x
 
1
module shell.build {
2
3
  export function typescriptBuild(drive: persistence.Drive, ...files: string[]) {
4
    
5
  }
6
}
  • boot
    • base.d.ts
      declare function getText(element: Element): string;
      declare function getText(fn: Function): string;
      
      declare function setText(element: Element, text: string): void;
      
      declare function elem(tag: string): HTMLElement;
      declare function elem(tag: string, style: any): HTMLElement;
      declare function elem(tag: string, style: any, parent: Element): HTMLElement;
      declare function elem(tag: string, parent: Element): HTMLElement;
      declare function elem(elem: Element, style: any, parent?: Element): HTMLElement;
      
      
      declare function on(obj: Node, eventName: string, handler: (evt: Event) => void): void;
      declare function on(obj: Window, eventName: string, handler: (evt: Event) => void): void;
      declare function on(obj: Node, eventName: string, handler: (evt: Event) => void): void;
      declare function off(obj: Window, eventName: string, handler: (evt: Event) => void): void;
      
      declare function createFrame(): createFrame.LoadedResult;
      
      declare module createFrame {
        export interface LoadedResult {
          global: Window;
          document: Document; 
          iframe: HTMLIFrameElement;
          evalFN(code: string): any;
        }
      }
    • base.ts
      function base(window: Window) {
      
        return {
          getText,
          setText,
          elem,
          on, off,
          createFrame,
          apply
        };
      
        function apply() {
          (<any>window).getText = getText;
          (<any>window).setText = setText;
          (<any>window).elem = elem;
          (<any>window).on = on;
          (<any>window).off = off;
          (<any>window).createFrame = createFrame;
        }
      
        function getText(obj) {
      
          if (typeof obj === 'function') {
            var result = /\/\*(\*(?!\/)|[^*])*\*\//m.exec(obj + '')[0];
            if (result) result = result.slice(2, result.length - 2);
            return result;
          }
          else if (/^SCRIPT$/i.test(obj.tagName)) {
            if ('text' in obj)
              return obj.text;
            else
              return obj.innerHTML;
          }
          else if (/^STYLE$/i.test(obj.tagName)) {
            if ('text' in obj)
              return obj.text;
            else if (obj.styleSheet)
              return obj.styleSheet.cssText;
            else
              return obj.innerHTML;
          }
          else if ('textContent' in obj) {
            return obj.textContent;
          }
          else if (/^INPUT$/i.test(obj.tagName)) {
            return obj.value;
          }
          else {
            var result: string = obj.innerText;
            if (result) {
              // IE fixes
              result = result.replace(/\<BR\s*\>/g, '\n').replace(/\r\n/g, '\n');
            }
            return result || '';
          }
        }
      
        function setText(obj, text) {
      
          if (/^SCRIPT$/i.test(obj.tagName)) {
            if ('text' in obj)
              obj.text = text;
            else
              obj.innerHTML = text;
          }
          else if (/^STYLE$/i.test(obj.tagName)) {
            if ('text' in obj) {
              obj.text = text;
            }
            else if ('styleSheet' in obj) {
              if (!obj.styleSheet && !obj.type) obj.type = 'text/css';
              obj.styleSheet.cssText = text;
            }
            else if ('textContent' in obj) {
              obj.textContent = text;
            }
            else {
              obj.innerHTML = text;
            }
          }
          else if ('textContent' in obj) {
            if ('type' in obj && !obj.type) obj.type = 'text/css';
            obj.textContent = text;
          }
          else if (/^INPUT$/i.test(obj.tagName)) {
            obj.value = text;
          }
          else {
            obj.innerText = text;
          }
        }
      
        function on(obj, eventName, handler) {
          if (obj.addEventListener) {
            try {
              obj.addEventListener(eventName, handler, false);
              return;
            }
            catch (e) { }
          }
          else if (obj.attachEvent) {
            try {
              obj.attachEvent('on' + eventName, handler);
            }
            catch (e) { }
          }
      
          obj['on' + eventName] = function(e) { return handler(e || window.event); };
        };
      
        function off(obj, eventName, handler) {
          if (obj.removeEventListener) {
            obj.removeEventListener(eventName, handler, false);
          }
          else if (obj.detachEvent) {
            obj.detachEvent('on' + eventName, handler);
          }
          else {
            if (obj['on' + eventName])
              obj['on' + eventName] = null;
          }
        };
      
        function elem(tag, style?, parent?) {
          var e = tag.tagName ? tag : window.document.createElement(tag);
      
          if (!parent && style && style.tagName) {
            parent = style;
            style = null;
          }
      
          if (style) {
            if (typeof style === 'string') {
              setText(e, style);
            }
            else {
              for (var k in style) if (style.hasOwnProperty(k)) {
                if (k === 'text') {
                  setText(e, style[k]);
                }
                else if (k === 'className') {
                  e.className = style[k];
                }
                else if (!(e.style && k in e.style) && k in e) {
                  e[k] = style[k];
                }
                else {
      
                  if (style[k] && typeof style[k] === 'object' && typeof style[k].length === 'number') {
                    // array: iterate and apply values
                    var applyValues = style[k];
                    for (var i = 0; i < applyValues.length; i++) {
                      try { e.style[k] = applyValues[i]; }
                      catch (errApplyValues) { }
                    }
                  }
                  else {
                    // not array
                    try {
                      e.style[k] = style[k];
                    }
                    catch (err) {
                      try {
                        if (typeof console !== 'undefined' && typeof console.error === 'function')
                          console.error(e.tagName + '.style.' + k + '=' + style[k] + ': ' + err.message);
                      }
                      catch (whatevs) {
                        alert(e.tagName + '.style.' + k + '=' + style[k] + ': ' + err.message);
                      }
                    }
                  }
                }
              }
            }
          }
      
          if (parent) {
            try {
              parent.appendChild(e);
            }
            catch (error) {
              throw new Error(error.message + ' adding ' + e.tagName + ' to ' + parent.tagName);
            }
          }
      
          return e;
        }
      
        function createFrame() {
      
          var ifr = <HTMLIFrameElement>elem(
            'iframe',
            {
              position: 'absolute',
              left: 0, top: 0,
              width: '100%', height: '100%',
              border: 'none',
              src: 'about:blank'
            });
          ifr.frameBorder = '0';
          window.document.body.appendChild(ifr);
      
          var ifrwin: Window = ifr.contentWindow || (<any>ifr).window;
          var ifrdoc = ifrwin.document;
      
          if (ifrdoc.open) ifrdoc.open();
          ifrdoc.write(
            '<!' + 'doctype html' + '>' +
            '<' + 'html' + '>' +
            '<' + 'head' + '><' + 'style' + '>' +
            'html{margin:0;padding:0;border:none;height:100%;border:none;overflow:hidden;}' +
            'body{margin:0;padding:0;border:none;height:100%;border:none;overflow:hidden;}' +
            '*,*:before,*:after{box-sizing:inherit;}' +
            'html{box-sizing:border-box;}' +
            '</' + 'style' + '>\n' +
      
            '<' + 'body' + '>' +
      
            '<' + 'script' + '>window.__eval_export_=function(code) { return eval(code); }</' + 'script' + '>' +
      
            // it's important to have body before any long scripts (especialy external),
            // so IFRAME is immediately ready
            '<' + 'body' + '>' +
      
            '</' + 'html' + '>');
          if (ifrdoc.close) ifrdoc.close();
      
          var ifrwin_eval = (<any>ifrwin).__eval_export_;
          try {
            delete (<any>ifrwin).__eval_export_;
          }
          catch (weirdIEFailure) {
            // no big deal if it fails
          }
      
          ifrdoc.body.innerHTML = '';
      
          if (window.onerror) {
            ifrwin.onerror = delegate_onerror;
          }
      
          return {
            document: ifrdoc,
            global: ifrwin,
            iframe: ifr,
            evalFN: ifrwin_eval
          };
      
          function delegate_onerror() {
            window.onerror.apply(window, arguments);
          }
      
        }
      
      }
    • bootUI.js
      function bootUI(document, window, base) {
      
        base.elem(document.body, {
          background: 'rgb(3,11,61)',
          color: 'cyan',
          border: 'none',
          overflow: 'hidden',
          fontFamily: 'Segoe UI Light, Segoe UI, Ubuntu Light, Ubuntu, Toronto, Helvetica, Roboto, Droid Sans, Sans Serif'
        });
      
        base.elem('div', {
          innerHTML:
          	'<table style="width:100%;filter:blur(2.5px);-webkit-filter:blur(2.5px);-ms-filter: DXImageTransform.Microsoft.Blur(PixelRadius=\'2.5\');" width=100%><tr><td style="width:50%;" width=50% valign=top>'+
          	'<div style="color: white">'+
              '<div style="background: darkcyan; width: 33%; margin-top:0.5em;padding-left:0.5em;">######</div>'+
              '<div style="margin-left:0.5em;">'+
                '##### <br>'+
                '###'+
              '</div>'+
              '<div style="margin-left:0.5em;">'+
                '******* <br>'+
                '*********** <br>'+
                '*********** <br>'+
                '************ <br>'+
                '<span style="color: lime;">************* <br>'+
                '**************** ** <br>'+
                '***************</span> <br>'+
                '************' +
              '</div>'+
            '</div>'+
          	'</td><td style="width:50%; padding: 0.5em;" width=50% valign=top>'+
          	'<div style="color: white">'+
          	'-- <br>'+
          	'#### <br>'+
          	'####### <br>'+
          	'#### <br>'+
          	'#### <br>'+
          	'#### #### <br>' +
          	'######## <br>' +
          	'##### <br>'+
          	'####### <br>' +
          	'#######' +
          	'</div>'+
          	'<span style="color: forestgreen;">***** **</span> <br>'+
          	'**** **** <br>'+
          	'*********' +
          	'</td></tr></table>'
        }, document.body);
      
      
        var progressContainer = base.elem('div', {
          position: 'absolute',
          left: 0, top: 0,
          padding: '3em'
        }, document.body);
      
        var header = base.elem('h2', {
          text: 'Mini portabled shell',
          color: 'white',
          fontWeight: '100',
          fontSize: '500%',
          marginBottom: 0, paddingBottom: 0,
          textShadow: '1px 1px 3px black'
        }, progressContainer);
      
        var smallTitle = base.elem('div', {
          fontStyle: 'italic',
          paddingLeft: '1em',
          textShadow: '1px 1px 3px black',
          text: 'Loading...',
          opacity: 0.8
        }, progressContainer);
      
        var bootBar = base.elem('div', {
          marginTop: '2em',
          background: 'gold', color: 'gold',
          height: '2px',
          width: '3%',
          fontSize: '10%',
          innerHTML: '&nbsp;'
        }, progressContainer);
      
        var darkBottom = base.elem('div', {
          position: 'absolute',
          bottom: 0,
          width: '100%',
          height: '3em',
          background: 'black'
        }, document.body);
      
        return {
          title: function(t, ratio) {
            setText(smallTitle,t);
            if (typeof console !== 'undefined' && typeof console.log === 'function')
              console.log(t);
            if (ratio) {
              bootBar.style.width = (ratio*100) + '%';
            }
          },
          loaded: function() {
            setText(smallTitle, 'Loaded.');
          }
        };
      }
    • earlyBoot.ts
      function earlyBoot(window: Window) {
      
        base(window).apply();
      
        (<any>window).__boot_times.earlyBootStart = (+new Date());
      
        document.write(
          '<' + 'style' + ' data-legit=mi>' +
          '*{display:none;background:black;color:black;}' +
          'html,body{display:block;background:black;color:black;}' +
          '</' + 'style' + '>' +
          (document.body ? '' : '<body>'));
      
        elem(document.body, {
          height: '100%',
          margin: 0,
          padding: 0,
          overflow: 'hidden',
          background: 'black', color: 'black'
        });
        elem(document.body.parentElement, {
          overflow: 'hidden',
          background: 'black', color: 'black'
        });
      
        var allStyleElements = document.getElementsByTagName('style');
        var addedStyle = allStyleElements[allStyleElements.length - 1];
      
        var bootFrame: any = createFrame();
        bootFrame.iframe.style.zIndex = <any>2000;
        bootFrame.iframe.style.display = 'block';
      
        base(bootFrame.global).apply();
      
        var bootUI = (<any>window).bootUI;
      
        var bootAPI = bootUI(bootFrame.document, bootFrame.global, { elem: (<any>bootFrame.global).elem });
        bootFrame.api = bootAPI;
        bootFrame.earlyStartTime = (<any>window).__boot_times.onerror_start;
        bootFrame.bootStartTime = (<any>window).__boot_times.earlyBootStart;
      
        var uniqueKey = deriveUniqueKey(location);
      
        var shellLoaderInstance = null;
        var shellLoadInterval = setInterval(function() {
          if ((<any>window).shellLoader === 'undefined') return;
          if (!shellLoadInterval) return; // protect against old Opera's super-async habits
          shellLoaderInstance = shellLoaderInstance ? shellLoaderInstance.continueLoading() : (<any>window).shellLoader ? (<any>window).shellLoader(uniqueKey, document, bootFrame) : null;
        }, 1);
      
        window.onload = function() {
      
          clearInterval(shellLoadInterval);
          shellLoadInterval = 0;
      
          removeSpyElements();
          bootFrame.iframe.style.zIndex = <any>1000;
          if (addedStyle.parentElement)
            addedStyle.parentElement.removeChild(addedStyle);
          bootFrame.iframe.style.display = '';
      
          (shellLoaderInstance || (<any>window).shellLoader(uniqueKey, document, bootFrame)).finishLoading();
      
        };
      
        function deriveUniqueKey(locationSeed) {
          var key = (locationSeed + '').split('?')[0].split('#')[0].toLowerCase();
      
          var posIndexTrail = key.search(/\/index\.html$/);
          if (posIndexTrail > 0) key = key.slice(0, posIndexTrail);
      
          if (key.charAt(0) === '/')
            key = key.slice(1);
          if (key.slice(-1) === '/')
            key = key.slice(0, key.length - 1);
      
          return smallHash(key) + '-' + smallHash(key.slice(1) + 'a');
      
          function smallHash(key) {
            for (var h = 0, i = 0; i < key.length; i++) {
              h = Math.pow(31, h + 31 / key.charCodeAt(i));
              h -= h | 0;
            }
            return (h * 2000000000) | 0;
          }
      
        }
      
        function removeSpyElements() {
      
          removeElements('iframe', function(ifr) { return ifr !== bootFrame.iframe; });
          removeElements('style', function(sty) { return sty.getAttribute('data-legit') !== 'mi'; });
          removeElements('script', function(sty) { return sty.getAttribute('data-legit') !== 'mi'; });
      
          function removeElements(tagName, predicateToRemove) {
            var list = document.getElementsByTagName(tagName);
            for (var i = 0; i < list.length; i++) {
              var elem = list[i] || list.item(i);
              if (predicateToRemove(elem)) {
                elem.parentElement.removeChild(elem);
                i--;
              }
            }
          }
        }
      
      }
    • onerror.js
      window.__boot_times = window.__boot_times || {};
      window.__boot_times.onerror_start = +new Date();
      
      window.onerror = function onerror() {
      
        var msg = [];
        for (var i = 0; i < arguments.length; i++) {
          var a = arguments[i];
          if (a && (typeof a === 'object')) {
      
            if (a.stack) {
              msg.push(a.stack);
            }
            else {
              var msg1 = [];
              for (var k in a) {
                var r = a[k];
                if (typeof r === 'function' || (typeof r === 'object' && !r)) continue;
                msg1.push(k+':'+r);
              }
              msg.push(msg1.join(', '));
            }
          }
          else {
            msg.push(a===null ? 'null' : a);
          }
      
        }
      
        alert(msg.join('\n'));
      
      }
  • codemirror-part
    • addon
      • comment
        • comment.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            var noOptions = {};
            var nonWS = /[^\s\u00a0]/;
            var Pos = CodeMirror.Pos;
          
            function firstNonWS(str) {
              var found = str.search(nonWS);
              return found == -1 ? 0 : found;
            }
          
            CodeMirror.commands.toggleComment = function(cm) {
              cm.toggleComment();
            };
          
            CodeMirror.defineExtension("toggleComment", function(options) {
              if (!options) options = noOptions;
              var cm = this;
              var minLine = Infinity, ranges = this.listSelections(), mode = null;
              for (var i = ranges.length - 1; i >= 0; i--) {
                var from = ranges[i].from(), to = ranges[i].to();
                if (from.line >= minLine) continue;
                if (to.line >= minLine) to = Pos(minLine, 0);
                minLine = from.line;
                if (mode == null) {
                  if (cm.uncomment(from, to, options)) mode = "un";
                  else { cm.lineComment(from, to, options); mode = "line"; }
                } else if (mode == "un") {
                  cm.uncomment(from, to, options);
                } else {
                  cm.lineComment(from, to, options);
                }
              }
            });
          
            CodeMirror.defineExtension("lineComment", function(from, to, options) {
              if (!options) options = noOptions;
              var self = this, mode = self.getModeAt(from);
              var commentString = options.lineComment || mode.lineComment;
              if (!commentString) {
                if (options.blockCommentStart || mode.blockCommentStart) {
                  options.fullLines = true;
                  self.blockComment(from, to, options);
                }
                return;
              }
              var firstLine = self.getLine(from.line);
              if (firstLine == null) return;
              var end = Math.min(to.ch != 0 || to.line == from.line ? to.line + 1 : to.line, self.lastLine() + 1);
              var pad = options.padding == null ? " " : options.padding;
              var blankLines = options.commentBlankLines || from.line == to.line;
          
              self.operation(function() {
                if (options.indent) {
                  var baseString = null;
                  for (var i = from.line; i < end; ++i) {
                    var line = self.getLine(i);
                    var whitespace = line.slice(0, firstNonWS(line));
                    if (baseString == null || baseString.length > whitespace.length) {
                      baseString = whitespace;
                    }
                  }
                  for (var i = from.line; i < end; ++i) {
                    var line = self.getLine(i), cut = baseString.length;
                    if (!blankLines && !nonWS.test(line)) continue;
                    if (line.slice(0, cut) != baseString) cut = firstNonWS(line);
                    self.replaceRange(baseString + commentString + pad, Pos(i, 0), Pos(i, cut));
                  }
                } else {
                  for (var i = from.line; i < end; ++i) {
                    if (blankLines || nonWS.test(self.getLine(i)))
                      self.replaceRange(commentString + pad, Pos(i, 0));
                  }
                }
              });
            });
          
            CodeMirror.defineExtension("blockComment", function(from, to, options) {
              if (!options) options = noOptions;
              var self = this, mode = self.getModeAt(from);
              var startString = options.blockCommentStart || mode.blockCommentStart;
              var endString = options.blockCommentEnd || mode.blockCommentEnd;
              if (!startString || !endString) {
                if ((options.lineComment || mode.lineComment) && options.fullLines != false)
                  self.lineComment(from, to, options);
                return;
              }
          
              var end = Math.min(to.line, self.lastLine());
              if (end != from.line && to.ch == 0 && nonWS.test(self.getLine(end))) --end;
          
              var pad = options.padding == null ? " " : options.padding;
              if (from.line > end) return;
          
              self.operation(function() {
                if (options.fullLines != false) {
                  var lastLineHasText = nonWS.test(self.getLine(end));
                  self.replaceRange(pad + endString, Pos(end));
                  self.replaceRange(startString + pad, Pos(from.line, 0));
                  var lead = options.blockCommentLead || mode.blockCommentLead;
                  if (lead != null) for (var i = from.line + 1; i <= end; ++i)
                    if (i != end || lastLineHasText)
                      self.replaceRange(lead + pad, Pos(i, 0));
                } else {
                  self.replaceRange(endString, to);
                  self.replaceRange(startString, from);
                }
              });
            });
          
            CodeMirror.defineExtension("uncomment", function(from, to, options) {
              if (!options) options = noOptions;
              var self = this, mode = self.getModeAt(from);
              var end = Math.min(to.ch != 0 || to.line == from.line ? to.line : to.line - 1, self.lastLine()), start = Math.min(from.line, end);
          
              // Try finding line comments
              var lineString = options.lineComment || mode.lineComment, lines = [];
              var pad = options.padding == null ? " " : options.padding, didSomething;
              lineComment: {
                if (!lineString) break lineComment;
                for (var i = start; i <= end; ++i) {
                  var line = self.getLine(i);
                  var found = line.indexOf(lineString);
                  if (found > -1 && !/comment/.test(self.getTokenTypeAt(Pos(i, found + 1)))) found = -1;
                  if (found == -1 && (i != end || i == start) && nonWS.test(line)) break lineComment;
                  if (found > -1 && nonWS.test(line.slice(0, found))) break lineComment;
                  lines.push(line);
                }
                self.operation(function() {
                  for (var i = start; i <= end; ++i) {
                    var line = lines[i - start];
                    var pos = line.indexOf(lineString), endPos = pos + lineString.length;
                    if (pos < 0) continue;
                    if (line.slice(endPos, endPos + pad.length) == pad) endPos += pad.length;
                    didSomething = true;
                    self.replaceRange("", Pos(i, pos), Pos(i, endPos));
                  }
                });
                if (didSomething) return true;
              }
          
              // Try block comments
              var startString = options.blockCommentStart || mode.blockCommentStart;
              var endString = options.blockCommentEnd || mode.blockCommentEnd;
              if (!startString || !endString) return false;
              var lead = options.blockCommentLead || mode.blockCommentLead;
              var startLine = self.getLine(start), endLine = end == start ? startLine : self.getLine(end);
              var open = startLine.indexOf(startString), close = endLine.lastIndexOf(endString);
              if (close == -1 && start != end) {
                endLine = self.getLine(--end);
                close = endLine.lastIndexOf(endString);
              }
              if (open == -1 || close == -1 ||
                  !/comment/.test(self.getTokenTypeAt(Pos(start, open + 1))) ||
                  !/comment/.test(self.getTokenTypeAt(Pos(end, close + 1))))
                return false;
          
              // Avoid killing block comments completely outside the selection.
              // Positions of the last startString before the start of the selection, and the first endString after it.
              var lastStart = startLine.lastIndexOf(startString, from.ch);
              var firstEnd = lastStart == -1 ? -1 : startLine.slice(0, from.ch).indexOf(endString, lastStart + startString.length);
              if (lastStart != -1 && firstEnd != -1 && firstEnd + endString.length != from.ch) return false;
              // Positions of the first endString after the end of the selection, and the last startString before it.
              firstEnd = endLine.indexOf(endString, to.ch);
              var almostLastStart = endLine.slice(to.ch).lastIndexOf(startString, firstEnd - to.ch);
              lastStart = (firstEnd == -1 || almostLastStart == -1) ? -1 : to.ch + almostLastStart;
              if (firstEnd != -1 && lastStart != -1 && lastStart != to.ch) return false;
          
              self.operation(function() {
                self.replaceRange("", Pos(end, close - (pad && endLine.slice(close - pad.length, close) == pad ? pad.length : 0)),
                                  Pos(end, close + endString.length));
                var openEnd = open + startString.length;
                if (pad && startLine.slice(openEnd, openEnd + pad.length) == pad) openEnd += pad.length;
                self.replaceRange("", Pos(start, open), Pos(start, openEnd));
                if (lead) for (var i = start + 1; i <= end; ++i) {
                  var line = self.getLine(i), found = line.indexOf(lead);
                  if (found == -1 || nonWS.test(line.slice(0, found))) continue;
                  var foundEnd = found + lead.length;
                  if (pad && line.slice(foundEnd, foundEnd + pad.length) == pad) foundEnd += pad.length;
                  self.replaceRange("", Pos(i, found), Pos(i, foundEnd));
                }
              });
              return true;
            });
          });
          
        • continuecomment.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            var modes = ["clike", "css", "javascript"];
          
            for (var i = 0; i < modes.length; ++i)
              CodeMirror.extendMode(modes[i], {blockCommentContinue: " * "});
          
            function continueComment(cm) {
              if (cm.getOption("disableInput")) return CodeMirror.Pass;
              var ranges = cm.listSelections(), mode, inserts = [];
              for (var i = 0; i < ranges.length; i++) {
                var pos = ranges[i].head, token = cm.getTokenAt(pos);
                if (token.type != "comment") return CodeMirror.Pass;
                var modeHere = CodeMirror.innerMode(cm.getMode(), token.state).mode;
                if (!mode) mode = modeHere;
                else if (mode != modeHere) return CodeMirror.Pass;
          
                var insert = null;
                if (mode.blockCommentStart && mode.blockCommentContinue) {
                  var end = token.string.indexOf(mode.blockCommentEnd);
                  var full = cm.getRange(CodeMirror.Pos(pos.line, 0), CodeMirror.Pos(pos.line, token.end)), found;
                  if (end != -1 && end == token.string.length - mode.blockCommentEnd.length && pos.ch >= end) {
                    // Comment ended, don't continue it
                  } else if (token.string.indexOf(mode.blockCommentStart) == 0) {
                    insert = full.slice(0, token.start);
                    if (!/^\s*$/.test(insert)) {
                      insert = "";
                      for (var j = 0; j < token.start; ++j) insert += " ";
                    }
                  } else if ((found = full.indexOf(mode.blockCommentContinue)) != -1 &&
                             found + mode.blockCommentContinue.length > token.start &&
                             /^\s*$/.test(full.slice(0, found))) {
                    insert = full.slice(0, found);
                  }
                  if (insert != null) insert += mode.blockCommentContinue;
                }
                if (insert == null && mode.lineComment && continueLineCommentEnabled(cm)) {
                  var line = cm.getLine(pos.line), found = line.indexOf(mode.lineComment);
                  if (found > -1) {
                    insert = line.slice(0, found);
                    if (/\S/.test(insert)) insert = null;
                    else insert += mode.lineComment + line.slice(found + mode.lineComment.length).match(/^\s*/)[0];
                  }
                }
                if (insert == null) return CodeMirror.Pass;
                inserts[i] = "\n" + insert;
              }
          
              cm.operation(function() {
                for (var i = ranges.length - 1; i >= 0; i--)
                  cm.replaceRange(inserts[i], ranges[i].from(), ranges[i].to(), "+insert");
              });
            }
          
            function continueLineCommentEnabled(cm) {
              var opt = cm.getOption("continueComments");
              if (opt && typeof opt == "object")
                return opt.continueLineComment !== false;
              return true;
            }
          
            CodeMirror.defineOption("continueComments", null, function(cm, val, prev) {
              if (prev && prev != CodeMirror.Init)
                cm.removeKeyMap("continueComment");
              if (val) {
                var key = "Enter";
                if (typeof val == "string")
                  key = val;
                else if (typeof val == "object" && val.key)
                  key = val.key;
                var map = {name: "continueComment"};
                map[key] = continueComment;
                cm.addKeyMap(map);
              }
            });
          });
          
      • dialog
        • dialog.css
          .CodeMirror-dialog {
            position: absolute;
            left: 0; right: 0;
            background: inherit;
            z-index: 15;
            padding: .1em .8em;
            overflow: hidden;
            color: inherit;
          }
          
          .CodeMirror-dialog-top {
            border-bottom: 1px solid #eee;
            top: 0;
          }
          
          .CodeMirror-dialog-bottom {
            border-top: 1px solid #eee;
            bottom: 0;
          }
          
          .CodeMirror-dialog input {
            border: none;
            outline: none;
            background: transparent;
            width: 20em;
            color: inherit;
            font-family: monospace;
          }
          
          .CodeMirror-dialog button {
            font-size: 70%;
          }
          
        • dialog.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // Open simple dialogs on top of an editor. Relies on dialog.css.
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            function dialogDiv(cm, template, bottom) {
              var wrap = cm.getWrapperElement();
              var dialog;
              dialog = wrap.appendChild(document.createElement("div"));
              if (bottom)
                dialog.className = "CodeMirror-dialog CodeMirror-dialog-bottom";
              else
                dialog.className = "CodeMirror-dialog CodeMirror-dialog-top";
          
              if (typeof template == "string") {
                dialog.innerHTML = template;
              } else { // Assuming it's a detached DOM element.
                dialog.appendChild(template);
              }
              return dialog;
            }
          
            function closeNotification(cm, newVal) {
              if (cm.state.currentNotificationClose)
                cm.state.currentNotificationClose();
              cm.state.currentNotificationClose = newVal;
            }
          
            CodeMirror.defineExtension("openDialog", function(template, callback, options) {
              if (!options) options = {};
          
              closeNotification(this, null);
          
              var dialog = dialogDiv(this, template, options.bottom);
              var closed = false, me = this;
              function close(newVal) {
                if (typeof newVal == 'string') {
                  inp.value = newVal;
                } else {
                  if (closed) return;
                  closed = true;
                  dialog.parentNode.removeChild(dialog);
                  me.focus();
          
                  if (options.onClose) options.onClose(dialog);
                }
              }
          
              var inp = dialog.getElementsByTagName("input")[0], button;
              if (inp) {
                if (options.value) {
                  inp.value = options.value;
                  if (options.selectValueOnOpen !== false) {
                    inp.select();
                  }
                }
          
                if (options.onInput)
                  CodeMirror.on(inp, "input", function(e) { options.onInput(e, inp.value, close);});
                if (options.onKeyUp)
                  CodeMirror.on(inp, "keyup", function(e) {options.onKeyUp(e, inp.value, close);});
          
                CodeMirror.on(inp, "keydown", function(e) {
                  if (options && options.onKeyDown && options.onKeyDown(e, inp.value, close)) { return; }
                  if (e.keyCode == 27 || (options.closeOnEnter !== false && e.keyCode == 13)) {
                    inp.blur();
                    CodeMirror.e_stop(e);
                    close();
                  }
                  if (e.keyCode == 13) callback(inp.value, e);
                });
          
                if (options.closeOnBlur !== false) CodeMirror.on(inp, "blur", close);
          
                inp.focus();
              } else if (button = dialog.getElementsByTagName("button")[0]) {
                CodeMirror.on(button, "click", function() {
                  close();
                  me.focus();
                });
          
                if (options.closeOnBlur !== false) CodeMirror.on(button, "blur", close);
          
                button.focus();
              }
              return close;
            });
          
            CodeMirror.defineExtension("openConfirm", function(template, callbacks, options) {
              closeNotification(this, null);
              var dialog = dialogDiv(this, template, options && options.bottom);
              var buttons = dialog.getElementsByTagName("button");
              var closed = false, me = this, blurring = 1;
              function close() {
                if (closed) return;
                closed = true;
                dialog.parentNode.removeChild(dialog);
                me.focus();
              }
              buttons[0].focus();
              for (var i = 0; i < buttons.length; ++i) {
                var b = buttons[i];
                (function(callback) {
                  CodeMirror.on(b, "click", function(e) {
                    CodeMirror.e_preventDefault(e);
                    close();
                    if (callback) callback(me);
                  });
                })(callbacks[i]);
                CodeMirror.on(b, "blur", function() {
                  --blurring;
                  setTimeout(function() { if (blurring <= 0) close(); }, 200);
                });
                CodeMirror.on(b, "focus", function() { ++blurring; });
              }
            });
          
            /*
             * openNotification
             * Opens a notification, that can be closed with an optional timer
             * (default 5000ms timer) and always closes on click.
             *
             * If a notification is opened while another is opened, it will close the
             * currently opened one and open the new one immediately.
             */
            CodeMirror.defineExtension("openNotification", function(template, options) {
              closeNotification(this, close);
              var dialog = dialogDiv(this, template, options && options.bottom);
              var closed = false, doneTimer;
              var duration = options && typeof options.duration !== "undefined" ? options.duration : 5000;
          
              function close() {
                if (closed) return;
                closed = true;
                clearTimeout(doneTimer);
                dialog.parentNode.removeChild(dialog);
              }
          
              CodeMirror.on(dialog, 'click', function(e) {
                CodeMirror.e_preventDefault(e);
                close();
              });
          
              if (duration)
                doneTimer = setTimeout(close, duration);
          
              return close;
            });
          });
          
      • display
        • autorefresh.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"))
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod)
            else // Plain browser env
              mod(CodeMirror)
          })(function(CodeMirror) {
            "use strict"
          
            CodeMirror.defineOption("autoRefresh", false, function(cm, val) {
              if (cm.state.autoRefresh) {
                stopListening(cm, cm.state.autoRefresh)
                cm.state.autoRefresh = null
              }
              if (val && cm.display.wrapper.offsetHeight == 0)
                startListening(cm, cm.state.autoRefresh = {delay: val.delay || 250})
            })
          
            function startListening(cm, state) {
              function check() {
                if (cm.display.wrapper.offsetHeight) {
                  stopListening(cm, state)
                  if (cm.display.lastWrapHeight != cm.display.wrapper.clientHeight)
                    cm.refresh()
                } else {
                  state.timeout = setTimeout(check, state.delay)
                }
              }
              state.timeout = setTimeout(check, state.delay)
              state.hurry = function() {
                clearTimeout(state.timeout)
                state.timeout = setTimeout(check, 50)
              }
              CodeMirror.on(window, "mouseup", state.hurry)
              CodeMirror.on(window, "keyup", state.hurry)
            }
          
            function stopListening(_cm, state) {
              clearTimeout(state.timeout)
              CodeMirror.off(window, "mouseup", state.hurry)
              CodeMirror.off(window, "keyup", state.hurry)
            }
          });
          
        • fullscreen.css
          .CodeMirror-fullscreen {
            position: fixed;
            top: 0; left: 0; right: 0; bottom: 0;
            height: auto;
            z-index: 9;
          }
          
        • fullscreen.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineOption("fullScreen", false, function(cm, val, old) {
              if (old == CodeMirror.Init) old = false;
              if (!old == !val) return;
              if (val) setFullscreen(cm);
              else setNormal(cm);
            });
          
            function setFullscreen(cm) {
              var wrap = cm.getWrapperElement();
              cm.state.fullScreenRestore = {scrollTop: window.pageYOffset, scrollLeft: window.pageXOffset,
                                            width: wrap.style.width, height: wrap.style.height};
              wrap.style.width = "";
              wrap.style.height = "auto";
              wrap.className += " CodeMirror-fullscreen";
              document.documentElement.style.overflow = "hidden";
              cm.refresh();
            }
          
            function setNormal(cm) {
              var wrap = cm.getWrapperElement();
              wrap.className = wrap.className.replace(/\s*CodeMirror-fullscreen\b/, "");
              document.documentElement.style.overflow = "";
              var info = cm.state.fullScreenRestore;
              wrap.style.width = info.width; wrap.style.height = info.height;
              window.scrollTo(info.scrollLeft, info.scrollTop);
              cm.refresh();
            }
          });
          
        • panel.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            CodeMirror.defineExtension("addPanel", function(node, options) {
              options = options || {};
          
              if (!this.state.panels) initPanels(this);
          
              var info = this.state.panels;
              var wrapper = info.wrapper;
              var cmWrapper = this.getWrapperElement();
          
              if (options.after instanceof Panel && !options.after.cleared) {
                wrapper.insertBefore(node, options.before.node.nextSibling);
              } else if (options.before instanceof Panel && !options.before.cleared) {
                wrapper.insertBefore(node, options.before.node);
              } else if (options.replace instanceof Panel && !options.replace.cleared) {
                wrapper.insertBefore(node, options.replace.node);
                options.replace.clear();
              } else if (options.position == "bottom") {
                wrapper.appendChild(node);
              } else if (options.position == "before-bottom") {
                wrapper.insertBefore(node, cmWrapper.nextSibling);
              } else if (options.position == "after-top") {
                wrapper.insertBefore(node, cmWrapper);
              } else {
                wrapper.insertBefore(node, wrapper.firstChild);
              }
          
              var height = (options && options.height) || node.offsetHeight;
              this._setSize(null, info.heightLeft -= height);
              info.panels++;
              return new Panel(this, node, options, height);
            });
          
            function Panel(cm, node, options, height) {
              this.cm = cm;
              this.node = node;
              this.options = options;
              this.height = height;
              this.cleared = false;
            }
          
            Panel.prototype.clear = function() {
              if (this.cleared) return;
              this.cleared = true;
              var info = this.cm.state.panels;
              this.cm._setSize(null, info.heightLeft += this.height);
              info.wrapper.removeChild(this.node);
              if (--info.panels == 0) removePanels(this.cm);
            };
          
            Panel.prototype.changed = function(height) {
              var newHeight = height == null ? this.node.offsetHeight : height;
              var info = this.cm.state.panels;
              this.cm._setSize(null, info.height += (newHeight - this.height));
              this.height = newHeight;
            };
          
            function initPanels(cm) {
              var wrap = cm.getWrapperElement();
              var style = window.getComputedStyle ? window.getComputedStyle(wrap) : wrap.currentStyle;
              var height = parseInt(style.height);
              var info = cm.state.panels = {
                setHeight: wrap.style.height,
                heightLeft: height,
                panels: 0,
                wrapper: document.createElement("div")
              };
              wrap.parentNode.insertBefore(info.wrapper, wrap);
              var hasFocus = cm.hasFocus();
              info.wrapper.appendChild(wrap);
              if (hasFocus) cm.focus();
          
              cm._setSize = cm.setSize;
              if (height != null) cm.setSize = function(width, newHeight) {
                if (newHeight == null) return this._setSize(width, newHeight);
                info.setHeight = newHeight;
                if (typeof newHeight != "number") {
                  var px = /^(\d+\.?\d*)px$/.exec(newHeight);
                  if (px) {
                    newHeight = Number(px[1]);
                  } else {
                    info.wrapper.style.height = newHeight;
                    newHeight = info.wrapper.offsetHeight;
                    info.wrapper.style.height = "";
                  }
                }
                cm._setSize(width, info.heightLeft += (newHeight - height));
                height = newHeight;
              };
            }
          
            function removePanels(cm) {
              var info = cm.state.panels;
              cm.state.panels = null;
          
              var wrap = cm.getWrapperElement();
              info.wrapper.parentNode.replaceChild(wrap, info.wrapper);
              wrap.style.height = info.setHeight;
              cm.setSize = cm._setSize;
              cm.setSize();
            }
          });
          
        • placeholder.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            CodeMirror.defineOption("placeholder", "", function(cm, val, old) {
              var prev = old && old != CodeMirror.Init;
              if (val && !prev) {
                cm.on("blur", onBlur);
                cm.on("change", onChange);
                onChange(cm);
              } else if (!val && prev) {
                cm.off("blur", onBlur);
                cm.off("change", onChange);
                clearPlaceholder(cm);
                var wrapper = cm.getWrapperElement();
                wrapper.className = wrapper.className.replace(" CodeMirror-empty", "");
              }
          
              if (val && !cm.hasFocus()) onBlur(cm);
            });
          
            function clearPlaceholder(cm) {
              if (cm.state.placeholder) {
                cm.state.placeholder.parentNode.removeChild(cm.state.placeholder);
                cm.state.placeholder = null;
              }
            }
            function setPlaceholder(cm) {
              clearPlaceholder(cm);
              var elt = cm.state.placeholder = document.createElement("pre");
              elt.style.cssText = "height: 0; overflow: visible";
              elt.className = "CodeMirror-placeholder";
              var placeHolder = cm.getOption("placeholder")
              if (typeof placeHolder == "string") placeHolder = document.createTextNode(placeHolder)
              elt.appendChild(placeHolder)
              cm.display.lineSpace.insertBefore(elt, cm.display.lineSpace.firstChild);
            }
          
            function onBlur(cm) {
              if (isEmpty(cm)) setPlaceholder(cm);
            }
            function onChange(cm) {
              var wrapper = cm.getWrapperElement(), empty = isEmpty(cm);
              wrapper.className = wrapper.className.replace(" CodeMirror-empty", "") + (empty ? " CodeMirror-empty" : "");
          
              if (empty) setPlaceholder(cm);
              else clearPlaceholder(cm);
            }
          
            function isEmpty(cm) {
              return (cm.lineCount() === 1) && (cm.getLine(0) === "");
            }
          });
          
        • rulers.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineOption("rulers", false, function(cm, val, old) {
              if (old && old != CodeMirror.Init) {
                clearRulers(cm);
                cm.off("refresh", refreshRulers);
              }
              if (val && val.length) {
                setRulers(cm);
                cm.on("refresh", refreshRulers);
              }
            });
          
            function clearRulers(cm) {
              for (var i = cm.display.lineSpace.childNodes.length - 1; i >= 0; i--) {
                var node = cm.display.lineSpace.childNodes[i];
                if (/(^|\s)CodeMirror-ruler($|\s)/.test(node.className))
                  node.parentNode.removeChild(node);
              }
            }
          
            function setRulers(cm) {
              var val = cm.getOption("rulers");
              var cw = cm.defaultCharWidth();
              var left = cm.charCoords(CodeMirror.Pos(cm.firstLine(), 0), "div").left;
              var minH = cm.display.scroller.offsetHeight + 30;
              for (var i = 0; i < val.length; i++) {
                var elt = document.createElement("div");
                elt.className = "CodeMirror-ruler";
                var col, conf = val[i];
                if (typeof conf == "number") {
                  col = conf;
                } else {
                  col = conf.column;
                  if (conf.className) elt.className += " " + conf.className;
                  if (conf.color) elt.style.borderColor = conf.color;
                  if (conf.lineStyle) elt.style.borderLeftStyle = conf.lineStyle;
                  if (conf.width) elt.style.borderLeftWidth = conf.width;
                }
                elt.style.left = (left + col * cw) + "px";
                elt.style.top = "-50px";
                elt.style.bottom = "-20px";
                elt.style.minHeight = minH + "px";
                cm.display.lineSpace.insertBefore(elt, cm.display.cursorDiv);
              }
            }
          
            function refreshRulers(cm) {
              clearRulers(cm);
              setRulers(cm);
            }
          });
          
      • edit
        • closebrackets.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            var defaults = {
              pairs: "()[]{}''\"\"",
              triples: "",
              explode: "[]{}"
            };
          
            var Pos = CodeMirror.Pos;
          
            CodeMirror.defineOption("autoCloseBrackets", false, function(cm, val, old) {
              if (old && old != CodeMirror.Init) {
                cm.removeKeyMap(keyMap);
                cm.state.closeBrackets = null;
              }
              if (val) {
                cm.state.closeBrackets = val;
                cm.addKeyMap(keyMap);
              }
            });
          
            function getOption(conf, name) {
              if (name == "pairs" && typeof conf == "string") return conf;
              if (typeof conf == "object" && conf[name] != null) return conf[name];
              return defaults[name];
            }
          
            var bind = defaults.pairs + "`";
            var keyMap = {Backspace: handleBackspace, Enter: handleEnter};
            for (var i = 0; i < bind.length; i++)
              keyMap["'" + bind.charAt(i) + "'"] = handler(bind.charAt(i));
          
            function handler(ch) {
              return function(cm) { return handleChar(cm, ch); };
            }
          
            function getConfig(cm) {
              var deflt = cm.state.closeBrackets;
              if (!deflt) return null;
              var mode = cm.getModeAt(cm.getCursor());
              return mode.closeBrackets || deflt;
            }
          
            function handleBackspace(cm) {
              var conf = getConfig(cm);
              if (!conf || cm.getOption("disableInput")) return CodeMirror.Pass;
          
              var pairs = getOption(conf, "pairs");
              var ranges = cm.listSelections();
              for (var i = 0; i < ranges.length; i++) {
                if (!ranges[i].empty()) return CodeMirror.Pass;
                var around = charsAround(cm, ranges[i].head);
                if (!around || pairs.indexOf(around) % 2 != 0) return CodeMirror.Pass;
              }
              for (var i = ranges.length - 1; i >= 0; i--) {
                var cur = ranges[i].head;
                cm.replaceRange("", Pos(cur.line, cur.ch - 1), Pos(cur.line, cur.ch + 1));
              }
            }
          
            function handleEnter(cm) {
              var conf = getConfig(cm);
              var explode = conf && getOption(conf, "explode");
              if (!explode || cm.getOption("disableInput")) return CodeMirror.Pass;
          
              var ranges = cm.listSelections();
              for (var i = 0; i < ranges.length; i++) {
                if (!ranges[i].empty()) return CodeMirror.Pass;
                var around = charsAround(cm, ranges[i].head);
                if (!around || explode.indexOf(around) % 2 != 0) return CodeMirror.Pass;
              }
              cm.operation(function() {
                cm.replaceSelection("\n\n", null);
                cm.execCommand("goCharLeft");
                ranges = cm.listSelections();
                for (var i = 0; i < ranges.length; i++) {
                  var line = ranges[i].head.line;
                  cm.indentLine(line, null, true);
                  cm.indentLine(line + 1, null, true);
                }
              });
            }
          
            function contractSelection(sel) {
              var inverted = CodeMirror.cmpPos(sel.anchor, sel.head) > 0;
              return {anchor: new Pos(sel.anchor.line, sel.anchor.ch + (inverted ? -1 : 1)),
                      head: new Pos(sel.head.line, sel.head.ch + (inverted ? 1 : -1))};
            }
          
            function handleChar(cm, ch) {
              var conf = getConfig(cm);
              if (!conf || cm.getOption("disableInput")) return CodeMirror.Pass;
          
              var pairs = getOption(conf, "pairs");
              var pos = pairs.indexOf(ch);
              if (pos == -1) return CodeMirror.Pass;
              var triples = getOption(conf, "triples");
          
              var identical = pairs.charAt(pos + 1) == ch;
              var ranges = cm.listSelections();
              var opening = pos % 2 == 0;
          
              var type, next;
              for (var i = 0; i < ranges.length; i++) {
                var range = ranges[i], cur = range.head, curType;
                var next = cm.getRange(cur, Pos(cur.line, cur.ch + 1));
                if (opening && !range.empty()) {
                  curType = "surround";
                } else if ((identical || !opening) && next == ch) {
                  if (triples.indexOf(ch) >= 0 && cm.getRange(cur, Pos(cur.line, cur.ch + 3)) == ch + ch + ch)
                    curType = "skipThree";
                  else
                    curType = "skip";
                } else if (identical && cur.ch > 1 && triples.indexOf(ch) >= 0 &&
                           cm.getRange(Pos(cur.line, cur.ch - 2), cur) == ch + ch &&
                           (cur.ch <= 2 || cm.getRange(Pos(cur.line, cur.ch - 3), Pos(cur.line, cur.ch - 2)) != ch)) {
                  curType = "addFour";
                } else if (identical) {
                  if (!CodeMirror.isWordChar(next) && enteringString(cm, cur, ch)) curType = "both";
                  else return CodeMirror.Pass;
                } else if (opening && (cm.getLine(cur.line).length == cur.ch ||
                                       isClosingBracket(next, pairs) ||
                                       /\s/.test(next))) {
                  curType = "both";
                } else {
                  return CodeMirror.Pass;
                }
                if (!type) type = curType;
                else if (type != curType) return CodeMirror.Pass;
              }
          
              var left = pos % 2 ? pairs.charAt(pos - 1) : ch;
              var right = pos % 2 ? ch : pairs.charAt(pos + 1);
              cm.operation(function() {
                if (type == "skip") {
                  cm.execCommand("goCharRight");
                } else if (type == "skipThree") {
                  for (var i = 0; i < 3; i++)
                    cm.execCommand("goCharRight");
                } else if (type == "surround") {
                  var sels = cm.getSelections();
                  for (var i = 0; i < sels.length; i++)
                    sels[i] = left + sels[i] + right;
                  cm.replaceSelections(sels, "around");
                  sels = cm.listSelections().slice();
                  for (var i = 0; i < sels.length; i++)
                    sels[i] = contractSelection(sels[i]);
                  cm.setSelections(sels);
                } else if (type == "both") {
                  cm.replaceSelection(left + right, null);
                  cm.triggerElectric(left + right);
                  cm.execCommand("goCharLeft");
                } else if (type == "addFour") {
                  cm.replaceSelection(left + left + left + left, "before");
                  cm.execCommand("goCharRight");
                }
              });
            }
          
            function isClosingBracket(ch, pairs) {
              var pos = pairs.lastIndexOf(ch);
              return pos > -1 && pos % 2 == 1;
            }
          
            function charsAround(cm, pos) {
              var str = cm.getRange(Pos(pos.line, pos.ch - 1),
                                    Pos(pos.line, pos.ch + 1));
              return str.length == 2 ? str : null;
            }
          
            // Project the token type that will exists after the given char is
            // typed, and use it to determine whether it would cause the start
            // of a string token.
            function enteringString(cm, pos, ch) {
              var line = cm.getLine(pos.line);
              var token = cm.getTokenAt(pos);
              if (/\bstring2?\b/.test(token.type)) return false;
              var stream = new CodeMirror.StringStream(line.slice(0, pos.ch) + ch + line.slice(pos.ch), 4);
              stream.pos = stream.start = token.start;
              for (;;) {
                var type1 = cm.getMode().token(stream, token.state);
                if (stream.pos >= pos.ch + 1) return /\bstring2?\b/.test(type1);
                stream.start = stream.pos;
              }
            }
          });
          
        • closetag.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          /**
           * Tag-closer extension for CodeMirror.
           *
           * This extension adds an "autoCloseTags" option that can be set to
           * either true to get the default behavior, or an object to further
           * configure its behavior.
           *
           * These are supported options:
           *
           * `whenClosing` (default true)
           *   Whether to autoclose when the '/' of a closing tag is typed.
           * `whenOpening` (default true)
           *   Whether to autoclose the tag when the final '>' of an opening
           *   tag is typed.
           * `dontCloseTags` (default is empty tags for HTML, none for XML)
           *   An array of tag names that should not be autoclosed.
           * `indentTags` (default is block tags for HTML, none for XML)
           *   An array of tag names that should, when opened, cause a
           *   blank line to be added inside the tag, and the blank line and
           *   closing line to be indented.
           *
           * See demos/closetag.html for a usage example.
           */
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("../fold/xml-fold"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "../fold/xml-fold"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            CodeMirror.defineOption("autoCloseTags", false, function(cm, val, old) {
              if (old != CodeMirror.Init && old)
                cm.removeKeyMap("autoCloseTags");
              if (!val) return;
              var map = {name: "autoCloseTags"};
              if (typeof val != "object" || val.whenClosing)
                map["'/'"] = function(cm) { return autoCloseSlash(cm); };
              if (typeof val != "object" || val.whenOpening)
                map["'>'"] = function(cm) { return autoCloseGT(cm); };
              cm.addKeyMap(map);
            });
          
            var htmlDontClose = ["area", "base", "br", "col", "command", "embed", "hr", "img", "input", "keygen", "link", "meta", "param",
                                 "source", "track", "wbr"];
            var htmlIndent = ["applet", "blockquote", "body", "button", "div", "dl", "fieldset", "form", "frameset", "h1", "h2", "h3", "h4",
                              "h5", "h6", "head", "html", "iframe", "layer", "legend", "object", "ol", "p", "select", "table", "ul"];
          
            function autoCloseGT(cm) {
              if (cm.getOption("disableInput")) return CodeMirror.Pass;
              var ranges = cm.listSelections(), replacements = [];
              for (var i = 0; i < ranges.length; i++) {
                if (!ranges[i].empty()) return CodeMirror.Pass;
                var pos = ranges[i].head, tok = cm.getTokenAt(pos);
                var inner = CodeMirror.innerMode(cm.getMode(), tok.state), state = inner.state;
                if (inner.mode.name != "xml" || !state.tagName) return CodeMirror.Pass;
          
                var opt = cm.getOption("autoCloseTags"), html = inner.mode.configuration == "html";
                var dontCloseTags = (typeof opt == "object" && opt.dontCloseTags) || (html && htmlDontClose);
                var indentTags = (typeof opt == "object" && opt.indentTags) || (html && htmlIndent);
          
                var tagName = state.tagName;
                if (tok.end > pos.ch) tagName = tagName.slice(0, tagName.length - tok.end + pos.ch);
                var lowerTagName = tagName.toLowerCase();
                // Don't process the '>' at the end of an end-tag or self-closing tag
                if (!tagName ||
                    tok.type == "string" && (tok.end != pos.ch || !/[\"\']/.test(tok.string.charAt(tok.string.length - 1)) || tok.string.length == 1) ||
                    tok.type == "tag" && state.type == "closeTag" ||
                    tok.string.indexOf("/") == (tok.string.length - 1) || // match something like <someTagName />
                    dontCloseTags && indexOf(dontCloseTags, lowerTagName) > -1 ||
                    closingTagExists(cm, tagName, pos, state, true))
                  return CodeMirror.Pass;
          
                var indent = indentTags && indexOf(indentTags, lowerTagName) > -1;
                replacements[i] = {indent: indent,
                                   text: ">" + (indent ? "\n\n" : "") + "</" + tagName + ">",
                                   newPos: indent ? CodeMirror.Pos(pos.line + 1, 0) : CodeMirror.Pos(pos.line, pos.ch + 1)};
              }
          
              for (var i = ranges.length - 1; i >= 0; i--) {
                var info = replacements[i];
                cm.replaceRange(info.text, ranges[i].head, ranges[i].anchor, "+insert");
                var sel = cm.listSelections().slice(0);
                sel[i] = {head: info.newPos, anchor: info.newPos};
                cm.setSelections(sel);
                if (info.indent) {
                  cm.indentLine(info.newPos.line, null, true);
                  cm.indentLine(info.newPos.line + 1, null, true);
                }
              }
            }
          
            function autoCloseCurrent(cm, typingSlash) {
              var ranges = cm.listSelections(), replacements = [];
              var head = typingSlash ? "/" : "</";
              for (var i = 0; i < ranges.length; i++) {
                if (!ranges[i].empty()) return CodeMirror.Pass;
                var pos = ranges[i].head, tok = cm.getTokenAt(pos);
                var inner = CodeMirror.innerMode(cm.getMode(), tok.state), state = inner.state;
                if (typingSlash && (tok.type == "string" || tok.string.charAt(0) != "<" ||
                                    tok.start != pos.ch - 1))
                  return CodeMirror.Pass;
                // Kludge to get around the fact that we are not in XML mode
                // when completing in JS/CSS snippet in htmlmixed mode. Does not
                // work for other XML embedded languages (there is no general
                // way to go from a mixed mode to its current XML state).
                var replacement;
                if (inner.mode.name != "xml") {
                  if (cm.getMode().name == "htmlmixed" && inner.mode.name == "javascript")
                    replacement = head + "script";
                  else if (cm.getMode().name == "htmlmixed" && inner.mode.name == "css")
                    replacement = head + "style";
                  else
                    return CodeMirror.Pass;
                } else {
                  if (!state.context || !state.context.tagName ||
                      closingTagExists(cm, state.context.tagName, pos, state))
                    return CodeMirror.Pass;
                  replacement = head + state.context.tagName;
                }
                if (cm.getLine(pos.line).charAt(tok.end) != ">") replacement += ">";
                replacements[i] = replacement;
              }
              cm.replaceSelections(replacements);
              ranges = cm.listSelections();
              for (var i = 0; i < ranges.length; i++)
                if (i == ranges.length - 1 || ranges[i].head.line < ranges[i + 1].head.line)
                  cm.indentLine(ranges[i].head.line);
            }
          
            function autoCloseSlash(cm) {
              if (cm.getOption("disableInput")) return CodeMirror.Pass;
              return autoCloseCurrent(cm, true);
            }
          
            CodeMirror.commands.closeTag = function(cm) { return autoCloseCurrent(cm); };
          
            function indexOf(collection, elt) {
              if (collection.indexOf) return collection.indexOf(elt);
              for (var i = 0, e = collection.length; i < e; ++i)
                if (collection[i] == elt) return i;
              return -1;
            }
          
            // If xml-fold is loaded, we use its functionality to try and verify
            // whether a given tag is actually unclosed.
            function closingTagExists(cm, tagName, pos, state, newTag) {
              if (!CodeMirror.scanForClosingTag) return false;
              var end = Math.min(cm.lastLine() + 1, pos.line + 500);
              var nextClose = CodeMirror.scanForClosingTag(cm, pos, null, end);
              if (!nextClose || nextClose.tag != tagName) return false;
              var cx = state.context;
              // If the immediate wrapping context contains onCx instances of
              // the same tag, a closing tag only exists if there are at least
              // that many closing tags of that type following.
              for (var onCx = newTag ? 1 : 0; cx && cx.tagName == tagName; cx = cx.prev) ++onCx;
              pos = nextClose.to;
              for (var i = 1; i < onCx; i++) {
                var next = CodeMirror.scanForClosingTag(cm, pos, null, end);
                if (!next || next.tag != tagName) return false;
                pos = next.to;
              }
              return true;
            }
          });
          
        • continuelist.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            var listRE = /^(\s*)(>[> ]*|[*+-]\s|(\d+)([.)]))(\s*)/,
                emptyListRE = /^(\s*)(>[> ]*|[*+-]|(\d+)[.)])(\s*)$/,
                unorderedListRE = /[*+-]\s/;
          
            CodeMirror.commands.newlineAndIndentContinueMarkdownList = function(cm) {
              if (cm.getOption("disableInput")) return CodeMirror.Pass;
              var ranges = cm.listSelections(), replacements = [];
              for (var i = 0; i < ranges.length; i++) {
                var pos = ranges[i].head;
                var eolState = cm.getStateAfter(pos.line);
                var inList = eolState.list !== false;
                var inQuote = eolState.quote !== 0;
          
                var line = cm.getLine(pos.line), match = listRE.exec(line);
                if (!ranges[i].empty() || (!inList && !inQuote) || !match) {
                  cm.execCommand("newlineAndIndent");
                  return;
                }
                if (emptyListRE.test(line)) {
                  cm.replaceRange("", {
                    line: pos.line, ch: 0
                  }, {
                    line: pos.line, ch: pos.ch + 1
                  });
                  replacements[i] = "\n";
                } else {
                  var indent = match[1], after = match[5];
                  var bullet = unorderedListRE.test(match[2]) || match[2].indexOf(">") >= 0
                    ? match[2]
                    : (parseInt(match[3], 10) + 1) + match[4];
          
                  replacements[i] = "\n" + indent + bullet + after;
                }
              }
          
              cm.replaceSelections(replacements);
            };
          });
          
        • matchbrackets.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            var ie_lt8 = /MSIE \d/.test(navigator.userAgent) &&
              (document.documentMode == null || document.documentMode < 8);
          
            var Pos = CodeMirror.Pos;
          
            var matching = {"(": ")>", ")": "(<", "[": "]>", "]": "[<", "{": "}>", "}": "{<"};
          
            function findMatchingBracket(cm, where, strict, config) {
              var line = cm.getLineHandle(where.line), pos = where.ch - 1;
              var match = (pos >= 0 && matching[line.text.charAt(pos)]) || matching[line.text.charAt(++pos)];
              if (!match) return null;
              var dir = match.charAt(1) == ">" ? 1 : -1;
              if (strict && (dir > 0) != (pos == where.ch)) return null;
              var style = cm.getTokenTypeAt(Pos(where.line, pos + 1));
          
              var found = scanForBracket(cm, Pos(where.line, pos + (dir > 0 ? 1 : 0)), dir, style || null, config);
              if (found == null) return null;
              return {from: Pos(where.line, pos), to: found && found.pos,
                      match: found && found.ch == match.charAt(0), forward: dir > 0};
            }
          
            // bracketRegex is used to specify which type of bracket to scan
            // should be a regexp, e.g. /[[\]]/
            //
            // Note: If "where" is on an open bracket, then this bracket is ignored.
            //
            // Returns false when no bracket was found, null when it reached
            // maxScanLines and gave up
            function scanForBracket(cm, where, dir, style, config) {
              var maxScanLen = (config && config.maxScanLineLength) || 10000;
              var maxScanLines = (config && config.maxScanLines) || 1000;
          
              var stack = [];
              var re = config && config.bracketRegex ? config.bracketRegex : /[(){}[\]]/;
              var lineEnd = dir > 0 ? Math.min(where.line + maxScanLines, cm.lastLine() + 1)
                                    : Math.max(cm.firstLine() - 1, where.line - maxScanLines);
              for (var lineNo = where.line; lineNo != lineEnd; lineNo += dir) {
                var line = cm.getLine(lineNo);
                if (!line) continue;
                var pos = dir > 0 ? 0 : line.length - 1, end = dir > 0 ? line.length : -1;
                if (line.length > maxScanLen) continue;
                if (lineNo == where.line) pos = where.ch - (dir < 0 ? 1 : 0);
                for (; pos != end; pos += dir) {
                  var ch = line.charAt(pos);
                  if (re.test(ch) && (style === undefined || cm.getTokenTypeAt(Pos(lineNo, pos + 1)) == style)) {
                    var match = matching[ch];
                    if ((match.charAt(1) == ">") == (dir > 0)) stack.push(ch);
                    else if (!stack.length) return {pos: Pos(lineNo, pos), ch: ch};
                    else stack.pop();
                  }
                }
              }
              return lineNo - dir == (dir > 0 ? cm.lastLine() : cm.firstLine()) ? false : null;
            }
          
            function matchBrackets(cm, autoclear, config) {
              // Disable brace matching in long lines, since it'll cause hugely slow updates
              var maxHighlightLen = cm.state.matchBrackets.maxHighlightLineLength || 1000;
              var marks = [], ranges = cm.listSelections();
              for (var i = 0; i < ranges.length; i++) {
                var match = ranges[i].empty() && findMatchingBracket(cm, ranges[i].head, false, config);
                if (match && cm.getLine(match.from.line).length <= maxHighlightLen) {
                  var style = match.match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket";
                  marks.push(cm.markText(match.from, Pos(match.from.line, match.from.ch + 1), {className: style}));
                  if (match.to && cm.getLine(match.to.line).length <= maxHighlightLen)
                    marks.push(cm.markText(match.to, Pos(match.to.line, match.to.ch + 1), {className: style}));
                }
              }
          
              if (marks.length) {
                // Kludge to work around the IE bug from issue #1193, where text
                // input stops going to the textare whever this fires.
                if (ie_lt8 && cm.state.focused) cm.focus();
          
                var clear = function() {
                  cm.operation(function() {
                    for (var i = 0; i < marks.length; i++) marks[i].clear();
                  });
                };
                if (autoclear) setTimeout(clear, 800);
                else return clear;
              }
            }
          
            var currentlyHighlighted = null;
            function doMatchBrackets(cm) {
              cm.operation(function() {
                if (currentlyHighlighted) {currentlyHighlighted(); currentlyHighlighted = null;}
                currentlyHighlighted = matchBrackets(cm, false, cm.state.matchBrackets);
              });
            }
          
            CodeMirror.defineOption("matchBrackets", false, function(cm, val, old) {
              if (old && old != CodeMirror.Init)
                cm.off("cursorActivity", doMatchBrackets);
              if (val) {
                cm.state.matchBrackets = typeof val == "object" ? val : {};
                cm.on("cursorActivity", doMatchBrackets);
              }
            });
          
            CodeMirror.defineExtension("matchBrackets", function() {matchBrackets(this, true);});
            CodeMirror.defineExtension("findMatchingBracket", function(pos, strict, config){
              return findMatchingBracket(this, pos, strict, config);
            });
            CodeMirror.defineExtension("scanForBracket", function(pos, dir, style, config){
              return scanForBracket(this, pos, dir, style, config);
            });
          });
          
        • matchtags.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("../fold/xml-fold"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "../fold/xml-fold"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineOption("matchTags", false, function(cm, val, old) {
              if (old && old != CodeMirror.Init) {
                cm.off("cursorActivity", doMatchTags);
                cm.off("viewportChange", maybeUpdateMatch);
                clear(cm);
              }
              if (val) {
                cm.state.matchBothTags = typeof val == "object" && val.bothTags;
                cm.on("cursorActivity", doMatchTags);
                cm.on("viewportChange", maybeUpdateMatch);
                doMatchTags(cm);
              }
            });
          
            function clear(cm) {
              if (cm.state.tagHit) cm.state.tagHit.clear();
              if (cm.state.tagOther) cm.state.tagOther.clear();
              cm.state.tagHit = cm.state.tagOther = null;
            }
          
            function doMatchTags(cm) {
              cm.state.failedTagMatch = false;
              cm.operation(function() {
                clear(cm);
                if (cm.somethingSelected()) return;
                var cur = cm.getCursor(), range = cm.getViewport();
                range.from = Math.min(range.from, cur.line); range.to = Math.max(cur.line + 1, range.to);
                var match = CodeMirror.findMatchingTag(cm, cur, range);
                if (!match) return;
                if (cm.state.matchBothTags) {
                  var hit = match.at == "open" ? match.open : match.close;
                  if (hit) cm.state.tagHit = cm.markText(hit.from, hit.to, {className: "CodeMirror-matchingtag"});
                }
                var other = match.at == "close" ? match.open : match.close;
                if (other)
                  cm.state.tagOther = cm.markText(other.from, other.to, {className: "CodeMirror-matchingtag"});
                else
                  cm.state.failedTagMatch = true;
              });
            }
          
            function maybeUpdateMatch(cm) {
              if (cm.state.failedTagMatch) doMatchTags(cm);
            }
          
            CodeMirror.commands.toMatchingTag = function(cm) {
              var found = CodeMirror.findMatchingTag(cm, cm.getCursor());
              if (found) {
                var other = found.at == "close" ? found.open : found.close;
                if (other) cm.extendSelection(other.to, other.from);
              }
            };
          });
          
        • trailingspace.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            CodeMirror.defineOption("showTrailingSpace", false, function(cm, val, prev) {
              if (prev == CodeMirror.Init) prev = false;
              if (prev && !val)
                cm.removeOverlay("trailingspace");
              else if (!prev && val)
                cm.addOverlay({
                  token: function(stream) {
                    for (var l = stream.string.length, i = l; i && /\s/.test(stream.string.charAt(i - 1)); --i) {}
                    if (i > stream.pos) { stream.pos = i; return null; }
                    stream.pos = l;
                    return "trailingspace";
                  },
                  name: "trailingspace"
                });
            });
          });
          
      • fold
        • brace-fold.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.registerHelper("fold", "brace", function(cm, start) {
            var line = start.line, lineText = cm.getLine(line);
            var startCh, tokenType;
          
            function findOpening(openCh) {
              for (var at = start.ch, pass = 0;;) {
                var found = at <= 0 ? -1 : lineText.lastIndexOf(openCh, at - 1);
                if (found == -1) {
                  if (pass == 1) break;
                  pass = 1;
                  at = lineText.length;
                  continue;
                }
                if (pass == 1 && found < start.ch) break;
                tokenType = cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1));
                if (!/^(comment|string)/.test(tokenType)) return found + 1;
                at = found - 1;
              }
            }
          
            var startToken = "{", endToken = "}", startCh = findOpening("{");
            if (startCh == null) {
              startToken = "[", endToken = "]";
              startCh = findOpening("[");
            }
          
            if (startCh == null) return;
            var count = 1, lastLine = cm.lastLine(), end, endCh;
            outer: for (var i = line; i <= lastLine; ++i) {
              var text = cm.getLine(i), pos = i == line ? startCh : 0;
              for (;;) {
                var nextOpen = text.indexOf(startToken, pos), nextClose = text.indexOf(endToken, pos);
                if (nextOpen < 0) nextOpen = text.length;
                if (nextClose < 0) nextClose = text.length;
                pos = Math.min(nextOpen, nextClose);
                if (pos == text.length) break;
                if (cm.getTokenTypeAt(CodeMirror.Pos(i, pos + 1)) == tokenType) {
                  if (pos == nextOpen) ++count;
                  else if (!--count) { end = i; endCh = pos; break outer; }
                }
                ++pos;
              }
            }
            if (end == null || line == end && endCh == startCh) return;
            return {from: CodeMirror.Pos(line, startCh),
                    to: CodeMirror.Pos(end, endCh)};
          });
          
          CodeMirror.registerHelper("fold", "import", function(cm, start) {
            function hasImport(line) {
              if (line < cm.firstLine() || line > cm.lastLine()) return null;
              var start = cm.getTokenAt(CodeMirror.Pos(line, 1));
              if (!/\S/.test(start.string)) start = cm.getTokenAt(CodeMirror.Pos(line, start.end + 1));
              if (start.type != "keyword" || start.string != "import") return null;
              // Now find closing semicolon, return its position
              for (var i = line, e = Math.min(cm.lastLine(), line + 10); i <= e; ++i) {
                var text = cm.getLine(i), semi = text.indexOf(";");
                if (semi != -1) return {startCh: start.end, end: CodeMirror.Pos(i, semi)};
              }
            }
          
            var start = start.line, has = hasImport(start), prev;
            if (!has || hasImport(start - 1) || ((prev = hasImport(start - 2)) && prev.end.line == start - 1))
              return null;
            for (var end = has.end;;) {
              var next = hasImport(end.line + 1);
              if (next == null) break;
              end = next.end;
            }
            return {from: cm.clipPos(CodeMirror.Pos(start, has.startCh + 1)), to: end};
          });
          
          CodeMirror.registerHelper("fold", "include", function(cm, start) {
            function hasInclude(line) {
              if (line < cm.firstLine() || line > cm.lastLine()) return null;
              var start = cm.getTokenAt(CodeMirror.Pos(line, 1));
              if (!/\S/.test(start.string)) start = cm.getTokenAt(CodeMirror.Pos(line, start.end + 1));
              if (start.type == "meta" && start.string.slice(0, 8) == "#include") return start.start + 8;
            }
          
            var start = start.line, has = hasInclude(start);
            if (has == null || hasInclude(start - 1) != null) return null;
            for (var end = start;;) {
              var next = hasInclude(end + 1);
              if (next == null) break;
              ++end;
            }
            return {from: CodeMirror.Pos(start, has + 1),
                    to: cm.clipPos(CodeMirror.Pos(end))};
          });
          
          });
          
        • comment-fold.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.registerGlobalHelper("fold", "comment", function(mode) {
            return mode.blockCommentStart && mode.blockCommentEnd;
          }, function(cm, start) {
            var mode = cm.getModeAt(start), startToken = mode.blockCommentStart, endToken = mode.blockCommentEnd;
            if (!startToken || !endToken) return;
            var line = start.line, lineText = cm.getLine(line);
          
            var startCh;
            for (var at = start.ch, pass = 0;;) {
              var found = at <= 0 ? -1 : lineText.lastIndexOf(startToken, at - 1);
              if (found == -1) {
                if (pass == 1) return;
                pass = 1;
                at = lineText.length;
                continue;
              }
              if (pass == 1 && found < start.ch) return;
              if (/comment/.test(cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1)))) {
                startCh = found + startToken.length;
                break;
              }
              at = found - 1;
            }
          
            var depth = 1, lastLine = cm.lastLine(), end, endCh;
            outer: for (var i = line; i <= lastLine; ++i) {
              var text = cm.getLine(i), pos = i == line ? startCh : 0;
              for (;;) {
                var nextOpen = text.indexOf(startToken, pos), nextClose = text.indexOf(endToken, pos);
                if (nextOpen < 0) nextOpen = text.length;
                if (nextClose < 0) nextClose = text.length;
                pos = Math.min(nextOpen, nextClose);
                if (pos == text.length) break;
                if (pos == nextOpen) ++depth;
                else if (!--depth) { end = i; endCh = pos; break outer; }
                ++pos;
              }
            }
            if (end == null || line == end && endCh == startCh) return;
            return {from: CodeMirror.Pos(line, startCh),
                    to: CodeMirror.Pos(end, endCh)};
          });
          
          });
          
        • foldcode.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            function doFold(cm, pos, options, force) {
              if (options && options.call) {
                var finder = options;
                options = null;
              } else {
                var finder = getOption(cm, options, "rangeFinder");
              }
              if (typeof pos == "number") pos = CodeMirror.Pos(pos, 0);
              var minSize = getOption(cm, options, "minFoldSize");
          
              function getRange(allowFolded) {
                var range = finder(cm, pos);
                if (!range || range.to.line - range.from.line < minSize) return null;
                var marks = cm.findMarksAt(range.from);
                for (var i = 0; i < marks.length; ++i) {
                  if (marks[i].__isFold && force !== "fold") {
                    if (!allowFolded) return null;
                    range.cleared = true;
                    marks[i].clear();
                  }
                }
                return range;
              }
          
              var range = getRange(true);
              if (getOption(cm, options, "scanUp")) while (!range && pos.line > cm.firstLine()) {
                pos = CodeMirror.Pos(pos.line - 1, 0);
                range = getRange(false);
              }
              if (!range || range.cleared || force === "unfold") return;
          
              var myWidget = makeWidget(cm, options);
              CodeMirror.on(myWidget, "mousedown", function(e) {
                myRange.clear();
                CodeMirror.e_preventDefault(e);
              });
              var myRange = cm.markText(range.from, range.to, {
                replacedWith: myWidget,
                clearOnEnter: true,
                __isFold: true
              });
              myRange.on("clear", function(from, to) {
                CodeMirror.signal(cm, "unfold", cm, from, to);
              });
              CodeMirror.signal(cm, "fold", cm, range.from, range.to);
            }
          
            function makeWidget(cm, options) {
              var widget = getOption(cm, options, "widget");
              if (typeof widget == "string") {
                var text = document.createTextNode(widget);
                widget = document.createElement("span");
                widget.appendChild(text);
                widget.className = "CodeMirror-foldmarker";
              }
              return widget;
            }
          
            // Clumsy backwards-compatible interface
            CodeMirror.newFoldFunction = function(rangeFinder, widget) {
              return function(cm, pos) { doFold(cm, pos, {rangeFinder: rangeFinder, widget: widget}); };
            };
          
            // New-style interface
            CodeMirror.defineExtension("foldCode", function(pos, options, force) {
              doFold(this, pos, options, force);
            });
          
            CodeMirror.defineExtension("isFolded", function(pos) {
              var marks = this.findMarksAt(pos);
              for (var i = 0; i < marks.length; ++i)
                if (marks[i].__isFold) return true;
            });
          
            CodeMirror.commands.toggleFold = function(cm) {
              cm.foldCode(cm.getCursor());
            };
            CodeMirror.commands.fold = function(cm) {
              cm.foldCode(cm.getCursor(), null, "fold");
            };
            CodeMirror.commands.unfold = function(cm) {
              cm.foldCode(cm.getCursor(), null, "unfold");
            };
            CodeMirror.commands.foldAll = function(cm) {
              cm.operation(function() {
                for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)
                  cm.foldCode(CodeMirror.Pos(i, 0), null, "fold");
              });
            };
            CodeMirror.commands.unfoldAll = function(cm) {
              cm.operation(function() {
                for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)
                  cm.foldCode(CodeMirror.Pos(i, 0), null, "unfold");
              });
            };
          
            CodeMirror.registerHelper("fold", "combine", function() {
              var funcs = Array.prototype.slice.call(arguments, 0);
              return function(cm, start) {
                for (var i = 0; i < funcs.length; ++i) {
                  var found = funcs[i](cm, start);
                  if (found) return found;
                }
              };
            });
          
            CodeMirror.registerHelper("fold", "auto", function(cm, start) {
              var helpers = cm.getHelpers(start, "fold");
              for (var i = 0; i < helpers.length; i++) {
                var cur = helpers[i](cm, start);
                if (cur) return cur;
              }
            });
          
            var defaultOptions = {
              rangeFinder: CodeMirror.fold.auto,
              widget: "\u2194",
              minFoldSize: 0,
              scanUp: false
            };
          
            CodeMirror.defineOption("foldOptions", null);
          
            function getOption(cm, options, name) {
              if (options && options[name] !== undefined)
                return options[name];
              var editorOptions = cm.options.foldOptions;
              if (editorOptions && editorOptions[name] !== undefined)
                return editorOptions[name];
              return defaultOptions[name];
            }
          
            CodeMirror.defineExtension("foldOption", function(options, name) {
              return getOption(this, options, name);
            });
          });
          
        • foldgutter.css
          .CodeMirror-foldmarker {
            color: blue;
            text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px;
            font-family: arial;
            line-height: .3;
            cursor: pointer;
          }
          .CodeMirror-foldgutter {
            width: .7em;
          }
          .CodeMirror-foldgutter-open,
          .CodeMirror-foldgutter-folded {
            cursor: pointer;
          }
          .CodeMirror-foldgutter-open:after {
            content: "\25BE";
          }
          .CodeMirror-foldgutter-folded:after {
            content: "\25B8";
          }
          
        • foldgutter.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("./foldcode"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "./foldcode"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineOption("foldGutter", false, function(cm, val, old) {
              if (old && old != CodeMirror.Init) {
                cm.clearGutter(cm.state.foldGutter.options.gutter);
                cm.state.foldGutter = null;
                cm.off("gutterClick", onGutterClick);
                cm.off("change", onChange);
                cm.off("viewportChange", onViewportChange);
                cm.off("fold", onFold);
                cm.off("unfold", onFold);
                cm.off("swapDoc", updateInViewport);
              }
              if (val) {
                cm.state.foldGutter = new State(parseOptions(val));
                updateInViewport(cm);
                cm.on("gutterClick", onGutterClick);
                cm.on("change", onChange);
                cm.on("viewportChange", onViewportChange);
                cm.on("fold", onFold);
                cm.on("unfold", onFold);
                cm.on("swapDoc", updateInViewport);
              }
            });
          
            var Pos = CodeMirror.Pos;
          
            function State(options) {
              this.options = options;
              this.from = this.to = 0;
            }
          
            function parseOptions(opts) {
              if (opts === true) opts = {};
              if (opts.gutter == null) opts.gutter = "CodeMirror-foldgutter";
              if (opts.indicatorOpen == null) opts.indicatorOpen = "CodeMirror-foldgutter-open";
              if (opts.indicatorFolded == null) opts.indicatorFolded = "CodeMirror-foldgutter-folded";
              return opts;
            }
          
            function isFolded(cm, line) {
              var marks = cm.findMarksAt(Pos(line));
              for (var i = 0; i < marks.length; ++i)
                if (marks[i].__isFold && marks[i].find().from.line == line) return marks[i];
            }
          
            function marker(spec) {
              if (typeof spec == "string") {
                var elt = document.createElement("div");
                elt.className = spec + " CodeMirror-guttermarker-subtle";
                return elt;
              } else {
                return spec.cloneNode(true);
              }
            }
          
            function updateFoldInfo(cm, from, to) {
              var opts = cm.state.foldGutter.options, cur = from;
              var minSize = cm.foldOption(opts, "minFoldSize");
              var func = cm.foldOption(opts, "rangeFinder");
              cm.eachLine(from, to, function(line) {
                var mark = null;
                if (isFolded(cm, cur)) {
                  mark = marker(opts.indicatorFolded);
                } else {
                  var pos = Pos(cur, 0);
                  var range = func && func(cm, pos);
                  if (range && range.to.line - range.from.line >= minSize)
                    mark = marker(opts.indicatorOpen);
                }
                cm.setGutterMarker(line, opts.gutter, mark);
                ++cur;
              });
            }
          
            function updateInViewport(cm) {
              var vp = cm.getViewport(), state = cm.state.foldGutter;
              if (!state) return;
              cm.operation(function() {
                updateFoldInfo(cm, vp.from, vp.to);
              });
              state.from = vp.from; state.to = vp.to;
            }
          
            function onGutterClick(cm, line, gutter) {
              var state = cm.state.foldGutter;
              if (!state) return;
              var opts = state.options;
              if (gutter != opts.gutter) return;
              var folded = isFolded(cm, line);
              if (folded) folded.clear();
              else cm.foldCode(Pos(line, 0), opts.rangeFinder);
            }
          
            function onChange(cm) {
              var state = cm.state.foldGutter;
              if (!state) return;
              var opts = state.options;
              state.from = state.to = 0;
              clearTimeout(state.changeUpdate);
              state.changeUpdate = setTimeout(function() { updateInViewport(cm); }, opts.foldOnChangeTimeSpan || 600);
            }
          
            function onViewportChange(cm) {
              var state = cm.state.foldGutter;
              if (!state) return;
              var opts = state.options;
              clearTimeout(state.changeUpdate);
              state.changeUpdate = setTimeout(function() {
                var vp = cm.getViewport();
                if (state.from == state.to || vp.from - state.to > 20 || state.from - vp.to > 20) {
                  updateInViewport(cm);
                } else {
                  cm.operation(function() {
                    if (vp.from < state.from) {
                      updateFoldInfo(cm, vp.from, state.from);
                      state.from = vp.from;
                    }
                    if (vp.to > state.to) {
                      updateFoldInfo(cm, state.to, vp.to);
                      state.to = vp.to;
                    }
                  });
                }
              }, opts.updateViewportTimeSpan || 400);
            }
          
            function onFold(cm, from) {
              var state = cm.state.foldGutter;
              if (!state) return;
              var line = from.line;
              if (line >= state.from && line < state.to)
                updateFoldInfo(cm, line, line + 1);
            }
          });
          
        • indent-fold.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.registerHelper("fold", "indent", function(cm, start) {
            var tabSize = cm.getOption("tabSize"), firstLine = cm.getLine(start.line);
            if (!/\S/.test(firstLine)) return;
            var getIndent = function(line) {
              return CodeMirror.countColumn(line, null, tabSize);
            };
            var myIndent = getIndent(firstLine);
            var lastLineInFold = null;
            // Go through lines until we find a line that definitely doesn't belong in
            // the block we're folding, or to the end.
            for (var i = start.line + 1, end = cm.lastLine(); i <= end; ++i) {
              var curLine = cm.getLine(i);
              var curIndent = getIndent(curLine);
              if (curIndent > myIndent) {
                // Lines with a greater indent are considered part of the block.
                lastLineInFold = i;
              } else if (!/\S/.test(curLine)) {
                // Empty lines might be breaks within the block we're trying to fold.
              } else {
                // A non-empty line at an indent equal to or less than ours marks the
                // start of another block.
                break;
              }
            }
            if (lastLineInFold) return {
              from: CodeMirror.Pos(start.line, firstLine.length),
              to: CodeMirror.Pos(lastLineInFold, cm.getLine(lastLineInFold).length)
            };
          });
          
          });
          
        • markdown-fold.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.registerHelper("fold", "markdown", function(cm, start) {
            var maxDepth = 100;
          
            function isHeader(lineNo) {
              var tokentype = cm.getTokenTypeAt(CodeMirror.Pos(lineNo, 0));
              return tokentype && /\bheader\b/.test(tokentype);
            }
          
            function headerLevel(lineNo, line, nextLine) {
              var match = line && line.match(/^#+/);
              if (match && isHeader(lineNo)) return match[0].length;
              match = nextLine && nextLine.match(/^[=\-]+\s*$/);
              if (match && isHeader(lineNo + 1)) return nextLine[0] == "=" ? 1 : 2;
              return maxDepth;
            }
          
            var firstLine = cm.getLine(start.line), nextLine = cm.getLine(start.line + 1);
            var level = headerLevel(start.line, firstLine, nextLine);
            if (level === maxDepth) return undefined;
          
            var lastLineNo = cm.lastLine();
            var end = start.line, nextNextLine = cm.getLine(end + 2);
            while (end < lastLineNo) {
              if (headerLevel(end + 1, nextLine, nextNextLine) <= level) break;
              ++end;
              nextLine = nextNextLine;
              nextNextLine = cm.getLine(end + 2);
            }
          
            return {
              from: CodeMirror.Pos(start.line, firstLine.length),
              to: CodeMirror.Pos(end, cm.getLine(end).length)
            };
          });
          
          });
          
        • xml-fold.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            var Pos = CodeMirror.Pos;
            function cmp(a, b) { return a.line - b.line || a.ch - b.ch; }
          
            var nameStartChar = "A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD";
            var nameChar = nameStartChar + "\-\:\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040";
            var xmlTagStart = new RegExp("<(/?)([" + nameStartChar + "][" + nameChar + "]*)", "g");
          
            function Iter(cm, line, ch, range) {
              this.line = line; this.ch = ch;
              this.cm = cm; this.text = cm.getLine(line);
              this.min = range ? range.from : cm.firstLine();
              this.max = range ? range.to - 1 : cm.lastLine();
            }
          
            function tagAt(iter, ch) {
              var type = iter.cm.getTokenTypeAt(Pos(iter.line, ch));
              return type && /\btag\b/.test(type);
            }
          
            function nextLine(iter) {
              if (iter.line >= iter.max) return;
              iter.ch = 0;
              iter.text = iter.cm.getLine(++iter.line);
              return true;
            }
            function prevLine(iter) {
              if (iter.line <= iter.min) return;
              iter.text = iter.cm.getLine(--iter.line);
              iter.ch = iter.text.length;
              return true;
            }
          
            function toTagEnd(iter) {
              for (;;) {
                var gt = iter.text.indexOf(">", iter.ch);
                if (gt == -1) { if (nextLine(iter)) continue; else return; }
                if (!tagAt(iter, gt + 1)) { iter.ch = gt + 1; continue; }
                var lastSlash = iter.text.lastIndexOf("/", gt);
                var selfClose = lastSlash > -1 && !/\S/.test(iter.text.slice(lastSlash + 1, gt));
                iter.ch = gt + 1;
                return selfClose ? "selfClose" : "regular";
              }
            }
            function toTagStart(iter) {
              for (;;) {
                var lt = iter.ch ? iter.text.lastIndexOf("<", iter.ch - 1) : -1;
                if (lt == -1) { if (prevLine(iter)) continue; else return; }
                if (!tagAt(iter, lt + 1)) { iter.ch = lt; continue; }
                xmlTagStart.lastIndex = lt;
                iter.ch = lt;
                var match = xmlTagStart.exec(iter.text);
                if (match && match.index == lt) return match;
              }
            }
          
            function toNextTag(iter) {
              for (;;) {
                xmlTagStart.lastIndex = iter.ch;
                var found = xmlTagStart.exec(iter.text);
                if (!found) { if (nextLine(iter)) continue; else return; }
                if (!tagAt(iter, found.index + 1)) { iter.ch = found.index + 1; continue; }
                iter.ch = found.index + found[0].length;
                return found;
              }
            }
            function toPrevTag(iter) {
              for (;;) {
                var gt = iter.ch ? iter.text.lastIndexOf(">", iter.ch - 1) : -1;
                if (gt == -1) { if (prevLine(iter)) continue; else return; }
                if (!tagAt(iter, gt + 1)) { iter.ch = gt; continue; }
                var lastSlash = iter.text.lastIndexOf("/", gt);
                var selfClose = lastSlash > -1 && !/\S/.test(iter.text.slice(lastSlash + 1, gt));
                iter.ch = gt + 1;
                return selfClose ? "selfClose" : "regular";
              }
            }
          
            function findMatchingClose(iter, tag) {
              var stack = [];
              for (;;) {
                var next = toNextTag(iter), end, startLine = iter.line, startCh = iter.ch - (next ? next[0].length : 0);
                if (!next || !(end = toTagEnd(iter))) return;
                if (end == "selfClose") continue;
                if (next[1]) { // closing tag
                  for (var i = stack.length - 1; i >= 0; --i) if (stack[i] == next[2]) {
                    stack.length = i;
                    break;
                  }
                  if (i < 0 && (!tag || tag == next[2])) return {
                    tag: next[2],
                    from: Pos(startLine, startCh),
                    to: Pos(iter.line, iter.ch)
                  };
                } else { // opening tag
                  stack.push(next[2]);
                }
              }
            }
            function findMatchingOpen(iter, tag) {
              var stack = [];
              for (;;) {
                var prev = toPrevTag(iter);
                if (!prev) return;
                if (prev == "selfClose") { toTagStart(iter); continue; }
                var endLine = iter.line, endCh = iter.ch;
                var start = toTagStart(iter);
                if (!start) return;
                if (start[1]) { // closing tag
                  stack.push(start[2]);
                } else { // opening tag
                  for (var i = stack.length - 1; i >= 0; --i) if (stack[i] == start[2]) {
                    stack.length = i;
                    break;
                  }
                  if (i < 0 && (!tag || tag == start[2])) return {
                    tag: start[2],
                    from: Pos(iter.line, iter.ch),
                    to: Pos(endLine, endCh)
                  };
                }
              }
            }
          
            CodeMirror.registerHelper("fold", "xml", function(cm, start) {
              var iter = new Iter(cm, start.line, 0);
              for (;;) {
                var openTag = toNextTag(iter), end;
                if (!openTag || iter.line != start.line || !(end = toTagEnd(iter))) return;
                if (!openTag[1] && end != "selfClose") {
                  var start = Pos(iter.line, iter.ch);
                  var close = findMatchingClose(iter, openTag[2]);
                  return close && {from: start, to: close.from};
                }
              }
            });
            CodeMirror.findMatchingTag = function(cm, pos, range) {
              var iter = new Iter(cm, pos.line, pos.ch, range);
              if (iter.text.indexOf(">") == -1 && iter.text.indexOf("<") == -1) return;
              var end = toTagEnd(iter), to = end && Pos(iter.line, iter.ch);
              var start = end && toTagStart(iter);
              if (!end || !start || cmp(iter, pos) > 0) return;
              var here = {from: Pos(iter.line, iter.ch), to: to, tag: start[2]};
              if (end == "selfClose") return {open: here, close: null, at: "open"};
          
              if (start[1]) { // closing tag
                return {open: findMatchingOpen(iter, start[2]), close: here, at: "close"};
              } else { // opening tag
                iter = new Iter(cm, to.line, to.ch, range);
                return {open: here, close: findMatchingClose(iter, start[2]), at: "open"};
              }
            };
          
            CodeMirror.findEnclosingTag = function(cm, pos, range) {
              var iter = new Iter(cm, pos.line, pos.ch, range);
              for (;;) {
                var open = findMatchingOpen(iter);
                if (!open) break;
                var forward = new Iter(cm, pos.line, pos.ch, range);
                var close = findMatchingClose(forward, open.tag);
                if (close) return {open: open, close: close};
              }
            };
          
            // Used by addon/edit/closetag.js
            CodeMirror.scanForClosingTag = function(cm, pos, name, end) {
              var iter = new Iter(cm, pos.line, pos.ch, end ? {from: 0, to: end} : null);
              return findMatchingClose(iter, name);
            };
          });
          
      • hint
        • anyword-hint.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            var WORD = /[\w$]+/, RANGE = 500;
          
            CodeMirror.registerHelper("hint", "anyword", function(editor, options) {
              var word = options && options.word || WORD;
              var range = options && options.range || RANGE;
              var cur = editor.getCursor(), curLine = editor.getLine(cur.line);
              var end = cur.ch, start = end;
              while (start && word.test(curLine.charAt(start - 1))) --start;
              var curWord = start != end && curLine.slice(start, end);
          
              var list = options && options.list || [], seen = {};
              var re = new RegExp(word.source, "g");
              for (var dir = -1; dir <= 1; dir += 2) {
                var line = cur.line, endLine = Math.min(Math.max(line + dir * range, editor.firstLine()), editor.lastLine()) + dir;
                for (; line != endLine; line += dir) {
                  var text = editor.getLine(line), m;
                  while (m = re.exec(text)) {
                    if (line == cur.line && m[0] === curWord) continue;
                    if ((!curWord || m[0].lastIndexOf(curWord, 0) == 0) && !Object.prototype.hasOwnProperty.call(seen, m[0])) {
                      seen[m[0]] = true;
                      list.push(m[0]);
                    }
                  }
                }
              }
              return {list: list, from: CodeMirror.Pos(cur.line, start), to: CodeMirror.Pos(cur.line, end)};
            });
          });
          
        • css-hint.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("../../mode/css/css"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "../../mode/css/css"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            var pseudoClasses = {link: 1, visited: 1, active: 1, hover: 1, focus: 1,
                                 "first-letter": 1, "first-line": 1, "first-child": 1,
                                 before: 1, after: 1, lang: 1};
          
            CodeMirror.registerHelper("hint", "css", function(cm) {
              var cur = cm.getCursor(), token = cm.getTokenAt(cur);
              var inner = CodeMirror.innerMode(cm.getMode(), token.state);
              if (inner.mode.name != "css") return;
          
              if (token.type == "keyword" && "!important".indexOf(token.string) == 0)
                return {list: ["!important"], from: CodeMirror.Pos(cur.line, token.start),
                        to: CodeMirror.Pos(cur.line, token.end)};
          
              var start = token.start, end = cur.ch, word = token.string.slice(0, end - start);
              if (/[^\w$_-]/.test(word)) {
                word = ""; start = end = cur.ch;
              }
          
              var spec = CodeMirror.resolveMode("text/css");
          
              var result = [];
              function add(keywords) {
                for (var name in keywords)
                  if (!word || name.lastIndexOf(word, 0) == 0)
                    result.push(name);
              }
          
              var st = inner.state.state;
              if (st == "pseudo" || token.type == "variable-3") {
                add(pseudoClasses);
              } else if (st == "block" || st == "maybeprop") {
                add(spec.propertyKeywords);
              } else if (st == "prop" || st == "parens" || st == "at" || st == "params") {
                add(spec.valueKeywords);
                add(spec.colorKeywords);
              } else if (st == "media" || st == "media_parens") {
                add(spec.mediaTypes);
                add(spec.mediaFeatures);
              }
          
              if (result.length) return {
                list: result,
                from: CodeMirror.Pos(cur.line, start),
                to: CodeMirror.Pos(cur.line, end)
              };
            });
          });
          
        • html-hint.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("./xml-hint"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "./xml-hint"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            var langs = "ab aa af ak sq am ar an hy as av ae ay az bm ba eu be bn bh bi bs br bg my ca ch ce ny zh cv kw co cr hr cs da dv nl dz en eo et ee fo fj fi fr ff gl ka de el gn gu ht ha he hz hi ho hu ia id ie ga ig ik io is it iu ja jv kl kn kr ks kk km ki rw ky kv kg ko ku kj la lb lg li ln lo lt lu lv gv mk mg ms ml mt mi mr mh mn na nv nb nd ne ng nn no ii nr oc oj cu om or os pa pi fa pl ps pt qu rm rn ro ru sa sc sd se sm sg sr gd sn si sk sl so st es su sw ss sv ta te tg th ti bo tk tl tn to tr ts tt tw ty ug uk ur uz ve vi vo wa cy wo fy xh yi yo za zu".split(" ");
            var targets = ["_blank", "_self", "_top", "_parent"];
            var charsets = ["ascii", "utf-8", "utf-16", "latin1", "latin1"];
            var methods = ["get", "post", "put", "delete"];
            var encs = ["application/x-www-form-urlencoded", "multipart/form-data", "text/plain"];
            var media = ["all", "screen", "print", "embossed", "braille", "handheld", "print", "projection", "screen", "tty", "tv", "speech",
                         "3d-glasses", "resolution [>][<][=] [X]", "device-aspect-ratio: X/Y", "orientation:portrait",
                         "orientation:landscape", "device-height: [X]", "device-width: [X]"];
            var s = { attrs: {} }; // Simple tag, reused for a whole lot of tags
          
            var data = {
              a: {
                attrs: {
                  href: null, ping: null, type: null,
                  media: media,
                  target: targets,
                  hreflang: langs
                }
              },
              abbr: s,
              acronym: s,
              address: s,
              applet: s,
              area: {
                attrs: {
                  alt: null, coords: null, href: null, target: null, ping: null,
                  media: media, hreflang: langs, type: null,
                  shape: ["default", "rect", "circle", "poly"]
                }
              },
              article: s,
              aside: s,
              audio: {
                attrs: {
                  src: null, mediagroup: null,
                  crossorigin: ["anonymous", "use-credentials"],
                  preload: ["none", "metadata", "auto"],
                  autoplay: ["", "autoplay"],
                  loop: ["", "loop"],
                  controls: ["", "controls"]
                }
              },
              b: s,
              base: { attrs: { href: null, target: targets } },
              basefont: s,
              bdi: s,
              bdo: s,
              big: s,
              blockquote: { attrs: { cite: null } },
              body: s,
              br: s,
              button: {
                attrs: {
                  form: null, formaction: null, name: null, value: null,
                  autofocus: ["", "autofocus"],
                  disabled: ["", "autofocus"],
                  formenctype: encs,
                  formmethod: methods,
                  formnovalidate: ["", "novalidate"],
                  formtarget: targets,
                  type: ["submit", "reset", "button"]
                }
              },
              canvas: { attrs: { width: null, height: null } },
              caption: s,
              center: s,
              cite: s,
              code: s,
              col: { attrs: { span: null } },
              colgroup: { attrs: { span: null } },
              command: {
                attrs: {
                  type: ["command", "checkbox", "radio"],
                  label: null, icon: null, radiogroup: null, command: null, title: null,
                  disabled: ["", "disabled"],
                  checked: ["", "checked"]
                }
              },
              data: { attrs: { value: null } },
              datagrid: { attrs: { disabled: ["", "disabled"], multiple: ["", "multiple"] } },
              datalist: { attrs: { data: null } },
              dd: s,
              del: { attrs: { cite: null, datetime: null } },
              details: { attrs: { open: ["", "open"] } },
              dfn: s,
              dir: s,
              div: s,
              dl: s,
              dt: s,
              em: s,
              embed: { attrs: { src: null, type: null, width: null, height: null } },
              eventsource: { attrs: { src: null } },
              fieldset: { attrs: { disabled: ["", "disabled"], form: null, name: null } },
              figcaption: s,
              figure: s,
              font: s,
              footer: s,
              form: {
                attrs: {
                  action: null, name: null,
                  "accept-charset": charsets,
                  autocomplete: ["on", "off"],
                  enctype: encs,
                  method: methods,
                  novalidate: ["", "novalidate"],
                  target: targets
                }
              },
              frame: s,
              frameset: s,
              h1: s, h2: s, h3: s, h4: s, h5: s, h6: s,
              head: {
                attrs: {},
                children: ["title", "base", "link", "style", "meta", "script", "noscript", "command"]
              },
              header: s,
              hgroup: s,
              hr: s,
              html: {
                attrs: { manifest: null },
                children: ["head", "body"]
              },
              i: s,
              iframe: {
                attrs: {
                  src: null, srcdoc: null, name: null, width: null, height: null,
                  sandbox: ["allow-top-navigation", "allow-same-origin", "allow-forms", "allow-scripts"],
                  seamless: ["", "seamless"]
                }
              },
              img: {
                attrs: {
                  alt: null, src: null, ismap: null, usemap: null, width: null, height: null,
                  crossorigin: ["anonymous", "use-credentials"]
                }
              },
              input: {
                attrs: {
                  alt: null, dirname: null, form: null, formaction: null,
                  height: null, list: null, max: null, maxlength: null, min: null,
                  name: null, pattern: null, placeholder: null, size: null, src: null,
                  step: null, value: null, width: null,
                  accept: ["audio/*", "video/*", "image/*"],
                  autocomplete: ["on", "off"],
                  autofocus: ["", "autofocus"],
                  checked: ["", "checked"],
                  disabled: ["", "disabled"],
                  formenctype: encs,
                  formmethod: methods,
                  formnovalidate: ["", "novalidate"],
                  formtarget: targets,
                  multiple: ["", "multiple"],
                  readonly: ["", "readonly"],
                  required: ["", "required"],
                  type: ["hidden", "text", "search", "tel", "url", "email", "password", "datetime", "date", "month",
                         "week", "time", "datetime-local", "number", "range", "color", "checkbox", "radio",
                         "file", "submit", "image", "reset", "button"]
                }
              },
              ins: { attrs: { cite: null, datetime: null } },
              kbd: s,
              keygen: {
                attrs: {
                  challenge: null, form: null, name: null,
                  autofocus: ["", "autofocus"],
                  disabled: ["", "disabled"],
                  keytype: ["RSA"]
                }
              },
              label: { attrs: { "for": null, form: null } },
              legend: s,
              li: { attrs: { value: null } },
              link: {
                attrs: {
                  href: null, type: null,
                  hreflang: langs,
                  media: media,
                  sizes: ["all", "16x16", "16x16 32x32", "16x16 32x32 64x64"]
                }
              },
              map: { attrs: { name: null } },
              mark: s,
              menu: { attrs: { label: null, type: ["list", "context", "toolbar"] } },
              meta: {
                attrs: {
                  content: null,
                  charset: charsets,
                  name: ["viewport", "application-name", "author", "description", "generator", "keywords"],
                  "http-equiv": ["content-language", "content-type", "default-style", "refresh"]
                }
              },
              meter: { attrs: { value: null, min: null, low: null, high: null, max: null, optimum: null } },
              nav: s,
              noframes: s,
              noscript: s,
              object: {
                attrs: {
                  data: null, type: null, name: null, usemap: null, form: null, width: null, height: null,
                  typemustmatch: ["", "typemustmatch"]
                }
              },
              ol: { attrs: { reversed: ["", "reversed"], start: null, type: ["1", "a", "A", "i", "I"] } },
              optgroup: { attrs: { disabled: ["", "disabled"], label: null } },
              option: { attrs: { disabled: ["", "disabled"], label: null, selected: ["", "selected"], value: null } },
              output: { attrs: { "for": null, form: null, name: null } },
              p: s,
              param: { attrs: { name: null, value: null } },
              pre: s,
              progress: { attrs: { value: null, max: null } },
              q: { attrs: { cite: null } },
              rp: s,
              rt: s,
              ruby: s,
              s: s,
              samp: s,
              script: {
                attrs: {
                  type: ["text/javascript"],
                  src: null,
                  async: ["", "async"],
                  defer: ["", "defer"],
                  charset: charsets
                }
              },
              section: s,
              select: {
                attrs: {
                  form: null, name: null, size: null,
                  autofocus: ["", "autofocus"],
                  disabled: ["", "disabled"],
                  multiple: ["", "multiple"]
                }
              },
              small: s,
              source: { attrs: { src: null, type: null, media: null } },
              span: s,
              strike: s,
              strong: s,
              style: {
                attrs: {
                  type: ["text/css"],
                  media: media,
                  scoped: null
                }
              },
              sub: s,
              summary: s,
              sup: s,
              table: s,
              tbody: s,
              td: { attrs: { colspan: null, rowspan: null, headers: null } },
              textarea: {
                attrs: {
                  dirname: null, form: null, maxlength: null, name: null, placeholder: null,
                  rows: null, cols: null,
                  autofocus: ["", "autofocus"],
                  disabled: ["", "disabled"],
                  readonly: ["", "readonly"],
                  required: ["", "required"],
                  wrap: ["soft", "hard"]
                }
              },
              tfoot: s,
              th: { attrs: { colspan: null, rowspan: null, headers: null, scope: ["row", "col", "rowgroup", "colgroup"] } },
              thead: s,
              time: { attrs: { datetime: null } },
              title: s,
              tr: s,
              track: {
                attrs: {
                  src: null, label: null, "default": null,
                  kind: ["subtitles", "captions", "descriptions", "chapters", "metadata"],
                  srclang: langs
                }
              },
              tt: s,
              u: s,
              ul: s,
              "var": s,
              video: {
                attrs: {
                  src: null, poster: null, width: null, height: null,
                  crossorigin: ["anonymous", "use-credentials"],
                  preload: ["auto", "metadata", "none"],
                  autoplay: ["", "autoplay"],
                  mediagroup: ["movie"],
                  muted: ["", "muted"],
                  controls: ["", "controls"]
                }
              },
              wbr: s
            };
          
            var globalAttrs = {
              accesskey: ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"],
              "class": null,
              contenteditable: ["true", "false"],
              contextmenu: null,
              dir: ["ltr", "rtl", "auto"],
              draggable: ["true", "false", "auto"],
              dropzone: ["copy", "move", "link", "string:", "file:"],
              hidden: ["hidden"],
              id: null,
              inert: ["inert"],
              itemid: null,
              itemprop: null,
              itemref: null,
              itemscope: ["itemscope"],
              itemtype: null,
              lang: ["en", "es"],
              spellcheck: ["true", "false"],
              style: null,
              tabindex: ["1", "2", "3", "4", "5", "6", "7", "8", "9"],
              title: null,
              translate: ["yes", "no"],
              onclick: null,
              rel: ["stylesheet", "alternate", "author", "bookmark", "help", "license", "next", "nofollow", "noreferrer", "prefetch", "prev", "search", "tag"]
            };
            function populate(obj) {
              for (var attr in globalAttrs) if (globalAttrs.hasOwnProperty(attr))
                obj.attrs[attr] = globalAttrs[attr];
            }
          
            populate(s);
            for (var tag in data) if (data.hasOwnProperty(tag) && data[tag] != s)
              populate(data[tag]);
          
            CodeMirror.htmlSchema = data;
            function htmlHint(cm, options) {
              var local = {schemaInfo: data};
              if (options) for (var opt in options) local[opt] = options[opt];
              return CodeMirror.hint.xml(cm, local);
            }
            CodeMirror.registerHelper("hint", "html", htmlHint);
          });
          
        • javascript-hint.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            var Pos = CodeMirror.Pos;
          
            function forEach(arr, f) {
              for (var i = 0, e = arr.length; i < e; ++i) f(arr[i]);
            }
          
            function arrayContains(arr, item) {
              if (!Array.prototype.indexOf) {
                var i = arr.length;
                while (i--) {
                  if (arr[i] === item) {
                    return true;
                  }
                }
                return false;
              }
              return arr.indexOf(item) != -1;
            }
          
            function scriptHint(editor, keywords, getToken, options) {
              // Find the token at the cursor
              var cur = editor.getCursor(), token = getToken(editor, cur);
              if (/\b(?:string|comment)\b/.test(token.type)) return;
              token.state = CodeMirror.innerMode(editor.getMode(), token.state).state;
          
              // If it's not a 'word-style' token, ignore the token.
              if (!/^[\w$_]*$/.test(token.string)) {
                token = {start: cur.ch, end: cur.ch, string: "", state: token.state,
                         type: token.string == "." ? "property" : null};
              } else if (token.end > cur.ch) {
                token.end = cur.ch;
                token.string = token.string.slice(0, cur.ch - token.start);
              }
          
              var tprop = token;
              // If it is a property, find out what it is a property of.
              while (tprop.type == "property") {
                tprop = getToken(editor, Pos(cur.line, tprop.start));
                if (tprop.string != ".") return;
                tprop = getToken(editor, Pos(cur.line, tprop.start));
                if (!context) var context = [];
                context.push(tprop);
              }
              return {list: getCompletions(token, context, keywords, options),
                      from: Pos(cur.line, token.start),
                      to: Pos(cur.line, token.end)};
            }
          
            function javascriptHint(editor, options) {
              return scriptHint(editor, javascriptKeywords,
                                function (e, cur) {return e.getTokenAt(cur);},
                                options);
            };
            CodeMirror.registerHelper("hint", "javascript", javascriptHint);
          
            function getCoffeeScriptToken(editor, cur) {
            // This getToken, it is for coffeescript, imitates the behavior of
            // getTokenAt method in javascript.js, that is, returning "property"
            // type and treat "." as indepenent token.
              var token = editor.getTokenAt(cur);
              if (cur.ch == token.start + 1 && token.string.charAt(0) == '.') {
                token.end = token.start;
                token.string = '.';
                token.type = "property";
              }
              else if (/^\.[\w$_]*$/.test(token.string)) {
                token.type = "property";
                token.start++;
                token.string = token.string.replace(/\./, '');
              }
              return token;
            }
          
            function coffeescriptHint(editor, options) {
              return scriptHint(editor, coffeescriptKeywords, getCoffeeScriptToken, options);
            }
            CodeMirror.registerHelper("hint", "coffeescript", coffeescriptHint);
          
            var stringProps = ("charAt charCodeAt indexOf lastIndexOf substring substr slice trim trimLeft trimRight " +
                               "toUpperCase toLowerCase split concat match replace search").split(" ");
            var arrayProps = ("length concat join splice push pop shift unshift slice reverse sort indexOf " +
                              "lastIndexOf every some filter forEach map reduce reduceRight ").split(" ");
            var funcProps = "prototype apply call bind".split(" ");
            var javascriptKeywords = ("break case catch continue debugger default delete do else false finally for function " +
                            "if in instanceof new null return switch throw true try typeof var void while with").split(" ");
            var coffeescriptKeywords = ("and break catch class continue delete do else extends false finally for " +
                            "if in instanceof isnt new no not null of off on or return switch then throw true try typeof until void while with yes").split(" ");
          
            function getCompletions(token, context, keywords, options) {
              var found = [], start = token.string, global = options && options.globalScope || window;
              function maybeAdd(str) {
                if (str.lastIndexOf(start, 0) == 0 && !arrayContains(found, str)) found.push(str);
              }
              function gatherCompletions(obj) {
                if (typeof obj == "string") forEach(stringProps, maybeAdd);
                else if (obj instanceof Array) forEach(arrayProps, maybeAdd);
                else if (obj instanceof Function) forEach(funcProps, maybeAdd);
                for (var name in obj) maybeAdd(name);
              }
          
              if (context && context.length) {
                // If this is a property, see if it belongs to some object we can
                // find in the current environment.
                var obj = context.pop(), base;
                if (obj.type && obj.type.indexOf("variable") === 0) {
                  if (options && options.additionalContext)
                    base = options.additionalContext[obj.string];
                  if (!options || options.useGlobalScope !== false)
                    base = base || global[obj.string];
                } else if (obj.type == "string") {
                  base = "";
                } else if (obj.type == "atom") {
                  base = 1;
                } else if (obj.type == "function") {
                  if (global.jQuery != null && (obj.string == '$' || obj.string == 'jQuery') &&
                      (typeof global.jQuery == 'function'))
                    base = global.jQuery();
                  else if (global._ != null && (obj.string == '_') && (typeof global._ == 'function'))
                    base = global._();
                }
                while (base != null && context.length)
                  base = base[context.pop().string];
                if (base != null) gatherCompletions(base);
              } else {
                // If not, just look in the global object and any local scope
                // (reading into JS mode internals to get at the local and global variables)
                for (var v = token.state.localVars; v; v = v.next) maybeAdd(v.name);
                for (var v = token.state.globalVars; v; v = v.next) maybeAdd(v.name);
                if (!options || options.useGlobalScope !== false)
                  gatherCompletions(global);
                forEach(keywords, maybeAdd);
              }
              return found;
            }
          });
          
        • show-hint.css
          .CodeMirror-hints {
            position: absolute;
            z-index: 10;
            overflow: hidden;
            list-style: none;
          
            margin: 0;
            padding: 2px;
          
            -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
            -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
            box-shadow: 2px 3px 5px rgba(0,0,0,.2);
            border-radius: 3px;
            border: 1px solid silver;
          
            background: white;
            font-size: 90%;
            font-family: monospace;
          
            max-height: 20em;
            overflow-y: auto;
          }
          
          .CodeMirror-hint {
            margin: 0;
            padding: 0 4px;
            border-radius: 2px;
            max-width: 19em;
            overflow: hidden;
            white-space: pre;
            color: black;
            cursor: pointer;
          }
          
          li.CodeMirror-hint-active {
            background: #08f;
            color: white;
          }
          
        • show-hint.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            var HINT_ELEMENT_CLASS        = "CodeMirror-hint";
            var ACTIVE_HINT_ELEMENT_CLASS = "CodeMirror-hint-active";
          
            // This is the old interface, kept around for now to stay
            // backwards-compatible.
            CodeMirror.showHint = function(cm, getHints, options) {
              if (!getHints) return cm.showHint(options);
              if (options && options.async) getHints.async = true;
              var newOpts = {hint: getHints};
              if (options) for (var prop in options) newOpts[prop] = options[prop];
              return cm.showHint(newOpts);
            };
          
            CodeMirror.defineExtension("showHint", function(options) {
              options = parseOptions(this, this.getCursor("start"), options);
              var selections = this.listSelections()
              if (selections.length > 1) return;
              // By default, don't allow completion when something is selected.
              // A hint function can have a `supportsSelection` property to
              // indicate that it can handle selections.
              if (this.somethingSelected()) {
                if (!options.hint.supportsSelection) return;
                // Don't try with cross-line selections
                for (var i = 0; i < selections.length; i++)
                  if (selections[i].head.line != selections[i].anchor.line) return;
              }
          
              if (this.state.completionActive) this.state.completionActive.close();
              var completion = this.state.completionActive = new Completion(this, options);
              if (!completion.options.hint) return;
          
              CodeMirror.signal(this, "startCompletion", this);
              completion.update(true);
            });
          
            function Completion(cm, options) {
              this.cm = cm;
              this.options = options;
              this.widget = null;
              this.debounce = 0;
              this.tick = 0;
              this.startPos = this.cm.getCursor("start");
              this.startLen = this.cm.getLine(this.startPos.line).length - this.cm.getSelection().length;
          
              var self = this;
              cm.on("cursorActivity", this.activityFunc = function() { self.cursorActivity(); });
            }
          
            var requestAnimationFrame = window.requestAnimationFrame || function(fn) {
              return setTimeout(fn, 1000/60);
            };
            var cancelAnimationFrame = window.cancelAnimationFrame || clearTimeout;
          
            Completion.prototype = {
              close: function() {
                if (!this.active()) return;
                this.cm.state.completionActive = null;
                this.tick = null;
                this.cm.off("cursorActivity", this.activityFunc);
          
                if (this.widget && this.data) CodeMirror.signal(this.data, "close");
                if (this.widget) this.widget.close();
                CodeMirror.signal(this.cm, "endCompletion", this.cm);
              },
          
              active: function() {
                return this.cm.state.completionActive == this;
              },
          
              pick: function(data, i) {
                var completion = data.list[i];
                if (completion.hint) completion.hint(this.cm, data, completion);
                else this.cm.replaceRange(getText(completion), completion.from || data.from,
                                          completion.to || data.to, "complete");
                CodeMirror.signal(data, "pick", completion);
                this.close();
              },
          
              cursorActivity: function() {
                if (this.debounce) {
                  cancelAnimationFrame(this.debounce);
                  this.debounce = 0;
                }
          
                var pos = this.cm.getCursor(), line = this.cm.getLine(pos.line);
                if (pos.line != this.startPos.line || line.length - pos.ch != this.startLen - this.startPos.ch ||
                    pos.ch < this.startPos.ch || this.cm.somethingSelected() ||
                    (pos.ch && this.options.closeCharacters.test(line.charAt(pos.ch - 1)))) {
                  this.close();
                } else {
                  var self = this;
                  this.debounce = requestAnimationFrame(function() {self.update();});
                  if (this.widget) this.widget.disable();
                }
              },
          
              update: function(first) {
                if (this.tick == null) return;
                if (!this.options.hint.async) {
                  this.finishUpdate(this.options.hint(this.cm, this.options), first);
                } else {
                  var myTick = ++this.tick, self = this;
                  this.options.hint(this.cm, function(data) {
                    if (self.tick == myTick) self.finishUpdate(data, first);
                  }, this.options);
                }
              },
          
              finishUpdate: function(data, first) {
                if (this.data) CodeMirror.signal(this.data, "update");
                if (data && this.data && CodeMirror.cmpPos(data.from, this.data.from)) data = null;
                this.data = data;
          
                var picked = (this.widget && this.widget.picked) || (first && this.options.completeSingle);
                if (this.widget) this.widget.close();
                if (data && data.list.length) {
                  if (picked && data.list.length == 1) {
                    this.pick(data, 0);
                  } else {
                    this.widget = new Widget(this, data);
                    CodeMirror.signal(data, "shown");
                  }
                }
              }
            };
          
            function parseOptions(cm, pos, options) {
              var editor = cm.options.hintOptions;
              var out = {};
              for (var prop in defaultOptions) out[prop] = defaultOptions[prop];
              if (editor) for (var prop in editor)
                if (editor[prop] !== undefined) out[prop] = editor[prop];
              if (options) for (var prop in options)
                if (options[prop] !== undefined) out[prop] = options[prop];
              if (out.hint.resolve) out.hint = out.hint.resolve(cm, pos)
              return out;
            }
          
            function getText(completion) {
              if (typeof completion == "string") return completion;
              else return completion.text;
            }
          
            function buildKeyMap(completion, handle) {
              var baseMap = {
                Up: function() {handle.moveFocus(-1);},
                Down: function() {handle.moveFocus(1);},
                PageUp: function() {handle.moveFocus(-handle.menuSize() + 1, true);},
                PageDown: function() {handle.moveFocus(handle.menuSize() - 1, true);},
                Home: function() {handle.setFocus(0);},
                End: function() {handle.setFocus(handle.length - 1);},
                Enter: handle.pick,
                Tab: handle.pick,
                Esc: handle.close
              };
              var custom = completion.options.customKeys;
              var ourMap = custom ? {} : baseMap;
              function addBinding(key, val) {
                var bound;
                if (typeof val != "string")
                  bound = function(cm) { return val(cm, handle); };
                // This mechanism is deprecated
                else if (baseMap.hasOwnProperty(val))
                  bound = baseMap[val];
                else
                  bound = val;
                ourMap[key] = bound;
              }
              if (custom)
                for (var key in custom) if (custom.hasOwnProperty(key))
                  addBinding(key, custom[key]);
              var extra = completion.options.extraKeys;
              if (extra)
                for (var key in extra) if (extra.hasOwnProperty(key))
                  addBinding(key, extra[key]);
              return ourMap;
            }
          
            function getHintElement(hintsElement, el) {
              while (el && el != hintsElement) {
                if (el.nodeName.toUpperCase() === "LI" && el.parentNode == hintsElement) return el;
                el = el.parentNode;
              }
            }
          
            function Widget(completion, data) {
              this.completion = completion;
              this.data = data;
              this.picked = false;
              var widget = this, cm = completion.cm;
          
              var hints = this.hints = document.createElement("ul");
              hints.className = "CodeMirror-hints";
              this.selectedHint = data.selectedHint || 0;
          
              var completions = data.list;
              for (var i = 0; i < completions.length; ++i) {
                var elt = hints.appendChild(document.createElement("li")), cur = completions[i];
                var className = HINT_ELEMENT_CLASS + (i != this.selectedHint ? "" : " " + ACTIVE_HINT_ELEMENT_CLASS);
                if (cur.className != null) className = cur.className + " " + className;
                elt.className = className;
                if (cur.render) cur.render(elt, data, cur);
                else elt.appendChild(document.createTextNode(cur.displayText || getText(cur)));
                elt.hintId = i;
              }
          
              var pos = cm.cursorCoords(completion.options.alignWithWord ? data.from : null);
              var left = pos.left, top = pos.bottom, below = true;
              hints.style.left = left + "px";
              hints.style.top = top + "px";
              // If we're at the edge of the screen, then we want the menu to appear on the left of the cursor.
              var winW = window.innerWidth || Math.max(document.body.offsetWidth, document.documentElement.offsetWidth);
              var winH = window.innerHeight || Math.max(document.body.offsetHeight, document.documentElement.offsetHeight);
              (completion.options.container || document.body).appendChild(hints);
              var box = hints.getBoundingClientRect(), overlapY = box.bottom - winH;
              if (overlapY > 0) {
                var height = box.bottom - box.top, curTop = pos.top - (pos.bottom - box.top);
                if (curTop - height > 0) { // Fits above cursor
                  hints.style.top = (top = pos.top - height) + "px";
                  below = false;
                } else if (height > winH) {
                  hints.style.height = (winH - 5) + "px";
                  hints.style.top = (top = pos.bottom - box.top) + "px";
                  var cursor = cm.getCursor();
                  if (data.from.ch != cursor.ch) {
                    pos = cm.cursorCoords(cursor);
                    hints.style.left = (left = pos.left) + "px";
                    box = hints.getBoundingClientRect();
                  }
                }
              }
              var overlapX = box.right - winW;
              if (overlapX > 0) {
                if (box.right - box.left > winW) {
                  hints.style.width = (winW - 5) + "px";
                  overlapX -= (box.right - box.left) - winW;
                }
                hints.style.left = (left = pos.left - overlapX) + "px";
              }
          
              cm.addKeyMap(this.keyMap = buildKeyMap(completion, {
                moveFocus: function(n, avoidWrap) { widget.changeActive(widget.selectedHint + n, avoidWrap); },
                setFocus: function(n) { widget.changeActive(n); },
                menuSize: function() { return widget.screenAmount(); },
                length: completions.length,
                close: function() { completion.close(); },
                pick: function() { widget.pick(); },
                data: data
              }));
          
              if (completion.options.closeOnUnfocus) {
                var closingOnBlur;
                cm.on("blur", this.onBlur = function() { closingOnBlur = setTimeout(function() { completion.close(); }, 100); });
                cm.on("focus", this.onFocus = function() { clearTimeout(closingOnBlur); });
              }
          
              var startScroll = cm.getScrollInfo();
              cm.on("scroll", this.onScroll = function() {
                var curScroll = cm.getScrollInfo(), editor = cm.getWrapperElement().getBoundingClientRect();
                var newTop = top + startScroll.top - curScroll.top;
                var point = newTop - (window.pageYOffset || (document.documentElement || document.body).scrollTop);
                if (!below) point += hints.offsetHeight;
                if (point <= editor.top || point >= editor.bottom) return completion.close();
                hints.style.top = newTop + "px";
                hints.style.left = (left + startScroll.left - curScroll.left) + "px";
              });
          
              CodeMirror.on(hints, "dblclick", function(e) {
                var t = getHintElement(hints, e.target || e.srcElement);
                if (t && t.hintId != null) {widget.changeActive(t.hintId); widget.pick();}
              });
          
              CodeMirror.on(hints, "click", function(e) {
                var t = getHintElement(hints, e.target || e.srcElement);
                if (t && t.hintId != null) {
                  widget.changeActive(t.hintId);
                  if (completion.options.completeOnSingleClick) widget.pick();
                }
              });
          
              CodeMirror.on(hints, "mousedown", function() {
                setTimeout(function(){cm.focus();}, 20);
              });
          
              CodeMirror.signal(data, "select", completions[0], hints.firstChild);
              return true;
            }
          
            Widget.prototype = {
              close: function() {
                if (this.completion.widget != this) return;
                this.completion.widget = null;
                this.hints.parentNode.removeChild(this.hints);
                this.completion.cm.removeKeyMap(this.keyMap);
          
                var cm = this.completion.cm;
                if (this.completion.options.closeOnUnfocus) {
                  cm.off("blur", this.onBlur);
                  cm.off("focus", this.onFocus);
                }
                cm.off("scroll", this.onScroll);
              },
          
              disable: function() {
                this.completion.cm.removeKeyMap(this.keyMap);
                var widget = this;
                this.keyMap = {Enter: function() { widget.picked = true; }};
                this.completion.cm.addKeyMap(this.keyMap);
              },
          
              pick: function() {
                this.completion.pick(this.data, this.selectedHint);
              },
          
              changeActive: function(i, avoidWrap) {
                if (i >= this.data.list.length)
                  i = avoidWrap ? this.data.list.length - 1 : 0;
                else if (i < 0)
                  i = avoidWrap ? 0  : this.data.list.length - 1;
                if (this.selectedHint == i) return;
                var node = this.hints.childNodes[this.selectedHint];
                node.className = node.className.replace(" " + ACTIVE_HINT_ELEMENT_CLASS, "");
                node = this.hints.childNodes[this.selectedHint = i];
                node.className += " " + ACTIVE_HINT_ELEMENT_CLASS;
                if (node.offsetTop < this.hints.scrollTop)
                  this.hints.scrollTop = node.offsetTop - 3;
                else if (node.offsetTop + node.offsetHeight > this.hints.scrollTop + this.hints.clientHeight)
                  this.hints.scrollTop = node.offsetTop + node.offsetHeight - this.hints.clientHeight + 3;
                CodeMirror.signal(this.data, "select", this.data.list[this.selectedHint], node);
              },
          
              screenAmount: function() {
                return Math.floor(this.hints.clientHeight / this.hints.firstChild.offsetHeight) || 1;
              }
            };
          
            function applicableHelpers(cm, helpers) {
              if (!cm.somethingSelected()) return helpers
              var result = []
              for (var i = 0; i < helpers.length; i++)
                if (helpers[i].supportsSelection) result.push(helpers[i])
              return result
            }
          
            function resolveAutoHints(cm, pos) {
              var helpers = cm.getHelpers(pos, "hint"), words
              if (helpers.length) {
                var async = false, resolved
                for (var i = 0; i < helpers.length; i++) if (helpers[i].async) async = true
                if (async) {
                  resolved = function(cm, callback, options) {
                    var app = applicableHelpers(cm, helpers)
                    function run(i, result) {
                      if (i == app.length) return callback(null)
                      var helper = app[i]
                      if (helper.async) {
                        helper(cm, function(result) {
                          if (result) callback(result)
                          else run(i + 1)
                        }, options)
                      } else {
                        var result = helper(cm, options)
                        if (result) callback(result)
                        else run(i + 1)
                      }
                    }
                    run(0)
                  }
                  resolved.async = true
                } else {
                  resolved = function(cm, options) {
                    var app = applicableHelpers(cm, helpers)
                    for (var i = 0; i < app.length; i++) {
                      var cur = app[i](cm, options)
                      if (cur && cur.list.length) return cur
                    }
                  }
                }
                resolved.supportsSelection = true
                return resolved
              } else if (words = cm.getHelper(cm.getCursor(), "hintWords")) {
                return function(cm) { return CodeMirror.hint.fromList(cm, {words: words}) }
              } else if (CodeMirror.hint.anyword) {
                return function(cm, options) { return CodeMirror.hint.anyword(cm, options) }
              } else {
                return function() {}
              }
            }
          
            CodeMirror.registerHelper("hint", "auto", {
              resolve: resolveAutoHints
            });
          
            CodeMirror.registerHelper("hint", "fromList", function(cm, options) {
              var cur = cm.getCursor(), token = cm.getTokenAt(cur);
              var to = CodeMirror.Pos(cur.line, token.end);
              if (token.string && /\w/.test(token.string[token.string.length - 1])) {
                var term = token.string, from = CodeMirror.Pos(cur.line, token.start);
              } else {
                var term = "", from = to;
              }
              var found = [];
              for (var i = 0; i < options.words.length; i++) {
                var word = options.words[i];
                if (word.slice(0, term.length) == term)
                  found.push(word);
              }
          
              if (found.length) return {list: found, from: from, to: to};
            });
          
            CodeMirror.commands.autocomplete = CodeMirror.showHint;
          
            var defaultOptions = {
              hint: CodeMirror.hint.auto,
              completeSingle: true,
              alignWithWord: true,
              closeCharacters: /[\s()\[\]{};:>,]/,
              closeOnUnfocus: true,
              completeOnSingleClick: false,
              container: null,
              customKeys: null,
              extraKeys: null
            };
          
            CodeMirror.defineOption("hintOptions", null);
          });
          
        • sql-hint.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("../../mode/sql/sql"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "../../mode/sql/sql"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            var tables;
            var defaultTable;
            var keywords;
            var CONS = {
              QUERY_DIV: ";",
              ALIAS_KEYWORD: "AS"
            };
            var Pos = CodeMirror.Pos;
          
            function getKeywords(editor) {
              var mode = editor.doc.modeOption;
              if (mode === "sql") mode = "text/x-sql";
              return CodeMirror.resolveMode(mode).keywords;
            }
          
            function getText(item) {
              return typeof item == "string" ? item : item.text;
            }
          
            function getItem(list, item) {
              if (!list.slice) return list[item];
              for (var i = list.length - 1; i >= 0; i--) if (getText(list[i]) == item)
                return list[i];
            }
          
            function shallowClone(object) {
              var result = {};
              for (var key in object) if (object.hasOwnProperty(key))
                result[key] = object[key];
              return result;
            }
          
            function match(string, word) {
              var len = string.length;
              var sub = getText(word).substr(0, len);
              return string.toUpperCase() === sub.toUpperCase();
            }
          
            function addMatches(result, search, wordlist, formatter) {
              for (var word in wordlist) {
                if (!wordlist.hasOwnProperty(word)) continue;
                if (wordlist.slice) word = wordlist[word];
          
                if (match(search, word)) result.push(formatter(word));
              }
            }
          
            function cleanName(name) {
              // Get rid name from backticks(`) and preceding dot(.)
              if (name.charAt(0) == ".") {
                name = name.substr(1);
              }
              return name.replace(/`/g, "");
            }
          
            function insertBackticks(name) {
              var nameParts = getText(name).split(".");
              for (var i = 0; i < nameParts.length; i++)
                nameParts[i] = "`" + nameParts[i] + "`";
              var escaped = nameParts.join(".");
              if (typeof name == "string") return escaped;
              name = shallowClone(name);
              name.text = escaped;
              return name;
            }
          
            function nameCompletion(cur, token, result, editor) {
              // Try to complete table, colunm names and return start position of completion
              var useBacktick = false;
              var nameParts = [];
              var start = token.start;
              var cont = true;
              while (cont) {
                cont = (token.string.charAt(0) == ".");
                useBacktick = useBacktick || (token.string.charAt(0) == "`");
          
                start = token.start;
                nameParts.unshift(cleanName(token.string));
          
                token = editor.getTokenAt(Pos(cur.line, token.start));
                if (token.string == ".") {
                  cont = true;
                  token = editor.getTokenAt(Pos(cur.line, token.start));
                }
              }
          
              // Try to complete table names
              var string = nameParts.join(".");
              addMatches(result, string, tables, function(w) {
                return useBacktick ? insertBackticks(w) : w;
              });
          
              // Try to complete columns from defaultTable
              addMatches(result, string, defaultTable, function(w) {
                return useBacktick ? insertBackticks(w) : w;
              });
          
              // Try to complete columns
              string = nameParts.pop();
              var table = nameParts.join(".");
          
              var alias = false;
              var aliasTable = table;
              // Check if table is available. If not, find table by Alias
              if (!getItem(tables, table)) {
                var oldTable = table;
                table = findTableByAlias(table, editor);
                if (table !== oldTable) alias = true;
              }
          
              var columns = getItem(tables, table);
              if (columns && columns.columns)
                columns = columns.columns;
          
              if (columns) {
                addMatches(result, string, columns, function(w) {
                  var tableInsert = table;
                  if (alias == true) tableInsert = aliasTable;
                  if (typeof w == "string") {
                    w = tableInsert + "." + w;
                  } else {
                    w = shallowClone(w);
                    w.text = tableInsert + "." + w.text;
                  }
                  return useBacktick ? insertBackticks(w) : w;
                });
              }
          
              return start;
            }
          
            function eachWord(lineText, f) {
              if (!lineText) return;
              var excepted = /[,;]/g;
              var words = lineText.split(" ");
              for (var i = 0; i < words.length; i++) {
                f(words[i]?words[i].replace(excepted, '') : '');
              }
            }
          
            function convertCurToNumber(cur) {
              // max characters of a line is 999,999.
              return cur.line + cur.ch / Math.pow(10, 6);
            }
          
            function convertNumberToCur(num) {
              return Pos(Math.floor(num), +num.toString().split('.').pop());
            }
          
            function findTableByAlias(alias, editor) {
              var doc = editor.doc;
              var fullQuery = doc.getValue();
              var aliasUpperCase = alias.toUpperCase();
              var previousWord = "";
              var table = "";
              var separator = [];
              var validRange = {
                start: Pos(0, 0),
                end: Pos(editor.lastLine(), editor.getLineHandle(editor.lastLine()).length)
              };
          
              //add separator
              var indexOfSeparator = fullQuery.indexOf(CONS.QUERY_DIV);
              while(indexOfSeparator != -1) {
                separator.push(doc.posFromIndex(indexOfSeparator));
                indexOfSeparator = fullQuery.indexOf(CONS.QUERY_DIV, indexOfSeparator+1);
              }
              separator.unshift(Pos(0, 0));
              separator.push(Pos(editor.lastLine(), editor.getLineHandle(editor.lastLine()).text.length));
          
              //find valid range
              var prevItem = 0;
              var current = convertCurToNumber(editor.getCursor());
              for (var i=0; i< separator.length; i++) {
                var _v = convertCurToNumber(separator[i]);
                if (current > prevItem && current <= _v) {
                  validRange = { start: convertNumberToCur(prevItem), end: convertNumberToCur(_v) };
                  break;
                }
                prevItem = _v;
              }
          
              var query = doc.getRange(validRange.start, validRange.end, false);
          
              for (var i = 0; i < query.length; i++) {
                var lineText = query[i];
                eachWord(lineText, function(word) {
                  var wordUpperCase = word.toUpperCase();
                  if (wordUpperCase === aliasUpperCase && getItem(tables, previousWord))
                    table = previousWord;
                  if (wordUpperCase !== CONS.ALIAS_KEYWORD)
                    previousWord = word;
                });
                if (table) break;
              }
              return table;
            }
          
            CodeMirror.registerHelper("hint", "sql", function(editor, options) {
              tables = (options && options.tables) || {};
              var defaultTableName = options && options.defaultTable;
              var disableKeywords = options && options.disableKeywords;
              defaultTable = defaultTableName && getItem(tables, defaultTableName);
              keywords = keywords || getKeywords(editor);
          
              if (defaultTableName && !defaultTable)
                defaultTable = findTableByAlias(defaultTableName, editor);
          
              defaultTable = defaultTable || [];
          
              if (defaultTable.columns)
                defaultTable = defaultTable.columns;
          
              var cur = editor.getCursor();
              var result = [];
              var token = editor.getTokenAt(cur), start, end, search;
              if (token.end > cur.ch) {
                token.end = cur.ch;
                token.string = token.string.slice(0, cur.ch - token.start);
              }
          
              if (token.string.match(/^[.`\w@]\w*$/)) {
                search = token.string;
                start = token.start;
                end = token.end;
              } else {
                start = end = cur.ch;
                search = "";
              }
              if (search.charAt(0) == "." || search.charAt(0) == "`") {
                start = nameCompletion(cur, token, result, editor);
              } else {
                addMatches(result, search, tables, function(w) {return w;});
                addMatches(result, search, defaultTable, function(w) {return w;});
                if (!disableKeywords)
                  addMatches(result, search, keywords, function(w) {return w.toUpperCase();});
              }
          
              return {list: result, from: Pos(cur.line, start), to: Pos(cur.line, end)};
            });
          });
          
        • xml-hint.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            var Pos = CodeMirror.Pos;
          
            function getHints(cm, options) {
              var tags = options && options.schemaInfo;
              var quote = (options && options.quoteChar) || '"';
              if (!tags) return;
              var cur = cm.getCursor(), token = cm.getTokenAt(cur);
              if (token.end > cur.ch) {
                token.end = cur.ch;
                token.string = token.string.slice(0, cur.ch - token.start);
              }
              var inner = CodeMirror.innerMode(cm.getMode(), token.state);
              if (inner.mode.name != "xml") return;
              var result = [], replaceToken = false, prefix;
              var tag = /\btag\b/.test(token.type) && !/>$/.test(token.string);
              var tagName = tag && /^\w/.test(token.string), tagStart;
          
              if (tagName) {
                var before = cm.getLine(cur.line).slice(Math.max(0, token.start - 2), token.start);
                var tagType = /<\/$/.test(before) ? "close" : /<$/.test(before) ? "open" : null;
                if (tagType) tagStart = token.start - (tagType == "close" ? 2 : 1);
              } else if (tag && token.string == "<") {
                tagType = "open";
              } else if (tag && token.string == "</") {
                tagType = "close";
              }
          
              if (!tag && !inner.state.tagName || tagType) {
                if (tagName)
                  prefix = token.string;
                replaceToken = tagType;
                var cx = inner.state.context, curTag = cx && tags[cx.tagName];
                var childList = cx ? curTag && curTag.children : tags["!top"];
                if (childList && tagType != "close") {
                  for (var i = 0; i < childList.length; ++i) if (!prefix || childList[i].lastIndexOf(prefix, 0) == 0)
                    result.push("<" + childList[i]);
                } else if (tagType != "close") {
                  for (var name in tags)
                    if (tags.hasOwnProperty(name) && name != "!top" && name != "!attrs" && (!prefix || name.lastIndexOf(prefix, 0) == 0))
                      result.push("<" + name);
                }
                if (cx && (!prefix || tagType == "close" && cx.tagName.lastIndexOf(prefix, 0) == 0))
                  result.push("</" + cx.tagName + ">");
              } else {
                // Attribute completion
                var curTag = tags[inner.state.tagName], attrs = curTag && curTag.attrs;
                var globalAttrs = tags["!attrs"];
                if (!attrs && !globalAttrs) return;
                if (!attrs) {
                  attrs = globalAttrs;
                } else if (globalAttrs) { // Combine tag-local and global attributes
                  var set = {};
                  for (var nm in globalAttrs) if (globalAttrs.hasOwnProperty(nm)) set[nm] = globalAttrs[nm];
                  for (var nm in attrs) if (attrs.hasOwnProperty(nm)) set[nm] = attrs[nm];
                  attrs = set;
                }
                if (token.type == "string" || token.string == "=") { // A value
                  var before = cm.getRange(Pos(cur.line, Math.max(0, cur.ch - 60)),
                                           Pos(cur.line, token.type == "string" ? token.start : token.end));
                  var atName = before.match(/([^\s\u00a0=<>\"\']+)=$/), atValues;
                  if (!atName || !attrs.hasOwnProperty(atName[1]) || !(atValues = attrs[atName[1]])) return;
                  if (typeof atValues == 'function') atValues = atValues.call(this, cm); // Functions can be used to supply values for autocomplete widget
                  if (token.type == "string") {
                    prefix = token.string;
                    var n = 0;
                    if (/['"]/.test(token.string.charAt(0))) {
                      quote = token.string.charAt(0);
                      prefix = token.string.slice(1);
                      n++;
                    }
                    var len = token.string.length;
                    if (/['"]/.test(token.string.charAt(len - 1))) {
                      quote = token.string.charAt(len - 1);
                      prefix = token.string.substr(n, len - 2);
                    }
                    replaceToken = true;
                  }
                  for (var i = 0; i < atValues.length; ++i) if (!prefix || atValues[i].lastIndexOf(prefix, 0) == 0)
                    result.push(quote + atValues[i] + quote);
                } else { // An attribute name
                  if (token.type == "attribute") {
                    prefix = token.string;
                    replaceToken = true;
                  }
                  for (var attr in attrs) if (attrs.hasOwnProperty(attr) && (!prefix || attr.lastIndexOf(prefix, 0) == 0))
                    result.push(attr);
                }
              }
              return {
                list: result,
                from: replaceToken ? Pos(cur.line, tagStart == null ? token.start : tagStart) : cur,
                to: replaceToken ? Pos(cur.line, token.end) : cur
              };
            }
          
            CodeMirror.registerHelper("hint", "xml", getHints);
          });
          
      • lint
        • coffeescript-lint.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // Depends on coffeelint.js from http://www.coffeelint.org/js/coffeelint.js
          
          // declare global: coffeelint
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.registerHelper("lint", "coffeescript", function(text) {
            var found = [];
            var parseError = function(err) {
              var loc = err.lineNumber;
              found.push({from: CodeMirror.Pos(loc-1, 0),
                          to: CodeMirror.Pos(loc, 0),
                          severity: err.level,
                          message: err.message});
            };
            try {
              var res = coffeelint.lint(text);
              for(var i = 0; i < res.length; i++) {
                parseError(res[i]);
              }
            } catch(e) {
              found.push({from: CodeMirror.Pos(e.location.first_line, 0),
                          to: CodeMirror.Pos(e.location.last_line, e.location.last_column),
                          severity: 'error',
                          message: e.message});
            }
            return found;
          });
          
          });
          
        • css-lint.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // Depends on csslint.js from https://github.com/stubbornella/csslint
          
          // declare global: CSSLint
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.registerHelper("lint", "css", function(text) {
            var found = [];
            if (!window.CSSLint) return found;
            var results = CSSLint.verify(text), messages = results.messages, message = null;
            for ( var i = 0; i < messages.length; i++) {
              message = messages[i];
              var startLine = message.line -1, endLine = message.line -1, startCol = message.col -1, endCol = message.col;
              found.push({
                from: CodeMirror.Pos(startLine, startCol),
                to: CodeMirror.Pos(endLine, endCol),
                message: message.message,
                severity : message.type
              });
            }
            return found;
          });
          
          });
          
        • html-lint.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // Depends on htmlhint.js from http://htmlhint.com/js/htmlhint.js
          
          // declare global: HTMLHint
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("htmlhint"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "htmlhint"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            var defaultRules = {
              "tagname-lowercase": true,
              "attr-lowercase": true,
              "attr-value-double-quotes": true,
              "doctype-first": false,
              "tag-pair": true,
              "spec-char-escape": true,
              "id-unique": true,
              "src-not-empty": true,
              "attr-no-duplication": true
            };
          
            CodeMirror.registerHelper("lint", "html", function(text, options) {
              var found = [];
              if (!window.HTMLHint) return found;
              var messages = HTMLHint.verify(text, options && options.rules || defaultRules);
              for (var i = 0; i < messages.length; i++) {
                var message = messages[i];
                var startLine = message.line - 1, endLine = message.line - 1, startCol = message.col - 1, endCol = message.col;
                found.push({
                  from: CodeMirror.Pos(startLine, startCol),
                  to: CodeMirror.Pos(endLine, endCol),
                  message: message.message,
                  severity : message.type
                });
              }
              return found;
            });
          });
          
        • javascript-lint.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
            // declare global: JSHINT
          
            var bogus = [ "Dangerous comment" ];
          
            var warnings = [ [ "Expected '{'",
                               "Statement body should be inside '{ }' braces." ] ];
          
            var errors = [ "Missing semicolon", "Extra comma", "Missing property name",
                           "Unmatched ", " and instead saw", " is not defined",
                           "Unclosed string", "Stopping, unable to continue" ];
          
            function validator(text, options) {
              if (!window.JSHINT) return [];
              JSHINT(text, options, options.globals);
              var errors = JSHINT.data().errors, result = [];
              if (errors) parseErrors(errors, result);
              return result;
            }
          
            CodeMirror.registerHelper("lint", "javascript", validator);
          
            function cleanup(error) {
              // All problems are warnings by default
              fixWith(error, warnings, "warning", true);
              fixWith(error, errors, "error");
          
              return isBogus(error) ? null : error;
            }
          
            function fixWith(error, fixes, severity, force) {
              var description, fix, find, replace, found;
          
              description = error.description;
          
              for ( var i = 0; i < fixes.length; i++) {
                fix = fixes[i];
                find = (typeof fix === "string" ? fix : fix[0]);
                replace = (typeof fix === "string" ? null : fix[1]);
                found = description.indexOf(find) !== -1;
          
                if (force || found) {
                  error.severity = severity;
                }
                if (found && replace) {
                  error.description = replace;
                }
              }
            }
          
            function isBogus(error) {
              var description = error.description;
              for ( var i = 0; i < bogus.length; i++) {
                if (description.indexOf(bogus[i]) !== -1) {
                  return true;
                }
              }
              return false;
            }
          
            function parseErrors(errors, output) {
              for ( var i = 0; i < errors.length; i++) {
                var error = errors[i];
                if (error) {
                  var linetabpositions, index;
          
                  linetabpositions = [];
          
                  // This next block is to fix a problem in jshint. Jshint
                  // replaces
                  // all tabs with spaces then performs some checks. The error
                  // positions (character/space) are then reported incorrectly,
                  // not taking the replacement step into account. Here we look
                  // at the evidence line and try to adjust the character position
                  // to the correct value.
                  if (error.evidence) {
                    // Tab positions are computed once per line and cached
                    var tabpositions = linetabpositions[error.line];
                    if (!tabpositions) {
                      var evidence = error.evidence;
                      tabpositions = [];
                      // ugggh phantomjs does not like this
                      // forEachChar(evidence, function(item, index) {
                      Array.prototype.forEach.call(evidence, function(item,
                                                                      index) {
                        if (item === '\t') {
                          // First col is 1 (not 0) to match error
                          // positions
                          tabpositions.push(index + 1);
                        }
                      });
                      linetabpositions[error.line] = tabpositions;
                    }
                    if (tabpositions.length > 0) {
                      var pos = error.character;
                      tabpositions.forEach(function(tabposition) {
                        if (pos > tabposition) pos -= 1;
                      });
                      error.character = pos;
                    }
                  }
          
                  var start = error.character - 1, end = start + 1;
                  if (error.evidence) {
                    index = error.evidence.substring(start).search(/.\b/);
                    if (index > -1) {
                      end += index;
                    }
                  }
          
                  // Convert to format expected by validation service
                  error.description = error.reason;// + "(jshint)";
                  error.start = error.character;
                  error.end = end;
                  error = cleanup(error);
          
                  if (error)
                    output.push({message: error.description,
                                 severity: error.severity,
                                 from: CodeMirror.Pos(error.line - 1, start),
                                 to: CodeMirror.Pos(error.line - 1, end)});
                }
              }
            }
          });
          
        • json-lint.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // Depends on jsonlint.js from https://github.com/zaach/jsonlint
          
          // declare global: jsonlint
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.registerHelper("lint", "json", function(text) {
            var found = [];
            jsonlint.parseError = function(str, hash) {
              var loc = hash.loc;
              found.push({from: CodeMirror.Pos(loc.first_line - 1, loc.first_column),
                          to: CodeMirror.Pos(loc.last_line - 1, loc.last_column),
                          message: str});
            };
            try { jsonlint.parse(text); }
            catch(e) {}
            return found;
          });
          
          });
          
        • lint.css
          /* The lint marker gutter */
          .CodeMirror-lint-markers {
            width: 16px;
          }
          
          .CodeMirror-lint-tooltip {
            background-color: infobackground;
            border: 1px solid black;
            border-radius: 4px 4px 4px 4px;
            color: infotext;
            font-family: monospace;
            font-size: 10pt;
            overflow: hidden;
            padding: 2px 5px;
            position: fixed;
            white-space: pre;
            white-space: pre-wrap;
            z-index: 100;
            max-width: 600px;
            opacity: 0;
            transition: opacity .4s;
            -moz-transition: opacity .4s;
            -webkit-transition: opacity .4s;
            -o-transition: opacity .4s;
            -ms-transition: opacity .4s;
          }
          
          .CodeMirror-lint-mark-error, .CodeMirror-lint-mark-warning {
            background-position: left bottom;
            background-repeat: repeat-x;
          }
          
          .CodeMirror-lint-mark-error {
            background-image:
            url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==")
            ;
          }
          
          .CodeMirror-lint-mark-warning {
            background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=");
          }
          
          .CodeMirror-lint-marker-error, .CodeMirror-lint-marker-warning {
            background-position: center center;
            background-repeat: no-repeat;
            cursor: pointer;
            display: inline-block;
            height: 16px;
            width: 16px;
            vertical-align: middle;
            position: relative;
          }
          
          .CodeMirror-lint-message-error, .CodeMirror-lint-message-warning {
            padding-left: 18px;
            background-position: top left;
            background-repeat: no-repeat;
          }
          
          .CodeMirror-lint-marker-error, .CodeMirror-lint-message-error {
            background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII=");
          }
          
          .CodeMirror-lint-marker-warning, .CodeMirror-lint-message-warning {
            background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=");
          }
          
          .CodeMirror-lint-marker-multiple {
            background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC");
            background-repeat: no-repeat;
            background-position: right bottom;
            width: 100%; height: 100%;
          }
          
        • lint.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
            var GUTTER_ID = "CodeMirror-lint-markers";
          
            function showTooltip(e, content) {
              var tt = document.createElement("div");
              tt.className = "CodeMirror-lint-tooltip";
              tt.appendChild(content.cloneNode(true));
              document.body.appendChild(tt);
          
              function position(e) {
                if (!tt.parentNode) return CodeMirror.off(document, "mousemove", position);
                tt.style.top = Math.max(0, e.clientY - tt.offsetHeight - 5) + "px";
                tt.style.left = (e.clientX + 5) + "px";
              }
              CodeMirror.on(document, "mousemove", position);
              position(e);
              if (tt.style.opacity != null) tt.style.opacity = 1;
              return tt;
            }
            function rm(elt) {
              if (elt.parentNode) elt.parentNode.removeChild(elt);
            }
            function hideTooltip(tt) {
              if (!tt.parentNode) return;
              if (tt.style.opacity == null) rm(tt);
              tt.style.opacity = 0;
              setTimeout(function() { rm(tt); }, 600);
            }
          
            function showTooltipFor(e, content, node) {
              var tooltip = showTooltip(e, content);
              function hide() {
                CodeMirror.off(node, "mouseout", hide);
                if (tooltip) { hideTooltip(tooltip); tooltip = null; }
              }
              var poll = setInterval(function() {
                if (tooltip) for (var n = node;; n = n.parentNode) {
                  if (n && n.nodeType == 11) n = n.host;
                  if (n == document.body) return;
                  if (!n) { hide(); break; }
                }
                if (!tooltip) return clearInterval(poll);
              }, 400);
              CodeMirror.on(node, "mouseout", hide);
            }
          
            function LintState(cm, options, hasGutter) {
              this.marked = [];
              this.options = options;
              this.timeout = null;
              this.hasGutter = hasGutter;
              this.onMouseOver = function(e) { onMouseOver(cm, e); };
              this.waitingFor = 0
            }
          
            function parseOptions(_cm, options) {
              if (options instanceof Function) return {getAnnotations: options};
              if (!options || options === true) options = {};
              return options;
            }
          
            function clearMarks(cm) {
              var state = cm.state.lint;
              if (state.hasGutter) cm.clearGutter(GUTTER_ID);
              for (var i = 0; i < state.marked.length; ++i)
                state.marked[i].clear();
              state.marked.length = 0;
            }
          
            function makeMarker(labels, severity, multiple, tooltips) {
              var marker = document.createElement("div"), inner = marker;
              marker.className = "CodeMirror-lint-marker-" + severity;
              if (multiple) {
                inner = marker.appendChild(document.createElement("div"));
                inner.className = "CodeMirror-lint-marker-multiple";
              }
          
              if (tooltips != false) CodeMirror.on(inner, "mouseover", function(e) {
                showTooltipFor(e, labels, inner);
              });
          
              return marker;
            }
          
            function getMaxSeverity(a, b) {
              if (a == "error") return a;
              else return b;
            }
          
            function groupByLine(annotations) {
              var lines = [];
              for (var i = 0; i < annotations.length; ++i) {
                var ann = annotations[i], line = ann.from.line;
                (lines[line] || (lines[line] = [])).push(ann);
              }
              return lines;
            }
          
            function annotationTooltip(ann) {
              var severity = ann.severity;
              if (!severity) severity = "error";
              var tip = document.createElement("div");
              tip.className = "CodeMirror-lint-message-" + severity;
              tip.appendChild(document.createTextNode(ann.message));
              return tip;
            }
          
            function lintAsync(cm, getAnnotations, passOptions) {
              var state = cm.state.lint
              var id = ++state.waitingFor
              function abort() {
                id = -1
                cm.off("change", abort)
              }
              cm.on("change", abort)
              getAnnotations(cm.getValue(), function(annotations, arg2) {
                cm.off("change", abort)
                if (state.waitingFor != id) return
                if (arg2 && annotations instanceof CodeMirror) annotations = arg2
                updateLinting(cm, annotations)
              }, passOptions, cm);
            }
          
            function startLinting(cm) {
              var state = cm.state.lint, options = state.options;
              var passOptions = options.options || options; // Support deprecated passing of `options` property in options
              var getAnnotations = options.getAnnotations || cm.getHelper(CodeMirror.Pos(0, 0), "lint");
              if (!getAnnotations) return;
              if (options.async || getAnnotations.async) {
                lintAsync(cm, getAnnotations, passOptions)
              } else {
                updateLinting(cm, getAnnotations(cm.getValue(), passOptions, cm));
              }
            }
          
            function updateLinting(cm, annotationsNotSorted) {
              clearMarks(cm);
              var state = cm.state.lint, options = state.options;
          
              var annotations = groupByLine(annotationsNotSorted);
          
              for (var line = 0; line < annotations.length; ++line) {
                var anns = annotations[line];
                if (!anns) continue;
          
                var maxSeverity = null;
                var tipLabel = state.hasGutter && document.createDocumentFragment();
          
                for (var i = 0; i < anns.length; ++i) {
                  var ann = anns[i];
                  var severity = ann.severity;
                  if (!severity) severity = "error";
                  maxSeverity = getMaxSeverity(maxSeverity, severity);
          
                  if (options.formatAnnotation) ann = options.formatAnnotation(ann);
                  if (state.hasGutter) tipLabel.appendChild(annotationTooltip(ann));
          
                  if (ann.to) state.marked.push(cm.markText(ann.from, ann.to, {
                    className: "CodeMirror-lint-mark-" + severity,
                    __annotation: ann
                  }));
                }
          
                if (state.hasGutter)
                  cm.setGutterMarker(line, GUTTER_ID, makeMarker(tipLabel, maxSeverity, anns.length > 1,
                                                                 state.options.tooltips));
              }
              if (options.onUpdateLinting) options.onUpdateLinting(annotationsNotSorted, annotations, cm);
            }
          
            function onChange(cm) {
              var state = cm.state.lint;
              if (!state) return;
              clearTimeout(state.timeout);
              state.timeout = setTimeout(function(){startLinting(cm);}, state.options.delay || 500);
            }
          
            function popupSpanTooltip(ann, e) {
              var target = e.target || e.srcElement;
              showTooltipFor(e, annotationTooltip(ann), target);
            }
          
            function onMouseOver(cm, e) {
              var target = e.target || e.srcElement;
              if (!/\bCodeMirror-lint-mark-/.test(target.className)) return;
              var box = target.getBoundingClientRect(), x = (box.left + box.right) / 2, y = (box.top + box.bottom) / 2;
              var spans = cm.findMarksAt(cm.coordsChar({left: x, top: y}, "client"));
              for (var i = 0; i < spans.length; ++i) {
                var ann = spans[i].__annotation;
                if (ann) return popupSpanTooltip(ann, e);
              }
            }
          
            CodeMirror.defineOption("lint", false, function(cm, val, old) {
              if (old && old != CodeMirror.Init) {
                clearMarks(cm);
                if (cm.state.lint.options.lintOnChange !== false)
                  cm.off("change", onChange);
                CodeMirror.off(cm.getWrapperElement(), "mouseover", cm.state.lint.onMouseOver);
                clearTimeout(cm.state.lint.timeout);
                delete cm.state.lint;
              }
          
              if (val) {
                var gutters = cm.getOption("gutters"), hasLintGutter = false;
                for (var i = 0; i < gutters.length; ++i) if (gutters[i] == GUTTER_ID) hasLintGutter = true;
                var state = cm.state.lint = new LintState(cm, parseOptions(cm, val), hasLintGutter);
                if (state.options.lintOnChange !== false)
                  cm.on("change", onChange);
                if (state.options.tooltips != false)
                  CodeMirror.on(cm.getWrapperElement(), "mouseover", state.onMouseOver);
          
                startLinting(cm);
              }
            });
          
            CodeMirror.defineExtension("performLint", function() {
              if (this.state.lint) startLinting(this);
            });
          });
          
        • yaml-lint.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          // Depends on js-yaml.js from https://github.com/nodeca/js-yaml
          
          // declare global: jsyaml
          
          CodeMirror.registerHelper("lint", "yaml", function(text) {
            var found = [];
            try { jsyaml.load(text); }
            catch(e) {
                var loc = e.mark;
                found.push({ from: CodeMirror.Pos(loc.line, loc.column), to: CodeMirror.Pos(loc.line, loc.column), message: e.message });
            }
            return found;
          });
          
          });
          
      • merge
        • merge.css
          .CodeMirror-merge {
            position: relative;
            border: 1px solid #ddd;
            white-space: pre;
          }
          
          .CodeMirror-merge, .CodeMirror-merge .CodeMirror {
            height: 350px;
          }
          
          .CodeMirror-merge-2pane .CodeMirror-merge-pane { width: 47%; }
          .CodeMirror-merge-2pane .CodeMirror-merge-gap { width: 6%; }
          .CodeMirror-merge-3pane .CodeMirror-merge-pane { width: 31%; }
          .CodeMirror-merge-3pane .CodeMirror-merge-gap { width: 3.5%; }
          
          .CodeMirror-merge-pane {
            display: inline-block;
            white-space: normal;
            vertical-align: top;
          }
          .CodeMirror-merge-pane-rightmost {
            position: absolute;
            right: 0px;
            z-index: 1;
          }
          
          .CodeMirror-merge-gap {
            z-index: 2;
            display: inline-block;
            height: 100%;
            -moz-box-sizing: border-box;
            box-sizing: border-box;
            overflow: hidden;
            border-left: 1px solid #ddd;
            border-right: 1px solid #ddd;
            position: relative;
            background: #f8f8f8;
          }
          
          .CodeMirror-merge-scrolllock-wrap {
            position: absolute;
            bottom: 0; left: 50%;
          }
          .CodeMirror-merge-scrolllock {
            position: relative;
            left: -50%;
            cursor: pointer;
            color: #555;
            line-height: 1;
          }
          
          .CodeMirror-merge-copybuttons-left, .CodeMirror-merge-copybuttons-right {
            position: absolute;
            left: 0; top: 0;
            right: 0; bottom: 0;
            line-height: 1;
          }
          
          .CodeMirror-merge-copy {
            position: absolute;
            cursor: pointer;
            color: #44c;
          }
          
          .CodeMirror-merge-copy-reverse {
            position: absolute;
            cursor: pointer;
            color: #44c;
          }
          
          .CodeMirror-merge-copybuttons-left .CodeMirror-merge-copy { left: 2px; }
          .CodeMirror-merge-copybuttons-right .CodeMirror-merge-copy { right: 2px; }
          
          .CodeMirror-merge-r-inserted, .CodeMirror-merge-l-inserted {
            background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12MwuCXy3+CWyH8GBgYGJgYkAABZbAQ9ELXurwAAAABJRU5ErkJggg==);
            background-position: bottom left;
            background-repeat: repeat-x;
          }
          
          .CodeMirror-merge-r-deleted, .CodeMirror-merge-l-deleted {
            background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12M4Kyb2/6yY2H8GBgYGJgYkAABURgPz6Ks7wQAAAABJRU5ErkJggg==);
            background-position: bottom left;
            background-repeat: repeat-x;
          }
          
          .CodeMirror-merge-r-chunk { background: #ffffe0; }
          .CodeMirror-merge-r-chunk-start { border-top: 1px solid #ee8; }
          .CodeMirror-merge-r-chunk-end { border-bottom: 1px solid #ee8; }
          .CodeMirror-merge-r-connect { fill: #ffffe0; stroke: #ee8; stroke-width: 1px; }
          
          .CodeMirror-merge-l-chunk { background: #eef; }
          .CodeMirror-merge-l-chunk-start { border-top: 1px solid #88e; }
          .CodeMirror-merge-l-chunk-end { border-bottom: 1px solid #88e; }
          .CodeMirror-merge-l-connect { fill: #eef; stroke: #88e; stroke-width: 1px; }
          
          .CodeMirror-merge-l-chunk.CodeMirror-merge-r-chunk { background: #dfd; }
          .CodeMirror-merge-l-chunk-start.CodeMirror-merge-r-chunk-start { border-top: 1px solid #4e4; }
          .CodeMirror-merge-l-chunk-end.CodeMirror-merge-r-chunk-end { border-bottom: 1px solid #4e4; }
          
          .CodeMirror-merge-collapsed-widget:before {
            content: "(...)";
          }
          .CodeMirror-merge-collapsed-widget {
            cursor: pointer;
            color: #88b;
            background: #eef;
            border: 1px solid #ddf;
            font-size: 90%;
            padding: 0 3px;
            border-radius: 4px;
          }
          .CodeMirror-merge-collapsed-line .CodeMirror-gutter-elt { display: none; }
          
        • merge.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // declare global: diff_match_patch, DIFF_INSERT, DIFF_DELETE, DIFF_EQUAL
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("diff_match_patch"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "diff_match_patch"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
            var Pos = CodeMirror.Pos;
            var svgNS = "http://www.w3.org/2000/svg";
          
            function DiffView(mv, type) {
              this.mv = mv;
              this.type = type;
              this.classes = type == "left"
                ? {chunk: "CodeMirror-merge-l-chunk",
                   start: "CodeMirror-merge-l-chunk-start",
                   end: "CodeMirror-merge-l-chunk-end",
                   insert: "CodeMirror-merge-l-inserted",
                   del: "CodeMirror-merge-l-deleted",
                   connect: "CodeMirror-merge-l-connect"}
                : {chunk: "CodeMirror-merge-r-chunk",
                   start: "CodeMirror-merge-r-chunk-start",
                   end: "CodeMirror-merge-r-chunk-end",
                   insert: "CodeMirror-merge-r-inserted",
                   del: "CodeMirror-merge-r-deleted",
                   connect: "CodeMirror-merge-r-connect"};
            }
          
            DiffView.prototype = {
              constructor: DiffView,
              init: function(pane, orig, options) {
                this.edit = this.mv.edit;
                (this.edit.state.diffViews || (this.edit.state.diffViews = [])).push(this);
                this.orig = CodeMirror(pane, copyObj({value: orig, readOnly: !this.mv.options.allowEditingOriginals}, copyObj(options)));
                this.orig.state.diffViews = [this];
          
                this.diff = getDiff(asString(orig), asString(options.value));
                this.chunks = getChunks(this.diff);
                this.diffOutOfDate = this.dealigned = false;
          
                this.showDifferences = options.showDifferences !== false;
                this.forceUpdate = registerUpdate(this);
                setScrollLock(this, true, false);
                registerScroll(this);
              },
              setShowDifferences: function(val) {
                val = val !== false;
                if (val != this.showDifferences) {
                  this.showDifferences = val;
                  this.forceUpdate("full");
                }
              }
            };
          
            function ensureDiff(dv) {
              if (dv.diffOutOfDate) {
                dv.diff = getDiff(dv.orig.getValue(), dv.edit.getValue());
                dv.chunks = getChunks(dv.diff);
                dv.diffOutOfDate = false;
                CodeMirror.signal(dv.edit, "updateDiff", dv.diff);
              }
            }
          
            var updating = false;
            function registerUpdate(dv) {
              var edit = {from: 0, to: 0, marked: []};
              var orig = {from: 0, to: 0, marked: []};
              var debounceChange, updatingFast = false;
              function update(mode) {
                updating = true;
                updatingFast = false;
                if (mode == "full") {
                  if (dv.svg) clear(dv.svg);
                  if (dv.copyButtons) clear(dv.copyButtons);
                  clearMarks(dv.edit, edit.marked, dv.classes);
                  clearMarks(dv.orig, orig.marked, dv.classes);
                  edit.from = edit.to = orig.from = orig.to = 0;
                }
                ensureDiff(dv);
                if (dv.showDifferences) {
                  updateMarks(dv.edit, dv.diff, edit, DIFF_INSERT, dv.classes);
                  updateMarks(dv.orig, dv.diff, orig, DIFF_DELETE, dv.classes);
                }
                makeConnections(dv);
          
                if (dv.mv.options.connect == "align")
                  alignChunks(dv);
                updating = false;
              }
              function setDealign(fast) {
                if (updating) return;
                dv.dealigned = true;
                set(fast);
              }
              function set(fast) {
                if (updating || updatingFast) return;
                clearTimeout(debounceChange);
                if (fast === true) updatingFast = true;
                debounceChange = setTimeout(update, fast === true ? 20 : 250);
              }
              function change(_cm, change) {
                if (!dv.diffOutOfDate) {
                  dv.diffOutOfDate = true;
                  edit.from = edit.to = orig.from = orig.to = 0;
                }
                // Update faster when a line was added/removed
                setDealign(change.text.length - 1 != change.to.line - change.from.line);
              }
              dv.edit.on("change", change);
              dv.orig.on("change", change);
              dv.edit.on("markerAdded", setDealign);
              dv.edit.on("markerCleared", setDealign);
              dv.orig.on("markerAdded", setDealign);
              dv.orig.on("markerCleared", setDealign);
              dv.edit.on("viewportChange", function() { set(false); });
              dv.orig.on("viewportChange", function() { set(false); });
              update();
              return update;
            }
          
            function registerScroll(dv) {
              dv.edit.on("scroll", function() {
                syncScroll(dv, DIFF_INSERT) && makeConnections(dv);
              });
              dv.orig.on("scroll", function() {
                syncScroll(dv, DIFF_DELETE) && makeConnections(dv);
              });
            }
          
            function syncScroll(dv, type) {
              // Change handler will do a refresh after a timeout when diff is out of date
              if (dv.diffOutOfDate) return false;
              if (!dv.lockScroll) return true;
              var editor, other, now = +new Date;
              if (type == DIFF_INSERT) { editor = dv.edit; other = dv.orig; }
              else { editor = dv.orig; other = dv.edit; }
              // Don't take action if the position of this editor was recently set
              // (to prevent feedback loops)
              if (editor.state.scrollSetBy == dv && (editor.state.scrollSetAt || 0) + 50 > now) return false;
          
              var sInfo = editor.getScrollInfo();
              if (dv.mv.options.connect == "align") {
                targetPos = sInfo.top;
              } else {
                var halfScreen = .5 * sInfo.clientHeight, midY = sInfo.top + halfScreen;
                var mid = editor.lineAtHeight(midY, "local");
                var around = chunkBoundariesAround(dv.chunks, mid, type == DIFF_INSERT);
                var off = getOffsets(editor, type == DIFF_INSERT ? around.edit : around.orig);
                var offOther = getOffsets(other, type == DIFF_INSERT ? around.orig : around.edit);
                var ratio = (midY - off.top) / (off.bot - off.top);
                var targetPos = (offOther.top - halfScreen) + ratio * (offOther.bot - offOther.top);
          
                var botDist, mix;
                // Some careful tweaking to make sure no space is left out of view
                // when scrolling to top or bottom.
                if (targetPos > sInfo.top && (mix = sInfo.top / halfScreen) < 1) {
                  targetPos = targetPos * mix + sInfo.top * (1 - mix);
                } else if ((botDist = sInfo.height - sInfo.clientHeight - sInfo.top) < halfScreen) {
                  var otherInfo = other.getScrollInfo();
                  var botDistOther = otherInfo.height - otherInfo.clientHeight - targetPos;
                  if (botDistOther > botDist && (mix = botDist / halfScreen) < 1)
                    targetPos = targetPos * mix + (otherInfo.height - otherInfo.clientHeight - botDist) * (1 - mix);
                }
              }
          
              other.scrollTo(sInfo.left, targetPos);
              other.state.scrollSetAt = now;
              other.state.scrollSetBy = dv;
              return true;
            }
          
            function getOffsets(editor, around) {
              var bot = around.after;
              if (bot == null) bot = editor.lastLine() + 1;
              return {top: editor.heightAtLine(around.before || 0, "local"),
                      bot: editor.heightAtLine(bot, "local")};
            }
          
            function setScrollLock(dv, val, action) {
              dv.lockScroll = val;
              if (val && action != false) syncScroll(dv, DIFF_INSERT) && makeConnections(dv);
              dv.lockButton.innerHTML = val ? "\u21db\u21da" : "\u21db&nbsp;&nbsp;\u21da";
            }
          
            // Updating the marks for editor content
          
            function clearMarks(editor, arr, classes) {
              for (var i = 0; i < arr.length; ++i) {
                var mark = arr[i];
                if (mark instanceof CodeMirror.TextMarker) {
                  mark.clear();
                } else if (mark.parent) {
                  editor.removeLineClass(mark, "background", classes.chunk);
                  editor.removeLineClass(mark, "background", classes.start);
                  editor.removeLineClass(mark, "background", classes.end);
                }
              }
              arr.length = 0;
            }
          
            // FIXME maybe add a margin around viewport to prevent too many updates
            function updateMarks(editor, diff, state, type, classes) {
              var vp = editor.getViewport();
              editor.operation(function() {
                if (state.from == state.to || vp.from - state.to > 20 || state.from - vp.to > 20) {
                  clearMarks(editor, state.marked, classes);
                  markChanges(editor, diff, type, state.marked, vp.from, vp.to, classes);
                  state.from = vp.from; state.to = vp.to;
                } else {
                  if (vp.from < state.from) {
                    markChanges(editor, diff, type, state.marked, vp.from, state.from, classes);
                    state.from = vp.from;
                  }
                  if (vp.to > state.to) {
                    markChanges(editor, diff, type, state.marked, state.to, vp.to, classes);
                    state.to = vp.to;
                  }
                }
              });
            }
          
            function markChanges(editor, diff, type, marks, from, to, classes) {
              var pos = Pos(0, 0);
              var top = Pos(from, 0), bot = editor.clipPos(Pos(to - 1));
              var cls = type == DIFF_DELETE ? classes.del : classes.insert;
              function markChunk(start, end) {
                var bfrom = Math.max(from, start), bto = Math.min(to, end);
                for (var i = bfrom; i < bto; ++i) {
                  var line = editor.addLineClass(i, "background", classes.chunk);
                  if (i == start) editor.addLineClass(line, "background", classes.start);
                  if (i == end - 1) editor.addLineClass(line, "background", classes.end);
                  marks.push(line);
                }
                // When the chunk is empty, make sure a horizontal line shows up
                if (start == end && bfrom == end && bto == end) {
                  if (bfrom)
                    marks.push(editor.addLineClass(bfrom - 1, "background", classes.end));
                  else
                    marks.push(editor.addLineClass(bfrom, "background", classes.start));
                }
              }
          
              var chunkStart = 0;
              for (var i = 0; i < diff.length; ++i) {
                var part = diff[i], tp = part[0], str = part[1];
                if (tp == DIFF_EQUAL) {
                  var cleanFrom = pos.line + (startOfLineClean(diff, i) ? 0 : 1);
                  moveOver(pos, str);
                  var cleanTo = pos.line + (endOfLineClean(diff, i) ? 1 : 0);
                  if (cleanTo > cleanFrom) {
                    if (i) markChunk(chunkStart, cleanFrom);
                    chunkStart = cleanTo;
                  }
                } else {
                  if (tp == type) {
                    var end = moveOver(pos, str, true);
                    var a = posMax(top, pos), b = posMin(bot, end);
                    if (!posEq(a, b))
                      marks.push(editor.markText(a, b, {className: cls}));
                    pos = end;
                  }
                }
              }
              if (chunkStart <= pos.line) markChunk(chunkStart, pos.line + 1);
            }
          
            // Updating the gap between editor and original
          
            function makeConnections(dv) {
              if (!dv.showDifferences) return;
          
              if (dv.svg) {
                clear(dv.svg);
                var w = dv.gap.offsetWidth;
                attrs(dv.svg, "width", w, "height", dv.gap.offsetHeight);
              }
              if (dv.copyButtons) clear(dv.copyButtons);
          
              var vpEdit = dv.edit.getViewport(), vpOrig = dv.orig.getViewport();
              var sTopEdit = dv.edit.getScrollInfo().top, sTopOrig = dv.orig.getScrollInfo().top;
              for (var i = 0; i < dv.chunks.length; i++) {
                var ch = dv.chunks[i];
                if (ch.editFrom <= vpEdit.to && ch.editTo >= vpEdit.from &&
                    ch.origFrom <= vpOrig.to && ch.origTo >= vpOrig.from)
                  drawConnectorsForChunk(dv, ch, sTopOrig, sTopEdit, w);
              }
            }
          
            function getMatchingOrigLine(editLine, chunks) {
              var editStart = 0, origStart = 0;
              for (var i = 0; i < chunks.length; i++) {
                var chunk = chunks[i];
                if (chunk.editTo > editLine && chunk.editFrom <= editLine) return null;
                if (chunk.editFrom > editLine) break;
                editStart = chunk.editTo;
                origStart = chunk.origTo;
              }
              return origStart + (editLine - editStart);
            }
          
            function findAlignedLines(dv, other) {
              var linesToAlign = [];
              for (var i = 0; i < dv.chunks.length; i++) {
                var chunk = dv.chunks[i];
                linesToAlign.push([chunk.origTo, chunk.editTo, other ? getMatchingOrigLine(chunk.editTo, other.chunks) : null]);
              }
              if (other) {
                for (var i = 0; i < other.chunks.length; i++) {
                  var chunk = other.chunks[i];
                  for (var j = 0; j < linesToAlign.length; j++) {
                    var align = linesToAlign[j];
                    if (align[1] == chunk.editTo) {
                      j = -1;
                      break;
                    } else if (align[1] > chunk.editTo) {
                      break;
                    }
                  }
                  if (j > -1)
                    linesToAlign.splice(j - 1, 0, [getMatchingOrigLine(chunk.editTo, dv.chunks), chunk.editTo, chunk.origTo]);
                }
              }
              return linesToAlign;
            }
          
            function alignChunks(dv, force) {
              if (!dv.dealigned && !force) return;
              if (!dv.orig.curOp) return dv.orig.operation(function() {
                alignChunks(dv, force);
              });
          
              dv.dealigned = false;
              var other = dv.mv.left == dv ? dv.mv.right : dv.mv.left;
              if (other) {
                ensureDiff(other);
                other.dealigned = false;
              }
              var linesToAlign = findAlignedLines(dv, other);
          
              // Clear old aligners
              var aligners = dv.mv.aligners;
              for (var i = 0; i < aligners.length; i++)
                aligners[i].clear();
              aligners.length = 0;
          
              var cm = [dv.orig, dv.edit], scroll = [];
              if (other) cm.push(other.orig);
              for (var i = 0; i < cm.length; i++)
                scroll.push(cm[i].getScrollInfo().top);
          
              for (var ln = 0; ln < linesToAlign.length; ln++)
                alignLines(cm, linesToAlign[ln], aligners);
          
              for (var i = 0; i < cm.length; i++)
                cm[i].scrollTo(null, scroll[i]);
            }
          
            function alignLines(cm, lines, aligners) {
              var maxOffset = 0, offset = [];
              for (var i = 0; i < cm.length; i++) if (lines[i] != null) {
                var off = cm[i].heightAtLine(lines[i], "local");
                offset[i] = off;
                maxOffset = Math.max(maxOffset, off);
              }
              for (var i = 0; i < cm.length; i++) if (lines[i] != null) {
                var diff = maxOffset - offset[i];
                if (diff > 1)
                  aligners.push(padAbove(cm[i], lines[i], diff));
              }
            }
          
            function padAbove(cm, line, size) {
              var above = true;
              if (line > cm.lastLine()) {
                line--;
                above = false;
              }
              var elt = document.createElement("div");
              elt.className = "CodeMirror-merge-spacer";
              elt.style.height = size + "px"; elt.style.minWidth = "1px";
              return cm.addLineWidget(line, elt, {height: size, above: above});
            }
          
            function drawConnectorsForChunk(dv, chunk, sTopOrig, sTopEdit, w) {
              var flip = dv.type == "left";
              var top = dv.orig.heightAtLine(chunk.origFrom, "local") - sTopOrig;
              if (dv.svg) {
                var topLpx = top;
                var topRpx = dv.edit.heightAtLine(chunk.editFrom, "local") - sTopEdit;
                if (flip) { var tmp = topLpx; topLpx = topRpx; topRpx = tmp; }
                var botLpx = dv.orig.heightAtLine(chunk.origTo, "local") - sTopOrig;
                var botRpx = dv.edit.heightAtLine(chunk.editTo, "local") - sTopEdit;
                if (flip) { var tmp = botLpx; botLpx = botRpx; botRpx = tmp; }
                var curveTop = " C " + w/2 + " " + topRpx + " " + w/2 + " " + topLpx + " " + (w + 2) + " " + topLpx;
                var curveBot = " C " + w/2 + " " + botLpx + " " + w/2 + " " + botRpx + " -1 " + botRpx;
                attrs(dv.svg.appendChild(document.createElementNS(svgNS, "path")),
                      "d", "M -1 " + topRpx + curveTop + " L " + (w + 2) + " " + botLpx + curveBot + " z",
                      "class", dv.classes.connect);
              }
              if (dv.copyButtons) {
                var copy = dv.copyButtons.appendChild(elt("div", dv.type == "left" ? "\u21dd" : "\u21dc",
                                                          "CodeMirror-merge-copy"));
                var editOriginals = dv.mv.options.allowEditingOriginals;
                copy.title = editOriginals ? "Push to left" : "Revert chunk";
                copy.chunk = chunk;
                copy.style.top = top + "px";
          
                if (editOriginals) {
                  var topReverse = dv.orig.heightAtLine(chunk.editFrom, "local") - sTopEdit;
                  var copyReverse = dv.copyButtons.appendChild(elt("div", dv.type == "right" ? "\u21dd" : "\u21dc",
                                                                   "CodeMirror-merge-copy-reverse"));
                  copyReverse.title = "Push to right";
                  copyReverse.chunk = {editFrom: chunk.origFrom, editTo: chunk.origTo,
                                       origFrom: chunk.editFrom, origTo: chunk.editTo};
                  copyReverse.style.top = topReverse + "px";
                  dv.type == "right" ? copyReverse.style.left = "2px" : copyReverse.style.right = "2px";
                }
              }
            }
          
            function copyChunk(dv, to, from, chunk) {
              if (dv.diffOutOfDate) return;
              to.replaceRange(from.getRange(Pos(chunk.origFrom, 0), Pos(chunk.origTo, 0)),
                                   Pos(chunk.editFrom, 0), Pos(chunk.editTo, 0));
            }
          
            // Merge view, containing 0, 1, or 2 diff views.
          
            var MergeView = CodeMirror.MergeView = function(node, options) {
              if (!(this instanceof MergeView)) return new MergeView(node, options);
          
              this.options = options;
              var origLeft = options.origLeft, origRight = options.origRight == null ? options.orig : options.origRight;
          
              var hasLeft = origLeft != null, hasRight = origRight != null;
              var panes = 1 + (hasLeft ? 1 : 0) + (hasRight ? 1 : 0);
              var wrap = [], left = this.left = null, right = this.right = null;
              var self = this;
          
              if (hasLeft) {
                left = this.left = new DiffView(this, "left");
                var leftPane = elt("div", null, "CodeMirror-merge-pane");
                wrap.push(leftPane);
                wrap.push(buildGap(left));
              }
          
              var editPane = elt("div", null, "CodeMirror-merge-pane");
              wrap.push(editPane);
          
              if (hasRight) {
                right = this.right = new DiffView(this, "right");
                wrap.push(buildGap(right));
                var rightPane = elt("div", null, "CodeMirror-merge-pane");
                wrap.push(rightPane);
              }
          
              (hasRight ? rightPane : editPane).className += " CodeMirror-merge-pane-rightmost";
          
              wrap.push(elt("div", null, null, "height: 0; clear: both;"));
          
              var wrapElt = this.wrap = node.appendChild(elt("div", wrap, "CodeMirror-merge CodeMirror-merge-" + panes + "pane"));
              this.edit = CodeMirror(editPane, copyObj(options));
          
              if (left) left.init(leftPane, origLeft, options);
              if (right) right.init(rightPane, origRight, options);
          
              if (options.collapseIdentical) {
                updating = true;
                this.editor().operation(function() {
                  collapseIdenticalStretches(self, options.collapseIdentical);
                });
                updating = false;
              }
              if (options.connect == "align") {
                this.aligners = [];
                alignChunks(this.left || this.right, true);
              }
          
              var onResize = function() {
                if (left) makeConnections(left);
                if (right) makeConnections(right);
              };
              CodeMirror.on(window, "resize", onResize);
              var resizeInterval = setInterval(function() {
                for (var p = wrapElt.parentNode; p && p != document.body; p = p.parentNode) {}
                if (!p) { clearInterval(resizeInterval); CodeMirror.off(window, "resize", onResize); }
              }, 5000);
            };
          
            function buildGap(dv) {
              var lock = dv.lockButton = elt("div", null, "CodeMirror-merge-scrolllock");
              lock.title = "Toggle locked scrolling";
              var lockWrap = elt("div", [lock], "CodeMirror-merge-scrolllock-wrap");
              CodeMirror.on(lock, "click", function() { setScrollLock(dv, !dv.lockScroll); });
              var gapElts = [lockWrap];
              if (dv.mv.options.revertButtons !== false) {
                dv.copyButtons = elt("div", null, "CodeMirror-merge-copybuttons-" + dv.type);
                CodeMirror.on(dv.copyButtons, "click", function(e) {
                  var node = e.target || e.srcElement;
                  if (!node.chunk) return;
                  if (node.className == "CodeMirror-merge-copy-reverse") {
                    copyChunk(dv, dv.orig, dv.edit, node.chunk);
                    return;
                  }
                  copyChunk(dv, dv.edit, dv.orig, node.chunk);
                });
                gapElts.unshift(dv.copyButtons);
              }
              if (dv.mv.options.connect != "align") {
                var svg = document.createElementNS && document.createElementNS(svgNS, "svg");
                if (svg && !svg.createSVGRect) svg = null;
                dv.svg = svg;
                if (svg) gapElts.push(svg);
              }
          
              return dv.gap = elt("div", gapElts, "CodeMirror-merge-gap");
            }
          
            MergeView.prototype = {
              constuctor: MergeView,
              editor: function() { return this.edit; },
              rightOriginal: function() { return this.right && this.right.orig; },
              leftOriginal: function() { return this.left && this.left.orig; },
              setShowDifferences: function(val) {
                if (this.right) this.right.setShowDifferences(val);
                if (this.left) this.left.setShowDifferences(val);
              },
              rightChunks: function() {
                if (this.right) { ensureDiff(this.right); return this.right.chunks; }
              },
              leftChunks: function() {
                if (this.left) { ensureDiff(this.left); return this.left.chunks; }
              }
            };
          
            function asString(obj) {
              if (typeof obj == "string") return obj;
              else return obj.getValue();
            }
          
            // Operations on diffs
          
            var dmp = new diff_match_patch();
            function getDiff(a, b) {
              var diff = dmp.diff_main(a, b);
              dmp.diff_cleanupSemantic(diff);
              // The library sometimes leaves in empty parts, which confuse the algorithm
              for (var i = 0; i < diff.length; ++i) {
                var part = diff[i];
                if (!part[1]) {
                  diff.splice(i--, 1);
                } else if (i && diff[i - 1][0] == part[0]) {
                  diff.splice(i--, 1);
                  diff[i][1] += part[1];
                }
              }
              return diff;
            }
          
            function getChunks(diff) {
              var chunks = [];
              var startEdit = 0, startOrig = 0;
              var edit = Pos(0, 0), orig = Pos(0, 0);
              for (var i = 0; i < diff.length; ++i) {
                var part = diff[i], tp = part[0];
                if (tp == DIFF_EQUAL) {
                  var startOff = startOfLineClean(diff, i) ? 0 : 1;
                  var cleanFromEdit = edit.line + startOff, cleanFromOrig = orig.line + startOff;
                  moveOver(edit, part[1], null, orig);
                  var endOff = endOfLineClean(diff, i) ? 1 : 0;
                  var cleanToEdit = edit.line + endOff, cleanToOrig = orig.line + endOff;
                  if (cleanToEdit > cleanFromEdit) {
                    if (i) chunks.push({origFrom: startOrig, origTo: cleanFromOrig,
                                        editFrom: startEdit, editTo: cleanFromEdit});
                    startEdit = cleanToEdit; startOrig = cleanToOrig;
                  }
                } else {
                  moveOver(tp == DIFF_INSERT ? edit : orig, part[1]);
                }
              }
              if (startEdit <= edit.line || startOrig <= orig.line)
                chunks.push({origFrom: startOrig, origTo: orig.line + 1,
                             editFrom: startEdit, editTo: edit.line + 1});
              return chunks;
            }
          
            function endOfLineClean(diff, i) {
              if (i == diff.length - 1) return true;
              var next = diff[i + 1][1];
              if (next.length == 1 || next.charCodeAt(0) != 10) return false;
              if (i == diff.length - 2) return true;
              next = diff[i + 2][1];
              return next.length > 1 && next.charCodeAt(0) == 10;
            }
          
            function startOfLineClean(diff, i) {
              if (i == 0) return true;
              var last = diff[i - 1][1];
              if (last.charCodeAt(last.length - 1) != 10) return false;
              if (i == 1) return true;
              last = diff[i - 2][1];
              return last.charCodeAt(last.length - 1) == 10;
            }
          
            function chunkBoundariesAround(chunks, n, nInEdit) {
              var beforeE, afterE, beforeO, afterO;
              for (var i = 0; i < chunks.length; i++) {
                var chunk = chunks[i];
                var fromLocal = nInEdit ? chunk.editFrom : chunk.origFrom;
                var toLocal = nInEdit ? chunk.editTo : chunk.origTo;
                if (afterE == null) {
                  if (fromLocal > n) { afterE = chunk.editFrom; afterO = chunk.origFrom; }
                  else if (toLocal > n) { afterE = chunk.editTo; afterO = chunk.origTo; }
                }
                if (toLocal <= n) { beforeE = chunk.editTo; beforeO = chunk.origTo; }
                else if (fromLocal <= n) { beforeE = chunk.editFrom; beforeO = chunk.origFrom; }
              }
              return {edit: {before: beforeE, after: afterE}, orig: {before: beforeO, after: afterO}};
            }
          
            function collapseSingle(cm, from, to) {
              cm.addLineClass(from, "wrap", "CodeMirror-merge-collapsed-line");
              var widget = document.createElement("span");
              widget.className = "CodeMirror-merge-collapsed-widget";
              widget.title = "Identical text collapsed. Click to expand.";
              var mark = cm.markText(Pos(from, 0), Pos(to - 1), {
                inclusiveLeft: true,
                inclusiveRight: true,
                replacedWith: widget,
                clearOnEnter: true
              });
              function clear() {
                mark.clear();
                cm.removeLineClass(from, "wrap", "CodeMirror-merge-collapsed-line");
              }
              CodeMirror.on(widget, "click", clear);
              return {mark: mark, clear: clear};
            }
          
            function collapseStretch(size, editors) {
              var marks = [];
              function clear() {
                for (var i = 0; i < marks.length; i++) marks[i].clear();
              }
              for (var i = 0; i < editors.length; i++) {
                var editor = editors[i];
                var mark = collapseSingle(editor.cm, editor.line, editor.line + size);
                marks.push(mark);
                mark.mark.on("clear", clear);
              }
              return marks[0].mark;
            }
          
            function unclearNearChunks(dv, margin, off, clear) {
              for (var i = 0; i < dv.chunks.length; i++) {
                var chunk = dv.chunks[i];
                for (var l = chunk.editFrom - margin; l < chunk.editTo + margin; l++) {
                  var pos = l + off;
                  if (pos >= 0 && pos < clear.length) clear[pos] = false;
                }
              }
            }
          
            function collapseIdenticalStretches(mv, margin) {
              if (typeof margin != "number") margin = 2;
              var clear = [], edit = mv.editor(), off = edit.firstLine();
              for (var l = off, e = edit.lastLine(); l <= e; l++) clear.push(true);
              if (mv.left) unclearNearChunks(mv.left, margin, off, clear);
              if (mv.right) unclearNearChunks(mv.right, margin, off, clear);
          
              for (var i = 0; i < clear.length; i++) {
                if (clear[i]) {
                  var line = i + off;
                  for (var size = 1; i < clear.length - 1 && clear[i + 1]; i++, size++) {}
                  if (size > margin) {
                    var editors = [{line: line, cm: edit}];
                    if (mv.left) editors.push({line: getMatchingOrigLine(line, mv.left.chunks), cm: mv.left.orig});
                    if (mv.right) editors.push({line: getMatchingOrigLine(line, mv.right.chunks), cm: mv.right.orig});
                    var mark = collapseStretch(size, editors);
                    if (mv.options.onCollapse) mv.options.onCollapse(mv, line, size, mark);
                  }
                }
              }
            }
          
            // General utilities
          
            function elt(tag, content, className, style) {
              var e = document.createElement(tag);
              if (className) e.className = className;
              if (style) e.style.cssText = style;
              if (typeof content == "string") e.appendChild(document.createTextNode(content));
              else if (content) for (var i = 0; i < content.length; ++i) e.appendChild(content[i]);
              return e;
            }
          
            function clear(node) {
              for (var count = node.childNodes.length; count > 0; --count)
                node.removeChild(node.firstChild);
            }
          
            function attrs(elt) {
              for (var i = 1; i < arguments.length; i += 2)
                elt.setAttribute(arguments[i], arguments[i+1]);
            }
          
            function copyObj(obj, target) {
              if (!target) target = {};
              for (var prop in obj) if (obj.hasOwnProperty(prop)) target[prop] = obj[prop];
              return target;
            }
          
            function moveOver(pos, str, copy, other) {
              var out = copy ? Pos(pos.line, pos.ch) : pos, at = 0;
              for (;;) {
                var nl = str.indexOf("\n", at);
                if (nl == -1) break;
                ++out.line;
                if (other) ++other.line;
                at = nl + 1;
              }
              out.ch = (at ? 0 : out.ch) + (str.length - at);
              if (other) other.ch = (at ? 0 : other.ch) + (str.length - at);
              return out;
            }
          
            function posMin(a, b) { return (a.line - b.line || a.ch - b.ch) < 0 ? a : b; }
            function posMax(a, b) { return (a.line - b.line || a.ch - b.ch) > 0 ? a : b; }
            function posEq(a, b) { return a.line == b.line && a.ch == b.ch; }
          
            function findPrevDiff(chunks, start, isOrig) {
              for (var i = chunks.length - 1; i >= 0; i--) {
                var chunk = chunks[i];
                var to = (isOrig ? chunk.origTo : chunk.editTo) - 1;
                if (to < start) return to;
              }
            }
          
            function findNextDiff(chunks, start, isOrig) {
              for (var i = 0; i < chunks.length; i++) {
                var chunk = chunks[i];
                var from = (isOrig ? chunk.origFrom : chunk.editFrom);
                if (from > start) return from;
              }
            }
          
            function goNearbyDiff(cm, dir) {
              var found = null, views = cm.state.diffViews, line = cm.getCursor().line;
              if (views) for (var i = 0; i < views.length; i++) {
                var dv = views[i], isOrig = cm == dv.orig;
                ensureDiff(dv);
                var pos = dir < 0 ? findPrevDiff(dv.chunks, line, isOrig) : findNextDiff(dv.chunks, line, isOrig);
                if (pos != null && (found == null || (dir < 0 ? pos > found : pos < found)))
                  found = pos;
              }
              if (found != null)
                cm.setCursor(found, 0);
              else
                return CodeMirror.Pass;
            }
          
            CodeMirror.commands.goNextDiff = function(cm) {
              return goNearbyDiff(cm, 1);
            };
            CodeMirror.commands.goPrevDiff = function(cm) {
              return goNearbyDiff(cm, -1);
            };
          });
          
      • mode
        • loadmode.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), "cjs");
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], function(CM) { mod(CM, "amd"); });
            else // Plain browser env
              mod(CodeMirror, "plain");
          })(function(CodeMirror, env) {
            if (!CodeMirror.modeURL) CodeMirror.modeURL = "../mode/%N/%N.js";
          
            var loading = {};
            function splitCallback(cont, n) {
              var countDown = n;
              return function() { if (--countDown == 0) cont(); };
            }
            function ensureDeps(mode, cont) {
              var deps = CodeMirror.modes[mode].dependencies;
              if (!deps) return cont();
              var missing = [];
              for (var i = 0; i < deps.length; ++i) {
                if (!CodeMirror.modes.hasOwnProperty(deps[i]))
                  missing.push(deps[i]);
              }
              if (!missing.length) return cont();
              var split = splitCallback(cont, missing.length);
              for (var i = 0; i < missing.length; ++i)
                CodeMirror.requireMode(missing[i], split);
            }
          
            CodeMirror.requireMode = function(mode, cont) {
              if (typeof mode != "string") mode = mode.name;
              if (CodeMirror.modes.hasOwnProperty(mode)) return ensureDeps(mode, cont);
              if (loading.hasOwnProperty(mode)) return loading[mode].push(cont);
          
              var file = CodeMirror.modeURL.replace(/%N/g, mode);
              if (env == "plain") {
                var script = document.createElement("script");
                script.src = file;
                var others = document.getElementsByTagName("script")[0];
                var list = loading[mode] = [cont];
                CodeMirror.on(script, "load", function() {
                  ensureDeps(mode, function() {
                    for (var i = 0; i < list.length; ++i) list[i]();
                  });
                });
                others.parentNode.insertBefore(script, others);
              } else if (env == "cjs") {
                require(file);
                cont();
              } else if (env == "amd") {
                requirejs([file], cont);
              }
            };
          
            CodeMirror.autoLoadMode = function(instance, mode) {
              if (!CodeMirror.modes.hasOwnProperty(mode))
                CodeMirror.requireMode(mode, function() {
                  instance.setOption("mode", instance.getOption("mode"));
                });
            };
          });
          
        • multiplex.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.multiplexingMode = function(outer /*, others */) {
            // Others should be {open, close, mode [, delimStyle] [, innerStyle]} objects
            var others = Array.prototype.slice.call(arguments, 1);
          
            function indexOf(string, pattern, from, returnEnd) {
              if (typeof pattern == "string") {
                var found = string.indexOf(pattern, from);
                return returnEnd && found > -1 ? found + pattern.length : found;
              }
              var m = pattern.exec(from ? string.slice(from) : string);
              return m ? m.index + from + (returnEnd ? m[0].length : 0) : -1;
            }
          
            return {
              startState: function() {
                return {
                  outer: CodeMirror.startState(outer),
                  innerActive: null,
                  inner: null
                };
              },
          
              copyState: function(state) {
                return {
                  outer: CodeMirror.copyState(outer, state.outer),
                  innerActive: state.innerActive,
                  inner: state.innerActive && CodeMirror.copyState(state.innerActive.mode, state.inner)
                };
              },
          
              token: function(stream, state) {
                if (!state.innerActive) {
                  var cutOff = Infinity, oldContent = stream.string;
                  for (var i = 0; i < others.length; ++i) {
                    var other = others[i];
                    var found = indexOf(oldContent, other.open, stream.pos);
                    if (found == stream.pos) {
                      if (!other.parseDelimiters) stream.match(other.open);
                      state.innerActive = other;
                      state.inner = CodeMirror.startState(other.mode, outer.indent ? outer.indent(state.outer, "") : 0);
                      return other.delimStyle && (other.delimStyle + " " + other.delimStyle + "-open");
                    } else if (found != -1 && found < cutOff) {
                      cutOff = found;
                    }
                  }
                  if (cutOff != Infinity) stream.string = oldContent.slice(0, cutOff);
                  var outerToken = outer.token(stream, state.outer);
                  if (cutOff != Infinity) stream.string = oldContent;
                  return outerToken;
                } else {
                  var curInner = state.innerActive, oldContent = stream.string;
                  if (!curInner.close && stream.sol()) {
                    state.innerActive = state.inner = null;
                    return this.token(stream, state);
                  }
                  var found = curInner.close ? indexOf(oldContent, curInner.close, stream.pos, curInner.parseDelimiters) : -1;
                  if (found == stream.pos && !curInner.parseDelimiters) {
                    stream.match(curInner.close);
                    state.innerActive = state.inner = null;
                    return curInner.delimStyle && (curInner.delimStyle + " " + curInner.delimStyle + "-close");
                  }
                  if (found > -1) stream.string = oldContent.slice(0, found);
                  var innerToken = curInner.mode.token(stream, state.inner);
                  if (found > -1) stream.string = oldContent;
          
                  if (found == stream.pos && curInner.parseDelimiters)
                    state.innerActive = state.inner = null;
          
                  if (curInner.innerStyle) {
                    if (innerToken) innerToken = innerToken + " " + curInner.innerStyle;
                    else innerToken = curInner.innerStyle;
                  }
          
                  return innerToken;
                }
              },
          
              indent: function(state, textAfter) {
                var mode = state.innerActive ? state.innerActive.mode : outer;
                if (!mode.indent) return CodeMirror.Pass;
                return mode.indent(state.innerActive ? state.inner : state.outer, textAfter);
              },
          
              blankLine: function(state) {
                var mode = state.innerActive ? state.innerActive.mode : outer;
                if (mode.blankLine) {
                  mode.blankLine(state.innerActive ? state.inner : state.outer);
                }
                if (!state.innerActive) {
                  for (var i = 0; i < others.length; ++i) {
                    var other = others[i];
                    if (other.open === "\n") {
                      state.innerActive = other;
                      state.inner = CodeMirror.startState(other.mode, mode.indent ? mode.indent(state.outer, "") : 0);
                    }
                  }
                } else if (state.innerActive.close === "\n") {
                  state.innerActive = state.inner = null;
                }
              },
          
              electricChars: outer.electricChars,
          
              innerMode: function(state) {
                return state.inner ? {state: state.inner, mode: state.innerActive.mode} : {state: state.outer, mode: outer};
              }
            };
          };
          
          });
          
        • multiplex_test.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function() {
            CodeMirror.defineMode("markdown_with_stex", function(){
              var inner = CodeMirror.getMode({}, "stex");
              var outer = CodeMirror.getMode({}, "markdown");
          
              var innerOptions = {
                open: '$',
                close: '$',
                mode: inner,
                delimStyle: 'delim',
                innerStyle: 'inner'
              };
          
              return CodeMirror.multiplexingMode(outer, innerOptions);
            });
          
            var mode = CodeMirror.getMode({}, "markdown_with_stex");
          
            function MT(name) {
              test.mode(
                name,
                mode,
                Array.prototype.slice.call(arguments, 1),
                'multiplexing');
            }
          
            MT(
              "stexInsideMarkdown",
              "[strong **Equation:**] [delim&delim-open $][inner&tag \\pi][delim&delim-close $]");
          })();
          
        • overlay.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // Utility function that allows modes to be combined. The mode given
          // as the base argument takes care of most of the normal mode
          // functionality, but a second (typically simple) mode is used, which
          // can override the style of text. Both modes get to parse all of the
          // text, but when both assign a non-null style to a piece of code, the
          // overlay wins, unless the combine argument was true and not overridden,
          // or state.overlay.combineTokens was true, in which case the styles are
          // combined.
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.overlayMode = function(base, overlay, combine) {
            return {
              startState: function() {
                return {
                  base: CodeMirror.startState(base),
                  overlay: CodeMirror.startState(overlay),
                  basePos: 0, baseCur: null,
                  overlayPos: 0, overlayCur: null,
                  streamSeen: null
                };
              },
              copyState: function(state) {
                return {
                  base: CodeMirror.copyState(base, state.base),
                  overlay: CodeMirror.copyState(overlay, state.overlay),
                  basePos: state.basePos, baseCur: null,
                  overlayPos: state.overlayPos, overlayCur: null
                };
              },
          
              token: function(stream, state) {
                if (stream != state.streamSeen ||
                    Math.min(state.basePos, state.overlayPos) < stream.start) {
                  state.streamSeen = stream;
                  state.basePos = state.overlayPos = stream.start;
                }
          
                if (stream.start == state.basePos) {
                  state.baseCur = base.token(stream, state.base);
                  state.basePos = stream.pos;
                }
                if (stream.start == state.overlayPos) {
                  stream.pos = stream.start;
                  state.overlayCur = overlay.token(stream, state.overlay);
                  state.overlayPos = stream.pos;
                }
                stream.pos = Math.min(state.basePos, state.overlayPos);
          
                // state.overlay.combineTokens always takes precedence over combine,
                // unless set to null
                if (state.overlayCur == null) return state.baseCur;
                else if (state.baseCur != null &&
                         state.overlay.combineTokens ||
                         combine && state.overlay.combineTokens == null)
                  return state.baseCur + " " + state.overlayCur;
                else return state.overlayCur;
              },
          
              indent: base.indent && function(state, textAfter) {
                return base.indent(state.base, textAfter);
              },
              electricChars: base.electricChars,
          
              innerMode: function(state) { return {state: state.base, mode: base}; },
          
              blankLine: function(state) {
                if (base.blankLine) base.blankLine(state.base);
                if (overlay.blankLine) overlay.blankLine(state.overlay);
              }
            };
          };
          
          });
          
        • simple.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineSimpleMode = function(name, states) {
              CodeMirror.defineMode(name, function(config) {
                return CodeMirror.simpleMode(config, states);
              });
            };
          
            CodeMirror.simpleMode = function(config, states) {
              ensureState(states, "start");
              var states_ = {}, meta = states.meta || {}, hasIndentation = false;
              for (var state in states) if (state != meta && states.hasOwnProperty(state)) {
                var list = states_[state] = [], orig = states[state];
                for (var i = 0; i < orig.length; i++) {
                  var data = orig[i];
                  list.push(new Rule(data, states));
                  if (data.indent || data.dedent) hasIndentation = true;
                }
              }
              var mode = {
                startState: function() {
                  return {state: "start", pending: null,
                          local: null, localState: null,
                          indent: hasIndentation ? [] : null};
                },
                copyState: function(state) {
                  var s = {state: state.state, pending: state.pending,
                           local: state.local, localState: null,
                           indent: state.indent && state.indent.slice(0)};
                  if (state.localState)
                    s.localState = CodeMirror.copyState(state.local.mode, state.localState);
                  if (state.stack)
                    s.stack = state.stack.slice(0);
                  for (var pers = state.persistentStates; pers; pers = pers.next)
                    s.persistentStates = {mode: pers.mode,
                                          spec: pers.spec,
                                          state: pers.state == state.localState ? s.localState : CodeMirror.copyState(pers.mode, pers.state),
                                          next: s.persistentStates};
                  return s;
                },
                token: tokenFunction(states_, config),
                innerMode: function(state) { return state.local && {mode: state.local.mode, state: state.localState}; },
                indent: indentFunction(states_, meta)
              };
              if (meta) for (var prop in meta) if (meta.hasOwnProperty(prop))
                mode[prop] = meta[prop];
              return mode;
            };
          
            function ensureState(states, name) {
              if (!states.hasOwnProperty(name))
                throw new Error("Undefined state " + name + "in simple mode");
            }
          
            function toRegex(val, caret) {
              if (!val) return /(?:)/;
              var flags = "";
              if (val instanceof RegExp) {
                if (val.ignoreCase) flags = "i";
                val = val.source;
              } else {
                val = String(val);
              }
              return new RegExp((caret === false ? "" : "^") + "(?:" + val + ")", flags);
            }
          
            function asToken(val) {
              if (!val) return null;
              if (typeof val == "string") return val.replace(/\./g, " ");
              var result = [];
              for (var i = 0; i < val.length; i++)
                result.push(val[i] && val[i].replace(/\./g, " "));
              return result;
            }
          
            function Rule(data, states) {
              if (data.next || data.push) ensureState(states, data.next || data.push);
              this.regex = toRegex(data.regex);
              this.token = asToken(data.token);
              this.data = data;
            }
          
            function tokenFunction(states, config) {
              return function(stream, state) {
                if (state.pending) {
                  var pend = state.pending.shift();
                  if (state.pending.length == 0) state.pending = null;
                  stream.pos += pend.text.length;
                  return pend.token;
                }
          
                if (state.local) {
                  if (state.local.end && stream.match(state.local.end)) {
                    var tok = state.local.endToken || null;
                    state.local = state.localState = null;
                    return tok;
                  } else {
                    var tok = state.local.mode.token(stream, state.localState), m;
                    if (state.local.endScan && (m = state.local.endScan.exec(stream.current())))
                      stream.pos = stream.start + m.index;
                    return tok;
                  }
                }
          
                var curState = states[state.state];
                for (var i = 0; i < curState.length; i++) {
                  var rule = curState[i];
                  var matches = (!rule.data.sol || stream.sol()) && stream.match(rule.regex);
                  if (matches) {
                    if (rule.data.next) {
                      state.state = rule.data.next;
                    } else if (rule.data.push) {
                      (state.stack || (state.stack = [])).push(state.state);
                      state.state = rule.data.push;
                    } else if (rule.data.pop && state.stack && state.stack.length) {
                      state.state = state.stack.pop();
                    }
          
                    if (rule.data.mode)
                      enterLocalMode(config, state, rule.data.mode, rule.token);
                    if (rule.data.indent)
                      state.indent.push(stream.indentation() + config.indentUnit);
                    if (rule.data.dedent)
                      state.indent.pop();
                    if (matches.length > 2) {
                      state.pending = [];
                      for (var j = 2; j < matches.length; j++)
                        if (matches[j])
                          state.pending.push({text: matches[j], token: rule.token[j - 1]});
                      stream.backUp(matches[0].length - (matches[1] ? matches[1].length : 0));
                      return rule.token[0];
                    } else if (rule.token && rule.token.join) {
                      return rule.token[0];
                    } else {
                      return rule.token;
                    }
                  }
                }
                stream.next();
                return null;
              };
            }
          
            function cmp(a, b) {
              if (a === b) return true;
              if (!a || typeof a != "object" || !b || typeof b != "object") return false;
              var props = 0;
              for (var prop in a) if (a.hasOwnProperty(prop)) {
                if (!b.hasOwnProperty(prop) || !cmp(a[prop], b[prop])) return false;
                props++;
              }
              for (var prop in b) if (b.hasOwnProperty(prop)) props--;
              return props == 0;
            }
          
            function enterLocalMode(config, state, spec, token) {
              var pers;
              if (spec.persistent) for (var p = state.persistentStates; p && !pers; p = p.next)
                if (spec.spec ? cmp(spec.spec, p.spec) : spec.mode == p.mode) pers = p;
              var mode = pers ? pers.mode : spec.mode || CodeMirror.getMode(config, spec.spec);
              var lState = pers ? pers.state : CodeMirror.startState(mode);
              if (spec.persistent && !pers)
                state.persistentStates = {mode: mode, spec: spec.spec, state: lState, next: state.persistentStates};
          
              state.localState = lState;
              state.local = {mode: mode,
                             end: spec.end && toRegex(spec.end),
                             endScan: spec.end && spec.forceEnd !== false && toRegex(spec.end, false),
                             endToken: token && token.join ? token[token.length - 1] : token};
            }
          
            function indexOf(val, arr) {
              for (var i = 0; i < arr.length; i++) if (arr[i] === val) return true;
            }
          
            function indentFunction(states, meta) {
              return function(state, textAfter, line) {
                if (state.local && state.local.mode.indent)
                  return state.local.mode.indent(state.localState, textAfter, line);
                if (state.indent == null || state.local || meta.dontIndentStates && indexOf(state.state, meta.dontIndentStates) > -1)
                  return CodeMirror.Pass;
          
                var pos = state.indent.length - 1, rules = states[state.state];
                scan: for (;;) {
                  for (var i = 0; i < rules.length; i++) {
                    var rule = rules[i];
                    if (rule.data.dedent && rule.data.dedentIfLineStart !== false) {
                      var m = rule.regex.exec(textAfter);
                      if (m && m[0]) {
                        pos--;
                        if (rule.next || rule.push) rules = states[rule.next || rule.push];
                        textAfter = textAfter.slice(m[0].length);
                        continue scan;
                      }
                    }
                  }
                  break;
                }
                return pos < 0 ? 0 : state.indent[pos];
              };
            }
          });
          
      • runmode
        • colorize.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("./runmode"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "./runmode"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            var isBlock = /^(p|li|div|h\\d|pre|blockquote|td)$/;
          
            function textContent(node, out) {
              if (node.nodeType == 3) return out.push(node.nodeValue);
              for (var ch = node.firstChild; ch; ch = ch.nextSibling) {
                textContent(ch, out);
                if (isBlock.test(node.nodeType)) out.push("\n");
              }
            }
          
            CodeMirror.colorize = function(collection, defaultMode) {
              if (!collection) collection = document.body.getElementsByTagName("pre");
          
              for (var i = 0; i < collection.length; ++i) {
                var node = collection[i];
                var mode = node.getAttribute("data-lang") || defaultMode;
                if (!mode) continue;
          
                var text = [];
                textContent(node, text);
                node.innerHTML = "";
                CodeMirror.runMode(text.join(""), mode, node);
          
                node.className += " cm-s-default";
              }
            };
          });
          
        • runmode-standalone.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          window.CodeMirror = {};
          
          (function() {
          "use strict";
          
          function splitLines(string){ return string.split(/\r?\n|\r/); };
          
          function StringStream(string) {
            this.pos = this.start = 0;
            this.string = string;
            this.lineStart = 0;
          }
          StringStream.prototype = {
            eol: function() {return this.pos >= this.string.length;},
            sol: function() {return this.pos == 0;},
            peek: function() {return this.string.charAt(this.pos) || null;},
            next: function() {
              if (this.pos < this.string.length)
                return this.string.charAt(this.pos++);
            },
            eat: function(match) {
              var ch = this.string.charAt(this.pos);
              if (typeof match == "string") var ok = ch == match;
              else var ok = ch && (match.test ? match.test(ch) : match(ch));
              if (ok) {++this.pos; return ch;}
            },
            eatWhile: function(match) {
              var start = this.pos;
              while (this.eat(match)){}
              return this.pos > start;
            },
            eatSpace: function() {
              var start = this.pos;
              while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos;
              return this.pos > start;
            },
            skipToEnd: function() {this.pos = this.string.length;},
            skipTo: function(ch) {
              var found = this.string.indexOf(ch, this.pos);
              if (found > -1) {this.pos = found; return true;}
            },
            backUp: function(n) {this.pos -= n;},
            column: function() {return this.start - this.lineStart;},
            indentation: function() {return 0;},
            match: function(pattern, consume, caseInsensitive) {
              if (typeof pattern == "string") {
                var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;};
                var substr = this.string.substr(this.pos, pattern.length);
                if (cased(substr) == cased(pattern)) {
                  if (consume !== false) this.pos += pattern.length;
                  return true;
                }
              } else {
                var match = this.string.slice(this.pos).match(pattern);
                if (match && match.index > 0) return null;
                if (match && consume !== false) this.pos += match[0].length;
                return match;
              }
            },
            current: function(){return this.string.slice(this.start, this.pos);},
            hideFirstChars: function(n, inner) {
              this.lineStart += n;
              try { return inner(); }
              finally { this.lineStart -= n; }
            }
          };
          CodeMirror.StringStream = StringStream;
          
          CodeMirror.startState = function (mode, a1, a2) {
            return mode.startState ? mode.startState(a1, a2) : true;
          };
          
          var modes = CodeMirror.modes = {}, mimeModes = CodeMirror.mimeModes = {};
          CodeMirror.defineMode = function (name, mode) {
            if (arguments.length > 2)
              mode.dependencies = Array.prototype.slice.call(arguments, 2);
            modes[name] = mode;
          };
          CodeMirror.defineMIME = function (mime, spec) { mimeModes[mime] = spec; };
          CodeMirror.resolveMode = function(spec) {
            if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) {
              spec = mimeModes[spec];
            } else if (spec && typeof spec.name == "string" && mimeModes.hasOwnProperty(spec.name)) {
              spec = mimeModes[spec.name];
            }
            if (typeof spec == "string") return {name: spec};
            else return spec || {name: "null"};
          };
          CodeMirror.getMode = function (options, spec) {
            spec = CodeMirror.resolveMode(spec);
            var mfactory = modes[spec.name];
            if (!mfactory) throw new Error("Unknown mode: " + spec);
            return mfactory(options, spec);
          };
          CodeMirror.registerHelper = CodeMirror.registerGlobalHelper = Math.min;
          CodeMirror.defineMode("null", function() {
            return {token: function(stream) {stream.skipToEnd();}};
          });
          CodeMirror.defineMIME("text/plain", "null");
          
          CodeMirror.runMode = function (string, modespec, callback, options) {
            var mode = CodeMirror.getMode({ indentUnit: 2 }, modespec);
          
            if (callback.nodeType == 1) {
              var tabSize = (options && options.tabSize) || 4;
              var node = callback, col = 0;
              node.innerHTML = "";
              callback = function (text, style) {
                if (text == "\n") {
                  node.appendChild(document.createElement("br"));
                  col = 0;
                  return;
                }
                var content = "";
                // replace tabs
                for (var pos = 0; ;) {
                  var idx = text.indexOf("\t", pos);
                  if (idx == -1) {
                    content += text.slice(pos);
                    col += text.length - pos;
                    break;
                  } else {
                    col += idx - pos;
                    content += text.slice(pos, idx);
                    var size = tabSize - col % tabSize;
                    col += size;
                    for (var i = 0; i < size; ++i) content += " ";
                    pos = idx + 1;
                  }
                }
          
                if (style) {
                  var sp = node.appendChild(document.createElement("span"));
                  sp.className = "cm-" + style.replace(/ +/g, " cm-");
                  sp.appendChild(document.createTextNode(content));
                } else {
                  node.appendChild(document.createTextNode(content));
                }
              };
            }
          
            var lines = splitLines(string), state = (options && options.state) || CodeMirror.startState(mode);
            for (var i = 0, e = lines.length; i < e; ++i) {
              if (i) callback("\n");
              var stream = new CodeMirror.StringStream(lines[i]);
              if (!stream.string && mode.blankLine) mode.blankLine(state);
              while (!stream.eol()) {
                var style = mode.token(stream, state);
                callback(stream.current(), style, i, stream.start, state);
                stream.start = stream.pos;
              }
            }
          };
          })();
          
        • runmode.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.runMode = function(string, modespec, callback, options) {
            var mode = CodeMirror.getMode(CodeMirror.defaults, modespec);
            var ie = /MSIE \d/.test(navigator.userAgent);
            var ie_lt9 = ie && (document.documentMode == null || document.documentMode < 9);
          
            if (callback.nodeType == 1) {
              var tabSize = (options && options.tabSize) || CodeMirror.defaults.tabSize;
              var node = callback, col = 0;
              node.innerHTML = "";
              callback = function(text, style) {
                if (text == "\n") {
                  // Emitting LF or CRLF on IE8 or earlier results in an incorrect display.
                  // Emitting a carriage return makes everything ok.
                  node.appendChild(document.createTextNode(ie_lt9 ? '\r' : text));
                  col = 0;
                  return;
                }
                var content = "";
                // replace tabs
                for (var pos = 0;;) {
                  var idx = text.indexOf("\t", pos);
                  if (idx == -1) {
                    content += text.slice(pos);
                    col += text.length - pos;
                    break;
                  } else {
                    col += idx - pos;
                    content += text.slice(pos, idx);
                    var size = tabSize - col % tabSize;
                    col += size;
                    for (var i = 0; i < size; ++i) content += " ";
                    pos = idx + 1;
                  }
                }
          
                if (style) {
                  var sp = node.appendChild(document.createElement("span"));
                  sp.className = "cm-" + style.replace(/ +/g, " cm-");
                  sp.appendChild(document.createTextNode(content));
                } else {
                  node.appendChild(document.createTextNode(content));
                }
              };
            }
          
            var lines = CodeMirror.splitLines(string), state = (options && options.state) || CodeMirror.startState(mode);
            for (var i = 0, e = lines.length; i < e; ++i) {
              if (i) callback("\n");
              var stream = new CodeMirror.StringStream(lines[i]);
              if (!stream.string && mode.blankLine) mode.blankLine(state);
              while (!stream.eol()) {
                var style = mode.token(stream, state);
                callback(stream.current(), style, i, stream.start, state);
                stream.start = stream.pos;
              }
            }
          };
          
          });
          
        • runmode.node.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          /* Just enough of CodeMirror to run runMode under node.js */
          
          function splitLines(string){return string.split(/\r\n?|\n/);};
          
          // Counts the column offset in a string, taking tabs into account.
          // Used mostly to find indentation.
          var countColumn = function(string, end, tabSize, startIndex, startValue) {
            if (end == null) {
              end = string.search(/[^\s\u00a0]/);
              if (end == -1) end = string.length;
            }
            for (var i = startIndex || 0, n = startValue || 0;;) {
              var nextTab = string.indexOf("\t", i);
              if (nextTab < 0 || nextTab >= end)
                return n + (end - i);
              n += nextTab - i;
              n += tabSize - (n % tabSize);
              i = nextTab + 1;
            }
          };
          
          function StringStream(string, tabSize) {
            this.pos = this.start = 0;
            this.string = string;
            this.tabSize = tabSize || 8;
            this.lastColumnPos = this.lastColumnValue = 0;
            this.lineStart = 0;
          };
          
          StringStream.prototype = {
            eol: function() {return this.pos >= this.string.length;},
            sol: function() {return this.pos == this.lineStart;},
            peek: function() {return this.string.charAt(this.pos) || undefined;},
            next: function() {
              if (this.pos < this.string.length)
                return this.string.charAt(this.pos++);
            },
            eat: function(match) {
              var ch = this.string.charAt(this.pos);
              if (typeof match == "string") var ok = ch == match;
              else var ok = ch && (match.test ? match.test(ch) : match(ch));
              if (ok) {++this.pos; return ch;}
            },
            eatWhile: function(match) {
              var start = this.pos;
              while (this.eat(match)){}
              return this.pos > start;
            },
            eatSpace: function() {
              var start = this.pos;
              while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos;
              return this.pos > start;
            },
            skipToEnd: function() {this.pos = this.string.length;},
            skipTo: function(ch) {
              var found = this.string.indexOf(ch, this.pos);
              if (found > -1) {this.pos = found; return true;}
            },
            backUp: function(n) {this.pos -= n;},
            column: function() {
              if (this.lastColumnPos < this.start) {
                this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);
                this.lastColumnPos = this.start;
              }
              return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0);
            },
            indentation: function() {
              return countColumn(this.string, null, this.tabSize) -
                (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0);
            },
            match: function(pattern, consume, caseInsensitive) {
              if (typeof pattern == "string") {
                var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;};
                var substr = this.string.substr(this.pos, pattern.length);
                if (cased(substr) == cased(pattern)) {
                  if (consume !== false) this.pos += pattern.length;
                  return true;
                }
              } else {
                var match = this.string.slice(this.pos).match(pattern);
                if (match && match.index > 0) return null;
                if (match && consume !== false) this.pos += match[0].length;
                return match;
              }
            },
            current: function(){return this.string.slice(this.start, this.pos);},
            hideFirstChars: function(n, inner) {
              this.lineStart += n;
              try { return inner(); }
              finally { this.lineStart -= n; }
            }
          };
          exports.StringStream = StringStream;
          
          exports.startState = function(mode, a1, a2) {
            return mode.startState ? mode.startState(a1, a2) : true;
          };
          
          var modes = exports.modes = {}, mimeModes = exports.mimeModes = {};
          exports.defineMode = function(name, mode) {
            if (arguments.length > 2)
              mode.dependencies = Array.prototype.slice.call(arguments, 2);
            modes[name] = mode;
          };
          exports.defineMIME = function(mime, spec) { mimeModes[mime] = spec; };
          
          exports.defineMode("null", function() {
            return {token: function(stream) {stream.skipToEnd();}};
          });
          exports.defineMIME("text/plain", "null");
          
          exports.resolveMode = function(spec) {
            if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) {
              spec = mimeModes[spec];
            } else if (spec && typeof spec.name == "string" && mimeModes.hasOwnProperty(spec.name)) {
              spec = mimeModes[spec.name];
            }
            if (typeof spec == "string") return {name: spec};
            else return spec || {name: "null"};
          };
          
          function copyObj(obj, target, overwrite) {
            if (!target) target = {};
            for (var prop in obj)
              if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop)))
                target[prop] = obj[prop];
            return target;
          }
          
          // This can be used to attach properties to mode objects from
          // outside the actual mode definition.
          var modeExtensions = exports.modeExtensions = {};
          exports.extendMode = function(mode, properties) {
            var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});
            copyObj(properties, exts);
          };
          
          exports.getMode = function(options, spec) {
            var spec = exports.resolveMode(spec);
            var mfactory = modes[spec.name];
            if (!mfactory) return exports.getMode(options, "text/plain");
            var modeObj = mfactory(options, spec);
            if (modeExtensions.hasOwnProperty(spec.name)) {
              var exts = modeExtensions[spec.name];
              for (var prop in exts) {
                if (!exts.hasOwnProperty(prop)) continue;
                if (modeObj.hasOwnProperty(prop)) modeObj["_" + prop] = modeObj[prop];
                modeObj[prop] = exts[prop];
              }
            }
            modeObj.name = spec.name;
            if (spec.helperType) modeObj.helperType = spec.helperType;
            if (spec.modeProps) for (var prop in spec.modeProps)
              modeObj[prop] = spec.modeProps[prop];
          
            return modeObj;
          };
          exports.registerHelper = exports.registerGlobalHelper = Math.min;
          
          exports.runMode = function(string, modespec, callback, options) {
            var mode = exports.getMode({indentUnit: 2}, modespec);
            var lines = splitLines(string), state = (options && options.state) || exports.startState(mode);
            for (var i = 0, e = lines.length; i < e; ++i) {
              if (i) callback("\n");
              var stream = new exports.StringStream(lines[i]);
              if (!stream.string && mode.blankLine) mode.blankLine(state);
              while (!stream.eol()) {
                var style = mode.token(stream, state);
                callback(stream.current(), style, i, stream.start, state);
                stream.start = stream.pos;
              }
            }
          };
          
          require.cache[require.resolve("../../lib/codemirror")] = require.cache[require.resolve("./runmode.node")];
          
      • scroll
        • annotatescrollbar.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineExtension("annotateScrollbar", function(options) {
              if (typeof options == "string") options = {className: options};
              return new Annotation(this, options);
            });
          
            CodeMirror.defineOption("scrollButtonHeight", 0);
          
            function Annotation(cm, options) {
              this.cm = cm;
              this.options = options;
              this.buttonHeight = options.scrollButtonHeight || cm.getOption("scrollButtonHeight");
              this.annotations = [];
              this.doRedraw = this.doUpdate = null;
              this.div = cm.getWrapperElement().appendChild(document.createElement("div"));
              this.div.style.cssText = "position: absolute; right: 0; top: 0; z-index: 7; pointer-events: none";
              this.computeScale();
          
              function scheduleRedraw(delay) {
                clearTimeout(self.doRedraw);
                self.doRedraw = setTimeout(function() { self.redraw(); }, delay);
              }
          
              var self = this;
              cm.on("refresh", this.resizeHandler = function() {
                clearTimeout(self.doUpdate);
                self.doUpdate = setTimeout(function() {
                  if (self.computeScale()) scheduleRedraw(20);
                }, 100);
              });
              cm.on("markerAdded", this.resizeHandler);
              cm.on("markerCleared", this.resizeHandler);
              if (options.listenForChanges !== false)
                cm.on("change", this.changeHandler = function() {
                  scheduleRedraw(250);
                });
            }
          
            Annotation.prototype.computeScale = function() {
              var cm = this.cm;
              var hScale = (cm.getWrapperElement().clientHeight - cm.display.barHeight - this.buttonHeight * 2) /
                cm.heightAtLine(cm.lastLine() + 1, "local");
              if (hScale != this.hScale) {
                this.hScale = hScale;
                return true;
              }
            };
          
            Annotation.prototype.update = function(annotations) {
              this.annotations = annotations;
              this.redraw();
            };
          
            Annotation.prototype.redraw = function(compute) {
              if (compute !== false) this.computeScale();
              var cm = this.cm, hScale = this.hScale;
          
              var frag = document.createDocumentFragment(), anns = this.annotations;
          
              var wrapping = cm.getOption("lineWrapping");
              var singleLineH = wrapping && cm.defaultTextHeight() * 1.5;
              var curLine = null, curLineObj = null;
              function getY(pos, top) {
                if (curLine != pos.line) {
                  curLine = pos.line;
                  curLineObj = cm.getLineHandle(curLine);
                }
                if (wrapping && curLineObj.height > singleLineH)
                  return cm.charCoords(pos, "local")[top ? "top" : "bottom"];
                var topY = cm.heightAtLine(curLineObj, "local");
                return topY + (top ? 0 : curLineObj.height);
              }
          
              if (cm.display.barWidth) for (var i = 0, nextTop; i < anns.length; i++) {
                var ann = anns[i];
                var top = nextTop || getY(ann.from, true) * hScale;
                var bottom = getY(ann.to, false) * hScale;
                while (i < anns.length - 1) {
                  nextTop = getY(anns[i + 1].from, true) * hScale;
                  if (nextTop > bottom + .9) break;
                  ann = anns[++i];
                  bottom = getY(ann.to, false) * hScale;
                }
                if (bottom == top) continue;
                var height = Math.max(bottom - top, 3);
          
                var elt = frag.appendChild(document.createElement("div"));
                elt.style.cssText = "position: absolute; right: 0px; width: " + Math.max(cm.display.barWidth - 1, 2) + "px; top: "
                  + (top + this.buttonHeight) + "px; height: " + height + "px";
                elt.className = this.options.className;
              }
              this.div.textContent = "";
              this.div.appendChild(frag);
            };
          
            Annotation.prototype.clear = function() {
              this.cm.off("refresh", this.resizeHandler);
              this.cm.off("markerAdded", this.resizeHandler);
              this.cm.off("markerCleared", this.resizeHandler);
              if (this.changeHandler) this.cm.off("change", this.changeHandler);
              this.div.parentNode.removeChild(this.div);
            };
          });
          
        • scrollpastend.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineOption("scrollPastEnd", false, function(cm, val, old) {
              if (old && old != CodeMirror.Init) {
                cm.off("change", onChange);
                cm.off("refresh", updateBottomMargin);
                cm.display.lineSpace.parentNode.style.paddingBottom = "";
                cm.state.scrollPastEndPadding = null;
              }
              if (val) {
                cm.on("change", onChange);
                cm.on("refresh", updateBottomMargin);
                updateBottomMargin(cm);
              }
            });
          
            function onChange(cm, change) {
              if (CodeMirror.changeEnd(change).line == cm.lastLine())
                updateBottomMargin(cm);
            }
          
            function updateBottomMargin(cm) {
              var padding = "";
              if (cm.lineCount() > 1) {
                var totalH = cm.display.scroller.clientHeight - 30,
                    lastLineH = cm.getLineHandle(cm.lastLine()).height;
                padding = (totalH - lastLineH) + "px";
              }
              if (cm.state.scrollPastEndPadding != padding) {
                cm.state.scrollPastEndPadding = padding;
                cm.display.lineSpace.parentNode.style.paddingBottom = padding;
                cm.setSize();
              }
            }
          });
          
        • simplescrollbars.css
          .CodeMirror-simplescroll-horizontal div, .CodeMirror-simplescroll-vertical div {
            position: absolute;
            background: #ccc;
            -moz-box-sizing: border-box;
            box-sizing: border-box;
            border: 1px solid #bbb;
            border-radius: 2px;
          }
          
          .CodeMirror-simplescroll-horizontal, .CodeMirror-simplescroll-vertical {
            position: absolute;
            z-index: 6;
            background: #eee;
          }
          
          .CodeMirror-simplescroll-horizontal {
            bottom: 0; left: 0;
            height: 8px;
          }
          .CodeMirror-simplescroll-horizontal div {
            bottom: 0;
            height: 100%;
          }
          
          .CodeMirror-simplescroll-vertical {
            right: 0; top: 0;
            width: 8px;
          }
          .CodeMirror-simplescroll-vertical div {
            right: 0;
            width: 100%;
          }
          
          
          .CodeMirror-overlayscroll .CodeMirror-scrollbar-filler, .CodeMirror-overlayscroll .CodeMirror-gutter-filler {
            display: none;
          }
          
          .CodeMirror-overlayscroll-horizontal div, .CodeMirror-overlayscroll-vertical div {
            position: absolute;
            background: #bcd;
            border-radius: 3px;
          }
          
          .CodeMirror-overlayscroll-horizontal, .CodeMirror-overlayscroll-vertical {
            position: absolute;
            z-index: 6;
          }
          
          .CodeMirror-overlayscroll-horizontal {
            bottom: 0; left: 0;
            height: 6px;
          }
          .CodeMirror-overlayscroll-horizontal div {
            bottom: 0;
            height: 100%;
          }
          
          .CodeMirror-overlayscroll-vertical {
            right: 0; top: 0;
            width: 6px;
          }
          .CodeMirror-overlayscroll-vertical div {
            right: 0;
            width: 100%;
          }
          
        • simplescrollbars.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            function Bar(cls, orientation, scroll) {
              this.orientation = orientation;
              this.scroll = scroll;
              this.screen = this.total = this.size = 1;
              this.pos = 0;
          
              this.node = document.createElement("div");
              this.node.className = cls + "-" + orientation;
              this.inner = this.node.appendChild(document.createElement("div"));
          
              var self = this;
              CodeMirror.on(this.inner, "mousedown", function(e) {
                if (e.which != 1) return;
                CodeMirror.e_preventDefault(e);
                var axis = self.orientation == "horizontal" ? "pageX" : "pageY";
                var start = e[axis], startpos = self.pos;
                function done() {
                  CodeMirror.off(document, "mousemove", move);
                  CodeMirror.off(document, "mouseup", done);
                }
                function move(e) {
                  if (e.which != 1) return done();
                  self.moveTo(startpos + (e[axis] - start) * (self.total / self.size));
                }
                CodeMirror.on(document, "mousemove", move);
                CodeMirror.on(document, "mouseup", done);
              });
          
              CodeMirror.on(this.node, "click", function(e) {
                CodeMirror.e_preventDefault(e);
                var innerBox = self.inner.getBoundingClientRect(), where;
                if (self.orientation == "horizontal")
                  where = e.clientX < innerBox.left ? -1 : e.clientX > innerBox.right ? 1 : 0;
                else
                  where = e.clientY < innerBox.top ? -1 : e.clientY > innerBox.bottom ? 1 : 0;
                self.moveTo(self.pos + where * self.screen);
              });
          
              function onWheel(e) {
                var moved = CodeMirror.wheelEventPixels(e)[self.orientation == "horizontal" ? "x" : "y"];
                var oldPos = self.pos;
                self.moveTo(self.pos + moved);
                if (self.pos != oldPos) CodeMirror.e_preventDefault(e);
              }
              CodeMirror.on(this.node, "mousewheel", onWheel);
              CodeMirror.on(this.node, "DOMMouseScroll", onWheel);
            }
          
            Bar.prototype.moveTo = function(pos, update) {
              if (pos < 0) pos = 0;
              if (pos > this.total - this.screen) pos = this.total - this.screen;
              if (pos == this.pos) return;
              this.pos = pos;
              this.inner.style[this.orientation == "horizontal" ? "left" : "top"] =
                (pos * (this.size / this.total)) + "px";
              if (update !== false) this.scroll(pos, this.orientation);
            };
          
            var minButtonSize = 10;
          
            Bar.prototype.update = function(scrollSize, clientSize, barSize) {
              this.screen = clientSize;
              this.total = scrollSize;
              this.size = barSize;
          
              var buttonSize = this.screen * (this.size / this.total);
              if (buttonSize < minButtonSize) {
                this.size -= minButtonSize - buttonSize;
                buttonSize = minButtonSize;
              }
              this.inner.style[this.orientation == "horizontal" ? "width" : "height"] =
                buttonSize + "px";
              this.inner.style[this.orientation == "horizontal" ? "left" : "top"] =
                this.pos * (this.size / this.total) + "px";
            };
          
            function SimpleScrollbars(cls, place, scroll) {
              this.addClass = cls;
              this.horiz = new Bar(cls, "horizontal", scroll);
              place(this.horiz.node);
              this.vert = new Bar(cls, "vertical", scroll);
              place(this.vert.node);
              this.width = null;
            }
          
            SimpleScrollbars.prototype.update = function(measure) {
              if (this.width == null) {
                var style = window.getComputedStyle ? window.getComputedStyle(this.horiz.node) : this.horiz.node.currentStyle;
                if (style) this.width = parseInt(style.height);
              }
              var width = this.width || 0;
          
              var needsH = measure.scrollWidth > measure.clientWidth + 1;
              var needsV = measure.scrollHeight > measure.clientHeight + 1;
              this.vert.node.style.display = needsV ? "block" : "none";
              this.horiz.node.style.display = needsH ? "block" : "none";
          
              if (needsV) {
                this.vert.update(measure.scrollHeight, measure.clientHeight,
                                 measure.viewHeight - (needsH ? width : 0));
                this.vert.node.style.display = "block";
                this.vert.node.style.bottom = needsH ? width + "px" : "0";
              }
              if (needsH) {
                this.horiz.update(measure.scrollWidth, measure.clientWidth,
                                  measure.viewWidth - (needsV ? width : 0) - measure.barLeft);
                this.horiz.node.style.right = needsV ? width + "px" : "0";
                this.horiz.node.style.left = measure.barLeft + "px";
              }
          
              return {right: needsV ? width : 0, bottom: needsH ? width : 0};
            };
          
            SimpleScrollbars.prototype.setScrollTop = function(pos) {
              this.vert.moveTo(pos, false);
            };
          
            SimpleScrollbars.prototype.setScrollLeft = function(pos) {
              this.horiz.moveTo(pos, false);
            };
          
            SimpleScrollbars.prototype.clear = function() {
              var parent = this.horiz.node.parentNode;
              parent.removeChild(this.horiz.node);
              parent.removeChild(this.vert.node);
            };
          
            CodeMirror.scrollbarModel.simple = function(place, scroll) {
              return new SimpleScrollbars("CodeMirror-simplescroll", place, scroll);
            };
            CodeMirror.scrollbarModel.overlay = function(place, scroll) {
              return new SimpleScrollbars("CodeMirror-overlayscroll", place, scroll);
            };
          });
          
      • search
        • match-highlighter.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // Highlighting text that matches the selection
          //
          // Defines an option highlightSelectionMatches, which, when enabled,
          // will style strings that match the selection throughout the
          // document.
          //
          // The option can be set to true to simply enable it, or to a
          // {minChars, style, wordsOnly, showToken, delay} object to explicitly
          // configure it. minChars is the minimum amount of characters that should be
          // selected for the behavior to occur, and style is the token style to
          // apply to the matches. This will be prefixed by "cm-" to create an
          // actual CSS class name. If wordsOnly is enabled, the matches will be
          // highlighted only if the selected text is a word. showToken, when enabled,
          // will cause the current token to be highlighted when nothing is selected.
          // delay is used to specify how much time to wait, in milliseconds, before
          // highlighting the matches.
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            var DEFAULT_MIN_CHARS = 2;
            var DEFAULT_TOKEN_STYLE = "matchhighlight";
            var DEFAULT_DELAY = 100;
            var DEFAULT_WORDS_ONLY = false;
          
            function State(options) {
              if (typeof options == "object") {
                this.minChars = options.minChars;
                this.style = options.style;
                this.showToken = options.showToken;
                this.delay = options.delay;
                this.wordsOnly = options.wordsOnly;
              }
              if (this.style == null) this.style = DEFAULT_TOKEN_STYLE;
              if (this.minChars == null) this.minChars = DEFAULT_MIN_CHARS;
              if (this.delay == null) this.delay = DEFAULT_DELAY;
              if (this.wordsOnly == null) this.wordsOnly = DEFAULT_WORDS_ONLY;
              this.overlay = this.timeout = null;
            }
          
            CodeMirror.defineOption("highlightSelectionMatches", false, function(cm, val, old) {
              if (old && old != CodeMirror.Init) {
                var over = cm.state.matchHighlighter.overlay;
                if (over) cm.removeOverlay(over);
                clearTimeout(cm.state.matchHighlighter.timeout);
                cm.state.matchHighlighter = null;
                cm.off("cursorActivity", cursorActivity);
              }
              if (val) {
                cm.state.matchHighlighter = new State(val);
                highlightMatches(cm);
                cm.on("cursorActivity", cursorActivity);
              }
            });
          
            function cursorActivity(cm) {
              var state = cm.state.matchHighlighter;
              clearTimeout(state.timeout);
              state.timeout = setTimeout(function() {highlightMatches(cm);}, state.delay);
            }
          
            function highlightMatches(cm) {
              cm.operation(function() {
                var state = cm.state.matchHighlighter;
                if (state.overlay) {
                  cm.removeOverlay(state.overlay);
                  state.overlay = null;
                }
                if (!cm.somethingSelected() && state.showToken) {
                  var re = state.showToken === true ? /[\w$]/ : state.showToken;
                  var cur = cm.getCursor(), line = cm.getLine(cur.line), start = cur.ch, end = start;
                  while (start && re.test(line.charAt(start - 1))) --start;
                  while (end < line.length && re.test(line.charAt(end))) ++end;
                  if (start < end)
                    cm.addOverlay(state.overlay = makeOverlay(line.slice(start, end), re, state.style));
                  return;
                }
                var from = cm.getCursor("from"), to = cm.getCursor("to");
                if (from.line != to.line) return;
                if (state.wordsOnly && !isWord(cm, from, to)) return;
                var selection = cm.getRange(from, to).replace(/^\s+|\s+$/g, "");
                if (selection.length >= state.minChars)
                  cm.addOverlay(state.overlay = makeOverlay(selection, false, state.style));
              });
            }
          
            function isWord(cm, from, to) {
              var str = cm.getRange(from, to);
              if (str.match(/^\w+$/) !== null) {
                  if (from.ch > 0) {
                      var pos = {line: from.line, ch: from.ch - 1};
                      var chr = cm.getRange(pos, from);
                      if (chr.match(/\W/) === null) return false;
                  }
                  if (to.ch < cm.getLine(from.line).length) {
                      var pos = {line: to.line, ch: to.ch + 1};
                      var chr = cm.getRange(to, pos);
                      if (chr.match(/\W/) === null) return false;
                  }
                  return true;
              } else return false;
            }
          
            function boundariesAround(stream, re) {
              return (!stream.start || !re.test(stream.string.charAt(stream.start - 1))) &&
                (stream.pos == stream.string.length || !re.test(stream.string.charAt(stream.pos)));
            }
          
            function makeOverlay(query, hasBoundary, style) {
              return {token: function(stream) {
                if (stream.match(query) &&
                    (!hasBoundary || boundariesAround(stream, hasBoundary)))
                  return style;
                stream.next();
                stream.skipTo(query.charAt(0)) || stream.skipToEnd();
              }};
            }
          });
          
        • matchesonscrollbar.css
          .CodeMirror-search-match {
            background: gold;
            border-top: 1px solid orange;
            border-bottom: 1px solid orange;
            -moz-box-sizing: border-box;
            box-sizing: border-box;
            opacity: .5;
          }
          
        • matchesonscrollbar.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("./searchcursor"), require("../scroll/annotatescrollbar"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "./searchcursor", "../scroll/annotatescrollbar"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineExtension("showMatchesOnScrollbar", function(query, caseFold, options) {
              if (typeof options == "string") options = {className: options};
              if (!options) options = {};
              return new SearchAnnotation(this, query, caseFold, options);
            });
          
            function SearchAnnotation(cm, query, caseFold, options) {
              this.cm = cm;
              this.options = options;
              var annotateOptions = {listenForChanges: false};
              for (var prop in options) annotateOptions[prop] = options[prop];
              if (!annotateOptions.className) annotateOptions.className = "CodeMirror-search-match";
              this.annotation = cm.annotateScrollbar(annotateOptions);
              this.query = query;
              this.caseFold = caseFold;
              this.gap = {from: cm.firstLine(), to: cm.lastLine() + 1};
              this.matches = [];
              this.update = null;
          
              this.findMatches();
              this.annotation.update(this.matches);
          
              var self = this;
              cm.on("change", this.changeHandler = function(_cm, change) { self.onChange(change); });
            }
          
            var MAX_MATCHES = 1000;
          
            SearchAnnotation.prototype.findMatches = function() {
              if (!this.gap) return;
              for (var i = 0; i < this.matches.length; i++) {
                var match = this.matches[i];
                if (match.from.line >= this.gap.to) break;
                if (match.to.line >= this.gap.from) this.matches.splice(i--, 1);
              }
              var cursor = this.cm.getSearchCursor(this.query, CodeMirror.Pos(this.gap.from, 0), this.caseFold);
              var maxMatches = this.options && this.options.maxMatches || MAX_MATCHES;
              while (cursor.findNext()) {
                var match = {from: cursor.from(), to: cursor.to()};
                if (match.from.line >= this.gap.to) break;
                this.matches.splice(i++, 0, match);
                if (this.matches.length > maxMatches) break;
              }
              this.gap = null;
            };
          
            function offsetLine(line, changeStart, sizeChange) {
              if (line <= changeStart) return line;
              return Math.max(changeStart, line + sizeChange);
            }
          
            SearchAnnotation.prototype.onChange = function(change) {
              var startLine = change.from.line;
              var endLine = CodeMirror.changeEnd(change).line;
              var sizeChange = endLine - change.to.line;
              if (this.gap) {
                this.gap.from = Math.min(offsetLine(this.gap.from, startLine, sizeChange), change.from.line);
                this.gap.to = Math.max(offsetLine(this.gap.to, startLine, sizeChange), change.from.line);
              } else {
                this.gap = {from: change.from.line, to: endLine + 1};
              }
          
              if (sizeChange) for (var i = 0; i < this.matches.length; i++) {
                var match = this.matches[i];
                var newFrom = offsetLine(match.from.line, startLine, sizeChange);
                if (newFrom != match.from.line) match.from = CodeMirror.Pos(newFrom, match.from.ch);
                var newTo = offsetLine(match.to.line, startLine, sizeChange);
                if (newTo != match.to.line) match.to = CodeMirror.Pos(newTo, match.to.ch);
              }
              clearTimeout(this.update);
              var self = this;
              this.update = setTimeout(function() { self.updateAfterChange(); }, 250);
            };
          
            SearchAnnotation.prototype.updateAfterChange = function() {
              this.findMatches();
              this.annotation.update(this.matches);
            };
          
            SearchAnnotation.prototype.clear = function() {
              this.cm.off("change", this.changeHandler);
              this.annotation.clear();
            };
          });
          
        • search.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // Define search commands. Depends on dialog.js or another
          // implementation of the openDialog method.
          
          // Replace works a little oddly -- it will do the replace on the next
          // Ctrl-G (or whatever is bound to findNext) press. You prevent a
          // replace by making sure the match is no longer selected when hitting
          // Ctrl-G.
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("./searchcursor"), require("../dialog/dialog"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "./searchcursor", "../dialog/dialog"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            function searchOverlay(query, caseInsensitive) {
              if (typeof query == "string")
                query = new RegExp(query.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"), caseInsensitive ? "gi" : "g");
              else if (!query.global)
                query = new RegExp(query.source, query.ignoreCase ? "gi" : "g");
          
              return {token: function(stream) {
                query.lastIndex = stream.pos;
                var match = query.exec(stream.string);
                if (match && match.index == stream.pos) {
                  stream.pos += match[0].length;
                  return "searching";
                } else if (match) {
                  stream.pos = match.index;
                } else {
                  stream.skipToEnd();
                }
              }};
            }
          
            function SearchState() {
              this.posFrom = this.posTo = this.lastQuery = this.query = null;
              this.overlay = null;
            }
          
            function getSearchState(cm) {
              return cm.state.search || (cm.state.search = new SearchState());
            }
          
            function queryCaseInsensitive(query) {
              return typeof query == "string" && query == query.toLowerCase();
            }
          
            function getSearchCursor(cm, query, pos) {
              // Heuristic: if the query string is all lowercase, do a case insensitive search.
              return cm.getSearchCursor(query, pos, queryCaseInsensitive(query));
            }
          
            function persistentDialog(cm, text, deflt, f) {
              cm.openDialog(text, f, {
                value: deflt,
                selectValueOnOpen: true,
                closeOnEnter: false,
                onClose: function() { clearSearch(cm); }
              });
            }
          
            function dialog(cm, text, shortText, deflt, f) {
              if (cm.openDialog) cm.openDialog(text, f, {value: deflt, selectValueOnOpen: true});
              else f(prompt(shortText, deflt));
            }
          
            function confirmDialog(cm, text, shortText, fs) {
              if (cm.openConfirm) cm.openConfirm(text, fs);
              else if (confirm(shortText)) fs[0]();
            }
          
            function parseString(string) {
              return string.replace(/\\(.)/g, function(_, ch) {
                if (ch == "n") return "\n"
                if (ch == "r") return "\r"
                return ch
              })
            }
          
            function parseQuery(query) {
              var isRE = query.match(/^\/(.*)\/([a-z]*)$/);
              if (isRE) {
                try { query = new RegExp(isRE[1], isRE[2].indexOf("i") == -1 ? "" : "i"); }
                catch(e) {} // Not a regular expression after all, do a string search
              } else {
                query = parseString(query)
              }
              if (typeof query == "string" ? query == "" : query.test(""))
                query = /x^/;
              return query;
            }
          
            var queryDialog =
              'Search: <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">(Use /re/ syntax for regexp search)</span>';
          
            function startSearch(cm, state, query) {
              state.queryText = query;
              state.query = parseQuery(query);
              cm.removeOverlay(state.overlay, queryCaseInsensitive(state.query));
              state.overlay = searchOverlay(state.query, queryCaseInsensitive(state.query));
              cm.addOverlay(state.overlay);
              if (cm.showMatchesOnScrollbar) {
                if (state.annotate) { state.annotate.clear(); state.annotate = null; }
                state.annotate = cm.showMatchesOnScrollbar(state.query, queryCaseInsensitive(state.query));
              }
            }
          
            function doSearch(cm, rev, persistent) {
              var state = getSearchState(cm);
              if (state.query) return findNext(cm, rev);
              var q = cm.getSelection() || state.lastQuery;
              if (persistent && cm.openDialog) {
                var hiding = null
                persistentDialog(cm, queryDialog, q, function(query, event) {
                  CodeMirror.e_stop(event);
                  if (!query) return;
                  if (query != state.queryText) startSearch(cm, state, query);
                  if (hiding) hiding.style.opacity = 1
                  findNext(cm, event.shiftKey, function(_, to) {
                    var dialog
                    if (to.line < 3 && document.querySelector &&
                        (dialog = cm.display.wrapper.querySelector(".CodeMirror-dialog")) &&
                        dialog.getBoundingClientRect().bottom - 4 > cm.cursorCoords(to, "window").top)
                      (hiding = dialog).style.opacity = .4
                  })
                });
              } else {
                dialog(cm, queryDialog, "Search for:", q, function(query) {
                  if (query && !state.query) cm.operation(function() {
                    startSearch(cm, state, query);
                    state.posFrom = state.posTo = cm.getCursor();
                    findNext(cm, rev);
                  });
                });
              }
            }
          
            function findNext(cm, rev, callback) {cm.operation(function() {
              var state = getSearchState(cm);
              var cursor = getSearchCursor(cm, state.query, rev ? state.posFrom : state.posTo);
              if (!cursor.find(rev)) {
                cursor = getSearchCursor(cm, state.query, rev ? CodeMirror.Pos(cm.lastLine()) : CodeMirror.Pos(cm.firstLine(), 0));
                if (!cursor.find(rev)) return;
              }
              cm.setSelection(cursor.from(), cursor.to());
              cm.scrollIntoView({from: cursor.from(), to: cursor.to()}, 20);
              state.posFrom = cursor.from(); state.posTo = cursor.to();
              if (callback) callback(cursor.from(), cursor.to())
            });}
          
            function clearSearch(cm) {cm.operation(function() {
              var state = getSearchState(cm);
              state.lastQuery = state.query;
              if (!state.query) return;
              state.query = state.queryText = null;
              cm.removeOverlay(state.overlay);
              if (state.annotate) { state.annotate.clear(); state.annotate = null; }
            });}
          
            var replaceQueryDialog =
              ' <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">(Use /re/ syntax for regexp search)</span>';
            var replacementQueryDialog = 'With: <input type="text" style="width: 10em" class="CodeMirror-search-field"/>';
            var doReplaceConfirm = "Replace? <button>Yes</button> <button>No</button> <button>All</button> <button>Stop</button>";
          
            function replaceAll(cm, query, text) {
              cm.operation(function() {
                for (var cursor = getSearchCursor(cm, query); cursor.findNext();) {
                  if (typeof query != "string") {
                    var match = cm.getRange(cursor.from(), cursor.to()).match(query);
                    cursor.replace(text.replace(/\$(\d)/g, function(_, i) {return match[i];}));
                  } else cursor.replace(text);
                }
              });
            }
          
            function replace(cm, all) {
              if (cm.getOption("readOnly")) return;
              var query = cm.getSelection() || getSearchState(cm).lastQuery;
              var dialogText = all ? "Replace all:" : "Replace:"
              dialog(cm, dialogText + replaceQueryDialog, dialogText, query, function(query) {
                if (!query) return;
                query = parseQuery(query);
                dialog(cm, replacementQueryDialog, "Replace with:", "", function(text) {
                  text = parseString(text)
                  if (all) {
                    replaceAll(cm, query, text)
                  } else {
                    clearSearch(cm);
                    var cursor = getSearchCursor(cm, query, cm.getCursor());
                    var advance = function() {
                      var start = cursor.from(), match;
                      if (!(match = cursor.findNext())) {
                        cursor = getSearchCursor(cm, query);
                        if (!(match = cursor.findNext()) ||
                            (start && cursor.from().line == start.line && cursor.from().ch == start.ch)) return;
                      }
                      cm.setSelection(cursor.from(), cursor.to());
                      cm.scrollIntoView({from: cursor.from(), to: cursor.to()});
                      confirmDialog(cm, doReplaceConfirm, "Replace?",
                                    [function() {doReplace(match);}, advance,
                                     function() {replaceAll(cm, query, text)}]);
                    };
                    var doReplace = function(match) {
                      cursor.replace(typeof query == "string" ? text :
                                     text.replace(/\$(\d)/g, function(_, i) {return match[i];}));
                      advance();
                    };
                    advance();
                  }
                });
              });
            }
          
            CodeMirror.commands.find = function(cm) {clearSearch(cm); doSearch(cm);};
            CodeMirror.commands.findPersistent = function(cm) {clearSearch(cm); doSearch(cm, false, true);};
            CodeMirror.commands.findNext = doSearch;
            CodeMirror.commands.findPrev = function(cm) {doSearch(cm, true);};
            CodeMirror.commands.clearSearch = clearSearch;
            CodeMirror.commands.replace = replace;
            CodeMirror.commands.replaceAll = function(cm) {replace(cm, true);};
          });
          
        • searchcursor.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
            var Pos = CodeMirror.Pos;
          
            function SearchCursor(doc, query, pos, caseFold) {
              this.atOccurrence = false; this.doc = doc;
              if (caseFold == null && typeof query == "string") caseFold = false;
          
              pos = pos ? doc.clipPos(pos) : Pos(0, 0);
              this.pos = {from: pos, to: pos};
          
              // The matches method is filled in based on the type of query.
              // It takes a position and a direction, and returns an object
              // describing the next occurrence of the query, or null if no
              // more matches were found.
              if (typeof query != "string") { // Regexp match
                if (!query.global) query = new RegExp(query.source, query.ignoreCase ? "ig" : "g");
                this.matches = function(reverse, pos) {
                  if (reverse) {
                    query.lastIndex = 0;
                    var line = doc.getLine(pos.line).slice(0, pos.ch), cutOff = 0, match, start;
                    for (;;) {
                      query.lastIndex = cutOff;
                      var newMatch = query.exec(line);
                      if (!newMatch) break;
                      match = newMatch;
                      start = match.index;
                      cutOff = match.index + (match[0].length || 1);
                      if (cutOff == line.length) break;
                    }
                    var matchLen = (match && match[0].length) || 0;
                    if (!matchLen) {
                      if (start == 0 && line.length == 0) {match = undefined;}
                      else if (start != doc.getLine(pos.line).length) {
                        matchLen++;
                      }
                    }
                  } else {
                    query.lastIndex = pos.ch;
                    var line = doc.getLine(pos.line), match = query.exec(line);
                    var matchLen = (match && match[0].length) || 0;
                    var start = match && match.index;
                    if (start + matchLen != line.length && !matchLen) matchLen = 1;
                  }
                  if (match && matchLen)
                    return {from: Pos(pos.line, start),
                            to: Pos(pos.line, start + matchLen),
                            match: match};
                };
              } else { // String query
                var origQuery = query;
                if (caseFold) query = query.toLowerCase();
                var fold = caseFold ? function(str){return str.toLowerCase();} : function(str){return str;};
                var target = query.split("\n");
                // Different methods for single-line and multi-line queries
                if (target.length == 1) {
                  if (!query.length) {
                    // Empty string would match anything and never progress, so
                    // we define it to match nothing instead.
                    this.matches = function() {};
                  } else {
                    this.matches = function(reverse, pos) {
                      if (reverse) {
                        var orig = doc.getLine(pos.line).slice(0, pos.ch), line = fold(orig);
                        var match = line.lastIndexOf(query);
                        if (match > -1) {
                          match = adjustPos(orig, line, match);
                          return {from: Pos(pos.line, match), to: Pos(pos.line, match + origQuery.length)};
                        }
                       } else {
                         var orig = doc.getLine(pos.line).slice(pos.ch), line = fold(orig);
                         var match = line.indexOf(query);
                         if (match > -1) {
                           match = adjustPos(orig, line, match) + pos.ch;
                           return {from: Pos(pos.line, match), to: Pos(pos.line, match + origQuery.length)};
                         }
                      }
                    };
                  }
                } else {
                  var origTarget = origQuery.split("\n");
                  this.matches = function(reverse, pos) {
                    var last = target.length - 1;
                    if (reverse) {
                      if (pos.line - (target.length - 1) < doc.firstLine()) return;
                      if (fold(doc.getLine(pos.line).slice(0, origTarget[last].length)) != target[target.length - 1]) return;
                      var to = Pos(pos.line, origTarget[last].length);
                      for (var ln = pos.line - 1, i = last - 1; i >= 1; --i, --ln)
                        if (target[i] != fold(doc.getLine(ln))) return;
                      var line = doc.getLine(ln), cut = line.length - origTarget[0].length;
                      if (fold(line.slice(cut)) != target[0]) return;
                      return {from: Pos(ln, cut), to: to};
                    } else {
                      if (pos.line + (target.length - 1) > doc.lastLine()) return;
                      var line = doc.getLine(pos.line), cut = line.length - origTarget[0].length;
                      if (fold(line.slice(cut)) != target[0]) return;
                      var from = Pos(pos.line, cut);
                      for (var ln = pos.line + 1, i = 1; i < last; ++i, ++ln)
                        if (target[i] != fold(doc.getLine(ln))) return;
                      if (fold(doc.getLine(ln).slice(0, origTarget[last].length)) != target[last]) return;
                      return {from: from, to: Pos(ln, origTarget[last].length)};
                    }
                  };
                }
              }
            }
          
            SearchCursor.prototype = {
              findNext: function() {return this.find(false);},
              findPrevious: function() {return this.find(true);},
          
              find: function(reverse) {
                var self = this, pos = this.doc.clipPos(reverse ? this.pos.from : this.pos.to);
                function savePosAndFail(line) {
                  var pos = Pos(line, 0);
                  self.pos = {from: pos, to: pos};
                  self.atOccurrence = false;
                  return false;
                }
          
                for (;;) {
                  if (this.pos = this.matches(reverse, pos)) {
                    this.atOccurrence = true;
                    return this.pos.match || true;
                  }
                  if (reverse) {
                    if (!pos.line) return savePosAndFail(0);
                    pos = Pos(pos.line-1, this.doc.getLine(pos.line-1).length);
                  }
                  else {
                    var maxLine = this.doc.lineCount();
                    if (pos.line == maxLine - 1) return savePosAndFail(maxLine);
                    pos = Pos(pos.line + 1, 0);
                  }
                }
              },
          
              from: function() {if (this.atOccurrence) return this.pos.from;},
              to: function() {if (this.atOccurrence) return this.pos.to;},
          
              replace: function(newText, origin) {
                if (!this.atOccurrence) return;
                var lines = CodeMirror.splitLines(newText);
                this.doc.replaceRange(lines, this.pos.from, this.pos.to, origin);
                this.pos.to = Pos(this.pos.from.line + lines.length - 1,
                                  lines[lines.length - 1].length + (lines.length == 1 ? this.pos.from.ch : 0));
              }
            };
          
            // Maps a position in a case-folded line back to a position in the original line
            // (compensating for codepoints increasing in number during folding)
            function adjustPos(orig, folded, pos) {
              if (orig.length == folded.length) return pos;
              for (var pos1 = Math.min(pos, orig.length);;) {
                var len1 = orig.slice(0, pos1).toLowerCase().length;
                if (len1 < pos) ++pos1;
                else if (len1 > pos) --pos1;
                else return pos1;
              }
            }
          
            CodeMirror.defineExtension("getSearchCursor", function(query, pos, caseFold) {
              return new SearchCursor(this.doc, query, pos, caseFold);
            });
            CodeMirror.defineDocExtension("getSearchCursor", function(query, pos, caseFold) {
              return new SearchCursor(this, query, pos, caseFold);
            });
          
            CodeMirror.defineExtension("selectMatches", function(query, caseFold) {
              var ranges = [];
              var cur = this.getSearchCursor(query, this.getCursor("from"), caseFold);
              while (cur.findNext()) {
                if (CodeMirror.cmpPos(cur.to(), this.getCursor("to")) > 0) break;
                ranges.push({anchor: cur.from(), head: cur.to()});
              }
              if (ranges.length)
                this.setSelections(ranges, 0);
            });
          });
          
      • selection
        • active-line.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // Because sometimes you need to style the cursor's line.
          //
          // Adds an option 'styleActiveLine' which, when enabled, gives the
          // active line's wrapping <div> the CSS class "CodeMirror-activeline",
          // and gives its background <div> the class "CodeMirror-activeline-background".
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
            var WRAP_CLASS = "CodeMirror-activeline";
            var BACK_CLASS = "CodeMirror-activeline-background";
          
            CodeMirror.defineOption("styleActiveLine", false, function(cm, val, old) {
              var prev = old && old != CodeMirror.Init;
              if (val && !prev) {
                cm.state.activeLines = [];
                updateActiveLines(cm, cm.listSelections());
                cm.on("beforeSelectionChange", selectionChange);
              } else if (!val && prev) {
                cm.off("beforeSelectionChange", selectionChange);
                clearActiveLines(cm);
                delete cm.state.activeLines;
              }
            });
          
            function clearActiveLines(cm) {
              for (var i = 0; i < cm.state.activeLines.length; i++) {
                cm.removeLineClass(cm.state.activeLines[i], "wrap", WRAP_CLASS);
                cm.removeLineClass(cm.state.activeLines[i], "background", BACK_CLASS);
              }
            }
          
            function sameArray(a, b) {
              if (a.length != b.length) return false;
              for (var i = 0; i < a.length; i++)
                if (a[i] != b[i]) return false;
              return true;
            }
          
            function updateActiveLines(cm, ranges) {
              var active = [];
              for (var i = 0; i < ranges.length; i++) {
                var range = ranges[i];
                if (!range.empty()) continue;
                var line = cm.getLineHandleVisualStart(range.head.line);
                if (active[active.length - 1] != line) active.push(line);
              }
              if (sameArray(cm.state.activeLines, active)) return;
              cm.operation(function() {
                clearActiveLines(cm);
                for (var i = 0; i < active.length; i++) {
                  cm.addLineClass(active[i], "wrap", WRAP_CLASS);
                  cm.addLineClass(active[i], "background", BACK_CLASS);
                }
                cm.state.activeLines = active;
              });
            }
          
            function selectionChange(cm, sel) {
              updateActiveLines(cm, sel.ranges);
            }
          });
          
        • mark-selection.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // Because sometimes you need to mark the selected *text*.
          //
          // Adds an option 'styleSelectedText' which, when enabled, gives
          // selected text the CSS class given as option value, or
          // "CodeMirror-selectedtext" when the value is not a string.
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineOption("styleSelectedText", false, function(cm, val, old) {
              var prev = old && old != CodeMirror.Init;
              if (val && !prev) {
                cm.state.markedSelection = [];
                cm.state.markedSelectionStyle = typeof val == "string" ? val : "CodeMirror-selectedtext";
                reset(cm);
                cm.on("cursorActivity", onCursorActivity);
                cm.on("change", onChange);
              } else if (!val && prev) {
                cm.off("cursorActivity", onCursorActivity);
                cm.off("change", onChange);
                clear(cm);
                cm.state.markedSelection = cm.state.markedSelectionStyle = null;
              }
            });
          
            function onCursorActivity(cm) {
              cm.operation(function() { update(cm); });
            }
          
            function onChange(cm) {
              if (cm.state.markedSelection.length)
                cm.operation(function() { clear(cm); });
            }
          
            var CHUNK_SIZE = 8;
            var Pos = CodeMirror.Pos;
            var cmp = CodeMirror.cmpPos;
          
            function coverRange(cm, from, to, addAt) {
              if (cmp(from, to) == 0) return;
              var array = cm.state.markedSelection;
              var cls = cm.state.markedSelectionStyle;
              for (var line = from.line;;) {
                var start = line == from.line ? from : Pos(line, 0);
                var endLine = line + CHUNK_SIZE, atEnd = endLine >= to.line;
                var end = atEnd ? to : Pos(endLine, 0);
                var mark = cm.markText(start, end, {className: cls});
                if (addAt == null) array.push(mark);
                else array.splice(addAt++, 0, mark);
                if (atEnd) break;
                line = endLine;
              }
            }
          
            function clear(cm) {
              var array = cm.state.markedSelection;
              for (var i = 0; i < array.length; ++i) array[i].clear();
              array.length = 0;
            }
          
            function reset(cm) {
              clear(cm);
              var ranges = cm.listSelections();
              for (var i = 0; i < ranges.length; i++)
                coverRange(cm, ranges[i].from(), ranges[i].to());
            }
          
            function update(cm) {
              if (!cm.somethingSelected()) return clear(cm);
              if (cm.listSelections().length > 1) return reset(cm);
          
              var from = cm.getCursor("start"), to = cm.getCursor("end");
          
              var array = cm.state.markedSelection;
              if (!array.length) return coverRange(cm, from, to);
          
              var coverStart = array[0].find(), coverEnd = array[array.length - 1].find();
              if (!coverStart || !coverEnd || to.line - from.line < CHUNK_SIZE ||
                  cmp(from, coverEnd.to) >= 0 || cmp(to, coverStart.from) <= 0)
                return reset(cm);
          
              while (cmp(from, coverStart.from) > 0) {
                array.shift().clear();
                coverStart = array[0].find();
              }
              if (cmp(from, coverStart.from) < 0) {
                if (coverStart.to.line - from.line < CHUNK_SIZE) {
                  array.shift().clear();
                  coverRange(cm, from, coverStart.to, 0);
                } else {
                  coverRange(cm, from, coverStart.from, 0);
                }
              }
          
              while (cmp(to, coverEnd.to) < 0) {
                array.pop().clear();
                coverEnd = array[array.length - 1].find();
              }
              if (cmp(to, coverEnd.to) > 0) {
                if (to.line - coverEnd.from.line < CHUNK_SIZE) {
                  array.pop().clear();
                  coverRange(cm, coverEnd.from, to);
                } else {
                  coverRange(cm, coverEnd.to, to);
                }
              }
            }
          });
          
        • selection-pointer.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineOption("selectionPointer", false, function(cm, val) {
              var data = cm.state.selectionPointer;
              if (data) {
                CodeMirror.off(cm.getWrapperElement(), "mousemove", data.mousemove);
                CodeMirror.off(cm.getWrapperElement(), "mouseout", data.mouseout);
                CodeMirror.off(window, "scroll", data.windowScroll);
                cm.off("cursorActivity", reset);
                cm.off("scroll", reset);
                cm.state.selectionPointer = null;
                cm.display.lineDiv.style.cursor = "";
              }
              if (val) {
                data = cm.state.selectionPointer = {
                  value: typeof val == "string" ? val : "default",
                  mousemove: function(event) { mousemove(cm, event); },
                  mouseout: function(event) { mouseout(cm, event); },
                  windowScroll: function() { reset(cm); },
                  rects: null,
                  mouseX: null, mouseY: null,
                  willUpdate: false
                };
                CodeMirror.on(cm.getWrapperElement(), "mousemove", data.mousemove);
                CodeMirror.on(cm.getWrapperElement(), "mouseout", data.mouseout);
                CodeMirror.on(window, "scroll", data.windowScroll);
                cm.on("cursorActivity", reset);
                cm.on("scroll", reset);
              }
            });
          
            function mousemove(cm, event) {
              var data = cm.state.selectionPointer;
              if (event.buttons == null ? event.which : event.buttons) {
                data.mouseX = data.mouseY = null;
              } else {
                data.mouseX = event.clientX;
                data.mouseY = event.clientY;
              }
              scheduleUpdate(cm);
            }
          
            function mouseout(cm, event) {
              if (!cm.getWrapperElement().contains(event.relatedTarget)) {
                var data = cm.state.selectionPointer;
                data.mouseX = data.mouseY = null;
                scheduleUpdate(cm);
              }
            }
          
            function reset(cm) {
              cm.state.selectionPointer.rects = null;
              scheduleUpdate(cm);
            }
          
            function scheduleUpdate(cm) {
              if (!cm.state.selectionPointer.willUpdate) {
                cm.state.selectionPointer.willUpdate = true;
                setTimeout(function() {
                  update(cm);
                  cm.state.selectionPointer.willUpdate = false;
                }, 50);
              }
            }
          
            function update(cm) {
              var data = cm.state.selectionPointer;
              if (!data) return;
              if (data.rects == null && data.mouseX != null) {
                data.rects = [];
                if (cm.somethingSelected()) {
                  for (var sel = cm.display.selectionDiv.firstChild; sel; sel = sel.nextSibling)
                    data.rects.push(sel.getBoundingClientRect());
                }
              }
              var inside = false;
              if (data.mouseX != null) for (var i = 0; i < data.rects.length; i++) {
                var rect = data.rects[i];
                if (rect.left <= data.mouseX && rect.right >= data.mouseX &&
                    rect.top <= data.mouseY && rect.bottom >= data.mouseY)
                  inside = true;
              }
              var cursor = inside ? data.value : "";
              if (cm.display.lineDiv.style.cursor != cursor)
                cm.display.lineDiv.style.cursor = cursor;
            }
          });
          
      • tern
        • tern.css
          .CodeMirror-Tern-completion {
            padding-left: 22px;
            position: relative;
            line-height: 1.5;
          }
          .CodeMirror-Tern-completion:before {
            position: absolute;
            left: 2px;
            bottom: 2px;
            border-radius: 50%;
            font-size: 12px;
            font-weight: bold;
            height: 15px;
            width: 15px;
            line-height: 16px;
            text-align: center;
            color: white;
            -moz-box-sizing: border-box;
            box-sizing: border-box;
          }
          .CodeMirror-Tern-completion-unknown:before {
            content: "?";
            background: #4bb;
          }
          .CodeMirror-Tern-completion-object:before {
            content: "O";
            background: #77c;
          }
          .CodeMirror-Tern-completion-fn:before {
            content: "F";
            background: #7c7;
          }
          .CodeMirror-Tern-completion-array:before {
            content: "A";
            background: #c66;
          }
          .CodeMirror-Tern-completion-number:before {
            content: "1";
            background: #999;
          }
          .CodeMirror-Tern-completion-string:before {
            content: "S";
            background: #999;
          }
          .CodeMirror-Tern-completion-bool:before {
            content: "B";
            background: #999;
          }
          
          .CodeMirror-Tern-completion-guess {
            color: #999;
          }
          
          .CodeMirror-Tern-tooltip {
            border: 1px solid silver;
            border-radius: 3px;
            color: #444;
            padding: 2px 5px;
            font-size: 90%;
            font-family: monospace;
            background-color: white;
            white-space: pre-wrap;
          
            max-width: 40em;
            position: absolute;
            z-index: 10;
            -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
            -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
            box-shadow: 2px 3px 5px rgba(0,0,0,.2);
          
            transition: opacity 1s;
            -moz-transition: opacity 1s;
            -webkit-transition: opacity 1s;
            -o-transition: opacity 1s;
            -ms-transition: opacity 1s;
          }
          
          .CodeMirror-Tern-hint-doc {
            max-width: 25em;
            margin-top: -3px;
          }
          
          .CodeMirror-Tern-fname { color: black; }
          .CodeMirror-Tern-farg { color: #70a; }
          .CodeMirror-Tern-farg-current { text-decoration: underline; }
          .CodeMirror-Tern-type { color: #07c; }
          .CodeMirror-Tern-fhint-guess { opacity: .7; }
          
        • tern.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // Glue code between CodeMirror and Tern.
          //
          // Create a CodeMirror.TernServer to wrap an actual Tern server,
          // register open documents (CodeMirror.Doc instances) with it, and
          // call its methods to activate the assisting functions that Tern
          // provides.
          //
          // Options supported (all optional):
          // * defs: An array of JSON definition data structures.
          // * plugins: An object mapping plugin names to configuration
          //   options.
          // * getFile: A function(name, c) that can be used to access files in
          //   the project that haven't been loaded yet. Simply do c(null) to
          //   indicate that a file is not available.
          // * fileFilter: A function(value, docName, doc) that will be applied
          //   to documents before passing them on to Tern.
          // * switchToDoc: A function(name, doc) that should, when providing a
          //   multi-file view, switch the view or focus to the named file.
          // * showError: A function(editor, message) that can be used to
          //   override the way errors are displayed.
          // * completionTip: Customize the content in tooltips for completions.
          //   Is passed a single argument—the completion's data as returned by
          //   Tern—and may return a string, DOM node, or null to indicate that
          //   no tip should be shown. By default the docstring is shown.
          // * typeTip: Like completionTip, but for the tooltips shown for type
          //   queries.
          // * responseFilter: A function(doc, query, request, error, data) that
          //   will be applied to the Tern responses before treating them
          //
          //
          // It is possible to run the Tern server in a web worker by specifying
          // these additional options:
          // * useWorker: Set to true to enable web worker mode. You'll probably
          //   want to feature detect the actual value you use here, for example
          //   !!window.Worker.
          // * workerScript: The main script of the worker. Point this to
          //   wherever you are hosting worker.js from this directory.
          // * workerDeps: An array of paths pointing (relative to workerScript)
          //   to the Acorn and Tern libraries and any Tern plugins you want to
          //   load. Or, if you minified those into a single script and included
          //   them in the workerScript, simply leave this undefined.
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
            // declare global: tern
          
            CodeMirror.TernServer = function(options) {
              var self = this;
              this.options = options || {};
              var plugins = this.options.plugins || (this.options.plugins = {});
              if (!plugins.doc_comment) plugins.doc_comment = true;
              this.docs = Object.create(null);
              if (this.options.useWorker) {
                this.server = new WorkerServer(this);
              } else {
                this.server = new tern.Server({
                  getFile: function(name, c) { return getFile(self, name, c); },
                  async: true,
                  defs: this.options.defs || [],
                  plugins: plugins
                });
              }
              this.trackChange = function(doc, change) { trackChange(self, doc, change); };
          
              this.cachedArgHints = null;
              this.activeArgHints = null;
              this.jumpStack = [];
          
              this.getHint = function(cm, c) { return hint(self, cm, c); };
              this.getHint.async = true;
            };
          
            CodeMirror.TernServer.prototype = {
              addDoc: function(name, doc) {
                var data = {doc: doc, name: name, changed: null};
                this.server.addFile(name, docValue(this, data));
                CodeMirror.on(doc, "change", this.trackChange);
                return this.docs[name] = data;
              },
          
              delDoc: function(id) {
                var found = resolveDoc(this, id);
                if (!found) return;
                CodeMirror.off(found.doc, "change", this.trackChange);
                delete this.docs[found.name];
                this.server.delFile(found.name);
              },
          
              hideDoc: function(id) {
                closeArgHints(this);
                var found = resolveDoc(this, id);
                if (found && found.changed) sendDoc(this, found);
              },
          
              complete: function(cm) {
                cm.showHint({hint: this.getHint});
              },
          
              showType: function(cm, pos, c) { showContextInfo(this, cm, pos, "type", c); },
          
              showDocs: function(cm, pos, c) { showContextInfo(this, cm, pos, "documentation", c); },
          
              updateArgHints: function(cm) { updateArgHints(this, cm); },
          
              jumpToDef: function(cm) { jumpToDef(this, cm); },
          
              jumpBack: function(cm) { jumpBack(this, cm); },
          
              rename: function(cm) { rename(this, cm); },
          
              selectName: function(cm) { selectName(this, cm); },
          
              request: function (cm, query, c, pos) {
                var self = this;
                var doc = findDoc(this, cm.getDoc());
                var request = buildRequest(this, doc, query, pos);
                var extraOptions = request.query && this.options.queryOptions && this.options.queryOptions[request.query.type]
                if (extraOptions) for (var prop in extraOptions) request.query[prop] = extraOptions[prop];
          
                this.server.request(request, function (error, data) {
                  if (!error && self.options.responseFilter)
                    data = self.options.responseFilter(doc, query, request, error, data);
                  c(error, data);
                });
              },
          
              destroy: function () {
                if (this.worker) {
                  this.worker.terminate();
                  this.worker = null;
                }
              }
            };
          
            var Pos = CodeMirror.Pos;
            var cls = "CodeMirror-Tern-";
            var bigDoc = 250;
          
            function getFile(ts, name, c) {
              var buf = ts.docs[name];
              if (buf)
                c(docValue(ts, buf));
              else if (ts.options.getFile)
                ts.options.getFile(name, c);
              else
                c(null);
            }
          
            function findDoc(ts, doc, name) {
              for (var n in ts.docs) {
                var cur = ts.docs[n];
                if (cur.doc == doc) return cur;
              }
              if (!name) for (var i = 0;; ++i) {
                n = "[doc" + (i || "") + "]";
                if (!ts.docs[n]) { name = n; break; }
              }
              return ts.addDoc(name, doc);
            }
          
            function resolveDoc(ts, id) {
              if (typeof id == "string") return ts.docs[id];
              if (id instanceof CodeMirror) id = id.getDoc();
              if (id instanceof CodeMirror.Doc) return findDoc(ts, id);
            }
          
            function trackChange(ts, doc, change) {
              var data = findDoc(ts, doc);
          
              var argHints = ts.cachedArgHints;
              if (argHints && argHints.doc == doc && cmpPos(argHints.start, change.to) <= 0)
                ts.cachedArgHints = null;
          
              var changed = data.changed;
              if (changed == null)
                data.changed = changed = {from: change.from.line, to: change.from.line};
              var end = change.from.line + (change.text.length - 1);
              if (change.from.line < changed.to) changed.to = changed.to - (change.to.line - end);
              if (end >= changed.to) changed.to = end + 1;
              if (changed.from > change.from.line) changed.from = change.from.line;
          
              if (doc.lineCount() > bigDoc && change.to - changed.from > 100) setTimeout(function() {
                if (data.changed && data.changed.to - data.changed.from > 100) sendDoc(ts, data);
              }, 200);
            }
          
            function sendDoc(ts, doc) {
              ts.server.request({files: [{type: "full", name: doc.name, text: docValue(ts, doc)}]}, function(error) {
                if (error) window.console.error(error);
                else doc.changed = null;
              });
            }
          
            // Completion
          
            function hint(ts, cm, c) {
              ts.request(cm, {type: "completions", types: true, docs: true, urls: true}, function(error, data) {
                if (error) return showError(ts, cm, error);
                var completions = [], after = "";
                var from = data.start, to = data.end;
                if (cm.getRange(Pos(from.line, from.ch - 2), from) == "[\"" &&
                    cm.getRange(to, Pos(to.line, to.ch + 2)) != "\"]")
                  after = "\"]";
          
                for (var i = 0; i < data.completions.length; ++i) {
                  var completion = data.completions[i], className = typeToIcon(completion.type);
                  if (data.guess) className += " " + cls + "guess";
                  completions.push({text: completion.name + after,
                                    displayText: completion.displayName || completion.name,
                                    className: className,
                                    data: completion});
                }
          
                var obj = {from: from, to: to, list: completions};
                var tooltip = null;
                CodeMirror.on(obj, "close", function() { remove(tooltip); });
                CodeMirror.on(obj, "update", function() { remove(tooltip); });
                CodeMirror.on(obj, "select", function(cur, node) {
                  remove(tooltip);
                  var content = ts.options.completionTip ? ts.options.completionTip(cur.data) : cur.data.doc;
                  if (content) {
                    tooltip = makeTooltip(node.parentNode.getBoundingClientRect().right + window.pageXOffset,
                                          node.getBoundingClientRect().top + window.pageYOffset, content);
                    tooltip.className += " " + cls + "hint-doc";
                  }
                });
                c(obj);
              });
            }
          
            function typeToIcon(type) {
              var suffix;
              if (type == "?") suffix = "unknown";
              else if (type == "number" || type == "string" || type == "bool") suffix = type;
              else if (/^fn\(/.test(type)) suffix = "fn";
              else if (/^\[/.test(type)) suffix = "array";
              else suffix = "object";
              return cls + "completion " + cls + "completion-" + suffix;
            }
          
            // Type queries
          
            function showContextInfo(ts, cm, pos, queryName, c) {
              ts.request(cm, queryName, function(error, data) {
                if (error) return showError(ts, cm, error);
                if (ts.options.typeTip) {
                  var tip = ts.options.typeTip(data);
                } else {
                  var tip = elt("span", null, elt("strong", null, data.type || "not found"));
                  if (data.doc)
                    tip.appendChild(document.createTextNode(" — " + data.doc));
                  if (data.url) {
                    tip.appendChild(document.createTextNode(" "));
                    var child = tip.appendChild(elt("a", null, "[docs]"));
                    child.href = data.url;
                    child.target = "_blank";
                  }
                }
                tempTooltip(cm, tip, ts);
                if (c) c();
              }, pos);
            }
          
            // Maintaining argument hints
          
            function updateArgHints(ts, cm) {
              closeArgHints(ts);
          
              if (cm.somethingSelected()) return;
              var state = cm.getTokenAt(cm.getCursor()).state;
              var inner = CodeMirror.innerMode(cm.getMode(), state);
              if (inner.mode.name != "javascript") return;
              var lex = inner.state.lexical;
              if (lex.info != "call") return;
          
              var ch, argPos = lex.pos || 0, tabSize = cm.getOption("tabSize");
              for (var line = cm.getCursor().line, e = Math.max(0, line - 9), found = false; line >= e; --line) {
                var str = cm.getLine(line), extra = 0;
                for (var pos = 0;;) {
                  var tab = str.indexOf("\t", pos);
                  if (tab == -1) break;
                  extra += tabSize - (tab + extra) % tabSize - 1;
                  pos = tab + 1;
                }
                ch = lex.column - extra;
                if (str.charAt(ch) == "(") {found = true; break;}
              }
              if (!found) return;
          
              var start = Pos(line, ch);
              var cache = ts.cachedArgHints;
              if (cache && cache.doc == cm.getDoc() && cmpPos(start, cache.start) == 0)
                return showArgHints(ts, cm, argPos);
          
              ts.request(cm, {type: "type", preferFunction: true, end: start}, function(error, data) {
                if (error || !data.type || !(/^fn\(/).test(data.type)) return;
                ts.cachedArgHints = {
                  start: pos,
                  type: parseFnType(data.type),
                  name: data.exprName || data.name || "fn",
                  guess: data.guess,
                  doc: cm.getDoc()
                };
                showArgHints(ts, cm, argPos);
              });
            }
          
            function showArgHints(ts, cm, pos) {
              closeArgHints(ts);
          
              var cache = ts.cachedArgHints, tp = cache.type;
              var tip = elt("span", cache.guess ? cls + "fhint-guess" : null,
                            elt("span", cls + "fname", cache.name), "(");
              for (var i = 0; i < tp.args.length; ++i) {
                if (i) tip.appendChild(document.createTextNode(", "));
                var arg = tp.args[i];
                tip.appendChild(elt("span", cls + "farg" + (i == pos ? " " + cls + "farg-current" : ""), arg.name || "?"));
                if (arg.type != "?") {
                  tip.appendChild(document.createTextNode(":\u00a0"));
                  tip.appendChild(elt("span", cls + "type", arg.type));
                }
              }
              tip.appendChild(document.createTextNode(tp.rettype ? ") ->\u00a0" : ")"));
              if (tp.rettype) tip.appendChild(elt("span", cls + "type", tp.rettype));
              var place = cm.cursorCoords(null, "page");
              ts.activeArgHints = makeTooltip(place.right + 1, place.bottom, tip);
            }
          
            function parseFnType(text) {
              var args = [], pos = 3;
          
              function skipMatching(upto) {
                var depth = 0, start = pos;
                for (;;) {
                  var next = text.charAt(pos);
                  if (upto.test(next) && !depth) return text.slice(start, pos);
                  if (/[{\[\(]/.test(next)) ++depth;
                  else if (/[}\]\)]/.test(next)) --depth;
                  ++pos;
                }
              }
          
              // Parse arguments
              if (text.charAt(pos) != ")") for (;;) {
                var name = text.slice(pos).match(/^([^, \(\[\{]+): /);
                if (name) {
                  pos += name[0].length;
                  name = name[1];
                }
                args.push({name: name, type: skipMatching(/[\),]/)});
                if (text.charAt(pos) == ")") break;
                pos += 2;
              }
          
              var rettype = text.slice(pos).match(/^\) -> (.*)$/);
          
              return {args: args, rettype: rettype && rettype[1]};
            }
          
            // Moving to the definition of something
          
            function jumpToDef(ts, cm) {
              function inner(varName) {
                var req = {type: "definition", variable: varName || null};
                var doc = findDoc(ts, cm.getDoc());
                ts.server.request(buildRequest(ts, doc, req), function(error, data) {
                  if (error) return showError(ts, cm, error);
                  if (!data.file && data.url) { window.open(data.url); return; }
          
                  if (data.file) {
                    var localDoc = ts.docs[data.file], found;
                    if (localDoc && (found = findContext(localDoc.doc, data))) {
                      ts.jumpStack.push({file: doc.name,
                                         start: cm.getCursor("from"),
                                         end: cm.getCursor("to")});
                      moveTo(ts, doc, localDoc, found.start, found.end);
                      return;
                    }
                  }
                  showError(ts, cm, "Could not find a definition.");
                });
              }
          
              if (!atInterestingExpression(cm))
                dialog(cm, "Jump to variable", function(name) { if (name) inner(name); });
              else
                inner();
            }
          
            function jumpBack(ts, cm) {
              var pos = ts.jumpStack.pop(), doc = pos && ts.docs[pos.file];
              if (!doc) return;
              moveTo(ts, findDoc(ts, cm.getDoc()), doc, pos.start, pos.end);
            }
          
            function moveTo(ts, curDoc, doc, start, end) {
              doc.doc.setSelection(start, end);
              if (curDoc != doc && ts.options.switchToDoc) {
                closeArgHints(ts);
                ts.options.switchToDoc(doc.name, doc.doc);
              }
            }
          
            // The {line,ch} representation of positions makes this rather awkward.
            function findContext(doc, data) {
              var before = data.context.slice(0, data.contextOffset).split("\n");
              var startLine = data.start.line - (before.length - 1);
              var start = Pos(startLine, (before.length == 1 ? data.start.ch : doc.getLine(startLine).length) - before[0].length);
          
              var text = doc.getLine(startLine).slice(start.ch);
              for (var cur = startLine + 1; cur < doc.lineCount() && text.length < data.context.length; ++cur)
                text += "\n" + doc.getLine(cur);
              if (text.slice(0, data.context.length) == data.context) return data;
          
              var cursor = doc.getSearchCursor(data.context, 0, false);
              var nearest, nearestDist = Infinity;
              while (cursor.findNext()) {
                var from = cursor.from(), dist = Math.abs(from.line - start.line) * 10000;
                if (!dist) dist = Math.abs(from.ch - start.ch);
                if (dist < nearestDist) { nearest = from; nearestDist = dist; }
              }
              if (!nearest) return null;
          
              if (before.length == 1)
                nearest.ch += before[0].length;
              else
                nearest = Pos(nearest.line + (before.length - 1), before[before.length - 1].length);
              if (data.start.line == data.end.line)
                var end = Pos(nearest.line, nearest.ch + (data.end.ch - data.start.ch));
              else
                var end = Pos(nearest.line + (data.end.line - data.start.line), data.end.ch);
              return {start: nearest, end: end};
            }
          
            function atInterestingExpression(cm) {
              var pos = cm.getCursor("end"), tok = cm.getTokenAt(pos);
              if (tok.start < pos.ch && tok.type == "comment") return false;
              return /[\w)\]]/.test(cm.getLine(pos.line).slice(Math.max(pos.ch - 1, 0), pos.ch + 1));
            }
          
            // Variable renaming
          
            function rename(ts, cm) {
              var token = cm.getTokenAt(cm.getCursor());
              if (!/\w/.test(token.string)) return showError(ts, cm, "Not at a variable");
              dialog(cm, "New name for " + token.string, function(newName) {
                ts.request(cm, {type: "rename", newName: newName, fullDocs: true}, function(error, data) {
                  if (error) return showError(ts, cm, error);
                  applyChanges(ts, data.changes);
                });
              });
            }
          
            function selectName(ts, cm) {
              var name = findDoc(ts, cm.doc).name;
              ts.request(cm, {type: "refs"}, function(error, data) {
                if (error) return showError(ts, cm, error);
                var ranges = [], cur = 0;
                var curPos = cm.getCursor();
                for (var i = 0; i < data.refs.length; i++) {
                  var ref = data.refs[i];
                  if (ref.file == name) {
                    ranges.push({anchor: ref.start, head: ref.end});
                    if (cmpPos(curPos, ref.start) >= 0 && cmpPos(curPos, ref.end) <= 0)
                      cur = ranges.length - 1;
                  }
                }
                cm.setSelections(ranges, cur);
              });
            }
          
            var nextChangeOrig = 0;
            function applyChanges(ts, changes) {
              var perFile = Object.create(null);
              for (var i = 0; i < changes.length; ++i) {
                var ch = changes[i];
                (perFile[ch.file] || (perFile[ch.file] = [])).push(ch);
              }
              for (var file in perFile) {
                var known = ts.docs[file], chs = perFile[file];;
                if (!known) continue;
                chs.sort(function(a, b) { return cmpPos(b.start, a.start); });
                var origin = "*rename" + (++nextChangeOrig);
                for (var i = 0; i < chs.length; ++i) {
                  var ch = chs[i];
                  known.doc.replaceRange(ch.text, ch.start, ch.end, origin);
                }
              }
            }
          
            // Generic request-building helper
          
            function buildRequest(ts, doc, query, pos) {
              var files = [], offsetLines = 0, allowFragments = !query.fullDocs;
              if (!allowFragments) delete query.fullDocs;
              if (typeof query == "string") query = {type: query};
              query.lineCharPositions = true;
              if (query.end == null) {
                query.end = pos || doc.doc.getCursor("end");
                if (doc.doc.somethingSelected())
                  query.start = doc.doc.getCursor("start");
              }
              var startPos = query.start || query.end;
          
              if (doc.changed) {
                if (doc.doc.lineCount() > bigDoc && allowFragments !== false &&
                    doc.changed.to - doc.changed.from < 100 &&
                    doc.changed.from <= startPos.line && doc.changed.to > query.end.line) {
                  files.push(getFragmentAround(doc, startPos, query.end));
                  query.file = "#0";
                  var offsetLines = files[0].offsetLines;
                  if (query.start != null) query.start = Pos(query.start.line - -offsetLines, query.start.ch);
                  query.end = Pos(query.end.line - offsetLines, query.end.ch);
                } else {
                  files.push({type: "full",
                              name: doc.name,
                              text: docValue(ts, doc)});
                  query.file = doc.name;
                  doc.changed = null;
                }
              } else {
                query.file = doc.name;
              }
              for (var name in ts.docs) {
                var cur = ts.docs[name];
                if (cur.changed && cur != doc) {
                  files.push({type: "full", name: cur.name, text: docValue(ts, cur)});
                  cur.changed = null;
                }
              }
          
              return {query: query, files: files};
            }
          
            function getFragmentAround(data, start, end) {
              var doc = data.doc;
              var minIndent = null, minLine = null, endLine, tabSize = 4;
              for (var p = start.line - 1, min = Math.max(0, p - 50); p >= min; --p) {
                var line = doc.getLine(p), fn = line.search(/\bfunction\b/);
                if (fn < 0) continue;
                var indent = CodeMirror.countColumn(line, null, tabSize);
                if (minIndent != null && minIndent <= indent) continue;
                minIndent = indent;
                minLine = p;
              }
              if (minLine == null) minLine = min;
              var max = Math.min(doc.lastLine(), end.line + 20);
              if (minIndent == null || minIndent == CodeMirror.countColumn(doc.getLine(start.line), null, tabSize))
                endLine = max;
              else for (endLine = end.line + 1; endLine < max; ++endLine) {
                var indent = CodeMirror.countColumn(doc.getLine(endLine), null, tabSize);
                if (indent <= minIndent) break;
              }
              var from = Pos(minLine, 0);
          
              return {type: "part",
                      name: data.name,
                      offsetLines: from.line,
                      text: doc.getRange(from, Pos(endLine, 0))};
            }
          
            // Generic utilities
          
            var cmpPos = CodeMirror.cmpPos;
          
            function elt(tagname, cls /*, ... elts*/) {
              var e = document.createElement(tagname);
              if (cls) e.className = cls;
              for (var i = 2; i < arguments.length; ++i) {
                var elt = arguments[i];
                if (typeof elt == "string") elt = document.createTextNode(elt);
                e.appendChild(elt);
              }
              return e;
            }
          
            function dialog(cm, text, f) {
              if (cm.openDialog)
                cm.openDialog(text + ": <input type=text>", f);
              else
                f(prompt(text, ""));
            }
          
            // Tooltips
          
            function tempTooltip(cm, content, ts) {
              if (cm.state.ternTooltip) remove(cm.state.ternTooltip);
              var where = cm.cursorCoords();
              var tip = cm.state.ternTooltip = makeTooltip(where.right + 1, where.bottom, content);
              function maybeClear() {
                old = true;
                if (!mouseOnTip) clear();
              }
              function clear() {
                cm.state.ternTooltip = null;
                if (!tip.parentNode) return;
                cm.off("cursorActivity", clear);
                cm.off('blur', clear);
                cm.off('scroll', clear);
                fadeOut(tip);
              }
              var mouseOnTip = false, old = false;
              CodeMirror.on(tip, "mousemove", function() { mouseOnTip = true; });
              CodeMirror.on(tip, "mouseout", function(e) {
                if (!CodeMirror.contains(tip, e.relatedTarget || e.toElement)) {
                  if (old) clear();
                  else mouseOnTip = false;
                }
              });
              setTimeout(maybeClear, ts.options.hintDelay ? ts.options.hintDelay : 1700);
              cm.on("cursorActivity", clear);
              cm.on('blur', clear);
              cm.on('scroll', clear);
            }
          
            function makeTooltip(x, y, content) {
              var node = elt("div", cls + "tooltip", content);
              node.style.left = x + "px";
              node.style.top = y + "px";
              document.body.appendChild(node);
              return node;
            }
          
            function remove(node) {
              var p = node && node.parentNode;
              if (p) p.removeChild(node);
            }
          
            function fadeOut(tooltip) {
              tooltip.style.opacity = "0";
              setTimeout(function() { remove(tooltip); }, 1100);
            }
          
            function showError(ts, cm, msg) {
              if (ts.options.showError)
                ts.options.showError(cm, msg);
              else
                tempTooltip(cm, String(msg), ts);
            }
          
            function closeArgHints(ts) {
              if (ts.activeArgHints) { remove(ts.activeArgHints); ts.activeArgHints = null; }
            }
          
            function docValue(ts, doc) {
              var val = doc.doc.getValue();
              if (ts.options.fileFilter) val = ts.options.fileFilter(val, doc.name, doc.doc);
              return val;
            }
          
            // Worker wrapper
          
            function WorkerServer(ts) {
              var worker = ts.worker = new Worker(ts.options.workerScript);
              worker.postMessage({type: "init",
                                  defs: ts.options.defs,
                                  plugins: ts.options.plugins,
                                  scripts: ts.options.workerDeps});
              var msgId = 0, pending = {};
          
              function send(data, c) {
                if (c) {
                  data.id = ++msgId;
                  pending[msgId] = c;
                }
                worker.postMessage(data);
              }
              worker.onmessage = function(e) {
                var data = e.data;
                if (data.type == "getFile") {
                  getFile(ts, data.name, function(err, text) {
                    send({type: "getFile", err: String(err), text: text, id: data.id});
                  });
                } else if (data.type == "debug") {
                  window.console.log(data.message);
                } else if (data.id && pending[data.id]) {
                  pending[data.id](data.err, data.body);
                  delete pending[data.id];
                }
              };
              worker.onerror = function(e) {
                for (var id in pending) pending[id](e);
                pending = {};
              };
          
              this.addFile = function(name, text) { send({type: "add", name: name, text: text}); };
              this.delFile = function(name) { send({type: "del", name: name}); };
              this.request = function(body, c) { send({type: "req", body: body}, c); };
            }
          });
          
        • worker.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // declare global: tern, server
          
          var server;
          
          this.onmessage = function(e) {
            var data = e.data;
            switch (data.type) {
            case "init": return startServer(data.defs, data.plugins, data.scripts);
            case "add": return server.addFile(data.name, data.text);
            case "del": return server.delFile(data.name);
            case "req": return server.request(data.body, function(err, reqData) {
              postMessage({id: data.id, body: reqData, err: err && String(err)});
            });
            case "getFile":
              var c = pending[data.id];
              delete pending[data.id];
              return c(data.err, data.text);
            default: throw new Error("Unknown message type: " + data.type);
            }
          };
          
          var nextId = 0, pending = {};
          function getFile(file, c) {
            postMessage({type: "getFile", name: file, id: ++nextId});
            pending[nextId] = c;
          }
          
          function startServer(defs, plugins, scripts) {
            if (scripts) importScripts.apply(null, scripts);
          
            server = new tern.Server({
              getFile: getFile,
              async: true,
              defs: defs,
              plugins: plugins
            });
          }
          
          this.console = {
            log: function(v) { postMessage({type: "debug", message: v}); }
          };
          
      • wrap
        • hardwrap.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            var Pos = CodeMirror.Pos;
          
            function findParagraph(cm, pos, options) {
              var startRE = options.paragraphStart || cm.getHelper(pos, "paragraphStart");
              for (var start = pos.line, first = cm.firstLine(); start > first; --start) {
                var line = cm.getLine(start);
                if (startRE && startRE.test(line)) break;
                if (!/\S/.test(line)) { ++start; break; }
              }
              var endRE = options.paragraphEnd || cm.getHelper(pos, "paragraphEnd");
              for (var end = pos.line + 1, last = cm.lastLine(); end <= last; ++end) {
                var line = cm.getLine(end);
                if (endRE && endRE.test(line)) { ++end; break; }
                if (!/\S/.test(line)) break;
              }
              return {from: start, to: end};
            }
          
            function findBreakPoint(text, column, wrapOn, killTrailingSpace) {
              for (var at = column; at > 0; --at)
                if (wrapOn.test(text.slice(at - 1, at + 1))) break;
              for (var first = true;; first = false) {
                var endOfText = at;
                if (killTrailingSpace)
                  while (text.charAt(endOfText - 1) == " ") --endOfText;
                if (endOfText == 0 && first) at = column;
                else return {from: endOfText, to: at};
              }
            }
          
            function wrapRange(cm, from, to, options) {
              from = cm.clipPos(from); to = cm.clipPos(to);
              var column = options.column || 80;
              var wrapOn = options.wrapOn || /\s\S|-[^\.\d]/;
              var killTrailing = options.killTrailingSpace !== false;
              var changes = [], curLine = "", curNo = from.line;
              var lines = cm.getRange(from, to, false);
              if (!lines.length) return null;
              var leadingSpace = lines[0].match(/^[ \t]*/)[0];
          
              for (var i = 0; i < lines.length; ++i) {
                var text = lines[i], oldLen = curLine.length, spaceInserted = 0;
                if (curLine && text && !wrapOn.test(curLine.charAt(curLine.length - 1) + text.charAt(0))) {
                  curLine += " ";
                  spaceInserted = 1;
                }
                var spaceTrimmed = "";
                if (i) {
                  spaceTrimmed = text.match(/^\s*/)[0];
                  text = text.slice(spaceTrimmed.length);
                }
                curLine += text;
                if (i) {
                  var firstBreak = curLine.length > column && leadingSpace == spaceTrimmed &&
                    findBreakPoint(curLine, column, wrapOn, killTrailing);
                  // If this isn't broken, or is broken at a different point, remove old break
                  if (!firstBreak || firstBreak.from != oldLen || firstBreak.to != oldLen + spaceInserted) {
                    changes.push({text: [spaceInserted ? " " : ""],
                                  from: Pos(curNo, oldLen),
                                  to: Pos(curNo + 1, spaceTrimmed.length)});
                  } else {
                    curLine = leadingSpace + text;
                    ++curNo;
                  }
                }
                while (curLine.length > column) {
                  var bp = findBreakPoint(curLine, column, wrapOn, killTrailing);
                  changes.push({text: ["", leadingSpace],
                                from: Pos(curNo, bp.from),
                                to: Pos(curNo, bp.to)});
                  curLine = leadingSpace + curLine.slice(bp.to);
                  ++curNo;
                }
              }
              if (changes.length) cm.operation(function() {
                for (var i = 0; i < changes.length; ++i) {
                  var change = changes[i];
                  if (change.text || CodeMirror.cmpPos(change.from, change.to))
                    cm.replaceRange(change.text, change.from, change.to);
                }
              });
              return changes.length ? {from: changes[0].from, to: CodeMirror.changeEnd(changes[changes.length - 1])} : null;
            }
          
            CodeMirror.defineExtension("wrapParagraph", function(pos, options) {
              options = options || {};
              if (!pos) pos = this.getCursor();
              var para = findParagraph(this, pos, options);
              return wrapRange(this, Pos(para.from, 0), Pos(para.to - 1), options);
            });
          
            CodeMirror.commands.wrapLines = function(cm) {
              cm.operation(function() {
                var ranges = cm.listSelections(), at = cm.lastLine() + 1;
                for (var i = ranges.length - 1; i >= 0; i--) {
                  var range = ranges[i], span;
                  if (range.empty()) {
                    var para = findParagraph(cm, range.head, {});
                    span = {from: Pos(para.from, 0), to: Pos(para.to - 1)};
                  } else {
                    span = {from: range.from(), to: range.to()};
                  }
                  if (span.to.line >= at) continue;
                  at = span.from.line;
                  wrapRange(cm, span.from, span.to, {});
                }
              });
            };
          
            CodeMirror.defineExtension("wrapRange", function(from, to, options) {
              return wrapRange(this, from, to, options || {});
            });
          
            CodeMirror.defineExtension("wrapParagraphsInRange", function(from, to, options) {
              options = options || {};
              var cm = this, paras = [];
              for (var line = from.line; line <= to.line;) {
                var para = findParagraph(cm, Pos(line, 0), options);
                paras.push(para);
                line = para.to;
              }
              var madeChange = false;
              if (paras.length) cm.operation(function() {
                for (var i = paras.length - 1; i >= 0; --i)
                  madeChange = madeChange || wrapRange(cm, Pos(paras[i].from, 0), Pos(paras[i].to - 1), options);
              });
              return madeChange;
            });
          });
          
    • lib
      • codemirror.css
        /* BASICS */
        
        .CodeMirror {
          /* Set height, width, borders, and global font properties here */
          font-family: monospace;
          height: 300px;
          color: black;
        }
        
        /* PADDING */
        
        .CodeMirror-lines {
          padding: 4px 0; /* Vertical padding around content */
        }
        .CodeMirror pre {
          padding: 0 4px; /* Horizontal padding of content */
        }
        
        .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
          background-color: white; /* The little square between H and V scrollbars */
        }
        
        /* GUTTER */
        
        .CodeMirror-gutters {
          border-right: 1px solid #ddd;
          background-color: #f7f7f7;
          white-space: nowrap;
        }
        .CodeMirror-linenumbers {}
        .CodeMirror-linenumber {
          padding: 0 3px 0 5px;
          min-width: 20px;
          text-align: right;
          color: #999;
          white-space: nowrap;
        }
        
        .CodeMirror-guttermarker { color: black; }
        .CodeMirror-guttermarker-subtle { color: #999; }
        
        /* CURSOR */
        
        .CodeMirror-cursor {
          border-left: 1px solid black;
          border-right: none;
          width: 0;
        }
        /* Shown when moving in bi-directional text */
        .CodeMirror div.CodeMirror-secondarycursor {
          border-left: 1px solid silver;
        }
        .cm-fat-cursor .CodeMirror-cursor {
          width: auto;
          border: 0;
          background: #7e7;
        }
        .cm-fat-cursor div.CodeMirror-cursors {
          z-index: 1;
        }
        
        .cm-animate-fat-cursor {
          width: auto;
          border: 0;
          -webkit-animation: blink 1.06s steps(1) infinite;
          -moz-animation: blink 1.06s steps(1) infinite;
          animation: blink 1.06s steps(1) infinite;
          background-color: #7e7;
        }
        @-moz-keyframes blink {
          0% {}
          50% { background-color: transparent; }
          100% {}
        }
        @-webkit-keyframes blink {
          0% {}
          50% { background-color: transparent; }
          100% {}
        }
        @keyframes blink {
          0% {}
          50% { background-color: transparent; }
          100% {}
        }
        
        /* Can style cursor different in overwrite (non-insert) mode */
        .CodeMirror-overwrite .CodeMirror-cursor {}
        
        .cm-tab { display: inline-block; text-decoration: inherit; }
        
        .CodeMirror-ruler {
          border-left: 1px solid #ccc;
          position: absolute;
        }
        
        /* DEFAULT THEME */
        
        .cm-s-default .cm-header {color: blue;}
        .cm-s-default .cm-quote {color: #090;}
        .cm-negative {color: #d44;}
        .cm-positive {color: #292;}
        .cm-header, .cm-strong {font-weight: bold;}
        .cm-em {font-style: italic;}
        .cm-link {text-decoration: underline;}
        .cm-strikethrough {text-decoration: line-through;}
        
        .cm-s-default .cm-keyword {color: #708;}
        .cm-s-default .cm-atom {color: #219;}
        .cm-s-default .cm-number {color: #164;}
        .cm-s-default .cm-def {color: #00f;}
        .cm-s-default .cm-variable,
        .cm-s-default .cm-punctuation,
        .cm-s-default .cm-property,
        .cm-s-default .cm-operator {}
        .cm-s-default .cm-variable-2 {color: #05a;}
        .cm-s-default .cm-variable-3 {color: #085;}
        .cm-s-default .cm-comment {color: #a50;}
        .cm-s-default .cm-string {color: #a11;}
        .cm-s-default .cm-string-2 {color: #f50;}
        .cm-s-default .cm-meta {color: #555;}
        .cm-s-default .cm-qualifier {color: #555;}
        .cm-s-default .cm-builtin {color: #30a;}
        .cm-s-default .cm-bracket {color: #997;}
        .cm-s-default .cm-tag {color: #170;}
        .cm-s-default .cm-attribute {color: #00c;}
        .cm-s-default .cm-hr {color: #999;}
        .cm-s-default .cm-link {color: #00c;}
        
        .cm-s-default .cm-error {color: #f00;}
        .cm-invalidchar {color: #f00;}
        
        .CodeMirror-composing { border-bottom: 2px solid; }
        
        /* Default styles for common addons */
        
        div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
        div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
        .CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
        .CodeMirror-activeline-background {background: #e8f2ff;}
        
        /* STOP */
        
        /* The rest of this file contains styles related to the mechanics of
           the editor. You probably shouldn't touch them. */
        
        .CodeMirror {
          position: relative;
          overflow: hidden;
          background: white;
        }
        
        .CodeMirror-scroll {
          overflow: scroll !important; /* Things will break if this is overridden */
          /* 30px is the magic margin used to hide the element's real scrollbars */
          /* See overflow: hidden in .CodeMirror */
          margin-bottom: -30px; margin-right: -30px;
          padding-bottom: 30px;
          height: 100%;
          outline: none; /* Prevent dragging from highlighting the element */
          position: relative;
        }
        .CodeMirror-sizer {
          position: relative;
          border-right: 30px solid transparent;
        }
        
        /* The fake, visible scrollbars. Used to force redraw during scrolling
           before actuall scrolling happens, thus preventing shaking and
           flickering artifacts. */
        .CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
          position: absolute;
          z-index: 6;
          display: none;
        }
        .CodeMirror-vscrollbar {
          right: 0; top: 0;
          overflow-x: hidden;
          overflow-y: scroll;
        }
        .CodeMirror-hscrollbar {
          bottom: 0; left: 0;
          overflow-y: hidden;
          overflow-x: scroll;
        }
        .CodeMirror-scrollbar-filler {
          right: 0; bottom: 0;
        }
        .CodeMirror-gutter-filler {
          left: 0; bottom: 0;
        }
        
        .CodeMirror-gutters {
          position: absolute; left: 0; top: 0;
          z-index: 3;
        }
        .CodeMirror-gutter {
          white-space: normal;
          height: 100%;
          display: inline-block;
          margin-bottom: -30px;
          /* Hack to make IE7 behave */
          *zoom:1;
          *display:inline;
        }
        .CodeMirror-gutter-wrapper {
          position: absolute;
          z-index: 4;
          background: none !important;
          border: none !important;
        }
        .CodeMirror-gutter-background {
          position: absolute;
          top: 0; bottom: 0;
          z-index: 4;
        }
        .CodeMirror-gutter-elt {
          position: absolute;
          cursor: default;
          z-index: 4;
        }
        .CodeMirror-gutter-wrapper {
          -webkit-user-select: none;
          -moz-user-select: none;
          user-select: none;
        }
        
        .CodeMirror-lines {
          cursor: text;
          min-height: 1px; /* prevents collapsing before first draw */
        }
        .CodeMirror pre {
          /* Reset some styles that the rest of the page might have set */
          -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
          border-width: 0;
          background: transparent;
          font-family: inherit;
          font-size: inherit;
          margin: 0;
          white-space: pre;
          word-wrap: normal;
          line-height: inherit;
          color: inherit;
          z-index: 2;
          position: relative;
          overflow: visible;
          -webkit-tap-highlight-color: transparent;
        }
        .CodeMirror-wrap pre {
          word-wrap: break-word;
          white-space: pre-wrap;
          word-break: normal;
        }
        
        .CodeMirror-linebackground {
          position: absolute;
          left: 0; right: 0; top: 0; bottom: 0;
          z-index: 0;
        }
        
        .CodeMirror-linewidget {
          position: relative;
          z-index: 2;
          overflow: auto;
        }
        
        .CodeMirror-widget {}
        
        .CodeMirror-code {
          outline: none;
        }
        
        /* Force content-box sizing for the elements where we expect it */
        .CodeMirror-scroll,
        .CodeMirror-sizer,
        .CodeMirror-gutter,
        .CodeMirror-gutters,
        .CodeMirror-linenumber {
          -moz-box-sizing: content-box;
          box-sizing: content-box;
        }
        
        .CodeMirror-measure {
          position: absolute;
          width: 100%;
          height: 0;
          overflow: hidden;
          visibility: hidden;
        }
        
        .CodeMirror-cursor { position: absolute; }
        .CodeMirror-measure pre { position: static; }
        
        div.CodeMirror-cursors {
          visibility: hidden;
          position: relative;
          z-index: 3;
        }
        div.CodeMirror-dragcursors {
          visibility: visible;
        }
        
        .CodeMirror-focused div.CodeMirror-cursors {
          visibility: visible;
        }
        
        .CodeMirror-selected { background: #d9d9d9; }
        .CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
        .CodeMirror-crosshair { cursor: crosshair; }
        .CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }
        .CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }
        
        .cm-searching {
          background: #ffa;
          background: rgba(255, 255, 0, .4);
        }
        
        /* IE7 hack to prevent it from returning funny offsetTops on the spans */
        .CodeMirror span { *vertical-align: text-bottom; }
        
        /* Used to force a border model for a node */
        .cm-force-border { padding-right: .1px; }
        
        @media print {
          /* Hide the cursor when printing */
          .CodeMirror div.CodeMirror-cursors {
            visibility: hidden;
          }
        }
        
        /* See issue #2901 */
        .cm-tab-wrap-hack:after { content: ''; }
        
        /* Help users use markselection to safely style text background */
        span.CodeMirror-selectedtext { background: none; }
        
      • codemirror.js
        // CodeMirror, copyright (c) by Marijn Haverbeke and others
        // Distributed under an MIT license: http://codemirror.net/LICENSE
        
        // This is CodeMirror (http://codemirror.net), a code editor
        // implemented in JavaScript on top of the browser's DOM.
        //
        // You can find some technical background for some of the code below
        // at http://marijnhaverbeke.nl/blog/#cm-internals .
        
        (function(mod) {
          if (typeof exports == "object" && typeof module == "object") // CommonJS
            module.exports = mod();
          else if (typeof define == "function" && define.amd) // AMD
            return define([], mod);
          else // Plain browser env
            this.CodeMirror = mod();
        })(function() {
          "use strict";
        
          // BROWSER SNIFFING
        
          // Kludges for bugs and behavior differences that can't be feature
          // detected are enabled based on userAgent etc sniffing.
          var userAgent = navigator.userAgent;
          var platform = navigator.platform;
        
          var gecko = /gecko\/\d/i.test(userAgent);
          var ie_upto10 = /MSIE \d/.test(userAgent);
          var ie_11up = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(userAgent);
          var ie = ie_upto10 || ie_11up;
          var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : ie_11up[1]);
          var webkit = /WebKit\//.test(userAgent);
          var qtwebkit = webkit && /Qt\/\d+\.\d+/.test(userAgent);
          var chrome = /Chrome\//.test(userAgent);
          var presto = /Opera\//.test(userAgent);
          var safari = /Apple Computer/.test(navigator.vendor);
          var mac_geMountainLion = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(userAgent);
          var phantom = /PhantomJS/.test(userAgent);
        
          var ios = /AppleWebKit/.test(userAgent) && /Mobile\/\w+/.test(userAgent);
          // This is woefully incomplete. Suggestions for alternative methods welcome.
          var mobile = ios || /Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent);
          var mac = ios || /Mac/.test(platform);
          var windows = /win/i.test(platform);
        
          var presto_version = presto && userAgent.match(/Version\/(\d*\.\d*)/);
          if (presto_version) presto_version = Number(presto_version[1]);
          if (presto_version && presto_version >= 15) { presto = false; webkit = true; }
          // Some browsers use the wrong event properties to signal cmd/ctrl on OS X
          var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11));
          var captureRightClick = gecko || (ie && ie_version >= 9);
        
          // Optimize some code when these features are not used.
          var sawReadOnlySpans = false, sawCollapsedSpans = false;
        
          // EDITOR CONSTRUCTOR
        
          // A CodeMirror instance represents an editor. This is the object
          // that user code is usually dealing with.
        
          function CodeMirror(place, options) {
            if (!(this instanceof CodeMirror)) return new CodeMirror(place, options);
        
            this.options = options = options ? copyObj(options) : {};
            // Determine effective options based on given values and defaults.
            copyObj(defaults, options, false);
            setGuttersForLineNumbers(options);
        
            var doc = options.value;
            if (typeof doc == "string") doc = new Doc(doc, options.mode, null, options.lineSeparator);
            this.doc = doc;
        
            var input = new CodeMirror.inputStyles[options.inputStyle](this);
            var display = this.display = new Display(place, doc, input);
            display.wrapper.CodeMirror = this;
            updateGutters(this);
            themeChanged(this);
            if (options.lineWrapping)
              this.display.wrapper.className += " CodeMirror-wrap";
            if (options.autofocus && !mobile) display.input.focus();
            initScrollbars(this);
        
            this.state = {
              keyMaps: [],  // stores maps added by addKeyMap
              overlays: [], // highlighting overlays, as added by addOverlay
              modeGen: 0,   // bumped when mode/overlay changes, used to invalidate highlighting info
              overwrite: false,
              delayingBlurEvent: false,
              focused: false,
              suppressEdits: false, // used to disable editing during key handlers when in readOnly mode
              pasteIncoming: false, cutIncoming: false, // help recognize paste/cut edits in input.poll
              selectingText: false,
              draggingText: false,
              highlight: new Delayed(), // stores highlight worker timeout
              keySeq: null,  // Unfinished key sequence
              specialChars: null
            };
        
            var cm = this;
        
            // Override magic textarea content restore that IE sometimes does
            // on our hidden textarea on reload
            if (ie && ie_version < 11) setTimeout(function() { cm.display.input.reset(true); }, 20);
        
            registerEventHandlers(this);
            ensureGlobalHandlers();
        
            startOperation(this);
            this.curOp.forceUpdate = true;
            attachDoc(this, doc);
        
            if ((options.autofocus && !mobile) || cm.hasFocus())
              setTimeout(bind(onFocus, this), 20);
            else
              onBlur(this);
        
            for (var opt in optionHandlers) if (optionHandlers.hasOwnProperty(opt))
              optionHandlers[opt](this, options[opt], Init);
            maybeUpdateLineNumberWidth(this);
            if (options.finishInit) options.finishInit(this);
            for (var i = 0; i < initHooks.length; ++i) initHooks[i](this);
            endOperation(this);
            // Suppress optimizelegibility in Webkit, since it breaks text
            // measuring on line wrapping boundaries.
            if (webkit && options.lineWrapping &&
                getComputedStyle(display.lineDiv).textRendering == "optimizelegibility")
              display.lineDiv.style.textRendering = "auto";
          }
        
          // DISPLAY CONSTRUCTOR
        
          // The display handles the DOM integration, both for input reading
          // and content drawing. It holds references to DOM nodes and
          // display-related state.
        
          function Display(place, doc, input) {
            var d = this;
            this.input = input;
        
            // Covers bottom-right square when both scrollbars are present.
            d.scrollbarFiller = elt("div", null, "CodeMirror-scrollbar-filler");
            d.scrollbarFiller.setAttribute("cm-not-content", "true");
            // Covers bottom of gutter when coverGutterNextToScrollbar is on
            // and h scrollbar is present.
            d.gutterFiller = elt("div", null, "CodeMirror-gutter-filler");
            d.gutterFiller.setAttribute("cm-not-content", "true");
            // Will contain the actual code, positioned to cover the viewport.
            d.lineDiv = elt("div", null, "CodeMirror-code");
            // Elements are added to these to represent selection and cursors.
            d.selectionDiv = elt("div", null, null, "position: relative; z-index: 1");
            d.cursorDiv = elt("div", null, "CodeMirror-cursors");
            // A visibility: hidden element used to find the size of things.
            d.measure = elt("div", null, "CodeMirror-measure");
            // When lines outside of the viewport are measured, they are drawn in this.
            d.lineMeasure = elt("div", null, "CodeMirror-measure");
            // Wraps everything that needs to exist inside the vertically-padded coordinate system
            d.lineSpace = elt("div", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv],
                              null, "position: relative; outline: none");
            // Moved around its parent to cover visible view.
            d.mover = elt("div", [elt("div", [d.lineSpace], "CodeMirror-lines")], null, "position: relative");
            // Set to the height of the document, allowing scrolling.
            d.sizer = elt("div", [d.mover], "CodeMirror-sizer");
            d.sizerWidth = null;
            // Behavior of elts with overflow: auto and padding is
            // inconsistent across browsers. This is used to ensure the
            // scrollable area is big enough.
            d.heightForcer = elt("div", null, null, "position: absolute; height: " + scrollerGap + "px; width: 1px;");
            // Will contain the gutters, if any.
            d.gutters = elt("div", null, "CodeMirror-gutters");
            d.lineGutter = null;
            // Actual scrollable element.
            d.scroller = elt("div", [d.sizer, d.heightForcer, d.gutters], "CodeMirror-scroll");
            d.scroller.setAttribute("tabIndex", "-1");
            // The element in which the editor lives.
            d.wrapper = elt("div", [d.scrollbarFiller, d.gutterFiller, d.scroller], "CodeMirror");
        
            // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported)
            if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; }
            if (!webkit && !(gecko && mobile)) d.scroller.draggable = true;
        
            if (place) {
              if (place.appendChild) place.appendChild(d.wrapper);
              else place(d.wrapper);
            }
        
            // Current rendered range (may be bigger than the view window).
            d.viewFrom = d.viewTo = doc.first;
            d.reportedViewFrom = d.reportedViewTo = doc.first;
            // Information about the rendered lines.
            d.view = [];
            d.renderedView = null;
            // Holds info about a single rendered line when it was rendered
            // for measurement, while not in view.
            d.externalMeasured = null;
            // Empty space (in pixels) above the view
            d.viewOffset = 0;
            d.lastWrapHeight = d.lastWrapWidth = 0;
            d.updateLineNumbers = null;
        
            d.nativeBarWidth = d.barHeight = d.barWidth = 0;
            d.scrollbarsClipped = false;
        
            // Used to only resize the line number gutter when necessary (when
            // the amount of lines crosses a boundary that makes its width change)
            d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null;
            // Set to true when a non-horizontal-scrolling line widget is
            // added. As an optimization, line widget aligning is skipped when
            // this is false.
            d.alignWidgets = false;
        
            d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;
        
            // Tracks the maximum line length so that the horizontal scrollbar
            // can be kept static when scrolling.
            d.maxLine = null;
            d.maxLineLength = 0;
            d.maxLineChanged = false;
        
            // Used for measuring wheel scrolling granularity
            d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null;
        
            // True when shift is held down.
            d.shift = false;
        
            // Used to track whether anything happened since the context menu
            // was opened.
            d.selForContextMenu = null;
        
            d.activeTouch = null;
        
            input.init(d);
          }
        
          // STATE UPDATES
        
          // Used to get the editor into a consistent state again when options change.
        
          function loadMode(cm) {
            cm.doc.mode = CodeMirror.getMode(cm.options, cm.doc.modeOption);
            resetModeState(cm);
          }
        
          function resetModeState(cm) {
            cm.doc.iter(function(line) {
              if (line.stateAfter) line.stateAfter = null;
              if (line.styles) line.styles = null;
            });
            cm.doc.frontier = cm.doc.first;
            startWorker(cm, 100);
            cm.state.modeGen++;
            if (cm.curOp) regChange(cm);
          }
        
          function wrappingChanged(cm) {
            if (cm.options.lineWrapping) {
              addClass(cm.display.wrapper, "CodeMirror-wrap");
              cm.display.sizer.style.minWidth = "";
              cm.display.sizerWidth = null;
            } else {
              rmClass(cm.display.wrapper, "CodeMirror-wrap");
              findMaxLine(cm);
            }
            estimateLineHeights(cm);
            regChange(cm);
            clearCaches(cm);
            setTimeout(function(){updateScrollbars(cm);}, 100);
          }
        
          // Returns a function that estimates the height of a line, to use as
          // first approximation until the line becomes visible (and is thus
          // properly measurable).
          function estimateHeight(cm) {
            var th = textHeight(cm.display), wrapping = cm.options.lineWrapping;
            var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3);
            return function(line) {
              if (lineIsHidden(cm.doc, line)) return 0;
        
              var widgetsHeight = 0;
              if (line.widgets) for (var i = 0; i < line.widgets.length; i++) {
                if (line.widgets[i].height) widgetsHeight += line.widgets[i].height;
              }
        
              if (wrapping)
                return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th;
              else
                return widgetsHeight + th;
            };
          }
        
          function estimateLineHeights(cm) {
            var doc = cm.doc, est = estimateHeight(cm);
            doc.iter(function(line) {
              var estHeight = est(line);
              if (estHeight != line.height) updateLineHeight(line, estHeight);
            });
          }
        
          function themeChanged(cm) {
            cm.display.wrapper.className = cm.display.wrapper.className.replace(/\s*cm-s-\S+/g, "") +
              cm.options.theme.replace(/(^|\s)\s*/g, " cm-s-");
            clearCaches(cm);
          }
        
          function guttersChanged(cm) {
            updateGutters(cm);
            regChange(cm);
            setTimeout(function(){alignHorizontally(cm);}, 20);
          }
        
          // Rebuild the gutter elements, ensure the margin to the left of the
          // code matches their width.
          function updateGutters(cm) {
            var gutters = cm.display.gutters, specs = cm.options.gutters;
            removeChildren(gutters);
            for (var i = 0; i < specs.length; ++i) {
              var gutterClass = specs[i];
              var gElt = gutters.appendChild(elt("div", null, "CodeMirror-gutter " + gutterClass));
              if (gutterClass == "CodeMirror-linenumbers") {
                cm.display.lineGutter = gElt;
                gElt.style.width = (cm.display.lineNumWidth || 1) + "px";
              }
            }
            gutters.style.display = i ? "" : "none";
            updateGutterSpace(cm);
          }
        
          function updateGutterSpace(cm) {
            var width = cm.display.gutters.offsetWidth;
            cm.display.sizer.style.marginLeft = width + "px";
          }
        
          // Compute the character length of a line, taking into account
          // collapsed ranges (see markText) that might hide parts, and join
          // other lines onto it.
          function lineLength(line) {
            if (line.height == 0) return 0;
            var len = line.text.length, merged, cur = line;
            while (merged = collapsedSpanAtStart(cur)) {
              var found = merged.find(0, true);
              cur = found.from.line;
              len += found.from.ch - found.to.ch;
            }
            cur = line;
            while (merged = collapsedSpanAtEnd(cur)) {
              var found = merged.find(0, true);
              len -= cur.text.length - found.from.ch;
              cur = found.to.line;
              len += cur.text.length - found.to.ch;
            }
            return len;
          }
        
          // Find the longest line in the document.
          function findMaxLine(cm) {
            var d = cm.display, doc = cm.doc;
            d.maxLine = getLine(doc, doc.first);
            d.maxLineLength = lineLength(d.maxLine);
            d.maxLineChanged = true;
            doc.iter(function(line) {
              var len = lineLength(line);
              if (len > d.maxLineLength) {
                d.maxLineLength = len;
                d.maxLine = line;
              }
            });
          }
        
          // Make sure the gutters options contains the element
          // "CodeMirror-linenumbers" when the lineNumbers option is true.
          function setGuttersForLineNumbers(options) {
            var found = indexOf(options.gutters, "CodeMirror-linenumbers");
            if (found == -1 && options.lineNumbers) {
              options.gutters = options.gutters.concat(["CodeMirror-linenumbers"]);
            } else if (found > -1 && !options.lineNumbers) {
              options.gutters = options.gutters.slice(0);
              options.gutters.splice(found, 1);
            }
          }
        
          // SCROLLBARS
        
          // Prepare DOM reads needed to update the scrollbars. Done in one
          // shot to minimize update/measure roundtrips.
          function measureForScrollbars(cm) {
            var d = cm.display, gutterW = d.gutters.offsetWidth;
            var docH = Math.round(cm.doc.height + paddingVert(cm.display));
            return {
              clientHeight: d.scroller.clientHeight,
              viewHeight: d.wrapper.clientHeight,
              scrollWidth: d.scroller.scrollWidth, clientWidth: d.scroller.clientWidth,
              viewWidth: d.wrapper.clientWidth,
              barLeft: cm.options.fixedGutter ? gutterW : 0,
              docHeight: docH,
              scrollHeight: docH + scrollGap(cm) + d.barHeight,
              nativeBarWidth: d.nativeBarWidth,
              gutterWidth: gutterW
            };
          }
        
          function NativeScrollbars(place, scroll, cm) {
            this.cm = cm;
            var vert = this.vert = elt("div", [elt("div", null, null, "min-width: 1px")], "CodeMirror-vscrollbar");
            var horiz = this.horiz = elt("div", [elt("div", null, null, "height: 100%; min-height: 1px")], "CodeMirror-hscrollbar");
            place(vert); place(horiz);
        
            on(vert, "scroll", function() {
              if (vert.clientHeight) scroll(vert.scrollTop, "vertical");
            });
            on(horiz, "scroll", function() {
              if (horiz.clientWidth) scroll(horiz.scrollLeft, "horizontal");
            });
        
            this.checkedOverlay = false;
            // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8).
            if (ie && ie_version < 8) this.horiz.style.minHeight = this.vert.style.minWidth = "18px";
          }
        
          NativeScrollbars.prototype = copyObj({
            update: function(measure) {
              var needsH = measure.scrollWidth > measure.clientWidth + 1;
              var needsV = measure.scrollHeight > measure.clientHeight + 1;
              var sWidth = measure.nativeBarWidth;
        
              if (needsV) {
                this.vert.style.display = "block";
                this.vert.style.bottom = needsH ? sWidth + "px" : "0";
                var totalHeight = measure.viewHeight - (needsH ? sWidth : 0);
                // A bug in IE8 can cause this value to be negative, so guard it.
                this.vert.firstChild.style.height =
                  Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + "px";
              } else {
                this.vert.style.display = "";
                this.vert.firstChild.style.height = "0";
              }
        
              if (needsH) {
                this.horiz.style.display = "block";
                this.horiz.style.right = needsV ? sWidth + "px" : "0";
                this.horiz.style.left = measure.barLeft + "px";
                var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0);
                this.horiz.firstChild.style.width =
                  (measure.scrollWidth - measure.clientWidth + totalWidth) + "px";
              } else {
                this.horiz.style.display = "";
                this.horiz.firstChild.style.width = "0";
              }
        
              if (!this.checkedOverlay && measure.clientHeight > 0) {
                if (sWidth == 0) this.overlayHack();
                this.checkedOverlay = true;
              }
        
              return {right: needsV ? sWidth : 0, bottom: needsH ? sWidth : 0};
            },
            setScrollLeft: function(pos) {
              if (this.horiz.scrollLeft != pos) this.horiz.scrollLeft = pos;
            },
            setScrollTop: function(pos) {
              if (this.vert.scrollTop != pos) this.vert.scrollTop = pos;
            },
            overlayHack: function() {
              var w = mac && !mac_geMountainLion ? "12px" : "18px";
              this.horiz.style.minHeight = this.vert.style.minWidth = w;
              var self = this;
              var barMouseDown = function(e) {
                if (e_target(e) != self.vert && e_target(e) != self.horiz)
                  operation(self.cm, onMouseDown)(e);
              };
              on(this.vert, "mousedown", barMouseDown);
              on(this.horiz, "mousedown", barMouseDown);
            },
            clear: function() {
              var parent = this.horiz.parentNode;
              parent.removeChild(this.horiz);
              parent.removeChild(this.vert);
            }
          }, NativeScrollbars.prototype);
        
          function NullScrollbars() {}
        
          NullScrollbars.prototype = copyObj({
            update: function() { return {bottom: 0, right: 0}; },
            setScrollLeft: function() {},
            setScrollTop: function() {},
            clear: function() {}
          }, NullScrollbars.prototype);
        
          CodeMirror.scrollbarModel = {"native": NativeScrollbars, "null": NullScrollbars};
        
          function initScrollbars(cm) {
            if (cm.display.scrollbars) {
              cm.display.scrollbars.clear();
              if (cm.display.scrollbars.addClass)
                rmClass(cm.display.wrapper, cm.display.scrollbars.addClass);
            }
        
            cm.display.scrollbars = new CodeMirror.scrollbarModel[cm.options.scrollbarStyle](function(node) {
              cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller);
              // Prevent clicks in the scrollbars from killing focus
              on(node, "mousedown", function() {
                if (cm.state.focused) setTimeout(function() { cm.display.input.focus(); }, 0);
              });
              node.setAttribute("cm-not-content", "true");
            }, function(pos, axis) {
              if (axis == "horizontal") setScrollLeft(cm, pos);
              else setScrollTop(cm, pos);
            }, cm);
            if (cm.display.scrollbars.addClass)
              addClass(cm.display.wrapper, cm.display.scrollbars.addClass);
          }
        
          function updateScrollbars(cm, measure) {
            if (!measure) measure = measureForScrollbars(cm);
            var startWidth = cm.display.barWidth, startHeight = cm.display.barHeight;
            updateScrollbarsInner(cm, measure);
            for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) {
              if (startWidth != cm.display.barWidth && cm.options.lineWrapping)
                updateHeightsInViewport(cm);
              updateScrollbarsInner(cm, measureForScrollbars(cm));
              startWidth = cm.display.barWidth; startHeight = cm.display.barHeight;
            }
          }
        
          // Re-synchronize the fake scrollbars with the actual size of the
          // content.
          function updateScrollbarsInner(cm, measure) {
            var d = cm.display;
            var sizes = d.scrollbars.update(measure);
        
            d.sizer.style.paddingRight = (d.barWidth = sizes.right) + "px";
            d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + "px";
        
            if (sizes.right && sizes.bottom) {
              d.scrollbarFiller.style.display = "block";
              d.scrollbarFiller.style.height = sizes.bottom + "px";
              d.scrollbarFiller.style.width = sizes.right + "px";
            } else d.scrollbarFiller.style.display = "";
            if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) {
              d.gutterFiller.style.display = "block";
              d.gutterFiller.style.height = sizes.bottom + "px";
              d.gutterFiller.style.width = measure.gutterWidth + "px";
            } else d.gutterFiller.style.display = "";
          }
        
          // Compute the lines that are visible in a given viewport (defaults
          // the the current scroll position). viewport may contain top,
          // height, and ensure (see op.scrollToPos) properties.
          function visibleLines(display, doc, viewport) {
            var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop;
            top = Math.floor(top - paddingTop(display));
            var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight;
        
            var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom);
            // Ensure is a {from: {line, ch}, to: {line, ch}} object, and
            // forces those lines into the viewport (if possible).
            if (viewport && viewport.ensure) {
              var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line;
              if (ensureFrom < from) {
                from = ensureFrom;
                to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight);
              } else if (Math.min(ensureTo, doc.lastLine()) >= to) {
                from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight);
                to = ensureTo;
              }
            }
            return {from: from, to: Math.max(to, from + 1)};
          }
        
          // LINE NUMBERS
        
          // Re-align line numbers and gutter marks to compensate for
          // horizontal scrolling.
          function alignHorizontally(cm) {
            var display = cm.display, view = display.view;
            if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) return;
            var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;
            var gutterW = display.gutters.offsetWidth, left = comp + "px";
            for (var i = 0; i < view.length; i++) if (!view[i].hidden) {
              if (cm.options.fixedGutter && view[i].gutter)
                view[i].gutter.style.left = left;
              var align = view[i].alignable;
              if (align) for (var j = 0; j < align.length; j++)
                align[j].style.left = left;
            }
            if (cm.options.fixedGutter)
              display.gutters.style.left = (comp + gutterW) + "px";
          }
        
          // Used to ensure that the line number gutter is still the right
          // size for the current document size. Returns true when an update
          // is needed.
          function maybeUpdateLineNumberWidth(cm) {
            if (!cm.options.lineNumbers) return false;
            var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;
            if (last.length != display.lineNumChars) {
              var test = display.measure.appendChild(elt("div", [elt("div", last)],
                                                         "CodeMirror-linenumber CodeMirror-gutter-elt"));
              var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;
              display.lineGutter.style.width = "";
              display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1;
              display.lineNumWidth = display.lineNumInnerWidth + padding;
              display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;
              display.lineGutter.style.width = display.lineNumWidth + "px";
              updateGutterSpace(cm);
              return true;
            }
            return false;
          }
        
          function lineNumberFor(options, i) {
            return String(options.lineNumberFormatter(i + options.firstLineNumber));
          }
        
          // Computes display.scroller.scrollLeft + display.gutters.offsetWidth,
          // but using getBoundingClientRect to get a sub-pixel-accurate
          // result.
          function compensateForHScroll(display) {
            return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left;
          }
        
          // DISPLAY DRAWING
        
          function DisplayUpdate(cm, viewport, force) {
            var display = cm.display;
        
            this.viewport = viewport;
            // Store some values that we'll need later (but don't want to force a relayout for)
            this.visible = visibleLines(display, cm.doc, viewport);
            this.editorIsHidden = !display.wrapper.offsetWidth;
            this.wrapperHeight = display.wrapper.clientHeight;
            this.wrapperWidth = display.wrapper.clientWidth;
            this.oldDisplayWidth = displayWidth(cm);
            this.force = force;
            this.dims = getDimensions(cm);
            this.events = [];
          }
        
          DisplayUpdate.prototype.signal = function(emitter, type) {
            if (hasHandler(emitter, type))
              this.events.push(arguments);
          };
          DisplayUpdate.prototype.finish = function() {
            for (var i = 0; i < this.events.length; i++)
              signal.apply(null, this.events[i]);
          };
        
          function maybeClipScrollbars(cm) {
            var display = cm.display;
            if (!display.scrollbarsClipped && display.scroller.offsetWidth) {
              display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth;
              display.heightForcer.style.height = scrollGap(cm) + "px";
              display.sizer.style.marginBottom = -display.nativeBarWidth + "px";
              display.sizer.style.borderRightWidth = scrollGap(cm) + "px";
              display.scrollbarsClipped = true;
            }
          }
        
          // Does the actual updating of the line display. Bails out
          // (returning false) when there is nothing to be done and forced is
          // false.
          function updateDisplayIfNeeded(cm, update) {
            var display = cm.display, doc = cm.doc;
        
            if (update.editorIsHidden) {
              resetView(cm);
              return false;
            }
        
            // Bail out if the visible area is already rendered and nothing changed.
            if (!update.force &&
                update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo &&
                (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) &&
                display.renderedView == display.view && countDirtyView(cm) == 0)
              return false;
        
            if (maybeUpdateLineNumberWidth(cm)) {
              resetView(cm);
              update.dims = getDimensions(cm);
            }
        
            // Compute a suitable new viewport (from & to)
            var end = doc.first + doc.size;
            var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first);
            var to = Math.min(end, update.visible.to + cm.options.viewportMargin);
            if (display.viewFrom < from && from - display.viewFrom < 20) from = Math.max(doc.first, display.viewFrom);
            if (display.viewTo > to && display.viewTo - to < 20) to = Math.min(end, display.viewTo);
            if (sawCollapsedSpans) {
              from = visualLineNo(cm.doc, from);
              to = visualLineEndNo(cm.doc, to);
            }
        
            var different = from != display.viewFrom || to != display.viewTo ||
              display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth;
            adjustView(cm, from, to);
        
            display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom));
            // Position the mover div to align with the current scroll position
            cm.display.mover.style.top = display.viewOffset + "px";
        
            var toUpdate = countDirtyView(cm);
            if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view &&
                (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo))
              return false;
        
            // For big changes, we hide the enclosing element during the
            // update, since that speeds up the operations on most browsers.
            var focused = activeElt();
            if (toUpdate > 4) display.lineDiv.style.display = "none";
            patchDisplay(cm, display.updateLineNumbers, update.dims);
            if (toUpdate > 4) display.lineDiv.style.display = "";
            display.renderedView = display.view;
            // There might have been a widget with a focused element that got
            // hidden or updated, if so re-focus it.
            if (focused && activeElt() != focused && focused.offsetHeight) focused.focus();
        
            // Prevent selection and cursors from interfering with the scroll
            // width and height.
            removeChildren(display.cursorDiv);
            removeChildren(display.selectionDiv);
            display.gutters.style.height = display.sizer.style.minHeight = 0;
        
            if (different) {
              display.lastWrapHeight = update.wrapperHeight;
              display.lastWrapWidth = update.wrapperWidth;
              startWorker(cm, 400);
            }
        
            display.updateLineNumbers = null;
        
            return true;
          }
        
          function postUpdateDisplay(cm, update) {
            var viewport = update.viewport;
            for (var first = true;; first = false) {
              if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) {
                // Clip forced viewport to actual scrollable area.
                if (viewport && viewport.top != null)
                  viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top)};
                // Updated line heights might result in the drawn area not
                // actually covering the viewport. Keep looping until it does.
                update.visible = visibleLines(cm.display, cm.doc, viewport);
                if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo)
                  break;
              }
              if (!updateDisplayIfNeeded(cm, update)) break;
              updateHeightsInViewport(cm);
              var barMeasure = measureForScrollbars(cm);
              updateSelection(cm);
              setDocumentHeight(cm, barMeasure);
              updateScrollbars(cm, barMeasure);
            }
        
            update.signal(cm, "update", cm);
            if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) {
              update.signal(cm, "viewportChange", cm, cm.display.viewFrom, cm.display.viewTo);
              cm.display.reportedViewFrom = cm.display.viewFrom; cm.display.reportedViewTo = cm.display.viewTo;
            }
          }
        
          function updateDisplaySimple(cm, viewport) {
            var update = new DisplayUpdate(cm, viewport);
            if (updateDisplayIfNeeded(cm, update)) {
              updateHeightsInViewport(cm);
              postUpdateDisplay(cm, update);
              var barMeasure = measureForScrollbars(cm);
              updateSelection(cm);
              setDocumentHeight(cm, barMeasure);
              updateScrollbars(cm, barMeasure);
              update.finish();
            }
          }
        
          function setDocumentHeight(cm, measure) {
            cm.display.sizer.style.minHeight = measure.docHeight + "px";
            var total = measure.docHeight + cm.display.barHeight;
            cm.display.heightForcer.style.top = total + "px";
            cm.display.gutters.style.height = Math.max(total + scrollGap(cm), measure.clientHeight) + "px";
          }
        
          // Read the actual heights of the rendered lines, and update their
          // stored heights to match.
          function updateHeightsInViewport(cm) {
            var display = cm.display;
            var prevBottom = display.lineDiv.offsetTop;
            for (var i = 0; i < display.view.length; i++) {
              var cur = display.view[i], height;
              if (cur.hidden) continue;
              if (ie && ie_version < 8) {
                var bot = cur.node.offsetTop + cur.node.offsetHeight;
                height = bot - prevBottom;
                prevBottom = bot;
              } else {
                var box = cur.node.getBoundingClientRect();
                height = box.bottom - box.top;
              }
              var diff = cur.line.height - height;
              if (height < 2) height = textHeight(display);
              if (diff > .001 || diff < -.001) {
                updateLineHeight(cur.line, height);
                updateWidgetHeight(cur.line);
                if (cur.rest) for (var j = 0; j < cur.rest.length; j++)
                  updateWidgetHeight(cur.rest[j]);
              }
            }
          }
        
          // Read and store the height of line widgets associated with the
          // given line.
          function updateWidgetHeight(line) {
            if (line.widgets) for (var i = 0; i < line.widgets.length; ++i)
              line.widgets[i].height = line.widgets[i].node.offsetHeight;
          }
        
          // Do a bulk-read of the DOM positions and sizes needed to draw the
          // view, so that we don't interleave reading and writing to the DOM.
          function getDimensions(cm) {
            var d = cm.display, left = {}, width = {};
            var gutterLeft = d.gutters.clientLeft;
            for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) {
              left[cm.options.gutters[i]] = n.offsetLeft + n.clientLeft + gutterLeft;
              width[cm.options.gutters[i]] = n.clientWidth;
            }
            return {fixedPos: compensateForHScroll(d),
                    gutterTotalWidth: d.gutters.offsetWidth,
                    gutterLeft: left,
                    gutterWidth: width,
                    wrapperWidth: d.wrapper.clientWidth};
          }
        
          // Sync the actual display DOM structure with display.view, removing
          // nodes for lines that are no longer in view, and creating the ones
          // that are not there yet, and updating the ones that are out of
          // date.
          function patchDisplay(cm, updateNumbersFrom, dims) {
            var display = cm.display, lineNumbers = cm.options.lineNumbers;
            var container = display.lineDiv, cur = container.firstChild;
        
            function rm(node) {
              var next = node.nextSibling;
              // Works around a throw-scroll bug in OS X Webkit
              if (webkit && mac && cm.display.currentWheelTarget == node)
                node.style.display = "none";
              else
                node.parentNode.removeChild(node);
              return next;
            }
        
            var view = display.view, lineN = display.viewFrom;
            // Loop over the elements in the view, syncing cur (the DOM nodes
            // in display.lineDiv) with the view as we go.
            for (var i = 0; i < view.length; i++) {
              var lineView = view[i];
              if (lineView.hidden) {
              } else if (!lineView.node || lineView.node.parentNode != container) { // Not drawn yet
                var node = buildLineElement(cm, lineView, lineN, dims);
                container.insertBefore(node, cur);
              } else { // Already drawn
                while (cur != lineView.node) cur = rm(cur);
                var updateNumber = lineNumbers && updateNumbersFrom != null &&
                  updateNumbersFrom <= lineN && lineView.lineNumber;
                if (lineView.changes) {
                  if (indexOf(lineView.changes, "gutter") > -1) updateNumber = false;
                  updateLineForChanges(cm, lineView, lineN, dims);
                }
                if (updateNumber) {
                  removeChildren(lineView.lineNumber);
                  lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN)));
                }
                cur = lineView.node.nextSibling;
              }
              lineN += lineView.size;
            }
            while (cur) cur = rm(cur);
          }
        
          // When an aspect of a line changes, a string is added to
          // lineView.changes. This updates the relevant part of the line's
          // DOM structure.
          function updateLineForChanges(cm, lineView, lineN, dims) {
            for (var j = 0; j < lineView.changes.length; j++) {
              var type = lineView.changes[j];
              if (type == "text") updateLineText(cm, lineView);
              else if (type == "gutter") updateLineGutter(cm, lineView, lineN, dims);
              else if (type == "class") updateLineClasses(lineView);
              else if (type == "widget") updateLineWidgets(cm, lineView, dims);
            }
            lineView.changes = null;
          }
        
          // Lines with gutter elements, widgets or a background class need to
          // be wrapped, and have the extra elements added to the wrapper div
          function ensureLineWrapped(lineView) {
            if (lineView.node == lineView.text) {
              lineView.node = elt("div", null, null, "position: relative");
              if (lineView.text.parentNode)
                lineView.text.parentNode.replaceChild(lineView.node, lineView.text);
              lineView.node.appendChild(lineView.text);
              if (ie && ie_version < 8) lineView.node.style.zIndex = 2;
            }
            return lineView.node;
          }
        
          function updateLineBackground(lineView) {
            var cls = lineView.bgClass ? lineView.bgClass + " " + (lineView.line.bgClass || "") : lineView.line.bgClass;
            if (cls) cls += " CodeMirror-linebackground";
            if (lineView.background) {
              if (cls) lineView.background.className = cls;
              else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; }
            } else if (cls) {
              var wrap = ensureLineWrapped(lineView);
              lineView.background = wrap.insertBefore(elt("div", null, cls), wrap.firstChild);
            }
          }
        
          // Wrapper around buildLineContent which will reuse the structure
          // in display.externalMeasured when possible.
          function getLineContent(cm, lineView) {
            var ext = cm.display.externalMeasured;
            if (ext && ext.line == lineView.line) {
              cm.display.externalMeasured = null;
              lineView.measure = ext.measure;
              return ext.built;
            }
            return buildLineContent(cm, lineView);
          }
        
          // Redraw the line's text. Interacts with the background and text
          // classes because the mode may output tokens that influence these
          // classes.
          function updateLineText(cm, lineView) {
            var cls = lineView.text.className;
            var built = getLineContent(cm, lineView);
            if (lineView.text == lineView.node) lineView.node = built.pre;
            lineView.text.parentNode.replaceChild(built.pre, lineView.text);
            lineView.text = built.pre;
            if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) {
              lineView.bgClass = built.bgClass;
              lineView.textClass = built.textClass;
              updateLineClasses(lineView);
            } else if (cls) {
              lineView.text.className = cls;
            }
          }
        
          function updateLineClasses(lineView) {
            updateLineBackground(lineView);
            if (lineView.line.wrapClass)
              ensureLineWrapped(lineView).className = lineView.line.wrapClass;
            else if (lineView.node != lineView.text)
              lineView.node.className = "";
            var textClass = lineView.textClass ? lineView.textClass + " " + (lineView.line.textClass || "") : lineView.line.textClass;
            lineView.text.className = textClass || "";
          }
        
          function updateLineGutter(cm, lineView, lineN, dims) {
            if (lineView.gutter) {
              lineView.node.removeChild(lineView.gutter);
              lineView.gutter = null;
            }
            if (lineView.gutterBackground) {
              lineView.node.removeChild(lineView.gutterBackground);
              lineView.gutterBackground = null;
            }
            if (lineView.line.gutterClass) {
              var wrap = ensureLineWrapped(lineView);
              lineView.gutterBackground = elt("div", null, "CodeMirror-gutter-background " + lineView.line.gutterClass,
                                              "left: " + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) +
                                              "px; width: " + dims.gutterTotalWidth + "px");
              wrap.insertBefore(lineView.gutterBackground, lineView.text);
            }
            var markers = lineView.line.gutterMarkers;
            if (cm.options.lineNumbers || markers) {
              var wrap = ensureLineWrapped(lineView);
              var gutterWrap = lineView.gutter = elt("div", null, "CodeMirror-gutter-wrapper", "left: " +
                                                     (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px");
              cm.display.input.setUneditable(gutterWrap);
              wrap.insertBefore(gutterWrap, lineView.text);
              if (lineView.line.gutterClass)
                gutterWrap.className += " " + lineView.line.gutterClass;
              if (cm.options.lineNumbers && (!markers || !markers["CodeMirror-linenumbers"]))
                lineView.lineNumber = gutterWrap.appendChild(
                  elt("div", lineNumberFor(cm.options, lineN),
                      "CodeMirror-linenumber CodeMirror-gutter-elt",
                      "left: " + dims.gutterLeft["CodeMirror-linenumbers"] + "px; width: "
                      + cm.display.lineNumInnerWidth + "px"));
              if (markers) for (var k = 0; k < cm.options.gutters.length; ++k) {
                var id = cm.options.gutters[k], found = markers.hasOwnProperty(id) && markers[id];
                if (found)
                  gutterWrap.appendChild(elt("div", [found], "CodeMirror-gutter-elt", "left: " +
                                             dims.gutterLeft[id] + "px; width: " + dims.gutterWidth[id] + "px"));
              }
            }
          }
        
          function updateLineWidgets(cm, lineView, dims) {
            if (lineView.alignable) lineView.alignable = null;
            for (var node = lineView.node.firstChild, next; node; node = next) {
              var next = node.nextSibling;
              if (node.className == "CodeMirror-linewidget")
                lineView.node.removeChild(node);
            }
            insertLineWidgets(cm, lineView, dims);
          }
        
          // Build a line's DOM representation from scratch
          function buildLineElement(cm, lineView, lineN, dims) {
            var built = getLineContent(cm, lineView);
            lineView.text = lineView.node = built.pre;
            if (built.bgClass) lineView.bgClass = built.bgClass;
            if (built.textClass) lineView.textClass = built.textClass;
        
            updateLineClasses(lineView);
            updateLineGutter(cm, lineView, lineN, dims);
            insertLineWidgets(cm, lineView, dims);
            return lineView.node;
          }
        
          // A lineView may contain multiple logical lines (when merged by
          // collapsed spans). The widgets for all of them need to be drawn.
          function insertLineWidgets(cm, lineView, dims) {
            insertLineWidgetsFor(cm, lineView.line, lineView, dims, true);
            if (lineView.rest) for (var i = 0; i < lineView.rest.length; i++)
              insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false);
          }
        
          function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) {
            if (!line.widgets) return;
            var wrap = ensureLineWrapped(lineView);
            for (var i = 0, ws = line.widgets; i < ws.length; ++i) {
              var widget = ws[i], node = elt("div", [widget.node], "CodeMirror-linewidget");
              if (!widget.handleMouseEvents) node.setAttribute("cm-ignore-events", "true");
              positionLineWidget(widget, node, lineView, dims);
              cm.display.input.setUneditable(node);
              if (allowAbove && widget.above)
                wrap.insertBefore(node, lineView.gutter || lineView.text);
              else
                wrap.appendChild(node);
              signalLater(widget, "redraw");
            }
          }
        
          function positionLineWidget(widget, node, lineView, dims) {
            if (widget.noHScroll) {
              (lineView.alignable || (lineView.alignable = [])).push(node);
              var width = dims.wrapperWidth;
              node.style.left = dims.fixedPos + "px";
              if (!widget.coverGutter) {
                width -= dims.gutterTotalWidth;
                node.style.paddingLeft = dims.gutterTotalWidth + "px";
              }
              node.style.width = width + "px";
            }
            if (widget.coverGutter) {
              node.style.zIndex = 5;
              node.style.position = "relative";
              if (!widget.noHScroll) node.style.marginLeft = -dims.gutterTotalWidth + "px";
            }
          }
        
          // POSITION OBJECT
        
          // A Pos instance represents a position within the text.
          var Pos = CodeMirror.Pos = function(line, ch) {
            if (!(this instanceof Pos)) return new Pos(line, ch);
            this.line = line; this.ch = ch;
          };
        
          // Compare two positions, return 0 if they are the same, a negative
          // number when a is less, and a positive number otherwise.
          var cmp = CodeMirror.cmpPos = function(a, b) { return a.line - b.line || a.ch - b.ch; };
        
          function copyPos(x) {return Pos(x.line, x.ch);}
          function maxPos(a, b) { return cmp(a, b) < 0 ? b : a; }
          function minPos(a, b) { return cmp(a, b) < 0 ? a : b; }
        
          // INPUT HANDLING
        
          function ensureFocus(cm) {
            if (!cm.state.focused) { cm.display.input.focus(); onFocus(cm); }
          }
        
          function isReadOnly(cm) {
            return cm.options.readOnly || cm.doc.cantEdit;
          }
        
          // This will be set to an array of strings when copying, so that,
          // when pasting, we know what kind of selections the copied text
          // was made out of.
          var lastCopied = null;
        
          function applyTextInput(cm, inserted, deleted, sel, origin) {
            var doc = cm.doc;
            cm.display.shift = false;
            if (!sel) sel = doc.sel;
        
            var paste = cm.state.pasteIncoming || origin == "paste";
            var textLines = doc.splitLines(inserted), multiPaste = null;
            // When pasing N lines into N selections, insert one line per selection
            if (paste && sel.ranges.length > 1) {
              if (lastCopied && lastCopied.join("\n") == inserted) {
                if (sel.ranges.length % lastCopied.length == 0) {
                  multiPaste = [];
                  for (var i = 0; i < lastCopied.length; i++)
                    multiPaste.push(doc.splitLines(lastCopied[i]));
                }
              } else if (textLines.length == sel.ranges.length) {
                multiPaste = map(textLines, function(l) { return [l]; });
              }
            }
        
            // Normal behavior is to insert the new text into every selection
            for (var i = sel.ranges.length - 1; i >= 0; i--) {
              var range = sel.ranges[i];
              var from = range.from(), to = range.to();
              if (range.empty()) {
                if (deleted && deleted > 0) // Handle deletion
                  from = Pos(from.line, from.ch - deleted);
                else if (cm.state.overwrite && !paste) // Handle overwrite
                  to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length));
              }
              var updateInput = cm.curOp.updateInput;
              var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i % multiPaste.length] : textLines,
                                 origin: origin || (paste ? "paste" : cm.state.cutIncoming ? "cut" : "+input")};
              makeChange(cm.doc, changeEvent);
              signalLater(cm, "inputRead", cm, changeEvent);
            }
            if (inserted && !paste)
              triggerElectric(cm, inserted);
        
            ensureCursorVisible(cm);
            cm.curOp.updateInput = updateInput;
            cm.curOp.typing = true;
            cm.state.pasteIncoming = cm.state.cutIncoming = false;
          }
        
          function handlePaste(e, cm) {
            var pasted = e.clipboardData && e.clipboardData.getData("text/plain");
            if (pasted) {
              e.preventDefault();
              if (!isReadOnly(cm) && !cm.options.disableInput)
                runInOp(cm, function() { applyTextInput(cm, pasted, 0, null, "paste"); });
              return true;
            }
          }
        
          function triggerElectric(cm, inserted) {
            // When an 'electric' character is inserted, immediately trigger a reindent
            if (!cm.options.electricChars || !cm.options.smartIndent) return;
            var sel = cm.doc.sel;
        
            for (var i = sel.ranges.length - 1; i >= 0; i--) {
              var range = sel.ranges[i];
              if (range.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range.head.line)) continue;
              var mode = cm.getModeAt(range.head);
              var indented = false;
              if (mode.electricChars) {
                for (var j = 0; j < mode.electricChars.length; j++)
                  if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) {
                    indented = indentLine(cm, range.head.line, "smart");
                    break;
                  }
              } else if (mode.electricInput) {
                if (mode.electricInput.test(getLine(cm.doc, range.head.line).text.slice(0, range.head.ch)))
                  indented = indentLine(cm, range.head.line, "smart");
              }
              if (indented) signalLater(cm, "electricInput", cm, range.head.line);
            }
          }
        
          function copyableRanges(cm) {
            var text = [], ranges = [];
            for (var i = 0; i < cm.doc.sel.ranges.length; i++) {
              var line = cm.doc.sel.ranges[i].head.line;
              var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)};
              ranges.push(lineRange);
              text.push(cm.getRange(lineRange.anchor, lineRange.head));
            }
            return {text: text, ranges: ranges};
          }
        
          function disableBrowserMagic(field) {
            field.setAttribute("autocorrect", "off");
            field.setAttribute("autocapitalize", "off");
            field.setAttribute("spellcheck", "false");
          }
        
          // TEXTAREA INPUT STYLE
        
          function TextareaInput(cm) {
            this.cm = cm;
            // See input.poll and input.reset
            this.prevInput = "";
        
            // Flag that indicates whether we expect input to appear real soon
            // now (after some event like 'keypress' or 'input') and are
            // polling intensively.
            this.pollingFast = false;
            // Self-resetting timeout for the poller
            this.polling = new Delayed();
            // Tracks when input.reset has punted to just putting a short
            // string into the textarea instead of the full selection.
            this.inaccurateSelection = false;
            // Used to work around IE issue with selection being forgotten when focus moves away from textarea
            this.hasSelection = false;
            this.composing = null;
          };
        
          function hiddenTextarea() {
            var te = elt("textarea", null, null, "position: absolute; padding: 0; width: 1px; height: 1em; outline: none");
            var div = elt("div", [te], null, "overflow: hidden; position: relative; width: 3px; height: 0px;");
            // The textarea is kept positioned near the cursor to prevent the
            // fact that it'll be scrolled into view on input from scrolling
            // our fake cursor out of view. On webkit, when wrap=off, paste is
            // very slow. So make the area wide instead.
            if (webkit) te.style.width = "1000px";
            else te.setAttribute("wrap", "off");
            // If border: 0; -- iOS fails to open keyboard (issue #1287)
            if (ios) te.style.border = "1px solid black";
            disableBrowserMagic(te);
            return div;
          }
        
          TextareaInput.prototype = copyObj({
            init: function(display) {
              var input = this, cm = this.cm;
        
              // Wraps and hides input textarea
              var div = this.wrapper = hiddenTextarea();
              // The semihidden textarea that is focused when the editor is
              // focused, and receives input.
              var te = this.textarea = div.firstChild;
              display.wrapper.insertBefore(div, display.wrapper.firstChild);
        
              // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore)
              if (ios) te.style.width = "0px";
        
              on(te, "input", function() {
                if (ie && ie_version >= 9 && input.hasSelection) input.hasSelection = null;
                input.poll();
              });
        
              on(te, "paste", function(e) {
                if (handlePaste(e, cm)) return true;
        
                cm.state.pasteIncoming = true;
                input.fastPoll();
              });
        
              function prepareCopyCut(e) {
                if (cm.somethingSelected()) {
                  lastCopied = cm.getSelections();
                  if (input.inaccurateSelection) {
                    input.prevInput = "";
                    input.inaccurateSelection = false;
                    te.value = lastCopied.join("\n");
                    selectInput(te);
                  }
                } else if (!cm.options.lineWiseCopyCut) {
                  return;
                } else {
                  var ranges = copyableRanges(cm);
                  lastCopied = ranges.text;
                  if (e.type == "cut") {
                    cm.setSelections(ranges.ranges, null, sel_dontScroll);
                  } else {
                    input.prevInput = "";
                    te.value = ranges.text.join("\n");
                    selectInput(te);
                  }
                }
                if (e.type == "cut") cm.state.cutIncoming = true;
              }
              on(te, "cut", prepareCopyCut);
              on(te, "copy", prepareCopyCut);
        
              on(display.scroller, "paste", function(e) {
                if (eventInWidget(display, e)) return;
                cm.state.pasteIncoming = true;
                input.focus();
              });
        
              // Prevent normal selection in the editor (we handle our own)
              on(display.lineSpace, "selectstart", function(e) {
                if (!eventInWidget(display, e)) e_preventDefault(e);
              });
        
              on(te, "compositionstart", function() {
                var start = cm.getCursor("from");
                if (input.composing) input.composing.range.clear()
                input.composing = {
                  start: start,
                  range: cm.markText(start, cm.getCursor("to"), {className: "CodeMirror-composing"})
                };
              });
              on(te, "compositionend", function() {
                if (input.composing) {
                  input.poll();
                  input.composing.range.clear();
                  input.composing = null;
                }
              });
            },
        
            prepareSelection: function() {
              // Redraw the selection and/or cursor
              var cm = this.cm, display = cm.display, doc = cm.doc;
              var result = prepareSelection(cm);
        
              // Move the hidden textarea near the cursor to prevent scrolling artifacts
              if (cm.options.moveInputWithCursor) {
                var headPos = cursorCoords(cm, doc.sel.primary().head, "div");
                var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect();
                result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10,
                                                    headPos.top + lineOff.top - wrapOff.top));
                result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10,
                                                     headPos.left + lineOff.left - wrapOff.left));
              }
        
              return result;
            },
        
            showSelection: function(drawn) {
              var cm = this.cm, display = cm.display;
              removeChildrenAndAdd(display.cursorDiv, drawn.cursors);
              removeChildrenAndAdd(display.selectionDiv, drawn.selection);
              if (drawn.teTop != null) {
                this.wrapper.style.top = drawn.teTop + "px";
                this.wrapper.style.left = drawn.teLeft + "px";
              }
            },
        
            // Reset the input to correspond to the selection (or to be empty,
            // when not typing and nothing is selected)
            reset: function(typing) {
              if (this.contextMenuPending) return;
              var minimal, selected, cm = this.cm, doc = cm.doc;
              if (cm.somethingSelected()) {
                this.prevInput = "";
                var range = doc.sel.primary();
                minimal = hasCopyEvent &&
                  (range.to().line - range.from().line > 100 || (selected = cm.getSelection()).length > 1000);
                var content = minimal ? "-" : selected || cm.getSelection();
                this.textarea.value = content;
                if (cm.state.focused) selectInput(this.textarea);
                if (ie && ie_version >= 9) this.hasSelection = content;
              } else if (!typing) {
                this.prevInput = this.textarea.value = "";
                if (ie && ie_version >= 9) this.hasSelection = null;
              }
              this.inaccurateSelection = minimal;
            },
        
            getField: function() { return this.textarea; },
        
            supportsTouch: function() { return false; },
        
            focus: function() {
              if (this.cm.options.readOnly != "nocursor" && (!mobile || activeElt() != this.textarea)) {
                try { this.textarea.focus(); }
                catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM
              }
            },
        
            blur: function() { this.textarea.blur(); },
        
            resetPosition: function() {
              this.wrapper.style.top = this.wrapper.style.left = 0;
            },
        
            receivedFocus: function() { this.slowPoll(); },
        
            // Poll for input changes, using the normal rate of polling. This
            // runs as long as the editor is focused.
            slowPoll: function() {
              var input = this;
              if (input.pollingFast) return;
              input.polling.set(this.cm.options.pollInterval, function() {
                input.poll();
                if (input.cm.state.focused) input.slowPoll();
              });
            },
        
            // When an event has just come in that is likely to add or change
            // something in the input textarea, we poll faster, to ensure that
            // the change appears on the screen quickly.
            fastPoll: function() {
              var missed = false, input = this;
              input.pollingFast = true;
              function p() {
                var changed = input.poll();
                if (!changed && !missed) {missed = true; input.polling.set(60, p);}
                else {input.pollingFast = false; input.slowPoll();}
              }
              input.polling.set(20, p);
            },
        
            // Read input from the textarea, and update the document to match.
            // When something is selected, it is present in the textarea, and
            // selected (unless it is huge, in which case a placeholder is
            // used). When nothing is selected, the cursor sits after previously
            // seen text (can be empty), which is stored in prevInput (we must
            // not reset the textarea when typing, because that breaks IME).
            poll: function() {
              var cm = this.cm, input = this.textarea, prevInput = this.prevInput;
              // Since this is called a *lot*, try to bail out as cheaply as
              // possible when it is clear that nothing happened. hasSelection
              // will be the case when there is a lot of text in the textarea,
              // in which case reading its value would be expensive.
              if (this.contextMenuPending || !cm.state.focused ||
                  (hasSelection(input) && !prevInput && !this.composing) ||
                  isReadOnly(cm) || cm.options.disableInput || cm.state.keySeq)
                return false;
        
              var text = input.value;
              // If nothing changed, bail.
              if (text == prevInput && !cm.somethingSelected()) return false;
              // Work around nonsensical selection resetting in IE9/10, and
              // inexplicable appearance of private area unicode characters on
              // some key combos in Mac (#2689).
              if (ie && ie_version >= 9 && this.hasSelection === text ||
                  mac && /[\uf700-\uf7ff]/.test(text)) {
                cm.display.input.reset();
                return false;
              }
        
              if (cm.doc.sel == cm.display.selForContextMenu) {
                var first = text.charCodeAt(0);
                if (first == 0x200b && !prevInput) prevInput = "\u200b";
                if (first == 0x21da) { this.reset(); return this.cm.execCommand("undo"); }
              }
              // Find the part of the input that is actually new
              var same = 0, l = Math.min(prevInput.length, text.length);
              while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) ++same;
        
              var self = this;
              runInOp(cm, function() {
                applyTextInput(cm, text.slice(same), prevInput.length - same,
                               null, self.composing ? "*compose" : null);
        
                // Don't leave long text in the textarea, since it makes further polling slow
                if (text.length > 1000 || text.indexOf("\n") > -1) input.value = self.prevInput = "";
                else self.prevInput = text;
        
                if (self.composing) {
                  self.composing.range.clear();
                  self.composing.range = cm.markText(self.composing.start, cm.getCursor("to"),
                                                     {className: "CodeMirror-composing"});
                }
              });
              return true;
            },
        
            ensurePolled: function() {
              if (this.pollingFast && this.poll()) this.pollingFast = false;
            },
        
            onKeyPress: function() {
              if (ie && ie_version >= 9) this.hasSelection = null;
              this.fastPoll();
            },
        
            onContextMenu: function(e) {
              var input = this, cm = input.cm, display = cm.display, te = input.textarea;
              var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop;
              if (!pos || presto) return; // Opera is difficult.
        
              // Reset the current text selection only if the click is done outside of the selection
              // and 'resetSelectionOnContextMenu' option is true.
              var reset = cm.options.resetSelectionOnContextMenu;
              if (reset && cm.doc.sel.contains(pos) == -1)
                operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll);
        
              var oldCSS = te.style.cssText;
              input.wrapper.style.position = "absolute";
              te.style.cssText = "position: fixed; width: 30px; height: 30px; top: " + (e.clientY - 5) +
                "px; left: " + (e.clientX - 5) + "px; z-index: 1000; background: " +
                (ie ? "rgba(255, 255, 255, .05)" : "transparent") +
                "; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";
              if (webkit) var oldScrollY = window.scrollY; // Work around Chrome issue (#2712)
              display.input.focus();
              if (webkit) window.scrollTo(null, oldScrollY);
              display.input.reset();
              // Adds "Select all" to context menu in FF
              if (!cm.somethingSelected()) te.value = input.prevInput = " ";
              input.contextMenuPending = true;
              display.selForContextMenu = cm.doc.sel;
              clearTimeout(display.detectingSelectAll);
        
              // Select-all will be greyed out if there's nothing to select, so
              // this adds a zero-width space so that we can later check whether
              // it got selected.
              function prepareSelectAllHack() {
                if (te.selectionStart != null) {
                  var selected = cm.somethingSelected();
                  var extval = "\u200b" + (selected ? te.value : "");
                  te.value = "\u21da"; // Used to catch context-menu undo
                  te.value = extval;
                  input.prevInput = selected ? "" : "\u200b";
                  te.selectionStart = 1; te.selectionEnd = extval.length;
                  // Re-set this, in case some other handler touched the
                  // selection in the meantime.
                  display.selForContextMenu = cm.doc.sel;
                }
              }
              function rehide() {
                input.contextMenuPending = false;
                input.wrapper.style.position = "relative";
                te.style.cssText = oldCSS;
                if (ie && ie_version < 9) display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos);
        
                // Try to detect the user choosing select-all
                if (te.selectionStart != null) {
                  if (!ie || (ie && ie_version < 9)) prepareSelectAllHack();
                  var i = 0, poll = function() {
                    if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0 &&
                        te.selectionEnd > 0 && input.prevInput == "\u200b")
                      operation(cm, commands.selectAll)(cm);
                    else if (i++ < 10) display.detectingSelectAll = setTimeout(poll, 500);
                    else display.input.reset();
                  };
                  display.detectingSelectAll = setTimeout(poll, 200);
                }
              }
        
              if (ie && ie_version >= 9) prepareSelectAllHack();
              if (captureRightClick) {
                e_stop(e);
                var mouseup = function() {
                  off(window, "mouseup", mouseup);
                  setTimeout(rehide, 20);
                };
                on(window, "mouseup", mouseup);
              } else {
                setTimeout(rehide, 50);
              }
            },
        
            readOnlyChanged: function(val) {
              if (!val) this.reset();
            },
        
            setUneditable: nothing,
        
            needsContentAttribute: false
          }, TextareaInput.prototype);
        
          // CONTENTEDITABLE INPUT STYLE
        
          function ContentEditableInput(cm) {
            this.cm = cm;
            this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null;
            this.polling = new Delayed();
            this.gracePeriod = false;
          }
        
          ContentEditableInput.prototype = copyObj({
            init: function(display) {
              var input = this, cm = input.cm;
              var div = input.div = display.lineDiv;
              disableBrowserMagic(div);
        
              on(div, "paste", function(e) { handlePaste(e, cm); })
        
              on(div, "compositionstart", function(e) {
                var data = e.data;
                input.composing = {sel: cm.doc.sel, data: data, startData: data};
                if (!data) return;
                var prim = cm.doc.sel.primary();
                var line = cm.getLine(prim.head.line);
                var found = line.indexOf(data, Math.max(0, prim.head.ch - data.length));
                if (found > -1 && found <= prim.head.ch)
                  input.composing.sel = simpleSelection(Pos(prim.head.line, found),
                                                        Pos(prim.head.line, found + data.length));
              });
              on(div, "compositionupdate", function(e) {
                input.composing.data = e.data;
              });
              on(div, "compositionend", function(e) {
                var ours = input.composing;
                if (!ours) return;
                if (e.data != ours.startData && !/\u200b/.test(e.data))
                  ours.data = e.data;
                // Need a small delay to prevent other code (input event,
                // selection polling) from doing damage when fired right after
                // compositionend.
                setTimeout(function() {
                  if (!ours.handled)
                    input.applyComposition(ours);
                  if (input.composing == ours)
                    input.composing = null;
                }, 50);
              });
        
              on(div, "touchstart", function() {
                input.forceCompositionEnd();
              });
        
              on(div, "input", function() {
                if (input.composing) return;
                if (isReadOnly(cm) || !input.pollContent())
                  runInOp(input.cm, function() {regChange(cm);});
              });
        
              function onCopyCut(e) {
                if (cm.somethingSelected()) {
                  lastCopied = cm.getSelections();
                  if (e.type == "cut") cm.replaceSelection("", null, "cut");
                } else if (!cm.options.lineWiseCopyCut) {
                  return;
                } else {
                  var ranges = copyableRanges(cm);
                  lastCopied = ranges.text;
                  if (e.type == "cut") {
                    cm.operation(function() {
                      cm.setSelections(ranges.ranges, 0, sel_dontScroll);
                      cm.replaceSelection("", null, "cut");
                    });
                  }
                }
                // iOS exposes the clipboard API, but seems to discard content inserted into it
                if (e.clipboardData && !ios) {
                  e.preventDefault();
                  e.clipboardData.clearData();
                  e.clipboardData.setData("text/plain", lastCopied.join("\n"));
                } else {
                  // Old-fashioned briefly-focus-a-textarea hack
                  var kludge = hiddenTextarea(), te = kludge.firstChild;
                  cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild);
                  te.value = lastCopied.join("\n");
                  var hadFocus = document.activeElement;
                  selectInput(te);
                  setTimeout(function() {
                    cm.display.lineSpace.removeChild(kludge);
                    hadFocus.focus();
                  }, 50);
                }
              }
              on(div, "copy", onCopyCut);
              on(div, "cut", onCopyCut);
            },
        
            prepareSelection: function() {
              var result = prepareSelection(this.cm, false);
              result.focus = this.cm.state.focused;
              return result;
            },
        
            showSelection: function(info) {
              if (!info || !this.cm.display.view.length) return;
              if (info.focus) this.showPrimarySelection();
              this.showMultipleSelections(info);
            },
        
            showPrimarySelection: function() {
              var sel = window.getSelection(), prim = this.cm.doc.sel.primary();
              var curAnchor = domToPos(this.cm, sel.anchorNode, sel.anchorOffset);
              var curFocus = domToPos(this.cm, sel.focusNode, sel.focusOffset);
              if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad &&
                  cmp(minPos(curAnchor, curFocus), prim.from()) == 0 &&
                  cmp(maxPos(curAnchor, curFocus), prim.to()) == 0)
                return;
        
              var start = posToDOM(this.cm, prim.from());
              var end = posToDOM(this.cm, prim.to());
              if (!start && !end) return;
        
              var view = this.cm.display.view;
              var old = sel.rangeCount && sel.getRangeAt(0);
              if (!start) {
                start = {node: view[0].measure.map[2], offset: 0};
              } else if (!end) { // FIXME dangerously hacky
                var measure = view[view.length - 1].measure;
                var map = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map;
                end = {node: map[map.length - 1], offset: map[map.length - 2] - map[map.length - 3]};
              }
        
              try { var rng = range(start.node, start.offset, end.offset, end.node); }
              catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible
              if (rng) {
                sel.removeAllRanges();
                sel.addRange(rng);
                if (old && sel.anchorNode == null) sel.addRange(old);
                else if (gecko) this.startGracePeriod();
              }
              this.rememberSelection();
            },
        
            startGracePeriod: function() {
              var input = this;
              clearTimeout(this.gracePeriod);
              this.gracePeriod = setTimeout(function() {
                input.gracePeriod = false;
                if (input.selectionChanged())
                  input.cm.operation(function() { input.cm.curOp.selectionChanged = true; });
              }, 20);
            },
        
            showMultipleSelections: function(info) {
              removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors);
              removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection);
            },
        
            rememberSelection: function() {
              var sel = window.getSelection();
              this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset;
              this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset;
            },
        
            selectionInEditor: function() {
              var sel = window.getSelection();
              if (!sel.rangeCount) return false;
              var node = sel.getRangeAt(0).commonAncestorContainer;
              return contains(this.div, node);
            },
        
            focus: function() {
              if (this.cm.options.readOnly != "nocursor") this.div.focus();
            },
            blur: function() { this.div.blur(); },
            getField: function() { return this.div; },
        
            supportsTouch: function() { return true; },
        
            receivedFocus: function() {
              var input = this;
              if (this.selectionInEditor())
                this.pollSelection();
              else
                runInOp(this.cm, function() { input.cm.curOp.selectionChanged = true; });
        
              function poll() {
                if (input.cm.state.focused) {
                  input.pollSelection();
                  input.polling.set(input.cm.options.pollInterval, poll);
                }
              }
              this.polling.set(this.cm.options.pollInterval, poll);
            },
        
            selectionChanged: function() {
              var sel = window.getSelection();
              return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset ||
                sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset;
            },
        
            pollSelection: function() {
              if (!this.composing && !this.gracePeriod && this.selectionChanged()) {
                var sel = window.getSelection(), cm = this.cm;
                this.rememberSelection();
                var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);
                var head = domToPos(cm, sel.focusNode, sel.focusOffset);
                if (anchor && head) runInOp(cm, function() {
                  setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll);
                  if (anchor.bad || head.bad) cm.curOp.selectionChanged = true;
                });
              }
            },
        
            pollContent: function() {
              var cm = this.cm, display = cm.display, sel = cm.doc.sel.primary();
              var from = sel.from(), to = sel.to();
              if (from.line < display.viewFrom || to.line > display.viewTo - 1) return false;
        
              var fromIndex;
              if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) {
                var fromLine = lineNo(display.view[0].line);
                var fromNode = display.view[0].node;
              } else {
                var fromLine = lineNo(display.view[fromIndex].line);
                var fromNode = display.view[fromIndex - 1].node.nextSibling;
              }
              var toIndex = findViewIndex(cm, to.line);
              if (toIndex == display.view.length - 1) {
                var toLine = display.viewTo - 1;
                var toNode = display.lineDiv.lastChild;
              } else {
                var toLine = lineNo(display.view[toIndex + 1].line) - 1;
                var toNode = display.view[toIndex + 1].node.previousSibling;
              }
        
              var newText = cm.doc.splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine));
              var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length));
              while (newText.length > 1 && oldText.length > 1) {
                if (lst(newText) == lst(oldText)) { newText.pop(); oldText.pop(); toLine--; }
                else if (newText[0] == oldText[0]) { newText.shift(); oldText.shift(); fromLine++; }
                else break;
              }
        
              var cutFront = 0, cutEnd = 0;
              var newTop = newText[0], oldTop = oldText[0], maxCutFront = Math.min(newTop.length, oldTop.length);
              while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront))
                ++cutFront;
              var newBot = lst(newText), oldBot = lst(oldText);
              var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0),
                                       oldBot.length - (oldText.length == 1 ? cutFront : 0));
              while (cutEnd < maxCutEnd &&
                     newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1))
                ++cutEnd;
        
              newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd);
              newText[0] = newText[0].slice(cutFront);
        
              var chFrom = Pos(fromLine, cutFront);
              var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0);
              if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) {
                replaceRange(cm.doc, newText, chFrom, chTo, "+input");
                return true;
              }
            },
        
            ensurePolled: function() {
              this.forceCompositionEnd();
            },
            reset: function() {
              this.forceCompositionEnd();
            },
            forceCompositionEnd: function() {
              if (!this.composing || this.composing.handled) return;
              this.applyComposition(this.composing);
              this.composing.handled = true;
              this.div.blur();
              this.div.focus();
            },
            applyComposition: function(composing) {
              if (isReadOnly(this.cm))
                operation(this.cm, regChange)(this.cm)
              else if (composing.data && composing.data != composing.startData)
                operation(this.cm, applyTextInput)(this.cm, composing.data, 0, composing.sel);
            },
        
            setUneditable: function(node) {
              node.contentEditable = "false"
            },
        
            onKeyPress: function(e) {
              e.preventDefault();
              if (!isReadOnly(this.cm))
                operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0);
            },
        
            readOnlyChanged: function(val) {
              this.div.contentEditable = String(val != "nocursor")
            },
        
            onContextMenu: nothing,
            resetPosition: nothing,
        
            needsContentAttribute: true
          }, ContentEditableInput.prototype);
        
          function posToDOM(cm, pos) {
            var view = findViewForLine(cm, pos.line);
            if (!view || view.hidden) return null;
            var line = getLine(cm.doc, pos.line);
            var info = mapFromLineView(view, line, pos.line);
        
            var order = getOrder(line), side = "left";
            if (order) {
              var partPos = getBidiPartAt(order, pos.ch);
              side = partPos % 2 ? "right" : "left";
            }
            var result = nodeAndOffsetInLineMap(info.map, pos.ch, side);
            result.offset = result.collapse == "right" ? result.end : result.start;
            return result;
          }
        
          function badPos(pos, bad) { if (bad) pos.bad = true; return pos; }
        
          function domToPos(cm, node, offset) {
            var lineNode;
            if (node == cm.display.lineDiv) {
              lineNode = cm.display.lineDiv.childNodes[offset];
              if (!lineNode) return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true);
              node = null; offset = 0;
            } else {
              for (lineNode = node;; lineNode = lineNode.parentNode) {
                if (!lineNode || lineNode == cm.display.lineDiv) return null;
                if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) break;
              }
            }
            for (var i = 0; i < cm.display.view.length; i++) {
              var lineView = cm.display.view[i];
              if (lineView.node == lineNode)
                return locateNodeInLineView(lineView, node, offset);
            }
          }
        
          function locateNodeInLineView(lineView, node, offset) {
            var wrapper = lineView.text.firstChild, bad = false;
            if (!node || !contains(wrapper, node)) return badPos(Pos(lineNo(lineView.line), 0), true);
            if (node == wrapper) {
              bad = true;
              node = wrapper.childNodes[offset];
              offset = 0;
              if (!node) {
                var line = lineView.rest ? lst(lineView.rest) : lineView.line;
                return badPos(Pos(lineNo(line), line.text.length), bad);
              }
            }
        
            var textNode = node.nodeType == 3 ? node : null, topNode = node;
            if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) {
              textNode = node.firstChild;
              if (offset) offset = textNode.nodeValue.length;
            }
            while (topNode.parentNode != wrapper) topNode = topNode.parentNode;
            var measure = lineView.measure, maps = measure.maps;
        
            function find(textNode, topNode, offset) {
              for (var i = -1; i < (maps ? maps.length : 0); i++) {
                var map = i < 0 ? measure.map : maps[i];
                for (var j = 0; j < map.length; j += 3) {
                  var curNode = map[j + 2];
                  if (curNode == textNode || curNode == topNode) {
                    var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]);
                    var ch = map[j] + offset;
                    if (offset < 0 || curNode != textNode) ch = map[j + (offset ? 1 : 0)];
                    return Pos(line, ch);
                  }
                }
              }
            }
            var found = find(textNode, topNode, offset);
            if (found) return badPos(found, bad);
        
            // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems
            for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) {
              found = find(after, after.firstChild, 0);
              if (found)
                return badPos(Pos(found.line, found.ch - dist), bad);
              else
                dist += after.textContent.length;
            }
            for (var before = topNode.previousSibling, dist = offset; before; before = before.previousSibling) {
              found = find(before, before.firstChild, -1);
              if (found)
                return badPos(Pos(found.line, found.ch + dist), bad);
              else
                dist += after.textContent.length;
            }
          }
        
          function domTextBetween(cm, from, to, fromLine, toLine) {
            var text = "", closing = false, lineSep = cm.doc.lineSeparator();
            function recognizeMarker(id) { return function(marker) { return marker.id == id; }; }
            function walk(node) {
              if (node.nodeType == 1) {
                var cmText = node.getAttribute("cm-text");
                if (cmText != null) {
                  if (cmText == "") cmText = node.textContent.replace(/\u200b/g, "");
                  text += cmText;
                  return;
                }
                var markerID = node.getAttribute("cm-marker"), range;
                if (markerID) {
                  var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID));
                  if (found.length && (range = found[0].find()))
                    text += getBetween(cm.doc, range.from, range.to).join(lineSep);
                  return;
                }
                if (node.getAttribute("contenteditable") == "false") return;
                for (var i = 0; i < node.childNodes.length; i++)
                  walk(node.childNodes[i]);
                if (/^(pre|div|p)$/i.test(node.nodeName))
                  closing = true;
              } else if (node.nodeType == 3) {
                var val = node.nodeValue;
                if (!val) return;
                if (closing) {
                  text += lineSep;
                  closing = false;
                }
                text += val;
              }
            }
            for (;;) {
              walk(from);
              if (from == to) break;
              from = from.nextSibling;
            }
            return text;
          }
        
          CodeMirror.inputStyles = {"textarea": TextareaInput, "contenteditable": ContentEditableInput};
        
          // SELECTION / CURSOR
        
          // Selection objects are immutable. A new one is created every time
          // the selection changes. A selection is one or more non-overlapping
          // (and non-touching) ranges, sorted, and an integer that indicates
          // which one is the primary selection (the one that's scrolled into
          // view, that getCursor returns, etc).
          function Selection(ranges, primIndex) {
            this.ranges = ranges;
            this.primIndex = primIndex;
          }
        
          Selection.prototype = {
            primary: function() { return this.ranges[this.primIndex]; },
            equals: function(other) {
              if (other == this) return true;
              if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) return false;
              for (var i = 0; i < this.ranges.length; i++) {
                var here = this.ranges[i], there = other.ranges[i];
                if (cmp(here.anchor, there.anchor) != 0 || cmp(here.head, there.head) != 0) return false;
              }
              return true;
            },
            deepCopy: function() {
              for (var out = [], i = 0; i < this.ranges.length; i++)
                out[i] = new Range(copyPos(this.ranges[i].anchor), copyPos(this.ranges[i].head));
              return new Selection(out, this.primIndex);
            },
            somethingSelected: function() {
              for (var i = 0; i < this.ranges.length; i++)
                if (!this.ranges[i].empty()) return true;
              return false;
            },
            contains: function(pos, end) {
              if (!end) end = pos;
              for (var i = 0; i < this.ranges.length; i++) {
                var range = this.ranges[i];
                if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0)
                  return i;
              }
              return -1;
            }
          };
        
          function Range(anchor, head) {
            this.anchor = anchor; this.head = head;
          }
        
          Range.prototype = {
            from: function() { return minPos(this.anchor, this.head); },
            to: function() { return maxPos(this.anchor, this.head); },
            empty: function() {
              return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch;
            }
          };
        
          // Take an unsorted, potentially overlapping set of ranges, and
          // build a selection out of it. 'Consumes' ranges array (modifying
          // it).
          function normalizeSelection(ranges, primIndex) {
            var prim = ranges[primIndex];
            ranges.sort(function(a, b) { return cmp(a.from(), b.from()); });
            primIndex = indexOf(ranges, prim);
            for (var i = 1; i < ranges.length; i++) {
              var cur = ranges[i], prev = ranges[i - 1];
              if (cmp(prev.to(), cur.from()) >= 0) {
                var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to());
                var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head;
                if (i <= primIndex) --primIndex;
                ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to));
              }
            }
            return new Selection(ranges, primIndex);
          }
        
          function simpleSelection(anchor, head) {
            return new Selection([new Range(anchor, head || anchor)], 0);
          }
        
          // Most of the external API clips given positions to make sure they
          // actually exist within the document.
          function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1));}
          function clipPos(doc, pos) {
            if (pos.line < doc.first) return Pos(doc.first, 0);
            var last = doc.first + doc.size - 1;
            if (pos.line > last) return Pos(last, getLine(doc, last).text.length);
            return clipToLen(pos, getLine(doc, pos.line).text.length);
          }
          function clipToLen(pos, linelen) {
            var ch = pos.ch;
            if (ch == null || ch > linelen) return Pos(pos.line, linelen);
            else if (ch < 0) return Pos(pos.line, 0);
            else return pos;
          }
          function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size;}
          function clipPosArray(doc, array) {
            for (var out = [], i = 0; i < array.length; i++) out[i] = clipPos(doc, array[i]);
            return out;
          }
        
          // SELECTION UPDATES
        
          // The 'scroll' parameter given to many of these indicated whether
          // the new cursor position should be scrolled into view after
          // modifying the selection.
        
          // If shift is held or the extend flag is set, extends a range to
          // include a given position (and optionally a second position).
          // Otherwise, simply returns the range between the given positions.
          // Used for cursor motion and such.
          function extendRange(doc, range, head, other) {
            if (doc.cm && doc.cm.display.shift || doc.extend) {
              var anchor = range.anchor;
              if (other) {
                var posBefore = cmp(head, anchor) < 0;
                if (posBefore != (cmp(other, anchor) < 0)) {
                  anchor = head;
                  head = other;
                } else if (posBefore != (cmp(head, other) < 0)) {
                  head = other;
                }
              }
              return new Range(anchor, head);
            } else {
              return new Range(other || head, head);
            }
          }
        
          // Extend the primary selection range, discard the rest.
          function extendSelection(doc, head, other, options) {
            setSelection(doc, new Selection([extendRange(doc, doc.sel.primary(), head, other)], 0), options);
          }
        
          // Extend all selections (pos is an array of selections with length
          // equal the number of selections)
          function extendSelections(doc, heads, options) {
            for (var out = [], i = 0; i < doc.sel.ranges.length; i++)
              out[i] = extendRange(doc, doc.sel.ranges[i], heads[i], null);
            var newSel = normalizeSelection(out, doc.sel.primIndex);
            setSelection(doc, newSel, options);
          }
        
          // Updates a single range in the selection.
          function replaceOneSelection(doc, i, range, options) {
            var ranges = doc.sel.ranges.slice(0);
            ranges[i] = range;
            setSelection(doc, normalizeSelection(ranges, doc.sel.primIndex), options);
          }
        
          // Reset the selection to a single range.
          function setSimpleSelection(doc, anchor, head, options) {
            setSelection(doc, simpleSelection(anchor, head), options);
          }
        
          // Give beforeSelectionChange handlers a change to influence a
          // selection update.
          function filterSelectionChange(doc, sel) {
            var obj = {
              ranges: sel.ranges,
              update: function(ranges) {
                this.ranges = [];
                for (var i = 0; i < ranges.length; i++)
                  this.ranges[i] = new Range(clipPos(doc, ranges[i].anchor),
                                             clipPos(doc, ranges[i].head));
              }
            };
            signal(doc, "beforeSelectionChange", doc, obj);
            if (doc.cm) signal(doc.cm, "beforeSelectionChange", doc.cm, obj);
            if (obj.ranges != sel.ranges) return normalizeSelection(obj.ranges, obj.ranges.length - 1);
            else return sel;
          }
        
          function setSelectionReplaceHistory(doc, sel, options) {
            var done = doc.history.done, last = lst(done);
            if (last && last.ranges) {
              done[done.length - 1] = sel;
              setSelectionNoUndo(doc, sel, options);
            } else {
              setSelection(doc, sel, options);
            }
          }
        
          // Set a new selection.
          function setSelection(doc, sel, options) {
            setSelectionNoUndo(doc, sel, options);
            addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options);
          }
        
          function setSelectionNoUndo(doc, sel, options) {
            if (hasHandler(doc, "beforeSelectionChange") || doc.cm && hasHandler(doc.cm, "beforeSelectionChange"))
              sel = filterSelectionChange(doc, sel);
        
            var bias = options && options.bias ||
              (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1);
            setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true));
        
            if (!(options && options.scroll === false) && doc.cm)
              ensureCursorVisible(doc.cm);
          }
        
          function setSelectionInner(doc, sel) {
            if (sel.equals(doc.sel)) return;
        
            doc.sel = sel;
        
            if (doc.cm) {
              doc.cm.curOp.updateInput = doc.cm.curOp.selectionChanged = true;
              signalCursorActivity(doc.cm);
            }
            signalLater(doc, "cursorActivity", doc);
          }
        
          // Verify that the selection does not partially select any atomic
          // marked ranges.
          function reCheckSelection(doc) {
            setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false), sel_dontScroll);
          }
        
          // Return a selection that does not partially select any atomic
          // ranges.
          function skipAtomicInSelection(doc, sel, bias, mayClear) {
            var out;
            for (var i = 0; i < sel.ranges.length; i++) {
              var range = sel.ranges[i];
              var newAnchor = skipAtomic(doc, range.anchor, bias, mayClear);
              var newHead = skipAtomic(doc, range.head, bias, mayClear);
              if (out || newAnchor != range.anchor || newHead != range.head) {
                if (!out) out = sel.ranges.slice(0, i);
                out[i] = new Range(newAnchor, newHead);
              }
            }
            return out ? normalizeSelection(out, sel.primIndex) : sel;
          }
        
          // Ensure a given position is not inside an atomic range.
          function skipAtomic(doc, pos, bias, mayClear) {
            var flipped = false, curPos = pos;
            var dir = bias || 1;
            doc.cantEdit = false;
            search: for (;;) {
              var line = getLine(doc, curPos.line);
              if (line.markedSpans) {
                for (var i = 0; i < line.markedSpans.length; ++i) {
                  var sp = line.markedSpans[i], m = sp.marker;
                  if ((sp.from == null || (m.inclusiveLeft ? sp.from <= curPos.ch : sp.from < curPos.ch)) &&
                      (sp.to == null || (m.inclusiveRight ? sp.to >= curPos.ch : sp.to > curPos.ch))) {
                    if (mayClear) {
                      signal(m, "beforeCursorEnter");
                      if (m.explicitlyCleared) {
                        if (!line.markedSpans) break;
                        else {--i; continue;}
                      }
                    }
                    if (!m.atomic) continue;
                    var newPos = m.find(dir < 0 ? -1 : 1);
                    if (cmp(newPos, curPos) == 0) {
                      newPos.ch += dir;
                      if (newPos.ch < 0) {
                        if (newPos.line > doc.first) newPos = clipPos(doc, Pos(newPos.line - 1));
                        else newPos = null;
                      } else if (newPos.ch > line.text.length) {
                        if (newPos.line < doc.first + doc.size - 1) newPos = Pos(newPos.line + 1, 0);
                        else newPos = null;
                      }
                      if (!newPos) {
                        if (flipped) {
                          // Driven in a corner -- no valid cursor position found at all
                          // -- try again *with* clearing, if we didn't already
                          if (!mayClear) return skipAtomic(doc, pos, bias, true);
                          // Otherwise, turn off editing until further notice, and return the start of the doc
                          doc.cantEdit = true;
                          return Pos(doc.first, 0);
                        }
                        flipped = true; newPos = pos; dir = -dir;
                      }
                    }
                    curPos = newPos;
                    continue search;
                  }
                }
              }
              return curPos;
            }
          }
        
          // SELECTION DRAWING
        
          function updateSelection(cm) {
            cm.display.input.showSelection(cm.display.input.prepareSelection());
          }
        
          function prepareSelection(cm, primary) {
            var doc = cm.doc, result = {};
            var curFragment = result.cursors = document.createDocumentFragment();
            var selFragment = result.selection = document.createDocumentFragment();
        
            for (var i = 0; i < doc.sel.ranges.length; i++) {
              if (primary === false && i == doc.sel.primIndex) continue;
              var range = doc.sel.ranges[i];
              var collapsed = range.empty();
              if (collapsed || cm.options.showCursorWhenSelecting)
                drawSelectionCursor(cm, range.head, curFragment);
              if (!collapsed)
                drawSelectionRange(cm, range, selFragment);
            }
            return result;
          }
        
          // Draws a cursor for the given range
          function drawSelectionCursor(cm, head, output) {
            var pos = cursorCoords(cm, head, "div", null, null, !cm.options.singleCursorHeightPerLine);
        
            var cursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor"));
            cursor.style.left = pos.left + "px";
            cursor.style.top = pos.top + "px";
            cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + "px";
        
            if (pos.other) {
              // Secondary cursor, shown when on a 'jump' in bi-directional text
              var otherCursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor CodeMirror-secondarycursor"));
              otherCursor.style.display = "";
              otherCursor.style.left = pos.other.left + "px";
              otherCursor.style.top = pos.other.top + "px";
              otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + "px";
            }
          }
        
          // Draws the given range as a highlighted selection
          function drawSelectionRange(cm, range, output) {
            var display = cm.display, doc = cm.doc;
            var fragment = document.createDocumentFragment();
            var padding = paddingH(cm.display), leftSide = padding.left;
            var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right;
        
            function add(left, top, width, bottom) {
              if (top < 0) top = 0;
              top = Math.round(top);
              bottom = Math.round(bottom);
              fragment.appendChild(elt("div", null, "CodeMirror-selected", "position: absolute; left: " + left +
                                       "px; top: " + top + "px; width: " + (width == null ? rightSide - left : width) +
                                       "px; height: " + (bottom - top) + "px"));
            }
        
            function drawForLine(line, fromArg, toArg) {
              var lineObj = getLine(doc, line);
              var lineLen = lineObj.text.length;
              var start, end;
              function coords(ch, bias) {
                return charCoords(cm, Pos(line, ch), "div", lineObj, bias);
              }
        
              iterateBidiSections(getOrder(lineObj), fromArg || 0, toArg == null ? lineLen : toArg, function(from, to, dir) {
                var leftPos = coords(from, "left"), rightPos, left, right;
                if (from == to) {
                  rightPos = leftPos;
                  left = right = leftPos.left;
                } else {
                  rightPos = coords(to - 1, "right");
                  if (dir == "rtl") { var tmp = leftPos; leftPos = rightPos; rightPos = tmp; }
                  left = leftPos.left;
                  right = rightPos.right;
                }
                if (fromArg == null && from == 0) left = leftSide;
                if (rightPos.top - leftPos.top > 3) { // Different lines, draw top part
                  add(left, leftPos.top, null, leftPos.bottom);
                  left = leftSide;
                  if (leftPos.bottom < rightPos.top) add(left, leftPos.bottom, null, rightPos.top);
                }
                if (toArg == null && to == lineLen) right = rightSide;
                if (!start || leftPos.top < start.top || leftPos.top == start.top && leftPos.left < start.left)
                  start = leftPos;
                if (!end || rightPos.bottom > end.bottom || rightPos.bottom == end.bottom && rightPos.right > end.right)
                  end = rightPos;
                if (left < leftSide + 1) left = leftSide;
                add(left, rightPos.top, right - left, rightPos.bottom);
              });
              return {start: start, end: end};
            }
        
            var sFrom = range.from(), sTo = range.to();
            if (sFrom.line == sTo.line) {
              drawForLine(sFrom.line, sFrom.ch, sTo.ch);
            } else {
              var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line);
              var singleVLine = visualLine(fromLine) == visualLine(toLine);
              var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end;
              var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start;
              if (singleVLine) {
                if (leftEnd.top < rightStart.top - 2) {
                  add(leftEnd.right, leftEnd.top, null, leftEnd.bottom);
                  add(leftSide, rightStart.top, rightStart.left, rightStart.bottom);
                } else {
                  add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom);
                }
              }
              if (leftEnd.bottom < rightStart.top)
                add(leftSide, leftEnd.bottom, null, rightStart.top);
            }
        
            output.appendChild(fragment);
          }
        
          // Cursor-blinking
          function restartBlink(cm) {
            if (!cm.state.focused) return;
            var display = cm.display;
            clearInterval(display.blinker);
            var on = true;
            display.cursorDiv.style.visibility = "";
            if (cm.options.cursorBlinkRate > 0)
              display.blinker = setInterval(function() {
                display.cursorDiv.style.visibility = (on = !on) ? "" : "hidden";
              }, cm.options.cursorBlinkRate);
            else if (cm.options.cursorBlinkRate < 0)
              display.cursorDiv.style.visibility = "hidden";
          }
        
          // HIGHLIGHT WORKER
        
          function startWorker(cm, time) {
            if (cm.doc.mode.startState && cm.doc.frontier < cm.display.viewTo)
              cm.state.highlight.set(time, bind(highlightWorker, cm));
          }
        
          function highlightWorker(cm) {
            var doc = cm.doc;
            if (doc.frontier < doc.first) doc.frontier = doc.first;
            if (doc.frontier >= cm.display.viewTo) return;
            var end = +new Date + cm.options.workTime;
            var state = copyState(doc.mode, getStateBefore(cm, doc.frontier));
            var changedLines = [];
        
            doc.iter(doc.frontier, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function(line) {
              if (doc.frontier >= cm.display.viewFrom) { // Visible
                var oldStyles = line.styles, tooLong = line.text.length > cm.options.maxHighlightLength;
                var highlighted = highlightLine(cm, line, tooLong ? copyState(doc.mode, state) : state, true);
                line.styles = highlighted.styles;
                var oldCls = line.styleClasses, newCls = highlighted.classes;
                if (newCls) line.styleClasses = newCls;
                else if (oldCls) line.styleClasses = null;
                var ischange = !oldStyles || oldStyles.length != line.styles.length ||
                  oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass);
                for (var i = 0; !ischange && i < oldStyles.length; ++i) ischange = oldStyles[i] != line.styles[i];
                if (ischange) changedLines.push(doc.frontier);
                line.stateAfter = tooLong ? state : copyState(doc.mode, state);
              } else {
                if (line.text.length <= cm.options.maxHighlightLength)
                  processLine(cm, line.text, state);
                line.stateAfter = doc.frontier % 5 == 0 ? copyState(doc.mode, state) : null;
              }
              ++doc.frontier;
              if (+new Date > end) {
                startWorker(cm, cm.options.workDelay);
                return true;
              }
            });
            if (changedLines.length) runInOp(cm, function() {
              for (var i = 0; i < changedLines.length; i++)
                regLineChange(cm, changedLines[i], "text");
            });
          }
        
          // Finds the line to start with when starting a parse. Tries to
          // find a line with a stateAfter, so that it can start with a
          // valid state. If that fails, it returns the line with the
          // smallest indentation, which tends to need the least context to
          // parse correctly.
          function findStartLine(cm, n, precise) {
            var minindent, minline, doc = cm.doc;
            var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);
            for (var search = n; search > lim; --search) {
              if (search <= doc.first) return doc.first;
              var line = getLine(doc, search - 1);
              if (line.stateAfter && (!precise || search <= doc.frontier)) return search;
              var indented = countColumn(line.text, null, cm.options.tabSize);
              if (minline == null || minindent > indented) {
                minline = search - 1;
                minindent = indented;
              }
            }
            return minline;
          }
        
          function getStateBefore(cm, n, precise) {
            var doc = cm.doc, display = cm.display;
            if (!doc.mode.startState) return true;
            var pos = findStartLine(cm, n, precise), state = pos > doc.first && getLine(doc, pos-1).stateAfter;
            if (!state) state = startState(doc.mode);
            else state = copyState(doc.mode, state);
            doc.iter(pos, n, function(line) {
              processLine(cm, line.text, state);
              var save = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo;
              line.stateAfter = save ? copyState(doc.mode, state) : null;
              ++pos;
            });
            if (precise) doc.frontier = pos;
            return state;
          }
        
          // POSITION MEASUREMENT
        
          function paddingTop(display) {return display.lineSpace.offsetTop;}
          function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight;}
          function paddingH(display) {
            if (display.cachedPaddingH) return display.cachedPaddingH;
            var e = removeChildrenAndAdd(display.measure, elt("pre", "x"));
            var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle;
            var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)};
            if (!isNaN(data.left) && !isNaN(data.right)) display.cachedPaddingH = data;
            return data;
          }
        
          function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth; }
          function displayWidth(cm) {
            return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth;
          }
          function displayHeight(cm) {
            return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight;
          }
        
          // Ensure the lineView.wrapping.heights array is populated. This is
          // an array of bottom offsets for the lines that make up a drawn
          // line. When lineWrapping is on, there might be more than one
          // height.
          function ensureLineHeights(cm, lineView, rect) {
            var wrapping = cm.options.lineWrapping;
            var curWidth = wrapping && displayWidth(cm);
            if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) {
              var heights = lineView.measure.heights = [];
              if (wrapping) {
                lineView.measure.width = curWidth;
                var rects = lineView.text.firstChild.getClientRects();
                for (var i = 0; i < rects.length - 1; i++) {
                  var cur = rects[i], next = rects[i + 1];
                  if (Math.abs(cur.bottom - next.bottom) > 2)
                    heights.push((cur.bottom + next.top) / 2 - rect.top);
                }
              }
              heights.push(rect.bottom - rect.top);
            }
          }
        
          // Find a line map (mapping character offsets to text nodes) and a
          // measurement cache for the given line number. (A line view might
          // contain multiple lines when collapsed ranges are present.)
          function mapFromLineView(lineView, line, lineN) {
            if (lineView.line == line)
              return {map: lineView.measure.map, cache: lineView.measure.cache};
            for (var i = 0; i < lineView.rest.length; i++)
              if (lineView.rest[i] == line)
                return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]};
            for (var i = 0; i < lineView.rest.length; i++)
              if (lineNo(lineView.rest[i]) > lineN)
                return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i], before: true};
          }
        
          // Render a line into the hidden node display.externalMeasured. Used
          // when measurement is needed for a line that's not in the viewport.
          function updateExternalMeasurement(cm, line) {
            line = visualLine(line);
            var lineN = lineNo(line);
            var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN);
            view.lineN = lineN;
            var built = view.built = buildLineContent(cm, view);
            view.text = built.pre;
            removeChildrenAndAdd(cm.display.lineMeasure, built.pre);
            return view;
          }
        
          // Get a {top, bottom, left, right} box (in line-local coordinates)
          // for a given character.
          function measureChar(cm, line, ch, bias) {
            return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias);
          }
        
          // Find a line view that corresponds to the given line number.
          function findViewForLine(cm, lineN) {
            if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo)
              return cm.display.view[findViewIndex(cm, lineN)];
            var ext = cm.display.externalMeasured;
            if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size)
              return ext;
          }
        
          // Measurement can be split in two steps, the set-up work that
          // applies to the whole line, and the measurement of the actual
          // character. Functions like coordsChar, that need to do a lot of
          // measurements in a row, can thus ensure that the set-up work is
          // only done once.
          function prepareMeasureForLine(cm, line) {
            var lineN = lineNo(line);
            var view = findViewForLine(cm, lineN);
            if (view && !view.text) {
              view = null;
            } else if (view && view.changes) {
              updateLineForChanges(cm, view, lineN, getDimensions(cm));
              cm.curOp.forceUpdate = true;
            }
            if (!view)
              view = updateExternalMeasurement(cm, line);
        
            var info = mapFromLineView(view, line, lineN);
            return {
              line: line, view: view, rect: null,
              map: info.map, cache: info.cache, before: info.before,
              hasHeights: false
            };
          }
        
          // Given a prepared measurement object, measures the position of an
          // actual character (or fetches it from the cache).
          function measureCharPrepared(cm, prepared, ch, bias, varHeight) {
            if (prepared.before) ch = -1;
            var key = ch + (bias || ""), found;
            if (prepared.cache.hasOwnProperty(key)) {
              found = prepared.cache[key];
            } else {
              if (!prepared.rect)
                prepared.rect = prepared.view.text.getBoundingClientRect();
              if (!prepared.hasHeights) {
                ensureLineHeights(cm, prepared.view, prepared.rect);
                prepared.hasHeights = true;
              }
              found = measureCharInner(cm, prepared, ch, bias);
              if (!found.bogus) prepared.cache[key] = found;
            }
            return {left: found.left, right: found.right,
                    top: varHeight ? found.rtop : found.top,
                    bottom: varHeight ? found.rbottom : found.bottom};
          }
        
          var nullRect = {left: 0, right: 0, top: 0, bottom: 0};
        
          function nodeAndOffsetInLineMap(map, ch, bias) {
            var node, start, end, collapse;
            // First, search the line map for the text node corresponding to,
            // or closest to, the target character.
            for (var i = 0; i < map.length; i += 3) {
              var mStart = map[i], mEnd = map[i + 1];
              if (ch < mStart) {
                start = 0; end = 1;
                collapse = "left";
              } else if (ch < mEnd) {
                start = ch - mStart;
                end = start + 1;
              } else if (i == map.length - 3 || ch == mEnd && map[i + 3] > ch) {
                end = mEnd - mStart;
                start = end - 1;
                if (ch >= mEnd) collapse = "right";
              }
              if (start != null) {
                node = map[i + 2];
                if (mStart == mEnd && bias == (node.insertLeft ? "left" : "right"))
                  collapse = bias;
                if (bias == "left" && start == 0)
                  while (i && map[i - 2] == map[i - 3] && map[i - 1].insertLeft) {
                    node = map[(i -= 3) + 2];
                    collapse = "left";
                  }
                if (bias == "right" && start == mEnd - mStart)
                  while (i < map.length - 3 && map[i + 3] == map[i + 4] && !map[i + 5].insertLeft) {
                    node = map[(i += 3) + 2];
                    collapse = "right";
                  }
                break;
              }
            }
            return {node: node, start: start, end: end, collapse: collapse, coverStart: mStart, coverEnd: mEnd};
          }
        
          function measureCharInner(cm, prepared, ch, bias) {
            var place = nodeAndOffsetInLineMap(prepared.map, ch, bias);
            var node = place.node, start = place.start, end = place.end, collapse = place.collapse;
        
            var rect;
            if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates.
              for (var i = 0; i < 4; i++) { // Retry a maximum of 4 times when nonsense rectangles are returned
                while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) --start;
                while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) ++end;
                if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart) {
                  rect = node.parentNode.getBoundingClientRect();
                } else if (ie && cm.options.lineWrapping) {
                  var rects = range(node, start, end).getClientRects();
                  if (rects.length)
                    rect = rects[bias == "right" ? rects.length - 1 : 0];
                  else
                    rect = nullRect;
                } else {
                  rect = range(node, start, end).getBoundingClientRect() || nullRect;
                }
                if (rect.left || rect.right || start == 0) break;
                end = start;
                start = start - 1;
                collapse = "right";
              }
              if (ie && ie_version < 11) rect = maybeUpdateRectForZooming(cm.display.measure, rect);
            } else { // If it is a widget, simply get the box for the whole widget.
              if (start > 0) collapse = bias = "right";
              var rects;
              if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1)
                rect = rects[bias == "right" ? rects.length - 1 : 0];
              else
                rect = node.getBoundingClientRect();
            }
            if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) {
              var rSpan = node.parentNode.getClientRects()[0];
              if (rSpan)
                rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom};
              else
                rect = nullRect;
            }
        
            var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top;
            var mid = (rtop + rbot) / 2;
            var heights = prepared.view.measure.heights;
            for (var i = 0; i < heights.length - 1; i++)
              if (mid < heights[i]) break;
            var top = i ? heights[i - 1] : 0, bot = heights[i];
            var result = {left: (collapse == "right" ? rect.right : rect.left) - prepared.rect.left,
                          right: (collapse == "left" ? rect.left : rect.right) - prepared.rect.left,
                          top: top, bottom: bot};
            if (!rect.left && !rect.right) result.bogus = true;
            if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; }
        
            return result;
          }
        
          // Work around problem with bounding client rects on ranges being
          // returned incorrectly when zoomed on IE10 and below.
          function maybeUpdateRectForZooming(measure, rect) {
            if (!window.screen || screen.logicalXDPI == null ||
                screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure))
              return rect;
            var scaleX = screen.logicalXDPI / screen.deviceXDPI;
            var scaleY = screen.logicalYDPI / screen.deviceYDPI;
            return {left: rect.left * scaleX, right: rect.right * scaleX,
                    top: rect.top * scaleY, bottom: rect.bottom * scaleY};
          }
        
          function clearLineMeasurementCacheFor(lineView) {
            if (lineView.measure) {
              lineView.measure.cache = {};
              lineView.measure.heights = null;
              if (lineView.rest) for (var i = 0; i < lineView.rest.length; i++)
                lineView.measure.caches[i] = {};
            }
          }
        
          function clearLineMeasurementCache(cm) {
            cm.display.externalMeasure = null;
            removeChildren(cm.display.lineMeasure);
            for (var i = 0; i < cm.display.view.length; i++)
              clearLineMeasurementCacheFor(cm.display.view[i]);
          }
        
          function clearCaches(cm) {
            clearLineMeasurementCache(cm);
            cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null;
            if (!cm.options.lineWrapping) cm.display.maxLineChanged = true;
            cm.display.lineNumChars = null;
          }
        
          function pageScrollX() { return window.pageXOffset || (document.documentElement || document.body).scrollLeft; }
          function pageScrollY() { return window.pageYOffset || (document.documentElement || document.body).scrollTop; }
        
          // Converts a {top, bottom, left, right} box from line-local
          // coordinates into another coordinate system. Context may be one of
          // "line", "div" (display.lineDiv), "local"/null (editor), "window",
          // or "page".
          function intoCoordSystem(cm, lineObj, rect, context) {
            if (lineObj.widgets) for (var i = 0; i < lineObj.widgets.length; ++i) if (lineObj.widgets[i].above) {
              var size = widgetHeight(lineObj.widgets[i]);
              rect.top += size; rect.bottom += size;
            }
            if (context == "line") return rect;
            if (!context) context = "local";
            var yOff = heightAtLine(lineObj);
            if (context == "local") yOff += paddingTop(cm.display);
            else yOff -= cm.display.viewOffset;
            if (context == "page" || context == "window") {
              var lOff = cm.display.lineSpace.getBoundingClientRect();
              yOff += lOff.top + (context == "window" ? 0 : pageScrollY());
              var xOff = lOff.left + (context == "window" ? 0 : pageScrollX());
              rect.left += xOff; rect.right += xOff;
            }
            rect.top += yOff; rect.bottom += yOff;
            return rect;
          }
        
          // Coverts a box from "div" coords to another coordinate system.
          // Context may be "window", "page", "div", or "local"/null.
          function fromCoordSystem(cm, coords, context) {
            if (context == "div") return coords;
            var left = coords.left, top = coords.top;
            // First move into "page" coordinate system
            if (context == "page") {
              left -= pageScrollX();
              top -= pageScrollY();
            } else if (context == "local" || !context) {
              var localBox = cm.display.sizer.getBoundingClientRect();
              left += localBox.left;
              top += localBox.top;
            }
        
            var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect();
            return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top};
          }
        
          function charCoords(cm, pos, context, lineObj, bias) {
            if (!lineObj) lineObj = getLine(cm.doc, pos.line);
            return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context);
          }
        
          // Returns a box for a given cursor position, which may have an
          // 'other' property containing the position of the secondary cursor
          // on a bidi boundary.
          function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) {
            lineObj = lineObj || getLine(cm.doc, pos.line);
            if (!preparedMeasure) preparedMeasure = prepareMeasureForLine(cm, lineObj);
            function get(ch, right) {
              var m = measureCharPrepared(cm, preparedMeasure, ch, right ? "right" : "left", varHeight);
              if (right) m.left = m.right; else m.right = m.left;
              return intoCoordSystem(cm, lineObj, m, context);
            }
            function getBidi(ch, partPos) {
              var part = order[partPos], right = part.level % 2;
              if (ch == bidiLeft(part) && partPos && part.level < order[partPos - 1].level) {
                part = order[--partPos];
                ch = bidiRight(part) - (part.level % 2 ? 0 : 1);
                right = true;
              } else if (ch == bidiRight(part) && partPos < order.length - 1 && part.level < order[partPos + 1].level) {
                part = order[++partPos];
                ch = bidiLeft(part) - part.level % 2;
                right = false;
              }
              if (right && ch == part.to && ch > part.from) return get(ch - 1);
              return get(ch, right);
            }
            var order = getOrder(lineObj), ch = pos.ch;
            if (!order) return get(ch);
            var partPos = getBidiPartAt(order, ch);
            var val = getBidi(ch, partPos);
            if (bidiOther != null) val.other = getBidi(ch, bidiOther);
            return val;
          }
        
          // Used to cheaply estimate the coordinates for a position. Used for
          // intermediate scroll updates.
          function estimateCoords(cm, pos) {
            var left = 0, pos = clipPos(cm.doc, pos);
            if (!cm.options.lineWrapping) left = charWidth(cm.display) * pos.ch;
            var lineObj = getLine(cm.doc, pos.line);
            var top = heightAtLine(lineObj) + paddingTop(cm.display);
            return {left: left, right: left, top: top, bottom: top + lineObj.height};
          }
        
          // Positions returned by coordsChar contain some extra information.
          // xRel is the relative x position of the input coordinates compared
          // to the found position (so xRel > 0 means the coordinates are to
          // the right of the character position, for example). When outside
          // is true, that means the coordinates lie outside the line's
          // vertical range.
          function PosWithInfo(line, ch, outside, xRel) {
            var pos = Pos(line, ch);
            pos.xRel = xRel;
            if (outside) pos.outside = true;
            return pos;
          }
        
          // Compute the character position closest to the given coordinates.
          // Input must be lineSpace-local ("div" coordinate system).
          function coordsChar(cm, x, y) {
            var doc = cm.doc;
            y += cm.display.viewOffset;
            if (y < 0) return PosWithInfo(doc.first, 0, true, -1);
            var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1;
            if (lineN > last)
              return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, true, 1);
            if (x < 0) x = 0;
        
            var lineObj = getLine(doc, lineN);
            for (;;) {
              var found = coordsCharInner(cm, lineObj, lineN, x, y);
              var merged = collapsedSpanAtEnd(lineObj);
              var mergedPos = merged && merged.find(0, true);
              if (merged && (found.ch > mergedPos.from.ch || found.ch == mergedPos.from.ch && found.xRel > 0))
                lineN = lineNo(lineObj = mergedPos.to.line);
              else
                return found;
            }
          }
        
          function coordsCharInner(cm, lineObj, lineNo, x, y) {
            var innerOff = y - heightAtLine(lineObj);
            var wrongLine = false, adjust = 2 * cm.display.wrapper.clientWidth;
            var preparedMeasure = prepareMeasureForLine(cm, lineObj);
        
            function getX(ch) {
              var sp = cursorCoords(cm, Pos(lineNo, ch), "line", lineObj, preparedMeasure);
              wrongLine = true;
              if (innerOff > sp.bottom) return sp.left - adjust;
              else if (innerOff < sp.top) return sp.left + adjust;
              else wrongLine = false;
              return sp.left;
            }
        
            var bidi = getOrder(lineObj), dist = lineObj.text.length;
            var from = lineLeft(lineObj), to = lineRight(lineObj);
            var fromX = getX(from), fromOutside = wrongLine, toX = getX(to), toOutside = wrongLine;
        
            if (x > toX) return PosWithInfo(lineNo, to, toOutside, 1);
            // Do a binary search between these bounds.
            for (;;) {
              if (bidi ? to == from || to == moveVisually(lineObj, from, 1) : to - from <= 1) {
                var ch = x < fromX || x - fromX <= toX - x ? from : to;
                var xDiff = x - (ch == from ? fromX : toX);
                while (isExtendingChar(lineObj.text.charAt(ch))) ++ch;
                var pos = PosWithInfo(lineNo, ch, ch == from ? fromOutside : toOutside,
                                      xDiff < -1 ? -1 : xDiff > 1 ? 1 : 0);
                return pos;
              }
              var step = Math.ceil(dist / 2), middle = from + step;
              if (bidi) {
                middle = from;
                for (var i = 0; i < step; ++i) middle = moveVisually(lineObj, middle, 1);
              }
              var middleX = getX(middle);
              if (middleX > x) {to = middle; toX = middleX; if (toOutside = wrongLine) toX += 1000; dist = step;}
              else {from = middle; fromX = middleX; fromOutside = wrongLine; dist -= step;}
            }
          }
        
          var measureText;
          // Compute the default text height.
          function textHeight(display) {
            if (display.cachedTextHeight != null) return display.cachedTextHeight;
            if (measureText == null) {
              measureText = elt("pre");
              // Measure a bunch of lines, for browsers that compute
              // fractional heights.
              for (var i = 0; i < 49; ++i) {
                measureText.appendChild(document.createTextNode("x"));
                measureText.appendChild(elt("br"));
              }
              measureText.appendChild(document.createTextNode("x"));
            }
            removeChildrenAndAdd(display.measure, measureText);
            var height = measureText.offsetHeight / 50;
            if (height > 3) display.cachedTextHeight = height;
            removeChildren(display.measure);
            return height || 1;
          }
        
          // Compute the default character width.
          function charWidth(display) {
            if (display.cachedCharWidth != null) return display.cachedCharWidth;
            var anchor = elt("span", "xxxxxxxxxx");
            var pre = elt("pre", [anchor]);
            removeChildrenAndAdd(display.measure, pre);
            var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10;
            if (width > 2) display.cachedCharWidth = width;
            return width || 10;
          }
        
          // OPERATIONS
        
          // Operations are used to wrap a series of changes to the editor
          // state in such a way that each change won't have to update the
          // cursor and display (which would be awkward, slow, and
          // error-prone). Instead, display updates are batched and then all
          // combined and executed at once.
        
          var operationGroup = null;
        
          var nextOpId = 0;
          // Start a new operation.
          function startOperation(cm) {
            cm.curOp = {
              cm: cm,
              viewChanged: false,      // Flag that indicates that lines might need to be redrawn
              startHeight: cm.doc.height, // Used to detect need to update scrollbar
              forceUpdate: false,      // Used to force a redraw
              updateInput: null,       // Whether to reset the input textarea
              typing: false,           // Whether this reset should be careful to leave existing text (for compositing)
              changeObjs: null,        // Accumulated changes, for firing change events
              cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on
              cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already
              selectionChanged: false, // Whether the selection needs to be redrawn
              updateMaxLine: false,    // Set when the widest line needs to be determined anew
              scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet
              scrollToPos: null,       // Used to scroll to a specific position
              focus: false,
              id: ++nextOpId           // Unique ID
            };
            if (operationGroup) {
              operationGroup.ops.push(cm.curOp);
            } else {
              cm.curOp.ownsGroup = operationGroup = {
                ops: [cm.curOp],
                delayedCallbacks: []
              };
            }
          }
        
          function fireCallbacksForOps(group) {
            // Calls delayed callbacks and cursorActivity handlers until no
            // new ones appear
            var callbacks = group.delayedCallbacks, i = 0;
            do {
              for (; i < callbacks.length; i++)
                callbacks[i].call(null);
              for (var j = 0; j < group.ops.length; j++) {
                var op = group.ops[j];
                if (op.cursorActivityHandlers)
                  while (op.cursorActivityCalled < op.cursorActivityHandlers.length)
                    op.cursorActivityHandlers[op.cursorActivityCalled++].call(null, op.cm);
              }
            } while (i < callbacks.length);
          }
        
          // Finish an operation, updating the display and signalling delayed events
          function endOperation(cm) {
            var op = cm.curOp, group = op.ownsGroup;
            if (!group) return;
        
            try { fireCallbacksForOps(group); }
            finally {
              operationGroup = null;
              for (var i = 0; i < group.ops.length; i++)
                group.ops[i].cm.curOp = null;
              endOperations(group);
            }
          }
        
          // The DOM updates done when an operation finishes are batched so
          // that the minimum number of relayouts are required.
          function endOperations(group) {
            var ops = group.ops;
            for (var i = 0; i < ops.length; i++) // Read DOM
              endOperation_R1(ops[i]);
            for (var i = 0; i < ops.length; i++) // Write DOM (maybe)
              endOperation_W1(ops[i]);
            for (var i = 0; i < ops.length; i++) // Read DOM
              endOperation_R2(ops[i]);
            for (var i = 0; i < ops.length; i++) // Write DOM (maybe)
              endOperation_W2(ops[i]);
            for (var i = 0; i < ops.length; i++) // Read DOM
              endOperation_finish(ops[i]);
          }
        
          function endOperation_R1(op) {
            var cm = op.cm, display = cm.display;
            maybeClipScrollbars(cm);
            if (op.updateMaxLine) findMaxLine(cm);
        
            op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null ||
              op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom ||
                                 op.scrollToPos.to.line >= display.viewTo) ||
              display.maxLineChanged && cm.options.lineWrapping;
            op.update = op.mustUpdate &&
              new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate);
          }
        
          function endOperation_W1(op) {
            op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update);
          }
        
          function endOperation_R2(op) {
            var cm = op.cm, display = cm.display;
            if (op.updatedDisplay) updateHeightsInViewport(cm);
        
            op.barMeasure = measureForScrollbars(cm);
        
            // If the max line changed since it was last measured, measure it,
            // and ensure the document's width matches it.
            // updateDisplay_W2 will use these properties to do the actual resizing
            if (display.maxLineChanged && !cm.options.lineWrapping) {
              op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3;
              cm.display.sizerWidth = op.adjustWidthTo;
              op.barMeasure.scrollWidth =
                Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth);
              op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm));
            }
        
            if (op.updatedDisplay || op.selectionChanged)
              op.preparedSelection = display.input.prepareSelection();
          }
        
          function endOperation_W2(op) {
            var cm = op.cm;
        
            if (op.adjustWidthTo != null) {
              cm.display.sizer.style.minWidth = op.adjustWidthTo + "px";
              if (op.maxScrollLeft < cm.doc.scrollLeft)
                setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true);
              cm.display.maxLineChanged = false;
            }
        
            if (op.preparedSelection)
              cm.display.input.showSelection(op.preparedSelection);
            if (op.updatedDisplay)
              setDocumentHeight(cm, op.barMeasure);
            if (op.updatedDisplay || op.startHeight != cm.doc.height)
              updateScrollbars(cm, op.barMeasure);
        
            if (op.selectionChanged) restartBlink(cm);
        
            if (cm.state.focused && op.updateInput)
              cm.display.input.reset(op.typing);
            if (op.focus && op.focus == activeElt()) ensureFocus(op.cm);
          }
        
          function endOperation_finish(op) {
            var cm = op.cm, display = cm.display, doc = cm.doc;
        
            if (op.updatedDisplay) postUpdateDisplay(cm, op.update);
        
            // Abort mouse wheel delta measurement, when scrolling explicitly
            if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos))
              display.wheelStartX = display.wheelStartY = null;
        
            // Propagate the scroll position to the actual DOM scroller
            if (op.scrollTop != null && (display.scroller.scrollTop != op.scrollTop || op.forceScroll)) {
              doc.scrollTop = Math.max(0, Math.min(display.scroller.scrollHeight - display.scroller.clientHeight, op.scrollTop));
              display.scrollbars.setScrollTop(doc.scrollTop);
              display.scroller.scrollTop = doc.scrollTop;
            }
            if (op.scrollLeft != null && (display.scroller.scrollLeft != op.scrollLeft || op.forceScroll)) {
              doc.scrollLeft = Math.max(0, Math.min(display.scroller.scrollWidth - displayWidth(cm), op.scrollLeft));
              display.scrollbars.setScrollLeft(doc.scrollLeft);
              display.scroller.scrollLeft = doc.scrollLeft;
              alignHorizontally(cm);
            }
            // If we need to scroll a specific position into view, do so.
            if (op.scrollToPos) {
              var coords = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from),
                                             clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin);
              if (op.scrollToPos.isCursor && cm.state.focused) maybeScrollWindow(cm, coords);
            }
        
            // Fire events for markers that are hidden/unidden by editing or
            // undoing
            var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers;
            if (hidden) for (var i = 0; i < hidden.length; ++i)
              if (!hidden[i].lines.length) signal(hidden[i], "hide");
            if (unhidden) for (var i = 0; i < unhidden.length; ++i)
              if (unhidden[i].lines.length) signal(unhidden[i], "unhide");
        
            if (display.wrapper.offsetHeight)
              doc.scrollTop = cm.display.scroller.scrollTop;
        
            // Fire change events, and delayed event handlers
            if (op.changeObjs)
              signal(cm, "changes", cm, op.changeObjs);
            if (op.update)
              op.update.finish();
          }
        
          // Run the given function in an operation
          function runInOp(cm, f) {
            if (cm.curOp) return f();
            startOperation(cm);
            try { return f(); }
            finally { endOperation(cm); }
          }
          // Wraps a function in an operation. Returns the wrapped function.
          function operation(cm, f) {
            return function() {
              if (cm.curOp) return f.apply(cm, arguments);
              startOperation(cm);
              try { return f.apply(cm, arguments); }
              finally { endOperation(cm); }
            };
          }
          // Used to add methods to editor and doc instances, wrapping them in
          // operations.
          function methodOp(f) {
            return function() {
              if (this.curOp) return f.apply(this, arguments);
              startOperation(this);
              try { return f.apply(this, arguments); }
              finally { endOperation(this); }
            };
          }
          function docMethodOp(f) {
            return function() {
              var cm = this.cm;
              if (!cm || cm.curOp) return f.apply(this, arguments);
              startOperation(cm);
              try { return f.apply(this, arguments); }
              finally { endOperation(cm); }
            };
          }
        
          // VIEW TRACKING
        
          // These objects are used to represent the visible (currently drawn)
          // part of the document. A LineView may correspond to multiple
          // logical lines, if those are connected by collapsed ranges.
          function LineView(doc, line, lineN) {
            // The starting line
            this.line = line;
            // Continuing lines, if any
            this.rest = visualLineContinued(line);
            // Number of logical lines in this visual line
            this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1;
            this.node = this.text = null;
            this.hidden = lineIsHidden(doc, line);
          }
        
          // Create a range of LineView objects for the given lines.
          function buildViewArray(cm, from, to) {
            var array = [], nextPos;
            for (var pos = from; pos < to; pos = nextPos) {
              var view = new LineView(cm.doc, getLine(cm.doc, pos), pos);
              nextPos = pos + view.size;
              array.push(view);
            }
            return array;
          }
        
          // Updates the display.view data structure for a given change to the
          // document. From and to are in pre-change coordinates. Lendiff is
          // the amount of lines added or subtracted by the change. This is
          // used for changes that span multiple lines, or change the way
          // lines are divided into visual lines. regLineChange (below)
          // registers single-line changes.
          function regChange(cm, from, to, lendiff) {
            if (from == null) from = cm.doc.first;
            if (to == null) to = cm.doc.first + cm.doc.size;
            if (!lendiff) lendiff = 0;
        
            var display = cm.display;
            if (lendiff && to < display.viewTo &&
                (display.updateLineNumbers == null || display.updateLineNumbers > from))
              display.updateLineNumbers = from;
        
            cm.curOp.viewChanged = true;
        
            if (from >= display.viewTo) { // Change after
              if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo)
                resetView(cm);
            } else if (to <= display.viewFrom) { // Change before
              if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) {
                resetView(cm);
              } else {
                display.viewFrom += lendiff;
                display.viewTo += lendiff;
              }
            } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap
              resetView(cm);
            } else if (from <= display.viewFrom) { // Top overlap
              var cut = viewCuttingPoint(cm, to, to + lendiff, 1);
              if (cut) {
                display.view = display.view.slice(cut.index);
                display.viewFrom = cut.lineN;
                display.viewTo += lendiff;
              } else {
                resetView(cm);
              }
            } else if (to >= display.viewTo) { // Bottom overlap
              var cut = viewCuttingPoint(cm, from, from, -1);
              if (cut) {
                display.view = display.view.slice(0, cut.index);
                display.viewTo = cut.lineN;
              } else {
                resetView(cm);
              }
            } else { // Gap in the middle
              var cutTop = viewCuttingPoint(cm, from, from, -1);
              var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1);
              if (cutTop && cutBot) {
                display.view = display.view.slice(0, cutTop.index)
                  .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN))
                  .concat(display.view.slice(cutBot.index));
                display.viewTo += lendiff;
              } else {
                resetView(cm);
              }
            }
        
            var ext = display.externalMeasured;
            if (ext) {
              if (to < ext.lineN)
                ext.lineN += lendiff;
              else if (from < ext.lineN + ext.size)
                display.externalMeasured = null;
            }
          }
        
          // Register a change to a single line. Type must be one of "text",
          // "gutter", "class", "widget"
          function regLineChange(cm, line, type) {
            cm.curOp.viewChanged = true;
            var display = cm.display, ext = cm.display.externalMeasured;
            if (ext && line >= ext.lineN && line < ext.lineN + ext.size)
              display.externalMeasured = null;
        
            if (line < display.viewFrom || line >= display.viewTo) return;
            var lineView = display.view[findViewIndex(cm, line)];
            if (lineView.node == null) return;
            var arr = lineView.changes || (lineView.changes = []);
            if (indexOf(arr, type) == -1) arr.push(type);
          }
        
          // Clear the view.
          function resetView(cm) {
            cm.display.viewFrom = cm.display.viewTo = cm.doc.first;
            cm.display.view = [];
            cm.display.viewOffset = 0;
          }
        
          // Find the view element corresponding to a given line. Return null
          // when the line isn't visible.
          function findViewIndex(cm, n) {
            if (n >= cm.display.viewTo) return null;
            n -= cm.display.viewFrom;
            if (n < 0) return null;
            var view = cm.display.view;
            for (var i = 0; i < view.length; i++) {
              n -= view[i].size;
              if (n < 0) return i;
            }
          }
        
          function viewCuttingPoint(cm, oldN, newN, dir) {
            var index = findViewIndex(cm, oldN), diff, view = cm.display.view;
            if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size)
              return {index: index, lineN: newN};
            for (var i = 0, n = cm.display.viewFrom; i < index; i++)
              n += view[i].size;
            if (n != oldN) {
              if (dir > 0) {
                if (index == view.length - 1) return null;
                diff = (n + view[index].size) - oldN;
                index++;
              } else {
                diff = n - oldN;
              }
              oldN += diff; newN += diff;
            }
            while (visualLineNo(cm.doc, newN) != newN) {
              if (index == (dir < 0 ? 0 : view.length - 1)) return null;
              newN += dir * view[index - (dir < 0 ? 1 : 0)].size;
              index += dir;
            }
            return {index: index, lineN: newN};
          }
        
          // Force the view to cover a given range, adding empty view element
          // or clipping off existing ones as needed.
          function adjustView(cm, from, to) {
            var display = cm.display, view = display.view;
            if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) {
              display.view = buildViewArray(cm, from, to);
              display.viewFrom = from;
            } else {
              if (display.viewFrom > from)
                display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view);
              else if (display.viewFrom < from)
                display.view = display.view.slice(findViewIndex(cm, from));
              display.viewFrom = from;
              if (display.viewTo < to)
                display.view = display.view.concat(buildViewArray(cm, display.viewTo, to));
              else if (display.viewTo > to)
                display.view = display.view.slice(0, findViewIndex(cm, to));
            }
            display.viewTo = to;
          }
        
          // Count the number of lines in the view whose DOM representation is
          // out of date (or nonexistent).
          function countDirtyView(cm) {
            var view = cm.display.view, dirty = 0;
            for (var i = 0; i < view.length; i++) {
              var lineView = view[i];
              if (!lineView.hidden && (!lineView.node || lineView.changes)) ++dirty;
            }
            return dirty;
          }
        
          // EVENT HANDLERS
        
          // Attach the necessary event handlers when initializing the editor
          function registerEventHandlers(cm) {
            var d = cm.display;
            on(d.scroller, "mousedown", operation(cm, onMouseDown));
            // Older IE's will not fire a second mousedown for a double click
            if (ie && ie_version < 11)
              on(d.scroller, "dblclick", operation(cm, function(e) {
                if (signalDOMEvent(cm, e)) return;
                var pos = posFromMouse(cm, e);
                if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) return;
                e_preventDefault(e);
                var word = cm.findWordAt(pos);
                extendSelection(cm.doc, word.anchor, word.head);
              }));
            else
              on(d.scroller, "dblclick", function(e) { signalDOMEvent(cm, e) || e_preventDefault(e); });
            // Some browsers fire contextmenu *after* opening the menu, at
            // which point we can't mess with it anymore. Context menu is
            // handled in onMouseDown for these browsers.
            if (!captureRightClick) on(d.scroller, "contextmenu", function(e) {onContextMenu(cm, e);});
        
            // Used to suppress mouse event handling when a touch happens
            var touchFinished, prevTouch = {end: 0};
            function finishTouch() {
              if (d.activeTouch) {
                touchFinished = setTimeout(function() {d.activeTouch = null;}, 1000);
                prevTouch = d.activeTouch;
                prevTouch.end = +new Date;
              }
            };
            function isMouseLikeTouchEvent(e) {
              if (e.touches.length != 1) return false;
              var touch = e.touches[0];
              return touch.radiusX <= 1 && touch.radiusY <= 1;
            }
            function farAway(touch, other) {
              if (other.left == null) return true;
              var dx = other.left - touch.left, dy = other.top - touch.top;
              return dx * dx + dy * dy > 20 * 20;
            }
            on(d.scroller, "touchstart", function(e) {
              if (!isMouseLikeTouchEvent(e)) {
                clearTimeout(touchFinished);
                var now = +new Date;
                d.activeTouch = {start: now, moved: false,
                                 prev: now - prevTouch.end <= 300 ? prevTouch : null};
                if (e.touches.length == 1) {
                  d.activeTouch.left = e.touches[0].pageX;
                  d.activeTouch.top = e.touches[0].pageY;
                }
              }
            });
            on(d.scroller, "touchmove", function() {
              if (d.activeTouch) d.activeTouch.moved = true;
            });
            on(d.scroller, "touchend", function(e) {
              var touch = d.activeTouch;
              if (touch && !eventInWidget(d, e) && touch.left != null &&
                  !touch.moved && new Date - touch.start < 300) {
                var pos = cm.coordsChar(d.activeTouch, "page"), range;
                if (!touch.prev || farAway(touch, touch.prev)) // Single tap
                  range = new Range(pos, pos);
                else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) // Double tap
                  range = cm.findWordAt(pos);
                else // Triple tap
                  range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0)));
                cm.setSelection(range.anchor, range.head);
                cm.focus();
                e_preventDefault(e);
              }
              finishTouch();
            });
            on(d.scroller, "touchcancel", finishTouch);
        
            // Sync scrolling between fake scrollbars and real scrollable
            // area, ensure viewport is updated when scrolling.
            on(d.scroller, "scroll", function() {
              if (d.scroller.clientHeight) {
                setScrollTop(cm, d.scroller.scrollTop);
                setScrollLeft(cm, d.scroller.scrollLeft, true);
                signal(cm, "scroll", cm);
              }
            });
        
            // Listen to wheel events in order to try and update the viewport on time.
            on(d.scroller, "mousewheel", function(e){onScrollWheel(cm, e);});
            on(d.scroller, "DOMMouseScroll", function(e){onScrollWheel(cm, e);});
        
            // Prevent wrapper from ever scrolling
            on(d.wrapper, "scroll", function() { d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; });
        
            d.dragFunctions = {
              enter: function(e) {if (!signalDOMEvent(cm, e)) e_stop(e);},
              over: function(e) {if (!signalDOMEvent(cm, e)) { onDragOver(cm, e); e_stop(e); }},
              start: function(e){onDragStart(cm, e);},
              drop: operation(cm, onDrop),
              leave: function() {clearDragCursor(cm);}
            };
        
            var inp = d.input.getField();
            on(inp, "keyup", function(e) { onKeyUp.call(cm, e); });
            on(inp, "keydown", operation(cm, onKeyDown));
            on(inp, "keypress", operation(cm, onKeyPress));
            on(inp, "focus", bind(onFocus, cm));
            on(inp, "blur", bind(onBlur, cm));
          }
        
          function dragDropChanged(cm, value, old) {
            var wasOn = old && old != CodeMirror.Init;
            if (!value != !wasOn) {
              var funcs = cm.display.dragFunctions;
              var toggle = value ? on : off;
              toggle(cm.display.scroller, "dragstart", funcs.start);
              toggle(cm.display.scroller, "dragenter", funcs.enter);
              toggle(cm.display.scroller, "dragover", funcs.over);
              toggle(cm.display.scroller, "dragleave", funcs.leave);
              toggle(cm.display.scroller, "drop", funcs.drop);
            }
          }
        
          // Called when the window resizes
          function onResize(cm) {
            var d = cm.display;
            if (d.lastWrapHeight == d.wrapper.clientHeight && d.lastWrapWidth == d.wrapper.clientWidth)
              return;
            // Might be a text scaling operation, clear size caches.
            d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;
            d.scrollbarsClipped = false;
            cm.setSize();
          }
        
          // MOUSE EVENTS
        
          // Return true when the given mouse event happened in a widget
          function eventInWidget(display, e) {
            for (var n = e_target(e); n != display.wrapper; n = n.parentNode) {
              if (!n || (n.nodeType == 1 && n.getAttribute("cm-ignore-events") == "true") ||
                  (n.parentNode == display.sizer && n != display.mover))
                return true;
            }
          }
        
          // Given a mouse event, find the corresponding position. If liberal
          // is false, it checks whether a gutter or scrollbar was clicked,
          // and returns null if it was. forRect is used by rectangular
          // selections, and tries to estimate a character position even for
          // coordinates beyond the right of the text.
          function posFromMouse(cm, e, liberal, forRect) {
            var display = cm.display;
            if (!liberal && e_target(e).getAttribute("cm-not-content") == "true") return null;
        
            var x, y, space = display.lineSpace.getBoundingClientRect();
            // Fails unpredictably on IE[67] when mouse is dragged around quickly.
            try { x = e.clientX - space.left; y = e.clientY - space.top; }
            catch (e) { return null; }
            var coords = coordsChar(cm, x, y), line;
            if (forRect && coords.xRel == 1 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) {
              var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length;
              coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff));
            }
            return coords;
          }
        
          // A mouse down can be a single click, double click, triple click,
          // start of selection drag, start of text drag, new cursor
          // (ctrl-click), rectangle drag (alt-drag), or xwin
          // middle-click-paste. Or it might be a click on something we should
          // not interfere with, such as a scrollbar or widget.
          function onMouseDown(e) {
            var cm = this, display = cm.display;
            if (display.activeTouch && display.input.supportsTouch() || signalDOMEvent(cm, e)) return;
            display.shift = e.shiftKey;
        
            if (eventInWidget(display, e)) {
              if (!webkit) {
                // Briefly turn off draggability, to allow widgets to do
                // normal dragging things.
                display.scroller.draggable = false;
                setTimeout(function(){display.scroller.draggable = true;}, 100);
              }
              return;
            }
            if (clickInGutter(cm, e)) return;
            var start = posFromMouse(cm, e);
            window.focus();
        
            switch (e_button(e)) {
            case 1:
              // #3261: make sure, that we're not starting a second selection
              if (cm.state.selectingText)
                cm.state.selectingText(e);
              else if (start)
                leftButtonDown(cm, e, start);
              else if (e_target(e) == display.scroller)
                e_preventDefault(e);
              break;
            case 2:
              if (webkit) cm.state.lastMiddleDown = +new Date;
              if (start) extendSelection(cm.doc, start);
              setTimeout(function() {display.input.focus();}, 20);
              e_preventDefault(e);
              break;
            case 3:
              if (captureRightClick) onContextMenu(cm, e);
              else delayBlurEvent(cm);
              break;
            }
          }
        
          var lastClick, lastDoubleClick;
          function leftButtonDown(cm, e, start) {
            if (ie) setTimeout(bind(ensureFocus, cm), 0);
            else cm.curOp.focus = activeElt();
        
            var now = +new Date, type;
            if (lastDoubleClick && lastDoubleClick.time > now - 400 && cmp(lastDoubleClick.pos, start) == 0) {
              type = "triple";
            } else if (lastClick && lastClick.time > now - 400 && cmp(lastClick.pos, start) == 0) {
              type = "double";
              lastDoubleClick = {time: now, pos: start};
            } else {
              type = "single";
              lastClick = {time: now, pos: start};
            }
        
            var sel = cm.doc.sel, modifier = mac ? e.metaKey : e.ctrlKey, contained;
            if (cm.options.dragDrop && dragAndDrop && !isReadOnly(cm) &&
                type == "single" && (contained = sel.contains(start)) > -1 &&
                (cmp((contained = sel.ranges[contained]).from(), start) < 0 || start.xRel > 0) &&
                (cmp(contained.to(), start) > 0 || start.xRel < 0))
              leftButtonStartDrag(cm, e, start, modifier);
            else
              leftButtonSelect(cm, e, start, type, modifier);
          }
        
          // Start a text drag. When it ends, see if any dragging actually
          // happen, and treat as a click if it didn't.
          function leftButtonStartDrag(cm, e, start, modifier) {
            var display = cm.display, startTime = +new Date;
            var dragEnd = operation(cm, function(e2) {
              if (webkit) display.scroller.draggable = false;
              cm.state.draggingText = false;
              off(document, "mouseup", dragEnd);
              off(display.scroller, "drop", dragEnd);
              if (Math.abs(e.clientX - e2.clientX) + Math.abs(e.clientY - e2.clientY) < 10) {
                e_preventDefault(e2);
                if (!modifier && +new Date - 200 < startTime)
                  extendSelection(cm.doc, start);
                // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)
                if (webkit || ie && ie_version == 9)
                  setTimeout(function() {document.body.focus(); display.input.focus();}, 20);
                else
                  display.input.focus();
              }
            });
            // Let the drag handler handle this.
            if (webkit) display.scroller.draggable = true;
            cm.state.draggingText = dragEnd;
            // IE's approach to draggable
            if (display.scroller.dragDrop) display.scroller.dragDrop();
            on(document, "mouseup", dragEnd);
            on(display.scroller, "drop", dragEnd);
          }
        
          // Normal selection, as opposed to text dragging.
          function leftButtonSelect(cm, e, start, type, addNew) {
            var display = cm.display, doc = cm.doc;
            e_preventDefault(e);
        
            var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges;
            if (addNew && !e.shiftKey) {
              ourIndex = doc.sel.contains(start);
              if (ourIndex > -1)
                ourRange = ranges[ourIndex];
              else
                ourRange = new Range(start, start);
            } else {
              ourRange = doc.sel.primary();
              ourIndex = doc.sel.primIndex;
            }
        
            if (e.altKey) {
              type = "rect";
              if (!addNew) ourRange = new Range(start, start);
              start = posFromMouse(cm, e, true, true);
              ourIndex = -1;
            } else if (type == "double") {
              var word = cm.findWordAt(start);
              if (cm.display.shift || doc.extend)
                ourRange = extendRange(doc, ourRange, word.anchor, word.head);
              else
                ourRange = word;
            } else if (type == "triple") {
              var line = new Range(Pos(start.line, 0), clipPos(doc, Pos(start.line + 1, 0)));
              if (cm.display.shift || doc.extend)
                ourRange = extendRange(doc, ourRange, line.anchor, line.head);
              else
                ourRange = line;
            } else {
              ourRange = extendRange(doc, ourRange, start);
            }
        
            if (!addNew) {
              ourIndex = 0;
              setSelection(doc, new Selection([ourRange], 0), sel_mouse);
              startSel = doc.sel;
            } else if (ourIndex == -1) {
              ourIndex = ranges.length;
              setSelection(doc, normalizeSelection(ranges.concat([ourRange]), ourIndex),
                           {scroll: false, origin: "*mouse"});
            } else if (ranges.length > 1 && ranges[ourIndex].empty() && type == "single" && !e.shiftKey) {
              setSelection(doc, normalizeSelection(ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0),
                           {scroll: false, origin: "*mouse"});
              startSel = doc.sel;
            } else {
              replaceOneSelection(doc, ourIndex, ourRange, sel_mouse);
            }
        
            var lastPos = start;
            function extendTo(pos) {
              if (cmp(lastPos, pos) == 0) return;
              lastPos = pos;
        
              if (type == "rect") {
                var ranges = [], tabSize = cm.options.tabSize;
                var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize);
                var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize);
                var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol);
                for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line));
                     line <= end; line++) {
                  var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize);
                  if (left == right)
                    ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos)));
                  else if (text.length > leftPos)
                    ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize))));
                }
                if (!ranges.length) ranges.push(new Range(start, start));
                setSelection(doc, normalizeSelection(startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex),
                             {origin: "*mouse", scroll: false});
                cm.scrollIntoView(pos);
              } else {
                var oldRange = ourRange;
                var anchor = oldRange.anchor, head = pos;
                if (type != "single") {
                  if (type == "double")
                    var range = cm.findWordAt(pos);
                  else
                    var range = new Range(Pos(pos.line, 0), clipPos(doc, Pos(pos.line + 1, 0)));
                  if (cmp(range.anchor, anchor) > 0) {
                    head = range.head;
                    anchor = minPos(oldRange.from(), range.anchor);
                  } else {
                    head = range.anchor;
                    anchor = maxPos(oldRange.to(), range.head);
                  }
                }
                var ranges = startSel.ranges.slice(0);
                ranges[ourIndex] = new Range(clipPos(doc, anchor), head);
                setSelection(doc, normalizeSelection(ranges, ourIndex), sel_mouse);
              }
            }
        
            var editorSize = display.wrapper.getBoundingClientRect();
            // Used to ensure timeout re-tries don't fire when another extend
            // happened in the meantime (clearTimeout isn't reliable -- at
            // least on Chrome, the timeouts still happen even when cleared,
            // if the clear happens after their scheduled firing time).
            var counter = 0;
        
            function extend(e) {
              var curCount = ++counter;
              var cur = posFromMouse(cm, e, true, type == "rect");
              if (!cur) return;
              if (cmp(cur, lastPos) != 0) {
                cm.curOp.focus = activeElt();
                extendTo(cur);
                var visible = visibleLines(display, doc);
                if (cur.line >= visible.to || cur.line < visible.from)
                  setTimeout(operation(cm, function(){if (counter == curCount) extend(e);}), 150);
              } else {
                var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0;
                if (outside) setTimeout(operation(cm, function() {
                  if (counter != curCount) return;
                  display.scroller.scrollTop += outside;
                  extend(e);
                }), 50);
              }
            }
        
            function done(e) {
              cm.state.selectingText = false;
              counter = Infinity;
              e_preventDefault(e);
              display.input.focus();
              off(document, "mousemove", move);
              off(document, "mouseup", up);
              doc.history.lastSelOrigin = null;
            }
        
            var move = operation(cm, function(e) {
              if (!e_button(e)) done(e);
              else extend(e);
            });
            var up = operation(cm, done);
            cm.state.selectingText = up;
            on(document, "mousemove", move);
            on(document, "mouseup", up);
          }
        
          // Determines whether an event happened in the gutter, and fires the
          // handlers for the corresponding event.
          function gutterEvent(cm, e, type, prevent, signalfn) {
            try { var mX = e.clientX, mY = e.clientY; }
            catch(e) { return false; }
            if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) return false;
            if (prevent) e_preventDefault(e);
        
            var display = cm.display;
            var lineBox = display.lineDiv.getBoundingClientRect();
        
            if (mY > lineBox.bottom || !hasHandler(cm, type)) return e_defaultPrevented(e);
            mY -= lineBox.top - display.viewOffset;
        
            for (var i = 0; i < cm.options.gutters.length; ++i) {
              var g = display.gutters.childNodes[i];
              if (g && g.getBoundingClientRect().right >= mX) {
                var line = lineAtHeight(cm.doc, mY);
                var gutter = cm.options.gutters[i];
                signalfn(cm, type, cm, line, gutter, e);
                return e_defaultPrevented(e);
              }
            }
          }
        
          function clickInGutter(cm, e) {
            return gutterEvent(cm, e, "gutterClick", true, signalLater);
          }
        
          // Kludge to work around strange IE behavior where it'll sometimes
          // re-fire a series of drag-related events right after the drop (#1551)
          var lastDrop = 0;
        
          function onDrop(e) {
            var cm = this;
            clearDragCursor(cm);
            if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e))
              return;
            e_preventDefault(e);
            if (ie) lastDrop = +new Date;
            var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files;
            if (!pos || isReadOnly(cm)) return;
            // Might be a file drop, in which case we simply extract the text
            // and insert it.
            if (files && files.length && window.FileReader && window.File) {
              var n = files.length, text = Array(n), read = 0;
              var loadFile = function(file, i) {
                if (cm.options.allowDropFileTypes &&
                    indexOf(cm.options.allowDropFileTypes, file.type) == -1)
                  return;
        
                var reader = new FileReader;
                reader.onload = operation(cm, function() {
                  var content = reader.result;
                  if (/[\x00-\x08\x0e-\x1f]{2}/.test(content)) content = "";
                  text[i] = content;
                  if (++read == n) {
                    pos = clipPos(cm.doc, pos);
                    var change = {from: pos, to: pos,
                                  text: cm.doc.splitLines(text.join(cm.doc.lineSeparator())),
                                  origin: "paste"};
                    makeChange(cm.doc, change);
                    setSelectionReplaceHistory(cm.doc, simpleSelection(pos, changeEnd(change)));
                  }
                });
                reader.readAsText(file);
              };
              for (var i = 0; i < n; ++i) loadFile(files[i], i);
            } else { // Normal drop
              // Don't do a replace if the drop happened inside of the selected text.
              if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) {
                cm.state.draggingText(e);
                // Ensure the editor is re-focused
                setTimeout(function() {cm.display.input.focus();}, 20);
                return;
              }
              try {
                var text = e.dataTransfer.getData("Text");
                if (text) {
                  if (cm.state.draggingText && !(mac ? e.altKey : e.ctrlKey))
                    var selected = cm.listSelections();
                  setSelectionNoUndo(cm.doc, simpleSelection(pos, pos));
                  if (selected) for (var i = 0; i < selected.length; ++i)
                    replaceRange(cm.doc, "", selected[i].anchor, selected[i].head, "drag");
                  cm.replaceSelection(text, "around", "paste");
                  cm.display.input.focus();
                }
              }
              catch(e){}
            }
          }
        
          function onDragStart(cm, e) {
            if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return; }
            if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) return;
        
            e.dataTransfer.setData("Text", cm.getSelection());
        
            // Use dummy image instead of default browsers image.
            // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there.
            if (e.dataTransfer.setDragImage && !safari) {
              var img = elt("img", null, null, "position: fixed; left: 0; top: 0;");
              img.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==";
              if (presto) {
                img.width = img.height = 1;
                cm.display.wrapper.appendChild(img);
                // Force a relayout, or Opera won't use our image for some obscure reason
                img._top = img.offsetTop;
              }
              e.dataTransfer.setDragImage(img, 0, 0);
              if (presto) img.parentNode.removeChild(img);
            }
          }
        
          function onDragOver(cm, e) {
            var pos = posFromMouse(cm, e);
            if (!pos) return;
            var frag = document.createDocumentFragment();
            drawSelectionCursor(cm, pos, frag);
            if (!cm.display.dragCursor) {
              cm.display.dragCursor = elt("div", null, "CodeMirror-cursors CodeMirror-dragcursors");
              cm.display.lineSpace.insertBefore(cm.display.dragCursor, cm.display.cursorDiv);
            }
            removeChildrenAndAdd(cm.display.dragCursor, frag);
          }
        
          function clearDragCursor(cm) {
            if (cm.display.dragCursor) {
              cm.display.lineSpace.removeChild(cm.display.dragCursor);
              cm.display.dragCursor = null;
            }
          }
        
          // SCROLL EVENTS
        
          // Sync the scrollable area and scrollbars, ensure the viewport
          // covers the visible area.
          function setScrollTop(cm, val) {
            if (Math.abs(cm.doc.scrollTop - val) < 2) return;
            cm.doc.scrollTop = val;
            if (!gecko) updateDisplaySimple(cm, {top: val});
            if (cm.display.scroller.scrollTop != val) cm.display.scroller.scrollTop = val;
            cm.display.scrollbars.setScrollTop(val);
            if (gecko) updateDisplaySimple(cm);
            startWorker(cm, 100);
          }
          // Sync scroller and scrollbar, ensure the gutter elements are
          // aligned.
          function setScrollLeft(cm, val, isScroller) {
            if (isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) return;
            val = Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth);
            cm.doc.scrollLeft = val;
            alignHorizontally(cm);
            if (cm.display.scroller.scrollLeft != val) cm.display.scroller.scrollLeft = val;
            cm.display.scrollbars.setScrollLeft(val);
          }
        
          // Since the delta values reported on mouse wheel events are
          // unstandardized between browsers and even browser versions, and
          // generally horribly unpredictable, this code starts by measuring
          // the scroll effect that the first few mouse wheel events have,
          // and, from that, detects the way it can convert deltas to pixel
          // offsets afterwards.
          //
          // The reason we want to know the amount a wheel event will scroll
          // is that it gives us a chance to update the display before the
          // actual scrolling happens, reducing flickering.
        
          var wheelSamples = 0, wheelPixelsPerUnit = null;
          // Fill in a browser-detected starting value on browsers where we
          // know one. These don't have to be accurate -- the result of them
          // being wrong would just be a slight flicker on the first wheel
          // scroll (if it is large enough).
          if (ie) wheelPixelsPerUnit = -.53;
          else if (gecko) wheelPixelsPerUnit = 15;
          else if (chrome) wheelPixelsPerUnit = -.7;
          else if (safari) wheelPixelsPerUnit = -1/3;
        
          var wheelEventDelta = function(e) {
            var dx = e.wheelDeltaX, dy = e.wheelDeltaY;
            if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) dx = e.detail;
            if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) dy = e.detail;
            else if (dy == null) dy = e.wheelDelta;
            return {x: dx, y: dy};
          };
          CodeMirror.wheelEventPixels = function(e) {
            var delta = wheelEventDelta(e);
            delta.x *= wheelPixelsPerUnit;
            delta.y *= wheelPixelsPerUnit;
            return delta;
          };
        
          function onScrollWheel(cm, e) {
            var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y;
        
            var display = cm.display, scroll = display.scroller;
            // Quit if there's nothing to scroll here
            var canScrollX = scroll.scrollWidth > scroll.clientWidth;
            var canScrollY = scroll.scrollHeight > scroll.clientHeight;
            if (!(dx && canScrollX || dy && canScrollY)) return;
        
            // Webkit browsers on OS X abort momentum scrolls when the target
            // of the scroll event is removed from the scrollable element.
            // This hack (see related code in patchDisplay) makes sure the
            // element is kept around.
            if (dy && mac && webkit) {
              outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) {
                for (var i = 0; i < view.length; i++) {
                  if (view[i].node == cur) {
                    cm.display.currentWheelTarget = cur;
                    break outer;
                  }
                }
              }
            }
        
            // On some browsers, horizontal scrolling will cause redraws to
            // happen before the gutter has been realigned, causing it to
            // wriggle around in a most unseemly way. When we have an
            // estimated pixels/delta value, we just handle horizontal
            // scrolling entirely here. It'll be slightly off from native, but
            // better than glitching out.
            if (dx && !gecko && !presto && wheelPixelsPerUnit != null) {
              if (dy && canScrollY)
                setScrollTop(cm, Math.max(0, Math.min(scroll.scrollTop + dy * wheelPixelsPerUnit, scroll.scrollHeight - scroll.clientHeight)));
              setScrollLeft(cm, Math.max(0, Math.min(scroll.scrollLeft + dx * wheelPixelsPerUnit, scroll.scrollWidth - scroll.clientWidth)));
              // Only prevent default scrolling if vertical scrolling is
              // actually possible. Otherwise, it causes vertical scroll
              // jitter on OSX trackpads when deltaX is small and deltaY
              // is large (issue #3579)
              if (!dy || (dy && canScrollY))
                e_preventDefault(e);
              display.wheelStartX = null; // Abort measurement, if in progress
              return;
            }
        
            // 'Project' the visible viewport to cover the area that is being
            // scrolled into view (if we know enough to estimate it).
            if (dy && wheelPixelsPerUnit != null) {
              var pixels = dy * wheelPixelsPerUnit;
              var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;
              if (pixels < 0) top = Math.max(0, top + pixels - 50);
              else bot = Math.min(cm.doc.height, bot + pixels + 50);
              updateDisplaySimple(cm, {top: top, bottom: bot});
            }
        
            if (wheelSamples < 20) {
              if (display.wheelStartX == null) {
                display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;
                display.wheelDX = dx; display.wheelDY = dy;
                setTimeout(function() {
                  if (display.wheelStartX == null) return;
                  var movedX = scroll.scrollLeft - display.wheelStartX;
                  var movedY = scroll.scrollTop - display.wheelStartY;
                  var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||
                    (movedX && display.wheelDX && movedX / display.wheelDX);
                  display.wheelStartX = display.wheelStartY = null;
                  if (!sample) return;
                  wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);
                  ++wheelSamples;
                }, 200);
              } else {
                display.wheelDX += dx; display.wheelDY += dy;
              }
            }
          }
        
          // KEY EVENTS
        
          // Run a handler that was bound to a key.
          function doHandleBinding(cm, bound, dropShift) {
            if (typeof bound == "string") {
              bound = commands[bound];
              if (!bound) return false;
            }
            // Ensure previous input has been read, so that the handler sees a
            // consistent view of the document
            cm.display.input.ensurePolled();
            var prevShift = cm.display.shift, done = false;
            try {
              if (isReadOnly(cm)) cm.state.suppressEdits = true;
              if (dropShift) cm.display.shift = false;
              done = bound(cm) != Pass;
            } finally {
              cm.display.shift = prevShift;
              cm.state.suppressEdits = false;
            }
            return done;
          }
        
          function lookupKeyForEditor(cm, name, handle) {
            for (var i = 0; i < cm.state.keyMaps.length; i++) {
              var result = lookupKey(name, cm.state.keyMaps[i], handle, cm);
              if (result) return result;
            }
            return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm))
              || lookupKey(name, cm.options.keyMap, handle, cm);
          }
        
          var stopSeq = new Delayed;
          function dispatchKey(cm, name, e, handle) {
            var seq = cm.state.keySeq;
            if (seq) {
              if (isModifierKey(name)) return "handled";
              stopSeq.set(50, function() {
                if (cm.state.keySeq == seq) {
                  cm.state.keySeq = null;
                  cm.display.input.reset();
                }
              });
              name = seq + " " + name;
            }
            var result = lookupKeyForEditor(cm, name, handle);
        
            if (result == "multi")
              cm.state.keySeq = name;
            if (result == "handled")
              signalLater(cm, "keyHandled", cm, name, e);
        
            if (result == "handled" || result == "multi") {
              e_preventDefault(e);
              restartBlink(cm);
            }
        
            if (seq && !result && /\'$/.test(name)) {
              e_preventDefault(e);
              return true;
            }
            return !!result;
          }
        
          // Handle a key from the keydown event.
          function handleKeyBinding(cm, e) {
            var name = keyName(e, true);
            if (!name) return false;
        
            if (e.shiftKey && !cm.state.keySeq) {
              // First try to resolve full name (including 'Shift-'). Failing
              // that, see if there is a cursor-motion command (starting with
              // 'go') bound to the keyname without 'Shift-'.
              return dispatchKey(cm, "Shift-" + name, e, function(b) {return doHandleBinding(cm, b, true);})
                  || dispatchKey(cm, name, e, function(b) {
                       if (typeof b == "string" ? /^go[A-Z]/.test(b) : b.motion)
                         return doHandleBinding(cm, b);
                     });
            } else {
              return dispatchKey(cm, name, e, function(b) { return doHandleBinding(cm, b); });
            }
          }
        
          // Handle a key from the keypress event
          function handleCharBinding(cm, e, ch) {
            return dispatchKey(cm, "'" + ch + "'", e,
                               function(b) { return doHandleBinding(cm, b, true); });
          }
        
          var lastStoppedKey = null;
          function onKeyDown(e) {
            var cm = this;
            cm.curOp.focus = activeElt();
            if (signalDOMEvent(cm, e)) return;
            // IE does strange things with escape.
            if (ie && ie_version < 11 && e.keyCode == 27) e.returnValue = false;
            var code = e.keyCode;
            cm.display.shift = code == 16 || e.shiftKey;
            var handled = handleKeyBinding(cm, e);
            if (presto) {
              lastStoppedKey = handled ? code : null;
              // Opera has no cut event... we try to at least catch the key combo
              if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey))
                cm.replaceSelection("", null, "cut");
            }
        
            // Turn mouse into crosshair when Alt is held on Mac.
            if (code == 18 && !/\bCodeMirror-crosshair\b/.test(cm.display.lineDiv.className))
              showCrossHair(cm);
          }
        
          function showCrossHair(cm) {
            var lineDiv = cm.display.lineDiv;
            addClass(lineDiv, "CodeMirror-crosshair");
        
            function up(e) {
              if (e.keyCode == 18 || !e.altKey) {
                rmClass(lineDiv, "CodeMirror-crosshair");
                off(document, "keyup", up);
                off(document, "mouseover", up);
              }
            }
            on(document, "keyup", up);
            on(document, "mouseover", up);
          }
        
          function onKeyUp(e) {
            if (e.keyCode == 16) this.doc.sel.shift = false;
            signalDOMEvent(this, e);
          }
        
          function onKeyPress(e) {
            var cm = this;
            if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) return;
            var keyCode = e.keyCode, charCode = e.charCode;
            if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return;}
            if ((presto && (!e.which || e.which < 10)) && handleKeyBinding(cm, e)) return;
            var ch = String.fromCharCode(charCode == null ? keyCode : charCode);
            if (handleCharBinding(cm, e, ch)) return;
            cm.display.input.onKeyPress(e);
          }
        
          // FOCUS/BLUR EVENTS
        
          function delayBlurEvent(cm) {
            cm.state.delayingBlurEvent = true;
            setTimeout(function() {
              if (cm.state.delayingBlurEvent) {
                cm.state.delayingBlurEvent = false;
                onBlur(cm);
              }
            }, 100);
          }
        
          function onFocus(cm) {
            if (cm.state.delayingBlurEvent) cm.state.delayingBlurEvent = false;
        
            if (cm.options.readOnly == "nocursor") return;
            if (!cm.state.focused) {
              signal(cm, "focus", cm);
              cm.state.focused = true;
              addClass(cm.display.wrapper, "CodeMirror-focused");
              // This test prevents this from firing when a context
              // menu is closed (since the input reset would kill the
              // select-all detection hack)
              if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) {
                cm.display.input.reset();
                if (webkit) setTimeout(function() { cm.display.input.reset(true); }, 20); // Issue #1730
              }
              cm.display.input.receivedFocus();
            }
            restartBlink(cm);
          }
          function onBlur(cm) {
            if (cm.state.delayingBlurEvent) return;
        
            if (cm.state.focused) {
              signal(cm, "blur", cm);
              cm.state.focused = false;
              rmClass(cm.display.wrapper, "CodeMirror-focused");
            }
            clearInterval(cm.display.blinker);
            setTimeout(function() {if (!cm.state.focused) cm.display.shift = false;}, 150);
          }
        
          // CONTEXT MENU HANDLING
        
          // To make the context menu work, we need to briefly unhide the
          // textarea (making it as unobtrusive as possible) to let the
          // right-click take effect on it.
          function onContextMenu(cm, e) {
            if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) return;
            if (signalDOMEvent(cm, e, "contextmenu")) return;
            cm.display.input.onContextMenu(e);
          }
        
          function contextMenuInGutter(cm, e) {
            if (!hasHandler(cm, "gutterContextMenu")) return false;
            return gutterEvent(cm, e, "gutterContextMenu", false, signal);
          }
        
          // UPDATING
        
          // Compute the position of the end of a change (its 'to' property
          // refers to the pre-change end).
          var changeEnd = CodeMirror.changeEnd = function(change) {
            if (!change.text) return change.to;
            return Pos(change.from.line + change.text.length - 1,
                       lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0));
          };
        
          // Adjust a position to refer to the post-change position of the
          // same text, or the end of the change if the change covers it.
          function adjustForChange(pos, change) {
            if (cmp(pos, change.from) < 0) return pos;
            if (cmp(pos, change.to) <= 0) return changeEnd(change);
        
            var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch;
            if (pos.line == change.to.line) ch += changeEnd(change).ch - change.to.ch;
            return Pos(line, ch);
          }
        
          function computeSelAfterChange(doc, change) {
            var out = [];
            for (var i = 0; i < doc.sel.ranges.length; i++) {
              var range = doc.sel.ranges[i];
              out.push(new Range(adjustForChange(range.anchor, change),
                                 adjustForChange(range.head, change)));
            }
            return normalizeSelection(out, doc.sel.primIndex);
          }
        
          function offsetPos(pos, old, nw) {
            if (pos.line == old.line)
              return Pos(nw.line, pos.ch - old.ch + nw.ch);
            else
              return Pos(nw.line + (pos.line - old.line), pos.ch);
          }
        
          // Used by replaceSelections to allow moving the selection to the
          // start or around the replaced test. Hint may be "start" or "around".
          function computeReplacedSel(doc, changes, hint) {
            var out = [];
            var oldPrev = Pos(doc.first, 0), newPrev = oldPrev;
            for (var i = 0; i < changes.length; i++) {
              var change = changes[i];
              var from = offsetPos(change.from, oldPrev, newPrev);
              var to = offsetPos(changeEnd(change), oldPrev, newPrev);
              oldPrev = change.to;
              newPrev = to;
              if (hint == "around") {
                var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0;
                out[i] = new Range(inv ? to : from, inv ? from : to);
              } else {
                out[i] = new Range(from, from);
              }
            }
            return new Selection(out, doc.sel.primIndex);
          }
        
          // Allow "beforeChange" event handlers to influence a change
          function filterChange(doc, change, update) {
            var obj = {
              canceled: false,
              from: change.from,
              to: change.to,
              text: change.text,
              origin: change.origin,
              cancel: function() { this.canceled = true; }
            };
            if (update) obj.update = function(from, to, text, origin) {
              if (from) this.from = clipPos(doc, from);
              if (to) this.to = clipPos(doc, to);
              if (text) this.text = text;
              if (origin !== undefined) this.origin = origin;
            };
            signal(doc, "beforeChange", doc, obj);
            if (doc.cm) signal(doc.cm, "beforeChange", doc.cm, obj);
        
            if (obj.canceled) return null;
            return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin};
          }
        
          // Apply a change to a document, and add it to the document's
          // history, and propagating it to all linked documents.
          function makeChange(doc, change, ignoreReadOnly) {
            if (doc.cm) {
              if (!doc.cm.curOp) return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly);
              if (doc.cm.state.suppressEdits) return;
            }
        
            if (hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange")) {
              change = filterChange(doc, change, true);
              if (!change) return;
            }
        
            // Possibly split or suppress the update based on the presence
            // of read-only spans in its range.
            var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);
            if (split) {
              for (var i = split.length - 1; i >= 0; --i)
                makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [""] : change.text});
            } else {
              makeChangeInner(doc, change);
            }
          }
        
          function makeChangeInner(doc, change) {
            if (change.text.length == 1 && change.text[0] == "" && cmp(change.from, change.to) == 0) return;
            var selAfter = computeSelAfterChange(doc, change);
            addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN);
        
            makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change));
            var rebased = [];
        
            linkedDocs(doc, function(doc, sharedHist) {
              if (!sharedHist && indexOf(rebased, doc.history) == -1) {
                rebaseHist(doc.history, change);
                rebased.push(doc.history);
              }
              makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change));
            });
          }
        
          // Revert a change stored in a document's history.
          function makeChangeFromHistory(doc, type, allowSelectionOnly) {
            if (doc.cm && doc.cm.state.suppressEdits) return;
        
            var hist = doc.history, event, selAfter = doc.sel;
            var source = type == "undo" ? hist.done : hist.undone, dest = type == "undo" ? hist.undone : hist.done;
        
            // Verify that there is a useable event (so that ctrl-z won't
            // needlessly clear selection events)
            for (var i = 0; i < source.length; i++) {
              event = source[i];
              if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges)
                break;
            }
            if (i == source.length) return;
            hist.lastOrigin = hist.lastSelOrigin = null;
        
            for (;;) {
              event = source.pop();
              if (event.ranges) {
                pushSelectionToHistory(event, dest);
                if (allowSelectionOnly && !event.equals(doc.sel)) {
                  setSelection(doc, event, {clearRedo: false});
                  return;
                }
                selAfter = event;
              }
              else break;
            }
        
            // Build up a reverse change object to add to the opposite history
            // stack (redo when undoing, and vice versa).
            var antiChanges = [];
            pushSelectionToHistory(selAfter, dest);
            dest.push({changes: antiChanges, generation: hist.generation});
            hist.generation = event.generation || ++hist.maxGeneration;
        
            var filter = hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange");
        
            for (var i = event.changes.length - 1; i >= 0; --i) {
              var change = event.changes[i];
              change.origin = type;
              if (filter && !filterChange(doc, change, false)) {
                source.length = 0;
                return;
              }
        
              antiChanges.push(historyChangeFromChange(doc, change));
        
              var after = i ? computeSelAfterChange(doc, change) : lst(source);
              makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change));
              if (!i && doc.cm) doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)});
              var rebased = [];
        
              // Propagate to the linked documents
              linkedDocs(doc, function(doc, sharedHist) {
                if (!sharedHist && indexOf(rebased, doc.history) == -1) {
                  rebaseHist(doc.history, change);
                  rebased.push(doc.history);
                }
                makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change));
              });
            }
          }
        
          // Sub-views need their line numbers shifted when text is added
          // above or below them in the parent document.
          function shiftDoc(doc, distance) {
            if (distance == 0) return;
            doc.first += distance;
            doc.sel = new Selection(map(doc.sel.ranges, function(range) {
              return new Range(Pos(range.anchor.line + distance, range.anchor.ch),
                               Pos(range.head.line + distance, range.head.ch));
            }), doc.sel.primIndex);
            if (doc.cm) {
              regChange(doc.cm, doc.first, doc.first - distance, distance);
              for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++)
                regLineChange(doc.cm, l, "gutter");
            }
          }
        
          // More lower-level change function, handling only a single document
          // (not linked ones).
          function makeChangeSingleDoc(doc, change, selAfter, spans) {
            if (doc.cm && !doc.cm.curOp)
              return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans);
        
            if (change.to.line < doc.first) {
              shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line));
              return;
            }
            if (change.from.line > doc.lastLine()) return;
        
            // Clip the change to the size of this doc
            if (change.from.line < doc.first) {
              var shift = change.text.length - 1 - (doc.first - change.from.line);
              shiftDoc(doc, shift);
              change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch),
                        text: [lst(change.text)], origin: change.origin};
            }
            var last = doc.lastLine();
            if (change.to.line > last) {
              change = {from: change.from, to: Pos(last, getLine(doc, last).text.length),
                        text: [change.text[0]], origin: change.origin};
            }
        
            change.removed = getBetween(doc, change.from, change.to);
        
            if (!selAfter) selAfter = computeSelAfterChange(doc, change);
            if (doc.cm) makeChangeSingleDocInEditor(doc.cm, change, spans);
            else updateDoc(doc, change, spans);
            setSelectionNoUndo(doc, selAfter, sel_dontScroll);
          }
        
          // Handle the interaction of a change to a document with the editor
          // that this document is part of.
          function makeChangeSingleDocInEditor(cm, change, spans) {
            var doc = cm.doc, display = cm.display, from = change.from, to = change.to;
        
            var recomputeMaxLength = false, checkWidthStart = from.line;
            if (!cm.options.lineWrapping) {
              checkWidthStart = lineNo(visualLine(getLine(doc, from.line)));
              doc.iter(checkWidthStart, to.line + 1, function(line) {
                if (line == display.maxLine) {
                  recomputeMaxLength = true;
                  return true;
                }
              });
            }
        
            if (doc.sel.contains(change.from, change.to) > -1)
              signalCursorActivity(cm);
        
            updateDoc(doc, change, spans, estimateHeight(cm));
        
            if (!cm.options.lineWrapping) {
              doc.iter(checkWidthStart, from.line + change.text.length, function(line) {
                var len = lineLength(line);
                if (len > display.maxLineLength) {
                  display.maxLine = line;
                  display.maxLineLength = len;
                  display.maxLineChanged = true;
                  recomputeMaxLength = false;
                }
              });
              if (recomputeMaxLength) cm.curOp.updateMaxLine = true;
            }
        
            // Adjust frontier, schedule worker
            doc.frontier = Math.min(doc.frontier, from.line);
            startWorker(cm, 400);
        
            var lendiff = change.text.length - (to.line - from.line) - 1;
            // Remember that these lines changed, for updating the display
            if (change.full)
              regChange(cm);
            else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change))
              regLineChange(cm, from.line, "text");
            else
              regChange(cm, from.line, to.line + 1, lendiff);
        
            var changesHandler = hasHandler(cm, "changes"), changeHandler = hasHandler(cm, "change");
            if (changeHandler || changesHandler) {
              var obj = {
                from: from, to: to,
                text: change.text,
                removed: change.removed,
                origin: change.origin
              };
              if (changeHandler) signalLater(cm, "change", cm, obj);
              if (changesHandler) (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj);
            }
            cm.display.selForContextMenu = null;
          }
        
          function replaceRange(doc, code, from, to, origin) {
            if (!to) to = from;
            if (cmp(to, from) < 0) { var tmp = to; to = from; from = tmp; }
            if (typeof code == "string") code = doc.splitLines(code);
            makeChange(doc, {from: from, to: to, text: code, origin: origin});
          }
        
          // SCROLLING THINGS INTO VIEW
        
          // If an editor sits on the top or bottom of the window, partially
          // scrolled out of view, this ensures that the cursor is visible.
          function maybeScrollWindow(cm, coords) {
            if (signalDOMEvent(cm, "scrollCursorIntoView")) return;
        
            var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null;
            if (coords.top + box.top < 0) doScroll = true;
            else if (coords.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) doScroll = false;
            if (doScroll != null && !phantom) {
              var scrollNode = elt("div", "\u200b", null, "position: absolute; top: " +
                                   (coords.top - display.viewOffset - paddingTop(cm.display)) + "px; height: " +
                                   (coords.bottom - coords.top + scrollGap(cm) + display.barHeight) + "px; left: " +
                                   coords.left + "px; width: 2px;");
              cm.display.lineSpace.appendChild(scrollNode);
              scrollNode.scrollIntoView(doScroll);
              cm.display.lineSpace.removeChild(scrollNode);
            }
          }
        
          // Scroll a given position into view (immediately), verifying that
          // it actually became visible (as line heights are accurately
          // measured, the position of something may 'drift' during drawing).
          function scrollPosIntoView(cm, pos, end, margin) {
            if (margin == null) margin = 0;
            for (var limit = 0; limit < 5; limit++) {
              var changed = false, coords = cursorCoords(cm, pos);
              var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);
              var scrollPos = calculateScrollPos(cm, Math.min(coords.left, endCoords.left),
                                                 Math.min(coords.top, endCoords.top) - margin,
                                                 Math.max(coords.left, endCoords.left),
                                                 Math.max(coords.bottom, endCoords.bottom) + margin);
              var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;
              if (scrollPos.scrollTop != null) {
                setScrollTop(cm, scrollPos.scrollTop);
                if (Math.abs(cm.doc.scrollTop - startTop) > 1) changed = true;
              }
              if (scrollPos.scrollLeft != null) {
                setScrollLeft(cm, scrollPos.scrollLeft);
                if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) changed = true;
              }
              if (!changed) break;
            }
            return coords;
          }
        
          // Scroll a given set of coordinates into view (immediately).
          function scrollIntoView(cm, x1, y1, x2, y2) {
            var scrollPos = calculateScrollPos(cm, x1, y1, x2, y2);
            if (scrollPos.scrollTop != null) setScrollTop(cm, scrollPos.scrollTop);
            if (scrollPos.scrollLeft != null) setScrollLeft(cm, scrollPos.scrollLeft);
          }
        
          // Calculate a new scroll position needed to scroll the given
          // rectangle into view. Returns an object with scrollTop and
          // scrollLeft properties. When these are undefined, the
          // vertical/horizontal position does not need to be adjusted.
          function calculateScrollPos(cm, x1, y1, x2, y2) {
            var display = cm.display, snapMargin = textHeight(cm.display);
            if (y1 < 0) y1 = 0;
            var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop;
            var screen = displayHeight(cm), result = {};
            if (y2 - y1 > screen) y2 = y1 + screen;
            var docBottom = cm.doc.height + paddingVert(display);
            var atTop = y1 < snapMargin, atBottom = y2 > docBottom - snapMargin;
            if (y1 < screentop) {
              result.scrollTop = atTop ? 0 : y1;
            } else if (y2 > screentop + screen) {
              var newTop = Math.min(y1, (atBottom ? docBottom : y2) - screen);
              if (newTop != screentop) result.scrollTop = newTop;
            }
        
            var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft;
            var screenw = displayWidth(cm) - (cm.options.fixedGutter ? display.gutters.offsetWidth : 0);
            var tooWide = x2 - x1 > screenw;
            if (tooWide) x2 = x1 + screenw;
            if (x1 < 10)
              result.scrollLeft = 0;
            else if (x1 < screenleft)
              result.scrollLeft = Math.max(0, x1 - (tooWide ? 0 : 10));
            else if (x2 > screenw + screenleft - 3)
              result.scrollLeft = x2 + (tooWide ? 0 : 10) - screenw;
            return result;
          }
        
          // Store a relative adjustment to the scroll position in the current
          // operation (to be applied when the operation finishes).
          function addToScrollPos(cm, left, top) {
            if (left != null || top != null) resolveScrollToPos(cm);
            if (left != null)
              cm.curOp.scrollLeft = (cm.curOp.scrollLeft == null ? cm.doc.scrollLeft : cm.curOp.scrollLeft) + left;
            if (top != null)
              cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top;
          }
        
          // Make sure that at the end of the operation the current cursor is
          // shown.
          function ensureCursorVisible(cm) {
            resolveScrollToPos(cm);
            var cur = cm.getCursor(), from = cur, to = cur;
            if (!cm.options.lineWrapping) {
              from = cur.ch ? Pos(cur.line, cur.ch - 1) : cur;
              to = Pos(cur.line, cur.ch + 1);
            }
            cm.curOp.scrollToPos = {from: from, to: to, margin: cm.options.cursorScrollMargin, isCursor: true};
          }
        
          // When an operation has its scrollToPos property set, and another
          // scroll action is applied before the end of the operation, this
          // 'simulates' scrolling that position into view in a cheap way, so
          // that the effect of intermediate scroll commands is not ignored.
          function resolveScrollToPos(cm) {
            var range = cm.curOp.scrollToPos;
            if (range) {
              cm.curOp.scrollToPos = null;
              var from = estimateCoords(cm, range.from), to = estimateCoords(cm, range.to);
              var sPos = calculateScrollPos(cm, Math.min(from.left, to.left),
                                            Math.min(from.top, to.top) - range.margin,
                                            Math.max(from.right, to.right),
                                            Math.max(from.bottom, to.bottom) + range.margin);
              cm.scrollTo(sPos.scrollLeft, sPos.scrollTop);
            }
          }
        
          // API UTILITIES
        
          // Indent the given line. The how parameter can be "smart",
          // "add"/null, "subtract", or "prev". When aggressive is false
          // (typically set to true for forced single-line indents), empty
          // lines are not indented, and places where the mode returns Pass
          // are left alone.
          function indentLine(cm, n, how, aggressive) {
            var doc = cm.doc, state;
            if (how == null) how = "add";
            if (how == "smart") {
              // Fall back to "prev" when the mode doesn't have an indentation
              // method.
              if (!doc.mode.indent) how = "prev";
              else state = getStateBefore(cm, n);
            }
        
            var tabSize = cm.options.tabSize;
            var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize);
            if (line.stateAfter) line.stateAfter = null;
            var curSpaceString = line.text.match(/^\s*/)[0], indentation;
            if (!aggressive && !/\S/.test(line.text)) {
              indentation = 0;
              how = "not";
            } else if (how == "smart") {
              indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text);
              if (indentation == Pass || indentation > 150) {
                if (!aggressive) return;
                how = "prev";
              }
            }
            if (how == "prev") {
              if (n > doc.first) indentation = countColumn(getLine(doc, n-1).text, null, tabSize);
              else indentation = 0;
            } else if (how == "add") {
              indentation = curSpace + cm.options.indentUnit;
            } else if (how == "subtract") {
              indentation = curSpace - cm.options.indentUnit;
            } else if (typeof how == "number") {
              indentation = curSpace + how;
            }
            indentation = Math.max(0, indentation);
        
            var indentString = "", pos = 0;
            if (cm.options.indentWithTabs)
              for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += "\t";}
            if (pos < indentation) indentString += spaceStr(indentation - pos);
        
            if (indentString != curSpaceString) {
              replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), "+input");
              line.stateAfter = null;
              return true;
            } else {
              // Ensure that, if the cursor was in the whitespace at the start
              // of the line, it is moved to the end of that space.
              for (var i = 0; i < doc.sel.ranges.length; i++) {
                var range = doc.sel.ranges[i];
                if (range.head.line == n && range.head.ch < curSpaceString.length) {
                  var pos = Pos(n, curSpaceString.length);
                  replaceOneSelection(doc, i, new Range(pos, pos));
                  break;
                }
              }
            }
          }
        
          // Utility for applying a change to a line by handle or number,
          // returning the number and optionally registering the line as
          // changed.
          function changeLine(doc, handle, changeType, op) {
            var no = handle, line = handle;
            if (typeof handle == "number") line = getLine(doc, clipLine(doc, handle));
            else no = lineNo(handle);
            if (no == null) return null;
            if (op(line, no) && doc.cm) regLineChange(doc.cm, no, changeType);
            return line;
          }
        
          // Helper for deleting text near the selection(s), used to implement
          // backspace, delete, and similar functionality.
          function deleteNearSelection(cm, compute) {
            var ranges = cm.doc.sel.ranges, kill = [];
            // Build up a set of ranges to kill first, merging overlapping
            // ranges.
            for (var i = 0; i < ranges.length; i++) {
              var toKill = compute(ranges[i]);
              while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) {
                var replaced = kill.pop();
                if (cmp(replaced.from, toKill.from) < 0) {
                  toKill.from = replaced.from;
                  break;
                }
              }
              kill.push(toKill);
            }
            // Next, remove those actual ranges.
            runInOp(cm, function() {
              for (var i = kill.length - 1; i >= 0; i--)
                replaceRange(cm.doc, "", kill[i].from, kill[i].to, "+delete");
              ensureCursorVisible(cm);
            });
          }
        
          // Used for horizontal relative motion. Dir is -1 or 1 (left or
          // right), unit can be "char", "column" (like char, but doesn't
          // cross line boundaries), "word" (across next word), or "group" (to
          // the start of next group of word or non-word-non-whitespace
          // chars). The visually param controls whether, in right-to-left
          // text, direction 1 means to move towards the next index in the
          // string, or towards the character to the right of the current
          // position. The resulting position will have a hitSide=true
          // property if it reached the end of the document.
          function findPosH(doc, pos, dir, unit, visually) {
            var line = pos.line, ch = pos.ch, origDir = dir;
            var lineObj = getLine(doc, line);
            var possible = true;
            function findNextLine() {
              var l = line + dir;
              if (l < doc.first || l >= doc.first + doc.size) return (possible = false);
              line = l;
              return lineObj = getLine(doc, l);
            }
            function moveOnce(boundToLine) {
              var next = (visually ? moveVisually : moveLogically)(lineObj, ch, dir, true);
              if (next == null) {
                if (!boundToLine && findNextLine()) {
                  if (visually) ch = (dir < 0 ? lineRight : lineLeft)(lineObj);
                  else ch = dir < 0 ? lineObj.text.length : 0;
                } else return (possible = false);
              } else ch = next;
              return true;
            }
        
            if (unit == "char") moveOnce();
            else if (unit == "column") moveOnce(true);
            else if (unit == "word" || unit == "group") {
              var sawType = null, group = unit == "group";
              var helper = doc.cm && doc.cm.getHelper(pos, "wordChars");
              for (var first = true;; first = false) {
                if (dir < 0 && !moveOnce(!first)) break;
                var cur = lineObj.text.charAt(ch) || "\n";
                var type = isWordChar(cur, helper) ? "w"
                  : group && cur == "\n" ? "n"
                  : !group || /\s/.test(cur) ? null
                  : "p";
                if (group && !first && !type) type = "s";
                if (sawType && sawType != type) {
                  if (dir < 0) {dir = 1; moveOnce();}
                  break;
                }
        
                if (type) sawType = type;
                if (dir > 0 && !moveOnce(!first)) break;
              }
            }
            var result = skipAtomic(doc, Pos(line, ch), origDir, true);
            if (!possible) result.hitSide = true;
            return result;
          }
        
          // For relative vertical movement. Dir may be -1 or 1. Unit can be
          // "page" or "line". The resulting position will have a hitSide=true
          // property if it reached the end of the document.
          function findPosV(cm, pos, dir, unit) {
            var doc = cm.doc, x = pos.left, y;
            if (unit == "page") {
              var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight);
              y = pos.top + dir * (pageSize - (dir < 0 ? 1.5 : .5) * textHeight(cm.display));
            } else if (unit == "line") {
              y = dir > 0 ? pos.bottom + 3 : pos.top - 3;
            }
            for (;;) {
              var target = coordsChar(cm, x, y);
              if (!target.outside) break;
              if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break; }
              y += dir * 5;
            }
            return target;
          }
        
          // EDITOR METHODS
        
          // The publicly visible API. Note that methodOp(f) means
          // 'wrap f in an operation, performed on its `this` parameter'.
        
          // This is not the complete set of editor methods. Most of the
          // methods defined on the Doc type are also injected into
          // CodeMirror.prototype, for backwards compatibility and
          // convenience.
        
          CodeMirror.prototype = {
            constructor: CodeMirror,
            focus: function(){window.focus(); this.display.input.focus();},
        
            setOption: function(option, value) {
              var options = this.options, old = options[option];
              if (options[option] == value && option != "mode") return;
              options[option] = value;
              if (optionHandlers.hasOwnProperty(option))
                operation(this, optionHandlers[option])(this, value, old);
            },
        
            getOption: function(option) {return this.options[option];},
            getDoc: function() {return this.doc;},
        
            addKeyMap: function(map, bottom) {
              this.state.keyMaps[bottom ? "push" : "unshift"](getKeyMap(map));
            },
            removeKeyMap: function(map) {
              var maps = this.state.keyMaps;
              for (var i = 0; i < maps.length; ++i)
                if (maps[i] == map || maps[i].name == map) {
                  maps.splice(i, 1);
                  return true;
                }
            },
        
            addOverlay: methodOp(function(spec, options) {
              var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec);
              if (mode.startState) throw new Error("Overlays may not be stateful.");
              this.state.overlays.push({mode: mode, modeSpec: spec, opaque: options && options.opaque});
              this.state.modeGen++;
              regChange(this);
            }),
            removeOverlay: methodOp(function(spec) {
              var overlays = this.state.overlays;
              for (var i = 0; i < overlays.length; ++i) {
                var cur = overlays[i].modeSpec;
                if (cur == spec || typeof spec == "string" && cur.name == spec) {
                  overlays.splice(i, 1);
                  this.state.modeGen++;
                  regChange(this);
                  return;
                }
              }
            }),
        
            indentLine: methodOp(function(n, dir, aggressive) {
              if (typeof dir != "string" && typeof dir != "number") {
                if (dir == null) dir = this.options.smartIndent ? "smart" : "prev";
                else dir = dir ? "add" : "subtract";
              }
              if (isLine(this.doc, n)) indentLine(this, n, dir, aggressive);
            }),
            indentSelection: methodOp(function(how) {
              var ranges = this.doc.sel.ranges, end = -1;
              for (var i = 0; i < ranges.length; i++) {
                var range = ranges[i];
                if (!range.empty()) {
                  var from = range.from(), to = range.to();
                  var start = Math.max(end, from.line);
                  end = Math.min(this.lastLine(), to.line - (to.ch ? 0 : 1)) + 1;
                  for (var j = start; j < end; ++j)
                    indentLine(this, j, how);
                  var newRanges = this.doc.sel.ranges;
                  if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0)
                    replaceOneSelection(this.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll);
                } else if (range.head.line > end) {
                  indentLine(this, range.head.line, how, true);
                  end = range.head.line;
                  if (i == this.doc.sel.primIndex) ensureCursorVisible(this);
                }
              }
            }),
        
            // Fetch the parser token for a given character. Useful for hacks
            // that want to inspect the mode state (say, for completion).
            getTokenAt: function(pos, precise) {
              return takeToken(this, pos, precise);
            },
        
            getLineTokens: function(line, precise) {
              return takeToken(this, Pos(line), precise, true);
            },
        
            getTokenTypeAt: function(pos) {
              pos = clipPos(this.doc, pos);
              var styles = getLineStyles(this, getLine(this.doc, pos.line));
              var before = 0, after = (styles.length - 1) / 2, ch = pos.ch;
              var type;
              if (ch == 0) type = styles[2];
              else for (;;) {
                var mid = (before + after) >> 1;
                if ((mid ? styles[mid * 2 - 1] : 0) >= ch) after = mid;
                else if (styles[mid * 2 + 1] < ch) before = mid + 1;
                else { type = styles[mid * 2 + 2]; break; }
              }
              var cut = type ? type.indexOf("cm-overlay ") : -1;
              return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1);
            },
        
            getModeAt: function(pos) {
              var mode = this.doc.mode;
              if (!mode.innerMode) return mode;
              return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode;
            },
        
            getHelper: function(pos, type) {
              return this.getHelpers(pos, type)[0];
            },
        
            getHelpers: function(pos, type) {
              var found = [];
              if (!helpers.hasOwnProperty(type)) return found;
              var help = helpers[type], mode = this.getModeAt(pos);
              if (typeof mode[type] == "string") {
                if (help[mode[type]]) found.push(help[mode[type]]);
              } else if (mode[type]) {
                for (var i = 0; i < mode[type].length; i++) {
                  var val = help[mode[type][i]];
                  if (val) found.push(val);
                }
              } else if (mode.helperType && help[mode.helperType]) {
                found.push(help[mode.helperType]);
              } else if (help[mode.name]) {
                found.push(help[mode.name]);
              }
              for (var i = 0; i < help._global.length; i++) {
                var cur = help._global[i];
                if (cur.pred(mode, this) && indexOf(found, cur.val) == -1)
                  found.push(cur.val);
              }
              return found;
            },
        
            getStateAfter: function(line, precise) {
              var doc = this.doc;
              line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);
              return getStateBefore(this, line + 1, precise);
            },
        
            cursorCoords: function(start, mode) {
              var pos, range = this.doc.sel.primary();
              if (start == null) pos = range.head;
              else if (typeof start == "object") pos = clipPos(this.doc, start);
              else pos = start ? range.from() : range.to();
              return cursorCoords(this, pos, mode || "page");
            },
        
            charCoords: function(pos, mode) {
              return charCoords(this, clipPos(this.doc, pos), mode || "page");
            },
        
            coordsChar: function(coords, mode) {
              coords = fromCoordSystem(this, coords, mode || "page");
              return coordsChar(this, coords.left, coords.top);
            },
        
            lineAtHeight: function(height, mode) {
              height = fromCoordSystem(this, {top: height, left: 0}, mode || "page").top;
              return lineAtHeight(this.doc, height + this.display.viewOffset);
            },
            heightAtLine: function(line, mode) {
              var end = false, lineObj;
              if (typeof line == "number") {
                var last = this.doc.first + this.doc.size - 1;
                if (line < this.doc.first) line = this.doc.first;
                else if (line > last) { line = last; end = true; }
                lineObj = getLine(this.doc, line);
              } else {
                lineObj = line;
              }
              return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || "page").top +
                (end ? this.doc.height - heightAtLine(lineObj) : 0);
            },
        
            defaultTextHeight: function() { return textHeight(this.display); },
            defaultCharWidth: function() { return charWidth(this.display); },
        
            setGutterMarker: methodOp(function(line, gutterID, value) {
              return changeLine(this.doc, line, "gutter", function(line) {
                var markers = line.gutterMarkers || (line.gutterMarkers = {});
                markers[gutterID] = value;
                if (!value && isEmpty(markers)) line.gutterMarkers = null;
                return true;
              });
            }),
        
            clearGutter: methodOp(function(gutterID) {
              var cm = this, doc = cm.doc, i = doc.first;
              doc.iter(function(line) {
                if (line.gutterMarkers && line.gutterMarkers[gutterID]) {
                  line.gutterMarkers[gutterID] = null;
                  regLineChange(cm, i, "gutter");
                  if (isEmpty(line.gutterMarkers)) line.gutterMarkers = null;
                }
                ++i;
              });
            }),
        
            lineInfo: function(line) {
              if (typeof line == "number") {
                if (!isLine(this.doc, line)) return null;
                var n = line;
                line = getLine(this.doc, line);
                if (!line) return null;
              } else {
                var n = lineNo(line);
                if (n == null) return null;
              }
              return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers,
                      textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass,
                      widgets: line.widgets};
            },
        
            getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo};},
        
            addWidget: function(pos, node, scroll, vert, horiz) {
              var display = this.display;
              pos = cursorCoords(this, clipPos(this.doc, pos));
              var top = pos.bottom, left = pos.left;
              node.style.position = "absolute";
              node.setAttribute("cm-ignore-events", "true");
              this.display.input.setUneditable(node);
              display.sizer.appendChild(node);
              if (vert == "over") {
                top = pos.top;
              } else if (vert == "above" || vert == "near") {
                var vspace = Math.max(display.wrapper.clientHeight, this.doc.height),
                hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth);
                // Default to positioning above (if specified and possible); otherwise default to positioning below
                if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight)
                  top = pos.top - node.offsetHeight;
                else if (pos.bottom + node.offsetHeight <= vspace)
                  top = pos.bottom;
                if (left + node.offsetWidth > hspace)
                  left = hspace - node.offsetWidth;
              }
              node.style.top = top + "px";
              node.style.left = node.style.right = "";
              if (horiz == "right") {
                left = display.sizer.clientWidth - node.offsetWidth;
                node.style.right = "0px";
              } else {
                if (horiz == "left") left = 0;
                else if (horiz == "middle") left = (display.sizer.clientWidth - node.offsetWidth) / 2;
                node.style.left = left + "px";
              }
              if (scroll)
                scrollIntoView(this, left, top, left + node.offsetWidth, top + node.offsetHeight);
            },
        
            triggerOnKeyDown: methodOp(onKeyDown),
            triggerOnKeyPress: methodOp(onKeyPress),
            triggerOnKeyUp: onKeyUp,
        
            execCommand: function(cmd) {
              if (commands.hasOwnProperty(cmd))
                return commands[cmd].call(null, this);
            },
        
            triggerElectric: methodOp(function(text) { triggerElectric(this, text); }),
        
            findPosH: function(from, amount, unit, visually) {
              var dir = 1;
              if (amount < 0) { dir = -1; amount = -amount; }
              for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) {
                cur = findPosH(this.doc, cur, dir, unit, visually);
                if (cur.hitSide) break;
              }
              return cur;
            },
        
            moveH: methodOp(function(dir, unit) {
              var cm = this;
              cm.extendSelectionsBy(function(range) {
                if (cm.display.shift || cm.doc.extend || range.empty())
                  return findPosH(cm.doc, range.head, dir, unit, cm.options.rtlMoveVisually);
                else
                  return dir < 0 ? range.from() : range.to();
              }, sel_move);
            }),
        
            deleteH: methodOp(function(dir, unit) {
              var sel = this.doc.sel, doc = this.doc;
              if (sel.somethingSelected())
                doc.replaceSelection("", null, "+delete");
              else
                deleteNearSelection(this, function(range) {
                  var other = findPosH(doc, range.head, dir, unit, false);
                  return dir < 0 ? {from: other, to: range.head} : {from: range.head, to: other};
                });
            }),
        
            findPosV: function(from, amount, unit, goalColumn) {
              var dir = 1, x = goalColumn;
              if (amount < 0) { dir = -1; amount = -amount; }
              for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) {
                var coords = cursorCoords(this, cur, "div");
                if (x == null) x = coords.left;
                else coords.left = x;
                cur = findPosV(this, coords, dir, unit);
                if (cur.hitSide) break;
              }
              return cur;
            },
        
            moveV: methodOp(function(dir, unit) {
              var cm = this, doc = this.doc, goals = [];
              var collapse = !cm.display.shift && !doc.extend && doc.sel.somethingSelected();
              doc.extendSelectionsBy(function(range) {
                if (collapse)
                  return dir < 0 ? range.from() : range.to();
                var headPos = cursorCoords(cm, range.head, "div");
                if (range.goalColumn != null) headPos.left = range.goalColumn;
                goals.push(headPos.left);
                var pos = findPosV(cm, headPos, dir, unit);
                if (unit == "page" && range == doc.sel.primary())
                  addToScrollPos(cm, null, charCoords(cm, pos, "div").top - headPos.top);
                return pos;
              }, sel_move);
              if (goals.length) for (var i = 0; i < doc.sel.ranges.length; i++)
                doc.sel.ranges[i].goalColumn = goals[i];
            }),
        
            // Find the word at the given position (as returned by coordsChar).
            findWordAt: function(pos) {
              var doc = this.doc, line = getLine(doc, pos.line).text;
              var start = pos.ch, end = pos.ch;
              if (line) {
                var helper = this.getHelper(pos, "wordChars");
                if ((pos.xRel < 0 || end == line.length) && start) --start; else ++end;
                var startChar = line.charAt(start);
                var check = isWordChar(startChar, helper)
                  ? function(ch) { return isWordChar(ch, helper); }
                  : /\s/.test(startChar) ? function(ch) {return /\s/.test(ch);}
                  : function(ch) {return !/\s/.test(ch) && !isWordChar(ch);};
                while (start > 0 && check(line.charAt(start - 1))) --start;
                while (end < line.length && check(line.charAt(end))) ++end;
              }
              return new Range(Pos(pos.line, start), Pos(pos.line, end));
            },
        
            toggleOverwrite: function(value) {
              if (value != null && value == this.state.overwrite) return;
              if (this.state.overwrite = !this.state.overwrite)
                addClass(this.display.cursorDiv, "CodeMirror-overwrite");
              else
                rmClass(this.display.cursorDiv, "CodeMirror-overwrite");
        
              signal(this, "overwriteToggle", this, this.state.overwrite);
            },
            hasFocus: function() { return this.display.input.getField() == activeElt(); },
        
            scrollTo: methodOp(function(x, y) {
              if (x != null || y != null) resolveScrollToPos(this);
              if (x != null) this.curOp.scrollLeft = x;
              if (y != null) this.curOp.scrollTop = y;
            }),
            getScrollInfo: function() {
              var scroller = this.display.scroller;
              return {left: scroller.scrollLeft, top: scroller.scrollTop,
                      height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight,
                      width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth,
                      clientHeight: displayHeight(this), clientWidth: displayWidth(this)};
            },
        
            scrollIntoView: methodOp(function(range, margin) {
              if (range == null) {
                range = {from: this.doc.sel.primary().head, to: null};
                if (margin == null) margin = this.options.cursorScrollMargin;
              } else if (typeof range == "number") {
                range = {from: Pos(range, 0), to: null};
              } else if (range.from == null) {
                range = {from: range, to: null};
              }
              if (!range.to) range.to = range.from;
              range.margin = margin || 0;
        
              if (range.from.line != null) {
                resolveScrollToPos(this);
                this.curOp.scrollToPos = range;
              } else {
                var sPos = calculateScrollPos(this, Math.min(range.from.left, range.to.left),
                                              Math.min(range.from.top, range.to.top) - range.margin,
                                              Math.max(range.from.right, range.to.right),
                                              Math.max(range.from.bottom, range.to.bottom) + range.margin);
                this.scrollTo(sPos.scrollLeft, sPos.scrollTop);
              }
            }),
        
            setSize: methodOp(function(width, height) {
              var cm = this;
              function interpret(val) {
                return typeof val == "number" || /^\d+$/.test(String(val)) ? val + "px" : val;
              }
              if (width != null) cm.display.wrapper.style.width = interpret(width);
              if (height != null) cm.display.wrapper.style.height = interpret(height);
              if (cm.options.lineWrapping) clearLineMeasurementCache(this);
              var lineNo = cm.display.viewFrom;
              cm.doc.iter(lineNo, cm.display.viewTo, function(line) {
                if (line.widgets) for (var i = 0; i < line.widgets.length; i++)
                  if (line.widgets[i].noHScroll) { regLineChange(cm, lineNo, "widget"); break; }
                ++lineNo;
              });
              cm.curOp.forceUpdate = true;
              signal(cm, "refresh", this);
            }),
        
            operation: function(f){return runInOp(this, f);},
        
            refresh: methodOp(function() {
              var oldHeight = this.display.cachedTextHeight;
              regChange(this);
              this.curOp.forceUpdate = true;
              clearCaches(this);
              this.scrollTo(this.doc.scrollLeft, this.doc.scrollTop);
              updateGutterSpace(this);
              if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5)
                estimateLineHeights(this);
              signal(this, "refresh", this);
            }),
        
            swapDoc: methodOp(function(doc) {
              var old = this.doc;
              old.cm = null;
              attachDoc(this, doc);
              clearCaches(this);
              this.display.input.reset();
              this.scrollTo(doc.scrollLeft, doc.scrollTop);
              this.curOp.forceScroll = true;
              signalLater(this, "swapDoc", this, old);
              return old;
            }),
        
            getInputField: function(){return this.display.input.getField();},
            getWrapperElement: function(){return this.display.wrapper;},
            getScrollerElement: function(){return this.display.scroller;},
            getGutterElement: function(){return this.display.gutters;}
          };
          eventMixin(CodeMirror);
        
          // OPTION DEFAULTS
        
          // The default configuration options.
          var defaults = CodeMirror.defaults = {};
          // Functions to run when options are changed.
          var optionHandlers = CodeMirror.optionHandlers = {};
        
          function option(name, deflt, handle, notOnInit) {
            CodeMirror.defaults[name] = deflt;
            if (handle) optionHandlers[name] =
              notOnInit ? function(cm, val, old) {if (old != Init) handle(cm, val, old);} : handle;
          }
        
          // Passed to option handlers when there is no old value.
          var Init = CodeMirror.Init = {toString: function(){return "CodeMirror.Init";}};
        
          // These two are, on init, called from the constructor because they
          // have to be initialized before the editor can start at all.
          option("value", "", function(cm, val) {
            cm.setValue(val);
          }, true);
          option("mode", null, function(cm, val) {
            cm.doc.modeOption = val;
            loadMode(cm);
          }, true);
        
          option("indentUnit", 2, loadMode, true);
          option("indentWithTabs", false);
          option("smartIndent", true);
          option("tabSize", 4, function(cm) {
            resetModeState(cm);
            clearCaches(cm);
            regChange(cm);
          }, true);
          option("lineSeparator", null, function(cm, val) {
            cm.doc.lineSep = val;
            if (!val) return;
            var newBreaks = [], lineNo = cm.doc.first;
            cm.doc.iter(function(line) {
              for (var pos = 0;;) {
                var found = line.text.indexOf(val, pos);
                if (found == -1) break;
                pos = found + val.length;
                newBreaks.push(Pos(lineNo, found));
              }
              lineNo++;
            });
            for (var i = newBreaks.length - 1; i >= 0; i--)
              replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length))
          });
          option("specialChars", /[\t\u0000-\u0019\u00ad\u200b-\u200f\u2028\u2029\ufeff]/g, function(cm, val, old) {
            cm.state.specialChars = new RegExp(val.source + (val.test("\t") ? "" : "|\t"), "g");
            if (old != CodeMirror.Init) cm.refresh();
          });
          option("specialCharPlaceholder", defaultSpecialCharPlaceholder, function(cm) {cm.refresh();}, true);
          option("electricChars", true);
          option("inputStyle", mobile ? "contenteditable" : "textarea", function() {
            throw new Error("inputStyle can not (yet) be changed in a running editor"); // FIXME
          }, true);
          option("rtlMoveVisually", !windows);
          option("wholeLineUpdateBefore", true);
        
          option("theme", "default", function(cm) {
            themeChanged(cm);
            guttersChanged(cm);
          }, true);
          option("keyMap", "default", function(cm, val, old) {
            var next = getKeyMap(val);
            var prev = old != CodeMirror.Init && getKeyMap(old);
            if (prev && prev.detach) prev.detach(cm, next);
            if (next.attach) next.attach(cm, prev || null);
          });
          option("extraKeys", null);
        
          option("lineWrapping", false, wrappingChanged, true);
          option("gutters", [], function(cm) {
            setGuttersForLineNumbers(cm.options);
            guttersChanged(cm);
          }, true);
          option("fixedGutter", true, function(cm, val) {
            cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + "px" : "0";
            cm.refresh();
          }, true);
          option("coverGutterNextToScrollbar", false, function(cm) {updateScrollbars(cm);}, true);
          option("scrollbarStyle", "native", function(cm) {
            initScrollbars(cm);
            updateScrollbars(cm);
            cm.display.scrollbars.setScrollTop(cm.doc.scrollTop);
            cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft);
          }, true);
          option("lineNumbers", false, function(cm) {
            setGuttersForLineNumbers(cm.options);
            guttersChanged(cm);
          }, true);
          option("firstLineNumber", 1, guttersChanged, true);
          option("lineNumberFormatter", function(integer) {return integer;}, guttersChanged, true);
          option("showCursorWhenSelecting", false, updateSelection, true);
        
          option("resetSelectionOnContextMenu", true);
          option("lineWiseCopyCut", true);
        
          option("readOnly", false, function(cm, val) {
            if (val == "nocursor") {
              onBlur(cm);
              cm.display.input.blur();
              cm.display.disabled = true;
            } else {
              cm.display.disabled = false;
            }
            cm.display.input.readOnlyChanged(val)
          });
          option("disableInput", false, function(cm, val) {if (!val) cm.display.input.reset();}, true);
          option("dragDrop", true, dragDropChanged);
          option("allowDropFileTypes", null);
        
          option("cursorBlinkRate", 530);
          option("cursorScrollMargin", 0);
          option("cursorHeight", 1, updateSelection, true);
          option("singleCursorHeightPerLine", true, updateSelection, true);
          option("workTime", 100);
          option("workDelay", 100);
          option("flattenSpans", true, resetModeState, true);
          option("addModeClass", false, resetModeState, true);
          option("pollInterval", 100);
          option("undoDepth", 200, function(cm, val){cm.doc.history.undoDepth = val;});
          option("historyEventDelay", 1250);
          option("viewportMargin", 10, function(cm){cm.refresh();}, true);
          option("maxHighlightLength", 10000, resetModeState, true);
          option("moveInputWithCursor", true, function(cm, val) {
            if (!val) cm.display.input.resetPosition();
          });
        
          option("tabindex", null, function(cm, val) {
            cm.display.input.getField().tabIndex = val || "";
          });
          option("autofocus", null);
        
          // MODE DEFINITION AND QUERYING
        
          // Known modes, by name and by MIME
          var modes = CodeMirror.modes = {}, mimeModes = CodeMirror.mimeModes = {};
        
          // Extra arguments are stored as the mode's dependencies, which is
          // used by (legacy) mechanisms like loadmode.js to automatically
          // load a mode. (Preferred mechanism is the require/define calls.)
          CodeMirror.defineMode = function(name, mode) {
            if (!CodeMirror.defaults.mode && name != "null") CodeMirror.defaults.mode = name;
            if (arguments.length > 2)
              mode.dependencies = Array.prototype.slice.call(arguments, 2);
            modes[name] = mode;
          };
        
          CodeMirror.defineMIME = function(mime, spec) {
            mimeModes[mime] = spec;
          };
        
          // Given a MIME type, a {name, ...options} config object, or a name
          // string, return a mode config object.
          CodeMirror.resolveMode = function(spec) {
            if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) {
              spec = mimeModes[spec];
            } else if (spec && typeof spec.name == "string" && mimeModes.hasOwnProperty(spec.name)) {
              var found = mimeModes[spec.name];
              if (typeof found == "string") found = {name: found};
              spec = createObj(found, spec);
              spec.name = found.name;
            } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+xml$/.test(spec)) {
              return CodeMirror.resolveMode("application/xml");
            }
            if (typeof spec == "string") return {name: spec};
            else return spec || {name: "null"};
          };
        
          // Given a mode spec (anything that resolveMode accepts), find and
          // initialize an actual mode object.
          CodeMirror.getMode = function(options, spec) {
            var spec = CodeMirror.resolveMode(spec);
            var mfactory = modes[spec.name];
            if (!mfactory) return CodeMirror.getMode(options, "text/plain");
            var modeObj = mfactory(options, spec);
            if (modeExtensions.hasOwnProperty(spec.name)) {
              var exts = modeExtensions[spec.name];
              for (var prop in exts) {
                if (!exts.hasOwnProperty(prop)) continue;
                if (modeObj.hasOwnProperty(prop)) modeObj["_" + prop] = modeObj[prop];
                modeObj[prop] = exts[prop];
              }
            }
            modeObj.name = spec.name;
            if (spec.helperType) modeObj.helperType = spec.helperType;
            if (spec.modeProps) for (var prop in spec.modeProps)
              modeObj[prop] = spec.modeProps[prop];
        
            return modeObj;
          };
        
          // Minimal default mode.
          CodeMirror.defineMode("null", function() {
            return {token: function(stream) {stream.skipToEnd();}};
          });
          CodeMirror.defineMIME("text/plain", "null");
        
          // This can be used to attach properties to mode objects from
          // outside the actual mode definition.
          var modeExtensions = CodeMirror.modeExtensions = {};
          CodeMirror.extendMode = function(mode, properties) {
            var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});
            copyObj(properties, exts);
          };
        
          // EXTENSIONS
        
          CodeMirror.defineExtension = function(name, func) {
            CodeMirror.prototype[name] = func;
          };
          CodeMirror.defineDocExtension = function(name, func) {
            Doc.prototype[name] = func;
          };
          CodeMirror.defineOption = option;
        
          var initHooks = [];
          CodeMirror.defineInitHook = function(f) {initHooks.push(f);};
        
          var helpers = CodeMirror.helpers = {};
          CodeMirror.registerHelper = function(type, name, value) {
            if (!helpers.hasOwnProperty(type)) helpers[type] = CodeMirror[type] = {_global: []};
            helpers[type][name] = value;
          };
          CodeMirror.registerGlobalHelper = function(type, name, predicate, value) {
            CodeMirror.registerHelper(type, name, value);
            helpers[type]._global.push({pred: predicate, val: value});
          };
        
          // MODE STATE HANDLING
        
          // Utility functions for working with state. Exported because nested
          // modes need to do this for their inner modes.
        
          var copyState = CodeMirror.copyState = function(mode, state) {
            if (state === true) return state;
            if (mode.copyState) return mode.copyState(state);
            var nstate = {};
            for (var n in state) {
              var val = state[n];
              if (val instanceof Array) val = val.concat([]);
              nstate[n] = val;
            }
            return nstate;
          };
        
          var startState = CodeMirror.startState = function(mode, a1, a2) {
            return mode.startState ? mode.startState(a1, a2) : true;
          };
        
          // Given a mode and a state (for that mode), find the inner mode and
          // state at the position that the state refers to.
          CodeMirror.innerMode = function(mode, state) {
            while (mode.innerMode) {
              var info = mode.innerMode(state);
              if (!info || info.mode == mode) break;
              state = info.state;
              mode = info.mode;
            }
            return info || {mode: mode, state: state};
          };
        
          // STANDARD COMMANDS
        
          // Commands are parameter-less actions that can be performed on an
          // editor, mostly used for keybindings.
          var commands = CodeMirror.commands = {
            selectAll: function(cm) {cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll);},
            singleSelection: function(cm) {
              cm.setSelection(cm.getCursor("anchor"), cm.getCursor("head"), sel_dontScroll);
            },
            killLine: function(cm) {
              deleteNearSelection(cm, function(range) {
                if (range.empty()) {
                  var len = getLine(cm.doc, range.head.line).text.length;
                  if (range.head.ch == len && range.head.line < cm.lastLine())
                    return {from: range.head, to: Pos(range.head.line + 1, 0)};
                  else
                    return {from: range.head, to: Pos(range.head.line, len)};
                } else {
                  return {from: range.from(), to: range.to()};
                }
              });
            },
            deleteLine: function(cm) {
              deleteNearSelection(cm, function(range) {
                return {from: Pos(range.from().line, 0),
                        to: clipPos(cm.doc, Pos(range.to().line + 1, 0))};
              });
            },
            delLineLeft: function(cm) {
              deleteNearSelection(cm, function(range) {
                return {from: Pos(range.from().line, 0), to: range.from()};
              });
            },
            delWrappedLineLeft: function(cm) {
              deleteNearSelection(cm, function(range) {
                var top = cm.charCoords(range.head, "div").top + 5;
                var leftPos = cm.coordsChar({left: 0, top: top}, "div");
                return {from: leftPos, to: range.from()};
              });
            },
            delWrappedLineRight: function(cm) {
              deleteNearSelection(cm, function(range) {
                var top = cm.charCoords(range.head, "div").top + 5;
                var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div");
                return {from: range.from(), to: rightPos };
              });
            },
            undo: function(cm) {cm.undo();},
            redo: function(cm) {cm.redo();},
            undoSelection: function(cm) {cm.undoSelection();},
            redoSelection: function(cm) {cm.redoSelection();},
            goDocStart: function(cm) {cm.extendSelection(Pos(cm.firstLine(), 0));},
            goDocEnd: function(cm) {cm.extendSelection(Pos(cm.lastLine()));},
            goLineStart: function(cm) {
              cm.extendSelectionsBy(function(range) { return lineStart(cm, range.head.line); },
                                    {origin: "+move", bias: 1});
            },
            goLineStartSmart: function(cm) {
              cm.extendSelectionsBy(function(range) {
                return lineStartSmart(cm, range.head);
              }, {origin: "+move", bias: 1});
            },
            goLineEnd: function(cm) {
              cm.extendSelectionsBy(function(range) { return lineEnd(cm, range.head.line); },
                                    {origin: "+move", bias: -1});
            },
            goLineRight: function(cm) {
              cm.extendSelectionsBy(function(range) {
                var top = cm.charCoords(range.head, "div").top + 5;
                return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div");
              }, sel_move);
            },
            goLineLeft: function(cm) {
              cm.extendSelectionsBy(function(range) {
                var top = cm.charCoords(range.head, "div").top + 5;
                return cm.coordsChar({left: 0, top: top}, "div");
              }, sel_move);
            },
            goLineLeftSmart: function(cm) {
              cm.extendSelectionsBy(function(range) {
                var top = cm.charCoords(range.head, "div").top + 5;
                var pos = cm.coordsChar({left: 0, top: top}, "div");
                if (pos.ch < cm.getLine(pos.line).search(/\S/)) return lineStartSmart(cm, range.head);
                return pos;
              }, sel_move);
            },
            goLineUp: function(cm) {cm.moveV(-1, "line");},
            goLineDown: function(cm) {cm.moveV(1, "line");},
            goPageUp: function(cm) {cm.moveV(-1, "page");},
            goPageDown: function(cm) {cm.moveV(1, "page");},
            goCharLeft: function(cm) {cm.moveH(-1, "char");},
            goCharRight: function(cm) {cm.moveH(1, "char");},
            goColumnLeft: function(cm) {cm.moveH(-1, "column");},
            goColumnRight: function(cm) {cm.moveH(1, "column");},
            goWordLeft: function(cm) {cm.moveH(-1, "word");},
            goGroupRight: function(cm) {cm.moveH(1, "group");},
            goGroupLeft: function(cm) {cm.moveH(-1, "group");},
            goWordRight: function(cm) {cm.moveH(1, "word");},
            delCharBefore: function(cm) {cm.deleteH(-1, "char");},
            delCharAfter: function(cm) {cm.deleteH(1, "char");},
            delWordBefore: function(cm) {cm.deleteH(-1, "word");},
            delWordAfter: function(cm) {cm.deleteH(1, "word");},
            delGroupBefore: function(cm) {cm.deleteH(-1, "group");},
            delGroupAfter: function(cm) {cm.deleteH(1, "group");},
            indentAuto: function(cm) {cm.indentSelection("smart");},
            indentMore: function(cm) {cm.indentSelection("add");},
            indentLess: function(cm) {cm.indentSelection("subtract");},
            insertTab: function(cm) {cm.replaceSelection("\t");},
            insertSoftTab: function(cm) {
              var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize;
              for (var i = 0; i < ranges.length; i++) {
                var pos = ranges[i].from();
                var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize);
                spaces.push(new Array(tabSize - col % tabSize + 1).join(" "));
              }
              cm.replaceSelections(spaces);
            },
            defaultTab: function(cm) {
              if (cm.somethingSelected()) cm.indentSelection("add");
              else cm.execCommand("insertTab");
            },
            transposeChars: function(cm) {
              runInOp(cm, function() {
                var ranges = cm.listSelections(), newSel = [];
                for (var i = 0; i < ranges.length; i++) {
                  var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text;
                  if (line) {
                    if (cur.ch == line.length) cur = new Pos(cur.line, cur.ch - 1);
                    if (cur.ch > 0) {
                      cur = new Pos(cur.line, cur.ch + 1);
                      cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2),
                                      Pos(cur.line, cur.ch - 2), cur, "+transpose");
                    } else if (cur.line > cm.doc.first) {
                      var prev = getLine(cm.doc, cur.line - 1).text;
                      if (prev)
                        cm.replaceRange(line.charAt(0) + cm.doc.lineSeparator() +
                                        prev.charAt(prev.length - 1),
                                        Pos(cur.line - 1, prev.length - 1), Pos(cur.line, 1), "+transpose");
                    }
                  }
                  newSel.push(new Range(cur, cur));
                }
                cm.setSelections(newSel);
              });
            },
            newlineAndIndent: function(cm) {
              runInOp(cm, function() {
                var len = cm.listSelections().length;
                for (var i = 0; i < len; i++) {
                  var range = cm.listSelections()[i];
                  cm.replaceRange(cm.doc.lineSeparator(), range.anchor, range.head, "+input");
                  cm.indentLine(range.from().line + 1, null, true);
                }
                ensureCursorVisible(cm);
              });
            },
            toggleOverwrite: function(cm) {cm.toggleOverwrite();}
          };
        
        
          // STANDARD KEYMAPS
        
          var keyMap = CodeMirror.keyMap = {};
        
          keyMap.basic = {
            "Left": "goCharLeft", "Right": "goCharRight", "Up": "goLineUp", "Down": "goLineDown",
            "End": "goLineEnd", "Home": "goLineStartSmart", "PageUp": "goPageUp", "PageDown": "goPageDown",
            "Delete": "delCharAfter", "Backspace": "delCharBefore", "Shift-Backspace": "delCharBefore",
            "Tab": "defaultTab", "Shift-Tab": "indentAuto",
            "Enter": "newlineAndIndent", "Insert": "toggleOverwrite",
            "Esc": "singleSelection"
          };
          // Note that the save and find-related commands aren't defined by
          // default. User code or addons can define them. Unknown commands
          // are simply ignored.
          keyMap.pcDefault = {
            "Ctrl-A": "selectAll", "Ctrl-D": "deleteLine", "Ctrl-Z": "undo", "Shift-Ctrl-Z": "redo", "Ctrl-Y": "redo",
            "Ctrl-Home": "goDocStart", "Ctrl-End": "goDocEnd", "Ctrl-Up": "goLineUp", "Ctrl-Down": "goLineDown",
            "Ctrl-Left": "goGroupLeft", "Ctrl-Right": "goGroupRight", "Alt-Left": "goLineStart", "Alt-Right": "goLineEnd",
            "Ctrl-Backspace": "delGroupBefore", "Ctrl-Delete": "delGroupAfter", "Ctrl-S": "save", "Ctrl-F": "find",
            "Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll",
            "Ctrl-[": "indentLess", "Ctrl-]": "indentMore",
            "Ctrl-U": "undoSelection", "Shift-Ctrl-U": "redoSelection", "Alt-U": "redoSelection",
            fallthrough: "basic"
          };
          // Very basic readline/emacs-style bindings, which are standard on Mac.
          keyMap.emacsy = {
            "Ctrl-F": "goCharRight", "Ctrl-B": "goCharLeft", "Ctrl-P": "goLineUp", "Ctrl-N": "goLineDown",
            "Alt-F": "goWordRight", "Alt-B": "goWordLeft", "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd",
            "Ctrl-V": "goPageDown", "Shift-Ctrl-V": "goPageUp", "Ctrl-D": "delCharAfter", "Ctrl-H": "delCharBefore",
            "Alt-D": "delWordAfter", "Alt-Backspace": "delWordBefore", "Ctrl-K": "killLine", "Ctrl-T": "transposeChars"
          };
          keyMap.macDefault = {
            "Cmd-A": "selectAll", "Cmd-D": "deleteLine", "Cmd-Z": "undo", "Shift-Cmd-Z": "redo", "Cmd-Y": "redo",
            "Cmd-Home": "goDocStart", "Cmd-Up": "goDocStart", "Cmd-End": "goDocEnd", "Cmd-Down": "goDocEnd", "Alt-Left": "goGroupLeft",
            "Alt-Right": "goGroupRight", "Cmd-Left": "goLineLeft", "Cmd-Right": "goLineRight", "Alt-Backspace": "delGroupBefore",
            "Ctrl-Alt-Backspace": "delGroupAfter", "Alt-Delete": "delGroupAfter", "Cmd-S": "save", "Cmd-F": "find",
            "Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll",
            "Cmd-[": "indentLess", "Cmd-]": "indentMore", "Cmd-Backspace": "delWrappedLineLeft", "Cmd-Delete": "delWrappedLineRight",
            "Cmd-U": "undoSelection", "Shift-Cmd-U": "redoSelection", "Ctrl-Up": "goDocStart", "Ctrl-Down": "goDocEnd",
            fallthrough: ["basic", "emacsy"]
          };
          keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault;
        
          // KEYMAP DISPATCH
        
          function normalizeKeyName(name) {
            var parts = name.split(/-(?!$)/), name = parts[parts.length - 1];
            var alt, ctrl, shift, cmd;
            for (var i = 0; i < parts.length - 1; i++) {
              var mod = parts[i];
              if (/^(cmd|meta|m)$/i.test(mod)) cmd = true;
              else if (/^a(lt)?$/i.test(mod)) alt = true;
              else if (/^(c|ctrl|control)$/i.test(mod)) ctrl = true;
              else if (/^s(hift)$/i.test(mod)) shift = true;
              else throw new Error("Unrecognized modifier name: " + mod);
            }
            if (alt) name = "Alt-" + name;
            if (ctrl) name = "Ctrl-" + name;
            if (cmd) name = "Cmd-" + name;
            if (shift) name = "Shift-" + name;
            return name;
          }
        
          // This is a kludge to keep keymaps mostly working as raw objects
          // (backwards compatibility) while at the same time support features
          // like normalization and multi-stroke key bindings. It compiles a
          // new normalized keymap, and then updates the old object to reflect
          // this.
          CodeMirror.normalizeKeyMap = function(keymap) {
            var copy = {};
            for (var keyname in keymap) if (keymap.hasOwnProperty(keyname)) {
              var value = keymap[keyname];
              if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) continue;
              if (value == "...") { delete keymap[keyname]; continue; }
        
              var keys = map(keyname.split(" "), normalizeKeyName);
              for (var i = 0; i < keys.length; i++) {
                var val, name;
                if (i == keys.length - 1) {
                  name = keys.join(" ");
                  val = value;
                } else {
                  name = keys.slice(0, i + 1).join(" ");
                  val = "...";
                }
                var prev = copy[name];
                if (!prev) copy[name] = val;
                else if (prev != val) throw new Error("Inconsistent bindings for " + name);
              }
              delete keymap[keyname];
            }
            for (var prop in copy) keymap[prop] = copy[prop];
            return keymap;
          };
        
          var lookupKey = CodeMirror.lookupKey = function(key, map, handle, context) {
            map = getKeyMap(map);
            var found = map.call ? map.call(key, context) : map[key];
            if (found === false) return "nothing";
            if (found === "...") return "multi";
            if (found != null && handle(found)) return "handled";
        
            if (map.fallthrough) {
              if (Object.prototype.toString.call(map.fallthrough) != "[object Array]")
                return lookupKey(key, map.fallthrough, handle, context);
              for (var i = 0; i < map.fallthrough.length; i++) {
                var result = lookupKey(key, map.fallthrough[i], handle, context);
                if (result) return result;
              }
            }
          };
        
          // Modifier key presses don't count as 'real' key presses for the
          // purpose of keymap fallthrough.
          var isModifierKey = CodeMirror.isModifierKey = function(value) {
            var name = typeof value == "string" ? value : keyNames[value.keyCode];
            return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod";
          };
        
          // Look up the name of a key as indicated by an event object.
          var keyName = CodeMirror.keyName = function(event, noShift) {
            if (presto && event.keyCode == 34 && event["char"]) return false;
            var base = keyNames[event.keyCode], name = base;
            if (name == null || event.altGraphKey) return false;
            if (event.altKey && base != "Alt") name = "Alt-" + name;
            if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != "Ctrl") name = "Ctrl-" + name;
            if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != "Cmd") name = "Cmd-" + name;
            if (!noShift && event.shiftKey && base != "Shift") name = "Shift-" + name;
            return name;
          };
        
          function getKeyMap(val) {
            return typeof val == "string" ? keyMap[val] : val;
          }
        
          // FROMTEXTAREA
        
          CodeMirror.fromTextArea = function(textarea, options) {
            options = options ? copyObj(options) : {};
            options.value = textarea.value;
            if (!options.tabindex && textarea.tabIndex)
              options.tabindex = textarea.tabIndex;
            if (!options.placeholder && textarea.placeholder)
              options.placeholder = textarea.placeholder;
            // Set autofocus to true if this textarea is focused, or if it has
            // autofocus and no other element is focused.
            if (options.autofocus == null) {
              var hasFocus = activeElt();
              options.autofocus = hasFocus == textarea ||
                textarea.getAttribute("autofocus") != null && hasFocus == document.body;
            }
        
            function save() {textarea.value = cm.getValue();}
            if (textarea.form) {
              on(textarea.form, "submit", save);
              // Deplorable hack to make the submit method do the right thing.
              if (!options.leaveSubmitMethodAlone) {
                var form = textarea.form, realSubmit = form.submit;
                try {
                  var wrappedSubmit = form.submit = function() {
                    save();
                    form.submit = realSubmit;
                    form.submit();
                    form.submit = wrappedSubmit;
                  };
                } catch(e) {}
              }
            }
        
            options.finishInit = function(cm) {
              cm.save = save;
              cm.getTextArea = function() { return textarea; };
              cm.toTextArea = function() {
                cm.toTextArea = isNaN; // Prevent this from being ran twice
                save();
                textarea.parentNode.removeChild(cm.getWrapperElement());
                textarea.style.display = "";
                if (textarea.form) {
                  off(textarea.form, "submit", save);
                  if (typeof textarea.form.submit == "function")
                    textarea.form.submit = realSubmit;
                }
              };
            };
        
            textarea.style.display = "none";
            var cm = CodeMirror(function(node) {
              textarea.parentNode.insertBefore(node, textarea.nextSibling);
            }, options);
            return cm;
          };
        
          // STRING STREAM
        
          // Fed to the mode parsers, provides helper functions to make
          // parsers more succinct.
        
          var StringStream = CodeMirror.StringStream = function(string, tabSize) {
            this.pos = this.start = 0;
            this.string = string;
            this.tabSize = tabSize || 8;
            this.lastColumnPos = this.lastColumnValue = 0;
            this.lineStart = 0;
          };
        
          StringStream.prototype = {
            eol: function() {return this.pos >= this.string.length;},
            sol: function() {return this.pos == this.lineStart;},
            peek: function() {return this.string.charAt(this.pos) || undefined;},
            next: function() {
              if (this.pos < this.string.length)
                return this.string.charAt(this.pos++);
            },
            eat: function(match) {
              var ch = this.string.charAt(this.pos);
              if (typeof match == "string") var ok = ch == match;
              else var ok = ch && (match.test ? match.test(ch) : match(ch));
              if (ok) {++this.pos; return ch;}
            },
            eatWhile: function(match) {
              var start = this.pos;
              while (this.eat(match)){}
              return this.pos > start;
            },
            eatSpace: function() {
              var start = this.pos;
              while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos;
              return this.pos > start;
            },
            skipToEnd: function() {this.pos = this.string.length;},
            skipTo: function(ch) {
              var found = this.string.indexOf(ch, this.pos);
              if (found > -1) {this.pos = found; return true;}
            },
            backUp: function(n) {this.pos -= n;},
            column: function() {
              if (this.lastColumnPos < this.start) {
                this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);
                this.lastColumnPos = this.start;
              }
              return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0);
            },
            indentation: function() {
              return countColumn(this.string, null, this.tabSize) -
                (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0);
            },
            match: function(pattern, consume, caseInsensitive) {
              if (typeof pattern == "string") {
                var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;};
                var substr = this.string.substr(this.pos, pattern.length);
                if (cased(substr) == cased(pattern)) {
                  if (consume !== false) this.pos += pattern.length;
                  return true;
                }
              } else {
                var match = this.string.slice(this.pos).match(pattern);
                if (match && match.index > 0) return null;
                if (match && consume !== false) this.pos += match[0].length;
                return match;
              }
            },
            current: function(){return this.string.slice(this.start, this.pos);},
            hideFirstChars: function(n, inner) {
              this.lineStart += n;
              try { return inner(); }
              finally { this.lineStart -= n; }
            }
          };
        
          // TEXTMARKERS
        
          // Created with markText and setBookmark methods. A TextMarker is a
          // handle that can be used to clear or find a marked position in the
          // document. Line objects hold arrays (markedSpans) containing
          // {from, to, marker} object pointing to such marker objects, and
          // indicating that such a marker is present on that line. Multiple
          // lines may point to the same marker when it spans across lines.
          // The spans will have null for their from/to properties when the
          // marker continues beyond the start/end of the line. Markers have
          // links back to the lines they currently touch.
        
          var nextMarkerId = 0;
        
          var TextMarker = CodeMirror.TextMarker = function(doc, type) {
            this.lines = [];
            this.type = type;
            this.doc = doc;
            this.id = ++nextMarkerId;
          };
          eventMixin(TextMarker);
        
          // Clear the marker.
          TextMarker.prototype.clear = function() {
            if (this.explicitlyCleared) return;
            var cm = this.doc.cm, withOp = cm && !cm.curOp;
            if (withOp) startOperation(cm);
            if (hasHandler(this, "clear")) {
              var found = this.find();
              if (found) signalLater(this, "clear", found.from, found.to);
            }
            var min = null, max = null;
            for (var i = 0; i < this.lines.length; ++i) {
              var line = this.lines[i];
              var span = getMarkedSpanFor(line.markedSpans, this);
              if (cm && !this.collapsed) regLineChange(cm, lineNo(line), "text");
              else if (cm) {
                if (span.to != null) max = lineNo(line);
                if (span.from != null) min = lineNo(line);
              }
              line.markedSpans = removeMarkedSpan(line.markedSpans, span);
              if (span.from == null && this.collapsed && !lineIsHidden(this.doc, line) && cm)
                updateLineHeight(line, textHeight(cm.display));
            }
            if (cm && this.collapsed && !cm.options.lineWrapping) for (var i = 0; i < this.lines.length; ++i) {
              var visual = visualLine(this.lines[i]), len = lineLength(visual);
              if (len > cm.display.maxLineLength) {
                cm.display.maxLine = visual;
                cm.display.maxLineLength = len;
                cm.display.maxLineChanged = true;
              }
            }
        
            if (min != null && cm && this.collapsed) regChange(cm, min, max + 1);
            this.lines.length = 0;
            this.explicitlyCleared = true;
            if (this.atomic && this.doc.cantEdit) {
              this.doc.cantEdit = false;
              if (cm) reCheckSelection(cm.doc);
            }
            if (cm) signalLater(cm, "markerCleared", cm, this);
            if (withOp) endOperation(cm);
            if (this.parent) this.parent.clear();
          };
        
          // Find the position of the marker in the document. Returns a {from,
          // to} object by default. Side can be passed to get a specific side
          // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the
          // Pos objects returned contain a line object, rather than a line
          // number (used to prevent looking up the same line twice).
          TextMarker.prototype.find = function(side, lineObj) {
            if (side == null && this.type == "bookmark") side = 1;
            var from, to;
            for (var i = 0; i < this.lines.length; ++i) {
              var line = this.lines[i];
              var span = getMarkedSpanFor(line.markedSpans, this);
              if (span.from != null) {
                from = Pos(lineObj ? line : lineNo(line), span.from);
                if (side == -1) return from;
              }
              if (span.to != null) {
                to = Pos(lineObj ? line : lineNo(line), span.to);
                if (side == 1) return to;
              }
            }
            return from && {from: from, to: to};
          };
        
          // Signals that the marker's widget changed, and surrounding layout
          // should be recomputed.
          TextMarker.prototype.changed = function() {
            var pos = this.find(-1, true), widget = this, cm = this.doc.cm;
            if (!pos || !cm) return;
            runInOp(cm, function() {
              var line = pos.line, lineN = lineNo(pos.line);
              var view = findViewForLine(cm, lineN);
              if (view) {
                clearLineMeasurementCacheFor(view);
                cm.curOp.selectionChanged = cm.curOp.forceUpdate = true;
              }
              cm.curOp.updateMaxLine = true;
              if (!lineIsHidden(widget.doc, line) && widget.height != null) {
                var oldHeight = widget.height;
                widget.height = null;
                var dHeight = widgetHeight(widget) - oldHeight;
                if (dHeight)
                  updateLineHeight(line, line.height + dHeight);
              }
            });
          };
        
          TextMarker.prototype.attachLine = function(line) {
            if (!this.lines.length && this.doc.cm) {
              var op = this.doc.cm.curOp;
              if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1)
                (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this);
            }
            this.lines.push(line);
          };
          TextMarker.prototype.detachLine = function(line) {
            this.lines.splice(indexOf(this.lines, line), 1);
            if (!this.lines.length && this.doc.cm) {
              var op = this.doc.cm.curOp;
              (op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this);
            }
          };
        
          // Collapsed markers have unique ids, in order to be able to order
          // them, which is needed for uniquely determining an outer marker
          // when they overlap (they may nest, but not partially overlap).
          var nextMarkerId = 0;
        
          // Create a marker, wire it up to the right lines, and
          function markText(doc, from, to, options, type) {
            // Shared markers (across linked documents) are handled separately
            // (markTextShared will call out to this again, once per
            // document).
            if (options && options.shared) return markTextShared(doc, from, to, options, type);
            // Ensure we are in an operation.
            if (doc.cm && !doc.cm.curOp) return operation(doc.cm, markText)(doc, from, to, options, type);
        
            var marker = new TextMarker(doc, type), diff = cmp(from, to);
            if (options) copyObj(options, marker, false);
            // Don't connect empty markers unless clearWhenEmpty is false
            if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false)
              return marker;
            if (marker.replacedWith) {
              // Showing up as a widget implies collapsed (widget replaces text)
              marker.collapsed = true;
              marker.widgetNode = elt("span", [marker.replacedWith], "CodeMirror-widget");
              if (!options.handleMouseEvents) marker.widgetNode.setAttribute("cm-ignore-events", "true");
              if (options.insertLeft) marker.widgetNode.insertLeft = true;
            }
            if (marker.collapsed) {
              if (conflictingCollapsedRange(doc, from.line, from, to, marker) ||
                  from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker))
                throw new Error("Inserting collapsed marker partially overlapping an existing one");
              sawCollapsedSpans = true;
            }
        
            if (marker.addToHistory)
              addChangeToHistory(doc, {from: from, to: to, origin: "markText"}, doc.sel, NaN);
        
            var curLine = from.line, cm = doc.cm, updateMaxLine;
            doc.iter(curLine, to.line + 1, function(line) {
              if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine)
                updateMaxLine = true;
              if (marker.collapsed && curLine != from.line) updateLineHeight(line, 0);
              addMarkedSpan(line, new MarkedSpan(marker,
                                                 curLine == from.line ? from.ch : null,
                                                 curLine == to.line ? to.ch : null));
              ++curLine;
            });
            // lineIsHidden depends on the presence of the spans, so needs a second pass
            if (marker.collapsed) doc.iter(from.line, to.line + 1, function(line) {
              if (lineIsHidden(doc, line)) updateLineHeight(line, 0);
            });
        
            if (marker.clearOnEnter) on(marker, "beforeCursorEnter", function() { marker.clear(); });
        
            if (marker.readOnly) {
              sawReadOnlySpans = true;
              if (doc.history.done.length || doc.history.undone.length)
                doc.clearHistory();
            }
            if (marker.collapsed) {
              marker.id = ++nextMarkerId;
              marker.atomic = true;
            }
            if (cm) {
              // Sync editor state
              if (updateMaxLine) cm.curOp.updateMaxLine = true;
              if (marker.collapsed)
                regChange(cm, from.line, to.line + 1);
              else if (marker.className || marker.title || marker.startStyle || marker.endStyle || marker.css)
                for (var i = from.line; i <= to.line; i++) regLineChange(cm, i, "text");
              if (marker.atomic) reCheckSelection(cm.doc);
              signalLater(cm, "markerAdded", cm, marker);
            }
            return marker;
          }
        
          // SHARED TEXTMARKERS
        
          // A shared marker spans multiple linked documents. It is
          // implemented as a meta-marker-object controlling multiple normal
          // markers.
          var SharedTextMarker = CodeMirror.SharedTextMarker = function(markers, primary) {
            this.markers = markers;
            this.primary = primary;
            for (var i = 0; i < markers.length; ++i)
              markers[i].parent = this;
          };
          eventMixin(SharedTextMarker);
        
          SharedTextMarker.prototype.clear = function() {
            if (this.explicitlyCleared) return;
            this.explicitlyCleared = true;
            for (var i = 0; i < this.markers.length; ++i)
              this.markers[i].clear();
            signalLater(this, "clear");
          };
          SharedTextMarker.prototype.find = function(side, lineObj) {
            return this.primary.find(side, lineObj);
          };
        
          function markTextShared(doc, from, to, options, type) {
            options = copyObj(options);
            options.shared = false;
            var markers = [markText(doc, from, to, options, type)], primary = markers[0];
            var widget = options.widgetNode;
            linkedDocs(doc, function(doc) {
              if (widget) options.widgetNode = widget.cloneNode(true);
              markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type));
              for (var i = 0; i < doc.linked.length; ++i)
                if (doc.linked[i].isParent) return;
              primary = lst(markers);
            });
            return new SharedTextMarker(markers, primary);
          }
        
          function findSharedMarkers(doc) {
            return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())),
                                 function(m) { return m.parent; });
          }
        
          function copySharedMarkers(doc, markers) {
            for (var i = 0; i < markers.length; i++) {
              var marker = markers[i], pos = marker.find();
              var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to);
              if (cmp(mFrom, mTo)) {
                var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type);
                marker.markers.push(subMark);
                subMark.parent = marker;
              }
            }
          }
        
          function detachSharedMarkers(markers) {
            for (var i = 0; i < markers.length; i++) {
              var marker = markers[i], linked = [marker.primary.doc];;
              linkedDocs(marker.primary.doc, function(d) { linked.push(d); });
              for (var j = 0; j < marker.markers.length; j++) {
                var subMarker = marker.markers[j];
                if (indexOf(linked, subMarker.doc) == -1) {
                  subMarker.parent = null;
                  marker.markers.splice(j--, 1);
                }
              }
            }
          }
        
          // TEXTMARKER SPANS
        
          function MarkedSpan(marker, from, to) {
            this.marker = marker;
            this.from = from; this.to = to;
          }
        
          // Search an array of spans for a span matching the given marker.
          function getMarkedSpanFor(spans, marker) {
            if (spans) for (var i = 0; i < spans.length; ++i) {
              var span = spans[i];
              if (span.marker == marker) return span;
            }
          }
          // Remove a span from an array, returning undefined if no spans are
          // left (we don't store arrays for lines without spans).
          function removeMarkedSpan(spans, span) {
            for (var r, i = 0; i < spans.length; ++i)
              if (spans[i] != span) (r || (r = [])).push(spans[i]);
            return r;
          }
          // Add a span to a line.
          function addMarkedSpan(line, span) {
            line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span];
            span.marker.attachLine(line);
          }
        
          // Used for the algorithm that adjusts markers for a change in the
          // document. These functions cut an array of spans at a given
          // character position, returning an array of remaining chunks (or
          // undefined if nothing remains).
          function markedSpansBefore(old, startCh, isInsert) {
            if (old) for (var i = 0, nw; i < old.length; ++i) {
              var span = old[i], marker = span.marker;
              var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh);
              if (startsBefore || span.from == startCh && marker.type == "bookmark" && (!isInsert || !span.marker.insertLeft)) {
                var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh);
                (nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to));
              }
            }
            return nw;
          }
          function markedSpansAfter(old, endCh, isInsert) {
            if (old) for (var i = 0, nw; i < old.length; ++i) {
              var span = old[i], marker = span.marker;
              var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh);
              if (endsAfter || span.from == endCh && marker.type == "bookmark" && (!isInsert || span.marker.insertLeft)) {
                var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh);
                (nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh,
                                                      span.to == null ? null : span.to - endCh));
              }
            }
            return nw;
          }
        
          // Given a change object, compute the new set of marker spans that
          // cover the line in which the change took place. Removes spans
          // entirely within the change, reconnects spans belonging to the
          // same marker that appear on both sides of the change, and cuts off
          // spans partially within the change. Returns an array of span
          // arrays with one element for each line in (after) the change.
          function stretchSpansOverChange(doc, change) {
            if (change.full) return null;
            var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans;
            var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans;
            if (!oldFirst && !oldLast) return null;
        
            var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0;
            // Get the spans that 'stick out' on both sides
            var first = markedSpansBefore(oldFirst, startCh, isInsert);
            var last = markedSpansAfter(oldLast, endCh, isInsert);
        
            // Next, merge those two ends
            var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0);
            if (first) {
              // Fix up .to properties of first
              for (var i = 0; i < first.length; ++i) {
                var span = first[i];
                if (span.to == null) {
                  var found = getMarkedSpanFor(last, span.marker);
                  if (!found) span.to = startCh;
                  else if (sameLine) span.to = found.to == null ? null : found.to + offset;
                }
              }
            }
            if (last) {
              // Fix up .from in last (or move them into first in case of sameLine)
              for (var i = 0; i < last.length; ++i) {
                var span = last[i];
                if (span.to != null) span.to += offset;
                if (span.from == null) {
                  var found = getMarkedSpanFor(first, span.marker);
                  if (!found) {
                    span.from = offset;
                    if (sameLine) (first || (first = [])).push(span);
                  }
                } else {
                  span.from += offset;
                  if (sameLine) (first || (first = [])).push(span);
                }
              }
            }
            // Make sure we didn't create any zero-length spans
            if (first) first = clearEmptySpans(first);
            if (last && last != first) last = clearEmptySpans(last);
        
            var newMarkers = [first];
            if (!sameLine) {
              // Fill gap with whole-line-spans
              var gap = change.text.length - 2, gapMarkers;
              if (gap > 0 && first)
                for (var i = 0; i < first.length; ++i)
                  if (first[i].to == null)
                    (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i].marker, null, null));
              for (var i = 0; i < gap; ++i)
                newMarkers.push(gapMarkers);
              newMarkers.push(last);
            }
            return newMarkers;
          }
        
          // Remove spans that are empty and don't have a clearWhenEmpty
          // option of false.
          function clearEmptySpans(spans) {
            for (var i = 0; i < spans.length; ++i) {
              var span = spans[i];
              if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false)
                spans.splice(i--, 1);
            }
            if (!spans.length) return null;
            return spans;
          }
        
          // Used for un/re-doing changes from the history. Combines the
          // result of computing the existing spans with the set of spans that
          // existed in the history (so that deleting around a span and then
          // undoing brings back the span).
          function mergeOldSpans(doc, change) {
            var old = getOldSpans(doc, change);
            var stretched = stretchSpansOverChange(doc, change);
            if (!old) return stretched;
            if (!stretched) return old;
        
            for (var i = 0; i < old.length; ++i) {
              var oldCur = old[i], stretchCur = stretched[i];
              if (oldCur && stretchCur) {
                spans: for (var j = 0; j < stretchCur.length; ++j) {
                  var span = stretchCur[j];
                  for (var k = 0; k < oldCur.length; ++k)
                    if (oldCur[k].marker == span.marker) continue spans;
                  oldCur.push(span);
                }
              } else if (stretchCur) {
                old[i] = stretchCur;
              }
            }
            return old;
          }
        
          // Used to 'clip' out readOnly ranges when making a change.
          function removeReadOnlyRanges(doc, from, to) {
            var markers = null;
            doc.iter(from.line, to.line + 1, function(line) {
              if (line.markedSpans) for (var i = 0; i < line.markedSpans.length; ++i) {
                var mark = line.markedSpans[i].marker;
                if (mark.readOnly && (!markers || indexOf(markers, mark) == -1))
                  (markers || (markers = [])).push(mark);
              }
            });
            if (!markers) return null;
            var parts = [{from: from, to: to}];
            for (var i = 0; i < markers.length; ++i) {
              var mk = markers[i], m = mk.find(0);
              for (var j = 0; j < parts.length; ++j) {
                var p = parts[j];
                if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) continue;
                var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to);
                if (dfrom < 0 || !mk.inclusiveLeft && !dfrom)
                  newParts.push({from: p.from, to: m.from});
                if (dto > 0 || !mk.inclusiveRight && !dto)
                  newParts.push({from: m.to, to: p.to});
                parts.splice.apply(parts, newParts);
                j += newParts.length - 1;
              }
            }
            return parts;
          }
        
          // Connect or disconnect spans from a line.
          function detachMarkedSpans(line) {
            var spans = line.markedSpans;
            if (!spans) return;
            for (var i = 0; i < spans.length; ++i)
              spans[i].marker.detachLine(line);
            line.markedSpans = null;
          }
          function attachMarkedSpans(line, spans) {
            if (!spans) return;
            for (var i = 0; i < spans.length; ++i)
              spans[i].marker.attachLine(line);
            line.markedSpans = spans;
          }
        
          // Helpers used when computing which overlapping collapsed span
          // counts as the larger one.
          function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0; }
          function extraRight(marker) { return marker.inclusiveRight ? 1 : 0; }
        
          // Returns a number indicating which of two overlapping collapsed
          // spans is larger (and thus includes the other). Falls back to
          // comparing ids when the spans cover exactly the same range.
          function compareCollapsedMarkers(a, b) {
            var lenDiff = a.lines.length - b.lines.length;
            if (lenDiff != 0) return lenDiff;
            var aPos = a.find(), bPos = b.find();
            var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b);
            if (fromCmp) return -fromCmp;
            var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b);
            if (toCmp) return toCmp;
            return b.id - a.id;
          }
        
          // Find out whether a line ends or starts in a collapsed span. If
          // so, return the marker for that span.
          function collapsedSpanAtSide(line, start) {
            var sps = sawCollapsedSpans && line.markedSpans, found;
            if (sps) for (var sp, i = 0; i < sps.length; ++i) {
              sp = sps[i];
              if (sp.marker.collapsed && (start ? sp.from : sp.to) == null &&
                  (!found || compareCollapsedMarkers(found, sp.marker) < 0))
                found = sp.marker;
            }
            return found;
          }
          function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true); }
          function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false); }
        
          // Test whether there exists a collapsed span that partially
          // overlaps (covers the start or end, but not both) of a new span.
          // Such overlap is not allowed.
          function conflictingCollapsedRange(doc, lineNo, from, to, marker) {
            var line = getLine(doc, lineNo);
            var sps = sawCollapsedSpans && line.markedSpans;
            if (sps) for (var i = 0; i < sps.length; ++i) {
              var sp = sps[i];
              if (!sp.marker.collapsed) continue;
              var found = sp.marker.find(0);
              var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker);
              var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker);
              if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) continue;
              if (fromCmp <= 0 && (cmp(found.to, from) > 0 || (sp.marker.inclusiveRight && marker.inclusiveLeft)) ||
                  fromCmp >= 0 && (cmp(found.from, to) < 0 || (sp.marker.inclusiveLeft && marker.inclusiveRight)))
                return true;
            }
          }
        
          // A visual line is a line as drawn on the screen. Folding, for
          // example, can cause multiple logical lines to appear on the same
          // visual line. This finds the start of the visual line that the
          // given line is part of (usually that is the line itself).
          function visualLine(line) {
            var merged;
            while (merged = collapsedSpanAtStart(line))
              line = merged.find(-1, true).line;
            return line;
          }
        
          // Returns an array of logical lines that continue the visual line
          // started by the argument, or undefined if there are no such lines.
          function visualLineContinued(line) {
            var merged, lines;
            while (merged = collapsedSpanAtEnd(line)) {
              line = merged.find(1, true).line;
              (lines || (lines = [])).push(line);
            }
            return lines;
          }
        
          // Get the line number of the start of the visual line that the
          // given line number is part of.
          function visualLineNo(doc, lineN) {
            var line = getLine(doc, lineN), vis = visualLine(line);
            if (line == vis) return lineN;
            return lineNo(vis);
          }
          // Get the line number of the start of the next visual line after
          // the given line.
          function visualLineEndNo(doc, lineN) {
            if (lineN > doc.lastLine()) return lineN;
            var line = getLine(doc, lineN), merged;
            if (!lineIsHidden(doc, line)) return lineN;
            while (merged = collapsedSpanAtEnd(line))
              line = merged.find(1, true).line;
            return lineNo(line) + 1;
          }
        
          // Compute whether a line is hidden. Lines count as hidden when they
          // are part of a visual line that starts with another line, or when
          // they are entirely covered by collapsed, non-widget span.
          function lineIsHidden(doc, line) {
            var sps = sawCollapsedSpans && line.markedSpans;
            if (sps) for (var sp, i = 0; i < sps.length; ++i) {
              sp = sps[i];
              if (!sp.marker.collapsed) continue;
              if (sp.from == null) return true;
              if (sp.marker.widgetNode) continue;
              if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp))
                return true;
            }
          }
          function lineIsHiddenInner(doc, line, span) {
            if (span.to == null) {
              var end = span.marker.find(1, true);
              return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker));
            }
            if (span.marker.inclusiveRight && span.to == line.text.length)
              return true;
            for (var sp, i = 0; i < line.markedSpans.length; ++i) {
              sp = line.markedSpans[i];
              if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to &&
                  (sp.to == null || sp.to != span.from) &&
                  (sp.marker.inclusiveLeft || span.marker.inclusiveRight) &&
                  lineIsHiddenInner(doc, line, sp)) return true;
            }
          }
        
          // LINE WIDGETS
        
          // Line widgets are block elements displayed above or below a line.
        
          var LineWidget = CodeMirror.LineWidget = function(doc, node, options) {
            if (options) for (var opt in options) if (options.hasOwnProperty(opt))
              this[opt] = options[opt];
            this.doc = doc;
            this.node = node;
          };
          eventMixin(LineWidget);
        
          function adjustScrollWhenAboveVisible(cm, line, diff) {
            if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop))
              addToScrollPos(cm, null, diff);
          }
        
          LineWidget.prototype.clear = function() {
            var cm = this.doc.cm, ws = this.line.widgets, line = this.line, no = lineNo(line);
            if (no == null || !ws) return;
            for (var i = 0; i < ws.length; ++i) if (ws[i] == this) ws.splice(i--, 1);
            if (!ws.length) line.widgets = null;
            var height = widgetHeight(this);
            updateLineHeight(line, Math.max(0, line.height - height));
            if (cm) runInOp(cm, function() {
              adjustScrollWhenAboveVisible(cm, line, -height);
              regLineChange(cm, no, "widget");
            });
          };
          LineWidget.prototype.changed = function() {
            var oldH = this.height, cm = this.doc.cm, line = this.line;
            this.height = null;
            var diff = widgetHeight(this) - oldH;
            if (!diff) return;
            updateLineHeight(line, line.height + diff);
            if (cm) runInOp(cm, function() {
              cm.curOp.forceUpdate = true;
              adjustScrollWhenAboveVisible(cm, line, diff);
            });
          };
        
          function widgetHeight(widget) {
            if (widget.height != null) return widget.height;
            var cm = widget.doc.cm;
            if (!cm) return 0;
            if (!contains(document.body, widget.node)) {
              var parentStyle = "position: relative;";
              if (widget.coverGutter)
                parentStyle += "margin-left: -" + cm.display.gutters.offsetWidth + "px;";
              if (widget.noHScroll)
                parentStyle += "width: " + cm.display.wrapper.clientWidth + "px;";
              removeChildrenAndAdd(cm.display.measure, elt("div", [widget.node], null, parentStyle));
            }
            return widget.height = widget.node.offsetHeight;
          }
        
          function addLineWidget(doc, handle, node, options) {
            var widget = new LineWidget(doc, node, options);
            var cm = doc.cm;
            if (cm && widget.noHScroll) cm.display.alignWidgets = true;
            changeLine(doc, handle, "widget", function(line) {
              var widgets = line.widgets || (line.widgets = []);
              if (widget.insertAt == null) widgets.push(widget);
              else widgets.splice(Math.min(widgets.length - 1, Math.max(0, widget.insertAt)), 0, widget);
              widget.line = line;
              if (cm && !lineIsHidden(doc, line)) {
                var aboveVisible = heightAtLine(line) < doc.scrollTop;
                updateLineHeight(line, line.height + widgetHeight(widget));
                if (aboveVisible) addToScrollPos(cm, null, widget.height);
                cm.curOp.forceUpdate = true;
              }
              return true;
            });
            return widget;
          }
        
          // LINE DATA STRUCTURE
        
          // Line objects. These hold state related to a line, including
          // highlighting info (the styles array).
          var Line = CodeMirror.Line = function(text, markedSpans, estimateHeight) {
            this.text = text;
            attachMarkedSpans(this, markedSpans);
            this.height = estimateHeight ? estimateHeight(this) : 1;
          };
          eventMixin(Line);
          Line.prototype.lineNo = function() { return lineNo(this); };
        
          // Change the content (text, markers) of a line. Automatically
          // invalidates cached information and tries to re-estimate the
          // line's height.
          function updateLine(line, text, markedSpans, estimateHeight) {
            line.text = text;
            if (line.stateAfter) line.stateAfter = null;
            if (line.styles) line.styles = null;
            if (line.order != null) line.order = null;
            detachMarkedSpans(line);
            attachMarkedSpans(line, markedSpans);
            var estHeight = estimateHeight ? estimateHeight(line) : 1;
            if (estHeight != line.height) updateLineHeight(line, estHeight);
          }
        
          // Detach a line from the document tree and its markers.
          function cleanUpLine(line) {
            line.parent = null;
            detachMarkedSpans(line);
          }
        
          function extractLineClasses(type, output) {
            if (type) for (;;) {
              var lineClass = type.match(/(?:^|\s+)line-(background-)?(\S+)/);
              if (!lineClass) break;
              type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length);
              var prop = lineClass[1] ? "bgClass" : "textClass";
              if (output[prop] == null)
                output[prop] = lineClass[2];
              else if (!(new RegExp("(?:^|\s)" + lineClass[2] + "(?:$|\s)")).test(output[prop]))
                output[prop] += " " + lineClass[2];
            }
            return type;
          }
        
          function callBlankLine(mode, state) {
            if (mode.blankLine) return mode.blankLine(state);
            if (!mode.innerMode) return;
            var inner = CodeMirror.innerMode(mode, state);
            if (inner.mode.blankLine) return inner.mode.blankLine(inner.state);
          }
        
          function readToken(mode, stream, state, inner) {
            for (var i = 0; i < 10; i++) {
              if (inner) inner[0] = CodeMirror.innerMode(mode, state).mode;
              var style = mode.token(stream, state);
              if (stream.pos > stream.start) return style;
            }
            throw new Error("Mode " + mode.name + " failed to advance stream.");
          }
        
          // Utility for getTokenAt and getLineTokens
          function takeToken(cm, pos, precise, asArray) {
            function getObj(copy) {
              return {start: stream.start, end: stream.pos,
                      string: stream.current(),
                      type: style || null,
                      state: copy ? copyState(doc.mode, state) : state};
            }
        
            var doc = cm.doc, mode = doc.mode, style;
            pos = clipPos(doc, pos);
            var line = getLine(doc, pos.line), state = getStateBefore(cm, pos.line, precise);
            var stream = new StringStream(line.text, cm.options.tabSize), tokens;
            if (asArray) tokens = [];
            while ((asArray || stream.pos < pos.ch) && !stream.eol()) {
              stream.start = stream.pos;
              style = readToken(mode, stream, state);
              if (asArray) tokens.push(getObj(true));
            }
            return asArray ? tokens : getObj();
          }
        
          // Run the given mode's parser over a line, calling f for each token.
          function runMode(cm, text, mode, state, f, lineClasses, forceToEnd) {
            var flattenSpans = mode.flattenSpans;
            if (flattenSpans == null) flattenSpans = cm.options.flattenSpans;
            var curStart = 0, curStyle = null;
            var stream = new StringStream(text, cm.options.tabSize), style;
            var inner = cm.options.addModeClass && [null];
            if (text == "") extractLineClasses(callBlankLine(mode, state), lineClasses);
            while (!stream.eol()) {
              if (stream.pos > cm.options.maxHighlightLength) {
                flattenSpans = false;
                if (forceToEnd) processLine(cm, text, state, stream.pos);
                stream.pos = text.length;
                style = null;
              } else {
                style = extractLineClasses(readToken(mode, stream, state, inner), lineClasses);
              }
              if (inner) {
                var mName = inner[0].name;
                if (mName) style = "m-" + (style ? mName + " " + style : mName);
              }
              if (!flattenSpans || curStyle != style) {
                while (curStart < stream.start) {
                  curStart = Math.min(stream.start, curStart + 50000);
                  f(curStart, curStyle);
                }
                curStyle = style;
              }
              stream.start = stream.pos;
            }
            while (curStart < stream.pos) {
              // Webkit seems to refuse to render text nodes longer than 57444 characters
              var pos = Math.min(stream.pos, curStart + 50000);
              f(pos, curStyle);
              curStart = pos;
            }
          }
        
          // Compute a style array (an array starting with a mode generation
          // -- for invalidation -- followed by pairs of end positions and
          // style strings), which is used to highlight the tokens on the
          // line.
          function highlightLine(cm, line, state, forceToEnd) {
            // A styles array always starts with a number identifying the
            // mode/overlays that it is based on (for easy invalidation).
            var st = [cm.state.modeGen], lineClasses = {};
            // Compute the base array of styles
            runMode(cm, line.text, cm.doc.mode, state, function(end, style) {
              st.push(end, style);
            }, lineClasses, forceToEnd);
        
            // Run overlays, adjust style array.
            for (var o = 0; o < cm.state.overlays.length; ++o) {
              var overlay = cm.state.overlays[o], i = 1, at = 0;
              runMode(cm, line.text, overlay.mode, true, function(end, style) {
                var start = i;
                // Ensure there's a token end at the current position, and that i points at it
                while (at < end) {
                  var i_end = st[i];
                  if (i_end > end)
                    st.splice(i, 1, end, st[i+1], i_end);
                  i += 2;
                  at = Math.min(end, i_end);
                }
                if (!style) return;
                if (overlay.opaque) {
                  st.splice(start, i - start, end, "cm-overlay " + style);
                  i = start + 2;
                } else {
                  for (; start < i; start += 2) {
                    var cur = st[start+1];
                    st[start+1] = (cur ? cur + " " : "") + "cm-overlay " + style;
                  }
                }
              }, lineClasses);
            }
        
            return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null};
          }
        
          function getLineStyles(cm, line, updateFrontier) {
            if (!line.styles || line.styles[0] != cm.state.modeGen) {
              var state = getStateBefore(cm, lineNo(line));
              var result = highlightLine(cm, line, line.text.length > cm.options.maxHighlightLength ? copyState(cm.doc.mode, state) : state);
              line.stateAfter = state;
              line.styles = result.styles;
              if (result.classes) line.styleClasses = result.classes;
              else if (line.styleClasses) line.styleClasses = null;
              if (updateFrontier === cm.doc.frontier) cm.doc.frontier++;
            }
            return line.styles;
          }
        
          // Lightweight form of highlight -- proceed over this line and
          // update state, but don't save a style array. Used for lines that
          // aren't currently visible.
          function processLine(cm, text, state, startAt) {
            var mode = cm.doc.mode;
            var stream = new StringStream(text, cm.options.tabSize);
            stream.start = stream.pos = startAt || 0;
            if (text == "") callBlankLine(mode, state);
            while (!stream.eol()) {
              readToken(mode, stream, state);
              stream.start = stream.pos;
            }
          }
        
          // Convert a style as returned by a mode (either null, or a string
          // containing one or more styles) to a CSS style. This is cached,
          // and also looks for line-wide styles.
          var styleToClassCache = {}, styleToClassCacheWithMode = {};
          function interpretTokenStyle(style, options) {
            if (!style || /^\s*$/.test(style)) return null;
            var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache;
            return cache[style] ||
              (cache[style] = style.replace(/\S+/g, "cm-$&"));
          }
        
          // Render the DOM representation of the text of a line. Also builds
          // up a 'line map', which points at the DOM nodes that represent
          // specific stretches of text, and is used by the measuring code.
          // The returned object contains the DOM node, this map, and
          // information about line-wide styles that were set by the mode.
          function buildLineContent(cm, lineView) {
            // The padding-right forces the element to have a 'border', which
            // is needed on Webkit to be able to get line-level bounding
            // rectangles for it (in measureChar).
            var content = elt("span", null, null, webkit ? "padding-right: .1px" : null);
            var builder = {pre: elt("pre", [content], "CodeMirror-line"), content: content,
                           col: 0, pos: 0, cm: cm,
                           splitSpaces: (ie || webkit) && cm.getOption("lineWrapping")};
            lineView.measure = {};
        
            // Iterate over the logical lines that make up this visual line.
            for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) {
              var line = i ? lineView.rest[i - 1] : lineView.line, order;
              builder.pos = 0;
              builder.addToken = buildToken;
              // Optionally wire in some hacks into the token-rendering
              // algorithm, to deal with browser quirks.
              if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line)))
                builder.addToken = buildTokenBadBidi(builder.addToken, order);
              builder.map = [];
              var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line);
              insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate));
              if (line.styleClasses) {
                if (line.styleClasses.bgClass)
                  builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || "");
                if (line.styleClasses.textClass)
                  builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || "");
              }
        
              // Ensure at least a single node is present, for measuring.
              if (builder.map.length == 0)
                builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure)));
        
              // Store the map and a cache object for the current logical line
              if (i == 0) {
                lineView.measure.map = builder.map;
                lineView.measure.cache = {};
              } else {
                (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map);
                (lineView.measure.caches || (lineView.measure.caches = [])).push({});
              }
            }
        
            // See issue #2901
            if (webkit && /\bcm-tab\b/.test(builder.content.lastChild.className))
              builder.content.className = "cm-tab-wrap-hack";
        
            signal(cm, "renderLine", cm, lineView.line, builder.pre);
            if (builder.pre.className)
              builder.textClass = joinClasses(builder.pre.className, builder.textClass || "");
        
            return builder;
          }
        
          function defaultSpecialCharPlaceholder(ch) {
            var token = elt("span", "\u2022", "cm-invalidchar");
            token.title = "\\u" + ch.charCodeAt(0).toString(16);
            token.setAttribute("aria-label", token.title);
            return token;
          }
        
          // Build up the DOM representation for a single token, and add it to
          // the line map. Takes care to render special characters separately.
          function buildToken(builder, text, style, startStyle, endStyle, title, css) {
            if (!text) return;
            var displayText = builder.splitSpaces ? text.replace(/ {3,}/g, splitSpaces) : text;
            var special = builder.cm.state.specialChars, mustWrap = false;
            if (!special.test(text)) {
              builder.col += text.length;
              var content = document.createTextNode(displayText);
              builder.map.push(builder.pos, builder.pos + text.length, content);
              if (ie && ie_version < 9) mustWrap = true;
              builder.pos += text.length;
            } else {
              var content = document.createDocumentFragment(), pos = 0;
              while (true) {
                special.lastIndex = pos;
                var m = special.exec(text);
                var skipped = m ? m.index - pos : text.length - pos;
                if (skipped) {
                  var txt = document.createTextNode(displayText.slice(pos, pos + skipped));
                  if (ie && ie_version < 9) content.appendChild(elt("span", [txt]));
                  else content.appendChild(txt);
                  builder.map.push(builder.pos, builder.pos + skipped, txt);
                  builder.col += skipped;
                  builder.pos += skipped;
                }
                if (!m) break;
                pos += skipped + 1;
                if (m[0] == "\t") {
                  var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize;
                  var txt = content.appendChild(elt("span", spaceStr(tabWidth), "cm-tab"));
                  txt.setAttribute("role", "presentation");
                  txt.setAttribute("cm-text", "\t");
                  builder.col += tabWidth;
                } else if (m[0] == "\r" || m[0] == "\n") {
                  var txt = content.appendChild(elt("span", m[0] == "\r" ? "\u240d" : "\u2424", "cm-invalidchar"));
                  txt.setAttribute("cm-text", m[0]);
                  builder.col += 1;
                } else {
                  var txt = builder.cm.options.specialCharPlaceholder(m[0]);
                  txt.setAttribute("cm-text", m[0]);
                  if (ie && ie_version < 9) content.appendChild(elt("span", [txt]));
                  else content.appendChild(txt);
                  builder.col += 1;
                }
                builder.map.push(builder.pos, builder.pos + 1, txt);
                builder.pos++;
              }
            }
            if (style || startStyle || endStyle || mustWrap || css) {
              var fullStyle = style || "";
              if (startStyle) fullStyle += startStyle;
              if (endStyle) fullStyle += endStyle;
              var token = elt("span", [content], fullStyle, css);
              if (title) token.title = title;
              return builder.content.appendChild(token);
            }
            builder.content.appendChild(content);
          }
        
          function splitSpaces(old) {
            var out = " ";
            for (var i = 0; i < old.length - 2; ++i) out += i % 2 ? " " : "\u00a0";
            out += " ";
            return out;
          }
        
          // Work around nonsense dimensions being reported for stretches of
          // right-to-left text.
          function buildTokenBadBidi(inner, order) {
            return function(builder, text, style, startStyle, endStyle, title, css) {
              style = style ? style + " cm-force-border" : "cm-force-border";
              var start = builder.pos, end = start + text.length;
              for (;;) {
                // Find the part that overlaps with the start of this text
                for (var i = 0; i < order.length; i++) {
                  var part = order[i];
                  if (part.to > start && part.from <= start) break;
                }
                if (part.to >= end) return inner(builder, text, style, startStyle, endStyle, title, css);
                inner(builder, text.slice(0, part.to - start), style, startStyle, null, title, css);
                startStyle = null;
                text = text.slice(part.to - start);
                start = part.to;
              }
            };
          }
        
          function buildCollapsedSpan(builder, size, marker, ignoreWidget) {
            var widget = !ignoreWidget && marker.widgetNode;
            if (widget) builder.map.push(builder.pos, builder.pos + size, widget);
            if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) {
              if (!widget)
                widget = builder.content.appendChild(document.createElement("span"));
              widget.setAttribute("cm-marker", marker.id);
            }
            if (widget) {
              builder.cm.display.input.setUneditable(widget);
              builder.content.appendChild(widget);
            }
            builder.pos += size;
          }
        
          // Outputs a number of spans to make up a line, taking highlighting
          // and marked text into account.
          function insertLineContent(line, builder, styles) {
            var spans = line.markedSpans, allText = line.text, at = 0;
            if (!spans) {
              for (var i = 1; i < styles.length; i+=2)
                builder.addToken(builder, allText.slice(at, at = styles[i]), interpretTokenStyle(styles[i+1], builder.cm.options));
              return;
            }
        
            var len = allText.length, pos = 0, i = 1, text = "", style, css;
            var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, title, collapsed;
            for (;;) {
              if (nextChange == pos) { // Update current marker set
                spanStyle = spanEndStyle = spanStartStyle = title = css = "";
                collapsed = null; nextChange = Infinity;
                var foundBookmarks = [];
                for (var j = 0; j < spans.length; ++j) {
                  var sp = spans[j], m = sp.marker;
                  if (m.type == "bookmark" && sp.from == pos && m.widgetNode) {
                    foundBookmarks.push(m);
                  } else if (sp.from <= pos && (sp.to == null || sp.to > pos || m.collapsed && sp.to == pos && sp.from == pos)) {
                    if (sp.to != null && sp.to != pos && nextChange > sp.to) {
                      nextChange = sp.to;
                      spanEndStyle = "";
                    }
                    if (m.className) spanStyle += " " + m.className;
                    if (m.css) css = m.css;
                    if (m.startStyle && sp.from == pos) spanStartStyle += " " + m.startStyle;
                    if (m.endStyle && sp.to == nextChange) spanEndStyle += " " + m.endStyle;
                    if (m.title && !title) title = m.title;
                    if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0))
                      collapsed = sp;
                  } else if (sp.from > pos && nextChange > sp.from) {
                    nextChange = sp.from;
                  }
                }
                if (collapsed && (collapsed.from || 0) == pos) {
                  buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos,
                                     collapsed.marker, collapsed.from == null);
                  if (collapsed.to == null) return;
                  if (collapsed.to == pos) collapsed = false;
                }
                if (!collapsed && foundBookmarks.length) for (var j = 0; j < foundBookmarks.length; ++j)
                  buildCollapsedSpan(builder, 0, foundBookmarks[j]);
              }
              if (pos >= len) break;
        
              var upto = Math.min(len, nextChange);
              while (true) {
                if (text) {
                  var end = pos + text.length;
                  if (!collapsed) {
                    var tokenText = end > upto ? text.slice(0, upto - pos) : text;
                    builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle,
                                     spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : "", title, css);
                  }
                  if (end >= upto) {text = text.slice(upto - pos); pos = upto; break;}
                  pos = end;
                  spanStartStyle = "";
                }
                text = allText.slice(at, at = styles[i++]);
                style = interpretTokenStyle(styles[i++], builder.cm.options);
              }
            }
          }
        
          // DOCUMENT DATA STRUCTURE
        
          // By default, updates that start and end at the beginning of a line
          // are treated specially, in order to make the association of line
          // widgets and marker elements with the text behave more intuitive.
          function isWholeLineUpdate(doc, change) {
            return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == "" &&
              (!doc.cm || doc.cm.options.wholeLineUpdateBefore);
          }
        
          // Perform a change on the document data structure.
          function updateDoc(doc, change, markedSpans, estimateHeight) {
            function spansFor(n) {return markedSpans ? markedSpans[n] : null;}
            function update(line, text, spans) {
              updateLine(line, text, spans, estimateHeight);
              signalLater(line, "change", line, change);
            }
            function linesFor(start, end) {
              for (var i = start, result = []; i < end; ++i)
                result.push(new Line(text[i], spansFor(i), estimateHeight));
              return result;
            }
        
            var from = change.from, to = change.to, text = change.text;
            var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line);
            var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line;
        
            // Adjust the line structure
            if (change.full) {
              doc.insert(0, linesFor(0, text.length));
              doc.remove(text.length, doc.size - text.length);
            } else if (isWholeLineUpdate(doc, change)) {
              // This is a whole-line replace. Treated specially to make
              // sure line objects move the way they are supposed to.
              var added = linesFor(0, text.length - 1);
              update(lastLine, lastLine.text, lastSpans);
              if (nlines) doc.remove(from.line, nlines);
              if (added.length) doc.insert(from.line, added);
            } else if (firstLine == lastLine) {
              if (text.length == 1) {
                update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans);
              } else {
                var added = linesFor(1, text.length - 1);
                added.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight));
                update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));
                doc.insert(from.line + 1, added);
              }
            } else if (text.length == 1) {
              update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0));
              doc.remove(from.line + 1, nlines);
            } else {
              update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));
              update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans);
              var added = linesFor(1, text.length - 1);
              if (nlines > 1) doc.remove(from.line + 1, nlines - 1);
              doc.insert(from.line + 1, added);
            }
        
            signalLater(doc, "change", doc, change);
          }
        
          // The document is represented as a BTree consisting of leaves, with
          // chunk of lines in them, and branches, with up to ten leaves or
          // other branch nodes below them. The top node is always a branch
          // node, and is the document object itself (meaning it has
          // additional methods and properties).
          //
          // All nodes have parent links. The tree is used both to go from
          // line numbers to line objects, and to go from objects to numbers.
          // It also indexes by height, and is used to convert between height
          // and line object, and to find the total height of the document.
          //
          // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html
        
          function LeafChunk(lines) {
            this.lines = lines;
            this.parent = null;
            for (var i = 0, height = 0; i < lines.length; ++i) {
              lines[i].parent = this;
              height += lines[i].height;
            }
            this.height = height;
          }
        
          LeafChunk.prototype = {
            chunkSize: function() { return this.lines.length; },
            // Remove the n lines at offset 'at'.
            removeInner: function(at, n) {
              for (var i = at, e = at + n; i < e; ++i) {
                var line = this.lines[i];
                this.height -= line.height;
                cleanUpLine(line);
                signalLater(line, "delete");
              }
              this.lines.splice(at, n);
            },
            // Helper used to collapse a small branch into a single leaf.
            collapse: function(lines) {
              lines.push.apply(lines, this.lines);
            },
            // Insert the given array of lines at offset 'at', count them as
            // having the given height.
            insertInner: function(at, lines, height) {
              this.height += height;
              this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at));
              for (var i = 0; i < lines.length; ++i) lines[i].parent = this;
            },
            // Used to iterate over a part of the tree.
            iterN: function(at, n, op) {
              for (var e = at + n; at < e; ++at)
                if (op(this.lines[at])) return true;
            }
          };
        
          function BranchChunk(children) {
            this.children = children;
            var size = 0, height = 0;
            for (var i = 0; i < children.length; ++i) {
              var ch = children[i];
              size += ch.chunkSize(); height += ch.height;
              ch.parent = this;
            }
            this.size = size;
            this.height = height;
            this.parent = null;
          }
        
          BranchChunk.prototype = {
            chunkSize: function() { return this.size; },
            removeInner: function(at, n) {
              this.size -= n;
              for (var i = 0; i < this.children.length; ++i) {
                var child = this.children[i], sz = child.chunkSize();
                if (at < sz) {
                  var rm = Math.min(n, sz - at), oldHeight = child.height;
                  child.removeInner(at, rm);
                  this.height -= oldHeight - child.height;
                  if (sz == rm) { this.children.splice(i--, 1); child.parent = null; }
                  if ((n -= rm) == 0) break;
                  at = 0;
                } else at -= sz;
              }
              // If the result is smaller than 25 lines, ensure that it is a
              // single leaf node.
              if (this.size - n < 25 &&
                  (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) {
                var lines = [];
                this.collapse(lines);
                this.children = [new LeafChunk(lines)];
                this.children[0].parent = this;
              }
            },
            collapse: function(lines) {
              for (var i = 0; i < this.children.length; ++i) this.children[i].collapse(lines);
            },
            insertInner: function(at, lines, height) {
              this.size += lines.length;
              this.height += height;
              for (var i = 0; i < this.children.length; ++i) {
                var child = this.children[i], sz = child.chunkSize();
                if (at <= sz) {
                  child.insertInner(at, lines, height);
                  if (child.lines && child.lines.length > 50) {
                    while (child.lines.length > 50) {
                      var spilled = child.lines.splice(child.lines.length - 25, 25);
                      var newleaf = new LeafChunk(spilled);
                      child.height -= newleaf.height;
                      this.children.splice(i + 1, 0, newleaf);
                      newleaf.parent = this;
                    }
                    this.maybeSpill();
                  }
                  break;
                }
                at -= sz;
              }
            },
            // When a node has grown, check whether it should be split.
            maybeSpill: function() {
              if (this.children.length <= 10) return;
              var me = this;
              do {
                var spilled = me.children.splice(me.children.length - 5, 5);
                var sibling = new BranchChunk(spilled);
                if (!me.parent) { // Become the parent node
                  var copy = new BranchChunk(me.children);
                  copy.parent = me;
                  me.children = [copy, sibling];
                  me = copy;
                } else {
                  me.size -= sibling.size;
                  me.height -= sibling.height;
                  var myIndex = indexOf(me.parent.children, me);
                  me.parent.children.splice(myIndex + 1, 0, sibling);
                }
                sibling.parent = me.parent;
              } while (me.children.length > 10);
              me.parent.maybeSpill();
            },
            iterN: function(at, n, op) {
              for (var i = 0; i < this.children.length; ++i) {
                var child = this.children[i], sz = child.chunkSize();
                if (at < sz) {
                  var used = Math.min(n, sz - at);
                  if (child.iterN(at, used, op)) return true;
                  if ((n -= used) == 0) break;
                  at = 0;
                } else at -= sz;
              }
            }
          };
        
          var nextDocId = 0;
          var Doc = CodeMirror.Doc = function(text, mode, firstLine, lineSep) {
            if (!(this instanceof Doc)) return new Doc(text, mode, firstLine, lineSep);
            if (firstLine == null) firstLine = 0;
        
            BranchChunk.call(this, [new LeafChunk([new Line("", null)])]);
            this.first = firstLine;
            this.scrollTop = this.scrollLeft = 0;
            this.cantEdit = false;
            this.cleanGeneration = 1;
            this.frontier = firstLine;
            var start = Pos(firstLine, 0);
            this.sel = simpleSelection(start);
            this.history = new History(null);
            this.id = ++nextDocId;
            this.modeOption = mode;
            this.lineSep = lineSep;
        
            if (typeof text == "string") text = this.splitLines(text);
            updateDoc(this, {from: start, to: start, text: text});
            setSelection(this, simpleSelection(start), sel_dontScroll);
          };
        
          Doc.prototype = createObj(BranchChunk.prototype, {
            constructor: Doc,
            // Iterate over the document. Supports two forms -- with only one
            // argument, it calls that for each line in the document. With
            // three, it iterates over the range given by the first two (with
            // the second being non-inclusive).
            iter: function(from, to, op) {
              if (op) this.iterN(from - this.first, to - from, op);
              else this.iterN(this.first, this.first + this.size, from);
            },
        
            // Non-public interface for adding and removing lines.
            insert: function(at, lines) {
              var height = 0;
              for (var i = 0; i < lines.length; ++i) height += lines[i].height;
              this.insertInner(at - this.first, lines, height);
            },
            remove: function(at, n) { this.removeInner(at - this.first, n); },
        
            // From here, the methods are part of the public interface. Most
            // are also available from CodeMirror (editor) instances.
        
            getValue: function(lineSep) {
              var lines = getLines(this, this.first, this.first + this.size);
              if (lineSep === false) return lines;
              return lines.join(lineSep || this.lineSeparator());
            },
            setValue: docMethodOp(function(code) {
              var top = Pos(this.first, 0), last = this.first + this.size - 1;
              makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),
                                text: this.splitLines(code), origin: "setValue", full: true}, true);
              setSelection(this, simpleSelection(top));
            }),
            replaceRange: function(code, from, to, origin) {
              from = clipPos(this, from);
              to = to ? clipPos(this, to) : from;
              replaceRange(this, code, from, to, origin);
            },
            getRange: function(from, to, lineSep) {
              var lines = getBetween(this, clipPos(this, from), clipPos(this, to));
              if (lineSep === false) return lines;
              return lines.join(lineSep || this.lineSeparator());
            },
        
            getLine: function(line) {var l = this.getLineHandle(line); return l && l.text;},
        
            getLineHandle: function(line) {if (isLine(this, line)) return getLine(this, line);},
            getLineNumber: function(line) {return lineNo(line);},
        
            getLineHandleVisualStart: function(line) {
              if (typeof line == "number") line = getLine(this, line);
              return visualLine(line);
            },
        
            lineCount: function() {return this.size;},
            firstLine: function() {return this.first;},
            lastLine: function() {return this.first + this.size - 1;},
        
            clipPos: function(pos) {return clipPos(this, pos);},
        
            getCursor: function(start) {
              var range = this.sel.primary(), pos;
              if (start == null || start == "head") pos = range.head;
              else if (start == "anchor") pos = range.anchor;
              else if (start == "end" || start == "to" || start === false) pos = range.to();
              else pos = range.from();
              return pos;
            },
            listSelections: function() { return this.sel.ranges; },
            somethingSelected: function() {return this.sel.somethingSelected();},
        
            setCursor: docMethodOp(function(line, ch, options) {
              setSimpleSelection(this, clipPos(this, typeof line == "number" ? Pos(line, ch || 0) : line), null, options);
            }),
            setSelection: docMethodOp(function(anchor, head, options) {
              setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options);
            }),
            extendSelection: docMethodOp(function(head, other, options) {
              extendSelection(this, clipPos(this, head), other && clipPos(this, other), options);
            }),
            extendSelections: docMethodOp(function(heads, options) {
              extendSelections(this, clipPosArray(this, heads, options));
            }),
            extendSelectionsBy: docMethodOp(function(f, options) {
              extendSelections(this, map(this.sel.ranges, f), options);
            }),
            setSelections: docMethodOp(function(ranges, primary, options) {
              if (!ranges.length) return;
              for (var i = 0, out = []; i < ranges.length; i++)
                out[i] = new Range(clipPos(this, ranges[i].anchor),
                                   clipPos(this, ranges[i].head));
              if (primary == null) primary = Math.min(ranges.length - 1, this.sel.primIndex);
              setSelection(this, normalizeSelection(out, primary), options);
            }),
            addSelection: docMethodOp(function(anchor, head, options) {
              var ranges = this.sel.ranges.slice(0);
              ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor)));
              setSelection(this, normalizeSelection(ranges, ranges.length - 1), options);
            }),
        
            getSelection: function(lineSep) {
              var ranges = this.sel.ranges, lines;
              for (var i = 0; i < ranges.length; i++) {
                var sel = getBetween(this, ranges[i].from(), ranges[i].to());
                lines = lines ? lines.concat(sel) : sel;
              }
              if (lineSep === false) return lines;
              else return lines.join(lineSep || this.lineSeparator());
            },
            getSelections: function(lineSep) {
              var parts = [], ranges = this.sel.ranges;
              for (var i = 0; i < ranges.length; i++) {
                var sel = getBetween(this, ranges[i].from(), ranges[i].to());
                if (lineSep !== false) sel = sel.join(lineSep || this.lineSeparator());
                parts[i] = sel;
              }
              return parts;
            },
            replaceSelection: function(code, collapse, origin) {
              var dup = [];
              for (var i = 0; i < this.sel.ranges.length; i++)
                dup[i] = code;
              this.replaceSelections(dup, collapse, origin || "+input");
            },
            replaceSelections: docMethodOp(function(code, collapse, origin) {
              var changes = [], sel = this.sel;
              for (var i = 0; i < sel.ranges.length; i++) {
                var range = sel.ranges[i];
                changes[i] = {from: range.from(), to: range.to(), text: this.splitLines(code[i]), origin: origin};
              }
              var newSel = collapse && collapse != "end" && computeReplacedSel(this, changes, collapse);
              for (var i = changes.length - 1; i >= 0; i--)
                makeChange(this, changes[i]);
              if (newSel) setSelectionReplaceHistory(this, newSel);
              else if (this.cm) ensureCursorVisible(this.cm);
            }),
            undo: docMethodOp(function() {makeChangeFromHistory(this, "undo");}),
            redo: docMethodOp(function() {makeChangeFromHistory(this, "redo");}),
            undoSelection: docMethodOp(function() {makeChangeFromHistory(this, "undo", true);}),
            redoSelection: docMethodOp(function() {makeChangeFromHistory(this, "redo", true);}),
        
            setExtending: function(val) {this.extend = val;},
            getExtending: function() {return this.extend;},
        
            historySize: function() {
              var hist = this.history, done = 0, undone = 0;
              for (var i = 0; i < hist.done.length; i++) if (!hist.done[i].ranges) ++done;
              for (var i = 0; i < hist.undone.length; i++) if (!hist.undone[i].ranges) ++undone;
              return {undo: done, redo: undone};
            },
            clearHistory: function() {this.history = new History(this.history.maxGeneration);},
        
            markClean: function() {
              this.cleanGeneration = this.changeGeneration(true);
            },
            changeGeneration: function(forceSplit) {
              if (forceSplit)
                this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null;
              return this.history.generation;
            },
            isClean: function (gen) {
              return this.history.generation == (gen || this.cleanGeneration);
            },
        
            getHistory: function() {
              return {done: copyHistoryArray(this.history.done),
                      undone: copyHistoryArray(this.history.undone)};
            },
            setHistory: function(histData) {
              var hist = this.history = new History(this.history.maxGeneration);
              hist.done = copyHistoryArray(histData.done.slice(0), null, true);
              hist.undone = copyHistoryArray(histData.undone.slice(0), null, true);
            },
        
            addLineClass: docMethodOp(function(handle, where, cls) {
              return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function(line) {
                var prop = where == "text" ? "textClass"
                         : where == "background" ? "bgClass"
                         : where == "gutter" ? "gutterClass" : "wrapClass";
                if (!line[prop]) line[prop] = cls;
                else if (classTest(cls).test(line[prop])) return false;
                else line[prop] += " " + cls;
                return true;
              });
            }),
            removeLineClass: docMethodOp(function(handle, where, cls) {
              return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function(line) {
                var prop = where == "text" ? "textClass"
                         : where == "background" ? "bgClass"
                         : where == "gutter" ? "gutterClass" : "wrapClass";
                var cur = line[prop];
                if (!cur) return false;
                else if (cls == null) line[prop] = null;
                else {
                  var found = cur.match(classTest(cls));
                  if (!found) return false;
                  var end = found.index + found[0].length;
                  line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? "" : " ") + cur.slice(end) || null;
                }
                return true;
              });
            }),
        
            addLineWidget: docMethodOp(function(handle, node, options) {
              return addLineWidget(this, handle, node, options);
            }),
            removeLineWidget: function(widget) { widget.clear(); },
        
            markText: function(from, to, options) {
              return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || "range");
            },
            setBookmark: function(pos, options) {
              var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options),
                              insertLeft: options && options.insertLeft,
                              clearWhenEmpty: false, shared: options && options.shared,
                              handleMouseEvents: options && options.handleMouseEvents};
              pos = clipPos(this, pos);
              return markText(this, pos, pos, realOpts, "bookmark");
            },
            findMarksAt: function(pos) {
              pos = clipPos(this, pos);
              var markers = [], spans = getLine(this, pos.line).markedSpans;
              if (spans) for (var i = 0; i < spans.length; ++i) {
                var span = spans[i];
                if ((span.from == null || span.from <= pos.ch) &&
                    (span.to == null || span.to >= pos.ch))
                  markers.push(span.marker.parent || span.marker);
              }
              return markers;
            },
            findMarks: function(from, to, filter) {
              from = clipPos(this, from); to = clipPos(this, to);
              var found = [], lineNo = from.line;
              this.iter(from.line, to.line + 1, function(line) {
                var spans = line.markedSpans;
                if (spans) for (var i = 0; i < spans.length; i++) {
                  var span = spans[i];
                  if (!(lineNo == from.line && from.ch > span.to ||
                        span.from == null && lineNo != from.line||
                        lineNo == to.line && span.from > to.ch) &&
                      (!filter || filter(span.marker)))
                    found.push(span.marker.parent || span.marker);
                }
                ++lineNo;
              });
              return found;
            },
            getAllMarks: function() {
              var markers = [];
              this.iter(function(line) {
                var sps = line.markedSpans;
                if (sps) for (var i = 0; i < sps.length; ++i)
                  if (sps[i].from != null) markers.push(sps[i].marker);
              });
              return markers;
            },
        
            posFromIndex: function(off) {
              var ch, lineNo = this.first;
              this.iter(function(line) {
                var sz = line.text.length + 1;
                if (sz > off) { ch = off; return true; }
                off -= sz;
                ++lineNo;
              });
              return clipPos(this, Pos(lineNo, ch));
            },
            indexFromPos: function (coords) {
              coords = clipPos(this, coords);
              var index = coords.ch;
              if (coords.line < this.first || coords.ch < 0) return 0;
              this.iter(this.first, coords.line, function (line) {
                index += line.text.length + 1;
              });
              return index;
            },
        
            copy: function(copyHistory) {
              var doc = new Doc(getLines(this, this.first, this.first + this.size),
                                this.modeOption, this.first, this.lineSep);
              doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft;
              doc.sel = this.sel;
              doc.extend = false;
              if (copyHistory) {
                doc.history.undoDepth = this.history.undoDepth;
                doc.setHistory(this.getHistory());
              }
              return doc;
            },
        
            linkedDoc: function(options) {
              if (!options) options = {};
              var from = this.first, to = this.first + this.size;
              if (options.from != null && options.from > from) from = options.from;
              if (options.to != null && options.to < to) to = options.to;
              var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from, this.lineSep);
              if (options.sharedHist) copy.history = this.history;
              (this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist});
              copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}];
              copySharedMarkers(copy, findSharedMarkers(this));
              return copy;
            },
            unlinkDoc: function(other) {
              if (other instanceof CodeMirror) other = other.doc;
              if (this.linked) for (var i = 0; i < this.linked.length; ++i) {
                var link = this.linked[i];
                if (link.doc != other) continue;
                this.linked.splice(i, 1);
                other.unlinkDoc(this);
                detachSharedMarkers(findSharedMarkers(this));
                break;
              }
              // If the histories were shared, split them again
              if (other.history == this.history) {
                var splitIds = [other.id];
                linkedDocs(other, function(doc) {splitIds.push(doc.id);}, true);
                other.history = new History(null);
                other.history.done = copyHistoryArray(this.history.done, splitIds);
                other.history.undone = copyHistoryArray(this.history.undone, splitIds);
              }
            },
            iterLinkedDocs: function(f) {linkedDocs(this, f);},
        
            getMode: function() {return this.mode;},
            getEditor: function() {return this.cm;},
        
            splitLines: function(str) {
              if (this.lineSep) return str.split(this.lineSep);
              return splitLinesAuto(str);
            },
            lineSeparator: function() { return this.lineSep || "\n"; }
          });
        
          // Public alias.
          Doc.prototype.eachLine = Doc.prototype.iter;
        
          // Set up methods on CodeMirror's prototype to redirect to the editor's document.
          var dontDelegate = "iter insert remove copy getEditor constructor".split(" ");
          for (var prop in Doc.prototype) if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0)
            CodeMirror.prototype[prop] = (function(method) {
              return function() {return method.apply(this.doc, arguments);};
            })(Doc.prototype[prop]);
        
          eventMixin(Doc);
        
          // Call f for all linked documents.
          function linkedDocs(doc, f, sharedHistOnly) {
            function propagate(doc, skip, sharedHist) {
              if (doc.linked) for (var i = 0; i < doc.linked.length; ++i) {
                var rel = doc.linked[i];
                if (rel.doc == skip) continue;
                var shared = sharedHist && rel.sharedHist;
                if (sharedHistOnly && !shared) continue;
                f(rel.doc, shared);
                propagate(rel.doc, doc, shared);
              }
            }
            propagate(doc, null, true);
          }
        
          // Attach a document to an editor.
          function attachDoc(cm, doc) {
            if (doc.cm) throw new Error("This document is already in use.");
            cm.doc = doc;
            doc.cm = cm;
            estimateLineHeights(cm);
            loadMode(cm);
            if (!cm.options.lineWrapping) findMaxLine(cm);
            cm.options.mode = doc.modeOption;
            regChange(cm);
          }
        
          // LINE UTILITIES
        
          // Find the line object corresponding to the given line number.
          function getLine(doc, n) {
            n -= doc.first;
            if (n < 0 || n >= doc.size) throw new Error("There is no line " + (n + doc.first) + " in the document.");
            for (var chunk = doc; !chunk.lines;) {
              for (var i = 0;; ++i) {
                var child = chunk.children[i], sz = child.chunkSize();
                if (n < sz) { chunk = child; break; }
                n -= sz;
              }
            }
            return chunk.lines[n];
          }
        
          // Get the part of a document between two positions, as an array of
          // strings.
          function getBetween(doc, start, end) {
            var out = [], n = start.line;
            doc.iter(start.line, end.line + 1, function(line) {
              var text = line.text;
              if (n == end.line) text = text.slice(0, end.ch);
              if (n == start.line) text = text.slice(start.ch);
              out.push(text);
              ++n;
            });
            return out;
          }
          // Get the lines between from and to, as array of strings.
          function getLines(doc, from, to) {
            var out = [];
            doc.iter(from, to, function(line) { out.push(line.text); });
            return out;
          }
        
          // Update the height of a line, propagating the height change
          // upwards to parent nodes.
          function updateLineHeight(line, height) {
            var diff = height - line.height;
            if (diff) for (var n = line; n; n = n.parent) n.height += diff;
          }
        
          // Given a line object, find its line number by walking up through
          // its parent links.
          function lineNo(line) {
            if (line.parent == null) return null;
            var cur = line.parent, no = indexOf(cur.lines, line);
            for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) {
              for (var i = 0;; ++i) {
                if (chunk.children[i] == cur) break;
                no += chunk.children[i].chunkSize();
              }
            }
            return no + cur.first;
          }
        
          // Find the line at the given vertical position, using the height
          // information in the document tree.
          function lineAtHeight(chunk, h) {
            var n = chunk.first;
            outer: do {
              for (var i = 0; i < chunk.children.length; ++i) {
                var child = chunk.children[i], ch = child.height;
                if (h < ch) { chunk = child; continue outer; }
                h -= ch;
                n += child.chunkSize();
              }
              return n;
            } while (!chunk.lines);
            for (var i = 0; i < chunk.lines.length; ++i) {
              var line = chunk.lines[i], lh = line.height;
              if (h < lh) break;
              h -= lh;
            }
            return n + i;
          }
        
        
          // Find the height above the given line.
          function heightAtLine(lineObj) {
            lineObj = visualLine(lineObj);
        
            var h = 0, chunk = lineObj.parent;
            for (var i = 0; i < chunk.lines.length; ++i) {
              var line = chunk.lines[i];
              if (line == lineObj) break;
              else h += line.height;
            }
            for (var p = chunk.parent; p; chunk = p, p = chunk.parent) {
              for (var i = 0; i < p.children.length; ++i) {
                var cur = p.children[i];
                if (cur == chunk) break;
                else h += cur.height;
              }
            }
            return h;
          }
        
          // Get the bidi ordering for the given line (and cache it). Returns
          // false for lines that are fully left-to-right, and an array of
          // BidiSpan objects otherwise.
          function getOrder(line) {
            var order = line.order;
            if (order == null) order = line.order = bidiOrdering(line.text);
            return order;
          }
        
          // HISTORY
        
          function History(startGen) {
            // Arrays of change events and selections. Doing something adds an
            // event to done and clears undo. Undoing moves events from done
            // to undone, redoing moves them in the other direction.
            this.done = []; this.undone = [];
            this.undoDepth = Infinity;
            // Used to track when changes can be merged into a single undo
            // event
            this.lastModTime = this.lastSelTime = 0;
            this.lastOp = this.lastSelOp = null;
            this.lastOrigin = this.lastSelOrigin = null;
            // Used by the isClean() method
            this.generation = this.maxGeneration = startGen || 1;
          }
        
          // Create a history change event from an updateDoc-style change
          // object.
          function historyChangeFromChange(doc, change) {
            var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)};
            attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);
            linkedDocs(doc, function(doc) {attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);}, true);
            return histChange;
          }
        
          // Pop all selection events off the end of a history array. Stop at
          // a change event.
          function clearSelectionEvents(array) {
            while (array.length) {
              var last = lst(array);
              if (last.ranges) array.pop();
              else break;
            }
          }
        
          // Find the top change event in the history. Pop off selection
          // events that are in the way.
          function lastChangeEvent(hist, force) {
            if (force) {
              clearSelectionEvents(hist.done);
              return lst(hist.done);
            } else if (hist.done.length && !lst(hist.done).ranges) {
              return lst(hist.done);
            } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) {
              hist.done.pop();
              return lst(hist.done);
            }
          }
        
          // Register a change in the history. Merges changes that are within
          // a single operation, ore are close together with an origin that
          // allows merging (starting with "+") into a single event.
          function addChangeToHistory(doc, change, selAfter, opId) {
            var hist = doc.history;
            hist.undone.length = 0;
            var time = +new Date, cur;
        
            if ((hist.lastOp == opId ||
                 hist.lastOrigin == change.origin && change.origin &&
                 ((change.origin.charAt(0) == "+" && doc.cm && hist.lastModTime > time - doc.cm.options.historyEventDelay) ||
                  change.origin.charAt(0) == "*")) &&
                (cur = lastChangeEvent(hist, hist.lastOp == opId))) {
              // Merge this change into the last event
              var last = lst(cur.changes);
              if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) {
                // Optimized case for simple insertion -- don't want to add
                // new changesets for every character typed
                last.to = changeEnd(change);
              } else {
                // Add new sub-event
                cur.changes.push(historyChangeFromChange(doc, change));
              }
            } else {
              // Can not be merged, start a new event.
              var before = lst(hist.done);
              if (!before || !before.ranges)
                pushSelectionToHistory(doc.sel, hist.done);
              cur = {changes: [historyChangeFromChange(doc, change)],
                     generation: hist.generation};
              hist.done.push(cur);
              while (hist.done.length > hist.undoDepth) {
                hist.done.shift();
                if (!hist.done[0].ranges) hist.done.shift();
              }
            }
            hist.done.push(selAfter);
            hist.generation = ++hist.maxGeneration;
            hist.lastModTime = hist.lastSelTime = time;
            hist.lastOp = hist.lastSelOp = opId;
            hist.lastOrigin = hist.lastSelOrigin = change.origin;
        
            if (!last) signal(doc, "historyAdded");
          }
        
          function selectionEventCanBeMerged(doc, origin, prev, sel) {
            var ch = origin.charAt(0);
            return ch == "*" ||
              ch == "+" &&
              prev.ranges.length == sel.ranges.length &&
              prev.somethingSelected() == sel.somethingSelected() &&
              new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500);
          }
        
          // Called whenever the selection changes, sets the new selection as
          // the pending selection in the history, and pushes the old pending
          // selection into the 'done' array when it was significantly
          // different (in number of selected ranges, emptiness, or time).
          function addSelectionToHistory(doc, sel, opId, options) {
            var hist = doc.history, origin = options && options.origin;
        
            // A new event is started when the previous origin does not match
            // the current, or the origins don't allow matching. Origins
            // starting with * are always merged, those starting with + are
            // merged when similar and close together in time.
            if (opId == hist.lastSelOp ||
                (origin && hist.lastSelOrigin == origin &&
                 (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin ||
                  selectionEventCanBeMerged(doc, origin, lst(hist.done), sel))))
              hist.done[hist.done.length - 1] = sel;
            else
              pushSelectionToHistory(sel, hist.done);
        
            hist.lastSelTime = +new Date;
            hist.lastSelOrigin = origin;
            hist.lastSelOp = opId;
            if (options && options.clearRedo !== false)
              clearSelectionEvents(hist.undone);
          }
        
          function pushSelectionToHistory(sel, dest) {
            var top = lst(dest);
            if (!(top && top.ranges && top.equals(sel)))
              dest.push(sel);
          }
        
          // Used to store marked span information in the history.
          function attachLocalSpans(doc, change, from, to) {
            var existing = change["spans_" + doc.id], n = 0;
            doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function(line) {
              if (line.markedSpans)
                (existing || (existing = change["spans_" + doc.id] = {}))[n] = line.markedSpans;
              ++n;
            });
          }
        
          // When un/re-doing restores text containing marked spans, those
          // that have been explicitly cleared should not be restored.
          function removeClearedSpans(spans) {
            if (!spans) return null;
            for (var i = 0, out; i < spans.length; ++i) {
              if (spans[i].marker.explicitlyCleared) { if (!out) out = spans.slice(0, i); }
              else if (out) out.push(spans[i]);
            }
            return !out ? spans : out.length ? out : null;
          }
        
          // Retrieve and filter the old marked spans stored in a change event.
          function getOldSpans(doc, change) {
            var found = change["spans_" + doc.id];
            if (!found) return null;
            for (var i = 0, nw = []; i < change.text.length; ++i)
              nw.push(removeClearedSpans(found[i]));
            return nw;
          }
        
          // Used both to provide a JSON-safe object in .getHistory, and, when
          // detaching a document, to split the history in two
          function copyHistoryArray(events, newGroup, instantiateSel) {
            for (var i = 0, copy = []; i < events.length; ++i) {
              var event = events[i];
              if (event.ranges) {
                copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event);
                continue;
              }
              var changes = event.changes, newChanges = [];
              copy.push({changes: newChanges});
              for (var j = 0; j < changes.length; ++j) {
                var change = changes[j], m;
                newChanges.push({from: change.from, to: change.to, text: change.text});
                if (newGroup) for (var prop in change) if (m = prop.match(/^spans_(\d+)$/)) {
                  if (indexOf(newGroup, Number(m[1])) > -1) {
                    lst(newChanges)[prop] = change[prop];
                    delete change[prop];
                  }
                }
              }
            }
            return copy;
          }
        
          // Rebasing/resetting history to deal with externally-sourced changes
        
          function rebaseHistSelSingle(pos, from, to, diff) {
            if (to < pos.line) {
              pos.line += diff;
            } else if (from < pos.line) {
              pos.line = from;
              pos.ch = 0;
            }
          }
        
          // Tries to rebase an array of history events given a change in the
          // document. If the change touches the same lines as the event, the
          // event, and everything 'behind' it, is discarded. If the change is
          // before the event, the event's positions are updated. Uses a
          // copy-on-write scheme for the positions, to avoid having to
          // reallocate them all on every rebase, but also avoid problems with
          // shared position objects being unsafely updated.
          function rebaseHistArray(array, from, to, diff) {
            for (var i = 0; i < array.length; ++i) {
              var sub = array[i], ok = true;
              if (sub.ranges) {
                if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; }
                for (var j = 0; j < sub.ranges.length; j++) {
                  rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff);
                  rebaseHistSelSingle(sub.ranges[j].head, from, to, diff);
                }
                continue;
              }
              for (var j = 0; j < sub.changes.length; ++j) {
                var cur = sub.changes[j];
                if (to < cur.from.line) {
                  cur.from = Pos(cur.from.line + diff, cur.from.ch);
                  cur.to = Pos(cur.to.line + diff, cur.to.ch);
                } else if (from <= cur.to.line) {
                  ok = false;
                  break;
                }
              }
              if (!ok) {
                array.splice(0, i + 1);
                i = 0;
              }
            }
          }
        
          function rebaseHist(hist, change) {
            var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1;
            rebaseHistArray(hist.done, from, to, diff);
            rebaseHistArray(hist.undone, from, to, diff);
          }
        
          // EVENT UTILITIES
        
          // Due to the fact that we still support jurassic IE versions, some
          // compatibility wrappers are needed.
        
          var e_preventDefault = CodeMirror.e_preventDefault = function(e) {
            if (e.preventDefault) e.preventDefault();
            else e.returnValue = false;
          };
          var e_stopPropagation = CodeMirror.e_stopPropagation = function(e) {
            if (e.stopPropagation) e.stopPropagation();
            else e.cancelBubble = true;
          };
          function e_defaultPrevented(e) {
            return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false;
          }
          var e_stop = CodeMirror.e_stop = function(e) {e_preventDefault(e); e_stopPropagation(e);};
        
          function e_target(e) {return e.target || e.srcElement;}
          function e_button(e) {
            var b = e.which;
            if (b == null) {
              if (e.button & 1) b = 1;
              else if (e.button & 2) b = 3;
              else if (e.button & 4) b = 2;
            }
            if (mac && e.ctrlKey && b == 1) b = 3;
            return b;
          }
        
          // EVENT HANDLING
        
          // Lightweight event framework. on/off also work on DOM nodes,
          // registering native DOM handlers.
        
          var on = CodeMirror.on = function(emitter, type, f) {
            if (emitter.addEventListener)
              emitter.addEventListener(type, f, false);
            else if (emitter.attachEvent)
              emitter.attachEvent("on" + type, f);
            else {
              var map = emitter._handlers || (emitter._handlers = {});
              var arr = map[type] || (map[type] = []);
              arr.push(f);
            }
          };
        
          var noHandlers = []
          function getHandlers(emitter, type, copy) {
            var arr = emitter._handlers && emitter._handlers[type]
            if (copy) return arr && arr.length > 0 ? arr.slice() : noHandlers
            else return arr || noHandlers
          }
        
          var off = CodeMirror.off = function(emitter, type, f) {
            if (emitter.removeEventListener)
              emitter.removeEventListener(type, f, false);
            else if (emitter.detachEvent)
              emitter.detachEvent("on" + type, f);
            else {
              var handlers = getHandlers(emitter, type, false)
              for (var i = 0; i < handlers.length; ++i)
                if (handlers[i] == f) { handlers.splice(i, 1); break; }
            }
          };
        
          var signal = CodeMirror.signal = function(emitter, type /*, values...*/) {
            var handlers = getHandlers(emitter, type, true)
            if (!handlers.length) return;
            var args = Array.prototype.slice.call(arguments, 2);
            for (var i = 0; i < handlers.length; ++i) handlers[i].apply(null, args);
          };
        
          var orphanDelayedCallbacks = null;
        
          // Often, we want to signal events at a point where we are in the
          // middle of some work, but don't want the handler to start calling
          // other methods on the editor, which might be in an inconsistent
          // state or simply not expect any other events to happen.
          // signalLater looks whether there are any handlers, and schedules
          // them to be executed when the last operation ends, or, if no
          // operation is active, when a timeout fires.
          function signalLater(emitter, type /*, values...*/) {
            var arr = getHandlers(emitter, type, false)
            if (!arr.length) return;
            var args = Array.prototype.slice.call(arguments, 2), list;
            if (operationGroup) {
              list = operationGroup.delayedCallbacks;
            } else if (orphanDelayedCallbacks) {
              list = orphanDelayedCallbacks;
            } else {
              list = orphanDelayedCallbacks = [];
              setTimeout(fireOrphanDelayed, 0);
            }
            function bnd(f) {return function(){f.apply(null, args);};};
            for (var i = 0; i < arr.length; ++i)
              list.push(bnd(arr[i]));
          }
        
          function fireOrphanDelayed() {
            var delayed = orphanDelayedCallbacks;
            orphanDelayedCallbacks = null;
            for (var i = 0; i < delayed.length; ++i) delayed[i]();
          }
        
          // The DOM events that CodeMirror handles can be overridden by
          // registering a (non-DOM) handler on the editor for the event name,
          // and preventDefault-ing the event in that handler.
          function signalDOMEvent(cm, e, override) {
            if (typeof e == "string")
              e = {type: e, preventDefault: function() { this.defaultPrevented = true; }};
            signal(cm, override || e.type, cm, e);
            return e_defaultPrevented(e) || e.codemirrorIgnore;
          }
        
          function signalCursorActivity(cm) {
            var arr = cm._handlers && cm._handlers.cursorActivity;
            if (!arr) return;
            var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []);
            for (var i = 0; i < arr.length; ++i) if (indexOf(set, arr[i]) == -1)
              set.push(arr[i]);
          }
        
          function hasHandler(emitter, type) {
            return getHandlers(emitter, type).length > 0
          }
        
          // Add on and off methods to a constructor's prototype, to make
          // registering events on such objects more convenient.
          function eventMixin(ctor) {
            ctor.prototype.on = function(type, f) {on(this, type, f);};
            ctor.prototype.off = function(type, f) {off(this, type, f);};
          }
        
          // MISC UTILITIES
        
          // Number of pixels added to scroller and sizer to hide scrollbar
          var scrollerGap = 30;
        
          // Returned or thrown by various protocols to signal 'I'm not
          // handling this'.
          var Pass = CodeMirror.Pass = {toString: function(){return "CodeMirror.Pass";}};
        
          // Reused option objects for setSelection & friends
          var sel_dontScroll = {scroll: false}, sel_mouse = {origin: "*mouse"}, sel_move = {origin: "+move"};
        
          function Delayed() {this.id = null;}
          Delayed.prototype.set = function(ms, f) {
            clearTimeout(this.id);
            this.id = setTimeout(f, ms);
          };
        
          // Counts the column offset in a string, taking tabs into account.
          // Used mostly to find indentation.
          var countColumn = CodeMirror.countColumn = function(string, end, tabSize, startIndex, startValue) {
            if (end == null) {
              end = string.search(/[^\s\u00a0]/);
              if (end == -1) end = string.length;
            }
            for (var i = startIndex || 0, n = startValue || 0;;) {
              var nextTab = string.indexOf("\t", i);
              if (nextTab < 0 || nextTab >= end)
                return n + (end - i);
              n += nextTab - i;
              n += tabSize - (n % tabSize);
              i = nextTab + 1;
            }
          };
        
          // The inverse of countColumn -- find the offset that corresponds to
          // a particular column.
          var findColumn = CodeMirror.findColumn = function(string, goal, tabSize) {
            for (var pos = 0, col = 0;;) {
              var nextTab = string.indexOf("\t", pos);
              if (nextTab == -1) nextTab = string.length;
              var skipped = nextTab - pos;
              if (nextTab == string.length || col + skipped >= goal)
                return pos + Math.min(skipped, goal - col);
              col += nextTab - pos;
              col += tabSize - (col % tabSize);
              pos = nextTab + 1;
              if (col >= goal) return pos;
            }
          }
        
          var spaceStrs = [""];
          function spaceStr(n) {
            while (spaceStrs.length <= n)
              spaceStrs.push(lst(spaceStrs) + " ");
            return spaceStrs[n];
          }
        
          function lst(arr) { return arr[arr.length-1]; }
        
          var selectInput = function(node) { node.select(); };
          if (ios) // Mobile Safari apparently has a bug where select() is broken.
            selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; };
          else if (ie) // Suppress mysterious IE10 errors
            selectInput = function(node) { try { node.select(); } catch(_e) {} };
        
          function indexOf(array, elt) {
            for (var i = 0; i < array.length; ++i)
              if (array[i] == elt) return i;
            return -1;
          }
          function map(array, f) {
            var out = [];
            for (var i = 0; i < array.length; i++) out[i] = f(array[i], i);
            return out;
          }
        
          function nothing() {}
        
          function createObj(base, props) {
            var inst;
            if (Object.create) {
              inst = Object.create(base);
            } else {
              nothing.prototype = base;
              inst = new nothing();
            }
            if (props) copyObj(props, inst);
            return inst;
          };
        
          function copyObj(obj, target, overwrite) {
            if (!target) target = {};
            for (var prop in obj)
              if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop)))
                target[prop] = obj[prop];
            return target;
          }
        
          function bind(f) {
            var args = Array.prototype.slice.call(arguments, 1);
            return function(){return f.apply(null, args);};
          }
        
          var nonASCIISingleCaseWordChar = /[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;
          var isWordCharBasic = CodeMirror.isWordChar = function(ch) {
            return /\w/.test(ch) || ch > "\x80" &&
              (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch));
          };
          function isWordChar(ch, helper) {
            if (!helper) return isWordCharBasic(ch);
            if (helper.source.indexOf("\\w") > -1 && isWordCharBasic(ch)) return true;
            return helper.test(ch);
          }
        
          function isEmpty(obj) {
            for (var n in obj) if (obj.hasOwnProperty(n) && obj[n]) return false;
            return true;
          }
        
          // Extending unicode characters. A series of a non-extending char +
          // any number of extending chars is treated as a single unit as far
          // as editing and measuring is concerned. This is not fully correct,
          // since some scripts/fonts/browsers also treat other configurations
          // of code points as a group.
          var extendingChars = /[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;
          function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch); }
        
          // DOM UTILITIES
        
          function elt(tag, content, className, style) {
            var e = document.createElement(tag);
            if (className) e.className = className;
            if (style) e.style.cssText = style;
            if (typeof content == "string") e.appendChild(document.createTextNode(content));
            else if (content) for (var i = 0; i < content.length; ++i) e.appendChild(content[i]);
            return e;
          }
        
          var range;
          if (document.createRange) range = function(node, start, end, endNode) {
            var r = document.createRange();
            r.setEnd(endNode || node, end);
            r.setStart(node, start);
            return r;
          };
          else range = function(node, start, end) {
            var r = document.body.createTextRange();
            try { r.moveToElementText(node.parentNode); }
            catch(e) { return r; }
            r.collapse(true);
            r.moveEnd("character", end);
            r.moveStart("character", start);
            return r;
          };
        
          function removeChildren(e) {
            for (var count = e.childNodes.length; count > 0; --count)
              e.removeChild(e.firstChild);
            return e;
          }
        
          function removeChildrenAndAdd(parent, e) {
            return removeChildren(parent).appendChild(e);
          }
        
          var contains = CodeMirror.contains = function(parent, child) {
            if (child.nodeType == 3) // Android browser always returns false when child is a textnode
              child = child.parentNode;
            if (parent.contains)
              return parent.contains(child);
            do {
              if (child.nodeType == 11) child = child.host;
              if (child == parent) return true;
            } while (child = child.parentNode);
          };
        
          function activeElt() {
            var activeElement = document.activeElement;
            while (activeElement && activeElement.root && activeElement.root.activeElement)
              activeElement = activeElement.root.activeElement;
            return activeElement;
          }
          // Older versions of IE throws unspecified error when touching
          // document.activeElement in some cases (during loading, in iframe)
          if (ie && ie_version < 11) activeElt = function() {
            try { return document.activeElement; }
            catch(e) { return document.body; }
          };
        
          function classTest(cls) { return new RegExp("(^|\\s)" + cls + "(?:$|\\s)\\s*"); }
          var rmClass = CodeMirror.rmClass = function(node, cls) {
            var current = node.className;
            var match = classTest(cls).exec(current);
            if (match) {
              var after = current.slice(match.index + match[0].length);
              node.className = current.slice(0, match.index) + (after ? match[1] + after : "");
            }
          };
          var addClass = CodeMirror.addClass = function(node, cls) {
            var current = node.className;
            if (!classTest(cls).test(current)) node.className += (current ? " " : "") + cls;
          };
          function joinClasses(a, b) {
            var as = a.split(" ");
            for (var i = 0; i < as.length; i++)
              if (as[i] && !classTest(as[i]).test(b)) b += " " + as[i];
            return b;
          }
        
          // WINDOW-WIDE EVENTS
        
          // These must be handled carefully, because naively registering a
          // handler for each editor will cause the editors to never be
          // garbage collected.
        
          function forEachCodeMirror(f) {
            if (!document.body.getElementsByClassName) return;
            var byClass = document.body.getElementsByClassName("CodeMirror");
            for (var i = 0; i < byClass.length; i++) {
              var cm = byClass[i].CodeMirror;
              if (cm) f(cm);
            }
          }
        
          var globalsRegistered = false;
          function ensureGlobalHandlers() {
            if (globalsRegistered) return;
            registerGlobalHandlers();
            globalsRegistered = true;
          }
          function registerGlobalHandlers() {
            // When the window resizes, we need to refresh active editors.
            var resizeTimer;
            on(window, "resize", function() {
              if (resizeTimer == null) resizeTimer = setTimeout(function() {
                resizeTimer = null;
                forEachCodeMirror(onResize);
              }, 100);
            });
            // When the window loses focus, we want to show the editor as blurred
            on(window, "blur", function() {
              forEachCodeMirror(onBlur);
            });
          }
        
          // FEATURE DETECTION
        
          // Detect drag-and-drop
          var dragAndDrop = function() {
            // There is *some* kind of drag-and-drop support in IE6-8, but I
            // couldn't get it to work yet.
            if (ie && ie_version < 9) return false;
            var div = elt('div');
            return "draggable" in div || "dragDrop" in div;
          }();
        
          var zwspSupported;
          function zeroWidthElement(measure) {
            if (zwspSupported == null) {
              var test = elt("span", "\u200b");
              removeChildrenAndAdd(measure, elt("span", [test, document.createTextNode("x")]));
              if (measure.firstChild.offsetHeight != 0)
                zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8);
            }
            var node = zwspSupported ? elt("span", "\u200b") :
              elt("span", "\u00a0", null, "display: inline-block; width: 1px; margin-right: -1px");
            node.setAttribute("cm-text", "");
            return node;
          }
        
          // Feature-detect IE's crummy client rect reporting for bidi text
          var badBidiRects;
          function hasBadBidiRects(measure) {
            if (badBidiRects != null) return badBidiRects;
            var txt = removeChildrenAndAdd(measure, document.createTextNode("A\u062eA"));
            var r0 = range(txt, 0, 1).getBoundingClientRect();
            if (!r0 || r0.left == r0.right) return false; // Safari returns null in some cases (#2780)
            var r1 = range(txt, 1, 2).getBoundingClientRect();
            return badBidiRects = (r1.right - r0.right < 3);
          }
        
          // See if "".split is the broken IE version, if so, provide an
          // alternative way to split lines.
          var splitLinesAuto = CodeMirror.splitLines = "\n\nb".split(/\n/).length != 3 ? function(string) {
            var pos = 0, result = [], l = string.length;
            while (pos <= l) {
              var nl = string.indexOf("\n", pos);
              if (nl == -1) nl = string.length;
              var line = string.slice(pos, string.charAt(nl - 1) == "\r" ? nl - 1 : nl);
              var rt = line.indexOf("\r");
              if (rt != -1) {
                result.push(line.slice(0, rt));
                pos += rt + 1;
              } else {
                result.push(line);
                pos = nl + 1;
              }
            }
            return result;
          } : function(string){return string.split(/\r\n?|\n/);};
        
          var hasSelection = window.getSelection ? function(te) {
            try { return te.selectionStart != te.selectionEnd; }
            catch(e) { return false; }
          } : function(te) {
            try {var range = te.ownerDocument.selection.createRange();}
            catch(e) {}
            if (!range || range.parentElement() != te) return false;
            return range.compareEndPoints("StartToEnd", range) != 0;
          };
        
          var hasCopyEvent = (function() {
            var e = elt("div");
            if ("oncopy" in e) return true;
            e.setAttribute("oncopy", "return;");
            return typeof e.oncopy == "function";
          })();
        
          var badZoomedRects = null;
          function hasBadZoomedRects(measure) {
            if (badZoomedRects != null) return badZoomedRects;
            var node = removeChildrenAndAdd(measure, elt("span", "x"));
            var normal = node.getBoundingClientRect();
            var fromRange = range(node, 0, 1).getBoundingClientRect();
            return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1;
          }
        
          // KEY NAMES
        
          var keyNames = CodeMirror.keyNames = {
            3: "Enter", 8: "Backspace", 9: "Tab", 13: "Enter", 16: "Shift", 17: "Ctrl", 18: "Alt",
            19: "Pause", 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End",
            36: "Home", 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert",
            46: "Delete", 59: ";", 61: "=", 91: "Mod", 92: "Mod", 93: "Mod",
            106: "*", 107: "=", 109: "-", 110: ".", 111: "/", 127: "Delete",
            173: "-", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\",
            221: "]", 222: "'", 63232: "Up", 63233: "Down", 63234: "Left", 63235: "Right", 63272: "Delete",
            63273: "Home", 63275: "End", 63276: "PageUp", 63277: "PageDown", 63302: "Insert"
          };
          (function() {
            // Number keys
            for (var i = 0; i < 10; i++) keyNames[i + 48] = keyNames[i + 96] = String(i);
            // Alphabetic keys
            for (var i = 65; i <= 90; i++) keyNames[i] = String.fromCharCode(i);
            // Function keys
            for (var i = 1; i <= 12; i++) keyNames[i + 111] = keyNames[i + 63235] = "F" + i;
          })();
        
          // BIDI HELPERS
        
          function iterateBidiSections(order, from, to, f) {
            if (!order) return f(from, to, "ltr");
            var found = false;
            for (var i = 0; i < order.length; ++i) {
              var part = order[i];
              if (part.from < to && part.to > from || from == to && part.to == from) {
                f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr");
                found = true;
              }
            }
            if (!found) f(from, to, "ltr");
          }
        
          function bidiLeft(part) { return part.level % 2 ? part.to : part.from; }
          function bidiRight(part) { return part.level % 2 ? part.from : part.to; }
        
          function lineLeft(line) { var order = getOrder(line); return order ? bidiLeft(order[0]) : 0; }
          function lineRight(line) {
            var order = getOrder(line);
            if (!order) return line.text.length;
            return bidiRight(lst(order));
          }
        
          function lineStart(cm, lineN) {
            var line = getLine(cm.doc, lineN);
            var visual = visualLine(line);
            if (visual != line) lineN = lineNo(visual);
            var order = getOrder(visual);
            var ch = !order ? 0 : order[0].level % 2 ? lineRight(visual) : lineLeft(visual);
            return Pos(lineN, ch);
          }
          function lineEnd(cm, lineN) {
            var merged, line = getLine(cm.doc, lineN);
            while (merged = collapsedSpanAtEnd(line)) {
              line = merged.find(1, true).line;
              lineN = null;
            }
            var order = getOrder(line);
            var ch = !order ? line.text.length : order[0].level % 2 ? lineLeft(line) : lineRight(line);
            return Pos(lineN == null ? lineNo(line) : lineN, ch);
          }
          function lineStartSmart(cm, pos) {
            var start = lineStart(cm, pos.line);
            var line = getLine(cm.doc, start.line);
            var order = getOrder(line);
            if (!order || order[0].level == 0) {
              var firstNonWS = Math.max(0, line.text.search(/\S/));
              var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch;
              return Pos(start.line, inWS ? 0 : firstNonWS);
            }
            return start;
          }
        
          function compareBidiLevel(order, a, b) {
            var linedir = order[0].level;
            if (a == linedir) return true;
            if (b == linedir) return false;
            return a < b;
          }
          var bidiOther;
          function getBidiPartAt(order, pos) {
            bidiOther = null;
            for (var i = 0, found; i < order.length; ++i) {
              var cur = order[i];
              if (cur.from < pos && cur.to > pos) return i;
              if ((cur.from == pos || cur.to == pos)) {
                if (found == null) {
                  found = i;
                } else if (compareBidiLevel(order, cur.level, order[found].level)) {
                  if (cur.from != cur.to) bidiOther = found;
                  return i;
                } else {
                  if (cur.from != cur.to) bidiOther = i;
                  return found;
                }
              }
            }
            return found;
          }
        
          function moveInLine(line, pos, dir, byUnit) {
            if (!byUnit) return pos + dir;
            do pos += dir;
            while (pos > 0 && isExtendingChar(line.text.charAt(pos)));
            return pos;
          }
        
          // This is needed in order to move 'visually' through bi-directional
          // text -- i.e., pressing left should make the cursor go left, even
          // when in RTL text. The tricky part is the 'jumps', where RTL and
          // LTR text touch each other. This often requires the cursor offset
          // to move more than one unit, in order to visually move one unit.
          function moveVisually(line, start, dir, byUnit) {
            var bidi = getOrder(line);
            if (!bidi) return moveLogically(line, start, dir, byUnit);
            var pos = getBidiPartAt(bidi, start), part = bidi[pos];
            var target = moveInLine(line, start, part.level % 2 ? -dir : dir, byUnit);
        
            for (;;) {
              if (target > part.from && target < part.to) return target;
              if (target == part.from || target == part.to) {
                if (getBidiPartAt(bidi, target) == pos) return target;
                part = bidi[pos += dir];
                return (dir > 0) == part.level % 2 ? part.to : part.from;
              } else {
                part = bidi[pos += dir];
                if (!part) return null;
                if ((dir > 0) == part.level % 2)
                  target = moveInLine(line, part.to, -1, byUnit);
                else
                  target = moveInLine(line, part.from, 1, byUnit);
              }
            }
          }
        
          function moveLogically(line, start, dir, byUnit) {
            var target = start + dir;
            if (byUnit) while (target > 0 && isExtendingChar(line.text.charAt(target))) target += dir;
            return target < 0 || target > line.text.length ? null : target;
          }
        
          // Bidirectional ordering algorithm
          // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm
          // that this (partially) implements.
        
          // One-char codes used for character types:
          // L (L):   Left-to-Right
          // R (R):   Right-to-Left
          // r (AL):  Right-to-Left Arabic
          // 1 (EN):  European Number
          // + (ES):  European Number Separator
          // % (ET):  European Number Terminator
          // n (AN):  Arabic Number
          // , (CS):  Common Number Separator
          // m (NSM): Non-Spacing Mark
          // b (BN):  Boundary Neutral
          // s (B):   Paragraph Separator
          // t (S):   Segment Separator
          // w (WS):  Whitespace
          // N (ON):  Other Neutrals
        
          // Returns null if characters are ordered as they appear
          // (left-to-right), or an array of sections ({from, to, level}
          // objects) in the order in which they occur visually.
          var bidiOrdering = (function() {
            // Character types for codepoints 0 to 0xff
            var lowTypes = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN";
            // Character types for codepoints 0x600 to 0x6ff
            var arabicTypes = "rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm";
            function charType(code) {
              if (code <= 0xf7) return lowTypes.charAt(code);
              else if (0x590 <= code && code <= 0x5f4) return "R";
              else if (0x600 <= code && code <= 0x6ed) return arabicTypes.charAt(code - 0x600);
              else if (0x6ee <= code && code <= 0x8ac) return "r";
              else if (0x2000 <= code && code <= 0x200b) return "w";
              else if (code == 0x200c) return "b";
              else return "L";
            }
        
            var bidiRE = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/;
            var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/;
            // Browsers seem to always treat the boundaries of block elements as being L.
            var outerType = "L";
        
            function BidiSpan(level, from, to) {
              this.level = level;
              this.from = from; this.to = to;
            }
        
            return function(str) {
              if (!bidiRE.test(str)) return false;
              var len = str.length, types = [];
              for (var i = 0, type; i < len; ++i)
                types.push(type = charType(str.charCodeAt(i)));
        
              // W1. Examine each non-spacing mark (NSM) in the level run, and
              // change the type of the NSM to the type of the previous
              // character. If the NSM is at the start of the level run, it will
              // get the type of sor.
              for (var i = 0, prev = outerType; i < len; ++i) {
                var type = types[i];
                if (type == "m") types[i] = prev;
                else prev = type;
              }
        
              // W2. Search backwards from each instance of a European number
              // until the first strong type (R, L, AL, or sor) is found. If an
              // AL is found, change the type of the European number to Arabic
              // number.
              // W3. Change all ALs to R.
              for (var i = 0, cur = outerType; i < len; ++i) {
                var type = types[i];
                if (type == "1" && cur == "r") types[i] = "n";
                else if (isStrong.test(type)) { cur = type; if (type == "r") types[i] = "R"; }
              }
        
              // W4. A single European separator between two European numbers
              // changes to a European number. A single common separator between
              // two numbers of the same type changes to that type.
              for (var i = 1, prev = types[0]; i < len - 1; ++i) {
                var type = types[i];
                if (type == "+" && prev == "1" && types[i+1] == "1") types[i] = "1";
                else if (type == "," && prev == types[i+1] &&
                         (prev == "1" || prev == "n")) types[i] = prev;
                prev = type;
              }
        
              // W5. A sequence of European terminators adjacent to European
              // numbers changes to all European numbers.
              // W6. Otherwise, separators and terminators change to Other
              // Neutral.
              for (var i = 0; i < len; ++i) {
                var type = types[i];
                if (type == ",") types[i] = "N";
                else if (type == "%") {
                  for (var end = i + 1; end < len && types[end] == "%"; ++end) {}
                  var replace = (i && types[i-1] == "!") || (end < len && types[end] == "1") ? "1" : "N";
                  for (var j = i; j < end; ++j) types[j] = replace;
                  i = end - 1;
                }
              }
        
              // W7. Search backwards from each instance of a European number
              // until the first strong type (R, L, or sor) is found. If an L is
              // found, then change the type of the European number to L.
              for (var i = 0, cur = outerType; i < len; ++i) {
                var type = types[i];
                if (cur == "L" && type == "1") types[i] = "L";
                else if (isStrong.test(type)) cur = type;
              }
        
              // N1. A sequence of neutrals takes the direction of the
              // surrounding strong text if the text on both sides has the same
              // direction. European and Arabic numbers act as if they were R in
              // terms of their influence on neutrals. Start-of-level-run (sor)
              // and end-of-level-run (eor) are used at level run boundaries.
              // N2. Any remaining neutrals take the embedding direction.
              for (var i = 0; i < len; ++i) {
                if (isNeutral.test(types[i])) {
                  for (var end = i + 1; end < len && isNeutral.test(types[end]); ++end) {}
                  var before = (i ? types[i-1] : outerType) == "L";
                  var after = (end < len ? types[end] : outerType) == "L";
                  var replace = before || after ? "L" : "R";
                  for (var j = i; j < end; ++j) types[j] = replace;
                  i = end - 1;
                }
              }
        
              // Here we depart from the documented algorithm, in order to avoid
              // building up an actual levels array. Since there are only three
              // levels (0, 1, 2) in an implementation that doesn't take
              // explicit embedding into account, we can build up the order on
              // the fly, without following the level-based algorithm.
              var order = [], m;
              for (var i = 0; i < len;) {
                if (countsAsLeft.test(types[i])) {
                  var start = i;
                  for (++i; i < len && countsAsLeft.test(types[i]); ++i) {}
                  order.push(new BidiSpan(0, start, i));
                } else {
                  var pos = i, at = order.length;
                  for (++i; i < len && types[i] != "L"; ++i) {}
                  for (var j = pos; j < i;) {
                    if (countsAsNum.test(types[j])) {
                      if (pos < j) order.splice(at, 0, new BidiSpan(1, pos, j));
                      var nstart = j;
                      for (++j; j < i && countsAsNum.test(types[j]); ++j) {}
                      order.splice(at, 0, new BidiSpan(2, nstart, j));
                      pos = j;
                    } else ++j;
                  }
                  if (pos < i) order.splice(at, 0, new BidiSpan(1, pos, i));
                }
              }
              if (order[0].level == 1 && (m = str.match(/^\s+/))) {
                order[0].from = m[0].length;
                order.unshift(new BidiSpan(0, 0, m[0].length));
              }
              if (lst(order).level == 1 && (m = str.match(/\s+$/))) {
                lst(order).to -= m[0].length;
                order.push(new BidiSpan(0, len - m[0].length, len));
              }
              if (order[0].level == 2)
                order.unshift(new BidiSpan(1, order[0].to, order[0].to));
              if (order[0].level != lst(order).level)
                order.push(new BidiSpan(order[0].level, len, len));
        
              return order;
            };
          })();
        
          // THE END
        
          CodeMirror.version = "5.7.1";
        
          return CodeMirror;
        });
        
    • mode
      • apl
        • apl.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("apl", function() {
            var builtInOps = {
              ".": "innerProduct",
              "\\": "scan",
              "/": "reduce",
              "⌿": "reduce1Axis",
              "⍀": "scan1Axis",
              "¨": "each",
              "⍣": "power"
            };
            var builtInFuncs = {
              "+": ["conjugate", "add"],
              "−": ["negate", "subtract"],
              "×": ["signOf", "multiply"],
              "÷": ["reciprocal", "divide"],
              "⌈": ["ceiling", "greaterOf"],
              "⌊": ["floor", "lesserOf"],
              "∣": ["absolute", "residue"],
              "⍳": ["indexGenerate", "indexOf"],
              "?": ["roll", "deal"],
              "⋆": ["exponentiate", "toThePowerOf"],
              "⍟": ["naturalLog", "logToTheBase"],
              "○": ["piTimes", "circularFuncs"],
              "!": ["factorial", "binomial"],
              "⌹": ["matrixInverse", "matrixDivide"],
              "<": [null, "lessThan"],
              "≤": [null, "lessThanOrEqual"],
              "=": [null, "equals"],
              ">": [null, "greaterThan"],
              "≥": [null, "greaterThanOrEqual"],
              "≠": [null, "notEqual"],
              "≡": ["depth", "match"],
              "≢": [null, "notMatch"],
              "∈": ["enlist", "membership"],
              "⍷": [null, "find"],
              "∪": ["unique", "union"],
              "∩": [null, "intersection"],
              "∼": ["not", "without"],
              "∨": [null, "or"],
              "∧": [null, "and"],
              "⍱": [null, "nor"],
              "⍲": [null, "nand"],
              "⍴": ["shapeOf", "reshape"],
              ",": ["ravel", "catenate"],
              "⍪": [null, "firstAxisCatenate"],
              "⌽": ["reverse", "rotate"],
              "⊖": ["axis1Reverse", "axis1Rotate"],
              "⍉": ["transpose", null],
              "↑": ["first", "take"],
              "↓": [null, "drop"],
              "⊂": ["enclose", "partitionWithAxis"],
              "⊃": ["diclose", "pick"],
              "⌷": [null, "index"],
              "⍋": ["gradeUp", null],
              "⍒": ["gradeDown", null],
              "⊤": ["encode", null],
              "⊥": ["decode", null],
              "⍕": ["format", "formatByExample"],
              "⍎": ["execute", null],
              "⊣": ["stop", "left"],
              "⊢": ["pass", "right"]
            };
          
            var isOperator = /[\.\/⌿⍀¨⍣]/;
            var isNiladic = /⍬/;
            var isFunction = /[\+−×÷⌈⌊∣⍳\?⋆⍟○!⌹<≤=>≥≠≡≢∈⍷∪∩∼∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢]/;
            var isArrow = /←/;
            var isComment = /[⍝#].*$/;
          
            var stringEater = function(type) {
              var prev;
              prev = false;
              return function(c) {
                prev = c;
                if (c === type) {
                  return prev === "\\";
                }
                return true;
              };
            };
            return {
              startState: function() {
                return {
                  prev: false,
                  func: false,
                  op: false,
                  string: false,
                  escape: false
                };
              },
              token: function(stream, state) {
                var ch, funcName;
                if (stream.eatSpace()) {
                  return null;
                }
                ch = stream.next();
                if (ch === '"' || ch === "'") {
                  stream.eatWhile(stringEater(ch));
                  stream.next();
                  state.prev = true;
                  return "string";
                }
                if (/[\[{\(]/.test(ch)) {
                  state.prev = false;
                  return null;
                }
                if (/[\]}\)]/.test(ch)) {
                  state.prev = true;
                  return null;
                }
                if (isNiladic.test(ch)) {
                  state.prev = false;
                  return "niladic";
                }
                if (/[¯\d]/.test(ch)) {
                  if (state.func) {
                    state.func = false;
                    state.prev = false;
                  } else {
                    state.prev = true;
                  }
                  stream.eatWhile(/[\w\.]/);
                  return "number";
                }
                if (isOperator.test(ch)) {
                  return "operator apl-" + builtInOps[ch];
                }
                if (isArrow.test(ch)) {
                  return "apl-arrow";
                }
                if (isFunction.test(ch)) {
                  funcName = "apl-";
                  if (builtInFuncs[ch] != null) {
                    if (state.prev) {
                      funcName += builtInFuncs[ch][1];
                    } else {
                      funcName += builtInFuncs[ch][0];
                    }
                  }
                  state.func = true;
                  state.prev = false;
                  return "function " + funcName;
                }
                if (isComment.test(ch)) {
                  stream.skipToEnd();
                  return "comment";
                }
                if (ch === "∘" && stream.peek() === ".") {
                  stream.next();
                  return "function jot-dot";
                }
                stream.eatWhile(/[\w\$_]/);
                state.prev = true;
                return "keyword";
              }
            };
          });
          
          CodeMirror.defineMIME("text/apl", "apl");
          
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: APL mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="./apl.js"></script>
          <style>
          	.CodeMirror { border: 2px inset #dee; }
              </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">APL</a>
            </ul>
          </div>
          
          <article>
          <h2>APL mode</h2>
          <form><textarea id="code" name="code">
          ⍝ Conway's game of life
          
          ⍝ This example was inspired by the impressive demo at
          ⍝ http://www.youtube.com/watch?v=a9xAKttWgP4
          
          ⍝ Create a matrix:
          ⍝     0 1 1
          ⍝     1 1 0
          ⍝     0 1 0
          creature ← (3 3 ⍴ ⍳ 9) ∈ 1 2 3 4 7   ⍝ Original creature from demo
          creature ← (3 3 ⍴ ⍳ 9) ∈ 1 3 6 7 8   ⍝ Glider
          
          ⍝ Place the creature on a larger board, near the centre
          board ← ¯1 ⊖ ¯2 ⌽ 5 7 ↑ creature
          
          ⍝ A function to move from one generation to the next
          life ← {∨/ 1 ⍵ ∧ 3 4 = ⊂+/ +⌿ 1 0 ¯1 ∘.⊖ 1 0 ¯1 ⌽¨ ⊂⍵}
          
          ⍝ Compute n-th generation and format it as a
          ⍝ character matrix
          gen ← {' #'[(life ⍣ ⍵) board]}
          
          ⍝ Show first three generations
          (gen 1) (gen 2) (gen 3)
          </textarea></form>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  matchBrackets: true,
                  mode: "text/apl"
                });
              </script>
          
              <p>Simple mode that tries to handle APL as well as it can.</p>
              <p>It attempts to label functions/operators based upon
              monadic/dyadic usage (but this is far from fully fleshed out).
              This means there are meaningful classnames so hover states can
              have popups etc.</p>
          
              <p><strong>MIME types defined:</strong> <code>text/apl</code> (APL code)</p>
            </article>
          
      • asciiarmor
        • asciiarmor.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            function errorIfNotEmpty(stream) {
              var nonWS = stream.match(/^\s*\S/);
              stream.skipToEnd();
              return nonWS ? "error" : null;
            }
          
            CodeMirror.defineMode("asciiarmor", function() {
              return {
                token: function(stream, state) {
                  var m;
                  if (state.state == "top") {
                    if (stream.sol() && (m = stream.match(/^-----BEGIN (.*)?-----\s*$/))) {
                      state.state = "headers";
                      state.type = m[1];
                      return "tag";
                    }
                    return errorIfNotEmpty(stream);
                  } else if (state.state == "headers") {
                    if (stream.sol() && stream.match(/^\w+:/)) {
                      state.state = "header";
                      return "atom";
                    } else {
                      var result = errorIfNotEmpty(stream);
                      if (result) state.state = "body";
                      return result;
                    }
                  } else if (state.state == "header") {
                    stream.skipToEnd();
                    state.state = "headers";
                    return "string";
                  } else if (state.state == "body") {
                    if (stream.sol() && (m = stream.match(/^-----END (.*)?-----\s*$/))) {
                      if (m[1] != state.type) return "error";
                      state.state = "end";
                      return "tag";
                    } else {
                      if (stream.eatWhile(/[A-Za-z0-9+\/=]/)) {
                        return null;
                      } else {
                        stream.next();
                        return "error";
                      }
                    }
                  } else if (state.state == "end") {
                    return errorIfNotEmpty(stream);
                  }
                },
                blankLine: function(state) {
                  if (state.state == "headers") state.state = "body";
                },
                startState: function() {
                  return {state: "top", type: null};
                }
              };
            });
          
            CodeMirror.defineMIME("application/pgp", "asciiarmor");
            CodeMirror.defineMIME("application/pgp-keys", "asciiarmor");
            CodeMirror.defineMIME("application/pgp-signature", "asciiarmor");
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: ASCII Armor (PGP) mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="asciiarmor.js"></script>
          <style>.CodeMirror {background: #f8f8f8;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">ASCII Armor</a>
            </ul>
          </div>
          
          <article>
          <h2>ASCII Armor (PGP) mode</h2>
          <form><textarea id="code" name="code">
          -----BEGIN PGP MESSAGE-----
          Version: OpenPrivacy 0.99
          
          yDgBO22WxBHv7O8X7O/jygAEzol56iUKiXmV+XmpCtmpqQUKiQrFqclFqUDBovzS
          vBSFjNSiVHsuAA==
          =njUN
          -----END PGP MESSAGE-----
          </textarea></form>
          
          <script>
          var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
            lineNumbers: true
          });
          </script>
          
          <p><strong>MIME types
          defined:</strong> <code>application/pgp</code>, <code>application/pgp-keys</code>, <code>application/pgp-signature</code></p>
          
          </article>
          
      • asn.1
        • asn.1.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineMode("asn.1", function(config, parserConfig) {
              var indentUnit = config.indentUnit,
                  keywords = parserConfig.keywords || {},
                  cmipVerbs = parserConfig.cmipVerbs || {},
                  compareTypes = parserConfig.compareTypes || {},
                  status = parserConfig.status || {},
                  tags = parserConfig.tags || {},
                  storage = parserConfig.storage || {},
                  modifier = parserConfig.modifier || {},
                  accessTypes = parserConfig.accessTypes|| {},
                  multiLineStrings = parserConfig.multiLineStrings,
                  indentStatements = parserConfig.indentStatements !== false;
              var isOperatorChar = /[\|\^]/;
              var curPunc;
          
              function tokenBase(stream, state) {
                var ch = stream.next();
                if (ch == '"' || ch == "'") {
                  state.tokenize = tokenString(ch);
                  return state.tokenize(stream, state);
                }
                if (/[\[\]\(\){}:=,;]/.test(ch)) {
                  curPunc = ch;
                  return "punctuation";
                }
                if (ch == "-"){
                  if (stream.eat("-")) {
                    stream.skipToEnd();
                    return "comment";
                  }
                }
                if (/\d/.test(ch)) {
                  stream.eatWhile(/[\w\.]/);
                  return "number";
                }
                if (isOperatorChar.test(ch)) {
                  stream.eatWhile(isOperatorChar);
                  return "operator";
                }
          
                stream.eatWhile(/[\w\-]/);
                var cur = stream.current();
                if (keywords.propertyIsEnumerable(cur)) return "keyword";
                if (cmipVerbs.propertyIsEnumerable(cur)) return "variable cmipVerbs";
                if (compareTypes.propertyIsEnumerable(cur)) return "atom compareTypes";
                if (status.propertyIsEnumerable(cur)) return "comment status";
                if (tags.propertyIsEnumerable(cur)) return "variable-3 tags";
                if (storage.propertyIsEnumerable(cur)) return "builtin storage";
                if (modifier.propertyIsEnumerable(cur)) return "string-2 modifier";
                if (accessTypes.propertyIsEnumerable(cur)) return "atom accessTypes";
          
                return "variable";
              }
          
              function tokenString(quote) {
                return function(stream, state) {
                  var escaped = false, next, end = false;
                  while ((next = stream.next()) != null) {
                    if (next == quote && !escaped){
                      var afterNext = stream.peek();
                      //look if the character if the quote is like the B in '10100010'B
                      if (afterNext){
                        afterNext = afterNext.toLowerCase();
                        if(afterNext == "b" || afterNext == "h" || afterNext == "o")
                          stream.next();
                      }
                      end = true; break;
                    }
                    escaped = !escaped && next == "\\";
                  }
                  if (end || !(escaped || multiLineStrings))
                    state.tokenize = null;
                  return "string";
                };
              }
          
              function Context(indented, column, type, align, prev) {
                this.indented = indented;
                this.column = column;
                this.type = type;
                this.align = align;
                this.prev = prev;
              }
              function pushContext(state, col, type) {
                var indent = state.indented;
                if (state.context && state.context.type == "statement")
                  indent = state.context.indented;
                return state.context = new Context(indent, col, type, null, state.context);
              }
              function popContext(state) {
                var t = state.context.type;
                if (t == ")" || t == "]" || t == "}")
                  state.indented = state.context.indented;
                return state.context = state.context.prev;
              }
          
              //Interface
              return {
                startState: function(basecolumn) {
                  return {
                    tokenize: null,
                    context: new Context((basecolumn || 0) - indentUnit, 0, "top", false),
                    indented: 0,
                    startOfLine: true
                  };
                },
          
                token: function(stream, state) {
                  var ctx = state.context;
                  if (stream.sol()) {
                    if (ctx.align == null) ctx.align = false;
                    state.indented = stream.indentation();
                    state.startOfLine = true;
                  }
                  if (stream.eatSpace()) return null;
                  curPunc = null;
                  var style = (state.tokenize || tokenBase)(stream, state);
                  if (style == "comment") return style;
                  if (ctx.align == null) ctx.align = true;
          
                  if ((curPunc == ";" || curPunc == ":" || curPunc == ",")
                      && ctx.type == "statement"){
                    popContext(state);
                  }
                  else if (curPunc == "{") pushContext(state, stream.column(), "}");
                  else if (curPunc == "[") pushContext(state, stream.column(), "]");
                  else if (curPunc == "(") pushContext(state, stream.column(), ")");
                  else if (curPunc == "}") {
                    while (ctx.type == "statement") ctx = popContext(state);
                    if (ctx.type == "}") ctx = popContext(state);
                    while (ctx.type == "statement") ctx = popContext(state);
                  }
                  else if (curPunc == ctx.type) popContext(state);
                  else if (indentStatements && (((ctx.type == "}" || ctx.type == "top")
                      && curPunc != ';') || (ctx.type == "statement"
                      && curPunc == "newstatement")))
                    pushContext(state, stream.column(), "statement");
          
                  state.startOfLine = false;
                  return style;
                },
          
                electricChars: "{}",
                lineComment: "--",
                fold: "brace"
              };
            });
          
            function words(str) {
              var obj = {}, words = str.split(" ");
              for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
              return obj;
            }
          
            CodeMirror.defineMIME("text/x-ttcn-asn", {
              name: "asn.1",
              keywords: words("DEFINITIONS OBJECTS IF DERIVED INFORMATION ACTION" +
              " REPLY ANY NAMED CHARACTERIZED BEHAVIOUR REGISTERED" +
              " WITH AS IDENTIFIED CONSTRAINED BY PRESENT BEGIN" +
              " IMPORTS FROM UNITS SYNTAX MIN-ACCESS MAX-ACCESS" +
              " MINACCESS MAXACCESS REVISION STATUS DESCRIPTION" +
              " SEQUENCE SET COMPONENTS OF CHOICE DistinguishedName" +
              " ENUMERATED SIZE MODULE END INDEX AUGMENTS EXTENSIBILITY" +
              " IMPLIED EXPORTS"),
              cmipVerbs: words("ACTIONS ADD GET NOTIFICATIONS REPLACE REMOVE"),
              compareTypes: words("OPTIONAL DEFAULT MANAGED MODULE-TYPE MODULE_IDENTITY" +
              " MODULE-COMPLIANCE OBJECT-TYPE OBJECT-IDENTITY" +
              " OBJECT-COMPLIANCE MODE CONFIRMED CONDITIONAL" +
              " SUBORDINATE SUPERIOR CLASS TRUE FALSE NULL" +
              " TEXTUAL-CONVENTION"),
              status: words("current deprecated mandatory obsolete"),
              tags: words("APPLICATION AUTOMATIC EXPLICIT IMPLICIT PRIVATE TAGS" +
              " UNIVERSAL"),
              storage: words("BOOLEAN INTEGER OBJECT IDENTIFIER BIT OCTET STRING" +
              " UTCTime InterfaceIndex IANAifType CMIP-Attribute" +
              " REAL PACKAGE PACKAGES IpAddress PhysAddress" +
              " NetworkAddress BITS BMPString TimeStamp TimeTicks" +
              " TruthValue RowStatus DisplayString GeneralString" +
              " GraphicString IA5String NumericString" +
              " PrintableString SnmpAdminAtring TeletexString" +
              " UTF8String VideotexString VisibleString StringStore" +
              " ISO646String T61String UniversalString Unsigned32" +
              " Integer32 Gauge Gauge32 Counter Counter32 Counter64"),
              modifier: words("ATTRIBUTE ATTRIBUTES MANDATORY-GROUP MANDATORY-GROUPS" +
              " GROUP GROUPS ELEMENTS EQUALITY ORDERING SUBSTRINGS" +
              " DEFINED"),
              accessTypes: words("not-accessible accessible-for-notify read-only" +
              " read-create read-write"),
              multiLineStrings: true
            });
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: ASN.1 mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="asn.1.js"></script>
          <style type="text/css">
              .CodeMirror {
                  border-top: 1px solid black;
                  border-bottom: 1px solid black;
              }
          </style>
          <div id=nav>
              <a href="http://codemirror.net"><h1>CodeMirror</h1>
                  <img id=logo src="../../doc/logo.png">
              </a>
          
              <ul>
                  <li><a href="../../index.html">Home</a>
                  <li><a href="../../doc/manual.html">Manual</a>
                  <li><a href="https://github.com/codemirror/codemirror">Code</a>
              </ul>
              <ul>
                  <li><a href="../index.html">Language modes</a>
                  <li><a class=active href="http://en.wikipedia.org/wiki/Abstract_Syntax_Notation_One">ASN.1</a>
              </ul>
          </div>
          <article>
              <h2>ASN.1 example</h2>
              <div>
                  <textarea id="ttcn-asn-code">
           --
           -- Sample ASN.1 Code
           --
           MyModule DEFINITIONS ::=
           BEGIN
          
           MyTypes ::= SEQUENCE {
               myObjectId   OBJECT IDENTIFIER,
               mySeqOf      SEQUENCE OF MyInt,
               myBitString  BIT STRING {
                                   muxToken(0),
                                   modemToken(1)
                            }
           }
          
           MyInt ::= INTEGER (0..65535)
          
           END
                  </textarea>
              </div>
          
              <script>
                  var ttcnEditor = CodeMirror.fromTextArea(document.getElementById("ttcn-asn-code"), {
                      lineNumbers: true,
                      matchBrackets: true,
                      mode: "text/x-ttcn-asn"
                  });
                  ttcnEditor.setSize(400, 400);
                  var mac = CodeMirror.keyMap.default == CodeMirror.keyMap.macDefault;
                  CodeMirror.keyMap.default[(mac ? "Cmd" : "Ctrl") + "-Space"] = "autocomplete";
              </script>
              <br/>
              <p><strong>Language:</strong> Abstract Syntax Notation One
                  (<a href="http://www.itu.int/en/ITU-T/asn1/Pages/introduction.aspx">ASN.1</a>)
              </p>
              <p><strong>MIME types defined:</strong> <code>text/x-ttcn-asn</code></p>
          
              <br/>
              <p>The development of this mode has been sponsored by <a href="http://www.ericsson.com/">Ericsson
              </a>.</p>
              <p>Coded by Asmelash Tsegay Gebretsadkan </p>
              </article>
          </article>
          
          
      • asterisk
        • asterisk.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          /*
           * =====================================================================================
           *
           *       Filename:  mode/asterisk/asterisk.js
           *
           *    Description:  CodeMirror mode for Asterisk dialplan
           *
           *        Created:  05/17/2012 09:20:25 PM
           *       Revision:  none
           *
           *         Author:  Stas Kobzar (stas@modulis.ca),
           *        Company:  Modulis.ca Inc.
           *
           * =====================================================================================
           */
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("asterisk", function() {
            var atoms    = ["exten", "same", "include","ignorepat","switch"],
                dpcmd    = ["#include","#exec"],
                apps     = [
                            "addqueuemember","adsiprog","aelsub","agentlogin","agentmonitoroutgoing","agi",
                            "alarmreceiver","amd","answer","authenticate","background","backgrounddetect",
                            "bridge","busy","callcompletioncancel","callcompletionrequest","celgenuserevent",
                            "changemonitor","chanisavail","channelredirect","chanspy","clearhash","confbridge",
                            "congestion","continuewhile","controlplayback","dahdiacceptr2call","dahdibarge",
                            "dahdiras","dahdiscan","dahdisendcallreroutingfacility","dahdisendkeypadfacility",
                            "datetime","dbdel","dbdeltree","deadagi","dial","dictate","directory","disa",
                            "dumpchan","eagi","echo","endwhile","exec","execif","execiftime","exitwhile","extenspy",
                            "externalivr","festival","flash","followme","forkcdr","getcpeid","gosub","gosubif",
                            "goto","gotoif","gotoiftime","hangup","iax2provision","ices","importvar","incomplete",
                            "ivrdemo","jabberjoin","jabberleave","jabbersend","jabbersendgroup","jabberstatus",
                            "jack","log","macro","macroexclusive","macroexit","macroif","mailboxexists","meetme",
                            "meetmeadmin","meetmechanneladmin","meetmecount","milliwatt","minivmaccmess","minivmdelete",
                            "minivmgreet","minivmmwi","minivmnotify","minivmrecord","mixmonitor","monitor","morsecode",
                            "mp3player","mset","musiconhold","nbscat","nocdr","noop","odbc","odbc","odbcfinish",
                            "originate","ospauth","ospfinish","osplookup","ospnext","page","park","parkandannounce",
                            "parkedcall","pausemonitor","pausequeuemember","pickup","pickupchan","playback","playtones",
                            "privacymanager","proceeding","progress","queue","queuelog","raiseexception","read","readexten",
                            "readfile","receivefax","receivefax","receivefax","record","removequeuemember",
                            "resetcdr","retrydial","return","ringing","sayalpha","saycountedadj","saycountednoun",
                            "saycountpl","saydigits","saynumber","sayphonetic","sayunixtime","senddtmf","sendfax",
                            "sendfax","sendfax","sendimage","sendtext","sendurl","set","setamaflags",
                            "setcallerpres","setmusiconhold","sipaddheader","sipdtmfmode","sipremoveheader","skel",
                            "slastation","slatrunk","sms","softhangup","speechactivategrammar","speechbackground",
                            "speechcreate","speechdeactivategrammar","speechdestroy","speechloadgrammar","speechprocessingsound",
                            "speechstart","speechunloadgrammar","stackpop","startmusiconhold","stopmixmonitor","stopmonitor",
                            "stopmusiconhold","stopplaytones","system","testclient","testserver","transfer","tryexec",
                            "trysystem","unpausemonitor","unpausequeuemember","userevent","verbose","vmauthenticate",
                            "vmsayname","voicemail","voicemailmain","wait","waitexten","waitfornoise","waitforring",
                            "waitforsilence","waitmusiconhold","waituntil","while","zapateller"
                           ];
          
            function basicToken(stream,state){
              var cur = '';
              var ch = stream.next();
              // comment
              if(ch == ";") {
                stream.skipToEnd();
                return "comment";
              }
              // context
              if(ch == '[') {
                stream.skipTo(']');
                stream.eat(']');
                return "header";
              }
              // string
              if(ch == '"') {
                stream.skipTo('"');
                return "string";
              }
              if(ch == "'") {
                stream.skipTo("'");
                return "string-2";
              }
              // dialplan commands
              if(ch == '#') {
                stream.eatWhile(/\w/);
                cur = stream.current();
                if(dpcmd.indexOf(cur) !== -1) {
                  stream.skipToEnd();
                  return "strong";
                }
              }
              // application args
              if(ch == '$'){
                var ch1 = stream.peek();
                if(ch1 == '{'){
                  stream.skipTo('}');
                  stream.eat('}');
                  return "variable-3";
                }
              }
              // extension
              stream.eatWhile(/\w/);
              cur = stream.current();
              if(atoms.indexOf(cur) !== -1) {
                state.extenStart = true;
                switch(cur) {
                  case 'same': state.extenSame = true; break;
                  case 'include':
                  case 'switch':
                  case 'ignorepat':
                    state.extenInclude = true;break;
                  default:break;
                }
                return "atom";
              }
            }
          
            return {
              startState: function() {
                return {
                  extenStart: false,
                  extenSame:  false,
                  extenInclude: false,
                  extenExten: false,
                  extenPriority: false,
                  extenApplication: false
                };
              },
              token: function(stream, state) {
          
                var cur = '';
                if(stream.eatSpace()) return null;
                // extension started
                if(state.extenStart){
                  stream.eatWhile(/[^\s]/);
                  cur = stream.current();
                  if(/^=>?$/.test(cur)){
                    state.extenExten = true;
                    state.extenStart = false;
                    return "strong";
                  } else {
                    state.extenStart = false;
                    stream.skipToEnd();
                    return "error";
                  }
                } else if(state.extenExten) {
                  // set exten and priority
                  state.extenExten = false;
                  state.extenPriority = true;
                  stream.eatWhile(/[^,]/);
                  if(state.extenInclude) {
                    stream.skipToEnd();
                    state.extenPriority = false;
                    state.extenInclude = false;
                  }
                  if(state.extenSame) {
                    state.extenPriority = false;
                    state.extenSame = false;
                    state.extenApplication = true;
                  }
                  return "tag";
                } else if(state.extenPriority) {
                  state.extenPriority = false;
                  state.extenApplication = true;
                  stream.next(); // get comma
                  if(state.extenSame) return null;
                  stream.eatWhile(/[^,]/);
                  return "number";
                } else if(state.extenApplication) {
                  stream.eatWhile(/,/);
                  cur = stream.current();
                  if(cur === ',') return null;
                  stream.eatWhile(/\w/);
                  cur = stream.current().toLowerCase();
                  state.extenApplication = false;
                  if(apps.indexOf(cur) !== -1){
                    return "def strong";
                  }
                } else{
                  return basicToken(stream,state);
                }
          
                return null;
              }
            };
          });
          
          CodeMirror.defineMIME("text/x-asterisk", "asterisk");
          
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Asterisk dialplan mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="asterisk.js"></script>
          <style>
                .CodeMirror {border: 1px solid #999;}
                .cm-s-default span.cm-arrow { color: red; }
              </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Asterisk dialplan</a>
            </ul>
          </div>
          
          <article>
          <h2>Asterisk dialplan mode</h2>
          <form><textarea id="code" name="code">
          ; extensions.conf - the Asterisk dial plan
          ;
          
          [general]
          ;
          ; If static is set to no, or omitted, then the pbx_config will rewrite
          ; this file when extensions are modified.  Remember that all comments
          ; made in the file will be lost when that happens.
          static=yes
          
          #include "/etc/asterisk/additional_general.conf
          
          [iaxprovider]
          switch => IAX2/user:[key]@myserver/mycontext
          
          [dynamic]
          #exec /usr/bin/dynamic-peers.pl
          
          [trunkint]
          ;
          ; International long distance through trunk
          ;
          exten => _9011.,1,Macro(dundi-e164,${EXTEN:4})
          exten => _9011.,n,Dial(${GLOBAL(TRUNK)}/${FILTER(0-9,${EXTEN:${GLOBAL(TRUNKMSD)}})})
          
          [local]
          ;
          ; Master context for local, toll-free, and iaxtel calls only
          ;
          ignorepat => 9
          include => default
          
          [demo]
          include => stdexten
          ;
          ; We start with what to do when a call first comes in.
          ;
          exten => s,1,Wait(1)			; Wait a second, just for fun
          same  => n,Answer			; Answer the line
          same  => n,Set(TIMEOUT(digit)=5)	; Set Digit Timeout to 5 seconds
          same  => n,Set(TIMEOUT(response)=10)	; Set Response Timeout to 10 seconds
          same  => n(restart),BackGround(demo-congrats)	; Play a congratulatory message
          same  => n(instruct),BackGround(demo-instruct)	; Play some instructions
          same  => n,WaitExten			; Wait for an extension to be dialed.
          
          exten => 2,1,BackGround(demo-moreinfo)	; Give some more information.
          exten => 2,n,Goto(s,instruct)
          
          exten => 3,1,Set(LANGUAGE()=fr)		; Set language to french
          exten => 3,n,Goto(s,restart)		; Start with the congratulations
          
          exten => 1000,1,Goto(default,s,1)
          ;
          ; We also create an example user, 1234, who is on the console and has
          ; voicemail, etc.
          ;
          exten => 1234,1,Playback(transfer,skip)		; "Please hold while..."
          					; (but skip if channel is not up)
          exten => 1234,n,Gosub(${EXTEN},stdexten(${GLOBAL(CONSOLE)}))
          exten => 1234,n,Goto(default,s,1)		; exited Voicemail
          
          exten => 1235,1,Voicemail(1234,u)		; Right to voicemail
          
          exten => 1236,1,Dial(Console/dsp)		; Ring forever
          exten => 1236,n,Voicemail(1234,b)		; Unless busy
          
          ;
          ; # for when they're done with the demo
          ;
          exten => #,1,Playback(demo-thanks)	; "Thanks for trying the demo"
          exten => #,n,Hangup			; Hang them up.
          
          ;
          ; A timeout and "invalid extension rule"
          ;
          exten => t,1,Goto(#,1)			; If they take too long, give up
          exten => i,1,Playback(invalid)		; "That's not valid, try again"
          
          ;
          ; Create an extension, 500, for dialing the
          ; Asterisk demo.
          ;
          exten => 500,1,Playback(demo-abouttotry); Let them know what's going on
          exten => 500,n,Dial(IAX2/guest@pbx.digium.com/s@default)	; Call the Asterisk demo
          exten => 500,n,Playback(demo-nogo)	; Couldn't connect to the demo site
          exten => 500,n,Goto(s,6)		; Return to the start over message.
          
          ;
          ; Create an extension, 600, for evaluating echo latency.
          ;
          exten => 600,1,Playback(demo-echotest)	; Let them know what's going on
          exten => 600,n,Echo			; Do the echo test
          exten => 600,n,Playback(demo-echodone)	; Let them know it's over
          exten => 600,n,Goto(s,6)		; Start over
          
          ;
          ;	You can use the Macro Page to intercom a individual user
          exten => 76245,1,Macro(page,SIP/Grandstream1)
          ; or if your peernames are the same as extensions
          exten => _7XXX,1,Macro(page,SIP/${EXTEN})
          ;
          ;
          ; System Wide Page at extension 7999
          ;
          exten => 7999,1,Set(TIMEOUT(absolute)=60)
          exten => 7999,2,Page(Local/Grandstream1@page&Local/Xlite1@page&Local/1234@page/n,d)
          
          ; Give voicemail at extension 8500
          ;
          exten => 8500,1,VoicemailMain
          exten => 8500,n,Goto(s,6)
          
              </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  mode: "text/x-asterisk",
                  matchBrackets: true,
                  lineNumber: true
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-asterisk</code>.</p>
          
            </article>
          
      • brainfuck
        • brainfuck.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // Brainfuck mode created by Michael Kaminsky https://github.com/mkaminsky11
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object")
              mod(require("../../lib/codemirror"))
            else if (typeof define == "function" && define.amd)
              define(["../../lib/codemirror"], mod)
            else
              mod(CodeMirror)
          })(function(CodeMirror) {
            "use strict"
            var reserve = "><+-.,[]".split("");
            /*
            comments can be either:
            placed behind lines
          
                  +++    this is a comment
          
            where reserved characters cannot be used
            or in a loop
            [
              this is ok to use [ ] and stuff
            ]
            or preceded by #
            */
            CodeMirror.defineMode("brainfuck", function() {
              return {
                startState: function() {
                  return {
                    commentLine: false,
                    left: 0,
                    right: 0,
                    commentLoop: false
                  }
                },
                token: function(stream, state) {
                  if (stream.eatSpace()) return null
                  if(stream.sol()){
                    state.commentLine = false;
                  }
                  var ch = stream.next().toString();
                  if(reserve.indexOf(ch) !== -1){
                    if(state.commentLine === true){
                      if(stream.eol()){
                        state.commentLine = false;
                      }
                      return "comment";
                    }
                    if(ch === "]" || ch === "["){
                      if(ch === "["){
                        state.left++;
                      }
                      else{
                        state.right++;
                      }
                      return "bracket";
                    }
                    else if(ch === "+" || ch === "-"){
                      return "keyword";
                    }
                    else if(ch === "<" || ch === ">"){
                      return "atom";
                    }
                    else if(ch === "." || ch === ","){
                      return "def";
                    }
                  }
                  else{
                    state.commentLine = true;
                    if(stream.eol()){
                      state.commentLine = false;
                    }
                    return "comment";
                  }
                  if(stream.eol()){
                    state.commentLine = false;
                  }
                }
              };
            });
          CodeMirror.defineMIME("text/x-brainfuck","brainfuck")
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Brainfuck mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="./brainfuck.js"></script>
          <style>
          	.CodeMirror { border: 2px inset #dee; }
              </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#"></a>
            </ul>
          </div>
          
          <article>
          <h2>Brainfuck mode</h2>
          <form><textarea id="code" name="code">
          [ This program prints "Hello World!" and a newline to the screen, its
            length is 106 active command characters [it is not the shortest.]
          
            This loop is a "comment loop", it's a simple way of adding a comment
            to a BF program such that you don't have to worry about any command
            characters. Any ".", ",", "+", "-", "&lt;" and "&gt;" characters are simply
            ignored, the "[" and "]" characters just have to be balanced.
          ]
          +++++ +++               Set Cell #0 to 8
          [
              &gt;++++               Add 4 to Cell #1; this will always set Cell #1 to 4
              [                   as the cell will be cleared by the loop
                  &gt;++             Add 2 to Cell #2
                  &gt;+++            Add 3 to Cell #3
                  &gt;+++            Add 3 to Cell #4
                  &gt;+              Add 1 to Cell #5
                  &lt;&lt;&lt;&lt;-           Decrement the loop counter in Cell #1
              ]                   Loop till Cell #1 is zero; number of iterations is 4
              &gt;+                  Add 1 to Cell #2
              &gt;+                  Add 1 to Cell #3
              &gt;-                  Subtract 1 from Cell #4
              &gt;&gt;+                 Add 1 to Cell #6
              [&lt;]                 Move back to the first zero cell you find; this will
                                  be Cell #1 which was cleared by the previous loop
              &lt;-                  Decrement the loop Counter in Cell #0
          ]                       Loop till Cell #0 is zero; number of iterations is 8
          
          The result of this is:
          Cell No :   0   1   2   3   4   5   6
          Contents:   0   0  72 104  88  32   8
          Pointer :   ^
          
          &gt;&gt;.                     Cell #2 has value 72 which is 'H'
          &gt;---.                   Subtract 3 from Cell #3 to get 101 which is 'e'
          +++++++..+++.           Likewise for 'llo' from Cell #3
          &gt;&gt;.                     Cell #5 is 32 for the space
          &lt;-.                     Subtract 1 from Cell #4 for 87 to give a 'W'
          &lt;.                      Cell #3 was set to 'o' from the end of 'Hello'
          +++.------.--------.    Cell #3 for 'rl' and 'd'
          &gt;&gt;+.                    Add 1 to Cell #5 gives us an exclamation point
          &gt;++.                    And finally a newline from Cell #6
          </textarea></form>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  matchBrackets: true,
                  mode: "text/x-brainfuck"
                });
              </script>
          
              <p>A mode for Brainfuck</p>
          
              <p><strong>MIME types defined:</strong> <code>text/x-brainfuck</code></p>
            </article>
          
      • clike
        • clike.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("clike", function(config, parserConfig) {
            var indentUnit = config.indentUnit,
                statementIndentUnit = parserConfig.statementIndentUnit || indentUnit,
                dontAlignCalls = parserConfig.dontAlignCalls,
                keywords = parserConfig.keywords || {},
                types = parserConfig.types || {},
                builtin = parserConfig.builtin || {},
                blockKeywords = parserConfig.blockKeywords || {},
                defKeywords = parserConfig.defKeywords || {},
                atoms = parserConfig.atoms || {},
                hooks = parserConfig.hooks || {},
                multiLineStrings = parserConfig.multiLineStrings,
                indentStatements = parserConfig.indentStatements !== false,
                indentSwitch = parserConfig.indentSwitch !== false,
                namespaceSeparator = parserConfig.namespaceSeparator,
                isPunctuationChar = parserConfig.isPunctuationChar || /[\[\]{}\(\),;\:\.]/,
                isNumberChar = parserConfig.isNumberChar || /\d/,
                isOperatorChar = parserConfig.isOperatorChar || /[+\-*&%=<>!?|\/]/,
                endStatement = parserConfig.endStatement || /^[;:,]$/;
          
            var curPunc, isDefKeyword;
          
            function tokenBase(stream, state) {
              var ch = stream.next();
              if (hooks[ch]) {
                var result = hooks[ch](stream, state);
                if (result !== false) return result;
              }
              if (ch == '"' || ch == "'") {
                state.tokenize = tokenString(ch);
                return state.tokenize(stream, state);
              }
              if (isPunctuationChar.test(ch)) {
                curPunc = ch;
                return null;
              }
              if (isNumberChar.test(ch)) {
                stream.eatWhile(/[\w\.]/);
                return "number";
              }
              if (ch == "/") {
                if (stream.eat("*")) {
                  state.tokenize = tokenComment;
                  return tokenComment(stream, state);
                }
                if (stream.eat("/")) {
                  stream.skipToEnd();
                  return "comment";
                }
              }
              if (isOperatorChar.test(ch)) {
                stream.eatWhile(isOperatorChar);
                return "operator";
              }
              stream.eatWhile(/[\w\$_\xa1-\uffff]/);
              if (namespaceSeparator) while (stream.match(namespaceSeparator))
                stream.eatWhile(/[\w\$_\xa1-\uffff]/);
          
              var cur = stream.current();
              if (contains(keywords, cur)) {
                if (contains(blockKeywords, cur)) curPunc = "newstatement";
                if (contains(defKeywords, cur)) isDefKeyword = true;
                return "keyword";
              }
              if (contains(types, cur)) return "variable-3";
              if (contains(builtin, cur)) {
                if (contains(blockKeywords, cur)) curPunc = "newstatement";
                return "builtin";
              }
              if (contains(atoms, cur)) return "atom";
              return "variable";
            }
          
            function tokenString(quote) {
              return function(stream, state) {
                var escaped = false, next, end = false;
                while ((next = stream.next()) != null) {
                  if (next == quote && !escaped) {end = true; break;}
                  escaped = !escaped && next == "\\";
                }
                if (end || !(escaped || multiLineStrings))
                  state.tokenize = null;
                return "string";
              };
            }
          
            function tokenComment(stream, state) {
              var maybeEnd = false, ch;
              while (ch = stream.next()) {
                if (ch == "/" && maybeEnd) {
                  state.tokenize = null;
                  break;
                }
                maybeEnd = (ch == "*");
              }
              return "comment";
            }
          
            function Context(indented, column, type, align, prev) {
              this.indented = indented;
              this.column = column;
              this.type = type;
              this.align = align;
              this.prev = prev;
            }
            function isStatement(type) {
              return type == "statement" || type == "switchstatement" || type == "namespace";
            }
            function pushContext(state, col, type) {
              var indent = state.indented;
              if (state.context && isStatement(state.context.type) && !isStatement(type))
                indent = state.context.indented;
              return state.context = new Context(indent, col, type, null, state.context);
            }
            function popContext(state) {
              var t = state.context.type;
              if (t == ")" || t == "]" || t == "}")
                state.indented = state.context.indented;
              return state.context = state.context.prev;
            }
          
            function typeBefore(stream, state) {
              if (state.prevToken == "variable" || state.prevToken == "variable-3") return true;
              if (/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(stream.string.slice(0, stream.start))) return true;
            }
          
            function isTopScope(context) {
              for (;;) {
                if (!context || context.type == "top") return true;
                if (context.type == "}" && context.prev.type != "namespace") return false;
                context = context.prev;
              }
            }
          
            // Interface
          
            return {
              startState: function(basecolumn) {
                return {
                  tokenize: null,
                  context: new Context((basecolumn || 0) - indentUnit, 0, "top", false),
                  indented: 0,
                  startOfLine: true,
                  prevToken: null
                };
              },
          
              token: function(stream, state) {
                var ctx = state.context;
                if (stream.sol()) {
                  if (ctx.align == null) ctx.align = false;
                  state.indented = stream.indentation();
                  state.startOfLine = true;
                }
                if (stream.eatSpace()) return null;
                curPunc = isDefKeyword = null;
                var style = (state.tokenize || tokenBase)(stream, state);
                if (style == "comment" || style == "meta") return style;
                if (ctx.align == null) ctx.align = true;
          
                if (endStatement.test(curPunc)) while (isStatement(state.context.type)) popContext(state);
                else if (curPunc == "{") pushContext(state, stream.column(), "}");
                else if (curPunc == "[") pushContext(state, stream.column(), "]");
                else if (curPunc == "(") pushContext(state, stream.column(), ")");
                else if (curPunc == "}") {
                  while (isStatement(ctx.type)) ctx = popContext(state);
                  if (ctx.type == "}") ctx = popContext(state);
                  while (isStatement(ctx.type)) ctx = popContext(state);
                }
                else if (curPunc == ctx.type) popContext(state);
                else if (indentStatements &&
                         (((ctx.type == "}" || ctx.type == "top") && curPunc != ";") ||
                          (isStatement(ctx.type) && curPunc == "newstatement"))) {
                  var type = "statement";
                  if (curPunc == "newstatement" && indentSwitch && stream.current() == "switch")
                    type = "switchstatement";
                  else if (style == "keyword" && stream.current() == "namespace")
                    type = "namespace";
                  pushContext(state, stream.column(), type);
                }
          
                if (style == "variable" &&
                    ((state.prevToken == "def" ||
                      (parserConfig.typeFirstDefinitions && typeBefore(stream, state) &&
                       isTopScope(state.context) && stream.match(/^\s*\(/, false)))))
                  style = "def";
          
                if (hooks.token) {
                  var result = hooks.token(stream, state, style);
                  if (result !== undefined) style = result;
                }
          
                if (style == "def" && parserConfig.styleDefs === false) style = "variable";
          
                state.startOfLine = false;
                state.prevToken = isDefKeyword ? "def" : style || curPunc;
                return style;
              },
          
              indent: function(state, textAfter) {
                if (state.tokenize != tokenBase && state.tokenize != null) return CodeMirror.Pass;
                var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);
                if (isStatement(ctx.type) && firstChar == "}") ctx = ctx.prev;
                var closing = firstChar == ctx.type;
                var switchBlock = ctx.prev && ctx.prev.type == "switchstatement";
                if (isStatement(ctx.type))
                  return ctx.indented + (firstChar == "{" ? 0 : statementIndentUnit);
                if (ctx.align && (!dontAlignCalls || ctx.type != ")"))
                  return ctx.column + (closing ? 0 : 1);
                if (ctx.type == ")" && !closing)
                  return ctx.indented + statementIndentUnit;
          
                return ctx.indented + (closing ? 0 : indentUnit) +
                  (!closing && switchBlock && !/^(?:case|default)\b/.test(textAfter) ? indentUnit : 0);
              },
          
              electricInput: indentSwitch ? /^\s*(?:case .*?:|default:|\{\}?|\})$/ : /^\s*[{}]$/,
              blockCommentStart: "/*",
              blockCommentEnd: "*/",
              lineComment: "//",
              fold: "brace"
            };
          });
          
            function words(str) {
              var obj = {}, words = str.split(" ");
              for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
              return obj;
            }
            function contains(words, word) {
              if (typeof words === "function") {
                return words(word);
              } else {
                return words.propertyIsEnumerable(word);
              }
            }
            var cKeywords = "auto if break case register continue return default do sizeof " +
              "static else struct switch extern typedef float union for " +
              "goto while enum const volatile";
            var cTypes = "int long char short double float unsigned signed void size_t ptrdiff_t";
          
            function cppHook(stream, state) {
              if (!state.startOfLine) return false;
              for (;;) {
                if (stream.skipTo("\\")) {
                  stream.next();
                  if (stream.eol()) {
                    state.tokenize = cppHook;
                    break;
                  }
                } else {
                  stream.skipToEnd();
                  state.tokenize = null;
                  break;
                }
              }
              return "meta";
            }
          
            function pointerHook(_stream, state) {
              if (state.prevToken == "variable-3") return "variable-3";
              return false;
            }
          
            function cpp14Literal(stream) {
              stream.eatWhile(/[\w\.']/);
              return "number";
            }
          
            function cpp11StringHook(stream, state) {
              stream.backUp(1);
              // Raw strings.
              if (stream.match(/(R|u8R|uR|UR|LR)/)) {
                var match = stream.match(/"([^\s\\()]{0,16})\(/);
                if (!match) {
                  return false;
                }
                state.cpp11RawStringDelim = match[1];
                state.tokenize = tokenRawString;
                return tokenRawString(stream, state);
              }
              // Unicode strings/chars.
              if (stream.match(/(u8|u|U|L)/)) {
                if (stream.match(/["']/, /* eat */ false)) {
                  return "string";
                }
                return false;
              }
              // Ignore this hook.
              stream.next();
              return false;
            }
          
            function cppLooksLikeConstructor(word) {
              var lastTwo = /(\w+)::(\w+)$/.exec(word);
              return lastTwo && lastTwo[1] == lastTwo[2];
            }
          
            // C#-style strings where "" escapes a quote.
            function tokenAtString(stream, state) {
              var next;
              while ((next = stream.next()) != null) {
                if (next == '"' && !stream.eat('"')) {
                  state.tokenize = null;
                  break;
                }
              }
              return "string";
            }
          
            // C++11 raw string literal is <prefix>"<delim>( anything )<delim>", where
            // <delim> can be a string up to 16 characters long.
            function tokenRawString(stream, state) {
              // Escape characters that have special regex meanings.
              var delim = state.cpp11RawStringDelim.replace(/[^\w\s]/g, '\\$&');
              var match = stream.match(new RegExp(".*?\\)" + delim + '"'));
              if (match)
                state.tokenize = null;
              else
                stream.skipToEnd();
              return "string";
            }
          
            function def(mimes, mode) {
              if (typeof mimes == "string") mimes = [mimes];
              var words = [];
              function add(obj) {
                if (obj) for (var prop in obj) if (obj.hasOwnProperty(prop))
                  words.push(prop);
              }
              add(mode.keywords);
              add(mode.types);
              add(mode.builtin);
              add(mode.atoms);
              if (words.length) {
                mode.helperType = mimes[0];
                CodeMirror.registerHelper("hintWords", mimes[0], words);
              }
          
              for (var i = 0; i < mimes.length; ++i)
                CodeMirror.defineMIME(mimes[i], mode);
            }
          
            def(["text/x-csrc", "text/x-c", "text/x-chdr"], {
              name: "clike",
              keywords: words(cKeywords),
              types: words(cTypes + " bool _Complex _Bool float_t double_t intptr_t intmax_t " +
                           "int8_t int16_t int32_t int64_t uintptr_t uintmax_t uint8_t uint16_t " +
                           "uint32_t uint64_t"),
              blockKeywords: words("case do else for if switch while struct"),
              defKeywords: words("struct"),
              typeFirstDefinitions: true,
              atoms: words("null true false"),
              hooks: {"#": cppHook, "*": pointerHook},
              modeProps: {fold: ["brace", "include"]}
            });
          
            def(["text/x-c++src", "text/x-c++hdr"], {
              name: "clike",
              keywords: words(cKeywords + " asm dynamic_cast namespace reinterpret_cast try explicit new " +
                              "static_cast typeid catch operator template typename class friend private " +
                              "this using const_cast inline public throw virtual delete mutable protected " +
                              "alignas alignof constexpr decltype nullptr noexcept thread_local final " +
                              "static_assert override"),
              types: words(cTypes + " bool wchar_t"),
              blockKeywords: words("catch class do else finally for if struct switch try while"),
              defKeywords: words("class namespace struct enum union"),
              typeFirstDefinitions: true,
              atoms: words("true false null"),
              hooks: {
                "#": cppHook,
                "*": pointerHook,
                "u": cpp11StringHook,
                "U": cpp11StringHook,
                "L": cpp11StringHook,
                "R": cpp11StringHook,
                "0": cpp14Literal,
                "1": cpp14Literal,
                "2": cpp14Literal,
                "3": cpp14Literal,
                "4": cpp14Literal,
                "5": cpp14Literal,
                "6": cpp14Literal,
                "7": cpp14Literal,
                "8": cpp14Literal,
                "9": cpp14Literal,
                token: function(stream, state, style) {
                  if (style == "variable" && stream.peek() == "(" &&
                      (state.prevToken == ";" || state.prevToken == null ||
                       state.prevToken == "}") &&
                      cppLooksLikeConstructor(stream.current()))
                    return "def";
                }
              },
              namespaceSeparator: "::",
              modeProps: {fold: ["brace", "include"]}
            });
          
            def("text/x-java", {
              name: "clike",
              keywords: words("abstract assert break case catch class const continue default " +
                              "do else enum extends final finally float for goto if implements import " +
                              "instanceof interface native new package private protected public " +
                              "return static strictfp super switch synchronized this throw throws transient " +
                              "try volatile while"),
              types: words("byte short int long float double boolean char void Boolean Byte Character Double Float " +
                           "Integer Long Number Object Short String StringBuffer StringBuilder Void"),
              blockKeywords: words("catch class do else finally for if switch try while"),
              defKeywords: words("class interface package enum"),
              typeFirstDefinitions: true,
              atoms: words("true false null"),
              endStatement: /^[;:]$/,
              hooks: {
                "@": function(stream) {
                  stream.eatWhile(/[\w\$_]/);
                  return "meta";
                }
              },
              modeProps: {fold: ["brace", "import"]}
            });
          
            def("text/x-csharp", {
              name: "clike",
              keywords: words("abstract as async await base break case catch checked class const continue" +
                              " default delegate do else enum event explicit extern finally fixed for" +
                              " foreach goto if implicit in interface internal is lock namespace new" +
                              " operator out override params private protected public readonly ref return sealed" +
                              " sizeof stackalloc static struct switch this throw try typeof unchecked" +
                              " unsafe using virtual void volatile while add alias ascending descending dynamic from get" +
                              " global group into join let orderby partial remove select set value var yield"),
              types: words("Action Boolean Byte Char DateTime DateTimeOffset Decimal Double Func" +
                           " Guid Int16 Int32 Int64 Object SByte Single String Task TimeSpan UInt16 UInt32" +
                           " UInt64 bool byte char decimal double short int long object"  +
                           " sbyte float string ushort uint ulong"),
              blockKeywords: words("catch class do else finally for foreach if struct switch try while"),
              defKeywords: words("class interface namespace struct var"),
              typeFirstDefinitions: true,
              atoms: words("true false null"),
              hooks: {
                "@": function(stream, state) {
                  if (stream.eat('"')) {
                    state.tokenize = tokenAtString;
                    return tokenAtString(stream, state);
                  }
                  stream.eatWhile(/[\w\$_]/);
                  return "meta";
                }
              }
            });
          
            function tokenTripleString(stream, state) {
              var escaped = false;
              while (!stream.eol()) {
                if (!escaped && stream.match('"""')) {
                  state.tokenize = null;
                  break;
                }
                escaped = stream.next() == "\\" && !escaped;
              }
              return "string";
            }
          
            def("text/x-scala", {
              name: "clike",
              keywords: words(
          
                /* scala */
                "abstract case catch class def do else extends final finally for forSome if " +
                "implicit import lazy match new null object override package private protected return " +
                "sealed super this throw trait try type val var while with yield _ : = => <- <: " +
                "<% >: # @ " +
          
                /* package scala */
                "assert assume require print println printf readLine readBoolean readByte readShort " +
                "readChar readInt readLong readFloat readDouble " +
          
                ":: #:: "
              ),
              types: words(
                "AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either " +
                "Enumeration Equiv Error Exception Fractional Function IndexedSeq Integral Iterable " +
                "Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering " +
                "Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder " +
                "StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector " +
          
                /* package java.lang */
                "Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable " +
                "Compiler Double Exception Float Integer Long Math Number Object Package Pair Process " +
                "Runtime Runnable SecurityManager Short StackTraceElement StrictMath String " +
                "StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"
              ),
              multiLineStrings: true,
              blockKeywords: words("catch class do else finally for forSome if match switch try while"),
              defKeywords: words("class def object package trait type val var"),
              atoms: words("true false null"),
              indentStatements: false,
              indentSwitch: false,
              hooks: {
                "@": function(stream) {
                  stream.eatWhile(/[\w\$_]/);
                  return "meta";
                },
                '"': function(stream, state) {
                  if (!stream.match('""')) return false;
                  state.tokenize = tokenTripleString;
                  return state.tokenize(stream, state);
                },
                "'": function(stream) {
                  stream.eatWhile(/[\w\$_\xa1-\uffff]/);
                  return "atom";
                }
              },
              modeProps: {closeBrackets: {triples: '"'}}
            });
          
            def("text/x-kotlin", {
              name: "clike",
              keywords: words(
                /*keywords*/
                "package as typealias class interface this super val " +
                "var fun for is in This throw return " +
                "break continue object if else while do try when !in !is as?" +
          
                /*soft keywords*/
                "file import where by get set abstract enum open inner override private public internal " +
                "protected catch finally out final vararg reified dynamic companion constructor init " +
                "sealed field property receiver param sparam lateinit data inline noinline tailrec " +
                "external annotation crossinline"
              ),
              types: words(
                /* package java.lang */
                "Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable " +
                "Compiler Double Exception Float Integer Long Math Number Object Package Pair Process " +
                "Runtime Runnable SecurityManager Short StackTraceElement StrictMath String " +
                "StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"
              ),
              multiLineStrings: true,
              blockKeywords: words("catch class do else finally for if where try while enum"),
              defKeywords: words("class val var object package interface fun"),
              atoms: words("true false null this"),
              modeProps: {closeBrackets: {triples: '"'}}
            });
          
            def(["x-shader/x-vertex", "x-shader/x-fragment"], {
              name: "clike",
              keywords: words("sampler1D sampler2D sampler3D samplerCube " +
                              "sampler1DShadow sampler2DShadow " +
                              "const attribute uniform varying " +
                              "break continue discard return " +
                              "for while do if else struct " +
                              "in out inout"),
              types: words("float int bool void " +
                           "vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 " +
                           "mat2 mat3 mat4"),
              blockKeywords: words("for while do if else struct"),
              builtin: words("radians degrees sin cos tan asin acos atan " +
                              "pow exp log exp2 sqrt inversesqrt " +
                              "abs sign floor ceil fract mod min max clamp mix step smoothstep " +
                              "length distance dot cross normalize ftransform faceforward " +
                              "reflect refract matrixCompMult " +
                              "lessThan lessThanEqual greaterThan greaterThanEqual " +
                              "equal notEqual any all not " +
                              "texture1D texture1DProj texture1DLod texture1DProjLod " +
                              "texture2D texture2DProj texture2DLod texture2DProjLod " +
                              "texture3D texture3DProj texture3DLod texture3DProjLod " +
                              "textureCube textureCubeLod " +
                              "shadow1D shadow2D shadow1DProj shadow2DProj " +
                              "shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod " +
                              "dFdx dFdy fwidth " +
                              "noise1 noise2 noise3 noise4"),
              atoms: words("true false " +
                          "gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex " +
                          "gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 " +
                          "gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 " +
                          "gl_FogCoord gl_PointCoord " +
                          "gl_Position gl_PointSize gl_ClipVertex " +
                          "gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor " +
                          "gl_TexCoord gl_FogFragCoord " +
                          "gl_FragCoord gl_FrontFacing " +
                          "gl_FragData gl_FragDepth " +
                          "gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix " +
                          "gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse " +
                          "gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse " +
                          "gl_TexureMatrixTranspose gl_ModelViewMatrixInverseTranspose " +
                          "gl_ProjectionMatrixInverseTranspose " +
                          "gl_ModelViewProjectionMatrixInverseTranspose " +
                          "gl_TextureMatrixInverseTranspose " +
                          "gl_NormalScale gl_DepthRange gl_ClipPlane " +
                          "gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel " +
                          "gl_FrontLightModelProduct gl_BackLightModelProduct " +
                          "gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ " +
                          "gl_FogParameters " +
                          "gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords " +
                          "gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats " +
                          "gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits " +
                          "gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits " +
                          "gl_MaxDrawBuffers"),
              indentSwitch: false,
              hooks: {"#": cppHook},
              modeProps: {fold: ["brace", "include"]}
            });
          
            def("text/x-nesc", {
              name: "clike",
              keywords: words(cKeywords + "as atomic async call command component components configuration event generic " +
                              "implementation includes interface module new norace nx_struct nx_union post provides " +
                              "signal task uses abstract extends"),
              types: words(cTypes),
              blockKeywords: words("case do else for if switch while struct"),
              atoms: words("null true false"),
              hooks: {"#": cppHook},
              modeProps: {fold: ["brace", "include"]}
            });
          
            def("text/x-objectivec", {
              name: "clike",
              keywords: words(cKeywords + "inline restrict _Bool _Complex _Imaginery BOOL Class bycopy byref id IMP in " +
                              "inout nil oneway out Protocol SEL self super atomic nonatomic retain copy readwrite readonly"),
              types: words(cTypes),
              atoms: words("YES NO NULL NILL ON OFF true false"),
              hooks: {
                "@": function(stream) {
                  stream.eatWhile(/[\w\$]/);
                  return "keyword";
                },
                "#": cppHook
              },
              modeProps: {fold: "brace"}
            });
          
            def("text/x-squirrel", {
              name: "clike",
              keywords: words("base break clone continue const default delete enum extends function in class" +
                              " foreach local resume return this throw typeof yield constructor instanceof static"),
              types: words(cTypes),
              blockKeywords: words("case catch class else for foreach if switch try while"),
              defKeywords: words("function local class"),
              typeFirstDefinitions: true,
              atoms: words("true false null"),
              hooks: {"#": cppHook},
              modeProps: {fold: ["brace", "include"]}
            });
          
            // Ceylon Strings need to deal with interpolation
            var stringTokenizer = null;
            function tokenCeylonString(type) {
              return function(stream, state) {
                var escaped = false, next, end = false;
                while (!stream.eol()) {
                  if (!escaped && stream.match('"') &&
                        (type == "single" || stream.match('""'))) {
                    end = true;
                    break;
                  }
                  if (!escaped && stream.match('``')) {
                    stringTokenizer = tokenCeylonString(type);
                    end = true;
                    break;
                  }
                  next = stream.next();
                  escaped = type == "single" && !escaped && next == "\\";
                }
                if (end)
                    state.tokenize = null;
                return "string";
              }
            }
          
            def("text/x-ceylon", {
              name: "clike",
              keywords: words("abstracts alias assembly assert assign break case catch class continue dynamic else" +
                              " exists extends finally for function given if import in interface is let module new" +
                              " nonempty object of out outer package return satisfies super switch then this throw" +
                              " try value void while"),
              types: function(word) {
                  // In Ceylon all identifiers that start with an uppercase are types
                  var first = word.charAt(0);
                  return (first === first.toUpperCase() && first !== first.toLowerCase());
              },
              blockKeywords: words("case catch class dynamic else finally for function if interface module new object switch try while"),
              defKeywords: words("class dynamic function interface module object package value"),
              builtin: words("abstract actual aliased annotation by default deprecated doc final formal late license" +
                             " native optional sealed see serializable shared suppressWarnings tagged throws variable"),
              isPunctuationChar: /[\[\]{}\(\),;\:\.`]/,
              isOperatorChar: /[+\-*&%=<>!?|^~:\/]/,
              isNumberChar: /[\d#$]/,
              multiLineStrings: true,
              typeFirstDefinitions: true,
              atoms: words("true false null larger smaller equal empty finished"),
              indentSwitch: false,
              styleDefs: false,
              hooks: {
                "@": function(stream) {
                  stream.eatWhile(/[\w\$_]/);
                  return "meta";
                },
                '"': function(stream, state) {
                    state.tokenize = tokenCeylonString(stream.match('""') ? "triple" : "single");
                    return state.tokenize(stream, state);
                  },
                '`': function(stream, state) {
                    if (!stringTokenizer || !stream.match('`')) return false;
                    state.tokenize = stringTokenizer;
                    stringTokenizer = null;
                    return state.tokenize(stream, state);
                  },
                "'": function(stream) {
                  stream.eatWhile(/[\w\$_\xa1-\uffff]/);
                  return "atom";
                },
                token: function(_stream, state, style) {
                    if ((style == "variable" || style == "variable-3") &&
                        state.prevToken == ".") {
                      return "variable-2";
                    }
                  }
              },
              modeProps: {
                  fold: ["brace", "import"],
                  closeBrackets: {triples: '"'}
              }
            });
          
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: C-like mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <link rel="stylesheet" href="../../addon/hint/show-hint.css">
          <script src="../../addon/hint/show-hint.js"></script>
          <script src="clike.js"></script>
          <style>.CodeMirror {border: 2px inset #dee;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">C-like</a>
            </ul>
          </div>
          
          <article>
          <h2>C-like mode</h2>
          
          <div><textarea id="c-code">
          /* C demo code */
          
          #include <zmq.h>
          #include <pthread.h>
          #include <semaphore.h>
          #include <time.h>
          #include <stdio.h>
          #include <fcntl.h>
          #include <malloc.h>
          
          typedef struct {
            void* arg_socket;
            zmq_msg_t* arg_msg;
            char* arg_string;
            unsigned long arg_len;
            int arg_int, arg_command;
          
            int signal_fd;
            int pad;
            void* context;
            sem_t sem;
          } acl_zmq_context;
          
          #define p(X) (context->arg_##X)
          
          void* zmq_thread(void* context_pointer) {
            acl_zmq_context* context = (acl_zmq_context*)context_pointer;
            char ok = 'K', err = 'X';
            int res;
          
            while (1) {
              while ((res = sem_wait(&amp;context->sem)) == EINTR);
              if (res) {write(context->signal_fd, &amp;err, 1); goto cleanup;}
              switch(p(command)) {
              case 0: goto cleanup;
              case 1: p(socket) = zmq_socket(context->context, p(int)); break;
              case 2: p(int) = zmq_close(p(socket)); break;
              case 3: p(int) = zmq_bind(p(socket), p(string)); break;
              case 4: p(int) = zmq_connect(p(socket), p(string)); break;
              case 5: p(int) = zmq_getsockopt(p(socket), p(int), (void*)p(string), &amp;p(len)); break;
              case 6: p(int) = zmq_setsockopt(p(socket), p(int), (void*)p(string), p(len)); break;
              case 7: p(int) = zmq_send(p(socket), p(msg), p(int)); break;
              case 8: p(int) = zmq_recv(p(socket), p(msg), p(int)); break;
              case 9: p(int) = zmq_poll(p(socket), p(int), p(len)); break;
              }
              p(command) = errno;
              write(context->signal_fd, &amp;ok, 1);
            }
           cleanup:
            close(context->signal_fd);
            free(context_pointer);
            return 0;
          }
          
          void* zmq_thread_init(void* zmq_context, int signal_fd) {
            acl_zmq_context* context = malloc(sizeof(acl_zmq_context));
            pthread_t thread;
          
            context->context = zmq_context;
            context->signal_fd = signal_fd;
            sem_init(&amp;context->sem, 1, 0);
            pthread_create(&amp;thread, 0, &amp;zmq_thread, context);
            pthread_detach(thread);
            return context;
          }
          </textarea></div>
          
          <h2>C++ example</h2>
          
          <div><textarea id="cpp-code">
          #include <iostream>
          #include "mystuff/util.h"
          
          namespace {
          enum Enum {
            VAL1, VAL2, VAL3
          };
          
          char32_t unicode_string = U"\U0010FFFF";
          string raw_string = R"delim(anything
          you
          want)delim";
          
          int Helper(const MyType& param) {
            return 0;
          }
          } // namespace
          
          class ForwardDec;
          
          template <class T, class V>
          class Class : public BaseClass {
            const MyType<T, V> member_;
          
           public:
            const MyType<T, V>& Method() const {
              return member_;
            }
          
            void Method2(MyType<T, V>* value);
          }
          
          template <class T, class V>
          void Class::Method2(MyType<T, V>* value) {
            std::out << 1 >> method();
            value->Method3(member_);
            member_ = value;
          }
          </textarea></div>
          
          <h2>Objective-C example</h2>
          
          <div><textarea id="objectivec-code">
          /*
          This is a longer comment
          That spans two lines
          */
          
          #import <Test/Test.h>
          @implementation YourAppDelegate
          
          // This is a one-line comment
          
          - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
            char myString[] = "This is a C character array";
            int test = 5;
            return YES;
          }
          </textarea></div>
          
          <h2>Java example</h2>
          
          <div><textarea id="java-code">
          import com.demo.util.MyType;
          import com.demo.util.MyInterface;
          
          public enum Enum {
            VAL1, VAL2, VAL3
          }
          
          public class Class<T, V> implements MyInterface {
            public static final MyType<T, V> member;
            
            private class InnerClass {
              public int zero() {
                return 0;
              }
            }
          
            @Override
            public MyType method() {
              return member;
            }
          
            public void method2(MyType<T, V> value) {
              method();
              value.method3();
              member = value;
            }
          }
          </textarea></div>
          
          <h2>Scala example</h2>
          
          <div><textarea id="scala-code">
          object FilterTest extends App {
            def filter(xs: List[Int], threshold: Int) = {
              def process(ys: List[Int]): List[Int] =
                if (ys.isEmpty) ys
                else if (ys.head < threshold) ys.head :: process(ys.tail)
                else process(ys.tail)
              process(xs)
            }
            println(filter(List(1, 9, 2, 8, 3, 7, 4), 5))
          }
          </textarea></div>
          
          <h2>Kotlin mode</h2>
          
          <div><textarea id="kotlin-code">
          package org.wasabi.http
          
          import java.util.concurrent.Executors
          import java.net.InetSocketAddress
          import org.wasabi.app.AppConfiguration
          import io.netty.bootstrap.ServerBootstrap
          import io.netty.channel.nio.NioEventLoopGroup
          import io.netty.channel.socket.nio.NioServerSocketChannel
          import org.wasabi.app.AppServer
          
          public class HttpServer(private val appServer: AppServer) {
          
              val bootstrap: ServerBootstrap
              val primaryGroup: NioEventLoopGroup
              val workerGroup:  NioEventLoopGroup
          
              init {
                  // Define worker groups
                  primaryGroup = NioEventLoopGroup()
                  workerGroup = NioEventLoopGroup()
          
                  // Initialize bootstrap of server
                  bootstrap = ServerBootstrap()
          
                  bootstrap.group(primaryGroup, workerGroup)
                  bootstrap.channel(javaClass<NioServerSocketChannel>())
                  bootstrap.childHandler(NettyPipelineInitializer(appServer))
              }
          
              public fun start(wait: Boolean = true) {
                  val channel = bootstrap.bind(appServer.configuration.port)?.sync()?.channel()
          
                  if (wait) {
                      channel?.closeFuture()?.sync()
                  }
              }
          
              public fun stop() {
                  // Shutdown all event loops
                  primaryGroup.shutdownGracefully()
                  workerGroup.shutdownGracefully()
          
                  // Wait till all threads are terminated
                  primaryGroup.terminationFuture().sync()
                  workerGroup.terminationFuture().sync()
              }
          }
          </textarea></div>
          
          <h2>Ceylon mode</h2>
          
          <div><textarea id="ceylon-code">
          "Produces the [[stream|Iterable]] that results from repeated
           application of the given [[function|next]] to the given
           [[first]] element of the stream, until the function first
           returns [[finished]]. If the given function never returns 
           `finished`, the resulting stream is infinite.
          
           For example:
          
               loop(0)(2.plus).takeWhile(10.largerThan)
          
           produces the stream `{ 0, 2, 4, 6, 8 }`."
          tagged("Streams")
          shared {Element+} loop&lt;Element&gt;(
                  "The first element of the resulting stream."
                  Element first)(
                  "The function that produces the next element of the
                   stream, given the current element. The function may
                   return [[finished]] to indicate the end of the 
                   stream."
                  Element|Finished next(Element element))
              =&gt; let (start = first)
              object satisfies {Element+} {
                  first =&gt; start;
                  empty =&gt; false;
                  function nextElement(Element element)
                          =&gt; next(element);
                  iterator()
                          =&gt; object satisfies Iterator&lt;Element&gt; {
                      variable Element|Finished current = start;
                      shared actual Element|Finished next() {
                          if (!is Finished result = current) {
                              current = nextElement(result);
                              return result;
                          }
                          else {
                              return finished;
                          }
                      }
                  };
              };
          </textarea></div>
          
              <script>
                var cEditor = CodeMirror.fromTextArea(document.getElementById("c-code"), {
                  lineNumbers: true,
                  matchBrackets: true,
                  mode: "text/x-csrc"
                });
                var cppEditor = CodeMirror.fromTextArea(document.getElementById("cpp-code"), {
                  lineNumbers: true,
                  matchBrackets: true,
                  mode: "text/x-c++src"
                });
                var javaEditor = CodeMirror.fromTextArea(document.getElementById("java-code"), {
                  lineNumbers: true,
                  matchBrackets: true,
                  mode: "text/x-java"
                });
                var objectivecEditor = CodeMirror.fromTextArea(document.getElementById("objectivec-code"), {
                  lineNumbers: true,
                  matchBrackets: true,
                  mode: "text/x-objectivec"
                });
                var scalaEditor = CodeMirror.fromTextArea(document.getElementById("scala-code"), {
                  lineNumbers: true,
                  matchBrackets: true,
                  mode: "text/x-scala"
                });
                var kotlinEditor = CodeMirror.fromTextArea(document.getElementById("kotlin-code"), {
                    lineNumbers: true,
                    matchBrackets: true,
                    mode: "text/x-kotlin"
                });
                var ceylonEditor = CodeMirror.fromTextArea(document.getElementById("ceylon-code"), {
                    lineNumbers: true,
                    matchBrackets: true,
                    mode: "text/x-ceylon"
                });
                var mac = CodeMirror.keyMap.default == CodeMirror.keyMap.macDefault;
                CodeMirror.keyMap.default[(mac ? "Cmd" : "Ctrl") + "-Space"] = "autocomplete";
              </script>
          
              <p>Simple mode that tries to handle C-like languages as well as it
              can. Takes two configuration parameters: <code>keywords</code>, an
              object whose property names are the keywords in the language,
              and <code>useCPP</code>, which determines whether C preprocessor
              directives are recognized.</p>
          
              <p><strong>MIME types defined:</strong> <code>text/x-csrc</code>
              (C), <code>text/x-c++src</code> (C++), <code>text/x-java</code>
              (Java), <code>text/x-csharp</code> (C#),
              <code>text/x-objectivec</code> (Objective-C),
              <code>text/x-scala</code> (Scala), <code>text/x-vertex</code>
              <code>x-shader/x-fragment</code> (shader programs),
              <code>text/x-squirrel</code> (Squirrel) and
              <code>text/x-ceylon</code> (Ceylon)</p>
          </article>
          
        • scala.html
          <!doctype html>
          
          <title>CodeMirror: Scala mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <link rel="stylesheet" href="../../theme/ambiance.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="clike.js"></script>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Scala</a>
            </ul>
          </div>
          
          <article>
          <h2>Scala mode</h2>
          <form>
          <textarea id="code" name="code">
          
            /*                     __                                               *\
            **     ________ ___   / /  ___     Scala API                            **
            **    / __/ __// _ | / /  / _ |    (c) 2003-2011, LAMP/EPFL             **
            **  __\ \/ /__/ __ |/ /__/ __ |    http://scala-lang.org/               **
            ** /____/\___/_/ |_/____/_/ | |                                         **
            **                          |/                                          **
            \*                                                                      */
          
            package scala.collection
          
            import generic._
            import mutable.{ Builder, ListBuffer }
            import annotation.{tailrec, migration, bridge}
            import annotation.unchecked.{ uncheckedVariance => uV }
            import parallel.ParIterable
          
            /** A template trait for traversable collections of type `Traversable[A]`.
             *  
             *  $traversableInfo
             *  @define mutability
             *  @define traversableInfo
             *  This is a base trait of all kinds of $mutability Scala collections. It
             *  implements the behavior common to all collections, in terms of a method
             *  `foreach` with signature:
             * {{{
             *     def foreach[U](f: Elem => U): Unit
             * }}}
             *  Collection classes mixing in this trait provide a concrete 
             *  `foreach` method which traverses all the
             *  elements contained in the collection, applying a given function to each.
             *  They also need to provide a method `newBuilder`
             *  which creates a builder for collections of the same kind.
             *  
             *  A traversable class might or might not have two properties: strictness
             *  and orderedness. Neither is represented as a type.
             *  
             *  The instances of a strict collection class have all their elements
             *  computed before they can be used as values. By contrast, instances of
             *  a non-strict collection class may defer computation of some of their
             *  elements until after the instance is available as a value.
             *  A typical example of a non-strict collection class is a
             *  <a href="../immutable/Stream.html" target="ContentFrame">
             *  `scala.collection.immutable.Stream`</a>.
             *  A more general class of examples are `TraversableViews`.
             *  
             *  If a collection is an instance of an ordered collection class, traversing
             *  its elements with `foreach` will always visit elements in the
             *  same order, even for different runs of the program. If the class is not
             *  ordered, `foreach` can visit elements in different orders for
             *  different runs (but it will keep the same order in the same run).'
             * 
             *  A typical example of a collection class which is not ordered is a
             *  `HashMap` of objects. The traversal order for hash maps will
             *  depend on the hash codes of its elements, and these hash codes might
             *  differ from one run to the next. By contrast, a `LinkedHashMap`
             *  is ordered because it's `foreach` method visits elements in the
             *  order they were inserted into the `HashMap`.
             *
             *  @author Martin Odersky
             *  @version 2.8
             *  @since   2.8
             *  @tparam A    the element type of the collection
             *  @tparam Repr the type of the actual collection containing the elements.
             *
             *  @define Coll Traversable
             *  @define coll traversable collection
             */
            trait TraversableLike[+A, +Repr] extends HasNewBuilder[A, Repr] 
                                                with FilterMonadic[A, Repr]
                                                with TraversableOnce[A]
                                                with GenTraversableLike[A, Repr]
                                                with Parallelizable[A, ParIterable[A]]
            {
              self =>
          
              import Traversable.breaks._
          
              /** The type implementing this traversable */
              protected type Self = Repr
          
              /** The collection of type $coll underlying this `TraversableLike` object.
               *  By default this is implemented as the `TraversableLike` object itself,
               *  but this can be overridden.
               */
              def repr: Repr = this.asInstanceOf[Repr]
          
              /** The underlying collection seen as an instance of `$Coll`.
               *  By default this is implemented as the current collection object itself,
               *  but this can be overridden.
               */
              protected[this] def thisCollection: Traversable[A] = this.asInstanceOf[Traversable[A]]
          
              /** A conversion from collections of type `Repr` to `$Coll` objects.
               *  By default this is implemented as just a cast, but this can be overridden.
               */
              protected[this] def toCollection(repr: Repr): Traversable[A] = repr.asInstanceOf[Traversable[A]]
          
              /** Creates a new builder for this collection type.
               */
              protected[this] def newBuilder: Builder[A, Repr]
          
              protected[this] def parCombiner = ParIterable.newCombiner[A]
          
              /** Applies a function `f` to all elements of this $coll.
               *  
               *    Note: this method underlies the implementation of most other bulk operations.
               *    It's important to implement this method in an efficient way.
               *  
               *
               *  @param  f   the function that is applied for its side-effect to every element.
               *              The result of function `f` is discarded.
               *              
               *  @tparam  U  the type parameter describing the result of function `f`. 
               *              This result will always be ignored. Typically `U` is `Unit`,
               *              but this is not necessary.
               *
               *  @usecase def foreach(f: A => Unit): Unit
               */
              def foreach[U](f: A => U): Unit
          
              /** Tests whether this $coll is empty.
               *
               *  @return    `true` if the $coll contain no elements, `false` otherwise.
               */
              def isEmpty: Boolean = {
                var result = true
                breakable {
                  for (x <- this) {
                    result = false
                    break
                  }
                }
                result
              }
          
              /** Tests whether this $coll is known to have a finite size.
               *  All strict collections are known to have finite size. For a non-strict collection
               *  such as `Stream`, the predicate returns `true` if all elements have been computed.
               *  It returns `false` if the stream is not yet evaluated to the end.
               *
               *  Note: many collection methods will not work on collections of infinite sizes. 
               *
               *  @return  `true` if this collection is known to have finite size, `false` otherwise.
               */
              def hasDefiniteSize = true
          
              def ++[B >: A, That](that: GenTraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That = {
                val b = bf(repr)
                if (that.isInstanceOf[IndexedSeqLike[_, _]]) b.sizeHint(this, that.seq.size)
                b ++= thisCollection
                b ++= that.seq
                b.result
              }
          
              @bridge
              def ++[B >: A, That](that: TraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That =
                ++(that: GenTraversableOnce[B])(bf)
          
              /** Concatenates this $coll with the elements of a traversable collection.
               *  It differs from ++ in that the right operand determines the type of the
               *  resulting collection rather than the left one.
               * 
               *  @param that   the traversable to append.
               *  @tparam B     the element type of the returned collection. 
               *  @tparam That  $thatinfo
               *  @param bf     $bfinfo
               *  @return       a new collection of type `That` which contains all elements
               *                of this $coll followed by all elements of `that`.
               * 
               *  @usecase def ++:[B](that: TraversableOnce[B]): $Coll[B]
               *  
               *  @return       a new $coll which contains all elements of this $coll
               *                followed by all elements of `that`.
               */
              def ++:[B >: A, That](that: TraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That = {
                val b = bf(repr)
                if (that.isInstanceOf[IndexedSeqLike[_, _]]) b.sizeHint(this, that.size)
                b ++= that
                b ++= thisCollection
                b.result
              }
          
              /** This overload exists because: for the implementation of ++: we should reuse
               *  that of ++ because many collections override it with more efficient versions.
               *  Since TraversableOnce has no '++' method, we have to implement that directly,
               *  but Traversable and down can use the overload.
               */
              def ++:[B >: A, That](that: Traversable[B])(implicit bf: CanBuildFrom[Repr, B, That]): That =
                (that ++ seq)(breakOut)
          
              def map[B, That](f: A => B)(implicit bf: CanBuildFrom[Repr, B, That]): That = {
                val b = bf(repr)
                b.sizeHint(this) 
                for (x <- this) b += f(x)
                b.result
              }
          
              def flatMap[B, That](f: A => GenTraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That = {
                val b = bf(repr)
                for (x <- this) b ++= f(x).seq
                b.result
              }
          
              /** Selects all elements of this $coll which satisfy a predicate.
               *
               *  @param p     the predicate used to test elements.
               *  @return      a new $coll consisting of all elements of this $coll that satisfy the given
               *               predicate `p`. The order of the elements is preserved.
               */
              def filter(p: A => Boolean): Repr = {
                val b = newBuilder
                for (x <- this) 
                  if (p(x)) b += x
                b.result
              }
          
              /** Selects all elements of this $coll which do not satisfy a predicate.
               *
               *  @param p     the predicate used to test elements.
               *  @return      a new $coll consisting of all elements of this $coll that do not satisfy the given
               *               predicate `p`. The order of the elements is preserved.
               */
              def filterNot(p: A => Boolean): Repr = filter(!p(_))
          
              def collect[B, That](pf: PartialFunction[A, B])(implicit bf: CanBuildFrom[Repr, B, That]): That = {
                val b = bf(repr)
                for (x <- this) if (pf.isDefinedAt(x)) b += pf(x)
                b.result
              }
          
              /** Builds a new collection by applying an option-valued function to all
               *  elements of this $coll on which the function is defined.
               *
               *  @param f      the option-valued function which filters and maps the $coll.
               *  @tparam B     the element type of the returned collection.
               *  @tparam That  $thatinfo
               *  @param bf     $bfinfo
               *  @return       a new collection of type `That` resulting from applying the option-valued function
               *                `f` to each element and collecting all defined results.
               *                The order of the elements is preserved.
               *
               *  @usecase def filterMap[B](f: A => Option[B]): $Coll[B]
               *  
               *  @param pf     the partial function which filters and maps the $coll.
               *  @return       a new $coll resulting from applying the given option-valued function
               *                `f` to each element and collecting all defined results.
               *                The order of the elements is preserved.
              def filterMap[B, That](f: A => Option[B])(implicit bf: CanBuildFrom[Repr, B, That]): That = {
                val b = bf(repr)
                for (x <- this) 
                  f(x) match {
                    case Some(y) => b += y
                    case _ =>
                  }
                b.result
              }
               */
          
              /** Partitions this $coll in two ${coll}s according to a predicate.
               *
               *  @param p the predicate on which to partition.
               *  @return  a pair of ${coll}s: the first $coll consists of all elements that 
               *           satisfy the predicate `p` and the second $coll consists of all elements
               *           that don't. The relative order of the elements in the resulting ${coll}s
               *           is the same as in the original $coll.
               */
              def partition(p: A => Boolean): (Repr, Repr) = {
                val l, r = newBuilder
                for (x <- this) (if (p(x)) l else r) += x
                (l.result, r.result)
              }
          
              def groupBy[K](f: A => K): immutable.Map[K, Repr] = {
                val m = mutable.Map.empty[K, Builder[A, Repr]]
                for (elem <- this) {
                  val key = f(elem)
                  val bldr = m.getOrElseUpdate(key, newBuilder)
                  bldr += elem
                }
                val b = immutable.Map.newBuilder[K, Repr]
                for ((k, v) <- m)
                  b += ((k, v.result))
          
                b.result
              }
          
              /** Tests whether a predicate holds for all elements of this $coll.
               *
               *  $mayNotTerminateInf
               *
               *  @param   p     the predicate used to test elements.
               *  @return        `true` if the given predicate `p` holds for all elements
               *                 of this $coll, otherwise `false`.
               */
              def forall(p: A => Boolean): Boolean = {
                var result = true
                breakable {
                  for (x <- this)
                    if (!p(x)) { result = false; break }
                }
                result
              }
          
              /** Tests whether a predicate holds for some of the elements of this $coll.
               *
               *  $mayNotTerminateInf
               *
               *  @param   p     the predicate used to test elements.
               *  @return        `true` if the given predicate `p` holds for some of the
               *                 elements of this $coll, otherwise `false`.
               */
              def exists(p: A => Boolean): Boolean = {
                var result = false
                breakable {
                  for (x <- this)
                    if (p(x)) { result = true; break }
                }
                result
              }
          
              /** Finds the first element of the $coll satisfying a predicate, if any.
               * 
               *  $mayNotTerminateInf
               *  $orderDependent
               *
               *  @param p    the predicate used to test elements.
               *  @return     an option value containing the first element in the $coll
               *              that satisfies `p`, or `None` if none exists.
               */
              def find(p: A => Boolean): Option[A] = {
                var result: Option[A] = None
                breakable {
                  for (x <- this)
                    if (p(x)) { result = Some(x); break }
                }
                result
              }
          
              def scan[B >: A, That](z: B)(op: (B, B) => B)(implicit cbf: CanBuildFrom[Repr, B, That]): That = scanLeft(z)(op)
          
              def scanLeft[B, That](z: B)(op: (B, A) => B)(implicit bf: CanBuildFrom[Repr, B, That]): That = {
                val b = bf(repr)
                b.sizeHint(this, 1)
                var acc = z
                b += acc
                for (x <- this) { acc = op(acc, x); b += acc }
                b.result
              }
          
              @migration(2, 9,
                "This scanRight definition has changed in 2.9.\n" +
                "The previous behavior can be reproduced with scanRight.reverse."
              )
              def scanRight[B, That](z: B)(op: (A, B) => B)(implicit bf: CanBuildFrom[Repr, B, That]): That = {
                var scanned = List(z)
                var acc = z
                for (x <- reversed) {
                  acc = op(x, acc)
                  scanned ::= acc
                }
                val b = bf(repr)
                for (elem <- scanned) b += elem
                b.result
              }
          
              /** Selects the first element of this $coll.
               *  $orderDependent
               *  @return  the first element of this $coll.
               *  @throws `NoSuchElementException` if the $coll is empty.
               */
              def head: A = {
                var result: () => A = () => throw new NoSuchElementException
                breakable {
                  for (x <- this) {
                    result = () => x
                    break
                  }
                }
                result()
              }
          
              /** Optionally selects the first element.
               *  $orderDependent
               *  @return  the first element of this $coll if it is nonempty, `None` if it is empty.
               */
              def headOption: Option[A] = if (isEmpty) None else Some(head)
          
              /** Selects all elements except the first.
               *  $orderDependent
               *  @return  a $coll consisting of all elements of this $coll
               *           except the first one.
               *  @throws `UnsupportedOperationException` if the $coll is empty.
               */ 
              override def tail: Repr = {
                if (isEmpty) throw new UnsupportedOperationException("empty.tail")
                drop(1)
              }
          
              /** Selects the last element.
                * $orderDependent
                * @return The last element of this $coll.
                * @throws NoSuchElementException If the $coll is empty.
                */
              def last: A = {
                var lst = head
                for (x <- this)
                  lst = x
                lst
              }
          
              /** Optionally selects the last element.
               *  $orderDependent
               *  @return  the last element of this $coll$ if it is nonempty, `None` if it is empty.
               */
              def lastOption: Option[A] = if (isEmpty) None else Some(last)
          
              /** Selects all elements except the last.
               *  $orderDependent
               *  @return  a $coll consisting of all elements of this $coll
               *           except the last one.
               *  @throws `UnsupportedOperationException` if the $coll is empty.
               */
              def init: Repr = {
                if (isEmpty) throw new UnsupportedOperationException("empty.init")
                var lst = head
                var follow = false
                val b = newBuilder
                b.sizeHint(this, -1)
                for (x <- this.seq) {
                  if (follow) b += lst
                  else follow = true
                  lst = x
                }
                b.result
              }
          
              def take(n: Int): Repr = slice(0, n)
          
              def drop(n: Int): Repr = 
                if (n <= 0) {
                  val b = newBuilder
                  b.sizeHint(this)
                  b ++= thisCollection result
                }
                else sliceWithKnownDelta(n, Int.MaxValue, -n)
          
              def slice(from: Int, until: Int): Repr = sliceWithKnownBound(math.max(from, 0), until)
          
              // Precondition: from >= 0, until > 0, builder already configured for building.
              private[this] def sliceInternal(from: Int, until: Int, b: Builder[A, Repr]): Repr = {
                var i = 0
                breakable {
                  for (x <- this.seq) {
                    if (i >= from) b += x
                    i += 1
                    if (i >= until) break
                  }
                }
                b.result
              }
              // Precondition: from >= 0
              private[scala] def sliceWithKnownDelta(from: Int, until: Int, delta: Int): Repr = {
                val b = newBuilder
                if (until <= from) b.result
                else {
                  b.sizeHint(this, delta)
                  sliceInternal(from, until, b)
                }
              }
              // Precondition: from >= 0
              private[scala] def sliceWithKnownBound(from: Int, until: Int): Repr = {
                val b = newBuilder
                if (until <= from) b.result
                else {
                  b.sizeHintBounded(until - from, this)      
                  sliceInternal(from, until, b)
                }
              }
          
              def takeWhile(p: A => Boolean): Repr = {
                val b = newBuilder
                breakable {
                  for (x <- this) {
                    if (!p(x)) break
                    b += x
                  }
                }
                b.result
              }
          
              def dropWhile(p: A => Boolean): Repr = {
                val b = newBuilder
                var go = false
                for (x <- this) {
                  if (!p(x)) go = true
                  if (go) b += x
                }
                b.result
              }
          
              def span(p: A => Boolean): (Repr, Repr) = {
                val l, r = newBuilder
                var toLeft = true
                for (x <- this) {
                  toLeft = toLeft && p(x)
                  (if (toLeft) l else r) += x
                }
                (l.result, r.result)
              }
          
              def splitAt(n: Int): (Repr, Repr) = {
                val l, r = newBuilder
                l.sizeHintBounded(n, this)
                if (n >= 0) r.sizeHint(this, -n)
                var i = 0
                for (x <- this) {
                  (if (i < n) l else r) += x
                  i += 1
                }
                (l.result, r.result)
              }
          
              /** Iterates over the tails of this $coll. The first value will be this
               *  $coll and the final one will be an empty $coll, with the intervening
               *  values the results of successive applications of `tail`.
               *
               *  @return   an iterator over all the tails of this $coll
               *  @example  `List(1,2,3).tails = Iterator(List(1,2,3), List(2,3), List(3), Nil)`
               */  
              def tails: Iterator[Repr] = iterateUntilEmpty(_.tail)
          
              /** Iterates over the inits of this $coll. The first value will be this
               *  $coll and the final one will be an empty $coll, with the intervening
               *  values the results of successive applications of `init`.
               *
               *  @return  an iterator over all the inits of this $coll
               *  @example  `List(1,2,3).inits = Iterator(List(1,2,3), List(1,2), List(1), Nil)`
               */
              def inits: Iterator[Repr] = iterateUntilEmpty(_.init)
          
              /** Copies elements of this $coll to an array.
               *  Fills the given array `xs` with at most `len` elements of
               *  this $coll, starting at position `start`.
               *  Copying will stop once either the end of the current $coll is reached,
               *  or the end of the array is reached, or `len` elements have been copied.
               *
               *  $willNotTerminateInf
               * 
               *  @param  xs     the array to fill.
               *  @param  start  the starting index.
               *  @param  len    the maximal number of elements to copy.
               *  @tparam B      the type of the elements of the array. 
               * 
               *
               *  @usecase def copyToArray(xs: Array[A], start: Int, len: Int): Unit
               */
              def copyToArray[B >: A](xs: Array[B], start: Int, len: Int) {
                var i = start
                val end = (start + len) min xs.length
                breakable {
                  for (x <- this) {
                    if (i >= end) break
                    xs(i) = x
                    i += 1
                  }
                }
              }
          
              def toTraversable: Traversable[A] = thisCollection
              def toIterator: Iterator[A] = toStream.iterator
              def toStream: Stream[A] = toBuffer.toStream
          
              /** Converts this $coll to a string.
               *
               *  @return   a string representation of this collection. By default this
               *            string consists of the `stringPrefix` of this $coll,
               *            followed by all elements separated by commas and enclosed in parentheses.
               */
              override def toString = mkString(stringPrefix + "(", ", ", ")")
          
              /** Defines the prefix of this object's `toString` representation.
               *
               *  @return  a string representation which starts the result of `toString`
               *           applied to this $coll. By default the string prefix is the
               *           simple name of the collection class $coll.
               */
              def stringPrefix : String = {
                var string = repr.asInstanceOf[AnyRef].getClass.getName
                val idx1 = string.lastIndexOf('.' : Int)
                if (idx1 != -1) string = string.substring(idx1 + 1)
                val idx2 = string.indexOf('$')
                if (idx2 != -1) string = string.substring(0, idx2)
                string
              }
          
              /** Creates a non-strict view of this $coll.
               * 
               *  @return a non-strict view of this $coll.
               */
              def view = new TraversableView[A, Repr] {
                protected lazy val underlying = self.repr
                override def foreach[U](f: A => U) = self foreach f
              }
          
              /** Creates a non-strict view of a slice of this $coll.
               *
               *  Note: the difference between `view` and `slice` is that `view` produces
               *        a view of the current $coll, whereas `slice` produces a new $coll.
               * 
               *  Note: `view(from, to)` is equivalent to `view.slice(from, to)`
               *  $orderDependent
               * 
               *  @param from   the index of the first element of the view
               *  @param until  the index of the element following the view
               *  @return a non-strict view of a slice of this $coll, starting at index `from`
               *  and extending up to (but not including) index `until`.
               */
              def view(from: Int, until: Int): TraversableView[A, Repr] = view.slice(from, until)
          
              /** Creates a non-strict filter of this $coll.
               *
               *  Note: the difference between `c filter p` and `c withFilter p` is that
               *        the former creates a new collection, whereas the latter only
               *        restricts the domain of subsequent `map`, `flatMap`, `foreach`,
               *        and `withFilter` operations.
               *  $orderDependent
               * 
               *  @param p   the predicate used to test elements.
               *  @return    an object of class `WithFilter`, which supports
               *             `map`, `flatMap`, `foreach`, and `withFilter` operations.
               *             All these operations apply to those elements of this $coll which
               *             satisfy the predicate `p`.
               */
              def withFilter(p: A => Boolean): FilterMonadic[A, Repr] = new WithFilter(p)
          
              /** A class supporting filtered operations. Instances of this class are
               *  returned by method `withFilter`.
               */
              class WithFilter(p: A => Boolean) extends FilterMonadic[A, Repr] {
          
                /** Builds a new collection by applying a function to all elements of the
                 *  outer $coll containing this `WithFilter` instance that satisfy predicate `p`.
                 *
                 *  @param f      the function to apply to each element.
                 *  @tparam B     the element type of the returned collection.
                 *  @tparam That  $thatinfo
                 *  @param bf     $bfinfo
                 *  @return       a new collection of type `That` resulting from applying
                 *                the given function `f` to each element of the outer $coll
                 *                that satisfies predicate `p` and collecting the results.
                 *
                 *  @usecase def map[B](f: A => B): $Coll[B] 
                 *  
                 *  @return       a new $coll resulting from applying the given function
                 *                `f` to each element of the outer $coll that satisfies
                 *                predicate `p` and collecting the results.
                 */
                def map[B, That](f: A => B)(implicit bf: CanBuildFrom[Repr, B, That]): That = {
                  val b = bf(repr)
                  for (x <- self) 
                    if (p(x)) b += f(x)
                  b.result
                }
          
                /** Builds a new collection by applying a function to all elements of the
                 *  outer $coll containing this `WithFilter` instance that satisfy
                 *  predicate `p` and concatenating the results. 
                 *
                 *  @param f      the function to apply to each element.
                 *  @tparam B     the element type of the returned collection.
                 *  @tparam That  $thatinfo
                 *  @param bf     $bfinfo
                 *  @return       a new collection of type `That` resulting from applying
                 *                the given collection-valued function `f` to each element
                 *                of the outer $coll that satisfies predicate `p` and
                 *                concatenating the results.
                 *
                 *  @usecase def flatMap[B](f: A => TraversableOnce[B]): $Coll[B]
                 * 
                 *  @return       a new $coll resulting from applying the given collection-valued function
                 *                `f` to each element of the outer $coll that satisfies predicate `p` and concatenating the results.
                 */
                def flatMap[B, That](f: A => GenTraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That = {
                  val b = bf(repr)
                  for (x <- self) 
                    if (p(x)) b ++= f(x).seq
                  b.result
                }
          
                /** Applies a function `f` to all elements of the outer $coll containing
                 *  this `WithFilter` instance that satisfy predicate `p`.
                 *
                 *  @param  f   the function that is applied for its side-effect to every element.
                 *              The result of function `f` is discarded.
                 *              
                 *  @tparam  U  the type parameter describing the result of function `f`. 
                 *              This result will always be ignored. Typically `U` is `Unit`,
                 *              but this is not necessary.
                 *
                 *  @usecase def foreach(f: A => Unit): Unit
                 */   
                def foreach[U](f: A => U): Unit = 
                  for (x <- self) 
                    if (p(x)) f(x)
          
                /** Further refines the filter for this $coll.
                 *
                 *  @param q   the predicate used to test elements.
                 *  @return    an object of class `WithFilter`, which supports
                 *             `map`, `flatMap`, `foreach`, and `withFilter` operations.
                 *             All these operations apply to those elements of this $coll which
                 *             satisfy the predicate `q` in addition to the predicate `p`.
                 */
                def withFilter(q: A => Boolean): WithFilter = 
                  new WithFilter(x => p(x) && q(x))
              }
          
              // A helper for tails and inits.
              private def iterateUntilEmpty(f: Traversable[A @uV] => Traversable[A @uV]): Iterator[Repr] = {
                val it = Iterator.iterate(thisCollection)(f) takeWhile (x => !x.isEmpty)
                it ++ Iterator(Nil) map (newBuilder ++= _ result)
              }
            }
          
          
          </textarea>
          </form>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  matchBrackets: true,
                  theme: "ambiance",
                  mode: "text/x-scala"
                });
              </script>
            </article>
          
        • test.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function() {
            var mode = CodeMirror.getMode({indentUnit: 2}, "text/x-c");
            function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
          
            MT("indent",
               "[variable-3 void] [def foo]([variable-3 void*] [variable a], [variable-3 int] [variable b]) {",
               "  [variable-3 int] [variable c] [operator =] [variable b] [operator +]",
               "    [number 1];",
               "  [keyword return] [operator *][variable a];",
               "}");
          
            MT("indent_switch",
               "[keyword switch] ([variable x]) {",
               "  [keyword case] [number 10]:",
               "    [keyword return] [number 20];",
               "  [keyword default]:",
               "    [variable printf]([string \"foo %c\"], [variable x]);",
               "}");
          
            MT("def",
               "[variable-3 void] [def foo]() {}",
               "[keyword struct] [def bar]{}",
               "[variable-3 int] [variable-3 *][def baz]() {}");
          
            MT("double_block",
               "[keyword for] (;;)",
               "  [keyword for] (;;)",
               "    [variable x][operator ++];",
               "[keyword return];");
          
            var mode_cpp = CodeMirror.getMode({indentUnit: 2}, "text/x-c++src");
            function MTCPP(name) { test.mode(name, mode_cpp, Array.prototype.slice.call(arguments, 1)); }
          
            MTCPP("cpp14_literal",
              "[number 10'000];",
              "[number 0b10'000];",
              "[number 0x10'000];",
              "[string '100000'];");
          })();
          
      • clojure
        • clojure.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          /**
           * Author: Hans Engel
           * Branched from CodeMirror's Scheme mode (by Koh Zi Han, based on implementation by Koh Zi Chun)
           */
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("clojure", function (options) {
              var BUILTIN = "builtin", COMMENT = "comment", STRING = "string", CHARACTER = "string-2",
                  ATOM = "atom", NUMBER = "number", BRACKET = "bracket", KEYWORD = "keyword", VAR = "variable";
              var INDENT_WORD_SKIP = options.indentUnit || 2;
              var NORMAL_INDENT_UNIT = options.indentUnit || 2;
          
              function makeKeywords(str) {
                  var obj = {}, words = str.split(" ");
                  for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
                  return obj;
              }
          
              var atoms = makeKeywords("true false nil");
          
              var keywords = makeKeywords(
                "defn defn- def def- defonce defmulti defmethod defmacro defstruct deftype defprotocol defrecord defproject deftest slice defalias defhinted defmacro- defn-memo defnk defnk defonce- defunbound defunbound- defvar defvar- let letfn do case cond condp for loop recur when when-not when-let when-first if if-let if-not . .. -> ->> doto and or dosync doseq dotimes dorun doall load import unimport ns in-ns refer try catch finally throw with-open with-local-vars binding gen-class gen-and-load-class gen-and-save-class handler-case handle");
          
              var builtins = makeKeywords(
                  "* *' *1 *2 *3 *agent* *allow-unresolved-vars* *assert* *clojure-version* *command-line-args* *compile-files* *compile-path* *compiler-options* *data-readers* *e *err* *file* *flush-on-newline* *fn-loader* *in* *math-context* *ns* *out* *print-dup* *print-length* *print-level* *print-meta* *print-readably* *read-eval* *source-path* *unchecked-math* *use-context-classloader* *verbose-defrecords* *warn-on-reflection* + +' - -' -> ->> ->ArrayChunk ->Vec ->VecNode ->VecSeq -cache-protocol-fn -reset-methods .. / < <= = == > >= EMPTY-NODE accessor aclone add-classpath add-watch agent agent-error agent-errors aget alength alias all-ns alter alter-meta! alter-var-root amap ancestors and apply areduce array-map aset aset-boolean aset-byte aset-char aset-double aset-float aset-int aset-long aset-short assert assoc assoc! assoc-in associative? atom await await-for await1 bases bean bigdec bigint biginteger binding bit-and bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left bit-shift-right bit-test bit-xor boolean boolean-array booleans bound-fn bound-fn* bound? butlast byte byte-array bytes case cast char char-array char-escape-string char-name-string char? chars chunk chunk-append chunk-buffer chunk-cons chunk-first chunk-next chunk-rest chunked-seq? class class? clear-agent-errors clojure-version coll? comment commute comp comparator compare compare-and-set! compile complement concat cond condp conj conj! cons constantly construct-proxy contains? count counted? create-ns create-struct cycle dec dec' decimal? declare default-data-readers definline definterface defmacro defmethod defmulti defn defn- defonce defprotocol defrecord defstruct deftype delay delay? deliver denominator deref derive descendants destructure disj disj! dissoc dissoc! distinct distinct? doall dorun doseq dosync dotimes doto double double-array doubles drop drop-last drop-while empty empty? ensure enumeration-seq error-handler error-mode eval even? every-pred every? ex-data ex-info extend extend-protocol extend-type extenders extends? false? ffirst file-seq filter filterv find find-keyword find-ns find-protocol-impl find-protocol-method find-var first flatten float float-array float? floats flush fn fn? fnext fnil for force format frequencies future future-call future-cancel future-cancelled? future-done? future? gen-class gen-interface gensym get get-in get-method get-proxy-class get-thread-bindings get-validator group-by hash hash-combine hash-map hash-set identical? identity if-let if-not ifn? import in-ns inc inc' init-proxy instance? int int-array integer? interleave intern interpose into into-array ints io! isa? iterate iterator-seq juxt keep keep-indexed key keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list list* list? load load-file load-reader load-string loaded-libs locking long long-array longs loop macroexpand macroexpand-1 make-array make-hierarchy map map-indexed map? mapcat mapv max max-key memfn memoize merge merge-with meta method-sig methods min min-key mod munge name namespace namespace-munge neg? newline next nfirst nil? nnext not not-any? not-empty not-every? not= ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ns-refers ns-resolve ns-unalias ns-unmap nth nthnext nthrest num number? numerator object-array odd? or parents partial partition partition-all partition-by pcalls peek persistent! pmap pop pop! pop-thread-bindings pos? pr pr-str prefer-method prefers primitives-classnames print print-ctor print-dup print-method print-simple print-str printf println println-str prn prn-str promise proxy proxy-call-with-super proxy-mappings proxy-name proxy-super push-thread-bindings pvalues quot rand rand-int rand-nth range ratio? rational? rationalize re-find re-groups re-matcher re-matches re-pattern re-seq read read-line read-string realized? reduce reduce-kv reductions ref ref-history-count ref-max-history ref-min-history ref-set refer refer-clojure reify release-pending-sends rem remove remove-all-methods remove-method remove-ns remove-watch repeat repeatedly replace replicate require reset! reset-meta! resolve rest restart-agent resultset-seq reverse reversible? rseq rsubseq satisfies? second select-keys send send-off seq seq? seque sequence sequential? set set-error-handler! set-error-mode! set-validator! set? short short-array shorts shuffle shutdown-agents slurp some some-fn sort sort-by sorted-map sorted-map-by sorted-set sorted-set-by sorted? special-symbol? spit split-at split-with str string? struct struct-map subs subseq subvec supers swap! symbol symbol? sync take take-last take-nth take-while test the-ns thread-bound? time to-array to-array-2d trampoline transient tree-seq true? type unchecked-add unchecked-add-int unchecked-byte unchecked-char unchecked-dec unchecked-dec-int unchecked-divide-int unchecked-double unchecked-float unchecked-inc unchecked-inc-int unchecked-int unchecked-long unchecked-multiply unchecked-multiply-int unchecked-negate unchecked-negate-int unchecked-remainder-int unchecked-short unchecked-subtract unchecked-subtract-int underive unquote unquote-splicing update-in update-proxy use val vals var-get var-set var? vary-meta vec vector vector-of vector? when when-first when-let when-not while with-bindings with-bindings* with-in-str with-loading-context with-local-vars with-meta with-open with-out-str with-precision with-redefs with-redefs-fn xml-seq zero? zipmap *default-data-reader-fn* as-> cond-> cond->> reduced reduced? send-via set-agent-send-executor! set-agent-send-off-executor! some-> some->>");
          
              var indentKeys = makeKeywords(
                  // Built-ins
                  "ns fn def defn defmethod bound-fn if if-not case condp when while when-not when-first do future comment doto locking proxy with-open with-precision reify deftype defrecord defprotocol extend extend-protocol extend-type try catch " +
          
                  // Binding forms
                  "let letfn binding loop for doseq dotimes when-let if-let " +
          
                  // Data structures
                  "defstruct struct-map assoc " +
          
                  // clojure.test
                  "testing deftest " +
          
                  // contrib
                  "handler-case handle dotrace deftrace");
          
              var tests = {
                  digit: /\d/,
                  digit_or_colon: /[\d:]/,
                  hex: /[0-9a-f]/i,
                  sign: /[+-]/,
                  exponent: /e/i,
                  keyword_char: /[^\s\(\[\;\)\]]/,
                  symbol: /[\w*+!\-\._?:<>\/\xa1-\uffff]/
              };
          
              function stateStack(indent, type, prev) { // represents a state stack object
                  this.indent = indent;
                  this.type = type;
                  this.prev = prev;
              }
          
              function pushStack(state, indent, type) {
                  state.indentStack = new stateStack(indent, type, state.indentStack);
              }
          
              function popStack(state) {
                  state.indentStack = state.indentStack.prev;
              }
          
              function isNumber(ch, stream){
                  // hex
                  if ( ch === '0' && stream.eat(/x/i) ) {
                      stream.eatWhile(tests.hex);
                      return true;
                  }
          
                  // leading sign
                  if ( ( ch == '+' || ch == '-' ) && ( tests.digit.test(stream.peek()) ) ) {
                    stream.eat(tests.sign);
                    ch = stream.next();
                  }
          
                  if ( tests.digit.test(ch) ) {
                      stream.eat(ch);
                      stream.eatWhile(tests.digit);
          
                      if ( '.' == stream.peek() ) {
                          stream.eat('.');
                          stream.eatWhile(tests.digit);
                      }
          
                      if ( stream.eat(tests.exponent) ) {
                          stream.eat(tests.sign);
                          stream.eatWhile(tests.digit);
                      }
          
                      return true;
                  }
          
                  return false;
              }
          
              // Eat character that starts after backslash \
              function eatCharacter(stream) {
                  var first = stream.next();
                  // Read special literals: backspace, newline, space, return.
                  // Just read all lowercase letters.
                  if (first && first.match(/[a-z]/) && stream.match(/[a-z]+/, true)) {
                      return;
                  }
                  // Read unicode character: \u1000 \uA0a1
                  if (first === "u") {
                      stream.match(/[0-9a-z]{4}/i, true);
                  }
              }
          
              return {
                  startState: function () {
                      return {
                          indentStack: null,
                          indentation: 0,
                          mode: false
                      };
                  },
          
                  token: function (stream, state) {
                      if (state.indentStack == null && stream.sol()) {
                          // update indentation, but only if indentStack is empty
                          state.indentation = stream.indentation();
                      }
          
                      // skip spaces
                      if (stream.eatSpace()) {
                          return null;
                      }
                      var returnType = null;
          
                      switch(state.mode){
                          case "string": // multi-line string parsing mode
                              var next, escaped = false;
                              while ((next = stream.next()) != null) {
                                  if (next == "\"" && !escaped) {
          
                                      state.mode = false;
                                      break;
                                  }
                                  escaped = !escaped && next == "\\";
                              }
                              returnType = STRING; // continue on in string mode
                              break;
                          default: // default parsing mode
                              var ch = stream.next();
          
                              if (ch == "\"") {
                                  state.mode = "string";
                                  returnType = STRING;
                              } else if (ch == "\\") {
                                  eatCharacter(stream);
                                  returnType = CHARACTER;
                              } else if (ch == "'" && !( tests.digit_or_colon.test(stream.peek()) )) {
                                  returnType = ATOM;
                              } else if (ch == ";") { // comment
                                  stream.skipToEnd(); // rest of the line is a comment
                                  returnType = COMMENT;
                              } else if (isNumber(ch,stream)){
                                  returnType = NUMBER;
                              } else if (ch == "(" || ch == "[" || ch == "{" ) {
                                  var keyWord = '', indentTemp = stream.column(), letter;
                                  /**
                                  Either
                                  (indent-word ..
                                  (non-indent-word ..
                                  (;something else, bracket, etc.
                                  */
          
                                  if (ch == "(") while ((letter = stream.eat(tests.keyword_char)) != null) {
                                      keyWord += letter;
                                  }
          
                                  if (keyWord.length > 0 && (indentKeys.propertyIsEnumerable(keyWord) ||
                                                             /^(?:def|with)/.test(keyWord))) { // indent-word
                                      pushStack(state, indentTemp + INDENT_WORD_SKIP, ch);
                                  } else { // non-indent word
                                      // we continue eating the spaces
                                      stream.eatSpace();
                                      if (stream.eol() || stream.peek() == ";") {
                                          // nothing significant after
                                          // we restart indentation the user defined spaces after
                                          pushStack(state, indentTemp + NORMAL_INDENT_UNIT, ch);
                                      } else {
                                          pushStack(state, indentTemp + stream.current().length, ch); // else we match
                                      }
                                  }
                                  stream.backUp(stream.current().length - 1); // undo all the eating
          
                                  returnType = BRACKET;
                              } else if (ch == ")" || ch == "]" || ch == "}") {
                                  returnType = BRACKET;
                                  if (state.indentStack != null && state.indentStack.type == (ch == ")" ? "(" : (ch == "]" ? "[" :"{"))) {
                                      popStack(state);
                                  }
                              } else if ( ch == ":" ) {
                                  stream.eatWhile(tests.symbol);
                                  return ATOM;
                              } else {
                                  stream.eatWhile(tests.symbol);
          
                                  if (keywords && keywords.propertyIsEnumerable(stream.current())) {
                                      returnType = KEYWORD;
                                  } else if (builtins && builtins.propertyIsEnumerable(stream.current())) {
                                      returnType = BUILTIN;
                                  } else if (atoms && atoms.propertyIsEnumerable(stream.current())) {
                                      returnType = ATOM;
                                  } else {
                                    returnType = VAR;
                                  }
                              }
                      }
          
                      return returnType;
                  },
          
                  indent: function (state) {
                      if (state.indentStack == null) return state.indentation;
                      return state.indentStack.indent;
                  },
          
                  closeBrackets: {pairs: "()[]{}\"\""},
                  lineComment: ";;"
              };
          });
          
          CodeMirror.defineMIME("text/x-clojure", "clojure");
          
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Clojure mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="clojure.js"></script>
          <style>.CodeMirror {background: #f8f8f8;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Clojure</a>
            </ul>
          </div>
          
          <article>
          <h2>Clojure mode</h2>
          <form><textarea id="code" name="code">
          ; Conway's Game of Life, based on the work of:
          ;; Laurent Petit https://gist.github.com/1200343
          ;; Christophe Grand http://clj-me.cgrand.net/2011/08/19/conways-game-of-life
          
          (ns ^{:doc "Conway's Game of Life."}
           game-of-life)
          
          ;; Core game of life's algorithm functions
          
          (defn neighbours
            "Given a cell's coordinates, returns the coordinates of its neighbours."
            [[x y]]
            (for [dx [-1 0 1] dy (if (zero? dx) [-1 1] [-1 0 1])]
              [(+ dx x) (+ dy y)]))
          
          (defn step
            "Given a set of living cells, computes the new set of living cells."
            [cells]
            (set (for [[cell n] (frequencies (mapcat neighbours cells))
                       :when (or (= n 3) (and (= n 2) (cells cell)))]
                   cell)))
          
          ;; Utility methods for displaying game on a text terminal
          
          (defn print-board
            "Prints a board on *out*, representing a step in the game."
            [board w h]
            (doseq [x (range (inc w)) y (range (inc h))]
              (if (= y 0) (print "\n"))
              (print (if (board [x y]) "[X]" " . "))))
          
          (defn display-grids
            "Prints a squence of boards on *out*, representing several steps."
            [grids w h]
            (doseq [board grids]
              (print-board board w h)
              (print "\n")))
          
          ;; Launches an example board
          
          (def
            ^{:doc "board represents the initial set of living cells"}
             board #{[2 1] [2 2] [2 3]})
          
          (display-grids (take 3 (iterate step board)) 5 5)
          
          ;; Let's play with characters
          (println \1 \a \# \\
                   \" \( \newline
                   \} \" \space
                   \tab \return \backspace
                   \u1000 \uAaAa \u9F9F)
          
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {});
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-clojure</code>.</p>
          
            </article>
          
      • cmake
        • cmake.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object")
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd)
              define(["../../lib/codemirror"], mod);
            else
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("cmake", function () {
            var variable_regex = /({)?[a-zA-Z0-9_]+(})?/;
          
            function tokenString(stream, state) {
              var current, prev, found_var = false;
              while (!stream.eol() && (current = stream.next()) != state.pending) {
                if (current === '$' && prev != '\\' && state.pending == '"') {
                  found_var = true;
                  break;
                }
                prev = current;
              }
              if (found_var) {
                stream.backUp(1);
              }
              if (current == state.pending) {
                state.continueString = false;
              } else {
                state.continueString = true;
              }
              return "string";
            }
          
            function tokenize(stream, state) {
              var ch = stream.next();
          
              // Have we found a variable?
              if (ch === '$') {
                if (stream.match(variable_regex)) {
                  return 'variable-2';
                }
                return 'variable';
              }
              // Should we still be looking for the end of a string?
              if (state.continueString) {
                // If so, go through the loop again
                stream.backUp(1);
                return tokenString(stream, state);
              }
              // Do we just have a function on our hands?
              // In 'cmake_minimum_required (VERSION 2.8.8)', 'cmake_minimum_required' is matched
              if (stream.match(/(\s+)?\w+\(/) || stream.match(/(\s+)?\w+\ \(/)) {
                stream.backUp(1);
                return 'def';
              }
              if (ch == "#") {
                stream.skipToEnd();
                return "comment";
              }
              // Have we found a string?
              if (ch == "'" || ch == '"') {
                // Store the type (single or double)
                state.pending = ch;
                // Perform the looping function to find the end
                return tokenString(stream, state);
              }
              if (ch == '(' || ch == ')') {
                return 'bracket';
              }
              if (ch.match(/[0-9]/)) {
                return 'number';
              }
              stream.eatWhile(/[\w-]/);
              return null;
            }
            return {
              startState: function () {
                var state = {};
                state.inDefinition = false;
                state.inInclude = false;
                state.continueString = false;
                state.pending = false;
                return state;
              },
              token: function (stream, state) {
                if (stream.eatSpace()) return null;
                return tokenize(stream, state);
              }
            };
          });
          
          CodeMirror.defineMIME("text/x-cmake", "cmake");
          
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: CMake mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="cmake.js"></script>
          <style>
                .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}
                .cm-s-default span.cm-arrow { color: red; }
              </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">CMake</a>
            </ul>
          </div>
          
          <article>
          <h2>CMake mode</h2>
          <form><textarea id="code" name="code">
          # vim: syntax=cmake
          if(NOT CMAKE_BUILD_TYPE)
              # default to Release build for GCC builds
              set(CMAKE_BUILD_TYPE Release CACHE STRING
                  "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel."
                  FORCE)
          endif()
          message(STATUS "cmake version ${CMAKE_VERSION}")
          if(POLICY CMP0025)
              cmake_policy(SET CMP0025 OLD) # report Apple's Clang as just Clang
          endif()
          if(POLICY CMP0042)
              cmake_policy(SET CMP0042 NEW) # MACOSX_RPATH
          endif()
          
          project (x265)
          cmake_minimum_required (VERSION 2.8.8) # OBJECT libraries require 2.8.8
          include(CheckIncludeFiles)
          include(CheckFunctionExists)
          include(CheckSymbolExists)
          include(CheckCXXCompilerFlag)
          
          # X265_BUILD must be incremented each time the public API is changed
          set(X265_BUILD 48)
          configure_file("${PROJECT_SOURCE_DIR}/x265.def.in"
                         "${PROJECT_BINARY_DIR}/x265.def")
          configure_file("${PROJECT_SOURCE_DIR}/x265_config.h.in"
                         "${PROJECT_BINARY_DIR}/x265_config.h")
          
          SET(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" "${CMAKE_MODULE_PATH}")
          
          # System architecture detection
          string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" SYSPROC)
          set(X86_ALIASES x86 i386 i686 x86_64 amd64)
          list(FIND X86_ALIASES "${SYSPROC}" X86MATCH)
          if("${SYSPROC}" STREQUAL "" OR X86MATCH GREATER "-1")
              message(STATUS "Detected x86 target processor")
              set(X86 1)
              add_definitions(-DX265_ARCH_X86=1)
              if("${CMAKE_SIZEOF_VOID_P}" MATCHES 8)
                  set(X64 1)
                  add_definitions(-DX86_64=1)
              endif()
          elseif(${SYSPROC} STREQUAL "armv6l")
              message(STATUS "Detected ARM target processor")
              set(ARM 1)
              add_definitions(-DX265_ARCH_ARM=1 -DHAVE_ARMV6=1)
          else()
              message(STATUS "CMAKE_SYSTEM_PROCESSOR value `${CMAKE_SYSTEM_PROCESSOR}` is unknown")
              message(STATUS "Please add this value near ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE}")
          endif()
          
          if(UNIX)
              list(APPEND PLATFORM_LIBS pthread)
              find_library(LIBRT rt)
              if(LIBRT)
                  list(APPEND PLATFORM_LIBS rt)
              endif()
              find_package(Numa)
              if(NUMA_FOUND)
                  list(APPEND CMAKE_REQUIRED_LIBRARIES ${NUMA_LIBRARY})
                  check_symbol_exists(numa_node_of_cpu numa.h NUMA_V2)
                  if(NUMA_V2)
                      add_definitions(-DHAVE_LIBNUMA)
                      message(STATUS "libnuma found, building with support for NUMA nodes")
                      list(APPEND PLATFORM_LIBS ${NUMA_LIBRARY})
                      link_directories(${NUMA_LIBRARY_DIR})
                      include_directories(${NUMA_INCLUDE_DIR})
                  endif()
              endif()
              mark_as_advanced(LIBRT NUMA_FOUND)
          endif(UNIX)
          
          if(X64 AND NOT WIN32)
              option(ENABLE_PIC "Enable Position Independent Code" ON)
          else()
              option(ENABLE_PIC "Enable Position Independent Code" OFF)
          endif(X64 AND NOT WIN32)
          
          # Compiler detection
          if(CMAKE_GENERATOR STREQUAL "Xcode")
            set(XCODE 1)
          endif()
          if (APPLE)
            add_definitions(-DMACOS)
          endif()
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  mode: "text/x-cmake",
                  matchBrackets: true,
                  indentUnit: 4
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-cmake</code>.</p>
          
            </article>
          
      • cobol
        • cobol.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          /**
           * Author: Gautam Mehta
           * Branched from CodeMirror's Scheme mode
           */
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("cobol", function () {
            var BUILTIN = "builtin", COMMENT = "comment", STRING = "string",
                ATOM = "atom", NUMBER = "number", KEYWORD = "keyword", MODTAG = "header",
                COBOLLINENUM = "def", PERIOD = "link";
            function makeKeywords(str) {
              var obj = {}, words = str.split(" ");
              for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
              return obj;
            }
            var atoms = makeKeywords("TRUE FALSE ZEROES ZEROS ZERO SPACES SPACE LOW-VALUE LOW-VALUES ");
            var keywords = makeKeywords(
                "ACCEPT ACCESS ACQUIRE ADD ADDRESS " +
                "ADVANCING AFTER ALIAS ALL ALPHABET " +
                "ALPHABETIC ALPHABETIC-LOWER ALPHABETIC-UPPER ALPHANUMERIC ALPHANUMERIC-EDITED " +
                "ALSO ALTER ALTERNATE AND ANY " +
                "ARE AREA AREAS ARITHMETIC ASCENDING " +
                "ASSIGN AT ATTRIBUTE AUTHOR AUTO " +
                "AUTO-SKIP AUTOMATIC B-AND B-EXOR B-LESS " +
                "B-NOT B-OR BACKGROUND-COLOR BACKGROUND-COLOUR BEEP " +
                "BEFORE BELL BINARY BIT BITS " +
                "BLANK BLINK BLOCK BOOLEAN BOTTOM " +
                "BY CALL CANCEL CD CF " +
                "CH CHARACTER CHARACTERS CLASS CLOCK-UNITS " +
                "CLOSE COBOL CODE CODE-SET COL " +
                "COLLATING COLUMN COMMA COMMIT COMMITMENT " +
                "COMMON COMMUNICATION COMP COMP-0 COMP-1 " +
                "COMP-2 COMP-3 COMP-4 COMP-5 COMP-6 " +
                "COMP-7 COMP-8 COMP-9 COMPUTATIONAL COMPUTATIONAL-0 " +
                "COMPUTATIONAL-1 COMPUTATIONAL-2 COMPUTATIONAL-3 COMPUTATIONAL-4 COMPUTATIONAL-5 " +
                "COMPUTATIONAL-6 COMPUTATIONAL-7 COMPUTATIONAL-8 COMPUTATIONAL-9 COMPUTE " +
                "CONFIGURATION CONNECT CONSOLE CONTAINED CONTAINS " +
                "CONTENT CONTINUE CONTROL CONTROL-AREA CONTROLS " +
                "CONVERTING COPY CORR CORRESPONDING COUNT " +
                "CRT CRT-UNDER CURRENCY CURRENT CURSOR " +
                "DATA DATE DATE-COMPILED DATE-WRITTEN DAY " +
                "DAY-OF-WEEK DB DB-ACCESS-CONTROL-KEY DB-DATA-NAME DB-EXCEPTION " +
                "DB-FORMAT-NAME DB-RECORD-NAME DB-SET-NAME DB-STATUS DBCS " +
                "DBCS-EDITED DE DEBUG-CONTENTS DEBUG-ITEM DEBUG-LINE " +
                "DEBUG-NAME DEBUG-SUB-1 DEBUG-SUB-2 DEBUG-SUB-3 DEBUGGING " +
                "DECIMAL-POINT DECLARATIVES DEFAULT DELETE DELIMITED " +
                "DELIMITER DEPENDING DESCENDING DESCRIBED DESTINATION " +
                "DETAIL DISABLE DISCONNECT DISPLAY DISPLAY-1 " +
                "DISPLAY-2 DISPLAY-3 DISPLAY-4 DISPLAY-5 DISPLAY-6 " +
                "DISPLAY-7 DISPLAY-8 DISPLAY-9 DIVIDE DIVISION " +
                "DOWN DROP DUPLICATE DUPLICATES DYNAMIC " +
                "EBCDIC EGI EJECT ELSE EMI " +
                "EMPTY EMPTY-CHECK ENABLE END END. END-ACCEPT END-ACCEPT. " +
                "END-ADD END-CALL END-COMPUTE END-DELETE END-DISPLAY " +
                "END-DIVIDE END-EVALUATE END-IF END-INVOKE END-MULTIPLY " +
                "END-OF-PAGE END-PERFORM END-READ END-RECEIVE END-RETURN " +
                "END-REWRITE END-SEARCH END-START END-STRING END-SUBTRACT " +
                "END-UNSTRING END-WRITE END-XML ENTER ENTRY " +
                "ENVIRONMENT EOP EQUAL EQUALS ERASE " +
                "ERROR ESI EVALUATE EVERY EXCEEDS " +
                "EXCEPTION EXCLUSIVE EXIT EXTEND EXTERNAL " +
                "EXTERNALLY-DESCRIBED-KEY FD FETCH FILE FILE-CONTROL " +
                "FILE-STREAM FILES FILLER FINAL FIND " +
                "FINISH FIRST FOOTING FOR FOREGROUND-COLOR " +
                "FOREGROUND-COLOUR FORMAT FREE FROM FULL " +
                "FUNCTION GENERATE GET GIVING GLOBAL " +
                "GO GOBACK GREATER GROUP HEADING " +
                "HIGH-VALUE HIGH-VALUES HIGHLIGHT I-O I-O-CONTROL " +
                "ID IDENTIFICATION IF IN INDEX " +
                "INDEX-1 INDEX-2 INDEX-3 INDEX-4 INDEX-5 " +
                "INDEX-6 INDEX-7 INDEX-8 INDEX-9 INDEXED " +
                "INDIC INDICATE INDICATOR INDICATORS INITIAL " +
                "INITIALIZE INITIATE INPUT INPUT-OUTPUT INSPECT " +
                "INSTALLATION INTO INVALID INVOKE IS " +
                "JUST JUSTIFIED KANJI KEEP KEY " +
                "LABEL LAST LD LEADING LEFT " +
                "LEFT-JUSTIFY LENGTH LENGTH-CHECK LESS LIBRARY " +
                "LIKE LIMIT LIMITS LINAGE LINAGE-COUNTER " +
                "LINE LINE-COUNTER LINES LINKAGE LOCAL-STORAGE " +
                "LOCALE LOCALLY LOCK " +
                "MEMBER MEMORY MERGE MESSAGE METACLASS " +
                "MODE MODIFIED MODIFY MODULES MOVE " +
                "MULTIPLE MULTIPLY NATIONAL NATIVE NEGATIVE " +
                "NEXT NO NO-ECHO NONE NOT " +
                "NULL NULL-KEY-MAP NULL-MAP NULLS NUMBER " +
                "NUMERIC NUMERIC-EDITED OBJECT OBJECT-COMPUTER OCCURS " +
                "OF OFF OMITTED ON ONLY " +
                "OPEN OPTIONAL OR ORDER ORGANIZATION " +
                "OTHER OUTPUT OVERFLOW OWNER PACKED-DECIMAL " +
                "PADDING PAGE PAGE-COUNTER PARSE PERFORM " +
                "PF PH PIC PICTURE PLUS " +
                "POINTER POSITION POSITIVE PREFIX PRESENT " +
                "PRINTING PRIOR PROCEDURE PROCEDURE-POINTER PROCEDURES " +
                "PROCEED PROCESS PROCESSING PROGRAM PROGRAM-ID " +
                "PROMPT PROTECTED PURGE QUEUE QUOTE " +
                "QUOTES RANDOM RD READ READY " +
                "REALM RECEIVE RECONNECT RECORD RECORD-NAME " +
                "RECORDS RECURSIVE REDEFINES REEL REFERENCE " +
                "REFERENCE-MONITOR REFERENCES RELATION RELATIVE RELEASE " +
                "REMAINDER REMOVAL RENAMES REPEATED REPLACE " +
                "REPLACING REPORT REPORTING REPORTS REPOSITORY " +
                "REQUIRED RERUN RESERVE RESET RETAINING " +
                "RETRIEVAL RETURN RETURN-CODE RETURNING REVERSE-VIDEO " +
                "REVERSED REWIND REWRITE RF RH " +
                "RIGHT RIGHT-JUSTIFY ROLLBACK ROLLING ROUNDED " +
                "RUN SAME SCREEN SD SEARCH " +
                "SECTION SECURE SECURITY SEGMENT SEGMENT-LIMIT " +
                "SELECT SEND SENTENCE SEPARATE SEQUENCE " +
                "SEQUENTIAL SET SHARED SIGN SIZE " +
                "SKIP1 SKIP2 SKIP3 SORT SORT-MERGE " +
                "SORT-RETURN SOURCE SOURCE-COMPUTER SPACE-FILL " +
                "SPECIAL-NAMES STANDARD STANDARD-1 STANDARD-2 " +
                "START STARTING STATUS STOP STORE " +
                "STRING SUB-QUEUE-1 SUB-QUEUE-2 SUB-QUEUE-3 SUB-SCHEMA " +
                "SUBFILE SUBSTITUTE SUBTRACT SUM SUPPRESS " +
                "SYMBOLIC SYNC SYNCHRONIZED SYSIN SYSOUT " +
                "TABLE TALLYING TAPE TENANT TERMINAL " +
                "TERMINATE TEST TEXT THAN THEN " +
                "THROUGH THRU TIME TIMES TITLE " +
                "TO TOP TRAILING TRAILING-SIGN TRANSACTION " +
                "TYPE TYPEDEF UNDERLINE UNEQUAL UNIT " +
                "UNSTRING UNTIL UP UPDATE UPON " +
                "USAGE USAGE-MODE USE USING VALID " +
                "VALIDATE VALUE VALUES VARYING VLR " +
                "WAIT WHEN WHEN-COMPILED WITH WITHIN " +
                "WORDS WORKING-STORAGE WRITE XML XML-CODE " +
                "XML-EVENT XML-NTEXT XML-TEXT ZERO ZERO-FILL " );
          
            var builtins = makeKeywords("- * ** / + < <= = > >= ");
            var tests = {
              digit: /\d/,
              digit_or_colon: /[\d:]/,
              hex: /[0-9a-f]/i,
              sign: /[+-]/,
              exponent: /e/i,
              keyword_char: /[^\s\(\[\;\)\]]/,
              symbol: /[\w*+\-]/
            };
            function isNumber(ch, stream){
              // hex
              if ( ch === '0' && stream.eat(/x/i) ) {
                stream.eatWhile(tests.hex);
                return true;
              }
              // leading sign
              if ( ( ch == '+' || ch == '-' ) && ( tests.digit.test(stream.peek()) ) ) {
                stream.eat(tests.sign);
                ch = stream.next();
              }
              if ( tests.digit.test(ch) ) {
                stream.eat(ch);
                stream.eatWhile(tests.digit);
                if ( '.' == stream.peek()) {
                  stream.eat('.');
                  stream.eatWhile(tests.digit);
                }
                if ( stream.eat(tests.exponent) ) {
                  stream.eat(tests.sign);
                  stream.eatWhile(tests.digit);
                }
                return true;
              }
              return false;
            }
            return {
              startState: function () {
                return {
                  indentStack: null,
                  indentation: 0,
                  mode: false
                };
              },
              token: function (stream, state) {
                if (state.indentStack == null && stream.sol()) {
                  // update indentation, but only if indentStack is empty
                  state.indentation = 6 ; //stream.indentation();
                }
                // skip spaces
                if (stream.eatSpace()) {
                  return null;
                }
                var returnType = null;
                switch(state.mode){
                case "string": // multi-line string parsing mode
                  var next = false;
                  while ((next = stream.next()) != null) {
                    if (next == "\"" || next == "\'") {
                      state.mode = false;
                      break;
                    }
                  }
                  returnType = STRING; // continue on in string mode
                  break;
                default: // default parsing mode
                  var ch = stream.next();
                  var col = stream.column();
                  if (col >= 0 && col <= 5) {
                    returnType = COBOLLINENUM;
                  } else if (col >= 72 && col <= 79) {
                    stream.skipToEnd();
                    returnType = MODTAG;
                  } else if (ch == "*" && col == 6) { // comment
                    stream.skipToEnd(); // rest of the line is a comment
                    returnType = COMMENT;
                  } else if (ch == "\"" || ch == "\'") {
                    state.mode = "string";
                    returnType = STRING;
                  } else if (ch == "'" && !( tests.digit_or_colon.test(stream.peek()) )) {
                    returnType = ATOM;
                  } else if (ch == ".") {
                    returnType = PERIOD;
                  } else if (isNumber(ch,stream)){
                    returnType = NUMBER;
                  } else {
                    if (stream.current().match(tests.symbol)) {
                      while (col < 71) {
                        if (stream.eat(tests.symbol) === undefined) {
                          break;
                        } else {
                          col++;
                        }
                      }
                    }
                    if (keywords && keywords.propertyIsEnumerable(stream.current().toUpperCase())) {
                      returnType = KEYWORD;
                    } else if (builtins && builtins.propertyIsEnumerable(stream.current().toUpperCase())) {
                      returnType = BUILTIN;
                    } else if (atoms && atoms.propertyIsEnumerable(stream.current().toUpperCase())) {
                      returnType = ATOM;
                    } else returnType = null;
                  }
                }
                return returnType;
              },
              indent: function (state) {
                if (state.indentStack == null) return state.indentation;
                return state.indentStack.indent;
              }
            };
          });
          
          CodeMirror.defineMIME("text/x-cobol", "cobol");
          
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: COBOL mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <link rel="stylesheet" href="../../theme/neat.css">
          <link rel="stylesheet" href="../../theme/elegant.css">
          <link rel="stylesheet" href="../../theme/erlang-dark.css">
          <link rel="stylesheet" href="../../theme/night.css">
          <link rel="stylesheet" href="../../theme/monokai.css">
          <link rel="stylesheet" href="../../theme/cobalt.css">
          <link rel="stylesheet" href="../../theme/eclipse.css">
          <link rel="stylesheet" href="../../theme/rubyblue.css">
          <link rel="stylesheet" href="../../theme/lesser-dark.css">
          <link rel="stylesheet" href="../../theme/xq-dark.css">
          <link rel="stylesheet" href="../../theme/xq-light.css">
          <link rel="stylesheet" href="../../theme/ambiance.css">
          <link rel="stylesheet" href="../../theme/blackboard.css">
          <link rel="stylesheet" href="../../theme/vibrant-ink.css">
          <link rel="stylesheet" href="../../theme/solarized.css">
          <link rel="stylesheet" href="../../theme/twilight.css">
          <link rel="stylesheet" href="../../theme/midnight.css">
          <link rel="stylesheet" href="../../addon/dialog/dialog.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="cobol.js"></script>
          <script src="../../addon/selection/active-line.js"></script>
          <script src="../../addon/search/search.js"></script>
          <script src="../../addon/dialog/dialog.js"></script>
          <script src="../../addon/search/searchcursor.js"></script>
          <style>
                  .CodeMirror {
                    border: 1px solid #eee;
                    font-size : 20px;
                    height : auto !important;
                  }
                  .CodeMirror-activeline-background {background: #555555 !important;}
              </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">COBOL</a>
            </ul>
          </div>
          
          <article>
          <h2>COBOL mode</h2>
          
              <p> Select Theme <select onchange="selectTheme()" id="selectTheme">
                  <option>default</option>
                  <option>ambiance</option>
                  <option>blackboard</option>
                  <option>cobalt</option>
                  <option>eclipse</option>
                  <option>elegant</option>
                  <option>erlang-dark</option>
                  <option>lesser-dark</option>
                  <option>midnight</option>
                  <option>monokai</option>
                  <option>neat</option>
                  <option>night</option>
                  <option>rubyblue</option>
                  <option>solarized dark</option>
                  <option>solarized light</option>
                  <option selected>twilight</option>
                  <option>vibrant-ink</option>
                  <option>xq-dark</option>
                  <option>xq-light</option>
              </select>    Select Font Size <select onchange="selectFontsize()" id="selectFontSize">
                    <option value="13px">13px</option>
                    <option value="14px">14px</option>
                    <option value="16px">16px</option>
                    <option value="18px">18px</option>
                    <option value="20px" selected="selected">20px</option>
                    <option value="24px">24px</option>
                    <option value="26px">26px</option>
                    <option value="28px">28px</option>
                    <option value="30px">30px</option>
                    <option value="32px">32px</option>
                    <option value="34px">34px</option>
                    <option value="36px">36px</option>
                  </select>
          <label for="checkBoxReadOnly">Read-only</label>
          <input type="checkbox" id="checkBoxReadOnly" onchange="selectReadOnly()">
          <label for="id_tabToIndentSpace">Insert Spaces on Tab</label>
          <input type="checkbox" id="id_tabToIndentSpace" onchange="tabToIndentSpace()">
          </p>
          <textarea id="code" name="code">
          ---------1---------2---------3---------4---------5---------6---------7---------8
          12345678911234567892123456789312345678941234567895123456789612345678971234567898
          000010 IDENTIFICATION DIVISION.                                        MODTGHERE
          000020 PROGRAM-ID.       SAMPLE.
          000030 AUTHOR.           TEST SAM. 
          000040 DATE-WRITTEN.     5 February 2013
          000041
          000042* A sample program just to show the form.
          000043* The program copies its input to the output,
          000044* and counts the number of records.
          000045* At the end this number is printed.
          000046
          000050 ENVIRONMENT DIVISION.
          000060 INPUT-OUTPUT SECTION.
          000070 FILE-CONTROL.
          000080     SELECT STUDENT-FILE     ASSIGN TO SYSIN
          000090         ORGANIZATION IS LINE SEQUENTIAL.
          000100     SELECT PRINT-FILE       ASSIGN TO SYSOUT
          000110         ORGANIZATION IS LINE SEQUENTIAL.
          000120
          000130 DATA DIVISION.
          000140 FILE SECTION.
          000150 FD  STUDENT-FILE
          000160     RECORD CONTAINS 43 CHARACTERS
          000170     DATA RECORD IS STUDENT-IN.
          000180 01  STUDENT-IN              PIC X(43).
          000190
          000200 FD  PRINT-FILE
          000210     RECORD CONTAINS 80 CHARACTERS
          000220     DATA RECORD IS PRINT-LINE.
          000230 01  PRINT-LINE              PIC X(80).
          000240
          000250 WORKING-STORAGE SECTION.
          000260 01  DATA-REMAINS-SWITCH     PIC X(2)      VALUE SPACES.
          000261 01  RECORDS-WRITTEN         PIC 99.
          000270
          000280 01  DETAIL-LINE.
          000290     05  FILLER              PIC X(7)      VALUE SPACES.
          000300     05  RECORD-IMAGE        PIC X(43).
          000310     05  FILLER              PIC X(30)     VALUE SPACES.
          000311 
          000312 01  SUMMARY-LINE.
          000313     05  FILLER              PIC X(7)      VALUE SPACES.
          000314     05  TOTAL-READ          PIC 99.
          000315     05  FILLER              PIC X         VALUE SPACE.
          000316     05  FILLER              PIC X(17)     
          000317                 VALUE  'Records were read'.
          000318     05  FILLER              PIC X(53)     VALUE SPACES.
          000319
          000320 PROCEDURE DIVISION.
          000321
          000330 PREPARE-SENIOR-REPORT.
          000340     OPEN INPUT  STUDENT-FILE
          000350          OUTPUT PRINT-FILE.
          000351     MOVE ZERO TO RECORDS-WRITTEN.
          000360     READ STUDENT-FILE
          000370         AT END MOVE 'NO' TO DATA-REMAINS-SWITCH
          000380     END-READ.
          000390     PERFORM PROCESS-RECORDS
          000410         UNTIL DATA-REMAINS-SWITCH = 'NO'.
          000411     PERFORM PRINT-SUMMARY.
          000420     CLOSE STUDENT-FILE
          000430           PRINT-FILE.
          000440     STOP RUN.
          000450
          000460 PROCESS-RECORDS.
          000470     MOVE STUDENT-IN TO RECORD-IMAGE.
          000480     MOVE DETAIL-LINE TO PRINT-LINE.
          000490     WRITE PRINT-LINE.
          000500     ADD 1 TO RECORDS-WRITTEN.
          000510     READ STUDENT-FILE
          000520         AT END MOVE 'NO' TO DATA-REMAINS-SWITCH
          000530     END-READ. 
          000540
          000550 PRINT-SUMMARY.
          000560     MOVE RECORDS-WRITTEN TO TOTAL-READ.
          000570     MOVE SUMMARY-LINE TO PRINT-LINE.
          000571     WRITE PRINT-LINE. 
          000572
          000580
          </textarea>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  matchBrackets: true,
                  mode: "text/x-cobol",
                  theme : "twilight",
                  styleActiveLine: true,
                  showCursorWhenSelecting : true,  
                });
                function selectTheme() {
                  var themeInput = document.getElementById("selectTheme");
                  var theme = themeInput.options[themeInput.selectedIndex].innerHTML;
                  editor.setOption("theme", theme);
                }
                function selectFontsize() {
                  var fontSizeInput = document.getElementById("selectFontSize");
                  var fontSize = fontSizeInput.options[fontSizeInput.selectedIndex].innerHTML;
                  editor.getWrapperElement().style.fontSize = fontSize;
                  editor.refresh();
                }
                function selectReadOnly() {
                  editor.setOption("readOnly", document.getElementById("checkBoxReadOnly").checked);
                }
                function tabToIndentSpace() {
                  if (document.getElementById("id_tabToIndentSpace").checked) {
                      editor.setOption("extraKeys", {Tab: function(cm) { cm.replaceSelection("    ", "end"); }});
                  } else {
                      editor.setOption("extraKeys", {Tab: function(cm) { cm.replaceSelection("    ", "end"); }});
                  }
                }
              </script>
            </article>
          
      • coffeescript
        • coffeescript.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          /**
           * Link to the project's GitHub page:
           * https://github.com/pickhardt/coffeescript-codemirror-mode
           */
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("coffeescript", function(conf, parserConf) {
            var ERRORCLASS = "error";
          
            function wordRegexp(words) {
              return new RegExp("^((" + words.join(")|(") + "))\\b");
            }
          
            var operators = /^(?:->|=>|\+[+=]?|-[\-=]?|\*[\*=]?|\/[\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\|=?|\^=?|\~|!|\?|(or|and|\|\||&&|\?)=)/;
            var delimiters = /^(?:[()\[\]{},:`=;]|\.\.?\.?)/;
            var identifiers = /^[_A-Za-z$][_A-Za-z$0-9]*/;
            var atProp = /^@[_A-Za-z$][_A-Za-z$0-9]*/;
          
            var wordOperators = wordRegexp(["and", "or", "not",
                                            "is", "isnt", "in",
                                            "instanceof", "typeof"]);
            var indentKeywords = ["for", "while", "loop", "if", "unless", "else",
                                  "switch", "try", "catch", "finally", "class"];
            var commonKeywords = ["break", "by", "continue", "debugger", "delete",
                                  "do", "in", "of", "new", "return", "then",
                                  "this", "@", "throw", "when", "until", "extends"];
          
            var keywords = wordRegexp(indentKeywords.concat(commonKeywords));
          
            indentKeywords = wordRegexp(indentKeywords);
          
          
            var stringPrefixes = /^('{3}|\"{3}|['\"])/;
            var regexPrefixes = /^(\/{3}|\/)/;
            var commonConstants = ["Infinity", "NaN", "undefined", "null", "true", "false", "on", "off", "yes", "no"];
            var constants = wordRegexp(commonConstants);
          
            // Tokenizers
            function tokenBase(stream, state) {
              // Handle scope changes
              if (stream.sol()) {
                if (state.scope.align === null) state.scope.align = false;
                var scopeOffset = state.scope.offset;
                if (stream.eatSpace()) {
                  var lineOffset = stream.indentation();
                  if (lineOffset > scopeOffset && state.scope.type == "coffee") {
                    return "indent";
                  } else if (lineOffset < scopeOffset) {
                    return "dedent";
                  }
                  return null;
                } else {
                  if (scopeOffset > 0) {
                    dedent(stream, state);
                  }
                }
              }
              if (stream.eatSpace()) {
                return null;
              }
          
              var ch = stream.peek();
          
              // Handle docco title comment (single line)
              if (stream.match("####")) {
                stream.skipToEnd();
                return "comment";
              }
          
              // Handle multi line comments
              if (stream.match("###")) {
                state.tokenize = longComment;
                return state.tokenize(stream, state);
              }
          
              // Single line comment
              if (ch === "#") {
                stream.skipToEnd();
                return "comment";
              }
          
              // Handle number literals
              if (stream.match(/^-?[0-9\.]/, false)) {
                var floatLiteral = false;
                // Floats
                if (stream.match(/^-?\d*\.\d+(e[\+\-]?\d+)?/i)) {
                  floatLiteral = true;
                }
                if (stream.match(/^-?\d+\.\d*/)) {
                  floatLiteral = true;
                }
                if (stream.match(/^-?\.\d+/)) {
                  floatLiteral = true;
                }
          
                if (floatLiteral) {
                  // prevent from getting extra . on 1..
                  if (stream.peek() == "."){
                    stream.backUp(1);
                  }
                  return "number";
                }
                // Integers
                var intLiteral = false;
                // Hex
                if (stream.match(/^-?0x[0-9a-f]+/i)) {
                  intLiteral = true;
                }
                // Decimal
                if (stream.match(/^-?[1-9]\d*(e[\+\-]?\d+)?/)) {
                  intLiteral = true;
                }
                // Zero by itself with no other piece of number.
                if (stream.match(/^-?0(?![\dx])/i)) {
                  intLiteral = true;
                }
                if (intLiteral) {
                  return "number";
                }
              }
          
              // Handle strings
              if (stream.match(stringPrefixes)) {
                state.tokenize = tokenFactory(stream.current(), false, "string");
                return state.tokenize(stream, state);
              }
              // Handle regex literals
              if (stream.match(regexPrefixes)) {
                if (stream.current() != "/" || stream.match(/^.*\//, false)) { // prevent highlight of division
                  state.tokenize = tokenFactory(stream.current(), true, "string-2");
                  return state.tokenize(stream, state);
                } else {
                  stream.backUp(1);
                }
              }
          
          
          
              // Handle operators and delimiters
              if (stream.match(operators) || stream.match(wordOperators)) {
                return "operator";
              }
              if (stream.match(delimiters)) {
                return "punctuation";
              }
          
              if (stream.match(constants)) {
                return "atom";
              }
          
              if (stream.match(atProp) || state.prop && stream.match(identifiers)) {
                return "property";
              }
          
              if (stream.match(keywords)) {
                return "keyword";
              }
          
              if (stream.match(identifiers)) {
                return "variable";
              }
          
              // Handle non-detected items
              stream.next();
              return ERRORCLASS;
            }
          
            function tokenFactory(delimiter, singleline, outclass) {
              return function(stream, state) {
                while (!stream.eol()) {
                  stream.eatWhile(/[^'"\/\\]/);
                  if (stream.eat("\\")) {
                    stream.next();
                    if (singleline && stream.eol()) {
                      return outclass;
                    }
                  } else if (stream.match(delimiter)) {
                    state.tokenize = tokenBase;
                    return outclass;
                  } else {
                    stream.eat(/['"\/]/);
                  }
                }
                if (singleline) {
                  if (parserConf.singleLineStringErrors) {
                    outclass = ERRORCLASS;
                  } else {
                    state.tokenize = tokenBase;
                  }
                }
                return outclass;
              };
            }
          
            function longComment(stream, state) {
              while (!stream.eol()) {
                stream.eatWhile(/[^#]/);
                if (stream.match("###")) {
                  state.tokenize = tokenBase;
                  break;
                }
                stream.eatWhile("#");
              }
              return "comment";
            }
          
            function indent(stream, state, type) {
              type = type || "coffee";
              var offset = 0, align = false, alignOffset = null;
              for (var scope = state.scope; scope; scope = scope.prev) {
                if (scope.type === "coffee" || scope.type == "}") {
                  offset = scope.offset + conf.indentUnit;
                  break;
                }
              }
              if (type !== "coffee") {
                align = null;
                alignOffset = stream.column() + stream.current().length;
              } else if (state.scope.align) {
                state.scope.align = false;
              }
              state.scope = {
                offset: offset,
                type: type,
                prev: state.scope,
                align: align,
                alignOffset: alignOffset
              };
            }
          
            function dedent(stream, state) {
              if (!state.scope.prev) return;
              if (state.scope.type === "coffee") {
                var _indent = stream.indentation();
                var matched = false;
                for (var scope = state.scope; scope; scope = scope.prev) {
                  if (_indent === scope.offset) {
                    matched = true;
                    break;
                  }
                }
                if (!matched) {
                  return true;
                }
                while (state.scope.prev && state.scope.offset !== _indent) {
                  state.scope = state.scope.prev;
                }
                return false;
              } else {
                state.scope = state.scope.prev;
                return false;
              }
            }
          
            function tokenLexer(stream, state) {
              var style = state.tokenize(stream, state);
              var current = stream.current();
          
              // Handle scope changes.
              if (current === "return") {
                state.dedent = true;
              }
              if (((current === "->" || current === "=>") && stream.eol())
                  || style === "indent") {
                indent(stream, state);
              }
              var delimiter_index = "[({".indexOf(current);
              if (delimiter_index !== -1) {
                indent(stream, state, "])}".slice(delimiter_index, delimiter_index+1));
              }
              if (indentKeywords.exec(current)){
                indent(stream, state);
              }
              if (current == "then"){
                dedent(stream, state);
              }
          
          
              if (style === "dedent") {
                if (dedent(stream, state)) {
                  return ERRORCLASS;
                }
              }
              delimiter_index = "])}".indexOf(current);
              if (delimiter_index !== -1) {
                while (state.scope.type == "coffee" && state.scope.prev)
                  state.scope = state.scope.prev;
                if (state.scope.type == current)
                  state.scope = state.scope.prev;
              }
              if (state.dedent && stream.eol()) {
                if (state.scope.type == "coffee" && state.scope.prev)
                  state.scope = state.scope.prev;
                state.dedent = false;
              }
          
              return style;
            }
          
            var external = {
              startState: function(basecolumn) {
                return {
                  tokenize: tokenBase,
                  scope: {offset:basecolumn || 0, type:"coffee", prev: null, align: false},
                  prop: false,
                  dedent: 0
                };
              },
          
              token: function(stream, state) {
                var fillAlign = state.scope.align === null && state.scope;
                if (fillAlign && stream.sol()) fillAlign.align = false;
          
                var style = tokenLexer(stream, state);
                if (style && style != "comment") {
                  if (fillAlign) fillAlign.align = true;
                  state.prop = style == "punctuation" && stream.current() == "."
                }
          
                return style;
              },
          
              indent: function(state, text) {
                if (state.tokenize != tokenBase) return 0;
                var scope = state.scope;
                var closer = text && "])}".indexOf(text.charAt(0)) > -1;
                if (closer) while (scope.type == "coffee" && scope.prev) scope = scope.prev;
                var closes = closer && scope.type === text.charAt(0);
                if (scope.align)
                  return scope.alignOffset - (closes ? 1 : 0);
                else
                  return (closes ? scope.prev : scope).offset;
              },
          
              lineComment: "#",
              fold: "indent"
            };
            return external;
          });
          
          CodeMirror.defineMIME("text/x-coffeescript", "coffeescript");
          CodeMirror.defineMIME("text/coffeescript", "coffeescript");
          
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: CoffeeScript mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="coffeescript.js"></script>
          <style>.CodeMirror {border-top: 1px solid silver; border-bottom: 1px solid silver;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">CoffeeScript</a>
            </ul>
          </div>
          
          <article>
          <h2>CoffeeScript mode</h2>
          <form><textarea id="code" name="code">
          # CoffeeScript mode for CodeMirror
          # Copyright (c) 2011 Jeff Pickhardt, released under
          # the MIT License.
          #
          # Modified from the Python CodeMirror mode, which also is 
          # under the MIT License Copyright (c) 2010 Timothy Farrell.
          #
          # The following script, Underscore.coffee, is used to 
          # demonstrate CoffeeScript mode for CodeMirror.
          #
          # To download CoffeeScript mode for CodeMirror, go to:
          # https://github.com/pickhardt/coffeescript-codemirror-mode
          
          # **Underscore.coffee
          # (c) 2011 Jeremy Ashkenas, DocumentCloud Inc.**
          # Underscore is freely distributable under the terms of the
          # [MIT license](http://en.wikipedia.org/wiki/MIT_License).
          # Portions of Underscore are inspired by or borrowed from
          # [Prototype.js](http://prototypejs.org/api), Oliver Steele's
          # [Functional](http://osteele.com), and John Resig's
          # [Micro-Templating](http://ejohn.org).
          # For all details and documentation:
          # http://documentcloud.github.com/underscore/
          
          
          # Baseline setup
          # --------------
          
          # Establish the root object, `window` in the browser, or `global` on the server.
          root = this
          
          
          # Save the previous value of the `_` variable.
          previousUnderscore = root._
          
          ### Multiline
              comment
          ###
          
          # Establish the object that gets thrown to break out of a loop iteration.
          # `StopIteration` is SOP on Mozilla.
          breaker = if typeof(StopIteration) is 'undefined' then '__break__' else StopIteration
          
          
          #### Docco style single line comment (title)
          
          
          # Helper function to escape **RegExp** contents, because JS doesn't have one.
          escapeRegExp = (string) -> string.replace(/([.*+?^${}()|[\]\/\\])/g, '\\$1')
          
          
          # Save bytes in the minified (but not gzipped) version:
          ArrayProto = Array.prototype
          ObjProto = Object.prototype
          
          
          # Create quick reference variables for speed access to core prototypes.
          slice = ArrayProto.slice
          unshift = ArrayProto.unshift
          toString = ObjProto.toString
          hasOwnProperty = ObjProto.hasOwnProperty
          propertyIsEnumerable = ObjProto.propertyIsEnumerable
          
          
          # All **ECMA5** native implementations we hope to use are declared here.
          nativeForEach = ArrayProto.forEach
          nativeMap = ArrayProto.map
          nativeReduce = ArrayProto.reduce
          nativeReduceRight = ArrayProto.reduceRight
          nativeFilter = ArrayProto.filter
          nativeEvery = ArrayProto.every
          nativeSome = ArrayProto.some
          nativeIndexOf = ArrayProto.indexOf
          nativeLastIndexOf = ArrayProto.lastIndexOf
          nativeIsArray = Array.isArray
          nativeKeys = Object.keys
          
          
          # Create a safe reference to the Underscore object for use below.
          _ = (obj) -> new wrapper(obj)
          
          
          # Export the Underscore object for **CommonJS**.
          if typeof(exports) != 'undefined' then exports._ = _
          
          
          # Export Underscore to global scope.
          root._ = _
          
          
          # Current version.
          _.VERSION = '1.1.0'
          
          
          # Collection Functions
          # --------------------
          
          # The cornerstone, an **each** implementation.
          # Handles objects implementing **forEach**, arrays, and raw objects.
          _.each = (obj, iterator, context) ->
            try
              if nativeForEach and obj.forEach is nativeForEach
                obj.forEach iterator, context
              else if _.isNumber obj.length
                iterator.call context, obj[i], i, obj for i in [0...obj.length]
              else
                iterator.call context, val, key, obj for own key, val of obj
            catch e
              throw e if e isnt breaker
            obj
          
          
          # Return the results of applying the iterator to each element. Use JavaScript
          # 1.6's version of **map**, if possible.
          _.map = (obj, iterator, context) ->
            return obj.map(iterator, context) if nativeMap and obj.map is nativeMap
            results = []
            _.each obj, (value, index, list) ->
              results.push iterator.call context, value, index, list
            results
          
          
          # **Reduce** builds up a single result from a list of values. Also known as
          # **inject**, or **foldl**. Uses JavaScript 1.8's version of **reduce**, if possible.
          _.reduce = (obj, iterator, memo, context) ->
            if nativeReduce and obj.reduce is nativeReduce
              iterator = _.bind iterator, context if context
              return obj.reduce iterator, memo
            _.each obj, (value, index, list) ->
              memo = iterator.call context, memo, value, index, list
            memo
          
          
          # The right-associative version of **reduce**, also known as **foldr**. Uses
          # JavaScript 1.8's version of **reduceRight**, if available.
          _.reduceRight = (obj, iterator, memo, context) ->
            if nativeReduceRight and obj.reduceRight is nativeReduceRight
              iterator = _.bind iterator, context if context
              return obj.reduceRight iterator, memo
            reversed = _.clone(_.toArray(obj)).reverse()
            _.reduce reversed, iterator, memo, context
          
          
          # Return the first value which passes a truth test.
          _.detect = (obj, iterator, context) ->
            result = null
            _.each obj, (value, index, list) ->
              if iterator.call context, value, index, list
                result = value
                _.breakLoop()
            result
          
          
          # Return all the elements that pass a truth test. Use JavaScript 1.6's
          # **filter**, if it exists.
          _.filter = (obj, iterator, context) ->
            return obj.filter iterator, context if nativeFilter and obj.filter is nativeFilter
            results = []
            _.each obj, (value, index, list) ->
              results.push value if iterator.call context, value, index, list
            results
          
          
          # Return all the elements for which a truth test fails.
          _.reject = (obj, iterator, context) ->
            results = []
            _.each obj, (value, index, list) ->
              results.push value if not iterator.call context, value, index, list
            results
          
          
          # Determine whether all of the elements match a truth test. Delegate to
          # JavaScript 1.6's **every**, if it is present.
          _.every = (obj, iterator, context) ->
            iterator ||= _.identity
            return obj.every iterator, context if nativeEvery and obj.every is nativeEvery
            result = true
            _.each obj, (value, index, list) ->
              _.breakLoop() unless (result = result and iterator.call(context, value, index, list))
            result
          
          
          # Determine if at least one element in the object matches a truth test. Use
          # JavaScript 1.6's **some**, if it exists.
          _.some = (obj, iterator, context) ->
            iterator ||= _.identity
            return obj.some iterator, context if nativeSome and obj.some is nativeSome
            result = false
            _.each obj, (value, index, list) ->
              _.breakLoop() if (result = iterator.call(context, value, index, list))
            result
          
          
          # Determine if a given value is included in the array or object,
          # based on `===`.
          _.include = (obj, target) ->
            return _.indexOf(obj, target) isnt -1 if nativeIndexOf and obj.indexOf is nativeIndexOf
            return true for own key, val of obj when val is target
            false
          
          
          # Invoke a method with arguments on every item in a collection.
          _.invoke = (obj, method) ->
            args = _.rest arguments, 2
            (if method then val[method] else val).apply(val, args) for val in obj
          
          
          # Convenience version of a common use case of **map**: fetching a property.
          _.pluck = (obj, key) ->
            _.map(obj, (val) -> val[key])
          
          
          # Return the maximum item or (item-based computation).
          _.max = (obj, iterator, context) ->
            return Math.max.apply(Math, obj) if not iterator and _.isArray(obj)
            result = computed: -Infinity
            _.each obj, (value, index, list) ->
              computed = if iterator then iterator.call(context, value, index, list) else value
              computed >= result.computed and (result = {value: value, computed: computed})
            result.value
          
          
          # Return the minimum element (or element-based computation).
          _.min = (obj, iterator, context) ->
            return Math.min.apply(Math, obj) if not iterator and _.isArray(obj)
            result = computed: Infinity
            _.each obj, (value, index, list) ->
              computed = if iterator then iterator.call(context, value, index, list) else value
              computed < result.computed and (result = {value: value, computed: computed})
            result.value
          
          
          # Sort the object's values by a criterion produced by an iterator.
          _.sortBy = (obj, iterator, context) ->
            _.pluck(((_.map obj, (value, index, list) ->
              {value: value, criteria: iterator.call(context, value, index, list)}
            ).sort((left, right) ->
              a = left.criteria; b = right.criteria
              if a < b then -1 else if a > b then 1 else 0
            )), 'value')
          
          
          # Use a comparator function to figure out at what index an object should
          # be inserted so as to maintain order. Uses binary search.
          _.sortedIndex = (array, obj, iterator) ->
            iterator ||= _.identity
            low = 0
            high = array.length
            while low < high
              mid = (low + high) >> 1
              if iterator(array[mid]) < iterator(obj) then low = mid + 1 else high = mid
            low
          
          
          # Convert anything iterable into a real, live array.
          _.toArray = (iterable) ->
            return [] if (!iterable)
            return iterable.toArray() if (iterable.toArray)
            return iterable if (_.isArray(iterable))
            return slice.call(iterable) if (_.isArguments(iterable))
            _.values(iterable)
          
          
          # Return the number of elements in an object.
          _.size = (obj) -> _.toArray(obj).length
          
          
          # Array Functions
          # ---------------
          
          # Get the first element of an array. Passing `n` will return the first N
          # values in the array. Aliased as **head**. The `guard` check allows it to work
          # with **map**.
          _.first = (array, n, guard) ->
            if n and not guard then slice.call(array, 0, n) else array[0]
          
          
          # Returns everything but the first entry of the array. Aliased as **tail**.
          # Especially useful on the arguments object. Passing an `index` will return
          # the rest of the values in the array from that index onward. The `guard`
          # check allows it to work with **map**.
          _.rest = (array, index, guard) ->
            slice.call(array, if _.isUndefined(index) or guard then 1 else index)
          
          
          # Get the last element of an array.
          _.last = (array) -> array[array.length - 1]
          
          
          # Trim out all falsy values from an array.
          _.compact = (array) -> item for item in array when item
          
          
          # Return a completely flattened version of an array.
          _.flatten = (array) ->
            _.reduce array, (memo, value) ->
              return memo.concat(_.flatten(value)) if _.isArray value
              memo.push value
              memo
            , []
          
          
          # Return a version of the array that does not contain the specified value(s).
          _.without = (array) ->
            values = _.rest arguments
            val for val in _.toArray(array) when not _.include values, val
          
          
          # Produce a duplicate-free version of the array. If the array has already
          # been sorted, you have the option of using a faster algorithm.
          _.uniq = (array, isSorted) ->
            memo = []
            for el, i in _.toArray array
              memo.push el if i is 0 || (if isSorted is true then _.last(memo) isnt el else not _.include(memo, el))
            memo
          
          
          # Produce an array that contains every item shared between all the
          # passed-in arrays.
          _.intersect = (array) ->
            rest = _.rest arguments
            _.select _.uniq(array), (item) ->
              _.all rest, (other) ->
                _.indexOf(other, item) >= 0
          
          
          # Zip together multiple lists into a single array -- elements that share
          # an index go together.
          _.zip = ->
            length = _.max _.pluck arguments, 'length'
            results = new Array length
            for i in [0...length]
              results[i] = _.pluck arguments, String i
            results
          
          
          # If the browser doesn't supply us with **indexOf** (I'm looking at you, MSIE),
          # we need this function. Return the position of the first occurrence of an
          # item in an array, or -1 if the item is not included in the array.
          _.indexOf = (array, item) ->
            return array.indexOf item if nativeIndexOf and array.indexOf is nativeIndexOf
            i = 0; l = array.length
            while l - i
              if array[i] is item then return i else i++
            -1
          
          
          # Provide JavaScript 1.6's **lastIndexOf**, delegating to the native function,
          # if possible.
          _.lastIndexOf = (array, item) ->
            return array.lastIndexOf(item) if nativeLastIndexOf and array.lastIndexOf is nativeLastIndexOf
            i = array.length
            while i
              if array[i] is item then return i else i--
            -1
          
          
          # Generate an integer Array containing an arithmetic progression. A port of
          # [the native Python **range** function](http://docs.python.org/library/functions.html#range).
          _.range = (start, stop, step) ->
            a = arguments
            solo = a.length <= 1
            i = start = if solo then 0 else a[0]
            stop = if solo then a[0] else a[1]
            step = a[2] or 1
            len = Math.ceil((stop - start) / step)
            return [] if len <= 0
            range = new Array len
            idx = 0
            loop
              return range if (if step > 0 then i - stop else stop - i) >= 0
              range[idx] = i
              idx++
              i+= step
          
          
          # Function Functions
          # ------------------
          
          # Create a function bound to a given object (assigning `this`, and arguments,
          # optionally). Binding with arguments is also known as **curry**.
          _.bind = (func, obj) ->
            args = _.rest arguments, 2
            -> func.apply obj or root, args.concat arguments
          
          
          # Bind all of an object's methods to that object. Useful for ensuring that
          # all callbacks defined on an object belong to it.
          _.bindAll = (obj) ->
            funcs = if arguments.length > 1 then _.rest(arguments) else _.functions(obj)
            _.each funcs, (f) -> obj[f] = _.bind obj[f], obj
            obj
          
          
          # Delays a function for the given number of milliseconds, and then calls
          # it with the arguments supplied.
          _.delay = (func, wait) ->
            args = _.rest arguments, 2
            setTimeout((-> func.apply(func, args)), wait)
          
          
          # Memoize an expensive function by storing its results.
          _.memoize = (func, hasher) ->
            memo = {}
            hasher or= _.identity
            ->
              key = hasher.apply this, arguments
              return memo[key] if key of memo
              memo[key] = func.apply this, arguments
          
          
          # Defers a function, scheduling it to run after the current call stack has
          # cleared.
          _.defer = (func) ->
            _.delay.apply _, [func, 1].concat _.rest arguments
          
          
          # Returns the first function passed as an argument to the second,
          # allowing you to adjust arguments, run code before and after, and
          # conditionally execute the original function.
          _.wrap = (func, wrapper) ->
            -> wrapper.apply wrapper, [func].concat arguments
          
          
          # Returns a function that is the composition of a list of functions, each
          # consuming the return value of the function that follows.
          _.compose = ->
            funcs = arguments
            ->
              args = arguments
              for i in [funcs.length - 1..0] by -1
                args = [funcs[i].apply(this, args)]
              args[0]
          
          
          # Object Functions
          # ----------------
          
          # Retrieve the names of an object's properties.
          _.keys = nativeKeys or (obj) ->
            return _.range 0, obj.length if _.isArray(obj)
            key for key, val of obj
          
          
          # Retrieve the values of an object's properties.
          _.values = (obj) ->
            _.map obj, _.identity
          
          
          # Return a sorted list of the function names available in Underscore.
          _.functions = (obj) ->
            _.filter(_.keys(obj), (key) -> _.isFunction(obj[key])).sort()
          
          
          # Extend a given object with all of the properties in a source object.
          _.extend = (obj) ->
            for source in _.rest(arguments)
              obj[key] = val for key, val of source
            obj
          
          
          # Create a (shallow-cloned) duplicate of an object.
          _.clone = (obj) ->
            return obj.slice 0 if _.isArray obj
            _.extend {}, obj
          
          
          # Invokes interceptor with the obj, and then returns obj.
          # The primary purpose of this method is to "tap into" a method chain,
          # in order to perform operations on intermediate results within
           the chain.
          _.tap = (obj, interceptor) ->
            interceptor obj
            obj
          
          
          # Perform a deep comparison to check if two objects are equal.
          _.isEqual = (a, b) ->
            # Check object identity.
            return true if a is b
            # Different types?
            atype = typeof(a); btype = typeof(b)
            return false if atype isnt btype
            # Basic equality test (watch out for coercions).
            return true if `a == b`
            # One is falsy and the other truthy.
            return false if (!a and b) or (a and !b)
            # One of them implements an `isEqual()`?
            return a.isEqual(b) if a.isEqual
            # Check dates' integer values.
            return a.getTime() is b.getTime() if _.isDate(a) and _.isDate(b)
            # Both are NaN?
            return false if _.isNaN(a) and _.isNaN(b)
            # Compare regular expressions.
            if _.isRegExp(a) and _.isRegExp(b)
              return a.source is b.source and
                     a.global is b.global and
                     a.ignoreCase is b.ignoreCase and
                     a.multiline is b.multiline
            # If a is not an object by this point, we can't handle it.
            return false if atype isnt 'object'
            # Check for different array lengths before comparing contents.
            return false if a.length and (a.length isnt b.length)
            # Nothing else worked, deep compare the contents.
            aKeys = _.keys(a); bKeys = _.keys(b)
            # Different object sizes?
            return false if aKeys.length isnt bKeys.length
            # Recursive comparison of contents.
            return false for key, val of a when !(key of b) or !_.isEqual(val, b[key])
            true
          
          
          # Is a given array or object empty?
          _.isEmpty = (obj) ->
            return obj.length is 0 if _.isArray(obj) or _.isString(obj)
            return false for own key of obj
            true
          
          
          # Is a given value a DOM element?
          _.isElement = (obj) -> obj and obj.nodeType is 1
          
          
          # Is a given value an array?
          _.isArray = nativeIsArray or (obj) -> !!(obj and obj.concat and obj.unshift and not obj.callee)
          
          
          # Is a given variable an arguments object?
          _.isArguments = (obj) -> obj and obj.callee
          
          
          # Is the given value a function?
          _.isFunction = (obj) -> !!(obj and obj.constructor and obj.call and obj.apply)
          
          
          # Is the given value a string?
          _.isString = (obj) -> !!(obj is '' or (obj and obj.charCodeAt and obj.substr))
          
          
          # Is a given value a number?
          _.isNumber = (obj) -> (obj is +obj) or toString.call(obj) is '[object Number]'
          
          
          # Is a given value a boolean?
          _.isBoolean = (obj) -> obj is true or obj is false
          
          
          # Is a given value a Date?
          _.isDate = (obj) -> !!(obj and obj.getTimezoneOffset and obj.setUTCFullYear)
          
          
          # Is the given value a regular expression?
          _.isRegExp = (obj) -> !!(obj and obj.exec and (obj.ignoreCase or obj.ignoreCase is false))
          
          
          # Is the given value NaN -- this one is interesting. `NaN != NaN`, and
          # `isNaN(undefined) == true`, so we make sure it's a number first.
          _.isNaN = (obj) -> _.isNumber(obj) and window.isNaN(obj)
          
          
          # Is a given value equal to null?
          _.isNull = (obj) -> obj is null
          
          
          # Is a given variable undefined?
          _.isUndefined = (obj) -> typeof obj is 'undefined'
          
          
          # Utility Functions
          # -----------------
          
          # Run Underscore.js in noConflict mode, returning the `_` variable to its
          # previous owner. Returns a reference to the Underscore object.
          _.noConflict = ->
            root._ = previousUnderscore
            this
          
          
          # Keep the identity function around for default iterators.
          _.identity = (value) -> value
          
          
          # Run a function `n` times.
          _.times = (n, iterator, context) ->
            iterator.call context, i for i in [0...n]
          
          
          # Break out of the middle of an iteration.
          _.breakLoop = -> throw breaker
          
          
          # Add your own custom functions to the Underscore object, ensuring that
          # they're correctly added to the OOP wrapper as well.
          _.mixin = (obj) ->
            for name in _.functions(obj)
              addToWrapper name, _[name] = obj[name]
          
          
          # Generate a unique integer id (unique within the entire client session).
          # Useful for temporary DOM ids.
          idCounter = 0
          _.uniqueId = (prefix) ->
            (prefix or '') + idCounter++
          
          
          # By default, Underscore uses **ERB**-style template delimiters, change the
          # following template settings to use alternative delimiters.
          _.templateSettings = {
            start: '<%'
            end: '%>'
            interpolate: /<%=(.+?)%>/g
          }
          
          
          # JavaScript templating a-la **ERB**, pilfered from John Resig's
          # *Secrets of the JavaScript Ninja*, page 83.
          # Single-quote fix from Rick Strahl.
          # With alterations for arbitrary delimiters, and to preserve whitespace.
          _.template = (str, data) ->
            c = _.templateSettings
            endMatch = new RegExp("'(?=[^"+c.end.substr(0, 1)+"]*"+escapeRegExp(c.end)+")","g")
            fn = new Function 'obj',
              'var p=[],print=function(){p.push.apply(p,arguments);};' +
              'with(obj||{}){p.push(\'' +
              str.replace(/\r/g, '\\r')
                 .replace(/\n/g, '\\n')
                 .replace(/\t/g, '\\t')
                 .replace(endMatch,"���")
                 .split("'").join("\\'")
                 .split("���").join("'")
                 .replace(c.interpolate, "',$1,'")
                 .split(c.start).join("');")
                 .split(c.end).join("p.push('") +
                 "');}return p.join('');"
            if data then fn(data) else fn
          
          
          # Aliases
          # -------
          
          _.forEach = _.each
          _.foldl = _.inject = _.reduce
          _.foldr = _.reduceRight
          _.select = _.filter
          _.all = _.every
          _.any = _.some
          _.contains = _.include
          _.head = _.first
          _.tail = _.rest
          _.methods = _.functions
          
          
          # Setup the OOP Wrapper
          # ---------------------
          
          # If Underscore is called as a function, it returns a wrapped object that
          # can be used OO-style. This wrapper holds altered versions of all the
          # underscore functions. Wrapped objects may be chained.
          wrapper = (obj) ->
            this._wrapped = obj
            this
          
          
          # Helper function to continue chaining intermediate results.
          result = (obj, chain) ->
            if chain then _(obj).chain() else obj
          
          
          # A method to easily add functions to the OOP wrapper.
          addToWrapper = (name, func) ->
            wrapper.prototype[name] = ->
              args = _.toArray arguments
              unshift.call args, this._wrapped
              result func.apply(_, args), this._chain
          
          
          # Add all ofthe Underscore functions to the wrapper object.
          _.mixin _
          
          
          # Add all mutator Array functions to the wrapper.
          _.each ['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], (name) ->
            method = Array.prototype[name]
            wrapper.prototype[name] = ->
              method.apply(this._wrapped, arguments)
              result(this._wrapped, this._chain)
          
          
          # Add all accessor Array functions to the wrapper.
          _.each ['concat', 'join', 'slice'], (name) ->
            method = Array.prototype[name]
            wrapper.prototype[name] = ->
              result(method.apply(this._wrapped, arguments), this._chain)
          
          
          # Start chaining a wrapped Underscore object.
          wrapper::chain = ->
            this._chain = true
            this
          
          
          # Extracts the result from a wrapped and chained object.
          wrapper::value = -> this._wrapped
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {});
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-coffeescript</code>.</p>
          
              <p>The CoffeeScript mode was written by Jeff Pickhardt.</p>
          
            </article>
          
      • commonlisp
        • commonlisp.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("commonlisp", function (config) {
            var specialForm = /^(block|let*|return-from|catch|load-time-value|setq|eval-when|locally|symbol-macrolet|flet|macrolet|tagbody|function|multiple-value-call|the|go|multiple-value-prog1|throw|if|progn|unwind-protect|labels|progv|let|quote)$/;
            var assumeBody = /^with|^def|^do|^prog|case$|^cond$|bind$|when$|unless$/;
            var numLiteral = /^(?:[+\-]?(?:\d+|\d*\.\d+)(?:[efd][+\-]?\d+)?|[+\-]?\d+(?:\/[+\-]?\d+)?|#b[+\-]?[01]+|#o[+\-]?[0-7]+|#x[+\-]?[\da-f]+)/;
            var symbol = /[^\s'`,@()\[\]";]/;
            var type;
          
            function readSym(stream) {
              var ch;
              while (ch = stream.next()) {
                if (ch == "\\") stream.next();
                else if (!symbol.test(ch)) { stream.backUp(1); break; }
              }
              return stream.current();
            }
          
            function base(stream, state) {
              if (stream.eatSpace()) {type = "ws"; return null;}
              if (stream.match(numLiteral)) return "number";
              var ch = stream.next();
              if (ch == "\\") ch = stream.next();
          
              if (ch == '"') return (state.tokenize = inString)(stream, state);
              else if (ch == "(") { type = "open"; return "bracket"; }
              else if (ch == ")" || ch == "]") { type = "close"; return "bracket"; }
              else if (ch == ";") { stream.skipToEnd(); type = "ws"; return "comment"; }
              else if (/['`,@]/.test(ch)) return null;
              else if (ch == "|") {
                if (stream.skipTo("|")) { stream.next(); return "symbol"; }
                else { stream.skipToEnd(); return "error"; }
              } else if (ch == "#") {
                var ch = stream.next();
                if (ch == "[") { type = "open"; return "bracket"; }
                else if (/[+\-=\.']/.test(ch)) return null;
                else if (/\d/.test(ch) && stream.match(/^\d*#/)) return null;
                else if (ch == "|") return (state.tokenize = inComment)(stream, state);
                else if (ch == ":") { readSym(stream); return "meta"; }
                else return "error";
              } else {
                var name = readSym(stream);
                if (name == ".") return null;
                type = "symbol";
                if (name == "nil" || name == "t" || name.charAt(0) == ":") return "atom";
                if (state.lastType == "open" && (specialForm.test(name) || assumeBody.test(name))) return "keyword";
                if (name.charAt(0) == "&") return "variable-2";
                return "variable";
              }
            }
          
            function inString(stream, state) {
              var escaped = false, next;
              while (next = stream.next()) {
                if (next == '"' && !escaped) { state.tokenize = base; break; }
                escaped = !escaped && next == "\\";
              }
              return "string";
            }
          
            function inComment(stream, state) {
              var next, last;
              while (next = stream.next()) {
                if (next == "#" && last == "|") { state.tokenize = base; break; }
                last = next;
              }
              type = "ws";
              return "comment";
            }
          
            return {
              startState: function () {
                return {ctx: {prev: null, start: 0, indentTo: 0}, lastType: null, tokenize: base};
              },
          
              token: function (stream, state) {
                if (stream.sol() && typeof state.ctx.indentTo != "number")
                  state.ctx.indentTo = state.ctx.start + 1;
          
                type = null;
                var style = state.tokenize(stream, state);
                if (type != "ws") {
                  if (state.ctx.indentTo == null) {
                    if (type == "symbol" && assumeBody.test(stream.current()))
                      state.ctx.indentTo = state.ctx.start + config.indentUnit;
                    else
                      state.ctx.indentTo = "next";
                  } else if (state.ctx.indentTo == "next") {
                    state.ctx.indentTo = stream.column();
                  }
                  state.lastType = type;
                }
                if (type == "open") state.ctx = {prev: state.ctx, start: stream.column(), indentTo: null};
                else if (type == "close") state.ctx = state.ctx.prev || state.ctx;
                return style;
              },
          
              indent: function (state, _textAfter) {
                var i = state.ctx.indentTo;
                return typeof i == "number" ? i : state.ctx.start + 1;
              },
          
              closeBrackets: {pairs: "()[]{}\"\""},
              lineComment: ";;",
              blockCommentStart: "#|",
              blockCommentEnd: "|#"
            };
          });
          
          CodeMirror.defineMIME("text/x-common-lisp", "commonlisp");
          
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Common Lisp mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="commonlisp.js"></script>
          <style>.CodeMirror {background: #f8f8f8;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Common Lisp</a>
            </ul>
          </div>
          
          <article>
          <h2>Common Lisp mode</h2>
          <form><textarea id="code" name="code">(in-package :cl-postgres)
          
          ;; These are used to synthesize reader and writer names for integer
          ;; reading/writing functions when the amount of bytes and the
          ;; signedness is known. Both the macro that creates the functions and
          ;; some macros that use them create names this way.
          (eval-when (:compile-toplevel :load-toplevel :execute)
            (defun integer-reader-name (bytes signed)
              (intern (with-standard-io-syntax
                        (format nil "~a~a~a~a" '#:read- (if signed "" '#:u) '#:int bytes))))
            (defun integer-writer-name (bytes signed)
              (intern (with-standard-io-syntax
                        (format nil "~a~a~a~a" '#:write- (if signed "" '#:u) '#:int bytes)))))
          
          (defmacro integer-reader (bytes)
            "Create a function to read integers from a binary stream."
            (let ((bits (* bytes 8)))
              (labels ((return-form (signed)
                         (if signed
                             `(if (logbitp ,(1- bits) result)
                                  (dpb result (byte ,(1- bits) 0) -1)
                                  result)
                             `result))
                       (generate-reader (signed)
                         `(defun ,(integer-reader-name bytes signed) (socket)
                            (declare (type stream socket)
                                     #.*optimize*)
                            ,(if (= bytes 1)
                                 `(let ((result (the (unsigned-byte 8) (read-byte socket))))
                                    (declare (type (unsigned-byte 8) result))
                                    ,(return-form signed))
                                 `(let ((result 0))
                                    (declare (type (unsigned-byte ,bits) result))
                                    ,@(loop :for byte :from (1- bytes) :downto 0
                                             :collect `(setf (ldb (byte 8 ,(* 8 byte)) result)
                                                             (the (unsigned-byte 8) (read-byte socket))))
                                    ,(return-form signed))))))
                `(progn
          ;; This causes weird errors on SBCL in some circumstances. Disabled for now.
          ;;         (declaim (inline ,(integer-reader-name bytes t)
          ;;                          ,(integer-reader-name bytes nil)))
                   (declaim (ftype (function (t) (signed-byte ,bits))
                                   ,(integer-reader-name bytes t)))
                   ,(generate-reader t)
                   (declaim (ftype (function (t) (unsigned-byte ,bits))
                                   ,(integer-reader-name bytes nil)))
                   ,(generate-reader nil)))))
          
          (defmacro integer-writer (bytes)
            "Create a function to write integers to a binary stream."
            (let ((bits (* 8 bytes)))
              `(progn
                (declaim (inline ,(integer-writer-name bytes t)
                                 ,(integer-writer-name bytes nil)))
                (defun ,(integer-writer-name bytes nil) (socket value)
                  (declare (type stream socket)
                           (type (unsigned-byte ,bits) value)
                           #.*optimize*)
                  ,@(if (= bytes 1)
                        `((write-byte value socket))
                        (loop :for byte :from (1- bytes) :downto 0
                              :collect `(write-byte (ldb (byte 8 ,(* byte 8)) value)
                                         socket)))
                  (values))
                (defun ,(integer-writer-name bytes t) (socket value)
                  (declare (type stream socket)
                           (type (signed-byte ,bits) value)
                           #.*optimize*)
                  ,@(if (= bytes 1)
                        `((write-byte (ldb (byte 8 0) value) socket))
                        (loop :for byte :from (1- bytes) :downto 0
                              :collect `(write-byte (ldb (byte 8 ,(* byte 8)) value)
                                         socket)))
                  (values)))))
          
          ;; All the instances of the above that we need.
          
          (integer-reader 1)
          (integer-reader 2)
          (integer-reader 4)
          (integer-reader 8)
          
          (integer-writer 1)
          (integer-writer 2)
          (integer-writer 4)
          
          (defun write-bytes (socket bytes)
            "Write a byte-array to a stream."
            (declare (type stream socket)
                     (type (simple-array (unsigned-byte 8)) bytes)
                     #.*optimize*)
            (write-sequence bytes socket))
          
          (defun write-str (socket string)
            "Write a null-terminated string to a stream \(encoding it when UTF-8
          support is enabled.)."
            (declare (type stream socket)
                     (type string string)
                     #.*optimize*)
            (enc-write-string string socket)
            (write-uint1 socket 0))
          
          (declaim (ftype (function (t unsigned-byte)
                                    (simple-array (unsigned-byte 8) (*)))
                          read-bytes))
          (defun read-bytes (socket length)
            "Read a byte array of the given length from a stream."
            (declare (type stream socket)
                     (type fixnum length)
                     #.*optimize*)
            (let ((result (make-array length :element-type '(unsigned-byte 8))))
              (read-sequence result socket)
              result))
          
          (declaim (ftype (function (t) string) read-str))
          (defun read-str (socket)
            "Read a null-terminated string from a stream. Takes care of encoding
          when UTF-8 support is enabled."
            (declare (type stream socket)
                     #.*optimize*)
            (enc-read-string socket :null-terminated t))
          
          (defun skip-bytes (socket length)
            "Skip a given number of bytes in a binary stream."
            (declare (type stream socket)
                     (type (unsigned-byte 32) length)
                     #.*optimize*)
            (dotimes (i length)
              (read-byte socket)))
          
          (defun skip-str (socket)
            "Skip a null-terminated string."
            (declare (type stream socket)
                     #.*optimize*)
            (loop :for char :of-type fixnum = (read-byte socket)
                  :until (zerop char)))
          
          (defun ensure-socket-is-closed (socket &amp;key abort)
            (when (open-stream-p socket)
              (handler-case
                  (close socket :abort abort)
                (error (error)
                  (warn "Ignoring the error which happened while trying to close PostgreSQL socket: ~A" error)))))
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {lineNumbers: true});
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-common-lisp</code>.</p>
          
            </article>
          
      • css
        • css.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("css", function(config, parserConfig) {
            var provided = parserConfig;
            if (!parserConfig.propertyKeywords) parserConfig = CodeMirror.resolveMode("text/css");
            parserConfig.inline = provided.inline;
          
            var indentUnit = config.indentUnit,
                tokenHooks = parserConfig.tokenHooks,
                documentTypes = parserConfig.documentTypes || {},
                mediaTypes = parserConfig.mediaTypes || {},
                mediaFeatures = parserConfig.mediaFeatures || {},
                mediaValueKeywords = parserConfig.mediaValueKeywords || {},
                propertyKeywords = parserConfig.propertyKeywords || {},
                nonStandardPropertyKeywords = parserConfig.nonStandardPropertyKeywords || {},
                fontProperties = parserConfig.fontProperties || {},
                counterDescriptors = parserConfig.counterDescriptors || {},
                colorKeywords = parserConfig.colorKeywords || {},
                valueKeywords = parserConfig.valueKeywords || {},
                allowNested = parserConfig.allowNested,
                supportsAtComponent = parserConfig.supportsAtComponent === true;
          
            var type, override;
            function ret(style, tp) { type = tp; return style; }
          
            // Tokenizers
          
            function tokenBase(stream, state) {
              var ch = stream.next();
              if (tokenHooks[ch]) {
                var result = tokenHooks[ch](stream, state);
                if (result !== false) return result;
              }
              if (ch == "@") {
                stream.eatWhile(/[\w\\\-]/);
                return ret("def", stream.current());
              } else if (ch == "=" || (ch == "~" || ch == "|") && stream.eat("=")) {
                return ret(null, "compare");
              } else if (ch == "\"" || ch == "'") {
                state.tokenize = tokenString(ch);
                return state.tokenize(stream, state);
              } else if (ch == "#") {
                stream.eatWhile(/[\w\\\-]/);
                return ret("atom", "hash");
              } else if (ch == "!") {
                stream.match(/^\s*\w*/);
                return ret("keyword", "important");
              } else if (/\d/.test(ch) || ch == "." && stream.eat(/\d/)) {
                stream.eatWhile(/[\w.%]/);
                return ret("number", "unit");
              } else if (ch === "-") {
                if (/[\d.]/.test(stream.peek())) {
                  stream.eatWhile(/[\w.%]/);
                  return ret("number", "unit");
                } else if (stream.match(/^-[\w\\\-]+/)) {
                  stream.eatWhile(/[\w\\\-]/);
                  if (stream.match(/^\s*:/, false))
                    return ret("variable-2", "variable-definition");
                  return ret("variable-2", "variable");
                } else if (stream.match(/^\w+-/)) {
                  return ret("meta", "meta");
                }
              } else if (/[,+>*\/]/.test(ch)) {
                return ret(null, "select-op");
              } else if (ch == "." && stream.match(/^-?[_a-z][_a-z0-9-]*/i)) {
                return ret("qualifier", "qualifier");
              } else if (/[:;{}\[\]\(\)]/.test(ch)) {
                return ret(null, ch);
              } else if ((ch == "u" && stream.match(/rl(-prefix)?\(/)) ||
                         (ch == "d" && stream.match("omain(")) ||
                         (ch == "r" && stream.match("egexp("))) {
                stream.backUp(1);
                state.tokenize = tokenParenthesized;
                return ret("property", "word");
              } else if (/[\w\\\-]/.test(ch)) {
                stream.eatWhile(/[\w\\\-]/);
                return ret("property", "word");
              } else {
                return ret(null, null);
              }
            }
          
            function tokenString(quote) {
              return function(stream, state) {
                var escaped = false, ch;
                while ((ch = stream.next()) != null) {
                  if (ch == quote && !escaped) {
                    if (quote == ")") stream.backUp(1);
                    break;
                  }
                  escaped = !escaped && ch == "\\";
                }
                if (ch == quote || !escaped && quote != ")") state.tokenize = null;
                return ret("string", "string");
              };
            }
          
            function tokenParenthesized(stream, state) {
              stream.next(); // Must be '('
              if (!stream.match(/\s*[\"\')]/, false))
                state.tokenize = tokenString(")");
              else
                state.tokenize = null;
              return ret(null, "(");
            }
          
            // Context management
          
            function Context(type, indent, prev) {
              this.type = type;
              this.indent = indent;
              this.prev = prev;
            }
          
            function pushContext(state, stream, type, indent) {
              state.context = new Context(type, stream.indentation() + (indent === false ? 0 : indentUnit), state.context);
              return type;
            }
          
            function popContext(state) {
              if (state.context.prev)
                state.context = state.context.prev;
              return state.context.type;
            }
          
            function pass(type, stream, state) {
              return states[state.context.type](type, stream, state);
            }
            function popAndPass(type, stream, state, n) {
              for (var i = n || 1; i > 0; i--)
                state.context = state.context.prev;
              return pass(type, stream, state);
            }
          
            // Parser
          
            function wordAsValue(stream) {
              var word = stream.current().toLowerCase();
              if (valueKeywords.hasOwnProperty(word))
                override = "atom";
              else if (colorKeywords.hasOwnProperty(word))
                override = "keyword";
              else
                override = "variable";
            }
          
            var states = {};
          
            states.top = function(type, stream, state) {
              if (type == "{") {
                return pushContext(state, stream, "block");
              } else if (type == "}" && state.context.prev) {
                return popContext(state);
              } else if (supportsAtComponent && /@component/.test(type)) {
                return pushContext(state, stream, "atComponentBlock");
              } else if (/^@(-moz-)?document$/.test(type)) {
                return pushContext(state, stream, "documentTypes");
              } else if (/^@(media|supports|(-moz-)?document|import)$/.test(type)) {
                return pushContext(state, stream, "atBlock");
              } else if (/^@(font-face|counter-style)/.test(type)) {
                state.stateArg = type;
                return "restricted_atBlock_before";
              } else if (/^@(-(moz|ms|o|webkit)-)?keyframes$/.test(type)) {
                return "keyframes";
              } else if (type && type.charAt(0) == "@") {
                return pushContext(state, stream, "at");
              } else if (type == "hash") {
                override = "builtin";
              } else if (type == "word") {
                override = "tag";
              } else if (type == "variable-definition") {
                return "maybeprop";
              } else if (type == "interpolation") {
                return pushContext(state, stream, "interpolation");
              } else if (type == ":") {
                return "pseudo";
              } else if (allowNested && type == "(") {
                return pushContext(state, stream, "parens");
              }
              return state.context.type;
            };
          
            states.block = function(type, stream, state) {
              if (type == "word") {
                var word = stream.current().toLowerCase();
                if (propertyKeywords.hasOwnProperty(word)) {
                  override = "property";
                  return "maybeprop";
                } else if (nonStandardPropertyKeywords.hasOwnProperty(word)) {
                  override = "string-2";
                  return "maybeprop";
                } else if (allowNested) {
                  override = stream.match(/^\s*:(?:\s|$)/, false) ? "property" : "tag";
                  return "block";
                } else {
                  override += " error";
                  return "maybeprop";
                }
              } else if (type == "meta") {
                return "block";
              } else if (!allowNested && (type == "hash" || type == "qualifier")) {
                override = "error";
                return "block";
              } else {
                return states.top(type, stream, state);
              }
            };
          
            states.maybeprop = function(type, stream, state) {
              if (type == ":") return pushContext(state, stream, "prop");
              return pass(type, stream, state);
            };
          
            states.prop = function(type, stream, state) {
              if (type == ";") return popContext(state);
              if (type == "{" && allowNested) return pushContext(state, stream, "propBlock");
              if (type == "}" || type == "{") return popAndPass(type, stream, state);
              if (type == "(") return pushContext(state, stream, "parens");
          
              if (type == "hash" && !/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(stream.current())) {
                override += " error";
              } else if (type == "word") {
                wordAsValue(stream);
              } else if (type == "interpolation") {
                return pushContext(state, stream, "interpolation");
              }
              return "prop";
            };
          
            states.propBlock = function(type, _stream, state) {
              if (type == "}") return popContext(state);
              if (type == "word") { override = "property"; return "maybeprop"; }
              return state.context.type;
            };
          
            states.parens = function(type, stream, state) {
              if (type == "{" || type == "}") return popAndPass(type, stream, state);
              if (type == ")") return popContext(state);
              if (type == "(") return pushContext(state, stream, "parens");
              if (type == "interpolation") return pushContext(state, stream, "interpolation");
              if (type == "word") wordAsValue(stream);
              return "parens";
            };
          
            states.pseudo = function(type, stream, state) {
              if (type == "word") {
                override = "variable-3";
                return state.context.type;
              }
              return pass(type, stream, state);
            };
          
            states.documentTypes = function(type, stream, state) {
              if (type == "word" && documentTypes.hasOwnProperty(stream.current())) {
                override = "tag";
                return state.context.type;
              } else {
                return states.atBlock(type, stream, state);
              }
            };
          
            states.atBlock = function(type, stream, state) {
              if (type == "(") return pushContext(state, stream, "atBlock_parens");
              if (type == "}" || type == ";") return popAndPass(type, stream, state);
              if (type == "{") return popContext(state) && pushContext(state, stream, allowNested ? "block" : "top");
          
              if (type == "interpolation") return pushContext(state, stream, "interpolation");
          
              if (type == "word") {
                var word = stream.current().toLowerCase();
                if (word == "only" || word == "not" || word == "and" || word == "or")
                  override = "keyword";
                else if (mediaTypes.hasOwnProperty(word))
                  override = "attribute";
                else if (mediaFeatures.hasOwnProperty(word))
                  override = "property";
                else if (mediaValueKeywords.hasOwnProperty(word))
                  override = "keyword";
                else if (propertyKeywords.hasOwnProperty(word))
                  override = "property";
                else if (nonStandardPropertyKeywords.hasOwnProperty(word))
                  override = "string-2";
                else if (valueKeywords.hasOwnProperty(word))
                  override = "atom";
                else if (colorKeywords.hasOwnProperty(word))
                  override = "keyword";
                else
                  override = "error";
              }
              return state.context.type;
            };
          
            states.atComponentBlock = function(type, stream, state) {
              if (type == "}")
                return popAndPass(type, stream, state);
              if (type == "{")
                return popContext(state) && pushContext(state, stream, allowNested ? "block" : "top", false);
              if (type == "word")
                override = "error";
              return state.context.type;
            };
          
            states.atBlock_parens = function(type, stream, state) {
              if (type == ")") return popContext(state);
              if (type == "{" || type == "}") return popAndPass(type, stream, state, 2);
              return states.atBlock(type, stream, state);
            };
          
            states.restricted_atBlock_before = function(type, stream, state) {
              if (type == "{")
                return pushContext(state, stream, "restricted_atBlock");
              if (type == "word" && state.stateArg == "@counter-style") {
                override = "variable";
                return "restricted_atBlock_before";
              }
              return pass(type, stream, state);
            };
          
            states.restricted_atBlock = function(type, stream, state) {
              if (type == "}") {
                state.stateArg = null;
                return popContext(state);
              }
              if (type == "word") {
                if ((state.stateArg == "@font-face" && !fontProperties.hasOwnProperty(stream.current().toLowerCase())) ||
                    (state.stateArg == "@counter-style" && !counterDescriptors.hasOwnProperty(stream.current().toLowerCase())))
                  override = "error";
                else
                  override = "property";
                return "maybeprop";
              }
              return "restricted_atBlock";
            };
          
            states.keyframes = function(type, stream, state) {
              if (type == "word") { override = "variable"; return "keyframes"; }
              if (type == "{") return pushContext(state, stream, "top");
              return pass(type, stream, state);
            };
          
            states.at = function(type, stream, state) {
              if (type == ";") return popContext(state);
              if (type == "{" || type == "}") return popAndPass(type, stream, state);
              if (type == "word") override = "tag";
              else if (type == "hash") override = "builtin";
              return "at";
            };
          
            states.interpolation = function(type, stream, state) {
              if (type == "}") return popContext(state);
              if (type == "{" || type == ";") return popAndPass(type, stream, state);
              if (type == "word") override = "variable";
              else if (type != "variable" && type != "(" && type != ")") override = "error";
              return "interpolation";
            };
          
            return {
              startState: function(base) {
                return {tokenize: null,
                        state: parserConfig.inline ? "block" : "top",
                        stateArg: null,
                        context: new Context(parserConfig.inline ? "block" : "top", base || 0, null)};
              },
          
              token: function(stream, state) {
                if (!state.tokenize && stream.eatSpace()) return null;
                var style = (state.tokenize || tokenBase)(stream, state);
                if (style && typeof style == "object") {
                  type = style[1];
                  style = style[0];
                }
                override = style;
                state.state = states[state.state](type, stream, state);
                return override;
              },
          
              indent: function(state, textAfter) {
                var cx = state.context, ch = textAfter && textAfter.charAt(0);
                var indent = cx.indent;
                if (cx.type == "prop" && (ch == "}" || ch == ")")) cx = cx.prev;
                if (cx.prev) {
                  if (ch == "}" && (cx.type == "block" || cx.type == "top" ||
                                    cx.type == "interpolation" || cx.type == "restricted_atBlock")) {
                    // Resume indentation from parent context.
                    cx = cx.prev;
                    indent = cx.indent;
                  } else if (ch == ")" && (cx.type == "parens" || cx.type == "atBlock_parens") ||
                      ch == "{" && (cx.type == "at" || cx.type == "atBlock")) {
                    // Dedent relative to current context.
                    indent = Math.max(0, cx.indent - indentUnit);
                    cx = cx.prev;
                  }
                }
                return indent;
              },
          
              electricChars: "}",
              blockCommentStart: "/*",
              blockCommentEnd: "*/",
              fold: "brace"
            };
          });
          
            function keySet(array) {
              var keys = {};
              for (var i = 0; i < array.length; ++i) {
                keys[array[i]] = true;
              }
              return keys;
            }
          
            var documentTypes_ = [
              "domain", "regexp", "url", "url-prefix"
            ], documentTypes = keySet(documentTypes_);
          
            var mediaTypes_ = [
              "all", "aural", "braille", "handheld", "print", "projection", "screen",
              "tty", "tv", "embossed"
            ], mediaTypes = keySet(mediaTypes_);
          
            var mediaFeatures_ = [
              "width", "min-width", "max-width", "height", "min-height", "max-height",
              "device-width", "min-device-width", "max-device-width", "device-height",
              "min-device-height", "max-device-height", "aspect-ratio",
              "min-aspect-ratio", "max-aspect-ratio", "device-aspect-ratio",
              "min-device-aspect-ratio", "max-device-aspect-ratio", "color", "min-color",
              "max-color", "color-index", "min-color-index", "max-color-index",
              "monochrome", "min-monochrome", "max-monochrome", "resolution",
              "min-resolution", "max-resolution", "scan", "grid", "orientation",
              "device-pixel-ratio", "min-device-pixel-ratio", "max-device-pixel-ratio",
              "pointer", "any-pointer", "hover", "any-hover"
            ], mediaFeatures = keySet(mediaFeatures_);
          
            var mediaValueKeywords_ = [
              "landscape", "portrait", "none", "coarse", "fine", "on-demand", "hover",
              "interlace", "progressive"
            ], mediaValueKeywords = keySet(mediaValueKeywords_);
          
            var propertyKeywords_ = [
              "align-content", "align-items", "align-self", "alignment-adjust",
              "alignment-baseline", "anchor-point", "animation", "animation-delay",
              "animation-direction", "animation-duration", "animation-fill-mode",
              "animation-iteration-count", "animation-name", "animation-play-state",
              "animation-timing-function", "appearance", "azimuth", "backface-visibility",
              "background", "background-attachment", "background-clip", "background-color",
              "background-image", "background-origin", "background-position",
              "background-repeat", "background-size", "baseline-shift", "binding",
              "bleed", "bookmark-label", "bookmark-level", "bookmark-state",
              "bookmark-target", "border", "border-bottom", "border-bottom-color",
              "border-bottom-left-radius", "border-bottom-right-radius",
              "border-bottom-style", "border-bottom-width", "border-collapse",
              "border-color", "border-image", "border-image-outset",
              "border-image-repeat", "border-image-slice", "border-image-source",
              "border-image-width", "border-left", "border-left-color",
              "border-left-style", "border-left-width", "border-radius", "border-right",
              "border-right-color", "border-right-style", "border-right-width",
              "border-spacing", "border-style", "border-top", "border-top-color",
              "border-top-left-radius", "border-top-right-radius", "border-top-style",
              "border-top-width", "border-width", "bottom", "box-decoration-break",
              "box-shadow", "box-sizing", "break-after", "break-before", "break-inside",
              "caption-side", "clear", "clip", "color", "color-profile", "column-count",
              "column-fill", "column-gap", "column-rule", "column-rule-color",
              "column-rule-style", "column-rule-width", "column-span", "column-width",
              "columns", "content", "counter-increment", "counter-reset", "crop", "cue",
              "cue-after", "cue-before", "cursor", "direction", "display",
              "dominant-baseline", "drop-initial-after-adjust",
              "drop-initial-after-align", "drop-initial-before-adjust",
              "drop-initial-before-align", "drop-initial-size", "drop-initial-value",
              "elevation", "empty-cells", "fit", "fit-position", "flex", "flex-basis",
              "flex-direction", "flex-flow", "flex-grow", "flex-shrink", "flex-wrap",
              "float", "float-offset", "flow-from", "flow-into", "font", "font-feature-settings",
              "font-family", "font-kerning", "font-language-override", "font-size", "font-size-adjust",
              "font-stretch", "font-style", "font-synthesis", "font-variant",
              "font-variant-alternates", "font-variant-caps", "font-variant-east-asian",
              "font-variant-ligatures", "font-variant-numeric", "font-variant-position",
              "font-weight", "grid", "grid-area", "grid-auto-columns", "grid-auto-flow",
              "grid-auto-position", "grid-auto-rows", "grid-column", "grid-column-end",
              "grid-column-start", "grid-row", "grid-row-end", "grid-row-start",
              "grid-template", "grid-template-areas", "grid-template-columns",
              "grid-template-rows", "hanging-punctuation", "height", "hyphens",
              "icon", "image-orientation", "image-rendering", "image-resolution",
              "inline-box-align", "justify-content", "left", "letter-spacing",
              "line-break", "line-height", "line-stacking", "line-stacking-ruby",
              "line-stacking-shift", "line-stacking-strategy", "list-style",
              "list-style-image", "list-style-position", "list-style-type", "margin",
              "margin-bottom", "margin-left", "margin-right", "margin-top",
              "marker-offset", "marks", "marquee-direction", "marquee-loop",
              "marquee-play-count", "marquee-speed", "marquee-style", "max-height",
              "max-width", "min-height", "min-width", "move-to", "nav-down", "nav-index",
              "nav-left", "nav-right", "nav-up", "object-fit", "object-position",
              "opacity", "order", "orphans", "outline",
              "outline-color", "outline-offset", "outline-style", "outline-width",
              "overflow", "overflow-style", "overflow-wrap", "overflow-x", "overflow-y",
              "padding", "padding-bottom", "padding-left", "padding-right", "padding-top",
              "page", "page-break-after", "page-break-before", "page-break-inside",
              "page-policy", "pause", "pause-after", "pause-before", "perspective",
              "perspective-origin", "pitch", "pitch-range", "play-during", "position",
              "presentation-level", "punctuation-trim", "quotes", "region-break-after",
              "region-break-before", "region-break-inside", "region-fragment",
              "rendering-intent", "resize", "rest", "rest-after", "rest-before", "richness",
              "right", "rotation", "rotation-point", "ruby-align", "ruby-overhang",
              "ruby-position", "ruby-span", "shape-image-threshold", "shape-inside", "shape-margin",
              "shape-outside", "size", "speak", "speak-as", "speak-header",
              "speak-numeral", "speak-punctuation", "speech-rate", "stress", "string-set",
              "tab-size", "table-layout", "target", "target-name", "target-new",
              "target-position", "text-align", "text-align-last", "text-decoration",
              "text-decoration-color", "text-decoration-line", "text-decoration-skip",
              "text-decoration-style", "text-emphasis", "text-emphasis-color",
              "text-emphasis-position", "text-emphasis-style", "text-height",
              "text-indent", "text-justify", "text-outline", "text-overflow", "text-shadow",
              "text-size-adjust", "text-space-collapse", "text-transform", "text-underline-position",
              "text-wrap", "top", "transform", "transform-origin", "transform-style",
              "transition", "transition-delay", "transition-duration",
              "transition-property", "transition-timing-function", "unicode-bidi",
              "vertical-align", "visibility", "voice-balance", "voice-duration",
              "voice-family", "voice-pitch", "voice-range", "voice-rate", "voice-stress",
              "voice-volume", "volume", "white-space", "widows", "width", "word-break",
              "word-spacing", "word-wrap", "z-index",
              // SVG-specific
              "clip-path", "clip-rule", "mask", "enable-background", "filter", "flood-color",
              "flood-opacity", "lighting-color", "stop-color", "stop-opacity", "pointer-events",
              "color-interpolation", "color-interpolation-filters",
              "color-rendering", "fill", "fill-opacity", "fill-rule", "image-rendering",
              "marker", "marker-end", "marker-mid", "marker-start", "shape-rendering", "stroke",
              "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin",
              "stroke-miterlimit", "stroke-opacity", "stroke-width", "text-rendering",
              "baseline-shift", "dominant-baseline", "glyph-orientation-horizontal",
              "glyph-orientation-vertical", "text-anchor", "writing-mode"
            ], propertyKeywords = keySet(propertyKeywords_);
          
            var nonStandardPropertyKeywords_ = [
              "scrollbar-arrow-color", "scrollbar-base-color", "scrollbar-dark-shadow-color",
              "scrollbar-face-color", "scrollbar-highlight-color", "scrollbar-shadow-color",
              "scrollbar-3d-light-color", "scrollbar-track-color", "shape-inside",
              "searchfield-cancel-button", "searchfield-decoration", "searchfield-results-button",
              "searchfield-results-decoration", "zoom"
            ], nonStandardPropertyKeywords = keySet(nonStandardPropertyKeywords_);
          
            var fontProperties_ = [
              "font-family", "src", "unicode-range", "font-variant", "font-feature-settings",
              "font-stretch", "font-weight", "font-style"
            ], fontProperties = keySet(fontProperties_);
          
            var counterDescriptors_ = [
              "additive-symbols", "fallback", "negative", "pad", "prefix", "range",
              "speak-as", "suffix", "symbols", "system"
            ], counterDescriptors = keySet(counterDescriptors_);
          
            var colorKeywords_ = [
              "aliceblue", "antiquewhite", "aqua", "aquamarine", "azure", "beige",
              "bisque", "black", "blanchedalmond", "blue", "blueviolet", "brown",
              "burlywood", "cadetblue", "chartreuse", "chocolate", "coral", "cornflowerblue",
              "cornsilk", "crimson", "cyan", "darkblue", "darkcyan", "darkgoldenrod",
              "darkgray", "darkgreen", "darkkhaki", "darkmagenta", "darkolivegreen",
              "darkorange", "darkorchid", "darkred", "darksalmon", "darkseagreen",
              "darkslateblue", "darkslategray", "darkturquoise", "darkviolet",
              "deeppink", "deepskyblue", "dimgray", "dodgerblue", "firebrick",
              "floralwhite", "forestgreen", "fuchsia", "gainsboro", "ghostwhite",
              "gold", "goldenrod", "gray", "grey", "green", "greenyellow", "honeydew",
              "hotpink", "indianred", "indigo", "ivory", "khaki", "lavender",
              "lavenderblush", "lawngreen", "lemonchiffon", "lightblue", "lightcoral",
              "lightcyan", "lightgoldenrodyellow", "lightgray", "lightgreen", "lightpink",
              "lightsalmon", "lightseagreen", "lightskyblue", "lightslategray",
              "lightsteelblue", "lightyellow", "lime", "limegreen", "linen", "magenta",
              "maroon", "mediumaquamarine", "mediumblue", "mediumorchid", "mediumpurple",
              "mediumseagreen", "mediumslateblue", "mediumspringgreen", "mediumturquoise",
              "mediumvioletred", "midnightblue", "mintcream", "mistyrose", "moccasin",
              "navajowhite", "navy", "oldlace", "olive", "olivedrab", "orange", "orangered",
              "orchid", "palegoldenrod", "palegreen", "paleturquoise", "palevioletred",
              "papayawhip", "peachpuff", "peru", "pink", "plum", "powderblue",
              "purple", "rebeccapurple", "red", "rosybrown", "royalblue", "saddlebrown",
              "salmon", "sandybrown", "seagreen", "seashell", "sienna", "silver", "skyblue",
              "slateblue", "slategray", "snow", "springgreen", "steelblue", "tan",
              "teal", "thistle", "tomato", "turquoise", "violet", "wheat", "white",
              "whitesmoke", "yellow", "yellowgreen"
            ], colorKeywords = keySet(colorKeywords_);
          
            var valueKeywords_ = [
              "above", "absolute", "activeborder", "additive", "activecaption", "afar",
              "after-white-space", "ahead", "alias", "all", "all-scroll", "alphabetic", "alternate",
              "always", "amharic", "amharic-abegede", "antialiased", "appworkspace",
              "arabic-indic", "armenian", "asterisks", "attr", "auto", "avoid", "avoid-column", "avoid-page",
              "avoid-region", "background", "backwards", "baseline", "below", "bidi-override", "binary",
              "bengali", "blink", "block", "block-axis", "bold", "bolder", "border", "border-box",
              "both", "bottom", "break", "break-all", "break-word", "bullets", "button", "button-bevel",
              "buttonface", "buttonhighlight", "buttonshadow", "buttontext", "calc", "cambodian",
              "capitalize", "caps-lock-indicator", "caption", "captiontext", "caret",
              "cell", "center", "checkbox", "circle", "cjk-decimal", "cjk-earthly-branch",
              "cjk-heavenly-stem", "cjk-ideographic", "clear", "clip", "close-quote",
              "col-resize", "collapse", "column", "column-reverse", "compact", "condensed", "contain", "content",
              "content-box", "context-menu", "continuous", "copy", "counter", "counters", "cover", "crop",
              "cross", "crosshair", "currentcolor", "cursive", "cyclic", "dashed", "decimal",
              "decimal-leading-zero", "default", "default-button", "destination-atop",
              "destination-in", "destination-out", "destination-over", "devanagari",
              "disc", "discard", "disclosure-closed", "disclosure-open", "document",
              "dot-dash", "dot-dot-dash",
              "dotted", "double", "down", "e-resize", "ease", "ease-in", "ease-in-out", "ease-out",
              "element", "ellipse", "ellipsis", "embed", "end", "ethiopic", "ethiopic-abegede",
              "ethiopic-abegede-am-et", "ethiopic-abegede-gez", "ethiopic-abegede-ti-er",
              "ethiopic-abegede-ti-et", "ethiopic-halehame-aa-er",
              "ethiopic-halehame-aa-et", "ethiopic-halehame-am-et",
              "ethiopic-halehame-gez", "ethiopic-halehame-om-et",
              "ethiopic-halehame-sid-et", "ethiopic-halehame-so-et",
              "ethiopic-halehame-ti-er", "ethiopic-halehame-ti-et", "ethiopic-halehame-tig",
              "ethiopic-numeric", "ew-resize", "expanded", "extends", "extra-condensed",
              "extra-expanded", "fantasy", "fast", "fill", "fixed", "flat", "flex", "flex-end", "flex-start", "footnotes",
              "forwards", "from", "geometricPrecision", "georgian", "graytext", "groove",
              "gujarati", "gurmukhi", "hand", "hangul", "hangul-consonant", "hebrew",
              "help", "hidden", "hide", "higher", "highlight", "highlighttext",
              "hiragana", "hiragana-iroha", "horizontal", "hsl", "hsla", "icon", "ignore",
              "inactiveborder", "inactivecaption", "inactivecaptiontext", "infinite",
              "infobackground", "infotext", "inherit", "initial", "inline", "inline-axis",
              "inline-block", "inline-flex", "inline-table", "inset", "inside", "intrinsic", "invert",
              "italic", "japanese-formal", "japanese-informal", "justify", "kannada",
              "katakana", "katakana-iroha", "keep-all", "khmer",
              "korean-hangul-formal", "korean-hanja-formal", "korean-hanja-informal",
              "landscape", "lao", "large", "larger", "left", "level", "lighter",
              "line-through", "linear", "linear-gradient", "lines", "list-item", "listbox", "listitem",
              "local", "logical", "loud", "lower", "lower-alpha", "lower-armenian",
              "lower-greek", "lower-hexadecimal", "lower-latin", "lower-norwegian",
              "lower-roman", "lowercase", "ltr", "malayalam", "match", "matrix", "matrix3d",
              "media-controls-background", "media-current-time-display",
              "media-fullscreen-button", "media-mute-button", "media-play-button",
              "media-return-to-realtime-button", "media-rewind-button",
              "media-seek-back-button", "media-seek-forward-button", "media-slider",
              "media-sliderthumb", "media-time-remaining-display", "media-volume-slider",
              "media-volume-slider-container", "media-volume-sliderthumb", "medium",
              "menu", "menulist", "menulist-button", "menulist-text",
              "menulist-textfield", "menutext", "message-box", "middle", "min-intrinsic",
              "mix", "mongolian", "monospace", "move", "multiple", "myanmar", "n-resize",
              "narrower", "ne-resize", "nesw-resize", "no-close-quote", "no-drop",
              "no-open-quote", "no-repeat", "none", "normal", "not-allowed", "nowrap",
              "ns-resize", "numbers", "numeric", "nw-resize", "nwse-resize", "oblique", "octal", "open-quote",
              "optimizeLegibility", "optimizeSpeed", "oriya", "oromo", "outset",
              "outside", "outside-shape", "overlay", "overline", "padding", "padding-box",
              "painted", "page", "paused", "persian", "perspective", "plus-darker", "plus-lighter",
              "pointer", "polygon", "portrait", "pre", "pre-line", "pre-wrap", "preserve-3d",
              "progress", "push-button", "radial-gradient", "radio", "read-only",
              "read-write", "read-write-plaintext-only", "rectangle", "region",
              "relative", "repeat", "repeating-linear-gradient",
              "repeating-radial-gradient", "repeat-x", "repeat-y", "reset", "reverse",
              "rgb", "rgba", "ridge", "right", "rotate", "rotate3d", "rotateX", "rotateY",
              "rotateZ", "round", "row", "row-resize", "row-reverse", "rtl", "run-in", "running",
              "s-resize", "sans-serif", "scale", "scale3d", "scaleX", "scaleY", "scaleZ",
              "scroll", "scrollbar", "se-resize", "searchfield",
              "searchfield-cancel-button", "searchfield-decoration",
              "searchfield-results-button", "searchfield-results-decoration",
              "semi-condensed", "semi-expanded", "separate", "serif", "show", "sidama",
              "simp-chinese-formal", "simp-chinese-informal", "single",
              "skew", "skewX", "skewY", "skip-white-space", "slide", "slider-horizontal",
              "slider-vertical", "sliderthumb-horizontal", "sliderthumb-vertical", "slow",
              "small", "small-caps", "small-caption", "smaller", "solid", "somali",
              "source-atop", "source-in", "source-out", "source-over", "space", "space-around", "space-between", "spell-out", "square",
              "square-button", "start", "static", "status-bar", "stretch", "stroke", "sub",
              "subpixel-antialiased", "super", "sw-resize", "symbolic", "symbols", "table",
              "table-caption", "table-cell", "table-column", "table-column-group",
              "table-footer-group", "table-header-group", "table-row", "table-row-group",
              "tamil",
              "telugu", "text", "text-bottom", "text-top", "textarea", "textfield", "thai",
              "thick", "thin", "threeddarkshadow", "threedface", "threedhighlight",
              "threedlightshadow", "threedshadow", "tibetan", "tigre", "tigrinya-er",
              "tigrinya-er-abegede", "tigrinya-et", "tigrinya-et-abegede", "to", "top",
              "trad-chinese-formal", "trad-chinese-informal",
              "translate", "translate3d", "translateX", "translateY", "translateZ",
              "transparent", "ultra-condensed", "ultra-expanded", "underline", "up",
              "upper-alpha", "upper-armenian", "upper-greek", "upper-hexadecimal",
              "upper-latin", "upper-norwegian", "upper-roman", "uppercase", "urdu", "url",
              "var", "vertical", "vertical-text", "visible", "visibleFill", "visiblePainted",
              "visibleStroke", "visual", "w-resize", "wait", "wave", "wider",
              "window", "windowframe", "windowtext", "words", "wrap", "wrap-reverse", "x-large", "x-small", "xor",
              "xx-large", "xx-small"
            ], valueKeywords = keySet(valueKeywords_);
          
            var allWords = documentTypes_.concat(mediaTypes_).concat(mediaFeatures_).concat(mediaValueKeywords_)
              .concat(propertyKeywords_).concat(nonStandardPropertyKeywords_).concat(colorKeywords_)
              .concat(valueKeywords_);
            CodeMirror.registerHelper("hintWords", "css", allWords);
          
            function tokenCComment(stream, state) {
              var maybeEnd = false, ch;
              while ((ch = stream.next()) != null) {
                if (maybeEnd && ch == "/") {
                  state.tokenize = null;
                  break;
                }
                maybeEnd = (ch == "*");
              }
              return ["comment", "comment"];
            }
          
            CodeMirror.defineMIME("text/css", {
              documentTypes: documentTypes,
              mediaTypes: mediaTypes,
              mediaFeatures: mediaFeatures,
              mediaValueKeywords: mediaValueKeywords,
              propertyKeywords: propertyKeywords,
              nonStandardPropertyKeywords: nonStandardPropertyKeywords,
              fontProperties: fontProperties,
              counterDescriptors: counterDescriptors,
              colorKeywords: colorKeywords,
              valueKeywords: valueKeywords,
              tokenHooks: {
                "/": function(stream, state) {
                  if (!stream.eat("*")) return false;
                  state.tokenize = tokenCComment;
                  return tokenCComment(stream, state);
                }
              },
              name: "css"
            });
          
            CodeMirror.defineMIME("text/x-scss", {
              mediaTypes: mediaTypes,
              mediaFeatures: mediaFeatures,
              mediaValueKeywords: mediaValueKeywords,
              propertyKeywords: propertyKeywords,
              nonStandardPropertyKeywords: nonStandardPropertyKeywords,
              colorKeywords: colorKeywords,
              valueKeywords: valueKeywords,
              fontProperties: fontProperties,
              allowNested: true,
              tokenHooks: {
                "/": function(stream, state) {
                  if (stream.eat("/")) {
                    stream.skipToEnd();
                    return ["comment", "comment"];
                  } else if (stream.eat("*")) {
                    state.tokenize = tokenCComment;
                    return tokenCComment(stream, state);
                  } else {
                    return ["operator", "operator"];
                  }
                },
                ":": function(stream) {
                  if (stream.match(/\s*\{/))
                    return [null, "{"];
                  return false;
                },
                "$": function(stream) {
                  stream.match(/^[\w-]+/);
                  if (stream.match(/^\s*:/, false))
                    return ["variable-2", "variable-definition"];
                  return ["variable-2", "variable"];
                },
                "#": function(stream) {
                  if (!stream.eat("{")) return false;
                  return [null, "interpolation"];
                }
              },
              name: "css",
              helperType: "scss"
            });
          
            CodeMirror.defineMIME("text/x-less", {
              mediaTypes: mediaTypes,
              mediaFeatures: mediaFeatures,
              mediaValueKeywords: mediaValueKeywords,
              propertyKeywords: propertyKeywords,
              nonStandardPropertyKeywords: nonStandardPropertyKeywords,
              colorKeywords: colorKeywords,
              valueKeywords: valueKeywords,
              fontProperties: fontProperties,
              allowNested: true,
              tokenHooks: {
                "/": function(stream, state) {
                  if (stream.eat("/")) {
                    stream.skipToEnd();
                    return ["comment", "comment"];
                  } else if (stream.eat("*")) {
                    state.tokenize = tokenCComment;
                    return tokenCComment(stream, state);
                  } else {
                    return ["operator", "operator"];
                  }
                },
                "@": function(stream) {
                  if (stream.eat("{")) return [null, "interpolation"];
                  if (stream.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/, false)) return false;
                  stream.eatWhile(/[\w\\\-]/);
                  if (stream.match(/^\s*:/, false))
                    return ["variable-2", "variable-definition"];
                  return ["variable-2", "variable"];
                },
                "&": function() {
                  return ["atom", "atom"];
                }
              },
              name: "css",
              helperType: "less"
            });
          
            CodeMirror.defineMIME("text/x-gss", {
              documentTypes: documentTypes,
              mediaTypes: mediaTypes,
              mediaFeatures: mediaFeatures,
              propertyKeywords: propertyKeywords,
              nonStandardPropertyKeywords: nonStandardPropertyKeywords,
              fontProperties: fontProperties,
              counterDescriptors: counterDescriptors,
              colorKeywords: colorKeywords,
              valueKeywords: valueKeywords,
              supportsAtComponent: true,
              tokenHooks: {
                "/": function(stream, state) {
                  if (!stream.eat("*")) return false;
                  state.tokenize = tokenCComment;
                  return tokenCComment(stream, state);
                }
              },
              name: "css",
              helperType: "gss"
            });
          
          });
          
        • gss.html
          <!doctype html>
          
          <title>CodeMirror: Closure Stylesheets (GSS) mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <link rel="stylesheet" href="../../addon/hint/show-hint.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="css.js"></script>
          <script src="../../addon/hint/show-hint.js"></script>
          <script src="../../addon/hint/css-hint.js"></script>
          <style>.CodeMirror {background: #f8f8f8;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Closure Stylesheets (GSS)</a>
            </ul>
          </div>
          
          <article>
          <h2>Closure Stylesheets (GSS) mode</h2>
          <form><textarea id="code" name="code">
          /* Some example Closure Stylesheets */
          
          @provide 'some.styles';
          
          @require 'other.styles';
          
          @component {
          
          @def FONT_FAMILY           "Times New Roman", Georgia, Serif;
          @def FONT_SIZE_NORMAL      15px;
          @def FONT_NORMAL           normal FONT_SIZE_NORMAL FONT_FAMILY;
          
          @def BG_COLOR              rgb(235, 239, 249);
          
          @def DIALOG_BORDER_COLOR   rgb(107, 144, 218);
          @def DIALOG_BG_COLOR       BG_COLOR;
          
          @def LEFT_HAND_NAV_WIDTH    180px;
          @def LEFT_HAND_NAV_PADDING  3px;
          
          @defmixin size(WIDTH, HEIGHT) {
            width: WIDTH;
            height: HEIGHT;
          }
          
          body {
            background-color: BG_COLOR;
            margin: 0;
            padding: 3em 6em;
            font: FONT_NORMAL;
            color: #000;
          }
          
          #navigation a {
            font-weight: bold;
            text-decoration: none !important;
          }
          
          .dialog {
            background-color: DIALOG_BG_COLOR;
            border: 1px solid DIALOG_BORDER_COLOR;
          }
          
          .content {
            position: absolute;
            margin-left: add(LEFT_HAND_NAV_PADDING,  /* padding left */
                             LEFT_HAND_NAV_WIDTH,
                             LEFT_HAND_NAV_PADDING); /* padding right */
          
          }
          
          .logo {
            @mixin size(150px, 55px);
            background-image: url('http://www.google.com/images/logo_sm.gif');
          }
          
          }
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  extraKeys: {"Ctrl-Space": "autocomplete"},
                  lineNumbers: true,
                  matchBrackets: "text/x-less",
                  mode: "text/x-gss"
                });
              </script>
          
              <p>A mode for <a href="https://github.com/google/closure-stylesheets">Closure Stylesheets</a> (GSS).</p>
              <p><strong>MIME type defined:</strong> <code>text/x-gss</code>.</p>
          
              <p><strong>Parsing/Highlighting Tests:</strong> <a href="../../test/index.html#gss_*">normal</a>,  <a href="../../test/index.html#verbose,gss_*">verbose</a>.</p>
          
            </article>
          
        • gss_test.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function() {
            "use strict";
          
            var mode = CodeMirror.getMode({indentUnit: 2}, "text/x-gss");
            function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), "gss"); }
          
            MT("atComponent",
               "[def @component] {",
               "[tag foo] {",
               "  [property color]: [keyword black];",
               "}",
               "}");
          
          })();
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: CSS mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <link rel="stylesheet" href="../../addon/hint/show-hint.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="css.js"></script>
          <script src="../../addon/hint/show-hint.js"></script>
          <script src="../../addon/hint/css-hint.js"></script>
          <style>.CodeMirror {background: #f8f8f8;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">CSS</a>
            </ul>
          </div>
          
          <article>
          <h2>CSS mode</h2>
          <form><textarea id="code" name="code">
          /* Some example CSS */
          
          @import url("something.css");
          
          body {
            margin: 0;
            padding: 3em 6em;
            font-family: tahoma, arial, sans-serif;
            color: #000;
          }
          
          #navigation a {
            font-weight: bold;
            text-decoration: none !important;
          }
          
          h1 {
            font-size: 2.5em;
          }
          
          h2 {
            font-size: 1.7em;
          }
          
          h1:before, h2:before {
            content: "::";
          }
          
          code {
            font-family: courier, monospace;
            font-size: 80%;
            color: #418A8A;
          }
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  extraKeys: {"Ctrl-Space": "autocomplete"},
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/css</code>, <code>text/x-scss</code> (<a href="scss.html">demo</a>), <code>text/x-less</code> (<a href="less.html">demo</a>).</p>
          
              <p><strong>Parsing/Highlighting Tests:</strong> <a href="../../test/index.html#css_*">normal</a>,  <a href="../../test/index.html#verbose,css_*">verbose</a>.</p>
          
            </article>
          
        • less.html
          <!doctype html>
          
          <title>CodeMirror: LESS mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="css.js"></script>
          <style>.CodeMirror {border: 1px solid #ddd; line-height: 1.2;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">LESS</a>
            </ul>
          </div>
          
          <article>
          <h2>LESS mode</h2>
          <form><textarea id="code" name="code">@media screen and (device-aspect-ratio: 16/9) { … }
          @media screen and (device-aspect-ratio: 1280/720) { … }
          @media screen and (device-aspect-ratio: 2560/1440) { … }
          
          html:lang(fr-be)
          
          tr:nth-child(2n+1) /* represents every odd row of an HTML table */
          
          img:nth-of-type(2n+1) { float: right; }
          img:nth-of-type(2n) { float: left; }
          
          body > h2:not(:first-of-type):not(:last-of-type)
          
          html|*:not(:link):not(:visited)
          *|*:not(:hover)
          p::first-line { text-transform: uppercase }
          
          @namespace foo url(http://www.example.com);
          foo|h1 { color: blue }  /* first rule */
          
          span[hello="Ocean"][goodbye="Land"]
          
          E[foo]{
            padding:65px;
          }
          
          input[type="search"]::-webkit-search-decoration,
          input[type="search"]::-webkit-search-cancel-button {
            -webkit-appearance: none; // Inner-padding issues in Chrome OSX, Safari 5
          }
          button::-moz-focus-inner,
          input::-moz-focus-inner { // Inner padding and border oddities in FF3/4
            padding: 0;
            border: 0;
          }
          .btn {
            // reset here as of 2.0.3 due to Recess property order
            border-color: #ccc;
            border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);
          }
          fieldset span button, fieldset span input[type="file"] {
            font-size:12px;
          	font-family:Arial, Helvetica, sans-serif;
          }
          
          .rounded-corners (@radius: 5px) {
            border-radius: @radius;
            -webkit-border-radius: @radius;
            -moz-border-radius: @radius;
          }
          
          @import url("something.css");
          
          @light-blue:   hsl(190, 50%, 65%);
          
          #menu {
            position: absolute;
            width: 100%;
            z-index: 3;
            clear: both;
            display: block;
            background-color: @blue;
            height: 42px;
            border-top: 2px solid lighten(@alpha-blue, 20%);
            border-bottom: 2px solid darken(@alpha-blue, 25%);
            .box-shadow(0, 1px, 8px, 0.6);
            -moz-box-shadow: 0 0 0 #000; // Because firefox sucks.
          
            &.docked {
              background-color: hsla(210, 60%, 40%, 0.4);
            }
            &:hover {
              background-color: @blue;
            }
          
            #dropdown {
              margin: 0 0 0 117px;
              padding: 0;
              padding-top: 5px;
              display: none;
              width: 190px;
              border-top: 2px solid @medium;
              color: @highlight;
              border: 2px solid darken(@medium, 25%);
              border-left-color: darken(@medium, 15%);
              border-right-color: darken(@medium, 15%);
              border-top-width: 0;
              background-color: darken(@medium, 10%);
              ul {
                padding: 0px;  
              }
              li {
                font-size: 14px;
                display: block;
                text-align: left;
                padding: 0;
                border: 0;
                a {
                  display: block;
                  padding: 0px 15px;  
                  text-decoration: none;
                  color: white;  
                  &:hover {
                    background-color: darken(@medium, 15%);
                    text-decoration: none;
                  }
                }
              }
              .border-radius(5px, bottom);
              .box-shadow(0, 6px, 8px, 0.5);
            }
          }
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers : true,
                  matchBrackets : true,
                  mode: "text/x-less"
                });
              </script>
          
              <p>The LESS mode is a sub-mode of the <a href="index.html">CSS mode</a> (defined in <code>css.js</code>).</p>
          
              <p><strong>Parsing/Highlighting Tests:</strong> <a href="../../test/index.html#less_*">normal</a>,  <a href="../../test/index.html#verbose,less_*">verbose</a>.</p>
            </article>
          
        • less_test.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function() {
            "use strict";
          
            var mode = CodeMirror.getMode({indentUnit: 2}, "text/x-less");
            function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), "less"); }
          
            MT("variable",
               "[variable-2 @base]: [atom #f04615];",
               "[qualifier .class] {",
               "  [property width]: [variable percentage]([number 0.5]); [comment // returns `50%`]",
               "  [property color]: [variable saturate]([variable-2 @base], [number 5%]);",
               "}");
          
            MT("amp",
               "[qualifier .child], [qualifier .sibling] {",
               "  [qualifier .parent] [atom &] {",
               "    [property color]: [keyword black];",
               "  }",
               "  [atom &] + [atom &] {",
               "    [property color]: [keyword red];",
               "  }",
               "}");
          
            MT("mixin",
               "[qualifier .mixin] ([variable dark]; [variable-2 @color]) {",
               "  [property color]: [variable darken]([variable-2 @color], [number 10%]);",
               "}",
               "[qualifier .mixin] ([variable light]; [variable-2 @color]) {",
               "  [property color]: [variable lighten]([variable-2 @color], [number 10%]);",
               "}",
               "[qualifier .mixin] ([variable-2 @_]; [variable-2 @color]) {",
               "  [property display]: [atom block];",
               "}",
               "[variable-2 @switch]: [variable light];",
               "[qualifier .class] {",
               "  [qualifier .mixin]([variable-2 @switch]; [atom #888]);",
               "}");
          
            MT("nest",
               "[qualifier .one] {",
               "  [def @media] ([property width]: [number 400px]) {",
               "    [property font-size]: [number 1.2em];",
               "    [def @media] [attribute print] [keyword and] [property color] {",
               "      [property color]: [keyword blue];",
               "    }",
               "  }",
               "}");
          
          
            MT("interpolation", ".@{[variable foo]} { [property font-weight]: [atom bold]; }");
          })();
          
        • scss.html
          <!doctype html>
          
          <title>CodeMirror: SCSS mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="css.js"></script>
          <style>.CodeMirror {background: #f8f8f8;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">SCSS</a>
            </ul>
          </div>
          
          <article>
          <h2>SCSS mode</h2>
          <form><textarea id="code" name="code">
          /* Some example SCSS */
          
          @import "compass/css3";
          $variable: #333;
          
          $blue: #3bbfce;
          $margin: 16px;
          
          .content-navigation {
            #nested {
              background-color: black;
            }
            border-color: $blue;
            color:
              darken($blue, 9%);
          }
          
          .border {
            padding: $margin / 2;
            margin: $margin / 2;
            border-color: $blue;
          }
          
          @mixin table-base {
            th {
              text-align: center;
              font-weight: bold;
            }
            td, th {padding: 2px}
          }
          
          table.hl {
            margin: 2em 0;
            td.ln {
              text-align: right;
            }
          }
          
          li {
            font: {
              family: serif;
              weight: bold;
              size: 1.2em;
            }
          }
          
          @mixin left($dist) {
            float: left;
            margin-left: $dist;
          }
          
          #data {
            @include left(10px);
            @include table-base;
          }
          
          .source {
            @include flow-into(target);
            border: 10px solid green;
            margin: 20px;
            width: 200px; }
          
          .new-container {
            @include flow-from(target);
            border: 10px solid red;
            margin: 20px;
            width: 200px; }
          
          body {
            margin: 0;
            padding: 3em 6em;
            font-family: tahoma, arial, sans-serif;
            color: #000;
          }
          
          @mixin yellow() {
            background: yellow;
          }
          
          .big {
            font-size: 14px;
          }
          
          .nested {
            @include border-radius(3px);
            @extend .big;
            p {
              background: whitesmoke;
              a {
                color: red;
              }
            }
          }
          
          #navigation a {
            font-weight: bold;
            text-decoration: none !important;
          }
          
          h1 {
            font-size: 2.5em;
          }
          
          h2 {
            font-size: 1.7em;
          }
          
          h1:before, h2:before {
            content: "::";
          }
          
          code {
            font-family: courier, monospace;
            font-size: 80%;
            color: #418A8A;
          }
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  matchBrackets: true,
                  mode: "text/x-scss"
                });
              </script>
          
              <p>The SCSS mode is a sub-mode of the <a href="index.html">CSS mode</a> (defined in <code>css.js</code>).</p>
          
              <p><strong>Parsing/Highlighting Tests:</strong> <a href="../../test/index.html#scss_*">normal</a>,  <a href="../../test/index.html#verbose,scss_*">verbose</a>.</p>
          
            </article>
          
        • scss_test.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function() {
            var mode = CodeMirror.getMode({indentUnit: 2}, "text/x-scss");
            function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), "scss"); }
          
            MT('url_with_quotation',
              "[tag foo] { [property background]:[atom url]([string test.jpg]) }");
          
            MT('url_with_double_quotes',
              "[tag foo] { [property background]:[atom url]([string \"test.jpg\"]) }");
          
            MT('url_with_single_quotes',
              "[tag foo] { [property background]:[atom url]([string \'test.jpg\']) }");
          
            MT('string',
              "[def @import] [string \"compass/css3\"]");
          
            MT('important_keyword',
              "[tag foo] { [property background]:[atom url]([string \'test.jpg\']) [keyword !important] }");
          
            MT('variable',
              "[variable-2 $blue]:[atom #333]");
          
            MT('variable_as_attribute',
              "[tag foo] { [property color]:[variable-2 $blue] }");
          
            MT('numbers',
              "[tag foo] { [property padding]:[number 10px] [number 10] [number 10em] [number 8in] }");
          
            MT('number_percentage',
              "[tag foo] { [property width]:[number 80%] }");
          
            MT('selector',
              "[builtin #hello][qualifier .world]{}");
          
            MT('singleline_comment',
              "[comment // this is a comment]");
          
            MT('multiline_comment',
              "[comment /*foobar*/]");
          
            MT('attribute_with_hyphen',
              "[tag foo] { [property font-size]:[number 10px] }");
          
            MT('string_after_attribute',
              "[tag foo] { [property content]:[string \"::\"] }");
          
            MT('directives',
              "[def @include] [qualifier .mixin]");
          
            MT('basic_structure',
              "[tag p] { [property background]:[keyword red]; }");
          
            MT('nested_structure',
              "[tag p] { [tag a] { [property color]:[keyword red]; } }");
          
            MT('mixin',
              "[def @mixin] [tag table-base] {}");
          
            MT('number_without_semicolon',
              "[tag p] {[property width]:[number 12]}",
              "[tag a] {[property color]:[keyword red];}");
          
            MT('atom_in_nested_block',
              "[tag p] { [tag a] { [property color]:[atom #000]; } }");
          
            MT('interpolation_in_property',
              "[tag foo] { #{[variable-2 $hello]}:[number 2]; }");
          
            MT('interpolation_in_selector',
              "[tag foo]#{[variable-2 $hello]} { [property color]:[atom #000]; }");
          
            MT('interpolation_error',
              "[tag foo]#{[variable foo]} { [property color]:[atom #000]; }");
          
            MT("divide_operator",
              "[tag foo] { [property width]:[number 4] [operator /] [number 2] }");
          
            MT('nested_structure_with_id_selector',
              "[tag p] { [builtin #hello] { [property color]:[keyword red]; } }");
          
            MT('indent_mixin',
               "[def @mixin] [tag container] (",
               "  [variable-2 $a]: [number 10],",
               "  [variable-2 $b]: [number 10])",
               "{}");
          
            MT('indent_nested',
               "[tag foo] {",
               "  [tag bar] {",
               "  }",
               "}");
          
            MT('indent_parentheses',
               "[tag foo] {",
               "  [property color]: [variable darken]([variable-2 $blue],",
               "    [number 9%]);",
               "}");
          
            MT('indent_vardef',
               "[variable-2 $name]:",
               "  [string 'val'];",
               "[tag tag] {",
               "  [tag inner] {",
               "    [property margin]: [number 3px];",
               "  }",
               "}");
          })();
          
        • test.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function() {
            var mode = CodeMirror.getMode({indentUnit: 2}, "css");
            function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
          
            // Error, because "foobarhello" is neither a known type or property, but
            // property was expected (after "and"), and it should be in parentheses.
            MT("atMediaUnknownType",
               "[def @media] [attribute screen] [keyword and] [error foobarhello] { }");
          
            // Soft error, because "foobarhello" is not a known property or type.
            MT("atMediaUnknownProperty",
               "[def @media] [attribute screen] [keyword and] ([error foobarhello]) { }");
          
            // Make sure nesting works with media queries
            MT("atMediaMaxWidthNested",
               "[def @media] [attribute screen] [keyword and] ([property max-width]: [number 25px]) { [tag foo] { } }");
          
            MT("atMediaFeatureValueKeyword",
               "[def @media] ([property orientation]: [keyword landscape]) { }");
          
            MT("atMediaUnknownFeatureValueKeyword",
               "[def @media] ([property orientation]: [error upsidedown]) { }");
          
            MT("tagSelector",
               "[tag foo] { }");
          
            MT("classSelector",
               "[qualifier .foo-bar_hello] { }");
          
            MT("idSelector",
               "[builtin #foo] { [error #foo] }");
          
            MT("tagSelectorUnclosed",
               "[tag foo] { [property margin]: [number 0] } [tag bar] { }");
          
            MT("tagStringNoQuotes",
               "[tag foo] { [property font-family]: [variable hello] [variable world]; }");
          
            MT("tagStringDouble",
               "[tag foo] { [property font-family]: [string \"hello world\"]; }");
          
            MT("tagStringSingle",
               "[tag foo] { [property font-family]: [string 'hello world']; }");
          
            MT("tagColorKeyword",
               "[tag foo] {",
               "  [property color]: [keyword black];",
               "  [property color]: [keyword navy];",
               "  [property color]: [keyword yellow];",
               "}");
          
            MT("tagColorHex3",
               "[tag foo] { [property background]: [atom #fff]; }");
          
            MT("tagColorHex6",
               "[tag foo] { [property background]: [atom #ffffff]; }");
          
            MT("tagColorHex4",
               "[tag foo] { [property background]: [atom&error #ffff]; }");
          
            MT("tagColorHexInvalid",
               "[tag foo] { [property background]: [atom&error #ffg]; }");
          
            MT("tagNegativeNumber",
               "[tag foo] { [property margin]: [number -5px]; }");
          
            MT("tagPositiveNumber",
               "[tag foo] { [property padding]: [number 5px]; }");
          
            MT("tagVendor",
               "[tag foo] { [meta -foo-][property box-sizing]: [meta -foo-][atom border-box]; }");
          
            MT("tagBogusProperty",
               "[tag foo] { [property&error barhelloworld]: [number 0]; }");
          
            MT("tagTwoProperties",
               "[tag foo] { [property margin]: [number 0]; [property padding]: [number 0]; }");
          
            MT("tagTwoPropertiesURL",
               "[tag foo] { [property background]: [atom url]([string //example.com/foo.png]); [property padding]: [number 0]; }");
          
            MT("indent_tagSelector",
               "[tag strong], [tag em] {",
               "  [property background]: [atom rgba](",
               "    [number 255], [number 255], [number 0], [number .2]",
               "  );",
               "}");
          
            MT("indent_atMedia",
               "[def @media] {",
               "  [tag foo] {",
               "    [property color]:",
               "      [keyword yellow];",
               "  }",
               "}");
          
            MT("indent_comma",
               "[tag foo] {",
               "  [property font-family]: [variable verdana],",
               "    [atom sans-serif];",
               "}");
          
            MT("indent_parentheses",
               "[tag foo]:[variable-3 before] {",
               "  [property background]: [atom url](",
               "[string     blahblah]",
               "[string     etc]",
               "[string   ]) [keyword !important];",
               "}");
          
            MT("font_face",
               "[def @font-face] {",
               "  [property font-family]: [string 'myfont'];",
               "  [error nonsense]: [string 'abc'];",
               "  [property src]: [atom url]([string http://blah]),",
               "    [atom url]([string http://foo]);",
               "}");
          
            MT("empty_url",
               "[def @import] [atom url]() [attribute screen];");
          
            MT("parens",
               "[qualifier .foo] {",
               "  [property background-image]: [variable fade]([atom #000], [number 20%]);",
               "  [property border-image]: [atom linear-gradient](",
               "    [atom to] [atom bottom],",
               "    [variable fade]([atom #000], [number 20%]) [number 0%],",
               "    [variable fade]([atom #000], [number 20%]) [number 100%]",
               "  );",
               "}");
          
            MT("css_variable",
               ":[variable-3 root] {",
               "  [variable-2 --main-color]: [atom #06c];",
               "}",
               "[tag h1][builtin #foo] {",
               "  [property color]: [atom var]([variable-2 --main-color]);",
               "}");
          
            MT("supports",
               "[def @supports] ([keyword not] (([property text-align-last]: [atom justify]) [keyword or] ([meta -moz-][property text-align-last]: [atom justify])) {",
               "  [property text-align-last]: [atom justify];",
               "}");
          
             MT("document",
                "[def @document] [tag url]([string http://blah]),",
                "  [tag url-prefix]([string https://]),",
                "  [tag domain]([string blah.com]),",
                "  [tag regexp]([string \".*blah.+\"]) {",
                "    [builtin #id] {",
                "      [property background-color]: [keyword white];",
                "    }",
                "    [tag foo] {",
                "      [property font-family]: [variable Verdana], [atom sans-serif];",
                "    }",
                "}");
          
             MT("document_url",
                "[def @document] [tag url]([string http://blah]) { [qualifier .class] { } }");
          
             MT("document_urlPrefix",
                "[def @document] [tag url-prefix]([string https://]) { [builtin #id] { } }");
          
             MT("document_domain",
                "[def @document] [tag domain]([string blah.com]) { [tag foo] { } }");
          
             MT("document_regexp",
                "[def @document] [tag regexp]([string \".*blah.+\"]) { [builtin #id] { } }");
          
             MT("counter-style",
                "[def @counter-style] [variable binary] {",
                "  [property system]: [atom numeric];",
                "  [property symbols]: [number 0] [number 1];",
                "  [property suffix]: [string \".\"];",
                "  [property range]: [atom infinite];",
                "  [property speak-as]: [atom numeric];",
                "}");
          
             MT("counter-style-additive-symbols",
                "[def @counter-style] [variable simple-roman] {",
                "  [property system]: [atom additive];",
                "  [property additive-symbols]: [number 10] [variable X], [number 5] [variable V], [number 1] [variable I];",
                "  [property range]: [number 1] [number 49];",
                "}");
          
             MT("counter-style-use",
                "[tag ol][qualifier .roman] { [property list-style]: [variable simple-roman]; }");
          
             MT("counter-style-symbols",
                "[tag ol] { [property list-style]: [atom symbols]([atom cyclic] [string \"*\"] [string \"\\2020\"] [string \"\\2021\"] [string \"\\A7\"]); }");
          })();
          
      • cypher
        • cypher.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // By the Neo4j Team and contributors.
          // https://github.com/neo4j-contrib/CodeMirror
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
            var wordRegexp = function(words) {
              return new RegExp("^(?:" + words.join("|") + ")$", "i");
            };
          
            CodeMirror.defineMode("cypher", function(config) {
              var tokenBase = function(stream/*, state*/) {
                var ch = stream.next();
                if (ch === "\"" || ch === "'") {
                  stream.match(/.+?["']/);
                  return "string";
                }
                if (/[{}\(\),\.;\[\]]/.test(ch)) {
                  curPunc = ch;
                  return "node";
                } else if (ch === "/" && stream.eat("/")) {
                  stream.skipToEnd();
                  return "comment";
                } else if (operatorChars.test(ch)) {
                  stream.eatWhile(operatorChars);
                  return null;
                } else {
                  stream.eatWhile(/[_\w\d]/);
                  if (stream.eat(":")) {
                    stream.eatWhile(/[\w\d_\-]/);
                    return "atom";
                  }
                  var word = stream.current();
                  if (funcs.test(word)) return "builtin";
                  if (preds.test(word)) return "def";
                  if (keywords.test(word)) return "keyword";
                  return "variable";
                }
              };
              var pushContext = function(state, type, col) {
                return state.context = {
                  prev: state.context,
                  indent: state.indent,
                  col: col,
                  type: type
                };
              };
              var popContext = function(state) {
                state.indent = state.context.indent;
                return state.context = state.context.prev;
              };
              var indentUnit = config.indentUnit;
              var curPunc;
              var funcs = wordRegexp(["abs", "acos", "allShortestPaths", "asin", "atan", "atan2", "avg", "ceil", "coalesce", "collect", "cos", "cot", "count", "degrees", "e", "endnode", "exp", "extract", "filter", "floor", "haversin", "head", "id", "keys", "labels", "last", "left", "length", "log", "log10", "lower", "ltrim", "max", "min", "node", "nodes", "percentileCont", "percentileDisc", "pi", "radians", "rand", "range", "reduce", "rel", "relationship", "relationships", "replace", "reverse", "right", "round", "rtrim", "shortestPath", "sign", "sin", "size", "split", "sqrt", "startnode", "stdev", "stdevp", "str", "substring", "sum", "tail", "tan", "timestamp", "toFloat", "toInt", "toString", "trim", "type", "upper"]);
              var preds = wordRegexp(["all", "and", "any", "contains", "exists", "has", "in", "none", "not", "or", "single", "xor"]);
              var keywords = wordRegexp(["as", "asc", "ascending", "assert", "by", "case", "commit", "constraint", "create", "csv", "cypher", "delete", "desc", "descending", "detach", "distinct", "drop", "else", "end", "ends", "explain", "false", "fieldterminator", "foreach", "from", "headers", "in", "index", "is", "join", "limit", "load", "match", "merge", "null", "on", "optional", "order", "periodic", "profile", "remove", "return", "scan", "set", "skip", "start", "starts", "then", "true", "union", "unique", "unwind", "using", "when", "where", "with"]);
              var operatorChars = /[*+\-<>=&|~%^]/;
          
              return {
                startState: function(/*base*/) {
                  return {
                    tokenize: tokenBase,
                    context: null,
                    indent: 0,
                    col: 0
                  };
                },
                token: function(stream, state) {
                  if (stream.sol()) {
                    if (state.context && (state.context.align == null)) {
                      state.context.align = false;
                    }
                    state.indent = stream.indentation();
                  }
                  if (stream.eatSpace()) {
                    return null;
                  }
                  var style = state.tokenize(stream, state);
                  if (style !== "comment" && state.context && (state.context.align == null) && state.context.type !== "pattern") {
                    state.context.align = true;
                  }
                  if (curPunc === "(") {
                    pushContext(state, ")", stream.column());
                  } else if (curPunc === "[") {
                    pushContext(state, "]", stream.column());
                  } else if (curPunc === "{") {
                    pushContext(state, "}", stream.column());
                  } else if (/[\]\}\)]/.test(curPunc)) {
                    while (state.context && state.context.type === "pattern") {
                      popContext(state);
                    }
                    if (state.context && curPunc === state.context.type) {
                      popContext(state);
                    }
                  } else if (curPunc === "." && state.context && state.context.type === "pattern") {
                    popContext(state);
                  } else if (/atom|string|variable/.test(style) && state.context) {
                    if (/[\}\]]/.test(state.context.type)) {
                      pushContext(state, "pattern", stream.column());
                    } else if (state.context.type === "pattern" && !state.context.align) {
                      state.context.align = true;
                      state.context.col = stream.column();
                    }
                  }
                  return style;
                },
                indent: function(state, textAfter) {
                  var firstChar = textAfter && textAfter.charAt(0);
                  var context = state.context;
                  if (/[\]\}]/.test(firstChar)) {
                    while (context && context.type === "pattern") {
                      context = context.prev;
                    }
                  }
                  var closing = context && firstChar === context.type;
                  if (!context) return 0;
                  if (context.type === "keywords") return CodeMirror.commands.newlineAndIndent;
                  if (context.align) return context.col + (closing ? 0 : 1);
                  return context.indent + (closing ? 0 : indentUnit);
                }
              };
            });
          
            CodeMirror.modeExtensions["cypher"] = {
              autoFormatLineBreaks: function(text) {
                var i, lines, reProcessedPortion;
                var lines = text.split("\n");
                var reProcessedPortion = /\s+\b(return|where|order by|match|with|skip|limit|create|delete|set)\b\s/g;
                for (var i = 0; i < lines.length; i++)
                  lines[i] = lines[i].replace(reProcessedPortion, " \n$1 ").trim();
                return lines.join("\n");
              }
            };
          
            CodeMirror.defineMIME("application/x-cypher-query", "cypher");
          
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Cypher Mode for CodeMirror</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css" />
          <link rel="stylesheet" href="../../theme/neo.css" />
          <script src="../../lib/codemirror.js"></script>
          <script src="cypher.js"></script>
          <style>
          .CodeMirror {
              border-top: 1px solid black;
              border-bottom: 1px solid black;
          }
                  </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Cypher Mode for CodeMirror</a>
            </ul>
          </div>
          
          <article>
          <h2>Cypher Mode for CodeMirror</h2>
          <form>
                      <textarea id="code" name="code">// Cypher Mode for CodeMirror, using the neo theme
          MATCH (joe { name: 'Joe' })-[:knows*2..2]-(friend_of_friend)
          WHERE NOT (joe)-[:knows]-(friend_of_friend)
          RETURN friend_of_friend.name, COUNT(*)
          ORDER BY COUNT(*) DESC , friend_of_friend.name
          </textarea>
                      </form>
                      <p><strong>MIME types defined:</strong> 
                      <code><a href="?mime=application/x-cypher-query">application/x-cypher-query</a></code>
                  </p>
          <script>
          window.onload = function() {
            var mime = 'application/x-cypher-query';
            // get mime type
            if (window.location.href.indexOf('mime=') > -1) {
              mime = window.location.href.substr(window.location.href.indexOf('mime=') + 5);
            }
            window.editor = CodeMirror.fromTextArea(document.getElementById('code'), {
              mode: mime,
              indentWithTabs: true,
              smartIndent: true,
              lineNumbers: true,
              matchBrackets : true,
              autofocus: true,
              theme: 'neo'
            });
          };
          </script>
          
          </article>
          
      • d
        • d.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("d", function(config, parserConfig) {
            var indentUnit = config.indentUnit,
                statementIndentUnit = parserConfig.statementIndentUnit || indentUnit,
                keywords = parserConfig.keywords || {},
                builtin = parserConfig.builtin || {},
                blockKeywords = parserConfig.blockKeywords || {},
                atoms = parserConfig.atoms || {},
                hooks = parserConfig.hooks || {},
                multiLineStrings = parserConfig.multiLineStrings;
            var isOperatorChar = /[+\-*&%=<>!?|\/]/;
          
            var curPunc;
          
            function tokenBase(stream, state) {
              var ch = stream.next();
              if (hooks[ch]) {
                var result = hooks[ch](stream, state);
                if (result !== false) return result;
              }
              if (ch == '"' || ch == "'" || ch == "`") {
                state.tokenize = tokenString(ch);
                return state.tokenize(stream, state);
              }
              if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
                curPunc = ch;
                return null;
              }
              if (/\d/.test(ch)) {
                stream.eatWhile(/[\w\.]/);
                return "number";
              }
              if (ch == "/") {
                if (stream.eat("+")) {
                  state.tokenize = tokenComment;
                  return tokenNestedComment(stream, state);
                }
                if (stream.eat("*")) {
                  state.tokenize = tokenComment;
                  return tokenComment(stream, state);
                }
                if (stream.eat("/")) {
                  stream.skipToEnd();
                  return "comment";
                }
              }
              if (isOperatorChar.test(ch)) {
                stream.eatWhile(isOperatorChar);
                return "operator";
              }
              stream.eatWhile(/[\w\$_\xa1-\uffff]/);
              var cur = stream.current();
              if (keywords.propertyIsEnumerable(cur)) {
                if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement";
                return "keyword";
              }
              if (builtin.propertyIsEnumerable(cur)) {
                if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement";
                return "builtin";
              }
              if (atoms.propertyIsEnumerable(cur)) return "atom";
              return "variable";
            }
          
            function tokenString(quote) {
              return function(stream, state) {
                var escaped = false, next, end = false;
                while ((next = stream.next()) != null) {
                  if (next == quote && !escaped) {end = true; break;}
                  escaped = !escaped && next == "\\";
                }
                if (end || !(escaped || multiLineStrings))
                  state.tokenize = null;
                return "string";
              };
            }
          
            function tokenComment(stream, state) {
              var maybeEnd = false, ch;
              while (ch = stream.next()) {
                if (ch == "/" && maybeEnd) {
                  state.tokenize = null;
                  break;
                }
                maybeEnd = (ch == "*");
              }
              return "comment";
            }
          
            function tokenNestedComment(stream, state) {
              var maybeEnd = false, ch;
              while (ch = stream.next()) {
                if (ch == "/" && maybeEnd) {
                  state.tokenize = null;
                  break;
                }
                maybeEnd = (ch == "+");
              }
              return "comment";
            }
          
            function Context(indented, column, type, align, prev) {
              this.indented = indented;
              this.column = column;
              this.type = type;
              this.align = align;
              this.prev = prev;
            }
            function pushContext(state, col, type) {
              var indent = state.indented;
              if (state.context && state.context.type == "statement")
                indent = state.context.indented;
              return state.context = new Context(indent, col, type, null, state.context);
            }
            function popContext(state) {
              var t = state.context.type;
              if (t == ")" || t == "]" || t == "}")
                state.indented = state.context.indented;
              return state.context = state.context.prev;
            }
          
            // Interface
          
            return {
              startState: function(basecolumn) {
                return {
                  tokenize: null,
                  context: new Context((basecolumn || 0) - indentUnit, 0, "top", false),
                  indented: 0,
                  startOfLine: true
                };
              },
          
              token: function(stream, state) {
                var ctx = state.context;
                if (stream.sol()) {
                  if (ctx.align == null) ctx.align = false;
                  state.indented = stream.indentation();
                  state.startOfLine = true;
                }
                if (stream.eatSpace()) return null;
                curPunc = null;
                var style = (state.tokenize || tokenBase)(stream, state);
                if (style == "comment" || style == "meta") return style;
                if (ctx.align == null) ctx.align = true;
          
                if ((curPunc == ";" || curPunc == ":" || curPunc == ",") && ctx.type == "statement") popContext(state);
                else if (curPunc == "{") pushContext(state, stream.column(), "}");
                else if (curPunc == "[") pushContext(state, stream.column(), "]");
                else if (curPunc == "(") pushContext(state, stream.column(), ")");
                else if (curPunc == "}") {
                  while (ctx.type == "statement") ctx = popContext(state);
                  if (ctx.type == "}") ctx = popContext(state);
                  while (ctx.type == "statement") ctx = popContext(state);
                }
                else if (curPunc == ctx.type) popContext(state);
                else if (((ctx.type == "}" || ctx.type == "top") && curPunc != ';') || (ctx.type == "statement" && curPunc == "newstatement"))
                  pushContext(state, stream.column(), "statement");
                state.startOfLine = false;
                return style;
              },
          
              indent: function(state, textAfter) {
                if (state.tokenize != tokenBase && state.tokenize != null) return CodeMirror.Pass;
                var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);
                if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev;
                var closing = firstChar == ctx.type;
                if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : statementIndentUnit);
                else if (ctx.align) return ctx.column + (closing ? 0 : 1);
                else return ctx.indented + (closing ? 0 : indentUnit);
              },
          
              electricChars: "{}"
            };
          });
          
            function words(str) {
              var obj = {}, words = str.split(" ");
              for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
              return obj;
            }
          
            var blockKeywords = "body catch class do else enum for foreach foreach_reverse if in interface mixin " +
                                "out scope struct switch try union unittest version while with";
          
            CodeMirror.defineMIME("text/x-d", {
              name: "d",
              keywords: words("abstract alias align asm assert auto break case cast cdouble cent cfloat const continue " +
                              "debug default delegate delete deprecated export extern final finally function goto immutable " +
                              "import inout invariant is lazy macro module new nothrow override package pragma private " +
                              "protected public pure ref return shared short static super synchronized template this " +
                              "throw typedef typeid typeof volatile __FILE__ __LINE__ __gshared __traits __vector __parameters " +
                              blockKeywords),
              blockKeywords: words(blockKeywords),
              builtin: words("bool byte char creal dchar double float idouble ifloat int ireal long real short ubyte " +
                             "ucent uint ulong ushort wchar wstring void size_t sizediff_t"),
              atoms: words("exit failure success true false null"),
              hooks: {
                "@": function(stream, _state) {
                  stream.eatWhile(/[\w\$_]/);
                  return "meta";
                }
              }
            });
          
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: D mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="d.js"></script>
          <style>.CodeMirror {border: 2px inset #dee;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">D</a>
            </ul>
          </div>
          
          <article>
          <h2>D mode</h2>
          <form><textarea id="code" name="code">
          /* D demo code // copied from phobos/sd/metastrings.d */
          // Written in the D programming language.
          
          /**
          Templates with which to do compile-time manipulation of strings.
          
          Macros:
           WIKI = Phobos/StdMetastrings
          
          Copyright: Copyright Digital Mars 2007 - 2009.
          License:   <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
          Authors:   $(WEB digitalmars.com, Walter Bright),
                     Don Clugston
          Source:    $(PHOBOSSRC std/_metastrings.d)
          */
          /*
                   Copyright Digital Mars 2007 - 2009.
          Distributed under the Boost Software License, Version 1.0.
             (See accompanying file LICENSE_1_0.txt or copy at
                   http://www.boost.org/LICENSE_1_0.txt)
           */
          module std.metastrings;
          
          /**
          Formats constants into a string at compile time.  Analogous to $(XREF
          string,format).
          
          Parameters:
          
          A = tuple of constants, which can be strings, characters, or integral
              values.
          
          Formats:
           *    The formats supported are %s for strings, and %%
           *    for the % character.
          Example:
          ---
          import std.metastrings;
          import std.stdio;
          
          void main()
          {
            string s = Format!("Arg %s = %s", "foo", 27);
            writefln(s); // "Arg foo = 27"
          }
           * ---
           */
          
          template Format(A...)
          {
              static if (A.length == 0)
                  enum Format = "";
              else static if (is(typeof(A[0]) : const(char)[]))
                  enum Format = FormatString!(A[0], A[1..$]);
              else
                  enum Format = toStringNow!(A[0]) ~ Format!(A[1..$]);
          }
          
          template FormatString(const(char)[] F, A...)
          {
              static if (F.length == 0)
                  enum FormatString = Format!(A);
              else static if (F.length == 1)
                  enum FormatString = F[0] ~ Format!(A);
              else static if (F[0..2] == "%s")
                  enum FormatString
                      = toStringNow!(A[0]) ~ FormatString!(F[2..$],A[1..$]);
              else static if (F[0..2] == "%%")
                  enum FormatString = "%" ~ FormatString!(F[2..$],A);
              else
              {
                  static assert(F[0] != '%', "unrecognized format %" ~ F[1]);
                  enum FormatString = F[0] ~ FormatString!(F[1..$],A);
              }
          }
          
          unittest
          {
              auto s = Format!("hel%slo", "world", -138, 'c', true);
              assert(s == "helworldlo-138ctrue", "[" ~ s ~ "]");
          }
          
          /**
           * Convert constant argument to a string.
           */
          
          template toStringNow(ulong v)
          {
              static if (v < 10)
                  enum toStringNow = "" ~ cast(char)(v + '0');
              else
                  enum toStringNow = toStringNow!(v / 10) ~ toStringNow!(v % 10);
          }
          
          unittest
          {
              static assert(toStringNow!(1uL << 62) == "4611686018427387904");
          }
          
          /// ditto
          template toStringNow(long v)
          {
              static if (v < 0)
                  enum toStringNow = "-" ~ toStringNow!(cast(ulong) -v);
              else
                  enum toStringNow = toStringNow!(cast(ulong) v);
          }
          
          unittest
          {
              static assert(toStringNow!(0x100000000) == "4294967296");
              static assert(toStringNow!(-138L) == "-138");
          }
          
          /// ditto
          template toStringNow(uint U)
          {
              enum toStringNow = toStringNow!(cast(ulong)U);
          }
          
          /// ditto
          template toStringNow(int I)
          {
              enum toStringNow = toStringNow!(cast(long)I);
          }
          
          /// ditto
          template toStringNow(bool B)
          {
              enum toStringNow = B ? "true" : "false";
          }
          
          /// ditto
          template toStringNow(string S)
          {
              enum toStringNow = S;
          }
          
          /// ditto
          template toStringNow(char C)
          {
              enum toStringNow = "" ~ C;
          }
          
          
          /********
           * Parse unsigned integer literal from the start of string s.
           * returns:
           *    .value = the integer literal as a string,
           *    .rest = the string following the integer literal
           * Otherwise:
           *    .value = null,
           *    .rest = s
           */
          
          template parseUinteger(const(char)[] s)
          {
              static if (s.length == 0)
              {
                  enum value = "";
                  enum rest = "";
              }
              else static if (s[0] >= '0' && s[0] <= '9')
              {
                  enum value = s[0] ~ parseUinteger!(s[1..$]).value;
                  enum rest = parseUinteger!(s[1..$]).rest;
              }
              else
              {
                  enum value = "";
                  enum rest = s;
              }
          }
          
          /********
          Parse integer literal optionally preceded by $(D '-') from the start
          of string $(D s).
          
          Returns:
             .value = the integer literal as a string,
             .rest = the string following the integer literal
          
          Otherwise:
             .value = null,
             .rest = s
          */
          
          template parseInteger(const(char)[] s)
          {
              static if (s.length == 0)
              {
                  enum value = "";
                  enum rest = "";
              }
              else static if (s[0] >= '0' && s[0] <= '9')
              {
                  enum value = s[0] ~ parseUinteger!(s[1..$]).value;
                  enum rest = parseUinteger!(s[1..$]).rest;
              }
              else static if (s.length >= 2 &&
                      s[0] == '-' && s[1] >= '0' && s[1] <= '9')
              {
                  enum value = s[0..2] ~ parseUinteger!(s[2..$]).value;
                  enum rest = parseUinteger!(s[2..$]).rest;
              }
              else
              {
                  enum value = "";
                  enum rest = s;
              }
          }
          
          unittest
          {
              assert(parseUinteger!("1234abc").value == "1234");
              assert(parseUinteger!("1234abc").rest == "abc");
              assert(parseInteger!("-1234abc").value == "-1234");
              assert(parseInteger!("-1234abc").rest == "abc");
          }
          
          /**
          Deprecated aliases held for backward compatibility.
          */
          deprecated alias toStringNow ToString;
          /// Ditto
          deprecated alias parseUinteger ParseUinteger;
          /// Ditto
          deprecated alias parseUinteger ParseInteger;
          
          </textarea></form>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  matchBrackets: true,
                  indentUnit: 4,
                  mode: "text/x-d"
                });
              </script>
          
              <p>Simple mode that handle D-Syntax (<a href="http://www.dlang.org">DLang Homepage</a>).</p>
          
              <p><strong>MIME types defined:</strong> <code>text/x-d</code>
              .</p>
            </article>
          
      • dart
        • dart.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("../clike/clike"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "../clike/clike"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            var keywords = ("this super static final const abstract class extends external factory " +
              "implements get native operator set typedef with enum throw rethrow " +
              "assert break case continue default in return new deferred async await " +
              "try catch finally do else for if switch while import library export " +
              "part of show hide is").split(" ");
            var blockKeywords = "try catch finally do else for if switch while".split(" ");
            var atoms = "true false null".split(" ");
            var builtins = "void bool num int double dynamic var String".split(" ");
          
            function set(words) {
              var obj = {};
              for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
              return obj;
            }
          
            function pushInterpolationStack(state) {
              (state.interpolationStack || (state.interpolationStack = [])).push(state.tokenize);
            }
          
            function popInterpolationStack(state) {
              return (state.interpolationStack || (state.interpolationStack = [])).pop();
            }
          
            function sizeInterpolationStack(state) {
              return state.interpolationStack ? state.interpolationStack.length : 0;
            }
          
            CodeMirror.defineMIME("application/dart", {
              name: "clike",
              keywords: set(keywords),
              blockKeywords: set(blockKeywords),
              builtin: set(builtins),
              atoms: set(atoms),
              hooks: {
                "@": function(stream) {
                  stream.eatWhile(/[\w\$_]/);
                  return "meta";
                },
          
                // custom string handling to deal with triple-quoted strings and string interpolation
                "'": function(stream, state) {
                  return tokenString("'", stream, state, false);
                },
                "\"": function(stream, state) {
                  return tokenString("\"", stream, state, false);
                },
                "r": function(stream, state) {
                  var peek = stream.peek();
                  if (peek == "'" || peek == "\"") {
                    return tokenString(stream.next(), stream, state, true);
                  }
                  return false;
                },
          
                "}": function(_stream, state) {
                  // "}" is end of interpolation, if interpolation stack is non-empty
                  if (sizeInterpolationStack(state) > 0) {
                    state.tokenize = popInterpolationStack(state);
                    return null;
                  }
                  return false;
                }
              }
            });
          
            function tokenString(quote, stream, state, raw) {
              var tripleQuoted = false;
              if (stream.eat(quote)) {
                if (stream.eat(quote)) tripleQuoted = true;
                else return "string"; //empty string
              }
              function tokenStringHelper(stream, state) {
                var escaped = false;
                while (!stream.eol()) {
                  if (!raw && !escaped && stream.peek() == "$") {
                    pushInterpolationStack(state);
                    state.tokenize = tokenInterpolation;
                    return "string";
                  }
                  var next = stream.next();
                  if (next == quote && !escaped && (!tripleQuoted || stream.match(quote + quote))) {
                    state.tokenize = null;
                    break;
                  }
                  escaped = !escaped && next == "\\";
                }
                return "string";
              }
              state.tokenize = tokenStringHelper;
              return tokenStringHelper(stream, state);
            }
          
            function tokenInterpolation(stream, state) {
              stream.eat("$");
              if (stream.eat("{")) {
                // let clike handle the content of ${...},
                // we take over again when "}" appears (see hooks).
                state.tokenize = null;
              } else {
                state.tokenize = tokenInterpolationIdentifier;
              }
              return null;
            }
          
            function tokenInterpolationIdentifier(stream, state) {
              stream.eatWhile(/[\w_]/);
              state.tokenize = popInterpolationStack(state);
              return "variable";
            }
          
            CodeMirror.registerHelper("hintWords", "application/dart", keywords.concat(atoms).concat(builtins));
          
            // This is needed to make loading through meta.js work.
            CodeMirror.defineMode("dart", function(conf) {
              return CodeMirror.getMode(conf, "application/dart");
            }, "clike");
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Dart mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../clike/clike.js"></script>
          <script src="dart.js"></script>
          <style>.CodeMirror {border: 1px solid #dee;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Dart</a>
            </ul>
          </div>
          
          <article>
          <h2>Dart mode</h2>
          <form>
          <textarea id="code" name="code">
          import 'dart:math' show Random;
          
          void main() {
            print(new Die(n: 12).roll());
          }
          
          // Define a class.
          class Die {
            // Define a class variable.
            static Random shaker = new Random();
          
            // Define instance variables.
            int sides, value;
          
            // Define a method using shorthand syntax.
            String toString() => '$value';
          
            // Define a constructor.
            Die({int n: 6}) {
              if (4 <= n && n <= 20) {
                sides = n;
              } else {
                // Support for errors and exceptions.
                throw new ArgumentError(/* */);
              }
            }
          
            // Define an instance method.
            int roll() {
              return value = shaker.nextInt(sides) + 1;
            }
          }
          </textarea>
          </form>
          
          <script>
            var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
              lineNumbers: true,
              mode: "application/dart"
            });
          </script>
          
          </article>
          
      • diff
        • diff.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("diff", function() {
          
            var TOKEN_NAMES = {
              '+': 'positive',
              '-': 'negative',
              '@': 'meta'
            };
          
            return {
              token: function(stream) {
                var tw_pos = stream.string.search(/[\t ]+?$/);
          
                if (!stream.sol() || tw_pos === 0) {
                  stream.skipToEnd();
                  return ("error " + (
                    TOKEN_NAMES[stream.string.charAt(0)] || '')).replace(/ $/, '');
                }
          
                var token_name = TOKEN_NAMES[stream.peek()] || stream.skipToEnd();
          
                if (tw_pos === -1) {
                  stream.skipToEnd();
                } else {
                  stream.pos = tw_pos;
                }
          
                return token_name;
              }
            };
          });
          
          CodeMirror.defineMIME("text/x-diff", "diff");
          
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Diff mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="diff.js"></script>
          <style>
                .CodeMirror {border-top: 1px solid #ddd; border-bottom: 1px solid #ddd;}
                span.cm-meta {color: #a0b !important;}
                span.cm-error { background-color: black; opacity: 0.4;}
                span.cm-error.cm-string { background-color: red; }
                span.cm-error.cm-tag { background-color: #2b2; }
              </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Diff</a>
            </ul>
          </div>
          
          <article>
          <h2>Diff mode</h2>
          <form><textarea id="code" name="code">
          diff --git a/index.html b/index.html
          index c1d9156..7764744 100644
          --- a/index.html
          +++ b/index.html
          @@ -95,7 +95,8 @@ StringStream.prototype = {
               <script>
                 var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                   lineNumbers: true,
          -        autoMatchBrackets: true
          +        autoMatchBrackets: true,
          +      onGutterClick: function(x){console.log(x);}
                 });
               </script>
             </body>
          diff --git a/lib/codemirror.js b/lib/codemirror.js
          index 04646a9..9a39cc7 100644
          --- a/lib/codemirror.js
          +++ b/lib/codemirror.js
          @@ -399,10 +399,16 @@ var CodeMirror = (function() {
               }
           
               function onMouseDown(e) {
          -      var start = posFromMouse(e), last = start;    
          +      var start = posFromMouse(e), last = start, target = e.target();
                 if (!start) return;
                 setCursor(start.line, start.ch, false);
                 if (e.button() != 1) return;
          +      if (target.parentNode == gutter) {    
          +        if (options.onGutterClick)
          +          options.onGutterClick(indexOf(gutter.childNodes, target) + showingFrom);
          +        return;
          +      }
          +
                 if (!focused) onFocus();
           
                 e.stop();
          @@ -808,7 +814,7 @@ var CodeMirror = (function() {
                 for (var i = showingFrom; i < showingTo; ++i) {
                   var marker = lines[i].gutterMarker;
                   if (marker) html.push('<div class="' + marker.style + '">' + htmlEscape(marker.text) + '</div>');
          -        else html.push("<div>" + (options.lineNumbers ? i + 1 : "\u00a0") + "</div>");
          +        else html.push("<div>" + (options.lineNumbers ? i + options.firstLineNumber : "\u00a0") + "</div>");
                 }
                 gutter.style.display = "none"; // TODO test whether this actually helps
                 gutter.innerHTML = html.join("");
          @@ -1371,10 +1377,8 @@ var CodeMirror = (function() {
                   if (option == "parser") setParser(value);
                   else if (option === "lineNumbers") setLineNumbers(value);
                   else if (option === "gutter") setGutter(value);
          -        else if (option === "readOnly") options.readOnly = value;
          -        else if (option === "indentUnit") {options.indentUnit = indentUnit = value; setParser(options.parser);}
          -        else if (/^(?:enterMode|tabMode|indentWithTabs|readOnly|autoMatchBrackets|undoDepth)$/.test(option)) options[option] = value;
          -        else throw new Error("Can't set option " + option);
          +        else if (option === "indentUnit") {options.indentUnit = value; setParser(options.parser);}
          +        else options[option] = value;
                 },
                 cursorCoords: cursorCoords,
                 undo: operation(undo),
          @@ -1402,7 +1406,8 @@ var CodeMirror = (function() {
                 replaceRange: operation(replaceRange),
           
                 operation: function(f){return operation(f)();},
          -      refresh: function(){updateDisplay([{from: 0, to: lines.length}]);}
          +      refresh: function(){updateDisplay([{from: 0, to: lines.length}]);},
          +      getInputField: function(){return input;}
               };
               return instance;
             }
          @@ -1420,6 +1425,7 @@ var CodeMirror = (function() {
               readOnly: false,
               onChange: null,
               onCursorActivity: null,
          +    onGutterClick: null,
               autoMatchBrackets: false,
               workTime: 200,
               workDelay: 300,
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {});
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-diff</code>.</p>
          
            </article>
          
      • django
        • django.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"),
                  require("../../addon/mode/overlay"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "../htmlmixed/htmlmixed",
                      "../../addon/mode/overlay"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineMode("django:inner", function() {
              var keywords = ["block", "endblock", "for", "endfor", "true", "false",
                              "loop", "none", "self", "super", "if", "endif", "as",
                              "else", "import", "with", "endwith", "without", "context", "ifequal", "endifequal",
                              "ifnotequal", "endifnotequal", "extends", "include", "load", "comment",
                              "endcomment", "empty", "url", "static", "trans", "blocktrans", "now", "regroup",
                              "lorem", "ifchanged", "endifchanged", "firstof", "debug", "cycle", "csrf_token",
                              "autoescape", "endautoescape", "spaceless", "ssi", "templatetag",
                              "verbatim", "endverbatim", "widthratio"],
                  filters = ["add", "addslashes", "capfirst", "center", "cut", "date",
                             "default", "default_if_none", "dictsort",
                             "dictsortreversed", "divisibleby", "escape", "escapejs",
                             "filesizeformat", "first", "floatformat", "force_escape",
                             "get_digit", "iriencode", "join", "last", "length",
                             "length_is", "linebreaks", "linebreaksbr", "linenumbers",
                             "ljust", "lower", "make_list", "phone2numeric", "pluralize",
                             "pprint", "random", "removetags", "rjust", "safe",
                             "safeseq", "slice", "slugify", "stringformat", "striptags",
                             "time", "timesince", "timeuntil", "title", "truncatechars",
                             "truncatechars_html", "truncatewords", "truncatewords_html",
                             "unordered_list", "upper", "urlencode", "urlize",
                             "urlizetrunc", "wordcount", "wordwrap", "yesno"],
                  operators = ["==", "!=", "<", ">", "<=", ">=", "in", "not", "or", "and"];
          
              keywords = new RegExp("^\\b(" + keywords.join("|") + ")\\b");
              filters = new RegExp("^\\b(" + filters.join("|") + ")\\b");
              operators = new RegExp("^\\b(" + operators.join("|") + ")\\b");
          
              // We have to return "null" instead of null, in order to avoid string
              // styling as the default, when using Django templates inside HTML
              // element attributes
              function tokenBase (stream, state) {
                // Attempt to identify a variable, template or comment tag respectively
                if (stream.match("{{")) {
                  state.tokenize = inVariable;
                  return "tag";
                } else if (stream.match("{%")) {
                  state.tokenize = inTag;
                  return "tag";
                } else if (stream.match("{#")) {
                  state.tokenize = inComment;
                  return "comment";
                }
          
                // Ignore completely any stream series that do not match the
                // Django template opening tags.
                while (stream.next() != null && !stream.match("{{", false) && !stream.match("{%", false)) {}
                return null;
              }
          
              // A string can be included in either single or double quotes (this is
              // the delimeter). Mark everything as a string until the start delimeter
              // occurs again.
              function inString (delimeter, previousTokenizer) {
                return function (stream, state) {
                  if (!state.escapeNext && stream.eat(delimeter)) {
                    state.tokenize = previousTokenizer;
                  } else {
                    if (state.escapeNext) {
                      state.escapeNext = false;
                    }
          
                    var ch = stream.next();
          
                    // Take into account the backslash for escaping characters, such as
                    // the string delimeter.
                    if (ch == "\\") {
                      state.escapeNext = true;
                    }
                  }
          
                  return "string";
                };
              }
          
              // Apply Django template variable syntax highlighting
              function inVariable (stream, state) {
                // Attempt to match a dot that precedes a property
                if (state.waitDot) {
                  state.waitDot = false;
          
                  if (stream.peek() != ".") {
                    return "null";
                  }
          
                  // Dot folowed by a non-word character should be considered an error.
                  if (stream.match(/\.\W+/)) {
                    return "error";
                  } else if (stream.eat(".")) {
                    state.waitProperty = true;
                    return "null";
                  } else {
                    throw Error ("Unexpected error while waiting for property.");
                  }
                }
          
                // Attempt to match a pipe that precedes a filter
                if (state.waitPipe) {
                  state.waitPipe = false;
          
                  if (stream.peek() != "|") {
                    return "null";
                  }
          
                  // Pipe folowed by a non-word character should be considered an error.
                  if (stream.match(/\.\W+/)) {
                    return "error";
                  } else if (stream.eat("|")) {
                    state.waitFilter = true;
                    return "null";
                  } else {
                    throw Error ("Unexpected error while waiting for filter.");
                  }
                }
          
                // Highlight properties
                if (state.waitProperty) {
                  state.waitProperty = false;
                  if (stream.match(/\b(\w+)\b/)) {
                    state.waitDot = true;  // A property can be followed by another property
                    state.waitPipe = true;  // A property can be followed by a filter
                    return "property";
                  }
                }
          
                // Highlight filters
                if (state.waitFilter) {
                    state.waitFilter = false;
                  if (stream.match(filters)) {
                    return "variable-2";
                  }
                }
          
                // Ignore all white spaces
                if (stream.eatSpace()) {
                  state.waitProperty = false;
                  return "null";
                }
          
                // Identify numbers
                if (stream.match(/\b\d+(\.\d+)?\b/)) {
                  return "number";
                }
          
                // Identify strings
                if (stream.match("'")) {
                  state.tokenize = inString("'", state.tokenize);
                  return "string";
                } else if (stream.match('"')) {
                  state.tokenize = inString('"', state.tokenize);
                  return "string";
                }
          
                // Attempt to find the variable
                if (stream.match(/\b(\w+)\b/) && !state.foundVariable) {
                  state.waitDot = true;
                  state.waitPipe = true;  // A property can be followed by a filter
                  return "variable";
                }
          
                // If found closing tag reset
                if (stream.match("}}")) {
                  state.waitProperty = null;
                  state.waitFilter = null;
                  state.waitDot = null;
                  state.waitPipe = null;
                  state.tokenize = tokenBase;
                  return "tag";
                }
          
                // If nothing was found, advance to the next character
                stream.next();
                return "null";
              }
          
              function inTag (stream, state) {
                // Attempt to match a dot that precedes a property
                if (state.waitDot) {
                  state.waitDot = false;
          
                  if (stream.peek() != ".") {
                    return "null";
                  }
          
                  // Dot folowed by a non-word character should be considered an error.
                  if (stream.match(/\.\W+/)) {
                    return "error";
                  } else if (stream.eat(".")) {
                    state.waitProperty = true;
                    return "null";
                  } else {
                    throw Error ("Unexpected error while waiting for property.");
                  }
                }
          
                // Attempt to match a pipe that precedes a filter
                if (state.waitPipe) {
                  state.waitPipe = false;
          
                  if (stream.peek() != "|") {
                    return "null";
                  }
          
                  // Pipe folowed by a non-word character should be considered an error.
                  if (stream.match(/\.\W+/)) {
                    return "error";
                  } else if (stream.eat("|")) {
                    state.waitFilter = true;
                    return "null";
                  } else {
                    throw Error ("Unexpected error while waiting for filter.");
                  }
                }
          
                // Highlight properties
                if (state.waitProperty) {
                  state.waitProperty = false;
                  if (stream.match(/\b(\w+)\b/)) {
                    state.waitDot = true;  // A property can be followed by another property
                    state.waitPipe = true;  // A property can be followed by a filter
                    return "property";
                  }
                }
          
                // Highlight filters
                if (state.waitFilter) {
                    state.waitFilter = false;
                  if (stream.match(filters)) {
                    return "variable-2";
                  }
                }
          
                // Ignore all white spaces
                if (stream.eatSpace()) {
                  state.waitProperty = false;
                  return "null";
                }
          
                // Identify numbers
                if (stream.match(/\b\d+(\.\d+)?\b/)) {
                  return "number";
                }
          
                // Identify strings
                if (stream.match("'")) {
                  state.tokenize = inString("'", state.tokenize);
                  return "string";
                } else if (stream.match('"')) {
                  state.tokenize = inString('"', state.tokenize);
                  return "string";
                }
          
                // Attempt to match an operator
                if (stream.match(operators)) {
                  return "operator";
                }
          
                // Attempt to match a keyword
                var keywordMatch = stream.match(keywords);
                if (keywordMatch) {
                  if (keywordMatch[0] == "comment") {
                    state.blockCommentTag = true;
                  }
                  return "keyword";
                }
          
                // Attempt to match a variable
                if (stream.match(/\b(\w+)\b/)) {
                  state.waitDot = true;
                  state.waitPipe = true;  // A property can be followed by a filter
                  return "variable";
                }
          
                // If found closing tag reset
                if (stream.match("%}")) {
                  state.waitProperty = null;
                  state.waitFilter = null;
                  state.waitDot = null;
                  state.waitPipe = null;
                  // If the tag that closes is a block comment tag, we want to mark the
                  // following code as comment, until the tag closes.
                  if (state.blockCommentTag) {
                    state.blockCommentTag = false;  // Release the "lock"
                    state.tokenize = inBlockComment;
                  } else {
                    state.tokenize = tokenBase;
                  }
                  return "tag";
                }
          
                // If nothing was found, advance to the next character
                stream.next();
                return "null";
              }
          
              // Mark everything as comment inside the tag and the tag itself.
              function inComment (stream, state) {
                if (stream.match("#}")) {
                  state.tokenize = tokenBase;
                }
                return "comment";
              }
          
              // Mark everything as a comment until the `blockcomment` tag closes.
              function inBlockComment (stream, state) {
                if (stream.match(/\{%\s*endcomment\s*%\}/, false)) {
                  state.tokenize = inTag;
                  stream.match("{%");
                  return "tag";
                } else {
                  stream.next();
                  return "comment";
                }
              }
          
              return {
                startState: function () {
                  return {tokenize: tokenBase};
                },
                token: function (stream, state) {
                  return state.tokenize(stream, state);
                },
                blockCommentStart: "{% comment %}",
                blockCommentEnd: "{% endcomment %}"
              };
            });
          
            CodeMirror.defineMode("django", function(config) {
              var htmlBase = CodeMirror.getMode(config, "text/html");
              var djangoInner = CodeMirror.getMode(config, "django:inner");
              return CodeMirror.overlayMode(htmlBase, djangoInner);
            });
          
            CodeMirror.defineMIME("text/x-django", "django");
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Django template mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <link rel="stylesheet" href="../../theme/mdn-like.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/mode/overlay.js"></script>
          <script src="../xml/xml.js"></script>
          <script src="../htmlmixed/htmlmixed.js"></script>
          <script src="django.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Django</a>
            </ul>
          </div>
          
          <article>
          <h2>Django template mode</h2>
          <form><textarea id="code" name="code">
          <!doctype html>
          <html>
            <head>
              <title>My Django web application</title>
            </head>
            <body>
              <h1>
                {{ page.title|capfirst }}
              </h1>
              <ul class="my-list">
                {# traverse a list of items and produce links to their views. #}
                {% for item in items %}
                <li>
                  <a href="{% url 'item_view' item.name|slugify %}">
                    {{ item.name }}
                  </a>
                </li>
                {% empty %}
                <li>You have no items in your list.</li>
                {% endfor %}
              </ul>
              {% comment "this is a forgotten footer" %}
              <footer></footer>
              {% endcomment %}
            </body>
          </html>
          </textarea></form>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  mode: "django",
                  indentUnit: 2,
                  indentWithTabs: true,
                  theme: "mdn-like"
                });
              </script>
          
              <p>Mode for HTML with embedded Django template markup.</p>
          
              <p><strong>MIME types defined:</strong> <code>text/x-django</code></p>
            </article>
          
      • dockerfile
        • dockerfile.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("../../addon/mode/simple"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "../../addon/mode/simple"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            // Collect all Dockerfile directives
            var instructions = ["from", "maintainer", "run", "cmd", "expose", "env",
                                "add", "copy", "entrypoint", "volume", "user",
                                "workdir", "onbuild"],
                instructionRegex = "(" + instructions.join('|') + ")",
                instructionOnlyLine = new RegExp(instructionRegex + "\\s*$", "i"),
                instructionWithArguments = new RegExp(instructionRegex + "(\\s+)", "i");
          
            CodeMirror.defineSimpleMode("dockerfile", {
              start: [
                // Block comment: This is a line starting with a comment
                {
                  regex: /#.*$/,
                  token: "comment"
                },
                // Highlight an instruction without any arguments (for convenience)
                {
                  regex: instructionOnlyLine,
                  token: "variable-2"
                },
                // Highlight an instruction followed by arguments
                {
                  regex: instructionWithArguments,
                  token: ["variable-2", null],
                  next: "arguments"
                },
                {
                  regex: /./,
                  token: null
                }
              ],
              arguments: [
                {
                  // Line comment without instruction arguments is an error
                  regex: /#.*$/,
                  token: "error",
                  next: "start"
                },
                {
                  regex: /[^#]+\\$/,
                  token: null
                },
                {
                  // Match everything except for the inline comment
                  regex: /[^#]+/,
                  token: null,
                  next: "start"
                },
                {
                  regex: /$/,
                  token: null,
                  next: "start"
                },
                // Fail safe return to start
                {
                  token: null,
                  next: "start"
                }
              ],
                meta: {
                    lineComment: "#"
                }
            });
          
            CodeMirror.defineMIME("text/x-dockerfile", "dockerfile");
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Dockerfile mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/mode/simple.js"></script>
          <script src="dockerfile.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Dockerfile</a>
            </ul>
          </div>
          
          <article>
          <h2>Dockerfile mode</h2>
          <form><textarea id="code" name="code"># Install Ghost blogging platform and run development environment
          #
          # VERSION 1.0.0
          
          FROM ubuntu:12.10
          MAINTAINER Amer Grgic "amer@livebyt.es"
          WORKDIR /data/ghost
          
          # Install dependencies for nginx installation
          RUN apt-get update
          RUN apt-get install -y python g++ make software-properties-common --force-yes
          RUN add-apt-repository ppa:chris-lea/node.js
          RUN apt-get update
          # Install unzip
          RUN apt-get install -y unzip
          # Install curl
          RUN apt-get install -y curl
          # Install nodejs & npm
          RUN apt-get install -y rlwrap
          RUN apt-get install -y nodejs 
          # Download Ghost v0.4.1
          RUN curl -L https://ghost.org/zip/ghost-latest.zip -o /tmp/ghost.zip
          # Unzip Ghost zip to /data/ghost
          RUN unzip -uo /tmp/ghost.zip -d /data/ghost
          # Add custom config js to /data/ghost
          ADD ./config.example.js /data/ghost/config.js
          # Install Ghost with NPM
          RUN cd /data/ghost/ && npm install --production
          # Expose port 2368
          EXPOSE 2368
          # Run Ghost
          CMD ["npm","start"]
          </textarea></form>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  mode: "dockerfile"
                });
              </script>
          
              <p>Dockerfile syntax highlighting for CodeMirror. Depends on
              the <a href="../../demo/simplemode.html">simplemode</a> addon.</p>
          
              <p><strong>MIME types defined:</strong> <code>text/x-dockerfile</code></p>
            </article>
          
      • dtd
        • dtd.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          /*
            DTD mode
            Ported to CodeMirror by Peter Kroon <plakroon@gmail.com>
            Report bugs/issues here: https://github.com/codemirror/CodeMirror/issues
            GitHub: @peterkroon
          */
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("dtd", function(config) {
            var indentUnit = config.indentUnit, type;
            function ret(style, tp) {type = tp; return style;}
          
            function tokenBase(stream, state) {
              var ch = stream.next();
          
              if (ch == "<" && stream.eat("!") ) {
                if (stream.eatWhile(/[\-]/)) {
                  state.tokenize = tokenSGMLComment;
                  return tokenSGMLComment(stream, state);
                } else if (stream.eatWhile(/[\w]/)) return ret("keyword", "doindent");
              } else if (ch == "<" && stream.eat("?")) { //xml declaration
                state.tokenize = inBlock("meta", "?>");
                return ret("meta", ch);
              } else if (ch == "#" && stream.eatWhile(/[\w]/)) return ret("atom", "tag");
              else if (ch == "|") return ret("keyword", "seperator");
              else if (ch.match(/[\(\)\[\]\-\.,\+\?>]/)) return ret(null, ch);//if(ch === ">") return ret(null, "endtag"); else
              else if (ch.match(/[\[\]]/)) return ret("rule", ch);
              else if (ch == "\"" || ch == "'") {
                state.tokenize = tokenString(ch);
                return state.tokenize(stream, state);
              } else if (stream.eatWhile(/[a-zA-Z\?\+\d]/)) {
                var sc = stream.current();
                if( sc.substr(sc.length-1,sc.length).match(/\?|\+/) !== null )stream.backUp(1);
                return ret("tag", "tag");
              } else if (ch == "%" || ch == "*" ) return ret("number", "number");
              else {
                stream.eatWhile(/[\w\\\-_%.{,]/);
                return ret(null, null);
              }
            }
          
            function tokenSGMLComment(stream, state) {
              var dashes = 0, ch;
              while ((ch = stream.next()) != null) {
                if (dashes >= 2 && ch == ">") {
                  state.tokenize = tokenBase;
                  break;
                }
                dashes = (ch == "-") ? dashes + 1 : 0;
              }
              return ret("comment", "comment");
            }
          
            function tokenString(quote) {
              return function(stream, state) {
                var escaped = false, ch;
                while ((ch = stream.next()) != null) {
                  if (ch == quote && !escaped) {
                    state.tokenize = tokenBase;
                    break;
                  }
                  escaped = !escaped && ch == "\\";
                }
                return ret("string", "tag");
              };
            }
          
            function inBlock(style, terminator) {
              return function(stream, state) {
                while (!stream.eol()) {
                  if (stream.match(terminator)) {
                    state.tokenize = tokenBase;
                    break;
                  }
                  stream.next();
                }
                return style;
              };
            }
          
            return {
              startState: function(base) {
                return {tokenize: tokenBase,
                        baseIndent: base || 0,
                        stack: []};
              },
          
              token: function(stream, state) {
                if (stream.eatSpace()) return null;
                var style = state.tokenize(stream, state);
          
                var context = state.stack[state.stack.length-1];
                if (stream.current() == "[" || type === "doindent" || type == "[") state.stack.push("rule");
                else if (type === "endtag") state.stack[state.stack.length-1] = "endtag";
                else if (stream.current() == "]" || type == "]" || (type == ">" && context == "rule")) state.stack.pop();
                else if (type == "[") state.stack.push("[");
                return style;
              },
          
              indent: function(state, textAfter) {
                var n = state.stack.length;
          
                if( textAfter.match(/\]\s+|\]/) )n=n-1;
                else if(textAfter.substr(textAfter.length-1, textAfter.length) === ">"){
                  if(textAfter.substr(0,1) === "<")n;
                  else if( type == "doindent" && textAfter.length > 1 )n;
                  else if( type == "doindent")n--;
                  else if( type == ">" && textAfter.length > 1)n;
                  else if( type == "tag" && textAfter !== ">")n;
                  else if( type == "tag" && state.stack[state.stack.length-1] == "rule")n--;
                  else if( type == "tag")n++;
                  else if( textAfter === ">" && state.stack[state.stack.length-1] == "rule" && type === ">")n--;
                  else if( textAfter === ">" && state.stack[state.stack.length-1] == "rule")n;
                  else if( textAfter.substr(0,1) !== "<" && textAfter.substr(0,1) === ">" )n=n-1;
                  else if( textAfter === ">")n;
                  else n=n-1;
                  //over rule them all
                  if(type == null || type == "]")n--;
                }
          
                return state.baseIndent + n * indentUnit;
              },
          
              electricChars: "]>"
            };
          });
          
          CodeMirror.defineMIME("application/xml-dtd", "dtd");
          
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: DTD mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="dtd.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">DTD</a>
            </ul>
          </div>
          
          <article>
          <h2>DTD mode</h2>
          <form><textarea id="code" name="code"><?xml version="1.0" encoding="UTF-8"?>
          
          <!ATTLIST title
            xmlns	CDATA	#FIXED	"http://docbook.org/ns/docbook"
            role	CDATA	#IMPLIED
            %db.common.attributes;
            %db.common.linking.attributes;
          >
          
          <!--
            Try: http://docbook.org/xml/5.0/dtd/docbook.dtd
          -->
          
          <!DOCTYPE xsl:stylesheet
            [
              <!ENTITY nbsp   "&amp;#160;">
              <!ENTITY copy   "&amp;#169;">
              <!ENTITY reg    "&amp;#174;">
              <!ENTITY trade  "&amp;#8482;">
              <!ENTITY mdash  "&amp;#8212;">
              <!ENTITY ldquo  "&amp;#8220;">
              <!ENTITY rdquo  "&amp;#8221;">
              <!ENTITY pound  "&amp;#163;">
              <!ENTITY yen    "&amp;#165;">
              <!ENTITY euro   "&amp;#8364;">
              <!ENTITY mathml "http://www.w3.org/1998/Math/MathML">
            ]
          >
          
          <!ELEMENT title (#PCDATA|inlinemediaobject|remark|superscript|subscript|xref|link|olink|anchor|biblioref|alt|annotation|indexterm|abbrev|acronym|date|emphasis|footnote|footnoteref|foreignphrase|phrase|quote|wordasword|firstterm|glossterm|coref|trademark|productnumber|productname|database|application|hardware|citation|citerefentry|citetitle|citebiblioid|author|person|personname|org|orgname|editor|jobtitle|replaceable|package|parameter|termdef|nonterminal|systemitem|option|optional|property|inlineequation|tag|markup|token|symbol|literal|code|constant|email|uri|guiicon|guibutton|guimenuitem|guimenu|guisubmenu|guilabel|menuchoice|mousebutton|keycombo|keycap|keycode|keysym|shortcut|accel|prompt|envar|filename|command|computeroutput|userinput|function|varname|returnvalue|type|classname|exceptionname|interfacename|methodname|modifier|initializer|ooclass|ooexception|oointerface|errorcode|errortext|errorname|errortype)*>
          
          <!ENTITY % db.common.attributes "
            xml:id	ID	#IMPLIED
            version	CDATA	#IMPLIED
            xml:lang	CDATA	#IMPLIED
            xml:base	CDATA	#IMPLIED
            remap	CDATA	#IMPLIED
            xreflabel	CDATA	#IMPLIED
            revisionflag	(changed|added|deleted|off)	#IMPLIED
            dir	(ltr|rtl|lro|rlo)	#IMPLIED
            arch	CDATA	#IMPLIED
            audience	CDATA	#IMPLIED
            condition	CDATA	#IMPLIED
            conformance	CDATA	#IMPLIED
            os	CDATA	#IMPLIED
            revision	CDATA	#IMPLIED
            security	CDATA	#IMPLIED
            userlevel	CDATA	#IMPLIED
            vendor	CDATA	#IMPLIED
            wordsize	CDATA	#IMPLIED
            annotations	CDATA	#IMPLIED
          
          "></textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  mode: {name: "dtd", alignCDATA: true},
                  lineNumbers: true,
                  lineWrapping: true
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>application/xml-dtd</code>.</p>
            </article>
          
      • dylan
        • dylan.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("dylan", function(_config) {
            // Words
            var words = {
              // Words that introduce unnamed definitions like "define interface"
              unnamedDefinition: ["interface"],
          
              // Words that introduce simple named definitions like "define library"
              namedDefinition: ["module", "library", "macro",
                                "C-struct", "C-union",
                                "C-function", "C-callable-wrapper"
                               ],
          
              // Words that introduce type definitions like "define class".
              // These are also parameterized like "define method" and are
              // appended to otherParameterizedDefinitionWords
              typeParameterizedDefinition: ["class", "C-subtype", "C-mapped-subtype"],
          
              // Words that introduce trickier definitions like "define method".
              // These require special definitions to be added to startExpressions
              otherParameterizedDefinition: ["method", "function",
                                             "C-variable", "C-address"
                                            ],
          
              // Words that introduce module constant definitions.
              // These must also be simple definitions and are
              // appended to otherSimpleDefinitionWords
              constantSimpleDefinition: ["constant"],
          
              // Words that introduce module variable definitions.
              // These must also be simple definitions and are
              // appended to otherSimpleDefinitionWords
              variableSimpleDefinition: ["variable"],
          
              // Other words that introduce simple definitions
              // (without implicit bodies).
              otherSimpleDefinition: ["generic", "domain",
                                      "C-pointer-type",
                                      "table"
                                     ],
          
              // Words that begin statements with implicit bodies.
              statement: ["if", "block", "begin", "method", "case",
                          "for", "select", "when", "unless", "until",
                          "while", "iterate", "profiling", "dynamic-bind"
                         ],
          
              // Patterns that act as separators in compound statements.
              // This may include any general pattern that must be indented
              // specially.
              separator: ["finally", "exception", "cleanup", "else",
                          "elseif", "afterwards"
                         ],
          
              // Keywords that do not require special indentation handling,
              // but which should be highlighted
              other: ["above", "below", "by", "from", "handler", "in",
                      "instance", "let", "local", "otherwise", "slot",
                      "subclass", "then", "to", "keyed-by", "virtual"
                     ],
          
              // Condition signaling function calls
              signalingCalls: ["signal", "error", "cerror",
                               "break", "check-type", "abort"
                              ]
            };
          
            words["otherDefinition"] =
              words["unnamedDefinition"]
              .concat(words["namedDefinition"])
              .concat(words["otherParameterizedDefinition"]);
          
            words["definition"] =
              words["typeParameterizedDefinition"]
              .concat(words["otherDefinition"]);
          
            words["parameterizedDefinition"] =
              words["typeParameterizedDefinition"]
              .concat(words["otherParameterizedDefinition"]);
          
            words["simpleDefinition"] =
              words["constantSimpleDefinition"]
              .concat(words["variableSimpleDefinition"])
              .concat(words["otherSimpleDefinition"]);
          
            words["keyword"] =
              words["statement"]
              .concat(words["separator"])
              .concat(words["other"]);
          
            // Patterns
            var symbolPattern = "[-_a-zA-Z?!*@<>$%]+";
            var symbol = new RegExp("^" + symbolPattern);
            var patterns = {
              // Symbols with special syntax
              symbolKeyword: symbolPattern + ":",
              symbolClass: "<" + symbolPattern + ">",
              symbolGlobal: "\\*" + symbolPattern + "\\*",
              symbolConstant: "\\$" + symbolPattern
            };
            var patternStyles = {
              symbolKeyword: "atom",
              symbolClass: "tag",
              symbolGlobal: "variable-2",
              symbolConstant: "variable-3"
            };
          
            // Compile all patterns to regular expressions
            for (var patternName in patterns)
              if (patterns.hasOwnProperty(patternName))
                patterns[patternName] = new RegExp("^" + patterns[patternName]);
          
            // Names beginning "with-" and "without-" are commonly
            // used as statement macro
            patterns["keyword"] = [/^with(?:out)?-[-_a-zA-Z?!*@<>$%]+/];
          
            var styles = {};
            styles["keyword"] = "keyword";
            styles["definition"] = "def";
            styles["simpleDefinition"] = "def";
            styles["signalingCalls"] = "builtin";
          
            // protected words lookup table
            var wordLookup = {};
            var styleLookup = {};
          
            [
              "keyword",
              "definition",
              "simpleDefinition",
              "signalingCalls"
            ].forEach(function(type) {
              words[type].forEach(function(word) {
                wordLookup[word] = type;
                styleLookup[word] = styles[type];
              });
            });
          
          
            function chain(stream, state, f) {
              state.tokenize = f;
              return f(stream, state);
            }
          
            function tokenBase(stream, state) {
              // String
              var ch = stream.peek();
              if (ch == "'" || ch == '"') {
                stream.next();
                return chain(stream, state, tokenString(ch, "string"));
              }
              // Comment
              else if (ch == "/") {
                stream.next();
                if (stream.eat("*")) {
                  return chain(stream, state, tokenComment);
                } else if (stream.eat("/")) {
                  stream.skipToEnd();
                  return "comment";
                } else {
                  stream.skipTo(" ");
                  return "operator";
                }
              }
              // Decimal
              else if (/\d/.test(ch)) {
                stream.match(/^\d*(?:\.\d*)?(?:e[+\-]?\d+)?/);
                return "number";
              }
              // Hash
              else if (ch == "#") {
                stream.next();
                // Symbol with string syntax
                ch = stream.peek();
                if (ch == '"') {
                  stream.next();
                  return chain(stream, state, tokenString('"', "string-2"));
                }
                // Binary number
                else if (ch == "b") {
                  stream.next();
                  stream.eatWhile(/[01]/);
                  return "number";
                }
                // Hex number
                else if (ch == "x") {
                  stream.next();
                  stream.eatWhile(/[\da-f]/i);
                  return "number";
                }
                // Octal number
                else if (ch == "o") {
                  stream.next();
                  stream.eatWhile(/[0-7]/);
                  return "number";
                }
                // Hash symbol
                else {
                  stream.eatWhile(/[-a-zA-Z]/);
                  return "keyword";
                }
              } else if (stream.match("end")) {
                return "keyword";
              }
              for (var name in patterns) {
                if (patterns.hasOwnProperty(name)) {
                  var pattern = patterns[name];
                  if ((pattern instanceof Array && pattern.some(function(p) {
                    return stream.match(p);
                  })) || stream.match(pattern))
                    return patternStyles[name];
                }
              }
              if (stream.match("define")) {
                return "def";
              } else {
                stream.eatWhile(/[\w\-]/);
                // Keyword
                if (wordLookup[stream.current()]) {
                  return styleLookup[stream.current()];
                } else if (stream.current().match(symbol)) {
                  return "variable";
                } else {
                  stream.next();
                  return "variable-2";
                }
              }
            }
          
            function tokenComment(stream, state) {
              var maybeEnd = false,
              ch;
              while ((ch = stream.next())) {
                if (ch == "/" && maybeEnd) {
                  state.tokenize = tokenBase;
                  break;
                }
                maybeEnd = (ch == "*");
              }
              return "comment";
            }
          
            function tokenString(quote, style) {
              return function(stream, state) {
                var next, end = false;
                while ((next = stream.next()) != null) {
                  if (next == quote) {
                    end = true;
                    break;
                  }
                }
                if (end)
                  state.tokenize = tokenBase;
                return style;
              };
            }
          
            // Interface
            return {
              startState: function() {
                return {
                  tokenize: tokenBase,
                  currentIndent: 0
                };
              },
              token: function(stream, state) {
                if (stream.eatSpace())
                  return null;
                var style = state.tokenize(stream, state);
                return style;
              },
              blockCommentStart: "/*",
              blockCommentEnd: "*/"
            };
          });
          
          CodeMirror.defineMIME("text/x-dylan", "dylan");
          
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Dylan mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="../../addon/comment/continuecomment.js"></script>
          <script src="../../addon/comment/comment.js"></script>
          <script src="dylan.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Dylan</a>
            </ul>
          </div>
          
          <article>
          <h2>Dylan mode</h2>
          
          
          <div><textarea id="code" name="code">
          Module:       locators-internals
          Synopsis:     Abstract modeling of locations
          Author:       Andy Armstrong
          Copyright:    Original Code is Copyright (c) 1995-2004 Functional Objects, Inc.
                        All rights reserved.
          License:      See License.txt in this distribution for details.
          Warranty:     Distributed WITHOUT WARRANTY OF ANY KIND
          
          define open generic locator-server
              (locator :: <locator>) => (server :: false-or(<server-locator>));
          define open generic locator-host
              (locator :: <locator>) => (host :: false-or(<string>));
          define open generic locator-volume
              (locator :: <locator>) => (volume :: false-or(<string>));
          define open generic locator-directory
              (locator :: <locator>) => (directory :: false-or(<directory-locator>));
          define open generic locator-relative?
              (locator :: <locator>) => (relative? :: <boolean>);
          define open generic locator-path
              (locator :: <locator>) => (path :: <sequence>);
          define open generic locator-base
              (locator :: <locator>) => (base :: false-or(<string>));
          define open generic locator-extension
              (locator :: <locator>) => (extension :: false-or(<string>));
          
          /// Locator classes
          
          define open abstract class <directory-locator> (<physical-locator>)
          end class <directory-locator>;
          
          define open abstract class <file-locator> (<physical-locator>)
          end class <file-locator>;
          
          define method as
              (class == <directory-locator>, string :: <string>)
           => (locator :: <directory-locator>)
            as(<native-directory-locator>, string)
          end method as;
          
          define method make
              (class == <directory-locator>,
               #key server :: false-or(<server-locator>) = #f,
                    path :: <sequence> = #[],
                    relative? :: <boolean> = #f,
                    name :: false-or(<string>) = #f)
           => (locator :: <directory-locator>)
            make(<native-directory-locator>,
                 server:    server,
                 path:      path,
                 relative?: relative?,
                 name:      name)
          end method make;
          
          define method as
              (class == <file-locator>, string :: <string>)
           => (locator :: <file-locator>)
            as(<native-file-locator>, string)
          end method as;
          
          define method make
              (class == <file-locator>,
               #key directory :: false-or(<directory-locator>) = #f,
                    base :: false-or(<string>) = #f,
                    extension :: false-or(<string>) = #f,
                    name :: false-or(<string>) = #f)
           => (locator :: <file-locator>)
            make(<native-file-locator>,
                 directory: directory,
                 base:      base,
                 extension: extension,
                 name:      name)
          end method make;
          
          /// Locator coercion
          
          //---*** andrewa: This caching scheme doesn't work yet, so disable it.
          define constant $cache-locators?        = #f;
          define constant $cache-locator-strings? = #f;
          
          define constant $locator-to-string-cache = make(<object-table>, weak: #"key");
          define constant $string-to-locator-cache = make(<string-table>, weak: #"value");
          
          define open generic locator-as-string
              (class :: subclass(<string>), locator :: <locator>)
           => (string :: <string>);
          
          define open generic string-as-locator
              (class :: subclass(<locator>), string :: <string>)
           => (locator :: <locator>);
          
          define sealed sideways method as
              (class :: subclass(<string>), locator :: <locator>)
           => (string :: <string>)
            let string = element($locator-to-string-cache, locator, default: #f);
            if (string)
              as(class, string)
            else
              let string = locator-as-string(class, locator);
              if ($cache-locator-strings?)
                element($locator-to-string-cache, locator) := string;
              else
                string
              end
            end
          end method as;
          
          define sealed sideways method as
              (class :: subclass(<locator>), string :: <string>)
           => (locator :: <locator>)
            let locator = element($string-to-locator-cache, string, default: #f);
            if (instance?(locator, class))
              locator
            else
              let locator = string-as-locator(class, string);
              if ($cache-locators?)
                element($string-to-locator-cache, string) := locator;
              else
                locator
              end
            end
          end method as;
          
          /// Locator conditions
          
          define class <locator-error> (<format-string-condition>, <error>)
          end class <locator-error>;
          
          define function locator-error
              (format-string :: <string>, #rest format-arguments)
            error(make(<locator-error>, 
                       format-string:    format-string,
                       format-arguments: format-arguments))
          end function locator-error;
          
          /// Useful locator protocols
          
          define open generic locator-test
              (locator :: <directory-locator>) => (test :: <function>);
          
          define method locator-test
              (locator :: <directory-locator>) => (test :: <function>)
            \=
          end method locator-test;
          
          define open generic locator-might-have-links?
              (locator :: <directory-locator>) => (links? :: <boolean>);
          
          define method locator-might-have-links?
              (locator :: <directory-locator>) => (links? :: singleton(#f))
            #f
          end method locator-might-have-links?;
          
          define method locator-relative?
              (locator :: <file-locator>) => (relative? :: <boolean>)
            let directory = locator.locator-directory;
            ~directory | directory.locator-relative?
          end method locator-relative?;
          
          define method current-directory-locator?
              (locator :: <directory-locator>) => (current-directory? :: <boolean>)
            locator.locator-relative?
              & locator.locator-path = #[#"self"]
          end method current-directory-locator?;
          
          define method locator-directory
              (locator :: <directory-locator>) => (parent :: false-or(<directory-locator>))
            let path = locator.locator-path;
            unless (empty?(path))
              make(object-class(locator),
                   server:    locator.locator-server,
                   path:      copy-sequence(path, end: path.size - 1),
                   relative?: locator.locator-relative?)
            end
          end method locator-directory;
          
          /// Simplify locator
          
          define open generic simplify-locator
              (locator :: <physical-locator>)
           => (simplified-locator :: <physical-locator>);
          
          define method simplify-locator
              (locator :: <directory-locator>)
           => (simplified-locator :: <directory-locator>)
            let path = locator.locator-path;
            let relative? = locator.locator-relative?;
            let resolve-parent? = ~locator.locator-might-have-links?;
            let simplified-path
              = simplify-path(path, 
                              resolve-parent?: resolve-parent?,
                              relative?: relative?);
            if (path ~= simplified-path)
              make(object-class(locator),
                   server:    locator.locator-server,
                   path:      simplified-path,
                   relative?: locator.locator-relative?)
            else
              locator
            end
          end method simplify-locator;
          
          define method simplify-locator
              (locator :: <file-locator>) => (simplified-locator :: <file-locator>)
            let directory = locator.locator-directory;
            let simplified-directory = directory & simplify-locator(directory);
            if (directory ~= simplified-directory)
              make(object-class(locator),
                   directory: simplified-directory,
                   base:      locator.locator-base,
                   extension: locator.locator-extension)
            else
              locator
            end
          end method simplify-locator;
          
          /// Subdirectory locator
          
          define open generic subdirectory-locator
              (locator :: <directory-locator>, #rest sub-path)
           => (subdirectory :: <directory-locator>);
          
          define method subdirectory-locator
              (locator :: <directory-locator>, #rest sub-path)
           => (subdirectory :: <directory-locator>)
            let old-path = locator.locator-path;
            let new-path = concatenate-as(<simple-object-vector>, old-path, sub-path);
            make(object-class(locator),
                 server:    locator.locator-server,
                 path:      new-path,
                 relative?: locator.locator-relative?)
          end method subdirectory-locator;
          
          /// Relative locator
          
          define open generic relative-locator
              (locator :: <physical-locator>, from-locator :: <physical-locator>)
           => (relative-locator :: <physical-locator>);
          
          define method relative-locator
              (locator :: <directory-locator>, from-locator :: <directory-locator>)
           => (relative-locator :: <directory-locator>)
            let path = locator.locator-path;
            let from-path = from-locator.locator-path;
            case
              ~locator.locator-relative? & from-locator.locator-relative? =>
                locator-error
                  ("Cannot find relative path of absolute locator %= from relative locator %=",
                   locator, from-locator);
              locator.locator-server ~= from-locator.locator-server =>
                locator;
              path = from-path =>
                make(object-class(locator),
                     path: vector(#"self"),
                     relative?: #t);
              otherwise =>
                make(object-class(locator),
                     path: relative-path(path, from-path, test: locator.locator-test),
                     relative?: #t);
            end
          end method relative-locator;
          
          define method relative-locator
              (locator :: <file-locator>, from-directory :: <directory-locator>)
           => (relative-locator :: <file-locator>)
            let directory = locator.locator-directory;
            let relative-directory = directory & relative-locator(directory, from-directory);
            if (relative-directory ~= directory)
              simplify-locator
                (make(object-class(locator),
                      directory: relative-directory,
                      base:      locator.locator-base,
                      extension: locator.locator-extension))
            else
              locator
            end
          end method relative-locator;
          
          define method relative-locator
              (locator :: <physical-locator>, from-locator :: <file-locator>)
           => (relative-locator :: <physical-locator>)
            let from-directory = from-locator.locator-directory;
            case
              from-directory =>
                relative-locator(locator, from-directory);
              ~locator.locator-relative? =>
                locator-error
                  ("Cannot find relative path of absolute locator %= from relative locator %=",
                   locator, from-locator);
              otherwise =>
                locator;
            end
          end method relative-locator;
          
          /// Merge locators
          
          define open generic merge-locators
              (locator :: <physical-locator>, from-locator :: <physical-locator>)
           => (merged-locator :: <physical-locator>);
          
          /// Merge locators
          
          define method merge-locators
              (locator :: <directory-locator>, from-locator :: <directory-locator>)
           => (merged-locator :: <directory-locator>)
            if (locator.locator-relative?)
              let path = concatenate(from-locator.locator-path, locator.locator-path);
              simplify-locator
                (make(object-class(locator),
                      server:    from-locator.locator-server,
                      path:      path,
                      relative?: from-locator.locator-relative?))
            else
              locator
            end
          end method merge-locators;
          
          define method merge-locators
              (locator :: <file-locator>, from-locator :: <directory-locator>)
           => (merged-locator :: <file-locator>)
            let directory = locator.locator-directory;
            let merged-directory 
              = if (directory)
                  merge-locators(directory, from-locator)
                else
                  simplify-locator(from-locator)
                end;
            if (merged-directory ~= directory)
              make(object-class(locator),
                   directory: merged-directory,
                   base:      locator.locator-base,
                   extension: locator.locator-extension)
            else
              locator
            end
          end method merge-locators;
          
          define method merge-locators
              (locator :: <physical-locator>, from-locator :: <file-locator>)
           => (merged-locator :: <physical-locator>)
            let from-directory = from-locator.locator-directory;
            if (from-directory)
              merge-locators(locator, from-directory)
            else
              locator
            end
          end method merge-locators;
          
          /// Locator protocols
          
          define sideways method supports-open-locator?
              (locator :: <file-locator>) => (openable? :: <boolean>)
            ~locator.locator-relative?
          end method supports-open-locator?;
          
          define sideways method open-locator
              (locator :: <file-locator>, #rest keywords, #key, #all-keys)
           => (stream :: <stream>)
            apply(open-file-stream, locator, keywords)
          end method open-locator;
          </textarea></div>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  mode: "text/x-dylan",
                  lineNumbers: true,
                  matchBrackets: true,
                  continueComments: "Enter",
                  extraKeys: {"Ctrl-Q": "toggleComment"},
                  tabMode: "indent",
                  indentUnit: 2
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-dylan</code>.</p>
          </article>
          
      • ebnf
        • ebnf.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineMode("ebnf", function (config) {
              var commentType = {slash: 0, parenthesis: 1};
              var stateType = {comment: 0, _string: 1, characterClass: 2};
              var bracesMode = null;
          
              if (config.bracesMode)
                bracesMode = CodeMirror.getMode(config, config.bracesMode);
          
              return {
                startState: function () {
                  return {
                    stringType: null,
                    commentType: null,
                    braced: 0,
                    lhs: true,
                    localState: null,
                    stack: [],
                    inDefinition: false
                  };
                },
                token: function (stream, state) {
                  if (!stream) return;
          
                  //check for state changes
                  if (state.stack.length === 0) {
                    //strings
                    if ((stream.peek() == '"') || (stream.peek() == "'")) {
                      state.stringType = stream.peek();
                      stream.next(); // Skip quote
                      state.stack.unshift(stateType._string);
                    } else if (stream.match(/^\/\*/)) { //comments starting with /*
                      state.stack.unshift(stateType.comment);
                      state.commentType = commentType.slash;
                    } else if (stream.match(/^\(\*/)) { //comments starting with (*
                      state.stack.unshift(stateType.comment);
                      state.commentType = commentType.parenthesis;
                    }
                  }
          
                  //return state
                  //stack has
                  switch (state.stack[0]) {
                  case stateType._string:
                    while (state.stack[0] === stateType._string && !stream.eol()) {
                      if (stream.peek() === state.stringType) {
                        stream.next(); // Skip quote
                        state.stack.shift(); // Clear flag
                      } else if (stream.peek() === "\\") {
                        stream.next();
                        stream.next();
                      } else {
                        stream.match(/^.[^\\\"\']*/);
                      }
                    }
                    return state.lhs ? "property string" : "string"; // Token style
          
                  case stateType.comment:
                    while (state.stack[0] === stateType.comment && !stream.eol()) {
                      if (state.commentType === commentType.slash && stream.match(/\*\//)) {
                        state.stack.shift(); // Clear flag
                        state.commentType = null;
                      } else if (state.commentType === commentType.parenthesis && stream.match(/\*\)/)) {
                        state.stack.shift(); // Clear flag
                        state.commentType = null;
                      } else {
                        stream.match(/^.[^\*]*/);
                      }
                    }
                    return "comment";
          
                  case stateType.characterClass:
                    while (state.stack[0] === stateType.characterClass && !stream.eol()) {
                      if (!(stream.match(/^[^\]\\]+/) || stream.match(/^\\./))) {
                        state.stack.shift();
                      }
                    }
                    return "operator";
                  }
          
                  var peek = stream.peek();
          
                  if (bracesMode !== null && (state.braced || peek === "{")) {
                    if (state.localState === null)
                      state.localState = bracesMode.startState();
          
                    var token = bracesMode.token(stream, state.localState),
                    text = stream.current();
          
                    if (!token) {
                      for (var i = 0; i < text.length; i++) {
                        if (text[i] === "{") {
                          if (state.braced === 0) {
                            token = "matchingbracket";
                          }
                          state.braced++;
                        } else if (text[i] === "}") {
                          state.braced--;
                          if (state.braced === 0) {
                            token = "matchingbracket";
                          }
                        }
                      }
                    }
                    return token;
                  }
          
                  //no stack
                  switch (peek) {
                  case "[":
                    stream.next();
                    state.stack.unshift(stateType.characterClass);
                    return "bracket";
                  case ":":
                  case "|":
                  case ";":
                    stream.next();
                    return "operator";
                  case "%":
                    if (stream.match("%%")) {
                      return "header";
                    } else if (stream.match(/[%][A-Za-z]+/)) {
                      return "keyword";
                    } else if (stream.match(/[%][}]/)) {
                      return "matchingbracket";
                    }
                    break;
                  case "/":
                    if (stream.match(/[\/][A-Za-z]+/)) {
                    return "keyword";
                  }
                  case "\\":
                    if (stream.match(/[\][a-z]+/)) {
                      return "string-2";
                    }
                  case ".":
                    if (stream.match(".")) {
                      return "atom";
                    }
                  case "*":
                  case "-":
                  case "+":
                  case "^":
                    if (stream.match(peek)) {
                      return "atom";
                    }
                  case "$":
                    if (stream.match("$$")) {
                      return "builtin";
                    } else if (stream.match(/[$][0-9]+/)) {
                      return "variable-3";
                    }
                  case "<":
                    if (stream.match(/<<[a-zA-Z_]+>>/)) {
                      return "builtin";
                    }
                  }
          
                  if (stream.match(/^\/\//)) {
                    stream.skipToEnd();
                    return "comment";
                  } else if (stream.match(/return/)) {
                    return "operator";
                  } else if (stream.match(/^[a-zA-Z_][a-zA-Z0-9_]*/)) {
                    if (stream.match(/(?=[\(.])/)) {
                      return "variable";
                    } else if (stream.match(/(?=[\s\n]*[:=])/)) {
                      return "def";
                    }
                    return "variable-2";
                  } else if (["[", "]", "(", ")"].indexOf(stream.peek()) != -1) {
                    stream.next();
                    return "bracket";
                  } else if (!stream.eatSpace()) {
                    stream.next();
                  }
                  return null;
                }
              };
            });
          
            CodeMirror.defineMIME("text/x-ebnf", "ebnf");
          });
          
        • index.html
          <!doctype html>
          <html>
            <head>
              <title>CodeMirror: EBNF Mode</title>
              <meta charset="utf-8"/>
              <link rel=stylesheet href="../../doc/docs.css">
          
              <link rel="stylesheet" href="../../lib/codemirror.css">
              <script src="../../lib/codemirror.js"></script>
              <script src="../javascript/javascript.js"></script>
              <script src="ebnf.js"></script>
              <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
            </head>
            <body>
              <div id=nav>
                <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
                <ul>
                  <li><a href="../../index.html">Home</a>
                  <li><a href="../../doc/manual.html">Manual</a>
                  <li><a href="https://github.com/codemirror/codemirror">Code</a>
                </ul>
                <ul>
                  <li><a href="../index.html">Language modes</a>
                  <li><a class=active href="#">EBNF Mode</a>
                </ul>
              </div>
          
              <article>
                <h2>EBNF Mode (bracesMode setting = "javascript")</h2>
                <form><textarea id="code" name="code">
          /* description: Parses end executes mathematical expressions. */
          
          /* lexical grammar */
          %lex
          
          %%
          \s+                   /* skip whitespace */
          [0-9]+("."[0-9]+)?\b  return 'NUMBER';
          "*"                   return '*';
          "/"                   return '/';
          "-"                   return '-';
          "+"                   return '+';
          "^"                   return '^';
          "("                   return '(';
          ")"                   return ')';
          "PI"                  return 'PI';
          "E"                   return 'E';
          &lt;&lt;EOF&gt;&gt;               return 'EOF';
          
          /lex
          
          /* operator associations and precedence */
          
          %left '+' '-'
          %left '*' '/'
          %left '^'
          %left UMINUS
          
          %start expressions
          
          %% /* language grammar */
          
          expressions
          : e EOF
          {print($1); return $1;}
          ;
          
          e
          : e '+' e
          {$$ = $1+$3;}
          | e '-' e
          {$$ = $1-$3;}
          | e '*' e
          {$$ = $1*$3;}
          | e '/' e
          {$$ = $1/$3;}
          | e '^' e
          {$$ = Math.pow($1, $3);}
          | '-' e %prec UMINUS
          {$$ = -$2;}
          | '(' e ')'
          {$$ = $2;}
          | NUMBER
          {$$ = Number(yytext);}
          | E
          {$$ = Math.E;}
          | PI
          {$$ = Math.PI;}
          ;</textarea></form>
                <script>
                  var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                    mode: {name: "ebnf"},
                    lineNumbers: true,
                    bracesMode: 'javascript'
                  });
                </script>
                <h3>The EBNF Mode</h3>
                <p> Created by <a href="https://github.com/robertleeplummerjr">Robert Plummer</a></p>
              </article>
            </body>
          </html>
          
      • ecl
        • ecl.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("ecl", function(config) {
          
            function words(str) {
              var obj = {}, words = str.split(" ");
              for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
              return obj;
            }
          
            function metaHook(stream, state) {
              if (!state.startOfLine) return false;
              stream.skipToEnd();
              return "meta";
            }
          
            var indentUnit = config.indentUnit;
            var keyword = words("abs acos allnodes ascii asin asstring atan atan2 ave case choose choosen choosesets clustersize combine correlation cos cosh count covariance cron dataset dedup define denormalize distribute distributed distribution ebcdic enth error evaluate event eventextra eventname exists exp failcode failmessage fetch fromunicode getisvalid global graph group hash hash32 hash64 hashcrc hashmd5 having if index intformat isvalid iterate join keyunicode length library limit ln local log loop map matched matchlength matchposition matchtext matchunicode max merge mergejoin min nolocal nonempty normalize parse pipe power preload process project pull random range rank ranked realformat recordof regexfind regexreplace regroup rejected rollup round roundup row rowdiff sample set sin sinh sizeof soapcall sort sorted sqrt stepped stored sum table tan tanh thisnode topn tounicode transfer trim truncate typeof ungroup unicodeorder variance which workunit xmldecode xmlencode xmltext xmlunicode");
            var variable = words("apply assert build buildindex evaluate fail keydiff keypatch loadxml nothor notify output parallel sequential soapcall wait");
            var variable_2 = words("__compressed__ all and any as atmost before beginc++ best between case const counter csv descend encrypt end endc++ endmacro except exclusive expire export extend false few first flat from full function group header heading hole ifblock import in interface joined keep keyed last left limit load local locale lookup macro many maxcount maxlength min skew module named nocase noroot noscan nosort not of only opt or outer overwrite packed partition penalty physicallength pipe quote record relationship repeat return right scan self separator service shared skew skip sql store terminator thor threshold token transform trim true type unicodeorder unsorted validate virtual whole wild within xml xpath");
            var variable_3 = words("ascii big_endian boolean data decimal ebcdic integer pattern qstring real record rule set of string token udecimal unicode unsigned varstring varunicode");
            var builtin = words("checkpoint deprecated failcode failmessage failure global independent onwarning persist priority recovery stored success wait when");
            var blockKeywords = words("catch class do else finally for if switch try while");
            var atoms = words("true false null");
            var hooks = {"#": metaHook};
            var isOperatorChar = /[+\-*&%=<>!?|\/]/;
          
            var curPunc;
          
            function tokenBase(stream, state) {
              var ch = stream.next();
              if (hooks[ch]) {
                var result = hooks[ch](stream, state);
                if (result !== false) return result;
              }
              if (ch == '"' || ch == "'") {
                state.tokenize = tokenString(ch);
                return state.tokenize(stream, state);
              }
              if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
                curPunc = ch;
                return null;
              }
              if (/\d/.test(ch)) {
                stream.eatWhile(/[\w\.]/);
                return "number";
              }
              if (ch == "/") {
                if (stream.eat("*")) {
                  state.tokenize = tokenComment;
                  return tokenComment(stream, state);
                }
                if (stream.eat("/")) {
                  stream.skipToEnd();
                  return "comment";
                }
              }
              if (isOperatorChar.test(ch)) {
                stream.eatWhile(isOperatorChar);
                return "operator";
              }
              stream.eatWhile(/[\w\$_]/);
              var cur = stream.current().toLowerCase();
              if (keyword.propertyIsEnumerable(cur)) {
                if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement";
                return "keyword";
              } else if (variable.propertyIsEnumerable(cur)) {
                if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement";
                return "variable";
              } else if (variable_2.propertyIsEnumerable(cur)) {
                if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement";
                return "variable-2";
              } else if (variable_3.propertyIsEnumerable(cur)) {
                if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement";
                return "variable-3";
              } else if (builtin.propertyIsEnumerable(cur)) {
                if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement";
                return "builtin";
              } else { //Data types are of from KEYWORD##
                          var i = cur.length - 1;
                          while(i >= 0 && (!isNaN(cur[i]) || cur[i] == '_'))
                                  --i;
          
                          if (i > 0) {
                                  var cur2 = cur.substr(0, i + 1);
                          if (variable_3.propertyIsEnumerable(cur2)) {
                                  if (blockKeywords.propertyIsEnumerable(cur2)) curPunc = "newstatement";
                                  return "variable-3";
                          }
                      }
              }
              if (atoms.propertyIsEnumerable(cur)) return "atom";
              return null;
            }
          
            function tokenString(quote) {
              return function(stream, state) {
                var escaped = false, next, end = false;
                while ((next = stream.next()) != null) {
                  if (next == quote && !escaped) {end = true; break;}
                  escaped = !escaped && next == "\\";
                }
                if (end || !escaped)
                  state.tokenize = tokenBase;
                return "string";
              };
            }
          
            function tokenComment(stream, state) {
              var maybeEnd = false, ch;
              while (ch = stream.next()) {
                if (ch == "/" && maybeEnd) {
                  state.tokenize = tokenBase;
                  break;
                }
                maybeEnd = (ch == "*");
              }
              return "comment";
            }
          
            function Context(indented, column, type, align, prev) {
              this.indented = indented;
              this.column = column;
              this.type = type;
              this.align = align;
              this.prev = prev;
            }
            function pushContext(state, col, type) {
              return state.context = new Context(state.indented, col, type, null, state.context);
            }
            function popContext(state) {
              var t = state.context.type;
              if (t == ")" || t == "]" || t == "}")
                state.indented = state.context.indented;
              return state.context = state.context.prev;
            }
          
            // Interface
          
            return {
              startState: function(basecolumn) {
                return {
                  tokenize: null,
                  context: new Context((basecolumn || 0) - indentUnit, 0, "top", false),
                  indented: 0,
                  startOfLine: true
                };
              },
          
              token: function(stream, state) {
                var ctx = state.context;
                if (stream.sol()) {
                  if (ctx.align == null) ctx.align = false;
                  state.indented = stream.indentation();
                  state.startOfLine = true;
                }
                if (stream.eatSpace()) return null;
                curPunc = null;
                var style = (state.tokenize || tokenBase)(stream, state);
                if (style == "comment" || style == "meta") return style;
                if (ctx.align == null) ctx.align = true;
          
                if ((curPunc == ";" || curPunc == ":") && ctx.type == "statement") popContext(state);
                else if (curPunc == "{") pushContext(state, stream.column(), "}");
                else if (curPunc == "[") pushContext(state, stream.column(), "]");
                else if (curPunc == "(") pushContext(state, stream.column(), ")");
                else if (curPunc == "}") {
                  while (ctx.type == "statement") ctx = popContext(state);
                  if (ctx.type == "}") ctx = popContext(state);
                  while (ctx.type == "statement") ctx = popContext(state);
                }
                else if (curPunc == ctx.type) popContext(state);
                else if (ctx.type == "}" || ctx.type == "top" || (ctx.type == "statement" && curPunc == "newstatement"))
                  pushContext(state, stream.column(), "statement");
                state.startOfLine = false;
                return style;
              },
          
              indent: function(state, textAfter) {
                if (state.tokenize != tokenBase && state.tokenize != null) return 0;
                var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);
                if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev;
                var closing = firstChar == ctx.type;
                if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : indentUnit);
                else if (ctx.align) return ctx.column + (closing ? 0 : 1);
                else return ctx.indented + (closing ? 0 : indentUnit);
              },
          
              electricChars: "{}"
            };
          });
          
          CodeMirror.defineMIME("text/x-ecl", "ecl");
          
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: ECL mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="ecl.js"></script>
          <style>.CodeMirror {border: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">ECL</a>
            </ul>
          </div>
          
          <article>
          <h2>ECL mode</h2>
          <form><textarea id="code" name="code">
          /*
          sample useless code to demonstrate ecl syntax highlighting
          this is a multiline comment!
          */
          
          //  this is a singleline comment!
          
          import ut;
          r := 
            record
             string22 s1 := '123';
             integer4 i1 := 123;
            end;
          #option('tmp', true);
          d := dataset('tmp::qb', r, thor);
          output(d);
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {});
              </script>
          
              <p>Based on CodeMirror's clike mode.  For more information see <a href="http://hpccsystems.com">HPCC Systems</a> web site.</p>
              <p><strong>MIME types defined:</strong> <code>text/x-ecl</code>.</p>
          
            </article>
          
      • eiffel
        • eiffel.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("eiffel", function() {
            function wordObj(words) {
              var o = {};
              for (var i = 0, e = words.length; i < e; ++i) o[words[i]] = true;
              return o;
            }
            var keywords = wordObj([
              'note',
              'across',
              'when',
              'variant',
              'until',
              'unique',
              'undefine',
              'then',
              'strip',
              'select',
              'retry',
              'rescue',
              'require',
              'rename',
              'reference',
              'redefine',
              'prefix',
              'once',
              'old',
              'obsolete',
              'loop',
              'local',
              'like',
              'is',
              'inspect',
              'infix',
              'include',
              'if',
              'frozen',
              'from',
              'external',
              'export',
              'ensure',
              'end',
              'elseif',
              'else',
              'do',
              'creation',
              'create',
              'check',
              'alias',
              'agent',
              'separate',
              'invariant',
              'inherit',
              'indexing',
              'feature',
              'expanded',
              'deferred',
              'class',
              'Void',
              'True',
              'Result',
              'Precursor',
              'False',
              'Current',
              'create',
              'attached',
              'detachable',
              'as',
              'and',
              'implies',
              'not',
              'or'
            ]);
            var operators = wordObj([":=", "and then","and", "or","<<",">>"]);
          
            function chain(newtok, stream, state) {
              state.tokenize.push(newtok);
              return newtok(stream, state);
            }
          
            function tokenBase(stream, state) {
              if (stream.eatSpace()) return null;
              var ch = stream.next();
              if (ch == '"'||ch == "'") {
                return chain(readQuoted(ch, "string"), stream, state);
              } else if (ch == "-"&&stream.eat("-")) {
                stream.skipToEnd();
                return "comment";
              } else if (ch == ":"&&stream.eat("=")) {
                return "operator";
              } else if (/[0-9]/.test(ch)) {
                stream.eatWhile(/[xXbBCc0-9\.]/);
                stream.eat(/[\?\!]/);
                return "ident";
              } else if (/[a-zA-Z_0-9]/.test(ch)) {
                stream.eatWhile(/[a-zA-Z_0-9]/);
                stream.eat(/[\?\!]/);
                return "ident";
              } else if (/[=+\-\/*^%<>~]/.test(ch)) {
                stream.eatWhile(/[=+\-\/*^%<>~]/);
                return "operator";
              } else {
                return null;
              }
            }
          
            function readQuoted(quote, style,  unescaped) {
              return function(stream, state) {
                var escaped = false, ch;
                while ((ch = stream.next()) != null) {
                  if (ch == quote && (unescaped || !escaped)) {
                    state.tokenize.pop();
                    break;
                  }
                  escaped = !escaped && ch == "%";
                }
                return style;
              };
            }
          
            return {
              startState: function() {
                return {tokenize: [tokenBase]};
              },
          
              token: function(stream, state) {
                var style = state.tokenize[state.tokenize.length-1](stream, state);
                if (style == "ident") {
                  var word = stream.current();
                  style = keywords.propertyIsEnumerable(stream.current()) ? "keyword"
                    : operators.propertyIsEnumerable(stream.current()) ? "operator"
                    : /^[A-Z][A-Z_0-9]*$/g.test(word) ? "tag"
                    : /^0[bB][0-1]+$/g.test(word) ? "number"
                    : /^0[cC][0-7]+$/g.test(word) ? "number"
                    : /^0[xX][a-fA-F0-9]+$/g.test(word) ? "number"
                    : /^([0-9]+\.[0-9]*)|([0-9]*\.[0-9]+)$/g.test(word) ? "number"
                    : /^[0-9]+$/g.test(word) ? "number"
                    : "variable";
                }
                return style;
              },
              lineComment: "--"
            };
          });
          
          CodeMirror.defineMIME("text/x-eiffel", "eiffel");
          
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Eiffel mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <link rel="stylesheet" href="../../theme/neat.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="eiffel.js"></script>
          <style>
                .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}
                .cm-s-default span.cm-arrow { color: red; }
              </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Eiffel</a>
            </ul>
          </div>
          
          <article>
          <h2>Eiffel mode</h2>
          <form><textarea id="code" name="code">
          note
              description: "[
                  Project-wide universal properties.
                  This class is an ancestor to all developer-written classes.
                  ANY may be customized for individual projects or teams.
                  ]"
          
              library: "Free implementation of ELKS library"
              status: "See notice at end of class."
              legal: "See notice at end of class."
              date: "$Date: 2013-01-25 11:49:00 -0800 (Fri, 25 Jan 2013) $"
              revision: "$Revision: 712 $"
          
          class
              ANY
          
          feature -- Customization
          
          feature -- Access
          
              generator: STRING
                      -- Name of current object's generating class
                      -- (base class of the type of which it is a direct instance)
                  external
                      "built_in"
                  ensure
                      generator_not_void: Result /= Void
                      generator_not_empty: not Result.is_empty
                  end
          
              generating_type: TYPE [detachable like Current]
                      -- Type of current object
                      -- (type of which it is a direct instance)
                  do
                      Result := {detachable like Current}
                  ensure
                      generating_type_not_void: Result /= Void
                  end
          
          feature -- Status report
          
              conforms_to (other: ANY): BOOLEAN
                      -- Does type of current object conform to type
                      -- of `other' (as per Eiffel: The Language, chapter 13)?
                  require
                      other_not_void: other /= Void
                  external
                      "built_in"
                  end
          
              same_type (other: ANY): BOOLEAN
                      -- Is type of current object identical to type of `other'?
                  require
                      other_not_void: other /= Void
                  external
                      "built_in"
                  ensure
                      definition: Result = (conforms_to (other) and
                                                  other.conforms_to (Current))
                  end
          
          feature -- Comparison
          
              is_equal (other: like Current): BOOLEAN
                      -- Is `other' attached to an object considered
                      -- equal to current object?
                  require
                      other_not_void: other /= Void
                  external
                      "built_in"
                  ensure
                      symmetric: Result implies other ~ Current
                      consistent: standard_is_equal (other) implies Result
                  end
          
              frozen standard_is_equal (other: like Current): BOOLEAN
                      -- Is `other' attached to an object of the same type
                      -- as current object, and field-by-field identical to it?
                  require
                      other_not_void: other /= Void
                  external
                      "built_in"
                  ensure
                      same_type: Result implies same_type (other)
                      symmetric: Result implies other.standard_is_equal (Current)
                  end
          
              frozen equal (a: detachable ANY; b: like a): BOOLEAN
                      -- Are `a' and `b' either both void or attached
                      -- to objects considered equal?
                  do
                      if a = Void then
                          Result := b = Void
                      else
                          Result := b /= Void and then
                                      a.is_equal (b)
                      end
                  ensure
                      definition: Result = (a = Void and b = Void) or else
                                  ((a /= Void and b /= Void) and then
                                  a.is_equal (b))
                  end
          
              frozen standard_equal (a: detachable ANY; b: like a): BOOLEAN
                      -- Are `a' and `b' either both void or attached to
                      -- field-by-field identical objects of the same type?
                      -- Always uses default object comparison criterion.
                  do
                      if a = Void then
                          Result := b = Void
                      else
                          Result := b /= Void and then
                                      a.standard_is_equal (b)
                      end
                  ensure
                      definition: Result = (a = Void and b = Void) or else
                                  ((a /= Void and b /= Void) and then
                                  a.standard_is_equal (b))
                  end
          
              frozen is_deep_equal (other: like Current): BOOLEAN
                      -- Are `Current' and `other' attached to isomorphic object structures?
                  require
                      other_not_void: other /= Void
                  external
                      "built_in"
                  ensure
                      shallow_implies_deep: standard_is_equal (other) implies Result
                      same_type: Result implies same_type (other)
                      symmetric: Result implies other.is_deep_equal (Current)
                  end
          
              frozen deep_equal (a: detachable ANY; b: like a): BOOLEAN
                      -- Are `a' and `b' either both void
                      -- or attached to isomorphic object structures?
                  do
                      if a = Void then
                          Result := b = Void
                      else
                          Result := b /= Void and then a.is_deep_equal (b)
                      end
                  ensure
                      shallow_implies_deep: standard_equal (a, b) implies Result
                      both_or_none_void: (a = Void) implies (Result = (b = Void))
                      same_type: (Result and (a /= Void)) implies (b /= Void and then a.same_type (b))
                      symmetric: Result implies deep_equal (b, a)
                  end
          
          feature -- Duplication
          
              frozen twin: like Current
                      -- New object equal to `Current'
                      -- `twin' calls `copy'; to change copying/twinning semantics, redefine `copy'.
                  external
                      "built_in"
                  ensure
                      twin_not_void: Result /= Void
                      is_equal: Result ~ Current
                  end
          
              copy (other: like Current)
                      -- Update current object using fields of object attached
                      -- to `other', so as to yield equal objects.
                  require
                      other_not_void: other /= Void
                      type_identity: same_type (other)
                  external
                      "built_in"
                  ensure
                      is_equal: Current ~ other
                  end
          
              frozen standard_copy (other: like Current)
                      -- Copy every field of `other' onto corresponding field
                      -- of current object.
                  require
                      other_not_void: other /= Void
                      type_identity: same_type (other)
                  external
                      "built_in"
                  ensure
                      is_standard_equal: standard_is_equal (other)
                  end
          
              frozen clone (other: detachable ANY): like other
                      -- Void if `other' is void; otherwise new object
                      -- equal to `other'
                      --
                      -- For non-void `other', `clone' calls `copy';
                      -- to change copying/cloning semantics, redefine `copy'.
                  obsolete
                      "Use `twin' instead."
                  do
                      if other /= Void then
                          Result := other.twin
                      end
                  ensure
                      equal: Result ~ other
                  end
          
              frozen standard_clone (other: detachable ANY): like other
                      -- Void if `other' is void; otherwise new object
                      -- field-by-field identical to `other'.
                      -- Always uses default copying semantics.
                  obsolete
                      "Use `standard_twin' instead."
                  do
                      if other /= Void then
                          Result := other.standard_twin
                      end
                  ensure
                      equal: standard_equal (Result, other)
                  end
          
              frozen standard_twin: like Current
                      -- New object field-by-field identical to `other'.
                      -- Always uses default copying semantics.
                  external
                      "built_in"
                  ensure
                      standard_twin_not_void: Result /= Void
                      equal: standard_equal (Result, Current)
                  end
          
              frozen deep_twin: like Current
                      -- New object structure recursively duplicated from Current.
                  external
                      "built_in"
                  ensure
                      deep_twin_not_void: Result /= Void
                      deep_equal: deep_equal (Current, Result)
                  end
          
              frozen deep_clone (other: detachable ANY): like other
                      -- Void if `other' is void: otherwise, new object structure
                      -- recursively duplicated from the one attached to `other'
                  obsolete
                      "Use `deep_twin' instead."
                  do
                      if other /= Void then
                          Result := other.deep_twin
                      end
                  ensure
                      deep_equal: deep_equal (other, Result)
                  end
          
              frozen deep_copy (other: like Current)
                      -- Effect equivalent to that of:
                      --      `copy' (`other' . `deep_twin')
                  require
                      other_not_void: other /= Void
                  do
                      copy (other.deep_twin)
                  ensure
                      deep_equal: deep_equal (Current, other)
                  end
          
          feature {NONE} -- Retrieval
          
              frozen internal_correct_mismatch
                      -- Called from runtime to perform a proper dynamic dispatch on `correct_mismatch'
                      -- from MISMATCH_CORRECTOR.
                  local
                      l_msg: STRING
                      l_exc: EXCEPTIONS
                  do
                      if attached {MISMATCH_CORRECTOR} Current as l_corrector then
                          l_corrector.correct_mismatch
                      else
                          create l_msg.make_from_string ("Mismatch: ")
                          create l_exc
                          l_msg.append (generating_type.name)
                          l_exc.raise_retrieval_exception (l_msg)
                      end
                  end
          
          feature -- Output
          
              io: STD_FILES
                      -- Handle to standard file setup
                  once
                      create Result
                      Result.set_output_default
                  ensure
                      io_not_void: Result /= Void
                  end
          
              out: STRING
                      -- New string containing terse printable representation
                      -- of current object
                  do
                      Result := tagged_out
                  ensure
                      out_not_void: Result /= Void
                  end
          
              frozen tagged_out: STRING
                      -- New string containing terse printable representation
                      -- of current object
                  external
                      "built_in"
                  ensure
                      tagged_out_not_void: Result /= Void
                  end
          
              print (o: detachable ANY)
                      -- Write terse external representation of `o'
                      -- on standard output.
                  do
                      if o /= Void then
                          io.put_string (o.out)
                      end
                  end
          
          feature -- Platform
          
              Operating_environment: OPERATING_ENVIRONMENT
                      -- Objects available from the operating system
                  once
                      create Result
                  ensure
                      operating_environment_not_void: Result /= Void
                  end
          
          feature {NONE} -- Initialization
          
              default_create
                      -- Process instances of classes with no creation clause.
                      -- (Default: do nothing.)
                  do
                  end
          
          feature -- Basic operations
          
              default_rescue
                      -- Process exception for routines with no Rescue clause.
                      -- (Default: do nothing.)
                  do
                  end
          
              frozen do_nothing
                      -- Execute a null action.
                  do
                  end
          
              frozen default: detachable like Current
                      -- Default value of object's type
                  do
                  end
          
              frozen default_pointer: POINTER
                      -- Default value of type `POINTER'
                      -- (Avoid the need to write `p'.`default' for
                      -- some `p' of type `POINTER'.)
                  do
                  ensure
                      -- Result = Result.default
                  end
          
              frozen as_attached: attached like Current
                      -- Attached version of Current
                      -- (Can be used during transitional period to convert
                      -- non-void-safe classes to void-safe ones.)
                  do
                      Result := Current
                  end
          
          invariant
              reflexive_equality: standard_is_equal (Current)
              reflexive_conformance: conforms_to (Current)
          
          note
              copyright: "Copyright (c) 1984-2012, Eiffel Software and others"
              license:   "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
              source: "[
                      Eiffel Software
                      5949 Hollister Ave., Goleta, CA 93117 USA
                      Telephone 805-685-1006, Fax 805-685-6869
                      Website http://www.eiffel.com
                      Customer support http://support.eiffel.com
                  ]"
          
          end
          
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  mode: "text/x-eiffel",
                  indentUnit: 4,
                  lineNumbers: true,
                  theme: "neat"
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-eiffel</code>.</p>
           
           <p> Created by <a href="https://github.com/ynh">YNH</a>.</p>
            </article>
          
      • elm
        • elm.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineMode("elm", function() {
          
              function switchState(source, setState, f) {
                setState(f);
                return f(source, setState);
              }
          
              // These should all be Unicode extended, as per the Haskell 2010 report
              var smallRE = /[a-z_]/;
              var largeRE = /[A-Z]/;
              var digitRE = /[0-9]/;
              var hexitRE = /[0-9A-Fa-f]/;
              var octitRE = /[0-7]/;
              var idRE = /[a-z_A-Z0-9\']/;
              var symbolRE = /[-!#$%&*+.\/<=>?@\\^|~:\u03BB\u2192]/;
              var specialRE = /[(),;[\]`{}]/;
              var whiteCharRE = /[ \t\v\f]/; // newlines are handled in tokenizer
          
              function normal() {
                return function (source, setState) {
                  if (source.eatWhile(whiteCharRE)) {
                    return null;
                  }
          
                  var ch = source.next();
                  if (specialRE.test(ch)) {
                    if (ch == '{' && source.eat('-')) {
                      var t = "comment";
                      if (source.eat('#')) t = "meta";
                      return switchState(source, setState, ncomment(t, 1));
                    }
                    return null;
                  }
          
                  if (ch == '\'') {
                    if (source.eat('\\'))
                      source.next();  // should handle other escapes here
                    else
                      source.next();
          
                    if (source.eat('\''))
                      return "string";
                    return "error";
                  }
          
                  if (ch == '"') {
                    return switchState(source, setState, stringLiteral);
                  }
          
                  if (largeRE.test(ch)) {
                    source.eatWhile(idRE);
                    if (source.eat('.'))
                      return "qualifier";
                    return "variable-2";
                  }
          
                  if (smallRE.test(ch)) {
                    var isDef = source.pos === 1;
                    source.eatWhile(idRE);
                    return isDef ? "variable-3" : "variable";
                  }
          
                  if (digitRE.test(ch)) {
                    if (ch == '0') {
                      if (source.eat(/[xX]/)) {
                        source.eatWhile(hexitRE); // should require at least 1
                        return "integer";
                      }
                      if (source.eat(/[oO]/)) {
                        source.eatWhile(octitRE); // should require at least 1
                        return "number";
                      }
                    }
                    source.eatWhile(digitRE);
                    var t = "number";
                    if (source.eat('.')) {
                      t = "number";
                      source.eatWhile(digitRE); // should require at least 1
                    }
                    if (source.eat(/[eE]/)) {
                      t = "number";
                      source.eat(/[-+]/);
                      source.eatWhile(digitRE); // should require at least 1
                    }
                    return t;
                  }
          
                  if (symbolRE.test(ch)) {
                    if (ch == '-' && source.eat(/-/)) {
                      source.eatWhile(/-/);
                      if (!source.eat(symbolRE)) {
                        source.skipToEnd();
                        return "comment";
                      }
                    }
                    source.eatWhile(symbolRE);
                    return "builtin";
                  }
          
                  return "error";
                }
              }
          
              function ncomment(type, nest) {
                if (nest == 0) {
                  return normal();
                }
                return function(source, setState) {
                  var currNest = nest;
                  while (!source.eol()) {
                    var ch = source.next();
                    if (ch == '{' && source.eat('-')) {
                      ++currNest;
                    } else if (ch == '-' && source.eat('}')) {
                      --currNest;
                      if (currNest == 0) {
                        setState(normal());
                        return type;
                      }
                    }
                  }
                  setState(ncomment(type, currNest));
                  return type;
                }
              }
          
              function stringLiteral(source, setState) {
                while (!source.eol()) {
                  var ch = source.next();
                  if (ch == '"') {
                    setState(normal());
                    return "string";
                  }
                  if (ch == '\\') {
                    if (source.eol() || source.eat(whiteCharRE)) {
                      setState(stringGap);
                      return "string";
                    }
                    if (!source.eat('&')) source.next(); // should handle other escapes here
                  }
                }
                setState(normal());
                return "error";
              }
          
              function stringGap(source, setState) {
                if (source.eat('\\')) {
                  return switchState(source, setState, stringLiteral);
                }
                source.next();
                setState(normal());
                return "error";
              }
          
          
              var wellKnownWords = (function() {
                var wkw = {};
          
                var keywords = [
                  "case", "of", "as",
                  "if", "then", "else",
                  "let", "in",
                  "infix", "infixl", "infixr",
                  "type", "alias",
                  "input", "output", "foreign", "loopback",
                  "module", "where", "import", "exposing",
                  "_", "..", "|", ":", "=", "\\", "\"", "->", "<-"
                ];
          
                for (var i = keywords.length; i--;)
                  wkw[keywords[i]] = "keyword";
          
                return wkw;
              })();
          
          
          
              return {
                startState: function ()  { return { f: normal() }; },
                copyState:  function (s) { return { f: s.f }; },
          
                token: function(stream, state) {
                  var t = state.f(stream, function(s) { state.f = s; });
                  var w = stream.current();
                  return (wellKnownWords.hasOwnProperty(w)) ? wellKnownWords[w] : t;
                }
              };
          
            });
          
            CodeMirror.defineMIME("text/x-elm", "elm");
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Elm mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="elm.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Elm</a>
            </ul>
          </div>
          
          <article>
          <h2>Elm mode</h2>
          
          <div><textarea id="code" name="code">
          import Color exposing (..)
          import Graphics.Collage exposing (..)
          import Graphics.Element exposing (..)
          import Time exposing (..)
          
          main =
            Signal.map clock (every second)
          
          clock t =
            collage 400 400
              [ filled    lightGrey   (ngon 12 110)
              , outlined (solid grey) (ngon 12 110)
              , hand orange   100  t
              , hand charcoal 100 (t/60)
              , hand charcoal 60  (t/720)
              ]
          
          hand clr len time =
            let angle = degrees (90 - 6 * inSeconds time)
            in
                segment (0,0) (fromPolar (len,angle))
                  |> traced (solid clr)
          </textarea></div>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  mode: "text/x-elm"
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-elm</code>.</p>
            </article>
          
      • erlang
        • erlang.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          /*jshint unused:true, eqnull:true, curly:true, bitwise:true */
          /*jshint undef:true, latedef:true, trailing:true */
          /*global CodeMirror:true */
          
          // erlang mode.
          // tokenizer -> token types -> CodeMirror styles
          // tokenizer maintains a parse stack
          // indenter uses the parse stack
          
          // TODO indenter:
          //   bit syntax
          //   old guard/bif/conversion clashes (e.g. "float/1")
          //   type/spec/opaque
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMIME("text/x-erlang", "erlang");
          
          CodeMirror.defineMode("erlang", function(cmCfg) {
            "use strict";
          
          /////////////////////////////////////////////////////////////////////////////
          // constants
          
            var typeWords = [
              "-type", "-spec", "-export_type", "-opaque"];
          
            var keywordWords = [
              "after","begin","catch","case","cond","end","fun","if",
              "let","of","query","receive","try","when"];
          
            var separatorRE    = /[\->,;]/;
            var separatorWords = [
              "->",";",","];
          
            var operatorAtomWords = [
              "and","andalso","band","bnot","bor","bsl","bsr","bxor",
              "div","not","or","orelse","rem","xor"];
          
            var operatorSymbolRE    = /[\+\-\*\/<>=\|:!]/;
            var operatorSymbolWords = [
              "=","+","-","*","/",">",">=","<","=<","=:=","==","=/=","/=","||","<-","!"];
          
            var openParenRE    = /[<\(\[\{]/;
            var openParenWords = [
              "<<","(","[","{"];
          
            var closeParenRE    = /[>\)\]\}]/;
            var closeParenWords = [
              "}","]",")",">>"];
          
            var guardWords = [
              "is_atom","is_binary","is_bitstring","is_boolean","is_float",
              "is_function","is_integer","is_list","is_number","is_pid",
              "is_port","is_record","is_reference","is_tuple",
              "atom","binary","bitstring","boolean","function","integer","list",
              "number","pid","port","record","reference","tuple"];
          
            var bifWords = [
              "abs","adler32","adler32_combine","alive","apply","atom_to_binary",
              "atom_to_list","binary_to_atom","binary_to_existing_atom",
              "binary_to_list","binary_to_term","bit_size","bitstring_to_list",
              "byte_size","check_process_code","contact_binary","crc32",
              "crc32_combine","date","decode_packet","delete_module",
              "disconnect_node","element","erase","exit","float","float_to_list",
              "garbage_collect","get","get_keys","group_leader","halt","hd",
              "integer_to_list","internal_bif","iolist_size","iolist_to_binary",
              "is_alive","is_atom","is_binary","is_bitstring","is_boolean",
              "is_float","is_function","is_integer","is_list","is_number","is_pid",
              "is_port","is_process_alive","is_record","is_reference","is_tuple",
              "length","link","list_to_atom","list_to_binary","list_to_bitstring",
              "list_to_existing_atom","list_to_float","list_to_integer",
              "list_to_pid","list_to_tuple","load_module","make_ref","module_loaded",
              "monitor_node","node","node_link","node_unlink","nodes","notalive",
              "now","open_port","pid_to_list","port_close","port_command",
              "port_connect","port_control","pre_loaded","process_flag",
              "process_info","processes","purge_module","put","register",
              "registered","round","self","setelement","size","spawn","spawn_link",
              "spawn_monitor","spawn_opt","split_binary","statistics",
              "term_to_binary","time","throw","tl","trunc","tuple_size",
              "tuple_to_list","unlink","unregister","whereis"];
          
          // upper case: [A-Z] [Ø-Þ] [À-Ö]
          // lower case: [a-z] [ß-ö] [ø-ÿ]
            var anumRE       = /[\w@Ø-ÞÀ-Öß-öø-ÿ]/;
            var escapesRE    =
              /[0-7]{1,3}|[bdefnrstv\\"']|\^[a-zA-Z]|x[0-9a-zA-Z]{2}|x{[0-9a-zA-Z]+}/;
          
          /////////////////////////////////////////////////////////////////////////////
          // tokenizer
          
            function tokenizer(stream,state) {
              // in multi-line string
              if (state.in_string) {
                state.in_string = (!doubleQuote(stream));
                return rval(state,stream,"string");
              }
          
              // in multi-line atom
              if (state.in_atom) {
                state.in_atom = (!singleQuote(stream));
                return rval(state,stream,"atom");
              }
          
              // whitespace
              if (stream.eatSpace()) {
                return rval(state,stream,"whitespace");
              }
          
              // attributes and type specs
              if (!peekToken(state) &&
                  stream.match(/-\s*[a-zß-öø-ÿ][\wØ-ÞÀ-Öß-öø-ÿ]*/)) {
                if (is_member(stream.current(),typeWords)) {
                  return rval(state,stream,"type");
                }else{
                  return rval(state,stream,"attribute");
                }
              }
          
              var ch = stream.next();
          
              // comment
              if (ch == '%') {
                stream.skipToEnd();
                return rval(state,stream,"comment");
              }
          
              // colon
              if (ch == ":") {
                return rval(state,stream,"colon");
              }
          
              // macro
              if (ch == '?') {
                stream.eatSpace();
                stream.eatWhile(anumRE);
                return rval(state,stream,"macro");
              }
          
              // record
              if (ch == "#") {
                stream.eatSpace();
                stream.eatWhile(anumRE);
                return rval(state,stream,"record");
              }
          
              // dollar escape
              if (ch == "$") {
                if (stream.next() == "\\" && !stream.match(escapesRE)) {
                  return rval(state,stream,"error");
                }
                return rval(state,stream,"number");
              }
          
              // dot
              if (ch == ".") {
                return rval(state,stream,"dot");
              }
          
              // quoted atom
              if (ch == '\'') {
                if (!(state.in_atom = (!singleQuote(stream)))) {
                  if (stream.match(/\s*\/\s*[0-9]/,false)) {
                    stream.match(/\s*\/\s*[0-9]/,true);
                    return rval(state,stream,"fun");      // 'f'/0 style fun
                  }
                  if (stream.match(/\s*\(/,false) || stream.match(/\s*:/,false)) {
                    return rval(state,stream,"function");
                  }
                }
                return rval(state,stream,"atom");
              }
          
              // string
              if (ch == '"') {
                state.in_string = (!doubleQuote(stream));
                return rval(state,stream,"string");
              }
          
              // variable
              if (/[A-Z_Ø-ÞÀ-Ö]/.test(ch)) {
                stream.eatWhile(anumRE);
                return rval(state,stream,"variable");
              }
          
              // atom/keyword/BIF/function
              if (/[a-z_ß-öø-ÿ]/.test(ch)) {
                stream.eatWhile(anumRE);
          
                if (stream.match(/\s*\/\s*[0-9]/,false)) {
                  stream.match(/\s*\/\s*[0-9]/,true);
                  return rval(state,stream,"fun");      // f/0 style fun
                }
          
                var w = stream.current();
          
                if (is_member(w,keywordWords)) {
                  return rval(state,stream,"keyword");
                }else if (is_member(w,operatorAtomWords)) {
                  return rval(state,stream,"operator");
                }else if (stream.match(/\s*\(/,false)) {
                  // 'put' and 'erlang:put' are bifs, 'foo:put' is not
                  if (is_member(w,bifWords) &&
                      ((peekToken(state).token != ":") ||
                       (peekToken(state,2).token == "erlang"))) {
                    return rval(state,stream,"builtin");
                  }else if (is_member(w,guardWords)) {
                    return rval(state,stream,"guard");
                  }else{
                    return rval(state,stream,"function");
                  }
                }else if (lookahead(stream) == ":") {
                  if (w == "erlang") {
                    return rval(state,stream,"builtin");
                  } else {
                    return rval(state,stream,"function");
                  }
                }else if (is_member(w,["true","false"])) {
                  return rval(state,stream,"boolean");
                }else{
                  return rval(state,stream,"atom");
                }
              }
          
              // number
              var digitRE      = /[0-9]/;
              var radixRE      = /[0-9a-zA-Z]/;         // 36#zZ style int
              if (digitRE.test(ch)) {
                stream.eatWhile(digitRE);
                if (stream.eat('#')) {                // 36#aZ  style integer
                  if (!stream.eatWhile(radixRE)) {
                    stream.backUp(1);                 //"36#" - syntax error
                  }
                } else if (stream.eat('.')) {       // float
                  if (!stream.eatWhile(digitRE)) {
                    stream.backUp(1);        // "3." - probably end of function
                  } else {
                    if (stream.eat(/[eE]/)) {        // float with exponent
                      if (stream.eat(/[-+]/)) {
                        if (!stream.eatWhile(digitRE)) {
                          stream.backUp(2);            // "2e-" - syntax error
                        }
                      } else {
                        if (!stream.eatWhile(digitRE)) {
                          stream.backUp(1);            // "2e" - syntax error
                        }
                      }
                    }
                  }
                }
                return rval(state,stream,"number");   // normal integer
              }
          
              // open parens
              if (nongreedy(stream,openParenRE,openParenWords)) {
                return rval(state,stream,"open_paren");
              }
          
              // close parens
              if (nongreedy(stream,closeParenRE,closeParenWords)) {
                return rval(state,stream,"close_paren");
              }
          
              // separators
              if (greedy(stream,separatorRE,separatorWords)) {
                return rval(state,stream,"separator");
              }
          
              // operators
              if (greedy(stream,operatorSymbolRE,operatorSymbolWords)) {
                return rval(state,stream,"operator");
              }
          
              return rval(state,stream,null);
            }
          
          /////////////////////////////////////////////////////////////////////////////
          // utilities
            function nongreedy(stream,re,words) {
              if (stream.current().length == 1 && re.test(stream.current())) {
                stream.backUp(1);
                while (re.test(stream.peek())) {
                  stream.next();
                  if (is_member(stream.current(),words)) {
                    return true;
                  }
                }
                stream.backUp(stream.current().length-1);
              }
              return false;
            }
          
            function greedy(stream,re,words) {
              if (stream.current().length == 1 && re.test(stream.current())) {
                while (re.test(stream.peek())) {
                  stream.next();
                }
                while (0 < stream.current().length) {
                  if (is_member(stream.current(),words)) {
                    return true;
                  }else{
                    stream.backUp(1);
                  }
                }
                stream.next();
              }
              return false;
            }
          
            function doubleQuote(stream) {
              return quote(stream, '"', '\\');
            }
          
            function singleQuote(stream) {
              return quote(stream,'\'','\\');
            }
          
            function quote(stream,quoteChar,escapeChar) {
              while (!stream.eol()) {
                var ch = stream.next();
                if (ch == quoteChar) {
                  return true;
                }else if (ch == escapeChar) {
                  stream.next();
                }
              }
              return false;
            }
          
            function lookahead(stream) {
              var m = stream.match(/([\n\s]+|%[^\n]*\n)*(.)/,false);
              return m ? m.pop() : "";
            }
          
            function is_member(element,list) {
              return (-1 < list.indexOf(element));
            }
          
            function rval(state,stream,type) {
          
              // parse stack
              pushToken(state,realToken(type,stream));
          
              // map erlang token type to CodeMirror style class
              //     erlang             -> CodeMirror tag
              switch (type) {
                case "atom":        return "atom";
                case "attribute":   return "attribute";
                case "boolean":     return "atom";
                case "builtin":     return "builtin";
                case "close_paren": return null;
                case "colon":       return null;
                case "comment":     return "comment";
                case "dot":         return null;
                case "error":       return "error";
                case "fun":         return "meta";
                case "function":    return "tag";
                case "guard":       return "property";
                case "keyword":     return "keyword";
                case "macro":       return "variable-2";
                case "number":      return "number";
                case "open_paren":  return null;
                case "operator":    return "operator";
                case "record":      return "bracket";
                case "separator":   return null;
                case "string":      return "string";
                case "type":        return "def";
                case "variable":    return "variable";
                default:            return null;
              }
            }
          
            function aToken(tok,col,ind,typ) {
              return {token:  tok,
                      column: col,
                      indent: ind,
                      type:   typ};
            }
          
            function realToken(type,stream) {
              return aToken(stream.current(),
                           stream.column(),
                           stream.indentation(),
                           type);
            }
          
            function fakeToken(type) {
              return aToken(type,0,0,type);
            }
          
            function peekToken(state,depth) {
              var len = state.tokenStack.length;
              var dep = (depth ? depth : 1);
          
              if (len < dep) {
                return false;
              }else{
                return state.tokenStack[len-dep];
              }
            }
          
            function pushToken(state,token) {
          
              if (!(token.type == "comment" || token.type == "whitespace")) {
                state.tokenStack = maybe_drop_pre(state.tokenStack,token);
                state.tokenStack = maybe_drop_post(state.tokenStack);
              }
            }
          
            function maybe_drop_pre(s,token) {
              var last = s.length-1;
          
              if (0 < last && s[last].type === "record" && token.type === "dot") {
                s.pop();
              }else if (0 < last && s[last].type === "group") {
                s.pop();
                s.push(token);
              }else{
                s.push(token);
              }
              return s;
            }
          
            function maybe_drop_post(s) {
              var last = s.length-1;
          
              if (s[last].type === "dot") {
                return [];
              }
              if (s[last].type === "fun" && s[last-1].token === "fun") {
                return s.slice(0,last-1);
              }
              switch (s[s.length-1].token) {
                case "}":    return d(s,{g:["{"]});
                case "]":    return d(s,{i:["["]});
                case ")":    return d(s,{i:["("]});
                case ">>":   return d(s,{i:["<<"]});
                case "end":  return d(s,{i:["begin","case","fun","if","receive","try"]});
                case ",":    return d(s,{e:["begin","try","when","->",
                                            ",","(","[","{","<<"]});
                case "->":   return d(s,{r:["when"],
                                         m:["try","if","case","receive"]});
                case ";":    return d(s,{E:["case","fun","if","receive","try","when"]});
                case "catch":return d(s,{e:["try"]});
                case "of":   return d(s,{e:["case"]});
                case "after":return d(s,{e:["receive","try"]});
                default:     return s;
              }
            }
          
            function d(stack,tt) {
              // stack is a stack of Token objects.
              // tt is an object; {type:tokens}
              // type is a char, tokens is a list of token strings.
              // The function returns (possibly truncated) stack.
              // It will descend the stack, looking for a Token such that Token.token
              //  is a member of tokens. If it does not find that, it will normally (but
              //  see "E" below) return stack. If it does find a match, it will remove
              //  all the Tokens between the top and the matched Token.
              // If type is "m", that is all it does.
              // If type is "i", it will also remove the matched Token and the top Token.
              // If type is "g", like "i", but add a fake "group" token at the top.
              // If type is "r", it will remove the matched Token, but not the top Token.
              // If type is "e", it will keep the matched Token but not the top Token.
              // If type is "E", it behaves as for type "e", except if there is no match,
              //  in which case it will return an empty stack.
          
              for (var type in tt) {
                var len = stack.length-1;
                var tokens = tt[type];
                for (var i = len-1; -1 < i ; i--) {
                  if (is_member(stack[i].token,tokens)) {
                    var ss = stack.slice(0,i);
                    switch (type) {
                        case "m": return ss.concat(stack[i]).concat(stack[len]);
                        case "r": return ss.concat(stack[len]);
                        case "i": return ss;
                        case "g": return ss.concat(fakeToken("group"));
                        case "E": return ss.concat(stack[i]);
                        case "e": return ss.concat(stack[i]);
                    }
                  }
                }
              }
              return (type == "E" ? [] : stack);
            }
          
          /////////////////////////////////////////////////////////////////////////////
          // indenter
          
            function indenter(state,textAfter) {
              var t;
              var unit = cmCfg.indentUnit;
              var wordAfter = wordafter(textAfter);
              var currT = peekToken(state,1);
              var prevT = peekToken(state,2);
          
              if (state.in_string || state.in_atom) {
                return CodeMirror.Pass;
              }else if (!prevT) {
                return 0;
              }else if (currT.token == "when") {
                return currT.column+unit;
              }else if (wordAfter === "when" && prevT.type === "function") {
                return prevT.indent+unit;
              }else if (wordAfter === "(" && currT.token === "fun") {
                return  currT.column+3;
              }else if (wordAfter === "catch" && (t = getToken(state,["try"]))) {
                return t.column;
              }else if (is_member(wordAfter,["end","after","of"])) {
                t = getToken(state,["begin","case","fun","if","receive","try"]);
                return t ? t.column : CodeMirror.Pass;
              }else if (is_member(wordAfter,closeParenWords)) {
                t = getToken(state,openParenWords);
                return t ? t.column : CodeMirror.Pass;
              }else if (is_member(currT.token,[",","|","||"]) ||
                        is_member(wordAfter,[",","|","||"])) {
                t = postcommaToken(state);
                return t ? t.column+t.token.length : unit;
              }else if (currT.token == "->") {
                if (is_member(prevT.token, ["receive","case","if","try"])) {
                  return prevT.column+unit+unit;
                }else{
                  return prevT.column+unit;
                }
              }else if (is_member(currT.token,openParenWords)) {
                return currT.column+currT.token.length;
              }else{
                t = defaultToken(state);
                return truthy(t) ? t.column+unit : 0;
              }
            }
          
            function wordafter(str) {
              var m = str.match(/,|[a-z]+|\}|\]|\)|>>|\|+|\(/);
          
              return truthy(m) && (m.index === 0) ? m[0] : "";
            }
          
            function postcommaToken(state) {
              var objs = state.tokenStack.slice(0,-1);
              var i = getTokenIndex(objs,"type",["open_paren"]);
          
              return truthy(objs[i]) ? objs[i] : false;
            }
          
            function defaultToken(state) {
              var objs = state.tokenStack;
              var stop = getTokenIndex(objs,"type",["open_paren","separator","keyword"]);
              var oper = getTokenIndex(objs,"type",["operator"]);
          
              if (truthy(stop) && truthy(oper) && stop < oper) {
                return objs[stop+1];
              } else if (truthy(stop)) {
                return objs[stop];
              } else {
                return false;
              }
            }
          
            function getToken(state,tokens) {
              var objs = state.tokenStack;
              var i = getTokenIndex(objs,"token",tokens);
          
              return truthy(objs[i]) ? objs[i] : false;
            }
          
            function getTokenIndex(objs,propname,propvals) {
          
              for (var i = objs.length-1; -1 < i ; i--) {
                if (is_member(objs[i][propname],propvals)) {
                  return i;
                }
              }
              return false;
            }
          
            function truthy(x) {
              return (x !== false) && (x != null);
            }
          
          /////////////////////////////////////////////////////////////////////////////
          // this object defines the mode
          
            return {
              startState:
                function() {
                  return {tokenStack: [],
                          in_string:  false,
                          in_atom:    false};
                },
          
              token:
                function(stream, state) {
                  return tokenizer(stream, state);
                },
          
              indent:
                function(state, textAfter) {
                  return indenter(state,textAfter);
                },
          
              lineComment: "%"
            };
          });
          
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Erlang mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <link rel="stylesheet" href="../../theme/erlang-dark.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="erlang.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Erlang</a>
            </ul>
          </div>
          
          <article>
          <h2>Erlang mode</h2>
          <form><textarea id="code" name="code">
          %% -*- mode: erlang; erlang-indent-level: 2 -*-
          %%% Created :  7 May 2012 by mats cronqvist <masse@klarna.com>
          
          %% @doc
          %% Demonstrates how to print a record.
          %% @end
          
          -module('ex').
          -author('mats cronqvist').
          -export([demo/0,
                   rec_info/1]).
          
          -record(demo,{a="One",b="Two",c="Three",d="Four"}).
          
          rec_info(demo) -> record_info(fields,demo).
          
          demo() -> expand_recs(?MODULE,#demo{a="A",b="BB"}).
          
          expand_recs(M,List) when is_list(List) ->
            [expand_recs(M,L)||L<-List];
          expand_recs(M,Tup) when is_tuple(Tup) ->
            case tuple_size(Tup) of
              L when L < 1 -> Tup;
              L ->
                try
                  Fields = M:rec_info(element(1,Tup)),
                  L = length(Fields)+1,
                  lists:zip(Fields,expand_recs(M,tl(tuple_to_list(Tup))))
                catch
                  _:_ -> list_to_tuple(expand_recs(M,tuple_to_list(Tup)))
                end
            end;
          expand_recs(_,Term) ->
            Term.
          </textarea></form>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  matchBrackets: true,
                  extraKeys: {"Tab":  "indentAuto"},
                  theme: "erlang-dark"
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-erlang</code>.</p>
            </article>
          
      • factor
        • factor.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // Factor syntax highlight - simple mode
          //
          // by Dimage Sapelkin (https://github.com/kerabromsmu)
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("../../addon/mode/simple"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "../../addon/mode/simple"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineSimpleMode("factor", {
              // The start state contains the rules that are intially used
              start: [
                // comments
                {regex: /#?!.*/, token: "comment"},
                // strings """, multiline --> state
                {regex: /"""/, token: "string", next: "string3"},
                {regex: /"/, token: "string", next: "string"},
                // numbers: dec, hex, unicode, bin, fractional, complex
                {regex: /(?:[+-]?)(?:0x[\d,a-f]+)|(?:0o[0-7]+)|(?:0b[0,1]+)|(?:\d+.?\d*)/, token: "number"},
                //{regex: /[+-]?/} //fractional
                // definition: defining word, defined word, etc
                {regex: /(\:)(\s+)(\S+)(\s+)(\()/, token: ["keyword", null, "def", null, "keyword"], next: "stack"},
                // vocabulary using --> state
                {regex: /USING\:/, token: "keyword", next: "vocabulary"},
                // vocabulary definition/use
                {regex: /(USE\:|IN\:)(\s+)(\S+)/, token: ["keyword", null, "variable-2"]},
                // <constructors>
                {regex: /<\S+>/, token: "builtin"},
                // "keywords", incl. ; t f . [ ] { } defining words
                {regex: /;|t|f|if|\.|\[|\]|\{|\}|MAIN:/, token: "keyword"},
                // any id (?)
                {regex: /\S+/, token: "variable"},
          
                {
                  regex: /./,
                  token: null
                }
              ],
              vocabulary: [
                {regex: /;/, token: "keyword", next: "start"},
                {regex: /\S+/, token: "variable-2"},
                {
                  regex: /./,
                  token: null
                }
              ],
              string: [
                {regex: /(?:[^\\]|\\.)*?"/, token: "string", next: "start"},
                {regex: /.*/, token: "string"}
              ],
              string3: [
                {regex: /(?:[^\\]|\\.)*?"""/, token: "string", next: "start"},
                {regex: /.*/, token: "string"}
              ],
              stack: [
                {regex: /\)/, token: "meta", next: "start"},
                {regex: /--/, token: "meta"},
                {regex: /\S+/, token: "variable-3"},
                {
                  regex: /./,
                  token: null
                }
              ],
              // The meta property contains global information about the mode. It
              // can contain properties like lineComment, which are supported by
              // all modes, and also directives like dontIndentStates, which are
              // specific to simple modes.
              meta: {
                dontIndentStates: ["start", "vocabulary", "string", "string3", "stack"],
                lineComment: [ "!", "#!" ]
              }
            });
          
            CodeMirror.defineMIME("text/x-factor", "factor");
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Factor mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link href='http://fonts.googleapis.com/css?family=Droid+Sans+Mono' rel='stylesheet' type='text/css'>
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/mode/simple.js"></script>
          <script src="factor.js"></script>
          <style>
          .CodeMirror {
              font-family: 'Droid Sans Mono', monospace;
              font-size: 14px;
          }
          </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Factor</a>
            </ul>
          </div>
          
          <article>
          
          <h2>Factor mode</h2>
          
          <form><textarea id="code" name="code">
          ! Copyright (C) 2008 Slava Pestov.
          ! See http://factorcode.org/license.txt for BSD license.
          
          ! A simple time server
          
          USING: accessors calendar calendar.format io io.encodings.ascii
          io.servers kernel threads ;
          IN: time-server
          
          : handle-time-client ( -- )
              now timestamp>rfc822 print ;
          
          : <time-server> ( -- threaded-server )
              ascii <threaded-server>
                  "time-server" >>name
                  1234 >>insecure
                  [ handle-time-client ] >>handler ;
          
          : start-time-server ( -- )
              <time-server> start-server drop ;
          
          MAIN: start-time-server
          </textarea>
            </form>
          
          <script>
            var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
              lineNumbers: true,
              lineWrapping: true,
              indentUnit: 2,
              tabSize: 2,
              autofocus: true,
              mode: "text/x-factor"
            });
          </script>
          <p/>
          <p>Simple mode that handles Factor Syntax (<a href="http://en.wikipedia.org/wiki/Factor_(programming_language)">Factor on WikiPedia</a>).</p>
          
          <p><strong>MIME types defined:</strong> <code>text/x-factor</code>.</p>
          
          </article>
          
      • forth
        • forth.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // Author: Aliaksei Chapyzhenka
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            function toWordList(words) {
              var ret = [];
              words.split(' ').forEach(function(e){
                ret.push({name: e});
              });
              return ret;
            }
          
            var coreWordList = toWordList(
          'INVERT AND OR XOR\
           2* 2/ LSHIFT RSHIFT\
           0= = 0< < > U< MIN MAX\
           2DROP 2DUP 2OVER 2SWAP ?DUP DEPTH DROP DUP OVER ROT SWAP\
           >R R> R@\
           + - 1+ 1- ABS NEGATE\
           S>D * M* UM*\
           FM/MOD SM/REM UM/MOD */ */MOD / /MOD MOD\
           HERE , @ ! CELL+ CELLS C, C@ C! CHARS 2@ 2!\
           ALIGN ALIGNED +! ALLOT\
           CHAR [CHAR] [ ] BL\
           FIND EXECUTE IMMEDIATE COUNT LITERAL STATE\
           ; DOES> >BODY\
           EVALUATE\
           SOURCE >IN\
           <# # #S #> HOLD SIGN BASE >NUMBER HEX DECIMAL\
           FILL MOVE\
           . CR EMIT SPACE SPACES TYPE U. .R U.R\
           ACCEPT\
           TRUE FALSE\
           <> U> 0<> 0>\
           NIP TUCK ROLL PICK\
           2>R 2R@ 2R>\
           WITHIN UNUSED MARKER\
           I J\
           TO\
           COMPILE, [COMPILE]\
           SAVE-INPUT RESTORE-INPUT\
           PAD ERASE\
           2LITERAL DNEGATE\
           D- D+ D0< D0= D2* D2/ D< D= DMAX DMIN D>S DABS\
           M+ M*/ D. D.R 2ROT DU<\
           CATCH THROW\
           FREE RESIZE ALLOCATE\
           CS-PICK CS-ROLL\
           GET-CURRENT SET-CURRENT FORTH-WORDLIST GET-ORDER SET-ORDER\
           PREVIOUS SEARCH-WORDLIST WORDLIST FIND ALSO ONLY FORTH DEFINITIONS ORDER\
           -TRAILING /STRING SEARCH COMPARE CMOVE CMOVE> BLANK SLITERAL');
          
            var immediateWordList = toWordList('IF ELSE THEN BEGIN WHILE REPEAT UNTIL RECURSE [IF] [ELSE] [THEN] ?DO DO LOOP +LOOP UNLOOP LEAVE EXIT AGAIN CASE OF ENDOF ENDCASE');
          
            CodeMirror.defineMode('forth', function() {
              function searchWordList (wordList, word) {
                var i;
                for (i = wordList.length - 1; i >= 0; i--) {
                  if (wordList[i].name === word.toUpperCase()) {
                    return wordList[i];
                  }
                }
                return undefined;
              }
            return {
              startState: function() {
                return {
                  state: '',
                  base: 10,
                  coreWordList: coreWordList,
                  immediateWordList: immediateWordList,
                  wordList: []
                };
              },
              token: function (stream, stt) {
                var mat;
                if (stream.eatSpace()) {
                  return null;
                }
                if (stt.state === '') { // interpretation
                  if (stream.match(/^(\]|:NONAME)(\s|$)/i)) {
                    stt.state = ' compilation';
                    return 'builtin compilation';
                  }
                  mat = stream.match(/^(\:)\s+(\S+)(\s|$)+/);
                  if (mat) {
                    stt.wordList.push({name: mat[2].toUpperCase()});
                    stt.state = ' compilation';
                    return 'def' + stt.state;
                  }
                  mat = stream.match(/^(VARIABLE|2VARIABLE|CONSTANT|2CONSTANT|CREATE|POSTPONE|VALUE|WORD)\s+(\S+)(\s|$)+/i);
                  if (mat) {
                    stt.wordList.push({name: mat[2].toUpperCase()});
                    return 'def' + stt.state;
                  }
                  mat = stream.match(/^(\'|\[\'\])\s+(\S+)(\s|$)+/);
                  if (mat) {
                    return 'builtin' + stt.state;
                  }
                  } else { // compilation
                  // ; [
                  if (stream.match(/^(\;|\[)(\s)/)) {
                    stt.state = '';
                    stream.backUp(1);
                    return 'builtin compilation';
                  }
                  if (stream.match(/^(\;|\[)($)/)) {
                    stt.state = '';
                    return 'builtin compilation';
                  }
                  if (stream.match(/^(POSTPONE)\s+\S+(\s|$)+/)) {
                    return 'builtin';
                  }
                }
          
                // dynamic wordlist
                mat = stream.match(/^(\S+)(\s+|$)/);
                if (mat) {
                  if (searchWordList(stt.wordList, mat[1]) !== undefined) {
                    return 'variable' + stt.state;
                  }
          
                  // comments
                  if (mat[1] === '\\') {
                    stream.skipToEnd();
                      return 'comment' + stt.state;
                    }
          
                    // core words
                    if (searchWordList(stt.coreWordList, mat[1]) !== undefined) {
                      return 'builtin' + stt.state;
                    }
                    if (searchWordList(stt.immediateWordList, mat[1]) !== undefined) {
                      return 'keyword' + stt.state;
                    }
          
                    if (mat[1] === '(') {
                      stream.eatWhile(function (s) { return s !== ')'; });
                      stream.eat(')');
                      return 'comment' + stt.state;
                    }
          
                    // // strings
                    if (mat[1] === '.(') {
                      stream.eatWhile(function (s) { return s !== ')'; });
                      stream.eat(')');
                      return 'string' + stt.state;
                    }
                    if (mat[1] === 'S"' || mat[1] === '."' || mat[1] === 'C"') {
                      stream.eatWhile(function (s) { return s !== '"'; });
                      stream.eat('"');
                      return 'string' + stt.state;
                    }
          
                    // numbers
                    if (mat[1] - 0xfffffffff) {
                      return 'number' + stt.state;
                    }
                    // if (mat[1].match(/^[-+]?[0-9]+\.[0-9]*/)) {
                    //     return 'number' + stt.state;
                    // }
          
                    return 'atom' + stt.state;
                  }
                }
              };
            });
            CodeMirror.defineMIME("text/x-forth", "forth");
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Forth mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link href='http://fonts.googleapis.com/css?family=Droid+Sans+Mono' rel='stylesheet' type='text/css'>
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <link rel=stylesheet href="../../theme/colorforth.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="forth.js"></script>
          <style>
          .CodeMirror {
              font-family: 'Droid Sans Mono', monospace;
              font-size: 14px;
          }
          </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Forth</a>
            </ul>
          </div>
          
          <article>
          
          <h2>Forth mode</h2>
          
          <form><textarea id="code" name="code">
          \ Insertion sort
          
          : cell-  1 cells - ;
          
          : insert ( start end -- start )
            dup @ >r ( r: v )
            begin
              2dup <
            while
              r@ over cell- @ <
            while
              cell-
              dup @ over cell+ !
            repeat then
            r> swap ! ;
          
          : sort ( array len -- )
            1 ?do
              dup i cells + insert
            loop drop ;</textarea>
            </form>
          
          <script>
            var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
              lineNumbers: true,
              lineWrapping: true,
              indentUnit: 2,
              tabSize: 2,
              autofocus: true,
              theme: "colorforth",
              mode: "text/x-forth"
            });
          </script>
          
          <p>Simple mode that handle Forth-Syntax (<a href="http://en.wikipedia.org/wiki/Forth_%28programming_language%29">Forth on WikiPedia</a>).</p>
          
          <p><strong>MIME types defined:</strong> <code>text/x-forth</code>.</p>
          
          </article>
          
      • fortran
        • fortran.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("fortran", function() {
            function words(array) {
              var keys = {};
              for (var i = 0; i < array.length; ++i) {
                keys[array[i]] = true;
              }
              return keys;
            }
          
            var keywords = words([
                            "abstract", "accept", "allocatable", "allocate",
                            "array", "assign", "asynchronous", "backspace",
                            "bind", "block", "byte", "call", "case",
                            "class", "close", "common", "contains",
                            "continue", "cycle", "data", "deallocate",
                            "decode", "deferred", "dimension", "do",
                            "elemental", "else", "encode", "end",
                            "endif", "entry", "enumerator", "equivalence",
                            "exit", "external", "extrinsic", "final",
                            "forall", "format", "function", "generic",
                            "go", "goto", "if", "implicit", "import", "include",
                            "inquire", "intent", "interface", "intrinsic",
                            "module", "namelist", "non_intrinsic",
                            "non_overridable", "none", "nopass",
                            "nullify", "open", "optional", "options",
                            "parameter", "pass", "pause", "pointer",
                            "print", "private", "program", "protected",
                            "public", "pure", "read", "recursive", "result",
                            "return", "rewind", "save", "select", "sequence",
                            "stop", "subroutine", "target", "then", "to", "type",
                            "use", "value", "volatile", "where", "while",
                            "write"]);
            var builtins = words(["abort", "abs", "access", "achar", "acos",
                                    "adjustl", "adjustr", "aimag", "aint", "alarm",
                                    "all", "allocated", "alog", "amax", "amin",
                                    "amod", "and", "anint", "any", "asin",
                                    "associated", "atan", "besj", "besjn", "besy",
                                    "besyn", "bit_size", "btest", "cabs", "ccos",
                                    "ceiling", "cexp", "char", "chdir", "chmod",
                                    "clog", "cmplx", "command_argument_count",
                                    "complex", "conjg", "cos", "cosh", "count",
                                    "cpu_time", "cshift", "csin", "csqrt", "ctime",
                                    "c_funloc", "c_loc", "c_associated", "c_null_ptr",
                                    "c_null_funptr", "c_f_pointer", "c_null_char",
                                    "c_alert", "c_backspace", "c_form_feed",
                                    "c_new_line", "c_carriage_return",
                                    "c_horizontal_tab", "c_vertical_tab", "dabs",
                                    "dacos", "dasin", "datan", "date_and_time",
                                    "dbesj", "dbesj", "dbesjn", "dbesy", "dbesy",
                                    "dbesyn", "dble", "dcos", "dcosh", "ddim", "derf",
                                    "derfc", "dexp", "digits", "dim", "dint", "dlog",
                                    "dlog", "dmax", "dmin", "dmod", "dnint",
                                    "dot_product", "dprod", "dsign", "dsinh",
                                    "dsin", "dsqrt", "dtanh", "dtan", "dtime",
                                    "eoshift", "epsilon", "erf", "erfc", "etime",
                                    "exit", "exp", "exponent", "extends_type_of",
                                    "fdate", "fget", "fgetc", "float", "floor",
                                    "flush", "fnum", "fputc", "fput", "fraction",
                                    "fseek", "fstat", "ftell", "gerror", "getarg",
                                    "get_command", "get_command_argument",
                                    "get_environment_variable", "getcwd",
                                    "getenv", "getgid", "getlog", "getpid",
                                    "getuid", "gmtime", "hostnm", "huge", "iabs",
                                    "iachar", "iand", "iargc", "ibclr", "ibits",
                                    "ibset", "ichar", "idate", "idim", "idint",
                                    "idnint", "ieor", "ierrno", "ifix", "imag",
                                    "imagpart", "index", "int", "ior", "irand",
                                    "isatty", "ishft", "ishftc", "isign",
                                    "iso_c_binding", "is_iostat_end", "is_iostat_eor",
                                    "itime", "kill", "kind", "lbound", "len", "len_trim",
                                    "lge", "lgt", "link", "lle", "llt", "lnblnk", "loc",
                                    "log", "logical", "long", "lshift", "lstat", "ltime",
                                    "matmul", "max", "maxexponent", "maxloc", "maxval",
                                    "mclock", "merge", "move_alloc", "min", "minexponent",
                                    "minloc", "minval", "mod", "modulo", "mvbits",
                                    "nearest", "new_line", "nint", "not", "or", "pack",
                                    "perror", "precision", "present", "product", "radix",
                                    "rand", "random_number", "random_seed", "range",
                                    "real", "realpart", "rename", "repeat", "reshape",
                                    "rrspacing", "rshift", "same_type_as", "scale",
                                    "scan", "second", "selected_int_kind",
                                    "selected_real_kind", "set_exponent", "shape",
                                    "short", "sign", "signal", "sinh", "sin", "sleep",
                                    "sngl", "spacing", "spread", "sqrt", "srand", "stat",
                                    "sum", "symlnk", "system", "system_clock", "tan",
                                    "tanh", "time", "tiny", "transfer", "transpose",
                                    "trim", "ttynam", "ubound", "umask", "unlink",
                                    "unpack", "verify", "xor", "zabs", "zcos", "zexp",
                                    "zlog", "zsin", "zsqrt"]);
          
              var dataTypes =  words(["c_bool", "c_char", "c_double", "c_double_complex",
                               "c_float", "c_float_complex", "c_funptr", "c_int",
                               "c_int16_t", "c_int32_t", "c_int64_t", "c_int8_t",
                               "c_int_fast16_t", "c_int_fast32_t", "c_int_fast64_t",
                               "c_int_fast8_t", "c_int_least16_t", "c_int_least32_t",
                               "c_int_least64_t", "c_int_least8_t", "c_intmax_t",
                               "c_intptr_t", "c_long", "c_long_double",
                               "c_long_double_complex", "c_long_long", "c_ptr",
                               "c_short", "c_signed_char", "c_size_t", "character",
                               "complex", "double", "integer", "logical", "real"]);
            var isOperatorChar = /[+\-*&=<>\/\:]/;
            var litOperator = new RegExp("(\.and\.|\.or\.|\.eq\.|\.lt\.|\.le\.|\.gt\.|\.ge\.|\.ne\.|\.not\.|\.eqv\.|\.neqv\.)", "i");
          
            function tokenBase(stream, state) {
          
              if (stream.match(litOperator)){
                  return 'operator';
              }
          
              var ch = stream.next();
              if (ch == "!") {
                stream.skipToEnd();
                return "comment";
              }
              if (ch == '"' || ch == "'") {
                state.tokenize = tokenString(ch);
                return state.tokenize(stream, state);
              }
              if (/[\[\]\(\),]/.test(ch)) {
                return null;
              }
              if (/\d/.test(ch)) {
                stream.eatWhile(/[\w\.]/);
                return "number";
              }
              if (isOperatorChar.test(ch)) {
                stream.eatWhile(isOperatorChar);
                return "operator";
              }
              stream.eatWhile(/[\w\$_]/);
              var word = stream.current().toLowerCase();
          
              if (keywords.hasOwnProperty(word)){
                      return 'keyword';
              }
              if (builtins.hasOwnProperty(word) || dataTypes.hasOwnProperty(word)) {
                      return 'builtin';
              }
              return "variable";
            }
          
            function tokenString(quote) {
              return function(stream, state) {
                var escaped = false, next, end = false;
                while ((next = stream.next()) != null) {
                  if (next == quote && !escaped) {
                      end = true;
                      break;
                  }
                  escaped = !escaped && next == "\\";
                }
                if (end || !escaped) state.tokenize = null;
                return "string";
              };
            }
          
            // Interface
          
            return {
              startState: function() {
                return {tokenize: null};
              },
          
              token: function(stream, state) {
                if (stream.eatSpace()) return null;
                var style = (state.tokenize || tokenBase)(stream, state);
                if (style == "comment" || style == "meta") return style;
                return style;
              }
            };
          });
          
          CodeMirror.defineMIME("text/x-fortran", "fortran");
          
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Fortran mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="fortran.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Fortran</a>
            </ul>
          </div>
          
          <article>
          <h2>Fortran mode</h2>
          
          
          <div><textarea id="code" name="code">
          ! Example Fortran code
            program average
          
            ! Read in some numbers and take the average
            ! As written, if there are no data points, an average of zero is returned
            ! While this may not be desired behavior, it keeps this example simple
          
            implicit none
          
            real, dimension(:), allocatable :: points
            integer                         :: number_of_points
            real                            :: average_points=0., positive_average=0., negative_average=0.
          
            write (*,*) "Input number of points to average:"
            read  (*,*) number_of_points
          
            allocate (points(number_of_points))
          
            write (*,*) "Enter the points to average:"
            read  (*,*) points
          
            ! Take the average by summing points and dividing by number_of_points
            if (number_of_points > 0) average_points = sum(points) / number_of_points
          
            ! Now form average over positive and negative points only
            if (count(points > 0.) > 0) then
               positive_average = sum(points, points > 0.) / count(points > 0.)
            end if
          
            if (count(points < 0.) > 0) then
               negative_average = sum(points, points < 0.) / count(points < 0.)
            end if
          
            deallocate (points)
          
            ! Print result to terminal
            write (*,'(a,g12.4)') 'Average = ', average_points
            write (*,'(a,g12.4)') 'Average of positive points = ', positive_average
            write (*,'(a,g12.4)') 'Average of negative points = ', negative_average
          
            end program average
          </textarea></div>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  mode: "text/x-fortran"
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-Fortran</code>.</p>
            </article>
          
      • gas
        • gas.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("gas", function(_config, parserConfig) {
            'use strict';
          
            // If an architecture is specified, its initialization function may
            // populate this array with custom parsing functions which will be
            // tried in the event that the standard functions do not find a match.
            var custom = [];
          
            // The symbol used to start a line comment changes based on the target
            // architecture.
            // If no architecture is pased in "parserConfig" then only multiline
            // comments will have syntax support.
            var lineCommentStartSymbol = "";
          
            // These directives are architecture independent.
            // Machine specific directives should go in their respective
            // architecture initialization function.
            // Reference:
            // http://sourceware.org/binutils/docs/as/Pseudo-Ops.html#Pseudo-Ops
            var directives = {
              ".abort" : "builtin",
              ".align" : "builtin",
              ".altmacro" : "builtin",
              ".ascii" : "builtin",
              ".asciz" : "builtin",
              ".balign" : "builtin",
              ".balignw" : "builtin",
              ".balignl" : "builtin",
              ".bundle_align_mode" : "builtin",
              ".bundle_lock" : "builtin",
              ".bundle_unlock" : "builtin",
              ".byte" : "builtin",
              ".cfi_startproc" : "builtin",
              ".comm" : "builtin",
              ".data" : "builtin",
              ".def" : "builtin",
              ".desc" : "builtin",
              ".dim" : "builtin",
              ".double" : "builtin",
              ".eject" : "builtin",
              ".else" : "builtin",
              ".elseif" : "builtin",
              ".end" : "builtin",
              ".endef" : "builtin",
              ".endfunc" : "builtin",
              ".endif" : "builtin",
              ".equ" : "builtin",
              ".equiv" : "builtin",
              ".eqv" : "builtin",
              ".err" : "builtin",
              ".error" : "builtin",
              ".exitm" : "builtin",
              ".extern" : "builtin",
              ".fail" : "builtin",
              ".file" : "builtin",
              ".fill" : "builtin",
              ".float" : "builtin",
              ".func" : "builtin",
              ".global" : "builtin",
              ".gnu_attribute" : "builtin",
              ".hidden" : "builtin",
              ".hword" : "builtin",
              ".ident" : "builtin",
              ".if" : "builtin",
              ".incbin" : "builtin",
              ".include" : "builtin",
              ".int" : "builtin",
              ".internal" : "builtin",
              ".irp" : "builtin",
              ".irpc" : "builtin",
              ".lcomm" : "builtin",
              ".lflags" : "builtin",
              ".line" : "builtin",
              ".linkonce" : "builtin",
              ".list" : "builtin",
              ".ln" : "builtin",
              ".loc" : "builtin",
              ".loc_mark_labels" : "builtin",
              ".local" : "builtin",
              ".long" : "builtin",
              ".macro" : "builtin",
              ".mri" : "builtin",
              ".noaltmacro" : "builtin",
              ".nolist" : "builtin",
              ".octa" : "builtin",
              ".offset" : "builtin",
              ".org" : "builtin",
              ".p2align" : "builtin",
              ".popsection" : "builtin",
              ".previous" : "builtin",
              ".print" : "builtin",
              ".protected" : "builtin",
              ".psize" : "builtin",
              ".purgem" : "builtin",
              ".pushsection" : "builtin",
              ".quad" : "builtin",
              ".reloc" : "builtin",
              ".rept" : "builtin",
              ".sbttl" : "builtin",
              ".scl" : "builtin",
              ".section" : "builtin",
              ".set" : "builtin",
              ".short" : "builtin",
              ".single" : "builtin",
              ".size" : "builtin",
              ".skip" : "builtin",
              ".sleb128" : "builtin",
              ".space" : "builtin",
              ".stab" : "builtin",
              ".string" : "builtin",
              ".struct" : "builtin",
              ".subsection" : "builtin",
              ".symver" : "builtin",
              ".tag" : "builtin",
              ".text" : "builtin",
              ".title" : "builtin",
              ".type" : "builtin",
              ".uleb128" : "builtin",
              ".val" : "builtin",
              ".version" : "builtin",
              ".vtable_entry" : "builtin",
              ".vtable_inherit" : "builtin",
              ".warning" : "builtin",
              ".weak" : "builtin",
              ".weakref" : "builtin",
              ".word" : "builtin"
            };
          
            var registers = {};
          
            function x86(_parserConfig) {
              lineCommentStartSymbol = "#";
          
              registers.ax  = "variable";
              registers.eax = "variable-2";
              registers.rax = "variable-3";
          
              registers.bx  = "variable";
              registers.ebx = "variable-2";
              registers.rbx = "variable-3";
          
              registers.cx  = "variable";
              registers.ecx = "variable-2";
              registers.rcx = "variable-3";
          
              registers.dx  = "variable";
              registers.edx = "variable-2";
              registers.rdx = "variable-3";
          
              registers.si  = "variable";
              registers.esi = "variable-2";
              registers.rsi = "variable-3";
          
              registers.di  = "variable";
              registers.edi = "variable-2";
              registers.rdi = "variable-3";
          
              registers.sp  = "variable";
              registers.esp = "variable-2";
              registers.rsp = "variable-3";
          
              registers.bp  = "variable";
              registers.ebp = "variable-2";
              registers.rbp = "variable-3";
          
              registers.ip  = "variable";
              registers.eip = "variable-2";
              registers.rip = "variable-3";
          
              registers.cs  = "keyword";
              registers.ds  = "keyword";
              registers.ss  = "keyword";
              registers.es  = "keyword";
              registers.fs  = "keyword";
              registers.gs  = "keyword";
            }
          
            function armv6(_parserConfig) {
              // Reference:
              // http://infocenter.arm.com/help/topic/com.arm.doc.qrc0001l/QRC0001_UAL.pdf
              // http://infocenter.arm.com/help/topic/com.arm.doc.ddi0301h/DDI0301H_arm1176jzfs_r0p7_trm.pdf
              lineCommentStartSymbol = "@";
              directives.syntax = "builtin";
          
              registers.r0  = "variable";
              registers.r1  = "variable";
              registers.r2  = "variable";
              registers.r3  = "variable";
              registers.r4  = "variable";
              registers.r5  = "variable";
              registers.r6  = "variable";
              registers.r7  = "variable";
              registers.r8  = "variable";
              registers.r9  = "variable";
              registers.r10 = "variable";
              registers.r11 = "variable";
              registers.r12 = "variable";
          
              registers.sp  = "variable-2";
              registers.lr  = "variable-2";
              registers.pc  = "variable-2";
              registers.r13 = registers.sp;
              registers.r14 = registers.lr;
              registers.r15 = registers.pc;
          
              custom.push(function(ch, stream) {
                if (ch === '#') {
                  stream.eatWhile(/\w/);
                  return "number";
                }
              });
            }
          
            var arch = (parserConfig.architecture || "x86").toLowerCase();
            if (arch === "x86") {
              x86(parserConfig);
            } else if (arch === "arm" || arch === "armv6") {
              armv6(parserConfig);
            }
          
            function nextUntilUnescaped(stream, end) {
              var escaped = false, next;
              while ((next = stream.next()) != null) {
                if (next === end && !escaped) {
                  return false;
                }
                escaped = !escaped && next === "\\";
              }
              return escaped;
            }
          
            function clikeComment(stream, state) {
              var maybeEnd = false, ch;
              while ((ch = stream.next()) != null) {
                if (ch === "/" && maybeEnd) {
                  state.tokenize = null;
                  break;
                }
                maybeEnd = (ch === "*");
              }
              return "comment";
            }
          
            return {
              startState: function() {
                return {
                  tokenize: null
                };
              },
          
              token: function(stream, state) {
                if (state.tokenize) {
                  return state.tokenize(stream, state);
                }
          
                if (stream.eatSpace()) {
                  return null;
                }
          
                var style, cur, ch = stream.next();
          
                if (ch === "/") {
                  if (stream.eat("*")) {
                    state.tokenize = clikeComment;
                    return clikeComment(stream, state);
                  }
                }
          
                if (ch === lineCommentStartSymbol) {
                  stream.skipToEnd();
                  return "comment";
                }
          
                if (ch === '"') {
                  nextUntilUnescaped(stream, '"');
                  return "string";
                }
          
                if (ch === '.') {
                  stream.eatWhile(/\w/);
                  cur = stream.current().toLowerCase();
                  style = directives[cur];
                  return style || null;
                }
          
                if (ch === '=') {
                  stream.eatWhile(/\w/);
                  return "tag";
                }
          
                if (ch === '{') {
                  return "braket";
                }
          
                if (ch === '}') {
                  return "braket";
                }
          
                if (/\d/.test(ch)) {
                  if (ch === "0" && stream.eat("x")) {
                    stream.eatWhile(/[0-9a-fA-F]/);
                    return "number";
                  }
                  stream.eatWhile(/\d/);
                  return "number";
                }
          
                if (/\w/.test(ch)) {
                  stream.eatWhile(/\w/);
                  if (stream.eat(":")) {
                    return 'tag';
                  }
                  cur = stream.current().toLowerCase();
                  style = registers[cur];
                  return style || null;
                }
          
                for (var i = 0; i < custom.length; i++) {
                  style = custom[i](ch, stream, state);
                  if (style) {
                    return style;
                  }
                }
              },
          
              lineComment: lineCommentStartSymbol,
              blockCommentStart: "/*",
              blockCommentEnd: "*/"
            };
          });
          
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Gas mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="gas.js"></script>
          <style>.CodeMirror {border: 2px inset #dee;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Gas</a>
            </ul>
          </div>
          
          <article>
          <h2>Gas mode</h2>
          <form>
          <textarea id="code" name="code">
          .syntax unified
          .global main
          
          /* 
           *  A
           *  multi-line
           *  comment.
           */
          
          @ A single line comment.
          
          main:
                  push    {sp, lr}
                  ldr     r0, =message
                  bl      puts
                  mov     r0, #0
                  pop     {sp, pc}
          
          message:
                  .asciz "Hello world!<br />"
          </textarea>
                  </form>
          
                  <script>
                      var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                          lineNumbers: true,
                          mode: {name: "gas", architecture: "ARMv6"},
                      });
                  </script>
          
                  <p>Handles AT&amp;T assembler syntax (more specifically this handles
                  the GNU Assembler (gas) syntax.)
                  It takes a single optional configuration parameter:
                  <code>architecture</code>, which can be one of <code>"ARM"</code>,
                  <code>"ARMv6"</code> or <code>"x86"</code>.
                  Including the parameter adds syntax for the registers and special
                  directives for the supplied architecture.
          
                  <p><strong>MIME types defined:</strong> <code>text/x-gas</code></p>
              </article>
          
      • gfm
        • gfm.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("../markdown/markdown"), require("../../addon/mode/overlay"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "../markdown/markdown", "../../addon/mode/overlay"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          var urlRE = /^((?:(?:aaas?|about|acap|adiumxtra|af[ps]|aim|apt|attachment|aw|beshare|bitcoin|bolo|callto|cap|chrome(?:-extension)?|cid|coap|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-(?:playcontainer|playsingle)|dns|doi|dtn|dvb|ed2k|facetime|feed|file|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|hcp|https?|iax|icap|icon|im|imap|info|ipn|ipp|irc[6s]?|iris(?:\.beep|\.lwz|\.xpc|\.xpcs)?|itms|jar|javascript|jms|keyparc|lastfm|ldaps?|magnet|mailto|maps|market|message|mid|mms|ms-help|msnim|msrps?|mtqp|mumble|mupdate|mvn|news|nfs|nih?|nntp|notes|oid|opaquelocktoken|palm|paparazzi|platform|pop|pres|proxy|psyc|query|res(?:ource)?|rmi|rsync|rtmp|rtsp|secondlife|service|session|sftp|sgn|shttp|sieve|sips?|skype|sm[bs]|snmp|soap\.beeps?|soldat|spotify|ssh|steam|svn|tag|teamspeak|tel(?:net)?|tftp|things|thismessage|tip|tn3270|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|view-source|webcal|wss?|wtai|wyciwyg|xcon(?:-userid)?|xfire|xmlrpc\.beeps?|xmpp|xri|ymsgr|z39\.50[rs]?):(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`*!()\[\]{};:'".,<>?«»“”‘’]))/i
          
          CodeMirror.defineMode("gfm", function(config, modeConfig) {
            var codeDepth = 0;
            function blankLine(state) {
              state.code = false;
              return null;
            }
            var gfmOverlay = {
              startState: function() {
                return {
                  code: false,
                  codeBlock: false,
                  ateSpace: false
                };
              },
              copyState: function(s) {
                return {
                  code: s.code,
                  codeBlock: s.codeBlock,
                  ateSpace: s.ateSpace
                };
              },
              token: function(stream, state) {
                state.combineTokens = null;
          
                // Hack to prevent formatting override inside code blocks (block and inline)
                if (state.codeBlock) {
                  if (stream.match(/^```+/)) {
                    state.codeBlock = false;
                    return null;
                  }
                  stream.skipToEnd();
                  return null;
                }
                if (stream.sol()) {
                  state.code = false;
                }
                if (stream.sol() && stream.match(/^```+/)) {
                  stream.skipToEnd();
                  state.codeBlock = true;
                  return null;
                }
                // If this block is changed, it may need to be updated in Markdown mode
                if (stream.peek() === '`') {
                  stream.next();
                  var before = stream.pos;
                  stream.eatWhile('`');
                  var difference = 1 + stream.pos - before;
                  if (!state.code) {
                    codeDepth = difference;
                    state.code = true;
                  } else {
                    if (difference === codeDepth) { // Must be exact
                      state.code = false;
                    }
                  }
                  return null;
                } else if (state.code) {
                  stream.next();
                  return null;
                }
                // Check if space. If so, links can be formatted later on
                if (stream.eatSpace()) {
                  state.ateSpace = true;
                  return null;
                }
                if (stream.sol() || state.ateSpace) {
                  state.ateSpace = false;
                  if (modeConfig.gitHubSpice !== false) {
                    if(stream.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+@)?(?:[a-f0-9]{7,40}\b)/)) {
                      // User/Project@SHA
                      // User@SHA
                      // SHA
                      state.combineTokens = true;
                      return "link";
                    } else if (stream.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+)?#[0-9]+\b/)) {
                      // User/Project#Num
                      // User#Num
                      // #Num
                      state.combineTokens = true;
                      return "link";
                    }
                  }
                }
                if (stream.match(urlRE) &&
                    stream.string.slice(stream.start - 2, stream.start) != "](" &&
                    (stream.start == 0 || /\W/.test(stream.string.charAt(stream.start - 1)))) {
                  // URLs
                  // Taken from http://daringfireball.net/2010/07/improved_regex_for_matching_urls
                  // And then (issue #1160) simplified to make it not crash the Chrome Regexp engine
                  // And then limited url schemes to the CommonMark list, so foo:bar isn't matched as a URL
                  state.combineTokens = true;
                  return "link";
                }
                stream.next();
                return null;
              },
              blankLine: blankLine
            };
          
            var markdownConfig = {
              underscoresBreakWords: false,
              taskLists: true,
              fencedCodeBlocks: '```',
              strikethrough: true
            };
            for (var attr in modeConfig) {
              markdownConfig[attr] = modeConfig[attr];
            }
            markdownConfig.name = "markdown";
            return CodeMirror.overlayMode(CodeMirror.getMode(config, markdownConfig), gfmOverlay);
          
          }, "markdown");
          
            CodeMirror.defineMIME("text/x-gfm", "gfm");
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: GFM mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/mode/overlay.js"></script>
          <script src="../xml/xml.js"></script>
          <script src="../markdown/markdown.js"></script>
          <script src="gfm.js"></script>
          <script src="../javascript/javascript.js"></script>
          <script src="../css/css.js"></script>
          <script src="../htmlmixed/htmlmixed.js"></script>
          <script src="../clike/clike.js"></script>
          <script src="../meta.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">GFM</a>
            </ul>
          </div>
          
          <article>
          <h2>GFM mode</h2>
          <form><textarea id="code" name="code">
          GitHub Flavored Markdown
          ========================
          
          Everything from markdown plus GFM features:
          
          ## URL autolinking
          
          Underscores_are_allowed_between_words.
          
          ## Strikethrough text
          
          GFM adds syntax to strikethrough text, which is missing from standard Markdown.
          
          ~~Mistaken text.~~
          ~~**works with other fomatting**~~
          
          ~~spans across
          lines~~
          
          ## Fenced code blocks (and syntax highlighting)
          
          ```javascript
          for (var i = 0; i &lt; items.length; i++) {
              console.log(items[i], i); // log them
          }
          ```
          
          ## Task Lists
          
          - [ ] Incomplete task list item
          - [x] **Completed** task list item
          
          ## A bit of GitHub spice
          
          * SHA: be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2
          * User@SHA ref: mojombo@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2
          * User/Project@SHA: mojombo/god@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2
          * \#Num: #1
          * User/#Num: mojombo#1
          * User/Project#Num: mojombo/god#1
          
          See http://github.github.com/github-flavored-markdown/.
          
          </textarea></form>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  mode: 'gfm',
                  lineNumbers: true,
                  theme: "default"
                });
              </script>
          
              <p>Optionally depends on other modes for properly highlighted code blocks.</p>
          
              <p><strong>Parsing/Highlighting Tests:</strong> <a href="../../test/index.html#gfm_*">normal</a>,  <a href="../../test/index.html#verbose,gfm_*">verbose</a>.</p>
          
            </article>
          
        • test.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function() {
            var mode = CodeMirror.getMode({tabSize: 4}, "gfm");
            function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
            var modeHighlightFormatting = CodeMirror.getMode({tabSize: 4}, {name: "gfm", highlightFormatting: true});
            function FT(name) { test.mode(name, modeHighlightFormatting, Array.prototype.slice.call(arguments, 1)); }
          
            FT("codeBackticks",
               "[comment&formatting&formatting-code `][comment foo][comment&formatting&formatting-code `]");
          
            FT("doubleBackticks",
               "[comment&formatting&formatting-code ``][comment foo ` bar][comment&formatting&formatting-code ``]");
          
            FT("codeBlock",
               "[comment&formatting&formatting-code-block ```css]",
               "[tag foo]",
               "[comment&formatting&formatting-code-block ```]");
          
            FT("taskList",
               "[variable-2&formatting&formatting-list&formatting-list-ul - ][meta&formatting&formatting-task [ ]]][variable-2  foo]",
               "[variable-2&formatting&formatting-list&formatting-list-ul - ][property&formatting&formatting-task [x]]][variable-2  foo]");
          
            FT("formatting_strikethrough",
               "[strikethrough&formatting&formatting-strikethrough ~~][strikethrough foo][strikethrough&formatting&formatting-strikethrough ~~]");
          
            FT("formatting_strikethrough",
               "foo [strikethrough&formatting&formatting-strikethrough ~~][strikethrough bar][strikethrough&formatting&formatting-strikethrough ~~]");
          
            MT("emInWordAsterisk",
               "foo[em *bar*]hello");
          
            MT("emInWordUnderscore",
               "foo_bar_hello");
          
            MT("emStrongUnderscore",
               "[strong __][em&strong _foo__][em _] bar");
          
            MT("fencedCodeBlocks",
               "[comment ```]",
               "[comment foo]",
               "",
               "[comment ```]",
               "bar");
          
            MT("fencedCodeBlockModeSwitching",
               "[comment ```javascript]",
               "[variable foo]",
               "",
               "[comment ```]",
               "bar");
          
            MT("fencedCodeBlocksNoTildes",
               "~~~",
               "foo",
               "~~~");
          
            MT("taskListAsterisk",
               "[variable-2 * []] foo]", // Invalid; must have space or x between []
               "[variable-2 * [ ]]bar]", // Invalid; must have space after ]
               "[variable-2 * [x]]hello]", // Invalid; must have space after ]
               "[variable-2 * ][meta [ ]]][variable-2  [world]]]", // Valid; tests reference style links
               "    [variable-3 * ][property [x]]][variable-3  foo]"); // Valid; can be nested
          
            MT("taskListPlus",
               "[variable-2 + []] foo]", // Invalid; must have space or x between []
               "[variable-2 + [ ]]bar]", // Invalid; must have space after ]
               "[variable-2 + [x]]hello]", // Invalid; must have space after ]
               "[variable-2 + ][meta [ ]]][variable-2  [world]]]", // Valid; tests reference style links
               "    [variable-3 + ][property [x]]][variable-3  foo]"); // Valid; can be nested
          
            MT("taskListDash",
               "[variable-2 - []] foo]", // Invalid; must have space or x between []
               "[variable-2 - [ ]]bar]", // Invalid; must have space after ]
               "[variable-2 - [x]]hello]", // Invalid; must have space after ]
               "[variable-2 - ][meta [ ]]][variable-2  [world]]]", // Valid; tests reference style links
               "    [variable-3 - ][property [x]]][variable-3  foo]"); // Valid; can be nested
          
            MT("taskListNumber",
               "[variable-2 1. []] foo]", // Invalid; must have space or x between []
               "[variable-2 2. [ ]]bar]", // Invalid; must have space after ]
               "[variable-2 3. [x]]hello]", // Invalid; must have space after ]
               "[variable-2 4. ][meta [ ]]][variable-2  [world]]]", // Valid; tests reference style links
               "    [variable-3 1. ][property [x]]][variable-3  foo]"); // Valid; can be nested
          
            MT("SHA",
               "foo [link be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2] bar");
          
            MT("SHAEmphasis",
               "[em *foo ][em&link be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2][em *]");
          
            MT("shortSHA",
               "foo [link be6a8cc] bar");
          
            MT("tooShortSHA",
               "foo be6a8c bar");
          
            MT("longSHA",
               "foo be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd22 bar");
          
            MT("badSHA",
               "foo be6a8cc1c1ecfe9489fb51e4869af15a13fc2cg2 bar");
          
            MT("userSHA",
               "foo [link bar@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2] hello");
          
            MT("userSHAEmphasis",
               "[em *foo ][em&link bar@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2][em *]");
          
            MT("userProjectSHA",
               "foo [link bar/hello@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2] world");
          
            MT("userProjectSHAEmphasis",
               "[em *foo ][em&link bar/hello@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2][em *]");
          
            MT("num",
               "foo [link #1] bar");
          
            MT("numEmphasis",
               "[em *foo ][em&link #1][em *]");
          
            MT("badNum",
               "foo #1bar hello");
          
            MT("userNum",
               "foo [link bar#1] hello");
          
            MT("userNumEmphasis",
               "[em *foo ][em&link bar#1][em *]");
          
            MT("userProjectNum",
               "foo [link bar/hello#1] world");
          
            MT("userProjectNumEmphasis",
               "[em *foo ][em&link bar/hello#1][em *]");
          
            MT("vanillaLink",
               "foo [link http://www.example.com/] bar");
          
            MT("vanillaLinkNoScheme",
               "foo [link www.example.com] bar");
          
            MT("vanillaLinkHttps",
               "foo [link https://www.example.com/] bar");
          
            MT("vanillaLinkDataSchema",
               "foo [link data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==] bar");
          
            MT("vanillaLinkPunctuation",
               "foo [link http://www.example.com/]. bar");
          
            MT("vanillaLinkExtension",
               "foo [link http://www.example.com/index.html] bar");
          
            MT("vanillaLinkEmphasis",
               "foo [em *][em&link http://www.example.com/index.html][em *] bar");
          
            MT("notALink",
               "foo asfd:asdf bar");
          
            MT("notALink",
               "[comment ```css]",
               "[tag foo] {[property color]:[keyword black];}",
               "[comment ```][link http://www.example.com/]");
          
            MT("notALink",
               "[comment ``foo `bar` http://www.example.com/``] hello");
          
            MT("notALink",
               "[comment `foo]",
               "[comment&link http://www.example.com/]",
               "[comment `] foo",
               "",
               "[link http://www.example.com/]");
          
            MT("headerCodeBlockGithub",
               "[header&header-1 # heading]",
               "",
               "[comment ```]",
               "[comment code]",
               "[comment ```]",
               "",
               "Commit: [link be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2]",
               "Issue: [link #1]",
               "Link: [link http://www.example.com/]");
          
            MT("strikethrough",
               "[strikethrough ~~foo~~]");
          
            MT("strikethroughWithStartingSpace",
               "~~ foo~~");
          
            MT("strikethroughUnclosedStrayTildes",
              "[strikethrough ~~foo~~~]");
          
            MT("strikethroughUnclosedStrayTildes",
               "[strikethrough ~~foo ~~]");
          
            MT("strikethroughUnclosedStrayTildes",
              "[strikethrough ~~foo ~~ bar]");
          
            MT("strikethroughUnclosedStrayTildes",
              "[strikethrough ~~foo ~~ bar~~]hello");
          
            MT("strikethroughOneLetter",
               "[strikethrough ~~a~~]");
          
            MT("strikethroughWrapped",
               "[strikethrough ~~foo]",
               "[strikethrough foo~~]");
          
            MT("strikethroughParagraph",
               "[strikethrough ~~foo]",
               "",
               "foo[strikethrough ~~bar]");
          
            MT("strikethroughEm",
               "[strikethrough ~~foo][em&strikethrough *bar*][strikethrough ~~]");
          
            MT("strikethroughEm",
               "[em *][em&strikethrough ~~foo~~][em *]");
          
            MT("strikethroughStrong",
               "[strikethrough ~~][strong&strikethrough **foo**][strikethrough ~~]");
          
            MT("strikethroughStrong",
               "[strong **][strong&strikethrough ~~foo~~][strong **]");
          
          })();
          
      • gherkin
        • gherkin.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          /*
          Gherkin mode - http://www.cukes.info/
          Report bugs/issues here: https://github.com/codemirror/CodeMirror/issues
          */
          
          // Following Objs from Brackets implementation: https://github.com/tregusti/brackets-gherkin/blob/master/main.js
          //var Quotes = {
          //  SINGLE: 1,
          //  DOUBLE: 2
          //};
          
          //var regex = {
          //  keywords: /(Feature| {2}(Scenario|In order to|As|I)| {4}(Given|When|Then|And))/
          //};
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("gherkin", function () {
            return {
              startState: function () {
                return {
                  lineNumber: 0,
                  tableHeaderLine: false,
                  allowFeature: true,
                  allowBackground: false,
                  allowScenario: false,
                  allowSteps: false,
                  allowPlaceholders: false,
                  allowMultilineArgument: false,
                  inMultilineString: false,
                  inMultilineTable: false,
                  inKeywordLine: false
                };
              },
              token: function (stream, state) {
                if (stream.sol()) {
                  state.lineNumber++;
                  state.inKeywordLine = false;
                  if (state.inMultilineTable) {
                      state.tableHeaderLine = false;
                      if (!stream.match(/\s*\|/, false)) {
                        state.allowMultilineArgument = false;
                        state.inMultilineTable = false;
                      }
                  }
                }
          
                stream.eatSpace();
          
                if (state.allowMultilineArgument) {
          
                  // STRING
                  if (state.inMultilineString) {
                    if (stream.match('"""')) {
                      state.inMultilineString = false;
                      state.allowMultilineArgument = false;
                    } else {
                      stream.match(/.*/);
                    }
                    return "string";
                  }
          
                  // TABLE
                  if (state.inMultilineTable) {
                    if (stream.match(/\|\s*/)) {
                      return "bracket";
                    } else {
                      stream.match(/[^\|]*/);
                      return state.tableHeaderLine ? "header" : "string";
                    }
                  }
          
                  // DETECT START
                  if (stream.match('"""')) {
                    // String
                    state.inMultilineString = true;
                    return "string";
                  } else if (stream.match("|")) {
                    // Table
                    state.inMultilineTable = true;
                    state.tableHeaderLine = true;
                    return "bracket";
                  }
          
                }
          
                // LINE COMMENT
                if (stream.match(/#.*/)) {
                  return "comment";
          
                // TAG
                } else if (!state.inKeywordLine && stream.match(/@\S+/)) {
                  return "tag";
          
                // FEATURE
                } else if (!state.inKeywordLine && state.allowFeature && stream.match(/(機能|功能|フィーチャ|기능|โครงหลัก|ความสามารถ|ความต้องการทางธุรกิจ|ಹೆಚ್ಚಳ|గుణము|ਮੁਹਾਂਦਰਾ|ਨਕਸ਼ ਨੁਹਾਰ|ਖਾਸੀਅਤ|रूप लेख|وِیژگی|خاصية|תכונה|Функціонал|Функция|Функционалност|Функционал|Үзенчәлеклелек|Свойство|Особина|Мөмкинлек|Могућност|Λειτουργία|Δυνατότητα|Właściwość|Vlastnosť|Trajto|Tính năng|Savybė|Pretty much|Požiadavka|Požadavek|Potrzeba biznesowa|Özellik|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Hwæt|Hwaet|Funzionalità|Funktionalitéit|Funktionalität|Funkcja|Funkcionalnost|Funkcionalitāte|Funkcia|Fungsi|Functionaliteit|Funcționalitate|Funcţionalitate|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Fīča|Feature|Eiginleiki|Egenskap|Egenskab|Característica|Caracteristica|Business Need|Aspekt|Arwedd|Ahoy matey!|Ability):/)) {
                  state.allowScenario = true;
                  state.allowBackground = true;
                  state.allowPlaceholders = false;
                  state.allowSteps = false;
                  state.allowMultilineArgument = false;
                  state.inKeywordLine = true;
                  return "keyword";
          
                // BACKGROUND
                } else if (!state.inKeywordLine && state.allowBackground && stream.match(/(背景|배경|แนวคิด|ಹಿನ್ನೆಲೆ|నేపథ్యం|ਪਿਛੋਕੜ|पृष्ठभूमि|زمینه|الخلفية|רקע|Тарих|Предыстория|Предистория|Позадина|Передумова|Основа|Контекст|Кереш|Υπόβαθρο|Założenia|Yo\-ho\-ho|Tausta|Taust|Situācija|Rerefons|Pozadina|Pozadie|Pozadí|Osnova|Latar Belakang|Kontext|Konteksts|Kontekstas|Kontekst|Háttér|Hannergrond|Grundlage|Geçmiş|Fundo|Fono|First off|Dis is what went down|Dasar|Contexto|Contexte|Context|Contesto|Cenário de Fundo|Cenario de Fundo|Cefndir|Bối cảnh|Bakgrunnur|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|Ær|Aer|Achtergrond):/)) {
                  state.allowPlaceholders = false;
                  state.allowSteps = true;
                  state.allowBackground = false;
                  state.allowMultilineArgument = false;
                  state.inKeywordLine = true;
                  return "keyword";
          
                // SCENARIO OUTLINE
                } else if (!state.inKeywordLine && state.allowScenario && stream.match(/(場景大綱|场景大纲|劇本大綱|剧本大纲|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|시나리오 개요|สรุปเหตุการณ์|โครงสร้างของเหตุการณ์|ವಿವರಣೆ|కథనం|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਟਕਥਾ ਢਾਂਚਾ|परिदृश्य रूपरेखा|سيناريو مخطط|الگوی سناریو|תבנית תרחיש|Сценарийның төзелеше|Сценарий структураси|Структура сценарію|Структура сценария|Структура сценарија|Скица|Рамка на сценарий|Концепт|Περιγραφή Σεναρίου|Wharrimean is|Template Situai|Template Senario|Template Keadaan|Tapausaihio|Szenariogrundriss|Szablon scenariusza|Swa hwær swa|Swa hwaer swa|Struktura scenarija|Structură scenariu|Structura scenariu|Skica|Skenario konsep|Shiver me timbers|Senaryo taslağı|Schema dello scenario|Scenariomall|Scenariomal|Scenario Template|Scenario Outline|Scenario Amlinellol|Scenārijs pēc parauga|Scenarijaus šablonas|Reckon it's like|Raamstsenaarium|Plang vum Szenario|Plan du Scénario|Plan du scénario|Osnova scénáře|Osnova Scenára|Náčrt Scenáru|Náčrt Scénáře|Náčrt Scenára|MISHUN SRSLY|Menggariskan Senario|Lýsing Dæma|Lýsing Atburðarásar|Konturo de la scenaro|Koncept|Khung tình huống|Khung kịch bản|Forgatókönyv vázlat|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esbozo do escenario|Delineação do Cenário|Delineacao do Cenario|All y'all|Abstrakt Scenario|Abstract Scenario):/)) {
                  state.allowPlaceholders = true;
                  state.allowSteps = true;
                  state.allowMultilineArgument = false;
                  state.inKeywordLine = true;
                  return "keyword";
          
                // EXAMPLES
                } else if (state.allowScenario && stream.match(/(例子|例|サンプル|예|ชุดของเหตุการณ์|ชุดของตัวอย่าง|ಉದಾಹರಣೆಗಳು|ఉదాహరణలు|ਉਦਾਹਰਨਾਂ|उदाहरण|نمونه ها|امثلة|דוגמאות|Үрнәкләр|Сценарији|Примеры|Примери|Приклади|Мисоллар|Мисаллар|Σενάρια|Παραδείγματα|You'll wanna|Voorbeelden|Variantai|Tapaukset|Se þe|Se the|Se ðe|Scenarios|Scenariji|Scenarijai|Przykłady|Primjeri|Primeri|Příklady|Príklady|Piemēri|Példák|Pavyzdžiai|Paraugs|Örnekler|Juhtumid|Exemplos|Exemples|Exemple|Exempel|EXAMPLZ|Examples|Esempi|Enghreifftiau|Ekzemploj|Eksempler|Ejemplos|Dữ liệu|Dead men tell no tales|Dæmi|Contoh|Cenários|Cenarios|Beispiller|Beispiele|Atburðarásir):/)) {
                  state.allowPlaceholders = false;
                  state.allowSteps = true;
                  state.allowBackground = false;
                  state.allowMultilineArgument = true;
                  return "keyword";
          
                // SCENARIO
                } else if (!state.inKeywordLine && state.allowScenario && stream.match(/(場景|场景|劇本|剧本|シナリオ|시나리오|เหตุการณ์|ಕಥಾಸಾರಾಂಶ|సన్నివేశం|ਪਟਕਥਾ|परिदृश्य|سيناريو|سناریو|תרחיש|Сценарій|Сценарио|Сценарий|Пример|Σενάριο|Tình huống|The thing of it is|Tapaus|Szenario|Swa|Stsenaarium|Skenario|Situai|Senaryo|Senario|Scenaro|Scenariusz|Scenariu|Scénario|Scenario|Scenarijus|Scenārijs|Scenarij|Scenarie|Scénář|Scenár|Primer|MISHUN|Kịch bản|Keadaan|Heave to|Forgatókönyv|Escenario|Escenari|Cenário|Cenario|Awww, look mate|Atburðarás):/)) {
                  state.allowPlaceholders = false;
                  state.allowSteps = true;
                  state.allowBackground = false;
                  state.allowMultilineArgument = false;
                  state.inKeywordLine = true;
                  return "keyword";
          
                // STEPS
                } else if (!state.inKeywordLine && state.allowSteps && stream.match(/(那麼|那么|而且|當|当|并且|同時|同时|前提|假设|假設|假定|假如|但是|但し|並且|もし|ならば|ただし|しかし|かつ|하지만|조건|먼저|만일|만약|단|그리고|그러면|และ |เมื่อ |แต่ |ดังนั้น |กำหนดให้ |ಸ್ಥಿತಿಯನ್ನು |ಮತ್ತು |ನೀಡಿದ |ನಂತರ |ಆದರೆ |మరియు |చెప్పబడినది |కాని |ఈ పరిస్థితిలో |అప్పుడు |ਪਰ |ਤਦ |ਜੇਕਰ |ਜਿਵੇਂ ਕਿ |ਜਦੋਂ |ਅਤੇ |यदि |परन्तु |पर |तब |तदा |तथा |जब |चूंकि |किन्तु |कदा |और |अगर |و |هنگامی |متى |لكن |عندما |ثم |بفرض |با فرض |اما |اذاً |آنگاه |כאשר |וגם |בהינתן |אזי |אז |אבל |Якщо |Һәм |Унда |Тоді |Тогда |То |Также |Та |Пусть |Припустимо, що |Припустимо |Онда |Но |Нехай |Нәтиҗәдә |Лекин |Ләкин |Коли |Когда |Когато |Када |Кад |К тому же |І |И |Задато |Задати |Задате |Если |Допустим |Дано |Дадено |Вә |Ва |Бирок |Әмма |Әйтик |Әгәр |Аммо |Али |Але |Агар |А також |А |Τότε |Όταν |Και |Δεδομένου |Αλλά |Þurh |Þegar |Þa þe |Þá |Þa |Zatati |Zakładając |Zadato |Zadate |Zadano |Zadani |Zadan |Za předpokladu |Za predpokladu |Youse know when youse got |Youse know like when |Yna |Yeah nah |Y'know |Y |Wun |Wtedy |When y'all |When |Wenn |WEN |wann |Ve |Và |Und |Un |ugeholl |Too right |Thurh |Thì |Then y'all |Then |Tha the |Tha |Tetapi |Tapi |Tak |Tada |Tad |Stel |Soit |Siis |Și |Şi |Si |Sed |Se |Så |Quando |Quand |Quan |Pryd |Potom |Pokud |Pokiaľ |Però |Pero |Pak |Oraz |Onda |Ond |Oletetaan |Og |Och |O zaman |Niin |Nhưng |När |Når |Mutta |Men |Mas |Maka |Majd |Mając |Mais |Maar |mä |Ma |Lorsque |Lorsqu'|Logo |Let go and haul |Kun |Kuid |Kui |Kiedy |Khi |Ketika |Kemudian |Keď |Když |Kaj |Kai |Kada |Kad |Jeżeli |Jeśli |Ja |It's just unbelievable |Ir |I CAN HAZ |I |Ha |Givun |Givet |Given y'all |Given |Gitt |Gegeven |Gegeben seien |Gegeben sei |Gdy |Gangway! |Fakat |Étant donnés |Etant donnés |Étant données |Etant données |Étant donnée |Etant donnée |Étant donné |Etant donné |Et |És |Entonces |Entón |Então |Entao |En |Eğer ki |Ef |Eeldades |E |Ðurh |Duota |Dun |Donitaĵo |Donat |Donada |Do |Diyelim ki |Diberi |Dengan |Den youse gotta |DEN |De |Dato |Dați fiind |Daţi fiind |Dati fiind |Dati |Date fiind |Date |Data |Dat fiind |Dar |Dann |dann |Dan |Dados |Dado |Dadas |Dada |Ða ðe |Ða |Cuando |Cho |Cando |Când |Cand |Cal |But y'all |But at the end of the day I reckon |BUT |But |Buh |Blimey! |Biết |Bet |Bagi |Aye |awer |Avast! |Atunci |Atesa |Atès |Apabila |Anrhegedig a |Angenommen |And y'all |And |AN |An |an |Amikor |Amennyiben |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor |Ak |Adott |Ac |Aber |A zároveň |A tiež |A taktiež |A také |A |a |7 |\* )/)) {
                  state.inStep = true;
                  state.allowPlaceholders = true;
                  state.allowMultilineArgument = true;
                  state.inKeywordLine = true;
                  return "keyword";
          
                // INLINE STRING
                } else if (stream.match(/"[^"]*"?/)) {
                  return "string";
          
                // PLACEHOLDER
                } else if (state.allowPlaceholders && stream.match(/<[^>]*>?/)) {
                  return "variable";
          
                // Fall through
                } else {
                  stream.next();
                  stream.eatWhile(/[^@"<#]/);
                  return null;
                }
              }
            };
          });
          
          CodeMirror.defineMIME("text/x-feature", "gherkin");
          
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Gherkin mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="gherkin.js"></script>
          <style>.CodeMirror { border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; }</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Gherkin</a>
            </ul>
          </div>
          
          <article>
          <h2>Gherkin mode</h2>
          <form><textarea id="code" name="code">
          Feature: Using Google
            Background: 
              Something something
              Something else
            Scenario: Has a homepage
              When I navigate to the google home page
              Then the home page should contain the menu and the search form
            Scenario: Searching for a term 
              When I navigate to the google home page
              When I search for Tofu
              Then the search results page is displayed
              Then the search results page contains 10 individual search results
              Then the search results contain a link to the wikipedia tofu page
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {});
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-feature</code>.</p>
          
            </article>
          
      • go
        • go.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("go", function(config) {
            var indentUnit = config.indentUnit;
          
            var keywords = {
              "break":true, "case":true, "chan":true, "const":true, "continue":true,
              "default":true, "defer":true, "else":true, "fallthrough":true, "for":true,
              "func":true, "go":true, "goto":true, "if":true, "import":true,
              "interface":true, "map":true, "package":true, "range":true, "return":true,
              "select":true, "struct":true, "switch":true, "type":true, "var":true,
              "bool":true, "byte":true, "complex64":true, "complex128":true,
              "float32":true, "float64":true, "int8":true, "int16":true, "int32":true,
              "int64":true, "string":true, "uint8":true, "uint16":true, "uint32":true,
              "uint64":true, "int":true, "uint":true, "uintptr":true
            };
          
            var atoms = {
              "true":true, "false":true, "iota":true, "nil":true, "append":true,
              "cap":true, "close":true, "complex":true, "copy":true, "imag":true,
              "len":true, "make":true, "new":true, "panic":true, "print":true,
              "println":true, "real":true, "recover":true
            };
          
            var isOperatorChar = /[+\-*&^%:=<>!|\/]/;
          
            var curPunc;
          
            function tokenBase(stream, state) {
              var ch = stream.next();
              if (ch == '"' || ch == "'" || ch == "`") {
                state.tokenize = tokenString(ch);
                return state.tokenize(stream, state);
              }
              if (/[\d\.]/.test(ch)) {
                if (ch == ".") {
                  stream.match(/^[0-9]+([eE][\-+]?[0-9]+)?/);
                } else if (ch == "0") {
                  stream.match(/^[xX][0-9a-fA-F]+/) || stream.match(/^0[0-7]+/);
                } else {
                  stream.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/);
                }
                return "number";
              }
              if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
                curPunc = ch;
                return null;
              }
              if (ch == "/") {
                if (stream.eat("*")) {
                  state.tokenize = tokenComment;
                  return tokenComment(stream, state);
                }
                if (stream.eat("/")) {
                  stream.skipToEnd();
                  return "comment";
                }
              }
              if (isOperatorChar.test(ch)) {
                stream.eatWhile(isOperatorChar);
                return "operator";
              }
              stream.eatWhile(/[\w\$_\xa1-\uffff]/);
              var cur = stream.current();
              if (keywords.propertyIsEnumerable(cur)) {
                if (cur == "case" || cur == "default") curPunc = "case";
                return "keyword";
              }
              if (atoms.propertyIsEnumerable(cur)) return "atom";
              return "variable";
            }
          
            function tokenString(quote) {
              return function(stream, state) {
                var escaped = false, next, end = false;
                while ((next = stream.next()) != null) {
                  if (next == quote && !escaped) {end = true; break;}
                  escaped = !escaped && quote != "`" && next == "\\";
                }
                if (end || !(escaped || quote == "`"))
                  state.tokenize = tokenBase;
                return "string";
              };
            }
          
            function tokenComment(stream, state) {
              var maybeEnd = false, ch;
              while (ch = stream.next()) {
                if (ch == "/" && maybeEnd) {
                  state.tokenize = tokenBase;
                  break;
                }
                maybeEnd = (ch == "*");
              }
              return "comment";
            }
          
            function Context(indented, column, type, align, prev) {
              this.indented = indented;
              this.column = column;
              this.type = type;
              this.align = align;
              this.prev = prev;
            }
            function pushContext(state, col, type) {
              return state.context = new Context(state.indented, col, type, null, state.context);
            }
            function popContext(state) {
              if (!state.context.prev) return;
              var t = state.context.type;
              if (t == ")" || t == "]" || t == "}")
                state.indented = state.context.indented;
              return state.context = state.context.prev;
            }
          
            // Interface
          
            return {
              startState: function(basecolumn) {
                return {
                  tokenize: null,
                  context: new Context((basecolumn || 0) - indentUnit, 0, "top", false),
                  indented: 0,
                  startOfLine: true
                };
              },
          
              token: function(stream, state) {
                var ctx = state.context;
                if (stream.sol()) {
                  if (ctx.align == null) ctx.align = false;
                  state.indented = stream.indentation();
                  state.startOfLine = true;
                  if (ctx.type == "case") ctx.type = "}";
                }
                if (stream.eatSpace()) return null;
                curPunc = null;
                var style = (state.tokenize || tokenBase)(stream, state);
                if (style == "comment") return style;
                if (ctx.align == null) ctx.align = true;
          
                if (curPunc == "{") pushContext(state, stream.column(), "}");
                else if (curPunc == "[") pushContext(state, stream.column(), "]");
                else if (curPunc == "(") pushContext(state, stream.column(), ")");
                else if (curPunc == "case") ctx.type = "case";
                else if (curPunc == "}" && ctx.type == "}") ctx = popContext(state);
                else if (curPunc == ctx.type) popContext(state);
                state.startOfLine = false;
                return style;
              },
          
              indent: function(state, textAfter) {
                if (state.tokenize != tokenBase && state.tokenize != null) return 0;
                var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);
                if (ctx.type == "case" && /^(?:case|default)\b/.test(textAfter)) {
                  state.context.type = "}";
                  return ctx.indented;
                }
                var closing = firstChar == ctx.type;
                if (ctx.align) return ctx.column + (closing ? 0 : 1);
                else return ctx.indented + (closing ? 0 : indentUnit);
              },
          
              electricChars: "{}):",
              fold: "brace",
              blockCommentStart: "/*",
              blockCommentEnd: "*/",
              lineComment: "//"
            };
          });
          
          CodeMirror.defineMIME("text/x-go", "go");
          
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Go mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <link rel="stylesheet" href="../../theme/elegant.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="go.js"></script>
          <style>.CodeMirror {border:1px solid #999; background:#ffc}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Go</a>
            </ul>
          </div>
          
          <article>
          <h2>Go mode</h2>
          <form><textarea id="code" name="code">
          // Prime Sieve in Go.
          // Taken from the Go specification.
          // Copyright © The Go Authors.
          
          package main
          
          import "fmt"
          
          // Send the sequence 2, 3, 4, ... to channel 'ch'.
          func generate(ch chan&lt;- int) {
          	for i := 2; ; i++ {
          		ch &lt;- i  // Send 'i' to channel 'ch'
          	}
          }
          
          // Copy the values from channel 'src' to channel 'dst',
          // removing those divisible by 'prime'.
          func filter(src &lt;-chan int, dst chan&lt;- int, prime int) {
          	for i := range src {    // Loop over values received from 'src'.
          		if i%prime != 0 {
          			dst &lt;- i  // Send 'i' to channel 'dst'.
          		}
          	}
          }
          
          // The prime sieve: Daisy-chain filter processes together.
          func sieve() {
          	ch := make(chan int)  // Create a new channel.
          	go generate(ch)       // Start generate() as a subprocess.
          	for {
          		prime := &lt;-ch
          		fmt.Print(prime, "\n")
          		ch1 := make(chan int)
          		go filter(ch, ch1, prime)
          		ch = ch1
          	}
          }
          
          func main() {
          	sieve()
          }
          </textarea></form>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  theme: "elegant",
                  matchBrackets: true,
                  indentUnit: 8,
                  tabSize: 8,
                  indentWithTabs: true,
                  mode: "text/x-go"
                });
              </script>
          
              <p><strong>MIME type:</strong> <code>text/x-go</code></p>
            </article>
          
      • groovy
        • groovy.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("groovy", function(config) {
            function words(str) {
              var obj = {}, words = str.split(" ");
              for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
              return obj;
            }
            var keywords = words(
              "abstract as assert boolean break byte case catch char class const continue def default " +
              "do double else enum extends final finally float for goto if implements import in " +
              "instanceof int interface long native new package private protected public return " +
              "short static strictfp super switch synchronized threadsafe throw throws transient " +
              "try void volatile while");
            var blockKeywords = words("catch class do else finally for if switch try while enum interface def");
            var standaloneKeywords = words("return break continue");
            var atoms = words("null true false this");
          
            var curPunc;
            function tokenBase(stream, state) {
              var ch = stream.next();
              if (ch == '"' || ch == "'") {
                return startString(ch, stream, state);
              }
              if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
                curPunc = ch;
                return null;
              }
              if (/\d/.test(ch)) {
                stream.eatWhile(/[\w\.]/);
                if (stream.eat(/eE/)) { stream.eat(/\+\-/); stream.eatWhile(/\d/); }
                return "number";
              }
              if (ch == "/") {
                if (stream.eat("*")) {
                  state.tokenize.push(tokenComment);
                  return tokenComment(stream, state);
                }
                if (stream.eat("/")) {
                  stream.skipToEnd();
                  return "comment";
                }
                if (expectExpression(state.lastToken, false)) {
                  return startString(ch, stream, state);
                }
              }
              if (ch == "-" && stream.eat(">")) {
                curPunc = "->";
                return null;
              }
              if (/[+\-*&%=<>!?|\/~]/.test(ch)) {
                stream.eatWhile(/[+\-*&%=<>|~]/);
                return "operator";
              }
              stream.eatWhile(/[\w\$_]/);
              if (ch == "@") { stream.eatWhile(/[\w\$_\.]/); return "meta"; }
              if (state.lastToken == ".") return "property";
              if (stream.eat(":")) { curPunc = "proplabel"; return "property"; }
              var cur = stream.current();
              if (atoms.propertyIsEnumerable(cur)) { return "atom"; }
              if (keywords.propertyIsEnumerable(cur)) {
                if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement";
                else if (standaloneKeywords.propertyIsEnumerable(cur)) curPunc = "standalone";
                return "keyword";
              }
              return "variable";
            }
            tokenBase.isBase = true;
          
            function startString(quote, stream, state) {
              var tripleQuoted = false;
              if (quote != "/" && stream.eat(quote)) {
                if (stream.eat(quote)) tripleQuoted = true;
                else return "string";
              }
              function t(stream, state) {
                var escaped = false, next, end = !tripleQuoted;
                while ((next = stream.next()) != null) {
                  if (next == quote && !escaped) {
                    if (!tripleQuoted) { break; }
                    if (stream.match(quote + quote)) { end = true; break; }
                  }
                  if (quote == '"' && next == "$" && !escaped && stream.eat("{")) {
                    state.tokenize.push(tokenBaseUntilBrace());
                    return "string";
                  }
                  escaped = !escaped && next == "\\";
                }
                if (end) state.tokenize.pop();
                return "string";
              }
              state.tokenize.push(t);
              return t(stream, state);
            }
          
            function tokenBaseUntilBrace() {
              var depth = 1;
              function t(stream, state) {
                if (stream.peek() == "}") {
                  depth--;
                  if (depth == 0) {
                    state.tokenize.pop();
                    return state.tokenize[state.tokenize.length-1](stream, state);
                  }
                } else if (stream.peek() == "{") {
                  depth++;
                }
                return tokenBase(stream, state);
              }
              t.isBase = true;
              return t;
            }
          
            function tokenComment(stream, state) {
              var maybeEnd = false, ch;
              while (ch = stream.next()) {
                if (ch == "/" && maybeEnd) {
                  state.tokenize.pop();
                  break;
                }
                maybeEnd = (ch == "*");
              }
              return "comment";
            }
          
            function expectExpression(last, newline) {
              return !last || last == "operator" || last == "->" || /[\.\[\{\(,;:]/.test(last) ||
                last == "newstatement" || last == "keyword" || last == "proplabel" ||
                (last == "standalone" && !newline);
            }
          
            function Context(indented, column, type, align, prev) {
              this.indented = indented;
              this.column = column;
              this.type = type;
              this.align = align;
              this.prev = prev;
            }
            function pushContext(state, col, type) {
              return state.context = new Context(state.indented, col, type, null, state.context);
            }
            function popContext(state) {
              var t = state.context.type;
              if (t == ")" || t == "]" || t == "}")
                state.indented = state.context.indented;
              return state.context = state.context.prev;
            }
          
            // Interface
          
            return {
              startState: function(basecolumn) {
                return {
                  tokenize: [tokenBase],
                  context: new Context((basecolumn || 0) - config.indentUnit, 0, "top", false),
                  indented: 0,
                  startOfLine: true,
                  lastToken: null
                };
              },
          
              token: function(stream, state) {
                var ctx = state.context;
                if (stream.sol()) {
                  if (ctx.align == null) ctx.align = false;
                  state.indented = stream.indentation();
                  state.startOfLine = true;
                  // Automatic semicolon insertion
                  if (ctx.type == "statement" && !expectExpression(state.lastToken, true)) {
                    popContext(state); ctx = state.context;
                  }
                }
                if (stream.eatSpace()) return null;
                curPunc = null;
                var style = state.tokenize[state.tokenize.length-1](stream, state);
                if (style == "comment") return style;
                if (ctx.align == null) ctx.align = true;
          
                if ((curPunc == ";" || curPunc == ":") && ctx.type == "statement") popContext(state);
                // Handle indentation for {x -> \n ... }
                else if (curPunc == "->" && ctx.type == "statement" && ctx.prev.type == "}") {
                  popContext(state);
                  state.context.align = false;
                }
                else if (curPunc == "{") pushContext(state, stream.column(), "}");
                else if (curPunc == "[") pushContext(state, stream.column(), "]");
                else if (curPunc == "(") pushContext(state, stream.column(), ")");
                else if (curPunc == "}") {
                  while (ctx.type == "statement") ctx = popContext(state);
                  if (ctx.type == "}") ctx = popContext(state);
                  while (ctx.type == "statement") ctx = popContext(state);
                }
                else if (curPunc == ctx.type) popContext(state);
                else if (ctx.type == "}" || ctx.type == "top" || (ctx.type == "statement" && curPunc == "newstatement"))
                  pushContext(state, stream.column(), "statement");
                state.startOfLine = false;
                state.lastToken = curPunc || style;
                return style;
              },
          
              indent: function(state, textAfter) {
                if (!state.tokenize[state.tokenize.length-1].isBase) return 0;
                var firstChar = textAfter && textAfter.charAt(0), ctx = state.context;
                if (ctx.type == "statement" && !expectExpression(state.lastToken, true)) ctx = ctx.prev;
                var closing = firstChar == ctx.type;
                if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : config.indentUnit);
                else if (ctx.align) return ctx.column + (closing ? 0 : 1);
                else return ctx.indented + (closing ? 0 : config.indentUnit);
              },
          
              electricChars: "{}",
              closeBrackets: {triples: "'\""},
              fold: "brace"
            };
          });
          
          CodeMirror.defineMIME("text/x-groovy", "groovy");
          
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Groovy mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="groovy.js"></script>
          <style>.CodeMirror {border-top: 1px solid #500; border-bottom: 1px solid #500;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Groovy</a>
            </ul>
          </div>
          
          <article>
          <h2>Groovy mode</h2>
          <form><textarea id="code" name="code">
          //Pattern for groovy script
          def p = ~/.*\.groovy/
          new File( 'd:\\scripts' ).eachFileMatch(p) {f ->
            // imports list
            def imports = []
            f.eachLine {
              // condition to detect an import instruction
              ln -> if ( ln =~ '^import .*' ) {
                imports << "${ln - 'import '}"
              }
            }
            // print thmen
            if ( ! imports.empty ) {
              println f
              imports.each{ println "   $it" }
            }
          }
          
          /* Coin changer demo code from http://groovy.codehaus.org */
          
          enum UsCoin {
            quarter(25), dime(10), nickel(5), penny(1)
            UsCoin(v) { value = v }
            final value
          }
          
          enum OzzieCoin {
            fifty(50), twenty(20), ten(10), five(5)
            OzzieCoin(v) { value = v }
            final value
          }
          
          def plural(word, count) {
            if (count == 1) return word
            word[-1] == 'y' ? word[0..-2] + "ies" : word + "s"
          }
          
          def change(currency, amount) {
            currency.values().inject([]){ list, coin ->
               int count = amount / coin.value
               amount = amount % coin.value
               list += "$count ${plural(coin.toString(), count)}"
            }
          }
          </textarea></form>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  matchBrackets: true,
                  mode: "text/x-groovy"
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-groovy</code></p>
            </article>
          
      • haml
        • haml.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"), require("../ruby/ruby"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "../htmlmixed/htmlmixed", "../ruby/ruby"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
            // full haml mode. This handled embeded ruby and html fragments too
            CodeMirror.defineMode("haml", function(config) {
              var htmlMode = CodeMirror.getMode(config, {name: "htmlmixed"});
              var rubyMode = CodeMirror.getMode(config, "ruby");
          
              function rubyInQuote(endQuote) {
                return function(stream, state) {
                  var ch = stream.peek();
                  if (ch == endQuote && state.rubyState.tokenize.length == 1) {
                    // step out of ruby context as it seems to complete processing all the braces
                    stream.next();
                    state.tokenize = html;
                    return "closeAttributeTag";
                  } else {
                    return ruby(stream, state);
                  }
                };
              }
          
              function ruby(stream, state) {
                if (stream.match("-#")) {
                  stream.skipToEnd();
                  return "comment";
                }
                return rubyMode.token(stream, state.rubyState);
              }
          
              function html(stream, state) {
                var ch = stream.peek();
          
                // handle haml declarations. All declarations that cant be handled here
                // will be passed to html mode
                if (state.previousToken.style == "comment" ) {
                  if (state.indented > state.previousToken.indented) {
                    stream.skipToEnd();
                    return "commentLine";
                  }
                }
          
                if (state.startOfLine) {
                  if (ch == "!" && stream.match("!!")) {
                    stream.skipToEnd();
                    return "tag";
                  } else if (stream.match(/^%[\w:#\.]+=/)) {
                    state.tokenize = ruby;
                    return "hamlTag";
                  } else if (stream.match(/^%[\w:]+/)) {
                    return "hamlTag";
                  } else if (ch == "/" ) {
                    stream.skipToEnd();
                    return "comment";
                  }
                }
          
                if (state.startOfLine || state.previousToken.style == "hamlTag") {
                  if ( ch == "#" || ch == ".") {
                    stream.match(/[\w-#\.]*/);
                    return "hamlAttribute";
                  }
                }
          
                // donot handle --> as valid ruby, make it HTML close comment instead
                if (state.startOfLine && !stream.match("-->", false) && (ch == "=" || ch == "-" )) {
                  state.tokenize = ruby;
                  return state.tokenize(stream, state);
                }
          
                if (state.previousToken.style == "hamlTag" ||
                    state.previousToken.style == "closeAttributeTag" ||
                    state.previousToken.style == "hamlAttribute") {
                  if (ch == "(") {
                    state.tokenize = rubyInQuote(")");
                    return state.tokenize(stream, state);
                  } else if (ch == "{") {
                    state.tokenize = rubyInQuote("}");
                    return state.tokenize(stream, state);
                  }
                }
          
                return htmlMode.token(stream, state.htmlState);
              }
          
              return {
                // default to html mode
                startState: function() {
                  var htmlState = htmlMode.startState();
                  var rubyState = rubyMode.startState();
                  return {
                    htmlState: htmlState,
                    rubyState: rubyState,
                    indented: 0,
                    previousToken: { style: null, indented: 0},
                    tokenize: html
                  };
                },
          
                copyState: function(state) {
                  return {
                    htmlState : CodeMirror.copyState(htmlMode, state.htmlState),
                    rubyState: CodeMirror.copyState(rubyMode, state.rubyState),
                    indented: state.indented,
                    previousToken: state.previousToken,
                    tokenize: state.tokenize
                  };
                },
          
                token: function(stream, state) {
                  if (stream.sol()) {
                    state.indented = stream.indentation();
                    state.startOfLine = true;
                  }
                  if (stream.eatSpace()) return null;
                  var style = state.tokenize(stream, state);
                  state.startOfLine = false;
                  // dont record comment line as we only want to measure comment line with
                  // the opening comment block
                  if (style && style != "commentLine") {
                    state.previousToken = { style: style, indented: state.indented };
                  }
                  // if current state is ruby and the previous token is not `,` reset the
                  // tokenize to html
                  if (stream.eol() && state.tokenize == ruby) {
                    stream.backUp(1);
                    var ch = stream.peek();
                    stream.next();
                    if (ch && ch != ",") {
                      state.tokenize = html;
                    }
                  }
                  // reprocess some of the specific style tag when finish setting previousToken
                  if (style == "hamlTag") {
                    style = "tag";
                  } else if (style == "commentLine") {
                    style = "comment";
                  } else if (style == "hamlAttribute") {
                    style = "attribute";
                  } else if (style == "closeAttributeTag") {
                    style = null;
                  }
                  return style;
                }
              };
            }, "htmlmixed", "ruby");
          
            CodeMirror.defineMIME("text/x-haml", "haml");
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: HAML mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../xml/xml.js"></script>
          <script src="../htmlmixed/htmlmixed.js"></script>
          <script src="../javascript/javascript.js"></script>
          <script src="../ruby/ruby.js"></script>
          <script src="haml.js"></script>
          <style>.CodeMirror {background: #f8f8f8;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">HAML</a>
            </ul>
          </div>
          
          <article>
          <h2>HAML mode</h2>
          <form><textarea id="code" name="code">
          !!!
          #content
          .left.column(title="title"){:href => "/hello", :test => "#{hello}_#{world}"}
              <!-- This is a comment -->
              %h2 Welcome to our site!
              %p= puts "HAML MODE"
            .right.column
              = render :partial => "sidebar"
          
          .container
            .row
              .span8
                %h1.title= @page_title
          %p.title= @page_title
          %p
            /
              The same as HTML comment
              Hello multiline comment
          
            -# haml comment
                This wont be displayed
                nor will this
            Date/Time:
            - now = DateTime.now
            %strong= now
            - if now > DateTime.parse("December 31, 2006")
              = "Happy new " + "year!"
          
          %title
            = @title
            \= @title
            <h1>Title</h1>
            <h1 title="HELLO">
              Title
            </h1>
              </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  mode: "text/x-haml"
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-haml</code>.</p>
          
              <p><strong>Parsing/Highlighting Tests:</strong> <a href="../../test/index.html#haml_*">normal</a>,  <a href="../../test/index.html#verbose,haml_*">verbose</a>.</p>
          
            </article>
          
        • test.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function() {
            var mode = CodeMirror.getMode({tabSize: 4, indentUnit: 2}, "haml");
            function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
          
            // Requires at least one media query
            MT("elementName",
               "[tag %h1] Hey There");
          
            MT("oneElementPerLine",
               "[tag %h1] Hey There %h2");
          
            MT("idSelector",
               "[tag %h1][attribute #test] Hey There");
          
            MT("classSelector",
               "[tag %h1][attribute .hello] Hey There");
          
            MT("docType",
               "[tag !!! XML]");
          
            MT("comment",
               "[comment / Hello WORLD]");
          
            MT("notComment",
               "[tag %h1] This is not a / comment ");
          
            MT("attributes",
               "[tag %a]([variable title][operator =][string \"test\"]){[atom :title] [operator =>] [string \"test\"]}");
          
            MT("htmlCode",
               "[tag&bracket <][tag h1][tag&bracket >]Title[tag&bracket </][tag h1][tag&bracket >]");
          
            MT("rubyBlock",
               "[operator =][variable-2 @item]");
          
            MT("selectorRubyBlock",
               "[tag %a.selector=] [variable-2 @item]");
          
            MT("nestedRubyBlock",
                "[tag %a]",
                "   [operator =][variable puts] [string \"test\"]");
          
            MT("multilinePlaintext",
                "[tag %p]",
                "  Hello,",
                "  World");
          
            MT("multilineRuby",
                "[tag %p]",
                "  [comment -# this is a comment]",
                "     [comment and this is a comment too]",
                "  Date/Time",
                "  [operator -] [variable now] [operator =] [tag DateTime][operator .][property now]",
                "  [tag %strong=] [variable now]",
                "  [operator -] [keyword if] [variable now] [operator >] [tag DateTime][operator .][property parse]([string \"December 31, 2006\"])",
                "     [operator =][string \"Happy\"]",
                "     [operator =][string \"Belated\"]",
                "     [operator =][string \"Birthday\"]");
          
            MT("multilineComment",
                "[comment /]",
                "  [comment Multiline]",
                "  [comment Comment]");
          
            MT("hamlComment",
               "[comment -# this is a comment]");
          
            MT("multilineHamlComment",
               "[comment -# this is a comment]",
               "   [comment and this is a comment too]");
          
            MT("multilineHTMLComment",
              "[comment <!--]",
              "  [comment what a comment]",
              "  [comment -->]");
          
            MT("hamlAfterRubyTag",
              "[attribute .block]",
              "  [tag %strong=] [variable now]",
              "  [attribute .test]",
              "     [operator =][variable now]",
              "  [attribute .right]");
          
            MT("stretchedRuby",
               "[operator =] [variable puts] [string \"Hello\"],",
               "   [string \"World\"]");
          
            MT("interpolationInHashAttribute",
               //"[tag %div]{[atom :id] [operator =>] [string \"#{][variable test][string }_#{][variable ting][string }\"]} test");
               "[tag %div]{[atom :id] [operator =>] [string \"#{][variable test][string }_#{][variable ting][string }\"]} test");
          
            MT("interpolationInHTMLAttribute",
               "[tag %div]([variable title][operator =][string \"#{][variable test][string }_#{][variable ting]()[string }\"]) Test");
          })();
          
      • handlebars
        • handlebars.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("../../addon/mode/simple"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "../../addon/mode/simple"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineSimpleMode("handlebars", {
              start: [
                { regex: /\{\{!--/, push: "dash_comment", token: "comment" },
                { regex: /\{\{!/,   push: "comment", token: "comment" },
                { regex: /\{\{/,    push: "handlebars", token: "tag" }
              ],
              handlebars: [
                { regex: /\}\}/, pop: true, token: "tag" },
          
                // Double and single quotes
                { regex: /"(?:[^\\]|\\.)*?"/, token: "string" },
                { regex: /'(?:[^\\]|\\.)*?'/, token: "string" },
          
                // Handlebars keywords
                { regex: />|[#\/]([A-Za-z_]\w*)/, token: "keyword" },
                { regex: /(?:else|this)\b/, token: "keyword" },
          
                // Numeral
                { regex: /\d+/i, token: "number" },
          
                // Atoms like = and .
                { regex: /=|~|@|true|false/, token: "atom" },
          
                // Paths
                { regex: /(?:\.\.\/)*(?:[A-Za-z_][\w\.]*)+/, token: "variable-2" }
              ],
              dash_comment: [
                { regex: /--\}\}/, pop: true, token: "comment" },
          
                // Commented code
                { regex: /./, token: "comment"}
              ],
              comment: [
                { regex: /\}\}/, pop: true, token: "comment" },
                { regex: /./, token: "comment" }
              ]
            });
          
            CodeMirror.defineMIME("text/x-handlebars-template", "handlebars");
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Handlebars mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/mode/simple.js"></script>
          <script src="../../addon/mode/multiplex.js"></script>
          <script src="../xml/xml.js"></script>
          <script src="handlebars.js"></script>
          <style>.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">HTML mixed</a>
            </ul>
          </div>
          
          <article>
          <h2>Handlebars</h2>
          <form><textarea id="code" name="code">
          {{> breadcrumbs}}
          
          {{!--
            You can use the t function to get
            content translated to the current locale, es:
            {{t 'article_list'}}
          --}}
          
          <h1>{{t 'article_list'}}</h1>
          
          {{! one line comment }}
          
          {{#each articles}}
            {{~title}}
            <p>{{excerpt body size=120 ellipsis=true}}</p>
          
            {{#with author}}
              written by {{first_name}} {{last_name}}
              from category: {{../category.title}}
              {{#if @../last}}foobar!{{/if}}
            {{/with~}}
          
            {{#if promoted.latest}}Read this one! {{else}} This is ok! {{/if}}
          
            {{#if @last}}<hr>{{/if}}
          {{/each}}
          
          {{#form new_comment}}
            <input type="text" name="body">
          {{/form}}
          
          </textarea></form>
              <script>
                CodeMirror.defineMode("htmlhandlebars", function(config) {
                  return CodeMirror.multiplexingMode(
                    CodeMirror.getMode(config, "text/html"),
                    {open: "{{", close: "}}",
                     mode: CodeMirror.getMode(config, "handlebars"),
                     parseDelimiters: true});
                });
          
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  matchBrackets: true,
                  mode: "htmlhandlebars"
                });
              </script>
              </script>
          
              <p>Handlebars syntax highlighting for CodeMirror.</p>
          
              <p><strong>MIME types defined:</strong> <code>text/x-handlebars-template</code></p>
          </article>
          
      • haskell
        • haskell.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("haskell", function(_config, modeConfig) {
          
            function switchState(source, setState, f) {
              setState(f);
              return f(source, setState);
            }
          
            // These should all be Unicode extended, as per the Haskell 2010 report
            var smallRE = /[a-z_]/;
            var largeRE = /[A-Z]/;
            var digitRE = /\d/;
            var hexitRE = /[0-9A-Fa-f]/;
            var octitRE = /[0-7]/;
            var idRE = /[a-z_A-Z0-9'\xa1-\uffff]/;
            var symbolRE = /[-!#$%&*+.\/<=>?@\\^|~:]/;
            var specialRE = /[(),;[\]`{}]/;
            var whiteCharRE = /[ \t\v\f]/; // newlines are handled in tokenizer
          
            function normal(source, setState) {
              if (source.eatWhile(whiteCharRE)) {
                return null;
              }
          
              var ch = source.next();
              if (specialRE.test(ch)) {
                if (ch == '{' && source.eat('-')) {
                  var t = "comment";
                  if (source.eat('#')) {
                    t = "meta";
                  }
                  return switchState(source, setState, ncomment(t, 1));
                }
                return null;
              }
          
              if (ch == '\'') {
                if (source.eat('\\')) {
                  source.next();  // should handle other escapes here
                }
                else {
                  source.next();
                }
                if (source.eat('\'')) {
                  return "string";
                }
                return "error";
              }
          
              if (ch == '"') {
                return switchState(source, setState, stringLiteral);
              }
          
              if (largeRE.test(ch)) {
                source.eatWhile(idRE);
                if (source.eat('.')) {
                  return "qualifier";
                }
                return "variable-2";
              }
          
              if (smallRE.test(ch)) {
                source.eatWhile(idRE);
                return "variable";
              }
          
              if (digitRE.test(ch)) {
                if (ch == '0') {
                  if (source.eat(/[xX]/)) {
                    source.eatWhile(hexitRE); // should require at least 1
                    return "integer";
                  }
                  if (source.eat(/[oO]/)) {
                    source.eatWhile(octitRE); // should require at least 1
                    return "number";
                  }
                }
                source.eatWhile(digitRE);
                var t = "number";
                if (source.match(/^\.\d+/)) {
                  t = "number";
                }
                if (source.eat(/[eE]/)) {
                  t = "number";
                  source.eat(/[-+]/);
                  source.eatWhile(digitRE); // should require at least 1
                }
                return t;
              }
          
              if (ch == "." && source.eat("."))
                return "keyword";
          
              if (symbolRE.test(ch)) {
                if (ch == '-' && source.eat(/-/)) {
                  source.eatWhile(/-/);
                  if (!source.eat(symbolRE)) {
                    source.skipToEnd();
                    return "comment";
                  }
                }
                var t = "variable";
                if (ch == ':') {
                  t = "variable-2";
                }
                source.eatWhile(symbolRE);
                return t;
              }
          
              return "error";
            }
          
            function ncomment(type, nest) {
              if (nest == 0) {
                return normal;
              }
              return function(source, setState) {
                var currNest = nest;
                while (!source.eol()) {
                  var ch = source.next();
                  if (ch == '{' && source.eat('-')) {
                    ++currNest;
                  }
                  else if (ch == '-' && source.eat('}')) {
                    --currNest;
                    if (currNest == 0) {
                      setState(normal);
                      return type;
                    }
                  }
                }
                setState(ncomment(type, currNest));
                return type;
              };
            }
          
            function stringLiteral(source, setState) {
              while (!source.eol()) {
                var ch = source.next();
                if (ch == '"') {
                  setState(normal);
                  return "string";
                }
                if (ch == '\\') {
                  if (source.eol() || source.eat(whiteCharRE)) {
                    setState(stringGap);
                    return "string";
                  }
                  if (source.eat('&')) {
                  }
                  else {
                    source.next(); // should handle other escapes here
                  }
                }
              }
              setState(normal);
              return "error";
            }
          
            function stringGap(source, setState) {
              if (source.eat('\\')) {
                return switchState(source, setState, stringLiteral);
              }
              source.next();
              setState(normal);
              return "error";
            }
          
          
            var wellKnownWords = (function() {
              var wkw = {};
              function setType(t) {
                return function () {
                  for (var i = 0; i < arguments.length; i++)
                    wkw[arguments[i]] = t;
                };
              }
          
              setType("keyword")(
                "case", "class", "data", "default", "deriving", "do", "else", "foreign",
                "if", "import", "in", "infix", "infixl", "infixr", "instance", "let",
                "module", "newtype", "of", "then", "type", "where", "_");
          
              setType("keyword")(
                "\.\.", ":", "::", "=", "\\", "\"", "<-", "->", "@", "~", "=>");
          
              setType("builtin")(
                "!!", "$!", "$", "&&", "+", "++", "-", ".", "/", "/=", "<", "<=", "=<<",
                "==", ">", ">=", ">>", ">>=", "^", "^^", "||", "*", "**");
          
              setType("builtin")(
                "Bool", "Bounded", "Char", "Double", "EQ", "Either", "Enum", "Eq",
                "False", "FilePath", "Float", "Floating", "Fractional", "Functor", "GT",
                "IO", "IOError", "Int", "Integer", "Integral", "Just", "LT", "Left",
                "Maybe", "Monad", "Nothing", "Num", "Ord", "Ordering", "Rational", "Read",
                "ReadS", "Real", "RealFloat", "RealFrac", "Right", "Show", "ShowS",
                "String", "True");
          
              setType("builtin")(
                "abs", "acos", "acosh", "all", "and", "any", "appendFile", "asTypeOf",
                "asin", "asinh", "atan", "atan2", "atanh", "break", "catch", "ceiling",
                "compare", "concat", "concatMap", "const", "cos", "cosh", "curry",
                "cycle", "decodeFloat", "div", "divMod", "drop", "dropWhile", "either",
                "elem", "encodeFloat", "enumFrom", "enumFromThen", "enumFromThenTo",
                "enumFromTo", "error", "even", "exp", "exponent", "fail", "filter",
                "flip", "floatDigits", "floatRadix", "floatRange", "floor", "fmap",
                "foldl", "foldl1", "foldr", "foldr1", "fromEnum", "fromInteger",
                "fromIntegral", "fromRational", "fst", "gcd", "getChar", "getContents",
                "getLine", "head", "id", "init", "interact", "ioError", "isDenormalized",
                "isIEEE", "isInfinite", "isNaN", "isNegativeZero", "iterate", "last",
                "lcm", "length", "lex", "lines", "log", "logBase", "lookup", "map",
                "mapM", "mapM_", "max", "maxBound", "maximum", "maybe", "min", "minBound",
                "minimum", "mod", "negate", "not", "notElem", "null", "odd", "or",
                "otherwise", "pi", "pred", "print", "product", "properFraction",
                "putChar", "putStr", "putStrLn", "quot", "quotRem", "read", "readFile",
                "readIO", "readList", "readLn", "readParen", "reads", "readsPrec",
                "realToFrac", "recip", "rem", "repeat", "replicate", "return", "reverse",
                "round", "scaleFloat", "scanl", "scanl1", "scanr", "scanr1", "seq",
                "sequence", "sequence_", "show", "showChar", "showList", "showParen",
                "showString", "shows", "showsPrec", "significand", "signum", "sin",
                "sinh", "snd", "span", "splitAt", "sqrt", "subtract", "succ", "sum",
                "tail", "take", "takeWhile", "tan", "tanh", "toEnum", "toInteger",
                "toRational", "truncate", "uncurry", "undefined", "unlines", "until",
                "unwords", "unzip", "unzip3", "userError", "words", "writeFile", "zip",
                "zip3", "zipWith", "zipWith3");
          
              var override = modeConfig.overrideKeywords;
              if (override) for (var word in override) if (override.hasOwnProperty(word))
                wkw[word] = override[word];
          
              return wkw;
            })();
          
          
          
            return {
              startState: function ()  { return { f: normal }; },
              copyState:  function (s) { return { f: s.f }; },
          
              token: function(stream, state) {
                var t = state.f(stream, function(s) { state.f = s; });
                var w = stream.current();
                return wellKnownWords.hasOwnProperty(w) ? wellKnownWords[w] : t;
              },
          
              blockCommentStart: "{-",
              blockCommentEnd: "-}",
              lineComment: "--"
            };
          
          });
          
          CodeMirror.defineMIME("text/x-haskell", "haskell");
          
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Haskell mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <link rel="stylesheet" href="../../theme/elegant.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="haskell.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Haskell</a>
            </ul>
          </div>
          
          <article>
          <h2>Haskell mode</h2>
          <form><textarea id="code" name="code">
          module UniquePerms (
              uniquePerms
              )
          where
          
          -- | Find all unique permutations of a list where there might be duplicates.
          uniquePerms :: (Eq a) => [a] -> [[a]]
          uniquePerms = permBag . makeBag
          
          -- | An unordered collection where duplicate values are allowed,
          -- but represented with a single value and a count.
          type Bag a = [(a, Int)]
          
          makeBag :: (Eq a) => [a] -> Bag a
          makeBag [] = []
          makeBag (a:as) = mix a $ makeBag as
            where
              mix a []                        = [(a,1)]
              mix a (bn@(b,n):bs) | a == b    = (b,n+1):bs
                                  | otherwise = bn : mix a bs
          
          permBag :: Bag a -> [[a]]
          permBag [] = [[]]
          permBag bs = concatMap (\(f,cs) -> map (f:) $ permBag cs) . oneOfEach $ bs
            where
              oneOfEach [] = []
              oneOfEach (an@(a,n):bs) =
                  let bs' = if n == 1 then bs else (a,n-1):bs
                  in (a,bs') : mapSnd (an:) (oneOfEach bs)
              
              apSnd f (a,b) = (a, f b)
              mapSnd = map . apSnd
          </textarea></form>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  matchBrackets: true,
                  theme: "elegant"
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-haskell</code>.</p>
            </article>
          
      • haxe
        • haxe.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("haxe", function(config, parserConfig) {
            var indentUnit = config.indentUnit;
          
            // Tokenizer
          
            function kw(type) {return {type: type, style: "keyword"};}
            var A = kw("keyword a"), B = kw("keyword b"), C = kw("keyword c");
            var operator = kw("operator"), atom = {type: "atom", style: "atom"}, attribute = {type:"attribute", style: "attribute"};
            var type = kw("typedef");
            var keywords = {
              "if": A, "while": A, "else": B, "do": B, "try": B,
              "return": C, "break": C, "continue": C, "new": C, "throw": C,
              "var": kw("var"), "inline":attribute, "static": attribute, "using":kw("import"),
              "public": attribute, "private": attribute, "cast": kw("cast"), "import": kw("import"), "macro": kw("macro"),
              "function": kw("function"), "catch": kw("catch"), "untyped": kw("untyped"), "callback": kw("cb"),
              "for": kw("for"), "switch": kw("switch"), "case": kw("case"), "default": kw("default"),
              "in": operator, "never": kw("property_access"), "trace":kw("trace"),
              "class": type, "abstract":type, "enum":type, "interface":type, "typedef":type, "extends":type, "implements":type, "dynamic":type,
              "true": atom, "false": atom, "null": atom
            };
          
            var isOperatorChar = /[+\-*&%=<>!?|]/;
          
            function chain(stream, state, f) {
              state.tokenize = f;
              return f(stream, state);
            }
          
            function toUnescaped(stream, end) {
              var escaped = false, next;
              while ((next = stream.next()) != null) {
                if (next == end && !escaped)
                  return true;
                escaped = !escaped && next == "\\";
              }
            }
          
            // Used as scratch variables to communicate multiple values without
            // consing up tons of objects.
            var type, content;
            function ret(tp, style, cont) {
              type = tp; content = cont;
              return style;
            }
          
            function haxeTokenBase(stream, state) {
              var ch = stream.next();
              if (ch == '"' || ch == "'") {
                return chain(stream, state, haxeTokenString(ch));
              } else if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
                return ret(ch);
              } else if (ch == "0" && stream.eat(/x/i)) {
                stream.eatWhile(/[\da-f]/i);
                return ret("number", "number");
              } else if (/\d/.test(ch) || ch == "-" && stream.eat(/\d/)) {
                stream.match(/^\d*(?:\.\d*(?!\.))?(?:[eE][+\-]?\d+)?/);
                return ret("number", "number");
              } else if (state.reAllowed && (ch == "~" && stream.eat(/\//))) {
                toUnescaped(stream, "/");
                stream.eatWhile(/[gimsu]/);
                return ret("regexp", "string-2");
              } else if (ch == "/") {
                if (stream.eat("*")) {
                  return chain(stream, state, haxeTokenComment);
                } else if (stream.eat("/")) {
                  stream.skipToEnd();
                  return ret("comment", "comment");
                } else {
                  stream.eatWhile(isOperatorChar);
                  return ret("operator", null, stream.current());
                }
              } else if (ch == "#") {
                  stream.skipToEnd();
                  return ret("conditional", "meta");
              } else if (ch == "@") {
                stream.eat(/:/);
                stream.eatWhile(/[\w_]/);
                return ret ("metadata", "meta");
              } else if (isOperatorChar.test(ch)) {
                stream.eatWhile(isOperatorChar);
                return ret("operator", null, stream.current());
              } else {
                var word;
                if(/[A-Z]/.test(ch)) {
                  stream.eatWhile(/[\w_<>]/);
                  word = stream.current();
                  return ret("type", "variable-3", word);
                } else {
                  stream.eatWhile(/[\w_]/);
                  var word = stream.current(), known = keywords.propertyIsEnumerable(word) && keywords[word];
                  return (known && state.kwAllowed) ? ret(known.type, known.style, word) :
                                 ret("variable", "variable", word);
                }
              }
            }
          
            function haxeTokenString(quote) {
              return function(stream, state) {
                if (toUnescaped(stream, quote))
                  state.tokenize = haxeTokenBase;
                return ret("string", "string");
              };
            }
          
            function haxeTokenComment(stream, state) {
              var maybeEnd = false, ch;
              while (ch = stream.next()) {
                if (ch == "/" && maybeEnd) {
                  state.tokenize = haxeTokenBase;
                  break;
                }
                maybeEnd = (ch == "*");
              }
              return ret("comment", "comment");
            }
          
            // Parser
          
            var atomicTypes = {"atom": true, "number": true, "variable": true, "string": true, "regexp": true};
          
            function HaxeLexical(indented, column, type, align, prev, info) {
              this.indented = indented;
              this.column = column;
              this.type = type;
              this.prev = prev;
              this.info = info;
              if (align != null) this.align = align;
            }
          
            function inScope(state, varname) {
              for (var v = state.localVars; v; v = v.next)
                if (v.name == varname) return true;
            }
          
            function parseHaxe(state, style, type, content, stream) {
              var cc = state.cc;
              // Communicate our context to the combinators.
              // (Less wasteful than consing up a hundred closures on every call.)
              cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc;
          
              if (!state.lexical.hasOwnProperty("align"))
                state.lexical.align = true;
          
              while(true) {
                var combinator = cc.length ? cc.pop() : statement;
                if (combinator(type, content)) {
                  while(cc.length && cc[cc.length - 1].lex)
                    cc.pop()();
                  if (cx.marked) return cx.marked;
                  if (type == "variable" && inScope(state, content)) return "variable-2";
                  if (type == "variable" && imported(state, content)) return "variable-3";
                  return style;
                }
              }
            }
          
            function imported(state, typename) {
              if (/[a-z]/.test(typename.charAt(0)))
                return false;
              var len = state.importedtypes.length;
              for (var i = 0; i<len; i++)
                if(state.importedtypes[i]==typename) return true;
            }
          
            function registerimport(importname) {
              var state = cx.state;
              for (var t = state.importedtypes; t; t = t.next)
                if(t.name == importname) return;
              state.importedtypes = { name: importname, next: state.importedtypes };
            }
            // Combinator utils
          
            var cx = {state: null, column: null, marked: null, cc: null};
            function pass() {
              for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);
            }
            function cont() {
              pass.apply(null, arguments);
              return true;
            }
            function inList(name, list) {
              for (var v = list; v; v = v.next)
                if (v.name == name) return true;
              return false;
            }
            function register(varname) {
              var state = cx.state;
              if (state.context) {
                cx.marked = "def";
                if (inList(varname, state.localVars)) return;
                state.localVars = {name: varname, next: state.localVars};
              } else if (state.globalVars) {
                if (inList(varname, state.globalVars)) return;
                state.globalVars = {name: varname, next: state.globalVars};
              }
            }
          
            // Combinators
          
            var defaultVars = {name: "this", next: null};
            function pushcontext() {
              if (!cx.state.context) cx.state.localVars = defaultVars;
              cx.state.context = {prev: cx.state.context, vars: cx.state.localVars};
            }
            function popcontext() {
              cx.state.localVars = cx.state.context.vars;
              cx.state.context = cx.state.context.prev;
            }
            popcontext.lex = true;
            function pushlex(type, info) {
              var result = function() {
                var state = cx.state;
                state.lexical = new HaxeLexical(state.indented, cx.stream.column(), type, null, state.lexical, info);
              };
              result.lex = true;
              return result;
            }
            function poplex() {
              var state = cx.state;
              if (state.lexical.prev) {
                if (state.lexical.type == ")")
                  state.indented = state.lexical.indented;
                state.lexical = state.lexical.prev;
              }
            }
            poplex.lex = true;
          
            function expect(wanted) {
              function f(type) {
                if (type == wanted) return cont();
                else if (wanted == ";") return pass();
                else return cont(f);
              }
              return f;
            }
          
            function statement(type) {
              if (type == "@") return cont(metadef);
              if (type == "var") return cont(pushlex("vardef"), vardef1, expect(";"), poplex);
              if (type == "keyword a") return cont(pushlex("form"), expression, statement, poplex);
              if (type == "keyword b") return cont(pushlex("form"), statement, poplex);
              if (type == "{") return cont(pushlex("}"), pushcontext, block, poplex, popcontext);
              if (type == ";") return cont();
              if (type == "attribute") return cont(maybeattribute);
              if (type == "function") return cont(functiondef);
              if (type == "for") return cont(pushlex("form"), expect("("), pushlex(")"), forspec1, expect(")"),
                                             poplex, statement, poplex);
              if (type == "variable") return cont(pushlex("stat"), maybelabel);
              if (type == "switch") return cont(pushlex("form"), expression, pushlex("}", "switch"), expect("{"),
                                                block, poplex, poplex);
              if (type == "case") return cont(expression, expect(":"));
              if (type == "default") return cont(expect(":"));
              if (type == "catch") return cont(pushlex("form"), pushcontext, expect("("), funarg, expect(")"),
                                               statement, poplex, popcontext);
              if (type == "import") return cont(importdef, expect(";"));
              if (type == "typedef") return cont(typedef);
              return pass(pushlex("stat"), expression, expect(";"), poplex);
            }
            function expression(type) {
              if (atomicTypes.hasOwnProperty(type)) return cont(maybeoperator);
              if (type == "type" ) return cont(maybeoperator);
              if (type == "function") return cont(functiondef);
              if (type == "keyword c") return cont(maybeexpression);
              if (type == "(") return cont(pushlex(")"), maybeexpression, expect(")"), poplex, maybeoperator);
              if (type == "operator") return cont(expression);
              if (type == "[") return cont(pushlex("]"), commasep(maybeexpression, "]"), poplex, maybeoperator);
              if (type == "{") return cont(pushlex("}"), commasep(objprop, "}"), poplex, maybeoperator);
              return cont();
            }
            function maybeexpression(type) {
              if (type.match(/[;\}\)\],]/)) return pass();
              return pass(expression);
            }
          
            function maybeoperator(type, value) {
              if (type == "operator" && /\+\+|--/.test(value)) return cont(maybeoperator);
              if (type == "operator" || type == ":") return cont(expression);
              if (type == ";") return;
              if (type == "(") return cont(pushlex(")"), commasep(expression, ")"), poplex, maybeoperator);
              if (type == ".") return cont(property, maybeoperator);
              if (type == "[") return cont(pushlex("]"), expression, expect("]"), poplex, maybeoperator);
            }
          
            function maybeattribute(type) {
              if (type == "attribute") return cont(maybeattribute);
              if (type == "function") return cont(functiondef);
              if (type == "var") return cont(vardef1);
            }
          
            function metadef(type) {
              if(type == ":") return cont(metadef);
              if(type == "variable") return cont(metadef);
              if(type == "(") return cont(pushlex(")"), commasep(metaargs, ")"), poplex, statement);
            }
            function metaargs(type) {
              if(type == "variable") return cont();
            }
          
            function importdef (type, value) {
              if(type == "variable" && /[A-Z]/.test(value.charAt(0))) { registerimport(value); return cont(); }
              else if(type == "variable" || type == "property" || type == "." || value == "*") return cont(importdef);
            }
          
            function typedef (type, value)
            {
              if(type == "variable" && /[A-Z]/.test(value.charAt(0))) { registerimport(value); return cont(); }
              else if (type == "type" && /[A-Z]/.test(value.charAt(0))) { return cont(); }
            }
          
            function maybelabel(type) {
              if (type == ":") return cont(poplex, statement);
              return pass(maybeoperator, expect(";"), poplex);
            }
            function property(type) {
              if (type == "variable") {cx.marked = "property"; return cont();}
            }
            function objprop(type) {
              if (type == "variable") cx.marked = "property";
              if (atomicTypes.hasOwnProperty(type)) return cont(expect(":"), expression);
            }
            function commasep(what, end) {
              function proceed(type) {
                if (type == ",") return cont(what, proceed);
                if (type == end) return cont();
                return cont(expect(end));
              }
              return function(type) {
                if (type == end) return cont();
                else return pass(what, proceed);
              };
            }
            function block(type) {
              if (type == "}") return cont();
              return pass(statement, block);
            }
            function vardef1(type, value) {
              if (type == "variable"){register(value); return cont(typeuse, vardef2);}
              return cont();
            }
            function vardef2(type, value) {
              if (value == "=") return cont(expression, vardef2);
              if (type == ",") return cont(vardef1);
            }
            function forspec1(type, value) {
              if (type == "variable") {
                register(value);
                return cont(forin, expression)
              } else {
                return pass()
              }
            }
            function forin(_type, value) {
              if (value == "in") return cont();
            }
            function functiondef(type, value) {
              //function names starting with upper-case letters are recognised as types, so cludging them together here.
              if (type == "variable" || type == "type") {register(value); return cont(functiondef);}
              if (value == "new") return cont(functiondef);
              if (type == "(") return cont(pushlex(")"), pushcontext, commasep(funarg, ")"), poplex, typeuse, statement, popcontext);
            }
            function typeuse(type) {
              if(type == ":") return cont(typestring);
            }
            function typestring(type) {
              if(type == "type") return cont();
              if(type == "variable") return cont();
              if(type == "{") return cont(pushlex("}"), commasep(typeprop, "}"), poplex);
            }
            function typeprop(type) {
              if(type == "variable") return cont(typeuse);
            }
            function funarg(type, value) {
              if (type == "variable") {register(value); return cont(typeuse);}
            }
          
            // Interface
            return {
              startState: function(basecolumn) {
                var defaulttypes = ["Int", "Float", "String", "Void", "Std", "Bool", "Dynamic", "Array"];
                var state = {
                  tokenize: haxeTokenBase,
                  reAllowed: true,
                  kwAllowed: true,
                  cc: [],
                  lexical: new HaxeLexical((basecolumn || 0) - indentUnit, 0, "block", false),
                  localVars: parserConfig.localVars,
                  importedtypes: defaulttypes,
                  context: parserConfig.localVars && {vars: parserConfig.localVars},
                  indented: 0
                };
                if (parserConfig.globalVars && typeof parserConfig.globalVars == "object")
                  state.globalVars = parserConfig.globalVars;
                return state;
              },
          
              token: function(stream, state) {
                if (stream.sol()) {
                  if (!state.lexical.hasOwnProperty("align"))
                    state.lexical.align = false;
                  state.indented = stream.indentation();
                }
                if (stream.eatSpace()) return null;
                var style = state.tokenize(stream, state);
                if (type == "comment") return style;
                state.reAllowed = !!(type == "operator" || type == "keyword c" || type.match(/^[\[{}\(,;:]$/));
                state.kwAllowed = type != '.';
                return parseHaxe(state, style, type, content, stream);
              },
          
              indent: function(state, textAfter) {
                if (state.tokenize != haxeTokenBase) return 0;
                var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical;
                if (lexical.type == "stat" && firstChar == "}") lexical = lexical.prev;
                var type = lexical.type, closing = firstChar == type;
                if (type == "vardef") return lexical.indented + 4;
                else if (type == "form" && firstChar == "{") return lexical.indented;
                else if (type == "stat" || type == "form") return lexical.indented + indentUnit;
                else if (lexical.info == "switch" && !closing)
                  return lexical.indented + (/^(?:case|default)\b/.test(textAfter) ? indentUnit : 2 * indentUnit);
                else if (lexical.align) return lexical.column + (closing ? 0 : 1);
                else return lexical.indented + (closing ? 0 : indentUnit);
              },
          
              electricChars: "{}",
              blockCommentStart: "/*",
              blockCommentEnd: "*/",
              lineComment: "//"
            };
          });
          
          CodeMirror.defineMIME("text/x-haxe", "haxe");
          
          CodeMirror.defineMode("hxml", function () {
          
            return {
              startState: function () {
                return {
                  define: false,
                  inString: false
                };
              },
              token: function (stream, state) {
                var ch = stream.peek();
                var sol = stream.sol();
          
                ///* comments */
                if (ch == "#") {
                  stream.skipToEnd();
                  return "comment";
                }
                if (sol && ch == "-") {
                  var style = "variable-2";
          
                  stream.eat(/-/);
          
                  if (stream.peek() == "-") {
                    stream.eat(/-/);
                    style = "keyword a";
                  }
          
                  if (stream.peek() == "D") {
                    stream.eat(/[D]/);
                    style = "keyword c";
                    state.define = true;
                  }
          
                  stream.eatWhile(/[A-Z]/i);
                  return style;
                }
          
                var ch = stream.peek();
          
                if (state.inString == false && ch == "'") {
                  state.inString = true;
                  ch = stream.next();
                }
          
                if (state.inString == true) {
                  if (stream.skipTo("'")) {
          
                  } else {
                    stream.skipToEnd();
                  }
          
                  if (stream.peek() == "'") {
                    stream.next();
                    state.inString = false;
                  }
          
                  return "string";
                }
          
                stream.next();
                return null;
              },
              lineComment: "#"
            };
          });
          
          CodeMirror.defineMIME("text/x-hxml", "hxml");
          
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Haxe mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="haxe.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Haxe</a>
            </ul>
          </div>
          
          <article>
          <h2>Haxe mode</h2>
          
          
          <div><p><textarea id="code-haxe" name="code">
          import one.two.Three;
          
          @attr("test")
          class Foo&lt;T&gt; extends Three
          {
          	public function new()
          	{
          		noFoo = 12;
          	}
          	
          	public static inline function doFoo(obj:{k:Int, l:Float}):Int
          	{
          		for(i in 0...10)
          		{
          			obj.k++;
          			trace(i);
          			var var1 = new Array();
          			if(var1.length > 1)
          				throw "Error";
          		}
          		// The following line should not be colored, the variable is scoped out
          		var1;
          		/* Multi line
          		 * Comment test
          		 */
          		return obj.k;
          	}
          	private function bar():Void
          	{
          		#if flash
          		var t1:String = "1.21";
          		#end
          		try {
          			doFoo({k:3, l:1.2});
          		}
          		catch (e : String) {
          			trace(e);
          		}
          		var t2:Float = cast(3.2);
          		var t3:haxe.Timer = new haxe.Timer();
          		var t4 = {k:Std.int(t2), l:Std.parseFloat(t1)};
          		var t5 = ~/123+.*$/i;
          		doFoo(t4);
          		untyped t1 = 4;
          		bob = new Foo&lt;Int&gt;
          	}
          	public var okFoo(default, never):Float;
          	var noFoo(getFoo, null):Int;
          	function getFoo():Int {
          		return noFoo;
          	}
          	
          	public var three:Int;
          }
          enum Color
          {
          	red;
          	green;
          	blue;
          	grey( v : Int );
          	rgb (r:Int,g:Int,b:Int);
          }
          </textarea></p>
          
          <p>Hxml mode:</p>
          
          <p><textarea id="code-hxml">
          -cp test
          -js path/to/file.js
          #-remap nme:flash
          --next
          -D source-map-content
          -cmd 'test'
          -lib lime
          </textarea></p>
          </div>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code-haxe"), {
                	mode: "haxe",
                  lineNumbers: true,
                  indentUnit: 4,
                  indentWithTabs: true
                });
                
                editor = CodeMirror.fromTextArea(document.getElementById("code-hxml"), {
                	mode: "hxml",
                  lineNumbers: true,
                  indentUnit: 4,
                  indentWithTabs: true
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-haxe, text/x-hxml</code>.</p>
            </article>
          
      • htmlembedded
        • htmlembedded.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"),
                  require("../../addon/mode/multiplex"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "../htmlmixed/htmlmixed",
                      "../../addon/mode/multiplex"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineMode("htmlembedded", function(config, parserConfig) {
              return CodeMirror.multiplexingMode(CodeMirror.getMode(config, "htmlmixed"), {
                open: parserConfig.open || parserConfig.scriptStartRegex || "<%",
                close: parserConfig.close || parserConfig.scriptEndRegex || "%>",
                mode: CodeMirror.getMode(config, parserConfig.scriptingModeSpec)
              });
            }, "htmlmixed");
          
            CodeMirror.defineMIME("application/x-ejs", {name: "htmlembedded", scriptingModeSpec:"javascript"});
            CodeMirror.defineMIME("application/x-aspx", {name: "htmlembedded", scriptingModeSpec:"text/x-csharp"});
            CodeMirror.defineMIME("application/x-jsp", {name: "htmlembedded", scriptingModeSpec:"text/x-java"});
            CodeMirror.defineMIME("application/x-erb", {name: "htmlembedded", scriptingModeSpec:"ruby"});
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Html Embedded Scripts mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../xml/xml.js"></script>
          <script src="../javascript/javascript.js"></script>
          <script src="../css/css.js"></script>
          <script src="../htmlmixed/htmlmixed.js"></script>
          <script src="../../addon/mode/multiplex.js"></script>
          <script src="htmlembedded.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Html Embedded Scripts</a>
            </ul>
          </div>
          
          <article>
          <h2>Html Embedded Scripts mode</h2>
          <form><textarea id="code" name="code">
          <%
          function hello(who) {
          	return "Hello " + who;
          }
          %>
          This is an example of EJS (embedded javascript)
          <p>The program says <%= hello("world") %>.</p>
          <script>
          	alert("And here is some normal JS code"); // also colored
          </script>
          </textarea></form>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  mode: "application/x-ejs",
                  indentUnit: 4,
                  indentWithTabs: true
                });
              </script>
          
              <p>Mode for html embedded scripts like JSP and ASP.NET. Depends on HtmlMixed which in turn depends on
              JavaScript, CSS and XML.<br />Other dependancies include those of the scriping language chosen.</p>
          
              <p><strong>MIME types defined:</strong> <code>application/x-aspx</code> (ASP.NET), 
              <code>application/x-ejs</code> (Embedded Javascript), <code>application/x-jsp</code> (JavaServer Pages)</p>
            </article>
          
      • htmlmixed
        • htmlmixed.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("../xml/xml"), require("../javascript/javascript"), require("../css/css"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "../xml/xml", "../javascript/javascript", "../css/css"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            var defaultTags = {
              script: [
                ["lang", /(javascript|babel)/i, "javascript"],
                ["type", /^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^$/i, "javascript"],
                ["type", /./, "text/plain"],
                [null, null, "javascript"]
              ],
              style:  [
                ["lang", /^css$/i, "css"],
                ["type", /^(text\/)?(x-)?(stylesheet|css)$/i, "css"],
                ["type", /./, "text/plain"],
                [null, null, "css"]
              ]
            };
          
            function maybeBackup(stream, pat, style) {
              var cur = stream.current(), close = cur.search(pat);
              if (close > -1) {
                stream.backUp(cur.length - close);
              } else if (cur.match(/<\/?$/)) {
                stream.backUp(cur.length);
                if (!stream.match(pat, false)) stream.match(cur);
              }
              return style;
            }
          
            var attrRegexpCache = {};
            function getAttrRegexp(attr) {
              var regexp = attrRegexpCache[attr];
              if (regexp) return regexp;
              return attrRegexpCache[attr] = new RegExp("\\s+" + attr + "\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*");
            }
          
            function getAttrValue(stream, attr) {
              var pos = stream.pos, match;
              while (pos >= 0 && stream.string.charAt(pos) !== "<") pos--;
              if (pos < 0) return pos;
              if (match = stream.string.slice(pos, stream.pos).match(getAttrRegexp(attr)))
                return match[2];
              return "";
            }
          
            function getTagRegexp(tagName, anchored) {
              return new RegExp((anchored ? "^" : "") + "<\/\s*" + tagName + "\s*>", "i");
            }
          
            function addTags(from, to) {
              for (var tag in from) {
                var dest = to[tag] || (to[tag] = []);
                var source = from[tag];
                for (var i = source.length - 1; i >= 0; i--)
                  dest.unshift(source[i])
              }
            }
          
            function findMatchingMode(tagInfo, stream) {
              for (var i = 0; i < tagInfo.length; i++) {
                var spec = tagInfo[i];
                if (!spec[0] || spec[1].test(getAttrValue(stream, spec[0]))) return spec[2];
              }
            }
          
            CodeMirror.defineMode("htmlmixed", function (config, parserConfig) {
              var htmlMode = CodeMirror.getMode(config, {
                name: "xml",
                htmlMode: true,
                multilineTagIndentFactor: parserConfig.multilineTagIndentFactor,
                multilineTagIndentPastTag: parserConfig.multilineTagIndentPastTag
              });
          
              var tags = {};
              var configTags = parserConfig && parserConfig.tags, configScript = parserConfig && parserConfig.scriptTypes;
              addTags(defaultTags, tags);
              if (configTags) addTags(configTags, tags);
              if (configScript) for (var i = configScript.length - 1; i >= 0; i--)
                tags.script.unshift(["type", configScript[i].matches, configScript[i].mode])
          
              function html(stream, state) {
                var tagName = state.htmlState.tagName && state.htmlState.tagName.toLowerCase();
                var tagInfo = tagName && tags.hasOwnProperty(tagName) && tags[tagName];
          
                var style = htmlMode.token(stream, state.htmlState), modeSpec;
          
                if (tagInfo && /\btag\b/.test(style) && stream.current() === ">" &&
                    (modeSpec = findMatchingMode(tagInfo, stream))) {
                  var mode = CodeMirror.getMode(config, modeSpec);
                  var endTagA = getTagRegexp(tagName, true), endTag = getTagRegexp(tagName, false);
                  state.token = function (stream, state) {
                    if (stream.match(endTagA, false)) {
                      state.token = html;
                      state.localState = state.localMode = null;
                      return null;
                    }
                    return maybeBackup(stream, endTag, state.localMode.token(stream, state.localState));
                  };
                  state.localMode = mode;
                  state.localState = CodeMirror.startState(mode, htmlMode.indent(state.htmlState, ""));
                }
                return style;
              };
          
              return {
                startState: function () {
                  var state = htmlMode.startState();
                  return {token: html, localMode: null, localState: null, htmlState: state};
                },
          
                copyState: function (state) {
                  var local;
                  if (state.localState) {
                    local = CodeMirror.copyState(state.localMode, state.localState);
                  }
                  return {token: state.token, localMode: state.localMode, localState: local,
                          htmlState: CodeMirror.copyState(htmlMode, state.htmlState)};
                },
          
                token: function (stream, state) {
                  return state.token(stream, state);
                },
          
                indent: function (state, textAfter) {
                  if (!state.localMode || /^\s*<\//.test(textAfter))
                    return htmlMode.indent(state.htmlState, textAfter);
                  else if (state.localMode.indent)
                    return state.localMode.indent(state.localState, textAfter);
                  else
                    return CodeMirror.Pass;
                },
          
                innerMode: function (state) {
                  return {state: state.localState || state.htmlState, mode: state.localMode || htmlMode};
                }
              };
            }, "xml", "javascript", "css");
          
            CodeMirror.defineMIME("text/html", "htmlmixed");
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: HTML mixed mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/selection/selection-pointer.js"></script>
          <script src="../xml/xml.js"></script>
          <script src="../javascript/javascript.js"></script>
          <script src="../css/css.js"></script>
          <script src="../vbscript/vbscript.js"></script>
          <script src="htmlmixed.js"></script>
          <style>.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">HTML mixed</a>
            </ul>
          </div>
          
          <article>
          <h2>HTML mixed mode</h2>
          <form><textarea id="code" name="code">
          <html style="color: green">
            <!-- this is a comment -->
            <head>
              <title>Mixed HTML Example</title>
              <style type="text/css">
                h1 {font-family: comic sans; color: #f0f;}
                div {background: yellow !important;}
                body {
                  max-width: 50em;
                  margin: 1em 2em 1em 5em;
                }
              </style>
            </head>
            <body>
              <h1>Mixed HTML Example</h1>
              <script>
                function jsFunc(arg1, arg2) {
                  if (arg1 && arg2) document.body.innerHTML = "achoo";
                }
              </script>
            </body>
          </html>
          </textarea></form>
              <script>
                // Define an extended mixed-mode that understands vbscript and
                // leaves mustache/handlebars embedded templates in html mode
                var mixedMode = {
                  name: "htmlmixed",
                  scriptTypes: [{matches: /\/x-handlebars-template|\/x-mustache/i,
                                 mode: null},
                                {matches: /(text|application)\/(x-)?vb(a|script)/i,
                                 mode: "vbscript"}]
                };
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  mode: mixedMode,
                  selectionPointer: true
                });
              </script>
          
              <p>The HTML mixed mode depends on the XML, JavaScript, and CSS modes.</p>
          
              <p>It takes an optional mode configuration
              option, <code>scriptTypes</code>, which can be used to add custom
              behavior for specific <code>&lt;script type="..."></code> tags. If
              given, it should hold an array of <code>{matches, mode}</code>
              objects, where <code>matches</code> is a string or regexp that
              matches the script type, and <code>mode</code> is
              either <code>null</code>, for script types that should stay in
              HTML mode, or a <a href="../../doc/manual.html#option_mode">mode
              spec</a> corresponding to the mode that should be used for the
              script.</p>
          
              <p><strong>MIME types defined:</strong> <code>text/html</code>
              (redefined, only takes effect if you load this parser after the
              XML parser).</p>
          
            </article>
          
      • http
        • http.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("http", function() {
            function failFirstLine(stream, state) {
              stream.skipToEnd();
              state.cur = header;
              return "error";
            }
          
            function start(stream, state) {
              if (stream.match(/^HTTP\/\d\.\d/)) {
                state.cur = responseStatusCode;
                return "keyword";
              } else if (stream.match(/^[A-Z]+/) && /[ \t]/.test(stream.peek())) {
                state.cur = requestPath;
                return "keyword";
              } else {
                return failFirstLine(stream, state);
              }
            }
          
            function responseStatusCode(stream, state) {
              var code = stream.match(/^\d+/);
              if (!code) return failFirstLine(stream, state);
          
              state.cur = responseStatusText;
              var status = Number(code[0]);
              if (status >= 100 && status < 200) {
                return "positive informational";
              } else if (status >= 200 && status < 300) {
                return "positive success";
              } else if (status >= 300 && status < 400) {
                return "positive redirect";
              } else if (status >= 400 && status < 500) {
                return "negative client-error";
              } else if (status >= 500 && status < 600) {
                return "negative server-error";
              } else {
                return "error";
              }
            }
          
            function responseStatusText(stream, state) {
              stream.skipToEnd();
              state.cur = header;
              return null;
            }
          
            function requestPath(stream, state) {
              stream.eatWhile(/\S/);
              state.cur = requestProtocol;
              return "string-2";
            }
          
            function requestProtocol(stream, state) {
              if (stream.match(/^HTTP\/\d\.\d$/)) {
                state.cur = header;
                return "keyword";
              } else {
                return failFirstLine(stream, state);
              }
            }
          
            function header(stream) {
              if (stream.sol() && !stream.eat(/[ \t]/)) {
                if (stream.match(/^.*?:/)) {
                  return "atom";
                } else {
                  stream.skipToEnd();
                  return "error";
                }
              } else {
                stream.skipToEnd();
                return "string";
              }
            }
          
            function body(stream) {
              stream.skipToEnd();
              return null;
            }
          
            return {
              token: function(stream, state) {
                var cur = state.cur;
                if (cur != header && cur != body && stream.eatSpace()) return null;
                return cur(stream, state);
              },
          
              blankLine: function(state) {
                state.cur = body;
              },
          
              startState: function() {
                return {cur: start};
              }
            };
          });
          
          CodeMirror.defineMIME("message/http", "http");
          
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: HTTP mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="http.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">HTTP</a>
            </ul>
          </div>
          
          <article>
          <h2>HTTP mode</h2>
          
          
          <div><textarea id="code" name="code">
          POST /somewhere HTTP/1.1
          Host: example.com
          If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
          Content-Type: application/x-www-form-urlencoded;
          	charset=utf-8
          User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.11 (KHTML, like Gecko) Ubuntu/12.04 Chromium/20.0.1132.47 Chrome/20.0.1132.47 Safari/536.11
          
          This is the request body!
          </textarea></div>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {});
              </script>
          
              <p><strong>MIME types defined:</strong> <code>message/http</code>.</p>
            </article>
          
      • idl
        • idl.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            function wordRegexp(words) {
              return new RegExp('^((' + words.join(')|(') + '))\\b', 'i');
            };
          
            var builtinArray = [
              'a_correlate', 'abs', 'acos', 'adapt_hist_equal', 'alog',
              'alog2', 'alog10', 'amoeba', 'annotate', 'app_user_dir',
              'app_user_dir_query', 'arg_present', 'array_equal', 'array_indices',
              'arrow', 'ascii_template', 'asin', 'assoc', 'atan',
              'axis', 'axis', 'bandpass_filter', 'bandreject_filter', 'barplot',
              'bar_plot', 'beseli', 'beselj', 'beselk', 'besely',
              'beta', 'biginteger', 'bilinear', 'bin_date', 'binary_template',
              'bindgen', 'binomial', 'bit_ffs', 'bit_population', 'blas_axpy',
              'blk_con', 'boolarr', 'boolean', 'boxplot', 'box_cursor',
              'breakpoint', 'broyden', 'bubbleplot', 'butterworth', 'bytarr',
              'byte', 'byteorder', 'bytscl', 'c_correlate', 'calendar',
              'caldat', 'call_external', 'call_function', 'call_method',
              'call_procedure', 'canny', 'catch', 'cd', 'cdf', 'ceil',
              'chebyshev', 'check_math', 'chisqr_cvf', 'chisqr_pdf', 'choldc',
              'cholsol', 'cindgen', 'cir_3pnt', 'clipboard', 'close',
              'clust_wts', 'cluster', 'cluster_tree', 'cmyk_convert', 'code_coverage',
              'color_convert', 'color_exchange', 'color_quan', 'color_range_map',
              'colorbar', 'colorize_sample', 'colormap_applicable',
              'colormap_gradient', 'colormap_rotation', 'colortable',
              'comfit', 'command_line_args', 'common', 'compile_opt', 'complex',
              'complexarr', 'complexround', 'compute_mesh_normals', 'cond', 'congrid',
              'conj', 'constrained_min', 'contour', 'contour', 'convert_coord',
              'convol', 'convol_fft', 'coord2to3', 'copy_lun', 'correlate',
              'cos', 'cosh', 'cpu', 'cramer', 'createboxplotdata',
              'create_cursor', 'create_struct', 'create_view', 'crossp', 'crvlength',
              'ct_luminance', 'cti_test', 'cursor', 'curvefit', 'cv_coord',
              'cvttobm', 'cw_animate', 'cw_animate_getp', 'cw_animate_load',
              'cw_animate_run', 'cw_arcball', 'cw_bgroup', 'cw_clr_index',
              'cw_colorsel', 'cw_defroi', 'cw_field', 'cw_filesel', 'cw_form',
              'cw_fslider', 'cw_light_editor', 'cw_light_editor_get',
              'cw_light_editor_set', 'cw_orient', 'cw_palette_editor',
              'cw_palette_editor_get', 'cw_palette_editor_set', 'cw_pdmenu',
              'cw_rgbslider', 'cw_tmpl', 'cw_zoom', 'db_exists',
              'dblarr', 'dcindgen', 'dcomplex', 'dcomplexarr', 'define_key',
              'define_msgblk', 'define_msgblk_from_file', 'defroi', 'defsysv',
              'delvar', 'dendro_plot', 'dendrogram', 'deriv', 'derivsig',
              'determ', 'device', 'dfpmin', 'diag_matrix', 'dialog_dbconnect',
              'dialog_message', 'dialog_pickfile', 'dialog_printersetup',
              'dialog_printjob', 'dialog_read_image',
              'dialog_write_image', 'dictionary', 'digital_filter', 'dilate', 'dindgen',
              'dissolve', 'dist', 'distance_measure', 'dlm_load', 'dlm_register',
              'doc_library', 'double', 'draw_roi', 'edge_dog', 'efont',
              'eigenql', 'eigenvec', 'ellipse', 'elmhes', 'emboss',
              'empty', 'enable_sysrtn', 'eof', 'eos', 'erase',
              'erf', 'erfc', 'erfcx', 'erode', 'errorplot',
              'errplot', 'estimator_filter', 'execute', 'exit', 'exp',
              'expand', 'expand_path', 'expint', 'extrac', 'extract_slice',
              'f_cvf', 'f_pdf', 'factorial', 'fft', 'file_basename',
              'file_chmod', 'file_copy', 'file_delete', 'file_dirname',
              'file_expand_path', 'file_gunzip', 'file_gzip', 'file_info',
              'file_lines', 'file_link', 'file_mkdir', 'file_move',
              'file_poll_input', 'file_readlink', 'file_same',
              'file_search', 'file_tar', 'file_test', 'file_untar', 'file_unzip',
              'file_which', 'file_zip', 'filepath', 'findgen', 'finite',
              'fix', 'flick', 'float', 'floor', 'flow3',
              'fltarr', 'flush', 'format_axis_values', 'forward_function', 'free_lun',
              'fstat', 'fulstr', 'funct', 'function', 'fv_test',
              'fx_root', 'fz_roots', 'gamma', 'gamma_ct', 'gauss_cvf',
              'gauss_pdf', 'gauss_smooth', 'gauss2dfit', 'gaussfit',
              'gaussian_function', 'gaussint', 'get_drive_list', 'get_dxf_objects',
              'get_kbrd', 'get_login_info',
              'get_lun', 'get_screen_size', 'getenv', 'getwindows', 'greg2jul',
              'grib', 'grid_input', 'grid_tps', 'grid3', 'griddata',
              'gs_iter', 'h_eq_ct', 'h_eq_int', 'hanning', 'hash',
              'hdf', 'hdf5', 'heap_free', 'heap_gc', 'heap_nosave',
              'heap_refcount', 'heap_save', 'help', 'hilbert', 'hist_2d',
              'hist_equal', 'histogram', 'hls', 'hough', 'hqr',
              'hsv', 'i18n_multibytetoutf8',
              'i18n_multibytetowidechar', 'i18n_utf8tomultibyte',
              'i18n_widechartomultibyte',
              'ibeta', 'icontour', 'iconvertcoord', 'idelete', 'identity',
              'idl_base64', 'idl_container', 'idl_validname',
              'idlexbr_assistant', 'idlitsys_createtool',
              'idlunit', 'iellipse', 'igamma', 'igetcurrent', 'igetdata',
              'igetid', 'igetproperty', 'iimage', 'image', 'image_cont',
              'image_statistics', 'image_threshold', 'imaginary', 'imap', 'indgen',
              'int_2d', 'int_3d', 'int_tabulated', 'intarr', 'interpol',
              'interpolate', 'interval_volume', 'invert', 'ioctl', 'iopen',
              'ir_filter', 'iplot', 'ipolygon', 'ipolyline', 'iputdata',
              'iregister', 'ireset', 'iresolve', 'irotate', 'isa',
              'isave', 'iscale', 'isetcurrent', 'isetproperty', 'ishft',
              'isocontour', 'isosurface', 'isurface', 'itext', 'itranslate',
              'ivector', 'ivolume', 'izoom', 'journal', 'json_parse',
              'json_serialize', 'jul2greg', 'julday', 'keyword_set', 'krig2d',
              'kurtosis', 'kw_test', 'l64indgen', 'la_choldc', 'la_cholmprove',
              'la_cholsol', 'la_determ', 'la_eigenproblem', 'la_eigenql', 'la_eigenvec',
              'la_elmhes', 'la_gm_linear_model', 'la_hqr', 'la_invert',
              'la_least_square_equality', 'la_least_squares', 'la_linear_equation',
              'la_ludc', 'la_lumprove', 'la_lusol',
              'la_svd', 'la_tridc', 'la_trimprove', 'la_triql', 'la_trired',
              'la_trisol', 'label_date', 'label_region', 'ladfit', 'laguerre',
              'lambda', 'lambdap', 'lambertw', 'laplacian', 'least_squares_filter',
              'leefilt', 'legend', 'legendre', 'linbcg', 'lindgen',
              'linfit', 'linkimage', 'list', 'll_arc_distance', 'lmfit',
              'lmgr', 'lngamma', 'lnp_test', 'loadct', 'locale_get',
              'logical_and', 'logical_or', 'logical_true', 'lon64arr', 'lonarr',
              'long', 'long64', 'lsode', 'lu_complex', 'ludc',
              'lumprove', 'lusol', 'm_correlate', 'machar', 'make_array',
              'make_dll', 'make_rt', 'map', 'mapcontinents', 'mapgrid',
              'map_2points', 'map_continents', 'map_grid', 'map_image', 'map_patch',
              'map_proj_forward', 'map_proj_image', 'map_proj_info',
              'map_proj_init', 'map_proj_inverse',
              'map_set', 'matrix_multiply', 'matrix_power', 'max', 'md_test',
              'mean', 'meanabsdev', 'mean_filter', 'median', 'memory',
              'mesh_clip', 'mesh_decimate', 'mesh_issolid',
              'mesh_merge', 'mesh_numtriangles',
              'mesh_obj', 'mesh_smooth', 'mesh_surfacearea',
              'mesh_validate', 'mesh_volume',
              'message', 'min', 'min_curve_surf', 'mk_html_help', 'modifyct',
              'moment', 'morph_close', 'morph_distance',
              'morph_gradient', 'morph_hitormiss',
              'morph_open', 'morph_thin', 'morph_tophat', 'multi', 'n_elements',
              'n_params', 'n_tags', 'ncdf', 'newton', 'noise_hurl',
              'noise_pick', 'noise_scatter', 'noise_slur', 'norm', 'obj_class',
              'obj_destroy', 'obj_hasmethod', 'obj_isa', 'obj_new', 'obj_valid',
              'objarr', 'on_error', 'on_ioerror', 'online_help', 'openr',
              'openu', 'openw', 'oplot', 'oploterr', 'orderedhash',
              'p_correlate', 'parse_url', 'particle_trace', 'path_cache', 'path_sep',
              'pcomp', 'plot', 'plot3d', 'plot', 'plot_3dbox',
              'plot_field', 'ploterr', 'plots', 'polar_contour', 'polar_surface',
              'polyfill', 'polyshade', 'pnt_line', 'point_lun', 'polarplot',
              'poly', 'poly_2d', 'poly_area', 'poly_fit', 'polyfillv',
              'polygon', 'polyline', 'polywarp', 'popd', 'powell',
              'pref_commit', 'pref_get', 'pref_set', 'prewitt', 'primes',
              'print', 'printf', 'printd', 'pro', 'product',
              'profile', 'profiler', 'profiles', 'project_vol', 'ps_show_fonts',
              'psafm', 'pseudo', 'ptr_free', 'ptr_new', 'ptr_valid',
              'ptrarr', 'pushd', 'qgrid3', 'qhull', 'qromb',
              'qromo', 'qsimp', 'query_*', 'query_ascii', 'query_bmp',
              'query_csv', 'query_dicom', 'query_gif', 'query_image', 'query_jpeg',
              'query_jpeg2000', 'query_mrsid', 'query_pict', 'query_png', 'query_ppm',
              'query_srf', 'query_tiff', 'query_video', 'query_wav', 'r_correlate',
              'r_test', 'radon', 'randomn', 'randomu', 'ranks',
              'rdpix', 'read', 'readf', 'read_ascii', 'read_binary',
              'read_bmp', 'read_csv', 'read_dicom', 'read_gif', 'read_image',
              'read_interfile', 'read_jpeg', 'read_jpeg2000', 'read_mrsid', 'read_pict',
              'read_png', 'read_ppm', 'read_spr', 'read_srf', 'read_sylk',
              'read_tiff', 'read_video', 'read_wav', 'read_wave', 'read_x11_bitmap',
              'read_xwd', 'reads', 'readu', 'real_part', 'rebin',
              'recall_commands', 'recon3', 'reduce_colors', 'reform', 'region_grow',
              'register_cursor', 'regress', 'replicate',
              'replicate_inplace', 'resolve_all',
              'resolve_routine', 'restore', 'retall', 'return', 'reverse',
              'rk4', 'roberts', 'rot', 'rotate', 'round',
              'routine_filepath', 'routine_info', 'rs_test', 's_test', 'save',
              'savgol', 'scale3', 'scale3d', 'scatterplot', 'scatterplot3d',
              'scope_level', 'scope_traceback', 'scope_varfetch',
              'scope_varname', 'search2d',
              'search3d', 'sem_create', 'sem_delete', 'sem_lock', 'sem_release',
              'set_plot', 'set_shading', 'setenv', 'sfit', 'shade_surf',
              'shade_surf_irr', 'shade_volume', 'shift', 'shift_diff', 'shmdebug',
              'shmmap', 'shmunmap', 'shmvar', 'show3', 'showfont',
              'signum', 'simplex', 'sin', 'sindgen', 'sinh',
              'size', 'skewness', 'skip_lun', 'slicer3', 'slide_image',
              'smooth', 'sobel', 'socket', 'sort', 'spawn',
              'sph_4pnt', 'sph_scat', 'spher_harm', 'spl_init', 'spl_interp',
              'spline', 'spline_p', 'sprsab', 'sprsax', 'sprsin',
              'sprstp', 'sqrt', 'standardize', 'stddev', 'stop',
              'strarr', 'strcmp', 'strcompress', 'streamline', 'streamline',
              'stregex', 'stretch', 'string', 'strjoin', 'strlen',
              'strlowcase', 'strmatch', 'strmessage', 'strmid', 'strpos',
              'strput', 'strsplit', 'strtrim', 'struct_assign', 'struct_hide',
              'strupcase', 'surface', 'surface', 'surfr', 'svdc',
              'svdfit', 'svsol', 'swap_endian', 'swap_endian_inplace', 'symbol',
              'systime', 't_cvf', 't_pdf', 't3d', 'tag_names',
              'tan', 'tanh', 'tek_color', 'temporary', 'terminal_size',
              'tetra_clip', 'tetra_surface', 'tetra_volume', 'text', 'thin',
              'thread', 'threed', 'tic', 'time_test2', 'timegen',
              'timer', 'timestamp', 'timestamptovalues', 'tm_test', 'toc',
              'total', 'trace', 'transpose', 'tri_surf', 'triangulate',
              'trigrid', 'triql', 'trired', 'trisol', 'truncate_lun',
              'ts_coef', 'ts_diff', 'ts_fcast', 'ts_smooth', 'tv',
              'tvcrs', 'tvlct', 'tvrd', 'tvscl', 'typename',
              'uindgen', 'uint', 'uintarr', 'ul64indgen', 'ulindgen',
              'ulon64arr', 'ulonarr', 'ulong', 'ulong64', 'uniq',
              'unsharp_mask', 'usersym', 'value_locate', 'variance', 'vector',
              'vector_field', 'vel', 'velovect', 'vert_t3d', 'voigt',
              'volume', 'voronoi', 'voxel_proj', 'wait', 'warp_tri',
              'watershed', 'wdelete', 'wf_draw', 'where', 'widget_base',
              'widget_button', 'widget_combobox', 'widget_control',
              'widget_displaycontextmenu', 'widget_draw',
              'widget_droplist', 'widget_event', 'widget_info',
              'widget_label', 'widget_list',
              'widget_propertysheet', 'widget_slider', 'widget_tab',
              'widget_table', 'widget_text',
              'widget_tree', 'widget_tree_move', 'widget_window',
              'wiener_filter', 'window',
              'window', 'write_bmp', 'write_csv', 'write_gif', 'write_image',
              'write_jpeg', 'write_jpeg2000', 'write_nrif', 'write_pict', 'write_png',
              'write_ppm', 'write_spr', 'write_srf', 'write_sylk', 'write_tiff',
              'write_video', 'write_wav', 'write_wave', 'writeu', 'wset',
              'wshow', 'wtn', 'wv_applet', 'wv_cwt', 'wv_cw_wavelet',
              'wv_denoise', 'wv_dwt', 'wv_fn_coiflet',
              'wv_fn_daubechies', 'wv_fn_gaussian',
              'wv_fn_haar', 'wv_fn_morlet', 'wv_fn_paul',
              'wv_fn_symlet', 'wv_import_data',
              'wv_import_wavelet', 'wv_plot3d_wps', 'wv_plot_multires',
              'wv_pwt', 'wv_tool_denoise',
              'xbm_edit', 'xdisplayfile', 'xdxf', 'xfont', 'xinteranimate',
              'xloadct', 'xmanager', 'xmng_tmpl', 'xmtool', 'xobjview',
              'xobjview_rotate', 'xobjview_write_image',
              'xpalette', 'xpcolor', 'xplot3d',
              'xregistered', 'xroi', 'xsq_test', 'xsurface', 'xvaredit',
              'xvolume', 'xvolume_rotate', 'xvolume_write_image',
              'xyouts', 'zlib_compress', 'zlib_uncompress', 'zoom', 'zoom_24'
            ];
            var builtins = wordRegexp(builtinArray);
          
            var keywordArray = [
              'begin', 'end', 'endcase', 'endfor',
              'endwhile', 'endif', 'endrep', 'endforeach',
              'break', 'case', 'continue', 'for',
              'foreach', 'goto', 'if', 'then', 'else',
              'repeat', 'until', 'switch', 'while',
              'do', 'pro', 'function'
            ];
            var keywords = wordRegexp(keywordArray);
          
            CodeMirror.registerHelper("hintWords", "idl", builtinArray.concat(keywordArray));
          
            var identifiers = new RegExp('^[_a-z\xa1-\uffff][_a-z0-9\xa1-\uffff]*', 'i');
          
            var singleOperators = /[+\-*&=<>\/@#~$]/;
            var boolOperators = new RegExp('(and|or|eq|lt|le|gt|ge|ne|not)', 'i');
          
            function tokenBase(stream) {
              // whitespaces
              if (stream.eatSpace()) return null;
          
              // Handle one line Comments
              if (stream.match(';')) {
                stream.skipToEnd();
                return 'comment';
              }
          
              // Handle Number Literals
              if (stream.match(/^[0-9\.+-]/, false)) {
                if (stream.match(/^[+-]?0x[0-9a-fA-F]+/))
                  return 'number';
                if (stream.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?/))
                  return 'number';
                if (stream.match(/^[+-]?\d+([EeDd][+-]?\d+)?/))
                  return 'number';
              }
          
              // Handle Strings
              if (stream.match(/^"([^"]|(""))*"/)) { return 'string'; }
              if (stream.match(/^'([^']|(''))*'/)) { return 'string'; }
          
              // Handle words
              if (stream.match(keywords)) { return 'keyword'; }
              if (stream.match(builtins)) { return 'builtin'; }
              if (stream.match(identifiers)) { return 'variable'; }
          
              if (stream.match(singleOperators) || stream.match(boolOperators)) {
                return 'operator'; }
          
              // Handle non-detected items
              stream.next();
              return null;
            };
          
            CodeMirror.defineMode('idl', function() {
              return {
                token: function(stream) {
                  return tokenBase(stream);
                }
              };
            });
          
            CodeMirror.defineMIME('text/x-idl', 'idl');
          });
          
        • index.html
          <!doctype html>
          
          <title>CodeMirror: IDL mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="idl.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">IDL</a>
            </ul>
          </div>
          
          <article>
          <h2>IDL mode</h2>
          
              <div><textarea id="code" name="code">
          ;; Example IDL code
          FUNCTION mean_and_stddev,array
            ;; This program reads in an array of numbers
            ;; and returns a structure containing the
            ;; average and standard deviation
          
            ave = 0.0
            count = 0.0
          
            for i=0,N_ELEMENTS(array)-1 do begin
                ave = ave + array[i]
                count = count + 1
            endfor
            
            ave = ave/count
          
            std = stddev(array)  
          
            return, {average:ave,std:std}
          
          END
          
              </textarea></div>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  mode: {name: "idl",
                         version: 1,
                         singleLineStringErrors: false},
                  lineNumbers: true,
                  indentUnit: 4,
                  matchBrackets: true
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-idl</code>.</p>
          </article>
          
      • jade
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Jade Templating Mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../javascript/javascript.js"></script>
          <script src="../css/css.js"></script>
          <script src="../xml/xml.js"></script>
          <script src="../htmlmixed/htmlmixed.js"></script>
          <script src="jade.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Jade Templating Mode</a>
            </ul>
          </div>
          
          <article>
          <h2>Jade Templating Mode</h2>
          <form><textarea id="code" name="code">
          doctype html
            html
              head
                title= "Jade Templating CodeMirror Mode Example"
                link(rel='stylesheet', href='/css/bootstrap.min.css')
                link(rel='stylesheet', href='/css/index.css')
                script(type='text/javascript', src='/js/jquery-1.9.1.min.js')
                script(type='text/javascript', src='/js/bootstrap.min.js')
              body
                div.header
                  h1 Welcome to this Example
                div.spots
                  if locals.spots
                    each spot in spots
                      div.spot.well
                   div
                     if spot.logo
                       img.img-rounded.logo(src=spot.logo)
                     else
                       img.img-rounded.logo(src="img/placeholder.png")
                   h3
                     a(href=spot.hash) ##{spot.hash}
                     if spot.title
                       span.title #{spot.title}
                     if spot.desc
                       div #{spot.desc}
                  else
                    h3 There are no spots currently available.
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  mode: {name: "jade", alignCDATA: true},
                  lineNumbers: true
                });
              </script>
              <h3>The Jade Templating Mode</h3>
                <p> Created by Forbes Lindesay. Managed as part of a Brackets extension at <a href="https://github.com/ForbesLindesay/jade-brackets">https://github.com/ForbesLindesay/jade-brackets</a>.</p>
              <p><strong>MIME type defined:</strong> <code>text/x-jade</code>.</p>
            </article>
          
        • jade.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("../javascript/javascript"), require("../css/css"), require("../htmlmixed/htmlmixed"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "../javascript/javascript", "../css/css", "../htmlmixed/htmlmixed"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode('jade', function (config) {
            // token types
            var KEYWORD = 'keyword';
            var DOCTYPE = 'meta';
            var ID = 'builtin';
            var CLASS = 'qualifier';
          
            var ATTRS_NEST = {
              '{': '}',
              '(': ')',
              '[': ']'
            };
          
            var jsMode = CodeMirror.getMode(config, 'javascript');
          
            function State() {
              this.javaScriptLine = false;
              this.javaScriptLineExcludesColon = false;
          
              this.javaScriptArguments = false;
              this.javaScriptArgumentsDepth = 0;
          
              this.isInterpolating = false;
              this.interpolationNesting = 0;
          
              this.jsState = jsMode.startState();
          
              this.restOfLine = '';
          
              this.isIncludeFiltered = false;
              this.isEach = false;
          
              this.lastTag = '';
              this.scriptType = '';
          
              // Attributes Mode
              this.isAttrs = false;
              this.attrsNest = [];
              this.inAttributeName = true;
              this.attributeIsType = false;
              this.attrValue = '';
          
              // Indented Mode
              this.indentOf = Infinity;
              this.indentToken = '';
          
              this.innerMode = null;
              this.innerState = null;
          
              this.innerModeForLine = false;
            }
            /**
             * Safely copy a state
             *
             * @return {State}
             */
            State.prototype.copy = function () {
              var res = new State();
              res.javaScriptLine = this.javaScriptLine;
              res.javaScriptLineExcludesColon = this.javaScriptLineExcludesColon;
              res.javaScriptArguments = this.javaScriptArguments;
              res.javaScriptArgumentsDepth = this.javaScriptArgumentsDepth;
              res.isInterpolating = this.isInterpolating;
              res.interpolationNesting = this.intpolationNesting;
          
              res.jsState = CodeMirror.copyState(jsMode, this.jsState);
          
              res.innerMode = this.innerMode;
              if (this.innerMode && this.innerState) {
                res.innerState = CodeMirror.copyState(this.innerMode, this.innerState);
              }
          
              res.restOfLine = this.restOfLine;
          
              res.isIncludeFiltered = this.isIncludeFiltered;
              res.isEach = this.isEach;
              res.lastTag = this.lastTag;
              res.scriptType = this.scriptType;
              res.isAttrs = this.isAttrs;
              res.attrsNest = this.attrsNest.slice();
              res.inAttributeName = this.inAttributeName;
              res.attributeIsType = this.attributeIsType;
              res.attrValue = this.attrValue;
              res.indentOf = this.indentOf;
              res.indentToken = this.indentToken;
          
              res.innerModeForLine = this.innerModeForLine;
          
              return res;
            };
          
            function javaScript(stream, state) {
              if (stream.sol()) {
                // if javaScriptLine was set at end of line, ignore it
                state.javaScriptLine = false;
                state.javaScriptLineExcludesColon = false;
              }
              if (state.javaScriptLine) {
                if (state.javaScriptLineExcludesColon && stream.peek() === ':') {
                  state.javaScriptLine = false;
                  state.javaScriptLineExcludesColon = false;
                  return;
                }
                var tok = jsMode.token(stream, state.jsState);
                if (stream.eol()) state.javaScriptLine = false;
                return tok || true;
              }
            }
            function javaScriptArguments(stream, state) {
              if (state.javaScriptArguments) {
                if (state.javaScriptArgumentsDepth === 0 && stream.peek() !== '(') {
                  state.javaScriptArguments = false;
                  return;
                }
                if (stream.peek() === '(') {
                  state.javaScriptArgumentsDepth++;
                } else if (stream.peek() === ')') {
                  state.javaScriptArgumentsDepth--;
                }
                if (state.javaScriptArgumentsDepth === 0) {
                  state.javaScriptArguments = false;
                  return;
                }
          
                var tok = jsMode.token(stream, state.jsState);
                return tok || true;
              }
            }
          
            function yieldStatement(stream) {
              if (stream.match(/^yield\b/)) {
                  return 'keyword';
              }
            }
          
            function doctype(stream) {
              if (stream.match(/^(?:doctype) *([^\n]+)?/)) {
                  return DOCTYPE;
              }
            }
          
            function interpolation(stream, state) {
              if (stream.match('#{')) {
                state.isInterpolating = true;
                state.interpolationNesting = 0;
                return 'punctuation';
              }
            }
          
            function interpolationContinued(stream, state) {
              if (state.isInterpolating) {
                if (stream.peek() === '}') {
                  state.interpolationNesting--;
                  if (state.interpolationNesting < 0) {
                    stream.next();
                    state.isInterpolating = false;
                    return 'puncutation';
                  }
                } else if (stream.peek() === '{') {
                  state.interpolationNesting++;
                }
                return jsMode.token(stream, state.jsState) || true;
              }
            }
          
            function caseStatement(stream, state) {
              if (stream.match(/^case\b/)) {
                state.javaScriptLine = true;
                return KEYWORD;
              }
            }
          
            function when(stream, state) {
              if (stream.match(/^when\b/)) {
                state.javaScriptLine = true;
                state.javaScriptLineExcludesColon = true;
                return KEYWORD;
              }
            }
          
            function defaultStatement(stream) {
              if (stream.match(/^default\b/)) {
                return KEYWORD;
              }
            }
          
            function extendsStatement(stream, state) {
              if (stream.match(/^extends?\b/)) {
                state.restOfLine = 'string';
                return KEYWORD;
              }
            }
          
            function append(stream, state) {
              if (stream.match(/^append\b/)) {
                state.restOfLine = 'variable';
                return KEYWORD;
              }
            }
            function prepend(stream, state) {
              if (stream.match(/^prepend\b/)) {
                state.restOfLine = 'variable';
                return KEYWORD;
              }
            }
            function block(stream, state) {
              if (stream.match(/^block\b *(?:(prepend|append)\b)?/)) {
                state.restOfLine = 'variable';
                return KEYWORD;
              }
            }
          
            function include(stream, state) {
              if (stream.match(/^include\b/)) {
                state.restOfLine = 'string';
                return KEYWORD;
              }
            }
          
            function includeFiltered(stream, state) {
              if (stream.match(/^include:([a-zA-Z0-9\-]+)/, false) && stream.match('include')) {
                state.isIncludeFiltered = true;
                return KEYWORD;
              }
            }
          
            function includeFilteredContinued(stream, state) {
              if (state.isIncludeFiltered) {
                var tok = filter(stream, state);
                state.isIncludeFiltered = false;
                state.restOfLine = 'string';
                return tok;
              }
            }
          
            function mixin(stream, state) {
              if (stream.match(/^mixin\b/)) {
                state.javaScriptLine = true;
                return KEYWORD;
              }
            }
          
            function call(stream, state) {
              if (stream.match(/^\+([-\w]+)/)) {
                if (!stream.match(/^\( *[-\w]+ *=/, false)) {
                  state.javaScriptArguments = true;
                  state.javaScriptArgumentsDepth = 0;
                }
                return 'variable';
              }
              if (stream.match(/^\+#{/, false)) {
                stream.next();
                state.mixinCallAfter = true;
                return interpolation(stream, state);
              }
            }
            function callArguments(stream, state) {
              if (state.mixinCallAfter) {
                state.mixinCallAfter = false;
                if (!stream.match(/^\( *[-\w]+ *=/, false)) {
                  state.javaScriptArguments = true;
                  state.javaScriptArgumentsDepth = 0;
                }
                return true;
              }
            }
          
            function conditional(stream, state) {
              if (stream.match(/^(if|unless|else if|else)\b/)) {
                state.javaScriptLine = true;
                return KEYWORD;
              }
            }
          
            function each(stream, state) {
              if (stream.match(/^(- *)?(each|for)\b/)) {
                state.isEach = true;
                return KEYWORD;
              }
            }
            function eachContinued(stream, state) {
              if (state.isEach) {
                if (stream.match(/^ in\b/)) {
                  state.javaScriptLine = true;
                  state.isEach = false;
                  return KEYWORD;
                } else if (stream.sol() || stream.eol()) {
                  state.isEach = false;
                } else if (stream.next()) {
                  while (!stream.match(/^ in\b/, false) && stream.next());
                  return 'variable';
                }
              }
            }
          
            function whileStatement(stream, state) {
              if (stream.match(/^while\b/)) {
                state.javaScriptLine = true;
                return KEYWORD;
              }
            }
          
            function tag(stream, state) {
              var captures;
              if (captures = stream.match(/^(\w(?:[-:\w]*\w)?)\/?/)) {
                state.lastTag = captures[1].toLowerCase();
                if (state.lastTag === 'script') {
                  state.scriptType = 'application/javascript';
                }
                return 'tag';
              }
            }
          
            function filter(stream, state) {
              if (stream.match(/^:([\w\-]+)/)) {
                var innerMode;
                if (config && config.innerModes) {
                  innerMode = config.innerModes(stream.current().substring(1));
                }
                if (!innerMode) {
                  innerMode = stream.current().substring(1);
                }
                if (typeof innerMode === 'string') {
                  innerMode = CodeMirror.getMode(config, innerMode);
                }
                setInnerMode(stream, state, innerMode);
                return 'atom';
              }
            }
          
            function code(stream, state) {
              if (stream.match(/^(!?=|-)/)) {
                state.javaScriptLine = true;
                return 'punctuation';
              }
            }
          
            function id(stream) {
              if (stream.match(/^#([\w-]+)/)) {
                return ID;
              }
            }
          
            function className(stream) {
              if (stream.match(/^\.([\w-]+)/)) {
                return CLASS;
              }
            }
          
            function attrs(stream, state) {
              if (stream.peek() == '(') {
                stream.next();
                state.isAttrs = true;
                state.attrsNest = [];
                state.inAttributeName = true;
                state.attrValue = '';
                state.attributeIsType = false;
                return 'punctuation';
              }
            }
          
            function attrsContinued(stream, state) {
              if (state.isAttrs) {
                if (ATTRS_NEST[stream.peek()]) {
                  state.attrsNest.push(ATTRS_NEST[stream.peek()]);
                }
                if (state.attrsNest[state.attrsNest.length - 1] === stream.peek()) {
                  state.attrsNest.pop();
                } else  if (stream.eat(')')) {
                  state.isAttrs = false;
                  return 'punctuation';
                }
                if (state.inAttributeName && stream.match(/^[^=,\)!]+/)) {
                  if (stream.peek() === '=' || stream.peek() === '!') {
                    state.inAttributeName = false;
                    state.jsState = jsMode.startState();
                    if (state.lastTag === 'script' && stream.current().trim().toLowerCase() === 'type') {
                      state.attributeIsType = true;
                    } else {
                      state.attributeIsType = false;
                    }
                  }
                  return 'attribute';
                }
          
                var tok = jsMode.token(stream, state.jsState);
                if (state.attributeIsType && tok === 'string') {
                  state.scriptType = stream.current().toString();
                }
                if (state.attrsNest.length === 0 && (tok === 'string' || tok === 'variable' || tok === 'keyword')) {
                  try {
                    Function('', 'var x ' + state.attrValue.replace(/,\s*$/, '').replace(/^!/, ''));
                    state.inAttributeName = true;
                    state.attrValue = '';
                    stream.backUp(stream.current().length);
                    return attrsContinued(stream, state);
                  } catch (ex) {
                    //not the end of an attribute
                  }
                }
                state.attrValue += stream.current();
                return tok || true;
              }
            }
          
            function attributesBlock(stream, state) {
              if (stream.match(/^&attributes\b/)) {
                state.javaScriptArguments = true;
                state.javaScriptArgumentsDepth = 0;
                return 'keyword';
              }
            }
          
            function indent(stream) {
              if (stream.sol() && stream.eatSpace()) {
                return 'indent';
              }
            }
          
            function comment(stream, state) {
              if (stream.match(/^ *\/\/(-)?([^\n]*)/)) {
                state.indentOf = stream.indentation();
                state.indentToken = 'comment';
                return 'comment';
              }
            }
          
            function colon(stream) {
              if (stream.match(/^: */)) {
                return 'colon';
              }
            }
          
            function text(stream, state) {
              if (stream.match(/^(?:\| ?| )([^\n]+)/)) {
                return 'string';
              }
              if (stream.match(/^(<[^\n]*)/, false)) {
                // html string
                setInnerMode(stream, state, 'htmlmixed');
                state.innerModeForLine = true;
                return innerMode(stream, state, true);
              }
            }
          
            function dot(stream, state) {
              if (stream.eat('.')) {
                var innerMode = null;
                if (state.lastTag === 'script' && state.scriptType.toLowerCase().indexOf('javascript') != -1) {
                  innerMode = state.scriptType.toLowerCase().replace(/"|'/g, '');
                } else if (state.lastTag === 'style') {
                  innerMode = 'css';
                }
                setInnerMode(stream, state, innerMode);
                return 'dot';
              }
            }
          
            function fail(stream) {
              stream.next();
              return null;
            }
          
          
            function setInnerMode(stream, state, mode) {
              mode = CodeMirror.mimeModes[mode] || mode;
              mode = config.innerModes ? config.innerModes(mode) || mode : mode;
              mode = CodeMirror.mimeModes[mode] || mode;
              mode = CodeMirror.getMode(config, mode);
              state.indentOf = stream.indentation();
          
              if (mode && mode.name !== 'null') {
                state.innerMode = mode;
              } else {
                state.indentToken = 'string';
              }
            }
            function innerMode(stream, state, force) {
              if (stream.indentation() > state.indentOf || (state.innerModeForLine && !stream.sol()) || force) {
                if (state.innerMode) {
                  if (!state.innerState) {
                    state.innerState = state.innerMode.startState ? state.innerMode.startState(stream.indentation()) : {};
                  }
                  return stream.hideFirstChars(state.indentOf + 2, function () {
                    return state.innerMode.token(stream, state.innerState) || true;
                  });
                } else {
                  stream.skipToEnd();
                  return state.indentToken;
                }
              } else if (stream.sol()) {
                state.indentOf = Infinity;
                state.indentToken = null;
                state.innerMode = null;
                state.innerState = null;
              }
            }
            function restOfLine(stream, state) {
              if (stream.sol()) {
                // if restOfLine was set at end of line, ignore it
                state.restOfLine = '';
              }
              if (state.restOfLine) {
                stream.skipToEnd();
                var tok = state.restOfLine;
                state.restOfLine = '';
                return tok;
              }
            }
          
          
            function startState() {
              return new State();
            }
            function copyState(state) {
              return state.copy();
            }
            /**
             * Get the next token in the stream
             *
             * @param {Stream} stream
             * @param {State} state
             */
            function nextToken(stream, state) {
              var tok = innerMode(stream, state)
                || restOfLine(stream, state)
                || interpolationContinued(stream, state)
                || includeFilteredContinued(stream, state)
                || eachContinued(stream, state)
                || attrsContinued(stream, state)
                || javaScript(stream, state)
                || javaScriptArguments(stream, state)
                || callArguments(stream, state)
          
                || yieldStatement(stream, state)
                || doctype(stream, state)
                || interpolation(stream, state)
                || caseStatement(stream, state)
                || when(stream, state)
                || defaultStatement(stream, state)
                || extendsStatement(stream, state)
                || append(stream, state)
                || prepend(stream, state)
                || block(stream, state)
                || include(stream, state)
                || includeFiltered(stream, state)
                || mixin(stream, state)
                || call(stream, state)
                || conditional(stream, state)
                || each(stream, state)
                || whileStatement(stream, state)
                || tag(stream, state)
                || filter(stream, state)
                || code(stream, state)
                || id(stream, state)
                || className(stream, state)
                || attrs(stream, state)
                || attributesBlock(stream, state)
                || indent(stream, state)
                || text(stream, state)
                || comment(stream, state)
                || colon(stream, state)
                || dot(stream, state)
                || fail(stream, state);
          
              return tok === true ? null : tok;
            }
            return {
              startState: startState,
              copyState: copyState,
              token: nextToken
            };
          });
          
          CodeMirror.defineMIME('text/x-jade', 'jade');
          
          });
          
      • javascript
        • index.html
          <!doctype html>
          
          <title>CodeMirror: JavaScript mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="../../addon/comment/continuecomment.js"></script>
          <script src="../../addon/comment/comment.js"></script>
          <script src="javascript.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">JavaScript</a>
            </ul>
          </div>
          
          <article>
          <h2>JavaScript mode</h2>
          
          
          <div><textarea id="code" name="code">
          // Demo code (the actual new parser character stream implementation)
          
          function StringStream(string) {
            this.pos = 0;
            this.string = string;
          }
          
          StringStream.prototype = {
            done: function() {return this.pos >= this.string.length;},
            peek: function() {return this.string.charAt(this.pos);},
            next: function() {
              if (this.pos &lt; this.string.length)
                return this.string.charAt(this.pos++);
            },
            eat: function(match) {
              var ch = this.string.charAt(this.pos);
              if (typeof match == "string") var ok = ch == match;
              else var ok = ch &amp;&amp; match.test ? match.test(ch) : match(ch);
              if (ok) {this.pos++; return ch;}
            },
            eatWhile: function(match) {
              var start = this.pos;
              while (this.eat(match));
              if (this.pos > start) return this.string.slice(start, this.pos);
            },
            backUp: function(n) {this.pos -= n;},
            column: function() {return this.pos;},
            eatSpace: function() {
              var start = this.pos;
              while (/\s/.test(this.string.charAt(this.pos))) this.pos++;
              return this.pos - start;
            },
            match: function(pattern, consume, caseInsensitive) {
              if (typeof pattern == "string") {
                function cased(str) {return caseInsensitive ? str.toLowerCase() : str;}
                if (cased(this.string).indexOf(cased(pattern), this.pos) == this.pos) {
                  if (consume !== false) this.pos += str.length;
                  return true;
                }
              }
              else {
                var match = this.string.slice(this.pos).match(pattern);
                if (match &amp;&amp; consume !== false) this.pos += match[0].length;
                return match;
              }
            }
          };
          </textarea></div>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  matchBrackets: true,
                  continueComments: "Enter",
                  extraKeys: {"Ctrl-Q": "toggleComment"}
                });
              </script>
          
              <p>
                JavaScript mode supports several configuration options:
                <ul>
                  <li><code>json</code> which will set the mode to expect JSON
                  data rather than a JavaScript program.</li>
                  <li><code>jsonld</code> which will set the mode to expect
                  <a href="http://json-ld.org">JSON-LD</a> linked data rather
                  than a JavaScript program (<a href="json-ld.html">demo</a>).</li>
                  <li><code>typescript</code> which will activate additional
                  syntax highlighting and some other things for TypeScript code
                  (<a href="typescript.html">demo</a>).</li>
                  <li><code>statementIndent</code> which (given a number) will
                  determine the amount of indentation to use for statements
                  continued on a new line.</li>
                  <li><code>wordCharacters</code>, a regexp that indicates which
                  characters should be considered part of an identifier.
                  Defaults to <code>/[\w$]/</code>, which does not handle
                  non-ASCII identifiers. Can be set to something more elaborate
                  to improve Unicode support.</li>
                </ul>
              </p>
          
              <p><strong>MIME types defined:</strong> <code>text/javascript</code>, <code>application/json</code>, <code>application/ld+json</code>, <code>text/typescript</code>, <code>application/typescript</code>.</p>
            </article>
          
        • javascript.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // TODO actually recognize syntax of TypeScript constructs
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("javascript", function(config, parserConfig) {
            var indentUnit = config.indentUnit;
            var statementIndent = parserConfig.statementIndent;
            var jsonldMode = parserConfig.jsonld;
            var jsonMode = parserConfig.json || jsonldMode;
            var isTS = parserConfig.typescript;
            var wordRE = parserConfig.wordCharacters || /[\w$\xa1-\uffff]/;
          
            // Tokenizer
          
            var keywords = function(){
              function kw(type) {return {type: type, style: "keyword"};}
              var A = kw("keyword a"), B = kw("keyword b"), C = kw("keyword c");
              var operator = kw("operator"), atom = {type: "atom", style: "atom"};
          
              var jsKeywords = {
                "if": kw("if"), "while": A, "with": A, "else": B, "do": B, "try": B, "finally": B,
                "return": C, "break": C, "continue": C, "new": C, "delete": C, "throw": C, "debugger": C,
                "var": kw("var"), "const": kw("var"), "let": kw("var"),
                "async": kw("async"), "function": kw("function"), "catch": kw("catch"),
                "for": kw("for"), "switch": kw("switch"), "case": kw("case"), "default": kw("default"),
                "in": operator, "typeof": operator, "instanceof": operator,
                "true": atom, "false": atom, "null": atom, "undefined": atom, "NaN": atom, "Infinity": atom,
                "this": kw("this"), "class": kw("class"), "super": kw("atom"),
                "await": C, "yield": C, "export": kw("export"), "import": kw("import"), "extends": C
              };
          
              // Extend the 'normal' keywords with the TypeScript language extensions
              if (isTS) {
                var type = {type: "variable", style: "variable-3"};
                var tsKeywords = {
                  // object-like things
                  "interface": kw("interface"),
                  "extends": kw("extends"),
                  "constructor": kw("constructor"),
          
                  // scope modifiers
                  "public": kw("public"),
                  "private": kw("private"),
                  "protected": kw("protected"),
                  "static": kw("static"),
          
                  // types
                  "string": type, "number": type, "boolean": type, "any": type
                };
          
                for (var attr in tsKeywords) {
                  jsKeywords[attr] = tsKeywords[attr];
                }
              }
          
              return jsKeywords;
            }();
          
            var isOperatorChar = /[+\-*&%=<>!?|~^]/;
            var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;
          
            function readRegexp(stream) {
              var escaped = false, next, inSet = false;
              while ((next = stream.next()) != null) {
                if (!escaped) {
                  if (next == "/" && !inSet) return;
                  if (next == "[") inSet = true;
                  else if (inSet && next == "]") inSet = false;
                }
                escaped = !escaped && next == "\\";
              }
            }
          
            // Used as scratch variables to communicate multiple values without
            // consing up tons of objects.
            var type, content;
            function ret(tp, style, cont) {
              type = tp; content = cont;
              return style;
            }
            function tokenBase(stream, state) {
              var ch = stream.next();
              if (ch == '"' || ch == "'") {
                state.tokenize = tokenString(ch);
                return state.tokenize(stream, state);
              } else if (ch == "." && stream.match(/^\d+(?:[eE][+\-]?\d+)?/)) {
                return ret("number", "number");
              } else if (ch == "." && stream.match("..")) {
                return ret("spread", "meta");
              } else if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
                return ret(ch);
              } else if (ch == "=" && stream.eat(">")) {
                return ret("=>", "operator");
              } else if (ch == "0" && stream.eat(/x/i)) {
                stream.eatWhile(/[\da-f]/i);
                return ret("number", "number");
              } else if (ch == "0" && stream.eat(/o/i)) {
                stream.eatWhile(/[0-7]/i);
                return ret("number", "number");
              } else if (ch == "0" && stream.eat(/b/i)) {
                stream.eatWhile(/[01]/i);
                return ret("number", "number");
              } else if (/\d/.test(ch)) {
                stream.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/);
                return ret("number", "number");
              } else if (ch == "/") {
                if (stream.eat("*")) {
                  state.tokenize = tokenComment;
                  return tokenComment(stream, state);
                } else if (stream.eat("/")) {
                  stream.skipToEnd();
                  return ret("comment", "comment");
                } else if (state.lastType == "operator" || state.lastType == "keyword c" ||
                         state.lastType == "sof" || /^[\[{}\(,;:]$/.test(state.lastType)) {
                  readRegexp(stream);
                  stream.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/);
                  return ret("regexp", "string-2");
                } else {
                  stream.eatWhile(isOperatorChar);
                  return ret("operator", "operator", stream.current());
                }
              } else if (ch == "`") {
                state.tokenize = tokenQuasi;
                return tokenQuasi(stream, state);
              } else if (ch == "#") {
                stream.skipToEnd();
                return ret("error", "error");
              } else if (isOperatorChar.test(ch)) {
                stream.eatWhile(isOperatorChar);
                return ret("operator", "operator", stream.current());
              } else if (wordRE.test(ch)) {
                stream.eatWhile(wordRE);
                var word = stream.current(), known = keywords.propertyIsEnumerable(word) && keywords[word];
                return (known && state.lastType != ".") ? ret(known.type, known.style, word) :
                               ret("variable", "variable", word);
              }
            }
          
            function tokenString(quote) {
              return function(stream, state) {
                var escaped = false, next;
                if (jsonldMode && stream.peek() == "@" && stream.match(isJsonldKeyword)){
                  state.tokenize = tokenBase;
                  return ret("jsonld-keyword", "meta");
                }
                while ((next = stream.next()) != null) {
                  if (next == quote && !escaped) break;
                  escaped = !escaped && next == "\\";
                }
                if (!escaped) state.tokenize = tokenBase;
                return ret("string", "string");
              };
            }
          
            function tokenComment(stream, state) {
              var maybeEnd = false, ch;
              while (ch = stream.next()) {
                if (ch == "/" && maybeEnd) {
                  state.tokenize = tokenBase;
                  break;
                }
                maybeEnd = (ch == "*");
              }
              return ret("comment", "comment");
            }
          
            function tokenQuasi(stream, state) {
              var escaped = false, next;
              while ((next = stream.next()) != null) {
                if (!escaped && (next == "`" || next == "$" && stream.eat("{"))) {
                  state.tokenize = tokenBase;
                  break;
                }
                escaped = !escaped && next == "\\";
              }
              return ret("quasi", "string-2", stream.current());
            }
          
            var brackets = "([{}])";
            // This is a crude lookahead trick to try and notice that we're
            // parsing the argument patterns for a fat-arrow function before we
            // actually hit the arrow token. It only works if the arrow is on
            // the same line as the arguments and there's no strange noise
            // (comments) in between. Fallback is to only notice when we hit the
            // arrow, and not declare the arguments as locals for the arrow
            // body.
            function findFatArrow(stream, state) {
              if (state.fatArrowAt) state.fatArrowAt = null;
              var arrow = stream.string.indexOf("=>", stream.start);
              if (arrow < 0) return;
          
              var depth = 0, sawSomething = false;
              for (var pos = arrow - 1; pos >= 0; --pos) {
                var ch = stream.string.charAt(pos);
                var bracket = brackets.indexOf(ch);
                if (bracket >= 0 && bracket < 3) {
                  if (!depth) { ++pos; break; }
                  if (--depth == 0) break;
                } else if (bracket >= 3 && bracket < 6) {
                  ++depth;
                } else if (wordRE.test(ch)) {
                  sawSomething = true;
                } else if (/["'\/]/.test(ch)) {
                  return;
                } else if (sawSomething && !depth) {
                  ++pos;
                  break;
                }
              }
              if (sawSomething && !depth) state.fatArrowAt = pos;
            }
          
            // Parser
          
            var atomicTypes = {"atom": true, "number": true, "variable": true, "string": true, "regexp": true, "this": true, "jsonld-keyword": true};
          
            function JSLexical(indented, column, type, align, prev, info) {
              this.indented = indented;
              this.column = column;
              this.type = type;
              this.prev = prev;
              this.info = info;
              if (align != null) this.align = align;
            }
          
            function inScope(state, varname) {
              for (var v = state.localVars; v; v = v.next)
                if (v.name == varname) return true;
              for (var cx = state.context; cx; cx = cx.prev) {
                for (var v = cx.vars; v; v = v.next)
                  if (v.name == varname) return true;
              }
            }
          
            function parseJS(state, style, type, content, stream) {
              var cc = state.cc;
              // Communicate our context to the combinators.
              // (Less wasteful than consing up a hundred closures on every call.)
              cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; cx.style = style;
          
              if (!state.lexical.hasOwnProperty("align"))
                state.lexical.align = true;
          
              while(true) {
                var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement;
                if (combinator(type, content)) {
                  while(cc.length && cc[cc.length - 1].lex)
                    cc.pop()();
                  if (cx.marked) return cx.marked;
                  if (type == "variable" && inScope(state, content)) return "variable-2";
                  return style;
                }
              }
            }
          
            // Combinator utils
          
            var cx = {state: null, column: null, marked: null, cc: null};
            function pass() {
              for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);
            }
            function cont() {
              pass.apply(null, arguments);
              return true;
            }
            function register(varname) {
              function inList(list) {
                for (var v = list; v; v = v.next)
                  if (v.name == varname) return true;
                return false;
              }
              var state = cx.state;
              cx.marked = "def";
              if (state.context) {
                if (inList(state.localVars)) return;
                state.localVars = {name: varname, next: state.localVars};
              } else {
                if (inList(state.globalVars)) return;
                if (parserConfig.globalVars)
                  state.globalVars = {name: varname, next: state.globalVars};
              }
            }
          
            // Combinators
          
            var defaultVars = {name: "this", next: {name: "arguments"}};
            function pushcontext() {
              cx.state.context = {prev: cx.state.context, vars: cx.state.localVars};
              cx.state.localVars = defaultVars;
            }
            function popcontext() {
              cx.state.localVars = cx.state.context.vars;
              cx.state.context = cx.state.context.prev;
            }
            function pushlex(type, info) {
              var result = function() {
                var state = cx.state, indent = state.indented;
                if (state.lexical.type == "stat") indent = state.lexical.indented;
                else for (var outer = state.lexical; outer && outer.type == ")" && outer.align; outer = outer.prev)
                  indent = outer.indented;
                state.lexical = new JSLexical(indent, cx.stream.column(), type, null, state.lexical, info);
              };
              result.lex = true;
              return result;
            }
            function poplex() {
              var state = cx.state;
              if (state.lexical.prev) {
                if (state.lexical.type == ")")
                  state.indented = state.lexical.indented;
                state.lexical = state.lexical.prev;
              }
            }
            poplex.lex = true;
          
            function expect(wanted) {
              function exp(type) {
                if (type == wanted) return cont();
                else if (wanted == ";") return pass();
                else return cont(exp);
              };
              return exp;
            }
          
            function statement(type, value) {
              if (type == "var") return cont(pushlex("vardef", value.length), vardef, expect(";"), poplex);
              if (type == "keyword a") return cont(pushlex("form"), expression, statement, poplex);
              if (type == "keyword b") return cont(pushlex("form"), statement, poplex);
              if (type == "{") return cont(pushlex("}"), block, poplex);
              if (type == ";") return cont();
              if (type == "if") {
                if (cx.state.lexical.info == "else" && cx.state.cc[cx.state.cc.length - 1] == poplex)
                  cx.state.cc.pop()();
                return cont(pushlex("form"), expression, statement, poplex, maybeelse);
              }
              if (type == "function") return cont(functiondef);
              if (type == "for") return cont(pushlex("form"), forspec, statement, poplex);
              if (type == "variable") return cont(pushlex("stat"), maybelabel);
              if (type == "switch") return cont(pushlex("form"), expression, pushlex("}", "switch"), expect("{"),
                                                block, poplex, poplex);
              if (type == "case") return cont(expression, expect(":"));
              if (type == "default") return cont(expect(":"));
              if (type == "catch") return cont(pushlex("form"), pushcontext, expect("("), funarg, expect(")"),
                                               statement, poplex, popcontext);
              if (type == "class") return cont(pushlex("form"), className, poplex);
              if (type == "export") return cont(pushlex("stat"), afterExport, poplex);
              if (type == "import") return cont(pushlex("stat"), afterImport, poplex);
              return pass(pushlex("stat"), expression, expect(";"), poplex);
            }
            function expression(type) {
              return expressionInner(type, false);
            }
            function expressionNoComma(type) {
              return expressionInner(type, true);
            }
            function expressionInner(type, noComma) {
              if (cx.state.fatArrowAt == cx.stream.start) {
                var body = noComma ? arrowBodyNoComma : arrowBody;
                if (type == "(") return cont(pushcontext, pushlex(")"), commasep(pattern, ")"), poplex, expect("=>"), body, popcontext);
                else if (type == "variable") return pass(pushcontext, pattern, expect("=>"), body, popcontext);
              }
          
              var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma;
              if (atomicTypes.hasOwnProperty(type)) return cont(maybeop);
              if (type == "async") return cont(expression);
              if (type == "function") return cont(functiondef, maybeop);
              if (type == "keyword c") return cont(noComma ? maybeexpressionNoComma : maybeexpression);
              if (type == "(") return cont(pushlex(")"), maybeexpression, comprehension, expect(")"), poplex, maybeop);
              if (type == "operator" || type == "spread") return cont(noComma ? expressionNoComma : expression);
              if (type == "[") return cont(pushlex("]"), arrayLiteral, poplex, maybeop);
              if (type == "{") return contCommasep(objprop, "}", null, maybeop);
              if (type == "quasi") { return pass(quasi, maybeop); }
              return cont();
            }
            function maybeexpression(type) {
              if (type.match(/[;\}\)\],]/)) return pass();
              return pass(expression);
            }
            function maybeexpressionNoComma(type) {
              if (type.match(/[;\}\)\],]/)) return pass();
              return pass(expressionNoComma);
            }
          
            function maybeoperatorComma(type, value) {
              if (type == ",") return cont(expression);
              return maybeoperatorNoComma(type, value, false);
            }
            function maybeoperatorNoComma(type, value, noComma) {
              var me = noComma == false ? maybeoperatorComma : maybeoperatorNoComma;
              var expr = noComma == false ? expression : expressionNoComma;
              if (type == "=>") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);
              if (type == "operator") {
                if (/\+\+|--/.test(value)) return cont(me);
                if (value == "?") return cont(expression, expect(":"), expr);
                return cont(expr);
              }
              if (type == "quasi") { return pass(quasi, me); }
              if (type == ";") return;
              if (type == "(") return contCommasep(expressionNoComma, ")", "call", me);
              if (type == ".") return cont(property, me);
              if (type == "[") return cont(pushlex("]"), maybeexpression, expect("]"), poplex, me);
            }
            function quasi(type, value) {
              if (type != "quasi") return pass();
              if (value.slice(value.length - 2) != "${") return cont(quasi);
              return cont(expression, continueQuasi);
            }
            function continueQuasi(type) {
              if (type == "}") {
                cx.marked = "string-2";
                cx.state.tokenize = tokenQuasi;
                return cont(quasi);
              }
            }
            function arrowBody(type) {
              findFatArrow(cx.stream, cx.state);
              return pass(type == "{" ? statement : expression);
            }
            function arrowBodyNoComma(type) {
              findFatArrow(cx.stream, cx.state);
              return pass(type == "{" ? statement : expressionNoComma);
            }
            function maybelabel(type) {
              if (type == ":") return cont(poplex, statement);
              return pass(maybeoperatorComma, expect(";"), poplex);
            }
            function property(type) {
              if (type == "variable") {cx.marked = "property"; return cont();}
            }
            function objprop(type, value) {
              if (type == "async") {
                return cont(objprop);
              } else if (type == "variable" || cx.style == "keyword") {
                cx.marked = "property";
                if (value == "get" || value == "set") return cont(getterSetter);
                return cont(afterprop);
              } else if (type == "number" || type == "string") {
                cx.marked = jsonldMode ? "property" : (cx.style + " property");
                return cont(afterprop);
              } else if (type == "jsonld-keyword") {
                return cont(afterprop);
              } else if (type == "[") {
                return cont(expression, expect("]"), afterprop);
              }
            }
            function getterSetter(type) {
              if (type != "variable") return pass(afterprop);
              cx.marked = "property";
              return cont(functiondef);
            }
            function afterprop(type) {
              if (type == ":") return cont(expressionNoComma);
              if (type == "(") return pass(functiondef);
            }
            function commasep(what, end) {
              function proceed(type) {
                if (type == ",") {
                  var lex = cx.state.lexical;
                  if (lex.info == "call") lex.pos = (lex.pos || 0) + 1;
                  return cont(what, proceed);
                }
                if (type == end) return cont();
                return cont(expect(end));
              }
              return function(type) {
                if (type == end) return cont();
                return pass(what, proceed);
              };
            }
            function contCommasep(what, end, info) {
              for (var i = 3; i < arguments.length; i++)
                cx.cc.push(arguments[i]);
              return cont(pushlex(end, info), commasep(what, end), poplex);
            }
            function block(type) {
              if (type == "}") return cont();
              return pass(statement, block);
            }
            function maybetype(type) {
              if (isTS && type == ":") return cont(typedef);
            }
            function maybedefault(_, value) {
              if (value == "=") return cont(expressionNoComma);
            }
            function typedef(type) {
              if (type == "variable") {cx.marked = "variable-3"; return cont();}
            }
            function vardef() {
              return pass(pattern, maybetype, maybeAssign, vardefCont);
            }
            function pattern(type, value) {
              if (type == "variable") { register(value); return cont(); }
              if (type == "spread") return cont(pattern);
              if (type == "[") return contCommasep(pattern, "]");
              if (type == "{") return contCommasep(proppattern, "}");
            }
            function proppattern(type, value) {
              if (type == "variable" && !cx.stream.match(/^\s*:/, false)) {
                register(value);
                return cont(maybeAssign);
              }
              if (type == "variable") cx.marked = "property";
              if (type == "spread") return cont(pattern);
              return cont(expect(":"), pattern, maybeAssign);
            }
            function maybeAssign(_type, value) {
              if (value == "=") return cont(expressionNoComma);
            }
            function vardefCont(type) {
              if (type == ",") return cont(vardef);
            }
            function maybeelse(type, value) {
              if (type == "keyword b" && value == "else") return cont(pushlex("form", "else"), statement, poplex);
            }
            function forspec(type) {
              if (type == "(") return cont(pushlex(")"), forspec1, expect(")"), poplex);
            }
            function forspec1(type) {
              if (type == "var") return cont(vardef, expect(";"), forspec2);
              if (type == ";") return cont(forspec2);
              if (type == "variable") return cont(formaybeinof);
              return pass(expression, expect(";"), forspec2);
            }
            function formaybeinof(_type, value) {
              if (value == "in" || value == "of") { cx.marked = "keyword"; return cont(expression); }
              return cont(maybeoperatorComma, forspec2);
            }
            function forspec2(type, value) {
              if (type == ";") return cont(forspec3);
              if (value == "in" || value == "of") { cx.marked = "keyword"; return cont(expression); }
              return pass(expression, expect(";"), forspec3);
            }
            function forspec3(type) {
              if (type != ")") cont(expression);
            }
            function functiondef(type, value) {
              if (value == "*") {cx.marked = "keyword"; return cont(functiondef);}
              if (type == "variable") {register(value); return cont(functiondef);}
              if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, statement, popcontext);
            }
            function funarg(type) {
              if (type == "spread") return cont(funarg);
              return pass(pattern, maybetype, maybedefault);
            }
            function className(type, value) {
              if (type == "variable") {register(value); return cont(classNameAfter);}
            }
            function classNameAfter(type, value) {
              if (value == "extends") return cont(expression, classNameAfter);
              if (type == "{") return cont(pushlex("}"), classBody, poplex);
            }
            function classBody(type, value) {
              if (type == "variable" || cx.style == "keyword") {
                if (value == "static") {
                  cx.marked = "keyword";
                  return cont(classBody);
                }
                cx.marked = "property";
                if (value == "get" || value == "set") return cont(classGetterSetter, functiondef, classBody);
                return cont(functiondef, classBody);
              }
              if (value == "*") {
                cx.marked = "keyword";
                return cont(classBody);
              }
              if (type == ";") return cont(classBody);
              if (type == "}") return cont();
            }
            function classGetterSetter(type) {
              if (type != "variable") return pass();
              cx.marked = "property";
              return cont();
            }
            function afterExport(_type, value) {
              if (value == "*") { cx.marked = "keyword"; return cont(maybeFrom, expect(";")); }
              if (value == "default") { cx.marked = "keyword"; return cont(expression, expect(";")); }
              return pass(statement);
            }
            function afterImport(type) {
              if (type == "string") return cont();
              return pass(importSpec, maybeFrom);
            }
            function importSpec(type, value) {
              if (type == "{") return contCommasep(importSpec, "}");
              if (type == "variable") register(value);
              if (value == "*") cx.marked = "keyword";
              return cont(maybeAs);
            }
            function maybeAs(_type, value) {
              if (value == "as") { cx.marked = "keyword"; return cont(importSpec); }
            }
            function maybeFrom(_type, value) {
              if (value == "from") { cx.marked = "keyword"; return cont(expression); }
            }
            function arrayLiteral(type) {
              if (type == "]") return cont();
              return pass(expressionNoComma, maybeArrayComprehension);
            }
            function maybeArrayComprehension(type) {
              if (type == "for") return pass(comprehension, expect("]"));
              if (type == ",") return cont(commasep(maybeexpressionNoComma, "]"));
              return pass(commasep(expressionNoComma, "]"));
            }
            function comprehension(type) {
              if (type == "for") return cont(forspec, comprehension);
              if (type == "if") return cont(expression, comprehension);
            }
          
            function isContinuedStatement(state, textAfter) {
              return state.lastType == "operator" || state.lastType == "," ||
                isOperatorChar.test(textAfter.charAt(0)) ||
                /[,.]/.test(textAfter.charAt(0));
            }
          
            // Interface
          
            return {
              startState: function(basecolumn) {
                var state = {
                  tokenize: tokenBase,
                  lastType: "sof",
                  cc: [],
                  lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, "block", false),
                  localVars: parserConfig.localVars,
                  context: parserConfig.localVars && {vars: parserConfig.localVars},
                  indented: 0
                };
                if (parserConfig.globalVars && typeof parserConfig.globalVars == "object")
                  state.globalVars = parserConfig.globalVars;
                return state;
              },
          
              token: function(stream, state) {
                if (stream.sol()) {
                  if (!state.lexical.hasOwnProperty("align"))
                    state.lexical.align = false;
                  state.indented = stream.indentation();
                  findFatArrow(stream, state);
                }
                if (state.tokenize != tokenComment && stream.eatSpace()) return null;
                var style = state.tokenize(stream, state);
                if (type == "comment") return style;
                state.lastType = type == "operator" && (content == "++" || content == "--") ? "incdec" : type;
                return parseJS(state, style, type, content, stream);
              },
          
              indent: function(state, textAfter) {
                if (state.tokenize == tokenComment) return CodeMirror.Pass;
                if (state.tokenize != tokenBase) return 0;
                var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical;
                // Kludge to prevent 'maybelse' from blocking lexical scope pops
                if (!/^\s*else\b/.test(textAfter)) for (var i = state.cc.length - 1; i >= 0; --i) {
                  var c = state.cc[i];
                  if (c == poplex) lexical = lexical.prev;
                  else if (c != maybeelse) break;
                }
                if (lexical.type == "stat" && firstChar == "}") lexical = lexical.prev;
                if (statementIndent && lexical.type == ")" && lexical.prev.type == "stat")
                  lexical = lexical.prev;
                var type = lexical.type, closing = firstChar == type;
          
                if (type == "vardef") return lexical.indented + (state.lastType == "operator" || state.lastType == "," ? lexical.info + 1 : 0);
                else if (type == "form" && firstChar == "{") return lexical.indented;
                else if (type == "form") return lexical.indented + indentUnit;
                else if (type == "stat")
                  return lexical.indented + (isContinuedStatement(state, textAfter) ? statementIndent || indentUnit : 0);
                else if (lexical.info == "switch" && !closing && parserConfig.doubleIndentSwitch != false)
                  return lexical.indented + (/^(?:case|default)\b/.test(textAfter) ? indentUnit : 2 * indentUnit);
                else if (lexical.align) return lexical.column + (closing ? 0 : 1);
                else return lexical.indented + (closing ? 0 : indentUnit);
              },
          
              electricInput: /^\s*(?:case .*?:|default:|\{|\})$/,
              blockCommentStart: jsonMode ? null : "/*",
              blockCommentEnd: jsonMode ? null : "*/",
              lineComment: jsonMode ? null : "//",
              fold: "brace",
              closeBrackets: "()[]{}''\"\"``",
          
              helperType: jsonMode ? "json" : "javascript",
              jsonldMode: jsonldMode,
              jsonMode: jsonMode
            };
          });
          
          CodeMirror.registerHelper("wordChars", "javascript", /[\w$]/);
          
          CodeMirror.defineMIME("text/javascript", "javascript");
          CodeMirror.defineMIME("text/ecmascript", "javascript");
          CodeMirror.defineMIME("application/javascript", "javascript");
          CodeMirror.defineMIME("application/x-javascript", "javascript");
          CodeMirror.defineMIME("application/ecmascript", "javascript");
          CodeMirror.defineMIME("application/json", {name: "javascript", json: true});
          CodeMirror.defineMIME("application/x-json", {name: "javascript", json: true});
          CodeMirror.defineMIME("application/ld+json", {name: "javascript", jsonld: true});
          CodeMirror.defineMIME("text/typescript", { name: "javascript", typescript: true });
          CodeMirror.defineMIME("application/typescript", { name: "javascript", typescript: true });
          
          });
          
        • json-ld.html
          <!doctype html>
          
          <title>CodeMirror: JSON-LD mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="../../addon/comment/continuecomment.js"></script>
          <script src="../../addon/comment/comment.js"></script>
          <script src="javascript.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id="nav">
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"/></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">JSON-LD</a>
            </ul>
          </div>
          
          <article>
          <h2>JSON-LD mode</h2>
          
          
          <div><textarea id="code" name="code">
          {
            "@context": {
              "name": "http://schema.org/name",
              "description": "http://schema.org/description",
              "image": {
                "@id": "http://schema.org/image",
                "@type": "@id"
              },
              "geo": "http://schema.org/geo",
              "latitude": {
                "@id": "http://schema.org/latitude",
                "@type": "xsd:float"
              },
              "longitude": {
                "@id": "http://schema.org/longitude",
                "@type": "xsd:float"
              },
              "xsd": "http://www.w3.org/2001/XMLSchema#"
            },
            "name": "The Empire State Building",
            "description": "The Empire State Building is a 102-story landmark in New York City.",
            "image": "http://www.civil.usherbrooke.ca/cours/gci215a/empire-state-building.jpg",
            "geo": {
              "latitude": "40.75",
              "longitude": "73.98"
            }
          }
          </textarea></div>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  matchBrackets: true,
                  autoCloseBrackets: true,
                  mode: "application/ld+json",
                  lineWrapping: true
                });
              </script>
              
              <p>This is a specialization of the <a href="index.html">JavaScript mode</a>.</p>
            </article>
          
        • test.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function() {
            var mode = CodeMirror.getMode({indentUnit: 2}, "javascript");
            function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
          
            MT("locals",
               "[keyword function] [def foo]([def a], [def b]) { [keyword var] [def c] [operator =] [number 10]; [keyword return] [variable-2 a] [operator +] [variable-2 c] [operator +] [variable d]; }");
          
            MT("comma-and-binop",
               "[keyword function](){ [keyword var] [def x] [operator =] [number 1] [operator +] [number 2], [def y]; }");
          
            MT("destructuring",
               "([keyword function]([def a], [[[def b], [def c] ]]) {",
               "  [keyword let] {[def d], [property foo]: [def c][operator =][number 10], [def x]} [operator =] [variable foo]([variable-2 a]);",
               "  [[[variable-2 c], [variable y] ]] [operator =] [variable-2 c];",
               "})();");
          
            MT("class_body",
               "[keyword class] [def Foo] {",
               "  [property constructor]() {}",
               "  [property sayName]() {",
               "    [keyword return] [string-2 `foo${][variable foo][string-2 }oo`];",
               "  }",
               "}");
          
            MT("class",
               "[keyword class] [def Point] [keyword extends] [variable SuperThing] {",
               "  [property get] [property prop]() { [keyword return] [number 24]; }",
               "  [property constructor]([def x], [def y]) {",
               "    [keyword super]([string 'something']);",
               "    [keyword this].[property x] [operator =] [variable-2 x];",
               "  }",
               "}");
          
            MT("import",
               "[keyword function] [def foo]() {",
               "  [keyword import] [def $] [keyword from] [string 'jquery'];",
               "  [keyword import] { [def encrypt], [def decrypt] } [keyword from] [string 'crypto'];",
               "}");
          
            MT("const",
               "[keyword function] [def f]() {",
               "  [keyword const] [[ [def a], [def b] ]] [operator =] [[ [number 1], [number 2] ]];",
               "}");
          
            MT("for/of",
               "[keyword for]([keyword let] [def of] [keyword of] [variable something]) {}");
          
            MT("generator",
               "[keyword function*] [def repeat]([def n]) {",
               "  [keyword for]([keyword var] [def i] [operator =] [number 0]; [variable-2 i] [operator <] [variable-2 n]; [operator ++][variable-2 i])",
               "    [keyword yield] [variable-2 i];",
               "}");
          
            MT("quotedStringAddition",
               "[keyword let] [def f] [operator =] [variable a] [operator +] [string 'fatarrow'] [operator +] [variable c];");
          
            MT("quotedFatArrow",
               "[keyword let] [def f] [operator =] [variable a] [operator +] [string '=>'] [operator +] [variable c];");
          
            MT("fatArrow",
               "[variable array].[property filter]([def a] [operator =>] [variable-2 a] [operator +] [number 1]);",
               "[variable a];", // No longer in scope
               "[keyword let] [def f] [operator =] ([[ [def a], [def b] ]], [def c]) [operator =>] [variable-2 a] [operator +] [variable-2 c];",
               "[variable c];");
          
            MT("spread",
               "[keyword function] [def f]([def a], [meta ...][def b]) {",
               "  [variable something]([variable-2 a], [meta ...][variable-2 b]);",
               "}");
          
            MT("comprehension",
               "[keyword function] [def f]() {",
               "  [[([variable x] [operator +] [number 1]) [keyword for] ([keyword var] [def x] [keyword in] [variable y]) [keyword if] [variable pred]([variable-2 x]) ]];",
               "  ([variable u] [keyword for] ([keyword var] [def u] [keyword of] [variable generateValues]()) [keyword if] ([variable-2 u].[property color] [operator ===] [string 'blue']));",
               "}");
          
            MT("quasi",
               "[variable re][string-2 `fofdlakj${][variable x] [operator +] ([variable re][string-2 `foo`]) [operator +] [number 1][string-2 }fdsa`] [operator +] [number 2]");
          
            MT("quasi_no_function",
               "[variable x] [operator =] [string-2 `fofdlakj${][variable x] [operator +] [string-2 `foo`] [operator +] [number 1][string-2 }fdsa`] [operator +] [number 2]");
          
            MT("indent_statement",
               "[keyword var] [def x] [operator =] [number 10]",
               "[variable x] [operator +=] [variable y] [operator +]",
               "  [atom Infinity]",
               "[keyword debugger];");
          
            MT("indent_if",
               "[keyword if] ([number 1])",
               "  [keyword break];",
               "[keyword else] [keyword if] ([number 2])",
               "  [keyword continue];",
               "[keyword else]",
               "  [number 10];",
               "[keyword if] ([number 1]) {",
               "  [keyword break];",
               "} [keyword else] [keyword if] ([number 2]) {",
               "  [keyword continue];",
               "} [keyword else] {",
               "  [number 10];",
               "}");
          
            MT("indent_for",
               "[keyword for] ([keyword var] [def i] [operator =] [number 0];",
               "     [variable i] [operator <] [number 100];",
               "     [variable i][operator ++])",
               "  [variable doSomething]([variable i]);",
               "[keyword debugger];");
          
            MT("indent_c_style",
               "[keyword function] [def foo]()",
               "{",
               "  [keyword debugger];",
               "}");
          
            MT("indent_else",
               "[keyword for] (;;)",
               "  [keyword if] ([variable foo])",
               "    [keyword if] ([variable bar])",
               "      [number 1];",
               "    [keyword else]",
               "      [number 2];",
               "  [keyword else]",
               "    [number 3];");
          
            MT("indent_funarg",
               "[variable foo]([number 10000],",
               "    [keyword function]([def a]) {",
               "  [keyword debugger];",
               "};");
          
            MT("indent_below_if",
               "[keyword for] (;;)",
               "  [keyword if] ([variable foo])",
               "    [number 1];",
               "[number 2];");
          
            MT("multilinestring",
               "[keyword var] [def x] [operator =] [string 'foo\\]",
               "[string bar'];");
          
            MT("scary_regexp",
               "[string-2 /foo[[/]]bar/];");
          
            MT("indent_strange_array",
               "[keyword var] [def x] [operator =] [[",
               "  [number 1],,",
               "  [number 2],",
               "]];",
               "[number 10];");
          
            MT("param_default",
               "[keyword function] [def foo]([def x] [operator =] [string-2 `foo${][number 10][string-2 }bar`]) {",
               "  [keyword return] [variable-2 x];",
               "}");
          
            var jsonld_mode = CodeMirror.getMode(
              {indentUnit: 2},
              {name: "javascript", jsonld: true}
            );
            function LD(name) {
              test.mode(name, jsonld_mode, Array.prototype.slice.call(arguments, 1));
            }
          
            LD("json_ld_keywords",
              '{',
              '  [meta "@context"]: {',
              '    [meta "@base"]: [string "http://example.com"],',
              '    [meta "@vocab"]: [string "http://xmlns.com/foaf/0.1/"],',
              '    [property "likesFlavor"]: {',
              '      [meta "@container"]: [meta "@list"]',
              '      [meta "@reverse"]: [string "@beFavoriteOf"]',
              '    },',
              '    [property "nick"]: { [meta "@container"]: [meta "@set"] },',
              '    [property "nick"]: { [meta "@container"]: [meta "@index"] }',
              '  },',
              '  [meta "@graph"]: [[ {',
              '    [meta "@id"]: [string "http://dbpedia.org/resource/John_Lennon"],',
              '    [property "name"]: [string "John Lennon"],',
              '    [property "modified"]: {',
              '      [meta "@value"]: [string "2010-05-29T14:17:39+02:00"],',
              '      [meta "@type"]: [string "http://www.w3.org/2001/XMLSchema#dateTime"]',
              '    }',
              '  } ]]',
              '}');
          
            LD("json_ld_fake",
              '{',
              '  [property "@fake"]: [string "@fake"],',
              '  [property "@contextual"]: [string "@identifier"],',
              '  [property "user@domain.com"]: [string "@graphical"],',
              '  [property "@ID"]: [string "@@ID"]',
              '}');
          })();
          
        • typescript.html
          <!doctype html>
          
          <title>CodeMirror: TypeScript mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="javascript.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">TypeScript</a>
            </ul>
          </div>
          
          <article>
          <h2>TypeScript mode</h2>
          
          
          <div><textarea id="code" name="code">
          class Greeter {
          	greeting: string;
          	constructor (message: string) {
          		this.greeting = message;
          	}
          	greet() {
          		return "Hello, " + this.greeting;
          	}
          }   
          
          var greeter = new Greeter("world");
          
          var button = document.createElement('button')
          button.innerText = "Say Hello"
          button.onclick = function() {
          	alert(greeter.greet())
          }
          
          document.body.appendChild(button)
          
          </textarea></div>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  matchBrackets: true,
                  mode: "text/typescript"
                });
              </script>
          
              <p>This is a specialization of the <a href="index.html">JavaScript mode</a>.</p>
            </article>
          
      • jinja2
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Jinja2 mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="jinja2.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Jinja2</a>
            </ul>
          </div>
          
          <article>
          <h2>Jinja2 mode</h2>
          <form><textarea id="code" name="code">
          {# this is a comment #}
          {%- for item in li -%}
            &lt;li&gt;{{ item.label }}&lt;/li&gt;
          {% endfor -%}
          {{ item.sand == true and item.keyword == false ? 1 : 0 }}
          {{ app.get(55, 1.2, true) }}
          {% if app.get(&#39;_route&#39;) == (&#39;_home&#39;) %}home{% endif %}
          {% if app.session.flashbag.has(&#39;message&#39;) %}
            {% for message in app.session.flashbag.get(&#39;message&#39;) %}
              {{ message.content }}
            {% endfor %}
          {% endif %}
          {{ path(&#39;_home&#39;, {&#39;section&#39;: app.request.get(&#39;section&#39;)}) }}
          {{ path(&#39;_home&#39;, {
              &#39;section&#39;: app.request.get(&#39;section&#39;),
              &#39;boolean&#39;: true,
              &#39;number&#39;: 55.33
            })
          }}
          {% include (&#39;test.incl.html.twig&#39;) %}
          </textarea></form>
              <script>
                var editor =
                CodeMirror.fromTextArea(document.getElementById("code"), {mode:
                  {name: "jinja2", htmlMode: true}});
              </script>
            </article>
          
        • jinja2.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineMode("jinja2", function() {
              var keywords = ["and", "as", "block", "endblock", "by", "cycle", "debug", "else", "elif",
                "extends", "filter", "endfilter", "firstof", "for",
                "endfor", "if", "endif", "ifchanged", "endifchanged",
                "ifequal", "endifequal", "ifnotequal",
                "endifnotequal", "in", "include", "load", "not", "now", "or",
                "parsed", "regroup", "reversed", "spaceless",
                "endspaceless", "ssi", "templatetag", "openblock",
                "closeblock", "openvariable", "closevariable",
                "openbrace", "closebrace", "opencomment",
                "closecomment", "widthratio", "url", "with", "endwith",
                "get_current_language", "trans", "endtrans", "noop", "blocktrans",
                "endblocktrans", "get_available_languages",
                "get_current_language_bidi", "plural"],
              operator = /^[+\-*&%=<>!?|~^]/,
              sign = /^[:\[\(\{]/,
              atom = ["true", "false"],
              number = /^(\d[+\-\*\/])?\d+(\.\d+)?/;
          
              keywords = new RegExp("((" + keywords.join(")|(") + "))\\b");
              atom = new RegExp("((" + atom.join(")|(") + "))\\b");
          
              function tokenBase (stream, state) {
                var ch = stream.peek();
          
                //Comment
                if (state.incomment) {
                  if(!stream.skipTo("#}")) {
                    stream.skipToEnd();
                  } else {
                    stream.eatWhile(/\#|}/);
                    state.incomment = false;
                  }
                  return "comment";
                //Tag
                } else if (state.intag) {
                  //After operator
                  if(state.operator) {
                    state.operator = false;
                    if(stream.match(atom)) {
                      return "atom";
                    }
                    if(stream.match(number)) {
                      return "number";
                    }
                  }
                  //After sign
                  if(state.sign) {
                    state.sign = false;
                    if(stream.match(atom)) {
                      return "atom";
                    }
                    if(stream.match(number)) {
                      return "number";
                    }
                  }
          
                  if(state.instring) {
                    if(ch == state.instring) {
                      state.instring = false;
                    }
                    stream.next();
                    return "string";
                  } else if(ch == "'" || ch == '"') {
                    state.instring = ch;
                    stream.next();
                    return "string";
                  } else if(stream.match(state.intag + "}") || stream.eat("-") && stream.match(state.intag + "}")) {
                    state.intag = false;
                    return "tag";
                  } else if(stream.match(operator)) {
                    state.operator = true;
                    return "operator";
                  } else if(stream.match(sign)) {
                    state.sign = true;
                  } else {
                    if(stream.eat(" ") || stream.sol()) {
                      if(stream.match(keywords)) {
                        return "keyword";
                      }
                      if(stream.match(atom)) {
                        return "atom";
                      }
                      if(stream.match(number)) {
                        return "number";
                      }
                      if(stream.sol()) {
                        stream.next();
                      }
                    } else {
                      stream.next();
                    }
          
                  }
                  return "variable";
                } else if (stream.eat("{")) {
                  if (ch = stream.eat("#")) {
                    state.incomment = true;
                    if(!stream.skipTo("#}")) {
                      stream.skipToEnd();
                    } else {
                      stream.eatWhile(/\#|}/);
                      state.incomment = false;
                    }
                    return "comment";
                  //Open tag
                  } else if (ch = stream.eat(/\{|%/)) {
                    //Cache close tag
                    state.intag = ch;
                    if(ch == "{") {
                      state.intag = "}";
                    }
                    stream.eat("-");
                    return "tag";
                  }
                }
                stream.next();
              };
          
              return {
                startState: function () {
                  return {tokenize: tokenBase};
                },
                token: function (stream, state) {
                  return state.tokenize(stream, state);
                }
              };
            });
          });
          
      • julia
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Julia mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="julia.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Julia</a>
            </ul>
          </div>
          
          <article>
          <h2>Julia mode</h2>
          
              <div><textarea id="code" name="code">
          #numbers
          1234
          1234im
          .234
          .234im
          2.23im
          2.3f3
          23e2
          0x234
          
          #strings
          'a'
          "asdf"
          r"regex"
          b"bytestring"
          
          """
          multiline string
          """
          
          #identifiers
          a
          as123
          function_name!
          
          #unicode identifiers
          # a = x\ddot
          a⃗ = ẍ
          # a = v\dot
          a⃗ = v̇
          #F\vec = m \cdotp a\vec
          F⃗ = m·a⃗
          
          #literal identifier multiples
          3x
          4[1, 2, 3]
          
          #dicts and indexing
          x=[1, 2, 3]
          x[end-1]
          x={"julia"=>"language of technical computing"}
          
          
          #exception handling
          try
            f()
          catch
            @printf "Error"
          finally
            g()
          end
          
          #types
          immutable Color{T<:Number}
            r::T
            g::T
            b::T
          end
          
          #functions
          function change!(x::Vector{Float64})
            for i = 1:length(x)
              x[i] *= 2
            end
          end
          
          #function invocation
          f('b', (2, 3)...)
          
          #operators
          |=
          &=
          ^=
          \-
          %=
          *=
          +=
          -=
          <=
          >=
          !=
          ==
          %
          *
          +
          -
          <
          >
          !
          =
          |
          &
          ^
          \
          ?
          ~
          :
          $
          <:
          .<
          .>
          <<
          <<=
          >>
          >>>>
          >>=
          >>>=
          <<=
          <<<=
          .<=
          .>=
          .==
          ->
          //
          in
          ...
          //
          :=
          .//=
          .*=
          ./=
          .^=
          .%=
          .+=
          .-=
          \=
          \\=
          ||
          ===
          &&
          |=
          .|=
          <:
          >:
          |>
          <|
          ::
          x ? y : z
          
          #macros
          @spawnat 2 1+1
          @eval(:x)
          
          #keywords and operators
          if else elseif while for
           begin let end do
          try catch finally return break continue
          global local const 
          export import importall using
          function macro module baremodule 
          type immutable quote
          true false enumerate
          
          
              </textarea></div>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  mode: {name: "julia",
                         },
                  lineNumbers: true,
                  indentUnit: 4,
                  matchBrackets: true
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-julia</code>.</p>
          </article>
          
        • julia.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("julia", function(_conf, parserConf) {
            var ERRORCLASS = 'error';
          
            function wordRegexp(words) {
              return new RegExp("^((" + words.join(")|(") + "))\\b");
            }
          
            var operators = parserConf.operators || /^\.?[|&^\\%*+\-<>!=\/]=?|\?|~|:|\$|\.[<>]|<<=?|>>>?=?|\.[<>=]=|->?|\/\/|\bin\b/;
            var delimiters = parserConf.delimiters || /^[;,()[\]{}]/;
            var identifiers = parserConf.identifiers|| /^[_A-Za-z\u00A1-\uFFFF][_A-Za-z0-9\u00A1-\uFFFF]*!*/;
            var blockOpeners = ["begin", "function", "type", "immutable", "let", "macro", "for", "while", "quote", "if", "else", "elseif", "try", "finally", "catch", "do"];
            var blockClosers = ["end", "else", "elseif", "catch", "finally"];
            var keywordList = ['if', 'else', 'elseif', 'while', 'for', 'begin', 'let', 'end', 'do', 'try', 'catch', 'finally', 'return', 'break', 'continue', 'global', 'local', 'const', 'export', 'import', 'importall', 'using', 'function', 'macro', 'module', 'baremodule', 'type', 'immutable', 'quote', 'typealias', 'abstract', 'bitstype', 'ccall'];
            var builtinList = ['true', 'false', 'enumerate', 'open', 'close', 'nothing', 'NaN', 'Inf', 'print', 'println', 'Int', 'Int8', 'Uint8', 'Int16', 'Uint16', 'Int32', 'Uint32', 'Int64', 'Uint64', 'Int128', 'Uint128', 'Bool', 'Char', 'Float16', 'Float32', 'Float64', 'Array', 'Vector', 'Matrix', 'String', 'UTF8String', 'ASCIIString', 'error', 'warn', 'info', '@printf'];
          
            //var stringPrefixes = new RegExp("^[br]?('|\")")
            var stringPrefixes = /^(`|'|"{3}|([br]?"))/;
            var keywords = wordRegexp(keywordList);
            var builtins = wordRegexp(builtinList);
            var openers = wordRegexp(blockOpeners);
            var closers = wordRegexp(blockClosers);
            var macro = /^@[_A-Za-z][_A-Za-z0-9]*/;
            var symbol = /^:[_A-Za-z][_A-Za-z0-9]*/;
          
            function in_array(state) {
              var ch = cur_scope(state);
              if(ch=="[" || ch=="{") {
                return true;
              }
              else {
                return false;
              }
            }
          
            function cur_scope(state) {
              if(state.scopes.length==0) {
                return null;
              }
              return state.scopes[state.scopes.length - 1];
            }
          
            // tokenizers
            function tokenBase(stream, state) {
              // Handle scope changes
              var leaving_expr = state.leaving_expr;
              if(stream.sol()) {
                leaving_expr = false;
              }
              state.leaving_expr = false;
              if(leaving_expr) {
                if(stream.match(/^'+/)) {
                  return 'operator';
                }
          
              }
          
              if(stream.match(/^\.{2,3}/)) {
                return 'operator';
              }
          
              if (stream.eatSpace()) {
                return null;
              }
          
              var ch = stream.peek();
              // Handle Comments
              if (ch === '#') {
                  stream.skipToEnd();
                  return 'comment';
              }
              if(ch==='[') {
                state.scopes.push("[");
              }
          
              if(ch==='{') {
                state.scopes.push("{");
              }
          
              var scope=cur_scope(state);
          
              if(scope==='[' && ch===']') {
                state.scopes.pop();
                state.leaving_expr=true;
              }
          
              if(scope==='{' && ch==='}') {
                state.scopes.pop();
                state.leaving_expr=true;
              }
          
              if(ch===')') {
                state.leaving_expr = true;
              }
          
              var match;
              if(!in_array(state) && (match=stream.match(openers, false))) {
                state.scopes.push(match);
              }
          
              if(!in_array(state) && stream.match(closers, false)) {
                state.scopes.pop();
              }
          
              if(in_array(state)) {
                if(stream.match(/^end/)) {
                  return 'number';
                }
          
              }
          
              if(stream.match(/^=>/)) {
                return 'operator';
              }
          
          
              // Handle Number Literals
              if (stream.match(/^[0-9\.]/, false)) {
                var imMatcher = RegExp(/^im\b/);
                var floatLiteral = false;
                // Floats
                if (stream.match(/^\d*\.(?!\.)\d+([ef][\+\-]?\d+)?/i)) { floatLiteral = true; }
                if (stream.match(/^\d+\.(?!\.)\d*/)) { floatLiteral = true; }
                if (stream.match(/^\.\d+/)) { floatLiteral = true; }
                if (floatLiteral) {
                    // Float literals may be "imaginary"
                    stream.match(imMatcher);
                    state.leaving_expr = true;
                    return 'number';
                }
                // Integers
                var intLiteral = false;
                // Hex
                if (stream.match(/^0x[0-9a-f]+/i)) { intLiteral = true; }
                // Binary
                if (stream.match(/^0b[01]+/i)) { intLiteral = true; }
                // Octal
                if (stream.match(/^0o[0-7]+/i)) { intLiteral = true; }
                // Decimal
                if (stream.match(/^[1-9]\d*(e[\+\-]?\d+)?/)) {
                    intLiteral = true;
                }
                // Zero by itself with no other piece of number.
                if (stream.match(/^0(?![\dx])/i)) { intLiteral = true; }
                if (intLiteral) {
                    // Integer literals may be "long"
                    stream.match(imMatcher);
                    state.leaving_expr = true;
                    return 'number';
                }
              }
          
              if(stream.match(/^(::)|(<:)/)) {
                return 'operator';
              }
          
              // Handle symbols
              if(!leaving_expr && stream.match(symbol)) {
                return 'string';
              }
          
              // Handle operators and Delimiters
              if (stream.match(operators)) {
                return 'operator';
              }
          
          
              // Handle Strings
              if (stream.match(stringPrefixes)) {
                state.tokenize = tokenStringFactory(stream.current());
                return state.tokenize(stream, state);
              }
          
              if (stream.match(macro)) {
                return 'meta';
              }
          
          
              if (stream.match(delimiters)) {
                return null;
              }
          
              if (stream.match(keywords)) {
                return 'keyword';
              }
          
              if (stream.match(builtins)) {
                return 'builtin';
              }
          
          
              if (stream.match(identifiers)) {
                state.leaving_expr=true;
                return 'variable';
              }
              // Handle non-detected items
              stream.next();
              return ERRORCLASS;
            }
          
            function tokenStringFactory(delimiter) {
              while ('rub'.indexOf(delimiter.charAt(0).toLowerCase()) >= 0) {
                delimiter = delimiter.substr(1);
              }
              var singleline = delimiter.length == 1;
              var OUTCLASS = 'string';
          
              function tokenString(stream, state) {
                while (!stream.eol()) {
                  stream.eatWhile(/[^'"\\]/);
                  if (stream.eat('\\')) {
                      stream.next();
                      if (singleline && stream.eol()) {
                        return OUTCLASS;
                      }
                  } else if (stream.match(delimiter)) {
                      state.tokenize = tokenBase;
                      return OUTCLASS;
                  } else {
                      stream.eat(/['"]/);
                  }
                }
                if (singleline) {
                  if (parserConf.singleLineStringErrors) {
                      return ERRORCLASS;
                  } else {
                      state.tokenize = tokenBase;
                  }
                }
                return OUTCLASS;
              }
              tokenString.isString = true;
              return tokenString;
            }
          
            function tokenLexer(stream, state) {
              var style = state.tokenize(stream, state);
              var current = stream.current();
          
              // Handle '.' connected identifiers
              if (current === '.') {
                style = stream.match(identifiers, false) ? null : ERRORCLASS;
                if (style === null && state.lastStyle === 'meta') {
                    // Apply 'meta' style to '.' connected identifiers when
                    // appropriate.
                  style = 'meta';
                }
                return style;
              }
          
              return style;
            }
          
            var external = {
              startState: function() {
                return {
                  tokenize: tokenBase,
                  scopes: [],
                  leaving_expr: false
                };
              },
          
              token: function(stream, state) {
                var style = tokenLexer(stream, state);
                state.lastStyle = style;
                return style;
              },
          
              indent: function(state, textAfter) {
                var delta = 0;
                if(textAfter=="end" || textAfter=="]" || textAfter=="}" || textAfter=="else" || textAfter=="elseif" || textAfter=="catch" || textAfter=="finally") {
                  delta = -1;
                }
                return (state.scopes.length + delta) * 4;
              },
          
              lineComment: "#",
              fold: "indent",
              electricChars: "edlsifyh]}"
            };
            return external;
          });
          
          
          CodeMirror.defineMIME("text/x-julia", "julia");
          
          });
          
      • livescript
        • index.html
          <!doctype html>
          
          <title>CodeMirror: LiveScript mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <link rel="stylesheet" href="../../theme/solarized.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="livescript.js"></script>
          <style>.CodeMirror {font-size: 80%;border-top: 1px solid silver; border-bottom: 1px solid silver;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">LiveScript</a>
            </ul>
          </div>
          
          <article>
          <h2>LiveScript mode</h2>
          <form><textarea id="code" name="code">
          # LiveScript mode for CodeMirror
          # The following script, prelude.ls, is used to
          # demonstrate LiveScript mode for CodeMirror.
          #   https://github.com/gkz/prelude-ls
          
          export objToFunc = objToFunc = (obj) ->
            (key) -> obj[key]
          
          export each = (f, xs) -->
            if typeof! xs is \Object
              for , x of xs then f x
            else
              for x in xs then f x
            xs
          
          export map = (f, xs) -->
            f = objToFunc f if typeof! f isnt \Function
            type = typeof! xs
            if type is \Object
              {[key, f x] for key, x of xs}
            else
              result = [f x for x in xs]
              if type is \String then result * '' else result
          
          export filter = (f, xs) -->
            f = objToFunc f if typeof! f isnt \Function
            type = typeof! xs
            if type is \Object
              {[key, x] for key, x of xs when f x}
            else
              result = [x for x in xs when f x]
              if type is \String then result * '' else result
          
          export reject = (f, xs) -->
            f = objToFunc f if typeof! f isnt \Function
            type = typeof! xs
            if type is \Object
              {[key, x] for key, x of xs when not f x}
            else
              result = [x for x in xs when not f x]
              if type is \String then result * '' else result
          
          export partition = (f, xs) -->
            f = objToFunc f if typeof! f isnt \Function
            type = typeof! xs
            if type is \Object
              passed = {}
              failed = {}
              for key, x of xs
                (if f x then passed else failed)[key] = x
            else
              passed = []
              failed = []
              for x in xs
                (if f x then passed else failed)push x
              if type is \String
                passed *= ''
                failed *= ''
            [passed, failed]
          
          export find = (f, xs) -->
            f = objToFunc f if typeof! f isnt \Function
            if typeof! xs is \Object
              for , x of xs when f x then return x
            else
              for x in xs when f x then return x
            void
          
          export head = export first = (xs) ->
            return void if not xs.length
            xs.0
          
          export tail = (xs) ->
            return void if not xs.length
            xs.slice 1
          
          export last = (xs) ->
            return void if not xs.length
            xs[*-1]
          
          export initial = (xs) ->
            return void if not xs.length
            xs.slice 0 xs.length - 1
          
          export empty = (xs) ->
            if typeof! xs is \Object
              for x of xs then return false
              return yes
            not xs.length
          
          export values = (obj) ->
            [x for , x of obj]
          
          export keys = (obj) ->
            [x for x of obj]
          
          export len = (xs) ->
            xs = values xs if typeof! xs is \Object
            xs.length
          
          export cons = (x, xs) -->
            if typeof! xs is \String then x + xs else [x] ++ xs
          
          export append = (xs, ys) -->
            if typeof! ys is \String then xs + ys else xs ++ ys
          
          export join = (sep, xs) -->
            xs = values xs if typeof! xs is \Object
            xs.join sep
          
          export reverse = (xs) ->
            if typeof! xs is \String
            then (xs / '')reverse! * ''
            else xs.slice!reverse!
          
          export fold = export foldl = (f, memo, xs) -->
            if typeof! xs is \Object
              for , x of xs then memo = f memo, x
            else
              for x in xs then memo = f memo, x
            memo
          
          export fold1 = export foldl1 = (f, xs) --> fold f, xs.0, xs.slice 1
          
          export foldr = (f, memo, xs) --> fold f, memo, xs.slice!reverse!
          
          export foldr1 = (f, xs) -->
            xs.=slice!reverse!
            fold f, xs.0, xs.slice 1
          
          export unfoldr = export unfold = (f, b) -->
            if (f b)?
              [that.0] ++ unfoldr f, that.1
            else
              []
          
          export andList = (xs) ->
            for x in xs when not x
              return false
            true
          
          export orList = (xs) ->
            for x in xs when x
              return true
            false
          
          export any = (f, xs) -->
            f = objToFunc f if typeof! f isnt \Function
            for x in xs when f x
              return yes
            no
          
          export all = (f, xs) -->
            f = objToFunc f if typeof! f isnt \Function
            for x in xs when not f x
              return no
            yes
          
          export unique = (xs) ->
            result = []
            if typeof! xs is \Object
              for , x of xs when x not in result then result.push x
            else
              for x   in xs when x not in result then result.push x
            if typeof! xs is \String then result * '' else result
          
          export sort = (xs) ->
            xs.concat!sort (x, y) ->
              | x > y =>  1
              | x < y => -1
              | _     =>  0
          
          export sortBy = (f, xs) -->
            return [] unless xs.length
            xs.concat!sort f
          
          export compare = (f, x, y) -->
            | (f x) > (f y) =>  1
            | (f x) < (f y) => -1
            | otherwise     =>  0
          
          export sum = (xs) ->
            result = 0
            if typeof! xs is \Object
              for , x of xs then result += x
            else
              for x   in xs then result += x
            result
          
          export product = (xs) ->
            result = 1
            if typeof! xs is \Object
              for , x of xs then result *= x
            else
              for x   in xs then result *= x
            result
          
          export mean = export average = (xs) -> (sum xs) / len xs
          
          export concat = (xss) -> fold append, [], xss
          
          export concatMap = (f, xs) --> fold ((memo, x) -> append memo, f x), [], xs
          
          export listToObj = (xs) ->
            {[x.0, x.1] for x in xs}
          
          export maximum = (xs) -> fold1 (>?), xs
          
          export minimum = (xs) -> fold1 (<?), xs
          
          export scan = export scanl = (f, memo, xs) -->
            last = memo
            if typeof! xs is \Object
            then [memo] ++ [last = f last, x for , x of xs]
            else [memo] ++ [last = f last, x for x in xs]
          
          export scan1 = export scanl1 = (f, xs) --> scan f, xs.0, xs.slice 1
          
          export scanr = (f, memo, xs) -->
            xs.=slice!reverse!
            scan f, memo, xs .reverse!
          
          export scanr1 = (f, xs) -->
            xs.=slice!reverse!
            scan f, xs.0, xs.slice 1 .reverse!
          
          export replicate = (n, x) -->
            result = []
            i = 0
            while i < n, ++i then result.push x
            result
          
          export take = (n, xs) -->
            | n <= 0
              if typeof! xs is \String then '' else []
            | not xs.length => xs
            | otherwise     => xs.slice 0, n
          
          export drop = (n, xs) -->
            | n <= 0        => xs
            | not xs.length => xs
            | otherwise     => xs.slice n
          
          export splitAt = (n, xs) --> [(take n, xs), (drop n, xs)]
          
          export takeWhile = (p, xs) -->
            return xs if not xs.length
            p = objToFunc p if typeof! p isnt \Function
            result = []
            for x in xs
              break if not p x
              result.push x
            if typeof! xs is \String then result * '' else result
          
          export dropWhile = (p, xs) -->
            return xs if not xs.length
            p = objToFunc p if typeof! p isnt \Function
            i = 0
            for x in xs
              break if not p x
              ++i
            drop i, xs
          
          export span = (p, xs) --> [(takeWhile p, xs), (dropWhile p, xs)]
          
          export breakIt = (p, xs) --> span (not) << p, xs
          
          export zip = (xs, ys) -->
            result = []
            for zs, i in [xs, ys]
              for z, j in zs
                result.push [] if i is 0
                result[j]?push z
            result
          
          export zipWith = (f,xs, ys) -->
            f = objToFunc f if typeof! f isnt \Function
            if not xs.length or not ys.length
              []
            else
              [f.apply this, zs for zs in zip.call this, xs, ys]
          
          export zipAll = (...xss) ->
            result = []
            for xs, i in xss
              for x, j in xs
                result.push [] if i is 0
                result[j]?push x
            result
          
          export zipAllWith = (f, ...xss) ->
            f = objToFunc f if typeof! f isnt \Function
            if not xss.0.length or not xss.1.length
              []
            else
              [f.apply this, xs for xs in zipAll.apply this, xss]
          
          export compose = (...funcs) ->
            ->
              args = arguments
              for f in funcs
                args = [f.apply this, args]
              args.0
          
          export curry = (f) ->
            curry$ f # using util method curry$ from livescript
          
          export id = (x) -> x
          
          export flip = (f, x, y) --> f y, x
          
          export fix = (f) ->
            ( (g, x) -> -> f(g g) ...arguments ) do
              (g, x) -> -> f(g g) ...arguments
          
          export lines = (str) ->
            return [] if not str.length
            str / \\n
          
          export unlines = (strs) -> strs * \\n
          
          export words = (str) ->
            return [] if not str.length
            str / /[ ]+/
          
          export unwords = (strs) -> strs * ' '
          
          export max = (>?)
          
          export min = (<?)
          
          export negate = (x) -> -x
          
          export abs = Math.abs
          
          export signum = (x) ->
            | x < 0     => -1
            | x > 0     =>  1
            | otherwise =>  0
          
          export quot = (x, y) --> ~~(x / y)
          
          export rem = (%)
          
          export div = (x, y) --> Math.floor x / y
          
          export mod = (%%)
          
          export recip = (1 /)
          
          export pi = Math.PI
          
          export tau = pi * 2
          
          export exp = Math.exp
          
          export sqrt = Math.sqrt
          
          # changed from log as log is a
          # common function for logging things
          export ln = Math.log
          
          export pow = (^)
          
          export sin = Math.sin
          
          export tan = Math.tan
          
          export cos = Math.cos
          
          export asin = Math.asin
          
          export acos = Math.acos
          
          export atan = Math.atan
          
          export atan2 = (x, y) --> Math.atan2 x, y
          
          # sinh
          # tanh
          # cosh
          # asinh
          # atanh
          # acosh
          
          export truncate = (x) -> ~~x
          
          export round = Math.round
          
          export ceiling = Math.ceil
          
          export floor = Math.floor
          
          export isItNaN = (x) -> x isnt x
          
          export even = (x) -> x % 2 == 0
          
          export odd = (x) -> x % 2 != 0
          
          export gcd = (x, y) -->
            x = Math.abs x
            y = Math.abs y
            until y is 0
              z = x % y
              x = y
              y = z
            x
          
          export lcm = (x, y) -->
            Math.abs Math.floor (x / (gcd x, y) * y)
          
          # meta
          export installPrelude = !(target) ->
            unless target.prelude?isInstalled
              target <<< out$ # using out$ generated by livescript
              target <<< target.prelude.isInstalled = true
          
          export prelude = out$
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  theme: "solarized light",
                  lineNumbers: true
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-livescript</code>.</p>
          
              <p>The LiveScript mode was written by Kenneth Bentley.</p>
          
            </article>
          
        • livescript.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          /**
           * Link to the project's GitHub page:
           * https://github.com/duralog/CodeMirror
           */
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineMode('livescript', function(){
              var tokenBase = function(stream, state) {
                var next_rule = state.next || "start";
                if (next_rule) {
                  state.next = state.next;
                  var nr = Rules[next_rule];
                  if (nr.splice) {
                    for (var i$ = 0; i$ < nr.length; ++i$) {
                      var r = nr[i$];
                      if (r.regex && stream.match(r.regex)) {
                        state.next = r.next || state.next;
                        return r.token;
                      }
                    }
                    stream.next();
                    return 'error';
                  }
                  if (stream.match(r = Rules[next_rule])) {
                    if (r.regex && stream.match(r.regex)) {
                      state.next = r.next;
                      return r.token;
                    } else {
                      stream.next();
                      return 'error';
                    }
                  }
                }
                stream.next();
                return 'error';
              };
              var external = {
                startState: function(){
                  return {
                    next: 'start',
                    lastToken: null
                  };
                },
                token: function(stream, state){
                  while (stream.pos == stream.start)
                    var style = tokenBase(stream, state);
                  state.lastToken = {
                    style: style,
                    indent: stream.indentation(),
                    content: stream.current()
                  };
                  return style.replace(/\./g, ' ');
                },
                indent: function(state){
                  var indentation = state.lastToken.indent;
                  if (state.lastToken.content.match(indenter)) {
                    indentation += 2;
                  }
                  return indentation;
                }
              };
              return external;
            });
          
            var identifier = '(?![\\d\\s])[$\\w\\xAA-\\uFFDC](?:(?!\\s)[$\\w\\xAA-\\uFFDC]|-[A-Za-z])*';
            var indenter = RegExp('(?:[({[=:]|[-~]>|\\b(?:e(?:lse|xport)|d(?:o|efault)|t(?:ry|hen)|finally|import(?:\\s*all)?|const|var|let|new|catch(?:\\s*' + identifier + ')?))\\s*$');
            var keywordend = '(?![$\\w]|-[A-Za-z]|\\s*:(?![:=]))';
            var stringfill = {
              token: 'string',
              regex: '.+'
            };
            var Rules = {
              start: [
                {
                  token: 'comment.doc',
                  regex: '/\\*',
                  next: 'comment'
                }, {
                  token: 'comment',
                  regex: '#.*'
                }, {
                  token: 'keyword',
                  regex: '(?:t(?:h(?:is|row|en)|ry|ypeof!?)|c(?:on(?:tinue|st)|a(?:se|tch)|lass)|i(?:n(?:stanceof)?|mp(?:ort(?:\\s+all)?|lements)|[fs])|d(?:e(?:fault|lete|bugger)|o)|f(?:or(?:\\s+own)?|inally|unction)|s(?:uper|witch)|e(?:lse|x(?:tends|port)|val)|a(?:nd|rguments)|n(?:ew|ot)|un(?:less|til)|w(?:hile|ith)|o[fr]|return|break|let|var|loop)' + keywordend
                }, {
                  token: 'constant.language',
                  regex: '(?:true|false|yes|no|on|off|null|void|undefined)' + keywordend
                }, {
                  token: 'invalid.illegal',
                  regex: '(?:p(?:ackage|r(?:ivate|otected)|ublic)|i(?:mplements|nterface)|enum|static|yield)' + keywordend
                }, {
                  token: 'language.support.class',
                  regex: '(?:R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|Array|Boolean|Date|Function|Number|Object|TypeError|URIError)' + keywordend
                }, {
                  token: 'language.support.function',
                  regex: '(?:is(?:NaN|Finite)|parse(?:Int|Float)|Math|JSON|(?:en|de)codeURI(?:Component)?)' + keywordend
                }, {
                  token: 'variable.language',
                  regex: '(?:t(?:hat|il|o)|f(?:rom|allthrough)|it|by|e)' + keywordend
                }, {
                  token: 'identifier',
                  regex: identifier + '\\s*:(?![:=])'
                }, {
                  token: 'variable',
                  regex: identifier
                }, {
                  token: 'keyword.operator',
                  regex: '(?:\\.{3}|\\s+\\?)'
                }, {
                  token: 'keyword.variable',
                  regex: '(?:@+|::|\\.\\.)',
                  next: 'key'
                }, {
                  token: 'keyword.operator',
                  regex: '\\.\\s*',
                  next: 'key'
                }, {
                  token: 'string',
                  regex: '\\\\\\S[^\\s,;)}\\]]*'
                }, {
                  token: 'string.doc',
                  regex: '\'\'\'',
                  next: 'qdoc'
                }, {
                  token: 'string.doc',
                  regex: '"""',
                  next: 'qqdoc'
                }, {
                  token: 'string',
                  regex: '\'',
                  next: 'qstring'
                }, {
                  token: 'string',
                  regex: '"',
                  next: 'qqstring'
                }, {
                  token: 'string',
                  regex: '`',
                  next: 'js'
                }, {
                  token: 'string',
                  regex: '<\\[',
                  next: 'words'
                }, {
                  token: 'string.regex',
                  regex: '//',
                  next: 'heregex'
                }, {
                  token: 'string.regex',
                  regex: '\\/(?:[^[\\/\\n\\\\]*(?:(?:\\\\.|\\[[^\\]\\n\\\\]*(?:\\\\.[^\\]\\n\\\\]*)*\\])[^[\\/\\n\\\\]*)*)\\/[gimy$]{0,4}',
                  next: 'key'
                }, {
                  token: 'constant.numeric',
                  regex: '(?:0x[\\da-fA-F][\\da-fA-F_]*|(?:[2-9]|[12]\\d|3[0-6])r[\\da-zA-Z][\\da-zA-Z_]*|(?:\\d[\\d_]*(?:\\.\\d[\\d_]*)?|\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[\\w$]*)'
                }, {
                  token: 'lparen',
                  regex: '[({[]'
                }, {
                  token: 'rparen',
                  regex: '[)}\\]]',
                  next: 'key'
                }, {
                  token: 'keyword.operator',
                  regex: '\\S+'
                }, {
                  token: 'text',
                  regex: '\\s+'
                }
              ],
              heregex: [
                {
                  token: 'string.regex',
                  regex: '.*?//[gimy$?]{0,4}',
                  next: 'start'
                }, {
                  token: 'string.regex',
                  regex: '\\s*#{'
                }, {
                  token: 'comment.regex',
                  regex: '\\s+(?:#.*)?'
                }, {
                  token: 'string.regex',
                  regex: '\\S+'
                }
              ],
              key: [
                {
                  token: 'keyword.operator',
                  regex: '[.?@!]+'
                }, {
                  token: 'identifier',
                  regex: identifier,
                  next: 'start'
                }, {
                  token: 'text',
                  regex: '',
                  next: 'start'
                }
              ],
              comment: [
                {
                  token: 'comment.doc',
                  regex: '.*?\\*/',
                  next: 'start'
                }, {
                  token: 'comment.doc',
                  regex: '.+'
                }
              ],
              qdoc: [
                {
                  token: 'string',
                  regex: ".*?'''",
                  next: 'key'
                }, stringfill
              ],
              qqdoc: [
                {
                  token: 'string',
                  regex: '.*?"""',
                  next: 'key'
                }, stringfill
              ],
              qstring: [
                {
                  token: 'string',
                  regex: '[^\\\\\']*(?:\\\\.[^\\\\\']*)*\'',
                  next: 'key'
                }, stringfill
              ],
              qqstring: [
                {
                  token: 'string',
                  regex: '[^\\\\"]*(?:\\\\.[^\\\\"]*)*"',
                  next: 'key'
                }, stringfill
              ],
              js: [
                {
                  token: 'string',
                  regex: '[^\\\\`]*(?:\\\\.[^\\\\`]*)*`',
                  next: 'key'
                }, stringfill
              ],
              words: [
                {
                  token: 'string',
                  regex: '.*?\\]>',
                  next: 'key'
                }, stringfill
              ]
            };
            for (var idx in Rules) {
              var r = Rules[idx];
              if (r.splice) {
                for (var i = 0, len = r.length; i < len; ++i) {
                  var rr = r[i];
                  if (typeof rr.regex === 'string') {
                    Rules[idx][i].regex = new RegExp('^' + rr.regex);
                  }
                }
              } else if (typeof rr.regex === 'string') {
                Rules[idx].regex = new RegExp('^' + r.regex);
              }
            }
          
            CodeMirror.defineMIME('text/x-livescript', 'livescript');
          
          });
          
      • lua
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Lua mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <link rel="stylesheet" href="../../theme/neat.css">
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="../../lib/codemirror.js"></script>
          <script src="lua.js"></script>
          <style>.CodeMirror {border: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Lua</a>
            </ul>
          </div>
          
          <article>
          <h2>Lua mode</h2>
          <form><textarea id="code" name="code">
          --[[
          example useless code to show lua syntax highlighting
          this is multiline comment
          ]]
          
          function blahblahblah(x)
          
            local table = {
              "asd" = 123,
              "x" = 0.34,  
            }
            if x ~= 3 then
              print( x )
            elseif x == "string"
              my_custom_function( 0x34 )
            else
              unknown_function( "some string" )
            end
          
            --single line comment
            
          end
          
          function blablabla3()
          
            for k,v in ipairs( table ) do
              --abcde..
              y=[=[
            x=[[
                x is a multi line string
             ]]
            but its definition is iside a highest level string!
            ]=]
              print(" \"\" ")
          
              s = math.sin( x )
            end
          
          end
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  matchBrackets: true,
                  theme: "neat"
                });
              </script>
          
              <p>Loosely based on Franciszek
              Wawrzak's <a href="http://codemirror.net/1/contrib/lua">CodeMirror
              1 mode</a>. One configuration parameter is
              supported, <code>specials</code>, to which you can provide an
              array of strings to have those identifiers highlighted with
              the <code>lua-special</code> style.</p>
              <p><strong>MIME types defined:</strong> <code>text/x-lua</code>.</p>
          
            </article>
          
        • lua.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // LUA mode. Ported to CodeMirror 2 from Franciszek Wawrzak's
          // CodeMirror 1 mode.
          // highlights keywords, strings, comments (no leveling supported! ("[==[")), tokens, basic indenting
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("lua", function(config, parserConfig) {
            var indentUnit = config.indentUnit;
          
            function prefixRE(words) {
              return new RegExp("^(?:" + words.join("|") + ")", "i");
            }
            function wordRE(words) {
              return new RegExp("^(?:" + words.join("|") + ")$", "i");
            }
            var specials = wordRE(parserConfig.specials || []);
          
            // long list of standard functions from lua manual
            var builtins = wordRE([
              "_G","_VERSION","assert","collectgarbage","dofile","error","getfenv","getmetatable","ipairs","load",
              "loadfile","loadstring","module","next","pairs","pcall","print","rawequal","rawget","rawset","require",
              "select","setfenv","setmetatable","tonumber","tostring","type","unpack","xpcall",
          
              "coroutine.create","coroutine.resume","coroutine.running","coroutine.status","coroutine.wrap","coroutine.yield",
          
              "debug.debug","debug.getfenv","debug.gethook","debug.getinfo","debug.getlocal","debug.getmetatable",
              "debug.getregistry","debug.getupvalue","debug.setfenv","debug.sethook","debug.setlocal","debug.setmetatable",
              "debug.setupvalue","debug.traceback",
          
              "close","flush","lines","read","seek","setvbuf","write",
          
              "io.close","io.flush","io.input","io.lines","io.open","io.output","io.popen","io.read","io.stderr","io.stdin",
              "io.stdout","io.tmpfile","io.type","io.write",
          
              "math.abs","math.acos","math.asin","math.atan","math.atan2","math.ceil","math.cos","math.cosh","math.deg",
              "math.exp","math.floor","math.fmod","math.frexp","math.huge","math.ldexp","math.log","math.log10","math.max",
              "math.min","math.modf","math.pi","math.pow","math.rad","math.random","math.randomseed","math.sin","math.sinh",
              "math.sqrt","math.tan","math.tanh",
          
              "os.clock","os.date","os.difftime","os.execute","os.exit","os.getenv","os.remove","os.rename","os.setlocale",
              "os.time","os.tmpname",
          
              "package.cpath","package.loaded","package.loaders","package.loadlib","package.path","package.preload",
              "package.seeall",
          
              "string.byte","string.char","string.dump","string.find","string.format","string.gmatch","string.gsub",
              "string.len","string.lower","string.match","string.rep","string.reverse","string.sub","string.upper",
          
              "table.concat","table.insert","table.maxn","table.remove","table.sort"
            ]);
            var keywords = wordRE(["and","break","elseif","false","nil","not","or","return",
                                   "true","function", "end", "if", "then", "else", "do",
                                   "while", "repeat", "until", "for", "in", "local" ]);
          
            var indentTokens = wordRE(["function", "if","repeat","do", "\\(", "{"]);
            var dedentTokens = wordRE(["end", "until", "\\)", "}"]);
            var dedentPartial = prefixRE(["end", "until", "\\)", "}", "else", "elseif"]);
          
            function readBracket(stream) {
              var level = 0;
              while (stream.eat("=")) ++level;
              stream.eat("[");
              return level;
            }
          
            function normal(stream, state) {
              var ch = stream.next();
              if (ch == "-" && stream.eat("-")) {
                if (stream.eat("[") && stream.eat("["))
                  return (state.cur = bracketed(readBracket(stream), "comment"))(stream, state);
                stream.skipToEnd();
                return "comment";
              }
              if (ch == "\"" || ch == "'")
                return (state.cur = string(ch))(stream, state);
              if (ch == "[" && /[\[=]/.test(stream.peek()))
                return (state.cur = bracketed(readBracket(stream), "string"))(stream, state);
              if (/\d/.test(ch)) {
                stream.eatWhile(/[\w.%]/);
                return "number";
              }
              if (/[\w_]/.test(ch)) {
                stream.eatWhile(/[\w\\\-_.]/);
                return "variable";
              }
              return null;
            }
          
            function bracketed(level, style) {
              return function(stream, state) {
                var curlev = null, ch;
                while ((ch = stream.next()) != null) {
                  if (curlev == null) {if (ch == "]") curlev = 0;}
                  else if (ch == "=") ++curlev;
                  else if (ch == "]" && curlev == level) { state.cur = normal; break; }
                  else curlev = null;
                }
                return style;
              };
            }
          
            function string(quote) {
              return function(stream, state) {
                var escaped = false, ch;
                while ((ch = stream.next()) != null) {
                  if (ch == quote && !escaped) break;
                  escaped = !escaped && ch == "\\";
                }
                if (!escaped) state.cur = normal;
                return "string";
              };
            }
          
            return {
              startState: function(basecol) {
                return {basecol: basecol || 0, indentDepth: 0, cur: normal};
              },
          
              token: function(stream, state) {
                if (stream.eatSpace()) return null;
                var style = state.cur(stream, state);
                var word = stream.current();
                if (style == "variable") {
                  if (keywords.test(word)) style = "keyword";
                  else if (builtins.test(word)) style = "builtin";
                  else if (specials.test(word)) style = "variable-2";
                }
                if ((style != "comment") && (style != "string")){
                  if (indentTokens.test(word)) ++state.indentDepth;
                  else if (dedentTokens.test(word)) --state.indentDepth;
                }
                return style;
              },
          
              indent: function(state, textAfter) {
                var closing = dedentPartial.test(textAfter);
                return state.basecol + indentUnit * (state.indentDepth - (closing ? 1 : 0));
              },
          
              lineComment: "--",
              blockCommentStart: "--[[",
              blockCommentEnd: "]]"
            };
          });
          
          CodeMirror.defineMIME("text/x-lua", "lua");
          
          });
          
      • markdown
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Markdown mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/continuelist.js"></script>
          <script src="../xml/xml.js"></script>
          <script src="markdown.js"></script>
          <style type="text/css">
                .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}
                .cm-s-default .cm-trailing-space-a:before,
                .cm-s-default .cm-trailing-space-b:before {position: absolute; content: "\00B7"; color: #777;}
                .cm-s-default .cm-trailing-space-new-line:before {position: absolute; content: "\21B5"; color: #777;}
              </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Markdown</a>
            </ul>
          </div>
          
          <article>
          <h2>Markdown mode</h2>
          <form><textarea id="code" name="code">
          Markdown: Basics
          ================
          
          &lt;ul id="ProjectSubmenu"&gt;
              &lt;li&gt;&lt;a href="/projects/markdown/" title="Markdown Project Page"&gt;Main&lt;/a&gt;&lt;/li&gt;
              &lt;li&gt;&lt;a class="selected" title="Markdown Basics"&gt;Basics&lt;/a&gt;&lt;/li&gt;
              &lt;li&gt;&lt;a href="/projects/markdown/syntax" title="Markdown Syntax Documentation"&gt;Syntax&lt;/a&gt;&lt;/li&gt;
              &lt;li&gt;&lt;a href="/projects/markdown/license" title="Pricing and License Information"&gt;License&lt;/a&gt;&lt;/li&gt;
              &lt;li&gt;&lt;a href="/projects/markdown/dingus" title="Online Markdown Web Form"&gt;Dingus&lt;/a&gt;&lt;/li&gt;
          &lt;/ul&gt;
          
          
          Getting the Gist of Markdown's Formatting Syntax
          ------------------------------------------------
          
          This page offers a brief overview of what it's like to use Markdown.
          The [syntax page] [s] provides complete, detailed documentation for
          every feature, but Markdown should be very easy to pick up simply by
          looking at a few examples of it in action. The examples on this page
          are written in a before/after style, showing example syntax and the
          HTML output produced by Markdown.
          
          It's also helpful to simply try Markdown out; the [Dingus] [d] is a
          web application that allows you type your own Markdown-formatted text
          and translate it to XHTML.
          
          **Note:** This document is itself written using Markdown; you
          can [see the source for it by adding '.text' to the URL] [src].
          
            [s]: /projects/markdown/syntax  "Markdown Syntax"
            [d]: /projects/markdown/dingus  "Markdown Dingus"
            [src]: /projects/markdown/basics.text
          
          
          ## Paragraphs, Headers, Blockquotes ##
          
          A paragraph is simply one or more consecutive lines of text, separated
          by one or more blank lines. (A blank line is any line that looks like
          a blank line -- a line containing nothing but spaces or tabs is
          considered blank.) Normal paragraphs should not be indented with
          spaces or tabs.
          
          Markdown offers two styles of headers: *Setext* and *atx*.
          Setext-style headers for `&lt;h1&gt;` and `&lt;h2&gt;` are created by
          "underlining" with equal signs (`=`) and hyphens (`-`), respectively.
          To create an atx-style header, you put 1-6 hash marks (`#`) at the
          beginning of the line -- the number of hashes equals the resulting
          HTML header level.
          
          Blockquotes are indicated using email-style '`&gt;`' angle brackets.
          
          Markdown:
          
              A First Level Header
              ====================
              
              A Second Level Header
              ---------------------
          
              Now is the time for all good men to come to
              the aid of their country. This is just a
              regular paragraph.
          
              The quick brown fox jumped over the lazy
              dog's back.
              
              ### Header 3
          
              &gt; This is a blockquote.
              &gt; 
              &gt; This is the second paragraph in the blockquote.
              &gt;
              &gt; ## This is an H2 in a blockquote
          
          
          Output:
          
              &lt;h1&gt;A First Level Header&lt;/h1&gt;
              
              &lt;h2&gt;A Second Level Header&lt;/h2&gt;
              
              &lt;p&gt;Now is the time for all good men to come to
              the aid of their country. This is just a
              regular paragraph.&lt;/p&gt;
              
              &lt;p&gt;The quick brown fox jumped over the lazy
              dog's back.&lt;/p&gt;
              
              &lt;h3&gt;Header 3&lt;/h3&gt;
              
              &lt;blockquote&gt;
                  &lt;p&gt;This is a blockquote.&lt;/p&gt;
                  
                  &lt;p&gt;This is the second paragraph in the blockquote.&lt;/p&gt;
                  
                  &lt;h2&gt;This is an H2 in a blockquote&lt;/h2&gt;
              &lt;/blockquote&gt;
          
          
          
          ### Phrase Emphasis ###
          
          Markdown uses asterisks and underscores to indicate spans of emphasis.
          
          Markdown:
          
              Some of these words *are emphasized*.
              Some of these words _are emphasized also_.
              
              Use two asterisks for **strong emphasis**.
              Or, if you prefer, __use two underscores instead__.
          
          Output:
          
              &lt;p&gt;Some of these words &lt;em&gt;are emphasized&lt;/em&gt;.
              Some of these words &lt;em&gt;are emphasized also&lt;/em&gt;.&lt;/p&gt;
              
              &lt;p&gt;Use two asterisks for &lt;strong&gt;strong emphasis&lt;/strong&gt;.
              Or, if you prefer, &lt;strong&gt;use two underscores instead&lt;/strong&gt;.&lt;/p&gt;
             
          
          
          ## Lists ##
          
          Unordered (bulleted) lists use asterisks, pluses, and hyphens (`*`,
          `+`, and `-`) as list markers. These three markers are
          interchangable; this:
          
              *   Candy.
              *   Gum.
              *   Booze.
          
          this:
          
              +   Candy.
              +   Gum.
              +   Booze.
          
          and this:
          
              -   Candy.
              -   Gum.
              -   Booze.
          
          all produce the same output:
          
              &lt;ul&gt;
              &lt;li&gt;Candy.&lt;/li&gt;
              &lt;li&gt;Gum.&lt;/li&gt;
              &lt;li&gt;Booze.&lt;/li&gt;
              &lt;/ul&gt;
          
          Ordered (numbered) lists use regular numbers, followed by periods, as
          list markers:
          
              1.  Red
              2.  Green
              3.  Blue
          
          Output:
          
              &lt;ol&gt;
              &lt;li&gt;Red&lt;/li&gt;
              &lt;li&gt;Green&lt;/li&gt;
              &lt;li&gt;Blue&lt;/li&gt;
              &lt;/ol&gt;
          
          If you put blank lines between items, you'll get `&lt;p&gt;` tags for the
          list item text. You can create multi-paragraph list items by indenting
          the paragraphs by 4 spaces or 1 tab:
          
              *   A list item.
              
                  With multiple paragraphs.
          
              *   Another item in the list.
          
          Output:
          
              &lt;ul&gt;
              &lt;li&gt;&lt;p&gt;A list item.&lt;/p&gt;
              &lt;p&gt;With multiple paragraphs.&lt;/p&gt;&lt;/li&gt;
              &lt;li&gt;&lt;p&gt;Another item in the list.&lt;/p&gt;&lt;/li&gt;
              &lt;/ul&gt;
              
          
          
          ### Links ###
          
          Markdown supports two styles for creating links: *inline* and
          *reference*. With both styles, you use square brackets to delimit the
          text you want to turn into a link.
          
          Inline-style links use parentheses immediately after the link text.
          For example:
          
              This is an [example link](http://example.com/).
          
          Output:
          
              &lt;p&gt;This is an &lt;a href="http://example.com/"&gt;
              example link&lt;/a&gt;.&lt;/p&gt;
          
          Optionally, you may include a title attribute in the parentheses:
          
              This is an [example link](http://example.com/ "With a Title").
          
          Output:
          
              &lt;p&gt;This is an &lt;a href="http://example.com/" title="With a Title"&gt;
              example link&lt;/a&gt;.&lt;/p&gt;
          
          Reference-style links allow you to refer to your links by names, which
          you define elsewhere in your document:
          
              I get 10 times more traffic from [Google][1] than from
              [Yahoo][2] or [MSN][3].
          
              [1]: http://google.com/        "Google"
              [2]: http://search.yahoo.com/  "Yahoo Search"
              [3]: http://search.msn.com/    "MSN Search"
          
          Output:
          
              &lt;p&gt;I get 10 times more traffic from &lt;a href="http://google.com/"
              title="Google"&gt;Google&lt;/a&gt; than from &lt;a href="http://search.yahoo.com/"
              title="Yahoo Search"&gt;Yahoo&lt;/a&gt; or &lt;a href="http://search.msn.com/"
              title="MSN Search"&gt;MSN&lt;/a&gt;.&lt;/p&gt;
          
          The title attribute is optional. Link names may contain letters,
          numbers and spaces, but are *not* case sensitive:
          
              I start my morning with a cup of coffee and
              [The New York Times][NY Times].
          
              [ny times]: http://www.nytimes.com/
          
          Output:
          
              &lt;p&gt;I start my morning with a cup of coffee and
              &lt;a href="http://www.nytimes.com/"&gt;The New York Times&lt;/a&gt;.&lt;/p&gt;
          
          
          ### Images ###
          
          Image syntax is very much like link syntax.
          
          Inline (titles are optional):
          
              ![alt text](/path/to/img.jpg "Title")
          
          Reference-style:
          
              ![alt text][id]
          
              [id]: /path/to/img.jpg "Title"
          
          Both of the above examples produce the same output:
          
              &lt;img src="/path/to/img.jpg" alt="alt text" title="Title" /&gt;
          
          
          
          ### Code ###
          
          In a regular paragraph, you can create code span by wrapping text in
          backtick quotes. Any ampersands (`&amp;`) and angle brackets (`&lt;` or
          `&gt;`) will automatically be translated into HTML entities. This makes
          it easy to use Markdown to write about HTML example code:
          
              I strongly recommend against using any `&lt;blink&gt;` tags.
          
              I wish SmartyPants used named entities like `&amp;mdash;`
              instead of decimal-encoded entites like `&amp;#8212;`.
          
          Output:
          
              &lt;p&gt;I strongly recommend against using any
              &lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;
              
              &lt;p&gt;I wish SmartyPants used named entities like
              &lt;code&gt;&amp;amp;mdash;&lt;/code&gt; instead of decimal-encoded
              entites like &lt;code&gt;&amp;amp;#8212;&lt;/code&gt;.&lt;/p&gt;
          
          
          To specify an entire block of pre-formatted code, indent every line of
          the block by 4 spaces or 1 tab. Just like with code spans, `&amp;`, `&lt;`,
          and `&gt;` characters will be escaped automatically.
          
          Markdown:
          
              If you want your page to validate under XHTML 1.0 Strict,
              you've got to put paragraph tags in your blockquotes:
          
                  &lt;blockquote&gt;
                      &lt;p&gt;For example.&lt;/p&gt;
                  &lt;/blockquote&gt;
          
          Output:
          
              &lt;p&gt;If you want your page to validate under XHTML 1.0 Strict,
              you've got to put paragraph tags in your blockquotes:&lt;/p&gt;
              
              &lt;pre&gt;&lt;code&gt;&amp;lt;blockquote&amp;gt;
                  &amp;lt;p&amp;gt;For example.&amp;lt;/p&amp;gt;
              &amp;lt;/blockquote&amp;gt;
              &lt;/code&gt;&lt;/pre&gt;
          </textarea></form>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  mode: 'markdown',
                  lineNumbers: true,
                  theme: "default",
                  extraKeys: {"Enter": "newlineAndIndentContinueMarkdownList"}
                });
              </script>
          
              <p>You might want to use the <a href="../gfm/index.html">Github-Flavored Markdown mode</a> instead, which adds support for fenced code blocks and a few other things.</p>
          
              <p>Optionally depends on the XML mode for properly highlighted inline XML blocks.</p>
              
              <p><strong>MIME types defined:</strong> <code>text/x-markdown</code>.</p>
          
              <p><strong>Parsing/Highlighting Tests:</strong> <a href="../../test/index.html#markdown_*">normal</a>,  <a href="../../test/index.html#verbose,markdown_*">verbose</a>.</p>
          
            </article>
          
        • markdown.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("../xml/xml"), require("../meta"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "../xml/xml", "../meta"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("markdown", function(cmCfg, modeCfg) {
          
            var htmlFound = CodeMirror.modes.hasOwnProperty("xml");
            var htmlMode = CodeMirror.getMode(cmCfg, htmlFound ? {name: "xml", htmlMode: true} : "text/plain");
          
            function getMode(name) {
              if (CodeMirror.findModeByName) {
                var found = CodeMirror.findModeByName(name);
                if (found) name = found.mime || found.mimes[0];
              }
              var mode = CodeMirror.getMode(cmCfg, name);
              return mode.name == "null" ? null : mode;
            }
          
            // Should characters that affect highlighting be highlighted separate?
            // Does not include characters that will be output (such as `1.` and `-` for lists)
            if (modeCfg.highlightFormatting === undefined)
              modeCfg.highlightFormatting = false;
          
            // Maximum number of nested blockquotes. Set to 0 for infinite nesting.
            // Excess `>` will emit `error` token.
            if (modeCfg.maxBlockquoteDepth === undefined)
              modeCfg.maxBlockquoteDepth = 0;
          
            // Should underscores in words open/close em/strong?
            if (modeCfg.underscoresBreakWords === undefined)
              modeCfg.underscoresBreakWords = true;
          
            // Use `fencedCodeBlocks` to configure fenced code blocks. false to
            // disable, string to specify a precise regexp that the fence should
            // match, and true to allow three or more backticks or tildes (as
            // per CommonMark).
          
            // Turn on task lists? ("- [ ] " and "- [x] ")
            if (modeCfg.taskLists === undefined) modeCfg.taskLists = false;
          
            // Turn on strikethrough syntax
            if (modeCfg.strikethrough === undefined)
              modeCfg.strikethrough = false;
          
            // Allow token types to be overridden by user-provided token types.
            if (modeCfg.tokenTypeOverrides === undefined)
              modeCfg.tokenTypeOverrides = {};
          
            var codeDepth = 0;
          
            var tokenTypes = {
              header: "header",
              code: "comment",
              quote: "quote",
              list1: "variable-2",
              list2: "variable-3",
              list3: "keyword",
              hr: "hr",
              image: "tag",
              formatting: "formatting",
              linkInline: "link",
              linkEmail: "link",
              linkText: "link",
              linkHref: "string",
              em: "em",
              strong: "strong",
              strikethrough: "strikethrough"
            };
          
            for (var tokenType in tokenTypes) {
              if (tokenTypes.hasOwnProperty(tokenType) && modeCfg.tokenTypeOverrides[tokenType]) {
                tokenTypes[tokenType] = modeCfg.tokenTypeOverrides[tokenType];
              }
            }
          
            var hrRE = /^([*\-_])(?:\s*\1){2,}\s*$/
            ,   ulRE = /^[*\-+]\s+/
            ,   olRE = /^[0-9]+([.)])\s+/
            ,   taskListRE = /^\[(x| )\](?=\s)/ // Must follow ulRE or olRE
            ,   atxHeaderRE = modeCfg.allowAtxHeaderWithoutSpace ? /^(#+)/ : /^(#+)(?: |$)/
            ,   setextHeaderRE = /^ *(?:\={1,}|-{1,})\s*$/
            ,   textRE = /^[^#!\[\]*_\\<>` "'(~]+/
            ,   fencedCodeRE = new RegExp("^(" + (modeCfg.fencedCodeBlocks === true ? "~~~+|```+" : modeCfg.fencedCodeBlocks) +
                                          ")[ \\t]*([\\w+#]*)");
          
            function switchInline(stream, state, f) {
              state.f = state.inline = f;
              return f(stream, state);
            }
          
            function switchBlock(stream, state, f) {
              state.f = state.block = f;
              return f(stream, state);
            }
          
            function lineIsEmpty(line) {
              return !line || !/\S/.test(line.string)
            }
          
            // Blocks
          
            function blankLine(state) {
              // Reset linkTitle state
              state.linkTitle = false;
              // Reset EM state
              state.em = false;
              // Reset STRONG state
              state.strong = false;
              // Reset strikethrough state
              state.strikethrough = false;
              // Reset state.quote
              state.quote = 0;
              // Reset state.indentedCode
              state.indentedCode = false;
              if (!htmlFound && state.f == htmlBlock) {
                state.f = inlineNormal;
                state.block = blockNormal;
              }
              // Reset state.trailingSpace
              state.trailingSpace = 0;
              state.trailingSpaceNewLine = false;
              // Mark this line as blank
              state.prevLine = state.thisLine
              state.thisLine = null
              return null;
            }
          
            function blockNormal(stream, state) {
          
              var sol = stream.sol();
          
              var prevLineIsList = state.list !== false,
                  prevLineIsIndentedCode = state.indentedCode;
          
              state.indentedCode = false;
          
              if (prevLineIsList) {
                if (state.indentationDiff >= 0) { // Continued list
                  if (state.indentationDiff < 4) { // Only adjust indentation if *not* a code block
                    state.indentation -= state.indentationDiff;
                  }
                  state.list = null;
                } else if (state.indentation > 0) {
                  state.list = null;
                  state.listDepth = Math.floor(state.indentation / 4);
                } else { // No longer a list
                  state.list = false;
                  state.listDepth = 0;
                }
              }
          
              var match = null;
              if (state.indentationDiff >= 4) {
                stream.skipToEnd();
                if (prevLineIsIndentedCode || lineIsEmpty(state.prevLine)) {
                  state.indentation -= 4;
                  state.indentedCode = true;
                  return tokenTypes.code;
                } else {
                  return null;
                }
              } else if (stream.eatSpace()) {
                return null;
              } else if ((match = stream.match(atxHeaderRE)) && match[1].length <= 6) {
                state.header = match[1].length;
                if (modeCfg.highlightFormatting) state.formatting = "header";
                state.f = state.inline;
                return getType(state);
              } else if (!lineIsEmpty(state.prevLine) && !state.quote && !prevLineIsList &&
                         !prevLineIsIndentedCode && (match = stream.match(setextHeaderRE))) {
                state.header = match[0].charAt(0) == '=' ? 1 : 2;
                if (modeCfg.highlightFormatting) state.formatting = "header";
                state.f = state.inline;
                return getType(state);
              } else if (stream.eat('>')) {
                state.quote = sol ? 1 : state.quote + 1;
                if (modeCfg.highlightFormatting) state.formatting = "quote";
                stream.eatSpace();
                return getType(state);
              } else if (stream.peek() === '[') {
                return switchInline(stream, state, footnoteLink);
              } else if (stream.match(hrRE, true)) {
                state.hr = true;
                return tokenTypes.hr;
              } else if ((lineIsEmpty(state.prevLine) || prevLineIsList) && (stream.match(ulRE, false) || stream.match(olRE, false))) {
                var listType = null;
                if (stream.match(ulRE, true)) {
                  listType = 'ul';
                } else {
                  stream.match(olRE, true);
                  listType = 'ol';
                }
                state.indentation = stream.column() + stream.current().length;
                state.list = true;
                state.listDepth++;
                if (modeCfg.taskLists && stream.match(taskListRE, false)) {
                  state.taskList = true;
                }
                state.f = state.inline;
                if (modeCfg.highlightFormatting) state.formatting = ["list", "list-" + listType];
                return getType(state);
              } else if (modeCfg.fencedCodeBlocks && (match = stream.match(fencedCodeRE, true))) {
                state.fencedChars = match[1]
                // try switching mode
                state.localMode = getMode(match[2]);
                if (state.localMode) state.localState = state.localMode.startState();
                state.f = state.block = local;
                if (modeCfg.highlightFormatting) state.formatting = "code-block";
                state.code = true;
                return getType(state);
              }
          
              return switchInline(stream, state, state.inline);
            }
          
            function htmlBlock(stream, state) {
              var style = htmlMode.token(stream, state.htmlState);
              if ((htmlFound && state.htmlState.tagStart === null &&
                   (!state.htmlState.context && state.htmlState.tokenize.isInText)) ||
                  (state.md_inside && stream.current().indexOf(">") > -1)) {
                state.f = inlineNormal;
                state.block = blockNormal;
                state.htmlState = null;
              }
              return style;
            }
          
            function local(stream, state) {
              if (stream.sol() && state.fencedChars && stream.match(state.fencedChars, false)) {
                state.localMode = state.localState = null;
                state.f = state.block = leavingLocal;
                return null;
              } else if (state.localMode) {
                return state.localMode.token(stream, state.localState);
              } else {
                stream.skipToEnd();
                return tokenTypes.code;
              }
            }
          
            function leavingLocal(stream, state) {
              stream.match(state.fencedChars);
              state.block = blockNormal;
              state.f = inlineNormal;
              state.fencedChars = null;
              if (modeCfg.highlightFormatting) state.formatting = "code-block";
              state.code = true;
              var returnType = getType(state);
              state.code = false;
              return returnType;
            }
          
            // Inline
            function getType(state) {
              var styles = [];
          
              if (state.formatting) {
                styles.push(tokenTypes.formatting);
          
                if (typeof state.formatting === "string") state.formatting = [state.formatting];
          
                for (var i = 0; i < state.formatting.length; i++) {
                  styles.push(tokenTypes.formatting + "-" + state.formatting[i]);
          
                  if (state.formatting[i] === "header") {
                    styles.push(tokenTypes.formatting + "-" + state.formatting[i] + "-" + state.header);
                  }
          
                  // Add `formatting-quote` and `formatting-quote-#` for blockquotes
                  // Add `error` instead if the maximum blockquote nesting depth is passed
                  if (state.formatting[i] === "quote") {
                    if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) {
                      styles.push(tokenTypes.formatting + "-" + state.formatting[i] + "-" + state.quote);
                    } else {
                      styles.push("error");
                    }
                  }
                }
              }
          
              if (state.taskOpen) {
                styles.push("meta");
                return styles.length ? styles.join(' ') : null;
              }
              if (state.taskClosed) {
                styles.push("property");
                return styles.length ? styles.join(' ') : null;
              }
          
              if (state.linkHref) {
                styles.push(tokenTypes.linkHref, "url");
              } else { // Only apply inline styles to non-url text
                if (state.strong) { styles.push(tokenTypes.strong); }
                if (state.em) { styles.push(tokenTypes.em); }
                if (state.strikethrough) { styles.push(tokenTypes.strikethrough); }
                if (state.linkText) { styles.push(tokenTypes.linkText); }
                if (state.code) { styles.push(tokenTypes.code); }
              }
          
              if (state.header) { styles.push(tokenTypes.header, tokenTypes.header + "-" + state.header); }
          
              if (state.quote) {
                styles.push(tokenTypes.quote);
          
                // Add `quote-#` where the maximum for `#` is modeCfg.maxBlockquoteDepth
                if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) {
                  styles.push(tokenTypes.quote + "-" + state.quote);
                } else {
                  styles.push(tokenTypes.quote + "-" + modeCfg.maxBlockquoteDepth);
                }
              }
          
              if (state.list !== false) {
                var listMod = (state.listDepth - 1) % 3;
                if (!listMod) {
                  styles.push(tokenTypes.list1);
                } else if (listMod === 1) {
                  styles.push(tokenTypes.list2);
                } else {
                  styles.push(tokenTypes.list3);
                }
              }
          
              if (state.trailingSpaceNewLine) {
                styles.push("trailing-space-new-line");
              } else if (state.trailingSpace) {
                styles.push("trailing-space-" + (state.trailingSpace % 2 ? "a" : "b"));
              }
          
              return styles.length ? styles.join(' ') : null;
            }
          
            function handleText(stream, state) {
              if (stream.match(textRE, true)) {
                return getType(state);
              }
              return undefined;
            }
          
            function inlineNormal(stream, state) {
              var style = state.text(stream, state);
              if (typeof style !== 'undefined')
                return style;
          
              if (state.list) { // List marker (*, +, -, 1., etc)
                state.list = null;
                return getType(state);
              }
          
              if (state.taskList) {
                var taskOpen = stream.match(taskListRE, true)[1] !== "x";
                if (taskOpen) state.taskOpen = true;
                else state.taskClosed = true;
                if (modeCfg.highlightFormatting) state.formatting = "task";
                state.taskList = false;
                return getType(state);
              }
          
              state.taskOpen = false;
              state.taskClosed = false;
          
              if (state.header && stream.match(/^#+$/, true)) {
                if (modeCfg.highlightFormatting) state.formatting = "header";
                return getType(state);
              }
          
              // Get sol() value now, before character is consumed
              var sol = stream.sol();
          
              var ch = stream.next();
          
              if (ch === '\\') {
                stream.next();
                if (modeCfg.highlightFormatting) {
                  var type = getType(state);
                  var formattingEscape = tokenTypes.formatting + "-escape";
                  return type ? type + " " + formattingEscape : formattingEscape;
                }
              }
          
              // Matches link titles present on next line
              if (state.linkTitle) {
                state.linkTitle = false;
                var matchCh = ch;
                if (ch === '(') {
                  matchCh = ')';
                }
                matchCh = (matchCh+'').replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1");
                var regex = '^\\s*(?:[^' + matchCh + '\\\\]+|\\\\\\\\|\\\\.)' + matchCh;
                if (stream.match(new RegExp(regex), true)) {
                  return tokenTypes.linkHref;
                }
              }
          
              // If this block is changed, it may need to be updated in GFM mode
              if (ch === '`') {
                var previousFormatting = state.formatting;
                if (modeCfg.highlightFormatting) state.formatting = "code";
                var t = getType(state);
                var before = stream.pos;
                stream.eatWhile('`');
                var difference = 1 + stream.pos - before;
                if (!state.code) {
                  codeDepth = difference;
                  state.code = true;
                  return getType(state);
                } else {
                  if (difference === codeDepth) { // Must be exact
                    state.code = false;
                    return t;
                  }
                  state.formatting = previousFormatting;
                  return getType(state);
                }
              } else if (state.code) {
                return getType(state);
              }
          
              if (ch === '!' && stream.match(/\[[^\]]*\] ?(?:\(|\[)/, false)) {
                stream.match(/\[[^\]]*\]/);
                state.inline = state.f = linkHref;
                return tokenTypes.image;
              }
          
              if (ch === '[' && stream.match(/.*\](\(.*\)| ?\[.*\])/, false)) {
                state.linkText = true;
                if (modeCfg.highlightFormatting) state.formatting = "link";
                return getType(state);
              }
          
              if (ch === ']' && state.linkText && stream.match(/\(.*\)| ?\[.*\]/, false)) {
                if (modeCfg.highlightFormatting) state.formatting = "link";
                var type = getType(state);
                state.linkText = false;
                state.inline = state.f = linkHref;
                return type;
              }
          
              if (ch === '<' && stream.match(/^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/, false)) {
                state.f = state.inline = linkInline;
                if (modeCfg.highlightFormatting) state.formatting = "link";
                var type = getType(state);
                if (type){
                  type += " ";
                } else {
                  type = "";
                }
                return type + tokenTypes.linkInline;
              }
          
              if (ch === '<' && stream.match(/^[^> \\]+@(?:[^\\>]|\\.)+>/, false)) {
                state.f = state.inline = linkInline;
                if (modeCfg.highlightFormatting) state.formatting = "link";
                var type = getType(state);
                if (type){
                  type += " ";
                } else {
                  type = "";
                }
                return type + tokenTypes.linkEmail;
              }
          
              if (ch === '<' && stream.match(/^(!--|\w)/, false)) {
                var end = stream.string.indexOf(">", stream.pos);
                if (end != -1) {
                  var atts = stream.string.substring(stream.start, end);
                  if (/markdown\s*=\s*('|"){0,1}1('|"){0,1}/.test(atts)) state.md_inside = true;
                }
                stream.backUp(1);
                state.htmlState = CodeMirror.startState(htmlMode);
                return switchBlock(stream, state, htmlBlock);
              }
          
              if (ch === '<' && stream.match(/^\/\w*?>/)) {
                state.md_inside = false;
                return "tag";
              }
          
              var ignoreUnderscore = false;
              if (!modeCfg.underscoresBreakWords) {
                if (ch === '_' && stream.peek() !== '_' && stream.match(/(\w)/, false)) {
                  var prevPos = stream.pos - 2;
                  if (prevPos >= 0) {
                    var prevCh = stream.string.charAt(prevPos);
                    if (prevCh !== '_' && prevCh.match(/(\w)/, false)) {
                      ignoreUnderscore = true;
                    }
                  }
                }
              }
              if (ch === '*' || (ch === '_' && !ignoreUnderscore)) {
                if (sol && stream.peek() === ' ') {
                  // Do nothing, surrounded by newline and space
                } else if (state.strong === ch && stream.eat(ch)) { // Remove STRONG
                  if (modeCfg.highlightFormatting) state.formatting = "strong";
                  var t = getType(state);
                  state.strong = false;
                  return t;
                } else if (!state.strong && stream.eat(ch)) { // Add STRONG
                  state.strong = ch;
                  if (modeCfg.highlightFormatting) state.formatting = "strong";
                  return getType(state);
                } else if (state.em === ch) { // Remove EM
                  if (modeCfg.highlightFormatting) state.formatting = "em";
                  var t = getType(state);
                  state.em = false;
                  return t;
                } else if (!state.em) { // Add EM
                  state.em = ch;
                  if (modeCfg.highlightFormatting) state.formatting = "em";
                  return getType(state);
                }
              } else if (ch === ' ') {
                if (stream.eat('*') || stream.eat('_')) { // Probably surrounded by spaces
                  if (stream.peek() === ' ') { // Surrounded by spaces, ignore
                    return getType(state);
                  } else { // Not surrounded by spaces, back up pointer
                    stream.backUp(1);
                  }
                }
              }
          
              if (modeCfg.strikethrough) {
                if (ch === '~' && stream.eatWhile(ch)) {
                  if (state.strikethrough) {// Remove strikethrough
                    if (modeCfg.highlightFormatting) state.formatting = "strikethrough";
                    var t = getType(state);
                    state.strikethrough = false;
                    return t;
                  } else if (stream.match(/^[^\s]/, false)) {// Add strikethrough
                    state.strikethrough = true;
                    if (modeCfg.highlightFormatting) state.formatting = "strikethrough";
                    return getType(state);
                  }
                } else if (ch === ' ') {
                  if (stream.match(/^~~/, true)) { // Probably surrounded by space
                    if (stream.peek() === ' ') { // Surrounded by spaces, ignore
                      return getType(state);
                    } else { // Not surrounded by spaces, back up pointer
                      stream.backUp(2);
                    }
                  }
                }
              }
          
              if (ch === ' ') {
                if (stream.match(/ +$/, false)) {
                  state.trailingSpace++;
                } else if (state.trailingSpace) {
                  state.trailingSpaceNewLine = true;
                }
              }
          
              return getType(state);
            }
          
            function linkInline(stream, state) {
              var ch = stream.next();
          
              if (ch === ">") {
                state.f = state.inline = inlineNormal;
                if (modeCfg.highlightFormatting) state.formatting = "link";
                var type = getType(state);
                if (type){
                  type += " ";
                } else {
                  type = "";
                }
                return type + tokenTypes.linkInline;
              }
          
              stream.match(/^[^>]+/, true);
          
              return tokenTypes.linkInline;
            }
          
            function linkHref(stream, state) {
              // Check if space, and return NULL if so (to avoid marking the space)
              if(stream.eatSpace()){
                return null;
              }
              var ch = stream.next();
              if (ch === '(' || ch === '[') {
                state.f = state.inline = getLinkHrefInside(ch === "(" ? ")" : "]");
                if (modeCfg.highlightFormatting) state.formatting = "link-string";
                state.linkHref = true;
                return getType(state);
              }
              return 'error';
            }
          
            function getLinkHrefInside(endChar) {
              return function(stream, state) {
                var ch = stream.next();
          
                if (ch === endChar) {
                  state.f = state.inline = inlineNormal;
                  if (modeCfg.highlightFormatting) state.formatting = "link-string";
                  var returnState = getType(state);
                  state.linkHref = false;
                  return returnState;
                }
          
                if (stream.match(inlineRE(endChar), true)) {
                  stream.backUp(1);
                }
          
                state.linkHref = true;
                return getType(state);
              };
            }
          
            function footnoteLink(stream, state) {
              if (stream.match(/^[^\]]*\]:/, false)) {
                state.f = footnoteLinkInside;
                stream.next(); // Consume [
                if (modeCfg.highlightFormatting) state.formatting = "link";
                state.linkText = true;
                return getType(state);
              }
              return switchInline(stream, state, inlineNormal);
            }
          
            function footnoteLinkInside(stream, state) {
              if (stream.match(/^\]:/, true)) {
                state.f = state.inline = footnoteUrl;
                if (modeCfg.highlightFormatting) state.formatting = "link";
                var returnType = getType(state);
                state.linkText = false;
                return returnType;
              }
          
              stream.match(/^[^\]]+/, true);
          
              return tokenTypes.linkText;
            }
          
            function footnoteUrl(stream, state) {
              // Check if space, and return NULL if so (to avoid marking the space)
              if(stream.eatSpace()){
                return null;
              }
              // Match URL
              stream.match(/^[^\s]+/, true);
              // Check for link title
              if (stream.peek() === undefined) { // End of line, set flag to check next line
                state.linkTitle = true;
              } else { // More content on line, check if link title
                stream.match(/^(?:\s+(?:"(?:[^"\\]|\\\\|\\.)+"|'(?:[^'\\]|\\\\|\\.)+'|\((?:[^)\\]|\\\\|\\.)+\)))?/, true);
              }
              state.f = state.inline = inlineNormal;
              return tokenTypes.linkHref + " url";
            }
          
            var savedInlineRE = [];
            function inlineRE(endChar) {
              if (!savedInlineRE[endChar]) {
                // Escape endChar for RegExp (taken from http://stackoverflow.com/a/494122/526741)
                endChar = (endChar+'').replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1");
                // Match any non-endChar, escaped character, as well as the closing
                // endChar.
                savedInlineRE[endChar] = new RegExp('^(?:[^\\\\]|\\\\.)*?(' + endChar + ')');
              }
              return savedInlineRE[endChar];
            }
          
            var mode = {
              startState: function() {
                return {
                  f: blockNormal,
          
                  prevLine: null,
                  thisLine: null,
          
                  block: blockNormal,
                  htmlState: null,
                  indentation: 0,
          
                  inline: inlineNormal,
                  text: handleText,
          
                  formatting: false,
                  linkText: false,
                  linkHref: false,
                  linkTitle: false,
                  em: false,
                  strong: false,
                  header: 0,
                  hr: false,
                  taskList: false,
                  list: false,
                  listDepth: 0,
                  quote: 0,
                  trailingSpace: 0,
                  trailingSpaceNewLine: false,
                  strikethrough: false,
                  fencedChars: null
                };
              },
          
              copyState: function(s) {
                return {
                  f: s.f,
          
                  prevLine: s.prevLine,
                  thisLine: s.this,
          
                  block: s.block,
                  htmlState: s.htmlState && CodeMirror.copyState(htmlMode, s.htmlState),
                  indentation: s.indentation,
          
                  localMode: s.localMode,
                  localState: s.localMode ? CodeMirror.copyState(s.localMode, s.localState) : null,
          
                  inline: s.inline,
                  text: s.text,
                  formatting: false,
                  linkTitle: s.linkTitle,
                  code: s.code,
                  em: s.em,
                  strong: s.strong,
                  strikethrough: s.strikethrough,
                  header: s.header,
                  hr: s.hr,
                  taskList: s.taskList,
                  list: s.list,
                  listDepth: s.listDepth,
                  quote: s.quote,
                  indentedCode: s.indentedCode,
                  trailingSpace: s.trailingSpace,
                  trailingSpaceNewLine: s.trailingSpaceNewLine,
                  md_inside: s.md_inside,
                  fencedChars: s.fencedChars
                };
              },
          
              token: function(stream, state) {
          
                // Reset state.formatting
                state.formatting = false;
          
                if (stream != state.thisLine) {
                  var forceBlankLine = state.header || state.hr;
          
                  // Reset state.header and state.hr
                  state.header = 0;
                  state.hr = false;
          
                  if (stream.match(/^\s*$/, true) || forceBlankLine) {
                    blankLine(state);
                    if (!forceBlankLine) return null
                    state.prevLine = null
                  }
          
                  state.prevLine = state.thisLine
                  state.thisLine = stream
          
                  // Reset state.taskList
                  state.taskList = false;
          
                  // Reset state.trailingSpace
                  state.trailingSpace = 0;
                  state.trailingSpaceNewLine = false;
          
                  state.f = state.block;
                  var indentation = stream.match(/^\s*/, true)[0].replace(/\t/g, '    ').length;
                  var difference = Math.floor((indentation - state.indentation) / 4) * 4;
                  if (difference > 4) difference = 4;
                  var adjustedIndentation = state.indentation + difference;
                  state.indentationDiff = adjustedIndentation - state.indentation;
                  state.indentation = adjustedIndentation;
                  if (indentation > 0) return null;
                }
                return state.f(stream, state);
              },
          
              innerMode: function(state) {
                if (state.block == htmlBlock) return {state: state.htmlState, mode: htmlMode};
                if (state.localState) return {state: state.localState, mode: state.localMode};
                return {state: state, mode: mode};
              },
          
              blankLine: blankLine,
          
              getType: getType,
          
              fold: "markdown"
            };
            return mode;
          }, "xml");
          
          CodeMirror.defineMIME("text/x-markdown", "markdown");
          
          });
          
        • test.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function() {
            var mode = CodeMirror.getMode({tabSize: 4}, "markdown");
            function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
            var modeHighlightFormatting = CodeMirror.getMode({tabSize: 4}, {name: "markdown", highlightFormatting: true});
            function FT(name) { test.mode(name, modeHighlightFormatting, Array.prototype.slice.call(arguments, 1)); }
            var modeAtxNoSpace = CodeMirror.getMode({tabSize: 4}, {name: "markdown", allowAtxHeaderWithoutSpace: true});
            function AtxNoSpaceTest(name) { test.mode(name, modeAtxNoSpace, Array.prototype.slice.call(arguments, 1)); }
            var modeFenced = CodeMirror.getMode({tabSize: 4}, {name: "markdown", fencedCodeBlocks: true});
            function FencedTest(name) { test.mode(name, modeFenced, Array.prototype.slice.call(arguments, 1)); }
            var modeOverrideClasses = CodeMirror.getMode({tabsize: 4}, {
              name: "markdown",
              strikethrough: true,
              tokenTypeOverrides: {
                "header" : "override-header",
                "code" : "override-code",
                "quote" : "override-quote",
                "list1" : "override-list1",
                "list2" : "override-list2",
                "list3" : "override-list3",
                "hr" : "override-hr",
                "image" : "override-image",
                "linkInline" : "override-link-inline",
                "linkEmail" : "override-link-email",
                "linkText" : "override-link-text",
                "linkHref" : "override-link-href",
                "em" : "override-em",
                "strong" : "override-strong",
                "strikethrough" : "override-strikethrough"
            }});
            function TokenTypeOverrideTest(name) { test.mode(name, modeOverrideClasses, Array.prototype.slice.call(arguments, 1)); }
            var modeFormattingOverride = CodeMirror.getMode({tabsize: 4}, {
              name: "markdown",
              highlightFormatting: true,
              tokenTypeOverrides: {
                "formatting" : "override-formatting"
            }});
            function FormatTokenTypeOverrideTest(name) { test.mode(name, modeFormattingOverride, Array.prototype.slice.call(arguments, 1)); }
          
          
            FT("formatting_emAsterisk",
               "[em&formatting&formatting-em *][em foo][em&formatting&formatting-em *]");
          
            FT("formatting_emUnderscore",
               "[em&formatting&formatting-em _][em foo][em&formatting&formatting-em _]");
          
            FT("formatting_strongAsterisk",
               "[strong&formatting&formatting-strong **][strong foo][strong&formatting&formatting-strong **]");
          
            FT("formatting_strongUnderscore",
               "[strong&formatting&formatting-strong __][strong foo][strong&formatting&formatting-strong __]");
          
            FT("formatting_codeBackticks",
               "[comment&formatting&formatting-code `][comment foo][comment&formatting&formatting-code `]");
          
            FT("formatting_doubleBackticks",
               "[comment&formatting&formatting-code ``][comment foo ` bar][comment&formatting&formatting-code ``]");
          
            FT("formatting_atxHeader",
               "[header&header-1&formatting&formatting-header&formatting-header-1 # ][header&header-1 foo # bar ][header&header-1&formatting&formatting-header&formatting-header-1 #]");
          
            FT("formatting_setextHeader",
               "foo",
               "[header&header-1&formatting&formatting-header&formatting-header-1 =]");
          
            FT("formatting_blockquote",
               "[quote&quote-1&formatting&formatting-quote&formatting-quote-1 > ][quote&quote-1 foo]");
          
            FT("formatting_list",
               "[variable-2&formatting&formatting-list&formatting-list-ul - ][variable-2 foo]");
            FT("formatting_list",
               "[variable-2&formatting&formatting-list&formatting-list-ol 1. ][variable-2 foo]");
          
            FT("formatting_link",
               "[link&formatting&formatting-link [][link foo][link&formatting&formatting-link ]]][string&formatting&formatting-link-string&url (][string&url http://example.com/][string&formatting&formatting-link-string&url )]");
          
            FT("formatting_linkReference",
               "[link&formatting&formatting-link [][link foo][link&formatting&formatting-link ]]][string&formatting&formatting-link-string&url [][string&url bar][string&formatting&formatting-link-string&url ]]]",
               "[link&formatting&formatting-link [][link bar][link&formatting&formatting-link ]]:] [string&url http://example.com/]");
          
            FT("formatting_linkWeb",
               "[link&formatting&formatting-link <][link http://example.com/][link&formatting&formatting-link >]");
          
            FT("formatting_linkEmail",
               "[link&formatting&formatting-link <][link user@example.com][link&formatting&formatting-link >]");
          
            FT("formatting_escape",
               "[formatting-escape \\*]");
          
            MT("plainText",
               "foo");
          
            // Don't style single trailing space
            MT("trailingSpace1",
               "foo ");
          
            // Two or more trailing spaces should be styled with line break character
            MT("trailingSpace2",
               "foo[trailing-space-a  ][trailing-space-new-line  ]");
          
            MT("trailingSpace3",
               "foo[trailing-space-a  ][trailing-space-b  ][trailing-space-new-line  ]");
          
            MT("trailingSpace4",
               "foo[trailing-space-a  ][trailing-space-b  ][trailing-space-a  ][trailing-space-new-line  ]");
          
            // Code blocks using 4 spaces (regardless of CodeMirror.tabSize value)
            MT("codeBlocksUsing4Spaces",
               "    [comment foo]");
          
            // Code blocks using 4 spaces with internal indentation
            MT("codeBlocksUsing4SpacesIndentation",
               "    [comment bar]",
               "        [comment hello]",
               "            [comment world]",
               "    [comment foo]",
               "bar");
          
            // Code blocks should end even after extra indented lines
            MT("codeBlocksWithTrailingIndentedLine",
               "    [comment foo]",
               "        [comment bar]",
               "    [comment baz]",
               "    ",
               "hello");
          
            // Code blocks using 1 tab (regardless of CodeMirror.indentWithTabs value)
            MT("codeBlocksUsing1Tab",
               "\t[comment foo]");
          
            // No code blocks directly after paragraph
            // http://spec.commonmark.org/0.19/#example-65
            MT("noCodeBlocksAfterParagraph",
               "Foo",
               "    Bar");
          
            // Inline code using backticks
            MT("inlineCodeUsingBackticks",
               "foo [comment `bar`]");
          
            // Block code using single backtick (shouldn't work)
            MT("blockCodeSingleBacktick",
               "[comment `]",
               "[comment foo]",
               "[comment `]");
          
            // Unclosed backticks
            // Instead of simply marking as CODE, it would be nice to have an
            // incomplete flag for CODE, that is styled slightly different.
            MT("unclosedBackticks",
               "foo [comment `bar]");
          
            // Per documentation: "To include a literal backtick character within a
            // code span, you can use multiple backticks as the opening and closing
            // delimiters"
            MT("doubleBackticks",
               "[comment ``foo ` bar``]");
          
            // Tests based on Dingus
            // http://daringfireball.net/projects/markdown/dingus
            //
            // Multiple backticks within an inline code block
            MT("consecutiveBackticks",
               "[comment `foo```bar`]");
          
            // Multiple backticks within an inline code block with a second code block
            MT("consecutiveBackticks",
               "[comment `foo```bar`] hello [comment `world`]");
          
            // Unclosed with several different groups of backticks
            MT("unclosedBackticks",
               "[comment ``foo ``` bar` hello]");
          
            // Closed with several different groups of backticks
            MT("closedBackticks",
               "[comment ``foo ``` bar` hello``] world");
          
            // atx headers
            // http://daringfireball.net/projects/markdown/syntax#header
          
            MT("atxH1",
               "[header&header-1 # foo]");
          
            MT("atxH2",
               "[header&header-2 ## foo]");
          
            MT("atxH3",
               "[header&header-3 ### foo]");
          
            MT("atxH4",
               "[header&header-4 #### foo]");
          
            MT("atxH5",
               "[header&header-5 ##### foo]");
          
            MT("atxH6",
               "[header&header-6 ###### foo]");
          
            // http://spec.commonmark.org/0.19/#example-24
            MT("noAtxH7",
               "####### foo");
          
            // http://spec.commonmark.org/0.19/#example-25
            MT("noAtxH1WithoutSpace",
               "#5 bolt");
          
            // CommonMark requires a space after # but most parsers don't
            AtxNoSpaceTest("atxNoSpaceAllowed_H1NoSpace",
               "[header&header-1 #foo]");
          
            AtxNoSpaceTest("atxNoSpaceAllowed_H4NoSpace",
               "[header&header-4 ####foo]");
          
            AtxNoSpaceTest("atxNoSpaceAllowed_H1Space",
               "[header&header-1 # foo]");
          
            // Inline styles should be parsed inside headers
            MT("atxH1inline",
               "[header&header-1 # foo ][header&header-1&em *bar*]");
          
            // Setext headers - H1, H2
            // Per documentation, "Any number of underlining =’s or -’s will work."
            // http://daringfireball.net/projects/markdown/syntax#header
            // Ideally, the text would be marked as `header` as well, but this is
            // not really feasible at the moment. So, instead, we're testing against
            // what works today, to avoid any regressions.
            //
            // Check if single underlining = works
            MT("setextH1",
               "foo",
               "[header&header-1 =]");
          
            // Check if 3+ ='s work
            MT("setextH1",
               "foo",
               "[header&header-1 ===]");
          
            // Check if single underlining - works
            MT("setextH2",
               "foo",
               "[header&header-2 -]");
          
            // Check if 3+ -'s work
            MT("setextH2",
               "foo",
               "[header&header-2 ---]");
          
            // http://spec.commonmark.org/0.19/#example-45
            MT("setextH2AllowSpaces",
               "foo",
               "   [header&header-2 ----      ]");
          
            // http://spec.commonmark.org/0.19/#example-44
            MT("noSetextAfterIndentedCodeBlock",
               "     [comment foo]",
               "[hr ---]");
          
            // http://spec.commonmark.org/0.19/#example-51
            MT("noSetextAfterQuote",
               "[quote&quote-1 > foo]",
               "[hr ---]");
          
            MT("noSetextAfterList",
               "[variable-2 - foo]",
               "[hr ---]");
          
            // Single-line blockquote with trailing space
            MT("blockquoteSpace",
               "[quote&quote-1 > foo]");
          
            // Single-line blockquote
            MT("blockquoteNoSpace",
               "[quote&quote-1 >foo]");
          
            // No blank line before blockquote
            MT("blockquoteNoBlankLine",
               "foo",
               "[quote&quote-1 > bar]");
          
            // Nested blockquote
            MT("blockquoteSpace",
               "[quote&quote-1 > foo]",
               "[quote&quote-1 >][quote&quote-2 > foo]",
               "[quote&quote-1 >][quote&quote-2 >][quote&quote-3 > foo]");
          
            // Single-line blockquote followed by normal paragraph
            MT("blockquoteThenParagraph",
               "[quote&quote-1 >foo]",
               "",
               "bar");
          
            // Multi-line blockquote (lazy mode)
            MT("multiBlockquoteLazy",
               "[quote&quote-1 >foo]",
               "[quote&quote-1 bar]");
          
            // Multi-line blockquote followed by normal paragraph (lazy mode)
            MT("multiBlockquoteLazyThenParagraph",
               "[quote&quote-1 >foo]",
               "[quote&quote-1 bar]",
               "",
               "hello");
          
            // Multi-line blockquote (non-lazy mode)
            MT("multiBlockquote",
               "[quote&quote-1 >foo]",
               "[quote&quote-1 >bar]");
          
            // Multi-line blockquote followed by normal paragraph (non-lazy mode)
            MT("multiBlockquoteThenParagraph",
               "[quote&quote-1 >foo]",
               "[quote&quote-1 >bar]",
               "",
               "hello");
          
            // Header with leading space after continued blockquote (#3287, negative indentation)
            MT("headerAfterContinuedBlockquote",
               "[quote&quote-1 > foo]",
               "[quote&quote-1 bar]",
               "",
               " [header&header-1 # hello]");
          
            // Check list types
          
            MT("listAsterisk",
               "foo",
               "bar",
               "",
               "[variable-2 * foo]",
               "[variable-2 * bar]");
          
            MT("listPlus",
               "foo",
               "bar",
               "",
               "[variable-2 + foo]",
               "[variable-2 + bar]");
          
            MT("listDash",
               "foo",
               "bar",
               "",
               "[variable-2 - foo]",
               "[variable-2 - bar]");
          
            MT("listNumber",
               "foo",
               "bar",
               "",
               "[variable-2 1. foo]",
               "[variable-2 2. bar]");
          
            // Lists require a preceding blank line (per Dingus)
            MT("listBogus",
               "foo",
               "1. bar",
               "2. hello");
          
            // List after hr
            MT("listAfterHr",
               "[hr ---]",
               "[variable-2 - bar]");
          
            // List after header
            MT("listAfterHeader",
               "[header&header-1 # foo]",
               "[variable-2 - bar]");
          
            // hr after list
            MT("hrAfterList",
               "[variable-2 - foo]",
               "[hr -----]");
          
            // Formatting in lists (*)
            MT("listAsteriskFormatting",
               "[variable-2 * ][variable-2&em *foo*][variable-2  bar]",
               "[variable-2 * ][variable-2&strong **foo**][variable-2  bar]",
               "[variable-2 * ][variable-2&strong **][variable-2&em&strong *foo**][variable-2&em *][variable-2  bar]",
               "[variable-2 * ][variable-2&comment `foo`][variable-2  bar]");
          
            // Formatting in lists (+)
            MT("listPlusFormatting",
               "[variable-2 + ][variable-2&em *foo*][variable-2  bar]",
               "[variable-2 + ][variable-2&strong **foo**][variable-2  bar]",
               "[variable-2 + ][variable-2&strong **][variable-2&em&strong *foo**][variable-2&em *][variable-2  bar]",
               "[variable-2 + ][variable-2&comment `foo`][variable-2  bar]");
          
            // Formatting in lists (-)
            MT("listDashFormatting",
               "[variable-2 - ][variable-2&em *foo*][variable-2  bar]",
               "[variable-2 - ][variable-2&strong **foo**][variable-2  bar]",
               "[variable-2 - ][variable-2&strong **][variable-2&em&strong *foo**][variable-2&em *][variable-2  bar]",
               "[variable-2 - ][variable-2&comment `foo`][variable-2  bar]");
          
            // Formatting in lists (1.)
            MT("listNumberFormatting",
               "[variable-2 1. ][variable-2&em *foo*][variable-2  bar]",
               "[variable-2 2. ][variable-2&strong **foo**][variable-2  bar]",
               "[variable-2 3. ][variable-2&strong **][variable-2&em&strong *foo**][variable-2&em *][variable-2  bar]",
               "[variable-2 4. ][variable-2&comment `foo`][variable-2  bar]");
          
            // Paragraph lists
            MT("listParagraph",
               "[variable-2 * foo]",
               "",
               "[variable-2 * bar]");
          
            // Multi-paragraph lists
            //
            // 4 spaces
            MT("listMultiParagraph",
               "[variable-2 * foo]",
               "",
               "[variable-2 * bar]",
               "",
               "    [variable-2 hello]");
          
            // 4 spaces, extra blank lines (should still be list, per Dingus)
            MT("listMultiParagraphExtra",
               "[variable-2 * foo]",
               "",
               "[variable-2 * bar]",
               "",
               "",
               "    [variable-2 hello]");
          
            // 4 spaces, plus 1 space (should still be list, per Dingus)
            MT("listMultiParagraphExtraSpace",
               "[variable-2 * foo]",
               "",
               "[variable-2 * bar]",
               "",
               "     [variable-2 hello]",
               "",
               "    [variable-2 world]");
          
            // 1 tab
            MT("listTab",
               "[variable-2 * foo]",
               "",
               "[variable-2 * bar]",
               "",
               "\t[variable-2 hello]");
          
            // No indent
            MT("listNoIndent",
               "[variable-2 * foo]",
               "",
               "[variable-2 * bar]",
               "",
               "hello");
          
            // Blockquote
            MT("blockquote",
               "[variable-2 * foo]",
               "",
               "[variable-2 * bar]",
               "",
               "    [variable-2&quote&quote-1 > hello]");
          
            // Code block
            MT("blockquoteCode",
               "[variable-2 * foo]",
               "",
               "[variable-2 * bar]",
               "",
               "        [comment > hello]",
               "",
               "    [variable-2 world]");
          
            // Code block followed by text
            MT("blockquoteCodeText",
               "[variable-2 * foo]",
               "",
               "    [variable-2 bar]",
               "",
               "        [comment hello]",
               "",
               "    [variable-2 world]");
          
            // Nested list
          
            MT("listAsteriskNested",
               "[variable-2 * foo]",
               "",
               "    [variable-3 * bar]");
          
            MT("listPlusNested",
               "[variable-2 + foo]",
               "",
               "    [variable-3 + bar]");
          
            MT("listDashNested",
               "[variable-2 - foo]",
               "",
               "    [variable-3 - bar]");
          
            MT("listNumberNested",
               "[variable-2 1. foo]",
               "",
               "    [variable-3 2. bar]");
          
            MT("listMixed",
               "[variable-2 * foo]",
               "",
               "    [variable-3 + bar]",
               "",
               "        [keyword - hello]",
               "",
               "            [variable-2 1. world]");
          
            MT("listBlockquote",
               "[variable-2 * foo]",
               "",
               "    [variable-3 + bar]",
               "",
               "        [quote&quote-1&variable-3 > hello]");
          
            MT("listCode",
               "[variable-2 * foo]",
               "",
               "    [variable-3 + bar]",
               "",
               "            [comment hello]");
          
            // Code with internal indentation
            MT("listCodeIndentation",
               "[variable-2 * foo]",
               "",
               "        [comment bar]",
               "            [comment hello]",
               "                [comment world]",
               "        [comment foo]",
               "    [variable-2 bar]");
          
            // List nesting edge cases
            MT("listNested",
              "[variable-2 * foo]",
              "",
              "    [variable-3 * bar]",
              "",
              "       [variable-3 hello]"
            );
            MT("listNested",
              "[variable-2 * foo]",
              "",
              "    [variable-3 * bar]",
              "",
              "      [keyword * foo]"
            );
          
            // Code followed by text
            MT("listCodeText",
               "[variable-2 * foo]",
               "",
               "        [comment bar]",
               "",
               "hello");
          
            // Following tests directly from official Markdown documentation
            // http://daringfireball.net/projects/markdown/syntax#hr
          
            MT("hrSpace",
               "[hr * * *]");
          
            MT("hr",
               "[hr ***]");
          
            MT("hrLong",
               "[hr *****]");
          
            MT("hrSpaceDash",
               "[hr - - -]");
          
            MT("hrDashLong",
               "[hr ---------------------------------------]");
          
            // Inline link with title
            MT("linkTitle",
               "[link [[foo]]][string&url (http://example.com/ \"bar\")] hello");
          
            // Inline link without title
            MT("linkNoTitle",
               "[link [[foo]]][string&url (http://example.com/)] bar");
          
            // Inline link with image
            MT("linkImage",
               "[link [[][tag ![[foo]]][string&url (http://example.com/)][link ]]][string&url (http://example.com/)] bar");
          
            // Inline link with Em
            MT("linkEm",
               "[link [[][link&em *foo*][link ]]][string&url (http://example.com/)] bar");
          
            // Inline link with Strong
            MT("linkStrong",
               "[link [[][link&strong **foo**][link ]]][string&url (http://example.com/)] bar");
          
            // Inline link with EmStrong
            MT("linkEmStrong",
               "[link [[][link&strong **][link&em&strong *foo**][link&em *][link ]]][string&url (http://example.com/)] bar");
          
            // Image with title
            MT("imageTitle",
               "[tag ![[foo]]][string&url (http://example.com/ \"bar\")] hello");
          
            // Image without title
            MT("imageNoTitle",
               "[tag ![[foo]]][string&url (http://example.com/)] bar");
          
            // Image with asterisks
            MT("imageAsterisks",
               "[tag ![[*foo*]]][string&url (http://example.com/)] bar");
          
            // Not a link. Should be normal text due to square brackets being used
            // regularly in text, especially in quoted material, and no space is allowed
            // between square brackets and parentheses (per Dingus).
            MT("notALink",
               "[[foo]] (bar)");
          
            // Reference-style links
            MT("linkReference",
               "[link [[foo]]][string&url [[bar]]] hello");
          
            // Reference-style links with Em
            MT("linkReferenceEm",
               "[link [[][link&em *foo*][link ]]][string&url [[bar]]] hello");
          
            // Reference-style links with Strong
            MT("linkReferenceStrong",
               "[link [[][link&strong **foo**][link ]]][string&url [[bar]]] hello");
          
            // Reference-style links with EmStrong
            MT("linkReferenceEmStrong",
               "[link [[][link&strong **][link&em&strong *foo**][link&em *][link ]]][string&url [[bar]]] hello");
          
            // Reference-style links with optional space separator (per docuentation)
            // "You can optionally use a space to separate the sets of brackets"
            MT("linkReferenceSpace",
               "[link [[foo]]] [string&url [[bar]]] hello");
          
            // Should only allow a single space ("...use *a* space...")
            MT("linkReferenceDoubleSpace",
               "[[foo]]  [[bar]] hello");
          
            // Reference-style links with implicit link name
            MT("linkImplicit",
               "[link [[foo]]][string&url [[]]] hello");
          
            // @todo It would be nice if, at some point, the document was actually
            // checked to see if the referenced link exists
          
            // Link label, for reference-style links (taken from documentation)
          
            MT("labelNoTitle",
               "[link [[foo]]:] [string&url http://example.com/]");
          
            MT("labelIndented",
               "   [link [[foo]]:] [string&url http://example.com/]");
          
            MT("labelSpaceTitle",
               "[link [[foo bar]]:] [string&url http://example.com/ \"hello\"]");
          
            MT("labelDoubleTitle",
               "[link [[foo bar]]:] [string&url http://example.com/ \"hello\"] \"world\"");
          
            MT("labelTitleDoubleQuotes",
               "[link [[foo]]:] [string&url http://example.com/  \"bar\"]");
          
            MT("labelTitleSingleQuotes",
               "[link [[foo]]:] [string&url http://example.com/  'bar']");
          
            MT("labelTitleParenthese",
               "[link [[foo]]:] [string&url http://example.com/  (bar)]");
          
            MT("labelTitleInvalid",
               "[link [[foo]]:] [string&url http://example.com/] bar");
          
            MT("labelLinkAngleBrackets",
               "[link [[foo]]:] [string&url <http://example.com/>  \"bar\"]");
          
            MT("labelTitleNextDoubleQuotes",
               "[link [[foo]]:] [string&url http://example.com/]",
               "[string \"bar\"] hello");
          
            MT("labelTitleNextSingleQuotes",
               "[link [[foo]]:] [string&url http://example.com/]",
               "[string 'bar'] hello");
          
            MT("labelTitleNextParenthese",
               "[link [[foo]]:] [string&url http://example.com/]",
               "[string (bar)] hello");
          
            MT("labelTitleNextMixed",
               "[link [[foo]]:] [string&url http://example.com/]",
               "(bar\" hello");
          
            MT("linkWeb",
               "[link <http://example.com/>] foo");
          
            MT("linkWebDouble",
               "[link <http://example.com/>] foo [link <http://example.com/>]");
          
            MT("linkEmail",
               "[link <user@example.com>] foo");
          
            MT("linkEmailDouble",
               "[link <user@example.com>] foo [link <user@example.com>]");
          
            MT("emAsterisk",
               "[em *foo*] bar");
          
            MT("emUnderscore",
               "[em _foo_] bar");
          
            MT("emInWordAsterisk",
               "foo[em *bar*]hello");
          
            MT("emInWordUnderscore",
               "foo[em _bar_]hello");
          
            // Per documentation: "...surround an * or _ with spaces, it’ll be
            // treated as a literal asterisk or underscore."
          
            MT("emEscapedBySpaceIn",
               "foo [em _bar _ hello_] world");
          
            MT("emEscapedBySpaceOut",
               "foo _ bar[em _hello_]world");
          
            MT("emEscapedByNewline",
               "foo",
               "_ bar[em _hello_]world");
          
            // Unclosed emphasis characters
            // Instead of simply marking as EM / STRONG, it would be nice to have an
            // incomplete flag for EM and STRONG, that is styled slightly different.
            MT("emIncompleteAsterisk",
               "foo [em *bar]");
          
            MT("emIncompleteUnderscore",
               "foo [em _bar]");
          
            MT("strongAsterisk",
               "[strong **foo**] bar");
          
            MT("strongUnderscore",
               "[strong __foo__] bar");
          
            MT("emStrongAsterisk",
               "[em *foo][em&strong **bar*][strong hello**] world");
          
            MT("emStrongUnderscore",
               "[em _foo][em&strong __bar_][strong hello__] world");
          
            // "...same character must be used to open and close an emphasis span.""
            MT("emStrongMixed",
               "[em _foo][em&strong **bar*hello__ world]");
          
            MT("emStrongMixed",
               "[em *foo][em&strong __bar_hello** world]");
          
            // These characters should be escaped:
            // \   backslash
            // `   backtick
            // *   asterisk
            // _   underscore
            // {}  curly braces
            // []  square brackets
            // ()  parentheses
            // #   hash mark
            // +   plus sign
            // -   minus sign (hyphen)
            // .   dot
            // !   exclamation mark
          
            MT("escapeBacktick",
               "foo \\`bar\\`");
          
            MT("doubleEscapeBacktick",
               "foo \\\\[comment `bar\\\\`]");
          
            MT("escapeAsterisk",
               "foo \\*bar\\*");
          
            MT("doubleEscapeAsterisk",
               "foo \\\\[em *bar\\\\*]");
          
            MT("escapeUnderscore",
               "foo \\_bar\\_");
          
            MT("doubleEscapeUnderscore",
               "foo \\\\[em _bar\\\\_]");
          
            MT("escapeHash",
               "\\# foo");
          
            MT("doubleEscapeHash",
               "\\\\# foo");
          
            MT("escapeNewline",
               "\\",
               "[em *foo*]");
          
            // Class override tests
            TokenTypeOverrideTest("overrideHeader1",
              "[override-header&override-header-1 # Foo]");
          
            TokenTypeOverrideTest("overrideHeader2",
              "[override-header&override-header-2 ## Foo]");
          
            TokenTypeOverrideTest("overrideHeader3",
              "[override-header&override-header-3 ### Foo]");
          
            TokenTypeOverrideTest("overrideHeader4",
              "[override-header&override-header-4 #### Foo]");
          
            TokenTypeOverrideTest("overrideHeader5",
              "[override-header&override-header-5 ##### Foo]");
          
            TokenTypeOverrideTest("overrideHeader6",
              "[override-header&override-header-6 ###### Foo]");
          
            TokenTypeOverrideTest("overrideCode",
              "[override-code `foo`]");
          
            TokenTypeOverrideTest("overrideCodeBlock",
              "[override-code ```]",
              "[override-code foo]",
              "[override-code ```]");
          
            TokenTypeOverrideTest("overrideQuote",
              "[override-quote&override-quote-1 > foo]",
              "[override-quote&override-quote-1 > bar]");
          
            TokenTypeOverrideTest("overrideQuoteNested",
              "[override-quote&override-quote-1 > foo]",
              "[override-quote&override-quote-1 >][override-quote&override-quote-2 > bar]",
              "[override-quote&override-quote-1 >][override-quote&override-quote-2 >][override-quote&override-quote-3 > baz]");
          
            TokenTypeOverrideTest("overrideLists",
              "[override-list1 - foo]",
              "",
              "    [override-list2 + bar]",
              "",
              "        [override-list3 * baz]",
              "",
              "            [override-list1 1. qux]",
              "",
              "                [override-list2 - quux]");
          
            TokenTypeOverrideTest("overrideHr",
              "[override-hr * * *]");
          
            TokenTypeOverrideTest("overrideImage",
              "[override-image ![[foo]]][override-link-href&url (http://example.com/)]")
          
            TokenTypeOverrideTest("overrideLinkText",
              "[override-link-text [[foo]]][override-link-href&url (http://example.com)]");
          
            TokenTypeOverrideTest("overrideLinkEmailAndInline",
              "[override-link-email <][override-link-inline foo@example.com>]");
          
            TokenTypeOverrideTest("overrideEm",
              "[override-em *foo*]");
          
            TokenTypeOverrideTest("overrideStrong",
              "[override-strong **foo**]");
          
            TokenTypeOverrideTest("overrideStrikethrough",
              "[override-strikethrough ~~foo~~]");
          
            FormatTokenTypeOverrideTest("overrideFormatting",
              "[override-formatting-escape \\*]");
          
            // Tests to make sure GFM-specific things aren't getting through
          
            MT("taskList",
               "[variable-2 * [ ]] bar]");
          
            MT("noFencedCodeBlocks",
               "~~~",
               "foo",
               "~~~");
          
            FencedTest("fencedCodeBlocks",
               "[comment ```]",
               "[comment foo]",
               "[comment ```]",
               "bar");
          
            FencedTest("fencedCodeBlocksMultipleChars",
               "[comment `````]",
               "[comment foo]",
               "[comment ```]",
               "[comment foo]",
               "[comment `````]",
               "bar");
          
            FencedTest("fencedCodeBlocksTildes",
               "[comment ~~~]",
               "[comment foo]",
               "[comment ~~~]",
               "bar");
          
            FencedTest("fencedCodeBlocksTildesMultipleChars",
               "[comment ~~~~~]",
               "[comment ~~~]",
               "[comment foo]",
               "[comment ~~~~~]",
               "bar");
          
            FencedTest("fencedCodeBlocksMultipleChars",
               "[comment `````]",
               "[comment foo]",
               "[comment ```]",
               "[comment foo]",
               "[comment `````]",
               "bar");
          
            FencedTest("fencedCodeBlocksMixed",
               "[comment ~~~]",
               "[comment ```]",
               "[comment foo]",
               "[comment ~~~]",
               "bar");
          
            // Tests that require XML mode
          
            MT("xmlMode",
               "[tag&bracket <][tag div][tag&bracket >]",
               "*foo*",
               "[tag&bracket <][tag http://github.com][tag&bracket />]",
               "[tag&bracket </][tag div][tag&bracket >]",
               "[link <http://github.com/>]");
          
            MT("xmlModeWithMarkdownInside",
               "[tag&bracket <][tag div] [attribute markdown]=[string 1][tag&bracket >]",
               "[em *foo*]",
               "[link <http://github.com/>]",
               "[tag </div>]",
               "[link <http://github.com/>]",
               "[tag&bracket <][tag div][tag&bracket >]",
               "[tag&bracket </][tag div][tag&bracket >]");
          
          })();
          
      • mathematica
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Mathematica mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel=stylesheet href=../../lib/codemirror.css>
          <script src=../../lib/codemirror.js></script>
          <script src=../../addon/edit/matchbrackets.js></script>
          <script src=mathematica.js></script>
          <style type=text/css>
            .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}
          </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Mathematica</a>
            </ul>
          </div>
          
          <article>
          <h2>Mathematica mode</h2>
          
          
          <textarea id="mathematicaCode">
          (* example Mathematica code *)
          (* Dualisiert wird anhand einer Polarität an einer
             Quadrik $x^t Q x = 0$ mit regulärer Matrix $Q$ (also
             mit $det(Q) \neq 0$), z.B. die Identitätsmatrix.
             $p$ ist eine Liste von Polynomen - ein Ideal. *)
          dualize::"singular" = "Q must be regular: found Det[Q]==0.";
          dualize[ Q_, p_ ] := Block[
              { m, n, xv, lv, uv, vars, polys, dual },
              If[Det[Q] == 0,
                Message[dualize::"singular"],
                m = Length[p];
                n = Length[Q] - 1;
                xv = Table[Subscript[x, i], {i, 0, n}];
                lv = Table[Subscript[l, i], {i, 1, m}];
                uv = Table[Subscript[u, i], {i, 0, n}];
                (* Konstruiere Ideal polys. *)
                If[m == 0,
                  polys = Q.uv,
                  polys = Join[p, Q.uv - Transpose[Outer[D, p, xv]].lv]
                  ];
                (* Eliminiere die ersten n + 1 + m Variablen xv und lv
                   aus dem Ideal polys. *)
                vars = Join[xv, lv];
                dual = GroebnerBasis[polys, uv, vars];
                (* Ersetze u mit x im Ergebnis. *)
                ReplaceAll[dual, Rule[u, x]]
                ]
              ]
          </textarea>
          
          <script>
            var mathematicaEditor = CodeMirror.fromTextArea(document.getElementById('mathematicaCode'), {
              mode: 'text/x-mathematica',
              lineNumbers: true,
              matchBrackets: true
            });
          </script>
          
          <p><strong>MIME types defined:</strong> <code>text/x-mathematica</code> (Mathematica).</p>
          </article>
          
        • mathematica.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // Mathematica mode copyright (c) 2015 by Calin Barbat
          // Based on code by Patrick Scheibe (halirutan)
          // See: https://github.com/halirutan/Mathematica-Source-Highlighting/tree/master/src/lang-mma.js
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode('mathematica', function(_config, _parserConfig) {
          
            // used pattern building blocks
            var Identifier = '[a-zA-Z\\$][a-zA-Z0-9\\$]*';
            var pBase      = "(?:\\d+)";
            var pFloat     = "(?:\\.\\d+|\\d+\\.\\d*|\\d+)";
            var pFloatBase = "(?:\\.\\w+|\\w+\\.\\w*|\\w+)";
            var pPrecision = "(?:`(?:`?"+pFloat+")?)";
          
            // regular expressions
            var reBaseForm        = new RegExp('(?:'+pBase+'(?:\\^\\^'+pFloatBase+pPrecision+'?(?:\\*\\^[+-]?\\d+)?))');
            var reFloatForm       = new RegExp('(?:' + pFloat + pPrecision + '?(?:\\*\\^[+-]?\\d+)?)');
            var reIdInContext     = new RegExp('(?:`?)(?:' + Identifier + ')(?:`(?:' + Identifier + '))*(?:`?)');
          
            function tokenBase(stream, state) {
              var ch;
          
              // get next character
              ch = stream.next();
          
              // string
              if (ch === '"') {
                state.tokenize = tokenString;
                return state.tokenize(stream, state);
              }
          
              // comment
              if (ch === '(') {
                if (stream.eat('*')) {
                  state.commentLevel++;
                  state.tokenize = tokenComment;
                  return state.tokenize(stream, state);
                }
              }
          
              // go back one character
              stream.backUp(1);
          
              // look for numbers
              // Numbers in a baseform
              if (stream.match(reBaseForm, true, false)) {
                return 'number';
              }
          
              // Mathematica numbers. Floats (1.2, .2, 1.) can have optionally a precision (`float) or an accuracy definition
              // (``float). Note: while 1.2` is possible 1.2`` is not. At the end an exponent (float*^+12) can follow.
              if (stream.match(reFloatForm, true, false)) {
                return 'number';
              }
          
              /* In[23] and Out[34] */
              if (stream.match(/(?:In|Out)\[[0-9]*\]/, true, false)) {
                return 'atom';
              }
          
              // usage
              if (stream.match(/([a-zA-Z\$]+(?:`?[a-zA-Z0-9\$])*::usage)/, true, false)) {
                return 'meta';
              }
          
              // message
              if (stream.match(/([a-zA-Z\$]+(?:`?[a-zA-Z0-9\$])*::[a-zA-Z\$][a-zA-Z0-9\$]*):?/, true, false)) {
                return 'string-2';
              }
          
              // this makes a look-ahead match for something like variable:{_Integer}
              // the match is then forwarded to the mma-patterns tokenizer.
              if (stream.match(/([a-zA-Z\$][a-zA-Z0-9\$]*\s*:)(?:(?:[a-zA-Z\$][a-zA-Z0-9\$]*)|(?:[^:=>~@\^\&\*\)\[\]'\?,\|])).*/, true, false)) {
                return 'variable-2';
              }
          
              // catch variables which are used together with Blank (_), BlankSequence (__) or BlankNullSequence (___)
              // Cannot start with a number, but can have numbers at any other position. Examples
              // blub__Integer, a1_, b34_Integer32
              if (stream.match(/[a-zA-Z\$][a-zA-Z0-9\$]*_+[a-zA-Z\$][a-zA-Z0-9\$]*/, true, false)) {
                return 'variable-2';
              }
              if (stream.match(/[a-zA-Z\$][a-zA-Z0-9\$]*_+/, true, false)) {
                return 'variable-2';
              }
              if (stream.match(/_+[a-zA-Z\$][a-zA-Z0-9\$]*/, true, false)) {
                return 'variable-2';
              }
          
              // Named characters in Mathematica, like \[Gamma].
              if (stream.match(/\\\[[a-zA-Z\$][a-zA-Z0-9\$]*\]/, true, false)) {
                return 'variable-3';
              }
          
              // Match all braces separately
              if (stream.match(/(?:\[|\]|{|}|\(|\))/, true, false)) {
                return 'bracket';
              }
          
              // Catch Slots (#, ##, #3, ##9 and the V10 named slots #name). I have never seen someone using more than one digit after #, so we match
              // only one.
              if (stream.match(/(?:#[a-zA-Z\$][a-zA-Z0-9\$]*|#+[0-9]?)/, true, false)) {
                return 'variable-2';
              }
          
              // Literals like variables, keywords, functions
              if (stream.match(reIdInContext, true, false)) {
                return 'keyword';
              }
          
              // operators. Note that operators like @@ or /; are matched separately for each symbol.
              if (stream.match(/(?:\\|\+|\-|\*|\/|,|;|\.|:|@|~|=|>|<|&|\||_|`|'|\^|\?|!|%)/, true, false)) {
                return 'operator';
              }
          
              // everything else is an error
              return 'error';
            }
          
            function tokenString(stream, state) {
              var next, end = false, escaped = false;
              while ((next = stream.next()) != null) {
                if (next === '"' && !escaped) {
                  end = true;
                  break;
                }
                escaped = !escaped && next === '\\';
              }
              if (end && !escaped) {
                state.tokenize = tokenBase;
              }
              return 'string';
            };
          
            function tokenComment(stream, state) {
              var prev, next;
              while(state.commentLevel > 0 && (next = stream.next()) != null) {
                if (prev === '(' && next === '*') state.commentLevel++;
                if (prev === '*' && next === ')') state.commentLevel--;
                prev = next;
              }
              if (state.commentLevel <= 0) {
                state.tokenize = tokenBase;
              }
              return 'comment';
            }
          
            return {
              startState: function() {return {tokenize: tokenBase, commentLevel: 0};},
              token: function(stream, state) {
                if (stream.eatSpace()) return null;
                return state.tokenize(stream, state);
              },
              blockCommentStart: "(*",
              blockCommentEnd: "*)"
            };
          });
          
          CodeMirror.defineMIME('text/x-mathematica', {
            name: 'mathematica'
          });
          
          });
          
      • mirc
        • index.html
          <!doctype html>
          
          <title>CodeMirror: mIRC mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <link rel="stylesheet" href="../../theme/twilight.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="mirc.js"></script>
          <style>.CodeMirror {border: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">mIRC</a>
            </ul>
          </div>
          
          <article>
          <h2>mIRC mode</h2>
          <form><textarea id="code" name="code">
          ;AKA Nick Tracker by Ford_Lawnmower irc.GeekShed.net #Script-Help
          ;*****************************************************************************;
          ;**Start Setup
          ;Change JoinDisplay, below, for On Join AKA Display. On = 1 - Off = 0
          alias -l JoinDisplay { return 1 }
          ;Change MaxNicks, below, to the number of nicknames you want to store for each hostmask. I wouldn't go over 400 with this ;/
          alias -l MaxNicks { return 20 }
          ;Change AKALogo, below, To the text you want displayed before each AKA result.
          alias -l AKALogo { return 06 05A06K07A 06 }
          ;**End Setup
          ;*****************************************************************************;
          On *:Join:#: {
            if ($nick == $me) { .timer 1 1 ialupdateCheck $chan }
            NickNamesAdd $nick $+($network,$wildsite)
            if ($JoinDisplay) { .timerNickNames $+ $nick 1 2 NickNames.display $nick $chan $network $wildsite }
          }
          on *:Nick: { NickNamesAdd $newnick $+($network,$wildsite) $nick }
          alias -l NickNames.display {
            if ($gettok($hget(NickNames,$+($3,$4)),0,126) > 1) {
              echo -g $2 $AKALogo $+(09,$1) $AKALogo 07 $mid($replace($hget(NickNames,$+($3,$4)),$chr(126),$chr(44)),2,-1)
            }
          }
          alias -l NickNamesAdd {
            if ($hget(NickNames,$2)) {
              if (!$regex($hget(NickNames,$2),/~\Q $+ $replacecs($1,\E,\E\\E\Q) $+ \E~/i)) {
                if ($gettok($hget(NickNames,$2),0,126) <= $MaxNicks) {
                  hadd NickNames $2 $+($hget(NickNames,$2),$1,~)
                }
                else {
                  hadd NickNames $2 $+($mid($hget(NickNames,$2),$pos($hget(NickNames,$2),~,2)),$1,~)
                }
              }
            }
            else {
              hadd -m NickNames $2 $+(~,$1,~,$iif($3,$+($3,~)))
            }
          }
          alias -l Fix.All.MindUser {
            var %Fix.Count = $hfind(NickNames,/[^~]+[0-9]{4}~/,0,r).data
            while (%Fix.Count) {
              if ($Fix.MindUser($hget(NickNames,$hfind(NickNames,/[^~]+[0-9]{4}~/,%Fix.Count,r).data))) {
                echo -ag Record %Fix.Count - $v1 - Was Cleaned
                hadd NickNames $hfind(NickNames,/[^~]+[0-9]{4}~/,%Fix.Count,r).data $v1
              }
              dec %Fix.Count
            }
          }
          alias -l Fix.MindUser { return $regsubex($1,/[^~]+[0-9]{4}~/g,$null) }
          menu nicklist,query {
            -
            .AKA
            ..Check $$1: {
              if ($gettok($hget(NickNames,$+($network,$address($1,2))),0,126) > 1) {
                NickNames.display $1 $active $network $address($1,2)
              }
              else { echo -ag $AKALogo $+(09,$1) 07has not been known by any other nicknames while I have been watching. }
            }
            ..Cleanup $$1:hadd NickNames $+($network,$address($1,2)) $fix.minduser($hget(NickNames,$+($network,$address($1,2))))
            ..Clear $$1:hadd NickNames $+($network,$address($1,2)) $+(~,$1,~)
            ..AKA Search Dialog:dialog $iif($dialog(AKA_Search),-v,-m) AKA_Search AKA_Search
            -
          }
          menu status,channel {
            -
            .AKA
            ..AKA Search Dialog:dialog $iif($dialog(AKA_Search),-v,-m) AKA_Search AKA_Search
            ..Clean All Records:Fix.All.Minduser
            -
          }
          dialog AKA_Search {
            title "AKA Search Engine"
            size -1 -1 206 221
            option dbu
            edit "", 1, 8 5 149 10, autohs
            button "Search", 2, 163 4 32 12
            radio "Search HostMask", 4, 61 22 55 10
            radio "Search Nicknames", 5, 123 22 56 10
            list 6, 8 38 190 169, sort extsel vsbar
            button "Check Selected", 7, 67 206 40 12
            button "Close", 8, 160 206 38 12, cancel
            box "Search Type", 3, 11 17 183 18
            button "Copy to Clipboard", 9, 111 206 46 12
          }
          On *:Dialog:Aka_Search:init:*: { did -c $dname 5 }
          On *:Dialog:Aka_Search:Sclick:2,7,9: {
            if ($did == 2) && ($did($dname,1)) {
              did -r $dname 6
              var %search $+(*,$v1,*), %type $iif($did($dname,5).state,data,item), %matches = $hfind(NickNames,%search,0,w). [ $+ [ %type ] ]
              while (%matches) {
                did -a $dname 6 $hfind(NickNames,%search,%matches,w). [ $+ [ %type ] ]
                dec %matches
              }
              did -c $dname 6 1
            }
            elseif ($did == 7) && ($did($dname,6).seltext) { echo -ga $AKALogo 07 $mid($replace($hget(NickNames,$v1),$chr(126),$chr(44)),2,-1) }
            elseif ($did == 9) && ($did($dname,6).seltext) { clipboard $mid($v1,$pos($v1,*,1)) }
          }
          On *:Start:{
            if (!$hget(NickNames)) { hmake NickNames 10 }
            if ($isfile(NickNames.hsh)) { hload  NickNames NickNames.hsh }
          }
          On *:Exit: { if ($hget(NickNames)) { hsave NickNames NickNames.hsh } }
          On *:Disconnect: { if ($hget(NickNames)) { hsave NickNames NickNames.hsh } }
          On *:Unload: { hfree NickNames }
          alias -l ialupdateCheck {
            inc -z $+(%,ialupdateCheck,$network) $calc($nick($1,0) / 4)
            ;If your ial is already being updated on join .who $1 out.
            ;If you are using /names to update ial you will still need this line.
            .who $1
          }
          Raw 352:*: {
            if ($($+(%,ialupdateCheck,$network),2)) haltdef
            NickNamesAdd $6 $+($network,$address($6,2))
          }
          Raw 315:*: {
            if ($($+(%,ialupdateCheck,$network),2)) haltdef
          }
          
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  theme: "twilight",
                  lineNumbers: true,
                  matchBrackets: true,
                  indentUnit: 4,
                  mode: "text/mirc"
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/mirc</code>.</p>
          
            </article>
          
        • mirc.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          //mIRC mode by Ford_Lawnmower :: Based on Velocity mode by Steve O'Hara
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMIME("text/mirc", "mirc");
          CodeMirror.defineMode("mirc", function() {
            function parseWords(str) {
              var obj = {}, words = str.split(" ");
              for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
              return obj;
            }
            var specials = parseWords("$! $$ $& $? $+ $abook $abs $active $activecid " +
                                      "$activewid $address $addtok $agent $agentname $agentstat $agentver " +
                                      "$alias $and $anick $ansi2mirc $aop $appactive $appstate $asc $asctime " +
                                      "$asin $atan $avoice $away $awaymsg $awaytime $banmask $base $bfind " +
                                      "$binoff $biton $bnick $bvar $bytes $calc $cb $cd $ceil $chan $chanmodes " +
                                      "$chantypes $chat $chr $cid $clevel $click $cmdbox $cmdline $cnick $color " +
                                      "$com $comcall $comchan $comerr $compact $compress $comval $cos $count " +
                                      "$cr $crc $creq $crlf $ctime $ctimer $ctrlenter $date $day $daylight " +
                                      "$dbuh $dbuw $dccignore $dccport $dde $ddename $debug $decode $decompress " +
                                      "$deltok $devent $dialog $did $didreg $didtok $didwm $disk $dlevel $dll " +
                                      "$dllcall $dname $dns $duration $ebeeps $editbox $emailaddr $encode $error " +
                                      "$eval $event $exist $feof $ferr $fgetc $file $filename $filtered $finddir " +
                                      "$finddirn $findfile $findfilen $findtok $fline $floor $fopen $fread $fserve " +
                                      "$fulladdress $fulldate $fullname $fullscreen $get $getdir $getdot $gettok $gmt " +
                                      "$group $halted $hash $height $hfind $hget $highlight $hnick $hotline " +
                                      "$hotlinepos $ial $ialchan $ibl $idle $iel $ifmatch $ignore $iif $iil " +
                                      "$inelipse $ini $inmidi $inpaste $inpoly $input $inrect $inroundrect " +
                                      "$insong $instok $int $inwave $ip $isalias $isbit $isdde $isdir $isfile " +
                                      "$isid $islower $istok $isupper $keychar $keyrpt $keyval $knick $lactive " +
                                      "$lactivecid $lactivewid $left $len $level $lf $line $lines $link $lock " +
                                      "$lock $locked $log $logstamp $logstampfmt $longfn $longip $lower $ltimer " +
                                      "$maddress $mask $matchkey $matchtok $md5 $me $menu $menubar $menucontext " +
                                      "$menutype $mid $middir $mircdir $mircexe $mircini $mklogfn $mnick $mode " +
                                      "$modefirst $modelast $modespl $mouse $msfile $network $newnick $nick $nofile " +
                                      "$nopath $noqt $not $notags $notify $null $numeric $numok $oline $onpoly " +
                                      "$opnick $or $ord $os $passivedcc $pic $play $pnick $port $portable $portfree " +
                                      "$pos $prefix $prop $protect $puttok $qt $query $rand $r $rawmsg $read $readomo " +
                                      "$readn $regex $regml $regsub $regsubex $remove $remtok $replace $replacex " +
                                      "$reptok $result $rgb $right $round $scid $scon $script $scriptdir $scriptline " +
                                      "$sdir $send $server $serverip $sfile $sha1 $shortfn $show $signal $sin " +
                                      "$site $sline $snick $snicks $snotify $sock $sockbr $sockerr $sockname " +
                                      "$sorttok $sound $sqrt $ssl $sreq $sslready $status $strip $str $stripped " +
                                      "$syle $submenu $switchbar $tan $target $ticks $time $timer $timestamp " +
                                      "$timestampfmt $timezone $tip $titlebar $toolbar $treebar $trust $ulevel " +
                                      "$ulist $upper $uptime $url $usermode $v1 $v2 $var $vcmd $vcmdstat $vcmdver " +
                                      "$version $vnick $vol $wid $width $wildsite $wildtok $window $wrap $xor");
            var keywords = parseWords("abook ajinvite alias aline ame amsg anick aop auser autojoin avoice " +
                                      "away background ban bcopy beep bread break breplace bset btrunc bunset bwrite " +
                                      "channel clear clearall cline clipboard close cnick color comclose comopen " +
                                      "comreg continue copy creq ctcpreply ctcps dcc dccserver dde ddeserver " +
                                      "debug dec describe dialog did didtok disable disconnect dlevel dline dll " +
                                      "dns dqwindow drawcopy drawdot drawfill drawline drawpic drawrect drawreplace " +
                                      "drawrot drawsave drawscroll drawtext ebeeps echo editbox emailaddr enable " +
                                      "events exit fclose filter findtext finger firewall flash flist flood flush " +
                                      "flushini font fopen fseek fsend fserve fullname fwrite ghide gload gmove " +
                                      "gopts goto gplay gpoint gqreq groups gshow gsize gstop gtalk gunload hadd " +
                                      "halt haltdef hdec hdel help hfree hinc hload hmake hop hsave ial ialclear " +
                                      "ialmark identd if ignore iline inc invite iuser join kick linesep links list " +
                                      "load loadbuf localinfo log mdi me menubar mkdir mnick mode msg nick noop notice " +
                                      "notify omsg onotice part partall pdcc perform play playctrl pop protect pvoice " +
                                      "qme qmsg query queryn quit raw reload remini remote remove rename renwin " +
                                      "reseterror resetidle return rlevel rline rmdir run ruser save savebuf saveini " +
                                      "say scid scon server set showmirc signam sline sockaccept sockclose socklist " +
                                      "socklisten sockmark sockopen sockpause sockread sockrename sockudp sockwrite " +
                                      "sound speak splay sreq strip switchbar timer timestamp titlebar tnick tokenize " +
                                      "toolbar topic tray treebar ulist unload unset unsetall updatenl url uwho " +
                                      "var vcadd vcmd vcrem vol while whois window winhelp write writeint if isalnum " +
                                      "isalpha isaop isavoice isban ischan ishop isignore isin isincs isletter islower " +
                                      "isnotify isnum ison isop isprotect isreg isupper isvoice iswm iswmcs " +
                                      "elseif else goto menu nicklist status title icon size option text edit " +
                                      "button check radio box scroll list combo link tab item");
            var functions = parseWords("if elseif else and not or eq ne in ni for foreach while switch");
            var isOperatorChar = /[+\-*&%=<>!?^\/\|]/;
            function chain(stream, state, f) {
              state.tokenize = f;
              return f(stream, state);
            }
            function tokenBase(stream, state) {
              var beforeParams = state.beforeParams;
              state.beforeParams = false;
              var ch = stream.next();
              if (/[\[\]{}\(\),\.]/.test(ch)) {
                if (ch == "(" && beforeParams) state.inParams = true;
                else if (ch == ")") state.inParams = false;
                return null;
              }
              else if (/\d/.test(ch)) {
                stream.eatWhile(/[\w\.]/);
                return "number";
              }
              else if (ch == "\\") {
                stream.eat("\\");
                stream.eat(/./);
                return "number";
              }
              else if (ch == "/" && stream.eat("*")) {
                return chain(stream, state, tokenComment);
              }
              else if (ch == ";" && stream.match(/ *\( *\(/)) {
                return chain(stream, state, tokenUnparsed);
              }
              else if (ch == ";" && !state.inParams) {
                stream.skipToEnd();
                return "comment";
              }
              else if (ch == '"') {
                stream.eat(/"/);
                return "keyword";
              }
              else if (ch == "$") {
                stream.eatWhile(/[$_a-z0-9A-Z\.:]/);
                if (specials && specials.propertyIsEnumerable(stream.current().toLowerCase())) {
                  return "keyword";
                }
                else {
                  state.beforeParams = true;
                  return "builtin";
                }
              }
              else if (ch == "%") {
                stream.eatWhile(/[^,^\s^\(^\)]/);
                state.beforeParams = true;
                return "string";
              }
              else if (isOperatorChar.test(ch)) {
                stream.eatWhile(isOperatorChar);
                return "operator";
              }
              else {
                stream.eatWhile(/[\w\$_{}]/);
                var word = stream.current().toLowerCase();
                if (keywords && keywords.propertyIsEnumerable(word))
                  return "keyword";
                if (functions && functions.propertyIsEnumerable(word)) {
                  state.beforeParams = true;
                  return "keyword";
                }
                return null;
              }
            }
            function tokenComment(stream, state) {
              var maybeEnd = false, ch;
              while (ch = stream.next()) {
                if (ch == "/" && maybeEnd) {
                  state.tokenize = tokenBase;
                  break;
                }
                maybeEnd = (ch == "*");
              }
              return "comment";
            }
            function tokenUnparsed(stream, state) {
              var maybeEnd = 0, ch;
              while (ch = stream.next()) {
                if (ch == ";" && maybeEnd == 2) {
                  state.tokenize = tokenBase;
                  break;
                }
                if (ch == ")")
                  maybeEnd++;
                else if (ch != " ")
                  maybeEnd = 0;
              }
              return "meta";
            }
            return {
              startState: function() {
                return {
                  tokenize: tokenBase,
                  beforeParams: false,
                  inParams: false
                };
              },
              token: function(stream, state) {
                if (stream.eatSpace()) return null;
                return state.tokenize(stream, state);
              }
            };
          });
          
          });
          
      • mllike
        • index.html
          <!doctype html>
          
          <title>CodeMirror: ML-like mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel=stylesheet href=../../lib/codemirror.css>
          <script src=../../lib/codemirror.js></script>
          <script src=../../addon/edit/matchbrackets.js></script>
          <script src=mllike.js></script>
          <style type=text/css>
            .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}
          </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">ML-like</a>
            </ul>
          </div>
          
          <article>
          <h2>OCaml mode</h2>
          
          
          <textarea id="ocamlCode">
          (* Summing a list of integers *)
          let rec sum xs =
            match xs with
              | []       -&gt; 0
              | x :: xs' -&gt; x + sum xs'
          
          (* Quicksort *)
          let rec qsort = function
             | [] -&gt; []
             | pivot :: rest -&gt;
                 let is_less x = x &lt; pivot in
                 let left, right = List.partition is_less rest in
                 qsort left @ [pivot] @ qsort right
          
          (* Fibonacci Sequence *)
          let rec fib_aux n a b =
            match n with
            | 0 -&gt; a
            | _ -&gt; fib_aux (n - 1) (a + b) a
          let fib n = fib_aux n 0 1
          
          (* Birthday paradox *)
          let year_size = 365.
          
          let rec birthday_paradox prob people =
              let prob' = (year_size -. float people) /. year_size *. prob  in
              if prob' &lt; 0.5 then
                  Printf.printf "answer = %d\n" (people+1)
              else
                  birthday_paradox prob' (people+1) ;;
          
          birthday_paradox 1.0 1
          
          (* Church numerals *)
          let zero f x = x
          let succ n f x = f (n f x)
          let one = succ zero
          let two = succ (succ zero)
          let add n1 n2 f x = n1 f (n2 f x)
          let to_string n = n (fun k -&gt; "S" ^ k) "0"
          let _ = to_string (add (succ two) two)
          
          (* Elementary functions *)
          let square x = x * x;;
          let rec fact x =
            if x &lt;= 1 then 1 else x * fact (x - 1);;
          
          (* Automatic memory management *)
          let l = 1 :: 2 :: 3 :: [];;
          [1; 2; 3];;
          5 :: l;;
          
          (* Polymorphism: sorting lists *)
          let rec sort = function
            | [] -&gt; []
            | x :: l -&gt; insert x (sort l)
          
          and insert elem = function
            | [] -&gt; [elem]
            | x :: l -&gt;
                if elem &lt; x then elem :: x :: l else x :: insert elem l;;
          
          (* Imperative features *)
          let add_polynom p1 p2 =
            let n1 = Array.length p1
            and n2 = Array.length p2 in
            let result = Array.create (max n1 n2) 0 in
            for i = 0 to n1 - 1 do result.(i) &lt;- p1.(i) done;
            for i = 0 to n2 - 1 do result.(i) &lt;- result.(i) + p2.(i) done;
            result;;
          add_polynom [| 1; 2 |] [| 1; 2; 3 |];;
          
          (* We may redefine fact using a reference cell and a for loop *)
          let fact n =
            let result = ref 1 in
            for i = 2 to n do
              result := i * !result
             done;
             !result;;
          fact 5;;
          
          (* Triangle (graphics) *)
          let () =
            ignore( Glut.init Sys.argv );
            Glut.initDisplayMode ~double_buffer:true ();
            ignore (Glut.createWindow ~title:"OpenGL Demo");
            let angle t = 10. *. t *. t in
            let render () =
              GlClear.clear [ `color ];
              GlMat.load_identity ();
              GlMat.rotate ~angle: (angle (Sys.time ())) ~z:1. ();
              GlDraw.begins `triangles;
              List.iter GlDraw.vertex2 [-1., -1.; 0., 1.; 1., -1.];
              GlDraw.ends ();
              Glut.swapBuffers () in
            GlMat.mode `modelview;
            Glut.displayFunc ~cb:render;
            Glut.idleFunc ~cb:(Some Glut.postRedisplay);
            Glut.mainLoop ()
          
          (* A Hundred Lines of Caml - http://caml.inria.fr/about/taste.en.html *)
          (* OCaml page on Wikipedia - http://en.wikipedia.org/wiki/OCaml *)
          </textarea>
          
          <h2>F# mode</h2>
          <textarea id="fsharpCode">
          module CodeMirror.FSharp
          
          let rec fib = function
              | 0 -> 0
              | 1 -> 1
              | n -> fib (n - 1) + fib (n - 2)
          
          type Point =
              {
                  x : int
                  y : int
              }
          
          type Color =
              | Red
              | Green
              | Blue
          
          [0 .. 10]
          |> List.map ((+) 2)
          |> List.fold (fun x y -> x + y) 0
          |> printf "%i"
          </textarea>
          
          
          <script>
            var ocamlEditor = CodeMirror.fromTextArea(document.getElementById('ocamlCode'), {
              mode: 'text/x-ocaml',
              lineNumbers: true,
              matchBrackets: true
            });
          
            var fsharpEditor = CodeMirror.fromTextArea(document.getElementById('fsharpCode'), {
              mode: 'text/x-fsharp',
              lineNumbers: true,
              matchBrackets: true
            });
          </script>
          
          <p><strong>MIME types defined:</strong> <code>text/x-ocaml</code> (OCaml) and <code>text/x-fsharp</code> (F#).</p>
          </article>
          
        • mllike.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode('mllike', function(_config, parserConfig) {
            var words = {
              'let': 'keyword',
              'rec': 'keyword',
              'in': 'keyword',
              'of': 'keyword',
              'and': 'keyword',
              'if': 'keyword',
              'then': 'keyword',
              'else': 'keyword',
              'for': 'keyword',
              'to': 'keyword',
              'while': 'keyword',
              'do': 'keyword',
              'done': 'keyword',
              'fun': 'keyword',
              'function': 'keyword',
              'val': 'keyword',
              'type': 'keyword',
              'mutable': 'keyword',
              'match': 'keyword',
              'with': 'keyword',
              'try': 'keyword',
              'open': 'builtin',
              'ignore': 'builtin',
              'begin': 'keyword',
              'end': 'keyword'
            };
          
            var extraWords = parserConfig.extraWords || {};
            for (var prop in extraWords) {
              if (extraWords.hasOwnProperty(prop)) {
                words[prop] = parserConfig.extraWords[prop];
              }
            }
          
            function tokenBase(stream, state) {
              var ch = stream.next();
          
              if (ch === '"') {
                state.tokenize = tokenString;
                return state.tokenize(stream, state);
              }
              if (ch === '(') {
                if (stream.eat('*')) {
                  state.commentLevel++;
                  state.tokenize = tokenComment;
                  return state.tokenize(stream, state);
                }
              }
              if (ch === '~') {
                stream.eatWhile(/\w/);
                return 'variable-2';
              }
              if (ch === '`') {
                stream.eatWhile(/\w/);
                return 'quote';
              }
              if (ch === '/' && parserConfig.slashComments && stream.eat('/')) {
                stream.skipToEnd();
                return 'comment';
              }
              if (/\d/.test(ch)) {
                stream.eatWhile(/[\d]/);
                if (stream.eat('.')) {
                  stream.eatWhile(/[\d]/);
                }
                return 'number';
              }
              if ( /[+\-*&%=<>!?|]/.test(ch)) {
                return 'operator';
              }
              stream.eatWhile(/\w/);
              var cur = stream.current();
              return words.hasOwnProperty(cur) ? words[cur] : 'variable';
            }
          
            function tokenString(stream, state) {
              var next, end = false, escaped = false;
              while ((next = stream.next()) != null) {
                if (next === '"' && !escaped) {
                  end = true;
                  break;
                }
                escaped = !escaped && next === '\\';
              }
              if (end && !escaped) {
                state.tokenize = tokenBase;
              }
              return 'string';
            };
          
            function tokenComment(stream, state) {
              var prev, next;
              while(state.commentLevel > 0 && (next = stream.next()) != null) {
                if (prev === '(' && next === '*') state.commentLevel++;
                if (prev === '*' && next === ')') state.commentLevel--;
                prev = next;
              }
              if (state.commentLevel <= 0) {
                state.tokenize = tokenBase;
              }
              return 'comment';
            }
          
            return {
              startState: function() {return {tokenize: tokenBase, commentLevel: 0};},
              token: function(stream, state) {
                if (stream.eatSpace()) return null;
                return state.tokenize(stream, state);
              },
          
              blockCommentStart: "(*",
              blockCommentEnd: "*)",
              lineComment: parserConfig.slashComments ? "//" : null
            };
          });
          
          CodeMirror.defineMIME('text/x-ocaml', {
            name: 'mllike',
            extraWords: {
              'succ': 'keyword',
              'trace': 'builtin',
              'exit': 'builtin',
              'print_string': 'builtin',
              'print_endline': 'builtin',
              'true': 'atom',
              'false': 'atom',
              'raise': 'keyword'
            }
          });
          
          CodeMirror.defineMIME('text/x-fsharp', {
            name: 'mllike',
            extraWords: {
              'abstract': 'keyword',
              'as': 'keyword',
              'assert': 'keyword',
              'base': 'keyword',
              'class': 'keyword',
              'default': 'keyword',
              'delegate': 'keyword',
              'downcast': 'keyword',
              'downto': 'keyword',
              'elif': 'keyword',
              'exception': 'keyword',
              'extern': 'keyword',
              'finally': 'keyword',
              'global': 'keyword',
              'inherit': 'keyword',
              'inline': 'keyword',
              'interface': 'keyword',
              'internal': 'keyword',
              'lazy': 'keyword',
              'let!': 'keyword',
              'member' : 'keyword',
              'module': 'keyword',
              'namespace': 'keyword',
              'new': 'keyword',
              'null': 'keyword',
              'override': 'keyword',
              'private': 'keyword',
              'public': 'keyword',
              'return': 'keyword',
              'return!': 'keyword',
              'select': 'keyword',
              'static': 'keyword',
              'struct': 'keyword',
              'upcast': 'keyword',
              'use': 'keyword',
              'use!': 'keyword',
              'val': 'keyword',
              'when': 'keyword',
              'yield': 'keyword',
              'yield!': 'keyword',
          
              'List': 'builtin',
              'Seq': 'builtin',
              'Map': 'builtin',
              'Set': 'builtin',
              'int': 'builtin',
              'string': 'builtin',
              'raise': 'builtin',
              'failwith': 'builtin',
              'not': 'builtin',
              'true': 'builtin',
              'false': 'builtin'
            },
            slashComments: true
          });
          
          });
          
      • modelica
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Modelica mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <link rel="stylesheet" href="../../addon/hint/show-hint.css">
          <script src="../../addon/hint/show-hint.js"></script>
          <script src="modelica.js"></script>
          <style>.CodeMirror {border: 2px inset #dee;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Modelica</a>
            </ul>
          </div>
          
          <article>
          <h2>Modelica mode</h2>
          
          <div><textarea id="modelica">
          model BouncingBall
            parameter Real e = 0.7;
            parameter Real g = 9.81;
            Real h(start=1);
            Real v;
            Boolean flying(start=true);
            Boolean impact;
            Real v_new;
          equation
            impact = h <= 0.0;
            der(v) = if flying then -g else 0;
            der(h) = v;
            when {h <= 0.0 and v <= 0.0, impact} then
              v_new = if edge(impact) then -e*pre(v) else 0;
              flying = v_new > 0;
              reinit(v, v_new);
            end when;
            annotation (uses(Modelica(version="3.2")));
          end BouncingBall;
          </textarea></div>
          
              <script>
                var modelicaEditor = CodeMirror.fromTextArea(document.getElementById("modelica"), {
                  lineNumbers: true,
                  matchBrackets: true,
                  mode: "text/x-modelica"
                });
                var mac = CodeMirror.keyMap.default == CodeMirror.keyMap.macDefault;
                CodeMirror.keyMap.default[(mac ? "Cmd" : "Ctrl") + "-Space"] = "autocomplete";
              </script>
          
              <p>Simple mode that tries to handle Modelica as well as it can.</p>
          
              <p><strong>MIME types defined:</strong> <code>text/x-modelica</code>
              (Modlica code).</p>
          </article>
          
        • modelica.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // Modelica support for CodeMirror, copyright (c) by Lennart Ochel
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })
          
          (function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineMode("modelica", function(config, parserConfig) {
          
              var indentUnit = config.indentUnit;
              var keywords = parserConfig.keywords || {};
              var builtin = parserConfig.builtin || {};
              var atoms = parserConfig.atoms || {};
          
              var isSingleOperatorChar = /[;=\(:\),{}.*<>+\-\/^\[\]]/;
              var isDoubleOperatorChar = /(:=|<=|>=|==|<>|\.\+|\.\-|\.\*|\.\/|\.\^)/;
              var isDigit = /[0-9]/;
              var isNonDigit = /[_a-zA-Z]/;
          
              function tokenLineComment(stream, state) {
                stream.skipToEnd();
                state.tokenize = null;
                return "comment";
              }
          
              function tokenBlockComment(stream, state) {
                var maybeEnd = false, ch;
                while (ch = stream.next()) {
                  if (maybeEnd && ch == "/") {
                    state.tokenize = null;
                    break;
                  }
                  maybeEnd = (ch == "*");
                }
                return "comment";
              }
          
              function tokenString(stream, state) {
                var escaped = false, ch;
                while ((ch = stream.next()) != null) {
                  if (ch == '"' && !escaped) {
                    state.tokenize = null;
                    state.sol = false;
                    break;
                  }
                  escaped = !escaped && ch == "\\";
                }
          
                return "string";
              }
          
              function tokenIdent(stream, state) {
                stream.eatWhile(isDigit);
                while (stream.eat(isDigit) || stream.eat(isNonDigit)) { }
          
          
                var cur = stream.current();
          
                if(state.sol && (cur == "package" || cur == "model" || cur == "when" || cur == "connector")) state.level++;
                else if(state.sol && cur == "end" && state.level > 0) state.level--;
          
                state.tokenize = null;
                state.sol = false;
          
                if (keywords.propertyIsEnumerable(cur)) return "keyword";
                else if (builtin.propertyIsEnumerable(cur)) return "builtin";
                else if (atoms.propertyIsEnumerable(cur)) return "atom";
                else return "variable";
              }
          
              function tokenQIdent(stream, state) {
                while (stream.eat(/[^']/)) { }
          
                state.tokenize = null;
                state.sol = false;
          
                if(stream.eat("'"))
                  return "variable";
                else
                  return "error";
              }
          
              function tokenUnsignedNuber(stream, state) {
                stream.eatWhile(isDigit);
                if (stream.eat('.')) {
                  stream.eatWhile(isDigit);
                }
                if (stream.eat('e') || stream.eat('E')) {
                  if (!stream.eat('-'))
                    stream.eat('+');
                  stream.eatWhile(isDigit);
                }
          
                state.tokenize = null;
                state.sol = false;
                return "number";
              }
          
              // Interface
              return {
                startState: function() {
                  return {
                    tokenize: null,
                    level: 0,
                    sol: true
                  };
                },
          
                token: function(stream, state) {
                  if(state.tokenize != null) {
                    return state.tokenize(stream, state);
                  }
          
                  if(stream.sol()) {
                    state.sol = true;
                  }
          
                  // WHITESPACE
                  if(stream.eatSpace()) {
                    state.tokenize = null;
                    return null;
                  }
          
                  var ch = stream.next();
          
                  // LINECOMMENT
                  if(ch == '/' && stream.eat('/')) {
                    state.tokenize = tokenLineComment;
                  }
                  // BLOCKCOMMENT
                  else if(ch == '/' && stream.eat('*')) {
                    state.tokenize = tokenBlockComment;
                  }
                  // TWO SYMBOL TOKENS
                  else if(isDoubleOperatorChar.test(ch+stream.peek())) {
                    stream.next();
                    state.tokenize = null;
                    return "operator";
                  }
                  // SINGLE SYMBOL TOKENS
                  else if(isSingleOperatorChar.test(ch)) {
                    state.tokenize = null;
                    return "operator";
                  }
                  // IDENT
                  else if(isNonDigit.test(ch)) {
                    state.tokenize = tokenIdent;
                  }
                  // Q-IDENT
                  else if(ch == "'" && stream.peek() && stream.peek() != "'") {
                    state.tokenize = tokenQIdent;
                  }
                  // STRING
                  else if(ch == '"') {
                    state.tokenize = tokenString;
                  }
                  // UNSIGNED_NUBER
                  else if(isDigit.test(ch)) {
                    state.tokenize = tokenUnsignedNuber;
                  }
                  // ERROR
                  else {
                    state.tokenize = null;
                    return "error";
                  }
          
                  return state.tokenize(stream, state);
                },
          
                indent: function(state, textAfter) {
                  if (state.tokenize != null) return CodeMirror.Pass;
          
                  var level = state.level;
                  if(/(algorithm)/.test(textAfter)) level--;
                  if(/(equation)/.test(textAfter)) level--;
                  if(/(initial algorithm)/.test(textAfter)) level--;
                  if(/(initial equation)/.test(textAfter)) level--;
                  if(/(end)/.test(textAfter)) level--;
          
                  if(level > 0)
                    return indentUnit*level;
                  else
                    return 0;
                },
          
                blockCommentStart: "/*",
                blockCommentEnd: "*/",
                lineComment: "//"
              };
            });
          
            function words(str) {
              var obj = {}, words = str.split(" ");
              for (var i=0; i<words.length; ++i)
                obj[words[i]] = true;
              return obj;
            }
          
            var modelicaKeywords = "algorithm and annotation assert block break class connect connector constant constrainedby der discrete each else elseif elsewhen encapsulated end enumeration equation expandable extends external false final flow for function if import impure in initial inner input loop model not operator or outer output package parameter partial protected public pure record redeclare replaceable return stream then true type when while within";
            var modelicaBuiltin = "abs acos actualStream asin atan atan2 cardinality ceil cos cosh delay div edge exp floor getInstanceName homotopy inStream integer log log10 mod pre reinit rem semiLinear sign sin sinh spatialDistribution sqrt tan tanh";
            var modelicaAtoms = "Real Boolean Integer String";
          
            function def(mimes, mode) {
              if (typeof mimes == "string")
                mimes = [mimes];
          
              var words = [];
          
              function add(obj) {
                if (obj)
                  for (var prop in obj)
                    if (obj.hasOwnProperty(prop))
                      words.push(prop);
              }
          
              add(mode.keywords);
              add(mode.builtin);
              add(mode.atoms);
          
              if (words.length) {
                mode.helperType = mimes[0];
                CodeMirror.registerHelper("hintWords", mimes[0], words);
              }
          
              for (var i=0; i<mimes.length; ++i)
                CodeMirror.defineMIME(mimes[i], mode);
            }
          
            def(["text/x-modelica"], {
              name: "modelica",
              keywords: words(modelicaKeywords),
              builtin: words(modelicaBuiltin),
              atoms: words(modelicaAtoms)
            });
          });
          
      • mscgen
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Oz mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="mscgen.js"></script>
          <style>.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">MscGen</a>
            </ul>
          </div>
          
          <article>
          <h2>MscGen mode</h2>
          
          <div><textarea id="code">
          # Sample mscgen program
          # See http://www.mcternan.me.uk/mscgen or 
          # https://sverweij.github.io/mscgen_js for more samples
          
          msc {
            # options
            hscale="1.2";
          
            # entities/ lifelines
            a [label="Entity A"],
            b [label="Entity B", linecolor="red", arclinecolor="red", textbgcolor="pink"],
            c [label="Entity C"];
          
            # arcs/ messages
            a => c [label="doSomething(args)"];
            b => c [label="doSomething(args)"];
            c >> * [label="everyone asked me", arcskip="1"];
            c =>> c [label="doing something"];
            c -x * [label="report back", arcskip="1"];
            |||;
            --- [label="shows's over, however ..."];
            b => a [label="did you see c doing something?"];
            a -> b [label="nope"];
            b :> a [label="shall we ask again?"];
            a => b [label="naah"];
            ...;
          }
          </textarea></div>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  mode: "mscgen",
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-mscgen</code></p>
          </article>
          
        • index_msgenny.html
          <!doctype html>
          <html>
            <head>
              <meta charset="utf-8">
              <title>CodeMirror: msgenny mode</title>
              <link rel="stylesheet" href="../../lib/codemirror.css">
              <script src="../../lib/codemirror.js"></script>
              <script src="mscgen.js"></script>
              <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
            </head>
            <body>
              <h1>CodeMirror: msgenny mode</h1>
          
          <div><textarea id="code">
          # Sample msgenny program
          # https://sverweij.github.io/mscgen_js for more samples
          
          a -> b   : a -> b  (signal);
          a => b   : a => b  (method);
          b >> a   : b >> a  (return value);
          a =>> b  : a =>> b (callback);
          a -x b   : a -x b  (lost);
          a :> b   : a :> b  (emphasis);
          a .. b   : a .. b  (dotted);
          a -- b   : "a -- b straight line";
          a note a : a note a\n(note),
          b box b  : b box b\n(action);
          a rbox a : a rbox a\n(reference),
          b abox b : b abox b\n(state/ condition);
          |||      : ||| (empty row);
          ...      : ... (omitted row);
          ---      : --- (comment);
          </textarea></div>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  mode: "msgenny",
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-msgenny</code></p>
            </body>
          </html>
          
        • index_xu.html
          <!doctype html>
          <html>
            <head>
              <meta charset="utf-8">
              <title>CodeMirror: xu mode</title>
              <link rel="stylesheet" href="../../lib/codemirror.css">
              <script src="../../lib/codemirror.js"></script>
              <script src="mscgen.js"></script>
              <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
            </head>
            <body>
              <h1>CodeMirror: xù mode</h1>
          
          <div><textarea id="code">
          # test50 - expansions to mscgen to support inline expressions
          #          for now in a separate language: xù
          msc {
          
            hscale="0.8",
            width="700";
          
            a,
            b [label="change store"],
            c,
            d [label="necro queue"],
            e [label="natalis queue"],
            f;
          
            a =>> b [label="get change list()"];
            a alt f [label="changes found"] { /* alt is a xu specific keyword*/
              b >> a [label="list of changes"];
              a =>> c [label="cull old stuff (list of changes)"];
              b loop e [label="for each change"] { // loop is xu specific as well...
                /*
                 * Here interesting stuff happens.
                 * TBD
                 */
                c =>> b [label="get change()"];
                b >> c [label="change"];
                c alt e [label="change too old"] {
                  c =>> d [label="queue(change)"];
                  --- [label="change newer than latest run"];
                  c =>> e [label="queue(change)"];
                  --- [label="all other cases"];
                  ||| [label="leave well alone"];
                };
              };
              
              
              c >> a [label="done
              processing"];
              
              /* shucks! nothing found ...*/
              --- [label="nothing found"];
              b >> a [label="nothing"];
              a note a [label="silent exit"];
            };
          }
          </textarea></div>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  mode: "xu",
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-xu</code></p>
            </body>
          </html>
          
        • mscgen.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // mode(s) for the sequence chart dsl's mscgen, xù and msgenny
          // For more information on mscgen, see the site of the original author:
          // http://www.mcternan.me.uk/mscgen
          //
          // This mode for mscgen and the two derivative languages were
          // originally made for use in the mscgen_js interpreter
          // (https://sverweij.github.io/mscgen_js)
          
          (function(mod) {
            if ( typeof exports == "object" && typeof module == "object")// CommonJS
              mod(require("../../lib/codemirror"));
            else if ( typeof define == "function" && define.amd)// AMD
              define(["../../lib/codemirror"], mod);
            else// Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            var languages = {
              mscgen: {
                "keywords" : ["msc"],
                "options" : ["hscale", "width", "arcgradient", "wordwraparcs"],
                "attributes" : ["label", "idurl", "id", "url", "linecolor", "linecolour", "textcolor", "textcolour", "textbgcolor", "textbgcolour", "arclinecolor", "arclinecolour", "arctextcolor", "arctextcolour", "arctextbgcolor", "arctextbgcolour", "arcskip"],
                "brackets" : ["\\{", "\\}"], // [ and  ] are brackets too, but these get handled in with lists
                "arcsWords" : ["note", "abox", "rbox", "box"],
                "arcsOthers" : ["\\|\\|\\|", "\\.\\.\\.", "---", "--", "<->", "==", "<<=>>", "<=>", "\\.\\.", "<<>>", "::", "<:>", "->", "=>>", "=>", ">>", ":>", "<-", "<<=", "<=", "<<", "<:", "x-", "-x"],
                "singlecomment" : ["//", "#"],
                "operators" : ["="]
              },
              xu: {
                "keywords" : ["msc"],
                "options" : ["hscale", "width", "arcgradient", "wordwraparcs", "watermark"],
                "attributes" : ["label", "idurl", "id", "url", "linecolor", "linecolour", "textcolor", "textcolour", "textbgcolor", "textbgcolour", "arclinecolor", "arclinecolour", "arctextcolor", "arctextcolour", "arctextbgcolor", "arctextbgcolour", "arcskip"],
                "brackets" : ["\\{", "\\}"],  // [ and  ] are brackets too, but these get handled in with lists
                "arcsWords" : ["note", "abox", "rbox", "box", "alt", "else", "opt", "break", "par", "seq", "strict", "neg", "critical", "ignore", "consider", "assert", "loop", "ref", "exc"],
                "arcsOthers" : ["\\|\\|\\|", "\\.\\.\\.", "---", "--", "<->", "==", "<<=>>", "<=>", "\\.\\.", "<<>>", "::", "<:>", "->", "=>>", "=>", ">>", ":>", "<-", "<<=", "<=", "<<", "<:", "x-", "-x"],
                "singlecomment" : ["//", "#"],
                "operators" : ["="]
              },
              msgenny: {
                "keywords" : null,
                "options" : ["hscale", "width", "arcgradient", "wordwraparcs", "watermark"],
                "attributes" : null,
                "brackets" : ["\\{", "\\}"],
                "arcsWords" : ["note", "abox", "rbox", "box", "alt", "else", "opt", "break", "par", "seq", "strict", "neg", "critical", "ignore", "consider", "assert", "loop", "ref", "exc"],
                "arcsOthers" : ["\\|\\|\\|", "\\.\\.\\.", "---", "--", "<->", "==", "<<=>>", "<=>", "\\.\\.", "<<>>", "::", "<:>", "->", "=>>", "=>", ">>", ":>", "<-", "<<=", "<=", "<<", "<:", "x-", "-x"],
                "singlecomment" : ["//", "#"],
                "operators" : ["="]
              }
            }
          
            CodeMirror.defineMode("mscgen", function(_, modeConfig) {
              var language = languages[modeConfig && modeConfig.language || "mscgen"]
              return {
                startState: startStateFn,
                copyState: copyStateFn,
                token: produceTokenFunction(language),
                lineComment : "#",
                blockCommentStart : "/*",
                blockCommentEnd : "*/"
              };
            });
          
            CodeMirror.defineMIME("text/x-mscgen", "mscgen");
            CodeMirror.defineMIME("text/x-xu", {name: "mscgen", language: "xu"});
            CodeMirror.defineMIME("text/x-msgenny", {name: "mscgen", language: "msgenny"});
          
            function wordRegexpBoundary(pWords) {
              return new RegExp("\\b((" + pWords.join(")|(") + "))\\b", "i");
            }
          
            function wordRegexp(pWords) {
              return new RegExp("((" + pWords.join(")|(") + "))", "i");
            }
          
            function startStateFn() {
              return {
                inComment : false,
                inString : false,
                inAttributeList : false,
                inScript : false
              };
            }
          
            function copyStateFn(pState) {
              return {
                inComment : pState.inComment,
                inString : pState.inString,
                inAttributeList : pState.inAttributeList,
                inScript : pState.inScript
              };
            }
          
            function produceTokenFunction(pConfig) {
          
              return function(pStream, pState) {
                if (pStream.match(wordRegexp(pConfig.brackets), true, true)) {
                  return "bracket";
                }
                /* comments */
                if (!pState.inComment) {
                  if (pStream.match(/\/\*[^\*\/]*/, true, true)) {
                    pState.inComment = true;
                    return "comment";
                  }
                  if (pStream.match(wordRegexp(pConfig.singlecomment), true, true)) {
                    pStream.skipToEnd();
                    return "comment";
                  }
                }
                if (pState.inComment) {
                  if (pStream.match(/[^\*\/]*\*\//, true, true))
                    pState.inComment = false;
                  else
                    pStream.skipToEnd();
                  return "comment";
                }
                /* strings */
                if (!pState.inString && pStream.match(/\"(\\\"|[^\"])*/, true, true)) {
                  pState.inString = true;
                  return "string";
                }
                if (pState.inString) {
                  if (pStream.match(/[^\"]*\"/, true, true))
                    pState.inString = false;
                  else
                    pStream.skipToEnd();
                  return "string";
                }
                /* keywords & operators */
                if (!!pConfig.keywords && pStream.match(wordRegexpBoundary(pConfig.keywords), true, true))
                  return "keyword";
          
                if (pStream.match(wordRegexpBoundary(pConfig.options), true, true))
                  return "keyword";
          
                if (pStream.match(wordRegexpBoundary(pConfig.arcsWords), true, true))
                  return "keyword";
          
                if (pStream.match(wordRegexp(pConfig.arcsOthers), true, true))
                  return "keyword";
          
                if (!!pConfig.operators && pStream.match(wordRegexp(pConfig.operators), true, true))
                  return "operator";
          
                /* attribute lists */
                if (!pConfig.inAttributeList && !!pConfig.attributes && pStream.match(/\[/, true, true)) {
                  pConfig.inAttributeList = true;
                  return "bracket";
                }
                if (pConfig.inAttributeList) {
                  if (pConfig.attributes !== null && pStream.match(wordRegexpBoundary(pConfig.attributes), true, true)) {
                    return "attribute";
                  }
                  if (pStream.match(/]/, true, true)) {
                    pConfig.inAttributeList = false;
                    return "bracket";
                  }
                }
          
                pStream.next();
                return "base";
              };
            }
          
          });
          
        • mscgen_test.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function() {
            var mode = CodeMirror.getMode({indentUnit: 2}, "mscgen");
            function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
          
            MT("empty chart",
               "[keyword msc][bracket {]",
               "[base   ]",
               "[bracket }]"
             );
          
            MT("comments",
              "[comment // a single line comment]",
              "[comment # another  single line comment /* and */ ignored here]",
              "[comment /* A multi-line comment even though it contains]",
              "[comment msc keywords and \"quoted text\"*/]");
          
            MT("strings",
              "[string \"// a string\"]",
              "[string \"a string running over]",
              "[string two lines\"]",
              "[string \"with \\\"escaped quote\"]"
            );
          
            MT("xù/ msgenny keywords classify as 'base'",
              "[base watermark]",
              "[base alt loop opt ref else break par seq assert]"
            );
          
            MT("mscgen options classify as keyword",
              "[keyword hscale]", "[keyword width]", "[keyword arcgradient]", "[keyword wordwraparcs]"
            );
          
            MT("mscgen arcs classify as keyword",
              "[keyword note]","[keyword abox]","[keyword rbox]","[keyword box]",
              "[keyword |||...---]", "[keyword ..--==::]",
              "[keyword ->]", "[keyword <-]", "[keyword <->]",
              "[keyword =>]", "[keyword <=]", "[keyword <=>]",
              "[keyword =>>]", "[keyword <<=]", "[keyword <<=>>]",
              "[keyword >>]", "[keyword <<]", "[keyword <<>>]",
              "[keyword -x]", "[keyword x-]", "[keyword -X]", "[keyword X-]",
              "[keyword :>]", "[keyword <:]", "[keyword <:>]"
            );
          
            MT("within an attribute list, attributes classify as attribute",
              "[bracket [[][attribute label]",
              "[attribute id]","[attribute url]","[attribute idurl]",
              "[attribute linecolor]","[attribute linecolour]","[attribute textcolor]","[attribute textcolour]","[attribute textbgcolor]","[attribute textbgcolour]",
              "[attribute arclinecolor]","[attribute arclinecolour]","[attribute arctextcolor]","[attribute arctextcolour]","[attribute arctextbgcolor]","[attribute arctextbgcolour]",
              "[attribute arcskip][bracket ]]]"
            );
          
            MT("outside an attribute list, attributes classify as base",
              "[base label]",
              "[base id]","[base url]","[base idurl]",
              "[base linecolor]","[base linecolour]","[base textcolor]","[base textcolour]","[base textbgcolor]","[base textbgcolour]",
              "[base arclinecolor]","[base arclinecolour]","[base arctextcolor]","[base arctextcolour]","[base arctextbgcolor]","[base arctextbgcolour]",
              "[base arcskip]"
            );
          
            MT("a typical program",
              "[comment # typical mscgen program]",
              "[keyword msc][base  ][bracket {]",
              "[keyword wordwraparcs][operator =][string \"true\"][base , ][keyword hscale][operator =][string \"0.8\"][keyword arcgradient][operator =][base 30;]",
              "[base   a][bracket [[][attribute label][operator =][string \"Entity A\"][bracket ]]][base ,]",
              "[base   b][bracket [[][attribute label][operator =][string \"Entity B\"][bracket ]]][base ,]",
              "[base   c][bracket [[][attribute label][operator =][string \"Entity C\"][bracket ]]][base ;]",
              "[base   a ][keyword =>>][base  b][bracket [[][attribute label][operator =][string \"Hello entity B\"][bracket ]]][base ;]",
              "[base   a ][keyword <<][base  b][bracket [[][attribute label][operator =][string \"Here's an answer dude!\"][bracket ]]][base ;]",
              "[base   c ][keyword :>][base  *][bracket [[][attribute label][operator =][string \"What about me?\"][base , ][attribute textcolor][operator =][base red][bracket ]]][base ;]",
              "[bracket }]"
            );
          })();
          
        • msgenny_test.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function() {
            var mode = CodeMirror.getMode({indentUnit: 2}, "text/x-msgenny");
            function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), "msgenny"); }
          
            MT("comments",
              "[comment // a single line comment]",
              "[comment # another  single line comment /* and */ ignored here]",
              "[comment /* A multi-line comment even though it contains]",
              "[comment msc keywords and \"quoted text\"*/]");
          
            MT("strings",
              "[string \"// a string\"]",
              "[string \"a string running over]",
              "[string two lines\"]",
              "[string \"with \\\"escaped quote\"]"
            );
          
            MT("xù/ msgenny keywords classify as 'keyword'",
              "[keyword watermark]",
              "[keyword alt]","[keyword loop]","[keyword opt]","[keyword ref]","[keyword else]","[keyword break]","[keyword par]","[keyword seq]","[keyword assert]"
            );
          
            MT("mscgen options classify as keyword",
              "[keyword hscale]", "[keyword width]", "[keyword arcgradient]", "[keyword wordwraparcs]"
            );
          
            MT("mscgen arcs classify as keyword",
              "[keyword note]","[keyword abox]","[keyword rbox]","[keyword box]",
              "[keyword |||...---]", "[keyword ..--==::]",
              "[keyword ->]", "[keyword <-]", "[keyword <->]",
              "[keyword =>]", "[keyword <=]", "[keyword <=>]",
              "[keyword =>>]", "[keyword <<=]", "[keyword <<=>>]",
              "[keyword >>]", "[keyword <<]", "[keyword <<>>]",
              "[keyword -x]", "[keyword x-]", "[keyword -X]", "[keyword X-]",
              "[keyword :>]", "[keyword <:]", "[keyword <:>]"
            );
          
            MT("within an attribute list, mscgen/ xù attributes classify as base",
              "[base [[label]",
              "[base idurl id url]",
              "[base linecolor linecolour textcolor textcolour textbgcolor textbgcolour]",
              "[base arclinecolor arclinecolour arctextcolor arctextcolour arctextbgcolor arctextbgcolour]",
              "[base arcskip]]]"
            );
          
            MT("outside an attribute list, mscgen/ xù attributes classify as base",
              "[base label]",
              "[base idurl id url]",
              "[base linecolor linecolour textcolor textcolour textbgcolor textbgcolour]",
              "[base arclinecolor arclinecolour arctextcolor arctextcolour arctextbgcolor arctextbgcolour]",
              "[base arcskip]"
            );
          
            MT("a typical program",
              "[comment # typical msgenny program]",
              "[keyword wordwraparcs][operator =][string \"true\"][base , ][keyword hscale][operator =][string \"0.8\"][base , ][keyword arcgradient][operator =][base 30;]",
              "[base   a : ][string \"Entity A\"][base ,]",
              "[base   b : Entity B,]",
              "[base   c : Entity C;]",
              "[base   a ][keyword =>>][base  b: ][string \"Hello entity B\"][base ;]",
              "[base   a ][keyword alt][base  c][bracket {]",
              "[base     a ][keyword <<][base  b: ][string \"Here's an answer dude!\"][base ;]",
              "[keyword ---][base : ][string \"sorry, won't march - comm glitch\"]",
              "[base     a ][keyword x-][base  b: ][string \"Here's an answer dude! (won't arrive...)\"][base ;]",
              "[bracket }]",
              "[base   c ][keyword :>][base  *: What about me?;]"
            );
          })();
          
        • xu_test.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function() {
            var mode = CodeMirror.getMode({indentUnit: 2}, "text/x-xu");
            function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), "xu"); }
          
            MT("empty chart",
               "[keyword msc][bracket {]",
               "[base   ]",
               "[bracket }]"
             );
          
            MT("comments",
              "[comment // a single line comment]",
              "[comment # another  single line comment /* and */ ignored here]",
              "[comment /* A multi-line comment even though it contains]",
              "[comment msc keywords and \"quoted text\"*/]");
          
            MT("strings",
              "[string \"// a string\"]",
              "[string \"a string running over]",
              "[string two lines\"]",
              "[string \"with \\\"escaped quote\"]"
            );
          
            MT("xù/ msgenny keywords classify as 'keyword'",
              "[keyword watermark]",
              "[keyword alt]","[keyword loop]","[keyword opt]","[keyword ref]","[keyword else]","[keyword break]","[keyword par]","[keyword seq]","[keyword assert]"
            );
          
            MT("mscgen options classify as keyword",
              "[keyword hscale]", "[keyword width]", "[keyword arcgradient]", "[keyword wordwraparcs]"
            );
          
            MT("mscgen arcs classify as keyword",
              "[keyword note]","[keyword abox]","[keyword rbox]","[keyword box]",
              "[keyword |||...---]", "[keyword ..--==::]",
              "[keyword ->]", "[keyword <-]", "[keyword <->]",
              "[keyword =>]", "[keyword <=]", "[keyword <=>]",
              "[keyword =>>]", "[keyword <<=]", "[keyword <<=>>]",
              "[keyword >>]", "[keyword <<]", "[keyword <<>>]",
              "[keyword -x]", "[keyword x-]", "[keyword -X]", "[keyword X-]",
              "[keyword :>]", "[keyword <:]", "[keyword <:>]"
            );
          
            MT("within an attribute list, attributes classify as attribute",
              "[bracket [[][attribute label]",
              "[attribute id]","[attribute url]","[attribute idurl]",
              "[attribute linecolor]","[attribute linecolour]","[attribute textcolor]","[attribute textcolour]","[attribute textbgcolor]","[attribute textbgcolour]",
              "[attribute arclinecolor]","[attribute arclinecolour]","[attribute arctextcolor]","[attribute arctextcolour]","[attribute arctextbgcolor]","[attribute arctextbgcolour]",
              "[attribute arcskip][bracket ]]]"
            );
          
            MT("outside an attribute list, attributes classify as base",
              "[base label]",
              "[base id]","[base url]","[base idurl]",
              "[base linecolor]","[base linecolour]","[base textcolor]","[base textcolour]","[base textbgcolor]","[base textbgcolour]",
              "[base arclinecolor]","[base arclinecolour]","[base arctextcolor]","[base arctextcolour]","[base arctextbgcolor]","[base arctextbgcolour]",
              "[base arcskip]"
            );
          
            MT("a typical program",
              "[comment # typical mscgen program]",
              "[keyword msc][base  ][bracket {]",
              "[keyword wordwraparcs][operator =][string \"true\"][keyword hscale][operator =][string \"0.8\"][keyword arcgradient][operator =][base 30;]",
              "[base   a][bracket [[][attribute label][operator =][string \"Entity A\"][bracket ]]][base ,]",
              "[base   b][bracket [[][attribute label][operator =][string \"Entity B\"][bracket ]]][base ,]",
              "[base   c][bracket [[][attribute label][operator =][string \"Entity C\"][bracket ]]][base ;]",
              "[base   a ][keyword =>>][base  b][bracket [[][attribute label][operator =][string \"Hello entity B\"][bracket ]]][base ;]",
              "[base   a ][keyword <<][base  b][bracket [[][attribute label][operator =][string \"Here's an answer dude!\"][bracket ]]][base ;]",
              "[base   c ][keyword :>][base  *][bracket [[][attribute label][operator =][string \"What about me?\"][base , ][attribute textcolor][operator =][base red][bracket ]]][base ;]",
              "[bracket }]"
            );
          })();
          
      • mumps
        • index.html
          <!doctype html>
          
          <title>CodeMirror: MUMPS mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="mumps.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">MUMPS</a>
            </ul>
          </div>
          
          <article>
          <h2>MUMPS mode</h2>
          
          
          <div><textarea id="code" name="code">
           ; Lloyd Milligan
           ; 03-30-2015
           ;
           ; MUMPS support for Code Mirror - Excerpts below from routine ^XUS
           ;
          CHECKAV(X1) ;Check A/V code return DUZ or Zero. (Called from XUSRB)
           N %,%1,X,Y,IEN,DA,DIK
           S IEN=0
           ;Start CCOW
           I $E(X1,1,7)="~~TOK~~" D  Q:IEN>0 IEN
           . I $E(X1,8,9)="~1" S IEN=$$CHKASH^XUSRB4($E(X1,8,255))
           . I $E(X1,8,9)="~2" S IEN=$$CHKCCOW^XUSRB4($E(X1,8,255))
           . Q
           ;End CCOW
           S X1=$$UP(X1) S:X1[":" XUTT=1,X1=$TR(X1,":")
           S X=$P(X1,";") Q:X="^" -1 S:XUF %1="Access: "_X
           Q:X'?1.20ANP 0
           S X=$$EN^XUSHSH(X) I '$D(^VA(200,"A",X)) D LBAV Q 0
           S %1="",IEN=$O(^VA(200,"A",X,0)),XUF(.3)=IEN D USER(IEN)
           S X=$P(X1,";",2) S:XUF %1="Verify: "_X S X=$$EN^XUSHSH(X)
           I $P(XUSER(1),"^",2)'=X D LBAV Q 0
           I $G(XUFAC(1)) S DIK="^XUSEC(4,",DA=XUFAC(1) D ^DIK
           Q IEN
           ;
           ; Spell out commands
           ;
          SET2() ;EF. Return error code (also called from XUSRB)
           NEW %,X
           SET XUNOW=$$HTFM^XLFDT($H),DT=$P(XUNOW,".")
           KILL DUZ,XUSER
           SET (DUZ,DUZ(2))=0,(DUZ(0),DUZ("AG"),XUSER(0),XUSER(1),XUTT,%UCI)=""
           SET %=$$INHIBIT^XUSRB() IF %>0 QUIT %
           SET X=$G(^%ZIS(1,XUDEV,"XUS")),XU1=$G(^(1))
           IF $L(X) FOR I=1:1:15 IF $L($P(X,U,I)) SET $P(XOPT,U,I)=$P(X,U,I)
           SET DTIME=600
           IF '$P(XOPT,U,11),$D(^%ZIS(1,XUDEV,90)),^(90)>2800000,^(90)'>DT QUIT 8
           QUIT 0
           ;
           ; Spell out commands and functions
           ;
           IF $PIECE(XUSER(0),U,11),$PIECE(XUSER(0),U,11)'>DT QUIT 11 ;Terminated
           IF $DATA(DUZ("ASH")) QUIT 0 ;If auto handle, Allow to sign-on p434
           IF $PIECE(XUSER(0),U,7) QUIT 5 ;Disuser flag set
           IF '$LENGTH($PIECE(XUSER(1),U,2)) QUIT 21 ;p419, p434
           Q 0
           ;
            </textarea>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                   mode: "mumps",
                   lineNumbers: true,
                   lineWrapping: true
                });
              </script>
          
            </article>
          
        • mumps.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          /*
            This MUMPS Language script was constructed using vbscript.js as a template.
          */
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineMode("mumps", function() {
              function wordRegexp(words) {
                return new RegExp("^((" + words.join(")|(") + "))\\b", "i");
              }
          
              var singleOperators = new RegExp("^[\\+\\-\\*/&#!_?\\\\<>=\\'\\[\\]]");
              var doubleOperators = new RegExp("^(('=)|(<=)|(>=)|('>)|('<)|([[)|(]])|(^$))");
              var singleDelimiters = new RegExp("^[\\.,:]");
              var brackets = new RegExp("[()]");
              var identifiers = new RegExp("^[%A-Za-z][A-Za-z0-9]*");
              var commandKeywords = ["break","close","do","else","for","goto", "halt", "hang", "if", "job","kill","lock","merge","new","open", "quit", "read", "set", "tcommit", "trollback", "tstart", "use", "view", "write", "xecute", "b","c","d","e","f","g", "h", "i", "j","k","l","m","n","o", "q", "r", "s", "tc", "tro", "ts", "u", "v", "w", "x"];
              // The following list includes instrinsic functions _and_ special variables
              var intrinsicFuncsWords = ["\\$ascii", "\\$char", "\\$data", "\\$ecode", "\\$estack", "\\$etrap", "\\$extract", "\\$find", "\\$fnumber", "\\$get", "\\$horolog", "\\$io", "\\$increment", "\\$job", "\\$justify", "\\$length", "\\$name", "\\$next", "\\$order", "\\$piece", "\\$qlength", "\\$qsubscript", "\\$query", "\\$quit", "\\$random", "\\$reverse", "\\$select", "\\$stack", "\\$test", "\\$text", "\\$translate", "\\$view", "\\$x", "\\$y", "\\$a", "\\$c", "\\$d", "\\$e", "\\$ec", "\\$es", "\\$et", "\\$f", "\\$fn", "\\$g", "\\$h", "\\$i", "\\$j", "\\$l", "\\$n", "\\$na", "\\$o", "\\$p", "\\$q", "\\$ql", "\\$qs", "\\$r", "\\$re", "\\$s", "\\$st", "\\$t", "\\$tr", "\\$v", "\\$z"];
              var intrinsicFuncs = wordRegexp(intrinsicFuncsWords);
              var command = wordRegexp(commandKeywords);
          
              function tokenBase(stream, state) {
                if (stream.sol()) {
                  state.label = true;
                  state.commandMode = 0;
                }
          
                // The <space> character has meaning in MUMPS. Ignoring consecutive
                // spaces would interfere with interpreting whether the next non-space
                // character belongs to the command or argument context.
          
                // Examine each character and update a mode variable whose interpretation is:
                //   >0 => command    0 => argument    <0 => command post-conditional
                var ch = stream.peek();
          
                if (ch == " " || ch == "\t") { // Pre-process <space>
                  state.label = false;
                  if (state.commandMode == 0)
                    state.commandMode = 1;
                  else if ((state.commandMode < 0) || (state.commandMode == 2))
                    state.commandMode = 0;
                } else if ((ch != ".") && (state.commandMode > 0)) {
                  if (ch == ":")
                    state.commandMode = -1;   // SIS - Command post-conditional
                  else
                    state.commandMode = 2;
                }
          
                // Do not color parameter list as line tag
                if ((ch === "(") || (ch === "\u0009"))
                  state.label = false;
          
                // MUMPS comment starts with ";"
                if (ch === ";") {
                  stream.skipToEnd();
                  return "comment";
                }
          
                // Number Literals // SIS/RLM - MUMPS permits canonic number followed by concatenate operator
                if (stream.match(/^[-+]?\d+(\.\d+)?([eE][-+]?\d+)?/))
                  return "number";
          
                // Handle Strings
                if (ch == '"') {
                  if (stream.skipTo('"')) {
                    stream.next();
                    return "string";
                  } else {
                    stream.skipToEnd();
                    return "error";
                  }
                }
          
                // Handle operators and Delimiters
                if (stream.match(doubleOperators) || stream.match(singleOperators))
                  return "operator";
          
                // Prevents leading "." in DO block from falling through to error
                if (stream.match(singleDelimiters))
                  return null;
          
                if (brackets.test(ch)) {
                  stream.next();
                  return "bracket";
                }
          
                if (state.commandMode > 0 && stream.match(command))
                  return "variable-2";
          
                if (stream.match(intrinsicFuncs))
                  return "builtin";
          
                if (stream.match(identifiers))
                  return "variable";
          
                // Detect dollar-sign when not a documented intrinsic function
                // "^" may introduce a GVN or SSVN - Color same as function
                if (ch === "$" || ch === "^") {
                  stream.next();
                  return "builtin";
                }
          
                // MUMPS Indirection
                if (ch === "@") {
                  stream.next();
                  return "string-2";
                }
          
                if (/[\w%]/.test(ch)) {
                  stream.eatWhile(/[\w%]/);
                  return "variable";
                }
          
                // Handle non-detected items
                stream.next();
                return "error";
              }
          
              return {
                startState: function() {
                  return {
                    label: false,
                    commandMode: 0
                  };
                },
          
                token: function(stream, state) {
                  var style = tokenBase(stream, state);
                  if (state.label) return "tag";
                  return style;
                }
              };
            });
          
            CodeMirror.defineMIME("text/x-mumps", "mumps");
          });
          
      • nginx
        • index.html
          <!doctype html>
          
          <title>CodeMirror: NGINX mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="nginx.js"></script>
          <style>.CodeMirror {background: #f8f8f8;}</style>
              <link rel="stylesheet" href="../../doc/docs.css">
            </head>
          
            <style>
              body {
                margin: 0em auto;
              }
          
              .CodeMirror, .CodeMirror-scroll {
                height: 600px;
              }
            </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">NGINX</a>
            </ul>
          </div>
          
          <article>
          <h2>NGINX mode</h2>
          <form><textarea id="code" name="code" style="height: 800px;">
          server {
            listen 173.255.219.235:80;
            server_name website.com.au;
            rewrite / $scheme://www.$host$request_uri permanent; ## Forcibly prepend a www
          }
          
          server {
            listen 173.255.219.235:443;
            server_name website.com.au;
            rewrite / $scheme://www.$host$request_uri permanent; ## Forcibly prepend a www
          }
          
          server {
          
            listen      173.255.219.235:80;
            server_name www.website.com.au;
          
          
          
            root        /data/www;
            index       index.html index.php;
          
            location / {
              index index.html index.php;     ## Allow a static html file to be shown first
              try_files $uri $uri/ @handler;  ## If missing pass the URI to Magento's front handler
              expires 30d;                    ## Assume all files are cachable
            }
          
            ## These locations would be hidden by .htaccess normally
            location /app/                { deny all; }
            location /includes/           { deny all; }
            location /lib/                { deny all; }
            location /media/downloadable/ { deny all; }
            location /pkginfo/            { deny all; }
            location /report/config.xml   { deny all; }
            location /var/                { deny all; }
          
            location /var/export/ { ## Allow admins only to view export folder
              auth_basic           "Restricted"; ## Message shown in login window
              auth_basic_user_file /rs/passwords/testfile; ## See /etc/nginx/htpassword
              autoindex            on;
            }
          
            location  /. { ## Disable .htaccess and other hidden files
              return 404;
            }
          
            location @handler { ## Magento uses a common front handler
              rewrite / /index.php;
            }
          
            location ~ .php/ { ## Forward paths like /js/index.php/x.js to relevant handler
              rewrite ^/(.*.php)/ /$1 last;
            }
          
            location ~ \.php$ {
              if (!-e $request_filename) { rewrite / /index.php last; } ## Catch 404s that try_files miss
          
              fastcgi_pass   127.0.0.1:9000;
              fastcgi_index  index.php;
              fastcgi_param PATH_INFO $fastcgi_script_name;
              fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
              include        /rs/confs/nginx/fastcgi_params;
            }
          
          }
          
          
          server {
          
            listen              173.255.219.235:443;
            server_name         website.com.au www.website.com.au;
          
            root   /data/www;
            index index.html index.php;
          
            ssl                 on;
            ssl_certificate     /rs/ssl/ssl.crt;
            ssl_certificate_key /rs/ssl/ssl.key;
          
            ssl_session_timeout  5m;
          
            ssl_protocols  SSLv2 SSLv3 TLSv1;
            ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
            ssl_prefer_server_ciphers   on;
          
          
          
            location / {
              index index.html index.php; ## Allow a static html file to be shown first
              try_files $uri $uri/ @handler; ## If missing pass the URI to Magento's front handler
              expires 30d; ## Assume all files are cachable
            }
          
            ## These locations would be hidden by .htaccess normally
            location /app/                { deny all; }
            location /includes/           { deny all; }
            location /lib/                { deny all; }
            location /media/downloadable/ { deny all; }
            location /pkginfo/            { deny all; }
            location /report/config.xml   { deny all; }
            location /var/                { deny all; }
          
            location /var/export/ { ## Allow admins only to view export folder
              auth_basic           "Restricted"; ## Message shown in login window
              auth_basic_user_file htpasswd; ## See /etc/nginx/htpassword
              autoindex            on;
            }
          
            location  /. { ## Disable .htaccess and other hidden files
              return 404;
            }
          
            location @handler { ## Magento uses a common front handler
              rewrite / /index.php;
            }
          
            location ~ .php/ { ## Forward paths like /js/index.php/x.js to relevant handler
              rewrite ^/(.*.php)/ /$1 last;
            }
          
            location ~ .php$ { ## Execute PHP scripts
              if (!-e $request_filename) { rewrite  /index.php last; } ## Catch 404s that try_files miss
          
              fastcgi_pass 127.0.0.1:9000;
              fastcgi_index  index.php;
              fastcgi_param PATH_INFO $fastcgi_script_name;
              fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
              include        /rs/confs/nginx/fastcgi_params;
          
              fastcgi_param HTTPS on;
            }
          
          }
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {});
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/nginx</code>.</p>
          
            </article>
          
        • nginx.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("nginx", function(config) {
          
            function words(str) {
              var obj = {}, words = str.split(" ");
              for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
              return obj;
            }
          
            var keywords = words(
              /* ngxDirectiveControl */ "break return rewrite set" +
              /* ngxDirective */ " accept_mutex accept_mutex_delay access_log add_after_body add_before_body add_header addition_types aio alias allow ancient_browser ancient_browser_value auth_basic auth_basic_user_file auth_http auth_http_header auth_http_timeout autoindex autoindex_exact_size autoindex_localtime charset charset_types client_body_buffer_size client_body_in_file_only client_body_in_single_buffer client_body_temp_path client_body_timeout client_header_buffer_size client_header_timeout client_max_body_size connection_pool_size create_full_put_path daemon dav_access dav_methods debug_connection debug_points default_type degradation degrade deny devpoll_changes devpoll_events directio directio_alignment empty_gif env epoll_events error_log eventport_events expires fastcgi_bind fastcgi_buffer_size fastcgi_buffers fastcgi_busy_buffers_size fastcgi_cache fastcgi_cache_key fastcgi_cache_methods fastcgi_cache_min_uses fastcgi_cache_path fastcgi_cache_use_stale fastcgi_cache_valid fastcgi_catch_stderr fastcgi_connect_timeout fastcgi_hide_header fastcgi_ignore_client_abort fastcgi_ignore_headers fastcgi_index fastcgi_intercept_errors fastcgi_max_temp_file_size fastcgi_next_upstream fastcgi_param fastcgi_pass_header fastcgi_pass_request_body fastcgi_pass_request_headers fastcgi_read_timeout fastcgi_send_lowat fastcgi_send_timeout fastcgi_split_path_info fastcgi_store fastcgi_store_access fastcgi_temp_file_write_size fastcgi_temp_path fastcgi_upstream_fail_timeout fastcgi_upstream_max_fails flv geoip_city geoip_country google_perftools_profiles gzip gzip_buffers gzip_comp_level gzip_disable gzip_hash gzip_http_version gzip_min_length gzip_no_buffer gzip_proxied gzip_static gzip_types gzip_vary gzip_window if_modified_since ignore_invalid_headers image_filter image_filter_buffer image_filter_jpeg_quality image_filter_transparency imap_auth imap_capabilities imap_client_buffer index ip_hash keepalive_requests keepalive_timeout kqueue_changes kqueue_events large_client_header_buffers limit_conn limit_conn_log_level limit_rate limit_rate_after limit_req limit_req_log_level limit_req_zone limit_zone lingering_time lingering_timeout lock_file log_format log_not_found log_subrequest map_hash_bucket_size map_hash_max_size master_process memcached_bind memcached_buffer_size memcached_connect_timeout memcached_next_upstream memcached_read_timeout memcached_send_timeout memcached_upstream_fail_timeout memcached_upstream_max_fails merge_slashes min_delete_depth modern_browser modern_browser_value msie_padding msie_refresh multi_accept open_file_cache open_file_cache_errors open_file_cache_events open_file_cache_min_uses open_file_cache_valid open_log_file_cache output_buffers override_charset perl perl_modules perl_require perl_set pid pop3_auth pop3_capabilities port_in_redirect postpone_gzipping postpone_output protocol proxy proxy_bind proxy_buffer proxy_buffer_size proxy_buffering proxy_buffers proxy_busy_buffers_size proxy_cache proxy_cache_key proxy_cache_methods proxy_cache_min_uses proxy_cache_path proxy_cache_use_stale proxy_cache_valid proxy_connect_timeout proxy_headers_hash_bucket_size proxy_headers_hash_max_size proxy_hide_header proxy_ignore_client_abort proxy_ignore_headers proxy_intercept_errors proxy_max_temp_file_size proxy_method proxy_next_upstream proxy_pass_error_message proxy_pass_header proxy_pass_request_body proxy_pass_request_headers proxy_read_timeout proxy_redirect proxy_send_lowat proxy_send_timeout proxy_set_body proxy_set_header proxy_ssl_session_reuse proxy_store proxy_store_access proxy_temp_file_write_size proxy_temp_path proxy_timeout proxy_upstream_fail_timeout proxy_upstream_max_fails random_index read_ahead real_ip_header recursive_error_pages request_pool_size reset_timedout_connection resolver resolver_timeout rewrite_log rtsig_overflow_events rtsig_overflow_test rtsig_overflow_threshold rtsig_signo satisfy secure_link_secret send_lowat send_timeout sendfile sendfile_max_chunk server_name_in_redirect server_names_hash_bucket_size server_names_hash_max_size server_tokens set_real_ip_from smtp_auth smtp_capabilities smtp_client_buffer smtp_greeting_delay so_keepalive source_charset ssi ssi_ignore_recycled_buffers ssi_min_file_chunk ssi_silent_errors ssi_types ssi_value_length ssl ssl_certificate ssl_certificate_key ssl_ciphers ssl_client_certificate ssl_crl ssl_dhparam ssl_engine ssl_prefer_server_ciphers ssl_protocols ssl_session_cache ssl_session_timeout ssl_verify_client ssl_verify_depth starttls stub_status sub_filter sub_filter_once sub_filter_types tcp_nodelay tcp_nopush thread_stack_size timeout timer_resolution types_hash_bucket_size types_hash_max_size underscores_in_headers uninitialized_variable_warn use user userid userid_domain userid_expires userid_mark userid_name userid_p3p userid_path userid_service valid_referers variables_hash_bucket_size variables_hash_max_size worker_connections worker_cpu_affinity worker_priority worker_processes worker_rlimit_core worker_rlimit_nofile worker_rlimit_sigpending worker_threads working_directory xclient xml_entities xslt_stylesheet xslt_typesdrew@li229-23"
              );
          
            var keywords_block = words(
              /* ngxDirectiveBlock */ "http mail events server types location upstream charset_map limit_except if geo map"
              );
          
            var keywords_important = words(
              /* ngxDirectiveImportant */ "include root server server_name listen internal proxy_pass memcached_pass fastcgi_pass try_files"
              );
          
            var indentUnit = config.indentUnit, type;
            function ret(style, tp) {type = tp; return style;}
          
            function tokenBase(stream, state) {
          
          
              stream.eatWhile(/[\w\$_]/);
          
              var cur = stream.current();
          
          
              if (keywords.propertyIsEnumerable(cur)) {
                return "keyword";
              }
              else if (keywords_block.propertyIsEnumerable(cur)) {
                return "variable-2";
              }
              else if (keywords_important.propertyIsEnumerable(cur)) {
                return "string-2";
              }
              /**/
          
              var ch = stream.next();
              if (ch == "@") {stream.eatWhile(/[\w\\\-]/); return ret("meta", stream.current());}
              else if (ch == "/" && stream.eat("*")) {
                state.tokenize = tokenCComment;
                return tokenCComment(stream, state);
              }
              else if (ch == "<" && stream.eat("!")) {
                state.tokenize = tokenSGMLComment;
                return tokenSGMLComment(stream, state);
              }
              else if (ch == "=") ret(null, "compare");
              else if ((ch == "~" || ch == "|") && stream.eat("=")) return ret(null, "compare");
              else if (ch == "\"" || ch == "'") {
                state.tokenize = tokenString(ch);
                return state.tokenize(stream, state);
              }
              else if (ch == "#") {
                stream.skipToEnd();
                return ret("comment", "comment");
              }
              else if (ch == "!") {
                stream.match(/^\s*\w*/);
                return ret("keyword", "important");
              }
              else if (/\d/.test(ch)) {
                stream.eatWhile(/[\w.%]/);
                return ret("number", "unit");
              }
              else if (/[,.+>*\/]/.test(ch)) {
                return ret(null, "select-op");
              }
              else if (/[;{}:\[\]]/.test(ch)) {
                return ret(null, ch);
              }
              else {
                stream.eatWhile(/[\w\\\-]/);
                return ret("variable", "variable");
              }
            }
          
            function tokenCComment(stream, state) {
              var maybeEnd = false, ch;
              while ((ch = stream.next()) != null) {
                if (maybeEnd && ch == "/") {
                  state.tokenize = tokenBase;
                  break;
                }
                maybeEnd = (ch == "*");
              }
              return ret("comment", "comment");
            }
          
            function tokenSGMLComment(stream, state) {
              var dashes = 0, ch;
              while ((ch = stream.next()) != null) {
                if (dashes >= 2 && ch == ">") {
                  state.tokenize = tokenBase;
                  break;
                }
                dashes = (ch == "-") ? dashes + 1 : 0;
              }
              return ret("comment", "comment");
            }
          
            function tokenString(quote) {
              return function(stream, state) {
                var escaped = false, ch;
                while ((ch = stream.next()) != null) {
                  if (ch == quote && !escaped)
                    break;
                  escaped = !escaped && ch == "\\";
                }
                if (!escaped) state.tokenize = tokenBase;
                return ret("string", "string");
              };
            }
          
            return {
              startState: function(base) {
                return {tokenize: tokenBase,
                        baseIndent: base || 0,
                        stack: []};
              },
          
              token: function(stream, state) {
                if (stream.eatSpace()) return null;
                type = null;
                var style = state.tokenize(stream, state);
          
                var context = state.stack[state.stack.length-1];
                if (type == "hash" && context == "rule") style = "atom";
                else if (style == "variable") {
                  if (context == "rule") style = "number";
                  else if (!context || context == "@media{") style = "tag";
                }
          
                if (context == "rule" && /^[\{\};]$/.test(type))
                  state.stack.pop();
                if (type == "{") {
                  if (context == "@media") state.stack[state.stack.length-1] = "@media{";
                  else state.stack.push("{");
                }
                else if (type == "}") state.stack.pop();
                else if (type == "@media") state.stack.push("@media");
                else if (context == "{" && type != "comment") state.stack.push("rule");
                return style;
              },
          
              indent: function(state, textAfter) {
                var n = state.stack.length;
                if (/^\}/.test(textAfter))
                  n -= state.stack[state.stack.length-1] == "rule" ? 2 : 1;
                return state.baseIndent + n * indentUnit;
              },
          
              electricChars: "}"
            };
          });
          
          CodeMirror.defineMIME("text/nginx", "text/x-nginx-conf");
          
          });
          
      • nsis
        • index.html
          <!doctype html>
          
          <title>CodeMirror: NSIS mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel=stylesheet href=../../lib/codemirror.css>
          <script src=../../lib/codemirror.js></script>
          <script src="../../addon/mode/simple.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src=nsis.js></script>
          <style type=text/css>
            .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}
          </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">NSIS</a>
            </ul>
          </div>
          
          <article>
          <h2>NSIS mode</h2>
          
          
          <textarea id=code>
          ; This is a comment
          !ifdef ERROR
              !error "Something went wrong"
          !endif
          
          OutFile "demo.exe"
          RequestExecutionLevel user
          
          !include "LogicLib.nsh"
          
          Section -mandatory
              ${If} 1 > 0
                MessageBox MB_OK "Hello world"
              ${EndIf}
          SectionEnd
          </textarea>
          
          <script>
            var editor = CodeMirror.fromTextArea(document.getElementById('code'), {
              mode: 'nsis',
              indentWithTabs: true,
              smartIndent: true,
              lineNumbers: true,
              matchBrackets: true
            });
          </script>
          
          <p><strong>MIME types defined:</strong> <code>text/x-nsis</code>.</p>
          </article>
          
        • nsis.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // Author: Jan T. Sott (http://github.com/idleberg)
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("../../addon/mode/simple"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "../../addon/mode/simple"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineSimpleMode("nsis",{
            start:[
              // Numbers
              {regex: /(?:[+-]?)(?:0x[\d,a-f]+)|(?:0o[0-7]+)|(?:0b[0,1]+)|(?:\d+.?\d*)/, token: "number"},
              // Compile Time Commands
              {regex: /(?:\!(include|addincludedir|addplugindir|appendfile|cd|delfile|echo|error|execute|packhdr|finalize|getdllversion|system|tempfile|warning|verbose|define|undef|insertmacro|makensis|searchparse|searchreplace))\b/, token: "keyword"},
              // Conditional Compilation
              {regex: /(?:\!(if(?:n?def)?|ifmacron?def|macro))\b/, token: "keyword", indent: true},
              {regex: /(?:\!(else|endif|macroend))\b/, token: "keyword", dedent: true},
              // Runtime Commands
              {regex: /(?:Abort|AddBrandingImage|AddSize|AllowRootDirInstall|AllowSkipFiles|AutoCloseWindow|BGFont|BGGradient|BrandingText|BringToFront|Call|CallInstDLL|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|CreateDirectory|CreateFont|CreateShortCut|Delete|DeleteINISec|DeleteINIStr|DeleteRegKey|DeleteRegValue|DetailPrint|DetailsButtonText|DirText|DirVar|DirVerify|EnableWindow|EnumRegKey|EnumRegValue|Exch|Exec|ExecShell|ExecWait|ExpandEnvStrings|File|FileBufSize|FileClose|FileErrorText|FileOpen|FileRead|FileReadByte|FileReadUTF16LE|FileReadWord|FileWriteUTF16LE|FileSeek|FileWrite|FileWriteByte|FileWriteWord|FindClose|FindFirst|FindNext|FindWindow|FlushINI|GetCurInstType|GetCurrentAddress|GetDlgItem|GetDLLVersion|GetDLLVersionLocal|GetErrorLevel|GetFileTime|GetFileTimeLocal|GetFullPathName|GetFunctionAddress|GetInstDirError|GetLabelAddress|GetTempFileName|Goto|HideWindow|Icon|IfAbort|IfErrors|IfFileExists|IfRebootFlag|IfSilent|InitPluginsDir|InstallButtonText|InstallColors|InstallDir|InstallDirRegKey|InstProgressFlags|InstType|InstTypeGetText|InstTypeSetText|IntCmp|IntCmpU|IntFmt|IntOp|IsWindow|LangString|LicenseBkColor|LicenseData|LicenseForceSelection|LicenseLangString|LicenseText|LoadLanguageFile|LockWindow|LogSet|LogText|ManifestDPIAware|ManifestSupportedOS|MessageBox|MiscButtonText|Name|Nop|OutFile|Page|PageCallbacks|Pop|Push|Quit|ReadEnvStr|ReadINIStr|ReadRegDWORD|ReadRegStr|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|SectionGetFlags|SectionGetInstTypes|SectionGetSize|SectionGetText|SectionIn|SectionSetFlags|SectionSetInstTypes|SectionSetSize|SectionSetText|SendMessage|SetAutoClose|SetBrandingImage|SetCompress|SetCompressor|SetCompressorDictSize|SetCtlColors|SetCurInstType|SetDatablockOptimize|SetDateSave|SetDetailsPrint|SetDetailsView|SetErrorLevel|SetErrors|SetFileAttributes|SetFont|SetOutPath|SetOverwrite|SetPluginUnload|SetRebootFlag|SetRegView|SetShellVarContext|SetSilent|ShowInstDetails|ShowUninstDetails|ShowWindow|SilentInstall|SilentUnInstall|Sleep|SpaceTexts|StrCmp|StrCmpS|StrCpy|StrLen|SubCaption|Unicode|UninstallButtonText|UninstallCaption|UninstallIcon|UninstallSubCaption|UninstallText|UninstPage|UnRegDLL|Var|VIAddVersionKey|VIFileVersion|VIProductVersion|WindowIcon|WriteINIStr|WriteRegBin|WriteRegDWORD|WriteRegExpandStr|WriteRegStr|WriteUninstaller|XPStyle)\b/, token: "keyword"},
              {regex: /\b(?:Function|PageEx|Section(?:Group)?)\b/, token: "keyword", indent: true},
              {regex: /\b(?:(Function|PageEx|Section(?:Group)?)End)\b/, token: "keyword", dedent: true},
              // Options
              {regex: /\b(?:ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HIDDEN|HKCC|HKCR|HKCU|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM|HKPD|HKU|IDABORT|IDCANCEL|IDD_DIR|IDD_INST|IDD_INSTFILES|IDD_LICENSE|IDD_SELCOM|IDD_UNINST|IDD_VERIFY|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|MB_YESNOCANCEL|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SW_HIDE|SW_SHOWDEFAULT|SW_SHOWMAXIMIZED|SW_SHOWMINIMIZED|SW_SHOWNORMAL|SYSTEM|TEMPORARY)\b/, token: "atom"},
              {regex: /\b(?:admin|all|auto|both|bottom|bzip2|components|current|custom|directory|force|hide|highest|ifdiff|ifnewer|instfiles|lastused|leave|left|license|listonly|lzma|nevershow|none|normal|notset|right|show|silent|silentlog|textonly|top|try|un\.components|un\.custom|un\.directory|un\.instfiles|un\.license|uninstConfirm|user|Win10|Win7|Win8|WinVista|zlib)\b/, token: "builtin"},
          
              // LogicLib
              {regex: /\$\{(?:End(If|Unless|While)|Loop(?:Until)|Next)\}/, token: "variable-2", dedent: true},
              {regex: /\$\{(?:Do(Until|While)|Else(?:If(?:Not)?)?|For(?:Each)?|(?:(?:And|Else|Or)?If(?:Cmd|Not|Then)?|Unless)|While)\}/, token: "variable-2", indent: true},
          
              // Line Comment
              {regex: /(#|;).*/, token: "comment"},
              // Block Comment
              {regex: /\/\*/, token: "comment", next: "comment"},
              // Operator
              {regex: /[-+\/*=<>!]+/, token: "operator"},
              // Variable
              {regex: /\$[\w]+/, token: "variable"},
              // Constant
              {regex: /\${[\w]+}/,token: "variable-2"},
              // Language String
              {regex: /\$\([\w]+\)/,token: "variable-3"}
            ],
            comment: [
              {regex: /.*?\*\//, token: "comment", next: "start"},
              {regex: /.*/, token: "comment"}
            ],
            meta: {
              electricInput: /^\s*((Function|PageEx|Section|Section(Group)?)End|(\!(endif|macroend))|\$\{(End(If|Unless|While)|Loop(Until)|Next)\})$/,
              blockCommentStart: "/*",
              blockCommentEnd: "*/",
              lineComment: ["#", ";"]
            }
          });
          
          CodeMirror.defineMIME("text/x-nsis", "nsis");
          });
          
      • ntriples
        • index.html
          <!doctype html>
          
          <title>CodeMirror: NTriples mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="ntriples.js"></script>
          <style type="text/css">
                .CodeMirror {
                  border: 1px solid #eee;
                }
              </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">NTriples</a>
            </ul>
          </div>
          
          <article>
          <h2>NTriples mode</h2>
          <form>
          <textarea id="ntriples" name="ntriples">    
          <http://Sub1>     <http://pred1>     <http://obj> .
          <http://Sub2>     <http://pred2#an2> "literal 1" .
          <http://Sub3#an3> <http://pred3>     _:bnode3 .
          _:bnode4          <http://pred4>     "literal 2"@lang .
          _:bnode5          <http://pred5>     "literal 3"^^<http://type> .
          </textarea>
          </form>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("ntriples"), {});
              </script>
              <p><strong>MIME types defined:</strong> <code>text/n-triples</code>.</p>
            </article>
          
        • ntriples.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          /**********************************************************
          * This script provides syntax highlighting support for
          * the Ntriples format.
          * Ntriples format specification:
          *     http://www.w3.org/TR/rdf-testcases/#ntriples
          ***********************************************************/
          
          /*
              The following expression defines the defined ASF grammar transitions.
          
              pre_subject ->
                  {
                  ( writing_subject_uri | writing_bnode_uri )
                      -> pre_predicate
                          -> writing_predicate_uri
                              -> pre_object
                                  -> writing_object_uri | writing_object_bnode |
                                    (
                                      writing_object_literal
                                          -> writing_literal_lang | writing_literal_type
                                    )
                                      -> post_object
                                          -> BEGIN
                   } otherwise {
                       -> ERROR
                   }
          */
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("ntriples", function() {
          
            var Location = {
              PRE_SUBJECT         : 0,
              WRITING_SUB_URI     : 1,
              WRITING_BNODE_URI   : 2,
              PRE_PRED            : 3,
              WRITING_PRED_URI    : 4,
              PRE_OBJ             : 5,
              WRITING_OBJ_URI     : 6,
              WRITING_OBJ_BNODE   : 7,
              WRITING_OBJ_LITERAL : 8,
              WRITING_LIT_LANG    : 9,
              WRITING_LIT_TYPE    : 10,
              POST_OBJ            : 11,
              ERROR               : 12
            };
            function transitState(currState, c) {
              var currLocation = currState.location;
              var ret;
          
              // Opening.
              if     (currLocation == Location.PRE_SUBJECT && c == '<') ret = Location.WRITING_SUB_URI;
              else if(currLocation == Location.PRE_SUBJECT && c == '_') ret = Location.WRITING_BNODE_URI;
              else if(currLocation == Location.PRE_PRED    && c == '<') ret = Location.WRITING_PRED_URI;
              else if(currLocation == Location.PRE_OBJ     && c == '<') ret = Location.WRITING_OBJ_URI;
              else if(currLocation == Location.PRE_OBJ     && c == '_') ret = Location.WRITING_OBJ_BNODE;
              else if(currLocation == Location.PRE_OBJ     && c == '"') ret = Location.WRITING_OBJ_LITERAL;
          
              // Closing.
              else if(currLocation == Location.WRITING_SUB_URI     && c == '>') ret = Location.PRE_PRED;
              else if(currLocation == Location.WRITING_BNODE_URI   && c == ' ') ret = Location.PRE_PRED;
              else if(currLocation == Location.WRITING_PRED_URI    && c == '>') ret = Location.PRE_OBJ;
              else if(currLocation == Location.WRITING_OBJ_URI     && c == '>') ret = Location.POST_OBJ;
              else if(currLocation == Location.WRITING_OBJ_BNODE   && c == ' ') ret = Location.POST_OBJ;
              else if(currLocation == Location.WRITING_OBJ_LITERAL && c == '"') ret = Location.POST_OBJ;
              else if(currLocation == Location.WRITING_LIT_LANG && c == ' ') ret = Location.POST_OBJ;
              else if(currLocation == Location.WRITING_LIT_TYPE && c == '>') ret = Location.POST_OBJ;
          
              // Closing typed and language literal.
              else if(currLocation == Location.WRITING_OBJ_LITERAL && c == '@') ret = Location.WRITING_LIT_LANG;
              else if(currLocation == Location.WRITING_OBJ_LITERAL && c == '^') ret = Location.WRITING_LIT_TYPE;
          
              // Spaces.
              else if( c == ' ' &&
                       (
                         currLocation == Location.PRE_SUBJECT ||
                         currLocation == Location.PRE_PRED    ||
                         currLocation == Location.PRE_OBJ     ||
                         currLocation == Location.POST_OBJ
                       )
                     ) ret = currLocation;
          
              // Reset.
              else if(currLocation == Location.POST_OBJ && c == '.') ret = Location.PRE_SUBJECT;
          
              // Error
              else ret = Location.ERROR;
          
              currState.location=ret;
            }
          
            return {
              startState: function() {
                 return {
                     location : Location.PRE_SUBJECT,
                     uris     : [],
                     anchors  : [],
                     bnodes   : [],
                     langs    : [],
                     types    : []
                 };
              },
              token: function(stream, state) {
                var ch = stream.next();
                if(ch == '<') {
                   transitState(state, ch);
                   var parsedURI = '';
                   stream.eatWhile( function(c) { if( c != '#' && c != '>' ) { parsedURI += c; return true; } return false;} );
                   state.uris.push(parsedURI);
                   if( stream.match('#', false) ) return 'variable';
                   stream.next();
                   transitState(state, '>');
                   return 'variable';
                }
                if(ch == '#') {
                  var parsedAnchor = '';
                  stream.eatWhile(function(c) { if(c != '>' && c != ' ') { parsedAnchor+= c; return true; } return false;});
                  state.anchors.push(parsedAnchor);
                  return 'variable-2';
                }
                if(ch == '>') {
                    transitState(state, '>');
                    return 'variable';
                }
                if(ch == '_') {
                    transitState(state, ch);
                    var parsedBNode = '';
                    stream.eatWhile(function(c) { if( c != ' ' ) { parsedBNode += c; return true; } return false;});
                    state.bnodes.push(parsedBNode);
                    stream.next();
                    transitState(state, ' ');
                    return 'builtin';
                }
                if(ch == '"') {
                    transitState(state, ch);
                    stream.eatWhile( function(c) { return c != '"'; } );
                    stream.next();
                    if( stream.peek() != '@' && stream.peek() != '^' ) {
                        transitState(state, '"');
                    }
                    return 'string';
                }
                if( ch == '@' ) {
                    transitState(state, '@');
                    var parsedLang = '';
                    stream.eatWhile(function(c) { if( c != ' ' ) { parsedLang += c; return true; } return false;});
                    state.langs.push(parsedLang);
                    stream.next();
                    transitState(state, ' ');
                    return 'string-2';
                }
                if( ch == '^' ) {
                    stream.next();
                    transitState(state, '^');
                    var parsedType = '';
                    stream.eatWhile(function(c) { if( c != '>' ) { parsedType += c; return true; } return false;} );
                    state.types.push(parsedType);
                    stream.next();
                    transitState(state, '>');
                    return 'variable';
                }
                if( ch == ' ' ) {
                    transitState(state, ch);
                }
                if( ch == '.' ) {
                    transitState(state, ch);
                }
              }
            };
          });
          
          CodeMirror.defineMIME("text/n-triples", "ntriples");
          
          });
          
      • octave
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Octave mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="octave.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Octave</a>
            </ul>
          </div>
          
          <article>
          <h2>Octave mode</h2>
          
              <div><textarea id="code" name="code">
          %numbers
          [1234 1234i 1234j]
          [.234 .234j 2.23i]
          [23e2 12E1j 123D-4 0x234]
          
          %strings
          'asda''a'
          "asda""a"
          
          %identifiers
          a + as123 - __asd__
          
          %operators
          -
          +
          =
          ==
          >
          <
          >=
          <=
          &
          ~
          ...
          break zeros default margin round ones rand
          ceil floor size clear zeros eye mean std cov
          error eval function
          abs acos atan asin cos cosh exp log prod sum
          log10 max min sign sin sinh sqrt tan reshape
          return
          case switch
          else elseif end if otherwise
          do for while
          try catch
          classdef properties events methods
          global persistent
          
          %one line comment
          %{ multi 
          line commment %}
          
              </textarea></div>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  mode: {name: "octave",
                         version: 2,
                         singleLineStringErrors: false},
                  lineNumbers: true,
                  indentUnit: 4,
                  matchBrackets: true
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-octave</code>.</p>
          </article>
          
        • octave.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("octave", function() {
            function wordRegexp(words) {
              return new RegExp("^((" + words.join(")|(") + "))\\b");
            }
          
            var singleOperators = new RegExp("^[\\+\\-\\*/&|\\^~<>!@'\\\\]");
            var singleDelimiters = new RegExp('^[\\(\\[\\{\\},:=;]');
            var doubleOperators = new RegExp("^((==)|(~=)|(<=)|(>=)|(<<)|(>>)|(\\.[\\+\\-\\*/\\^\\\\]))");
            var doubleDelimiters = new RegExp("^((!=)|(\\+=)|(\\-=)|(\\*=)|(/=)|(&=)|(\\|=)|(\\^=))");
            var tripleDelimiters = new RegExp("^((>>=)|(<<=))");
            var expressionEnd = new RegExp("^[\\]\\)]");
            var identifiers = new RegExp("^[_A-Za-z\xa1-\uffff][_A-Za-z0-9\xa1-\uffff]*");
          
            var builtins = wordRegexp([
              'error', 'eval', 'function', 'abs', 'acos', 'atan', 'asin', 'cos',
              'cosh', 'exp', 'log', 'prod', 'sum', 'log10', 'max', 'min', 'sign', 'sin', 'sinh',
              'sqrt', 'tan', 'reshape', 'break', 'zeros', 'default', 'margin', 'round', 'ones',
              'rand', 'syn', 'ceil', 'floor', 'size', 'clear', 'zeros', 'eye', 'mean', 'std', 'cov',
              'det', 'eig', 'inv', 'norm', 'rank', 'trace', 'expm', 'logm', 'sqrtm', 'linspace', 'plot',
              'title', 'xlabel', 'ylabel', 'legend', 'text', 'grid', 'meshgrid', 'mesh', 'num2str',
              'fft', 'ifft', 'arrayfun', 'cellfun', 'input', 'fliplr', 'flipud', 'ismember'
            ]);
          
            var keywords = wordRegexp([
              'return', 'case', 'switch', 'else', 'elseif', 'end', 'endif', 'endfunction',
              'if', 'otherwise', 'do', 'for', 'while', 'try', 'catch', 'classdef', 'properties', 'events',
              'methods', 'global', 'persistent', 'endfor', 'endwhile', 'printf', 'sprintf', 'disp', 'until',
              'continue', 'pkg'
            ]);
          
          
            // tokenizers
            function tokenTranspose(stream, state) {
              if (!stream.sol() && stream.peek() === '\'') {
                stream.next();
                state.tokenize = tokenBase;
                return 'operator';
              }
              state.tokenize = tokenBase;
              return tokenBase(stream, state);
            }
          
          
            function tokenComment(stream, state) {
              if (stream.match(/^.*%}/)) {
                state.tokenize = tokenBase;
                return 'comment';
              };
              stream.skipToEnd();
              return 'comment';
            }
          
            function tokenBase(stream, state) {
              // whitespaces
              if (stream.eatSpace()) return null;
          
              // Handle one line Comments
              if (stream.match('%{')){
                state.tokenize = tokenComment;
                stream.skipToEnd();
                return 'comment';
              }
          
              if (stream.match(/^[%#]/)){
                stream.skipToEnd();
                return 'comment';
              }
          
              // Handle Number Literals
              if (stream.match(/^[0-9\.+-]/, false)) {
                if (stream.match(/^[+-]?0x[0-9a-fA-F]+[ij]?/)) {
                  stream.tokenize = tokenBase;
                  return 'number'; };
                if (stream.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?[ij]?/)) { return 'number'; };
                if (stream.match(/^[+-]?\d+([EeDd][+-]?\d+)?[ij]?/)) { return 'number'; };
              }
              if (stream.match(wordRegexp(['nan','NaN','inf','Inf']))) { return 'number'; };
          
              // Handle Strings
              if (stream.match(/^"([^"]|(""))*"/)) { return 'string'; } ;
              if (stream.match(/^'([^']|(''))*'/)) { return 'string'; } ;
          
              // Handle words
              if (stream.match(keywords)) { return 'keyword'; } ;
              if (stream.match(builtins)) { return 'builtin'; } ;
              if (stream.match(identifiers)) { return 'variable'; } ;
          
              if (stream.match(singleOperators) || stream.match(doubleOperators)) { return 'operator'; };
              if (stream.match(singleDelimiters) || stream.match(doubleDelimiters) || stream.match(tripleDelimiters)) { return null; };
          
              if (stream.match(expressionEnd)) {
                state.tokenize = tokenTranspose;
                return null;
              };
          
          
              // Handle non-detected items
              stream.next();
              return 'error';
            };
          
          
            return {
              startState: function() {
                return {
                  tokenize: tokenBase
                };
              },
          
              token: function(stream, state) {
                var style = state.tokenize(stream, state);
                if (style === 'number' || style === 'variable'){
                  state.tokenize = tokenTranspose;
                }
                return style;
              }
            };
          });
          
          CodeMirror.defineMIME("text/x-octave", "octave");
          
          });
          
      • oz
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Oz mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="oz.js"></script>
          <script type="text/javascript" src="../../addon/runmode/runmode.js"></script>
          <style>
            .CodeMirror {border: 1px solid #aaa;}
          </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Oz</a>
            </ul>
          </div>
          
          <article>
          <h2>Oz mode</h2>
          <textarea id="code" name="code">
          declare
          fun {Ints N Max}
            if N == Max then nil
            else
              {Delay 1000}
              N|{Ints N+1 Max}
            end
          end
          
          fun {Sum S Stream}
            case Stream of nil then S
            [] H|T then S|{Sum H+S T} end
          end
          
          local X Y in
            thread X = {Ints 0 1000} end
            thread Y = {Sum 0 X} end
            {Browse Y}
          end
          </textarea>
          <p>MIME type defined: <code>text/x-oz</code>.</p>
          
          <script type="text/javascript">
          var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
              lineNumbers: true,
              mode: "text/x-oz",
              readOnly: false
          });
          </script>
          </article>
          
        • oz.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("oz", function (conf) {
          
            function wordRegexp(words) {
              return new RegExp("^((" + words.join(")|(") + "))\\b");
            }
          
            var singleOperators = /[\^@!\|<>#~\.\*\-\+\\/,=]/;
            var doubleOperators = /(<-)|(:=)|(=<)|(>=)|(<=)|(<:)|(>:)|(=:)|(\\=)|(\\=:)|(!!)|(==)|(::)/;
            var tripleOperators = /(:::)|(\.\.\.)|(=<:)|(>=:)/;
          
            var middle = ["in", "then", "else", "of", "elseof", "elsecase", "elseif", "catch",
              "finally", "with", "require", "prepare", "import", "export", "define", "do"];
            var end = ["end"];
          
            var atoms = wordRegexp(["true", "false", "nil", "unit"]);
            var commonKeywords = wordRegexp(["andthen", "at", "attr", "declare", "feat", "from", "lex",
              "mod", "mode", "orelse", "parser", "prod", "prop", "scanner", "self", "syn", "token"]);
            var openingKeywords = wordRegexp(["local", "proc", "fun", "case", "class", "if", "cond", "or", "dis",
              "choice", "not", "thread", "try", "raise", "lock", "for", "suchthat", "meth", "functor"]);
            var middleKeywords = wordRegexp(middle);
            var endKeywords = wordRegexp(end);
          
            // Tokenizers
            function tokenBase(stream, state) {
              if (stream.eatSpace()) {
                return null;
              }
          
              // Brackets
              if(stream.match(/[{}]/)) {
                return "bracket";
              }
          
              // Special [] keyword
              if (stream.match(/(\[])/)) {
                  return "keyword"
              }
          
              // Operators
              if (stream.match(tripleOperators) || stream.match(doubleOperators)) {
                return "operator";
              }
          
              // Atoms
              if(stream.match(atoms)) {
                return 'atom';
              }
          
              // Opening keywords
              var matched = stream.match(openingKeywords);
              if (matched) {
                if (!state.doInCurrentLine)
                  state.currentIndent++;
                else
                  state.doInCurrentLine = false;
          
                // Special matching for signatures
                if(matched[0] == "proc" || matched[0] == "fun")
                  state.tokenize = tokenFunProc;
                else if(matched[0] == "class")
                  state.tokenize = tokenClass;
                else if(matched[0] == "meth")
                  state.tokenize = tokenMeth;
          
                return 'keyword';
              }
          
              // Middle and other keywords
              if (stream.match(middleKeywords) || stream.match(commonKeywords)) {
                return "keyword"
              }
          
              // End keywords
              if (stream.match(endKeywords)) {
                state.currentIndent--;
                return 'keyword';
              }
          
              // Eat the next char for next comparisons
              var ch = stream.next();
          
              // Strings
              if (ch == '"' || ch == "'") {
                state.tokenize = tokenString(ch);
                return state.tokenize(stream, state);
              }
          
              // Numbers
              if (/[~\d]/.test(ch)) {
                if (ch == "~") {
                  if(! /^[0-9]/.test(stream.peek()))
                    return null;
                  else if (( stream.next() == "0" && stream.match(/^[xX][0-9a-fA-F]+/)) || stream.match(/^[0-9]*(\.[0-9]+)?([eE][~+]?[0-9]+)?/))
                    return "number";
                }
          
                if ((ch == "0" && stream.match(/^[xX][0-9a-fA-F]+/)) || stream.match(/^[0-9]*(\.[0-9]+)?([eE][~+]?[0-9]+)?/))
                  return "number";
          
                return null;
              }
          
              // Comments
              if (ch == "%") {
                stream.skipToEnd();
                return 'comment';
              }
              else if (ch == "/") {
                if (stream.eat("*")) {
                  state.tokenize = tokenComment;
                  return tokenComment(stream, state);
                }
              }
          
              // Single operators
              if(singleOperators.test(ch)) {
                return "operator";
              }
          
              // If nothing match, we skip the entire alphanumerical block
              stream.eatWhile(/\w/);
          
              return "variable";
            }
          
            function tokenClass(stream, state) {
              if (stream.eatSpace()) {
                return null;
              }
              stream.match(/([A-Z][A-Za-z0-9_]*)|(`.+`)/);
              state.tokenize = tokenBase;
              return "variable-3"
            }
          
            function tokenMeth(stream, state) {
              if (stream.eatSpace()) {
                return null;
              }
              stream.match(/([a-zA-Z][A-Za-z0-9_]*)|(`.+`)/);
              state.tokenize = tokenBase;
              return "def"
            }
          
            function tokenFunProc(stream, state) {
              if (stream.eatSpace()) {
                return null;
              }
          
              if(!state.hasPassedFirstStage && stream.eat("{")) {
                state.hasPassedFirstStage = true;
                return "bracket";
              }
              else if(state.hasPassedFirstStage) {
                stream.match(/([A-Z][A-Za-z0-9_]*)|(`.+`)|\$/);
                state.hasPassedFirstStage = false;
                state.tokenize = tokenBase;
                return "def"
              }
              else {
                state.tokenize = tokenBase;
                return null;
              }
            }
          
            function tokenComment(stream, state) {
              var maybeEnd = false, ch;
              while (ch = stream.next()) {
                if (ch == "/" && maybeEnd) {
                  state.tokenize = tokenBase;
                  break;
                }
                maybeEnd = (ch == "*");
              }
              return "comment";
            }
          
            function tokenString(quote) {
              return function (stream, state) {
                var escaped = false, next, end = false;
                while ((next = stream.next()) != null) {
                  if (next == quote && !escaped) {
                    end = true;
                    break;
                  }
                  escaped = !escaped && next == "\\";
                }
                if (end || !escaped)
                  state.tokenize = tokenBase;
                return "string";
              };
            }
          
            function buildElectricInputRegEx() {
              // Reindentation should occur on [] or on a match of any of
              // the block closing keywords, at the end of a line.
              var allClosings = middle.concat(end);
              return new RegExp("[\\[\\]]|(" + allClosings.join("|") + ")$");
            }
          
            return {
          
              startState: function () {
                return {
                  tokenize: tokenBase,
                  currentIndent: 0,
                  doInCurrentLine: false,
                  hasPassedFirstStage: false
                };
              },
          
              token: function (stream, state) {
                if (stream.sol())
                  state.doInCurrentLine = 0;
          
                return state.tokenize(stream, state);
              },
          
              indent: function (state, textAfter) {
                var trueText = textAfter.replace(/^\s+|\s+$/g, '');
          
                if (trueText.match(endKeywords) || trueText.match(middleKeywords) || trueText.match(/(\[])/))
                  return conf.indentUnit * (state.currentIndent - 1);
          
                if (state.currentIndent < 0)
                  return 0;
          
                return state.currentIndent * conf.indentUnit;
              },
              fold: "indent",
              electricInput: buildElectricInputRegEx(),
              lineComment: "%",
              blockCommentStart: "/*",
              blockCommentEnd: "*/"
            };
          });
          
          CodeMirror.defineMIME("text/x-oz", "oz");
          
          });
          
      • pascal
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Pascal mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="pascal.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Pascal</a>
            </ul>
          </div>
          
          <article>
          <h2>Pascal mode</h2>
          
          
          <div><textarea id="code" name="code">
          (* Example Pascal code *)
          
          while a <> b do writeln('Waiting');
           
          if a > b then 
            writeln('Condition met')
          else 
            writeln('Condition not met');
           
          for i := 1 to 10 do 
            writeln('Iteration: ', i:1);
           
          repeat
            a := a + 1
          until a = 10;
           
          case i of
            0: write('zero');
            1: write('one');
            2: write('two')
          end;
          </textarea></div>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  mode: "text/x-pascal"
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-pascal</code>.</p>
            </article>
          
        • pascal.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("pascal", function() {
            function words(str) {
              var obj = {}, words = str.split(" ");
              for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
              return obj;
            }
            var keywords = words("and array begin case const div do downto else end file for forward integer " +
                                 "boolean char function goto if in label mod nil not of or packed procedure " +
                                 "program record repeat set string then to type until var while with");
            var atoms = {"null": true};
          
            var isOperatorChar = /[+\-*&%=<>!?|\/]/;
          
            function tokenBase(stream, state) {
              var ch = stream.next();
              if (ch == "#" && state.startOfLine) {
                stream.skipToEnd();
                return "meta";
              }
              if (ch == '"' || ch == "'") {
                state.tokenize = tokenString(ch);
                return state.tokenize(stream, state);
              }
              if (ch == "(" && stream.eat("*")) {
                state.tokenize = tokenComment;
                return tokenComment(stream, state);
              }
              if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
                return null;
              }
              if (/\d/.test(ch)) {
                stream.eatWhile(/[\w\.]/);
                return "number";
              }
              if (ch == "/") {
                if (stream.eat("/")) {
                  stream.skipToEnd();
                  return "comment";
                }
              }
              if (isOperatorChar.test(ch)) {
                stream.eatWhile(isOperatorChar);
                return "operator";
              }
              stream.eatWhile(/[\w\$_]/);
              var cur = stream.current();
              if (keywords.propertyIsEnumerable(cur)) return "keyword";
              if (atoms.propertyIsEnumerable(cur)) return "atom";
              return "variable";
            }
          
            function tokenString(quote) {
              return function(stream, state) {
                var escaped = false, next, end = false;
                while ((next = stream.next()) != null) {
                  if (next == quote && !escaped) {end = true; break;}
                  escaped = !escaped && next == "\\";
                }
                if (end || !escaped) state.tokenize = null;
                return "string";
              };
            }
          
            function tokenComment(stream, state) {
              var maybeEnd = false, ch;
              while (ch = stream.next()) {
                if (ch == ")" && maybeEnd) {
                  state.tokenize = null;
                  break;
                }
                maybeEnd = (ch == "*");
              }
              return "comment";
            }
          
            // Interface
          
            return {
              startState: function() {
                return {tokenize: null};
              },
          
              token: function(stream, state) {
                if (stream.eatSpace()) return null;
                var style = (state.tokenize || tokenBase)(stream, state);
                if (style == "comment" || style == "meta") return style;
                return style;
              },
          
              electricChars: "{}"
            };
          });
          
          CodeMirror.defineMIME("text/x-pascal", "pascal");
          
          });
          
      • pegjs
        • index.html
          <!doctype html>
          <html>
            <head>
              <title>CodeMirror: PEG.js Mode</title>
              <meta charset="utf-8"/>
              <link rel=stylesheet href="../../doc/docs.css">
          
              <link rel="stylesheet" href="../../lib/codemirror.css">
              <script src="../../lib/codemirror.js"></script>
              <script src="../javascript/javascript.js"></script>
              <script src="pegjs.js"></script>
              <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
            </head>
            <body>
              <div id=nav>
                <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
                <ul>
                  <li><a href="../../index.html">Home</a>
                  <li><a href="../../doc/manual.html">Manual</a>
                  <li><a href="https://github.com/codemirror/codemirror">Code</a>
                </ul>
                <ul>
                  <li><a href="../index.html">Language modes</a>
                  <li><a class=active href="#">PEG.js Mode</a>
                </ul>
              </div>
          
              <article>
                <h2>PEG.js Mode</h2>
                <form><textarea id="code" name="code">
          /*
           * Classic example grammar, which recognizes simple arithmetic expressions like
           * "2*(3+4)". The parser generated from this grammar then computes their value.
           */
          
          start
            = additive
          
          additive
            = left:multiplicative "+" right:additive { return left + right; }
            / multiplicative
          
          multiplicative
            = left:primary "*" right:multiplicative { return left * right; }
            / primary
          
          primary
            = integer
            / "(" additive:additive ")" { return additive; }
          
          integer "integer"
            = digits:[0-9]+ { return parseInt(digits.join(""), 10); }
          
          letter = [a-z]+</textarea></form>
                <script>
                  var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                    mode: {name: "pegjs"},
                    lineNumbers: true
                  });
                </script>
                <h3>The PEG.js Mode</h3>
                <p> Created by Forbes Lindesay.</p>
              </article>
            </body>
          </html>
          
        • pegjs.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("../javascript/javascript"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "../javascript/javascript"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("pegjs", function (config) {
            var jsMode = CodeMirror.getMode(config, "javascript");
          
            function identifier(stream) {
              return stream.match(/^[a-zA-Z_][a-zA-Z0-9_]*/);
            }
          
            return {
              startState: function () {
                return {
                  inString: false,
                  stringType: null,
                  inComment: false,
                  inChracterClass: false,
                  braced: 0,
                  lhs: true,
                  localState: null
                };
              },
              token: function (stream, state) {
                if (stream)
          
                //check for state changes
                if (!state.inString && !state.inComment && ((stream.peek() == '"') || (stream.peek() == "'"))) {
                  state.stringType = stream.peek();
                  stream.next(); // Skip quote
                  state.inString = true; // Update state
                }
                if (!state.inString && !state.inComment && stream.match(/^\/\*/)) {
                  state.inComment = true;
                }
          
                //return state
                if (state.inString) {
                  while (state.inString && !stream.eol()) {
                    if (stream.peek() === state.stringType) {
                      stream.next(); // Skip quote
                      state.inString = false; // Clear flag
                    } else if (stream.peek() === '\\') {
                      stream.next();
                      stream.next();
                    } else {
                      stream.match(/^.[^\\\"\']*/);
                    }
                  }
                  return state.lhs ? "property string" : "string"; // Token style
                } else if (state.inComment) {
                  while (state.inComment && !stream.eol()) {
                    if (stream.match(/\*\//)) {
                      state.inComment = false; // Clear flag
                    } else {
                      stream.match(/^.[^\*]*/);
                    }
                  }
                  return "comment";
                } else if (state.inChracterClass) {
                    while (state.inChracterClass && !stream.eol()) {
                      if (!(stream.match(/^[^\]\\]+/) || stream.match(/^\\./))) {
                        state.inChracterClass = false;
                      }
                    }
                } else if (stream.peek() === '[') {
                  stream.next();
                  state.inChracterClass = true;
                  return 'bracket';
                } else if (stream.match(/^\/\//)) {
                  stream.skipToEnd();
                  return "comment";
                } else if (state.braced || stream.peek() === '{') {
                  if (state.localState === null) {
                    state.localState = jsMode.startState();
                  }
                  var token = jsMode.token(stream, state.localState);
                  var text = stream.current();
                  if (!token) {
                    for (var i = 0; i < text.length; i++) {
                      if (text[i] === '{') {
                        state.braced++;
                      } else if (text[i] === '}') {
                        state.braced--;
                      }
                    };
                  }
                  return token;
                } else if (identifier(stream)) {
                  if (stream.peek() === ':') {
                    return 'variable';
                  }
                  return 'variable-2';
                } else if (['[', ']', '(', ')'].indexOf(stream.peek()) != -1) {
                  stream.next();
                  return 'bracket';
                } else if (!stream.eatSpace()) {
                  stream.next();
                }
                return null;
              }
            };
          }, "javascript");
          
          });
          
      • perl
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Perl mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="perl.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Perl</a>
            </ul>
          </div>
          
          <article>
          <h2>Perl mode</h2>
          
          
          <div><textarea id="code" name="code">
          #!/usr/bin/perl
          
          use Something qw(func1 func2);
          
          # strings
          my $s1 = qq'single line';
          our $s2 = q(multi-
                        line);
          
          =item Something
          	Example.
          =cut
          
          my $html=<<'HTML'
          <html>
          <title>hi!</title>
          </html>
          HTML
          
          print "first,".join(',', 'second', qq~third~);
          
          if($s1 =~ m[(?<!\s)(l.ne)\z]o) {
          	$h->{$1}=$$.' predefined variables';
          	$s2 =~ s/\-line//ox;
          	$s1 =~ s[
          		  line ]
          		[
          		  block
          		]ox;
          }
          
          1; # numbers and comments
          
          __END__
          something...
          
          </textarea></div>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-perl</code>.</p>
            </article>
          
        • perl.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // CodeMirror2 mode/perl/perl.js (text/x-perl) beta 0.10 (2011-11-08)
          // This is a part of CodeMirror from https://github.com/sabaca/CodeMirror_mode_perl (mail@sabaca.com)
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("perl",function(){
                  // http://perldoc.perl.org
                  var PERL={                                      //   null - magic touch
                                                                  //   1 - keyword
                                                                  //   2 - def
                                                                  //   3 - atom
                                                                  //   4 - operator
                                                                  //   5 - variable-2 (predefined)
                                                                  //   [x,y] - x=1,2,3; y=must be defined if x{...}
                                                          //      PERL operators
                          '->'                            :   4,
                          '++'                            :   4,
                          '--'                            :   4,
                          '**'                            :   4,
                                                                  //   ! ~ \ and unary + and -
                          '=~'                            :   4,
                          '!~'                            :   4,
                          '*'                             :   4,
                          '/'                             :   4,
                          '%'                             :   4,
                          'x'                             :   4,
                          '+'                             :   4,
                          '-'                             :   4,
                          '.'                             :   4,
                          '<<'                            :   4,
                          '>>'                            :   4,
                                                                  //   named unary operators
                          '<'                             :   4,
                          '>'                             :   4,
                          '<='                            :   4,
                          '>='                            :   4,
                          'lt'                            :   4,
                          'gt'                            :   4,
                          'le'                            :   4,
                          'ge'                            :   4,
                          '=='                            :   4,
                          '!='                            :   4,
                          '<=>'                           :   4,
                          'eq'                            :   4,
                          'ne'                            :   4,
                          'cmp'                           :   4,
                          '~~'                            :   4,
                          '&'                             :   4,
                          '|'                             :   4,
                          '^'                             :   4,
                          '&&'                            :   4,
                          '||'                            :   4,
                          '//'                            :   4,
                          '..'                            :   4,
                          '...'                           :   4,
                          '?'                             :   4,
                          ':'                             :   4,
                          '='                             :   4,
                          '+='                            :   4,
                          '-='                            :   4,
                          '*='                            :   4,  //   etc. ???
                          ','                             :   4,
                          '=>'                            :   4,
                          '::'                            :   4,
                                                                  //   list operators (rightward)
                          'not'                           :   4,
                          'and'                           :   4,
                          'or'                            :   4,
                          'xor'                           :   4,
                                                          //      PERL predefined variables (I know, what this is a paranoid idea, but may be needed for people, who learn PERL, and for me as well, ...and may be for you?;)
                          'BEGIN'                         :   [5,1],
                          'END'                           :   [5,1],
                          'PRINT'                         :   [5,1],
                          'PRINTF'                        :   [5,1],
                          'GETC'                          :   [5,1],
                          'READ'                          :   [5,1],
                          'READLINE'                      :   [5,1],
                          'DESTROY'                       :   [5,1],
                          'TIE'                           :   [5,1],
                          'TIEHANDLE'                     :   [5,1],
                          'UNTIE'                         :   [5,1],
                          'STDIN'                         :    5,
                          'STDIN_TOP'                     :    5,
                          'STDOUT'                        :    5,
                          'STDOUT_TOP'                    :    5,
                          'STDERR'                        :    5,
                          'STDERR_TOP'                    :    5,
                          '$ARG'                          :    5,
                          '$_'                            :    5,
                          '@ARG'                          :    5,
                          '@_'                            :    5,
                          '$LIST_SEPARATOR'               :    5,
                          '$"'                            :    5,
                          '$PROCESS_ID'                   :    5,
                          '$PID'                          :    5,
                          '$$'                            :    5,
                          '$REAL_GROUP_ID'                :    5,
                          '$GID'                          :    5,
                          '$('                            :    5,
                          '$EFFECTIVE_GROUP_ID'           :    5,
                          '$EGID'                         :    5,
                          '$)'                            :    5,
                          '$PROGRAM_NAME'                 :    5,
                          '$0'                            :    5,
                          '$SUBSCRIPT_SEPARATOR'          :    5,
                          '$SUBSEP'                       :    5,
                          '$;'                            :    5,
                          '$REAL_USER_ID'                 :    5,
                          '$UID'                          :    5,
                          '$<'                            :    5,
                          '$EFFECTIVE_USER_ID'            :    5,
                          '$EUID'                         :    5,
                          '$>'                            :    5,
                          '$a'                            :    5,
                          '$b'                            :    5,
                          '$COMPILING'                    :    5,
                          '$^C'                           :    5,
                          '$DEBUGGING'                    :    5,
                          '$^D'                           :    5,
                          '${^ENCODING}'                  :    5,
                          '$ENV'                          :    5,
                          '%ENV'                          :    5,
                          '$SYSTEM_FD_MAX'                :    5,
                          '$^F'                           :    5,
                          '@F'                            :    5,
                          '${^GLOBAL_PHASE}'              :    5,
                          '$^H'                           :    5,
                          '%^H'                           :    5,
                          '@INC'                          :    5,
                          '%INC'                          :    5,
                          '$INPLACE_EDIT'                 :    5,
                          '$^I'                           :    5,
                          '$^M'                           :    5,
                          '$OSNAME'                       :    5,
                          '$^O'                           :    5,
                          '${^OPEN}'                      :    5,
                          '$PERLDB'                       :    5,
                          '$^P'                           :    5,
                          '$SIG'                          :    5,
                          '%SIG'                          :    5,
                          '$BASETIME'                     :    5,
                          '$^T'                           :    5,
                          '${^TAINT}'                     :    5,
                          '${^UNICODE}'                   :    5,
                          '${^UTF8CACHE}'                 :    5,
                          '${^UTF8LOCALE}'                :    5,
                          '$PERL_VERSION'                 :    5,
                          '$^V'                           :    5,
                          '${^WIN32_SLOPPY_STAT}'         :    5,
                          '$EXECUTABLE_NAME'              :    5,
                          '$^X'                           :    5,
                          '$1'                            :    5, // - regexp $1, $2...
                          '$MATCH'                        :    5,
                          '$&'                            :    5,
                          '${^MATCH}'                     :    5,
                          '$PREMATCH'                     :    5,
                          '$`'                            :    5,
                          '${^PREMATCH}'                  :    5,
                          '$POSTMATCH'                    :    5,
                          "$'"                            :    5,
                          '${^POSTMATCH}'                 :    5,
                          '$LAST_PAREN_MATCH'             :    5,
                          '$+'                            :    5,
                          '$LAST_SUBMATCH_RESULT'         :    5,
                          '$^N'                           :    5,
                          '@LAST_MATCH_END'               :    5,
                          '@+'                            :    5,
                          '%LAST_PAREN_MATCH'             :    5,
                          '%+'                            :    5,
                          '@LAST_MATCH_START'             :    5,
                          '@-'                            :    5,
                          '%LAST_MATCH_START'             :    5,
                          '%-'                            :    5,
                          '$LAST_REGEXP_CODE_RESULT'      :    5,
                          '$^R'                           :    5,
                          '${^RE_DEBUG_FLAGS}'            :    5,
                          '${^RE_TRIE_MAXBUF}'            :    5,
                          '$ARGV'                         :    5,
                          '@ARGV'                         :    5,
                          'ARGV'                          :    5,
                          'ARGVOUT'                       :    5,
                          '$OUTPUT_FIELD_SEPARATOR'       :    5,
                          '$OFS'                          :    5,
                          '$,'                            :    5,
                          '$INPUT_LINE_NUMBER'            :    5,
                          '$NR'                           :    5,
                          '$.'                            :    5,
                          '$INPUT_RECORD_SEPARATOR'       :    5,
                          '$RS'                           :    5,
                          '$/'                            :    5,
                          '$OUTPUT_RECORD_SEPARATOR'      :    5,
                          '$ORS'                          :    5,
                          '$\\'                           :    5,
                          '$OUTPUT_AUTOFLUSH'             :    5,
                          '$|'                            :    5,
                          '$ACCUMULATOR'                  :    5,
                          '$^A'                           :    5,
                          '$FORMAT_FORMFEED'              :    5,
                          '$^L'                           :    5,
                          '$FORMAT_PAGE_NUMBER'           :    5,
                          '$%'                            :    5,
                          '$FORMAT_LINES_LEFT'            :    5,
                          '$-'                            :    5,
                          '$FORMAT_LINE_BREAK_CHARACTERS' :    5,
                          '$:'                            :    5,
                          '$FORMAT_LINES_PER_PAGE'        :    5,
                          '$='                            :    5,
                          '$FORMAT_TOP_NAME'              :    5,
                          '$^'                            :    5,
                          '$FORMAT_NAME'                  :    5,
                          '$~'                            :    5,
                          '${^CHILD_ERROR_NATIVE}'        :    5,
                          '$EXTENDED_OS_ERROR'            :    5,
                          '$^E'                           :    5,
                          '$EXCEPTIONS_BEING_CAUGHT'      :    5,
                          '$^S'                           :    5,
                          '$WARNING'                      :    5,
                          '$^W'                           :    5,
                          '${^WARNING_BITS}'              :    5,
                          '$OS_ERROR'                     :    5,
                          '$ERRNO'                        :    5,
                          '$!'                            :    5,
                          '%OS_ERROR'                     :    5,
                          '%ERRNO'                        :    5,
                          '%!'                            :    5,
                          '$CHILD_ERROR'                  :    5,
                          '$?'                            :    5,
                          '$EVAL_ERROR'                   :    5,
                          '$@'                            :    5,
                          '$OFMT'                         :    5,
                          '$#'                            :    5,
                          '$*'                            :    5,
                          '$ARRAY_BASE'                   :    5,
                          '$['                            :    5,
                          '$OLD_PERL_VERSION'             :    5,
                          '$]'                            :    5,
                                                          //      PERL blocks
                          'if'                            :[1,1],
                          elsif                           :[1,1],
                          'else'                          :[1,1],
                          'while'                         :[1,1],
                          unless                          :[1,1],
                          'for'                           :[1,1],
                          foreach                         :[1,1],
                                                          //      PERL functions
                          'abs'                           :1,     // - absolute value function
                          accept                          :1,     // - accept an incoming socket connect
                          alarm                           :1,     // - schedule a SIGALRM
                          'atan2'                         :1,     // - arctangent of Y/X in the range -PI to PI
                          bind                            :1,     // - binds an address to a socket
                          binmode                         :1,     // - prepare binary files for I/O
                          bless                           :1,     // - create an object
                          bootstrap                       :1,     //
                          'break'                         :1,     // - break out of a "given" block
                          caller                          :1,     // - get context of the current subroutine call
                          chdir                           :1,     // - change your current working directory
                          chmod                           :1,     // - changes the permissions on a list of files
                          chomp                           :1,     // - remove a trailing record separator from a string
                          chop                            :1,     // - remove the last character from a string
                          chown                           :1,     // - change the owership on a list of files
                          chr                             :1,     // - get character this number represents
                          chroot                          :1,     // - make directory new root for path lookups
                          close                           :1,     // - close file (or pipe or socket) handle
                          closedir                        :1,     // - close directory handle
                          connect                         :1,     // - connect to a remote socket
                          'continue'                      :[1,1], // - optional trailing block in a while or foreach
                          'cos'                           :1,     // - cosine function
                          crypt                           :1,     // - one-way passwd-style encryption
                          dbmclose                        :1,     // - breaks binding on a tied dbm file
                          dbmopen                         :1,     // - create binding on a tied dbm file
                          'default'                       :1,     //
                          defined                         :1,     // - test whether a value, variable, or function is defined
                          'delete'                        :1,     // - deletes a value from a hash
                          die                             :1,     // - raise an exception or bail out
                          'do'                            :1,     // - turn a BLOCK into a TERM
                          dump                            :1,     // - create an immediate core dump
                          each                            :1,     // - retrieve the next key/value pair from a hash
                          endgrent                        :1,     // - be done using group file
                          endhostent                      :1,     // - be done using hosts file
                          endnetent                       :1,     // - be done using networks file
                          endprotoent                     :1,     // - be done using protocols file
                          endpwent                        :1,     // - be done using passwd file
                          endservent                      :1,     // - be done using services file
                          eof                             :1,     // - test a filehandle for its end
                          'eval'                          :1,     // - catch exceptions or compile and run code
                          'exec'                          :1,     // - abandon this program to run another
                          exists                          :1,     // - test whether a hash key is present
                          exit                            :1,     // - terminate this program
                          'exp'                           :1,     // - raise I to a power
                          fcntl                           :1,     // - file control system call
                          fileno                          :1,     // - return file descriptor from filehandle
                          flock                           :1,     // - lock an entire file with an advisory lock
                          fork                            :1,     // - create a new process just like this one
                          format                          :1,     // - declare a picture format with use by the write() function
                          formline                        :1,     // - internal function used for formats
                          getc                            :1,     // - get the next character from the filehandle
                          getgrent                        :1,     // - get next group record
                          getgrgid                        :1,     // - get group record given group user ID
                          getgrnam                        :1,     // - get group record given group name
                          gethostbyaddr                   :1,     // - get host record given its address
                          gethostbyname                   :1,     // - get host record given name
                          gethostent                      :1,     // - get next hosts record
                          getlogin                        :1,     // - return who logged in at this tty
                          getnetbyaddr                    :1,     // - get network record given its address
                          getnetbyname                    :1,     // - get networks record given name
                          getnetent                       :1,     // - get next networks record
                          getpeername                     :1,     // - find the other end of a socket connection
                          getpgrp                         :1,     // - get process group
                          getppid                         :1,     // - get parent process ID
                          getpriority                     :1,     // - get current nice value
                          getprotobyname                  :1,     // - get protocol record given name
                          getprotobynumber                :1,     // - get protocol record numeric protocol
                          getprotoent                     :1,     // - get next protocols record
                          getpwent                        :1,     // - get next passwd record
                          getpwnam                        :1,     // - get passwd record given user login name
                          getpwuid                        :1,     // - get passwd record given user ID
                          getservbyname                   :1,     // - get services record given its name
                          getservbyport                   :1,     // - get services record given numeric port
                          getservent                      :1,     // - get next services record
                          getsockname                     :1,     // - retrieve the sockaddr for a given socket
                          getsockopt                      :1,     // - get socket options on a given socket
                          given                           :1,     //
                          glob                            :1,     // - expand filenames using wildcards
                          gmtime                          :1,     // - convert UNIX time into record or string using Greenwich time
                          'goto'                          :1,     // - create spaghetti code
                          grep                            :1,     // - locate elements in a list test true against a given criterion
                          hex                             :1,     // - convert a string to a hexadecimal number
                          'import'                        :1,     // - patch a module's namespace into your own
                          index                           :1,     // - find a substring within a string
                          'int'                           :1,     // - get the integer portion of a number
                          ioctl                           :1,     // - system-dependent device control system call
                          'join'                          :1,     // - join a list into a string using a separator
                          keys                            :1,     // - retrieve list of indices from a hash
                          kill                            :1,     // - send a signal to a process or process group
                          last                            :1,     // - exit a block prematurely
                          lc                              :1,     // - return lower-case version of a string
                          lcfirst                         :1,     // - return a string with just the next letter in lower case
                          length                          :1,     // - return the number of bytes in a string
                          'link'                          :1,     // - create a hard link in the filesytem
                          listen                          :1,     // - register your socket as a server
                          local                           : 2,    // - create a temporary value for a global variable (dynamic scoping)
                          localtime                       :1,     // - convert UNIX time into record or string using local time
                          lock                            :1,     // - get a thread lock on a variable, subroutine, or method
                          'log'                           :1,     // - retrieve the natural logarithm for a number
                          lstat                           :1,     // - stat a symbolic link
                          m                               :null,  // - match a string with a regular expression pattern
                          map                             :1,     // - apply a change to a list to get back a new list with the changes
                          mkdir                           :1,     // - create a directory
                          msgctl                          :1,     // - SysV IPC message control operations
                          msgget                          :1,     // - get SysV IPC message queue
                          msgrcv                          :1,     // - receive a SysV IPC message from a message queue
                          msgsnd                          :1,     // - send a SysV IPC message to a message queue
                          my                              : 2,    // - declare and assign a local variable (lexical scoping)
                          'new'                           :1,     //
                          next                            :1,     // - iterate a block prematurely
                          no                              :1,     // - unimport some module symbols or semantics at compile time
                          oct                             :1,     // - convert a string to an octal number
                          open                            :1,     // - open a file, pipe, or descriptor
                          opendir                         :1,     // - open a directory
                          ord                             :1,     // - find a character's numeric representation
                          our                             : 2,    // - declare and assign a package variable (lexical scoping)
                          pack                            :1,     // - convert a list into a binary representation
                          'package'                       :1,     // - declare a separate global namespace
                          pipe                            :1,     // - open a pair of connected filehandles
                          pop                             :1,     // - remove the last element from an array and return it
                          pos                             :1,     // - find or set the offset for the last/next m//g search
                          print                           :1,     // - output a list to a filehandle
                          printf                          :1,     // - output a formatted list to a filehandle
                          prototype                       :1,     // - get the prototype (if any) of a subroutine
                          push                            :1,     // - append one or more elements to an array
                          q                               :null,  // - singly quote a string
                          qq                              :null,  // - doubly quote a string
                          qr                              :null,  // - Compile pattern
                          quotemeta                       :null,  // - quote regular expression magic characters
                          qw                              :null,  // - quote a list of words
                          qx                              :null,  // - backquote quote a string
                          rand                            :1,     // - retrieve the next pseudorandom number
                          read                            :1,     // - fixed-length buffered input from a filehandle
                          readdir                         :1,     // - get a directory from a directory handle
                          readline                        :1,     // - fetch a record from a file
                          readlink                        :1,     // - determine where a symbolic link is pointing
                          readpipe                        :1,     // - execute a system command and collect standard output
                          recv                            :1,     // - receive a message over a Socket
                          redo                            :1,     // - start this loop iteration over again
                          ref                             :1,     // - find out the type of thing being referenced
                          rename                          :1,     // - change a filename
                          require                         :1,     // - load in external functions from a library at runtime
                          reset                           :1,     // - clear all variables of a given name
                          'return'                        :1,     // - get out of a function early
                          reverse                         :1,     // - flip a string or a list
                          rewinddir                       :1,     // - reset directory handle
                          rindex                          :1,     // - right-to-left substring search
                          rmdir                           :1,     // - remove a directory
                          s                               :null,  // - replace a pattern with a string
                          say                             :1,     // - print with newline
                          scalar                          :1,     // - force a scalar context
                          seek                            :1,     // - reposition file pointer for random-access I/O
                          seekdir                         :1,     // - reposition directory pointer
                          select                          :1,     // - reset default output or do I/O multiplexing
                          semctl                          :1,     // - SysV semaphore control operations
                          semget                          :1,     // - get set of SysV semaphores
                          semop                           :1,     // - SysV semaphore operations
                          send                            :1,     // - send a message over a socket
                          setgrent                        :1,     // - prepare group file for use
                          sethostent                      :1,     // - prepare hosts file for use
                          setnetent                       :1,     // - prepare networks file for use
                          setpgrp                         :1,     // - set the process group of a process
                          setpriority                     :1,     // - set a process's nice value
                          setprotoent                     :1,     // - prepare protocols file for use
                          setpwent                        :1,     // - prepare passwd file for use
                          setservent                      :1,     // - prepare services file for use
                          setsockopt                      :1,     // - set some socket options
                          shift                           :1,     // - remove the first element of an array, and return it
                          shmctl                          :1,     // - SysV shared memory operations
                          shmget                          :1,     // - get SysV shared memory segment identifier
                          shmread                         :1,     // - read SysV shared memory
                          shmwrite                        :1,     // - write SysV shared memory
                          shutdown                        :1,     // - close down just half of a socket connection
                          'sin'                           :1,     // - return the sine of a number
                          sleep                           :1,     // - block for some number of seconds
                          socket                          :1,     // - create a socket
                          socketpair                      :1,     // - create a pair of sockets
                          'sort'                          :1,     // - sort a list of values
                          splice                          :1,     // - add or remove elements anywhere in an array
                          'split'                         :1,     // - split up a string using a regexp delimiter
                          sprintf                         :1,     // - formatted print into a string
                          'sqrt'                          :1,     // - square root function
                          srand                           :1,     // - seed the random number generator
                          stat                            :1,     // - get a file's status information
                          state                           :1,     // - declare and assign a state variable (persistent lexical scoping)
                          study                           :1,     // - optimize input data for repeated searches
                          'sub'                           :1,     // - declare a subroutine, possibly anonymously
                          'substr'                        :1,     // - get or alter a portion of a stirng
                          symlink                         :1,     // - create a symbolic link to a file
                          syscall                         :1,     // - execute an arbitrary system call
                          sysopen                         :1,     // - open a file, pipe, or descriptor
                          sysread                         :1,     // - fixed-length unbuffered input from a filehandle
                          sysseek                         :1,     // - position I/O pointer on handle used with sysread and syswrite
                          system                          :1,     // - run a separate program
                          syswrite                        :1,     // - fixed-length unbuffered output to a filehandle
                          tell                            :1,     // - get current seekpointer on a filehandle
                          telldir                         :1,     // - get current seekpointer on a directory handle
                          tie                             :1,     // - bind a variable to an object class
                          tied                            :1,     // - get a reference to the object underlying a tied variable
                          time                            :1,     // - return number of seconds since 1970
                          times                           :1,     // - return elapsed time for self and child processes
                          tr                              :null,  // - transliterate a string
                          truncate                        :1,     // - shorten a file
                          uc                              :1,     // - return upper-case version of a string
                          ucfirst                         :1,     // - return a string with just the next letter in upper case
                          umask                           :1,     // - set file creation mode mask
                          undef                           :1,     // - remove a variable or function definition
                          unlink                          :1,     // - remove one link to a file
                          unpack                          :1,     // - convert binary structure into normal perl variables
                          unshift                         :1,     // - prepend more elements to the beginning of a list
                          untie                           :1,     // - break a tie binding to a variable
                          use                             :1,     // - load in a module at compile time
                          utime                           :1,     // - set a file's last access and modify times
                          values                          :1,     // - return a list of the values in a hash
                          vec                             :1,     // - test or set particular bits in a string
                          wait                            :1,     // - wait for any child process to die
                          waitpid                         :1,     // - wait for a particular child process to die
                          wantarray                       :1,     // - get void vs scalar vs list context of current subroutine call
                          warn                            :1,     // - print debugging info
                          when                            :1,     //
                          write                           :1,     // - print a picture record
                          y                               :null}; // - transliterate a string
          
                  var RXstyle="string-2";
                  var RXmodifiers=/[goseximacplud]/;              // NOTE: "m", "s", "y" and "tr" need to correct real modifiers for each regexp type
          
                  function tokenChain(stream,state,chain,style,tail){     // NOTE: chain.length > 2 is not working now (it's for s[...][...]geos;)
                          state.chain=null;                               //                                                          12   3tail
                          state.style=null;
                          state.tail=null;
                          state.tokenize=function(stream,state){
                                  var e=false,c,i=0;
                                  while(c=stream.next()){
                                          if(c===chain[i]&&!e){
                                                  if(chain[++i]!==undefined){
                                                          state.chain=chain[i];
                                                          state.style=style;
                                                          state.tail=tail;}
                                                  else if(tail)
                                                          stream.eatWhile(tail);
                                                  state.tokenize=tokenPerl;
                                                  return style;}
                                          e=!e&&c=="\\";}
                                  return style;};
                          return state.tokenize(stream,state);}
          
                  function tokenSOMETHING(stream,state,string){
                          state.tokenize=function(stream,state){
                                  if(stream.string==string)
                                          state.tokenize=tokenPerl;
                                  stream.skipToEnd();
                                  return "string";};
                          return state.tokenize(stream,state);}
          
                  function tokenPerl(stream,state){
                          if(stream.eatSpace())
                                  return null;
                          if(state.chain)
                                  return tokenChain(stream,state,state.chain,state.style,state.tail);
                          if(stream.match(/^\-?[\d\.]/,false))
                                  if(stream.match(/^(\-?(\d*\.\d+(e[+-]?\d+)?|\d+\.\d*)|0x[\da-fA-F]+|0b[01]+|\d+(e[+-]?\d+)?)/))
                                          return 'number';
                          if(stream.match(/^<<(?=\w)/)){                  // NOTE: <<SOMETHING\n...\nSOMETHING\n
                                  stream.eatWhile(/\w/);
                                  return tokenSOMETHING(stream,state,stream.current().substr(2));}
                          if(stream.sol()&&stream.match(/^\=item(?!\w)/)){// NOTE: \n=item...\n=cut\n
                                  return tokenSOMETHING(stream,state,'=cut');}
                          var ch=stream.next();
                          if(ch=='"'||ch=="'"){                           // NOTE: ' or " or <<'SOMETHING'\n...\nSOMETHING\n or <<"SOMETHING"\n...\nSOMETHING\n
                                  if(prefix(stream, 3)=="<<"+ch){
                                          var p=stream.pos;
                                          stream.eatWhile(/\w/);
                                          var n=stream.current().substr(1);
                                          if(n&&stream.eat(ch))
                                                  return tokenSOMETHING(stream,state,n);
                                          stream.pos=p;}
                                  return tokenChain(stream,state,[ch],"string");}
                          if(ch=="q"){
                                  var c=look(stream, -2);
                                  if(!(c&&/\w/.test(c))){
                                          c=look(stream, 0);
                                          if(c=="x"){
                                                  c=look(stream, 1);
                                                  if(c=="("){
                                                          eatSuffix(stream, 2);
                                                          return tokenChain(stream,state,[")"],RXstyle,RXmodifiers);}
                                                  if(c=="["){
                                                          eatSuffix(stream, 2);
                                                          return tokenChain(stream,state,["]"],RXstyle,RXmodifiers);}
                                                  if(c=="{"){
                                                          eatSuffix(stream, 2);
                                                          return tokenChain(stream,state,["}"],RXstyle,RXmodifiers);}
                                                  if(c=="<"){
                                                          eatSuffix(stream, 2);
                                                          return tokenChain(stream,state,[">"],RXstyle,RXmodifiers);}
                                                  if(/[\^'"!~\/]/.test(c)){
                                                          eatSuffix(stream, 1);
                                                          return tokenChain(stream,state,[stream.eat(c)],RXstyle,RXmodifiers);}}
                                          else if(c=="q"){
                                                  c=look(stream, 1);
                                                  if(c=="("){
                                                          eatSuffix(stream, 2);
                                                          return tokenChain(stream,state,[")"],"string");}
                                                  if(c=="["){
                                                          eatSuffix(stream, 2);
                                                          return tokenChain(stream,state,["]"],"string");}
                                                  if(c=="{"){
                                                          eatSuffix(stream, 2);
                                                          return tokenChain(stream,state,["}"],"string");}
                                                  if(c=="<"){
                                                          eatSuffix(stream, 2);
                                                          return tokenChain(stream,state,[">"],"string");}
                                                  if(/[\^'"!~\/]/.test(c)){
                                                          eatSuffix(stream, 1);
                                                          return tokenChain(stream,state,[stream.eat(c)],"string");}}
                                          else if(c=="w"){
                                                  c=look(stream, 1);
                                                  if(c=="("){
                                                          eatSuffix(stream, 2);
                                                          return tokenChain(stream,state,[")"],"bracket");}
                                                  if(c=="["){
                                                          eatSuffix(stream, 2);
                                                          return tokenChain(stream,state,["]"],"bracket");}
                                                  if(c=="{"){
                                                          eatSuffix(stream, 2);
                                                          return tokenChain(stream,state,["}"],"bracket");}
                                                  if(c=="<"){
                                                          eatSuffix(stream, 2);
                                                          return tokenChain(stream,state,[">"],"bracket");}
                                                  if(/[\^'"!~\/]/.test(c)){
                                                          eatSuffix(stream, 1);
                                                          return tokenChain(stream,state,[stream.eat(c)],"bracket");}}
                                          else if(c=="r"){
                                                  c=look(stream, 1);
                                                  if(c=="("){
                                                          eatSuffix(stream, 2);
                                                          return tokenChain(stream,state,[")"],RXstyle,RXmodifiers);}
                                                  if(c=="["){
                                                          eatSuffix(stream, 2);
                                                          return tokenChain(stream,state,["]"],RXstyle,RXmodifiers);}
                                                  if(c=="{"){
                                                          eatSuffix(stream, 2);
                                                          return tokenChain(stream,state,["}"],RXstyle,RXmodifiers);}
                                                  if(c=="<"){
                                                          eatSuffix(stream, 2);
                                                          return tokenChain(stream,state,[">"],RXstyle,RXmodifiers);}
                                                  if(/[\^'"!~\/]/.test(c)){
                                                          eatSuffix(stream, 1);
                                                          return tokenChain(stream,state,[stream.eat(c)],RXstyle,RXmodifiers);}}
                                          else if(/[\^'"!~\/(\[{<]/.test(c)){
                                                  if(c=="("){
                                                          eatSuffix(stream, 1);
                                                          return tokenChain(stream,state,[")"],"string");}
                                                  if(c=="["){
                                                          eatSuffix(stream, 1);
                                                          return tokenChain(stream,state,["]"],"string");}
                                                  if(c=="{"){
                                                          eatSuffix(stream, 1);
                                                          return tokenChain(stream,state,["}"],"string");}
                                                  if(c=="<"){
                                                          eatSuffix(stream, 1);
                                                          return tokenChain(stream,state,[">"],"string");}
                                                  if(/[\^'"!~\/]/.test(c)){
                                                          return tokenChain(stream,state,[stream.eat(c)],"string");}}}}
                          if(ch=="m"){
                                  var c=look(stream, -2);
                                  if(!(c&&/\w/.test(c))){
                                          c=stream.eat(/[(\[{<\^'"!~\/]/);
                                          if(c){
                                                  if(/[\^'"!~\/]/.test(c)){
                                                          return tokenChain(stream,state,[c],RXstyle,RXmodifiers);}
                                                  if(c=="("){
                                                          return tokenChain(stream,state,[")"],RXstyle,RXmodifiers);}
                                                  if(c=="["){
                                                          return tokenChain(stream,state,["]"],RXstyle,RXmodifiers);}
                                                  if(c=="{"){
                                                          return tokenChain(stream,state,["}"],RXstyle,RXmodifiers);}
                                                  if(c=="<"){
                                                          return tokenChain(stream,state,[">"],RXstyle,RXmodifiers);}}}}
                          if(ch=="s"){
                                  var c=/[\/>\]})\w]/.test(look(stream, -2));
                                  if(!c){
                                          c=stream.eat(/[(\[{<\^'"!~\/]/);
                                          if(c){
                                                  if(c=="[")
                                                          return tokenChain(stream,state,["]","]"],RXstyle,RXmodifiers);
                                                  if(c=="{")
                                                          return tokenChain(stream,state,["}","}"],RXstyle,RXmodifiers);
                                                  if(c=="<")
                                                          return tokenChain(stream,state,[">",">"],RXstyle,RXmodifiers);
                                                  if(c=="(")
                                                          return tokenChain(stream,state,[")",")"],RXstyle,RXmodifiers);
                                                  return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}}
                          if(ch=="y"){
                                  var c=/[\/>\]})\w]/.test(look(stream, -2));
                                  if(!c){
                                          c=stream.eat(/[(\[{<\^'"!~\/]/);
                                          if(c){
                                                  if(c=="[")
                                                          return tokenChain(stream,state,["]","]"],RXstyle,RXmodifiers);
                                                  if(c=="{")
                                                          return tokenChain(stream,state,["}","}"],RXstyle,RXmodifiers);
                                                  if(c=="<")
                                                          return tokenChain(stream,state,[">",">"],RXstyle,RXmodifiers);
                                                  if(c=="(")
                                                          return tokenChain(stream,state,[")",")"],RXstyle,RXmodifiers);
                                                  return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}}
                          if(ch=="t"){
                                  var c=/[\/>\]})\w]/.test(look(stream, -2));
                                  if(!c){
                                          c=stream.eat("r");if(c){
                                          c=stream.eat(/[(\[{<\^'"!~\/]/);
                                          if(c){
                                                  if(c=="[")
                                                          return tokenChain(stream,state,["]","]"],RXstyle,RXmodifiers);
                                                  if(c=="{")
                                                          return tokenChain(stream,state,["}","}"],RXstyle,RXmodifiers);
                                                  if(c=="<")
                                                          return tokenChain(stream,state,[">",">"],RXstyle,RXmodifiers);
                                                  if(c=="(")
                                                          return tokenChain(stream,state,[")",")"],RXstyle,RXmodifiers);
                                                  return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}}}
                          if(ch=="`"){
                                  return tokenChain(stream,state,[ch],"variable-2");}
                          if(ch=="/"){
                                  if(!/~\s*$/.test(prefix(stream)))
                                          return "operator";
                                  else
                                          return tokenChain(stream,state,[ch],RXstyle,RXmodifiers);}
                          if(ch=="$"){
                                  var p=stream.pos;
                                  if(stream.eatWhile(/\d/)||stream.eat("{")&&stream.eatWhile(/\d/)&&stream.eat("}"))
                                          return "variable-2";
                                  else
                                          stream.pos=p;}
                          if(/[$@%]/.test(ch)){
                                  var p=stream.pos;
                                  if(stream.eat("^")&&stream.eat(/[A-Z]/)||!/[@$%&]/.test(look(stream, -2))&&stream.eat(/[=|\\\-#?@;:&`~\^!\[\]*'"$+.,\/<>()]/)){
                                          var c=stream.current();
                                          if(PERL[c])
                                                  return "variable-2";}
                                  stream.pos=p;}
                          if(/[$@%&]/.test(ch)){
                                  if(stream.eatWhile(/[\w$\[\]]/)||stream.eat("{")&&stream.eatWhile(/[\w$\[\]]/)&&stream.eat("}")){
                                          var c=stream.current();
                                          if(PERL[c])
                                                  return "variable-2";
                                          else
                                                  return "variable";}}
                          if(ch=="#"){
                                  if(look(stream, -2)!="$"){
                                          stream.skipToEnd();
                                          return "comment";}}
                          if(/[:+\-\^*$&%@=<>!?|\/~\.]/.test(ch)){
                                  var p=stream.pos;
                                  stream.eatWhile(/[:+\-\^*$&%@=<>!?|\/~\.]/);
                                  if(PERL[stream.current()])
                                          return "operator";
                                  else
                                          stream.pos=p;}
                          if(ch=="_"){
                                  if(stream.pos==1){
                                          if(suffix(stream, 6)=="_END__"){
                                                  return tokenChain(stream,state,['\0'],"comment");}
                                          else if(suffix(stream, 7)=="_DATA__"){
                                                  return tokenChain(stream,state,['\0'],"variable-2");}
                                          else if(suffix(stream, 7)=="_C__"){
                                                  return tokenChain(stream,state,['\0'],"string");}}}
                          if(/\w/.test(ch)){
                                  var p=stream.pos;
                                  if(look(stream, -2)=="{"&&(look(stream, 0)=="}"||stream.eatWhile(/\w/)&&look(stream, 0)=="}"))
                                          return "string";
                                  else
                                          stream.pos=p;}
                          if(/[A-Z]/.test(ch)){
                                  var l=look(stream, -2);
                                  var p=stream.pos;
                                  stream.eatWhile(/[A-Z_]/);
                                  if(/[\da-z]/.test(look(stream, 0))){
                                          stream.pos=p;}
                                  else{
                                          var c=PERL[stream.current()];
                                          if(!c)
                                                  return "meta";
                                          if(c[1])
                                                  c=c[0];
                                          if(l!=":"){
                                                  if(c==1)
                                                          return "keyword";
                                                  else if(c==2)
                                                          return "def";
                                                  else if(c==3)
                                                          return "atom";
                                                  else if(c==4)
                                                          return "operator";
                                                  else if(c==5)
                                                          return "variable-2";
                                                  else
                                                          return "meta";}
                                          else
                                                  return "meta";}}
                          if(/[a-zA-Z_]/.test(ch)){
                                  var l=look(stream, -2);
                                  stream.eatWhile(/\w/);
                                  var c=PERL[stream.current()];
                                  if(!c)
                                          return "meta";
                                  if(c[1])
                                          c=c[0];
                                  if(l!=":"){
                                          if(c==1)
                                                  return "keyword";
                                          else if(c==2)
                                                  return "def";
                                          else if(c==3)
                                                  return "atom";
                                          else if(c==4)
                                                  return "operator";
                                          else if(c==5)
                                                  return "variable-2";
                                          else
                                                  return "meta";}
                                  else
                                          return "meta";}
                          return null;}
          
                  return {
                      startState: function() {
                          return {
                              tokenize: tokenPerl,
                              chain: null,
                              style: null,
                              tail: null
                          };
                      },
                      token: function(stream, state) {
                          return (state.tokenize || tokenPerl)(stream, state);
                      },
                      lineComment: '#'
                  };
          });
          
          CodeMirror.registerHelper("wordChars", "perl", /[\w$]/);
          
          CodeMirror.defineMIME("text/x-perl", "perl");
          
          // it's like "peek", but need for look-ahead or look-behind if index < 0
          function look(stream, c){
            return stream.string.charAt(stream.pos+(c||0));
          }
          
          // return a part of prefix of current stream from current position
          function prefix(stream, c){
            if(c){
              var x=stream.pos-c;
              return stream.string.substr((x>=0?x:0),c);}
            else{
              return stream.string.substr(0,stream.pos-1);
            }
          }
          
          // return a part of suffix of current stream from current position
          function suffix(stream, c){
            var y=stream.string.length;
            var x=y-stream.pos+1;
            return stream.string.substr(stream.pos,(c&&c<y?c:x));
          }
          
          // eating and vomiting a part of stream from current position
          function eatSuffix(stream, c){
            var x=stream.pos+c;
            var y;
            if(x<=0)
              stream.pos=0;
            else if(x>=(y=stream.string.length-1))
              stream.pos=y;
            else
              stream.pos=x;
          }
          
          });
          
      • php
        • index.html
          <!doctype html>
          
          <title>CodeMirror: PHP mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="../htmlmixed/htmlmixed.js"></script>
          <script src="../xml/xml.js"></script>
          <script src="../javascript/javascript.js"></script>
          <script src="../css/css.js"></script>
          <script src="../clike/clike.js"></script>
          <script src="php.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">PHP</a>
            </ul>
          </div>
          
          <article>
          <h2>PHP mode</h2>
          <form><textarea id="code" name="code">
          <?php
          $a = array('a' => 1, 'b' => 2, 3 => 'c');
          
          echo "$a[a] ${a[3] /* } comment */} {$a[b]} \$a[a]";
          
          function hello($who) {
          	return "Hello $who!";
          }
          ?>
          <p>The program says <?= hello("World") ?>.</p>
          <script>
          	alert("And here is some JS code"); // also colored
          </script>
          </textarea></form>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  matchBrackets: true,
                  mode: "application/x-httpd-php",
                  indentUnit: 4,
                  indentWithTabs: true
                });
              </script>
          
              <p>Simple HTML/PHP mode based on
              the <a href="../clike/">C-like</a> mode. Depends on XML,
              JavaScript, CSS, HTMLMixed, and C-like modes.</p>
          
              <p><strong>MIME types defined:</strong> <code>application/x-httpd-php</code> (HTML with PHP code), <code>text/x-php</code> (plain, non-wrapped PHP code).</p>
            </article>
          
        • php.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"), require("../clike/clike"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "../htmlmixed/htmlmixed", "../clike/clike"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            function keywords(str) {
              var obj = {}, words = str.split(" ");
              for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
              return obj;
            }
          
            // Helper for phpString
            function matchSequence(list, end, escapes) {
              if (list.length == 0) return phpString(end);
              return function (stream, state) {
                var patterns = list[0];
                for (var i = 0; i < patterns.length; i++) if (stream.match(patterns[i][0])) {
                  state.tokenize = matchSequence(list.slice(1), end);
                  return patterns[i][1];
                }
                state.tokenize = phpString(end, escapes);
                return "string";
              };
            }
            function phpString(closing, escapes) {
              return function(stream, state) { return phpString_(stream, state, closing, escapes); };
            }
            function phpString_(stream, state, closing, escapes) {
              // "Complex" syntax
              if (escapes !== false && stream.match("${", false) || stream.match("{$", false)) {
                state.tokenize = null;
                return "string";
              }
          
              // Simple syntax
              if (escapes !== false && stream.match(/^\$[a-zA-Z_][a-zA-Z0-9_]*/)) {
                // After the variable name there may appear array or object operator.
                if (stream.match("[", false)) {
                  // Match array operator
                  state.tokenize = matchSequence([
                    [["[", null]],
                    [[/\d[\w\.]*/, "number"],
                     [/\$[a-zA-Z_][a-zA-Z0-9_]*/, "variable-2"],
                     [/[\w\$]+/, "variable"]],
                    [["]", null]]
                  ], closing, escapes);
                }
                if (stream.match(/\-\>\w/, false)) {
                  // Match object operator
                  state.tokenize = matchSequence([
                    [["->", null]],
                    [[/[\w]+/, "variable"]]
                  ], closing, escapes);
                }
                return "variable-2";
              }
          
              var escaped = false;
              // Normal string
              while (!stream.eol() &&
                     (escaped || escapes === false ||
                      (!stream.match("{$", false) &&
                       !stream.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*|\$\{)/, false)))) {
                if (!escaped && stream.match(closing)) {
                  state.tokenize = null;
                  state.tokStack.pop(); state.tokStack.pop();
                  break;
                }
                escaped = stream.next() == "\\" && !escaped;
              }
              return "string";
            }
          
            var phpKeywords = "abstract and array as break case catch class clone const continue declare default " +
              "do else elseif enddeclare endfor endforeach endif endswitch endwhile extends final " +
              "for foreach function global goto if implements interface instanceof namespace " +
              "new or private protected public static switch throw trait try use var while xor " +
              "die echo empty exit eval include include_once isset list require require_once return " +
              "print unset __halt_compiler self static parent yield insteadof finally";
            var phpAtoms = "true false null TRUE FALSE NULL __CLASS__ __DIR__ __FILE__ __LINE__ __METHOD__ __FUNCTION__ __NAMESPACE__ __TRAIT__";
            var phpBuiltin = "func_num_args func_get_arg func_get_args strlen strcmp strncmp strcasecmp strncasecmp each error_reporting define defined trigger_error user_error set_error_handler restore_error_handler get_declared_classes get_loaded_extensions extension_loaded get_extension_funcs debug_backtrace constant bin2hex hex2bin sleep usleep time mktime gmmktime strftime gmstrftime strtotime date gmdate getdate localtime checkdate flush wordwrap htmlspecialchars htmlentities html_entity_decode md5 md5_file crc32 getimagesize image_type_to_mime_type phpinfo phpversion phpcredits strnatcmp strnatcasecmp substr_count strspn strcspn strtok strtoupper strtolower strpos strrpos strrev hebrev hebrevc nl2br basename dirname pathinfo stripslashes stripcslashes strstr stristr strrchr str_shuffle str_word_count strcoll substr substr_replace quotemeta ucfirst ucwords strtr addslashes addcslashes rtrim str_replace str_repeat count_chars chunk_split trim ltrim strip_tags similar_text explode implode setlocale localeconv parse_str str_pad chop strchr sprintf printf vprintf vsprintf sscanf fscanf parse_url urlencode urldecode rawurlencode rawurldecode readlink linkinfo link unlink exec system escapeshellcmd escapeshellarg passthru shell_exec proc_open proc_close rand srand getrandmax mt_rand mt_srand mt_getrandmax base64_decode base64_encode abs ceil floor round is_finite is_nan is_infinite bindec hexdec octdec decbin decoct dechex base_convert number_format fmod ip2long long2ip getenv putenv getopt microtime gettimeofday getrusage uniqid quoted_printable_decode set_time_limit get_cfg_var magic_quotes_runtime set_magic_quotes_runtime get_magic_quotes_gpc get_magic_quotes_runtime import_request_variables error_log serialize unserialize memory_get_usage var_dump var_export debug_zval_dump print_r highlight_file show_source highlight_string ini_get ini_get_all ini_set ini_alter ini_restore get_include_path set_include_path restore_include_path setcookie header headers_sent connection_aborted connection_status ignore_user_abort parse_ini_file is_uploaded_file move_uploaded_file intval floatval doubleval strval gettype settype is_null is_resource is_bool is_long is_float is_int is_integer is_double is_real is_numeric is_string is_array is_object is_scalar ereg ereg_replace eregi eregi_replace split spliti join sql_regcase dl pclose popen readfile rewind rmdir umask fclose feof fgetc fgets fgetss fread fopen fpassthru ftruncate fstat fseek ftell fflush fwrite fputs mkdir rename copy tempnam tmpfile file file_get_contents file_put_contents stream_select stream_context_create stream_context_set_params stream_context_set_option stream_context_get_options stream_filter_prepend stream_filter_append fgetcsv flock get_meta_tags stream_set_write_buffer set_file_buffer set_socket_blocking stream_set_blocking socket_set_blocking stream_get_meta_data stream_register_wrapper stream_wrapper_register stream_set_timeout socket_set_timeout socket_get_status realpath fnmatch fsockopen pfsockopen pack unpack get_browser crypt opendir closedir chdir getcwd rewinddir readdir dir glob fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype file_exists is_writable is_writeable is_readable is_executable is_file is_dir is_link stat lstat chown touch clearstatcache mail ob_start ob_flush ob_clean ob_end_flush ob_end_clean ob_get_flush ob_get_clean ob_get_length ob_get_level ob_get_status ob_get_contents ob_implicit_flush ob_list_handlers ksort krsort natsort natcasesort asort arsort sort rsort usort uasort uksort shuffle array_walk count end prev next reset current key min max in_array array_search extract compact array_fill range array_multisort array_push array_pop array_shift array_unshift array_splice array_slice array_merge array_merge_recursive array_keys array_values array_count_values array_reverse array_reduce array_pad array_flip array_change_key_case array_rand array_unique array_intersect array_intersect_assoc array_diff array_diff_assoc array_sum array_filter array_map array_chunk array_key_exists pos sizeof key_exists assert assert_options version_compare ftok str_rot13 aggregate session_name session_module_name session_save_path session_id session_regenerate_id session_decode session_register session_unregister session_is_registered session_encode session_start session_destroy session_unset session_set_save_handler session_cache_limiter session_cache_expire session_set_cookie_params session_get_cookie_params session_write_close preg_match preg_match_all preg_replace preg_replace_callback preg_split preg_quote preg_grep overload ctype_alnum ctype_alpha ctype_cntrl ctype_digit ctype_lower ctype_graph ctype_print ctype_punct ctype_space ctype_upper ctype_xdigit virtual apache_request_headers apache_note apache_lookup_uri apache_child_terminate apache_setenv apache_response_headers apache_get_version getallheaders mysql_connect mysql_pconnect mysql_close mysql_select_db mysql_create_db mysql_drop_db mysql_query mysql_unbuffered_query mysql_db_query mysql_list_dbs mysql_list_tables mysql_list_fields mysql_list_processes mysql_error mysql_errno mysql_affected_rows mysql_insert_id mysql_result mysql_num_rows mysql_num_fields mysql_fetch_row mysql_fetch_array mysql_fetch_assoc mysql_fetch_object mysql_data_seek mysql_fetch_lengths mysql_fetch_field mysql_field_seek mysql_free_result mysql_field_name mysql_field_table mysql_field_len mysql_field_type mysql_field_flags mysql_escape_string mysql_real_escape_string mysql_stat mysql_thread_id mysql_client_encoding mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_info mysql mysql_fieldname mysql_fieldtable mysql_fieldlen mysql_fieldtype mysql_fieldflags mysql_selectdb mysql_createdb mysql_dropdb mysql_freeresult mysql_numfields mysql_numrows mysql_listdbs mysql_listtables mysql_listfields mysql_db_name mysql_dbname mysql_tablename mysql_table_name pg_connect pg_pconnect pg_close pg_connection_status pg_connection_busy pg_connection_reset pg_host pg_dbname pg_port pg_tty pg_options pg_ping pg_query pg_send_query pg_cancel_query pg_fetch_result pg_fetch_row pg_fetch_assoc pg_fetch_array pg_fetch_object pg_fetch_all pg_affected_rows pg_get_result pg_result_seek pg_result_status pg_free_result pg_last_oid pg_num_rows pg_num_fields pg_field_name pg_field_num pg_field_size pg_field_type pg_field_prtlen pg_field_is_null pg_get_notify pg_get_pid pg_result_error pg_last_error pg_last_notice pg_put_line pg_end_copy pg_copy_to pg_copy_from pg_trace pg_untrace pg_lo_create pg_lo_unlink pg_lo_open pg_lo_close pg_lo_read pg_lo_write pg_lo_read_all pg_lo_import pg_lo_export pg_lo_seek pg_lo_tell pg_escape_string pg_escape_bytea pg_unescape_bytea pg_client_encoding pg_set_client_encoding pg_meta_data pg_convert pg_insert pg_update pg_delete pg_select pg_exec pg_getlastoid pg_cmdtuples pg_errormessage pg_numrows pg_numfields pg_fieldname pg_fieldsize pg_fieldtype pg_fieldnum pg_fieldprtlen pg_fieldisnull pg_freeresult pg_result pg_loreadall pg_locreate pg_lounlink pg_loopen pg_loclose pg_loread pg_lowrite pg_loimport pg_loexport http_response_code get_declared_traits getimagesizefromstring socket_import_stream stream_set_chunk_size trait_exists header_register_callback class_uses session_status session_register_shutdown echo print global static exit array empty eval isset unset die include require include_once require_once json_decode json_encode json_last_error json_last_error_msg curl_close curl_copy_handle curl_errno curl_error curl_escape curl_exec curl_file_create curl_getinfo curl_init curl_multi_add_handle curl_multi_close curl_multi_exec curl_multi_getcontent curl_multi_info_read curl_multi_init curl_multi_remove_handle curl_multi_select curl_multi_setopt curl_multi_strerror curl_pause curl_reset curl_setopt_array curl_setopt curl_share_close curl_share_init curl_share_setopt curl_strerror curl_unescape curl_version mysqli_affected_rows mysqli_autocommit mysqli_change_user mysqli_character_set_name mysqli_close mysqli_commit mysqli_connect_errno mysqli_connect_error mysqli_connect mysqli_data_seek mysqli_debug mysqli_dump_debug_info mysqli_errno mysqli_error_list mysqli_error mysqli_fetch_all mysqli_fetch_array mysqli_fetch_assoc mysqli_fetch_field_direct mysqli_fetch_field mysqli_fetch_fields mysqli_fetch_lengths mysqli_fetch_object mysqli_fetch_row mysqli_field_count mysqli_field_seek mysqli_field_tell mysqli_free_result mysqli_get_charset mysqli_get_client_info mysqli_get_client_stats mysqli_get_client_version mysqli_get_connection_stats mysqli_get_host_info mysqli_get_proto_info mysqli_get_server_info mysqli_get_server_version mysqli_info mysqli_init mysqli_insert_id mysqli_kill mysqli_more_results mysqli_multi_query mysqli_next_result mysqli_num_fields mysqli_num_rows mysqli_options mysqli_ping mysqli_prepare mysqli_query mysqli_real_connect mysqli_real_escape_string mysqli_real_query mysqli_reap_async_query mysqli_refresh mysqli_rollback mysqli_select_db mysqli_set_charset mysqli_set_local_infile_default mysqli_set_local_infile_handler mysqli_sqlstate mysqli_ssl_set mysqli_stat mysqli_stmt_init mysqli_store_result mysqli_thread_id mysqli_thread_safe mysqli_use_result mysqli_warning_count";
            CodeMirror.registerHelper("hintWords", "php", [phpKeywords, phpAtoms, phpBuiltin].join(" ").split(" "));
            CodeMirror.registerHelper("wordChars", "php", /[\w$]/);
          
            var phpConfig = {
              name: "clike",
              helperType: "php",
              keywords: keywords(phpKeywords),
              blockKeywords: keywords("catch do else elseif for foreach if switch try while finally"),
              defKeywords: keywords("class function interface namespace trait"),
              atoms: keywords(phpAtoms),
              builtin: keywords(phpBuiltin),
              multiLineStrings: true,
              hooks: {
                "$": function(stream) {
                  stream.eatWhile(/[\w\$_]/);
                  return "variable-2";
                },
                "<": function(stream, state) {
                  var before;
                  if (before = stream.match(/<<\s*/)) {
                    var quoted = stream.eat(/['"]/);
                    stream.eatWhile(/[\w\.]/);
                    var delim = stream.current().slice(before[0].length + (quoted ? 2 : 1));
                    if (quoted) stream.eat(quoted);
                    if (delim) {
                      (state.tokStack || (state.tokStack = [])).push(delim, 0);
                      state.tokenize = phpString(delim, quoted != "'");
                      return "string";
                    }
                  }
                  return false;
                },
                "#": function(stream) {
                  while (!stream.eol() && !stream.match("?>", false)) stream.next();
                  return "comment";
                },
                "/": function(stream) {
                  if (stream.eat("/")) {
                    while (!stream.eol() && !stream.match("?>", false)) stream.next();
                    return "comment";
                  }
                  return false;
                },
                '"': function(_stream, state) {
                  (state.tokStack || (state.tokStack = [])).push('"', 0);
                  state.tokenize = phpString('"');
                  return "string";
                },
                "{": function(_stream, state) {
                  if (state.tokStack && state.tokStack.length)
                    state.tokStack[state.tokStack.length - 1]++;
                  return false;
                },
                "}": function(_stream, state) {
                  if (state.tokStack && state.tokStack.length > 0 &&
                      !--state.tokStack[state.tokStack.length - 1]) {
                    state.tokenize = phpString(state.tokStack[state.tokStack.length - 2]);
                  }
                  return false;
                }
              }
            };
          
            CodeMirror.defineMode("php", function(config, parserConfig) {
              var htmlMode = CodeMirror.getMode(config, "text/html");
              var phpMode = CodeMirror.getMode(config, phpConfig);
          
              function dispatch(stream, state) {
                var isPHP = state.curMode == phpMode;
                if (stream.sol() && state.pending && state.pending != '"' && state.pending != "'") state.pending = null;
                if (!isPHP) {
                  if (stream.match(/^<\?\w*/)) {
                    state.curMode = phpMode;
                    if (!state.php) state.php = CodeMirror.startState(phpMode, htmlMode.indent(state.html, ""))
                    state.curState = state.php;
                    return "meta";
                  }
                  if (state.pending == '"' || state.pending == "'") {
                    while (!stream.eol() && stream.next() != state.pending) {}
                    var style = "string";
                  } else if (state.pending && stream.pos < state.pending.end) {
                    stream.pos = state.pending.end;
                    var style = state.pending.style;
                  } else {
                    var style = htmlMode.token(stream, state.curState);
                  }
                  if (state.pending) state.pending = null;
                  var cur = stream.current(), openPHP = cur.search(/<\?/), m;
                  if (openPHP != -1) {
                    if (style == "string" && (m = cur.match(/[\'\"]$/)) && !/\?>/.test(cur)) state.pending = m[0];
                    else state.pending = {end: stream.pos, style: style};
                    stream.backUp(cur.length - openPHP);
                  }
                  return style;
                } else if (isPHP && state.php.tokenize == null && stream.match("?>")) {
                  state.curMode = htmlMode;
                  state.curState = state.html;
                  if (!state.php.context.prev) state.php = null;
                  return "meta";
                } else {
                  return phpMode.token(stream, state.curState);
                }
              }
          
              return {
                startState: function() {
                  var html = CodeMirror.startState(htmlMode)
                  var php = parserConfig.startOpen ? CodeMirror.startState(phpMode) : null
                  return {html: html,
                          php: php,
                          curMode: parserConfig.startOpen ? phpMode : htmlMode,
                          curState: parserConfig.startOpen ? php : html,
                          pending: null};
                },
          
                copyState: function(state) {
                  var html = state.html, htmlNew = CodeMirror.copyState(htmlMode, html),
                      php = state.php, phpNew = php && CodeMirror.copyState(phpMode, php), cur;
                  if (state.curMode == htmlMode) cur = htmlNew;
                  else cur = phpNew;
                  return {html: htmlNew, php: phpNew, curMode: state.curMode, curState: cur,
                          pending: state.pending};
                },
          
                token: dispatch,
          
                indent: function(state, textAfter) {
                  if ((state.curMode != phpMode && /^\s*<\//.test(textAfter)) ||
                      (state.curMode == phpMode && /^\?>/.test(textAfter)))
                    return htmlMode.indent(state.html, textAfter);
                  return state.curMode.indent(state.curState, textAfter);
                },
          
                blockCommentStart: "/*",
                blockCommentEnd: "*/",
                lineComment: "//",
          
                innerMode: function(state) { return {state: state.curState, mode: state.curMode}; }
              };
            }, "htmlmixed", "clike");
          
            CodeMirror.defineMIME("application/x-httpd-php", "php");
            CodeMirror.defineMIME("application/x-httpd-php-open", {name: "php", startOpen: true});
            CodeMirror.defineMIME("text/x-php", phpConfig);
          });
          
        • test.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function() {
            var mode = CodeMirror.getMode({indentUnit: 2}, "php");
            function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
          
            MT('simple_test',
               '[meta <?php] ' +
               '[keyword echo] [string "aaa"]; ' +
               '[meta ?>]');
          
            MT('variable_interpolation_non_alphanumeric',
               '[meta <?php]',
               '[keyword echo] [string "aaa$~$!$@$#$$$%$^$&$*$($)$.$<$>$/$\\$}$\\\"$:$;$?$|$[[$]]$+$=aaa"]',
               '[meta ?>]');
          
            MT('variable_interpolation_digits',
               '[meta <?php]',
               '[keyword echo] [string "aaa$1$2$3$4$5$6$7$8$9$0aaa"]',
               '[meta ?>]');
          
            MT('variable_interpolation_simple_syntax_1',
               '[meta <?php]',
               '[keyword echo] [string "aaa][variable-2 $aaa][string .aaa"];',
               '[meta ?>]');
          
            MT('variable_interpolation_simple_syntax_2',
               '[meta <?php]',
               '[keyword echo] [string "][variable-2 $aaaa][[','[number 2]',         ']][string aa"];',
               '[keyword echo] [string "][variable-2 $aaaa][[','[number 2345]',      ']][string aa"];',
               '[keyword echo] [string "][variable-2 $aaaa][[','[number 2.3]',       ']][string aa"];',
               '[keyword echo] [string "][variable-2 $aaaa][[','[variable aaaaa]',   ']][string aa"];',
               '[keyword echo] [string "][variable-2 $aaaa][[','[variable-2 $aaaaa]',']][string aa"];',
          
               '[keyword echo] [string "1aaa][variable-2 $aaaa][[','[number 2]',         ']][string aa"];',
               '[keyword echo] [string "aaa][variable-2 $aaaa][[','[number 2345]',      ']][string aa"];',
               '[keyword echo] [string "aaa][variable-2 $aaaa][[','[number 2.3]',       ']][string aa"];',
               '[keyword echo] [string "aaa][variable-2 $aaaa][[','[variable aaaaa]',   ']][string aa"];',
               '[keyword echo] [string "aaa][variable-2 $aaaa][[','[variable-2 $aaaaa]',']][string aa"];',
               '[meta ?>]');
          
            MT('variable_interpolation_simple_syntax_3',
               '[meta <?php]',
               '[keyword echo] [string "aaa][variable-2 $aaaa]->[variable aaaaa][string .aaaaaa"];',
               '[keyword echo] [string "aaa][variable-2 $aaaa][string ->][variable-2 $aaaaa][string .aaaaaa"];',
               '[keyword echo] [string "aaa][variable-2 $aaaa]->[variable aaaaa][string [[2]].aaaaaa"];',
               '[keyword echo] [string "aaa][variable-2 $aaaa]->[variable aaaaa][string ->aaaa2.aaaaaa"];',
               '[meta ?>]');
          
            MT('variable_interpolation_escaping',
               '[meta <?php] [comment /* Escaping */]',
               '[keyword echo] [string "aaa\\$aaaa->aaa.aaa"];',
               '[keyword echo] [string "aaa\\$aaaa[[2]]aaa.aaa"];',
               '[keyword echo] [string "aaa\\$aaaa[[asd]]aaa.aaa"];',
               '[keyword echo] [string "aaa{\\$aaaa->aaa.aaa"];',
               '[keyword echo] [string "aaa{\\$aaaa[[2]]aaa.aaa"];',
               '[keyword echo] [string "aaa{\\aaaaa[[asd]]aaa.aaa"];',
               '[keyword echo] [string "aaa\\${aaaa->aaa.aaa"];',
               '[keyword echo] [string "aaa\\${aaaa[[2]]aaa.aaa"];',
               '[keyword echo] [string "aaa\\${aaaa[[asd]]aaa.aaa"];',
               '[meta ?>]');
          
            MT('variable_interpolation_complex_syntax_1',
               '[meta <?php]',
               '[keyword echo] [string "aaa][variable-2 $]{[variable aaaa]}[string ->aaa.aaa"];',
               '[keyword echo] [string "aaa][variable-2 $]{[variable-2 $aaaa]}[string ->aaa.aaa"];',
               '[keyword echo] [string "aaa][variable-2 $]{[variable-2 $aaaa][[','  [number 42]',']]}[string ->aaa.aaa"];',
               '[keyword echo] [string "aaa][variable-2 $]{[variable aaaa][meta ?>]aaaaaa');
          
            MT('variable_interpolation_complex_syntax_2',
               '[meta <?php] [comment /* Monsters */]',
               '[keyword echo] [string "][variable-2 $]{[variable aaa][comment /*}?>} $aaa<?php } */]}[string ->aaa.aaa"];',
               '[keyword echo] [string "][variable-2 $]{[variable aaa][comment /*}?>*/][[','  [string "aaa][variable-2 $aaa][string {}][variable-2 $]{[variable aaa]}[string "]',']]}[string ->aaa.aaa"];',
               '[keyword echo] [string "][variable-2 $]{[variable aaa][comment /*} } $aaa } */]}[string ->aaa.aaa"];');
          
          
            function build_recursive_monsters(nt, t, n){
              var monsters = [t];
              for (var i = 1; i <= n; ++i)
                monsters[i] = nt.join(monsters[i - 1]);
              return monsters;
            }
          
            var m1 = build_recursive_monsters(
              ['[string "][variable-2 $]{[variable aaa] [operator +] ', '}[string "]'],
              '[comment /* }?>} */] [string "aaa][variable-2 $aaa][string .aaa"]',
              10
            );
          
            MT('variable_interpolation_complex_syntax_3_1',
               '[meta <?php] [comment /* Recursive monsters */]',
               '[keyword echo] ' + m1[4] + ';',
               '[keyword echo] ' + m1[7] + ';',
               '[keyword echo] ' + m1[8] + ';',
               '[keyword echo] ' + m1[5] + ';',
               '[keyword echo] ' + m1[1] + ';',
               '[keyword echo] ' + m1[6] + ';',
               '[keyword echo] ' + m1[9] + ';',
               '[keyword echo] ' + m1[0] + ';',
               '[keyword echo] ' + m1[10] + ';',
               '[keyword echo] ' + m1[2] + ';',
               '[keyword echo] ' + m1[3] + ';',
               '[keyword echo] [string "end"];',
               '[meta ?>]');
          
            var m2 = build_recursive_monsters(
              ['[string "a][variable-2 $]{[variable aaa] [operator +] ', ' [operator +] ', '}[string .a"]'],
              '[comment /* }?>{{ */] [string "a?>}{{aa][variable-2 $aaa][string .a}a?>a"]',
              5
            );
          
            MT('variable_interpolation_complex_syntax_3_2',
               '[meta <?php] [comment /* Recursive monsters 2 */]',
               '[keyword echo] ' + m2[0] + ';',
               '[keyword echo] ' + m2[1] + ';',
               '[keyword echo] ' + m2[5] + ';',
               '[keyword echo] ' + m2[4] + ';',
               '[keyword echo] ' + m2[2] + ';',
               '[keyword echo] ' + m2[3] + ';',
               '[keyword echo] [string "end"];',
               '[meta ?>]');
          
            function build_recursive_monsters_2(mf1, mf2, nt, t, n){
              var monsters = [t];
              for (var i = 1; i <= n; ++i)
                monsters[i] = nt[0] + mf1[i - 1] + nt[1] + mf2[i - 1] + nt[2] + monsters[i - 1] + nt[3];
              return monsters;
            }
          
            var m3 = build_recursive_monsters_2(
              m1,
              m2,
              ['[string "a][variable-2 $]{[variable aaa] [operator +] ', ' [operator +] ', ' [operator +] ', '}[string .a"]'],
              '[comment /* }?>{{ */] [string "a?>}{{aa][variable-2 $aaa][string .a}a?>a"]',
              4
            );
          
            MT('variable_interpolation_complex_syntax_3_3',
               '[meta <?php] [comment /* Recursive monsters 2 */]',
               '[keyword echo] ' + m3[4] + ';',
               '[keyword echo] ' + m3[0] + ';',
               '[keyword echo] ' + m3[3] + ';',
               '[keyword echo] ' + m3[1] + ';',
               '[keyword echo] ' + m3[2] + ';',
               '[keyword echo] [string "end"];',
               '[meta ?>]');
          
            MT("variable_interpolation_heredoc",
               "[meta <?php]",
               "[string <<<here]",
               "[string doc ][variable-2 $]{[variable yay]}[string more]",
               "[string here]; [comment // normal]");
          })();
          
      • pig
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Pig Latin mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="pig.js"></script>
          <style>.CodeMirror {border: 2px inset #dee;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Pig Latin</a>
            </ul>
          </div>
          
          <article>
          <h2>Pig Latin mode</h2>
          <form><textarea id="code" name="code">
          -- Apache Pig (Pig Latin Language) Demo
          /* 
          This is a multiline comment.
          */
          a = LOAD "\path\to\input" USING PigStorage('\t') AS (x:long, y:chararray, z:bytearray);
          b = GROUP a BY (x,y,3+4);
          c = FOREACH b GENERATE flatten(group) as (x,y), SUM(group.$2) as z;
          STORE c INTO "\path\to\output";
          
          --
          </textarea></form>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  indentUnit: 4,
                  mode: "text/x-pig"
                });
              </script>
          
              <p>
                  Simple mode that handles Pig Latin language.
              </p>
          
              <p><strong>MIME type defined:</strong> <code>text/x-pig</code>
              (PIG code)
          </html>
          </article>
          
        • pig.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          /*
           *      Pig Latin Mode for CodeMirror 2
           *      @author Prasanth Jayachandran
           *      @link   https://github.com/prasanthj/pig-codemirror-2
           *  This implementation is adapted from PL/SQL mode in CodeMirror 2.
           */
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("pig", function(_config, parserConfig) {
            var keywords = parserConfig.keywords,
            builtins = parserConfig.builtins,
            types = parserConfig.types,
            multiLineStrings = parserConfig.multiLineStrings;
          
            var isOperatorChar = /[*+\-%<>=&?:\/!|]/;
          
            function chain(stream, state, f) {
              state.tokenize = f;
              return f(stream, state);
            }
          
            function tokenComment(stream, state) {
              var isEnd = false;
              var ch;
              while(ch = stream.next()) {
                if(ch == "/" && isEnd) {
                  state.tokenize = tokenBase;
                  break;
                }
                isEnd = (ch == "*");
              }
              return "comment";
            }
          
            function tokenString(quote) {
              return function(stream, state) {
                var escaped = false, next, end = false;
                while((next = stream.next()) != null) {
                  if (next == quote && !escaped) {
                    end = true; break;
                  }
                  escaped = !escaped && next == "\\";
                }
                if (end || !(escaped || multiLineStrings))
                  state.tokenize = tokenBase;
                return "error";
              };
            }
          
          
            function tokenBase(stream, state) {
              var ch = stream.next();
          
              // is a start of string?
              if (ch == '"' || ch == "'")
                return chain(stream, state, tokenString(ch));
              // is it one of the special chars
              else if(/[\[\]{}\(\),;\.]/.test(ch))
                return null;
              // is it a number?
              else if(/\d/.test(ch)) {
                stream.eatWhile(/[\w\.]/);
                return "number";
              }
              // multi line comment or operator
              else if (ch == "/") {
                if (stream.eat("*")) {
                  return chain(stream, state, tokenComment);
                }
                else {
                  stream.eatWhile(isOperatorChar);
                  return "operator";
                }
              }
              // single line comment or operator
              else if (ch=="-") {
                if(stream.eat("-")){
                  stream.skipToEnd();
                  return "comment";
                }
                else {
                  stream.eatWhile(isOperatorChar);
                  return "operator";
                }
              }
              // is it an operator
              else if (isOperatorChar.test(ch)) {
                stream.eatWhile(isOperatorChar);
                return "operator";
              }
              else {
                // get the while word
                stream.eatWhile(/[\w\$_]/);
                // is it one of the listed keywords?
                if (keywords && keywords.propertyIsEnumerable(stream.current().toUpperCase())) {
                  //keywords can be used as variables like flatten(group), group.$0 etc..
                  if (!stream.eat(")") && !stream.eat("."))
                    return "keyword";
                }
                // is it one of the builtin functions?
                if (builtins && builtins.propertyIsEnumerable(stream.current().toUpperCase()))
                  return "variable-2";
                // is it one of the listed types?
                if (types && types.propertyIsEnumerable(stream.current().toUpperCase()))
                  return "variable-3";
                // default is a 'variable'
                return "variable";
              }
            }
          
            // Interface
            return {
              startState: function() {
                return {
                  tokenize: tokenBase,
                  startOfLine: true
                };
              },
          
              token: function(stream, state) {
                if(stream.eatSpace()) return null;
                var style = state.tokenize(stream, state);
                return style;
              }
            };
          });
          
          (function() {
            function keywords(str) {
              var obj = {}, words = str.split(" ");
              for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
              return obj;
            }
          
            // builtin funcs taken from trunk revision 1303237
            var pBuiltins = "ABS ACOS ARITY ASIN ATAN AVG BAGSIZE BINSTORAGE BLOOM BUILDBLOOM CBRT CEIL "
              + "CONCAT COR COS COSH COUNT COUNT_STAR COV CONSTANTSIZE CUBEDIMENSIONS DIFF DISTINCT DOUBLEABS "
              + "DOUBLEAVG DOUBLEBASE DOUBLEMAX DOUBLEMIN DOUBLEROUND DOUBLESUM EXP FLOOR FLOATABS FLOATAVG "
              + "FLOATMAX FLOATMIN FLOATROUND FLOATSUM GENERICINVOKER INDEXOF INTABS INTAVG INTMAX INTMIN "
              + "INTSUM INVOKEFORDOUBLE INVOKEFORFLOAT INVOKEFORINT INVOKEFORLONG INVOKEFORSTRING INVOKER "
              + "ISEMPTY JSONLOADER JSONMETADATA JSONSTORAGE LAST_INDEX_OF LCFIRST LOG LOG10 LOWER LONGABS "
              + "LONGAVG LONGMAX LONGMIN LONGSUM MAX MIN MAPSIZE MONITOREDUDF NONDETERMINISTIC OUTPUTSCHEMA  "
              + "PIGSTORAGE PIGSTREAMING RANDOM REGEX_EXTRACT REGEX_EXTRACT_ALL REPLACE ROUND SIN SINH SIZE "
              + "SQRT STRSPLIT SUBSTRING SUM STRINGCONCAT STRINGMAX STRINGMIN STRINGSIZE TAN TANH TOBAG "
              + "TOKENIZE TOMAP TOP TOTUPLE TRIM TEXTLOADER TUPLESIZE UCFIRST UPPER UTF8STORAGECONVERTER ";
          
            // taken from QueryLexer.g
            var pKeywords = "VOID IMPORT RETURNS DEFINE LOAD FILTER FOREACH ORDER CUBE DISTINCT COGROUP "
              + "JOIN CROSS UNION SPLIT INTO IF OTHERWISE ALL AS BY USING INNER OUTER ONSCHEMA PARALLEL "
              + "PARTITION GROUP AND OR NOT GENERATE FLATTEN ASC DESC IS STREAM THROUGH STORE MAPREDUCE "
              + "SHIP CACHE INPUT OUTPUT STDERROR STDIN STDOUT LIMIT SAMPLE LEFT RIGHT FULL EQ GT LT GTE LTE "
              + "NEQ MATCHES TRUE FALSE DUMP";
          
            // data types
            var pTypes = "BOOLEAN INT LONG FLOAT DOUBLE CHARARRAY BYTEARRAY BAG TUPLE MAP ";
          
            CodeMirror.defineMIME("text/x-pig", {
              name: "pig",
              builtins: keywords(pBuiltins),
              keywords: keywords(pKeywords),
              types: keywords(pTypes)
            });
          
            CodeMirror.registerHelper("hintWords", "pig", (pBuiltins + pTypes + pKeywords).split(" "));
          }());
          
          });
          
      • properties
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Properties files mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="properties.js"></script>
          <style>.CodeMirror {border-top: 1px solid #ddd; border-bottom: 1px solid #ddd;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Properties files</a>
            </ul>
          </div>
          
          <article>
          <h2>Properties files mode</h2>
          <form><textarea id="code" name="code">
          # This is a properties file
          a.key = A value
          another.key = http://example.com
          ! Exclamation mark as comment
          but.not=Within ! A value # indeed
             # Spaces at the beginning of a line
             spaces.before.key=value
          backslash=Used for multi\
                    line entries,\
                    that's convenient.
          # Unicode sequences
          unicode.key=This is \u0020 Unicode
          no.multiline=here
          # Colons
          colons : can be used too
          # Spaces
          spaces\ in\ keys=Not very common...
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {});
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-properties</code>,
              <code>text/x-ini</code>.</p>
          
            </article>
          
        • properties.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("properties", function() {
            return {
              token: function(stream, state) {
                var sol = stream.sol() || state.afterSection;
                var eol = stream.eol();
          
                state.afterSection = false;
          
                if (sol) {
                  if (state.nextMultiline) {
                    state.inMultiline = true;
                    state.nextMultiline = false;
                  } else {
                    state.position = "def";
                  }
                }
          
                if (eol && ! state.nextMultiline) {
                  state.inMultiline = false;
                  state.position = "def";
                }
          
                if (sol) {
                  while(stream.eatSpace());
                }
          
                var ch = stream.next();
          
                if (sol && (ch === "#" || ch === "!" || ch === ";")) {
                  state.position = "comment";
                  stream.skipToEnd();
                  return "comment";
                } else if (sol && ch === "[") {
                  state.afterSection = true;
                  stream.skipTo("]"); stream.eat("]");
                  return "header";
                } else if (ch === "=" || ch === ":") {
                  state.position = "quote";
                  return null;
                } else if (ch === "\\" && state.position === "quote") {
                  if (stream.eol()) {  // end of line?
                    // Multiline value
                    state.nextMultiline = true;
                  }
                }
          
                return state.position;
              },
          
              startState: function() {
                return {
                  position : "def",       // Current position, "def", "quote" or "comment"
                  nextMultiline : false,  // Is the next line multiline value
                  inMultiline : false,    // Is the current line a multiline value
                  afterSection : false    // Did we just open a section
                };
              }
          
            };
          });
          
          CodeMirror.defineMIME("text/x-properties", "properties");
          CodeMirror.defineMIME("text/x-ini", "properties");
          
          });
          
      • puppet
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Puppet mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="puppet.js"></script>
          <style>
                .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}
                .cm-s-default span.cm-arrow { color: red; }
              </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Puppet</a>
            </ul>
          </div>
          
          <article>
          <h2>Puppet mode</h2>
          <form><textarea id="code" name="code">
          # == Class: automysqlbackup
          #
          # Puppet module to install AutoMySQLBackup for periodic MySQL backups.
          #
          # class { 'automysqlbackup':
          #   backup_dir => '/mnt/backups',
          # }
          #
          
          class automysqlbackup (
            $bin_dir = $automysqlbackup::params::bin_dir,
            $etc_dir = $automysqlbackup::params::etc_dir,
            $backup_dir = $automysqlbackup::params::backup_dir,
            $install_multicore = undef,
            $config = {},
            $config_defaults = {},
          ) inherits automysqlbackup::params {
          
          # Ensure valid paths are assigned
            validate_absolute_path($bin_dir)
            validate_absolute_path($etc_dir)
            validate_absolute_path($backup_dir)
          
          # Create a subdirectory in /etc for config files
            file { $etc_dir:
              ensure => directory,
              owner => 'root',
              group => 'root',
              mode => '0750',
            }
          
          # Create an example backup file, useful for reference
            file { "${etc_dir}/automysqlbackup.conf.example":
              ensure => file,
              owner => 'root',
              group => 'root',
              mode => '0660',
              source => 'puppet:///modules/automysqlbackup/automysqlbackup.conf',
            }
          
          # Add files from the developer
            file { "${etc_dir}/AMB_README":
              ensure => file,
              source => 'puppet:///modules/automysqlbackup/AMB_README',
            }
            file { "${etc_dir}/AMB_LICENSE":
              ensure => file,
              source => 'puppet:///modules/automysqlbackup/AMB_LICENSE',
            }
          
          # Install the actual binary file
            file { "${bin_dir}/automysqlbackup":
              ensure => file,
              owner => 'root',
              group => 'root',
              mode => '0755',
              source => 'puppet:///modules/automysqlbackup/automysqlbackup',
            }
          
          # Create the base backup directory
            file { $backup_dir:
              ensure => directory,
              owner => 'root',
              group => 'root',
              mode => '0755',
            }
          
          # If you'd like to keep your config in hiera and pass it to this class
            if !empty($config) {
              create_resources('automysqlbackup::backup', $config, $config_defaults)
            }
          
          # If using RedHat family, must have the RPMforge repo's enabled
            if $install_multicore {
              package { ['pigz', 'pbzip2']: ensure => installed }
            }
          
          }
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  mode: "text/x-puppet",
                  matchBrackets: true,
                  indentUnit: 4
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-puppet</code>.</p>
          
            </article>
          
        • puppet.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("puppet", function () {
            // Stores the words from the define method
            var words = {};
            // Taken, mostly, from the Puppet official variable standards regex
            var variable_regex = /({)?([a-z][a-z0-9_]*)?((::[a-z][a-z0-9_]*)*::)?[a-zA-Z0-9_]+(})?/;
          
            // Takes a string of words separated by spaces and adds them as
            // keys with the value of the first argument 'style'
            function define(style, string) {
              var split = string.split(' ');
              for (var i = 0; i < split.length; i++) {
                words[split[i]] = style;
              }
            }
          
            // Takes commonly known puppet types/words and classifies them to a style
            define('keyword', 'class define site node include import inherits');
            define('keyword', 'case if else in and elsif default or');
            define('atom', 'false true running present absent file directory undef');
            define('builtin', 'action augeas burst chain computer cron destination dport exec ' +
              'file filebucket group host icmp iniface interface jump k5login limit log_level ' +
              'log_prefix macauthorization mailalias maillist mcx mount nagios_command ' +
              'nagios_contact nagios_contactgroup nagios_host nagios_hostdependency ' +
              'nagios_hostescalation nagios_hostextinfo nagios_hostgroup nagios_service ' +
              'nagios_servicedependency nagios_serviceescalation nagios_serviceextinfo ' +
              'nagios_servicegroup nagios_timeperiod name notify outiface package proto reject ' +
              'resources router schedule scheduled_task selboolean selmodule service source ' +
              'sport ssh_authorized_key sshkey stage state table tidy todest toports tosource ' +
              'user vlan yumrepo zfs zone zpool');
          
            // After finding a start of a string ('|") this function attempts to find the end;
            // If a variable is encountered along the way, we display it differently when it
            // is encapsulated in a double-quoted string.
            function tokenString(stream, state) {
              var current, prev, found_var = false;
              while (!stream.eol() && (current = stream.next()) != state.pending) {
                if (current === '$' && prev != '\\' && state.pending == '"') {
                  found_var = true;
                  break;
                }
                prev = current;
              }
              if (found_var) {
                stream.backUp(1);
              }
              if (current == state.pending) {
                state.continueString = false;
              } else {
                state.continueString = true;
              }
              return "string";
            }
          
            // Main function
            function tokenize(stream, state) {
              // Matches one whole word
              var word = stream.match(/[\w]+/, false);
              // Matches attributes (i.e. ensure => present ; 'ensure' would be matched)
              var attribute = stream.match(/(\s+)?\w+\s+=>.*/, false);
              // Matches non-builtin resource declarations
              // (i.e. "apache::vhost {" or "mycustomclasss {" would be matched)
              var resource = stream.match(/(\s+)?[\w:_]+(\s+)?{/, false);
              // Matches virtual and exported resources (i.e. @@user { ; and the like)
              var special_resource = stream.match(/(\s+)?[@]{1,2}[\w:_]+(\s+)?{/, false);
          
              // Finally advance the stream
              var ch = stream.next();
          
              // Have we found a variable?
              if (ch === '$') {
                if (stream.match(variable_regex)) {
                  // If so, and its in a string, assign it a different color
                  return state.continueString ? 'variable-2' : 'variable';
                }
                // Otherwise return an invalid variable
                return "error";
              }
              // Should we still be looking for the end of a string?
              if (state.continueString) {
                // If so, go through the loop again
                stream.backUp(1);
                return tokenString(stream, state);
              }
              // Are we in a definition (class, node, define)?
              if (state.inDefinition) {
                // If so, return def (i.e. for 'class myclass {' ; 'myclass' would be matched)
                if (stream.match(/(\s+)?[\w:_]+(\s+)?/)) {
                  return 'def';
                }
                // Match the rest it the next time around
                stream.match(/\s+{/);
                state.inDefinition = false;
              }
              // Are we in an 'include' statement?
              if (state.inInclude) {
                // Match and return the included class
                stream.match(/(\s+)?\S+(\s+)?/);
                state.inInclude = false;
                return 'def';
              }
              // Do we just have a function on our hands?
              // In 'ensure_resource("myclass")', 'ensure_resource' is matched
              if (stream.match(/(\s+)?\w+\(/)) {
                stream.backUp(1);
                return 'def';
              }
              // Have we matched the prior attribute regex?
              if (attribute) {
                stream.match(/(\s+)?\w+/);
                return 'tag';
              }
              // Do we have Puppet specific words?
              if (word && words.hasOwnProperty(word)) {
                // Negates the initial next()
                stream.backUp(1);
                // Acutally move the stream
                stream.match(/[\w]+/);
                // We want to process these words differently
                // do to the importance they have in Puppet
                if (stream.match(/\s+\S+\s+{/, false)) {
                  state.inDefinition = true;
                }
                if (word == 'include') {
                  state.inInclude = true;
                }
                // Returns their value as state in the prior define methods
                return words[word];
              }
              // Is there a match on a reference?
              if (/(^|\s+)[A-Z][\w:_]+/.test(word)) {
                // Negate the next()
                stream.backUp(1);
                // Match the full reference
                stream.match(/(^|\s+)[A-Z][\w:_]+/);
                return 'def';
              }
              // Have we matched the prior resource regex?
              if (resource) {
                stream.match(/(\s+)?[\w:_]+/);
                return 'def';
              }
              // Have we matched the prior special_resource regex?
              if (special_resource) {
                stream.match(/(\s+)?[@]{1,2}/);
                return 'special';
              }
              // Match all the comments. All of them.
              if (ch == "#") {
                stream.skipToEnd();
                return "comment";
              }
              // Have we found a string?
              if (ch == "'" || ch == '"') {
                // Store the type (single or double)
                state.pending = ch;
                // Perform the looping function to find the end
                return tokenString(stream, state);
              }
              // Match all the brackets
              if (ch == '{' || ch == '}') {
                return 'bracket';
              }
              // Match characters that we are going to assume
              // are trying to be regex
              if (ch == '/') {
                stream.match(/.*?\//);
                return 'variable-3';
              }
              // Match all the numbers
              if (ch.match(/[0-9]/)) {
                stream.eatWhile(/[0-9]+/);
                return 'number';
              }
              // Match the '=' and '=>' operators
              if (ch == '=') {
                if (stream.peek() == '>') {
                    stream.next();
                }
                return "operator";
              }
              // Keep advancing through all the rest
              stream.eatWhile(/[\w-]/);
              // Return a blank line for everything else
              return null;
            }
            // Start it all
            return {
              startState: function () {
                var state = {};
                state.inDefinition = false;
                state.inInclude = false;
                state.continueString = false;
                state.pending = false;
                return state;
              },
              token: function (stream, state) {
                // Strip the spaces, but regex will account for them eitherway
                if (stream.eatSpace()) return null;
                // Go through the main process
                return tokenize(stream, state);
              }
            };
          });
          
          CodeMirror.defineMIME("text/x-puppet", "puppet");
          
          });
          
      • python
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Python mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="python.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Python</a>
            </ul>
          </div>
          
          <article>
          <h2>Python mode</h2>
          
              <div><textarea id="code" name="code">
          # Literals
          1234
          0.0e101
          .123
          0b01010011100
          0o01234567
          0x0987654321abcdef
          7
          2147483647
          3L
          79228162514264337593543950336L
          0x100000000L
          79228162514264337593543950336
          0xdeadbeef
          3.14j
          10.j
          10j
          .001j
          1e100j
          3.14e-10j
          
          
          # String Literals
          'For\''
          "God\""
          """so loved
          the world"""
          '''that he gave
          his only begotten\' '''
          'that whosoever believeth \
          in him'
          ''
          
          # Identifiers
          __a__
          a.b
          a.b.c
          
          #Unicode identifiers on Python3
          # a = x\ddot
          a⃗ = ẍ
          # a = v\dot
          a⃗ = v̇
          
          #F\vec = m \cdot a\vec
          F⃗ = m•a⃗ 
          
          # Operators
          + - * / % & | ^ ~ < >
          == != <= >= <> << >> // **
          and or not in is
          
          #infix matrix multiplication operator (PEP 465)
          A @ B
          
          # Delimiters
          () [] {} , : ` = ; @ .  # Note that @ and . require the proper context on Python 2.
          += -= *= /= %= &= |= ^=
          //= >>= <<= **=
          
          # Keywords
          as assert break class continue def del elif else except
          finally for from global if import lambda pass raise
          return try while with yield
          
          # Python 2 Keywords (otherwise Identifiers)
          exec print
          
          # Python 3 Keywords (otherwise Identifiers)
          nonlocal
          
          # Types
          bool classmethod complex dict enumerate float frozenset int list object
          property reversed set slice staticmethod str super tuple type
          
          # Python 2 Types (otherwise Identifiers)
          basestring buffer file long unicode xrange
          
          # Python 3 Types (otherwise Identifiers)
          bytearray bytes filter map memoryview open range zip
          
          # Some Example code
          import os
          from package import ParentClass
          
          @nonsenseDecorator
          def doesNothing():
              pass
          
          class ExampleClass(ParentClass):
              @staticmethod
              def example(inputStr):
                  a = list(inputStr)
                  a.reverse()
                  return ''.join(a)
          
              def __init__(self, mixin = 'Hello'):
                  self.mixin = mixin
          
          </textarea></div>
          
          
          <h2>Cython mode</h2>
          
          <div><textarea id="code-cython" name="code-cython">
          
          import numpy as np
          cimport cython
          from libc.math cimport sqrt
          
          @cython.boundscheck(False)
          @cython.wraparound(False)
          def pairwise_cython(double[:, ::1] X):
              cdef int M = X.shape[0]
              cdef int N = X.shape[1]
              cdef double tmp, d
              cdef double[:, ::1] D = np.empty((M, M), dtype=np.float64)
              for i in range(M):
                  for j in range(M):
                      d = 0.0
                      for k in range(N):
                          tmp = X[i, k] - X[j, k]
                          d += tmp * tmp
                      D[i, j] = sqrt(d)
              return np.asarray(D)
          
          </textarea></div>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  mode: {name: "python",
                         version: 3,
                         singleLineStringErrors: false},
                  lineNumbers: true,
                  indentUnit: 4,
                  matchBrackets: true
              });
          
              CodeMirror.fromTextArea(document.getElementById("code-cython"), {
                  mode: {name: "text/x-cython",
                         version: 2,
                         singleLineStringErrors: false},
                  lineNumbers: true,
                  indentUnit: 4,
                  matchBrackets: true
                });
              </script>
              <h2>Configuration Options for Python mode:</h2>
              <ul>
                <li>version - 2/3 - The version of Python to recognize.  Default is 2.</li>
                <li>singleLineStringErrors - true/false - If you have a single-line string that is not terminated at the end of the line, this will show subsequent lines as errors if true, otherwise it will consider the newline as the end of the string. Default is false.</li>
                <li>hangingIndent - int - If you want to write long arguments to a function starting on a new line, how much that line should be indented. Defaults to one normal indentation unit.</li>
              </ul>
              <h2>Advanced Configuration Options:</h2>
              <p>Usefull for superset of python syntax like Enthought enaml, IPython magics and  questionmark help</p>
              <ul>
                <li>singleOperators - RegEx - Regular Expression for single operator matching,  default : <pre>^[\\+\\-\\*/%&amp;|\\^~&lt;&gt;!]</pre> including <pre>@</pre> on Python 3</li>
                <li>singleDelimiters - RegEx - Regular Expression for single delimiter matching, default :  <pre>^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]</pre></li>
                <li>doubleOperators - RegEx - Regular Expression for double operators matching, default : <pre>^((==)|(!=)|(&lt;=)|(&gt;=)|(&lt;&gt;)|(&lt;&lt;)|(&gt;&gt;)|(//)|(\\*\\*))</pre></li>
                <li>doubleDelimiters - RegEx - Regular Expressoin for double delimiters matching, default : <pre>^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&amp;=)|(\\|=)|(\\^=))</pre></li>
                <li>tripleDelimiters - RegEx - Regular Expression for triple delimiters matching, default : <pre>^((//=)|(&gt;&gt;=)|(&lt;&lt;=)|(\\*\\*=))</pre></li>
                <li>identifiers - RegEx - Regular Expression for identifier, default : <pre>^[_A-Za-z][_A-Za-z0-9]*</pre> on Python 2 and <pre>^[_A-Za-z\u00A1-\uFFFF][_A-Za-z0-9\u00A1-\uFFFF]*</pre> on Python 3.</li>
                <li>extra_keywords - list of string - List of extra words ton consider as keywords</li>
                <li>extra_builtins - list of string - List of extra words ton consider as builtins</li>
              </ul>
          
          
              <p><strong>MIME types defined:</strong> <code>text/x-python</code> and <code>text/x-cython</code>.</p>
            </article>
          
        • python.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            function wordRegexp(words) {
              return new RegExp("^((" + words.join(")|(") + "))\\b");
            }
          
            var wordOperators = wordRegexp(["and", "or", "not", "is"]);
            var commonKeywords = ["as", "assert", "break", "class", "continue",
                                  "def", "del", "elif", "else", "except", "finally",
                                  "for", "from", "global", "if", "import",
                                  "lambda", "pass", "raise", "return",
                                  "try", "while", "with", "yield", "in"];
            var commonBuiltins = ["abs", "all", "any", "bin", "bool", "bytearray", "callable", "chr",
                                  "classmethod", "compile", "complex", "delattr", "dict", "dir", "divmod",
                                  "enumerate", "eval", "filter", "float", "format", "frozenset",
                                  "getattr", "globals", "hasattr", "hash", "help", "hex", "id",
                                  "input", "int", "isinstance", "issubclass", "iter", "len",
                                  "list", "locals", "map", "max", "memoryview", "min", "next",
                                  "object", "oct", "open", "ord", "pow", "property", "range",
                                  "repr", "reversed", "round", "set", "setattr", "slice",
                                  "sorted", "staticmethod", "str", "sum", "super", "tuple",
                                  "type", "vars", "zip", "__import__", "NotImplemented",
                                  "Ellipsis", "__debug__"];
            var py2 = {builtins: ["apply", "basestring", "buffer", "cmp", "coerce", "execfile",
                                  "file", "intern", "long", "raw_input", "reduce", "reload",
                                  "unichr", "unicode", "xrange", "False", "True", "None"],
                       keywords: ["exec", "print"]};
            var py3 = {builtins: ["ascii", "bytes", "exec", "print"],
                       keywords: ["nonlocal", "False", "True", "None", "async", "await"]};
          
            CodeMirror.registerHelper("hintWords", "python", commonKeywords.concat(commonBuiltins));
          
            function top(state) {
              return state.scopes[state.scopes.length - 1];
            }
          
            CodeMirror.defineMode("python", function(conf, parserConf) {
              var ERRORCLASS = "error";
          
              var singleDelimiters = parserConf.singleDelimiters || new RegExp("^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]");
              var doubleOperators = parserConf.doubleOperators || new RegExp("^((==)|(!=)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))");
              var doubleDelimiters = parserConf.doubleDelimiters || new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))");
              var tripleDelimiters = parserConf.tripleDelimiters || new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))");
          
              if (parserConf.version && parseInt(parserConf.version, 10) == 3){
                  // since http://legacy.python.org/dev/peps/pep-0465/ @ is also an operator
                  var singleOperators = parserConf.singleOperators || new RegExp("^[\\+\\-\\*/%&|\\^~<>!@]");
                  var identifiers = parserConf.identifiers|| new RegExp("^[_A-Za-z\u00A1-\uFFFF][_A-Za-z0-9\u00A1-\uFFFF]*");
              } else {
                  var singleOperators = parserConf.singleOperators || new RegExp("^[\\+\\-\\*/%&|\\^~<>!]");
                  var identifiers = parserConf.identifiers|| new RegExp("^[_A-Za-z][_A-Za-z0-9]*");
              }
          
              var hangingIndent = parserConf.hangingIndent || conf.indentUnit;
          
              var myKeywords = commonKeywords, myBuiltins = commonBuiltins;
              if(parserConf.extra_keywords != undefined){
                myKeywords = myKeywords.concat(parserConf.extra_keywords);
              }
              if(parserConf.extra_builtins != undefined){
                myBuiltins = myBuiltins.concat(parserConf.extra_builtins);
              }
              if (parserConf.version && parseInt(parserConf.version, 10) == 3) {
                myKeywords = myKeywords.concat(py3.keywords);
                myBuiltins = myBuiltins.concat(py3.builtins);
                var stringPrefixes = new RegExp("^(([rb]|(br))?('{3}|\"{3}|['\"]))", "i");
              } else {
                myKeywords = myKeywords.concat(py2.keywords);
                myBuiltins = myBuiltins.concat(py2.builtins);
                var stringPrefixes = new RegExp("^(([rub]|(ur)|(br))?('{3}|\"{3}|['\"]))", "i");
              }
              var keywords = wordRegexp(myKeywords);
              var builtins = wordRegexp(myBuiltins);
          
              // tokenizers
              function tokenBase(stream, state) {
                // Handle scope changes
                if (stream.sol() && top(state).type == "py") {
                  var scopeOffset = top(state).offset;
                  if (stream.eatSpace()) {
                    var lineOffset = stream.indentation();
                    if (lineOffset > scopeOffset)
                      pushScope(stream, state, "py");
                    else if (lineOffset < scopeOffset && dedent(stream, state))
                      state.errorToken = true;
                    return null;
                  } else {
                    var style = tokenBaseInner(stream, state);
                    if (scopeOffset > 0 && dedent(stream, state))
                      style += " " + ERRORCLASS;
                    return style;
                  }
                }
                return tokenBaseInner(stream, state);
              }
          
              function tokenBaseInner(stream, state) {
                if (stream.eatSpace()) return null;
          
                var ch = stream.peek();
          
                // Handle Comments
                if (ch == "#") {
                  stream.skipToEnd();
                  return "comment";
                }
          
                // Handle Number Literals
                if (stream.match(/^[0-9\.]/, false)) {
                  var floatLiteral = false;
                  // Floats
                  if (stream.match(/^\d*\.\d+(e[\+\-]?\d+)?/i)) { floatLiteral = true; }
                  if (stream.match(/^\d+\.\d*/)) { floatLiteral = true; }
                  if (stream.match(/^\.\d+/)) { floatLiteral = true; }
                  if (floatLiteral) {
                    // Float literals may be "imaginary"
                    stream.eat(/J/i);
                    return "number";
                  }
                  // Integers
                  var intLiteral = false;
                  // Hex
                  if (stream.match(/^0x[0-9a-f]+/i)) intLiteral = true;
                  // Binary
                  if (stream.match(/^0b[01]+/i)) intLiteral = true;
                  // Octal
                  if (stream.match(/^0o[0-7]+/i)) intLiteral = true;
                  // Decimal
                  if (stream.match(/^[1-9]\d*(e[\+\-]?\d+)?/)) {
                    // Decimal literals may be "imaginary"
                    stream.eat(/J/i);
                    // TODO - Can you have imaginary longs?
                    intLiteral = true;
                  }
                  // Zero by itself with no other piece of number.
                  if (stream.match(/^0(?![\dx])/i)) intLiteral = true;
                  if (intLiteral) {
                    // Integer literals may be "long"
                    stream.eat(/L/i);
                    return "number";
                  }
                }
          
                // Handle Strings
                if (stream.match(stringPrefixes)) {
                  state.tokenize = tokenStringFactory(stream.current());
                  return state.tokenize(stream, state);
                }
          
                // Handle operators and Delimiters
                if (stream.match(tripleDelimiters) || stream.match(doubleDelimiters))
                  return null;
          
                if (stream.match(doubleOperators) || stream.match(singleOperators))
                  return "operator";
          
                if (stream.match(singleDelimiters))
                  return null;
          
                if (stream.match(keywords) || stream.match(wordOperators))
                  return "keyword";
          
                if (stream.match(builtins))
                  return "builtin";
          
                if (stream.match(/^(self|cls)\b/))
                  return "variable-2";
          
                if (stream.match(identifiers)) {
                  if (state.lastToken == "def" || state.lastToken == "class")
                    return "def";
                  return "variable";
                }
          
                // Handle non-detected items
                stream.next();
                return ERRORCLASS;
              }
          
              function tokenStringFactory(delimiter) {
                while ("rub".indexOf(delimiter.charAt(0).toLowerCase()) >= 0)
                  delimiter = delimiter.substr(1);
          
                var singleline = delimiter.length == 1;
                var OUTCLASS = "string";
          
                function tokenString(stream, state) {
                  while (!stream.eol()) {
                    stream.eatWhile(/[^'"\\]/);
                    if (stream.eat("\\")) {
                      stream.next();
                      if (singleline && stream.eol())
                        return OUTCLASS;
                    } else if (stream.match(delimiter)) {
                      state.tokenize = tokenBase;
                      return OUTCLASS;
                    } else {
                      stream.eat(/['"]/);
                    }
                  }
                  if (singleline) {
                    if (parserConf.singleLineStringErrors)
                      return ERRORCLASS;
                    else
                      state.tokenize = tokenBase;
                  }
                  return OUTCLASS;
                }
                tokenString.isString = true;
                return tokenString;
              }
          
              function pushScope(stream, state, type) {
                var offset = 0, align = null;
                if (type == "py") {
                  while (top(state).type != "py")
                    state.scopes.pop();
                }
                offset = top(state).offset + (type == "py" ? conf.indentUnit : hangingIndent);
                if (type != "py" && !stream.match(/^(\s|#.*)*$/, false))
                  align = stream.column() + 1;
                state.scopes.push({offset: offset, type: type, align: align});
              }
          
              function dedent(stream, state) {
                var indented = stream.indentation();
                while (top(state).offset > indented) {
                  if (top(state).type != "py") return true;
                  state.scopes.pop();
                }
                return top(state).offset != indented;
              }
          
              function tokenLexer(stream, state) {
                var style = state.tokenize(stream, state);
                var current = stream.current();
          
                // Handle '.' connected identifiers
                if (current == ".") {
                  style = stream.match(identifiers, false) ? null : ERRORCLASS;
                  if (style == null && state.lastStyle == "meta") {
                    // Apply 'meta' style to '.' connected identifiers when
                    // appropriate.
                    style = "meta";
                  }
                  return style;
                }
          
                // Handle decorators
                if (current == "@"){
                  if(parserConf.version && parseInt(parserConf.version, 10) == 3){
                      return stream.match(identifiers, false) ? "meta" : "operator";
                  } else {
                      return stream.match(identifiers, false) ? "meta" : ERRORCLASS;
                  }
                }
          
                if ((style == "variable" || style == "builtin")
                    && state.lastStyle == "meta")
                  style = "meta";
          
                // Handle scope changes.
                if (current == "pass" || current == "return")
                  state.dedent += 1;
          
                if (current == "lambda") state.lambda = true;
                if (current == ":" && !state.lambda && top(state).type == "py")
                  pushScope(stream, state, "py");
          
                var delimiter_index = current.length == 1 ? "[({".indexOf(current) : -1;
                if (delimiter_index != -1)
                  pushScope(stream, state, "])}".slice(delimiter_index, delimiter_index+1));
          
                delimiter_index = "])}".indexOf(current);
                if (delimiter_index != -1) {
                  if (top(state).type == current) state.scopes.pop();
                  else return ERRORCLASS;
                }
                if (state.dedent > 0 && stream.eol() && top(state).type == "py") {
                  if (state.scopes.length > 1) state.scopes.pop();
                  state.dedent -= 1;
                }
          
                return style;
              }
          
              var external = {
                startState: function(basecolumn) {
                  return {
                    tokenize: tokenBase,
                    scopes: [{offset: basecolumn || 0, type: "py", align: null}],
                    lastStyle: null,
                    lastToken: null,
                    lambda: false,
                    dedent: 0
                  };
                },
          
                token: function(stream, state) {
                  var addErr = state.errorToken;
                  if (addErr) state.errorToken = false;
                  var style = tokenLexer(stream, state);
          
                  state.lastStyle = style;
          
                  var current = stream.current();
                  if (current && style)
                    state.lastToken = current;
          
                  if (stream.eol() && state.lambda)
                    state.lambda = false;
                  return addErr ? style + " " + ERRORCLASS : style;
                },
          
                indent: function(state, textAfter) {
                  if (state.tokenize != tokenBase)
                    return state.tokenize.isString ? CodeMirror.Pass : 0;
          
                  var scope = top(state);
                  var closing = textAfter && textAfter.charAt(0) == scope.type;
                  if (scope.align != null)
                    return scope.align - (closing ? 1 : 0);
                  else if (closing && state.scopes.length > 1)
                    return state.scopes[state.scopes.length - 2].offset;
                  else
                    return scope.offset;
                },
          
                closeBrackets: {triples: "'\""},
                lineComment: "#",
                fold: "indent"
              };
              return external;
            });
          
            CodeMirror.defineMIME("text/x-python", "python");
          
            var words = function(str) { return str.split(" "); };
          
            CodeMirror.defineMIME("text/x-cython", {
              name: "python",
              extra_keywords: words("by cdef cimport cpdef ctypedef enum except"+
                                    "extern gil include nogil property public"+
                                    "readonly struct union DEF IF ELIF ELSE")
            });
          
          });
          
      • q
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Q mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="q.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Q</a>
            </ul>
          </div>
          
          <article>
          <h2>Q mode</h2>
          
          
          <div><textarea id="code" name="code">
          / utilities to quickly load a csv file - for more exhaustive analysis of the csv contents see csvguess.q
          / 2009.09.20 - updated to match latest csvguess.q 
          
          / .csv.colhdrs[file] - return a list of colhdrs from file
          / info:.csv.info[file] - return a table of information about the file
          / columns are: 
          /	c - column name; ci - column index; t - load type; mw - max width; 
          /	dchar - distinct characters in values; rule - rule that caught the type
          /	maybe - needs checking, _could_ be say a date, but perhaps just a float?
          / .csv.info0[file;onlycols] - like .csv.info except that it only analyses <onlycols>
          / example:
          /	info:.csv.info0[file;(.csv.colhdrs file)like"*price"]
          /	info:.csv.infolike[file;"*price"]
          /	show delete from info where t=" "
          / .csv.data[file;info] - use the info from .csv.info to read the data
          / .csv.data10[file;info] - like .csv.data but only returns the first 10 rows
          / bulkload[file;info] - bulk loads file into table DATA (which must be already defined :: DATA:() )
          / .csv.read[file]/read10[file] - for when you don't care about checking/tweaking the <info> before reading 
          
          \d .csv
          DELIM:","
          ZAPHDRS:0b / lowercase and remove _ from colhdrs (junk characters are always removed)
          WIDTHHDR:25000 / number of characters read to get the header
          READLINES:222 / number of lines read and used to guess the types
          SYMMAXWIDTH:11 / character columns narrower than this are stored as symbols
          SYMMAXGR:10 / max symbol granularity% before we give up and keep as a * string
          FORCECHARWIDTH:30 / every field (of any type) with values this wide or more is forced to character "*"
          DISCARDEMPTY:0b / completely ignore empty columns if true else set them to "C"
          CHUNKSIZE:50000000 / used in fs2 (modified .Q.fs)
          
          k)nameltrim:{$[~@x;.z.s'x;~(*x)in aA:.Q.a,.Q.A;(+/&\~x in aA)_x;x]}
          k)fs2:{[f;s]((-7!s)>){[f;s;x]i:1+last@&0xa=r:1:(s;x;CHUNKSIZE);f@`\:i#r;x+i}[f;s]/0j}
          cleanhdrs:{{$[ZAPHDRS;lower x except"_";x]}x where x in DELIM,.Q.an}
          cancast:{nw:x$"";if[not x in"BXCS";nw:(min 0#;max 0#;::)@\:nw];$[not any nw in x$(11&count y)#y;$[11<count y;not any nw in x$y;1b];0b]}
          
          read:{[file]data[file;info[file]]}  
          read10:{[file]data10[file;info[file]]}  
          
          colhdrs:{[file]
          	`$nameltrim DELIM vs cleanhdrs first read0(file;0;1+first where 0xa=read1(file;0;WIDTHHDR))}
          data:{[file;info]
          	(exec c from info where not t=" ")xcol(exec t from info;enlist DELIM)0:file}
          data10:{[file;info]
          	data[;info](file;0;1+last 11#where 0xa=read1(file;0;15*WIDTHHDR))}
          info0:{[file;onlycols]
          	colhdrs:`$nameltrim DELIM vs cleanhdrs first head:read0(file;0;1+last where 0xa=read1(file;0;WIDTHHDR));
          	loadfmts:(count colhdrs)#"S";if[count onlycols;loadfmts[where not colhdrs in onlycols]:"C"];
          	breaks:where 0xa=read1(file;0;floor(10+READLINES)*WIDTHHDR%count head);
          	nas:count as:colhdrs xcol(loadfmts;enlist DELIM)0:(file;0;1+last((1+READLINES)&count breaks)#breaks);
          	info:([]c:key flip as;v:value flip as);as:();
          	reserved:key`.q;reserved,:.Q.res;reserved,:`i;
          	info:update res:c in reserved from info;
          	info:update ci:i,t:"?",ipa:0b,mdot:0,mw:0,rule:0,gr:0,ndv:0,maybe:0b,empty:0b,j10:0b,j12:0b from info;
          	info:update ci:`s#ci from info;
          	if[count onlycols;info:update t:" ",rule:10 from info where not c in onlycols];
          	info:update sdv:{string(distinct x)except`}peach v from info; 
          	info:update ndv:count each sdv from info;
          	info:update gr:floor 0.5+100*ndv%nas,mw:{max count each x}peach sdv from info where 0<ndv;
          	info:update t:"*",rule:20 from info where mw>.csv.FORCECHARWIDTH; / long values
          	info:update t:"C "[.csv.DISCARDEMPTY],rule:30,empty:1b from info where t="?",mw=0; / empty columns
          	info:update dchar:{asc distinct raze x}peach sdv from info where t="?";
          	info:update mdot:{max sum each"."=x}peach sdv from info where t="?",{"."in x}each dchar;
          	info:update t:"n",rule:40 from info where t="?",{any x in"0123456789"}each dchar; / vaguely numeric..
          	info:update t:"I",rule:50,ipa:1b from info where t="n",mw within 7 15,mdot=3,{all x in".0123456789"}each dchar,.csv.cancast["I"]peach sdv; / ip-address
          	info:update t:"J",rule:60 from info where t="n",mdot=0,{all x in"+-0123456789"}each dchar,.csv.cancast["J"]peach sdv;
          	info:update t:"I",rule:70 from info where t="J",mw<12,.csv.cancast["I"]peach sdv;
          	info:update t:"H",rule:80 from info where t="I",mw<7,.csv.cancast["H"]peach sdv;
          	info:update t:"F",rule:90 from info where t="n",mdot<2,mw>1,.csv.cancast["F"]peach sdv;
          	info:update t:"E",rule:100,maybe:1b from info where t="F",mw<9;
          	info:update t:"M",rule:110,maybe:1b from info where t in"nIHEF",mdot<2,mw within 4 7,.csv.cancast["M"]peach sdv; 
          	info:update t:"D",rule:120,maybe:1b from info where t in"nI",mdot in 0 2,mw within 6 11,.csv.cancast["D"]peach sdv; 
          	info:update t:"V",rule:130,maybe:1b from info where t="I",mw in 5 6,7<count each dchar,{all x like"*[0-9][0-5][0-9][0-5][0-9]"}peach sdv,.csv.cancast["V"]peach sdv; / 235959 12345        
          	info:update t:"U",rule:140,maybe:1b from info where t="H",mw in 3 4,7<count each dchar,{all x like"*[0-9][0-5][0-9]"}peach sdv,.csv.cancast["U"]peach sdv; /2359
          	info:update t:"U",rule:150,maybe:0b from info where t="n",mw in 4 5,mdot=0,{all x like"*[0-9]:[0-5][0-9]"}peach sdv,.csv.cancast["U"]peach sdv;
          	info:update t:"T",rule:160,maybe:0b from info where t="n",mw within 7 12,mdot<2,{all x like"*[0-9]:[0-5][0-9]:[0-5][0-9]*"}peach sdv,.csv.cancast["T"]peach sdv;
          	info:update t:"V",rule:170,maybe:0b from info where t="T",mw in 7 8,mdot=0,.csv.cancast["V"]peach sdv;
          	info:update t:"T",rule:180,maybe:1b from info where t in"EF",mw within 7 10,mdot=1,{all x like"*[0-9][0-5][0-9][0-5][0-9].*"}peach sdv,.csv.cancast["T"]peach sdv;
          	info:update t:"Z",rule:190,maybe:0b from info where t="n",mw within 11 24,mdot<4,.csv.cancast["Z"]peach sdv;
          	info:update t:"P",rule:200,maybe:1b from info where t="n",mw within 12 29,mdot<4,{all x like"[12]*"}peach sdv,.csv.cancast["P"]peach sdv;
          	info:update t:"N",rule:210,maybe:1b from info where t="n",mw within 3 28,mdot=1,.csv.cancast["N"]peach sdv;
          	info:update t:"?",rule:220,maybe:0b from info where t="n"; / reset remaining maybe numeric
          	info:update t:"C",rule:230,maybe:0b from info where t="?",mw=1; / char
          	info:update t:"B",rule:240,maybe:0b from info where t in"HC",mw=1,mdot=0,{$[all x in"01tTfFyYnN";(any"0fFnN"in x)and any"1tTyY"in x;0b]}each dchar; / boolean
          	info:update t:"B",rule:250,maybe:1b from info where t in"HC",mw=1,mdot=0,{all x in"01tTfFyYnN"}each dchar; / boolean
          	info:update t:"X",rule:260,maybe:0b from info where t="?",mw=2,{$[all x in"0123456789abcdefABCDEF";(any .Q.n in x)and any"abcdefABCDEF"in x;0b]}each dchar; /hex
          	info:update t:"S",rule:270,maybe:1b from info where t="?",mw<.csv.SYMMAXWIDTH,mw>1,gr<.csv.SYMMAXGR; / symbols (max width permitting)
          	info:update t:"*",rule:280,maybe:0b from info where t="?"; / the rest as strings
          	/ flag those S/* columns which could be encoded to integers (.Q.j10/x10/j12/x12) to avoid symbols
          	info:update j12:1b from info where t in"S*",mw<13,{all x in .Q.nA}each dchar;
          	info:update j10:1b from info where t in"S*",mw<11,{all x in .Q.b6}each dchar; 
          	select c,ci,t,maybe,empty,res,j10,j12,ipa,mw,mdot,rule,gr,ndv,dchar from info}
          info:info0[;()] / by default don't restrict columns
          infolike:{[file;pattern] info0[file;{x where x like y}[lower colhdrs[file];pattern]]} / .csv.infolike[file;"*time"]
          
          \d .
          / DATA:()
          bulkload:{[file;info]
          	if[not`DATA in system"v";'`DATA.not.defined];
          	if[count DATA;'`DATA.not.empty];
          	loadhdrs:exec c from info where not t=" ";loadfmts:exec t from info;
          	.csv.fs2[{[file;loadhdrs;loadfmts] `DATA insert $[count DATA;flip loadhdrs!(loadfmts;.csv.DELIM)0:file;loadhdrs xcol(loadfmts;enlist .csv.DELIM)0:file]}[file;loadhdrs;loadfmts]];
          	count DATA}
          @[.:;"\\l csvutil.custom.q";::]; / save your custom settings in csvutil.custom.q to override those set at the beginning of the file 
          </textarea></div>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  matchBrackets: true
                });
              </script>
          
              <p><strong>MIME type defined:</strong> <code>text/x-q</code>.</p>
            </article>
          
        • q.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("q",function(config){
            var indentUnit=config.indentUnit,
                curPunc,
                keywords=buildRE(["abs","acos","aj","aj0","all","and","any","asc","asin","asof","atan","attr","avg","avgs","bin","by","ceiling","cols","cor","cos","count","cov","cross","csv","cut","delete","deltas","desc","dev","differ","distinct","div","do","each","ej","enlist","eval","except","exec","exit","exp","fby","fills","first","fkeys","flip","floor","from","get","getenv","group","gtime","hclose","hcount","hdel","hopen","hsym","iasc","idesc","if","ij","in","insert","inter","inv","key","keys","last","like","list","lj","load","log","lower","lsq","ltime","ltrim","mavg","max","maxs","mcount","md5","mdev","med","meta","min","mins","mmax","mmin","mmu","mod","msum","neg","next","not","null","or","over","parse","peach","pj","plist","prd","prds","prev","prior","rand","rank","ratios","raze","read0","read1","reciprocal","reverse","rload","rotate","rsave","rtrim","save","scan","select","set","setenv","show","signum","sin","sqrt","ss","ssr","string","sublist","sum","sums","sv","system","tables","tan","til","trim","txf","type","uj","ungroup","union","update","upper","upsert","value","var","view","views","vs","wavg","where","where","while","within","wj","wj1","wsum","xasc","xbar","xcol","xcols","xdesc","xexp","xgroup","xkey","xlog","xprev","xrank"]),
                E=/[|/&^!+:\\\-*%$=~#;@><,?_\'\"\[\(\]\)\s{}]/;
            function buildRE(w){return new RegExp("^("+w.join("|")+")$");}
            function tokenBase(stream,state){
              var sol=stream.sol(),c=stream.next();
              curPunc=null;
              if(sol)
                if(c=="/")
                  return(state.tokenize=tokenLineComment)(stream,state);
                else if(c=="\\"){
                  if(stream.eol()||/\s/.test(stream.peek()))
                    return stream.skipToEnd(),/^\\\s*$/.test(stream.current())?(state.tokenize=tokenCommentToEOF)(stream, state):state.tokenize=tokenBase,"comment";
                  else
                    return state.tokenize=tokenBase,"builtin";
                }
              if(/\s/.test(c))
                return stream.peek()=="/"?(stream.skipToEnd(),"comment"):"whitespace";
              if(c=='"')
                return(state.tokenize=tokenString)(stream,state);
              if(c=='`')
                return stream.eatWhile(/[A-Z|a-z|\d|_|:|\/|\.]/),"symbol";
              if(("."==c&&/\d/.test(stream.peek()))||/\d/.test(c)){
                var t=null;
                stream.backUp(1);
                if(stream.match(/^\d{4}\.\d{2}(m|\.\d{2}([D|T](\d{2}(:\d{2}(:\d{2}(\.\d{1,9})?)?)?)?)?)/)
                || stream.match(/^\d+D(\d{2}(:\d{2}(:\d{2}(\.\d{1,9})?)?)?)/)
                || stream.match(/^\d{2}:\d{2}(:\d{2}(\.\d{1,9})?)?/)
                || stream.match(/^\d+[ptuv]{1}/))
                  t="temporal";
                else if(stream.match(/^0[NwW]{1}/)
                || stream.match(/^0x[\d|a-f|A-F]*/)
                || stream.match(/^[0|1]+[b]{1}/)
                || stream.match(/^\d+[chijn]{1}/)
                || stream.match(/-?\d*(\.\d*)?(e[+\-]?\d+)?(e|f)?/))
                  t="number";
                return(t&&(!(c=stream.peek())||E.test(c)))?t:(stream.next(),"error");
              }
              if(/[A-Z|a-z]|\./.test(c))
                return stream.eatWhile(/[A-Z|a-z|\.|_|\d]/),keywords.test(stream.current())?"keyword":"variable";
              if(/[|/&^!+:\\\-*%$=~#;@><\.,?_\']/.test(c))
                return null;
              if(/[{}\(\[\]\)]/.test(c))
                return null;
              return"error";
            }
            function tokenLineComment(stream,state){
              return stream.skipToEnd(),/\/\s*$/.test(stream.current())?(state.tokenize=tokenBlockComment)(stream,state):(state.tokenize=tokenBase),"comment";
            }
            function tokenBlockComment(stream,state){
              var f=stream.sol()&&stream.peek()=="\\";
              stream.skipToEnd();
              if(f&&/^\\\s*$/.test(stream.current()))
                state.tokenize=tokenBase;
              return"comment";
            }
            function tokenCommentToEOF(stream){return stream.skipToEnd(),"comment";}
            function tokenString(stream,state){
              var escaped=false,next,end=false;
              while((next=stream.next())){
                if(next=="\""&&!escaped){end=true;break;}
                escaped=!escaped&&next=="\\";
              }
              if(end)state.tokenize=tokenBase;
              return"string";
            }
            function pushContext(state,type,col){state.context={prev:state.context,indent:state.indent,col:col,type:type};}
            function popContext(state){state.indent=state.context.indent;state.context=state.context.prev;}
            return{
              startState:function(){
                return{tokenize:tokenBase,
                       context:null,
                       indent:0,
                       col:0};
              },
              token:function(stream,state){
                if(stream.sol()){
                  if(state.context&&state.context.align==null)
                    state.context.align=false;
                  state.indent=stream.indentation();
                }
                //if (stream.eatSpace()) return null;
                var style=state.tokenize(stream,state);
                if(style!="comment"&&state.context&&state.context.align==null&&state.context.type!="pattern"){
                  state.context.align=true;
                }
                if(curPunc=="(")pushContext(state,")",stream.column());
                else if(curPunc=="[")pushContext(state,"]",stream.column());
                else if(curPunc=="{")pushContext(state,"}",stream.column());
                else if(/[\]\}\)]/.test(curPunc)){
                  while(state.context&&state.context.type=="pattern")popContext(state);
                  if(state.context&&curPunc==state.context.type)popContext(state);
                }
                else if(curPunc=="."&&state.context&&state.context.type=="pattern")popContext(state);
                else if(/atom|string|variable/.test(style)&&state.context){
                  if(/[\}\]]/.test(state.context.type))
                    pushContext(state,"pattern",stream.column());
                  else if(state.context.type=="pattern"&&!state.context.align){
                    state.context.align=true;
                    state.context.col=stream.column();
                  }
                }
                return style;
              },
              indent:function(state,textAfter){
                var firstChar=textAfter&&textAfter.charAt(0);
                var context=state.context;
                if(/[\]\}]/.test(firstChar))
                  while (context&&context.type=="pattern")context=context.prev;
                var closing=context&&firstChar==context.type;
                if(!context)
                  return 0;
                else if(context.type=="pattern")
                  return context.col;
                else if(context.align)
                  return context.col+(closing?0:1);
                else
                  return context.indent+(closing?0:indentUnit);
              }
            };
          });
          CodeMirror.defineMIME("text/x-q","q");
          
          });
          
      • r
        • index.html
          <!doctype html>
          
          <title>CodeMirror: R mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="r.js"></script>
          <style>
                .CodeMirror { border-top: 1px solid silver; border-bottom: 1px solid silver; }
                .cm-s-default span.cm-semi { color: blue; font-weight: bold; }
                .cm-s-default span.cm-dollar { color: orange; font-weight: bold; }
                .cm-s-default span.cm-arrow { color: brown; }
                .cm-s-default span.cm-arg-is { color: brown; }
              </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">R</a>
            </ul>
          </div>
          
          <article>
          <h2>R mode</h2>
          <form><textarea id="code" name="code">
          # Code from http://www.mayin.org/ajayshah/KB/R/
          
          # FIRST LEARN ABOUT LISTS --
          X = list(height=5.4, weight=54)
          print("Use default printing --")
          print(X)
          print("Accessing individual elements --")
          cat("Your height is ", X$height, " and your weight is ", X$weight, "\n")
          
          # FUNCTIONS --
          square <- function(x) {
            return(x*x)
          }
          cat("The square of 3 is ", square(3), "\n")
          
                           # default value of the arg is set to 5.
          cube <- function(x=5) {
            return(x*x*x);
          }
          cat("Calling cube with 2 : ", cube(2), "\n")    # will give 2^3
          cat("Calling cube        : ", cube(), "\n")     # will default to 5^3.
          
          # LEARN ABOUT FUNCTIONS THAT RETURN MULTIPLE OBJECTS --
          powers <- function(x) {
            parcel = list(x2=x*x, x3=x*x*x, x4=x*x*x*x);
            return(parcel);
          }
          
          X = powers(3);
          print("Showing powers of 3 --"); print(X);
          
          # WRITING THIS COMPACTLY (4 lines instead of 7)
          
          powerful <- function(x) {
            return(list(x2=x*x, x3=x*x*x, x4=x*x*x*x));
          }
          print("Showing powers of 3 --"); print(powerful(3));
          
          # In R, the last expression in a function is, by default, what is
          # returned. So you could equally just say:
          powerful <- function(x) {list(x2=x*x, x3=x*x*x, x4=x*x*x*x)}
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {});
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-rsrc</code>.</p>
          
              <p>Development of the CodeMirror R mode was kindly sponsored
              by <a href="https://twitter.com/ubalo">Ubalo</a>.</p>
          
            </article>
          
        • r.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("r", function(config) {
            function wordObj(str) {
              var words = str.split(" "), res = {};
              for (var i = 0; i < words.length; ++i) res[words[i]] = true;
              return res;
            }
            var atoms = wordObj("NULL NA Inf NaN NA_integer_ NA_real_ NA_complex_ NA_character_");
            var builtins = wordObj("list quote bquote eval return call parse deparse");
            var keywords = wordObj("if else repeat while function for in next break");
            var blockkeywords = wordObj("if else repeat while function for");
            var opChars = /[+\-*\/^<>=!&|~$:]/;
            var curPunc;
          
            function tokenBase(stream, state) {
              curPunc = null;
              var ch = stream.next();
              if (ch == "#") {
                stream.skipToEnd();
                return "comment";
              } else if (ch == "0" && stream.eat("x")) {
                stream.eatWhile(/[\da-f]/i);
                return "number";
              } else if (ch == "." && stream.eat(/\d/)) {
                stream.match(/\d*(?:e[+\-]?\d+)?/);
                return "number";
              } else if (/\d/.test(ch)) {
                stream.match(/\d*(?:\.\d+)?(?:e[+\-]\d+)?L?/);
                return "number";
              } else if (ch == "'" || ch == '"') {
                state.tokenize = tokenString(ch);
                return "string";
              } else if (ch == "." && stream.match(/.[.\d]+/)) {
                return "keyword";
              } else if (/[\w\.]/.test(ch) && ch != "_") {
                stream.eatWhile(/[\w\.]/);
                var word = stream.current();
                if (atoms.propertyIsEnumerable(word)) return "atom";
                if (keywords.propertyIsEnumerable(word)) {
                  // Block keywords start new blocks, except 'else if', which only starts
                  // one new block for the 'if', no block for the 'else'.
                  if (blockkeywords.propertyIsEnumerable(word) &&
                      !stream.match(/\s*if(\s+|$)/, false))
                    curPunc = "block";
                  return "keyword";
                }
                if (builtins.propertyIsEnumerable(word)) return "builtin";
                return "variable";
              } else if (ch == "%") {
                if (stream.skipTo("%")) stream.next();
                return "variable-2";
              } else if (ch == "<" && stream.eat("-")) {
                return "arrow";
              } else if (ch == "=" && state.ctx.argList) {
                return "arg-is";
              } else if (opChars.test(ch)) {
                if (ch == "$") return "dollar";
                stream.eatWhile(opChars);
                return "operator";
              } else if (/[\(\){}\[\];]/.test(ch)) {
                curPunc = ch;
                if (ch == ";") return "semi";
                return null;
              } else {
                return null;
              }
            }
          
            function tokenString(quote) {
              return function(stream, state) {
                if (stream.eat("\\")) {
                  var ch = stream.next();
                  if (ch == "x") stream.match(/^[a-f0-9]{2}/i);
                  else if ((ch == "u" || ch == "U") && stream.eat("{") && stream.skipTo("}")) stream.next();
                  else if (ch == "u") stream.match(/^[a-f0-9]{4}/i);
                  else if (ch == "U") stream.match(/^[a-f0-9]{8}/i);
                  else if (/[0-7]/.test(ch)) stream.match(/^[0-7]{1,2}/);
                  return "string-2";
                } else {
                  var next;
                  while ((next = stream.next()) != null) {
                    if (next == quote) { state.tokenize = tokenBase; break; }
                    if (next == "\\") { stream.backUp(1); break; }
                  }
                  return "string";
                }
              };
            }
          
            function push(state, type, stream) {
              state.ctx = {type: type,
                           indent: state.indent,
                           align: null,
                           column: stream.column(),
                           prev: state.ctx};
            }
            function pop(state) {
              state.indent = state.ctx.indent;
              state.ctx = state.ctx.prev;
            }
          
            return {
              startState: function() {
                return {tokenize: tokenBase,
                        ctx: {type: "top",
                              indent: -config.indentUnit,
                              align: false},
                        indent: 0,
                        afterIdent: false};
              },
          
              token: function(stream, state) {
                if (stream.sol()) {
                  if (state.ctx.align == null) state.ctx.align = false;
                  state.indent = stream.indentation();
                }
                if (stream.eatSpace()) return null;
                var style = state.tokenize(stream, state);
                if (style != "comment" && state.ctx.align == null) state.ctx.align = true;
          
                var ctype = state.ctx.type;
                if ((curPunc == ";" || curPunc == "{" || curPunc == "}") && ctype == "block") pop(state);
                if (curPunc == "{") push(state, "}", stream);
                else if (curPunc == "(") {
                  push(state, ")", stream);
                  if (state.afterIdent) state.ctx.argList = true;
                }
                else if (curPunc == "[") push(state, "]", stream);
                else if (curPunc == "block") push(state, "block", stream);
                else if (curPunc == ctype) pop(state);
                state.afterIdent = style == "variable" || style == "keyword";
                return style;
              },
          
              indent: function(state, textAfter) {
                if (state.tokenize != tokenBase) return 0;
                var firstChar = textAfter && textAfter.charAt(0), ctx = state.ctx,
                    closing = firstChar == ctx.type;
                if (ctx.type == "block") return ctx.indent + (firstChar == "{" ? 0 : config.indentUnit);
                else if (ctx.align) return ctx.column + (closing ? 0 : 1);
                else return ctx.indent + (closing ? 0 : config.indentUnit);
              },
          
              lineComment: "#"
            };
          });
          
          CodeMirror.defineMIME("text/x-rsrc", "r");
          
          });
          
      • rpm
        • changes
          • index.html
            <!doctype html>
            
            <title>CodeMirror: RPM changes mode</title>
            <meta charset="utf-8"/>
            <link rel=stylesheet href="../../doc/docs.css">
            
                <link rel="stylesheet" href="../../../lib/codemirror.css">
                <script src="../../../lib/codemirror.js"></script>
                <script src="changes.js"></script>
                <link rel="stylesheet" href="../../../doc/docs.css">
                <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
            
            <div id=nav>
              <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../../doc/logo.png"></a>
            
              <ul>
                <li><a href="../../../index.html">Home</a>
                <li><a href="../../../doc/manual.html">Manual</a>
                <li><a href="https://github.com/codemirror/codemirror">Code</a>
              </ul>
              <ul>
                <li><a href="../../index.html">Language modes</a>
                <li><a class=active href="#">RPM changes</a>
              </ul>
            </div>
            
            <article>
            <h2>RPM changes mode</h2>
            
                <div><textarea id="code" name="code">
            -------------------------------------------------------------------
            Tue Oct 18 13:58:40 UTC 2011 - misterx@example.com
            
            - Update to r60.3
            - Fixes bug in the reflect package
              * disallow Interface method on Value obtained via unexported name
            
            -------------------------------------------------------------------
            Thu Oct  6 08:14:24 UTC 2011 - misterx@example.com
            
            - Update to r60.2
            - Fixes memory leak in certain map types
            
            -------------------------------------------------------------------
            Wed Oct  5 14:34:10 UTC 2011 - misterx@example.com
            
            - Tweaks for gdb debugging
            - go.spec changes:
              - move %go_arch definition to %prep section
              - pass correct location of go specific gdb pretty printer and
                functions to cpp as HOST_EXTRA_CFLAGS macro
              - install go gdb functions & printer
            - gdb-printer.patch
              - patch linker (src/cmd/ld/dwarf.c) to emit correct location of go
                gdb functions and pretty printer
            </textarea></div>
                <script>
                  var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                    mode: {name: "changes"},
                    lineNumbers: true,
                    indentUnit: 4
                  });
                </script>
            
                <p><strong>MIME types defined:</strong> <code>text/x-rpm-changes</code>.</p>
            </article>
            
        • index.html
          <!doctype html>
          
          <title>CodeMirror: RPM changes mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
              <link rel="stylesheet" href="../../lib/codemirror.css">
              <script src="../../lib/codemirror.js"></script>
              <script src="rpm.js"></script>
              <link rel="stylesheet" href="../../doc/docs.css">
              <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">RPM</a>
            </ul>
          </div>
          
          <article>
          <h2>RPM changes mode</h2>
          
              <div><textarea id="code" name="code">
          -------------------------------------------------------------------
          Tue Oct 18 13:58:40 UTC 2011 - misterx@example.com
          
          - Update to r60.3
          - Fixes bug in the reflect package
            * disallow Interface method on Value obtained via unexported name
          
          -------------------------------------------------------------------
          Thu Oct  6 08:14:24 UTC 2011 - misterx@example.com
          
          - Update to r60.2
          - Fixes memory leak in certain map types
          
          -------------------------------------------------------------------
          Wed Oct  5 14:34:10 UTC 2011 - misterx@example.com
          
          - Tweaks for gdb debugging
          - go.spec changes:
            - move %go_arch definition to %prep section
            - pass correct location of go specific gdb pretty printer and
              functions to cpp as HOST_EXTRA_CFLAGS macro
            - install go gdb functions & printer
          - gdb-printer.patch
            - patch linker (src/cmd/ld/dwarf.c) to emit correct location of go
              gdb functions and pretty printer
          </textarea></div>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  mode: {name: "rpm-changes"},
                  lineNumbers: true,
                  indentUnit: 4
                });
              </script>
          
          <h2>RPM spec mode</h2>
              
              <div><textarea id="code2" name="code2">
          #
          # spec file for package minidlna
          #
          # Copyright (c) 2011, Sascha Peilicke <saschpe@gmx.de>
          #
          # All modifications and additions to the file contributed by third parties
          # remain the property of their copyright owners, unless otherwise agreed
          # upon. The license for this file, and modifications and additions to the
          # file, is the same license as for the pristine package itself (unless the
          # license for the pristine package is not an Open Source License, in which
          # case the license is the MIT License). An "Open Source License" is a
          # license that conforms to the Open Source Definition (Version 1.9)
          # published by the Open Source Initiative.
          
          
          Name:           libupnp6
          Version:        1.6.13
          Release:        0
          Summary:        Portable Universal Plug and Play (UPnP) SDK
          Group:          System/Libraries
          License:        BSD-3-Clause
          Url:            http://sourceforge.net/projects/pupnp/
          Source0:        http://downloads.sourceforge.net/pupnp/libupnp-%{version}.tar.bz2
          BuildRoot:      %{_tmppath}/%{name}-%{version}-build
          
          %description
          The portable Universal Plug and Play (UPnP) SDK provides support for building
          UPnP-compliant control points, devices, and bridges on several operating
          systems.
          
          %package -n libupnp-devel
          Summary:        Portable Universal Plug and Play (UPnP) SDK
          Group:          Development/Libraries/C and C++
          Provides:       pkgconfig(libupnp)
          Requires:       %{name} = %{version}
          
          %description -n libupnp-devel
          The portable Universal Plug and Play (UPnP) SDK provides support for building
          UPnP-compliant control points, devices, and bridges on several operating
          systems.
          
          %prep
          %setup -n libupnp-%{version}
          
          %build
          %configure --disable-static
          make %{?_smp_mflags}
          
          %install
          %makeinstall
          find %{buildroot} -type f -name '*.la' -exec rm -f {} ';'
          
          %post -p /sbin/ldconfig
          
          %postun -p /sbin/ldconfig
          
          %files
          %defattr(-,root,root,-)
          %doc ChangeLog NEWS README TODO
          %{_libdir}/libixml.so.*
          %{_libdir}/libthreadutil.so.*
          %{_libdir}/libupnp.so.*
          
          %files -n libupnp-devel
          %defattr(-,root,root,-)
          %{_libdir}/pkgconfig/libupnp.pc
          %{_libdir}/libixml.so
          %{_libdir}/libthreadutil.so
          %{_libdir}/libupnp.so
          %{_includedir}/upnp/
          
          %changelog</textarea></div>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code2"), {
                  mode: {name: "rpm-spec"},
                  lineNumbers: true,
                  indentUnit: 4
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-rpm-spec</code>, <code>text/x-rpm-changes</code>.</p>
          </article>
          
        • rpm.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("rpm-changes", function() {
            var headerSeperator = /^-+$/;
            var headerLine = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)  ?\d{1,2} \d{2}:\d{2}(:\d{2})? [A-Z]{3,4} \d{4} - /;
            var simpleEmail = /^[\w+.-]+@[\w.-]+/;
          
            return {
              token: function(stream) {
                if (stream.sol()) {
                  if (stream.match(headerSeperator)) { return 'tag'; }
                  if (stream.match(headerLine)) { return 'tag'; }
                }
                if (stream.match(simpleEmail)) { return 'string'; }
                stream.next();
                return null;
              }
            };
          });
          
          CodeMirror.defineMIME("text/x-rpm-changes", "rpm-changes");
          
          // Quick and dirty spec file highlighting
          
          CodeMirror.defineMode("rpm-spec", function() {
            var arch = /^(i386|i586|i686|x86_64|ppc64le|ppc64|ppc|ia64|s390x|s390|sparc64|sparcv9|sparc|noarch|alphaev6|alpha|hppa|mipsel)/;
          
            var preamble = /^[a-zA-Z0-9()]+:/;
            var section = /^%(debug_package|package|description|prep|build|install|files|clean|changelog|preinstall|preun|postinstall|postun|pretrans|posttrans|pre|post|triggerin|triggerun|verifyscript|check|triggerpostun|triggerprein|trigger)/;
            var control_flow_complex = /^%(ifnarch|ifarch|if)/; // rpm control flow macros
            var control_flow_simple = /^%(else|endif)/; // rpm control flow macros
            var operators = /^(\!|\?|\<\=|\<|\>\=|\>|\=\=|\&\&|\|\|)/; // operators in control flow macros
          
            return {
              startState: function () {
                  return {
                    controlFlow: false,
                    macroParameters: false,
                    section: false
                  };
              },
              token: function (stream, state) {
                var ch = stream.peek();
                if (ch == "#") { stream.skipToEnd(); return "comment"; }
          
                if (stream.sol()) {
                  if (stream.match(preamble)) { return "header"; }
                  if (stream.match(section)) { return "atom"; }
                }
          
                if (stream.match(/^\$\w+/)) { return "def"; } // Variables like '$RPM_BUILD_ROOT'
                if (stream.match(/^\$\{\w+\}/)) { return "def"; } // Variables like '${RPM_BUILD_ROOT}'
          
                if (stream.match(control_flow_simple)) { return "keyword"; }
                if (stream.match(control_flow_complex)) {
                  state.controlFlow = true;
                  return "keyword";
                }
                if (state.controlFlow) {
                  if (stream.match(operators)) { return "operator"; }
                  if (stream.match(/^(\d+)/)) { return "number"; }
                  if (stream.eol()) { state.controlFlow = false; }
                }
          
                if (stream.match(arch)) {
                  if (stream.eol()) { state.controlFlow = false; }
                  return "number";
                }
          
                // Macros like '%make_install' or '%attr(0775,root,root)'
                if (stream.match(/^%[\w]+/)) {
                  if (stream.match(/^\(/)) { state.macroParameters = true; }
                  return "keyword";
                }
                if (state.macroParameters) {
                  if (stream.match(/^\d+/)) { return "number";}
                  if (stream.match(/^\)/)) {
                    state.macroParameters = false;
                    return "keyword";
                  }
                }
          
                // Macros like '%{defined fedora}'
                if (stream.match(/^%\{\??[\w \-\:\!]+\}/)) {
                  if (stream.eol()) { state.controlFlow = false; }
                  return "def";
                }
          
                //TODO: Include bash script sub-parser (CodeMirror supports that)
                stream.next();
                return null;
              }
            };
          });
          
          CodeMirror.defineMIME("text/x-rpm-spec", "rpm-spec");
          
          });
          
      • rst
        • index.html
          <!doctype html>
          
          <title>CodeMirror: reStructuredText mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/mode/overlay.js"></script>
          <script src="rst.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">reStructuredText</a>
            </ul>
          </div>
          
          <article>
          <h2>reStructuredText mode</h2>
          <form><textarea id="code" name="code">
          .. This is an excerpt from Sphinx documentation: http://sphinx.pocoo.org/_sources/rest.txt
          
          .. highlightlang:: rest
          
          .. _rst-primer:
          
          reStructuredText Primer
          =======================
          
          This section is a brief introduction to reStructuredText (reST) concepts and
          syntax, intended to provide authors with enough information to author documents
          productively.  Since reST was designed to be a simple, unobtrusive markup
          language, this will not take too long.
          
          .. seealso::
          
             The authoritative `reStructuredText User Documentation
             &lt;http://docutils.sourceforge.net/rst.html&gt;`_.  The "ref" links in this
             document link to the description of the individual constructs in the reST
             reference.
          
          
          Paragraphs
          ----------
          
          The paragraph (:duref:`ref &lt;paragraphs&gt;`) is the most basic block in a reST
          document.  Paragraphs are simply chunks of text separated by one or more blank
          lines.  As in Python, indentation is significant in reST, so all lines of the
          same paragraph must be left-aligned to the same level of indentation.
          
          
          .. _inlinemarkup:
          
          Inline markup
          -------------
          
          The standard reST inline markup is quite simple: use
          
          * one asterisk: ``*text*`` for emphasis (italics),
          * two asterisks: ``**text**`` for strong emphasis (boldface), and
          * backquotes: ````text```` for code samples.
          
          If asterisks or backquotes appear in running text and could be confused with
          inline markup delimiters, they have to be escaped with a backslash.
          
          Be aware of some restrictions of this markup:
          
          * it may not be nested,
          * content may not start or end with whitespace: ``* text*`` is wrong,
          * it must be separated from surrounding text by non-word characters.  Use a
            backslash escaped space to work around that: ``thisis\ *one*\ word``.
          
          These restrictions may be lifted in future versions of the docutils.
          
          reST also allows for custom "interpreted text roles"', which signify that the
          enclosed text should be interpreted in a specific way.  Sphinx uses this to
          provide semantic markup and cross-referencing of identifiers, as described in
          the appropriate section.  The general syntax is ``:rolename:`content```.
          
          Standard reST provides the following roles:
          
          * :durole:`emphasis` -- alternate spelling for ``*emphasis*``
          * :durole:`strong` -- alternate spelling for ``**strong**``
          * :durole:`literal` -- alternate spelling for ````literal````
          * :durole:`subscript` -- subscript text
          * :durole:`superscript` -- superscript text
          * :durole:`title-reference` -- for titles of books, periodicals, and other
            materials
          
          See :ref:`inline-markup` for roles added by Sphinx.
          
          
          Lists and Quote-like blocks
          ---------------------------
          
          List markup (:duref:`ref &lt;bullet-lists&gt;`) is natural: just place an asterisk at
          the start of a paragraph and indent properly.  The same goes for numbered lists;
          they can also be autonumbered using a ``#`` sign::
          
             * This is a bulleted list.
             * It has two items, the second
               item uses two lines.
          
             1. This is a numbered list.
             2. It has two items too.
          
             #. This is a numbered list.
             #. It has two items too.
          
          
          Nested lists are possible, but be aware that they must be separated from the
          parent list items by blank lines::
          
             * this is
             * a list
          
               * with a nested list
               * and some subitems
          
             * and here the parent list continues
          
          Definition lists (:duref:`ref &lt;definition-lists&gt;`) are created as follows::
          
             term (up to a line of text)
                Definition of the term, which must be indented
          
                and can even consist of multiple paragraphs
          
             next term
                Description.
          
          Note that the term cannot have more than one line of text.
          
          Quoted paragraphs (:duref:`ref &lt;block-quotes&gt;`) are created by just indenting
          them more than the surrounding paragraphs.
          
          Line blocks (:duref:`ref &lt;line-blocks&gt;`) are a way of preserving line breaks::
          
             | These lines are
             | broken exactly like in
             | the source file.
          
          There are also several more special blocks available:
          
          * field lists (:duref:`ref &lt;field-lists&gt;`)
          * option lists (:duref:`ref &lt;option-lists&gt;`)
          * quoted literal blocks (:duref:`ref &lt;quoted-literal-blocks&gt;`)
          * doctest blocks (:duref:`ref &lt;doctest-blocks&gt;`)
          
          
          Source Code
          -----------
          
          Literal code blocks (:duref:`ref &lt;literal-blocks&gt;`) are introduced by ending a
          paragraph with the special marker ``::``.  The literal block must be indented
          (and, like all paragraphs, separated from the surrounding ones by blank lines)::
          
             This is a normal text paragraph. The next paragraph is a code sample::
          
                It is not processed in any way, except
                that the indentation is removed.
          
                It can span multiple lines.
          
             This is a normal text paragraph again.
          
          The handling of the ``::`` marker is smart:
          
          * If it occurs as a paragraph of its own, that paragraph is completely left
            out of the document.
          * If it is preceded by whitespace, the marker is removed.
          * If it is preceded by non-whitespace, the marker is replaced by a single
            colon.
          
          That way, the second sentence in the above example's first paragraph would be
          rendered as "The next paragraph is a code sample:".
          
          
          .. _rst-tables:
          
          Tables
          ------
          
          Two forms of tables are supported.  For *grid tables* (:duref:`ref
          &lt;grid-tables&gt;`), you have to "paint" the cell grid yourself.  They look like
          this::
          
             +------------------------+------------+----------+----------+
             | Header row, column 1   | Header 2   | Header 3 | Header 4 |
             | (header rows optional) |            |          |          |
             +========================+============+==========+==========+
             | body row 1, column 1   | column 2   | column 3 | column 4 |
             +------------------------+------------+----------+----------+
             | body row 2             | ...        | ...      |          |
             +------------------------+------------+----------+----------+
          
          *Simple tables* (:duref:`ref &lt;simple-tables&gt;`) are easier to write, but
          limited: they must contain more than one row, and the first column cannot
          contain multiple lines.  They look like this::
          
             =====  =====  =======
             A      B      A and B
             =====  =====  =======
             False  False  False
             True   False  False
             False  True   False
             True   True   True
             =====  =====  =======
          
          
          Hyperlinks
          ----------
          
          External links
          ^^^^^^^^^^^^^^
          
          Use ```Link text &lt;http://example.com/&gt;`_`` for inline web links.  If the link
          text should be the web address, you don't need special markup at all, the parser
          finds links and mail addresses in ordinary text.
          
          You can also separate the link and the target definition (:duref:`ref
          &lt;hyperlink-targets&gt;`), like this::
          
             This is a paragraph that contains `a link`_.
          
             .. _a link: http://example.com/
          
          
          Internal links
          ^^^^^^^^^^^^^^
          
          Internal linking is done via a special reST role provided by Sphinx, see the
          section on specific markup, :ref:`ref-role`.
          
          
          Sections
          --------
          
          Section headers (:duref:`ref &lt;sections&gt;`) are created by underlining (and
          optionally overlining) the section title with a punctuation character, at least
          as long as the text::
          
             =================
             This is a heading
             =================
          
          Normally, there are no heading levels assigned to certain characters as the
          structure is determined from the succession of headings.  However, for the
          Python documentation, this convention is used which you may follow:
          
          * ``#`` with overline, for parts
          * ``*`` with overline, for chapters
          * ``=``, for sections
          * ``-``, for subsections
          * ``^``, for subsubsections
          * ``"``, for paragraphs
          
          Of course, you are free to use your own marker characters (see the reST
          documentation), and use a deeper nesting level, but keep in mind that most
          target formats (HTML, LaTeX) have a limited supported nesting depth.
          
          
          Explicit Markup
          ---------------
          
          "Explicit markup" (:duref:`ref &lt;explicit-markup-blocks&gt;`) is used in reST for
          most constructs that need special handling, such as footnotes,
          specially-highlighted paragraphs, comments, and generic directives.
          
          An explicit markup block begins with a line starting with ``..`` followed by
          whitespace and is terminated by the next paragraph at the same level of
          indentation.  (There needs to be a blank line between explicit markup and normal
          paragraphs.  This may all sound a bit complicated, but it is intuitive enough
          when you write it.)
          
          
          .. _directives:
          
          Directives
          ----------
          
          A directive (:duref:`ref &lt;directives&gt;`) is a generic block of explicit markup.
          Besides roles, it is one of the extension mechanisms of reST, and Sphinx makes
          heavy use of it.
          
          Docutils supports the following directives:
          
          * Admonitions: :dudir:`attention`, :dudir:`caution`, :dudir:`danger`,
            :dudir:`error`, :dudir:`hint`, :dudir:`important`, :dudir:`note`,
            :dudir:`tip`, :dudir:`warning` and the generic :dudir:`admonition`.
            (Most themes style only "note" and "warning" specially.)
          
          * Images:
          
            - :dudir:`image` (see also Images_ below)
            - :dudir:`figure` (an image with caption and optional legend)
          
          * Additional body elements:
          
            - :dudir:`contents` (a local, i.e. for the current file only, table of
              contents)
            - :dudir:`container` (a container with a custom class, useful to generate an
              outer ``&lt;div&gt;`` in HTML)
            - :dudir:`rubric` (a heading without relation to the document sectioning)
            - :dudir:`topic`, :dudir:`sidebar` (special highlighted body elements)
            - :dudir:`parsed-literal` (literal block that supports inline markup)
            - :dudir:`epigraph` (a block quote with optional attribution line)
            - :dudir:`highlights`, :dudir:`pull-quote` (block quotes with their own
              class attribute)
            - :dudir:`compound` (a compound paragraph)
          
          * Special tables:
          
            - :dudir:`table` (a table with title)
            - :dudir:`csv-table` (a table generated from comma-separated values)
            - :dudir:`list-table` (a table generated from a list of lists)
          
          * Special directives:
          
            - :dudir:`raw` (include raw target-format markup)
            - :dudir:`include` (include reStructuredText from another file)
              -- in Sphinx, when given an absolute include file path, this directive takes
              it as relative to the source directory
            - :dudir:`class` (assign a class attribute to the next element) [1]_
          
          * HTML specifics:
          
            - :dudir:`meta` (generation of HTML ``&lt;meta&gt;`` tags)
            - :dudir:`title` (override document title)
          
          * Influencing markup:
          
            - :dudir:`default-role` (set a new default role)
            - :dudir:`role` (create a new role)
          
            Since these are only per-file, better use Sphinx' facilities for setting the
            :confval:`default_role`.
          
          Do *not* use the directives :dudir:`sectnum`, :dudir:`header` and
          :dudir:`footer`.
          
          Directives added by Sphinx are described in :ref:`sphinxmarkup`.
          
          Basically, a directive consists of a name, arguments, options and content. (Keep
          this terminology in mind, it is used in the next chapter describing custom
          directives.)  Looking at this example, ::
          
             .. function:: foo(x)
                           foo(y, z)
                :module: some.module.name
          
                Return a line of text input from the user.
          
          ``function`` is the directive name.  It is given two arguments here, the
          remainder of the first line and the second line, as well as one option
          ``module`` (as you can see, options are given in the lines immediately following
          the arguments and indicated by the colons).  Options must be indented to the
          same level as the directive content.
          
          The directive content follows after a blank line and is indented relative to the
          directive start.
          
          
          Images
          ------
          
          reST supports an image directive (:dudir:`ref &lt;image&gt;`), used like so::
          
             .. image:: gnu.png
                (options)
          
          When used within Sphinx, the file name given (here ``gnu.png``) must either be
          relative to the source file, or absolute which means that they are relative to
          the top source directory.  For example, the file ``sketch/spam.rst`` could refer
          to the image ``images/spam.png`` as ``../images/spam.png`` or
          ``/images/spam.png``.
          
          Sphinx will automatically copy image files over to a subdirectory of the output
          directory on building (e.g. the ``_static`` directory for HTML output.)
          
          Interpretation of image size options (``width`` and ``height``) is as follows:
          if the size has no unit or the unit is pixels, the given size will only be
          respected for output channels that support pixels (i.e. not in LaTeX output).
          Other units (like ``pt`` for points) will be used for HTML and LaTeX output.
          
          Sphinx extends the standard docutils behavior by allowing an asterisk for the
          extension::
          
             .. image:: gnu.*
          
          Sphinx then searches for all images matching the provided pattern and determines
          their type.  Each builder then chooses the best image out of these candidates.
          For instance, if the file name ``gnu.*`` was given and two files :file:`gnu.pdf`
          and :file:`gnu.png` existed in the source tree, the LaTeX builder would choose
          the former, while the HTML builder would prefer the latter.
          
          .. versionchanged:: 0.4
             Added the support for file names ending in an asterisk.
          
          .. versionchanged:: 0.6
             Image paths can now be absolute.
          
          
          Footnotes
          ---------
          
          For footnotes (:duref:`ref &lt;footnotes&gt;`), use ``[#name]_`` to mark the footnote
          location, and add the footnote body at the bottom of the document after a
          "Footnotes" rubric heading, like so::
          
             Lorem ipsum [#f1]_ dolor sit amet ... [#f2]_
          
             .. rubric:: Footnotes
          
             .. [#f1] Text of the first footnote.
             .. [#f2] Text of the second footnote.
          
          You can also explicitly number the footnotes (``[1]_``) or use auto-numbered
          footnotes without names (``[#]_``).
          
          
          Citations
          ---------
          
          Standard reST citations (:duref:`ref &lt;citations&gt;`) are supported, with the
          additional feature that they are "global", i.e. all citations can be referenced
          from all files.  Use them like so::
          
             Lorem ipsum [Ref]_ dolor sit amet.
          
             .. [Ref] Book or article reference, URL or whatever.
          
          Citation usage is similar to footnote usage, but with a label that is not
          numeric or begins with ``#``.
          
          
          Substitutions
          -------------
          
          reST supports "substitutions" (:duref:`ref &lt;substitution-definitions&gt;`), which
          are pieces of text and/or markup referred to in the text by ``|name|``.  They
          are defined like footnotes with explicit markup blocks, like this::
          
             .. |name| replace:: replacement *text*
          
          or this::
          
             .. |caution| image:: warning.png
                          :alt: Warning!
          
          See the :duref:`reST reference for substitutions &lt;substitution-definitions&gt;`
          for details.
          
          If you want to use some substitutions for all documents, put them into
          :confval:`rst_prolog` or put them into a separate file and include it into all
          documents you want to use them in, using the :rst:dir:`include` directive.  (Be
          sure to give the include file a file name extension differing from that of other
          source files, to avoid Sphinx finding it as a standalone document.)
          
          Sphinx defines some default substitutions, see :ref:`default-substitutions`.
          
          
          Comments
          --------
          
          Every explicit markup block which isn't a valid markup construct (like the
          footnotes above) is regarded as a comment (:duref:`ref &lt;comments&gt;`).  For
          example::
          
             .. This is a comment.
          
          You can indent text after a comment start to form multiline comments::
          
             ..
                This whole indented block
                is a comment.
          
                Still in the comment.
          
          
          Source encoding
          ---------------
          
          Since the easiest way to include special characters like em dashes or copyright
          signs in reST is to directly write them as Unicode characters, one has to
          specify an encoding.  Sphinx assumes source files to be encoded in UTF-8 by
          default; you can change this with the :confval:`source_encoding` config value.
          
          
          Gotchas
          -------
          
          There are some problems one commonly runs into while authoring reST documents:
          
          * **Separation of inline markup:** As said above, inline markup spans must be
            separated from the surrounding text by non-word characters, you have to use a
            backslash-escaped space to get around that.  See `the reference
            &lt;http://docutils.sf.net/docs/ref/rst/restructuredtext.html#inline-markup&gt;`_
            for the details.
          
          * **No nested inline markup:** Something like ``*see :func:`foo`*`` is not
            possible.
          
          
          .. rubric:: Footnotes
          
          .. [1] When the default domain contains a :rst:dir:`class` directive, this directive
                 will be shadowed.  Therefore, Sphinx re-exports it as :rst:dir:`rst-class`.
          </textarea></form>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                });
              </script>
              <p>
                  The <code>python</code> mode will be used for highlighting blocks
                  containing Python/IPython terminal sessions: blocks starting with
                  <code>&gt;&gt;&gt;</code> (for Python) or <code>In [num]:</code> (for
                  IPython).
          
                  Further, the <code>stex</code> mode will be used for highlighting
                  blocks containing LaTex code.
              </p>
          
              <p><strong>MIME types defined:</strong> <code>text/x-rst</code>.</p>
            </article>
          
        • rst.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("../python/python"), require("../stex/stex"), require("../../addon/mode/overlay"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "../python/python", "../stex/stex", "../../addon/mode/overlay"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode('rst', function (config, options) {
          
            var rx_strong = /^\*\*[^\*\s](?:[^\*]*[^\*\s])?\*\*/;
            var rx_emphasis = /^\*[^\*\s](?:[^\*]*[^\*\s])?\*/;
            var rx_literal = /^``[^`\s](?:[^`]*[^`\s])``/;
          
            var rx_number = /^(?:[\d]+(?:[\.,]\d+)*)/;
            var rx_positive = /^(?:\s\+[\d]+(?:[\.,]\d+)*)/;
            var rx_negative = /^(?:\s\-[\d]+(?:[\.,]\d+)*)/;
          
            var rx_uri_protocol = "[Hh][Tt][Tt][Pp][Ss]?://";
            var rx_uri_domain = "(?:[\\d\\w.-]+)\\.(?:\\w{2,6})";
            var rx_uri_path = "(?:/[\\d\\w\\#\\%\\&\\-\\.\\,\\/\\:\\=\\?\\~]+)*";
            var rx_uri = new RegExp("^" + rx_uri_protocol + rx_uri_domain + rx_uri_path);
          
            var overlay = {
              token: function (stream) {
          
                if (stream.match(rx_strong) && stream.match (/\W+|$/, false))
                  return 'strong';
                if (stream.match(rx_emphasis) && stream.match (/\W+|$/, false))
                  return 'em';
                if (stream.match(rx_literal) && stream.match (/\W+|$/, false))
                  return 'string-2';
                if (stream.match(rx_number))
                  return 'number';
                if (stream.match(rx_positive))
                  return 'positive';
                if (stream.match(rx_negative))
                  return 'negative';
                if (stream.match(rx_uri))
                  return 'link';
          
                while (stream.next() != null) {
                  if (stream.match(rx_strong, false)) break;
                  if (stream.match(rx_emphasis, false)) break;
                  if (stream.match(rx_literal, false)) break;
                  if (stream.match(rx_number, false)) break;
                  if (stream.match(rx_positive, false)) break;
                  if (stream.match(rx_negative, false)) break;
                  if (stream.match(rx_uri, false)) break;
                }
          
                return null;
              }
            };
          
            var mode = CodeMirror.getMode(
              config, options.backdrop || 'rst-base'
            );
          
            return CodeMirror.overlayMode(mode, overlay, true); // combine
          }, 'python', 'stex');
          
          ///////////////////////////////////////////////////////////////////////////////
          ///////////////////////////////////////////////////////////////////////////////
          
          CodeMirror.defineMode('rst-base', function (config) {
          
            ///////////////////////////////////////////////////////////////////////////
            ///////////////////////////////////////////////////////////////////////////
          
            function format(string) {
              var args = Array.prototype.slice.call(arguments, 1);
              return string.replace(/{(\d+)}/g, function (match, n) {
                return typeof args[n] != 'undefined' ? args[n] : match;
              });
            }
          
            ///////////////////////////////////////////////////////////////////////////
            ///////////////////////////////////////////////////////////////////////////
          
            var mode_python = CodeMirror.getMode(config, 'python');
            var mode_stex = CodeMirror.getMode(config, 'stex');
          
            ///////////////////////////////////////////////////////////////////////////
            ///////////////////////////////////////////////////////////////////////////
          
            var SEPA = "\\s+";
            var TAIL = "(?:\\s*|\\W|$)",
            rx_TAIL = new RegExp(format('^{0}', TAIL));
          
            var NAME =
              "(?:[^\\W\\d_](?:[\\w!\"#$%&'()\\*\\+,\\-\\.\/:;<=>\\?]*[^\\W_])?)",
            rx_NAME = new RegExp(format('^{0}', NAME));
            var NAME_WWS =
              "(?:[^\\W\\d_](?:[\\w\\s!\"#$%&'()\\*\\+,\\-\\.\/:;<=>\\?]*[^\\W_])?)";
            var REF_NAME = format('(?:{0}|`{1}`)', NAME, NAME_WWS);
          
            var TEXT1 = "(?:[^\\s\\|](?:[^\\|]*[^\\s\\|])?)";
            var TEXT2 = "(?:[^\\`]+)",
            rx_TEXT2 = new RegExp(format('^{0}', TEXT2));
          
            var rx_section = new RegExp(
              "^([!'#$%&\"()*+,-./:;<=>?@\\[\\\\\\]^_`{|}~])\\1{3,}\\s*$");
            var rx_explicit = new RegExp(
              format('^\\.\\.{0}', SEPA));
            var rx_link = new RegExp(
              format('^_{0}:{1}|^__:{1}', REF_NAME, TAIL));
            var rx_directive = new RegExp(
              format('^{0}::{1}', REF_NAME, TAIL));
            var rx_substitution = new RegExp(
              format('^\\|{0}\\|{1}{2}::{3}', TEXT1, SEPA, REF_NAME, TAIL));
            var rx_footnote = new RegExp(
              format('^\\[(?:\\d+|#{0}?|\\*)]{1}', REF_NAME, TAIL));
            var rx_citation = new RegExp(
              format('^\\[{0}\\]{1}', REF_NAME, TAIL));
          
            var rx_substitution_ref = new RegExp(
              format('^\\|{0}\\|', TEXT1));
            var rx_footnote_ref = new RegExp(
              format('^\\[(?:\\d+|#{0}?|\\*)]_', REF_NAME));
            var rx_citation_ref = new RegExp(
              format('^\\[{0}\\]_', REF_NAME));
            var rx_link_ref1 = new RegExp(
              format('^{0}__?', REF_NAME));
            var rx_link_ref2 = new RegExp(
              format('^`{0}`_', TEXT2));
          
            var rx_role_pre = new RegExp(
              format('^:{0}:`{1}`{2}', NAME, TEXT2, TAIL));
            var rx_role_suf = new RegExp(
              format('^`{1}`:{0}:{2}', NAME, TEXT2, TAIL));
            var rx_role = new RegExp(
              format('^:{0}:{1}', NAME, TAIL));
          
            var rx_directive_name = new RegExp(format('^{0}', REF_NAME));
            var rx_directive_tail = new RegExp(format('^::{0}', TAIL));
            var rx_substitution_text = new RegExp(format('^\\|{0}\\|', TEXT1));
            var rx_substitution_sepa = new RegExp(format('^{0}', SEPA));
            var rx_substitution_name = new RegExp(format('^{0}', REF_NAME));
            var rx_substitution_tail = new RegExp(format('^::{0}', TAIL));
            var rx_link_head = new RegExp("^_");
            var rx_link_name = new RegExp(format('^{0}|_', REF_NAME));
            var rx_link_tail = new RegExp(format('^:{0}', TAIL));
          
            var rx_verbatim = new RegExp('^::\\s*$');
            var rx_examples = new RegExp('^\\s+(?:>>>|In \\[\\d+\\]:)\\s');
          
            ///////////////////////////////////////////////////////////////////////////
            ///////////////////////////////////////////////////////////////////////////
          
            function to_normal(stream, state) {
              var token = null;
          
              if (stream.sol() && stream.match(rx_examples, false)) {
                change(state, to_mode, {
                  mode: mode_python, local: CodeMirror.startState(mode_python)
                });
              } else if (stream.sol() && stream.match(rx_explicit)) {
                change(state, to_explicit);
                token = 'meta';
              } else if (stream.sol() && stream.match(rx_section)) {
                change(state, to_normal);
                token = 'header';
              } else if (phase(state) == rx_role_pre ||
                         stream.match(rx_role_pre, false)) {
          
                switch (stage(state)) {
                case 0:
                  change(state, to_normal, context(rx_role_pre, 1));
                  stream.match(/^:/);
                  token = 'meta';
                  break;
                case 1:
                  change(state, to_normal, context(rx_role_pre, 2));
                  stream.match(rx_NAME);
                  token = 'keyword';
          
                  if (stream.current().match(/^(?:math|latex)/)) {
                    state.tmp_stex = true;
                  }
                  break;
                case 2:
                  change(state, to_normal, context(rx_role_pre, 3));
                  stream.match(/^:`/);
                  token = 'meta';
                  break;
                case 3:
                  if (state.tmp_stex) {
                    state.tmp_stex = undefined; state.tmp = {
                      mode: mode_stex, local: CodeMirror.startState(mode_stex)
                    };
                  }
          
                  if (state.tmp) {
                    if (stream.peek() == '`') {
                      change(state, to_normal, context(rx_role_pre, 4));
                      state.tmp = undefined;
                      break;
                    }
          
                    token = state.tmp.mode.token(stream, state.tmp.local);
                    break;
                  }
          
                  change(state, to_normal, context(rx_role_pre, 4));
                  stream.match(rx_TEXT2);
                  token = 'string';
                  break;
                case 4:
                  change(state, to_normal, context(rx_role_pre, 5));
                  stream.match(/^`/);
                  token = 'meta';
                  break;
                case 5:
                  change(state, to_normal, context(rx_role_pre, 6));
                  stream.match(rx_TAIL);
                  break;
                default:
                  change(state, to_normal);
                }
              } else if (phase(state) == rx_role_suf ||
                         stream.match(rx_role_suf, false)) {
          
                switch (stage(state)) {
                case 0:
                  change(state, to_normal, context(rx_role_suf, 1));
                  stream.match(/^`/);
                  token = 'meta';
                  break;
                case 1:
                  change(state, to_normal, context(rx_role_suf, 2));
                  stream.match(rx_TEXT2);
                  token = 'string';
                  break;
                case 2:
                  change(state, to_normal, context(rx_role_suf, 3));
                  stream.match(/^`:/);
                  token = 'meta';
                  break;
                case 3:
                  change(state, to_normal, context(rx_role_suf, 4));
                  stream.match(rx_NAME);
                  token = 'keyword';
                  break;
                case 4:
                  change(state, to_normal, context(rx_role_suf, 5));
                  stream.match(/^:/);
                  token = 'meta';
                  break;
                case 5:
                  change(state, to_normal, context(rx_role_suf, 6));
                  stream.match(rx_TAIL);
                  break;
                default:
                  change(state, to_normal);
                }
              } else if (phase(state) == rx_role || stream.match(rx_role, false)) {
          
                switch (stage(state)) {
                case 0:
                  change(state, to_normal, context(rx_role, 1));
                  stream.match(/^:/);
                  token = 'meta';
                  break;
                case 1:
                  change(state, to_normal, context(rx_role, 2));
                  stream.match(rx_NAME);
                  token = 'keyword';
                  break;
                case 2:
                  change(state, to_normal, context(rx_role, 3));
                  stream.match(/^:/);
                  token = 'meta';
                  break;
                case 3:
                  change(state, to_normal, context(rx_role, 4));
                  stream.match(rx_TAIL);
                  break;
                default:
                  change(state, to_normal);
                }
              } else if (phase(state) == rx_substitution_ref ||
                         stream.match(rx_substitution_ref, false)) {
          
                switch (stage(state)) {
                case 0:
                  change(state, to_normal, context(rx_substitution_ref, 1));
                  stream.match(rx_substitution_text);
                  token = 'variable-2';
                  break;
                case 1:
                  change(state, to_normal, context(rx_substitution_ref, 2));
                  if (stream.match(/^_?_?/)) token = 'link';
                  break;
                default:
                  change(state, to_normal);
                }
              } else if (stream.match(rx_footnote_ref)) {
                change(state, to_normal);
                token = 'quote';
              } else if (stream.match(rx_citation_ref)) {
                change(state, to_normal);
                token = 'quote';
              } else if (stream.match(rx_link_ref1)) {
                change(state, to_normal);
                if (!stream.peek() || stream.peek().match(/^\W$/)) {
                  token = 'link';
                }
              } else if (phase(state) == rx_link_ref2 ||
                         stream.match(rx_link_ref2, false)) {
          
                switch (stage(state)) {
                case 0:
                  if (!stream.peek() || stream.peek().match(/^\W$/)) {
                    change(state, to_normal, context(rx_link_ref2, 1));
                  } else {
                    stream.match(rx_link_ref2);
                  }
                  break;
                case 1:
                  change(state, to_normal, context(rx_link_ref2, 2));
                  stream.match(/^`/);
                  token = 'link';
                  break;
                case 2:
                  change(state, to_normal, context(rx_link_ref2, 3));
                  stream.match(rx_TEXT2);
                  break;
                case 3:
                  change(state, to_normal, context(rx_link_ref2, 4));
                  stream.match(/^`_/);
                  token = 'link';
                  break;
                default:
                  change(state, to_normal);
                }
              } else if (stream.match(rx_verbatim)) {
                change(state, to_verbatim);
              }
          
              else {
                if (stream.next()) change(state, to_normal);
              }
          
              return token;
            }
          
            ///////////////////////////////////////////////////////////////////////////
            ///////////////////////////////////////////////////////////////////////////
          
            function to_explicit(stream, state) {
              var token = null;
          
              if (phase(state) == rx_substitution ||
                  stream.match(rx_substitution, false)) {
          
                switch (stage(state)) {
                case 0:
                  change(state, to_explicit, context(rx_substitution, 1));
                  stream.match(rx_substitution_text);
                  token = 'variable-2';
                  break;
                case 1:
                  change(state, to_explicit, context(rx_substitution, 2));
                  stream.match(rx_substitution_sepa);
                  break;
                case 2:
                  change(state, to_explicit, context(rx_substitution, 3));
                  stream.match(rx_substitution_name);
                  token = 'keyword';
                  break;
                case 3:
                  change(state, to_explicit, context(rx_substitution, 4));
                  stream.match(rx_substitution_tail);
                  token = 'meta';
                  break;
                default:
                  change(state, to_normal);
                }
              } else if (phase(state) == rx_directive ||
                         stream.match(rx_directive, false)) {
          
                switch (stage(state)) {
                case 0:
                  change(state, to_explicit, context(rx_directive, 1));
                  stream.match(rx_directive_name);
                  token = 'keyword';
          
                  if (stream.current().match(/^(?:math|latex)/))
                    state.tmp_stex = true;
                  else if (stream.current().match(/^python/))
                    state.tmp_py = true;
                  break;
                case 1:
                  change(state, to_explicit, context(rx_directive, 2));
                  stream.match(rx_directive_tail);
                  token = 'meta';
          
                  if (stream.match(/^latex\s*$/) || state.tmp_stex) {
                    state.tmp_stex = undefined; change(state, to_mode, {
                      mode: mode_stex, local: CodeMirror.startState(mode_stex)
                    });
                  }
                  break;
                case 2:
                  change(state, to_explicit, context(rx_directive, 3));
                  if (stream.match(/^python\s*$/) || state.tmp_py) {
                    state.tmp_py = undefined; change(state, to_mode, {
                      mode: mode_python, local: CodeMirror.startState(mode_python)
                    });
                  }
                  break;
                default:
                  change(state, to_normal);
                }
              } else if (phase(state) == rx_link || stream.match(rx_link, false)) {
          
                switch (stage(state)) {
                case 0:
                  change(state, to_explicit, context(rx_link, 1));
                  stream.match(rx_link_head);
                  stream.match(rx_link_name);
                  token = 'link';
                  break;
                case 1:
                  change(state, to_explicit, context(rx_link, 2));
                  stream.match(rx_link_tail);
                  token = 'meta';
                  break;
                default:
                  change(state, to_normal);
                }
              } else if (stream.match(rx_footnote)) {
                change(state, to_normal);
                token = 'quote';
              } else if (stream.match(rx_citation)) {
                change(state, to_normal);
                token = 'quote';
              }
          
              else {
                stream.eatSpace();
                if (stream.eol()) {
                  change(state, to_normal);
                } else {
                  stream.skipToEnd();
                  change(state, to_comment);
                  token = 'comment';
                }
              }
          
              return token;
            }
          
            ///////////////////////////////////////////////////////////////////////////
            ///////////////////////////////////////////////////////////////////////////
          
            function to_comment(stream, state) {
              return as_block(stream, state, 'comment');
            }
          
            function to_verbatim(stream, state) {
              return as_block(stream, state, 'meta');
            }
          
            function as_block(stream, state, token) {
              if (stream.eol() || stream.eatSpace()) {
                stream.skipToEnd();
                return token;
              } else {
                change(state, to_normal);
                return null;
              }
            }
          
            ///////////////////////////////////////////////////////////////////////////
            ///////////////////////////////////////////////////////////////////////////
          
            function to_mode(stream, state) {
          
              if (state.ctx.mode && state.ctx.local) {
          
                if (stream.sol()) {
                  if (!stream.eatSpace()) change(state, to_normal);
                  return null;
                }
          
                return state.ctx.mode.token(stream, state.ctx.local);
              }
          
              change(state, to_normal);
              return null;
            }
          
            ///////////////////////////////////////////////////////////////////////////
            ///////////////////////////////////////////////////////////////////////////
          
            function context(phase, stage, mode, local) {
              return {phase: phase, stage: stage, mode: mode, local: local};
            }
          
            function change(state, tok, ctx) {
              state.tok = tok;
              state.ctx = ctx || {};
            }
          
            function stage(state) {
              return state.ctx.stage || 0;
            }
          
            function phase(state) {
              return state.ctx.phase;
            }
          
            ///////////////////////////////////////////////////////////////////////////
            ///////////////////////////////////////////////////////////////////////////
          
            return {
              startState: function () {
                return {tok: to_normal, ctx: context(undefined, 0)};
              },
          
              copyState: function (state) {
                var ctx = state.ctx, tmp = state.tmp;
                if (ctx.local)
                  ctx = {mode: ctx.mode, local: CodeMirror.copyState(ctx.mode, ctx.local)};
                if (tmp)
                  tmp = {mode: tmp.mode, local: CodeMirror.copyState(tmp.mode, tmp.local)};
                return {tok: state.tok, ctx: ctx, tmp: tmp};
              },
          
              innerMode: function (state) {
                return state.tmp      ? {state: state.tmp.local, mode: state.tmp.mode}
                : state.ctx.mode ? {state: state.ctx.local, mode: state.ctx.mode}
                : null;
              },
          
              token: function (stream, state) {
                return state.tok(stream, state);
              }
            };
          }, 'python', 'stex');
          
          ///////////////////////////////////////////////////////////////////////////////
          ///////////////////////////////////////////////////////////////////////////////
          
          CodeMirror.defineMIME('text/x-rst', 'rst');
          
          ///////////////////////////////////////////////////////////////////////////////
          ///////////////////////////////////////////////////////////////////////////////
          
          });
          
      • ruby
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Ruby mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="ruby.js"></script>
          <style>
                .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}
                .cm-s-default span.cm-arrow { color: red; }
              </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Ruby</a>
            </ul>
          </div>
          
          <article>
          <h2>Ruby mode</h2>
          <form><textarea id="code" name="code">
          # Code from http://sandbox.mc.edu/~bennet/ruby/code/poly_rb.html
          #
          # This program evaluates polynomials.  It first asks for the coefficients
          # of a polynomial, which must be entered on one line, highest-order first.
          # It then requests values of x and will compute the value of the poly for
          # each x.  It will repeatly ask for x values, unless you the user enters
          # a blank line.  It that case, it will ask for another polynomial.  If the
          # user types quit for either input, the program immediately exits.
          #
          
          #
          # Function to evaluate a polynomial at x.  The polynomial is given
          # as a list of coefficients, from the greatest to the least.
          def polyval(x, coef)
              sum = 0
              coef = coef.clone           # Don't want to destroy the original
              while true
                  sum += coef.shift       # Add and remove the next coef
                  break if coef.empty?    # If no more, done entirely.
                  sum *= x                # This happens the right number of times.
              end
              return sum
          end
          
          #
          # Function to read a line containing a list of integers and return
          # them as an array of integers.  If the string conversion fails, it
          # throws TypeError.  If the input line is the word 'quit', then it
          # converts it to an end-of-file exception
          def readints(prompt)
              # Read a line
              print prompt
              line = readline.chomp
              raise EOFError.new if line == 'quit' # You can also use a real EOF.
                      
              # Go through each item on the line, converting each one and adding it
              # to retval.
              retval = [ ]
              for str in line.split(/\s+/)
                  if str =~ /^\-?\d+$/
                      retval.push(str.to_i)
                  else
                      raise TypeError.new
                  end
              end
          
              return retval
          end
          
          #
          # Take a coeff and an exponent and return the string representation, ignoring
          # the sign of the coefficient.
          def term_to_str(coef, exp)
              ret = ""
          
              # Show coeff, unless it's 1 or at the right
              coef = coef.abs
              ret = coef.to_s     unless coef == 1 && exp > 0
              ret += "x" if exp > 0                               # x if exponent not 0
              ret += "^" + exp.to_s if exp > 1                    # ^exponent, if > 1.
          
              return ret
          end
          
          #
          # Create a string of the polynomial in sort-of-readable form.
          def polystr(p)
              # Get the exponent of first coefficient, plus 1.
              exp = p.length
          
              # Assign exponents to each term, making pairs of coeff and exponent,
              # Then get rid of the zero terms.
              p = (p.map { |c| exp -= 1; [ c, exp ] }).select { |p| p[0] != 0 }
          
              # If there's nothing left, it's a zero
              return "0" if p.empty?
          
              # *** Now p is a non-empty list of [ coef, exponent ] pairs. ***
          
              # Convert the first term, preceded by a "-" if it's negative.
              result = (if p[0][0] < 0 then "-" else "" end) + term_to_str(*p[0])
          
              # Convert the rest of the terms, in each case adding the appropriate
              # + or - separating them.  
              for term in p[1...p.length]
                  # Add the separator then the rep. of the term.
                  result += (if term[0] < 0 then " - " else " + " end) + 
                          term_to_str(*term)
              end
          
              return result
          end
                  
          #
          # Run until some kind of endfile.
          begin
              # Repeat until an exception or quit gets us out.
              while true
                  # Read a poly until it works.  An EOF will except out of the
                  # program.
                  print "\n"
                  begin
                      poly = readints("Enter a polynomial coefficients: ")
                  rescue TypeError
                      print "Try again.\n"
                      retry
                  end
                  break if poly.empty?
          
                  # Read and evaluate x values until the user types a blank line.
                  # Again, an EOF will except out of the pgm.
                  while true
                      # Request an integer.
                      print "Enter x value or blank line: "
                      x = readline.chomp
                      break if x == ''
                      raise EOFError.new if x == 'quit'
          
                      # If it looks bad, let's try again.
                      if x !~ /^\-?\d+$/
                          print "That doesn't look like an integer.  Please try again.\n"
                          next
                      end
          
                      # Convert to an integer and print the result.
                      x = x.to_i
                      print "p(x) = ", polystr(poly), "\n"
                      print "p(", x, ") = ", polyval(x, poly), "\n"
                  end
              end
          rescue EOFError
              print "\n=== EOF ===\n"
          rescue Interrupt, SignalException
              print "\n=== Interrupted ===\n"
          else
              print "--- Bye ---\n"
          end
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  mode: "text/x-ruby",
                  matchBrackets: true,
                  indentUnit: 4
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-ruby</code>.</p>
          
              <p>Development of the CodeMirror Ruby mode was kindly sponsored
              by <a href="http://ubalo.com/">Ubalo</a>.</p>
          
            </article>
          
        • ruby.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("ruby", function(config) {
            function wordObj(words) {
              var o = {};
              for (var i = 0, e = words.length; i < e; ++i) o[words[i]] = true;
              return o;
            }
            var keywords = wordObj([
              "alias", "and", "BEGIN", "begin", "break", "case", "class", "def", "defined?", "do", "else",
              "elsif", "END", "end", "ensure", "false", "for", "if", "in", "module", "next", "not", "or",
              "redo", "rescue", "retry", "return", "self", "super", "then", "true", "undef", "unless",
              "until", "when", "while", "yield", "nil", "raise", "throw", "catch", "fail", "loop", "callcc",
              "caller", "lambda", "proc", "public", "protected", "private", "require", "load",
              "require_relative", "extend", "autoload", "__END__", "__FILE__", "__LINE__", "__dir__"
            ]);
            var indentWords = wordObj(["def", "class", "case", "for", "while", "until", "module", "then",
                                       "catch", "loop", "proc", "begin"]);
            var dedentWords = wordObj(["end", "until"]);
            var matching = {"[": "]", "{": "}", "(": ")"};
            var curPunc;
          
            function chain(newtok, stream, state) {
              state.tokenize.push(newtok);
              return newtok(stream, state);
            }
          
            function tokenBase(stream, state) {
              if (stream.sol() && stream.match("=begin") && stream.eol()) {
                state.tokenize.push(readBlockComment);
                return "comment";
              }
              if (stream.eatSpace()) return null;
              var ch = stream.next(), m;
              if (ch == "`" || ch == "'" || ch == '"') {
                return chain(readQuoted(ch, "string", ch == '"' || ch == "`"), stream, state);
              } else if (ch == "/") {
                var currentIndex = stream.current().length;
                if (stream.skipTo("/")) {
                  var search_till = stream.current().length;
                  stream.backUp(stream.current().length - currentIndex);
                  var balance = 0;  // balance brackets
                  while (stream.current().length < search_till) {
                    var chchr = stream.next();
                    if (chchr == "(") balance += 1;
                    else if (chchr == ")") balance -= 1;
                    if (balance < 0) break;
                  }
                  stream.backUp(stream.current().length - currentIndex);
                  if (balance == 0)
                    return chain(readQuoted(ch, "string-2", true), stream, state);
                }
                return "operator";
              } else if (ch == "%") {
                var style = "string", embed = true;
                if (stream.eat("s")) style = "atom";
                else if (stream.eat(/[WQ]/)) style = "string";
                else if (stream.eat(/[r]/)) style = "string-2";
                else if (stream.eat(/[wxq]/)) { style = "string"; embed = false; }
                var delim = stream.eat(/[^\w\s=]/);
                if (!delim) return "operator";
                if (matching.propertyIsEnumerable(delim)) delim = matching[delim];
                return chain(readQuoted(delim, style, embed, true), stream, state);
              } else if (ch == "#") {
                stream.skipToEnd();
                return "comment";
              } else if (ch == "<" && (m = stream.match(/^<-?[\`\"\']?([a-zA-Z_?]\w*)[\`\"\']?(?:;|$)/))) {
                return chain(readHereDoc(m[1]), stream, state);
              } else if (ch == "0") {
                if (stream.eat("x")) stream.eatWhile(/[\da-fA-F]/);
                else if (stream.eat("b")) stream.eatWhile(/[01]/);
                else stream.eatWhile(/[0-7]/);
                return "number";
              } else if (/\d/.test(ch)) {
                stream.match(/^[\d_]*(?:\.[\d_]+)?(?:[eE][+\-]?[\d_]+)?/);
                return "number";
              } else if (ch == "?") {
                while (stream.match(/^\\[CM]-/)) {}
                if (stream.eat("\\")) stream.eatWhile(/\w/);
                else stream.next();
                return "string";
              } else if (ch == ":") {
                if (stream.eat("'")) return chain(readQuoted("'", "atom", false), stream, state);
                if (stream.eat('"')) return chain(readQuoted('"', "atom", true), stream, state);
          
                // :> :>> :< :<< are valid symbols
                if (stream.eat(/[\<\>]/)) {
                  stream.eat(/[\<\>]/);
                  return "atom";
                }
          
                // :+ :- :/ :* :| :& :! are valid symbols
                if (stream.eat(/[\+\-\*\/\&\|\:\!]/)) {
                  return "atom";
                }
          
                // Symbols can't start by a digit
                if (stream.eat(/[a-zA-Z$@_\xa1-\uffff]/)) {
                  stream.eatWhile(/[\w$\xa1-\uffff]/);
                  // Only one ? ! = is allowed and only as the last character
                  stream.eat(/[\?\!\=]/);
                  return "atom";
                }
                return "operator";
              } else if (ch == "@" && stream.match(/^@?[a-zA-Z_\xa1-\uffff]/)) {
                stream.eat("@");
                stream.eatWhile(/[\w\xa1-\uffff]/);
                return "variable-2";
              } else if (ch == "$") {
                if (stream.eat(/[a-zA-Z_]/)) {
                  stream.eatWhile(/[\w]/);
                } else if (stream.eat(/\d/)) {
                  stream.eat(/\d/);
                } else {
                  stream.next(); // Must be a special global like $: or $!
                }
                return "variable-3";
              } else if (/[a-zA-Z_\xa1-\uffff]/.test(ch)) {
                stream.eatWhile(/[\w\xa1-\uffff]/);
                stream.eat(/[\?\!]/);
                if (stream.eat(":")) return "atom";
                return "ident";
              } else if (ch == "|" && (state.varList || state.lastTok == "{" || state.lastTok == "do")) {
                curPunc = "|";
                return null;
              } else if (/[\(\)\[\]{}\\;]/.test(ch)) {
                curPunc = ch;
                return null;
              } else if (ch == "-" && stream.eat(">")) {
                return "arrow";
              } else if (/[=+\-\/*:\.^%<>~|]/.test(ch)) {
                var more = stream.eatWhile(/[=+\-\/*:\.^%<>~|]/);
                if (ch == "." && !more) curPunc = ".";
                return "operator";
              } else {
                return null;
              }
            }
          
            function tokenBaseUntilBrace(depth) {
              if (!depth) depth = 1;
              return function(stream, state) {
                if (stream.peek() == "}") {
                  if (depth == 1) {
                    state.tokenize.pop();
                    return state.tokenize[state.tokenize.length-1](stream, state);
                  } else {
                    state.tokenize[state.tokenize.length - 1] = tokenBaseUntilBrace(depth - 1);
                  }
                } else if (stream.peek() == "{") {
                  state.tokenize[state.tokenize.length - 1] = tokenBaseUntilBrace(depth + 1);
                }
                return tokenBase(stream, state);
              };
            }
            function tokenBaseOnce() {
              var alreadyCalled = false;
              return function(stream, state) {
                if (alreadyCalled) {
                  state.tokenize.pop();
                  return state.tokenize[state.tokenize.length-1](stream, state);
                }
                alreadyCalled = true;
                return tokenBase(stream, state);
              };
            }
            function readQuoted(quote, style, embed, unescaped) {
              return function(stream, state) {
                var escaped = false, ch;
          
                if (state.context.type === 'read-quoted-paused') {
                  state.context = state.context.prev;
                  stream.eat("}");
                }
          
                while ((ch = stream.next()) != null) {
                  if (ch == quote && (unescaped || !escaped)) {
                    state.tokenize.pop();
                    break;
                  }
                  if (embed && ch == "#" && !escaped) {
                    if (stream.eat("{")) {
                      if (quote == "}") {
                        state.context = {prev: state.context, type: 'read-quoted-paused'};
                      }
                      state.tokenize.push(tokenBaseUntilBrace());
                      break;
                    } else if (/[@\$]/.test(stream.peek())) {
                      state.tokenize.push(tokenBaseOnce());
                      break;
                    }
                  }
                  escaped = !escaped && ch == "\\";
                }
                return style;
              };
            }
            function readHereDoc(phrase) {
              return function(stream, state) {
                if (stream.match(phrase)) state.tokenize.pop();
                else stream.skipToEnd();
                return "string";
              };
            }
            function readBlockComment(stream, state) {
              if (stream.sol() && stream.match("=end") && stream.eol())
                state.tokenize.pop();
              stream.skipToEnd();
              return "comment";
            }
          
            return {
              startState: function() {
                return {tokenize: [tokenBase],
                        indented: 0,
                        context: {type: "top", indented: -config.indentUnit},
                        continuedLine: false,
                        lastTok: null,
                        varList: false};
              },
          
              token: function(stream, state) {
                curPunc = null;
                if (stream.sol()) state.indented = stream.indentation();
                var style = state.tokenize[state.tokenize.length-1](stream, state), kwtype;
                var thisTok = curPunc;
                if (style == "ident") {
                  var word = stream.current();
                  style = state.lastTok == "." ? "property"
                    : keywords.propertyIsEnumerable(stream.current()) ? "keyword"
                    : /^[A-Z]/.test(word) ? "tag"
                    : (state.lastTok == "def" || state.lastTok == "class" || state.varList) ? "def"
                    : "variable";
                  if (style == "keyword") {
                    thisTok = word;
                    if (indentWords.propertyIsEnumerable(word)) kwtype = "indent";
                    else if (dedentWords.propertyIsEnumerable(word)) kwtype = "dedent";
                    else if ((word == "if" || word == "unless") && stream.column() == stream.indentation())
                      kwtype = "indent";
                    else if (word == "do" && state.context.indented < state.indented)
                      kwtype = "indent";
                  }
                }
                if (curPunc || (style && style != "comment")) state.lastTok = thisTok;
                if (curPunc == "|") state.varList = !state.varList;
          
                if (kwtype == "indent" || /[\(\[\{]/.test(curPunc))
                  state.context = {prev: state.context, type: curPunc || style, indented: state.indented};
                else if ((kwtype == "dedent" || /[\)\]\}]/.test(curPunc)) && state.context.prev)
                  state.context = state.context.prev;
          
                if (stream.eol())
                  state.continuedLine = (curPunc == "\\" || style == "operator");
                return style;
              },
          
              indent: function(state, textAfter) {
                if (state.tokenize[state.tokenize.length-1] != tokenBase) return 0;
                var firstChar = textAfter && textAfter.charAt(0);
                var ct = state.context;
                var closing = ct.type == matching[firstChar] ||
                  ct.type == "keyword" && /^(?:end|until|else|elsif|when|rescue)\b/.test(textAfter);
                return ct.indented + (closing ? 0 : config.indentUnit) +
                  (state.continuedLine ? config.indentUnit : 0);
              },
          
              electricChars: "}de", // enD and rescuE
              lineComment: "#"
            };
          });
          
          CodeMirror.defineMIME("text/x-ruby", "ruby");
          
          });
          
        • test.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function() {
            var mode = CodeMirror.getMode({indentUnit: 2}, "ruby");
            function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
          
            MT("divide_equal_operator",
               "[variable bar] [operator /=] [variable foo]");
          
            MT("divide_equal_operator_no_spacing",
               "[variable foo][operator /=][number 42]");
          
          })();
          
      • rust
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Rust mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/mode/simple.js"></script>
          <script src="rust.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Rust</a>
            </ul>
          </div>
          
          <article>
          <h2>Rust mode</h2>
          
          
          <div><textarea id="code" name="code">
          // Demo code.
          
          type foo<T> = int;
          enum bar {
              some(int, foo<float>),
              none
          }
          
          fn check_crate(x: int) {
              let v = 10;
              match foo {
                  1 ... 3 {
                      print_foo();
                      if x {
                          blah().to_string();
                      }
                  }
                  (x, y) { "bye" }
                  _ { "hi" }
              }
          }
          </textarea></div>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  lineWrapping: true,
                  indentUnit: 4,
                  mode: "rust"
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-rustsrc</code>.</p>
            </article>
          
        • rust.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("../../addon/mode/simple"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "../../addon/mode/simple"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineSimpleMode("rust",{
            start:[
              // string and byte string
              {regex: /b?"(?:[^\\]|\\.)*?"/, token: "string"},
              // raw string and raw byte string
              {regex: /(b?r)(#*)(".*?)("\2)/, token: ["string", "string", "string", "string"]},
              // character
              {regex: /'(?:[^'\\]|\\(?:[nrt0'"]|x[\da-fA-F]{2}|u\{[\da-fA-F]{6}\}))'/, token: "string-2"},
              // byte
              {regex: /b'(?:[^']|\\(?:['\\nrt0]|x[\da-fA-F]{2}))'/, token: "string-2"},
          
              {regex: /(?:(?:[0-9][0-9_]*)(?:(?:[Ee][+-]?[0-9_]+)|\.[0-9_]+(?:[Ee][+-]?[0-9_]+)?)(?:f32|f64)?)|(?:0(?:b[01_]+|(?:o[0-7_]+)|(?:x[0-9a-fA-F_]+))|(?:[0-9][0-9_]*))(?:u8|u16|u32|u64|i8|i16|i32|i64|isize|usize)?/,
               token: "number"},
              {regex: /(let(?:\s+mut)?|fn|enum|mod|struct|type)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)/, token: ["keyword", null, "def"]},
              {regex: /(?:abstract|alignof|as|box|break|continue|const|crate|do|else|enum|extern|fn|for|final|if|impl|in|loop|macro|match|mod|move|offsetof|override|priv|proc|pub|pure|ref|return|self|sizeof|static|struct|super|trait|type|typeof|unsafe|unsized|use|virtual|where|while|yield)\b/, token: "keyword"},
              {regex: /\b(?:Self|isize|usize|char|bool|u8|u16|u32|u64|f16|f32|f64|i8|i16|i32|i64|str|Option)\b/, token: "atom"},
              {regex: /\b(?:true|false|Some|None|Ok|Err)\b/, token: "builtin"},
              {regex: /\b(fn)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)/,
               token: ["keyword", null ,"def"]},
              {regex: /#!?\[.*\]/, token: "meta"},
              {regex: /\/\/.*/, token: "comment"},
              {regex: /\/\*/, token: "comment", next: "comment"},
              {regex: /[-+\/*=<>!]+/, token: "operator"},
              {regex: /[a-zA-Z_]\w*!/,token: "variable-3"},
              {regex: /[a-zA-Z_]\w*/, token: "variable"},
              {regex: /[\{\[\(]/, indent: true},
              {regex: /[\}\]\)]/, dedent: true}
            ],
            comment: [
              {regex: /.*?\*\//, token: "comment", next: "start"},
              {regex: /.*/, token: "comment"}
            ],
            meta: {
              dontIndentStates: ["comment"],
              electricInput: /^\s*\}$/,
              blockCommentStart: "/*",
              blockCommentEnd: "*/",
              lineComment: "//",
              fold: "brace"
            }
          });
          
          
          CodeMirror.defineMIME("text/x-rustsrc", "rust");
          });
          
        • test.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function() {
            var mode = CodeMirror.getMode({indentUnit: 4}, "rust");
            function MT(name) {test.mode(name, mode, Array.prototype.slice.call(arguments, 1));}
          
            MT('integer_test',
               '[number 123i32]',
               '[number 123u32]',
               '[number 123_u32]',
               '[number 0xff_u8]',
               '[number 0o70_i16]',
               '[number 0b1111_1111_1001_0000_i32]',
               '[number 0usize]');
          
            MT('float_test',
               '[number 123.0f64]',
               '[number 0.1f64]',
               '[number 0.1f32]',
               '[number 12E+99_f64]');
          
            MT('string-literals-test',
               '[string "foo"]',
               '[string r"foo"]',
               '[string "\\"foo\\""]',
               '[string r#""foo""#]',
               '[string "foo #\\"# bar"]',
               '[string r##"foo #"# bar"##]',
          
               '[string b"foo"]',
               '[string br"foo"]',
               '[string b"\\"foo\\""]',
               '[string br#""foo""#]',
               '[string br##"foo #" bar"##]',
          
               "[string-2 'h']",
               "[string-2 b'h']");
          
          })();
          
      • sass
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Sass mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="sass.js"></script>
          <style>.CodeMirror {border: 1px solid #ddd; font-size:12px; height: 400px}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Sass</a>
            </ul>
          </div>
          
          <article>
          <h2>Sass mode</h2>
          <form><textarea id="code" name="code">// Variable Definitions
          
          $page-width:    800px
          $sidebar-width: 200px
          $primary-color: #eeeeee
          
          // Global Attributes
          
          body
            font:
              family: sans-serif
              size: 30em
              weight: bold
          
          // Scoped Styles
          
          #contents
            width: $page-width
            #sidebar
              float: right
              width: $sidebar-width
            #main
              width: $page-width - $sidebar-width
              background: $primary-color
              h2
                color: blue
          
          #footer
            height: 200px
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers : true,
                  matchBrackets : true
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-sass</code>.</p>
            </article>
          
        • sass.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("sass", function(config) {
            function tokenRegexp(words) {
              return new RegExp("^" + words.join("|"));
            }
          
            var keywords = ["true", "false", "null", "auto"];
            var keywordsRegexp = new RegExp("^" + keywords.join("|"));
          
            var operators = ["\\(", "\\)", "=", ">", "<", "==", ">=", "<=", "\\+", "-",
                             "\\!=", "/", "\\*", "%", "and", "or", "not", ";","\\{","\\}",":"];
            var opRegexp = tokenRegexp(operators);
          
            var pseudoElementsRegexp = /^::?[a-zA-Z_][\w\-]*/;
          
            function urlTokens(stream, state) {
              var ch = stream.peek();
          
              if (ch === ")") {
                stream.next();
                state.tokenizer = tokenBase;
                return "operator";
              } else if (ch === "(") {
                stream.next();
                stream.eatSpace();
          
                return "operator";
              } else if (ch === "'" || ch === '"') {
                state.tokenizer = buildStringTokenizer(stream.next());
                return "string";
              } else {
                state.tokenizer = buildStringTokenizer(")", false);
                return "string";
              }
            }
            function comment(indentation, multiLine) {
              return function(stream, state) {
                if (stream.sol() && stream.indentation() <= indentation) {
                  state.tokenizer = tokenBase;
                  return tokenBase(stream, state);
                }
          
                if (multiLine && stream.skipTo("*/")) {
                  stream.next();
                  stream.next();
                  state.tokenizer = tokenBase;
                } else {
                  stream.skipToEnd();
                }
          
                return "comment";
              };
            }
          
            function buildStringTokenizer(quote, greedy) {
              if (greedy == null) { greedy = true; }
          
              function stringTokenizer(stream, state) {
                var nextChar = stream.next();
                var peekChar = stream.peek();
                var previousChar = stream.string.charAt(stream.pos-2);
          
                var endingString = ((nextChar !== "\\" && peekChar === quote) || (nextChar === quote && previousChar !== "\\"));
          
                if (endingString) {
                  if (nextChar !== quote && greedy) { stream.next(); }
                  state.tokenizer = tokenBase;
                  return "string";
                } else if (nextChar === "#" && peekChar === "{") {
                  state.tokenizer = buildInterpolationTokenizer(stringTokenizer);
                  stream.next();
                  return "operator";
                } else {
                  return "string";
                }
              }
          
              return stringTokenizer;
            }
          
            function buildInterpolationTokenizer(currentTokenizer) {
              return function(stream, state) {
                if (stream.peek() === "}") {
                  stream.next();
                  state.tokenizer = currentTokenizer;
                  return "operator";
                } else {
                  return tokenBase(stream, state);
                }
              };
            }
          
            function indent(state) {
              if (state.indentCount == 0) {
                state.indentCount++;
                var lastScopeOffset = state.scopes[0].offset;
                var currentOffset = lastScopeOffset + config.indentUnit;
                state.scopes.unshift({ offset:currentOffset });
              }
            }
          
            function dedent(state) {
              if (state.scopes.length == 1) return;
          
              state.scopes.shift();
            }
          
            function tokenBase(stream, state) {
              var ch = stream.peek();
          
              // Comment
              if (stream.match("/*")) {
                state.tokenizer = comment(stream.indentation(), true);
                return state.tokenizer(stream, state);
              }
              if (stream.match("//")) {
                state.tokenizer = comment(stream.indentation(), false);
                return state.tokenizer(stream, state);
              }
          
              // Interpolation
              if (stream.match("#{")) {
                state.tokenizer = buildInterpolationTokenizer(tokenBase);
                return "operator";
              }
          
              // Strings
              if (ch === '"' || ch === "'") {
                stream.next();
                state.tokenizer = buildStringTokenizer(ch);
                return "string";
              }
          
              if(!state.cursorHalf){// state.cursorHalf === 0
              // first half i.e. before : for key-value pairs
              // including selectors
          
                if (ch === ".") {
                  stream.next();
                  if (stream.match(/^[\w-]+/)) {
                    indent(state);
                    return "atom";
                  } else if (stream.peek() === "#") {
                    indent(state);
                    return "atom";
                  }
                }
          
                if (ch === "#") {
                  stream.next();
                  // ID selectors
                  if (stream.match(/^[\w-]+/)) {
                    indent(state);
                    return "atom";
                  }
                  if (stream.peek() === "#") {
                    indent(state);
                    return "atom";
                  }
                }
          
                // Variables
                if (ch === "$") {
                  stream.next();
                  stream.eatWhile(/[\w-]/);
                  return "variable-2";
                }
          
                // Numbers
                if (stream.match(/^-?[0-9\.]+/))
                  return "number";
          
                // Units
                if (stream.match(/^(px|em|in)\b/))
                  return "unit";
          
                if (stream.match(keywordsRegexp))
                  return "keyword";
          
                if (stream.match(/^url/) && stream.peek() === "(") {
                  state.tokenizer = urlTokens;
                  return "atom";
                }
          
                if (ch === "=") {
                  // Match shortcut mixin definition
                  if (stream.match(/^=[\w-]+/)) {
                    indent(state);
                    return "meta";
                  }
                }
          
                if (ch === "+") {
                  // Match shortcut mixin definition
                  if (stream.match(/^\+[\w-]+/)){
                    return "variable-3";
                  }
                }
          
                if(ch === "@"){
                  if(stream.match(/@extend/)){
                    if(!stream.match(/\s*[\w]/))
                      dedent(state);
                  }
                }
          
          
                // Indent Directives
                if (stream.match(/^@(else if|if|media|else|for|each|while|mixin|function)/)) {
                  indent(state);
                  return "meta";
                }
          
                // Other Directives
                if (ch === "@") {
                  stream.next();
                  stream.eatWhile(/[\w-]/);
                  return "meta";
                }
          
                if (stream.eatWhile(/[\w-]/)){
                  if(stream.match(/ *: *[\w-\+\$#!\("']/,false)){
                    return "property";
                  }
                  else if(stream.match(/ *:/,false)){
                    indent(state);
                    state.cursorHalf = 1;
                    return "atom";
                  }
                  else if(stream.match(/ *,/,false)){
                    return "atom";
                  }
                  else{
                    indent(state);
                    return "atom";
                  }
                }
          
                if(ch === ":"){
                  if (stream.match(pseudoElementsRegexp)){ // could be a pseudo-element
                    return "keyword";
                  }
                  stream.next();
                  state.cursorHalf=1;
                  return "operator";
                }
          
              } // cursorHalf===0 ends here
              else{
          
                if (ch === "#") {
                  stream.next();
                  // Hex numbers
                  if (stream.match(/[0-9a-fA-F]{6}|[0-9a-fA-F]{3}/)){
                    if(!stream.peek()){
                      state.cursorHalf = 0;
                    }
                    return "number";
                  }
                }
          
                // Numbers
                if (stream.match(/^-?[0-9\.]+/)){
                  if(!stream.peek()){
                    state.cursorHalf = 0;
                  }
                  return "number";
                }
          
                // Units
                if (stream.match(/^(px|em|in)\b/)){
                  if(!stream.peek()){
                    state.cursorHalf = 0;
                  }
                  return "unit";
                }
          
                if (stream.match(keywordsRegexp)){
                  if(!stream.peek()){
                    state.cursorHalf = 0;
                  }
                  return "keyword";
                }
          
                if (stream.match(/^url/) && stream.peek() === "(") {
                  state.tokenizer = urlTokens;
                  if(!stream.peek()){
                    state.cursorHalf = 0;
                  }
                  return "atom";
                }
          
                // Variables
                if (ch === "$") {
                  stream.next();
                  stream.eatWhile(/[\w-]/);
                  if(!stream.peek()){
                    state.cursorHalf = 0;
                  }
                  return "variable-3";
                }
          
                // bang character for !important, !default, etc.
                if (ch === "!") {
                  stream.next();
                  if(!stream.peek()){
                    state.cursorHalf = 0;
                  }
                  return stream.match(/^[\w]+/) ? "keyword": "operator";
                }
          
                if (stream.match(opRegexp)){
                  if(!stream.peek()){
                    state.cursorHalf = 0;
                  }
                  return "operator";
                }
          
                // attributes
                if (stream.eatWhile(/[\w-]/)) {
                  if(!stream.peek()){
                    state.cursorHalf = 0;
                  }
                  return "attribute";
                }
          
                //stream.eatSpace();
                if(!stream.peek()){
                  state.cursorHalf = 0;
                  return null;
                }
          
              } // else ends here
          
              if (stream.match(opRegexp))
                return "operator";
          
              // If we haven't returned by now, we move 1 character
              // and return an error
              stream.next();
              return null;
            }
          
            function tokenLexer(stream, state) {
              if (stream.sol()) state.indentCount = 0;
              var style = state.tokenizer(stream, state);
              var current = stream.current();
          
              if (current === "@return" || current === "}"){
                dedent(state);
              }
          
              if (style !== null) {
                var startOfToken = stream.pos - current.length;
          
                var withCurrentIndent = startOfToken + (config.indentUnit * state.indentCount);
          
                var newScopes = [];
          
                for (var i = 0; i < state.scopes.length; i++) {
                  var scope = state.scopes[i];
          
                  if (scope.offset <= withCurrentIndent)
                    newScopes.push(scope);
                }
          
                state.scopes = newScopes;
              }
          
          
              return style;
            }
          
            return {
              startState: function() {
                return {
                  tokenizer: tokenBase,
                  scopes: [{offset: 0, type: "sass"}],
                  indentCount: 0,
                  cursorHalf: 0,  // cursor half tells us if cursor lies after (1)
                                  // or before (0) colon (well... more or less)
                  definedVars: [],
                  definedMixins: []
                };
              },
              token: function(stream, state) {
                var style = tokenLexer(stream, state);
          
                state.lastToken = { style: style, content: stream.current() };
          
                return style;
              },
          
              indent: function(state) {
                return state.scopes[0].offset;
              }
            };
          });
          
          CodeMirror.defineMIME("text/x-sass", "sass");
          
          });
          
      • scheme
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Scheme mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="scheme.js"></script>
          <style>.CodeMirror {background: #f8f8f8;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Scheme</a>
            </ul>
          </div>
          
          <article>
          <h2>Scheme mode</h2>
          <form><textarea id="code" name="code">
          ; See if the input starts with a given symbol.
          (define (match-symbol input pattern)
            (cond ((null? (remain input)) #f)
          	((eqv? (car (remain input)) pattern) (r-cdr input))
          	(else #f)))
          
          ; Allow the input to start with one of a list of patterns.
          (define (match-or input pattern)
            (cond ((null? pattern) #f)
          	((match-pattern input (car pattern)))
          	(else (match-or input (cdr pattern)))))
          
          ; Allow a sequence of patterns.
          (define (match-seq input pattern)
            (if (null? pattern)
                input
                (let ((match (match-pattern input (car pattern))))
          	(if match (match-seq match (cdr pattern)) #f))))
          
          ; Match with the pattern but no problem if it does not match.
          (define (match-opt input pattern)
            (let ((match (match-pattern input (car pattern))))
              (if match match input)))
          
          ; Match anything (other than '()), until pattern is found. The rather
          ; clumsy form of requiring an ending pattern is needed to decide where
          ; the end of the match is. If none is given, this will match the rest
          ; of the sentence.
          (define (match-any input pattern)
            (cond ((null? (remain input)) #f)
          	((null? pattern) (f-cons (remain input) (clear-remain input)))
          	(else
          	 (let ((accum-any (collector)))
          	   (define (match-pattern-any input pattern)
          	     (cond ((null? (remain input)) #f)
          		   (else (accum-any (car (remain input)))
          			 (cond ((match-pattern (r-cdr input) pattern))
          			       (else (match-pattern-any (r-cdr input) pattern))))))
          	   (let ((retval (match-pattern-any input (car pattern))))
          	     (if retval
          		 (f-cons (accum-any) retval)
          		 #f))))))
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {});
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-scheme</code>.</p>
          
            </article>
          
        • scheme.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          /**
           * Author: Koh Zi Han, based on implementation by Koh Zi Chun
           */
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("scheme", function () {
              var BUILTIN = "builtin", COMMENT = "comment", STRING = "string",
                  ATOM = "atom", NUMBER = "number", BRACKET = "bracket";
              var INDENT_WORD_SKIP = 2;
          
              function makeKeywords(str) {
                  var obj = {}, words = str.split(" ");
                  for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
                  return obj;
              }
          
              var keywords = makeKeywords("λ case-lambda call/cc class define-class exit-handler field import inherit init-field interface let*-values let-values let/ec mixin opt-lambda override protect provide public rename require require-for-syntax syntax syntax-case syntax-error unit/sig unless when with-syntax and begin call-with-current-continuation call-with-input-file call-with-output-file case cond define define-syntax delay do dynamic-wind else for-each if lambda let let* let-syntax letrec letrec-syntax map or syntax-rules abs acos angle append apply asin assoc assq assv atan boolean? caar cadr call-with-input-file call-with-output-file call-with-values car cdddar cddddr cdr ceiling char->integer char-alphabetic? char-ci<=? char-ci<? char-ci=? char-ci>=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char<? char=? char>=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt #f floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci<? string-ci=? string-ci>=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string<? string=? string>=? string>? string? substring symbol->string symbol? #t tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?");
              var indentKeys = makeKeywords("define let letrec let* lambda");
          
              function stateStack(indent, type, prev) { // represents a state stack object
                  this.indent = indent;
                  this.type = type;
                  this.prev = prev;
              }
          
              function pushStack(state, indent, type) {
                  state.indentStack = new stateStack(indent, type, state.indentStack);
              }
          
              function popStack(state) {
                  state.indentStack = state.indentStack.prev;
              }
          
              var binaryMatcher = new RegExp(/^(?:[-+]i|[-+][01]+#*(?:\/[01]+#*)?i|[-+]?[01]+#*(?:\/[01]+#*)?@[-+]?[01]+#*(?:\/[01]+#*)?|[-+]?[01]+#*(?:\/[01]+#*)?[-+](?:[01]+#*(?:\/[01]+#*)?)?i|[-+]?[01]+#*(?:\/[01]+#*)?)(?=[()\s;"]|$)/i);
              var octalMatcher = new RegExp(/^(?:[-+]i|[-+][0-7]+#*(?:\/[0-7]+#*)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?@[-+]?[0-7]+#*(?:\/[0-7]+#*)?|[-+]?[0-7]+#*(?:\/[0-7]+#*)?[-+](?:[0-7]+#*(?:\/[0-7]+#*)?)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?)(?=[()\s;"]|$)/i);
              var hexMatcher = new RegExp(/^(?:[-+]i|[-+][\da-f]+#*(?:\/[\da-f]+#*)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?@[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?[-+](?:[\da-f]+#*(?:\/[\da-f]+#*)?)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?)(?=[()\s;"]|$)/i);
              var decimalMatcher = new RegExp(/^(?:[-+]i|[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)i|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)@[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)?i|(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*))(?=[()\s;"]|$)/i);
          
              function isBinaryNumber (stream) {
                  return stream.match(binaryMatcher);
              }
          
              function isOctalNumber (stream) {
                  return stream.match(octalMatcher);
              }
          
              function isDecimalNumber (stream, backup) {
                  if (backup === true) {
                      stream.backUp(1);
                  }
                  return stream.match(decimalMatcher);
              }
          
              function isHexNumber (stream) {
                  return stream.match(hexMatcher);
              }
          
              return {
                  startState: function () {
                      return {
                          indentStack: null,
                          indentation: 0,
                          mode: false,
                          sExprComment: false
                      };
                  },
          
                  token: function (stream, state) {
                      if (state.indentStack == null && stream.sol()) {
                          // update indentation, but only if indentStack is empty
                          state.indentation = stream.indentation();
                      }
          
                      // skip spaces
                      if (stream.eatSpace()) {
                          return null;
                      }
                      var returnType = null;
          
                      switch(state.mode){
                          case "string": // multi-line string parsing mode
                              var next, escaped = false;
                              while ((next = stream.next()) != null) {
                                  if (next == "\"" && !escaped) {
          
                                      state.mode = false;
                                      break;
                                  }
                                  escaped = !escaped && next == "\\";
                              }
                              returnType = STRING; // continue on in scheme-string mode
                              break;
                          case "comment": // comment parsing mode
                              var next, maybeEnd = false;
                              while ((next = stream.next()) != null) {
                                  if (next == "#" && maybeEnd) {
          
                                      state.mode = false;
                                      break;
                                  }
                                  maybeEnd = (next == "|");
                              }
                              returnType = COMMENT;
                              break;
                          case "s-expr-comment": // s-expr commenting mode
                              state.mode = false;
                              if(stream.peek() == "(" || stream.peek() == "["){
                                  // actually start scheme s-expr commenting mode
                                  state.sExprComment = 0;
                              }else{
                                  // if not we just comment the entire of the next token
                                  stream.eatWhile(/[^/s]/); // eat non spaces
                                  returnType = COMMENT;
                                  break;
                              }
                          default: // default parsing mode
                              var ch = stream.next();
          
                              if (ch == "\"") {
                                  state.mode = "string";
                                  returnType = STRING;
          
                              } else if (ch == "'") {
                                  returnType = ATOM;
                              } else if (ch == '#') {
                                  if (stream.eat("|")) {                    // Multi-line comment
                                      state.mode = "comment"; // toggle to comment mode
                                      returnType = COMMENT;
                                  } else if (stream.eat(/[tf]/i)) {            // #t/#f (atom)
                                      returnType = ATOM;
                                  } else if (stream.eat(';')) {                // S-Expr comment
                                      state.mode = "s-expr-comment";
                                      returnType = COMMENT;
                                  } else {
                                      var numTest = null, hasExactness = false, hasRadix = true;
                                      if (stream.eat(/[ei]/i)) {
                                          hasExactness = true;
                                      } else {
                                          stream.backUp(1);       // must be radix specifier
                                      }
                                      if (stream.match(/^#b/i)) {
                                          numTest = isBinaryNumber;
                                      } else if (stream.match(/^#o/i)) {
                                          numTest = isOctalNumber;
                                      } else if (stream.match(/^#x/i)) {
                                          numTest = isHexNumber;
                                      } else if (stream.match(/^#d/i)) {
                                          numTest = isDecimalNumber;
                                      } else if (stream.match(/^[-+0-9.]/, false)) {
                                          hasRadix = false;
                                          numTest = isDecimalNumber;
                                      // re-consume the intial # if all matches failed
                                      } else if (!hasExactness) {
                                          stream.eat('#');
                                      }
                                      if (numTest != null) {
                                          if (hasRadix && !hasExactness) {
                                              // consume optional exactness after radix
                                              stream.match(/^#[ei]/i);
                                          }
                                          if (numTest(stream))
                                              returnType = NUMBER;
                                      }
                                  }
                              } else if (/^[-+0-9.]/.test(ch) && isDecimalNumber(stream, true)) { // match non-prefixed number, must be decimal
                                  returnType = NUMBER;
                              } else if (ch == ";") { // comment
                                  stream.skipToEnd(); // rest of the line is a comment
                                  returnType = COMMENT;
                              } else if (ch == "(" || ch == "[") {
                                var keyWord = ''; var indentTemp = stream.column(), letter;
                                  /**
                                  Either
                                  (indent-word ..
                                  (non-indent-word ..
                                  (;something else, bracket, etc.
                                  */
          
                                  while ((letter = stream.eat(/[^\s\(\[\;\)\]]/)) != null) {
                                      keyWord += letter;
                                  }
          
                                  if (keyWord.length > 0 && indentKeys.propertyIsEnumerable(keyWord)) { // indent-word
          
                                      pushStack(state, indentTemp + INDENT_WORD_SKIP, ch);
                                  } else { // non-indent word
                                      // we continue eating the spaces
                                      stream.eatSpace();
                                      if (stream.eol() || stream.peek() == ";") {
                                          // nothing significant after
                                          // we restart indentation 1 space after
                                          pushStack(state, indentTemp + 1, ch);
                                      } else {
                                          pushStack(state, indentTemp + stream.current().length, ch); // else we match
                                      }
                                  }
                                  stream.backUp(stream.current().length - 1); // undo all the eating
          
                                  if(typeof state.sExprComment == "number") state.sExprComment++;
          
                                  returnType = BRACKET;
                              } else if (ch == ")" || ch == "]") {
                                  returnType = BRACKET;
                                  if (state.indentStack != null && state.indentStack.type == (ch == ")" ? "(" : "[")) {
                                      popStack(state);
          
                                      if(typeof state.sExprComment == "number"){
                                          if(--state.sExprComment == 0){
                                              returnType = COMMENT; // final closing bracket
                                              state.sExprComment = false; // turn off s-expr commenting mode
                                          }
                                      }
                                  }
                              } else {
                                  stream.eatWhile(/[\w\$_\-!$%&*+\.\/:<=>?@\^~]/);
          
                                  if (keywords && keywords.propertyIsEnumerable(stream.current())) {
                                      returnType = BUILTIN;
                                  } else returnType = "variable";
                              }
                      }
                      return (typeof state.sExprComment == "number") ? COMMENT : returnType;
                  },
          
                  indent: function (state) {
                      if (state.indentStack == null) return state.indentation;
                      return state.indentStack.indent;
                  },
          
                  closeBrackets: {pairs: "()[]{}\"\""},
                  lineComment: ";;"
              };
          });
          
          CodeMirror.defineMIME("text/x-scheme", "scheme");
          
          });
          
      • shell
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Shell mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel=stylesheet href=../../lib/codemirror.css>
          <script src=../../lib/codemirror.js></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src=shell.js></script>
          <style type=text/css>
            .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}
          </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Shell</a>
            </ul>
          </div>
          
          <article>
          <h2>Shell mode</h2>
          
          
          <textarea id=code>
          #!/bin/bash
          
          # clone the repository
          git clone http://github.com/garden/tree
          
          # generate HTTPS credentials
          cd tree
          openssl genrsa -aes256 -out https.key 1024
          openssl req -new -nodes -key https.key -out https.csr
          openssl x509 -req -days 365 -in https.csr -signkey https.key -out https.crt
          cp https.key{,.orig}
          openssl rsa -in https.key.orig -out https.key
          
          # start the server in HTTPS mode
          cd web
          sudo node ../server.js 443 'yes' &gt;&gt; ../node.log &amp;
          
          # here is how to stop the server
          for pid in `ps aux | grep 'node ../server.js' | awk '{print $2}'` ; do
            sudo kill -9 $pid 2&gt; /dev/null
          done
          
          exit 0</textarea>
          
          <script>
            var editor = CodeMirror.fromTextArea(document.getElementById('code'), {
              mode: 'shell',
              lineNumbers: true,
              matchBrackets: true
            });
          </script>
          
          <p><strong>MIME types defined:</strong> <code>text/x-sh</code>.</p>
          </article>
          
        • shell.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode('shell', function() {
          
            var words = {};
            function define(style, string) {
              var split = string.split(' ');
              for(var i = 0; i < split.length; i++) {
                words[split[i]] = style;
              }
            };
          
            // Atoms
            define('atom', 'true false');
          
            // Keywords
            define('keyword', 'if then do else elif while until for in esac fi fin ' +
              'fil done exit set unset export function');
          
            // Commands
            define('builtin', 'ab awk bash beep cat cc cd chown chmod chroot clear cp ' +
              'curl cut diff echo find gawk gcc get git grep kill killall ln ls make ' +
              'mkdir openssl mv nc node npm ping ps restart rm rmdir sed service sh ' +
              'shopt shred source sort sleep ssh start stop su sudo tee telnet top ' +
              'touch vi vim wall wc wget who write yes zsh');
          
            function tokenBase(stream, state) {
              if (stream.eatSpace()) return null;
          
              var sol = stream.sol();
              var ch = stream.next();
          
              if (ch === '\\') {
                stream.next();
                return null;
              }
              if (ch === '\'' || ch === '"' || ch === '`') {
                state.tokens.unshift(tokenString(ch));
                return tokenize(stream, state);
              }
              if (ch === '#') {
                if (sol && stream.eat('!')) {
                  stream.skipToEnd();
                  return 'meta'; // 'comment'?
                }
                stream.skipToEnd();
                return 'comment';
              }
              if (ch === '$') {
                state.tokens.unshift(tokenDollar);
                return tokenize(stream, state);
              }
              if (ch === '+' || ch === '=') {
                return 'operator';
              }
              if (ch === '-') {
                stream.eat('-');
                stream.eatWhile(/\w/);
                return 'attribute';
              }
              if (/\d/.test(ch)) {
                stream.eatWhile(/\d/);
                if(stream.eol() || !/\w/.test(stream.peek())) {
                  return 'number';
                }
              }
              stream.eatWhile(/[\w-]/);
              var cur = stream.current();
              if (stream.peek() === '=' && /\w+/.test(cur)) return 'def';
              return words.hasOwnProperty(cur) ? words[cur] : null;
            }
          
            function tokenString(quote) {
              return function(stream, state) {
                var next, end = false, escaped = false;
                while ((next = stream.next()) != null) {
                  if (next === quote && !escaped) {
                    end = true;
                    break;
                  }
                  if (next === '$' && !escaped && quote !== '\'') {
                    escaped = true;
                    stream.backUp(1);
                    state.tokens.unshift(tokenDollar);
                    break;
                  }
                  escaped = !escaped && next === '\\';
                }
                if (end || !escaped) {
                  state.tokens.shift();
                }
                return (quote === '`' || quote === ')' ? 'quote' : 'string');
              };
            };
          
            var tokenDollar = function(stream, state) {
              if (state.tokens.length > 1) stream.eat('$');
              var ch = stream.next(), hungry = /\w/;
              if (ch === '{') hungry = /[^}]/;
              if (ch === '(') {
                state.tokens[0] = tokenString(')');
                return tokenize(stream, state);
              }
              if (!/\d/.test(ch)) {
                stream.eatWhile(hungry);
                stream.eat('}');
              }
              state.tokens.shift();
              return 'def';
            };
          
            function tokenize(stream, state) {
              return (state.tokens[0] || tokenBase) (stream, state);
            };
          
            return {
              startState: function() {return {tokens:[]};},
              token: function(stream, state) {
                return tokenize(stream, state);
              },
              lineComment: '#',
              fold: "brace"
            };
          });
          
          CodeMirror.defineMIME('text/x-sh', 'shell');
          
          });
          
        • test.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function() {
            var mode = CodeMirror.getMode({}, "shell");
            function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
          
            MT("var",
               "text [def $var] text");
            MT("varBraces",
               "text[def ${var}]text");
            MT("varVar",
               "text [def $a$b] text");
            MT("varBracesVarBraces",
               "text[def ${a}${b}]text");
          
            MT("singleQuotedVar",
               "[string 'text $var text']");
            MT("singleQuotedVarBraces",
               "[string 'text ${var} text']");
          
            MT("doubleQuotedVar",
               '[string "text ][def $var][string  text"]');
            MT("doubleQuotedVarBraces",
               '[string "text][def ${var}][string text"]');
            MT("doubleQuotedVarPunct",
               '[string "text ][def $@][string  text"]');
            MT("doubleQuotedVarVar",
               '[string "][def $a$b][string "]');
            MT("doubleQuotedVarBracesVarBraces",
               '[string "][def ${a}${b}][string "]');
          
            MT("notAString",
               "text\\'text");
            MT("escapes",
               "outside\\'\\\"\\`\\\\[string \"inside\\`\\'\\\"\\\\`\\$notAVar\"]outside\\$\\(notASubShell\\)");
          
            MT("subshell",
               "[builtin echo] [quote $(whoami)] s log, stardate [quote `date`].");
            MT("doubleQuotedSubshell",
               "[builtin echo] [string \"][quote $(whoami)][string 's log, stardate `date`.\"]");
          
            MT("hashbang",
               "[meta #!/bin/bash]");
            MT("comment",
               "text [comment # Blurb]");
          
            MT("numbers",
               "[number 0] [number 1] [number 2]");
            MT("keywords",
               "[keyword while] [atom true]; [keyword do]",
               "  [builtin sleep] [number 3]",
               "[keyword done]");
            MT("options",
               "[builtin ls] [attribute -l] [attribute --human-readable]");
            MT("operator",
               "[def var][operator =]value");
          })();
          
      • sieve
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Sieve (RFC5228) mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="sieve.js"></script>
          <style>.CodeMirror {background: #f8f8f8;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Sieve (RFC5228)</a>
            </ul>
          </div>
          
          <article>
          <h2>Sieve (RFC5228) mode</h2>
          <form><textarea id="code" name="code">
          #
          # Example Sieve Filter
          # Declare any optional features or extension used by the script
          #
          
          require ["fileinto", "reject"];
          
          #
          # Reject any large messages (note that the four leading dots get
          # "stuffed" to three)
          #
          if size :over 1M
          {
            reject text:
          Please do not send me large attachments.
          Put your file on a server and send me the URL.
          Thank you.
          .... Fred
          .
          ;
            stop;
          }
          
          #
          # Handle messages from known mailing lists
          # Move messages from IETF filter discussion list to filter folder
          #
          if header :is "Sender" "owner-ietf-mta-filters@imc.org"
          {
            fileinto "filter";  # move to "filter" folder
          }
          #
          # Keep all messages to or from people in my company
          #
          elsif address :domain :is ["From", "To"] "example.com"
          {
            keep;               # keep in "In" folder
          }
          
          #
          # Try and catch unsolicited email.  If a message is not to me,
          # or it contains a subject known to be spam, file it away.
          #
          elsif anyof (not address :all :contains
                         ["To", "Cc", "Bcc"] "me@example.com",
                       header :matches "subject"
                         ["*make*money*fast*", "*university*dipl*mas*"])
          {
            # If message header does not contain my address,
            # it's from a list.
            fileinto "spam";   # move to "spam" folder
          }
          else
          {
            # Move all other (non-company) mail to "personal"
            # folder.
            fileinto "personal";
          }
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {});
              </script>
          
              <p><strong>MIME types defined:</strong> <code>application/sieve</code>.</p>
          
            </article>
          
        • sieve.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("sieve", function(config) {
            function words(str) {
              var obj = {}, words = str.split(" ");
              for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
              return obj;
            }
          
            var keywords = words("if elsif else stop require");
            var atoms = words("true false not");
            var indentUnit = config.indentUnit;
          
            function tokenBase(stream, state) {
          
              var ch = stream.next();
              if (ch == "/" && stream.eat("*")) {
                state.tokenize = tokenCComment;
                return tokenCComment(stream, state);
              }
          
              if (ch === '#') {
                stream.skipToEnd();
                return "comment";
              }
          
              if (ch == "\"") {
                state.tokenize = tokenString(ch);
                return state.tokenize(stream, state);
              }
          
              if (ch == "(") {
                state._indent.push("(");
                // add virtual angel wings so that editor behaves...
                // ...more sane incase of broken brackets
                state._indent.push("{");
                return null;
              }
          
              if (ch === "{") {
                state._indent.push("{");
                return null;
              }
          
              if (ch == ")")  {
                state._indent.pop();
                state._indent.pop();
              }
          
              if (ch === "}") {
                state._indent.pop();
                return null;
              }
          
              if (ch == ",")
                return null;
          
              if (ch == ";")
                return null;
          
          
              if (/[{}\(\),;]/.test(ch))
                return null;
          
              // 1*DIGIT "K" / "M" / "G"
              if (/\d/.test(ch)) {
                stream.eatWhile(/[\d]/);
                stream.eat(/[KkMmGg]/);
                return "number";
              }
          
              // ":" (ALPHA / "_") *(ALPHA / DIGIT / "_")
              if (ch == ":") {
                stream.eatWhile(/[a-zA-Z_]/);
                stream.eatWhile(/[a-zA-Z0-9_]/);
          
                return "operator";
              }
          
              stream.eatWhile(/\w/);
              var cur = stream.current();
          
              // "text:" *(SP / HTAB) (hash-comment / CRLF)
              // *(multiline-literal / multiline-dotstart)
              // "." CRLF
              if ((cur == "text") && stream.eat(":"))
              {
                state.tokenize = tokenMultiLineString;
                return "string";
              }
          
              if (keywords.propertyIsEnumerable(cur))
                return "keyword";
          
              if (atoms.propertyIsEnumerable(cur))
                return "atom";
          
              return null;
            }
          
            function tokenMultiLineString(stream, state)
            {
              state._multiLineString = true;
              // the first line is special it may contain a comment
              if (!stream.sol()) {
                stream.eatSpace();
          
                if (stream.peek() == "#") {
                  stream.skipToEnd();
                  return "comment";
                }
          
                stream.skipToEnd();
                return "string";
              }
          
              if ((stream.next() == ".")  && (stream.eol()))
              {
                state._multiLineString = false;
                state.tokenize = tokenBase;
              }
          
              return "string";
            }
          
            function tokenCComment(stream, state) {
              var maybeEnd = false, ch;
              while ((ch = stream.next()) != null) {
                if (maybeEnd && ch == "/") {
                  state.tokenize = tokenBase;
                  break;
                }
                maybeEnd = (ch == "*");
              }
              return "comment";
            }
          
            function tokenString(quote) {
              return function(stream, state) {
                var escaped = false, ch;
                while ((ch = stream.next()) != null) {
                  if (ch == quote && !escaped)
                    break;
                  escaped = !escaped && ch == "\\";
                }
                if (!escaped) state.tokenize = tokenBase;
                return "string";
              };
            }
          
            return {
              startState: function(base) {
                return {tokenize: tokenBase,
                        baseIndent: base || 0,
                        _indent: []};
              },
          
              token: function(stream, state) {
                if (stream.eatSpace())
                  return null;
          
                return (state.tokenize || tokenBase)(stream, state);;
              },
          
              indent: function(state, _textAfter) {
                var length = state._indent.length;
                if (_textAfter && (_textAfter[0] == "}"))
                  length--;
          
                if (length <0)
                  length = 0;
          
                return length * indentUnit;
              },
          
              electricChars: "}"
            };
          });
          
          CodeMirror.defineMIME("application/sieve", "sieve");
          
          });
          
      • slim
        • index.html
          <!doctype html>
          
          <title>CodeMirror: SLIM mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <link rel="stylesheet" href="../../theme/ambiance.css">
          <script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
          <script src="https://code.jquery.com/ui/1.11.0/jquery-ui.min.js"></script>
          <link rel="stylesheet" href="https://code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../xml/xml.js"></script>
          <script src="../htmlembedded/htmlembedded.js"></script>
          <script src="../htmlmixed/htmlmixed.js"></script>
          <script src="../coffeescript/coffeescript.js"></script>
          <script src="../javascript/javascript.js"></script>
          <script src="../ruby/ruby.js"></script>
          <script src="../markdown/markdown.js"></script>
          <script src="slim.js"></script>
          <style>.CodeMirror {background: #f8f8f8;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">SLIM</a>
            </ul>
          </div>
          
          <article>
            <h2>SLIM mode</h2>
            <form><textarea id="code" name="code">
          body
            table
              - for user in users
                td id="user_#{user.id}" class=user.role
                  a href=user_action(user, :edit) Edit #{user.name}
                  a href=(path_to_user user) = user.name
          body
            h1(id="logo") = page_logo
            h2[id="tagline" class="small tagline"] = page_tagline
          
          h2[id="tagline"
             class="small tagline"] = page_tagline
          
          h1 id = "logo" = page_logo
          h2 [ id = "tagline" ] = page_tagline
          
          / comment
            second line
          /! html comment
             second line
          <!-- html comment -->
          <a href="#{'hello' if set}">link</a>
          a.slim href="work" disabled=false running==:atom Text <b>bold</b>
          .clazz data-id="test" == 'hello' unless quark
           | Text mode #{12}
             Second line
          = x ||= :ruby_atom
          #menu.left
            - @env.each do |x|
              li: a = x
          *@dyntag attr="val"
          .first *{:class => [:second, :third]} Text
          .second class=["text","more"]
          .third class=:text,:symbol
          
            </textarea></form>
            <script>
              var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                lineNumbers: true,
                theme: "ambiance",
                mode: "application/x-slim"
              });
              $('.CodeMirror').resizable({
                resize: function() {
                  editor.setSize($(this).width(), $(this).height());
                  //editor.refresh();
                }
              });
            </script>
          
            <p><strong>MIME types defined:</strong> <code>application/x-slim</code>.</p>
          
            <p>
              <strong>Parsing/Highlighting Tests:</strong>
              <a href="../../test/index.html#slim_*">normal</a>,
              <a href="../../test/index.html#verbose,slim_*">verbose</a>.
            </p>
          </article>
          
        • slim.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // Slim Highlighting for CodeMirror copyright (c) HicknHack Software Gmbh
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"), require("../ruby/ruby"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "../htmlmixed/htmlmixed", "../ruby/ruby"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
            CodeMirror.defineMode("slim", function(config) {
              var htmlMode = CodeMirror.getMode(config, {name: "htmlmixed"});
              var rubyMode = CodeMirror.getMode(config, "ruby");
              var modes = { html: htmlMode, ruby: rubyMode };
              var embedded = {
                ruby: "ruby",
                javascript: "javascript",
                css: "text/css",
                sass: "text/x-sass",
                scss: "text/x-scss",
                less: "text/x-less",
                styl: "text/x-styl", // no highlighting so far
                coffee: "coffeescript",
                asciidoc: "text/x-asciidoc",
                markdown: "text/x-markdown",
                textile: "text/x-textile", // no highlighting so far
                creole: "text/x-creole", // no highlighting so far
                wiki: "text/x-wiki", // no highlighting so far
                mediawiki: "text/x-mediawiki", // no highlighting so far
                rdoc: "text/x-rdoc", // no highlighting so far
                builder: "text/x-builder", // no highlighting so far
                nokogiri: "text/x-nokogiri", // no highlighting so far
                erb: "application/x-erb"
              };
              var embeddedRegexp = function(map){
                var arr = [];
                for(var key in map) arr.push(key);
                return new RegExp("^("+arr.join('|')+"):");
              }(embedded);
          
              var styleMap = {
                "commentLine": "comment",
                "slimSwitch": "operator special",
                "slimTag": "tag",
                "slimId": "attribute def",
                "slimClass": "attribute qualifier",
                "slimAttribute": "attribute",
                "slimSubmode": "keyword special",
                "closeAttributeTag": null,
                "slimDoctype": null,
                "lineContinuation": null
              };
              var closing = {
                "{": "}",
                "[": "]",
                "(": ")"
              };
          
              var nameStartChar = "_a-zA-Z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD";
              var nameChar = nameStartChar + "\\-0-9\xB7\u0300-\u036F\u203F-\u2040";
              var nameRegexp = new RegExp("^[:"+nameStartChar+"](?::["+nameChar+"]|["+nameChar+"]*)");
              var attributeNameRegexp = new RegExp("^[:"+nameStartChar+"][:\\."+nameChar+"]*(?=\\s*=)");
              var wrappedAttributeNameRegexp = new RegExp("^[:"+nameStartChar+"][:\\."+nameChar+"]*");
              var classNameRegexp = /^\.-?[_a-zA-Z]+[\w\-]*/;
              var classIdRegexp = /^#[_a-zA-Z]+[\w\-]*/;
          
              function backup(pos, tokenize, style) {
                var restore = function(stream, state) {
                  state.tokenize = tokenize;
                  if (stream.pos < pos) {
                    stream.pos = pos;
                    return style;
                  }
                  return state.tokenize(stream, state);
                };
                return function(stream, state) {
                  state.tokenize = restore;
                  return tokenize(stream, state);
                };
              }
          
              function maybeBackup(stream, state, pat, offset, style) {
                var cur = stream.current();
                var idx = cur.search(pat);
                if (idx > -1) {
                  state.tokenize = backup(stream.pos, state.tokenize, style);
                  stream.backUp(cur.length - idx - offset);
                }
                return style;
              }
          
              function continueLine(state, column) {
                state.stack = {
                  parent: state.stack,
                  style: "continuation",
                  indented: column,
                  tokenize: state.line
                };
                state.line = state.tokenize;
              }
              function finishContinue(state) {
                if (state.line == state.tokenize) {
                  state.line = state.stack.tokenize;
                  state.stack = state.stack.parent;
                }
              }
          
              function lineContinuable(column, tokenize) {
                return function(stream, state) {
                  finishContinue(state);
                  if (stream.match(/^\\$/)) {
                    continueLine(state, column);
                    return "lineContinuation";
                  }
                  var style = tokenize(stream, state);
                  if (stream.eol() && stream.current().match(/(?:^|[^\\])(?:\\\\)*\\$/)) {
                    stream.backUp(1);
                  }
                  return style;
                };
              }
              function commaContinuable(column, tokenize) {
                return function(stream, state) {
                  finishContinue(state);
                  var style = tokenize(stream, state);
                  if (stream.eol() && stream.current().match(/,$/)) {
                    continueLine(state, column);
                  }
                  return style;
                };
              }
          
              function rubyInQuote(endQuote, tokenize) {
                // TODO: add multi line support
                return function(stream, state) {
                  var ch = stream.peek();
                  if (ch == endQuote && state.rubyState.tokenize.length == 1) {
                    // step out of ruby context as it seems to complete processing all the braces
                    stream.next();
                    state.tokenize = tokenize;
                    return "closeAttributeTag";
                  } else {
                    return ruby(stream, state);
                  }
                };
              }
              function startRubySplat(tokenize) {
                var rubyState;
                var runSplat = function(stream, state) {
                  if (state.rubyState.tokenize.length == 1 && !state.rubyState.context.prev) {
                    stream.backUp(1);
                    if (stream.eatSpace()) {
                      state.rubyState = rubyState;
                      state.tokenize = tokenize;
                      return tokenize(stream, state);
                    }
                    stream.next();
                  }
                  return ruby(stream, state);
                };
                return function(stream, state) {
                  rubyState = state.rubyState;
                  state.rubyState = rubyMode.startState();
                  state.tokenize = runSplat;
                  return ruby(stream, state);
                };
              }
          
              function ruby(stream, state) {
                return rubyMode.token(stream, state.rubyState);
              }
          
              function htmlLine(stream, state) {
                if (stream.match(/^\\$/)) {
                  return "lineContinuation";
                }
                return html(stream, state);
              }
              function html(stream, state) {
                if (stream.match(/^#\{/)) {
                  state.tokenize = rubyInQuote("}", state.tokenize);
                  return null;
                }
                return maybeBackup(stream, state, /[^\\]#\{/, 1, htmlMode.token(stream, state.htmlState));
              }
          
              function startHtmlLine(lastTokenize) {
                return function(stream, state) {
                  var style = htmlLine(stream, state);
                  if (stream.eol()) state.tokenize = lastTokenize;
                  return style;
                };
              }
          
              function startHtmlMode(stream, state, offset) {
                state.stack = {
                  parent: state.stack,
                  style: "html",
                  indented: stream.column() + offset, // pipe + space
                  tokenize: state.line
                };
                state.line = state.tokenize = html;
                return null;
              }
          
              function comment(stream, state) {
                stream.skipToEnd();
                return state.stack.style;
              }
          
              function commentMode(stream, state) {
                state.stack = {
                  parent: state.stack,
                  style: "comment",
                  indented: state.indented + 1,
                  tokenize: state.line
                };
                state.line = comment;
                return comment(stream, state);
              }
          
              function attributeWrapper(stream, state) {
                if (stream.eat(state.stack.endQuote)) {
                  state.line = state.stack.line;
                  state.tokenize = state.stack.tokenize;
                  state.stack = state.stack.parent;
                  return null;
                }
                if (stream.match(wrappedAttributeNameRegexp)) {
                  state.tokenize = attributeWrapperAssign;
                  return "slimAttribute";
                }
                stream.next();
                return null;
              }
              function attributeWrapperAssign(stream, state) {
                if (stream.match(/^==?/)) {
                  state.tokenize = attributeWrapperValue;
                  return null;
                }
                return attributeWrapper(stream, state);
              }
              function attributeWrapperValue(stream, state) {
                var ch = stream.peek();
                if (ch == '"' || ch == "\'") {
                  state.tokenize = readQuoted(ch, "string", true, false, attributeWrapper);
                  stream.next();
                  return state.tokenize(stream, state);
                }
                if (ch == '[') {
                  return startRubySplat(attributeWrapper)(stream, state);
                }
                if (stream.match(/^(true|false|nil)\b/)) {
                  state.tokenize = attributeWrapper;
                  return "keyword";
                }
                return startRubySplat(attributeWrapper)(stream, state);
              }
          
              function startAttributeWrapperMode(state, endQuote, tokenize) {
                state.stack = {
                  parent: state.stack,
                  style: "wrapper",
                  indented: state.indented + 1,
                  tokenize: tokenize,
                  line: state.line,
                  endQuote: endQuote
                };
                state.line = state.tokenize = attributeWrapper;
                return null;
              }
          
              function sub(stream, state) {
                if (stream.match(/^#\{/)) {
                  state.tokenize = rubyInQuote("}", state.tokenize);
                  return null;
                }
                var subStream = new CodeMirror.StringStream(stream.string.slice(state.stack.indented), stream.tabSize);
                subStream.pos = stream.pos - state.stack.indented;
                subStream.start = stream.start - state.stack.indented;
                subStream.lastColumnPos = stream.lastColumnPos - state.stack.indented;
                subStream.lastColumnValue = stream.lastColumnValue - state.stack.indented;
                var style = state.subMode.token(subStream, state.subState);
                stream.pos = subStream.pos + state.stack.indented;
                return style;
              }
              function firstSub(stream, state) {
                state.stack.indented = stream.column();
                state.line = state.tokenize = sub;
                return state.tokenize(stream, state);
              }
          
              function createMode(mode) {
                var query = embedded[mode];
                var spec = CodeMirror.mimeModes[query];
                if (spec) {
                  return CodeMirror.getMode(config, spec);
                }
                var factory = CodeMirror.modes[query];
                if (factory) {
                  return factory(config, {name: query});
                }
                return CodeMirror.getMode(config, "null");
              }
          
              function getMode(mode) {
                if (!modes.hasOwnProperty(mode)) {
                  return modes[mode] = createMode(mode);
                }
                return modes[mode];
              }
          
              function startSubMode(mode, state) {
                var subMode = getMode(mode);
                var subState = subMode.startState && subMode.startState();
          
                state.subMode = subMode;
                state.subState = subState;
          
                state.stack = {
                  parent: state.stack,
                  style: "sub",
                  indented: state.indented + 1,
                  tokenize: state.line
                };
                state.line = state.tokenize = firstSub;
                return "slimSubmode";
              }
          
              function doctypeLine(stream, _state) {
                stream.skipToEnd();
                return "slimDoctype";
              }
          
              function startLine(stream, state) {
                var ch = stream.peek();
                if (ch == '<') {
                  return (state.tokenize = startHtmlLine(state.tokenize))(stream, state);
                }
                if (stream.match(/^[|']/)) {
                  return startHtmlMode(stream, state, 1);
                }
                if (stream.match(/^\/(!|\[\w+])?/)) {
                  return commentMode(stream, state);
                }
                if (stream.match(/^(-|==?[<>]?)/)) {
                  state.tokenize = lineContinuable(stream.column(), commaContinuable(stream.column(), ruby));
                  return "slimSwitch";
                }
                if (stream.match(/^doctype\b/)) {
                  state.tokenize = doctypeLine;
                  return "keyword";
                }
          
                var m = stream.match(embeddedRegexp);
                if (m) {
                  return startSubMode(m[1], state);
                }
          
                return slimTag(stream, state);
              }
          
              function slim(stream, state) {
                if (state.startOfLine) {
                  return startLine(stream, state);
                }
                return slimTag(stream, state);
              }
          
              function slimTag(stream, state) {
                if (stream.eat('*')) {
                  state.tokenize = startRubySplat(slimTagExtras);
                  return null;
                }
                if (stream.match(nameRegexp)) {
                  state.tokenize = slimTagExtras;
                  return "slimTag";
                }
                return slimClass(stream, state);
              }
              function slimTagExtras(stream, state) {
                if (stream.match(/^(<>?|><?)/)) {
                  state.tokenize = slimClass;
                  return null;
                }
                return slimClass(stream, state);
              }
              function slimClass(stream, state) {
                if (stream.match(classIdRegexp)) {
                  state.tokenize = slimClass;
                  return "slimId";
                }
                if (stream.match(classNameRegexp)) {
                  state.tokenize = slimClass;
                  return "slimClass";
                }
                return slimAttribute(stream, state);
              }
              function slimAttribute(stream, state) {
                if (stream.match(/^([\[\{\(])/)) {
                  return startAttributeWrapperMode(state, closing[RegExp.$1], slimAttribute);
                }
                if (stream.match(attributeNameRegexp)) {
                  state.tokenize = slimAttributeAssign;
                  return "slimAttribute";
                }
                if (stream.peek() == '*') {
                  stream.next();
                  state.tokenize = startRubySplat(slimContent);
                  return null;
                }
                return slimContent(stream, state);
              }
              function slimAttributeAssign(stream, state) {
                if (stream.match(/^==?/)) {
                  state.tokenize = slimAttributeValue;
                  return null;
                }
                // should never happen, because of forward lookup
                return slimAttribute(stream, state);
              }
          
              function slimAttributeValue(stream, state) {
                var ch = stream.peek();
                if (ch == '"' || ch == "\'") {
                  state.tokenize = readQuoted(ch, "string", true, false, slimAttribute);
                  stream.next();
                  return state.tokenize(stream, state);
                }
                if (ch == '[') {
                  return startRubySplat(slimAttribute)(stream, state);
                }
                if (ch == ':') {
                  return startRubySplat(slimAttributeSymbols)(stream, state);
                }
                if (stream.match(/^(true|false|nil)\b/)) {
                  state.tokenize = slimAttribute;
                  return "keyword";
                }
                return startRubySplat(slimAttribute)(stream, state);
              }
              function slimAttributeSymbols(stream, state) {
                stream.backUp(1);
                if (stream.match(/^[^\s],(?=:)/)) {
                  state.tokenize = startRubySplat(slimAttributeSymbols);
                  return null;
                }
                stream.next();
                return slimAttribute(stream, state);
              }
              function readQuoted(quote, style, embed, unescaped, nextTokenize) {
                return function(stream, state) {
                  finishContinue(state);
                  var fresh = stream.current().length == 0;
                  if (stream.match(/^\\$/, fresh)) {
                    if (!fresh) return style;
                    continueLine(state, state.indented);
                    return "lineContinuation";
                  }
                  if (stream.match(/^#\{/, fresh)) {
                    if (!fresh) return style;
                    state.tokenize = rubyInQuote("}", state.tokenize);
                    return null;
                  }
                  var escaped = false, ch;
                  while ((ch = stream.next()) != null) {
                    if (ch == quote && (unescaped || !escaped)) {
                      state.tokenize = nextTokenize;
                      break;
                    }
                    if (embed && ch == "#" && !escaped) {
                      if (stream.eat("{")) {
                        stream.backUp(2);
                        break;
                      }
                    }
                    escaped = !escaped && ch == "\\";
                  }
                  if (stream.eol() && escaped) {
                    stream.backUp(1);
                  }
                  return style;
                };
              }
              function slimContent(stream, state) {
                if (stream.match(/^==?/)) {
                  state.tokenize = ruby;
                  return "slimSwitch";
                }
                if (stream.match(/^\/$/)) { // tag close hint
                  state.tokenize = slim;
                  return null;
                }
                if (stream.match(/^:/)) { // inline tag
                  state.tokenize = slimTag;
                  return "slimSwitch";
                }
                startHtmlMode(stream, state, 0);
                return state.tokenize(stream, state);
              }
          
              var mode = {
                // default to html mode
                startState: function() {
                  var htmlState = htmlMode.startState();
                  var rubyState = rubyMode.startState();
                  return {
                    htmlState: htmlState,
                    rubyState: rubyState,
                    stack: null,
                    last: null,
                    tokenize: slim,
                    line: slim,
                    indented: 0
                  };
                },
          
                copyState: function(state) {
                  return {
                    htmlState : CodeMirror.copyState(htmlMode, state.htmlState),
                    rubyState: CodeMirror.copyState(rubyMode, state.rubyState),
                    subMode: state.subMode,
                    subState: state.subMode && CodeMirror.copyState(state.subMode, state.subState),
                    stack: state.stack,
                    last: state.last,
                    tokenize: state.tokenize,
                    line: state.line
                  };
                },
          
                token: function(stream, state) {
                  if (stream.sol()) {
                    state.indented = stream.indentation();
                    state.startOfLine = true;
                    state.tokenize = state.line;
                    while (state.stack && state.stack.indented > state.indented && state.last != "slimSubmode") {
                      state.line = state.tokenize = state.stack.tokenize;
                      state.stack = state.stack.parent;
                      state.subMode = null;
                      state.subState = null;
                    }
                  }
                  if (stream.eatSpace()) return null;
                  var style = state.tokenize(stream, state);
                  state.startOfLine = false;
                  if (style) state.last = style;
                  return styleMap.hasOwnProperty(style) ? styleMap[style] : style;
                },
          
                blankLine: function(state) {
                  if (state.subMode && state.subMode.blankLine) {
                    return state.subMode.blankLine(state.subState);
                  }
                },
          
                innerMode: function(state) {
                  if (state.subMode) return {state: state.subState, mode: state.subMode};
                  return {state: state, mode: mode};
                }
          
                //indent: function(state) {
                //  return state.indented;
                //}
              };
              return mode;
            }, "htmlmixed", "ruby");
          
            CodeMirror.defineMIME("text/x-slim", "slim");
            CodeMirror.defineMIME("application/x-slim", "slim");
          });
          
        • test.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // Slim Highlighting for CodeMirror copyright (c) HicknHack Software Gmbh
          
          (function() {
            var mode = CodeMirror.getMode({tabSize: 4, indentUnit: 2}, "slim");
            function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
          
            // Requires at least one media query
            MT("elementName",
               "[tag h1] Hey There");
          
            MT("oneElementPerLine",
               "[tag h1] Hey There .h2");
          
            MT("idShortcut",
               "[attribute&def #test] Hey There");
          
            MT("tagWithIdShortcuts",
               "[tag h1][attribute&def #test] Hey There");
          
            MT("classShortcut",
               "[attribute&qualifier .hello] Hey There");
          
            MT("tagWithIdAndClassShortcuts",
               "[tag h1][attribute&def #test][attribute&qualifier .hello] Hey There");
          
            MT("docType",
               "[keyword doctype] xml");
          
            MT("comment",
               "[comment / Hello WORLD]");
          
            MT("notComment",
               "[tag h1] This is not a / comment ");
          
            MT("attributes",
               "[tag a]([attribute title]=[string \"test\"]) [attribute href]=[string \"link\"]}");
          
            MT("multiLineAttributes",
               "[tag a]([attribute title]=[string \"test\"]",
               "  ) [attribute href]=[string \"link\"]}");
          
            MT("htmlCode",
               "[tag&bracket <][tag h1][tag&bracket >]Title[tag&bracket </][tag h1][tag&bracket >]");
          
            MT("rubyBlock",
               "[operator&special =][variable-2 @item]");
          
            MT("selectorRubyBlock",
               "[tag a][attribute&qualifier .test][operator&special =] [variable-2 @item]");
          
            MT("nestedRubyBlock",
                "[tag a]",
                "  [operator&special =][variable puts] [string \"test\"]");
          
            MT("multilinePlaintext",
                "[tag p]",
                "  | Hello,",
                "    World");
          
            MT("multilineRuby",
                "[tag p]",
                "  [comment /# this is a comment]",
                "     [comment and this is a comment too]",
                "  | Date/Time",
                "  [operator&special -] [variable now] [operator =] [tag DateTime][operator .][property now]",
                "  [tag strong][operator&special =] [variable now]",
                "  [operator&special -] [keyword if] [variable now] [operator >] [tag DateTime][operator .][property parse]([string \"December 31, 2006\"])",
                "     [operator&special =][string \"Happy\"]",
                "     [operator&special =][string \"Belated\"]",
                "     [operator&special =][string \"Birthday\"]");
          
            MT("multilineComment",
                "[comment /]",
                "  [comment Multiline]",
                "  [comment Comment]");
          
            MT("hamlAfterRubyTag",
              "[attribute&qualifier .block]",
              "  [tag strong][operator&special =] [variable now]",
              "  [attribute&qualifier .test]",
              "     [operator&special =][variable now]",
              "  [attribute&qualifier .right]");
          
            MT("stretchedRuby",
               "[operator&special =] [variable puts] [string \"Hello\"],",
               "   [string \"World\"]");
          
            MT("interpolationInHashAttribute",
               "[tag div]{[attribute id] = [string \"]#{[variable test]}[string _]#{[variable ting]}[string \"]} test");
          
            MT("interpolationInHTMLAttribute",
               "[tag div]([attribute title]=[string \"]#{[variable test]}[string _]#{[variable ting]()}[string \"]) Test");
          })();
          
      • smalltalk
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Smalltalk mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="smalltalk.js"></script>
          <style>
                .CodeMirror {border: 2px solid #dee; border-right-width: 10px;}
                .CodeMirror-gutter {border: none; background: #dee;}
                .CodeMirror-gutter pre {color: white; font-weight: bold;}
              </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Smalltalk</a>
            </ul>
          </div>
          
          <article>
          <h2>Smalltalk mode</h2>
          <form><textarea id="code" name="code">
          " 
              This is a test of the Smalltalk code
          "
          Seaside.WAComponent subclass: #MyCounter [
              | count |
              MyCounter class &gt;&gt; canBeRoot [ ^true ]
          
              initialize [
                  super initialize.
                  count := 0.
              ]
              states [ ^{ self } ]
              renderContentOn: html [
                  html heading: count.
                  html anchor callback: [ count := count + 1 ]; with: '++'.
                  html space.
                  html anchor callback: [ count := count - 1 ]; with: '--'.
              ]
          ]
          
          MyCounter registerAsApplication: 'mycounter'
          </textarea></form>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  matchBrackets: true,
                  mode: "text/x-stsrc",
                  indentUnit: 4
                });
              </script>
          
              <p>Simple Smalltalk mode.</p>
          
              <p><strong>MIME types defined:</strong> <code>text/x-stsrc</code>.</p>
            </article>
          
        • smalltalk.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode('smalltalk', function(config) {
          
            var specialChars = /[+\-\/\\*~<>=@%|&?!.,:;^]/;
            var keywords = /true|false|nil|self|super|thisContext/;
          
            var Context = function(tokenizer, parent) {
              this.next = tokenizer;
              this.parent = parent;
            };
          
            var Token = function(name, context, eos) {
              this.name = name;
              this.context = context;
              this.eos = eos;
            };
          
            var State = function() {
              this.context = new Context(next, null);
              this.expectVariable = true;
              this.indentation = 0;
              this.userIndentationDelta = 0;
            };
          
            State.prototype.userIndent = function(indentation) {
              this.userIndentationDelta = indentation > 0 ? (indentation / config.indentUnit - this.indentation) : 0;
            };
          
            var next = function(stream, context, state) {
              var token = new Token(null, context, false);
              var aChar = stream.next();
          
              if (aChar === '"') {
                token = nextComment(stream, new Context(nextComment, context));
          
              } else if (aChar === '\'') {
                token = nextString(stream, new Context(nextString, context));
          
              } else if (aChar === '#') {
                if (stream.peek() === '\'') {
                  stream.next();
                  token = nextSymbol(stream, new Context(nextSymbol, context));
                } else {
                  if (stream.eatWhile(/[^\s.{}\[\]()]/))
                    token.name = 'string-2';
                  else
                    token.name = 'meta';
                }
          
              } else if (aChar === '$') {
                if (stream.next() === '<') {
                  stream.eatWhile(/[^\s>]/);
                  stream.next();
                }
                token.name = 'string-2';
          
              } else if (aChar === '|' && state.expectVariable) {
                token.context = new Context(nextTemporaries, context);
          
              } else if (/[\[\]{}()]/.test(aChar)) {
                token.name = 'bracket';
                token.eos = /[\[{(]/.test(aChar);
          
                if (aChar === '[') {
                  state.indentation++;
                } else if (aChar === ']') {
                  state.indentation = Math.max(0, state.indentation - 1);
                }
          
              } else if (specialChars.test(aChar)) {
                stream.eatWhile(specialChars);
                token.name = 'operator';
                token.eos = aChar !== ';'; // ; cascaded message expression
          
              } else if (/\d/.test(aChar)) {
                stream.eatWhile(/[\w\d]/);
                token.name = 'number';
          
              } else if (/[\w_]/.test(aChar)) {
                stream.eatWhile(/[\w\d_]/);
                token.name = state.expectVariable ? (keywords.test(stream.current()) ? 'keyword' : 'variable') : null;
          
              } else {
                token.eos = state.expectVariable;
              }
          
              return token;
            };
          
            var nextComment = function(stream, context) {
              stream.eatWhile(/[^"]/);
              return new Token('comment', stream.eat('"') ? context.parent : context, true);
            };
          
            var nextString = function(stream, context) {
              stream.eatWhile(/[^']/);
              return new Token('string', stream.eat('\'') ? context.parent : context, false);
            };
          
            var nextSymbol = function(stream, context) {
              stream.eatWhile(/[^']/);
              return new Token('string-2', stream.eat('\'') ? context.parent : context, false);
            };
          
            var nextTemporaries = function(stream, context) {
              var token = new Token(null, context, false);
              var aChar = stream.next();
          
              if (aChar === '|') {
                token.context = context.parent;
                token.eos = true;
          
              } else {
                stream.eatWhile(/[^|]/);
                token.name = 'variable';
              }
          
              return token;
            };
          
            return {
              startState: function() {
                return new State;
              },
          
              token: function(stream, state) {
                state.userIndent(stream.indentation());
          
                if (stream.eatSpace()) {
                  return null;
                }
          
                var token = state.context.next(stream, state.context, state);
                state.context = token.context;
                state.expectVariable = token.eos;
          
                return token.name;
              },
          
              blankLine: function(state) {
                state.userIndent(0);
              },
          
              indent: function(state, textAfter) {
                var i = state.context.next === next && textAfter && textAfter.charAt(0) === ']' ? -1 : state.userIndentationDelta;
                return (state.indentation + i) * config.indentUnit;
              },
          
              electricChars: ']'
            };
          
          });
          
          CodeMirror.defineMIME('text/x-stsrc', {name: 'smalltalk'});
          
          });
          
      • smarty
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Smarty mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../xml/xml.js"></script>
          <script src="smarty.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Smarty</a>
            </ul>
          </div>
          
          <article>
          <h2>Smarty mode</h2>
          <form><textarea id="code" name="code">
          {extends file="parent.tpl"}
          {include file="template.tpl"}
          
          {* some example Smarty content *}
          {if isset($name) && $name == 'Blog'}
            This is a {$var}.
            {$integer = 451}, {$array[] = "a"}, {$stringvar = "string"}
            {assign var='bob' value=$var.prop}
          {elseif $name == $foo}
            {function name=menu level=0}
              {foreach $data as $entry}
                {if is_array($entry)}
                  - {$entry@key}
                  {menu data=$entry level=$level+1}
                {else}
                  {$entry}
                {/if}
              {/foreach}
            {/function}
          {/if}</textarea></form>
          
          <p>Mode for Smarty version 2 or 3, which allows for custom delimiter tags.</p>
          
          <p>Several configuration parameters are supported:</p>
          
          <ul>
            <li><code>leftDelimiter</code> and <code>rightDelimiter</code>,
            which should be strings that determine where the Smarty syntax
            starts and ends.</li>
            <li><code>version</code>, which should be 2 or 3.</li>
            <li><code>baseMode</code>, which can be a mode spec
            like <code>"text/html"</code> to set a different background mode.</li>
          </ul>
          
          <p><strong>MIME types defined:</strong> <code>text/x-smarty</code></p>
          
          <h3>Smarty 2, custom delimiters</h3>
          
          <form><textarea id="code2" name="code2">
          {--extends file="parent.tpl"--}
          {--include file="template.tpl"--}
          
          {--* some example Smarty content *--}
          {--if isset($name) && $name == 'Blog'--}
            This is a {--$var--}.
            {--$integer = 451--}, {--$array[] = "a"--}, {--$stringvar = "string"--}
            {--assign var='bob' value=$var.prop--}
          {--elseif $name == $foo--}
            {--function name=menu level=0--}
              {--foreach $data as $entry--}
                {--if is_array($entry)--}
                  - {--$entry@key--}
                  {--menu data=$entry level=$level+1--}
                {--else--}
                  {--$entry--}
                {--/if--}
              {--/foreach--}
            {--/function--}
          {--/if--}</textarea></form>
          
          <h3>Smarty 3</h3>
          
          <textarea id="code3" name="code3">
          Nested tags {$foo={counter one=1 two={inception}}+3} are now valid in Smarty 3.
          
          <script>
          function test() {
            console.log("Smarty 3 permits single curly braces followed by whitespace to NOT slip into Smarty mode.");
          }
          </script>
          
          {assign var=foo value=[1,2,3]}
          {assign var=foo value=['y'=>'yellow','b'=>'blue']}
          {assign var=foo value=[1,[9,8],3]}
          
          {$foo=$bar+2} {* a comment *}
          {$foo.bar=1}  {* another comment *}
          {$foo = myfunct(($x+$y)*3)}
          {$foo = strlen($bar)}
          {$foo.bar.baz=1}, {$foo[]=1}
          
          Smarty "dot" syntax (note: embedded {} are used to address ambiguities):
          
          {$foo.a.b.c}      => $foo['a']['b']['c']
          {$foo.a.$b.c}     => $foo['a'][$b]['c']
          {$foo.a.{$b+4}.c} => $foo['a'][$b+4]['c']
          {$foo.a.{$b.c}}   => $foo['a'][$b['c']]
          
          {$object->method1($x)->method2($y)}</textarea>
          
          <script>
          var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
            lineNumbers: true,
            mode: "smarty"
          });
          var editor = CodeMirror.fromTextArea(document.getElementById("code2"), {
            lineNumbers: true,
            mode: {
              name: "smarty",
              leftDelimiter: "{--",
              rightDelimiter: "--}"
            }
          });
          var editor = CodeMirror.fromTextArea(document.getElementById("code3"), {
            lineNumbers: true,
            mode: {name: "smarty", version: 3, baseMode: "text/html"}
          });
          </script>
          
          </article>
          
        • smarty.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          /**
           * Smarty 2 and 3 mode.
           */
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineMode("smarty", function(config, parserConf) {
              var rightDelimiter = parserConf.rightDelimiter || "}";
              var leftDelimiter = parserConf.leftDelimiter || "{";
              var version = parserConf.version || 2;
              var baseMode = CodeMirror.getMode(config, parserConf.baseMode || "null");
          
              var keyFunctions = ["debug", "extends", "function", "include", "literal"];
              var regs = {
                operatorChars: /[+\-*&%=<>!?]/,
                validIdentifier: /[a-zA-Z0-9_]/,
                stringChar: /['"]/
              };
          
              var last;
              function cont(style, lastType) {
                last = lastType;
                return style;
              }
          
              function chain(stream, state, parser) {
                state.tokenize = parser;
                return parser(stream, state);
              }
          
              // Smarty 3 allows { and } surrounded by whitespace to NOT slip into Smarty mode
              function doesNotCount(stream, pos) {
                if (pos == null) pos = stream.pos;
                return version === 3 && leftDelimiter == "{" &&
                  (pos == stream.string.length || /\s/.test(stream.string.charAt(pos)));
              }
          
              function tokenTop(stream, state) {
                var string = stream.string;
                for (var scan = stream.pos;;) {
                  var nextMatch = string.indexOf(leftDelimiter, scan);
                  scan = nextMatch + leftDelimiter.length;
                  if (nextMatch == -1 || !doesNotCount(stream, nextMatch + leftDelimiter.length)) break;
                }
                if (nextMatch == stream.pos) {
                  stream.match(leftDelimiter);
                  if (stream.eat("*")) {
                    return chain(stream, state, tokenBlock("comment", "*" + rightDelimiter));
                  } else {
                    state.depth++;
                    state.tokenize = tokenSmarty;
                    last = "startTag";
                    return "tag";
                  }
                }
          
                if (nextMatch > -1) stream.string = string.slice(0, nextMatch);
                var token = baseMode.token(stream, state.base);
                if (nextMatch > -1) stream.string = string;
                return token;
              }
          
              // parsing Smarty content
              function tokenSmarty(stream, state) {
                if (stream.match(rightDelimiter, true)) {
                  if (version === 3) {
                    state.depth--;
                    if (state.depth <= 0) {
                      state.tokenize = tokenTop;
                    }
                  } else {
                    state.tokenize = tokenTop;
                  }
                  return cont("tag", null);
                }
          
                if (stream.match(leftDelimiter, true)) {
                  state.depth++;
                  return cont("tag", "startTag");
                }
          
                var ch = stream.next();
                if (ch == "$") {
                  stream.eatWhile(regs.validIdentifier);
                  return cont("variable-2", "variable");
                } else if (ch == "|") {
                  return cont("operator", "pipe");
                } else if (ch == ".") {
                  return cont("operator", "property");
                } else if (regs.stringChar.test(ch)) {
                  state.tokenize = tokenAttribute(ch);
                  return cont("string", "string");
                } else if (regs.operatorChars.test(ch)) {
                  stream.eatWhile(regs.operatorChars);
                  return cont("operator", "operator");
                } else if (ch == "[" || ch == "]") {
                  return cont("bracket", "bracket");
                } else if (ch == "(" || ch == ")") {
                  return cont("bracket", "operator");
                } else if (/\d/.test(ch)) {
                  stream.eatWhile(/\d/);
                  return cont("number", "number");
                } else {
          
                  if (state.last == "variable") {
                    if (ch == "@") {
                      stream.eatWhile(regs.validIdentifier);
                      return cont("property", "property");
                    } else if (ch == "|") {
                      stream.eatWhile(regs.validIdentifier);
                      return cont("qualifier", "modifier");
                    }
                  } else if (state.last == "pipe") {
                    stream.eatWhile(regs.validIdentifier);
                    return cont("qualifier", "modifier");
                  } else if (state.last == "whitespace") {
                    stream.eatWhile(regs.validIdentifier);
                    return cont("attribute", "modifier");
                  } if (state.last == "property") {
                    stream.eatWhile(regs.validIdentifier);
                    return cont("property", null);
                  } else if (/\s/.test(ch)) {
                    last = "whitespace";
                    return null;
                  }
          
                  var str = "";
                  if (ch != "/") {
                    str += ch;
                  }
                  var c = null;
                  while (c = stream.eat(regs.validIdentifier)) {
                    str += c;
                  }
                  for (var i=0, j=keyFunctions.length; i<j; i++) {
                    if (keyFunctions[i] == str) {
                      return cont("keyword", "keyword");
                    }
                  }
                  if (/\s/.test(ch)) {
                    return null;
                  }
                  return cont("tag", "tag");
                }
              }
          
              function tokenAttribute(quote) {
                return function(stream, state) {
                  var prevChar = null;
                  var currChar = null;
                  while (!stream.eol()) {
                    currChar = stream.peek();
                    if (stream.next() == quote && prevChar !== '\\') {
                      state.tokenize = tokenSmarty;
                      break;
                    }
                    prevChar = currChar;
                  }
                  return "string";
                };
              }
          
              function tokenBlock(style, terminator) {
                return function(stream, state) {
                  while (!stream.eol()) {
                    if (stream.match(terminator)) {
                      state.tokenize = tokenTop;
                      break;
                    }
                    stream.next();
                  }
                  return style;
                };
              }
          
              return {
                startState: function() {
                  return {
                    base: CodeMirror.startState(baseMode),
                    tokenize: tokenTop,
                    last: null,
                    depth: 0
                  };
                },
                copyState: function(state) {
                  return {
                    base: CodeMirror.copyState(baseMode, state.base),
                    tokenize: state.tokenize,
                    last: state.last,
                    depth: state.depth
                  };
                },
                innerMode: function(state) {
                  if (state.tokenize == tokenTop)
                    return {mode: baseMode, state: state.base};
                },
                token: function(stream, state) {
                  var style = state.tokenize(stream, state);
                  state.last = last;
                  return style;
                },
                indent: function(state, text) {
                  if (state.tokenize == tokenTop && baseMode.indent)
                    return baseMode.indent(state.base, text);
                  else
                    return CodeMirror.Pass;
                },
                blockCommentStart: leftDelimiter + "*",
                blockCommentEnd: "*" + rightDelimiter
              };
            });
          
            CodeMirror.defineMIME("text/x-smarty", "smarty");
          });
          
      • solr
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Solr mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="solr.js"></script>
          <style type="text/css">
            .CodeMirror {
              border-top: 1px solid black;
              border-bottom: 1px solid black;
            }
          
            .CodeMirror .cm-operator {
              color: orange;
            }
          </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Solr</a>
            </ul>
          </div>
          
          <article>
            <h2>Solr mode</h2>
          
            <div>
              <textarea id="code" name="code">author:Camus
          
          title:"The Rebel" and author:Camus
          
          philosophy:Existentialism -author:Kierkegaard
          
          hardToSpell:Dostoevsky~
          
          published:[194* TO 1960] and author:(Sartre or "Simone de Beauvoir")</textarea>
            </div>
          
            <script>
              var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                mode: 'solr',
                lineNumbers: true
              });
            </script>
          
            <p><strong>MIME types defined:</strong> <code>text/x-solr</code>.</p>
          </article>
          
        • solr.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("solr", function() {
            "use strict";
          
            var isStringChar = /[^\s\|\!\+\-\*\?\~\^\&\:\(\)\[\]\{\}\^\"\\]/;
            var isOperatorChar = /[\|\!\+\-\*\?\~\^\&]/;
            var isOperatorString = /^(OR|AND|NOT|TO)$/i;
          
            function isNumber(word) {
              return parseFloat(word, 10).toString() === word;
            }
          
            function tokenString(quote) {
              return function(stream, state) {
                var escaped = false, next;
                while ((next = stream.next()) != null) {
                  if (next == quote && !escaped) break;
                  escaped = !escaped && next == "\\";
                }
          
                if (!escaped) state.tokenize = tokenBase;
                return "string";
              };
            }
          
            function tokenOperator(operator) {
              return function(stream, state) {
                var style = "operator";
                if (operator == "+")
                  style += " positive";
                else if (operator == "-")
                  style += " negative";
                else if (operator == "|")
                  stream.eat(/\|/);
                else if (operator == "&")
                  stream.eat(/\&/);
                else if (operator == "^")
                  style += " boost";
          
                state.tokenize = tokenBase;
                return style;
              };
            }
          
            function tokenWord(ch) {
              return function(stream, state) {
                var word = ch;
                while ((ch = stream.peek()) && ch.match(isStringChar) != null) {
                  word += stream.next();
                }
          
                state.tokenize = tokenBase;
                if (isOperatorString.test(word))
                  return "operator";
                else if (isNumber(word))
                  return "number";
                else if (stream.peek() == ":")
                  return "field";
                else
                  return "string";
              };
            }
          
            function tokenBase(stream, state) {
              var ch = stream.next();
              if (ch == '"')
                state.tokenize = tokenString(ch);
              else if (isOperatorChar.test(ch))
                state.tokenize = tokenOperator(ch);
              else if (isStringChar.test(ch))
                state.tokenize = tokenWord(ch);
          
              return (state.tokenize != tokenBase) ? state.tokenize(stream, state) : null;
            }
          
            return {
              startState: function() {
                return {
                  tokenize: tokenBase
                };
              },
          
              token: function(stream, state) {
                if (stream.eatSpace()) return null;
                return state.tokenize(stream, state);
              }
            };
          });
          
          CodeMirror.defineMIME("text/x-solr", "solr");
          
          });
          
      • soy
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Soy (Closure Template) mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="../htmlmixed/htmlmixed.js"></script>
          <script src="../xml/xml.js"></script>
          <script src="../javascript/javascript.js"></script>
          <script src="../css/css.js"></script>
          <script src="soy.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Soy (Closure Template)</a>
            </ul>
          </div>
          
          <article>
          <h2>Soy (Closure Template) mode</h2>
          <form><textarea id="code" name="code">
          {namespace example}
          
          /**
           * Says hello to the world.
           */
          {template .helloWorld}
            {@param name: string}
            {@param? score: number}
            Hello <b>{$name}</b>!
            <div>
              {if $score}
                <em>{$score} points</em>
              {else}
                no score
              {/if}
            </div>
          {/template}
          
          {template .alertHelloWorld kind="js"}
            alert('Hello World');
          {/template}
          </textarea></form>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  matchBrackets: true,
                  mode: "text/x-soy",
                  indentUnit: 2,
                  indentWithTabs: false
                });
              </script>
          
              <p>A mode for <a href="https://developers.google.com/closure/templates/">Closure Templates</a> (Soy).</p>
              <p><strong>MIME type defined:</strong> <code>text/x-soy</code>.</p>
            </article>
          
        • soy.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "../htmlmixed/htmlmixed"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            var indentingTags = ["template", "literal", "msg", "fallbackmsg", "let", "if", "elseif",
                                 "else", "switch", "case", "default", "foreach", "ifempty", "for",
                                 "call", "param", "deltemplate", "delcall", "log"];
          
            CodeMirror.defineMode("soy", function(config) {
              var textMode = CodeMirror.getMode(config, "text/plain");
              var modes = {
                html: CodeMirror.getMode(config, {name: "text/html", multilineTagIndentFactor: 2, multilineTagIndentPastTag: false}),
                attributes: textMode,
                text: textMode,
                uri: textMode,
                css: CodeMirror.getMode(config, "text/css"),
                js: CodeMirror.getMode(config, {name: "text/javascript", statementIndent: 2 * config.indentUnit})
              };
          
              function last(array) {
                return array[array.length - 1];
              }
          
              function tokenUntil(stream, state, untilRegExp) {
                var oldString = stream.string;
                var match = untilRegExp.exec(oldString.substr(stream.pos));
                if (match) {
                  // We don't use backUp because it backs up just the position, not the state.
                  // This uses an undocumented API.
                  stream.string = oldString.substr(0, stream.pos + match.index);
                }
                var result = stream.hideFirstChars(state.indent, function() {
                  return state.localMode.token(stream, state.localState);
                });
                stream.string = oldString;
                return result;
              }
          
              return {
                startState: function() {
                  return {
                    kind: [],
                    kindTag: [],
                    soyState: [],
                    indent: 0,
                    localMode: modes.html,
                    localState: CodeMirror.startState(modes.html)
                  };
                },
          
                copyState: function(state) {
                  return {
                    tag: state.tag, // Last seen Soy tag.
                    kind: state.kind.concat([]), // Values of kind="" attributes.
                    kindTag: state.kindTag.concat([]), // Opened tags with kind="" attributes.
                    soyState: state.soyState.concat([]),
                    indent: state.indent, // Indentation of the following line.
                    localMode: state.localMode,
                    localState: CodeMirror.copyState(state.localMode, state.localState)
                  };
                },
          
                token: function(stream, state) {
                  var match;
          
                  switch (last(state.soyState)) {
                    case "comment":
                      if (stream.match(/^.*?\*\//)) {
                        state.soyState.pop();
                      } else {
                        stream.skipToEnd();
                      }
                      return "comment";
          
                    case "variable":
                      if (stream.match(/^}/)) {
                        state.indent -= 2 * config.indentUnit;
                        state.soyState.pop();
                        return "variable-2";
                      }
                      stream.next();
                      return null;
          
                    case "tag":
                      if (stream.match(/^\/?}/)) {
                        if (state.tag == "/template" || state.tag == "/deltemplate") state.indent = 0;
                        else state.indent -= (stream.current() == "/}" || indentingTags.indexOf(state.tag) == -1 ? 2 : 1) * config.indentUnit;
                        state.soyState.pop();
                        return "keyword";
                      } else if (stream.match(/^([\w?]+)(?==)/)) {
                        if (stream.current() == "kind" && (match = stream.match(/^="([^"]+)/, false))) {
                          var kind = match[1];
                          state.kind.push(kind);
                          state.kindTag.push(state.tag);
                          state.localMode = modes[kind] || modes.html;
                          state.localState = CodeMirror.startState(state.localMode);
                        }
                        return "attribute";
                      } else if (stream.match(/^"/)) {
                        state.soyState.push("string");
                        return "string";
                      }
                      stream.next();
                      return null;
          
                    case "literal":
                      if (stream.match(/^(?=\{\/literal})/)) {
                        state.indent -= config.indentUnit;
                        state.soyState.pop();
                        return this.token(stream, state);
                      }
                      return tokenUntil(stream, state, /\{\/literal}/);
          
                    case "string":
                      if (stream.match(/^.*?"/)) {
                        state.soyState.pop();
                      } else {
                        stream.skipToEnd();
                      }
                      return "string";
                  }
          
                  if (stream.match(/^\/\*/)) {
                    state.soyState.push("comment");
                    return "comment";
                  } else if (stream.match(stream.sol() ? /^\s*\/\/.*/ : /^\s+\/\/.*/)) {
                    return "comment";
                  } else if (stream.match(/^\{\$[\w?]*/)) {
                    state.indent += 2 * config.indentUnit;
                    state.soyState.push("variable");
                    return "variable-2";
                  } else if (stream.match(/^\{literal}/)) {
                    state.indent += config.indentUnit;
                    state.soyState.push("literal");
                    return "keyword";
                  } else if (match = stream.match(/^\{([\/@\\]?[\w?]*)/)) {
                    if (match[1] != "/switch")
                      state.indent += (/^(\/|(else|elseif|case|default)$)/.test(match[1]) && state.tag != "switch" ? 1 : 2) * config.indentUnit;
                    state.tag = match[1];
                    if (state.tag == "/" + last(state.kindTag)) {
                      // We found the tag that opened the current kind="".
                      state.kind.pop();
                      state.kindTag.pop();
                      state.localMode = modes[last(state.kind)] || modes.html;
                      state.localState = CodeMirror.startState(state.localMode);
                    }
                    state.soyState.push("tag");
                    return "keyword";
                  }
          
                  return tokenUntil(stream, state, /\{|\s+\/\/|\/\*/);
                },
          
                indent: function(state, textAfter) {
                  var indent = state.indent, top = last(state.soyState);
                  if (top == "comment") return CodeMirror.Pass;
          
                  if (top == "literal") {
                    if (/^\{\/literal}/.test(textAfter)) indent -= config.indentUnit;
                  } else {
                    if (/^\s*\{\/(template|deltemplate)\b/.test(textAfter)) return 0;
                    if (/^\{(\/|(fallbackmsg|elseif|else|ifempty)\b)/.test(textAfter)) indent -= config.indentUnit;
                    if (state.tag != "switch" && /^\{(case|default)\b/.test(textAfter)) indent -= config.indentUnit;
                    if (/^\{\/switch\b/.test(textAfter)) indent -= config.indentUnit;
                  }
                  if (indent && state.localMode.indent)
                    indent += state.localMode.indent(state.localState, textAfter);
                  return indent;
                },
          
                innerMode: function(state) {
                  if (state.soyState.length && last(state.soyState) != "literal") return null;
                  else return {state: state.localState, mode: state.localMode};
                },
          
                electricInput: /^\s*\{(\/|\/template|\/deltemplate|\/switch|fallbackmsg|elseif|else|case|default|ifempty|\/literal\})$/,
                lineComment: "//",
                blockCommentStart: "/*",
                blockCommentEnd: "*/",
                blockCommentContinue: " * ",
                fold: "indent"
              };
            }, "htmlmixed");
          
            CodeMirror.registerHelper("hintWords", "soy", indentingTags.concat(
                ["delpackage", "namespace", "alias", "print", "css", "debugger"]));
          
            CodeMirror.defineMIME("text/x-soy", "soy");
          });
          
      • sparql
        • index.html
          <!doctype html>
          
          <title>CodeMirror: SPARQL mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="sparql.js"></script>
          <style>.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">SPARQL</a>
            </ul>
          </div>
          
          <article>
          <h2>SPARQL mode</h2>
          <form><textarea id="code" name="code">
          PREFIX a: &lt;http://www.w3.org/2000/10/annotation-ns#>
          PREFIX dc: &lt;http://purl.org/dc/elements/1.1/>
          PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/>
          PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#>
          
          # Comment!
          
          SELECT ?given ?family
          WHERE {
            {
              ?annot a:annotates &lt;http://www.w3.org/TR/rdf-sparql-query/> .
              ?annot dc:creator ?c .
              OPTIONAL {?c foaf:givenName ?given ;
                           foaf:familyName ?family }
            } UNION {
              ?c !foaf:knows/foaf:knows? ?thing.
              ?thing rdfs
            } MINUS {
              ?thing rdfs:label "剛柔流"@jp
            }
            FILTER isBlank(?c)
          }
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  mode: "application/sparql-query",
                  matchBrackets: true
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>application/sparql-query</code>.</p>
          
            </article>
          
        • sparql.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("sparql", function(config) {
            var indentUnit = config.indentUnit;
            var curPunc;
          
            function wordRegexp(words) {
              return new RegExp("^(?:" + words.join("|") + ")$", "i");
            }
            var ops = wordRegexp(["str", "lang", "langmatches", "datatype", "bound", "sameterm", "isiri", "isuri",
                                  "iri", "uri", "bnode", "count", "sum", "min", "max", "avg", "sample",
                                  "group_concat", "rand", "abs", "ceil", "floor", "round", "concat", "substr", "strlen",
                                  "replace", "ucase", "lcase", "encode_for_uri", "contains", "strstarts", "strends",
                                  "strbefore", "strafter", "year", "month", "day", "hours", "minutes", "seconds",
                                  "timezone", "tz", "now", "uuid", "struuid", "md5", "sha1", "sha256", "sha384",
                                  "sha512", "coalesce", "if", "strlang", "strdt", "isnumeric", "regex", "exists",
                                  "isblank", "isliteral", "a"]);
            var keywords = wordRegexp(["base", "prefix", "select", "distinct", "reduced", "construct", "describe",
                                       "ask", "from", "named", "where", "order", "limit", "offset", "filter", "optional",
                                       "graph", "by", "asc", "desc", "as", "having", "undef", "values", "group",
                                       "minus", "in", "not", "service", "silent", "using", "insert", "delete", "union",
                                       "true", "false", "with",
                                       "data", "copy", "to", "move", "add", "create", "drop", "clear", "load"]);
            var operatorChars = /[*+\-<>=&|\^\/!\?]/;
          
            function tokenBase(stream, state) {
              var ch = stream.next();
              curPunc = null;
              if (ch == "$" || ch == "?") {
                if(ch == "?" && stream.match(/\s/, false)){
                  return "operator";
                }
                stream.match(/^[\w\d]*/);
                return "variable-2";
              }
              else if (ch == "<" && !stream.match(/^[\s\u00a0=]/, false)) {
                stream.match(/^[^\s\u00a0>]*>?/);
                return "atom";
              }
              else if (ch == "\"" || ch == "'") {
                state.tokenize = tokenLiteral(ch);
                return state.tokenize(stream, state);
              }
              else if (/[{}\(\),\.;\[\]]/.test(ch)) {
                curPunc = ch;
                return "bracket";
              }
              else if (ch == "#") {
                stream.skipToEnd();
                return "comment";
              }
              else if (operatorChars.test(ch)) {
                stream.eatWhile(operatorChars);
                return "operator";
              }
              else if (ch == ":") {
                stream.eatWhile(/[\w\d\._\-]/);
                return "atom";
              }
              else if (ch == "@") {
                stream.eatWhile(/[a-z\d\-]/i);
                return "meta";
              }
              else {
                stream.eatWhile(/[_\w\d]/);
                if (stream.eat(":")) {
                  stream.eatWhile(/[\w\d_\-]/);
                  return "atom";
                }
                var word = stream.current();
                if (ops.test(word))
                  return "builtin";
                else if (keywords.test(word))
                  return "keyword";
                else
                  return "variable";
              }
            }
          
            function tokenLiteral(quote) {
              return function(stream, state) {
                var escaped = false, ch;
                while ((ch = stream.next()) != null) {
                  if (ch == quote && !escaped) {
                    state.tokenize = tokenBase;
                    break;
                  }
                  escaped = !escaped && ch == "\\";
                }
                return "string";
              };
            }
          
            function pushContext(state, type, col) {
              state.context = {prev: state.context, indent: state.indent, col: col, type: type};
            }
            function popContext(state) {
              state.indent = state.context.indent;
              state.context = state.context.prev;
            }
          
            return {
              startState: function() {
                return {tokenize: tokenBase,
                        context: null,
                        indent: 0,
                        col: 0};
              },
          
              token: function(stream, state) {
                if (stream.sol()) {
                  if (state.context && state.context.align == null) state.context.align = false;
                  state.indent = stream.indentation();
                }
                if (stream.eatSpace()) return null;
                var style = state.tokenize(stream, state);
          
                if (style != "comment" && state.context && state.context.align == null && state.context.type != "pattern") {
                  state.context.align = true;
                }
          
                if (curPunc == "(") pushContext(state, ")", stream.column());
                else if (curPunc == "[") pushContext(state, "]", stream.column());
                else if (curPunc == "{") pushContext(state, "}", stream.column());
                else if (/[\]\}\)]/.test(curPunc)) {
                  while (state.context && state.context.type == "pattern") popContext(state);
                  if (state.context && curPunc == state.context.type) popContext(state);
                }
                else if (curPunc == "." && state.context && state.context.type == "pattern") popContext(state);
                else if (/atom|string|variable/.test(style) && state.context) {
                  if (/[\}\]]/.test(state.context.type))
                    pushContext(state, "pattern", stream.column());
                  else if (state.context.type == "pattern" && !state.context.align) {
                    state.context.align = true;
                    state.context.col = stream.column();
                  }
                }
          
                return style;
              },
          
              indent: function(state, textAfter) {
                var firstChar = textAfter && textAfter.charAt(0);
                var context = state.context;
                if (/[\]\}]/.test(firstChar))
                  while (context && context.type == "pattern") context = context.prev;
          
                var closing = context && firstChar == context.type;
                if (!context)
                  return 0;
                else if (context.type == "pattern")
                  return context.col;
                else if (context.align)
                  return context.col + (closing ? 0 : 1);
                else
                  return context.indent + (closing ? 0 : indentUnit);
              }
            };
          });
          
          CodeMirror.defineMIME("application/sparql-query", "sparql");
          
          });
          
      • spreadsheet
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Spreadsheet mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="spreadsheet.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Spreadsheet</a>
            </ul>
          </div>
          
          <article>
            <h2>Spreadsheet mode</h2>
            <form><textarea id="code" name="code">=IF(A1:B2, TRUE, FALSE) / 100</textarea></form>
          
            <script>
              var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                lineNumbers: true,
                matchBrackets: true,
                extraKeys: {"Tab":  "indentAuto"}
              });
            </script>
          
            <p><strong>MIME types defined:</strong> <code>text/x-spreadsheet</code>.</p>
            
            <h3>The Spreadsheet Mode</h3>
            <p> Created by <a href="https://github.com/robertleeplummerjr">Robert Plummer</a></p>
          </article>
          
        • spreadsheet.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineMode("spreadsheet", function () {
              return {
                startState: function () {
                  return {
                    stringType: null,
                    stack: []
                  };
                },
                token: function (stream, state) {
                  if (!stream) return;
          
                  //check for state changes
                  if (state.stack.length === 0) {
                    //strings
                    if ((stream.peek() == '"') || (stream.peek() == "'")) {
                      state.stringType = stream.peek();
                      stream.next(); // Skip quote
                      state.stack.unshift("string");
                    }
                  }
          
                  //return state
                  //stack has
                  switch (state.stack[0]) {
                  case "string":
                    while (state.stack[0] === "string" && !stream.eol()) {
                      if (stream.peek() === state.stringType) {
                        stream.next(); // Skip quote
                        state.stack.shift(); // Clear flag
                      } else if (stream.peek() === "\\") {
                        stream.next();
                        stream.next();
                      } else {
                        stream.match(/^.[^\\\"\']*/);
                      }
                    }
                    return "string";
          
                  case "characterClass":
                    while (state.stack[0] === "characterClass" && !stream.eol()) {
                      if (!(stream.match(/^[^\]\\]+/) || stream.match(/^\\./)))
                        state.stack.shift();
                    }
                    return "operator";
                  }
          
                  var peek = stream.peek();
          
                  //no stack
                  switch (peek) {
                  case "[":
                    stream.next();
                    state.stack.unshift("characterClass");
                    return "bracket";
                  case ":":
                    stream.next();
                    return "operator";
                  case "\\":
                    if (stream.match(/\\[a-z]+/)) return "string-2";
                    else return null;
                  case ".":
                  case ",":
                  case ";":
                  case "*":
                  case "-":
                  case "+":
                  case "^":
                  case "<":
                  case "/":
                  case "=":
                    stream.next();
                    return "atom";
                  case "$":
                    stream.next();
                    return "builtin";
                  }
          
                  if (stream.match(/\d+/)) {
                    if (stream.match(/^\w+/)) return "error";
                    return "number";
                  } else if (stream.match(/^[a-zA-Z_]\w*/)) {
                    if (stream.match(/(?=[\(.])/, false)) return "keyword";
                    return "variable-2";
                  } else if (["[", "]", "(", ")", "{", "}"].indexOf(peek) != -1) {
                    stream.next();
                    return "bracket";
                  } else if (!stream.eatSpace()) {
                    stream.next();
                  }
                  return null;
                }
              };
            });
          
            CodeMirror.defineMIME("text/x-spreadsheet", "spreadsheet");
          });
          
      • sql
        • index.html
          <!doctype html>
          
          <title>CodeMirror: SQL Mode for CodeMirror</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css" />
          <script src="../../lib/codemirror.js"></script>
          <script src="sql.js"></script>
          <link rel="stylesheet" href="../../addon/hint/show-hint.css" />
          <script src="../../addon/hint/show-hint.js"></script>
          <script src="../../addon/hint/sql-hint.js"></script>
          <style>
          .CodeMirror {
              border-top: 1px solid black;
              border-bottom: 1px solid black;
          }
                  </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">SQL Mode for CodeMirror</a>
            </ul>
          </div>
          
          <article>
          <h2>SQL Mode for CodeMirror</h2>
          <form>
                      <textarea id="code" name="code">-- SQL Mode for CodeMirror
          SELECT SQL_NO_CACHE DISTINCT
          		@var1 AS `val1`, @'val2', @global.'sql_mode',
          		1.1 AS `float_val`, .14 AS `another_float`, 0.09e3 AS `int_with_esp`,
          		0xFA5 AS `hex`, x'fa5' AS `hex2`, 0b101 AS `bin`, b'101' AS `bin2`,
          		DATE '1994-01-01' AS `sql_date`, { T "1994-01-01" } AS `odbc_date`,
          		'my string', _utf8'your string', N'her string',
                  TRUE, FALSE, UNKNOWN
          	FROM DUAL
          	-- space needed after '--'
          	# 1 line comment
          	/* multiline
          	comment! */
          	LIMIT 1 OFFSET 0;
          </textarea>
                      </form>
                      <p><strong>MIME types defined:</strong> 
                      <code><a href="?mime=text/x-sql">text/x-sql</a></code>,
                      <code><a href="?mime=text/x-mysql">text/x-mysql</a></code>,
                      <code><a href="?mime=text/x-mariadb">text/x-mariadb</a></code>,
                      <code><a href="?mime=text/x-cassandra">text/x-cassandra</a></code>,
                      <code><a href="?mime=text/x-plsql">text/x-plsql</a></code>,
                      <code><a href="?mime=text/x-mssql">text/x-mssql</a></code>,
                      <code><a href="?mime=text/x-hive">text/x-hive</a></code>.
                  </p>
          <script>
          window.onload = function() {
            var mime = 'text/x-mariadb';
            // get mime type
            if (window.location.href.indexOf('mime=') > -1) {
              mime = window.location.href.substr(window.location.href.indexOf('mime=') + 5);
            }
            window.editor = CodeMirror.fromTextArea(document.getElementById('code'), {
              mode: mime,
              indentWithTabs: true,
              smartIndent: true,
              lineNumbers: true,
              matchBrackets : true,
              autofocus: true,
              extraKeys: {"Ctrl-Space": "autocomplete"},
              hintOptions: {tables: {
                users: {name: null, score: null, birthDate: null},
                countries: {name: null, population: null, size: null}
              }}
            });
          };
          </script>
          
          </article>
          
        • sql.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("sql", function(config, parserConfig) {
            "use strict";
          
            var client         = parserConfig.client || {},
                atoms          = parserConfig.atoms || {"false": true, "true": true, "null": true},
                builtin        = parserConfig.builtin || {},
                keywords       = parserConfig.keywords || {},
                operatorChars  = parserConfig.operatorChars || /^[*+\-%<>!=&|~^]/,
                support        = parserConfig.support || {},
                hooks          = parserConfig.hooks || {},
                dateSQL        = parserConfig.dateSQL || {"date" : true, "time" : true, "timestamp" : true};
          
            function tokenBase(stream, state) {
              var ch = stream.next();
          
              // call hooks from the mime type
              if (hooks[ch]) {
                var result = hooks[ch](stream, state);
                if (result !== false) return result;
              }
          
              if (support.hexNumber == true &&
                ((ch == "0" && stream.match(/^[xX][0-9a-fA-F]+/))
                || (ch == "x" || ch == "X") && stream.match(/^'[0-9a-fA-F]+'/))) {
                // hex
                // ref: http://dev.mysql.com/doc/refman/5.5/en/hexadecimal-literals.html
                return "number";
              } else if (support.binaryNumber == true &&
                (((ch == "b" || ch == "B") && stream.match(/^'[01]+'/))
                || (ch == "0" && stream.match(/^b[01]+/)))) {
                // bitstring
                // ref: http://dev.mysql.com/doc/refman/5.5/en/bit-field-literals.html
                return "number";
              } else if (ch.charCodeAt(0) > 47 && ch.charCodeAt(0) < 58) {
                // numbers
                // ref: http://dev.mysql.com/doc/refman/5.5/en/number-literals.html
                    stream.match(/^[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?/);
                support.decimallessFloat == true && stream.eat('.');
                return "number";
              } else if (ch == "?" && (stream.eatSpace() || stream.eol() || stream.eat(";"))) {
                // placeholders
                return "variable-3";
              } else if (ch == "'" || (ch == '"' && support.doubleQuote)) {
                // strings
                // ref: http://dev.mysql.com/doc/refman/5.5/en/string-literals.html
                state.tokenize = tokenLiteral(ch);
                return state.tokenize(stream, state);
              } else if ((((support.nCharCast == true && (ch == "n" || ch == "N"))
                  || (support.charsetCast == true && ch == "_" && stream.match(/[a-z][a-z0-9]*/i)))
                  && (stream.peek() == "'" || stream.peek() == '"'))) {
                // charset casting: _utf8'str', N'str', n'str'
                // ref: http://dev.mysql.com/doc/refman/5.5/en/string-literals.html
                return "keyword";
              } else if (/^[\(\),\;\[\]]/.test(ch)) {
                // no highlightning
                return null;
              } else if (support.commentSlashSlash && ch == "/" && stream.eat("/")) {
                // 1-line comment
                stream.skipToEnd();
                return "comment";
              } else if ((support.commentHash && ch == "#")
                  || (ch == "-" && stream.eat("-") && (!support.commentSpaceRequired || stream.eat(" ")))) {
                // 1-line comments
                // ref: https://kb.askmonty.org/en/comment-syntax/
                stream.skipToEnd();
                return "comment";
              } else if (ch == "/" && stream.eat("*")) {
                // multi-line comments
                // ref: https://kb.askmonty.org/en/comment-syntax/
                state.tokenize = tokenComment;
                return state.tokenize(stream, state);
              } else if (ch == ".") {
                // .1 for 0.1
                if (support.zerolessFloat == true && stream.match(/^(?:\d+(?:e[+-]?\d+)?)/i)) {
                  return "number";
                }
                // .table_name (ODBC)
                // // ref: http://dev.mysql.com/doc/refman/5.6/en/identifier-qualifiers.html
                if (support.ODBCdotTable == true && stream.match(/^[a-zA-Z_]+/)) {
                  return "variable-2";
                }
              } else if (operatorChars.test(ch)) {
                // operators
                stream.eatWhile(operatorChars);
                return null;
              } else if (ch == '{' &&
                  (stream.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/) || stream.match(/^( )*(d|D|t|T|ts|TS)( )*"[^"]*"( )*}/))) {
                // dates (weird ODBC syntax)
                // ref: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html
                return "number";
              } else {
                stream.eatWhile(/^[_\w\d]/);
                var word = stream.current().toLowerCase();
                // dates (standard SQL syntax)
                // ref: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html
                if (dateSQL.hasOwnProperty(word) && (stream.match(/^( )+'[^']*'/) || stream.match(/^( )+"[^"]*"/)))
                  return "number";
                if (atoms.hasOwnProperty(word)) return "atom";
                if (builtin.hasOwnProperty(word)) return "builtin";
                if (keywords.hasOwnProperty(word)) return "keyword";
                if (client.hasOwnProperty(word)) return "string-2";
                return null;
              }
            }
          
            // 'string', with char specified in quote escaped by '\'
            function tokenLiteral(quote) {
              return function(stream, state) {
                var escaped = false, ch;
                while ((ch = stream.next()) != null) {
                  if (ch == quote && !escaped) {
                    state.tokenize = tokenBase;
                    break;
                  }
                  escaped = !escaped && ch == "\\";
                }
                return "string";
              };
            }
            function tokenComment(stream, state) {
              while (true) {
                if (stream.skipTo("*")) {
                  stream.next();
                  if (stream.eat("/")) {
                    state.tokenize = tokenBase;
                    break;
                  }
                } else {
                  stream.skipToEnd();
                  break;
                }
              }
              return "comment";
            }
          
            function pushContext(stream, state, type) {
              state.context = {
                prev: state.context,
                indent: stream.indentation(),
                col: stream.column(),
                type: type
              };
            }
          
            function popContext(state) {
              state.indent = state.context.indent;
              state.context = state.context.prev;
            }
          
            return {
              startState: function() {
                return {tokenize: tokenBase, context: null};
              },
          
              token: function(stream, state) {
                if (stream.sol()) {
                  if (state.context && state.context.align == null)
                    state.context.align = false;
                }
                if (stream.eatSpace()) return null;
          
                var style = state.tokenize(stream, state);
                if (style == "comment") return style;
          
                if (state.context && state.context.align == null)
                  state.context.align = true;
          
                var tok = stream.current();
                if (tok == "(")
                  pushContext(stream, state, ")");
                else if (tok == "[")
                  pushContext(stream, state, "]");
                else if (state.context && state.context.type == tok)
                  popContext(state);
                return style;
              },
          
              indent: function(state, textAfter) {
                var cx = state.context;
                if (!cx) return CodeMirror.Pass;
                var closing = textAfter.charAt(0) == cx.type;
                if (cx.align) return cx.col + (closing ? 0 : 1);
                else return cx.indent + (closing ? 0 : config.indentUnit);
              },
          
              blockCommentStart: "/*",
              blockCommentEnd: "*/",
              lineComment: support.commentSlashSlash ? "//" : support.commentHash ? "#" : null
            };
          });
          
          (function() {
            "use strict";
          
            // `identifier`
            function hookIdentifier(stream) {
              // MySQL/MariaDB identifiers
              // ref: http://dev.mysql.com/doc/refman/5.6/en/identifier-qualifiers.html
              var ch;
              while ((ch = stream.next()) != null) {
                if (ch == "`" && !stream.eat("`")) return "variable-2";
              }
              stream.backUp(stream.current().length - 1);
              return stream.eatWhile(/\w/) ? "variable-2" : null;
            }
          
            // variable token
            function hookVar(stream) {
              // variables
              // @@prefix.varName @varName
              // varName can be quoted with ` or ' or "
              // ref: http://dev.mysql.com/doc/refman/5.5/en/user-variables.html
              if (stream.eat("@")) {
                stream.match(/^session\./);
                stream.match(/^local\./);
                stream.match(/^global\./);
              }
          
              if (stream.eat("'")) {
                stream.match(/^.*'/);
                return "variable-2";
              } else if (stream.eat('"')) {
                stream.match(/^.*"/);
                return "variable-2";
              } else if (stream.eat("`")) {
                stream.match(/^.*`/);
                return "variable-2";
              } else if (stream.match(/^[0-9a-zA-Z$\.\_]+/)) {
                return "variable-2";
              }
              return null;
            };
          
            // short client keyword token
            function hookClient(stream) {
              // \N means NULL
              // ref: http://dev.mysql.com/doc/refman/5.5/en/null-values.html
              if (stream.eat("N")) {
                  return "atom";
              }
              // \g, etc
              // ref: http://dev.mysql.com/doc/refman/5.5/en/mysql-commands.html
              return stream.match(/^[a-zA-Z.#!?]/) ? "variable-2" : null;
            }
          
            // these keywords are used by all SQL dialects (however, a mode can still overwrite it)
            var sqlKeywords = "alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where ";
          
            // turn a space-separated list into an array
            function set(str) {
              var obj = {}, words = str.split(" ");
              for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
              return obj;
            }
          
            // A generic SQL Mode. It's not a standard, it just try to support what is generally supported
            CodeMirror.defineMIME("text/x-sql", {
              name: "sql",
              keywords: set(sqlKeywords + "begin"),
              builtin: set("bool boolean bit blob enum long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision real date datetime year unsigned signed decimal numeric"),
              atoms: set("false true null unknown"),
              operatorChars: /^[*+\-%<>!=]/,
              dateSQL: set("date time timestamp"),
              support: set("ODBCdotTable doubleQuote binaryNumber hexNumber")
            });
          
            CodeMirror.defineMIME("text/x-mssql", {
              name: "sql",
              client: set("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),
              keywords: set(sqlKeywords + "begin trigger proc view index for add constraint key primary foreign collate clustered nonclustered declare"),
              builtin: set("bigint numeric bit smallint decimal smallmoney int tinyint money float real char varchar text nchar nvarchar ntext binary varbinary image cursor timestamp hierarchyid uniqueidentifier sql_variant xml table "),
              atoms: set("false true null unknown"),
              operatorChars: /^[*+\-%<>!=]/,
              dateSQL: set("date datetimeoffset datetime2 smalldatetime datetime time"),
              hooks: {
                "@":   hookVar
              }
            });
          
            CodeMirror.defineMIME("text/x-mysql", {
              name: "sql",
              client: set("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),
              keywords: set(sqlKeywords + "accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group group_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),
              builtin: set("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),
              atoms: set("false true null unknown"),
              operatorChars: /^[*+\-%<>!=&|^]/,
              dateSQL: set("date time timestamp"),
              support: set("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),
              hooks: {
                "@":   hookVar,
                "`":   hookIdentifier,
                "\\":  hookClient
              }
            });
          
            CodeMirror.defineMIME("text/x-mariadb", {
              name: "sql",
              client: set("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),
              keywords: set(sqlKeywords + "accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group groupby_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),
              builtin: set("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),
              atoms: set("false true null unknown"),
              operatorChars: /^[*+\-%<>!=&|^]/,
              dateSQL: set("date time timestamp"),
              support: set("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),
              hooks: {
                "@":   hookVar,
                "`":   hookIdentifier,
                "\\":  hookClient
              }
            });
          
            // the query language used by Apache Cassandra is called CQL, but this mime type
            // is called Cassandra to avoid confusion with Contextual Query Language
            CodeMirror.defineMIME("text/x-cassandra", {
              name: "sql",
              client: { },
              keywords: set("add all allow alter and any apply as asc authorize batch begin by clustering columnfamily compact consistency count create custom delete desc distinct drop each_quorum exists filtering from grant if in index insert into key keyspace keyspaces level limit local_one local_quorum modify nan norecursive nosuperuser not of on one order password permission permissions primary quorum rename revoke schema select set storage superuser table three to token truncate ttl two type unlogged update use user users using values where with writetime"),
              builtin: set("ascii bigint blob boolean counter decimal double float frozen inet int list map static text timestamp timeuuid tuple uuid varchar varint"),
              atoms: set("false true infinity NaN"),
              operatorChars: /^[<>=]/,
              dateSQL: { },
              support: set("commentSlashSlash decimallessFloat"),
              hooks: { }
            });
          
            // this is based on Peter Raganitsch's 'plsql' mode
            CodeMirror.defineMIME("text/x-plsql", {
              name:       "sql",
              client:     set("appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap"),
              keywords:   set("abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work"),
              builtin:    set("abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least lenght lenghtb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml"),
              operatorChars: /^[*+\-%<>!=~]/,
              dateSQL:    set("date time timestamp"),
              support:    set("doubleQuote nCharCast zerolessFloat binaryNumber hexNumber")
            });
          
            // Created to support specific hive keywords
            CodeMirror.defineMIME("text/x-hive", {
              name: "sql",
              keywords: set("select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external false fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger true unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with"),
              builtin: set("bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype"),
              atoms: set("false true null unknown"),
              operatorChars: /^[*+\-%<>!=]/,
              dateSQL: set("date timestamp"),
              support: set("ODBCdotTable doubleQuote binaryNumber hexNumber")
            });
          }());
          
          });
          
          /*
            How Properties of Mime Types are used by SQL Mode
            =================================================
          
            keywords:
              A list of keywords you want to be highlighted.
            builtin:
              A list of builtin types you want to be highlighted (if you want types to be of class "builtin" instead of "keyword").
            operatorChars:
              All characters that must be handled as operators.
            client:
              Commands parsed and executed by the client (not the server).
            support:
              A list of supported syntaxes which are not common, but are supported by more than 1 DBMS.
              * ODBCdotTable: .tableName
              * zerolessFloat: .1
              * doubleQuote
              * nCharCast: N'string'
              * charsetCast: _utf8'string'
              * commentHash: use # char for comments
              * commentSlashSlash: use // for comments
              * commentSpaceRequired: require a space after -- for comments
            atoms:
              Keywords that must be highlighted as atoms,. Some DBMS's support more atoms than others:
              UNKNOWN, INFINITY, UNDERFLOW, NaN...
            dateSQL:
              Used for date/time SQL standard syntax, because not all DBMS's support same temporal types.
          */
          
      • stex
        • index.html
          <!doctype html>
          
          <title>CodeMirror: sTeX mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="stex.js"></script>
          <style>.CodeMirror {background: #f8f8f8;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">sTeX</a>
            </ul>
          </div>
          
          <article>
          <h2>sTeX mode</h2>
          <form><textarea id="code" name="code">
          \begin{module}[id=bbt-size]
          \importmodule[balanced-binary-trees]{balanced-binary-trees}
          \importmodule[\KWARCslides{dmath/en/cardinality}]{cardinality}
          
          \begin{frame}
            \frametitle{Size Lemma for Balanced Trees}
            \begin{itemize}
            \item
              \begin{assertion}[id=size-lemma,type=lemma] 
              Let $G=\tup{V,E}$ be a \termref[cd=binary-trees]{balanced binary tree} 
              of \termref[cd=graph-depth,name=vertex-depth]{depth}$n>i$, then the set
               $\defeq{\livar{V}i}{\setst{\inset{v}{V}}{\gdepth{v} = i}}$ of
              \termref[cd=graphs-intro,name=node]{nodes} at 
              \termref[cd=graph-depth,name=vertex-depth]{depth} $i$ has
              \termref[cd=cardinality,name=cardinality]{cardinality} $\power2i$.
             \end{assertion}
            \item
              \begin{sproof}[id=size-lemma-pf,proofend=,for=size-lemma]{via induction over the depth $i$.}
                \begin{spfcases}{We have to consider two cases}
                  \begin{spfcase}{$i=0$}
                    \begin{spfstep}[display=flow]
                      then $\livar{V}i=\set{\livar{v}r}$, where $\livar{v}r$ is the root, so
                      $\eq{\card{\livar{V}0},\card{\set{\livar{v}r}},1,\power20}$.
                    \end{spfstep}
                  \end{spfcase}
                  \begin{spfcase}{$i>0$}
                    \begin{spfstep}[display=flow]
                     then $\livar{V}{i-1}$ contains $\power2{i-1}$ vertexes 
                     \begin{justification}[method=byIH](IH)\end{justification}
                    \end{spfstep}
                    \begin{spfstep}
                     By the \begin{justification}[method=byDef]definition of a binary
                        tree\end{justification}, each $\inset{v}{\livar{V}{i-1}}$ is a leaf or has
                      two children that are at depth $i$.
                    \end{spfstep}
                    \begin{spfstep}
                     As $G$ is \termref[cd=balanced-binary-trees,name=balanced-binary-tree]{balanced} and $\gdepth{G}=n>i$, $\livar{V}{i-1}$ cannot contain
                      leaves.
                    \end{spfstep}
                    \begin{spfstep}[type=conclusion]
                     Thus $\eq{\card{\livar{V}i},{\atimes[cdot]{2,\card{\livar{V}{i-1}}}},{\atimes[cdot]{2,\power2{i-1}}},\power2i}$.
                    \end{spfstep}
                  \end{spfcase}
                \end{spfcases}
              \end{sproof}
            \item 
              \begin{assertion}[id=fbbt,type=corollary]	
                A fully balanced tree of depth $d$ has $\power2{d+1}-1$ nodes.
              \end{assertion}
            \item
                \begin{sproof}[for=fbbt,id=fbbt-pf]{}
                  \begin{spfstep}
                    Let $\defeq{G}{\tup{V,E}}$ be a fully balanced tree
                  \end{spfstep}
                  \begin{spfstep}
                    Then $\card{V}=\Sumfromto{i}1d{\power2i}= \power2{d+1}-1$.
                  \end{spfstep}
                \end{sproof}
              \end{itemize}
            \end{frame}
          \begin{note}
            \begin{omtext}[type=conclusion,for=binary-tree]
              This shows that balanced binary trees grow in breadth very quickly, a consequence of
              this is that they are very shallow (and this compute very fast), which is the essence of
              the next result.
            \end{omtext}
          \end{note}
          \end{module}
          
          %%% Local Variables: 
          %%% mode: LaTeX
          %%% TeX-master: "all"
          %%% End: \end{document}
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {});
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-stex</code>.</p>
          
              <p><strong>Parsing/Highlighting Tests:</strong> <a href="../../test/index.html#stex_*">normal</a>,  <a href="../../test/index.html#verbose,stex_*">verbose</a>.</p>
          
            </article>
          
        • stex.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          /*
           * Author: Constantin Jucovschi (c.jucovschi@jacobs-university.de)
           * Licence: MIT
           */
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineMode("stex", function() {
              "use strict";
          
              function pushCommand(state, command) {
                state.cmdState.push(command);
              }
          
              function peekCommand(state) {
                if (state.cmdState.length > 0) {
                  return state.cmdState[state.cmdState.length - 1];
                } else {
                  return null;
                }
              }
          
              function popCommand(state) {
                var plug = state.cmdState.pop();
                if (plug) {
                  plug.closeBracket();
                }
              }
          
              // returns the non-default plugin closest to the end of the list
              function getMostPowerful(state) {
                var context = state.cmdState;
                for (var i = context.length - 1; i >= 0; i--) {
                  var plug = context[i];
                  if (plug.name == "DEFAULT") {
                    continue;
                  }
                  return plug;
                }
                return { styleIdentifier: function() { return null; } };
              }
          
              function addPluginPattern(pluginName, cmdStyle, styles) {
                return function () {
                  this.name = pluginName;
                  this.bracketNo = 0;
                  this.style = cmdStyle;
                  this.styles = styles;
                  this.argument = null;   // \begin and \end have arguments that follow. These are stored in the plugin
          
                  this.styleIdentifier = function() {
                    return this.styles[this.bracketNo - 1] || null;
                  };
                  this.openBracket = function() {
                    this.bracketNo++;
                    return "bracket";
                  };
                  this.closeBracket = function() {};
                };
              }
          
              var plugins = {};
          
              plugins["importmodule"] = addPluginPattern("importmodule", "tag", ["string", "builtin"]);
              plugins["documentclass"] = addPluginPattern("documentclass", "tag", ["", "atom"]);
              plugins["usepackage"] = addPluginPattern("usepackage", "tag", ["atom"]);
              plugins["begin"] = addPluginPattern("begin", "tag", ["atom"]);
              plugins["end"] = addPluginPattern("end", "tag", ["atom"]);
          
              plugins["DEFAULT"] = function () {
                this.name = "DEFAULT";
                this.style = "tag";
          
                this.styleIdentifier = this.openBracket = this.closeBracket = function() {};
              };
          
              function setState(state, f) {
                state.f = f;
              }
          
              // called when in a normal (no environment) context
              function normal(source, state) {
                var plug;
                // Do we look like '\command' ?  If so, attempt to apply the plugin 'command'
                if (source.match(/^\\[a-zA-Z@]+/)) {
                  var cmdName = source.current().slice(1);
                  plug = plugins[cmdName] || plugins["DEFAULT"];
                  plug = new plug();
                  pushCommand(state, plug);
                  setState(state, beginParams);
                  return plug.style;
                }
          
                // escape characters
                if (source.match(/^\\[$&%#{}_]/)) {
                  return "tag";
                }
          
                // white space control characters
                if (source.match(/^\\[,;!\/\\]/)) {
                  return "tag";
                }
          
                // find if we're starting various math modes
                if (source.match("\\[")) {
                  setState(state, function(source, state){ return inMathMode(source, state, "\\]"); });
                  return "keyword";
                }
                if (source.match("$$")) {
                  setState(state, function(source, state){ return inMathMode(source, state, "$$"); });
                  return "keyword";
                }
                if (source.match("$")) {
                  setState(state, function(source, state){ return inMathMode(source, state, "$"); });
                  return "keyword";
                }
          
                var ch = source.next();
                if (ch == "%") {
                  source.skipToEnd();
                  return "comment";
                } else if (ch == '}' || ch == ']') {
                  plug = peekCommand(state);
                  if (plug) {
                    plug.closeBracket(ch);
                    setState(state, beginParams);
                  } else {
                    return "error";
                  }
                  return "bracket";
                } else if (ch == '{' || ch == '[') {
                  plug = plugins["DEFAULT"];
                  plug = new plug();
                  pushCommand(state, plug);
                  return "bracket";
                } else if (/\d/.test(ch)) {
                  source.eatWhile(/[\w.%]/);
                  return "atom";
                } else {
                  source.eatWhile(/[\w\-_]/);
                  plug = getMostPowerful(state);
                  if (plug.name == 'begin') {
                    plug.argument = source.current();
                  }
                  return plug.styleIdentifier();
                }
              }
          
              function inMathMode(source, state, endModeSeq) {
                if (source.eatSpace()) {
                  return null;
                }
                if (source.match(endModeSeq)) {
                  setState(state, normal);
                  return "keyword";
                }
                if (source.match(/^\\[a-zA-Z@]+/)) {
                  return "tag";
                }
                if (source.match(/^[a-zA-Z]+/)) {
                  return "variable-2";
                }
                // escape characters
                if (source.match(/^\\[$&%#{}_]/)) {
                  return "tag";
                }
                // white space control characters
                if (source.match(/^\\[,;!\/]/)) {
                  return "tag";
                }
                // special math-mode characters
                if (source.match(/^[\^_&]/)) {
                  return "tag";
                }
                // non-special characters
                if (source.match(/^[+\-<>|=,\/@!*:;'"`~#?]/)) {
                  return null;
                }
                if (source.match(/^(\d+\.\d*|\d*\.\d+|\d+)/)) {
                  return "number";
                }
                var ch = source.next();
                if (ch == "{" || ch == "}" || ch == "[" || ch == "]" || ch == "(" || ch == ")") {
                  return "bracket";
                }
          
                if (ch == "%") {
                  source.skipToEnd();
                  return "comment";
                }
                return "error";
              }
          
              function beginParams(source, state) {
                var ch = source.peek(), lastPlug;
                if (ch == '{' || ch == '[') {
                  lastPlug = peekCommand(state);
                  lastPlug.openBracket(ch);
                  source.eat(ch);
                  setState(state, normal);
                  return "bracket";
                }
                if (/[ \t\r]/.test(ch)) {
                  source.eat(ch);
                  return null;
                }
                setState(state, normal);
                popCommand(state);
          
                return normal(source, state);
              }
          
              return {
                startState: function() {
                  return {
                    cmdState: [],
                    f: normal
                  };
                },
                copyState: function(s) {
                  return {
                    cmdState: s.cmdState.slice(),
                    f: s.f
                  };
                },
                token: function(stream, state) {
                  return state.f(stream, state);
                },
                blankLine: function(state) {
                  state.f = normal;
                  state.cmdState.length = 0;
                },
                lineComment: "%"
              };
            });
          
            CodeMirror.defineMIME("text/x-stex", "stex");
            CodeMirror.defineMIME("text/x-latex", "stex");
          
          });
          
        • test.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function() {
            var mode = CodeMirror.getMode({tabSize: 4}, "stex");
            function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
          
            MT("word",
               "foo");
          
            MT("twoWords",
               "foo bar");
          
            MT("beginEndDocument",
               "[tag \\begin][bracket {][atom document][bracket }]",
               "[tag \\end][bracket {][atom document][bracket }]");
          
            MT("beginEndEquation",
               "[tag \\begin][bracket {][atom equation][bracket }]",
               "  E=mc^2",
               "[tag \\end][bracket {][atom equation][bracket }]");
          
            MT("beginModule",
               "[tag \\begin][bracket {][atom module][bracket }[[]]]");
          
            MT("beginModuleId",
               "[tag \\begin][bracket {][atom module][bracket }[[]id=bbt-size[bracket ]]]");
          
            MT("importModule",
               "[tag \\importmodule][bracket [[][string b-b-t][bracket ]]{][builtin b-b-t][bracket }]");
          
            MT("importModulePath",
               "[tag \\importmodule][bracket [[][tag \\KWARCslides][bracket {][string dmath/en/cardinality][bracket }]]{][builtin card][bracket }]");
          
            MT("psForPDF",
               "[tag \\PSforPDF][bracket [[][atom 1][bracket ]]{]#1[bracket }]");
          
            MT("comment",
               "[comment % foo]");
          
            MT("tagComment",
               "[tag \\item][comment % bar]");
          
            MT("commentTag",
               " [comment % \\item]");
          
            MT("commentLineBreak",
               "[comment %]",
               "foo");
          
            MT("tagErrorCurly",
               "[tag \\begin][error }][bracket {]");
          
            MT("tagErrorSquare",
               "[tag \\item][error ]]][bracket {]");
          
            MT("commentCurly",
               "[comment % }]");
          
            MT("tagHash",
               "the [tag \\#] key");
          
            MT("tagNumber",
               "a [tag \\$][atom 5] stetson");
          
            MT("tagPercent",
               "[atom 100][tag \\%] beef");
          
            MT("tagAmpersand",
               "L [tag \\&] N");
          
            MT("tagUnderscore",
               "foo[tag \\_]bar");
          
            MT("tagBracketOpen",
               "[tag \\emph][bracket {][tag \\{][bracket }]");
          
            MT("tagBracketClose",
               "[tag \\emph][bracket {][tag \\}][bracket }]");
          
            MT("tagLetterNumber",
               "section [tag \\S][atom 1]");
          
            MT("textTagNumber",
               "para [tag \\P][atom 2]");
          
            MT("thinspace",
               "x[tag \\,]y");
          
            MT("thickspace",
               "x[tag \\;]y");
          
            MT("negativeThinspace",
               "x[tag \\!]y");
          
            MT("periodNotSentence",
               "J.\\ L.\\ is");
          
            MT("periodSentence",
               "X[tag \\@]. The");
          
            MT("italicCorrection",
               "[bracket {][tag \\em] If[tag \\/][bracket }] I");
          
            MT("tagBracket",
               "[tag \\newcommand][bracket {][tag \\pop][bracket }]");
          
            MT("inlineMathTagFollowedByNumber",
               "[keyword $][tag \\pi][number 2][keyword $]");
          
            MT("inlineMath",
               "[keyword $][number 3][variable-2 x][tag ^][number 2.45]-[tag \\sqrt][bracket {][tag \\$\\alpha][bracket }] = [number 2][keyword $] other text");
          
            MT("displayMath",
               "More [keyword $$]\t[variable-2 S][tag ^][variable-2 n][tag \\sum] [variable-2 i][keyword $$] other text");
          
            MT("mathWithComment",
               "[keyword $][variable-2 x] [comment % $]",
               "[variable-2 y][keyword $] other text");
          
            MT("lineBreakArgument",
              "[tag \\\\][bracket [[][atom 1cm][bracket ]]]");
          })();
          
      • stylus
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Stylus mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <link rel="stylesheet" href="../../addon/hint/show-hint.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="stylus.js"></script>
          <script src="../../addon/hint/show-hint.js"></script>
          <script src="../../addon/hint/css-hint.js"></script>
          <style>.CodeMirror {background: #f8f8f8;} form{margin-bottom: .7em;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Stylus</a>
            </ul>
          </div>
          
          <article>
          <h2>Stylus mode</h2>
          <form><textarea id="code" name="code">
          /* Stylus mode */
          
          #id,
          .class,
          article
            font-family Arial, sans-serif
          
          #id,
          .class,
          article {
            font-family: Arial, sans-serif;
          }
          
          // Variables
          font-size-base = 16px
          line-height-base = 1.5
          font-family-base = "Helvetica Neue", Helvetica, Arial, sans-serif
          text-color = lighten(#000, 20%)
          
          body
            font font-size-base/line-height-base font-family-base
            color text-color
          
          body {
            font: 400 16px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif;
            color: #333;
          }
          
          // Variables
          link-color = darken(#428bca, 6.5%)
          link-hover-color = darken(link-color, 15%)
          link-decoration = none
          link-hover-decoration = false
          
          // Mixin
          tab-focus()
            outline thin dotted
            outline 5px auto -webkit-focus-ring-color
            outline-offset -2px
          
          a
            color link-color
            if link-decoration
              text-decoration link-decoration
            &:hover
            &:focus
              color link-hover-color
              if link-hover-decoration
                text-decoration link-hover-decoration
            &:focus
              tab-focus()
          
          a {
            color: #3782c4;
            text-decoration: none;
          }
          a:hover,
          a:focus {
            color: #2f6ea7;
          }
          a:focus {
            outline: thin dotted;
            outline: 5px auto -webkit-focus-ring-color;
            outline-offset: -2px;
          }
          </textarea>
          </form>
          <script>
            var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
              extraKeys: {"Ctrl-Space": "autocomplete"},
              tabSize: 2
            });
          </script>
          
          <p><strong>MIME types defined:</strong> <code>text/x-styl</code>.</p>
          <p>Created by <a href="https://github.com/dmitrykiselyov">Dmitry Kiselyov</a></p>
          </article>
          
        • stylus.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // Stylus mode created by Dmitry Kiselyov http://git.io/AaRB
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineMode("stylus", function(config) {
              var indentUnit = config.indentUnit,
                  tagKeywords = keySet(tagKeywords_),
                  tagVariablesRegexp = /^(a|b|i|s|col|em)$/i,
                  propertyKeywords = keySet(propertyKeywords_),
                  nonStandardPropertyKeywords = keySet(nonStandardPropertyKeywords_),
                  valueKeywords = keySet(valueKeywords_),
                  colorKeywords = keySet(colorKeywords_),
                  documentTypes = keySet(documentTypes_),
                  documentTypesRegexp = wordRegexp(documentTypes_),
                  mediaFeatures = keySet(mediaFeatures_),
                  mediaTypes = keySet(mediaTypes_),
                  fontProperties = keySet(fontProperties_),
                  operatorsRegexp = /^\s*([.]{2,3}|&&|\|\||\*\*|[?!=:]?=|[-+*\/%<>]=?|\?:|\~)/,
                  wordOperatorKeywordsRegexp = wordRegexp(wordOperatorKeywords_),
                  blockKeywords = keySet(blockKeywords_),
                  vendorPrefixesRegexp = new RegExp(/^\-(moz|ms|o|webkit)-/i),
                  commonAtoms = keySet(commonAtoms_),
                  firstWordMatch = "",
                  states = {},
                  ch,
                  style,
                  type,
                  override;
          
              /**
               * Tokenizers
               */
              function tokenBase(stream, state) {
                firstWordMatch = stream.string.match(/(^[\w-]+\s*=\s*$)|(^\s*[\w-]+\s*=\s*[\w-])|(^\s*(\.|#|@|\$|\&|\[|\d|\+|::?|\{|\>|~|\/)?\s*[\w-]*([a-z0-9-]|\*|\/\*)(\(|,)?)/);
                state.context.line.firstWord = firstWordMatch ? firstWordMatch[0].replace(/^\s*/, "") : "";
                state.context.line.indent = stream.indentation();
                ch = stream.peek();
          
                // Line comment
                if (stream.match("//")) {
                  stream.skipToEnd();
                  return ["comment", "comment"];
                }
                // Block comment
                if (stream.match("/*")) {
                  state.tokenize = tokenCComment;
                  return tokenCComment(stream, state);
                }
                // String
                if (ch == "\"" || ch == "'") {
                  stream.next();
                  state.tokenize = tokenString(ch);
                  return state.tokenize(stream, state);
                }
                // Def
                if (ch == "@") {
                  stream.next();
                  stream.eatWhile(/[\w\\-]/);
                  return ["def", stream.current()];
                }
                // ID selector or Hex color
                if (ch == "#") {
                  stream.next();
                  // Hex color
                  if (stream.match(/^[0-9a-f]{6}|[0-9a-f]{3}/i)) {
                    return ["atom", "atom"];
                  }
                  // ID selector
                  if (stream.match(/^[a-z][\w-]*/i)) {
                    return ["builtin", "hash"];
                  }
                }
                // Vendor prefixes
                if (stream.match(vendorPrefixesRegexp)) {
                  return ["meta", "vendor-prefixes"];
                }
                // Numbers
                if (stream.match(/^-?[0-9]?\.?[0-9]/)) {
                  stream.eatWhile(/[a-z%]/i);
                  return ["number", "unit"];
                }
                // !important|optional
                if (ch == "!") {
                  stream.next();
                  return [stream.match(/^(important|optional)/i) ? "keyword": "operator", "important"];
                }
                // Class
                if (ch == "." && stream.match(/^\.[a-z][\w-]*/i)) {
                  return ["qualifier", "qualifier"];
                }
                // url url-prefix domain regexp
                if (stream.match(documentTypesRegexp)) {
                  if (stream.peek() == "(") state.tokenize = tokenParenthesized;
                  return ["property", "word"];
                }
                // Mixins / Functions
                if (stream.match(/^[a-z][\w-]*\(/i)) {
                  stream.backUp(1);
                  return ["keyword", "mixin"];
                }
                // Block mixins
                if (stream.match(/^(\+|-)[a-z][\w-]*\(/i)) {
                  stream.backUp(1);
                  return ["keyword", "block-mixin"];
                }
                // Parent Reference BEM naming
                if (stream.string.match(/^\s*&/) && stream.match(/^[-_]+[a-z][\w-]*/)) {
                  return ["qualifier", "qualifier"];
                }
                // / Root Reference & Parent Reference
                if (stream.match(/^(\/|&)(-|_|:|\.|#|[a-z])/)) {
                  stream.backUp(1);
                  return ["variable-3", "reference"];
                }
                if (stream.match(/^&{1}\s*$/)) {
                  return ["variable-3", "reference"];
                }
                // Word operator
                if (stream.match(wordOperatorKeywordsRegexp)) {
                  return ["operator", "operator"];
                }
                // Word
                if (stream.match(/^\$?[-_]*[a-z0-9]+[\w-]*/i)) {
                  // Variable
                  if (stream.match(/^(\.|\[)[\w-\'\"\]]+/i, false)) {
                    if (!wordIsTag(stream.current())) {
                      stream.match(/\./);
                      return ["variable-2", "variable-name"];
                    }
                  }
                  return ["variable-2", "word"];
                }
                // Operators
                if (stream.match(operatorsRegexp)) {
                  return ["operator", stream.current()];
                }
                // Delimiters
                if (/[:;,{}\[\]\(\)]/.test(ch)) {
                  stream.next();
                  return [null, ch];
                }
                // Non-detected items
                stream.next();
                return [null, null];
              }
          
              /**
               * Token comment
               */
              function tokenCComment(stream, state) {
                var maybeEnd = false, ch;
                while ((ch = stream.next()) != null) {
                  if (maybeEnd && ch == "/") {
                    state.tokenize = null;
                    break;
                  }
                  maybeEnd = (ch == "*");
                }
                return ["comment", "comment"];
              }
          
              /**
               * Token string
               */
              function tokenString(quote) {
                return function(stream, state) {
                  var escaped = false, ch;
                  while ((ch = stream.next()) != null) {
                    if (ch == quote && !escaped) {
                      if (quote == ")") stream.backUp(1);
                      break;
                    }
                    escaped = !escaped && ch == "\\";
                  }
                  if (ch == quote || !escaped && quote != ")") state.tokenize = null;
                  return ["string", "string"];
                };
              }
          
              /**
               * Token parenthesized
               */
              function tokenParenthesized(stream, state) {
                stream.next(); // Must be "("
                if (!stream.match(/\s*[\"\')]/, false))
                  state.tokenize = tokenString(")");
                else
                  state.tokenize = null;
                return [null, "("];
              }
          
              /**
               * Context management
               */
              function Context(type, indent, prev, line) {
                this.type = type;
                this.indent = indent;
                this.prev = prev;
                this.line = line || {firstWord: "", indent: 0};
              }
          
              function pushContext(state, stream, type, indent) {
                indent = indent >= 0 ? indent : indentUnit;
                state.context = new Context(type, stream.indentation() + indent, state.context);
                return type;
              }
          
              function popContext(state, currentIndent) {
                var contextIndent = state.context.indent - indentUnit;
                currentIndent = currentIndent || false;
                state.context = state.context.prev;
                if (currentIndent) state.context.indent = contextIndent;
                return state.context.type;
              }
          
              function pass(type, stream, state) {
                return states[state.context.type](type, stream, state);
              }
          
              function popAndPass(type, stream, state, n) {
                for (var i = n || 1; i > 0; i--)
                  state.context = state.context.prev;
                return pass(type, stream, state);
              }
          
          
              /**
               * Parser
               */
              function wordIsTag(word) {
                return word.toLowerCase() in tagKeywords;
              }
          
              function wordIsProperty(word) {
                word = word.toLowerCase();
                return word in propertyKeywords || word in fontProperties;
              }
          
              function wordIsBlock(word) {
                return word.toLowerCase() in blockKeywords;
              }
          
              function wordIsVendorPrefix(word) {
                return word.toLowerCase().match(vendorPrefixesRegexp);
              }
          
              function wordAsValue(word) {
                var wordLC = word.toLowerCase();
                var override = "variable-2";
                if (wordIsTag(word)) override = "tag";
                else if (wordIsBlock(word)) override = "block-keyword";
                else if (wordIsProperty(word)) override = "property";
                else if (wordLC in valueKeywords || wordLC in commonAtoms) override = "atom";
                else if (wordLC == "return" || wordLC in colorKeywords) override = "keyword";
          
                // Font family
                else if (word.match(/^[A-Z]/)) override = "string";
                return override;
              }
          
              function typeIsBlock(type, stream) {
                return ((endOfLine(stream) && (type == "{" || type == "]" || type == "hash" || type == "qualifier")) || type == "block-mixin");
              }
          
              function typeIsInterpolation(type, stream) {
                return type == "{" && stream.match(/^\s*\$?[\w-]+/i, false);
              }
          
              function typeIsPseudo(type, stream) {
                return type == ":" && stream.match(/^[a-z-]+/, false);
              }
          
              function startOfLine(stream) {
                return stream.sol() || stream.string.match(new RegExp("^\\s*" + escapeRegExp(stream.current())));
              }
          
              function endOfLine(stream) {
                return stream.eol() || stream.match(/^\s*$/, false);
              }
          
              function firstWordOfLine(line) {
                var re = /^\s*[-_]*[a-z0-9]+[\w-]*/i;
                var result = typeof line == "string" ? line.match(re) : line.string.match(re);
                return result ? result[0].replace(/^\s*/, "") : "";
              }
          
          
              /**
               * Block
               */
              states.block = function(type, stream, state) {
                if ((type == "comment" && startOfLine(stream)) ||
                    (type == "," && endOfLine(stream)) ||
                    type == "mixin") {
                  return pushContext(state, stream, "block", 0);
                }
                if (typeIsInterpolation(type, stream)) {
                  return pushContext(state, stream, "interpolation");
                }
                if (endOfLine(stream) && type == "]") {
                  if (!/^\s*(\.|#|:|\[|\*|&)/.test(stream.string) && !wordIsTag(firstWordOfLine(stream))) {
                    return pushContext(state, stream, "block", 0);
                  }
                }
                if (typeIsBlock(type, stream, state)) {
                  return pushContext(state, stream, "block");
                }
                if (type == "}" && endOfLine(stream)) {
                  return pushContext(state, stream, "block", 0);
                }
                if (type == "variable-name") {
                  if (stream.string.match(/^\s?\$[\w-\.\[\]\'\"]+$/) || wordIsBlock(firstWordOfLine(stream))) {
                    return pushContext(state, stream, "variableName");
                  }
                  else {
                    return pushContext(state, stream, "variableName", 0);
                  }
                }
                if (type == "=") {
                  if (!endOfLine(stream) && !wordIsBlock(firstWordOfLine(stream))) {
                    return pushContext(state, stream, "block", 0);
                  }
                  return pushContext(state, stream, "block");
                }
                if (type == "*") {
                  if (endOfLine(stream) || stream.match(/\s*(,|\.|#|\[|:|{)/,false)) {
                    override = "tag";
                    return pushContext(state, stream, "block");
                  }
                }
                if (typeIsPseudo(type, stream)) {
                  return pushContext(state, stream, "pseudo");
                }
                if (/@(font-face|media|supports|(-moz-)?document)/.test(type)) {
                  return pushContext(state, stream, endOfLine(stream) ? "block" : "atBlock");
                }
                if (/@(-(moz|ms|o|webkit)-)?keyframes$/.test(type)) {
                  return pushContext(state, stream, "keyframes");
                }
                if (/@extends?/.test(type)) {
                  return pushContext(state, stream, "extend", 0);
                }
                if (type && type.charAt(0) == "@") {
          
                  // Property Lookup
                  if (stream.indentation() > 0 && wordIsProperty(stream.current().slice(1))) {
                    override = "variable-2";
                    return "block";
                  }
                  if (/(@import|@require|@charset)/.test(type)) {
                    return pushContext(state, stream, "block", 0);
                  }
                  return pushContext(state, stream, "block");
                }
                if (type == "reference" && endOfLine(stream)) {
                  return pushContext(state, stream, "block");
                }
                if (type == "(") {
                  return pushContext(state, stream, "parens");
                }
          
                if (type == "vendor-prefixes") {
                  return pushContext(state, stream, "vendorPrefixes");
                }
                if (type == "word") {
                  var word = stream.current();
                  override = wordAsValue(word);
          
                  if (override == "property") {
                    if (startOfLine(stream)) {
                      return pushContext(state, stream, "block", 0);
                    } else {
                      override = "atom";
                      return "block";
                    }
                  }
          
                  if (override == "tag") {
          
                    // tag is a css value
                    if (/embed|menu|pre|progress|sub|table/.test(word)) {
                      if (wordIsProperty(firstWordOfLine(stream))) {
                        override = "atom";
                        return "block";
                      }
                    }
          
                    // tag is an attribute
                    if (stream.string.match(new RegExp("\\[\\s*" + word + "|" + word +"\\s*\\]"))) {
                      override = "atom";
                      return "block";
                    }
          
                    // tag is a variable
                    if (tagVariablesRegexp.test(word)) {
                      if ((startOfLine(stream) && stream.string.match(/=/)) ||
                          (!startOfLine(stream) &&
                           !stream.string.match(/^(\s*\.|#|\&|\[|\/|>|\*)/) &&
                           !wordIsTag(firstWordOfLine(stream)))) {
                        override = "variable-2";
                        if (wordIsBlock(firstWordOfLine(stream)))  return "block";
                        return pushContext(state, stream, "block", 0);
                      }
                    }
          
                    if (endOfLine(stream)) return pushContext(state, stream, "block");
                  }
                  if (override == "block-keyword") {
                    override = "keyword";
          
                    // Postfix conditionals
                    if (stream.current(/(if|unless)/) && !startOfLine(stream)) {
                      return "block";
                    }
                    return pushContext(state, stream, "block");
                  }
                  if (word == "return") return pushContext(state, stream, "block", 0);
          
                  // Placeholder selector
                  if (override == "variable-2" && stream.string.match(/^\s?\$[\w-\.\[\]\'\"]+$/)) {
                    return pushContext(state, stream, "block");
                  }
                }
                return state.context.type;
              };
          
          
              /**
               * Parens
               */
              states.parens = function(type, stream, state) {
                if (type == "(") return pushContext(state, stream, "parens");
                if (type == ")") {
                  if (state.context.prev.type == "parens") {
                    return popContext(state);
                  }
                  if ((stream.string.match(/^[a-z][\w-]*\(/i) && endOfLine(stream)) ||
                      wordIsBlock(firstWordOfLine(stream)) ||
                      /(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(firstWordOfLine(stream)) ||
                      (!stream.string.match(/^-?[a-z][\w-\.\[\]\'\"]*\s*=/) &&
                       wordIsTag(firstWordOfLine(stream)))) {
                    return pushContext(state, stream, "block");
                  }
                  if (stream.string.match(/^[\$-]?[a-z][\w-\.\[\]\'\"]*\s*=/) ||
                      stream.string.match(/^\s*(\(|\)|[0-9])/) ||
                      stream.string.match(/^\s+[a-z][\w-]*\(/i) ||
                      stream.string.match(/^\s+[\$-]?[a-z]/i)) {
                    return pushContext(state, stream, "block", 0);
                  }
                  if (endOfLine(stream)) return pushContext(state, stream, "block");
                  else return pushContext(state, stream, "block", 0);
                }
                if (type && type.charAt(0) == "@" && wordIsProperty(stream.current().slice(1))) {
                  override = "variable-2";
                }
                if (type == "word") {
                  var word = stream.current();
                  override = wordAsValue(word);
                  if (override == "tag" && tagVariablesRegexp.test(word)) {
                    override = "variable-2";
                  }
                  if (override == "property" || word == "to") override = "atom";
                }
                if (type == "variable-name") {
                  return pushContext(state, stream, "variableName");
                }
                if (typeIsPseudo(type, stream)) {
                  return pushContext(state, stream, "pseudo");
                }
                return state.context.type;
              };
          
          
              /**
               * Vendor prefixes
               */
              states.vendorPrefixes = function(type, stream, state) {
                if (type == "word") {
                  override = "property";
                  return pushContext(state, stream, "block", 0);
                }
                return popContext(state);
              };
          
          
              /**
               * Pseudo
               */
              states.pseudo = function(type, stream, state) {
                if (!wordIsProperty(firstWordOfLine(stream.string))) {
                  stream.match(/^[a-z-]+/);
                  override = "variable-3";
                  if (endOfLine(stream)) return pushContext(state, stream, "block");
                  return popContext(state);
                }
                return popAndPass(type, stream, state);
              };
          
          
              /**
               * atBlock
               */
              states.atBlock = function(type, stream, state) {
                if (type == "(") return pushContext(state, stream, "atBlock_parens");
                if (typeIsBlock(type, stream, state)) {
                  return pushContext(state, stream, "block");
                }
                if (typeIsInterpolation(type, stream)) {
                  return pushContext(state, stream, "interpolation");
                }
                if (type == "word") {
                  var word = stream.current().toLowerCase();
                  if (/^(only|not|and|or)$/.test(word))
                    override = "keyword";
                  else if (documentTypes.hasOwnProperty(word))
                    override = "tag";
                  else if (mediaTypes.hasOwnProperty(word))
                    override = "attribute";
                  else if (mediaFeatures.hasOwnProperty(word))
                    override = "property";
                  else if (nonStandardPropertyKeywords.hasOwnProperty(word))
                    override = "string-2";
                  else override = wordAsValue(stream.current());
                  if (override == "tag" && endOfLine(stream)) {
                    return pushContext(state, stream, "block");
                  }
                }
                if (type == "operator" && /^(not|and|or)$/.test(stream.current())) {
                  override = "keyword";
                }
                return state.context.type;
              };
          
              states.atBlock_parens = function(type, stream, state) {
                if (type == "{" || type == "}") return state.context.type;
                if (type == ")") {
                  if (endOfLine(stream)) return pushContext(state, stream, "block");
                  else return pushContext(state, stream, "atBlock");
                }
                if (type == "word") {
                  var word = stream.current().toLowerCase();
                  override = wordAsValue(word);
                  if (/^(max|min)/.test(word)) override = "property";
                  if (override == "tag") {
                    tagVariablesRegexp.test(word) ? override = "variable-2" : override = "atom";
                  }
                  return state.context.type;
                }
                return states.atBlock(type, stream, state);
              };
          
          
              /**
               * Keyframes
               */
              states.keyframes = function(type, stream, state) {
                if (stream.indentation() == "0" && ((type == "}" && startOfLine(stream)) || type == "]" || type == "hash"
                                                    || type == "qualifier" || wordIsTag(stream.current()))) {
                  return popAndPass(type, stream, state);
                }
                if (type == "{") return pushContext(state, stream, "keyframes");
                if (type == "}") {
                  if (startOfLine(stream)) return popContext(state, true);
                  else return pushContext(state, stream, "keyframes");
                }
                if (type == "unit" && /^[0-9]+\%$/.test(stream.current())) {
                  return pushContext(state, stream, "keyframes");
                }
                if (type == "word") {
                  override = wordAsValue(stream.current());
                  if (override == "block-keyword") {
                    override = "keyword";
                    return pushContext(state, stream, "keyframes");
                  }
                }
                if (/@(font-face|media|supports|(-moz-)?document)/.test(type)) {
                  return pushContext(state, stream, endOfLine(stream) ? "block" : "atBlock");
                }
                if (type == "mixin") {
                  return pushContext(state, stream, "block", 0);
                }
                return state.context.type;
              };
          
          
              /**
               * Interpolation
               */
              states.interpolation = function(type, stream, state) {
                if (type == "{") popContext(state) && pushContext(state, stream, "block");
                if (type == "}") {
                  if (stream.string.match(/^\s*(\.|#|:|\[|\*|&|>|~|\+|\/)/i) ||
                      (stream.string.match(/^\s*[a-z]/i) && wordIsTag(firstWordOfLine(stream)))) {
                    return pushContext(state, stream, "block");
                  }
                  if (!stream.string.match(/^(\{|\s*\&)/) ||
                      stream.match(/\s*[\w-]/,false)) {
                    return pushContext(state, stream, "block", 0);
                  }
                  return pushContext(state, stream, "block");
                }
                if (type == "variable-name") {
                  return pushContext(state, stream, "variableName", 0);
                }
                if (type == "word") {
                  override = wordAsValue(stream.current());
                  if (override == "tag") override = "atom";
                }
                return state.context.type;
              };
          
          
              /**
               * Extend/s
               */
              states.extend = function(type, stream, state) {
                if (type == "[" || type == "=") return "extend";
                if (type == "]") return popContext(state);
                if (type == "word") {
                  override = wordAsValue(stream.current());
                  return "extend";
                }
                return popContext(state);
              };
          
          
              /**
               * Variable name
               */
              states.variableName = function(type, stream, state) {
                if (type == "string" || type == "[" || type == "]" || stream.current().match(/^(\.|\$)/)) {
                  if (stream.current().match(/^\.[\w-]+/i)) override = "variable-2";
                  return "variableName";
                }
                return popAndPass(type, stream, state);
              };
          
          
              return {
                startState: function(base) {
                  return {
                    tokenize: null,
                    state: "block",
                    context: new Context("block", base || 0, null)
                  };
                },
                token: function(stream, state) {
                  if (!state.tokenize && stream.eatSpace()) return null;
                  style = (state.tokenize || tokenBase)(stream, state);
                  if (style && typeof style == "object") {
                    type = style[1];
                    style = style[0];
                  }
                  override = style;
                  state.state = states[state.state](type, stream, state);
                  return override;
                },
                indent: function(state, textAfter, line) {
          
                  var cx = state.context,
                      ch = textAfter && textAfter.charAt(0),
                      indent = cx.indent,
                      lineFirstWord = firstWordOfLine(textAfter),
                      lineIndent = line.length - line.replace(/^\s*/, "").length,
                      prevLineFirstWord = state.context.prev ? state.context.prev.line.firstWord : "",
                      prevLineIndent = state.context.prev ? state.context.prev.line.indent : lineIndent;
          
                  if (cx.prev &&
                      (ch == "}" && (cx.type == "block" || cx.type == "atBlock" || cx.type == "keyframes") ||
                       ch == ")" && (cx.type == "parens" || cx.type == "atBlock_parens") ||
                       ch == "{" && (cx.type == "at"))) {
                    indent = cx.indent - indentUnit;
                    cx = cx.prev;
                  } else if (!(/(\})/.test(ch))) {
                    if (/@|\$|\d/.test(ch) ||
                        /^\{/.test(textAfter) ||
          /^\s*\/(\/|\*)/.test(textAfter) ||
                        /^\s*\/\*/.test(prevLineFirstWord) ||
                        /^\s*[\w-\.\[\]\'\"]+\s*(\?|:|\+)?=/i.test(textAfter) ||
          /^(\+|-)?[a-z][\w-]*\(/i.test(textAfter) ||
          /^return/.test(textAfter) ||
                        wordIsBlock(lineFirstWord)) {
                      indent = lineIndent;
                    } else if (/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(ch) || wordIsTag(lineFirstWord)) {
                      if (/\,\s*$/.test(prevLineFirstWord)) {
                        indent = prevLineIndent;
                      } else if (/^\s+/.test(line) && (/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(prevLineFirstWord) || wordIsTag(prevLineFirstWord))) {
                        indent = lineIndent <= prevLineIndent ? prevLineIndent : prevLineIndent + indentUnit;
                      } else {
                        indent = lineIndent;
                      }
                    } else if (!/,\s*$/.test(line) && (wordIsVendorPrefix(lineFirstWord) || wordIsProperty(lineFirstWord))) {
                      if (wordIsBlock(prevLineFirstWord)) {
                        indent = lineIndent <= prevLineIndent ? prevLineIndent : prevLineIndent + indentUnit;
                      } else if (/^\{/.test(prevLineFirstWord)) {
                        indent = lineIndent <= prevLineIndent ? lineIndent : prevLineIndent + indentUnit;
                      } else if (wordIsVendorPrefix(prevLineFirstWord) || wordIsProperty(prevLineFirstWord)) {
                        indent = lineIndent >= prevLineIndent ? prevLineIndent : lineIndent;
                      } else if (/^(\.|#|:|\[|\*|&|@|\+|\-|>|~|\/)/.test(prevLineFirstWord) ||
                                /=\s*$/.test(prevLineFirstWord) ||
                                wordIsTag(prevLineFirstWord) ||
                                /^\$[\w-\.\[\]\'\"]/.test(prevLineFirstWord)) {
                        indent = prevLineIndent + indentUnit;
                      } else {
                        indent = lineIndent;
                      }
                    }
                  }
                  return indent;
                },
                electricChars: "}",
                lineComment: "//",
                fold: "indent"
              };
            });
          
            // developer.mozilla.org/en-US/docs/Web/HTML/Element
            var tagKeywords_ = ["a","abbr","address","area","article","aside","audio", "b", "base","bdi", "bdo","bgsound","blockquote","body","br","button","canvas","caption","cite", "code","col","colgroup","data","datalist","dd","del","details","dfn","div", "dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1", "h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe", "img","input","ins","kbd","keygen","label","legend","li","link","main","map", "mark","marquee","menu","menuitem","meta","meter","nav","nobr","noframes", "noscript","object","ol","optgroup","option","output","p","param","pre", "progress","q","rp","rt","ruby","s","samp","script","section","select", "small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","track", "u","ul","var","video"];
          
            // github.com/codemirror/CodeMirror/blob/master/mode/css/css.js
            var documentTypes_ = ["domain", "regexp", "url", "url-prefix"];
            var mediaTypes_ = ["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"];
            var mediaFeatures_ = ["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid"];
            var propertyKeywords_ = ["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-position","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marker-offset","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode","font-smoothing","osx-font-smoothing"];
            var nonStandardPropertyKeywords_ = ["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"];
            var fontProperties_ = ["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"];
            var colorKeywords_ = ["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"];
            var valueKeywords_ = ["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","column","compact","condensed","contain","content","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","dashed","decimal","decimal-leading-zero","default","default-button","destination-atop","destination-in","destination-out","destination-over","devanagari","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","flex","footnotes","forwards","from","geometricPrecision","georgian","graytext","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","malayalam","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row-resize","rtl","run-in","running","s-resize","sans-serif","scale","scale3d","scaleX","scaleY","scaleZ","scroll","scrollbar","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","solid","somali","source-atop","source-in","source-out","source-over","space","spell-out","square","square-button","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","symbolic","symbols","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","x-large","x-small","xor","xx-large","xx-small","bicubic","optimizespeed","grayscale","row","row-reverse","wrap","wrap-reverse","column-reverse","flex-start","flex-end","space-between","space-around"];
          
            var wordOperatorKeywords_ = ["in","and","or","not","is not","is a","is","isnt","defined","if unless"],
                blockKeywords_ = ["for","if","else","unless", "from", "to"],
                commonAtoms_ = ["null","true","false","href","title","type","not-allowed","readonly","disabled"],
                commonDef_ = ["@font-face", "@keyframes", "@media", "@viewport", "@page", "@host", "@supports", "@block", "@css"];
          
            var hintWords = tagKeywords_.concat(documentTypes_,mediaTypes_,mediaFeatures_,
                                                propertyKeywords_,nonStandardPropertyKeywords_,
                                                colorKeywords_,valueKeywords_,fontProperties_,
                                                wordOperatorKeywords_,blockKeywords_,
                                                commonAtoms_,commonDef_);
          
            function wordRegexp(words) {
              words = words.sort(function(a,b){return b > a;});
              return new RegExp("^((" + words.join(")|(") + "))\\b");
            }
          
            function keySet(array) {
              var keys = {};
              for (var i = 0; i < array.length; ++i) keys[array[i]] = true;
              return keys;
            }
          
            function escapeRegExp(text) {
              return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
            }
          
            CodeMirror.registerHelper("hintWords", "stylus", hintWords);
            CodeMirror.defineMIME("text/x-styl", "stylus");
          });
          
      • swift
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Swift mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="./swift.js"></script>
          <style>
          	.CodeMirror { border: 2px inset #dee; }
              </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Swift</a>
            </ul>
          </div>
          
          <article>
          <h2>Swift mode</h2>
          <form><textarea id="code" name="code">
          //
          //  TipCalculatorModel.swift
          //  TipCalculator
          //
          //  Created by Main Account on 12/18/14.
          //  Copyright (c) 2014 Razeware LLC. All rights reserved.
          //
           
          import Foundation
           
          class TipCalculatorModel {
           
            var total: Double
            var taxPct: Double
            var subtotal: Double {
              get {
                return total / (taxPct + 1)
              }
            }
           
            init(total: Double, taxPct: Double) {
              self.total = total
              self.taxPct = taxPct
            }
           
            func calcTipWithTipPct(tipPct: Double) -> Double {
              return subtotal * tipPct
            }
           
            func returnPossibleTips() -> [Int: Double] {
           
              let possibleTipsInferred = [0.15, 0.18, 0.20]
              let possibleTipsExplicit:[Double] = [0.15, 0.18, 0.20]
           
              var retval = [Int: Double]()
              for possibleTip in possibleTipsInferred {
                let intPct = Int(possibleTip*100)
                retval[intPct] = calcTipWithTipPct(possibleTip)
              }
              return retval
           
            }
           
          }
          </textarea></form>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  matchBrackets: true,
                  mode: "text/x-swift"
                });
              </script>
          
              <p>A simple mode for Swift</p>
          
              <p><strong>MIME types defined:</strong> <code>text/x-swift</code> (Swift code)</p>
            </article>
          
        • swift.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // Swift mode created by Michael Kaminsky https://github.com/mkaminsky11
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object")
              mod(require("../../lib/codemirror"))
            else if (typeof define == "function" && define.amd)
              define(["../../lib/codemirror"], mod)
            else
              mod(CodeMirror)
          })(function(CodeMirror) {
            "use strict"
          
            function trim(str) { return /^\s*(.*?)\s*$/.exec(str)[1] }
          
            var separators = [" ","\\\+","\\\-","\\\(","\\\)","\\\*","/",":","\\\?","\\\<","\\\>"," ","\\\."]
            var tokens = new RegExp(separators.join("|"),"g")
          
            function getWord(string, pos) {
              var index = -1, count = 1
              var words = string.split(tokens)
              for (var i = 0; i < words.length; i++) {
                for(var j = 1; j <= words[i].length; j++) {
                  if (count==pos) index = i
                  count++
                }
                count++
              }
              var ret = ["", ""]
              if (pos == 0) {
                ret[1] = words[0]
                ret[0] = null
              } else {
                ret[1] = words[index]
                ret[0] = words[index-1]
              }
              return ret
            }
          
            CodeMirror.defineMode("swift", function() {
              var keywords=["var","let","class","deinit","enum","extension","func","import","init","let","protocol","static","struct","subscript","typealias","var","as","dynamicType","is","new","super","self","Self","Type","__COLUMN__","__FILE__","__FUNCTION__","__LINE__","break","case","continue","default","do","else","fallthrough","if","in","for","return","switch","where","while","associativity","didSet","get","infix","inout","left","mutating","none","nonmutating","operator","override","postfix","precedence","prefix","right","set","unowned","unowned(safe)","unowned(unsafe)","weak","willSet"]
              var commonConstants=["Infinity","NaN","undefined","null","true","false","on","off","yes","no","nil","null","this","super"]
              var types=["String","bool","int","string","double","Double","Int","Float","float","public","private","extension"]
              var numbers=["0","1","2","3","4","5","6","7","8","9"]
              var operators=["+","-","/","*","%","=","|","&","<",">"]
              var punc=[";",",",".","(",")","{","}","[","]"]
              var delimiters=/^(?:[()\[\]{},:`=;]|\.\.?\.?)/
              var identifiers=/^[_A-Za-z$][_A-Za-z$0-9]*/
              var properties=/^(@|this\.)[_A-Za-z$][_A-Za-z$0-9]*/
              var regexPrefixes=/^(\/{3}|\/)/
          
              return {
                startState: function() {
                  return {
                    prev: false,
                    string: false,
                    escape: false,
                    inner: false,
                    comment: false,
                    num_left: 0,
                    num_right: 0,
                    doubleString: false,
                    singleString: false
                  }
                },
                token: function(stream, state) {
                  if (stream.eatSpace()) return null
          
                  var ch = stream.next()
                  if (state.string) {
                    if (state.escape) {
                      state.escape = false
                      return "string"
                    } else {
                      if ((ch == "\"" && (state.doubleString && !state.singleString) ||
                           (ch == "'" && (!state.doubleString && state.singleString))) &&
                          !state.escape) {
                        state.string = false
                        state.doubleString = false
                        state.singleString = false
                        return "string"
                      } else if (ch == "\\" && stream.peek() == "(") {
                        state.inner = true
                        state.string = false
                        return "keyword"
                      } else if (ch == "\\" && stream.peek() != "(") {
                        state.escape = true
                        state.string = true
                        return "string"
                      } else {
                        return "string"
                      }
                    }
                  } else if (state.comment) {
                    if (ch == "*" && stream.peek() == "/") {
                      state.prev = "*"
                      return "comment"
                    } else if (ch == "/" && state.prev == "*") {
                      state.prev = false
                      state.comment = false
                      return "comment"
                    }
                    return "comment"
                  } else {
                    if (ch == "/") {
                      if (stream.peek() == "/") {
                        stream.skipToEnd()
                        return "comment"
                      }
                      if (stream.peek() == "*") {
                        state.comment = true
                        return "comment"
                      }
                    }
                    if (ch == "(" && state.inner) {
                      state.num_left++
                      return null
                    }
                    if (ch == ")" && state.inner) {
                      state.num_right++
                      if (state.num_left == state.num_right) {
                        state.inner=false
                        state.string=true
                      }
                      return null
                    }
          
                    var ret = getWord(stream.string, stream.pos)
                    var the_word = ret[1]
                    var prev_word = ret[0]
          
                    if (operators.indexOf(ch + "") > -1) return "operator"
                    if (punc.indexOf(ch) > -1) return "punctuation"
          
                    if (typeof the_word != "undefined") {
                      the_word = trim(the_word)
                      if (typeof prev_word != "undefined") prev_word = trim(prev_word)
                      if (the_word.charAt(0) == "#") return null
          
                      if (types.indexOf(the_word) > -1) return "def"
                      if (commonConstants.indexOf(the_word) > -1) return "atom"
                      if (numbers.indexOf(the_word) > -1) return "number"
          
                      if ((numbers.indexOf(the_word.charAt(0) + "") > -1 ||
                           operators.indexOf(the_word.charAt(0) + "") > -1) &&
                          numbers.indexOf(ch) > -1) {
                        return "number"
                      }
          
                      if (keywords.indexOf(the_word) > -1 ||
                          keywords.indexOf(the_word.split(tokens)[0]) > -1)
                        return "keyword"
                      if (keywords.indexOf(prev_word) > -1) return "def"
                    }
                    if (ch == '"' && !state.doubleString) {
                      state.string = true
                      state.doubleString = true
                      return "string"
                    }
                    if (ch == "'" && !state.singleString) {
                      state.string = true
                      state.singleString = true
                      return "string"
                    }
                    if (ch == "(" && state.inner)
                      state.num_left++
                    if (ch == ")" && state.inner) {
                      state.num_right++
                      if (state.num_left == state.num_right) {
                        state.inner = false
                        state.string = true
                      }
                      return null
                    }
                    if (stream.match(/^-?[0-9\.]/, false)) {
                      if (stream.match(/^-?\d*\.\d+(e[\+\-]?\d+)?/i) ||
                          stream.match(/^-?\d+\.\d*/) ||
                          stream.match(/^-?\.\d+/)) {
                        if (stream.peek() == ".") stream.backUp(1)
                        return "number"
                      }
                      if (stream.match(/^-?0x[0-9a-f]+/i) ||
                          stream.match(/^-?[1-9]\d*(e[\+\-]?\d+)?/) ||
                          stream.match(/^-?0(?![\dx])/i))
                        return "number"
                    }
                    if (stream.match(regexPrefixes)) {
                      if (stream.current()!="/" || stream.match(/^.*\//,false)) return "string"
                      else stream.backUp(1)
                    }
                    if (stream.match(delimiters)) return "punctuation"
                    if (stream.match(identifiers)) return "variable"
                    if (stream.match(properties)) return "property"
                    return "variable"
                  }
                }
              }
            })
          
            CodeMirror.defineMIME("text/x-swift","swift")
          })
          
      • tcl
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Tcl mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <link rel="stylesheet" href="../../theme/night.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="tcl.js"></script>
          <script src="../../addon/scroll/scrollpastend.js"></script>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Tcl</a>
            </ul>
          </div>
          
          <article>
          <h2>Tcl mode</h2>
          <form><textarea id="code" name="code">
          ##############################################################################################
          ##  ##     whois.tcl for eggdrop by Ford_Lawnmower irc.geekshed.net #Script-Help        ##  ##
          ##############################################################################################
          ## To use this script you must set channel flag +whois (ie .chanset #chan +whois)           ##
          ##############################################################################################
          ##      ____                __                 ###########################################  ##
          ##     / __/___ _ ___ _ ___/ /____ ___   ___   ###########################################  ##
          ##    / _/ / _ `// _ `// _  // __// _ \ / _ \  ###########################################  ##
          ##   /___/ \_, / \_, / \_,_//_/   \___// .__/  ###########################################  ##
          ##        /___/ /___/                 /_/      ###########################################  ##
          ##                                             ###########################################  ##
          ##############################################################################################
          ##  ##                             Start Setup.                                         ##  ##
          ##############################################################################################
          namespace eval whois {
          ## change cmdchar to the trigger you want to use                                        ##  ##
            variable cmdchar "!"
          ## change command to the word trigger you would like to use.                            ##  ##
          ## Keep in mind, This will also change the .chanset +/-command                          ##  ##
            variable command "whois"
          ## change textf to the colors you want for the text.                                    ##  ##
            variable textf "\017\00304"
          ## change tagf to the colors you want for tags:                                         ##  ##
            variable tagf "\017\002"
          ## Change logo to the logo you want at the start of the line.                           ##  ##
            variable logo "\017\00304\002\[\00306W\003hois\00304\]\017"
          ## Change lineout to the results you want. Valid results are channel users modes topic  ##  ##
            variable lineout "channel users modes topic"
          ##############################################################################################
          ##  ##                           End Setup.                                              ## ##
          ##############################################################################################
            variable channel ""
            setudef flag $whois::command
            bind pub -|- [string trimleft $whois::cmdchar]${whois::command} whois::list
            bind raw -|- "311" whois::311
            bind raw -|- "312" whois::312
            bind raw -|- "319" whois::319
            bind raw -|- "317" whois::317
            bind raw -|- "313" whois::multi
            bind raw -|- "310" whois::multi
            bind raw -|- "335" whois::multi
            bind raw -|- "301" whois::301
            bind raw -|- "671" whois::multi
            bind raw -|- "320" whois::multi
            bind raw -|- "401" whois::multi
            bind raw -|- "318" whois::318
            bind raw -|- "307" whois::307
          }
          proc whois::311 {from key text} {
            if {[regexp -- {^[^\s]+\s(.+?)\s(.+?)\s(.+?)\s\*\s\:(.+)$} $text wholematch nick ident host realname]} {
              putserv "PRIVMSG $whois::channel :${whois::logo} ${whois::tagf}Host:${whois::textf} \
                  $nick \(${ident}@${host}\) ${whois::tagf}Realname:${whois::textf} $realname"
            }
          }
          proc whois::multi {from key text} {
            if {[regexp {\:(.*)$} $text match $key]} {
              putserv "PRIVMSG $whois::channel :${whois::logo} ${whois::tagf}Note:${whois::textf} [subst $$key]"
                  return 1
            }
          }
          proc whois::312 {from key text} {
            regexp {([^\s]+)\s\:} $text match server
            putserv "PRIVMSG $whois::channel :${whois::logo} ${whois::tagf}Server:${whois::textf} $server"
          }
          proc whois::319 {from key text} {
            if {[regexp {.+\:(.+)$} $text match channels]} {
              putserv "PRIVMSG $whois::channel :${whois::logo} ${whois::tagf}Channels:${whois::textf} $channels"
            }
          }
          proc whois::317 {from key text} {
            if {[regexp -- {.*\s(\d+)\s(\d+)\s\:} $text wholematch idle signon]} {
              putserv "PRIVMSG $whois::channel :${whois::logo} ${whois::tagf}Connected:${whois::textf} \
                  [ctime $signon] ${whois::tagf}Idle:${whois::textf} [duration $idle]"
            }
          }
          proc whois::301 {from key text} {
            if {[regexp {^.+\s[^\s]+\s\:(.*)$} $text match awaymsg]} {
              putserv "PRIVMSG $whois::channel :${whois::logo} ${whois::tagf}Away:${whois::textf} $awaymsg"
            }
          }
          proc whois::318 {from key text} {
            namespace eval whois {
                  variable channel ""
            }
            variable whois::channel ""
          }
          proc whois::307 {from key text} {
            putserv "PRIVMSG $whois::channel :${whois::logo} ${whois::tagf}Services:${whois::textf} Registered Nick"
          }
          proc whois::list {nick host hand chan text} {
            if {[lsearch -exact [channel info $chan] "+${whois::command}"] != -1} {
              namespace eval whois {
                    variable channel ""
                  }
              variable whois::channel $chan
              putserv "WHOIS $text"
            }
          }
          putlog "\002*Loaded* \017\00304\002\[\00306W\003hois\00304\]\017 \002by \
          Ford_Lawnmower irc.GeekShed.net #Script-Help"
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  theme: "night",
                  lineNumbers: true,
                  indentUnit: 2,
                  scrollPastEnd: true,
                  mode: "text/x-tcl"
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-tcl</code>.</p>
          
            </article>
          
        • tcl.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          //tcl mode by Ford_Lawnmower :: Based on Velocity mode by Steve O'Hara
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("tcl", function() {
            function parseWords(str) {
              var obj = {}, words = str.split(" ");
              for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
              return obj;
            }
            var keywords = parseWords("Tcl safe after append array auto_execok auto_import auto_load " +
                  "auto_mkindex auto_mkindex_old auto_qualify auto_reset bgerror " +
                  "binary break catch cd close concat continue dde eof encoding error " +
                  "eval exec exit expr fblocked fconfigure fcopy file fileevent filename " +
                  "filename flush for foreach format gets glob global history http if " +
                  "incr info interp join lappend lindex linsert list llength load lrange " +
                  "lreplace lsearch lset lsort memory msgcat namespace open package parray " +
                  "pid pkg::create pkg_mkIndex proc puts pwd re_syntax read regex regexp " +
                  "registry regsub rename resource return scan seek set socket source split " +
                  "string subst switch tcl_endOfWord tcl_findLibrary tcl_startOfNextWord " +
                  "tcl_wordBreakAfter tcl_startOfPreviousWord tcl_wordBreakBefore tcltest " +
                  "tclvars tell time trace unknown unset update uplevel upvar variable " +
              "vwait");
              var functions = parseWords("if elseif else and not or eq ne in ni for foreach while switch");
              var isOperatorChar = /[+\-*&%=<>!?^\/\|]/;
              function chain(stream, state, f) {
                state.tokenize = f;
                return f(stream, state);
              }
              function tokenBase(stream, state) {
                var beforeParams = state.beforeParams;
                state.beforeParams = false;
                var ch = stream.next();
                if ((ch == '"' || ch == "'") && state.inParams)
                  return chain(stream, state, tokenString(ch));
                else if (/[\[\]{}\(\),;\.]/.test(ch)) {
                  if (ch == "(" && beforeParams) state.inParams = true;
                  else if (ch == ")") state.inParams = false;
                    return null;
                }
                else if (/\d/.test(ch)) {
                  stream.eatWhile(/[\w\.]/);
                  return "number";
                }
                else if (ch == "#" && stream.eat("*")) {
                  return chain(stream, state, tokenComment);
                }
                else if (ch == "#" && stream.match(/ *\[ *\[/)) {
                  return chain(stream, state, tokenUnparsed);
                }
                else if (ch == "#" && stream.eat("#")) {
                  stream.skipToEnd();
                  return "comment";
                }
                else if (ch == '"') {
                  stream.skipTo(/"/);
                  return "comment";
                }
                else if (ch == "$") {
                  stream.eatWhile(/[$_a-z0-9A-Z\.{:]/);
                  stream.eatWhile(/}/);
                  state.beforeParams = true;
                  return "builtin";
                }
                else if (isOperatorChar.test(ch)) {
                  stream.eatWhile(isOperatorChar);
                  return "comment";
                }
                else {
                  stream.eatWhile(/[\w\$_{}\xa1-\uffff]/);
                  var word = stream.current().toLowerCase();
                  if (keywords && keywords.propertyIsEnumerable(word))
                    return "keyword";
                  if (functions && functions.propertyIsEnumerable(word)) {
                    state.beforeParams = true;
                    return "keyword";
                  }
                  return null;
                }
              }
              function tokenString(quote) {
                return function(stream, state) {
                var escaped = false, next, end = false;
                while ((next = stream.next()) != null) {
                  if (next == quote && !escaped) {
                    end = true;
                    break;
                  }
                  escaped = !escaped && next == "\\";
                }
                if (end) state.tokenize = tokenBase;
                  return "string";
                };
              }
              function tokenComment(stream, state) {
                var maybeEnd = false, ch;
                while (ch = stream.next()) {
                  if (ch == "#" && maybeEnd) {
                    state.tokenize = tokenBase;
                    break;
                  }
                  maybeEnd = (ch == "*");
                }
                return "comment";
              }
              function tokenUnparsed(stream, state) {
                var maybeEnd = 0, ch;
                while (ch = stream.next()) {
                  if (ch == "#" && maybeEnd == 2) {
                    state.tokenize = tokenBase;
                    break;
                  }
                  if (ch == "]")
                    maybeEnd++;
                  else if (ch != " ")
                    maybeEnd = 0;
                }
                return "meta";
              }
              return {
                startState: function() {
                  return {
                    tokenize: tokenBase,
                    beforeParams: false,
                    inParams: false
                  };
                },
                token: function(stream, state) {
                  if (stream.eatSpace()) return null;
                  return state.tokenize(stream, state);
                }
              };
          });
          CodeMirror.defineMIME("text/x-tcl", "tcl");
          
          });
          
      • textile
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Textile mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="textile.js"></script>
          <style>.CodeMirror {background: #f8f8f8;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/marijnh/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class="active" href="#">Textile</a>
            </ul>
          </div>
          
          <article>
              <h2>Textile mode</h2>
              <form><textarea id="code" name="code">
          h1. Textile Mode
          
          A paragraph without formatting.
          
          p. A simple Paragraph.
          
          
          h2. Phrase Modifiers
          
          Here are some simple phrase modifiers: *strong*, _emphasis_, **bold**, and __italic__.
          
          A ??citation??, -deleted text-, +inserted text+, some ^superscript^, and some ~subscript~.
          
          A %span element% and @code element@
          
          A "link":http://example.com, a "link with (alt text)":urlAlias
          
          [urlAlias]http://example.com/
          
          An image: !http://example.com/image.png! and an image with a link: !http://example.com/image.png!:http://example.com
          
          A sentence with a footnote.[123]
          
          fn123. The footnote is defined here.
          
          Registered(r), Trademark(tm), and Copyright(c)
          
          
          h2. Headers
          
          h1. Top level
          h2. Second level
          h3. Third level
          h4. Fourth level
          h5. Fifth level
          h6. Lowest level
          
          
          h2.  Lists
          
          * An unordered list
          ** foo bar
          *** foo bar
          **** foo bar
          ** foo bar
          
          # An ordered list
          ## foo bar
          ### foo bar
          #### foo bar
          ## foo bar
          
          - definition list := description
          - another item    := foo bar
          - spanning ines   :=
                               foo bar
          
                               foo bar =:
          
          
          h2. Attributes
          
          Layouts and phrase modifiers can be modified with various kinds of attributes: alignment, CSS ID, CSS class names, language, padding, and CSS styles.
          
          h3. Alignment
          
          div<. left align
          div>. right align
          
          h3. CSS ID and class name
          
          You are a %(my-id#my-classname) rad% person.
          
          h3. Language
          
          p[en_CA]. Strange weather, eh?
          
          h3. Horizontal Padding
          
          p(())). 2em left padding, 3em right padding
          
          h3. CSS styling
          
          p{background: red}. Fire!
          
          
          h2. Table
          
          |_.              Header 1               |_.      Header 2        |
          |{background:#ddd}. Cell with background|         Normal         |
          |\2.         Cell spanning 2 columns                             |
          |/2.         Cell spanning 2 rows       |(cell-class). one       |
          |                                                two             |
          |>.                  Right aligned cell |<. Left aligned cell    |
          
          
          h3. A table with attributes:
          
          table(#prices).
          |Adults|$5|
          |Children|$2|
          
          
          h2. Code blocks
          
          bc.
          function factorial(n) {
              if (n === 0) {
                  return 1;
              }
              return n * factorial(n - 1);
          }
          
          pre..
                          ,,,,,,
                      o#'9MMHb':'-,o,
                   .oH":HH$' "' ' -*R&o,
                  dMMM*""'`'      .oM"HM?.
                 ,MMM'          "HLbd< ?&H\
                .:MH ."\          ` MM  MM&b
               . "*H    -        &MMMMMMMMMH:
               .    dboo        MMMMMMMMMMMM.
               .   dMMMMMMb      *MMMMMMMMMP.
               .    MMMMMMMP        *MMMMMP .
                    `#MMMMM           MM6P ,
                 '    `MMMP"           HM*`,
                  '    :MM             .- ,
                   '.   `#?..  .       ..'
                      -.   .         .-
                        ''-.oo,oo.-''
          
          \. _(9>
           \==_)
            -'=
          
          h2. Temporarily disabling textile markup
          
          notextile. Don't __touch this!__
          
          Surround text with double-equals to disable textile inline. Example: Use ==*asterisks*== for *strong* text.
          
          
          h2. HTML
          
          Some block layouts are simply textile versions of HTML tags with the same name, like @div@, @pre@, and @p@. HTML tags can also exist on their own line:
          
          <section>
            <h1>Title</h1>
            <p>Hello!</p>
          </section>
          
          </textarea></form>
              <script>
                  var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                      lineNumbers: true,
                      mode: "text/x-textile"
                  });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-textile</code>.</p>
          
              <p><strong>Parsing/Highlighting Tests:</strong> <a href="../../test/index.html#textile_*">normal</a>,  <a href="../../test/index.html#verbose,textile_*">verbose</a>.</p>
          
          </article>
          
        • test.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function() {
            var mode = CodeMirror.getMode({tabSize: 4}, 'textile');
            function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
          
            MT('simpleParagraphs',
                'Some text.',
                '',
                'Some more text.');
          
            /*
             * Phrase Modifiers
             */
          
            MT('em',
                'foo [em _bar_]');
          
            MT('emBoogus',
                'code_mirror');
          
            MT('strong',
                'foo [strong *bar*]');
          
            MT('strongBogus',
                '3 * 3 = 9');
          
            MT('italic',
                'foo [em __bar__]');
          
            MT('italicBogus',
                'code__mirror');
          
            MT('bold',
                'foo [strong **bar**]');
          
            MT('boldBogus',
                '3 ** 3 = 27');
          
            MT('simpleLink',
                '[link "CodeMirror":http://codemirror.net]');
          
            MT('referenceLink',
                '[link "CodeMirror":code_mirror]',
                'Normal Text.',
                '[link [[code_mirror]]http://codemirror.net]');
          
            MT('footCite',
                'foo bar[qualifier [[1]]]');
          
            MT('footCiteBogus',
                'foo bar[[1a2]]');
          
            MT('special-characters',
                    'Registered [tag (r)], ' +
                    'Trademark [tag (tm)], and ' +
                    'Copyright [tag (c)] 2008');
          
            MT('cite',
                "A book is [keyword ??The Count of Monte Cristo??] by Dumas.");
          
            MT('additionAndDeletion',
                'The news networks declared [negative -Al Gore-] ' +
                  '[positive +George W. Bush+] the winner in Florida.');
          
            MT('subAndSup',
                'f(x, n) = log [builtin ~4~] x [builtin ^n^]');
          
            MT('spanAndCode',
                'A [quote %span element%] and [atom @code element@]');
          
            MT('spanBogus',
                'Percentage 25% is not a span.');
          
            MT('citeBogus',
                'Question? is not a citation.');
          
            MT('codeBogus',
                'user@example.com');
          
            MT('subBogus',
                '~username');
          
            MT('supBogus',
                'foo ^ bar');
          
            MT('deletionBogus',
                '3 - 3 = 0');
          
            MT('additionBogus',
                '3 + 3 = 6');
          
            MT('image',
                'An image: [string !http://www.example.com/image.png!]');
          
            MT('imageWithAltText',
                'An image: [string !http://www.example.com/image.png (Alt Text)!]');
          
            MT('imageWithUrl',
                'An image: [string !http://www.example.com/image.png!:http://www.example.com/]');
          
            /*
             * Headers
             */
          
            MT('h1',
                '[header&header-1 h1. foo]');
          
            MT('h2',
                '[header&header-2 h2. foo]');
          
            MT('h3',
                '[header&header-3 h3. foo]');
          
            MT('h4',
                '[header&header-4 h4. foo]');
          
            MT('h5',
                '[header&header-5 h5. foo]');
          
            MT('h6',
                '[header&header-6 h6. foo]');
          
            MT('h7Bogus',
                'h7. foo');
          
            MT('multipleHeaders',
                '[header&header-1 h1. Heading 1]',
                '',
                'Some text.',
                '',
                '[header&header-2 h2. Heading 2]',
                '',
                'More text.');
          
            MT('h1inline',
                '[header&header-1 h1. foo ][header&header-1&em _bar_][header&header-1  baz]');
          
            /*
             * Lists
             */
          
            MT('ul',
                'foo',
                'bar',
                '',
                '[variable-2 * foo]',
                '[variable-2 * bar]');
          
            MT('ulNoBlank',
                'foo',
                'bar',
                '[variable-2 * foo]',
                '[variable-2 * bar]');
          
            MT('ol',
                'foo',
                'bar',
                '',
                '[variable-2 # foo]',
                '[variable-2 # bar]');
          
            MT('olNoBlank',
                'foo',
                'bar',
                '[variable-2 # foo]',
                '[variable-2 # bar]');
          
            MT('ulFormatting',
                '[variable-2 * ][variable-2&em _foo_][variable-2  bar]',
                '[variable-2 * ][variable-2&strong *][variable-2&em&strong _foo_]' +
                  '[variable-2&strong *][variable-2  bar]',
                '[variable-2 * ][variable-2&strong *foo*][variable-2  bar]');
          
            MT('olFormatting',
                '[variable-2 # ][variable-2&em _foo_][variable-2  bar]',
                '[variable-2 # ][variable-2&strong *][variable-2&em&strong _foo_]' +
                  '[variable-2&strong *][variable-2  bar]',
                '[variable-2 # ][variable-2&strong *foo*][variable-2  bar]');
          
            MT('ulNested',
                '[variable-2 * foo]',
                '[variable-3 ** bar]',
                '[keyword *** bar]',
                '[variable-2 **** bar]',
                '[variable-3 ** bar]');
          
            MT('olNested',
                '[variable-2 # foo]',
                '[variable-3 ## bar]',
                '[keyword ### bar]',
                '[variable-2 #### bar]',
                '[variable-3 ## bar]');
          
            MT('ulNestedWithOl',
                '[variable-2 * foo]',
                '[variable-3 ## bar]',
                '[keyword *** bar]',
                '[variable-2 #### bar]',
                '[variable-3 ** bar]');
          
            MT('olNestedWithUl',
                '[variable-2 # foo]',
                '[variable-3 ** bar]',
                '[keyword ### bar]',
                '[variable-2 **** bar]',
                '[variable-3 ## bar]');
          
            MT('definitionList',
                '[number - coffee := Hot ][number&em _and_][number  black]',
                '',
                'Normal text.');
          
            MT('definitionListSpan',
                '[number - coffee :=]',
                '',
                '[number Hot ][number&em _and_][number  black =:]',
                '',
                'Normal text.');
          
            MT('boo',
                '[number - dog := woof woof]',
                '[number - cat := meow meow]',
                '[number - whale :=]',
                '[number Whale noises.]',
                '',
                '[number Also, ][number&em _splashing_][number . =:]');
          
            /*
             * Attributes
             */
          
            MT('divWithAttribute',
                '[punctuation div][punctuation&attribute (#my-id)][punctuation . foo bar]');
          
            MT('divWithAttributeAnd2emRightPadding',
                '[punctuation div][punctuation&attribute (#my-id)((][punctuation . foo bar]');
          
            MT('divWithClassAndId',
                '[punctuation div][punctuation&attribute (my-class#my-id)][punctuation . foo bar]');
          
            MT('paragraphWithCss',
                'p[attribute {color:red;}]. foo bar');
          
            MT('paragraphNestedStyles',
                'p. [strong *foo ][strong&em _bar_][strong *]');
          
            MT('paragraphWithLanguage',
                'p[attribute [[fr]]]. Parlez-vous français?');
          
            MT('paragraphLeftAlign',
                'p[attribute <]. Left');
          
            MT('paragraphRightAlign',
                'p[attribute >]. Right');
          
            MT('paragraphRightAlign',
                'p[attribute =]. Center');
          
            MT('paragraphJustified',
                'p[attribute <>]. Justified');
          
            MT('paragraphWithLeftIndent1em',
                'p[attribute (]. Left');
          
            MT('paragraphWithRightIndent1em',
                'p[attribute )]. Right');
          
            MT('paragraphWithLeftIndent2em',
                'p[attribute ((]. Left');
          
            MT('paragraphWithRightIndent2em',
                'p[attribute ))]. Right');
          
            MT('paragraphWithLeftIndent3emRightIndent2em',
                'p[attribute ((())]. Right');
          
            MT('divFormatting',
                '[punctuation div. ][punctuation&strong *foo ]' +
                  '[punctuation&strong&em _bar_][punctuation&strong *]');
          
            MT('phraseModifierAttributes',
                'p[attribute (my-class)]. This is a paragraph that has a class and' +
                ' this [em _][em&attribute (#special-phrase)][em emphasized phrase_]' +
                ' has an id.');
          
            MT('linkWithClass',
                '[link "(my-class). This is a link with class":http://redcloth.org]');
          
            /*
             * Layouts
             */
          
            MT('paragraphLayouts',
                'p. This is one paragraph.',
                '',
                'p. This is another.');
          
            MT('div',
                '[punctuation div. foo bar]');
          
            MT('pre',
                '[operator pre. Text]');
          
            MT('bq.',
                '[bracket bq. foo bar]',
                '',
                'Normal text.');
          
            MT('footnote',
                '[variable fn123. foo ][variable&strong *bar*]');
          
            /*
             * Spanning Layouts
             */
          
            MT('bq..ThenParagraph',
                '[bracket bq.. foo bar]',
                '',
                '[bracket More quote.]',
                'p. Normal Text');
          
            MT('bq..ThenH1',
                '[bracket bq.. foo bar]',
                '',
                '[bracket More quote.]',
                '[header&header-1 h1. Header Text]');
          
            MT('bc..ThenParagraph',
                '[atom bc.. # Some ruby code]',
                '[atom obj = {foo: :bar}]',
                '[atom puts obj]',
                '',
                '[atom obj[[:love]] = "*love*"]',
                '[atom puts obj.love.upcase]',
                '',
                'p. Normal text.');
          
            MT('fn1..ThenParagraph',
                '[variable fn1.. foo bar]',
                '',
                '[variable More.]',
                'p. Normal Text');
          
            MT('pre..ThenParagraph',
                '[operator pre.. foo bar]',
                '',
                '[operator More.]',
                'p. Normal Text');
          
            /*
             * Tables
             */
          
            MT('table',
                '[variable-3&operator |_. name |_. age|]',
                '[variable-3 |][variable-3&strong *Walter*][variable-3 |   5  |]',
                '[variable-3 |Florence|   6  |]',
                '',
                'p. Normal text.');
          
            MT('tableWithAttributes',
                '[variable-3&operator |_. name |_. age|]',
                '[variable-3 |][variable-3&attribute /2.][variable-3  Jim |]',
                '[variable-3 |][variable-3&attribute \\2{color: red}.][variable-3  Sam |]');
          
            /*
             * HTML
             */
          
            MT('html',
                '[comment <div id="wrapper">]',
                '[comment <section id="introduction">]',
                '',
                '[header&header-1 h1. Welcome]',
                '',
                '[variable-2 * Item one]',
                '[variable-2 * Item two]',
                '',
                '[comment <a href="http://example.com">Example</a>]',
                '',
                '[comment </section>]',
                '[comment </div>]');
          
            MT('inlineHtml',
                'I can use HTML directly in my [comment <span class="youbetcha">Textile</span>].');
          
            /*
             * No-Textile
             */
          
            MT('notextile',
              '[string-2 notextile. *No* formatting]');
          
            MT('notextileInline',
                'Use [string-2 ==*asterisks*==] for [strong *strong*] text.');
          
            MT('notextileWithPre',
                '[operator pre. *No* formatting]');
          
            MT('notextileWithSpanningPre',
                '[operator pre.. *No* formatting]',
                '',
                '[operator *No* formatting]');
          
            /* Only toggling phrases between non-word chars. */
          
            MT('phrase-in-word',
               'foo_bar_baz');
          
            MT('phrase-non-word',
               '[negative -x-] aaa-bbb ccc-ddd [negative -eee-] fff [negative -ggg-]');
          
            MT('phrase-lone-dash',
               'foo - bar - baz');
          })();
          
        • textile.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") { // CommonJS
              mod(require("../../lib/codemirror"));
            } else if (typeof define == "function" && define.amd) { // AMD
              define(["../../lib/codemirror"], mod);
            } else { // Plain browser env
              mod(CodeMirror);
            }
          })(function(CodeMirror) {
            "use strict";
          
            var TOKEN_STYLES = {
              addition: "positive",
              attributes: "attribute",
              bold: "strong",
              cite: "keyword",
              code: "atom",
              definitionList: "number",
              deletion: "negative",
              div: "punctuation",
              em: "em",
              footnote: "variable",
              footCite: "qualifier",
              header: "header",
              html: "comment",
              image: "string",
              italic: "em",
              link: "link",
              linkDefinition: "link",
              list1: "variable-2",
              list2: "variable-3",
              list3: "keyword",
              notextile: "string-2",
              pre: "operator",
              p: "property",
              quote: "bracket",
              span: "quote",
              specialChar: "tag",
              strong: "strong",
              sub: "builtin",
              sup: "builtin",
              table: "variable-3",
              tableHeading: "operator"
            };
          
            function startNewLine(stream, state) {
              state.mode = Modes.newLayout;
              state.tableHeading = false;
          
              if (state.layoutType === "definitionList" && state.spanningLayout &&
                  stream.match(RE("definitionListEnd"), false))
                state.spanningLayout = false;
            }
          
            function handlePhraseModifier(stream, state, ch) {
              if (ch === "_") {
                if (stream.eat("_"))
                  return togglePhraseModifier(stream, state, "italic", /__/, 2);
                else
                  return togglePhraseModifier(stream, state, "em", /_/, 1);
              }
          
              if (ch === "*") {
                if (stream.eat("*")) {
                  return togglePhraseModifier(stream, state, "bold", /\*\*/, 2);
                }
                return togglePhraseModifier(stream, state, "strong", /\*/, 1);
              }
          
              if (ch === "[") {
                if (stream.match(/\d+\]/)) state.footCite = true;
                return tokenStyles(state);
              }
          
              if (ch === "(") {
                var spec = stream.match(/^(r|tm|c)\)/);
                if (spec)
                  return tokenStylesWith(state, TOKEN_STYLES.specialChar);
              }
          
              if (ch === "<" && stream.match(/(\w+)[^>]+>[^<]+<\/\1>/))
                return tokenStylesWith(state, TOKEN_STYLES.html);
          
              if (ch === "?" && stream.eat("?"))
                return togglePhraseModifier(stream, state, "cite", /\?\?/, 2);
          
              if (ch === "=" && stream.eat("="))
                return togglePhraseModifier(stream, state, "notextile", /==/, 2);
          
              if (ch === "-" && !stream.eat("-"))
                return togglePhraseModifier(stream, state, "deletion", /-/, 1);
          
              if (ch === "+")
                return togglePhraseModifier(stream, state, "addition", /\+/, 1);
          
              if (ch === "~")
                return togglePhraseModifier(stream, state, "sub", /~/, 1);
          
              if (ch === "^")
                return togglePhraseModifier(stream, state, "sup", /\^/, 1);
          
              if (ch === "%")
                return togglePhraseModifier(stream, state, "span", /%/, 1);
          
              if (ch === "@")
                return togglePhraseModifier(stream, state, "code", /@/, 1);
          
              if (ch === "!") {
                var type = togglePhraseModifier(stream, state, "image", /(?:\([^\)]+\))?!/, 1);
                stream.match(/^:\S+/); // optional Url portion
                return type;
              }
              return tokenStyles(state);
            }
          
            function togglePhraseModifier(stream, state, phraseModifier, closeRE, openSize) {
              var charBefore = stream.pos > openSize ? stream.string.charAt(stream.pos - openSize - 1) : null;
              var charAfter = stream.peek();
              if (state[phraseModifier]) {
                if ((!charAfter || /\W/.test(charAfter)) && charBefore && /\S/.test(charBefore)) {
                  var type = tokenStyles(state);
                  state[phraseModifier] = false;
                  return type;
                }
              } else if ((!charBefore || /\W/.test(charBefore)) && charAfter && /\S/.test(charAfter) &&
                         stream.match(new RegExp("^.*\\S" + closeRE.source + "(?:\\W|$)"), false)) {
                state[phraseModifier] = true;
                state.mode = Modes.attributes;
              }
              return tokenStyles(state);
            };
          
            function tokenStyles(state) {
              var disabled = textileDisabled(state);
              if (disabled) return disabled;
          
              var styles = [];
              if (state.layoutType) styles.push(TOKEN_STYLES[state.layoutType]);
          
              styles = styles.concat(activeStyles(
                state, "addition", "bold", "cite", "code", "deletion", "em", "footCite",
                "image", "italic", "link", "span", "strong", "sub", "sup", "table", "tableHeading"));
          
              if (state.layoutType === "header")
                styles.push(TOKEN_STYLES.header + "-" + state.header);
          
              return styles.length ? styles.join(" ") : null;
            }
          
            function textileDisabled(state) {
              var type = state.layoutType;
          
              switch(type) {
              case "notextile":
              case "code":
              case "pre":
                return TOKEN_STYLES[type];
              default:
                if (state.notextile)
                  return TOKEN_STYLES.notextile + (type ? (" " + TOKEN_STYLES[type]) : "");
                return null;
              }
            }
          
            function tokenStylesWith(state, extraStyles) {
              var disabled = textileDisabled(state);
              if (disabled) return disabled;
          
              var type = tokenStyles(state);
              if (extraStyles)
                return type ? (type + " " + extraStyles) : extraStyles;
              else
                return type;
            }
          
            function activeStyles(state) {
              var styles = [];
              for (var i = 1; i < arguments.length; ++i) {
                if (state[arguments[i]])
                  styles.push(TOKEN_STYLES[arguments[i]]);
              }
              return styles;
            }
          
            function blankLine(state) {
              var spanningLayout = state.spanningLayout, type = state.layoutType;
          
              for (var key in state) if (state.hasOwnProperty(key))
                delete state[key];
          
              state.mode = Modes.newLayout;
              if (spanningLayout) {
                state.layoutType = type;
                state.spanningLayout = true;
              }
            }
          
            var REs = {
              cache: {},
              single: {
                bc: "bc",
                bq: "bq",
                definitionList: /- [^(?::=)]+:=+/,
                definitionListEnd: /.*=:\s*$/,
                div: "div",
                drawTable: /\|.*\|/,
                foot: /fn\d+/,
                header: /h[1-6]/,
                html: /\s*<(?:\/)?(\w+)(?:[^>]+)?>(?:[^<]+<\/\1>)?/,
                link: /[^"]+":\S/,
                linkDefinition: /\[[^\s\]]+\]\S+/,
                list: /(?:#+|\*+)/,
                notextile: "notextile",
                para: "p",
                pre: "pre",
                table: "table",
                tableCellAttributes: /[\/\\]\d+/,
                tableHeading: /\|_\./,
                tableText: /[^"_\*\[\(\?\+~\^%@|-]+/,
                text: /[^!"_=\*\[\(<\?\+~\^%@-]+/
              },
              attributes: {
                align: /(?:<>|<|>|=)/,
                selector: /\([^\(][^\)]+\)/,
                lang: /\[[^\[\]]+\]/,
                pad: /(?:\(+|\)+){1,2}/,
                css: /\{[^\}]+\}/
              },
              createRe: function(name) {
                switch (name) {
                case "drawTable":
                  return REs.makeRe("^", REs.single.drawTable, "$");
                case "html":
                  return REs.makeRe("^", REs.single.html, "(?:", REs.single.html, ")*", "$");
                case "linkDefinition":
                  return REs.makeRe("^", REs.single.linkDefinition, "$");
                case "listLayout":
                  return REs.makeRe("^", REs.single.list, RE("allAttributes"), "*\\s+");
                case "tableCellAttributes":
                  return REs.makeRe("^", REs.choiceRe(REs.single.tableCellAttributes,
                                                      RE("allAttributes")), "+\\.");
                case "type":
                  return REs.makeRe("^", RE("allTypes"));
                case "typeLayout":
                  return REs.makeRe("^", RE("allTypes"), RE("allAttributes"),
                                    "*\\.\\.?", "(\\s+|$)");
                case "attributes":
                  return REs.makeRe("^", RE("allAttributes"), "+");
          
                case "allTypes":
                  return REs.choiceRe(REs.single.div, REs.single.foot,
                                      REs.single.header, REs.single.bc, REs.single.bq,
                                      REs.single.notextile, REs.single.pre, REs.single.table,
                                      REs.single.para);
          
                case "allAttributes":
                  return REs.choiceRe(REs.attributes.selector, REs.attributes.css,
                                      REs.attributes.lang, REs.attributes.align, REs.attributes.pad);
          
                default:
                  return REs.makeRe("^", REs.single[name]);
                }
              },
              makeRe: function() {
                var pattern = "";
                for (var i = 0; i < arguments.length; ++i) {
                  var arg = arguments[i];
                  pattern += (typeof arg === "string") ? arg : arg.source;
                }
                return new RegExp(pattern);
              },
              choiceRe: function() {
                var parts = [arguments[0]];
                for (var i = 1; i < arguments.length; ++i) {
                  parts[i * 2 - 1] = "|";
                  parts[i * 2] = arguments[i];
                }
          
                parts.unshift("(?:");
                parts.push(")");
                return REs.makeRe.apply(null, parts);
              }
            };
          
            function RE(name) {
              return (REs.cache[name] || (REs.cache[name] = REs.createRe(name)));
            }
          
            var Modes = {
              newLayout: function(stream, state) {
                if (stream.match(RE("typeLayout"), false)) {
                  state.spanningLayout = false;
                  return (state.mode = Modes.blockType)(stream, state);
                }
                var newMode;
                if (!textileDisabled(state)) {
                  if (stream.match(RE("listLayout"), false))
                    newMode = Modes.list;
                  else if (stream.match(RE("drawTable"), false))
                    newMode = Modes.table;
                  else if (stream.match(RE("linkDefinition"), false))
                    newMode = Modes.linkDefinition;
                  else if (stream.match(RE("definitionList")))
                    newMode = Modes.definitionList;
                  else if (stream.match(RE("html"), false))
                    newMode = Modes.html;
                }
                return (state.mode = (newMode || Modes.text))(stream, state);
              },
          
              blockType: function(stream, state) {
                var match, type;
                state.layoutType = null;
          
                if (match = stream.match(RE("type")))
                  type = match[0];
                else
                  return (state.mode = Modes.text)(stream, state);
          
                if (match = type.match(RE("header"))) {
                  state.layoutType = "header";
                  state.header = parseInt(match[0][1]);
                } else if (type.match(RE("bq"))) {
                  state.layoutType = "quote";
                } else if (type.match(RE("bc"))) {
                  state.layoutType = "code";
                } else if (type.match(RE("foot"))) {
                  state.layoutType = "footnote";
                } else if (type.match(RE("notextile"))) {
                  state.layoutType = "notextile";
                } else if (type.match(RE("pre"))) {
                  state.layoutType = "pre";
                } else if (type.match(RE("div"))) {
                  state.layoutType = "div";
                } else if (type.match(RE("table"))) {
                  state.layoutType = "table";
                }
          
                state.mode = Modes.attributes;
                return tokenStyles(state);
              },
          
              text: function(stream, state) {
                if (stream.match(RE("text"))) return tokenStyles(state);
          
                var ch = stream.next();
                if (ch === '"')
                  return (state.mode = Modes.link)(stream, state);
                return handlePhraseModifier(stream, state, ch);
              },
          
              attributes: function(stream, state) {
                state.mode = Modes.layoutLength;
          
                if (stream.match(RE("attributes")))
                  return tokenStylesWith(state, TOKEN_STYLES.attributes);
                else
                  return tokenStyles(state);
              },
          
              layoutLength: function(stream, state) {
                if (stream.eat(".") && stream.eat("."))
                  state.spanningLayout = true;
          
                state.mode = Modes.text;
                return tokenStyles(state);
              },
          
              list: function(stream, state) {
                var match = stream.match(RE("list"));
                state.listDepth = match[0].length;
                var listMod = (state.listDepth - 1) % 3;
                if (!listMod)
                  state.layoutType = "list1";
                else if (listMod === 1)
                  state.layoutType = "list2";
                else
                  state.layoutType = "list3";
          
                state.mode = Modes.attributes;
                return tokenStyles(state);
              },
          
              link: function(stream, state) {
                state.mode = Modes.text;
                if (stream.match(RE("link"))) {
                  stream.match(/\S+/);
                  return tokenStylesWith(state, TOKEN_STYLES.link);
                }
                return tokenStyles(state);
              },
          
              linkDefinition: function(stream, state) {
                stream.skipToEnd();
                return tokenStylesWith(state, TOKEN_STYLES.linkDefinition);
              },
          
              definitionList: function(stream, state) {
                stream.match(RE("definitionList"));
          
                state.layoutType = "definitionList";
          
                if (stream.match(/\s*$/))
                  state.spanningLayout = true;
                else
                  state.mode = Modes.attributes;
          
                return tokenStyles(state);
              },
          
              html: function(stream, state) {
                stream.skipToEnd();
                return tokenStylesWith(state, TOKEN_STYLES.html);
              },
          
              table: function(stream, state) {
                state.layoutType = "table";
                return (state.mode = Modes.tableCell)(stream, state);
              },
          
              tableCell: function(stream, state) {
                if (stream.match(RE("tableHeading")))
                  state.tableHeading = true;
                else
                  stream.eat("|");
          
                state.mode = Modes.tableCellAttributes;
                return tokenStyles(state);
              },
          
              tableCellAttributes: function(stream, state) {
                state.mode = Modes.tableText;
          
                if (stream.match(RE("tableCellAttributes")))
                  return tokenStylesWith(state, TOKEN_STYLES.attributes);
                else
                  return tokenStyles(state);
              },
          
              tableText: function(stream, state) {
                if (stream.match(RE("tableText")))
                  return tokenStyles(state);
          
                if (stream.peek() === "|") { // end of cell
                  state.mode = Modes.tableCell;
                  return tokenStyles(state);
                }
                return handlePhraseModifier(stream, state, stream.next());
              }
            };
          
            CodeMirror.defineMode("textile", function() {
              return {
                startState: function() {
                  return { mode: Modes.newLayout };
                },
                token: function(stream, state) {
                  if (stream.sol()) startNewLine(stream, state);
                  return state.mode(stream, state);
                },
                blankLine: blankLine
              };
            });
          
            CodeMirror.defineMIME("text/x-textile", "textile");
          });
          
      • tiddlywiki
        • index.html
          <!doctype html>
          
          <title>CodeMirror: TiddlyWiki mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <link rel="stylesheet" href="tiddlywiki.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="tiddlywiki.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">TiddlyWiki</a>
            </ul>
          </div>
          
          <article>
          <h2>TiddlyWiki mode</h2>
          
          
          <div><textarea id="code" name="code">
          !TiddlyWiki Formatting
          * Rendered versions can be found at: http://www.tiddlywiki.com/#Reference
          
          |!Option            | !Syntax            |
          |bold font          | ''bold''           |
          |italic type        | //italic//         |
          |underlined text    | __underlined__     |
          |strikethrough text | --strikethrough--  |
          |superscript text   | super^^script^^    |
          |subscript text     | sub~~script~~      |
          |highlighted text   | @@highlighted@@    |
          |preformatted text  | {{{preformatted}}} |
          
          !Block Elements
          <<<
          !Heading 1
          
          !!Heading 2
          
          !!!Heading 3
          
          !!!!Heading 4
          
          !!!!!Heading 5
          <<<
          
          !!Lists
          <<<
          * unordered list, level 1
          ** unordered list, level 2
          *** unordered list, level 3
          
          # ordered list, level 1
          ## ordered list, level 2
          ### unordered list, level 3
          
          ; definition list, term
          : definition list, description
          <<<
          
          !!Blockquotes
          <<<
          > blockquote, level 1
          >> blockquote, level 2
          >>> blockquote, level 3
          
          > blockquote
          <<<
          
          !!Preformatted Text
          <<<
          {{{
          preformatted (e.g. code)
          }}}
          <<<
          
          !!Code Sections
          <<<
          {{{
          Text style code
          }}}
          
          //{{{
          JS styled code. TiddlyWiki mixed mode should support highlighter switching in the future.
          //}}}
          
          <!--{{{-->
          XML styled code. TiddlyWiki mixed mode should support highlighter switching in the future.
          <!--}}}-->
          <<<
          
          !!Tables
          <<<
          |CssClass|k
          |!heading column 1|!heading column 2|
          |row 1, column 1|row 1, column 2|
          |row 2, column 1|row 2, column 2|
          |>|COLSPAN|
          |ROWSPAN| ... |
          |~| ... |
          |CssProperty:value;...| ... |
          |caption|c
          
          ''Annotation:''
          * The {{{>}}} marker creates a "colspan", causing the current cell to merge with the one to the right.
          * The {{{~}}} marker creates a "rowspan", causing the current cell to merge with the one above.
          <<<
          !!Images /% TODO %/
          cf. [[TiddlyWiki.com|http://www.tiddlywiki.com/#EmbeddedImages]]
          
          !Hyperlinks
          * [[WikiWords|WikiWord]] are automatically transformed to hyperlinks to the respective tiddler
          ** the automatic transformation can be suppressed by preceding the respective WikiWord with a tilde ({{{~}}}): {{{~WikiWord}}}
          * [[PrettyLinks]] are enclosed in square brackets and contain the desired tiddler name: {{{[[tiddler name]]}}}
          ** optionally, a custom title or description can be added, separated by a pipe character ({{{|}}}): {{{[[title|target]]}}}<br>'''N.B.:''' In this case, the target can also be any website (i.e. URL).
          
          !Custom Styling
          * {{{@@CssProperty:value;CssProperty:value;...@@}}}<br>''N.B.:'' CSS color definitions should use lowercase letters to prevent the inadvertent creation of WikiWords.
          * <html><code>{{customCssClass{...}}}</code></html>
          * raw HTML can be inserted by enclosing the respective code in HTML tags: {{{<html> ... </html>}}}
          
          !Special Markers
          * {{{<br>}}} forces a manual line break
          * {{{----}}} creates a horizontal ruler
          * [[HTML entities|http://www.tiddlywiki.com/#HtmlEntities]]
          * [[HTML entities local|HtmlEntities]]
          * {{{<<macroName>>}}} calls the respective [[macro|Macros]]
          * To hide text within a tiddler so that it is not displayed, it can be wrapped in {{{/%}}} and {{{%/}}}.<br/>This can be a useful trick for hiding drafts or annotating complex markup.
          * To prevent wiki markup from taking effect for a particular section, that section can be enclosed in three double quotes: e.g. {{{"""WikiWord"""}}}.
          </textarea></div>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  mode: 'tiddlywiki',      
                  lineNumbers: true,
                  matchBrackets: true
                });
              </script>
          
              <p>TiddlyWiki mode supports a single configuration.</p>
          
              <p><strong>MIME types defined:</strong> <code>text/x-tiddlywiki</code>.</p>
            </article>
          
        • tiddlywiki.css
          span.cm-underlined {
            text-decoration: underline;
          }
          span.cm-strikethrough {
            text-decoration: line-through;
          }
          span.cm-brace {
            color: #170;
            font-weight: bold;
          }
          span.cm-table {
            color: blue;
            font-weight: bold;
          }
          
        • tiddlywiki.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          /***
              |''Name''|tiddlywiki.js|
              |''Description''|Enables TiddlyWikiy syntax highlighting using CodeMirror|
              |''Author''|PMario|
              |''Version''|0.1.7|
              |''Status''|''stable''|
              |''Source''|[[GitHub|https://github.com/pmario/CodeMirror2/blob/tw-syntax/mode/tiddlywiki]]|
              |''Documentation''|http://codemirror.tiddlyspace.com/|
              |''License''|[[MIT License|http://www.opensource.org/licenses/mit-license.php]]|
              |''CoreVersion''|2.5.0|
              |''Requires''|codemirror.js|
              |''Keywords''|syntax highlighting color code mirror codemirror|
              ! Info
              CoreVersion parameter is needed for TiddlyWiki only!
          ***/
          //{{{
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("tiddlywiki", function () {
            // Tokenizer
            var textwords = {};
          
            var keywords = function () {
              function kw(type) {
                return { type: type, style: "macro"};
              }
              return {
                "allTags": kw('allTags'), "closeAll": kw('closeAll'), "list": kw('list'),
                "newJournal": kw('newJournal'), "newTiddler": kw('newTiddler'),
                "permaview": kw('permaview'), "saveChanges": kw('saveChanges'),
                "search": kw('search'), "slider": kw('slider'),   "tabs": kw('tabs'),
                "tag": kw('tag'), "tagging": kw('tagging'),       "tags": kw('tags'),
                "tiddler": kw('tiddler'), "timeline": kw('timeline'),
                "today": kw('today'), "version": kw('version'),   "option": kw('option'),
          
                "with": kw('with'),
                "filter": kw('filter')
              };
            }();
          
            var isSpaceName = /[\w_\-]/i,
            reHR = /^\-\-\-\-+$/,                                 // <hr>
            reWikiCommentStart = /^\/\*\*\*$/,            // /***
            reWikiCommentStop = /^\*\*\*\/$/,             // ***/
            reBlockQuote = /^<<<$/,
          
            reJsCodeStart = /^\/\/\{\{\{$/,                       // //{{{ js block start
            reJsCodeStop = /^\/\/\}\}\}$/,                        // //}}} js stop
            reXmlCodeStart = /^<!--\{\{\{-->$/,           // xml block start
            reXmlCodeStop = /^<!--\}\}\}-->$/,            // xml stop
          
            reCodeBlockStart = /^\{\{\{$/,                        // {{{ TW text div block start
            reCodeBlockStop = /^\}\}\}$/,                 // }}} TW text stop
          
            reUntilCodeStop = /.*?\}\}\}/;
          
            function chain(stream, state, f) {
              state.tokenize = f;
              return f(stream, state);
            }
          
            function jsTokenBase(stream, state) {
              var sol = stream.sol(), ch;
          
              state.block = false;        // indicates the start of a code block.
          
              ch = stream.peek();         // don't eat, to make matching simpler
          
              // check start of  blocks
              if (sol && /[<\/\*{}\-]/.test(ch)) {
                if (stream.match(reCodeBlockStart)) {
                  state.block = true;
                  return chain(stream, state, twTokenCode);
                }
                if (stream.match(reBlockQuote)) {
                  return 'quote';
                }
                if (stream.match(reWikiCommentStart) || stream.match(reWikiCommentStop)) {
                  return 'comment';
                }
                if (stream.match(reJsCodeStart) || stream.match(reJsCodeStop) || stream.match(reXmlCodeStart) || stream.match(reXmlCodeStop)) {
                  return 'comment';
                }
                if (stream.match(reHR)) {
                  return 'hr';
                }
              } // sol
              ch = stream.next();
          
              if (sol && /[\/\*!#;:>|]/.test(ch)) {
                if (ch == "!") { // tw header
                  stream.skipToEnd();
                  return "header";
                }
                if (ch == "*") { // tw list
                  stream.eatWhile('*');
                  return "comment";
                }
                if (ch == "#") { // tw numbered list
                  stream.eatWhile('#');
                  return "comment";
                }
                if (ch == ";") { // definition list, term
                  stream.eatWhile(';');
                  return "comment";
                }
                if (ch == ":") { // definition list, description
                  stream.eatWhile(':');
                  return "comment";
                }
                if (ch == ">") { // single line quote
                  stream.eatWhile(">");
                  return "quote";
                }
                if (ch == '|') {
                  return 'header';
                }
              }
          
              if (ch == '{' && stream.match(/\{\{/)) {
                return chain(stream, state, twTokenCode);
              }
          
              // rudimentary html:// file:// link matching. TW knows much more ...
              if (/[hf]/i.test(ch)) {
                if (/[ti]/i.test(stream.peek()) && stream.match(/\b(ttps?|tp|ile):\/\/[\-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$]/i)) {
                  return "link";
                }
              }
              // just a little string indicator, don't want to have the whole string covered
              if (ch == '"') {
                return 'string';
              }
              if (ch == '~') {    // _no_ CamelCase indicator should be bold
                return 'brace';
              }
              if (/[\[\]]/.test(ch)) { // check for [[..]]
                if (stream.peek() == ch) {
                  stream.next();
                  return 'brace';
                }
              }
              if (ch == "@") {    // check for space link. TODO fix @@...@@ highlighting
                stream.eatWhile(isSpaceName);
                return "link";
              }
              if (/\d/.test(ch)) {        // numbers
                stream.eatWhile(/\d/);
                return "number";
              }
              if (ch == "/") { // tw invisible comment
                if (stream.eat("%")) {
                  return chain(stream, state, twTokenComment);
                }
                else if (stream.eat("/")) { //
                  return chain(stream, state, twTokenEm);
                }
              }
              if (ch == "_") { // tw underline
                if (stream.eat("_")) {
                  return chain(stream, state, twTokenUnderline);
                }
              }
              // strikethrough and mdash handling
              if (ch == "-") {
                if (stream.eat("-")) {
                  // if strikethrough looks ugly, change CSS.
                  if (stream.peek() != ' ')
                    return chain(stream, state, twTokenStrike);
                  // mdash
                  if (stream.peek() == ' ')
                    return 'brace';
                }
              }
              if (ch == "'") { // tw bold
                if (stream.eat("'")) {
                  return chain(stream, state, twTokenStrong);
                }
              }
              if (ch == "<") { // tw macro
                if (stream.eat("<")) {
                  return chain(stream, state, twTokenMacro);
                }
              }
              else {
                return null;
              }
          
              // core macro handling
              stream.eatWhile(/[\w\$_]/);
              var word = stream.current(),
              known = textwords.propertyIsEnumerable(word) && textwords[word];
          
              return known ? known.style : null;
            } // jsTokenBase()
          
            // tw invisible comment
            function twTokenComment(stream, state) {
              var maybeEnd = false,
              ch;
              while (ch = stream.next()) {
                if (ch == "/" && maybeEnd) {
                  state.tokenize = jsTokenBase;
                  break;
                }
                maybeEnd = (ch == "%");
              }
              return "comment";
            }
          
            // tw strong / bold
            function twTokenStrong(stream, state) {
              var maybeEnd = false,
              ch;
              while (ch = stream.next()) {
                if (ch == "'" && maybeEnd) {
                  state.tokenize = jsTokenBase;
                  break;
                }
                maybeEnd = (ch == "'");
              }
              return "strong";
            }
          
            // tw code
            function twTokenCode(stream, state) {
              var sb = state.block;
          
              if (sb && stream.current()) {
                return "comment";
              }
          
              if (!sb && stream.match(reUntilCodeStop)) {
                state.tokenize = jsTokenBase;
                return "comment";
              }
          
              if (sb && stream.sol() && stream.match(reCodeBlockStop)) {
                state.tokenize = jsTokenBase;
                return "comment";
              }
          
              stream.next();
              return "comment";
            }
          
            // tw em / italic
            function twTokenEm(stream, state) {
              var maybeEnd = false,
              ch;
              while (ch = stream.next()) {
                if (ch == "/" && maybeEnd) {
                  state.tokenize = jsTokenBase;
                  break;
                }
                maybeEnd = (ch == "/");
              }
              return "em";
            }
          
            // tw underlined text
            function twTokenUnderline(stream, state) {
              var maybeEnd = false,
              ch;
              while (ch = stream.next()) {
                if (ch == "_" && maybeEnd) {
                  state.tokenize = jsTokenBase;
                  break;
                }
                maybeEnd = (ch == "_");
              }
              return "underlined";
            }
          
            // tw strike through text looks ugly
            // change CSS if needed
            function twTokenStrike(stream, state) {
              var maybeEnd = false, ch;
          
              while (ch = stream.next()) {
                if (ch == "-" && maybeEnd) {
                  state.tokenize = jsTokenBase;
                  break;
                }
                maybeEnd = (ch == "-");
              }
              return "strikethrough";
            }
          
            // macro
            function twTokenMacro(stream, state) {
              var ch, word, known;
          
              if (stream.current() == '<<') {
                return 'macro';
              }
          
              ch = stream.next();
              if (!ch) {
                state.tokenize = jsTokenBase;
                return null;
              }
              if (ch == ">") {
                if (stream.peek() == '>') {
                  stream.next();
                  state.tokenize = jsTokenBase;
                  return "macro";
                }
              }
          
              stream.eatWhile(/[\w\$_]/);
              word = stream.current();
              known = keywords.propertyIsEnumerable(word) && keywords[word];
          
              if (known) {
                return known.style, word;
              }
              else {
                return null, word;
              }
            }
          
            // Interface
            return {
              startState: function () {
                return {
                  tokenize: jsTokenBase,
                  indented: 0,
                  level: 0
                };
              },
          
              token: function (stream, state) {
                if (stream.eatSpace()) return null;
                var style = state.tokenize(stream, state);
                return style;
              },
          
              electricChars: ""
            };
          });
          
          CodeMirror.defineMIME("text/x-tiddlywiki", "tiddlywiki");
          });
          
          //}}}
          
      • tiki
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Tiki wiki mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <link rel="stylesheet" href="tiki.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="tiki.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Tiki wiki</a>
            </ul>
          </div>
          
          <article>
          <h2>Tiki wiki mode</h2>
          
          
          <div><textarea id="code" name="code">
          Headings
          !Header 1
          !!Header 2
          !!!Header 3
          !!!!Header 4
          !!!!!Header 5
          !!!!!!Header 6
          
          Styling
          -=titlebar=-
          ^^ Box on multi
          lines
          of content^^
          __bold__
          ''italic''
          ===underline===
          ::center::
          --Line Through--
          
          Operators
          ~np~No parse~/np~
          
          Link
          [link|desc|nocache]
          
          Wiki
          ((Wiki))
          ((Wiki|desc))
          ((Wiki|desc|timeout))
          
          Table
          ||row1 col1|row1 col2|row1 col3
          row2 col1|row2 col2|row2 col3
          row3 col1|row3 col2|row3 col3||
          
          Lists:
          *bla
          **bla-1
          ++continue-bla-1
          ***bla-2
          ++continue-bla-1
          *bla
          +continue-bla
          #bla
          ** tra-la-la
          +continue-bla
          #bla
          
          Plugin (standard):
          {PLUGIN(attr="my attr")}
          Plugin Body
          {PLUGIN}
          
          Plugin (inline):
          {plugin attr="my attr"}
          </textarea></div>
          
          <script type="text/javascript">
          	var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  mode: 'tiki',      
                  lineNumbers: true
              });
          </script>
          
          </article>
          
        • tiki.css
          .cm-tw-syntaxerror {
          	color: #FFF;
          	background-color: #900;
          }
          
          .cm-tw-deleted {
          	text-decoration: line-through;
          }
          
          .cm-tw-header5 {
          	font-weight: bold;
          }
          .cm-tw-listitem:first-child { /*Added first child to fix duplicate padding when highlighting*/
          	padding-left: 10px;
          }
          
          .cm-tw-box {
          	border-top-width: 0px ! important;
          	border-style: solid;
          	border-width: 1px;
          	border-color: inherit;
          }
          
          .cm-tw-underline {
          	text-decoration: underline;
          }
        • tiki.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode('tiki', function(config) {
            function inBlock(style, terminator, returnTokenizer) {
              return function(stream, state) {
                while (!stream.eol()) {
                  if (stream.match(terminator)) {
                    state.tokenize = inText;
                    break;
                  }
                  stream.next();
                }
          
                if (returnTokenizer) state.tokenize = returnTokenizer;
          
                return style;
              };
            }
          
            function inLine(style) {
              return function(stream, state) {
                while(!stream.eol()) {
                  stream.next();
                }
                state.tokenize = inText;
                return style;
              };
            }
          
            function inText(stream, state) {
              function chain(parser) {
                state.tokenize = parser;
                return parser(stream, state);
              }
          
              var sol = stream.sol();
              var ch = stream.next();
          
              //non start of line
              switch (ch) { //switch is generally much faster than if, so it is used here
              case "{": //plugin
                stream.eat("/");
                stream.eatSpace();
                stream.eatWhile(/[^\s\u00a0=\"\'\/?(}]/);
                state.tokenize = inPlugin;
                return "tag";
              case "_": //bold
                if (stream.eat("_"))
                  return chain(inBlock("strong", "__", inText));
                break;
              case "'": //italics
                if (stream.eat("'"))
                  return chain(inBlock("em", "''", inText));
                break;
              case "(":// Wiki Link
                if (stream.eat("("))
                  return chain(inBlock("variable-2", "))", inText));
                break;
              case "[":// Weblink
                return chain(inBlock("variable-3", "]", inText));
                break;
              case "|": //table
                if (stream.eat("|"))
                  return chain(inBlock("comment", "||"));
                break;
              case "-":
                if (stream.eat("=")) {//titleBar
                  return chain(inBlock("header string", "=-", inText));
                } else if (stream.eat("-")) {//deleted
                  return chain(inBlock("error tw-deleted", "--", inText));
                }
                break;
              case "=": //underline
                if (stream.match("=="))
                  return chain(inBlock("tw-underline", "===", inText));
                break;
              case ":":
                if (stream.eat(":"))
                  return chain(inBlock("comment", "::"));
                break;
              case "^": //box
                return chain(inBlock("tw-box", "^"));
                break;
              case "~": //np
                if (stream.match("np~"))
                  return chain(inBlock("meta", "~/np~"));
                break;
              }
          
              //start of line types
              if (sol) {
                switch (ch) {
                case "!": //header at start of line
                  if (stream.match('!!!!!')) {
                    return chain(inLine("header string"));
                  } else if (stream.match('!!!!')) {
                    return chain(inLine("header string"));
                  } else if (stream.match('!!!')) {
                    return chain(inLine("header string"));
                  } else if (stream.match('!!')) {
                    return chain(inLine("header string"));
                  } else {
                    return chain(inLine("header string"));
                  }
                  break;
                case "*": //unordered list line item, or <li /> at start of line
                case "#": //ordered list line item, or <li /> at start of line
                case "+": //ordered list line item, or <li /> at start of line
                  return chain(inLine("tw-listitem bracket"));
                  break;
                }
              }
          
              //stream.eatWhile(/[&{]/); was eating up plugins, turned off to act less like html and more like tiki
              return null;
            }
          
            var indentUnit = config.indentUnit;
          
            // Return variables for tokenizers
            var pluginName, type;
            function inPlugin(stream, state) {
              var ch = stream.next();
              var peek = stream.peek();
          
              if (ch == "}") {
                state.tokenize = inText;
                //type = ch == ")" ? "endPlugin" : "selfclosePlugin"; inPlugin
                return "tag";
              } else if (ch == "(" || ch == ")") {
                return "bracket";
              } else if (ch == "=") {
                type = "equals";
          
                if (peek == ">") {
                  ch = stream.next();
                  peek = stream.peek();
                }
          
                //here we detect values directly after equal character with no quotes
                if (!/[\'\"]/.test(peek)) {
                  state.tokenize = inAttributeNoQuote();
                }
                //end detect values
          
                return "operator";
              } else if (/[\'\"]/.test(ch)) {
                state.tokenize = inAttribute(ch);
                return state.tokenize(stream, state);
              } else {
                stream.eatWhile(/[^\s\u00a0=\"\'\/?]/);
                return "keyword";
              }
            }
          
            function inAttribute(quote) {
              return function(stream, state) {
                while (!stream.eol()) {
                  if (stream.next() == quote) {
                    state.tokenize = inPlugin;
                    break;
                  }
                }
                return "string";
              };
            }
          
            function inAttributeNoQuote() {
              return function(stream, state) {
                while (!stream.eol()) {
                  var ch = stream.next();
                  var peek = stream.peek();
                  if (ch == " " || ch == "," || /[ )}]/.test(peek)) {
                state.tokenize = inPlugin;
                break;
              }
            }
            return "string";
          };
                               }
          
          var curState, setStyle;
          function pass() {
            for (var i = arguments.length - 1; i >= 0; i--) curState.cc.push(arguments[i]);
          }
          
          function cont() {
            pass.apply(null, arguments);
            return true;
          }
          
          function pushContext(pluginName, startOfLine) {
            var noIndent = curState.context && curState.context.noIndent;
            curState.context = {
              prev: curState.context,
              pluginName: pluginName,
              indent: curState.indented,
              startOfLine: startOfLine,
              noIndent: noIndent
            };
          }
          
          function popContext() {
            if (curState.context) curState.context = curState.context.prev;
          }
          
          function element(type) {
            if (type == "openPlugin") {curState.pluginName = pluginName; return cont(attributes, endplugin(curState.startOfLine));}
            else if (type == "closePlugin") {
              var err = false;
              if (curState.context) {
                err = curState.context.pluginName != pluginName;
                popContext();
              } else {
                err = true;
              }
              if (err) setStyle = "error";
              return cont(endcloseplugin(err));
            }
            else if (type == "string") {
              if (!curState.context || curState.context.name != "!cdata") pushContext("!cdata");
              if (curState.tokenize == inText) popContext();
              return cont();
            }
            else return cont();
          }
          
          function endplugin(startOfLine) {
            return function(type) {
              if (
                type == "selfclosePlugin" ||
                  type == "endPlugin"
              )
                return cont();
              if (type == "endPlugin") {pushContext(curState.pluginName, startOfLine); return cont();}
              return cont();
            };
          }
          
          function endcloseplugin(err) {
            return function(type) {
              if (err) setStyle = "error";
              if (type == "endPlugin") return cont();
              return pass();
            };
          }
          
          function attributes(type) {
            if (type == "keyword") {setStyle = "attribute"; return cont(attributes);}
            if (type == "equals") return cont(attvalue, attributes);
            return pass();
          }
          function attvalue(type) {
            if (type == "keyword") {setStyle = "string"; return cont();}
            if (type == "string") return cont(attvaluemaybe);
            return pass();
          }
          function attvaluemaybe(type) {
            if (type == "string") return cont(attvaluemaybe);
            else return pass();
          }
          return {
            startState: function() {
              return {tokenize: inText, cc: [], indented: 0, startOfLine: true, pluginName: null, context: null};
            },
            token: function(stream, state) {
              if (stream.sol()) {
                state.startOfLine = true;
                state.indented = stream.indentation();
              }
              if (stream.eatSpace()) return null;
          
              setStyle = type = pluginName = null;
              var style = state.tokenize(stream, state);
              if ((style || type) && style != "comment") {
                curState = state;
                while (true) {
                  var comb = state.cc.pop() || element;
                  if (comb(type || style)) break;
                }
              }
              state.startOfLine = false;
              return setStyle || style;
            },
            indent: function(state, textAfter) {
              var context = state.context;
              if (context && context.noIndent) return 0;
              if (context && /^{\//.test(textAfter))
                  context = context.prev;
                  while (context && !context.startOfLine)
                    context = context.prev;
                  if (context) return context.indent + indentUnit;
                  else return 0;
                 },
              electricChars: "/"
            };
          });
          
          CodeMirror.defineMIME("text/tiki", "tiki");
          
          });
          
      • toml
        • index.html
          <!doctype html>
          
          <title>CodeMirror: TOML Mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="toml.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">TOML Mode</a>
            </ul>
          </div>
          
          <article>
          <h2>TOML Mode</h2>
          <form><textarea id="code" name="code">
          # This is a TOML document. Boom.
          
          title = "TOML Example"
          
          [owner]
          name = "Tom Preston-Werner"
          organization = "GitHub"
          bio = "GitHub Cofounder &amp; CEO\nLikes tater tots and beer."
          dob = 1979-05-27T07:32:00Z # First class dates? Why not?
          
          [database]
          server = "192.168.1.1"
          ports = [ 8001, 8001, 8002 ]
          connection_max = 5000
          enabled = true
          
          [servers]
          
            # You can indent as you please. Tabs or spaces. TOML don't care.
            [servers.alpha]
            ip = "10.0.0.1"
            dc = "eqdc10"
            
            [servers.beta]
            ip = "10.0.0.2"
            dc = "eqdc10"
            
          [clients]
          data = [ ["gamma", "delta"], [1, 2] ]
          
          # Line breaks are OK when inside arrays
          hosts = [
            "alpha",
            "omega"
          ]
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  mode: {name: "toml"},
                  lineNumbers: true
                });
              </script>
              <h3>The TOML Mode</h3>
                <p> Created by Forbes Lindesay.</p>
              <p><strong>MIME type defined:</strong> <code>text/x-toml</code>.</p>
            </article>
          
        • toml.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("toml", function () {
            return {
              startState: function () {
                return {
                  inString: false,
                  stringType: "",
                  lhs: true,
                  inArray: 0
                };
              },
              token: function (stream, state) {
                //check for state changes
                if (!state.inString && ((stream.peek() == '"') || (stream.peek() == "'"))) {
                  state.stringType = stream.peek();
                  stream.next(); // Skip quote
                  state.inString = true; // Update state
                }
                if (stream.sol() && state.inArray === 0) {
                  state.lhs = true;
                }
                //return state
                if (state.inString) {
                  while (state.inString && !stream.eol()) {
                    if (stream.peek() === state.stringType) {
                      stream.next(); // Skip quote
                      state.inString = false; // Clear flag
                    } else if (stream.peek() === '\\') {
                      stream.next();
                      stream.next();
                    } else {
                      stream.match(/^.[^\\\"\']*/);
                    }
                  }
                  return state.lhs ? "property string" : "string"; // Token style
                } else if (state.inArray && stream.peek() === ']') {
                  stream.next();
                  state.inArray--;
                  return 'bracket';
                } else if (state.lhs && stream.peek() === '[' && stream.skipTo(']')) {
                  stream.next();//skip closing ]
                  // array of objects has an extra open & close []
                  if (stream.peek() === ']') stream.next();
                  return "atom";
                } else if (stream.peek() === "#") {
                  stream.skipToEnd();
                  return "comment";
                } else if (stream.eatSpace()) {
                  return null;
                } else if (state.lhs && stream.eatWhile(function (c) { return c != '=' && c != ' '; })) {
                  return "property";
                } else if (state.lhs && stream.peek() === "=") {
                  stream.next();
                  state.lhs = false;
                  return null;
                } else if (!state.lhs && stream.match(/^\d\d\d\d[\d\-\:\.T]*Z/)) {
                  return 'atom'; //date
                } else if (!state.lhs && (stream.match('true') || stream.match('false'))) {
                  return 'atom';
                } else if (!state.lhs && stream.peek() === '[') {
                  state.inArray++;
                  stream.next();
                  return 'bracket';
                } else if (!state.lhs && stream.match(/^\-?\d+(?:\.\d+)?/)) {
                  return 'number';
                } else if (!stream.eatSpace()) {
                  stream.next();
                }
                return null;
              }
            };
          });
          
          CodeMirror.defineMIME('text/x-toml', 'toml');
          
          });
          
      • tornado
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Tornado template mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/mode/overlay.js"></script>
          <script src="../xml/xml.js"></script>
          <script src="../htmlmixed/htmlmixed.js"></script>
          <script src="tornado.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/marijnh/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Tornado</a>
            </ul>
          </div>
          
          <article>
          <h2>Tornado template mode</h2>
          <form><textarea id="code" name="code">
          <!doctype html>
          <html>
              <head>
                  <title>My Tornado web application</title>
              </head>
              <body>
                  <h1>
                      {{ title }}
                  </h1>
                  <ul class="my-list">
                      {% for item in items %}
                          <li>{% item.name %}</li>
                      {% empty %}
                          <li>You have no items in your list.</li>
                      {% end %}
                  </ul>
              </body>
          </html>
          </textarea></form>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  mode: "tornado",
                  indentUnit: 4,
                  indentWithTabs: true
                });
              </script>
          
              <p>Mode for HTML with embedded Tornado template markup.</p>
          
              <p><strong>MIME types defined:</strong> <code>text/x-tornado</code></p>
            </article>
          
        • tornado.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"),
                  require("../../addon/mode/overlay"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror", "../htmlmixed/htmlmixed",
                      "../../addon/mode/overlay"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineMode("tornado:inner", function() {
              var keywords = ["and","as","assert","autoescape","block","break","class","comment","context",
                              "continue","datetime","def","del","elif","else","end","escape","except",
                              "exec","extends","false","finally","for","from","global","if","import","in",
                              "include","is","json_encode","lambda","length","linkify","load","module",
                              "none","not","or","pass","print","put","raise","raw","return","self","set",
                              "squeeze","super","true","try","url_escape","while","with","without","xhtml_escape","yield"];
              keywords = new RegExp("^((" + keywords.join(")|(") + "))\\b");
          
              function tokenBase (stream, state) {
                stream.eatWhile(/[^\{]/);
                var ch = stream.next();
                if (ch == "{") {
                  if (ch = stream.eat(/\{|%|#/)) {
                    state.tokenize = inTag(ch);
                    return "tag";
                  }
                }
              }
              function inTag (close) {
                if (close == "{") {
                  close = "}";
                }
                return function (stream, state) {
                  var ch = stream.next();
                  if ((ch == close) && stream.eat("}")) {
                    state.tokenize = tokenBase;
                    return "tag";
                  }
                  if (stream.match(keywords)) {
                    return "keyword";
                  }
                  return close == "#" ? "comment" : "string";
                };
              }
              return {
                startState: function () {
                  return {tokenize: tokenBase};
                },
                token: function (stream, state) {
                  return state.tokenize(stream, state);
                }
              };
            });
          
            CodeMirror.defineMode("tornado", function(config) {
              var htmlBase = CodeMirror.getMode(config, "text/html");
              var tornadoInner = CodeMirror.getMode(config, "tornado:inner");
              return CodeMirror.overlayMode(htmlBase, tornadoInner);
            });
          
            CodeMirror.defineMIME("text/x-tornado", "tornado");
          });
          
      • troff
        • index.html
          <!doctype html>
          
          <title>CodeMirror: troff mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel=stylesheet href=../../lib/codemirror.css>
          <script src=../../lib/codemirror.js></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src=troff.js></script>
          <style type=text/css>
            .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}
          </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">troff</a>
            </ul>
          </div>
          
          <article>
          <h2>troff</h2>
          
          
          <textarea id=code>
          '\" t
          .\"     Title: mkvextract
          .TH "MKVEXTRACT" "1" "2015\-02\-28" "MKVToolNix 7\&.7\&.0" "User Commands"
          .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          .ie \n(.g .ds Aq \(aq
          .el       .ds Aq '
          .\" -----------------------------------------------------------------
          .nh
          .\" disable justification (adjust text to left margin only)
          .ad l
          .\" -----------------------------------------------------------------
          .SH "NAME"
          mkvextract \- extract tracks from Matroska(TM) files into other files
          .SH "SYNOPSIS"
          .HP \w'\fBmkvextract\fR\ 'u
          \fBmkvextract\fR {mode} {source\-filename} [options] [extraction\-spec]
          .SH "DESCRIPTION"
          .PP
          .B mkvextract
          extracts specific parts from a
          .I Matroska(TM)
          file to other useful formats\&. The first argument,
          \fBmode\fR, tells
          \fBmkvextract\fR(1)
          what to extract\&. Currently supported is the extraction of
          tracks,
          tags,
          attachments,
          chapters,
          CUE sheets,
          timecodes
          and
          cues\&. The second argument is the name of the source file\&. It must be a
          Matroska(TM)
          file\&. All following arguments are options and extraction specifications; both of which depend on the selected mode\&.
          .SS "Common options"
          .PP
          The following options are available in all modes and only described once in this section\&.
          .PP
          \fB\-f\fR, \fB\-\-parse\-fully\fR
          .RS 4
          Sets the parse mode to \*(Aqfull\*(Aq\&. The default mode does not parse the whole file but uses the meta seek elements for locating the required elements of a source file\&. In 99% of all cases this is enough\&. But for files that do not contain meta seek elements or which are damaged the user might have to use this mode\&. A full scan of a file can take a couple of minutes while a fast scan only takes seconds\&.
          .RE
          .PP
          \fB\-\-command\-line\-charset\fR \fIcharacter\-set\fR
          .RS 4
          Sets the character set to convert strings given on the command line from\&. It defaults to the character set given by system\*(Aqs current locale\&.
          .RE
          .PP
          \fB\-\-output\-charset\fR \fIcharacter\-set\fR
          .RS 4
          Sets the character set to which strings are converted that are to be output\&. It defaults to the character set given by system\*(Aqs current locale\&.
          .RE
          .PP
          \fB\-r\fR, \fB\-\-redirect\-output\fR \fIfile\-name\fR
          .RS 4
          Writes all messages to the file
          \fIfile\-name\fR
          instead of to the console\&. While this can be done easily with output redirection there are cases in which this option is needed: when the terminal reinterprets the output before writing it to a file\&. The character set set with
          \fB\-\-output\-charset\fR
          is honored\&.
          .RE
          .PP
          \fB\-\-ui\-language\fR \fIcode\fR
          .RS 4
          Forces the translations for the language
          \fIcode\fR
          to be used (e\&.g\&. \*(Aqde_DE\*(Aq for the German translations)\&. It is preferable to use the environment variables
          \fILANG\fR,
          \fILC_MESSAGES\fR
          and
          \fILC_ALL\fR
          though\&. Entering \*(Aqlist\*(Aq as the
          \fIcode\fR
          will cause
          \fBmkvextract\fR(1)
          to output a list of available translations\&.
          
          .\" [...]
          
          .SH "SEE ALSO"
          .PP
          \fBmkvmerge\fR(1),
          \fBmkvinfo\fR(1),
          \fBmkvpropedit\fR(1),
          \fBmmg\fR(1)
          .SH "WWW"
          .PP
          The latest version can always be found at
          \m[blue]\fBthe MKVToolNix homepage\fR\m[]\&\s-2\u[1]\d\s+2\&.
          .SH "AUTHOR"
          .PP
          \(co \fBMoritz Bunkus\fR <\&moritz@bunkus\&.org\&>
          .RS 4
          Developer
          .RE
          .SH "NOTES"
          .IP " 1." 4
          the MKVToolNix homepage
          .RS 4
          \%https://www.bunkus.org/videotools/mkvtoolnix/
          .RE
          </textarea>
          
          <script>
            var editor = CodeMirror.fromTextArea(document.getElementById('code'), {
              mode: 'troff',
              lineNumbers: true,
              matchBrackets: false
            });
          </script>
          
          <p><strong>MIME types defined:</strong> <code>troff</code>.</p>
          </article>
          
        • troff.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object")
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd)
              define(["../../lib/codemirror"], mod);
            else
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode('troff', function() {
          
            var words = {};
          
            function tokenBase(stream) {
              if (stream.eatSpace()) return null;
          
              var sol = stream.sol();
              var ch = stream.next();
          
              if (ch === '\\') {
                if (stream.match('fB') || stream.match('fR') || stream.match('fI') ||
                    stream.match('u')  || stream.match('d')  ||
                    stream.match('%')  || stream.match('&')) {
                  return 'string';
                }
                if (stream.match('m[')) {
                  stream.skipTo(']');
                  stream.next();
                  return 'string';
                }
                if (stream.match('s+') || stream.match('s-')) {
                  stream.eatWhile(/[\d-]/);
                  return 'string';
                }
                if (stream.match('\(') || stream.match('*\(')) {
                  stream.eatWhile(/[\w-]/);
                  return 'string';
                }
                return 'string';
              }
              if (sol && (ch === '.' || ch === '\'')) {
                if (stream.eat('\\') && stream.eat('\"')) {
                  stream.skipToEnd();
                  return 'comment';
                }
              }
              if (sol && ch === '.') {
                if (stream.match('B ') || stream.match('I ') || stream.match('R ')) {
                  return 'attribute';
                }
                if (stream.match('TH ') || stream.match('SH ') || stream.match('SS ') || stream.match('HP ')) {
                  stream.skipToEnd();
                  return 'quote';
                }
                if ((stream.match(/[A-Z]/) && stream.match(/[A-Z]/)) || (stream.match(/[a-z]/) && stream.match(/[a-z]/))) {
                  return 'attribute';
                }
              }
              stream.eatWhile(/[\w-]/);
              var cur = stream.current();
              return words.hasOwnProperty(cur) ? words[cur] : null;
            }
          
            function tokenize(stream, state) {
              return (state.tokens[0] || tokenBase) (stream, state);
            };
          
            return {
              startState: function() {return {tokens:[]};},
              token: function(stream, state) {
                return tokenize(stream, state);
              }
            };
          });
          
          CodeMirror.defineMIME('troff', 'troff');
          
          });
          
      • ttcn
        • index.html
          <!doctype html>
          
          <title>CodeMirror: TTCN mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="ttcn.js"></script>
          <style type="text/css">
              .CodeMirror {
                  border-top: 1px solid black;
                  border-bottom: 1px solid black;
              }
          </style>
          <div id=nav>
              <a href="http://codemirror.net"><h1>CodeMirror</h1>
                  <img id=logo src="../../doc/logo.png">
              </a>
          
              <ul>
                  <li><a href="../../index.html">Home</a>
                  <li><a href="../../doc/manual.html">Manual</a>
                  <li><a href="https://github.com/codemirror/codemirror">Code</a>
              </ul>
              <ul>
                  <li><a href="../index.html">Language modes</a>
                  <li><a class=active href="http://en.wikipedia.org/wiki/TTCN">TTCN</a>
              </ul>
          </div>
          <article>
              <h2>TTCN example</h2>
              <div>
                  <textarea id="ttcn-code">
          module Templates {
            /* import types from ASN.1 */
            import from Types language "ASN.1:1997" all;
          
            /* During the conversion phase from ASN.1 to TTCN-3 */
            /* - the minus sign (Message-Type) within the identifiers will be replaced by underscore (Message_Type)*/
            /* - the ASN.1 identifiers matching a TTCN-3 keyword (objid) will be postfixed with an underscore (objid_)*/
          
            // simple types
          
            template SenderID localObjid := objid {itu_t(0) identified_organization(4) etsi(0)};
          
            // complex types
          
            /* ASN.1 Message-Type mapped to TTCN-3 Message_Type */
            template Message receiveMsg(template (present) Message_Type p_messageType) := {
              header := p_messageType,
              body := ?
            }
          
            /* ASN.1 objid mapped to TTCN-3 objid_ */
            template Message sendInviteMsg := {
                header := inviteType,
                body := {
                  /* optional fields may be assigned by omit or may be ignored/skipped */
                  description := "Invite Message",
                  data := 'FF'O,
                  objid_ := localObjid
                }
            }
          
            template Message sendAcceptMsg modifies sendInviteMsg := {
                header := acceptType,
                body := {
                  description := "Accept Message"
                }
              };
          
            template Message sendErrorMsg modifies sendInviteMsg := {
                header := errorType,
                body := {
                  description := "Error Message"
                }
              };
          
            template Message expectedErrorMsg := {
                header := errorType,
                body := ?
              };
          
            template Message expectedInviteMsg modifies expectedErrorMsg := {
                header := inviteType
              };
          
            template Message expectedAcceptMsg modifies expectedErrorMsg := {
                header := acceptType
              };
          
          } with { encode "BER:1997" }
                  </textarea>
              </div>
          
              <script> 
                var ttcnEditor = CodeMirror.fromTextArea(document.getElementById("ttcn-code"), {
                  lineNumbers: true,
                  matchBrackets: true,
                  mode: "text/x-ttcn"
                });
                ttcnEditor.setSize(600, 860);
                var mac = CodeMirror.keyMap.default == CodeMirror.keyMap.macDefault;
                CodeMirror.keyMap.default[(mac ? "Cmd" : "Ctrl") + "-Space"] = "autocomplete";
              </script>
              <br/>
              <p><strong>Language:</strong> Testing and Test Control Notation
                  (<a href="http://en.wikipedia.org/wiki/TTCN">TTCN</a>)
              </p>
              <p><strong>MIME types defined:</strong> <code>text/x-ttcn,
                  text/x-ttcn3, text/x-ttcnpp</code>.</p>
              <br/>
              <p>The development of this mode has been sponsored by <a href="http://www.ericsson.com/">Ericsson
              </a>.</p>
              <p>Coded by Asmelash Tsegay Gebretsadkan </p>
          </article>
          
          
        • ttcn.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineMode("ttcn", function(config, parserConfig) {
              var indentUnit = config.indentUnit,
                  keywords = parserConfig.keywords || {},
                  builtin = parserConfig.builtin || {},
                  timerOps = parserConfig.timerOps || {},
                  portOps  = parserConfig.portOps || {},
                  configOps = parserConfig.configOps || {},
                  verdictOps = parserConfig.verdictOps || {},
                  sutOps = parserConfig.sutOps || {},
                  functionOps = parserConfig.functionOps || {},
          
                  verdictConsts = parserConfig.verdictConsts || {},
                  booleanConsts = parserConfig.booleanConsts || {},
                  otherConsts   = parserConfig.otherConsts || {},
          
                  types = parserConfig.types || {},
                  visibilityModifiers = parserConfig.visibilityModifiers || {},
                  templateMatch = parserConfig.templateMatch || {},
                  multiLineStrings = parserConfig.multiLineStrings,
                  indentStatements = parserConfig.indentStatements !== false;
              var isOperatorChar = /[+\-*&@=<>!\/]/;
              var curPunc;
          
              function tokenBase(stream, state) {
                var ch = stream.next();
          
                if (ch == '"' || ch == "'") {
                  state.tokenize = tokenString(ch);
                  return state.tokenize(stream, state);
                }
                if (/[\[\]{}\(\),;\\:\?\.]/.test(ch)) {
                  curPunc = ch;
                  return "punctuation";
                }
                if (ch == "#"){
                  stream.skipToEnd();
                  return "atom preprocessor";
                }
                if (ch == "%"){
                  stream.eatWhile(/\b/);
                  return "atom ttcn3Macros";
                }
                if (/\d/.test(ch)) {
                  stream.eatWhile(/[\w\.]/);
                  return "number";
                }
                if (ch == "/") {
                  if (stream.eat("*")) {
                    state.tokenize = tokenComment;
                    return tokenComment(stream, state);
                  }
                  if (stream.eat("/")) {
                    stream.skipToEnd();
                    return "comment";
                  }
                }
                if (isOperatorChar.test(ch)) {
                  if(ch == "@"){
                    if(stream.match("try") || stream.match("catch")
                        || stream.match("lazy")){
                      return "keyword";
                    }
                  }
                  stream.eatWhile(isOperatorChar);
                  return "operator";
                }
                stream.eatWhile(/[\w\$_\xa1-\uffff]/);
                var cur = stream.current();
          
                if (keywords.propertyIsEnumerable(cur)) return "keyword";
                if (builtin.propertyIsEnumerable(cur)) return "builtin";
          
                if (timerOps.propertyIsEnumerable(cur)) return "def timerOps";
                if (configOps.propertyIsEnumerable(cur)) return "def configOps";
                if (verdictOps.propertyIsEnumerable(cur)) return "def verdictOps";
                if (portOps.propertyIsEnumerable(cur)) return "def portOps";
                if (sutOps.propertyIsEnumerable(cur)) return "def sutOps";
                if (functionOps.propertyIsEnumerable(cur)) return "def functionOps";
          
                if (verdictConsts.propertyIsEnumerable(cur)) return "string verdictConsts";
                if (booleanConsts.propertyIsEnumerable(cur)) return "string booleanConsts";
                if (otherConsts.propertyIsEnumerable(cur)) return "string otherConsts";
          
                if (types.propertyIsEnumerable(cur)) return "builtin types";
                if (visibilityModifiers.propertyIsEnumerable(cur))
                  return "builtin visibilityModifiers";
                if (templateMatch.propertyIsEnumerable(cur)) return "atom templateMatch";
          
                return "variable";
              }
          
              function tokenString(quote) {
                return function(stream, state) {
                  var escaped = false, next, end = false;
                  while ((next = stream.next()) != null) {
                    if (next == quote && !escaped){
                      var afterQuote = stream.peek();
                      //look if the character after the quote is like the B in '10100010'B
                      if (afterQuote){
                        afterQuote = afterQuote.toLowerCase();
                        if(afterQuote == "b" || afterQuote == "h" || afterQuote == "o")
                          stream.next();
                      }
                      end = true; break;
                    }
                    escaped = !escaped && next == "\\";
                  }
                  if (end || !(escaped || multiLineStrings))
                    state.tokenize = null;
                  return "string";
                };
              }
          
              function tokenComment(stream, state) {
                var maybeEnd = false, ch;
                while (ch = stream.next()) {
                  if (ch == "/" && maybeEnd) {
                    state.tokenize = null;
                    break;
                  }
                  maybeEnd = (ch == "*");
                }
                return "comment";
              }
          
              function Context(indented, column, type, align, prev) {
                this.indented = indented;
                this.column = column;
                this.type = type;
                this.align = align;
                this.prev = prev;
              }
          
              function pushContext(state, col, type) {
                var indent = state.indented;
                if (state.context && state.context.type == "statement")
                  indent = state.context.indented;
                return state.context = new Context(indent, col, type, null, state.context);
              }
          
              function popContext(state) {
                var t = state.context.type;
                if (t == ")" || t == "]" || t == "}")
                  state.indented = state.context.indented;
                return state.context = state.context.prev;
              }
          
              //Interface
              return {
                startState: function(basecolumn) {
                  return {
                    tokenize: null,
                    context: new Context((basecolumn || 0) - indentUnit, 0, "top", false),
                    indented: 0,
                    startOfLine: true
                  };
                },
          
                token: function(stream, state) {
                  var ctx = state.context;
                  if (stream.sol()) {
                    if (ctx.align == null) ctx.align = false;
                    state.indented = stream.indentation();
                    state.startOfLine = true;
                  }
                  if (stream.eatSpace()) return null;
                  curPunc = null;
                  var style = (state.tokenize || tokenBase)(stream, state);
                  if (style == "comment") return style;
                  if (ctx.align == null) ctx.align = true;
          
                  if ((curPunc == ";" || curPunc == ":" || curPunc == ",")
                      && ctx.type == "statement"){
                    popContext(state);
                  }
                  else if (curPunc == "{") pushContext(state, stream.column(), "}");
                  else if (curPunc == "[") pushContext(state, stream.column(), "]");
                  else if (curPunc == "(") pushContext(state, stream.column(), ")");
                  else if (curPunc == "}") {
                    while (ctx.type == "statement") ctx = popContext(state);
                    if (ctx.type == "}") ctx = popContext(state);
                    while (ctx.type == "statement") ctx = popContext(state);
                  }
                  else if (curPunc == ctx.type) popContext(state);
                  else if (indentStatements &&
                      (((ctx.type == "}" || ctx.type == "top") && curPunc != ';') ||
                      (ctx.type == "statement" && curPunc == "newstatement")))
                    pushContext(state, stream.column(), "statement");
          
                  state.startOfLine = false;
          
                  return style;
                },
          
                electricChars: "{}",
                blockCommentStart: "/*",
                blockCommentEnd: "*/",
                lineComment: "//",
                fold: "brace"
              };
            });
          
            function words(str) {
              var obj = {}, words = str.split(" ");
              for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
              return obj;
            }
          
            function def(mimes, mode) {
              if (typeof mimes == "string") mimes = [mimes];
              var words = [];
              function add(obj) {
                if (obj) for (var prop in obj) if (obj.hasOwnProperty(prop))
                  words.push(prop);
              }
          
              add(mode.keywords);
              add(mode.builtin);
              add(mode.timerOps);
              add(mode.portOps);
          
              if (words.length) {
                mode.helperType = mimes[0];
                CodeMirror.registerHelper("hintWords", mimes[0], words);
              }
          
              for (var i = 0; i < mimes.length; ++i)
                CodeMirror.defineMIME(mimes[i], mode);
            }
          
            def(["text/x-ttcn", "text/x-ttcn3", "text/x-ttcnpp"], {
              name: "ttcn",
              keywords: words("activate address alive all alt altstep and and4b any" +
              " break case component const continue control deactivate" +
              " display do else encode enumerated except exception" +
              " execute extends extension external for from function" +
              " goto group if import in infinity inout interleave" +
              " label language length log match message mixed mod" +
              " modifies module modulepar mtc noblock not not4b nowait" +
              " of on optional or or4b out override param pattern port" +
              " procedure record recursive rem repeat return runs select" +
              " self sender set signature system template testcase to" +
              " type union value valueof var variant while with xor xor4b"),
              builtin: words("bit2hex bit2int bit2oct bit2str char2int char2oct encvalue" +
              " decomp decvalue float2int float2str hex2bit hex2int" +
              " hex2oct hex2str int2bit int2char int2float int2hex" +
              " int2oct int2str int2unichar isbound ischosen ispresent" +
              " isvalue lengthof log2str oct2bit oct2char oct2hex oct2int" +
              " oct2str regexp replace rnd sizeof str2bit str2float" +
              " str2hex str2int str2oct substr unichar2int unichar2char" +
              " enum2int"),
              types: words("anytype bitstring boolean char charstring default float" +
              " hexstring integer objid octetstring universal verdicttype timer"),
              timerOps: words("read running start stop timeout"),
              portOps: words("call catch check clear getcall getreply halt raise receive" +
              " reply send trigger"),
              configOps: words("create connect disconnect done kill killed map unmap"),
              verdictOps: words("getverdict setverdict"),
              sutOps: words("action"),
              functionOps: words("apply derefers refers"),
          
              verdictConsts: words("error fail inconc none pass"),
              booleanConsts: words("true false"),
              otherConsts: words("null NULL omit"),
          
              visibilityModifiers: words("private public friend"),
              templateMatch: words("complement ifpresent subset superset permutation"),
              multiLineStrings: true
            });
          });
          
      • ttcn-cfg
        • index.html
          <!doctype html>
          
          <title>CodeMirror: TTCN-CFG mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="ttcn-cfg.js"></script>
          <style type="text/css">
              .CodeMirror {
                  border-top: 1px solid black;
                  border-bottom: 1px solid black;
              }
          </style>
          <div id=nav>
              <a href="http://codemirror.net"><h1>CodeMirror</h1>
                  <img id=logo src="../../doc/logo.png">
              </a>
          
              <ul>
                  <li><a href="../../index.html">Home</a>
                  <li><a href="../../doc/manual.html">Manual</a>
                  <li><a href="https://github.com/codemirror/codemirror">Code</a>
              </ul>
              <ul>
                  <li><a href="../index.html">Language modes</a>
                  <li><a class=active href="http://en.wikipedia.org/wiki/TTCN">TTCN-CFG</a>
              </ul>
          </div>
          <article>
              <h2>TTCN-CFG example</h2>
              <div>
                  <textarea id="ttcn-cfg-code">
          [MODULE_PARAMETERS]
          # This section shall contain the values of all parameters that are defined in your TTCN-3 modules.
          
          [LOGGING]
          # In this section you can specify the name of the log file and the classes of events
          # you want to log into the file or display on console (standard error).
          
          LogFile := "logs/%e.%h-%r.%s"
          FileMask := LOG_ALL | DEBUG | MATCHING
          ConsoleMask := ERROR | WARNING | TESTCASE | STATISTICS | PORTEVENT
          
          LogSourceInfo := Yes
          AppendFile := No
          TimeStampFormat := DateTime
          LogEventTypes := Yes
          SourceInfoFormat := Single
          LogEntityName := Yes
          
          [TESTPORT_PARAMETERS]
          # In this section you can specify parameters that are passed to Test Ports.
          
          [DEFINE]
          # In this section you can create macro definitions,
          # that can be used in other configuration file sections except [INCLUDE].
          
          [INCLUDE]
          # To use configuration settings given in other configuration files,
          # the configuration files just need to be listed in this section, with their full or relative pathnames.
          
          [EXTERNAL_COMMANDS]
          # This section can define external commands (shell scripts) to be executed by the ETS
          # whenever a control part or test case is started or terminated.
          
          BeginTestCase := ""
          EndTestCase := ""
          BeginControlPart := ""
          EndControlPart := ""
          
          [EXECUTE]
          # In this section you can specify what parts of your test suite you want to execute.
          
          [GROUPS]
          # In this section you can specify groups of hosts. These groups can be used inside the
          # [COMPONENTS] section to restrict the creation of certain PTCs to a given set of hosts.
          
          [COMPONENTS]
          # This section consists of rules restricting the location of created PTCs.
          
          [MAIN_CONTROLLER]
          # The options herein control the behavior of MC.
          
          TCPPort := 0
          KillTimer := 10.0
          NumHCs := 0
          LocalAddress :=
                  </textarea>
              </div>
          
              <script> 
                var ttcnEditor = CodeMirror.fromTextArea(document.getElementById("ttcn-cfg-code"), {
                  lineNumbers: true,
                  matchBrackets: true,
                  mode: "text/x-ttcn-cfg"
                });
                ttcnEditor.setSize(600, 860);
                var mac = CodeMirror.keyMap.default == CodeMirror.keyMap.macDefault;
                CodeMirror.keyMap.default[(mac ? "Cmd" : "Ctrl") + "-Space"] = "autocomplete";
              </script>
              <br/>
              <p><strong>Language:</strong> Testing and Test Control Notation -
                  Configuration files
                  (<a href="http://en.wikipedia.org/wiki/TTCN">TTCN-CFG</a>)
              </p>
              <p><strong>MIME types defined:</strong> <code>text/x-ttcn-cfg</code>.</p>
          
              <br/>
              <p>The development of this mode has been sponsored by <a href="http://www.ericsson.com/">Ericsson
              </a>.</p>
              <p>Coded by Asmelash Tsegay Gebretsadkan </p>
          </article>
          
          
        • ttcn-cfg.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineMode("ttcn-cfg", function(config, parserConfig) {
              var indentUnit = config.indentUnit,
                  keywords = parserConfig.keywords || {},
                  fileNCtrlMaskOptions = parserConfig.fileNCtrlMaskOptions || {},
                  externalCommands = parserConfig.externalCommands || {},
                  multiLineStrings = parserConfig.multiLineStrings,
                  indentStatements = parserConfig.indentStatements !== false;
              var isOperatorChar = /[\|]/;
              var curPunc;
          
              function tokenBase(stream, state) {
                var ch = stream.next();
                if (ch == '"' || ch == "'") {
                  state.tokenize = tokenString(ch);
                  return state.tokenize(stream, state);
                }
                if (/[:=]/.test(ch)) {
                  curPunc = ch;
                  return "punctuation";
                }
                if (ch == "#"){
                  stream.skipToEnd();
                  return "comment";
                }
                if (/\d/.test(ch)) {
                  stream.eatWhile(/[\w\.]/);
                  return "number";
                }
                if (isOperatorChar.test(ch)) {
                  stream.eatWhile(isOperatorChar);
                  return "operator";
                }
                if (ch == "["){
                  stream.eatWhile(/[\w_\]]/);
                  return "number sectionTitle";
                }
          
                stream.eatWhile(/[\w\$_]/);
                var cur = stream.current();
                if (keywords.propertyIsEnumerable(cur)) return "keyword";
                if (fileNCtrlMaskOptions.propertyIsEnumerable(cur))
                  return "negative fileNCtrlMaskOptions";
                if (externalCommands.propertyIsEnumerable(cur)) return "negative externalCommands";
          
                return "variable";
              }
          
              function tokenString(quote) {
                return function(stream, state) {
                  var escaped = false, next, end = false;
                  while ((next = stream.next()) != null) {
                    if (next == quote && !escaped){
                      var afterNext = stream.peek();
                      //look if the character if the quote is like the B in '10100010'B
                      if (afterNext){
                        afterNext = afterNext.toLowerCase();
                        if(afterNext == "b" || afterNext == "h" || afterNext == "o")
                          stream.next();
                      }
                      end = true; break;
                    }
                    escaped = !escaped && next == "\\";
                  }
                  if (end || !(escaped || multiLineStrings))
                    state.tokenize = null;
                  return "string";
                };
              }
          
              function Context(indented, column, type, align, prev) {
                this.indented = indented;
                this.column = column;
                this.type = type;
                this.align = align;
                this.prev = prev;
              }
              function pushContext(state, col, type) {
                var indent = state.indented;
                if (state.context && state.context.type == "statement")
                  indent = state.context.indented;
                return state.context = new Context(indent, col, type, null, state.context);
              }
              function popContext(state) {
                var t = state.context.type;
                if (t == ")" || t == "]" || t == "}")
                  state.indented = state.context.indented;
                return state.context = state.context.prev;
              }
          
              //Interface
              return {
                startState: function(basecolumn) {
                  return {
                    tokenize: null,
                    context: new Context((basecolumn || 0) - indentUnit, 0, "top", false),
                    indented: 0,
                    startOfLine: true
                  };
                },
          
                token: function(stream, state) {
                  var ctx = state.context;
                  if (stream.sol()) {
                    if (ctx.align == null) ctx.align = false;
                    state.indented = stream.indentation();
                    state.startOfLine = true;
                  }
                  if (stream.eatSpace()) return null;
                  curPunc = null;
                  var style = (state.tokenize || tokenBase)(stream, state);
                  if (style == "comment") return style;
                  if (ctx.align == null) ctx.align = true;
          
                  if ((curPunc == ";" || curPunc == ":" || curPunc == ",")
                      && ctx.type == "statement"){
                    popContext(state);
                  }
                  else if (curPunc == "{") pushContext(state, stream.column(), "}");
                  else if (curPunc == "[") pushContext(state, stream.column(), "]");
                  else if (curPunc == "(") pushContext(state, stream.column(), ")");
                  else if (curPunc == "}") {
                    while (ctx.type == "statement") ctx = popContext(state);
                    if (ctx.type == "}") ctx = popContext(state);
                    while (ctx.type == "statement") ctx = popContext(state);
                  }
                  else if (curPunc == ctx.type) popContext(state);
                  else if (indentStatements && (((ctx.type == "}" || ctx.type == "top")
                      && curPunc != ';') || (ctx.type == "statement"
                      && curPunc == "newstatement")))
                    pushContext(state, stream.column(), "statement");
                  state.startOfLine = false;
                  return style;
                },
          
                electricChars: "{}",
                lineComment: "#",
                fold: "brace"
              };
            });
          
            function words(str) {
              var obj = {}, words = str.split(" ");
              for (var i = 0; i < words.length; ++i)
                obj[words[i]] = true;
              return obj;
            }
          
            CodeMirror.defineMIME("text/x-ttcn-cfg", {
              name: "ttcn-cfg",
              keywords: words("Yes No LogFile FileMask ConsoleMask AppendFile" +
              " TimeStampFormat LogEventTypes SourceInfoFormat" +
              " LogEntityName LogSourceInfo DiskFullAction" +
              " LogFileNumber LogFileSize MatchingHints Detailed" +
              " Compact SubCategories Stack Single None Seconds" +
              " DateTime Time Stop Error Retry Delete TCPPort KillTimer" +
              " NumHCs UnixSocketsEnabled LocalAddress"),
              fileNCtrlMaskOptions: words("TTCN_EXECUTOR TTCN_ERROR TTCN_WARNING" +
              " TTCN_PORTEVENT TTCN_TIMEROP TTCN_VERDICTOP" +
              " TTCN_DEFAULTOP TTCN_TESTCASE TTCN_ACTION" +
              " TTCN_USER TTCN_FUNCTION TTCN_STATISTICS" +
              " TTCN_PARALLEL TTCN_MATCHING TTCN_DEBUG" +
              " EXECUTOR ERROR WARNING PORTEVENT TIMEROP" +
              " VERDICTOP DEFAULTOP TESTCASE ACTION USER" +
              " FUNCTION STATISTICS PARALLEL MATCHING DEBUG" +
              " LOG_ALL LOG_NOTHING ACTION_UNQUALIFIED" +
              " DEBUG_ENCDEC DEBUG_TESTPORT" +
              " DEBUG_UNQUALIFIED DEFAULTOP_ACTIVATE" +
              " DEFAULTOP_DEACTIVATE DEFAULTOP_EXIT" +
              " DEFAULTOP_UNQUALIFIED ERROR_UNQUALIFIED" +
              " EXECUTOR_COMPONENT EXECUTOR_CONFIGDATA" +
              " EXECUTOR_EXTCOMMAND EXECUTOR_LOGOPTIONS" +
              " EXECUTOR_RUNTIME EXECUTOR_UNQUALIFIED" +
              " FUNCTION_RND FUNCTION_UNQUALIFIED" +
              " MATCHING_DONE MATCHING_MCSUCCESS" +
              " MATCHING_MCUNSUCC MATCHING_MMSUCCESS" +
              " MATCHING_MMUNSUCC MATCHING_PCSUCCESS" +
              " MATCHING_PCUNSUCC MATCHING_PMSUCCESS" +
              " MATCHING_PMUNSUCC MATCHING_PROBLEM" +
              " MATCHING_TIMEOUT MATCHING_UNQUALIFIED" +
              " PARALLEL_PORTCONN PARALLEL_PORTMAP" +
              " PARALLEL_PTC PARALLEL_UNQUALIFIED" +
              " PORTEVENT_DUALRECV PORTEVENT_DUALSEND" +
              " PORTEVENT_MCRECV PORTEVENT_MCSEND" +
              " PORTEVENT_MMRECV PORTEVENT_MMSEND" +
              " PORTEVENT_MQUEUE PORTEVENT_PCIN" +
              " PORTEVENT_PCOUT PORTEVENT_PMIN" +
              " PORTEVENT_PMOUT PORTEVENT_PQUEUE" +
              " PORTEVENT_STATE PORTEVENT_UNQUALIFIED" +
              " STATISTICS_UNQUALIFIED STATISTICS_VERDICT" +
              " TESTCASE_FINISH TESTCASE_START" +
              " TESTCASE_UNQUALIFIED TIMEROP_GUARD" +
              " TIMEROP_READ TIMEROP_START TIMEROP_STOP" +
              " TIMEROP_TIMEOUT TIMEROP_UNQUALIFIED" +
              " USER_UNQUALIFIED VERDICTOP_FINAL" +
              " VERDICTOP_GETVERDICT VERDICTOP_SETVERDICT" +
              " VERDICTOP_UNQUALIFIED WARNING_UNQUALIFIED"),
              externalCommands: words("BeginControlPart EndControlPart BeginTestCase" +
              " EndTestCase"),
              multiLineStrings: true
            });
          });
      • turtle
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Turtle mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="turtle.js"></script>
          <style>.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Turtle</a>
            </ul>
          </div>
          
          <article>
          <h2>Turtle mode</h2>
          <form><textarea id="code" name="code">
          @prefix foaf: <http://xmlns.com/foaf/0.1/> .
          @prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> .
          @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
          
          <http://purl.org/net/bsletten> 
              a foaf:Person;
              foaf:interest <http://www.w3.org/2000/01/sw/>;
              foaf:based_near [
                  geo:lat "34.0736111" ;
                  geo:lon "-118.3994444"
             ]
          
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  mode: "text/turtle",
                  matchBrackets: true
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/turtle</code>.</p>
          
            </article>
          
        • turtle.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("turtle", function(config) {
            var indentUnit = config.indentUnit;
            var curPunc;
          
            function wordRegexp(words) {
              return new RegExp("^(?:" + words.join("|") + ")$", "i");
            }
            var ops = wordRegexp([]);
            var keywords = wordRegexp(["@prefix", "@base", "a"]);
            var operatorChars = /[*+\-<>=&|]/;
          
            function tokenBase(stream, state) {
              var ch = stream.next();
              curPunc = null;
              if (ch == "<" && !stream.match(/^[\s\u00a0=]/, false)) {
                stream.match(/^[^\s\u00a0>]*>?/);
                return "atom";
              }
              else if (ch == "\"" || ch == "'") {
                state.tokenize = tokenLiteral(ch);
                return state.tokenize(stream, state);
              }
              else if (/[{}\(\),\.;\[\]]/.test(ch)) {
                curPunc = ch;
                return null;
              }
              else if (ch == "#") {
                stream.skipToEnd();
                return "comment";
              }
              else if (operatorChars.test(ch)) {
                stream.eatWhile(operatorChars);
                return null;
              }
              else if (ch == ":") {
                    return "operator";
                  } else {
                stream.eatWhile(/[_\w\d]/);
                if(stream.peek() == ":") {
                  return "variable-3";
                } else {
                       var word = stream.current();
          
                       if(keywords.test(word)) {
                                  return "meta";
                       }
          
                       if(ch >= "A" && ch <= "Z") {
                              return "comment";
                           } else {
                                  return "keyword";
                           }
                }
                var word = stream.current();
                if (ops.test(word))
                  return null;
                else if (keywords.test(word))
                  return "meta";
                else
                  return "variable";
              }
            }
          
            function tokenLiteral(quote) {
              return function(stream, state) {
                var escaped = false, ch;
                while ((ch = stream.next()) != null) {
                  if (ch == quote && !escaped) {
                    state.tokenize = tokenBase;
                    break;
                  }
                  escaped = !escaped && ch == "\\";
                }
                return "string";
              };
            }
          
            function pushContext(state, type, col) {
              state.context = {prev: state.context, indent: state.indent, col: col, type: type};
            }
            function popContext(state) {
              state.indent = state.context.indent;
              state.context = state.context.prev;
            }
          
            return {
              startState: function() {
                return {tokenize: tokenBase,
                        context: null,
                        indent: 0,
                        col: 0};
              },
          
              token: function(stream, state) {
                if (stream.sol()) {
                  if (state.context && state.context.align == null) state.context.align = false;
                  state.indent = stream.indentation();
                }
                if (stream.eatSpace()) return null;
                var style = state.tokenize(stream, state);
          
                if (style != "comment" && state.context && state.context.align == null && state.context.type != "pattern") {
                  state.context.align = true;
                }
          
                if (curPunc == "(") pushContext(state, ")", stream.column());
                else if (curPunc == "[") pushContext(state, "]", stream.column());
                else if (curPunc == "{") pushContext(state, "}", stream.column());
                else if (/[\]\}\)]/.test(curPunc)) {
                  while (state.context && state.context.type == "pattern") popContext(state);
                  if (state.context && curPunc == state.context.type) popContext(state);
                }
                else if (curPunc == "." && state.context && state.context.type == "pattern") popContext(state);
                else if (/atom|string|variable/.test(style) && state.context) {
                  if (/[\}\]]/.test(state.context.type))
                    pushContext(state, "pattern", stream.column());
                  else if (state.context.type == "pattern" && !state.context.align) {
                    state.context.align = true;
                    state.context.col = stream.column();
                  }
                }
          
                return style;
              },
          
              indent: function(state, textAfter) {
                var firstChar = textAfter && textAfter.charAt(0);
                var context = state.context;
                if (/[\]\}]/.test(firstChar))
                  while (context && context.type == "pattern") context = context.prev;
          
                var closing = context && firstChar == context.type;
                if (!context)
                  return 0;
                else if (context.type == "pattern")
                  return context.col;
                else if (context.align)
                  return context.col + (closing ? 0 : 1);
                else
                  return context.indent + (closing ? 0 : indentUnit);
              },
          
              lineComment: "#"
            };
          });
          
          CodeMirror.defineMIME("text/turtle", "turtle");
          
          });
          
      • twig
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Twig mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="twig.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Twig</a>
            </ul>
          </div>
          
          <article>
          <h2>Twig mode</h2>
          <form><textarea id="code" name="code">
          {% extends "layout.twig" %}
          {% block title %}CodeMirror: Twig mode{% endblock %}
          {# this is a comment #}
          {% block content %}
            {% for foo in bar if foo.baz is divisible by(3) %}
              Hello {{ foo.world }}
            {% else %}
              {% set msg = "Result not found" %}
              {% include "empty.twig" with { message: msg } %}
            {% endfor %}
          {% endblock %}
          </textarea></form>
              <script>
                var editor =
                CodeMirror.fromTextArea(document.getElementById("code"), {mode:
                  {name: "twig", htmlMode: true}});
              </script>
            </article>
          
        • twig.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
            "use strict";
          
            CodeMirror.defineMode("twig", function() {
              var keywords = ["and", "as", "autoescape", "endautoescape", "block", "do", "endblock", "else", "elseif", "extends", "for", "endfor", "embed", "endembed", "filter", "endfilter", "flush", "from", "if", "endif", "in", "is", "include", "import", "not", "or", "set", "spaceless", "endspaceless", "with", "endwith", "trans", "endtrans", "blocktrans", "endblocktrans", "macro", "endmacro", "use", "verbatim", "endverbatim"],
                  operator = /^[+\-*&%=<>!?|~^]/,
                  sign = /^[:\[\(\{]/,
                  atom = ["true", "false", "null", "empty", "defined", "divisibleby", "divisible by", "even", "odd", "iterable", "sameas", "same as"],
                  number = /^(\d[+\-\*\/])?\d+(\.\d+)?/;
          
              keywords = new RegExp("((" + keywords.join(")|(") + "))\\b");
              atom = new RegExp("((" + atom.join(")|(") + "))\\b");
          
              function tokenBase (stream, state) {
                var ch = stream.peek();
          
                //Comment
                if (state.incomment) {
                  if (!stream.skipTo("#}")) {
                    stream.skipToEnd();
                  } else {
                    stream.eatWhile(/\#|}/);
                    state.incomment = false;
                  }
                  return "comment";
                //Tag
                } else if (state.intag) {
                  //After operator
                  if (state.operator) {
                    state.operator = false;
                    if (stream.match(atom)) {
                      return "atom";
                    }
                    if (stream.match(number)) {
                      return "number";
                    }
                  }
                  //After sign
                  if (state.sign) {
                    state.sign = false;
                    if (stream.match(atom)) {
                      return "atom";
                    }
                    if (stream.match(number)) {
                      return "number";
                    }
                  }
          
                  if (state.instring) {
                    if (ch == state.instring) {
                      state.instring = false;
                    }
                    stream.next();
                    return "string";
                  } else if (ch == "'" || ch == '"') {
                    state.instring = ch;
                    stream.next();
                    return "string";
                  } else if (stream.match(state.intag + "}") || stream.eat("-") && stream.match(state.intag + "}")) {
                    state.intag = false;
                    return "tag";
                  } else if (stream.match(operator)) {
                    state.operator = true;
                    return "operator";
                  } else if (stream.match(sign)) {
                    state.sign = true;
                  } else {
                    if (stream.eat(" ") || stream.sol()) {
                      if (stream.match(keywords)) {
                        return "keyword";
                      }
                      if (stream.match(atom)) {
                        return "atom";
                      }
                      if (stream.match(number)) {
                        return "number";
                      }
                      if (stream.sol()) {
                        stream.next();
                      }
                    } else {
                      stream.next();
                    }
          
                  }
                  return "variable";
                } else if (stream.eat("{")) {
                  if (ch = stream.eat("#")) {
                    state.incomment = true;
                    if (!stream.skipTo("#}")) {
                      stream.skipToEnd();
                    } else {
                      stream.eatWhile(/\#|}/);
                      state.incomment = false;
                    }
                    return "comment";
                  //Open tag
                  } else if (ch = stream.eat(/\{|%/)) {
                    //Cache close tag
                    state.intag = ch;
                    if (ch == "{") {
                      state.intag = "}";
                    }
                    stream.eat("-");
                    return "tag";
                  }
                }
                stream.next();
              };
          
              return {
                startState: function () {
                  return {};
                },
                token: function (stream, state) {
                  return tokenBase(stream, state);
                }
              };
            });
          
            CodeMirror.defineMIME("text/x-twig", "twig");
          });
          
      • vb
        • index.html
          <!doctype html>
          
          <title>CodeMirror: VB.NET mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <link href="http://fonts.googleapis.com/css?family=Inconsolata" rel="stylesheet" type="text/css">
          <script src="../../lib/codemirror.js"></script>
          <script src="vb.js"></script>
          <script type="text/javascript" src="../../addon/runmode/runmode.js"></script>
          <style>
                .CodeMirror {border: 1px solid #aaa; height:210px; height: auto;}
                .CodeMirror-scroll { overflow-x: auto; overflow-y: hidden;}
                .CodeMirror pre { font-family: Inconsolata; font-size: 14px}
              </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">VB.NET</a>
            </ul>
          </div>
          
          <article>
          <h2>VB.NET mode</h2>
          
          <script type="text/javascript">
          function test(golden, text) {
            var ok = true;
            var i = 0;
            function callback(token, style, lineNo, pos){
          		//console.log(String(token) + " " + String(style) + " " + String(lineNo) + " " + String(pos));
              var result = [String(token), String(style)];
              if (golden[i][0] != result[0] || golden[i][1] != result[1]){
                return "Error, expected: " + String(golden[i]) + ", got: " + String(result);
                ok = false;
              }
              i++;
            }
            CodeMirror.runMode(text, "text/x-vb",callback); 
          
            if (ok) return "Tests OK";
          }
          function testTypes() {
            var golden = [['Integer','keyword'],[' ','null'],['Float','keyword']]
            var text =  "Integer Float";
            return test(golden,text);
          }
          function testIf(){
            var golden = [['If','keyword'],[' ','null'],['True','keyword'],[' ','null'],['End','keyword'],[' ','null'],['If','keyword']];
            var text = 'If True End If';
            return test(golden, text);
          }
          function testDecl(){
             var golden = [['Dim','keyword'],[' ','null'],['x','variable'],[' ','null'],['as','keyword'],[' ','null'],['Integer','keyword']];
             var text = 'Dim x as Integer';
             return test(golden, text);
          }
          function testAll(){
            var result = "";
          
            result += testTypes() + "\n";
            result += testIf() + "\n";
            result += testDecl() + "\n";
            return result;
          
          }
          function initText(editor) {
            var content = 'Class rocket\nPrivate quality as Double\nPublic Sub launch() as String\nif quality > 0.8\nlaunch = "Successful"\nElse\nlaunch = "Failed"\nEnd If\nEnd sub\nEnd class\n';
            editor.setValue(content);
            for (var i =0; i< editor.lineCount(); i++) editor.indentLine(i);
          }
          function init() {
              editor = CodeMirror.fromTextArea(document.getElementById("solution"), {
                  lineNumbers: true,
                  mode: "text/x-vb",
                  readOnly: false
              });
              runTest();
          }
          function runTest() {
          	document.getElementById('testresult').innerHTML = testAll();
            initText(editor);
          	
          }
          document.body.onload = init;
          </script>
          
            <div id="edit">
            <textarea style="width:95%;height:200px;padding:5px;" name="solution" id="solution" ></textarea>
            </div>
            <pre id="testresult"></pre>
            <p>MIME type defined: <code>text/x-vb</code>.</p>
          
          </article>
          
        • vb.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("vb", function(conf, parserConf) {
              var ERRORCLASS = 'error';
          
              function wordRegexp(words) {
                  return new RegExp("^((" + words.join(")|(") + "))\\b", "i");
              }
          
              var singleOperators = new RegExp("^[\\+\\-\\*/%&\\\\|\\^~<>!]");
              var singleDelimiters = new RegExp('^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]');
              var doubleOperators = new RegExp("^((==)|(<>)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))");
              var doubleDelimiters = new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))");
              var tripleDelimiters = new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))");
              var identifiers = new RegExp("^[_A-Za-z][_A-Za-z0-9]*");
          
              var openingKeywords = ['class','module', 'sub','enum','select','while','if','function',  'get','set','property', 'try'];
              var middleKeywords = ['else','elseif','case', 'catch'];
              var endKeywords = ['next','loop'];
          
              var operatorKeywords = ['and', 'or', 'not', 'xor', 'in'];
              var wordOperators = wordRegexp(operatorKeywords);
              var commonKeywords = ['as', 'dim', 'break',  'continue','optional', 'then',  'until',
                                    'goto', 'byval','byref','new','handles','property', 'return',
                                    'const','private', 'protected', 'friend', 'public', 'shared', 'static', 'true','false'];
              var commontypes = ['integer','string','double','decimal','boolean','short','char', 'float','single'];
          
              var keywords = wordRegexp(commonKeywords);
              var types = wordRegexp(commontypes);
              var stringPrefixes = '"';
          
              var opening = wordRegexp(openingKeywords);
              var middle = wordRegexp(middleKeywords);
              var closing = wordRegexp(endKeywords);
              var doubleClosing = wordRegexp(['end']);
              var doOpening = wordRegexp(['do']);
          
              var indentInfo = null;
          
              CodeMirror.registerHelper("hintWords", "vb", openingKeywords.concat(middleKeywords).concat(endKeywords)
                                          .concat(operatorKeywords).concat(commonKeywords).concat(commontypes));
          
              function indent(_stream, state) {
                state.currentIndent++;
              }
          
              function dedent(_stream, state) {
                state.currentIndent--;
              }
              // tokenizers
              function tokenBase(stream, state) {
                  if (stream.eatSpace()) {
                      return null;
                  }
          
                  var ch = stream.peek();
          
                  // Handle Comments
                  if (ch === "'") {
                      stream.skipToEnd();
                      return 'comment';
                  }
          
          
                  // Handle Number Literals
                  if (stream.match(/^((&H)|(&O))?[0-9\.a-f]/i, false)) {
                      var floatLiteral = false;
                      // Floats
                      if (stream.match(/^\d*\.\d+F?/i)) { floatLiteral = true; }
                      else if (stream.match(/^\d+\.\d*F?/)) { floatLiteral = true; }
                      else if (stream.match(/^\.\d+F?/)) { floatLiteral = true; }
          
                      if (floatLiteral) {
                          // Float literals may be "imaginary"
                          stream.eat(/J/i);
                          return 'number';
                      }
                      // Integers
                      var intLiteral = false;
                      // Hex
                      if (stream.match(/^&H[0-9a-f]+/i)) { intLiteral = true; }
                      // Octal
                      else if (stream.match(/^&O[0-7]+/i)) { intLiteral = true; }
                      // Decimal
                      else if (stream.match(/^[1-9]\d*F?/)) {
                          // Decimal literals may be "imaginary"
                          stream.eat(/J/i);
                          // TODO - Can you have imaginary longs?
                          intLiteral = true;
                      }
                      // Zero by itself with no other piece of number.
                      else if (stream.match(/^0(?![\dx])/i)) { intLiteral = true; }
                      if (intLiteral) {
                          // Integer literals may be "long"
                          stream.eat(/L/i);
                          return 'number';
                      }
                  }
          
                  // Handle Strings
                  if (stream.match(stringPrefixes)) {
                      state.tokenize = tokenStringFactory(stream.current());
                      return state.tokenize(stream, state);
                  }
          
                  // Handle operators and Delimiters
                  if (stream.match(tripleDelimiters) || stream.match(doubleDelimiters)) {
                      return null;
                  }
                  if (stream.match(doubleOperators)
                      || stream.match(singleOperators)
                      || stream.match(wordOperators)) {
                      return 'operator';
                  }
                  if (stream.match(singleDelimiters)) {
                      return null;
                  }
                  if (stream.match(doOpening)) {
                      indent(stream,state);
                      state.doInCurrentLine = true;
                      return 'keyword';
                  }
                  if (stream.match(opening)) {
                      if (! state.doInCurrentLine)
                        indent(stream,state);
                      else
                        state.doInCurrentLine = false;
                      return 'keyword';
                  }
                  if (stream.match(middle)) {
                      return 'keyword';
                  }
          
                  if (stream.match(doubleClosing)) {
                      dedent(stream,state);
                      dedent(stream,state);
                      return 'keyword';
                  }
                  if (stream.match(closing)) {
                      dedent(stream,state);
                      return 'keyword';
                  }
          
                  if (stream.match(types)) {
                      return 'keyword';
                  }
          
                  if (stream.match(keywords)) {
                      return 'keyword';
                  }
          
                  if (stream.match(identifiers)) {
                      return 'variable';
                  }
          
                  // Handle non-detected items
                  stream.next();
                  return ERRORCLASS;
              }
          
              function tokenStringFactory(delimiter) {
                  var singleline = delimiter.length == 1;
                  var OUTCLASS = 'string';
          
                  return function(stream, state) {
                      while (!stream.eol()) {
                          stream.eatWhile(/[^'"]/);
                          if (stream.match(delimiter)) {
                              state.tokenize = tokenBase;
                              return OUTCLASS;
                          } else {
                              stream.eat(/['"]/);
                          }
                      }
                      if (singleline) {
                          if (parserConf.singleLineStringErrors) {
                              return ERRORCLASS;
                          } else {
                              state.tokenize = tokenBase;
                          }
                      }
                      return OUTCLASS;
                  };
              }
          
          
              function tokenLexer(stream, state) {
                  var style = state.tokenize(stream, state);
                  var current = stream.current();
          
                  // Handle '.' connected identifiers
                  if (current === '.') {
                      style = state.tokenize(stream, state);
                      current = stream.current();
                      if (style === 'variable') {
                          return 'variable';
                      } else {
                          return ERRORCLASS;
                      }
                  }
          
          
                  var delimiter_index = '[({'.indexOf(current);
                  if (delimiter_index !== -1) {
                      indent(stream, state );
                  }
                  if (indentInfo === 'dedent') {
                      if (dedent(stream, state)) {
                          return ERRORCLASS;
                      }
                  }
                  delimiter_index = '])}'.indexOf(current);
                  if (delimiter_index !== -1) {
                      if (dedent(stream, state)) {
                          return ERRORCLASS;
                      }
                  }
          
                  return style;
              }
          
              var external = {
                  electricChars:"dDpPtTfFeE ",
                  startState: function() {
                      return {
                        tokenize: tokenBase,
                        lastToken: null,
                        currentIndent: 0,
                        nextLineIndent: 0,
                        doInCurrentLine: false
          
          
                    };
                  },
          
                  token: function(stream, state) {
                      if (stream.sol()) {
                        state.currentIndent += state.nextLineIndent;
                        state.nextLineIndent = 0;
                        state.doInCurrentLine = 0;
                      }
                      var style = tokenLexer(stream, state);
          
                      state.lastToken = {style:style, content: stream.current()};
          
          
          
                      return style;
                  },
          
                  indent: function(state, textAfter) {
                      var trueText = textAfter.replace(/^\s+|\s+$/g, '') ;
                      if (trueText.match(closing) || trueText.match(doubleClosing) || trueText.match(middle)) return conf.indentUnit*(state.currentIndent-1);
                      if(state.currentIndent < 0) return 0;
                      return state.currentIndent * conf.indentUnit;
                  },
          
                  lineComment: "'"
              };
              return external;
          });
          
          CodeMirror.defineMIME("text/x-vb", "vb");
          
          });
          
      • vbscript
        • index.html
          <!doctype html>
          
          <title>CodeMirror: VBScript mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="vbscript.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">VBScript</a>
            </ul>
          </div>
          
          <article>
          <h2>VBScript mode</h2>
          
          
          <div><textarea id="code" name="code">
          ' Pete Guhl
          ' 03-04-2012
          '
          ' Basic VBScript support for codemirror2
          
          Const ForReading = 1, ForWriting = 2, ForAppending = 8
          
          Call Sub020_PostBroadcastToUrbanAirship(strUserName, strPassword, intTransmitID, strResponse)
          
          If Not IsNull(strResponse) AND Len(strResponse) = 0 Then
          	boolTransmitOkYN = False
          Else
          	' WScript.Echo "Oh Happy Day! Oh Happy DAY!"
          	boolTransmitOkYN = True
          End If
          </textarea></div>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  indentUnit: 4
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/vbscript</code>.</p>
            </article>
          
        • vbscript.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          /*
          For extra ASP classic objects, initialize CodeMirror instance with this option:
              isASP: true
          
          E.G.:
              var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  isASP: true
                });
          */
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("vbscript", function(conf, parserConf) {
              var ERRORCLASS = 'error';
          
              function wordRegexp(words) {
                  return new RegExp("^((" + words.join(")|(") + "))\\b", "i");
              }
          
              var singleOperators = new RegExp("^[\\+\\-\\*/&\\\\\\^<>=]");
              var doubleOperators = new RegExp("^((<>)|(<=)|(>=))");
              var singleDelimiters = new RegExp('^[\\.,]');
              var brakets = new RegExp('^[\\(\\)]');
              var identifiers = new RegExp("^[A-Za-z][_A-Za-z0-9]*");
          
              var openingKeywords = ['class','sub','select','while','if','function', 'property', 'with', 'for'];
              var middleKeywords = ['else','elseif','case'];
              var endKeywords = ['next','loop','wend'];
          
              var wordOperators = wordRegexp(['and', 'or', 'not', 'xor', 'is', 'mod', 'eqv', 'imp']);
              var commonkeywords = ['dim', 'redim', 'then',  'until', 'randomize',
                                    'byval','byref','new','property', 'exit', 'in',
                                    'const','private', 'public',
                                    'get','set','let', 'stop', 'on error resume next', 'on error goto 0', 'option explicit', 'call', 'me'];
          
              //This list was from: http://msdn.microsoft.com/en-us/library/f8tbc79x(v=vs.84).aspx
              var atomWords = ['true', 'false', 'nothing', 'empty', 'null'];
              //This list was from: http://msdn.microsoft.com/en-us/library/3ca8tfek(v=vs.84).aspx
              var builtinFuncsWords = ['abs', 'array', 'asc', 'atn', 'cbool', 'cbyte', 'ccur', 'cdate', 'cdbl', 'chr', 'cint', 'clng', 'cos', 'csng', 'cstr', 'date', 'dateadd', 'datediff', 'datepart',
                                  'dateserial', 'datevalue', 'day', 'escape', 'eval', 'execute', 'exp', 'filter', 'formatcurrency', 'formatdatetime', 'formatnumber', 'formatpercent', 'getlocale', 'getobject',
                                  'getref', 'hex', 'hour', 'inputbox', 'instr', 'instrrev', 'int', 'fix', 'isarray', 'isdate', 'isempty', 'isnull', 'isnumeric', 'isobject', 'join', 'lbound', 'lcase', 'left',
                                  'len', 'loadpicture', 'log', 'ltrim', 'rtrim', 'trim', 'maths', 'mid', 'minute', 'month', 'monthname', 'msgbox', 'now', 'oct', 'replace', 'rgb', 'right', 'rnd', 'round',
                                  'scriptengine', 'scriptenginebuildversion', 'scriptenginemajorversion', 'scriptengineminorversion', 'second', 'setlocale', 'sgn', 'sin', 'space', 'split', 'sqr', 'strcomp',
                                  'string', 'strreverse', 'tan', 'time', 'timer', 'timeserial', 'timevalue', 'typename', 'ubound', 'ucase', 'unescape', 'vartype', 'weekday', 'weekdayname', 'year'];
          
              //This list was from: http://msdn.microsoft.com/en-us/library/ydz4cfk3(v=vs.84).aspx
              var builtinConsts = ['vbBlack', 'vbRed', 'vbGreen', 'vbYellow', 'vbBlue', 'vbMagenta', 'vbCyan', 'vbWhite', 'vbBinaryCompare', 'vbTextCompare',
                                   'vbSunday', 'vbMonday', 'vbTuesday', 'vbWednesday', 'vbThursday', 'vbFriday', 'vbSaturday', 'vbUseSystemDayOfWeek', 'vbFirstJan1', 'vbFirstFourDays', 'vbFirstFullWeek',
                                   'vbGeneralDate', 'vbLongDate', 'vbShortDate', 'vbLongTime', 'vbShortTime', 'vbObjectError',
                                   'vbOKOnly', 'vbOKCancel', 'vbAbortRetryIgnore', 'vbYesNoCancel', 'vbYesNo', 'vbRetryCancel', 'vbCritical', 'vbQuestion', 'vbExclamation', 'vbInformation', 'vbDefaultButton1', 'vbDefaultButton2',
                                   'vbDefaultButton3', 'vbDefaultButton4', 'vbApplicationModal', 'vbSystemModal', 'vbOK', 'vbCancel', 'vbAbort', 'vbRetry', 'vbIgnore', 'vbYes', 'vbNo',
                                   'vbCr', 'VbCrLf', 'vbFormFeed', 'vbLf', 'vbNewLine', 'vbNullChar', 'vbNullString', 'vbTab', 'vbVerticalTab', 'vbUseDefault', 'vbTrue', 'vbFalse',
                                   'vbEmpty', 'vbNull', 'vbInteger', 'vbLong', 'vbSingle', 'vbDouble', 'vbCurrency', 'vbDate', 'vbString', 'vbObject', 'vbError', 'vbBoolean', 'vbVariant', 'vbDataObject', 'vbDecimal', 'vbByte', 'vbArray'];
              //This list was from: http://msdn.microsoft.com/en-us/library/hkc375ea(v=vs.84).aspx
              var builtinObjsWords = ['WScript', 'err', 'debug', 'RegExp'];
              var knownProperties = ['description', 'firstindex', 'global', 'helpcontext', 'helpfile', 'ignorecase', 'length', 'number', 'pattern', 'source', 'value', 'count'];
              var knownMethods = ['clear', 'execute', 'raise', 'replace', 'test', 'write', 'writeline', 'close', 'open', 'state', 'eof', 'update', 'addnew', 'end', 'createobject', 'quit'];
          
              var aspBuiltinObjsWords = ['server', 'response', 'request', 'session', 'application'];
              var aspKnownProperties = ['buffer', 'cachecontrol', 'charset', 'contenttype', 'expires', 'expiresabsolute', 'isclientconnected', 'pics', 'status', //response
                                        'clientcertificate', 'cookies', 'form', 'querystring', 'servervariables', 'totalbytes', //request
                                        'contents', 'staticobjects', //application
                                        'codepage', 'lcid', 'sessionid', 'timeout', //session
                                        'scripttimeout']; //server
              var aspKnownMethods = ['addheader', 'appendtolog', 'binarywrite', 'end', 'flush', 'redirect', //response
                                     'binaryread', //request
                                     'remove', 'removeall', 'lock', 'unlock', //application
                                     'abandon', //session
                                     'getlasterror', 'htmlencode', 'mappath', 'transfer', 'urlencode']; //server
          
              var knownWords = knownMethods.concat(knownProperties);
          
              builtinObjsWords = builtinObjsWords.concat(builtinConsts);
          
              if (conf.isASP){
                  builtinObjsWords = builtinObjsWords.concat(aspBuiltinObjsWords);
                  knownWords = knownWords.concat(aspKnownMethods, aspKnownProperties);
              };
          
              var keywords = wordRegexp(commonkeywords);
              var atoms = wordRegexp(atomWords);
              var builtinFuncs = wordRegexp(builtinFuncsWords);
              var builtinObjs = wordRegexp(builtinObjsWords);
              var known = wordRegexp(knownWords);
              var stringPrefixes = '"';
          
              var opening = wordRegexp(openingKeywords);
              var middle = wordRegexp(middleKeywords);
              var closing = wordRegexp(endKeywords);
              var doubleClosing = wordRegexp(['end']);
              var doOpening = wordRegexp(['do']);
              var noIndentWords = wordRegexp(['on error resume next', 'exit']);
              var comment = wordRegexp(['rem']);
          
          
              function indent(_stream, state) {
                state.currentIndent++;
              }
          
              function dedent(_stream, state) {
                state.currentIndent--;
              }
              // tokenizers
              function tokenBase(stream, state) {
                  if (stream.eatSpace()) {
                      return 'space';
                      //return null;
                  }
          
                  var ch = stream.peek();
          
                  // Handle Comments
                  if (ch === "'") {
                      stream.skipToEnd();
                      return 'comment';
                  }
                  if (stream.match(comment)){
                      stream.skipToEnd();
                      return 'comment';
                  }
          
          
                  // Handle Number Literals
                  if (stream.match(/^((&H)|(&O))?[0-9\.]/i, false) && !stream.match(/^((&H)|(&O))?[0-9\.]+[a-z_]/i, false)) {
                      var floatLiteral = false;
                      // Floats
                      if (stream.match(/^\d*\.\d+/i)) { floatLiteral = true; }
                      else if (stream.match(/^\d+\.\d*/)) { floatLiteral = true; }
                      else if (stream.match(/^\.\d+/)) { floatLiteral = true; }
          
                      if (floatLiteral) {
                          // Float literals may be "imaginary"
                          stream.eat(/J/i);
                          return 'number';
                      }
                      // Integers
                      var intLiteral = false;
                      // Hex
                      if (stream.match(/^&H[0-9a-f]+/i)) { intLiteral = true; }
                      // Octal
                      else if (stream.match(/^&O[0-7]+/i)) { intLiteral = true; }
                      // Decimal
                      else if (stream.match(/^[1-9]\d*F?/)) {
                          // Decimal literals may be "imaginary"
                          stream.eat(/J/i);
                          // TODO - Can you have imaginary longs?
                          intLiteral = true;
                      }
                      // Zero by itself with no other piece of number.
                      else if (stream.match(/^0(?![\dx])/i)) { intLiteral = true; }
                      if (intLiteral) {
                          // Integer literals may be "long"
                          stream.eat(/L/i);
                          return 'number';
                      }
                  }
          
                  // Handle Strings
                  if (stream.match(stringPrefixes)) {
                      state.tokenize = tokenStringFactory(stream.current());
                      return state.tokenize(stream, state);
                  }
          
                  // Handle operators and Delimiters
                  if (stream.match(doubleOperators)
                      || stream.match(singleOperators)
                      || stream.match(wordOperators)) {
                      return 'operator';
                  }
                  if (stream.match(singleDelimiters)) {
                      return null;
                  }
          
                  if (stream.match(brakets)) {
                      return "bracket";
                  }
          
                  if (stream.match(noIndentWords)) {
                      state.doInCurrentLine = true;
          
                      return 'keyword';
                  }
          
                  if (stream.match(doOpening)) {
                      indent(stream,state);
                      state.doInCurrentLine = true;
          
                      return 'keyword';
                  }
                  if (stream.match(opening)) {
                      if (! state.doInCurrentLine)
                        indent(stream,state);
                      else
                        state.doInCurrentLine = false;
          
                      return 'keyword';
                  }
                  if (stream.match(middle)) {
                      return 'keyword';
                  }
          
          
                  if (stream.match(doubleClosing)) {
                      dedent(stream,state);
                      dedent(stream,state);
          
                      return 'keyword';
                  }
                  if (stream.match(closing)) {
                      if (! state.doInCurrentLine)
                        dedent(stream,state);
                      else
                        state.doInCurrentLine = false;
          
                      return 'keyword';
                  }
          
                  if (stream.match(keywords)) {
                      return 'keyword';
                  }
          
                  if (stream.match(atoms)) {
                      return 'atom';
                  }
          
                  if (stream.match(known)) {
                      return 'variable-2';
                  }
          
                  if (stream.match(builtinFuncs)) {
                      return 'builtin';
                  }
          
                  if (stream.match(builtinObjs)){
                      return 'variable-2';
                  }
          
                  if (stream.match(identifiers)) {
                      return 'variable';
                  }
          
                  // Handle non-detected items
                  stream.next();
                  return ERRORCLASS;
              }
          
              function tokenStringFactory(delimiter) {
                  var singleline = delimiter.length == 1;
                  var OUTCLASS = 'string';
          
                  return function(stream, state) {
                      while (!stream.eol()) {
                          stream.eatWhile(/[^'"]/);
                          if (stream.match(delimiter)) {
                              state.tokenize = tokenBase;
                              return OUTCLASS;
                          } else {
                              stream.eat(/['"]/);
                          }
                      }
                      if (singleline) {
                          if (parserConf.singleLineStringErrors) {
                              return ERRORCLASS;
                          } else {
                              state.tokenize = tokenBase;
                          }
                      }
                      return OUTCLASS;
                  };
              }
          
          
              function tokenLexer(stream, state) {
                  var style = state.tokenize(stream, state);
                  var current = stream.current();
          
                  // Handle '.' connected identifiers
                  if (current === '.') {
                      style = state.tokenize(stream, state);
          
                      current = stream.current();
                      if (style && (style.substr(0, 8) === 'variable' || style==='builtin' || style==='keyword')){//|| knownWords.indexOf(current.substring(1)) > -1) {
                          if (style === 'builtin' || style === 'keyword') style='variable';
                          if (knownWords.indexOf(current.substr(1)) > -1) style='variable-2';
          
                          return style;
                      } else {
                          return ERRORCLASS;
                      }
                  }
          
                  return style;
              }
          
              var external = {
                  electricChars:"dDpPtTfFeE ",
                  startState: function() {
                      return {
                        tokenize: tokenBase,
                        lastToken: null,
                        currentIndent: 0,
                        nextLineIndent: 0,
                        doInCurrentLine: false,
                        ignoreKeyword: false
          
          
                    };
                  },
          
                  token: function(stream, state) {
                      if (stream.sol()) {
                        state.currentIndent += state.nextLineIndent;
                        state.nextLineIndent = 0;
                        state.doInCurrentLine = 0;
                      }
                      var style = tokenLexer(stream, state);
          
                      state.lastToken = {style:style, content: stream.current()};
          
                      if (style==='space') style=null;
          
                      return style;
                  },
          
                  indent: function(state, textAfter) {
                      var trueText = textAfter.replace(/^\s+|\s+$/g, '') ;
                      if (trueText.match(closing) || trueText.match(doubleClosing) || trueText.match(middle)) return conf.indentUnit*(state.currentIndent-1);
                      if(state.currentIndent < 0) return 0;
                      return state.currentIndent * conf.indentUnit;
                  }
          
              };
              return external;
          });
          
          CodeMirror.defineMIME("text/vbscript", "vbscript");
          
          });
          
      • velocity
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Velocity mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <link rel="stylesheet" href="../../theme/night.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="velocity.js"></script>
          <style>.CodeMirror {border: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Velocity</a>
            </ul>
          </div>
          
          <article>
          <h2>Velocity mode</h2>
          <form><textarea id="code" name="code">
          ## Velocity Code Demo
          #*
             based on PL/SQL mode by Peter Raganitsch, adapted to Velocity by Steve O'Hara ( http://www.pivotal-solutions.co.uk )
             August 2011
          *#
          
          #*
             This is a multiline comment.
             This is the second line
          *#
          
          #[[ hello steve
             This has invalid syntax that would normally need "poor man's escaping" like:
          
             #define()
          
             ${blah
          ]]#
          
          #include( "disclaimer.txt" "opinion.txt" )
          #include( $foo $bar )
          
          #parse( "lecorbusier.vm" )
          #parse( $foo )
          
          #evaluate( 'string with VTL #if(true)will be displayed#end' )
          
          #define( $hello ) Hello $who #end #set( $who = "World!") $hello ## displays Hello World!
          
          #foreach( $customer in $customerList )
          
              $foreach.count $customer.Name
          
              #if( $foo == ${bar})
                  it's true!
                  #break
              #{else}
                  it's not!
                  #stop
              #end
          
              #if ($foreach.parent.hasNext)
                  $velocityCount
              #end
          #end
          
          $someObject.getValues("this is a string split
                  across lines")
          
          $someObject("This plus $something in the middle").method(7567).property
          
          #macro( tablerows $color $somelist )
              #foreach( $something in $somelist )
                  <tr><td bgcolor=$color>$something</td></tr>
                  <tr><td bgcolor=$color>$bodyContent</td></tr>
              #end
          #end
          
          #tablerows("red" ["dadsdf","dsa"])
          #@tablerows("red" ["dadsdf","dsa"]) some body content #end
          
             Variable reference: #set( $monkey = $bill )
             String literal: #set( $monkey.Friend = 'monica' )
             Property reference: #set( $monkey.Blame = $whitehouse.Leak )
             Method reference: #set( $monkey.Plan = $spindoctor.weave($web) )
             Number literal: #set( $monkey.Number = 123 )
             Range operator: #set( $monkey.Numbers = [1..3] )
             Object list: #set( $monkey.Say = ["Not", $my, "fault"] )
             Object map: #set( $monkey.Map = {"banana" : "good", "roast beef" : "bad"})
          
          The RHS can also be a simple arithmetic expression, such as:
          Addition: #set( $value = $foo + 1 )
             Subtraction: #set( $value = $bar - 1 )
             Multiplication: #set( $value = $foo * $bar )
             Division: #set( $value = $foo / $bar )
             Remainder: #set( $value = $foo % $bar )
          
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  theme: "night",
                  lineNumbers: true,
                  indentUnit: 4,
                  mode: "text/velocity"
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/velocity</code>.</p>
          
            </article>
          
        • velocity.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("velocity", function() {
              function parseWords(str) {
                  var obj = {}, words = str.split(" ");
                  for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
                  return obj;
              }
          
              var keywords = parseWords("#end #else #break #stop #[[ #]] " +
                                        "#{end} #{else} #{break} #{stop}");
              var functions = parseWords("#if #elseif #foreach #set #include #parse #macro #define #evaluate " +
                                         "#{if} #{elseif} #{foreach} #{set} #{include} #{parse} #{macro} #{define} #{evaluate}");
              var specials = parseWords("$foreach.count $foreach.hasNext $foreach.first $foreach.last $foreach.topmost $foreach.parent.count $foreach.parent.hasNext $foreach.parent.first $foreach.parent.last $foreach.parent $velocityCount $!bodyContent $bodyContent");
              var isOperatorChar = /[+\-*&%=<>!?:\/|]/;
          
              function chain(stream, state, f) {
                  state.tokenize = f;
                  return f(stream, state);
              }
              function tokenBase(stream, state) {
                  var beforeParams = state.beforeParams;
                  state.beforeParams = false;
                  var ch = stream.next();
                  // start of unparsed string?
                  if ((ch == "'") && state.inParams) {
                      state.lastTokenWasBuiltin = false;
                      return chain(stream, state, tokenString(ch));
                  }
                  // start of parsed string?
                  else if ((ch == '"')) {
                      state.lastTokenWasBuiltin = false;
                      if (state.inString) {
                          state.inString = false;
                          return "string";
                      }
                      else if (state.inParams)
                          return chain(stream, state, tokenString(ch));
                  }
                  // is it one of the special signs []{}().,;? Seperator?
                  else if (/[\[\]{}\(\),;\.]/.test(ch)) {
                      if (ch == "(" && beforeParams)
                          state.inParams = true;
                      else if (ch == ")") {
                          state.inParams = false;
                          state.lastTokenWasBuiltin = true;
                      }
                      return null;
                  }
                  // start of a number value?
                  else if (/\d/.test(ch)) {
                      state.lastTokenWasBuiltin = false;
                      stream.eatWhile(/[\w\.]/);
                      return "number";
                  }
                  // multi line comment?
                  else if (ch == "#" && stream.eat("*")) {
                      state.lastTokenWasBuiltin = false;
                      return chain(stream, state, tokenComment);
                  }
                  // unparsed content?
                  else if (ch == "#" && stream.match(/ *\[ *\[/)) {
                      state.lastTokenWasBuiltin = false;
                      return chain(stream, state, tokenUnparsed);
                  }
                  // single line comment?
                  else if (ch == "#" && stream.eat("#")) {
                      state.lastTokenWasBuiltin = false;
                      stream.skipToEnd();
                      return "comment";
                  }
                  // variable?
                  else if (ch == "$") {
                      stream.eatWhile(/[\w\d\$_\.{}]/);
                      // is it one of the specials?
                      if (specials && specials.propertyIsEnumerable(stream.current())) {
                          return "keyword";
                      }
                      else {
                          state.lastTokenWasBuiltin = true;
                          state.beforeParams = true;
                          return "builtin";
                      }
                  }
                  // is it a operator?
                  else if (isOperatorChar.test(ch)) {
                      state.lastTokenWasBuiltin = false;
                      stream.eatWhile(isOperatorChar);
                      return "operator";
                  }
                  else {
                      // get the whole word
                      stream.eatWhile(/[\w\$_{}@]/);
                      var word = stream.current();
                      // is it one of the listed keywords?
                      if (keywords && keywords.propertyIsEnumerable(word))
                          return "keyword";
                      // is it one of the listed functions?
                      if (functions && functions.propertyIsEnumerable(word) ||
                              (stream.current().match(/^#@?[a-z0-9_]+ *$/i) && stream.peek()=="(") &&
                               !(functions && functions.propertyIsEnumerable(word.toLowerCase()))) {
                          state.beforeParams = true;
                          state.lastTokenWasBuiltin = false;
                          return "keyword";
                      }
                      if (state.inString) {
                          state.lastTokenWasBuiltin = false;
                          return "string";
                      }
                      if (stream.pos > word.length && stream.string.charAt(stream.pos-word.length-1)=="." && state.lastTokenWasBuiltin)
                          return "builtin";
                      // default: just a "word"
                      state.lastTokenWasBuiltin = false;
                      return null;
                  }
              }
          
              function tokenString(quote) {
                  return function(stream, state) {
                      var escaped = false, next, end = false;
                      while ((next = stream.next()) != null) {
                          if ((next == quote) && !escaped) {
                              end = true;
                              break;
                          }
                          if (quote=='"' && stream.peek() == '$' && !escaped) {
                              state.inString = true;
                              end = true;
                              break;
                          }
                          escaped = !escaped && next == "\\";
                      }
                      if (end) state.tokenize = tokenBase;
                      return "string";
                  };
              }
          
              function tokenComment(stream, state) {
                  var maybeEnd = false, ch;
                  while (ch = stream.next()) {
                      if (ch == "#" && maybeEnd) {
                          state.tokenize = tokenBase;
                          break;
                      }
                      maybeEnd = (ch == "*");
                  }
                  return "comment";
              }
          
              function tokenUnparsed(stream, state) {
                  var maybeEnd = 0, ch;
                  while (ch = stream.next()) {
                      if (ch == "#" && maybeEnd == 2) {
                          state.tokenize = tokenBase;
                          break;
                      }
                      if (ch == "]")
                          maybeEnd++;
                      else if (ch != " ")
                          maybeEnd = 0;
                  }
                  return "meta";
              }
              // Interface
          
              return {
                  startState: function() {
                      return {
                          tokenize: tokenBase,
                          beforeParams: false,
                          inParams: false,
                          inString: false,
                          lastTokenWasBuiltin: false
                      };
                  },
          
                  token: function(stream, state) {
                      if (stream.eatSpace()) return null;
                      return state.tokenize(stream, state);
                  },
                  blockCommentStart: "#*",
                  blockCommentEnd: "*#",
                  lineComment: "##",
                  fold: "velocity"
              };
          });
          
          CodeMirror.defineMIME("text/velocity", "velocity");
          
          });
          
      • verilog
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Verilog/SystemVerilog mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="verilog.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Verilog/SystemVerilog</a>
            </ul>
          </div>
          
          <article>
          <h2>SystemVerilog mode</h2>
          
          <div><textarea id="code" name="code">
          // Literals
          1'b0
          1'bx
          1'bz
          16'hDC78
          'hdeadbeef
          'b0011xxzz
          1234
          32'd5678
          3.4e6
          -128.7
          
          // Macro definition
          `define BUS_WIDTH = 8;
          
          // Module definition
          module block(
            input                   clk,
            input                   rst_n,
            input  [`BUS_WIDTH-1:0] data_in,
            output [`BUS_WIDTH-1:0] data_out
          );
            
            always @(posedge clk or negedge rst_n) begin
          
              if (~rst_n) begin
                data_out <= 8'b0;
              end else begin
                data_out <= data_in;
              end
              
              if (~rst_n)
                data_out <= 8'b0;
              else
                data_out <= data_in;
              
              if (~rst_n)
                begin
                  data_out <= 8'b0;
                end
              else
                begin
                  data_out <= data_in;
                end
          
            end
            
          endmodule
          
          // Class definition
          class test;
          
            /**
             * Sum two integers
             */
            function int sum(int a, int b);
              int result = a + b;
              string msg = $sformatf("%d + %d = %d", a, b, result);
              $display(msg);
              return result;
            endfunction
            
            task delay(int num_cycles);
              repeat(num_cycles) #1;
            endtask
            
          endclass
          
          </textarea></div>
          
          <script>
            var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
              lineNumbers: true,
              matchBrackets: true,
              mode: {
                name: "verilog",
                noIndentKeywords: ["package"]
              }
            });
          </script>
          
          <p>
          Syntax highlighting and indentation for the Verilog and SystemVerilog languages (IEEE 1800).
          <h2>Configuration options:</h2>
            <ul>
              <li><strong>noIndentKeywords</strong> - List of keywords which should not cause identation to increase. E.g. ["package", "module"]. Default: None</li>
            </ul>
          </p>
          
          <p><strong>MIME types defined:</strong> <code>text/x-verilog</code> and <code>text/x-systemverilog</code>.</p>
          </article>
          
        • test.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function() {
            var mode = CodeMirror.getMode({indentUnit: 4}, "verilog");
            function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
          
            MT("binary_literals",
               "[number 1'b0]",
               "[number 1'b1]",
               "[number 1'bx]",
               "[number 1'bz]",
               "[number 1'bX]",
               "[number 1'bZ]",
               "[number 1'B0]",
               "[number 1'B1]",
               "[number 1'Bx]",
               "[number 1'Bz]",
               "[number 1'BX]",
               "[number 1'BZ]",
               "[number 1'b0]",
               "[number 1'b1]",
               "[number 2'b01]",
               "[number 2'bxz]",
               "[number 2'b11]",
               "[number 2'b10]",
               "[number 2'b1Z]",
               "[number 12'b0101_0101_0101]",
               "[number 1'b 0]",
               "[number 'b0101]"
            );
          
            MT("octal_literals",
               "[number 3'o7]",
               "[number 3'O7]",
               "[number 3'so7]",
               "[number 3'SO7]"
            );
          
            MT("decimal_literals",
               "[number 0]",
               "[number 1]",
               "[number 7]",
               "[number 123_456]",
               "[number 'd33]",
               "[number 8'd255]",
               "[number 8'D255]",
               "[number 8'sd255]",
               "[number 8'SD255]",
               "[number 32'd123]",
               "[number 32 'd123]",
               "[number 32 'd 123]"
            );
          
            MT("hex_literals",
               "[number 4'h0]",
               "[number 4'ha]",
               "[number 4'hF]",
               "[number 4'hx]",
               "[number 4'hz]",
               "[number 4'hX]",
               "[number 4'hZ]",
               "[number 32'hdc78]",
               "[number 32'hDC78]",
               "[number 32 'hDC78]",
               "[number 32'h DC78]",
               "[number 32 'h DC78]",
               "[number 32'h44x7]",
               "[number 32'hFFF?]"
            );
          
            MT("real_number_literals",
               "[number 1.2]",
               "[number 0.1]",
               "[number 2394.26331]",
               "[number 1.2E12]",
               "[number 1.2e12]",
               "[number 1.30e-2]",
               "[number 0.1e-0]",
               "[number 23E10]",
               "[number 29E-2]",
               "[number 236.123_763_e-12]"
            );
          
            MT("operators",
               "[meta ^]"
            );
          
            MT("keywords",
               "[keyword logic]",
               "[keyword logic] [variable foo]",
               "[keyword reg] [variable abc]"
            );
          
            MT("variables",
               "[variable _leading_underscore]",
               "[variable _if]",
               "[number 12] [variable foo]",
               "[variable foo] [number 14]"
            );
          
            MT("tick_defines",
               "[def `FOO]",
               "[def `foo]",
               "[def `FOO_bar]"
            );
          
            MT("system_calls",
               "[meta $display]",
               "[meta $vpi_printf]"
            );
          
            MT("line_comment", "[comment // Hello world]");
          
            // Alignment tests
            MT("align_port_map_style1",
               /**
                * mod mod(.a(a),
                *         .b(b)
                *        );
                */
               "[variable mod] [variable mod][bracket (].[variable a][bracket (][variable a][bracket )],",
               "        .[variable b][bracket (][variable b][bracket )]",
               "       [bracket )];",
               ""
            );
          
            MT("align_port_map_style2",
               /**
                * mod mod(
                *     .a(a),
                *     .b(b)
                * );
                */
               "[variable mod] [variable mod][bracket (]",
               "    .[variable a][bracket (][variable a][bracket )],",
               "    .[variable b][bracket (][variable b][bracket )]",
               "[bracket )];",
               ""
            );
          
            // Indentation tests
            MT("indent_single_statement_if",
                "[keyword if] [bracket (][variable foo][bracket )]",
                "    [keyword break];",
                ""
            );
          
            MT("no_indent_after_single_line_if",
                "[keyword if] [bracket (][variable foo][bracket )] [keyword break];",
                ""
            );
          
            MT("indent_after_if_begin_same_line",
                "[keyword if] [bracket (][variable foo][bracket )] [keyword begin]",
                "    [keyword break];",
                "    [keyword break];",
                "[keyword end]",
                ""
            );
          
            MT("indent_after_if_begin_next_line",
                "[keyword if] [bracket (][variable foo][bracket )]",
                "    [keyword begin]",
                "        [keyword break];",
                "        [keyword break];",
                "    [keyword end]",
                ""
            );
          
            MT("indent_single_statement_if_else",
                "[keyword if] [bracket (][variable foo][bracket )]",
                "    [keyword break];",
                "[keyword else]",
                "    [keyword break];",
                ""
            );
          
            MT("indent_if_else_begin_same_line",
                "[keyword if] [bracket (][variable foo][bracket )] [keyword begin]",
                "    [keyword break];",
                "    [keyword break];",
                "[keyword end] [keyword else] [keyword begin]",
                "    [keyword break];",
                "    [keyword break];",
                "[keyword end]",
                ""
            );
          
            MT("indent_if_else_begin_next_line",
                "[keyword if] [bracket (][variable foo][bracket )]",
                "    [keyword begin]",
                "        [keyword break];",
                "        [keyword break];",
                "    [keyword end]",
                "[keyword else]",
                "    [keyword begin]",
                "        [keyword break];",
                "        [keyword break];",
                "    [keyword end]",
                ""
            );
          
            MT("indent_if_nested_without_begin",
                "[keyword if] [bracket (][variable foo][bracket )]",
                "    [keyword if] [bracket (][variable foo][bracket )]",
                "        [keyword if] [bracket (][variable foo][bracket )]",
                "            [keyword break];",
                ""
            );
          
            MT("indent_case",
                "[keyword case] [bracket (][variable state][bracket )]",
                "    [variable FOO]:",
                "        [keyword break];",
                "    [variable BAR]:",
                "        [keyword break];",
                "[keyword endcase]",
                ""
            );
          
            MT("unindent_after_end_with_preceding_text",
                "[keyword begin]",
                "    [keyword break]; [keyword end]",
                ""
            );
          
            MT("export_function_one_line_does_not_indent",
               "[keyword export] [string \"DPI-C\"] [keyword function] [variable helloFromSV];",
               ""
            );
          
            MT("export_task_one_line_does_not_indent",
               "[keyword export] [string \"DPI-C\"] [keyword task] [variable helloFromSV];",
               ""
            );
          
            MT("export_function_two_lines_indents_properly",
              "[keyword export]",
              "    [string \"DPI-C\"] [keyword function] [variable helloFromSV];",
              ""
            );
          
            MT("export_task_two_lines_indents_properly",
              "[keyword export]",
              "    [string \"DPI-C\"] [keyword task] [variable helloFromSV];",
              ""
            );
          
            MT("import_function_one_line_does_not_indent",
              "[keyword import] [string \"DPI-C\"] [keyword function] [variable helloFromC];",
              ""
            );
          
            MT("import_task_one_line_does_not_indent",
              "[keyword import] [string \"DPI-C\"] [keyword task] [variable helloFromC];",
              ""
            );
          
            MT("import_package_single_line_does_not_indent",
              "[keyword import] [variable p]::[variable x];",
              "[keyword import] [variable p]::[variable y];",
              ""
            );
          
            MT("covergoup_with_function_indents_properly",
              "[keyword covergroup] [variable cg] [keyword with] [keyword function] [variable sample][bracket (][keyword bit] [variable b][bracket )];",
              "    [variable c] : [keyword coverpoint] [variable c];",
              "[keyword endgroup]: [variable cg]",
              ""
            );
          
          })();
          
        • verilog.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("verilog", function(config, parserConfig) {
          
            var indentUnit = config.indentUnit,
                statementIndentUnit = parserConfig.statementIndentUnit || indentUnit,
                dontAlignCalls = parserConfig.dontAlignCalls,
                noIndentKeywords = parserConfig.noIndentKeywords || [],
                multiLineStrings = parserConfig.multiLineStrings,
                hooks = parserConfig.hooks || {};
          
            function words(str) {
              var obj = {}, words = str.split(" ");
              for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
              return obj;
            }
          
            /**
             * Keywords from IEEE 1800-2012
             */
            var keywords = words(
              "accept_on alias always always_comb always_ff always_latch and assert assign assume automatic before begin bind " +
              "bins binsof bit break buf bufif0 bufif1 byte case casex casez cell chandle checker class clocking cmos config " +
              "const constraint context continue cover covergroup coverpoint cross deassign default defparam design disable " +
              "dist do edge else end endcase endchecker endclass endclocking endconfig endfunction endgenerate endgroup " +
              "endinterface endmodule endpackage endprimitive endprogram endproperty endspecify endsequence endtable endtask " +
              "enum event eventually expect export extends extern final first_match for force foreach forever fork forkjoin " +
              "function generate genvar global highz0 highz1 if iff ifnone ignore_bins illegal_bins implements implies import " +
              "incdir include initial inout input inside instance int integer interconnect interface intersect join join_any " +
              "join_none large let liblist library local localparam logic longint macromodule matches medium modport module " +
              "nand negedge nettype new nexttime nmos nor noshowcancelled not notif0 notif1 null or output package packed " +
              "parameter pmos posedge primitive priority program property protected pull0 pull1 pulldown pullup " +
              "pulsestyle_ondetect pulsestyle_onevent pure rand randc randcase randsequence rcmos real realtime ref reg " +
              "reject_on release repeat restrict return rnmos rpmos rtran rtranif0 rtranif1 s_always s_eventually s_nexttime " +
              "s_until s_until_with scalared sequence shortint shortreal showcancelled signed small soft solve specify " +
              "specparam static string strong strong0 strong1 struct super supply0 supply1 sync_accept_on sync_reject_on " +
              "table tagged task this throughout time timeprecision timeunit tran tranif0 tranif1 tri tri0 tri1 triand trior " +
              "trireg type typedef union unique unique0 unsigned until until_with untyped use uwire var vectored virtual void " +
              "wait wait_order wand weak weak0 weak1 while wildcard wire with within wor xnor xor");
          
            /** Operators from IEEE 1800-2012
               unary_operator ::=
                 + | - | ! | ~ | & | ~& | | | ~| | ^ | ~^ | ^~
               binary_operator ::=
                 + | - | * | / | % | == | != | === | !== | ==? | !=? | && | || | **
                 | < | <= | > | >= | & | | | ^ | ^~ | ~^ | >> | << | >>> | <<<
                 | -> | <->
               inc_or_dec_operator ::= ++ | --
               unary_module_path_operator ::=
                 ! | ~ | & | ~& | | | ~| | ^ | ~^ | ^~
               binary_module_path_operator ::=
                 == | != | && | || | & | | | ^ | ^~ | ~^
            */
            var isOperatorChar = /[\+\-\*\/!~&|^%=?:]/;
            var isBracketChar = /[\[\]{}()]/;
          
            var unsignedNumber = /\d[0-9_]*/;
            var decimalLiteral = /\d*\s*'s?d\s*\d[0-9_]*/i;
            var binaryLiteral = /\d*\s*'s?b\s*[xz01][xz01_]*/i;
            var octLiteral = /\d*\s*'s?o\s*[xz0-7][xz0-7_]*/i;
            var hexLiteral = /\d*\s*'s?h\s*[0-9a-fxz?][0-9a-fxz?_]*/i;
            var realLiteral = /(\d[\d_]*(\.\d[\d_]*)?E-?[\d_]+)|(\d[\d_]*\.\d[\d_]*)/i;
          
            var closingBracketOrWord = /^((\w+)|[)}\]])/;
            var closingBracket = /[)}\]]/;
          
            var curPunc;
            var curKeyword;
          
            // Block openings which are closed by a matching keyword in the form of ("end" + keyword)
            // E.g. "task" => "endtask"
            var blockKeywords = words(
              "case checker class clocking config function generate interface module package" +
              "primitive program property specify sequence table task"
            );
          
            // Opening/closing pairs
            var openClose = {};
            for (var keyword in blockKeywords) {
              openClose[keyword] = "end" + keyword;
            }
            openClose["begin"] = "end";
            openClose["casex"] = "endcase";
            openClose["casez"] = "endcase";
            openClose["do"   ] = "while";
            openClose["fork" ] = "join;join_any;join_none";
            openClose["covergroup"] = "endgroup";
          
            for (var i in noIndentKeywords) {
              var keyword = noIndentKeywords[i];
              if (openClose[keyword]) {
                openClose[keyword] = undefined;
              }
            }
          
            // Keywords which open statements that are ended with a semi-colon
            var statementKeywords = words("always always_comb always_ff always_latch assert assign assume else export for foreach forever if import initial repeat while");
          
            function tokenBase(stream, state) {
              var ch = stream.peek(), style;
              if (hooks[ch] && (style = hooks[ch](stream, state)) != false) return style;
              if (hooks.tokenBase && (style = hooks.tokenBase(stream, state)) != false)
                return style;
          
              if (/[,;:\.]/.test(ch)) {
                curPunc = stream.next();
                return null;
              }
              if (isBracketChar.test(ch)) {
                curPunc = stream.next();
                return "bracket";
              }
              // Macros (tick-defines)
              if (ch == '`') {
                stream.next();
                if (stream.eatWhile(/[\w\$_]/)) {
                  return "def";
                } else {
                  return null;
                }
              }
              // System calls
              if (ch == '$') {
                stream.next();
                if (stream.eatWhile(/[\w\$_]/)) {
                  return "meta";
                } else {
                  return null;
                }
              }
              // Time literals
              if (ch == '#') {
                stream.next();
                stream.eatWhile(/[\d_.]/);
                return "def";
              }
              // Strings
              if (ch == '"') {
                stream.next();
                state.tokenize = tokenString(ch);
                return state.tokenize(stream, state);
              }
              // Comments
              if (ch == "/") {
                stream.next();
                if (stream.eat("*")) {
                  state.tokenize = tokenComment;
                  return tokenComment(stream, state);
                }
                if (stream.eat("/")) {
                  stream.skipToEnd();
                  return "comment";
                }
                stream.backUp(1);
              }
          
              // Numeric literals
              if (stream.match(realLiteral) ||
                  stream.match(decimalLiteral) ||
                  stream.match(binaryLiteral) ||
                  stream.match(octLiteral) ||
                  stream.match(hexLiteral) ||
                  stream.match(unsignedNumber) ||
                  stream.match(realLiteral)) {
                return "number";
              }
          
              // Operators
              if (stream.eatWhile(isOperatorChar)) {
                return "meta";
              }
          
              // Keywords / plain variables
              if (stream.eatWhile(/[\w\$_]/)) {
                var cur = stream.current();
                if (keywords[cur]) {
                  if (openClose[cur]) {
                    curPunc = "newblock";
                  }
                  if (statementKeywords[cur]) {
                    curPunc = "newstatement";
                  }
                  curKeyword = cur;
                  return "keyword";
                }
                return "variable";
              }
          
              stream.next();
              return null;
            }
          
            function tokenString(quote) {
              return function(stream, state) {
                var escaped = false, next, end = false;
                while ((next = stream.next()) != null) {
                  if (next == quote && !escaped) {end = true; break;}
                  escaped = !escaped && next == "\\";
                }
                if (end || !(escaped || multiLineStrings))
                  state.tokenize = tokenBase;
                return "string";
              };
            }
          
            function tokenComment(stream, state) {
              var maybeEnd = false, ch;
              while (ch = stream.next()) {
                if (ch == "/" && maybeEnd) {
                  state.tokenize = tokenBase;
                  break;
                }
                maybeEnd = (ch == "*");
              }
              return "comment";
            }
          
            function Context(indented, column, type, align, prev) {
              this.indented = indented;
              this.column = column;
              this.type = type;
              this.align = align;
              this.prev = prev;
            }
            function pushContext(state, col, type) {
              var indent = state.indented;
              var c = new Context(indent, col, type, null, state.context);
              return state.context = c;
            }
            function popContext(state) {
              var t = state.context.type;
              if (t == ")" || t == "]" || t == "}") {
                state.indented = state.context.indented;
              }
              return state.context = state.context.prev;
            }
          
            function isClosing(text, contextClosing) {
              if (text == contextClosing) {
                return true;
              } else {
                // contextClosing may be mulitple keywords separated by ;
                var closingKeywords = contextClosing.split(";");
                for (var i in closingKeywords) {
                  if (text == closingKeywords[i]) {
                    return true;
                  }
                }
                return false;
              }
            }
          
            function buildElectricInputRegEx() {
              // Reindentation should occur on any bracket char: {}()[]
              // or on a match of any of the block closing keywords, at
              // the end of a line
              var allClosings = [];
              for (var i in openClose) {
                if (openClose[i]) {
                  var closings = openClose[i].split(";");
                  for (var j in closings) {
                    allClosings.push(closings[j]);
                  }
                }
              }
              var re = new RegExp("[{}()\\[\\]]|(" + allClosings.join("|") + ")$");
              return re;
            }
          
            // Interface
            return {
          
              // Regex to force current line to reindent
              electricInput: buildElectricInputRegEx(),
          
              startState: function(basecolumn) {
                var state = {
                  tokenize: null,
                  context: new Context((basecolumn || 0) - indentUnit, 0, "top", false),
                  indented: 0,
                  startOfLine: true
                };
                if (hooks.startState) hooks.startState(state);
                return state;
              },
          
              token: function(stream, state) {
                var ctx = state.context;
                if (stream.sol()) {
                  if (ctx.align == null) ctx.align = false;
                  state.indented = stream.indentation();
                  state.startOfLine = true;
                }
                if (hooks.token) hooks.token(stream, state);
                if (stream.eatSpace()) return null;
                curPunc = null;
                curKeyword = null;
                var style = (state.tokenize || tokenBase)(stream, state);
                if (style == "comment" || style == "meta" || style == "variable") return style;
                if (ctx.align == null) ctx.align = true;
          
                if (curPunc == ctx.type) {
                  popContext(state);
                } else if ((curPunc == ";" && ctx.type == "statement") ||
                         (ctx.type && isClosing(curKeyword, ctx.type))) {
                  ctx = popContext(state);
                  while (ctx && ctx.type == "statement") ctx = popContext(state);
                } else if (curPunc == "{") {
                  pushContext(state, stream.column(), "}");
                } else if (curPunc == "[") {
                  pushContext(state, stream.column(), "]");
                } else if (curPunc == "(") {
                  pushContext(state, stream.column(), ")");
                } else if (ctx && ctx.type == "endcase" && curPunc == ":") {
                  pushContext(state, stream.column(), "statement");
                } else if (curPunc == "newstatement") {
                  pushContext(state, stream.column(), "statement");
                } else if (curPunc == "newblock") {
                  if (curKeyword == "function" && ctx && (ctx.type == "statement" || ctx.type == "endgroup")) {
                    // The 'function' keyword can appear in some other contexts where it actually does not
                    // indicate a function (import/export DPI and covergroup definitions).
                    // Do nothing in this case
                  } else if (curKeyword == "task" && ctx && ctx.type == "statement") {
                    // Same thing for task
                  } else {
                    var close = openClose[curKeyword];
                    pushContext(state, stream.column(), close);
                  }
                }
          
                state.startOfLine = false;
                return style;
              },
          
              indent: function(state, textAfter) {
                if (state.tokenize != tokenBase && state.tokenize != null) return CodeMirror.Pass;
                if (hooks.indent) {
                  var fromHook = hooks.indent(state);
                  if (fromHook >= 0) return fromHook;
                }
                var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);
                if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev;
                var closing = false;
                var possibleClosing = textAfter.match(closingBracketOrWord);
                if (possibleClosing)
                  closing = isClosing(possibleClosing[0], ctx.type);
                if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : statementIndentUnit);
                else if (closingBracket.test(ctx.type) && ctx.align && !dontAlignCalls) return ctx.column + (closing ? 0 : 1);
                else if (ctx.type == ")" && !closing) return ctx.indented + statementIndentUnit;
                else return ctx.indented + (closing ? 0 : indentUnit);
              },
          
              blockCommentStart: "/*",
              blockCommentEnd: "*/",
              lineComment: "//"
            };
          });
          
            CodeMirror.defineMIME("text/x-verilog", {
              name: "verilog"
            });
          
            CodeMirror.defineMIME("text/x-systemverilog", {
              name: "verilog"
            });
          
            // TLVVerilog mode
          
            var tlvchScopePrefixes = {
              ">": "property", "->": "property", "-": "hr", "|": "link", "?$": "qualifier", "?*": "qualifier",
              "@-": "variable-3", "@": "variable-3", "?": "qualifier"
            };
          
            function tlvGenIndent(stream, state) {
              var tlvindentUnit = 2;
              var rtnIndent = -1, indentUnitRq = 0, curIndent = stream.indentation();
              switch (state.tlvCurCtlFlowChar) {
              case "\\":
                curIndent = 0;
                break;
              case "|":
                if (state.tlvPrevPrevCtlFlowChar == "@") {
                  indentUnitRq = -2; //-2 new pipe rq after cur pipe
                  break;
                }
                if (tlvchScopePrefixes[state.tlvPrevCtlFlowChar])
                  indentUnitRq = 1; // +1 new scope
                break;
              case "M":  // m4
                if (state.tlvPrevPrevCtlFlowChar == "@") {
                  indentUnitRq = -2; //-2 new inst rq after  pipe
                  break;
                }
                if (tlvchScopePrefixes[state.tlvPrevCtlFlowChar])
                  indentUnitRq = 1; // +1 new scope
                break;
              case "@":
                if (state.tlvPrevCtlFlowChar == "S")
                  indentUnitRq = -1; // new pipe stage after stmts
                if (state.tlvPrevCtlFlowChar == "|")
                  indentUnitRq = 1; // 1st pipe stage
                break;
              case "S":
                if (state.tlvPrevCtlFlowChar == "@")
                  indentUnitRq = 1; // flow in pipe stage
                if (tlvchScopePrefixes[state.tlvPrevCtlFlowChar])
                  indentUnitRq = 1; // +1 new scope
                break;
              }
              var statementIndentUnit = tlvindentUnit;
              rtnIndent = curIndent + (indentUnitRq*statementIndentUnit);
              return rtnIndent >= 0 ? rtnIndent : curIndent;
            }
          
            CodeMirror.defineMIME("text/x-tlv", {
              name: "verilog",
              hooks: {
                "\\": function(stream, state) {
                  var vxIndent = 0, style = false;
                  var curPunc  = stream.string;
                  if ((stream.sol()) && ((/\\SV/.test(stream.string)) || (/\\TLV/.test(stream.string)))) {
                    curPunc = (/\\TLV_version/.test(stream.string))
                      ? "\\TLV_version" : stream.string;
                    stream.skipToEnd();
                    if (curPunc == "\\SV" && state.vxCodeActive) {state.vxCodeActive = false;};
                    if ((/\\TLV/.test(curPunc) && !state.vxCodeActive)
                      || (curPunc=="\\TLV_version" && state.vxCodeActive)) {state.vxCodeActive = true;};
                    style = "keyword";
                    state.tlvCurCtlFlowChar  = state.tlvPrevPrevCtlFlowChar
                      = state.tlvPrevCtlFlowChar = "";
                    if (state.vxCodeActive == true) {
                      state.tlvCurCtlFlowChar  = "\\";
                      vxIndent = tlvGenIndent(stream, state);
                    }
                    state.vxIndentRq = vxIndent;
                  }
                  return style;
                },
                tokenBase: function(stream, state) {
                  var vxIndent = 0, style = false;
                  var tlvisOperatorChar = /[\[\]=:]/;
                  var tlvkpScopePrefixs = {
                    "**":"variable-2", "*":"variable-2", "$$":"variable", "$":"variable",
                    "^^":"attribute", "^":"attribute"};
                  var ch = stream.peek();
                  var vxCurCtlFlowCharValueAtStart = state.tlvCurCtlFlowChar;
                  if (state.vxCodeActive == true) {
                    if (/[\[\]{}\(\);\:]/.test(ch)) {
                      // bypass nesting and 1 char punc
                      style = "meta";
                      stream.next();
                    } else if (ch == "/") {
                      stream.next();
                      if (stream.eat("/")) {
                        stream.skipToEnd();
                        style = "comment";
                        state.tlvCurCtlFlowChar = "S";
                      } else {
                        stream.backUp(1);
                      }
                    } else if (ch == "@") {
                      // pipeline stage
                      style = tlvchScopePrefixes[ch];
                      state.tlvCurCtlFlowChar = "@";
                      stream.next();
                      stream.eatWhile(/[\w\$_]/);
                    } else if (stream.match(/\b[mM]4+/, true)) { // match: function(pattern, consume, caseInsensitive)
                      // m4 pre proc
                      stream.skipTo("(");
                      style = "def";
                      state.tlvCurCtlFlowChar = "M";
                    } else if (ch == "!" && stream.sol()) {
                      // v stmt in tlv region
                      // state.tlvCurCtlFlowChar  = "S";
                      style = "comment";
                      stream.next();
                    } else if (tlvisOperatorChar.test(ch)) {
                      // operators
                      stream.eatWhile(tlvisOperatorChar);
                      style = "operator";
                    } else if (ch == "#") {
                      // phy hier
                      state.tlvCurCtlFlowChar  = (state.tlvCurCtlFlowChar == "")
                        ? ch : state.tlvCurCtlFlowChar;
                      stream.next();
                      stream.eatWhile(/[+-]\d/);
                      style = "tag";
                    } else if (tlvkpScopePrefixs.propertyIsEnumerable(ch)) {
                      // special TLV operators
                      style = tlvkpScopePrefixs[ch];
                      state.tlvCurCtlFlowChar = state.tlvCurCtlFlowChar == "" ? "S" : state.tlvCurCtlFlowChar;  // stmt
                      stream.next();
                      stream.match(/[a-zA-Z_0-9]+/);
                    } else if (style = tlvchScopePrefixes[ch] || false) {
                      // special TLV operators
                      state.tlvCurCtlFlowChar = state.tlvCurCtlFlowChar == "" ? ch : state.tlvCurCtlFlowChar;
                      stream.next();
                      stream.match(/[a-zA-Z_0-9]+/);
                    }
                    if (state.tlvCurCtlFlowChar != vxCurCtlFlowCharValueAtStart) { // flow change
                      vxIndent = tlvGenIndent(stream, state);
                      state.vxIndentRq = vxIndent;
                    }
                  }
                  return style;
                },
                token: function(stream, state) {
                  if (state.vxCodeActive == true && stream.sol() && state.tlvCurCtlFlowChar != "") {
                    state.tlvPrevPrevCtlFlowChar = state.tlvPrevCtlFlowChar;
                    state.tlvPrevCtlFlowChar = state.tlvCurCtlFlowChar;
                    state.tlvCurCtlFlowChar = "";
                  }
                },
                indent: function(state) {
                  return (state.vxCodeActive == true) ? state.vxIndentRq : -1;
                },
                startState: function(state) {
                  state.tlvCurCtlFlowChar = "";
                  state.tlvPrevCtlFlowChar = "";
                  state.tlvPrevPrevCtlFlowChar = "";
                  state.vxCodeActive = true;
                  state.vxIndentRq = 0;
                }
              }
            });
          });
          
      • vhdl
        • index.html
          <!doctype html>
          
          <title>CodeMirror: VHDL mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/edit/matchbrackets.js"></script>
          <script src="vhdl.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">VHDL</a>
            </ul>
          </div>
          
          <article>
          <h2>VHDL mode</h2>
          
          <div><textarea id="code" name="code">
          LIBRARY ieee;
          USE ieee.std_logic_1164.ALL;
          USE ieee.numeric_std.ALL;
          
          ENTITY tb IS
          END tb;
          
          ARCHITECTURE behavior OF tb IS
             --Inputs
             signal a : unsigned(2 downto 0) := (others => '0');
             signal b : unsigned(2 downto 0) := (others => '0');
              --Outputs
             signal a_eq_b : std_logic;
             signal a_le_b : std_logic;
             signal a_gt_b : std_logic;
          
              signal i,j : integer;
          
          BEGIN
          
              -- Instantiate the Unit Under Test (UUT)
             uut: entity work.comparator PORT MAP (
                    a => a,
                    b => b,
                    a_eq_b => a_eq_b,
                    a_le_b => a_le_b,
                    a_gt_b => a_gt_b
                  );
          
             -- Stimulus process
             stim_proc: process
             begin
                  for i in 0 to 8 loop
                      for j in 0 to 8 loop
                          a <= to_unsigned(i,3); --integer to unsigned type conversion
                          b <= to_unsigned(j,3);
                          wait for 10 ns;
                      end loop;
                  end loop;
             end process;
          
          END;
          </textarea></div>
          
          <script>
            var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
              lineNumbers: true,
              matchBrackets: true,
              mode: {
                name: "vhdl",
              }
            });
          </script>
          
          <p>
          Syntax highlighting and indentation for the VHDL language.
          <h2>Configuration options:</h2>
            <ul>
              <li><strong>atoms</strong> - List of atom words. Default: "null"</li>
              <li><strong>hooks</strong> - List of meta hooks. Default: ["`", "$"]</li>
              <li><strong>multiLineStrings</strong> - Whether multi-line strings are accepted. Default: false</li>
            </ul>
          </p>
          
          <p><strong>MIME types defined:</strong> <code>text/x-vhdl</code>.</p>
          </article>
          
        • vhdl.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // Originally written by Alf Nielsen, re-written by Michael Zhou
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          function words(str) {
            var obj = {}, words = str.split(",");
            for (var i = 0; i < words.length; ++i) {
              var allCaps = words[i].toUpperCase();
              var firstCap = words[i].charAt(0).toUpperCase() + words[i].slice(1);
              obj[words[i]] = true;
              obj[allCaps] = true;
              obj[firstCap] = true;
            }
            return obj;
          }
          
          function metaHook(stream) {
            stream.eatWhile(/[\w\$_]/);
            return "meta";
          }
          
          CodeMirror.defineMode("vhdl", function(config, parserConfig) {
            var indentUnit = config.indentUnit,
                atoms = parserConfig.atoms || words("null"),
                hooks = parserConfig.hooks || {"`": metaHook, "$": metaHook},
                multiLineStrings = parserConfig.multiLineStrings;
          
            var keywords = words("abs,access,after,alias,all,and,architecture,array,assert,attribute,begin,block," +
                "body,buffer,bus,case,component,configuration,constant,disconnent,downto,else,elsif,end,end block,end case," +
                "end component,end for,end generate,end if,end loop,end process,end record,end units,entity,exit,file,for," +
                "function,generate,generic,generic map,group,guarded,if,impure,in,inertial,inout,is,label,library,linkage," +
                "literal,loop,map,mod,nand,new,next,nor,null,of,on,open,or,others,out,package,package body,port,port map," +
                "postponed,procedure,process,pure,range,record,register,reject,rem,report,return,rol,ror,select,severity,signal," +
                "sla,sll,sra,srl,subtype,then,to,transport,type,unaffected,units,until,use,variable,wait,when,while,with,xnor,xor");
          
            var blockKeywords = words("architecture,entity,begin,case,port,else,elsif,end,for,function,if");
          
            var isOperatorChar = /[&|~><!\)\(*#%@+\/=?\:;}{,\.\^\-\[\]]/;
            var curPunc;
          
            function tokenBase(stream, state) {
              var ch = stream.next();
              if (hooks[ch]) {
                var result = hooks[ch](stream, state);
                if (result !== false) return result;
              }
              if (ch == '"') {
                state.tokenize = tokenString2(ch);
                return state.tokenize(stream, state);
              }
              if (ch == "'") {
                state.tokenize = tokenString(ch);
                return state.tokenize(stream, state);
              }
              if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
                curPunc = ch;
                return null;
              }
              if (/[\d']/.test(ch)) {
                stream.eatWhile(/[\w\.']/);
                return "number";
              }
              if (ch == "-") {
                if (stream.eat("-")) {
                  stream.skipToEnd();
                  return "comment";
                }
              }
              if (isOperatorChar.test(ch)) {
                stream.eatWhile(isOperatorChar);
                return "operator";
              }
              stream.eatWhile(/[\w\$_]/);
              var cur = stream.current();
              if (keywords.propertyIsEnumerable(cur.toLowerCase())) {
                if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement";
                return "keyword";
              }
              if (atoms.propertyIsEnumerable(cur)) return "atom";
              return "variable";
            }
          
            function tokenString(quote) {
              return function(stream, state) {
                var escaped = false, next, end = false;
                while ((next = stream.next()) != null) {
                  if (next == quote && !escaped) {end = true; break;}
                  escaped = !escaped && next == "--";
                }
                if (end || !(escaped || multiLineStrings))
                  state.tokenize = tokenBase;
                return "string";
              };
            }
            function tokenString2(quote) {
              return function(stream, state) {
                var escaped = false, next, end = false;
                while ((next = stream.next()) != null) {
                  if (next == quote && !escaped) {end = true; break;}
                  escaped = !escaped && next == "--";
                }
                if (end || !(escaped || multiLineStrings))
                  state.tokenize = tokenBase;
                return "string-2";
              };
            }
          
            function Context(indented, column, type, align, prev) {
              this.indented = indented;
              this.column = column;
              this.type = type;
              this.align = align;
              this.prev = prev;
            }
            function pushContext(state, col, type) {
              return state.context = new Context(state.indented, col, type, null, state.context);
            }
            function popContext(state) {
              var t = state.context.type;
              if (t == ")" || t == "]" || t == "}")
                state.indented = state.context.indented;
              return state.context = state.context.prev;
            }
          
            // Interface
            return {
              startState: function(basecolumn) {
                return {
                  tokenize: null,
                  context: new Context((basecolumn || 0) - indentUnit, 0, "top", false),
                  indented: 0,
                  startOfLine: true
                };
              },
          
              token: function(stream, state) {
                var ctx = state.context;
                if (stream.sol()) {
                  if (ctx.align == null) ctx.align = false;
                  state.indented = stream.indentation();
                  state.startOfLine = true;
                }
                if (stream.eatSpace()) return null;
                curPunc = null;
                var style = (state.tokenize || tokenBase)(stream, state);
                if (style == "comment" || style == "meta") return style;
                if (ctx.align == null) ctx.align = true;
          
                if ((curPunc == ";" || curPunc == ":") && ctx.type == "statement") popContext(state);
                else if (curPunc == "{") pushContext(state, stream.column(), "}");
                else if (curPunc == "[") pushContext(state, stream.column(), "]");
                else if (curPunc == "(") pushContext(state, stream.column(), ")");
                else if (curPunc == "}") {
                  while (ctx.type == "statement") ctx = popContext(state);
                  if (ctx.type == "}") ctx = popContext(state);
                  while (ctx.type == "statement") ctx = popContext(state);
                }
                else if (curPunc == ctx.type) popContext(state);
                else if (ctx.type == "}" || ctx.type == "top" || (ctx.type == "statement" && curPunc == "newstatement"))
                  pushContext(state, stream.column(), "statement");
                state.startOfLine = false;
                return style;
              },
          
              indent: function(state, textAfter) {
                if (state.tokenize != tokenBase && state.tokenize != null) return 0;
                var firstChar = textAfter && textAfter.charAt(0), ctx = state.context, closing = firstChar == ctx.type;
                if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : indentUnit);
                else if (ctx.align) return ctx.column + (closing ? 0 : 1);
                else return ctx.indented + (closing ? 0 : indentUnit);
              },
          
              electricChars: "{}"
            };
          });
          
          CodeMirror.defineMIME("text/x-vhdl", "vhdl");
          
          });
          
      • vue
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Vue.js mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="../../addon/mode/overlay.js"></script>
          <script src="../../addon/mode/simple.js"></script>
          <script src="../../addon/selection/selection-pointer.js"></script>
          <script src="../xml/xml.js"></script>
          <script src="../javascript/javascript.js"></script>
          <script src="../css/css.js"></script>
          <script src="../coffeescript/coffeescript.js"></script>
          <script src="../sass/sass.js"></script>
          <script src="../jade/jade.js"></script>
          
          <script src="../handlebars/handlebars.js"></script>
          <script src="../htmlmixed/htmlmixed.js"></script>
          <script src="vue.js"></script>
          <style>.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Vue.js mode</a>
            </ul>
          </div>
          
          <article>
          <h2>Vue.js mode</h2>
          <form><textarea id="code" name="code">
          <template>
            <div class="sass">Im am a {{mustache-like}} template</div>
          </template>
          
          <script lang="coffee">
            module.exports =
              props: ['one', 'two', 'three']
          </script>
          
          <style lang="sass">
          .sass
            font-size: 18px
          </style>
          
          </textarea></form>
              <script>
                // Define an extended mixed-mode that understands vbscript and
                // leaves mustache/handlebars embedded templates in html mode
                var mixedMode = {
                  name: "vue"
                };
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  mode: mixedMode,
                  selectionPointer: true
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-vue</code></p>
          
            </article>
          
        • vue.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function (mod) {
            "use strict";
            if (typeof exports === "object" && typeof module === "object") {// CommonJS
              mod(require("../../lib/codemirror"),
                  require("../../addon/mode/overlay"),
                  require("../xml/xml"),
                  require("../javascript/javascript"),
                  require("../coffeescript/coffeescript"),
                  require("../css/css"),
                  require("../sass/sass"),
                  require("../stylus/stylus"),
                  require("../jade/jade"),
                  require("../handlebars/handlebars"));
            } else if (typeof define === "function" && define.amd) { // AMD
              define(["../../lib/codemirror",
                      "../../addon/mode/overlay",
                      "../xml/xml",
                      "../javascript/javascript",
                      "../coffeescript/coffeescript",
                      "../css/css",
                      "../sass/sass",
                      "../stylus/stylus",
                      "../jade/jade",
                      "../handlebars/handlebars"], mod);
            } else { // Plain browser env
              mod(CodeMirror);
            }
          })(function (CodeMirror) {
            var tagLanguages = {
              script: [
                ["lang", /coffee(script)?/, "coffeescript"],
                ["type", /^(?:text|application)\/(?:x-)?coffee(?:script)?$/, "coffeescript"]
              ],
              style: [
                ["lang", /^stylus$/i, "stylus"],
                ["lang", /^sass$/i, "sass"],
                ["type", /^(text\/)?(x-)?styl(us)?$/i, "stylus"],
                ["type", /^text\/sass/i, "sass"]
              ],
              template: [
                ["lang", /^vue-template$/i, "vue"],
                ["lang", /^jade$/i, "jade"],
                ["lang", /^handlebars$/i, "handlebars"],
                ["type", /^(text\/)?(x-)?jade$/i, "jade"],
                ["type", /^text\/x-handlebars-template$/i, "handlebars"],
                [null, null, "vue-template"]
              ]
            };
          
            CodeMirror.defineMode("vue-template", function (config, parserConfig) {
              var mustacheOverlay = {
                token: function (stream) {
                  if (stream.match(/^\{\{.*?\}\}/)) return "meta mustache";
                  while (stream.next() && !stream.match("{{", false)) {}
                  return null;
                }
              };
              return CodeMirror.overlayMode(CodeMirror.getMode(config, parserConfig.backdrop || "text/html"), mustacheOverlay);
            });
          
            CodeMirror.defineMode("vue", function (config) {
              return CodeMirror.getMode(config, {name: "htmlmixed", tags: tagLanguages});
            }, "htmlmixed", "xml", "javascript", "coffeescript", "css", "sass", "stylus", "jade", "handlebars");
          
            CodeMirror.defineMIME("script/x-vue", "vue");
          });
          
      • xml
        • index.html
          <!doctype html>
          
          <title>CodeMirror: XML mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="xml.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">XML</a>
            </ul>
          </div>
          
          <article>
          <h2>XML mode</h2>
          <form><textarea id="code" name="code">
          &lt;html style="color: green"&gt;
            &lt;!-- this is a comment --&gt;
            &lt;head&gt;
              &lt;title&gt;HTML Example&lt;/title&gt;
            &lt;/head&gt;
            &lt;body&gt;
              The indentation tries to be &lt;em&gt;somewhat &amp;quot;do what
              I mean&amp;quot;&lt;/em&gt;... but might not match your style.
            &lt;/body&gt;
          &lt;/html&gt;
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  mode: "text/html",
                  lineNumbers: true
                });
              </script>
              <p>The XML mode supports two configuration parameters:</p>
              <dl>
                <dt><code>htmlMode (boolean)</code></dt>
                <dd>This switches the mode to parse HTML instead of XML. This
                means attributes do not have to be quoted, and some elements
                (such as <code>br</code>) do not require a closing tag.</dd>
                <dt><code>alignCDATA (boolean)</code></dt>
                <dd>Setting this to true will force the opening tag of CDATA
                blocks to not be indented.</dd>
              </dl>
          
              <p><strong>MIME types defined:</strong> <code>application/xml</code>, <code>text/html</code>.</p>
            </article>
          
        • test.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function() {
            var mode = CodeMirror.getMode({indentUnit: 2}, "xml"), mname = "xml";
            function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), mname); }
          
            MT("matching",
               "[tag&bracket <][tag top][tag&bracket >]",
               "  text",
               "  [tag&bracket <][tag inner][tag&bracket />]",
               "[tag&bracket </][tag top][tag&bracket >]");
          
            MT("nonmatching",
               "[tag&bracket <][tag top][tag&bracket >]",
               "  [tag&bracket <][tag inner][tag&bracket />]",
               "  [tag&bracket </][tag&error tip][tag&bracket&error >]");
          
            MT("doctype",
               "[meta <!doctype foobar>]",
               "[tag&bracket <][tag top][tag&bracket />]");
          
            MT("cdata",
               "[tag&bracket <][tag top][tag&bracket >]",
               "  [atom <![CDATA[foo]",
               "[atom barbazguh]]]]>]",
               "[tag&bracket </][tag top][tag&bracket >]");
          
            // HTML tests
            mode = CodeMirror.getMode({indentUnit: 2}, "text/html");
          
            MT("selfclose",
               "[tag&bracket <][tag html][tag&bracket >]",
               "  [tag&bracket <][tag link] [attribute rel]=[string stylesheet] [attribute href]=[string \"/foobar\"][tag&bracket >]",
               "[tag&bracket </][tag html][tag&bracket >]");
          
            MT("list",
               "[tag&bracket <][tag ol][tag&bracket >]",
               "  [tag&bracket <][tag li][tag&bracket >]one",
               "  [tag&bracket <][tag li][tag&bracket >]two",
               "[tag&bracket </][tag ol][tag&bracket >]");
          
            MT("valueless",
               "[tag&bracket <][tag input] [attribute type]=[string checkbox] [attribute checked][tag&bracket />]");
          
            MT("pThenArticle",
               "[tag&bracket <][tag p][tag&bracket >]",
               "  foo",
               "[tag&bracket <][tag article][tag&bracket >]bar");
          
          })();
          
        • xml.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("xml", function(config, parserConfig) {
            var indentUnit = config.indentUnit;
            var multilineTagIndentFactor = parserConfig.multilineTagIndentFactor || 1;
            var multilineTagIndentPastTag = parserConfig.multilineTagIndentPastTag;
            if (multilineTagIndentPastTag == null) multilineTagIndentPastTag = true;
          
            var Kludges = parserConfig.htmlMode ? {
              autoSelfClosers: {'area': true, 'base': true, 'br': true, 'col': true, 'command': true,
                                'embed': true, 'frame': true, 'hr': true, 'img': true, 'input': true,
                                'keygen': true, 'link': true, 'meta': true, 'param': true, 'source': true,
                                'track': true, 'wbr': true, 'menuitem': true},
              implicitlyClosed: {'dd': true, 'li': true, 'optgroup': true, 'option': true, 'p': true,
                                 'rp': true, 'rt': true, 'tbody': true, 'td': true, 'tfoot': true,
                                 'th': true, 'tr': true},
              contextGrabbers: {
                'dd': {'dd': true, 'dt': true},
                'dt': {'dd': true, 'dt': true},
                'li': {'li': true},
                'option': {'option': true, 'optgroup': true},
                'optgroup': {'optgroup': true},
                'p': {'address': true, 'article': true, 'aside': true, 'blockquote': true, 'dir': true,
                      'div': true, 'dl': true, 'fieldset': true, 'footer': true, 'form': true,
                      'h1': true, 'h2': true, 'h3': true, 'h4': true, 'h5': true, 'h6': true,
                      'header': true, 'hgroup': true, 'hr': true, 'menu': true, 'nav': true, 'ol': true,
                      'p': true, 'pre': true, 'section': true, 'table': true, 'ul': true},
                'rp': {'rp': true, 'rt': true},
                'rt': {'rp': true, 'rt': true},
                'tbody': {'tbody': true, 'tfoot': true},
                'td': {'td': true, 'th': true},
                'tfoot': {'tbody': true},
                'th': {'td': true, 'th': true},
                'thead': {'tbody': true, 'tfoot': true},
                'tr': {'tr': true}
              },
              doNotIndent: {"pre": true},
              allowUnquoted: true,
              allowMissing: true,
              caseFold: true
            } : {
              autoSelfClosers: {},
              implicitlyClosed: {},
              contextGrabbers: {},
              doNotIndent: {},
              allowUnquoted: false,
              allowMissing: false,
              caseFold: false
            };
            var alignCDATA = parserConfig.alignCDATA;
          
            // Return variables for tokenizers
            var type, setStyle;
          
            function inText(stream, state) {
              function chain(parser) {
                state.tokenize = parser;
                return parser(stream, state);
              }
          
              var ch = stream.next();
              if (ch == "<") {
                if (stream.eat("!")) {
                  if (stream.eat("[")) {
                    if (stream.match("CDATA[")) return chain(inBlock("atom", "]]>"));
                    else return null;
                  } else if (stream.match("--")) {
                    return chain(inBlock("comment", "-->"));
                  } else if (stream.match("DOCTYPE", true, true)) {
                    stream.eatWhile(/[\w\._\-]/);
                    return chain(doctype(1));
                  } else {
                    return null;
                  }
                } else if (stream.eat("?")) {
                  stream.eatWhile(/[\w\._\-]/);
                  state.tokenize = inBlock("meta", "?>");
                  return "meta";
                } else {
                  type = stream.eat("/") ? "closeTag" : "openTag";
                  state.tokenize = inTag;
                  return "tag bracket";
                }
              } else if (ch == "&") {
                var ok;
                if (stream.eat("#")) {
                  if (stream.eat("x")) {
                    ok = stream.eatWhile(/[a-fA-F\d]/) && stream.eat(";");
                  } else {
                    ok = stream.eatWhile(/[\d]/) && stream.eat(";");
                  }
                } else {
                  ok = stream.eatWhile(/[\w\.\-:]/) && stream.eat(";");
                }
                return ok ? "atom" : "error";
              } else {
                stream.eatWhile(/[^&<]/);
                return null;
              }
            }
            inText.isInText = true;
          
            function inTag(stream, state) {
              var ch = stream.next();
              if (ch == ">" || (ch == "/" && stream.eat(">"))) {
                state.tokenize = inText;
                type = ch == ">" ? "endTag" : "selfcloseTag";
                return "tag bracket";
              } else if (ch == "=") {
                type = "equals";
                return null;
              } else if (ch == "<") {
                state.tokenize = inText;
                state.state = baseState;
                state.tagName = state.tagStart = null;
                var next = state.tokenize(stream, state);
                return next ? next + " tag error" : "tag error";
              } else if (/[\'\"]/.test(ch)) {
                state.tokenize = inAttribute(ch);
                state.stringStartCol = stream.column();
                return state.tokenize(stream, state);
              } else {
                stream.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/);
                return "word";
              }
            }
          
            function inAttribute(quote) {
              var closure = function(stream, state) {
                while (!stream.eol()) {
                  if (stream.next() == quote) {
                    state.tokenize = inTag;
                    break;
                  }
                }
                return "string";
              };
              closure.isInAttribute = true;
              return closure;
            }
          
            function inBlock(style, terminator) {
              return function(stream, state) {
                while (!stream.eol()) {
                  if (stream.match(terminator)) {
                    state.tokenize = inText;
                    break;
                  }
                  stream.next();
                }
                return style;
              };
            }
            function doctype(depth) {
              return function(stream, state) {
                var ch;
                while ((ch = stream.next()) != null) {
                  if (ch == "<") {
                    state.tokenize = doctype(depth + 1);
                    return state.tokenize(stream, state);
                  } else if (ch == ">") {
                    if (depth == 1) {
                      state.tokenize = inText;
                      break;
                    } else {
                      state.tokenize = doctype(depth - 1);
                      return state.tokenize(stream, state);
                    }
                  }
                }
                return "meta";
              };
            }
          
            function Context(state, tagName, startOfLine) {
              this.prev = state.context;
              this.tagName = tagName;
              this.indent = state.indented;
              this.startOfLine = startOfLine;
              if (Kludges.doNotIndent.hasOwnProperty(tagName) || (state.context && state.context.noIndent))
                this.noIndent = true;
            }
            function popContext(state) {
              if (state.context) state.context = state.context.prev;
            }
            function maybePopContext(state, nextTagName) {
              var parentTagName;
              while (true) {
                if (!state.context) {
                  return;
                }
                parentTagName = state.context.tagName;
                if (!Kludges.contextGrabbers.hasOwnProperty(parentTagName) ||
                    !Kludges.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)) {
                  return;
                }
                popContext(state);
              }
            }
          
            function baseState(type, stream, state) {
              if (type == "openTag") {
                state.tagStart = stream.column();
                return tagNameState;
              } else if (type == "closeTag") {
                return closeTagNameState;
              } else {
                return baseState;
              }
            }
            function tagNameState(type, stream, state) {
              if (type == "word") {
                state.tagName = stream.current();
                setStyle = "tag";
                return attrState;
              } else {
                setStyle = "error";
                return tagNameState;
              }
            }
            function closeTagNameState(type, stream, state) {
              if (type == "word") {
                var tagName = stream.current();
                if (state.context && state.context.tagName != tagName &&
                    Kludges.implicitlyClosed.hasOwnProperty(state.context.tagName))
                  popContext(state);
                if (state.context && state.context.tagName == tagName) {
                  setStyle = "tag";
                  return closeState;
                } else {
                  setStyle = "tag error";
                  return closeStateErr;
                }
              } else {
                setStyle = "error";
                return closeStateErr;
              }
            }
          
            function closeState(type, _stream, state) {
              if (type != "endTag") {
                setStyle = "error";
                return closeState;
              }
              popContext(state);
              return baseState;
            }
            function closeStateErr(type, stream, state) {
              setStyle = "error";
              return closeState(type, stream, state);
            }
          
            function attrState(type, _stream, state) {
              if (type == "word") {
                setStyle = "attribute";
                return attrEqState;
              } else if (type == "endTag" || type == "selfcloseTag") {
                var tagName = state.tagName, tagStart = state.tagStart;
                state.tagName = state.tagStart = null;
                if (type == "selfcloseTag" ||
                    Kludges.autoSelfClosers.hasOwnProperty(tagName)) {
                  maybePopContext(state, tagName);
                } else {
                  maybePopContext(state, tagName);
                  state.context = new Context(state, tagName, tagStart == state.indented);
                }
                return baseState;
              }
              setStyle = "error";
              return attrState;
            }
            function attrEqState(type, stream, state) {
              if (type == "equals") return attrValueState;
              if (!Kludges.allowMissing) setStyle = "error";
              return attrState(type, stream, state);
            }
            function attrValueState(type, stream, state) {
              if (type == "string") return attrContinuedState;
              if (type == "word" && Kludges.allowUnquoted) {setStyle = "string"; return attrState;}
              setStyle = "error";
              return attrState(type, stream, state);
            }
            function attrContinuedState(type, stream, state) {
              if (type == "string") return attrContinuedState;
              return attrState(type, stream, state);
            }
          
            return {
              startState: function() {
                return {tokenize: inText,
                        state: baseState,
                        indented: 0,
                        tagName: null, tagStart: null,
                        context: null};
              },
          
              token: function(stream, state) {
                if (!state.tagName && stream.sol())
                  state.indented = stream.indentation();
          
                if (stream.eatSpace()) return null;
                type = null;
                var style = state.tokenize(stream, state);
                if ((style || type) && style != "comment") {
                  setStyle = null;
                  state.state = state.state(type || style, stream, state);
                  if (setStyle)
                    style = setStyle == "error" ? style + " error" : setStyle;
                }
                return style;
              },
          
              indent: function(state, textAfter, fullLine) {
                var context = state.context;
                // Indent multi-line strings (e.g. css).
                if (state.tokenize.isInAttribute) {
                  if (state.tagStart == state.indented)
                    return state.stringStartCol + 1;
                  else
                    return state.indented + indentUnit;
                }
                if (context && context.noIndent) return CodeMirror.Pass;
                if (state.tokenize != inTag && state.tokenize != inText)
                  return fullLine ? fullLine.match(/^(\s*)/)[0].length : 0;
                // Indent the starts of attribute names.
                if (state.tagName) {
                  if (multilineTagIndentPastTag)
                    return state.tagStart + state.tagName.length + 2;
                  else
                    return state.tagStart + indentUnit * multilineTagIndentFactor;
                }
                if (alignCDATA && /<!\[CDATA\[/.test(textAfter)) return 0;
                var tagAfter = textAfter && /^<(\/)?([\w_:\.-]*)/.exec(textAfter);
                if (tagAfter && tagAfter[1]) { // Closing tag spotted
                  while (context) {
                    if (context.tagName == tagAfter[2]) {
                      context = context.prev;
                      break;
                    } else if (Kludges.implicitlyClosed.hasOwnProperty(context.tagName)) {
                      context = context.prev;
                    } else {
                      break;
                    }
                  }
                } else if (tagAfter) { // Opening tag spotted
                  while (context) {
                    var grabbers = Kludges.contextGrabbers[context.tagName];
                    if (grabbers && grabbers.hasOwnProperty(tagAfter[2]))
                      context = context.prev;
                    else
                      break;
                  }
                }
                while (context && !context.startOfLine)
                  context = context.prev;
                if (context) return context.indent + indentUnit;
                else return 0;
              },
          
              electricInput: /<\/[\s\w:]+>$/,
              blockCommentStart: "<!--",
              blockCommentEnd: "-->",
          
              configuration: parserConfig.htmlMode ? "html" : "xml",
              helperType: parserConfig.htmlMode ? "html" : "xml"
            };
          });
          
          CodeMirror.defineMIME("text/xml", "xml");
          CodeMirror.defineMIME("application/xml", "xml");
          if (!CodeMirror.mimeModes.hasOwnProperty("text/html"))
            CodeMirror.defineMIME("text/html", {name: "xml", htmlMode: true});
          
          });
          
      • xquery
        • index.html
          <!doctype html>
          
          <title>CodeMirror: XQuery mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <link rel="stylesheet" href="../../theme/xq-dark.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="xquery.js"></script>
          <style type="text/css">
          	.CodeMirror {
          	  border-top: 1px solid black; border-bottom: 1px solid black;
          	  height:400px;
          	}
              </style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">XQuery</a>
            </ul>
          </div>
          
          <article>
          <h2>XQuery mode</h2>
           
           
          <div class="cm-s-default"> 
          	<textarea id="code" name="code"> 
          xquery version &quot;1.0-ml&quot;;
          (: this is
           : a 
             "comment" :)
          let $let := &lt;x attr=&quot;value&quot;&gt;&quot;test&quot;&lt;func&gt;function() $var {function()} {$var}&lt;/func&gt;&lt;/x&gt;
          let $joe:=1
          return element element {
          	attribute attribute { 1 },
          	element test { &#39;a&#39; }, 
          	attribute foo { &quot;bar&quot; },
          	fn:doc()[ foo/@bar eq $let ],
          	//x }    
           
          (: a more 'evil' test :)
          (: Modified Blakeley example (: with nested comment :) ... :)
          declare private function local:declare() {()};
          declare private function local:private() {()};
          declare private function local:function() {()};
          declare private function local:local() {()};
          let $let := &lt;let&gt;let $let := &quot;let&quot;&lt;/let&gt;
          return element element {
          	attribute attribute { try { xdmp:version() } catch($e) { xdmp:log($e) } },
          	attribute fn:doc { &quot;bar&quot; castable as xs:string },
          	element text { text { &quot;text&quot; } },
          	fn:doc()[ child::eq/(@bar | attribute::attribute) eq $let ],
          	//fn:doc
          }
          
          
          
          xquery version &quot;1.0-ml&quot;;
          
          (: Copyright 2006-2010 Mark Logic Corporation. :)
          
          (:
           : Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
           : you may not use this file except in compliance with the License.
           : You may obtain a copy of the License at
           :
           :     http://www.apache.org/licenses/LICENSE-2.0
           :
           : Unless required by applicable law or agreed to in writing, software
           : distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
           : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
           : See the License for the specific language governing permissions and
           : limitations under the License.
           :)
          
          module namespace json = &quot;http://marklogic.com/json&quot;;
          declare default function namespace &quot;http://www.w3.org/2005/xpath-functions&quot;;
          
          (: Need to backslash escape any double quotes, backslashes, and newlines :)
          declare function json:escape($s as xs:string) as xs:string {
            let $s := replace($s, &quot;\\&quot;, &quot;\\\\&quot;)
            let $s := replace($s, &quot;&quot;&quot;&quot;, &quot;\\&quot;&quot;&quot;)
            let $s := replace($s, codepoints-to-string((13, 10)), &quot;\\n&quot;)
            let $s := replace($s, codepoints-to-string(13), &quot;\\n&quot;)
            let $s := replace($s, codepoints-to-string(10), &quot;\\n&quot;)
            return $s
          };
          
          declare function json:atomize($x as element()) as xs:string {
            if (count($x/node()) = 0) then 'null'
            else if ($x/@type = &quot;number&quot;) then
              let $castable := $x castable as xs:float or
                               $x castable as xs:double or
                               $x castable as xs:decimal
              return
              if ($castable) then xs:string($x)
              else error(concat(&quot;Not a number: &quot;, xdmp:describe($x)))
            else if ($x/@type = &quot;boolean&quot;) then
              let $castable := $x castable as xs:boolean
              return
              if ($castable) then xs:string(xs:boolean($x))
              else error(concat(&quot;Not a boolean: &quot;, xdmp:describe($x)))
            else concat('&quot;', json:escape($x), '&quot;')
          };
          
          (: Print the thing that comes after the colon :)
          declare function json:print-value($x as element()) as xs:string {
            if (count($x/*) = 0) then
              json:atomize($x)
            else if ($x/@quote = &quot;true&quot;) then
              concat('&quot;', json:escape(xdmp:quote($x/node())), '&quot;')
            else
              string-join(('{',
                string-join(for $i in $x/* return json:print-name-value($i), &quot;,&quot;),
              '}'), &quot;&quot;)
          };
          
          (: Print the name and value both :)
          declare function json:print-name-value($x as element()) as xs:string? {
            let $name := name($x)
            let $first-in-array :=
              count($x/preceding-sibling::*[name(.) = $name]) = 0 and
              (count($x/following-sibling::*[name(.) = $name]) &gt; 0 or $x/@array = &quot;true&quot;)
            let $later-in-array := count($x/preceding-sibling::*[name(.) = $name]) &gt; 0
            return
          
            if ($later-in-array) then
              ()  (: I was handled previously :)
            else if ($first-in-array) then
              string-join(('&quot;', json:escape($name), '&quot;:[',
                string-join((for $i in ($x, $x/following-sibling::*[name(.) = $name]) return json:print-value($i)), &quot;,&quot;),
              ']'), &quot;&quot;)
             else
               string-join(('&quot;', json:escape($name), '&quot;:', json:print-value($x)), &quot;&quot;)
          };
          
          (:~
            Transforms an XML element into a JSON string representation.  See http://json.org.
            &lt;p/&gt;
            Sample usage:
            &lt;pre&gt;
              xquery version &quot;1.0-ml&quot;;
              import module namespace json=&quot;http://marklogic.com/json&quot; at &quot;json.xqy&quot;;
              json:serialize(&amp;lt;foo&amp;gt;&amp;lt;bar&amp;gt;kid&amp;lt;/bar&amp;gt;&amp;lt;/foo&amp;gt;)
            &lt;/pre&gt;
            Sample transformations:
            &lt;pre&gt;
            &amp;lt;e/&amp;gt; becomes {&quot;e&quot;:null}
            &amp;lt;e&amp;gt;text&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:&quot;text&quot;}
            &amp;lt;e&amp;gt;quote &quot; escaping&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:&quot;quote \&quot; escaping&quot;}
            &amp;lt;e&amp;gt;backslash \ escaping&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:&quot;backslash \\ escaping&quot;}
            &amp;lt;e&amp;gt;&amp;lt;a&amp;gt;text1&amp;lt;/a&amp;gt;&amp;lt;b&amp;gt;text2&amp;lt;/b&amp;gt;&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:{&quot;a&quot;:&quot;text1&quot;,&quot;b&quot;:&quot;text2&quot;}}
            &amp;lt;e&amp;gt;&amp;lt;a&amp;gt;text1&amp;lt;/a&amp;gt;&amp;lt;a&amp;gt;text2&amp;lt;/a&amp;gt;&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:{&quot;a&quot;:[&quot;text1&quot;,&quot;text2&quot;]}}
            &amp;lt;e&amp;gt;&amp;lt;a array=&quot;true&quot;&amp;gt;text1&amp;lt;/a&amp;gt;&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:{&quot;a&quot;:[&quot;text1&quot;]}}
            &amp;lt;e&amp;gt;&amp;lt;a type=&quot;boolean&quot;&amp;gt;false&amp;lt;/a&amp;gt;&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:{&quot;a&quot;:false}}
            &amp;lt;e&amp;gt;&amp;lt;a type=&quot;number&quot;&amp;gt;123.5&amp;lt;/a&amp;gt;&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:{&quot;a&quot;:123.5}}
            &amp;lt;e quote=&quot;true&quot;&amp;gt;&amp;lt;div attrib=&quot;value&quot;/&amp;gt;&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:&quot;&amp;lt;div attrib=\&quot;value\&quot;/&amp;gt;&quot;}
            &lt;/pre&gt;
            &lt;p/&gt;
            Namespace URIs are ignored.  Namespace prefixes are included in the JSON name.
            &lt;p/&gt;
            Attributes are ignored, except for the special attribute @array=&quot;true&quot; that
            indicates the JSON serialization should write the node, even if single, as an
            array, and the attribute @type that can be set to &quot;boolean&quot; or &quot;number&quot; to
            dictate the value should be written as that type (unquoted).  There's also
            an @quote attribute that when set to true writes the inner content as text
            rather than as structured JSON, useful for sending some XHTML over the
            wire.
            &lt;p/&gt;
            Text nodes within mixed content are ignored.
          
            @param $x Element node to convert
            @return String holding JSON serialized representation of $x
          
            @author Jason Hunter
            @version 1.0.1
            
            Ported to xquery 1.0-ml; double escaped backslashes in json:escape
          :)
          declare function json:serialize($x as element())  as xs:string {
            string-join(('{', json:print-name-value($x), '}'), &quot;&quot;)
          };
            </textarea> 
          </div> 
           
              <script> 
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true,
                  matchBrackets: true,
                  theme: "xq-dark"
                });
              </script> 
           
              <p><strong>MIME types defined:</strong> <code>application/xquery</code>.</p> 
           
              <p>Development of the CodeMirror XQuery mode was sponsored by 
                <a href="http://marklogic.com">MarkLogic</a> and developed by 
                <a href="https://twitter.com/mbrevoort">Mike Brevoort</a>.
              </p>
           
            </article>
          
        • test.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          // Don't take these too seriously -- the expected results appear to be
          // based on the results of actual runs without any serious manual
          // verification. If a change you made causes them to fail, the test is
          // as likely to wrong as the code.
          
          (function() {
            var mode = CodeMirror.getMode({tabSize: 4}, "xquery");
            function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
          
            MT("eviltest",
               "[keyword xquery] [keyword version] [variable &quot;1][keyword .][atom 0][keyword -][variable ml&quot;][def&variable ;]      [comment (: this is       : a          \"comment\" :)]",
               "      [keyword let] [variable $let] [keyword :=] [variable &lt;x] [variable attr][keyword =][variable &quot;value&quot;&gt;&quot;test&quot;&lt;func&gt][def&variable ;function]() [variable $var] {[keyword function]()} {[variable $var]}[variable &lt;][keyword /][variable func&gt;&lt;][keyword /][variable x&gt;]",
               "      [keyword let] [variable $joe][keyword :=][atom 1]",
               "      [keyword return] [keyword element] [variable element] {",
               "          [keyword attribute] [variable attribute] { [atom 1] },",
               "          [keyword element] [variable test] { [variable &#39;a&#39;] },           [keyword attribute] [variable foo] { [variable &quot;bar&quot;] },",
               "          [def&variable fn:doc]()[[ [variable foo][keyword /][variable @bar] [keyword eq] [variable $let] ]],",
               "          [keyword //][variable x] }                 [comment (: a more 'evil' test :)]",
               "      [comment (: Modified Blakeley example (: with nested comment :) ... :)]",
               "      [keyword declare] [keyword private] [keyword function] [def&variable local:declare]() {()}[variable ;]",
               "      [keyword declare] [keyword private] [keyword function] [def&variable local:private]() {()}[variable ;]",
               "      [keyword declare] [keyword private] [keyword function] [def&variable local:function]() {()}[variable ;]",
               "      [keyword declare] [keyword private] [keyword function] [def&variable local:local]() {()}[variable ;]",
               "      [keyword let] [variable $let] [keyword :=] [variable &lt;let&gt;let] [variable $let] [keyword :=] [variable &quot;let&quot;&lt;][keyword /let][variable &gt;]",
               "      [keyword return] [keyword element] [variable element] {",
               "          [keyword attribute] [variable attribute] { [keyword try] { [def&variable xdmp:version]() } [keyword catch]([variable $e]) { [def&variable xdmp:log]([variable $e]) } },",
               "          [keyword attribute] [variable fn:doc] { [variable &quot;bar&quot;] [variable castable] [keyword as] [atom xs:string] },",
               "          [keyword element] [variable text] { [keyword text] { [variable &quot;text&quot;] } },",
               "          [def&variable fn:doc]()[[ [qualifier child::][variable eq][keyword /]([variable @bar] [keyword |] [qualifier attribute::][variable attribute]) [keyword eq] [variable $let] ]],",
               "          [keyword //][variable fn:doc]",
               "      }");
          
            MT("testEmptySequenceKeyword",
               "[string \"foo\"] [keyword instance] [keyword of] [keyword empty-sequence]()");
          
            MT("testMultiAttr",
               "[tag <p ][attribute a1]=[string \"foo\"] [attribute a2]=[string \"bar\"][tag >][variable hello] [variable world][tag </p>]");
          
            MT("test namespaced variable",
               "[keyword declare] [keyword namespace] [variable e] [keyword =] [string \"http://example.com/ANamespace\"][variable ;declare] [keyword variable] [variable $e:exampleComThisVarIsNotRecognized] [keyword as] [keyword element]([keyword *]) [variable external;]");
          
            MT("test EQName variable",
               "[keyword declare] [keyword variable] [variable $\"http://www.example.com/ns/my\":var] [keyword :=] [atom 12][variable ;]",
               "[tag <out>]{[variable $\"http://www.example.com/ns/my\":var]}[tag </out>]");
          
            MT("test EQName function",
               "[keyword declare] [keyword function] [def&variable \"http://www.example.com/ns/my\":fn] ([variable $a] [keyword as] [atom xs:integer]) [keyword as] [atom xs:integer] {",
               "   [variable $a] [keyword +] [atom 2]",
               "}[variable ;]",
               "[tag <out>]{[def&variable \"http://www.example.com/ns/my\":fn]([atom 12])}[tag </out>]");
          
            MT("test EQName function with single quotes",
               "[keyword declare] [keyword function] [def&variable 'http://www.example.com/ns/my':fn] ([variable $a] [keyword as] [atom xs:integer]) [keyword as] [atom xs:integer] {",
               "   [variable $a] [keyword +] [atom 2]",
               "}[variable ;]",
               "[tag <out>]{[def&variable 'http://www.example.com/ns/my':fn]([atom 12])}[tag </out>]");
          
            MT("testProcessingInstructions",
               "[def&variable data]([comment&meta <?target content?>]) [keyword instance] [keyword of] [atom xs:string]");
          
            MT("testQuoteEscapeDouble",
               "[keyword let] [variable $rootfolder] [keyword :=] [string \"c:\\builds\\winnt\\HEAD\\qa\\scripts\\\"]",
               "[keyword let] [variable $keysfolder] [keyword :=] [def&variable concat]([variable $rootfolder], [string \"keys\\\"])");
          })();
          
        • xquery.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("xquery", function() {
          
            // The keywords object is set to the result of this self executing
            // function. Each keyword is a property of the keywords object whose
            // value is {type: atype, style: astyle}
            var keywords = function(){
              // conveinence functions used to build keywords object
              function kw(type) {return {type: type, style: "keyword"};}
              var A = kw("keyword a")
                , B = kw("keyword b")
                , C = kw("keyword c")
                , operator = kw("operator")
                , atom = {type: "atom", style: "atom"}
                , punctuation = {type: "punctuation", style: null}
                , qualifier = {type: "axis_specifier", style: "qualifier"};
          
              // kwObj is what is return from this function at the end
              var kwObj = {
                'if': A, 'switch': A, 'while': A, 'for': A,
                'else': B, 'then': B, 'try': B, 'finally': B, 'catch': B,
                'element': C, 'attribute': C, 'let': C, 'implements': C, 'import': C, 'module': C, 'namespace': C,
                'return': C, 'super': C, 'this': C, 'throws': C, 'where': C, 'private': C,
                ',': punctuation,
                'null': atom, 'fn:false()': atom, 'fn:true()': atom
              };
          
              // a list of 'basic' keywords. For each add a property to kwObj with the value of
              // {type: basic[i], style: "keyword"} e.g. 'after' --> {type: "after", style: "keyword"}
              var basic = ['after','ancestor','ancestor-or-self','and','as','ascending','assert','attribute','before',
              'by','case','cast','child','comment','declare','default','define','descendant','descendant-or-self',
              'descending','document','document-node','element','else','eq','every','except','external','following',
              'following-sibling','follows','for','function','if','import','in','instance','intersect','item',
              'let','module','namespace','node','node','of','only','or','order','parent','precedes','preceding',
              'preceding-sibling','processing-instruction','ref','return','returns','satisfies','schema','schema-element',
              'self','some','sortby','stable','text','then','to','treat','typeswitch','union','variable','version','where',
              'xquery', 'empty-sequence'];
              for(var i=0, l=basic.length; i < l; i++) { kwObj[basic[i]] = kw(basic[i]);};
          
              // a list of types. For each add a property to kwObj with the value of
              // {type: "atom", style: "atom"}
              var types = ['xs:string', 'xs:float', 'xs:decimal', 'xs:double', 'xs:integer', 'xs:boolean', 'xs:date', 'xs:dateTime',
              'xs:time', 'xs:duration', 'xs:dayTimeDuration', 'xs:time', 'xs:yearMonthDuration', 'numeric', 'xs:hexBinary',
              'xs:base64Binary', 'xs:anyURI', 'xs:QName', 'xs:byte','xs:boolean','xs:anyURI','xf:yearMonthDuration'];
              for(var i=0, l=types.length; i < l; i++) { kwObj[types[i]] = atom;};
          
              // each operator will add a property to kwObj with value of {type: "operator", style: "keyword"}
              var operators = ['eq', 'ne', 'lt', 'le', 'gt', 'ge', ':=', '=', '>', '>=', '<', '<=', '.', '|', '?', 'and', 'or', 'div', 'idiv', 'mod', '*', '/', '+', '-'];
              for(var i=0, l=operators.length; i < l; i++) { kwObj[operators[i]] = operator;};
          
              // each axis_specifiers will add a property to kwObj with value of {type: "axis_specifier", style: "qualifier"}
              var axis_specifiers = ["self::", "attribute::", "child::", "descendant::", "descendant-or-self::", "parent::",
              "ancestor::", "ancestor-or-self::", "following::", "preceding::", "following-sibling::", "preceding-sibling::"];
              for(var i=0, l=axis_specifiers.length; i < l; i++) { kwObj[axis_specifiers[i]] = qualifier; };
          
              return kwObj;
            }();
          
            function chain(stream, state, f) {
              state.tokenize = f;
              return f(stream, state);
            }
          
            // the primary mode tokenizer
            function tokenBase(stream, state) {
              var ch = stream.next(),
                  mightBeFunction = false,
                  isEQName = isEQNameAhead(stream);
          
              // an XML tag (if not in some sub, chained tokenizer)
              if (ch == "<") {
                if(stream.match("!--", true))
                  return chain(stream, state, tokenXMLComment);
          
                if(stream.match("![CDATA", false)) {
                  state.tokenize = tokenCDATA;
                  return "tag";
                }
          
                if(stream.match("?", false)) {
                  return chain(stream, state, tokenPreProcessing);
                }
          
                var isclose = stream.eat("/");
                stream.eatSpace();
                var tagName = "", c;
                while ((c = stream.eat(/[^\s\u00a0=<>\"\'\/?]/))) tagName += c;
          
                return chain(stream, state, tokenTag(tagName, isclose));
              }
              // start code block
              else if(ch == "{") {
                pushStateStack(state,{ type: "codeblock"});
                return null;
              }
              // end code block
              else if(ch == "}") {
                popStateStack(state);
                return null;
              }
              // if we're in an XML block
              else if(isInXmlBlock(state)) {
                if(ch == ">")
                  return "tag";
                else if(ch == "/" && stream.eat(">")) {
                  popStateStack(state);
                  return "tag";
                }
                else
                  return "variable";
              }
              // if a number
              else if (/\d/.test(ch)) {
                stream.match(/^\d*(?:\.\d*)?(?:E[+\-]?\d+)?/);
                return "atom";
              }
              // comment start
              else if (ch === "(" && stream.eat(":")) {
                pushStateStack(state, { type: "comment"});
                return chain(stream, state, tokenComment);
              }
              // quoted string
              else if (  !isEQName && (ch === '"' || ch === "'"))
                return chain(stream, state, tokenString(ch));
              // variable
              else if(ch === "$") {
                return chain(stream, state, tokenVariable);
              }
              // assignment
              else if(ch ===":" && stream.eat("=")) {
                return "keyword";
              }
              // open paren
              else if(ch === "(") {
                pushStateStack(state, { type: "paren"});
                return null;
              }
              // close paren
              else if(ch === ")") {
                popStateStack(state);
                return null;
              }
              // open paren
              else if(ch === "[") {
                pushStateStack(state, { type: "bracket"});
                return null;
              }
              // close paren
              else if(ch === "]") {
                popStateStack(state);
                return null;
              }
              else {
                var known = keywords.propertyIsEnumerable(ch) && keywords[ch];
          
                // if there's a EQName ahead, consume the rest of the string portion, it's likely a function
                if(isEQName && ch === '\"') while(stream.next() !== '"'){}
                if(isEQName && ch === '\'') while(stream.next() !== '\''){}
          
                // gobble up a word if the character is not known
                if(!known) stream.eatWhile(/[\w\$_-]/);
          
                // gobble a colon in the case that is a lib func type call fn:doc
                var foundColon = stream.eat(":");
          
                // if there's not a second colon, gobble another word. Otherwise, it's probably an axis specifier
                // which should get matched as a keyword
                if(!stream.eat(":") && foundColon) {
                  stream.eatWhile(/[\w\$_-]/);
                }
                // if the next non whitespace character is an open paren, this is probably a function (if not a keyword of other sort)
                if(stream.match(/^[ \t]*\(/, false)) {
                  mightBeFunction = true;
                }
                // is the word a keyword?
                var word = stream.current();
                known = keywords.propertyIsEnumerable(word) && keywords[word];
          
                // if we think it's a function call but not yet known,
                // set style to variable for now for lack of something better
                if(mightBeFunction && !known) known = {type: "function_call", style: "variable def"};
          
                // if the previous word was element, attribute, axis specifier, this word should be the name of that
                if(isInXmlConstructor(state)) {
                  popStateStack(state);
                  return "variable";
                }
                // as previously checked, if the word is element,attribute, axis specifier, call it an "xmlconstructor" and
                // push the stack so we know to look for it on the next word
                if(word == "element" || word == "attribute" || known.type == "axis_specifier") pushStateStack(state, {type: "xmlconstructor"});
          
                // if the word is known, return the details of that else just call this a generic 'word'
                return known ? known.style : "variable";
              }
            }
          
            // handle comments, including nested
            function tokenComment(stream, state) {
              var maybeEnd = false, maybeNested = false, nestedCount = 0, ch;
              while (ch = stream.next()) {
                if (ch == ")" && maybeEnd) {
                  if(nestedCount > 0)
                    nestedCount--;
                  else {
                    popStateStack(state);
                    break;
                  }
                }
                else if(ch == ":" && maybeNested) {
                  nestedCount++;
                }
                maybeEnd = (ch == ":");
                maybeNested = (ch == "(");
              }
          
              return "comment";
            }
          
            // tokenizer for string literals
            // optionally pass a tokenizer function to set state.tokenize back to when finished
            function tokenString(quote, f) {
              return function(stream, state) {
                var ch;
          
                if(isInString(state) && stream.current() == quote) {
                  popStateStack(state);
                  if(f) state.tokenize = f;
                  return "string";
                }
          
                pushStateStack(state, { type: "string", name: quote, tokenize: tokenString(quote, f) });
          
                // if we're in a string and in an XML block, allow an embedded code block
                if(stream.match("{", false) && isInXmlAttributeBlock(state)) {
                  state.tokenize = tokenBase;
                  return "string";
                }
          
          
                while (ch = stream.next()) {
                  if (ch ==  quote) {
                    popStateStack(state);
                    if(f) state.tokenize = f;
                    break;
                  }
                  else {
                    // if we're in a string and in an XML block, allow an embedded code block in an attribute
                    if(stream.match("{", false) && isInXmlAttributeBlock(state)) {
                      state.tokenize = tokenBase;
                      return "string";
                    }
          
                  }
                }
          
                return "string";
              };
            }
          
            // tokenizer for variables
            function tokenVariable(stream, state) {
              var isVariableChar = /[\w\$_-]/;
          
              // a variable may start with a quoted EQName so if the next character is quote, consume to the next quote
              if(stream.eat("\"")) {
                while(stream.next() !== '\"'){};
                stream.eat(":");
              } else {
                stream.eatWhile(isVariableChar);
                if(!stream.match(":=", false)) stream.eat(":");
              }
              stream.eatWhile(isVariableChar);
              state.tokenize = tokenBase;
              return "variable";
            }
          
            // tokenizer for XML tags
            function tokenTag(name, isclose) {
              return function(stream, state) {
                stream.eatSpace();
                if(isclose && stream.eat(">")) {
                  popStateStack(state);
                  state.tokenize = tokenBase;
                  return "tag";
                }
                // self closing tag without attributes?
                if(!stream.eat("/"))
                  pushStateStack(state, { type: "tag", name: name, tokenize: tokenBase});
                if(!stream.eat(">")) {
                  state.tokenize = tokenAttribute;
                  return "tag";
                }
                else {
                  state.tokenize = tokenBase;
                }
                return "tag";
              };
            }
          
            // tokenizer for XML attributes
            function tokenAttribute(stream, state) {
              var ch = stream.next();
          
              if(ch == "/" && stream.eat(">")) {
                if(isInXmlAttributeBlock(state)) popStateStack(state);
                if(isInXmlBlock(state)) popStateStack(state);
                return "tag";
              }
              if(ch == ">") {
                if(isInXmlAttributeBlock(state)) popStateStack(state);
                return "tag";
              }
              if(ch == "=")
                return null;
              // quoted string
              if (ch == '"' || ch == "'")
                return chain(stream, state, tokenString(ch, tokenAttribute));
          
              if(!isInXmlAttributeBlock(state))
                pushStateStack(state, { type: "attribute", tokenize: tokenAttribute});
          
              stream.eat(/[a-zA-Z_:]/);
              stream.eatWhile(/[-a-zA-Z0-9_:.]/);
              stream.eatSpace();
          
              // the case where the attribute has not value and the tag was closed
              if(stream.match(">", false) || stream.match("/", false)) {
                popStateStack(state);
                state.tokenize = tokenBase;
              }
          
              return "attribute";
            }
          
            // handle comments, including nested
            function tokenXMLComment(stream, state) {
              var ch;
              while (ch = stream.next()) {
                if (ch == "-" && stream.match("->", true)) {
                  state.tokenize = tokenBase;
                  return "comment";
                }
              }
            }
          
          
            // handle CDATA
            function tokenCDATA(stream, state) {
              var ch;
              while (ch = stream.next()) {
                if (ch == "]" && stream.match("]", true)) {
                  state.tokenize = tokenBase;
                  return "comment";
                }
              }
            }
          
            // handle preprocessing instructions
            function tokenPreProcessing(stream, state) {
              var ch;
              while (ch = stream.next()) {
                if (ch == "?" && stream.match(">", true)) {
                  state.tokenize = tokenBase;
                  return "comment meta";
                }
              }
            }
          
          
            // functions to test the current context of the state
            function isInXmlBlock(state) { return isIn(state, "tag"); }
            function isInXmlAttributeBlock(state) { return isIn(state, "attribute"); }
            function isInXmlConstructor(state) { return isIn(state, "xmlconstructor"); }
            function isInString(state) { return isIn(state, "string"); }
          
            function isEQNameAhead(stream) {
              // assume we've already eaten a quote (")
              if(stream.current() === '"')
                return stream.match(/^[^\"]+\"\:/, false);
              else if(stream.current() === '\'')
                return stream.match(/^[^\"]+\'\:/, false);
              else
                return false;
            }
          
            function isIn(state, type) {
              return (state.stack.length && state.stack[state.stack.length - 1].type == type);
            }
          
            function pushStateStack(state, newState) {
              state.stack.push(newState);
            }
          
            function popStateStack(state) {
              state.stack.pop();
              var reinstateTokenize = state.stack.length && state.stack[state.stack.length-1].tokenize;
              state.tokenize = reinstateTokenize || tokenBase;
            }
          
            // the interface for the mode API
            return {
              startState: function() {
                return {
                  tokenize: tokenBase,
                  cc: [],
                  stack: []
                };
              },
          
              token: function(stream, state) {
                if (stream.eatSpace()) return null;
                var style = state.tokenize(stream, state);
                return style;
              },
          
              blockCommentStart: "(:",
              blockCommentEnd: ":)"
          
            };
          
          });
          
          CodeMirror.defineMIME("application/xquery", "xquery");
          
          });
          
      • yaml
        • index.html
          <!doctype html>
          
          <title>CodeMirror: YAML mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="yaml.js"></script>
          <style>.CodeMirror { border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; }</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">YAML</a>
            </ul>
          </div>
          
          <article>
          <h2>YAML mode</h2>
          <form><textarea id="code" name="code">
          --- # Favorite movies
          - Casablanca
          - North by Northwest
          - The Man Who Wasn't There
          --- # Shopping list
          [milk, pumpkin pie, eggs, juice]
          --- # Indented Blocks, common in YAML data files, use indentation and new lines to separate the key: value pairs
            name: John Smith
            age: 33
          --- # Inline Blocks, common in YAML data streams, use commas to separate the key: value pairs between braces
          {name: John Smith, age: 33}
          ---
          receipt:     Oz-Ware Purchase Invoice
          date:        2007-08-06
          customer:
              given:   Dorothy
              family:  Gale
          
          items:
              - part_no:   A4786
                descrip:   Water Bucket (Filled)
                price:     1.47
                quantity:  4
          
              - part_no:   E1628
                descrip:   High Heeled "Ruby" Slippers
                size:       8
                price:     100.27
                quantity:  1
          
          bill-to:  &id001
              street: |
                      123 Tornado Alley
                      Suite 16
              city:   East Centerville
              state:  KS
          
          ship-to:  *id001
          
          specialDelivery:  >
              Follow the Yellow Brick
              Road to the Emerald City.
              Pay no attention to the
              man behind the curtain.
          ...
          </textarea></form>
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {});
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-yaml</code>.</p>
          
            </article>
          
        • yaml.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
              mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
              define(["../../lib/codemirror"], mod);
            else // Plain browser env
              mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode("yaml", function() {
          
            var cons = ['true', 'false', 'on', 'off', 'yes', 'no'];
            var keywordRegex = new RegExp("\\b(("+cons.join(")|(")+"))$", 'i');
          
            return {
              token: function(stream, state) {
                var ch = stream.peek();
                var esc = state.escaped;
                state.escaped = false;
                /* comments */
                if (ch == "#" && (stream.pos == 0 || /\s/.test(stream.string.charAt(stream.pos - 1)))) {
                  stream.skipToEnd();
                  return "comment";
                }
          
                if (stream.match(/^('([^']|\\.)*'?|"([^"]|\\.)*"?)/))
                  return "string";
          
                if (state.literal && stream.indentation() > state.keyCol) {
                  stream.skipToEnd(); return "string";
                } else if (state.literal) { state.literal = false; }
                if (stream.sol()) {
                  state.keyCol = 0;
                  state.pair = false;
                  state.pairStart = false;
                  /* document start */
                  if(stream.match(/---/)) { return "def"; }
                  /* document end */
                  if (stream.match(/\.\.\./)) { return "def"; }
                  /* array list item */
                  if (stream.match(/\s*-\s+/)) { return 'meta'; }
                }
                /* inline pairs/lists */
                if (stream.match(/^(\{|\}|\[|\])/)) {
                  if (ch == '{')
                    state.inlinePairs++;
                  else if (ch == '}')
                    state.inlinePairs--;
                  else if (ch == '[')
                    state.inlineList++;
                  else
                    state.inlineList--;
                  return 'meta';
                }
          
                /* list seperator */
                if (state.inlineList > 0 && !esc && ch == ',') {
                  stream.next();
                  return 'meta';
                }
                /* pairs seperator */
                if (state.inlinePairs > 0 && !esc && ch == ',') {
                  state.keyCol = 0;
                  state.pair = false;
                  state.pairStart = false;
                  stream.next();
                  return 'meta';
                }
          
                /* start of value of a pair */
                if (state.pairStart) {
                  /* block literals */
                  if (stream.match(/^\s*(\||\>)\s*/)) { state.literal = true; return 'meta'; };
                  /* references */
                  if (stream.match(/^\s*(\&|\*)[a-z0-9\._-]+\b/i)) { return 'variable-2'; }
                  /* numbers */
                  if (state.inlinePairs == 0 && stream.match(/^\s*-?[0-9\.\,]+\s?$/)) { return 'number'; }
                  if (state.inlinePairs > 0 && stream.match(/^\s*-?[0-9\.\,]+\s?(?=(,|}))/)) { return 'number'; }
                  /* keywords */
                  if (stream.match(keywordRegex)) { return 'keyword'; }
                }
          
                /* pairs (associative arrays) -> key */
                if (!state.pair && stream.match(/^\s*(?:[,\[\]{}&*!|>'"%@`][^\s'":]|[^,\[\]{}#&*!|>'"%@`])[^#]*?(?=\s*:($|\s))/)) {
                  state.pair = true;
                  state.keyCol = stream.indentation();
                  return "atom";
                }
                if (state.pair && stream.match(/^:\s*/)) { state.pairStart = true; return 'meta'; }
          
                /* nothing found, continue */
                state.pairStart = false;
                state.escaped = (ch == '\\');
                stream.next();
                return null;
              },
              startState: function() {
                return {
                  pair: false,
                  pairStart: false,
                  keyCol: 0,
                  inlinePairs: 0,
                  inlineList: 0,
                  literal: false,
                  escaped: false
                };
              }
            };
          });
          
          CodeMirror.defineMIME("text/x-yaml", "yaml");
          
          });
          
      • z80
        • index.html
          <!doctype html>
          
          <title>CodeMirror: Z80 assembly mode</title>
          <meta charset="utf-8"/>
          <link rel=stylesheet href="../../doc/docs.css">
          
          <link rel="stylesheet" href="../../lib/codemirror.css">
          <script src="../../lib/codemirror.js"></script>
          <script src="z80.js"></script>
          <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
          <div id=nav>
            <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
          
            <ul>
              <li><a href="../../index.html">Home</a>
              <li><a href="../../doc/manual.html">Manual</a>
              <li><a href="https://github.com/codemirror/codemirror">Code</a>
            </ul>
            <ul>
              <li><a href="../index.html">Language modes</a>
              <li><a class=active href="#">Z80 assembly</a>
            </ul>
          </div>
          
          <article>
          <h2>Z80 assembly mode</h2>
          
          
          <div><textarea id="code" name="code">
          #include    "ti83plus.inc"
          #define     progStart   $9D95
              .org progStart-2
              .db $BB,$6D
          
              bcall(_ClrLCDFull)
              ld hl,0
              ld (CurCol),hl
              ld hl,Message
              bcall(_PutS) ; Displays the string
              bcall(_NewLine)
              ret
          Message:
              .db "Hello world!",0
          </textarea></div>
          
              <script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                  lineNumbers: true
                });
              </script>
          
              <p><strong>MIME types defined:</strong> <code>text/x-z80</code>, <code>text/x-ez80</code>.</p>
            </article>
          
        • z80.js
          // CodeMirror, copyright (c) by Marijn Haverbeke and others
          // Distributed under an MIT license: http://codemirror.net/LICENSE
          
          (function(mod) {
            if (typeof exports == "object" && typeof module == "object") // CommonJS
            mod(require("../../lib/codemirror"));
            else if (typeof define == "function" && define.amd) // AMD
            define(["../../lib/codemirror"], mod);
            else // Plain browser env
            mod(CodeMirror);
          })(function(CodeMirror) {
          "use strict";
          
          CodeMirror.defineMode('z80', function(_config, parserConfig) {
            var ez80 = parserConfig.ez80;
            var keywords1, keywords2;
            if (ez80) {
              keywords1 = /^(exx?|(ld|cp)([di]r?)?|[lp]ea|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|[de]i|halt|im|in([di]mr?|ir?|irx|2r?)|ot(dmr?|[id]rx|imr?)|out(0?|[di]r?|[di]2r?)|tst(io)?|slp)(\.([sl]?i)?[sl])?\b/i;
              keywords2 = /^(((call|j[pr]|rst|ret[in]?)(\.([sl]?i)?[sl])?)|(rs|st)mix)\b/i;
            } else {
              keywords1 = /^(exx?|(ld|cp|in)([di]r?)?|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|rst|[de]i|halt|im|ot[di]r|out[di]?)\b/i;
              keywords2 = /^(call|j[pr]|ret[in]?|b_?(call|jump))\b/i;
            }
          
            var variables1 = /^(af?|bc?|c|de?|e|hl?|l|i[xy]?|r|sp)\b/i;
            var variables2 = /^(n?[zc]|p[oe]?|m)\b/i;
            var errors = /^([hl][xy]|i[xy][hl]|slia|sll)\b/i;
            var numbers = /^([\da-f]+h|[0-7]+o|[01]+b|\d+d?)\b/i;
          
            return {
              startState: function() {
                return {
                  context: 0
                };
              },
              token: function(stream, state) {
                if (!stream.column())
                  state.context = 0;
          
                if (stream.eatSpace())
                  return null;
          
                var w;
          
                if (stream.eatWhile(/\w/)) {
                  if (ez80 && stream.eat('.')) {
                    stream.eatWhile(/\w/);
                  }
                  w = stream.current();
          
                  if (stream.indentation()) {
                    if ((state.context == 1 || state.context == 4) && variables1.test(w)) {
                      state.context = 4;
                      return 'var2';
                    }
          
                    if (state.context == 2 && variables2.test(w)) {
                      state.context = 4;
                      return 'var3';
                    }
          
                    if (keywords1.test(w)) {
                      state.context = 1;
                      return 'keyword';
                    } else if (keywords2.test(w)) {
                      state.context = 2;
                      return 'keyword';
                    } else if (state.context == 4 && numbers.test(w)) {
                      return 'number';
                    }
          
                    if (errors.test(w))
                      return 'error';
                  } else if (stream.match(numbers)) {
                    return 'number';
                  } else {
                    return null;
                  }
                } else if (stream.eat(';')) {
                  stream.skipToEnd();
                  return 'comment';
                } else if (stream.eat('"')) {
                  while (w = stream.next()) {
                    if (w == '"')
                      break;
          
                    if (w == '\\')
                      stream.next();
                  }
                  return 'string';
                } else if (stream.eat('\'')) {
                  if (stream.match(/\\?.'/))
                    return 'number';
                } else if (stream.eat('.') || stream.sol() && stream.eat('#')) {
                  state.context = 5;
          
                  if (stream.eatWhile(/\w/))
                    return 'def';
                } else if (stream.eat('$')) {
                  if (stream.eatWhile(/[\da-f]/i))
                    return 'number';
                } else if (stream.eat('%')) {
                  if (stream.eatWhile(/[01]/))
                    return 'number';
                } else {
                  stream.next();
                }
                return null;
              }
            };
          });
          
          CodeMirror.defineMIME("text/x-z80", "z80");
          CodeMirror.defineMIME("text/x-ez80", { name: "z80", ez80: true });
          
          });
          
      • index.html
        <!doctype html>
        
        <title>CodeMirror: Language Modes</title>
        <meta charset="utf-8"/>
        <link rel=stylesheet href="../doc/docs.css">
        
        <div id=nav>
          <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../doc/logo.png"></a>
        
          <ul>
            <li><a href="../index.html">Home</a>
            <li><a href="../doc/manual.html">Manual</a>
            <li><a href="https://github.com/codemirror/codemirror">Code</a>
          </ul>
          <ul>
            <li><a class=active href="#">Language modes</a>
          </ul>
        </div>
        
        <article>
        
          <h2>Language modes</h2>
        
          <p>This is a list of every mode in the distribution. Each mode lives
        in a subdirectory of the <code>mode/</code> directory, and typically
        defines a single JavaScript file that implements the mode. Loading
        such file will make the language available to CodeMirror, through
        the <a href="../doc/manual.html#option_mode"><code>mode</code></a>
        option.</p>
        
          <div style="-webkit-columns: 100px 2; -moz-columns: 100px 2; columns: 100px 2;">
            <ul style="margin-top: 0">
              <li><a href="apl/index.html">APL</a></li>
              <li><a href="asn.1/index.html">ASN.1</a></li>
              <li><a href="asterisk/index.html">Asterisk dialplan</a></li>
              <li><a href="brainfuck/index.html">Brainfuck</a></li>
              <li><a href="clike/index.html">C, C++, C#</a></li>
              <li><a href="clike/index.html">Ceylon</a></li>
              <li><a href="clojure/index.html">Clojure</a></li>
              <li><a href="css/gss.html">Closure Stylesheets (GSS)</a></li>
              <li><a href="cmake/index.html">CMake</a></li>
              <li><a href="cobol/index.html">COBOL</a></li>
              <li><a href="coffeescript/index.html">CoffeeScript</a></li>
              <li><a href="commonlisp/index.html">Common Lisp</a></li>
              <li><a href="css/index.html">CSS</a></li>
              <li><a href="cypher/index.html">Cypher</a></li>
              <li><a href="python/index.html">Cython</a></li>
              <li><a href="d/index.html">D</a></li>
              <li><a href="dart/index.html">Dart</a></li>
              <li><a href="django/index.html">Django</a> (templating language)</li>
              <li><a href="dockerfile/index.html">Dockerfile</a></li>
              <li><a href="diff/index.html">diff</a></li>
              <li><a href="dtd/index.html">DTD</a></li>
              <li><a href="dylan/index.html">Dylan</a></li>
              <li><a href="ebnf/index.html">EBNF</a></li>
              <li><a href="ecl/index.html">ECL</a></li>
              <li><a href="eiffel/index.html">Eiffel</a></li>
              <li><a href="elm/index.html">Elm</a></li>
              <li><a href="erlang/index.html">Erlang</a></li>
              <li><a href="factor/index.html">Factor</a></li>
              <li><a href="forth/index.html">Forth</a></li>
              <li><a href="fortran/index.html">Fortran</a></li>
              <li><a href="mllike/index.html">F#</a></li>
              <li><a href="gas/index.html">Gas</a> (AT&amp;T-style assembly)</li>
              <li><a href="gherkin/index.html">Gherkin</a></li>
              <li><a href="go/index.html">Go</a></li>
              <li><a href="groovy/index.html">Groovy</a></li>
              <li><a href="haml/index.html">HAML</a></li>
              <li><a href="handlebars/index.html">Handlebars</a></li>
              <li><a href="haskell/index.html">Haskell</a></li>
              <li><a href="haxe/index.html">Haxe</a></li>
              <li><a href="htmlembedded/index.html">HTML embedded</a> (JSP, ASP.NET)</li>
              <li><a href="htmlmixed/index.html">HTML mixed-mode</a></li>
              <li><a href="http/index.html">HTTP</a></li>
              <li><a href="idl/index.html">IDL</a></li>
              <li><a href="clike/index.html">Java</a></li>
              <li><a href="jade/index.html">Jade</a></li>
              <li><a href="javascript/index.html">JavaScript</a></li>
              <li><a href="jinja2/index.html">Jinja2</a></li>
              <li><a href="julia/index.html">Julia</a></li>
              <li><a href="kotlin/index.html">Kotlin</a></li>
              <li><a href="css/less.html">LESS</a></li>
              <li><a href="livescript/index.html">LiveScript</a></li>
              <li><a href="lua/index.html">Lua</a></li>
              <li><a href="markdown/index.html">Markdown</a> (<a href="gfm/index.html">GitHub-flavour</a>)</li>
              <li><a href="mathematica/index.html">Mathematica</a></li>
              <li><a href="mirc/index.html">mIRC</a></li>
              <li><a href="modelica/index.html">Modelica</a></li>
              <li><a href="mumps/index.html">MUMPS</a></li>
              <li><a href="nginx/index.html">Nginx</a></li>
              <li><a href="nsis/index.html">NSIS</a></li>
              <li><a href="ntriples/index.html">NTriples</a></li>
              <li><a href="clike/index.html">Objective C</a></li>
              <li><a href="mllike/index.html">OCaml</a></li>
              <li><a href="octave/index.html">Octave</a> (MATLAB)</li>
              <li><a href="oz/index.html">Oz</a></li>
              <li><a href="pascal/index.html">Pascal</a></li>
              <li><a href="pegjs/index.html">PEG.js</a></li>
              <li><a href="perl/index.html">Perl</a></li>
              <li><a href="asciiarmor/index.html">PGP (ASCII armor)</a></li>
              <li><a href="php/index.html">PHP</a></li>
              <li><a href="pig/index.html">Pig Latin</a></li>
              <li><a href="properties/index.html">Properties files</a></li>
              <li><a href="puppet/index.html">Puppet</a></li>
              <li><a href="python/index.html">Python</a></li>
              <li><a href="q/index.html">Q</a></li>
              <li><a href="r/index.html">R</a></li>
              <li><a href="rpm/index.html">RPM</a></li>
              <li><a href="rst/index.html">reStructuredText</a></li>
              <li><a href="ruby/index.html">Ruby</a></li>
              <li><a href="rust/index.html">Rust</a></li>
              <li><a href="sass/index.html">Sass</a></li>
              <li><a href="spreadsheet/index.html">Spreadsheet</a></li>
              <li><a href="clike/scala.html">Scala</a></li>
              <li><a href="scheme/index.html">Scheme</a></li>
              <li><a href="css/scss.html">SCSS</a></li>
              <li><a href="shell/index.html">Shell</a></li>
              <li><a href="sieve/index.html">Sieve</a></li>
              <li><a href="slim/index.html">Slim</a></li>
              <li><a href="smalltalk/index.html">Smalltalk</a></li>
              <li><a href="smarty/index.html">Smarty</a></li>
              <li><a href="solr/index.html">Solr</a></li>
              <li><a href="soy/index.html">Soy</a></li>
              <li><a href="stylus/index.html">Stylus</a></li>
              <li><a href="sql/index.html">SQL</a> (several dialects)</li>
              <li><a href="sparql/index.html">SPARQL</a></li>
              <li><a href="clike/index.html">Squirrel</a></li>
              <li><a href="swift/index.html">Swift</a></li>
              <li><a href="stex/index.html">sTeX, LaTeX</a></li>
              <li><a href="tcl/index.html">Tcl</a></li>
              <li><a href="textile/index.html">Textile</a></li>
              <li><a href="tiddlywiki/index.html">Tiddlywiki</a></li>
              <li><a href="tiki/index.html">Tiki wiki</a></li>
              <li><a href="toml/index.html">TOML</a></li>
              <li><a href="tornado/index.html">Tornado</a> (templating language)</li>
              <li><a href="troff/index.html">troff</a> (for manpages)</li>
              <li><a href="ttcn/index.html">TTCN</a></li>
              <li><a href="ttcn-cfg/index.html">TTCN Configuration</a></li>
              <li><a href="turtle/index.html">Turtle</a></li>
              <li><a href="twig/index.html">Twig</a></li>
              <li><a href="vb/index.html">VB.NET</a></li>
              <li><a href="vbscript/index.html">VBScript</a></li>
              <li><a href="velocity/index.html">Velocity</a></li>
              <li><a href="verilog/index.html">Verilog/SystemVerilog</a></li>
              <li><a href="vhdl/index.html">VHDL</a></li>
              <li><a href="vue/index.html">Vue.js app</a></li>
              <li><a href="xml/index.html">XML/HTML</a></li>
              <li><a href="xquery/index.html">XQuery</a></li>
              <li><a href="yaml/index.html">YAML</a></li>
              <li><a href="z80/index.html">Z80</a></li>
            </ul>
          </div>
        
        </article>
        
      • meta.js
        // CodeMirror, copyright (c) by Marijn Haverbeke and others
        // Distributed under an MIT license: http://codemirror.net/LICENSE
        
        (function(mod) {
          if (typeof exports == "object" && typeof module == "object") // CommonJS
            mod(require("../lib/codemirror"));
          else if (typeof define == "function" && define.amd) // AMD
            define(["../lib/codemirror"], mod);
          else // Plain browser env
            mod(CodeMirror);
        })(function(CodeMirror) {
          "use strict";
        
          CodeMirror.modeInfo = [
            {name: "APL", mime: "text/apl", mode: "apl", ext: ["dyalog", "apl"]},
            {name: "PGP", mimes: ["application/pgp", "application/pgp-keys", "application/pgp-signature"], mode: "asciiarmor", ext: ["pgp"]},
            {name: "ASN.1", mime: "text/x-ttcn-asn", mode: "asn.1", ext: ["asn", "asn1"]},
            {name: "Asterisk", mime: "text/x-asterisk", mode: "asterisk", file: /^extensions\.conf$/i},
            {name: "Brainfuck", mime: "text/x-brainfuck", mode: "brainfuck", ext: ["b", "bf"]},
            {name: "C", mime: "text/x-csrc", mode: "clike", ext: ["c", "h"]},
            {name: "C++", mime: "text/x-c++src", mode: "clike", ext: ["cpp", "c++", "cc", "cxx", "hpp", "h++", "hh", "hxx"], alias: ["cpp"]},
            {name: "Cobol", mime: "text/x-cobol", mode: "cobol", ext: ["cob", "cpy"]},
            {name: "C#", mime: "text/x-csharp", mode: "clike", ext: ["cs"], alias: ["csharp"]},
            {name: "Clojure", mime: "text/x-clojure", mode: "clojure", ext: ["clj"]},
            {name: "Closure Stylesheets (GSS)", mime: "text/x-gss", mode: "css", ext: ["gss"]},
            {name: "CMake", mime: "text/x-cmake", mode: "cmake", ext: ["cmake", "cmake.in"], file: /^CMakeLists.txt$/},
            {name: "CoffeeScript", mime: "text/x-coffeescript", mode: "coffeescript", ext: ["coffee"], alias: ["coffee", "coffee-script"]},
            {name: "Common Lisp", mime: "text/x-common-lisp", mode: "commonlisp", ext: ["cl", "lisp", "el"], alias: ["lisp"]},
            {name: "Cypher", mime: "application/x-cypher-query", mode: "cypher", ext: ["cyp", "cypher"]},
            {name: "Cython", mime: "text/x-cython", mode: "python", ext: ["pyx", "pxd", "pxi"]},
            {name: "CSS", mime: "text/css", mode: "css", ext: ["css"]},
            {name: "CQL", mime: "text/x-cassandra", mode: "sql", ext: ["cql"]},
            {name: "D", mime: "text/x-d", mode: "d", ext: ["d"]},
            {name: "Dart", mimes: ["application/dart", "text/x-dart"], mode: "dart", ext: ["dart"]},
            {name: "diff", mime: "text/x-diff", mode: "diff", ext: ["diff", "patch"]},
            {name: "Django", mime: "text/x-django", mode: "django"},
            {name: "Dockerfile", mime: "text/x-dockerfile", mode: "dockerfile", file: /^Dockerfile$/},
            {name: "DTD", mime: "application/xml-dtd", mode: "dtd", ext: ["dtd"]},
            {name: "Dylan", mime: "text/x-dylan", mode: "dylan", ext: ["dylan", "dyl", "intr"]},
            {name: "EBNF", mime: "text/x-ebnf", mode: "ebnf"},
            {name: "ECL", mime: "text/x-ecl", mode: "ecl", ext: ["ecl"]},
            {name: "Eiffel", mime: "text/x-eiffel", mode: "eiffel", ext: ["e"]},
            {name: "Elm", mime: "text/x-elm", mode: "elm", ext: ["elm"]},
            {name: "Embedded Javascript", mime: "application/x-ejs", mode: "htmlembedded", ext: ["ejs"]},
            {name: "Embedded Ruby", mime: "application/x-erb", mode: "htmlembedded", ext: ["erb"]},
            {name: "Erlang", mime: "text/x-erlang", mode: "erlang", ext: ["erl"]},
            {name: "Factor", mime: "text/x-factor", mode: "factor", ext: ["factor"]},
            {name: "Forth", mime: "text/x-forth", mode: "forth", ext: ["forth", "fth", "4th"]},
            {name: "Fortran", mime: "text/x-fortran", mode: "fortran", ext: ["f", "for", "f77", "f90"]},
            {name: "F#", mime: "text/x-fsharp", mode: "mllike", ext: ["fs"], alias: ["fsharp"]},
            {name: "Gas", mime: "text/x-gas", mode: "gas", ext: ["s"]},
            {name: "Gherkin", mime: "text/x-feature", mode: "gherkin", ext: ["feature"]},
            {name: "GitHub Flavored Markdown", mime: "text/x-gfm", mode: "gfm", file: /^(readme|contributing|history).md$/i},
            {name: "Go", mime: "text/x-go", mode: "go", ext: ["go"]},
            {name: "Groovy", mime: "text/x-groovy", mode: "groovy", ext: ["groovy"]},
            {name: "HAML", mime: "text/x-haml", mode: "haml", ext: ["haml"]},
            {name: "Haskell", mime: "text/x-haskell", mode: "haskell", ext: ["hs"]},
            {name: "Haxe", mime: "text/x-haxe", mode: "haxe", ext: ["hx"]},
            {name: "HXML", mime: "text/x-hxml", mode: "haxe", ext: ["hxml"]},
            {name: "ASP.NET", mime: "application/x-aspx", mode: "htmlembedded", ext: ["aspx"], alias: ["asp", "aspx"]},
            {name: "HTML", mime: "text/html", mode: "htmlmixed", ext: ["html", "htm"], alias: ["xhtml"]},
            {name: "HTTP", mime: "message/http", mode: "http"},
            {name: "IDL", mime: "text/x-idl", mode: "idl", ext: ["pro"]},
            {name: "Jade", mime: "text/x-jade", mode: "jade", ext: ["jade"]},
            {name: "Java", mime: "text/x-java", mode: "clike", ext: ["java"]},
            {name: "Java Server Pages", mime: "application/x-jsp", mode: "htmlembedded", ext: ["jsp"], alias: ["jsp"]},
            {name: "JavaScript", mimes: ["text/javascript", "text/ecmascript", "application/javascript", "application/x-javascript", "application/ecmascript"],
             mode: "javascript", ext: ["js"], alias: ["ecmascript", "js", "node"]},
            {name: "JSON", mimes: ["application/json", "application/x-json"], mode: "javascript", ext: ["json", "map"], alias: ["json5"]},
            {name: "JSON-LD", mime: "application/ld+json", mode: "javascript", ext: ["jsonld"], alias: ["jsonld"]},
            {name: "Jinja2", mime: "null", mode: "jinja2"},
            {name: "Julia", mime: "text/x-julia", mode: "julia", ext: ["jl"]},
            {name: "Kotlin", mime: "text/x-kotlin", mode: "clike", ext: ["kt"]},
            {name: "LESS", mime: "text/x-less", mode: "css", ext: ["less"]},
            {name: "LiveScript", mime: "text/x-livescript", mode: "livescript", ext: ["ls"], alias: ["ls"]},
            {name: "Lua", mime: "text/x-lua", mode: "lua", ext: ["lua"]},
            {name: "Markdown", mime: "text/x-markdown", mode: "markdown", ext: ["markdown", "md", "mkd"]},
            {name: "mIRC", mime: "text/mirc", mode: "mirc"},
            {name: "MariaDB SQL", mime: "text/x-mariadb", mode: "sql"},
            {name: "Mathematica", mime: "text/x-mathematica", mode: "mathematica", ext: ["m", "nb"]},
            {name: "Modelica", mime: "text/x-modelica", mode: "modelica", ext: ["mo"]},
            {name: "MUMPS", mime: "text/x-mumps", mode: "mumps"},
            {name: "MS SQL", mime: "text/x-mssql", mode: "sql"},
            {name: "MySQL", mime: "text/x-mysql", mode: "sql"},
            {name: "Nginx", mime: "text/x-nginx-conf", mode: "nginx", file: /nginx.*\.conf$/i},
            {name: "NTriples", mime: "text/n-triples", mode: "ntriples", ext: ["nt"]},
            {name: "Objective C", mime: "text/x-objectivec", mode: "clike", ext: ["m", "mm"]},
            {name: "OCaml", mime: "text/x-ocaml", mode: "mllike", ext: ["ml", "mli", "mll", "mly"]},
            {name: "Octave", mime: "text/x-octave", mode: "octave", ext: ["m"]},
            {name: "Oz", mime: "text/x-oz", mode: "oz", ext: ["oz"]},
            {name: "Pascal", mime: "text/x-pascal", mode: "pascal", ext: ["p", "pas"]},
            {name: "PEG.js", mime: "null", mode: "pegjs", ext: ["jsonld"]},
            {name: "Perl", mime: "text/x-perl", mode: "perl", ext: ["pl", "pm"]},
            {name: "PHP", mime: "application/x-httpd-php", mode: "php", ext: ["php", "php3", "php4", "php5", "phtml"]},
            {name: "Pig", mime: "text/x-pig", mode: "pig", ext: ["pig"]},
            {name: "Plain Text", mime: "text/plain", mode: "null", ext: ["txt", "text", "conf", "def", "list", "log"]},
            {name: "PLSQL", mime: "text/x-plsql", mode: "sql", ext: ["pls"]},
            {name: "Properties files", mime: "text/x-properties", mode: "properties", ext: ["properties", "ini", "in"], alias: ["ini", "properties"]},
            {name: "Python", mime: "text/x-python", mode: "python", ext: ["py", "pyw"]},
            {name: "Puppet", mime: "text/x-puppet", mode: "puppet", ext: ["pp"]},
            {name: "Q", mime: "text/x-q", mode: "q", ext: ["q"]},
            {name: "R", mime: "text/x-rsrc", mode: "r", ext: ["r"], alias: ["rscript"]},
            {name: "reStructuredText", mime: "text/x-rst", mode: "rst", ext: ["rst"], alias: ["rst"]},
            {name: "RPM Changes", mime: "text/x-rpm-changes", mode: "rpm"},
            {name: "RPM Spec", mime: "text/x-rpm-spec", mode: "rpm", ext: ["spec"]},
            {name: "Ruby", mime: "text/x-ruby", mode: "ruby", ext: ["rb"], alias: ["jruby", "macruby", "rake", "rb", "rbx"]},
            {name: "Rust", mime: "text/x-rustsrc", mode: "rust", ext: ["rs"]},
            {name: "Sass", mime: "text/x-sass", mode: "sass", ext: ["sass"]},
            {name: "Scala", mime: "text/x-scala", mode: "clike", ext: ["scala"]},
            {name: "Scheme", mime: "text/x-scheme", mode: "scheme", ext: ["scm", "ss"]},
            {name: "SCSS", mime: "text/x-scss", mode: "css", ext: ["scss"]},
            {name: "Shell", mime: "text/x-sh", mode: "shell", ext: ["sh", "ksh", "bash"], alias: ["bash", "sh", "zsh"], file: /^PKGBUILD$/},
            {name: "Sieve", mime: "application/sieve", mode: "sieve", ext: ["siv", "sieve"]},
            {name: "Slim", mimes: ["text/x-slim", "application/x-slim"], mode: "slim", ext: ["slim"]},
            {name: "Smalltalk", mime: "text/x-stsrc", mode: "smalltalk", ext: ["st"]},
            {name: "Smarty", mime: "text/x-smarty", mode: "smarty", ext: ["tpl"]},
            {name: "Solr", mime: "text/x-solr", mode: "solr"},
            {name: "Soy", mime: "text/x-soy", mode: "soy", ext: ["soy"], alias: ["closure template"]},
            {name: "SPARQL", mime: "application/sparql-query", mode: "sparql", ext: ["rq", "sparql"], alias: ["sparul"]},
            {name: "Spreadsheet", mime: "text/x-spreadsheet", mode: "spreadsheet", alias: ["excel", "formula"]},
            {name: "SQL", mime: "text/x-sql", mode: "sql", ext: ["sql"]},
            {name: "Squirrel", mime: "text/x-squirrel", mode: "clike", ext: ["nut"]},
            {name: "Swift", mime: "text/x-swift", mode: "swift", ext: ["swift"]},
            {name: "MariaDB", mime: "text/x-mariadb", mode: "sql"},
            {name: "sTeX", mime: "text/x-stex", mode: "stex"},
            {name: "LaTeX", mime: "text/x-latex", mode: "stex", ext: ["text", "ltx"], alias: ["tex"]},
            {name: "SystemVerilog", mime: "text/x-systemverilog", mode: "verilog", ext: ["v"]},
            {name: "Tcl", mime: "text/x-tcl", mode: "tcl", ext: ["tcl"]},
            {name: "Textile", mime: "text/x-textile", mode: "textile", ext: ["textile"]},
            {name: "TiddlyWiki ", mime: "text/x-tiddlywiki", mode: "tiddlywiki"},
            {name: "Tiki wiki", mime: "text/tiki", mode: "tiki"},
            {name: "TOML", mime: "text/x-toml", mode: "toml", ext: ["toml"]},
            {name: "Tornado", mime: "text/x-tornado", mode: "tornado"},
            {name: "troff", mime: "troff", mode: "troff", ext: ["1", "2", "3", "4", "5", "6", "7", "8", "9"]},
            {name: "TTCN", mime: "text/x-ttcn", mode: "ttcn", ext: ["ttcn", "ttcn3", "ttcnpp"]},
            {name: "TTCN_CFG", mime: "text/x-ttcn-cfg", mode: "ttcn-cfg", ext: ["cfg"]},
            {name: "Turtle", mime: "text/turtle", mode: "turtle", ext: ["ttl"]},
            {name: "TypeScript", mime: "application/typescript", mode: "javascript", ext: ["ts"], alias: ["ts"]},
            {name: "Twig", mime: "text/x-twig", mode: "twig"},
            {name: "VB.NET", mime: "text/x-vb", mode: "vb", ext: ["vb"]},
            {name: "VBScript", mime: "text/vbscript", mode: "vbscript", ext: ["vbs"]},
            {name: "Velocity", mime: "text/velocity", mode: "velocity", ext: ["vtl"]},
            {name: "Verilog", mime: "text/x-verilog", mode: "verilog", ext: ["v"]},
            {name: "VHDL", mime: "text/x-vhdl", mode: "vhdl", ext: ["vhd", "vhdl"]},
            {name: "XML", mimes: ["application/xml", "text/xml"], mode: "xml", ext: ["xml", "xsl", "xsd"], alias: ["rss", "wsdl", "xsd"]},
            {name: "XQuery", mime: "application/xquery", mode: "xquery", ext: ["xy", "xquery"]},
            {name: "YAML", mime: "text/x-yaml", mode: "yaml", ext: ["yaml", "yml"], alias: ["yml"]},
            {name: "Z80", mime: "text/x-z80", mode: "z80", ext: ["z80"]},
            {name: "mscgen", mime: "text/x-mscgen", mode: "mscgen", ext: ["mscgen", "mscin", "msc"]},
            {name: "xu", mime: "text/x-xu", mode: "mscgen", ext: ["xu"]},
            {name: "msgenny", mime: "text/x-msgenny", mode: "mscgen", ext: ["msgenny"]}
          ];
          // Ensure all modes have a mime property for backwards compatibility
          for (var i = 0; i < CodeMirror.modeInfo.length; i++) {
            var info = CodeMirror.modeInfo[i];
            if (info.mimes) info.mime = info.mimes[0];
          }
        
          CodeMirror.findModeByMIME = function(mime) {
            mime = mime.toLowerCase();
            for (var i = 0; i < CodeMirror.modeInfo.length; i++) {
              var info = CodeMirror.modeInfo[i];
              if (info.mime == mime) return info;
              if (info.mimes) for (var j = 0; j < info.mimes.length; j++)
                if (info.mimes[j] == mime) return info;
            }
          };
        
          CodeMirror.findModeByExtension = function(ext) {
            for (var i = 0; i < CodeMirror.modeInfo.length; i++) {
              var info = CodeMirror.modeInfo[i];
              if (info.ext) for (var j = 0; j < info.ext.length; j++)
                if (info.ext[j] == ext) return info;
            }
          };
        
          CodeMirror.findModeByFileName = function(filename) {
            for (var i = 0; i < CodeMirror.modeInfo.length; i++) {
              var info = CodeMirror.modeInfo[i];
              if (info.file && info.file.test(filename)) return info;
            }
            var dot = filename.lastIndexOf(".");
            var ext = dot > -1 && filename.substring(dot + 1, filename.length);
            if (ext) return CodeMirror.findModeByExtension(ext);
          };
        
          CodeMirror.findModeByName = function(name) {
            name = name.toLowerCase();
            for (var i = 0; i < CodeMirror.modeInfo.length; i++) {
              var info = CodeMirror.modeInfo[i];
              if (info.name.toLowerCase() == name) return info;
              if (info.alias) for (var j = 0; j < info.alias.length; j++)
                if (info.alias[j].toLowerCase() == name) return info;
            }
          };
        });
        
    • theme
      • 3024-day.css
        /*
        
            Name:       3024 day
            Author:     Jan T. Sott (http://github.com/idleberg)
        
            CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
            Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
        
        */
        
        .cm-s-3024-day.CodeMirror { background: #f7f7f7; color: #3a3432; }
        .cm-s-3024-day div.CodeMirror-selected { background: #d6d5d4; }
        
        .cm-s-3024-day .CodeMirror-line::selection, .cm-s-3024-day .CodeMirror-line > span::selection, .cm-s-3024-day .CodeMirror-line > span > span::selection { background: #d6d5d4; }
        .cm-s-3024-day .CodeMirror-line::-moz-selection, .cm-s-3024-day .CodeMirror-line > span::-moz-selection, .cm-s-3024-day .CodeMirror-line > span > span::selection { background: #d9d9d9; }
        
        .cm-s-3024-day .CodeMirror-gutters { background: #f7f7f7; border-right: 0px; }
        .cm-s-3024-day .CodeMirror-guttermarker { color: #db2d20; }
        .cm-s-3024-day .CodeMirror-guttermarker-subtle { color: #807d7c; }
        .cm-s-3024-day .CodeMirror-linenumber { color: #807d7c; }
        
        .cm-s-3024-day .CodeMirror-cursor { border-left: 1px solid #5c5855; }
        
        .cm-s-3024-day span.cm-comment { color: #cdab53; }
        .cm-s-3024-day span.cm-atom { color: #a16a94; }
        .cm-s-3024-day span.cm-number { color: #a16a94; }
        
        .cm-s-3024-day span.cm-property, .cm-s-3024-day span.cm-attribute { color: #01a252; }
        .cm-s-3024-day span.cm-keyword { color: #db2d20; }
        .cm-s-3024-day span.cm-string { color: #fded02; }
        
        .cm-s-3024-day span.cm-variable { color: #01a252; }
        .cm-s-3024-day span.cm-variable-2 { color: #01a0e4; }
        .cm-s-3024-day span.cm-def { color: #e8bbd0; }
        .cm-s-3024-day span.cm-bracket { color: #3a3432; }
        .cm-s-3024-day span.cm-tag { color: #db2d20; }
        .cm-s-3024-day span.cm-link { color: #a16a94; }
        .cm-s-3024-day span.cm-error { background: #db2d20; color: #5c5855; }
        
        .cm-s-3024-day .CodeMirror-activeline-background { background: #e8f2ff; }
        .cm-s-3024-day .CodeMirror-matchingbracket { text-decoration: underline; color: #a16a94 !important; }
        
      • 3024-night.css
        /*
        
            Name:       3024 night
            Author:     Jan T. Sott (http://github.com/idleberg)
        
            CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
            Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
        
        */
        
        .cm-s-3024-night.CodeMirror { background: #090300; color: #d6d5d4; }
        .cm-s-3024-night div.CodeMirror-selected { background: #3a3432; }
        .cm-s-3024-night .CodeMirror-line::selection, .cm-s-3024-night .CodeMirror-line > span::selection, .cm-s-3024-night .CodeMirror-line > span > span::selection { background: rgba(58, 52, 50, .99); }
        .cm-s-3024-night .CodeMirror-line::-moz-selection, .cm-s-3024-night .CodeMirror-line > span::-moz-selection, .cm-s-3024-night .CodeMirror-line > span > span::-moz-selection { background: rgba(58, 52, 50, .99); }
        .cm-s-3024-night .CodeMirror-gutters { background: #090300; border-right: 0px; }
        .cm-s-3024-night .CodeMirror-guttermarker { color: #db2d20; }
        .cm-s-3024-night .CodeMirror-guttermarker-subtle { color: #5c5855; }
        .cm-s-3024-night .CodeMirror-linenumber { color: #5c5855; }
        
        .cm-s-3024-night .CodeMirror-cursor { border-left: 1px solid #807d7c; }
        
        .cm-s-3024-night span.cm-comment { color: #cdab53; }
        .cm-s-3024-night span.cm-atom { color: #a16a94; }
        .cm-s-3024-night span.cm-number { color: #a16a94; }
        
        .cm-s-3024-night span.cm-property, .cm-s-3024-night span.cm-attribute { color: #01a252; }
        .cm-s-3024-night span.cm-keyword { color: #db2d20; }
        .cm-s-3024-night span.cm-string { color: #fded02; }
        
        .cm-s-3024-night span.cm-variable { color: #01a252; }
        .cm-s-3024-night span.cm-variable-2 { color: #01a0e4; }
        .cm-s-3024-night span.cm-def { color: #e8bbd0; }
        .cm-s-3024-night span.cm-bracket { color: #d6d5d4; }
        .cm-s-3024-night span.cm-tag { color: #db2d20; }
        .cm-s-3024-night span.cm-link { color: #a16a94; }
        .cm-s-3024-night span.cm-error { background: #db2d20; color: #807d7c; }
        
        .cm-s-3024-night .CodeMirror-activeline-background { background: #2F2F2F; }
        .cm-s-3024-night .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
        
      • abcdef.css
        .cm-s-abcdef.CodeMirror { background: #0f0f0f; color: #defdef; }
        .cm-s-abcdef div.CodeMirror-selected { background: #515151; }
        .cm-s-abcdef .CodeMirror-line::selection, .cm-s-abcdef .CodeMirror-line > span::selection, .cm-s-abcdef .CodeMirror-line > span > span::selection { background: rgba(56, 56, 56, 0.99); }
        .cm-s-abcdef .CodeMirror-line::-moz-selection, .cm-s-abcdef .CodeMirror-line > span::-moz-selection, .cm-s-abcdef .CodeMirror-line > span > span::-moz-selection { background: rgba(56, 56, 56, 0.99); }
        .cm-s-abcdef .CodeMirror-gutters { background: #555; border-right: 2px solid #314151; }
        .cm-s-abcdef .CodeMirror-guttermarker { color: #222; }
        .cm-s-abcdef .CodeMirror-guttermarker-subtle { color: azure; }
        .cm-s-abcdef .CodeMirror-linenumber { color: #FFFFFF; }
        .cm-s-abcdef .CodeMirror-cursor { border-left: 1px solid #00FF00; }
        
        .cm-s-abcdef span.cm-keyword { color: darkgoldenrod; font-weight: bold; }
        .cm-s-abcdef span.cm-atom { color: #77F; }
        .cm-s-abcdef span.cm-number { color: violet; }
        .cm-s-abcdef span.cm-def { color: #fffabc; }
        .cm-s-abcdef span.cm-variable { color: #abcdef; }
        .cm-s-abcdef span.cm-variable-2 { color: #cacbcc; }
        .cm-s-abcdef span.cm-variable-3 { color: #def; }
        .cm-s-abcdef span.cm-property { color: #fedcba; }
        .cm-s-abcdef span.cm-operator { color: #ff0; }
        .cm-s-abcdef span.cm-comment { color: #7a7b7c; font-style: italic;}
        .cm-s-abcdef span.cm-string { color: #2b4; }
        .cm-s-abcdef span.cm-meta { color: #C9F; }
        .cm-s-abcdef span.cm-qualifier { color: #FFF700; }
        .cm-s-abcdef span.cm-builtin { color: #30aabc; }
        .cm-s-abcdef span.cm-bracket { color: #8a8a8a; }
        .cm-s-abcdef span.cm-tag { color: #FFDD44; }
        .cm-s-abcdef span.cm-attribute { color: #DDFF00; }
        .cm-s-abcdef span.cm-error { color: #FF0000; }
        .cm-s-abcdef span.cm-header { color: aquamarine; font-weight: bold; }
        .cm-s-abcdef span.cm-link { color: blueviolet; }
        
        .cm-s-abcdef .CodeMirror-activeline-background { background: #314151; }
        
      • ambiance-mobile.css
        .cm-s-ambiance.CodeMirror {
          -webkit-box-shadow: none;
          -moz-box-shadow: none;
          box-shadow: none;
        }
        
      • ambiance.css
        /* ambiance theme for codemirror */
        
        /* Color scheme */
        
        .cm-s-ambiance .cm-header { color: blue; }
        .cm-s-ambiance .cm-quote { color: #24C2C7; }
        
        .cm-s-ambiance .cm-keyword { color: #cda869; }
        .cm-s-ambiance .cm-atom { color: #CF7EA9; }
        .cm-s-ambiance .cm-number { color: #78CF8A; }
        .cm-s-ambiance .cm-def { color: #aac6e3; }
        .cm-s-ambiance .cm-variable { color: #ffb795; }
        .cm-s-ambiance .cm-variable-2 { color: #eed1b3; }
        .cm-s-ambiance .cm-variable-3 { color: #faded3; }
        .cm-s-ambiance .cm-property { color: #eed1b3; }
        .cm-s-ambiance .cm-operator { color: #fa8d6a; }
        .cm-s-ambiance .cm-comment { color: #555; font-style:italic; }
        .cm-s-ambiance .cm-string { color: #8f9d6a; }
        .cm-s-ambiance .cm-string-2 { color: #9d937c; }
        .cm-s-ambiance .cm-meta { color: #D2A8A1; }
        .cm-s-ambiance .cm-qualifier { color: yellow; }
        .cm-s-ambiance .cm-builtin { color: #9999cc; }
        .cm-s-ambiance .cm-bracket { color: #24C2C7; }
        .cm-s-ambiance .cm-tag { color: #fee4ff; }
        .cm-s-ambiance .cm-attribute { color: #9B859D; }
        .cm-s-ambiance .cm-hr { color: pink; }
        .cm-s-ambiance .cm-link { color: #F4C20B; }
        .cm-s-ambiance .cm-special { color: #FF9D00; }
        .cm-s-ambiance .cm-error { color: #AF2018; }
        
        .cm-s-ambiance .CodeMirror-matchingbracket { color: #0f0; }
        .cm-s-ambiance .CodeMirror-nonmatchingbracket { color: #f22; }
        
        .cm-s-ambiance div.CodeMirror-selected { background: rgba(255, 255, 255, 0.15); }
        .cm-s-ambiance.CodeMirror-focused div.CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }
        .cm-s-ambiance .CodeMirror-line::selection, .cm-s-ambiance .CodeMirror-line > span::selection, .cm-s-ambiance .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }
        .cm-s-ambiance .CodeMirror-line::-moz-selection, .cm-s-ambiance .CodeMirror-line > span::-moz-selection, .cm-s-ambiance .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }
        
        /* Editor styling */
        
        .cm-s-ambiance.CodeMirror {
          line-height: 1.40em;
          color: #E6E1DC;
          background-color: #202020;
          -webkit-box-shadow: inset 0 0 10px black;
          -moz-box-shadow: inset 0 0 10px black;
          box-shadow: inset 0 0 10px black;
        }
        
        .cm-s-ambiance .CodeMirror-gutters {
          background: #3D3D3D;
          border-right: 1px solid #4D4D4D;
          box-shadow: 0 10px 20px black;
        }
        
        .cm-s-ambiance .CodeMirror-linenumber {
          text-shadow: 0px 1px 1px #4d4d4d;
          color: #111;
          padding: 0 5px;
        }
        
        .cm-s-ambiance .CodeMirror-guttermarker { color: #aaa; }
        .cm-s-ambiance .CodeMirror-guttermarker-subtle { color: #111; }
        
        .cm-s-ambiance .CodeMirror-cursor { border-left: 1px solid #7991E8; }
        
        .cm-s-ambiance .CodeMirror-activeline-background {
          background: none repeat scroll 0% 0% rgba(255, 255, 255, 0.031);
        }
        
        .cm-s-ambiance.CodeMirror,
        .cm-s-ambiance .CodeMirror-gutters {
          background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAQAAAAHUWYVAABFFUlEQVQYGbzBCeDVU/74/6fj9HIcx/FRHx9JCFmzMyGRURhLZIkUsoeRfUjS2FNDtr6WkMhO9sm+S8maJfu+Jcsg+/o/c+Z4z/t97/vezy3z+z8ekGlnYICG/o7gdk+wmSHZ1z4pJItqapjoKXWahm8NmV6eOTbWUOp6/6a/XIg6GQqmenJ2lDHyvCFZ2cBDbmtHA043VFhHwXxClWmeYAdLhV00Bd85go8VmaFCkbVkzlQENzfBDZ5gtN7HwF0KDrTwJ0dypSOzpaKCMwQHKTIreYIxlmhXTzTWkVm+LTynZhiSBT3RZQ7aGfjGEd3qyXQ1FDymqbKxpspERQN2MiRjNZlFFQXfCNFm9nM1zpAsoYjmtRTc5ajwuaXc5xrWskT97RaKzAGe5ARHhVUsDbjKklziiX5WROcJwSNCNI+9w1Jwv4Zb2r7lCMZ4oq5C0EdTx+2GzNuKpJ+iFf38JEWkHJn9DNF7mmBDITrWEg0VWL3pHU20tSZnuqWu+R3BtYa8XxV1HO7GyD32UkOpL/yDloINFTmvtId+nmAjxRw40VMwVKiwrKLE4bK5UOVntYwhOcSSXKrJHKPJedocpGjVz/ZMIbnYUPB10/eKCrs5apqpgVmWzBYWpmtKHecJPjaUuEgRDDaU0oZghCJ6zNMQ5ZhDYx05r5v2muQdM0EILtXUsaKiQX9WMEUotagQzFbUNN6NUPC2nm5pxEWGCjMc3GdJHjSU2kORLK/JGSrkfGEIjncU/CYUnOipoYemwj8tST9NsJmB7TUVXtbUtXATJVZXBMvYeTXJfobgJUPmGMP/yFaWonaa6BcFO3nqcIqCozSZoZoSr1g4zJOzuyGnxTEX3lUEJ7WcZgme8ddaWvWJo2AJR9DZU3CUIbhCSG6ybSwN6qtJVnCU2svDTP2ZInOw2cBTrqtQahtNZn9NcJ4l2NaSmSkkP1noZWnVwkLmdUPOwLZEwy2Z3S3R+4rIG9hcbpPXHFVWcQdZkn2FOta3cKWQnNRC5g1LsJah4GCzSVsKnCOY5OAFRTBekyyryeyilhFKva75r4Mc0aWanGEaThcy31s439KKxTzJYY5WTHPU1FtIHjQU3Oip4xlNzj/lBw23dYZVliQa7WAXf4shetcQfatI+jWRDBPmyNeW6A1P5kdDgyYJlba0BIM8BZu1JfrFwItyjcAMR3K0BWOIrtMEXyhyrlVEx3ui5dUBjmB/Q3CXW85R4mBD0s7B+4q5tKUjOlb9qqmhi5AZ6GFIC5HXtOobdYGlVdMVbNJ8toNTFcHxnoL+muBagcctjWnbNMuR00uI7nQESwg5q2qqrKWIfrNUmeQocY6HuyxJV02wj36w00yhpmUFenv4p6fUkZYqLyuinx2RGOjhCXYyJF84oiU00YMOOhhquNdfbOB7gU88pY4xJO8LVdp6/q2voeB4R04vIdhSE40xZObx1HGGJ/ja0LBthFInKaLPPFzuCaYaoj8JjPME8yoyxo6zlBqkiUZYgq00OYMswbWO5NGmq+xhipxHLRW29ARjNKXO0wRnear8XSg4XFPLKEPUS1GqvyLwiuBUoa7zpZ0l5xxFwWmWZC1H5h5FwU8eQ7K+g8UcVY6TMQreVQT/8uQ8Z+ALIXnSEa2pYZQneE9RZbSBNYXfWYJzW/h/4j4Dp1tYVcFIC5019Vyi4ThPqSFCzjGWaHQTBU8q6vrVwgxP9Lkm840imWKpcLCjYTtrKuwvsKSnrvHCXGkSMk9p6lhckfRpIeis+N2PiszT+mFLspyGleUhDwcLrZqmyeylxwjBcKHEapqkmyangyLZRVOijwOtCY5SsG5zL0OwlCJ4y5KznF3EUNDDrinwiyLZRzOXtlBbK5ITHFGLp8Q0R6ab6mS7enI2cFrxOyHvOCFaT1HThS1krjCwqWeurCkk+willhCC+RSZnRXBiZaC5RXRIZYKp2lyfrHwiKPKR0JDzrdU2EFgpidawlFDR6FgXUMNa+g1FY3bUQh2cLCwosRdnuQTS/S+JVrGLeWIvtQUvONJxlqSQYYKpwoN2kaocLjdVsis4Mk80ESF2YpSkzwldjHkjFCUutI/r+EHDU8oCs6yzL3PhWiEooZdFMkymlas4AcI3KmoMMNSQ3tHzjGWCrcJJdYyZC7QFGwjRL9p+MrRkAGWzIaWCn9W0F3TsK01c2ZvQw0byvxuQU0r1lM0qJO7wW0kRIMdDTtXEdzi4VIh+EoIHm0mWtAtpCixlabgn83fKTI7anJe9ST7WIK1DMGpQmYeA58ImV6ezOGOzK2Kgq01pd60cKWiUi9Lievb/0vIDPHQ05Kzt4ddPckQBQtoaurjyHnek/nKzpQLrVgKPjIkh2v4uyezpv+Xoo7fPFXaGFp1vaLKxQ4uUpQQS5VuQs7BCq4xRJv7fwpVvvFEB3j+620haOuocqMhWd6TTPAEx+mdFNGHdranFe95WrWmIvlY4F1Dle2ECgc6cto7SryuqGGGha0tFQ5V53migUKmg6XKAo4qS3mik+0OZpAhOLeZKicacgaYcyx5hypYQE02ZA4xi/pNhOQxR4klNKyqacj+mpxnLTnnGSo85++3ZCZq6lrZkXlGEX3o+C9FieccJbZWVFjC0Yo1FZnJhoYMFoI1hEZ9r6hwg75HwzBNhbZCdJEfJwTPGzJvaKImw1yYX1HDAmpXR+ZJQ/SmgqMNVQb5vgamGwLtt7VwvP7Qk1xpiM5x5Cyv93E06MZmgs0Nya2azIKOYKCGBQQW97RmhKNKF02JZqHEJ4o58qp7X5EcZmc56trXEqzjCBZ1MFGR87Ql2tSTs6CGxS05PTzRQorkbw7aKoKXFDXsYW42VJih/q+FP2BdTzDTwVqOYB13liM50vG7wy28qagyuIXMeQI/Oqq8bcn5wJI50xH00CRntyfpL1T4hydYpoXgNiFzoIUTDZnLNRzh4TBHwbYGDvZkxmlyJloyr6tRihpeUG94GnKtIznREF0tzJG/OOr73JBcrSh1k6WuTprgLU+mnSGnv6Zge0NNz+kTDdH8nuAuTdJDCNb21LCiIuqlYbqGzT3RAoZofQfjFazkqeNWdYaGvYTM001EW2oKPvVk1ldUGSgUtHFwjKM1h9jnFcmy5lChoLNaQMGGDsYbKixlaMBmmsx1QjCfflwTfO/gckW0ruZ3jugKR3R5W9hGUWqCgxuFgsuaCHorotGKzGaeZB9DMsaTnKCpMtwTvOzhYk0rdrArKCqcaWmVk1+F372ur1YkKxgatI8Qfe1gIX9wE9FgS8ESmuABIXnRUbCapcKe+nO7slClSZFzpV/LkLncEb1qiO42fS3R855Su2mCLh62t1SYZZYVmKwIHjREF2uihTzB20JOkz7dkxzYQnK0UOU494wh+VWRc6Un2kpTaVgLDFEkJ/uhzRcI0YKGgpGWOlocBU/a4fKoJ/pEaNV6jip3+Es9VXY078rGnmAdf7t9ylPXS34RBSuYPs1UecZTU78WanhBCHpZ5sAoTz0LGZKjPf9TRypqWEiTvOFglL1fCEY3wY/++rbk7C8bWebA6p6om6PgOL2kp44TFJlVNBXae2rqqdZztOJpT87GQsE9jqCPIe9VReZuQ/CIgacsyZdCpIScSYqcZk8r+nsyCzhyfhOqHGOIvrLknC8wTpFcaYiGC/RU1NRbUeUpocQOnkRpGOrIOcNRx+1uA0UrzhSSt+VyS3SJpnFWkzNDqOFGIWcfR86DnmARTQ1HKIL33ExPiemeOhYSSjzlSUZZuE4TveoJLnBUOFof6KiysCbnAEcZgcUNTDOwkqWu3RWtmGpZwlHhJENdZ3miGz0lJlsKnjbwqSHQjpxnFDlTLLwqJPMZMjd7KrzkSG7VsxXBZE+F8YZkb01Oe00yyRK9psh5SYh29ySPKBo2ylNht7ZkZnsKenjKNJu9PNEyZpaCHv4Kt6RQsLvAVp7M9kIimmCUwGeWqLMmGuIotYMmWNpSahkhZw9FqZsVnKJhsjAHvtHMsTM9fCI06Dx/u3vfUXCqfsKRc4oFY2jMsoo/7DJDwZ1CsIKnJu+J9ldkpmiCxQx1rWjI+T9FwcWWzOuaYH0Hj7klNRVWEQpmaqosakiGNTFHdjS/qnUdmf0NJW5xsL0HhimCCZZSRzmSPTXJQ4aaztAwtZnoabebJ+htCaZ7Cm535ByoqXKbX1WRc4Eh2MkRXWzImVc96Cj4VdOKVxR84VdQsIUM8Psoou2byVHyZFuq7O8otbSQ2UAoeEWTudATLGSpZzVLlXVkPU2Jc+27lsw2jmg5T5VhbeE3BT083K9WsTTkFU/Osi0rC5lRlpwRHUiesNS0sOvmqGML1aRbPAxTJD9ZKtxuob+hhl8cwYGWpJ8nub7t5p6coYbMovZ1BTdaKn1jYD6h4GFDNFyT/Kqe1XCXphXHOKLZmuRSRdBPEfVUXQzJm5YGPGGJdvAEr7hHNdGZnuBvrpciGmopOLf5N0uVMy0FfYToJk90uUCbJupaVpO53UJXR2bVpoU00V2KOo4zMFrBd0Jtz2pa0clT5Q5L8IpQ177mWQejPMEJhuQjS10ref6HHjdEhy1P1EYR7GtO0uSsKJQYLiTnG1rVScj5lyazpqWGl5uBbRWl7m6ixGOOnEsMJR7z8J0n6KMnCdxhiNYQCoZ6CmYLnO8omC3MkW3bktlPmEt/VQQHejL3+dOE5FlPdK/Mq8hZxxJtLyRrepLThYKbLZxkSb5W52vYxNOaOxUF0yxMUPwBTYqCzy01XayYK0sJyWBLqX0MwU5CzoymRzV0EjjeUeLgDpTo6ij42ZAzvD01dHUUTPLU96MdLbBME8nFBn7zJCMtJcZokn8YoqU0FS5WFKyniHobguMcmW8N0XkWZjkyN3hqOMtS08r+/xTBwpZSZ3qiVRX8SzMHHjfUNFjgHEPmY9PL3ykEzxkSre/1ZD6z/NuznuB0RcE1TWTm9zRgfUWVJiG6yrzgmWPXC8EAR4Wxhlad0ZbgQyEz3pG5RVEwwDJH2mgKpjcTiCOzn1lfUWANFbZ2BA8balnEweJC9J0iuaeZoI+ippFCztEKVvckR2iice1JvhVytrQwUAZpgsubCPaU7xUe9vWnaOpaSBEspalykhC9bUlOMpT42ZHca6hyrqKmw/wMR8H5ZmdFoBVJb03O4UL0tSNnvIeRmkrLWqrs78gcrEn2tpcboh0UPOW3UUR9PMk4T4nnNKWmCjlrefhCwxRNztfmIQVdDElvS4m1/WuOujoZCs5XVOjtKPGokJzsYCtFYoWonSPT21DheU/wWhM19FcElwqNGOsp9Q8N/cwXaiND1MmeL1Q5XROtYYgGeFq1aTMsoMmcrKjQrOFQTQ1fmBYhmW6o8Jkjc7iDJRTBIo5kgJD5yMEYA3srCg7VFKwiVJkmRCc5ohGOKhsYMn/XBLdo5taZjlb9YAlGWRimqbCsoY7HFAXLa5I1HPRxMMsQDHFkWtRNniqT9UEeNjcE7RUlrCJ4R2CSJuqlKHWvJXjAUNcITYkenuBRB84TbeepcqTj3zZyFJzgYQdHnqfgI0ddUwS6GqWpsKWhjq9cV0vBAEMN2znq+EBfIWT+pClYw5xsTlJU6GeIBsjGmmANTzJZiIYpgrM0Oa8ZMjd7NP87jxhqGOhJlnQtjuQpB+8aEE00wZFznSJPyHxgH3HkPOsJFvYk8zqCHzTs1BYOa4J3PFU+UVRZxlHDM4YavlNUuMoRveiZA2d7grMNc2g+RbSCEKzmgYsUmWmazFJyoiOZ4KnyhKOGRzWJa0+moyV4TVHDzn51Awtqaphfk/lRQ08FX1iiqxTB/kLwd0VynKfEvI6cd4XMV5bMhZ7gZUWVzYQ6Nm2BYzxJbw3bGthEUUMfgbGeorae6DxHtJoZ6alhZ0+ytiVoK1R4z5PTrOECT/SugseEOlb1MMNR4VRNcJy+V1Hg9ONClSZFZjdHlc6W6FBLdJja2MC5hhpu0DBYEY1TFGwiFAxRRCsYkiM9JRb0JNMVkW6CZYT/2EiTGWmo8k+h4FhDNE7BvppoTSFnmCV5xZKzvcCdDo7VVPnIU+I+Rc68juApC90MwcFCsJ5hDqxgScYKreruyQwTqrzoqDCmhWi4IbhB0Yrt3RGa6GfDv52rKXWhh28dyZaWUvcZeMTBaZoSGyiCtRU5J8iviioHaErs7Jkj61syVzTTgOcUOQ8buFBTYWdL5g3T4qlpe0+wvD63heAXRfCCIed9RbCsp2CiI7raUOYOTU13N8PNHvpaGvayo4a3LLT1lDrVEPT2zLUlheB1R+ZTRfKWJ+dcocLJfi11vyJ51lLqJ0WD7tRwryezjiV5W28uJO9qykzX8JDe2lHl/9oyBwa2UMfOngpXCixvKdXTk3wrsKmiVYdZIqsoWEERjbcUNDuiaQomGoIbFdEHmsyWnuR+IeriKDVLnlawlyNHKwKlSU631PKep8J4Q+ayjkSLKYLhalNHlYvttb6fHm0p6OApsZ4l2VfdqZkjuysy6ysKLlckf1KUutCTs39bmCgEyyoasIWlVaMF7mgmWtBT8Kol5xpH9IGllo8cJdopcvZ2sImlDmMIbtDk3KIpeNiS08lQw11NFPTwVFlPP6pJ2gvRfI7gQUfmNAtf6Gs0wQxDsKGlVBdF8rCa3jzdwMaGHOsItrZk7hAyOzpK9VS06j5F49b0VNGOOfKs3lDToMsMBe9ZWtHFEgxTJLs7qrygKZjUnmCYoeAqeU6jqWuLJup4WghOdvCYJnrSkSzoyRkm5M2StQwVltPkfCAk58tET/CSg+8MUecmotMEnhBKfWBIZsg2ihruMJQaoIm+tkTLKEqspMh00w95gvFCQRtDwTT1gVDDSEVdlwqZfxoQRbK0g+tbiBZxzKlpnpypejdDwTaeOvorMk/IJE10h9CqRe28hhLbe0pMsdSwv4ZbhKivo2BjDWfL8UKJgeavwlwb5KlwhyE4u4XkGE2ytZCznKLCDZZq42VzT8HLCrpruFbIfOIINmh/qCdZ1ZBc65kLHR1Bkyf5zn6pN3SvGKIlFNGplhrO9QSXanLOMQTLCa0YJCRrCZm/CZmrLTm7WzCK4GJDiWUdFeYx1LCFg3NMd0XmCuF3Y5rITLDUsYS9zoHVzwnJoYpSTQoObyEzr4cFBNqYTopoaU/wkyLZ2lPhX/5Y95ulxGTV7KjhWrOZgl8MyUUafjYraNjNU1N3IWcjT5WzWqjwtoarHSUObGYO3GCJZpsBlnJGPd6ZYLyl1GdCA2625IwwJDP8GUKymbzuyPlZlvTUsaUh5zFDhRWFzPKKZLAlWdcQbObgF9tOqOsmB1dqcqYJmWstFbZRRI9poolmqiLnU0POvxScpah2iSL5UJNzgScY5+AuIbpO0YD3NCW+dLMszFSdFCWGqG6eVq2uYVNDdICGD6W7EPRWZEY5gpsE9rUkS3mijzzJnm6UpUFXG1hCUeVoS5WfNcFpblELL2qqrCvMvRfd45oalvKU2tiQ6ePJOVMRXase9iTtLJztPxJKLWpo2CRDcJwn2sWSLKIO1WQWNTCvpVUvOZhgSC40JD0dOctaSqzkCRbXsKlb11Oip6PCJ0IwSJM31j3akRxlP7Rwn6aGaUL0qiLnJkvB3xWZ2+Q1TfCwpQH3G0o92UzmX4o/oJNQMMSQc547wVHhdk+VCw01DFYEnTxzZKAm74QmeNNR1w6WzEhNK15VJzuCdxQ53dRUDws5KvwgBMOEgpcVNe0hZI6RXT1Jd0cyj5nsaEAHgVmGaJIlWdsc5Ui2ElrRR6jrRAttNMEAIWrTDFubkZaok7/AkzfIwfuWVq0jHzuCK4QabtLUMVPB3kJ0oyHTSVFlqMALilJf2Rf8k5aaHtMfayocLBS8L89oKoxpJvnAkDPa0qp5DAUTHKWmCcnthlou8iCKaFFLHWcINd1nyIwXqrSxMNmSs6KmoL2QrKuWtlQ5V0120xQ5vRyZS1rgFkWwhiOwiuQbR0OOVhQM9iS3tiXp4RawRPMp5tDletOOBL95MpM01dZTBM9pkn5qF010rIeHFcFZhmSGpYpTsI6nwhqe5C9ynhlpp5ophuRb6WcJFldkVnVEwwxVfrVkvnWUuNLCg5bgboFHPDlDPDmnK7hUrWiIbjadDclujlZcaokOFup4Ri1kacV6jmrrK1hN9bGwpKEBQ4Q6DvIUXOmo6U5LqQM6EPyiKNjVkPnJkDPNEaxhiFay5ExW1NXVUGqcpYYdPcGiCq7z/TSlbhL4pplWXKd7NZO5QQFrefhRQW/NHOsqcIglc4UhWklR8K0QzbAw08CBDnpbgqXdeD/QUsM4RZXDFBW6WJKe/mFPdH0LtBgiq57wFLzlyQzz82qYx5D5WJP5yVJDW01BfyHnS6HKO/reZqId1WGa4Hkh2kWodJ8i6KoIPlAj2hPt76CzXsVR6koPRzWTfKqIentatYpQw2me4AA3y1Kind3SwoOKZDcFXTwl9tWU6mfgRk9d71sKtlNwrjnYw5tC5n5LdKiGry3JKNlHEd3oaMCFHrazBPMp/uNJ+V7IudcSbeOIdjUEdwl0VHCOZo5t6YluEuaC9mQeMgSfOyKnYGFHcIeQ84yQWbuJYJpZw5CzglDH7gKnWqqM9ZTaXcN0TeYhR84eQtJT76JJ1lREe7WnnvsMmRc9FQ7SBBM9mV3lCUdmHk/S2RAMt0QjFNFqQpWjDPQ01DXWUdDBkXziKPjGEP3VP+zIWU2t7im41FOloyWzn/L6dkUy3VLDaZ6appgDLHPjJEsyvJngWEPUyVBiAaHCTEXwrLvSEbV1e1gKJniicWorC1MUrVjB3uDhJE/wgSOzk1DXpk0k73qCM8xw2UvD5kJmDUfOomqMpWCkJRlvKXGmoeBm18USjVIk04SClxTB6YrgLAPLWYK9HLUt5cmc0vYES8GnTeRc6skZbQkWdxRsIcyBRzx1DbTk9FbU0caTPOgJHhJKnOGIVhQqvKmo0llRw9sabrZkDtdg3PqaKi9oatjY8B+G371paMg6+mZFNNtQ04mWBq3rYLOmtWWQp8KJnpy9DdFensyjdqZ+yY40VJlH8wcdLzC8PZnvHMFUTZUrDTkLyQaGus5X5LzpYAf3i+e/ZlhqGqWhh6Ou6xTR9Z6oi5AZZtp7Mj2EEm8oSpxiYZCHU/1fbGdNNNRRoZMhmilEb2gqHOEJDtXkHK/JnG6IrvbPCwV3NhONVdS1thBMs1T4QOBcTWa2IzhMk2nW5Kyn9tXUtpv9RsG2msxk+ZsQzRQacJncpgke0+T8y5Fzj8BiGo7XlJjaTIlpQs7KFjpqGnKuoyEPeIKnFMkZHvopgh81ySxNFWvJWcKRs70j2FOT012IllEEO1n4pD1513Yg2ssQPOThOkvyrqHUdEXOSEsihmBbTbKX1kLBPWqWkLOqJbjB3GBIZmoa8qWl4CG/iZ7oiA72ZL7TJNeZUY7kFQftDcHHluBzRbCegzMtrRjVQpX2lgoPKKLJAkcbMl01XK2p7yhL8pCBbQ3BN2avJgKvttcrWDK3CiUOVxQ8ZP+pqXKyIxnmBymCg5vJjNfkPK4+c8cIfK8ocVt7kmfd/I5SR1hKvCzUtb+lhgc00ZaO6CyhIQP1Uv4yIZjload72PXX0OIJvnFU+0Zf6MhsJwTfW0r0UwQfW4LNLZl5HK261JCZ4qnBaAreVAS3WrjV0LBnNDUNNDToCEeFfwgcb4gOEqLRhirWkexrCEYKVV711DLYEE1XBEsp5tpTGjorkomKYF9FDXv7fR3BGwbettSxnyL53MBPjsxDZjMh+VUW9NRxq1DhVk+FSxQcaGjV9Pawv6eGByw5qzoy7xk4RsOShqjJwWKe/1pEEfzkobeD/dQJmpqedcyBTy2sr4nGNRH0c0SPWTLrqAc0OQcb/gemKgqucQT7ySWKCn2EUotoCvpZct7RO2sy/QW0IWcXd7pQRQyZVwT2USRO87uhjioTLKV2brpMUcMQRbKH/N2T+UlTpaMls6cmc6CCNy3JdYYSUzzJQ4oSD3oKLncULOiJvjBEC2oqnCJkJluCYy2ZQ5so9YYlZ1VLlQU1mXEW1jZERwj/MUSRc24TdexlqLKfQBtDTScJUV8FszXBEY5ktpD5Ur9hYB4Nb1iikw3JoYpkKX+RodRKFt53MMuRnKSpY31PwYaGaILh3wxJGz9TkTPEETxoCWZrgvOlmyMzxFEwVJE5xZKzvyJ4WxEc16Gd4Xe3Weq4XH2jKRikqOkGQ87hQnC7wBmGYLAnesX3M+S87eFATauuN+Qcrh7xIxXJbUIdMw3JGE3ylCWzrieaqCn4zhGM19TQ3z1oH1AX+pWEqIc7wNGAkULBo/ZxRaV9NNyh4Br3rCHZzbzmSfawBL0dNRwpW1kK9mxPXR9povcdrGSZK9c2k0xwFGzjuniCtRSZCZ6ccZ7gaktmgAOtKbG/JnOkJrjcQTdFMsxRQ2cLY3WTIrlCw1eWKn8R6pvt4GFDso3QoL4a3nLk3G6JrtME3dSenpx7PNFTmga0EaJTLQ061sEeQoWXhSo9LTXsaSjoJQRXeZLtDclbCrYzfzHHeaKjHCVOUkQHO3JeEepr56mhiyaYYKjjNU+Fed1wS5VlhWSqI/hYUdDOkaxiKehoyOnrCV5yBHtbWFqTHCCwtpDcYolesVR5yUzTZBb3RNMd0d6WP+SvhuBmRcGxnuQzT95IC285cr41cLGQ6aJJhmi4TMGempxeimBRQw1tFKV+8jd6KuzoSTqqDxzRtpZkurvKEHxlqXKRIjjfUNNXQsNOsRScoWFLT+YeRZVD3GRN0MdQcKqQjHDMrdGGVu3iYJpQx3WGUvfbmxwFfR20WBq0oYY7LMFhhgYtr8jpaEnaOzjawWWaTP8mMr0t/EPDPoqcnxTBI5o58L7uoWnMrpoqPwgVrlAUWE+V+TQl9rawoyP6QGAlQw2TPRX+YSkxyBC8Z6jhHkXBgQL7WII3DVFnRfCrBfxewv9D6xsyjys4VkhWb9pUU627JllV0YDNHMku/ldNMMXDEo4aFnAkk4U6frNEU4XgZUPmEKHUl44KrzmYamjAbh0JFvGnaTLPu1s9jPCwjFpYiN7z1DTOk/nc07CfDFzmCf7i+bfNHXhDtLeBXzTBT5rkMvWOIxpl4EMh2LGJBu2syDnAEx2naEhHDWMMzPZEhygyS1mS5RTJr5ZkoKbEUoYqr2kqdDUE8ztK7OaIntJkFrIECwv8LJTaVx5XJE86go8dFeZ3FN3rjabCAYpoYEeC9zzJVULBbmZhDyd7ko09ydpNZ3nm2Kee4FPPXHnYEF1nqOFEC08LUVcDvYXkJHW8gTaKCk9YGOeIJhqiE4ToPEepdp7IWFjdwnWaufGMwJJCMtUTTBBK9BGCOy2tGGrJTHIwyEOzp6aPzNMOtlZkDvcEWpP5SVNhfkvDxhmSazTJXYrM9U1E0xwFVwqZQwzJxw6+kGGGUj2FglGGmnb1/G51udRSMNlTw6GGnCcUwVcOpmsqTHa06o72sw1RL02p9z0VbnMLOaIX3QKaYKSCFQzBKEUNHTSc48k53RH9wxGMtpQa5KjjW0W0n6XCCCG4yxNNdhQ4R4l1Ff+2sSd6UFHiIEOyqqFgT01mEUMD+joy75jPhOA+oVVLm309FR4yVOlp4RhLiScNmSmaYF5Pw0STrOIoWMSR2UkRXOMp+M4SHW8o8Zoi6OZgjKOaFar8zZDzkWzvKOjkKBjmCXby8JahhjXULY4KlzgKLvAwxVGhvyd4zxB1d9T0piazmKLCVZY5sKiD0y2ZSYrkUEPUbIk+dlQ4SJHTR50k1DPaUWIdTZW9NJwnJMOECgd7ou/MnppMJ02O1VT4Wsh85MnZzcFTngpXGKo84qmwgKbCL/orR/SzJ2crA+t6Mp94KvxJUeIbT3CQu1uIdlQEOzlKfS3UMcrTiFmOuroocrZrT2AcmamOKg8YomeEKm/rlT2sociMaybaUlFhuqHCM2qIJ+rg4EcDFymiDSxzaHdPcpE62pD5kyM5SBMoA1PaUtfIthS85ig1VPiPPYXgYEMNk4Qq7TXBgo7oT57gPUdwgCHzhIVFPFU6OYJzHAX9m5oNrVjeE61miDrqQ4VSa1oiURTsKHC0IfjNwU2WzK6eqK8jWln4g15TVBnqmDteCJ501PGAocJhhqjZdtBEB6lnhLreFJKxmlKbeGrqLiSThVIbCdGzloasa6lpMQXHCME2boLpJgT7yWaemu6wBONbqGNVRS0PKIL7LckbjmQtR7K8I5qtqel+T/ChJTNIKLjdUMNIRyvOEko9YYl2cwQveBikCNawJKcLBbc7+JM92mysNvd/Fqp8a0k6CNEe7cnZrxlW0wQXaXjaktnRwNOGZKYiONwS7a1JVheq3WgJHlQUGKHKmp4KAxXR/ULURcNgoa4zhKSLpZR3kxRRb0NmD0OFn+UCS7CzI1nbP6+o4x47QZE5xRCt3ZagnYcvmpYQktXdk5YKXTzBC57kKEe0VVuiSYqapssMS3C9p2CKkHOg8B8Pa8p5atrIw3qezIWanMGa5HRDNF6RM9wcacl0N+Q8Z8hsIkSnaIIdHRUOEebAPy1zbCkhM062FCJtif7PU+UtoVXzWKqM1PxXO8cfdruhFQ/a6x3JKYagvVDhQEtNiyiiSQ7OsuRsZUku0CRNDs4Sog6KKjsZgk2bYJqijgsEenoKeniinRXBn/U3lgpPdyDZynQx8IiioMnCep5Ky8mjGs6Wty0l1hUQTcNWswS3WRp2kCNZwJG8omG8JphPUaFbC8lEfabwP7VtM9yoaNCAjpR41VNhrD9LkbN722v0CoZMByFzhaW+MyzRYEWFDQwN2M4/JiT76PuljT3VU/A36eaIThb+R9oZGOAJ9tewkgGvqOMNRWYjT/Cwu99Q8LqDE4TgbLWxJ1jaDDAERsFOFrobgjUsBScaguXU8kKm2RL19tRypSHnHNlHiIZqgufs4opgQdVdwxBNNFBR6kVFqb8ogimOzB6a6HTzrlDHEpYaxjiiA4TMQobkDg2vejjfwJGWmnbVFAw3H3hq2NyQfG7hz4aC+w3BbwbesG0swYayvpAs6++Ri1Vfzx93mFChvyN5xVHTS+0p9aqCAxyZ6ZacZyw5+7uuQkFPR9DDk9NOiE7X1PCYJVjVUqq7JlrHwWALF5nfHNGjApdpqgzx5OwilDhCiDYTgnc9waGW4BdLNNUQvOtpzDOWHDH8D7TR/A/85KljEQu3NREc4Pl/6B1Hhc8Umb5CsKMmGC9EPcxoT2amwHNCmeOEnOPbklnMkbOgIvO5UMOpQrS9UGVdt6iH/fURjhI/WOpaW9OKLYRod6HCUEdOX000wpDZQ6hwg6LgZfOqo1RfT/CrJzjekXOGhpc1VW71ZLbXyyp+93ILbC1kPtIEYx0FIx1VDrLoVzXRKRYWk809yYlC9ImcrinxtabKnzRJk3lAU1OLEN1j2zrYzr2myHRXJFf4h4QKT1qSTzTB5+ZNTzTRkAxX8FcLV2uS8eoQQ2aAkFzvCM72sJIcJET3WPjRk5wi32uSS9rfZajpWEvj9hW42F4o5NytSXYy8IKHay10VYdrcl4SkqscrXpMwyGOgtkajheSxdQqmpxP1L3t4R5PqasFnrQEjytq6qgp9Y09Qx9o4S1FzhUCn1kyHSzBWLemoSGvOqLNhZyBjmCaAUYpMgt4Ck7wBBMMwWKWgjsUwTaGVsxWC1mYoKiyqqeGKYqonSIRQ3KIkHO0pmAxTdBHkbOvfllfr+AA+7gnc50huVKYK393FOyg7rbPO/izI7hE4CnHHHnJ0ogNPRUGeUpsrZZTBJcrovUcJe51BPsr6GkJdhCCsZ6aTtMEb2pqWkqeVtDXE/QVggsU/Nl86d9RMF3DxvZTA58agu810RWawCiSzzXBeU3MMW9oyJUedvNEvQyNu1f10BSMddR1vaLCYpYa/mGocLSiYDcLbQz8aMn5iyF4xBNMs1P0QEOV7o5gaWGuzSeLue4tt3ro7y4Tgm4G/mopdZgl6q0o6KzJWE3mMksNr3r+a6CbT8g5wZNzT9O7fi/zpaOmnz3BRoqos+tv9zMbdpxsqDBOEewtJLt7cg5wtKKbvldpSzRRCD43VFheCI7yZLppggMVBS/KMAdHODJvOwq2NQSbKKKPLdFWQs7Fqo+mpl01JXYRgq8dnGLhTiFzqmWsUMdpllZdbKlyvSdYxhI9YghOtxR8LgSLWHK62mGGVoxzBE8LNWzqH9CUesQzFy5RQzTc56mhi6fgXEWwpKfE5Z7M05ZgZUPmo6auiv8YKzDYwWBLMErIbKHJvOwIrvEdhOBcQ9JdU1NHQ7CXn2XIDFBKU2WAgcX9UAUzDXWd5alwuyJ41Z9rjKLCL4aCp4WarhPm2rH+SaHUYE001JDZ2ZAzXPjdMpZWvC9wmqIB2lLhQ01D5jO06hghWMndbM7yRJMsoCj1vYbnFQVrW9jak3OlEJ3s/96+p33dEPRV5GxiqaGjIthUU6FFEZyqCa5qJrpBdzSw95IUnOPIrCUUjRZQFrbw5PR0R1qiYx3cb6nrWUMrBmmiBQxVHtTew5ICP/ip6g4hed/Akob/32wvBHsIOX83cI8hGeNeNPCIkPmXe8fPKx84OMSRM1MTdXSwjCZ4S30jVGhvqTRak/OVhgGazHuOCud5onEO1lJr6ecVyaOK6H7zqlBlIaHE0oroCgfvGJIdPcmfLNGLjpz7hZwZQpUbFME0A1cIJa7VNORkgfsMBatbKgwwJM9bSvQXeNOvbIjelg6WWvo5kvbKaJJNHexkKNHL9xRyFlH8Ti2riB5wVPhUk7nGkJnoCe428LR/wRGdYIlmWebCyxou1rCk4g/ShugBDX0V0ZQWkh0dOVsagkM0yV6OoLd5ye+pRlsCr0n+KiQrGuq5yJDzrTAXHtLUMduTDBVKrSm3eHL+6ijxhFDX9Z5gVU/wliHYTMiMFpKLNMEywu80wd3meoFmt6VbRMPenhrOc6DVe4pgXU8DnnHakLOIIrlF4FZPIw6R+zxBP0dyq6OOZ4Q5sLKCcz084ok+VsMMyQhNZmmBgX5xIXOEJTmi7VsGTvMTNdHHhpzdbE8Du2oKxgvBqQKdDDnTFOylCFaxR1syz2iqrOI/FEpNc3C6f11/7+ASS6l2inq2ciTrCCzgyemrCL5SVPjQkdPZUmGy2c9Sw9FtR1sS30RmsKPCS4rkIC/2U0MduwucYolGaPjKEyhzmiPYXagyWbYz8LWBDdzRimAXzxx4z8K9hpzlhLq+NiQ97HuKorMUfK/OVvC2JfiHUPCQI/q7J2gjK+tTDNxkCc4TMssqCs4TGtLVwQihyoAWgj9bosU80XGW6Ac9TJGziaUh5+hnFcHOnlaM1iRn29NaqGENTTTSUHCH2tWTeV0osUhH6psuVLjRUmGWhm6OZEshGeNowABHcJ2Bpy2ZszRcKkRXd2QuKVEeXnbfaEq825FguqfgfE2whlChSRMdron+LATTPQ2Z369t4B9C5gs/ylzv+CMmepIDPclFQl13W0rspPd1JOcbghGOEutqCv5qacURQl3dDKyvyJlqKXGPgcM9FfawJAMVmdcspcYKOZc4GjDYkFlK05olNMHyHn4zFNykyOxt99RkHlfwmiHo60l2EKI+mhreEKp080Tbug08BVPcgoqC5zWt+NLDTZ7oNSF51N1qie7Va3uCCwyZbkINf/NED6jzOsBdZjFN8oqG3wxVunqCSYYKf3EdhJyf9YWGf7tRU2oH3VHgPr1fe5J9hOgHd7xQ0y7qBwXr23aGErP0cm64JVjZwsOGqL+mhNgZmhJLW2oY4UhedsyBgzrCKrq7BmcpNVhR6jBPq64Vgi+kn6XE68pp8J5/+0wRHGOpsKenQn9DZntPzjRLZpDAdD2fnSgkG9tmIXnUwQ6WVighs7Yi2MxQ0N3CqYaCXkJ0oyOztMDJjmSSpcpvlrk0RMMOjmArQ04PRV1DO1FwhCVaUVPpKUM03JK5SxPsIWRu8/CGHi8UHChiqGFDTbSRJWeYUDDcH6vJWUxR4k1FXbMUwV6e4AJFXS8oMqsZKqzvYQ9DDQdZckY4aGsIhtlubbd2r3j4QBMoTamdPZk7O/Bf62lacZwneNjQoGcdVU7zJOd7ghsUHOkosagic6cnWc8+4gg285R6zZP5s1/LUbCKIznTwK36PkdwlOrl4U1LwfdCCa+IrvFkmgw1PCAUXKWo0sURXWcI2muKJlgyFzhynCY4RBOsqCjoI1R5zREco0n2Vt09BQtYSizgKNHfUmUrQ5UOCh51BFcLmY7umhYqXKQomOop8bUnWNNQcIiBcYaC6xzMNOS8JQQfeqKBmmglB+97ok/lfk3ygaHSyZaCRTzRxQo6GzLfa2jWBPepw+UmT7SQEJyiyRkhBLMVOfcoMjcK0eZChfUNzFAUzCsEN5vP/X1uP/n/aoMX+K+nw/Hjr/9xOo7j7Pju61tLcgvJpTWXNbfN5jLpi6VfCOviTktKlFusQixdEKWmEBUKNaIpjZRSSOXSgzaaKLdabrm1/9nZ+/f+vd/vz/v9+Xy+zZ7PRorYoZqyLrCwQdEAixxVOEXNNnjX2nUSRlkqGmWowk8lxR50JPy9Bo6qJXaXwNvREBvnThPEPrewryLhcAnj5WE15Fqi8W7R1sAuEu86S4ENikItFN4xkv9Af4nXSnUVcLiA9xzesFpivRRVeFKtsMRaKBhuSbjOELnAUtlSQUpXgdfB4Z1oSbnFEetbQ0IrAe+Y+pqnDcEJFj6S8LDZzZHwY4e3XONNlARraomNEt2bkvGsosA3ioyHm+6jCMbI59wqt4eeara28IzEmyPgoRaUOEDhTVdEJhmCoTWfC0p8aNkCp0oYqih2iqGi4yXeMkOsn4LdLLnmKfh/YogjNsPebeFGR4m9BJHLzB61XQ3BtpISfS2FugsK9FAtLWX1dCRcrCnUp44CNzuCowUZmxSRgYaE6Za0W2u/E7CVXCiI/UOR8aAm1+OSyE3mOUcwyc1zBBeoX1kiKy0Zfxck1Gsyulti11i83QTBF5Kg3pDQThFMVHiPSlK+0cSedng/VaS8bOZbtsBcTcZAR8JP5KeqQ1OYKAi20njdNNRpgnsU//K+JnaXJaGTomr7aYIphoRn9aeShJWKEq9LcozSF7QleEfDI5LYm5bgVkFkRwVDBCVu0DDIkGupo8TZBq+/pMQURYErJQmPKGKjNDkWOLx7Jd5QizdUweIaKrlP7SwJDhZvONjLkOsBBX9UpGxnydhXkfBLQ8IxgojQbLFnJf81JytSljclYYyEFyx0kVBvKWOFJmONpshGAcsduQY5giVNCV51eOdJYo/pLhbvM0uDHSevNKRcrKZIqnCtJeEsO95RoqcgGK4ocZcho1tTYtcZvH41pNQ7vA0WrhIfOSraIIntIAi+NXWCErdbkvrWwjRLrt0NKUdL6KSOscTOdMSOUtBHwL6OLA0vNSdynaWQEnCpIvKaIrJJEbvHkmuNhn6OjM8VkSGSqn1uYJCGHnq9I3aLhNME3t6GjIkO7xrNFumpyTNX/NrwX7CrIRiqqWijI9JO4d1iieykyfiposQIQ8YjjsjlBh6oHWbwRjgYJQn2NgSnNycmJAk3NiXhx44Sxykihxm8ybUwT1OVKySc7vi3OXVkdBJ4AyXBeksDXG0IhgtYY0lY5ahCD0ehborIk5aUWRJviMA7Xt5kyRjonrXENkm8yYqgs8VzgrJmClK20uMM3jRJ0FiQICQF9hdETlLQWRIb5ki6WDfWRPobvO6a4GP5mcOrNzDFELtTkONLh9dXE8xypEg7z8A9jkhrQ6Fhjlg/QVktJXxt4WXzT/03Q8IaQWSqIuEvloQ2mqC9Jfi7wRul4RX3pSPlzpoVlmCtI2jvKHCFhjcM3sN6lqF6HxnKelLjXWbwrpR4xzuCrTUZx2qq9oAh8p6ixCUGr78g8oyjRAtB5CZFwi80VerVpI0h+IeBxa6Zg6kWvpDHaioYYuEsRbDC3eOmC2JvGYLeioxGknL2UATNJN6hmtj1DlpLvDVmocYbrGCVJKOrg4X6DgddLA203BKMFngdJJFtFd7vJLm6KEpc5yjQrkk7M80SGe34X24nSex1Ra5Omgb71JKyg8SrU3i/kARKwWpH0kOGhKkObyfd0ZGjvyXlAkVZ4xRbYJ2irFMkFY1SwyWxr2oo4zlNiV+7zmaweFpT4kR3kaDAFW6xpSqzJay05FtYR4HmZhc9UxKbbfF2V8RG1MBmSaE+kmC6JnaRXK9gsiXhJHl/U0qM0WTcbyhwkYIvFGwjSbjfwhiJt8ZSQU+Bd5+marPMOkVkD0muxYLIfEuhh60x/J92itguihJSEMySVPQnTewnEm+620rTQEMsOfo4/kP/0ARvWjitlpSX7GxBgcMEsd3EEeYWvdytd+Saawi6aCIj1CkGb6Aj9rwhx16Cf3vAwFy5pyLhVonXzy51FDpdEblbkdJbUcEPDEFzQ8qNmhzzLTmmKWKbFCXeEuRabp6rxbvAtLF442QjQ+wEA9eL1xSR7Q0JXzlSHjJ4exq89yR0laScJ/FW6z4a73pFMEfDiRZvuvijIt86RaSFOl01riV2mD1UEvxGk/Geg5aWwGki1zgKPG9J2U8PEg8qYvMsZeytiTRXBMslCU8JSlxi8EabjwUldlDNLfzTUmCgxWsjqWCOHavYAqsknKFIO0yQ61VL5AVFxk6WhEaCAkdJgt9aSkzXlKNX2jEa79waYuc7gq0N3GDJGCBhoiTXUEPsdknCUE1CK0fwsiaylSF2uiDyO4XX3pFhNd7R4itFGc0k/ElBZwWvq+GC6szVeEoS/MZ+qylwpKNKv9Z469UOjqCjwlusicyTxG6VpNxcQ8IncoR4RhLbR+NdpGGmJWOcIzJGUuKPGpQg8rrG21dOMqQssJQ4RxH5jaUqnZuQ0F4Q+cjxLwPtpZbIAk3QTJHQWBE5S1BokoVtDd6lhqr9UpHSUxMcIYl9pojsb8h4SBOsMQcqvOWC2E8EVehqiJ1hrrAEbQxeK0NGZ0Gkq+guSRgniM23bIHVkqwx4hiHd7smaOyglyIyQuM978j4VS08J/A2G1KeMBRo4fBaSNhKUEZfQewVQ/C1I+MgfbEleEzCUw7mKXI0M3hd1EESVji8x5uQ41nxs1q4RMJCCXs7Iq9acpxn22oSDnQ/sJTxsCbHIYZiLyhY05TY0ZLIOQrGaSJDDN4t8pVaIrsqqFdEegtizc1iTew5Q4ayBDMUsQMkXocaYkc0hZua412siZ1rSXlR460zRJ5SlHGe5j801RLMlJTxtaOM3Q1pvxJ45zUlWFD7rsAbpfEm1JHxG0eh8w2R7QQVzBUw28FhFp5QZzq8t2rx2joqulYTWSuJdTYfWwqMFMcovFmSyJPNyLhE4E10pHzYjOC3huArRa571ZsGajQpQx38SBP5pyZB6lMU3khDnp0MBV51BE9o2E+TY5Ml2E8S7C0o6w1xvCZjf0HkVEHCzFoyNmqC+9wdcqN+Tp7jSDheE9ws8Y5V0NJCn2bk2tqSY4okdrEhx1iDN8cSudwepWmAGXKcJXK65H9to8jYQRH7SBF01ESUJdd0TayVInaWhLkOjlXE5irKGOnI6GSWGCJa482zBI9rCr0jyTVcEuzriC1vcr6mwFGSiqy5zMwxBH/TJHwjSPhL8+01kaaSUuMFKTcLEvaUePcrSmwn8DZrgikWb7CGPxkSjhQwrRk57tctmxLsb9sZvL9LSlyuSLlWkqOjwduo8b6Uv1DkmudIeFF2dHCgxVtk8dpIvHpBxhEOdhKk7OLIUSdJ+cSRY57B+0DgGUUlNfpthTfGkauzxrvTsUUaCVhlKeteTXCoJDCa2NOKhOmC4G1H8JBd4OBZReSRGkqcb/CO1PyLJTLB4j1q8JYaIutEjSLX8YKM+a6phdMsdLFUoV5RTm9JSkuDN8WcIon0NZMNZWh1q8C7SJEwV5HxrmnnTrf3KoJBlmCYI2ilSLlfEvlE4011NNgjgthzEua0oKK7JLE7HZHlEl60BLMVFewg4EWNt0ThrVNEVkkiTwpKXSWJzdRENgvKGq4IhjsiezgSFtsfCUq8qki5S1LRQeYQQ4nemmCkImWMw3tFUoUBZk4NOeZYEp4XRKTGa6wJjrWNHBVJR4m3FCnbuD6aak2WsMTh3SZImGCIPKNgsDpVwnsa70K31lCFJZYcwwSMFcQulGTsZuEaSdBXkPGZhu0FsdUO73RHjq8MPGGIfaGIbVTk6iuI3GFgucHrIQkmWSJdBd7BBu+uOryWAhY7+Lki9rK5wtEQzWwvtbqGhIMFwWRJsElsY4m9IIg9L6lCX0VklaPAYkfkZEGDnOWowlBJjtMUkcGK4Lg6EtoZInMUBVYLgn0UsdmCyCz7gIGHFfk+k1QwTh5We7A9x+IdJ6CvIkEagms0hR50eH9UnTQJ+2oiKyVlLFUE+8gBGu8MQ3CppUHesnjTHN4QB/UGPhCTHLFPHMFrCqa73gqObUJGa03wgbhHkrCfpEpzNLE7JDS25FMKhlhKKWKfCgqstLCPu1zBXy0J2ztwjtixBu8UTRn9LVtkmCN2iyFhtME70JHRQ1KVZXqKI/KNIKYMCYs1GUMEKbM1bKOI9LDXC7zbHS+bt+1MTWS9odA9DtrYtpbImQJ2VHh/lisEwaHqUk1kjKTAKknkBEXkbkdMGwq0dnhzLJF3NJH3JVwrqOB4Sca2hti75nmJN0WzxS6UxDYoEpxpa4htVlRjkYE7DZGzJVU72uC9IyhQL4i8YfGWSYLLNcHXloyz7QhNifmKSE9JgfGmuyLhc403Xm9vqcp6gXe3xuuv8F6VJNxkyTHEkHG2g0aKXL0MsXc1bGfgas2//dCONXiNLCX+5mB7eZIl1kHh7ajwpikyzlUUWOVOsjSQlsS+M0R+pPje/dzBXRZGO0rMtgQrLLG9VSu9n6CMXS3BhwYmSoIBhsjNBmZbgusE9BCPCP5triU4VhNbJfE+swSP27aayE8tuTpYYjtrYjMVGZdp2NpS1s6aBnKSHDsbKuplKbHM4a0wMFd/5/DmGyKrJSUaW4IBrqUhx0vyfzTBBLPIUcnZdrAkNsKR0sWRspumSns6Ch0v/qqIbBYUWKvPU/CFoyrDJGwSNFhbA/MlzKqjrO80hRbpKx0Jewsi/STftwGSlKc1JZyAzx05dhLEdnfQvhZOqiHWWEAHC7+30FuRcZUgaO5gpaIK+xsiHRUsqaPElTV40xQZQ107Q9BZE1nryDVGU9ZSQ47bmhBpLcYpUt7S+xuK/FiT8qKjwXYw5ypS2iuCv7q1gtgjhuBuB8LCFY5cUuCNtsQOFcT+4Ih9JX+k8Ea6v0iCIRZOtCT0Et00JW5UeC85Cg0ScK0k411HcG1zKtre3SeITBRk7WfwDhEvaYLTHP9le0m8By0JDwn4TlLW/aJOvGHxdjYUes+ScZigCkYQdNdEOhkiezgShqkx8ueKjI8lDfK2oNiOFvrZH1hS+tk7NV7nOmLHicGWEgubkXKdwdtZknCLJXaCpkrjZBtLZFsDP9CdxWsSr05Sxl6CMmoFbCOgryX40uDtamB7SVmXW4Ihlgpmq+00tBKUUa83WbjLUNkzDmY7cow1JDygyPGlhgGKYKz4vcV7QBNbJIgM11TUqZaMdwTeSguH6rOaw1JRKzaaGyxVm2EJ/uCIrVWUcZUkcp2grMsEjK+DMwS59jQk3Kd6SEq1d0S6uVmO4Bc1lDXTUcHjluCXEq+1OlBDj1pi9zgiXxnKuE0SqTXwhqbETW6RggMEnGl/q49UT2iCzgJvRwVXS2K/d6+ZkyUl7jawSVLit46EwxVljDZwoSQ20sDBihztHfk2yA8NVZghiXwrYHQdfKAOtzsayjhY9bY0yE2CWEeJ9xfzO423xhL5syS2TFJofO2pboHob0nY4GiAgRrvGQEDa/FWSsoaaYl0syRsEt3kWoH3B01shCXhTUWe9w3Bt44SC9QCh3eShQctwbaK2ApLroGCMlZrYqvlY3qYhM0aXpFkPOuoqJ3Dm6fxXrGwVF9gCWZagjPqznfkuMKQ8DPTQRO8ZqG1hPGKEm9IgpGW4DZDgTNriTxvFiq+Lz+0cKfp4wj6OCK9JSnzNSn9LFU7UhKZZMnYwcJ8s8yRsECScK4j5UOB95HFO0CzhY4xJxuCix0lDlEUeMdS6EZBkTsUkZ4K74dugyTXS7aNgL8aqjDfkCE0ZbwkCXpaWCKhl8P7VD5jxykivSyxyZrYERbe168LYu9ZYh86IkscgVLE7tWPKmJv11CgoyJltMEbrohtVAQfO4ImltiHEroYEs7RxAarVpY8AwXMcMReFOTYWe5iiLRQxJ5Q8DtJ8LQhWOhIeFESPGsILhbNDRljNbHzNRlTFbk2S3L0NOS6V1KFJYKUbSTcIIhM0wQ/s2TM0SRMNcQmSap3jCH4yhJZKSkwyRHpYYgsFeQ4U7xoCB7VVOExhXepo9ABBsYbvGWKXPME3lyH95YioZ0gssQRWWbI+FaSMkXijZXwgiTlYdPdkNLaETxlyDVIwqeaEus0aTcYcg0RVOkpR3CSJqIddK+90JCxzsDVloyrFd5ZAr4TBKfaWa6boEA7C7s6EpYaeFPjveooY72mjIccLHJ9HUwVlDhKkmutJDJBwnp1rvulJZggKDRfbXAkvC/4l3ozQOG9a8lxjx0i7nV4jSXc7vhe3OwIxjgSHjdEhhsif9YkPGlus3iLFDnWOFhtCZbJg0UbQcIaR67JjthoCyMEZRwhiXWyxO5QxI6w5NhT4U1WsJvDO60J34fW9hwzwlKij6ZAW9ne4L0s8C6XeBMEkd/LQy1VucBRot6QMlbivaBhoBgjqGiCJNhsqVp/S2SsG6DIONCR0dXhvWbJ+MRRZJkkuEjgDXJjFQW6SSL7GXK8Z2CZg7cVsbWGoKmEpzQ5elpiy8Ryg7dMkLLUEauzeO86CuwlSOlgYLojZWeJ9xM3S1PWfEfKl5ISLQ0MEKR8YOB2QfCxJBjrKPCN4f9MkaSsqoVXJBmP7EpFZ9UQfOoOFwSzBN4MQ8LsGrymlipcJQhmy0GaQjPqCHaXRwuCZwRbqK2Fg9wlClZqYicrIgMdZfxTQ0c7TBIbrChxmuzoKG8XRaSrIhhiyNFJkrC7oIAWMEOQa5aBekPCRknCo4IKPrYkvCDI8aYmY7WFtprgekcJZ3oLIqssCSMtFbQTJKwXYy3BY5oCh2iKPCpJOE+zRdpYgi6O2KmOAgvVCYaU4ySRek1sgyFhJ403QFHiVEmJHwtybO1gs8Hr5+BETQX3War0qZngYGgtVZtoqd6vFSk/UwdZElYqyjrF4HXUeFspIi9IGKf4j92pKGAdCYMVsbcV3kRF0N+R8LUd5PCsIGWoxDtBkCI0nKofdJQxT+LtZflvuc8Q3CjwWkq8KwUpHzkK/NmSsclCL0nseQdj5FRH5CNHSgtLiW80Of5HU9Hhlsga9bnBq3fEVltKfO5IaSTmGjjc4J0otcP7QsJUSQM8pEj5/wCuUuC2DWz8AAAAAElFTkSuQmCC");
        }
        
      • base16-dark.css
        /*
        
            Name:       Base16 Default Dark
            Author:     Chris Kempson (http://chriskempson.com)
        
            CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
            Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
        
        */
        
        .cm-s-base16-dark.CodeMirror { background: #151515; color: #e0e0e0; }
        .cm-s-base16-dark div.CodeMirror-selected { background: #303030; }
        .cm-s-base16-dark .CodeMirror-line::selection, .cm-s-base16-dark .CodeMirror-line > span::selection, .cm-s-base16-dark .CodeMirror-line > span > span::selection { background: rgba(48, 48, 48, .99); }
        .cm-s-base16-dark .CodeMirror-line::-moz-selection, .cm-s-base16-dark .CodeMirror-line > span::-moz-selection, .cm-s-base16-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(48, 48, 48, .99); }
        .cm-s-base16-dark .CodeMirror-gutters { background: #151515; border-right: 0px; }
        .cm-s-base16-dark .CodeMirror-guttermarker { color: #ac4142; }
        .cm-s-base16-dark .CodeMirror-guttermarker-subtle { color: #505050; }
        .cm-s-base16-dark .CodeMirror-linenumber { color: #505050; }
        .cm-s-base16-dark .CodeMirror-cursor { border-left: 1px solid #b0b0b0; }
        
        .cm-s-base16-dark span.cm-comment { color: #8f5536; }
        .cm-s-base16-dark span.cm-atom { color: #aa759f; }
        .cm-s-base16-dark span.cm-number { color: #aa759f; }
        
        .cm-s-base16-dark span.cm-property, .cm-s-base16-dark span.cm-attribute { color: #90a959; }
        .cm-s-base16-dark span.cm-keyword { color: #ac4142; }
        .cm-s-base16-dark span.cm-string { color: #f4bf75; }
        
        .cm-s-base16-dark span.cm-variable { color: #90a959; }
        .cm-s-base16-dark span.cm-variable-2 { color: #6a9fb5; }
        .cm-s-base16-dark span.cm-def { color: #d28445; }
        .cm-s-base16-dark span.cm-bracket { color: #e0e0e0; }
        .cm-s-base16-dark span.cm-tag { color: #ac4142; }
        .cm-s-base16-dark span.cm-link { color: #aa759f; }
        .cm-s-base16-dark span.cm-error { background: #ac4142; color: #b0b0b0; }
        
        .cm-s-base16-dark .CodeMirror-activeline-background { background: #202020; }
        .cm-s-base16-dark .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
        
      • base16-light.css
        /*
        
            Name:       Base16 Default Light
            Author:     Chris Kempson (http://chriskempson.com)
        
            CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
            Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
        
        */
        
        .cm-s-base16-light.CodeMirror { background: #f5f5f5; color: #202020; }
        .cm-s-base16-light div.CodeMirror-selected { background: #e0e0e0; }
        .cm-s-base16-light .CodeMirror-line::selection, .cm-s-base16-light .CodeMirror-line > span::selection, .cm-s-base16-light .CodeMirror-line > span > span::selection { background: #e0e0e0; }
        .cm-s-base16-light .CodeMirror-line::-moz-selection, .cm-s-base16-light .CodeMirror-line > span::-moz-selection, .cm-s-base16-light .CodeMirror-line > span > span::-moz-selection { background: #e0e0e0; }
        .cm-s-base16-light .CodeMirror-gutters { background: #f5f5f5; border-right: 0px; }
        .cm-s-base16-light .CodeMirror-guttermarker { color: #ac4142; }
        .cm-s-base16-light .CodeMirror-guttermarker-subtle { color: #b0b0b0; }
        .cm-s-base16-light .CodeMirror-linenumber { color: #b0b0b0; }
        .cm-s-base16-light .CodeMirror-cursor { border-left: 1px solid #505050; }
        
        .cm-s-base16-light span.cm-comment { color: #8f5536; }
        .cm-s-base16-light span.cm-atom { color: #aa759f; }
        .cm-s-base16-light span.cm-number { color: #aa759f; }
        
        .cm-s-base16-light span.cm-property, .cm-s-base16-light span.cm-attribute { color: #90a959; }
        .cm-s-base16-light span.cm-keyword { color: #ac4142; }
        .cm-s-base16-light span.cm-string { color: #f4bf75; }
        
        .cm-s-base16-light span.cm-variable { color: #90a959; }
        .cm-s-base16-light span.cm-variable-2 { color: #6a9fb5; }
        .cm-s-base16-light span.cm-def { color: #d28445; }
        .cm-s-base16-light span.cm-bracket { color: #202020; }
        .cm-s-base16-light span.cm-tag { color: #ac4142; }
        .cm-s-base16-light span.cm-link { color: #aa759f; }
        .cm-s-base16-light span.cm-error { background: #ac4142; color: #505050; }
        
        .cm-s-base16-light .CodeMirror-activeline-background { background: #DDDCDC; }
        .cm-s-base16-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
        
      • bespin.css
        /*
        
            Name:       Bespin
            Author:     Mozilla / Jan T. Sott
        
            CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
            Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
        
        */
        
        .cm-s-bespin.CodeMirror {background: #28211c; color: #9d9b97;}
        .cm-s-bespin div.CodeMirror-selected {background: #36312e !important;}
        .cm-s-bespin .CodeMirror-gutters {background: #28211c; border-right: 0px;}
        .cm-s-bespin .CodeMirror-linenumber {color: #666666;}
        .cm-s-bespin .CodeMirror-cursor {border-left: 1px solid #797977 !important;}
        
        .cm-s-bespin span.cm-comment {color: #937121;}
        .cm-s-bespin span.cm-atom {color: #9b859d;}
        .cm-s-bespin span.cm-number {color: #9b859d;}
        
        .cm-s-bespin span.cm-property, .cm-s-bespin span.cm-attribute {color: #54be0d;}
        .cm-s-bespin span.cm-keyword {color: #cf6a4c;}
        .cm-s-bespin span.cm-string {color: #f9ee98;}
        
        .cm-s-bespin span.cm-variable {color: #54be0d;}
        .cm-s-bespin span.cm-variable-2 {color: #5ea6ea;}
        .cm-s-bespin span.cm-def {color: #cf7d34;}
        .cm-s-bespin span.cm-error {background: #cf6a4c; color: #797977;}
        .cm-s-bespin span.cm-bracket {color: #9d9b97;}
        .cm-s-bespin span.cm-tag {color: #cf6a4c;}
        .cm-s-bespin span.cm-link {color: #9b859d;}
        
        .cm-s-bespin .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
        .cm-s-bespin .CodeMirror-activeline-background { background: #404040; }
        
      • blackboard.css
        /* Port of TextMate's Blackboard theme */
        
        .cm-s-blackboard.CodeMirror { background: #0C1021; color: #F8F8F8; }
        .cm-s-blackboard div.CodeMirror-selected { background: #253B76; }
        .cm-s-blackboard .CodeMirror-line::selection, .cm-s-blackboard .CodeMirror-line > span::selection, .cm-s-blackboard .CodeMirror-line > span > span::selection { background: rgba(37, 59, 118, .99); }
        .cm-s-blackboard .CodeMirror-line::-moz-selection, .cm-s-blackboard .CodeMirror-line > span::-moz-selection, .cm-s-blackboard .CodeMirror-line > span > span::-moz-selection { background: rgba(37, 59, 118, .99); }
        .cm-s-blackboard .CodeMirror-gutters { background: #0C1021; border-right: 0; }
        .cm-s-blackboard .CodeMirror-guttermarker { color: #FBDE2D; }
        .cm-s-blackboard .CodeMirror-guttermarker-subtle { color: #888; }
        .cm-s-blackboard .CodeMirror-linenumber { color: #888; }
        .cm-s-blackboard .CodeMirror-cursor { border-left: 1px solid #A7A7A7; }
        
        .cm-s-blackboard .cm-keyword { color: #FBDE2D; }
        .cm-s-blackboard .cm-atom { color: #D8FA3C; }
        .cm-s-blackboard .cm-number { color: #D8FA3C; }
        .cm-s-blackboard .cm-def { color: #8DA6CE; }
        .cm-s-blackboard .cm-variable { color: #FF6400; }
        .cm-s-blackboard .cm-operator { color: #FBDE2D; }
        .cm-s-blackboard .cm-comment { color: #AEAEAE; }
        .cm-s-blackboard .cm-string { color: #61CE3C; }
        .cm-s-blackboard .cm-string-2 { color: #61CE3C; }
        .cm-s-blackboard .cm-meta { color: #D8FA3C; }
        .cm-s-blackboard .cm-builtin { color: #8DA6CE; }
        .cm-s-blackboard .cm-tag { color: #8DA6CE; }
        .cm-s-blackboard .cm-attribute { color: #8DA6CE; }
        .cm-s-blackboard .cm-header { color: #FF6400; }
        .cm-s-blackboard .cm-hr { color: #AEAEAE; }
        .cm-s-blackboard .cm-link { color: #8DA6CE; }
        .cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; }
        
        .cm-s-blackboard .CodeMirror-activeline-background { background: #3C3636; }
        .cm-s-blackboard .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }
        
      • cobalt.css
        .cm-s-cobalt.CodeMirror { background: #002240; color: white; }
        .cm-s-cobalt div.CodeMirror-selected { background: #b36539; }
        .cm-s-cobalt .CodeMirror-line::selection, .cm-s-cobalt .CodeMirror-line > span::selection, .cm-s-cobalt .CodeMirror-line > span > span::selection { background: rgba(179, 101, 57, .99); }
        .cm-s-cobalt .CodeMirror-line::-moz-selection, .cm-s-cobalt .CodeMirror-line > span::-moz-selection, .cm-s-cobalt .CodeMirror-line > span > span::-moz-selection { background: rgba(179, 101, 57, .99); }
        .cm-s-cobalt .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }
        .cm-s-cobalt .CodeMirror-guttermarker { color: #ffee80; }
        .cm-s-cobalt .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
        .cm-s-cobalt .CodeMirror-linenumber { color: #d0d0d0; }
        .cm-s-cobalt .CodeMirror-cursor { border-left: 1px solid white; }
        
        .cm-s-cobalt span.cm-comment { color: #08f; }
        .cm-s-cobalt span.cm-atom { color: #845dc4; }
        .cm-s-cobalt span.cm-number, .cm-s-cobalt span.cm-attribute { color: #ff80e1; }
        .cm-s-cobalt span.cm-keyword { color: #ffee80; }
        .cm-s-cobalt span.cm-string { color: #3ad900; }
        .cm-s-cobalt span.cm-meta { color: #ff9d00; }
        .cm-s-cobalt span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #9effff; }
        .cm-s-cobalt span.cm-variable-3, .cm-s-cobalt span.cm-def { color: white; }
        .cm-s-cobalt span.cm-bracket { color: #d8d8d8; }
        .cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; }
        .cm-s-cobalt span.cm-link { color: #845dc4; }
        .cm-s-cobalt span.cm-error { color: #9d1e15; }
        
        .cm-s-cobalt .CodeMirror-activeline-background { background: #002D57; }
        .cm-s-cobalt .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }
        
      • colorforth.css
        .cm-s-colorforth.CodeMirror { background: #000000; color: #f8f8f8; }
        .cm-s-colorforth .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }
        .cm-s-colorforth .CodeMirror-guttermarker { color: #FFBD40; }
        .cm-s-colorforth .CodeMirror-guttermarker-subtle { color: #78846f; }
        .cm-s-colorforth .CodeMirror-linenumber { color: #bababa; }
        .cm-s-colorforth .CodeMirror-cursor { border-left: 1px solid white; }
        
        .cm-s-colorforth span.cm-comment     { color: #ededed; }
        .cm-s-colorforth span.cm-def         { color: #ff1c1c; font-weight:bold; }
        .cm-s-colorforth span.cm-keyword     { color: #ffd900; }
        .cm-s-colorforth span.cm-builtin     { color: #00d95a; }
        .cm-s-colorforth span.cm-variable    { color: #73ff00; }
        .cm-s-colorforth span.cm-string      { color: #007bff; }
        .cm-s-colorforth span.cm-number      { color: #00c4ff; }
        .cm-s-colorforth span.cm-atom        { color: #606060; }
        
        .cm-s-colorforth span.cm-variable-2  { color: #EEE; }
        .cm-s-colorforth span.cm-variable-3  { color: #DDD; }
        .cm-s-colorforth span.cm-property    {}
        .cm-s-colorforth span.cm-operator    {}
        
        .cm-s-colorforth span.cm-meta        { color: yellow; }
        .cm-s-colorforth span.cm-qualifier   { color: #FFF700; }
        .cm-s-colorforth span.cm-bracket     { color: #cc7; }
        .cm-s-colorforth span.cm-tag         { color: #FFBD40; }
        .cm-s-colorforth span.cm-attribute   { color: #FFF700; }
        .cm-s-colorforth span.cm-error       { color: #f00; }
        
        .cm-s-colorforth div.CodeMirror-selected { background: #333d53; }
        
        .cm-s-colorforth span.cm-compilation { background: rgba(255, 255, 255, 0.12); }
        
        .cm-s-colorforth .CodeMirror-activeline-background { background: #253540; }
        
      • dracula.css
        /*
        
            Name:       dracula
            Author:     Michael Kaminsky (http://github.com/mkaminsky11)
        
            Original dracula color scheme by Zeno Rocha (https://github.com/zenorocha/dracula-theme)
        
        */
        
        
        .cm-s-dracula.CodeMirror, .cm-s-dracula .CodeMirror-gutters {
          background-color: #282a36 !important;
          color: #f8f8f2 !important;
          border: none;
        }
        .cm-s-dracula .CodeMirror-gutters { color: #282a36; }
        .cm-s-dracula .CodeMirror-cursor { border-left: solid thin #f8f8f0; }
        .cm-s-dracula .CodeMirror-linenumber { color: #6D8A88; }
        .cm-s-dracula.CodeMirror-focused div.CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }
        .cm-s-dracula .CodeMirror-line::selection, .cm-s-dracula .CodeMirror-line > span::selection, .cm-s-dracula .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }
        .cm-s-dracula .CodeMirror-line::-moz-selection, .cm-s-dracula .CodeMirror-line > span::-moz-selection, .cm-s-dracula .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }
        .cm-s-dracula span.cm-comment { color: #6272a4; }
        .cm-s-dracula span.cm-string, .cm-s-dracula span.cm-string-2 { color: #f1fa8c; }
        .cm-s-dracula span.cm-number { color: #bd93f9; }
        .cm-s-dracula span.cm-variable { color: #50fa7b; }
        .cm-s-dracula span.cm-variable-2 { color: white; }
        .cm-s-dracula span.cm-def { color: #ffb86c; }
        .cm-s-dracula span.cm-keyword { color: #ff79c6; }
        .cm-s-dracula span.cm-operator { color: #ff79c6; }
        .cm-s-dracula span.cm-keyword { color: #ff79c6; }
        .cm-s-dracula span.cm-atom { color: #bd93f9; }
        .cm-s-dracula span.cm-meta { color: #f8f8f2; }
        .cm-s-dracula span.cm-tag { color: #ff79c6; }
        .cm-s-dracula span.cm-attribute { color: #50fa7b; }
        .cm-s-dracula span.cm-qualifier { color: #50fa7b; }
        .cm-s-dracula span.cm-property { color: #66d9ef; }
        .cm-s-dracula span.cm-builtin { color: #50fa7b; }
        .cm-s-dracula span.cm-variable-3 { color: #50fa7b; }
        
        .cm-s-dracula .CodeMirror-activeline-background { background: rgba(255,255,255,0.1); }
        .cm-s-dracula .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
        
      • eclipse.css
        .cm-s-eclipse span.cm-meta { color: #FF1717; }
        .cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; }
        .cm-s-eclipse span.cm-atom { color: #219; }
        .cm-s-eclipse span.cm-number { color: #164; }
        .cm-s-eclipse span.cm-def { color: #00f; }
        .cm-s-eclipse span.cm-variable { color: black; }
        .cm-s-eclipse span.cm-variable-2 { color: #0000C0; }
        .cm-s-eclipse span.cm-variable-3 { color: #0000C0; }
        .cm-s-eclipse span.cm-property { color: black; }
        .cm-s-eclipse span.cm-operator { color: black; }
        .cm-s-eclipse span.cm-comment { color: #3F7F5F; }
        .cm-s-eclipse span.cm-string { color: #2A00FF; }
        .cm-s-eclipse span.cm-string-2 { color: #f50; }
        .cm-s-eclipse span.cm-qualifier { color: #555; }
        .cm-s-eclipse span.cm-builtin { color: #30a; }
        .cm-s-eclipse span.cm-bracket { color: #cc7; }
        .cm-s-eclipse span.cm-tag { color: #170; }
        .cm-s-eclipse span.cm-attribute { color: #00c; }
        .cm-s-eclipse span.cm-link { color: #219; }
        .cm-s-eclipse span.cm-error { color: #f00; }
        
        .cm-s-eclipse .CodeMirror-activeline-background { background: #e8f2ff; }
        .cm-s-eclipse .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }
        
      • elegant.css
        .cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom { color: #762; }
        .cm-s-elegant span.cm-comment { color: #262; font-style: italic; line-height: 1em; }
        .cm-s-elegant span.cm-meta { color: #555; font-style: italic; line-height: 1em; }
        .cm-s-elegant span.cm-variable { color: black; }
        .cm-s-elegant span.cm-variable-2 { color: #b11; }
        .cm-s-elegant span.cm-qualifier { color: #555; }
        .cm-s-elegant span.cm-keyword { color: #730; }
        .cm-s-elegant span.cm-builtin { color: #30a; }
        .cm-s-elegant span.cm-link { color: #762; }
        .cm-s-elegant span.cm-error { background-color: #fdd; }
        
        .cm-s-elegant .CodeMirror-activeline-background { background: #e8f2ff; }
        .cm-s-elegant .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }
        
      • erlang-dark.css
        .cm-s-erlang-dark.CodeMirror { background: #002240; color: white; }
        .cm-s-erlang-dark div.CodeMirror-selected { background: #b36539; }
        .cm-s-erlang-dark .CodeMirror-line::selection, .cm-s-erlang-dark .CodeMirror-line > span::selection, .cm-s-erlang-dark .CodeMirror-line > span > span::selection { background: rgba(179, 101, 57, .99); }
        .cm-s-erlang-dark .CodeMirror-line::-moz-selection, .cm-s-erlang-dark .CodeMirror-line > span::-moz-selection, .cm-s-erlang-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(179, 101, 57, .99); }
        .cm-s-erlang-dark .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }
        .cm-s-erlang-dark .CodeMirror-guttermarker { color: white; }
        .cm-s-erlang-dark .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
        .cm-s-erlang-dark .CodeMirror-linenumber { color: #d0d0d0; }
        .cm-s-erlang-dark .CodeMirror-cursor { border-left: 1px solid white; }
        
        .cm-s-erlang-dark span.cm-quote      { color: #ccc; }
        .cm-s-erlang-dark span.cm-atom       { color: #f133f1; }
        .cm-s-erlang-dark span.cm-attribute  { color: #ff80e1; }
        .cm-s-erlang-dark span.cm-bracket    { color: #ff9d00; }
        .cm-s-erlang-dark span.cm-builtin    { color: #eaa; }
        .cm-s-erlang-dark span.cm-comment    { color: #77f; }
        .cm-s-erlang-dark span.cm-def        { color: #e7a; }
        .cm-s-erlang-dark span.cm-keyword    { color: #ffee80; }
        .cm-s-erlang-dark span.cm-meta       { color: #50fefe; }
        .cm-s-erlang-dark span.cm-number     { color: #ffd0d0; }
        .cm-s-erlang-dark span.cm-operator   { color: #d55; }
        .cm-s-erlang-dark span.cm-property   { color: #ccc; }
        .cm-s-erlang-dark span.cm-qualifier  { color: #ccc; }
        .cm-s-erlang-dark span.cm-special    { color: #ffbbbb; }
        .cm-s-erlang-dark span.cm-string     { color: #3ad900; }
        .cm-s-erlang-dark span.cm-string-2   { color: #ccc; }
        .cm-s-erlang-dark span.cm-tag        { color: #9effff; }
        .cm-s-erlang-dark span.cm-variable   { color: #50fe50; }
        .cm-s-erlang-dark span.cm-variable-2 { color: #e0e; }
        .cm-s-erlang-dark span.cm-variable-3 { color: #ccc; }
        .cm-s-erlang-dark span.cm-error      { color: #9d1e15; }
        
        .cm-s-erlang-dark .CodeMirror-activeline-background { background: #013461; }
        .cm-s-erlang-dark .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }
        
      • hopscotch.css
        /*
        
            Name:       Hopscotch
            Author:     Jan T. Sott
        
            CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
            Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
        
        */
        
        .cm-s-hopscotch.CodeMirror {background: #322931; color: #d5d3d5;}
        .cm-s-hopscotch div.CodeMirror-selected {background: #433b42 !important;}
        .cm-s-hopscotch .CodeMirror-gutters {background: #322931; border-right: 0px;}
        .cm-s-hopscotch .CodeMirror-linenumber {color: #797379;}
        .cm-s-hopscotch .CodeMirror-cursor {border-left: 1px solid #989498 !important;}
        
        .cm-s-hopscotch span.cm-comment {color: #b33508;}
        .cm-s-hopscotch span.cm-atom {color: #c85e7c;}
        .cm-s-hopscotch span.cm-number {color: #c85e7c;}
        
        .cm-s-hopscotch span.cm-property, .cm-s-hopscotch span.cm-attribute {color: #8fc13e;}
        .cm-s-hopscotch span.cm-keyword {color: #dd464c;}
        .cm-s-hopscotch span.cm-string {color: #fdcc59;}
        
        .cm-s-hopscotch span.cm-variable {color: #8fc13e;}
        .cm-s-hopscotch span.cm-variable-2 {color: #1290bf;}
        .cm-s-hopscotch span.cm-def {color: #fd8b19;}
        .cm-s-hopscotch span.cm-error {background: #dd464c; color: #989498;}
        .cm-s-hopscotch span.cm-bracket {color: #d5d3d5;}
        .cm-s-hopscotch span.cm-tag {color: #dd464c;}
        .cm-s-hopscotch span.cm-link {color: #c85e7c;}
        
        .cm-s-hopscotch .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
        .cm-s-hopscotch .CodeMirror-activeline-background { background: #302020; }
        
      • icecoder.css
        /*
        ICEcoder default theme by Matt Pass, used in code editor available at https://icecoder.net
        */
        
        .cm-s-icecoder { color: #666; background: #141612; }
        
        .cm-s-icecoder span.cm-keyword { color: #eee; font-weight:bold; }  /* off-white 1 */
        .cm-s-icecoder span.cm-atom { color: #e1c76e; }                    /* yellow */
        .cm-s-icecoder span.cm-number { color: #6cb5d9; }                  /* blue */
        .cm-s-icecoder span.cm-def { color: #b9ca4a; }                     /* green */
        
        .cm-s-icecoder span.cm-variable { color: #6cb5d9; }                /* blue */
        .cm-s-icecoder span.cm-variable-2 { color: #cc1e5c; }              /* pink */
        .cm-s-icecoder span.cm-variable-3 { color: #f9602c; }              /* orange */
        
        .cm-s-icecoder span.cm-property { color: #eee; }                   /* off-white 1 */
        .cm-s-icecoder span.cm-operator { color: #9179bb; }                /* purple */
        .cm-s-icecoder span.cm-comment { color: #97a3aa; }                 /* grey-blue */
        
        .cm-s-icecoder span.cm-string { color: #b9ca4a; }                  /* green */
        .cm-s-icecoder span.cm-string-2 { color: #6cb5d9; }                /* blue */
        
        .cm-s-icecoder span.cm-meta { color: #555; }                       /* grey */
        
        .cm-s-icecoder span.cm-qualifier { color: #555; }                  /* grey */
        .cm-s-icecoder span.cm-builtin { color: #214e7b; }                 /* bright blue */
        .cm-s-icecoder span.cm-bracket { color: #cc7; }                    /* grey-yellow */
        
        .cm-s-icecoder span.cm-tag { color: #e8e8e8; }                     /* off-white 2 */
        .cm-s-icecoder span.cm-attribute { color: #099; }                  /* teal */
        
        .cm-s-icecoder span.cm-header { color: #6a0d6a; }                  /* purple-pink */
        .cm-s-icecoder span.cm-quote { color: #186718; }                   /* dark green */
        .cm-s-icecoder span.cm-hr { color: #888; }                         /* mid-grey */
        .cm-s-icecoder span.cm-link { color: #e1c76e; }                    /* yellow */
        .cm-s-icecoder span.cm-error { color: #d00; }                      /* red */
        
        .cm-s-icecoder .CodeMirror-cursor { border-left: 1px solid white; }
        .cm-s-icecoder div.CodeMirror-selected { color: #fff; background: #037; }
        .cm-s-icecoder .CodeMirror-gutters { background: #141612; min-width: 41px; border-right: 0; }
        .cm-s-icecoder .CodeMirror-linenumber { color: #555; cursor: default; }
        .cm-s-icecoder .CodeMirror-matchingbracket { border: 1px solid grey; color: black !important; }
        .cm-s-icecoder .CodeMirror-activeline-background { background: #000; }
      • isotope.css
        /*
        
            Name:       Isotope
            Author:     David Desandro / Jan T. Sott
        
            CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
            Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
        
        */
        
        .cm-s-isotope.CodeMirror {background: #000000; color: #e0e0e0;}
        .cm-s-isotope div.CodeMirror-selected {background: #404040 !important;}
        .cm-s-isotope .CodeMirror-gutters {background: #000000; border-right: 0px;}
        .cm-s-isotope .CodeMirror-linenumber {color: #808080;}
        .cm-s-isotope .CodeMirror-cursor {border-left: 1px solid #c0c0c0 !important;}
        
        .cm-s-isotope span.cm-comment {color: #3300ff;}
        .cm-s-isotope span.cm-atom {color: #cc00ff;}
        .cm-s-isotope span.cm-number {color: #cc00ff;}
        
        .cm-s-isotope span.cm-property, .cm-s-isotope span.cm-attribute {color: #33ff00;}
        .cm-s-isotope span.cm-keyword {color: #ff0000;}
        .cm-s-isotope span.cm-string {color: #ff0099;}
        
        .cm-s-isotope span.cm-variable {color: #33ff00;}
        .cm-s-isotope span.cm-variable-2 {color: #0066ff;}
        .cm-s-isotope span.cm-def {color: #ff9900;}
        .cm-s-isotope span.cm-error {background: #ff0000; color: #c0c0c0;}
        .cm-s-isotope span.cm-bracket {color: #e0e0e0;}
        .cm-s-isotope span.cm-tag {color: #ff0000;}
        .cm-s-isotope span.cm-link {color: #cc00ff;}
        
        .cm-s-isotope .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
        .cm-s-isotope .CodeMirror-activeline-background { background: #202020; }
        
      • lesser-dark.css
        /*
        http://lesscss.org/ dark theme
        Ported to CodeMirror by Peter Kroon
        */
        .cm-s-lesser-dark {
          line-height: 1.3em;
        }
        .cm-s-lesser-dark.CodeMirror { background: #262626; color: #EBEFE7; text-shadow: 0 -1px 1px #262626; }
        .cm-s-lesser-dark div.CodeMirror-selected { background: #45443B; } /* 33322B*/
        .cm-s-lesser-dark .CodeMirror-line::selection, .cm-s-lesser-dark .CodeMirror-line > span::selection, .cm-s-lesser-dark .CodeMirror-line > span > span::selection { background: rgba(69, 68, 59, .99); }
        .cm-s-lesser-dark .CodeMirror-line::-moz-selection, .cm-s-lesser-dark .CodeMirror-line > span::-moz-selection, .cm-s-lesser-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(69, 68, 59, .99); }
        .cm-s-lesser-dark .CodeMirror-cursor { border-left: 1px solid white; }
        .cm-s-lesser-dark pre { padding: 0 8px; }/*editable code holder*/
        
        .cm-s-lesser-dark.CodeMirror span.CodeMirror-matchingbracket { color: #7EFC7E; }/*65FC65*/
        
        .cm-s-lesser-dark .CodeMirror-gutters { background: #262626; border-right:1px solid #aaa; }
        .cm-s-lesser-dark .CodeMirror-guttermarker { color: #599eff; }
        .cm-s-lesser-dark .CodeMirror-guttermarker-subtle { color: #777; }
        .cm-s-lesser-dark .CodeMirror-linenumber { color: #777; }
        
        .cm-s-lesser-dark span.cm-header { color: #a0a; }
        .cm-s-lesser-dark span.cm-quote { color: #090; }
        .cm-s-lesser-dark span.cm-keyword { color: #599eff; }
        .cm-s-lesser-dark span.cm-atom { color: #C2B470; }
        .cm-s-lesser-dark span.cm-number { color: #B35E4D; }
        .cm-s-lesser-dark span.cm-def { color: white; }
        .cm-s-lesser-dark span.cm-variable { color:#D9BF8C; }
        .cm-s-lesser-dark span.cm-variable-2 { color: #669199; }
        .cm-s-lesser-dark span.cm-variable-3 { color: white; }
        .cm-s-lesser-dark span.cm-property { color: #92A75C; }
        .cm-s-lesser-dark span.cm-operator { color: #92A75C; }
        .cm-s-lesser-dark span.cm-comment { color: #666; }
        .cm-s-lesser-dark span.cm-string { color: #BCD279; }
        .cm-s-lesser-dark span.cm-string-2 { color: #f50; }
        .cm-s-lesser-dark span.cm-meta { color: #738C73; }
        .cm-s-lesser-dark span.cm-qualifier { color: #555; }
        .cm-s-lesser-dark span.cm-builtin { color: #ff9e59; }
        .cm-s-lesser-dark span.cm-bracket { color: #EBEFE7; }
        .cm-s-lesser-dark span.cm-tag { color: #669199; }
        .cm-s-lesser-dark span.cm-attribute { color: #00c; }
        .cm-s-lesser-dark span.cm-hr { color: #999; }
        .cm-s-lesser-dark span.cm-link { color: #00c; }
        .cm-s-lesser-dark span.cm-error { color: #9d1e15; }
        
        .cm-s-lesser-dark .CodeMirror-activeline-background { background: #3C3A3A; }
        .cm-s-lesser-dark .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }
        
      • liquibyte.css
        .cm-s-liquibyte.CodeMirror {
        	background-color: #000;
        	color: #fff;
        	line-height: 1.2em;
        	font-size: 1em;
        }
        .cm-s-liquibyte .CodeMirror-focused .cm-matchhighlight {
        	text-decoration: underline;
        	text-decoration-color: #0f0;
        	text-decoration-style: wavy;
        }
        .cm-s-liquibyte .cm-trailingspace {
        	text-decoration: line-through;
        	text-decoration-color: #f00;
        	text-decoration-style: dotted;
        }
        .cm-s-liquibyte .cm-tab {
        	text-decoration: line-through;
        	text-decoration-color: #404040;
        	text-decoration-style: dotted;
        }
        .cm-s-liquibyte .CodeMirror-gutters { background-color: #262626; border-right: 1px solid #505050; padding-right: 0.8em; }
        .cm-s-liquibyte .CodeMirror-gutter-elt div { font-size: 1.2em; }
        .cm-s-liquibyte .CodeMirror-guttermarker {  }
        .cm-s-liquibyte .CodeMirror-guttermarker-subtle {  }
        .cm-s-liquibyte .CodeMirror-linenumber { color: #606060; padding-left: 0; }
        .cm-s-liquibyte .CodeMirror-cursor { border-left: 1px solid #eee; }
        
        .cm-s-liquibyte span.cm-comment     { color: #008000; }
        .cm-s-liquibyte span.cm-def         { color: #ffaf40; font-weight: bold; }
        .cm-s-liquibyte span.cm-keyword     { color: #c080ff; font-weight: bold; }
        .cm-s-liquibyte span.cm-builtin     { color: #ffaf40; font-weight: bold; }
        .cm-s-liquibyte span.cm-variable    { color: #5967ff; font-weight: bold; }
        .cm-s-liquibyte span.cm-string      { color: #ff8000; }
        .cm-s-liquibyte span.cm-number      { color: #0f0; font-weight: bold; }
        .cm-s-liquibyte span.cm-atom        { color: #bf3030; font-weight: bold; }
        
        .cm-s-liquibyte span.cm-variable-2  { color: #007f7f; font-weight: bold; }
        .cm-s-liquibyte span.cm-variable-3  { color: #c080ff; font-weight: bold; }
        .cm-s-liquibyte span.cm-property    { color: #999; font-weight: bold; }
        .cm-s-liquibyte span.cm-operator    { color: #fff; }
        
        .cm-s-liquibyte span.cm-meta        { color: #0f0; }
        .cm-s-liquibyte span.cm-qualifier   { color: #fff700; font-weight: bold; }
        .cm-s-liquibyte span.cm-bracket     { color: #cc7; }
        .cm-s-liquibyte span.cm-tag         { color: #ff0; font-weight: bold; }
        .cm-s-liquibyte span.cm-attribute   { color: #c080ff; font-weight: bold; }
        .cm-s-liquibyte span.cm-error       { color: #f00; }
        
        .cm-s-liquibyte div.CodeMirror-selected { background-color: rgba(255, 0, 0, 0.25); }
        
        .cm-s-liquibyte span.cm-compilation { background-color: rgba(255, 255, 255, 0.12); }
        
        .cm-s-liquibyte .CodeMirror-activeline-background { background-color: rgba(0, 255, 0, 0.15); }
        
        /* Default styles for common addons */
        .cm-s-liquibyte .CodeMirror span.CodeMirror-matchingbracket { color: #0f0; font-weight: bold; }
        .cm-s-liquibyte .CodeMirror span.CodeMirror-nonmatchingbracket { color: #f00; font-weight: bold; }
        .CodeMirror-matchingtag { background-color: rgba(150, 255, 0, .3); }
        /* Scrollbars */
        /* Simple */
        .cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div:hover, div.CodeMirror-simplescroll-vertical div:hover {
        	background-color: rgba(80, 80, 80, .7);
        }
        .cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div, div.CodeMirror-simplescroll-vertical div {
        	background-color: rgba(80, 80, 80, .3);
        	border: 1px solid #404040;
        	border-radius: 5px;
        }
        .cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {
        	border-top: 1px solid #404040;
        	border-bottom: 1px solid #404040;
        }
        .cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div {
        	border-left: 1px solid #404040;
        	border-right: 1px solid #404040;
        }
        .cm-s-liquibyte div.CodeMirror-simplescroll-vertical {
        	background-color: #262626;
        }
        .cm-s-liquibyte div.CodeMirror-simplescroll-horizontal {
        	background-color: #262626;
        	border-top: 1px solid #404040;
        }
        /* Overlay */
        .cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div, div.CodeMirror-overlayscroll-vertical div {
        	background-color: #404040;
        	border-radius: 5px;
        }
        .cm-s-liquibyte div.CodeMirror-overlayscroll-vertical div {
        	border: 1px solid #404040;
        }
        .cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div {
        	border: 1px solid #404040;
        }
        
      • material.css
        /*
        
            Name:       material
            Author:     Michael Kaminsky (http://github.com/mkaminsky11)
        
            Original material color scheme by Mattia Astorino (https://github.com/equinusocio/material-theme)
        
        */
        
        .cm-s-material {
          background-color: #263238;
          color: rgba(233, 237, 237, 1);
        }
        .cm-s-material .CodeMirror-gutters {
          background: #263238;
          color: rgb(83,127,126);
          border: none;
        }
        .cm-s-material .CodeMirror-guttermarker, .cm-s-material .CodeMirror-guttermarker-subtle, .cm-s-material .CodeMirror-linenumber { color: rgb(83,127,126); }
        .cm-s-material .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }
        .cm-s-material div.CodeMirror-selected { background: rgba(255, 255, 255, 0.15); }
        .cm-s-material.CodeMirror-focused div.CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }
        .cm-s-material .CodeMirror-line::selection, .cm-s-material .CodeMirror-line > span::selection, .cm-s-material .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }
        .cm-s-material .CodeMirror-line::-moz-selection, .cm-s-material .CodeMirror-line > span::-moz-selection, .cm-s-material .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }
        
        .cm-s-material .CodeMirror-activeline-background { background: rgba(0, 0, 0, 0); }
        .cm-s-material .cm-keyword { color: rgba(199, 146, 234, 1); }
        .cm-s-material .cm-operator { color: rgba(233, 237, 237, 1); }
        .cm-s-material .cm-variable-2 { color: #80CBC4; }
        .cm-s-material .cm-variable-3 { color: #82B1FF; }
        .cm-s-material .cm-builtin { color: #DECB6B; }
        .cm-s-material .cm-atom { color: #F77669; }
        .cm-s-material .cm-number { color: #F77669; }
        .cm-s-material .cm-def { color: rgba(233, 237, 237, 1); }
        .cm-s-material .cm-error {
          color: rgba(255, 255, 255, 1.0);
          background-color: #EC5F67;
        }
        .cm-s-material .cm-string { color: #C3E88D; }
        .cm-s-material .cm-string-2 { color: #80CBC4; }
        .cm-s-material .cm-comment { color: #546E7A; }
        .cm-s-material .cm-variable { color: #82B1FF; }
        .cm-s-material .cm-tag { color: #80CBC4; }
        .cm-s-material .cm-meta { color: #80CBC4; }
        .cm-s-material .cm-attribute { color: #FFCB6B; }
        .cm-s-material .cm-property { color: #80CBAE; }
        .cm-s-material .cm-qualifier { color: #DECB6B; }
        .cm-s-material .cm-variable-3 { color: #DECB6B; }
        .cm-s-material .cm-tag { color: rgba(255, 83, 112, 1); }
        .cm-s-material .CodeMirror-matchingbracket {
          text-decoration: underline;
          color: white !important;
        }
        
      • mbo.css
        /****************************************************************/
        /*   Based on mbonaci's Brackets mbo theme                      */
        /*   https://github.com/mbonaci/global/blob/master/Mbo.tmTheme  */
        /*   Create your own: http://tmtheme-editor.herokuapp.com       */
        /****************************************************************/
        
        .cm-s-mbo.CodeMirror { background: #2c2c2c; color: #ffffec; }
        .cm-s-mbo div.CodeMirror-selected { background: #716C62; }
        .cm-s-mbo .CodeMirror-line::selection, .cm-s-mbo .CodeMirror-line > span::selection, .cm-s-mbo .CodeMirror-line > span > span::selection { background: rgba(113, 108, 98, .99); }
        .cm-s-mbo .CodeMirror-line::-moz-selection, .cm-s-mbo .CodeMirror-line > span::-moz-selection, .cm-s-mbo .CodeMirror-line > span > span::-moz-selection { background: rgba(113, 108, 98, .99); }
        .cm-s-mbo .CodeMirror-gutters { background: #4e4e4e; border-right: 0px; }
        .cm-s-mbo .CodeMirror-guttermarker { color: white; }
        .cm-s-mbo .CodeMirror-guttermarker-subtle { color: grey; }
        .cm-s-mbo .CodeMirror-linenumber { color: #dadada; }
        .cm-s-mbo .CodeMirror-cursor { border-left: 1px solid #ffffec; }
        
        .cm-s-mbo span.cm-comment { color: #95958a; }
        .cm-s-mbo span.cm-atom { color: #00a8c6; }
        .cm-s-mbo span.cm-number { color: #00a8c6; }
        
        .cm-s-mbo span.cm-property, .cm-s-mbo span.cm-attribute { color: #9ddfe9; }
        .cm-s-mbo span.cm-keyword { color: #ffb928; }
        .cm-s-mbo span.cm-string { color: #ffcf6c; }
        .cm-s-mbo span.cm-string.cm-property { color: #ffffec; }
        
        .cm-s-mbo span.cm-variable { color: #ffffec; }
        .cm-s-mbo span.cm-variable-2 { color: #00a8c6; }
        .cm-s-mbo span.cm-def { color: #ffffec; }
        .cm-s-mbo span.cm-bracket { color: #fffffc; font-weight: bold; }
        .cm-s-mbo span.cm-tag { color: #9ddfe9; }
        .cm-s-mbo span.cm-link { color: #f54b07; }
        .cm-s-mbo span.cm-error { border-bottom: #636363; color: #ffffec; }
        .cm-s-mbo span.cm-qualifier { color: #ffffec; }
        
        .cm-s-mbo .CodeMirror-activeline-background { background: #494b41; }
        .cm-s-mbo .CodeMirror-matchingbracket { color: #222 !important; }
        .cm-s-mbo .CodeMirror-matchingtag { background: rgba(255, 255, 255, .37); }
        
      • mdn-like.css
        /*
          MDN-LIKE Theme - Mozilla
          Ported to CodeMirror by Peter Kroon <plakroon@gmail.com>
          Report bugs/issues here: https://github.com/codemirror/CodeMirror/issues
          GitHub: @peterkroon
        
          The mdn-like theme is inspired on the displayed code examples at: https://developer.mozilla.org/en-US/docs/Web/CSS/animation
        
        */
        .cm-s-mdn-like.CodeMirror { color: #999; background-color: #fff; }
        .cm-s-mdn-like div.CodeMirror-selected { background: #cfc; }
        .cm-s-mdn-like .CodeMirror-line::selection, .cm-s-mdn-like .CodeMirror-line > span::selection, .cm-s-mdn-like .CodeMirror-line > span > span::selection { background: #cfc; }
        .cm-s-mdn-like .CodeMirror-line::-moz-selection, .cm-s-mdn-like .CodeMirror-line > span::-moz-selection, .cm-s-mdn-like .CodeMirror-line > span > span::-moz-selection { background: #cfc; }
        
        .cm-s-mdn-like .CodeMirror-gutters { background: #f8f8f8; border-left: 6px solid rgba(0,83,159,0.65); color: #333; }
        .cm-s-mdn-like .CodeMirror-linenumber { color: #aaa; padding-left: 8px; }
        .cm-s-mdn-like .CodeMirror-cursor { border-left: 2px solid #222; }
        
        .cm-s-mdn-like .cm-keyword { color: #6262FF; }
        .cm-s-mdn-like .cm-atom { color: #F90; }
        .cm-s-mdn-like .cm-number { color:  #ca7841; }
        .cm-s-mdn-like .cm-def { color: #8DA6CE; }
        .cm-s-mdn-like span.cm-variable-2, .cm-s-mdn-like span.cm-tag { color: #690; }
        .cm-s-mdn-like span.cm-variable-3, .cm-s-mdn-like span.cm-def { color: #07a; }
        
        .cm-s-mdn-like .cm-variable { color: #07a; }
        .cm-s-mdn-like .cm-property { color: #905; }
        .cm-s-mdn-like .cm-qualifier { color: #690; }
        
        .cm-s-mdn-like .cm-operator { color: #cda869; }
        .cm-s-mdn-like .cm-comment { color:#777; font-weight:normal; }
        .cm-s-mdn-like .cm-string { color:#07a; font-style:italic; }
        .cm-s-mdn-like .cm-string-2 { color:#bd6b18; } /*?*/
        .cm-s-mdn-like .cm-meta { color: #000; } /*?*/
        .cm-s-mdn-like .cm-builtin { color: #9B7536; } /*?*/
        .cm-s-mdn-like .cm-tag { color: #997643; }
        .cm-s-mdn-like .cm-attribute { color: #d6bb6d; } /*?*/
        .cm-s-mdn-like .cm-header { color: #FF6400; }
        .cm-s-mdn-like .cm-hr { color: #AEAEAE; }
        .cm-s-mdn-like .cm-link { color:#ad9361; font-style:italic; text-decoration:none; }
        .cm-s-mdn-like .cm-error { border-bottom: 1px solid red; }
        
        div.cm-s-mdn-like .CodeMirror-activeline-background { background: #efefff; }
        div.cm-s-mdn-like span.CodeMirror-matchingbracket { outline:1px solid grey; color: inherit; }
        
        .cm-s-mdn-like.CodeMirror { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFcAAAAyCAYAAAAp8UeFAAAHvklEQVR42s2b63bcNgyEQZCSHCdt2vd/0tWF7I+Q6XgMXiTtuvU5Pl57ZQKkKHzEAOtF5KeIJBGJ8uvL599FRFREZhFx8DeXv8trn68RuGaC8TRfo3SNp9dlDDHedyLyTUTeRWStXKPZrjtpZxaRw5hPqozRs1N8/enzIiQRWcCgy4MUA0f+XWliDhyL8Lfyvx7ei/Ae3iQFHyw7U/59pQVIMEEPEz0G7XiwdRjzSfC3UTtz9vchIntxvry5iMgfIhJoEflOz2CQr3F5h/HfeFe+GTdLaKcu9L8LTeQb/R/7GgbsfKedyNdoHsN31uRPWrfZ5wsj/NzzRQHuToIdU3ahwnsKPxXCjJITuOsi7XLc7SG/v5GdALs7wf8JjTFiB5+QvTEfRyGOfX3Lrx8wxyQi3sNq46O7QahQiCsRFgqddjBouVEHOKDgXAQHD9gJCr5sMKkEdjwsarG/ww3BMHBU7OBjXnzdyY7SfCxf5/z6ATccrwlKuwC/jhznnPF4CgVzhhVf4xp2EixcBActO75iZ8/fM9zAs2OMzKdslgXWJ9XG8PQoOAMA5fGcsvORgv0doBXyHrCwfLJAOwo71QLNkb8n2Pl6EWiR7OCibtkPaz4Kc/0NNAze2gju3zOwekALDaCFPI5vjPFmgGY5AZqyGEvH1x7QfIb8YtxMnA/b+QQ0aQDAwc6JMFg8CbQZ4qoYEEHbRwNojuK3EHwd7VALSgq+MNDKzfT58T8qdpADrgW0GmgcAS1lhzztJmkAzcPNOQbsWEALBDSlMKUG0Eq4CLAQWvEVQ9WU57gZJwZtgPO3r9oBTQ9WO8TjqXINx8R0EYpiZEUWOF3FxkbJkgU9B2f41YBrIj5ZfsQa0M5kTgiAAqM3ShXLgu8XMqcrQBvJ0CL5pnTsfMB13oB8athpAq2XOQmcGmoACCLydx7nToa23ATaSIY2ichfOdPTGxlasXMLaL0MLZAOwAKIM+y8CmicobGdCcbbK9DzN+yYGVoNNI5iUKTMyYOjPse4A8SM1MmcXgU0toOq1yO/v8FOxlASyc7TgeYaAMBJHcY1CcCwGI/TK4AmDbDyKYBBtFUkRwto8gygiQEaByFgJ00BH2M8JWwQS1nafDXQCidWyOI8AcjDCSjCLk8ngObuAm3JAHAdubAmOaK06V8MNEsKPJOhobSprwQa6gD7DclRQdqcwL4zxqgBrQcabUiBLclRDKAlWp+etPkBaNMA0AKlrHwTdEByZAA4GM+SNluSY6wAzcMNewxmgig5Ks0nkrSpBvSaQHMdKTBAnLojOdYyGpQ254602ZILPdTD1hdlggdIm74jbTp8vDwF5ZYUeLWGJpWsh6XNyXgcYwVoJQTEhhTYkxzZjiU5npU2TaB979TQehlaAVq4kaGpiPwwwLkYUuBbQwocyQTv1tA0+1UFWoJF3iv1oq+qoSk8EQdJmwHkziIF7oOZk14EGitibAdjLYYK78H5vZOhtWpoI0ATGHs0Q8OMb4Ey+2bU2UYztCtA0wFAs7TplGLRVQCcqaFdGSPCeTI1QNIC52iWNzof6Uib7xjEp07mNNoUYmVosVItHrHzRlLgBn9LFyRHaQCtVUMbtTNhoXWiTOO9k/V8BdAc1Oq0ArSQs6/5SU0hckNy9NnXqQY0PGYo5dWJ7nINaN6o958FWin27aBaWRka1r5myvLOAm0j30eBJqCxHLReVclxhxOEN2JfDWjxBtAC7MIH1fVaGdoOp4qJYDgKtKPSFNID2gSnGldrCqkFZ+5UeQXQBIRrSwocbdZYQT/2LwRahBPBXoHrB8nxaGROST62DKUbQOMMzZIC9abkuELfQzQALWTnDNAm8KHWFOJgJ5+SHIvTPcmx1xQyZRhNL5Qci689aXMEaN/uNIWkEwDAvFpOZmgsBaaGnbs1NPa1Jm32gBZAIh1pCtG7TSH4aE0y1uVY4uqoFPisGlpP2rSA5qTecWn5agK6BzSpgAyD+wFaqhnYoSZ1Vwr8CmlTQbrcO3ZaX0NAEyMbYaAlyquFoLKK3SPby9CeVUPThrSJmkCAE0CrKUQadi4DrdSlWhmah0YL9z9vClH59YGbHx1J8VZTyAjQepJjmXwAKTDQI3omc3p1U4gDUf6RfcdYfrUp5ClAi2J3Ba6UOXGo+K+bQrjjssitG2SJzshaLwMtXgRagUNpYYoVkMSBLM+9GGiJZMvduG6DRZ4qc04DMPtQQxOjEtACmhO7K1AbNbQDEggZyJwscFpAGwENhoBeUwh3bWolhe8BTYVKxQEWrSUn/uhcM5KhvUu/+eQu0Lzhi+VrK0PrZZNDQKs9cpYUuFYgMVpD4/NxenJTiMCNqdUEUf1qZWjppLT5qSkkUZbCwkbZMSuVnu80hfSkzRbQeqCZSAh6huR4VtoM2gHAlLf72smuWgE+VV7XpE25Ab2WFDgyhnSuKbs4GuGzCjR+tIoUuMFg3kgcWKLTwRqanJQ2W00hAsenfaApRC42hbCvK1SlE0HtE9BGgneJO+ELamitD1YjjOYnNYVcraGhtKkW0EqVVeDx733I2NH581k1NNxNLG0i0IJ8/NjVaOZ0tYZ2Vtr0Xv7tPV3hkWp9EFkgS/J0vosngTaSoaG06WHi+xObQkaAdlbanP8B2+2l0f90LmUAAAAASUVORK5CYII=); }
        
      • midnight.css
        /* Based on the theme at http://bonsaiden.github.com/JavaScript-Garden */
        
        /*<!--match-->*/
        .cm-s-midnight span.CodeMirror-matchhighlight { background: #494949; }
        .cm-s-midnight.CodeMirror-focused span.CodeMirror-matchhighlight { background: #314D67 !important; }
        
        /*<!--activeline-->*/
        .cm-s-midnight .CodeMirror-activeline-background { background: #253540; }
        
        .cm-s-midnight.CodeMirror {
            background: #0F192A;
            color: #D1EDFF;
        }
        
        .cm-s-midnight.CodeMirror { border-top: 1px solid black; border-bottom: 1px solid black; }
        
        .cm-s-midnight div.CodeMirror-selected { background: #314D67; }
        .cm-s-midnight .CodeMirror-line::selection, .cm-s-midnight .CodeMirror-line > span::selection, .cm-s-midnight .CodeMirror-line > span > span::selection { background: rgba(49, 77, 103, .99); }
        .cm-s-midnight .CodeMirror-line::-moz-selection, .cm-s-midnight .CodeMirror-line > span::-moz-selection, .cm-s-midnight .CodeMirror-line > span > span::-moz-selection { background: rgba(49, 77, 103, .99); }
        .cm-s-midnight .CodeMirror-gutters { background: #0F192A; border-right: 1px solid; }
        .cm-s-midnight .CodeMirror-guttermarker { color: white; }
        .cm-s-midnight .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
        .cm-s-midnight .CodeMirror-linenumber { color: #D0D0D0; }
        .cm-s-midnight .CodeMirror-cursor { border-left: 1px solid #F8F8F0; }
        
        .cm-s-midnight span.cm-comment { color: #428BDD; }
        .cm-s-midnight span.cm-atom { color: #AE81FF; }
        .cm-s-midnight span.cm-number { color: #D1EDFF; }
        
        .cm-s-midnight span.cm-property, .cm-s-midnight span.cm-attribute { color: #A6E22E; }
        .cm-s-midnight span.cm-keyword { color: #E83737; }
        .cm-s-midnight span.cm-string { color: #1DC116; }
        
        .cm-s-midnight span.cm-variable { color: #FFAA3E; }
        .cm-s-midnight span.cm-variable-2 { color: #FFAA3E; }
        .cm-s-midnight span.cm-def { color: #4DD; }
        .cm-s-midnight span.cm-bracket { color: #D1EDFF; }
        .cm-s-midnight span.cm-tag { color: #449; }
        .cm-s-midnight span.cm-link { color: #AE81FF; }
        .cm-s-midnight span.cm-error { background: #F92672; color: #F8F8F0; }
        
        .cm-s-midnight .CodeMirror-matchingbracket {
          text-decoration: underline;
          color: white !important;
        }
        
      • monokai.css
        /* Based on Sublime Text's Monokai theme */
        
        .cm-s-monokai.CodeMirror { background: #272822; color: #f8f8f2; }
        .cm-s-monokai div.CodeMirror-selected { background: #49483E; }
        .cm-s-monokai .CodeMirror-line::selection, .cm-s-monokai .CodeMirror-line > span::selection, .cm-s-monokai .CodeMirror-line > span > span::selection { background: rgba(73, 72, 62, .99); }
        .cm-s-monokai .CodeMirror-line::-moz-selection, .cm-s-monokai .CodeMirror-line > span::-moz-selection, .cm-s-monokai .CodeMirror-line > span > span::-moz-selection { background: rgba(73, 72, 62, .99); }
        .cm-s-monokai .CodeMirror-gutters { background: #272822; border-right: 0px; }
        .cm-s-monokai .CodeMirror-guttermarker { color: white; }
        .cm-s-monokai .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
        .cm-s-monokai .CodeMirror-linenumber { color: #d0d0d0; }
        .cm-s-monokai .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }
        
        .cm-s-monokai span.cm-comment { color: #75715e; }
        .cm-s-monokai span.cm-atom { color: #ae81ff; }
        .cm-s-monokai span.cm-number { color: #ae81ff; }
        
        .cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute { color: #a6e22e; }
        .cm-s-monokai span.cm-keyword { color: #f92672; }
        .cm-s-monokai span.cm-string { color: #e6db74; }
        
        .cm-s-monokai span.cm-variable { color: #f8f8f2; }
        .cm-s-monokai span.cm-variable-2 { color: #9effff; }
        .cm-s-monokai span.cm-variable-3 { color: #66d9ef; }
        .cm-s-monokai span.cm-def { color: #fd971f; }
        .cm-s-monokai span.cm-bracket { color: #f8f8f2; }
        .cm-s-monokai span.cm-tag { color: #f92672; }
        .cm-s-monokai span.cm-header { color: #ae81ff; }
        .cm-s-monokai span.cm-link { color: #ae81ff; }
        .cm-s-monokai span.cm-error { background: #f92672; color: #f8f8f0; }
        
        .cm-s-monokai .CodeMirror-activeline-background { background: #373831; }
        .cm-s-monokai .CodeMirror-matchingbracket {
          text-decoration: underline;
          color: white !important;
        }
        
      • neat.css
        .cm-s-neat span.cm-comment { color: #a86; }
        .cm-s-neat span.cm-keyword { line-height: 1em; font-weight: bold; color: blue; }
        .cm-s-neat span.cm-string { color: #a22; }
        .cm-s-neat span.cm-builtin { line-height: 1em; font-weight: bold; color: #077; }
        .cm-s-neat span.cm-special { line-height: 1em; font-weight: bold; color: #0aa; }
        .cm-s-neat span.cm-variable { color: black; }
        .cm-s-neat span.cm-number, .cm-s-neat span.cm-atom { color: #3a3; }
        .cm-s-neat span.cm-meta { color: #555; }
        .cm-s-neat span.cm-link { color: #3a3; }
        
        .cm-s-neat .CodeMirror-activeline-background { background: #e8f2ff; }
        .cm-s-neat .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }
        
      • neo.css
        /* neo theme for codemirror */
        
        /* Color scheme */
        
        .cm-s-neo.CodeMirror {
          background-color:#ffffff;
          color:#2e383c;
          line-height:1.4375;
        }
        .cm-s-neo .cm-comment { color:#75787b; }
        .cm-s-neo .cm-keyword, .cm-s-neo .cm-property { color:#1d75b3; }
        .cm-s-neo .cm-atom,.cm-s-neo .cm-number { color:#75438a; }
        .cm-s-neo .cm-node,.cm-s-neo .cm-tag { color:#9c3328; }
        .cm-s-neo .cm-string { color:#b35e14; }
        .cm-s-neo .cm-variable,.cm-s-neo .cm-qualifier { color:#047d65; }
        
        
        /* Editor styling */
        
        .cm-s-neo pre {
          padding:0;
        }
        
        .cm-s-neo .CodeMirror-gutters {
          border:none;
          border-right:10px solid transparent;
          background-color:transparent;
        }
        
        .cm-s-neo .CodeMirror-linenumber {
          padding:0;
          color:#e0e2e5;
        }
        
        .cm-s-neo .CodeMirror-guttermarker { color: #1d75b3; }
        .cm-s-neo .CodeMirror-guttermarker-subtle { color: #e0e2e5; }
        
        .cm-s-neo .CodeMirror-cursor {
          width: auto;
          border: 0;
          background: rgba(155,157,162,0.37);
          z-index: 1;
        }
        
      • night.css
        /* Loosely based on the Midnight Textmate theme */
        
        .cm-s-night.CodeMirror { background: #0a001f; color: #f8f8f8; }
        .cm-s-night div.CodeMirror-selected { background: #447; }
        .cm-s-night .CodeMirror-line::selection, .cm-s-night .CodeMirror-line > span::selection, .cm-s-night .CodeMirror-line > span > span::selection { background: rgba(68, 68, 119, .99); }
        .cm-s-night .CodeMirror-line::-moz-selection, .cm-s-night .CodeMirror-line > span::-moz-selection, .cm-s-night .CodeMirror-line > span > span::-moz-selection { background: rgba(68, 68, 119, .99); }
        .cm-s-night .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }
        .cm-s-night .CodeMirror-guttermarker { color: white; }
        .cm-s-night .CodeMirror-guttermarker-subtle { color: #bbb; }
        .cm-s-night .CodeMirror-linenumber { color: #f8f8f8; }
        .cm-s-night .CodeMirror-cursor { border-left: 1px solid white; }
        
        .cm-s-night span.cm-comment { color: #6900a1; }
        .cm-s-night span.cm-atom { color: #845dc4; }
        .cm-s-night span.cm-number, .cm-s-night span.cm-attribute { color: #ffd500; }
        .cm-s-night span.cm-keyword { color: #599eff; }
        .cm-s-night span.cm-string { color: #37f14a; }
        .cm-s-night span.cm-meta { color: #7678e2; }
        .cm-s-night span.cm-variable-2, .cm-s-night span.cm-tag { color: #99b2ff; }
        .cm-s-night span.cm-variable-3, .cm-s-night span.cm-def { color: white; }
        .cm-s-night span.cm-bracket { color: #8da6ce; }
        .cm-s-night span.cm-comment { color: #6900a1; }
        .cm-s-night span.cm-builtin, .cm-s-night span.cm-special { color: #ff9e59; }
        .cm-s-night span.cm-link { color: #845dc4; }
        .cm-s-night span.cm-error { color: #9d1e15; }
        
        .cm-s-night .CodeMirror-activeline-background { background: #1C005A; }
        .cm-s-night .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }
        
      • paraiso-dark.css
        /*
        
            Name:       Paraíso (Dark)
            Author:     Jan T. Sott
        
            Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror)
            Inspired by the art of Rubens LP (http://www.rubenslp.com.br)
        
        */
        
        .cm-s-paraiso-dark.CodeMirror { background: #2f1e2e; color: #b9b6b0; }
        .cm-s-paraiso-dark div.CodeMirror-selected { background: #41323f; }
        .cm-s-paraiso-dark .CodeMirror-line::selection, .cm-s-paraiso-dark .CodeMirror-line > span::selection, .cm-s-paraiso-dark .CodeMirror-line > span > span::selection { background: rgba(65, 50, 63, .99); }
        .cm-s-paraiso-dark .CodeMirror-line::-moz-selection, .cm-s-paraiso-dark .CodeMirror-line > span::-moz-selection, .cm-s-paraiso-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(65, 50, 63, .99); }
        .cm-s-paraiso-dark .CodeMirror-gutters { background: #2f1e2e; border-right: 0px; }
        .cm-s-paraiso-dark .CodeMirror-guttermarker { color: #ef6155; }
        .cm-s-paraiso-dark .CodeMirror-guttermarker-subtle { color: #776e71; }
        .cm-s-paraiso-dark .CodeMirror-linenumber { color: #776e71; }
        .cm-s-paraiso-dark .CodeMirror-cursor { border-left: 1px solid #8d8687; }
        
        .cm-s-paraiso-dark span.cm-comment { color: #e96ba8; }
        .cm-s-paraiso-dark span.cm-atom { color: #815ba4; }
        .cm-s-paraiso-dark span.cm-number { color: #815ba4; }
        
        .cm-s-paraiso-dark span.cm-property, .cm-s-paraiso-dark span.cm-attribute { color: #48b685; }
        .cm-s-paraiso-dark span.cm-keyword { color: #ef6155; }
        .cm-s-paraiso-dark span.cm-string { color: #fec418; }
        
        .cm-s-paraiso-dark span.cm-variable { color: #48b685; }
        .cm-s-paraiso-dark span.cm-variable-2 { color: #06b6ef; }
        .cm-s-paraiso-dark span.cm-def { color: #f99b15; }
        .cm-s-paraiso-dark span.cm-bracket { color: #b9b6b0; }
        .cm-s-paraiso-dark span.cm-tag { color: #ef6155; }
        .cm-s-paraiso-dark span.cm-link { color: #815ba4; }
        .cm-s-paraiso-dark span.cm-error { background: #ef6155; color: #8d8687; }
        
        .cm-s-paraiso-dark .CodeMirror-activeline-background { background: #4D344A; }
        .cm-s-paraiso-dark .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
        
      • paraiso-light.css
        /*
        
            Name:       Paraíso (Light)
            Author:     Jan T. Sott
        
            Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror)
            Inspired by the art of Rubens LP (http://www.rubenslp.com.br)
        
        */
        
        .cm-s-paraiso-light.CodeMirror { background: #e7e9db; color: #41323f; }
        .cm-s-paraiso-light div.CodeMirror-selected { background: #b9b6b0; }
        .cm-s-paraiso-light .CodeMirror-line::selection, .cm-s-paraiso-light .CodeMirror-line > span::selection, .cm-s-paraiso-light .CodeMirror-line > span > span::selection { background: #b9b6b0; }
        .cm-s-paraiso-light .CodeMirror-line::-moz-selection, .cm-s-paraiso-light .CodeMirror-line > span::-moz-selection, .cm-s-paraiso-light .CodeMirror-line > span > span::-moz-selection { background: #b9b6b0; }
        .cm-s-paraiso-light .CodeMirror-gutters { background: #e7e9db; border-right: 0px; }
        .cm-s-paraiso-light .CodeMirror-guttermarker { color: black; }
        .cm-s-paraiso-light .CodeMirror-guttermarker-subtle { color: #8d8687; }
        .cm-s-paraiso-light .CodeMirror-linenumber { color: #8d8687; }
        .cm-s-paraiso-light .CodeMirror-cursor { border-left: 1px solid #776e71; }
        
        .cm-s-paraiso-light span.cm-comment { color: #e96ba8; }
        .cm-s-paraiso-light span.cm-atom { color: #815ba4; }
        .cm-s-paraiso-light span.cm-number { color: #815ba4; }
        
        .cm-s-paraiso-light span.cm-property, .cm-s-paraiso-light span.cm-attribute { color: #48b685; }
        .cm-s-paraiso-light span.cm-keyword { color: #ef6155; }
        .cm-s-paraiso-light span.cm-string { color: #fec418; }
        
        .cm-s-paraiso-light span.cm-variable { color: #48b685; }
        .cm-s-paraiso-light span.cm-variable-2 { color: #06b6ef; }
        .cm-s-paraiso-light span.cm-def { color: #f99b15; }
        .cm-s-paraiso-light span.cm-bracket { color: #41323f; }
        .cm-s-paraiso-light span.cm-tag { color: #ef6155; }
        .cm-s-paraiso-light span.cm-link { color: #815ba4; }
        .cm-s-paraiso-light span.cm-error { background: #ef6155; color: #776e71; }
        
        .cm-s-paraiso-light .CodeMirror-activeline-background { background: #CFD1C4; }
        .cm-s-paraiso-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
        
      • pastel-on-dark.css
        /**
         * Pastel On Dark theme ported from ACE editor
         * @license MIT
         * @copyright AtomicPages LLC 2014
         * @author Dennis Thompson, AtomicPages LLC
         * @version 1.1
         * @source https://github.com/atomicpages/codemirror-pastel-on-dark-theme
         */
        
        .cm-s-pastel-on-dark.CodeMirror {
        	background: #2c2827;
        	color: #8F938F;
        	line-height: 1.5;
        	font-size: 14px;
        }
        .cm-s-pastel-on-dark div.CodeMirror-selected { background: rgba(221,240,255,0.2); }
        .cm-s-pastel-on-dark .CodeMirror-line::selection, .cm-s-pastel-on-dark .CodeMirror-line > span::selection, .cm-s-pastel-on-dark .CodeMirror-line > span > span::selection { background: rgba(221,240,255,0.2); }
        .cm-s-pastel-on-dark .CodeMirror-line::-moz-selection, .cm-s-pastel-on-dark .CodeMirror-line > span::-moz-selection, .cm-s-pastel-on-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(221,240,255,0.2); }
        
        .cm-s-pastel-on-dark .CodeMirror-gutters {
        	background: #34302f;
        	border-right: 0px;
        	padding: 0 3px;
        }
        .cm-s-pastel-on-dark .CodeMirror-guttermarker { color: white; }
        .cm-s-pastel-on-dark .CodeMirror-guttermarker-subtle { color: #8F938F; }
        .cm-s-pastel-on-dark .CodeMirror-linenumber { color: #8F938F; }
        .cm-s-pastel-on-dark .CodeMirror-cursor { border-left: 1px solid #A7A7A7; }
        .cm-s-pastel-on-dark span.cm-comment { color: #A6C6FF; }
        .cm-s-pastel-on-dark span.cm-atom { color: #DE8E30; }
        .cm-s-pastel-on-dark span.cm-number { color: #CCCCCC; }
        .cm-s-pastel-on-dark span.cm-property { color: #8F938F; }
        .cm-s-pastel-on-dark span.cm-attribute { color: #a6e22e; }
        .cm-s-pastel-on-dark span.cm-keyword { color: #AEB2F8; }
        .cm-s-pastel-on-dark span.cm-string { color: #66A968; }
        .cm-s-pastel-on-dark span.cm-variable { color: #AEB2F8; }
        .cm-s-pastel-on-dark span.cm-variable-2 { color: #BEBF55; }
        .cm-s-pastel-on-dark span.cm-variable-3 { color: #DE8E30; }
        .cm-s-pastel-on-dark span.cm-def { color: #757aD8; }
        .cm-s-pastel-on-dark span.cm-bracket { color: #f8f8f2; }
        .cm-s-pastel-on-dark span.cm-tag { color: #C1C144; }
        .cm-s-pastel-on-dark span.cm-link { color: #ae81ff; }
        .cm-s-pastel-on-dark span.cm-qualifier,.cm-s-pastel-on-dark span.cm-builtin { color: #C1C144; }
        .cm-s-pastel-on-dark span.cm-error {
        	background: #757aD8;
        	color: #f8f8f0;
        }
        .cm-s-pastel-on-dark .CodeMirror-activeline-background { background: rgba(255, 255, 255, 0.031); }
        .cm-s-pastel-on-dark .CodeMirror-matchingbracket {
        	border: 1px solid rgba(255,255,255,0.25);
        	color: #8F938F !important;
        	margin: -1px -1px 0 -1px;
        }
        
      • railscasts.css
        /*
        
            Name:       Railscasts
            Author:     Ryan Bates (http://railscasts.com)
        
            CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
            Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
        
        */
        
        .cm-s-railscasts.CodeMirror {background: #2b2b2b; color: #f4f1ed;}
        .cm-s-railscasts div.CodeMirror-selected {background: #272935 !important;}
        .cm-s-railscasts .CodeMirror-gutters {background: #2b2b2b; border-right: 0px;}
        .cm-s-railscasts .CodeMirror-linenumber {color: #5a647e;}
        .cm-s-railscasts .CodeMirror-cursor {border-left: 1px solid #d4cfc9 !important;}
        
        .cm-s-railscasts span.cm-comment {color: #bc9458;}
        .cm-s-railscasts span.cm-atom {color: #b6b3eb;}
        .cm-s-railscasts span.cm-number {color: #b6b3eb;}
        
        .cm-s-railscasts span.cm-property, .cm-s-railscasts span.cm-attribute {color: #a5c261;}
        .cm-s-railscasts span.cm-keyword {color: #da4939;}
        .cm-s-railscasts span.cm-string {color: #ffc66d;}
        
        .cm-s-railscasts span.cm-variable {color: #a5c261;}
        .cm-s-railscasts span.cm-variable-2 {color: #6d9cbe;}
        .cm-s-railscasts span.cm-def {color: #cc7833;}
        .cm-s-railscasts span.cm-error {background: #da4939; color: #d4cfc9;}
        .cm-s-railscasts span.cm-bracket {color: #f4f1ed;}
        .cm-s-railscasts span.cm-tag {color: #da4939;}
        .cm-s-railscasts span.cm-link {color: #b6b3eb;}
        
        .cm-s-railscasts .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
        .cm-s-railscasts .CodeMirror-activeline-background { background: #303040; }
        
      • rubyblue.css
        .cm-s-rubyblue.CodeMirror { background: #112435; color: white; }
        .cm-s-rubyblue div.CodeMirror-selected { background: #38566F; }
        .cm-s-rubyblue .CodeMirror-line::selection, .cm-s-rubyblue .CodeMirror-line > span::selection, .cm-s-rubyblue .CodeMirror-line > span > span::selection { background: rgba(56, 86, 111, 0.99); }
        .cm-s-rubyblue .CodeMirror-line::-moz-selection, .cm-s-rubyblue .CodeMirror-line > span::-moz-selection, .cm-s-rubyblue .CodeMirror-line > span > span::-moz-selection { background: rgba(56, 86, 111, 0.99); }
        .cm-s-rubyblue .CodeMirror-gutters { background: #1F4661; border-right: 7px solid #3E7087; }
        .cm-s-rubyblue .CodeMirror-guttermarker { color: white; }
        .cm-s-rubyblue .CodeMirror-guttermarker-subtle { color: #3E7087; }
        .cm-s-rubyblue .CodeMirror-linenumber { color: white; }
        .cm-s-rubyblue .CodeMirror-cursor { border-left: 1px solid white; }
        
        .cm-s-rubyblue span.cm-comment { color: #999; font-style:italic; line-height: 1em; }
        .cm-s-rubyblue span.cm-atom { color: #F4C20B; }
        .cm-s-rubyblue span.cm-number, .cm-s-rubyblue span.cm-attribute { color: #82C6E0; }
        .cm-s-rubyblue span.cm-keyword { color: #F0F; }
        .cm-s-rubyblue span.cm-string { color: #F08047; }
        .cm-s-rubyblue span.cm-meta { color: #F0F; }
        .cm-s-rubyblue span.cm-variable-2, .cm-s-rubyblue span.cm-tag { color: #7BD827; }
        .cm-s-rubyblue span.cm-variable-3, .cm-s-rubyblue span.cm-def { color: white; }
        .cm-s-rubyblue span.cm-bracket { color: #F0F; }
        .cm-s-rubyblue span.cm-link { color: #F4C20B; }
        .cm-s-rubyblue span.CodeMirror-matchingbracket { color:#F0F !important; }
        .cm-s-rubyblue span.cm-builtin, .cm-s-rubyblue span.cm-special { color: #FF9D00; }
        .cm-s-rubyblue span.cm-error { color: #AF2018; }
        
        .cm-s-rubyblue .CodeMirror-activeline-background { background: #173047; }
        
      • seti.css
        /*
        
            Name:       seti
            Author:     Michael Kaminsky (http://github.com/mkaminsky11)
        
            Original seti color scheme by Jesse Weed (https://github.com/jesseweed/seti-syntax)
        
        */
        
        
        .cm-s-seti.CodeMirror {
          background-color: #151718 !important;
          color: #CFD2D1 !important;
          border: none;
        }
        .cm-s-seti .CodeMirror-gutters {
          color: #404b53;
          background-color: #0E1112;
          border: none;
        }
        .cm-s-seti .CodeMirror-cursor { border-left: solid thin #f8f8f0; }
        .cm-s-seti .CodeMirror-linenumber { color: #6D8A88; }
        .cm-s-seti.CodeMirror-focused div.CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }
        .cm-s-seti .CodeMirror-line::selection, .cm-s-seti .CodeMirror-line > span::selection, .cm-s-seti .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }
        .cm-s-seti .CodeMirror-line::-moz-selection, .cm-s-seti .CodeMirror-line > span::-moz-selection, .cm-s-seti .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }
        .cm-s-seti span.cm-comment { color: #41535b; }
        .cm-s-seti span.cm-string, .cm-s-seti span.cm-string-2 { color: #55b5db; }
        .cm-s-seti span.cm-number { color: #cd3f45; }
        .cm-s-seti span.cm-variable { color: #55b5db; }
        .cm-s-seti span.cm-variable-2 { color: #a074c4; }
        .cm-s-seti span.cm-def { color: #55b5db; }
        .cm-s-seti span.cm-keyword { color: #ff79c6; }
        .cm-s-seti span.cm-operator { color: #9fca56; }
        .cm-s-seti span.cm-keyword { color: #e6cd69; }
        .cm-s-seti span.cm-atom { color: #cd3f45; }
        .cm-s-seti span.cm-meta { color: #55b5db; }
        .cm-s-seti span.cm-tag { color: #55b5db; }
        .cm-s-seti span.cm-attribute { color: #9fca56; }
        .cm-s-seti span.cm-qualifier { color: #9fca56; }
        .cm-s-seti span.cm-property { color: #a074c4; }
        .cm-s-seti span.cm-variable-3 { color: #9fca56; }
        .cm-s-seti span.cm-builtin { color: #9fca56; }
        .cm-s-seti .CodeMirror-activeline-background { background: #101213; }
        .cm-s-seti .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
        
      • solarized.css
        /*
        Solarized theme for code-mirror
        http://ethanschoonover.com/solarized
        */
        
        /*
        Solarized color pallet
        http://ethanschoonover.com/solarized/img/solarized-palette.png
        */
        
        .solarized.base03 { color: #002b36; }
        .solarized.base02 { color: #073642; }
        .solarized.base01 { color: #586e75; }
        .solarized.base00 { color: #657b83; }
        .solarized.base0 { color: #839496; }
        .solarized.base1 { color: #93a1a1; }
        .solarized.base2 { color: #eee8d5; }
        .solarized.base3  { color: #fdf6e3; }
        .solarized.solar-yellow  { color: #b58900; }
        .solarized.solar-orange  { color: #cb4b16; }
        .solarized.solar-red { color: #dc322f; }
        .solarized.solar-magenta { color: #d33682; }
        .solarized.solar-violet  { color: #6c71c4; }
        .solarized.solar-blue { color: #268bd2; }
        .solarized.solar-cyan { color: #2aa198; }
        .solarized.solar-green { color: #859900; }
        
        /* Color scheme for code-mirror */
        
        .cm-s-solarized {
          line-height: 1.45em;
          color-profile: sRGB;
          rendering-intent: auto;
        }
        .cm-s-solarized.cm-s-dark {
          color: #839496;
          background-color:  #002b36;
          text-shadow: #002b36 0 1px;
        }
        .cm-s-solarized.cm-s-light {
          background-color: #fdf6e3;
          color: #657b83;
          text-shadow: #eee8d5 0 1px;
        }
        
        .cm-s-solarized .CodeMirror-widget {
          text-shadow: none;
        }
        
        .cm-s-solarized .cm-header { color: #586e75; }
        .cm-s-solarized .cm-quote { color: #93a1a1; }
        
        .cm-s-solarized .cm-keyword { color: #cb4b16; }
        .cm-s-solarized .cm-atom { color: #d33682; }
        .cm-s-solarized .cm-number { color: #d33682; }
        .cm-s-solarized .cm-def { color: #2aa198; }
        
        .cm-s-solarized .cm-variable { color: #839496; }
        .cm-s-solarized .cm-variable-2 { color: #b58900; }
        .cm-s-solarized .cm-variable-3 { color: #6c71c4; }
        
        .cm-s-solarized .cm-property { color: #2aa198; }
        .cm-s-solarized .cm-operator { color: #6c71c4; }
        
        .cm-s-solarized .cm-comment { color: #586e75; font-style:italic; }
        
        .cm-s-solarized .cm-string { color: #859900; }
        .cm-s-solarized .cm-string-2 { color: #b58900; }
        
        .cm-s-solarized .cm-meta { color: #859900; }
        .cm-s-solarized .cm-qualifier { color: #b58900; }
        .cm-s-solarized .cm-builtin { color: #d33682; }
        .cm-s-solarized .cm-bracket { color: #cb4b16; }
        .cm-s-solarized .CodeMirror-matchingbracket { color: #859900; }
        .cm-s-solarized .CodeMirror-nonmatchingbracket { color: #dc322f; }
        .cm-s-solarized .cm-tag { color: #93a1a1; }
        .cm-s-solarized .cm-attribute { color: #2aa198; }
        .cm-s-solarized .cm-hr {
          color: transparent;
          border-top: 1px solid #586e75;
          display: block;
        }
        .cm-s-solarized .cm-link { color: #93a1a1; cursor: pointer; }
        .cm-s-solarized .cm-special { color: #6c71c4; }
        .cm-s-solarized .cm-em {
          color: #999;
          text-decoration: underline;
          text-decoration-style: dotted;
        }
        .cm-s-solarized .cm-strong { color: #eee; }
        .cm-s-solarized .cm-error,
        .cm-s-solarized .cm-invalidchar {
          color: #586e75;
          border-bottom: 1px dotted #dc322f;
        }
        
        .cm-s-solarized.cm-s-dark div.CodeMirror-selected { background: #073642; }
        .cm-s-solarized.cm-s-dark.CodeMirror ::selection { background: rgba(7, 54, 66, 0.99); }
        .cm-s-solarized.cm-s-dark .CodeMirror-line::-moz-selection, .cm-s-dark .CodeMirror-line > span::-moz-selection, .cm-s-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(7, 54, 66, 0.99); }
        
        .cm-s-solarized.cm-s-light div.CodeMirror-selected { background: #eee8d5; }
        .cm-s-solarized.cm-s-light .CodeMirror-line::selection, .cm-s-light .CodeMirror-line > span::selection, .cm-s-light .CodeMirror-line > span > span::selection { background: #eee8d5; }
        .cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection, .cm-s-ligh .CodeMirror-line > span::-moz-selection, .cm-s-ligh .CodeMirror-line > span > span::-moz-selection { background: #eee8d5; }
        
        /* Editor styling */
        
        
        
        /* Little shadow on the view-port of the buffer view */
        .cm-s-solarized.CodeMirror {
          -moz-box-shadow: inset 7px 0 12px -6px #000;
          -webkit-box-shadow: inset 7px 0 12px -6px #000;
          box-shadow: inset 7px 0 12px -6px #000;
        }
        
        /* Gutter border and some shadow from it  */
        .cm-s-solarized .CodeMirror-gutters {
          border-right: 1px solid;
        }
        
        /* Gutter colors and line number styling based of color scheme (dark / light) */
        
        /* Dark */
        .cm-s-solarized.cm-s-dark .CodeMirror-gutters {
          background-color:  #002b36;
          border-color: #00232c;
        }
        
        .cm-s-solarized.cm-s-dark .CodeMirror-linenumber {
          text-shadow: #021014 0 -1px;
        }
        
        /* Light */
        .cm-s-solarized.cm-s-light .CodeMirror-gutters {
          background-color: #fdf6e3;
          border-color: #eee8d5;
        }
        
        /* Common */
        .cm-s-solarized .CodeMirror-linenumber {
          color: #586e75;
          padding: 0 5px;
        }
        .cm-s-solarized .CodeMirror-guttermarker-subtle { color: #586e75; }
        .cm-s-solarized.cm-s-dark .CodeMirror-guttermarker { color: #ddd; }
        .cm-s-solarized.cm-s-light .CodeMirror-guttermarker { color: #cb4b16; }
        
        .cm-s-solarized .CodeMirror-gutter .CodeMirror-gutter-text {
          color: #586e75;
        }
        
        .cm-s-solarized .CodeMirror-cursor { border-left: 1px solid #819090; }
        
        /*
        Active line. Negative margin compensates left padding of the text in the
        view-port
        */
        .cm-s-solarized.cm-s-dark .CodeMirror-activeline-background {
          background: rgba(255, 255, 255, 0.10);
        }
        .cm-s-solarized.cm-s-light .CodeMirror-activeline-background {
          background: rgba(0, 0, 0, 0.10);
        }
        
      • the-matrix.css
        .cm-s-the-matrix.CodeMirror { background: #000000; color: #00FF00; }
        .cm-s-the-matrix div.CodeMirror-selected { background: #2D2D2D; }
        .cm-s-the-matrix .CodeMirror-line::selection, .cm-s-the-matrix .CodeMirror-line > span::selection, .cm-s-the-matrix .CodeMirror-line > span > span::selection { background: rgba(45, 45, 45, 0.99); }
        .cm-s-the-matrix .CodeMirror-line::-moz-selection, .cm-s-the-matrix .CodeMirror-line > span::-moz-selection, .cm-s-the-matrix .CodeMirror-line > span > span::-moz-selection { background: rgba(45, 45, 45, 0.99); }
        .cm-s-the-matrix .CodeMirror-gutters { background: #060; border-right: 2px solid #00FF00; }
        .cm-s-the-matrix .CodeMirror-guttermarker { color: #0f0; }
        .cm-s-the-matrix .CodeMirror-guttermarker-subtle { color: white; }
        .cm-s-the-matrix .CodeMirror-linenumber { color: #FFFFFF; }
        .cm-s-the-matrix .CodeMirror-cursor { border-left: 1px solid #00FF00; }
        
        .cm-s-the-matrix span.cm-keyword { color: #008803; font-weight: bold; }
        .cm-s-the-matrix span.cm-atom { color: #3FF; }
        .cm-s-the-matrix span.cm-number { color: #FFB94F; }
        .cm-s-the-matrix span.cm-def { color: #99C; }
        .cm-s-the-matrix span.cm-variable { color: #F6C; }
        .cm-s-the-matrix span.cm-variable-2 { color: #C6F; }
        .cm-s-the-matrix span.cm-variable-3 { color: #96F; }
        .cm-s-the-matrix span.cm-property { color: #62FFA0; }
        .cm-s-the-matrix span.cm-operator { color: #999; }
        .cm-s-the-matrix span.cm-comment { color: #CCCCCC; }
        .cm-s-the-matrix span.cm-string { color: #39C; }
        .cm-s-the-matrix span.cm-meta { color: #C9F; }
        .cm-s-the-matrix span.cm-qualifier { color: #FFF700; }
        .cm-s-the-matrix span.cm-builtin { color: #30a; }
        .cm-s-the-matrix span.cm-bracket { color: #cc7; }
        .cm-s-the-matrix span.cm-tag { color: #FFBD40; }
        .cm-s-the-matrix span.cm-attribute { color: #FFF700; }
        .cm-s-the-matrix span.cm-error { color: #FF0000; }
        
        .cm-s-the-matrix .CodeMirror-activeline-background { background: #040; }
        
      • tomorrow-night-bright.css
        /*
        
            Name:       Tomorrow Night - Bright
            Author:     Chris Kempson
        
            Port done by Gerard Braad <me@gbraad.nl>
        
        */
        
        .cm-s-tomorrow-night-bright.CodeMirror { background: #000000; color: #eaeaea; }
        .cm-s-tomorrow-night-bright div.CodeMirror-selected { background: #424242; }
        .cm-s-tomorrow-night-bright .CodeMirror-gutters { background: #000000; border-right: 0px; }
        .cm-s-tomorrow-night-bright .CodeMirror-guttermarker { color: #e78c45; }
        .cm-s-tomorrow-night-bright .CodeMirror-guttermarker-subtle { color: #777; }
        .cm-s-tomorrow-night-bright .CodeMirror-linenumber { color: #424242; }
        .cm-s-tomorrow-night-bright .CodeMirror-cursor { border-left: 1px solid #6A6A6A; }
        
        .cm-s-tomorrow-night-bright span.cm-comment { color: #d27b53; }
        .cm-s-tomorrow-night-bright span.cm-atom { color: #a16a94; }
        .cm-s-tomorrow-night-bright span.cm-number { color: #a16a94; }
        
        .cm-s-tomorrow-night-bright span.cm-property, .cm-s-tomorrow-night-bright span.cm-attribute { color: #99cc99; }
        .cm-s-tomorrow-night-bright span.cm-keyword { color: #d54e53; }
        .cm-s-tomorrow-night-bright span.cm-string { color: #e7c547; }
        
        .cm-s-tomorrow-night-bright span.cm-variable { color: #b9ca4a; }
        .cm-s-tomorrow-night-bright span.cm-variable-2 { color: #7aa6da; }
        .cm-s-tomorrow-night-bright span.cm-def { color: #e78c45; }
        .cm-s-tomorrow-night-bright span.cm-bracket { color: #eaeaea; }
        .cm-s-tomorrow-night-bright span.cm-tag { color: #d54e53; }
        .cm-s-tomorrow-night-bright span.cm-link { color: #a16a94; }
        .cm-s-tomorrow-night-bright span.cm-error { background: #d54e53; color: #6A6A6A; }
        
        .cm-s-tomorrow-night-bright .CodeMirror-activeline-background { background: #2a2a2a; }
        .cm-s-tomorrow-night-bright .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
        
      • tomorrow-night-eighties.css
        /*
        
            Name:       Tomorrow Night - Eighties
            Author:     Chris Kempson
        
            CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
            Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
        
        */
        
        .cm-s-tomorrow-night-eighties.CodeMirror { background: #000000; color: #CCCCCC; }
        .cm-s-tomorrow-night-eighties div.CodeMirror-selected { background: #2D2D2D; }
        .cm-s-tomorrow-night-eighties .CodeMirror-line::selection, .cm-s-tomorrow-night-eighties .CodeMirror-line > span::selection, .cm-s-tomorrow-night-eighties .CodeMirror-line > span > span::selection { background: rgba(45, 45, 45, 0.99); }
        .cm-s-tomorrow-night-eighties .CodeMirror-line::-moz-selection, .cm-s-tomorrow-night-eighties .CodeMirror-line > span::-moz-selection, .cm-s-tomorrow-night-eighties .CodeMirror-line > span > span::-moz-selection { background: rgba(45, 45, 45, 0.99); }
        .cm-s-tomorrow-night-eighties .CodeMirror-gutters { background: #000000; border-right: 0px; }
        .cm-s-tomorrow-night-eighties .CodeMirror-guttermarker { color: #f2777a; }
        .cm-s-tomorrow-night-eighties .CodeMirror-guttermarker-subtle { color: #777; }
        .cm-s-tomorrow-night-eighties .CodeMirror-linenumber { color: #515151; }
        .cm-s-tomorrow-night-eighties .CodeMirror-cursor { border-left: 1px solid #6A6A6A; }
        
        .cm-s-tomorrow-night-eighties span.cm-comment { color: #d27b53; }
        .cm-s-tomorrow-night-eighties span.cm-atom { color: #a16a94; }
        .cm-s-tomorrow-night-eighties span.cm-number { color: #a16a94; }
        
        .cm-s-tomorrow-night-eighties span.cm-property, .cm-s-tomorrow-night-eighties span.cm-attribute { color: #99cc99; }
        .cm-s-tomorrow-night-eighties span.cm-keyword { color: #f2777a; }
        .cm-s-tomorrow-night-eighties span.cm-string { color: #ffcc66; }
        
        .cm-s-tomorrow-night-eighties span.cm-variable { color: #99cc99; }
        .cm-s-tomorrow-night-eighties span.cm-variable-2 { color: #6699cc; }
        .cm-s-tomorrow-night-eighties span.cm-def { color: #f99157; }
        .cm-s-tomorrow-night-eighties span.cm-bracket { color: #CCCCCC; }
        .cm-s-tomorrow-night-eighties span.cm-tag { color: #f2777a; }
        .cm-s-tomorrow-night-eighties span.cm-link { color: #a16a94; }
        .cm-s-tomorrow-night-eighties span.cm-error { background: #f2777a; color: #6A6A6A; }
        
        .cm-s-tomorrow-night-eighties .CodeMirror-activeline-background { background: #343600; }
        .cm-s-tomorrow-night-eighties .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
        
      • ttcn.css
        .cm-s-ttcn .cm-quote { color: #090; }
        .cm-s-ttcn .cm-negative { color: #d44; }
        .cm-s-ttcn .cm-positive { color: #292; }
        .cm-s-ttcn .cm-header, .cm-strong { font-weight: bold; }
        .cm-s-ttcn .cm-em { font-style: italic; }
        .cm-s-ttcn .cm-link { text-decoration: underline; }
        .cm-s-ttcn .cm-strikethrough { text-decoration: line-through; }
        .cm-s-ttcn .cm-header { color: #00f; font-weight: bold; }
        
        .cm-s-ttcn .cm-atom { color: #219; }
        .cm-s-ttcn .cm-attribute { color: #00c; }
        .cm-s-ttcn .cm-bracket { color: #997; }
        .cm-s-ttcn .cm-comment { color: #333333; }
        .cm-s-ttcn .cm-def { color: #00f; }
        .cm-s-ttcn .cm-em { font-style: italic; }
        .cm-s-ttcn .cm-error { color: #f00; }
        .cm-s-ttcn .cm-hr { color: #999; }
        .cm-s-ttcn .cm-invalidchar { color: #f00; }
        .cm-s-ttcn .cm-keyword { font-weight:bold; }
        .cm-s-ttcn .cm-link { color: #00c; text-decoration: underline; }
        .cm-s-ttcn .cm-meta { color: #555; }
        .cm-s-ttcn .cm-negative { color: #d44; }
        .cm-s-ttcn .cm-positive { color: #292; }
        .cm-s-ttcn .cm-qualifier { color: #555; }
        .cm-s-ttcn .cm-strikethrough { text-decoration: line-through; }
        .cm-s-ttcn .cm-string { color: #006400; }
        .cm-s-ttcn .cm-string-2 { color: #f50; }
        .cm-s-ttcn .cm-strong { font-weight: bold; }
        .cm-s-ttcn .cm-tag { color: #170; }
        .cm-s-ttcn .cm-variable { color: #8B2252; }
        .cm-s-ttcn .cm-variable-2 { color: #05a; }
        .cm-s-ttcn .cm-variable-3 { color: #085; }
        
        .cm-s-ttcn .cm-invalidchar { color: #f00; }
        
        /* ASN */
        .cm-s-ttcn .cm-accessTypes,
        .cm-s-ttcn .cm-compareTypes { color: #27408B; }
        .cm-s-ttcn .cm-cmipVerbs { color: #8B2252; }
        .cm-s-ttcn .cm-modifier { color:#D2691E; }
        .cm-s-ttcn .cm-status { color:#8B4545; }
        .cm-s-ttcn .cm-storage { color:#A020F0; }
        .cm-s-ttcn .cm-tags { color:#006400; }
        
        /* CFG */
        .cm-s-ttcn .cm-externalCommands { color: #8B4545; font-weight:bold; }
        .cm-s-ttcn .cm-fileNCtrlMaskOptions,
        .cm-s-ttcn .cm-sectionTitle { color: #2E8B57; font-weight:bold; }
        
        /* TTCN */
        .cm-s-ttcn .cm-booleanConsts,
        .cm-s-ttcn .cm-otherConsts,
        .cm-s-ttcn .cm-verdictConsts { color: #006400; }
        .cm-s-ttcn .cm-configOps,
        .cm-s-ttcn .cm-functionOps,
        .cm-s-ttcn .cm-portOps,
        .cm-s-ttcn .cm-sutOps,
        .cm-s-ttcn .cm-timerOps,
        .cm-s-ttcn .cm-verdictOps { color: #0000FF; }
        .cm-s-ttcn .cm-preprocessor,
        .cm-s-ttcn .cm-templateMatch,
        .cm-s-ttcn .cm-ttcn3Macros { color: #27408B; }
        .cm-s-ttcn .cm-types { color: #A52A2A; font-weight:bold; }
        .cm-s-ttcn .cm-visibilityModifiers { font-weight:bold; }
        
      • twilight.css
        .cm-s-twilight.CodeMirror { background: #141414; color: #f7f7f7; } /**/
        .cm-s-twilight div.CodeMirror-selected { background: #323232; } /**/
        .cm-s-twilight .CodeMirror-line::selection, .cm-s-twilight .CodeMirror-line > span::selection, .cm-s-twilight .CodeMirror-line > span > span::selection { background: rgba(50, 50, 50, 0.99); }
        .cm-s-twilight .CodeMirror-line::-moz-selection, .cm-s-twilight .CodeMirror-line > span::-moz-selection, .cm-s-twilight .CodeMirror-line > span > span::-moz-selection { background: rgba(50, 50, 50, 0.99); }
        
        .cm-s-twilight .CodeMirror-gutters { background: #222; border-right: 1px solid #aaa; }
        .cm-s-twilight .CodeMirror-guttermarker { color: white; }
        .cm-s-twilight .CodeMirror-guttermarker-subtle { color: #aaa; }
        .cm-s-twilight .CodeMirror-linenumber { color: #aaa; }
        .cm-s-twilight .CodeMirror-cursor { border-left: 1px solid white; }
        
        .cm-s-twilight .cm-keyword { color: #f9ee98; } /**/
        .cm-s-twilight .cm-atom { color: #FC0; }
        .cm-s-twilight .cm-number { color:  #ca7841; } /**/
        .cm-s-twilight .cm-def { color: #8DA6CE; }
        .cm-s-twilight span.cm-variable-2, .cm-s-twilight span.cm-tag { color: #607392; } /**/
        .cm-s-twilight span.cm-variable-3, .cm-s-twilight span.cm-def { color: #607392; } /**/
        .cm-s-twilight .cm-operator { color: #cda869; } /**/
        .cm-s-twilight .cm-comment { color:#777; font-style:italic; font-weight:normal; } /**/
        .cm-s-twilight .cm-string { color:#8f9d6a; font-style:italic; } /**/
        .cm-s-twilight .cm-string-2 { color:#bd6b18; } /*?*/
        .cm-s-twilight .cm-meta { background-color:#141414; color:#f7f7f7; } /*?*/
        .cm-s-twilight .cm-builtin { color: #cda869; } /*?*/
        .cm-s-twilight .cm-tag { color: #997643; } /**/
        .cm-s-twilight .cm-attribute { color: #d6bb6d; } /*?*/
        .cm-s-twilight .cm-header { color: #FF6400; }
        .cm-s-twilight .cm-hr { color: #AEAEAE; }
        .cm-s-twilight .cm-link { color:#ad9361; font-style:italic; text-decoration:none; } /**/
        .cm-s-twilight .cm-error { border-bottom: 1px solid red; }
        
        .cm-s-twilight .CodeMirror-activeline-background { background: #27282E; }
        .cm-s-twilight .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }
        
      • vibrant-ink.css
        /* Taken from the popular Visual Studio Vibrant Ink Schema */
        
        .cm-s-vibrant-ink.CodeMirror { background: black; color: white; }
        .cm-s-vibrant-ink div.CodeMirror-selected { background: #35493c; }
        .cm-s-vibrant-ink .CodeMirror-line::selection, .cm-s-vibrant-ink .CodeMirror-line > span::selection, .cm-s-vibrant-ink .CodeMirror-line > span > span::selection { background: rgba(53, 73, 60, 0.99); }
        .cm-s-vibrant-ink .CodeMirror-line::-moz-selection, .cm-s-vibrant-ink .CodeMirror-line > span::-moz-selection, .cm-s-vibrant-ink .CodeMirror-line > span > span::-moz-selection { background: rgba(53, 73, 60, 0.99); }
        
        .cm-s-vibrant-ink .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }
        .cm-s-vibrant-ink .CodeMirror-guttermarker { color: white; }
        .cm-s-vibrant-ink .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
        .cm-s-vibrant-ink .CodeMirror-linenumber { color: #d0d0d0; }
        .cm-s-vibrant-ink .CodeMirror-cursor { border-left: 1px solid white; }
        
        .cm-s-vibrant-ink .cm-keyword { color: #CC7832; }
        .cm-s-vibrant-ink .cm-atom { color: #FC0; }
        .cm-s-vibrant-ink .cm-number { color:  #FFEE98; }
        .cm-s-vibrant-ink .cm-def { color: #8DA6CE; }
        .cm-s-vibrant-ink span.cm-variable-2, .cm-s-vibrant span.cm-tag { color: #FFC66D; }
        .cm-s-vibrant-ink span.cm-variable-3, .cm-s-vibrant span.cm-def { color: #FFC66D; }
        .cm-s-vibrant-ink .cm-operator { color: #888; }
        .cm-s-vibrant-ink .cm-comment { color: gray; font-weight: bold; }
        .cm-s-vibrant-ink .cm-string { color:  #A5C25C; }
        .cm-s-vibrant-ink .cm-string-2 { color: red; }
        .cm-s-vibrant-ink .cm-meta { color: #D8FA3C; }
        .cm-s-vibrant-ink .cm-builtin { color: #8DA6CE; }
        .cm-s-vibrant-ink .cm-tag { color: #8DA6CE; }
        .cm-s-vibrant-ink .cm-attribute { color: #8DA6CE; }
        .cm-s-vibrant-ink .cm-header { color: #FF6400; }
        .cm-s-vibrant-ink .cm-hr { color: #AEAEAE; }
        .cm-s-vibrant-ink .cm-link { color: blue; }
        .cm-s-vibrant-ink .cm-error { border-bottom: 1px solid red; }
        
        .cm-s-vibrant-ink .CodeMirror-activeline-background { background: #27282E; }
        .cm-s-vibrant-ink .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }
        
      • xq-dark.css
        /*
        Copyright (C) 2011 by MarkLogic Corporation
        Author: Mike Brevoort <mike@brevoort.com>
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in
        all copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
        THE SOFTWARE.
        */
        .cm-s-xq-dark.CodeMirror { background: #0a001f; color: #f8f8f8; }
        .cm-s-xq-dark div.CodeMirror-selected { background: #27007A; }
        .cm-s-xq-dark .CodeMirror-line::selection, .cm-s-xq-dark .CodeMirror-line > span::selection, .cm-s-xq-dark .CodeMirror-line > span > span::selection { background: rgba(39, 0, 122, 0.99); }
        .cm-s-xq-dark .CodeMirror-line::-moz-selection, .cm-s-xq-dark .CodeMirror-line > span::-moz-selection, .cm-s-xq-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(39, 0, 122, 0.99); }
        .cm-s-xq-dark .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }
        .cm-s-xq-dark .CodeMirror-guttermarker { color: #FFBD40; }
        .cm-s-xq-dark .CodeMirror-guttermarker-subtle { color: #f8f8f8; }
        .cm-s-xq-dark .CodeMirror-linenumber { color: #f8f8f8; }
        .cm-s-xq-dark .CodeMirror-cursor { border-left: 1px solid white; }
        
        .cm-s-xq-dark span.cm-keyword { color: #FFBD40; }
        .cm-s-xq-dark span.cm-atom { color: #6C8CD5; }
        .cm-s-xq-dark span.cm-number { color: #164; }
        .cm-s-xq-dark span.cm-def { color: #FFF; text-decoration:underline; }
        .cm-s-xq-dark span.cm-variable { color: #FFF; }
        .cm-s-xq-dark span.cm-variable-2 { color: #EEE; }
        .cm-s-xq-dark span.cm-variable-3 { color: #DDD; }
        .cm-s-xq-dark span.cm-property {}
        .cm-s-xq-dark span.cm-operator {}
        .cm-s-xq-dark span.cm-comment { color: gray; }
        .cm-s-xq-dark span.cm-string { color: #9FEE00; }
        .cm-s-xq-dark span.cm-meta { color: yellow; }
        .cm-s-xq-dark span.cm-qualifier { color: #FFF700; }
        .cm-s-xq-dark span.cm-builtin { color: #30a; }
        .cm-s-xq-dark span.cm-bracket { color: #cc7; }
        .cm-s-xq-dark span.cm-tag { color: #FFBD40; }
        .cm-s-xq-dark span.cm-attribute { color: #FFF700; }
        .cm-s-xq-dark span.cm-error { color: #f00; }
        
        .cm-s-xq-dark .CodeMirror-activeline-background { background: #27282E; }
        .cm-s-xq-dark .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }
        
      • xq-light.css
        /*
        Copyright (C) 2011 by MarkLogic Corporation
        Author: Mike Brevoort <mike@brevoort.com>
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in
        all copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
        THE SOFTWARE.
        */
        .cm-s-xq-light span.cm-keyword { line-height: 1em; font-weight: bold; color: #5A5CAD; }
        .cm-s-xq-light span.cm-atom { color: #6C8CD5; }
        .cm-s-xq-light span.cm-number { color: #164; }
        .cm-s-xq-light span.cm-def { text-decoration:underline; }
        .cm-s-xq-light span.cm-variable { color: black; }
        .cm-s-xq-light span.cm-variable-2 { color:black; }
        .cm-s-xq-light span.cm-variable-3 { color: black; }
        .cm-s-xq-light span.cm-property {}
        .cm-s-xq-light span.cm-operator {}
        .cm-s-xq-light span.cm-comment { color: #0080FF; font-style: italic; }
        .cm-s-xq-light span.cm-string { color: red; }
        .cm-s-xq-light span.cm-meta { color: yellow; }
        .cm-s-xq-light span.cm-qualifier { color: grey; }
        .cm-s-xq-light span.cm-builtin { color: #7EA656; }
        .cm-s-xq-light span.cm-bracket { color: #cc7; }
        .cm-s-xq-light span.cm-tag { color: #3F7F7F; }
        .cm-s-xq-light span.cm-attribute { color: #7F007F; }
        .cm-s-xq-light span.cm-error { color: #f00; }
        
        .cm-s-xq-light .CodeMirror-activeline-background { background: #e8f2ff; }
        .cm-s-xq-light .CodeMirror-matchingbracket { outline:1px solid grey;color:black !important;background:yellow; }
        
      • yeti.css
        /*
        
            Name:       yeti
            Author:     Michael Kaminsky (http://github.com/mkaminsky11)
        
            Original yeti color scheme by Jesse Weed (https://github.com/jesseweed/yeti-syntax)
        
        */
        
        
        .cm-s-yeti.CodeMirror {
          background-color: #ECEAE8 !important;
          color: #d1c9c0 !important;
          border: none;
        }
        
        .cm-s-yeti .CodeMirror-gutters {
          color: #adaba6;
          background-color: #E5E1DB;
          border: none;
        }
        .cm-s-yeti .CodeMirror-cursor { border-left: solid thin #d1c9c0; }
        .cm-s-yeti .CodeMirror-linenumber { color: #adaba6; }
        .cm-s-yeti.CodeMirror-focused div.CodeMirror-selected { background: #DCD8D2; }
        .cm-s-yeti .CodeMirror-line::selection, .cm-s-yeti .CodeMirror-line > span::selection, .cm-s-yeti .CodeMirror-line > span > span::selection { background: #DCD8D2; }
        .cm-s-yeti .CodeMirror-line::-moz-selection, .cm-s-yeti .CodeMirror-line > span::-moz-selection, .cm-s-yeti .CodeMirror-line > span > span::-moz-selection { background: #DCD8D2; }
        .cm-s-yeti span.cm-comment { color: #d4c8be; }
        .cm-s-yeti span.cm-string, .cm-s-yeti span.cm-string-2 { color: #96c0d8; }
        .cm-s-yeti span.cm-number { color: #a074c4; }
        .cm-s-yeti span.cm-variable { color: #55b5db; }
        .cm-s-yeti span.cm-variable-2 { color: #a074c4; }
        .cm-s-yeti span.cm-def { color: #55b5db; }
        .cm-s-yeti span.cm-operator { color: #9fb96e; }
        .cm-s-yeti span.cm-keyword { color: #9fb96e; }
        .cm-s-yeti span.cm-atom { color: #a074c4; }
        .cm-s-yeti span.cm-meta { color: #96c0d8; }
        .cm-s-yeti span.cm-tag { color: #96c0d8; }
        .cm-s-yeti span.cm-attribute { color: #9fb96e; }
        .cm-s-yeti span.cm-qualifier { color: #96c0d8; }
        .cm-s-yeti span.cm-property { color: #a074c4; }
        .cm-s-yeti span.cm-builtin { color: #a074c4; }
        .cm-s-yeti span.cm-variable-3 { color: #96c0d8; }
        .cm-s-yeti .CodeMirror-activeline-background { background: #E7E4E0; }
        .cm-s-yeti .CodeMirror-matchingbracket { text-decoration: underline; }
        
      • zenburn.css
        /**
         * "
         *  Using Zenburn color palette from the Emacs Zenburn Theme
         *  https://github.com/bbatsov/zenburn-emacs/blob/master/zenburn-theme.el
         *
         *  Also using parts of https://github.com/xavi/coderay-lighttable-theme
         * "
         * From: https://github.com/wisenomad/zenburn-lighttable-theme/blob/master/zenburn.css
         */
        
        .cm-s-zenburn .CodeMirror-gutters { background: #3f3f3f !important; }
        .cm-s-zenburn .CodeMirror-foldgutter-open, .CodeMirror-foldgutter-folded { color: #999; }
        .cm-s-zenburn .CodeMirror-cursor { border-left: 1px solid white; }
        .cm-s-zenburn { background-color: #3f3f3f; color: #dcdccc; }
        .cm-s-zenburn span.cm-builtin { color: #dcdccc; font-weight: bold; }
        .cm-s-zenburn span.cm-comment { color: #7f9f7f; }
        .cm-s-zenburn span.cm-keyword { color: #f0dfaf; font-weight: bold; }
        .cm-s-zenburn span.cm-atom { color: #bfebbf; }
        .cm-s-zenburn span.cm-def { color: #dcdccc; }
        .cm-s-zenburn span.cm-variable { color: #dfaf8f; }
        .cm-s-zenburn span.cm-variable-2 { color: #dcdccc; }
        .cm-s-zenburn span.cm-string { color: #cc9393; }
        .cm-s-zenburn span.cm-string-2 { color: #cc9393; }
        .cm-s-zenburn span.cm-number { color: #dcdccc; }
        .cm-s-zenburn span.cm-tag { color: #93e0e3; }
        .cm-s-zenburn span.cm-property { color: #dfaf8f; }
        .cm-s-zenburn span.cm-attribute { color: #dfaf8f; }
        .cm-s-zenburn span.cm-qualifier { color: #7cb8bb; }
        .cm-s-zenburn span.cm-meta { color: #f0dfaf; }
        .cm-s-zenburn span.cm-header { color: #f0efd0; }
        .cm-s-zenburn span.cm-operator { color: #f0efd0; }
        .cm-s-zenburn span.CodeMirror-matchingbracket { box-sizing: border-box; background: transparent; border-bottom: 1px solid; }
        .cm-s-zenburn span.CodeMirror-nonmatchingbracket { border-bottom: 1px solid; background: none; }
        .cm-s-zenburn .CodeMirror-activeline { background: #000000; }
        .cm-s-zenburn .CodeMirror-activeline-background { background: #000000; }
        .cm-s-zenburn div.CodeMirror-selected { background: #545454; }
        .cm-s-zenburn .CodeMirror-focused div.CodeMirror-selected { background: #4f4f4f; }
        
  • isolation
    • noapi
      • HostedProcess.ts
        module noapi {
        
          export class HostedProcess {
        
            process: Process;
            mainModule: Module;
            global: Global;
            coreModules: { fs: FS; path: Path, os: OS; };
        
            private _scriptPath: string;
            private _drive: persistence.Drive;
            private _console: any;
        
            exitCode: number = null;
            finished = false;
        
            private _context: isolation.Context;
            private _waitFor = 0;
        
            constructor(options: {
              window: Window;
              drive: persistence.Drive;
              onchanges?: (changedFiles: string[]) => void;
              scriptPath: string;
        
              argv?: string[];
              cwd?: string;
              env?: any;
              console?: any;
        
            }) {
        
              this.global = <any>{};
        
              this.coreModules = {
                fs: <FS>null,
                os: <OS>null,
                path: <Path>null
              };
        
              var noopt = {
                argv: options.argv || ['/node', options.scriptPath],
                cwd: options.cwd,
                env: options.env || {}
              };
        
              this._scriptPath = options.scriptPath;
              this._drive = options.drive;
        
              if (!noopt.cwd)
                noopt.cwd = dirname(options.scriptPath);
        
              this.global.process = this.process = createProcess(this.coreModules, noopt);
              this.global.module = this.mainModule = createModule('repl' /*id*/, null /*filename*/, null /*parent*/, require);
        
              var noapicontext = this;
              function require(moduleName: string) { return noapicontext.requireModule(moduleName, dirname(options.scriptPath), null); }
        
              this.global.require = <any>(moduleName => require(moduleName));
              this.global.require.resolve = id => this.resolve(id, noopt.cwd);
              this.global.__filename = options.scriptPath;
              this.global.__dirname = dirname(options.scriptPath);
              if (options.console)
                this.global.console = options.console;
              this._console = options.console;
        
              var onchangesOpts = {onchanges: null};
              this.coreModules.fs = createFS(options.drive, this.coreModules, onchangesOpts);
              this.coreModules.os = createOS(this.global);
              this.coreModules.path = createPath(this.global);
        
              options.onchanges = (changedFiles) => {
                if (onchangesOpts.onchanges) onchangesOpts.onchanges(changedFiles);
              };
        
              this._context = new isolation.Context(window);
        
              this.process.exit = code => {
                this.finished = true;
                this.exitCode = code || 0;
                this.dispose();
              };
        
              this.process.abort = () => {
                this.finished = true;
                this.dispose();
              };
        
              var timeouts: Function[] = [];
              (<any>this.global).setTimeout = (fun: Function, time: number, ...args: any[]) => {
                if (this.finished) return 0;
                var wait = this.keepAlive();
                var complete = () => {
                  delete timeouts[result];
                  wait();
                  fun();
                };
        
                var passArgs = [];
                passArgs.push(complete);
                passArgs.push(time);
                for (var i = 0; i < args.length; i++) {
                  passArgs.push(args[i]);
                }
                var result = setTimeout.apply(this.global, passArgs);
        
                timeouts[result] = wait;
                return result;
              };
        
              (<any>this.global).clearTimeout = (tout: number) => {
                var wait = timeouts[tout];
                if (wait) wait();
                delete timeouts[tout];
                clearTimeout(tout);
              };
        
              var intervals: Function[] = [];
              (<any>this.global).setInterval = (fun: Function, time: number, ...args: any[]) => {
                if (this.finished) return 0;
                var wait = this.keepAlive();
        
                var passArgs = [];
                passArgs.push(fun);
                passArgs.push(time);
                for (var i = 0; i < args.length; i++) {
                  passArgs.push(args[i]);
                }
                var result = setInterval.apply(this.global, passArgs);
        
                intervals[result] = wait;
                return result;
              };
        
              (<any>this.global).clearInterval = (intv: number) => {
                var wait = intervals[intv];
                if (wait) wait();
                delete intervals[intv];
                clearTimeout(intv);
              };
        
              this.process.nextTick = fun => {
                var wait = this.keepAlive();
                setTimeout(() => {
                  wait();
                  fun();
                }, 1);
              };
        
            }
        
            eval(code: string) {
              var wait = this.keepAlive();
              try {
                return this._context.run(code, this._scriptPath, this.global);
              }
              finally {
                wait();
              }
            }
        
            resolve(id: string, modulePath: string) {
              if (id.charAt(0) === '.') {
                return this.coreModules.path.join(modulePath, id);
              }
              else if (id.charAt(0) === '/') {
                return id;
              }
              else {
                var tryPath = this.coreModules.path.normalize(modulePath);
                var probePatterns = [
                  '../' + i, '../' + id + '.js', '../' + id + '/index.js',
                  '../node_modules/' + id + '/index.js'];
        
                while (true) {
                  tryPath = this.coreModules.path.basename(tryPath);
                  if (!tryPath || tryPath === '/') return null;
                  for (var i = 0; i < probePatterns.length; i++) {
                    var p = this.coreModules.path.join(tryPath, probePatterns[i]);
                    if (this._drive.read(p)) return p;
                  }
                }
              }
            }
        
            requireModule(moduleName: string, parentModulePath: string, parentModule: Module) {
        
              if (this.coreModules.hasOwnProperty(moduleName))
                return this.coreModules[moduleName];
        
              var resolvedPath = this.resolve(moduleName, parentModulePath);
              if (resolvedPath) {
                var content = this._drive.read(resolvedPath);
                if (content) {
                  var loadedModule = createModule(moduleName, resolvedPath, parentModule, moduleName => this.requireModule(moduleName, resolvedPath, loadedModule));
                  var moduleScope = (() => {
        
                    var ModuleContext = () => { };
                    ModuleContext.prototype = this.global;
        
                    var moduleScope = new ModuleContext();
        
                    moduleScope.global = moduleScope;
                    moduleScope.require = function(moduleName) { return loadedModule.require(moduleName); };
                    moduleScope.exports = loadedModule.exports;
        
                    moduleScope.global.__filename = resolvedPath;
                    moduleScope.global.__dirname = dirname(resolvedPath);
                    if (this._console)
                      this.global.console = this._console;
        
        
                    moduleScope.module = loadedModule;
        
                    return moduleScope;
                  })();
        
                  this._context.run(content, resolvedPath, moduleScope);
        
                  return loadedModule.exports;
                }
              }
            }
        
            dispose() {
              this._context.dispose();
            }
        
            keepAlive() {
              this._waitFor++;
              return () => {
                this._waitFor--;
                if (this._waitFor <= 0) {
                  setTimeout(() => {
                    if (this._waitFor <= 0)
                      this.dispose();
                  }, 1000);
                }
              };
            }
          }
        }
      • apply.ts
        module noapi {
        
          export function apply(
            global: any,
            drive: persistence.Drive,
            options?: {
              argv?: string[];
              cwd?: string;
              env?: any;
              onchanges?: (changedFiles: string[]) => void;
            }) {
        
            var apiGlobal = {
              process: <Process>null,
              module: <Module>null
            };
        
            if (!options) options = {};
        
            var cleanOptions = {
              argv: options.argv || ['/node'],
              cwd: options.cwd || '/',
              env: options.env || {}
            };
        
            var coreModules = {
              fs: <FS>null,
              os: <OS>null,
              path: <Path>null
            };
        
            apiGlobal.process = createProcess(coreModules, cleanOptions);
            apiGlobal.module = createModule('repl' /*id*/, null /*filename*/, null /*parent*/, module_require);
        
            coreModules.fs = createFS(drive, coreModules, options);
            coreModules.os = createOS(apiGlobal);
            coreModules.path = createPath(apiGlobal);
        
            global.process = apiGlobal.process;
            global.module = apiGlobal.module;
            global.require = global_require;
        
            function global_require(moduleName: string) {
              return module_require(moduleName);
            }
        
            function module_require(moduleName: string): any {
              if (coreModules.hasOwnProperty(moduleName)) return coreModules[moduleName];
        
              throw new Error('Cannot find module \'' + moduleName + '\'');
            }
          }
        
          export function nextTick(callback: Function): void {
        
            function fire() {
              if (fired) return;
              fired = true;
              callback();
            }
        
            var fired = false;
            setTimeout(fire, 0);
            if (typeof requestAnimationFrame !== 'undefined') {
              requestAnimationFrame(fire);
            }
            else if (typeof msRequestAnimationFrame !== 'undefined') {
              msRequestAnimationFrame(fire);
            }
        
          }
        
          export function wrapAsync(fn: Function): () => void {
            return function() {
              var args = [];
              for (var i = 0; i < arguments.length - 1; i++) {
                args.push(arguments[i]);
              }
              var callback = arguments[arguments.length - 1];
        
              nextTick(function() {
                try {
                  var result = fn.apply(null, args);
                }
                catch (error) {
                  callback(error);
                }
                callback(null, result);
              });
            }
          }
        
          export function wrapAsyncNoError(fn: Function): () => void {
            return function() {
              var args = [];
              for (var i = 0; i < arguments.length - 1; i++) {
                args.push(arguments[i]);
              }
              var callback = arguments[arguments.length - 1];
        
              nextTick(function() {
                try {
                  var result = fn.apply(null, args);
                }
                catch (error) {
                  callback(error);
                }
                callback(result);
              });
            }
          }
        
        }
      • def.d.ts
        declare module noapi {
        
          export interface RequireFunction {
            (id: string): any;
            resolve(id: string): string;
            cache: any;
            extensions: any;
            main: any;
          }
        
          export interface Global {
            module: Module;
            process: Process;
            require: RequireFunction;
            exports?: any;
            __filename?: string;
            __dirname?: string;
            console?: { log: Function; };
          }
        
          export interface ErrnoError extends Error {
          }
        
          export interface Buffer {
            [index: number]: number;
            write(string: string, offset?: number, length?: number, encoding?: string): number;
            toString(encoding?: string, start?: number, end?: number): string;
            toJSON(): any;
            length: number;
            copy(targetBuffer: Buffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number;
            slice(start?: number, end?: number): Buffer;
            readUInt8(offset: number, noAsset?: boolean): number;
            readUInt16LE(offset: number, noAssert?: boolean): number;
            readUInt16BE(offset: number, noAssert?: boolean): number;
            readUInt32LE(offset: number, noAssert?: boolean): number;
            readUInt32BE(offset: number, noAssert?: boolean): number;
            readInt8(offset: number, noAssert?: boolean): number;
            readInt16LE(offset: number, noAssert?: boolean): number;
            readInt16BE(offset: number, noAssert?: boolean): number;
            readInt32LE(offset: number, noAssert?: boolean): number;
            readInt32BE(offset: number, noAssert?: boolean): number;
            readFloatLE(offset: number, noAssert?: boolean): number;
            readFloatBE(offset: number, noAssert?: boolean): number;
            readDoubleLE(offset: number, noAssert?: boolean): number;
            readDoubleBE(offset: number, noAssert?: boolean): number;
            writeUInt8(value: number, offset: number, noAssert?: boolean): void;
            writeUInt16LE(value: number, offset: number, noAssert?: boolean): void;
            writeUInt16BE(value: number, offset: number, noAssert?: boolean): void;
            writeUInt32LE(value: number, offset: number, noAssert?: boolean): void;
            writeUInt32BE(value: number, offset: number, noAssert?: boolean): void;
            writeInt8(value: number, offset: number, noAssert?: boolean): void;
            writeInt16LE(value: number, offset: number, noAssert?: boolean): void;
            writeInt16BE(value: number, offset: number, noAssert?: boolean): void;
            writeInt32LE(value: number, offset: number, noAssert?: boolean): void;
            writeInt32BE(value: number, offset: number, noAssert?: boolean): void;
            writeFloatLE(value: number, offset: number, noAssert?: boolean): void;
            writeFloatBE(value: number, offset: number, noAssert?: boolean): void;
            writeDoubleLE(value: number, offset: number, noAssert?: boolean): void;
            writeDoubleBE(value: number, offset: number, noAssert?: boolean): void;
            fill(value: any, offset?: number, end?: number): void;
          }
        
        }
      • events.d.ts
        declare module noapi {
        
          export interface EventEmitter {
            //static listenerCount(emitter: EventEmitter, event: string): number;
        
            addListener(event: string, listener: Function): EventEmitter;
        
            on(event: string, listener: Function): EventEmitter;
        
            once(event: string, listener: Function): EventEmitter;
        
            removeListener(event: string, listener: Function): EventEmitter;
        
            removeAllListeners(event?: string): EventEmitter;
        
            setMaxListeners(n: number): void;
        
            listeners(event: string): Function[];
        
            emit(event: string, ...args: any[]): boolean;
        
          }
        
        }
      • events.ts
        module noapi {
        
          export function createEventEmitter(): EventEmitter {
        
            var _listeners: { [eventKey: string]: Function[]; } = {};
        
            var result = {
              addListener, removeListener, removeAllListeners,
              on, once,
              setMaxListeners,
              listeners,
              emit
            };
            return result;
        
            function addListener(event: string, listener: Function): EventEmitter {
              var key = '*' + event;
              var list = _listeners[key] || (this._listeners[key] = []);
              list.push(listener);
              return result;
            }
        
            function removeListener(event: string, listener: Function): EventEmitter {
              var key = '*' + event;
              var list = _listeners[key];
              if (list) {
                for (var i = 0; i < list.length; i++) {
                  if (list[i] === listener) {
                    list.splice(i, 1);
                    break;
                  }
                }
              }
              return result;
            }
        
            function removeAllListeners(event?: string): EventEmitter {
              var key = '*' + event;
              delete _listeners[key];
              return result;
            }
        
            function setMaxListeners(n: number): void {
              // too complicated for now, ignore
            }
        
            function listeners(event: string): Function[] {
              var key = '*' + event;
              var list = _listeners[key];
              if (list)
                return list.slice(0);
              else
                return [];
            }
        
            function emit(event: string, ...args: any[]): boolean {
              var key = '*' + event;
              var list = _listeners[key];
              if (!list) return false;
              for (var i = 0; i < list.length; i++) {
                var f = list[i];
                f.apply(null, args);
              }
              return true;
            }
        
            function on(event: string, listener: Function): EventEmitter {
              return addListener(event, listener);
            }
        
            function once(event: string, listener: Function): EventEmitter {
              return on(event, listener);
            }
        
          }
        
        }
      • fs.d.ts
        declare module noapi {
        
          export interface FS {
        
            rename(oldPath: string, newPath: string, callback?: (err?: ErrnoError) => void): void;
            renameSync(oldPath: string, newPath: string): void;
        
        
            truncate(path: string, callback?: (err?: ErrnoError) => void): void;
            truncate(path: string, len: number, callback?: (err?: ErrnoError) => void): void;
            truncateSync(path: string, len?: number): void;
        
            ftruncate(fd: number, callback?: (err?: ErrnoError) => void): void;
            ftruncate(fd: number, len: number, callback?: (err?: ErrnoError) => void): void;
            ftruncateSync(fd: number, len?: number): void;
        
        
            chown(path: string, uid: number, gid: number, callback?: (err?: ErrnoError) => void): void;
            chownSync(path: string, uid: number, gid: number): void;
        
            fchown(fd: number, uid: number, gid: number, callback?: (err?: ErrnoError) => void): void;
            fchownSync(fd: number, uid: number, gid: number): void;
        
            lchown(path: string, uid: number, gid: number, callback?: (err?: ErrnoError) => void): void;
            lchownSync(path: string, uid: number, gid: number): void;
        
        
            chmod(path: string, mode: number, callback?: (err?: ErrnoError) => void): void;
            chmod(path: string, mode: string, callback?: (err?: ErrnoError) => void): void;
            chmodSync(path: string, mode: number): void;
            chmodSync(path: string, mode: string): void;
        
            fchmod(fd: number, mode: number, callback?: (err?: ErrnoError) => void): void;
            fchmod(fd: number, mode: string, callback?: (err?: ErrnoError) => void): void;
            fchmodSync(fd: number, mode: number): void;
            fchmodSync(fd: number, mode: string): void;
        
            lchmod(path: string, mode: number, callback?: (err?: ErrnoError) => void): void;
            lchmod(path: string, mode: string, callback?: (err?: ErrnoError) => void): void;
            lchmodSync(path: string, mode: number): void;
            lchmodSync(path: string, mode: string): void;
        
        
            stat(path: string, callback?: (err: ErrnoError, stats: Stats) => any): void;
            lstat(path: string, callback?: (err: ErrnoError, stats: Stats) => any): void;
            fstat(fd: number, callback?: (err: ErrnoError, stats: Stats) => any): void;
            statSync(path: string): Stats;
            lstatSync(path: string): Stats;
            fstatSync(fd: number): Stats;
        
        
            link(srcpath: string, dstpath: string, callback?: (err?: ErrnoError) => void): void;
            linkSync(srcpath: string, dstpath: string): void;
        
            symlink(srcpath: string, dstpath: string, type?: string, callback?: (err?: ErrnoError) => void): void;
            symlinkSync(srcpath: string, dstpath: string, type?: string): void;
        
        
            readlink(path: string, callback?: (err: ErrnoError, linkString: string) => any): void;
            readlinkSync(path: string): string;
        
        
            realpath(path: string, callback?: (err: ErrnoError, resolvedPath: string) => any): void;
            realpath(path: string, cache: { [path: string]: string }, callback: (err: ErrnoError, resolvedPath: string) => any): void;
            realpathSync(path: string, cache?: { [path: string]: string }): string;
        
        
            unlink(path: string, callback?: (err?: ErrnoError) => void): void;
            unlinkSync(path: string): void;
        
        
            rmdir(path: string, callback?: (err?: ErrnoError) => void): void;
            rmdirSync(path: string): void;
        
        
            mkdir(path: string, callback?: (err?: ErrnoError) => void): void;
            mkdir(path: string, mode: number, callback?: (err?: ErrnoError) => void): void;
            mkdir(path: string, mode: string, callback?: (err?: ErrnoError) => void): void;
            mkdirSync(path: string, mode?: number): void;
            mkdirSync(path: string, mode?: string): void;
        
        
            readdir(path: string, callback?: (err: ErrnoError, files: string[]) => void): void;
            readdirSync(path: string): string[];
        
        
            close(fd: number, callback?: (err?: ErrnoError) => void): void;
            closeSync(fd: number): void;
        
        
            open(path: string, flags: string, callback?: (err: ErrnoError, fd: number) => any): void;
            open(path: string, flags: string, mode: number, callback?: (err: ErrnoError, fd: number) => any): void;
            open(path: string, flags: string, mode: string, callback?: (err: ErrnoError, fd: number) => any): void;
            openSync(path: string, flags: string, mode?: number): number;
            openSync(path: string, flags: string, mode?: string): number;
        
        
            utimes(path: string, atime: number, mtime: number, callback?: (err?: ErrnoError) => void): void;
            utimes(path: string, atime: Date, mtime: Date, callback?: (err?: ErrnoError) => void): void;
            utimesSync(path: string, atime: number, mtime: number): void;
            utimesSync(path: string, atime: Date, mtime: Date): void;
        
            futimes(fd: number, atime: number, mtime: number, callback?: (err?: ErrnoError) => void): void;
            futimes(fd: number, atime: Date, mtime: Date, callback?: (err?: ErrnoError) => void): void;
            futimesSync(fd: number, atime: number, mtime: number): void;
            futimesSync(fd: number, atime: Date, mtime: Date): void;
        
        
            fsync(fd: number, callback?: (err?: ErrnoError) => void): void;
            fsyncSync(fd: number): void;
        
        
            read(fd: number, buffer: Buffer, offset: number, length: number, position: number, callback?: (err: ErrnoError, bytesRead: number, buffer: Buffer) => void): void;
            readSync(fd: number, buffer: Buffer, offset: number, length: number, position: number): number;
        
            readFile(filename: string, encoding: string, callback: (err: ErrnoError, data: string) => void): void;
            readFile(filename: string, options: { encoding: string; flag?: string; }, callback: (err: ErrnoError, data: string) => void): void;
            readFile(filename: string, options: { flag?: string; }, callback: (err: ErrnoError, data: Buffer) => void): void;
            readFile(filename: string, callback: (err: ErrnoError, data: Buffer) => void): void;
            readFileSync(filename: string, encoding: string): string;
            readFileSync(filename: string, options: { encoding: string; flag?: string; }): string;
            readFileSync(filename: string, options?: { flag?: string; }): Buffer;
        
            write(fd: number, buffer: Buffer, offset: number, length: number, position: number, callback?: (err: ErrnoError, written: number, buffer: Buffer) => void): void;
            writeSync(fd: number, buffer: Buffer, offset: number, length: number, position: number): number;
        
            writeFile(filename: string, data: any, callback?: (err: ErrnoError) => void): void;
            writeFile(filename: string, data: any, options: { encoding?: string; mode?: number; flag?: string; }, callback?: (err: ErrnoError) => void): void;
            writeFile(filename: string, data: any, options: { encoding?: string; mode?: string; flag?: string; }, callback?: (err: ErrnoError) => void): void;
            writeFileSync(filename: string, data: any, options?: { encoding?: string; mode?: number; flag?: string; }): void;
            writeFileSync(filename: string, data: any, options?: { encoding?: string; mode?: string; flag?: string; }): void;
        
        
            appendFile(filename: string, data: any, options: { encoding?: string; mode?: number; flag?: string; }, callback?: (err: ErrnoError) => void): void;
            appendFile(filename: string, data: any, options: { encoding?: string; mode?: string; flag?: string; }, callback?: (err: ErrnoError) => void): void;
            appendFile(filename: string, data: any, callback?: (err: ErrnoError) => void): void;
            appendFileSync(filename: string, data: any, options?: { encoding?: string; mode?: number; flag?: string; }): void;
            appendFileSync(filename: string, data: any, options?: { encoding?: string; mode?: string; flag?: string; }): void;
        
        
            watchFile(filename: string, listener: (curr: Stats, prev: Stats) => void): void;
            watchFile(filename: string, options: { persistent?: boolean; interval?: number; }, listener: (curr: Stats, prev: Stats) => void): void;
        
            unwatchFile(filename: string, listener?: (curr: Stats, prev: Stats) => void): void;
        
            watch(filename: string, listener?: (event: string, filename: string) => any): Watcher;
            watch(filename: string, options: { persistent?: boolean; }, listener?: (event: string, filename: string) => any): Watcher;
        
        
            exists(path: string, callback?: (exists: boolean) => void): void;
            existsSync(path: string): boolean;
        
        
            createReadStream(path: string, options?: { flags?: string; encoding?: string; fd?: string; mode?: number; bufferSize?: number; }): ReadStream;
            createReadStream(path: string, options?: { flags?: string; encoding?: string; fd?: string; mode?: string; bufferSize?: number; }): ReadStream;
        
            createWriteStream(path: string, options?: { flags?: string; encoding?: string; string?: string; }): WriteStream;
        
          }
        
          export interface Stats {
            isFile(): boolean;
            isDirectory(): boolean;
            isBlockDevice(): boolean;
            isCharacterDevice(): boolean;
            isSymbolicLink(): boolean;
            isFIFO(): boolean;
            isSocket(): boolean;
            dev: number;
            ino: number;
            mode: number;
            nlink: number;
            uid: number;
            gid: number;
            rdev: number;
            size: number;
            blksize: number;
            blocks: number;
            atime: Date;
            mtime: Date;
            ctime: Date;
          }
        
          export interface Watcher extends EventEmitter {
            close(): void;
          }
        
          export interface ReadStream extends Readable {
            close(): void;
          }
        
          export interface WriteStream extends Writable {
            close(): void;
          }
        
        }
      • fs.ts
        module noapi {
        
          export function createFS(drive: persistence.Drive, modules: { path: Path; }, onchangesOpts: { onchanges?: (changedFiles: string[]) => void; }): FS {
        
            var fs: FS = {
        
              renameSync: renameSync,
              rename: wrapAsync(renameSync),
        
              statSync: statSync,
              lstatSync: statSync,
              stat: wrapAsync(statSync),
              lstat: wrapAsync(statSync),
              fstat: null, fstatSync: null, // TODO: implement fstat using fstab
        
        
              existsSync: existsSync,
              exists: wrapAsyncNoError(existsSync),
        
              openSync: openSync,
              open: wrapAsync(openSync),
              close: null, closeSync: null,
              fsync: null, fsyncSync: null,
        
        
        
              readFileSync: readFileSync,
              readFile: wrapAsync(readFileSync),
              createReadStream: null,
        
              writeFileSync: writeFileSync,
              writeFile: wrapAsync(writeFileSync),
              appendFile: null, appendFileSync: null,
              createWriteStream: null,
        
        
              readSync: readSync,
              read: wrapAsync(readSync),
        
              writeSync: writeSync,
              write: wrapAsync(writeSync),
        
        
        
              truncate: null, truncateSync: null,
              ftruncate: null, ftruncateSync: null,
        
              chown: null, chownSync: null,
              fchown: null, fchownSync: null,
              lchown: null, lchownSync: null,
        
              chmod: null, chmodSync: null,
              fchmod: null, fchmodSync: null,
              lchmod: null, lchmodSync: null,
        
              link: null, linkSync: null,
              readlink: null, readlinkSync: null,
        
              symlink: null, symlinkSync: null,
              unlink: null, unlinkSync: null,
        
              realpath: null, realpathSync: null,
        
              mkdir: wrapAsync(mkdirSync), mkdirSync: mkdirSync,
              rmdir: null, rmdirSync: null,
        
              readdir: null, readdirSync: null,
        
              utimes: null, utimesSync: null,
              futimes: null, futimesSync: null,
        
        
              watch: watch, watchFile: watchFile, unwatchFile: unwatchFile
            };
        
            return fs;
        
            function existsSync(file: string): boolean {
              var content = drive.read(file);
              if (content || (content !== null && typeof content === 'undefined'))
                return true;
        
              var files = drive.files();
              var normPath = modules.path.normalize(file);
              if (normPath.slice(-1) !== '/') normPath += '/';
              var leadMatch = getStartMatcher(file);
              for (var i = 0; i < files.length; i++) {
                if (leadMatch(files[i])) return;
              }
        
              return false;
            }
        
            function mkdirSync(path: string, mode?: any): void {
              var normPath = modules.path.normalize(path);
              if (normPath.slice(-1) !== '/') normPath += '/';
        
              if (existsSync(path)) throw new Error('Directory \'' + path + '\'');
        
              drive.write(normPath, '');
            }
        
            function renameSync(oldPath: string, newPath: string): void {
        
              var oldContent = drive.read(oldPath);
              if (oldContent !== null) {
                // TODO: check if directory is in the way
                // if (nofs
                drive.write(newPath, oldContent);
                drive.write(oldPath, null);
                return;
              }
        
              if (drive.read(newPath) !== null) {
                // node actually reports oldPath here, but let's be reasonable
                throw new Error('ENOTDIR, not a directory \'' + newPath + '\'');
              }
        
              var norm_oldPath = modules.path.resolve(oldPath);
              if (norm_oldPath === '/')
                throw new Error('EBUSY, resource busy or locked \'/\'');
              else
                norm_oldPath += '/';
        
              var norm_newPath = modules.path.resolve(newPath);
              if (norm_newPath === '/')
                throw new Error('EBUSY, resource busy or locked \'/\'');
              else
                norm_newPath += '/';
        
        
              var files = drive.files();
        
        
              var startAsOld = getStartMatcher(norm_oldPath);
        
              for (var i = 0; i < files.length; i++) {
                var fi = files[i];
                if (startAsOld(fi)) {
                  var oldContent = drive.read(fi);
                  var restPath = fi.slice(norm_newPath.length);
                  var newFiPath = norm_newPath + restPath;
                  drive.write(newFiPath, oldContent);
                  drive.write(newFiPath, null);
                }
              }
        
            }
        
        
        
            function statSync(path: string): Stats {
              // TODO: implement
              throw new Error('Not implemented');
            }
            /*
              stat(path: string, callback?: (err: no_ErrnoError, stats: nofs_Stats) => any): void;
              lstat(path: string, callback?: (err: no_ErrnoError, stats: nofs_Stats) => any): void;
              fstat(fd: number, callback?: (err: no_ErrnoError, stats: nofs_Stats) => any): void;
              statSync(path: string): nofs_Stats;
              lstatSync(path: string): nofs_Stats;
              fstatSync(fd: number): nofs_Stats;
            */
        
        
        
            function readFileSync(filename: string, options?: { encoding?: string; flag?: string; }): any {
        
              // TODO: handle encoding and other
              return drive.read(filename);
        
            }
        
            function readSync(fd: number, buffer: Buffer, offset: number, length: number, position: number): number {
        
              // TODO: consider also std handles
              //var path = nofs_fdtable()[fd];
        
              throw new Error('Buffer-aware API fs.readSync is not implemented.');
            }
        
        
        
            function writeFileSync(filename: string, content: string) {
        
              drive.write(filename, content);
        
            }
        
        
            function writeSync(fd: number, buffer: Buffer, offset: number, length: number, position: number): number {
        
              if (fd === 1) {
                if (typeof console !== 'undefined')
                  console.log(buffer);
        
                return length;
              }
        
              var path = get_fdtable()[fd];
        
              throw new Error('Buffer-aware API fs.writeSync is not implemented.');
            }
        
        
        
        
            function openSync(path: string, flags: string, mode?: number): number;
            function openSync(path: string, flags: string, mode?: string): number;
            function openSync(path: string, flags?: string, mode?: any): number {
        
              var fdtable = get_fdtable();
        
              for (var fd in fdtable) {
                var fpath = fdtable[fd];
                if (fpath === path) {
                  return Number(fd);
                }
              }
        
              var newFD = _fdbase_++;
              fdtable[newFD] = path;
              return newFD;
            }
        
            var _fdbase_;
            var _fdtable_: string[];
        
            function get_fdtable() {
              if (!_fdtable_) {
                _fdtable_ = [];
                _fdbase_ = 34957346;
              }
              return _fdtable_;
            }
          }
        
        
        
        
        
          function getStartMatcher(oldPath: string) {
        
            if (!oldPath) return (txt: string) => !txt;
        
            return (txt: string) => {
              if (!txt) return false;
              if (txt.length < oldPath.length) return false;
              return txt.slice(0, oldPath.length) === oldPath;
            };
          }
        
          var _watchFileListener: any;
        
          function watchFile(filename: string, listener: (curr: Stats, prev: Stats) => void): void;
          function watchFile(filename: string, options: { persistent?: boolean; interval?: number; }, listener: (curr: Stats, prev: Stats) => void): void;
          function watchFile(filename: string, arg1: any, arg2?: any) {
            throw new Error('not implemented');
          }
        
          function unwatchFile(filename: string, listener ?: (curr: Stats, prev: Stats) => void): void {
            throw new Error('not implemented');
          }
        
          function watch(filename: string, listener?: (event: string, filename: string) => any): Watcher;
          function watch(filename: string, options: { persistent?: boolean; }, listener?: (event: string, filename: string) => any): Watcher;
          function watch(filename: string, arg1?: any, arg2?: any): Watcher {
            throw new Error('not implemented');
          }
        
        
        }
      • module.d.ts
        declare module noapi {
        
          export interface Module {
            exports: any;
            require(id: string): any;
            id: string;
            filename: string;
            loaded: boolean;
            parent: any;
            children: any[];
          }
        
        }
      • module.ts
        module noapi {
        
          export function createModule(
            id: string,
            filename: string,
            parent: any,
            requireForModule: (moduleName: string) => any): Module {
        
            var module: Module = {
              exports: {},
              id,
              filename,
              loaded: false,
              parent,
              children: [],
              require
            };
        
            return module;
        
            var _moduleCache: any;
            var _resolveCache: any;
        
            function require(moduleName: string): any {
              var key = '*' + moduleName;
              if (_moduleCache && key in _moduleCache)
                return _moduleCache[key];
        
              var mod = requireForModule(moduleName);
              (_moduleCache || (_moduleCache = {}))[key] = mod;
              return mod;
            }
        
          }
        
        }
      • os.d.ts
        declare module noapi {
        
          export interface OS {
            tmpdir(): string;
            hostname(): string;
            type(): string;
            platform(): string;
            arch(): string;
            release(): string;
            uptime(): number;
            loadavg(): number[];
            totalmem(): number;
            freemem(): number;
            cpus(): { model: string; speed: number; times: { user: number; nice: number; sys: number; idle: number; irq?: number; }; }[];
            networkInterfaces(): any;
            EOL: string;
          }
        
        }
      • os.ts
        module noapi {
        
          export function createOS(global: { process: Process; }) {
        
            return {
              EOL: '\n',
              tmpdir: () => '/.tmp',
              hostname: () => 'localhost',
              type: () => 'Linux',
              arch: () => global.process.arch,
              platform: () => global.process.platform,
              release: () => '3.16.0-38-generic',
              uptime: () => global.process.uptime(),
              loadavg: () => [0.7275390625, 0.65576171875, 0.4658203125],
              totalmem: () => 3680739328 + ((Math.random() * 1000) | 0),
              freemem: () => 2344873984 - ((Math.random() * 1000) | 0),
              cpus: () => [
                { model: 'AMD A4-1250 APU with Radeon(TM) HD Graphics', speed: 800, times: { user: 8058000, nice: 29600, sys: 1079400, idle: 128185400, irq: 0 } },
                { model: 'AMD A4-1250 APU with Radeon(TM) HD Graphics', speed: 800, times: { user: 7779400, nice: 33000, sys: 1069200, idle: 127970900, irq: 0 } }
              ],
              networkInterfaces: () => {
                return {
                  lo: [
                    { address: '127.0.0.1', family: 'IPv4', internal: true },
                    { address: '::1', family: 'IPv6', internal: true }
                  ],
                  wlan0: [
                    { address: '192.168.1.3', family: 'IPv4', internal: false },
                    { address: 'fe80::8256:f2ff:fe04:3d29', family: 'IPv6', internal: false }
                  ]
                }
              }
            };
          }
        
        }
      • path.d.ts
        declare module noapi {
        
          export interface Path {
        
            normalize(p: string): string;
            join(...paths: any[]): string;
            resolve(...pathSegments: any[]): string;
            isAbsolute(p: string): boolean;
            relative(from: string, to: string): string;
            dirname(p: string): string;
            basename(p: string, ext?: string): string;
            extname(p: string): string;
            sep: string;
            delimiter: string;
        
            // new apis? definitely not in v0.10.38
            parse?(p: string): { root: string; dir: string; base: string; ext: string; name: string; };
            format?(pP: { root: string; dir: string; base: string; ext: string; name: string; }): string;
        
          }
        
        }
      • path.ts
        module noapi {
        
          export function createPath(global: { process: Process; }): Path {
        
            var result: Path = {
              basename, extname,
              dirname,
              isAbsolute,
              normalize,
              join,
              relative, resolve,
              sep: '/',
              delimiter: ':'
            };
            return result;
        
            function isAbsolute(p: string): boolean {
              return /^\//.test(p);
            }
        
            function extname(p: string): string {
        
              var base = basename(p);
              var lastDot = base.lastIndexOf('.');
              if (lastDot >= 0)
                return base.slice(lastDot);
              else
                return '';
        
            }
        
            function join(...paths: any[]): string {
              return join_core(paths);
            }
        
            function join_core(paths: any[]): string {
              var parts: string[] = [];
              var trailSlash = false;
              for (var i = 0; i < paths.length; i++) {
                var part = paths[i];
                if (!part) continue;
        
                if (parts.length) {
                  var wlead = part;
                  part = part.replace(/^\/*/, '');
                  if (!part) continue;
                  if (wlead.length > part.length)
                    parts.push('');
                }
                var wtrail = part;
                part = part.replace(/\/*$/, '');
                if (!part) continue;
                parts.push(part);
        
                trailSlash = wtrail.length > part.length;
              }
        
              if (trailSlash)
                parts.push('/');
        
              return parts.join('/');
            }
        
            function relative(from: string, to: string): string {
              throw new Error('path/relative is not implemented');
            }
        
            function resolve(...pathSegments: any[]): string {
        
              var res = join_core(pathSegments);
        
              if (!/^\//.test(res))
                res = global.process.cwd() + res;
        
              return res;
            }
          }
        
          export function basename(p: string, ext?: string): string {
        
            p = normalize(p);
            if (p === '/')
              return '';
        
            var result: string;
        
            var lastSlash = p.lastIndexOf('/');
            if (lastSlash === p.length - 1) {
              var prevSlash = p.lastIndexOf('/', lastSlash - 1);
              if (prevSlash < 0)
                prevSlash = 0;
              result = p.slice(prevSlash + 1, lastSlash);
            }
            else {
              result = p.slice(lastSlash + 1);
            }
        
            if (ext && result.length >= ext.length && result.slice(-ext.length) === ext)
              result = result.slice(0, result.length - ext.length);
          }
        
          export function dirname(p: string): string {
            var p = normalize(p);
            if (p === '/') return '/';
            var lastSlash = p.lastIndexOf('/');
            if (lastSlash === p.length - 1)
              lastSlash = p.lastIndexOf('/', lastSlash - 1);
            return p.slice(0, lastSlash + 1);
          }
        
          export function normalize(p: string): string {
            return p;
          }
        
        }
      • process.d.ts
        declare module noapi {
        
          export interface Process extends EventEmitter {
        
            stdout: WritableStream;
            stderr: WritableStream;
            stdin: ReadableStream;
        
            argv: string[];
        
            execPath: string;
        
            abort(): void;
        
            chdir(directory: string): void;
            cwd(): string;
        
            env: any;
        
            exit(code?: number): void;
        
            getgid(): number;
            setgid(id: number): void;
            setgid(id: string): void;
        
            getuid(): number;
            setuid(id: number): void;
            setuid(id: string): void;
        
            version: string;
            versions: {
              http_parser: string;
              node: string;
              v8: string;
              ares: string;
              uv: string;
              zlib: string;
              openssl: string;
            };
        
            config: {
              target_defaults: {
                cflags: any[];
                default_configuration: string;
                defines: string[];
                include_dirs: string[];
                libraries: string[];
              };
              variables: {
                clang?: number;
                host_arch?: string;
                target_arch?: string;
                visibility?: string;
              };
            };
        
            kill(pid: number, signal?: string): void;
        
            pid: number;
        
            title: string;
        
            arch: string;
            platform: string;
        
            memoryUsage(): { rss: number; heapTotal: number; heapUsed: number; };
        
            nextTick(callback: Function): void;
        
            umask(mask?: number): number;
        
            uptime(): number;
            hrtime(time?: number[]): number[];
        
            // Worker
            send?(message: any, sendHandle?: any): void;
          }
        }
      • process.ts
        module noapi {
        
          export function createProcess(
            modules: { fs: FS; path: Path; },
            options: {
              argv: string[];
              cwd: string;
              env: any;
            }): Process {
        
            var evt = createEventEmitter();
        
            return {
              abort, exit, kill,
              nextTick,
              chdir, cwd,
        
              title: 'node',
              arch: 'ia32',
              platform: 'linux',
              execPath: '/usr/bin/nodejs',
        
              getgid, setgid, getuid, setuid,
        
              stdout: load_stdout(), stderr: load_stderr(), stdin: load_stdin(),
        
              memoryUsage,
        
              uptime: load_uptime(),
              hrtime: <any>function() { throw new Error('High resultion time is not implemenetd yet.'); },
        
              pid: load_pid(),
              umask: load_umask(),
              config: load_config(),
              versions: load_versions(),
              version: load_versions().node,
        
              argv: options.argv,
              env: options.env,
        
              addListener: evt.addListener,
              on: evt.on,
              once: evt.once,
              removeListener: evt.removeListener,
              removeAllListeners: evt.removeAllListeners,
              setMaxListeners: evt.setMaxListeners,
              listeners: evt.listeners,
              emit: evt.emit
        
            };
        
            function abort() {
            }
        
            function exit(code?: number) {
            }
        
            function kill(pid: number, signal?: string) {
              // when we emulate processes, implement process termination
            }
        
        
        
        
            function chdir(directory: string) {
              var dirStat = modules.fs.statSync(directory);
        
              if (dirStat && dirStat.isDirectory()) {
                if (directory !== cwd()) {
                  var normDirectory = modules.path.normalize(directory);
                  if (cwd() !== normDirectory) {
                    options.cwd = normDirectory;
                  }
                }
              }
              else {
                // TODO: throw a node-shaped error instead
                throw new Error('ENOENT, no such file or directory');
              }
            }
        
            function cwd(): string {
              return options.cwd;
            }
        
        
        
            function getgid() {
              // taken from node running on ubuntu
              return 1000;
            }
        
            function setgid(id: any) {
              // TODO: use node-shaped error
              throw new Error('EPERM, Operation not permitted');
            }
        
            function getuid(): number {
              // taken from node running on ubuntu
              return 1000;
            }
        
            function setuid(id: any) {
              // TODO: use node-shaped error
              throw new Error('EPERM, Operation not permitted');
            }
        
        
        
            function load_uptime() {
              var _uptime_start_ = typeof Date.now === 'function' ? Date.now() : +(new Date());
              return uptime;
        
              function uptime() {
                var now = typeof Date.now === 'function' ? Date.now() : +(new Date());
                return now - _uptime_start_;
              }
            }
        
        
        
            function load_stdout() {
              return <WritableStream>{
              };
            }
        
            function load_stderr() {
              return <WritableStream>{
              };
            }
        
            function load_stdin() {
              return <ReadableStream>{
              };
            }
        
        
        
            function memoryUsage(): { rss: number; heapTotal: number; heapUsed: number; } {
              return {
                rss: 13225984 + ((Math.random() * 3000) | 0),
                heapTotal: 7130752 + ((Math.random() * 3000) | 0),
                heapUsed: 2449612 + ((Math.random() * 3000) | 0)
              };
            }
        
        
        
            function load_pid() {
              return 32754 + ((Math.random() * 500) | 0);
            }
        
            function load_umask() {
              var _umask_;
              return umask;
        
              function umask(mask?: number): number {
                if (typeof _umask_ !== 'number') {
                  _umask_ = 2;
                }
        
                if (typeof mask === 'number') {
                  var res = _umask_;
                  _umask_ = mask;
                  return res;
                }
        
                return _umask_;
              }
            }
        
            function load_versions() {
              // real node running on ubuntu as of Friday 22 of May 2015
              // (these might not be properly implemented when hosted in browser)
              return {
                http_parser: '1.0',
                node: '0.10.38',
                v8: '3.14.5.9',
                ares: '1.9.0-DEV',
                uv: '0.10.36',
                zlib: '1.2.8',
                modules: '11',
                openssl: '1.0.1m'
              };
            }
        
        
            function load_config() {
              return {
                target_defaults:
                {
                  cflags: [],
                  default_configuration: 'Release',
                  defines: [],
                  include_dirs: [],
                  libraries: []
                },
                variables:
                {
                  clang: 0,
                  gcc_version: 48,
                  host_arch: 'ia32',
                  node_install_npm: true,
                  node_prefix: '/usr',
                  node_shared_cares: false,
                  node_shared_http_parser: false,
                  node_shared_libuv: false,
                  node_shared_openssl: false,
                  node_shared_v8: false,
                  node_shared_zlib: false,
                  node_tag: '',
                  node_unsafe_optimizations: 0,
                  node_use_dtrace: false,
                  node_use_etw: false,
                  node_use_openssl: true,
                  node_use_perfctr: false,
                  node_use_systemtap: false,
                  openssl_no_asm: 0,
                  python: '/usr/bin/python',
                  target_arch: 'ia32',
                  v8_enable_gdbjit: 0,
                  v8_no_strict_aliasing: 1,
                  v8_use_snapshot: false,
                  want_separate_host_toolset: 0
                }
              };
            }
          }
        }
      • stream.d.ts
        declare module noapi {
        
          export interface ReadableStream extends EventEmitter {
            readable: boolean;
            read(size?: number): string|Buffer;
            setEncoding(encoding: string): void;
            pause(): void;
            resume(): void;
            pipe<T extends WritableStream>(destination: T, options?: { end?: boolean; }): T;
            unpipe<T extends WritableStream>(destination?: T): void;
            unshift(chunk: string): void;
            unshift(chunk: Buffer): void;
            wrap(oldStream: ReadableStream): ReadableStream;
          }
        
          export interface WritableStream extends EventEmitter {
            writable: boolean;
            write(buffer: Buffer, cb?: Function): boolean;
            write(str: string, cb?: Function): boolean;
            write(str: string, encoding?: string, cb?: Function): boolean;
            end(): void;
            end(buffer: Buffer, cb?: Function): void;
            end(str: string, cb?: Function): void;
            end(str: string, encoding?: string, cb?: Function): void
          }
        
          export interface Stream extends EventEmitter {
            pipe<T extends WritableStream>(destination: T, options?: { end?: boolean; }): T;
          }
        
          export interface ReadableOptions {
            highWaterMark?: number;
            encoding?: string;
            objectMode?: boolean;
          }
        
          export interface Readable extends EventEmitter, ReadableStream {
            readable: boolean;
            //constructor(opts?: ReadableOptions)
            _read(size: number): void;
        
            read(size?: number): string|Buffer;
        
            setEncoding(encoding: string): void;
        
            pause(): void;
        
            resume(): void;
        
            pipe<T extends WritableStream>(destination: T, options?: { end?: boolean; }): T;
        
            unpipe(destination?: WritableStream): void;
        
            unshift(chunk: string): void;
        
            unshift(chunk: Buffer): void;
        
            wrap(oldStream: ReadableStream): ReadableStream;
        
            push(chunk: any, encoding?: string): boolean;
        
          }
        
          export interface WritableOptions {
            highWaterMark?: number;
            decodeStrings?: boolean;
          }
        
          export interface Writable extends EventEmitter, WritableStream {
            writable: boolean;
            // constructor(opts?: WritableOptions)
        
            _write(data: Buffer, encoding: string, callback: Function): void;
        
            _write(data: string, encoding: string, callback: Function): void;
        
            write(buffer: Buffer, cb?: Function): boolean;
        
            write(str: string, cb?: Function): boolean;
        
            write(str: string, encoding?: string, cb?: Function): boolean;
        
            end(): void;
        
            end(buffer: Buffer, cb?: Function): void;
        
            end(str: string, cb?: Function): void;
        
            end(str: string, encoding?: string, cb?: Function): void;
        
          }
        
          export interface DuplexOptions extends ReadableOptions, WritableOptions {
            allowHalfOpen?: boolean;
          }
        
          /**
           * Note: Duplex extends both Readable and Writable.
           */
          export interface Duplex extends Readable {
            writable: boolean;
            // constructor(opts?: DuplexOptions);
        
            _write(data: Buffer, encoding: string, callback: Function);
            _write(data: string, encoding: string, callback: Function): void;
        
            write(buffer: Buffer, cb?: Function);
            write(str: string, cb?: Function);
            write(str: string, encoding?: string, cb?: Function): boolean;
        
            end(): void;
            end(buffer: Buffer, cb?: Function): void;
            end(str: string, cb?: Function): void;
            end(str: string, encoding?: string, cb?: Function): void;
        
          }
        
          export interface TransformOptions extends ReadableOptions, WritableOptions { }
        
          /**
             * Note: Transform lacks the _read and _write methods of Readable/Writable.
             */
          interface Transform extends EventEmitter {
            readable: boolean;
            writable: boolean;
            // constructor(opts?: TransformOptions)
        
            _transform(chunk: Buffer, encoding: string, callback: Function): void;
            _transform(chunk: string, encoding: string, callback: Function): void;
        
            _flush(callback: Function): void;
        
            read(size?: number): any;
        
            setEncoding(encoding: string): void;
        
            pause(): void;
        
            resume(): void;
        
            pipe<T extends WritableStream>(destination: T, options?: { end?: boolean; }): T;
        
            unpipe(destination?: WritableStream): void;
        
            unshift(chunk: string): void;
        
            unshift(chunk: Buffer): void;
        
            wrap(oldStream: ReadableStream): ReadableStream;
        
            push(chunk: any, encoding?: string): boolean;
        
            write(buffer: Buffer, cb?: Function): boolean;
            write(str: string, cb?: Function): boolean;
            write(str: string, encoding?: string, cb?: Function): boolean;
        
            end(): void;
            end(buffer: Buffer, cb?: Function): void;
            end(str: string, cb?: Function): void;
            end(str: string, encoding?: string, cb?: Function): void;
        
          }
        }
    • nobrowser
      • HostedWindow.ts
        module nobrowser {
        
          export class HostedWindow {
        
            constructor(private _window: Window, private _drive: persistence.Drive) {
              
        
            }
        
          }
        
        }
      • overrideLocalStorage.ts
        module nobrowser {
        
          export function overrideLocalStorage(drive: persistence.Drive, cachePath: string) {
        
            var cachePathDir = cachePath + (cachePath.slice(-1) === '/' ? '' : '/');
        
            return LocalStorageOverride;
        
            class LocalStorageOverride {
        
              private _keys: string[] = null;
              length = 0;
        
              constructor() {
                var files = drive.files();
                for (var i = 0; i < files.length; i++) {
                  var f = files[i];
                  if (f.length > cachePathDir.length && f.slice(0, cachePathDir.length) === cachePathDir)
                    this._keys.push(f.slice(cachePathDir.length));
                }
                this.length = this._keys.length;
              }
        
              clear() {
                for (var i = 0; i < this._keys.length; i++) {
                  var f = cachePathDir + this._keys[i];
                  drive.write(f, null);
                }
                this._keys = [];
              }
        
            	key(index: number) {
                return this._keys[index];
              }
        
            	getItem(key: string): string {
                var keypath = cachePathDir + key;
                return drive.read(keypath);
              }
        
            	setItem(key: string, value: string): void {
                var keypath = cachePathDir + key;
                drive.write(keypath, value);
                for (var i = 0; i < this._keys.length; i++) {
                  if (key === this._keys[i]) return;
                }
                this._keys.push(key);
                this.length++;
              }
        
            	removeItem(key: string): void {
                var keypath = cachePathDir + key;
                for (var i = 0; i < this._keys.length; i++) {
                  if (key === this._keys[i]) {
                    this._keys.splice(i, 1);
                    this.length++;
                    drive.write(keypath, null);
                    return;
                  }
                }
              }
            }
        
          }
        }
      • overrideXMLHttpRequest.ts
        module nobrowser {
        
          export function overrideXMLHttpRequest(readCache: (url: string, callback: (content: string) => void) => void) {
        
            return XMLHttpRequestOverride;
        
            // urlBase - 'https://rawgit.com/jeffpar/pcjs/master'
        
        
            class XMLHttpRequestOverride {
        
              private _url: string = null;
        
              status = 0;
              readyState = 0;
              responseText = null;
              onreadystatechange: () => void = null;
        
              open(method: string, url: string) {
                this._url = url;
              }
        
              send() {
                var completed = false;
                this.readyState = 0;
                readCache(this._url, content => {
                  this.status = 200;
                  this.readyState = 4;
                  this.responseText = content;
                  if (completed)
                    this.onreadystatechange();
                  return;
                });
        
                if (this.readyState === 4) {
                  setTimeout(() => this.onreadystatechange(), 1);
                }
        
        
              }
        
              setRequestHeader() {
              }
        
            }
          }
        
        	export module overrideXMLHttpRequest {
        
            export function withDrive(drive: persistence.Drive, cachePath: string, realXMLHttpRequest: typeof XMLHttpRequest) {
              return overrideXMLHttpRequest(
                (url, callback) => {
                  var existing = cachePath + (cachePath.slice(-1) === '/' ? '' : '/') + (url.charAt(0) === '/' ? url.slice(1) : url);
        
                  var existingContent = drive.read(existing);
                  if (existingContent) {
                    callback(existingContent);
                    return;
                  }
        
                  var xhr = new realXMLHttpRequest();
                  xhr.open('GET', url);
                  xhr.onreadystatechange = () => {
                    if (xhr.readyState === 4 && xhr.status === 200) {
                      var response = xhr.responseText || xhr.response;
                      drive.write(existing, response);
                      callback(response);
                    }
                  };
                  xhr.send();
                });
            }
        
          }
        
        }
    • nojq
      • noajax.ts
        module nojq {
        
          export function noajax(drive: persistence.Drive, basePath: string, window: Window) {
            var existingAjax = window['$'] ? window['$']['ajax'] : null;
            return (options: noajax.Options) => {
              var dt = drive.read(basePath + options.url);
              if (dt) {
                options.success(dt);
              }
              else {
                if (typeof console !== 'undefined' && console && console.error)
                  console.error('No data found for ', options);
                options.error(new Error('No data found for '+options.url));
              }
            };
        /*
        $.ajax({
        					url: file,
        					dataType: 'string',
        					success: function(data) {
        						if(!data) {
        							$(useFallback);
        							return;
        						}
        						svgdoc = parser.parseFromString(data, "text/xml");
        						$(function() {
        							getIcons('ajax');
        						});
        					},
                  error: function(err) {
                  })
        */
          }
        
          export module noajax {
            export interface Options {
              url: string;
              dataType: string;
              success: (data: any) => void;
              error: (err: Error) => void;
            }
          }
        }
    • Context.ts
      module isolation {
      
        export class Context {
      
          private _frame;
          private _obscureScope: any = {};
          private _disposed = false;
      
          constructor(private _window: Window) {
            this._frame = createFrame(this._window);
            defineObscureScope(this._obscureScope, this._frame.global);
            defineObscureScope(this._obscureScope, this._frame.window);
            this._obscureScope.global = void 0;
            var setGlobal = this._frame.evalFN('(function() { return function(global) { window.global = global; }; })()');
            setGlobal(this._obscureScope);
          }
      
          run(code: string, path: string, scope: any) {
            path = path || typeof path === 'string' ? path : createTimebasedPath();
            this._obscureScope.global = scope || {};
            var decoratedCode =
              'with(window.global){with(global){   ' + code +
              '\n }}  //# sourceURL=' + path;
            var result = this._frame.evalFN(decoratedCode);
            this._obscureScope.global = null;
            return result;
          }
      
          dispose() {
            if (!this._disposed) {
              document.body.removeChild(this._frame.iframe);
              this._disposed = true;
            }
          }
      
        }
      
        function createTimebasedPath() {
          var now = new Date();
          var path = now.getFullYear() +
            (now.getMonth() + 1 > 9 ? '' : '0') + now.getMonth() +
            (now.getDate() > 9 ? '' : '0') + now.getDate() + '-' +
            (now.getHours() > 9 ? '' : '0') + now.getHours() +
            (now.getMinutes() > 9 ? '' : '0') + now.getMinutes() + '-' +
            (now.getSeconds() > 9 ? '' : '0') + now.getSeconds() +
            '.' + ((now.getMilliseconds() | 0) + 1000).toString().slice(1) +
            '.js';
          return path;
        }
      
        function createFrame(window: Window) {
          var ifr = window.document.createElement('iframe');
          ifr.style.display = 'none';
          window.document.body.appendChild(ifr);
      
          var ifrwin: Window = ifr.contentWindow || (<any>ifr).window;
          var ifrdoc = ifrwin.document;
      
          if (ifrdoc.open) ifrdoc.open();
          ifrdoc.write(
            '<!' + 'doctype html' + '>' +
            '<' + 'html' + '><' + 'body' + '>' +
            '<' + 'script' + '>window.__eval_export_=function(code) { return eval(code); }</' + 'script' + '>' +
            '<' + 'body' + '></' + 'html' + '>');
          if (ifrdoc.close) ifrdoc.close();
      
          var ifrwin_eval: typeof eval = (<any>ifrwin).__eval_export_;
          try {
            delete (<any>ifrwin).__eval_export_;
          }
          catch (weirdIEFailure) {
            // no big deal if it fails
          }
      
          ifrdoc.body.innerHTML = '';
      
          return {
            document: ifrdoc,
            window: ifrwin,
            global: ifrwin_eval('this'),
            iframe: ifr,
            evalFN: ifrwin_eval
          };
        }
      
        function defineObscureScope(scope: any, pollutedGlobal: any) {
      
          var natives = defineAllowedNatives();
      
          var dummy;
      
          // normal properties
          for (var k in pollutedGlobal) {
            if (scope[k] || natives[k]) continue;
            scope[k] = dummy;
          }
      
          // non-enumerable properties directly on global
          if (Object.getOwnPropertyNames) {
            var props = Object.getOwnPropertyNames(pollutedGlobal);
            for (var i = 0; i < props.length; i++) {
              if (scope[props[i]] || natives[props[i]]) continue;
              scope[props[i]] = dummy;
            }
      
            // non-enumerable properties on global's prototype
            if (pollutedGlobal.constructor
              && pollutedGlobal.constructor.prototype
              && pollutedGlobal.constructor.prototype !== Object.prototype) {
              props = Object.getOwnPropertyNames(pollutedGlobal.constructor.prototype);
              for (var i = 0; i < props.length; i++) {
                if (scope[props[i]] || natives[props[i]]) continue;
                scope[props[i]] = dummy;
              }
            }
          }
        }
      
        var allowedNatives = null;
      
        function defineAllowedNatives() {
          return {
            setTimeout: 1, setInterval: 1, clearTimeout: 1, clearInterval: 1,
            eval: 1,
            console: 1,
            undefined: 1,
            Object: 1, Array: 1, Date: 1, Function: 1, String: 1, Boolean: 1, Number: 1,
            Infinity: 1, NaN: 1, isNaN: 1, isFinite: 1, parseInt: 1, parseFloat: 1,
            escape: 1, unescape: 1,
      
            Int32Array: 1, Int8Array: 1, Int16Array: 1,
            UInt32Array: 1, UInt8Array: 1, UInt8ClampedArray: 1, UInt16Array: 1,
            Float32Array: 1, Float64Array: 1, ArrayBuffer: 1,
      
            Math: 1, JSON: 1, RegExp: 1,
            Error: 1, SyntaxError: 1, EvalError: 1, RangeError: 1, ReferenceError: 1,
      
            toString: 1, toJSON: 1, toValue: 1,
      
            Map: 1, Promise: 1
          };
        }
      }
  • load
    • shellLoader.ts
      //declare var showCommanderInContext;
      
      function shellLoader(uniqueKey: string, document: Document, boot: shellLoader.BootModuleAPI): shellLoader.ContinueLoading {
      
        var driveMount = persistence.bootMount(uniqueKey, document);
      
        return continueLoading();
      
        function continueLoading(): shellLoader.ContinueLoading {
          driveMount = driveMount.continueLoading();
      
          boot.api.title('Loading files: ' + progressText('dom'), 0.05 + 0.8* driveMount.loadedSize/driveMount.totalSize);
          return { continueLoading, finishLoading };
        }
      
        var timings;
        var prevStage;
        var prevStageStart;
        var prevTimeText;
        function progressText(stage) {
      
          var fileText = driveMount.loadedFileCount + ' (' + driveMount.totalSize + ' total)';
      
          var now = +new Date();
      
          if (!prevStage) {
            timings = [
              {stage: 'boot ui', time: boot.bootStartTime - boot.earlyStartTime}
            ];
            prevTimeText = ' boot UI ' + (boot.bootStartTime - boot.earlyStartTime) + 'ms init ' + (now - boot.bootStartTime) + 'ms';
            prevStageStart = boot.bootStartTime;
            prevStage = stage;
            return fileText + prevTimeText;
          }
          else if (prevStage !== stage) {
            timings.push({
              stage: prevStage,
              time: now-prevStageStart
            });
            prevTimeText += ' ' + prevStage + ' ' + (now - prevStageStart) + 'ms';
            prevStageStart = now;
            prevStage = stage;
            return fileText + prevTimeText;
          }
          else {
            return fileText + prevTimeText + ' ' + prevStage + ' ' + (now - prevStageStart) + 'ms';
          }
      
        }
      
        function finishLoading() {
      
          boot.api.title('Loading modifications: ' + progressText('local'), 0.85);
          driveMount.finishLoading(drive => {
      
            if (typeof boot.api.drive === 'function') {
              boot.api.drive(drive);
            }
            boot.api.title('Loading application: ' + progressText('ui-init'), 0.9);
      
            var uiframe = createFrame();
            uiframe.iframe.style.opacity = '0';
            uiframe.iframe.style.filter = 'alpha(opacity=0)';
            var uiframeBase = (<any>window).base(uiframe.global);
            uiframeBase.apply();
      
      
            var wasResized = false;
            var resizeHandlers: any[] = [];
            on(window, 'scroll', global_resize_detect);
            on(window, 'resize', global_resize_detect);
            on(document.body, 'resize', global_resize_detect);
            on(document.body, 'scroll', global_resize_detect);
            if (document.documentElement) on(document.documentElement, 'resize', global_resize_detect);
            if (document.documentElement) on(document.documentElement, 'scroll', global_resize_detect);
            on(uiframe.document.body, 'touchstart', global_resize_detect);
            on(uiframe.document.body, 'touchmove', global_resize_detect);
            on(uiframe.document.body, 'touchend', global_resize_detect);
            on(uiframe.document.body, 'pointerdown', global_resize_detect);
            on(uiframe.document.body, 'pointerup', global_resize_detect);
            on(uiframe.document.body, 'pointerout', global_resize_detect);
            on(uiframe.document.body, 'keydown', global_resize_detect);
            on(uiframe.document.body, 'keyup', global_resize_detect);
      
      
            (<any>uiframe.global).require = shell_require;
            boot.api.title('Loaded: ' + progressText('ui'), 0.95);
      
            global_resize_delayed();
      
            // TODO: do this concurrently with drive loading
            try {
      
              var indexHTML = drive.read('/shell/index.html');
              if (indexHTML) {
                uiframe.document.write(indexHTML);
              }
      
              var files = drive.files();
              var shellScripts: string[] = [];
              for (var i = 0; i < files.length; i++) {
                if (!/^\/shell\//.test(files[i])) continue;
                var content = drive.read(files[i]);
                if (/\.js$/.test(files[i])) {
                  uiframe.document.write('<' + 'script' + '>' + content + ' //# sourceURL=' + files[i] + '</' + 'script' + '>');
                }
                else if (/\.css$/.test(files[i])) {
                  uiframe.document.write('<' + 'style' + ' type="text/css">' + content + ' //# sourceURL=' + files[i] + '</' + 'style' + '>');
                }
              }
            }
            catch (error) {
              alert('Shell initialisation failed ' + error.message+'\n'+error.stack+'\n'+error);
            }
      
            if (uiframe.document.close)
            	uiframe.document.close();
      
            checkShellCompleteOrWait();
      
            function checkShellCompleteOrWait() {
              var glo: any = uiframe.global;
              if (glo.shell && glo.shell.start) {
                glo.shell.start(shellComplete);
              }
              else {
                setTimeout(checkShellCompleteOrWait, 10);
              }
            }
      
            function shellComplete() {
              var msg = 'Completed: ' + progressText('ui');
              boot.api.title(msg, 0.99);
      
              var start = new Date().valueOf();
              var fadeintTime = Math.min(500, ((+new Date()) - boot.bootStartTime) * 0.9);
              var animateFadeIn = setInterval(function() {
                var passed = new Date().valueOf() - start;
                var opacity = Math.min(passed, fadeintTime) / fadeintTime;
                boot.iframe.style.opacity = (1 - opacity).toString();
                if (uiframe.iframe.style.filter)
                  boot.iframe.style.filter = 'alpha(opacity=' + ((opacity * 100) | 0) + ')';
                uiframe.iframe.style.opacity = '1';
      
                uiframe.iframe.style.filter = 'alpha(opacity=100)';
      
                if (passed >= fadeintTime) {
                  clearInterval(animateFadeIn);
                  if (boot.iframe.parentElement) // old Opera may keep firing even after clearInterval
                    boot.iframe.parentElement.removeChild(boot.iframe);
            }
                }, 20);
      
                return msg;
            }
      
            function shell_require(moduleName): any {
              switch (moduleName) {
                case 'nowindow': return window;
                case 'noui': return uiframe;
                case 'nodrive': return drive;
                case 'uniqueKey': return uniqueKey;
                case 'resize': return { on: onresize, off: offresize };
                case 'timings': return timings;
              }
              throw new Error('Module ' + moduleName + ' is not supported.');
            }
      
            function onresize(handler) {
              if (typeof handler !== 'function') return;
              resizeHandlers.push(handler);
            }
      
            function offresize(handler) {
              if (typeof handler !== 'function') return;
              for (var i = 0; i < resizeHandlers.length; i++) {
                if (resizeHandlers[i] === handler) {
                  resizeHandlers.splice(i, 1);
                }
              }
            }
      
            function global_resize_detect() {
              if (wasResized) return;
              wasResized = true;
      
              if (typeof requestAnimationFrame === 'function') {
                requestAnimationFrame(global_resize_delayed);
              }
              else {
                setTimeout(global_resize_delayed, 5);
              }
            }
      
            var lastMetrics: any = null;
            var lastScroll: any = null;
            function global_resize_delayed() {
      
              var scrollPos = getScroll();
              if (!lastScroll || (scrollPos.x !== lastScroll.x || scrollPos.y !== lastScroll.y)) {
                lastScroll = scrollPos;
                uiframe.iframe.style.left = scrollPos.x + 'px';
                uiframe.iframe.style.top = scrollPos.y + 'px';
              }
      
              wasResized = false;
      
              var metrics = getMetrics();
              if (!lastMetrics || (metrics.windowWidth !== lastMetrics.windowWidth
                || metrics.windowHeight !== lastMetrics.windowHeight)) {
                lastMetrics = metrics;
                var w = metrics.windowWidth + 'px';
                var h = metrics.windowHeight + 'px';
                if (boot && boot.iframe) {
                  boot.iframe.style.width = w;
                  boot.iframe.style.height = h;
                }
                if (uiframe) {
                  uiframe.iframe.style.width = w;
                  uiframe.iframe.style.height = h;
                }
                document.body.style.width = w;
                document.body.style.height = h;
                if (document.body.parentElement) {
                  document.body.parentElement.style.width = w;
                  document.body.parentElement.style.height = h;
                }
      
                for (var i = 0; i < resizeHandlers.length; i++) {
                  var f = resizeHandlers[i];
                  if (f)
                    f(metrics);
                }
              }
            }
      
            function getScroll() {
              var x = window.scrollX || window.pageXOffset || document.body.scrollLeft || (document.body.parentElement ? document.body.parentElement.scrollLeft : 0) || 0;
              var y = window.scrollY || window.pageYOffset || document.body.scrollTop || (document.body.parentElement ? document.body.parentElement.scrollTop : 0) || 0;
              return { x, y };
            }
      
            function getMetrics() {
              var metrics = {
                windowWidth: window.innerWidth || (document.body.parentElement ? document.body.parentElement.clientWidth : 0) || document.body.clientWidth,
                windowHeight: window.innerHeight || (document.body.parentElement ? document.body.parentElement.clientHeight : 0) || document.body.clientHeight
              };
              return metrics;
            }
      
      
          });
      
        }
      
        function createFrame() {
      
          var ifr = <HTMLIFrameElement>elem(
            'iframe',
            {
              position: 'absolute',
              left: 0, top: 0,
              width: '100%', height: '100%',
              border: 'none',
              src: 'about:blank'
            });
          ifr.frameBorder = '0';
          window.document.body.appendChild(ifr);
      
          var ifrwin: Window = ifr.contentWindow || (<any>ifr).window;
          var ifrdoc = ifrwin.document;
      
          ifrdoc.write(
            '<!' + 'doctype html' + '>' +
            '<' + 'html' + '>' +
            '<' + 'head' + '><' + 'style' + '>' +
            'html{margin:0;padding:0;border:none;height:100%;border:none;background:black;overflow:hidden;}' +
            'body{margin:0;padding:0;border:none;height:100%;border:none;background:black;overflow:hidden;}' +
            '*,*:before,*:after{box-sizing:inherit;}' +
            'html{box-sizing:border-box;}' +
            '</' + 'style' + '>\n' +
            '</'+'head'+'>'+
            '<' + 'body' + '>');
      
          return {
            document: ifrdoc,
            global: ifrwin,
            iframe: ifr
          };
      
        }
      }
      
      module shellLoader {
      
        export interface BootModuleAPI extends createFrame.LoadedResult {
          api?: any;
          earlyStartTime?: number;
          bootStartTime?: number;
        }
      
        export interface ContinueLoading {
      
          continueLoading(): ContinueLoading;
      
          finishLoading();
      
        }
      
      }
  • pcjs-embed
    • boot
      • bootUI.ts
        function bootUI(document: Document, window: Window, base) {
        
          base.elem(document.body, {
            background: 'black',
            color: 'silver',
            border: 'none',
            overflow: 'hidden',
            fontFamily: 'FixedSys, System, Terminal, Arial, Helvetica, Roboto, Droid Sans, Sans Serif',
            fontWeight: 'bold'
          });
        
          var monitorBack = base.elem('div', {
            position: 'relative',
            width: '100%', height: '100%',
            padding: '3em',
            background: '#101010',
            opacity: 0,
            transition: 'all 0.1s ease-in',
            webkitTransition: 'all 0.1s ease-in',
            mozTransition: 'all 0.1s ease-in',
            oTransition: 'all 0.1s ease-in',
            msTransition: 'all 0.1s ease-in'
          }, document.body);
        
          var hostHeight = Math.max(document.body.offsetHeight, document.body.parentElement.offsetHeight);
          var hostWidth = Math.max(document.body.offsetWidth, document.body.parentElement.offsetWidth);
        
          var totalWidth = Math.min((hostHeight - 40) * 640 / 350, hostWidth - 10);
          var totalHeight = totalWidth * 350 / 640;
        
          shake(lazerAppear);
        
          function shake(callback) {
            var shakeStart = Date.now();
            var shakeTotal = 700;
            var shakeAni = setInterval(function() {
              var passed = Date.now() - shakeStart;
              var phase = passed / shakeTotal;
              if (phase > 1) {
                monitorBack.parentElement.removeChild(monitorBack);
                clearInterval(shakeAni);
                if (callback)
                  callback();
                return;
              }
        
              if (phase < 0.1) {
                monitorBack.style.opacity = phase * 10;
                monitorBack.style.width = (100 - phase) + '%';
                monitorBack.style.height = (100 - phase) + '%';
              }
              else {
                var fadePhase = (Math.sin((phase - 0.1) * 8) + 1) / 2;
                monitorBack.style.opacity = fadePhase * 0.5;
                var shakePhase = Math.sin((phase - 0.1) * 5);
                monitorBack.style.top = shakePhase * 100 + 'px';
              }
            }, 1);
          }
        
          var lazer: HTMLElement;
          var lazerAni;
          var bootBar: HTMLElement;
        
          function lazerAppear() {
            console.log('ani: lazerAppear');
            var lazerStart = Date.now();
            var lazerTotal = 1000;
        
            lazer = elem('div', {
              position: 'absolute',
              background: 'orange',
              top: totalHeight / 2 + 'px',
              left: totalWidth / 2 + 'px',
              width: '1px',
              height: '1px',
              filter: 'blur(10px)',
              webkitFilter: 'blur(10px)',
              mozFilter: 'blur(10px)',
              oFilter: 'blur(10px)',
              msFilter: 'DXImageTransform.Microsoft.Blur(PixelRadius=\'10\')',
              transition: 'all 0.1s ease-in',
              webkitTransition: 'all 0.1s ease-in',
              mozTransition: 'all 0.1s ease-in',
              oTransition: 'all 0.1s ease-in',
              msTransition: 'all 0.1s ease-in'
            }, document.body);
        
            lazerAni = setInterval(function() {
              var lazerPhase = (Date.now() - lazerStart) / lazerTotal;
              console.log('ani: lazerPhase ' + lazerPhase);
              if (lazerPhase > 1) {
                clearInterval(lazerAni);
                if (lazer) {
                  lazer.style.opacity = <any>1;
                }
                console.log('ani: create bootBar');
                bootBar = base.elem('div', {
                  position: 'absolute',
                  top: (totalHeight / 2 - totalHeight / 140) + 'px',
                  background: 'white', color: 'white',
                  height: totalHeight / 70 + 'px',
                  width: totalWidth * 0.3 + 'px',
                  left: totalWidth * 0.48 + 'px',
                  filter: 'blur(10px)',
                  webkitFilter: 'blur(5px)',
                  mozFilter: 'blur(5px)',
                  oFilter: 'blur(5px)',
                  msFilter: 'DXImageTransform.Microsoft.Blur(PixelRadius=\'5\')',
                  fontSize: '10%',
                  innerHTML: '&nbsp;',
                  transition: 'all 0.6s ease-in',
                  webkitTransition: 'all 0.6s ease-in',
                  mozTransition: 'all 0.6s ease-in',
                  oTransition: 'all 0.6s ease-in',
                  msTransition: 'all 0.6s ease-in'
                }, document.body);
        
                return;
              }
        
              if (lazerPhase < 0.5) {
                var appearPhase = lazerPhase * 2;
                console.log('ani: appearPhase ' + appearPhase);
                var bigDiameter = Math.min(totalHeight, totalWidth) / 20;
                var diameter = bigDiameter * appearPhase;
                lazer.style.width = diameter + 'px';
                lazer.style.left = (totalWidth - diameter) / 2 + 'px';
                lazer.style.height = diameter + 'px';
                lazer.style.top = (totalHeight - diameter) / 2 + 'px';
              }
              else {
                var widenPhase = (lazerPhase - 0.5) * 2;
                console.log('ani: widenPhase ' + widenPhase);
                var bigDiameter = Math.min(totalHeight, totalWidth) / 20;
                var height = bigDiameter - (bigDiameter * 0.7) * widenPhase;
                lazer.style.height = height + 'px';
                lazer.style.top = (totalHeight - height) / 2 + 'px';
                var width = bigDiameter + (totalWidth * 0.95 - bigDiameter) * widenPhase;
                lazer.style.width = width + 'px';
                lazer.style.left = (totalWidth - width) / 2 + 'px';
              }
            }, 1);
          }
        
          function lazerStop() {
            if (lazer && lazerAni) {
              clearInterval(lazerAni);
              lazer.parentElement.removeChild(lazer);
              lazer = null;
              lazerAni = 0;
            }
          }
        
          var _ratio;
        
          var _splash: HTMLImageElement;
          var _splashStartRatio;
        
          return {
            drive: function(drive) {
              try {
                var dt = drive.read('/splash.img');
                if (dt) {
                  _splash = document.createElement('img');
                  _splash.width = 640;
                  _splash.height = 350;
                  _splash.src = dt;
                  elem(_splash, {
                    position: 'absolute',
                    top: totalWidth / 2 + 'px',
                    left: totalHeight / 4 + 'px',
                    height: '1px',
                    width: totalWidth / 2 + 'px',
                    opacity: 0.1,
        
                    filter: 'blur(10px)',
                    webkitFilter: 'blur(10px)',
                    mozFilter: 'blur(10px)',
                    oFilter: 'blur(10px)',
                    msFilter: 'DXImageTransform.Microsoft.Blur(PixelRadius=\'10\')',
        
                    transition: 'all 0.6s ease-in',
                    webkitTransition: 'all 0.6s ease-in',
                    mozTransition: 'all 0.6s ease-in',
                    oTransition: 'all 0.6s ease-in',
                    msTransition: 'all 0.6s ease-in'
        
                  }, document.body);
                  _splashStartRatio = _ratio || 0;
                }
              }
              catch (errorLoadImage) {
              }
            },
            title: function(t, ratio) {
              _ratio = ratio;
              // setText(smallTitle,t);
              if (typeof console !== 'undefined' && typeof console.log === 'function')
                console.log(t);
              if (ratio) {
                if (bootBar) {
                  console.log('ani: bootBar there ' + ratio);
                  var width = totalWidth * ratio * 0.8;
                  bootBar.style.left = (((totalWidth - width) / 2)|0) + 'px';
                  bootBar.style.width = width + 'px';
                }
                else {
                  console.log('ani: bootBar not there ' + ratio);
                }
                if (_splash) {
                  var canvPhase = (ratio - (_splashStartRatio || 0)) / (1 - _splashStartRatio || 0);
                  var width = totalWidth * 0.499 + canvPhase * totalWidth / 2;
                  var height = canvPhase * totalHeight * 0.999;
                  _splash.style.top = (totalHeight - height) / 2 + 'px';
                  _splash.style.height = height + 'px';
                  _splash.style.left = (totalWidth - width) / 2 + 'px';
                  _splash.style.width = width + 'px';
                  _splash.style.opacity = <any>canvPhase;
                  var blurRadius = (1 - canvPhase) * 10 + 2;
                  _splash.style.filter = 'blur('+blurRadius+'px)';
                  _splash.style.webkitFilter = 'blur('+blurRadius+'px)';
                  (<any>_splash.style).mozFilter = 'blur('+blurRadius+'px)';
                  (<any>_splash.style).oFilter = 'blur('+blurRadius+'px)';
                  (<any>_splash.style).msFilter = 'DXImageTransform.Microsoft.Blur(PixelRadius=\''+blurRadius+'\')';
        
                }
              }
            },
            loaded: function() {
              //setText(smallTitle, 'Loaded.');
            }
          };
        }
    • demos
      • 10mb-ega.json
        [[[{"sector":1,"data":[-1900006406,2080423120,122745995,-50651312,-1190788929,-1510801152,400874,129940992,1015022771,-2112981888,477429820,-32455037,-839944757,-1961587944,-292879796,-32455037,-2112129845,-193724356,839289790,-930435859,129717932,-854674432,-186491376,96468715,2080422656,1459749304,1935610829,-843042036,-311079149,-351886402,113426130,2113814145,-948589995,15398283,385876092,1635151433,543451500,1953653104,1869182057,1635000430,509963362,1869771333,1869357170,1852400737,1886330983,1952543333,543649385,1953724787,1293446501,1769173865,1864394606,1634887024,1735289204,1937339168,1097688436,1869116533,539828338,1769365828,1766596708,1852798068,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8388608,50397186,77905,1359151104,-1437270016]},{"sector":2,"data":[1234185451,538987842,3157554,67586,50462722,587857,262161,8388609,620945162,-14022398,33617488,872028621,-1127182656,-661750784,-956269917,553678854,332266364,-1779891341,-1608577536,-141001712,58463782,58465286,-1552151034,329481219,2144380,2081498871,-1157497083,-201915904,2081621505,1912635112,2081661363,-1199735133,-1064435600,12310670,329330176,11987068,2081988654,352725550,851508860,45371620,1476444648,674117746,1987846150,100740622,-147948525,58460966,248441816,-804139745,633393344,24444931,-930398144,2082342646,855799168,2115931072,60029,-910294928,190589,-1406206229,1299480356,129699508,-351220480,5290225,521060494,2080612654,-1157610520,28835840,5826562,-13423502,637537209,639634816,538987904,871686727,2111815423,-67105863,242591475,-1107287873,196705771,1973875456,-2134981887,-5838723,382533812,236897273,-137219297,-25421770,353798338,-137219204,-2005132746,-1552146666,-1021346808,135695150,-771313284,906637030,-896828395,-1959859834,-847503850,49939,1867385357,2035494254,1835365491,1936286752,1919885419,1936286752,1919230059,225603442,1885688330,1701011820,1684955424,1920234272,543517545,544829025,544826731,1852139639,1634038304,168655204,1141509376,543912809,1953460034,1767990816,1701999980,1761610253,1768058210,1663049839,1764781423,1868852578,1663049843,3173743,0,-1437270016]},{"sector":3,"data":[-8,1610940495,19924736,184594431,-268500800,16781056,-4079,1611989327,25171713,453091353,-534969920,33562369,587341857,1613038144,41953026,721592361,-533921088,50343682,855842865,1614086976,58734339,990093369,-532872256,67124995,1124343873,1879048176,76545796,1258594377,-531823424,83906308,1392844881,1616184640,92296965,1527095385,-530774592,100687621,1661345889,1617233472,109078278,1795596393,-529725760,117468934,1929846897,1618345968,-1018105,-16277383,-260241457,134250495,-16240641,-259717041,142641151,-1962368887,-268498752,152043272,-3951,1620379983,159422217,-1677725543,-526579264,167812873,-1559617375,1621491696,176203530,-1425366871,-268498240,-1003766,-1275072335,1622477632,192984843,-1156865863,-524481600,-999669,-1022611457,-255521728,209766399,-888364855,-523432768,218156812,-754114351,1624575296,226547469,-619863847,-522321936,-991475,-485613343,1625624128,243328782,-15818519,-268435457,251719438,-217112335,1626672960,260110095,-82861831,-520286272,268500751,51388673,1627721793,276891408,185639177,-519237439,285282064,319889681,1628770625,293672721,454140185,65521,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"sector":4,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"sector":5,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"sector":6,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"sector":7,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"sector":8,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"sector":9,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"sector":10,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-970063872,3069190,1978000104,-1331671016,-398392276,984613079,1476449000,785596041,785712838,1965964288,-704184823,-720976338,1060962094,-813694091,1965702146,47153189,1048577972,1946169046,-1342000126,-718919105,-2041417170,-2046172191,9562337,-136126074,-1998003834,-2145749531,-940178225,-1992526590,-13708482,-970009850,-13708026,785778374,6940672,-316282708,1961472744,1947024424,-1543095772,975074348,1008366787,-964266694,-350159036,694663696,-371004951,-13440971,-107126962,787173059,-2130587776,-394264371,1011280243,-387484659,-521666525,1364657900,884934414,375044]},{"sector":11,"data":[-8,1610940495,19924736,184594431,-268500800,16781056,-4079,1611989327,25171713,453091353,-534969920,33562369,587341857,1613038144,41953026,721592361,-533921088,50343682,855842865,1614086976,58734339,990093369,-532872256,67124995,1124343873,1879048176,76545796,1258594377,-531823424,83906308,1392844881,1616184640,92296965,1527095385,-530774592,100687621,1661345889,1617233472,109078278,1795596393,-529725760,117468934,1929846897,1618345968,-1018105,-16277383,-260241457,134250495,-16240641,-259717041,142641151,-1962368887,-268498752,152043272,-3951,1620379983,159422217,-1677725543,-526579264,167812873,-1559617375,1621491696,176203530,-1425366871,-268498240,-1003766,-1275072335,1622477632,192984843,-1156865863,-524481600,-999669,-1022611457,-255521728,209766399,-888364855,-523432768,218156812,-754114351,1624575296,226547469,-619863847,-522321936,-991475,-485613343,1625624128,243328782,-15818519,-268435457,251719438,-217112335,1626672960,260110095,-82861831,-520286272,268500751,51388673,1627721793,276891408,185639177,-519237439,285282064,319889681,1628770625,293672721,454140185,65521,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"sector":12,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"sector":13,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"sector":14,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"sector":15,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"sector":16,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"sector":17,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}],[{"sector":1,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-970063872,3069190,1978000104,-1331671016,-398392276,984613079,1476449000,785596041,785712838,1965964288,-704184823,-720976338,1060962094,-813694091,1965702146,47153189,1048577972,1946169046,-1342000126,-718919105,-2041417170,-2046172191,9562337,-136126074,-1998003834,-2145749531,-940178225,-1992526590,-13708482,-970009850,-13708026,785778374,6940672,-316282708,1961472744,1947024424,-1543095772,975074348,1008366787,-964266694,-350159036,694663696,-371004951,-13440971,-107126962,787173059,-2130587776,-394264371,1011280243,-387484659,-521666525,1364657900,884934414,375044]},{"sector":2,"data":[1145981271,542332751,270540832,0,0,2424832,131105]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[538976302,538976288,270540832,0,0,2424832,131105,0,538979886,538976288,270540832,0,0,2424832,33,0,827214167,538980400,541873743,0,0,759234560,199535,217712,542001495,538976288,541675081,0,0,3473408,524321,1950,1330597971,542262604,541415493,0,0,760217600,592751,13216,1330530647,1346454604,541347661,0,0,760217600,854895,19392,1330530647,1346454604,541217351,0,0,760152064,1182575,1213,1329877837,538976339,541415493,0,0,3145728,4456481,1,542001495,538976288,541937475,0,0,759234560,4524911,4867,827214167,538980400,542001474,0,0,759234560,4655983,182816,1381322563,538976322,542003014,0,0,760545280,7605103,12304,1447839048,538976322,542003014,0,0,760545280,7867247,10480,1381190996,538976322,542003014,0,0,760676352,8063855,10784,1381322563,538976321,542003014,0,0,760479744,8260463,8720,1447839048,538976321,542003014,0,0,760545280,8457071,8032,1381190996,538976321,542003014,0,0,760676352,8588143,8208]}],[{"sector":1,"data":[1095585618,538976334,542003014,0,0,760610816,8784751,27264,1230127955,538989648,542003014,0,0,760610816,9243503,5744,1162104653,538988114,542003014,0,0,760610816,9374575,9680,541278785,538976288,542398548,0,0,760938496,9571183,42,1129070915,538976288,541415493,0,0,761004032,9636719,24992,1162625347,1380009038,541415493,0,0,761004032,10095471,37360,1146241347,1162627398,541415493,0,0,761004032,10750831,36528,1346980931,541348418,541415493,0,0,761004032,11340655,9696,1129270339,538976331,541415493,0,0,761004032,11537263,7920,1414418243,541871954,541415493,0,0,761004032,11668335,53360,1213484868,538989385,542398548,0,0,761004032,12585839,493,1163153230,541344080,541415493,0,0,761004032,12651375,18544,1313423696,538976340,541415493,0,0,761004032,12979055,89584,1163281746,541676370,541415493,0,0,761004032,14420847,14816,1297237332,1279348297,541415493,0,0,761069568,14682991,43968,1128354384,1162037588,541282116,0,0,763691008,15403887,2944]},{"sector":2,"data":[1145128274,538985805,541282116,0,0,763691008,15469423,2922,1414091351,538976325,541415493,0,0,763691008,15534959,188464]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[1465662019,1329876553,1465668439,808537673,1448029744,76,0,0,1667845426,1869836146,1461744742,1868852841,1260417911,1701737061,1850286188,1718773108,543515489,544370534,544747058,543452769,7876147,1279724544,1279345231,1330400853,1264451,1413826316,1380274252,1146047826,117465925,1381258060,1482248259,1281296128,1397705795,167792965,1112493127,1330400321,1198915,1397637385,1464814665,5263941,1397310474,1162625601,710102852,1281295872,1313165391,1124401237,1212372033,1192034359,1094864716,1163019852,1280065861,1091043354,1313428302,1297373253,1281296128,1095062083,268456788,1280065859,1129271888,1414745673,1162038849,1292894261,1346718529,1229147986,1096045390,860177230,1281296128,1162171212,251679819,1262702412,1381127491,1414811205,558584641,1162284288,1146045268,1312901189,1564822596,1380323328,1380992325,1313424207,1312904275,3425603,1129270281,1380338753,476485,1129270281,1230195777,673114,1330398989,1129070914,1095781711,1659971,1514754830,1380339525,1431262021,1095058258,1330383104,1280065859,139150159,1330383872,1129070915,1095781711,873539,1230521610,1380272980,38552910,1162087936,1163150668,1213481296,1162690894,1275658316,1279345487,1414090313,1460207620,1163151681,1414415702,1444151326,1145654337,1128617025,1397048399,1162692421,1683182670,1162284544,1381319508,1414415698,1263747412,1275789348,1279541583]},{"sector":9,"data":[1095909961,6248786,1330398986,1397506370,340089417,1430390784,1346653257,2900548,1413826321,1414742348,1263749444,1312901187,6440263,1129270283,1314212929,1262702412,1275789321,1397441359,1162692421,1528910,1413826316,1263747412,1430607185,184558405,1112493127,1279675457,374556481,1381437952,1346720841,1229344594,1414743372,1196312914,1192034363,1430475845,1313165906,1111773268,1325924389,1179534672,1246055497,1163070208,1230131284,1414091343,301998169,1414808915,1229673281,1380275278,1312901187,2639175,1380471813,3692367,1163019787,1112099909,1498562898,1225588832,1096042830,1414352724,1162625601,1393295428,1096045637,1431391059,574969157,1162284800,1146047828,1212501077,1279544897,201338693,1414808903,1146113349,1163282770,1191903324,1413567557,1095650639,4736333,1330398994,1296843074,1163154241,1312901202,474303556,1162285056,1330794580,1162627398,1230132307,3819342,1413829393,1263747412,1313294675,1380994113,2507599,1128481038,1381192517,1431262021,1078281042,1162284544,1330794580,1145323843,1397966162,1275527218,1280463955,5918277,1413826319,1347241300,1162627398,1162690894,1275723873,1296318799,1280656463,201338181,1094930252,1095062092,1129270348,1275789318,1279345487,1145979208,738636,1414745095,1413563218,1191968857,1094864716,1312901196,356863044,1281296128,1414091351,167794245,1094930252,1280065868,344911,1413826314,1397900630]},{"sector":10,"data":[55463753,1162284800,1397639508,1129202004,1413563461,201340481,1129534281,1313162578,1111577159,1192034347,1413567557,1095257423,1162626126,1141506121,1413827653,1330921797,117458765,1381258060,1464880451,1163072000,1397051988,1129469263,1312901189,1380273220,1275854915,1380204879,1431262021,1027949394,1313409024,1096045641,5983059,1413826317,1179603536,1229278281,3757134,1163019786,1146047813,776293461,1229326336,1413563470,4541775,1129270283,1330531393,1497778516,1091043342,1346982734,1314276690,1330383872,1163021123,1381322579,4080963,1397706761,1163281748,2053198,1330398989,1380729154,1280065861,1065807,1330398986,1179402562,289752402,1313147136,1162625601,693325636,1095108864,1162625364,22301016,1347357696,1095781957,1095649364,4932941,1413826321,1430540109,1229342028,1095648588,3229005,1163019788,1397051973,1129469263,285228869,1414808915,1397445441,1129597271,1330794568,167782211,1094930252,1095517772,807751,1413829387,1346459475,1263488840,1090977819,1413563460,4607311,1280065805,1163019087,1381322579,4343107,1280201997,1397441359,1162692421,1594446,1330398987,1095516482,1129270348,1091108879,1430868814,1380274256,1493499983,1145849161,1192099869,1330467909,1162630468,1195463509,285225029,1229342020,1095255374,1162626126,1279410516,100687429,1163021407,5391425,1313424908,1397051972,1129469263,15429]},{"sector":11,"data":[1667845438,1869836146,1461744742,1868852841,1394635639,1702130553,1868767341,1734960750,1952543349,544108393,1969516397,1713399148,1226863215,1345277250,1415065411,5521711,1380126976,1163149637,1414748499,1230261573,38946125,1313410816,1380537681,1313819717,1414416711,218107219,1431391817,1397051977,1163154265,251658573,1280067915,1414748499,1230261573,55723341,1313149440,1162625601,1414748499,1230261573,1397900621,1142095876,1111577417,1498629452,1296389203,1162692948,349010,0,0,0,1768838424,543450484,1952543827,673215333,1851880531,1685217636,117440553,1095977284,54873154,1313408768,1380537681,100663621,1111576133,148812,1296387849,1312902996,411987,1095717895,1229538131,1091108868,1414091598,1296387919,5,0,1667845404,1869836146,1293972582,1702065519,1967269920,1699950451,1818323314,117440553,1095977284,54873154,1313408768,1380537681,100663621,1111576133,148812,0,1397310535,1497451600,824195616,539767603,539768377,975188535,1095189792,1869424672,1948280178,544104808,692794422,1953068832,1850024040,1668178280,1126196325,1919904879,1936278560,2036427888,1141309440,1111577417,279884,1447379978,1296384841,222643279,1229063680,1414283860,1393098753,1430475845,1380930386,1376583782,1229734213,1112491354,1413694794,1225195530,1230328142,6636882,1431192839,1245859661,1392902151,1279414868]},{"sector":12,"data":[100666196,1111576133,345420,1313817351,1280266836,1325793283,1431327829,83888212,1163413840,100665676,1312899923,807500,1280262921,1313428047,151366,1431192842,1330005069,106124366,1212353280,1129005893,1330860629,167798866,1163284301,1397904707,6771279,0,0,0,3,2097152,262176,-12648448,-14680065,-15728641,-16252929,-16515073,-16646145,-16711681,2130771967,1057030143,520159231,251723775,-16711681,-16711681,2131820543,2134441983,1065156607,1073545215,536805375,536805375,1073741823,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,65535,4194304,6291456,7340032,7864320,8126464,8257536,8323072,-2139160576,-1065418752,8257536,7733248,6684672,4390912,196608,-2147418112,-2147418112,-1073741824,-1073741824,0,0,0,0,0,0,0,0,0,0,0,0,0,0,196611,2097159,262176,-65536,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]},{"sector":13,"data":[-1,-1,-1,13041663,3670016,1048576,1048576,1048576,1048576,1048576,1048576,1048576,1048576,1048576,1048576,1048576,3670016,12976128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,2097167,262176,-65536,12648447,12584704,12584704,12584704,16254720,16269056,16269056,16269056,16269056,16269056,16269056,16269056,16269056,16269056,16269056,16269056,16269056,16269056,16269056,16269056,16269056,16269056,12599040,12584704,12584704,12584704,-63744,-1,-1,-1,-1,65535,-12648448,2160895,2099200,-1623455744,-1627096846,-1627111182,-1627111182,-1627111182,-939245326,-939245530,-469483482,-234602418,-117161826,-234602434,-419151714,-838582066,-1643888410,-1677442830,-1744551822,-2147205070,-2147205118,-2147205118,-2143535102,2127874,2099200,-12646400,63743,0,0,0,0,0,983043,2097167,262176,-65536,-1,-1,-1,-1,-1,-50331649,-117440705,-117440737,-117440737,-117440737,-117440737,16580383,16269056,16260864,16260864,16260864,16523008,-117489920,-117440737,-117440737]},{"sector":14,"data":[-117440737,-117440737,-50331873,-193,-1,-1,-1,-1,-1,-1,-1,65535,0,0,0,0,0,0,0,16777216,16777344,16777344,16777344,16777344,16777344,-16711552,-16678657,16810239,16777344,16777344,16777344,16777344,16777344,128,0,0,0,0,0,0,0,0,0,0,458755,2097152,262176,2147352576,2147418111,1073545215,1073545215,536412159,536412159,267452415,267452415,132186111,132186111,62980095,62980095,25231359,25231359,25231359,25231359,267452415,267452415,267452415,267452415,267452415,267452415,267452415,267452415,267452415,267452415,267452415,267452415,-1,-1,-1,-1,65535,0,0,0,-2147418112,-2147418112,-1073545216,-1073545216,-536412160,-536412160,-267452416,-267452416,-132186112,-132186112,-1073545216,-1073545216,-1073545216,-1073545216,-1073545216,-1073545216,-1073545216,-1073545216,-1073545216,-1073545216,-1073545216,-1073545216,0,0,0,0,0,0,0,524291,2097158,262176,16777216,16842751,16842751,16842751,16842751,16842751,16842751,16842751,16842751,16842751,16842751,16842751,16842751]},{"sector":15,"data":[16842751,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,65535,0,-130088960,-130088960,-130088960,-130088960,2013265920,2013265920,2017329152,2017329152,2017329152,2017329152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,524291,2097160,262176,-65536,-1,65535,65343,65343,65343,65343,65343,65343,65343,65343,65343,65343,65343,65343,-193,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,65535,0,0,0,-31522816,102236160,102236160,102236160,102236160,102236160,102236160,102236160,-31522816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,851988,16842756,0,-1,-1,-4097,-6145]},{"sector":16,"data":[-7169,-65040,-65296,-65040,-7169,-6145,-4097,-1,-1,0,0,0,2,851988,16842756,0,-1,-1,-32769,-32770,-32772,-65288,-65296,-65288,-32772,-32770,-32769,-1,-1,0,0,0,2,1048591,16842754,0,-1,-65537,1073250300,266346480,2147254268,2147254268,-32772,-1,2,1048591,16842754,0,-1,2147287039,2147254268,2147254268,535826400,2147237880,-2,-1,2,1048592,16842754,0,-134219777,-268441601,-537407489,-1074159629,2147368956,-1,-1,-1,2,917519,16842754,0,2088501248,2088533116,2088533116,2080406528,-58721153,-58721153,64639,0,2,917517,16842754,0,-1,-1,-1,-16711936,-458760,-458760,-458760,0,2,917530,16842756,0,-1,-1,-16769344,-16769344,-16711937,-16711937,-16769344,-16769344,-16711937,-16711937,-16769344,-16769344,-1,-1,0,0,2,2752568,16842760,0,0,-16777216,-1056966529,-16777216,-1551894145,-522241,1673525631,-783361,-471926401,-1307137,-470943361,-2355457]},{"sector":17,"data":[-470550145,-12840961,-470550145,-12840961,-470943361,-2355457,-471926401,-1307137,1673525631,-783361,-1551894145,-522241,-1056966529,-16777216,0,-16777216,-1998856,-14680441,2124324839,-16254975,-1132466209,-1838728,-639502657,-15112450,-641665345,-16161538,1669396863,-16512769,1669396863,-16512769,1669396863,-16512769,1669396863,-16512769,-641665345,-16161538,-639502657,-15112450,-1132466209,-1838728,2124324839,-16254975,-1998856,-14680441,251723007,-16727809,-1347748609,-16727809,1331035647,-11221505,-1398115141,-5715337,1263889851,-11221577,-1414898533,-5715209,1280654763,-11221641,-1347789645,-5715273,1263889851,-11221577,-1398115141,-5748112,1331035647,-11221505,-1347748609,-5715201,1331035647,-16727809,251723007,-16727809,2,655390,16842756,0,-1,-8390401,-12586783,530507742,530507742,530507742,530507742,-12586783,-8390401,-1,0,0,1,2097152,262176,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-12648448,-12583681,-12583681]}]],[[{"sector":1,"data":[-12583681,-12583681,-12583681,-12583681,-12583681,-12583681,-12583681,-12583681,-12583681,-12583681,-12583681,-12583681,-12583681,-12583681,-12583681,-12583681,-12583681,-12583681,-12583681,-12583681,-12583681,-12583681,-12583681,-12583681,64767,0,0,0,1,2097184,262176,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50331648,50331776,1929379968,1929379996,1930297500,1930297500,1930297500,1930297500,1930297500,1930297500,1930297500,1930297500,1930297500,1930311836,-15763204,-15763204,-15763204,-15730436,-15732483,-15732481,-15736577,-16260865,-16269057,-16547585,-16580353,-16711426,-16711426,-16711428,-16711428,252,0,1,2097184,262176]},{"sector":2,"data":[0,0,0,0,0,0,0,0,2130706432,2130706684,-16580356,-536624897,-536625145,-536625145,-536625145,49159,49159,49159,49159,117489671,117489919,117440766,117440766,117440704,117440704,192,0,117440512,117440704,117440704,117440704,117440704,192,0,0,0,1,2097184,262176,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,117440512,117440704,117440704,117440704,117440704,117440704,117440704,117440704,117440704,117440704,117440704,117440704,117440704,117440704,117440704,117440704,117440704,117440704,192,0,117440512,117440704,117440704,117440704,117440704,192,0,0,0,1,2097184,262176]},{"sector":3,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50331648,50331840,50790592,50847936,-1023156032,-1023164221,-218054461,-218103601,1056964815,1056964860,-14745348,-14681857,-14681857,-14681857,1057028351,1056964860,-218103556,-218103601,-1023213361,-1023164221,50839747,50847936,50389184,50331840,192,0,0,0,0,1310738,131074,65537,65536,16711681,-16777216,64,1077936383,-65336,-65536,255,0,0,-65536,255,0,0,0,0,0,524300,0,0,33619712,1700004098,1852403058,201354337,2304,0,0,33685504,1970225921,1919248754,150998016,0,0,0,1208091138,7760997,524303,0,0,33554432,2035482882,1835365491,0,0,0,1852397332,1937207140,1970230048,1142973550,1702259058,234881138,1414086999,1314213715,1096045380,738644,1413829390,1128877910,1128481093,89411141,1163071744,1229936212,1431389507,1397052741,54876745,1163070720,1229936212,1330857283,138694229,1414727936,1330860111,172248661,1162285312,1380471892,1330139973,1447380044,240406085,1163070464,1229936212,1330529603,279892,1413829389]},{"sector":4,"data":[1314213715,1229934148,476499,1096045322,1330861138,155471445,1163071744,1229936212,1213482307,1213416786,272911439,1279461888,1397052239,1145984335,1141243906,1162166863,251662672,1314213699,1229936212,1330529603,223561044,1163071488,1229936212,1313162563,1330398550,410960,1162891017,1431262030,83022,1314476813,1280065859,1128877910,807749,1413826322,1163020372,1280264275,1096045380,257119572,1498221312,1313165391,1314213715,4676,0,0,16777114,117848832,-661863680,-1957345904,-661774612,-404203690,-1875413505,70838286,-18347600,-1547685115,163250183,68061696,-1947389440,38046707,292864011,1364395147,-26032,1532559360,1149878323,130253570,1583342050,-1962742397,1297948645,-1864856373,-326412987,-1579643362,-1073020921,-286719116,104960,-1073020928,-488045707,500480,-1628962384,-385649915,44171477,303616,206472,158655498,-1057037262,-33553246,163270856,-1949791488,-768388621,1375789240,-6664110,1493172479,58048523,-1996450071,14727172,-1342028663,71600248,1149763760,-2082567419,-807270461,-164433013,267914,-801419176,1381179252,-1598500301,1347572224,45978,190536192,-1990560576,10532868,-352172919,132875011,-1957432437,-527806270,45141246,-1962779509,84404236,860901976,-1873719095,60811278,1213225560,-4464502,-402345729,1532495085,1242033027,244370037,-1341919256,81520650,1476396451,-1962742397]},{"sector":5,"data":[1297948645,-401698613,-21430608,-1192367105,-387186689,1167120524,518818645,1465309326,1979616744,138840921,263738,1996443767,-401698808,-1073020042,1183538549,-1983316472,163252294,-167268096,-1950153759,1342475248,17050,105286400,184697993,856716480,1347572434,61850,1958742784,-1962637024,-527824826,1552614064,-401831166,-1070398379,-310157729,535137026,80366941,-1983892736,-21495228,-1192629249,-454295555,1167120524,518818645,1465309326,1979581928,205949705,263738,-1142357130,-1144455680,129040393,-1023155722,1586229387,172395272,-1965847984,-487193532,29018251,1996535808,-1072958985,1963351691,11659523,309648139,-372127605,-1946454709,64564184,-385649725,190382224,-352094775,-1554935682,1284112384,33128453,62592372,49905664,-880147340,-470415437,-1072961325,-1958739595,1413306576,-352094720,1141018723,1985231878,1213475842,-201978701,-939599733,853510739,-2115776257,771943107,-1319434357,-741660154,5608,-896804725,5771,1183568171,-18839028,-402411316,359793505,1583333427,-1962742397,1297948645,-1962932022,-337955888,11004125,-1202132757,-487849990,-335545416,-622110499,290656346,326242907,366220442,411047712,461380085,517872931,1167120524,518818645,1465309326,1979510248,239504203,263738,-922860937,-1325397573,65140231,-1947169853,1183517278,-18839026,-402345780,1114768105,-1962129781,1451952206,1977879046,1914715184,71600172]},{"sector":6,"data":[1996683651,88901663,2001992323,106203154,1583333427,-1962742397,1297948645,-1207956790,-286523404,-335546696,-476951,48817387,853535488,-523155228,1443074821,-1959858037,-54305276,-134220801,-218106369,-1929383425,1430622424,-1910575989,-396929320,829815890,1023821451,225705984,1946157373,146726,1827352948,69634704,-1328742912,-6664178,1476395263,38529104,1977289560,1977879280,-1707152408,975,-1276637552,1958742784,-1976636430,855639054,-906084160,-523172748,1347483627,1927810704,-1957340928,-459648536,1493172227,989879947,1576170969,2145914512,1606431488,49120094,1562371467,182861,-335548232,-1864856338,-326412987,1457032734,-71505833,112199029,855759080,-2090967104,-443874579,-884122337,1167120524,518818645,1465309326,1979423208,-402149371,-1070399051,-310157729,535137026,-1932833443,1430622424,-1910575989,-396929320,74775414,99336243,-1946155615,-2090967078,-443874579,-884122337,1167120524,518818645,1465309326,1962627560,-339725564,-401887225,-1014300311,-310157729,535137026,-1932833443,1430622424,-1910575989,-396929320,360053546,973620875,1996489734,106859276,-527775490,921177264,1606431489,49120094,1562371467,313933,1167120524,518818645,1465309326,1979381224,105286409,263738,-1070398346,-922874901,246472842,-1962868504,-2090967101,-443874579,-900899553,-661913598,-1957345904,-661774612,-1075292330,-1978436102,-1342176218,1355611656,1912657128]},{"sector":7,"data":[-469084142,-1070337163,-310157729,535137026,-389329571,-346489315,-1864856337,-326412987,1457032734,-91690921,1586171253,139365126,-1628959312,856650240,-2090967104,-443874579,-900899553,-353894396,-1930499075,1430622424,-1910575989,-396929320,544602710,973883019,1996489734,173968151,-527775490,-620035152,1317738868,-388877562,326238297,1583333427,-1962742397,1297948645,855640266,-387388471,-353632863,1167120524,518818645,1465309326,1979321832,172395290,263738,1586172279,105810696,-855711606,384304560,856650240,-2090967104,-443874579,-900899553,1659371526,1458498557,-18599344,-1948200504,-13739792,1577465236,1795576259,990297862,1611107591,319559179,940080135,1929919496,1359449864,-2012822008,-1259863808,-387698174,74711768,-855703632,-654916354,1355021304,-997566894,263382066,-1984240906,-1950219520,172788208,855792777,105155008,-1995946871,71600388,-1017619874,142052182,1174702118,1963095867,48643,-16222327,-1017248697,38243152,956303405,2002256967,-1329334270,-87820031,43509843,1929373160,-1072998329,-922010764,-1558668,-398953984,-897122068,-16717848,28332039,1493151208,-402589208,-997523546,-1946181144,-6494014,-1746353014,-389968897,-997523566,-335573528,1220555525,1408814315,-2134639781,16831294,-1007156620,37480531,38243152,1476675385,28312946,-99947527,-385896368,-78053538,1405311992,32958545,-397196683,1676149269,963795455,1225290817]},{"sector":8,"data":[1997535619,-1190925517,-162332664,264339673,-58670710,-1978829821,-771378692,-1863876377,49006346,1348202508,401081008,333994239,239569151,-1017423368,-336002128,-1195116296,-957874173,133792513,266872695,-2027851009,2287818,-337115984,-389903618,-1047789850,-1963007512,-19076924,13969024,-133693449,-117002045,-1957627157,65589697,-1190956088,-1017577473,1912612157,2147433733,45089910,-1007107079,-1957604526,2099677896,-2130933248,16831294,314182772,886880256,-930352649,28979435,-1260144640,-12717577,-1207732733,609223679,-1310207985,-2132291068,-813666073,-1966667136,-265987848,-1964453117,2145747176,-1047801974,-1017488551,-1023356488,13909632,-402426622,512426960,113705169,209,-2133118013,54334,1048582260,1963065556,62056453,-219673365,-1959294208,1977289694,-1950137599,14936267,-1022603383,2114373126,-386269184,-55049290,1763328,-1057043202,-100642328,-469701881,-335666143,-81664512,8914630,-1914125568,168326400,-31886108,-117279548,-754530621,15401216,269246948,1642463467,401277872,13829830,2114373120,15400960,-282828316,1642463467,-1275037024,-1021653632,1962954728,1961101832,1959067142,-1262225148,2049345538,-750878720,108331008,-2135636858,12786381,0,-4520448,650350335,-1577054560,-1341718394,-63589368,-1993465395,772344094,151717516,119442478,50915337,1048626171,-1006829434,-1302965680,-1159530993,-1039990647,-1070337909,-1996077943]},{"sector":9,"data":[76089412,1577337993,1354979418,8201864,263439498,-1984175114,-1948777728,-1064433081,-1957248168,-1977219465,2000373252,-1107069694,2005467136,72351494,1397801822,1465274961,-1909586402,-1945565410,-960459048,16809734,13909632,859337730,-1175417920,1048576004,1946222803,-981190383,-16354304,1962984844,4253726,-2076632597,259260630,12944441,-1929443724,57999557,1174415848,-957881786,32518,8130302,8136320,1595868959,1532582494,777520757,151596799,15409328,-816307994,-963948463,-527767343,-2080420632,1946158207,7137322,1048602482,1946222803,-423523828,-339375550,-347937280,-1047900148,-980762394,-430391066,-980121152,-2143098112,16831294,-2067322507,214,-527776117,78708996,-1894981422,-321863450,28626058,638108882,1048576213,1947140309,-971838718,54534,13436614,26929152,13895366,-1017554942,8426635,1215681035,1023337448,1007580161,1011512575,-385649404,-1779892091,-19994624,-907491190,-387413250,-796197180,-1963016216,-1175956752,-388986114,-259326284,8426633,1976109914,-2137748730,-1979323648,1793789511,8422599,314114048,-352276480,-855179678,-851542016,309592832,14058695,-288292864,13534406,-102313727,113657579,-956301107,16832006,-670644480,-956301056,16833030,-838416640,-973078528,53254,-400430087,-930415028,1172892978,-388986114,-259326400,971507947,239569150,268371435,-134216984,1381060803,-372191605,-754974280]},{"sector":10,"data":[207064032,74782521,13698569,-1017620134,1381061456,-469701638,-352252895,-2145262080,16831294,1048592757,1946222798,-704198901,-2147483392,-33499866,13581952,-955550719,16832518,-718897152,1048640768,1946222800,-637090037,-2147483392,-83831514,14419655,645922817,-2131296043,16811838,113657972,503382151,145760014,-1274443078,567147557,-737753569,12058880,-436147448,-339441088,-2143230464,16831294,1048583284,1946222718,-340348907,-347871744,207741952,-436147453,2114373217,15401216,-31186460,568721643,1532582651,-956644520,54534,13436614,15421440,17572324,568721643,-352317976,606200832,-436147202,-1017578719,1364414714,519903464,-1547685113,-979173162,8888832,-386078232,1165360352,-1070377385,-1090518087,-201588520,309675,-218053185,244139,-218050881,13476522,-1058627664,-1058619472,-1058611280,-1058603088,-2046819912,-53745440,-1477917562,1019281148,1592817155,2118025311,208929024,1642332395,15465508,216752614,498073835,11551462,1122369771,8339072,1394439169,860888658,-1327984960,382021128,632555785,1478610428,-737753569,1532624896,15450163,15417574,1532575974,-1006897064,16973828,65973,16973839,65953,16973841,66575,16973853,65650,36]},{"sector":11,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65536,65537,1,1852397341,1937207140,1836008224,1768846701,1769234787,544435823,1986622020,29285,1279476487,1263682130,1392902158,1431393349,100664133,1129140820,478543,1413829382,38620995,1396901632,1380078661,50335051,106452035,1162020608,1128682584,67111246,1414939971,1124532235,1196709445,808005,1128616454,72175427,1414727168,1297040193,1392902152,1329808462,100664653,1146373447,1000003,1279673094,172512085,1313408512,1297040201,1,0,0,1313818157,1397051988,858992928,741751084,975188535,1937330976,745366900,1919243296,1634625901,1395138668,589329509,10547,0,0,0,0,1835010,184353024,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775174201,1819033888,1734963744,544437352,1702061426,1684371058,46,0,4718623,655456,131072,-1879048192,524289,134217740]},{"sector":12,"data":[536872960,-536846081,0,718336,0,2035482624,1835365491,7680,812801,694364160,1886339872,1734963833,1109423208,1953723497,1835099506,1668172064,959520814,539898936,543976513,1751607666,1914729332,1919251301,778331510,0,520093696,1090525952,2560,0,26214400,201328895,536576,-33488888,16654111,0,3166,0,1919243264,1634625901,108,0,184353024,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775174201,1819033888,1734963744,544437352,1702061426,1684371058,46,0,4718623,655456,131072,-1879048192,524289,134217740,536872960,-536846081,0,718336,0,30208,469762048,806888556,806099000,0,203294208,2117090364,1010597388,0,410795008,2121809020,1013333118,1667261958,1014774883,1719549052,1717986150,1012939902,3670032,393312,408944670,7888908,0,0,0,1880624640,115,0,0,0,0,0,0,0,0,1711291392,2120629784,60,3964542,1866872,402653247,1080033340,242221280,1013332796,242236447,242247228,997746236,993791600,1879244902,241581070,242235488,476461884,242221056,477128252,1986817080,993791600,1879048294,241581070,469788256,1763189868,404232300]},{"sector":13,"data":[0,473105920,1613784678,1717962264,393216,1015178848,1617716838,409364064,1667261958,1717986915,1712875110,1717986150,207630342,1572920,393312,6291504,1597440,0,3145728,0,404232192,2122219227,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,32382,1724081688,-1016699368,6,6684867,1579020,2013266046,-1059061658,404226096,1711304294,404252220,404252262,1852571750,1852184600,406748672,402679320,404253792,912682598,404226048,806905446,-600282004,1852184600,402685542,409363992,469788256,1799234668,404232300,0,2083982336,1613760102,1717962288,786432,1719797296,1617323622,409364064,2002807814,1717986931,1712875110,1717986150,204484620,786540,393312,6291504,1597440,0,3145728,0,404232192,2122219214,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,939556478,1717985304,-2130681832,6,409337985,3160076,402653438,-1067450266,404232288,1712848896,2122212972,1010565120,6700032,1010580540,1717993020,1717960806,27772,905969664,0,0,7077888,0,228864,0,469762144,912293484,204478572,6198,204934144,1614153222,1719012400,2115509276,1721632280,1617322086,409362528,1801481222,1717986939,1712873574,1714709350,204484620,1006633158,1010711676,2021408304]},{"sector":14,"data":[2115528252,1048329340,1719549542,1717986150,404232318,2122219008,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,939556478,1715232828,-1660930024,62,409338041,1711279128,402653438,-1067450266,1010571312,1010580540,1616928876,404258430,1667635260,1717986918,1717993062,1717986918,1010592870,2084322364,1010580734,2021145660,2081192056,1010580540,1715371580,1717986918,134243964,207627264,204472376,6172,204937216,2083920902,1715211388,3152924,1723206668,2087084156,410935392,1801484294,1717986927,1712863334,1712876390,202911768,100663296,1717986918,409364094,1796761100,1717986918,1714446446,1717988198,202911750,2122219008,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,32382,1013342310,-1325372392,13158,2117861541,1711279152,402660606,-563622810,1717960759,1717986918,1616928879,404250720,1945507864,1717986918,1718517350,1717986918,101084262,101058054,1717986843,404252262,1715345432,1717986918,1717993062,1717986918,134243942,406594560,204472431,2113961599,205199360,107349516,1044125798,6291456,1723209734,1617322086,409366140,1801481318,1719428711,1712856188,1008233318,202911768,100663296,1717985382,409364016,1796762636,1717986918,1714446448,1715235686,102260748,2122219008,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,32382,2120678496,-1325373952]},{"sector":15,"data":[2122212966,402653349,1711306876,402660478,-1016109466,1717960943,1717986918,2088525948,404250720,2070288408,1717986918,1719565926,1013343846,101082726,101058054,1717985307,404252262,1717966872,1717986918,1718517350,1717986918,26214,906395136,204472422,6172,205205504,107349528,208541798,2117074944,2125856780,1617322086,409364064,1801481318,1717593699,1712850540,405564262,202125360,1040187392,2120638566,409364016,1796765708,1717986918,1714437216,1712876390,202911768,2122219008,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,268467838,409362528,-1325373928,445502,402653369,1711276032,62,52114236,1717966875,1717986918,1616928876,404257916,1868961816,1717986918,1719041638,409364070,1044276838,1044266558,2122211455,404258430,1717966872,1717986918,1719041638,1717986918,26214,1829118976,204472422,6198,205205504,108987952,208023654,1572864,1721630744,1617323622,409364064,1667262054,1717593699,1712875110,409351782,202125360,1711276032,1617322086,409364016,1796762636,1717986918,1714423392,1715235686,404232240,2122219008,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,268467838,2117886054,-1325386216,445440,169,1711276032,6,104018688,2122199059,2122219134,1616930412,404250720,1734744088,1717986918,1717993062,409364070,1717986940,1717986918,1616928984]},{"sector":16,"data":[404250720,1717966872,1717986918,1717993062,1717986918,469788262,1299981312,404226150,1835008,204693532,1711695456,409350246,793628,1719670832,1617716838,409364064,1667262054,1717593699,1712875110,409351740,201732192,1711276032,1617323622,409353776,1796761100,1717986918,1714423392,1013331516,404232288,2122219008,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,939556478,409387068,-1660937192,419328,2113929381,1711276032,1572870,205481472,1717985311,1717986918,1616930412,404250720,1668028440,1717986918,1717993062,409364070,1717986912,1717986918,1616930520,404250720,1717966872,1717986918,1717993062,1013343846,469777510,102245376,404226107,786432,203317276,1007041662,943468604,396316,1719670880,2121809020,1013333600,1669228092,1012939875,1008221286,409351704,201732222,1040187392,1044266108,2120615472,1669228044,1048329318,1042185312,208025112,404232318,2122219008,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,939556478,415497752,-2130704872,13182,129,2063597568,1835014,520342654,1717985283,1717986918,2122202223,1010597502,1668824124,1010580540,1014791740,406600764,1044278368,1044266558,1044266223,2122202686,1715240574,1010580540,1048346172,205405758,3196,1572864,806092800,786432,0,0,0,3072,8126464]},{"sector":17,"data":[0,201326592,0,0,1006648320,0,0,1536,12,106954752,0,402653184,1880624640,2122219008,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,939556478,24,-1023384040,0,195,1610612736,393222,0,26112,0,6144,0,0,0,12615168,0,0,0,6144,0,0,0,12615168,402653184,6240,0,0,1572864,0,0,0,6144,0,0,0,0,100663296,0,0,0,65280,0,31744,120,106954752,0,-268435456,0,0,0,0,0,0,0,0,0,939524096,0,2113960960,0,126,-1073741824,3932166,0,15360,0,30720,0,0,0,0,0,0,0,30720,0,0,0,0,-268435456,2035544160,1835365491,0,208077056,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775174201,1819033888,1734963744,544437352,1702061426,1684371058,46,0,1769503,655425,0,-1879048192,589569,137363468,16779264]}],[{"sector":1,"data":[-31514626,0,810496,0,30208,0,406591554,-16711936,1058028544,402800664,4079462,1579032,0,1813774336,942676004,3148828,0,1007435270,478031932,3947774,0,2081979452,2122217532,104621628,1667457126,2084338748,1717993020,2120640099,272392252,1610627072,503318016,202924032,30816,0,0,0,1936726030,241581080,477128252,1885748224,1718630508,520097340,1013999164,1717986928,2019965952,236719630,1010529806,60,24640,1834296320,1712855064,1717960704,409363968,1579008,404226072,1711302246,1711302144,26136,6246,1579110,267387135,2117861631,32256,1044119552,30,1879048192,1576462,15360,7895047,417824382,-16761730,1713372988,1620652824,2120629254,1010565222,24,0,405040156,403467369,24,1661337600,812017180,1711675488,100663398,-2107219968,1818650172,1717985376,1617298968,1717986147,409364070,1717790310,1613760102,805320716,100687872,1610625024,408944640,0,805306368,0,404226048,1712904984,1717966950,1711289880,1819023462,409337880,1717976064,1712875032,1712848896,404243558,-602400720,6686318,-524288000,-1845493760,404282282,26136,1711302246,402659430,1572888,1717966872,1711302144,1712875008,409337856,409337856,16711704,16715760,1610638950,201326592,3171174]},{"sector":2,"data":[3939843,454563840,1711282200,1812201472,-3997684,2117876967,-1015087360,1058825735,2114875518,6356582,270040702,402653192,1813774591,1818967588,1579020,0,1719428876,811610118,6710790,805309440,1717993990,1616930406,102262374,1937203308,1717986918,1717966950,208037475,1812738096,1610625024,805307904,24576,6240,0,12288,0,-837281768,26172,905969664,0,402653184,1811971686,0,1715208192,1147559960,24,100663296,6246,3694784,-1235924736,1712855064,1717960704,409363968,1579008,404226072,1711302246,1711302144,26136,6246,1579110,267387135,1717960959,12288,1667632128,809399856,202931814,404233008,26227,1007447044,2130680193,-1019445736,1711768039,2019963678,-26863586,404226104,1612191768,16717860,1618897948,806906934,1586700,1728839680,906364428,1980510304,404495462,-1643767682,1717593702,1717592160,1617692184,1717992299,408970854,878929510,808455270,402703884,1044151356,2084450364,409353336,2084338814,2118018622,1717790310,404258406,1612972056,1010580582,1010596924,2021145660,1614560376,1010593022,1717986876,1614571110,1008223334,2087074936,409353827,1623195648,603979832,404254122,26136,1711302246,402659430,1572888,1717966872,1711302144,1712875008,409337856,409337856,16711704,1006571504,822042726,1048471103,-619158682,6709351]},{"sector":3,"data":[408946200,1725628440,1812201472,-1717224424,-2359297,-1715240578,857433613,406748226,7143014,471341080,1013342264,524414,940335140,470560768,24,101477144,2088515100,476462092,201338908,2087106060,1618765408,102268512,1869308024,1717986918,1717966904,409344107,792624,1711669248,2120640102,202925670,1718294630,1852204646,1717973088,107374187,792624,1717985382,101058054,1717986918,1712855064,1864065126,1717986918,1717986918,2017222758,1712850494,1718838886,102,855664606,-615148852,1727535128,1726412800,-127473922,1579008,521666584,-411080858,-402692097,16738047,2039654,1638246,267387135,1617719295,1717835878,1669229360,1617943356,209584230,1579056,1850574,1009806340,-91,-2122383361,1014611395,2126721817,2120620158,404258406,1619000856,8273151,1008992264,805334808,8290060,1796735102,1711672332,1008231942,1610612798,-1239939584,1717593702,1718516832,1617716760,2087085931,404520038,409691750,405805116,12,1717593606,1717973094,409734168,1717986923,811626598,1013671526,6294630,1617297414,101082726,1717569030,404252262,2087085592,1717992475,1717986918,-60791194,102255486,1717986840,6710907,1875082878,1231447552,2014885546,419358232,101082630,536353022,-14680065,1617369343,1610612832,-16777216,411041536,15171352,16719864,1727991792,409362534,1798334054,-614046874,2120646267,404232216]},{"sector":4,"data":[32280,1816401948,-8307588,-33154,-1111260802,857217228,406748355,2120629760,471341080,2120638520,60,1714816638,470560768,24,403469104,1711695366,814616,209596416,1719580160,1616930400,1712875110,1667981420,1818648678,1717966854,806890603,789552,1715339264,813590112,202925670,1718294648,1617323622,1717973052,409344107,792624,2120638659,1044266558,2122219104,1712855064,1820287078,1717986918,1717986918,1578655840,1712864792,1047488102,106960956,-871359741,1834296371,1712855064,1711675494,402654726,402653208,404226072,6316134,24576,1711276032,1712855040,402653286,267452415,1617323520,1717973094,912681776,1618205542,1880621158,1579022,115,1006633188,1014939069,-2122425637,416061891,2017605400,100669470,410943030,1612191768,3964452,103022592,805332589,1586700,1932525568,2131111948,1714447878,402653196,-1644161024,1717986918,1717985376,1617323544,1617322851,409364070,1714841190,204484632,12,1717593702,1717973088,409734168,1717986923,805724262,1013671526,404238438,1724055576,1717985382,1616930406,404250720,1618902552,1717988568,1717986918,1617323622,1712868222,1717986840,805306471,856032864,-1842099184,404282282,-127506696,-18454810,1636352,1579008,2137399064,1743257447,16771071,520120063,-10066401,-59392,1711280112,812015718,1798334054,1852192358,6709310,402653184,14352408]},{"sector":5,"data":[7602176,-2120664064,404232252,-2115517636,2004385484,403599462,2115765862,276699196,-16744696,1835032,1716354084,1579008,469769216,1611424608,1712064102,471361072,805309468,1717993496,1616931942,1712875110,1667457126,1717985382,1013323878,1612211766,788016,1717960704,811624038,202925630,1718294630,1617323622,1013329926,1614571062,1579032,1617323715,1717986918,1616928870,1712855064,1826119782,1717986918,1717976166,1226358844,1712875032,6514278,106979328,1714962188,-1235924634,1712855064,1717966950,102,402653208,404226072,6684774,1711302246,1712848896,1712848896,402659430,267452415,1617325824,1717985382,912670256,811597926,2122219110,404232318,206,1006633020,404276163,-16771048,416072574,1618900728,107380230,404258310,60,1638144,405012508,402668294,201326616,1046486016,104627724,1009794168,101456952,-2145886208,2017229926,1715363966,2120629308,1614570339,406611516,1714821180,103841304,12,1044151358,1711681598,2120617086,2084333155,511467582,1714821182,404258316,1023344664,1044266558,1044135486,2122202686,2120640126,1010593775,205405756,-31966148,1047546648,1715354750,1618902627,52363264,617362232,404254122,409363992,6710886,1572864,1579008,6690840,1717960806,26112,26136,409363992,-59392,989859824,2120441980,404519740,3962684,6692352,402653184,6360,1835008]},{"sector":6,"data":[2122202112,2122186752,-12779776,1626872012,1006780569,6686208,1579008,0,0,6144,3148800,3072,0,0,0,12,31744,0,0,0,786432,0,0,3932220,0,0,201326598,0,417792,0,1572864,7346190,6144,0,24,0,0,0,6144,24,0,0,26112,3670016,-615149056,1712855064,1717966950,102,402653208,404226072,6684774,1711302246,1712848896,1712848896,402659430,267452415,6291456,1610612736,6144,0,0,14161920,0,12,0,-16777216,7929600,1572976,100669440,8257660,0,0,0,0,402653184,0,0,0,1572864,0,0,0,0,0,6,0,0,16711680,0,8126464,30720,1610612736,6,0,240,2013265920,0,7864320,0,0,0,-268435456,0,0,0,1006632960,0,1224736824,404272810,409363992,6710886,1572864,1579008,6690840,1717960806,26112,26136,409363992,-59392,4080,96,49152,0,0,402653184,112,262144,1700003840]},{"sector":7,"data":[1852403058,27745,0,0,1667845419,1869836146,1461744742,1868852841,1193309047,1752195442,544433001,1769366852,1226859875,1919251566,1701011814,1124728832,1229081935,1196574030,167784270,1380275537,1329742169,10179666,1129270282,1280202059,-1840561329,1480919296,1128354388,-397324204,1162283776,1431454292,1380927571,117478727,1415071060,559174991,1163070976,1447970132,1313821257,1414415693,1393623172,1414747205,1129596242,1414283848,1162104653,1125122055,1413563730,1413564485,1380075587,977818453,1095763456,1414283860,1107689501,1279415369,251667028,1397114447,1230459973,1464812622,256332367,1163070208,1431454292,1380927571,134255687,1095062083,1128547668,1158086709,1346980940,1590611,1413826322,1297369410,1229213761,1397638477,-1571926199,1414531584,1163021897,1313818951,1292239009,1229212757,251691094,1347700039,1180257359,1296845897,1413825615,1162284800,1095061076,1414743378,1330401091,134257234,1162626372,1128547668,1141440580,1413827653,1112492613,1124860148,1297698895,1178686533,-1757066167,1162286336,1480938580,1095254868,1413693778,1480938053,1497453140,1162283776,1413827924,1279870529,201358405,1397114447,1230394437,1313296979,1124860006,1413563730,1414087237,810565965,1162283520,1346456916,1162104653,1107951697,1095586889,1414087248,151006803,1163284041,1196577874,117451342,1280067910,676218706,1313411328,1397900628,1129595717,1380993356]},{"sector":8,"data":[374620997,1313409024,1414677843,15290704,1330463752,1431327829,100716628,1330925644,6508612,1414546438,1129335887,1163072000,1414087252,1146110285,1313164617,1313818963,1376911523,1448037701,1313818181,1397051988,1129469263,167807045,1229538375,1096042830,9982032,1397051916,1163022933,1330205763,251689550,1347700051,1180257359,1296845897,105202767,1163004672,1230394435,1279412563,218130501,1431391817,1447383625,1196577609,201360206,1465140551,1329876553,1196576599,1125122145,1413563730,1280266309,1313818457,1062094674,1296304128,1112820034,13194316,1413829397,1415071060,1380010051,1163150145,1415071058,541010,1313426693,15159632,1163019016,1229280321,218143043,1414743378,1447383631,1196577609,167805518,1297368403,1330466881,214340,1413826313,1095517522,5657410,1413826318,1464158550,1414680400,1598509647,1380321280,1380273473,2707015,1163019028,1111839809,1095586889,1145981264,1128616521,184562004,1414091351,1095320645,-230207668,1397162752,201361750,1162626387,1230394435,1313296979,1141309545,1481199693,13716549,1413826316,1145981271,1480939343,100687956,1163284301,1331028,1413829388,1145981271,1380931407,150997831,1330596934,1279870532,268441932,1163152969,1128616786,1397315156,1413694802,1191772258,1112495173,1413694794,1191837778,1262638149,1330401091,234900306,1398031687,1262702420,1162494543,5723203,1163019030,1128617025,1095781711]},{"sector":9,"data":[1279412564,1414087237,860897613,1380124928,1163149637,1028539728,1163069696,1279611476,89342529,1279462656,1296388943,1178686533,2118470729,1162284544,1480938580,1413827924,1396918610,1125122141,1413563730,1280267077,1380074569,1112036181,1163070976,1162434132,1380929623,1196576596,1125711885,1413563730,1280066885,1230262345,1313296963,1229213257,1413694802,1141440567,1431192909,1245859661,1392902351,1346722377,201386577,1465140563,1329876553,1415071063,1426587660,1129270350,-1857862581,1163070720,1313429332,1464158550,-1957406651,1162284288,1480938580,1415071060,1532251717,1163072512,1480938580,1398098516,1229343060,1230258499,675407,1129270278,-1874639797,1162283264,1313296980,-2041032894,1163069952,1129005652,1380928591,1393164289,1413829204,1279412291,151003988,1397114447,1380930629,218140487,1146373447,1128879685,1346454341,117461075,1280856132,-1975167935,1330644736,1330075980,83895374,1414877762,201381189,1162626372,1112491348,1413694794,1342701637,1414416705,726550354,1480920576,1146440771,1397315141,1413694802,1124335689,-94810033,1162284544,1162434132,1380929623,1415071060,1393033310,1162625347,-1940629435,1313147904,1094929749,1094863948,10373955,1397051913,1163022164,2573124,1129137163,1380928591,1330007625,1158021322,1346454355,167781957,1129596231,1112557900,5068879,1163019029,1380275265,1381253957,1313427015,1163020612,4281411,1163019016,1346720833]},{"sector":10,"data":[268494417,1279345491,1162434117,1380929623,1415071060,1392902162,1280196931,167806802,1414091351,1330664261,15813711,1179012873,1381254483,6639175,1413826327,1414418243,1230327369,1163151182,1480938584,1414415700,1141375096,1413827653,-346992571,1163070976,1162434132,1380929623,1415071060,1376321550,1398031173,1179014484,1191772302,1262638149,1162104653,1125253196,1413563730,1313818181,1145981268,1128616521,268450132,1347243843,1112101953,1229079884,1346456916,1191903389,1347638341,1246515023,16073295,1145980172,1330597971,1195462732,151058245,1230394448,1279412563,318793541,1095062083,1380074836,1229476693,1380533326,844383045,1379992320,251664195,1279481925,1128612949,1380993356,357843781,1162283776,1480938580,1128351316,201350213,1414808903,1129601093,1380928591,1393164378,1447384641,1196577609,117473614,1381254471,1429360719,1179585792,1413829446,1346980931,542000978,1296305920,1279346002,1329945161,1128614466,251712084,1178879041,1381256783,1431262021,2001027922,1145506816,1095130953,1095910994,9651533,1095058437,7948372,1279611660,1330922309,1128614466,50343252,440748368,1129516544,1464159297,1329876553,1415071063,1393426448,1414676820,1330597971,1195462732,134280773,1397705795,1112492613,1125253363,1413563730,1297040197,1230258512,1145392194,151008323,1112819027,1146047819,117441093,1162758476,1681998916,1331103488,1163084882,201362772,1414808915]},{"sector":11,"data":[1129601093,1380928591,1191706633,1230001221,1397507416,1280314368,1162697025,1229341012,8078668,1413829383,844123986,1376321540,1145984335,1413694802,1225785372,1380275278,1129070926,1413563730,1984119877,1380127232,1163149637,1414807888,1112429125,1213420882,1141375036,1094931277,-732804018,1163070720,1413694796,1346980931,743327570,1431373824,1247367749,16269903,1413826319,1096041805,1162627398,1398032706,1342701727,1280920655,625299017,1229981952,1280267352,-1538961847,1296304128,1112691795,13849676,1380865295,1229734213,1112491354,1413694794,1125580950,1413563730,1397310533,1146241347,1162625601,1297369410,10244161,1413829384,1163413840,285220684,1095062083,1279608148,1414547788,1196573513,100677198,1163280723,1983300,1162891015,1112492622,1326514416,1163085382,1162434132,1380929623,1196576596,1124990993,1413563730,1413827909,1279870529,302021957,1129596231,1163022933,1330664526,1230260563,5131855,1413829391,1096041805,1162627398,1398032706,1158152352,1279350097,1213089618,1162284288,1414087252,1112555853,1246975049,1162283008,1329808468,5195602,1163019018,1178948673,945049167,1162087936,1163150668,1096041805,1162627398,1125187711,1413563730,1313165381,1229213257,1413694802,1141637182,1431192909,1330005069,-833399730,1313147648,1112493397,1413694794,184567635,1381256516,1347636801,-599436465,1162284544,1447970132,1313821257,1414415693,1158217861,1179473230]},{"sector":12,"data":[1398033999,1376321606,1096041285,1162626894,1192296475,1414747205,1129596242,1414283848,1162104653,1275461720,1413828169,218108751,1112819027,1095586889,1414087248,218131027,1095062083,1163019604,1196577859,134234190,1146373459,1196576579,117,0,1167120524,518818645,-326903666,-1990765016,855704638,1346036672,-6663856,-486539009,-1547685072,983760952,23717888,561299467,1946167784,20899868,-1706027148,65535,-1898410920,3981248,855663801,-139725888,-2090967088,-443874579,-884122337,11208333,-6664162,-1560280833,109903888,512557248,244121800,1988952273,2669270,1394495518,1444303134,-26030,1444282368,25498,1221376,1326733,-1959856589,-486449268,-14790362,96931381,-13762560,1493260692,309641227,1195836809,529258635,-2147266688,1179049954,516150507,-6670849,184549631,-1946979136,-1289843216,-1190228736,1394497024,-6663906,184549631,1457222848,-26032,-1073020928,1347473524,16777114,-1959664896,113413872,-6662650,117440767,-1073019511,-661971340,1333796747,-964460541,855082770,-17984,-142102798,-8304825,-746717136,1462072415,16777114,-6662400,-1207959297,1344143512,67482,1958742784,3318539,529258635,-2147266688,1812031427,16871681,67110400,-369098752,65535,16777194,-5632,163053568,-6664192,-1560280833,-1073020876,163057268,2073710592,184549377,3580864,-326412861,1342204344,115610]},{"sector":13,"data":[60072704,74825739,803979307,-1728030024,-6664110,-1560280833,-1073019916,146336372,-1952821248,-1560281087,-1073020006,582539892,-1706025471,65535,-1962933832,298016229,1744831232,2097152257,453051146,67109120,-117374208,301990144,889258752,318767361,1006633728,-1811939072,-1291844842,754974977,-889126122,788529408,-2046754048,973078784,-486472960,1006633216,-301923584,1023410432,989922048,1056964865,1828717312,-1056964351,-1929313528,1174405376,1157628672,-419430143,-738196727,1996553985,1912603392,1912602881,-1660943608,-167771903,1702258965,1701137940,1167087646,518818645,-326903666,209617678,721712384,-1955599424,126553182,-1946794359,138933976,-15961024,-6681482,184549631,-1948224320,1200354910,911706932,-1980217719,1589967446,1200301816,-1983708377,1451881030,-62470156,468385792,653418180,1946173312,-230228197,-1006138842,1191118430,126363142,-1946401025,994576966,-595592122,637951684,-1962932282,-310117306,535137026,147475805,-1873273344,-326412987,-2082959842,-1070920980,-1979955575,1183447110,105286646,-375159,1183647862,-1202710794,-1706033150,261,737822347,1183446598,2109737734,-2082932990,-443874579,-900899553,1478361092,-1957345904,-661774612,722136195,-96040512,-1980217719,1183577670,-62486266,-1928825089,1343682118,1342177976,16777114,-62485760,-1980217813,-1073019322,-654900611,-1962742397,1297948645,503317706,1430622296,-1910575989,988578776]},{"sector":14,"data":[1752440891,1763734377,543236211,1835888483,745827941,1697540384,543236142,1701734764,1701998624,1701078371,2036473956,1931501856,1667853669,1852796015,540740109,1835888483,1937010277,1869116192,543452277,542396238,1953394531,544106849,1696624225,1818326385,1734964000,218762606,1769429770,2003788910,168648051,1699946555,1886593140,1701605231,1869881458,544173600,1881173876,1702258034,1814066286,1768186223,1864394606,1886593126,1701605231,1930038642,1819242352,2034070117,168653669,1651863364,1816356204,1399546729,1684366704,808465725,1967327757,1919906674,1852402754,1952535147,892681573,990514480,1869762592,1835102823,1852121203,544830068,1702126948,1852403058,1998615397,1751345512,1818846752,2019893349,1936614772,1936617321,1701994784,1936286752,2036427888,168649829,2036473915,1397703712,1702389024,1769239907,1444963702,544695657,1735357008,544039282,1835888483,224685665,1881160458,1830839913,1952999273,1936482592,1700929647,544104736,1702131813,1869181806,1869881454,1684300064,1919945229,1634887535,1664971629,1696623983,1646290296,168653921,1968054331,1867541612,1696625778,2037544046,1952801824,1768780389,544433518,543516788,1769108595,1965057902,543450483,1679847284,1953459813,1752440933,1847730277,577530997,1919905824,990514548,1919903264,1852793632,1952671086,1936617321,1702043692,1868767333,1869771886,1634738284,661415278,1699946611,1866670196,1667591790]},{"sector":15,"data":[1852795252,1868767347,1851878765,1309281636,1349282933,1031041647,1701736270,540740109,1684107084,1953391904,1931508082,1768121712,1936025958,1634236192,1885413492,1667853424,1869182049,1931506542,1819635560,1700929636,1634692128,543450468,1763734369,1936617315,1869351437,222127201,1377843978,1696624245,2037544046,1701868320,1768319331,1998615397,544498024,1819308129,1952539497,1936617321,1869116192,543452277,1914725730,539913845,1702057248,1836016416,1948279149,990514543,1635021600,1629516914,2003136032,1819239200,544107893,1948280431,1684368489,1886413088,1633905004,1852795252,1696607347,539911982,544175988,1970040675,779316845,1816207392,168652659,1869488187,1701013876,1634235424,1851859060,1886413088,1633905004,1852795252,2036428064,543515168,1818587760,1701077359,1696607332,539911982,1752461156,1949201257,1931506808,1953653108,990514547,1414483488,1145131077,1163412782,1913261358,222129781,1527385354,1702131813,1869181806,224228206,1818321674,1818321725,1633971813,2019896946,777920613,225206627,1685218058,1918985021,1818846820,2019896933,777920613,224686691,1836217354,1919251517,1634625901,2019896940,777920613,225276532,1954051082,1953459773,1684107365,1702389038,1949195808,168653944,1030319721,1702129518,778330480,543520869,1852386910,1829375337,1883074675,1953392993,1702389038,1831755296,168652915,1029926756,1953067639,2019896933,777920613,224620388]},{"sector":16,"data":[1527385354,1869377379,224228210,1527385354,1566992752,2004027917,1768190049,1060989811,2004027917,1769173089,809330042,1935739405,1852270963,1836016430,168636733,1920234593,1697538665,859661688,1644825906,1969972065,1868770928,875969901,1751321101,1802724459,1836016430,221525565,1836016394,1684955501,1836016430,221393725,1836016394,1868770928,875969901,1768163853,1868786547,1663987821,909995375,1678380340,1667986281,779710575,1030582115,168637494,1768711269,1868770926,875969901,1768294925,1697539182,909993336,1779043636,778987887,1030060133,168636466,1701080941,1836016430,168636733,1701998445,1836016430,221525565,1769107466,1663988846,826109295,1701972493,1702260579,1868770930,875969901,1701972493,1919906931,1868770917,875969901,1869810189,1697543282,909993336,1930038580,1953718901,1702389038,221262397,1852405514,1836016430,168636733,1885014541,1937011311,990514525,544175136,1886680431,1948284021,543236207,1701603686,1801547040,1851859045,1953391904,1763735922,1752440942,1931506537,1769235301,1864396399,1752440934,1868963941,168652146,1768300603,1634624876,1345217901,1713393234,1869376623,543450487,1696624225,1818326385,1734964000,990514542,1701344288,1818846752,1835101797,1769414757,1629514860,1634037872,1852383346,1701344288,1852785440,1819243124,1851871264,1126198373,1701736047,1869182051,1679848302,1869373801,1851859047,990514532,2037276960,1769107488]},{"sector":17,"data":[1919251566,2036428064,1701344288,1700929646,1852793632,1952671086,1948279909,1752440943,1713402729,543517801,543452769,543976545,1852404336,1735289204,1818851104,990514540,543515168,1701736292,544175136,1936287860,1818846752,1275727205,976311376,1275727165,976376912,1275727165,976442448,1124732221,976309583,808595773,745417776,221326392,1297040138,826096178,741355570,741878894,218762545,1868978954,1567847534,1866664461,1701409397,741875826,824979505,1395138610,589329509,1128081715,1112692047,1699219981,941651564,741355820,673198641,544499027,1026110243,1447839048,1409944898,1377858413,941649517,741355820,673198641,544499027,1026110243,1381190996,1124732226,1769108847,941650533,741355820,673198641,544499027,1026109987,1381322563,1208618305,544631909,808528952,540160300,1952797480,691151648,1279608893,168640854,544435540,544107858,808528952,540160300,1952797480,691151648,1397576765,168640850,1634561874,1395138670,589329509,1379739953,1312902479,1666386445,1953524082,1699948576,824385652,1129528617,1414547794,1867319821,1852990820,1699948576,824385652,1330461993,1314014532,2573]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[27679309,22,32,65535,490209280,0,64,0,0,0,0,0,0,0,0,1024]},{"sector":6,"data":[1409299944,544434536,1735357040,544039282,1970365810,1936028265,1667845408,1869836146,1461744742,1868852841,168653687,-1273033180,-1205744375,567102465,15919962]},{"sector":7,"data":[279886,1048808,191649315,131078,268436456,73996,131072,196610,4194366,12976208,14090449,1272,262146,0,0,0,592773204,592834928,12976822,40894481,-2147287036,1,46333952,-265289663,96,-2147221504,1,50593792,-265289723,104,-2147155968,1,50921472,-265289715,112,-2147090432,2,51773440,-265289704,32769,53346304,-265289716,32770,0,1330664199,1380273231,1330664199,1380273231,1329742085,1392989269,1280266064,21061,134217984,3072,1380272902,55330126,71910471,1380275029,-855507198,27787583,20958465,0,1667845409,1869836146,1461744742,1868852841,1344303991,1953393010,1394635365,1819242352,29285,1329742085,152661,1330664206,1380273231,1346653783,21188434,1953300480,1819506547,1668115310,1167087646,518818645,2122438798,1963004172,242679569,1342177720,16777114,112640,2122385899,1946226700,-2084555788,-443874579,-900899553,-1957363702,485262316,1183536727,16687884,687747,-1070393228,964688,271628368,1354771280,451995728,-397361101,99099262,81181,-1070397835,577824848,1342177720,1075661544,-1070397835,576776272,-401836289,748886840,-18432,1392508858,209125200,44442,19047168,19142281,-1157627976,1347616767,16660223,16777114,19309312,19404425,2897663,-1710983425]},{"sector":8,"data":[65535,2897663,937954960,741801756,-26112,-13434880,2097741699,-773878920,381127651,1962281728,142377745,-2096401408,158597180,-16483197,-347667596,-1813489957,1975520010,141885429,16777114,-465139456,-2082056567,1962869884,1347573257,1074617576,1962879349,21993992,1962868736,266725384,-187263,141885270,1343226552,-401547800,922684555,-1545076692,-5248250,-6682508,-352321281,339641253,443809792,384583309,1354773328,28856400,-6664192,184549631,-384666176,1183711072,860886764,1347440832,16777114,-293698816,856061202,1340625088,-330920671,-6664170,-1929379585,1343679558,16777114,-13702912,1167087646,518818645,-326903666,205949734,1962999869,28043523,-2014772362,998659,753468277,-385649151,37552983,-385649408,87884463,-385649408,104661582,-385649408,-1394015774,242679553,-15960321,1996425846,108461832,856208872,-1746298432,290973699,-1962700311,-472840610,1490819,-1543168,-6681994,184549631,1913747410,3947781,1996425843,-26102,-873791488,2768515,-14912512,1996426870,-26098,113704960,42,856585983,1285181632,-1962934269,-472840610,1482635,956974731,578095175,-788111733,379554787,41418496,-873984368,106859286,-1618222127,1204224022,-369099004,1996488565,243656714,13635327,-788111733,381649891,57999360,-1946198807,-472840610,1488895,-16091393,1743260790,108347407,-369098824,216596291]},{"sector":9,"data":[-62470389,-56557567,-62506752,1340670844,-60912894,1183572945,814168330,-1961528063,-472777634,19840899,-1962315000,-794559418,36497664,-335788289,242679757,383403661,-26032,1996423168,81848334,-1928431873,1343674950,16777114,-18618112,-1559607669,1183514922,138808070,-756481163,1354773502,1342181560,1343230136,-16222465,199755382,-21239528,-1207011585,-1706033151,65535,1183487,-1494678668,112894,-26032,113704960,655378,-92951,1996426870,-401698806,-2031546200,242679806,-16091393,244319862,185725160,-385649216,-1880490383,172395265,1946412861,242679575,-15960321,1996425846,108461832,16777114,32303360,16660223,503328440,242679632,19150591,19019519,16777114,-30152448,687747,2122518132,141885448,-1710328065,65535,16533191,-60912896,-1081875503,1946157078,-60912883,-1618222127,662765590,1191182331,-58817540,-2082571256,10814,-286719115,242679805,-1710328065,578,2754247,1996423168,1354773262,152474,-36706048,17464963,-957807755,242679805,-16353537,1659373686,-38278911,-15829249,1996425846,25815046,-1191335703,-397406208,-1595335869,1354773501,186333928,-1207536192,-1863778303,1423613,1354771280,84974160,1996423168,-26098,1994981376,1354773501,16777114,-43259648,-401967361,1996430918,108461832,503329976,79534672,1183383552,1958743034,142016276,-1207535873,1344143420,16777114]},{"sector":10,"data":[1975520000,-62470343,1586167808,-2082221572,5823,1586175860,-1948003844,-16771425,244318839,-1961619224,-472777634,1482635,-33404985,-62455809,150765187,2122566780,57934074,-1191380759,726663196,-1706012480,65535,-397361101,1183389863,145615100,-401705217,-689372474,1064444,820577141,1129983,518587253,1195519,1407779701,1719807,1374225269,-28448257,1963005245,-31069949,289217399,-385649407,306052842,-385649407,322829867,-385649407,686423510,33635838,1961427829,268516860,334037877,268582397,-2098658443,268647932,-1947663499,268713469,1827210101,-33691140,-1962742397,1297948645,1426066122,1996483723,112648,1354773328,-150930271,989921326,125764678,16400003,-1207602176,48955492,860930099,-6664000,-1962934017,113401317,-326413056,10939521,105286486,1023412781,58064909,50459369,-13724736,-1593325145,104399100,58458320,-1962811671,-788475874,814189539,71731457,1929381949,30009603,13645567,1342177976,-16015384,-1207894474,-1924136957,385833606,5290064,105880144,922681344,-1070399234,-1337553584,1354256406,-6664192,-16776961,161088630,-1996488703,1451863110,1518767534,-1957685505,235252806,-1706012160,65535,-1710983425,294,-1928825089,385833606,-1337553584,565727254,-6664192,1023410431,242483201,13645567,1358953912,-385145880,-164429505,-472785269,1490819,-1959758848,-1948003874,-1962928481,1194918982]},{"sector":11,"data":[-1960807160,-1948003874,-16771425,244318839,-1961725464,-1948003874,-956295521,-64441,1174471401,2080964227,-801701953,-149504,181594192,13635327,32241203,-803304634,-773969152,817857507,-260634623,-402360577,512428547,-567607088,-1618222127,-472841936,1488895,-1207666945,-397406206,-1662514450,142016262,-385829400,922681515,2122514640,91558918,-352321096,-83965,175564880,1048829931,1962934310,9038083,-1710721281,1910,702544,571472,126065232,1996423168,127572488,-1202716672,860880907,-1466281792,-956301305,9734,-2091455744,9790,1996443509,129014280,-1202716672,-1202716661,-1706033144,1981,-1710721281,65535,702544,1354773328,16777114,637978368,-352321280,-1895345636,-452467449,-452467449,-452467449,-452467449,973552135,-83368697,-443851259,442973,-2081649835,1448567532,-150929247,-28931624,-1929087233,1343682118,719258,74907392,1342177720,-1588543437,787939580,1178272000,-2096660484,64062,1689781620,855829248,-1070378816,97753680,1183645696,-1706027274,65535,57982987,-16620055,-375782282,-1996488694,95987782,-1868935168,1375731720,-26032,1183383552,-1468596310,-26032,1996423168,1354773416,-92864688,-1191414017,-256245727,-1706012160,2949,-1196919041,-1706033144,65535,-6664110,-16776961,28878966,-6664192,-16776961,-1207894474,-1924136955,1343673926,1342185656,577434,-29950208]},{"sector":12,"data":[440320,-1303999152,548950038,1637502976,-1962934262,-1952842682,-150929394,-1505326599,-1711520117,-770967049,1191117684,16556454,16385579,2108048955,16556298,16385579,-945404279,44102,-788464991,19924448,-371964279,1586168045,-1995994156,138269254,-385650176,-661978991,-1081351215,915079190,45154606,1996482259,10573480,-28966655,-1912703233,1344160837,-1704692225,2442,1080313227,19803895,1586229251,-1948003886,-2097146209,91488319,-338278771,-1303999229,1183437452,-1537832542,1453881087,1392408319,-1706012080,2453,162634320,1996423168,-1569259612,649882,787955712,-268238546,1453881087,-1912703233,1344169541,8828415,651418,-12195072,1469764214,-1996488698,1451863622,-1468596304,-1325322591,1356911363,16842913,1996488262,-1371108354,1375735301,-1371108528,1375735301,176069200,-1706033152,2692,-1697483009,1656,-2085861633,-1962748858,1178183238,-385647188,1048837896,1946157308,16556301,13633081,-1555561348,1996423376,186554884,-1202716672,-1957691369,-788475874,817857507,74844161,65781811,1342177720,736410,-25263360,-12878592,-1207894474,-1924136959,1343673926,1342185656,408218,-1468596480,-1325322591,1356911363,-1924087757,1343673926,383141517,-26032,-1706033152,65535,1996427243,-801701976,-92864768,-1092088176,74907392,-1700235521,2893,-1700104449,65535,-443850914,180829,-2081649835,2122386668,1946288394]},{"sector":13,"data":[9300227,-1727641973,16780939,100923895,1183383802,16556532,2113160761,13672820,1962165817,209125228,16777114,-163149568,-1928562945,1343682630,16777114,-159973632,13645567,-1862502657,4974606,-624897,1996485750,-401698564,1996423229,123771404,-1202716672,-1957691369,-472779682,19971971,855930376,-1207702592,-1706033151,65535,-1544272245,1996423376,-159973620,16777114,1575324416,503319234,1430622296,-1910575989,16425432,-16234967,-1070396810,138840912,16789239,108461904,16791295,-1174402632,1347551317,16777114,49120000,1562371467,445005,-2081649835,1448550124,-1962647925,1194006599,-96040682,58048523,-2097058583,1979647103,23324931,294787,-1897331852,-26112,104529920,1098121260,-2147197301,28836879,-526757888,-1207959541,-1706033151,862,2768515,-14912256,-16765898,-1207948234,-11533836,-16701386,-1711200714,65535,-1207948637,636026881,73304833,-971473013,34945,33968000,2897663,-2012888181,-1957683712,4457923,28856350,1352290304,1023410189,141885442,-956014965,-64441,-2130420085,-194969,-1962881815,2005599326,-2114780394,-2097116986,76350,1048774517,1946157094,-96040151,-1946270071,2139292766,1081474562,1141228427,-1873797632,191293454,1039943305,292945918,-369473909,2122514592,-780269318,-352319304,-58817585,-1962248705,1204225118,-335544572,73304942,-1979955573,166396487,-1962647925,1183384135]},{"sector":14,"data":[-59310084,1344194187,-1862371585,160557070,-1444657527,1265926144,-1202667469,-1202716661,-1957687275,1141179462,-397402624,37555806,-1960020736,1204225118,-134217980,76806,-16223224,244382838,-15975960,244382838,-1962154776,1204225118,872414722,-2146178112,-1954552474,1183515742,373752292,737822347,1600054342,-1034033781,-1957363710,741801964,13809664,45633566,-1202708991,-1706029008,1679,-1017256565,-2081649835,-1000996116,-1960441762,1979058999,-1933341899,1181122,-1014280110,1375734277,-1476216752,263625296,-259325952,-1207601856,988545023,106859350,-15697921,-1070395785,-26032,-1957298176,-2012936634,-11526656,-6683530,989855999,-747305914,638082756,1962950531,-1550166522,-1962934256,-1956772794,146955749,-326413056,1443556483,16139975,-28915968,-164429520,2097741443,-773944467,381649891,561250304,-472785269,1482635,4358019,-561310091,-1618222127,1207369750,1962934534,1860720135,-856996335,-2080481653,-1996292538,-28931273,-561295330,-2020875311,436535318,-1957683712,-1948003874,-1962928481,-523156921,96921680,-472785269,1482635,-784185461,-28966432,1183563755,19934718,-56362799,1958742784,104548366,125632762,1208024225,-1962870109,130547294,-1956773888,1438866917,-326898549,1187468818,-1962934018,1992558686,1149969924,172439810,-561311115,17299238,-385649408,-4717987,40299007,-1962385781,-422507913,637820612,-1993457525,1586231366,74877704]},{"sector":15,"data":[38046502,2131380025,-125926632,-15567872,563804278,-1996488687,1451880006,1975651312,1354773279,1342179512,1342189752,1347469355,-1962124824,2013202526,-401698814,-1561654714,653156036,637945739,1963476747,29092099,-1962385781,1468731975,239545108,-1995417829,1451883078,1926368252,1023768334,125173888,-2131605817,-1962480896,1183447622,-226589710,-1005751040,-1960382882,187041351,712312903,-1018113,1996484214,-227082488,1006500328,58061382,-1962870807,1204226142,-252,-207947658,-385875952,1586233191,209683208,-1958120192,-1715457037,-1995291511,1200165972,274172174,-1006352503,-2144932258,1946159999,-1933341919,1181122,-1014280110,1375734277,-1476216752,-26032,1589903360,126428910,1589910507,130492142,300613632,-1962385781,306482163,-1995156341,1468599879,140413712,-787724405,65065440,1452011078,9045488,-1980479863,2139354710,427098372,653549252,-1727903861,17325707,1460736583,71812884,-68616192,140413950,-1962129409,1589906503,1195058926,-1961135612,1988823134,1149970158,1418405382,306678024,-954968183,3143,1589907947,1200301812,1586206980,306678024,-1961601143,1204226142,-385875708,1586233010,373802760,1183514624,407341554,1191301675,274141454,653162180,637944971,956847243,91557975,1947092793,-295779315,105351974,138873638,1589931637,1065559790,638088192,-6670337,-1006632705,-1960382882,-1960442297,1589905495,1193879044,1461265930,1816588]},{"sector":16,"data":[43771984,2056933458,-1962934268,1452011078,1181168,-6664110,-1962934017,2005600350,172490506,1589962449,1086793220,-16777170,144373878,-16777199,781908086,-1962934270,183238214,-1694992641,2552,-1956711957,113401317,-326413056,1460464771,74907478,637850,-96040704,872175241,-1002837002,-561251714,-1960385583,1183395393,1958743038,748310566,-1996488685,1451882054,1181176,-677752750,-16777200,-1801781642,-16777199,-1499791754,1174405137,653942468,2097313593,650130366,638338953,-1207285879,-397410277,1347551709,1099674,-94452736,34570278,-1710983425,4928,653942468,67575,1996425844,284924420,317390848,-1207666945,1385758722,537049168,-26032,1599995904,-1034033781,-1957363710,49054700,956365985,125568582,1055637555,-1962520833,-472840610,19971971,-1947110648,-472840610,19957643,-2080487799,2113930366,-774337777,379554787,71731968,250283785,-771858805,379554787,71731968,-443873503,311901,-2081649835,-950661908,62534,17071745,-1959430896,2139293790,410784834,-1202667469,-1202716663,726667280,-397389632,-4716286,17361407,-1962385781,1207911031,-1947807422,1082721862,8972570,-2096603509,1962803839,41911062,-15698689,244318839,-1962509080,1204226142,-1946157566,436537414,-28931840,16139975,140413696,972441227,176046663,-1946263925,121177670,1586175349,1112538888,16154243,1204225397,-1962934264,1183055430,1183384318]},{"sector":17,"data":[-14750724,1183053382,-974454018,-2080612725,-1962738618,1183055478,76219134,1191118729,140413942,972441227,-528530873,-2096603509,1962936447,1115652943,-951487488,2631,804807,-1946973440,1200167492,105285896,-1986412493,1418269252,239569172,-1995417719,1200166983,71797014,-1710852353,5030,-1980217719,1381431894,-79697840,-1710852353,5061,17071745,-16354032,-352316410,336527108,112640,1575324510,1426065090,-326898549,861296398,-28931648,-1946401143,150897648,-561290371,-1081875503,1946157078,-1946209454,-1948003874,956307103,1132348031,-472785269,1482635,-523122805,1200347139,-163149542,248748624,1183383552,-195655182,653418180,638207883,17586059,1444019270,-159973378,1012634,-228670464,17299238,1174631680,-347628565,-62485590,1593726603,1575324511,-326412861,-1958477640,567084126,8438519,-164492684,-1205810560,567100417,-1034033781,-1957363710,-1957210388,2126775374,108446986,1583326451,-1034033781,1478361098,-1957345904,-661774612,1460726915,-801731754,105286400,1946159421,2506016,675088500,-385125376,189661476,-380600842,-1589247716,-264568580,300500341,1095681,-26032,-1073020928,189666941,-385647114,-561315588,-1081875503,1913127216,-219460062,16556358,243134523,-1958346261,-2082221602,134295743,909767799,58654972,956354537,1962987574,13035779,-1928825089,1343682118,1413018,-62485760,953241,-1946552575,-97109512]}],[{"sector":1,"data":[-1589739776,-956104454,897500731,-1710721281,2123,1358186121,13645567,-1862633729,-160176114,-1980467457,1442893878,-1862633729,-161224690,-16222465,-1600457610,-352321526,-97109726,184844032,-1996065281,-352257482,734432008,-89964345,-801732352,142016256,-865816,647628918,1342177290,1342183352,-472785269,956305569,1979789447,-339725564,112643,172333648,1996423168,112648,6600784,16396023,-66155623,-101234432,112720,374184528,1599995904,-1962742397,1297948645,503317706,1430622296,-1910575989,283935704,1996445271,-230257398,93999126,-1962934264,-1952843706,-150929394,-1578071047,-1991769860,1183579206,343304,-1073537673,-1476448621,-90106329,-62506752,117378430,1877672186,16400003,855995648,8710592,16387839,1048796651,1946157306,-97113618,-96566528,1266483200,16385735,1139474432,956365473,-747307962,1178322435,-1962377988,-89916346,19720960,-352257482,105286438,-1711509769,-150969159,1006144505,1946221118,-96564822,-1005786368,-703220203,219541525,-15332074,28838518,1689800704,-97585408,1317771520,1358559228,1342177720,16777114,112640,-310157474,535137026,113921373,-1873273344,-326412987,-2082959842,1187450604,-1962934030,133631070,594804737,-16615425,1996425846,108461832,16777114,-230258432,1946568251,-212959228,-230257792,-1962852119,2013203550,175570690,-16222465,-6683018,-1996488449,-1072958906,48825214,-1982269695]},{"sector":2,"data":[-1072958906,1586170740,-1983892724,1200162375,207522564,-1929218049,1343681606,16777114,19702528,19662583,259260431,-15966581,28836471,1587171328,-150994919,268512262,-2147191786,-142544050,76806,-1706396664,6028,-1980086647,1586232406,71797516,1946568459,-96040155,453265195,-771029417,92219260,1916442685,-212959200,207522688,1200209971,71796998,1586171883,-96040180,-1979951477,1468597319,738653958,1962999809,-13244157,720651914,636015076,1451884545,-1309267212,-2115316989,184549858,-196179262,123265,58048779,-1694560535,65535,-1980086647,1586232406,71797516,1946568459,-96040148,453265195,-771029417,-387382403,1023967230,57913288,-2130780439,-1954483378,-1070396322,-1996077175,-857144249,207522814,-1946532213,1200225366,106400004,-2080458007,-443874579,-900899553,1478361096,-1957345904,-661774612,1461906563,-16520362,1589904966,1065362950,116683808,1095763,3192912,-26032,-259325952,1962931773,-246482,-29534604,1024357631,611647487,1652422155,-352318529,1359619,1464909875,1343238328,-16222465,65537654,-1087313149,-387252202,-16222465,-1070397834,-26032,-259325952,696055307,1342193848,1342179512,1625242,-498693888,141934603,-1191919640,1793851391,-77469610,-941465973,-352321273,1556304,-1923701013,1343677510,16777114,142016256,-1928956161,1343677510,184603112,-1928039232,1343677510,16777114,1958742784,1425158]},{"sector":3,"data":[-1191217687,-1202716608,-1706033144,65535,199378569,-1952353088,509912,41388288,1200209971,71796998,1600045963,-1962742397,1297948645,503317706,1430622296,-1910575989,108954584,-2093845249,1962804862,108954412,-1960414208,133629534,175374337,-1711114241,3519,1586170859,41418502,16777114,108461824,16777114,49120000,1562371467,182861,1167087646,518818645,1586223246,17299206,-15043328,-1070398857,-26032,1586167808,41418502,1342179256,16777114,49120000,1562371467,182861,-2081649835,-950649620,51782,16008903,-163148544,1996443670,142016266,16777114,-193557760,-2131474689,1962997370,-193557516,16138950,-1946923265,1120334966,1136147190,-1924129280,1343682118,503333560,-867791536,683167766,-6664192,184549631,855995840,19982784,-1983101299,1452066374,-901331000,334168065,650534596,1965834112,130426375,-901316864,-993638657,-2144942498,-462094273,637820612,286148550,256362022,1333798419,1183645965,-968455732,-943171956,62534,-1006577943,-2144942498,913571903,200558219,1025078464,997457921,1946157629,212327,71137908,-385649408,384499850,-3639553,-1226258826,200313600,-1006144266,-1993997218,1589903735,-968425530,4161574,-2048326795,-990909696,-2144942498,108293695,1312784422,-1070463883,1589908971,1065363142,637957231,1968127872,-352210940,-1006456830,-2010774434,-1091894201,-3639553,1592313462,200313600,-995134218]},{"sector":4,"data":[-2010774434,-1494547641,650534596,1966161792,-339725820,-1006456830,-2010774434,-1897200313,637820612,542663,1204233728,637534218,411591,1333798400,-2144991220,-384824241,1191182188,-901346316,2113160761,-14685949,1575324510,1426065602,-326898549,-28915966,384499712,-150992200,1183448686,126494462,3157400,-113151,1589904454,1065362948,-1948158720,-443810234,311901,-2081649835,-11109652,-16712138,1183648886,-1202710824,-1706033112,7033,16660223,-1928694017,1343653958,1342197944,571802,71731968,1946568203,-2081060068,32209134,3964998,-963904907,1996443678,74907398,1677722,741801728,-2008642304,1183666198,-11528488,865732726,1577058316,-1034033781,-1957363702,753697772,-1207666945,-1924136953,1343673414,1342187704,1829274,74907392,-1202667469,1344143618,1342185656,1834650,74907392,1342181816,503370424,2668624,459577936,1996423168,16955396,244338718,-1207933208,1344143618,-1070378978,1375784122,1347440720,1342203064,1347469363,1342469887,-26032,1183383552,-1070378756,-26032,1183383552,-1070378754,-1202696112,-1202715673,-1706030848,7272,872314623,1183666368,-1202710828,-1202715673,-1706032896,65535,-1946401141,46292453,-1873273344,-326412987,-2082959842,-1202322196,-1202716608,-1706033126,7880,-1070337909,2130753616,-1706012007,65535,-15842167,1996425846,108461832,16777114,205818112,-1962522997,1149831254,341084434]},{"sector":5,"data":[-1995815285,1183517252,373590278,-954706807,397380,-1593686841,71616256,-963968860,-6664162,184549631,855930304,1443490752,2067610,112640,49120094,1562371467,445005,1167087646,518818645,-326903666,108461864,1364122,-666466048,-632910512,-6664170,-16776961,1996424822,352033496,1183514624,-532282406,-1962868573,782492742,-804862207,-956301312,64006,1423360,1354771280,-1710852353,7644,-2081394968,-443874579,-900899553,-1957363710,1357677548,503337912,4962384,1253593118,-1924129280,1343664198,1342197944,1692570,1958742784,-1337553622,1538805782,-1706025472,1190,393592843,-1202667469,-1202716654,726667264,-397389632,28900758,855829248,1575324608,-326412861,-1593643901,1183383568,75400190,-1205177344,726663197,-1706012480,7686,427610635,138216831,856847872,263737536,817385472,-1070903280,1340624976,1685757,1354771280,511285840,279117824,2143292160,-25263354,-402426880,1048772678,2113929232,112645,279000299,-28952320,2122516085,594804740,961593395,1946161158,178181,28836843,817385472,-1070903280,-68661168,-804861956,-1207959552,-443809793,180829,-2115204267,1442974444,-34044217,347603456,-2037559296,1343684088,1148314,-125399808,-158955011,-129579011,2122514432,58460408,-1962874903,-1979844986,-1634993594,-2030043658,1065418230,-1946979072,-2130839906,57999423,-1962900247,-472778658,1490819,-1205701376]},{"sector":6,"data":[-1202716608,-1706032888,6253,-772252021,377981411,1975520000,-295770104,-336050433,-128021591,-1215568943,1150091286,-1957683610,519960198,522689104,-2037710848,1344208374,2035610,-2038134528,-96040192,-2070261730,-1996488695,1149894214,-28377244,507790477,-96040112,-1650831330,-956301285,-130492,17188039,-1959662848,-472778658,1490819,-1960479744,-472778658,1482635,4358019,1586172020,-1948003848,-956295521,1607,1996424939,1566968,-34169205,-34175233,1962950528,-10163965,-1956712725,1438866917,1586228363,-1847036,-1711270217,6453,-788242805,377997283,-1962934272,46292453,-326413056,1450503299,-24906189,-1956152056,-2082221602,5823,-561286028,-1618222127,2139291670,1718878274,16660223,1342178488,378291853,5290064,535796304,922681344,-1070399234,-565801648,548950038,-711307264,-16777189,-1929368522,1343654982,383665805,71732048,-1706024692,7091,1946157373,-373279995,-164429637,2080964227,11266307,-472785269,1490819,1174893824,-381228309,-561250440,-1618222127,2139291670,763232258,-472785269,1482635,-1878886401,-118167538,-472785269,1482635,-1878886401,-124262386,-472785269,1482635,-33404985,-773944321,379554787,105379584,276037634,-472785269,1482635,-1710721025,4443,-472785269,1490819,-1953205248,-1948003874,-2097146209,1946174079,-773944442,379554787,440896256,-1946270071,-1846818,1342183095,1343226552]},{"sector":7,"data":[-960024,1290337910,-389944336,28896511,-443851264,180829,0,0,1942235995,920188696,656953,959844215,1979714566,212022788,-2061568,-1140870941,-1329856848,-1705993987,65535,16777114,1958742784,1845937963,-1996488704,1459642382,1381172822,855713768,-6664000,1459618047,16777114,1958742784,-553981945,27322448,-850591816,-1957313759,-18196,-1957313699,-18196,-1957313699,1354771436,-1710983425,8567,-1017256565,-1192457387,-1957691328,1861682246,-1365618682,-1962934239,1438866917,1996483723,108461828,1342193848,16777114,1575324416,-326412861,-1710983425,8637,-1017256565,736922453,1996443840,478976516,-443875328,-1957313699,74907628,1896858,1575324416,-326412861,-1710983425,8742,-1017256565,-2081649835,-1070923028,71732048,-1706012007,65535,-1929492855,735087578,1575324608,-326412861,-16585597,1671038582,-1996488687,-628294074,-1070870389,-1017256565,-1275051,463079030,-1962934270,1438866917,1996483723,-26108,-1073020928,28837236,721611520,1575324608,-326412861,1347469355,16777114,-402345728,-443875162,-1094991011,-990150400,1393062656,1130043391,-1007490237,-1207958341,567100416,-1024062862,-2147126144,1073779343,-1007912629,567095476,-1023380317,7210638,741772070,889239552,512303565,109838434,521011300,-1171980104,567091456,-1274115274,908256000,11929285,-617358708,-1306591434,-385649920,-986251703,-1946109434]},{"sector":8,"data":[244698,-1306591434,-1021372928,855643321,-1836583205,74711296,567099060,-1007492541,-387151019,1996423243,1042436,-1017256565,115600690,-657331503,1438907106,1122561163,-29235200,175432714,294528,1187382389,-987824636,-1207934442,567092480,-1274115297,-1157111040,520028162,1183514802,-850611196,12892961,12909441,-11335565,1128487703,-1144786197,-75431740,141754566,1528299347,-219462845,50354371,51107585,50358272,50604289,50358528,51666433,50358784,50571521,50359040,50430209,50359296,50424577,50359552,35477505,50394368,50435841,50360576,18941953,50331904,50438401,50360832,18964481,50332928,18976001,50333184,18979841,50333440,34120449,50332160,18992129,50334208,50385409,50363392,18998273,50335488,17938945,50335744,19005185,50336000,52430849,50331904,34117377,50333952,17908481,50336256,18909185,50336512,19011329,50336768,52506881,50332928,50629889,50333184,19022081,50338048,51118081,50334208,50599937,50334720,18950913,50339328,51843073,50335488,34112513,50339072,50584577,50337280,34163713,50340096,52187137,50370816,50818561,50371072,51725825,50371328,52181505,50371584,51717889,50371840,51686657,50340096,16815361,50344704,34105857,50343168,50528769,50341632,50533633,50341888,52178433,50342144]},{"sector":9,"data":[50380801,50342400,18712833,50346496,52206593,50375936,52210945,50376192,52419073,50376704,50878209,50377728,50627073,50345216,52224769,50346240,34102785,50348544,17661441,50350592,51102209,50347008,17912577,50351104,34252801,50349312,51734017,50347520,50868737,50348032,18423809,50352384,52237569,50348544,17672961,50352640,18373121,50352896,52243969,50349056,17668609,50353152,18254081,50353664,18717697,50353920,18806273,50354176,51909121,83937280,-14887168,50331904,17199105,50354432,51950849,83937536,-16741888,50332160,18809089,50354688,51943681,50383360,50871297,50350848,51830017,50383616,18943233,50354944,51818241,50384128,51981569,50384640,35463937,50355456,51997953,50386432,50578689,50353920,51836673,50386688,50338049,33576960,-14885888,33554688,-16741120,1828717056,1937208180,1835757164,0,5,0,0,0,0,0,0,0,0,0,1650524160,7632239,1769366884,7562595,1953656688,1879048307,1937011311,1929379840,1819242352,1996517989,1868852841,1845523319,111,0,0,0,0,0,0,0,0,0,0,0,0,-2122252288,65921]},{"sector":10,"data":[0,0,0,0,0,0,0,576716800,578822776,1953309388,1819506547,1668115310,257,4194304,524352,-1057030144,50331648,-1056964609,50331648,-1056964609,50331648,-1056964609,50331648,-1056964609,0,-1056964801,0,-1056964801,0,-1056964801,0,-1056964801,0,-1056964861,0,-1056964861,0,-1056964861,0,-1056964861,0,-1056964864,0,-1056964864,0,-1056964864,0,-1056964864,0,-1056964864,0,-1056964864,0,-1056964864,0,-1056964864,0,-1056964864,0,-1056964864,0,-1056964864,0,-1056964864,0,-1056964864,0,-1056964864,0,-1056964864,0,-1056964864,0,-1056964864,0,-1056964864,0,-1056964864,0,-1056964864,0,-1056964864,0,-1056964864,0,-1056964864,0,-1056964864,0,-1056964864,0,-1056964864,0,-1056964864,0,65280,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12582912]},{"sector":11,"data":[0,12583680,0,12583680,0,12583680,0,66847488,-1,66863040,-1,66863040,-1,134102976,-1,32736,0,0,0,0,0,0,0,251658240,1023410175,251658240,1023410175,251658240,1023410175,251658240,1023410175,251658240,1073741628,251658432,1073741628,251658432,1073741628,251658432,1073741628,251658432,16777215,251658240,16777215,251658240,16777215,251658240,16777215,251658240,-4,251658492,-4,251658492,-4,251658492,-4,251658492,-1,251658492,-1,251658492,-1,251658492,-1,251658492,1020261180,251658492,1020261180,251658492,1020261180,251658492,1020261180,251658492,-1,251658492,-1,251658492,-1,251658492,-1,251658492,1020261180,251658492,1020261180,251658492,1020261180,251658492,1020261180,251658492,-1,251658492,-1,251658492,-1,251658492,-1,252,0,0,0,0,0,0,0,-12648448,-1,-12583681,-1,-12583681,-1,-12583681,-1,1060961535,-1,1060912335,-1,1060912335,-1,1060912335,-1,-12632881,-1,-12583681,-1,-12583681,-1,-12583681,-1,64767]},{"sector":12,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1953300480,1769099280,1953067631,168296569,2003782656,753664,1751607624,1866698752,1869771886,29548,1632632852,6648693,1375737088,1836413797,101,394330112,1919243264,1634625901,1828742516,1937208180,1835757164,-2143289344,285218310,1258328064,0,327717,524356,131071,1300385794,1869767529,1952870259,1852397344,1937207140,589824,23,-65536,1342177283,1869632386,1919249519,0,9437198,-65528,1342308353,1869632386,1919249519,2490368,4194338,-65528,1342308353,1919243906,1852795251,808333600,83886129,-2080362752,-16774912,33554943,1866695248,1769109872,544499815,959520937,539768120,1919117645,1718580079,1866670196,3043442,989870336,234889216,16777472,-2142240000,27471,2004055149,1802398835,1802134381,1869632263,1919249519,544165398,1852404336,1936876916,1852793632,1952671086,825123941,1701998413,1634235424,1852776558,1919950949,1702129257,1868767346,1667591790,543450484,1948282740,1931502952,543518049,1953656688,1700009262,1852403058,543519841,1869574259,1869226092,572537442,1836213588,1952542313,1818304613,2019893356,1769239401,1881171822,1953393010,1651468832,1527332723,1937072464,979199077,1665227529,1702259060,1091058269]},{"sector":13,"data":[1953853282,657337902,1953724755,1696623973,1919906418,1634038304,1735289188,1869640480,1919249519,1835365408,1768300656,674129260,1852727619,1931506799,1819242352,1919905056,1752440933,840986209,1869226032,1881174882,1881174629,779383407,1631784960,1953459822,1769109280,1948280180,1326456943,1864397941,1634738278,544367984,388001391,1769366852,1847616867,1931506799,1667591269,543450484,455110255,1869574227,544367980,544432488,1852138850,1936615712,1819042164,791569509,544173908,2037277037,1919905824,1814066036,1702130537,1853169764,544367972,1919905883,542995316,1461743209,1227771465,1831749966,1953451551,1869505824,543713141,1802725732,1634759456,1948280163,1919950959,544501353,1953451546,1869505824,543713141,1869440365,1948285298,1919950959,510946921,776882519,541675081,1953394531,1936615777,1884496416,1701605231,1867398514,318778914,1953656656,1919705376,2036621669,1701867296,522205806,1868787273,1667592818,1868767348,1881173357,544502383,1953785203,543649385,237006447,1881173838,1953393010,1864397413,1225662574,1818326638,1881171049,980709999,32,0,1937009920,1852601207,1784900971]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[4217421,1,-65532,65535,0,0,64,0,0,0,0,0,0,0,0,64,279886,1966298,191455491,131078,268436056,81516,131072,262146,4194382,11272272,12583096,312,262144,0,0,0,1051066393,1051066624,68158519,69206273,-2147155964,3,75235328,-265289723,32769,75563008,-265289709,32770,76808192,-265289712,32771,-2147090432,3,77856768,-265289713,32769,78839808,-265289722,34817,79233024,-265289725,36864,0,1313429256,1094995023,80,524289,1114124,1162544640,1279610450,1229211395,1163089156,1162545234,1095713369,16925778,16963585,33951466,183040,100663546,26607617,116736,402,1667845424,1869836146,1461744742,1868852841,1327526775,1092641900,1768714352,1769234787,1394634351,1869639797,1293972594,1819632751,167772261,1279347012,1380992847,148303,1498698762,1346653783,21188434,1953300480,1819506547,1668115310,7959668,1458342741,1988885591,1962281738,2799910,1442986687,-6663849,-1912602369,-2144991162,32830,516164213,1586037312,138841094,-393185813,616445823,47104,-26032,983760896,272926978,1342178488,17050,37528320,1342180024,20890,37659392,856317068,2130753791,-1706010793]},{"sector":4,"data":[65535,856573065,205818304,-1157479239,146276384,508567040,-6663343,-1207959297,1149829120,407669782,-670939961,72125442,197831,-6662626,-1006632705,914949750,109838912,-1310195134,-365494489,-399048959,670033921,58048523,-402592023,-6681293,-1560280833,-1849753528,48640,-54869965,-1176816896,1443758180,1347573534,1364415315,1393972051,-26029,1151533056,12969984,1464926003,16777114,4629248,-1962887448,1252197446,-155176192,536934406,-1885273228,1930443776,974172162,-1274907680,717828880,1103923936,243917265,-108330632,-466425903,-523116335,1459714723,-2065114317,-150538752,108369152,-1157580824,861867936,2082376128,1962607361,1464881163,16777114,5629952,-1560064349,-1064435330,-372125813,856105144,-2136214529,-16594114,770179957,46972429,503380671,687978503,113189325,687978497,-645127731,31987396,-1342086469,457762944,4470527,16777114,-850611200,-1956749535,180510181,1975520000,-402083833,-521459026,1144425411,653034240,-26026,-125108224,1043791703,-26110,-594870272,-1705830825,65535,-6662314,-1962934017,1200305884,1876746,-1559786698,-998047718,-922827994,-855711606,-402435677,-768402877,-1206208536,178455030,34382594,4601483,855704249,-17472,1347440726,-6663853,-1342177025,1042675,183038640,-386879488,-1595408379,-1728991223,721428665,1358728161,1461080094,9149009,-1185415168,1347813632,1364219670]},{"sector":5,"data":[146330,549749504,4035,33685762,33619714,67073,83952641,335615233,369168897,16778497,117444612,318769152,167776512,-1912602624,-771375613,1896204293,67506438,-1290805242,1259314959,1980919314,755176453,-1458492143,-452538362,825358086,-1794976468,-1023299579,1167120524,518818645,1465309326,-1899459332,205949888,44409646,-1191020097,-1343094761,-1960026739,2126776910,242649862,1595408174,49120094,1562371467,707149,-1207959365,1048637536,1946157088,148301829,-823655445,-150538744,57971968,-1207812119,1048838129,1963000716,146270222,-385879368,-206042959,-1153569793,1048576000,1962934304,144893957,-1696070677,47880,-1946160200,184724238,1946331406,143321093,-2098723861,47880,-2130709832,158526,1978140277,32172296,-385323800,1049297380,1044054538,343147020,1954547190,205424911,1459565314,-1705552041,65535,1442977983,-6662370,-1560280833,-259325922,-1593549427,-1073020020,20777080,-402230016,-1192687159,-11119872,-1711129034,486,-1962439845,-1962928586,50338878,-550458,-150978397,-1547293721,1200292332,406227714,437160704,-1715076352,1050933751,736229120,32416710,-150583509,1220608984,-1174800487,237699097,-1053097922,-1047854466,184677027,-1957003584,103482439,-956104212,-550584,721440955,989872158,-1962770749,32547779,-1962918239,-1962917858,-754667056,-775386144,65065440,-774372415,-1946973213,-16650226,1442966582]},{"sector":6,"data":[1577068520,32245391,10536577,16784033,-16650746,1963061774,35176414,4470527,-6662370,-385875713,109969624,-1960443058,285114388,-25148558,1363047312,1049231155,109969908,-1960443058,285114388,-25162894,-150572144,-197228073,506920705,-1705552128,65535,922736631,1465319454,16777114,1309052416,344663555,-59448487,-1962863937,-2001918247,-432388347,796194785,1090589375,-293349077,1876226,100918263,1364197868,1980159,32257791,32388863,-1705814242,65535,-335114407,729869057,506920955,-331940096,-298385663,1398218241,336026,-197227776,1962871553,506891030,1465341440,318874,1456994048,-795191465,-1023410172,184917992,-1962183488,114424,-402340376,-1070397894,-41892967,-2145749505,544535289,1961949568,-235306789,32047989,-201752571,250151797,1364219403,-6662394,-1023409921,-946929869,113661702,-402587030,854066686,1778828806,-588774910,1191665418,-1040841237,-402426879,-1427438016,-1710552856,65535,1443274987,16777114,116786944,1971323494,-396950000,123669229,40503038,2013308648,96004306,-1962545944,1442858038,16777114,-9508608,-402648389,-1988558706,1948318080,1799258244,259260418,1962952936,1795606083,-1024983038,-2143687926,33712702,854069877,-2144504576,57937401,-385927959,552274581,40240886,-401967744,91553822,-351969816,540967146,141885440,34606729,34750089,-2130767895,141823481,1946417536,469336067]},{"sector":7,"data":[-18237,34750080,-1593609216,-1031011824,1027026664,175439871,185490664,-402426625,-571928009,1096702,1392922960,16777114,198740736,1482229723,540967107,57999360,-14319895,-1711258570,437,55457535,16777114,1354773248,16777114,-22877952,2113152,-972327680,16786182,-402435679,-1914104453,587646718,-6684672,-385875713,-92012928,-1959430655,-1341999330,-1732040112,678875195,-1957507029,2156752,-1205433766,-20958718,1357546436,1380977778,-402632518,1482293261,-1031541269,-1023118000,-1962756191,989989942,1946290742,238979898,-2147092990,1698312565,-1960020735,67056157,-1958018467,65876680,-650425910,-645201293,41289018,731383178,92816344,-1023255159,-1962875672,-1962800074,31779070,34223675,-756545163,204901120,-1980962046,39160069,34487945,34354825,13297859,4472459,16320246,-1911065328,855854598,131119579,-1977212748,46367495,-152969158,-320338571,-1104679938,1153827091,1304111359,1444828928,-26029,-268238848,2688199,1459688126,-6662626,-402652929,434700031,1358686989,-1974316717,-1966765360,217549542,204901248,171870978,1962359554,1963276614,58013754,1300903285,49905666,-788386445,1981414016,-2011581950,361431637,-2021662080,19982583,510981947,-1073085301,-432344200,-499454089,1291774834,-387519743,1499135782,-389851045,1499135781,1354979419,-397258413,1340604432,1532582403,1464910680,1593840872,178373464,201734914]},{"sector":8,"data":[-394824702,-76215114,-1308413464,571901441,1976699392,335988452,915144448,909836810,1366557196,1284183179,12642306,34223753,59522691,-152865791,376799426,2080439936,339098329,973501952,1979716918,3467469,-1031026453,-1054161270,-1979706205,872254145,-2132112695,1337098213,2236150,-167734552,-352312802,570869413,1048576000,1946157904,328067434,-628403886,-1315387510,-1948200188,-773795384,851510240,-774372353,915100643,-1705639868,65535,31103574,513998848,1475906304,37631743,252058,1515806208,-167765343,403057638,32416512,-167764831,369503202,32285440,-307224,-16759754,-1711268298,503,-1022155032,-2130393469,1912736510,32947715,-162311997,-352314842,-162312184,-150988250,-388461608,1381040292,855665384,1144425417,32292608,508776790,-1705566633,65535,-26026,-521666560,1532582418,1397801816,1448563281,-385964824,915079280,-940178886,-1962642320,-402506698,922681387,446300228,-1962934263,32291064,1448091223,16777114,1144454912,1419400960,-402653175,1600000667,1482381658,1745347,103540214,-291307496,1745153,-420034818,1574443,-1593707869,-503971812,1443371,-1593709405,-1023541220,103539446,-257753066,1397801729,922702417,345636932,1509949449,-1017619623,4470527,16777114,-26112,1465253888,16777114,-26112,-389873664,225706000,168688257,-1991376524,184686134,346145782,1958742786,15226660,-1950183935]},{"sector":9,"data":[637670966,-907521875,-771073536,-768405899,34870919,113351250,-768409600,-13384865,34881081,-1705613195,2617,35012233,-6662329,-1962934017,1962871800,-6662324,-1157627649,-259325886,-1706012077,361,-1554630685,-1706032620,65535,-929409198,117440522,-1910614183,872362970,866448374,106366719,-26025,-1709244416,65535,34879231,715930,172661248,-1070399488,-1070349415,40255107,-398232321,-164494741,-1014279597,-150994427,1088962786,1310625280,-1896379645,1526238146,1456180059,-52254035,-1425404488,-1597603490,-311080448,-391462861,1049296909,-1705573784,2805,381929355,117388063,-1705572777,65535,1119590851,1347572512,703642,1958742784,40411916,181377616,201064448,-396901422,-1746402965,-1014801663,136243206,1191309032,44508810,44578442,643287947,-1004403318,1202374154,-2124417566,-33513273,-1008110134,40255104,1345287423,1448235347,113641047,-973077848,2130880262,40240886,-1089964672,92996219,-956323864,-16620026,117446376,1499094623,-960276389,16935430,201407208,40280960,81782979,-1140854600,922681345,1397751878,16777114,1048625920,1946157674,1711732452,628391938,113661702,-964689240,-16603386,604137121,40280959,-402490433,12320588,-1001472,1610597352,15329287,41616955,-967808652,174086,44500678,-13047681,-1090356319,-1863843191,2076137472,9037826,-1191018053,-1749417329,508698114,-1705959853]},{"sector":10,"data":[65535,1459659240,43464447,43595519,43726591,43857663,16777114,42973440,-1705959849,65535,44566214,-1492728192,-2118385918,-19011582,-402490463,-1073020748,100863100,103481372,41878191,-770981837,369298044,371916826,226362029,404095824,-1308980480,91482116,1958742872,369492747,-1309111552,92727556,119471299,1713277867,1993882114,987268610,-2046658820,-1957647364,1575529411,-1416451328,5695576,1836547,100897451,-1012203494,4470411,164076118,-125108224,63409091,-1728047610,1842827,-930350089,100909196,-1952907240,-150988258,-1947694341,2097167553,-2147438590,41746684,1337524404,2126592536,985762306,-1979547931,-796146715,1847030,1443371,-154891630,721426990,-1845487610,2132708291,568873730,-1896117495,1493388806,41754251,-939599573,-678771714,-1950089422,1144455163,-1705566720,65535,-16757272,72220421,-1207941656,1347813377,16777114,1947110144,1876226,512485585,-338624486,-1169953839,401080942,1980664576,1876226,1569450193,39660294,1711659,41466443,508776534,1033523538,-1023410171,-11067818,-1711129546,65535,5160899,-6662378,369099007,490072071,1856177547,38112002,-1157467997,-2143027201,-92983751,1912863619,244483,40798151,-2017067008,-1996488080,-1711115234,65535,-779304306,68586278,1959869184,-2116383180,1124077630,-1591052976,993395310,1963093510,40935712,1879456566,-1592363774,993395318]},{"sector":11,"data":[1963095558,212236,-13234061,-352160250,378218170,-771031040,521582197,245699,503334376,922703697,1347551300,16777114,-1192195328,1347813377,16777114,-1701161472,-352321527,180222,29295595,1632256,1360941138,1144454999,-1706012160,65535,-6621045,-1023409921,40124041,235858619,-6676909,855638271,-661863479,-1957345904,-661774612,1988843350,205949710,1963003965,9550147,40124032,1443525889,-543534818,-352321529,1681817722,343212546,1442843320,-1705959856,65535,-26026,1609236480,1443012543,-6662370,503316735,-26025,1273692160,-1962864323,12061278,172127488,-2143390209,175374843,1946352512,133922821,-1014288523,40124032,-1206029055,-843382774,-12073470,8304928,1394495574,-26031,283639808,112665,-6664106,-1342177025,1583323393,-1962742397,1297948645,-2097149238,17009726,-108844172,858158354,114633,-2097111319,17009726,314251124,-153556992,-108851335,-2096466912,91491833,1963587971,516238863,1065366607,1964971520,-172627709,40582784,-385649664,1048576584,1963065962,-157161399,-880019061,2030200481,41656579,-8142594,-31493081,-32934712,637502408,-1057090444,-8141570,-32803800,-27102004,654279628,971529077,-1896313859,2045577922,-70064122,-385755671,-108792470,-1156680342,1407713298,-402228746,-1075248416,-1967092735,302434024,313524226,-1979700760,-401493772,-321912798,280032266,-805299736,183292140]},{"sector":12,"data":[16759028,4470527,1465012560,16777114,25749760,-1739435693,110991952,-461373440,1532582528,-2046709565,167930886,-1336052288,-1341330446,1795589633,1975519746,-1728860081,-1191112002,1344143392,-1705945570,610,1975519916,-12269829,-385971424,314507311,-1339954431,1778812416,1963080706,-2046775265,167930886,-1089112896,283640082,2105558784,-109764353,-1705566634,3855,1144425411,23247616,509009707,-828746921,-1023410169,326425355,309642043,-135792816,-137219085,-1948125199,868440264,-812923959,112835,1963260291,-1945729264,59679491,-1560146783,-941030902,66683648,-1902049163,59548419,243919595,-935656564,116843124,1972699383,-1194947359,243990608,-503906276,721596323,1220608967,-134613095,2109737961,700461826,-1962758394,-1560106210,1049297579,2145910806,370051583,1958951680,1829160466,12255234,23586816,40713856,-27167488,-1207800570,243990553,-503906278,721595811,1220608966,-134613095,2109737961,700461826,-1962758906,-1560106722,1049297577,870842392,403606015,-397193216,1482358798,544523067,-402652741,418054425,721594785,-1728047098,1718007,721426874,-1323922992,175499266,-1013333965,38,65576,16777253,16842791,196642,131105,16973859,16908324,118358016,-1391325506,-1053053658,-1073019532,650376565,180915117,-1960610332,-1962928098,-1962927562,-1593661162,1508377261,-391285760,413398528,113408,-91762125,512434155]},{"sector":13,"data":[915079190,378208284,-1348402517,3598338,-571962764,1483765,855638203,113106,4470411,1347638866,-26031,861536256,1381455561,1364283729,627866,-1348839936,-385875954,-1014038722,1962998144,-337761532,33128490,-570227339,-2138037781,74777337,401332267,1963194752,-338164988,-773944562,-2132868117,57935097,-1933328333,1962617799,2145061657,-339725564,2128231181,-1948611838,-151545405,-947067145,-1950091221,1375749142,861032787,1364415177,1975520080,-1705950975,65535,1219226,1776861952,134592512,1962420968,-1896314015,1310625474,871772931,168671442,-12800597,-1073085324,548405877,-2134704470,-311275270,-8552410,1325626656,-956369173,-25112014,-1193905639,-276624883,87631362,-947652492,-1070355710,-386430038,-1108805683,1472214007,-1706011056,65535,-402652738,2145973918,44022777,1394497107,893082,509041408,211065427,1465253888,647066,360170240,397678056,397744052,406132746,429463651,469637598,474422332,485498062,486612216,501751042,513089165,484777684,518332126,874323760,171868214,57933828,1170983219,518818645,-164407721,-1959862642,-2026617034,1442905142,1228311342,-29980876,521557504,46610175,-997568260,-1952915247,-1942060048,125108483,594816572,1478200040,46597831,113704960,713,1954596086,-953251575,2811906,-13761166,-1961642860,-402470642,-310173229,921013004,46597775,-561056205,16647823,16516751]},{"sector":14,"data":[1562337118,1397803853,1460032081,127723606,-92268172,-2146536429,259326970,-402414360,-336002106,60549127,-133981976,1510432606,-1017619623,1946160360,1501193,58138249,-1950098677,990082846,1946383646,186092292,-1014774821,1979416834,-1157402109,784532309,757401334,777352194,757401334,-397576956,-361487194,-1962933825,-1962707682,-2955021,58138171,76090228,58007177,199783759,-164707338,36513030,-164753548,70067462,1944586101,-335842268,4253899,1364219422,-26030,-1073020928,535501940,-1291833880,1347821057,-1705815471,65535,460636171,302152835,12060021,505531724,-26026,1444806656,16777114,-1007285504,-768358093,1328989230,1015031348,-1190759424,129630463,58310145,-389824461,-397409605,-1017642900,1108801601,-482142480,384517142,1243002952,1783306037,381183511,1847004013,-42788941,386168086,117440512,67698433,-16449032,1895303040,503351304,-132185864,49815556,570882081,-131923464,66593797,671610917,-1893138289,546253376,744525611,-1892872049,814689872,-9400529,-164707702,70067462,-796260491,567084724,45465283,456926463,80155252,154932734,-873921675,-1020884480,38922498,370738375,1968913603,755288037,46120470,45954697,1223,-1122071613,1966816258,-75414766,57803459,-1996307781,-972899042,1019412487,1007645232,738948921,-1274575312,15005194,1027392263,1060961140,2109732724,63406869,4030510,942599028]},{"sector":15,"data":[-1141738235,394920639,-896797134,24496395,-33241279,1711222293,1948727297,-502857724,-1222734856,714754,55320201,55576262,-947207423,-754667112,-775386144,65065440,67056321,-1008479784,1998190976,24087066,41217290,1336987134,41347130,-846796662,-779366914,-1023016983,243976499,-914357577,-1193675016,-1212461311,-1197544702,-152370945,-1156054600,-1846869320,-352256072,45588982,-1023231581,45684363,-1962554391,721599758,126501323,362987075,771999363,1962884224,70790673,-1959857547,102760772,638059203,-555613501,1976237763,-1223259375,-28331518,858488526,5236937,-889314069,-919401867,855654888,92203474,45551243,-973158094,1931083136,2943007,-889316629,378210933,-292945225,350996786,141937406,45551243,82561330,45551243,1337128330,855641832,91154880,-401059910,2129199107,-1019311611,-32766,109972597,-1977220274,-2146500290,-1010597913,1392151491,46478987,527824395,119428870,-2046787399,-1174189266,233308875,-1106813182,-1073085749,-922876556,-2147267678,108337724,436586022,-1431564309,58002748,1007289542,1978916874,-401952761,-164428857,46478985,734497626,367576002,67954688,-303561867,-231216900,-2014837387,-1946979076,-164707390,70067462,904460148,45588976,871659753,-1070378816,46401158,192266250,184535016,-2012973632,1526907942,309985034,175423499,175440700,-402433560,117310010,-1262288183,45596415,1735855420,1048780402]},{"sector":16,"data":[1946157767,-67180532,780863347,-756481337,-1962636293,-1979666216,8776184,611650108,-989985653,1914305664,8710403,-150974277,7203035,45164090,117311346,-1427569999,-273225472,225773628,-1073085301,-922872716,-352320837,1963408462,3192842,-26032,-960299008,177158,-990719512,-2147267522,108331004,-1417681792,1202324203,55328393,-402652742,-1214124548,1019280898,-1340575152,-2134573568,259135996,-1207953944,1354438656,702796032,-1560064994,113640119,-1023343792,11862448,109975734,-1977220274,-401669826,-2135363911,10534407,1877540659,-1899459598,503533086,-2132309497,-561283100,-150737967,-880040461,-1410129744,-2084364522,17009726,99104372,-1579469841,100728858,-654901224,4470411,1397773142,-1705815213,4777,313498198,29032448,112640,922702678,-1706033128,4901,-1961434173,479062258,440183846,1443236724,-62003119,-502833575,-1010725908,1396395328,1027423804,1381124927,438714689,464001834,448994216,447224728,459545391,458890037,456792890,-397075537,48766027,-1950130944,-940405766,181510,851544832,1958742765,-1965345864,1992506076,947922438,855798797,1255181275,-1576880224,-1084882245,113640139,-1224736068,-402606592,171704761,-1293417611,1946565633,1946172665,1954495545,1946696748,1947024424,1946827849,1947941985,1945254499,1191544858,1676199678,-1136754687,-831193086,-898368710,-339214778,-1335825467,22931463,106413291,-1946063640]},{"sector":17,"data":[-1178497335,-1262551026,-777063911,132746209,-1493225889,92805570,1593916136,-876689666,1372490242,-1017600781,686296496,-385175551,-202899165,-8459777,417881264,-404201983,1364414719,243976499,652739259,1482381820,184502761,-401574666,92930126,124985404,343148860,-2147466008,179262,-16119947,-805436556,-12654258,-829796521,-1286397776,974054151,-2146994683,158599485,-498086914,-1155650830,48114178,132219083,1952406524,518342,-1075053598,-1336946946,10872840,-1595400016,-385306624,11534491,-1962993943,-338744629,3598343,28377835,45876934,1962031616,1962621458,-2001983986,1676166917,-20447744,-370810170,-80019764,-939591308,-20780730,50333672,-369556751,1793654456,1962949632,6547462,-1970267413,1959733963,276056339,1207864151,1969204978,47314439,-1009833269,-24188579,686309552,-396927232,-1973485844,-16324130,45881078,-1325500439,-23992038,225708348,158539836,-396447664,72876035,1364414528,106387026,46608011,133830632,1499094623,1405311067,1465274961,-953251066,-393759742,1048640587,1946157769,-58267389,119158504,1499094623,468239195,1968328704,-1270972404,91488258,-352266520,-66131965,45352646,-1017619967,46405258,326488586,1978547176,-125310962,-1628960395,-1326352904,-1341986048,-1010824449,1962925544,-70129659,-1950091541,55813057,-1979681560,-389707064,-527826835,1369686410,953889539,1946166046,1393462109,1926052355,-20698539]}],[{"sector":1,"data":[922720448,-11337660,1342184502,16777114,1394510592,1927232003,1745209,2303544,653668468,103482040,-617414632,55713418,480368643,-1222183424,369502978,-1705816064,65535,4470527,16777114,1342621184,616759299,438760975,-166808832,-25115661,-2147257831,-628418066,45553287,989443816,1946335286,116797149,1946430757,-344266486,-1962716255,-1023232234,1397838342,47310928,-410991677,1976109695,1341816888,1337078642,1981349504,169391618,-401508928,1642654856,1309052416,-1960791293,-1012141117,-1276461848,1357117008,1577077736,-422457813,-102121077,1975519995,-1873286397,1381061456,-352065451,1459691240,-315431434,-523124477,-796133237,-167751496,65065443,1489931216,-1158509741,-756547504,-320316160,1516108800,-380085415,-25105425,-1241353703,5290008,-523115018,1354299531,717684224,-1947797771,-397032504,417917956,1309052416,-1960791293,2145681603,-880027253,-100422669,1576498509,5290179,-162402165,65876709,-1948200511,-1031120392,-1057046230,-772789352,718703334,851640021,-1947563018,-1010267178,176154496,-2146077239,275927290,-25145166,-1241352680,1975519768,-15210233,-1770733558,1381061456,-364648363,1459642088,-164436234,-523124221,-796133237,-167751496,736154083,-829686280,-225750184,-150974278,1042650,-385971363,1576796199,1482381658,518726377,55451275,-1014047858,-645143855,1465305995,1583326707,-100404733,535917901,1472957379,56601587,-176861702]},{"sector":2,"data":[-1276890429,-1974430944,-1732171070,-1963947200,-1731908922,736660288,1599123691,1279182019,93005315,-805731901,1008169479,-2095876832,177982,-1070396299,1337641267,-369391080,183041641,-2132571648,-1410105372,-991415319,-1962718146,65720791,-789937711,721581575,-1009677366,-1426069272,-369302969,110028820,-1070398642,-1221132349,-18644990,-388906101,-218738510,-2013087582,-1962756314,-1896117295,1124290054,2133295142,-2114395581,1913114874,1979648786,1144454926,1465341696,239770,-402068736,113698764,-1895759024,-1023232250,-208976413,-225778038,-804265344,-789655314,-1126162,1342355254,1493011432,91602954,-352307480,1976106512,3008517,-922827942,333974901,-1224306944,1342621186,-20774653,-402426424,-1017511934,639021800,1364592301,1509483240,-253622434,379709635,1443277862,-790081455,1582913784,-1007754745,1329877837,1229979731,1162674246,1498566477,1297040128,1230258512,4541506,1296912195,776228417,5066563,1397575491,1027818832,1347241300,-326412995,12643457,-1594075306,1183318263,16359678,-1577236856,1183383570,13605626,1183383552,-1547684872,-1633483882,60990211,-15960321,127535734,-1962934258,-1275049954,-1960719024,1183319110,1954588927,12773635,591298606,1014300717,369522373,23248647,-1197103707,-1934950334,-1070355504,2126818219,97118218,775780980,-2127727261,1970106362,176079911,638250728,1230454145,-2128190859,776864381,-1665639819,-1706029537,65535]},{"sector":3,"data":[-1070346101,753653902,1970286141,1778024710,373126246,1891011871,1073789183,-15960321,1444809334,-26032,-1958739968,494142020,-8874355,503407288,-1706027438,65535,1912619069,84470019,1946159933,84142339,1996431126,175570700,185067752,-1964608320,101252678,-876936969,-12615678,130483317,-106951424,457041920,-639040653,176079873,-1006298392,775752318,-2128120464,1969646074,-1155590623,2139095118,225720833,-2147120346,91568892,-1996469061,207522823,-1005953399,-387446146,-385649660,548929665,-148471808,-207360256,15835904,8449153,-57997546,-1422974792,-1423940680,-1274382651,1008848176,-2146209021,1966735740,-2018792190,-402186498,-142145053,-1431566570,-92983748,-12204506,106873888,41403686,1204233798,637717250,369383308,-2117301497,721453249,-1952123953,46972916,2142838550,-2119896320,-402620220,635963123,207522827,-16091511,1996426358,537369098,521535488,-2147438402,1232339004,-401965372,1460013439,-1098053866,2088828792,158611969,567089588,984891652,178957483,-1191545408,642723676,1962886456,1698178567,-1442745089,-1431560354,-92946422,-1769136362,12124024,1931595069,1891011874,-155175937,1954611014,671135747,-15960321,1444285046,546740816,-12779520,-1995541249,-1191219578,567100416,1954595574,178182,-989818135,-1058535818,1585891077,369099007,2013471,-9527669,-12544371,567099316,1491796851,1981840,-2037707147,1295908672,1024750682]},{"sector":4,"data":[259280218,-2037792717,-789053622,-11762039,-1962853655,-1308670842,736154373,-1979758458,-151033210,1946353478,108971080,-1996125402,654269574,-1996339829,-335582074,145788995,-150538698,41156864,-466482256,1855884112,-851528449,521558049,-2130753802,-1410854796,-12126711,906458240,2098887,-488046591,55240706,-1640249228,-1032650902,-9664887,-12020085,-754667182,212949218,-930354989,-9527669,-851312456,1788775201,16482815,-1157402096,-1641476128,-1319895190,-1948003580,1855884235,1553895167,1372730367,567099316,1539849049,-1644098699,-1098645668,1962999658,1821281224,1317440511,-1983839233,-1946196858,-1979756410,-989896058,-1979755386,-1929419130,-1983839296,872376454,1486261193,1855884287,1107343615,57876941,-1946206743,1392461462,-12544371,-1962926919,385838750,-851463137,-462267871,-1929377863,-1946206018,201288886,-385649198,-986316657,64523293,-1948741946,-1983511801,80184071,-337321398,-12126526,-989170686,-1985149322,-335586170,39774233,-639040651,283870206,268499841,-1014298509,-523041615,-4717589,-1635036929,-919339154,12112267,-1960719038,1509912222,-10707314,-1269706189,1579273535,58050107,-151085079,1963130694,1552321312,1060351,-9927031,-10058041,-1991376640,-1979751754,-1895865210,313304,1855884032,-851528449,-12126687,-385649662,-1634860678,1183776606,512501496,503709766,-16222465,-1224800650,-6619296,1342177535,-1544534389,1183514696,4891634]},{"sector":5,"data":[1946257384,-196703482,905981091,-1560276319,-2135424956,697125,790156,-1030827469,8954662,-1978758106,8436224,567089844,871646862,108447231,-164422514,613067436,-126500853,112804,2025229739,-1407248641,1975519914,1190549754,578028031,-10307899,637959876,1309695372,639404366,-988908151,654272134,638868876,-384678519,521535698,135522384,-1962222616,-1895866722,-850348861,1183732513,-161575948,-850742197,512439841,-75300623,-1962641921,-1258332002,1528941896,238852691,-1098186752,-1903427742,-1232339100,-1769210008,-661717146,1376671835,-2095688379,646516460,-611450878,891598928,109846989,512294932,-1906835438,-100657658,806784038,646522368,-2094661586,402665006,5117580,4990601,-410267250,1443307259,-874826926,1192674606,624932916,-291888691,-1912602593,-1260876864,639749456,4589198,378414842,-1960443826,-83866586,521061507,-998027939,259254276,-1543879029,1256718354,179890183,385875896,1183469599,16229118,-1560459638,1183514873,1221626,-1258791285,-1205744304,515571857,1144454912,1397759488,1117082,1583306752,-1034033781,-1004666870,1156057726,-1105261051,196681656,531034880,-4588349,-222285057,1166747310,550273275,-44725466,539019905,1969368637,1643806980,521585524,-1476331616,-1474005867,-385649663,1206386956,-166563061,1971388230,-1009044733,-402652744,1541998151,112191707,-401880600,451413479,-1309439227,-216626426,-1948069120,201280158]},{"sector":6,"data":[51016923,1006594718,-1962773549,15835603,-1635000109,512360268,-75300623,51279103,-1979749730,989917470,-1962772776,135838659,66477571,50566686,50568734,50569758,198706131,-1962773056,1943682014,-1982166270,-788466922,13009390,1927166728,-91532531,134279041,1527686632,-622315149,990438161,1912664854,-388330750,192086361,15932987,1323849842,-162303487,335607558,-2125458059,-2088763154,1085866207,1448562688,327981649,-1957167104,-2081883554,76736525,-1930404215,-1907821986,1183400128,-163183628,107302,-10582391,-1996484603,654269574,204427,-1980342741,201285790,1190577115,276070655,757243950,587598382,101330477,57945380,-1698440397,65535,-193675253,2433690,-1900006656,-1960427326,184549398,1022653906,-2082638078,33573438,-68626828,-166956279,1954611014,112843,-1191267095,314468352,209125121,369784575,580538454,1073741858,-380107659,-1952776694,-1912602587,109979330,-1960443882,771817534,-1423103583,757834030,16097707,16359595,-1105258838,1085866266,-979045632,1959069302,8435970,-1527514741,2098887,1290272769,1354773252,-26032,1541996544,186420223,-1911917093,-1960380346,-1996477410,870026780,-1396100106,188818570,385381824,2025229599,172076287,-2080737856,-372174143,-372119087,-511645231,-1992211970,1405351502,-208993103,-959186037,-427702317,-410910736,1085865999,1448562976,746906,-1072997632,-628423819,-843070471,-12204542]},{"sector":7,"data":[651899680,1191545004,-143278070,-1406738805,158646282,-160101828,-12270042,-400652032,-368669695,46906113,1124075462,1948270467,1065370374,-956664576,-343864057,512230092,1438843595,-326898549,-1604889086,1183318263,-1895380993,-956366848,536934406,16058055,-1070399481,-1577013086,-106823433,531021568,-956157976,872477446,15835904,-1379942349,35579935,91602955,16189126,108461968,-1710983425,8626,-402358588,-1849818569,-1948349696,92939983,1179059336,74788412,-812917109,-311050230,1968193408,25133328,158680649,-108268661,-349699911,508646206,9551367,-1409265985,1975519914,-18182,-402615873,1583284670,1962934077,-150551012,20777216,-1559268352,-240975629,-150551040,1153826816,837353727,-976669951,96928854,1170688336,-1207941630,567098624,-1995142346,1418409493,39160066,259202838,1229980871,1174553799,9551616,-1962866200,1047871704,-402358588,-1250624425,1970286141,1778024710,774272102,757284480,-1609075456,1183187191,16229119,-2082152728,225837823,-1560328566,1153827063,-1041694465,-373280000,-919404354,45666867,186764610,1023768018,57803490,-1174363159,-104923037,112896,-1174333976,-239140832,309504,-1174337048,1321140260,4176128,-402588184,1706688778,11583232,-402636615,-68681490,47038208,16678272,-1514528651,4241664,-2147427864,108347197,-113210,1170607339,-672653057,887640832,-407217154,9420544,-402652487,-306577226]},{"sector":8,"data":[16105216,-402652487,1874460842,16236289,-402652487,-140509026,-1963973632,-2147419866,-1005973532,-1174341726,-1849753598,2013440,-402619928,1051984014,28320205,-443851169,311901,536920567,-397342092,1029242919,1299578879,-2131984047,517769984,1364399703,2599834,-2134605568,-12756736,-147687937,1965031617,508974892,5892103,118380294,-399005761,526254159,-1073042772,521075317,-1204312134,567098624,57876246,1593835448,521061215,236954299,1347886675,16777114,-1021372928,-1194773679,567099904,-1260942503,-1021194945,-117242082,548425537,-961612803,-67108283,-1070400317,-1946157127,1101984479,1339684673,309649211,-12219866,175397948,108277564,41171516,1405348331,1394606267,1570394194,1526726696,868466699,-1705815077,65535,-2097148155,78708946,-892090157,-2146442112,-661917466,-1312564725,-1946973436,-741878789,-253328954,266830335,-1960393984,1308624950,-72063,-2130550899,-1912602909,-31128505,-958492929,1509949446,67271,111411199,137791744,50775808,503316736,-968828786,1291845638,401033,538249,-936653173,200329,-958689720,1291845638,67271,512557055,144900102,734563072,243878347,1126039555,-617358450,-956151809,136775,50612167,105352960,1074284431,2138563,192266251,-1107295048,1541935168,-1715457280,-1085058877,92995760,695517194,1966800000,740297744,-1261401503,-2145268466,1946157693,-1260942572,1931595067,-12126708]},{"sector":9,"data":[-1207536512,-689438717,-1017619463,539984,1153370997,3194370,-352309528,2025851658,178179,1476395752,3194563,5290832,-57941205,373131318,1398216272,1096858,387072,1481688195,9550275,374390835,1448154711,16777114,-994065664,572959,1946160872,-1105261051,-1077731400,96346060,666343936,-661782528,2891406,-829749490,1464989235,1499440883,179047540,-2131003968,-294322116,868469003,16228544,-2130753802,-989986188,1313429443,1094995023,1380396624,66,0,0,1048587776,-134206173,1838822004,-1912602585,-1948807976,71187444,-385649408,-1896218134,-1962933226,-83885530,-981209973,-672653808,646520577,-1896218622,-68777001,516159939,932859986,-1912602579,-1940236072,71186903,-1960676352,378469108,646643716,-1946484734,281379820,1474825872,36080102,-678495744,536602251,-401698621,-1021319610,61259347,846577675,116787939,1948254455,886938371,16189174,777418133,757481088,-397511424,57933966,-1912577560,-1946152442,104408792,913571840,249772011,16189174,856126496,-1678711104,116794589,1972699383,302419488,651725824,1593,-2144463499,2958910,1273498485,-402426880,-555220953,1540053760,67845763,-1995737856,-1711011042,11490,-389293429,376700970,267110707,1946165736,67565069,108266244,-402128711,1642332192,109502602,-461372412,167978236,-1016994108,-946929869,574524198,-499238144,568640257,15401228]},{"sector":10,"data":[-1047911962,15417574,1088865674,2116297188,568721643,-436096829,-1342117054,-1019025920,-1464090573,1393446957,16777114,-1145031936,240129004,-26029,1891303424,-1898279935,-485520422,41389007,855932868,-2082959680,-1510799165,-13374997,-1705552041,11929,-1705552041,11942,24165372,-628172148,-1595732085,-946929869,-989692021,-1014823817,-1510737400,-35132421,24165371,-628172148,769855371,-946929869,-989692021,-1047853961,65065288,-2081422344,-1477244733,-1946492812,-2027552188,1149829701,-204217598,-336562777,-1006830899,-986818730,-1976284362,918892036,67777615,1979260694,135456866,-402649154,1399980124,59508423,11534337,587630126,-386248659,485031825,-20715265,57141499,771952872,757335806,3025050,-628404224,567103668,1526740712,567103668,604962350,25880621,-23009030,-67150616,597831256,1228333,-402651160,1610090441,113558366,-1031011430,60294798,-1494614221,1381061377,1038636550,-1942060059,-160169725,1499072350,521585499,-1962695517,-1962916810,-167753154,-1794923514,-2144456843,2958142,-30518923,-2144525818,238910,1465279092,960922,-2103814656,-402653159,1558773683,-706222074,-352146200,1048587844,1962945827,180002,-40216746,956301359,1962953278,117321234,-1998050012,251539199,954740004,-387026431,96075996,112900,1085593995,-1070390835,939756707,1946395910,-30087165,-854851400,-155176159,-2147419898,-1834810508,-116984319]},{"sector":11,"data":[57950208,-1023306589,-1532813546,-1899416829,-1844561471,638153985,67112587,26349193,26492547,638153984,67243659,26480265,-2146934040,238910,434635636,-1543047426,192255235,-402509848,-1603010525,-388573463,57999387,-393206549,-1070399456,55445127,108314635,176593488,-739704832,-1522630448,91488259,2098886,-30489855,1965892366,31713324,16320246,-1106742000,-963969015,-402628376,-1070399107,771985571,757335608,-2027025547,1345136902,3200666,-30489856,774710022,757284480,-397839103,-6684225,-402652929,521538254,-1962833176,-486303730,32040969,-1191048728,-1705967615,65535,-1962933314,-486305778,-1845050341,-1899852797,788476865,757544585,689868334,520039981,521547047,16359619,1930078952,-1945712886,-402652925,-1007027466,959365171,1965893894,59810787,-2127751750,-1962901268,671135948,1360417294,718379600,-998178816,-12779392,1114962431,-768358093,-851311944,1379365409,-106436528,1515778187,774599929,757675657,-105846701,723421486,-919381203,12112435,1914817858,-561111535,872415161,-851462958,-851528671,-1329389791,-150538751,578065664,1929668328,271629832,-335900184,67221523,-8388421,1342194742,-1705815213,4221,-1013333965,-1874951344,544538627,477431976,28836520,1073837056,-402652994,-1834746075,-1810462461,-113448957,60169865,1961101912,1964288049,-1740733651,645201923,-1559956504,-173997150,1064192,1912603064,213794817]},{"sector":12,"data":[-17831936,-1996252509,-402416618,512358662,784532382,757466878,16777114,-26112,-2144468992,2957886,585630580,251538944,-806867674,-2013318400,-2096888258,-764280321,163055223,-102635264,67647115,-388532759,1743257670,116796928,1963011365,105637897,621707310,-1094516435,1048772614,1946157968,-25171956,-30537749,1965892110,2811930,-402633752,-164757396,19735814,1055394164,645934598,-1006752475,621213230,158663725,772242152,757403264,-164707580,70067462,-1259861644,645934599,-1006949083,621213230,158663213,772156136,757403264,-164707582,36513030,854067572,645934598,-1006818011,621213230,158664749,772181992,757403264,-164707576,137176326,-1746400908,645934598,-1007211227,59772555,-1047603741,34507558,-942873856,263686,915088896,1951268864,77669965,512435712,-1960443898,637536270,661131,-2097148737,58000126,1342181567,106058067,-26025,-1073020928,-125087884,-1107100029,997523458,59770510,922691159,-14286836,-1711272394,65535,-1047845397,-679876544,-1030871180,512686219,46007184,-930370304,-970545933,1390936069,-683480873,-1996488258,-1996224458,-352057794,101121796,-1878618620,113714691,2,796498627,-628424704,567103668,-151081752,-1794923514,-1986393484,-1711275982,12942,1071271657,0,0,0,0,1258291200,1162760773,76]},{"sector":13,"data":[0,0,0,0,0,0,0,0,0,0,0,-1912597853,378283712,-1993998336,-1962933730,117319384,48758792,637920004,263934,-2097036413,237118,-31060620,-1996487418,50567198,-2096914914,235070,-31060620,-1996487162,50565150,-2096916962,238142,-31060620,-1996486906,50569246,1208197662,1355006094,179280464,-1962475520,-54512680,-770965709,12128372,-1934888064,12681665,1254198800,-880022805,-1933333773,302419651,734039040,-1547684904,-1557790702,942014464,1946158342,60334851,117848102,-1560054784,942015392,1946158598,-2144991719,16779326,988286071,1448543990,655268432,132644864,-31062018,1962936334,429524486,-1023410127,1514045486,-143507148,1912641000,762288882,-617414656,-1030818253,-1960390260,989856790,-1908575023,272531930,1968194304,302943027,-1909595392,953305,990634752,-2145684022,1086,-661908364,1087934024,204347,512427635,-259325949,244045966,-773128190,1477414,1976699648,-101315667,-561107084,695394107,47900755,1976699739,1925397252,2001692,1960512256,10676229,922685298,-661913592,1493101800,-1946154846,-1021372712,-150538504,141889536,16320246,-117345088,1048786627,1946158091,1364414711,106387026,-400615906,1048629792,1962934307,-558438395,417920235,-123475968,920335355,67837575,567103668,1583286047,1482381658,168230595,303992324]},{"sector":14,"data":[2001664,1003523072,186545347,-402098981,95944744,-1944292864,137822163,8054784,565848,1912605368,34507530,-1912282368,382659545,168754719,-561200380,-1101799885,1810381824,-398412800,1935343624,6154476,-2095135751,1962541051,508776511,3474074,-1946514688,-1185391632,-15994880,-247789963,-829750669,-850341325,1489058593,-1944881671,12747226,735743503,14648305,-687090037,-1264790155,-1658729154,-561200353,-1101799885,199769344,-398478336,1918631848,1090567732,118380318,-1707177170,309556,254067595,-777371388,-773074453,-487861781,-1172369681,-919391142,567133835,-4717709,1608027135,-1590770913,251999299,-754667264,244040680,249758624,-1909538418,-399227618,-1070399450,-1950141491,-486301682,786009849,876938894,855642600,869413833,-1191234570,869072912,60825230,872363004,244002550,-372165565,-73010182,1405296406,1148215671,7041897,1885435731,1702521171,-1900006656,512435904,-1960443700,-1962881514,-473297973,5093398,-2128202803,1970225981,512306698,-1993460669,-1087093482,-1480908894,876591415,234881722,240324183,1381043793,16777114,-1094700288,521024602,1448545872,-6662626,-1593835265,1060910143,594682228,104521508,393491546,1346797580,508974862,940284502,76218368,-956349303,190579012,-972589614,3430918,1017912555,-2080672386,914949062,-1070386022,-399003457,112325308,-1557208877,1069036609,773967157,877076105,1225165870,-852184012]},{"sector":15,"data":[512306721,-1943129013,-1707848442,65535,877634350,1360431406,877901876,1822052366,-1090519008,-1984350297,1355754296,-1705945330,65535,-1662515442,1230026994,1548138667,-1430244437,868425494,-150538551,225776640,16320246,772175296,876680843,-1976646847,-2144052714,917782762,-372170291,-372119087,-372119087,-470294025,195,0,0,0,0,0,0,568654336,568780580,521061371,567092660,50775598,516096057,3415706,378088960,314063105,773967157,955326089,-217674706,961329720,-773320016,516104191,-250165970,-401428424,-1021313082,-1705881314,14621,44161166,-754536192,525949672,381165263,773967157,955850377,-83456978,966965816,-1779951952,516104191,-115948242,-401166280,-1021313142,-1275010328,780289,11798644,-2147482392,-1664941621,-115409106,-1957313736,74353644,19806510,1560704569,-114360530,-58655944,116683778,1364350806,33325139,196350837,183738600,1539476416,1583307353,46816519,1977879040,-402213883,1499198345,123625306,-1205940387,567096585,-383874770,109850168,297416939,-402018246,-1021313268,382021150,162543849,536805864,860888771,-153579840,134485766,525862773,-382795986,1012982840,1006924815,-1662028516,-383844562,-326413000,106058067,3756186,-2082959872,17470,-970056844,20513542,1913144889,172304,1929922105,-78162424,1593840360,1499072350,525884763,1048587983]},{"sector":16,"data":[1946171651,-435441641,-469701856,1975519776,-223746037,-970062222,3736326,280501955,773967157,955063945,-284783570,890615864,-1993465395,775484702,955713164,-1338298694,-27596784,-1338249798,-28121067,-661733325,-2024798280,772032774,-1590100061,-1557265392,806107389,520360099,-986833213,-1338446570,-30611440,-183057106,-401231816,-1070334430,-1590765426,279132413,-6214140,71934776,998687519,1000946582,1000291231,1000553405,1000291234,1003043743,1000291231,1000487842,1000160162,1000487888,1000487842,-1957348390,74353644,19806510,505312825,-577835725,-47281362,271485240,780873220,780744959,1562313801,-315687122,-58655944,-2147126765,544407292,1381434966,1347441489,-778517366,990297824,-2141655037,-13759292,1499158548,1577541466,414502749,-1947082520,1532516600,1583241817,431287787,-823533685,-385305359,868479433,-346334272,302037205,1337641267,-402147560,-768347723,-1360458060,-240391951,1482213515,-346071205,-241178440,-1360307365,-1219491912,1499027712,-422533653,-422517040,-703928624,-578030710,2129205940,270679537,-4520843,876466175,-1157335792,785317889,955592447,689868334,1424941,1978219648,-179312381,807670221,62394428,-1207732992,281870337,-1896467517,-2147369018,125075624,3553574,-1089571836,1084784642,958799732,1963196982,1019225112,638481856,637796513,67241483,62850933,-104363136,12843203,-16843264,-16843010,-16843009,-16843146]},{"sector":17,"data":[-16843146,-16843146,-16843146,-16843146,-16843146,-16843146,-16843146,-16843146,-16843146,-16843146,-16843146,-33489153,-16843009,-16843264,-16843264,-16843264,-16843264,-16843264,-16843264,-16843264,-16843264,-16843264,-16843264,-16843009,-16843009,-1,-16843009,-16843264,-16843264,-16843264,-16843264,-16843264,-16843264,-16843264,-16843264,-16843264,-16843009,-16843009,-1,-16843009,-16843009,-16843264,-16843264,-16843264,-16843264,-16843264,-16843264,-16843264,-16843009,-16843009,-1,1006567167,-1,-16843009,-2,588905983,588905773,588905773,588905773,588905773,588905773,588905773,588905773,588905773,588905773,-16777427,-16777217,817364479,-4653569,1002044927,-16908801,682950143,-4849921,666303999,-16908801,649199103,-5046785,632552959,-5177857,-22086145,-1965345793,1425768669,-472831113,-1014897711,-695583644,-1024011530,-2147256896,-489603098,-783611022,1258713826,24306385,1066020427,1979711360,-18428,-16809789,-12777099,-1963821825,-2145260571,225836543,-12728014,-1979550465,-339637304,617056783,-2132440449,594772223,-419250126,460645386,393379900,-1157581744,-1993458593,240324103,182884947,777519104,-1019453536,0,0,1942235995,920188696,656953,959844215,1979714566,212022788,-2061568,-1140870941,-1329856848,-1705993987,65535,16777114]}],[{"sector":1,"data":[1958742784,939968299,-1996488702,1459884046,1381172822,868479464,-6664000,1459618047,16777114,1958742784,-1050089465,-1021712304,-850591816,6734625,416153859,6815747,277479683,6946819,94044419,7012355,354550019,7077891,355991811,7143427,840696067,7208963,357433603,7405571,1047003395,65537,357892355,7471107,89194755,65538,229966083,131074,805503235,8126467,521994499,8192003,728957187,983041,895877379,1048577,89850115,589826,896991491,1114113,751108355,65539,192020739,1179649,670957827,131075,189268227,1245185,876085507,196611,919404803,1310721,825164035,262147,1049690371,327683,113836291,393219,177733891,8978435,729809155,1638401,184156419,9043971,171835651,9109507,172294403,9240579,1043202307,327684,210305283,1376258,178454787,9306115,190316803,393220,1049297155,1966081,255721731,1048579,97845507,1179651,97255683,1245187,898236675,2359297,977076483,2424833,100466947,1441795,785121539,2555905,785645827,2621441,40960259,10027011,233767171,2162690,875757827,2686977,827064579,2752513,201392387,10158083,660865283,2818049,869794051,10682370,17105155,10223619,610205955,2883585,548143363,2949121,948896003,3080193,255262979,2097155,329318659,2162691]},{"sector":2,"data":[950010115,3211265,249757955,3342337,477954307,10682371,116064515,10747907,636289283,2359299,248709379,3407873,153682179,2949122,284688643,2424835,481296643,10813443,1769731,3538945,170590467,10878979,62062851,2555907,481886467,10944515,76742915,2621443,867565827,3145730,16122115,2686979,723321091,3735553,807600387,2752515,939065603,3801089,7340291,11337731,749535491,11534339,112722179,3473411,10944771,3735555,832962819,4849665,254411011,12320771,427557123,3997699,429129987,4063235,688128259,5177345,320864515,4194307,220070147,4325379,330367235,4456451,1047331075,5963777,6095107,5701634,208666883,5177347,164954371,5308419,942276867,6356993,329908483,5373955,234619139,5439491,947650819,6488065,32506115,6094850,248250627,5701635,260768003,5767171,245170435,5832707,254017795,6029315,259916035,6094851,2004055149,1802398835,0,5,0,0,20547,65535,524288,8,0,0,0,0,0,0,0,0,131072]},{"sector":3,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65535,65535,65535,82837529,65535,0,0,524304,65535,67108866,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-65536,0,0,0,3,-13750738,255,0,0,16776960]},{"sector":4,"data":[0,0,0,0,0,2130706432,128,0,6400,1441281,0,0,-16777216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,201326592,11,0,0,0,0,0,0,0,1426281728,3,0,0,0,0,65537,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,196614,131432,196858,131436,196870,131468,197010,131444,197014,131460,197064,131428,1953301195,1819506547,1668115310,1936485226,-1866465280,587211523,805359104,0,524292,524328,131092,1350717442,1835102817,1919251557,805306483,-1711274496,167775232,-2130706432,33104,1572951]},{"sector":5,"data":[917536,65537,1333809153,1828716651,-1866465280,754986248,1308675072,1392508928,1702130553,1633099885,1852403314,2097255,2883592,720904,1342308352,1851868034,544501614,1684957542,5242880,8519688,655368,1342308352,536871042,-1275064320,335546368,33554432,1866695248,1852404846,1998611829,543716457,1851880563,1685217636,1717920800,1953264993,16243,2097184,524468,30,1182945282,1763734127,1919903342,1769234797,1931505263,1461740901,1868852841,1428190071,661808499,1967595635,979723369,2097152,11796520,2621448,1342308352,1667585154,1902734952,544433525,544370534,1851880531,1685217636,1886404896,1633905004,1852795252,134217843,5120,838860800,768,67076688,8257663,2097208,65550,1342373889,1851868032,7103843,939536128,234889216,1792,-2142240512,27471,2004055149,1802398835,-1866465280,754986245,973130752,1342177280,1159743049,1919906418,134225920,134263808,2560,-2108685824,1735357008,544039282,1701996900,2037150819,1685024032,1701406313,1701650532,2037542765,536870958,-1275064320,335546368,33554432,1631814224,1953459822,1852793632,1970170228,1919950949,1936024431,1735289203,536870958,-1275060224,503318528,33554432,1866891856,1852383346,1836216166,1869182049,1702043758,1767317605,2003788910,1934958707,1931965029,1769293600,3827044,671096832,134263808,10240,-2108685824]},{"sector":6,"data":[1751344468,1970366830,1713402725,1394635375,1684955508,543453793,1819308097,1952539497,1936617321,524288,20,3276800,1342177283,2130837378,1937009920,1852601207,1699619328,1461740645,1280265801,542130500,1701603686,1869881459,1853190688,1869770784,1835102823,1851867938,544501614,544109938,1752459639,1752461088,1629516389,1768714352,1769234787,460549743,1953066569,543973737,1701996900,1919906915,1869488249,1868963956,409235061,1819308097,1952539497,544108393,1818850419,1667309676,1702259060,1701137940,1869422692,1679844722,543912809,1667330163,402653285,544501582,1970237029,1830840423,1919905125,1869881465,1853190688,1953451551,1869505824,543713141,1869440365,1713404274,1126199919,1651534188,1685217647,1851867931,544501614,1701012321,1344303987,1931494985,544235895,1701603686,0,1937009920,1329796352,1763717453,1869488243,1986076788,1634494817,358968418,843927363,544434464,544501614,1767994977,1818386796,1329799013,1629499725,1126196334,540167503,543519329,544501614,1767994977,1818386796,101,0,0,1937009920,1852601207,1886339844,1632634233,73757811,1802658125,1919111942,7105647,0,0,1828716544,1937208180,1835757164,1818978915]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[-342872853,1458278454,-1872761968,-385659927,-873921699,3,0,0,0,0,-1207959295,20783104,134789120,280494964,-1983145664,-1946151106,50338054,1418183,-852162120,471763233,503745536,20167168,-853210696,-987837663,-1207952362,567092489,-1265513697,1007734031,1006924807,188445444,1961659081,-1261292765,-1273967358,1007734024,-2146077408,-717618494,-956371598,-494872950,436109313,317448562,-1279387978,7071744,-402626328,-1070399387,-624224563,-993737532,-993737532,-993737532,-993737532,-993737532,-993737532,-993737532,-1279277884,1701990432,1629516659,1797290350,1948285285,1868767343,1852404846,774792565,-1062002642,-993737532,-993737532,-993737532,-993737532,-993737532,-993737532,-993737532,1373226180,549049738,1372662272,281871028,-1190153300,162791425,-1023536947,-18029991,516118982,-1900006576,386332376,125110276,-13754536,-469754834,1966554208,-13722381,-83878882,1465255509,240341330,28376095,1771142,494256138,281874356,121434251,209128308,91358268,-352277016,1042435,1771206,1515805440,1560763999,-1261494440,-1961833213,-990737458,637540158,67015,38127398,-947716096,-1194183932,-391443955,-12844963,-1073085324,548405877,985857706,653030101,553614720,-347143307,851902198,436109522,230217074,49251082,1946499366,46629880,-1430244437,585683507,985857536,-1292406059,-2134442496,-294512130,45405835]},{"sector":10,"data":[516165837,-276627433,1049175556,1371734018,281871028,281872564,2012512336,28957834,-855002112,-1017554928,-956241944,-16769018,570869759,872414976,605981147,639535360,-389467392,-12779297,992507135,1929388574,572426500,639515392,-1996196352,989865502,1929388046,537823492,604912384,-1996196352,-2097142770,-108982079,-948829568,-923041469,-2084670976,-16768450,-3997323,-2097142266,268444678,1523396,-1426062408,-1582579661,103481380,-1582628832,103481382,-1196752862,-1414856703,-1962929985,-1962925538,-402644978,1001062499,1929385278,281117458,2362939,994307442,1912612382,722070498,637542942,401033,1515204,637792131,147081,-1157107528,-148503936,-150993882,212018931,99923968,637585595,403191,-1557728265,-1960968178,-1912591346,855648798,1175779318,536535622,1392924611,-773205679,-1947610647,-1966896135,-754964466,5290728,-133963017,102941579,229703721,-133963565,2754190,1493535526,-1017182373,20774912,270514176,532153204,-53765824,-1560273107,-389872808,-1070333963,1237244046,1030404,12166643,48816,1006930470,1999401991,-401690546,12124385,524303800,-523166345,84290342,652792064,79606,-617364346,421431846,652464384,-1912125559,244002521,992346968,1912603406,-1074384106,-108986338,91439104,87460646,-202780416,-389285723,-872873810,117409000,871861023,-1077899584,263783497,866513664,41152,12062925,4096176]},{"sector":11,"data":[41158400,515815604,868257280,244002559,-108985512,74661888,343691,-1510741551,1511051,281870772,-1979704928,-855264056,-1965346032,-1948003879,-108394665,281871028,16000,-1977387259,-1224729314,-478129408,-854871009,1048599312,1963261952,551780366,-338491983,196397054,-1194651443,-617410557,-1966403379,977120,-997568276,99139838,-1973752832,-725957662,-1019023869,1139193520,-435866696,-423327166,-469701822,216042081,-1184766461,-18734080,-1979305031,-1975327039,-1186797883,-18729984,1642513546,57972163,-1207812119,1048838129,1963000716,146270222,-385879368,-206042959,-1153569793,1048576000,1962934304,144893957,-1696070677,47880,-1946160200,184724238,1946331406,143321093,-2098723861,47880,-2130709832,158526,1978140277,32172296,-385323800,1049297380,1044054538,343147020,1954547190,205424911,1459565314,-1705552041,65535,1442977983,-6662370,-1560280833,-259325922,-1593549427,-1073020020,20777080,-402230016,-1192687159,-11119872,-1711129034,486,-1962439845,-1962928586,50338878,-550458,-150978397,-1547293721,1200292332,406227714,437160704,-1715076352,1050933751,736229120,32416710,-150583509,1220608984,-1174800487,237699097,-1053097922,-1047854466,184677027,-1957003584,103482439,-956104212,-550584,721440955,989872158,-1962770749,32547779,-1962918239,-1962917858,-754667056,-775386144,65065440,-774372415,-1946973213,-16650226,1442966582]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[310281046,721777920,54979008,-1727899208,-6664110,-1996488449,-1072966586,-1705973388,584,-1980086647,1589967958,105286650,638080651,-1993996407,1183515223,206998282,71797030,106400038,138921766,1183514624,1200170514,-1948742902,-532248313,16777114,-530674944,-14125057,1996433015,242679568,-1157627976,1347616767,-231681,1603009142,341835562,-1697495415,65535,13794947,1187448949,-385875746,1996423845,242679568,16777114,-834238208,13125319,-565786880,1187512319,-1962934040,126554718,-1948236151,207588312,1183385483,-1948742710,1183411783,1975520214,-530674932,-1960157301,1183396935,-899773482,-1994242165,1190648902,1965031644,112645,-1070923029,-941472119,53318,-1711137815,622,20856451,-756480,-16696314,-1711016906,65535,-1980479863,1183446614,-296318484,-150983240,1174524014,-195115788,4162342,-907474827,-26111,1048772608,1962934594,1074200564,-195116031,-1707606234,65535,1019627144,-1207339521,-1705967618,65535,60438271,16777114,-967407104,61994538,-805051693,-1947576695,75465690,-14713088,-1711039946,731,20987523,-16091648,-1593753586,-1863777984,-373282048,922681483,-6683750,-2097151745,81982,251595126,1084293440,721611521,-195115840,138906406,197936777,-1962249024,1178195526,-349866804,-195115944,206015270,-1996487899,-1072962490,2122516085,1098186978,48529027,2122529652,896795620,31999687]}],[{"sector":1,"data":[239504128,1964000779,-195115913,105351974,-942782839,63558,969426571,863893574,-772245877,-94452506,651052683,1963737145,-197722339,71014915,1048772608,1996489020,14018819,20713215,-385794911,1191117005,-1949963272,1191168118,-991505976,1183578718,1082730190,-2017057268,1342177818,-1030962293,1375869445,2078800,-26032,1391132672,-1946919228,958844486,2054489671,15091399,239504128,-1995417973,1451880518,-96039950,100423307,1183384090,-631862824,-1024316,-1977159610,-664878073,651708159,-1073084536,1191121012,-427916314,-1948158689,-970532770,1996423175,-193527818,-1946532213,134610006,-1957670398,973470278,-11513342,1996427894,175570700,-16222465,1642595958,-565802752,393592843,922690539,-6683660,-2097151745,80958,736691062,-4183041,782356550,-800704255,-538377357,-394361859,-1005554432,-2094597538,1946159231,-767128826,-2210167,966448246,-16777209,-6630282,-1962934017,-2090934714,-443874579,-900899553,-1957363698,49054700,375309398,575114022,638738116,1589905289,1200301590,308200485,38242598,-1005816065,-14281122,244327031,-990110744,-1993993634,209125127,41418534,-1058533744,308200699,38242598,71812902,-953810944,1607,639000260,-1004714101,-1993993634,1589905479,1200236054,308200474,172460070,639000260,-1004845174,-2010770850,1589906247,1200236054,308200476,206014502,639000260,-1004583030,-2010770850,1589906759,1200236054]},{"sector":2,"data":[1006838796,-1341885183,-1341986045,308200449,239568934,256362022,1204168194,1589903632,1207313942,74711332,48956080,1589903792,1334453782,-253657052,1589952778,1200104978,126559761,638475972,1589905289,1200301590,241091604,38242598,639000260,639780747,-1005304021,-1993994658,1589904455,1200301590,241091606,105351462,639000260,-1005041781,-1993994658,1589905479,1200301586,241091586,172460326,639000260,-1004058741,-1993994658,1996426311,2013210124,-401698814,1589967612,1200170510,209125122,74972966,-370667888,241091834,71797030,638351103,-1878624257,-86579186,638475972,-16365687,-14283658,244320375,-990198808,-1993994658,1996425287,2013210124,-401698804,1589967463,1200170510,308200460,138906406,638475972,-1005697143,-1977216418,1589905991,1200104974,308200464,189237798,638475972,-1005500536,-1977216418,1589906503,1200104974,375309330,692554278,638475972,-1005369464,-1977215394,1589914183,1200104974,375309332,726108710,638475972,638797570,-1005238392,-1977215394,1589914695,1191323150,1200104979,375309334,142574374,-1341885440,704834305,-771509824,375309536,206539302,-805052032,650185441,-2145103990,-1056247327,638475972,-1005107320,-1977216418,1589906759,1200104974,1204233752,-1006632935,-1960438178,1589907527,1200170510,375309339,306678566,638475972,-1004714103,-2094655906,1946159231,178181,-1070923029,-1961468220,1207314160,91554572,-352321096,197143298]},{"sector":3,"data":[-28931642,66336511,222874,1010729728,158728193,20713215,-352240479,-4183294,1996428406,276234002,-15829249,1996488310,74907398,1577606911,-1034033781,1478361110,-1957345904,-661774612,1443163267,637951684,1443526539,638607044,244332543,-990295064,-1993994146,-14264825,244318839,-990317848,-1993994146,-1000996281,-14283682,-401698761,1589967144,126428684,2013210198,-401698814,1589967128,1200170508,-14264830,244319351,-990312472,-1993995170,643171399,-1878624257,-118036466,638344900,1443252105,142081830,-437776752,207537400,138905894,2013210198,-401698804,1589966987,1200170508,-14264820,244320887,-990348568,-1993995170,643172935,-1877379073,-127277042,638344900,-2145826935,-1006499250,-953809314,67655,17450742,-1070988172,28312299,1589960912,1334453772,-236879849,135053578,390563878,-15567105,1392906358,-1005947137,-14285218,-14286217,1610556983,-310157820,535137026,248139101,50336000,16946177,50331904,16948481,50333696,16956417,50333952,-16612352,50404864,17070849,50336000,16863233,33559040,-16669696,50372096,17068801,50336512,16889856,51811328,16921601,50339072,16859904,51784960,16788224,53199360,16896257,50349312,17017345,50350080,16825344,53661184,16878848,85352960,-16670464,40448,0,1167087646,518818645,-326903666,-2091493606,1962936958,-373282043,1586168519,-164132086]},{"sector":4,"data":[1950353476,-6663414,184549631,-1947831104,1418409028,-129595082,-1946528119,1552626300,-1960867060,1183392327,600897510,1183387461,-398002200,91488768,-352321096,-1983894782,1187511366,-1006632718,-1977157538,1006838791,640775425,639846283,1965377291,-431584473,-1947187575,529208924,-2011805814,1190652486,1950351590,1963146250,-431557109,-955943678,127558,1183384971,-128006922,373787430,653149833,-16222209,-1705970058,217,637951684,-1962784887,1589964358,1194010360,1996443656,-294191114,62106,106873856,71797030,653811396,-16091137,1996486262,17537774,1589903360,1200170502,-128007162,209190694,-624897,714796662,-1006632959,-1993996706,2122516551,1567883506,-231681,1589903989,2013210360,22256153,1183383552,106874108,653674123,1166739337,-62520574,172460326,653811396,-14977025,-14286219,-23455369,50331649,1589967942,1200170502,256243468,158598144,731448715,-336014910,62925570,-1528169402,175570688,-1695123713,402,637951684,1996425097,2013210122,27630082,1589903360,1200170502,175570690,74972966,112794,106873856,71797030,638220031,-1710852097,459,637951684,-16365687,-14284170,-6682505,-1006632705,-1993996706,1996425287,38112010,1358710275,133018,106873856,172460326,-1005947137,-14223266,1979652983,2013210114,-26087,1174601728,429543676,-1006632958,-1993996706,1996426311,292945674,16777114,106873856]},{"sector":5,"data":[424118566,638076299,-1978775671,-2010772923,1166676039,1200104971,205883921,306677798,653811396,-1004714102,-2010773922,1589908295,1200236280,106873886,340232230,653811396,639584138,-1004714238,-2010773922,1589908807,1200236280,1191323168,106873885,373786662,653811396,639846283,1948600075,-352210940,-1312806398,-991899133,-1977157538,65110031,-1056251440,407865894,183624064,106874049,390563878,653811396,-1005369462,-2010773922,1589909575,1200301816,106873860,457672998,653811396,-1006221429,-1993996706,28843335,-2090902016,-443874579,-900899553,262150,12320771,763494401,31522819,18153727,25165827,18219263,2555907,734134273,1167087646,518818645,-326903666,142016284,-1710852353,65535,-1981004151,1854139990,1585660652,1187447022,-2097151772,1962936958,1144946751,460587009,1344274616,-1149185,-1130697610,-1996488704,-1073018298,-1070916235,-16660503,1996425334,-294191354,-1695779073,65535,185222793,-941394752,-7098,-1710590209,214,-1980086647,-1039401898,1996428149,-294191350,736917247,-2070261568,-352321535,-461470766,-385649664,1048576236,1962934596,9890051,17450742,-1914109068,536918016,-294191280,-1695779073,65535,199640713,-16026176,496634486,-385875967,1996488572,37198566,1183383552,-195655182,-1981266295,1183574614,-61436934,-1996471803,1451882054,-330920968,-336574839,-161561582,653674239,1589905290,-398000152,-1962440666]},{"sector":6,"data":[1325396038,1975520240,175570916,131482,175570688,16777114,-230257920,-1980475765,1451883078,-431584260,-385202551,1183514763,-61436934,-1981266295,1107683926,-163149568,-1946659191,1183444038,-1005392912,1191179870,126494454,-1548604,-2010716090,-263812345,200298239,-1804864,1996425846,-327745554,-1705983957,65535,1996439531,108461832,16777114,-465139456,-385649344,1996488489,4372708,-1202695527,-1706033151,65535,-1804545,1996487798,-327745542,16777114,-461963520,16777114,-94452736,661619494,1602430530,-165281751,175440903,795837222,1602430530,1589903409,1200301818,1191912995,638219301,1109618563,627016486,175570688,165018,1144946688,192151553,21235398,172395264,-1962696541,-310179258,535137026,113921373,-1873273344,-326412987,-2082959842,922686188,-6683660,-1996488449,1451882566,-164777734,1174604390,-230258184,-990620023,-1960381858,-62486265,829800459,705316490,1996443876,108461832,16777114,1958742784,-228670455,71797542,-1070923029,-637303,-1711016906,65535,-336181621,-228670410,38243110,-940685687,61510,-231681,1996487798,146297072,1347590400,16777114,-6664192,-1996488449,1589966406,1200170738,-2084771068,-443874579,-900899553,-1957363706,1122796524,1187403351,1048837868,1996489006,306613010,1964262923,102754563,-1292602,-1006233367,-1977215394,1183322183,442403786,1183385483,-1948742678,931859551,-1989262197]},{"sector":7,"data":[-1072963514,1586170997,710904810,-1993062517,1150017606,-431584990,15091447,-1961986784,1207364190,91554056,-352321096,-1983894782,1150021190,-398030552,-1993718645,1589961286,2139104790,292814866,-1030962293,1375736325,162981968,-339720567,-1069103355,1589903360,126559766,197019273,-1958120000,1175130694,-1005882348,-1960440226,-1102673657,716715755,1962889216,108330762,392346,179935488,-1980107008,138264134,-955941632,572998,556675,1996426869,-1099497702,16777114,138840320,-506169,-96024577,1589936127,126559754,39291686,-1982052727,-1070866858,-1979824503,1183448134,31779300,16777114,1111393024,-193658879,20973311,651976388,-16040053,-947190668,1589909483,1200301788,-465163518,-150983239,64523241,-1960387490,-6664185,-2013265665,-12795322,-21493387,-6663937,-16776961,-1711039946,65535,717379210,-754732554,-1982856222,-628361642,294787,922689407,2056913818,-2097151996,81982,251595382,1084293440,22669569,1424605227,-1707671807,-26109,1048772608,1979711808,1074724617,21012737,-1070923029,651976388,-1995946101,-1072970170,1183517556,-968476192,552152948,-597769215,206015270,-1996487899,-1072959418,2122516853,57934062,-2097084695,1963126910,16640259,66092675,-186055819,-597769216,575114022,651052681,-1995028597,-1960390586,1183393095,1200301778,-733574883,440896038,651576968,-2011478134,-1977166010,1183325255,410451928,-1927907585]},{"sector":8,"data":[1343667782,1183666950,726669006,1178161344,638744006,51136502,2122320757,91488970,-352321096,1354771202,-1673473,1996482678,-461963294,-16222465,-51902858,-230258425,-2081139063,1962985086,-360170,2081455999,-134267643,1182861687,-2096627470,-1962871722,1452013638,-195675654,92212604,1995589177,75399942,-1958579200,1452013638,-195675654,92212604,1928480313,75399942,-1960151808,1452012102,-129594892,-1946528119,1183441990,-599356476,-1981917557,1451883590,-834237442,-1949546871,1183437382,-599358502,-465109203,956378785,57926726,-1946282263,1175130694,-385649388,1589903556,126559758,-993114487,-14282146,642779767,-1709803521,65535,-992983415,-1960440226,1183384135,1200301778,-733574904,172460582,651576968,-2012526710,-1977166010,1183321159,410451928,-1927907585,1343667782,-15436033,1183650422,-1202710834,726663169,1996443840,-394854426,1357018879,-186101680,-230258426,-1946921335,1452013638,-195675654,92030079,2012366393,-230230211,427032832,15091447,-1005423358,-2144989602,637669455,738740097,1207903745,-230230255,57999872,-990095895,-1960440226,731465735,653840834,-384743679,1183579202,-28963844,1458111349,-129567230,-10980289,-1711016906,203,-1966835969,-466945978,-1325385691,736678659,-1957674798,119928902,-1706016768,65535,1022117512,-15960578,-1711016906,1788,-16640791,-1711016906,116,-1982052727,766565974,65824502,1589959750]},{"sector":9,"data":[-1978668278,1183368262,173982956,-1946401141,-1993933226,1468605959,173982722,639616038,604784522,1963015171,173982747,639616038,556931,1589907061,-867792114,-1962440410,501996102,638213828,-1960435772,1589912135,126428686,638213828,-1960435772,1589912903,1200170510,375309314,71797542,638475972,-1006352503,-1960438178,1589904967,1200170510,173982726,639616038,-1004714101,-1993994658,1589905479,2139104790,930349066,15091447,-163744508,1963255366,173982775,639616038,51136502,1589907572,532948490,206015014,20710180,1589906805,532948490,142574374,-1005751296,-1004139938,2139104799,74711066,48955824,19185706,638475972,-1005959288,-1977215394,1589906247,1200104974,375309323,206015014,638475972,-1005828216,-1977215394,1589907015,1200104974,375309325,256346662,638475972,638470024,1001415,2139104768,125108749,223313958,-1005589759,-2144989602,1963134335,1333798405,1589904141,2139104782,91554318,240091174,241091588,289916710,1190592512,1946222840,1333798422,-2128215536,19662919,15091447,637826306,-1005500417,-2144989602,1946159743,173982806,639616038,1736576,1589922165,1333798414,1589904400,532948490,206015014,20710180,1589907829,532948490,142574374,721712384,-1207702592,-768933887,-1961992508,126559944,731503243,-1177347135,-101253118,638475915,-166639871,1950414918,241091592,273645606,-129567224,-1006078848,-2144989602,-1978658737,-466949050]},{"sector":10,"data":[-443850914,1622621,1167087646,518818645,-326903666,-1705617568,65535,20725379,-2096663296,81470,379193204,-352321524,1040646123,19702017,20055609,922698871,-2053504108,-2097151989,83964422,60045055,-150989384,1342255654,35927807,16777114,1975520000,841909009,922682625,-1952840812,-385875959,922681873,-1768291436,-1996488695,1996426822,176724500,1183383552,525758,-1916123511,1183435846,-967406396,11945671,-1000422400,-1950071041,1191168638,637897418,1191118728,-1233222730,-1914274766,1183435846,-1269396302,13401731,28837245,721611520,-1203336768,11159239,-1404647680,1183514624,-1371108914,-1983101301,1996468294,-1438216924,45633558,-6664192,-1962934017,1177267782,-834238038,732972683,1183427654,-830569524,-1962574848,99339846,-137476469,-834237992,13401731,1183516028,-1962546228,-654848954,-2083764599,1946204286,-1982269691,1586220102,678952738,-1205438465,-11534333,1996469366,1354771378,-1957670832,1610558047,-1538881244,1342182328,16777114,106873856,185043238,-385649216,-1706032887,1084,-1935260023,2122557534,1232339108,-11485141,-6642570,-1006632705,-1993995682,1975520007,13494531,183409232,1183383552,-1135179334,-14524789,2013210743,243750,-1267269808,1387427583,-4557057,1996466294,710904742,-349937665,-1983894776,1183431750,-197722182,116431363,1183383552,-1034516032,-14387457,1996469366,-1133051982,-4557057,1996466294,-1069118042]},{"sector":11,"data":[1586188310,142081982,688003,1200293244,-1962349814,1200340574,1356396298,1342180792,16777114,340146944,1586172789,710904610,956305569,91567175,-352321096,1354771202,-1997046808,-29571002,1183535477,-1136260166,1589908084,1066083850,192518743,-1705574400,3015,66336511,768922,106873856,1463782182,758682,-6662400,-16776961,-2120608650,-2097151988,81470,1676215159,1041170177,20881665,-1962845207,1175173702,-1005030212,-1960441250,-1835378881,-2147483636,1962920062,630871814,-2147483647,1979697278,10873091,650141380,294787,1183454581,1357130440,-5736705,244360822,200685288,-998148928,-1960394658,1589904455,126428682,650141380,-2096478209,81982,1048774517,1946157378,65903111,-336920576,21104383,650141380,-16040053,-947190668,1589910507,1200301760,-934376958,-1054085846,-150983239,64523241,-1960394658,597315591,-2013265916,-466967994,-26032,-1073020928,-21493387,865751295,-2097151996,82494,251595126,1117847874,721611521,106874048,1463782182,821658,343342848,285594,-197722368,113285635,1048772608,1979711806,1041170185,20881665,-1070923029,-1592887669,117375276,364445996,65140480,507939824,-1994369397,39094532,-1994635637,1183515716,105154842,-1994897781,1183516740,172263702,-1961867637,1149833814,240421132,638213828,1149831051,310151440,-2000140662,127538244,-1207959539,166395905,-6635477,721420543,-2090901824]},{"sector":12,"data":[-443874579,-900899553,-1957363680,49054700,-16353537,-6683530,-1996488449,-1072955834,1996426869,74907398,16777114,-28931840,-1946270069,79846885,-326413056,1444867203,639131332,1962950531,310280198,-1207602176,48955393,1183432747,1975520238,543081491,276791334,-1207339774,-4521985,114485631,1183432747,-431584792,1212032,1183516788,441879320,1183517163,441879320,-1996485627,1451883078,310280444,-1005947648,-2094655394,1946159231,112645,-1070923029,-990493047,-1977157026,1589908295,1194862112,-2130021363,-536811962,-1813490047,543081476,289928742,641037315,605112202,1963015171,-94452714,407369254,-2127268863,1610671686,-353872255,-1003951360,-165217698,1963006023,-431587042,1451456512,334169576,653942468,18368502,1182861684,-2096889626,-1006573482,-2094654370,1946157695,310280242,-1005423616,-1960379810,-1023203513,1347601036,-335622168,408863751,105351974,639393476,1946306361,-431587062,1451311104,-1006592792,-165273506,1961890119,-94452684,407341606,1183379492,543081698,289901094,1178267684,-2145749790,1946215038,-431587060,1451335680,-352285464,-431586552,-396983552,-330905731,1589903361,2139104800,527695886,243236902,-1000442621,-1977157026,1006838791,-2096728831,1946220158,239531526,-1000377342,-1977157026,1006838791,-385649663,2122514716,57934070,-1962863639,1183385158,341755134,-1995994330,2122572870,1048379646,-28931248,-1957635849,723969094,-1706032569]},{"sector":13,"data":[921,-350986556,-94452693,604473894,1963015171,-159480914,-139954944,1073745478,1182900597,-2116026138,19458134,1589941739,-28931308,-1006139098,-1960438690,-462014153,1183517310,-1715065884,216730545,638869188,1177225099,179411428,16777114,-431619840,-2081925615,1946158206,341754893,637814411,-385595511,1183515514,1347590412,-1713092981,1589923922,1200301818,1347590406,1025178,-1706012160,4046,1183535186,1347590410,638869188,1385760651,-94452656,71797542,-1001368935,-1960438690,1385759815,265656912,1347551232,1039514,-1706012160,4206,-6664110,-1006632705,-1993993122,-1073019833,199820158,1204233731,-385875708,2122515202,192151568,15629955,28837236,721611520,273058240,639393476,1183385483,341755134,-1995994330,2122572870,259850494,-134330741,-28931624,38243110,-2082191831,1946161278,-465138861,1178329297,-1958117378,-1952842170,-101194674,1038763657,92143624,149571271,1342224384,-1957670247,1385818694,280205904,1174470656,-397012506,-135641461,1183442030,-364475420,-523041871,-1728051155,166086153,99346518,32130759,-465138944,2113816121,1476442142,1375732410,-465138864,-1711389141,-778416046,83886096,-763142144,-1206457591,45766656,-1957670400,1177288262,1347590628,16777114,-431619840,-991406575,-1960435618,1183384135,1975520254,8644867,638869188,-1996208245,2122572870,1416888336,-775804007,-465173512,2113816123,112711,-25755824]},{"sector":14,"data":[-1696303361,4474,1038894729,92143621,99370695,1342224384,-1957670247,1385819206,300194384,1174470656,-397012506,-135510389,1183442030,-330920988,1175034184,-397014554,738096779,12117110,1389505480,2096499536,-372864251,1183514837,-28955676,-1207907095,-11534236,1996425846,294754828,1183383552,6600948,-94452656,108527398,74972966,1155482,-129595136,112720,-361300144,1164954,-129595136,1080963,731466612,66638274,1178335302,-1203864076,-11534335,1996485750,302619384,1183383552,343532,1187448190,-1207958036,1385779200,-330921136,-1706012007,4671,300303873,1183574102,161040620,1443489350,6600936,-94452656,108527398,74972966,1185946,-129595136,-327745712,-1695910145,4846,-1191688567,1385789440,-129594544,2096383545,-196703480,-336050645,-129594618,-1712044501,-1617276846,16777234,1444013638,-293698584,-1957006080,1589905478,1194010136,2996482,-880025097,-936655988,-1980739959,12120670,1347590480,638869188,-996604021,-1960382370,-101244337,-991279479,-930409378,71797542,-262224743,627018534,1183448055,-1715403796,-157659054,16777234,1444013638,-360807448,-2096726271,2114055294,-431587063,1451476992,1183514856,-364496404,1178155636,-1206747414,1385763840,6600784,-361300144,-336824577,335591440,-1202695527,-11534236,1996483702,326408938,1385758720,326933072,1174470656,-397012506,638869188,-1996077173,1589961798,1200301600]},{"sector":15,"data":[-28931832,947175435,98846347,1178271894,-2130084354,19719238,31936128,738096779,12117110,1347590412,1342177720,75298315,116115083,736380555,-1202651578,585826314,721522872,-259267514,-1727266632,28856402,-167030784,-963967876,-963967765,-1202661129,-1706033132,3856,-1706012007,3997,300303873,1589962838,2139104800,1031012362,638869188,556928,1190605685,1963196430,239531551,-1004964604,-1977157026,-2013060089,-1073028538,20710516,2122519413,225771766,935671,-2145422076,-352131250,341754905,138906150,639655620,1946830648,-431587063,1451429888,1589903592,2139104800,276037643,638869188,622464,1317013109,434847974,638869188,-1006024822,942022750,158600007,15091329,-396983540,543081472,209682470,-1005554688,-2144988066,1962936959,-431063034,-1004934272,-1977215906,1589905991,1194862112,-2130086900,201385542,15226499,-1947842933,-1956714410,549608933,50340864,17588993,50331904,17896448,53314048,-16532224,50402816,17394945,50333184,17533697,50333440,17399553,50333696,17388289,50333952,-16619264,50404608,-15971584,50404864,16794369,50335488,-16326656,50405120,16813825,50335744,17526785,50336000,-15968768,50405632,17478145,50336256,17525249,50336512,17627904,51811328,17904128,54401024,17382145,50339072,17473280,51784960,16952577,50347008,16954113,50347264,17787136]},{"sector":16,"data":[54476288,16879873,50348032,16782337,50348288,16801793,50348544,17639169,50349312,17643777,50349568,16893185,50352384,17510656,53432576,16891137,50352640,17434368,53662464,16886785,50353152,17377280,51798528,17818368,54355712,17462528,1439232,0,-2081649835,1448548588,15222471,943620864,125108225,20594307,-1710787584,53,117435371,1048772922,1962934588,1044284167,125042689,55706,-1316096,-16695802,-1711041482,65535,-1980086647,1187508806,-385875724,2122514809,326434820,-1947050357,1451951686,240597256,1194919285,-2094959604,1962935422,22079747,-1947050357,1451951686,39270664,1072235380,1946630401,20506883,-2131599733,1979651199,14608643,15236739,922686581,-6683660,-1996488449,1451883590,-398014466,766509057,-151888245,1174606951,-27882500,-1980873079,1048834134,1962934592,1111393031,125042689,16777114,-1316096,-1006550522,-1960382882,1962281783,-339309820,2996242,653156036,-1962776585,-58800936,-1996387546,1589963334,1342121710,2139301386,931069962,637771937,1946437433,-295779312,74972966,16777114,1975520000,-295779088,71812902,-2094661632,259326015,-1963827573,-467004345,1448538251,-16361240,244378230,705199848,-1947709212,1975520007,-83959,-26032,1048772608,1979711810,1108279049,21143809,-1070919701,1586170859,276299762,16777114,-228685056,-1710065665,632]},{"sector":17,"data":[19664639,-1191105375,-503906283,-1980086781,1183578182,-330921486,16139975,-159481088,-1961067243,1191177310,-126448660,-1963440385,-16283644,-437520826,368199299,-1577826561,1178140972,-385649676,2122579580,158597352,66336511,16777114,-1808335104,-26109,849412096,738601729,343297,748758646,20095745,1929381181,839304966,-16775935,-1207725002,653721621,-11534030,-1711135690,65535,20856451,-16157184,-1593754098,48955710,1048821803,1979711802,974061321,20619521,-1070923029,1577058744,1575324511,503318210,1430622296,-1910575989,82609112,106859350,2013208459,74972934,-397361109,-259261042,-1710852353,65535,-2090940789,-443874579,-900899553,1478361090,-1957345904,-661774612,-16222465,28837494,1609060352,49120253,1562371467,313933,1167087646,518818645,-326903666,-11118824,1996425334,-26106,1183383552,2113004,-1070922377,-2096970519,80958,1048774517,1946157374,50043399,-336920576,20842239,20987523,-2096663296,82494,479856500,-352321536,1107754987,-197722367,59611651,-930414592,-1962922568,774305754,-1983380735,1586100302,-1707671558,70687235,-259325952,1187511947,-352321304,956664623,578153542,-16497153,1166672453,-1964758521,-316012979,-1992244949,922743366,-1600519270,-385875965,-947715601,-398000376,956379297,-915216314,-1280257,-960959370,-1202708991,1385758727,-26032,-1706033152,65535,1358710409,321178]}]],[[{"sector":1,"data":[-297367296,200300169,-13732414,-1711039946,998,66336511,257690,-327745792,16777114,1111393024,58130433,-16662295,-1593753074,-1192689342,-295779327,-1995994330,1191178822,-297336850,19793411,1979776317,-1707671781,67803651,1996423168,77372156,1996423168,81435388,-1460994048,956379297,1996568070,-1707671753,75930115,117374976,922681654,916521882,-754732799,922702048,546964004,184549378,-16353856,-352242162,-1707671623,4495875,-259325952,-1192462593,1385758728,-18352,1392508858,-26032,815857664,805764865,-1309111551,65524483,-330920962,1170670985,-956301054,66629,-2013188448,1183450693,105186034,1166592254,-1707671801,32414211,1183514624,772146162,872823553,-10062335,-1711016906,1234,32654987,-16698362,-1207700426,653721645,-919928524,922701905,-6684130,184549631,-14780992,-1962856434,103412294,1996423476,88185596,1996423168,88709884,-857145344,-197722114,10983939,-930414592,-1962922568,774305754,-1983380735,1586100302,-196687878,837484544,-362753,1996486774,-260636692,-387025153,1183383694,-262764050,242598411,19926783,703874699,-385798650,1183055548,1191128568,-230257676,1928611385,-59310137,348826,-59310336,75162,-197722368,31824387,1048772608,1979711810,1108279049,21143809,-1070923029,20856451,-16157184,-1593754098,48955710,1183563819,723053554,1044284352,175505409,20844287,-385794399]},{"sector":2,"data":[-1070858948,1593653225,49120095,1562371467,313933,-2081649835,-1000994068,1182991454,-1960443388,173982727,38242598,637820612,16793473,-1070922124,12773785,-1962260853,201657430,-129595136,-1946528119,1451951174,4326662,-1979955575,1183579734,172370936,-150983379,-336557096,-60898286,654067455,1589905290,-129564680,-1962440666,-1073000762,1589962613,138840842,638028070,280519,73319424,1699187494,1732709158,1182994293,1589932292,1204233738,-352321528,71729942,108461937,-1710983425,1636,638213828,-1006090359,1191117918,1065362948,116684032,-1710983425,65535,638213828,-1006221431,1191117918,1065362948,-990612224,-953808290,2631,19793663,-1962654069,-1956772266,180510181,-1873273344,-326412987,-2082959842,-11138324,1996425334,46307846,1183383552,2113016,-1070922377,-16720663,-1315243914,-956301309,64582,20463235,-2096663296,80446,-258341004,-352321530,973537259,1010729729,125108225,20856451,-1710787584,1801,117435371,1048772926,1962934592,1111393031,125042689,189082,-1316096,-16694778,244381814,-2013088024,-12782010,-466996876,61993099,922740435,647627674,50331651,75269104,-14123520,922682444,1754923930,-1979711481,-466946490,26536016,-2080618871,82494,251597942,1117847874,-15865087,-1711039946,855,-1070864917,20856451,-16157184,-1593754098,48955710,1048821803,1979711802,974061321,20619521]},{"sector":3,"data":[-1070923029,1593591435,-1962742397,1297948645,1426064586,-326898549,1183471128,-1947981308,105286384,-12128213,-1711041482,2045,-939899255,62534,1586175467,71731962,1981040440,343900171,-1962576641,340207814,368723587,-1577826561,1178140972,-2395404,-1711041482,2098,60438271,588698,-364476160,16008903,-1961170176,1183509086,105330692,-963966858,671500072,1182992199,1191119082,19964404,1928611385,-1707671586,153590275,922681344,177865716,-1996488701,1451883590,-263812610,-940419447,62534,1589911531,1065559792,-1978698496,-467008442,38222118,690357366,1182990967,1191128560,19833332,1928611385,-164777767,1174602854,-27882500,-1996477179,1451882054,-164777736,1174603366,-330921476,-1578215799,1317667118,736963076,2996673,-1054088713,-336312695,-161561582,653674239,1589905290,-330891284,-1962440666,1325397062,1975520244,775301604,-197722367,61446659,28835840,-443851264,311901,-2081649835,-2141844756,1979647102,-373282043,922681486,-1516633190,-1996488695,1183512134,-1310447100,65065731,1183446598,-2585606,2139292239,108986370,294787,922685054,-1097202790,-1207959543,1424687105,-1963303285,-467007929,122128976,-27006896,-369013,-26057,1183514624,806289398,806783745,-754732799,-1983773726,1183579718,-129594886,16533191,-58817792,-1951171320,1191180382,-25785352,-1963047169,-16283644,-437519290,1575324510,503317186,1430622296]},{"sector":4,"data":[-1910575989,2122340056,74841862,636207147,60438271,648090,-1948742912,-427751818,61931775,1090512595,-1707671806,169187843,28835840,-310157824,535137026,46812509,-1873273344,-326412987,-2082959842,922683116,798622618,-1996488697,1187445318,300613884,-1946526069,121177670,1182996084,1191053562,-62485764,104588330,-462290640,-244026,60438271,476058,-62486016,-310123478,535137026,46812509,83891200,-16497152,50406656,16867841,50331904,17048321,50333184,16878593,50333440,17284097,50333696,17298433,50333952,17087233,50335744,16875777,50336000,17316609,50336256,17356289,33559296,-16496384,50406656,17225473,50339072,17384961,50343424,17006081,50347008,17007617,50347264,17036801,50347776,17059329,50348800,17188865,50349568,17213953,50355968,17219329,24576,0,1960512339,35621658,14123225,74771722,48957320,-651556983,-1962877056,1541597983,-1864856381,-326412987,-2116514274,1442878188,308185943,2139103115,125110530,16777114,-1962531328,-16051586,898304116,17319158,870908788,712805123,118521475,1589910901,637194,1149945342,637602825,1962950531,-1946278910,-2014834082,-2094273537,1963528318,308185887,-1962896711,1944586822,-1958657537,1810369606,308186623,-1945477495,116067414,100826243,-1159134347,276726530,-2093845503,1963135102,23259395,34635395,-1070339979]},{"sector":5,"data":[1343387391,16777114,172264192,242532363,-1710590721,65535,-369473911,-605486865,41714433,-352160505,308186045,-1207958855,199753735,-3001345,-1705897354,197,-1710590721,212,-375159,-6679946,-16776961,-6679946,-1929379585,1586359886,678756338,-14256897,369172534,-11332015,-1073018787,1552643956,-148927732,271943,1183518324,-1669035538,-263812352,10388617,200427147,1175188550,-129627146,-1937025932,1859322012,-160508942,10390667,-738955565,1996486766,-227082478,-755969,1996486262,-25864,-1070399488,-15567105,-6620554,184549631,857109696,309788626,16554578,1996423168,-26094,1592328192,273074175,1996423170,27695634,-1070399488,10257545,10388617,1343387391,106138,-92864768,16777114,-6662400,855638271,288787913,1824427265,1444827391,-1705568687,65535,-6662378,1593835775,-1961730421,702775,-131608,261755510,-1962934271,45683294,571392,-369235480,1149960521,1958742794,77221937,1342177281,119194,308185856,855640761,-37164864,-1207958855,-1075314681,1405105149,29989456,1996423168,34052626,1996423168,28744210,1996423168,18323986,1996423168,-26104,-1924136960,1962929742,645201704,18888447,1996443926,108461832,-1995940353,1721433158,-1996488702,1552615510,-148927732,271943,1183518324,-1669035538,-263812352,10388617,637951684,187041675,187040327,187040839,1601504839,10257545]},{"sector":6,"data":[10388617,120730,-1916194048,-1929309898,1358916798,374429214,32283223,1461059584,127898,308185856,-402650439,-1070334702,1184518227,-16777214,1318720118,-1962934270,45683294,571392,-1946356248,-62485705,34635395,2089510261,642313002,1183385483,1200301810,-196703998,71797542,653674121,-1996077173,-1936983994,1859322012,-160508942,10390667,-738955565,1996486766,-227082478,-755969,1996486262,25336568,1183514624,-15143940,1962879092,276234022,-15960321,1996425846,108461832,1594383871,49120094,1562371467,969293,-269762509,1167120524,518818645,-1070344050,185097867,-1961397029,-1886699489,-1895104366,175374484,-16222465,-1610676618,-310181742,535137026,80366941,-1864856576,-326412987,1457032734,-4181161,1996426870,-6664180,184549631,994211008,1962938886,175570703,-1710721281,65535,762626059,16777114,47104,2139825013,-6662398,-486539009,-1948611048,105810928,2126831499,-1527514104,-26029,1183514624,-2090967290,-443874579,-900899553,-661913590,-1957345904,-661774612,1443163267,-2000669865,1996487494,209125134,64461392,-1073020928,104543348,326434834,33244870,-16091393,-325449610,184549379,-1961134912,66427640,309657600,126468147,-1711114241,65535,-26025,1988820992,1962281734,112729,940334788,58063686,101211844,1251627091,184549380,-1956940608,1354773496,-26026,1222836224,1358710409,263066,-1909071104]},{"sector":7,"data":[-1948808254,-1698679816,1134,394861685,1183567499,38242812,142001438,530904060,68852304,28311552,-91546901,-1694730497,1250,-1694730497,1148,75668055,-1070399488,-310157729,535137026,181030237,-1864856576,-326412987,1457032734,-1070334889,185366155,-1957333770,39619380,1041281,-620536460,-2146806133,1618217211,2131164032,-1961657266,-1898410754,449283008,16777114,314671872,179907051,50036736,146350452,142377728,991458563,-1005290287,62391934,-1070355712,1150004139,-1047811308,-997191189,-784660866,-779681155,-1962359165,1604645825,49120094,1562371467,576077,1443394699,309658,-1947671808,-1948610850,108971248,-1190504821,-784662518,-896859523,-201535189,868912036,1403712448,323738,172395264,1478409707,-1957345904,-661774612,-2095911805,1962938494,-339727612,105286490,-1995942261,1451881030,172395508,-1995680117,1451882054,239504376,-1946532215,1183387718,-1948742660,-297367289,16777114,-295793920,-14125057,1996433015,-18418,1392508858,-230257328,1602965526,408944426,-1695529335,65535,-2081405301,-443874579,-900899553,1478361100,-1957345904,-661774612,637951684,17334147,-14274187,1589906039,2013210122,-26110,1589903360,1200170506,106873858,175636262,638213828,-1710983169,65535,638213828,-16496759,1996426358,106873866,41418534,641204006,-2096865281,-443874579,-900899553,1835016,107872259,18153727,109576195]},{"sector":8,"data":[18219263,83362051,1114113,94437635,1179649,97059075,1245185,3997699,932446209,104595459,378798081,39190531,110428161,42402051,1376257,103153669,21233919,50003971,85852161,78512131,372047873,103350274,21233919,56229891,272433153,80216067,784596993,49479683,96796673,73597187,4521985,83755267,4653057,77529091,785711105,88932355,366542849,39714819,106692609,47841539,6356993,102039555,375521281,26148867,8061183,46465027,16580863,48300035,8192255,35848195,8257791,36241411,16646399,0,0,0,1167087646,518818645,-326903666,775848218,1912667393,16693254,-1593774871,994050350,1979790342,872842024,922681857,767034356,874968832,1372138241,506920784,-26110,-1073020928,780339061,-352190156,-197722168,19503619,1183383552,-229209616,-150983240,1174604390,-229209104,-1981004151,782364246,772210433,-196703999,-150983240,1174664294,-229209104,-1980348791,1183578198,-296317972,-1981266295,1183574614,-128545802,-1980086647,1187511382,-352309786,-396442606,652756735,1589905290,-96010246,-1962440666,1325393478,1975520230,-161561372,509734,172395264,38242598,172476198,-1014300672,201704076,-11513344,1996484214,108462060,-402098433,1589904284,1204233974,-16777212,-1711016906,425,-2081143157,-443874579,-900899553,1478361094,-1957345904,-661774612,-952701821]},{"sector":9,"data":[63558,66336511,16777114,-431585024,-1326950775,174519853,-1981397501,1451879494,2996462,653024964,50489335,1452009030,-565802520,652236425,-1725806709,652107460,-148746357,-364475911,653024964,-1725610101,652107460,-148549749,-666465799,172490534,75465510,-1003784960,-14226338,1996423799,108461832,16777114,1975520000,-564214763,173014822,66336511,16777114,-373282048,1589904081,2013210334,38443524,1183383552,-61437446,652107460,-1710983169,65535,-1981659511,1589961814,1200301818,1347590422,558336806,-1957670247,1385818694,-666465456,-1706012007,513,-2097151699,1347551450,133274,-1706012160,65535,-1982970231,1174523990,-464121374,14974595,2122516087,242679778,30965379,-1612119169,-665911552,1996460779,-495517724,16777114,-329333760,71797030,-596328437,-26032,1183383552,-866743862,652107460,-148748405,1589963374,1200170732,-899759070,373786918,637951684,1589905289,1200301790,-663816411,653024964,-1004189815,-1993946530,1589909831,1200170502,-96040190,-1979951477,1451873350,-901346346,-1983097205,1451880518,-767113230,1183514676,-766574638,661962763,-2859324,-1977166778,-262224889,653281023,-487913592,32145027,1325336190,-18028054,19795711,-16687895,1996475510,-529072182,-2197761,1996478582,26929386,-992459125,-148452770,-1993989777,-165273273,1946228807,-96040107,100423307,1183383603,-598308390,-1030962293,-1996475643]},{"sector":10,"data":[1451881542,-94452490,508004902,-1977162710,-316007089,1077985579,-338540919,-631323625,47859331,-150500570,1589958758,-196705292,126428674,-2996597,-1072967090,1589960565,-1715459126,726108454,760711462,591890726,626493734,653942468,53430155,-1983738685,1451873350,-899758890,793217830,-1030962429,-1980742007,1996485206,-730398762,1589923922,2013210362,2013210145,-663290090,-387287297,1589903757,1200301818,1468737063,-899759063,658999590,693602598,653942468,640632715,640767883,1915311929,637957913,1982285625,-899759087,-1949415797,19320918,287713095,1589913943,1200301818,-1933376729,-733574718,-992586103,-1960392098,-1023203513,1183433356,-229209616,-2859324,-1977166778,-262224889,653281023,-1073084536,1589963381,2013210348,71539204,1187446784,-1006632456,-14229922,2090468471,-1006632956,-14229922,-2094658993,2130709119,60858658,71776550,1589907572,2013210334,-26108,-1073020928,1589964917,1204233950,-16777212,-1711016906,256,-2080881013,-443874579,-900899553,-1957363706,140428524,239569702,-1006342409,-1993995170,1589903943,1200301576,74381072,638344900,-1006352503,-1960441762,1861685831,207537158,105351462,638082756,-149665909,1589904494,1200170508,140428296,373787430,-1006342409,-1993995170,1589905991,1200301576,74381080,638344900,-1005828215,-1960441762,1861689415,207537158,340232486,638082756,-148748405,1589904494,1200170508,140428310,625445670]},{"sector":11,"data":[-1006211337,-1993995170,1589909831,1200301576,107935527,638344900,1562068873,1426066626,-326898549,509040138,-1005553979,1586236542,-96039682,-1962254709,140965827,1727524867,73856774,1330575363,105286653,-796138505,2080919295,-125925061,1183566731,1946303494,1946369085,1946238050,1946434609,14608643,-1996451863,1317796982,-729921276,-973713783,-896796554,1325376755,-973635594,-1058276234,1583292412,-1034033781,-1527578608,-1968384533,-790048288,-790048264,-790048264,-790048264,-388912392,-388892464,-388892464,-388892464,-492111664,-1397953575,-388898678,-120522544,-120526639,-388892464,-794101552,-790048264,-772222728,-788999960,-1427582472,-120522544,-120526639,-388892464,-120522544,-372710742,-1968373903,-790048288,-788999944,-790048264,-788999944,-388912392,-120522544,-388892464,-120522544,-777324336,-788999960,-772222728,-788999960,-1426534152,-120526639,-120522544,-120526639,-120522544,-373824854,-1968373979,-790048288,-788999944,-772222728,-788999960,-120542472,-388892464,-120522544,-120522544,-794105647,-788999944,-772222728,-788999960,-1426534152,-388892464,-120522544,-120522544,-120526639,-789000022,-772222728,-788999960,-788999944,-1495094536,167692521,1040253696,268435712,1375798016,301990144,838927104,318767364,-872348928,335544577,-201325824,402653441,-1795161282,671153921,956302081,754974978,-1174338794,1040187649,1711342336,1056964868]},{"sector":12,"data":[1167120524,518818645,-326903666,-1957210614,529205342,134381440,-6682756,134217983,-18431,185104011,-1958316810,142016308,-1705872129,65535,734147481,-196703806,-1064382324,871792269,-1951683648,866846278,-276583488,178440,-1711275589,65535,737822347,865728070,-1983763518,1183535684,-2090967052,-443874579,-900899553,-661913596,-1957345904,-661774612,-1946157128,-620034466,529207924,-16353537,882528887,-1728053248,-1037319629,-1962742397,1297948645,-1946156342,1430622424,-1910575989,149717976,1586190166,-2145416438,2080899711,1808903,34209792,1988870195,1962281738,-1959490717,1175128134,-1941277690,-1916760368,-1070336386,1183558571,-1070355704,149914539,-1157627207,1553596417,-1962934272,1177287238,-1036805642,2089665067,-1898345400,-1952863295,-101251506,105286571,-1421805359,-1951677813,-341113274,-1898345460,1216122305,-1414812757,112811,-310157729,535137026,113921373,-1873273344,-326412987,-2082959842,1448560364,13125319,-901331200,1586167808,-147354868,33557062,28837236,721611520,-498693696,673527,-1207602172,48955393,1183432747,172423122,91490304,-352321096,-1983894782,1190640198,1947205642,112645,-1070923029,-2082191735,1946215038,1380253443,106873942,175636262,142081830,209190694,-1705983957,65535,-1981266295,-1937053098,-120389476,-1949022583,-1634956606,-1980181760,1589955654,-733574394,205994278,2122517365,91488482,13911751,1044679424]},{"sector":13,"data":[-2081143159,1946215038,146704,2122517365,91488468,-352321096,-1983894782,-1072972730,2122517621,108331194,14974595,2122517364,91488468,-352321096,-1983894782,-1072956346,2122531188,745799868,1347469355,-11111169,2006602868,-1996488700,-1072969146,-303496331,209125123,70031952,1183383552,1975520200,64153859,-1207142657,-1706033139,65535,-992459127,-1960442274,1183387207,1200301762,-1102673648,-1981659509,2045367878,-498693375,1960199737,112645,-1070923029,197150345,-955943744,81476,12615299,2122518900,192217844,13926019,28837236,721611520,-1002010176,13794947,-1125579915,-96024832,1183514624,-96060980,451478396,-998341887,-1958120448,1174650438,-599356934,1221346955,2130331195,178181,28836843,-1102707968,-1980086781,1183572038,-96064564,-1037330104,1174665425,-565802558,-2472311,1183648886,-1202710822,-1706033150,961,15484615,-1102673152,-1980086781,1552674374,273124140,-1947187575,1077997126,-1947056503,1177275462,731465978,66638274,1174651462,106874070,239569190,-1205046017,-1924136957,1343679558,-1174145352,1347552249,1392923398,67344982,1182990336,1240007418,-998341633,-1960414208,1183432262,-867826724,-1948236151,1183433286,-632911394,-1928562945,1343674950,1342177976,16777114,-1983894784,1183444550,744262636,-1995421813,1200353350,-230258414,-1962516796,1174651462,1200170710,745864974,1342178232,384583309,-18352,1392508858,106104400]},{"sector":14,"data":[-6662573,-2097151745,1946206334,-196703482,-12696439,2122569294,58458326,-2080473367,1946208894,209125144,-1698138369,1162,-1698007297,65535,13256391,-1166114048,-2096532224,1962992766,30992643,13926019,-806812811,-864124159,-1962181108,-1181103034,-101253108,28836843,-431585024,1347469355,-10849025,-6662028,-1996488449,-1072969146,-907476107,209125121,-26032,1183383552,1975520200,28240131,640965828,-1962379265,939471452,640965771,-1709803521,65535,-1963571575,-754934132,-834237960,12222083,-1511455883,-431584512,-775804007,-1946645512,1174654534,1178288358,-1962377268,-956051898,-1961825472,-1723799994,-120470997,1183565963,-1983829044,1183565382,-968490050,1183434539,-431584262,-1037330112,1174665425,-968490050,2130331195,-867792043,66733611,731496006,-1946627646,-763460616,721581312,-1035598912,-2082847095,1946210942,-339244284,62925570,1174651462,-733608990,-1948367223,1183447622,-599356960,-1928562945,1343674950,1342177976,400282,-96010496,2122553323,57999588,-1006587415,-14273444,1552616055,-1959264462,-14273444,-1399187849,-1996488700,1183578182,-129618954,-1181097775,-101253117,-1963440637,-754934132,-968455688,-1712961909,-120470997,733892235,-967965752,-1946530167,-1723799994,-120470997,62801411,1178322502,-1957331206,1177275462,-1102707718,-775804007,-2080863240,1962988158,62925570,1183433286,-763460646,-1962642432,721611719,-1035598912,65160707]},{"sector":15,"data":[1183437894,-96039970,-1981790583,1996479558,-632910580,45633558,949637120,-16777213,-1746142650,16547459,1996432500,-663290100,162970,-897678592,-15502336,1996426358,40278728,1996423168,70556362,2122514432,57934050,-1202565889,1599995905,-1962742397,1297948645,854218,92733443,763494401,10158083,18153727,105512963,303169537,90243075,19071231,38993923,143917057,103874563,823459841,13238275,924319745,58982402,640745473,104988675,313917441,59637763,506920961,58785797,640745473,16711683,861667329,29884419,678166529,1167087646,518818645,-326903666,-62470396,-1070923776,209125200,-16091393,1996425334,138840838,1342981675,721831563,-1924134330,1343683654,16777114,1958742784,-62485755,-1070923029,-1962742397,1297948645,503318730,1430622296,-1910575989,106874072,641204006,637695999,637827071,-1878624257,-7280626,-1962742397,1297948645,503317706,1430622296,-1910575989,82609112,16533191,1354771200,-15960321,1996425846,108461832,385631885,-26032,-1073020928,1183516020,721611772,49120192,1562371467,34130509,889193216,855703296,-1577057535,1124138752,1,1167087646,518818645,-326903666,-62470396,2122514432,896794634,556675,2122526580,695468038,-1962254709,41911071,-1207206904,-1706032600,137,1996429035,142016266,-1207535873,-397410303,1183383736,-62485508,-1962742397,1297948645,503318218,1430622296]},{"sector":16,"data":[-1910575989,82609112,16533191,142508800,-2094042112,1946158718,140413737,2139299723,192677890,1342254008,56986,-15275264,1996425334,1354771206,1342177720,-1996463128,1183579206,49120252,1562371467,313933,1167087646,518818645,-326903666,-62470396,2122514432,745799688,425603,1586177652,-2095084792,2080899711,19576843,48798288,334168064,-16222465,-1070922122,300437584,-62486272,-2080618869,-443874579,-900899553,-1957363708,485262316,16008903,142508800,-1207536384,-2065104895,75399937,-2095221760,1946158718,175570711,-1710852353,662,200165001,721778112,23194048,-1962254709,-163149561,1200347275,-129595092,-33005941,126550855,-1947974007,1200355422,-62486262,58048523,-1962862871,1200350302,-263812854,58048523,-2097084695,1964902527,75400012,-15240192,2013203062,242745100,-15697921,932844151,-385875966,1996423390,-463566070,-15960065,1200295543,205990672,306678608,1343113003,1347469355,637008,1375753658,40016464,-1343684608,-465138944,-1996483579,-1763050938,-94467328,49956483,1183385483,-94467074,49956483,1183385483,-94467094,49956483,1183385483,-398014490,1183514624,-1037329922,1178335441,-1956610328,1183054430,126550778,-1947056503,1183054430,126550778,-2081667447,1946158206,175570708,-887041,-11474314,-6625674,-352321281,175570729,-887041,1183574646,-230282260,-431584432,1357530667,1347469355,637008,1375753658]},{"sector":17,"data":[-26032,1191116800,-1953240088,1325396038,1958743024,-10622717,32786119,140413696,-2096934914,1946158206,108954385,-16026624,1996425846,-25874,1183514624,1575324660,503318722,1430622296,-1910575989,1122796504,1187468887,-956301100,57926,15091399,243172096,-2096335872,1946160254,176063238,721777920,94431680,-1961992565,41911071,-1207141368,-1706032087,65535,-1962571287,1207831646,-1995994365,1187510342,-956301112,51782,-1995946357,1183566918,-834238202,-1928431873,1343670342,1342177976,16777114,-867792128,-1983363541,1183516742,-901370930,-2096740727,2097154174,138840840,1183439095,108954376,-1962377984,-654899642,-1962522999,1200355422,-800683766,2097152317,84928771,16777114,-330921728,58048523,-1962606359,2139355230,57941512,-1962891287,1183386695,239569886,-1948760439,1183387719,306678746,-1948891511,1979965046,-327745784,-2197761,1983502454,-1962640166,-1962677306,-11478458,-560277898,184549379,-385649216,2123039913,142486490,971798271,75357822,65783691,1356744331,-2590977,1996479094,-25898,-1073020928,2129199989,-327745788,-663290026,-666465449,1342588419,267418,1975520000,73656579,1458337535,735463051,1464862278,-1697220865,1375,57982987,-385618967,1183515717,1312248,-940554615,63046,-3127669,-1072967602,-1444347020,-163149056,-523116335,117283408,1183383552,1975520226,68413699,1207883915,-1995994365,1183579206]}],[{"sector":1,"data":[65065462,1183448134,-968439840,1586167809,172461048,-1949284727,1312195,-940554615,49734,1183045771,126550768,-1947711863,1183051870,126550768,-1948760439,1183051870,126550768,-942258551,56390,-1712830837,-120470997,2145142331,54651139,-2081399157,-1962741690,-562656969,-2081399157,-1962741690,-629241537,50873995,-1069119034,58640187,-385830423,1586167984,-263814160,-1995994366,1183574086,-398050826,1183516286,-163149336,-2081399157,-1962741690,-666466041,-2081399157,-1962741690,-700020473,14436039,-398030080,-775804007,-599376904,65602431,-262239233,49301123,1988704139,-262239266,49301123,2122923915,138841050,1183434243,-327745600,-663290026,41862971,-11483253,-2070227338,184549381,-385649216,-947191043,-1995946453,1996471878,2143697900,1355188994,1473804031,-1697220865,1522,58048523,-16590615,-1981031354,1586218891,-1035534398,1577313233,-1962440196,138816455,1002325641,-1962770490,-1033991226,-775796993,-60947485,1191118729,-18290212,13008515,1187461492,-1962934052,1178190406,-1960018468,-422454154,-231933,889187446,-2590977,1183515252,105251800,114268752,-1073020928,1189675893,-599358718,-2083722494,1962987646,9693443,-2081399157,-1962741690,-398030585,-2081399157,-1962741690,-196703993,-2081399157,-1962741690,-230258425,16402119,-599341312,1183514624,-1037329944,1178335441,-1957134628,1183051870,931857136,-1948354935,1183051870,1066074864,-1948615031]},{"sector":2,"data":[-972879802,1002456713,-1962770745,-94467129,-772126977,-530709533,-947189879,-1995946453,-969163194,-963967875,1183515627,-94467138,-772126977,-530709533,1191118729,-2086933540,1946210430,-196703480,1960199737,-599341247,720044032,-774080885,-59374618,-1280257,-700019916,1342588459,-16616193,1922750070,184549383,-385649216,1182990697,1183515356,-599377470,1187499644,-385875514,1183514841,-96074814,-523116335,1342178309,16777114,-733574912,58048523,-1962854167,55049944,1183385483,-1035564078,-772127229,-767163424,1183400000,-59310140,-4032769,1996480630,-763953158,21882960,-2083365237,-1962749370,-364476153,-2084282741,-1962752954,-465139449,14436039,-1960121600,-422454154,-2984445,889187446,735463051,-11532730,1996423796,128686806,-1073020928,-957807755,-599358720,-364475646,2094810681,-599341106,720044032,-774080885,-998898714,-1280257,-193528012,-1962773249,1174664262,-1281732602,184549379,-385649216,1182990477,1183515356,-599377436,1187499644,-2097151802,1946210430,-196703440,-1948760439,1183445574,-599341098,317390848,-774080885,-530674714,1586167947,-16741892,1183571014,-599377414,1183442556,-800683070,198201087,-385649472,1637547450,-1996488701,-1072959930,-11522700,1996483702,112652,-26032,-1073020928,1996427636,-294191346,-1878362369,-137828338,-1685879,1369108086,-2097151992,1946211454,-732001524,1392726014,549786,-495025408,-1962118144,1342104158]},{"sector":3,"data":[1805275907,-16777208,-6624138,-1962934017,1342049374,-431584509,-310157474,535137026,181030237,-326413056,1443687555,1183432747,-28931590,-1980217719,28900422,-196704000,-369736055,1183514923,-129615608,1206453116,-128021759,1988879313,-1962898678,-472777634,957249163,-2091877120,1946221182,-60912862,-771995905,-1962898461,1191179358,-1948003852,8979574,16678531,28845429,-1960645888,1191181406,-1948003844,9113206,-631157,-472779194,-1996065141,-25263360,735802368,-28931648,-1962886423,-472778658,-1962248565,-60912896,1988879313,2113943822,-25263291,-1961200384,1191180382,-1948003848,9112182,-762229,-472779706,-352029045,-128021736,-772258049,175541219,1586167947,-163119114,1988879313,-2097116922,1962998398,112735,1183538411,-96062466,1586181748,-62455812,1988879313,-1962898674,1191179870,-1948003850,8980086,-500085,-472778682,-1962248565,-195130624,-772520193,74877923,116064393,-243969,2122577990,91554046,-352321096,-1983894782,2122579526,-1586233094,1183432747,205949946,2113685049,-20256509,1586174699,-62455812,1988879313,-1962898674,1191179870,-1948003850,8980086,957105803,-562234298,1586174699,-129564680,1988879313,-1962898678,1191179358,-1948003852,8979574,956843659,-562235322,-1962516853,-1991707066,73304839,1223968395,-1956771959,214064613,-1873273344,-326412987,-2082959842,-950661908,63558,687747,1586175860,-1959294198,1183385670]},{"sector":4,"data":[105286644,1458980489,385107597,-26032,1183383552,-129594376,49120094,1562371467,184994381,1057030912,117440776,486540032,134217987,-1040186573,134217985,1845494563,167772426,570426141,-1946156792,-117439686,1090584323,-1828715775,1107361537,738198273,-1241513727,872416018,-1207959296,184550198,1660944648,1174405948,-167771900,21,-2081649835,1448548588,-1962641781,38046524,1006126729,-385646649,-947191506,-523116335,1183434243,-1948742678,-956102585,-62486208,2096645691,17885443,-523116335,1183434243,172461032,-1946270071,1195108446,-385649654,2134442230,721779720,15854016,1090274955,-940554615,64070,16008903,-1960580352,1191178334,-773598736,138447843,-1962258293,1191180894,-773598726,138447331,-16101239,1183577158,-60912652,-472783919,2131247161,-773878834,-1948003869,1586169920,-773598724,138413027,-1947449719,-1991706042,1183576646,1183402236,-263812114,-96040632,16008903,-2091783424,2080436862,-293717725,1183516789,-229703694,1586175211,-773598738,172002275,-772645237,971231715,-494990784,-1161589,1183444558,-774337552,-1948003869,1351288896,-94467318,-772124929,-1981558301,1351157824,-196673782,971785867,-1484983226,-1946517877,-773795385,-1983511584,-661919162,-1981004149,1183516743,172460542,28851337,-1956684288,46292453,-326413056,1460595843,141986646,65748107,-16496897,-11138442,1183516278,-1202700284,-397410302,1183384783,105266168]},{"sector":5,"data":[1996481140,1996445194,74907398,1342178232,-1996179736,1178203718,-16220424,1183515718,-13308936,-11138442,1183516278,726679556,-1796714304,-28931836,1443526399,-16353537,28836982,-2132258816,-62486268,2113816121,71761675,-1979824501,-1947531706,2114125699,-947171525,-523116335,1183434243,-1948742668,-1992231354,1183516743,172460540,-775451825,65065440,-230258234,1204279435,-1962934008,1200161862,-1203992310,48955393,1600045099,-1034033781,-1957363704,518816748,1988843095,-398014716,76218368,-772520311,65065440,-498693690,1200347275,1183401994,-297351172,2123038720,1200310260,-196738296,972703369,58587774,-1962862103,-773598753,138447843,-1423735,1347815030,-1191414017,-397410301,1183384519,-364475420,1038370347,813563906,1443264255,1223313035,-62485680,45633600,-1528279040,-330921725,971261579,276753478,737957515,-2084568128,1175126482,33614316,-472785013,1082909649,-129595126,1443264255,1996443720,112892,57534544,737560201,1183447110,2109737954,-129594618,1039549995,1518206977,1443264255,-1946650881,1346436166,-397361109,1183384387,-163148820,2112636473,-92391146,1183554174,-773878804,971231715,-1937830848,1201269575,2096791097,-775451871,65065440,-498693690,1183570059,138885622,960498559,58591815,-335579671,1183535066,-297387532,1191126141,-297366556,-523116335,1183434243,-1948742686,1200219206,-163149048,-16103543,-381161914,-4653339,20965887]},{"sector":6,"data":[-772514165,-1948003869,20973632,-269880250,-297366784,-523116335,1183434243,-1948742686,1183385671,172461034,972572297,58518086,-16724503,1213597302,-59310256,1342177976,-1996323096,1317795398,-1053079048,-1992293251,1996486726,1996445190,-59310102,-397361109,1183384167,-364495900,1183384446,-129594390,2095728185,8972547,1443264255,1996443720,243964,37873744,-1946794359,1178200646,-2094301706,2130769022,-10557181,-1946923265,-523111354,-972824367,-1948105079,-364475432,-1962391671,1200224326,-398000374,2122531563,58654964,-52247,1183577166,-773795340,-1983511584,-661921210,1089881739,-1962391671,1200224326,108461834,-159973546,-1191414017,-397410302,-1992293933,1191180358,-9573912,-2081534209,2080435838,-16389885,15236739,2122524276,58654964,-73751,1183577166,-773795340,-1983511584,-661921210,-1981266293,1183516743,172460540,-1980479861,-1715459324,-443850914,311901,1167087646,518818645,-326903666,-950642924,63046,949891,15270773,241076993,2139299723,209455106,1342446008,16777114,15526144,-1995684213,1183576646,-196703990,-1928431873,1343681094,1342177720,16777114,134789120,-26032,-125108224,58064651,-1711228183,65535,-1996357448,38111493,-1961992565,207391543,1183385483,-2082960392,1946223231,9103619,36063222,1156974196,2121531656,-14125825,1996433012,108461832,503596429,710708048,1443127295,-227082409,-1191938305,-397410301]},{"sector":7,"data":[1178271943,1448310002,-227082409,-386631937,-1072956477,1465271412,1459641064,200958440,1446474944,-58791849,-1981004151,-92017066,1023768063,578093055,200033931,242544198,-1981004149,1183576646,-196703762,93043179,2130855225,-163133503,-6684671,1459618047,16777114,-163149056,-310157474,535137026,181030237,-326413056,1459940483,108432214,-1962639733,-28931835,-472786805,1099817937,-62486264,-14125825,79177332,1586188288,1074236412,516131664,1354771280,809798480,1150111774,726670908,-1957670720,1610558044,-1956684260,79846885,-326413056,1460989059,-330905770,1187446784,-1962934024,1200295006,-28931796,1200347275,-62486262,1601486859,-947651701,-1957762284,1161365062,960331522,947782725,32261831,-2080929024,92997318,-1947187575,1325396038,1958743024,-263258328,-196703827,-297367123,956843659,-478153658,2129544761,-129579042,334168065,-523172469,50333189,-62485512,201084671,-156731968,1946223686,-125926555,-1957006336,2013203550,645398312,-16222465,1586169462,108527370,-16484353,1586168950,710904588,-1993580545,1190591046,343147012,972310155,108853830,-360829,1183521397,300632308,971916939,109050438,-360829,1183516277,-96040466,-335919477,138840934,2122539499,1299448044,1586183147,678952716,-14256129,1996425334,173968134,-16353281,1996424311,207522564,-14000245,1183394911,561266938,1476032255,184596200,-1950779968,1183447622,142016264]},{"sector":8,"data":[1459910399,-1996481304,1967130694,71759541,-1207602174,65765376,1585446840,1575324511,1426066114,-326898549,-1957275900,76219510,-151107959,1946289734,146751,-24443787,2123041515,-2081959426,-33356561,-1962489981,1325399622,1958743038,-28377275,956450187,58460230,-1959072952,138819845,1183516028,-2094077176,-672463633,-947650933,-15340794,93060686,2080917049,38112024,2080917049,80184285,-113013,-1072955826,-4660875,-1956684033,113401317,-326413056,1459940483,74877782,16533191,46564096,-1946256245,46564294,-964442485,1327229698,-1962752381,1144587846,-2096136194,1144586950,-955810050,130118,-947189781,1975520079,-62485538,-443850914,311901,1167120524,518818645,-326903666,-1957210616,-16052098,1962934200,-1942647973,-1916760368,1183577726,1183558414,-276583668,112900,-6628557,1342177535,339098,1586321408,712805370,-14125825,1996433012,142016266,1577014038,678756100,-14256897,1996486262,-59310088,-362753,1576994422,-610643924,1476395013,-310157729,535137026,214584669,16973831,67041,196615,66837,209672,67815,202388,66805,210616,67755,209756,67761,202338,66846,5615,0,0,0,1167087646,518818645,-326903666,-950642932,63558,738197438,10533119,-1706012007,873,-15992693,-2065104011,-426092800,-1996488704,1451883078,142016508,84309759]},{"sector":9,"data":[1347551254,1348468920,26778,-49920,1996438132,108461832,-1946532213,369491030,-1202695680,-1705992190,265,-24907637,1444508927,-231681,28899958,-1751494656,184549379,-955943744,129094,1962933891,-1298508282,-1006632957,-953746850,1459618311,70042,-125926656,1460040960,72090,-125926656,-1962642432,721611719,-2090901824,-443874579,-900899553,1478361092,-1957345904,-661774612,-955716477,63558,425603,1996439668,26057222,1183383552,-61437446,779403787,100288139,1347551262,100288139,1347551254,1344405688,215962,108461824,179866,108461824,85146,-129579264,1183514625,49120248,1562371467,182861,1167087646,518818645,-326903666,-129579256,2122514432,225705990,-1710852353,65535,33048263,-129594624,-1962742397,1297948645,503317194,1430622296,-1910575989,518816728,-431569066,-1070923775,-1980873079,1183444038,105265660,971572085,108461825,228250,-230258432,200562313,-385649214,1589903652,1200301810,-163149558,343326731,1077993681,-26032,1183383552,1975520252,16443651,-1962385781,-361330377,-1995291509,1150018630,-129595116,-1995029365,1150021702,-96040690,-755969,1996485238,-327745554,-397361109,1183383775,-296318484,1014284811,-1947574645,184586887,1946195079,142016360,-11485141,-1996451169,-1072961978,1996445557,-227082252,-1149185,28896374,-1528279040,142016256,-1705983957,65535,-16222465,1251665014]},{"sector":10,"data":[-16777214,1996425334,39164664,1996423168,-260636920,157338,-92372224,-16026624,1996425334,-25862,1187446784,-352321304,142016303,-231681,1996484214,-159973396,-385736472,1586233178,-1948003864,9174134,199378569,1342600384,16777114,-398000384,-1947050300,958851142,-629732793,16547459,1996425332,-25860,1996423168,-26106,1183514624,-310157594,535137026,80366941,-326413056,-1006441341,-2094658978,963969343,184960651,376768582,-1030962293,-1996484091,1451820614,105286408,-385329525,1589903775,126559750,1174528209,106859270,75465510,736261376,-2065065536,173982721,37716774,2122576245,57933828,-1962853911,1175127622,-385649656,-1014300544,503693964,-1957670400,1443267,45633618,-6664032,-1996488449,-12714426,-994282241,-1960441250,-1960440761,-523170217,1347605201,16777114,173982720,-1635284698,1958742784,-6664131,-1996488449,1451820614,173982728,654198411,1343375241,314069766,-6664192,-1006632705,-1993995682,-953805753,637534727,1539968,1996425333,-25858,1183514624,138808070,887686005,173982975,394231846,-1959496448,96636099,1347551262,369476491,-1202695680,-1705992190,73,1040074377,2020933631,173982800,642826283,1343518719,16777114,-1005917440,-1960441250,1183388231,-25755650,-16222465,79169142,1033523200,-1006632956,19270238,1996428359,105286654,84432523,1347551236,637951684,-523171957,1342178349,32666]},{"sector":11,"data":[173982720,340197670,394231846,-16222976,1939537526,-1006632956,-2094660002,1946158207,-23992061,638213828,1539968,-14284428,-1818619273,-1006632960,-14284194,-1711235401,161,638213828,10401791,44442,173982720,306693926,1994981376,1575324670,1426066114,-326898549,-1000974552,-1960442274,1183384647,50085366,1609106293,-385649150,758973517,-385649407,58065242,1023655913,57999658,1023611113,57999659,-385686295,1589904332,126559750,39291686,-2097151699,1586168026,-754404874,1003039723,995259857,-1957792317,1183386694,-293698578,-385649408,2122383589,1946755830,10610947,-1005816065,-14285218,-14281609,-14282121,-14282633,1996426871,2013210350,2013210124,1468737034,650128136,1376143243,-26032,-1494679552,209125120,16777114,-297367296,58048523,-2130447127,153286270,1183517557,139889414,-352315899,105286409,84432523,1183383578,-229209616,653287108,637695999,637827071,705185674,-1977200412,-1957689017,656835,-6664110,-1996488449,-1072960954,1996450676,161108206,-1996488698,1290403398,209125375,637951684,639137791,639006719,638875647,-15566849,-14225802,-14282633,-14283145,-14283657,-1960441225,-1070921641,105351974,-6664110,-1962934017,1178143814,-385649170,1996424021,-25755666,410010,1958742784,-361300216,464282,-294191360,16777114,53733632,637951684,-788111477,175541219,1183383691,1975520232,52160771,1342994175]},{"sector":12,"data":[147354,51374336,-1962522997,100993110,-1706012160,65535,200558217,-385649216,1996423925,1996443658,49539076,-1962743575,1451951686,394504,-6664110,-352321281,106874071,243239718,-26025,1183383552,1975520226,46131459,931911819,16271047,-1961366784,-472778658,-1912185341,-1960441786,76088903,-16595325,1166932038,971559169,-546113466,-16091393,-1695817098,-1962522997,100993110,-565802752,-991930743,537255518,1200170496,1468605962,-1705815540,65535,198985353,-385649216,-1706032547,65535,200558217,-16091968,-11531658,1323828342,-596181246,170394,37480704,-1962522997,100993110,-1706012160,65535,-54807,1183517814,139889414,1375733765,106873936,108527398,16777114,34334976,-1962117377,1451951686,525576,1589923922,2013210118,-26106,-286720000,106873857,-788034778,-1933376544,-666465854,-2468215,1589906550,2013210328,2013210366,105286652,1375733765,106873936,108527398,16777114,28829952,-1005816065,-14285218,-14285193,-1014298505,168149644,726684160,-1706012480,65535,-1006529303,-1960442274,-472840609,-1962248565,-62486272,58048523,-16679703,-1706029962,65535,-1006538519,-1960442274,-472840609,-1962248565,-62486272,58048523,-16688919,-1706029962,65535,-1006547735,-1960442274,-472840609,-1962248565,-62486272,58048523,-1962855191,-1960442274,-472840097,1183383691,1975520250,18868483,-15960321,-1705968522]},{"sector":13,"data":[65535,-1006563095,-1960442274,-472840609,-1962248565,-62486272,58048523,-1962870551,-1960442274,-472840097,1183383691,1975520250,14936323,-15960321,-1957626762,-14285218,-14283657,-6681993,-385875713,-113442615,-385649407,675151414,-385649406,-96600211,-385649406,-79823454,-385649406,1183514049,-1947981066,-1308718096,-2115513598,-1962918713,39160581,-1982314871,-1039410602,922687605,-1070923516,-6662576,-1996488449,39160069,-1982314871,1183570518,-632943656,1996450164,-629735668,-1948748033,145880646,-1957631789,1451951686,394504,-2014818222,1028188942,58000673,2013156073,52706587,736691061,52772350,115934069,69811710,384369525,-8721921,1963337277,-26941181,1963392829,-46274301,1963532861,-73996029,1963664189,-74520317,1593792489,1575324511,1426066114,-326898549,-1957275902,-13957002,-1958280725,-2082221601,-160104392,1980005945,105286411,-472785013,48955529,-947126485,-443850914,442973,1167087646,518818645,-326903666,-1957275876,1996425846,236382222,199640713,-385649216,-661978765,-2047459445,1946222760,20572419,17333635,-1897331852,1150113536,-96040701,142993488,201082505,1349416128,12186,-398030592,-1947576695,-523167163,99108355,1183383570,-396442392,82331267,653936267,-953809015,583,-2081923445,-1962743738,-1993995194,-330905849,401276928,-2096734524,637666886,1589905291,-398031896,126428674,971785983,-462230410,33179275]},{"sector":14,"data":[1996429893,75537148,-1326907392,-129579264,1996423168,26601702,-2097099031,1946290301,10086659,-1996274547,2105604678,158597149,10913163,-337361271,608537897,1166888990,-1202708964,-1705992190,3146,1038370441,-1099628545,1354771280,178256,66689616,1183514624,-297367046,15746759,205949696,-899447,1996426870,440548,-297366192,1961381910,1975520000,-428409078,721493736,190442432,-15174410,1996426870,-775517212,1996443872,108461832,184569576,-2133166912,1962941821,-461963512,800666,-96040192,1429983787,1997697558,340081413,1183517558,340101626,1459655,-96040192,1157747243,274010382,33048263,-129594624,-310157474,535137026,181030237,-326413056,1443556483,-955746677,64070,-16091393,1996424822,-694528508,-1996488693,-969148858,-2098658443,734432000,1183446598,-163148808,-1962654207,126553182,-1946270071,41911256,-1207599863,48955393,1183432747,1958743036,-27358382,9602955,9733899,1183532404,1003629560,1996688406,990278202,1996687878,209125170,1358953656,-106869,1023447711,594870273,184748705,1963133958,175570916,-16353537,1996424310,-25864,1178271744,721712376,-1207702592,-1956773887,180510181,-326413056,1443032195,-1962647925,-1467187145,-1132265216,1946157228,-1397424375,45521408,2088960000,309657864,11189379,-13405184,-1711232332,1165,2088970475,578093576,1932416,-1258354316,1402601638,-1929379836,1344152644]},{"sector":15,"data":[505169037,570472528,65051216,-1956773888,46292453,-1873273344,-326412987,-2082959842,1448572652,16533191,205949696,1979917629,78113027,1912808509,22145283,1963011389,72280323,2145977206,19545348,725448050,-9406719,1996426870,175570700,-787855733,105251808,755521163,1347551234,-1996184344,2122574406,527827210,-15829249,1996426358,172395274,1174659281,139889414,1375732781,75491408,-2081667447,1979845246,106873872,-1995994330,-1960382906,1183384135,242679792,-15960321,1183648374,-1873799446,-57350130,-1946925431,1038742598,241076996,2139299723,309659650,-1005684993,-14285218,-14286217,-26057,1996423168,209125134,-16091393,1996425334,-1950029050,1451951686,105284360,106873860,67520131,638028582,-1996335221,1451875910,106859488,33965699,-1995994330,1077992006,28482128,-259325952,-15991157,-1070922379,-1006383127,1182991966,-1960443386,-2096789241,1183515335,-2096789030,1187447495,-352321294,-564214769,652101375,92800906,-230228153,970606219,-378342842,-15829249,-784331658,1346388200,1344194187,-739766640,-196703749,202021462,921239552,106874111,33965699,-1995994330,-523119546,-1946663287,-523119546,1077993681,240228944,-259325952,-15991157,2045313909,106874111,67520131,638028582,-1996335221,1451872326,-733574190,-947714679,-230242558,317390848,-2083496252,637718598,92866443,-16595069,1183576646,-230278664,1996482162,209125134,-989890583]},{"sector":16,"data":[1182991966,-1960443386,-96040697,1342179333,878234,-1947170048,1979649022,-15537917,-1980086645,46629637,-2096734524,637797958,-1960441973,1183384151,-900298296,15877831,-1005393152,1183041630,-1960443192,-2096789241,1191117511,-96039950,1005113664,-478678458,-2096734524,637666886,92866443,-1996306557,1586218054,105284358,126559746,-947714679,-1035564798,-15829249,1183517814,-388939526,1342178053,1344194187,-1209528688,-196703750,-1961992565,-966883041,134381443,-739703948,1216316414,-385649408,-6619446,-16776961,1183649398,-1202710846,-1706033151,65535,-3776885,2013210743,-1032388826,734295807,-11513664,1996474998,-96039992,-11478793,2013214327,96701236,1344143420,506611595,710904656,-1708630017,65535,-939624983,46150,12076743,172395264,-1951512951,-991505936,-1960442274,1183446592,239483318,1187448949,-385875532,1586168048,-1995994186,-661934010,17319926,-437714059,407342077,-1951250807,1468737095,-1136228056,-994158967,-1977172898,-467007417,241694502,-2084944247,723630662,1996443840,2136762,1183383552,1975520184,-39130877,165780048,1183383552,-396981786,-1981659511,2122441814,1963532812,309253,112722923,-1975088896,15877831,-1005065472,1182991966,-1960443386,-429997049,48645763,-16283354,1183576646,-230278774,1183572338,139889414,33965699,-340898049,106873879,33965699,-1006138586,1183049310,-1993997594,-230228217,967722635,-512560570]},{"sector":17,"data":[-2082060604,-1961957818,1586216022,-1946645570,-611442958,-234879047,1183522725,-2084401946,-1962744210,1854137926,2122515174,309592244,-15829249,1996426358,-461963346,-371034369,1996487801,1354771378,-4557057,1996482678,-25882,1996423168,209125134,61752971,570800710,1357435136,-1804545,244376182,-1980177944,2122576966,57999544,-244503,1184544886,-16777206,547010678,-385875956,1589967921,1065559558,-385649408,1996487717,209125134,101349119,6809683,1039550089,58064895,-230423,767037046,28856321,1183666176,-68032010,1963070269,-67507965,1963075645,-75765501,1039919337,58000425,1039888617,58000673,1039996137,58000934,1039926505,58001698,1040061673,58002211,-369226519,1600060349,-1962742397,1297948645,1426066122,-326898549,-1000974576,-1960442786,-263812857,1342994175,385369741,27191376,1039550089,58064895,184605417,-1957595712,1207890014,338074115,1586167808,-1976071184,1183318596,1038363378,292814849,1946157629,212316,87898484,-348097536,209125144,1342372536,1342178744,503858317,-401698736,1183446994,-262239242,-1711058946,5293,-1996488264,-1072957882,1183545460,-8983560,-71824266,431509506,-3347712,-4715402,1149980678,-120504312,-339309744,142377918,-15961085,-55047050,79187970,-5707008,479858292,-1996488683,1451883590,1958874110,-60898140,138906150,-148446166,-125104537,-1207142657,-1924136455,-388947643,-1873607088]}],[{"sector":1,"data":[-145692658,-637303,-1013313932,-385875952,-4653197,-1956684033,180510181,-326413056,1460202627,108432214,-956006773,65094,11189379,-2092796672,91448575,-352295752,-1983411454,-523110330,721424901,-1706012215,4026,11175049,292864011,-1980217717,-956259196,6724,33441479,-25263360,-1957596160,-352277884,440699725,-2076457213,-462028636,1935998851,6600709,-947191061,-1946663287,16819332,-1258293178,1183514794,98619896,-919928814,922701905,-6684130,-1996488449,184593028,-1951238976,-2071332794,-1528102748,1600045099,-1034033781,-1957363708,216826860,1187468887,-4,-1578628490,172394756,58048523,-1962883607,55049944,1586182027,-1995994360,-2071201722,1183383724,1958743028,-1948742849,-163133633,1183514624,306461174,1586179702,71797752,-1962518645,-472779170,1362748369,957641986,-1005554431,1183515742,126428918,33310407,-9704704,-890505658,16023171,79172213,-1969598464,-1996488698,-2071333818,451608748,-1946913025,-523169212,67494097,922701824,-6684124,-1996488449,2122576966,779354356,-1946919285,73319487,-15580021,-1993993660,-128021753,-1962653813,1586169431,529212932,-472783919,1367933321,-62470398,1586167808,55574026,1593591435,1575324511,503318722,1430622296,-1910575989,149717976,-62470314,922681344,-1363672536,-6664192,-1996488449,-1072957370,-1930886283,251369984,1586167808,-952661000,590404,151667911,205833984,1153892608]},{"sector":2,"data":[-956298994,4164,184960651,1383336006,34096327,142016256,-1928956161,1344150596,1343226552,690330,-1501263616,-49920,-1957685132,-1202708794,-1706033134,2899,1962938941,-62470395,-1132265471,1962868902,494698523,-15371008,-1711233356,2809,1153895147,-956301048,130118,1001626,-58817792,-1962576896,49018950,-2090942421,-443874579,-900899553,1478361092,-1957345904,-661774612,1460989059,108432214,16271047,-330905856,-167051264,803799925,-1070901759,1347440720,-1679290736,1975520244,18671875,1207885451,-163607805,16820357,15270772,142443265,-10521343,-1711232331,4042,-1980873079,1589964886,-1923655954,-74774411,-234878535,-1956749403,-523170235,-1996484091,-2054425018,1183383722,-40218388,-16777195,1183575158,1347590646,35534591,1522330,-129595136,57982987,-16738583,1369107574,-385875946,-1598553973,1347590400,1216666,-330921728,2037694475,378247760,1183383552,-61437446,1459248836,141921623,163183499,1604710912,138790750,2105540609,2004090909,10913163,-899447,-1070861706,-1706012592,2718,-1913489665,1344145477,1342182072,1342618,1195264,1187448181,-1006632456,1465317982,-1927514739,1152980607,1604710912,-227082402,1350810,-327745792,1460634,-1396866304,158597120,11318783,1448090,-18969856,-1705639089,3526,16285315,1183529588,-1925714964,1344152645,505169293,-1610434480,342202960,1183383552,-49678]},{"sector":3,"data":[1927873396,-327745537,1526682,-327745792,1100698,-18969856,-1058340017,1600045099,-1962742397,1297948645,503317194,1430622296,-1910575989,216826840,1988843095,-1983894774,1183446598,1962281972,362436193,-1996488681,1451882566,1958874106,142016337,-1878624513,-44570610,-15992693,1996439668,-126418950,-624897,-1070861194,-334108592,-1980479863,-1039403434,-1000924044,-14224290,-1960442761,1346914311,101041035,-1873784320,-223025138,-1873295125,-35461106,-947128181,-310157474,535137026,113921373,-1873273344,-326412987,-2082959842,-1957295892,1187448438,184549624,1446802678,1184666,-96040704,201086601,-1003719486,-2094597538,494207295,2040157782,1375731735,540475216,394566146,-259325952,91551243,33048263,1268405760,-2097151982,1946220670,-339309820,-129594621,49120094,1562371467,182861,1167087646,518818645,-1957242738,1448478326,16777114,-11513344,-1711137226,4847,49120094,1562371467,182861,1458342741,242679639,185093771,-1944816439,74892763,-1064382324,-517218005,-201524085,-2388315,1583286878,-1034033781,-1957363700,73305068,-619986037,529206132,151158656,1200292724,1575324426,2818754,94568451,192479233,116129795,175964161,89456643,1,337051907,327681,330236163,393217,369950979,458753,88735747,587726849,252444675,856162305,358416643,1048577,359596291,1114113,361365763,1179649,102039555,303169537]},{"sector":4,"data":[357236995,1245185,123863043,2359551,298582019,378798081,388956419,1310721,121962499,2425087,129761283,2490623,127467523,613810177,278003715,798425089,138412035,2621695,143065091,2687231,134479875,2752767,132120579,2818303,360513539,372047873,220332035,816840705,148308227,3276801,117178371,162791425,95617027,313917441,120061955,146866177,99811331,591527937,36962307,96796673,372637955,4849665,368378115,5308417,68616451,5373953,364904707,5505025,366018819,5636097,293994499,375521281,108724227,166133761,102563843,115867649,233439235,367984641,106168323,141688833,328138755,368443393,0,0,-2081649835,-1957295892,126551134,-1946270071,142082008,16777114,-129595136,-990226807,537262174,1200170496,1468605962,106859276,1183385483,-153580548,1946224711,643810320,306678566,341281574,-336044348,-128007156,-1946388853,1418405444,1200170536,1468605970,-129594604,1593464459,-1034033781,-1957363708,49054700,-1962647925,-28931833,2013255819,-26104,-443875328,180829,1167087646,518818645,-327034738,1448542338,15746759,-230242560,1187446784,-1929379694,1988992638,503780884,-1515905258,-1960860251,1183424070,-1605989454,-1951119735,1177264710,-1236891234,732186251,1183424582,172395448,-1950726519,1183386694,239504316,-1995815381,1183563334,205925136,-1950333303,126557278,-1949415799]},{"sector":5,"data":[126554718,-1949284727,1207357022,74711304,65781803,-1996488264,1586230342,138933968,721712129,-1207702592,1183383553,-193035268,186086400,-1961659200,1988873822,272927696,1947223865,-373282043,1183516022,-1236911682,-739703937,-1069118719,2142783033,29944067,-1716107637,-138522997,1959922681,28895491,-1715976565,-138391925,1959922681,27846915,12484227,-1612119169,2143881985,26798339,-2133827957,1946255231,26011907,25067392,-2081881228,142508289,494207180,537296515,1183520629,-196724228,-208991627,957891723,91494471,-352321096,-1983894782,1183551558,1317771702,-1980106818,1183564358,1317771704,-1980106816,2122564678,376766608,-15567105,-1705918858,525,193873545,-385649216,1996424379,-1099497710,1342177720,140698,-1941534464,58048523,-16711959,1996427894,-998834250,232090,-1975088896,58048523,-2097094935,1946194046,-799110389,-1960425589,166406231,-15567105,-1276604810,-599356931,-2206071,1996427894,-39524212,-1981790583,1996481110,-1971912942,-1979869720,1451877446,-1870756890,-12421888,1996480118,1354771420,-799110320,-14125057,1996433015,-1133051974,-4294913,548978806,13416960,-1070903214,1183535184,3933646,1602965534,-954204374,47686,12338887,105286400,-1995942261,1451872838,-832664620,-1205045249,-1924136957,1343659590,-1157627976,1347616767,378947213,-1773761200,-1705816042,65535,32523975,-1870757120,-16354048,1911066230,-1938358275]},{"sector":6,"data":[-168984,1709738614,-1971912707,202138,-1938358528,16777114,-1870757120,-385649664,1996424091,59828622,966936203,310287942,-1986115957,1183552582,-1639544414,-1986771317,1183556166,-1606010460,1183519358,-1807316576,-1985722741,1183555654,-1538881132,12615299,1183516028,-1962546240,-654852026,-2081012087,2080421502,-1236890875,1183516139,-1982269514,1996487238,1996443666,-25866,1183383552,1975520130,52816131,1343387391,-1979948568,1451879494,-832664594,-1988343925,37615686,1377203456,736917247,-202878784,-767113466,1187446918,-352260396,-125926609,-15108863,1996484214,-18196,114616400,-959297849,-733559040,283836552,66616963,1187449461,-956292910,13423686,-1980348789,1187490886,-956300886,43078,-1984149877,2122559558,108855488,29378187,1183559750,-968455750,-1984018941,2122566214,226295990,-1980086645,1187498054,-352321332,-934885621,1183514624,-867792458,-1949278581,1183394375,642223062,-1993844853,1451878470,-965279766,-3639553,1996474998,-18228,1392508858,-1773761200,-694530026,-956301307,109638,11959939,1183516028,-1962546250,-654854586,-2085992823,2080421502,-1303999739,1183516395,-1236925518,-945404279,44614,12615299,1187450236,-1962934074,1183432774,-1962153014,1183446598,-901331002,1586167808,2122285264,-2147060479,1946255231,112645,-1070923029,-1947056503,2139147870,108331390,25132928,28837236,721611520,-1840870976,15892099,-1073018508]},{"sector":7,"data":[1183516021,-1962677296,1007013446,-666466048,-2082840948,2080424062,-1069118715,1183516139,-1948715072,-1199668240,-1962574848,99334214,-138918261,2093366232,17361155,10897095,-1199668480,-955417600,51270,-1984412021,418106438,12091011,1183516028,-1962546248,-654854074,-943176055,52294,-1947449717,1183444566,-363427352,-15567105,1996487286,32807670,1183383552,1975520128,18868483,1343387391,-1980077592,1451879494,-125926418,1376154882,-339727536,-125926641,-15895295,1996484214,-18196,83159120,-3770625,1996474486,-864616502,-1157627976,1347616767,378947213,-26032,2122514432,108855478,28722827,2122560070,108855480,28853899,1183560774,139889414,-1982708087,2122568790,158597364,-1949409653,1183394375,-832664618,-1205045249,-1924136957,1343659590,-1157627976,1347616767,378947213,-1773761200,-1705816042,1702,-394234113,1996487220,112827008,1726676992,-1947449717,1183444566,-363427352,-1949409653,1468737095,-330921688,-1947314551,1183429702,-1203371064,-1949546871,1451951686,-767129336,-2083236215,1946219646,709331718,-1948891511,2013253214,243756,-1639543472,-4698090,-17665,1183666258,-1924131178,1343657542,48798291,1187446784,-16776720,-1175944586,-2106130439,200090,-263812352,-310157474,535137026,415911261,-1873273344,-326412987,-992440802,-14285218,-14264201,1996445303,2013210122,2013210130,2013210196,209125202,444071718,343408422,376962854]},{"sector":8,"data":[1048051494,1014497062,1347469355,977767206,503331845,1602954832,-2095055040,-443874579,-900899553,1478361096,-1957345904,-661774612,637951684,643332095,727087103,1996443840,2013210122,2013210196,1996443730,2013210124,2013210132,2013210134,2013210174,642797628,87705483,1344143420,1080003366,-310173697,535137026,147475805,-1873273344,-326412987,-2082959842,-1957294356,1187448438,-956301062,64582,-1006564375,-1960441762,1183390791,1200301810,-62520546,653543049,52447115,1183445574,1200301814,-196738258,-1913108855,1343681094,384976525,242679632,-1710459137,2357,58048523,-1006585111,-14284706,-14267273,-1070904713,-14266288,-14268297,-14268809,-1960434569,1174611527,-14266118,28846199,548950016,13416960,-1070903214,1150111824,642784828,-1959108725,536816223,638082756,642545663,642414591,642807807,642676735,640448511,-399607809,1962869221,645201704,-887041,1589965942,2013210120,2013210192,-230257842,138881830,-196703408,172436262,1334519449,1392113454,737560203,-1957629370,1177286726,-14266124,-14270857,1149975671,-1924129232,1344158788,945785638,-14000245,-96010465,638082756,19810187,1589967942,-96040184,709310758,-420936834,112894,49120094,1562371467,707149,1167087646,518818645,1589958798,2013210120,2013210160,2013210162,2013210164,-18378,1392508858,-1705834928,1139,-2097151560,-443874579,-900899553,1478361098,-1957345904]},{"sector":9,"data":[-661774612,-1005917053,-1960442274,1183387719,172395510,653805193,51660683,1183446598,-129594374,-62486208,385238669,-163148464,1392922646,16777114,1958742784,106873941,1484259110,1450704678,-624897,-14284170,-14265225,-1960422793,723916871,1174603847,1996443894,-96040180,1358317099,1342177720,1048051494,1014497062,945785638,506480523,106859344,1148714790,1115160358,1080003366,-310173697,535137026,147475805,-1873273344,-326412987,1457032734,638344900,1586182027,678952710,1445361663,638344843,-1006471169,-14284706,-14264201,-963946889,138881830,207537232,38243110,638082756,1342850859,638344900,721700747,-1960423226,723912263,-1001389497,-14284706,-14270857,1586183287,809995014,1586188318,2013210120,2013210180,1602954818,1579155264,-1962742397,1297948645,1426066122,1465314443,2126782204,209110280,-2096739189,-947707706,-773730016,-2082352671,1963460222,130151955,-1968438411,-792710432,-1430250796,803991522,-1040809805,-1409190649,-779366192,1929793163,487073292,-679228464,-336141824,-151287282,1025517271,-679228464,-1947016704,-1949048118,-1001847730,-1960441730,-947714491,-973602016,-964491146,-1949201632,-1952123960,535880394,-443851169,836189,1475119957,108971260,239438630,139823654,-487066062,-372127605,-2096871797,-1410129721,1575324511,1246914,149422083,17432831,47710210,17236223,110493698,17301759,131072003,494665729,102760450,17367295]},{"sector":10,"data":[97255426,17498367,73990146,17563903,148963330,17694975,104726531,303169537,1376515,1179649,8519939,1245185,103809027,506920961,47513605,17236223,110297093,17301759,102563845,17367295,97058821,17498367,92405763,199491585,73793541,17563903,148766725,17694975,1167087646,518818645,1448597646,-1962117493,-167049602,-1070922635,-561304085,2139299723,192677890,1342383288,97178,1444473600,-16091393,1448544374,16777114,-1070903296,244338768,1577061864,49120095,1562371467,576077,1167087646,518818645,-326903666,-1957275874,-24966026,-1207534334,-655818751,-297351424,-963969024,-523116335,1342181893,16777114,-431585024,91602955,-1192640469,-430011648,-1962719234,-163149561,-1996486139,1183572550,274107150,-1981266295,1589963350,126559758,-506343797,-654057007,-62441178,1586173557,1200301582,-774993150,65130977,1194927833,1308718590,669777707,-2081923388,637724742,1586169739,-498695198,-1962440446,1183049822,-1960443160,-497120505,48383619,994510729,-1948943106,1175127622,-15633144,1183519350,656886,-1705619426,65535,-1980342645,309788471,175570771,-16222465,-6683018,-1996488449,1586228806,55574246,-26029,1183514624,-2090901778,-443874579,-900899553,1478361102,-1957345904,-661774612,242649942,74839563,971751467,529260171,134381443,414714748,-694530044,-352321535,1996445220,175570700,-16222465,1183516278]},{"sector":11,"data":[205925128,105286480,1342850603,1347469355,128154,-310157824,535137026,181030237,-1873273344,-326412987,1457032734,185759371,721712630,-1959662656,-2095084578,2080899711,102545419,36280912,485163008,276234070,-15829249,1996426358,142016266,721843967,-1706012480,65535,49120094,1562371467,969293,1167087646,518818645,-1957242738,-167045514,-1070922635,-561301525,2139299723,192677890,1342708408,164506,-1205671168,1448083457,-15436033,1996427894,242679568,-15960321,1996425846,108461832,173466,-310157824,535137026,315247965,-1873273344,-326412987,1457032734,186021515,721712630,-1959334976,-2095084578,2080899711,135772171,-26032,569049088,1448132651,-15436033,1996427894,242679568,-15960321,1996425846,108461832,16777114,-310157824,535137026,315247965,16973832,65858,196615,65820,209672,16711987,196898,16712269,196914,16712097,196915,65593,208935,65577,210616,65665,5622,0,0,1167087646,518818645,-326903666,-1957275900,2089487990,142443308,-1960479458,1161366598,-1961001204,1161366086,-1961525490,1161365574,-1962050032,1161365062,-1207599598,65732610,1577058744,49120095,1562371467,707149,1167087646,518818645,-326903666,106859276,1183385483,-1948742666,529208415,-1962260597,1183386711,-94991880,-1202667477,1380974593,-1694992641,65535,200558217,721712576]},{"sector":12,"data":[-14160960,1996424822,11967220,1183383552,1975520252,-193528054,244634,-2036992,1996424822,-25860,-310181888,535137026,46812509,-1873273344,-326412987,1473809950,242649942,-15958389,1962879092,1996445478,175570694,-1962379521,1344155204,506479755,1011125584,-1070903266,1552633936,476053290,-310157474,535137026,181030237,-1873273344,-326412987,-2082959842,1448558828,185497227,721778166,86436288,529260171,134381443,465046652,-6664188,-385875713,1183515920,205928712,1183516788,172374278,28837493,83552512,13649607,-1001994496,1187446784,-956301072,52294,1183432747,-330921490,1123567303,4372480,-26032,1183383552,1958743000,-19362914,126550855,-1996487675,436586566,-901347072,126606987,-1948367223,138933976,1443263520,16777114,-933328128,-1995684213,172395271,-1962784887,1200162886,105286404,1443252105,1344193419,1342177976,16777114,-933328128,1183385483,71776706,1200292733,205949188,-1949802869,1194967622,-1962705916,1183384647,-933328120,956712843,92209735,-352172149,-933328122,-1996077173,1586170438,105352136,2114078521,38243077,1586169579,105352136,-1962522999,1603001950,-1995994356,1586226246,308251614,1183385483,-1948742702,1183385671,343514,-1070920331,-1982577015,1183440966,-1959007282,-1081876898,2113994880,-2138600698,-1207702784,1183383553,146912,1187448189,-1962933776,-1081876898,2113994882,-2105046266,-1207702784,1183383553]},{"sector":13,"data":[-834222124,1586167809,341806046,1183385483,-1948742666,1183385671,81402,1187448693,-352321292,-196688094,1586167809,41911268,-2095811328,1963129470,-1001994482,1586167809,239569910,-1948105079,-120463290,-1962129879,-783753146,138805752,-774617461,172370424,1221871243,1174534353,-562626810,-15960321,1996425846,108461832,-202895728,-867825156,49432263,-193035520,-2147191808,-2088701362,1946209918,-528579814,-2147189247,-2096041394,1946540670,-629243126,-2147191808,-1960775090,1200350302,-230284512,1978811963,-867764675,-1959300094,1183565918,-1962440436,1200163398,138840834,-1962653815,1200162374,63347206,1996423168,440542,-934900912,45633566,244338688,-369279256,2122515115,896794820,-401698730,1183448250,1975520236,-800667896,-1696006144,-461963518,-1696434433,65535,200165001,-16091712,-6624138,-352321281,-867270436,-26048,2122514432,57999604,-1962873111,1207362654,1651769638,-2082578805,1946238591,-998341799,-162302720,1946340422,205949773,-1981790717,1183574598,-532272376,-1947842935,1174604358,-398030380,721831563,1183437894,-431584292,2095728185,10610947,970737291,58517574,1392547561,-1411329,1996482678,244338918,-385631768,1586167939,205949896,-1981790717,138840839,-1981790677,126550599,2114078521,176065334,-338395645,-562626780,214713995,1183535112,-1202708792,1464860674,516572811,-294191280,-1863551233,82110478,105286471,1003767339,-2083356729]},{"sector":14,"data":[1946207358,1996445228,79010540,1183383552,-562626564,-1192331521,-1706033151,65535,-59310250,39578,-327745792,43418,-830569728,-385649408,2122514795,1366556912,-1949802869,126422086,-1995815285,1183515207,1200179208,172395268,-1962522743,1200161863,105286408,172460360,-1995684213,1200294983,239569162,-1995684213,1183518791,306678026,516131670,374864,-26032,350814208,-933328127,-1995684213,-532282617,-1950202231,1178142790,-1962573886,65782342,-1962391925,1200212062,138840834,-1981790677,1183563846,-1069139700,1183516030,-1962677312,1586170950,71797192,-1995946357,2123040327,-729939190,1996432107,-867791906,-1957690356,1344194630,1342178488,-901346473,-1070903266,244338768,1191433704,721831563,-952380346,1586222207,105352136,-1962784887,-1991768506,1183564358,-733609206,-1950333303,1178190406,-1962573888,65781830,-1983756661,2123093574,-14488822,1183571574,1342442700,516441739,178256,1183536976,726671050,-1873784640,58255374,-696370873,1183570303,-733598970,-1950202231,1178195526,-1962705726,-125058490,1996432107,-867791906,-1957690356,1344194630,1342177976,-901346473,-1070903266,244338768,1191393768,2131131961,-25895,1187446784,-1962933808,1342101598,-6663421,-1962934017,1600049222,-1962742397,1297948645,1426066122,-326898549,-1957275886,2123042934,172264206,201213577,721778112,24439232,956581515,-209777084,2115126329,-196687890,1150091264,-62486252]},{"sector":15,"data":[-113013,-1072955826,1586177396,-62487556,-1995994366,1586228806,-62487556,71731970,-1082194119,-2080612725,956496966,-999719417,1182992990,-1960443382,-96040697,-2096472437,637667910,1183385483,-60912654,50087555,1183385483,-60912648,50087555,1183385483,1979649008,15853827,15629955,-387382411,-129594624,2113029689,173982762,34227843,-1995994330,1586231878,172393226,126559746,-2081274231,-907345169,-772913525,-62520864,-1946198551,1178204742,-1960935952,1183054942,126550780,-1946663287,1183054942,126550780,-2081405303,-352129426,-129594472,2130331193,-96040187,1183515627,106874104,33965699,-1962440410,1178202182,-1962573838,65794630,-990886261,1182991966,-1993997818,-196705529,-230257918,-1946794359,1178202182,-1004699662,1182992990,-1960443382,-96040697,-2096472437,637667910,1183385483,49251318,972048011,477950534,-2080612725,-1962738618,-129595129,-2080612725,-1962738618,-263812857,49180291,-1980348789,149549638,-196703233,-443850914,967261,1167087646,518818645,-1957242738,1962872438,645201704,-15960321,-1070921098,1347440720,721962635,-1957688250,1177224774,1552633866,-773598916,1287127011,1253572354,809798402,1150111774,-1957683652,536816220,49120094,1562371467,707149,1167087646,518818645,1448597646,-1961986421,1465257086,-1962248449,-953481146,105286480,1342850603,1347469355,-6662576,-1962934017,-773598760,1287127011,1253572354,-26110,1599995904]},{"sector":16,"data":[-1962742397,1297948645,1426066122,-326898549,-1957275890,45679734,-1715041536,-259261961,16271047,-369153280,1589903514,-775451898,65065440,1200301784,-62486270,-1962516853,-773729841,651756513,1317605259,2126593022,-125926542,-1961986816,-472778658,1577313233,-339637498,-129594553,-523116335,-1962523133,36505686,-196704000,-990488951,-1960381346,-230258425,972834443,931000902,972965515,142406214,654067339,669714313,-772252021,65262051,1183712862,-28931320,-1962440410,1191180382,-773598728,106824675,654067339,1191331721,58588731,-1946198039,-523110330,-443850914,442973,1167087646,518818645,-326903666,-1957275884,2123044982,343342864,1460827903,-1946217240,373749752,376701184,-16222465,1996424822,309788436,242679639,-385793816,1150091568,-297367236,-152019316,1946424902,-295779312,38243110,653674121,33703879,373749248,-1959365631,1451952710,-129595124,-990226807,-953747362,-1962934265,-1993994682,1962869319,1996445484,309788436,67486603,-11513344,1592266358,-336032772,306613022,756307595,1183383556,-94991880,653811396,1991,638469771,-2097002615,58655231,-167731223,1950357062,373749324,-1958317048,1183448644,1996443884,175348230,1183383552,1996445436,-92864760,-1913096449,731447877,1358483906,-2146023690,-4717196,-1207702529,-1706033151,65535,-1280257,-1701118858,-352321532,678756173,-1205439233,-1924136956,731447877,1358483906,-362753]},{"sector":17,"data":[1190590582,125043734,-1943124853,721677274,1347590592,68568822,-1070922380,-1962546279,-628346812,1996443730,-294191120,1347469355,-14001013,1190534239,175375382,-1947312444,-1993935290,1599996487,-1962742397,1297948645,1426068682,-326898549,1187468808,-1006632450,-2094658466,326434879,16777114,207537152,185043238,721712576,-950080576,64582,1183534315,65065468,1451952198,-129595126,-990226807,-1960440738,1589925431,939468536,637826815,-1962772481,1346372678,803737232,1975520000,1201296917,-1006632954,-953807778,-956301305,65094,1182993643,1183515388,-62506746,1183558780,-443851010,836189,1167087646,518818645,-326903666,-129579256,2122514432,74776590,1860943915,957105803,1719535686,956974731,1585317446,1342994175,-16222465,-6683018,-1996488449,-1072956346,-107330188,-1996488694,-1072956858,-11521676,1996426870,178428,199268944,-1073020928,1996428660,-92864754,-1191545089,-1706033147,65535,-506231,-207947146,-16777205,1201339510,-1962934261,-310118330,535137026,181030237,196627,68519,16989311,68587,196615,66001,209672,67722,205576,68554,211596,66749,201234,65961,203282,16712986,196899,65668,198804,67126,202388,16712620,196910,16712876,196911,16714344,196913,67703,208932,68158,201398,65847,210616,66414,202338]}],[{"sector":1,"data":[68531,212067,65914,5622,1167087646,518818645,-327034738,1448542392,722486923,1178276934,-1961724660,1177226822,172374802,1187448693,-352321146,-2042181883,1183514624,340146448,1183516788,306592014,28837493,186116352,818819,1191117685,176063244,-16550656,1187449414,-956301180,52806,12207815,1619445504,-956301057,34886,-9271609,-1070923776,-129594983,-1980082551,1451873862,-230242344,1186463814,-744861696,-1996488701,201291910,-385649216,-661976390,-1962719234,1686538503,1050111,98715273,-2037841906,1183580006,138808070,1183524724,139889414,-1980217719,1183447638,-665417258,25708231,1938718720,-1070923265,-1986902391,65647686,375294721,1173766027,108273672,-26029,1569390592,-1995994356,1569439814,-1995994350,-661939642,-1995946101,87924806,722367744,-1840870976,-1984674167,-335579514,-2135063754,108921088,8422795,28836843,-1270445824,1962934589,-834222331,-1115488255,2113994882,-2105177338,-1207702784,1183383553,1988544402,-1962933761,126555229,-1947187575,138906584,1039550089,125108225,14698183,-953947392,122950,-2084544885,1962934911,-159481067,-955288318,33513606,-262239488,-1995552885,-1635008954,1183580004,-1962440428,1200165446,273058562,-1962653815,1200164422,205949702,-1995160061,1183516743,306578186,-16103543,-1014294922,62410782,-6664192,-1962934017,-1946196834,120260679,-1962129783,1194003015,172394754,818819]},{"sector":2,"data":[1183516541,-338102516,205949699,-2096347511,2097154686,172395271,65788151,-1995815285,2122517062,678690952,957367947,159257670,-1995147637,1988695110,239504144,2131904057,10283267,-1995278709,1988694598,9496846,-10183029,-2037839989,1194983240,-1962705660,-930413497,-1716238709,-120470997,1317652523,1688111892,1216777215,71776767,1200292732,-1949791484,-1723288506,-120470997,1317652483,1688111888,105352191,2130855737,38243077,-1635055637,1200357220,-1949791482,731484742,737726914,307136968,-10183029,956712843,92144199,-352172149,1688111879,105352191,1183565963,731465874,66638274,240028104,28591755,1183517766,172360082,8945283,-11069835,1996428406,276234002,-1710328065,65535,-9271799,8945283,-1779891340,-2038529280,-385649408,-2030698356,1963130738,8579331,150226631,-528579840,-2147191808,-2088700850,16742078,2122521204,75366836,284446336,94404227,2122517108,74711200,552881792,8814211,1586187380,474450880,1005864483,1047917638,-10183029,-1995159925,306612999,-1962784887,1200164934,239504132,-1710864503,65535,505943,1686539088,-1202708737,-1706033150,65535,16777114,-1169766656,2122514433,57934010,-2096649239,16742078,2122545012,1903427790,-2037792725,1183448944,-1136227888,-10320247,722355851,731451974,1090048450,2055637312,-754601473,-6663968,-1996488449,-1072980922,1860764533,-19363065,126550855,-8616311,-8747381]},{"sector":3,"data":[-523116335,-12024183,-8616445,-1949153655,67061894,1183437382,1216777192,-398064641,-1953872247,67061894,1183418950,273058772,-1995160021,-1946204026,-2043081658,125697864,-12024181,-1962129783,1177226822,1216776466,172395519,-12024263,-2037708931,1183448904,273058570,722748971,-2037838778,1183580014,306588430,-1995815381,-1946198906,1174606918,273058060,51529355,1183386182,273058574,1075070507,-775804007,-465139208,722355851,-1723854266,-120470997,-1948498295,1177281606,-1740207692,735856267,1183420998,340167552,-1981528573,1183439430,-1236891242,722486923,1183441990,1954974154,2122746367,1623098367,1685324031,-1709803777,65535,-1980217719,-1072966074,1187448949,-385875836,1996424801,-1099497536,332186,-666466048,175489035,-1697220865,1312,1996479723,-1099497536,16777114,-96040704,393592843,-1694992641,65535,-663290025,1342177720,16777114,-2135692544,1090482830,226458,-1983894784,1183425606,-1572434526,1771720726,-1962934267,1385815110,1347590480,365722,-1471772416,-1918216567,1343662150,369818,-1923656192,1989001854,503781032,-1515905258,1583292325,381830797,96574032,1183514624,1347590628,-1706012007,1531,-1987295607,1183682134,-1706027380,1517,2123192150,-1938387538,371066646,-1515870945,-1923195105,1343663686,405146,-1941533440,1996443670,-1938358386,-774093173,-1706014496,1666,-2037792725,-2037776564,-2037514422,1343684426,396954]},{"sector":4,"data":[-2142860544,-1722789223,1016746066,-1996488698,-1979756410,-1912647018,385831046,105683536,1465253888,-9912691,-11487603,371066646,-1515870945,-1923195105,385837190,107715152,1183514624,1347590552,-1706012007,65535,-1981135223,1183706198,-1706027286,65535,-1098033322,1989017430,503781098,-1515905258,1583292325,-11106675,-6664170,-1929379585,1343679046,-1280257,1183574646,1222693248,-26032,1183514624,-565802602,-8485237,734807689,58780150,379733645,-1941533360,-1298509802,-1929379834,1343654982,380520077,116693584,636157952,379733645,-1471771312,-761638890,-1929379834,1343662150,381830797,118987344,1325334528,1955004342,-1501658113,970292224,1367315062,-11893107,1183666198,-1706027286,1796,384452237,1451658576,-1706027265,65535,-2037569301,1343684426,-11499891,681201686,-1929379833,385831046,1753648464,-1706027265,65535,-2470145,-1098659258,2080440142,-1773761583,2128234041,-632911091,-1953085815,-2037790138,1183580030,-1983511790,-1946198394,-2046620090,-970195108,-2109306552,8945283,1586187380,-1236890654,-2037708919,-2046558348,1200226158,-2037688574,135069554,516131664,178256,1589051216,1720093695,-11526401,1996478582,-25898,-1957232640,218067590,1183535240,-1202708766,-380633086,2122514994,1819541728,966149771,2130673286,-497120413,-2037708919,-2046558338,1200226158,-2037688574,135069554,516131664,178256,1589051216,1720093695,-11526401]},{"sector":5,"data":[1996478582,136616662,-2037710848,1178206046,1462072450,-9271669,-1957656564,1344201286,1342177976,-1954384129,520054406,-92864688,-1694992641,2507,-1948098933,126465606,966149771,2130673286,38242592,-8485237,-9533949,-1962653815,67073158,-1979748730,1187448391,-352320364,-497120493,-9140597,-9533949,-956151927,169030,-8995197,-385649408,2122514822,57999566,-2097075223,1946326142,10610947,-1948098933,1654557447,-773598721,2090730467,-1962440193,-40290,-771792250,65262051,-1946190690,-1979752826,1586168391,38243298,-1134654648,-472783919,-1982702077,-1134654713,-776190209,65262051,-2037656994,1200226142,-497120510,1586169739,-773598768,-396491805,1586169737,-800653360,-472783919,-1947705853,1200194118,-497120510,1208108939,-9396597,-472783919,-1987420669,1889438471,1887895551,-773598721,-1973550109,-1987950965,-739704249,-497120512,1208108939,-10314101,-472783919,-8610301,-1635055735,-2030043294,-472776862,-1643912239,-2037645444,1200226142,-497120510,-1962653813,-472794018,1577313233,-1962440238,1191165022,-773598788,-765590557,-10582389,-1962784887,1200349790,1586186242,-773598768,-396491805,1586169737,-800653360,-472783919,-1947705853,1200194118,-497120510,-385595509,-1957167270,218067590,1183535108,-11526430,-1224764298,-2037645474,1344208742,-2590977,-124070282,-1962934263,973037190,611615302,1921420119,1342442751,518145675,-1804140720,-1954384129,520054406]},{"sector":6,"data":[-92864688,-1694992641,2653,-1986640245,-2037653946,1183448958,-1236890676,-1953085815,-1979747194,1191149190,2128377401,-59184893,-1948098933,126475846,63719051,-1979748730,2122515015,796131552,-10570101,-1957223445,218067590,1183535112,-1202708766,1448083458,-10058101,1996443678,-696844328,736154,1983464960,-2083029118,16736446,1996438388,-696844522,695706,-62486272,-663290025,1342177720,692890,1996445440,-18182,86874704,1996423168,-59310314,16777114,-696844544,328858,1992196864,57999615,-2097114391,1946209918,2092367674,-763953153,-1542401,-1224766858,1996488546,10283220,-10320247,-1961462017,1344197702,-10307841,16777114,-1671525632,1392726014,743578,-1957500160,1183572574,-1962440266,1200217670,-867792126,-9533949,-1962653815,67073158,-1979748730,-1232402873,602668894,1921420119,1342442751,518145675,309328,-2037688752,1344208742,-2590977,-1634019722,1174405127,2139256377,59611863,1187446784,-1962933884,-16811874,-1705835697,65535,1585727115,49120095,1562371467,1231437,-2081649835,1448542956,-1962510709,1586168958,-1995994356,38243077,-947658869,38242564,16664263,-1961235712,126553694,1182991753,1200292878,-2082501886,1200161991,-28901630,2097051193,-775517214,769708512,1174470660,-28915958,434831360,-1962254709,-2096789241,-1962669458,-544538041,-1996175485,1191117383,-25806338,1187504764,-352321282,140413721,92866443]},{"sector":7,"data":[67651203,-1962784885,80184287,-16627831,1983512134,-1948091138,-773795386,273888,-955496959,65094,1586174443,-1995994356,208569093,38243076,-947658869,38242564,972965631,-495124874,-523123061,1581310161,1575324511,1379522,183304451,458753,30605315,856162305,16121859,437387265,178585603,303169537,182517763,19071231,189136899,378798081,89718787,1041760257,83165187,19792127,176488451,19857663,111345667,396361729,59244547,20185343,49283075,20250879,133562371,20316415,81264643,20709631,175439875,313917441,88801283,391053313,92667907,399507457,87621635,375521281,113442819,393216001,98041859,401801217,9633795,368443393,-2081649835,1448542956,-16222581,-963966346,95965214,-6664192,-1962934017,71579908,-125105539,-1996209013,75270404,-1727641973,-120470997,1183515689,731465734,33083842,1149961284,38025478,2089486718,38045954,-1962509175,731448390,704172482,1183515204,731465732,33083842,1599997508,-1034033781,-1957363704,49054700,105286486,1963607609,138840850,2097956409,-2147371003,-4710421,-1961170049,1177226310,1183535112,172370692,172395344,1342588459,65434,-28931840,818819,-4712834,205925247,1983508619,-1962573826,300678726,233555595,729809336,-259322810,2147382841,205915114,1593722505,-1034033781,-1957363702,49054700,209125206,722093707,-1957689274,1177224262,-6664186]},{"sector":8,"data":[-1962934017,-2147467792,189137269,-1962508810,-1948715066,-97808,-1962639493,-1207702586,1174633471,-443851250,836189,-1947432107,731448902,33083842,1183518278,731465734,1090048450,-1962260951,731448390,33083842,1183517766,731465732,1090048450,-1962392023,1178143302,-1962380274,1178142790,-1207601908,48955393,-443826133,836189,-2081649835,1448545516,-1962248565,1183516798,-1037330170,1183447249,440795638,373696832,-1727773045,-120470997,32786057,692066374,1183519814,407255316,-2081881228,273058560,1947747897,309758214,-1961853303,1178143814,-1996065768,2122911350,239504140,2131904057,306612997,1183515627,440810254,1183516029,-1961825510,1178144326,-1962574062,65737286,-1995553141,1183578182,-96040680,957236875,92148294,-351123829,239504131,2081834555,373721861,1183518955,306592014,1183516030,-1962677486,-1992290746,1183579206,8448276,957499019,108272198,-1995278711,1183518846,440809742,1988691572,209619214,-1994766709,1183578182,273037580,1183516031,-1962677488,1178274886,-1962574568,283842630,957105803,92213318,-351254901,205949699,-1946532215,1183389254,205949948,2114995769,273058565,1183515627,340146956,1183516028,-1961825516,1178143814,-1962574320,65736774,1074546315,-113015,1183652982,-1202710792,-1706033150,65535,-443850914,1753693,-2081649835,1448545516,637951684,819075,-14285188,132845127,637951684,-1005694977,-1960442274,-523170233]},{"sector":9,"data":[1174659281,656644,100550281,1183383556,-1948742662,-27358409,1183385483,-1947194380,2139880030,-27358462,-1962770645,-2094660002,2080377983,-94467307,-1962784885,-1993996706,1183519815,126428916,1586177259,38243326,637951684,-1961605239,126614110,637951627,-963967095,-259270409,-654850165,1589966987,2139694598,1204233736,184549382,-1961724673,-550458,38242598,-140917109,1468606207,-1956684284,113401317,-326413056,637820612,637683595,-1960442111,19268679,-1073019321,-1960438916,958793799,595330631,105326886,-351797466,73319450,138906406,992401655,192677447,138906406,105316646,-1961885914,79846885,-1873273344,-326412987,-2116514274,1459667692,273058646,1947485753,239504136,1964131897,112646,-955610903,36422,-1098252501,-1070858406,-163149415,-1980213623,1451870278,375294922,1187461003,-1207916814,-1706032986,65535,194791049,-385649216,-661976498,-1962719234,1753647367,1836543,-9795959,-1996478459,100625542,1183383556,263558,98846345,1183383600,138737346,-16223200,-6678922,-1962934017,126553180,-1950726519,126554716,-1952561527,138906584,1033389705,175439877,1183432747,-1270445680,-1132254485,2113994880,-2138797306,-1207702784,1183383553,-2101574732,108921088,8553611,28836843,-1874425600,1101697,-1961599861,-62486265,1200347275,-196703992,1946157373,550469921,-1168209152,163715,37557365,-955288320,33512070,-60912896,-1995552885]},{"sector":10,"data":[-1635010490,1183580008,-1962440428,1200165446,273058562,-1962653815,1200164422,205949702,-1962391671,1200163398,138840842,-1962129527,1200162374,178190,-1957670247,-1952903098,340167624,60414603,768807873,-628948991,-1706012160,1406,-9920885,-1206892663,1385758722,239504208,-1949791335,-628420026,331416473,77267,1375787651,-26032,-1635057664,1200226152,376897298,-1267269805,-393185537,-1634993558,126615400,-1961605495,1183384135,71797522,-1961867639,1183385159,138906382,-1962129783,1183386183,206015242,-1962391927,1183387207,273124102,-1948498295,1183388231,1996445394,309788436,-15698177,-6680970,184549631,-532232200,-940113918,175374368,1605251,1317012596,-940080928,443809808,28606083,1317012606,2122518752,175375768,9993859,1317012596,1586176224,474450874,1004553763,997580870,182263,-1635043980,1204289384,-956301296,4679,463514,2122536448,91488280,-352315464,243715,1753647952,-1202708737,-1706033147,65535,-16247831,1996428406,276234002,-15829249,1996469366,-89069424,812957707,-15304961,1996428406,276234002,-15829249,1996426358,142016266,-16353537,1996479606,-1267269678,-393185537,1183447762,131393934,-10830205,-10849280,-6678922,-1996488449,1183446598,1975520200,129558787,-4557057,-258295690,-1996488698,-1072969146,1996426101,-25912,-1679228928,-1166606585,-1699186945,65535,200820361,1444050368,-1194690817]},{"sector":11,"data":[-1706033151,65535,-336169217,1087341012,-26112,1183514624,172374482,1183522686,205925340,-1982052861,1183517766,172370898,-1982708221,1187449414,-352321322,-700004603,1183514625,105265618,1183522686,138816476,-1982052861,1183516742,105262034,-1982708221,1187448390,-352321332,-867776763,1996423169,175570700,-2328833,1996477046,-118298606,-10582391,-16222465,1996424822,-763953188,-401443073,1183447260,-696844308,-3377409,1358913206,-1996031512,1996461638,-1871249484,971785867,2147442310,1585875718,-1962677249,-11473850,1996479606,309788626,-1980164120,-40826,1996469366,-330921072,-10582471,-2037709186,65797982,1357661835,-2328833,1996477046,-118560750,-1947318647,130531934,-2037710844,1200226142,172460310,-1995290997,1200165959,407341324,-1982052725,1183518279,273123794,-1981004149,-1957490105,1344201798,383010445,178256,-26032,1183514624,340142864,-1037330112,1183447249,239504346,1074939435,-775804007,-800683528,735725195,1183429702,-800683116,-1987033557,1183547462,-632945900,-1982970231,1183420998,273058742,-1982183893,-2037791674,-2037776518,-1070858370,-1985722743,1183687238,-1706027358,2234,-1714403701,1385779282,149264976,1183383552,-1437169240,380126861,150313552,1465253888,-1917026675,118925430,-1524689378,1595909541,-1136226978,312102934,-1962934263,1385814598,1347590480,609434,-2008643328,-1920313719,1343653958,605850,-1923656192,1988996734]},{"sector":12,"data":[503781000,-1515905258,1583292325,380520077,159357520,1183645696,-11528568,1996458614,-800683128,1346953425,643994,-1983894784,-1979757946,-1912649594,385828998,157260368,1183514624,1347590528,-1706012007,2445,-11630967,-11495799,-11630963,-1650831338,1442840585,1891536215,1320586751,503781119,-1515905258,1583292325,-9402739,-1130737642,-1962934263,1385796678,1347590480,16777114,-431585024,-1914153335,1343678022,16777114,-1923656192,-1912646466,118941302,-1524689378,1595909541,1418104158,-1706027265,65535,384190093,-394854576,-1947830529,-523141050,-6664120,-956301057,55366,-1929097495,1343660614,378029709,167352912,1183645696,-1924131192,1343663686,671386,-1926894848,1343660614,380126861,169450064,1183645696,-1924131160,1343667270,680346,-1236336896,-8747265,10911363,1183569276,-666486384,-2037558916,1343684424,384190093,172923472,1183645696,-1924131098,385832070,-26032,686489600,-12024179,-2037559274,1343684430,684698,1317440768,-1924131073,385839238,-26032,1325334528,-1001979954,-11747709,-1949205504,1178178118,-1962049842,1183436358,-1002009710,-8485239,1085687435,-12155255,965887627,2130658950,1183222534,-1962677249,1183420998,2055637906,-2037823233,-2037645500,-2043019394,75366212,-12286325,-8485239,51529355,-2037786554,1183579996,-666490098,-2109306552,12994247,-465138944,-946190711,16737414,-1958089984,-2037671330,1194983260]},{"sector":13,"data":[959807248,813568583,-1014297877,1996443678,-138090302,-1952817525,973036678,-360836025,1586169739,-968425530,-1643912239,126484332,513427083,-127801264,412763779,-10189057,970213003,2097112198,1822329774,-1995994113,973031046,343736903,-1996339317,-1946192250,-1979758970,-2037710265,126484342,-1948498293,738159774,1174602311,-2040624164,-1635055735,126615404,-12155255,-1954128245,-2043945914,1174667078,38242780,-10451317,-775804007,-2075751944,-10451317,178585,1443101175,2090240388,-297366529,-775804007,2022083064,-297366529,66713497,-1979746154,-1946196330,-13794234,1149667711,1183201791,-1962508545,-335591802,1149668100,-2075776001,-9009527,729808824,-1979745146,973030022,2147436166,1183222534,-1962611713,67060358,-1979745146,-1946197370,771717254,-2037809153,-1634992320,1194983276,-1962574334,82510407,-12548469,-8878549,-1192212855,-2043969537,-2037776538,-1634992322,1194983276,-1962574078,82510407,-12679541,-10058237,-2082584951,2097451134,-800683186,-666485944,1183532405,1988508124,957709823,2130666118,1652984582,-1962677249,-2037785530,132906850,-1982052725,-1946192250,1178197062,957513438,92139590,-336574837,-599356669,-336574839,-599356666,1457407625,-6916353,-1224796042,-1224736932,-1224736906,1996488546,-562626576,-4819201,-1224764810,-1224736898,-2037645446,1344208746,-898171049,-389515521,1183384100,-2109305962,-10713543,669582197,-2040624383,-2037839989,-2037645498]},{"sector":14,"data":[-13762696,1149667711,1183201791,-1962508545,-335591802,1149668100,2022059007,1988528639,2147465471,-10058197,-12417399,-12155335,-2037709185,82575174,-12417397,-10058237,-10320247,763643531,-2037809153,1586233152,38222214,1200293246,-1962611966,738148486,1183417414,2147465456,-8616405,-12679543,965107339,92209735,-352172149,1049004804,2089157631,-565802497,76578435,1183535485,1552296834,146943,1183532415,1988508124,957709823,2130666118,1652984582,-1962677249,-2037785530,132906850,-1982052725,-1946192250,1178197062,957513438,92139590,-336574837,-599356669,-336574839,-599356666,1457407625,-6916353,1996429430,1991704450,1656160255,-260636673,-2197761,1996469878,2125922194,2058813439,1787202559,-1957683457,1350569159,-493825,-236390794,-1773762304,-1984543093,-2037673402,-2037776518,1191182206,-800683048,2111325753,-72881917,-10830205,-12880896,1996428918,242129608,1183383552,1996445434,112842,241408592,-11141120,-4654986,77222143,-16777209,1996428918,-25862,1996423168,115514056,-6684672,-956301057,101958,-23306613,-1705835697,65535,1586382475,49120095,1562371467,1362509,-2081649835,1448542956,-1962248565,1178141766,-1207599610,48955393,-125059029,578090507,556675,-16052620,146277748,-1204557056,787152903,91553547,-352317768,309285,2122522859,242483208,91553547,-352318536,112657,-16053013,45614452,-1207702784]},{"sector":15,"data":[1599995917,-1034033781,-1957363704,183272428,611748694,119701123,-11126914,1996431990,511115040,-14911745,1996429942,376897304,-15436033,1996427894,242679568,-15960321,1996425846,108461832,-402360577,1776878963,2144261,70556240,1183383552,1975520250,-373282043,1586169172,55049978,67438475,-62486272,621299339,1183383568,138841078,-1996480475,1183579718,81186,37559156,-385649408,71106964,-385649408,121438701,-385649408,1877541707,545161985,-1956744192,1178147398,-1962574314,65738310,991577739,92082758,-351123829,440830736,2115388985,373721861,1183515627,-60912870,1183516553,38242576,16678531,-1957289100,135006278,516131664,178256,511115088,-15960321,1996425846,74907398,1088154,545161984,-385649408,1183514760,407255324,1183516030,-1962677480,1178278982,-1962574572,283841606,958154379,92149830,-350730613,474385155,-1979949429,440830727,2115388985,373721861,1183515627,273038106,1183516028,-1961825520,1178147398,-1962574314,65738310,-1961212277,1200225374,-159481086,1445164032,201868939,-1014280188,45633566,1996443648,209125150,-16091393,1996424822,286562820,1183514624,340146456,1183516030,-1962677484,1178277958,-1961722340,1178146886,-1962574316,149623878,-350730613,474385155,-1979949429,306612999,-1962784887,1178146886,-1962574320,65736774,-1961343349,1200225374,239504132,-2096740471,1946220158,1183536675,1342442504,1344193419]},{"sector":16,"data":[1342178488,-14780673,1996426358,108461834,-1710983425,4480,-17146229,-1705835697,3724,-383629685,2122515344,1416888352,957892235,92148294,-351123829,407276291,-1979949429,440830727,2131772985,273058565,1183515627,-60912870,-2097002615,1946220158,1183536675,1342442504,1344193419,1342177976,-14780673,1996426358,108461834,-1710983425,4590,136464071,-2087851264,1946165374,-60912799,-1995290997,407276295,2132559417,474385157,1183515627,273038104,1183516028,-1961825520,1178146886,-1962574052,65739846,-1961343349,1200225374,-25263358,1445164032,201868939,-1014280184,45633566,1996443648,209125150,-16091393,1996424822,309041668,1586167808,340167676,1183516553,306592026,1183516031,-1962677486,1586174534,38242812,-1995422069,1183515719,239483162,1183516031,-1962677490,1178278470,-1961722090,1178147398,-1962574066,149622342,-350599541,373721859,-1979949429,2122516039,594804982,138840918,-1957690356,-1202708797,-11534332,1996430966,175570700,-16353537,1452934262,-2097151981,1962942590,-23009021,957892235,92216390,-350468469,407276291,2098349627,306612997,1183518955,474364184,1183516031,-1962677476,1586174022,-1962440196,1178146374,-1962574054,65739334,991315595,92016198,-351385973,373721872,2132428345,440830725,1183515627,-60912874,-2097002615,1962997374,-29824765,138840918,-1957690356,-1202708797,317259778,545162238,-1956416512,1183579230,-1962440430]},{"sector":17,"data":[1178147910,-1962574064,65736774,-1961081205,1200225374,373721858,2115126841,306612997,1183515627,-60912874,-1962653815,1200164934,-25263354,1445164032,201868939,-1014280184,79187998,1996443648,209125150,-16091393,1996424822,-26108,2122514432,57999392,-1962887959,1178147910,-1962574318,65737286,-1961081205,126483550,957761163,92215878,-350599541,373721859,2081441339,273058565,1183518955,440809750,1183516031,-1962677478,1586173510,38242812,958154379,92149830,-350730613,474385155,2098349627,306612997,1183518955,407255324,1183516030,-1962677480,1586175046,71797244,957761163,92213318,-351254901,373721859,-1979949429,2122516039,594804982,138840918,-1957690356,-1202708797,-11534332,1996430966,175570700,-16353537,-1365638026,-1962934252,1183579230,-1962440428,1178147398,-1962574062,65737286,-1961212277,1200225374,407276290,2115257913,340167429,1183515627,-60912872,-1962653815,1200165446,273058566,-1962391671,1178147398,-1962574066,65736262,-1961212277,1200225374,407276298,2114995769,273058565,1183515627,-60912872,-1962129527,1200164422,-159481074,1445164032,201868939,-1014280188,146296862,1996443648,209125150,-16091393,1996424822,360356356,1187446784,-385872606,-1956709282,583163365,-326413056,1460333699,611748694,1342185656,1005210,-96040704,91602955,-823541717,-94467323,-1962719234,263431,-1946401143,270862406,-163149568,621299339,1183383584]}]],[[{"sector":1,"data":[575048702,1946159165,736539,-605486219,867585,1055458165,933123,1256784757,28764420,2129539,1183536244,306592026,1183516030,-1962677486,1586174534,-1962440196,1178146886,-1962574064,65736774,-1961343349,1200225374,-25263358,1445164032,201868939,-1014280184,45633566,1996443648,209125150,-16091393,1996424822,374446596,2122514432,57999392,-1962881303,1178147910,-1962574318,65737286,991708811,92016710,-351254901,474385168,2115126841,306612997,1183515627,-60912868,1183516553,440809750,1183516031,-1962677478,1178277446,-1962574832,283840582,957761163,92215878,-350599541,373721859,-1979949429,1183515207,474364184,1183516030,-1962677476,1178277958,-1962574574,283841094,957892235,92150854,-350468469,407276291,-1979949429,1183515719,273037590,1183516031,-1962677488,1586173510,105351676,16154243,-1957289100,67897414,516131664,309328,511115088,-15960321,1996425846,74907398,1495450,474385152,2115257913,340167429,1183515627,-60912868,1183516553,306592022,1183516031,-1962677486,1586173510,38242812,958154379,92147782,-351254901,474385155,-1979949429,1183515719,239483158,1183516031,-1962677490,1586173510,105351676,16154243,-1957289100,67897414,516131664,309328,511115088,-15960321,1996425846,74907398,1051034,575063808,1586167810,55574266,287349331,1183514624,63170850,2129539,1183538804,440809750,1183516031,-1962677478]},{"sector":2,"data":[1178277446,-1962574574,283841094,957761163,92215878,-350599541,373721859,-1979949429,273058567,-2097002615,1946222206,1183536675,1342704648,1344193419,1342177976,-14780673,1996426358,108461834,-1710983425,6076,958154379,92148806,-350992757,474385155,-1979949429,474385159,2115126841,306612997,1183515627,-60912868,-1962784887,1178147910,-1962574320,65736774,-1961081205,1200225374,239504132,-2096740471,1946220158,1183536675,1342442504,1344193419,1342178488,-14780673,1996426358,108461834,-1710983425,6224,2129539,300483445,407276543,2132559417,474385157,1183515627,306592536,1183516029,-1961825518,1178146886,-1962574052,65739846,-1961343349,126483550,957761163,92215878,-350599541,373721859,2081441339,273058565,1183518955,440809750,1183516031,-1962677478,1586173510,38242812,16154243,-1444347019,1183536894,1342442504,1344193419,1342177976,-14780673,1996426358,108461834,-1710983425,6332,-2080472087,1946165374,-60912797,-1995290997,407276295,2131772985,273058565,1183515627,-60912872,-1962784887,1178147398,-1962574318,65737286,-1961212277,1200225374,273058564,-2096740471,1946222206,1183536675,1342704648,1344193419,1342178488,-14780673,1996426358,108461834,-1710983425,6495,1586233131,1204259836,-670834479,-1995159925,-60912889,-783825013,-1948777504,126423622,2129539,1183529076,340146456,1183516030,-1962677484,1586174022,1204784124,-654057007]},{"sector":3,"data":[1183516553,239483162,1183516031,-1962677490,1586174534,1204784124,-654057007,1586169737,1204259836,-670834479,-1995422069,-60912889,-783825013,-1948777504,126422598,16154243,-1957289612,67897414,-62485680,-11055074,1996430966,175570700,-16353537,-828767114,-956301287,467526,-2080542743,1946165374,-60912799,-1995290997,474385159,2115520057,407276293,1183515627,273038108,1183516028,-1961825520,1178147910,-1962574312,65738822,-1961081205,1200225374,-25263358,1445164032,201868939,-1014280184,45633566,1996443648,209125150,-16091393,1996424822,439458308,1586167808,340167676,1183516553,306592022,1183516031,-1962677486,1586173510,38242812,-1995422069,1183515719,239483158,1183516031,-1962677490,1586173510,105351676,16154243,-1957289100,67897414,516131664,309328,511115088,-15960321,1996425846,74907398,1315738,545161984,-385649408,1183579292,407255324,1183516030,-1962677480,1178278982,-1962574574,283841094,958154379,92149830,-350730613,474385155,-1979949429,440830727,2115388985,373721861,1183515627,273038106,1183516028,-1961825520,1178147398,-1962574314,65738310,-1961212277,1200225374,-159481086,-385649408,-1957233612,67897414,1593673961,1575324511,1581762,11075587,763494401,383910147,458753,1507331,856162305,242614275,303169537,74907651,437387265,46923779,19071231,242941955,378798081,145358851,1041760257,114491395,19792127]},{"sector":4,"data":[240517123,19857663,166330371,396361729,106954755,20185343,98762755,20250879,390856707,20316415,112918531,20709631,138018819,20840703,239468547,313917441,144441347,391053313,148307971,399507457,104923139,375521281,89391107,1030160385,168427523,393216001,153681923,401801217,349241347,368443393,0,0,-2081649835,1448545516,638082756,-1014284405,1183433356,-61437446,-1962654069,36505174,-163149568,-336046455,-96042236,-94452734,2084518182,-2096829452,-1006438802,958854750,-1946910913,969051331,544733766,653942468,1589917579,126559990,653942468,1589905289,931735286,49956483,49704579,-1946794357,1178204246,-1950976262,1451951174,142598,1996113467,-59310323,1392146175,-402360577,1183580014,-128545802,1929922105,175570702,84440831,1347551234,1593791976,1575324511,1426065602,-326898549,1589925392,931866120,-1030962293,-1980086647,1183579222,106334980,-1996487123,1451882054,-2096829448,-1006175674,958855774,-336298953,-160529660,-161561594,2134325542,-1933341708,-96060990,1589927543,126559994,653280905,-1996339317,-1960381882,1183384647,-161561356,-1006138586,-1993934242,-161561593,38243110,653942468,-1006483575,-1960380834,1589904455,1200170746,-161561596,653280907,1183516553,1200170738,-196703486,71797030,117065347,116813443,-1946794357,1178204246,-385648646,1183580021,106334980,989857325,225901126,-231681,-11339146]},{"sector":5,"data":[786957430,-163148801,972576395,242419782,-16091393,100993142,-397389312,-1956708587,146955749,-326413056,1460726915,73304918,1183385483,146928,28837245,-949884160,63558,-1962647925,1183386695,-2081190922,1187450566,-1090518274,1022033921,-964436341,38243076,-1946925431,1178203718,-955810060,64582,1183518187,-196724234,1187453309,-1962933764,1178205254,-16354050,1183447110,-196703234,1207322249,2146467385,-129594433,-443850914,180829,1167087646,518818645,-327034738,1448542376,-1962123637,-1203336953,168149899,1921419520,-1303984129,1187479551,-947912804,-2147382202,25315015,-335598720,1922992981,1921418239,126550783,-1946532215,-2080410978,50295430,1183385483,-1303999510,2113553977,-96040186,-1951250807,1178176582,-1962508550,1183447622,-1673098356,2112505401,-364475642,-1952692599,1178174022,-1962508566,1183443526,2117683074,-1952022600,168102982,-398030592,1183045771,126550760,-9265525,-9271677,-1962440446,1183049822,126550760,-9265525,-9271677,-16283390,1586214982,-1203336436,1183516553,38242738,-1986247029,1183515719,105351564,-1987950965,1187448903,-956301180,42054,-10320185,1187446784,-956301178,16741510,-1983894784,1183432262,105286588,1946699275,105286436,-1995942261,1451867206,-2042181698,-1904214015,-956170379,16744070,-599341312,-1712783359,241076992,1156986763,108273672,-26029,1552613376,-1995994356,1552654918,-1995994350,-661941178]},{"sector":6,"data":[-1995946101,87924294,-955419392,46662,-8485177,434831360,8436867,-1962508799,-352288636,112643,-944355703,33521286,341609216,1183385483,-1948742672,1183385671,81404,1187448693,-352321316,-599341271,1586167809,41911202,-2095352576,1946356350,-58817771,-955288318,33514118,-262239488,-1995552885,2122560582,427098246,207522646,-16615425,2013201527,142081798,16777114,1954941184,207522815,1183385483,-2038529096,-385649664,2122514569,58000138,-167739159,50295942,2122545524,91554058,-352321096,309251,-2082847095,1946213502,-632389628,2126414720,443810047,28737155,1317012606,2122518746,175375774,10387075,1317012596,1586176218,541559714,1004160547,796252742,447898,2122536448,91554058,-352315720,1357827,205949776,503319045,-1200160944,16777114,-26112,1187446784,-2097151580,1946199166,105244931,-401836289,-768869145,318767365,-230258222,-1191946615,1385758744,-193527984,-1695385857,1291,-628373365,-1947056501,-1903561642,-1635123364,61996894,16777114,833792,1364450091,-755969,-2037779850,-1769341096,-6619302,50331903,335501446,67066518,335502470,-1979752810,1451869254,-1706011962,1501,194135689,-385649216,-1706031646,1515,-1981528439,-1039407530,-941030539,1619973,66219767,1452008518,-901346842,-1949542775,-523111866,97142275,-2037841916,-1769341078,112787308,-227608832,-9796093,-9660789,-1982708087]},{"sector":7,"data":[112776278,-227608832,-1949153789,1183437910,-799634994,-8470909,-385649408,2122514616,57934346,-1962889239,-523126714,-2037825472,1861746552,1585875384,1620223,-1179095305,-796196854,-10582389,-628367151,-1023153673,-1728048123,-1983625591,1347602006,16777114,1619429632,1958743039,-6664089,-1996488449,1451853894,702602,-10572041,-1954003453,168135254,2055637248,2090240511,-1203336193,-523116335,-8747517,-1996487675,1451873862,-2008642600,-9533815,-9398647,2117730091,-1004306760,654274206,-63545,38258470,179896319,2024732416,1854276095,-555005953,-8485177,1996423168,-428409076,-1914407169,1343675974,-1695385857,65535,51019395,-2033775499,327528,-8485237,-2033776149,589672,-1982052725,2122564166,91488390,29509319,1656652544,947126527,-1710328065,65535,196888201,-955746880,33862,-16494615,1996464758,-25932,1183383552,1975520190,-1133052150,16777114,-2133005568,1090483342,16777114,-2142845184,1187446784,-1962934026,1200295006,-934901496,-1996208245,-369138554,1187447566,-1962934086,1452001862,-1471772212,-1951770999,-1946195322,-1979749226,1451876422,-465138718,-1981393269,1451857990,1720108954,-385875713,1589903752,1686539160,1194927871,-385647088,958792048,58659399,-385783831,1589903562,2139301528,108789772,239599398,1589905387,1342121624,-1738619890,239569702,-523116335,84690435,1183383562,263672,-1951381879,126613598,-10582391]},{"sector":8,"data":[-1951375733,1585851143,-1773762049,-1962784885,1194063966,1988528386,-1738634241,209683238,-1961460736,1200336990,-1738634494,340232486,-10582389,-351827674,-128021718,-1006483573,-1993959330,1586172999,-1962439760,-1993959330,-1773761785,1183439095,1988529046,-1982269441,-989890938,-2037671842,-1993932938,-953808825,1607,410304523,-1718204789,-9007477,-1993934345,1183515207,-101213802,72845606,-1952948540,654271622,2132035385,-14227197,17464963,-1960440715,-1470184441,44582531,1589915627,126559896,-2082447676,637722694,1589905289,1200301720,-530660330,48252547,-1006139098,-1960404898,1589907015,-532249632,126428674,-994425089,-1960404898,19268167,1200301575,1191257604,2092960518,1200301587,1194927624,639859718,637945641,451610623,647519940,-150452341,1195058904,638286854,638076811,637945601,1182994431,-2030102376,1183580006,1720072670,-385647105,2122579564,58655162,-2097071639,1963002494,-864616679,-1949665537,-523126202,-1949678077,1347603542,-369680920,-1224802068,-1224736916,112787306,-1167132928,-9796093,-9660789,-1293397934,1823932407,1790377983,-1166606337,-1996351000,-1098663354,1946222462,176063287,-13535998,-33610,-34122,1996477558,-2139684910,-9652481,-9783553,1689714512,-1971912705,-7833857,-34634,1021900406,-163149565,-1949677941,1183435862,-1437169240,-9795957,-9660789,-1981790583,1183572566,-732525614,-1985198455,-13914538,1589923307,126559968]},{"sector":9,"data":[-2086117692,637708358,1589905289,-532249632,126559746,-2085855548,637709382,1589905289,-532249632,126559746,-2085855548,637709382,1589905289,-532249632,126559746,-2085855548,637709382,960956297,-1367360898,-1984280949,2122547270,678691010,1954974550,1753615359,1996443903,-898170932,-4557057,-39754,1996476534,-1099497522,-1698924801,65535,-10189057,969426571,2113889414,-51975933,-10305917,-13732864,1996426870,171547324,1183383552,1996445422,112830,-26032,1996423168,-294191346,16777114,-1133052160,444826,78027264,-1098711040,1962999678,11135235,51019395,-1595341963,-2038529280,-385649664,2122514583,2020934154,-8603905,-8734977,-2853121,1996477046,1823932288,1790377983,1354771455,-10176769,-7702785,-1224767370,1996488568,32368886,-336181623,242679569,-2590977,1996478070,184130214,1996423168,-2005467254,-2590977,-1224747402,1996488568,132507894,1034307209,-780206079,-10438913,724122,1622605568,185899775,434831360,28868227,1996428158,205949710,503319045,-1200160944,16777114,-2075736320,2122514433,276103332,-1701677313,65535,-1701677313,65535,1585727115,49120095,1562371467,707149,-2081649835,1448545004,1183432747,737709054,14477814,16678531,112745333,-990972160,-670890402,-1962439898,440520,1586229239,651690758,112725897,-1947273472,-670890402,38243110,112773259,-1947207936,-670890402,38766886,-150993224]},{"sector":10,"data":[106859502,-1960388605,-930413497,-1152923765,-336134138,1577310347,1334388230,440324,1589964535,651690758,16926710,1191118196,-16520194,2122579534,1534394622,-150993224,106874094,-1960388605,-1194816761,-269025274,50749067,260646616,-150993224,106859502,-1960388605,-930414009,-150993224,106859503,-1993943037,112722511,-1947273472,-670890402,71797542,-947140469,441159,-661918729,637951491,1174687625,1208239755,58639931,-1191241239,1861681158,105251588,-1995942261,1451882054,-161561352,-95974618,112773259,-990906624,-670890402,-1005614810,-1960380834,-930350009,-150993224,106874095,-1993943037,1589903951,1200301814,-1949791234,112936903,-1947470080,106824664,638076558,-1962651767,-1956684089,113401317,-326413056,1463217283,-364460202,1340669952,440321,65695479,1451955782,263448,-1982970231,1589956694,1065428686,91586561,509734,440320,65695479,1451955782,263448,-1982970231,1589956694,931866318,125695499,-654850421,-1207465690,1861681158,373687274,-1994893685,1451871814,-832650032,71797542,651708041,1183385483,-96024580,1187446784,-385875736,1183514826,-398051058,-924253316,440320,65564407,1451954246,-834238190,-992979319,1183567454,1194927832,-385649660,1187446939,-1962933766,-773598760,443991267,637569830,-1996337013,1451873350,702678,651452100,50622455,-1983738685,1451879494,-832650002,-1727558874,653024964,-1993996407,1183515223]},{"sector":11,"data":[1200170508,440324,65695479,1451955782,263448,-1983232375,1589955670,126559946,-1993942793,1975520007,130491909,112754689,-395380992,-1961867773,67441238,-834238208,-992979319,-1960391074,651753223,-1073018999,-953808267,-343932665,-398000381,16416387,770245493,-364445697,957630091,58583622,738109161,-398030400,-1947580791,1178145862,-1960674070,1178144326,-385647384,367723532,-150993224,-259265938,639000260,292995,1191119741,340167658,2095728185,340167651,1978287673,440359,-1947570441,376882392,-16726234,-1206523009,1861681158,-990868504,-2094657442,2097153144,-398000373,957236875,-478353338,957236875,276162630,-150993224,-661919634,638613188,2147418311,1183432747,-767129090,957630091,192735814,957236875,58517574,-1191222039,1861681158,373687274,-1994893685,1451871814,-832650032,-1962439898,440520,-1947701513,276219096,2114468134,-832650168,71797542,1183565963,-28965934,-150993221,-1980724245,1317658698,-364475408,-1947580673,-1947600949,376882392,-1962898650,-767128632,64112383,112983622,-1947470080,-599094800,-338014583,440423,-1947701513,274646256,71338790,1183565963,-28965934,-150993221,-1980724245,1317658698,-398029864,-1947711745,-1947600949,276219096,-1962898650,-767128632,-108917,-1039925690,-150993221,-1980724245,1317657674,-1206522884,1861681158,-990868502,-2094655906,2097153144,-364445941,957630091,-478352826,957630091,662039110]},{"sector":12,"data":[-150993224,-661919122,639006404,2147418311,112727531,-395380992,1589964939,2021860880,192741380,-1947711745,1178144326,-1948025624,1178144326,-1206880792,1861681158,-992441368,-953806730,-1199571200,1861681158,373687274,-1994893685,1451871814,-832650032,-1962439898,440520,-1947701513,276219096,2114468134,-832650168,71797542,1183565963,-28965934,-150993221,-1980724245,1317658698,-364475408,-1947580673,-1947600949,376882392,-1962898650,-767128632,64112383,112983622,-1947470080,-599094800,-338014583,440400,-1947701513,274646256,71338790,1183565963,-28965934,-150993221,-1980724245,1317658698,-398029864,-1947711745,-1947600949,276219096,-1962898650,-767128632,-108917,-1039925690,-150993221,-1980724245,1317657674,-763460612,-1958054654,-472784802,1992614865,9119258,38832934,-1980348791,1586231382,-773598746,9119459,38832934,-1980610935,1589965910,1200170742,1468605958,-228670456,-1946794357,-1993934762,-1993996729,585697367,-25263107,-385649662,1183514778,107935492,-150992199,138806249,-1995811189,1451873350,-529072170,-2328833,1347554422,-1207886104,1861681162,-990868730,-1014246306,-972832116,638028070,-1962780791,-472784802,2126832593,-733574374,637634854,16929161,1996477558,-495517722,1376548607,-388729089,179831007,107935488,-1949020533,-936651170,651460292,-1993994871,1586168413,-773598746,444515555,-1949022581,-1993943466,1367942657,71729922,-58726142,-772776309]},{"sector":13,"data":[-991702557,-1960437130,1351296512,-733574910,-1193912695,1589903370,1878468308,-1933376764,-330921534,-1947314551,-996550586,-1993937826,-1993996729,1589905495,1199777492,1182990852,1183517420,1589942780,126428908,39291174,638338699,637814665,637945739,-2096605301,-1962218426,-1952842682,-1993937826,1468605959,205949698,71797030,105351974,139954982,-774349173,-1897672221,1183521862,-698971180,637569318,-385724279,1183579105,-1956684284,448945637,-326413056,-1006310269,-953809826,132167,-1727248757,105351462,139954470,-1030962293,-1996486139,1451883590,172395518,-60898151,638028070,-1962780791,-1993996218,1589904455,1200301572,1468737030,-60898296,105351462,139954470,184305283,-1727379829,654073483,-1993996407,1183515223,1200170504,73319428,105351974,139954982,654073540,637945737,-1962387575,180510181,-326413056,-1960907645,1451953222,-129595122,-939895159,59974,956581515,1702750790,653811396,163715,-1014280836,1183433356,-396981786,652631748,-63545,38258470,1187512319,-956301070,60486,-1962391925,1183386198,-27883012,15498883,-672595084,-431584512,99112587,1183383562,-262764050,15353543,-1204032768,1861681162,-129629946,-336967937,-373281901,1589903648,126559982,654073540,1589905289,1200301806,-60898300,83641987,38242598,-2081274113,-16060858,1589963334,-364475418,71776550,-1960391553,-1960442297,1183385687,-396981786,-1006630216,-148445602]},{"sector":14,"data":[-1023212433,1183433356,-262764050,15353543,-1003558144,-1960382882,-60898297,-1995994842,1589966406,1200301806,-60898300,83641987,38242598,-768375,1854140998,1191119598,-429996822,652887691,2130986809,126559942,39291686,-1981659511,-92019626,1024095743,91619327,-336443765,-429996947,-16267482,1204233983,-1946157310,1452008006,-431584796,-1947707767,1452013638,-397002246,-202833036,-431605250,-337050764,140428542,653674123,158664505,653543051,1946306361,140428321,-1006138586,-1993933730,140428295,38243110,-2080612668,637860934,-16627831,1187508806,-385875476,-443810130,319603293,-570359040,285212938,1778385664,301990147,1090519834,301990154,939590418,301990149,-721353984,318767370,-1375730944,587267850,1174405889,-1811939062,-671087850,402653444,-1174404290,771817222,771752705,788594442,-1593834751,872480516,218104577,889257732,-67108095,906034953,-1610611967,1006698246,671089409,754974981,1744831254,1040252678,503317249,-1241513718,-251657454,1040187652,-2130705601,1644167428,22,0,0,1167087646,518818645,-326903666,-1957275888,-1070919562,-1980217719,76282438,-990886263,-953808802,-1962934009,1451953222,-230258418,-990620023,-953748898,2631,-1995815795,-13894586,1223706251,192857915,-1962385724,958793286,-2094826489,1962997886,11725059,653418180,722093963,1200170695,2139694604,1204233738,-385875434,1586167979,38243324]},{"sector":15,"data":[2114340665,-125926592,-1003260928,-14284706,-228670457,172460838,-1993947349,-1993995193,-953808257,136775,-396995834,1182990478,1589909746,2139694834,-129579254,1187446784,-352321030,-60912827,956450699,981272135,16416387,1589915508,134161928,-1947050300,1194010311,1200170506,1204233740,100663574,1206408787,-230259968,-228670440,176130342,16402119,-129579264,-2092498943,-385549242,1589968690,650611698,638207787,638338953,18237383,-193528064,1458730751,1577061864,49120095,1562371467,838221,-2081649835,1448545004,637951684,638220171,819075,-1070922628,28836843,-990893312,-1993996706,-1960440201,-472839585,1577313233,206015236,637951627,638601097,638338955,51011467,-773598760,73270243,-1962129525,-1993996706,2123043399,-775517436,65065440,172329976,-1949791335,-628421051,465644441,-96040493,-1946397047,-1952904123,272993224,731503243,-1982653503,1451882054,106859512,209683238,-1962378240,-1993995707,-1002575097,-1960442274,-422506889,1586226897,239110916,637951627,1183516553,-61436934,-763111177,-1982138624,1451883078,-163148804,-134719861,13796312,1183439607,-128546314,637951684,51398539,-1993935290,1183519815,1200170742,1204233736,184549382,812972102,-493825,1996486262,-92864516,16777114,106873856,38242598,-493825,1996486262,-92864516,16777114,106873856,71797030,-443850914,33997405,1560281856,-1979711230,1157628734,1728053506]},{"sector":16,"data":[61,0,0,0,-1296313805,-1864856575,-326412987,-2082959842,1465256172,-1961867637,28906590,2109942528,-136775932,-62486055,-1946530167,1586171462,112914,125682475,-638068489,-1996454167,1317664838,-129594378,1006395019,-1959035709,198216698,50623743,-774689838,343313402,-1961722229,535033934,1465274961,-16222465,1593771638,56187402,1445721726,50757116,1979971670,-371072262,-91553600,-16002165,-771554188,-86912981,-1961593205,1317737086,1361044476,-11053486,1996425334,173997830,1979930970,-128570374,1443038845,-159513604,-2048269854,-129595136,-1946792311,1586231366,2093169660,-1946514628,1962871760,735183620,-86949165,-1961593205,1317737086,1361044472,-11053486,1996425334,173997830,2114148698,-61461514,1443038847,-92929032,988537314,-1946514544,1962871763,735183620,-86949168,-1961593205,1317737086,1361044476,-11053486,1996425334,173997830,1979930970,-128570374,1443038847,-159513604,1583342050,-1962742397,1297948645,-1946152758,1430622424,-1910575989,149717976,1586190166,-2145416434,2080899711,-26105,69140480,185499275,-1955040001,-796066763,2123219086,-1948808202,-1951724474,-1951724986,113146,-6628557,-1929379585,1962931838,-1705568724,65535,1198833675,1358581389,16777114,2089506816,678756138,-14256897,1996425334,-11463162,1284310109,678756156,-14256897,1996486262,-59310088,519730943,543031121,-26032,-1957167104]},{"sector":17,"data":[1452014150,-1207636996,1603928063,49120094,1562371467,707149,1167120524,518818645,-326903666,-1957210620,-16053634,898328180,-1064382324,-1946517875,-1951725498,-1918171578,28965502,-1696910592,411,-360819,1461070964,108698,1958742784,-1248178121,1476395009,858422411,678756306,-14256897,1996487286,1381126908,543031122,1962920243,645201704,1364283474,1342463487,125594,82532352,-1711276104,-310157729,535137026,113921373,196613,66117,204042,65906,210836,66173,202388,66104,209756,66127,5730,-2081649835,1465268460,1988874803,41714450,-2147257086,1183518926,1975520006,71600910,-1949809015,1183385156,-1995117622,1183566406,-934901500,1183432755,440830236,871360128,-330921536,639663812,1183384971,1166747366,-465139454,-1996175485,1183522942,-1982821866,1451884118,209619960,-1993456245,-1991709114,1166801990,-263812820,-1993849461,1166799942,-230258390,1226722955,-335788405,954830855,508463875,-1980269495,-1957683634,-149254,-16353537,1347421302,-3508481,1996474486,309788436,552078992,1490520838,1948305142,-96040176,-1946401143,1183447110,-338654466,-62486269,-1981397365,1586227782,-396457500,639663812,1317604747,1972053734,-461993726,-1996175485,-427810690,-1141691434,159318017,-830470540,1272903456,-1194841269,159318017,-830470540,1222244097,2127444808,-1815181562,-167195008,125051078,-604514057,-1996360064]}],[{"sector":1,"data":[1317658742,-599356966,-1948361079,-956895162,722433032,1183446086,-196703242,-336836983,1177260045,-163149326,-1980610933,-963908538,1183443153,549910242,-1991900812,-956901258,-2141096928,-92258098,-1957595905,1220971482,1861736695,-1949660180,-632910864,1861736695,331744246,-62520367,-1962880381,-528770,-134457719,1317796958,-1983249426,-745801138,-638072693,132219201,-1983655424,134608990,119883776,-758609152,-27883062,-1947836789,116122702,-1947574645,-830412722,410422020,-1995815797,-964439482,-1878136044,-1946246423,197892,-268181295,2094157567,71601135,-344014533,990004363,-1962771007,-867792447,-1948879223,-1946579981,1183572558,-165811204,108339398,343523339,-1073019669,1174605439,-155004690,74719430,-892286256,2094550783,-864142510,1183404149,83263740,1963247350,-698446986,-1996208245,126602310,-2133834103,-956955954,1211266049,-670834479,-1962491005,1325352967,2112895952,49709126,2094026495,29816390,1263208308,-347601013,-1958526204,-371004665,1860959739,113476496,1325336459,2129673168,49709082,2094026495,29816346,1263208308,-347601013,-1958526204,-1981617401,1183437918,-2143491122,1325335758,-1950057262,126604894,-670834479,-1996045437,1200346718,-867792638,208992315,1946273526,108477194,267113852,-1946201367,-523155449,2000410627,-1950057210,-956892090,992965892,712363638,-1946401143,1183568990,49709262,2094026495,29816486,1263208308,-347601013,-1958526204]},{"sector":2,"data":[-732002041,-1949415799,-956892090,173307206,-1994229294,1317665862,-27883038,-15698177,1465257590,-14911745,1996429942,309788436,-351772929,281474597,1183394164,-498169348,-108919,1996427382,-11053554,1996474998,343343048,-15567105,1183516766,-498168836,-2130815349,-956907546,51868680,1177280118,-632411156,2114128253,-163173412,-371175933,2114190957,-330945570,2111458859,-596245518,66471467,1458167886,-149250,-16353537,1347421302,-3508481,1996474486,309788436,-186118512,112642,-443851169,2146909,-458561537,-768409366,-1946045765,1430622424,-1910575989,720143320,2123061078,-1959425268,529207900,-2096607349,1149044217,200822409,-2094304046,1946253436,142525464,-1962520949,1418419292,84092510,52859819,-493638907,142525684,856051339,-25893,1156972544,259268616,-1710459137,65535,58048523,-2097069591,16810172,1996427646,175570700,-16222465,870844022,-1947866364,529206364,-1960552565,1187458164,-947912728,2147478086,15484615,-297351296,1317765120,142525446,184618728,-385648183,-1706032902,65535,710708056,-1962115957,-1958943939,937631309,16285315,-1040775564,729022496,-1925415795,1962928214,645201704,18364159,-16353537,1996425846,1962876424,1962876462,374808110,476053330,-1962891543,887292493,-1961722741,-95515331,-14125825,1979655796,242614032,1610567958,643089412,-1930406263,1552675398,542622762,16008903,-163133696,921370624]},{"sector":3,"data":[383024781,-149497,-1414812757,-1423031157,-1951672180,-1951720377,-1951719865,-1951717820,-2085935036,2122913007,-162099980,-1930396023,382005846,2089615636,-128021700,-259028434,207391491,1996431243,142016266,-16353537,1996487798,745865210,-11067823,1996485238,1376146416,-624897,1676211318,-6663942,1476395263,-310157729,535137026,147475805,147227392,1981869,149488500,-1072976639,-68615307,-24699392,-661733236,-398050387,1183384445,-330941464,1183384444,1178316268,-1996259862,1178331718,-1996260114,-589107642,-1161473,-2027951034,1001210359,92203078,870860425,1178316233,-1996128534,-919344570,-330941523,1183384957,-1379322900,2112767547,-297367291,1183566131,-398054420,1183521406,-364499986,1988825726,187992844,-150506039,1946157506,2011906309,2123069163,1979649016,2122531077,2104820230,638090948,-1960442485,-1960442787,992346709,628426325,142394171,92874387,73238822,2129419835,-329872633,72714534,2112374331,-396981450,-350910170,1975728942,1569400384,2094217990,651396874,637687177,990272905,125759070,653149835,990266761,125692502,652887691,-1023261303,-335544391,209095674,2089497739,-1958900974,2122909821,-339135496,-1864856346,-326412987,-2082959842,1465256172,-1944947003,1975520216,10676483,185353867,-352095040,1183551523,106728206,2084619051,146711,1183519359,73173776,2084619051,146695,1793786495,-46332789,-1957137153,73173764,159367995]},{"sector":4,"data":[1140213385,-335913335,-161576697,-96040640,-1962785653,-1019541924,1183385983,1586054136,-1995969540,-1992230818,1183710278,140297462,-1174404423,1962868754,276102930,1444827474,1392923398,-16222465,1343620726,-1962124033,76091462,-1995553141,1183515204,71600400,-1995553141,1583285828,-1962742397,1297948645,-1946152758,1430622424,-1910575989,149717976,1586190166,-2145416438,2080899711,-26105,34799616,2123087923,1962871562,-1942648009,-1916760368,-964430210,-1515848612,-1425521013,-1425652085,-1175028083,-293404670,138840928,-1956887415,1149830726,175570782,-1873717482,-67770354,-310157729,535137026,113921373,-1864856576,-326412987,-2082959842,1465264876,-1962123637,41910303,-1710785528,1982,1317733157,-1955470580,-108853682,-2090238974,276761337,-1064382324,1473674893,1183432755,-1876956204,-506338863,-26031,1183383552,1975520212,-1874728189,-661849973,-1957183346,-611580338,-1962379579,-203304495,1608224421,101480191,244339287,-1946456344,-16001922,-1705572748,65535,1593835960,49120094,1562371467,576077,-269762509,-2081649835,-2091510548,2097284222,112646,-956212247,60998,-788248949,1356911072,597658,-129595136,91602955,1038729259,-128021759,-1962719234,-28931833,15746759,-1960645888,45215862,1589962451,9119238,-1979818357,106859264,37784358,-1979818357,1191117376,71732208,2096121401,4241622,156211792,1183383552,1975520244,14674179,1207883915]},{"sector":5,"data":[-1995994365,1996487750,-454537206,243712,-1996198153,-523110842,235266257,-1516613632,-1996488695,-1072960442,-1561787531,-19363072,126550855,-375159,1996488310,656644,-163148976,-523116335,-59310256,-1996368920,-1072957882,1586188157,55574252,167483987,1183514624,1087961078,-163149504,-523116335,1342180869,16777114,-330921728,1333051403,1207883915,-1995994365,1996487238,74907646,1342179845,-772389237,1356911072,-386107649,1183383936,-94467082,-1980348789,175570695,243795,1354771280,-26032,1187446784,-1962933778,1342106718,127554307,-1962934262,1342108766,328880899,-1962934262,1342109790,-1801825533,-1962934264,-1956712890,146955749,-326413056,1443425411,-1962516853,-28931833,1207359627,141828104,-1710852353,1112,-2080481653,16810175,-2020931970,65732736,-1996488264,1586232390,-2101378050,108921088,8554379,28836843,-96040704,100433539,1187469950,-1962934024,-422446986,21411071,-1191414017,-1706013152,2717,-1996202357,1219821312,-92864767,1347297464,713370,73304832,-2097004407,-2096957370,2082535550,-1946973242,1177230404,1011321340,1149962121,-96064718,-1995290743,2095779399,16271047,-126448896,-1258297647,1996423558,1310767356,183999056,1586167808,-16742140,-16676684,548993654,-6664114,-1962934017,1082721374,-129596670,-125926654,-1949926368,474254323,-1979955669,1200176199,877103416,-1993324663,1200163911,71797000,1149962121,-96064718]},{"sector":6,"data":[-1994504311,1200167495,306678038,-1995552887,1200163399,38242566,1577058744,-1034033781,-1957363708,216826860,-1070377130,-1930148215,-1950314792,1183385670,105251838,1183402056,-96040452,-1241221493,-1958745089,2123103350,-95515650,-372126165,-1510783418,721962635,-774309945,1223217640,200564363,-150702885,1606626264,1575324510,855640770,-1963660352,147226866,-351279488,-695562151,-1946354037,-1985147786,-930351034,-163149395,-15960439,-613152178,-164452996,732813451,2111436744,265191429,-2136090121,-1020590090,92135633,-150473088,2109815768,66486276,1005113745,-2147254847,-771096074,-695596931,-2146909568,-141881374,-315424974,-903164278,-2146385536,-109047839,-385647096,-1946419070,-628425090,-472783919,-58836159,1191118194,-1962021900,260166,-163148885,-1425915901,-2130394237,-503300893,-25261600,-58815491,-1014965622,266567688,-472783919,2013167163,-196673787,1183518187,37749750,-129594453,984285187,-1977387818,147030238,-787487872,1004786147,91750014,-336312577,-163149043,-1425915901,66602635,2122951424,-15799812,-25261060,-472786294,2117854161,-16420100,233567302,66602635,1183558400,37749750,-773944661,1004786147,91421822,-336312577,-129594611,-1951727613,1074001478,2122951426,2123103742,-2116421636,-1979707423,147030234,-787487872,1105449443,2013167163,-196673787,1183518187,37749750,-129594453,-2085945341,-478083861,-522059716,-369328503,720528,176685059]},{"sector":7,"data":[763494401,160301315,458753,171704323,437387265,166330371,19005695,94306307,378798081,137101315,932446209,71958531,861667329,78381059,375521281,140115971,367984641,147652611,368443393,0,1167087646,518818645,-326903666,1988843018,-754798330,180782054,1385809547,-26032,1183383552,1975520252,-18427,1996437739,12229372,1183383552,-128546314,-1946788156,-1993996730,-1993997753,-953809801,1607,17286950,1204233728,-16777208,1939537014,-1962934271,-2090927034,-443874579,-900899553,1478361090,-1957345904,-661774612,-1207535873,-397410303,-310181847,535137026,46812509,-1873273344,-326412987,-2585058,-1070922122,780368,-1962742397,1297948645,1426064074,-326898549,1996445208,33790470,1183383552,-195655182,108380683,-369098824,1589903644,126559986,81224,1187448957,-369098762,1589903501,1200301810,-773795576,-1933376544,394690,-1980086647,1589967958,1200301818,-163149562,294531,1589929333,268379890,20939558,-953807243,2119,105367334,1273692160,653418180,425857,637957184,-351778817,-228670406,-1995994330,-661917626,-472783919,653948612,-1960443765,29033040,-128022272,-472783919,637569318,-1962782583,-523110330,-1946270071,1178202182,-15893250,1234830966,-1962934270,1860957766,1090406027,2112898619,-28931294,-523116335,-1946532349,1183448150,-296318484,653024964,958793611,58524743,-1946269953,-523110330,1174659281]},{"sector":8,"data":[-61436934,-1981004151,1183575638,-773795330,-96074784,-1981266295,1589963350,126559980,652762820,159188793,-11381934,-387388298,-28931327,-369604983,-1956708491,79846885,-1873273344,-326412987,-2082959842,-11138836,-1600518026,-1996488702,1451882566,1975651322,-18427,2122534891,158662662,653811396,-352172149,-128007104,41388838,637957635,-578865351,-523123061,67494097,1200170496,2005476868,142016258,181402,142016256,653811396,-1727772789,45633618,-6664192,-1962934017,-310157626,535137026,80366941,-1873273344,-326412987,-2585058,-6683018,-2097151745,-443874579,-900899553,1478361090,-1957345904,-661774612,1443818627,-1710590209,65535,-1980610935,-1039403946,-4716939,17426943,653418180,958793611,175964743,-1710590209,880,1589961963,126559986,-1995964634,-1960379322,52824135,1195058695,640646658,-787986549,-1981754912,-1014237626,101040780,-1957670400,-1023150522,1375733253,-159973552,16777114,-228670464,138921766,1589903360,1200301810,-773795576,-1933376544,394690,-1980217719,1586231894,-773598724,-126434077,637945483,1988821129,-773402116,-128021530,638076555,-1006485367,1183576670,1194927622,637959942,-351910007,-228670449,105367334,2122530816,225772028,-1710590209,65535,-352321096,-62485692,1183447249,-60912650,-472783919,653817540,1586167947,-773598730,3745507,1183568510,-773795338,-1933179936,-1957670206,-523109306,-972824367]},{"sector":9,"data":[350769234,-163149056,-335788407,-310157655,535137026,113921373,-326413056,-1006310269,-1960441762,1468737031,-62486270,-989964663,-1960442786,1468737031,140428290,638028070,-1006479479,1183515742,-27882500,638028070,-1962780791,146955749,16973830,66143,16973840,66175,16973841,65586,16973842,65631,196627,65566,202285,16712453,250,0,1167120524,518818645,-326903666,-61385210,-1005816123,1183516798,-1036805882,1183433259,-126449156,460640779,-523112405,-523116335,1988751363,-15930376,1501494350,1190688395,-1191676279,1183383560,106335226,-234683254,-234675062,-234668918,-234677110,-234673014,-234681206,1979921546,-1961588218,-2061584,-1015219634,-422461231,-405745456,-472854320,-439299888,-506408752,-422522672,-489631536,-341126960,-2090967078,-443874579,-900899553,347668490,-1188566272,585836563,-352056647,537704733,314120427,-1189876964,250291213,-905969224,196673552,-1190925544,-661902325,-1957210480,-1898476300,552371143,-768344949,-1523127674,910556386,-1927647863,1586240109,-1881633026,1183835718,38178792,-1996208497,1992616534,-1130526,184573416,-1005488686,864672374,-1946008692,1959136192,5171203,-1961205877,-2489569,-2585825,393865806,-1930002748,1959201728,-96040178,306546982,654067339,-1005304439,1183575678,1166616306,-196703470,340101414,1720566667,-2090967066,-443874579,-884122337,-1942779396,-1070398909]},{"sector":10,"data":[1963211046,136219621,639601409,-1995291513,1200292931,1149707792,105089300,-1022834813,1167120524,518818645,1465309326,-1006219637,1992625278,1604645640,49120094,1562371467,707149,1167087646,518818645,-326903666,205949738,1947092491,207537161,4161574,-4716939,23063039,50478723,-2096663552,197694,117379189,28836610,-6664192,-1560280833,1048773578,1962869706,242679765,-1928562945,1343673926,16777114,-700019456,-6664170,1342177535,602410640,-163149558,-1961987008,-472779170,-1081875503,1946157988,3979425,-1706012007,659,201082505,-1207536192,-286654469,-59310336,153754,-129595136,-990226807,-953747362,83886087,1347551246,-15829249,548932726,635981824,-128007157,653674123,1074153353,-2144991115,-381681329,1709703298,104760075,1081344003,383141517,-26032,1589903360,1200170744,2109737776,-59310311,106650,-59310336,206490,-128007168,809995046,1589934571,2139170552,1950351408,1333798581,954957825,-1946663285,235272790,-1957670400,1175128134,-1005620214,-2144991138,108265535,-1030962293,-122157589,1390054402,2144336,177662032,653811396,536956800,653811396,149447,105286400,138905894,-1993949133,-1993995193,-1993995705,-953799097,459847,-1694730497,554,-2080618869,-443874579,-900899553,1478361098,-1957345904,-661774612,1449192579,33310407,108461824,144794,2144471808,1023769613,108199996,-369099336,1996423614]},{"sector":11,"data":[173795334,-1980742007,-1039404458,-4716939,27847167,653287108,1073743863,-2094657420,1946157695,25815299,38272806,1048775403,1946157830,24766723,653287108,1073891211,71777062,1996440693,52140550,1996423168,108461830,244634,1049856,1375785603,178256,-26032,-1073020928,-71825803,21555711,-1710852353,688,-1980742007,1589965398,1199777520,1589905412,2005608176,652660994,3162311,1200301568,65065218,96636099,1183383598,-94991880,-1728015688,-6664110,-1006632705,-1993934754,1975520007,-62470392,-387317765,-128007168,-1707606234,65535,-1980479863,1589966422,133637872,359940096,379602573,-1933341872,918978,-6664110,-352321281,-401698791,1352140651,503517368,1354773328,379602573,-26032,1183645696,-1957685600,1452012614,656886,28856402,-6664176,-1006632705,-1993935778,762658823,653811396,-1919272961,-1006632957,-14223266,-26057,1589903360,1736451824,1589960449,130492152,1187446784,-335544324,-195115952,-1204289754,1344144148,-1705983949,65535,653549252,753536,-14284683,-26057,1589903360,1204233972,637534468,33703879,-2016991744,138,-1993949133,-1993996217,1589904967,939468536,234906,108461824,16777114,-62485760,49120094,1562371467,182861,1167087646,518818645,-326903666,-11118830,-6681482,184549631,2081259474,3947781,-38271373,16968191,-401836289,1183385705,-162100748,108380683]},{"sector":12,"data":[-369098824,1589903596,133637876,125116416,522022,-999066560,-1960381346,-405732737,776047398,1358710409,385178,-129595136,1392137865,175570768,-16222465,-1092090250,-1012992,1117453430,956301316,779355766,712832523,653549252,536872951,1996431476,73570828,1996423168,175570700,-16222465,-1070397834,112368208,-259325952,1996425451,80452108,-963969024,1589930219,133637876,1316257792,637959819,556931,619395444,863305483,653549252,-13600769,1996425846,-6662392,-1962934017,13039600,723744128,141951486,653549252,856193023,-6664000,184549631,197752256,-955484929,-129466,1187448299,-250,10095734,-1962934266,1599997510,-1962742397,1297948645,1426065610,-326898549,-1000974588,-2144990626,1946159999,931866119,1031140875,-1962260853,302320726,-1957670400,168102470,-1202695680,-1705990142,775,1967190155,-18427,1589923563,931735050,2013210198,2013210120,1354773254,16777114,1996445184,108461832,-1710983425,848,2117859467,-1961921276,-996604858,19270238,287704647,1589905495,2139104778,108331019,124623446,-947191808,-443850914,705117,1167087646,518818645,-326903666,-11118834,244976758,184549383,2081259474,3947781,-38271373,21948927,-401836289,1183385245,-162100748,108380683,-369098824,1589903672,133637876,141836288,411335,18606336,653549252,536872951,-337050763,2139825664,652726530,-1993457269,-1705968570]},{"sector":13,"data":[1594,-1980217719,1589967446,1200301816,1194927618,642610436,134367107,-1694730497,1676,-990087425,-1960380322,-523173305,-1845108527,1372138240,178256,38181456,-1073020928,1187450997,-989857018,-2094598050,-385351057,1996423337,123050748,1183383552,-94991880,-362753,1996486774,142016266,-402229505,-259260791,1963357755,-128007125,105351974,637945387,-788234357,652726759,9077129,75467558,71827238,-405674031,637945483,9208201,-1694730497,1684,-1710459137,1763,477951499,1946580537,209125143,-16091393,1996425334,112646,-26032,-259325952,787203723,653549252,-2147481609,-1070392972,175570768,-1962379521,96636099,1347551246,-11485133,-16542178,-1818620810,-1962934265,1599997510,-1962742397,1297948645,503318730,1430622296,-1910575989,317490136,-62470314,1996423169,29989382,-771031040,92015999,1929395261,-149498,-16705047,384304758,-263812859,200431241,-1207536190,65667071,-262224895,522022,-385649536,-1960443669,-422509961,775981862,1358579337,48538,-196704000,-990488951,-2144930722,1946159999,939468304,221850,-195116032,509734,-195116032,105351974,139954982,653287108,638207745,-15968495,429587062,-1006632959,-148443042,1965031431,9300227,50609795,-401705728,-1073019728,1187448693,-335544324,-262224776,38272806,522022,-14125808,-1207761866,-11530239,-1960442250,1385760327,-1675690160,-359677]},{"sector":14,"data":[-12778123,-993299201,-2144931746,-1005584049,-1960382370,-422509961,775997222,1048772608,1946157828,70713132,268744707,1354773328,520048720,178455452,202803459,70713091,268744707,112720,1354771280,-736166064,108461827,575130,-62485760,49120094,1562371467,182861,1167087646,518818645,-326903666,1996445192,153328134,-771031040,92018047,1929395261,108461838,573082,-149504,-2097115415,2113930878,108461842,608922,-129595136,200955529,-1207601726,1911291903,653811396,-2147481609,-14283916,2023370871,-352321527,-128007143,522022,639726656,-788367477,1895769830,147757614,1996423168,149330438,1996423168,154573318,787152896,653811396,-2097082496,197694,1996431476,163682822,922681344,79168260,-1070378992,-11513776,-1560044514,378077962,28836620,-310157824,535137026,46812509,-1873273344,-326412987,-2082959842,-11139348,-2019948426,184549381,2081783762,3947781,1996426867,170105352,28835840,9955584,556675,1996427902,168008200,1183383552,-61437446,91603467,-335544392,-94452614,522022,638940288,-1708099585,65535,653942468,-1708099585,65535,653942468,-553556096,41388838,-2094602543,1946168952,142016264,1592266384,-94452483,522022,639988752,-16707712,-1207761866,-11530238,-1960441738,1385760327,-736166064,142016259,662426,-9246464,-16222465,1996487798,1042682,1593795561,-1962742397,1297948645]},{"sector":15,"data":[1426064586,-326898549,861296392,-1002837002,-561314690,-1960385583,1183395393,1958743038,161108006,-1996488700,1451883078,1181180,-6664110,-16776961,899350134,-16777206,1033567862,1174405130,637820612,2097313593,142016446,272282,142016256,74138,-1956684288,113401317,-1873273344,-326412987,-2082959842,-2141825812,67134,465060981,-1202708989,1344144150,503518648,-1404662448,1354256406,-6664192,184549631,-954698560,64582,1191117803,-59339780,548174464,1116402804,856222636,-6664000,-1577058049,111149318,-2090952703,-443874579,-884122337,1167087646,518818645,-326903666,-2091493626,1962935934,-18427,-164420885,-2096913729,-243463426,1178142091,-1962183418,60960199,-120457007,-2092562709,-471137081,-310157474,535137026,46812509,-1873273344,-326412987,-2082959842,1187448556,-1962934020,339544646,1029207040,1618214933,1946163517,1785114,473788276,1031369728,980746269,16777114,50897664,-2089358439,197182,1048774516,1962935044,50503963,50464511,91602955,-352321096,1354773250,763034,63611648,-1996240223,1183579206,-3544068,1996425334,-26106,-286588928,-1559869813,-1073020156,-1070397323,-1560081245,1187447562,-352321028,105286613,-1559734645,378077962,-957676788,-1705983949,95,-352073053,49120185,1562371467,445005,1167087646,518818645,1183570062,1981702,71108468,-350194672,142508839,-14584577,1520044150,184549384]},{"sector":16,"data":[2132114642,3947781,28839538,-1593054464,378209034,65733388,-2087075789,-443874579,-900899553,-1957363708,106874092,637945599,1589905290,172424970,168265766,-1962249024,1325335622,1975520004,75400160,-16091904,1589905998,130426378,1575324416,1426066114,-326898549,75399940,855997696,149658048,-1710983425,2177,-1034033781,-1957363710,351044588,51265155,855929856,-1200231488,1344144163,16777114,1975520000,-28915892,1187450112,-956300564,192070,15746759,-28930816,-1930279287,1183708246,-163149332,871913100,-62486080,-1191557495,1344144171,384845453,-26032,540868608,-1207602432,48955393,111394867,104760067,292880387,50609795,-1207601920,48955393,111394867,50635011,-1017256565,196636,16712879,16973979,67102,16973840,67693,16973841,68692,16973842,67637,16973843,68571,196628,65704,16979501,68790,16973869,68725,196655,16711942,196933,16711801,196934,16714585,196935,16712790,196936,16712851,196937,16714610,16974154,68215,196666,16714541,196939,16713891,196940,16714092,16974157,65667,16973893,66832,16973898,68115,16973900,66918,16973905,66865,16973908,66880,16973910,66259,16973912,68251,16973916,66286,97,0,1167087646,518818645,-327034738,1187447074]},{"sector":17,"data":[-2097151868,1962935934,24570115,503527608,-26032,1183383552,1975520136,571401,-26032,1996423168,7256200,-1706012007,85,-1996237661,-16525802,1874364534,1347590400,27290,60596992,60692105,-1199016193,1385758721,8362576,-1767702528,-1743353597,-2005467389,-1728001864,-1801826222,-1560281088,378078096,1996424082,13219976,-1706012007,169,-1996230493,-16518634,-893876106,1347590400,48794,64791296,64886409,-1199016193,1385758923,13867600,-526188544,-501839613,-2005467389,-1728000840,-392540078,-1560281088,378078184,1996424170,13482120,-1706012007,253,-1996236637,-16524778,-809990026,1347590400,70298,64004864,64099977,-1199016193,1385758934,19372624,-459079680,-434730749,-2005467389,-1727998024,1016746066,-1560281087,378078188,1996424174,1030280,-1706012007,65535,-1996239709,-2096902634,198718,244319605,-1207818520,1344144198,503529144,54376528,-2037559266,1343684324,1342197944,116378,1958742784,-460944099,-1202710786,1344144206,16777114,1975520000,112649,-1560082781,1187447566,-1962934138,-472807842,-2016943151,932,-2088352001,2081064574,55752938,-1070903266,1371033680,-1924129277,385803398,10532944,36018768,-2037579776,-2037776668,-1769144610,-2033713440,65250,-1631317269,-2030043426,-2144928034,-227213249,-18708737,-18964796,4161574,-2037521291,-2037776668,-1769144610,-1024852256,56342528,-1224781794]}],[{"sector":1,"data":[-1224737056,1522073310,-1924129277,1343663686,1342197944,237722,1975520000,9038083,-1985067379,1452051014,638184332,1949056896,-1975058676,646602436,1962950528,-1973500690,646596351,1965834112,-16520352,1589938758,1065363082,116683808,-1907978925,244338710,-1929271576,1343655494,16777114,-6664192,-1996488449,1950385734,-2040624197,-472783919,61128579,-1207602176,1022099455,-18827521,-18958593,16777114,-2040624384,-472783919,61114249,-343652609,-560020341,-561577986,1065363198,-887552,-2080447858,16704190,887686004,-2075751425,-1962742397,1297948645,503317194,1430622296,-1910575989,149717976,106873942,-1995994330,1187510854,-956301060,63558,-772252021,-1846813,-1962696009,1174535238,142016262,688289535,1996487238,55679738,1183383552,-992441348,-970586506,1191116800,-128021508,-472783919,61126655,33310347,-16382394,1177093750,-92864518,16777114,-62486272,1992611979,12985862,-62456064,-2080880897,2081093758,-310157673,535137026,80366941,-1873273344,-326412987,-2116514274,-1207915796,1344144228,1347469355,503538616,1518767440,-1202710785,-1706033072,65535,-1918220663,-1979753850,-1929423226,-939566954,61013062,1183531755,60960252,-120457007,2097154621,1488387901,1454833663,-1404662273,244338710,-1929363736,1343663174,173466,-60912896,-1631320183,-2030043306,-2144927914,-227213249,83641987,-11100476,4161574,1183560821,60960252,-120457007]},{"sector":2,"data":[-1962742397,1297948645,-1873273141,-326412987,-338129378,1065362971,639530028,1948270464,172424984,-1006138842,1191118430,126363142,638213828,1962950528,106874076,509478,-1962520833,-2144991650,74791487,509478,-1962742397,1297948645,503318730,1430622296,-1910575989,250381272,-1710328065,1249,-1980348791,1589966934,1200301814,-196703992,522022,184841480,-15829568,-1248194954,-1207959548,1676279804,-161561599,21987366,242679560,331418,242679552,16777114,-230258432,58572811,-1962851863,999884870,1912802326,990279491,1979910662,242679611,387994,-163149568,-2080876919,197694,922724724,62391044,28856336,1183535104,919030,520048722,1996424092,101030414,-55050240,16050623,-1710328065,65535,200427145,-385647168,922681570,62391044,28856336,-1070903296,520048720,178324436,201722627,-1587907581,378209034,1183384332,-61437446,-1946532213,103545942,370869002,-771030260,91372407,1934499901,51028276,51119627,1996434292,-214796,-26032,-1073020928,451478389,242679807,16777114,2144471808,1023769791,-1200422852,-335544904,70713195,268679171,1354773328,520048720,2122515412,326434822,-15829249,1996426358,142016266,16777114,-15602944,1996426870,175570700,-1710721281,65535,-1947056503,1178142790,-14518798,-6680970,-1996488449,1451882054,1958874104,-161561584,23560230,242679799,16777114,-230257920,-1962742397]},{"sector":3,"data":[1297948645,1116874,3277059,65537,92143619,10158335,75235587,1179649,77529347,1245185,93126915,1310721,2228483,3080193,4194563,3276801,23920899,3801089,41877507,21889279,41484547,4521985,65077507,4587521,52560131,4718593,25231619,5701633,96796675,15794431,98041859,15859967,85721091,16122111,79495171,16187647,1167087646,518818645,-326903666,1187468816,-1962934030,2013203550,175570690,-16222465,520029814,1183384536,2126515186,16574723,1183439095,1958743026,207522571,1200209971,71796998,-15966581,1183646327,-11528460,-1962680290,264697840,-1961987072,2013203550,112642,-333512880,281474819,-2147191786,-142544050,1946681542,-870383799,-96040701,-1946397047,1200295006,105319172,1183524212,71773178,184964891,2133294290,983055621,1317019762,1586200819,-1983892724,1200162375,-1961891068,1183517790,-61436934,-1996208247,-956889513,1869873408,720651914,636015076,1451884545,-1309267212,-2115316989,184549858,-196179262,123265,1265942795,63708927,-1980086647,1586232406,71797516,1946568459,-96040166,453265195,-771029417,92219772,1924122685,-212959198,-1961759872,1183517790,-61436934,-1996208247,199951959,856448651,105351616,-1962653815,-2090929594,-443874579,-900899553,1478361096,-1957345904,-661774612,1444998275,-16222465,280495734,817385472,520048640,-259325040,1962933309,-49901]},{"sector":4,"data":[-167048844,-4714627,-1202525185,1307262976,-335545416,1183667784,-11528476,-16524258,1996425334,-465138426,-1427615722,1958742784,-465138419,520048662,-1073019920,1085851765,146296832,-6664192,-1996488449,-661921210,855799689,105351616,-1962653815,-310157629,535137026,80366941,-1873273344,-326412987,-1948742114,1950352966,108954374,-1207601920,367788031,-16359797,520028791,1996424144,-26106,28835840,49120000,1562371467,182861,1167087646,518818645,-326903666,106859268,855799807,520048832,1586168812,41418502,1342179256,65281791,-1962742397,1297948645,1426064074,-326898549,1187468860,-956301110,62534,385238669,175570768,-1710721281,65535,-756085,2055271494,-193658634,-957057397,-16714174,1988883534,-163395852,57391162,1183666206,-1202710794,1344144234,382486157,2668624,-26032,-1073020928,-1070398091,-1929302295,1183435846,-933851962,30033607,-1005327616,-2144942498,125119551,509478,-3520769,1589954118,1065363142,-991660800,-970587042,638651975,319768518,223313958,-867791615,-1933162871,1187498070,-1962934028,1178192454,-385647372,1589903575,1065363142,-1959234560,-1072958394,20781428,1027437568,1769209858,1946157885,277886,-1897331851,-15144192,1996474486,-401698618,-259325782,125105675,637820612,-1006536823,1191167582,1065363142,-385649408,-269811583,650534596,1953382272,1065362950,839152974,-1005196352,-2144942498,108293951]},{"sector":5,"data":[1329561638,28312693,45089515,637820612,-352041080,-931725378,-1866041601,5302286,-166989685,1589947764,1200104964,-995824893,-2144942498,74789183,49004594,1589904048,1200104964,-997397755,-953809826,2119,172476198,-2144993280,638061647,269242240,-36631,518648902,-443851009,574045,1167087646,518818645,-326903666,-62470396,384499712,-150992200,1183448174,126494460,3157400,-244223,1589904966,1065362950,-1948158720,-310117306,535137026,80366941,16973828,65975,16973829,66050,16973831,66206,16973882,66148,88,0,0,0,1167087646,518818645,-327034738,1448542434,12863175,274631424,1149974411,911510324,-1982183799,2089540694,38112050,-991279479,-1960388002,1183390023,-1996125280,-1960387002,-2037836217,1166802770,-465139441,14960375,-1205963774,-11534335,1996483190,34642592,1183383552,81360,1187449981,-352321072,-800667899,1183514624,67118564,-1952168311,2483270,579242248,-465138689,-1995440091,1979699782,251783172,-5618039,-119011723,1350994190,-1438217217,-11499989,250210384,-2865527,1358909622,-1995292184,-1946201978,-2043958714,-397344944,1183387343,-834222124,-1070923776,-1984018807,1183431750,-1203336774,651845316,-2011347062,-1977158074,1183325767,1200236224,-163184097,651576968,-2011150454,654269574,706234250,75236,-941603191,55366,1347469355,-10849025,-6662028]},{"sector":6,"data":[-1996488449,-1072976826,719913845,276233988,24746576,1183383552,1975520174,68151555,-1206880513,-1706033139,65535,-2083764599,1963081340,276234034,-11111169,-6663052,1375731967,-26032,1183383552,1975520250,63301891,1343256319,16777114,-62486272,58048523,-956060951,115782,-1992407925,-2098595770,-1983894781,1183425094,-1639544378,-1950988663,1183403076,105286626,-1950202231,1451952198,-431585014,-991406455,-1977162146,1317439495,-163149057,-11631048,1183451506,1317419200,-1979222273,-2037852602,1183514446,1317415158,-528579585,-1978240000,721374878,-773598721,-631372829,651970190,-348829813,-631323641,424119078,-361300144,-1700759809,687,-372750711,1149960741,-901346990,4750467,-2037766796,-2043084964,460717902,21644427,1150011974,-498718386,14843523,1191119231,1346669514,-1948159,1996427382,-25910,1183383552,-1031896118,-1000770560,-1977162146,1183318343,-163149132,1924417080,-1069118968,1991525944,-700020218,-1967896952,1177089606,-528579660,-1978305536,-13978530,-472783919,-1898291709,-1960387514,132855111,651845316,1343833995,-1411329,-6643594,-1996488449,99347526,15484615,-965280000,-4819201,1996477558,-327745592,-2197761,1996474998,-1505325616,-2037559274,1343684436,-2096742424,1963063422,-934900881,63981059,58051142,-16725783,1996427382,-629735460,51267211,-1957649850,1174604870,-2037755746,-466944178,-361300144,-6260993,-1224745354]},{"sector":7,"data":[-1224736942,1996488528,-797507640,-5998849,-56650,1996477046,1421771722,92012799,-352321096,1354771202,-10582387,1183666198,-397404456,1743455938,968377995,2113885318,1418103559,-1203336705,968509067,2113885830,1451657991,-1169782273,968640139,2130663558,1485212423,-1136227841,968771211,2130664070,1518766855,-1102673409,13532803,-2037702283,1183448916,1451658222,-263812609,-10975605,-1947056503,-1979753850,1187509318,-2097151538,1946206846,-1505326217,-1949940087,1183426630,1354662838,578027775,-3770625,-1694543690,1055,-4819201,-1979756362,-1694556026,1039,-14645757,1183515627,-1572435514,-11485565,-14519296,-1224751498,-6619312,-16776961,-1224755594,-2037776560,-6619362,721420543,-335602042,-1236890877,-1969338743,-2037861306,1183579982,-934901268,-1947842817,1325384262,1958742978,-36771581,49839747,-1830222988,242679552,-1928562945,1343680070,51267211,-1957640634,1174604870,-2037559114,1343684436,-1914800385,1343666246,-3508481,1996476534,-1435041884,-11487489,-1915455745,385819782,-1337553584,-2037559274,1343684420,-1962205720,973031558,1962886278,1250331495,1183201791,-10652417,146280566,-6664192,1342177535,319898,276233984,-14383475,1996443670,-25936,1996423168,-1401487600,339354,-2094142720,2080561278,276234018,-10582387,1996443670,-25896,1996423168,1585876240,-11528449,-6629258,-956301057,55366,-2080878849,2080503934,-59381501]},{"sector":8,"data":[37649539,1996428149,-59310320,347034,-92864768,349082,276233984,-1697876225,328,-15698177,848998006,-16777215,-6640522,-1962934017,1600046150,-1962742397,1297948645,503319754,1430622296,-1910575989,-1964211752,-1957275904,931860062,-1959508853,1183397460,-531199522,-1993194357,-661926330,-1996339317,1589964358,1200301790,-1337554663,-1949409653,-498693881,652107403,-1995028597,1586209350,256347086,-135772535,33613894,28843636,1996443648,-1334378514,460954,-666466048,2097152317,-666450164,99287041,14173895,-398030080,-1996226523,1586213958,74973134,-1995857176,1586215494,108527566,-1995860248,1183555654,-1606014022,160032848,-2472311,-397369226,1183386850,-1169781856,1352681003,-1995869464,2122570310,594870280,1183432747,-1706653290,-1952954743,1183441478,-1773761124,1996443670,1354771360,196995152,-956124951,54854,12863175,-968440064,1187446784,-956301112,51782,652107460,-2011347062,-1977157050,1183325767,1200236236,-96075233,651970184,-2011150454,-1977177018,-467003321,-1996488411,-1070865338,-1984805239,1183436870,-1035564626,-1991490421,1183573574,206998282,-1981135223,1589963862,126494442,-1969338744,1178139206,-1979157858,1178127430,-1979287906,1183374406,-96040290,-2086779352,1946215550,-1635874028,16770945,-405674031,652107460,-348831349,-564214777,424119078,-294191280,-1699711233,1956,-372095351,1149960593,-733574830,4750467,1183458164]},{"sector":9,"data":[-1639565140,1149967221,-733609654,692995211,2122573382,159318246,-1949022465,1174491204,242679782,-1697351937,594,-2083240311,1946159230,-362888104,21465638,-1967110520,1178139206,-1979157824,1178127430,-1979287872,1183374406,-96040256,-2084551128,1946215550,-1065448684,16770945,-405674031,652107460,-348831349,-564214777,424119078,-294191280,-1699711233,94,-336574839,-263796987,1996423168,-1032388656,-2459905,1996477046,-495517712,-2853121,1183701110,-1924131146,1343661126,-1962849304,1178190918,-1962508892,1183425606,-968455228,2108048953,-1505326330,-1949940087,1178191942,-1962508632,1183426630,-901346360,2125088313,-1438217466,-2083895671,1962989182,-1538880739,-1947056503,1183426118,-1471771660,-1946794359,1183427142,-700004360,2122514433,1752432648,-1984543093,1183567942,-1035564616,10518147,1996430452,-1602814000,558746,-1032388864,-1952418049,142187256,-956104704,1183515627,-1304000048,10518147,1996430452,-1602814000,258202,-1032388864,-1952418049,65051384,-953483264,1183515627,-1371108926,-2000664950,1183555142,-767129104,-1947580673,1325336646,1958742792,-27072253,1347469355,384976525,-797507760,-1916635393,1343661126,-1914538241,1343669318,-2853121,1996478582,-1166606412,-6260993,-2037523850,1343684470,381437581,-1773761200,-806858730,1216119558,-2096335872,1946158718,-431584506,-1957935991,1177263174,735087512,-1706128448,-1953083861,-2090901823,-443874579,-900899553]},{"sector":10,"data":[-1957363702,373722092,359972875,1946387517,117980541,-1942139788,-385649398,-773259091,140428288,52053643,1174606918,239469324,-1962440410,-1993992122,1589903943,130491908,1183514624,205914900,638469635,-1006352503,-953809826,583,638600843,-385464439,1589903504,440830728,722617899,1177226310,126428686,639125131,-1006483575,1183515742,651753230,1183516553,205914900,1589951979,440830728,-1962440410,1177229382,239479568,38242598,-1962647868,-654897594,38242598,638600843,-1006221431,-953809826,-1962934265,1174606918,1200170508,-1004016892,1183516766,126428698,51922571,1174605894,1200170510,73319426,38258470,1183514624,239469328,-443825685,1622621,-2081649835,1448556780,640310980,18368502,1183458676,-773576156,65065440,96636099,1183383603,-698971692,651452100,1183385483,1200301784,-1977357564,-467000250,1174659281,743869226,-1996475643,1451872326,-799095598,-1995994330,-1960388538,1177223751,-163149352,640310980,640370571,53303179,1183438918,-396981786,377454886,142540928,461340966,92143744,-352321096,-1983894782,1183571526,-297367274,15629955,1374225277,-163149054,-1948629367,1452009030,-230258200,737433225,-532248128,-2081798519,1962990206,35645699,14581379,12062068,-1207178368,1177092097,-1195250706,1183448960,-562134070,-1005816832,1183052382,-1960443150,-1005917433,1191178846,126494450,1005620120,57985606,-2097086487,1946214014,-228670452]},{"sector":11,"data":[49432195,-351827162,-228670454,653412095,26740618,2122574406,208928990,-2081268028,637727302,183175051,-893244,-1977159098,1174509575,-361300000,-14518529,1889149046,-1996488693,1996488262,511115232,-1709410561,3138,-1946663287,1178148422,-16550408,2122577998,225706004,723404427,731510854,-336014910,-1950340350,-25295880,-1147389,2122526326,477364250,444006231,779162,-126419200,-1994754305,-711275962,50331659,49007174,1174652811,2122534952,477364250,444006231,827034,-126419200,-1994754305,-1868904378,721420300,65783878,66602635,-11524538,1996425846,108461832,-402360577,2122516263,91488478,-352319816,243715,-371571159,1979842233,-562134038,-1005816832,1183052382,-1960443150,-1005917433,1191178846,126494450,-532282984,-1411329,1996431990,206805536,1183383552,-529072130,-14780673,-845538186,-1996488699,1183578182,-129615586,1325335413,343835640,-1962052608,1177230918,-1037329928,49019089,-125059029,67010051,1996484222,444498734,1461482496,-1709541633,3270,-493825,1183390326,213424842,1174601728,-1962742838,675677127,444498768,1461482496,-1709541633,2142,-493825,1183390326,139565768,1177223168,-1962677304,1174665286,1996443686,142016266,-16353537,-1511521162,-562134266,-1207536640,535363588,178431,-2080433687,1962940030,-35395325,-384416117,2122579424,158662674,1080963,2095645557,209617666,-955223040,56390]},{"sector":12,"data":[51922571,1174607430,-1961956594,-654897594,-1948498295,1174607942,-263812842,640310980,-16222209,1996430966,224762396,1183383552,310281210,-385649408,45613341,1996443648,477560606,954010,-465139456,2097152573,-465123579,1988820994,-462027782,2082371129,-339309820,507939587,-2081667447,1946162302,507939597,-1712568789,-120470997,-1070923029,-1948023,2122526326,544473114,64767627,-11476410,-191227274,-16777203,1996483702,-1694987494,3559,116115203,64767627,1174659654,2122534952,544473114,64767627,-11476410,865737334,-16777202,1996483702,-1694987494,3622,65783595,65816203,-11524538,1996425846,108461832,-402360577,1988822295,-495582224,-2094106881,1946163838,1996445210,240753178,1996423168,444006380,1285224587,50331662,-1962742841,675677126,444498768,1444574208,-1709541633,3809,-1280257,-125101450,972442,-339268864,-330921213,1344685571,-16091393,1996425334,74907398,-2096819224,1962938494,17950979,640310980,-16091137,1996430966,190814748,1183383552,-96039940,-771996117,62495200,-1946552576,-59374608,-2081655159,1946162302,507939596,731498027,-336014910,-1983894782,1996481094,444498734,-1960938496,1174658118,1996443874,252680730,-11141120,-125101450,984218,-339279104,-599356666,65160707,-2091898810,1946163838,-599356642,1357006339,-1709541633,3917,444006230,1083897995,721420303,-1962742841,642122694,175570768]},{"sector":13,"data":[-16222465,1996424822,66971652,66090635,1996481142,444498734,1444574208,-1709541633,3955,-1280257,-125101450,1009306,-339279104,63343362,-2091898810,1946163838,1996445210,196844058,1996423168,444006380,-1382352757,721420299,-1962677305,1174662214,1996443686,142016266,-16353537,-102235018,-1956684285,750935525,-326413056,1853949419,-2129784828,235930750,99349629,268715649,75399950,-1946846208,-443874234,180829,-2081649835,1448545004,185616011,1025144000,58000260,1023524329,58001160,1023511273,58002060,-352198167,73319482,640697995,2122516361,175374358,-1725938037,-120470997,-1070923029,639786692,50611971,1589913670,1200170500,776375044,38242598,639649283,-1006221431,-1960442786,1183385159,1200301818,-28931838,-1995994330,-1960380346,1183384647,-11335940,1996427894,779550512,-1929265432,1343682630,-15567105,1996435574,28174382,637820612,1589905291,126428684,637820612,-1006483573,-1993995170,1183515207,1200170748,-28931324,105351462,637820612,-1006352501,-1993995170,1589905479,1200301572,207537158,172460326,653805195,-1962129527,-1993934266,1589907015,130491912,1183514628,-2068211436,200931075,-1962052142,-140963258,1976699897,20048131,637820612,2147420103,71812902,-953778176,2147418695,105367334,1187479552,-2097151754,2080700030,17426691,-772383093,-991702557,-1960440706,73319473,2117548326,931735043,-772383093,-991702557,-1960440706]},{"sector":14,"data":[73319473,74922278,-1993997187,2123039863,-773336586,207537383,40995622,637820612,2114090809,2005476868,-159479038,-405674031,638344900,-1006472821,958792798,75302519,108497190,-336181505,377389962,-1962249216,731455558,-336014910,-994039038,52832862,1174602823,73319472,-1006139098,-1960435106,-25695993,-1962647868,1174613574,1200170528,576635906,38243110,-1004124669,-1993997218,1183516231,126428720,1474179,1183527284,-1037330144,703330513,-1962647868,-1993986490,1589903943,1200301602,642122502,637820612,-1962522743,-1993985978,377389831,735016192,475972800,71762726,-1003469309,-1993997218,518587463,-1956684034,784489957,-326413056,1460726915,173982806,725060390,-1960442250,2116747903,142508804,1444574208,-1710721281,4708,142016343,-1695136119,4696,-336181757,63343362,1183385158,142509048,1444574208,-1710721281,4765,142016343,-1695267191,4753,-336312789,63408898,1183384646,173982970,74943270,637957675,721846155,2122515582,443809800,142016342,1230234,1996445440,-230258424,1227162,-230292736,-963968277,-1996077565,2122579014,443809800,142016342,902298,1996445440,-263812856,898970,-263836928,-947191061,-1996208637,1589968454,-129594614,-1962440410,-1993934266,1183515207,1200170748,-28931324,105351462,-443850914,705117,-2081649835,-1957297428,-1181154234,-101252220,-25038197,159252930,50742923,-339661882,105286405]},{"sector":15,"data":[-1956723197,79846885,-326413056,73319510,-2093511898,595329790,-15698177,1996425846,-90548728,-16777212,1996427382,142016266,637820612,194656255,-1006632955,-953809826,-1006632953,1183516766,126428686,637820612,-14272629,-773402361,140428518,638338699,1577205897,-1034033781,-1957363698,149717996,1988843095,209619726,637820612,-523171957,1174659281,173443848,-1980217719,1589967446,2000234232,637957628,1962835769,73319493,-786461914,65262051,1183713374,931735050,637820612,-14284917,-774337785,65262051,1183713374,2139694602,73319426,272597798,1996427388,-11053552,1996425846,-397212152,1600061223,-1034033781,50335246,17648128,53314048,-16300032,50402560,18039552,53676032,17118464,51515904,-15509760,50406144,16850688,50893824,-16460288,50340864,17121280,53548288,17089792,51557888,-15585280,50417408,-15582208,50417664,17088256,53432576,16867072,51272960,16868864,617728,0,11468800,34275677,57148090,79889429,102499696,125044424,147458079,169609587,191630020,213388306,234884444,256052898,276959203,297537824,317723223,337515400,356914355,375920088,394401526,412424205,429988124,446962211,463412003,479337497,494607623,509287916,523378376,536879002,549658722,561783072,573186516,583934589,593961756,603268015,611853368,619652277,626730279,633021837,638592487,643311157]},{"sector":16,"data":[647308920,650454703,652879577,654452472,655238922,-661903600,-1957345904,-661774612,1183568435,-2116515066,2114159851,117976376,-2125844098,2114390251,117976364,-661903893,-1957345904,-661774612,1183568435,58993926,-1958080130,-2064940584,755662339,58459912,-150803646,-1722330408,-150992199,-774337551,-1081397533,-1959919616,721420935,1364218567,16777114,-1178139904,1996433168,-1705947128,289,-1036821921,-310132181,535137026,80366941,196609,65840,11650,1167087646,518818645,-326903666,-1957275892,1187448950,721420534,108954623,1446016260,1342177720,-672657776,200838143,-385649153,727056627,244338880,-1979726360,1958742789,14805251,59152983,-13959168,-2097096983,1963263614,45635097,244338688,-1946181144,1979649016,12445955,243798,62441451,141358848,72125337,1183447543,243964,-1727369993,-150582133,-96040455,425603,2122523508,192807174,-1727380341,-134590837,721611769,-1949791296,-1952905148,-67634082,1317652483,-163148810,302375121,-6664192,-1962934017,1962871800,-62485668,-1962392183,1166670406,108954378,-1962576637,48958020,1166655531,38127372,1183580158,239438086,16154243,1183526772,1166625014,106859268,-2020875311,1166606616,-196688122,233504768,-772514165,272746467,1191182335,71666676,2096383545,1590135787,49120095,1562371467,313933,1167087646,518818645,-326903666,-1957275884,2123042934,172395278,-1995680117]},{"sector":17,"data":[1451882566,138841082,-990886263,1182992990,-1960443382,-62486265,-2096472437,637667910,1183385483,243106812,-1724156672,-150319733,1959922681,19261699,-14125825,79177332,1996443648,-92864760,-1946650881,1344155204,1347469355,507266189,1354771280,710708048,-384016385,1325334775,38112008,990266883,561314886,16008903,1444080384,-193527977,50480523,-397408698,1191117024,71666676,2096383545,-62485530,-1006484087,1182992990,-1960443382,-163149561,-2096472437,637667910,1183385483,139395058,16008903,-1954878720,1844966470,-1949791480,1844968518,734528262,1317604429,-2094797842,2113931390,173982757,34227843,-1995994330,1586230854,172393226,126559746,-899447,1183516750,-297387534,1183569277,-297387530,1183523196,-297387534,1586174333,-1914449420,1183387713,-2082960404,309722943,-1979955573,1443621639,-193527977,-386107649,1191116852,71666676,2113160761,-8656637,1946172803,905926164,-362753,1996486774,108462064,-2014835056,-2090901762,-443874579,-900899553,-1957363700,216826860,1988843095,142510858,-788111733,272731107,200689289,-1956086592,1844905542,-196703992,-134855029,1174603373,205859828,-1946663287,1183446598,71732218,50753015,1160508486,-62486260,-1996208501,1962933830,645201704,1342182072,1342177976,385369741,776244048,-1070903266,1150111824,726670908,-1957670720,1610558044,106859292,1103619025,1593835280,1575324511,503318722,1430622296,-1910575989]}],[{"sector":1,"data":[82609112,1988843095,-335598840,175570704,1149982550,105251586,-11605936,75249991,1015278463,-15895552,889129590,-1878624513,-3938290,-26026,1599995904,-1962742397,1297948645,132810,4587779,458753,12517379,367984641,0,0,1667845408,1869836146,1461744742,1868852841,1428190071,544367987,1702129225,1667327602,167772261,1145130828,1297369410,11489345,1145980169,1279347012,5785423,1413829393,1163018563,1229734484,1230261070,11027789,1413829394,1346980931,1380011842,1162434116,-1823324841,1279462144,1464161103,1329876553,201337687,1129596231,1397965132,1162690894,1393164346,1095649097,1330794572,335624771,1279871043,1313429316,1180127044,1347243858,1414416719,1393361087,1230459973,1464812622,1196314444,1225261192,1397641027,1447385673,1162282496,843274068,1393033534,1330009157,374560067,1145375488,1314346057,1330794564,318844227,1465140551,1329876553,1480938583,1313164372,642274375,1414728960,1128879169,1346653783,776163154,1330646017,1498633299,1381123411,21123663,1162170379,1397050699,1162297683,1343094893,1096045391,1162694736,1195463507,151024709,1297436229,1347375696,318774099,1414743364,1415139154,1464554305,1329876553,1093817175,1380321537,1380273473,1398031173,1380125184,1163149637,1431192909,1393098903,1230263365,844252493,1192034632,1230459973,1464812622,1146244951,1124860037,1413563730,1313429317,693587780,1313148416]},{"sector":2,"data":[1162625601,1431192909,1296389193,1191837851,1279546437,1163151687,369122125,1129596243,1163284047,1230459986,1464812622,1195984200,11293768,1413826319,1414418243,1112297298,1213420882,1225261382,1313429331,794251076,1163069696,1381319508,1163022163,1163068928,843274068,1376321855,1095060549,1128547667,1124991044,1380009292,1296912195,1095062082,251712331,1414745936,1414092113,1397966157,105203521,1229457664,1094927684,-1504426670,1480919808,1230459977,1464812622,167772755,1397966157,1111836481,88143,1414744339,1497517911,1212368212,1380995649,1481197125,1124794419,1413563730,1380008773,10703941,1146115340,1464161345,1329876553,167803991,1145130828,1230132307,11552590,1163019027,1128617025,1163284047,1230459986,1464812622,1326252202,1129203024,1112557900,1146241359,1191510153,1128551493,1191968834,1230263365,1329810243,223628885,1163070720,1313429332,1465339716,-2042342833,1162283776,1313429332,1146572612,167789379,1145523268,1229738569,6575187,1431257877,1279480910,1329745993,1178882625,1095586383,9392980,1229018891,1397050708,1162297683,1225457776,1464749891,1380992078,20005711,1413826318,1381127491,1414811205,256200009,1398082816,1180652101,1380340289,742739265,1313146625,1313164612,184597333,1163023177,1296389187,1264145488,1162284288,1397050708,1162297683,2001948496,1163003904,1329808449,13389133,1330397966,1279477075,1329745993,-1975233983,1162284032]},{"sector":3,"data":[1095517012,1330402131,8603470,1413826321,1297307987,1279345743,1145981271,12408655,1095910411,1313164631,1380008533,1342767264,1414416705,1413694802,1292501317,1162891097,1297040206,167827533,1497453127,1230132307,12142414,1279870472,1128616524,167792980,1397114447,1163023429,5067843,1397050635,1162297683,1346716994,1292566632,1465208389,1380992078,20071247,1095715848,1329809732,167816782,1145130828,1397904707,11358799,1413826317,1431192909,1230132307,10569550,1195725325,1163154249,1095517010,3756883,1413826316,1296912195,1413567571,234932805,1398031699,1163154265,1296651341,741957,1229867271,1347436884,1192034309,1498633285,1296389203,1431192909,1225457820,1095517774,1163019604,5133379,1279871754,1296651340,1194480197,1397035521,1162887491,1296912195,1129207110,1313818964,1377108182,1397311301,1465009492,1329876553,1397050711,1162297683,1225719926,1313429331,1448562500,1112101705,3229004,1313166091,1397050692,1162297683,1158348911,1464685902,1329876553,3560279,1095715848,1313164612,201365077,1129596243,1397965132,1196314444,1141375108,1230455122,1414418243,1162087680,1330795603,1313429337,894914372,1163071744,1398362964,1094995789,1313429324,-1135128764,1145114624,1414747466,1145981271,1163024207,6706243,1413826319,1230259009,1230456150,1464812622,1158152252,1095779406,676613705,1162087424,1330795603,1380008793,10769477,1279870474,1313429324]},{"sector":4,"data":[1146572612,1162284033,1297040212,1381123405,13324879,1146308882,1430406988,1313821780,1128613955,1648641355,1163070464,1297040212,1096045389,13190484,1095914512,1095521102,1162691924,1195463507,167801157,1414418243,1330791251,20335692,1296388618,1346721359,407916370,1094913536,1112819026,1263421772,1129271888,1191838007,1162695749,1195463507,234908741,1398031687,1280266819,1312903756,4277575,1329809679,1296125518,1145984837,1129271888,1191838016,1431524421,1313164610,234921813,1128613955,1196180555,1414812994,6377039,1313424906,1313429316,844582724,1312884736,1347375193,3428437,1397048331,1498370644,1431192909,1342701720,1380862292,1280590661,1162285568,1296651348,1163022917,1431064403,1313818964,1376649230,1095060549,1094927699,1381323856,201331525,1279874370,1297040196,1111704653,1192034517,1347769413,1163149636,1413694802,1393295550,1498633285,1280262995,-1252830641,1162285056,1229734740,1095713360,1094992978,9322836,1413826316,1396788291,1380931411,201359684,1398031687,1280266819,1397706828,1393492031,1128354885,1163282772,1145981271,3888975,1163019020,1145394241,1330397513,151017799,1330204245,1128616526,167792724,1346980931,1397904707,1069647,1096241935,1431260496,1430406483,1313821780,1158545594,1498697805,1346980931,1380011842,251693892,1145981271,1380341583,1330662735,508841545,1095568640,1095320656,1380405068,1733575493,1229458944,1163151692]},{"sector":5,"data":[1431192909,1296389193,1124663458,1163087692,1296912195,1325924559,1229866320,743329603,1129516032,1280069458,1145981271,4020047,1413826313,1163018576,3036238,1413826320,1414748499,1162693957,1128878676,369144659,1129596231,1112557900,1146241359,1297239878,1095652417,9585997,1279350283,1413563465,1313296965,1393426560,1129534533,1280069458,1196310866,251674693,1229214537,1196379201,1397966157,1514489665,1329793024,1163024720,4871235,1413829383,1413694802,1393295432,1296322117,1095979845,942818631,1212353793,1296778053,1230327365,-1706212012,1229654272,1230261324,206718285,1313149952,1279479125,1329745993,1178882625,1095586383,9458516,1413829392,1346980931,1380011842,1413563460,201362753,1129596243,1397965132,1146244951,1393295490,1129534533,1280069458,1045647184,1314196736,1129596231,1129139535,-732806840,1381435648,1128617033,-850571953,1397295104,1313817417,2048841,1313164557,1163151701,1096045389,21579092,1329744910,1280590680,1346653783,860049234,1347356673,1329811013,13126989,1397310479,1129595216,1397050696,1162297683,1476853874,1330926403,20665156,1413829386,1414545731,306532949,1162285056,1297040212,1163281741,1095586894,13716307,1413826311,1347375696,1124991001,1431326031,1413563472,1128616517,201407572,1229734230,1163149636,1413694802,1141702783,1230456389,1464812622,1129271888,1192296555,1279480901,1329745993,1329877569,1380273751,1393623180]},{"sector":6,"data":[1129795400,1163284047,1230459986,1464812622,1393164459,1465339720,1329876553,117451351,1297368391,-1655353787,1094913536,1230457932,1464812622,1129271888,1175126138,1213415756,1145981271,6903631,1129531674,1112557900,1146241359,1297239878,1447121985,1095518529,-1052423102,1397296896,1145981271,1313167183,1162625601,285221700,1397966157,1111836481,1314347087,1330794564,335623491,1312903764,1413565523,1128481093,1380273221,1380930625,1393098930,1129795400,1413829185,1393295527,1163023429,1296389187,1230591056,1162284288,1229734740,1381256773,559170373,1163070976,1313429332,1398230852,1263488840,1225654393,1279350350,1413563465,1128616517,302021972,1146373447,1279415631,1229734725,1230261059,1393997,1196180492,1397901636,1128614981,251683668,1280067915,1414748499,1230261573,-1236122291,1163071488,1297040212,1163281741,1095586894,13650771,1413829383,1347375696,1342898202,1297371983,1095979845,7226695,1413829384,1162692948,218106450,1163087433,1162691662,1195463507,117489733,1297368403,-1638576571,1163004928,1297697872,1095979845,7554375,1413826316,1397904707,1330664015,150999379,1398099014,1297040200,302045005,1145980243,1229409348,1296909652,1095979845,6636871,1162363664,1095912259,1112492356,1330926677,167796814,1229407554,1229017166,2577486,1413826317,1229409348,1229800788,6247502,1414873613,1464749908,1380992078,19874639,1330139914,1381319511,1196576595]},{"sector":7,"data":[1381240832,1297305153,1329812553,1212370253,13521473,1095254794,1296385870,-1722462651,1163072000,1431258196,1128614978,1262700876,1162692948,1141374996,1415004498,1431590981,1397294848,1279871043,218116164,1465140551,1329876553,1128616535,184557652,1129596231,1413829185,-1219276976,1313148928,1212370261,1464093769,1329876553,3625815,1413829388,1296912195,1095062082,201380427,1129596243,1330860629,1397706834,1124925510,1296845889,1229342547,1380275276,1141440635,1330397513,1481589319,1141833815,1111577417,1162822988,1497451597,283205,1448037642,1313429317,945246020,1129516544,1313162578,1279479636,1414415689,1124991005,1313163596,1397707860,1162170947,218111054,1146373459,1414088524,1313426757,268459604,1145130828,1162036033,1095910732,1397903188,1158414513,1279410510,1313429317,576147268,1313148416,1162625601,1280132431,1380276545,1124925443,1431326031,1413563472,1313296965,1393230141,1094931525,1347700050,10834767,1397706764,1397050708,1162297683,234961202,1297368391,1095979845,1230259527,7882061,1413826317,1145981271,1163155279,2380888,1413826318,1229409348,1414350164,1565808709,1498614528,1396787283,1246642507,167819337,1163284041,1163023442,5395523,1413826315,1129535827,1380928591,1393098932,1145984834,1129271888,1192296752,1094931525,1112819026,1263421772,1162692948,1192362153,1279480901,1329745993,1447318081,1163347273,184587346,1263813959,1414748485]},{"sector":8,"data":[1782928449,1163007744,1414744391,1279480389,1329745993,1178882625,1095586383,218141012,1465140551,1329876553,1313819735,218138439,1096175177,1094994252,1196574036,134250062,1179927879,1398096719,1108344855,1196312914,1145981271,1330927439,760237908,1279527424,1145984839,1129271888,1225589044,1380275278,1413694803,1413694802,1191903311,1162695749,1195463507,21180997,1413829389,1145981271,1163155279,2446424,1095254804,1128613710,1112557900,1146241359,1229015107,234919246,1146373459,1414088524,1163152709,6050904,0,0,0,0,-2081649835,1448548588,-1710983425,773,-141821813,-15939965,28837494,748310528,-16777216,-1207717322,-1706033151,481,15353543,26667264,1612973194,863313980,1946224118,108461870,63452927,33178,108461824,721831051,1342471686,-11485141,-16482762,565708405,15776256,-1533390766,-2097152000,1962937980,108461874,63452927,96410,108461824,-1962511105,-120518588,1342456835,-1207274241,-1202716671,-256245727,-1706012160,404,-167698967,1148454916,1946224118,138709823,72484395,200296073,-955941440,61510,-16353537,-16528842,-16495050,1183516276,66638320,-11533244,-16494538,721703478,-1202696000,-1706033151,65535,32261831,604277248,1963015171,108461878,63583999,-1157627976,1347616767,-768882805,-1070870389,1347602059,1342177720,-16354049,1962869876,141885194,16777114]},{"sector":9,"data":[1975520000,-955913373,60486,-16353537,-16516042,-1711015370,65535,-16353537,-16519114,-1711018442,65535,1460041471,108330838,-402361089,2122514608,678691052,-16353537,-1710927818,608,-16353537,1962870388,175439620,-1207405313,-88473463,-1706012160,65535,1954546934,-230257365,1962889238,74776326,50742411,-1957688764,1141048388,1067077640,-16777213,1183647350,-1706027278,65535,-15677821,1166797382,-364496630,1609106301,108462078,1342177976,16777114,74907392,253082,-1956684288,113401317,-1873273344,-326412987,-2585058,1996426358,142016266,1347469355,-2097148952,-443874579,-900899553,-1957363704,149717996,-167223669,58000391,-1593796887,1183384498,205929466,-1706028427,65535,200951433,721778112,9365952,-1878493441,327411726,-1979955575,1996488278,140413946,-1710327809,683,200820361,-12290880,1586170998,17298954,1352729972,-1593447676,-120519600,50880139,-11532729,1996424311,-25755652,737834751,-1202696000,-860225504,-1706012160,65535,-362753,-6621066,-1593835265,1178141618,-14912244,-6620554,-352321281,209125138,-16091393,1996425334,74907398,-1207819032,-443875327,705117,-2081649835,1448547564,-1962647925,1586168391,541534984,-1947318647,126551134,721968779,1183391303,108462060,16777114,-1946645760,214336503,-768313,140413951,607340426,1971338432,73370427,-2146809866,1183658612,726669046]},{"sector":10,"data":[-4697920,1979666687,105220872,-2053484480,-1929379837,1343682118,-1149185,-1785009034,184549379,-949848896,-68538,15746759,172329728,2112898617,-163148464,1962889238,74776326,50742411,1346374212,50611339,1346373700,16777114,-163148544,1996443670,-327745554,16777114,1958742784,50656788,1187448692,-335544588,-263812305,-336312695,-263782617,-351222141,142016424,-16490869,939459191,16777114,212224,100010613,-955943679,-134074,-1710852353,65535,1593067147,1575324511,1426065090,-326898549,1996445204,825864,1183383552,-2082960386,1946159231,109019910,-15829760,-1070921610,1347440720,16777114,173968128,540231670,1200295028,-27358432,-1996077269,1586168902,138906622,990266883,2114260998,84975881,-1995946197,2122516038,92078086,411335,75399936,-955941632,1094,384714381,108461904,-1962641665,1200356958,105251592,105352016,1342457347,300954,142016256,125338,-163148544,-1070903274,922701904,922682640,-1214642930,-1929379839,1343680070,384714381,-163148464,-6664170,-1207959297,-768901120,-1070903214,-2001055664,-11513216,1996484214,-230257680,-1947318741,-788234738,1354826721,737429131,100921414,726664320,-11513664,1342414902,-26032,-259325952,1575324510,1426065602,-326898549,-11118794,1183648886,-1706027310,65535,31082123,1586168902,243237640,-385649408,1586168065,17298954,1352729972,-1593251068,731448400]},{"sector":11,"data":[66638274,1183385158,140413938,-1995683957,1200354886,-1992278002,-1072968634,-823590027,-1706025472,65535,200558217,-385649216,1183514813,-1202708788,-1873805303,255191054,1183576203,-1202708788,-1873805304,254142478,-15992693,2117685876,-11701004,1996426358,74907634,516703883,-241543344,-1929379835,-969211579,1996443517,209125132,-1915986293,1344143681,-953432437,-6664120,-1962934017,-936642994,74907473,-1915986293,1344143681,-953432437,418074696,427095563,1978957369,209125140,-887041,1183515766,1448091340,400282,-196703488,2126920520,209125154,66471563,1342521862,-1962641665,1083034718,-1957683711,-970197946,-6664120,1577058559,1575324511,1426066114,-326898549,1589925378,931866116,38243110,1946288445,33701166,1048790645,1979646006,-1202301317,-11534335,-402638282,-1202713609,-1001390079,-14285730,-14284681,-1830287753,-2091259133,-16763330,-1202317708,-11534335,-402638282,-1073017905,113706612,-65482,3554947,-1003129345,-2128214946,33555071,-2128205198,34144895,-1960435081,883099207,1200301573,87466760,-1070901674,976682832,194111488,87341136,518224,1575324510,1426064578,-326898549,-1957275896,2123040886,-1427614204,-1070903285,204990544,112726,976682832,190703616,1459373705,990613736,91618374,-352321096,-1547687166,1187446842,-2080374790,12350,922697332,922682202,-396951504,1183447998,-59310086,542874,-28931840,1603000459]},{"sector":12,"data":[-754667262,-153615389,1946356807,-92372213,-955941888,-67002,-1694730497,2357,540230902,-1444347020,-92372224,-385647616,2122514592,58064634,-402614295,-11138776,-396886922,1183447910,2109737978,1007077211,1023410176,225837053,3802823,1187446785,-352321286,-286763476,105265930,-11132044,-396949898,1183447862,2109737978,1077838599,225771520,3802823,1048772608,1946157120,-92372218,1443986432,-1191414017,-397410303,113705728,64,16416387,1048783484,1946157120,1007077155,-16777216,-16557514,-1207947210,-397410303,113705801,64,113706731,65600,4210307,-402426880,-11138911,1996424822,780538,1577613288,1575324511,1426065090,-326898549,-1957275898,1996424310,112648,976682832,168683520,-1996077431,-1705968570,1014,-2080487799,13374,882969716,-28931840,-1996476255,1586232390,41368062,-991362187,876512000,359923712,56243967,3159807,1342177720,-16596760,-352101834,142016272,-1207535873,-397410303,1996423740,-59310328,8435798,-401698736,-167048133,-4717187,-1962742785,-27358266,184698761,-1955562250,-1312388101,65065732,214402040,1963984374,50722317,113707125,65596,113706731,60,3161731,-162892544,1165234181,-1207404801,-11534057,378208885,-1070923718,1347602059,16777114,142016256,-1560132213,-1957691344,1200293982,105186078,541559632,50611459,-397408187,1520696005,-955847933,15366]},{"sector":13,"data":[108461824,295322,-1956684288,113401317,-326413056,1460857987,-28915882,2122579967,159186948,-1962385781,-347600313,-1983894782,548991558,-163149490,-1946663287,78710398,2114185171,214401800,-1996077685,1166798406,-62486268,2123060971,-754667258,142476263,-1962096765,1965816950,-297366780,-1996077781,-166988730,-963967363,-259270409,16023171,1183516797,-1982269452,1983509574,-2095218954,1946219646,-129594601,2146715193,-196703473,-1980217719,1183577718,-28931834,-16222465,1996424822,133425156,990267017,-1770655162,1593722507,1575324511,1426065090,-326898549,1017206280,138813696,4064967,-1070923776,-26032,-6684672,-956301057,13830,175570688,742554,-96040704,1200347275,-129595134,-1710590209,2955,-15960321,-1070921098,9103440,983691403,-28931840,292864011,-15960321,1996425846,1354771448,2095582864,973522698,-956301312,12806,142508800,-2094566400,1946222206,209125136,1342247608,108461910,-352028929,209125132,1342247352,1354771286,151099984,1996423168,-26100,-1073020928,1586176372,860326412,1077723172,2139297140,259260468,880279379,737703679,244338880,1577719528,-1034033781,-1957363702,49054700,1074186070,-956301312,16791558,1007077120,721420288,1513503222,-399281149,922682784,922682202,28835888,1055412224,-1012992,-1711056330,65535,816037931,56271616,-16222465,1996424822,2091012,2122519787,242483206,-16222465]},{"sector":14,"data":[1996424822,780292,-963907445,1575324510,1426065090,-326898549,-950642938,64582,-1710852353,3176,1972107403,2096499458,-1310815476,-1948003580,1183387201,75400188,-15764480,1996425334,-1070901754,-401698736,1170671967,-254,1201276534,-1962934259,1600060486,-1034033781,-1957363706,49054700,73319510,74943270,38243110,1946222653,16923938,71124596,1025012737,125042949,1946224189,-1002443977,-2094660514,1964115071,-1005917387,-2094660514,1947337855,73319465,74972966,-286781808,200313604,-15895050,1996424822,-26108,183173120,112726,-401698736,-1956773881,79846885,-1873273344,-326412987,-2082959842,1448553196,3554947,-385649153,1048773345,1946222646,112645,-1070923029,-1292663,-1207933898,-11534335,-402638282,1183385095,1975520216,45607171,1023952523,1903427597,1967980861,1010729735,1702166528,-1697089793,1829,-1980742007,1187510854,-2097151758,14398,854077301,1958742788,874416936,41911040,-1961329408,1603006558,-754667262,-262274077,51136502,1187448180,-1593835022,1183383604,-16390,-1946526069,2122383991,1951072264,142508295,443893760,-335544392,1681325848,-663290112,3946239,1347469355,-369286936,28836393,-62486272,1023952523,1651769376,-756481154,1958742785,1785163,1048785268,1962934328,-226589946,-1959168768,-167746530,1948267335,943620871,678756352,-362753,518522998,1090030340,1206453108,-954864895,15366]},{"sector":15,"data":[1681325824,-663290112,1347469355,-54794160,-16559128,1285216374,-385875961,1048773049,1962934330,-663289877,3815167,1342177976,184725992,735671488,11004415,6561419,540231670,-135724172,943620864,1333067776,1962933891,-92864750,-59310250,-1946438936,57950456,-402597399,1183515388,-96040464,-1948742832,-11140489,787020918,1975925508,-663290091,3815167,1342177976,184702440,-385649216,-4194438,939968511,-2097151744,14398,-1746336907,-94467328,1208633227,1408648841,-59310250,-1962675992,-58817544,990150144,-2096464130,2097216638,2097036147,-663290001,3815167,1342177976,184681960,-1587710784,1183383610,-663289864,112720,32565328,-1577826679,1178140730,-12487432,-16751562,28891254,-1779937280,-196703236,1356351113,1100186,-96040704,-335544386,809403155,57999360,-2080446999,1946219134,-19076861,1459255039,-386107649,-125107347,58064443,-2080454167,1946217598,906413850,-16776960,-1207933898,-1706033148,3917,6567679,-16503064,-16751562,-396896138,1586231685,-1312322566,65065732,206042840,-1959758576,133626462,-953649919,16791558,1025960704,-1988868096,1967849533,-23271165,1967980605,-23795453,1968177213,-9311997,-939649047,14342,27977728,-1697089793,4233,15498883,-4715148,2147465983,244338770,1577061864,49120095,1562371467,313933,1167087646,518818645,-326903666,1040631576,-1962934016,1451951686,-297367288]},{"sector":16,"data":[-2114955639,1971322874,-49915,113717108,-65482,6567679,1342178488,16777114,1681325824,57534464,32130759,6594818,-337099127,-398029489,-1159180266,1044284406,57999360,-1929342231,1343678534,-1202667477,-1202716160,-1202716151,-1706033151,4012,200951433,-1927449152,1343678534,-1202667477,-1202716416,-1202716409,-1706033151,65535,695517195,384321165,178256,-26032,-1073020928,1048815477,1962999862,-92372072,-1919781632,1343678534,-335822872,1514046352,494141443,56237707,271796214,-1202515083,-1706033148,65535,56243967,16777114,-26112,1692991488,49120255,1562371467,313933,-2081649835,1187448044,-2097151746,1963000958,138840837,-1070923029,-2080618871,14910,512434293,1207304292,645138482,1077102582,1187455093,1392509438,1342177720,33155152,512429547,2139291748,108265524,-1993062517,2122579014,561316100,972965515,427034182,-16762205,-16751562,28838006,1307070464,142016506,1090970,-62485760,-1034033781,-1957363706,876512236,259260416,3159807,669850,872859392,-1962934272,1438866917,1048833163,1962934324,809403155,208928768,3159807,664986,3449600,-1962920799,516120037,1430622296,-1910575989,82609112,-1946801322,456984134,1998877696,212268,305995124,-350391296,1208008195,803980939,-347078466,1258340087,12514027,-1091703987,-387252197,-347274818,2440675,641591156,1037464576,-495714265,1946167357]},{"sector":17,"data":[1590553555,-1962742397,1297948645,1426064074,-326898549,727078668,1996443840,296720900,-467009536,-1962654071,2139817566,2113866498,175606532,108461902,112727,7071824,1183578251,-1311274234,65196804,787906,-939637111,64582,133617803,-1960217340,1077939783,-1946532215,1191180894,-1744336134,1039943305,-277610464,-11485141,-6620042,704643327,-62486044,956581515,74775622,-1586104517,956581515,91552838,-335544392,1590135554,1575324511,1426064578,-326898549,-1957275900,2122516598,276627462,294531,1149961854,132859914,65781803,-1996077429,1183579206,105251076,956974219,125568582,411335,-2096239872,2097153662,172264199,105285960,-1324974453,65524484,214402046,972834443,91555398,-351910261,243106568,-339774464,-1956684045,113401317,-326413056,-1962742653,1200293982,-28931788,359972875,607340426,1950366912,75399948,-2096139264,1946158718,142016265,-1996485400,1183579718,1575324670,1426065090,-326898549,-28915966,1586167808,860326404,1077723172,-593427083,-1961432317,1207305310,276039730,-1995290741,-1072955834,547423861,-28931836,-1946270069,46292453,-326413056,3278535,-6684671,-16776961,-1710880714,65535,-1979425141,-1071369401,611598396,-401698733,1996423354,18266116,74907472,-11485141,-402638282,726728523,-1706012480,2714,1342177720,660122,1575324416,1426064066,-326898549,2122536452,1148452870,294531,1187448692]}]],[[{"sector":1,"data":[-351997700,-62470395,1996424088,239442438,-259325952,-1946394997,1149829703,-1995994352,1200296516,38218502,-1961606007,1143669831,373590290,-1710852353,3824,1575324510,503317698,1430622296,-1910575989,1007077336,-16777216,-16751562,-1207933898,-11534335,-402638282,726728375,1347440832,-2081006360,-443874579,-884122337,1167087646,518818645,-326903666,-1957275890,-397015434,-125042999,58064651,1459671529,-1705983957,65535,1048836235,1962934362,-339727612,112643,-1980086647,1183446598,-196703748,15877831,860157440,-2094565952,17112126,512434293,2139292892,376766730,32786119,373195520,175440128,33179335,-62470400,1156972545,91496499,32786119,-1103742720,-955615999,128070,33179335,860129792,-2143502300,1156978037,91554866,32786119,-62470400,1187446785,1459618294,1357906104,-1695254785,5229,-266291113,-59310256,1342106,817387264,1996443888,344431350,-1202257920,-11472800,-1801784714,1459617812,1357910200,-1694861569,65535,-310157474,535137026,46812509,-1864856576,-326412987,-2082959842,-950598932,64582,-1962260850,-1977218946,1004810757,175375942,108314634,-62455993,1183575275,-310157316,535137026,113921373,-1864856576,-326412987,-2082959842,1465257196,556675,-840367235,209125120,1358792936,1342177720,-125720,1050282614,-1962934253,138841072,-1962764056,1207307358,57942067,-1962896663,8398085,1963345467,8775939]},{"sector":2,"data":[-1962117377,75012,-6681996,-1996488449,686553670,16777114,-96040704,-1962123637,104531013,343672070,723797899,103489607,1161364742,1208316424,65788043,-1928831605,1343681094,-16353793,1166738549,172294918,71666512,-1705983229,1145,-1912965377,1343681094,115866,621054720,225705985,-15960321,-6620554,-352321281,-92864760,16777114,2133164288,105286655,1996424457,325622282,1583284224,-1962742397,1297948645,-1946154806,1430622424,-1910575989,1022133208,-1983892649,1183441478,108956644,78185867,-1705806592,65535,-1946401143,1200426589,-1202708990,-1873805303,-23468018,-506231,1183710326,-1706027326,1288,63063691,1183435334,-59310108,-1928438389,1344143943,-1694992641,1467,-1948023,-1315242890,-352321515,1979682851,1226766,1183651408,-6663962,-1929379585,-1959336354,1183384135,1200305890,-465139452,-1948105077,-2090867626,-443874579,-900899553,-661913598,-1957345904,-661774612,1443556483,142510935,-1707837953,5387,-1070337909,-1070447114,111215476,-62486267,1144635443,956658694,393545796,1463055871,-231681,-1962639818,1160456773,362434598,-1929379836,1394013278,75370123,-62485679,139199312,105120593,361273936,243990528,854066116,-96040192,75499051,-1946794359,-402405362,1996423201,108461832,-399215105,1979705594,365074996,1583284224,-1962742397,1297948645,-16775990,-1927936394,1364259910,16777114,-661863680,-1957345904]},{"sector":3,"data":[-661774612,1444867203,242649943,252477059,1586318965,1393972960,-1705830826,65535,1474330251,63190783,19866,-1070377216,1149980752,642001706,742689616,1344816171,1342238904,1342185912,28570,-11053568,-402640842,-6625158,855638271,317430208,209125206,-16091393,1996425334,-26106,1583284224,-1962742397,1297948645,-1325397302,-1914571248,-134017924,50345155,17808896,56654080,18168576,53999872,134396673,50349056,118574593,50352128,17826304,52592640,18026752,56853504,117789697,50354688,18171136,54004224,135680769,50352640,-15441920,50371328,-15479808,50372352,18319104,52073216,135665665,50355456,18196224,54008320,18304000,52009472,18324992,57121536,18191616,57058048,17024256,55649792,17099264,50475520,118919169,83888128,-16709376,50421760,17796096,52606976,118950401,50333952,134305793,50331904,134225665,50332160,18275840,56900864,18232320,55754240,18024448,52772608,17825024,53788416,134301697,50333952,17561088,52675072,17822720,51266304,17474048,56804608,16838656,55496192,18215936,37277952,-16708608,50421760,-15285504,50422784,135756033,50339072,134389761,50340352,18012160,53959168,18294016,57039360,16994048,56942080,18235136,54059264,16854272,55403008,135747841,50343168,17144576,55764224,17501184]},{"sector":4,"data":[50849024,17083136,56978176,134363137,50344960,18009856,56880128,17438464,53637888,17730560,2618368,0,1167087646,518818645,-326903666,-11118816,-6680970,-1996488449,-661914554,1963001846,209617676,-1962511360,1200162374,-1983894776,1183441990,-163149334,-1995815285,-125047738,-1995946357,1988884550,214336508,15091399,22931712,949379,-1705633932,65535,-1980610935,100922454,1149830224,-339571958,172279560,1386283008,138709252,15105667,1183384437,-60912658,1963001846,12511491,1613038730,-96040704,209043467,1088833163,1946830649,9496835,-1980348789,1586225734,-431584260,172439872,1183518325,172243446,1149961854,-498693878,-15829249,2122574454,74711290,65781803,50332088,-11475386,1996481142,183298296,-2082322807,1946221182,2114323253,-129595132,-1995815797,2123101766,-431584276,1089095305,-1948236151,1194982494,-15502070,1996426870,1996443878,-126418954,-1995787800,1586225734,-431584260,172439872,1183516277,138906082,-1962640247,1149892678,142344966,2112126521,-461469380,83245035,-1961593504,1141110854,-60912886,2114471739,-427916523,51344384,1183575678,-129595128,-1995946869,2089414214,-129594620,-1962523511,1174473284,172264440,2113291833,-163149565,956843147,58584646,-1947318647,133626974,-1962380031,-956043706,-2082191735,1191121094,-60912666,971392651,58591815,-1946249751,1177281606,-2147089654,105351428,-1948023]},{"sector":5,"data":[-6680970,-1962934017,1600053830,-1962742397,1297948645,1426066122,-1957237621,1149895798,1019225139,-166235072,1965044548,860157452,1443263504,16777114,112640,-1070923029,1575324510,503317186,1430622296,-1910575989,1988843224,1654281736,184549378,-1978305344,-1071369404,208945212,-1996077429,-397003708,49020837,-2090942421,-443874579,-900899553,1478361092,-1957345904,-661774612,108432214,47028822,-1073020928,-397015948,-2090926215,-443874579,-900899553,1478361090,-1957345904,-661774612,-15930237,1996425846,108461832,-1728050760,-6664110,-1996488449,1996485702,-6664182,-1996488449,-310117818,535137026,113921373,-1873273344,-326412987,-2082959842,-1957290260,1187449974,1442840814,16777114,1975520000,29747459,637951684,637695999,638089215,-1710852097,65535,1039287945,175374592,1946223165,-373282018,1187447202,-16776724,-6681994,-1996488449,1451876934,1975651300,-941430007,60486,1589962219,126494434,1183441962,75238,1961641531,22341891,637951684,-1006352501,958849630,57934151,-1962851863,203810374,277760,-605486219,539904,-655817867,-297351424,-1070923775,-1980348791,1589962822,1200301794,-96040701,876907350,1358186121,-362753,669574774,-163149567,896909323,-1995291509,-1072958394,1156977269,208930866,-1996218207,-1705577402,65535,-193527978,-362753,-135731594,-163149568,91537419,31999687,860129792,136700970,-129595136,695582731]},{"sector":6,"data":[15236739,1190536053,494207718,16154243,1048778612,1962934378,1996445200,-92864524,1342210232,-270004592,-163121663,-2091158271,1946220158,860157452,-2096729056,1946216574,-159481015,-2096270336,27198,2122529909,913637624,-394362026,-1206094848,451608850,-352317256,1161219,-26032,-1073020928,417923965,-1203639297,-11534063,-1070859658,1375732154,82221648,2122514432,678756600,15236739,1190535797,477430502,16154243,1048778356,1962934378,1996445199,-92864524,-1873756117,23128078,98715267,-2132392202,-1981217931,175570942,16777114,-297366784,49120094,1562371467,576077,-2081649835,1187450092,-2097151750,1962936446,11069699,-16222465,1911031414,-196703999,-385649344,1187446934,-16776454,381160054,1996443649,1354771208,85826128,1996423168,105945608,1183383552,-196703234,-523041615,100550147,1183383564,-153580554,359927815,-1207273729,-11534057,1183515255,1347590644,16777114,-161576192,52758410,-62486272,-1710721281,1364,-16222465,-1070922122,-401698736,1183384631,-1965519882,206087,-506231,-1710870986,1493,16285315,2122516085,74711292,33181312,-1946532213,146955749,-1873273344,-326412987,-2082959842,1448543980,1183577643,139394824,1299496971,-15698177,1183518326,67118342,-401698736,-125107237,896859915,1963197942,241011495,1983461259,-1962705656,1166739574,507527182,209125200,1443526399,476570,173982720,50726]},{"sector":7,"data":[103692031,437402,1590070016,49120095,1562371467,838221,1167087646,518818645,-326903666,209125124,141210,1958742784,176063278,-148343808,67110470,1996426357,142016266,-1996479512,1996425286,175570700,-1962379521,-2145057210,-6664192,-2097151745,-443874579,-900899553,-1957363704,183272428,1187468887,-939524104,63046,-1710852353,19,-113015,1996424822,1354771204,350752400,200837891,-1958382337,1200356958,-129595126,78770315,-293345581,-2081225968,468389062,-2080878849,2080438398,1962359578,268760598,1149961844,-163149566,-1592725885,1178142254,-2263562,-1710870986,1716,-1710852353,1883,1593329291,1575324511,503317698,1430622296,-1910575989,283935704,1187468887,-2097151752,1962938494,-373282043,1190593027,1946681350,-1983894776,1183386694,105314058,91488512,-15841593,276234239,-1961986305,2426438,244338692,-1962775832,105314296,1551106560,-1049297141,105789067,69724247,1149878315,105154824,504382861,516393808,172264272,-523041615,-953432573,1342178349,16777114,172818176,268725379,-1996209013,922742854,-744880594,-16777215,-16372170,-1070862218,-26032,28835840,24242432,15877831,172395264,1946961419,105313804,-1960217596,1183386182,105314034,188773504,-1971751681,8398085,1475888777,-1962694424,-1593422282,1183385134,14936336,-15960321,1894255222,-230258430,-847921141,58064651,-59671,-1710870986,2042]},{"sector":8,"data":[201263849,-15960577,1083838582,-1962934264,-1593119760,1183385134,1312197392,71600902,-1996484603,1996484678,148281872,1996423168,-260636912,-1705983957,1898,343261195,67520246,-991362188,-227082242,16777114,-21370624,-15698177,1183518326,67118342,-401698736,-125107901,209059595,-1710196993,2246,183234699,-1996083551,915083334,1183516238,71600624,185222399,-1960872705,-1924129081,1344147525,-1324727157,65065732,768027590,-1706033148,1477,2122520043,259391246,-1324712821,-2081959164,-33353489,-1962096765,2133132870,-129627392,2122515849,108331250,-2147277440,-1070923251,-1995946871,1183516228,239438322,-1995946357,1190527557,376705030,82745936,1183383552,-2133292038,1996423439,148806152,1996423168,87071248,-1981218816,-2090901762,-443874579,-900899553,1478361100,-1957345904,-661774612,1988843095,108956424,100244054,-1073020928,-16035212,2088967540,896794642,956571809,762581572,-1877838593,25552910,1197255,-2095125760,1962939004,843380248,-15567864,-1207721930,1385758721,-26032,1149829120,310149906,-15895552,-1070919052,-401698736,48955932,1600045099,-1962742397,1297948645,-1325398838,-1914571248,-134017924,-1864856381,-326412987,-2082959842,1465255148,-16220541,-1070398091,-16741911,-610661770,-1962934265,108954608,-1961724928,-1073018810,1144775804,-402230518,1189871549,172264336,-335563544,621120331,1183383568,-14387974,1996423797,1354773256]},{"sector":9,"data":[-1528295792,-62486017,1946157069,175570702,511130,-62485760,-2121256213,64078,1166743157,138820354,1183518325,103719690,105789065,350996363,-1928269949,-130347964,1996467059,165779978,-1070399488,-310157729,535137026,113921373,-326413056,105286486,1946437131,108461875,-1710983425,65535,1086058635,50680576,-6664192,184549631,1343583424,931780747,1394492227,-16353537,-6683530,1476395263,1575324510,-1946155838,1430622424,-1910575989,4372696,1882192,172726864,-1073020928,1347426932,160930384,-661979136,470042567,38258432,379256831,1476395018,-1962742397,1297948645,-1864856373,-326412987,1457032734,105286487,745848843,-1706012592,2702,1150021771,-23074806,-396950293,-276627339,205819152,-227280837,696218,136157696,28311552,-310157729,535137026,46812509,243968,146342891,-1864856576,-326412987,1373146654,-16091393,1183516790,67118342,-401698736,190447195,555578560,-661977522,-1054668917,567408464,105286415,922683145,-509999570,1476395018,-1962742397,1297948645,1426065098,-1957172085,1166738558,1958742798,67499788,1342600448,714394,268826368,-16223232,244318837,1610562280,-1034033781,-661913598,-1957345904,-661774612,1443032195,-62470313,1317076992,1946157064,142016303,705690,-1947170048,1144718918,1024815882,276561920,-1946304280,1058053,1166739060,-62486270,-1710721281,2875,1610368651,49120094,1562371467]},{"sector":10,"data":[313933,-2081649835,1465256684,16271047,71731968,-16366079,-1717957514,-1962934261,-25872,1183383552,172264438,2081048121,13232387,2131248697,172395512,-171800,922744438,922681420,28835918,-6664192,-1560280833,1183515970,-28931830,-946836757,64070,-1996077429,92998725,1962935333,241011520,963959563,503465869,637008,-26032,1183383552,241011708,561252155,-1913227521,1174602311,1344159996,1177225099,-1706014468,3103,88212995,-335919479,105286400,-1946532351,1178335814,-1996261640,-947652538,-28901616,956843659,41811526,1352764907,-129629948,-401979765,1317797057,72231928,-1995815285,166460998,-2096476791,1191121095,-28931074,1913144891,-159973393,16777114,209125120,770202,-129594624,-443851169,705117,196633,66618,208504,67704,217732,16714054,16973974,461411,16973912,461372,196698,66280,208402,67846,16998546,461442,16973829,460808,16973830,461665,16973831,461803,16973832,462041,196617,68724,217790,66646,16983359,459929,196627,66053,216268,68594,211153,16712612,196970,16711772,196973,16713259,196975,16714834,196977,68817,16988385,459415,16973884,459427,16973885,459527,62,0,0,0,1167120524,518818645,1465309326,350470195]},{"sector":11,"data":[-1705947056,65535,-1709307165,65535,780375,-310157729,535137026,1439386973,-326898549,71731970,-402415453,-119010729,95807492,-402527000,820512403,9037825,-402285592,-51902216,571403,-26032,1085800448,-157200384,1049861,17406544,379781120,73328644,16777114,88776960,-1588528943,-120519348,-26032,922681344,-6683128,-402652929,28839480,1389505408,1354771280,-805258672,-1588572078,103482638,-11533208,-16445386,721709110,-11513664,1342414902,-26032,883097600,172877830,-1962933832,46292453,-326413056,1460071555,84975958,1645120409,-1543899388,171771362,-955875840,168157702,4241408,964688,98709239,1342195205,16777114,-2081387776,-761065786,-2084140283,-1566372154,-2084140285,-1163718970,-2084140283,-626848058,-600405755,85112836,-1070903266,922701904,245433616,1745234693,-6664188,721420543,-1592595457,1149830420,-2082567422,413208262,105351429,-499238585,-941064443,580,-964436341,84844814,1577469833,1575324511,-326412861,1444211843,15615687,-294221056,1438181073,-296842752,-754851456,-264074784,-2081536257,2080960126,571620,28856400,-1924116480,1343680582,16777114,-330921728,-26032,1352859648,-327745787,16777114,1354771200,122266,104243968,1342177720,125338,100967168,1342178488,16777114,68985600,1575324510,-326412861,1460726915,74877782,1347469355,-1710852353,65535,-125107063]},{"sector":12,"data":[964695,-263811760,-6664170,-1962934017,1149891654,-230257916,1577206921,1575324511,1426064578,-326898549,-1202301134,-4584427,-1706011905,65535,1342575779,-1728052808,1790464082,40745474,1922715730,-16777214,-1207561162,1385758723,-18352,1392508858,-26032,922681344,28837396,1347590400,-1173611080,1347616767,16777114,-834238208,101988095,-26032,1183383552,-6663984,-1996488449,1451883590,-60898050,50087555,-1559786714,1586168928,-62487556,126559746,-1207673181,-1952907200,1183054942,-1960443140,1846446351,-1543899388,1085801578,1586206976,-62487556,260777474,74452617,1822685687,-1556070396,1788937320,525572,-1207671133,-1952907232,1183054942,-1960443140,1980664079,-1543899388,548930674,1586206976,-62487556,260777474,74976905,1956903415,-60912892,50087555,-1559786714,1586168954,-62487556,126559746,-1962639709,1183054942,-1960443140,75539207,-556251449,-767113469,451608586,-2082972021,-1006315450,-1960379266,1435182597,-1995994878,1182990935,1183515900,-766574638,-596262901,-1697614081,65535,-1697614081,65535,-1962597912,-16363490,1186464887,-11526651,-1711030730,65535,1342180792,119194,75801344,62011135,383403661,-26032,1183514624,99394522,-1545320821,616432674,2147465220,-964471216,-32118778,1350565560,113673046,-1191310616,1448116221,-402209149,-54985217,-2091495297,-186120506,2147203325,-964471216,-35002362,1350564536]},{"sector":13,"data":[113673046,-1191321880,1448116217,-402209149,-122094125,-2091495297,-924318010,2146941181,-964471216,-37885946,1350563512,1342519480,-1577209112,-523172736,69731843,-331940016,-26107,111345664,72786181,-120457007,-1593550173,-1181154216,-101253117,-788243293,-1207687618,1344144624,75380479,721749665,721692678,1342472198,50603681,1342471686,721749665,1342472198,308122,60340224,-1070903266,648106064,2114323204,922701828,1201276166,-1593835519,100861190,1688405120,69640452,69993987,-150993991,73573353,-443850914,-1957313699,49054700,52954766,637934241,-1906664541,-1593628154,-1557789156,-1070900579,-6664112,-1962934017,1438866917,-326898549,1354771202,-1157627976,1347616767,336282,1354771200,-1157627976,1347616767,16777114,738627072,113714691,1400919200,16777114,1575324416,-326412861,-1191198488,-4584397,-1706011905,580,899152,-1706012007,65535,53347982,1519887142,-1726576346,1354771290,-26032,-727515136,-703166203,99792901,-6664162,1023410431,158597132,1342180536,386714,-1073297664,-956301311,17071110,104773632,-6664162,-2147483393,409150,113708149,-65088,75237063,2090926080,28615428,53479054,637944993,-1906656861,-1593626106,-1557789114,448289467,-1706025466,65535,1946158141,964617,-26032,-443875328,-1957313699,1644611564,1560281088,-326412861,1459940483,1354771286,-1706012592,1558,721796259]},{"sector":14,"data":[1347440832,103062096,44236800,1354771206,-1706012592,1744,-955961181,413702,78561024,1352791595,-1207596794,1069157397,726684162,1347440832,-1706012592,65535,-972798583,-956299451,66117,-947665013,105947912,100565830,-661926788,-1710983169,65535,-1962691933,-16363490,146277495,-1634054144,-1560281082,109970704,-1557789900,512449205,2013202000,702468,-26032,245563392,906399237,-1214044669,88520794,-1070903266,922701904,922682640,-1717959410,721420292,-11513664,-16445386,-1710944714,65535,1577327267,1575324511,-326412861,-1207767933,112856122,-1202695673,-4584367,-1202695425,-1706032652,1814,-26032,985137152,119847436,1924681810,-17908,-1070903214,-26032,-1706033152,65535,-1173603656,1347616767,-1173593672,1347616767,-1173598280,1379991551,-28930736,45633558,-6664192,-1912602369,-1979500538,942079558,1946963718,1335895570,1385797644,-26032,1178075136,-1207601666,48955393,110018603,-1557789894,-1070900573,2130753616,-1706012007,1937,721815715,28856512,1347590527,500378,106341120,-1202667477,1385791236,129210960,-291307520,1354771205,-1719697224,-996519854,-1560281081,-1070922256,2139207760,-1706012007,65535,721746083,12079296,1347590527,517786,103588608,-1202667477,1385791233,133667408,-626851840,1354771203,-1719729480,144330834,-1560281080,-1070922612,2130950224,-1706012007,2073,721663651]},{"sector":15,"data":[79188160,1347590527,16777114,98083584,60831487,-1728052808,1033523282,-1560281080,922682400,45613984,1347590400,16777114,64791296,-1017256565,-2081649835,-1923739924,1183446598,-27882244,1187444267,1589903610,1065362948,-14781152,-219478970,972193408,179314815,-990220554,1191117918,117581316,1183330348,73319674,-2012771802,809300550,1589959293,-62455812,653936266,-2092562552,-1233386498,654073483,-1962932282,1452013126,-443851016,311901,-2081649835,1448551660,-956056385,64938054,1119417899,-17908,109989970,-1977220292,705422492,-2088268289,-17908,-457682862,-17822,1183666258,-1202710812,-1706033127,1859,-1948230005,39291655,-1982052727,2122374742,242483428,384059021,-13572016,-1982052727,1996480086,-596181026,16777114,-1982166016,46629637,-2082447733,-1962614714,1452006470,-1995994658,-2092563881,-2105799938,-443850914,-1957313699,585925612,16777114,-565802752,-532247216,-1030074346,-16777213,-6627722,-1593835265,-1901918902,88908033,-1593732957,-1834810318,71737601,-1593731933,-1767701242,75407617,-1593730909,-1700592512,374785,75378423,-1207853917,787939333,-1633483648,73441537,-1593728861,-1566374818,74096897,-1593727837,-1499265940,74621185,-1593726813,-1432157068,-532247807,65553923,-1559986170,1252065708,28222213,721767585,-1559951866,2057372080,28484356,-1560005471,1151402422,28877572,28968647,109969409,-1591344322,-1130145117]},{"sector":16,"data":[1575324417,-1873273149,-326412987,-2082959842,-1957295380,-6683018,-956301057,6150,470220544,81568005,314069022,-1706025467,2656,3687622,-600375466,1354771204,16777114,-163148544,314069014,-1706025467,65535,688160417,1174533702,1183667962,-1706027274,65535,-26026,-1705639936,65535,16777114,-310157824,535137026,46812509,-326413056,-16061309,-1207721930,1385758721,440400,-1706012007,649,200689289,-10324800,1342414902,169626,-1617276928,-1560281086,378078378,1183384748,-27883012,1098170891,654073540,-467007606,-939899255,63558,-500085,1183579206,-27882500,78251562,101353352,33179275,1589967942,126494460,1183441962,663234298,-2080880897,2081028222,1575324623,-326412861,1461644419,-196688042,1187446784,-352244490,4241529,-159973552,28314,-1192195328,-1078326199,726684171,-1202696000,-876977436,-1957670389,-11526458,-644155786,-1996488693,-1072963002,-24428684,1183523819,1002832886,-2145356089,343212093,97664,1183518325,1002832866,-955943225,128070,-193035449,-2083032064,1962996862,1268405777,-2097151988,-345704890,-196688123,2122514433,-2123104012,14843523,-1863777419,-1191277824,-4584375,-1957670145,-1202708793,-356883740,-1924115960,1343677510,1342181304,587930,1958742784,-465138347,-1929754999,938212438,4161574,1191128693,130426618,-94467282,653936383,-1958344762,1191180894,130426618,-94467249]},{"sector":17,"data":[653936383,-1957820474,-970524066,216727559,-990230785,-2144929186,-1066062273,384059021,-26032,-2142830592,1962999677,-498693127,-952383997,1927873398,-6662401,1577058559,1575324511,-326412861,-402645016,-739770229,24700928,-402579480,-219676138,77785091,-402373912,-443874888,-1957313699,49054700,84975958,1712229273,-1543899388,748881194,671532805,-1207959291,-1202716608,-1706033126,3320,1153953931,-947912426,6212,-1996162911,1153896004,-939524350,-64444,-1996250975,80153156,1153892363,-1962933744,-1706025274,3364,221026902,113704960,1588,1575324510,-326412861,-1207767933,-1202716608,-1706033126,3395,-1946270071,373802968,1204256768,-956301288,-956268537,-64953,-16496697,60858879,-1962260599,-1706025277,3446,-1694599425,3454,-1017256565,-2081649835,1085801196,448286720,-1785049088,-1996488691,-661914042,-1996093279,1204227655,-955519466,-59321,-16627769,71813119,1204289535,-1593834232,1200161696,516131594,231512656,1996423168,232037118,-443875328,-1957313699,49054700,1342193848,1342184120,912282,-28931840,144824459,239569158,35014599,407357312,1204224000,-939524350,-64441,403195847,60858624,-955627639,-1962932217,-1706025277,3614,-1694599425,3622,-1017256565,-2081649835,1085801196,448286720,1033523200,-1996488690,-661914042,-1996093279,1204227655,-955516394,-59321,-16627769,71813119,1204289535]}],[{"sector":1,"data":[-1593833976,1200161696,516131594,242260560,1996423168,242785022,-443875328,-1957313699,49054700,1342193848,1342184120,954266,-28931840,144824459,239569158,51791815,407357312,1204224000,-939524350,-64441,-1996250975,1204226631,-1962923000,-1706025277,3778,-1694599425,3786,-1017256565,-2081649835,1085801196,448286720,966414336,-1996488693,-661914042,-1996073311,1204227655,-955517674,-59321,-16627769,71813119,1204289535,-1593833976,1200161696,516131594,-26032,1996423168,194747134,-443875328,-1957313699,518816748,16777114,146688,1994982260,204060673,1376737978,1354771280,16777114,-297367296,-385649344,1996423517,1354771438,178256,255433296,1183383552,-229209616,1342194360,-260636846,16777114,-465139456,-26032,1183383552,-363427352,737048319,1347440832,16777114,-294191360,-1411329,1996482678,-25872,1996423168,-25874,699924480,-17908,-6664110,-1006632705,-1960384418,-431585017,38243110,-1946925431,20833862,1024488448,58523650,1023465705,1149108227,-1962880791,1452009542,263658,-11382702,-6625162,-16776961,-2003114890,-1962934269,1183441990,537315322,-956301312,16786438,-428409088,-1694861569,65535,16777114,9431296,652762820,-1996208245,-1960385978,1183385159,1200301822,-330921720,172460838,653674121,-1995683957,-1960379322,1183387207,-427916296,-1207601917,65732616,-788527432,-398065184,-1935617]},{"sector":2,"data":[1996488310,-159973396,-1411329,-1248139146,-1996488703,2122578502,208995302,-59310256,-1694992641,65535,-1696303361,4003,-1696303361,65535,2098887,113704960,65572,1342177976,-1946197527,1438866917,-326898549,4241410,1751120,281320016,1183383552,-1579643906,1200162312,373802766,1204227073,-939524328,-64953,-16496697,134727679,60858624,-955627639,133191,1344193419,1111706,-25755904,1113754,1575324416,-326412861,-1207767933,-1202716608,-1706033126,4427,-1946270071,373802968,1204256772,-1593835496,1200162358,50841360,38258432,1204289535,-1577058556,1200161696,516131594,293771856,1996423168,294296318,113704960,1458,106432199,-443875328,-1957313699,49054700,-1559994207,1587610852,96903940,-1560005471,1050739942,97035012,-1559986527,-324860464,75538692,-1559900509,1085801710,448286720,-1600499712,-1996488692,-661914042,-1996093279,1204227655,-955512554,294787143,-16627769,71813119,1204289535,-956299256,-1593832697,1200161696,516131594,215259728,1996423168,215653118,163053568,-17908,-6664110,-1560280833,-443873756,7717725,38993925,27263231,101187843,4194312,153420035,4325384,264568835,9044223,250675459,4915207,257884419,4980743,29950211,4521992,98042115,6619140,264241155,9240831,277151746,201392129,230031362,1661075457,149028866,209911809,123601155,5242887,90833155]},{"sector":3,"data":[65537,257032451,5308423,235667458,1661272065,85000451,131073,256508163,5373959,241041410,1912995841,252313859,5505031,213778434,1661468673,291635202,201916417,137035779,9830655,292290562,1661665281,109248771,5242888,91947267,65538,35324163,5373960,171966467,1686765569,246415362,1661861889,219283461,20054271,224657410,1662058497,261816579,393218,61931779,5701640,176160771,403701761,277807106,1662255105,104792066,202702849,94306563,65539,39190530,27263231,157483267,6094856,170328067,328597505,283377669,20971775,42205186,203227137,229703685,1661075457,125829123,11337983,235339781,1661272065,131399683,11403519,240713733,1912995841,34078723,11469055,213450757,1661468673,83296259,1562509313,291962885,1661665281,84672514,1420296193,250150914,204013569,7929859,28705023,246087685,1661861889,219611138,20054271,279248899,3735807,224329733,1662058497,277479429,1662255105,88276994,204668929,204603651,7798792,87097347,1571880961,92864771,65543,12976131,36831233,1310979,262151,283705346,20971775,275644675,327687,115802114,205127681,279773443,458759,113180675,1681719297,147718146,205651969,253559043,983047,84475909,1420296193,272892163,1114119,254148867,1179655,272367875,1245191,175374339,323223553,188940290]},{"sector":4,"data":[206110721,1835267,1572871,120848386,206503937,72482819,1380712449,116326402,206635009,117309443,-2033188863,119275523,777060353,156565507,953221121,6160387,1574109185,9633795,928645121,175767555,945487873,249102595,2818055,271843587,10682376,120324098,207683585,88604931,3080199,85524741,6815748,189726722,1659109377,158007299,954269697,89391363,3276807,173080579,291766273,61341699,24576255,270467331,3145736,116916483,3735559,190513411,3801095,224002050,200146945,179044611,3932167,108003587,3407880,180158723,3997703,105644291,3473416,180551939,4063239,118358018,208797697,59769091,4128775,9043971,879755265,85721346,6815748,245760002,200605697,39518467,4390919,29229315,3932168,176488451,980680705,295108867,4521991,235012098,200933377,0,1167120524,518818645,-326903666,-11053562,1996425846,108461832,-1728052040,-6664110,-1996488449,1996487750,-6664182,184549631,-1959496512,-6663952,-1962934017,1959398344,-1924115930,-397346746,-1073020886,1979205259,-6664184,855638271,-1705619264,65535,-26026,1599602688,49120094,1562371467,445005,-2081649835,1465256172,16777114,1958742784,-129595058,-1912177013,-1070397370,-1962571226,279463920,-1960441739,-96040699,-812955833,-2144943476,74776637,-768358093,-1979953527,-1977156010,-1073068283,-956827531]},{"sector":5,"data":[309592080,1183667974,-1477947142,200838143,-1727826494,1996436971,1354773496,-100609,1996487798,8108282,902691,-6664191,184549631,-136547136,1946190022,73304974,922240651,1451952009,1606912776,1575324510,1426065090,-326898549,509040132,209110524,-1962377532,1183515742,-1981230842,19267142,-62486272,2085353515,-28406988,-1375961597,-1059991413,-1031090141,-523181871,-523181871,-523181871,-963977007,-523181871,-523181871,-523181871,-997531439,-338369878,1583292361,-1034033781,-1957363700,149717996,-65120426,-1005685051,1586170494,33260292,1183532926,-137219322,-28931597,1258835595,-1946657143,-1981679677,-779355066,1579933323,-11842564,763166286,-1946395133,-1981230654,1325398598,1139571962,-1946973373,-129070332,69464579,-341050654,105286633,-787978505,-204960792,1583292325,-1034033781,-1957363698,49054700,176063318,-15043584,1996425846,108461832,-11485141,630850678,-1962934270,1979059184,102015258,1342850697,-16222465,-1070922122,74907472,181146,200313600,-16026378,-1705637258,723,-963907445,1575324510,503318722,1430622296,-1910575989,175570904,-16222465,28837494,-1914155008,49120255,1562371467,445005,1167087646,518818645,1996478606,142016266,-1207535873,-397410301,-310116504,535137026,113921373,-1873273344,-326412987,-2082959842,1448545516,-1962510709,-1073000762,-1070922379,721456105,242679807,-1324595573,1089000196,1347605035,-1728051528]},{"sector":6,"data":[530206802,-1996488704,-1072958394,1996445812,731533326,-1996488704,-1705969082,1454,-1980348791,-1039402922,1719745652,-1006629108,1191179870,126494454,-125049814,-15972725,-1073017778,-29676683,-24444290,-493825,1996486262,142016266,70949463,1996423168,67345146,1589903360,29763080,-339244288,-159514363,1600043499,-1962742397,1297948645,503319242,1430622296,-1910575989,485262296,-16222465,-6683018,-1996488449,1187511366,-2097151770,1962936958,142016288,721843967,-1706012480,65535,185222793,721778112,32762304,-1685817,175570943,16777114,-364476160,200038025,-15370814,-1070921098,-59310256,91265616,-1073020928,-722742924,15105667,1996434804,108461832,16777114,-431585024,-13994944,1996482166,-361299988,-1694730497,65535,-15305664,-73734538,-1006632957,-2144933282,510984511,-352321096,-427916517,-16222977,-6625674,-16776961,1637485174,-385875963,-1070858379,-990886263,-2144933282,1946157439,112645,-1070923029,-2080881015,-1962738578,1452010054,132588,-11382702,1996483190,-25860,2122514432,779354352,-1996198239,1889663558,-163149564,-1996199263,1822553158,-230258428,-1947574588,-120458170,-1962440410,-120458682,38242598,1990269163,-96040700,-1996195679,1923216966,-196703996,-1996196703,1183576646,984564,61992996,1317796051,-136195598,787945,-2080618871,1962997886,11659523,66733707,37615174,-385646848,2122514595,494207216]},{"sector":7,"data":[-1947574588,-1960379826,-101213945,-1962440410,-1960380850,-140967353,1200170745,-362888190,71797542,653149833,-788117621,-398030368,138906406,-1947974007,-1993935802,1183515719,1200170738,-196703482,603983621,-754732560,1200170744,-92372216,-1961264126,96636099,1347551244,201704331,-11513344,1996481654,-69211928,49708675,1183523708,-329872406,1375734789,-364475568,1375734789,-362888112,142081830,-1542401,434697846,175570940,23706,175570688,-11485141,-1705968522,65535,-2096478581,-443874579,-900899553,1478361094,-1957345904,-661774612,-14488445,1996425846,108461832,1342177976,-1979954200,1183445062,1975520252,30730499,3643984,1183383552,-94991880,653811396,251742198,28837236,721611520,-230258240,-1946663285,33946198,-129595136,653811396,-1996339317,-1960385466,1183384647,1200236256,-1981535736,-1977160634,1183385927,1207314164,460685313,-1804545,1996480630,-1014279956,1375735301,113613392,1183383552,-12850180,-16534986,1996481654,-25888,1183383552,1183535356,-194054172,603983621,-754732560,-328271880,-1713344777,1183535186,-94991368,1375735301,-26032,1996423168,52599536,1996423168,6462192,2122514432,57999612,-2097081879,1962996350,17361155,50622113,1023700998,58654722,-1962870295,-1952848826,-150704626,-364475911,-1713355125,74452619,1183447543,-1305018392,-26109,1183383552,1975520238,12642563,-1411329,1996482678,-193527828]},{"sector":8,"data":[1347469355,16777114,-431585024,58048523,-16741399,1342419510,453530,-498693888,2054471691,-1149185,916126838,-1996488697,-1072957882,922708084,1183515570,-196738068,1342178232,16777114,-1305018624,1354771203,-361300144,-1542401,1347481206,-1804545,548986998,13416960,-6664110,-16776961,1996484214,121805558,922681344,1996424114,-25886,1996423168,124820206,1996423168,124295932,1183514624,-62486042,2122523371,141820134,-1696172289,1912,-1695648001,65535,-1694730497,65535,65781803,-2080618869,-443874579,-900899553,1638406,122290435,4456456,122814723,4521992,64946435,5308423,64225539,5373959,52035587,1384382465,8192003,9896191,5439491,9961727,15663107,10027263,106037507,6946824,117768451,458760,61210883,1048583,59572483,1179655,106561795,1245191,103153923,10223624,120258819,2293768,114884867,2949128,101843203,3145736,34013443,3932167,111542531,3407880,36962563,3997703,47972611,4063239,107086083,4128775,62718211,4194311,56033539,4259847,57934083,4325383,0,0,1167087646,518818645,1996478606,209125134,1347469355,1384155322,245452880,2047224581,922701828,922682640,-1070922630,1996443728,142016266,-1710852353,65535,184953507,-1593412416,1285750868,103457031,-1962742397,1297948645,503319242,1430622296,-1910575989]},{"sector":9,"data":[142016472,16777114,1958742784,103457041,1963476537,1996443657,-26106,-310181888,535137026,80366941,-1873273344,-326412987,-2082959842,1183517420,75145990,103431811,-14715904,721824310,245452992,2047224581,922701828,922682640,-1070922630,-26032,-310181888,535137026,46812509,-1873273344,-326412987,-1596420578,1178076658,-1610056698,1178076659,-1609531898,1178076660,-1609729018,1178076659,-1207599354,48955393,-310132693,535137026,46812509,-1873273344,-326412987,-2116514274,-16387522,-2130151938,-16387010,-1207601922,48955393,-310132693,535137026,80432477,1694499584,-1845493504,939524960,838861056,2046821122,1124073728,-1107295474,1241514240,32,0,0,1167087646,518818645,-326903666,-1202301174,-1001390016,-1960442274,604309063,2090487808,-1962934272,1979059184,-373282043,1996423326,108461832,503989389,1751120,-26032,1962868736,544538402,16777114,71600384,980729867,1149878315,541362466,-1961081717,1183391316,-61437446,1098174987,1342193848,-92864686,16777114,-1706016768,65535,-15992693,1962872949,37526020,-1705639936,586,-947153941,1996443678,-92864516,16777114,-1983411456,1552686148,38061854,-1070904498,343211856,136858,340035840,-1996483423,339118340,112640,-310157474,535137026,80366941,-1873273344,-326412987,-2585058,-6681482,184549631,-1961265984,1602948190,74972932,-16091393,1996425334]},{"sector":10,"data":[-26106,48955392,-310132693,535137026,147475805,-326413056,16968833,73304918,-351504501,176063322,-1962183680,1183515740,71776522,1183532917,138808070,-963967883,1996440555,23173640,1183383552,-2037557752,1343684352,1342242744,16777114,142016256,16777114,-1983739136,-11532218,-2037578122,1343684352,16777114,1958742784,187993025,732067318,-443851072,574045,1167087646,518818645,-326903666,-1957275894,1175128646,721712396,-15995968,1996426358,-26102,1183383552,473861114,96961285,-1996107103,434895942,-362753,1996425334,-59310330,251414147,-1946206488,1979059184,1338477321,-529154037,1600045099,-1962742397,1297948645,503318730,1430622296,-1910575989,116163544,1996445271,-26106,20774912,726889728,1996443840,-26106,1183383552,1359622,1183529707,340015366,2088972405,141819910,-1710852865,65535,-1710983937,65535,1997955,1962870900,39098908,76218368,-1705638519,65535,-24444181,-167037557,1600045173,-1962742397,1297948645,503317194,1430622296,-1910575989,173968344,957106059,796198470,556675,-1705834380,65535,1586176491,1011336970,1204289535,1409285950,-1174222408,1347551948,-16222465,-6683018,-2097151745,-443874579,-900899553,1478361094,-1957345904,-661774612,-1174217544,1347551967,-11485141,-291895690,-1207959550,-4521985,-1957670145,-768932282,1375849088,-26032,-310181888,535137026,46812509,-1873273344]},{"sector":11,"data":[-326412987,-2082959842,1448543468,-351897973,1463126795,-1705983957,65535,-15991157,1600057205,-1962742397,1297948645,402653898,33620736,1207961345,872481536,1140852738,1040188160,-2080374528,1963000658,1459619585,-1593769216,1476396800,1963000576,1509951232,-687865088,201326850,-419429502,-1845493504,-1660943776,-1694498558,-1593834137,1090584322,-1358953727,603980034,-1744829054,-1694498558,-1543503257,1090584322,520160001,83887872,-1878981888,117442304,402653952,-1040187133,1174471432,352323329,1493172992,-603979519,-1191115935,788530944,100729600,805308162,-1946156288,-452984574,-1375665401,1157629697,1224803072,1174406912,-1979645184,1191184128,0,0,0,0,-2081649835,1448543468,-1962641781,956676158,92146805,-352172661,205884199,990528771,-1962573882,418055237,721700235,-1957690811,205859782,175505232,120218,38077184,-443850914,311901,-2081649835,1448545516,-1962510709,1183386180,75400190,-2096860160,1443298886,385238669,-26032,1183645696,-1957685514,-654893500,541363024,-1705977609,713,294531,2089497460,545008424,158662411,103532427,1174471808,843380472,-1593215984,103482432,48956544,1177141291,-96039940,70387243,-336181623,-62485730,71304747,-151501175,1948267076,70426889,75367979,-1070923029,-1912977879,1343682118,-106869,41418551,-16484353,149423222,-1956684288,79846885,-326413056,1460071555]},{"sector":12,"data":[71732054,184788131,-1004112704,-1960440738,-358415801,1200301573,104375046,-1559786714,-1960442928,379782215,81706502,-352026463,207537188,-1559786714,-1960442390,950207559,1200301574,64004866,105351974,-1106897245,2124481984,-96040700,95958665,-1995815285,138840836,-1962785655,1149830726,943622916,-365024506,-1946169083,-130348988,-125107586,-1577419261,1143670250,-1983446256,1149963332,105130768,51135531,721827846,172263879,50719393,78029767,2114485305,104374287,99223082,74777000,77991679,721828001,102933447,1143669899,1962889218,71600906,1342325803,16777114,205783808,-1962560349,100861508,1151534516,-1956684283,214064613,-1873273344,-326412987,-2082959842,-1957295892,145820742,37546195,246968181,-11526652,1996425334,-26106,-1073020928,915080821,904595278,61095555,-1962576896,65734726,-1962522997,506856432,-1205957884,209139973,2005599102,-1205957876,206015237,990529283,-1962508346,1996688503,242679562,1354771286,-2130697496,33688702,1996426101,1354771214,233311888,171346193,-310157819,535137026,181030237,-326413056,-1962611581,103482950,1183384842,1958743038,75400036,-16354048,1592264822,67549184,1048793118,1946157988,-339727612,-28931325,-1539407024,91488259,-335657333,1354771202,16777114,75399936,-13994752,719849590,142016256,-402229505,1183448350,61383164,1962690105,374800,-59310256,-1962702872,-1465648058,1575324419]},{"sector":13,"data":[1426065090,-326898549,74907394,16777114,-28931840,67549264,79187998,-6664192,-16776961,-6619530,-1962934017,46292453,-1873273344,-326412987,-2082959842,1448545004,-2096341365,1946160767,-1070902518,-6664112,-956301057,479238,-569981184,-939524347,-16392186,839305215,-1962934266,1084427334,108954373,-1961135104,508005336,-1962392023,1177100359,-1547465974,113705894,1620,1183516395,106210060,425603,1996426612,105286412,1342178861,-1090740760,-24443654,-2096969853,238654,-141884043,-2096959613,238654,1183516020,-1962677494,1183385670,64004600,-358546295,-1593472763,1149830678,104374532,-1593555575,1178141862,-955679240,403462,16443648,956703393,192739398,103286471,92864513,-1593775383,1178142132,-954434056,33957894,78029056,95952523,-1995421909,273124101,95684099,-1593785367,1178142020,-385647368,580976791,-1509545210,-1205957884,105331461,-1506433,671532800,-1593834490,547554212,68073478,-88584162,-1706025468,1210,503582392,571472,309328,86219344,-1264517120,-1593472763,1166607684,-569981180,-939524347,-16392186,95724031,-1559802205,512427274,126551480,-1560038237,1319175080,-129619193,-1207689565,1344144390,503642808,84777552,1996423168,-29366260,1342178744,62142207,-352210968,102932772,2113422905,671532828,-1593834746,512427332,1194001848,-1962571504,100864071,1166607906,675185412,729023494,-1560042335]},{"sector":14,"data":[246941216,-1202708988,1344144634,16777114,68073472,2124501022,1356396292,-150699871,-6663976,-16776961,62393462,79187968,922701824,922682848,28837342,-1070903294,175570768,-1710721281,65535,-310157474,535137026,147475805,-1873273344,-326412987,-2082959842,-1957296404,-6680970,-1996488449,1451883078,507808764,-1946532311,1177100356,-1070901508,1996443728,-92864516,1021841040,-2012821760,-2097139196,406078,-1202314380,-1202651138,-1202716622,1471809108,-1706012154,1628,-16297821,721823798,-1108848448,-310157824,535137026,181030237,-1873273344,-326412987,-2082959842,2122516204,242483212,-1324595573,1021891336,-385649662,246939781,-11526652,1996425334,35035654,1183383552,103981562,1962559033,242679558,-1962615576,4000838,1025733634,309592577,1963065917,242679628,-1873756117,223799310,113721323,1872,76023495,2122514632,762577146,956707489,628423238,-1207011585,-11468802,-1207662538,-4521985,-1706011905,65535,-16297821,721823798,300437696,-96040192,-2096745821,-443874579,-900899553,-1957363702,82609132,1049318999,915080100,922682920,-16055386,364381556,-1207702783,-11534060,1183516278,-1949160700,721835038,1389595593,-26032,914948096,1049167400,1599996836,-1034033781,1478361092,-1957345904,-661774612,-16091393,1877476982,175570937,-402098433,-310181877,535137026,113921373,-326413056,1461775491,104374614,99223083,1183447249]},{"sector":15,"data":[2143292406,41675011,-16353537,28836982,1843941376,-398030588,95952523,972441227,108857415,-1995946101,-88148410,-2080470268,1048773319,1962935204,-2080929019,-794754321,-1593538301,92866026,-1996089695,950076484,71665926,61095555,-952536064,70316102,921454279,83796228,83494443,-1578482039,1183384628,83534310,75367939,-1946925431,100922950,1183384828,-364475406,-1578875255,938148992,1123043015,-330905852,1151403068,-364476156,721748129,-1996162042,1183573574,-100269066,-196703996,50658465,-1996193786,2124542534,-465139452,-1981397365,922738758,1586168754,-1707606032,2023,-1161591,922682486,1855587272,-1996488696,1048837190,1946157988,74907428,83506943,83638015,-1411329,922744438,-1070922830,1586188368,41418736,-336169217,74907426,83506943,83638015,-624897,922740342,-1070922830,1996443728,-262239242,-1207666689,-860225504,-1706012160,2232,-16484609,1996485750,-461963278,-1193249025,-256245727,-1706012160,2356,62011135,-1286517,155228727,1048772608,1946157988,74907482,-1996238687,-1588534714,1177224760,-28931594,83796304,83494443,-159973552,62011135,-1957642197,1200352350,-163173628,41418576,-1191807233,-860225504,-1706012160,2322,-16484609,1183577206,-2147079170,1996443652,-2143879196,-10949884,950076534,-163173626,1357006473,-1996238687,-11469242,10614390,-66704635,922701828,1586168754,38243308,1358317099]},{"sector":16,"data":[-11485141,2013263478,2144260,1375784122,-26032,1996423168,-498693372,75367979,-227082416,75380479,-1193249025,-256245727,-1706012160,65535,62011135,-1695648001,2379,-16484609,-6620042,-16776961,921175158,74907392,503642808,1354771280,631450,108461824,-16484609,-1930893194,74907392,-16771864,1996424822,1354771204,1577189352,1575324511,1426064578,1048833163,1963197992,74907409,503580344,309328,177642064,-443875328,180829,-2081649835,-11139860,1996424822,-158537724,-1710852353,781,1996484747,28857862,-1310175232,-62486271,-4986794,1443264255,-386107649,-397017061,1996488613,-1070901754,26404944,52927062,-1956773888,79846885,-326413056,1459940483,104374614,99223097,-756481156,83541504,-947650933,-1539407102,91488259,-964428149,-1205957886,239569669,63964675,379651465,239545094,-1593555575,76088486,-1996086623,1996424260,83539974,1996443678,-401698812,512426228,1200293304,17115406,-1264516027,-1593538299,1149830468,102932740,77989419,2114340667,108461857,503642808,-969474224,-401698813,1996423360,83539974,-1070903266,52402768,1084293120,138819845,547438965,-1543096058,-1103596285,1048773646,1946157988,46564099,1023813793,125042690,1946157885,-1591940329,1149830580,108461828,503582392,-401698736,132841531,-1996143455,1592453892,1575324511,1426065090,-326898549,74907402,639130,-163149568,68073552]},{"sector":17,"data":[244338718,-16773400,-224725386,-1962934263,46292453,-1873273344,-326412987,-2082959842,1183648492,-11528458,1996425334,191076870,1996423168,-163148534,-6664170,-2097151745,-443874579,-900899553,1478361094,-1957345904,-661774612,-1928663933,1343682118,-16091393,1687816310,-16777212,1183648886,-11528458,-6683018,-2097151745,-443874579,-900899553,-1957363704,49054700,294531,1586186612,73370376,956703905,460588103,-1207404801,-11534311,1183516278,-2133710072,1347552714,16777114,-15734016,1996425334,374790,-26032,1183383552,108462078,199203408,1721958400,-15930621,922682998,-660995226,-1962934265,-443810234,442973,-1947432107,1178141766,-1962574586,65734214,-1962654069,79846885,-326413056,956581515,92145222,-351910261,71731971,-1034033781,1478361092,-1957345904,-661774612,1464003715,242649942,-1996249951,681704006,-1002010362,-1996249439,1419888198,-196703994,707806346,-62486044,-410912629,1183514632,16792844,1625883509,-385649150,20775778,1025733632,57999367,1023481321,57999368,1023500265,57999375,1023500009,57999495,-385762327,1589904234,1200301574,-330921712,205980454,653280905,-1995552885,52883014,1183386183,1979649010,126559779,39291686,-1983887735,1149878870,1078233410,1149878923,809798212,19260458,1178896640,117196534,-1897331851,1962871552,-62458320,-1961593852,103542854,1183384650,-230257684,72091179,-1947318647,100920390]}],[{"sector":1,"data":[1183384650,-297366544,72091139,-336443767,-62458307,-165776383,1946352710,-330921204,70387203,-336574839,-263812315,70387243,-336836983,-62458343,-1962314750,100920902,-924122042,737298059,-1996208634,-11080122,1996483702,-263812114,1357661739,737298059,726724166,-6664000,-1962934017,-1532757434,-1002009853,-1962530653,-1499216314,-196703485,721835171,12708288,112726,1182565200,-1962380288,1143677508,-1593578722,243990946,-506395522,-1054088751,1182565200,-1593478144,116064672,723797131,243998788,-506395520,-1054088751,-26032,-397017088,-397016503,-1705638554,65535,-6647317,-352321281,172395402,199902857,1443788224,382355085,-26032,1183383552,1979649002,384325133,1996445186,-119150358,1149904363,635710002,1183383556,843874494,1996445188,1354771434,16777114,-1099005184,-2147191552,-2080689564,1946159742,-13375229,-901345962,-6664170,-385875713,28901157,-372102400,1187447228,200290550,187790847,-165120513,1946235460,-6662650,1442840831,1016730,-1494723072,1996445185,108461832,-1873756117,-189667314,-939595543,-268372410,50873995,280045636,1317789907,642515718,1183432971,138856198,-1705639936,3841,18004048,-163148976,-11533300,1996425334,112368134,-1427570688,172395518,1023418669,58064903,67017961,-13724736,-955310425,395846,1187455467,-352319734,172410650,334168066,51005127,-955454720,2630,1187448299,1442840842]},{"sector":2,"data":[16777114,61252352,106182281,-1555676021,1996424100,1354771210,-369663000,249953869,249433836,250810071,251268851,988352250,1078234110,13822361,725898379,1111788480,-1962883095,1149831750,105286464,-351648119,138840844,-1958460279,1149830726,1081409346,-398166785,-11469690,-1729609100,1078233596,10741846,687747,-286719115,-1209510147,-6662653,1442840831,16777114,-364476160,28856406,-370651136,-129594885,-387287297,-11077143,1996483190,-95295240,-387287297,-11077159,-1070863754,-70850480,-361300138,16777114,-32839424,1963065661,-24647421,1963066173,-25761533,1963196477,-10229501,1963196733,-11933437,1963196989,-10360573,1963197245,-12523261,209125206,-16091393,1996425334,196188678,1599995904,-1962742397,1297948645,1426066122,-326898549,1988843016,1183667716,-1706027272,65535,245668438,-1499267072,-129594109,1962889238,1114963776,-12290817,-1326954892,-443851024,180829,1167087646,518818645,1448597646,1443395211,1097114,1958742784,108954419,1443984642,1342439864,1347469355,283023952,518717440,687235,2122520180,91488262,-352320581,-774165758,175934435,48955787,1600045099,-1962742397,1297948645,503317706,1430622296,-1910575989,1988843224,209125128,1119130,1975520000,-339727612,176063276,-15371006,12061814,-1957277692,1385760326,288266832,300613632,-15960321,-1070921098,-11119024,-337115530,-310157824,535137026,147475805]},{"sector":3,"data":[-1873273344,-326412987,-2082959842,-11138836,-1768288138,184549393,-2091813696,1963069054,276234023,1342440376,1347469355,297376336,1183383552,-94991880,638213828,1589905289,650283782,887818121,-1961861493,-167048585,2122521204,57933838,-1006188925,1149962846,126428674,-1962516796,-672463804,638213828,1991,637951684,1991,49120094,1562371467,838221,1167087646,518818645,1996478606,-26098,-1073020928,2122528628,460653068,-1207011585,-11533310,1451951734,-1950340344,1347553862,965274,-15275264,1996426870,112652,175570768,-16222465,199755382,49120000,1562371467,707149,-2081649835,1448547564,-955353461,61510,707937418,-330921500,818819,539297140,-1962480896,270920774,1958742784,112645,-1070923029,-2081012087,1962936958,1975520007,17623299,687747,1183519092,105265416,28837236,721939200,-1962677312,1183446598,209617902,-2146536448,199176804,-2146143040,-350211508,845447182,-293698577,-2147191808,-2096090548,1946218110,175934279,141950731,-26026,-125108224,818819,-947715212,-1996125434,2122575942,242483210,-1995946357,1183515205,71665926,1183516139,-16414456,41287477,1358520040,-402360833,92928318,294531,1156978292,192225331,271795446,28837236,721611520,71731648,871777931,695529030,707937418,-330921500,-1962930139,-511579058,-1056243680,1962871669,-26102,1149829120,-6662646,-352321281,-293698768]},{"sector":4,"data":[-2094369792,1946158206,776243748,1183441962,209617900,621114368,116064258,636241547,-1073020924,-11139212,2145913974,-263812106,-443850914,836189,-1578333355,1178140770,-1959168764,2139292766,91488326,-352071519,95723779,75370123,-1056710191,73304912,4620163,-1264515724,-1593578747,243991504,-506395520,-1705983741,65535,-1034033781,1478361090,-1957345904,-661774612,-1593250685,1178140778,-385649656,-559873831,-536474875,-385649403,113705165,1576,16777114,-532774656,1963233029,-566329044,1963231493,108954404,-15830016,922683510,28837710,-1326952448,142016494,-1192285976,-11534332,-352081866,-532774541,1963156229,-566328978,1963154693,1346274150,208928775,-1207404801,-1705967618,65535,355226,-96040704,-239991,1183647862,-1706027270,65535,503582392,-59310256,-1694861569,1530,200820361,-16354112,-1360525194,108954614,-15830016,922683510,28837710,887640064,571630,-126419120,-2081283096,414782,922683764,-728103340,721420301,98608064,-2096767325,-443874579,-900899553,3145732,260636675,939065345,237043715,1275133953,334561285,27984127,331153413,28180735,342294531,-2054815743,183828483,940179457,187564035,1686765569,3735555,1376452609,94896133,20316415,241369091,781254657,274792451,1620180993,239009795,445841409,8388611,1695875073,231079939,-2087387135,264306691,941228033,233963523,429522945]},{"sector":5,"data":[268828675,1738211329,55508995,1167851521,336134147,849149953,334036994,27984127,271056899,1629552641,330629122,28180735,188416003,1721958401,95420419,1428619265,95092738,20316415,197263363,464257025,335806467,1437990913,317587715,458759,326631427,-2068316159,309460995,163446785,276430851,624885761,88604675,675282945,74842115,1698693121,271450115,482672641,224854019,541720577,318177283,1288437761,241762307,-2058289151,337379331,1624440833,140509443,1900552,192086019,1717174273,138674435,2293768,338427907,1692270593,185270275,954269697,157351939,1172635649,198050051,2949128,232456195,-2072903679,6946819,1634926593,330104835,846397441,1167087646,518818645,-326903666,209617158,2138374658,16777114,637978368,-1962934266,1183385670,1812892668,-772157180,-1950274567,1195052638,-15303640,1996424822,-401698808,726664361,244338880,-352285464,-401698746,-1073020852,922682997,-404028124,86253195,-2020875311,1183384914,108462074,1342732031,16777114,6463744,1962559033,-92864746,1342179000,1342177720,-11485141,-979699082,-2097152000,-443874579,-900899553,1478361098,-1957345904,-661774612,1443163267,86253195,-1215568943,-167049902,-1202318988,726663187,1347440832,104602,721611520,-310157632,535137026,516640093,1430622296,-1910575989,142016472,-1207535873,-397410303,-310181877,535137026,80366941,-326413056,1460071555]},{"sector":6,"data":[89309014,425603,1988822388,-1591547130,-523172572,1183434499,-1948742662,509751,140413696,964944849,-1593412608,1183384868,140413704,831120337,29137494,-11141120,-18347914,1149982210,642001694,541363024,1344816171,16777114,642026752,1150111774,-1706025442,65535,112726,30513744,2122514432,611581958,374870,112720,608471888,723534891,735087570,575441856,-1960948693,-1706011967,65535,294531,727058804,244338880,1577446888,1575324511,1426065090,-1957237621,-1705638794,65535,-1993980789,1149971012,742689064,1354771286,16777114,-443851264,180829,1167087646,518818645,-326903666,-1957275844,1187450486,-1962934024,4000838,-385649406,58065030,1023544297,1483997199,1946162237,2047258,-11132044,1996426358,142016266,-1710852353,65535,-16642071,-1070921098,-6664112,-352321281,641631197,393478150,103167743,1342309048,-1705983957,65535,244338770,-1694650904,748,190362,30664960,-800682666,-6664170,-16776961,-2132225930,1183667717,-1706027312,65535,-956189463,129094,-1559607669,1996424494,108461832,1172835984,200837895,-385649153,1173750165,359925811,16285315,-2031549579,1095681,-26032,2062090240,205949697,1946288445,33766763,1793655668,28858113,848973824,184549379,-385649216,244318553,201179112,-385649216,1369047373,-1711276029,830,67782390,-1873341836,101181454,112727]},{"sector":7,"data":[-26032,116064256,-401698729,1043924595,57999458,1459690729,1342179000,1342177720,1464909867,36762,17295616,112727,-26032,-1073020928,-152501387,-26112,-396951552,-1202192787,-1873805311,71886862,5530,-26112,109969408,-1591344362,1183406757,403082950,103491075,1157847721,1779338022,66703620,-934901311,51775118,1520935206,-1899739511,637736966,1521157675,-1960295165,-788239346,-1983839239,-759628730,-1957683709,1177274438,1183535302,-1002034180,-26032,1996423168,-59310136,16777114,73239296,-1995028597,-1072956858,748750453,-96040698,-362753,-1711023562,65535,16777114,641632512,79189510,-1202696192,-4521985,-11513089,1996426358,-61437174,1183563819,-1706011960,65535,19736043,539906,-102169738,-1816132611,564657966,-2080211196,2130870018,2130842114,302153474,721583874,1600035264,-1962742397,1297948645,1426066122,-326898549,-1957275896,2123040374,-129594108,-396931050,1755381824,1812343556,-1037330172,1174665425,541362682,721708705,-1727763962,-120470997,-1980217853,1149967940,1812333344,608471300,52315275,-1996199418,1600004676,-1034033781,-1957363708,1988843244,-1715041532,86642315,788003319,243991656,-936704692,637951684,-1962520695,244029894,-101251798,787989131,-1993997210,1200301575,1745234694,1200170500,126559746,73795075,71797030,1575324510,503318210,1430622296,-1910575989,82609112,1988843095,108956424]},{"sector":8,"data":[-244025,874417151,545208582,-947181441,-1725937877,73928331,-930350601,721758369,787957953,-930413270,-1952856437,-150706658,-1983380485,1183579214,-2090901764,-443874579,-900899553,1478361092,-1957345904,-661774612,85985023,956640417,2114265094,671547154,86679813,86771201,73938687,-2097149464,-443874579,-884122337,1458342741,-1962641781,688272414,1999186039,-137983200,-6663976,-956301057,17114630,-26112,-1956773888,46292453,-1873273344,-326412987,-2082959842,1448545004,86783627,721758881,537853936,86024453,1417015355,-1996149599,915012678,-13957844,-544525333,-1081875503,1962935634,956754727,208993398,-773944506,1388282851,-277610491,1962702393,1187416854,1459954851,-1873756117,-87037938,742275399,-3703035,-1593497586,-654900120,-10688432,-310157474,535137026,516640093,1430622296,-1910575989,216826840,876019542,129997318,-259325952,104085247,385107597,-26032,1183514624,1745224694,-96040700,-196702890,922701846,161088446,1442840583,512922,-310157824,535137026,516640093,1430622296,-1910575989,82609112,641108822,637978373,-1962934267,-310157626,535137026,516640093,1430622296,-1910575989,86548952,73936631,-1962742397,1297948645,-326412853,1460333699,175541078,-1928823157,1343682118,-402229505,512490956,1200293428,-129619680,1476150825,385238669,-26032,-1073020928,-1545010315,1183667968,-162523402,1950363204,75399947,-1593477888]},{"sector":9,"data":[65734198,1342422689,16777114,75399936,1467839744,16777114,1962891008,678756134,493210,1962891008,544538398,-14519041,-6675340,-1962934017,1200292956,-28931818,259309579,1354771287,-25755824,16777114,1444276992,-26025,727056384,-1202696000,-1706033151,65535,-2144451338,1686113396,512458542,1333790260,-1957199826,-16370658,2013208183,-26080,-1705574400,65535,-443850914,574045,1167087646,518818645,-326903666,-1957275896,-13957002,1392002759,-1960056059,926546014,922689397,-6683084,-1996488449,1347877958,108461911,-71960,-6620042,-352321281,1183008523,1043923704,-813759188,-310157474,535137026,80366941,-326413056,1459940483,-1074386090,367723858,1946172803,-13238516,727057526,-1528278848,-947697922,741751042,1592098565,1575324511,503317186,1430622296,-1910575989,149717976,1988843095,243041032,-15895039,-6680972,-956301057,3652,-768147626,1354771205,16777114,944015872,-956807544,-2130757564,-2145373364,-1971376540,-466994876,-1577433463,1178141996,-1961329158,-472778146,89309059,-15960832,-11077002,1827145334,-1337725960,-126945778,503568523,126551260,73795075,244029768,-101251994,737822345,742275583,-1591771643,1178141996,-955943430,64070,-772120949,1388282851,-1217134587,1207584511,1600052203,-1962742397,1297948645,503317706,1430622296,-1910575989,1988843224,28857862,244338688,1593781480,-1962742397,1297948645]},{"sector":10,"data":[503317194,1430622296,-1910575989,82609112,1988843095,-1305069306,-1710918395,596,-768147626,-26107,1686110208,-1202266317,-1873805311,-27203570,-14781185,244326516,-1946441496,960792824,-472785013,89294791,1599995904,-1962742397,1297948645,503317194,1430622296,-1910575989,1988843224,-773944570,1384614883,-310157819,535137026,46812509,-1873273344,-326412987,-2082959842,1448543980,1443264139,1459100904,1726484112,81568255,737953417,-1961890817,1183054942,1149964028,71776550,-947189377,470170439,1458076677,1358906765,1342177720,16777114,-2090902016,-443874579,-900899553,1478361090,-1957345904,-661774612,1460202627,-1946211498,-1472841225,-9014012,512427638,1200293428,138806056,-401698736,1183447781,-49672,-661973644,86253193,-1215568943,1048577362,2097152146,972983042,1946530366,1480491840,175374342,597146,39426560,-16056320,-1873400972,3467278,106444543,1342178488,16777114,1479999232,-26106,882966528,1778792710,1342600192,16777114,1590070016,49120095,1562371467,313933,1167087646,518818645,-326903666,1988843088,1183667718,-397404482,1183383877,876019638,-26106,1183383552,1183666354,-11528514,-6637962,-1996488449,1451866694,-1300824132,420250,-1169782016,-1996486651,1183561798,-1270445636,-1715976565,-120470997,723405963,73834952,-775804007,-1983380488,512471118,-1047853516,2115913529,508005126,-1951381879,1174646854,874417080]},{"sector":11,"data":[575093510,1200294270,-1203360990,-1196407159,-768901116,-1070903214,-2001055664,-11513208,1150005366,-1270469856,1342178349,-1950845185,50705478,-1070903296,922701904,1347421088,16777114,106472192,74760203,95565449,49120094,1562371467,182861,1167087646,518818645,-326903666,205949798,1962938173,242679623,379209357,40344144,922681344,1183647154,-397404484,1183383629,-1703477318,1342178232,1342177720,381437581,-1166606512,16777114,242679552,379209357,41458256,28835840,350984448,-15829249,1996426358,142016266,-1710852353,544,-1962742397,1297948645,1426066122,-326898549,142016258,-16353537,1069024374,-6664192,-1996488449,-1072955834,1996433525,74907398,705039008,-1442446364,-1407808764,-1706012156,65535,-16353537,-6683530,-1996488449,1183579718,1575324670,872416962,-822082816,2030043394,-1711275217,-117440246,1057030967,1157629960,-1308622080,2130706690,1895826275,-1862205696,1442841345,-2130706173,-1895824585,-1811874043,201392897,1476396812,-1711275264,-1996488443,1677722424,-1979711231,-218103196,-1778319613,973079297,167772422,385942328,1509951244,1426064128,-1946156799,-1375730915,-1828716277,-1308622054,352321795,2046821221,-1711275765,855704345,1644169223,-939523328,-1694498549,1207960423,-1660944126,-503250126,1744832518,1241514752,553648390,637535073,-1392508663,553714449,1962936327,1090519808,838861067,-922746110,838861065,-603978995,922747139]},{"sector":12,"data":[1677722423,-1207959289,352387860,-2130704377,-1946090752,-2113927161,-1426062592,-1107295990,620757842,1056964867,1442841381,-1090518774,134218548,1073742084,33555240,1392574211,1291846401,1124073738,1291846414,-922746617,788595509,-1811937278,1660945152,1509949702,1694499686,1509949706,973079346,1526726913,-352320712,-603979509,-1191181471,-520093430,1358955320,1677721864,-1593834735,-452984565,1845494610,1761607937,-520092869,1778385155,822084407,-335544054,1442841443,1828716807,-268434149,-1778319613,-1124072703,1879048451,905970484,1929380106,50,0,1167087646,518818645,-326903666,503760648,-1207959296,-397410302,-1073020830,28837236,721611520,-96040512,5302352,16416387,113709173,30,5899975,-1070923776,-6672405,-402652929,512426257,2013202000,-26108,2122514432,141885448,-1996077429,99350598,33048263,-126419200,16777114,49120000,1562371467,313933,-1192457387,-4521985,-1957670145,1385759814,-26032,-443875328,180829,1167087646,518818645,-326903666,1988843014,173968134,956322977,91556935,-352321096,175570723,1963130499,1161221,381158379,727076864,-1706012480,65535,-2080618871,-663420162,49120094,1562371467,445005,1167087646,518818645,-326903666,-6662652,-1107296001,132841858,-956109181,-2130706428,1962967806,-18189,1392508858,8566864,-6664162,-1912602369,-1610412026,-2145124204,-1574535116,109991891]},{"sector":13,"data":[-1818229998,880813056,-727570816,2084471639,225705988,-1157627976,1347616767,16777114,-310157824,535137026,1439386973,-326898549,2084471570,91488260,16777114,-26112,-6684672,-1912602369,637735942,1473591039,384714381,1354771280,-18352,112720,-26032,-1073020928,-443818635,1478411101,-1957345904,-661774612,17306,-5511168,105913995,-1710983169,82,-1962742397,1297948645,-1873273141,-326412987,-2082959842,512427244,2013202000,1354771204,1347440720,-26032,244318208,738131432,1347440832,-26032,-6684672,-2097151745,-443874579,-884122337,196629,65961,16988033,65783,16973828,65907,16973829,131355,16973826,131438,196611,65678,17007116,196941,16973826,196969,327683,16711808,16974164,524728,16973945,458861,16973826,524770,131194,65864,220098,65744,206143,66034,153411,16711811,131412,65809,350170,65861,220098,66039,210794,65938,351982,65806,22490,1167087646,518818645,-326903666,-950642922,64070,-1124710713,-297351421,-164953122,1589932779,105284358,126559748,39291686,-1980742007,1589965398,172393226,1066083842,-1962933832,165729231,-8127930,-1959887606,-947128738,-670834479,1183385483,1958743018,-6664186,-16776961,1996485238,-25872,1586167808,-774927370,-1982266399,-295793913]},{"sector":14,"data":[-523122805,-670834479,-1947187573,126480982,1174558601,2131654201,-18295,1423440,1354771280,-6664112,-150994689,18938438,95947892,-1070903296,112720,1190596331,1946344954,374797,1354771280,15440464,1190526976,661914362,29245059,-1205832448,726663170,28856512,-6664192,-2097151745,334910,314050933,-6664187,1577058559,49120095,1562371467,84593229,1845560064,1107298304,1661010688,1157629952,-83885312,1241579264,-1493171455,1056964864,-838859995,-486539008,24,0,0,1167087646,518818645,113760398,65616,29245059,-2093255424,334910,-6679436,-402652929,-1070923721,473366352,539748357,314051051,244338693,-2096682008,1946158718,-26107,1048772608,1946158364,-26107,-310181888,535137026,46812509,-326413056,1459940483,-600405162,-335598844,-964471288,911374,473839943,1592950533,1575324511,-326412861,74877782,722236671,922702016,413205780,335948549,-396996603,-1956773881,46292453,-326413056,1444605059,1183432747,-364475920,-1946925431,384502902,556163,1191119732,138709994,-336574975,-196673789,1983460491,-1578797814,-120519552,-1947318647,1174664262,-230258198,-134330743,-1962646482,-936704434,200822409,-1593475383,166397028,-1727641973,-135115125,-96040455,15222471,-263812352,2130200121,112645,-1070923029,199640713,-2095024960,1946219646,-196703462,73674487,1183565963,734079750,-1952845754]},{"sector":15,"data":[-101190578,-1947711863,1183385670,209095676,1442877417,1347469355,160410,-62485760,-15186807,1098183246,16285315,2088971646,527695880,15105667,1149961588,-14685432,1996425332,-260636680,16777114,1678115584,-1962153212,1174661190,-1962677254,1183447622,407145452,-336837117,138840838,-1996077565,1183521860,-62520852,1224623755,1962034747,-297366778,-2095561687,1946219134,75538697,32392747,1150098500,1996443670,12380164,1983460491,-385649654,-1956708503,180510181,-326413056,-11485141,-16442314,-1593503178,103482646,-397409006,-443875324,-1957313699,183272428,1988843095,138840838,-1995815381,-1072957882,1183542900,1317771524,-1980106762,1183578182,-1983511804,247004230,175044352,81528323,-335657335,-27358399,2122528649,91554038,-335788405,-129594619,-259275261,-1979818357,2139817079,1461185292,505300365,-26032,1166868480,1996443670,1894654,-16040565,1183049077,1183518462,-162594826,-1250574325,-443850914,574045,-2081649835,1448542956,-1962641781,-788234690,3965951,-1070922635,-947191061,103482371,1586168958,-1593341690,1144587542,-1593477884,48956542,1141098379,106859268,1577338761,1575324511,1426064578,-326898549,-1957275900,189662326,721583606,75402230,85737019,1049298300,-11598564,1465255030,-397361109,1599995960,-1034033781,-1957363708,82609132,1988843095,1962281732,2123058689,1086819076,85722683,-12123788,1465255030,-402229505,1599995912]},{"sector":16,"data":[-1034033781,-1957363708,116163564,1988843095,142510858,254208087,-113015,1183385206,253159674,-1980086741,-1952842682,-819263922,1006237505,2097439238,85106968,738084489,85762559,105285960,721753761,1183448646,1183537148,-11517946,1996488310,-26285828,294531,1586169716,778534916,1183536879,-397393914,1448549541,1578946280,1575324511,1426065602,1448602763,-1962248565,-16054146,1586169461,209685260,1963065219,209125131,68131414,-125108224,1460434687,1996436735,74907398,1577073384,1575324511,1426066114,-326898549,-1957275902,1996424822,1436177928,-1962934268,1979649016,-95486,1448544374,-11485141,149423222,-1956684288,113401317,-326413056,1460333699,209095510,33310407,176065280,1191118315,960334844,-160102274,175570774,16777114,1475906304,-1995548952,2122577478,225705992,-1962385781,1183392839,-348156934,105155336,737822345,-96039937,-1980348885,-1952842170,-101188530,73664059,1149965949,38570758,737562249,-28931647,-1995684725,-13956538,1460303615,-624897,-396951946,2122578927,125042694,-2147066229,-2081477017,1946158206,1996445191,458024970,1577731723,1575324511,503319234,1430622296,-1910575989,183272408,1988843095,108956424,404378,944015872,1022903944,-1609861825,-922876644,-1996994936,246429764,66612982,-1996170234,1352334406,-1996488698,2122381894,175898872,-1728559478,85722683,2122343292,175964408,-1963440386,-654903226,1183452651]},{"sector":17,"data":[104569080,108791068,-2012930912,1183512646,944015608,-369750351,66471561,-1996170234,1183513670,-397371144,-1957291063,100922950,726664412,-1751494464,1442840581,503648952,94542416,-1974075392,1352202310,-335706136,1996445243,-6662148,1442840831,519849611,22649424,2122514432,326369530,-2131054872,737095268,922702016,-1628961508,-15865062,1465318518,112726,-34084784,271469696,-26026,2122514432,91488506,17050,118331904,1599995904,-1962742397,1297948645,503317706,1430622296,-1910575989,216826840,1988843095,-1103199480,427032577,29242937,-51838092,-129579264,-6684671,687866111,-351987706,-129579259,530186240,-1962934272,1149916732,-196704200,-369750351,81528323,1358710409,16777114,-1106852096,-1711276031,65535,-1980217845,1586230854,176129020,-1972800256,1352201286,-2095427864,334910,113714037,65552,1342509752,-437776752,-125926656,-1704233984,65535,1342177976,-347029461,-159481065,-400133120,-1125581997,-125926407,-1206881280,1448083459,1342177720,16777114,-1975784704,1352201286,-350650136,1183471153,-397371148,652999705,16154243,-1998056076,-125926407,734819584,922702016,1994917148,-15996135,-1202193290,-397410303,2122579213,343212038,-125926570,-1207601920,48955393,-1705983957,65535,20122,-2090902016,-443874579,-900899553,1478361092,-1957345904,-661774612,1460071555,108432214,29245059,17069312,-1593501642,1183384796]}],[{"sector":1,"data":[-335598596,-60912885,251414147,1191606017,705028768,2009545700,-2090901780,-443874579,-900899553,1478361090,-1957345904,-661774612,1459940483,108432214,16777114,1475906304,16777114,922703616,922682642,922682644,922682646,-6683368,1459618047,-1705983957,65535,-1103691945,-26109,-11075584,41221940,721699979,1149980676,38021894,2209872,1375793338,-26032,-1705574400,65535,-26025,1599995904,-1962742397,1297948645,503317194,1430622296,-1910575989,82609112,141986646,-1103199402,91488257,-352320328,178179,-26032,-241565696,-2097151996,114238,26877557,16777225,-1962600442,1554187846,-1103722237,150641153,-397017088,132841498,108461910,-1711234840,1506,49120094,1562371467,313933,-2081649835,-1957295892,1589118070,-1924129277,1344151108,16777114,1342621440,-1929379840,1343682630,721766049,1342471686,88618751,50678433,1342471686,50678945,1342472198,16777114,1183667712,-1706027272,2338,56376963,1445688320,-1705983957,65535,85737091,721843456,1994936512,922703384,-1070922532,91724368,-1705639936,1490,-1705638165,2344,1575324510,1426064066,-326898549,1988843010,1547600646,276037635,1354771286,16777114,153983488,1340801024,400282,403056896,-1106852091,-2097151999,20542,1156056436,1443621879,503537336,92445264,-1705639936,65535,428186,473858816,158662661,1342509752,635965072]},{"sector":2,"data":[243966,28857936,-1315287040,1577058310,-1034033781,-1957363708,351044588,1988843095,-330920696,1150111766,-1706025442,2662,294531,2122516853,57999366,-1342126615,946664974,81528323,-1946401143,1143678020,105251616,-1996208637,2122516548,1131675652,17057419,1149969476,-2147079388,-28931836,1166752907,608447268,1006126729,2114216966,-2147089650,-196703996,1183384971,-1592857606,1177224472,-196703746,16402119,1996445440,-1957303302,1143539270,-59310304,65182294,-125108224,723534987,1183391813,1678130168,-1961525756,1183391813,-129594370,75499011,-1980479863,485227134,-1996155743,1150025286,-28955872,75499011,-1946925431,1200356446,-96040692,1459255039,-100609,1996485750,-161355524,507809110,-1667608546,-1962934264,1149837380,608471832,-1927527287,1344151108,384583309,140876368,1183514624,-1956684038,113401317,-326413056,1460595843,207522646,723797899,104538183,310183012,556675,-1310129292,176063232,-385649664,1586167976,608668428,52447019,1174603846,1678129930,-385647356,1200291984,507980578,50611715,104531526,2122056802,822426,209125120,-16353537,-169343882,209125126,-16091393,1911031926,-62486018,-141820117,1946580537,108411149,-1983969923,-1107039456,2122522715,242483204,294531,1539245437,-1107039456,-167042935,922684532,922682686,-963967562,1996476671,175570700,-16222465,501808246,1962871552,1043791628,-1237909755,-3699963]},{"sector":3,"data":[138451664,1599995904,-1034033781,-1957363702,82609132,1988843095,-166809590,-125093780,81542659,185091723,745801286,556675,2122516092,125698054,-100907321,-955913441,534314054,556675,1996425076,-348848380,1996445188,-61407484,722236927,937971904,-1956684268,146955749,-1873273344,-326412987,-2082959842,1448543980,-16353653,1996425846,1354771208,71166038,-15992693,-167041163,-1628896395,860157440,-385649376,1962868885,544538398,16777114,102277888,-6662576,-352321281,860129918,539354154,-96040704,326418443,1946288003,-605530616,1958742787,-6662558,-1962934017,81351,71117428,-2095680512,1946221182,922703422,922682880,-6683164,-352321281,922703418,1996424676,-25862,736821248,-2012866400,2122529092,141820154,-26026,401276928,1354771286,587162,1443687168,100677375,98842367,1577061864,49120095,1562371467,445005,-2081649835,1448549612,-1710721397,2063,-2009578358,246544966,-125048330,81542659,1183384715,964860,50753271,-1996170234,1187511878,-2097151756,2097153662,-196688080,1183514625,1222178566,-1207548279,1861681166,-603585786,-28931836,-1728428406,2080785979,247956230,-375042,1189611126,-1705552364,1605,-25755818,-1710983425,2246,-2012854646,2122528836,762577140,687491,-588765324,-25755660,1475569384,-2131533080,737095268,1996443840,321906694,-16353537,-402318282,1609110355,175997697,-385649664]},{"sector":4,"data":[92995749,-1996208853,1183512134,1183422714,1692946674,-230257901,2114340409,-26311929,105840398,16023171,1183475060,1183422714,-263812626,-1996077429,1178202694,1074953966,-1947187575,1183444550,-163148814,1183439095,-260636682,-1192069377,-11468801,-18286986,1150113281,-1706025442,3715,-402229505,1586169036,-16283138,-1108867466,-27358460,-16496759,1150092918,2095599638,-402003199,1996485663,-223745794,-282172288,-1728428406,308013136,-1979665943,999881286,829687366,1459517183,721712895,-397389632,1183446469,1996445678,1354771452,-1980369688,1996483654,-294191106,1460798952,-387156225,-2115431938,608471808,723534891,-1996193786,1996482630,75622404,2116043835,-62485733,-1981528439,1586226758,-1995994364,1183574598,-1982269464,250341446,1183384715,-62485532,-1981135223,1996482118,-361299996,-11485141,1055451254,778338304,1996445679,295758054,507809110,-476426210,-16777202,686294134,407144708,602420479,474253572,271469696,147626582,1117388800,1577058315,1575324511,1426065090,-326898549,-1957275896,2123041398,-1924601082,1343682630,505300109,158112336,1183645696,1464866552,-1710983425,4034,-129594026,1268404246,-2097151990,1946158206,1150113288,535318550,1962871552,944015884,1150111896,1156075542,959744768,-1284175754,-443850914,574045,-2081649835,-1957297428,-2136931210,-1980182268,2089025094,92210178,148679,85500160,956302381,108791364,-1996154719]},{"sector":5,"data":[-1956772284,79846885,-326413056,1459809411,74877782,-150991176,-125106578,81542659,425603,2124482932,66638084,-1962743035,2114333445,-1593538300,961021212,225707590,-1962654325,-788234738,-339672071,71666439,75367939,1577337993,1575324511,1426064578,-326898549,-1957275902,246942326,-1947273472,-599915528,-1960711420,-11526457,-1070922634,-26032,-544538624,-15808637,-1070920585,108461904,-19404720,960939659,-680196026,-443850914,574045,1458342741,1443133067,1342182328,1347469355,-26032,-1956773888,46292453,-326413056,1048794966,1946157502,-373279995,1183515021,7906058,-1962391925,8037336,184964747,-1979157038,-1979422186,-788239306,404655082,2093169413,-2134496721,-1019543332,922690428,922681464,-442892166,-1560281077,-1706031592,65535,57982987,-1207878167,988348417,8037121,2050424658,2016870144,-1547685120,1347421696,16777114,-459056640,200313605,-385649216,-1070399219,-1556593526,2057373184,718834432,14450886,2099266619,100704276,1342323176,166632022,-919470080,-351935325,33665361,14123230,2099534907,-1581121979,-661979016,-595541462,507788032,10552701,-32314618,46369729,13926594,2082620475,100704524,-654884800,-351928157,-155058667,1946694468,-1547685112,-1628895772,309248,62391275,10217472,58048523,-1962898199,-16055170,-2098658443,860222976,-352095200,-109014918,991657218,174945527,185234889,990147830,-345934795]},{"sector":6,"data":[71732058,1483998267,-109030933,-1958579196,1837761662,-389707208,-661978742,973464224,1946491910,172460603,460703998,990150283,-1976732418,-980797348,1963129216,-20906492,986250944,857306307,98870208,-352320840,74857234,79170164,-1207375104,65732611,1593835704,1575324510,1342179522,2080569728,83460123,-492824972,470170117,185431301,-167480065,1478505285,-1023409992,-1957313704,-1957210388,-1070397322,-1959246710,17098968,881717387,-16483187,-1959395532,-1073019322,69804660,-1070396277,-1974415222,734104563,104591940,930874466,-745879413,-10958082,736883316,184829579,22181056,-1959395579,721753614,-19690995,473336514,239438597,104531243,125568098,-209008501,-1962752384,990128901,2097439238,93280263,535495823,1396921183,-1974455041,1042188762,-561360123,95821449,-397322413,-1578569820,1599625455,1575324510,-1962932542,-768471971,28443371,-1947432107,-930479034,-1962911256,1959922392,-163083508,326486282,-351989087,239569678,238731774,58000668,-1962600799,46292453,29270272,32241859,-326412807,1912888971,197145359,-1961397029,103490631,250283136,413260555,-1962445819,100868167,-443874176,180829,-166808239,-603585563,516118788,1430622296,-1910575989,82609112,276204374,16777114,108954368,1444180992,-15829249,1996426358,142016266,1760038544,-161813760,1958753092,1996445202,209125134,-16091393,199755894,-163386612,1948267332,641108238]},{"sector":7,"data":[28857862,-6664192,-1962934017,1200292956,-62486250,108380171,-1996084063,1996487750,-633929732,-26109,-11141120,-4714890,-17665,1021857874,-310157815,535137026,214584669,-1873273344,-326412987,1457032734,-1961986421,-2036136378,-1547687165,-2069691528,59417347,1443073187,-167430680,1950364484,58505236,1149980702,2491704,-1046851554,-352321514,58505241,28856350,-1588572160,1346897174,1208293537,143759952,1156972544,175472691,503545016,-26032,113704960,878,59246279,922681347,-6683152,1442840831,-1207142657,-4521985,-397389057,-2090989405,-443874579,-900899553,1478361098,-1957345904,-661774612,1461120131,205949782,1946222653,16858408,-1461124235,17054979,87890804,-385649407,3998619,-385649406,37552535,-385649406,-1997995633,172395267,1946160445,-385649139,54329700,-385649664,1996424051,58386446,16777114,59417344,59512457,-91492213,755648139,1183383589,2109737972,24635651,2113930045,24111363,32786166,1187448692,-352320788,-330905851,1183514625,-2012863508,-330941693,-1243020428,1845937920,-2097150205,230974,113713012,902,-1961992565,1191387719,-1543974626,1200292746,541524772,-1935410991,-196676093,-1592495103,1183384458,241077238,52578187,-120512953,-16545117,1996426870,89647114,59389579,59522699,837568139,-167540730,1946285126,-160003286,49039047,-193035520,957251073,2114159166,-2079930537,-335544573]},{"sector":8,"data":[2118007119,-951485181,17007622,-951981312,126022,32800387,909708926,813564800,58197703,686555135,58471993,113713789,66424,1724979947,-195130380,50235274,-523368,1586230342,-24671500,-268199934,-166830453,1975530311,1882652460,1949761283,-1181067773,1342177301,1425306,-1012992,-16551370,1459844662,16777114,-6664192,-1962934017,-1705552136,65535,456999403,-385649408,624819868,-385649920,675086855,-385648896,-51773812,242679553,-1962802200,-768931770,1044117643,74711948,59250313,990279307,1946389046,-2012821754,-1962934269,-947188130,-1994111189,1200356422,-1983436000,1200352838,-1983501538,-963907514,-1994242261,1996486726,175570700,-1996029464,-1072958906,-169278603,2143292160,26863875,58998403,-2096466688,227390,-1997995147,241076993,-1070381066,1048792437,2097611630,24504579,-2076277933,92143619,-336705909,1354771202,58998403,-1962574592,49019974,-2091859925,227390,1183516030,721611760,1048793280,2097152888,-129594619,-1070923029,-205133744,-1207880983,1344144252,84821643,1344143390,969370,-2076278016,108920835,58605193,1048775659,2097152900,-2109830908,2017362691,108920835,58472073,1048775659,2097152888,-2143909628,-2143909117,58499331,1654779947,2112895748,14543107,58867339,721649313,73703928,58587195,-16725271,-2115498378,242679559,58472191,58603263,28858198,-6664192,-385875713,1048772779,2097480558]},{"sector":9,"data":[1845952263,10348803,57556611,-16483065,-2096927226,2113990270,-2079930616,-352321277,-58817780,-955875840,-16546810,-260144129,-955744768,17004550,-2096305408,2113992830,2013710086,-1979711741,-1996256194,-1962702282,1207307870,645251123,58998403,-1593019392,2124612466,58106115,-2096921949,227390,1889602676,58499843,-1560054623,1048773504,1962935172,2017362695,427032579,-401705217,1586167840,860354062,-1207274112,1344144252,1305242,-2090902016,-443874579,-900899553,-1957363702,216826860,74877782,385369741,507809104,-1080405986,-2097151981,230462,1048775285,1962935160,12445955,58998403,-2095746048,230462,-1935603586,-96040701,-1935603989,-28931837,58211971,-1591839744,1183384458,2017362932,92143619,-336050551,59416844,-1577302391,1177093246,125410036,1183383552,1183666422,-1202710792,-1706033148,65535,-1070381834,1048794997,1946157944,-159973552,89143039,502426,-159973632,-755969,-16444362,-1962639818,103545414,-1202715372,1522139209,-1706012160,6349,-624897,1996485750,2117533694,85500164,1358841387,-1174386248,1347551322,510618,-159973632,513690,-443851264,180829,-2081649835,-1957295892,1207305310,57983027,-1979669527,1183332423,-166809094,-603585559,-28931836,2005653643,-62470644,-33166591,881589318,1963226681,-1976267786,-140968890,50660910,-1559948282,1187382130,65733116,-1946401026,1979058996,-62485769,103741336]},{"sector":10,"data":[403606277,-1983370491,-1962707442,1200227422,-62486472,58048522,-1963178242,-140968890,50618926,50663942,-1559986170,480248688,-96065019,1183369470,1975519996,-62456317,-1728297334,73543415,85331595,237750315,243860608,-1956773004,46292453,-1873273344,-326412987,-2082959842,1448543468,-1962117493,2040138366,-1560281068,378078090,1465254796,-1996260888,-1072956346,1586185332,511180558,-1709148161,4175,-955901789,402950,-58817792,-15565312,-16545226,-16544714,244321910,-336481560,241077089,540231670,922703988,-1705834984,3055,-25080597,108265728,17104513,1996439669,1189631758,272039680,-1976107259,1354771203,1419674,-1550168064,-1560281067,-11533430,-16445898,721652790,-342208320,1342177307,1871770,59548416,488020560,1599995904,-1962742397,1297948645,1426066122,-326898549,-1588177130,1183384856,-129593874,-1070903274,922701904,922682640,-627440370,-1929379821,1343682630,59520767,59389695,16777114,1975520000,31189251,59522699,59389579,2129559097,112645,-1070923029,200033929,-1957202752,1207305822,175423539,503694219,-263812864,922692843,922682252,-1070922870,2107265104,-1996488688,-1073019322,2092490869,-1202708989,1344144658,1574810,-263796992,1586168700,71797744,-120518909,-1947056503,1191380551,-1980182270,1183577158,2440452,641552500,-385649408,658309251,1024160768,57999400,-385826327,2122514761,494141676,425603]},{"sector":11,"data":[988349301,-227133183,1988822654,19917298,-1947181429,652805239,73834753,104580611,58590486,50403561,-385587658,2122514705,561250540,425603,48825205,-262239487,74790713,14608718,2096264761,-262239299,-353814645,734432000,184837638,-385647168,908787933,-689372058,-327253248,-2094238720,1946158718,-262239456,1963097913,-1511436540,-193054464,1586170236,41913328,-1962888983,-1427508098,-193033472,973041641,-579539330,103532427,-11533208,-1986335114,-1962934244,9169400,15498883,2122525300,527695878,2146729529,-262239286,721831819,990150662,-1962311993,1043007103,1676346496,-1958220985,1542188670,-1962602847,-788240370,1002515449,961314503,460713598,-1952856437,-150706674,-775844871,-137352200,-775844902,66638328,972162000,125169278,-788240223,-1593578504,-134019992,914954731,1049166730,1996424076,74907398,-1946291992,-1962702282,-1962701762,1346960454,1459123967,1876122,-1499836416,-1560281060,1183515530,-11515650,-1705510282,6701,439589456,-1935474688,-1956684285,79846885,-326413056,1988843095,142510858,1342177720,1936282,-1577090816,-162827264,1948267332,507808549,74059403,-1056704047,74059403,-103679535,-1968979709,874416899,541559558,74188331,1149965291,507773730,-1968965423,608471811,-786414589,59548664,59389695,365468240,-1202323456,-1202716668,-11534329,1996424822,-1070901500,-1706012592,65535,-443850914,574045,-2081649835]},{"sector":12,"data":[1448543468,-1962510709,1187447934,-1996488452,-25035146,326369794,16842369,-8175243,-1995934707,-8127362,-13339365,-1710880714,5119,16777114,1354771200,400661072,-6684672,721420543,-6664000,-2097151745,1946221694,-18427,28837867,721611520,-1956684096,79846885,-1873273344,-326412987,-2082959842,-1957294356,-167048074,-706149515,242679552,-1711206936,6579,-1980348791,-11077546,1676151414,-196703745,125091851,1115537419,-2130661399,1963000062,172395321,-1996479187,-1072956858,54337916,-786661632,1586231910,-24671494,1174509570,-96010248,-1963303285,-1744634233,-637439,1996486262,531077880,2092433408,-1957683709,103544390,-1957690486,103544902,-1706032244,7880,-1544141173,1183515530,59548664,16023171,1586183796,860354062,722039872,-1706012480,8026,-401705217,1996423224,2083979022,2117533443,58761475,58459691,58892624,58590763,112720,389257808,116064256,-401705217,-2090991554,-443874579,-900899553,-1957363702,49054700,1988843095,860157444,-1961266112,2092447868,-1957683709,-654891451,675646288,-1705977609,3800,-443850914,180829,-2081649835,1448543468,-1710983541,6238,738084489,860157695,1445229632,16777114,-488704,-2120548746,-16777209,1979711094,678821670,-13994497,-1751503755,-16777209,2092498550,-1202708989,-1706033148,6256,141885195,-1694599425,2000,-1694599425,6357,-443850914,180829]},{"sector":13,"data":[1475119957,209095510,-167084405,1950364484,944016141,503326213,494836304,2092433408,-1924129277,1344151108,1766810,1676170752,112895,482712144,-8323072,242548897,-1559869813,1183515532,59417348,1149970155,507773730,-1968965423,1149980675,541328164,-1935410991,1452953603,-16777190,-1710886858,7536,309334,505936,-18352,1392508858,1354771280,-1706012592,7472,-443850914,705117,1475119957,108432214,-352026997,278550024,-1962934240,1979136820,-1956684044,79846885,-326413056,1988843095,75401990,208992059,-396937985,-1705574421,2260,-443850914,311901,1458342741,-1962641781,2013202014,-857188852,1962281983,-1070901753,-6231984,1575324510,1426064578,-1070863221,74907472,-16761112,922682486,115868956,1575324416,1426064066,1448602763,-1962510709,367723646,-150991176,64523246,-16458722,-1070920585,-10688432,2096577350,-1956684057,79846885,-326413056,1988843095,75401990,246945003,-1947207936,-602012712,209190660,-397361109,-947126482,2143697743,-1956684059,79846885,-326413056,1460071555,964694,50622199,-1996170234,-125043642,-1961965693,-347732874,-2084074717,1344147143,519849611,964688,560241232,1996423168,-62487556,-18418,1435728,994494091,1963269126,470745044,-1956684283,46292453,-326413056,1443032195,-1962516853,149621879,280202,881539140,-193595893,1575324510,1426064578,-326898549,-1957275898,-1207624650]},{"sector":14,"data":[-285802482,1040447627,1166869724,-28931598,1183523307,-26311682,-1957683698,-1202708793,-1706033138,65535,250577751,1342177720,-1946181912,1178160838,-2655228,-1207624698,1861681166,-603585788,-1202708988,726663182,-6664000,-1207959297,1861681166,66620164,-1962615746,-1202708793,1344144658,2058650,-1956684288,46292453,196671,16718344,197004,16718292,197005,73077,210817,73590,222084,73962,152196,16716811,131603,16716658,197140,67630,145545,16719809,197141,74157,222346,65929,217611,73703,202254,69278,202768,73276,222485,68297,201622,68705,16977304,532239,196706,67594,201242,73160,209565,16715864,197042,73312,220450,72415,217004,68848,201133,68659,199986,70502,16987959,532219,16973953,532268,196738,72269,217660,72327,222269,16712983,196943,69626,206143,73676,206912,16714771,196945,16714838,196946,69032,201540,73457,203973,68674,198342,73354,204874,72263,217676,16716615,197084,73440,16988369,530604,196637,73648,210778,67756,200027,74131,217692,72345,222430,73524,211169,67915,202979,68860]},{"sector":15,"data":[16978276,530569,196653,73504,214501,70401,210794,16713181,328059,16716808,197139,67488,343276,16716655,328212,16719806,197141,16713480,196990,73250,210032,16713755,196994,73091,209523,69283,211572,69806,4983,0,0,0,1167087646,518818645,-326903666,1996445286,242679568,-1207142657,1385758725,-26032,1183383552,1975520176,-373282043,1996424208,-1334378736,16777114,-230258432,-26032,1183383552,-1269397070,-579550709,649223876,-1960441973,1183384151,-61437446,16533239,-1207602160,48955393,1183432747,-25928,1183383552,1183666358,-1706027334,65535,-1699318017,65535,-1984280949,1589947974,1200301746,-1639544571,122129190,653674121,-1995880565,-1960402874,1183386439,1200236280,-1572435955,16533239,-385649216,-1070923521,-1981921655,1190583366,309658106,1946830393,175570701,383534733,-26032,1996423168,-998834274,1342178488,64410,-599392000,-624897,146321014,228216832,16777217,1996480070,-998834272,1342178488,74394,-599391488,-2079095,1996486774,571566,46701136,1174601728,-498693666,383534733,-59310256,-1963297025,-466967994,-401698736,1048774713,1946157502,84844805,512428011,1200293428,-163149536,84179617,1177092100,-163148810,2128758329,-599356140,-1070903274,-163148976,1357006379,105370,84975872]},{"sector":16,"data":[956302381,394190918,383534733,84975952,769672747,726663172,-6664000,-1962934017,1183439942,-565802082,-1946794359,1177280582,-1605989924,736249483,1183440454,-1983894536,-259267514,10649216,1996435060,-1568767984,-1005881857,-1960398242,-768930233,1183517163,-1269396558,1375735045,-26032,1183383552,1975520228,37021955,-1951250805,218477654,-397389312,1183385228,-262764050,-2115481518,-1538881274,1386632841,108456016,-1981135223,1589963862,1065363182,-1962511360,-339571517,-2147305467,1347605035,-5867777,1183556726,-61436934,1391453824,-1636368560,-624897,1996464246,175570936,-1804545,-1070919562,-1298509744,-1962934269,1979059184,29157635,649223876,704923530,-398030364,653156036,91563832,-352321096,-1983894782,-1072961978,1122567029,1413793537,1183514624,1279560132,-1985067381,1183534660,139889414,-1992014711,1153910356,-385875886,1589903645,939468522,-1195084033,-1706033148,734,-996260215,-14226850,1996423799,571566,49584720,1183383552,-362887946,74972966,-1195084033,-1706033148,778,-996129143,-14226850,1996424823,571566,-26032,1183383552,-362887944,172460838,207063846,-1980086647,-1960379306,1183385671,-1933341780,918978,-1980873079,1589964886,126494446,-157661560,1954585158,1086556966,-1985722743,1586144854,-1895880038,637747206,190809994,-301603798,-297367285,-1030457,-15733761,1996484726,85911790,-1985722743,1996465750,-1535705178]},{"sector":17,"data":[-1996156952,1451862086,-260636758,-1149185,1996465782,-59310172,-362753,1996463734,-1602813962,1459123967,-5474561,1379930230,-26032,-1073020928,-1705637259,65535,1760294443,648568516,-467007606,-1030962429,-364476096,-1947445623,1325393990,1958743016,-19470077,15105667,-397007244,1183383701,280516340,1996443649,1354771444,106889040,208977931,5405827,1996424821,3860724,12091011,2088965748,276103250,112726,-26032,-1705639936,65535,-1695385857,65535,-1695385857,65535,-2090940789,-443874579,-900899553,-1957363700,1988843244,-2017962492,-1070903296,-1706012592,1138,309594280,67221590,1354771280,1384120250,93755984,-1705639936,65535,1575324510,1426064066,-326898549,-1957275902,2089485430,1962871554,-336098530,843380238,-166955775,1963471684,187992838,200177142,-1962641930,-1962742841,-1956684090,46292453,-1873273344,-326412987,1457032734,1443395211,16777114,1958742784,41192215,1183517419,876886278,881526388,-227150325,49006219,-2090942421,-443874579,-900899553,1478361092,-1957345904,-661774612,209095510,175570774,-1394078064,200313855,1443656950,-16222465,-6683018,1577058559,-1962742397,1297948645,503318730,1430622296,-1910575989,1988843224,1996445198,-401698804,-259260553,292877835,175570774,-16222465,-6683018,-352321281,1589652226,-1962742397,1297948645,503319242,1430622296,-1910575989,1988843224,1996445200,-401698802]}]],[[{"sector":1,"data":[-259260613,343209483,209125206,-16091393,1996425334,97884678,65732608,1587134507,-1962742397,1297948645,503319754,1430622296,-1910575989,1988843224,1996445194,-401698808,-259260677,292877835,67221590,108461904,1347469355,396698,-310157824,535137026,113921373,-1873273344,-326412987,1457032734,1443395211,-1878624513,-20846578,-166989685,-1202318988,726664192,1347440832,16777114,721611520,-310157632,535137026,80366941,-1873273344,-326412987,-2082959842,-1957294356,1183647862,-230258186,-2081139060,1946158718,197561108,-1005683264,1191178846,130426610,-1948715219,1183667952,-397404430,1589903395,130426610,209125120,-1928694017,1343682118,-2048389488,-310157570,535137026,147475805,-326413056,1988843095,184451848,-963961230,179950123,1358034688,-16353537,-521665418,702975,-768883061,-225709577,637820612,-14270581,1200498183,80120578,92808752,-443850914,442973,1167087646,518818645,-326903666,-950642896,64582,185091723,141822534,638082756,1991,-15829249,1183648886,-1202710820,-1873805281,-30414834,-1982052723,1452070982,-16520230,1589958726,1065363160,-940280800,53318,425603,-2144989580,141897023,-942127361,118854,837547563,2134507395,-62470339,1988689921,-1178170414,-503906294,808306435,-2081387776,1946158718,-764004087,-1070920834,-963953173,2010269241,-664877835,651708159,-1952970870,822051832,2122563197,108265680,-654850421]},{"sector":2,"data":[-15994741,2122517365,91488508,-352321096,-994039038,-1993996194,1590070023,49120095,1562371467,707149,1167087646,518818645,-326903666,-1957275868,2123042422,-1983894772,1149846084,1145342784,1950761995,-11053550,1996425846,108461832,189029631,-1957923392,409031,272452980,1031304192,125042708,1946163261,1451158294,175570774,1342178488,16777114,112640,-2089096295,1962936958,1350337294,-1593281280,1149829218,-2091455664,1946158718,1383891792,-1958054912,1418412100,-2091717822,1946159742,1350337301,-1281024,2023379060,-956301308,20548,1048829419,1946157154,1350337494,-1580174080,1149829218,1456008016,1342247352,1342177976,1347469355,-347841281,-11053386,1996425846,108461832,16777114,-2090902016,-443874579,-900899553,-1957363702,73319660,-12615642,-1014298251,50709132,-1005458688,1191117918,1065362948,-1946913536,-1031011258,-1034033781,1478361092,-1957345904,-661774612,175541078,80583254,-1073020928,1589927284,939468294,-1202948865,-1706033148,2298,637951684,-14284919,1962869879,309324,152148560,1589903360,1200170502,2013210116,1316290306,1342179512,600218,106873856,38242598,108527398,-1202817793,-1706033144,233,637951684,1577469833,-1962742397,1297948645,503318218,1430622296,-1910575989,-1957275688,2123041398,-15275258,995495030,-1207601673,48955393,-1873756117,-62658546,141965638,1600054653,-1962742397,1297948645,503318730,1430622296]},{"sector":3,"data":[-1910575989,116163544,915101271,1049298046,2122515584,175374342,-1593024828,690356652,1183515207,12592394,1946173501,8404263,-1069739148,-1003653888,111217758,-2147079419,1193879044,242679554,1443657471,-26025,283836416,-150993480,-1192195090,-269025275,-504629109,-310157474,535137026,181030237,-1873273344,-326412987,-2082959842,1448546028,1443526283,577178,1975520000,-373282043,1589903589,1066083846,192216635,-6662314,184549631,-941198144,62022,49825479,106873856,38243110,1962999869,-2017962216,-1070903296,-1706012592,2748,-151632247,1946482246,142016280,-1710852353,65535,-16222465,-6683018,-352321281,106873891,71797542,1946160445,1028093745,796131331,1962936637,-163121456,1456108802,24963159,-352321096,-230242462,1190526977,-1250622986,1996445526,6088946,1187505899,1442841080,1342247352,737703679,-1706012480,1116,455986923,1064192,-1073509513,-1476448621,179243730,173345365,173345365,173345365,173345365,177539669,177867413,173345434,178915925,1593794281,49120095,1562371467,445005,-2081649835,-11140372,1996425334,23062534,-1962522999,75400176,-16157696,-397014922,132841565,1443395327,-1962926360,108411376,1156975732,-579532749,271795446,-396961932,-1956710140,113401317,-326413056,1459809411,74877782,1443264255,-1962909464,-396929288,-1073020608,1996427124,1827165958,-151483648,1946300997,1590135793,1575324511]},{"sector":4,"data":[1426064578,-326898549,-1957275900,1156973686,477364786,1443264255,-1962924824,74907640,16967767,74760203,200001163,-454297717,1443264255,1577068264,1575324511,1426064578,1448602763,-1962510709,1032520830,58064651,-1962771317,-1956684089,79846885,-326413056,1459940483,-1946801322,1996424318,-823634170,972590079,141886590,74774027,82560651,-420743285,-443850914,311901,-2081649835,1448543468,-1207667061,-1706033136,65535,92127243,-352321096,-1983894782,1996487750,1055413766,-1947170048,-58817538,-16157696,-396949898,132906903,1460041471,-1946193688,1962818552,843445778,-153193471,1963471685,860223192,1473410064,1593303016,1575324511,1426064578,-326898549,-1957275902,2123040374,-1948284156,1183397959,1958742788,1959148303,-1965520117,-1071369401,-495697860,1600046987,-1034033781,-1957363708,73305068,36849654,-1014298763,1963345465,112645,-1070923029,-1034033781,50339076,17570816,53377024,17458944,52722688,17112832,56753408,17301760,52100864,-16651776,50370048,17359872,55708416,17318656,53383424,17433856,56660480,16873728,56956160,134249473,50355456,17334528,57121536,16933632,50475520,17440512,56865792,17451008,52772608,17049600,53788416,17419776,56967168,17456128,52675072,117714945,50336512,17048064,51266304,16805376,54055168,17127168,56744960,16811008,54059264,17021952,34071808]},{"sector":5,"data":[17000192,51113472,16833024,56683008,117448193,50347008,117454081,50347264,117456385,50347520,117716993,16128,1167087646,518818645,-326903666,-1957275822,111350342,-6664186,-1996488449,1451883078,104267772,-26106,1183383552,-1302951504,75892423,1183514625,-1337576454,1954545833,-2046376186,-939524348,17074694,-62485760,-1447934413,108298240,76154567,1190658047,1962999814,-364475047,1996443670,142016266,16777114,309788416,384452237,178256,-26032,1996423168,-26094,1183383552,-1168733768,384452237,-1200160944,-26030,1996423168,-26094,1996423168,-361300206,-1280257,1996484214,-25872,1589903360,1200301576,120268292,75902711,184867491,-385649216,2122514951,57999372,-2097021207,1979649150,276233998,-1710328065,65535,-15972727,1183650422,-1706027318,65535,411383,-1962576894,49009222,1174650923,-1976633398,-1136228092,-2147072266,1183517556,-754405114,-337368344,571395,-1982574965,-150770674,84452321,638082756,-1331492981,2139825667,205949698,-1961998845,1183387734,-1235842636,537282294,1183533684,795910,1946158141,539941,-1960440459,1183516287,-1976633398,737684228,-11054912,1996427382,-1233715442,-374049025,1589903693,1200301576,-901371130,-120469717,76164855,38208294,-739510133,2122970667,239504318,-1995417973,1451869766,-230258232,-1980475767,1183577718,-1235842124,1964004921,239483144,-186055819]},{"sector":6,"data":[276233984,-15829249,1996469878,105286580,1342181413,-1996231448,1451868742,-968455740,1455969929,-11485141,1996427382,1996444174,-18238,15853648,1190588555,913575942,81409593,1183527037,-195654670,1964004921,239483141,1589911668,1065362958,-16550624,1183518278,274107150,-1983756663,1183433814,-933852730,1589914603,126494402,-1069119080,1946160445,670981,1191125365,-1033976638,-1744336346,-2134880629,-1053095951,1191117685,-163133502,-164954111,-1950581245,1451999814,239503812,-2096081271,1962997374,-13702909,-11485141,1996471926,-227082252,-3639553,1996473974,5367814,-1950450039,1451953734,-968455920,-1983359351,1451881030,-163133452,-102170624,1354771454,-4294913,1996485750,-931725326,-3770625,484968054,105314048,141885696,-1710065921,65535,-310157474,535137026,248139101,-326413056,1460071555,276204374,61881995,-16482685,1190539892,745800452,81411723,1347469355,-15960321,1996425846,108461832,1358954424,738183912,71731960,20710180,-3079563,61881859,-16482685,1190529396,58015748,-16740887,1996426358,142016266,-402229505,1183383721,-27883012,-16482685,922689908,-2036267514,65992452,1996443847,209125134,-1962248449,1177287750,-6664182,-16776961,-16382410,1996426358,-62485750,1342850603,16777114,-1947204864,1451951686,-62506744,1589923699,1065363196,-15305463,1822555206,66638083,244029894,-101251832,-1947601088,-62485520]},{"sector":7,"data":[-1979820405,1451821638,-9180916,101070591,-150698335,1355219950,-15829249,1996426358,105286410,1342850603,231322,1590070016,1575324511,1426067138,1183575179,106334980,1929922105,140428322,-1744336346,102865488,-1073020928,1191118964,138870536,1589959915,1065362952,-1947044599,1451952198,1575324426,503318722,1430622296,-1910575989,485262296,176063318,-14126080,2107247222,184549381,721778112,16509376,-1979031925,-466996409,-1996486619,726923334,-1332064064,-16777212,1996427382,209125134,-16091393,1996425334,-26106,-259325952,511047179,687747,2122519156,208994552,-1207273729,-1706033151,1436,-369098824,1996423337,-26102,1183514624,1413777912,708002954,1058276,-2080749943,1962955388,-465138373,-1070903274,-1202696112,-1706033151,65535,511033355,16416387,1187451253,1442841082,1342177720,374426,-1697846528,65535,2122565099,292885222,-1990835061,-1705575354,65535,-335788405,-465138370,-1070903274,-26032,-1073020928,-1923734667,1343677510,16777114,1975520000,-465138412,-6664170,-1929379585,1343677510,16777114,-427917056,-1770782440,1593798889,-1962742397,1297948645,503319754,1430622296,-1910575989,142016472,16777114,1958742784,140413763,3702659,2139300212,460652628,-1204258817,-1706033151,65535,-16228725,62404727,-6664176,-16776961,-1070921610,-26032,1586167808,1380435720,1183514625,1447528710,-1962742397,1297948645]},{"sector":8,"data":[1426064586,-326898549,29251074,105286400,956847755,1215760966,638213828,1033373578,561774601,2113931837,867596,540870516,-351505408,172395280,51140235,-2094470202,1962935422,173982960,638207743,1352140682,16777114,1958742784,172424963,-1377044949,-1962260853,1581780054,-1034033781,50338570,17148672,53442816,17116672,56654080,17070848,53738496,17126656,52722688,17106944,52592640,134253057,50351872,117500929,50354688,16806144,56920576,17062656,56660480,134454529,50354944,134282241,50355456,16817664,56956160,134223617,50355712,134227457,50356224,134265345,50356736,134251009,50356992,-16507392,50344704,17098752,52606976,134260225,50364672,134408193,50364928,17124096,52675072,17105152,51266304,-16477696,50354432,-16433920,50354688,134478081,50340096,17088000,58939904,17112064,517376,0,0,1167120524,518818645,-326903666,-1957210616,1156974198,158727946,-26026,434831360,105182864,-1928170488,-397347258,1996425785,-126418954,16777114,41221888,16777114,-2090967296,-443874579,-900899553,-661913598,-1957345904,-661774612,1988843350,209619726,51135627,105314247,376766463,34030838,1156976757,175439626,2116568123,-339725563,960532603,577973316,1342185477,860894463,-6664000,184549631,192239808,-402325313,-1070396885,-1987029269,1996434500,-26102]},{"sector":9,"data":[-11403264,889129078,16777114,306447104,1344163870,1344194307,722224267,-1073016252,-998046091,-1878529272,-26032,-1705574400,218,17595393,1149964924,272926994,-15448951,-26060,-947191808,-310157729,535137026,181030237,-1864856576,-326412987,-2082959842,1465256172,-1928956277,1962931838,-1705568766,65535,1461081878,504775821,-26032,1996423168,-163149048,-2147072778,1149961844,1223217438,-126419120,-362753,-6620042,-16776961,1962870902,-26060,1583284224,-1962742397,1297948645,-1946155830,1430622424,-1910575989,1988843224,38046470,-6664112,-1711275777,65535,-1873391536,-9050098,-310157736,535137026,46812509,-1864856576,-326412987,-2585058,1033504886,-16777216,1996425334,-26106,-310181888,535137026,80366941,-1864856576,-326412987,-2082959842,1465262316,1443264139,-1897394544,41222143,1183666256,-1706027298,65535,-1394078064,-565801985,-152666485,1979648580,-1983446270,1183518276,507808232,-1929218817,1344149060,74906,105182720,-1927383936,1344149060,-773306741,-654882584,239373136,-388896559,1356396360,16777114,239373056,52585719,1149835332,507808540,52978935,-1992288700,1583290948,-1962742397,1297948645,335545034,-2113896192,134219520,218138368,167775744,16973824,50528771,134479875,302254340,262660,16843009,352588544,-134217724,2047027714,-586960125,-100403965,822356995,1057242884,1057242884,1225032452]},{"sector":10,"data":[1694783236,-1643869180,436510212,-1543287037,-1878739708,1430622352,-1910575989,-11053352,-1070395786,-26032,-259325952,235689611,-1916630265,-1191025858,-1343094760,-1962258805,243174367,778567470,-1207011585,-1705967624,726,242679632,-1207273729,-1706033151,65535,-385875528,-1202257770,-1705967624,768,-385596279,1589903494,1200301574,2005607960,1958742806,-1365618682,-1996488704,1988692038,30861318,1685372939,1358958009,16777114,876906752,-401698730,1183579755,1958742792,1996445199,108461832,53864462,-150510464,-352321096,-167014345,76231284,645185547,-26032,1156972544,443940618,188236939,1342600384,231066,910461696,108314635,60398160,-1705639936,934,-158316821,1963460164,105676857,124026888,-1070376965,-11517872,-6680972,-402652929,-1873410362,-64428018,-352255809,105182741,-401640440,1686111922,-6621434,-1090518785,300483072,636929,-1957275413,-1706012668,185,1225412235,990665867,-2029881653,-990868533,-645200258,-1070357261,-1695315030,246,-768358773,15067486,-351517557,107249697,1959332831,105676825,1444145952,-26030,-1293352960,-155176192,1947207236,-768393215,-2147435799,200214116,-2131528503,-351271348,142016493,-1710852353,65535,142016342,1342600959,-1710197505,65535,-1953465877,1418399812,8775954,-16222465,1150092918,-6664170,-352321281,417894516,-1871779068,-16104202,-108984716,58134528]},{"sector":11,"data":[-349156215,1364350556,-2096597249,208932090,67369601,-92207500,108332036,211866,1996443648,1979058950,920423181,-1710719095,65535,1149971435,1958742794,-26105,166395904,16777114,855829248,50380754,134694134,1686113140,1347614471,1476771560,-2090967206,-443874579,-900899553,1085800458,985157632,-6664192,184549631,-1023314496,1686171787,861402887,-1705619264,65535,-1207796599,860880962,105155008,1149837488,664424492,184549381,855864768,76137408,-1001385,52468304,78184448,-972458752,-956233148,268447812,1946189993,122454020,-2134706430,-2147191808,-1451227572,74711296,268913792,-16104202,1381370997,-26032,-1073020928,-6680716,184549631,-2147191616,-31455412,-661863488,-1957345904,-661774612,1443556483,209095511,-401698730,1962933153,1347833858,-1946925431,1317735006,2128165640,1004111618,159255628,990661771,-1962770727,306985945,-1957622658,310152147,-352158232,1962905612,-1949201646,1877479548,1464884994,-16104202,-11139980,1547433078,1393327376,2089537931,38529040,-7336725,-745861004,-401441653,-1991245251,1284051036,172291602,-1710394113,65535,410778,-1878594816,16777114,-401698816,1190656839,1962934022,244340230,1610193384,49120094,1562371467,576077,1167120524,518818645,1465309326,-1962510709,861274740,1196906495,-26025,-1705639936,65535,-310157729,535137026,46812509,-1864856576,-326412987,1457032734]},{"sector":12,"data":[175541079,-401698730,2126838543,-845543930,-1912602620,-1178586174,-218300417,1239021486,205818185,1444037769,142016337,856061695,244338880,-2131138584,-2131818908,856164172,608471488,1583333630,-1962742397,1297948645,-1946155318,1430622424,-1910575989,-1957210408,1451952758,172291590,1443722751,1376286463,16777114,-1877480704,1413201971,-1844478954,-149535701,-796189068,-401834869,1156972853,125050887,-6664106,1593835775,49120094,1562371467,445005,16777729,33882626,33554689,1040,134875118,135464979,137037858,140904497,1167120524,518818645,-326903666,-1957210614,2122386550,1963065354,41221939,385107597,34970192,1183514624,105266164,1183516797,105266168,1183384445,-163149050,2097694267,-96040184,2097694267,138840323,507808598,1174661329,142016262,-401698736,1183448877,39095292,235554443,1480494343,571655,-13717518,1283460709,1686110470,-91489529,-26025,-1705574400,387,1074152694,1183524725,340036092,-158326805,1946224196,-26035,1686110208,-1873347066,-136779762,-158319381,1946224196,121959989,1445950724,-15436545,-1873347466,-42801138,17464961,-1710263038,65535,108316475,-26025,1156972544,108396298,-26026,1583284224,-1962742397,1297948645,-1962932022,2126986178,-1010332926,-952384885,-947191171,620761283,637544192,603990016,754983680,201338368,553656832,503316480,1141456649,1510561801,1829330697,2114549001]},{"sector":13,"data":[-1425439735,-1106662647,-326413047,-2130383741,1963000058,284787461,-91553676,-62485167,26470480,509381465,-2129767285,1963000319,105182764,-2094828480,510988537,67585270,-1202319243,-11534079,1996488310,-401698564,1686175350,1283505926,1458111495,-1962471935,-2059498047,899336,-13717518,1156978789,57950214,-167691031,1946421060,124026887,-1878660101,67587200,1074154624,-150919959,-1877939237,537347318,1398147444,16777114,869829376,-1871516718,-617358601,-1953469461,1579882076,-27882500,1575738103,1610660752,1441518131,-6662512,-352321281,1157009430,158613510,-26026,132841472,-6662512,-167771905,1979648580,1654281734,-1090519032,686293760,-18431,-167730199,1979648580,573396490,-6664192,-352321281,1686147081,1686159110,-1695941881,121959936,-1960807420,1144721476,1393849618,12080722,1996443649,-59310082,-1880617328,-2141496579,33228644,1442970718,172291838,-2129562113,1952448763,1183667723,-1706027268,65535,68204630,1074152694,12059509,1996443649,-59310082,1407717008,105182973,1443919168,1342243256,-100609,244382838,-1912783384,-397345722,-11141083,1996488310,-401698564,1347878069,-16104202,-6682508,-352321281,-6647802,-1962934017,1438866917,-1957237621,1144721476,-1962705900,-162524604,1979648580,1996428812,-26108,183173120,1996428944,-26108,-443875328,180829,268911862,-1873400203,-154408946,1342338303,1962889302,309657360]},{"sector":14,"data":[-16104202,1234831476,-352321530,-1070362614,1369067600,-1879048186,-153753586,74776515,1342247352,-1207798529,-1705967628,1382,1962891088,-26110,952303616,-2013265152,-117440255,268436279,-16776957,-536870118,-2080374528,-1358953646,-2046820095,1275069317,-2013265656,1812005678,1509951236,-1761606912,-1979711228,1359020900,1459619843,1442841344,-1862270712,-335477970,1560283137,-889191680,-1795161853,-1174404221,436207873,-536870088,-1694498556,-1711275161,553648391,-603978911,553648394,-1493171358,-1207894267,1392575232,83887877,-1828650240,100665088,-1409219840,117442307,889193216,-1207959296,66436,134219524,536937216,150996740,-1811938560,-1090518778,-436206796,1056964874,956302117,1073742082,-1912601755,1124073734,-1090452649,352323334,1392575232,369100801,768,1358954760,436208517,-419365120,1006633729,1459618053,1107297122,-402587900,2080375553,-385810684,-301989119,-369033468,-100662527,1509949703,-184548558,-352256252,-1644166399,-335479035,-1224735999,-318701814,-1023409407,-301924598,553648897,-285147385,1191183105,-268370169,-1694498047,-251592951,1291846401,-234815735,1996489473,-218038519,-2046819583,-201261303,1577124609,754976769,-1895824640,-184484087,-1224735999,-167706871,134218497,-150929654,1459618561,-134152438,1593836289,-117375222,-2113928447,-100598006,838861569,1795162369,-1912601755,-83820790,-352320767,1912602883,436208516,1929380104,50]},{"sector":15,"data":[1167087646,518818645,-326903666,-1957275846,2123042422,-1983894774,1183447622,38046712,-1946794359,255659078,-385649408,58065082,1023512041,326369285,1962937149,23128323,1962937405,18671875,-16676887,1183708790,-1706027322,65535,-2147072778,1183657844,-1957685562,731455044,771281346,-654901247,239373136,734147481,178626,-1036781357,19776043,1356396288,16777114,-901346560,-1715059157,-149009269,675580409,410871,958493954,192819268,-1993325429,1149968452,-2096174296,1946165372,541362955,2083013689,809798125,19023047,675580672,52325623,-1992243642,1149966916,239338264,-1961081719,1452013638,18475514,67519734,-947129995,200296073,-15698496,1183708790,-1706027314,65535,-1030519,1962930294,-26060,1996423168,-25866,1996423168,-6662416,1442840831,737179391,-1873784640,50653198,-1695123713,65535,-1552548085,-1913227521,1343671878,16777114,1452600064,12511319,-11104789,1996426358,108461832,16777114,-8656640,1354771286,1290276496,1996445186,108461832,16777114,1975520000,-10491645,-26026,1458110464,1183536895,340035846,142016336,1342177720,184474,-12588800,91619083,-352321096,633350914,-523173887,1284235473,-69107706,1149878539,-14685946,1996620349,33570088,37587059,-385649407,1996488569,209125366,142016343,-1710852353,65535,-1980217719,-219547050,33832446,87941234,-385648894,20840280,-343247868]},{"sector":16,"data":[-2090901807,-443874579,-900899553,-1957363702,518816748,1988843095,-297351418,1187446785,-956301084,58950,-1710983425,65535,242532363,-16616193,-6683530,-1996488449,-1705638842,65535,-2132130167,-2146433460,-1962408116,1183518844,539908,222103412,-344165376,340036479,1964000313,306481925,1149961195,-28931824,1342181560,16777114,2092960512,-25263326,-1958969856,-1957691778,1183448646,105183206,729030656,-1147513002,-1962934270,-1960776712,-1992229306,2123097670,105183230,259268608,-6664106,989855999,57992774,1457932031,-428409001,-1705983957,65535,-401698730,1183384116,-948769810,3015750,537165443,2088984434,242483248,722224267,1141051972,809777936,1149979507,205797648,1187448181,1442841060,-35123568,1183399937,71732718,-1929886071,-1709770154,65535,1459242633,280311,-1207601665,65732609,1342177976,-362753,28899446,-6664192,-352321281,1354771208,16777114,1996445184,1996445674,-401698588,-11140906,244322932,-16755992,1996423796,-25878,1599995904,-1034033781,1478361092,-1957345904,-661774612,1443294339,-1962117493,1727471172,373555978,-1946532215,1183389764,106874108,-1946532213,-1993933738,1468605959,-310157822,535137026,147475805,-1873273344,-326412987,-2082959842,1448543468,-2096597365,1979647614,272927494,-1962522999,2083194494,2113866538,347624984,112742401,1149980676,62495016,737801984,-338102329,105183016,661914112]},{"sector":17,"data":[721845899,2083203708,2130643752,347624986,112742401,1149980676,62495016,66713344,-6663993,1577058559,49120095,1562371467,313933,1167087646,518818645,-326903666,-1957275882,2123041910,-1923656184,1343682118,635965072,-129594369,-1995553789,1187511366,-8584966,1996423796,112650,-26032,1183383552,-1923655958,1989013118,503781110,-1515905258,1595909541,-293698722,-955941632,60998,425603,1962874485,41221892,-16091393,1183705718,-1706027282,65535,-1207273729,-1706033151,65535,798635263,-1996488699,1996483654,-159973622,66615039,-1957683513,-953480124,-26032,889126912,351130,105182976,108335104,134628598,-11137164,1962871414,309657360,2028474000,-2090902016,-443874579,-900899553,1478361096,-1957345904,-661774612,1443294339,-1962510709,1143673412,-62486256,1014284299,-6671105,-1996488449,1150024262,-96074990,1149980702,-96074992,1149980702,306457356,-26032,1183514624,205793788,-6671105,-1962934017,1149833284,340035858,-134461813,-310157608,535137026,46812509,-1873273344,-326412987,-2082959842,-1957295380,1156975734,1198851078,134628598,1157039989,1947205638,1996445242,-163148536,244338710,1459474408,-1928956161,1343683142,-1041756528,239373309,-244223,1183648374,-1706027274,65535,-362753,-6621066,1577058559,-1962742397,1297948645,2099402,41746435,779616257,55377923,1669267457,88997891,1384382465,20185091]}],[{"sector":1,"data":[-2054815743,21299203,445841409,16777219,429522945,31457283,1738211329,5505027,1629552641,36438019,3342591,96993283,1721958401,74317827,464257025,78381059,456392705,97714179,-2068316159,79626499,524295,81854723,589831,79167747,131080,8978435,1698693121,52429059,1376263,18219011,-2058289151,81395971,2162696,43974659,32506111,17694979,2949128,57540611,33292543,54722563,33358079,26804227,33423615,38010883,33489151,37421059,33554687,25296899,33620223,24444931,33685759,22872067,33751295,18808835,33816831,69402627,33882367,0,0,0,1167087646,518818645,-326903666,-1957275844,2123042422,-1983894774,1183448134,38046714,-1946794359,20778054,-385649404,58065284,1023617001,57999616,1979752425,47638787,1962935613,45345027,1962937149,21162243,1962937405,14870787,1946160957,46917891,1183434635,1975520236,-159973616,382224013,-26032,1183383552,1996445420,-898170900,619187856,1962871555,51046659,-1913227521,1343670342,16777114,49998080,18200662,67549264,108461904,47770,347624960,112742401,1996443652,13277704,-706150400,1996445186,1996445452,-26106,1183383552,-61437446,-369867127,-8191300,-385649651,1465254580,-385598744,1156973228,57999622,-1962761239,1284184644,-103724770,1183433003,105266158,1183384445,474254086,-787592053]},{"sector":2,"data":[-1983828999,1178332742,-1996260088,-11139002,1996426358,108461832,16777114,-4696576,244338943,-385396504,727056988,244338880,1443316968,-16222465,-6683018,184549631,1446409408,1444655592,1347469355,1443612136,-1202667477,-1873772545,334161934,-1983894698,1347425348,1342177720,122010,105182720,1443263748,16777114,244340224,-384099864,-16055804,28837237,721611520,75200,-523116335,-2147070837,-1056179231,-385465207,1149960676,105265420,1183516019,-1962677498,1183386692,-1873783062,112977934,-364475562,1343505545,-1207404801,-1706033151,65535,1150003179,1183422752,-61437446,-2097043479,192282623,276102998,-2115498352,-1962743035,-968455737,958416011,243123782,-775528821,945554403,-768931957,-4666133,1455877119,-401698729,-1108670237,1996445526,108461832,-16359797,413591607,1996467179,-26104,-1031077888,-1928837495,1344149060,-16222465,-6683018,1442840831,1347469355,-2130000408,67308670,770245492,-159973631,1342177720,16777114,18802944,1354771286,115871376,1463585030,16777114,-398030592,-6664162,-1996488449,1149832260,-6662356,-150994689,1073743428,-397015948,889133662,84690059,1183383584,-1070903048,-26032,-1073020928,1183516276,742689272,-284793728,1354771286,173074512,1354771286,1350565816,1978142352,-1070901742,1343505545,-18093744,-628358005,1459549161,442820695,1459546857,-16353537,-270006154,9365766,410183766,1459541737]},{"sector":3,"data":[-384060440,356384463,1025865473,57803028,1040031465,57999618,-149527,1996486262,1996445452,108461832,16777114,-22615808,1963065405,-39655165,1963065661,-39589629,1963065917,-40703741,53334507,1391876,-1073493641,-1476448621,37356394,53150266,53149852,53150507,32440802,49021560,53150507,35586859,53150507,53150248,50856719,1183515379,-61436934,-310157474,535137026,181030237,-1873273344,-326412987,-2082959842,1448550124,-167092597,1946420807,11397379,-1711114241,65535,-16097653,1996423799,112648,-26032,1183383552,108954602,-1961724928,2013203038,41418500,1342732031,16777114,142016256,-1710590209,65535,-1928825089,1343681094,16777114,-196703488,722099851,-1952901049,-101249457,-166989685,-1070922627,-963968277,-1947449719,2005600862,1183534624,407317496,1334548808,-1946552562,2130590712,-339309820,-1983411454,1996484678,142016266,1089238783,1354771280,-401698736,1586169645,41418506,16777114,-2090902016,-443874579,-900899553,1478361094,-1957345904,-661774612,175541078,621168267,1149829123,105313800,-1207602112,48955393,19251243,-754405120,105679840,201254272,105155009,410871,-1207601918,48955393,19251243,-754011904,105679840,197125504,105155009,1342193848,1342178488,327066,944015616,18891975,-942109952,-956301305,66119,1342194360,1342179512,16777114,910461184,3701891,-1073018508,28837236]},{"sector":4,"data":[721611520,-310157632,535137026,113921373,-326413056,1461906563,108432214,14698183,-498678016,1149960192,-565802736,244338774,-1996342296,1283518534,1283461126,1996425223,-26108,-1073020928,1962872436,74907394,16777114,71731456,1023690379,326369288,1962936637,18344195,1962937661,21686531,1442926825,535301776,340036375,1964000313,306481925,1149961195,-28931824,-2053491457,-1996488702,280558150,-6664192,184549631,-2091746112,2130771582,9758979,1224623755,-1948367223,1183448646,105183202,208936960,-562626730,401050,-565802752,64898699,1346959942,-1995538200,-1072963514,1325359732,-565802018,1224361475,241952848,1349828619,-337752321,-28931253,-498693824,-1979824501,1157094982,1948254214,1996445201,-25886,1178271744,-16550686,1183572550,-96074786,238282832,199247497,-15371072,1183572550,-96074786,518541376,1958742798,-498663677,-1684392705,1442840578,-2197761,-1070865802,24746576,-11141120,244375158,-1996419096,1187508294,1442840810,-1018113,1996482678,-361299994,134512259,28864629,-949032192,64582,-956531061,-14618045,2122579014,-260306692,-1948367221,-472780706,725122187,-330921727,603981829,-330945544,-1914026359,1183445574,-396981018,1283501547,1187447302,-2096493308,1931478142,1354771210,16777114,-148837632,-16776122,28837237,-1207702784,1183383554,71732714,45664491,244338688,1577838568,1575324511,503317698,1430622296]},{"sector":5,"data":[-1910575989,149717976,1988843095,1996445196,-401698806,1183383640,373591036,-1946663287,1178148932,1444838908,-386107649,-930412113,-1962260853,-472777634,725122187,509933313,1174520067,239373304,66875127,1183389764,106874106,-1946663285,-1993934250,1468605959,-2090902014,-443874579,-900899553,1478361096,-1957345904,-661774612,1460202627,141986646,-2094105461,1979647614,-339727612,105286484,1930183737,541362949,-16037909,-1957749900,1144594500,-1961853138,-947177380,-670834479,956712587,721581575,944016383,-506343541,1077985539,-1929754999,32242782,-94452665,49956483,637945483,-260700359,-1959887735,-2090901817,-443874579,-900899553,-1957363708,283935724,1988843095,1996445198,24635404,-787718517,945554403,-939323509,-1947185527,-472839074,-1959240701,176044351,1183516022,-1962743030,172394951,956843659,58191942,-1980742005,1178142790,1446146826,-16091393,1996424822,-401698812,1589968561,1200301572,239338242,105351462,721962635,1693911622,117646878,71797030,-352321096,1589652226,1575324511,503319746,1430622296,-1910575989,183272408,140413782,-1711114241,65535,58048523,-2097097495,1979647614,140413705,-1995421813,1996424774,108461832,-1108865392,-163149314,-1962385781,1191388231,-96040670,-1959239797,-422447498,721831563,-62486272,972703371,343733830,-1207404801,-1202716395,-1957690362,1177286214,451625210,-1962385781,1194980934,1393917476,1342248376,1342441144]},{"sector":6,"data":[737560203,-1706023865,2423,-150446453,33556039,1183536500,709307388,-1993849045,-1072957370,-1202513794,-1202716396,-1957690362,-1181145017,-101253117,1358448131,1183525099,140413948,-1993717973,-1072957370,-1202512515,-1202716396,-1957690362,-1181145017,-101253117,737693323,-1449504312,1577058304,-1962742397,1297948645,1426064586,-326898549,-1957275900,2123040374,65523972,1166751868,-1996150014,889192006,368538,38077184,1183402056,-1293397764,1958742794,-26311917,-62485758,-1561833400,1958742794,-28377341,1402615039,-1962934266,994582596,58655814,-2080485633,2097217150,-339727612,-28931325,-443850914,311901,-2081649835,1448545004,-16222581,1183646324,-1706027274,65535,-1980348789,2123103814,511454202,2098887737,440699653,-947191061,-637303,1183646324,-1202710794,-1706033151,2662,-1979824501,1183577670,-28931592,737967755,2084114044,-1962574564,48962628,1183434635,41222136,385238669,112720,183867984,1183514624,-129594882,-2147072778,1183657844,-1957685514,731455044,771281346,-654901247,239373136,734147481,178626,-1036781357,19776043,1356396288,16777114,-96040192,1224099371,508332953,1149893111,65664808,-1992231354,1183521348,-129618948,239897497,1149893111,1975520034,574932741,1149960193,577566478,-1980217853,1157045316,1950351366,41221904,1347469355,1342177720,16777114,-1070901760,602427472,-1956684286,113401317,-1873273344,-326412987]},{"sector":7,"data":[-2082959842,1448544492,-2096597365,1962870398,-11119085,244319862,1358713832,-1979819800,1340865606,276102998,1105727120,-96040452,309657430,904400528,-129594884,1979336249,1996445199,-30414598,51528747,-806678460,-126419114,-1946279704,1586171980,-1948003846,153827452,-772252021,50922467,306981832,-1946399095,1600060486,-1962742397,1297948645,503317706,1430622296,-1910575989,317490136,1988843095,41221904,-1207011585,-1706033151,986,-1030519,-1706029450,3177,-244087,161847860,1183383552,-1954812942,1178148932,1446738956,-1913356659,118888052,-1515870811,541363038,17722615,2122577478,92078324,16008903,74776320,-16616193,28839542,1183666176,-1706027276,65535,1586185195,-1948004084,25901180,-1995946493,1150021190,205928736,1996427901,-227082482,209125206,-1863420161,174647310,425603,1187448180,-16777208,1183517766,205928714,2062091133,-1707802625,2511,-401698730,1996425245,-59310322,16777114,-2090902016,-443874579,-900899553,-1957363700,49054700,74877782,1309046275,-1207142657,-1706033151,65535,1947024512,171737093,-11663755,-253033394,-1005816065,-14284706,2013210167,105286402,1996443678,-26108,-1956773888,180510181,-1873273344,-326412987,-2082959842,1448545004,-955484533,64582,309657430,-1712845168,-129594886,-1961737077,-472778658,725122187,-163149567,2116437051,642025731,16402119,1996445184,142016266,721843967]},{"sector":8,"data":[-6664000,1577058559,49120095,1562371467,576077,-2081649835,1448546540,-1962379637,1183391812,105286648,-62486208,-2081405303,1962944636,-373282043,2122514818,91553798,2507975,106859264,2089542609,-1996387528,889192006,1067674,-28966144,-940423543,63046,66485891,-1092025476,-96024832,2122514432,292880886,49956551,-228685056,218201984,1191117685,-92371974,-150113024,1073743428,2122539636,1551106294,-1962522881,1178204230,1444249094,-402229505,-1073018700,889129589,931226,9890048,33179275,1174532678,108956670,2080630737,956664632,1081409094,1074153099,-1946401143,92929606,-788103541,947651559,1160447371,-196703746,2116437051,642025731,-28930730,-230257328,106859344,2089542609,-399376584,1183384499,-11474442,294531,1183565428,105265648,889175678,933530,-9245952,207133236,1191116800,105286406,-1960819575,1144649798,-1958904288,1183385158,-397388036,-1073018860,1183526517,205818366,-1207667457,-11534063,-189267340,-6663937,1342177535,721568907,97419474,-6664110,-1207959297,1022099455,-788103541,947651559,-1946269953,-28952315,1183517556,-62486266,-1979824501,108956421,2080630737,721783608,1183448645,642006004,1149830014,107249702,-62485507,-443850914,442973,1167087646,518818645,-326903666,-1957275880,1156976758,57934854,-167724311,1963460164,105182986,58003456,-16733463,1183646324,-1706027274,2568,385238669]},{"sector":9,"data":[-163148464,1150111766,-1706025450,3933,52708491,1183392324,541363188,2129937977,-196703997,-349930357,-11053461,1996425334,-330920698,-1243066346,1958743032,-330920671,1183666198,-1924131092,1343682118,1020570,242679552,384583309,262117968,1465253888,-15960321,1183648374,-397404436,-1072957312,1183654260,-1924131092,1343679558,385238669,-26032,1996423168,-330920690,-6664170,1191182591,2146729529,-2090901872,-443874579,-900899553,1478361100,-1957345904,-661774612,141986646,1015024619,-1207601907,233504769,105286470,184962815,736853952,-310157632,535137026,80366941,-1873273344,-326412987,-2082959842,1448545516,-1962248565,1178146884,721779976,14215616,721962635,-1952901052,-101249460,-1946532215,995041404,-1962181433,1183386692,-92370444,-11135253,1458109046,-94467079,2089542609,50957112,-196179512,410871,-12684224,197564980,1174601728,-163149324,250105920,1975520004,-161576159,553615232,666376309,-1768271872,184549393,-1962181440,1178143812,-16548364,889189454,902554,-94467328,2089542609,-1996387528,1150023750,105265430,1183516029,1447160824,-386238721,-930414521,721831563,373566401,508332953,1174665719,-62486024,410871,1443525664,97884752,1183383552,-196703236,2147239481,-129594613,2096907833,-62485571,-310157474,535137026,113921373,-326413056,1460071555,108432214,-1995946869,-1072955834,-1070922635,2123052011,65523972,1166751868]},{"sector":10,"data":[-1996150014,1828191302,441223966,1277937707,-95516394,33455747,45681781,-96040192,-1980106855,1183578694,-1956684038,79846885,-1873273344,-326412987,-2082959842,-1957295380,1157040246,1946222598,-129594004,-6664170,1442840831,1342248376,425603,45614452,-1207702784,726663171,412766400,1442840585,-362753,-6621066,-1996488449,1183446598,1095932,95132240,-1073020928,2122520445,141819910,-1995291509,116127302,-1995422581,1149893702,1996445204,-159973380,1342177720,418458,-310157824,535137026,80366941,-326413056,1460464771,175541078,-1962516853,140413759,1183385483,71707636,-1946663287,1183446086,71732222,1978943033,112645,-1070923029,-939768183,64070,957105291,108852294,-385875016,1157038280,1967128582,222134395,1187448949,-385875462,92930212,-2137370472,184549394,-16485184,-12059066,-381157818,2122514572,494141692,958940299,578615366,957105291,92143174,-352320840,243715,-335919479,675580744,2130200121,178181,1031826667,-1976142816,-1705994235,1362,175423499,-129594553,-506113,-1958216122,1191180358,-28901384,957105291,226360902,29354071,-1703624693,33179335,675580672,2146977337,-92372040,-351046400,205818636,2113816121,1191134985,540901630,1586229108,-28931320,1586169737,-1958770426,1600059974,-1034033781,1478361096,-1957345904,-661774612,1460464771,276204374,638213828,-1986525302,1150023750,-96040672,-26026]},{"sector":11,"data":[1183383552,272927734,-134986103,1073743428,2122524532,394199304,553156227,2122322292,192155128,722617483,1178275908,1443526152,-401705217,1183385603,1996445198,209125134,-16091393,1996425334,-401698810,1183384654,2092960764,541363009,2130331193,608471817,-1994243069,-11076538,1996486262,-59310322,737953419,20778566,721714688,-1962021952,1586230342,-1948004082,19609724,112720,-401698736,1962932205,-159973630,16777114,-4696576,244338943,1593101544,49120095,1562371467,838221,1167087646,518818645,-326903666,-1957275898,1149961846,272902930,201082505,-9538368,348494388,-125108224,51397771,1996443847,-401698564,-1072956488,1283458164,1149960710,516358930,272927568,1344194307,722224267,-1706028476,65535,704398987,889130052,1366170,742689536,1024214059,343801888,84690059,1149829136,1345650476,-1705983957,5772,-1995422581,1149833796,-62485740,1600051447,-1962742397,1297948645,1426064074,1586228363,222265348,28837237,721611520,1575324608,503317186,1430622296,-1910575989,216826840,1988843095,105182726,-385649400,1149960367,272906516,1149961589,-1962677486,1183387716,-1873783044,-221583346,-939899255,63558,16547459,889144180,1418906,-62520576,-397391800,1183448981,-1707802632,5628,16285315,1157047157,1950351366,-94467300,2089542609,-62485704,225771833,958416011,92142150,33048263,1996445184,-196702724,244338710]},{"sector":12,"data":[-135137048,33556036,1149965429,-196724454,1149963390,-196703978,17712267,1150023238,574882596,2147108411,-163133691,1996455680,-159973388,16777114,-2090902016,-443874579,-900899553,1478361090,-1957345904,-661774612,1461775491,175541078,-1995291509,1183709254,-465139218,-1947838836,-1991761852,1183572038,-532268794,1183516285,105286112,1137114923,-2092490514,-159643649,-1696172289,574,-1685879,371497524,1183383552,105286626,1141104849,-364476104,-1962900759,1854138974,126550762,-398030520,-1947574645,-159479489,2095611449,-497120408,-1986526838,155056710,-1958054656,-163173433,603981829,-163183624,-1991719125,29813830,-1707802848,5710,-1996405363,-11136444,1996483702,-461963290,-1705983957,3347,-1947435517,1174531142,-1707802648,3429,-337492343,-92864755,1192858,1958742784,-347650303,105286547,990269183,58591302,-36631,276929076,1183514624,272927224,1444037769,721975039,-1075294016,-2090901770,-443874579,-900899553,-1957363706,49054700,108432214,-1959234305,-523172794,-1202700224,-1706033086,698,201213577,-1996262208,1183529028,-443851010,311901,1167087646,518818645,-326903666,-1957275876,2123042422,138775306,201082505,-1962052416,-472840098,-1959240445,105285895,142016343,-1980583704,1586229830,65261832,260782173,1317652483,105286630,91736123,1183433099,1996445446,-364475130,244338710,-1947203352,1183390277,-330920978,-1995553533]},{"sector":13,"data":[1166798918,-297402082,-1981135221,2122572870,91488508,15353543,74841987,1443001855,1342177720,384452237,202152528,1183514624,-364475932,15892099,-1923737730,1343679046,50742923,-1957688250,1177282118,434655238,105248757,108335104,134628854,1166750068,-431605488,1183525238,306526470,-11067022,1979648118,309722896,384452237,-261167024,192200715,-364475050,1788497942,1577058319,49120095,1562371467,707149,1167087646,518818645,-326903666,1988843024,272927504,-2081012087,1963067006,306481933,1964000313,112645,-1070923029,1459373705,-1877838593,-275060722,-129595072,425603,1149966196,1144733712,-1005686254,-2144990626,91491647,-352321096,-1983894782,1996484678,438278668,1183383552,1996445196,108954376,-1207601918,48955393,-397361109,1183383777,1975520244,13166851,-401698730,1183447950,1996445426,209125128,-1878362369,-193337330,-151894527,1963066948,1183536654,-11517938,244380278,-150561304,1073743428,2122517621,108265478,33965302,-11134092,1996426870,-190519056,-1946532215,1178204230,-1962508550,1183447622,108954616,1443722496,-1207011585,-1873772545,-55384050,410871,-1961134847,1144595012,958496544,242556996,541363030,-957853624,675560432,2088963711,812908592,959464587,679349316,-193527978,-231681,-353892234,-1070901760,1005080656,-129579020,-1070858241,115186256,-1873412096,61663246,1593329291,-1962742397,1297948645,1426066634,-326898549]},{"sector":14,"data":[1988843016,306481928,-1995422677,1962933830,422353462,1183383552,-1707802630,6524,-1946663287,1183054430,126550778,-1946401143,1183054430,1149960954,-16283376,-1231407500,-2097151975,1946158206,272927496,1979467321,913637209,100550283,726663176,1218072768,-1996488684,-1073007036,-1706016652,6637,-1996487675,-661915066,49956483,-1979824501,-94467321,49956483,-1996077429,272927495,519587331,-96040112,1996443678,456366846,1962868736,431856182,889126912,1722522,910461696,1575324510,1426065090,-326898549,1988843018,108954378,-1961987072,1143538758,244340240,-335945240,142016355,1767834,-129595136,49825411,49825411,-2080874869,-1962739642,-28931833,-2080874869,-1962739642,272902407,-1980217717,1586297414,-1667621124,-1996488683,-1873347514,-107157490,-25755818,-231681,244382326,-1947039000,1177227844,272927230,-1710721281,6970,1575324510,503318722,1430622296,-1910575989,116163544,1988843095,340036362,1964000313,306481925,1149961195,-62486256,244338774,-1980956696,1589967430,373590790,2097625382,-92372203,1446933504,-772120949,947686371,1346896267,1149970155,-62506740,-11131011,-689374602,510457838,637951684,360515387,-92370090,1552672721,41025336,108461830,988286608,-2090901780,-443874579,-900899553,-1957363706,116163564,1988843095,-62470388,1149960192,172374304,889145469,1305242,173968128,2089542609,-1995863240,-939262386,1459244681]},{"sector":15,"data":[-401967361,1183444593,71711228,1183516275,-62486268,519718539,142016336,-16353537,479919222,-16777196,338270772,1183514624,-1956684036,180510181,-326413056,1988843095,75399942,-1961069568,-405732226,-1959232509,1157834820,-1962595330,220926028,58507579,-1962651905,1599996998,-1034033781,-1957363708,283935724,1988843095,-163133692,1962868736,469473846,1183383552,-2082960398,1979646591,15853827,49432195,1183385483,-228684804,49432195,1183385483,-228684808,49432195,1183385483,-228684812,49432195,1183385483,-129594374,2130462265,-62486269,1342194360,-1695254785,1245,201213577,-385649216,1183514787,-11526414,1251671670,-1996488676,1344204870,-1695254785,7661,-1707707137,7262,-59310250,66602635,726727238,2056933568,-2147483620,1442973260,276102998,1239944848,1183535339,-11526416,-1070861194,-401698736,1962931876,482187830,1183383552,-1948742670,38112248,1996425097,479828734,1996423168,-25858,1183514624,340036092,1962889302,112658,297900624,-1202323456,-1873739777,-335550450,268848256,134696064,32917191,913637120,1898650,-163149056,-443850914,180829,1167087646,518818645,-326903666,1988843012,913637126,1906330,-62486272,880066571,1183045771,1149960956,-1962440432,1183054942,130482940,1586233343,-62487556,509698,-60912896,50087555,1991,-1707707137,7504,49120094,1562371467,182861,-2081649835,1448543980]},{"sector":16,"data":[-16490869,500013623,-125108224,-166987893,1586180724,206015236,1183434243,-2129204226,1947012412,92843014,-2096436409,1586168774,208634628,-25806589,1586226551,-1707606268,7853,-443850914,180829,-2081649835,1448548076,294531,1996428661,-6756346,721843967,-397389632,-1070862422,-1962852375,1207371358,1950351366,243953,-1994362889,939521094,51136395,1200223302,-1070903252,426744400,-1073020928,1854132340,1586168820,945785606,-1996339317,1586232390,206015238,-1979955669,-1072959418,939503742,2020250,-364476160,1988884619,-1947204612,-1957683514,-972819386,519980681,-260636848,2001562,106859264,722225035,1174666310,-163149314,66879115,1187506814,-385875462,1602945158,65065272,721914840,1183448134,66096108,2105671286,1946815998,958065453,444003958,1352139914,1454490,1958742784,1191134724,1191134956,540836076,96919924,96880397,96880397,1586185994,945785606,-772127093,-1948777504,1177223751,-62510100,-1946663287,1200293470,1178290208,-16550406,-963905458,-947171298,1996443678,430873336,2114125824,-96010248,-1962516853,1194981958,-385647072,-947126420,-1981135317,939461703,2028442,108461824,1347469355,-1192334872,1599995905,-1034033781,-1957363708,82609132,-16490869,580531831,-1996488679,-661914554,-16613501,28837236,721611520,-28931648,-16490869,1335506551,-1962934247,-443810234,180829,1167120524,518818645,1465309326,-1962246517]},{"sector":17,"data":[1972045398,138840888,-268177405,-1960817269,1090985726,108447787,-1413348435,1583348450,-1962742397,1297948645,3081930,275447811,779616257,418512899,1669267457,66387971,452919297,470286339,1384382465,67961091,5046280,74252291,-2054815743,42926339,5898247,38993923,1686765569,9764867,445841409,144441347,236126209,7471107,429522945,54067203,1738211329,252182531,1629552641,242679811,1646329857,506789891,3342591,396034051,1721958401,196083715,464257025,389677059,456392705,467927299,327687,497156355,393223,476446979,458759,462553347,524295,356843523,-2068316159,470810883,589831,210764035,131080,291438595,-2059730943,243728387,624885761,178323459,1698693121,40960003,239271937,171180035,1464008705,403570947,1376263,63438851,-2058289151,213516547,2162696,281411587,32506111,196870403,2949128,253493251,1701511169,330104835,33292543,370409475,33358079,472055811,33423615,319684611,33489151,90243075,33554687,25493507,33620223,21692419,33685759,19464195,33751295,67108867,33816831,293273603,33882367,294060035,33947903,0,0,0,1167087646,518818645,-326903666,1988843012,105286408,1946353725,50412829,37555316,1025209347,510919427,-397015061,1183383596,-62485508,-1873405717,12969998,-1873350421,20703246,-1873352469,14739470,-2090934037]}],[{"sector":1,"data":[-443874579,-900899553,-1957363708,183272428,1988843095,306481924,-1995422677,1962932294,28350978,-1073020928,-1070922635,-6652949,-1207959297,-1957691326,-1723795386,-6664110,-1996488449,-1072957882,-224786571,-352321536,-159973415,122266,-62486272,-108919,-26060,1141047296,-96040688,1996443678,-59310082,-1694992641,65535,-990355829,-970523522,889126913,16777114,-159973632,131482,112640,-159973552,16777114,30251520,28835840,-1956684288,46292453,-1873273344,-326412987,-2082959842,-1957296916,-397015434,-1072955580,-1873410444,845838,49120094,1562371467,182861,1167087646,518818645,-326903666,1988843014,175932166,1443853312,165274,-62486272,25356374,1448483307,-1710197505,421,-62485168,-1070903274,-1164292016,-2147483646,-2146433460,1577584460,-1962742397,1297948645,503317194,1430622296,-1910575989,283935704,108432214,-1995422581,2089022534,74711050,166445099,-193527978,174234,-163149568,-1711115009,65535,74825739,1324073003,1342177720,16777114,-230258432,125157387,132762,1457908480,16777114,-227082496,16777114,-96040704,1459377801,1347571794,16777114,1996443648,-401698572,1183383580,-227082256,16777114,-26112,-2090991616,-443874579,-900899553,1478361090,-1957345904,-661774612,1443556483,-2096204149,1946159740,138840949,-1946663287,1451952710,-96040692,-939764087,2118,972572299,208865350,-368956]},{"sector":2,"data":[-2144929210,460655935,51135627,1143670854,272892690,1982874683,1354771215,16777114,-11801856,-857012154,-1710459137,65535,1443645065,16777114,1996445184,209125128,-1207273729,-1706033151,65535,3336278,1448484075,-1710197505,65535,209125200,-16091393,-1070921610,-26032,1283457024,1283461126,-2090989561,-443874579,-900899553,-1957363702,49054700,74877782,-26026,1183383552,726685438,-1706012480,65535,-16616193,-6619530,1577058559,-1034033781,50337282,-16685312,50464768,-16689152,50465024,-16748032,50366720,-16694016,50465280,-16737536,50366976,-16744704,50367232,-16716544,50367744,-16662272,50368000,16936192,56852224,16828416,55739392,117566721,50354688,117486081,50333696,117496065,50333952,117477121,50335488,117482753,50336256,117498113,50336512,117603329,50337024,-16657152,50458880,-16582912,50461696,-16607232,50461952,-16589312,50462464,-16585728,132864,0,0,0,1167087646,518818645,-326903666,1988843084,-196688116,1187446784,-956301070,46150,336232065,-1207602175,48955393,1183432747,-733558804,1187446784,-956301090,46662,13780679,175932160,-1962511360,1149832260,138840870,1946157629,-385646986,-1073020709,20798836,-385649664,1187447011,-16776780,1183646324,-1706027292,65535,384059021,-465138352,1150111766,-1706025450,65535]},{"sector":3,"data":[67665539,-420936843,176062720,57934101,-1962888983,1174611012,541887412,-1053079223,-1108802691,541362944,1210336299,-956256279,-19386,1150003691,1183402018,-1197413452,1143668737,1458826018,-16353537,971566198,-230258429,353009281,-1962576639,65736268,-1960948597,-654839226,-335939687,105286605,196363913,-385649216,2122448741,1963005194,2668549,666371051,-1236891392,11828867,1256784764,-1234271233,-12326654,-327745706,-1996273176,-940985274,212226,71141492,1033139200,-1250687994,1946422845,-1715459105,-2130527255,18090622,1149966453,-1270480086,1227246731,175948091,723928203,-1991759292,-11094970,1996469366,55568394,-899447,2122515060,91488492,-352321096,1354771202,-327745706,1342367208,1342177720,16777114,-327253248,-1962183424,1183445574,-230242316,-6684672,184549631,-150506048,536872516,28837236,721611520,-532248128,141934603,-1711115009,595,32786059,1183520324,407110130,67519734,334037876,74776322,1342247352,-1207798529,-1705967628,65535,-327253168,-1207602176,65734146,721813944,735087570,38046656,-6664110,-2097151745,1946214526,105182773,-1962118016,731455044,1224266178,-1816951,1996423796,-227082252,384059021,-465138352,-6664170,-16776961,-6684044,-385875713,2122514686,158662868,-26026,1183383552,-730398764,65291915,-1957628858,1174660678,1183535346,-465163288,-364475568,1357268523,-2853121,1996481654]},{"sector":4,"data":[2144486,1375784122,-26032,2088960000,276037642,-730398890,1347469355,16777114,10807552,15892099,1149964669,574882596,737166985,1183429702,-1962087442,1183392836,-1270469650,-2081405303,1946219646,608471888,-1994243069,1996484678,-25900,1183383552,-193035310,-1960936192,1141058116,-1270469848,-2210167,1183569014,-196738072,-428409008,-337086721,-730398960,-1804545,1183573622,-196738076,-361300144,16777114,1996445184,-294191148,-1018113,-1070866826,-26032,2122514432,276037842,-2853121,-6630794,-956301057,53830,1342177720,16777114,2109737728,-1069118177,-1070903274,33601616,34191440,1354771280,16777114,1975520000,-48895741,-390695169,-1073020522,1149986676,272906516,1149961589,-1962677486,1183387716,175932412,1443787776,-1169781424,-6664170,-352321281,1996445198,-1169781252,-6664170,-1962934017,1177154630,-230257734,1455179305,1074152694,280495476,-1207702780,-11534080,1996471414,-25926,1962868736,-26110,-1528233984,41222140,-1697351937,65535,733234827,30048466,-1980348791,-2090928042,-443874579,-900899553,-1957363704,82609132,141986646,294531,1149969780,-62486236,1210074251,108461904,1342203064,287386,608471296,737953419,1828136004,-1960580338,1183394372,642026492,1996443720,6600710,79731280,1149829120,-62485718,-148224981,1183391340,-443851010,442973,-2081649835,-1957296404,2122516086,376700932,52460675]},{"sector":5,"data":[-1070922627,1149972203,-62486236,1210074251,2088964075,-360971738,-1993718645,1150024774,1183402022,-59310086,1342203064,-1694861569,65535,1575324510,1426064578,-1957237621,2122385526,1946227716,105286433,-2094775295,2097161340,608471819,-955890135,9284,-150583669,242022360,1183522795,709099782,2784387,1149963133,105261354,2770119,105286400,1828182263,-443851234,442973,-2081649835,1996428012,56465924,-1073020928,-1070922628,1183663339,726669038,12079296,28856321,-1070903295,91462224,-1073020928,2122392948,1946223088,71732185,1978811961,-297366063,-1070903274,16824400,28856400,2040156160,-1207959549,-443875327,386056797,704643840,2013266181,1040188206,184614659,1258291970,150995202,1023411015,184549636,-67108014,553648385,2013266786,553648384,-1660943519,1040252673,1241514752,-1207959291,-738196702,-1090518783,452985652,1056964866,687932197,369100803,-301989120,1358954755,-369032315,503318530,-1291844864,-671088383,-1711209721,570427394,1325466368,654313475,-1090518272,-100598013,-1358953727,-83820797,-1946156287,1795162368,-67107995,-67043581,1644167937,-16711934,-436206847,50396931,-1392508158,117505794,2,0,-2081649835,1448542956,1443133067,16777114,1958742784,-6662633,1442840831,74394,1459129088,976983,49006475,1600045099,-1034033781,-1957363710,-1957275668,2123040374,-1202235900,-1706033149,65535,1460032163]},{"sector":6,"data":[1342177720,16777114,-1956684288,79846885,-326413056,108432214,22911574,-11141120,1050281078,1577058305,-1034033781,1478361092,-1957345904,-661774612,1462692995,242649942,-1962246517,4000838,-385649407,58065108,1023551465,1953759239,1962936381,11790595,1962936893,31385859,1962937405,30075139,1946160957,8666379,-1276574859,35121408,1183434635,1975520244,1183667726,-1706027310,65535,1458849417,-386631937,-11075768,1996485750,39774420,192282379,-767128234,-6664170,721420543,250190272,1996445186,142016268,-402229505,-336919725,138431616,-26026,1183383552,-397388044,1996488456,28858100,-337096704,1996445189,-25868,1156972544,-1082847168,70286464,1156975989,125109056,1354771286,1443277288,181146,1453648640,-2147232280,-1695072156,65535,-8153621,1452307744,-397361109,-2014641284,120618112,1592329076,-18431,-2080408855,276111615,71320822,1793655669,-840411393,-10229501,60090454,-1979630359,-466993084,1726599723,1078233601,69592106,-230258432,108330763,71322752,1686111467,-396952768,1183448622,1975520244,-13899517,137395328,190190453,-1207601921,65732610,1342178232,-351923736,-193528054,-227082410,1443093480,-386631937,-18219429,1078233854,52814890,-1969362176,-466997180,1929380413,-18355965,1979712317,277795,87887988,-385649920,104726229,-384141824,-15991091,1283458676,82510130,-30251904,225771275,-352321089]},{"sector":7,"data":[50299656,46072694,1078233600,52814890,1975991040,-23074557,608191626,181373948,1078233281,-41359274,200558217,-385649216,1448148613,-385630744,-11075723,1996425334,-26106,-397017088,1183448422,1975520244,-27006717,28856406,-1444392960,1078261248,-385649400,1996488521,28858100,1676169216,-6662652,-385875713,37617461,1026193154,57803264,1040070377,57999617,1040101609,57999621,1459529961,1460434687,-16222465,-6683018,-352321281,67124514,149488501,67190271,183042933,67255807,-1696005259,67321342,-1662450827,1590488062,49120095,1562371467,707149,1475119957,108432214,-1979416949,-466993084,989856805,1443853511,1342440376,1354771287,-26032,1599995904,-1034033781,-1957363708,183272428,1988843095,108956424,294531,2088768628,242485040,1448132651,1379336023,-26106,-11075584,-1710861770,65535,-1963571575,-466997180,1979713597,12904707,781434883,72001535,-1070901673,58517584,-1070901673,36366416,-129594026,-6664170,1459618047,385369741,809798224,726721578,-6664000,-385875713,1448542346,-397361109,1448543050,-352164376,28857979,468209664,1078261252,1443394564,1342177976,-167506456,1946694468,79189599,-1552384,1448471299,-129594025,79187990,367546368,1183667972,726669048,-6664000,1442840831,-129594025,62410774,-102215680,1183667971,-11528456,-1711028682,65535,-1070901673,48031824,60822251,64095136]},{"sector":8,"data":[64095186,64095186,65078279,-159973545,230554,-1956684288,113401317,-326413056,1444080771,-2146797941,1963405436,2145932830,-163149317,1183666262,-1202710792,-397410301,-11140200,-924256650,1443621883,385369741,102537808,1183645696,-11528456,1996424822,-26108,-1073020928,1183528308,33570056,20779124,1025012738,661979650,10414166,28844523,-6664192,184549631,-2146140736,1946628220,28857870,233328640,1443162880,1577077224,-1034033781,-1957363704,1988843244,1078261254,724464900,395989184,-2147483648,1443905612,16777114,1080328192,79189743,65556480,75400190,-2146798592,1444954188,16777114,-443851264,311901,1458342741,-167479669,1946435652,-1070901738,-36116400,541082870,2056915316,-2147483643,736051300,-828747584,1577058309,-1034033781,-1957363710,49054700,1988843095,-26108,727056384,-1545056064,809798397,54387754,1023767552,796196870,708854922,-2114417692,1191183335,103840896,45614453,-1207702784,-952434687,-13958531,67221590,-1070901424,1251627088,1442840579,-397361109,-1070923206,6986320,1599995904,-1034033781,-1957363710,149717996,1988843095,108956424,294531,1187448180,-1979710460,-466993083,989856805,1014236230,707806602,1925188580,81198,121440118,-349604864,1183668002,-1706027272,951,-129594026,1166692374,1357130288,1342177720,248730,1443228416,583767,-443850914,442973,-2081649835,1448547564,1443133067]},{"sector":9,"data":[-1928956161,1343682118,1342177720,-956183576,65094,707806346,277988,87886964,1024225792,309723142,1187448299,-167771650,1946435652,178199,1187452139,-2147482882,1946304636,-28915734,-471138304,-125059029,54543606,28837236,721611520,-137950272,-1996203474,1183575622,1546582014,-330921724,385238669,-159973552,-1946650881,100922950,-1957690278,100923462,-1706032036,65535,1446540543,-16353537,-1928965578,1343682118,16777114,108461824,-11485141,-16493514,1996486262,1513553912,1547108100,-294191356,-1192462593,-1706033151,65535,-443850914,311901,-2081649835,1448548076,-1979287925,-14012324,33720202,-62486120,142016342,384845453,-59310256,-1962876952,1344157252,16777114,-297367296,-1962379521,1344157252,-1695648001,65535,-1980217719,2123102806,-58817552,-1962118142,1177285702,-775476232,-1946680344,1177285190,-163183622,-772651477,-28931608,294531,727063924,1996443840,-6663944,1459618047,66733707,1346960966,16777114,-163190016,1946694468,142016287,1347469355,910461776,1996443678,1996445678,1354771454,-26032,552271872,-1207404801,-1706033150,85,1460172543,-1946257665,1344157252,-1695648001,65535,-443850914,442973,1458342741,-16353653,297285748,1962889217,72780596,-963919829,-1080405934,1577058309,-1034033781,-1957363708,116163564,1988843095,176065292,142016342,-1710852353,1186,184829579,-385649216,20775100]},{"sector":10,"data":[1024816128,678690818,1946157885,277809,-2081881227,10676480,637951684,637945739,721569579,-788243450,1191257848,9103618,-1593418044,67437658,117515776,1149992171,-1706025418,1873,1476019849,506872971,-92864688,587418,-62486272,1476286089,-1173613640,1347553517,1342177720,16777114,-2147079424,106873860,637993254,1174603659,263676,71797030,654198411,84035331,-1993998332,585827911,202618967,1392508858,112720,124033616,1183383552,-27883012,-1962516796,-370617918,1600061295,-1034033781,50340618,17094400,53377024,16784640,53999872,17005056,52100864,17182976,58656256,17130240,59082240,16945664,57411840,118002689,33577472,17347584,51122944,17110272,53383424,16843520,52073216,16780544,51254016,134790401,50354944,17277696,58955008,16806656,54008320,16834560,52009472,16970496,57121536,17317888,56697088,16795648,52145152,17232128,52114432,17281280,59029504,134734849,50332160,17226752,56900864,17343744,55754240,17309440,52772608,17242112,55496192,17107712,59068672,17117440,53631488,17054720,57039360,17084928,56942080,17290752,55403008,134504705,50343168,17047296,54912256,17299456,55764224,16870400,59011584,17127168,3306240,0,1167087646,518818645,-326903666,-1957275862,1149898358,-1947981264,205949944,1962937405]},{"sector":11,"data":[15198467,568918902,81153,37571188,-385649408,171770018,-385649408,501809390,172395265,200689289,1443788224,383141517,-26032,1183383552,1996445430,-663289866,-2097072408,1962936958,1183667723,-1706027306,65535,2112602155,-1072971733,-8128907,-990808829,-1960442274,-1960438201,1183389783,-94991880,653811396,1979662208,1200301580,-129595135,16402119,980745984,-362753,-6621066,-1996488449,-1000979388,-14285218,-14282633,922685047,922682474,-1070922644,-26032,-1662320640,-1072971733,-8153483,-7244541,-6667148,-352321281,67076999,28863602,-372102400,-8191854,-385650173,1525415794,-1711276104,-2097118743,57803775,1459577321,-16222465,-6683018,1442840831,16777114,1975520000,-11998973,-26026,1183383552,-1202694410,-397410303,-11141029,-6621578,-385875713,255721258,-385649408,511180527,1912606013,933125,-11101066,1996426358,142016266,-1710852353,65535,-2126701845,-385649408,-2109866125,-385649408,-2076311688,-385649408,-756285574,-310157474,535137026,181030237,-326413056,1460989059,141986646,707806346,-62486044,-230257322,-6664170,1442840831,-1207535873,-1706033146,65535,-2081536375,1946158206,-62485712,-767831509,121439607,-1961987584,-768869306,91738683,1979713853,1354771220,108461904,-1913751809,1343681094,16777114,108461824,-1695648001,548,-113015,28837494,-6664192,-2097151745,1946173564,108461835]},{"sector":12,"data":[-1707051777,803,1039943307,58064905,50391529,-13724736,-2096953177,1962948220,14215427,1358954424,16777114,860157440,-13798392,-1070922122,44611664,1375906746,-230257328,727076886,-1957670720,1143679556,1149980710,675556140,46504528,250281984,-1928956161,1343681094,-401698730,-4718431,-6663937,-385875713,2088960130,2087977028,-16353537,-1207710666,-4521985,-1957670145,1344160836,1358954424,1347469355,74069759,74200831,16777114,-1957565696,-352073666,-1103197430,-1962611965,-2147236290,1929851004,108461840,384976525,-6662320,-352321281,-1405187797,108461827,384976525,374864,-26032,350945280,37421627,43647547,47252171,46858967,47645393,-16353537,-6619530,1577058559,1575324511,503318210,1430622296,-1910575989,108954584,-15501825,-1070920586,1996443728,-26104,-1070923776,1996433131,106859276,506873739,-18352,175570768,-1979156737,-466997177,1342263309,16777114,112640,-1962742397,1297948645,1575114,19791875,939065345,18546691,1812529153,18939907,236126209,7340035,445841409,21168131,941228033,5373955,429522945,23855107,1738211329,11730947,11403519,28508163,1629552641,29360131,464257025,33095683,456392705,34799875,131080,39452677,31785215,57737219,5570815,38338819,1507335,43188483,1572871,55181315,902365185,13762563,541720577,39649282,31785215,48955395]},{"sector":13,"data":[1717174273,41549827,1298268161,33816835,2949128,50462723,1172635649,15139075,4128775,0,0,0,16777236,33554689,33686017,18350595,983298,458754,18153480,65671,655371,67240961,68027395,67568646,67699720,67830794,67961868,328709,14221312,49480435,23265587,23265635,49938727,26476911,28705197,29884863,35652046,36569640,38208059,39912013,42074740,44368534,47514302,15794907,50397380,1167120524,518818645,-326903666,-11053530,-1070395786,-26032,-259325952,185353867,1023768054,2020933633,235822731,4099335,2210048,1317777394,1457489674,1080557358,-397361101,1149834097,1996445198,142016262,-351826200,889150997,-16616193,45615734,-6664192,-1207959297,-857145343,1284201984,1361961756,16777114,474253568,-1709280001,249,85846102,1347862579,172263760,-1996077943,1149833284,-401698798,-1070394753,-1207920919,-11533824,1962879092,1345841958,-1929218817,1461115006,16777114,-11069952,1996425334,-26106,-1073020928,1482166901,-1995946357,1183524932,642025734,1351637995,-16222465,1256719990,1582230284,2123192151,-1705568544,65535,-529072298,-1914538241,1343677510,369640424,-26025,703266816,477429598,66714,510983936,104858,-6662656,-352321281,370075664,364832854,-370669589,904418837,1365240598,-402229505,1458241954,112734,1465798891]},{"sector":14,"data":[1342399976,1342178744,16777114,-1192195328,-1706033146,473,1465567371,637951684,722487179,-1960423226,-1054142905,1200301648,65458444,-1960423226,-628422073,-135006311,65130979,-1070378815,-26032,1391132672,-1999828386,1256927564,31713361,1996440811,108461832,-538440048,-13112571,1996425334,1491620102,1361832708,-352197144,1996443941,-26104,-11534336,-6683018,-352321281,1996443921,41347078,1354773334,-401698736,1609240879,41221969,16777114,318498816,-1201778197,-921960449,1278994546,1457749776,330426449,-1201783317,2088828927,-764084173,-351779701,1978159406,1959922432,-11513306,1996425334,-1706012154,65535,-397341973,-771030948,1347554676,16777114,-396996608,-346554230,1149984315,-13243632,1996425334,28856582,28332032,301459536,-1964486570,1344138002,142665809,1364203499,-351727128,1347902992,142016337,-1710852353,65535,-2090967143,-443874579,-900899553,-1957363702,1988843244,-1194183930,1317797887,273431300,1962877821,-26084,1586167808,-1898249468,939468482,-1709411073,65535,-1709280001,822,-443851176,311901,-11510952,1218059895,-1023410173,-2081649835,1448543468,-2096597365,1962938492,9169155,-1962509173,121439814,54818560,-13724736,1191426983,2083207659,53799694,803933820,722486411,1861684804,1689884932,-1946552576,2113866744,-335598822,276597526,-1206850737,-1845260541,-1677486333,-1325151485,-1962691325,1143672900]},{"sector":15,"data":[-28931826,41797435,-396953461,1465258948,-1962018840,1144587844,51739658,1346899524,-1710197505,65535,1006519945,58526276,1443513481,1578331112,1575324511,1426065090,-326898549,1988843020,826590726,-1070901759,244338768,722434792,-443851072,311901,-2081649835,1448545516,-2096728437,2080375934,272927496,2080654905,-18426,-16742423,2089488460,75377424,2088822737,108265523,1074807947,1962932227,121084444,1183383552,-27883012,-788248949,-62520352,-1980348791,33945686,1380995584,1475770111,309914,863797248,-1960348672,-523169724,50611715,1452014662,-163149314,1090016905,-11382702,1150023286,71707408,-26032,1962868736,56859164,-1202323456,-11534335,244319350,-1961963800,1600000068,-1034033781,-1957363708,49054700,1988843095,863797256,-2096204800,2097087614,272927496,2114209337,-18427,2122526443,309722884,2084175659,1444249104,108461911,1192285672,-11079445,1996424310,281602054,1354771286,-401698736,-1070920077,-443850914,442973,-2081649835,1448553196,-1207667061,-1202716608,-1706033096,65535,-15992693,-1070922379,1442891497,1464909867,16777114,-1070901760,91658832,-125108224,-477098,92641872,92864512,1443001737,1358951608,365210,71665920,-1001386,10132048,1183383552,-62458116,-1341885180,704834305,826640576,620512906,843417602,620512906,876972033,620512906,860194824,1852871,-1983894784,1166607941,-2000672246]},{"sector":16,"data":[1166554693,138790709,-396886017,-1705639861,65535,1356351113,383403661,-26032,-11141120,-6629258,-1962934017,1166662214,-1070901468,238282832,-15841911,28836469,-1070903296,112720,-26032,1166737408,-1956684252,46292453,-326413056,1443163267,721712779,574917056,-1205844855,726663234,-1706012480,1737,1579041929,-1034033781,-1957363710,49054700,1988843095,310151940,-947656751,863797312,-1962380288,537203268,-523520,-947184524,726684313,530206912,-1996488697,-1073013692,-1070922635,1149437931,28844050,-1956684288,46292453,-326413056,1460595843,175541078,-2096857461,1962941564,1962871602,-31989,-4716940,22079999,1342194360,1347469355,16777114,474253568,-16235321,-1983894529,1149830724,306481424,-2096479095,58064895,-1961853813,272906695,1996474482,108461832,182682,1183399936,574882810,1005733513,662052932,-998244316,-230258431,723416319,1996443840,-6663950,184549631,-1207536192,-471203842,-230257920,-14662519,1352277620,-1996488701,1451883590,142016510,-1962510593,1174610500,-11513092,-1248134538,-16777209,-6676876,-1962934265,1144590916,1443396624,201254888,-4688704,1788484724,-1996488700,1451883590,-196703746,-1946790263,-953479100,1183441105,863797490,-1962511360,1174474820,-775451662,-196738592,-624897,1183577206,-162100236,1375732229,-227082416,519578,-195116032,639779979,1183516553,574882298,3374208,1149971060]},{"sector":17,"data":[65065232,1452014662,-1983446018,1451881542,1079005942,1149980754,1355229968,298394,-195116032,509478,-15710977,-1030087564,1442840580,1342177720,-401698729,-947188845,-443850914,574045,1167087646,518818645,-326903666,1988843012,-62470390,2088828927,410255410,142016342,-1207535873,-1202651137,726663170,-1696051008,-62486260,142016342,-16353537,1156119670,-310157570,535137026,113921373,-326413056,1444473987,-955746677,65094,16533191,-263796992,1187446784,-1962934022,-1952906170,-101243828,58053131,-1962884375,1207304796,208961586,-1996384095,-1700659642,-62486271,-1979556725,-1071369657,158711868,721524385,1183448134,39619578,540166134,-1834940044,-28955903,-1030519,1183646324,-1706027278,2298,-1929218817,1343681094,591514,39619328,1077102582,889136244,384321165,20814416,889126912,384321165,-26032,1183514624,-230282776,703219339,1962931270,-230257918,1358841387,737429131,1177287750,1183535354,65065470,1174603334,1183535344,1284217092,-134613212,-61961239,-1056710191,1358579203,1342177720,137882,-443851264,442973,1458342741,184841867,-1207599626,65798143,1577058744,-1034033781,-1957363710,1988843244,2113276676,-137983226,-1962742824,-443851066,180829,1458342741,-1744550262,1614606475,2067530878,1183456892,-549611516,-1744404992,2080438077,71731727,16203160,1033374590,92078335,-337623923,1590070018,-1034033781,-1957363710]}],[{"sector":1,"data":[1424786412,1988843095,-1002009332,-1933818231,79216214,-6664192,-1996488449,-166986170,2078868341,175570689,-16616193,45615734,-6664192,1342177535,748698,-1304000256,-1207273729,-1706033151,65535,226682966,1962882303,175570690,1342177976,59290,830242816,-385649408,2088960295,58654736,-16703767,1183646324,-1706027274,2264,112726,165931088,272927568,1342587947,259226,-1270445824,2117730091,-385646668,1183514863,608437240,1459373705,50742411,-1712828217,-1069118984,-2084415863,91619322,1962934077,39619407,137578486,1996432245,178186,-126419120,-4032769,1996472438,-1065943102,457114,-6664192,-352321281,175570719,1347469355,-1032388784,1354790655,1342177976,737703679,-1706012480,65535,-126293930,105155414,1183434499,1424511158,-1404663541,968246923,226437700,959202443,92255814,-352321096,-1983894782,2088811078,208994357,3177600,2122516085,712310956,3505280,2088765045,729022512,3046528,2122524020,108331194,11304579,2122517621,326369466,3112064,1996426612,-163148534,-6664170,-1962934017,1183448134,166283256,233330431,175570700,-1699580161,65535,-443850914,705117,-2081649835,1448542956,-2096597365,1946161276,71732095,1946165565,1027241737,645136400,1149988587,-1948715250,108954104,1081409792,602429270,-1957041407,-303362436,-335544385,114664,2122441707,1963000070,779911235,-348294144,2243885]},{"sector":2,"data":[624811380,1026650624,-663355354,1912612669,2637095,552326006,3505280,2088765045,343146544,3046528,-1202319755,-11533309,1962879092,28305446,-443850914,442973,-2081649835,1448545004,-2096597365,1962938492,10807555,537165443,2088770677,292814899,175439702,1443195880,-401967873,-2014771930,-1070901760,280522987,1654280192,184549388,-1207599680,48955393,1183432747,1161462,216635984,-1073020928,28837245,721611520,-129594944,276086795,294531,2122517106,74653700,1074022019,-1996208501,1187445318,-1923743492,1343683142,-1207274241,-2091909119,1946220158,1354771202,-1962395416,-31752,727062132,-397407676,-1202323434,-11533309,1962879092,15722534,-443850914,442973,-2081649835,1448545004,-2147060085,1946170748,13363459,1342181560,852122,2109737728,112645,-1070923029,-1191426423,-1706033135,65535,92127243,-352321096,-1983894782,2122579526,1249116412,3374208,2088780916,1047855152,1443527819,74901591,15226710,1448564230,151906391,91602955,-352321096,1354771202,1443407336,161474647,-1980217719,1153890902,-1202323152,1380975617,-386369793,-11141035,1996425844,154134532,1465317515,-2096877592,1946222206,813465613,1443329280,81979479,1465264619,-1995874072,1451882566,813465850,1443263488,-352058696,809813512,28857857,1996443652,-126418950,1577060584,1575324511,1426064578,-326898549,-1957275890,2088962678,57999376,-1962730263,37554246]},{"sector":3,"data":[-385649406,58589822,1023601897,57999872,1023470569,208929281,-2147287831,1946170748,49539377,-1711115009,633,3046528,-488045708,813465602,-385649664,1153827545,1962869045,-26110,1962868736,-26110,2122383360,1963066120,-352210940,-2000672254,1962882884,340036866,1285181470,1442840586,-16353537,-756546442,742689032,-1205189495,-1706033136,3147,176013323,3374208,28312692,-1070988565,170804360,1445098944,-399870721,28379087,707742856,1958820845,1962890759,78243882,712310614,-352062488,1962890779,128837674,74825739,48955824,1149812778,1962890799,75884586,712310614,-2130463768,67176574,1962873972,112642,26261584,1354771280,256744016,2122383360,1963196936,813465611,-1207208704,149618689,3505280,-1070860940,57982987,-1962805015,1183388740,106334980,-1993980791,-771020716,1149962876,2144353050,9562371,556673,-2093058814,2097153662,105286407,116119799,721831563,-125101500,-523041615,-150892499,-129594920,2097152317,-129579259,1962868737,112642,-126419120,1347469355,16777114,108954368,-2096530176,1962935932,25684227,958022795,209585734,1209025675,1963344955,24373507,108954454,721714432,-1207702592,726663169,-538423104,108954611,-1207599872,116064258,723141771,1183392836,1996445190,74907398,-1996404504,1150025286,-28952276,854131573,779911169,1444246784,57796688,-1979824501,1149840452,-397388246,1810563939]},{"sector":4,"data":[959202443,108341828,712310614,1149981163,742665002,-109778864,724192395,-1991115186,1743319622,-230278151,-11137932,1962879604,46852140,1150014187,742665002,-110696368,724192395,-1991115186,1508438598,-230278151,-11138691,1962933878,1443359532,-13863681,-1712783754,-28931326,1445741705,-385976577,-1561787868,813465600,-385649408,1153826969,367722544,3505280,-1964440715,41221888,1342177720,16777114,893699584,776259072,-26112,1962868736,745865002,16777114,1183399936,712310776,-1708362497,2657,216791179,1149917014,1357130287,1191529960,2146991673,880574703,1446802432,1342177720,2112360080,930906112,1445753856,1342177976,1843924624,1025567488,57999875,1040000489,58000385,1039996137,58000386,1040052201,58000387,1593794281,1575324511,1426065602,-326898549,1988843010,340036872,1996443678,74907398,84634,1958742784,105286427,608996249,1183447543,273452030,990268459,50691521,65734212,1593835448,-1034033781,1478361094,-1957345904,-661774612,141986646,297284863,1962889217,106334980,1150009387,-1706012158,65535,49120094,1562371467,313933,1475119957,108432214,1443135115,29222999,1465276246,184863464,-1207601728,48955393,-397361109,2088764514,175374388,112726,-401698736,1600061336,-1034033781,-1957363708,-1957275668,2123040374,108804356,1465255038,-397010453,-952433391,727061629,-947171136,1074676779,301111888,-397410304]},{"sector":5,"data":[1599995912,-1034033781,-1957363708,49054700,1988843095,75401990,1209025675,1354771280,317364823,-1706033152,4857,2084173963,1448834054,-1962566680,-953481660,-1994101513,2089418310,41221894,1342177720,957236363,276697156,-150969160,1284217327,239872784,49019383,-1202667477,-1706033151,5156,721581311,1996443840,1347440894,-26032,1962868736,234396162,-397017088,1599997204,-1034033781,-1957363708,1988843244,837309958,71731973,1443513481,1577383912,-1034033781,-1957363708,82609132,1988843095,105155334,1074676739,738084489,958852095,410256510,2131131449,-25282285,1465257596,184784616,1443198144,7989335,-1070901418,53274704,276576583,1600050559,-1034033781,-1957363708,116163564,1988843095,105155336,1074676739,-113015,1996424822,276666884,-1992294400,1996487238,74907398,1084570,-336033024,108935459,2084117876,957906694,326958718,820533078,793545219,-1053037270,1465255284,1191186152,2147122745,-1956684072,113401317,-326413056,1460333699,108432214,956595851,1434388092,58976342,1300023099,3243136,1962887028,-129594110,-644198378,-1962934253,105130951,-1994101513,1141111366,-28931804,70182998,-1711115009,5089,1358317193,385369741,190028368,1962868736,-159973630,1310106,-639085056,-1956684285,79846885,-1873273344,-326412987,-2082959842,-1957294868,2088766070,2004090929,556675,2088964724,208928784,50742411,994053700,1601963590]},{"sector":6,"data":[-1929218817,1343682118,1330842,41221888,385178,-196704000,28856406,1183666176,-397404426,1962931672,-193528062,391066,41221888,1342177720,2114995257,6600719,-1727632137,1225804939,49019383,-1202667477,-1706033151,1562,141885270,1577143528,-1962742397,1297948645,1426065098,-326898549,1988843016,41221894,385369741,238787152,2122514432,91488260,-352321096,-1950340350,-28931128,610044825,-1056703497,1575324510,1426064578,-326898549,-1004934394,1191118942,1065362952,-2146798336,1962999422,-339727539,71761740,637820612,-467007606,1347537195,1357978,-28932096,638082756,-316010614,1364382251,-1694873975,65535,989611656,-1217070522,91602954,-352321096,-28931568,2113685048,178181,62391275,1575324416,1426065602,-326898549,-1957275898,1183518326,205916938,1589905780,1065362954,-1207601920,1877737471,1191739019,2131786809,75399952,721712128,-1962611776,-1958211516,75400184,-1962642432,721611719,-96040512,1209025675,2131248699,75399942,-2084277248,2080444540,209125310,1443526399,-304945065,585650258,-28931585,-301668266,956712587,75497030,267110283,276576583,-13958539,1979350585,1586293712,1575324511,1426066626,-326898549,1988843010,-28915962,2088828927,1383399475,-16482685,1149979772,71710992,-396999555,2088960512,242548488,74907478,1459352552,-402098945,2122579323,393543428,74907478,-1946427416,1149830214,172263688,1625837654]},{"sector":7,"data":[-955913219,-63420,-1995946869,-396951994,1183515024,-443851010,311901,-2081649835,-1957296916,2088765558,242548787,294531,1183530100,138709254,1962882283,376150556,1284177920,65130768,64654280,1317602894,-27358724,294531,28312692,-1070988565,654073540,1962870664,378378780,-1956773888,113401317,-326413056,1459940483,108432214,-2147189109,1962947452,142358798,28837237,724626176,-13833280,1939479668,-1962934265,-506392500,-628373501,1317654275,-27358724,654073540,-1952970870,477429752,482202,1590135552,1575324511,1426064578,-1957237621,1183516790,105251076,425603,1187448701,-352321530,272927500,2080785977,1183401988,105286406,1575324510,1426065090,-1957237621,1149961334,239338246,1149980744,-1706014704,5985,1575324510,1426064066,-1957237621,2088961654,92143908,-352321096,-1950340350,71732168,-150584277,-1056758684,-796143061,135053355,1575324510,1426064578,-326898549,1988843020,41221896,385107597,399612496,2122514432,92078086,-351910773,105286446,1006519945,108984902,-1980086645,1183579718,1284217342,1358559012,722486411,1346897476,1177754,105120512,1593591433,-1034033781,-1957363706,1988843244,914128900,723284992,1149980864,105130762,611120960,-6664120,-16776961,-6684044,1577058559,-1034033781,-1957363710,1988843244,914128900,-16223232,-6684044,1577058559,-1034033781,-1957363710,149717996,74877782,-1929218817,1343682630]},{"sector":8,"data":[1268634,41221888,1342177720,737965823,-6664000,-973078273,1577137732,-1034033781,-1957363710,1988843244,813465604,1443656704,1342440376,1347469355,-2131383064,1946170748,45635084,-1070903294,-1696051120,914129141,-1710656512,65535,3556550,1575324510,3343042,240386051,779616257,326631427,939065345,39518211,34341119,170721283,452919297,346095875,5177351,122880003,1384382465,395771907,-2054815743,45613315,5767175,307101699,1191772161,179634435,5898247,166134019,5701640,236847107,781254657,26083331,445841409,99483907,6094856,400752643,-2087387135,24641539,429522945,328269827,941228033,51118083,1738211329,90832899,1646329857,388890627,1629552641,327548931,1721958401,248119299,1428619265,167968771,464257025,305922051,4063487,88867075,327687,275054595,1437990913,27721987,458759,395247619,-2068316159,169345283,131080,383778819,1379663873,307625987,884932609,105120003,983047,290717699,624885761,108986627,1048583,27328771,1114119,370016515,1179655,372900099,1245191,38928643,1376263,156303363,541720577,298450947,1380712449,397606915,-2058289151,90243075,1649868801,180027651,2162696,236322819,844759041,285540355,1692270593,182190083,1298268161,168362243,2949128,31719427,1667825665,149225475,1625948161,405012483,-2072903679,275906563,846397441]},{"sector":9,"data":[1167087646,518818645,-326903666,108461828,16777114,1975520000,-339727612,1354771246,16777114,-62486272,956309665,208930374,2375299,-1593478144,-571801564,-1559869813,1183514656,2401276,-2097151560,-443874579,-900899553,1478361090,-1957345904,-661774612,2375299,-954502144,8198,604423936,-2097152000,11838,870843252,112644,-1070923029,-1962742397,1297948645,-1873273141,-326412987,-2082959842,1448543980,2375299,-2089651200,9790,922686068,129499174,-1070903293,-1706012592,319,2244227,-12487680,-1711267274,328,1049358475,250282028,-6671105,1442840831,-402340221,-947190771,1975520079,574029803,25532928,922681344,-6684638,-1560280833,113704994,44,3016391,547422209,2532096,-352321096,1589652226,49120095,1562371467,1478413133,-1957345904,-661774612,1460333699,641138518,50771968,1354771280,-275099568,-16777214,-1711267274,589,-24383349,16402119,2924800,-336050551,41714457,-15698944,76282438,-1996335989,39160069,-2096838781,1183515846,-129040392,-579485685,2242303,169370,637978368,-1593835520,1178140716,-955878150,16788998,-96040192,-2097140573,11838,65536884,-2090902013,-443874579,-884122337,1167087646,518818645,648140942,49120000,1562371467,1478413133,-1957345904,-661774612,1460202627,141986646,2375299,184841216,721778166,11725248,56485974,-15992693,1048799861,1962934306]},{"sector":10,"data":[4372501,309328,-26032,1183383552,2270204,922688235,748748834,-773795584,263648,1354771280,16777114,-62486272,16547459,-1705593484,65535,200951433,-1962576704,38272984,2242303,233370,-1577547008,117375020,-523173844,-133963567,82523529,42461271,-1996077429,-396950971,-1073020102,37554804,1024818176,276758531,721581567,-1202696000,-1706024832,65535,2242303,195482,772196096,-1962934016,1599997510,-1962742397,1297948645,503317706,1430622296,-1910575989,116163544,-13937065,2375225,1996437876,42330118,-166989685,2088971636,460652546,2506371,-15436800,-1207949770,-11533563,-1070922122,-6664112,-1962934017,922681980,1033502754,-1962934269,-2090901817,-443874579,-900899553,1478361090,-1957345904,-661774612,-2097140575,-443874579,-884122337,1167087646,518818645,1996478606,35514374,242532363,2242303,236954,112640,-1070923029,-1962742397,1297948645,503317194,1430622296,-1910575989,82609112,608076630,125042688,2244227,721712384,-2092962880,1946158718,108461841,-1962814744,1962281968,80118762,922685163,-6684638,-1560280833,-259325910,2242303,16777114,2924800,-523116335,2754051,-1082735045,-2090990453,-443874579,-900899553,1478361090,-1957345904,-661774612,-16222465,-6683018,-2097151745,-443874579,-900899553,1478361092,-1957345904,-661774612,-15958399,721712063,-15602752,1996426358,142016266,-1710852353]},{"sector":11,"data":[65535,-1962742397,1297948645,503318730,1430622296,-1910575989,82609112,108461910,288410,1958742784,674663185,105286400,-402642781,-963968902,-1070923029,49120094,1562371467,182861,1167087646,518818645,1448597646,-1962379637,-1705638274,65535,292864011,1153623,-1073020928,1048774516,1962934312,-339727612,674642218,957510912,1962944574,112645,-1070923029,-352321096,674692882,51230720,-1070901680,-778414256,1577058308,49120095,1562371467,313933,-940799147,11782,675185408,359923712,2635519,1342376120,2504447,1347469355,47258,1575324416,-1873273149,-326412987,-1579643362,-310181848,535137026,1439386973,-326898549,1988843012,41714436,1447785472,184592872,1027830976,913571841,1946157629,212263,1962882165,-26110,1183383552,-27883012,654073540,-1710852097,65535,-1711115009,65535,-1711115009,65535,1962871019,-26110,-1956773888,46292453,-326413056,1459940483,973024086,1962943038,-339727612,75399999,-625664,-1711267274,200,-166989685,915007348,1049296938,250282028,1178141835,-1962642172,-2095715386,-947190586,1975520079,574029803,15636992,-1108672512,-443850914,180829,1458342741,-1962641781,146692,54335860,1025078272,427032704,1946190397,8600842,45615732,-1207112960,132841473,-352320584,1589652226,-1034033781,50336514,117702657,50350080,117585921,50350336,134563329,50349312]},{"sector":12,"data":[17047808,56659200,17062912,56660480,117574145,50332928,117582081,50333184,117503745,50333440,134556673,50364160,117796865,50333696,117808641,50333952,17080064,52772608,117607425,50335744,117783553,50336000,117774849,50336256,117781505,50336512,117448961,50340608,117690113,50349568,117495553,18176,1167087646,518818645,-326903666,-11118812,1996426358,113502218,1088177801,-4716939,13101567,-388204801,-259324040,1946223862,-83962,-167725847,1954602054,48412696,1183666206,-1873799454,62580750,-1201441472,-1763049477,47364096,1183666206,-1873799454,61007886,-1947700160,63407102,-402098433,92866396,184702345,-1207601726,1810628604,-402229505,1166608200,139823366,175489547,-16615937,123004981,1183572459,71665928,-1996077429,1996425797,516393948,-26032,1183449088,-498693924,383927949,-26032,1183383552,1958743008,-599329252,-15633024,905904757,-16312856,1979648117,118286342,-337623413,17596422,1591494283,49120095,1562371467,576077,1167087646,518818645,1589958798,126494214,-1779937128,-153580794,91554055,-335544904,142016267,-1710852353,65535,-1962742397,1297948645,503317706,1430622296,-1910575989,149717976,-401967361,-661977504,1963001846,-149499,1996438763,-26102,1183383552,-61437446,661963275,435701447,-1005393152,1191180894,126494458,-16359740,-2010773946,-129594617,200822527]},{"sector":13,"data":[736392640,-1207702592,-310116353,535137026,113921373,-1873273344,-326412987,-2082959842,-2141845780,-2097148570,1946158718,209617670,721712649,-1200231488,1727463439,-153580788,16912007,1187507572,-1207959302,1727463439,-152007924,33689220,-1535109772,-990051826,1191118942,277121544,126363138,-939899137,64582,956712587,259914310,-1710459137,65535,201082505,-2096267328,2097216638,-96040168,351000823,-16228668,1183451206,126363388,-335919361,-96039989,49120094,1562371467,576077,1167087646,518818645,-2141792114,-2097149594,1997080702,1030159,-1962383625,243791576,91488770,-335544392,1030181,-1962383625,243791576,-327941886,-150990920,-259323802,34507904,105286146,34636936,-2090942421,-443874579,-900899553,1478361092,-1957345904,-661774612,-2147160957,-167768730,1954548806,178181,163054571,206473984,8380801,74694971,1206632491,-401836289,-661977892,1963001846,-18427,1187460587,-352321284,209125153,-16228668,-1977219002,-1705994233,65535,125091851,-134461813,-15668264,1183579206,105840390,-713703413,-2080618869,-443874579,-900899553,1478361096,-1957345904,-661774612,1443294339,484992,-2147072266,45614452,-1207702784,1317732361,2145485062,1942043392,-18427,1996438507,73066502,83292299,-1149951,-6683018,-1996488449,4061766,-2132904832,1190592036,309690374,-16419585,2078802804,192216836,-402033409,1183515762,-310157574]},{"sector":14,"data":[535137026,46812509,-1873273344,-326412987,-2082959842,1719665900,1996423179,142016266,-1710852353,65535,1039943305,343179264,-401967361,-661978132,1946290166,106873863,21495590,-2080618869,-443874579,-900899553,1478361094,-1957345904,-661774612,1443163267,263779883,-1947273472,243791576,108265730,-401698730,-2092499172,-428077570,49120094,1562371467,1478413133,-1957345904,-661774612,-1956975485,1451951686,-1505326840,-945269111,1702982,1589906155,-1505296474,509478,-244085,-1072956338,1996483701,175570700,380389005,35055696,-1995815287,1183648854,-397404500,1183384197,108347562,-369098824,1589903857,-1438217722,-167278554,1954589254,48740361,-1945483639,1996426334,175570700,380389005,30861392,-1995815287,1183648854,-1706027348,65535,2080375357,-1404663105,-754404968,-1966568480,194555206,-61961784,876462475,2137682994,825310589,842861684,1029141553,1031024949,1187484395,-1006604548,1183516254,1200170748,1204233729,637536784,168970183,1333798400,1996423436,175570700,380389005,23521360,-1995815287,-1039463338,1290357621,-62470399,-1008009066,754730695,-943920383,39386182,1187493355,-352014084,-62470226,-1477768864,-1057208633,-945755374,629210182,809343467,1037136947,-395037640,1949642813,959856078,266986868,-1404663041,1958742936,4537618,1312623988,1027175424,762576975,-939592215,195654,-1979294012,-2010710970,1996424263,175570700,380389005]},{"sector":15,"data":[14346320,-1995815287,-1039463338,-1058467467,-62470400,-722796543,16533191,-1966216448,194554950,1024292032,141819959,1946171453,-22484692,133973703,106873856,654067338,-16562296,1996426358,-1404662518,-1914154986,172394752,185357961,-351701566,-62470284,-706019320,-1733540214,225755147,1946169661,3292475,1676217716,106874110,25133862,-953584274,195654,-1979294012,-2010710970,1996424519,175570700,380389005,4122704,-1995815287,-1039463338,636160373,16533191,-2133464320,1951444094,-31397629,637951684,-16365625,1204233983,654311176,-16103481,-2084557825,-443874579,-900899553,-1957363704,49054700,185091723,91556422,-342245333,140428388,4161574,1589965428,126494216,184436360,-12225344,540805190,977012852,742130804,1589912437,130426372,-16520448,1589905478,1065362952,653554720,1946173312,138841019,-351644021,-28931556,887640216,73319426,637814527,-1360328824,637820612,-352319546,1575324636,1426065602,-326898549,1187468808,-956300804,65094,637820612,1352140682,-1744699672,1946173757,4406549,1279079284,1026782208,947126352,-369098824,-222429047,-62470398,1015021568,-1003523023,1191117918,126494212,-924299112,1144669697,-337152769,47365847,-490807061,-28915966,-689241984,-956106562,8453702,2122565611,276037884,-16490812,-1977220026,825071623,-96040704,637820612,1966751616,71761667,16416387,1589941884,1065362948,-2087881472]},{"sector":16,"data":[1946222206,178181,163054571,-96060672,2011759485,-28931073,1593460227,-1034033781,-1957363708,71759596,-1190103936,1183514639,8332548,-1543118345,-1190270206,1183449103,-136041980,34473441,-1034033781,-1957363710,4241644,1354771280,-1710983425,65535,-796143061,-443826133,180829,-1275051,-6683018,-1962934017,79846885,-1873273344,-326412987,-2133291490,-16774810,1183451254,-1705994234,65535,-1962742397,1297948645,503317706,1430622296,-1910575989,157712600,142016256,-1710852353,65535,-1962742397,1297948645,503317706,1430622296,-1910575989,157712600,142016256,-1710852353,65535,-1962742397,1297948645,503317706,1430622296,-1910575989,124158168,108461824,16777114,49120000,1562371467,182861,1167087646,518818645,1719720078,1996423175,-26106,-310181888,535137026,46812509,-1873273344,-326412987,-2133291490,-16774810,1996425334,-26106,-310181888,535137026,80366941,-1873273344,-326412987,-2133291490,-16774810,1996425334,-26106,-310181888,535137026,80366941,-326413056,71731798,1022397336,-1207599775,48955393,-1072971733,-963967884,1150092267,-443851040,302170717,-1811873024,1509951236,-1107229952,16778752,536937216,33555969,-1375665408,50333184,66304,67110402,-402586880,83887618,335610624,100664840,1392575232,117442051,-1543437568,134219267,-436141312,150996488,-1040121088,167773704,939590400,184550920,1543570176]},{"sector":17,"data":[201328136,2097218304,218105352,-1644100864,234882568,1375798016,251659777,-603913472,251660039,-218037504,285214471,0,1167087646,518818645,-326903666,-1957275852,1183518326,17841420,289215348,-385649407,322765149,-385649407,-706150149,-1607008511,112643,-1202695527,1385758722,-26032,-125108224,58064651,-16722711,1459855414,16777114,200837888,-385649153,-1705574207,65535,-1996480507,1451871814,1975651280,11266307,-1982970229,1451875398,-700004642,-597769139,651576970,-1977219280,-700043257,1021069055,1458205978,1342177720,-3115265,-1030041994,-16777216,1996476534,15768270,20971520,-1202270650,-11534235,1996476534,-25906,569049088,34342654,6600790,19634768,-1202716672,726664193,1996443840,-831062064,85658,-797507840,-1697745153,65535,-834272960,651058884,1964654464,-6662201,1459618047,16777114,28857856,-390574080,-1070903293,-6664112,-1207959297,-538378239,1689802240,-6664192,-1996488449,1654773830,-666486528,1996481908,67811544,34381904,1346954282,383796877,23435856,1996423168,67352792,34381904,1346954282,1347469355,96666,-663290112,1342440120,-1924087765,1343676486,16777114,-1952388352,20777542,1033400832,125173762,1946182717,1452075801,1342177720,16777114,28857856,-6664192,-385875713,2122579829,57934344,-37655,-1207721930,1385758721,-26032,-1706033152,65535,1456227977,16777114]}]],[[{"sector":1,"data":[-767129344,-864616624,16777114,-763953408,1342177720,1354771280,-26032,-11141120,-6630794,-16776961,-6632330,-385875713,-1070858467,-310157474,535137026,181030237,-1873273344,-326412987,-2133291490,134206,922690677,28836768,1347590400,-1202667477,-4521985,-1706011905,65535,34342598,218547712,-310181886,535137026,382422365,-855637248,-117440255,-83819721,1157629953,-1375665408,1509951232,-218103040,436207873,-1107295432,-1358889215,452985600,587202817,-1728052395,-1308622591,805307733,-436142334,-452984063,1056964864,50397989,318768897,939524864,1459683074,-1560280320,1476460289,-771751168,1526791936,-1560280320,1543569152,-369032448,419432449,855638528,-436142334,-654245119,754976769,1040253696,1006634752,1359020800,1023411968,1610679040,1040189184,151061248,1056966401,-1006566656,1006635009,0,0,0,0,1167087646,518818645,-326903666,205949822,-1995549045,1451852870,-1907964026,-1039466496,-2031549579,-401698815,1183385368,-1773761150,1183535126,-1873788798,113895438,91537419,350863403,-2074164222,25133094,641168698,211289994,6368544,1351108233,1692929680,1958742790,-2075753509,-1773761278,1183535126,-1873788792,109963278,175423499,-1870498049,104982542,1187494635,-1207959148,1203375140,1183399938,-1839822448,646209220,1962950528,16181507,-1399172346,-1996488702,1996458566,-2072576122,719851152,1975520006,14346499]},{"sector":2,"data":[9717447,-1975088384,-1954265597,1183417942,-1839822448,646995652,1560248192,28837237,721611520,-1807316544,-7715189,-1072985522,1589918068,1200236176,-1941534465,74721852,91569980,26494663,-1937866752,-2146667428,1949273214,-1937866746,-2095483590,1962969726,112645,-1070923029,-2087827831,1962972286,-11998968,-342864129,-1904311377,-16550912,2122551366,108331150,9076355,1325349500,-1872837488,-2012771802,-970552250,1589903367,1065363076,102069248,-401698733,-1073019531,28837237,721611520,-1807316544,-7315772,1183486022,126363276,9731715,-337050763,-1904311298,-16550912,1996460110,209125134,-7178497,-6647690,-1879047937,93513742,-1971173751,1090814534,-963230072,-1925540026,1343658054,1082279563,-401698736,2122515767,460587016,-15698177,1996425334,142016272,378947213,8185936,-6664110,-2097151745,1946195070,176063329,-10783744,1996427382,67483658,1354771280,664424528,-16777214,1996427382,68073482,105286480,1354755877,-15829249,1385827446,-2130706430,1074792038,1996432500,175570704,1342443192,-2147072373,-1202683700,-4584412,67071,1375785603,59087440,1183514624,49120148,1562371467,838221,-2081649835,1187452140,-16776962,1996425846,-26104,1183383552,1183666428,-1706027276,65535,737691275,1183446086,-59310100,16777114,-297367296,-1149185,1996424822,108461828,-1710983425,952,1357923977,186522,-330941696,2122524534]},{"sector":3,"data":[2138374398,637820612,-1986525302,1996485190,-1202518290,-1706033145,65535,-2081667543,1962994814,-59310246,-1695648001,65535,16678531,1325351284,72285956,637820612,-13760570,1586168910,130426372,72285998,637820555,-13760570,1586168910,130426372,72286044,637820555,-12974138,1586168910,-230258172,-1962440666,1451951174,-2094863610,-1962474426,1325396038,2126515184,73319436,637814527,1968979840,-28915734,1005125633,1575324671,503318722,1430622296,-1910575989,2028766168,209125206,-1207535873,726664201,1347440832,239770,-163149568,92127243,-957759445,209125120,-1207535873,-11533302,1183708790,-1706027374,65535,-1986902387,1452051014,-1706027380,65535,-2138552695,1968935550,112645,-1070923029,193873545,-13863744,1325369926,-2005496952,646602436,1560232134,764640896,1191140725,-2008088694,646602379,973162438,38258214,-1958155520,1451985478,-129594996,1392137865,84122192,1183383552,-1004934256,-2144929698,661925439,110120703,-26029,1183383552,-94991880,9469571,1589961087,-129564680,772261414,653811339,-16775226,1996425846,-1938358520,-1702201601,423,1586382475,-1962742397,1297948645,503318730,1430622296,-1910575989,1022133208,-62470314,1996488703,-26104,-1031077888,1342719625,1342600959,-1710852353,65535,-972267893,-1929367225,1343671366,-16222465,1183516278,2145681418,-401698736,-1073020496,-1813445772,1354771200,-1719729480]},{"sector":4,"data":[-6664110,1342177535,346266,-96040704,516179655,-360807680,-11176914,1183648374,-397404468,-1073020737,1190545012,762581217,-1950068993,1120322678,1988844492,-868053564,-1483059178,50331648,1183433798,-1012794,1120323142,1988845004,-868038970,209125120,-1916504437,1343671362,408474,-62486272,-229757,1183649404,-1873799476,22603790,-1938505717,-1694861569,65535,-17006973,1190596724,1950351370,209125129,-1996459544,2122579014,209059580,-1207142657,-1705967618,65535,-972267893,1392587079,1347469355,16777114,142016256,-16353537,1996425334,-26106,1183514624,-310157572,535137026,147475805,-326413056,-150803325,-2147481530,1589907828,1200236036,-1981535723,1183186502,-1207602168,48955393,-443826133,442973,-2081649835,244322028,-1996382488,-1070861754,-401698736,1183383925,-129579274,-112802213,-96025043,-79247840,-62470611,-45693347,-196688128,1105920000,-1863026945,21751822,1692929680,-196723967,28847221,1996443648,-25868,-1073020928,1183456372,-2009004812,1996487238,-129594108,-6664170,-1996488449,-1072955834,1191119740,-163148812,2096383545,-227082313,48762512,-28931327,-1034033781,-661913598,-1957345904,-661774612,-1960945834,1586367574,-853887986,105810721,-1912056181,1320421982,41034189,1595916339,49120094,1562371467,707149,1167120524,518818645,1465309326,106335006,-1274519922,-1272853222,1914817871,532689666,-310157729,535137026]},{"sector":5,"data":[80366941,-1864856576,-326412987,-1948742114,246679126,-467000883,-1962742397,1297948645,-1946156342,1430622424,-1910575989,1455759064,-851725306,855798305,-310173760,535137026,80366941,-1864856576,-326412987,1457032734,2126782039,-65075704,168183435,-1274645056,-31339239,-1328510272,-141841828,567101364,-1070398862,-2090967265,-443874579,-900899553,-661913594,-1957345904,-661774612,567089588,-310123478,535137026,-1932833443,1430622424,-1910575989,106335192,567086772,-310123478,535137026,46812509,-1864856576,-326412987,-1260876258,706858265,49120228,1562371467,1362765,43319299,939065345,69599491,5046279,86573059,34537727,92340227,34603263,102891779,65537,91226115,34668799,72614147,5767175,68026627,5898247,76546307,327682,93454595,393218,45416707,5963784,49020931,941228033,79888387,11337983,9371650,203685889,42205187,1629552641,75366659,1376263,41287683,5964031,32178179,6029567,34275331,6619391,80281603,928645121,0,0,0,1167087646,518818645,-326903666,-1957275894,2088962166,74711050,317456171,108461910,16777114,-774337792,945554403,2122923915,-1707802628,142,1183434499,-94466824,2122915051,-128021508,-467007606,10525264,-1073020928,1191117940,1191135224,2117683192,-2130682,11639348,1183514624,-2090901764,-443874579,-900899553,1478361092,-1957345904]},{"sector":6,"data":[-661774612,1443163267,-16222581,-26060,1141047296,-62486254,126539915,-1705974742,65535,108314635,18760843,889128518,16777114,105286400,49120094,1562371467,313933,1167087646,518818645,-326903666,1988843030,-62470392,250281994,1979469567,-339727612,-26073,1183645696,1448089322,1342243512,112720,-26032,-1073020928,1183570548,-754404882,105253856,49120094,1562371467,100977229,553648896,151060224,1308623618,855703296,-100662528,-1207959296,872481570,134219520,1711342336,150996736,-436141312,486541056,0,0,2,524296,16842754,0,7012414,8323179,6488157,62,1745838350,2081389338,1628003677,443753476,142545012,1779391355,677799435,1749558349,2050036031,1677818645,978913802,1968513365,1697188135,1778611216,557845773,1545091155,1728467570,1864200734,675556719,1260741700,1261980207,424299044,461244525,1947760955,1645245720,575088738,1394688002,1496734262,393614169,1383208825,1964602640,30996,660483149,1177177863,778915107,978395970,1930583903,155871745,208342117,1768496489,1345608251,1061816617,557852747,1897996621,688481552,326765677,1530028128,930304824,1583231582,1811968531,239823621,426446434,1077041689,1031428649,625616456,811479362,1964733488,259792213,2105348988,1210862911,843128936,641806150,1628656981,621112832,1092098157,1428575008,1014256701,844966237]},{"sector":7,"data":[1730750784,1913350150,243013970,1281431677,1846245660,828249108,1545025369,1445281849,376642646,2048163126,743251229,1578448217,1379228466,690576190,1113721965,2081908494,896561173,1430024529,640046393,142348401,1695180072,896692759,1934833236,1244616765,4868646,1164247909,2081911829,626474876,1327447884,1228627498,527448634,1765349751,1762028038,862019850,1327316306,1244022570,241642283,2064859232,644705562,2035889479,1378967082,511392057,1828999280,811885571,576405329,1260672514,724261180,140906081,1830715176,67397894,809902935,1294103893,1548109346,2004055149,1802398835,1802134381,8336,1767108608,25978,1867378704,25974,1665789984,28271,1868230704,-2147455633,1816391776,6648687,2004055149,552624256,1937009920,1852601207,1784900971,-1874853888,486555652,1124109568,0,262148,3932240,65636,8605858,134242560,402661376,25856,-2108686080,6225920,2228230,6619164,1342308359,1509949570,771762176,16782592,16777216,32848,2004055149,1802398835,1802134381,1953387784,1701606505,1917126244,561147762,107695874,1668178243,1090874469,1953656674,1952797189,1225161074,1919905383,1700332389,1867383411,0,1828716544,1937208180,1852397343,1937207140,1146309920,1293964111,1768448865,1142973806,1852141669,1953391972,1174798336,1095586383,50331988,39016787]},{"sector":8,"data":[1167087646,518818645,-326903666,1187468840,-956301080,63046,1183432747,-599356962,-1980610935,1183439430,135063768,705709706,-1058516764,273057799,705578634,-1259843356,239503367,940590730,108334662,-385873992,-1779956778,-330921721,705578634,-330941468,45614706,62974208,1342202040,-1727790920,312102994,-1996488703,-1072957882,1187448949,-385875480,1996424035,19503862,1183383552,-564753956,-428555765,705578634,182997220,-49911,-1073018500,20778366,-948866048,583750,-1207749911,1183383555,1292792,387575,-364476160,705578634,-1070903068,112720,-362902704,-15894529,1996480118,133425372,292864011,-1996488008,330954822,99219200,1183383552,6338794,-128021680,-2020875311,151322720,-754732800,1372138472,-26032,1183383552,1975520242,-10557176,-352320328,-227082298,16777114,-666466048,198858377,-385649214,1586233156,138906602,2012729899,-96040691,722552715,225966034,-1947318647,-768929465,-1995606025,931914838,704989066,191363044,1200343179,-1311667450,65065733,-896841530,-151530965,1325647875,-61961981,166217415,12904704,705578634,1996443876,-461963282,-1417589,1996426615,-596181026,185020648,-385649216,1183514755,138808070,1183518836,1356396526,184966911,-385649216,1586168355,222792682,65955575,1183441990,-62485516,1945388601,-398014712,82378756,-196703486,-337230199,-362902730,704792458,-1949791260,1177282118,-137221124]},{"sector":9,"data":[-1992277775,-768872378,-150992711,-1328903183,-1948200447,61993054,1992616915,534232,-1947842817,1200351838,-196738291,2011579963,-95486020,-1417589,1183573062,256326116,1187455863,-16776988,2122575430,359923962,184960651,225708102,-1149185,-1073019298,-2065104011,-92372223,-385649664,1187512094,-1979711256,-467005882,-361300144,1342226616,-1207584024,-397410302,-1061680911,1996443648,-596181026,-1957642197,1200286302,-2132530678,-397344828,-12777006,-1206225665,-11534144,1996480118,112860,-18352,163113040,1979711293,-398014712,485031943,-431569151,1156251650,1342226616,-2197761,1996479606,-431584282,146395691,-1947076864,112842,1586225363,-754732570,-663304981,705202726,1959298541,-542715,-1070923029,157870160,1962934077,-431554640,-772252021,1619495907,994066432,-1401428410,1342226616,-2197761,1575541878,-49912,1187482484,-1962934042,1452006470,-532248098,-337488247,-530660339,652232447,-16775226,2122442310,1912733926,-431568916,619380736,705578634,1996443876,-596181026,1342177720,65422987,1342230534,1074081000,1021903733,-431554561,-1947574645,105351991,-523041359,726189571,1006041042,-998775226,185222795,527699014,1342226616,705578634,1996443876,175570700,-2197761,-1612129162,58015750,-1963001111,-467005370,239503952,-361300144,-2197761,300473462,91570183,65554119,-599356672,1960723979,-159973624,267162,-159481088,-16223232]},{"sector":10,"data":[563803766,-1962934268,1175181382,-16223014,-6622602,-2097151745,1946219134,-227082488,16777114,-398030080,49120094,1562371467,838221,1167087646,518818645,-326903666,-950642912,60486,15746759,-1983894784,1183441990,138840802,-397351894,1183318935,105286152,-397351894,1183318923,1357130246,-955959064,-983994,1342202040,-11485141,1939537014,-1996488704,-1072959418,1859193205,-58817540,-2115930880,67173502,1996427890,9083632,1183383552,-464090654,141935115,32261831,43182336,-24906197,-1202160381,-1202716520,-397410144,-998044471,-773944572,-1900544029,10532864,210298960,-1979399037,100665414,-1598553952,-1070903296,147253328,1038632585,158728191,-1989917555,1240067142,1979058946,-394854647,-1995803160,1996485190,164817128,-1968968890,-467007418,105286224,1354771280,-1804545,-974593418,1958742789,-330905848,300482563,105286146,1346429994,1342226616,-1996286232,-1072960442,-102169740,105286145,1346429994,-1996305944,-12715450,-955746817,191558,-1962811415,1174663750,-768915206,-1980074249,1183510086,1357130246,-1804545,28893814,922701824,-152567600,141901826,132925127,28240128,1342177720,-1006249752,-1977163170,-532248569,74760202,896918844,652369604,2129792,-2144991372,1977950335,-1946801372,-297387578,-957807753,12630016,-461963440,-1914538241,-397409724,-1073019348,-347721611,-1908998178,-461963520,-387811585,-998047358,1975520006,-1875443943]},{"sector":11,"data":[-498693376,98850443,1347551264,-2097059352,-1073019196,1187448948,-385874452,1589903660,1200301794,-196703974,977767206,736511625,969313270,1601629766,-1980479861,1183578182,-163149338,-1962785651,-125945352,2117666164,1174631926,2122570731,326434808,1342226616,-1804545,1996481142,94562552,-2080881015,1962931838,12630035,-461963440,-1935617,-1981221258,-163149563,-491901,2122561141,-1334444042,738164713,10008822,10532944,183494736,-1962621821,-1846818,-1207923017,-397410144,-998045010,105286148,10487296,1342218424,1174897128,2080636547,-2081018932,1987904510,1342216376,1342218424,-2096450328,-561314620,-1207966767,-1598553970,1944604672,79987466,542346,-1207918586,-1202716520,-397410128,-998045043,-773944572,-1900544029,11581440,172812368,-1979399037,100664902,-1598553936,-1330098176,-2071310336,-467009388,-461963440,-1935617,-974586762,1958742791,2017758470,1191032041,1183548907,-465171486,1996425332,66427632,2122514432,141820144,-1695516929,1027,1592542859,49120095,1562371467,313933,-2081649835,1187448556,-2097151748,2097937534,73319499,637814527,1183319946,140413950,-1979169025,-96040953,678768188,2122520043,360516604,-16490812,-1977220026,-28932089,-2130950401,1948319358,140413925,-1979169025,-96040953,955926154,192216646,201096835,28838516,-16258304,-1611924410,-443826133,298697565,-1060060976,1073742629,-326412861,1175109683,-1274710780]},{"sector":12,"data":[1075957017,1575324488,-1275067710,841075993,-1957313564,72780524,567086772,-443816910,180829,-1259566251,72780342,41034189,-443817481,180829,567086516,-326412861,108432214,1317668638,1854625032,1317545476,-850152448,-1956750047,113401317,-326413056,-1944168618,-1976388391,567084630,1975520152,-1896641779,75402177,-67100487,1595909363,1575324510,1426064578,1465314443,205949470,-1962385723,1451951694,634213636,-796172965,486539448,1595867136,1575324510,1426066114,1465314443,205949470,-1962385723,1451951694,650990852,-796172965,486539448,1595867136,1575324510,1426066114,-326898549,509040136,567095476,-990165368,872154238,139365065,326566460,1622692126,869830144,-203304458,857692581,-1983869185,1183644798,33602558,-1978906998,-22345114,-1817472061,-164366110,918937230,1686765688,-110721020,-1979425656,1720190820,-2142194440,41226235,1686656180,-96025081,-1979337724,1589905478,208571132,1451884977,175540750,12063693,-1273335296,138840580,-1963172156,28380270,-1978771830,332204662,1929380024,-95486456,-4667531,-111244545,-1979425656,1552480350,-75595769,-988842238,2126775414,-1966525444,-506394546,1595909619,1575324510,1426066626,1451945099,369080324,-58715187,1948152321,66879521,397678451,-1341892982,1930677507,117211143,-286587019,-352321096,178189,12060907,-1207702784,-443809793,180829,-2081649835,1465275628,-1927342562,-678701442,-972522099]},{"sector":13,"data":[-1269366779,-14562022,-387447178,-1928915203,-678712194,-16398810,105236006,130515720,-1430192388,-919388240,-1426912335,567087540,75402078,-617350137,-1409283143,41164860,178970507,-502434624,-1430244366,74767115,-1442742387,-947183866,1208239659,-443851169,311901,1458342741,241077079,-16776776,1996426358,74907398,276299600,1979582696,-52055959,-1442545980,-1440757885,505399171,-1190627643,179044363,-1442614080,82049250,-1426906960,-1442271201,-1274361981,-1960719060,-790572863,-754732576,-1413084448,567093940,129821057,78766474,-963975470,-1039474479,-1413467221,1586211755,1996439566,108461836,1342469887,-401573889,1583349189,-1034033781,-1957363700,861361900,21466587,-15960321,1996424822,-397193212,1249246589,185104011,-1272744458,173443894,567132926,12466290,6339328,-1946157128,992731919,-2096663350,1128469446,2126836203,192777476,-67103815,-1070357261,113578,-16091393,1996424822,-397389052,1583349081,-1034033781,-768409590,2105655691,1913648653,-136261369,132842101,-1056708399,50492919,1438844485,113765515,-65380,604259978,10396163,-1034033781,-1957363710,49054700,-1667147946,1718894592,10356470,-1268812798,-2011050704,915144518,1586167964,-1965935864,-1292203241,-11054334,1996424822,-396996092,1968962789,-24947911,-2145553151,1912864638,-1260811241,1121422130,119415245,194566542,637892032,-15251514,-1965935781,-234680489,-11074894,1996424822]},{"sector":14,"data":[-396996092,1583348905,-1034033781,-1957363706,-1957210388,1317735038,-12392444,104460939,661913756,1996445520,108461832,1509909480,92943477,1358955194,142016336,1376155391,-62658479,-1994427047,-1006593010,-1960442274,226328832,242421750,17057527,-1325108224,636015364,-796192769,1930249529,-18429,-443851169,574045,1458342741,209619799,-402239861,-225706280,10225209,1464870772,-16091393,-102233994,1198873086,45745546,-11513600,1996425846,-397323768,1968831449,-1676768974,71731968,2105659955,1930425869,-1241206505,105314288,108265473,-522992941,-755562773,-755514845,638082756,153489441,1606431488,1575324510,1426066114,-1957237621,384304246,-1270807301,1174702394,6076486,-1270479735,-1205744313,41091071,-1956720393,46292453,-326413056,-1274784117,-1205744325,343080959,-628371209,973176704,126487157,-397393620,-1070335268,-1034033781,-1957363710,72780780,-851246920,-167415263,192221377,567097780,-4717197,855829503,1575324608,1426064066,1452010635,-851790844,-18399,-789118350,-1034033781,-1957363710,72780780,567089844,1317788467,139889414,567103156,24363915,1575324488,1426065090,1452010635,-853887996,-1260702943,-1960719025,1208054723,-1034033781,-1957363710,106335212,1183464884,1931595012,-18429,-1034033781,-1957363708,106335212,-851246920,-2146602463,1317660641,-1194773756,567100161,-1962518901,-1040841650,-2147257216,1018461921,275915213,-919349109]},{"sector":15,"data":[567099572,125027211,567099060,-1946157128,79846885,-326413056,567095476,1451973556,1929591814,1124120585,326312397,1317747892,1914817796,-1260877046,857853246,-1207702592,-443809793,311901,-1947432107,-919403434,-851246664,-1962184159,1102316630,41034189,-443826125,180829,-1947432107,1317735006,106334984,1183466164,1931595012,-18427,-443821941,574045,518818645,-989176181,1068762710,-855355765,855798561,-443867200,574045,518818645,-989176181,1085539926,-855355765,855798561,-443867200,574045,-1947432107,1317733462,140413702,-851312456,856322593,-851397431,1942063905,-18429,-1034033781,-1957363706,73305068,1946437375,-851528695,-1157402079,-1014235137,-1034033781,-1957363710,-1101572372,-24379393,1996472371,-1578610674,-1957399810,209125360,-401967361,1198718636,-987826037,1317733974,-1260483836,1914817855,-473396439,-1260418290,1914817856,1958820637,521661413,12115595,1914817879,-1193309426,567105281,-1070398094,1461653739,-1946188824,209125368,-1191256600,1448148991,1476359144,1493135336,-443851169,836189,1458342741,73304919,-768358093,-851312200,-1960545759,872057840,-1194183735,567099906,-896854670,-695742325,12111751,1914817858,-1949922554,-1207571497,-796131329,-443851169,180829,1458342741,140413783,-1958608712,1317733462,1914817798,859878408,1931595209,-18429,-443851169,442973,-1947432107,12059742,-1960719017,-1207602239,-796131329]},{"sector":16,"data":[-1034033781,-1957363710,140413932,-1962652021,28837462,-1205744297,57868288,-1946157128,113401317,-326413056,-1958543176,567084118,57917835,-1946157128,46292453,-326413056,-1958542920,1451951182,1931595014,-18429,-1034033781,-1957363708,1431787244,-1962510709,119407742,-2131938308,1966735740,205958152,-345953248,-853953532,-19887583,-1270807358,-1151882438,76164956,812959546,745849658,-1934965878,-1929934887,-1260876096,1914817863,-2015785405,-1178586377,-1359806465,1166681679,1959213823,1958951431,-1430025725,-678704845,1958951596,1975990788,-851819226,1508056181,1959394895,1341819879,-12219866,-596327622,-210421188,-339725480,-1014329230,181267370,1011184832,1022195232,1021932603,1021670444,1021408380,1021146155,1020884028,1020621886,1020359714,1020097627,1019835485,1019573309,1007055457,67270522,-1430126880,-1871368644,-510999042,-1997812482,1946287488,-1968867580,92808929,-930364282,-544498973,-651437525,-802465717,50546573,1572996033,-443851169,311901,1475119957,-1962467754,-678755202,-4603853,1336865535,2123102091,-1176532218,-1359806465,-1948649663,-202142722,1589808036,1438866783,1448602763,2123040542,871860998,-17984,-146690318,75402201,-1527523445,1600045707,312157,75694339,983041,123994371,1114113,77725955,1179649,123076867,1245185,0,0,16843264,4194816,33423680,16779264,0,66050,-2147454974,130818]},{"sector":17,"data":[131080,33554432,33554689,23593024,150995708,256,33685504,1879179265,-50147328,589826,2,16843264,14680576,133761376,33558272,0,20644153,23200095,2371,1112359497,1127108425,1224756559,1329876290,1329802835,1329791053,1312902477,1329802820,7077965,8519799,1799,6044225,65535,1667845421,1869836146,1461744742,1868852841,1293972343,1397703763,1702380832,1769239907,1092642166,1768714352,1769234787,28271,1397052175,1313818963,1297436229,1129271888,1141506056,1314345545,1330794564,184550467,1213481296,1346653783,54742866,1313213184,1380926017,1330794580,184551747,1263749444,1346653783,37965650,1313213952,1380926017,1196180564,1129271888,1192099847,1313428549,1314344774,1330794564,234882371,1397966163,1464749897,1380992078,82767,1145980421,411468,0,0,0,-1020541813,-1996153181,-1996485594,-1560277466,-1598554102,856051983,1347572434,16777114,190383872,-352094784,-1598320557,-795936241,1409016715,-6683055,-1912602369,378283712,-1993998332,117441062,-6661287,184549631,-1993771840,1459621902,1381172822,-1705983949,65535,-26025,-1073020928,244321908,185125352,-368741184,65535,-850591816,-1873273311,-326412987,-2082959842,401081580,-838416638,-956301056,64582,184960651,712247366,637951684,1946173312,4241441,8435792,-26032,1183383552,1958743036]}],[{"sector":1,"data":[-11526643,1996425334,-26106,1183514624,49120252,1562371467,313933,-2115204267,-956264212,65094,503369912,18528336,431509534,-1924129279,385840774,8435792,33790544,-1073020928,-588709003,-129579264,-2037579775,-2037776522,-1769144462,-1142292620,1923007488,126494463,-9402744,74719292,108342332,-9271553,-1631262741,-2144927886,57999423,-1962895895,-1983738685,1451883078,-2146767876,754938046,1191121780,-94452486,-2012771802,-1728089978,1996496957,-94452506,-2012771802,-1073023418,1191118708,130426618,1958149888,1924595711,-125926401,-1207602176,65797950,1358905272,164506,1958742784,-129579249,1187446784,-352321026,-96010493,653942468,1948270464,1065363188,-972786388,-2144537018,1965880958,-129579259,1183514625,-61436934,-9271671,-9136503,-9265468,4161574,954794868,13678847,532172830,-1202708991,1344143646,-9009523,-2135404522,-6664192,184549631,-385649216,-2037579629,-2037776522,-1769144462,2028732276,-9265468,-2012771802,1023373446,1006924832,-16354004,-335580538,1923007719,1065363199,-1957334016,-1983738685,1451883078,-2146767876,754938046,1191121780,-94452486,-2012771802,-1728089978,1996496957,-94452506,4161574,1191118708,130426618,1958149888,1924595711,178431,-26032,1183514624,-61436934,-9271671,-9136503,-9265468,4161574,2078868340,-28931073,-1017256565,-2081649835,1448553708,-1705983957,704,-1207837021,-1706033148]},{"sector":2,"data":[65535,721735331,-6664000,-1996488449,-1705978810,65535,735463049,1996443840,-25900,1996423168,571606,50174544,-459079680,-696844542,1342180024,199834,48931584,-1193904385,-1706033138,794,-1177127169,-1957625844,-25872,-972881920,2097152829,-905525498,-16777216,1183700598,-1706027304,65535,-1546107253,1183515422,13149152,52299265,-1545451893,513869090,263427,-16556381,62445174,573503232,-1037330171,-930350895,-150991432,-1727716818,-120470997,1346421035,1073946273,-6664128,-1560280833,1996423878,-6663978,-1929379585,1343682630,1347469355,-150993992,-1727716818,-120470997,230213771,573503232,-1037330171,-1054082863,52339024,-56995776,-16777213,1183700598,-11528456,-1711153610,65535,385369741,1354771280,243792,86126327,-775804007,-1194816520,787939341,731448610,737726914,513888449,-1706016765,1104,-1915324673,1343682630,80623359,16777114,52338944,-775804007,-1578071048,731448610,-1946627646,-129593864,1448562710,-150993992,-1727716818,-120470997,230213771,573503232,-1037330171,-1054082863,-1924085973,-1706032828,65535,-1915324673,1343682630,80623359,308378,52338944,-775804007,-1947169800,-788192706,-129593881,-1923657706,-1202651324,787939331,731448610,-1946627646,899272,86126327,-775804007,734079992,1150111943,-1147514878,-16777213,1183700598,-11528456,-1710961098,972,-1697220865,65535]},{"sector":3,"data":[1342182328,410266,1975520000,112645,-1070923029,184554147,-955747136,189958,722594560,12079296,1347590527,327322,48669440,-1202667477,1385791234,-26032,-1834811392,1173507,74825739,65781803,1577058744,1575324511,-326412861,1443163267,16664263,4241408,1751120,129407568,-259325952,-1996298591,1153896004,-1593835504,1149829594,16300042,-1944697719,1153898588,-939524350,-64444,1344194187,361626,1975520000,11856131,-1996431176,1552684612,184862488,38061824,1153957887,-1946157308,-1706025274,1451,58048523,-1207923223,1149829354,408718358,132295,-16628537,71616511,-963903489,-811970530,184549381,-1201048384,1149829348,408718358,-16628537,71616511,80216063,-963969013,261771294,184549382,-1203407680,1149829336,408718358,31078143,-1728052808,-6664110,-1996488449,80153668,1153892355,-939524350,-64444,17974471,340051712,-963969024,-6664162,184549631,-955943744,130630,-26026,1183514624,-443851010,1478411101,-1957345904,-661774612,-951915389,16829446,440320,105814608,1319305216,374786,-26032,614662144,-633929982,1226753,-1102672560,515395606,-694530048,184549382,-385649216,1996423654,1354771206,16777114,-599357184,1354771280,-4698032,12079359,-1365618679,184549382,-385649216,1996423614,1354771420,381568653,131119184,16824400,-26032,-1073020928,-1612119179,105286401,-1878859101]},{"sector":4,"data":[65988622,31078143,1342183608,503490232,2013264,116628048,-1073020928,2011759477,-633929983,1882113,32946256,683167774,278548480,184549383,-385649216,922681690,498598362,649613312,-1202708989,-1706033102,1837,58048523,-16695831,-1207838154,-1202716649,1344144224,1342190264,477850,1975520000,18934019,31078143,1342182584,503498936,3323984,124230224,-1073020928,65602421,-633929983,1161217,78952528,347623454,-2070261760,184549383,-385649216,922681574,616038874,-1866969088,-1202708991,-1706033087,65535,58048523,-1711224343,65535,77596358,-704198912,-956301311,16969734,-2113485056,-1207959551,-1588592576,-523173698,11967056,-1633484800,1975520004,9758979,503376568,19183696,-1070903266,1380974778,1347440720,108461904,-633929904,-1706012671,2063,184882851,-1201048384,1344143588,503391672,-1161811120,1347571712,1347440720,1342600959,31078143,983191632,-1560281080,-1073019702,-524796300,-1202708992,1344143654,817545259,1347441232,-11513776,-11532682,1342298678,-26032,-995950592,1958742786,-26093,-6684672,-956301057,52230,112640,-1962742397,1297948645,1426064074,1996483723,31373316,178256,142776912,1996423168,80656388,178256,143825488,1996423168,48674820,178256,144874064,1996423168,59947012,178256,145922640,1996423168,52344836,178256,146971216,1996423168,86161412,178256]},{"sector":5,"data":[148019792,1996423168,13154308,178256,149068368,1996423168,48543748,178256,150116944,1996423168,48936964,178256,151165520,1996423168,46577668,178256,152214096,1996423168,56539140,178256,153262672,1996423168,1226756,178256,154311248,1996423168,13285380,178256,-26032,-443875328,180829,1167087646,518818645,-326903666,-62470364,1183514624,31105806,16402119,209617664,-954895104,67142,-16091393,244320374,-1980296472,116128326,-401836289,-4653335,-17665,1996443730,161323534,245563392,269912325,-18427,1392508858,242679632,636058,38839040,38934153,-1157627976,1347616767,-1710328065,65535,-1996154205,-1593500650,101385486,58000656,-1593784087,101384784,57999954,-16728855,-1207838154,-1924136938,1343675462,1342185144,419738,1975520000,10479875,503371960,-599356080,-1070903274,1375784122,1347440720,1342203064,1347469355,1343125247,132422224,1183383552,1958743036,-868318389,1148518400,818819,-1410846347,1958743030,105301765,2122514434,527696122,519718539,112720,26843728,-1073020928,1187448180,-16776698,513473142,-16777210,1996487798,-26106,669712384,-1202667477,726663192,1347440832,-26032,1048772608,1946157260,-58817778,-16223232,-6620042,-2097151745,1946221694,-868318452,91553792,-352321096,-2084558078,-443874579,-900899553,1478361098,-1957345904,-661774612,-16061309]},{"sector":6,"data":[-1711087050,65535,-1191557495,1344143568,503378104,19380304,1183666206,-1202710794,-1706033150,2887,209043467,-1191545089,-1202716620,166395905,-1191545089,726663220,-6664000,-1207959297,1344143626,503392440,1354771280,731802,78553856,503384760,19839056,-1070903266,-26032,-291307520,17479682,884494366,-1202708991,1344143632,62410782,1637502976,-1207959541,1344143626,503397048,18135120,1344163870,1342178232,753306,17479680,1119375390,-1202708991,1344143680,385631885,178256,195140176,1183449088,18326268,503384760,21674064,1220038686,-1924129279,1343683654,1342177976,66202,-62486016,-2097080158,-443874579,-884122337,131130,16713085,131076,16713046,131077,16714110,131078,16714133,131079,16714156,196617,65656,196608,16714314,196626,16714362,16973843,197934,16973829,199259,196615,16713616,196650,16713803,196651,16713798,16973868,196637,131087,67070,16973863,327782,16973829,196704,16973854,196663,16973860,329359,16973977,330499,16973979,329337,16973980,330436,327837,67065,16973863,199046,16973875,263051,16973869,198770,16973878,330262,16973865,199445,16973881,199396,16973882,330342,16973866,263039,16973875,262868,16973876,328941,16973997]},{"sector":7,"data":[329195,16973998,330217,16974000,328901,16974003,330383,16973877,329053,327737,16713119,327682,16713151,327683,16713080,16973828,263356,327748,16713041,327685,16714107,327686,16714130,327687,16714153,16973833,328395,16973890,328418,16973892,328867,16973896,262894,16973904,196810,16973912,196683,16973915,262836,16973911,328801,16973905,328717,16973907,262964,131165,16713124,131074,16713156,3,0,0,1167087646,518818645,-326903666,-633929978,-26111,20774912,-2092532224,52798,-4706956,-17665,922701906,-6684198,-1996488449,1451883078,726684412,-1706012480,65535,-231681,-6620554,-16776961,-6683018,721420543,-6664000,-352321281,6809603,-1962742397,1297948645,503317194,1430622296,-1910575989,384599000,-1928694017,1343679046,1342182584,16777114,48406784,1946830393,-364475096,-659009514,-1706025472,791,360038411,-1207273729,726664196,1347440832,16777114,-339727616,112643,-1962742397,1297948645,1426065098,922741899,1622672098,-1202708989,1344144072,1343238584,151706,81152,-1070921355,-6664112,-1962934017,516120037,1430622296,-1910575989,1894548440,-1987033459,1452078662,172395512,1946961419,-1960842437,-986974650,1023438853,461176931,-16097596,-1977218490,-161561593]},{"sector":8,"data":[653674239,1589905288,1065362954,-992447232,-970525090,1183645703,-1706027376,544,284444359,239504128,1946163261,1850680,490563700,-950111232,3208262,31078143,-126419120,-1946781953,-986974650,-134220755,-6663976,-1962934017,1452013126,-96040456,-335784311,44480521,-1929754999,1589967966,1065363194,-1960283136,-986974650,1023438853,461176931,653936383,1589905290,-163119114,-351827930,52869337,-155660565,-993400063,-970525090,1183514631,138808070,-1014282636,1183433356,-61437446,1183522795,96807926,1664942192,-1004831488,1191118430,126494214,-631100,-2010712506,106873863,4161574,1589958773,130426614,-59310336,-1694861569,65535,12992131,721712128,-2096174144,1946161278,273058565,-492764181,1183666178,-1202710896,1344144564,-2131474805,-1706028852,65535,1962934589,112645,-1070923029,-1962742397,1297948645,503319754,1430622296,-1910575989,621078744,1342479523,-1559855896,-1511521076,77374244,-472786805,36091903,-2096731928,-443874579,-884122337,1167087646,518818645,-326903666,1187468900,-1879047940,79489038,-397361109,-6678390,989855999,1963123206,-401698811,2122394437,1963196678,18934019,-1996174175,244379718,-1577087768,1178141900,-15633168,721753654,-1202696000,-1706033151,65535,379602573,85893456,798642206,-1879048189,308471822,379602573,85893456,1134186526,184549379,-955943744,130118,379602573,31504464,-6664162]},{"sector":9,"data":[-1879047937,293791758,379602573,31504464,-6664162,184549631,-955943744,130118,-1985984883,1452055622,-1671510882,-1952692481,-788227018,646220518,641795074,1586169736,-1673068644,973588006,-1996153183,300675654,-6529340,1988860998,-230227982,-2010774390,-228685049,1962950528,-1605988889,1996443670,-1669922914,16777114,-1898411264,1065363138,-1005947812,1191156830,130426524,-1671510948,647775999,-1960179770,1191156830,130426524,-1671525586,647775999,-1960179770,-970548130,1183645703,-1873799520,598599694,-1878173720,188737550,132648592,-1375287538,-16777216,-1929190858,1343681606,16777114,-126419200,-1862633729,136636430,46413567,1347469355,1342177720,279450,-58817792,-2130217728,67176062,922685813,-1070922550,28856400,-191213568,-2130706430,67110526,113706613,188,1312455,-1147535360,989855746,1963123206,112649,-401698736,244328753,1577278440,-1962742397,1297948645,503317194,1430622296,-1910575989,116163544,108432214,993904267,-385649408,58589321,755114985,138215474,-385649152,-1073544595,-1476448621,384304816,39840252,503469240,85893456,60444702,1442840579,323226,38267136,6831747,737181185,280514752,-1070903296,1347440720,250089104,36432380,-26026,1183383552,1975520250,35383555,-26032,-1073020928,922686068,12059362,-1070903292,-1706012592,1364,-1694861569,65535,-2097023767,31806,-353827980,-26111]},{"sector":10,"data":[-488046592,1488897,1354771280,16777114,-603535616,-16777215,28838006,-1070903292,-1706012592,65535,-956187415,16899078,142016256,370586,-62486272,4372560,1354771280,361626,-59310336,1342194104,-1705983957,1428,-1191414017,-1202716611,-1706033144,1463,909749739,57999390,-16681751,765069430,-1996488698,-11469754,721428022,-929410880,-1996488699,-16769482,-1202258826,-1706033144,1597,-397361109,244323698,724056296,12624832,-16463709,-1207778250,-397410303,922688444,-1070923068,28856400,-2003152896,-1207959546,-1873805311,664528910,25312899,-385649408,922681609,-1070922552,346482768,956366057,1962983990,15984899,1206390416,142016257,16777114,-62486272,-1036583088,1354771200,413338,-1036613376,-59310336,571478,-26032,244318208,-1878467352,195356686,-397361109,922686690,922682052,-1070923656,112720,-26032,244318208,-14183192,721601590,-1202696000,-1706033151,1061,1342177720,182980240,-939079897,-2097151996,98878,-1070921868,367546448,-401698796,1743454496,80151751,80151788,79168720,80151730,1111295175,-385649408,528481789,1962949949,-24647421,2080390717,4144446,-1175911553,4275710,1290339189,1026354174,394199113,2080393277,-36706045,2080392253,4668698,384369535,1024519167,57999434,1040040425,58001360,1593684201,-1962742397,1297948645,503317706,1430622296,-1910575989,82609112]},{"sector":11,"data":[425603,244319605,-14232344,-1711094730,65535,1358710409,-14868760,-16595914,-6620042,-2097151745,1946158718,1354771208,988286608,49120038,1562371467,182861,1167087646,518818645,-326903666,306086662,796131328,-1727953759,-120470997,-1577433463,731448096,-1980182078,922745926,1183646434,-1706027270,65535,-362753,-6620042,-16776961,-1711041994,2021,1342177720,515226,49120000,1562371467,1478413133,-1957345904,-661774612,-1705983957,65535,48641791,16777114,49120000,1562371467,1478413133,-1957345904,-661774612,17464963,1048785012,1946157240,-1140406510,-956301056,47110,335988480,-1962934016,-2069690810,138840833,-16572253,-1873803658,67954702,113713899,65720,12861059,-16157696,-1711225802,65535,-397361109,113709814,196,-1962742397,1297948645,-1946155318,1430622424,-1910575989,49054680,-1957341354,1988824190,-1950338294,-1175942184,-422510560,-392833071,-1818951574,-1828690456,-287178732,1432210827,-1962508604,403749353,3664018,1960083,1697941,-1070350285,2116771242,-947171578,-310157729,535137026,147475805,-729133056,1509949928,-355405174,-355407152,48818896,-2133423616,41160674,-838991695,-897528542,-2133775824,57942266,-1012219254,-2044215278,666899140,1438893190,1452010635,-854674428,-1947981279,46292453,-1864856576,-326412987,-2585058,1996426870,242679564,-1710459137,65535,106349854,567089844]},{"sector":12,"data":[-989180277,1320422486,41034189,1344258099,-15829249,1996426358,209125134,16777114,-310159360,535137026,181030237,-1864856576,-326412987,517508638,-1274652987,-1272853222,1914817871,532689666,-1962742397,1297948645,1426064586,1465314443,72795422,567089844,-1274521915,-1742615279,-1956749537,146955749,-1864856576,-326412987,1457032734,2126782039,1183579144,1975519750,-853953530,-1967063519,-1436766000,-141877498,567101364,1996428146,142016266,-16091393,1301940342,855638025,1583292352,-1962742397,1297948645,1426065098,-987829109,1589905494,1258338308,-1960894003,146955749,-326413056,1443949699,1183516247,-1073337590,922196224,1183384314,-1983892496,-1897267642,505318144,-1947994365,1124124702,-1023153199,-1946532215,512487494,-470351120,-1996486651,1183579206,-98661392,65271554,100924998,-523173696,77465091,76279947,-150989125,-1898411037,28837446,662709760,1073837072,-2081143159,1586039235,-129594122,1460075403,16777114,-230258432,-15960321,1996487798,-126418950,-624897,-6622602,-16776961,1325399110,-2001420,1325399622,-1961724920,104595014,57869050,-39191,1491726406,1583286271,-1034033781,-1957363702,183272428,2007302,1962950205,73319446,-1727558874,49290891,512488439,-470351110,-997191189,-1960442786,-397409721,-1073013627,55050612,-1996439546,513932870,4078848,1589911157,1200301572,120268292,49290891,-1723284733,-1958677513,-150799842,-1877873693]},{"sector":13,"data":[637820612,637945739,1342326571,1075594472,25304715,1929272875,2126723928,-1983673598,-1072956346,-996062348,1958742784,-129595068,1183432755,112886,1342994175,16777114,507413248,360005120,-15960321,1996488310,-126418948,-386500865,367787643,209125264,-100609,1996487798,-159973384,16777114,-443873536,705117,1167087646,518818645,-326903666,142016274,385238669,67738192,95944704,-6664192,1375731967,-26032,1183383552,-6663952,-956301057,62022,16008903,142016256,384976525,128227920,1996423168,-227082490,-1695254785,65535,-16353537,630911094,-1996488692,1996484166,-163148538,1996443670,-25872,1996423168,-294191354,16777114,-260636928,16777114,49120000,1562371467,313933,1167087646,518818645,-327034738,1448542336,-150680415,-1325063634,98620163,1183383560,52339074,734147481,178626,-1036781357,1183433259,138841084,2105689657,80519441,-1962601821,1183416902,56533498,1183532011,535816,572427161,-754732795,-1946421277,33457136,28837245,-1962743040,85107654,86126327,-523041871,-1996486651,-861799866,302383876,-1952888827,-150662642,1580136441,-62521085,503439544,221813328,1183383552,787955960,514000162,-128021758,31492038,-1807315712,513888278,-1706025467,1219,77610624,-2094042112,121918,512436341,2139096350,259260417,378816141,2144336,781864990,-1929379827,1343657030,503619768,-26032]},{"sector":14,"data":[1183645696,-1706027372,2693,86126327,35522051,-1551874423,1183515168,-2142895230,989857797,746391622,-1727848799,-1037319629,-754974023,734147576,-1580692542,103482206,731448094,66638274,-2042197567,-1980086645,233538630,1090274955,-2042197696,142886599,-2008627456,1183514632,-2008643320,59131531,-1996284410,-157185466,-96061182,-123664267,-62506750,922702708,-222821662,-1202708990,-1706033151,3670,-1727848799,-1037319629,-754974023,734147576,-190625598,-234436862,-1962932222,-157025722,-62485758,-16582493,-1207626186,-11534328,-16583626,1996487286,1354771452,952986,-1975088384,-1996487675,1183551046,-1840871162,-150854495,-1941534248,50873995,-1996348410,1319211078,-1840905982,956503713,276137030,956504737,141920326,956504225,1182041670,48379647,503518904,112720,246717008,381616128,-2072605437,371066654,-1515870945,922689445,922682570,922682134,446759704,369502979,480333827,403057411,-1070903293,249862736,-1969160192,-1908000511,-1902047115,-1840891647,-1935603595,-1874446079,922700148,-2001206558,-1202708991,-1706033151,1527,-1929279297,119442550,-1524689378,530949541,46413567,-7571713,1183551094,-1941558384,-1840870576,1351501355,-1705983957,65535,80230143,1579107816,49120095,1562371467,313933,-1275051,-1711094730,65535,-1710983425,1856,-1034033781,-1957363710,108462060,-1710983425,1875,46413567,16777114,1575324416]},{"sector":15,"data":[-1946155838,1430622424,-1910575989,451707864,-1593419946,1183383746,12886522,192200715,-1946401143,184669726,-352094757,-1960931234,-1947479557,1443621875,-59310249,-386238721,-2092040107,-277020418,-544522773,872177294,-1928915210,196732030,514191872,-1946209529,1489347,-259268105,-1510807087,521599115,-1176209779,-1510866933,-1070335093,1996445520,-92864516,1325404392,119521397,-310157729,535137026,1439386973,-326898549,106386968,106860062,-1156954485,-470351850,118943883,-1175945587,-1510866933,-787855733,1183400160,140413950,1450427195,1958951755,1489689,-670833673,1394495518,-402360577,3997791,-16548608,118947398,-1947697523,381419078,115603200,-11526569,1088947318,15616,1183521917,1489162,-125050377,1183516446,172395006,-259268105,-1510807087,119446251,1988960022,172395496,-150989127,-789017631,530969321,-1956749561,146955749,-326413056,503732054,-1005947195,344589918,638640768,1947207670,112649,292934154,-4707349,1976699647,71732004,1962951741,164004639,839500675,975613156,1124562183,-176832502,28313579,-5242249,8448408,1962952253,112668,638012555,1913081659,-1962314260,992347468,-512621233,-335544392,4537820,28843381,55347968,55524134,-394933390,637619339,1912688443,870152128,-2084901952,-829748794,1017963570,168064046,-1946716736,-2081190954,-24442426,775728166,-1073085324,-561252747,648868491,208996154,1975519811]},{"sector":16,"data":[-1947104267,-9704993,-1744360922,1583286047,-1034033781,-1957363702,183272428,12861059,-950111232,65094,12850827,1183432747,-128546314,-1577433463,1178141142,-1958248966,1452013126,591352,1183535186,591350,-610643886,-1962934263,1452013126,-163150856,591126,-694529966,-1996488692,1183579206,-62506498,1183516286,-28931588,-335919361,-28915786,1183514625,573503486,-1194816763,787939333,731448610,66638274,-267482680,-1715369214,-1037319629,-754973767,734147576,-754732606,49325024,-150991688,-1559944658,163054316,573503232,56402693,-1017256565,1167087646,518818645,-326903666,-950642934,98822,-1073297664,-956301312,313350,-599883008,829685761,1342193848,1342210232,16777114,-62486272,494190603,503369912,16824400,683167774,-1957683712,1344207942,1342210232,16777114,-1002536192,1299447808,12850827,1183432747,-128546314,938210859,653680324,1963984886,-1933341926,591298,-1598533550,-11526652,244382838,184571880,-1089506112,495649154,-472840705,77479563,1183003017,960894710,2130826806,-599882813,242483201,16547459,1996425332,85760764,1048772608,1946157442,1354771207,133097552,46413567,1342177720,1578028008,49120095,1562371467,1478413133,-1957345904,-661774612,-2096436093,121918,-1310129291,108954368,-955222784,2623046,2122320363,276049654,-1005828353,-1977217954,-163149817,-361381878,638344900,1962950528,19130627,-1962129665]},{"sector":17,"data":[1183385158,-128021512,1962950528,17819907,1191117803,-128021512,1948270464,4161781,1183572852,240552716,-1980086647,485227606,720782986,1372138468,21797456,1589903360,121120506,1191121525,-129564678,-1963434357,-163149817,-663412676,-1963434357,-163149817,74719292,158711818,-385875528,1191116979,-128021512,1033373578,-227082208,1589938155,1065362952,-991857664,-1977218978,-163149817,1987362826,2768280,775765108,1029338112,276037695,638344900,1937049400,-15972609,-739571642,-1006090497,-1977217954,-163149817,1534377994,-1082905028,-351516929,-159481670,-15698898,1589906502,126494220,183912072,-991267392,-1977218978,-163149817,-1753956342,-1821102532,-351779073,207537386,775913510,-2144949644,393543743,1589945835,1065362956,-1005816576,-2144991138,57999423,738150889,49120192,1562371467,707149,-2081649835,-1667148052,-62486268,-1560000885,-661977956,-1207966767,-2098724314,-1438216716,-1070903274,-401698736,-1072958181,1183520116,77374460,-472786805,36091903,737435880,-15340608,-1207770570,726664192,1347440832,332954,112640,-1034033781,1478361092,-1957345904,-661774612,10415233,31506006,77340299,-2020940847,1090781734,-968489848,-968476156,1187381252,1187446678,1187383452,1183645853,-1202710882,1344143428,1416090,-1773761280,-2037559274,1343684452,200571112,-1923779136,-1979746682,1452066886,-1928401974,-1929417594,-934921263,1325337715,-933313336,541032486]}],[{"sector":1,"data":[1589963124,1065363144,-16550880,-2037528506,1183448940,-61436678,-1949809013,1178192470,-1005685766,1191180894,126494458,-347732856,313063,49120094,1562371467,1478413133,-1957345904,-661774612,-1923945341,1343663686,-1873756117,-199628786,74760203,317440043,503652001,-1371108016,-124104682,-1207959540,-310181887,535137026,1439386973,-326898549,138840864,1946288189,33635668,37555060,-385649406,803799238,-499712254,-26110,1048772608,1946158258,35449091,956440737,58459206,-16641559,1183517302,503720708,417878018,30974723,58189904,6555335,1996423169,-26102,-337051648,1681818369,57999360,-2097028631,307774,-672595084,75399937,-1588888576,1178141216,-2092729084,2080376446,52339005,2131117625,71732021,35522091,46524496,-1577564535,1178141144,-385649160,-12779102,-16288513,-397407626,1996423953,-129594614,1342298275,-385678104,1048772998,1962869208,175570698,30947071,-956108568,-16656378,23915007,6569603,-385649408,113705314,100,16777114,-666991872,58064641,-16691735,922684022,-1092091432,108954370,-1593082624,1178141470,-385647098,1421345074,-1588584958,1344144670,1374618,-196688128,1048773205,1946157528,30974254,-1946532215,1065415774,-350194688,-528580599,-15764480,1586230342,-2012771596,1547493446,1325394805,-92371974,-1955171072,130479198,388995584,1183383552,-27883012,16777114,-163149568,78776007,-6684671]},{"sector":2,"data":[721420543,1444674630,-1949791234,-628361658,2128231321,10610947,-935655556,-1729559694,-498692864,-1070903274,-1202696112,-1706033151,6056,-965427189,65306241,-1926794238,1343676998,16777114,-498692864,-6664170,-352321281,-195130455,1962950528,-11015933,-369867009,1183711057,726669026,45633728,-1202696190,-1706033151,65535,-428556277,78776007,244318208,737129960,1421365440,726670850,-1706012480,65535,309641227,48379647,1342439608,1347469355,346921552,244318208,-336599064,-1308178673,-1207959548,-1706033097,1225,-1034033781,-1957363704,1793885164,-1136753834,175374336,1326723,-385649408,1996423408,74907398,16777114,1958742784,14608643,-1207404801,-1706033144,3015,-6664110,-16776961,28838006,1838829568,-1929379829,1183422022,-61436678,-520206649,-1005458687,1191180894,-25785350,-1963047169,126363140,-2130813301,-411762625,-368956,-970524090,513875975,-28931835,1589907947,-96010246,-100725,76217926,-1962440666,1065418334,-2132314880,303166,1048787828,1962934748,505318196,25133061,-1005947904,1191180894,130426618,-28915876,300614816,-368956,1988885062,-28901378,-2010774390,-27358457,1962950528,-94452505,509478,721975039,-928952128,731463680,1358483906,378947213,-1916564656,-1054108082,178231888,-1956773888,146955749,-326413056,-1593381757,1178141986,721714436,-951129152,130630,1074077345,-1946401143,1065417822]},{"sector":3,"data":[-349867008,1952201735,-62456049,-1963172213,-96040953,-311050230,737953419,-150659578,990192174,92144710,-335657333,-60912880,1946173312,-62456061,-335657217,1575324606,1426064066,-326898549,75399956,-1593281280,1183384866,-1587090434,-1992293090,1183576134,-230258428,2122328555,259260652,-1947187457,126546014,1022117512,-1346212,2122576462,326369522,-2131730805,57933887,-1947187457,1065414750,-1948748544,103542854,787940638,1183384866,-226589698,-1206750208,1344144544,1152922,787955712,1174471970,-28931074,35522051,-1913370999,1343682118,35534591,-11485141,922743926,-6683874,-16776961,-404224394,-297367052,-163148464,-6664170,-16776961,1996424822,-185931538,-1034033781,1478361092,-1957345904,-661774612,-1960645501,255659078,1026454528,477364244,1912733757,33766734,1996441975,1996443662,108461832,737888488,1273731520,-15829249,244320886,-336513560,242679790,383665805,-26032,1996423168,-562626802,383927949,-43063216,-1928431873,1343675974,16777114,-3872000,1996426870,175570700,-16222465,-6683018,-2097151745,-443874579,-900899553,-1957363702,108462060,-1962840088,-1073019834,1996424820,5105670,-1034033781,-1957363708,-1962518548,-1962907634,512314329,-472842136,1715374931,-1948318976,71731991,-1343092962,-1031057585,45832363,1714880256,-1705816064,65535,-16750941,149423222,-1956706560,46292453,-326413056,-1003028650,-204412926,-11472757]},{"sector":4,"data":[1676149878,-1003028736,-639085054,-443851021,180829,-2081649835,1465255148,-486257013,-1003028693,-207296510,-1946270071,-486512626,-1946580207,-1392482762,1358853887,1325410792,922744181,1996423876,-207951618,6819467,-1070395677,-16750429,-1711249866,4798,-443851169,180829,-2081649835,106369772,-956021109,588870,1982083,-1724877506,49946251,1183446007,-162100744,-1728003935,1586230263,-1579668488,-470351120,-1946401279,512489030,378209008,-634714846,730863595,1912651782,-1194816695,653721643,33883426,-1948742912,505870273,-28931837,-2080612861,1586037443,-1928915206,1183575678,142844,-28931157,-96040021,-28931157,52299267,-293696085,101086975,438278743,1594294272,-1034033781,-1957363708,6857196,259375115,-1157627208,1347616832,1192346,1074916096,45867217,1714880256,-1705816064,6924,393527307,-1962907997,-788502498,-1948777501,126420038,6817535,-1962907487,46292453,-1864856576,-326412987,1473809950,1745783558,119423232,6700683,-234469749,130124719,49120095,1562371467,182861,-2081649835,1448547052,-16353537,496632950,184549400,721777856,19327424,-1207404801,-1706033144,7395,932859986,-16777192,95946870,815419392,1375731736,-26032,1996423168,112648,407083600,1996423168,-26104,1183383552,922702078,127533766,721420300,12052982,-1461059797,-230257920,104580867,58459340,-1593793559,-285801634,1183400000]},{"sector":5,"data":[86155764,61992951,1077993683,-1191819639,787939331,731448610,-1980182078,1996484166,-163183864,-193527984,-150991432,-1727716818,-120470997,1357792811,1073946273,-25755824,1347469355,13239865,548931700,13416960,1723336427,10074624,-6664110,-1962934017,-553389474,-2020940847,1090781734,-506232,1996425334,13148662,-775804007,-196738056,1183666240,-1202710792,-1706033151,6402,306067783,-385647099,-1589182641,-285801198,1005733513,2097466374,-13047549,-1694599425,65535,-16222465,-402351050,1599995912,-1034033781,-1957363704,216826860,-1727773045,85069451,788003319,1077936990,-1946925431,-140966842,-138245127,-1325063634,1088475907,-163149504,385369741,-163148976,1342178349,1223968395,230182984,573503232,-1037330171,1174665425,263670,-196703408,52299267,1342178053,1706906,108461824,385369741,472554064,-443875328,311901,-2081649835,1183516396,33570056,20791412,1023964162,578028034,-956264983,16807430,-499712256,365861378,1996423168,369531402,-1667170304,80782084,1048779755,1946157174,1980155751,-1711276032,5789,1048774635,1946157174,74907475,-402229505,1183383760,-28931588,108904459,-1996186463,-794690490,-62506748,1996424820,3336444,16678531,2122393212,1963065864,-401698785,1996482678,-801702134,-178722812,125157387,77346559,-1879045144,-390404082,-1034033781,-1957363704,49054700,85341951,-1980770840,-11469242,-402337738]},{"sector":6,"data":[1996488388,71732222,1342492835,-83992,-16443850,-840368522,1575324655,503317186,1430622296,-1910575989,116163544,33310407,108461824,-1862290456,-402331634,85341951,80754431,200599016,-15960640,-402351050,1187512216,-1879047940,-398268402,-2080618869,-443874579,-900899553,-1957363710,49054700,85107030,86126327,-523041871,2114340411,108954428,-2093581312,2080375934,71732016,1578011545,-134613245,-1962601938,105286600,572427161,-1309570299,-136064253,-1980759045,-861798794,2112895748,-339309820,-18429,1575324510,503317698,1430622296,-1910575989,585925592,1024214667,812908559,20797559,-1587383040,-794622820,-1715459324,1996450795,209125134,-16222465,1072170614,-1381378,1996426870,-401698806,-571741330,-1928431873,1343675974,1736346,242679552,-1914800385,1343676998,-240152,1183649398,-1706027298,6809,339588075,1036284928,91357696,1979843133,242679721,-15960321,1996425846,108461832,1748890,49120000,1562371467,707149,-2081649835,1448554220,1024083595,141820417,1946288957,15919455,48379647,2003610,74907392,-402229505,1183384232,-49666,-706149505,80257792,224716880,-1862371585,-72751090,443924491,67651318,28837749,1541951488,-25755654,1342177720,-369505304,1190527144,58000392,-16736279,-706150794,9890297,-16484609,1441269366,-28931838,2147483453,8579331,1342177720,-384536,28900982,-1847046144,-330920455]},{"sector":7,"data":[-1070903274,33732688,28856400,1620725760,184549399,-2082048832,50238,378228852,-1070923580,-1982708087,381211734,-27358464,915137489,687277214,-1949153791,1452003910,-696349228,118943883,-1176859106,-1510866933,-700019425,280514582,-6664192,184549631,-1207599680,48955393,-397361109,1599999242,-1034033781,-1957363702,384599020,1048794711,1946157178,27715843,7997127,1996423169,112646,1354771280,507413328,91569664,-352321096,1354771202,2225562,108461824,1347469355,507413328,91569920,-352321096,1354771202,2266778,2013710080,-256,1183647350,-1706027276,9229,385107597,602511952,-1073020928,113708916,66298,1836743,803799041,-96040191,38667819,504269721,-1543899389,20775674,-1207730432,-89980927,507413250,57949696,-1962899991,-1952843706,-150802418,1876985,2097152317,470206214,-1593835264,787939356,104530682,914162050,50430625,1208154630,-99710055,737801986,-1996481530,1996483142,1354771206,-361300144,586783312,1048772608,1979646072,2013710094,-385875968,1187512149,-1593835286,1183383744,-364475410,49950455,-1063128949,244029696,-101252358,-125048329,1031732795,1005307531,1836743,-2103377919,-100255487,734493954,-1996293626,1996483142,112646,1354771280,1357543167,16777114,2017362688,-1418330368,7866055,-219611135,-1547203586,1178140864,-15633170,721601590,-1202696000,-1706033151,3524,7880323,-2094432513]},{"sector":8,"data":[1040195134,-1063187339,244029696,-101252358,-1063189525,-330921728,-16353537,1342208054,-1710983425,1650,7997127,1599995904,-1034033781,-1957363708,49054700,1982083,-1590266562,787940126,1178272506,-1960477180,-1952905658,-150802418,-97585159,-1949791486,-1952906170,-150790626,63439867,-1996439538,384564814,-335544392,71731996,504269721,66713347,-1996439546,-2103312826,-28952319,1183572605,1575324670,1426064578,-326898549,-1136753906,2037710848,11419267,-385649664,1996423297,74907398,1883034,1975520000,175570754,1342179512,1888410,-1706012160,7383,-1928562945,1343682630,769690,175570688,385369741,108461904,-402360577,1536878252,989855748,1963123206,175570694,-2097137944,47678,1048783220,1946157524,209125154,993690,-737753344,-352321535,-499712238,67155970,1354771280,-560312240,-1962934249,180510181,-326413056,-1593512829,1183383654,-62470146,317390848,-1962641665,1183055454,939459326,-586264,1755446342,-62506752,-443816324,180829,-2081649835,-2091510548,-16746434,-1696005259,142016257,385238669,570989136,614531072,-163184382,1982083,690582846,-90047930,-230258430,737822347,-1952844218,-150802418,-97585159,-196703998,695582731,-1996293471,569111622,688017057,1187511366,-1962933774,-1952842682,-150790642,-196703751,91602955,32786119,12624128,-940554615,65094,184960651,1024881856,796131329,1946157629,212271]},{"sector":9,"data":[71118708,-349211648,-230257912,1183439095,-28931074,12584449,12598915,-953123584,49158,-1955599616,-487853498,-336312693,-196703269,1048828139,1966997534,71731981,49950455,12584491,1183565035,-2081035516,30782,-2103367819,-100269311,-1952888830,-150799858,736753657,1183446086,12624366,2112767545,-297366751,-352272221,2017362713,309657856,25310859,49952299,12596793,914949246,-1063190336,-263836928,201213577,-2089978688,16807998,1996431989,112648,-1070137520,312102912,-16777178,-1070921610,-28931248,787994871,820708126,721975039,-1063169856,244029696,-101252358,112720,592747088,1996423168,-28931320,-99710055,-134613246,-265357352,-1070903294,1354771280,-1706012592,65535,-1710721281,65535,80230143,1577577960,-1034033781,1478361094,-1957345904,-661774612,1461906563,242649942,-1962115445,998855,58087284,1023444457,141819905,1946158397,9562420,112726,1354771280,-1818603440,1442840614,1347469355,-644198320,721420321,-2132174400,-11053568,1996425846,108461832,-335943192,-1070901526,-84744112,-11083285,244320886,-337319448,1183667926,-1706027298,8261,-562626730,-1914669313,1343676998,1459417320,383665805,543201872,-1343553536,175570774,-402229505,-1544815190,1946162237,18103741,356323186,1038448129,91357696,1979843389,-11053424,1996425846,108461832,2131354,-2090902016,-443874579,-900899553,-1957363702,82609132]},{"sector":10,"data":[-1980353706,-396951946,1072226753,1975925504,112678,-6662576,184549631,991458496,1963236406,-28931322,-1946401143,1191181918,-1981558274,1174546103,80492091,1183565948,80520190,1593591435,-1017256565,567089588,1438901290,1183575179,505318148,1220739843,-1946945639,46292453,-1864856576,-326412987,-2082959842,1465265900,-1983892730,-996017082,1958742784,1150963718,-1207959544,-1096613868,1489664,1086055415,1347572480,16777114,12886784,58048523,-1207918359,45809704,-1640562944,-1705816060,7260,58048523,-1560246039,817562782,-1912655104,1996476534,108461832,-1873406381,-519968754,-1962898967,104594502,661848254,507808310,326381116,12846734,-2095114722,381228486,-5967360,-1927283642,1444335734,552078992,-1587942431,335872190,1489664,-1147542537,922681346,1347551428,-26029,-1073020928,-995943052,12493056,-788524027,179168,77477631,-392539312,184549415,-1156418112,-1070399459,1347441488,244338768,-338137880,77505295,12453507,-8918764,-109789173,-1543747957,-996081194,1958742784,30843162,-1157579101,-470351850,-2411623,1375781942,1452954448,-1593835480,-1073020458,-784334475,-2411552,1342479926,678664787,1594294272,49120094,1562371467,313933,1167087646,518818645,-326903666,-2091493508,5182,12061044,244338692,-1193699864,-1706033135,10531,92127243,-352321096,-1983894782,280557638,664424448,184549420,-1207599680,48955393]},{"sector":11,"data":[1183432747,80257498,-1948760439,3999814,1024160769,57999617,-385731607,1183515305,2112774,-840367243,-385649151,138215934,-385649408,222101802,-385649408,-2031549995,-1003028734,178178,1354771280,-369418776,922681973,62390980,-1947342080,624756294,1031500800,259260454,1962944317,8710403,1946167357,-2096370855,313406,251593844,-928971576,-666486524,988349301,1776832514,-935919869,74246148,14319235,-1394015371,-663290112,-1461186928,1975520242,8644867,80230143,-1729622384,1958743026,34072835,80230143,1342177720,-370097176,-928972295,104546308,-1434648190,80217855,1048814827,1966997534,49979805,80217657,103388284,-1897200440,1982083,-1584958146,100861128,104530682,175964546,16972449,-385562618,-928907408,244029700,-101252358,-1056708105,25298491,1508443004,25338367,80257864,-45079,-1878734794,-233445362,58048523,-16677655,-402339786,2062151776,-125926655,-385649664,28836209,-1209511936,-10425872,-1987557747,1452049478,85893510,-335919479,-2074164207,-1954265345,1191180918,637831930,1586169736,4161786,1589962613,130426500,-1928467712,-779319226,1988380217,-2075197684,646209220,1968979840,-2008642070,1312412044,956855686,58033222,-997964033,-970554274,244318215,735869416,1183666368,726668936,-1706012480,6088,309641227,48379647,1342439608,1347469355,610245200,244318208,-371414040,1048772817,1962934658,13101315]},{"sector":12,"data":[80230143,1223167632,1975520241,-21960445,-2080427799,34878,-1427569804,-2012821760,-1962934016,-2036082106,10217728,1962942781,-32642813,1962943037,-32052989,1929389373,8644867,1996499005,-32511741,2122545643,1937050886,8928899,-949193728,34822,-2109832448,1601437697,80230143,-521662832,1975520240,-935919861,112644,-284235696,12861059,-1958710272,721470486,-196703808,-1191815543,512426006,-472841016,77477515,1174481143,-196703244,-1913235829,-259268994,-1910634730,768474,-1927305742,1343675974,8795903,1577234920,49120095,1562371467,313933,1167087646,518818645,-326903666,1048794640,1946157076,67155977,-401698736,297326202,-1952821248,184549409,-1207599680,48955393,1183432747,80257532,-1963964791,-467007930,1347537195,1272474,-1981535744,2122516038,1098121468,2097152317,12314883,2113935933,11790595,-955887873,63046,956615841,58521158,-1962893079,-472779170,956712587,1963075207,-159973621,-1092088176,8907250,-336181505,-1002535977,2121531392,12850827,1183432747,-94991880,-336181623,-939065542,-939116284,-955878140,313350,1488896,80223883,915137489,687277214,-1946663421,1183447638,-195655182,-1963827516,942016070,192153927,-1577695489,1178141058,-1581351690,1178141896,-1205832464,-397410303,922742338,568853704,-935919872,19195908,80230143,1342177720,-1192385560,-2090991615,-443874579,-900899553,-1957363710,49054700]},{"sector":13,"data":[956350625,276563014,-150987615,50526766,989904902,1367278662,1982083,-1591446210,1178140864,-1962115836,-1952906170,-150799858,-1960449031,-1952906170,-150799858,470166521,-1592464640,1178140864,-1962574588,149619782,721700491,1073936902,-113015,-1207778250,-11534332,65601142,1575324663,503317186,1430622296,-1910575989,82609112,25312899,-950963200,16824838,507413248,209010176,721612961,84222470,183173124,-150983752,84222510,1183383557,-1003028484,112642,-59310256,-26032,922681344,1139279048,105286400,184669347,-16157248,-1711094730,9285,-1962742397,1297948645,503317194,1430622296,-1910575989,-1170308136,192151552,12191431,-6684672,-2097151745,-443874579,-884122337,-2081649835,1048773868,1946157242,-2109832351,1517551617,117196487,507413248,896876032,956350625,175965254,-150802271,-62486056,1183520235,-1073337596,244029696,-101252358,49295095,-1946401279,-1962739186,-140966842,-339571719,71731975,12584491,506394432,1183401987,-59310082,-26032,-443875328,180829,-2081649835,1589905132,133572102,-1875217392,-659232754,-1588543445,1344144670,-1962522997,151324758,-1706012160,11012,309641227,48379647,1342439608,1347469355,723163728,244318208,-338108440,105286508,84432523,1183383561,-27883012,2122320363,276049658,-990099713,-1977156514,-96040953,-361381878,654073540,1962950528,1354771229,1342184376,1347469355,-1962522997]},{"sector":14,"data":[151324758,-1873784320,-776214514,1183522795,139889414,1375734021,75400016,-1207602176,65732610,1342366369,2095582864,1575324418,503318210,1430622296,-1910575989,149717976,-1962522997,1183385686,-61437446,1234849874,-352321492,105316099,637951684,1962950528,-2146112524,1949235326,-96040165,972838539,276170310,-1006219521,-1977219490,-129595385,-545956804,-16359740,-2144991674,1316302399,108461830,503351992,803117648,-1073020928,1996439668,108461832,503353016,804428368,-1073020928,1996434548,108461832,503354040,805739088,-1073020928,1996429428,108461832,503355064,10525264,-1073020928,-1070922636,28836843,49120000,1562371467,313933,-2081649835,1465266924,1187445790,1992622286,75416584,792505004,1547437172,1191052149,1975519950,1170679535,640298751,369182088,-732525281,567089844,13780679,72795392,1320470835,57811405,-2147437591,1946209918,9103619,16777114,-1898410496,-1946145762,-164375970,1946172544,1346219381,-1391758015,1967674429,1027386373,179046260,-335841856,-797537821,-1408991548,1950039210,1975519749,1555058422,994828171,58000478,638315343,1979598136,-2010755327,1988755269,-765555504,-2146928955,1966735740,-1404680702,1975519914,1170679546,640298751,-989772408,-919403434,567103156,1992632435,3965136,1992664693,75416584,-1073042772,-953746827,1160707909,21350182,-970570408,-385875131,1187381426,521535695,-1393396083,-76206532,1480932481]},{"sector":15,"data":[2088963189,108348674,147803776,1015100651,209014595,1292008579,1317013109,585827535,1094859905,2088963189,108352514,47140480,1015099883,175458640,1174568067,1317012597,1337197007,-1435295283,13598336,2122323317,57934030,-2080409623,1962988158,-18552573,-973118487,1017906294,1325102378,-1731246454,1094845639,1409434823,1963108352,1124386595,38061903,78118989,80156277,1153914949,-1476377342,-955681528,-951496700,4588100,-1956749537,146955749,-1873273344,-326412987,-2116514274,1442894572,16533191,175570688,-1710721281,13302,2113961789,140428296,2135410214,175570688,3297690,172394752,1342193848,1342210232,3288474,-632911616,343195659,1342193848,1342210232,1853850,-1136228096,360038411,-1202667477,726663192,1347440832,-401698736,-1259745619,175570692,16777114,-1983739136,244320838,-338357784,138870531,638082756,1948270464,981896692,105912063,859740755,-2033778688,65334,638082756,973176704,-1977215115,736373255,-1706012215,13140,1076749354,914786560,-632910849,-1224781794,244383542,-1982401816,-1072972218,255660148,-385649408,244318830,-371913752,1589904443,1065362952,639333678,1543602048,-2144988044,1949172095,38594819,41910310,-385649572,1183515202,173443848,-1983363447,434883158,578039612,510926908,58010172,1006773737,-385649345,1191117342,-933313336,-2012771802,-1073029050,1183570549,-900297784,-1981528439,1177282134,814123272]},{"sector":16,"data":[981896703,-11528449,1996425846,880515592,1988820992,141962184,-12942650,981896448,-1706027265,13619,-12941683,434655254,1975520004,29681923,-1098902037,1952251694,138840860,956978827,292997190,-993505537,-1977169826,780568583,1965964543,-933313315,775913510,1183541876,948341210,138841087,-1995811189,1451870278,-2145260598,805252798,-1098897292,1948319534,949914401,948371455,-931740417,650659583,126354570,650665668,-2037905526,-1073021138,-1635004043,130481976,-632911104,-2037559266,1343684410,-1912851992,385825414,895916624,-2037841920,1307311920,-12941683,-1933293943,1183565398,173443848,-1983363447,552323670,-13713792,-2144898001,553594558,1589911668,-934871096,-1006138842,1191167070,126363332,650665668,-2037905526,-1073021138,1589957237,130426564,814123776,982420991,-1933507585,-1002010158,-339323255,-1001455869,650403524,1965965184,-1001979916,-13465971,-16363498,-1013267338,-1207959500,1344143697,-13465971,1354256406,-1957683711,1344199238,1342210232,1201562,1958742784,-1136227460,-1950726519,-2037786042,1139539768,-13713792,-1960151714,1344191046,-12941683,1553616918,-352321483,-1169752317,-2135269749,-176881601,-2135269749,326381119,-340111617,-1168208909,-1950726401,-1962985290,-16283644,-1946208122,-1962985314,780568583,1975519999,-1168208977,-1962932282,-2037793722,1183579960,-1136227878,-13072757,-338016631,981896515,-1873799425,-96737266,611696651,-12941683]},{"sector":17,"data":[2140819478,721420335,465064128,-1070903296,-2037559216,1343684410,-1427632496,-43062837,517621387,981896528,-1706027265,5841,517621387,896834128,1183383552,-428408862,-1696303361,6625,1038239235,192807039,736386756,-970530210,-1962901689,1344199238,-1673473,530244726,-1962934259,1183439430,-2146309190,805252798,-1098901644,1948319534,-1169752304,-1967497589,780568583,1975519999,-1169781790,-13072759,1191117803,-1168208966,1948270464,516131829,838113872,1586167808,-1962440516,1088064707,1183535186,-1706025286,12918,-1967366517,-259287033,218185926,-13066613,-13070593,-956299322,187462,-1996077429,1187503686,-1962934068,1183431750,-799109938,-1982052723,1452069446,-1983894572,1183438918,-2146112554,1560227518,1183521652,948320730,-15567105,-1946208114,-1962985314,780568583,1966750975,949914590,-2012771585,1023356550,1006924892,-16485062,-1191233402,1344143568,503407800,22853712,1183666206,-1202710808,-1706033132,13465,517621387,848599632,113704960,65898,384321165,948341584,-1706025217,12234,326483979,721541793,-1924115758,1343671366,16777114,-1962022144,1344199238,382486157,-752883632,-939768183,92678,-401698816,2122567920,158663164,-1982183797,1586235462,-58817782,-15830210,1996487798,142016266,904400528,-629243136,-16223232,429578870,-2097151945,1946205310,-1133052152,1805466,-58817792,-1207602626,48955393,-2090942421,-443874579]}],[{"sector":1,"data":[-900899553,1478361094,-1957345904,-661774612,185222795,1024095424,594804738,1962936381,1354771208,-352314184,1354771206,1342184376,1347469355,-16222465,244319862,-2083944216,-443874579,-900899553,-1957363706,183272428,71732054,-1996073333,1451883590,-16520194,1589967942,1065363196,-1946913536,1451951174,-62506746,1589909106,126494460,1022772872,1007252538,-16419748,-538182578,-1946401025,1452014662,-129594882,-335915383,-159481847,-15698898,1589967942,126494460,183912072,-1947568704,1982594166,150897656,-167050113,-1070922635,1589916651,1065363196,-16550610,1183579206,-27882500,-1980217719,65796694,-990099713,-2144928674,-193658817,1177273227,212472,28888191,-443851264,311901,1167087646,518818645,-326903666,172422664,-954043264,93190,1916206848,1882652417,945789441,922681344,922681718,1268384116,-352321536,1812383564,-1962934015,1856178758,138840833,1358710409,16777114,-129595136,-990226807,1183053918,-1960442632,1468737031,24158978,24254089,653811339,-1960441973,1956840023,1981188353,-59310335,16777114,49120000,1562371467,445005,1167087646,518818645,1996478606,175570700,-16222465,922682998,520028526,-310181516,535137026,147475805,-1873273344,-326412987,-2585058,-16683466,-2097057762,-443874579,-884122337,196699,16713021,131083,16711718,196616,16713006,196620,16712958,196621,16717812,196622,16714653]},{"sector":2,"data":[16973840,75591,196609,16723664,16973847,338188,16973930,337689,16973931,336191,16973933,339686,16973934,327861,16973935,333685,16973937,333695,16973938,209433,16973829,207062,16973830,210699,16973831,269546,16973825,269558,16973826,337468,16973948,336676,16973949,206797,16973839,207039,16973840,327905,16973825,206775,16973841,271360,16973833,327919,16973826,211065,16973842,211117,16973843,209417,16973845,327771,16973830,265212,16973972,395556,16973829,397699,16973830,265175,16973974,333590,16973839,335514,16973842,335540,16973843,333601,16973845,209013,16973861,336049,16973846,336931,16973847,269756,16973857,329077,16973978,269707,16973858,330734,16973852,329061,16973981,210621,16973869,196626,16973872,337078,16973857,196655,16973875,339430,16973987,211026,16973876,339495,16973988,269579,16973869,339614,16973989,331524,16973990,339456,16973991,337608,16973863,337634,16973864,210568,16973882,269566,16973876,328067,16974000,336889,16974004,327763,16973877,327744,16973878,331269,16973880,327817,16973882,265166]},{"sector":3,"data":[16973890,269792,16973892,265261,16973893,337460,16973885,197541,16973902,337383,16973886,210578,327759,16711715,16973832,337543,16973888,331532,16973890,331552,16973892,329656,16973893,329647,16973894,210600,16973911,329665,16973895,210416,16973912,335445,16973896,210327,16973913,210394,16973914,336402,16973899,330778,16973905,335458,82,0,-1192457387,1586185216,-2128491260,-1845460766,-1034033781,-1957363710,209125356,-16091393,1996426358,-26102,-987889664,448005206,1317741005,173458696,567103156,-1070398862,1996443679,175570700,-15960321,-6681994,1476395263,-1034033781,-1957363702,1455759084,-853887996,-850414559,855798305,-443867200,311901,-1192457387,1586190080,-1960719098,28836958,-1960719017,79846885,-326413056,-18345,-26032,-1070399488,-6664112,-1006632705,820511870,-18432,-26032,-1956708352,79846885,-326413056,-1261292713,-148779722,1893988321,47619,-402358588,-1956708345,79846885,702720,-657331503,1376189154,-1705572784,65535,-1191705849,-1012203445,-1964209323,2050753606,1631323767,539755122,-1034033781,-1957363710,108462060,-16484609,1996424822,2529796,-987889664,968098902,41034189,1344258099,-16353537,1996424310,74907398,20378,-443852800,311901,518818645,-1274784059,706858262]},{"sector":4,"data":[1975520228,-854543354,532689697,-1034033781,-1957363708,1455759084,-854084604,535046689,-1034033781,-1957363708,108462060,-16484609,1996424822,18520580,-987889664,1001653334,41034189,1344258099,-16353537,1996424310,74907398,80282,-443852800,311901,1458342741,175570775,-16222465,1996425846,25598472,1996423168,74907398,-16353537,-1030093706,503316481,-1006086459,1454638206,41034189,1344258099,-16091393,1996425334,142016266,107930,108461824,-16484609,1996424822,32872964,1599602688,1575324510,1426065602,1996483723,74907398,-16353537,-744881034,503316481,-1274784059,1914817857,532689666,108461904,-16484609,1996424822,33987076,-1957167104,79846885,-326413056,-16353537,1996424310,74907398,140186,1455758848,-851790844,855798305,-11526208,1996424822,108461828,-1710983425,578,1575324504,503317698,1430622296,-1910575989,988578776,1988843095,205949710,12584491,52309751,-1194441079,787939338,100861218,134546156,51553024,-150992456,-1996152274,100910662,134546194,25207552,63325835,83984390,-761069560,13148417,-1037330112,1174665425,-230258226,48889643,1488898,-787718517,-774927389,64553953,-150692322,105251631,-1995942261,1451870278,591306,-1982314871,1183439446,-698971692,775686123,1191121012,-731986732,-2012771802,-1073035706,-1202262923,-11534328,1996485238,-663289894,735331979,1183438918,1754943732,-2097151997]},{"sector":5,"data":[1140900414,-1202317707,-11534327,1996485238,-663289894,-1695254785,909,56402262,1342179333,-887041,1996478070,-696844332,-1697351937,1004,1358186121,241050,-1036090624,427116288,56402262,1342179589,-887041,1996478070,-193527852,265882,-933313536,268957222,-1588193420,134546156,1996443648,3455218,129519646,317280256,-933313535,125304614,91750182,384190093,93952592,1183645696,-1706027290,1095,-134986103,-1996152274,-1588147130,1177223954,1996443852,-431583758,1996443670,70163188,1048772608,1967521986,312563225,-867816701,1996443712,-431583758,1996443670,74029812,1589903360,2013210312,-599356157,-1008185322,-599356160,-1566945258,-1996488700,788001862,1183384866,-2136910132,-867816703,-227082416,383534733,-193527984,297370,-1036090624,427115776,25207126,1087129131,-227082416,383534733,-193527984,312474,-933313536,24641318,385238669,23586896,385238669,-26032,1183383552,573503476,-867792635,30581078,1355564587,-1913489665,1343682118,-1695254785,1252,12729987,1444508997,721539745,1346423878,-1913489665,1343682118,-1695254785,65535,16981665,961016390,58591870,1593702121,49120095,1562371467,707149,-2081649835,1183518956,31466760,-388823631,-1946401143,522520646,-263812864,-1324857717,99144457,1183383632,78553592,208977931,1946157373,146715,820715892,-1979955573,1183578694,-230258192,-1980217717]},{"sector":6,"data":[485228102,-1980742005,1183578694,-1947538436,1183447110,-62485510,-1947056503,-538185658,-1962654069,1183385174,-162100748,184188547,1589906045,-196673548,537380390,-1711651189,1996443730,-193527818,379290,-196738816,-762172,396424262,126363137,183664259,1586170493,-196673548,805815846,-1712175477,1996443730,-193527818,391578,-196738816,-762172,396424262,126363137,184450691,1586170493,-196673548,805815846,-1711389045,1996443730,-193527818,59546,1575324416,1426065090,-326898549,138840842,-388822095,-1946663287,-534443962,-754601721,-163149336,-1962654069,1183385174,-61437446,1023297223,-297893120,561315842,285099719,-125926655,-2096530420,-955451282,18153030,16285315,1187453045,-352318216,-125926639,-2096401152,1962997374,-129579259,2122514456,175966968,-368956,-970524090,1183522823,1347590648,-231681,-1214580106,16777222,1589967430,-96010246,637606048,2122516360,175966966,-369013,-970524090,1183526919,1347590646,-231681,-493159818,16777219,1996487238,-92864516,519980683,-26032,-443875328,442973,1167087646,518818645,-326903666,1183536690,17841420,289213300,-385649407,-991362509,537315072,-2130706427,-805038530,-1925679865,1343672390,-413976,179834486,1183666176,-1706027312,1841,382748301,-110499760,-1207011585,-1924136949,1343672390,486042,112640,-16551703,-6680970,-2097151745,1208227390,1048774516,1967719446]},{"sector":7,"data":[-783890865,77111296,1183334660,242679760,1342179512,382748301,126523984,1048772608,2113995516,77242393,1183334660,242679760,1342179768,382748301,133798480,1996423168,571406,112720,176396880,-1779761152,1342193848,-150991432,1073768494,161847888,1183383552,1975520250,-373282043,379650797,3620100,960324468,1030059008,1735655482,1946174013,3423506,1048798325,1962934376,85893469,-956233751,77656134,-1207011585,-1957691388,1344204870,16777114,-92864768,16777114,373195520,175387140,68566659,-385649611,1048772830,1962934376,13953283,-1207011585,-773259258,-263796992,-1125449132,1055934151,-944379136,31649862,1586212587,509690,12861059,-385649408,378208413,-1070923580,-1980610935,1721889878,-163149568,15222471,-1956451584,1183053406,529203958,915137489,381158558,53016320,1452012102,591348,-1981135223,1048833110,1951007766,373195527,259339780,-1280257,-6624650,184549631,-1960872768,1344207430,-1280257,-1030034826,-1962934264,1344207430,503332792,-26032,1191116800,6857192,2095597113,-96040042,-2070261730,-1996488701,-1072956346,-259323532,-956670325,-1962868928,1183447622,-17241616,-1207011585,-1706033148,2384,1355695753,16777114,-831062272,1342439864,-1169113045,1347552232,16777114,-26112,-1796669440,172395518,1946157373,146715,417923957,539905,820577141,605441,1323893621,-26089215,-1207011585,-1706033151]},{"sector":8,"data":[2445,-26032,-1073020928,-722926731,537315325,-956301051,188422,373195008,1963446276,242679561,1342177720,1048794859,1966343190,242679639,1342178488,653722,-6664192,-1996488449,1085861446,1191137280,-294191122,16777114,-129595136,510967819,-1207011585,-1957691388,1344206918,-1695648001,65535,519587467,-26032,1996423168,-126419186,16777114,-44439296,68566659,-2096204750,855905854,1048774516,1966408726,242679573,1342177720,16777114,-1070903296,-26032,1996423168,41084942,-2082060663,906237502,485032821,373195773,58018308,201134825,-385649216,1187512139,-2096889628,1107564094,1191117685,-499712028,-461963518,1347469355,-26032,686358528,373195263,1946669060,-536426666,-2097151742,335934,-790035596,242679804,250200107,675185663,57934082,-213271,146280054,28856320,-1617276928,-16777206,163057270,-1070903296,-195095,163057270,28856320,-6664192,-16776961,146280054,1591929600,-1962742397,1297948645,503319242,1430622296,-1910575989,283935704,-62470314,1183514624,68592390,1946175549,4799759,-1986459020,1451882566,8514042,-1157627976,1347616767,16777114,48014080,1358448327,-96024832,2122514432,175458566,1392002759,-96024832,113704960,764,16008903,-1959531776,-422448010,1342177720,36091135,16777114,146688,512432501,-472841476,36078731,77105033,50071295,50085507,-16023807,-861801402]},{"sector":9,"data":[-196724476,1048823164,2113995516,-129596664,-94993663,-633929984,112641,-1202695527,1385758726,-26032,1183383552,-633929742,-6664191,-1996488449,-1705970106,65535,-1996269405,-956081642,16794118,1958873856,-633929951,-92864767,-493825,-16588234,-16445386,-1710944714,65535,1090274953,-1070917771,1620048,1354771280,-1706012592,65535,16533191,1107740416,-1593835520,101385048,141820762,-1695123713,65535,1593591435,-1962742397,1297948645,1426064074,-326898549,56140040,56235659,-1980217719,1187510870,-352321284,-128007149,653805311,-1986525302,1174535750,-62455816,956974731,-444793786,-500028,-1977157562,1183422471,71732222,2097038905,1183401988,-62470146,367722496,-500028,-1977157562,106873863,637945599,1191118728,-28931076,2096907833,106874083,509478,-1034033781,-1957363704,317490156,-96024746,1187446784,-956301064,65094,68566659,-385649335,1048772784,1967653910,10938627,-1207666945,-1706033148,3341,219388496,1183383552,4241654,-163119280,-1695123713,3365,200951433,-14322496,79168630,1183535104,-11526406,1083897462,-2097151987,906237502,1183517300,-1706025222,3402,1023678113,91488306,1962947901,74907465,1342179000,588954,-1818603520,-1996488695,1085863494,1191137280,-159973386,503450,-129595136,510967819,-1207666945,-1957691386,1344206918,-1695123713,2496,519587467,164272720,379650048]},{"sector":10,"data":[3288324,1979717693,47114499,781434883,267954175,-2131075445,57999423,-16598039,-1014299530,-1070903266,244338768,186288616,-385649216,1187447460,-385875458,1996423836,1354771204,644506,-94467328,1962950528,42395907,1344193419,68566659,-1593477834,65733346,1342177976,16777114,40560896,16416387,1642660725,-94467326,1962950528,39250179,16285315,1307116405,1996444418,74907640,-1996303896,1038745158,-92372222,-385649408,1586168372,4161786,703136629,1996444418,281077764,2122571243,57999610,-1962797079,1065417310,-385649408,2122514956,57999608,-1962802199,1065416798,-385649408,1996423672,1996444666,175564804,2122557931,57999610,-16653335,1996487286,-401698812,1183388400,-603535362,-385875967,2122514892,57999610,-1962818583,1065417310,-385649408,-11337288,937952374,-9705196,597658,1958742784,74907398,-2097035800,1962998398,26667267,-362753,1760035958,-12064489,-1996187487,1048837190,2113995516,74907414,1342179768,16777114,1958742784,77242630,-244087,1187511366,-1593835276,1178141900,-1206419980,-1957691391,-472779682,36091903,731546,212224,-861857931,-196724476,915096181,960890008,175438966,-336693623,-196673780,-1700674069,1183399940,-297366802,1183334404,-247019792,-230242758,74907392,1342177720,1347469355,384845453,259037776,233504768,-772514165,646417379,1183399938,-25874,2107244544,184549390,-16354112]},{"sector":11,"data":[-68680586,-600375552,-26110,-1039466496,1996428661,1619972,1354771280,-1706012592,4054,-16731159,-1711088586,3052,68566659,-15895223,1996484214,-25860,300613632,-1149185,-1070859146,1347440720,16777114,-28931840,16777114,-28931328,645185547,1946157373,74907407,68566659,-1205242551,116064290,-1207666945,726663192,1347440832,198220368,-526385152,1093507073,-61961472,1976056649,-40179448,-352312392,-28915747,854261760,233639360,235540522,224660878,241045546,271191676,271192106,271192106,271192106,271191614,271192106,271192106,245370528,2122517902,141820154,-1694861569,4162,16285315,1996425332,134322936,1183514624,-443851010,180829,-1275051,-1866988426,-1202708991,1344144564,1343230136,16777114,1575324416,1426064066,-326898549,1988843012,-2146702588,192159804,1949056128,1015039494,-1980730112,1015086710,-16550912,80150086,-27358464,1183319946,1948269820,1965833220,-28901627,1183575019,-443851010,180829,-2115204267,1442925292,11421383,-964245760,-956301058,2097205318,-21461305,1187446784,-973078338,-956256186,118342,1342193848,1342198200,1114778,-1199142656,1958743038,4241475,5355600,214473296,1183383552,1958742974,-960593105,1031078142,1342194360,-1714403701,-6664110,-1996488449,201246342,-1176341056,1183514626,-101213744,1037059721,-780337052,-1207666945,726663192,1347440832,316971600,-1008140288]},{"sector":12,"data":[-961085695,257596158,1183383552,-1135179334,-1979294069,-1232697337,1948269822,1965833220,105316101,1996483307,-17569786,-1951250807,4161752,1996425332,1685508,-1533365013,184549394,-955550528,52806,-402360577,1183579822,-1957683706,1344192070,-20412787,-1444392938,-1132033783,-1102672898,848973854,-1996488686,1183563846,-11526466,468238454,-934901499,-1098904085,1965883062,138840851,-1962391809,126486622,-21592440,-428597188,-402098433,1183448697,-2133292110,57999423,-2097084695,16694462,-51838092,74907392,-385869128,1183579948,-1957683704,520009862,1354771280,154593360,-1950988663,520009862,306223696,-2037841920,1183579834,-1706025464,4717,2080395325,140413703,5195718,-10582387,1183535126,-1706025464,1738,11959939,-2037571468,1343684446,1226138,4996352,-2037575555,1343684446,503337144,329423440,-2037579776,1343684446,1342185656,382879373,-310450096,-20674935,58048523,-1711083031,4841,11959939,-2037570444,1343684446,579482,-957314304,16734850,-1207666945,-1924136927,385834630,1354771280,1996427499,440324,1354771280,1585876304,-1706027265,3886,1289626,1958742784,-834222325,1996423168,-44767228,-1984805237,-397408186,1183448425,140413874,1946173312,-16586493,-21447037,-16157696,-1694582602,4910,12484227,1996425332,271882942,-1098711040,1946222278,-961085678,259824382,-1224802304,-6619450,-2097151745,1962978942]},{"sector":13,"data":[48425219,13139587,-639040651,112642,-1962748439,218480710,5258496,-2037573507,1343684296,384845453,-1102673072,1174657676,-397389120,-1070922706,-628716208,-1202710786,-397410274,-2037516183,1343684314,384845453,145988176,2122514432,729022670,1295514,74907392,1342179256,-19233139,412766230,-1711276025,3911,192200715,13518535,74907392,-1946387992,520009862,1585876304,-397404417,-1073020231,28841588,-2037755904,765001566,-1706033087,5170,309706763,-1207666945,726663174,-1957670720,-383907770,1183579446,-1924129090,385813638,41936976,376750091,1342177720,-15956342,4271512,249666128,-1073020928,1996427381,964612,1354771280,105286480,2122564843,225706190,-402360577,-1073020439,-1209465996,-1199141890,508567294,343054928,1183514624,508567230,39688784,-2037579776,1343684446,-15956339,-6664170,184549631,-16157248,230163574,-55645952,-21461365,-1070903266,-26032,1183383552,2109737926,74907417,1342179000,1347469355,-21461365,1251627038,-385875951,1183514797,726671038,-6664000,-1996488449,-1072973754,1996429693,358849222,1996423168,964612,1354771280,-1102673072,-57367,1996473974,-1166606404,-1697614081,65535,-10713463,1064747019,1962934077,-1200160966,-4425985,-1705985418,65535,-19364215,-10713461,-19364295,-1635007116,1992621784,947922618,-385649638,1996423378,-356456264,58048523,-16726551,-1276594058,1975520234]},{"sector":14,"data":[-965279986,-390564097,1187506970,-16776786,1805301878,-16777195,278578806,-1962934250,1344192070,-2070261730,-1962934251,520009862,-1706025392,5545,382879373,-355801008,-20674935,-20660605,-385649664,1183710558,-1924131088,1343680582,1498010,-263811840,-426094570,50331669,1040104070,377290832,-21461365,-2046567796,1347616442,384845453,369465936,-1098711040,1962999484,-41686781,384845453,297769552,1174601728,5258688,-1847000196,-1102672899,1174657676,-1924115776,1343680582,1493658,-42276608,-1698269441,5656,-1699186945,65535,515786379,-336598960,-1207666945,726663183,-1957670720,-369182586,-1070858792,1575324510,1426065090,-326898549,-1959204078,1178141766,-15895314,-6623626,989855999,259327046,-1929087233,1343680070,16777114,-1928008960,1343680070,16777114,-297366272,-6664170,-1929379585,1343680070,1347469355,112720,-26032,-1073020928,-526274187,1575324418,1426064066,-327029621,1996423296,142016266,377505421,16824400,-26032,-1073020928,1996433020,74907398,378029709,308058704,1996423168,74907398,-16353537,2090468470,-1207959550,48955393,-443826133,574045,-2081649835,-2091513108,1946158206,75399951,-1005619967,-2144991650,108342847,-385875528,1183514783,139889414,-1980348791,1589966934,2139105014,611662337,-1744336346,-372709296,-526333813,-935618559,-1070922636,1183020011,1854079734,2122514948,-1066139644,653680324,1968979840]},{"sector":15,"data":[72286181,-940161281,64070,1074077345,-1946270071,1178141766,-1005552134,-2144930210,292903999,25133094,-1962248960,1065418334,-340560640,-27358333,-1963047169,-397371385,1589963106,-163119114,-1977169781,-1957652473,-380573455,-1904884165,-335919361,-443851082,442973,-2081649835,1183516396,240552716,-1979955575,-857080234,708679680,1030321152,57999406,1023445225,661913663,-237884,-1977156538,73319431,637814527,1589905288,126494216,184174216,-385649216,775684247,-1006596631,-2144991138,259272255,638076671,1589905290,71761668,-16283610,1978399814,788168320,1589911412,138870536,-1006138842,1191117918,126363140,638082756,1183319946,1975519994,-60898085,-2012771802,-1073022394,775701364,-1014284428,1191166604,-991499268,1191181406,126494460,-16490812,-2010774458,-2146833657,1949235838,138870544,638082756,1183319946,1975519994,140428522,4161574,1191117684,-60898296,-2012771802,-1073022394,619250548,73319679,509478,-1034033781,-1957363700,-655588884,-1035548928,1187446784,-1207959090,-1202716608,-1706033072,6369,-12679543,343195659,1342193848,1342197944,1109402,-800683776,1215676427,-1207666945,726663192,1347440832,440572496,-1098711040,1946222398,1052180233,421042943,2122514432,141820112,-1697614081,4896,12746371,837354357,-864124158,-385649408,28836392,35973376,-402098433,1183446837,-2133292092,141819967,-1207666945,-1494548464,-402229505]},{"sector":16,"data":[1183446813,-2133292092,141819967,-1207666945,-1897201639,1715354,1958742784,-834222325,1996423168,-153556988,503858827,1049004880,726671103,-397389632,-2037710380,1344208702,1684122,679905536,105286655,1183535134,-1924129072,385822854,28502096,516966027,446208592,1183383552,1049004998,-11526401,-385931082,-1072956122,1183518581,-11526448,401131126,1958743037,112645,-1070923029,-1949546871,1344145478,1342185656,382879373,-433919920,-13728119,1786036235,503858827,3192912,-767128240,166219798,1975520230,74907410,1342179512,1347469355,503858827,-76311,112723062,-1695749376,6727,-1207666945,726663176,-1957670720,520044166,347839056,110755840,184549403,-955550528,52806,-402360577,1183708662,-397404462,-2037783048,-1098645714,1946222382,-24188669,13532803,1996426612,-71047164,57982987,-1912701975,1343680582,384845453,360159824,1183645696,-1706027280,7228,-14121469,2097172541,1049004822,64654591,1392453766,-263811760,-1885712362,-1962934245,218482246,5258496,-2037573507,1343684400,384845453,-800683184,1174657676,-397389114,45677782,-2037559296,1343684418,1342210232,-1913581336,385827462,-263811760,-2103816170,-2097151982,1946209918,454924843,1996423168,505860,1116114256,-1706027265,5055,1150874,1958742784,-834222325,1996423168,-182392828,-12679541,1183535134,-397402416,87942770,-385649408,289275621,-385649408,1187512029]},{"sector":17,"data":[-385875518,-1070858492,-1034033781,-1957363706,887915500,638344900,1946173312,-1933341931,1347567810,503338424,344169040,-1073020928,1996429173,142016266,-15829249,-275116938,-1207959525,-1343684607,138840834,-1995811189,1451871814,207537360,25133094,639268154,1589905290,-834207794,-1962440666,1191169630,130426574,205947706,207537154,775913510,-504822924,2139104768,125066241,25133094,-14387968,1996476534,85893582,832196638,-16777188,1589906502,1065363150,-385649408,1191116980,-990909490,-2144990114,1949172095,10676483,41910310,638219356,163712,-1847000204,-797507840,-1580304641,1344144670,1430170,175570688,-1710721281,5555,-1962392061,1183386198,-799634994,34358915,1325335531,-832650034,1547665446,1589965941,1065362956,-1961855744,1451952198,-799655670,1178142069,-1961003826,1451952198,132362,1976587835,-834258127,1589914741,2139104776,578107905,-338802945,-834237667,1023952427,461176911,-15966524,-1977217978,-832650233,651052799,1589905288,1065362956,-992316160,-970535330,1183514631,173443848,-1982970231,267112534,718044800,2122323572,276037836,-993114369,-1977168290,-867792889,-462078148,-16091393,1471678582,-1706025472,7446,58048523,-1946252055,1451952198,1347567626,503339448,461019728,-1073020928,1927873397,-832649986,4161574,1996450165,142016266,1342189752,383010445,-488970160,1400225803,283723510,1183534452,173443848,-1982970231]}]],[[{"sector":1,"data":[65785942,-993114369,-2144940450,-193658817,-1949413633,-2144940450,58022975,-1946278679,138816451,2080395069,-31987453,-1949415681,-970535330,1191140359,-832664626,509478,-1946287895,1451952198,-834238198,-338667895,-834207997,651058884,1962950528,138841076,956978827,376884806,651058884,1183319946,1949973708,1952201737,-833683707,1589960683,126494414,1020020360,1006924892,-1957595846,1452002886,1347567824,-16353537,1575486582,-832650240,977240102,1191117685,-832650034,-2012771802,-970534330,1547436039,1996437621,142016266,2053018,5192960,1996433533,142016266,503340216,540580432,384499712,-3115265,1996476022,74907398,-1006628888,-970535330,-1070923769,-1034033781,-1957363700,82609132,71732054,1946568203,-990499996,-1977218978,-62486521,561299466,494153276,-1006090497,1191117918,126363140,150897478,166452604,788299392,1191121012,140428296,-2012771802,-1073021882,-164894091,638082756,1946173312,138870549,-1006138842,1191117918,126363140,83788614,1589961340,130426372,-443851264,574045,-2115204267,-956251412,51782,1342193848,1342197944,1625242,1082558720,1975520255,74907413,1342183608,1347469355,-1281732528,-385875937,1586168363,-2012771834,1023360646,1006924832,-16419540,-353696186,-402229505,1183445333,530488008,-1073020928,-169278603,-800667903,1996423168,-249763836,-1962809367,1344144966,-12548469,-1070903266,367546448,-834237956,-12548469]},{"sector":2,"data":[-90550242,-1996488673,1187511878,-1962870836,-2037840314,-1634992316,1065418564,-1978436608,1049004039,1950301439,1965702148,-867776689,1183514656,-11526650,1183698038,-397404462,-2037784444,-1072955582,1793655669,532191745,1996423168,440324,1354771280,105286480,-90550242,-1711276008,6501,58048523,-16691479,-2014837642,21359088,-12286209,2122552555,225706192,-402360577,-1072957855,1156121460,-263811839,1183666198,-1706027280,6798,384845453,428972624,1174601728,5258750,-2037705347,-628293824,1392395779,-263811760,-1214623722,-1207959526,-1924136957,385828486,8435792,-338433968,-12155251,1183666198,-1706027280,6907,13663875,1520053108,-16777184,129500278,-2037559296,1343684422,1775770,544512512,-1073020928,1187449716,-16777008,-471333770,-830569489,-1706003456,8359,503727755,-506599344,1946158397,1064204,1187458420,-352321078,74907413,1342179768,503727755,1354771280,519543376,-778436608,184549408,-11766592,-1679293322,-12260369,179831926,-1070903296,-1948652720,520044678,-515381168,376750091,2039450,74907392,1342180280,1347469355,384845453,-2037662997,1344208704,-385976577,-1072957958,1187448180,-1929379382,1343672902,-1981851672,-2080423290,16728766,-1041693835,-934900738,1342588553,-1980803864,1586219078,4161542,250151796,1086227454,158597375,-12536065,1641114,-901346560,-1034033781,1478361092,-1957345904,-661774612,1460464771]},{"sector":3,"data":[-196688042,1183515808,-96040696,1183516395,-96010246,-2131075445,-227270593,1191117803,-94467078,2132819840,541032693,65743221,-1946532097,1065417310,-2131397600,393478207,-1207535873,726663184,1347440832,584555088,-1070923776,-16712471,-1711087050,65535,1183576203,-1202708984,1344143454,1899674,1958742784,140413723,1965703040,25133062,-1962052608,1065355358,-1207602176,48955393,1183432747,1958743032,-163133580,1586167808,775913480,1191125364,705137160,1372138468,575183440,1586167808,-196673548,1191118728,-159480842,-1948812280,1065355358,-1961855698,1191179358,142511092,-1979169025,-955807739,63046,-2146935157,561250367,-1979169025,736373255,-1706012215,3316,-762229,126415942,-2081011969,2080634494,-195130409,1442842566,1342194360,16285315,146277748,721611520,-1885712192,1442840610,1342194104,16285315,146277749,721611520,-1667608384,1442840610,1342193080,-1705983957,65535,1577058744,49120095,1562371467,313933,-2115204267,1442876140,-402229505,-2037781071,-661913736,1946173312,74907415,1342183864,1347469355,-1566945200,721420320,29223360,1342178744,-8747379,-2135404522,250105856,105286633,77221918,-1929379805,385841806,-1695511727,9355,-2143435261,-1927119616,385841798,105286480,714756126,-16777186,129500278,-2037559296,1343684474,2119066,541301248,-1073020928,1996424820,-317659132,-1996077429,-335579002,2022113028,2023656447]},{"sector":4,"data":[4161791,351007605,956712587,1929345158,1992196121,309607167,-8876289,-8872309,-2037905526,1547501430,-2030051723,-2037645448,1183448952,-1961432066,-1962968930,1988528135,1958742783,1949187092,2022113040,2022083583,-28955649,2080376893,2022083550,-28931585,-1098904853,1949237110,-28901616,-1963041141,1988528135,1975519999,2022083561,-1957683457,1344208454,2103194,2023656192,4161791,-2030107532,-2037645448,1183448952,-1962152962,1065418334,-15764480,1183579718,2022059006,212479,1586227580,509694,503727755,-587798448,309641227,-1207666945,726663200,-1957670720,-383908282,1183579819,-1924129274,385841798,-228071344,58048523,-1912693527,-1979745658,1452079686,-16520196,1589967430,1065363194,-336300800,-95486205,653942468,1968979840,2089192948,970034431,125172814,58054715,-990230785,-970524066,-2037579769,1343684474,-8747379,362434582,1342177310,200432104,-385649216,28900929,-443851264,311901,1167087646,518818645,-326903666,1748927280,92080640,-352294751,702467,-2080881015,26686,803799925,2734081,86126327,-1996484603,79230534,-6664192,-1962934017,-129594424,52309751,-930365181,-1727848799,-120470997,-1048328189,-196179709,435046087,-263796992,922681369,1183646434,-1706027282,65535,721609889,422442566,-230258432,2112767545,-297366779,1183515627,-297367054,721611425,170783814,-230258432,2112898617,-263812347,1183515627,-230258190]},{"sector":5,"data":[2097154621,702469,1183515627,-263812622,956328097,91551814,-352321096,-1547687166,1187447586,-956301062,-1865876410,74760203,553406080,31078143,1342182840,382748301,2013264,-26032,1755381760,48145152,1342194360,-150989128,-1727865298,530206802,-1560281071,-1073020184,-1070918539,1620048,1354771280,-1706012592,9796,-122147093,-1924129280,1343672390,-231681,1996487286,-260636690,-624897,922743926,-1070923038,-633929904,-1706012671,65535,-1962742397,1297948645,-326412853,-1962480509,1344144966,2291610,736512,1586169726,189253126,105286400,-335788407,-2012771802,1060961862,708576372,1996428917,2013188,1354771280,-1706012592,10081,720093227,-1946401025,1065417822,-2133691136,123454,1996427124,31635460,108461904,-352316952,74907401,-402229505,-443875076,311901,-2081649835,1187398380,1187446730,1187383504,1183645905,-968455726,-1916250484,1183441478,-1000960830,-1933162869,-1102673454,-1950329207,1183385158,-27357956,1183522283,-968479810,2097154877,-60898265,654067455,1589905290,-1102643266,-1006139354,-2144928674,-629866433,1589906155,-1102643266,537380390,733890187,188597830,-1947501568,1451999814,-1102673468,-1950329207,1183384646,-27357956,1183522283,-1035588674,2097154877,-60898265,654067455,1589905290,-1102643266,-1006139354,-2144928674,-629866433,1589906155,-1102643266,537380390,733890187,188596806,-1913947136,1343670854,198841320]},{"sector":6,"data":[-15305536,515377270,-1070903296,1347440720,2619290,-339727616,112643,-1034033781,-1957363706,1055687660,-3520826,147867334,13715142,-1982708083,1452066374,-1982690104,1451868742,71732164,-1929623927,502005342,734152331,188597830,-1004045056,1191181406,126494460,-4038972,-2010725818,-60898297,4161574,183229045,-4038972,-970538426,1183522823,-968479806,2080377661,-901345813,1609060374,1958743001,108461846,1342185144,1347469355,-1634054064,721420321,-1207702592,-443875327,311901,1167087646,518818645,-326903666,77373788,-1913370999,1183425606,-61436678,1183522795,96807930,1329397852,-1004831488,1191119454,126494218,-368956,-2010711482,173982727,4161574,1589958773,130426618,105286400,1946699275,-1538880165,1656246294,-1706025472,8637,947175435,737822347,6030789,2097172029,-94452693,653936383,-346290234,-96040161,1543882027,5192960,1589910397,105316102,-1006138842,1191180894,126363386,637951684,1962950528,-94452520,509478,-637241,-1518436097,-1974635206,-466967482,1347537195,2228890,769927680,1183383617,-129579018,-861863936,-129615612,1586171517,-1948003848,-2026244538,963969574,956615841,1149106246,956603553,208992326,-1694992641,10556,1165279243,-622973,2122319486,208928934,379864717,-665655216,175489035,-352321096,-129564886,2122558699,142540790,-1695254785,65535,-1207011585,726663199,-1924116288,1343661126]},{"sector":7,"data":[2476186,-2084558080,-443874579,-900899553,-1957363702,250381292,1183536727,8168196,12861059,-385649408,113705112,390,52575875,1343714304,1342177720,-1588543445,170722014,-1070903296,-26032,922681344,-2036727064,-1996488662,1451883590,-1005155330,-1983894784,1451882054,-96040456,1996440555,-25862,-1073020928,381170804,-94467328,915137489,687277214,-1946794493,1183447126,-195655182,-2080618812,-1961427898,1586229846,-1946645516,-611442958,-234878023,1191124901,25338362,2096776761,-399048779,741448194,1599995904,-1034033781,-1957363710,753697772,1996445271,112644,-26032,1996423168,571396,-26032,1347551232,16777114,56402176,-1996486651,163110470,573503232,-1577547003,-956103956,-1560279035,-956103918,50430115,30581703,-788192607,-335150112,525570,-2082978167,190526,-1259797643,-399048959,290888194,1183383552,-162100748,1988752939,25946586,25572921,2112422782,25600257,989858309,-385646650,1183514992,506394586,-1580692733,-645201122,734147481,178626,-1036781357,-670842325,-1946657143,1452012614,591350,-1981790583,1183441494,-229209616,775686123,1191121012,-262224656,-2012771802,-1073032122,1996483701,571396,-126419120,-1935617,1183572086,-532272144,726047312,1183514624,-229209104,-1979955575,65797718,-990099713,-2144928674,-193658817,-16484609,1996480118,-227082248,-1947175169,-263836733,731748944,1589903360,133572340]},{"sector":8,"data":[-15371248,1996424310,-126418984,503348920,505936,11462992,653549252,638023679,-1929021441,1343677510,427930,-96040704,86126327,-2734455,312542326,-700044541,-126419120,384059021,-92864688,2874010,-195116032,58195750,384059021,-648746928,384059021,737385040,1183383552,573503482,-700020475,-1593542913,1177223552,1996443862,-465138184,1996443670,739744506,1589903360,2013210356,-465138431,384323606,-465138214,295325718,-1996488666,788003398,1183384866,74907606,721539745,-11479482,1183709302,-11528476,1268447862,-16777213,-2092508602,957805638,2114117174,-26416893,48772863,1261210,-1956684288,79846885,-326413056,1443687555,-1996388703,1187509830,-1962934028,-1073018810,20780660,1025012736,443809794,1946157885,277788,652942964,-768313,-954209281,128070,1187453163,-335546636,-196688111,183173130,721700491,-1996388858,1183577158,-2046426636,-566850815,183403266,25572921,914949246,1048772998,2097152390,-2046376186,-1962934271,103544390,1183383942,1958743028,175570787,385369741,-26032,513867776,-1036805885,45728299,871944960,-1983763518,179894854,506394368,-96075005,-113015,28838518,922701824,-1706032762,65535,722106111,1183535296,506394612,-1070903293,1183666256,-1706027272,65535,-1710590209,65535,1575324510,1426065602,1183575179,867588,456999540,1027437568,292814881,1946165821,2506012,675094388]},{"sector":9,"data":[-350129152,108461871,1342177976,1347469355,-335619352,108461855,-352320584,108462062,-403980245,-1207535873,-538247167,-1710852353,65535,-1034033781,1478361092,-1957345904,-661774612,-1960514429,20778054,1025864704,1316225026,1962938173,8710403,1946162237,16792946,-1377238155,18169088,-1796668555,11462912,48379647,3012506,-62486272,3913808,112720,772250192,1996423168,-75569138,-1710328065,2309,-375799765,922681492,-1399192862,-1996488671,-1202652090,726663227,-6664000,-2097151745,190526,922683764,1201275624,-956301293,31750,-3544320,1996426870,-26102,-1125449728,-1928431873,1343675462,16777114,242679552,-388204801,1996487636,-599356146,-6664170,-352321281,242679703,-16091393,1996425334,-36050938,1996457707,175570702,-369180440,1996488570,209125134,-16091393,1996425334,-26106,-310181888,535137026,181030237,-1873273344,-326412987,-2116514274,-956238100,41030,217728710,-1979294069,176588807,1948269823,1965833220,105316101,1586227947,4161542,-1070922379,-1207753751,1344143568,503378104,11253840,-2037559266,1343684374,1342210232,16777114,377916672,-1773762049,-342337908,180256778,292826367,-996784385,-1977182626,176588807,1975519999,-1772174104,4161574,1191122548,130426518,-1978799360,-1728116090,1996496957,-1773732079,647388868,-2037905526,-1073021174,1183573365,-1739158634,-1985722743,350987862,-16073088,-1977912276]},{"sector":10,"data":[-1728116090,1979719741,-1773732079,647388868,-2037905526,-1073021174,1589960309,1065363094,-15043584,-970549690,300613639,-16087414,2112920,742130806,1191121269,-1772174186,-2012771802,184486534,-1948158528,1451988550,277252504,311855615,-1978799105,-1728116090,1979719741,-1773732079,647388868,-2037905526,-1073021174,1589962101,130426518,-1537293312,4161574,-1098895500,1946222358,278840360,1065363199,-14781440,1996465782,377916836,105912063,1354771283,-26032,1183383552,1975520156,1354771221,1342180536,1347469355,-1013297072,-385875919,1996423636,-700019300,-6664170,-1962934017,1174656582,51684318,-1545582965,1996423844,702620,-26032,-2037841920,-1952841972,-150793202,344361465,335988735,-956301308,205830,-499712256,1354771202,3193498,108461824,-1981808408,1586208326,4161542,1048785012,1962935316,-633929868,6600705,-11513191,-16588234,-16625098,-1711124426,65535,184816803,-1204193856,-397344773,1048774623,1962935076,-499712227,112642,167942736,1048772608,1946158100,339148553,763402756,1996423168,-25956,1183514624,18016672,-1197705473,726663177,922702016,922682652,1347421466,3220378,339148544,309252,105286480,765087774,-16777181,179870838,1183535104,-1706025466,12841,105286480,-1070903266,1939492944,-1996488655,-1072956346,1978205053,105286655,-1952299383,1065394782,-1975028736,176588807,1948925183,1967078404,108461876]},{"sector":11,"data":[-6523137,-385936202,1048772767,1946157860,-12130045,-1197705473,726663179,1347440832,-6664112,-1962934017,1183424070,-337031162,-1572405250,1183560171,-1571881210,-1969070453,176588807,1952201983,1949973561,105286453,817385502,1183666176,-397404502,-1072968088,-1070917772,440400,1354771280,105286480,1570394142,-352321486,-1085868399,-385649392,1996488571,-1669923066,-15419649,184747752,-385649216,1187512180,-385875552,-310116500,535137026,46812509,-326413056,30076033,590518870,-1073020928,-1070922124,-566171568,503858827,1049005392,726669054,-397389632,-2037520068,1343684158,2864794,-62486272,503858827,2144336,-867791536,-706195434,981895629,1975520254,42526979,-1202667477,726663174,-1957670720,1344145478,2707866,40954112,384452237,-364475056,-258322410,-1962934241,-1903297466,-1056702914,1347605132,384452237,601201232,-2037579776,1343684158,-29456755,1721389078,-1929379820,385760902,1354771280,1351322,1015449856,1049005566,-1924131074,385760902,846174800,-2033778688,65078,16664263,-129579264,-1293352960,-92372223,-385649153,1988821446,-897399046,-2037579522,-2037776694,-1769144636,-2033713466,65080,16416387,-2031549579,-997815551,-963212290,-1064924674,-1030321666,-1063336706,126494462,-20412792,1165279242,1098123836,913639740,-29981045,-1542550631,66713346,234764422,-654835720,-11893111,-11893109,-11890945,58048523,-1962885655,-116554]},{"sector":12,"data":[-956417914,553602178,-1098849557,1964703432,108461947,-29968641,-1912703233,385830022,951517008,874879742,-2037710848,788004408,-2046754140,-2033713610,65080,-20398464,-385649654,346095795,-28966653,-29980985,-2030108672,1191182016,71732216,1962427961,9824515,16271047,-28915968,1996423168,112646,1354771280,1347440720,3452826,-1098479360,2109737982,14674281,-20398464,-1961921268,-1991769018,-2033780666,-385155384,-2037710993,1033436872,208797728,-29837685,-29849857,-11763064,-29835647,729088128,-16353537,-117066,-2037514634,1343684428,1342210232,2822810,948341504,-1540425730,914751746,948357118,-16776962,-369180538,1048837835,1962935076,-1064924298,-997839874,-96065026,-20937077,-20801909,-20674935,-20539767,-20930876,4161574,2122516085,745865466,-20930876,440369190,1944650612,-14816258,-1912718154,385796742,8370256,352098896,1183383552,1992297466,-30283517,-1207535873,726663169,1347440832,-241545136,-1996488656,201244294,1342471616,-16528664,-1694614346,5338,382486157,-880089008,-29718903,-29704573,-385649408,-1956708986,113401317,-326413056,17886337,-91830442,-1929379586,-1979744634,-1929447802,-335611754,-158954719,96807934,2067595394,-1004831488,-67938,-1946225018,1191118966,637831688,1586169736,4161544,-2037655691,-986972426,-1996455419,-1631257018,-2144928010,1952251775,2139104783,141835007,-17398017,1544013350]},{"sector":13,"data":[-17391932,-17398017,705152550,-17391989,-17398017,772261414,-17391989,-17398017,705152550,-17391989,509478,-8485235,-2037559274,1343684348,199300328,-1962445376,-369165690,-2037579520,1343684348,-385976577,-1072963254,28837237,721611520,-91846208,1975520254,13822211,11404999,-2037579775,1343684348,16777114,-26112,113704960,386,31211139,-1204587520,-1202716608,-1706033024,7901,-8616311,510967819,503369912,16824400,683167774,-1957683712,520060038,8435792,786799184,1048772608,1946157252,-1005155490,-1983894784,-1979780986,-1979780458,-335612794,-258030527,133572350,-1961134832,96636099,1347551241,503619768,2092367696,-25857,-1073020928,-2101472396,-14906623,-1948004092,-1962631626,-1979779962,-259620096,-2030102786,-694026508,-192530175,-2085192450,121918,-1098706828,1946222460,2092367625,557161215,1996423168,74907398,-385873176,-1956708615,113401317,-326413056,11594881,-1002536106,57999360,-1962814487,721470486,1686538688,1721141759,-196703745,-1979824503,-369142650,381157773,1419676416,-1948003841,-150692298,1686504232,1721142271,1350994431,1385597439,1954975231,-1957685505,100618374,1347551241,3616410,1954974976,-1588586753,1344143532,2300826,1352582144,133572351,-1928563696,1343652422,503361720,-1929328919,1343652422,503360673,929602128,-1631322112,-14221488,-14284937,-2037578377,1343684456,2849178,1753648384,-1706027265]},{"sector":14,"data":[14227,-9138547,-936651892,1394000259,1753648465,-1706027265,14199,378160781,11313488,-1415950306,-1006632905,654266526,-1929152513,385833094,-847714224,-10975603,-728084458,-1929379785,-1929415538,-2084033581,1364402369,-10975603,-1164292074,-1929379785,1343657030,503360673,938187344,-1631322112,-14221488,1183646071,-397404426,1183698485,-1706027274,14326,-9138547,-936651892,1395310979,-163148463,-2036707306,-1929379790,385840262,823433808,-2037841920,1996488546,1354771206,-1912703233,385840262,1656160080,863410943,346095616,-28966653,-1946925313,1178141766,-953387532,62534,16664263,108461824,1342177720,1347469355,-1706012592,14450,-11106679,847036427,52706947,-13667072,-1577102202,-2043084414,58589012,-104471,28837494,-1070903296,1347440720,869112400,-2037841920,-1072955562,-397409155,-1956773881,79846885,-326413056,280311,-1958841280,-79887290,1025012991,678756348,2097151293,-115451,922691454,213386260,-16258304,-1207692234,726663205,1347440832,806591056,166395904,68433663,-352311624,1575324649,503317186,1430622296,-1910575989,351044568,1183663339,726669036,1347440832,1342177720,1478298,1958742784,339641140,309592068,68433663,384583309,375757392,-1073020928,1183650933,-1706027284,5745,384583309,377199184,1048772608,1946157860,608076725,91553795,-352321096,-2084558078,-443874579,-900899553,1478361092,-1957345904]},{"sector":15,"data":[-661774612,1024214667,846463248,1946227005,18234631,1374371956,52692679,922681345,28836578,1704611840,-16777168,-895873418,-956301264,267270,112640,1996434923,1354771214,16777114,35824384,-1710328065,11752,922739691,1622671906,28856560,-627421184,-352321491,-2084557872,-443874579,-900899553,50355210,84776193,50354176,87070721,50354432,87625217,50354688,84717569,50354944,87098113,50355200,84730625,50355456,-13155072,50335488,84384257,50356480,-16212224,50336000,18085889,33554688,34269185,50331904,-15877888,50336256,84849921,50356736,-13057536,50336512,-15750912,50336768,-15777280,50337024,-14088192,50337280,-14040576,50337792,34578689,50331904,-13751808,50338048,34573825,50332160,-13220352,50338304,86934017,50359040,-13252096,50338560,-13253376,50338816,87618817,50359552,84559361,50359808,84482305,50360064,87628801,50360576,87631361,50360832,53863425,50332928,53904897,50333440,69872129,50332160,86844417,50363392,52801281,50335488,84960513,50331904,53352193,50336000,69876993,50333952,53060353,50336256,53087745,50336512,50376193,50337536,50370049,50337792,50372353,50338048,103978753,50332928,103987713,50333184,87662593,50337280,70783489,83894528,34268417,50331904,86144769,50371072]},{"sector":16,"data":[87667457,50371328,86316033,50338816,87659777,50371584,86886657,50371840,70795265,50341376,86822401,50340096,87652097,50340352,84497921,50340608,84719105,50341376,86915329,50341632,86920961,50341888,86374401,50342144,53873153,50346496,51082753,50347008,51086081,50347264,70253057,50345216,51088385,50347520,85349121,50343424,86349313,50376704,86302465,50377472,86652417,50377728,87654145,50345216,51820033,50350592,84360961,50379776,70308353,50349056,86842369,50347264,86835201,50347520,53005569,50351872,86612481,50348032,53789697,50352384,53776897,50352640,51694337,50352896,53650689,50353408,51714049,50353664,52979713,50353920,53934337,50354176,70270465,50352128,53938433,50354432,53956609,50354688,51047681,50355456,53608961,50356736,70263553,50355456,84654081,22272,0,0,0,5,0,0,0,1,0,4063237,774504540,2228266,541937475,541415493,5521730,1144791072,4084297,536870912,0,1061109567,1061109567,4144959,707668572,1543518720,6044160,774504540,6029354,0,1998585856,1701540463,1852776548,32,65535,538968064,1380533308,62,1480916992,1329791045,1229979725,1094844486,538968148,538976288]},{"sector":17,"data":[538976288,538976288,8224,154,1380533308,62,1,1310720,4456448,0,65536,0,1684957527,7567215,1936942419,7237481,7498052,1752457552,1766064128,27507,1769366852,25955,1232364871,7300718,1735357008,1936548210,1850277888,27764,28001,788557168,1968308282,1275068526,6578543,0,1952531561,1416167525,6647145,892416371,846397497,3749171,1148387375,6648929,1416822842,6647145,1954047232,1769172581,7564911,776882519,5066563,1818585203,108]}],[{"sector":1,"data":[]},{"sector":2,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2097409,4194337,524352,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65281,0,65281,0,65281,0,65281,0,65281,0,65281,0,0,0,0,0,0,0,0,14688000,0,15744768,0,16285440,0,16580352,0,16711425,0,16711425,0,16711425,0,16711425,0,16711425,0,16711425,0,16711425,0,16711425,0,16580352,0,16285440,0,15744768,0,14688000]},{"sector":3,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-16711680,16318463,-16711680,16318463,-16711680,16318463,-16711680,16318463,-16711680,16318463,-16711680,16318463,-16711680,16318463,-16711680,16318463,-16711680,16318463,-16711680,16318463,-16711680,16318463]},{"sector":4,"data":[0,0,0,0,0,0,0,0,0,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,1953300480,1818838544,905969765,1853182464,3026478,1275087360,778330479,11822,1866661938,774797680,989855790,1952794368,1718503712,855638127,1818575872,778400869,11822,1917845556,779382377,-2147471826,1699872821,1701667182,3026478,1701402128,1040711799,1869107968,29810,1867251775,26478,134217728,1816199233,1107296364,1918980096,1818323316,3026478,1342192896,1919381362,7564641,0,1107313672,1632510073,25965,2034368581,1952531488,1174405221,544817664,1702521171,4685824,1260419394,6581865,1701860240,1818323299,3670016,543452741,1936942419,7237481,1124088064,1952540018,1766072421,1952671090,779711087,11822,1749221431,1701277281,1919501344,1869898597,774797682,1207959598,1919895040,544498029,1635017028,1936278560,774778475,4784128,1701536077,1937330976,544040308,1802725700,3026478,1392523904,1444967525,1836412015,1632510053,774792557,1953300526,-2143289344,419436805,1006681600]},{"sector":5,"data":[524292,524316,131075,1149390850,1952803941,14949,393252,786582,8388612,8474755,402654208,134264320,1792,-2108685824,2883584,2097192,65550,1342373889,7032704,671117824,234889216,512,-2142240000,1668178243,27749,2004055149,1802398835,1802134381,-2143289344,419436804,738230784,0,524292,524320,131075,1350717442,1769239137,3828833,100673536,201348608,1024,-2125430016,1245184,2097176,65550,1342373889,7032704,402673408,234889216,512,-2142240000,1668178243,27749,2004055149,1802398835,1802134381,-2143289344,419436804,738246144,0,524292,524312,3,1350717442,1953393010,536870970,-1711274496,67111936,-2097119232,33104,1572908,917536,65537,1333809155,1912602731,536877056,33558016,50331648,1631813712,1818583918,1953300480,1819506547,1668115310,1936485226,-2143289344,419436805,1006681600,0,524292,524356,131075,1132613634,1952540018,1766072421,1952671090,981037679,4980736,7208966,262156,1350762624,67108993,-1241507840,117442560,33554432,33360,2621484,917536,65537,1333809155,1912602731,536881152,33558016,50331648,1631813712,1818583918,1953300480,-2143289344,419436804,738246144,0,524292,524328,131075,1132613634,1735287144,1867784293,805306426,-1979709952]},{"sector":6,"data":[67111936,-2097119232,33104,1572908,917536,65537,1333809155,1912602731,536877056,33558016,50331648,1631813712,1818583918,1953300480,1819506547,1668115310,-2143289344,419436805,1006681600,0,524292,524336,131075,1451380738,1836412015,1632510053,3827053,100677632,201359872,1024,-2125430016,262144,11927576,458760,1342308352,738197634,536881152,16780800,50331904,1800372304,7471104,2097192,131086,1342373888,1851868032,7103843,1937009920,1852601207,-2143289344,419436804,738246144,0,524292,524304,131075,1384271874,3829365,100669440,201368064,-2147482624,-2125430016,2883584,2097176,65550,1342373889,7032704,402682368,234889216,512,-2142240000,1668178243,27749,-2143289344,419436804,738246144,0,524292,524308,131075,1283608578,979657071,1835008,10354694,262156,1350762624,738197633,536877056,16780800,50331904,1800372304,7471104,2097176,131086,1342373888,1851868032,7103843,1937009920,1852601207,1784900971,1685285995,-2143289344,419436807,1275117056,0,524292,524308,131075,1132613634,981037167,1835008,10354694,262156,1350762624,67108993,335550464,83888128,33554944,1867809360,469762106,-1644161536,100666368,-2097119232,33104,2621444,524470,7,8540162,939535360]},{"sector":7,"data":[234889216,16777472,-2142240000,27471,3670130,917536,2,1132482563,1701015137,1828716652,1937208180,1835757164,-2143289344,419436807,1275117056,0,524292,524320,131075,1384271874,1835101797,14949,393256,786578,8388612,8474755,402654208,134225920,33555712,-2108685824,3829588,369108992,201363968,-2147482112,-2125430016,262144,11927592,458760,1342308352,738197634,536885248,16780800,50331904,1800372304,7471104,2097208,131086,1342373888,1851868032,7103843,1937009920,1852601207,-2143289344,419436804,1006668800,0,655380,524388,65546,1401049090,1667591269,1919164532,543520361,1713401716,1634562671,1073741940,671094272,134220800,50332672,4292688,671094784,234889216,16777472,-2142240000,27471,2621524,917536,2,1132482563,1701015137,1828716652,1937208180,1835757164,1818978915,-2143289344,419436805,1006668800,0,655380,524388,65546,1401049090,1667591269,1919164532,543520361,1713401716,1634562671,738197620,503322112,134220800,50332672,4292688,369120256,201334272,67111168,-2142240512,402653250,536881152,16780800,50331904,1800372304,5505024,2097192,131086,1342373888,1851868032,7103843,1937009920,1852601207,1784900971,-2143289344,419436805,1275104256,0,655380,524388,65546,1401049090]},{"sector":8,"data":[1667591269,1919164532,543520361,1663070068,7958639,335549440,134243328,16780288,-2108685824,1953724787,1948282213,1073741935,671097600,134220800,50332672,4292688,939530240,234889216,16777472,-2142240000,27471,3670100,917536,2,1132482563,1701015137,1828716652,1937208180,-2143289344,419436806,1275104256,0,655380,524388,65546,1401049090,1667591269,1919164532,543520361,1663070068,7958639,335549440,134243328,16780288,-2108685824,1953724787,1948282213,738197615,503325440,134220800,50332672,4292688,587224064,201334272,67111168,-2142240512,402653250,536885248,16780800,50331904,1800372304,5505024,2097208,131086,1342373888,1851868032,7103843,1937009920,-2143289344,419436811,1795201536,0,327680,524442,131071,1300385794,1869767529,1952870259,1852397344,1937207140,589824,23,-65536,1342177283,130946,234881024,134257152,33554176,-2108685824,1143821133,1159746383,1969448312,1702259060,1966080,6160418,-65528,1342308353,1919243906,1852795251,808333600,49,-1711264000,-16774912,33554943,1866695248,1769109872,544499815,959520937,539768120,1919117645,1718580079,1866670196,3043442,989871360,234889216,16777472,-2142240000,27471,5046272,131226,262145,8540162,1392517376,134234112,16776960,-2108685824,1802725700,1634751264]},{"sector":9,"data":[1176528227,979723634,6750208,2621523,655368,1342308352,553648258,1073766144,-16775168,33554687,1699578448,2037542765,1701987872,14949,6226023,524328,11,8540162,1937009920,1852601207,-1865940992,335549444,1073764864,1291845632,1329868115,2017796179,1953850213,6649449,2883613,917536,65538,1132482563,1701015137,108,1509951488,-16775168,33554943,1699971664,1852400750,103,1509954048,67110912,33554688,33360,1835008,524378,131071,1954697218,1919950959,544501353,1869574259,779249004,1953300480,1819506547,1668115310,1936485226,1886339848,1735289209,1817191200,1702060389,1936615712,544502373,1143821133,1679840079,543912809,1679847017,1702259058,1699875104,1768776046,153118574,1701602628,1735289204,1125318688,1952540018,543649385,1701996900,1919906915,1124868217,1869508193,1768300660,371221614,1852727619,1998615663,1702127986,544175136,1986622052,1124999269,1869508193,1701978228,1701667182,1679824928,1667592809,2037542772,544434464,544501614,1953525093,1126444665,1869508193,1701060724,1702126956,1701344288,1920295712,1953391986,1919509536,1869898597,237926770,1852727619,1679848559,1952803941,1124868197,1869508193,1919950964,460615273,1852727619,1663071343,544829551,1701603686,544175136,1702065257,237921900,1852727619,1663071343,1952540018,1310597221,1696625775,1735749486,1768169576,1931504499]},{"sector":10,"data":[1701011824,544175136,2037411683,1937009952,1819626779,1819306356,1768300645,544433516,544501614,1869376609,778331511,760433926,139677508,1970233921,774778484,1176521478,191194482,543452741,1936942419,141455209,544499015,1868983881,760433936,542330692,1667594309,1986622581,1750344549,1998615401,543976553,543452773,1920298873,1852397344,1937207140,1936028448,1852795251,1867387438,1852121204,1751610735,1835363616,779711087,1819626786,1819306356,1701060709,1852404851,1869182049,1847620462,1629516911,2003790956,858678373,1852727619,1663071343,544829551,1953265005,1701605481,1818846752,1948283749,543236207,1735289203,1679844716,1769239397,1769234798,187592303,1852727619,1914729583,421555829,544501582,1970237029,1830840423,1919905125,1869881465,1853190688,1867394592,1852121204,1751610735,1835363616,544830063,1679847284,1819308905,1696627041,1919513710,1768169573,1952671090,779711087,1851867927,544501614,544499059,1970040694,1847616877,778399073,1851867931,544501614,1851877475,1679844711,1667592809,2037542772,544175136,1851867928,544501614,1634038371,1679844724,1667592809,2037542772,1746932768,1847620449,1768300655,544433516,1763733097,1126772340,1869508193,1970282612,1397563508,1397703725,1937339168,544040308,1948282479,1679844712,1701540713,778400884,1851867927,544501614,1836216166,1679848545,1701540713,778400884,1701597241,543519585,1667590243,1752440939]},{"sector":11,"data":[1948284001,1679844712,1936421737,1701994784,1952805664,1713401973,1948283503,544434536,1919250543,1869182049,1310404206,1696625775,1735749486,1701650536,2037542765,544175136,1852404336,1310666356,1696625775,1735749486,1768169576,1931504499,1701011824,544175136,1852404336,11892,0,1828716544]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[538976451,538976288,270540832,0,0,2424832,131105,0,538979886,538976288,270540832,0,0,2424832,33,0,827214167,538980400,541873743,0,0,759234560,199535,217712,542001495,538976288,541675081,0,0,3080192,524321,1683,1330597971,542262604,541415493,0,0,760217600,592751,13216,1330530647,1346454604,541347661,0,0,760217600,854895,19392,1330530647,1346454604,541217351,0,0,760152064,1182575,1213,1329877837,538976339,4544581,0,0,3145728,33]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[114409,53,1936607488,544502373,609439556,1702063689,1092646002,1768714352,1769234787,1227124335,1919251310,1767317620,2003788910,1951604851,1970565729,1679828080,543912809,1679847017,1702259058,221935648,1701990410,1629516659,1797290350,1998616933,544105832,1684104562,220471417,604638474,1735357008,544039282,544173940,543648098,1713401716,1763734633,1701650542,2037542765,1953451520,1869505824,543713141,1802725732,1634759456,1713399139,1931506287,1701147235,2019893358,1851877475,1124099431,1869508193,1768300660,1461740654,1868852841,1931506551,1953653108,1713401973,1936026729,1547321600,1296912195,776228417,5066563,1397575491,1027818832,1413566464,1459633480,808537673,1229073968,78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1751349340,606350951,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,143703040,-402357272,113706009,41550080,567095476,-402496862,1488454604,40084311,42010310,20113408,1491619996,1939691524,1765703721,292880386,91555900,-855580696]},{"sector":10,"data":[29081120,-855581976,1963473952,54847493,-974600725,14870529,113688043,-2147417495,164158,-1763114123,41281536,184712865,-1106283328,-1930952704,43640834,-402652226,-2118516093,19851266,37560947,-1173654272,-2118254316,10872834,138275051,-2146667264,50487870,-337115789,-103290110,8390343,-2086925056,163390,113116788,38135808,-402230371,1374224472,45869311,-1962931778,855827398,-2147027264,58003458,-402512152,1369178734,-402500632,-1655110757,1203242610,-14030505,-1849817373,2484225,-1157686295,1102316120,-474078771,17950726,1001707147,1303650765,1286873549,138158541,1891500917,-1073042431,-796260236,567083700,229831659,-1308622104,-855460854,666551073,-1576760575,162791757,1052385741,-855002111,201898017,1807360461,-855002111,385663777,40083719,-1107231069,230228475,1765703680,242483202,-1962801474,-17922,-1359822797,-2134912521,-1967115520,96535045,2116878339,671251968,-1967115515,-134002939,-1951789648,1048619713,1962934889,-853953524,-1270807519,-377246918,-1163595006,-661913082,113754254,8389228,40771212,40896199,512491612,113705586,7078516,41295500,-1090485826,28835932,-1088303831,28835948,-1155412695,119407210,-1996477279,106044935,2877523,1763523,-1073042346,1555168117,1963735118,313083,-851725222,-1962112991,113165298,-2146137598,246694378,1438851533,-326898549,-973332908,118884470,-1951498611,792505567,1547438196]},{"sector":11,"data":[977011828,-544537739,-1073042877,1586097013,139904428,-402366780,1601372264,74711612,1450509116,1963023336,142525521,973175936,431229300,1090789837,-1398064460,1950039210,1975519749,1555058422,-29018074,642711925,520045960,-1960896938,-1431524234,-92946422,-1006086459,434635870,1931435520,1946303502,1963146244,3964933,536457077,-1034033781,519569416,378285653,-1993473787,-1207892186,567102208,85364270,646655489,526188807,-1960966461,-1962771426,-850873141,-2017423839,-1912440314,871773144,-773729793,-52309535,119514611,914955971,512623224,-13237638,520255518,252006595,-754667264,-1260876824,1914817864,868257300,-1547684865,109838949,-1414856089,-1949158568,244040698,65208935,-1962932504,-486376946,-1262383610,-1021194935,-486525720,-1041752535,39369470,1018480947,376578509,382064779,-91553179,-2097001077,1085539521,1051992525,-1323359795,1488634625,-851332094,-993789663,-1946000066,637854657,-1023259253,-1191056193,736624648,235238400,31309343,76275596,21865006,-695476338,-851246920,1931415073,17414664,-335707160,-171981845,375041,-1910110442,855649310,-212381194,1952014246,-1073042420,1015085941,200176896,519881673,33996551,567089588,-1196801788,-1951704006,-1261292553,-1105081017,-474021370,178957318,-1325763136,-29083556,-2008153739,-24379580,-1409156162,1975519914,96729338,78710943,-661919533,1253312278,-4513331,-850873089,507194913,158531843]},{"sector":12,"data":[-402636056,-1226179368,1048653564,555745409,724447861,771818270,8521414,784347936,738231200,1997093936,113651223,-1323302781,199283468,-1207732800,-1019542528,-668268941,567101620,507843,79629803,-2143387648,57933824,516145203,-1615278452,-754667256,-1896872984,868234206,1279033846,-2129693361,1330053756,-1207039883,508561278,-1021326505,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1330073420,855687401,-1597993280,-1574567911,413139984,-888091392,5242880,94373280,1073741824,236959744,1919117645,1718580079,1767317620,2003788910,253821043,1936876886,544108393,825241137,1125582848,1920561263,1952999273,694364192,1667845408,1869836146,1126200422,1869640303,1769234802,539782767]},{"sector":13,"data":[892877105,1092624430,1377856620,1952999273,1699881075,1987208563,3040357,1766660109,1936683619,544499311,1629516649,1734701600,1702130537,543450482,1684107892,1918987621,1718558827,1667845408,1869836146,1126200422,779121263,-67108864,-1912534808,-402643962,-890765127,437684992,1139441664,2102827,2102827,1049350659,1122500636,473860864,507380480,2269440,-133961519,6154319,-52202166,-1979701570,3932484,115869044,-1191908608,-53805030,869305261,-1258310693,-1408185086,108314634,281874100,-54266389,-1093520814,-288292828,1707659,-1960384047,-775649787,-1966550584,-1058635532,171959424,-2032760094,-421352508,1524462926,844299715,2408146,244051665,-372178918,-2046457050,-775892540,-2131719488,-64748570,-695549430,-492059514,-562737433,-1094452134,313524743,1713910,1040447627,314245152,-1340019968,438760978,438209280,1139507200,512475907,-338624478,-125058301,2113067,-1593830725,1127022618,4438272,-218086471,1274545060,-1262226571,-1575957233,-1070399464,-1608073074,430048272,-1462700544,-167217872,653206736,-1207693150,281870342,-1223688008,-1206858495,28774401,12783821,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-12648448,192,-1006682368,49407,-50393344,50331648,-251658241,0,-49408,49407]},{"sector":14,"data":[-15794176,240,-15794176,252,-256,-3841,-1,-251707408,0,-3932161,-16777024,-1,-16580416,-50331649,0,0,0,-253,192,-1,49407,-1,-16,-251658241,16580415,-16580608,-1056979969,-49408,-1,-64768,-1056964609,-61696,-12648256,1057014015,-50331649,-12648448,-1,-16776961,-251658241,-1,1072758783,65535,-61696,62980035,64767,-251719936,12648195,15793935,0,0,-65536,16777215,16580355,-15794176,-251723536,0,16715520,-12648448,49407,-1006633153,-12599041,0,67059456,49407,-16515841,192,-62980096,16580352,1057029903,255,-12648448,15793920,0,65295,-49408,-16776976,-3932161,15794112,0,-3932413,1056964800,252,0,0,65535,-251723776,0,-1057029376,61695,251658240,255,-50331841,-64768,-1006648321,49407,0,-1056979969,-50397184,64575,0,1069612803,64767,12648192,0,-4129024,240,-15794176,1056964608,16777212,-786673,-3932221,192,0,12648195,15793935,0,0,-15794176,50397183,49407,0,-3841,15794175,16715520,-62980096,1069612863,-1006648321,-1056979969]},{"sector":15,"data":[0,50331648,-1,-16129,49407,-49408,-65296,-16518913,192,-16777216,-16,61695,65295,268189440,-3841,-3932413,12648387,0,-16580608,-50331649,0,0,0,-65536,-1057029121,0,-251723776,-1,251658480,255,-16516033,66912255,-1056979969,49407,0,-64768,16777215,64575,0,12648195,-12648448,12648384,0,-4129024,240,-15794176,1056964608,-65284,-16518913,-4128829,240,-16580608,12648387,12648255,0,0,-1057029376,-1057029376,61695,50331648,-251674369,0,16715520,-62930881,-49408,-1006697536,-12599041,0,67059456,50381055,-16518913,192,-62980096,15793923,1069612815,255,-12648448,15793920,0,261903,16531212,16776975,-3932413,-50396224,251658240,-16518913,-16777024,252,0,50331648,-1,-16531201,252,15793935,61695,251658240,-1020261121,50396223,50396415,-1056979969,-49408,-1,-1057029376,-62980096,-61696,-12648256,1056964863,-50331649,-12648448,-1,-16776961,240,-15794176,1057174284,-16776964,-16580368,12648387,-256,12648447,12648195,16531200,0,0,-16580608,12648447,-65536,-1056964609,-251723776]},{"sector":16,"data":[0,67047168,-62977024,-1069613056,-1006697728,49407,-50393344,50331648,49407,64575,-49408,49407,-15794176,240,-15794176,252,15793920,0,1057029903,192,0,0,0,0,0,0,0,-251658496,0,0,0,0,0,0,0,0,12648255,1056964608,-1056979969,-16580608,15794175,-64768,65535,-15794176,-1,0,16777215,50331648,-251658241,-16777216,-251658241,-1,1072758783,61695,-65536,12648387,-253,15794175,-253,64767,-253,-50331649,-15794176,15794175,-64768,-251658241,-65536,-983041,-1,-12586753,252,-1006633213,-16727809,50393343,62980095,-1,1057014015,61695,-1056964864,-49408,65535,15794175,-1056964861,-256,-3841,-1,-49168,251658240,-3932161,-251719744,50331648,-16515841,-16777024,-64528,-1,16580607,-4128769,-15744769,240,16580355,61695,251658240,255,-1056964801,-12648448,-1056979969,64575,251658240,-1057029121,-62980096,65295,0,-16711921,-15793924,16531200,0,-16711921,240,-15794176,1056964608,15794175,-256,-4128829,240,-16580608,12648387,1073495808,16777215]},{"sector":17,"data":[-61696,-12599041,192,61695,50331648,-251674369,0,16715520,-62980096,50396415,-1006636033,-1056979969,0,50331648,49407,-264244993,0,-16777216,-49216,-16580368,192,-16777216,-16,61695,65295,1073495808,-15793921,-3932221,12648387,0,-16580608,-1,15794112,0,-251723776,-253,-1057029184,0,-251723776,-1,251658480,255,-15729601,67059648,-1006648321,49407,0,-64768,16777215,61695,0,15793920,-50331889,12648195,0,-983296,-251658241,-15794176,1056964608,-251722756,-16515841,-3932221,192,0,-253,1057029375,240,0,49407,67108611,49407,0,-3841,15794175,16715520,-62980096,-256,-1006697488,-251674369,0,50331648,-16727809,-12648193,65535,-241,192,-4129009,240,-16580608,15794112,0,65295,16531200,-1056964801,-3932413,16531392,0,-16515313,-15793984,16715712,0,67047168,50393343,-62930689,0,16715520,61695,251658240,817889535,251722815,50397183,-1056979969,15793935,-16580608,-1057029124,-251723776,-253,-1,-16515841,-12648196,-251719744,50331648,-16712449,240,-15794176,1057177356,-16580356,-16580356]}],[{"sector":1,"data":[12648387,15794175,-1056964861,12648195,16580352,15793983,-65536,-65344,16777215,-251658496,-64768,-251723584,0,218042112,-62979265,-251723776,-1006697728,50381055,-1,50393343,49407,50396223,-1,16580607,-61696,61695,-253,15794175,15793920,0,806158095,16531395,12599040,-3932413,50331840,-251658241,-16580608,1056964800,251658492,-1,255,-49408,0,-253,240,61695,251658240,817889535,0,0,0,0,0,0,0,0,15794175]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[2120269,358,32,720896,-164822912,0,64,0,0,0,0,0,0,0,0,1024]},{"sector":9,"data":[817766158,-3768063,15106305,1312588286,-1938918075,-795936040,-1946425717,2085293660,-773598939,65262051,9118300,3308675,1153893749,-1962931918,-377277876,-1931422972,552567759,1552676867,897338134,-472783919,1543758801,-1962898654,-377277876,-1931422972,552240074,-11350013,-544336780,-1048457589,216728064,0,0,0,2025675,1314014539,1112888403,1917132858,544370546,1769108836,1646290798,225734511,240788490,-855002081,1275181089,4858317]},{"sector":10,"data":[279886,19923026,1991,32772,512,91365,0,1,4195800,4718664,5374034,2,262144,0,0,0,1994326105,1994391616,1380272902,4998478,23330816,23341313,1895905501,1390215425,21984257,822169562,1367933265,22129921,-754888359,1366294865,22146561,-301903335,1645805921,23217409,520184593,1659371875,23252737,-738106622,1658716514,23276289,-687775129,1667236193,20327425,-1677642258,920977718,20153089,-1493092648,811139382,20986113,-1224657231,917766454,20412161,1224816641,1061290304,16923393,1140920456,366936345,18193409,872486218,382533910,18448641,-1593764353,804651311,21282049,453068047,627507528,19303425,855714467,708051243,19646721,134293792,1112146216,21137921,-268352889,1144717635,21240577,-318694868,434438425,21715457,-251573457,1259340106,21627905,-469677514,1243021641,21618945,-1476310471,1250623818,21666561,-1123988901,517341476,18132225,-1744758372,277348628,18821633,1409359566,627441977,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8978431]},{"sector":11,"data":[0,0,0,0,0,0,0,65536,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1230438400,1313418830,1767309385,2003788910,2035490931,1835365491,1936607488,544502373,1768169472,1763732339,1749221486,1701277281,1936278560,218562667,1952531978,2017815649,1663071337,543515759,536879165,1667331187,1986994283,1818653285,168654703,112640,-326412853,-1962349437,-1070922154,-1980217719,1589967446,1200301816,1191912980,640381974,950147,642917492,-15828993,1996424310,214558724,309706763,-16482685,1996425332,-401698812,-1070905270,1996453867,74907398,-1996044824,1451883590,75400190,-16222977,244319350,-1958204952,1175190598,-1002146562,-148440994,-2147480505,1996428404,175570694,-16222465,1996488310,570222844,1996436459,119597062,1996443730,142016266,1323830928,1996443694,108461836,-100609,317258870,-1005655262,-148440994,-2147480505,1183549556,1575324422,503319234,1430622296,-1910575989,-1561558568,1183536640,198322956,-385649214,1996423353,175570700,-85455216,-163149497,-1962260989,1183386710,-229209616]},{"sector":12,"data":[-637301,-1072957874,1589908852,126494448,-10582392,74734652,1500854844,-940554497,63046,-1024316,-1977159610,-62486521,74760202,1114975804,-10189171,1996443670,62253302,199902857,-10652224,1996426358,1686539530,-1202710785,-1873795072,391964686,-10320247,-2092862144,16737982,-2037699724,2028601190,-263258365,2122352363,175268348,2063367808,1182794871,1988878588,-163119114,-1996732790,-335584126,112779,-16560407,-890762634,-364476155,15367811,2028536692,1656160002,1656160255,1686539775,-397404417,-2037834413,-1072955552,-1224798347,244383586,-1203322392,350814219,1623098115,242549247,-10307841,-1410855280,-373281978,-1769274625,-1070858400,-1981528439,1589962326,1207379684,1971322892,1333798423,2122514956,477495048,-16351613,-397273483,-991230359,652500676,34359286,-1224800652,-336855200,-10438913,-1995683096,-1072960954,250151797,-463551487,38258470,-1960411136,-768923577,-10445173,-745813717,-1980217719,1317665366,14084584,15367811,-1108802699,-128007168,188189478,-385649162,-1224802128,-1224736928,-396951710,1183385364,-229209616,-1024316,-1977159610,1183422471,1996444406,1558728944,-364476158,1836433419,-10189171,-1945483639,317394006,-1024316,-1977159610,173982727,638207743,1183516552,-162594826,-462045173,-16097596,-970585530,1586179591,172424970,1158137382,-16097653,-970585530,1586190343,172424970,1158137382,638213771,-1929377850,385836166]},{"sector":13,"data":[-18352,-1873784167,-37754866,-336968055,-361300218,-2096934424,1946217086,-361300215,-1996206872,1589963334,-129596424,-364475646,-16283354,1589962822,-398029852,507984166,468255606,1204233983,-2097151742,1946217086,-463551375,478118694,-9997312,-385916746,1183385304,2126515176,1620478798,-994038785,-1960385442,1183392327,-296318484,31999687,-463551488,652756619,1914455865,-329333707,71824934,-15240128,1358913718,-10307841,-10307841,-1995875608,-1072960954,1191122036,-330923032,-2083853558,1962993790,-364460283,2122514432,192151786,-10438913,-10307841,-2094596632,1946217086,142508845,-2096204289,1979647614,-1983894776,1183385670,1354771206,-16222465,-1224800650,-1224736928,82378594,-364475908,-1224799765,244383586,-12286488,-385916746,2122522194,57934058,-16725015,-385916746,-1041691990,-364475648,-10451319,15353543,735087360,-465139264,-2082056567,1979648126,108954394,-1005292033,-148446114,-2147480505,-1863777419,138840573,-1006221687,-165223330,1946291271,1622605647,47835391,-768375,-385916746,-1224801810,-1175912608,-163149563,1962934589,-193528026,-16222465,-1224800650,-4653216,1760055551,-364475909,1182121995,-10438913,1810370192,-12850422,-385916746,854262277,652500676,950147,-1224796300,-14221472,-4714889,-397389569,-1073018833,283706229,1622605821,25749759,-10438913,-1996332312,1183574598,-310157590,535137026,147475805,-326413056,-1960945834]},{"sector":14,"data":[-1590819746,-1073020920,-1064428428,641633062,490219008,-985200011,-880081290,108308211,434470,1595924715,1575324510,1426065090,1465314443,-1962522994,954401870,915088969,-1070399484,-1072976858,-1053087116,-936692353,-1406740341,-361496516,141885244,-472780029,-554962173,-472792181,-670833711,-670833711,-823397629,1342440376,1021841040,869413725,641526720,1946172588,1020890091,52393215,652464627,-1191087989,1342636031,1625837905,198324999,-1949469504,-339309616,-1014263790,-472783919,-472786941,-1030957053,1593917581,1575324510,1426064578,1465314443,637826756,587299968,-1910622860,915081310,872153126,-268194624,-1409104253,-1962639676,641655752,276104504,1973875527,-611537653,140392735,1357602420,-964431613,652012290,852003500,860244461,651201472,1009790124,850884361,-1327985692,65206026,-336928061,534481971,1963482681,-17633,-1207417202,-1960443860,100671510,-397258669,-1910635922,200313818,529298882,2930768,1342732031,1476591592,-443851169,442973,1475119957,-486257013,650219075,132855,947224576,4096294,1967476224,117384751,-1960443902,637544510,1969803,-2128208157,526,-14265984,-3872715,71732825,-503134333,914433776,-2147483646,1575324511,1426064066,-1957172085,-1070398386,-1047638045,34010918,1971322880,1048651332,1162739712,-14271627,637534734,2637451,504269606,640344832,134785,106004480,-399114458,1963458497,-14285301]},{"sector":15,"data":[130869301,92874247,46629721,-2128157470,566,-443850880,180829,1475119957,-1090107762,-768409580,38112038,309641227,104696614,74907472,-402360577,48432579,-1956657269,79846885,-326413056,637814414,-1459614559,-1064566781,-1960440460,184551454,637826267,-1962391669,1575324616,1426064066,1996483723,16377860,880066571,-2128166770,1308622910,1210414149,-1591295858,-1073020927,-1064428940,4096294,1950699008,-1195363569,-1873804282,1527900174,82559027,-277561333,-443823989,180829,1458342741,637814414,788215,729120768,440304422,594804736,406749990,460652544,303467302,512435712,-620036088,52823156,-494860713,-1993932802,637540374,1709707,1614118,-905197429,-1185935756,1376190463,-186101423,65755140,1578107064,-1034033781,-1957363710,139365356,-1054734416,602931387,-787516199,-773074453,1022087659,-2147257088,20711627,-880802955,281146884,-880802956,-1949158654,1317733958,-788077820,-489500192,1347572730,501747344,27807832,-397409163,-1957036025,113401317,-326413056,-1878755585,1491331086,1575324562,1426064066,1317792907,1361044228,201319144,1209496768,1346420878,84342310,125043712,1381028403,-401791000,1996446189,-401698812,-443852765,180829,1458342741,172396119,-1962510709,-1960441762,-2094661036,57999420,1133537515,-1960437131,-1157625322,1376166912,-1873587706,265611278,1124746894,1475019381,344663627,38570790,-851312456,-1958186463]},{"sector":16,"data":[67437638,-1152186880,-919404521,-397324205,-1940127992,-1907286055,872362944,-1425766464,1149747851,1317776130,1377764868,1068816267,526000589,-1053093518,1381174645,1543451368,79220875,855960320,1003523008,108267614,-851528624,1583306785,-1034033781,-1957363704,-1906878740,2123040326,650130180,637685131,1962950019,1360519961,-17438639,105287257,869830174,530949622,-401698735,1583306567,-1034033781,-1957363708,-1906878740,-1031010234,2793766,1594115587,1575324510,1426065090,-1000936309,-1960442762,-1960442788,992347716,1962936374,1048587815,1962934414,116860428,8388620,-880802956,100869648,124911634,268829478,855995136,-1874269248,1963115510,113849148,-397324205,185073184,640971968,638080137,-83598208,72122406,1220643842,-1993949042,-1912602354,-1036304191,-165277836,1963983940,-1873803768,1463347214,1149969927,1589644040,-1034033781,-1957363708,49054700,1183733590,915088900,-13434846,1207860873,37651238,410255616,137792294,1686119936,1443297540,201279720,-10652480,2146172486,473840422,645428992,-167486325,913653955,1963115510,281278013,-919390092,1364284166,134055912,812962315,139757862,73695270,1283467003,-1064566268,33984046,651856640,-1064433783,1443237099,201258216,-16157504,-964428218,-1460975862,1183432755,661934078,638250627,33834230,-1960382860,1342572612,134062312,138709286,74743846,-1948652798,-1072955834,1598554485,1575324510,1426064066]},{"sector":17,"data":[-326898549,-950577656,129094,101349060,141885222,134044392,695582731,650130182,1342731519,108330790,-401698736,638014843,1946698809,9103619,1962878470,-47060984,1958742791,-28931600,639522310,-1962771317,1580795486,1461875716,-2114290039,1047142,-271383375,2122971907,-611427844,872302222,-50383882,1340843251,76228240,-1960390093,-788516338,-489500192,-1949660166,1107343568,728900045,1586417547,-1261292546,1914817855,1975597854,1157047834,1946222596,-1927342566,45742678,-851463168,990147105,520647873,-1070397602,-1962856215,-1907818938,60892864,-754667264,1959209952,-28930550,-1070348149,531297276,-1960442018,19203140,-385649664,-1960443725,184551486,638153983,-402098689,-125043601,519980686,207523414,276107,-1392721869,1726204043,1946172588,768758,276102972,956302266,460589126,-506334973,-538185469,1963719299,108822542,-1973783318,1178142788,189953288,-1958906625,-27751462,507478310,638022744,-661897343,-2144982411,1972372095,33879587,116790901,1946288140,17102359,-953806220,-342847481,552308747,-1207450074,25135398,1946417795,105170444,-2017227542,1552484700,-487455993,-9180777,1577862798,1283466783,-148503548,67652,-1960440459,50347550,-970586018,637599559,2498187,1418405443,-2118110460,1946157538,116794894,1946288140,44049926,-1949762048,105449550,1996443987,-397258498,1451971920,-95515652,201213579,-1956749376,180510181]}]],[[{"sector":1,"data":[-326413056,1443556483,-1983892649,-789054394,-1895938423,1988823622,958811656,1979718710,-1947807413,-773402146,653460454,2242051,71628582,544474112,136219430,1207313920,343229444,-17658,922691078,1397948430,134196968,343195659,73173798,1963115510,1443255053,1543260392,292929547,-1007272725,638219268,-1995946869,-655755194,105286400,1208513600,1963214393,638905124,661131,111411387,1376145926,-401698733,-1996027106,1183448646,-49916,-1326906507,1443235328,1342732031,-402360577,1381104965,-89003952,1526224521,-1073019047,-1960398732,-1007221668,-1502347008,123777,116809353,-27358378,-1911851709,653364162,-96040531,-1991558421,-506332594,-506338863,582504787,1356542720,244339027,-1991084056,-397345722,1532623459,276086795,869830174,-851462958,829562657,762691899,-963709389,-16091393,1443298422,-362753,1996486774,-25755658,1342280168,-1862502657,1385031694,185032280,-351374144,-339725564,1996424938,-99227400,-28407033,1225815105,1946570297,-1948677366,-851528504,-1950250207,-1956749368,146955749,-326413056,134647342,244000256,81985542,-169098866,637814411,-1912600925,1048784576,1962934282,1048782348,1946157104,178466308,71731968,942594867,1962970654,-1873587439,1392240654,185597416,-1962707776,-443874234,180829,-1897100459,-1960442810,771753494,956303521,125109318,135694638,185920256,-1911524160,111224512,71710976,-1993936523,-1912601066]},{"sector":2,"data":[-953809850,6,244319744,-397285144,-443871314,180829,-326412987,49054494,1996445526,-129505274,611631115,-244087,-2031551370,-1910606345,-1960379322,184551454,638022875,-402098177,1996486969,-8328964,1726726195,-62484848,201782822,-260832768,654067342,532107,142081830,-402229505,962263313,1114965590,33984046,244000256,-1910112252,855639558,-61436965,22493478,-165276555,1946420551,1200301581,1975520010,1086360589,-1910109973,-522057657,1183760435,512435964,-1993998328,-1070397369,244338768,1599207656,49120094,1562371467,182861,-2081649835,1465258220,-1962117493,1309347406,856978704,-1949748270,28836958,1914817858,-94992071,-1946663287,-1073017274,1183530101,1975520016,-95515855,-1946659189,12059742,1914817858,521543189,-1175431539,1308688392,-94993416,-851463168,1920081697,1853210939,-225748970,-397409045,-1064372169,41716518,105155366,1317652787,637776380,-486454238,1552623186,32211716,-472824718,306613766,673055526,529212928,-27358969,434832098,-15567105,-397409162,1996486940,-397389058,1586230597,1958743038,-397389035,-1030818655,4096294,1967476224,-62455974,-1070377493,637601257,-486257526,308186101,1962932608,-1950118184,958811097,1979718686,-472821535,-472792181,-670833711,572392230,1207313920,259276804,-689417466,1963043064,-1863823343,101444599,74907473,-402360577,-796132333,1353442136,239504210,192266251,1317785740]},{"sector":3,"data":[1359274768,-1896387864,638038976,-919397342,572916913,1364394316,-402098433,-1064372397,1482316633,1946352512,66813998,-75479948,-1206815739,-964493311,172949256,-1226243202,-1872368642,19269091,-1947669755,495396568,1967389579,-1948455946,1579416670,-483494650,352396805,-628371989,-1960999130,-160087045,165921259,637862182,-352168703,651725750,-1993990777,-74775979,-336431805,638182310,19272961,-1679032763,-2027496821,1166616093,1140558846,-1947471243,-443851169,1098333,0,0,0,0,0,110046876,-13757646,773007926,321783439,741801774,110046739,-13757648,521348662,604423982,-352321517,-617377759,1342504888,-1058533744,110046800,-1892805842,773009414,322045583,774800174,1430585875,102689931,1347637586,516173563,-919399634,38767142,-1152369181,1359413247,-1125625005,-196704000,539920686,-87693293,1515725795,74760763,-165025710,1499158608,1562314586,922693197,-13757646,773009462,321795839,646704079,-486322294,-2084555968,958792899,653817095,-1157478514,1359413247,-1590799533,61936430,-31135533,788416135,-15520093,1827143758,785048570,-15519581,-790036874,-28931595,-352303361,66879648,1532730231,520575577,856651101,922693357,-13757648,101920310,-315372717,125166602,820514448,-32117779,101283276,-401698733,149619958,-1873607086,15919118,774831918,-1064417261,651899712,1967996800,1334519342,640213761]},{"sector":4,"data":[67454966,-1960435339,-771028393,-1047651980,1312784678,638612805,185098123,638088411,1963480889,-1010660606,-4629928,1381061119,-308811440,-1962742397,1297948645,-1957345845,1465261804,637951684,16001,963986766,69090086,1259172608,471743270,-1960152320,367739339,775913766,1260287440,109019174,856847594,1334453961,-17912,1381126406,-335970584,1606690321,-454556153,1249437940,-398283032,-1031058819,-310157729,535137026,80366941,-326413056,142001238,-1190764917,1451950143,179054084,-16223040,-2009709614,921887239,83910,1586217867,918760198,-1956771960,146955749,1430635264,-2095125365,-11124500,-2031613322,-472763405,-2081387729,1962936446,105286405,1586306539,16759486,-15382086,1996425334,-397257978,1586364311,1393972926,1458680040,-250353584,-905197429,49120094,1562371467,445005,-326412987,-11053538,921177206,-1910119437,171346904,-1966525696,149521164,-1006078835,1312491646,-1962640378,-62323122,-1527529077,378406,1583335563,-1962742397,1297948645,1157630154,518818645,-402229505,115602165,-1591295858,-930414590,-1962742397,1297948645,1157628618,518818645,-14788778,-722990474,-1073018893,-661777548,-1962379637,105286654,98814091,111473660,1606978335,49120094,1562371467,445005,-326412987,-1590798562,-1073020916,-256167307,541112577,-1873588143,1268705294,-1959870322,771755038,788108,2001190,441088,-1929364039,-1993996201,-488994025]},{"sector":5,"data":[260646646,-1960394610,184550942,638219739,184549537,-336759360,126559929,434982,-1946517619,1183579742,1958742790,-397408760,-1962413249,-678691624,-1951745872,-357520445,138841002,172395435,-1933407317,197692354,-310157366,535137026,113921373,-1957346048,777461484,184552609,-1910410048,138820544,-1591343500,-269811712,856063627,-1414792000,650611627,394887,-18261,-2090874741,-443874579,-900899553,-1957363708,1381061612,73319430,-1203797978,-2144991628,343264319,926492227,-695529867,-1007233229,-2046659583,1065953010,1532582407,-1034033781,-1957363708,777475820,931583,1361634137,-1947036952,1451951686,922691076,-1960443892,637537854,-2096083573,-521989433,1974465276,1435051739,-1946948610,2123040374,1220971268,-1977171826,637535518,184552097,-1962773056,109979334,-2128216063,1308622910,-165907131,1165296835,572427046,244000256,199426076,138885414,-1014822796,-369761782,-1960443518,-1024064425,653554692,1838635,1396824567,209059595,1042189094,651756288,-47162,29554267,-135724171,-13761024,1493175350,-1047642909,3604262,-1176816896,-1014824899,1065362952,639858104,1963030329,2139694621,1979648769,870287125,-1414792000,650611627,394887,-2082502741,-756938517,638042603,269963,-15997902,-397003915,-91491929,204901158,244002304,-818216946,-1993471883,-352317898,316903445,-242620335,202279718,1976515328,914958065,-739704820,260777472,-160118518]},{"sector":6,"data":[-2147302525,-244055811,1962933632,-578137282,-315424974,-1948004021,-773598765,651822051,2235907,-165227981,1946289223,1468737028,-165258488,208929287,141873675,2013210194,-27858943,-503069821,850324457,133572333,638743554,-368672896,-14283915,-14284425,904398711,197362686,-1913920542,91619083,73891878,651267067,269963,168790822,-2092337975,-41942333,-2131659776,175439869,-654054094,-654057007,-315432213,109019174,639792618,1963554617,1979648796,1200301588,1204233735,641715462,638080904,-351713399,2139694596,197362441,-1326722334,-443851169,311901,-326412987,1089241886,556675,1586306164,1269283518,-16222465,1381172854,-1912884504,1393999710,-318904240,1996424939,-278140922,-310130549,535137026,80366941,651725824,283316107,1963042961,-1909550325,-1962933730,-644967649,40894246,-326412987,-400664802,-1072959429,-1070387340,84342310,628360192,1460043403,201734438,773158144,923271,202803494,1300964864,310218000,1085010940,235310886,-310157568,535137026,46812509,-1202103552,1364214016,-1957345965,-326951188,-984132016,1183516758,1977879046,-1958890494,1124120824,108143053,567134091,1183648627,374480558,786978640,1608026884,49120094,1562371467,445005,-326412987,1424786206,1183536982,281343494,41172404,1183399092,122091260,-966560640,-989726138,-167049098,1015094645,393561422,136220206,171346688,173968384,-1945602423,1187450446]},{"sector":7,"data":[-402579956,1418532783,-1949748472,782040134,8003327,-2115435661,-1193768192,567105280,119456651,67585782,1413024372,956855556,58000972,-1274966551,-383660738,1992622263,142525452,1426619789,-1962783768,1190551037,41157639,2122972979,1958743034,142001473,772306061,5455488,503936000,777395798,7479039,17254134,-617413260,-1962846231,122091222,-1207470832,567100160,-919401358,-839104885,-385650143,71041262,-907476110,-92372992,-1924238080,1183558238,374480636,652759123,-49917,-1175911564,244002304,836960264,915134862,1955397642,-1928915448,-1431524738,-92946422,-391479667,1992622482,178957324,385512896,-1437168353,1183566131,1931595260,142001605,-167218035,1948256070,1048587881,1946157139,-1965345951,1105952796,-74753934,1962991336,-92372984,-348818176,122091040,-2146732672,1946221182,13821957,-4245269,-1125627905,-1946520320,-2009004857,142525444,-1962181235,19196151,-1431505017,-92946422,1946204648,142001425,856183949,-62485559,544416205,1992657899,38045960,-335544392,2126811251,142445832,1988960022,-397061974,1482490128,142001232,-1190626163,-1070399489,-638079246,637976963,-2144465784,21310,-1977215884,537659460,-1952947924,4319480,41156789,-2010724866,-1201995412,567105280,105679142,72648998,1107773174,1051989108,1190535629,175374855,-1928825147,1102317652,-1014292019,-310157729,535137026,181030237,113408,-13740205,1006660126]},{"sector":8,"data":[-843398398,3729473,-1186873157,703270960,-402575942,521011242,-402573894,-1514527328,630908993,-398349152,1052448316,269531393,134694646,297337716,627107856,-1023409480,-400617732,1589912945,142052616,-1576760794,-1574026836,-1064566706,957120196,108334662,41286459,132710027,-1960901120,625928663,-1178586372,-544473089,1094823666,-549725705,-1977216140,1547501381,792464244,977012596,-347143308,872203241,24936685,-1408273094,740297798,1006924385,-385386983,431227012,-796253747,1090831102,1470839476,-1976607557,1959213572,1958951472,-1430025684,-142091892,-661733236,567101364,-644982926,-1070401657,-218103879,-1977200722,-952434875,-1019607180,-1014365324,-1949748310,-1019564841,-952499084,-2144978315,1950023549,1948006408,1950103588,-851819232,1994596725,1996683648,-906080492,-91499660,1166681679,1958951679,1966750920,-1070376717,-1979669527,-1175737661,1987362826,-311287748,179047287,1013675200,-336104416,1950039264,1949973724,1949056216,1954299092,1948990672,1950104780,1950235848,1948400836,1952136384,1952267452,1950170296,1918975156,2004499462,-18873342,2012840129,1017815927,-33131218,-18773307,16613580,-109047692,-1977256180,1019488961,-383944956,-108986549,-384469240,-41877693,1996780545,652315147,-997849720,58048523,1040148201,-126418936,-1915737256,-1056767161,1438892547,-326898549,176079876,-1979807256,1183644798,918892286,479068216,2891406,1015084595,-1386843136]},{"sector":9,"data":[1967214653,1413328139,-1408928440,125058364,1975519916,-991695877,-1431566722,91503420,-160055286,643608654,1979598136,-2010755327,1444872005,-1392740667,1975519914,106350074,-851246920,-1962577375,567084102,141762398,1962949760,-18238,-1034033781,-1070399478,1309050414,-594818304,-1959372970,2133066823,431228533,1090789837,-164208860,1971323975,-1740559329,-13373301,1023240936,113155,-2092496268,-260695553,-24391117,1090832267,1583299252,-1979710774,-771444256,266633448,1009790981,67270201,972849159,-998243466,1430635271,-2095125365,1465255148,-1877969153,-7149554,-990226807,-1951725954,-2136469434,-986826379,-1912588234,740199964,-1376374016,745848842,1967477821,1295887627,-1408928432,125058364,1975519916,-2132481029,1966735740,-1404088574,141869066,-1325864022,199993982,645815480,1979663672,-978628863,62458998,-1073042432,-492174476,173444088,108384779,567094452,1451872563,1107523068,-963970837,-1409329944,1323877002,783854591,1303948116,-1070355632,172374442,1455768437,1048587782,1912799312,861647886,1931595209,1951415330,-1205474551,567100160,-276625038,-61437175,1018424130,856782082,-851659575,-1962315231,-851528488,-1878594783,1183432755,-62485508,1610241675,49120094,1562371467,838221,-1607548877,-1073020786,-13743499,1493174326,-1047642141,104267558,512435712,-1960443870,-486532082,1207379690,1962934532,1207379485,1961885700,1468737045,264405766,-355341615]},{"sector":10,"data":[-355341615,41140795,-1014775157,-338238966,1064757438,-326412861,1447488643,-1983892649,1178205254,-989432826,76153974,-28931776,956980875,125044830,-164373618,378555371,-1166635745,1085920907,173968128,567099316,-1053085070,1015098994,678779469,-1958851445,-1047839660,477413899,-851312456,-1189776863,-695533504,567099316,-1053095310,1015088757,91505998,-672546765,-94467838,50625675,1284179580,-772209892,-2080832543,-506395967,1284241667,-772209872,65130977,281510905,-1191281149,-617414649,-397191344,-1072961444,2116760436,-62486018,-1946369906,1580857950,-1959889656,1141048388,-1174918394,-1054146496,-930372365,-678748410,567099316,1972176754,1958820800,-59310324,870877416,1609121984,205846274,-311091200,67271808,-13375620,-67092295,-1960401677,855645198,1049175744,132317218,-1515870811,653910699,2494091,604908326,1049175552,-1527578588,672041766,237708800,-1993998298,-1409276354,735611818,-391362101,1269443041,-1527515019,705596198,237708800,-1993998296,-218093506,1049175716,-1960443842,-1342170098,648737791,3948169,470715174,-1207049472,-617398323,-1817458690,-119368789,-1934901197,-1960399936,637535246,2756139,708741414,-217914624,1049175716,-1414725628,-930428621,-58707741,-2131528704,175439868,-506347125,-1527527421,-1263737621,-793203922,-1070355650,-33405814,100869832,-1515519938,-421354076,-617363221,35555622,512304640,-1993998330,637536798,3284537]},{"sector":11,"data":[-953809035,151007750,-28407040,-1993995549,-989853122,-1527577482,236882726,1960512256,-472823024,-472790133,-654056495,572392230,512304640,-1960443896,855646750,992362953,1979718670,12577027,572916144,712246343,73892134,958795775,1946159134,1333798410,-2144976892,-370211737,-2144468841,36414,-2128209035,4195407,-165276693,1947206727,1333864169,653262852,790144,116795008,1963065356,116794988,1946222604,915088996,-466485244,-1072976858,-796174476,3976230,-12782988,-1053156748,-234682252,-234626351,-165223701,477430276,1241761411,-722733963,139212838,-165280139,141885956,1242285699,-1058279819,72319270,-165280768,1950352455,-1960422640,184551454,637891803,1074024320,180585307,654259945,1449611,762632971,-1948004021,-773402125,653460454,2242051,72122406,1048782400,1946157070,1283532304,637796356,538251,72122406,116860480,-2147483636,-2094657675,4670,-953809035,4614,1254263824,109894286,-1064566783,-443851169,574045,-1897100459,-1070398394,4096294,1967476224,2930701,1342469887,-1947804696,-443874234,180829,1458342741,205950551,-458102778,272039718,-488704,-857209226,105286117,-440014761,-1000744818,-1004140426,1593770612,1958742788,1606912770,1575324510,1426066114,861400203,209598975,-14786188,1894254710,-1896313884,279120990,108461824,199592680,-1991150400,-396949946,1183769983,35570952,176130304,-1961998455]},{"sector":12,"data":[1334381134,312550924,38242560,1089830,-1006221431,1200358470,306678036,521160703,-1908506578,192217088,-402098433,244383546,-1961784856,-443850809,705117,503348899,504183272,-1930948976,-335596739,911890662,796297,237406518,-136566016,-1765572133,512308736,-315424758,1391233877,-1957345968,249765612,1342619699,244339024,120450792,-768380957,-1911126482,1959922432,-1877080541,1037756430,872098280,-1873653038,1042016270,1381159475,317197968,244325950,121484776,-1962901317,1060775627,641932660,540805002,154990708,-880020364,1959001675,1065362954,653686029,-1962932282,244004569,28966922,1048782336,1963065436,378217989,28835934,1575324416,516672333,1430622296,-1910575989,485262296,242679638,-1981586200,-796138426,1183432747,-396981786,652631748,639911819,1965442873,-373282043,1451950310,-994038812,-1960384930,1183392839,-229209616,-16222465,-85457290,-330921722,-15960321,-286782858,-297367290,-1947187573,33944150,-196704000,-990488951,-1960381346,1962281783,525603,-1980217719,2122578518,527761644,-887041,-11079562,1996425334,116647942,192200715,653549252,1962950531,-997528801,1183577182,121186028,213445236,1744250368,-129629950,-1946663285,-1511261610,15353543,-195116032,652887691,1979860793,-293698772,-15043328,1996485238,-128006928,108527398,-15960321,-1696069002,1975520006,-128007156,653149835,1963345721,-195116017,652887691,1963083577]},{"sector":13,"data":[-14554868,-2081798401,-351471546,-129594448,49120094,1562371467,707149,1167087646,518818645,-326903666,2122536480,57999366,-16698647,921176182,-532248094,58048523,-1962859799,-1983894576,1451878982,-362887956,608668454,642201894,149488501,-1950340351,1183385158,-61437446,653942468,688003,216597364,2139301377,57999368,637575913,67389430,-14279564,244320375,188486376,-1005620030,-14222754,244320375,-381939480,1451950303,-994038816,-1960383906,1183392839,-195655182,-1996488187,1451882054,-161561352,4162342,-1662450827,525568,-1981397367,-1960384426,-1960442809,1183385175,-464090654,1802813963,15746759,-161561600,653280907,1979860793,-96040089,1978025529,-94452663,142081830,-16222465,1593771638,200313826,-1003522826,-1993934242,-2144991113,-352058289,-94452640,71825190,58060800,654275561,-16484353,1139335286,-94452735,138905894,-963952661,1191134955,-431586320,-1197806836,1589903372,1744250614,-431619838,-1947842933,1391061078,1979059199,-531199212,1183432747,-329872918,1342506168,1021841040,-339727556,-94452725,172490534,138906406,49120094,1562371467,313933,1167087646,518818645,-326903666,1996445210,-524031986,-1947842935,-1983894576,1451878470,-396442390,608668454,642201894,-1070922123,10807705,736515723,-396442432,608668454,-1980873079,1996484694,175570700,-1996203800,1183575110,-262763538,-1996488187,1451881030,-228670220,188189478]},{"sector":14,"data":[86209782,1183383560,-128546314,15498883,1996439925,-294191120,209125206,-401967361,-1073019811,1589914996,1065559794,647459840,637814667,-1996073077,1451883078,105286652,638080651,637814665,-1962518647,1452014150,-1004672004,1183576670,121186028,213436532,1744250368,-163184382,-1946794357,-2081687466,49120094,1562371467,707149,871140181,106859456,1393019776,-1914154928,29554400,-1909582219,-1962933754,1207314138,141836290,637814411,15402889,-443825525,311901,-326412987,1996445214,-541857780,2020917259,-1962491762,-1960441226,-880802724,-14265593,-1960443276,637543454,1451954059,139856646,1364858996,856184459,-741279808,64026592,-355400122,-85796655,-2094641063,1946159228,861558820,-788077614,-489500192,650720250,1376285951,244339024,1345883880,1055395472,99324473,-236433008,-1072997921,-1907881356,-1993981760,-1845493490,-2090940277,-443874579,-900899553,-1957363704,49054700,-1070377130,-16091393,1347422326,1407717008,142001407,-1946270071,512435906,-1960443868,1418405391,970666754,58064478,-779074837,-489434654,-896852230,956718731,326370398,-1014178930,-13371853,-201539442,-1898410332,856615875,-1260876078,1914817855,1975597834,1183522566,-1945506818,-397205541,-1070342199,-443851169,574045,-326412987,142016286,-1898012440,106859456,41418534,641204006,637814667,661131,605981478,260777472,12256849,106038948,244339538,133153256,1967151705]},{"sector":15,"data":[-4498937,-1876825089,-783171533,-489631262,-1194816518,567099904,-428713383,-489570253,-85798703,-1014249333,-1962742397,1297948645,1157629130,518818645,105286486,1937031179,-401698736,-922011557,1586195829,29619718,-1909563019,637534726,-1014095989,4096294,1967476224,512435790,958791716,1946166814,106335042,637715331,930350905,637826957,-2097000565,958793923,125044823,-502479997,652536821,162947,1392908660,642975314,-1873797889,939124750,132319067,72319014,855960324,1589654482,-1962742397,1297948645,1157628618,518818645,105286486,2054471691,-560076720,393592843,35556910,106859264,1963049974,38270562,-1906543552,1208609567,-1070344050,73358,16001,1064650062,2367115,2498105,1451963764,46367494,729024313,-2097000565,1463355587,-2096663544,-152957757,2139351787,326369290,2131382271,71825177,259387392,-2146941047,-326553,244319862,-1992913176,1183516230,-310157818,535137026,46812509,-1957346048,1996431084,-586422264,1586217102,1200301574,651309826,2367115,-787510490,-489500192,49120250,1562371467,313933,-326412987,-11053538,-622327690,1958743004,-1012950,244320886,188136680,1444705746,-1878624513,-32184306,-11077493,1465321078,1358793704,-401698729,1599610322,49120094,1562371467,445005,1458342741,105287255,607554342,909714944,1400111142,-2093184218,-2094660922,1198784572,38570790,71616294,-1943655432,-964491700]},{"sector":16,"data":[-1960423160,1084752964,-1960434316,-1950338284,-773664305,-1946492208,1107343560,-855351669,1398146593,-48306093,637945486,-2096610167,-497480506,1605626828,1575324510,1426064578,-1000936309,-829750154,-1072971636,-919395468,1017915132,639268131,1958742700,1009789972,839808777,-1327985692,65140490,-339178557,-473855002,-2147480317,1575324510,1426064578,509013131,51017413,-1070397322,-930370308,637820612,172165002,-401115968,-527819111,1977629356,871162381,121120448,-789117835,-1070398741,-443851233,705117,-1880555520,-326413056,1988843350,75401990,372703022,784937728,757862025,-1897667751,922691265,-1591345152,-969211900,-1993996939,-1946155970,651705299,138891,1964007309,786270983,757870217,-1014251378,-1070344053,17298982,958804852,326435959,-1004121338,-2128215457,1530907967,637826055,637829001,1979610937,642975251,637689796,1070415745,74712923,-25196250,120792640,-1019507084,-1192523146,959372083,1965894686,-796110075,1583325163,-1034033781,1392902148,-27817178,359977483,1120046666,4096038,158682368,168725286,-1962745088,-963752239,244000326,551747594,-1910050421,637534470,2236043,470715174,2000233984,-2095942648,-169735485,74943270,-695793829,38767398,237708995,-638124004,-506338863,1007551270,-1930261760,-1022927934,1435523051,-1957237621,-13761418,855643702,243871433,-480694996,650219239,14079,70662438,-1941801984,77670099,651705088]},{"sector":17,"data":[138891,1964007309,786270983,757870217,-1014251378,-1070344053,17298982,858143349,1002664967,-339773757,786117611,757866041,-796129931,-1898779821,-1933341757,15395266,-25741018,1392906101,39830566,-851476186,1963416383,-957660956,74922278,1392960117,39830566,-851476186,1946639167,-17372973,72825126,-956841100,-1116348415,1392963281,507063888,812913440,-2027503221,-1993997745,-265945521,-754667009,63319016,1030352,38216486,-972298541,38242598,72845606,-1962452136,-1645542282,-796081268,-1959869637,1964187678,1048784579,1946161956,109981225,-1959914716,773005854,638790817,772032393,638790305,771901321,638789281,385763209,512437767,-1943137504,773006342,321003145,71797542,321692462,38243110,321561390,-28865754,321299246,72322086,38258470,118362932,-384620357,-1956708514,46292453,-1957346048,1465261804,-401698794,-1030868191,-14230133,-1960421833,-14285705,367526519,106874110,273123622,239570726,209160486,176130342,138907430,105352998,73894182,638552358,855791497,-2090967104,-443874579,-900899553,-594870268,75467574,108512566,-1877969665,851961870,-1949135110,-1946483612,113607660,-1895402241,1962868806,-62484728,-1895140097,1962932806,-401698804,1451831969,639419646,1070415745,-919399051,55544358,117440443,-397192367,-1064378841,-1945215861,1586037830,-339244286,413216400,378220032,1170931734,518818645,1988843350,209617674]}],[{"sector":1,"data":[855798784,142509046,-2130414592,-2130640698,855674822,564145856,-2114977024,-1946160922,-754667010,-1177406482,1381048384,-401698729,-1073008308,-454491275,-661764096,107328,1183570062,206998282,393597451,78759563,-628301613,1311492235,168724746,959232,754977955,44236822,82334208,304089,-1006632514,-1064565122,1450493707,-1607548877,-1895497695,-754667264,64916712,378220272,-544538608,1375797433,1364395606,837291664,-1899590898,109522624,-1557790702,2126774338,643177990,-1090095675,-1945698212,1959660505,1091341070,620331841,616104822,-1935346944,777002950,2178688,-955878400,-2147471354,1139285504,1105731074,1962281728,842434820,37667840,3318016,138776358,71665958,273008422,113704960,8388660,-956287325,16778758,2114373376,-1941679104,-2090967080,-443874579,-900899553,-1957363704,1183719148,379661828,1975520000,109850119,300613656,-1977165682,973080606,2130708510,10692107,109850112,501940246,10606734,1958742784,650153481,532026,1183772287,429060,10692096,-443867392,180829,518818645,772036235,-1912596831,1975663576,41225,1483566,-661776661,184549537,990737600,-1896647230,10561216,41728,-1960852853,46292453,1364414464,106387026,516173342,-1959919544,-1207940034,-1004142590,-294113,2005735796,1334519302,652280324,1962949760,1959329284,-487128200,-2132808718,1836316156,-523122805,-523116335,-1728051707,773865657]},{"sector":2,"data":[1580686,1044109196,561250308,378467467,646643716,-326434814,1360053635,244338770,-1993384984,-1912602074,-337212457,1347571976,1239944848,774300463,4726468,654311353,958799812,653817103,1991,38242598,-953761650,525383,952614,1594302208,1532582494,-1269775528,1478610189,-2144452308,50352190,-1057095053,1209975854,651309824,-75292732,-1914800897,-1960442249,-788331441,3964966,-2144439692,50352190,-148499854,-2139093692,-987340171,87689084,233527925,457504294,642872704,1963148346,1364350539,-785756077,943637806,775290624,-1912597855,1245610968,527761408,-1191176002,984350740,-1944947248,-850348837,-2082567391,1051990507,1291723213,-1578638593,-1073020862,-1269051019,1478610256,1582979419,1278608174,-377363968,-1950089363,1200305884,1958742788,413216260,446901760,182784,1458342741,-1946411433,-1064434618,-661733325,-1107287873,-1515913216,-1515870811,-1526662978,73305765,1719939,855995392,19065024,740213806,126559744,637547683,-1560131701,-1003618250,637547550,950208394,516173312,-1977221056,3908103,941540398,126559744,-167759197,-2147468794,431234933,-796253747,-1072905474,-1929364830,-973062858,-1268973756,1931595079,-12270076,809405184,1962871552,-1207493113,1741508096,1595922572,1575324510,1426064066,1465314443,1586428958,105286406,549378190,-1900006656,49088,-1515870811,-121657947,782607616,3415748,637548705,-1003616376,-1610596322]},{"sector":3,"data":[-2010775493,873907463,-1675971584,2048851758,106860032,3810944,72256447,-1047647773,3842086,527712424,3810954,977223461,-1928038972,-1962918594,192259831,16743552,243332981,-1958739910,-2097139170,6718,28312948,-1275059224,-13722544,-1962903010,184561718,-1207601930,1741508097,1452005516,1583292164,-1034033781,513277956,-1047602804,269966,504269614,520037888,-1021378536,-326412987,1347900958,1483054,74825739,-185915187,10606734,104760064,-327942144,-1959862388,989861942,1476883966,1562336863,777112397,1707659,-818215709,1392931701,807322670,1065362944,772502784,4202180,4161574,123405684,783412057,2098942,134676050,-2081939968,770187004,135200508,-963708416,-2128153037,1409318462,638612804,267916,36079910,1455852544,519965160,-22550442,267918,140939,404655150,251538944,-2080702432,5694,1532627829,1599625479,1297948510,1095883,-981209973,112912,396935,1344164169,922702166,520028178,22609940,184550926,516912320,519834088,1526445032,-380041381,1430650650,-1960907637,-2048391610,869830144,-353088,2097153550,101107477,-352321536,-401682687,-38207493,-380629451,32243430,-68677937,49120255,1562371467,182861,-326412987,784347934,2098744,-1909577355,-2130700258,1409318462,-1207143100,117388892,1343094790,-1191268887,-1873804543,768469006,397055,-2080374856,-443874579,-884122337,-1959338869]},{"sector":4,"data":[-1959393209,116065887,-1959338869,-1073019321,-1590819723,-1064435688,2118025510,1967412224,28885761,244338691,-1020424472,654301672,395007,-402652470,-1591279666,46792722,-1156271872,-1313137487,920423192,-402110581,-1959329860,-1959394233,-617413033,-2027497078,1468474887,444930,-1946185240,109520579,80347154,-8067072,136184358,-520388608,-525139331,2114976640,1393537794,512239171,101056520,1358620136,133861352,135200294,-895985664,4,0,0,154971394,-1639957357,1023229499,1161624898,-45728515,1023235900,104660316,1628126238,998065212,138172679,1862941889,1005521980,1060921601,-888259663,1021000508,1211953189,1850293586,1024936509,4032843,1984708197,972566846,1446678528,-1959321410,914829014,-231000298,2011890549,516173456,-1070399436,772245030,771772322,3677892,775421734,1056395,567103668,-5110092,520040092,-193658758,-850348965,1006534945,-1273400265,-1205744302,-2027536306,-1557263289,-930348918,239568678,9216814,-852155208,512306721,-1943142274,503349254,1924800270,623163456,-1155587635,-1070399486,-13741997,1577085470,-1957345845,45817580,112640,-13741997,771779102,924190407,-986826949,-1207927274,567092516,1326877230,855750656,2122326477,410320902,369542958,-1271441865,773967186,9045701,206014758,241142822,-1962742397,1297948645,-1342176566,109456897,-1073086381,244329333,872354024,-1144811813,653918336]},{"sector":5,"data":[967051207,38767654,71812902,-1943651930,-953809329,966728775,508529702,-1070349317,1392936494,1958742528,-1070335421,-401698736,-617349281,-2135178354,1990274560,378220032,-1993998216,1468605959,2057383426,378220032,-1993998212,-1993997241,-1590819241,-1959919486,637568022,639387529,-81897591,921996227,855929995,-1145008448,-1590820612,-1993998202,-2002702841,1200170496,1048784386,1946157180,-7673853,-854851400,512437793,-1014104046,567103668,-1962928967,1052003289,-136175155,1109297958,1977289472,516173541,-1047789500,-953807901,654311175,149447,1048784384,1946157062,1354773257,520040016,-963969020,567102644,4235566,1108773678,1428081408,871140176,-1898410304,-1962899938,-1543895994,1183528732,924492552,-1559607669,1566062360,-1677147005,924464895,924333823,436651806,-12999113,-1908991434,-80274402,-1194598006,48967936,1430634547,646458910,-1959905420,-2093541842,-981269523,1715088899,787969280,-1962838273,80053228,788186107,924321423,1347618386,-2141759919,788399718,924333823,-87819268,403083054,1499356983,1510431576,776822047,924329727,65739700,511757440,512634375,1048641560,1146355838,1048799349,1946157086,1003981921,1962935358,471793414,1428286208,-1896156021,-1962933226,-83885530,-981209973,471793424,36079872,-678495744,1576789643,-396873501,-1993408615,-852025818,-1892770781,775362566,924722747,-998042252,641412610,141899550,406257454,57908535]},{"sector":6,"data":[-380895048,1355022128,-352283928,-1070378993,-352285464,28856327,8644608,535262296,1915354240,821854213,-1909560714,-167765986,1073756678,1048663669,1146355838,1397771893,-30538158,855646214,-1145008448,1924661392,126297664,650677328,1342326663,3806858,-2143296896,1073756686,781979316,8003327,3937933,781990836,8003327,38244134,772247334,2100990,1482381831,1966996608,-148772861,-95593185,2049900334,113478400,516173395,-1910112200,651725575,1008224138,638088702,186140670,776989632,4726468,-2095070170,-277544965,71772710,36106867,1603077191,1958742538,503524873,-922877876,-2144405643,50352190,-165276814,1971323463,499352345,1363050542,24379392,1065428555,108351299,41910566,123412558,1946565827,1912880143,1946631190,1946827794,-16062194,-385948440,196410932,-385823511,703070559,-9836290,1317609077,-402017034,99221070,-32053247,1979668200,-402279413,1183448638,15919606,941540654,-1910535424,1245610971,326369280,1912888889,35556110,73283840,397673843,-386000664,-13697543,-402621906,-706150773,-397389059,1515781637,11591818,1946287232,184320098,-58692748,-2144177146,1047791612,-1274479488,-380865529,-2127691624,540481086,-2146929609,57999354,-385952279,-1779892653,-360195,45352820,-335691544,105807989,-401886144,-1073021515,1719671924,129285894,-335697688,-31332335,-335713304,-31856399,-386047000,1183382930,-397939722]},{"sector":7,"data":[1441332747,-1896182787,227278430,-402472317,2123103610,-27357444,41205770,1166592254,-400299263,837352943,-1897952003,-1174762553,615579647,-638079246,-352130685,-36313082,-386066456,1583349062,123426905,1297948506,-38147889,-1258486808,1386015495,781982132,8003327,-1036382540,772961370,1580686,8273537,91571284,3810944,-39130753,1011703071,-821988063,2049900334,777455104,3686084,637898278,-31948928,-31062923,123672647,-386011671,-1030947664,1121619530,269892398,-1962445056,-352320738,129536049,4096000,125062400,16000,-1960479398,771752206,3684037,410324027,-350087704,1978175495,570681596,209043467,1586092683,571640,17190528,-369736055,1508441928,-389903108,-1073012233,-320084107,1330530647,1346454604,1146047790,-62986240,403082798,1048782336,1946157086,11135235,-1174634812,-1070399489,-638079246,1166747209,550273275,-44201178,539020161,1969434173,1878753542,1026585709,108356142,1952578433,775759220,-2130283152,1952868859,-126434022,508692049,-401698730,1029293141,41025600,188575979,-1956154112,8435921,118939691,1992686731,41207288,210431282,-217923197,-976581724,-1527513994,-12204506,654084874,1992627456,41716216,-1174125428,1376664956,244340254,-2117859096,1023443140,577962048,1962934845,-350769127,-163149035,-1929879868,-61422143,-1427631948,4210171,1317012595,1183383814,-75503370,784348111,3684037,1983591563]},{"sector":8,"data":[-385649660,-986776434,-1962919882,-1948545508,771768854,1183371,125163835,303466798,-485299456,650219024,4329099,-210384069,1108773158,512634368,1048772632,1962934302,-164391103,-401698730,909714349,309592086,503324859,922703699,922681360,520028178,914948116,-400686978,-1959857390,-486533618,784764506,2760331,520603430,1334584895,-986802430,-1912588234,371101212,109981184,-1960443882,-2097151434,914954478,-1960443858,-1996487626,-1275056074,-13722548,-1962903010,281379820,404655662,272039680,244325888,-1876749592,-783226866,1458949609,520040022,1430585446,-2095125365,1465254636,567089588,246730890,520040092,1183318138,1053044476,-14286792,241077045,781996212,8003327,-1962125685,1437861494,-1269095987,-13722544,-1912571362,-1947073598,-1557787066,-1993998314,-1962933706,-12777914,-1207732721,271388671,-1312060416,962509316,-288099701,-668213757,-494804781,-1039990769,434982,136218918,1369646592,512304640,-953810861,520096262,244065855,-919404532,1208912166,243869184,-973340598,1959069814,440582,-1979687745,866513684,-978605120,1959069814,7126794,112276618,-1414814221,-989301051,-2135358860,-201749760,868387748,-59340078,-494213574,-855768458,-1031092678,-922877322,-310157729,535137026,181030237,777395712,3684037,378220205,526254096,480325323,51968,-2147287040,1080246360,1310624046,109850176,516636752,516238931,1204240462,1526923267]},{"sector":9,"data":[-30487777,771760134,2113152,-385649663,-50659177,1364330014,-577874093,772033675,9383560,-1212217586,571713,-217418611,-326410332,236744331,9616927,12859017,-1398652668,1098038849,1946273014,1099152899,-466434165,-1174368093,-1073004198,-1816524428,1946762305,-388592894,1048576340,1946747024,1102035472,9373430,-1174178432,1038631333,512026625,-402504193,-571990391,511240192,-402502145,37559933,45125632,28312180,123361627,1912749087,771993659,5244472,813109874,1363050542,678627840,-1895369170,544505856,1077331246,312832,1317072011,-998047460,1515805448,526212958,-1868485113,1246464,537853486,1918357248,543519849,1953460848,1702126437,1768169572,1763732339,1631780974,1953459822,1634038304,1919295588,1124101487,1869508193,1920409716,543519849,1342205812,1953393010,1847620197,1914729583,2036621669,1919164416,543520361,536885848,1769366884,2123107,0,0,1953724755,1159753061,1919906418,1851867904,544501614,1684957542,-1061486560,269859137,404655662,1003981824,1946158142,-84636897,267918,140939,-2081649669,199758021,36079872,-678495744,-1006901621,942587955,1946178310,-1173467119,240255122,-13741741,1023435294,784531458,12846791,1465254034,-946942068,-1002534098,-1393390848,1975519914,-1993453574,1593885758,1430635358,-1591808885,-1073020920,1586176373,1977289478,1394979586,-1193029309,1397751872,132648592,132340237]},{"sector":10,"data":[-1962932061,-1961391656,49120200,1562371467,182861,-1313144143,11647745,-326412987,82608926,1317558102,139365371,-1873710365,539748366,-990099831,-2144991626,1131684668,104448051,427098120,-401698736,1625554828,-470004085,244338953,-1994390296,1992558678,868233990,-53333047,-1073042394,-1040300172,-1024967052,-774206712,64619459,63623640,1189473235,-1406744269,393527306,154939436,-466432905,179361931,-1023155721,-420755317,-486125941,16351499,-1962576960,12839361,-1091977165,-1829117184,532107,1603090423,65196290,-1932424230,-1950314800,1962281783,72628265,2126782581,91524358,316918411,1390980169,652249608,1256719754,-533051640,931916916,479003764,-919350805,-470069622,185197159,-14781194,1558905412,1668609547,2130857215,-2013318388,1447004476,-1595404656,-336186611,1392216899,-1157184893,1381171264,-806875504,-259303157,745862667,1157576073,72124418,-470004085,244338953,-1994452760,-561313706,2089617182,-1966525691,-985594804,-1527576970,-208986362,-388905333,57993425,1606418445,49120094,1562371467,313933,-326412987,106859294,-1073677439,-472838030,1603134417,-1873601019,-25630706,-1070398741,-1962742397,1297948645,1157628618,518818645,1023821451,108183552,-523116335,-1070398741,-1962742397,1297948645,1157628618,518818645,2126796630,650720008,1586171272,16482572,-785878336,971231715,460587599,-486256758,105789718,1317733503,2005747974,-205419771]},{"sector":11,"data":[96872100,859106048,187755456,-1325894437,-1014257117,-1962931525,-768407986,1230173175,74760203,-219479325,-1962521047,72877646,-85808592,-1951743950,1598031430,49120094,1562371467,576077,168648027,-1957345987,1465261804,1996431118,209125134,-16091393,1793591414,-1947170047,-108853690,505312511,-1070343538,-1979708742,820740124,-75493774,1175024394,-13442313,-387792125,-219656161,1583306754,-1962742397,1297948645,1157630666,518818645,521033558,-1961867637,-1039461802,1996429173,343342870,-16091393,1996425334,7530502,468409971,376897424,-15436033,1996427894,16246800,1962932611,240552198,-1005828471,2045250686,1166681604,209634559,1912797571,629810707,209051706,74721084,74785340,1191373187,1241929355,41339451,102681227,1375177503,-217547068,650130084,525862280,39577680,-2090967208,-443874579,-900899553,-1957363694,509040364,602472243,-919396863,-1039402869,2028667765,72286096,-2144943474,192240445,175555911,-471310925,-1341099008,-18166,-1977176334,1975519749,-1336808479,-18166,1992666866,-1949158650,92939999,1950170183,1946827790,1952136434,1975519786,-1960514580,92940027,1966947399,-2000670206,994460164,41026646,-1073067442,179365749,-218103879,851766190,-1962637120,32241858,1595875321,1575324510,1426066114,1465314443,-385928418,-1189216118,-125042689,1450492427,-2144943474,192240445,142001479,1340628403,-1341099008,-18166,-1977176334]},{"sector":12,"data":[1975519749,-1340937247,-18166,-1977176334,1958742533,1968913412,-18171,1992629483,-398609660,-545980386,-1950184377,-1190285089,-1359806465,-638107327,522175371,-443851169,574045,973441574,-1979288125,-339736060,83290130,-1048179574,-2046496792,977749704,-1008634687,580984590,1958742784,17033229,-636757877,-389873292,-947191693,41221899,381292724,13024001,1946173312,18790917,1377738932,-1873784034,-752818162,1073752227,45633908,16312386,-2097151227,1119551698,1347572512,-974647664,2269978,863289355,-402607896,-987889449,-1207950314,-1957289952,1577355762,-1258291271,1914817855,533236493,2097346947,178435,-1763174165,244340224,857400040,-1546505280,614662178,639011072,-1004616960,-989846466,-1409276874,41164860,-136246980,1095645411,1011460780,-485329859,1948269613,1946762483,1946828015,-337671202,-1426355225,1017911523,1006793760,-470294263,-1405006323,108284330,-1082914244,642774507,1947876736,230180857,-1070355702,915087274,-1873412062,457697294,1347862579,244338775,-1961216280,244338928,-1558501656,378077220,-1950154714,1442849334,585633424,-17637,2629255,1258648643,567099060,1107343555,2629259,-768358093,1170416077,518818645,1443425411,857673303,570853312,244338688,-1088810264,-1679294462,200838142,-385649214,-1910636175,-3807038,1530757158,-985199755,1572015734,1962827240,-1190481899,-1359806465,168135206,-941525568,194630,179319531]},{"sector":13,"data":[-218103879,-988681298,1035143798,1962817000,-1190481895,-1359806465,1006996006,168064091,-941328960,325702,-951646485,129094,33062531,642715508,222037386,171767924,-947653516,-1960960253,-2097141730,561381371,855709370,-851659575,2663201,141744267,1085589811,158540237,-15210465,-756432845,-1983302912,2122970702,-62485254,520540043,-873934285,-125926656,522941698,1153088030,-402652487,-1195769670,112964,-1006587416,-1108865410,240567552,520136168,1153022494,-402652231,2122514586,393478648,-401965372,1455751328,8972298,-1128653281,112964,-1006600728,-1981282690,106349824,520122856,1153088030,-402652487,2126774374,-125926406,-1341688575,-18166,-678711566,-4603854,-2085686529,-97844241,-921972853,-225761666,1443090827,-1194773514,567099904,803785011,-162100480,12110131,102878530,-1949332705,1894614,401131827,1189617408,-38934274,1593835960,49120094,1562371467,838221,567099572,-1053095822,1308689525,-380058634,-812908794,-2144975025,-109638339,-821831177,-1153583677,-594854731,1468741150,1603155462,1334457864,851544836,1931595245,-18429,444959,-1959338869,1051984991,-4709939,1073836799,-1962933558,1468741340,1334523398,1200305672,1602958852,-851266550,-1207667935,-895877121,1068564488,-1958694469,-511041828,106400566,140480054,72321846,174033718,57876941,536870840,-1962932022,-1003071524,872154239,-17984,-1047810318,1212733687]},{"sector":14,"data":[313951,517770074,-986294442,-1003092873,-259969,526278626,-402650934,-1431502874,-92946422,-1941387381,-387257406,-1070333994,-218103879,-420786258,872401384,1946433728,87565879,-391368844,91357459,-347724662,16181253,-661920718,1191545382,1912667880,629810694,-402265273,-466485024,-881540293,1912602808,132857865,4030502,-347602572,1474071444,2143565398,-1950249980,11004103,1927809507,918719488,1577338763,313951,1448598667,75482166,-947142260,-486499352,7071753,-1959345524,1599996999,-402651958,-147062974,776870772,6372992,-2028833792,-695515138,8775852,994443634,-1946979593,-1933145102,-13768230,-594833264,2143565399,92939780,125091850,6416455,-1958280846,1606585543,-67107638,-1406732405,1912622824,1195853317,518583531,-1073042944,-54268811,-1406732405,1912616680,1195853317,434697451,-1073042944,1019473013,1007579745,1007187578,1007055584,738359294,1094501152,1513885298,-1069807498,-566491534,537133687,1048587971,1912668257,244002341,-851836843,-1053156489,-986053518,-1959915146,973100814,973764557,973566657,-134055995,-3933757,1602946125,52920578,-1992881920,-775749028,-66642199,-108308541,192138027,860936695,-1316672,1599646707,1397774019,-1476113013,-2092206846,-18348861,106793730,-1962933570,17298944,-1020589963,527680059,-661978997,1005120994,1942108929,-617394158,-389379181,1532625669,-1049272744,-1195130829,143327236,-1962350205]},{"sector":15,"data":[1005716467,1397715953,-1014810901,45344774,-1962386037,1963042823,41388809,-230952149,-64745609,-337454965,989917672,-1950977342,440560,-829689301,-108793085,1444377096,1334300299,-1994618622,-242810292,205953,1174342665,-1023190268,1510018944,1086518874,-930412428,-402497653,190775095,-208944192,779417099,244306,389093155,1946346112,-2016267515,2005599319,17102338,-561576075,-1946224408,-164131874,57999620,-1946227480,-167027982,38570947,-251408853,990019467,-1961659149,767634375,-1019543544,-947189645,-117179509,-947191061,1330597454,119466449,-56232963,1195853382,1381061571,-1957235149,-752156073,27789195,44574580,2005607284,58490884,-1961200384,-1020591545,259506747,1962281822,1002832647,41288260,-1957235829,-1946409977,1590551256,-1017423526,172345174,2105741313,57933826,1376407038,-1957642189,1300957277,-1475900668,610366465,-489124868,-1957012492,1958742979,38218510,1308547319,990149642,1577218754,-28093757,-512488627,856311294,102623478,-1320082316,-561278718,1493270760,-311115765,-343729013,-17897466,76136499,1073892480,-2146808448,1173805035,-1384873974,-2146798208,-1880401317,163203,-259305611,1946289398,74746733,228480,1464951925,-320278389,-2143974914,-661978355,-2130551415,150995751,41716031,-1946409856,1166869597,1594329350,1284309424,18081798,-1948349607,17102391,-1628961675,1323911677,-214212865,133634164,309657601,208991755]},{"sector":16,"data":[721568907,969081798,41288263,-1957235829,-52199393,-1058481941,1962281982,-11054636,-25040841,1960786777,-1983149307,227082879,-1996288640,-2120809915,150995749,1301124869,-1948304634,75336671,1482624391,-12581772,1347617861,1602945456,9955332,-47939495,1979702923,-33101820,74787678,-346304981,-1950338146,-472824871,-397286447,1952054583,-2015851758,-1957228963,1192069624,79095879,-1956700791,1049347016,28901382,441288448,-1070396445,1342259384,216534672,1049346837,-919404538,-484815481,1085850369,244338689,1930753768,-214269,-2147264627,-751043358,-54918285,-919354369,44615307,-164425867,141869067,-478095221,82543612,75688131,-2084310411,1946163325,1357132296,1577013587,-1010824426,-326412987,-396929506,1183580040,1947248648,38141699,184966795,621901275,712245250,-2147224856,1333789239,518733826,1962705640,46331417,-588770188,-1992848637,1283522116,-427818246,-2013039601,1190593143,1946161160,38665987,-1946201112,-2090967096,-443874579,-900899553,1430585348,1444867211,-14489513,268846839,-16550912,1988821573,-11343862,1190615156,1962967046,-1946973378,140379096,-1946211096,2122515036,1517617160,-1070397981,-150929687,132678,45151348,1586219315,-12851190,-1070339980,-1377247605,-1989380868,38567940,-1956517056,-167049658,1686133364,-461324286,40110143,-1040822549,-1958120384,-1202321314,1175126018,-70916090,-2135985058,-381681036,-751107935,-1957284745]},{"sector":17,"data":[139759090,1935397691,-2016507101,478741071,612495751,108265475,-352041473,1955303432,52723970,-2029254400,38570481,-351648117,133599348,991327489,293012055,1256770443,105314299,57933888,-335849752,106335153,-486538565,1976796423,-12130045,1585828619,-2063108854,-244054434,-1031023821,-402104693,-445318333,-1949791408,28314206,-1946258200,1374161526,1492159486,721571723,-83105586,-201815209,-706191451,-1995803397,1283495428,1149829882,105314302,57933840,-402502145,-930349572,-310157729,535137026,113921373,-1957346048,1465261804,-1946301464,99092086,-402426626,-2132214888,-36509694,-310157729,535137026,46812509,-192195072,108301110,1962796008,38218501,-930359049,182878,921996118,-402230133,-829686324,1284178915,-1949465086,46816961,920423168,-1962647669,46397123,1207307636,91570178,1946372094,-1962439929,182984,-352104450,920423412,855924619,46397120,1334514804,1088520194,-838988683,1946090880,57640965,-930364533,-1962933558,1602959068,46396932,-1014297740,972971915,855798791,-893154341,1430585346,1444867211,-49354665,-133800309,-386059032,-1072956534,103613300,-49092608,-310157729,535137026,46812509,920423168,906250123,-1962518645,-2030041570,1468470855,313880,-326412987,-1957210594,-1073018298,-1877072267,277604366,477413387,1458604881,-1746399600,1174625040,13796102,-2095299325,108265682,-919355341,-919377173,116471,-8386443]}],[{"sector":1,"data":[-2147257087,1448280777,-1873719214,261744654,1397613403,-401698736,-661974946,-2147161213,1049361635,1972043782,39815432,260061065,39618817,-16228983,-561314747,-1191563288,-2141519871,410321407,-401698786,-1070395360,244338768,504390888,132648592,112656,-310157729,535137026,113921373,-1957346048,1465261804,-485863797,-1948676606,-620033954,-645130379,650219081,204427,-472709967,106858315,-150577621,652802267,-1915057156,-1070398337,990269067,727675865,-118757169,1605104471,-971088499,-970976699,-1996291003,1170671189,-1940770794,1170675789,-951131884,33561669,-68425480,1586229899,82543366,-1979915392,1049167965,2106261510,-1992521466,1602814556,21269762,1971914633,21335298,-1877080695,257746958,-930414160,-310157729,535137026,113921373,274565888,259316491,1334430003,-1995995390,-1014296507,1355008139,307071826,1442778083,-1962482924,-346531112,1522545631,509068122,1166932999,-4674812,-152916993,1492929929,1962281923,-18416,1073890439,-963966348,-1995422329,-1010814204,-1070349496,1090669707,-2142697356,41238753,-1073019765,1979059139,239438635,-166989685,-1951588492,38046664,1209627712,753024,1084755828,254021237,1963672888,1977879047,-1007285501,-503024499,-789860900,1468861298,-18710527,24302395,-83261,-1949748285,1946265794,200684318,-1961397056,-1014084648,1295876134,958797429,276105845,24983846,-1950152076,-8722190,478928245,-1950105549]},{"sector":2,"data":[29619928,-620024203,-1007265420,-1957399550,-1019539875,260787574,-506338863,-1019487997,-661962381,1090670475,-162973324,980762817,-661977205,106772811,1564027251,-1910213112,1031808707,639399245,1946254649,1569400342,1960512266,1963407632,38767370,-770977653,868467595,-1949748288,-1070349360,1954595318,104410856,-344719354,1398001911,520040016,190513156,-372083520,-619970699,-158260875,359924417,-25040815,-2146507942,2005418190,1244326658,703120014,869413637,-400626752,427033645,1946338038,-27400172,931915235,650546766,-2012586615,-722992521,-1010267390,1357679445,-397192878,1586233075,-142969608,8453702,-620020107,132345205,-768360397,-150896151,196166,45150836,1586219315,1994917628,-462158069,637719784,1342273023,1493483496,210307188,1073892480,861419499,22079936,-1946270069,-166987178,-1360520332,40140802,837058814,-167615480,158613697,1949353206,-350975728,39184396,1949353206,1435051524,-345117951,1086453324,-619992972,45638260,-28964096,-2147332982,-1056305951,145285386,17564276,-1962195576,1592284684,510942723,1073902720,1820984457,-1907452414,1166616262,216367114,91064358,-385744152,-1880555310,66292480,-32446248,140348198,376951611,1111683723,141808443,-1912435224,68085958,-369342837,-1912209238,2100897475,723940609,1474844371,494034436,-1940270333,44624065,1090406135,-1962380288,1238010841,637713384,-351773301,1451952059,146994942]},{"sector":3,"data":[45812085,-2060328192,-382896685,1586233054,29619964,529203829,650350155,637748619,638076302,1963031865,1157834245,-1036304381,-796196234,-1880375245,1190646539,1946157564,-2049756400,158727774,1793643059,-338654459,-1950184515,-389116962,510919301,-1946388853,29816776,-1962642176,1211403214,-397492082,-1047853334,-443823989,1586217821,29619964,529203829,-1907637365,-128021565,736679939,1569400573,650350088,1963031865,-388814044,494011278,-1047735549,-150871576,4259398,-645199756,-397817205,-1960443404,-202831779,-388877314,-796195599,1375683561,1526529768,-771028364,115870837,49735681,-1946387736,958841800,-294387371,-335544392,105221874,637816203,1963021625,14936073,-402467864,-1910047657,-337508283,1300821555,-59381749,1156976500,-176930814,-243985351,-335791384,-973159444,1871184756,-838941949,1946090880,55574029,-1040840075,-402426879,-919404541,1381041859,442317142,1207325300,1282670850,1073891318,-745847179,-1907679349,-1960442173,-1960440227,260770933,650219081,-1962117751,-1047639796,241010982,1569184395,1225755418,-225721970,209028902,-1907815285,1435051713,-1993996530,-1993995147,-628421027,123296350,1569400515,38270474,-1959562239,442337235,186402303,-1960872741,-1912190705,653429697,-1962117753,-1047639796,240486694,1971922439,1569269260,-1993948402,-1993995179,1455623765,1300964945,-1958681846,38270681,-164072447,1967129159,1569400370,1972053518,260769292]},{"sector":4,"data":[650219081,-1962117751,-1047639796,241010982,474873607,172854054,1964657977,442337546,58054971,1494900009,-167001250,1972045429,474843930,-1958145053,-963752396,209029926,1073890550,-167050379,-1007275069,1443120639,651070214,-1912058489,1971922625,650546694,721964425,1323235313,58034470,1300833881,2106140166,2106140161,96871946,650219085,-150450901,-1993979431,-1017248947,637816319,637957515,638076302,101086601,-1893284210,723912773,-554235787,1971922510,1464910595,734236166,1138489305,990904505,-1962642471,723051467,-773729831,870437345,-50383936,-1064522765,-1911503744,131984320,1371756639,29590352,-1946495512,1166935117,572166,91488680,-1291303538,126756358,24983846,-1960424332,-75494795,187790600,944665846,1232405372,44585048,-1960426635,994050885,1379562178,-370618229,-1072997888,-14274700,-963901835,602456206,-1058339068,1948155193,1962281756,1173759517,376702981,-538439701,958690048,91496061,1946614656,126756357,-397174046,995820113,-1962118206,1959922640,1498958337,650362931,1073956235,-903100277,501478963,1946614656,63343625,-21174030,-1960439829,-232060811,-1895910936,1972053702,-1893311994,-1070399163,205883686,239438118,-1037955920,88442918,-163528564,175390914,139299622,-388461751,-963707164,184550376,-963853376,930412043,25004326,651309906,638211463,637957631,638076302,1963031865,-23533565,2100897287,638022913,-402111090]},{"sector":5,"data":[-225706358,2100897370,637826049,185091470,1359397878,24983846,333974645,1941998592,117145612,-1910110860,870965767,-1022928448,54889254,511523136,1173764212,846530571,1166943750,1031808520,638022746,134563318,-1962467468,1965754485,1966810654,638808840,-150440661,1992702942,-339334396,-339725563,-1036318975,195,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1465255424,1381061456,-494807413,-1945763839,29982913,-1036794229,-226443122,1426269697,28856835,1569400320,1977289482,1136888835,89122822,1599750489,1003523102,47553,-812969611,771869056,1533486729,-1139339526,788224869,1533349513,-972832117,-553395573,74643259,-544487797,990904505,-1962642479,724558794,-772699183,-773729823,1925397473,-661718003,-972831858,-164372989,738004715,-1948374074,-422490383,-1014048626,-1510736245,959366891,1952146702,-1909523956,777741590,1533486731,1499078651,1583306843,1455684615,511523154,1166936436,572166,-1912592408,112920645,2025472,197168730,-402295616,276037206,806045174,2100890229,-402295550,-864747036,1301005150,1354773252,24983846,-1910110348,1492509191]},{"sector":6,"data":[189134531,957314320,175440509,1962959336,17230064,-75437195,1591702790,-264519540,958801268,527761789,427095563,1948155193,189134342,101741832,-1960393074,637993797,1912816953,1455852546,-1960398613,-167048587,2084051316,638874883,134563318,-75496332,2100937480,-2147060706,868419323,-1007285258,126756358,-1960394612,-840432811,24446975,1123060675,1946745728,1166747159,-1037348856,926492240,-351927436,-1064413695,418103347,1949776166,1979655686,50588424,-1064546110,105955843,105220902,-1929494808,-1073018938,-1993997196,643302981,-1945614967,650153666,1476810121,138774822,-1064385908,106268966,-1960393074,-167048587,-1064565388,637831488,-1960441970,-963901371,642303531,637748617,642581958,345542,175999270,209553702,243108134,201112552,1359397824,-1960380877,958792533,628359549,-14751658,639530078,1996707129,1962281752,-963770866,54889254,1161373191,-1945733629,1166747334,126756355,123326690,57996811,-1023409688,-1064545711,55413542,24983846,-1960393074,477430613,410307131,-963919730,-16390058,-1945876993,1307051968,197168892,-1874793536,1300899398,1979655685,1979655681,1979655692,650153486,638469519,638338447,637617551,1074089352,1156104334,-963752195,1224480744,188792974,-1995934474,1971922436,1526084362,1342620505,172344914,-1982846208,1166937173,968985608,594812541,134956534,-1910104715,958793285,125043069,88471078,737113352,992353869]},{"sector":7,"data":[58067021,-1995944565,-164424115,434657622,-352094726,-2142138302,1962935164,375229424,-378332103,45145739,1963086056,-1948325118,-1064417276,242614054,653894888,637629951,-402434677,76544908,1073892480,17450438,206907742,-2141603977,1509952125,1505953624,28922126,855829248,1465261769,512634450,238616578,1433731096,171376430,1306745088,-14237298,637535798,1848971,1044286246,651070208,16001,-512408242,-1070342173,1974399740,-1438625832,-651436405,1943944011,-775713844,65262051,652464600,2235907,140479270,-385928361,-346032009,1583307471,-986789089,-1912588226,869895197,1241921984,-987401216,-16758722,-389867451,-1712783388,-1876890635,-385885208,401339862,-2955120,-957822669,-1878201353,35556910,-52480,-3991483,1388517453,39291702,-1189115082,-1014824956,13796111,1263141491,-606999855,1079704290,239620980,72235353,-232521100,-167033464,359989698,74830347,225706664,2100887820,-1475972066,872576264,264566273,-461371788,30179568,-1322130304,180888076,818214625,1317735284,-1047639804,21859110,918826691,-1960443848,1461633804,1090484712,603980037,-2016375810,995106373,186611408,1073968576,1170610411,417857547,-1961921280,48766549,911612,1167000693,-396733922,526384977,441283,855920011,138776274,200949736,1170654144,-622329845,1959922683,9103619,105221714,1513979942,-1910080140,958793797,460587389,175475494,-394988021]},{"sector":8,"data":[228480,1157030517,-596377342,88471078,114652424,54889254,637816203,638076302,1946254649,1031808563,639333466,185234827,-2144570122,1962935164,38073894,639529985,134563318,-963898764,-150440661,510995422,1959134016,132859914,54854438,129819200,-2072591813,106483851,134184425,-1072971125,1950876788,-31176703,851694131,-1957210396,-1949791239,29619955,931857013,1465261794,1443029480,-869668777,837310294,1004113078,1464563150,512503327,1122697218,-74759966,518534655,1958874061,-339725564,1048784433,1946157062,38112020,-13741993,184550430,-2147060544,-343932339,38139398,856650753,-396929281,1465254542,-1196039192,1583284225,-1933328373,115888600,1651792371,-1070346101,-1961992821,-654097633,-472783919,1913543939,264471373,78727282,1702947795,-1343686901,-1959009293,-224007984,-1960430476,78709597,-343677997,-52199421,-1324458709,-1947479294,241011651,126339211,1128515627,-523116335,-544745469,-1980633112,-1946449139,-919354424,1958742979,-1950104831,1200305884,1468741124,109522438,-2027028476,-905968106,1430585348,1444867211,-41883561,1183568435,106859786,-386038552,2062086900,-3806979,-310157729,535137026,113921373,-1957346048,1465261804,-1946331672,1183517782,140414214,-386049816,1323889422,-6690563,-310157729,535137026,147475805,-1957346048,1465261804,-1946342936,-919402922,-386603800,1583349033,-1962742397,1297948645,1157628618,518818645,132667222]},{"sector":9,"data":[106335229,141939211,943113262,344663552,-1962523250,958792781,192217429,1363198092,1927827538,643389953,-502774386,-188880663,1610408168,49120094,1562371467,182861,920423258,1074022283,508039540,512634455,-13434878,1377322495,-1930320663,-387126312,904658910,1962924520,-189339600,-806867989,-400132865,569111732,201311720,639268050,1342391691,79286835,-773795584,1509614290,-1410856981,-1949464833,407764929,46800735,-6494208,2045248372,-1950338060,-387257398,-109772914,-1946913816,1172237249,518818645,1139300182,-18180,-402235763,-386335671,32043242,309757,-773795504,1509614290,1610363112,49120094,1562371467,313933,41262,35031854,16501504,1163067392,1111835719,1442858837,-1070397865,-1960394610,-1912599010,16826307,-1184665922,-201588727,376809006,1813940526,44117603,62410752,-13742080,-2090636770,1594295492,-1957313698,-2094135572,6515774,1190601588,1979710470,74907420,-16353537,1996425334,205964298,-1070379002,520040016,-998022294,-443873522,836189,787254101,1668038275,-15567872,1996424310,112646,520040016,-998022294,1575324422,1426064578,772205707,1668038275,-15764480,45614198,-13742080,-2090636770,-1962474300,46292453,-1957346048,-326951188,-1155592694,1253703681,1358081,567099572,1107711627,1606028405,1161473,567099572,373963755,-193032953,-1418186568,-1962933063,992706,-355341615,-355341615,960245764]},{"sector":10,"data":[285475446,-1192697174,866847245,1452124864,-1189144844,29032456,-851397632,112673,-401698736,54343,0,0,0,0,0,131072,1,184613560,-1156877120,240148183,520040019,-401211282,-768357086,2115406134,378088960,-1766260712,1364332132,146280018,887705653,109850365,-1943142384,637538822,4327111,-1047855104,-388823887,1687855918,78765195,-796070957,-1557216509,-930323304,-1099669317,-215255328,-338492239,-1993424125,-94064098,-427044722,921515003,931465,203852086,15630592,914961922,-1591345142,1480392958,1024095319,276125511,470220590,117386752,854261788,33614224,-54512866,268865070,8437248,-268194778,234978445,1734129951,728191422,79793102,431270402,1090789837,-206882124,788275108,1050254,268812428,512437760,-1960418152,-1912602098,378218179,1397882896,244339024,-485622552,-1767690584,-37754780,-1156958488,-1993459491,771778078,6819468,-1899459554,2014936,1020912603,76218603,1023639333,74711935,1223,109981215,-2135031792,650130176,1190134700,-268194778,-62601434,-970566065,726466116,-2131983888,-1141077248,101072896,1398216278,333975184,1963409588,83764760,104857787,1461081606,-401698733,1074246654,669582197,-1191408895,-13697025,1348769846,1088968470,-2134605382,1958742784,784371429,637536419,2242187,105152806,-14284800,100663814,782582760,525966,-1207959106]},{"sector":11,"data":[-13697025,1442842678,-186101746,1975520167,14215427,-1099669319,-248809760,134268545,134647342,785943296,1689394691,1963049974,-1896199423,-68777005,868453968,8436223,-201539533,-315402070,238455094,646526464,-293535732,-1992947200,-2097149386,-1942612244,905970710,140937,269388590,243873280,-952762318,-2147470330,243873280,-952762314,16778758,113718784,1146355838,35570742,1871259136,1871259152,263737358,382423143,785155560,1578636,370576430,-1900006656,16563136,638806456,-1557264505,-930348922,38242086,8954670,-1744400850,1048782436,1962934282,1689565191,43837776,-850656840,1313429281,774910001,5130562,-1873804880,-780539890,0,0,0,0,1458342741,-68680105,105286647,1023696523,477495312,637826756,637813899,637951115,538171,52824693,637538846,1056259,-1324366973,-2081697020,2078802371,72190956,-1157216882,279445512,1166935668,441096,24983846,-1960440203,994050885,855995074,9169353,1687724334,121185864,-1910110092,-337780217,-1590783878,20801380,-2141882880,1249117947,24983846,-31177611,1678125358,100740711,19293338,1461584709,140348966,637748521,638076161,856180110,-1174457354,-201588728,-1910087771,1166805085,-1960435962,-1064564131,772245824,-379283293,1156120379,-13244159,958841228,326369661,-756493773,512438003,126575766,1687724846,-385934615,1594357533,1575324510,1426064578]},{"sector":12,"data":[1465314443,-990445080,-1960441738,-1590819252,-1907858280,651899840,637761535,638089215,638220287,638351359,-1961986049,-1064434618,638473867,637622153,637886344,638214025,638345097,-2096210039,-645197887,-338492239,-402537597,860547942,1468606171,62950403,-1993981232,-1002436521,-2144991114,637666380,-1962392439,53349470,778344478,1687821867,-72,1996425846,108461832,1860718675,142001315,73173798,16827383,-1030874252,-930352757,866985724,-17701,1393456895,1364219398,401101395,71732904,-1960387789,-1030879145,239570726,206016294,172461862,-1993975464,-1064433593,106400038,-1037319538,1200170568,784870147,1687817729,637818507,637949833,-16693305,1602758399,130426373,1602954829,1086360586,-1557264503,48784536,-1956749322,214064613,1465255424,1687724334,650153544,202379,868257344,512175835,19818340,-1939564002,-1947008058,735587294,-1910615341,73787614,79255583,-774753536,-489500192,922693370,1347576982,-401698735,-13699001,-396061130,-1557225465,1583309976,49927,0,-2081649835,-1909585172,644126726,771754145,1687815723,1734648622,-1774780626,-1613109148,-1744402642,103493220,19817624,1348953094,1493135080,-1710872274,1776467812,771752633,1688092291,1090614272,-1207957829,-768409599,-1873784237,-139532274,-1425600772,1776877441,82372210,-1734267388,100871780,-1064409244,-1960378573,1183385669,1049306876,52822020,637535806,1838731]},{"sector":13,"data":[-506332925,-1048315645,65130754,244000505,-117243856,-506338863,-919340797,-471312559,857072636,-1873784640,-124786674,-1774780626,-1623332764,1687724846,1687724334,1678115630,-18073,1364262707,-924297385,-1983869259,101121606,128263912,33998630,864026624,1049306870,1022033960,117440440,905913936,-1902107672,198740930,856454338,126494400,1347618371,194736872,856520128,67221723,-401698736,-1070335709,-50444658,-397408597,1174904006,506870566,649949696,132807,-1960443903,184551478,642413814,-167486325,1098137795,1964033014,-397015540,1443298358,-341844760,-1145031888,62482914,121187840,1128465525,-2026965022,1149838855,1283466760,-400686588,-661916654,384311179,-611431436,67212,654258975,2242187,-1911886205,-964428218,992364298,1979718718,15984899,73173798,1967178742,46396978,-1007230603,870085648,1364395721,-1646335919,1418274311,1686119944,-2144929020,-1946024884,109981376,-628424702,-1912108762,649391040,-1007221621,276164608,201783078,1946157568,909714962,192217096,38046502,105154342,-1996191962,724499014,778344966,644310179,33834230,1443243381,-470061592,1156982295,276107268,-100609,1443297910,1390956887,-10491396,-85436922,653685918,538169,-165270155,1947206724,-397015514,-1960379590,52823620,637538822,1050115,45732403,-14285312,1347553396,-401698735,772273599,1687566079,782073576,-1956341597,53410374,778344454]},{"sector":14,"data":[1687815723,-71,1347944054,-1577981871,-50397975,654198414,2373259,641088294,-385649408,-1390018412,-369670520,-1390018429,653805193,737674439,38571046,637847171,1074021623,643986432,1376130187,71600934,637538341,-1979556725,-472647858,-1545055408,639689722,268715254,123339892,-1070384149,244338768,787891432,1687566079,782037736,1516542115,651309831,638080135,-1590815609,724460696,56924678,-4520254,1347815167,-1130174381,1149838855,214336264,1979207423,195896974,-385649472,-402194572,1183561386,1975520252,-1874203901,-1710871762,1688415844,922693223,-1729600362,-1734136164,100871780,-1064409244,953126,1324974336,-385649339,484703467,236914206,179719,-60332353,-1673623250,109850212,-1527552866,531284019,-1774780626,-401698716,-1557203781,904422550,-893130751,778346683,1050254,38258478,-1943142272,-953285561,1689126471,139430958,172476206,-1943142292,-1591342009,-1993474004,109981191,-14286840,1493173814,-1047646237,104267558,650130176,1443385,-617353868,-148450765,3078,-1157270144,-896768864,1358954425,1359369042,-342656280,1048784590,1946182814,1688255252,-1640562898,922693220,1393452188,585633424,1575324564,-1311077437,-3964660,871093007,-50383882,-360638485,12128256,-1935281280,268436952,-1064511346,-1911554043,-428520512,-489487439,-1510749557,1465261763,-402652993,-1763125126,526278617,-928593725,-928659291,505356197,522133023]},{"sector":15,"data":[522067742,1481461061,811096152,1868787273,1667592818,1329864820,1702240339,1869181810,168633454,-1957310684,162799340,-855353659,-443867359,311901,1380275029,1398362880,5064020,587215139,1162543154,1095713369,587220050,1465253941,548937486,-1994273483,-1946126818,-1207928826,567096609,8003209,8128140,-852155208,2115930401,-2147054592,891795456,512303565,109838466,1387528324,-1960435251,-1960440761,-1969025449,-1944680192,1856551680,244339470,-1951782424,1857338352,-1873605034,-1507661810,-1996463453,-1157602282,240545463,-401698733,1722000912,1746307328,1856879360,244339470,-1951794712,1857338352,-1873605034,-1510807538,-1996461405,-1157600234,240545463,-401698733,1856218592,1880525056,1857731328,244339470,-1951807000,1858321392,-1873605034,-1513953266,-1996459357,-1157598186,1393426517,242198459,1857338195,-1873605034,-1515788274,-1093971886,984416341,-1392150844,74957882,6358782,516120159,-661733325,27016900,1958616846,704366,-218101575,-1273203290,174574912,-1206618652,1741508099,125101066,1972370560,773304326,520102306,106387139,-1205924322,567096609,8003209,8128140,567095476,74580540,57803836,-1576886039,646447184,512229457,683343954,1912814592,3717899,1946221696,3521283,4988553,567104180,-1996202099,-1946138594,637553158,-2094653500,-143261889,4464265,4589196,581973428,632562125,-1782963536,857853294,-1931964736,915091145,339279914]},{"sector":16,"data":[1278805365,-1106349054,339280832,1278805365,855798786,-1899983626,-1261204520,-853364699,-1899459551,1979059160,35121411,2766473,5258880,-2143260157,167792958,-1205963406,567106822,-1994401652,-1560264650,-964493246,741771532,3056384,-1996175741,-1560266698,-964493254,1010206982,4104960,875989318,3580672,-2147448855,419451198,1387541877,-1064558131,2885319,782434530,1007077120,-1560206592,113705022,19267648,-956284253,-1912588282,3842817,3409607,916652331,-1270093056,-1960719057,-1262318389,-2094936750,1232413435,113688716,-955973551,889211910,1074185984,-1560175872,113705026,28442668,-956289373,335558662,3842816,3933895,1050870204,872859392,-1560185856,884211766,512303565,109838384,-18284494,468419328,1963931942,1463363078,-2094566398,958794435,637957391,1946310457,1346273305,259326720,33735553,1963931942,1463363078,-385649662,512295169,109838380,884211758,512303565,109838384,867434546,567083184,5258880,-2129890045,637642987,242489144,-2097097495,942015939,-385649641,512295113,109838388,-343736266,1346273282,91489024,3153604,1075743043,1107725312,807322624,96699136,5258880,-2096925693,512297195,109838396,516161598,-1946419148,-926776877,-633650432,2146108274,-1090810992,163147361,1973875456,1790855148,702830,-512383245,279043979,1346273280,276038400,1946630950,79921942,1946630950,-1874007282,637634747,57935675]},{"sector":17,"data":[-1987034645,-1946142690,-1006618106,-1593821154,958791696,-1003719417,637550622,1962950528,-853953502,-1261401567,1008848142,-2046069996,1008649410,121120256,250087797,-18179,1351621355,242121912,-69539760,-397406632,-1833370668,-397406610,-1070335028,1583286047,24612291,-72063,-2130543475,-2080375065,-372174911,-372119087,-903091759,-511649289,-494908674,-31176450,-617357682,-951253050,66375,-16693305,90147071,-1996071028,1602816127,-628220406,-950401082,66375,-16693305,140479743,-1996136568,-1994519969,-645003697,721966985,130435793,56068429,-16693305,90147071,-1995808887,1602817119,1377718286,-1912191095,139430360,-968243157,1334398215,21481219,1602813951,174033157,-1995677815,2139688543,-1981837818,-953481145,1292355144,-1996398711,2005467975,174033158,-506373543,-506338863,-1030864303,-13385677,-628184077,1491194201,1170430810,518818645,1183536982,140413706,-1962127733,283641430,512503551,-13434878,-1996071543,1170671701,-1996487420,2106137213,511543576,538068423,340117248,1569546595,-52199389,-2096210551,-511704087,-775214084,-1981165079,-1992080625,-74772387,870297576,-13390912,2028525708,1208454111,-1993949042,-1993471395,637534238,-1945746034,-402243392,638050143,-1962254967,-2090967096,-443874579,-900899553,8,704642893,0,0,0,687865677]}],[{"sector":1,"data":[]},{"sector":2,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,279886,1900626,2065,32772,0,0,0,1,4194485,4718664,5374034,96,262144,0,0,0,68683726,68682048,1398362886,5064020,17104896,16779777,1711342358,47055107,117635585,16843264,738198440,1,65536,0,1430585344,-1960907637,-1073018810,12192117,-695355392,1208008425,298666101,-388823375,194511652,-1173719616,2122514433,812908806,105265984,1912603577,178435,567089588,973495947,1343648963,246731659,431235533,-125165107,-854674342,1979398689,-768372364,1967682539,516173420,-1064566784,1912602941,-402294944,-303365300,425603,-340249995,126232064,303662,-1064386509,67536422,94514693,-852446208,212257,12071797,650153712,-115072,-400132612,569049138,303150,856131622,784371392,637535648,772080802,399045,98818444,-853208136,869413665,49120192,1562371467,313933,-852159560,512306721,-1943142394,234883078,16955935,-853208136,-58670303,-2145357310,460786940,1954595574,113651222,-83885507,520040092,-970063866]},{"sector":3,"data":[16923910,771752650,405247,65535,0,65535,0,65535,0,65535,0,65535,0,65535,0,65535,0,65535,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65535,0,771752192,36712191,1027506222,-210501630,1010729006,-344653566,1007091246,-13722622,-100519906,974556206,646524418,386794040,-83742532,-435441584,-469701856,1975519776,102651199,1448235347,787297111,36976325,1967173116,1950395657,80118559,1950937835,1947008777,113672965,76146411,1150109254,-2095251460,-655686458,1499094623,1562314587,-30475688,771898382,37361294,942050094,-2144415998,146494,900998005,567085232,807307566,109850114,632554034,236849328,38058527,773792205,37488326,-2144417023,146494,-970058892,146438,145761716,382021150,567083568,1430637343,773778571,36970181]},{"sector":4,"data":[185222795,-1190497088,-503905304,-136933959,-12614671,2139298421,427097860,-1962520949,1334380630,106400004,-1996339319,-1878463737,-351747197,-1948568612,-2083812413,-443874579,-900899553,1430585350,1461644427,876528686,105286402,-12745946,-2094658955,1979647101,-1877480684,225835067,-18180,-1412368469,116108203,147293072,-930358549,49120095,1562371467,182861,37593390,-523515765,84158086,1959016991,939852987,520587271,637863028,-2010773704,1444836359,521075799,-1912573765,33998787,-1207959552,535298991,-1206881280,401081272,-1207405568,266863553,1326019840,16009,132748,-1021354401,-2126259405,1931477243,-1946449140,637424,-294279437,-1009054781,196609,66100,300,0,0,0,279886,1441884,2177,163845,0,0,0,2,4194395,5242960,6029404,108,262144,0,0,0,56887321,56950848,50792528,50987073,1497713416,1380011842,68,196870,2622208,50385923,453181712,53609219,0,0,0,0,1167120524,518818645,1465309326,-1106870588,213385589,-204961024,1606495140,49120094,1562371467,313933,1167120524,518818645,1465309326,-1945477436,-2128705088,-2096722943,-1791065343,1198850049,162543028,512303565,109838725,381157767,-1994273483,-1946054370,-1274965242,-1173770203,567083417,-402227516]},{"sector":5,"data":[900988970,567090096,25763465,25888396,464528820,-855454278,-1794717919,1610612481,49120094,1562371467,576077,382534324,62161074,-402648901,78905378,468193715,-1291275264,1370130,280232370,199791027,-1289702400,321680,347291828,57984132,-1022261210,1167120524,518818645,1465309326,26558083,-1273072640,503951397,25499333,-1273028147,505131045,25761477,-954261043,103686,-2090967296,-443874579,-884122337,1167120524,518818645,1465309326,-1961736565,274631632,662559499,510988860,856194756,134645440,624436739,-1073082252,1460013429,244340486,-385750040,-1070399322,-1006590743,-2135618442,309101606,-2077867404,1014305132,275547174,1190606453,1962934534,1408991279,-343922061,841314887,-54555905,-32766,2126781044,638234632,-470409846,-2010724606,1975728645,134661813,-1360330493,-1157558110,-1014759428,1963407364,55020281,309657404,292324390,-1073083276,2133075577,275547174,1200299637,1820599809,-2046659568,1156982468,208929044,1916926592,1526366215,-997850505,-12786638,401081973,-10557184,-1425506620,1593835960,49120094,1562371467,969293,1085332275,384308403,-1290752000,1042577,-1867308880,-1275066136,520068097,-993853039,-165278602,12452096,1959169536,101197318,-154991593,102770384,549651479,261921709,571833501,-1431394717,-127962579,657718769,754586854,-1397774543,1101553579,-1908326079,1166054031,1229276560,1145653577,1330597797]},{"sector":6,"data":[1331665231,-1705683627,-2048827559,-2073984096,-1970826874,-1920366462,1686867105,-1818061404,1868534895,-2120834153,-946315399,-454891012,-353901088,-286267157,-909785876,-151730458,-394254,-1549607722,-513380187,-235211795,-1078285615,-1128420257,549170081,729554976,724249387,724270123,724249387,757803819,724249387,724249387,724249405,724249387,724249387,538979115,1595940896,1605787615,1600107871,1600085855,1600085855,1600085937,-1335926945,1851766711,-400512846,-1682243541,-1606636543,-684850062,178970658,-336431680,350785579,35371776,1921006764,584527364,-1073042720,351007349,-594847088,911693342,906524613,-66814012,-486539340,1606585241,147464030,0,0,0,50529027,2131232776,-16185079,168627469,454761243,538976288,168627499,-14077904,-14601935,-2143276494,-14470349,-14404556,-14338763,-1637992906,-14272713,-14010312,-14141127,21061953,37904962,54747971,71590980,88433989,105276998,122120007,138963016,155806025,172649034,189492043,206335052,223178061,240021070,256864079,273707088,290550097,307393106,324236115,341079124,357922133,374765142,391608151,408451160,425294169,442137178,-13619104,-13553311,-13487518,-13421725,-13355932,-13290139,-13224346,-13158553,-13092760,-13026967,-13750674,-13943365,-12833604,-1621152323,-12702018,-12960838,-12636225,-8494912,461069275,477912284,494755293]},{"sector":7,"data":[-14538786,-14013846,-13816467,-13948053,-1,842079231,909456435,809056311,151567293,1380276049,1230330196,-572829617,1396773133,1212630596,-1169405110,-602881826,1447254106,-1135784382,1779482558,1880367122,1953722993,2021095029,613519481,627908902,594224908,774709800,1835624551,1801872740,1617125985,-65682,167774462,184549120,0,0,0,0,0,0,857624576,-455569728,1945123936,1971365947,403109438,812976132,71908992,-1976995324,1006901030,-167414459,477430980,225727292,158615100,393557820,1963181302,388401675,-153815548,125111492,-13740001,1392608558,-1973296048,-427815712,-421493151,-2135664543,-1003298782,-434065328,-823633888,1968454656,2028210722,10676483,771754657,1023512483,-243994624,771754145,1526828451,-13740001,771853614,26754688,-385649664,-30539646,-83781626,68617974,1008432132,773289286,26674886,-388461824,61866090,-1757511634,1366622209,-617392917,-5187446,1934949248,-2020987324,-13500140,1917320064,1408991288,116798327,1948255255,386332204,225772292,-1073035382,-1976688779,-352247417,-1202499560,917733392,-2128675026,777542401,25239295,-1291841352,520039990,-970063487,104454,-816308389,1448235347,-850065833,1594318107,1532582494,117321411,-1278279273,1948924930,1006744338,-1291029450,1948072964,1007203078,168785208,-167282204,387850451,503890692,12780567,-16185337]},{"sector":8,"data":[-16382716,197121,0,0,279886,852067,2269,163845,0,65536,0,65538,4194365,5242960,5963865,114,262144,0,0,0,42862728,42860864,44501170,44695617,1431260421,17747,256,1380272902,55330126,25428737,50441219,564,1167120524,518818645,1465309326,149143603,-1705947056,65535,1734,3139584,125157387,184590568,-2129038144,1929431289,-1074754797,-661913530,-1527529330,1734,-1878922241,-310157729,535137026,-1161081507,28901948,-1850715648,-301743485,-360490320,-301929726,1022099691,158620250,-503004541,-339725340,236357969,268879360,113641472,-2080505839,-1964244286,655407584,854392626,-1963193632,-1309154592,29881861,-16116619,45158516,1963509750,-155058679,41223367,234930686,114425872,113704977,2228228,-1191112008,-1094516545,1048773279,1962934300,245607704,279096320,295873536,238977792,91553792,-1695956941,378229248,-1031602162,-293556221,839051907,-301929536,-345984950,-1031541248,-352145405,-360452608,-339725822,-1956975104,-2097148394,28312770,236358638,-322358528,378273250,-1031602162,-301223932,-1962933573,-2097148394,-919403070,1963043052,1979310596,99255173,1951218924,-478196986,-1946191895,1107299862,-1947336272,855641622,-1145008448,958792704,-2096597993,958792387,-1996196585,-956294114,671089670,31111168]},{"sector":9,"data":[-1023359559,1167120524,518818645,1465309326,-1106870588,246939648,-204961024,1606495140,49120094,1562371467,313933,1167120524,518818645,1465309326,-1996071228,-1946151906,-2097146362,4670,646602101,-722075631,568654492,568771594,248447467,-2080375832,7230,-555216524,471763966,-1900006656,126297792,-1275060573,1089589,512303565,109838360,632553498,-1174400864,567083040,568654492,1115682,113713638,-65518,248447467,1610611688,49120094,1562371467,313933,1167120524,518818645,1465309326,1048836764,1946157074,-1977490381,-167767770,-339473708,-1960712704,184556574,856323291,-1581216064,-1993998306,-1608141817,-987889648,-855631850,113712929,18,248447467,1610611688,49120094,1562371467,117581,1310979,262145,0,0,131072,131072,2,0,0,0,0,0,1381061456,508909398,-1899459578,1501400,141869067,136843,1318655,1599938311,1532582494,53080]},{"sector":10,"data":[0,0,0,0,0,0,0,0,0,0,0,0,1049296896,-141885426,-1962752381,-292507434,15456139,-1978718996,-1328116760,-678695248,-1309933333,182506244,-661940027,-793717109,-338195474,254077952,-695474038,-1947275088,-335483945,-523041615,-989136757,-695512936,-1544634317,-947191538,-729100041,-355335247,587203001,600963025,184619022,269912017,269891841,1997435905,235831303,99288065,17698432,178434,-1054620534,237228535,-1056243440,17827463,17827385,125242996,17698432,-2147095792,134286862,-434065319,-1014236384,91537675,17698432,17735937,195,0,378208256,-1460928498,-352094912,-768372614,30545545,95539338,28961490,-137288960,-737270831,-2016343295,956421142,1946276886,-2146994418,67228174,243271147,-1979579950,-771509808,178666,-772288221,30674467,377999627,372834772,242483668,243271543,-351272494,-770801659,-661977087,-523041615,-677199836,-754536191,-1058832157,30809736,30934726,605350657,-666992577,192020737,101191031,113639894,855769560,169929664,-1744709882,-694105973,-661940223,30934726,197364480,-2147126079,16896526,1342296737,551952560,-121373864,-118027518,15666179,0,0,279886,3867052,3103,163845,0,0,0,2,4194565,27328592,28049836,118]},{"sector":11,"data":[262144,0,0,0,674236668,674234432,24841087,24903745,-2147418108,7,194445312,5242897,8912640,9961472,-265289711,65281,195559424,-261095407,11140866,12189696,-265289711,65283,13303808,-265289711,65284,14417920,-265289711,65408,196673536,-261095407,15597441,-2147352576,10,197787648,5242885,16711675,198115328,5242885,17039354,198443008,5242883,17367037,198639616,5242883,17563644,198836224,5242883,17760248,199032832,5242883,17956857,199229440,5242883,18153470,199426048,5242885,18350079,199753728,5242902,18677751,201195520,5242884,20119542,-2147287040,5,20316160,-265289711,65280,201457664,5242897,21495553,22544384,-265289711,65282,23658496,-265289711,65283,24772608,-265289711,65284,21233664,2,202571776,5242885,25919489,202899456,5242887,26214731,0,1296387846,89016642,1414418246,1229195091,1095520339,89,503513357,597492486,52683011,-201120203,535626533,52430083,1946360198,550699799,51348739,-603777530,67131173,616366849,52749315,-167565737,38,0,0,1077936128,-1061126016,-100401153,-803739264,-2131225653,-100456727,-803739264,-2131225653,-100456727,-803739264,-2131223613,-100456727,-803739264,-2131223613,-875550999,-377423853]},{"sector":12,"data":[-2131098867,-875548439,-377423853,-2131098867,-1009766167,-377423845,-2131098867,-1009766167,-377423845,-2131098867,667881,2228246,3801134,5374022,1769566,2555931,5832743,5832805,84213861,117900549,202114823,202116108,117902348,84215559,-1610611451,22938240,16973904,-1610612736,0,0,0,0,16777216,15728641,41943215,65886,-65533,40,524288,34,524322,8196,2490369,3997744,157286522,41944790,1572929186,41960540,24641186,16646394,245825409,16648644,353959809,16649744,6356865,262216,0,0,1082130432,67637280,12058882,-1441739505,-855633736,251705360,272371917,1962934456,-1899459565,25672384,-854588744,63879696,-284751944,541362883,281928754,12779952,-16777216,0,-16776961,255,-16711936,65280,-16711681,65535,960379452,4143933,960379452,4143933,2670588,166264752,13156096,-1574518734,280559632,-1431984896,-492132955,-661863432,-61489010,-402432536,1458045563,9496577,-402635288,-689437860,57534465,1048626013,1962999825,285656597,-661913600,1442627726,-402443800,1357381637,-1077715709,312569184,339118848,-397388288,-142146832,-1191162952,549257221,28371200,-1962928479,-402646986,-24444565,367528116,-1610565629,-544489330,-402642754,414449677,-1962736664,2144763,-67057474,637535418]},{"sector":13,"data":[648283530,648283530,648283530,648283530,61080970,-1008147718,-1064380276,379586483,583213568,-1577054178,-1020657648,1283254644,683604106,387072,-927021174,1929591808,-1948743137,5290494,-528087669,-528033583,-1963597141,-791621628,-33257272,-1008437813,-24393590,838901946,-1967115301,183030565,-1965520157,1967827652,-1021572880,-125118218,-402642754,-947257339,-50280258,762512188,-24389494,50372793,49251321,-372123765,-528087669,-528035631,-1946819925,21334778,-1060054832,-33471096,-52988469,-1161262397,-234684256,855542606,-1967115301,182506245,-1428387133,150107466,-1077674980,379678048,406227712,1221376,1324681,1115846,5367809,79358417,-1193571328,-1064394752,-1532700530,61121700,-1532713742,-234642268,-611389214,1835057091,-1962929503,-402648010,-372178909,-2030041926,-1193571081,-1064394752,-1532700530,61121700,-1532713734,-100424540,-611389214,436612035,-772222720,737726968,-1962927050,-773402162,65458662,-2114976783,-1183973178,-1195180000,12451911,608078702,637184,1977995,1849087,1718015,243913099,780730400,-315424734,-772157095,200921593,-150438455,66651097,50981873,-2097143794,192827625,-1056708213,58708267,1502627051,310233355,-645146121,2110979,-100403197,-880019742,235080427,-377421790,108921182,2231849,915021182,-1189216222,-1047617536,-315434610,-1527526774,-184289277,-193605890,-967195873,4358,5433539]},{"sector":14,"data":[297517107,1946630144,185042953,-402164499,149487009,82363136,-17176576,4700355,1969803,-1946562239,-1946147786,-1610563622,-946937970,-1536294721,-1532713820,-1532713820,-1532694525,-1532713820,61121700,-1897340176,-315374630,1130112,-1590660096,512426006,-1019543534,-2137849475,-1020528413,2097162301,438208794,1614080,1318539,-1020540789,-654900099,540924299,-1592754688,-131858410,-1962927453,855644190,-1982466112,83893278,513998880,1745152,99152779,607553792,-778648832,-771829250,62915582,62915520,66061248,62915520,63882224,63832067,63832069,63241992,1794,-1173945672,-1192295484,-826605816,62451459,63879680,17152239,61916143,-284963142,-285211208,244002499,232981786,-66778434,-796152530,-487609042,115703,16777473,65537,65793,257,402653192,524312,4112,16,1799,458759,460544,7,117442311,0,1792,1950942976,-527767293,-955595485,-14287734,-1429992705,-661726836,570884792,63224547,-284019549,78703824,-284963142,1183570318,38176516,-1996470649,2147419206,118431551,-1065352957,-50794272,16777214,-66847231,-267388921,-1069555681,-789151617,84542770,-1020132062,-1003306446,-1022704078,-1005927926,-1021131254,-1004355038,2058012194,1840675303,-1431655766,1194936101,-661895623,-1957345904,-661774612,-402638664,1465262548,-337050765,12188679,-833713919,1183432755]},{"sector":15,"data":[239504336,1946165309,-816936855,-2046771014,-2050621719,-33262398,-772984127,1944244706,-1459244304,74711072,-1023490562,721347968,-178878251,-478029685,-338624484,-75496668,-2147257851,-779484479,-922564606,245336878,-1983655162,-208938402,255617,-875443247,-20036866,-152078902,1946275398,-373279995,-919402651,939524538,729075534,1992622517,-1036276454,-1378496267,1183428013,20819426,1023833089,-713752317,-1378496263,-1390786935,-1390655863,-974895479,1001202294,-707725886,-1985106515,1034804294,158597377,1025559936,-1451949821,-1378496263,-1390262647,-1390131575,-153205111,225710277,86295946,87295860,-847248524,-143751040,1959884344,-145850285,175555872,18906243,1149911924,-129595358,1014556112,2126786419,1569400326,1435182596,-1898935290,-964784704,-1409283911,856122506,-1965028670,-1020129468,-789134326,-1930632534,1972177990,415663072,-351635831,-13768445,185890443,-1946782474,-16051586,1330573172,620185226,-1957596150,1451958350,1946724382,-1962760161,-1948611647,1451956302,990999574,-1862172984,41866043,-268184697,82574083,-100404989,-1206099992,-826671101,212020739,113651205,-284949222,788465848,-284879709,771753400,-284880733,1242846859,-1960812917,132350459,952601344,125095806,-971487605,-1962739130,468464,763164475,1187431210,-1976696327,1996869295,-96025084,604505089,-1948646649,132350419,-1886769664,-662043178,-1959863549,-351936865,-110720971,-829453778]},{"sector":16,"data":[63046405,66716634,634620914,-478085113,-1976696825,705025711,-972787005,67238470,-1979243512,-1144485151,-472710913,1183370378,-295794179,-355341615,91613905,-919410398,1451838018,-1965192472,-1982728471,-74780594,1586090998,-772812302,32494063,1586176638,-2134144226,1946210174,-772878068,32428526,1317739126,306613014,-885325386,55052157,-1228405800,-60913409,-1946454392,-947135362,1174529015,-79235550,-150834048,-528578081,13598336,2123044212,-137917470,440795617,-2131015946,-537460108,-1964605815,1183512438,1964812302,1946396751,-128021958,108650704,1187415987,-620068616,-1007283080,-1909099456,96013406,-1730097152,-594881290,-523235861,852817560,132350172,-167639623,343147206,-167396119,1979710790,182878219,1963654784,81389827,-402552648,57876136,-2096842519,-57990972,-1930789239,-1983869232,-930288570,-919349106,-1191747958,-156543151,57938115,-156608848,510919107,-156609616,376703683,-1934968656,-1463899192,899333,109946355,-1993997032,-1007226043,-1337101280,1183558328,-1146049780,172395434,-645089109,-661735253,2005579947,-1965585493,129498182,-1196767454,-1951686610,78687170,-151296374,125059267,1451821236,-1423984686,615573386,-1573996373,-1413313621,-1411805512,1980420659,-1341426435,1183558333,850963438,2122951679,-816444712,-437714059,1927532544,10742019,16139974,-1928956219,1350042740,1947255798,-163133922,-1966437504,-461372572,-1174228985,-1192295474]},{"sector":17,"data":[-1557264379,-1947269872,-1200297007,-1951693686,-1951669178,-1193606184,-1951685494,900770755,21269418,-536168277,883734699,179872939,-155669564,1256958928,-2147261302,1678395380,-972655353,-339675578,73697846,-1983630676,1686816326,-1003312124,-1966586231,850134116,-901346876,-1422480200,-1425661256,-1413069171,917559435,103987370,21466539,-1341920341,-930305364,-919349106,443872778,-793194870,100237504,-638187662,-1274494592,-1096027192,78710170,1325311475,-1961921286,-663320585,-835989621,-661733236,-164453133,-2096214389,58007801,-788484631,-1947610647,1451940470,-813793035,1963880961,616991496,1946237955,-796215292,-797015893,-1341492734,-1967609306,-830428379,633768706,1967652867,29816333,-427790732,-1031096066,-1203214869,1551222410,-154891592,1416954566,-1196808528,1290470794,-372119087,-478029429,-155713524,-784501552,-1949380146,206278,-159377291,80147972,-1967648652,-506352680,-825105967,-1023488303,-670325781,1962934845,46593548,649070453,-773074518,786105323,99518347,-1425944960,-1401042178,-153715063,125108934,-1196808528,-1934940790,-1093103928,-1515911774,-230257755,-1993940858,2122971973,-1899983660,-396981288,1903481355,-166830454,1802837187,1946403830,-5195746,1946272758,-963987453,-527779669,11189931,1965081590,-789071845,-166335573,1979710790,10796610,-2131278090,1190528628,863273206,57928401,1957349003,987444008,125172062,-1420865864,-2092480837,175374842]}]],[[{"sector":1,"data":[-494224976,-1262056789,-963925005,-619992512,-1014299788,-1954681941,1579931230,79578072,-2096975616,57811195,994701009,-1340178730,-1031034183,-743708461,1958882272,1174349328,-154795010,-1329034269,-1047811351,-1949594709,2128493530,736004866,-663319594,-1527529077,-265554037,-12204506,-154403158,-204960797,200289188,-1961001262,1036463046,158531459,-527826388,-341056848,93765131,-1523669714,-1426061779,183522955,-1961921290,1988875342,-204592168,-1980594524,-930284715,2123028622,29882103,1538261876,281540266,1588593524,1499445418,29882027,-2014772363,2046757376,-163121640,-1339787968,1183689405,915254214,112788930,-341445888,281540114,-940176012,-1207405304,-1951676799,-156507066,141886151,-1412988488,-1411496309,-1411133256,736777867,-2080734249,-360707470,-1327330814,233548659,-1425837384,-2085951056,-1031076374,565426347,549975723,783818356,1451994016,-1413313582,1720321200,418152699,119847083,-1573996373,-1413313621,1947256822,-964577253,-431584341,-478093430,99844109,1451952501,-775803932,-1413338142,-1412988488,-1965013365,65241311,1963062144,-564753655,-489569749,-1951677909,-953423290,1929347901,-1979569143,-1411206944,-1765930517,765830405,-1330970618,2116790987,-940156950,-989629424,2126781046,307137314,-109149956,-50236415,-11198029,1532881502,23643265,-67108424,438732846,378726405,-310157729,535137026,550128989,-396457216,-768357493,-247035325,334823740,-109149990]},{"sector":2,"data":[-50105343,-81011721,-1073029237,-1057093516,1183319157,1720336881,1975844595,-211384316,-397506239,-974240119,2126781046,63879714,1854589235,-402398221,1317732428,-1305353240,117618884,85500718,-1194413329,-1557266171,-1192295152,-1557201144,-202439404,-296863324,-217903499,1317796611,307167208,300674421,-470716790,976899,-83627261,1964134143,-371510353,-443875506,-1557264208,-1192295148,-1557266427,-1175517936,132842498,653919370,-1946483322,784642753,-284878685,-321859918,-789642064,-1394248211,629810938,-1950090326,-394908681,-2147291517,-2097024642,-994443050,117618691,436651566,-1292959227,784436174,-284880733,-970817852,-972492218,-2012680122,1183513950,-129566979,-1978436224,-1006699426,-17015160,132350411,173933312,-662042830,-84785525,92940015,-72694902,-471314805,-16205816,-205288721,-263812182,158655498,-1977159686,-1430025723,-130053,-1300950450,-1880499405,-1864856322,-326412987,-1193767394,1843920954,1918326296,306613012,-775801959,98619872,-930414560,1930975208,88664323,1720312067,410437112,856587972,306613202,1383383051,-654899329,1586092851,-96040680,558730022,652889737,-1995160181,-166994874,1149974388,735087362,-661971898,-752155523,1451875123,-531199518,374704934,377346619,721831051,-1036313530,-1031077252,108969995,41861947,-739699989,475958020,-1981653367,-617357218,373656358,1183433515,-532282914,-503856381,727026470,-1991720445,-1014241210]},{"sector":3,"data":[-628362357,-1023155721,-330921656,1992672907,-666450166,-2094661632,1946162301,355318342,-2081401207,1946160252,357808675,-1947183479,1451822676,307530714,-1948887415,1451823188,341085144,869553801,-598308398,-1105832821,-771025647,197022068,-766080747,1451872819,-1169888292,1451824526,209486832,-1172081664,1451824447,240421872,-1948625271,1451823700,273976278,-1948756343,1451824212,-1982712876,1418452054,360103446,192205323,-1995083586,-768355754,-1982048631,-159255946,1988695471,544654830,-1996073845,1174664278,-974981348,1586174070,1962281758,-1995666573,-74717618,-1996204917,-785652650,159177003,-1947828599,869477327,-2114352165,-2097149977,-537458449,-771981687,-773205527,-1983839255,-633604538,1992652669,243188756,2129811199,1958743035,734069534,734759875,-1972404774,-775386391,-773271064,-511684376,1459572999,65727474,633547713,-880082937,-571745749,-1981391223,-880024482,-410912373,-276627449,-1981810936,-472777602,-472783919,1183433475,343328246,856587972,-229179429,-930420342,-388896559,-2142181167,-347011103,53537260,1510083305,1354773342,1381388360,-886366485,-376828034,-388904822,-388896559,132218960,-127517871,2122569588,-680261412,1213251635,307137360,444582155,-472363381,175555846,-1961868151,1177281606,-531199002,-371042773,1992622814,-485717216,-431060135,-1948100981,2123097206,302180576,-1174404168,-1557265458,-970062580,33888774,33929455,84976430,-1195068689]},{"sector":4,"data":[-1557264638,-974191336,1149897334,-2012797941,-1111833530,41714453,-1978829823,119801668,-1178057080,1726681875,-372222327,1149960539,142377230,1992622339,-1977584630,-523236540,-999913320,-2095722566,1946223228,121932507,-2003246896,1471793254,-1993086189,-661926330,-1023164413,-1980479997,1150012486,-1002010360,-2012593014,-591739322,41714453,-1951828991,1183384644,105155272,-1177926008,1451824010,1317753296,-775844890,-773271064,-2113948952,-771749919,-464614422,-774272183,-773074453,-2113947925,-2097149983,-638122007,725673682,570588632,-430011946,639663812,51019204,-1950091650,-215223178,-1962742141,63879898,145810314,-1977159686,-934901243,1317796778,2093550566,-1207340007,-1963983096,-1426864058,145811338,-1977159686,-934901243,-33293398,2145275647,-1972180021,1988872294,1324559348,652107403,-1003354742,807846434,1317750533,2093550566,-205223410,92939946,-970800078,50671654,-612414466,1183530987,62915534,179960,1653268363,92939976,-1037908942,1191522342,199642763,-1978762039,648737732,-1003354742,807847458,737905413,2035207806,-864156717,2145275647,242664904,-1003785019,-1004134274,2114128509,-159479306,33587945,-1964977202,-799604786,-638187338,-248904076,-522982018,1997077888,1961691665,197145114,-1409190666,-315437686,-1070406421,24442379,705212844,1272441833,931870283,-1959376053,2026441231,197145115,50623734,-760419210,149520608,-383067658,-855460749,-1360270030]},{"sector":5,"data":[-1964214781,-1781042,1988874326,-361364500,1944614459,-327775972,66354827,2122970750,-128021514,1988804659,-595688452,-351964152,-1871058010,-829765325,-1959376053,1962281783,-327810206,-28341450,-757037396,149520612,-247801354,-830075777,-836058925,145828725,-1059910933,803982890,-1393789437,1459602566,-2084272432,-1959394069,1979058999,52751339,613084278,-377437997,-2032536056,-799604796,-1059863418,-167188096,82543577,188189494,1272739318,-1964996021,-13899279,788031115,85591750,263907328,-310157729,535137026,516574557,1166681600,-1961301217,1311895118,1325378802,639532282,1998472506,1160390376,652374557,638864779,1948271930,98694671,-654114808,-463601213,-56497832,854615807,1407242724,-1960388469,-1960430783,-936692407,52655195,1183570510,-700044328,1174602879,1183400404,62927832,-1977170983,418062149,837701259,-5442994,746388046,507853350,707192951,-495837883,541407782,-466440588,-1957437231,1099638488,1233856051,97004341,1952120840,-1009187887,1491361281,-1946407191,1311895118,-766604302,-654065613,145772739,-100413766,92940015,-1429977462,650336507,1446122890,651436740,-1018751696,-832664749,840272422,-735919018,638922790,1446121866,651436741,-620555984,840010278,-735918506,1192308774,-661863589,-1957345904,-661774612,1443163267,276219223,-1979169654,210439014,-1996327797,820247158,-1341660032,63879682,134592751,84976430,436651566,-1947270651]},{"sector":6,"data":[-91550634,240028494,33965814,-242547596,-773273293,1073854477,1023231624,50754563,1451858368,276743176,175490342,638338699,-150569589,-1947204633,-645198258,-372119087,-251401775,-1064380276,132350273,-1618334208,-872546006,113405,33965814,-788787595,-154927389,-137417773,-621329959,-405679114,-405674031,66944640,-1957211275,276743379,241011494,-1962379638,9046398,545970947,-536164557,180761260,-152816956,1946224198,852295170,1975657156,477382943,-773092523,-1965782293,579485184,-536164557,180761260,1975661252,1575805442,-349604513,138840930,17188598,-789117836,850188278,1975722692,1237617171,-142128780,1131720435,66553665,-1003311886,-506338863,1190584785,292880902,-638070997,-523222711,1312553843,-350192134,-388937467,-1047790733,113651452,-402651878,1583287632,-1962742397,1297948645,-1207955766,-454295553,1167120524,518818645,1465309326,2112405555,-385649904,1992622434,-485717230,273582864,-1961994613,-386233359,1992625288,-2130595566,16975996,1183452020,-1732194291,-1324718456,105155332,-1961990409,1959071316,-1947204854,-661974970,-388896559,-268179247,516993,716147246,108956417,-1962385781,1975978947,12445955,-1960393842,-478065891,-771031025,-164729483,17127047,-1976679308,-1341823321,63879683,84714286,436651566,-1192295675,-1557265915,-1964047088,772321509,-284879709,45663410,1183510279,-2027803123,841876854,604341895,613087751,-369425272]},{"sector":7,"data":[62390433,212020736,113716741,328976,436651566,-571997179,-16205588,85238574,-1915603985,-782955906,-1349832989,-771021396,-511044235,-994442576,413347331,78704389,-321859918,919745519,-125172342,-704699254,-987577294,76071986,-789445817,146929345,-346174348,83460158,-768405899,746897459,-1169673868,736839679,-125116534,209048075,-826669904,-790525437,-768348180,746897459,55050612,-155070222,-596375359,-1014247285,-401980184,-970060852,334342,-310157729,535137026,281693533,-1427636480,-1962874140,-288274706,-947247734,75033866,305438774,142208266,-1021131726,92849202,91865139,-797261440,-25211451,1925959883,-109097724,2118993867,150832123,629862268,92850058,149783367,-791941249,1292137163,1204550015,-2080670131,-277083907,-1157691208,-268827698,1032324490,-310163461,-873955576,343534858,63879762,-661986422,-268826448,495453578,1524402939,-661864397,-1957345904,-661774612,-402604872,1465257580,-2132212877,1187445760,1992687595,71600906,-1948498295,1183385156,38046686,-1947908472,-478065892,1586036751,376882670,-989707125,2093227638,139234058,16906625,-108983948,913637635,-1962750080,1317604940,33129442,2122899408,106204136,-135506295,-1980234782,1183642238,474385396,1946161725,277797,-1326905227,112643,-1070398741,772447208,85591750,-2090967296,-443874579,-900899553,-940179428,859993216,-1949158455,-1957755780,-984743308,-661911970]},{"sector":8,"data":[192201483,1468731275,74943234,-402227317,62392788,212020736,113716741,328976,436651566,-840432635,-16205590,85238574,309773807,1183384715,38046680,-1948629367,-75299748,1955299077,-398002556,-1978567423,-1730096956,-1965529464,-523182266,-597260136,-106460626,-25513960,-163149368,-989761304,-1951590794,-930370096,-271451509,-271454255,-1947042301,132350426,-1618334208,1183514922,58673178,1358903017,2122929694,-362903310,2089485451,735785730,-1291553854,-1948715262,-1949856816,1187441782,-2033811991,730922820,-149916735,30114008,1187438327,-2033811479,-1958281404,1925856200,80445445,1988741767,1976699888,-226587895,-370516342,-930348828,2123094158,1976110076,147554333,1963246582,-142704619,940537343,1635052382,1391156872,1510054888,-1007265813,-1206225656,-1951666559,-1976652863,-2147448153,1183450308,-2118603799,-1031033914,-346146645,1585984372,-1886769429,-315490158,-1959863549,-1962906953,-1096485921,78715173,-557440,515769716,-217337575,-129594460,101041963,1166550528,-531199490,568805062,-2115469696,1720326005,132415719,-994442576,413347331,-321851643,-827194192,-226572817,-1963960693,2123033182,-162624552,1440773771,1576558335,31999734,1183523188,-599357475,-1948367224,1183308102,-632911656,31610507,1188098646,-777423897,-1980093470,526317134,-796152324,1489537965,-1912687895,-1929428290,-1983803695,1317664894,-1899393798,419413721,-218101319,-142704476,-1978305281]},{"sector":9,"data":[37545286,146673269,-217796327,-596210267,-25851610,-152150389,1954605126,-2013909399,1946223958,-549025183,1988567598,-2026754555,1183319430,-616133924,1988567598,-2026754555,1183319430,-1484116264,61867366,772001466,-284881757,771884472,-284880733,-2132261178,45663410,413347335,1891561221,1489177,-557440,2122321012,108266213,-1189516098,-1527578598,-1976687381,52808847,-1215615269,-1527568980,-1323756354,-142704635,1007252735,-1106938878,129046800,2122950131,-2037529604,-953417913,-2132246912,700337268,1423641,2532595,2552133,-1007223995,638219266,-1007925818,-213531098,-1948022193,-1976635810,-1977234289,786105281,632076171,-1527522166,-1323745602,-156962039,91488963,-112867802,1160259151,1203684350,2472217,2532595,2548037,-1007228091,638546946,1340294598,-112867802,1170613839,-1329347620,63879688,629862394,1207647624,-477490973,85238574,-87586065,-72735350,-963905054,-268826448,1032332682,-192230405,629801394,-1003305078,-1003305438,1976699562,-695481599,629861603,-1003305078,-1003306206,-336338262,-2134378771,1589983860,39291670,1334573707,443976452,-783253938,-1947807258,1239941744,243718,84714286,268879662,771753221,85591750,-415045628,788465848,-284879709,-1961984373,-930410426,145870603,2126847861,75334418,-1961659387,39160581,-847188342,-756625280,-382866434,-336987156,376882683,-2130551669,-1912600605,541428696,1996489533,81382]},{"sector":10,"data":[1837818996,-1979610590,1368000609,410094096,-1982314871,1854462550,-2130726684,1946346878,-398002651,-1978371071,1177737286,-580504868,182343218,1958873796,-1978930259,-523182266,-969738030,1183359092,-295793690,-2132261130,1190547060,1215594724,1451750958,1081344261,-1994560584,1317861446,-465138950,1988567598,-2026754555,1183319430,-1484116261,61867366,772001466,-284881757,771884472,-284880733,-2132261178,45663410,413347335,1340862213,-12403059,-1047604852,-1980203383,-913507762,146397582,496418304,-1976654605,-1960457073,786105281,632076171,347710707,496942592,673621235,-930350267,-1397257426,-1180372187,-1296170997,648344349,654132520,-1946204888,1992628806,80118550,-385646776,-1387201841,514709643,735087446,-385649197,-1958084455,-772812293,66048495,1586426494,-196702476,516993,-827356626,-1948646651,132350419,-1886769664,-355400234,-355341615,-383646347,1245890866,585522826,-1966398741,854166245,-1963881527,-896803970,1190535600,91554280,-336044289,1347835714,-1957670573,-770973098,-527820171,-1341660032,63224322,85500718,-1326657297,-271666684,-523189110,52816080,2055902720,1492159448,1509449471,1600018523,-790462973,1589539776,1273583647,-1864856321,-326412987,-1193767394,-310181887,535137026,281693533,-1864856576,-326412987,-2082959842,1465257708,-2080610679,1946226302,243172140,-1203801086,1720385537,-2090967044,-443874579,-900899553,1183645710,-11528464,1996425334]},{"sector":11,"data":[173997830,-562774005,-1980353597,1988751990,-260666892,-386498931,-2092564390,-244185602,-1070349077,-1980742007,180287046,704256,771754683,-97142,-22705618,-230258177,-24671698,-1981533441,-397151162,-1168375896,-634716158,-97788555,-232008075,1187499893,-1107295504,1988689925,-226587146,1308624360,-1393822599,1883734,1736739630,92874241,1770294062,1166616065,-9771006,2097475203,-1933353241,1430622424,-1910575989,720143320,-1946396842,-620031394,585696121,242664706,50037579,-472836225,185222795,91491398,-1851261138,-2020921821,149496727,33810690,-108852085,-2096204795,1912734332,47363,2131097987,108301816,-1006503960,-1951724930,-1047811134,30927275,-946940020,-1949008243,66814748,12256126,786105088,592553983,-1155498611,568918017,41192705,1284163891,1284133122,210391297,-1996376088,2123233374,-1898541868,-1946799162,103475409,103213146,102951002,594867723,1947598467,721322762,-24967820,51672383,132547062,-2071253504,414786001,-772199680,-1951665175,-1097205690,-151584765,-164376437,184937448,51279094,-2071253258,-276618799,-1414812920,48043,-2013222935,-581588446,41207159,1241928843,-1274127221,142376963,175424771,-617414028,-1174636919,61079560,-1946426638,-217842570,1996614784,185955051,-1310362405,1166681608,1159866104,1159866096,-236803352,-352320581,105679705,2114320771,-13768445,-402099059,-1924005648,-370607500,-729131008,-472786549]},{"sector":12,"data":[-472783919,593600397,-402647832,250085393,-771510016,-389360946,45809669,-1961104640,571891,-892285232,848873098,-1107068734,-1406262439,-492125134,1972225017,176080096,-1962932294,-903739826,543000870,-1274519925,906540292,600363692,25700058,1976434243,147293170,-378155778,-1931447155,1473810128,-768353485,146407219,-1967115456,-670887868,50873482,-133976880,1144700852,973567239,41226052,-333261578,-579483138,185071800,990147803,186873304,990147794,186349008,990147839,-2129431048,184615143,48660687,-410980854,-2131817980,643793101,-1342018168,855829249,-2090967104,-443874579,-900899553,76218386,1359107210,-617351630,-511260365,-637282301,-510994173,-86898511,-53291312,-120400176,-75376944,58458494,1497419392,1344362947,-652074719,33,0,-256,-65281,-134744065,-134744073,-541097993,-33818641,-67240194,-1075843081,-134744193,-134807305,-608338185,-1109661721,941691006,102961953,8960,-1864856576,-326412987,1473809950,-1962260853,1586170966,140380934,1860701044,108971263,-1993954308,243188757,142442534,-1979157501,-1730096954,851610521,-310157322,535137026,214584669,-1864856576,-326412987,1457032734,-2084555945,1946422910,243172102,-987859707,898304638,1997012611,-773402348,1741062630,-1899459583,108971224,-1331321348,-2090967295,-443874579,-900899553,-1909587954,-2144996066,-830342943,243859463,378077546,914948460,1049166190]},{"sector":13,"data":[113639792,-1325334167,-1577411392,512426006,635961368,1947955968,-2033634535,1359051278,23594694,1843985216,512634589,-1571281419,32178554,-68677937,-1909537793,-2077887202,1963026446,952709932,1946249486,1845902113,52133633,989865478,2080467462,1881029393,-2129953023,989863875,2080467998,-922009343,-1909537799,-970590946,92422,-1864856381,-326412987,1457032734,108971095,-1207956290,-930414588,1604645884,49120094,1562371467,313933,1167120524,518818645,1465309326,243714355,1709375866,23594694,872062080,1980139456,1912996097,-2017447167,16873478,-83790842,-52641816,-184119762,108447013,-972302196,12528244,440576,1743300083,512634588,-1577441803,1990393856,1913006337,172289,687962275,-972983290,1073833990,248447467,654310376,24774342,-2090967295,-443874579,-900899553,-1070465020,584120003,-789134396,584382147,-1009453372,-1966881654,-1009715516,851690546,-1009715516,583255074,-1009715516,-1005924106,181728963,-1009453372,180601866,-1009715516,-1010565200,631448938,628237677,629089653,630138244,629613964,630465916,630793643,631776672,33817602,67240966,67240962,33687040,1167120524,518818645,-4663154,49120255,1562371467,838221,1167120524,518818645,1465309326,-661731188,343852284,17983105,-1928432384,-1191140810,-1527578592,-337963032,-1036612341,6863104,-1527529077,-310157729,535137026,315247965,-1864856576,-326412987,1457032734]},{"sector":14,"data":[108447063,-1193601304,1583349759,-1962742397,1297948645,-1946155830,1430622424,-1910575989,-1671997736,138841082,24512043,-1962839389,506136158,512295288,-919404172,24776326,248447467,-469763096,1483616,1580681,-437731151,1947759613,1745780765,-73646079,-337955864,-401682687,-1909522437,-970590946,16873990,-73649173,-337970200,-401682687,-1909522437,-1675234018,-1593724422,512426354,104530292,-1468727274,1580603,243835509,32178554,-68677937,-2090967041,-443874579,-900899553,-661913596,-1957345904,-661774612,856053590,2047772361,-1604066559,-1073610392,2038004594,1923218076,1948158721,-821957887,-268274,-74714997,1307101491,-1992198659,-1996483018,-1677715394,-629479173,248447467,788528104,636821134,23594694,-1577411584,512426354,104530292,-1049296874,1580603,113687413,-352255622,-401682687,585891835,23594742,-1676249792,-631576325,248447467,788528104,636821134,23594694,2047264320,1594294529,49120094,1562371467,16829261,16777217,-930348800,-1070344050,-1414812757,839446403,317378815,-1226125104,-2147373053,158601466,-92273744,855798832,-773402176,-17822746,858225866,-1966175552,-1964977686,48112349,36150951,-802708857,-487730963,-1965520148,-763318068,17311464,-947661333,727433992,-149326908,104412888,276234250,201734454,906262016,-1962931037,-469763872,696630,828214,12238899,-469763712,0,0,0,131073]},{"sector":15,"data":[0,0,0,4194304,0,2097152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,20971520,175,65536,0,3,2097152,262176,-12648448,-14680065,-15728641,-16252929,-16515073,-16646145,-16711681,2130771967,1057030143,520159231,251723775,-16711681,-16711681,2131820543,2134441983,1065156607,1073545215,536805375,536805375,1073741823,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,65535]},{"sector":16,"data":[4194304,6291456,7340032,7864320,8126464,8257536,8323072,-2139160576,-1065418752,8257536,7733248,6684672,4390912,196608,-2147418112,-2147418112,-1073741824,-1073741824,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,2097167,262176,-65536,12648447,12584704,12584704,12584704,16254720,16269056,16269056,16269056,16269056,16269056,16269056,16269056,16269056,16269056,16269056,16269056,16269056,16269056,16269056,16269056,16269056,16269056,12599040,12584704,12584704,12584704,-63744,-1,-1,-1,-1,65535,-12648448,2160895,2099200,-1623455744,-1627096846,-1627111182,-1627111182,-1627111182,-939245326,-939245530,-469483482,-234602418,-117161826,-234602434,-419151714,-838582066,-1643888410,-1677442830,-1744551822,-2147205070,-2147205118,-2147205118,-2143535102,2127874,2099200,-12646400,63743,0,0,0,0,0,524291,2097160,262176,-65536,-1,65535,65343,65343,65343,65343,65343,65343,65343,65343,65343,65343,65343,65343,-193,-1,-1,-1,-1,-1,-1,-1,-1,-1]},{"sector":17,"data":[-1,-1,-1,-1,-1,-1,-1,65535,0,0,0,-31522816,102236160,102236160,102236160,102236160,102236160,102236160,102236160,-31522816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,851988,16842756,0,-1,-1,-4097,-6145,-7169,-65040,-65296,-65040,-7169,-6145,-4097,-1,-1,0,0,0,2,851988,16842756,0,-1,-1,-32769,-32770,-32772,-65288,-65296,-65288,-32772,-32770,-32769,-1,-1,0,0,0,2,1048591,16842754,0,-1,-65537,1073250300,266346480,2147254268,2147254268,-32772,-1,2,1048591,16842754,0,-1,2147287039,2147254268,2147254268,535826400,2147237880,-2,-1,2,1048592,16842754,0,-134219777,-268441601,-537407489,-1074159629,2147368956,-1,-1,-1,2,917519,16842754,0,2088501248,2088533116,2088533116,2080406528,-58721153,-58721153,64639]}],[{"sector":1,"data":[2,917517,16842754,0,-1,-1,-1,-16711936,-458760,-458760,-458760,0,2,917530,16842756,0,-1,-1,-16769344,-16769344,-16711937,-16711937,-16769344,-16769344,-16711937,-16711937,-16769344,-16769344,-1,-1,0,0,2,2752568,16842760,0,0,-16777216,-1056966529,-16777216,-1551894145,-522241,1673525631,-783361,-471926401,-1307137,-470943361,-2355457,-470550145,-12840961,-470550145,-12840961,-470943361,-2355457,-471926401,-1307137,1673525631,-783361,-1551894145,-522241,-1056966529,-16777216,0,-16777216,-1998856,-14680441,2124324839,-16254975,-1132466209,-1838728,-639502657,-15112450,-641665345,-16161538,1669396863,-16512769,1669396863,-16512769,1669396863,-16512769,1669396863,-16512769,-641665345,-16161538,-639502657,-15112450,-1132466209,-1838728,2124324839,-16254975,-1998856,-14680441,251723007,-16727809,-1347748609,-16727809,1331035647,-11221505,-1398115141,-5715337,1263889851,-11221577,-1414898533,-5715209,1280654763,-11221641,-1347789645,-5715273,1263889851,-11221577,-1398115141,-5748112,1331035647,-11221505,-1347748609,-5715201,1331035647,-16727809,251723007,-16727809,2,655390,16842756,0,-1,-8390401,-12586783,530507742]},{"sector":2,"data":[530507742,530507742,530507742,-12586783,-8390401,-1,0,0,1,2097184,262176,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50331648,50331776,1929379968,1929379996,1930297500,1930297500,1930297500,1930297500,1930297500,1930297500,1930297500,1930297500,1930297500,1930311836,-15763204,-15763204,-15763204,-15730436,-15732483,-15732481,-15736577,-16260865,-16269057,-16547585,-16580353,-16711426,-16711426,-16711428,-16711428,252,0,1310738,131074,65537,65536,16711681,-16777216,64,1077936383,-65336,-65536,255,0,0,-65536,255,0,0,0,0,0,524300,0,0,33619712,1700004098,1852403058,201354337,2304,0,0,33685504,1970225921,1919248754,150998016,0,0,0,1208091138,7760997,524303,0,0,33554432,2035482882,1835365491,0,0,0,279886,4194411,3124,229381]},{"sector":3,"data":[0,0,0,65539,4194616,5767256,6488161,407,262144,0,0,0,217055659,217055488,9178154,9240896,14484093,14548993,1431261957,17486,256,1380272902,21775694,393474,167969039,23331584,50457603,-469564668,90768133,50699011,1476592693,60752644,50672131,2063795452,77595396,17090307,4456706,1560477953,0,0,1314213715,-661913532,-1957345904,-661774612,12080982,-1706029568,65535,1342177723,-26029,-930414592,-469762376,951586315,-1202630656,-883949475,-310157729,535137026,13323613,-30490573,771769094,4406912,-1338870527,-1203509578,1122370867,1122419850,1642332395,51175562,12149222,-1174478300,-1047919053,-980794650,12141286,-1963007436,-1335761212,251538945,46792771,16973826,65560,16973871,65570,93,279886,3211362,3319,163845,0,0,0,65538,4194471,5242960,5898328,651,262144,0,0,0,175115326,175112512,16518375,16711745,1297040132,77,100663297,1414748499,17780037,50331651,906166299,5505792,50363651,-1190985573,13894400,50394627,906166548,22283009,50426371,-1341980271,1,0,0,0,1167120524,518818645,1589958798,29616134,-1962742397,1297948645,-1946155830,1430622424]},{"sector":4,"data":[-1910575989,106874072,-2096880408,-443874579,-900899553,-661913596,-1957345904,-661774612,-1005951350,1558709854,49120006,1562371467,445005,1167120524,518818645,1720375438,126674950,4000373,-1207471104,49020927,-310123470,535137026,46812509,-1864856576,-326412987,-1965519330,1183451238,39446534,-1962742397,1297948645,-1946155830,1430622424,-1910575989,140937944,-402241910,-310181356,535137026,80366941,-1864856576,-326412987,-1965519330,1726482022,49120002,1562371467,182861,1167120524,518818645,1465309326,-1005951350,266864222,-2090967290,-443874579,-900899553,-661913594,-1957345904,-661774612,-1962383734,1709704798,49120006,1562371467,313933,1167120524,518818645,1465309326,-1979160950,1223165566,-2090967289,-443874579,-900899553,-661913596,-1957345904,-661774612,-1962383734,-2115500450,49120005,1562371467,313933,1167120524,518818645,1720375438,106859272,-2096793112,-443874579,-900899553,-661913596,-1957345904,-661774612,1720342358,96462854,-310157729,535137026,46812509,-1864856576,-326412987,1457032734,107383383,1594205672,49120094,1562371467,182861,1167120524,518818645,1465309326,-402233718,1583285790,-1962742397,1297948645,714,1442840576,663365207,1929682664,-18426,503373033,-820081618,511478529,-1895825480,958680,-644953805,-1575023225,-155713284,-1981946881,-940106676,896794632,-1207811864,1048576030,1962672380,702467,-402588253]},{"sector":5,"data":[460456870,-494857078,62390275,-1204826878,801964545,1552664883,-644997602,-350285943,-13433223,817874830,144882176,-2146692936,158598141,-1174393665,146278556,1212451083,169993466,15419460,653992422,2089369028,1279560778,-997581305,632561422,-1960894003,1119892433,63078638,116261099,2089617182,440626,-2012763149,1149846084,28305442,-397408396,-346554071,568654358,-163027830,-423353644,1153891105,-1070399426,1595557001,-396967074,443679667,484968825,1975520000,-166860013,1967144516,-85947893,-83658264,-1017200589,1581252792,-396929341,863110027,-315488391,-352128536,-303542230,712333312,993021067,511588428,-1960018748,-2010760100,-650427647,-617414030,-12821367,1055406148,1606431491,1283507038,1149960475,1458891546,-389467305,1416758083,-2142221704,-1988083124,1284053580,78178354,-482849653,65583158,1342563003,-6663410,-1962934017,400767052,-788084946,956311553,-277530548,-784432338,-209911807,201326265,1359508672,-26032,1482227712,-400796533,-1047855099,180575839,-400918044,275907122,-494857078,45613059,-1204826878,801964548,-350464885,-1070382543,79855854,619446507,1969241184,-1070445831,82477294,169993466,15419460,519774694,-985054070,632572500,-1960894003,1552620628,-1070391778,394909838,861389599,768511,1149957682,1178870341,1950762034,1004571214,124913276,57926864,998297216,158468732,-321852208,-830471309,142359360,-321910926]},{"sector":6,"data":[-830471309,1979058720,-63012837,74775552,233553634,-919382189,-1274812230,1595264390,-1444198565,-963976142,169493512,1455644608,663365207,-1207819544,124977151,-1343747463,197145344,-1017225280,-486481688,16574710,1418457458,-1070382564,9758958,-1545019765,-1983609344,-471316924,1111642112,-1997635572,-947175324,-2012453856,-1360511164,65699840,-1964064374,15418053,1480737518,1149911790,-796777460,350802112,887130624,1149955595,-792670195,616616128,584381955,1128564932,-804502390,-2010110752,1149977668,306457386,-2145368951,-919403286,-487849749,113410299,-336854805,1149824000,99254341,-285602384,-352009600,-360649728,-335484155,-11408901,-1946252458,-661911821,-1178563041,-1527578599,-1017194354,-919355341,-167770136,-2035276592,958810592,41223759,958824460,41224271,958795788,41224783,1388519436,21990182,-108806093,-2129759694,1934295545,113160,-138280776,-1194816527,-1017446412,55020326,1996815488,-14762162,74834954,67434369,980879420,913442092,41214978,-456078082,-456071984,67945482,90671654,595125258,-327152780,2030597122,1963173914,1392190486,55544358,-754909254,1525058274,-172440584,-1195116033,-1007026181,-852492104,1963146273,-1207912433,-1073074227,-1007221132,24379588,-13712391,-889073394,1049304663,1418395901,-1898237156,-1965258021,-1981558555,-1962669929,183161299,-1859553820,399311540,1965606134,281343521,-469099404,1968117112,143116267]},{"sector":7,"data":[520093700,1723521,1112309761,-1849467096,-2016995379,1032,1113882655,956310999,-535630640,1946743936,459540493,35996918,1283458164,-1017183707,1077824640,-1958648696,-1031791532,539290629,-360706444,44624900,34342517,-301929490,-2097381181,-591519113,-2146601984,192348668,1946177214,48643,-1094458358,-58720100,-1091210112,-260636484,-109051720,-396929341,460521423,102635896,2089617183,-1175221466,-1070399482,-1510737156,-1510799695,1595868923,861324126,-5642030,175293067,1552484472,574917924,-1017193844,-6952874,242352308,-1946547080,-738778556,1552537635,-1017185502,-8525738,-1047772302,947178251,-768358093,-1047796726,1149903736,1145315909,-1320926158,-1964453372,-461356444,-1966863848,-461357468,-1950086560,1418408524,126363192,21989670,56068390,1149747251,-1178378726,65797952,1455358137,1929325288,-99190757,138570784,1418412620,63078428,180691692,-301929535,440699899,-396967074,527630087,-75495559,-350915321,475302664,1929902976,67056139,-13698341,-83389033,1578779787,-1526229821,-1324897785,-989349113,-653799673,1112309767,1686160136,-1360398526,79855870,-352187156,-2134643200,619447490,-301929475,79855811,-352252692,-2134643200,619447490,-301929474,28703683,-1006761496,-388877482,-1031012717,-963967886,-1017193844,-2065148074,2020963070,1111815793,-1959496686,1144730180,-1960020208,1686772820,1284176451,1961101890,79855628,-339473684,-511644160]},{"sector":8,"data":[281147133,-914355852,-270434300,-1996607256,872104524,440667072,1141584501,-1004768206,1552623228,25830964,710687555,-617414030,-13345655,-469028276,-154968481,1963002948,356813321,540951798,-1070338955,1583335731,-396929341,561184259,112794744,847023360,41287434,519895299,-88067577,184265459,-402426625,1150025562,-1017225446,5160534,-1101658901,773718016,30350990,1381061456,1418397271,46301212,-329645589,175440296,-125049806,-1510003118,1149962462,574890276,1499094791,-434065317,525925152,171495262,149555654,1283459302,-1031765982,-527766525,-360646518,-990450683,-2147191792,574628428,1678262116,1945096218,575438914,843877121,2099924027,1044706866,-164858592,192152263,67978486,1149896052,574810900,108347460,135087350,1156978037,309657868,1964327994,1045200909,-2147161312,-385803700,1157037932,427032845,1963934778,1112309766,988605192,158666308,-146643840,-335743768,373570270,1283458165,1156973090,-814383038,-1960411964,-2010761636,1547387649,855798314,912034267,843876673,1914719291,1112312362,1964229110,1130662434,208987146,-335232384,-1004350218,-301807232,34424054,-914356620,-56629247,-381531000,-1031733516,547941379,-360685452,1113885189,1969276150,96794201,-990504076,-2146733055,-863961372,256150032,-461371669,239373035,-347970424,2143614513,1156985973,158613566,-1086430080,-348044150,944540445,2093227235,979143468,1124174374,1915771963]},{"sector":9,"data":[-1982123262,-1991689636,-370263988,1283522188,-331217886,-219415260,-335232384,-1975171960,-773813528,-790048280,-754732564,20456936,-1977465847,-1073068988,-400419980,108324922,541215872,1686112235,-219619518,-28644869,16973826,66391,16973826,66430,3,0,0,0,0,0,0,0,0,0,0,67108864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1026,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67633152,0,0,0,0,0,0,0,67764224,0,0,0,0,0,0,0,67895296,0,279886,131209,3520,32772,0,0,0,0,4194353,8388672,8978569,662,262144,0,0,0,-2147024892,1,218103808,5242896,43647032,-2146959360,2,219152384,6291632,44728348,56229888,-265289529,32798,0,1313818119,1380533332,1313818117,21332]},{"sector":10,"data":[1835010,184353024,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775174201,1819033888,1734963744,544437352,1702061426,1684371058,46,0,4718623,655456,131072,-1879048192,524289,134217740,536872960,-536846081,0,718336,0,2035482624,1835365491,7680,812801,694364160,1886339872,1734963833,1109423208,1953723497,1835099506,1668172064,959520814,539898936,543976513,1751607666,1914729332,1919251301,778331510,0,520093696,1090525952,2560,0,26214400,201328895,536576,-33488888,16654111,0,3166,0,1919243264,1634625901,108,0,184353024,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775174201,1819033888,1734963744,544437352,1702061426,1684371058,46,0,4718623,655456,131072,-1879048192,524289,134217740,536872960,-536846081,0,718336,0,30208,469762048,806888556,806099000,0,203294208,2117090364,1010597388,0,410795008,2121809020,1013333118,1667261958,1014774883,1719549052,1717986150,1012939902,3670032,393312,408944670,7888908,0,0,0,1880624640,115,0,0,0,0,0,0,0,0,1711291392,2120629784]},{"sector":11,"data":[60,3964542,1866872,402653247,1080033340,242221280,1013332796,242236447,242247228,997746236,993791600,1879244902,241581070,242235488,476461884,242221056,477128252,1986817080,993791600,1879048294,241581070,469788256,1763189868,404232300,0,473105920,1613784678,1717962264,393216,1015178848,1617716838,409364064,1667261958,1717986915,1712875110,1717986150,207630342,1572920,393312,6291504,1597440,0,3145728,0,404232192,2122219227,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,32382,1724081688,-1016699368,6,6684867,1579020,2013266046,-1059061658,404226096,1711304294,404252220,404252262,1852571750,1852184600,406748672,402679320,404253792,912682598,404226048,806905446,-600282004,1852184600,402685542,409363992,469788256,1799234668,404232300,0,2083982336,1613760102,1717962288,786432,1719797296,1617323622,409364064,2002807814,1717986931,1712875110,1717986150,204484620,786540,393312,6291504,1597440,0,3145728,0,404232192,2122219214,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,939556478,1717985304,-2130681832,6,409337985,3160076,402653438,-1067450266,404232288,1712848896,2122212972,1010565120,6700032,1010580540,1717993020,1717960806,27772,905969664]},{"sector":12,"data":[0,7077888,0,228864,0,469762144,912293484,204478572,6198,204934144,1614153222,1719012400,2115509276,1721632280,1617322086,409362528,1801481222,1717986939,1712873574,1714709350,204484620,1006633158,1010711676,2021408304,2115528252,1048329340,1719549542,1717986150,404232318,2122219008,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,939556478,1715232828,-1660930024,62,409338041,1711279128,402653438,-1067450266,1010571312,1010580540,1616928876,404258430,1667635260,1717986918,1717993062,1717986918,1010592870,2084322364,1010580734,2021145660,2081192056,1010580540,1715371580,1717986918,134243964,207627264,204472376,6172,204937216,2083920902,1715211388,3152924,1723206668,2087084156,410935392,1801484294,1717986927,1712863334,1712876390,202911768,100663296,1717986918,409364094,1796761100,1717986918,1714446446,1717988198,202911750,2122219008,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,32382,1013342310,-1325372392,13158,2117861541,1711279152,402660606,-563622810,1717960759,1717986918,1616928879,404250720,1945507864,1717986918,1718517350,1717986918,101084262,101058054,1717986843,404252262,1715345432,1717986918,1717993062,1717986918,134243942,406594560,204472431,2113961599,205199360,107349516,1044125798,6291456,1723209734,1617322086,409366140]},{"sector":13,"data":[1801481318,1719428711,1712856188,1008233318,202911768,100663296,1717985382,409364016,1796762636,1717986918,1714446448,1715235686,102260748,2122219008,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,32382,2120678496,-1325373952,2122212966,402653349,1711306876,402660478,-1016109466,1717960943,1717986918,2088525948,404250720,2070288408,1717986918,1719565926,1013343846,101082726,101058054,1717985307,404252262,1717966872,1717986918,1718517350,1717986918,26214,906395136,204472422,6172,205205504,107349528,208541798,2117074944,2125856780,1617322086,409364064,1801481318,1717593699,1712850540,405564262,202125360,1040187392,2120638566,409364016,1796765708,1717986918,1714437216,1712876390,202911768,2122219008,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,268467838,409362528,-1325373928,445502,402653369,1711276032,62,52114236,1717966875,1717986918,1616928876,404257916,1868961816,1717986918,1719041638,409364070,1044276838,1044266558,2122211455,404258430,1717966872,1717986918,1719041638,1717986918,26214,1829118976,204472422,6198,205205504,108987952,208023654,1572864,1721630744,1617323622,409364064,1667262054,1717593699,1712875110,409351782,202125360,1711276032,1617322086,409364016,1796762636,1717986918,1714423392,1715235686,404232240,2122219008,2122219134,2122219134]},{"sector":14,"data":[2122219134,2122219134,2122219134,2122219134,2122219134,268467838,2117886054,-1325386216,445440,169,1711276032,6,104018688,2122199059,2122219134,1616930412,404250720,1734744088,1717986918,1717993062,409364070,1717986940,1717986918,1616928984,404250720,1717966872,1717986918,1717993062,1717986918,469788262,1299981312,404226150,1835008,204693532,1711695456,409350246,793628,1719670832,1617716838,409364064,1667262054,1717593699,1712875110,409351740,201732192,1711276032,1617323622,409353776,1796761100,1717986918,1714423392,1013331516,404232288,2122219008,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,939556478,409387068,-1660937192,419328,2113929381,1711276032,1572870,205481472,1717985311,1717986918,1616930412,404250720,1668028440,1717986918,1717993062,409364070,1717986912,1717986918,1616930520,404250720,1717966872,1717986918,1717993062,1013343846,469777510,102245376,404226107,786432,203317276,1007041662,943468604,396316,1719670880,2121809020,1013333600,1669228092,1012939875,1008221286,409351704,201732222,1040187392,1044266108,2120615472,1669228044,1048329318,1042185312,208025112,404232318,2122219008,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,939556478,415497752,-2130704872,13182,129,2063597568,1835014,520342654,1717985283,1717986918,2122202223]},{"sector":15,"data":[1010597502,1668824124,1010580540,1014791740,406600764,1044278368,1044266558,1044266223,2122202686,1715240574,1010580540,1048346172,205405758,3196,1572864,806092800,786432,0,0,0,3072,8126464,0,0,0,201326592,0,0,1006648320,0,0,1536,12,106954752,0,402653184,1880624640,2122219008,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,2122219134,939556478,24,-1023384040,0,195,1610612736,393222,0,26112,0,6144,0,0,0,12615168,0,0,0,6144,0,0,0,12615168,402653184,6240,0,0,1572864,0,0,0,6144,0,0,0,0,100663296,0,0,0,65280,0,31744,120,106954752,0,-268435456,0,0,0,0,0,0,0,0,0,939524096,0,2113960960,0,126,-1073741824,3932166,0,15360,0,30720,0,0,0,0,0,0,0,30720,0,0,0,0,-268435456,2035544160,1835365491]},{"sector":16,"data":[279886,89260361,5606,2064389,10000,131072,0,65567,4196939,20447544,21037375,1057,262270,0,0,0,1079774762,1079836992,31396421,80146800,142676588,82702704,49156861,92205424,341381934,95416688,170464390,117961072,112334131,129298800,113969198,114028848,107350176,107475248,12257549,12382512,176359706,176484656,150473160,150597936,400427612,400552240,181799920,181924144,45354151,45478192,201592023,201716016,205917601,206041392,448138864,448262448,341512232,341635376,40833400,40956208,43258273,43381040,220860877,220918064,67637925,67760432,26219241,26275888,216535810,216592688,102110175,102232368,69211209,69333296,336139406,336261424,21239254,21360944,60167659,60289328,58987949,66453841,1229211395,16777216,1258684416,1162760773,50399052,704712348,828638001,19993857,469840177,824377649,-855376127,2367,-16580351,67043598,-1358348339,50399232,1442918975,847250189,17653249,-335465994,838729997,17686785,1070400511,50832150,812909313,17845505,-16379834,255839491,-855440803,22417215,205507843,-855440184,33820479,272616707,-855441139,28380991,-1140653822,85852962,-855376127,22484287,1778581764,613810985,52627459,-16571582,255839491,-855441408,135337535,121621763,16842785,67486979]},{"sector":17,"data":[1070400511,50331659,-1559543859,1070400258,50376715,1527463885,50399744,-1241313390,798753554,54168579,2097351545,146866954,51110913,1375797248,67043840,671693,1070400256,50351882,169083649,50980611,67984,-1274871549,143917833,17330691,1070400511,100694794,1014956801,53022979,-838792851,115868466,34738691,1070400511,50406147,-771276851,50399749,1073818459,798425360,19930627,1610821680,810025233,53492737,755052391,67043888,285687757,1070400261,84019221,807862529,19932161,1359163443,808059183,-855376127,8259903,553844994,646382384,-855376126,831,71290115,17170432,19940609,1107374137,808845616,17841409,-16698669,356502787,17170432,53030659,704850401,713032490,17825539,667546,-956104446,5767948,-855376127,44828223,-1375534845,779420454,86938115,1070400511,50422541,868301,1070400256,51641101,-905101363,1070400276,67186701,763495169,50748419,198293,67043863,772227021,1070400260,17023239,382337793,-855376126,142085183,104844547,17696405,53496323,1677931222,234160909,53532163,67309652,344916274,51678209,-603777903,463536959,53493505,-16704563,222285059,16979563,18293763,1560477782,67043598,-1945681971,16843267,-385676313,67044363,1845706701,1070400263,51837197,1745698765,1070400279,34225419,212009729,17594627,1070400511,604428566,33489408]}],[{"sector":1,"data":[-1575469107,1070399744,50375704,33490944,-1072152627,1070399744,16827928,-1239924787,1070399744,16822552,-1156038707,1070399744,16819992,-887603251,1070400256,100716056,67043584,1589197,100665600,1070400511,50331671,1914126285,1070400256,50368791,-1911078963,1070400258,50458903,1897349069,150995970,1070400511,50340889,-1474740275,1070400259,50689049,1209614285,1070400264,50925849,-115785779,1070400266,50442777,-149340211,1070400262,17545241,67043584,1654733,66048,-167766380,16712469,1226391501,1070399498,51725,-1979301939,66818,302003036,375521306,3642368,-16706065,104844544,16843347,102643456,1070399743,489742,-1072807987,1070399496,630030,51724237,1070399488,468494,-854704179,65798,-16704132,239062272,16845050,35790848,1070399743,35854,1225342925,65793,-16505295,473943296,-855638016,90643519,54512896,-855637871,14287679,-1040187132,924319787,3344384,-16697672,88067328,16845080,51784960,1070399743,70152,-788119603,1070399497,16777224,487194625,-855572733,160106047,322948352,-855637464,66459199,1811939585,16711976,344013,66048,402665648,16711998,621101005,66306,-1006620971,366542894,-855572732,206900543,222285056,-855635564,7743,507497728,16843591,104620800,1070399743,78878,-451788851,1070399491,17,-988790835,1070399488]},{"sector":2,"data":[16,1745895373,66825,-1610606736,401801239,1560576,-16705713,272616704,16842832,20801280,1070399743,33554452,1061027841,272534016,1070399743,749584,1276133325,1070399496,21519,1309097933,1070399494,83483,421150669,1070399492,26,1796882381,1070399492,27,-484818995,1070399490,227610,-652525619,1070399489,136219,-1340522547,1070399498,56861,-1239597107,100663296,1364197868,1167120524,518818645,-1957242738,-167049610,915080309,881525000,1418444851,441223948,100826243,2088968316,444532738,529259147,19286007,-1290832896,1347440641,1347440720,-401698736,-2090991598,-443874579,-900899553,-617480190,-2135751957,1167120524,518818645,1381226638,-1460895407,-11053568,1996428406,72476690,-637303,1996427382,71690254,-1191950711,1996423169,175570700,-401698736,1183395395,1958743026,302398220,-2146863872,1946221694,-196703457,-1913895287,-796075394,163168398,-205507840,10533035,-1996205336,58055238,-2147212567,1963064446,61335566,1988826740,-92369928,-393211413,149094729,-386380151,57999846,-1962677527,-13333545,1149972548,-297367244,-661899893,-1946369906,-812918146,1149975947,272992626,-1981921653,-2097116027,112722631,1586146048,31687164,1950649088,-1951677693,1406532,-1014256896,61571084,1782644699,-1410972021,-2085895541,346098375,1183558400,1183558648,-947672100,899102,-1425887061,1210369923,-947672149]},{"sector":3,"data":[-2085901564,-1414855481,-2002015317,1183517253,-947672080,-163149034,-196703317,-230257749,-397505621,-1705965853,65535,1457157771,-85455216,1958742802,-18343,1442906042,244338770,185398760,1447524562,244338768,185421032,1446738130,1455871,-169341296,1958742800,-1589867731,1166606372,244340242,186138600,-1592036160,1178271760,3187182,849412980,373655808,-401698730,-1073010220,-1125642891,244340226,855961064,-2145653824,-1954609051,283371086,-401698730,-1073020144,478929012,134367174,1583335051,-1962742397,1297948645,-1962929974,1049359942,-812973814,1032522723,-1959508677,-227198851,3848387,-1996304664,930406470,-401441084,-1048374401,-18776059,-517210997,1444344971,309788422,16777114,17611008,1360942614,16777114,-1705634304,65535,540927883,855864064,1183433673,-528577558,-617351629,1406284614,1391097599,-26026,-1940193280,-54423847,-654111349,-1834222713,737904555,821789657,-654058891,-947651701,-163149052,-364475477,-531723349,109560203,-1012203254,1183576459,-229733388,2106277003,1962871602,-1977775306,-1024041897,-164858623,208929986,1963115254,25421828,-1010224189,1195056523,990737774,141914191,39602166,-370415756,191397771,-1192921601,-119013256,-498693887,-1830222987,-1948742912,3711263,-1586215031,1200160826,939950966,377684480,-1962934214,1577780830,-1960676088,-1072960442,244325236,1965782504,41913108,-26025,1451819008,105285896]},{"sector":4,"data":[2122908643,317319400,-18710901,92996421,28957324,14608384,-402436610,1747784453,-1959758592,504269597,269912834,-162120960,243993461,1451950626,135694810,-11513599,-6677897,-1996488449,495707206,192038793,-1961200192,316926542,17440395,1200299915,17474360,-26031,-1070399488,11004099,495706484,36063223,-2144177152,1954610302,-1705617620,65535,915261747,-1098055407,508624720,1461080406,16777114,-1705568768,65535,1592149641,1958742879,-14840922,1452962423,-486539261,-389467371,-1957691336,1920466717,100506,-1072998400,-2132277899,-1954485504,-1898410793,478936256,1032570763,-1993193593,-947689403,-196703378,-230257749,200969131,1854587894,-2132442884,1347558539,276234065,-15829249,1996426358,142016266,-16353537,-1195175841,-919404287,1178128947,-1978501892,1737100871,-58818548,-1962511232,1468729423,-263812854,1398004531,244339281,-1992827672,-1072964026,333973108,-599357171,-431060029,1996426979,-25882,-1706033152,65535,1343117507,16777194,1343117312,16777194,-629764864,-402651713,1317732386,1359406052,16777114,-159973632,-8472,-655821706,-227082241,872403688,-48567872,195901180,1342600384,16777114,-243970304,674693059,-6664190,184549631,-661863488,-1957345904,-661774612,1443294339,106859351,2139103115,125569026,-605548912,855645745,108432320,1886713355,118895755,-125923844,-1951683669,-1073017276,1676150900,-129595124]},{"sector":5,"data":[1149979508,207153180,1962559113,10532928,277538896,201082505,-1959627584,507350008,-561251321,-218083143,-1962440283,1200224326,-96040178,-1994635383,-1962898801,-16742209,-16742265,244319862,-351345432,-126448375,-402652225,-947126454,-310157729,535137026,46812509,-1864856576,-326412987,1457032734,140413783,2139103115,125569026,937954960,855713585,142511040,1668611851,1317748107,2110327558,-2004024570,-2091615232,-938278407,8949049,-950976130,16812677,142016256,2011696784,242614030,-1961069057,881546805,1186531102,-1510736896,62911627,-19863552,-1962490749,1015744630,268977654,-397014924,1702890192,-1957040376,989890693,1605466049,49120094,1562371467,313933,1167120524,518818645,1465309326,184972939,-1961265930,-1937274084,-386364672,208931654,881580171,1065951115,9208969,-310157729,535137026,46812509,-1864856576,-326412987,1457032734,108432215,578090507,-1131727733,495648908,-1946157128,-1995185393,1459653772,330138,1304576,-402229505,1583286856,-1962742397,1297948645,-1962933558,186616798,-1962380069,139427871,-1007490288,1167120524,518818645,-326903666,861361692,108432320,309655051,1183399051,38636520,1946614147,150569761,971572084,175505153,309914,1958742784,-1063628559,-1962934268,38127420,-1070399482,-1947777400,1347815030,-1998057840,244340478,-1962062616,209488692,1166753163,-498693772,-1988737653,1552606278,31686920,-1948581120]},{"sector":6,"data":[2018142801,1783728387,184742784,108292689,-352261912,1552650293,678756138,-14256897,-689435553,-414285824,206867328,-1926603637,389624415,529205620,1603084171,-1946948760,394881109,-1988999797,2089543750,-12743910,645214285,-1707706881,966,1088900736,-1962865989,1060706940,529205620,1603084171,-1946948808,947751741,-1258340471,-1258356586,-1258356584,-57999206,-33137013,-11336881,1962872436,-1934295268,-414779904,-16550784,1190530164,57950439,-1961200385,-30713868,-337055791,1317756156,1361634280,320922,-495547648,1474592395,888399958,-6662569,1174405375,1459672963,887351382,798643799,-402653176,-2065105785,-58595076,1583284656,-1962742397,1297948645,-1962933558,478873206,9078727,-1873412095,203483150,-1962720002,-661863628,-1957345904,-661774612,29251414,704256,1594079464,49120094,1562371467,313933,1167120524,518818645,1996478606,108461832,-11485133,1996425846,381979404,-401698736,-310116420,535137026,147475805,-1864856576,-326412987,-2082959842,1465256684,-1090518338,1726480398,-1962380285,142443327,1594717187,49120094,1562371467,313933,-1946663287,2122911357,197145588,-1947962113,138775357,1358710409,267162,-1909726464,653298626,-922022773,537204853,1149838848,1150035466,-1873410548,22145038,41205771,1996428523,69573372,1996423168,113089272,-1070399488,-259285525,2106277003,1050300424,-16777207,916126838,-1962934263,-661915578]},{"sector":7,"data":[2139692939,-193033458,-350978167,-1864856361,-326412987,-1193767394,-617414656,-1962389877,1374160470,49120000,1562371467,313933,1167120524,518818645,45668494,173968128,-1962389877,770180694,49120000,1562371467,445005,1167120524,518818645,62445710,106859264,-768358093,-2097148952,-443874579,-900899553,1364393986,-997502894,244338710,-2080448792,-1933375292,1430622424,-1910575989,-1000909096,-947714434,198305810,-1961705085,245497,1593981160,49120094,1562371467,313933,1167120524,518818645,1465309326,108971260,1091282664,738124160,519867361,-1945733435,-205484336,1720328100,205949450,241601104,1343243914,-1978505590,-1974463418,1183454822,1996443672,477560602,-14780673,1996431478,381979426,-401698736,-410255495,-310157729,535137026,516574557,-1864856576,-326412987,-2082959842,1465254636,637959876,184698251,642479296,-486257269,93005381,997572619,105220902,863306152,795927031,872171145,1300899529,-1948125432,2098680,1962988163,572427034,337000706,-1962642432,1392647710,-1550167982,184549379,-385256000,346095763,-1870927104,-1705971573,2313,-1910604317,-1948873790,-973567025,-1510209930,-1515870811,-1409530229,-1070355541,-1414812757,-1414812757,-1378317395,-670305397,-661780876,-1510741551,1458735903,612250,1226752,181069904,-611567133,-661929074,-1070383221,309419,3711403,3842475,939951019,377684224,-1962934214,-1070355514,-1414812757]},{"sector":8,"data":[1583334283,-1962742397,1297948645,1442841802,531866,-339725568,-1864856343,-326412987,-2082959842,-1940451604,-1916760368,872214654,1183558592,-1411871984,-1425127797,839536266,-138179603,984545,-788475261,-774319638,-774319638,-785811990,-1409407784,-1978906998,1183558625,1183558406,2123213576,-1873340688,-22419442,49120095,1562371467,838221,-252985293,-1313093325,-1864856575,-326412987,1373146654,-1715457194,185228939,-1959496485,2135394847,863917962,142016502,1376155391,-1873390000,-10360818,393539595,-470004085,-14906606,1381107831,36321023,16777114,1590070016,-1962742397,1297948645,-1962932534,147031007,162981971,-661967645,1066127243,-1030825332,-1409499085,-1582578037,-1582628808,-2085945286,16791558,3806851,108446976,-628185869,-1072970869,-1864856381,-326412987,-1948742114,-620033442,529206900,-1962391925,1200031318,274171662,-1962742397,1297948645,-1946155318,1430622424,-1910575989,106859480,141875979,1200299915,274172686,-1962742397,1297948645,-1946156342,1430622424,-1910575989,149717976,176065367,1853161227,1586183563,-2017228024,-1996452195,-1020527522,-1946663287,-745863586,9477511,737828489,-162100781,1032521451,268979584,50876043,1300852813,105810792,-1988997885,468216397,-129594588,-1946790261,1959398344,239962895,141871371,1343124991,249817170,-16040565,1996473461,63891466,-1946401141,-2090861994,-443874579,-900899553,213450758,6601474,247006955]},{"sector":9,"data":[7125762,1167120524,518818645,1448335502,173968215,2139103115,125569026,244367755,858365672,-1950338094,-16053634,1032537716,-485994869,108432191,947189259,-1946394997,38898433,108297603,159984254,-1962774135,529207901,-485863541,-2145341182,1292386505,1954382600,1342862599,175570770,1512052968,595060824,-310157729,535137026,113921373,7125760,-1174138183,166399326,-1191156549,1455031296,-1864856563,-326412987,1406701086,-1957210542,529206878,134381440,-1047853188,216534672,242649897,880080395,-1959490730,9174110,1342337163,-15960321,244320886,-1960882200,1996443896,108461832,1105727120,-1085253857,2089222150,1459555842,41716218,-310157729,535137026,181030237,-1864856576,-326412987,-2082959842,861275372,-2147435840,185235083,-1961265930,-95515340,-14001013,1962879092,142016294,369522431,73400145,49120094,1562371467,445005,1167120524,518818645,-326903666,-1957210618,529205854,134381440,244320124,19422696,4242178,12238899,175541120,645199371,2089497739,1962871572,-1958900969,-108853171,1074623746,-1992274805,1284241486,-95516350,-386120055,1583284304,-1962742397,1297948645,-1946155318,1430622424,-1910575989,116163544,1586190166,-2145416438,2080899711,-401698809,34154490,12238899,172919680,1153108963,-1983892736,233372742,-2090967296,-443874579,-900899553,1988820998,-399209718,-24443129,1552677635,678756138,-14256897,1996425334,-11067898]},{"sector":10,"data":[2122515551,510918908,1312361867,-1962379784,1312358989,1343190266,175570770,-1877707521,53667854,-544516006,-2028714105,-219670953,-661863674,-1957345904,-661774612,1586190166,-2145416440,2080899711,-401698809,19736426,1988870195,1962281736,-1959490759,-1073017276,1183519093,1958742790,32827433,1149838452,1342958350,-402229505,-1073009725,1962873972,-1900740850,-1867186432,204466176,-402098433,1583284512,-1962742397,1297948645,-1946155830,1430622424,-1910575989,-1957210408,881526902,9215115,1032535947,108461907,-1960083736,-1962898276,-398489313,1996486317,14870536,-310157729,535137026,80366941,-1157517056,-1934293839,28380907,-352053574,-1174097659,246744085,1167120524,518818645,1364318350,1996445526,142016262,-16091393,-41939850,-1958120308,529206878,134381440,-1031075972,-1662513520,-1950338266,-167047562,881555316,-1962933575,856102652,584509659,1141620787,-1961265906,529206364,2013220944,175636232,-890761584,1958742827,239372617,1461124235,187370216,-1959037760,-60912648,-544810190,-1961986421,-1979675852,-315426226,1364676688,-1477964144,1958742825,242679567,-2147474456,1972173950,-169875453,-1705512821,2383,-997996917,-2090967288,-443874579,-900899553,-1957363702,-1957210388,881525878,-31687541,-1070398643,1947091979,112915,1344042239,9221375,-401698735,183183698,-14912257,-402617164,1174284887,-1994552573,-1073009572,1962870388,5105692,-443851169,180829]},{"sector":11,"data":[1167120524,518818645,1465309326,1988870195,1962281738,1446284067,-2094238581,2126777542,-1515848698,-276585051,-617390584,-402652487,1962877676,911388,-310157729,535137026,113921373,-326413056,-1962647925,243743,503873411,1200292991,-443858934,180829,-1947169962,142081820,-486263832,1448103943,1479133928,-1010824354,1167120524,518818645,1183570062,-2562042,-1962742397,1297948645,1426064074,-1957237621,881525878,1593104616,-1034033781,311820290,312152710,312611406,-661908817,-1957345904,-661774612,1586190166,197145350,-1961397029,41257791,460912139,-24966028,50822409,-1795215626,1583288836,-1962742397,1297948645,1073742538,507244779,779354132,2106323851,-325429496,-486539254,-1898411228,529213122,697980755,1526726667,-619986893,-1705570443,2929,284990038,28835840,2105787136,175440648,242614099,1210522,484989696,1407707908,16777114,-1705786624,4734,-696991733,1405337651,870846096,-661863436,-1957345904,-661774612,1443163267,140413783,2139103115,125569026,1139281552,855715108,108956608,561315595,1602952587,-1867518,83592063,-1930886283,100369152,192244863,1460172543,-1847062896,-1956647940,-167049098,881588084,-75242543,-2095090684,1634861819,276334419,1996425845,-401698808,1206585068,-1878493441,412280846,1996439019,719869704,1958742789,545032997,57999115,-1996272130,-125099964,-1962719746,180847421,-1959756663,1149699654,1975520020]},{"sector":12,"data":[1583300609,-1962742397,1297948645,1526727882,-947142645,2022172533,-339725552,-1983892507,1586231878,-473199864,-165704720,1946224711,209161192,1149908107,207915534,1044067723,292814868,-1995417717,2089024086,91488266,1963740219,-1946645564,1988692084,1536841468,-486539246,-1748857164,185961254,638481874,-2130152053,1946223102,1961900814,-59310326,1207194,110291712,-768360397,-470135157,-1705946862,5055,1364218457,1302938,123361280,306546982,341149990,-1962385781,1405104927,-1934098682,642797568,637695487,-402360833,1527195793,-1954646135,2139686518,675777574,-1961330809,549618647,173377830,205884454,-166986101,881528180,-1710721793,5117,-1962259201,881526390,-1962261249,1149831238,1458604812,-1310191984,1347573275,669519504,244340474,1444652776,244338770,1459256552,-1946383384,-19797561,-1313093325,-1864856575,-326412987,1457032734,108956503,-1070385781,-2096997237,276039419,1946680195,150700811,-1125579148,13035776,9145011,-1992230941,57952256,-33512983,1962869573,334797328,1149829120,676628774,-150438773,1946157511,408718142,1207902091,142081802,1364634,-1904614656,-1948742718,2098632,172460326,207063334,-2027533177,1149970516,335952664,855930112,651310025,638734217,-1156294775,-940113918,745865344,-1708886785,65535,-1993063287,-1960954284,-1948610856,1334521671,67630641,-1023212427,1200212483,760187179,572191,-31819637,1032520517]},{"sector":13,"data":[-1010891986,712542485,-327595189,99287472,855854590,-2090967104,-443874579,-900899553,-1073020926,-1991708812,-1411840,1352279156,-16777196,-1885728652,-167772139,1946224708,408718096,1342119819,142081802,1415066,55442944,-1962932037,1308498552,2034977539,11135990,167772160,2560,-18176,-218316749,1239021486,-1864856381,-326412987,-388461026,-310116377,535137026,-1949610659,-352180714,378245125,1499136548,378210283,-1940192732,1347573961,401232721,-1962934267,-352180714,-326412819,35534591,-16353537,-677772170,-1962934262,79846885,-1864856576,-326412987,-2585058,-16638410,1996425334,371431942,-310181888,535137026,80366941,1364414464,-1709308334,65535,1532582407,-661863592,-1957345904,-661774612,106058067,374905374,1510408192,-310158503,535137026,1355500893,106058067,-26082,1510408192,-1017619623,1167120524,518818645,1364449422,-1709308334,5770,1532582407,-1962742397,1297948645,200510411,-1961986826,-1959490602,-1533390284,-352321518,-661863442,-1957345904,-661774612,-1070377130,185235083,1444181238,-1946500376,214336308,-66683196,-1515870811,1593835960,49120094,1562371467,445005,1167120524,518818645,-1070344050,184966795,-1962511141,-1937274081,49120000,1562371467,182861,1167120524,518818645,12114062,674692880,194662402,-486539242,-1013297143,-1207959530,-310181887,535137026,-1932833443,1430622424,-1910575989,106874072,38243110]},{"sector":14,"data":[1468606105,49120004,1562371467,313933,1167120524,518818645,-1000941426,1992624734,637831942,1149961985,1192306178,71600898,71766310,49120094,1562371467,576077,1167120524,518818645,-1000941426,1992624734,637831942,1149962025,1192830466,71600898,71768358,49120094,1562371467,576077,1167120524,518818645,1589958798,668018182,39309606,72864038,-1962742397,1297948645,-1946155830,1430622424,-1910575989,650720216,-1006350455,1183517790,2109737738,140441355,-150319591,-772339106,184960651,-150635072,-772340130,-150452597,-1993996698,1468605959,172395266,637953783,637683457,184833809,857044169,1610032841,1610032644,1327048194,536290820,38738214,-1962742397,1297948645,1426066122,-326898549,-1957210588,881526390,-1962115957,272993085,1049346059,930349110,-1962654581,529204318,-2096607349,1317602025,-1949070370,1962871615,991791907,-210435513,199118475,-1961855543,1329283148,-1947962106,1329283660,-1948486392,21948871,8686731,-1946792311,-1996454260,1284241486,-263288512,-1992143733,1284239950,-1930261718,-1916694831,-2080577410,-1515910970,-293362267,872057616,-28931648,-2080749943,1963133052,239373137,1358841481,1372570,-364476160,-1897113975,198740930,-385649200,537198829,1200170496,1200367114,108432140,1149973643,676104998,17319158,1392906356,-1047603061,306678566,340757286,-1993996453,-1993993657,2123174991,-50468632,-1962510709,710708020,855638712]},{"sector":15,"data":[678756297,1344697599,1364285206,-493825,1610610294,1975520036,84667138,-397410294,-1072956292,1844118389,-661958512,-1962719234,710707975,168153227,178432,678756178,1361474815,1344165654,-493825,1610610294,190536228,-1962576448,-1876038669,-1962654581,-225769908,-1962639733,38046013,-1962652535,1149890630,-230257914,-1995946871,-880018850,478748039,-645138893,184766462,1443263734,1523610,-57939968,201213579,-16223040,-1382351242,-1962934251,1583348294,-1034033781,-661913596,-1957345904,-661774612,1444605059,106859351,2005606283,-1959490804,-1073016252,3423883,1702163339,-1995278453,881584246,-1962359165,2123170388,-1898935060,702912,-1918569476,-141822338,-1414807501,866894475,45722560,108461824,-397322730,1183520975,-163173382,-654900615,-1947318647,881526390,-1962652533,529262686,-1947318645,1962871615,991791889,-210435505,1963345723,-372798482,-1070399290,-1947580791,28977756,-1916194048,1962929278,645201704,1364661842,-11447983,-1073011617,-1813445771,656640,-80811952,58048523,1342211561,1207883915,-402158845,1988885359,87329542,28901386,710707968,-14125825,374417012,508567127,610271056,1543209192,91602955,1139536779,-362903152,1149968267,38242564,-1996077941,1183515719,105351662,-1962115957,-11513027,1979656309,-401698774,-1990520244,2123040839,-1959425046,529262686,1065865099,-164414327,-18194805,-167050417,-1705638284,6641,199902859]},{"sector":16,"data":[-1959693120,881526390,186539147,-33327909,1149829967,-17265890,495649605,-1996073077,-1962901356,-1802958761,-1014824830,777816330,-553098112,-310157729,535137026,46812509,-1864856576,-326412987,-1948742114,-620033442,529207412,-1962391925,-2021194154,-1752760188,-310181754,535137026,113921373,-1864856576,-326412987,1457032734,108956503,930414347,1435188619,2027031298,49972014,495659381,208984843,17006464,529210739,-253026421,-1326965365,-1983892486,1583300613,-1962742397,1297948645,855638730,1441786816,-326898549,-1957275896,931858526,-1995815797,-1072956346,1183534196,239337732,-1961737215,1140917830,272892172,-947650933,-1960187116,46629637,-2080881015,1183515335,-29032188,16959363,1183579717,-129040392,141869067,-1962752125,-336918970,-244085,-1072956338,28888437,-1956684288,113401317,-1873273344,-326412987,-2082959842,1448547052,16271047,176063232,-1957202944,1200294494,-62486262,1249165323,-964430965,-2093356268,2089484998,1183428094,1183428080,1338477556,611631115,1183427919,1183428078,-297366030,1996443670,108461832,1223167632,1958742784,-129579044,183173121,-244085,-1072956338,1183563125,-2090901768,-443874579,-900899553,1478361094,-1957345904,-661774612,-16091393,1996425334,-401698810,-310116505,535137026,113921373,-1873273344,-326412987,1457032734,637951684,1589917579,926492170,958800767,494797943,38243110,637951684,2080524089,173982736,105351974]},{"sector":17,"data":[637951684,2080524089,-339727612,112643,49120094,1562371467,576077,1167087646,518818645,1448597646,637951684,-1006483573,958794334,58655303,637951684,-1006483573,-1993994658,1589903943,931866118,638213828,-29671541,-947190658,-963968277,638475972,1589905289,1200301574,173982726,105330982,1589904254,1200301574,241091590,105351462,637951684,-1006352501,958794334,58590279,637951684,-1006352501,-1993994658,-1960442809,1194927623,638221828,637683595,2131117881,241091606,-1993949141,-1993996729,-1993997241,-1993997753,-1207702777,1599995905,-1962742397,1297948645,-1946153782,1430622424,-1910575989,250381272,-661891242,-1944815931,-1916563757,-1515850114,-661740123,-1961199989,-1073018300,1183403636,309490,18368247,-150833920,-263812648,-150184252,137286,1946355061,-2096567544,1325339846,-12850190,545059406,35145463,-1960413952,443976702,-1961572733,98619652,-268238842,-210372805,384561195,-310157729,535137026,382356829,-788231424,394720,1418457091,-129594622,41799739,1150013579,-61961468,41730363,-801390197,-1993954947,-1993997737,-24443321,-1962489981,-1981230844,1190655046,1962934552,-523155449,-133963567,-1016277,58586190,67075305,361492606,1005995659,-1962770480,38112208,1006259851,-1962771263,2110798785,1200170714,394864132,1996444422,142016266,-16353537,-1073016738,1743324021,207537407,-1957316117,1122796524,1187468887,-956301060,64070]}],[{"sector":1,"data":[12863175,-1102657792,1187446784,721421302,-230258240,972048009,58005574,-1962763799,529209438,134381443,582487164,244338697,-384358936,-1192754558,408849398,1156986763,91554056,-352321096,-1983894782,1150153798,-398030532,-1947574644,1183389254,340167630,-1949284727,1174607430,-767129326,51660427,1183387718,75400148,-15764480,1183651958,-1202710834,-397410302,1183519571,-834262062,201213577,-1961722432,1183436358,-767128638,-1949415799,1183433286,-733574190,-1982839253,-1072957370,1183519357,-1035564592,-1982577013,1183567942,-733574718,-1995553141,-1072964026,-2098658443,-1948742911,-62486265,-1995684213,1183569478,-666466038,294531,-823590027,205949696,-1995291133,1183570502,273023754,1406944905,383141517,178256,315484240,16678531,1183517053,-700055278,-2082847231,2097215614,273058569,30950913,1183571014,-632931882,1183387517,-632910910,-1948891511,1183433286,-666465318,2111587897,-1035564785,-1982052725,1183569990,-599356990,735856267,1317787718,-800183340,276152635,735725195,1317787206,-833737774,1131725115,-2095548673,-1923741460,-57946506,369280899,521543175,-1515870811,1996447263,149717774,-696873642,-947651445,521543170,-1515870811,1996447263,108461832,16777114,-532248320,-1962871831,1178193478,-2147189290,-1946225050,1178193990,-2147189288,-1946290586,1200356446,676825894,-1980742007,2139157078,108331390,25132928,28837236,721611520,-1002010176,25066624]},{"sector":2,"data":[2088765045,91488639,-352321096,-1983894782,2122563142,276037828,209043467,100419211,1183383612,-362902296,-151232885,1963001927,112645,-1070923029,-2080749943,1946219646,1958742806,-60912878,958022795,125049415,14698183,-1956910336,1418405444,-330921688,-2081532279,1962996862,-92372204,-1962380288,1200356446,-2096501974,1962984574,709135346,-1947842935,1451951686,-498693880,-1812855,1996434548,-834236938,-4698090,-17665,1183666258,-1924131130,1343669830,-401698730,1860762661,-532247564,-443850914,1491549,1167087646,518818645,-326903666,-1957275898,1589905014,2139301384,494141464,273124134,138881830,-1996029146,-1960379322,52826695,723911239,1183386183,140428538,641698598,640186367,1462138879,41418534,746061606,712507174,-231681,-1960379786,-953482169,1200301648,1194010118,-14266366,-14279049,1149967479,642784816,639924223,639793151,-14655605,140428319,440895782,1577058744,49120095,1562371467,707149,1167087646,518818645,1586223246,-2095084782,2080899711,102610955,-401698736,569054174,-15567105,1996427382,209125134,722106111,1347440832,-16222465,28837494,1374179328,49120252,1562371467,969293,1167087646,518818645,1996478606,376897304,-15436033,1996427894,242679568,-15960321,1996425846,108461832,1342177720,-2080630808,-443874579,-900899553,1478361108,-1957345904,-661774612,1461513347,-263796906,2122514432,57999388,-2097076247]},{"sector":3,"data":[1962939006,18802947,-1961075061,41911071,-1207141368,-1873802461,322758670,-1962865943,1183390278,407276530,-1946925431,1174608454,-163149546,51922571,1183388742,273058808,-1947711863,1183387206,273058794,-1995684349,1183575110,172360462,-1161591,1183652982,-1202710798,-397410302,1996427123,-398029550,45633558,1692946432,-163149041,-1980611029,1183573574,-196727816,-1947974007,1177283654,-62486040,737035915,1183443526,1958743034,-58817774,-2096335872,1946216062,-461470970,-955812608,127046,1183542507,-431605252,1183526517,-465159686,1996433013,-227082468,-755969,1996482166,309788644,-1542401,1996483190,108461832,-397361109,871103232,-2095286529,1988954348,385649650,521543175,-1515870811,309788447,-1928795005,-57939850,-1524689378,530949541,-16222465,362415734,-1996488671,1183576134,-2090901776,-443874579,-900899553,1478361112,-1957345904,-661774612,1445522563,1080963,-1070922379,-2097056023,1962935934,112646,-1962841367,529207390,134381443,565709948,244338693,-384701976,1586168147,-164132080,1950353476,244339466,184999912,-1950124864,1418409028,-96040650,-990095735,-1977157026,1006838791,642479361,639846283,1965377291,207391553,1200299915,-599357150,-1961468789,373787167,-136690040,1073798214,54266484,1190535285,443876060,-15698177,1996426870,175570700,-16222465,-6683018,-385875713,82313435,138841073,-1995811189,1451878470,105286634,-1947449719]},{"sector":4,"data":[1183387206,205949934,-1030519,1183649910,-1202710802,-397410303,1552616899,-1960867060,-789110201,590503051,1183387463,-666437672,108273152,17384694,1187462516,-956301070,62534,-1960026997,1183387719,306678774,1408779913,1342178232,384976525,-18352,1392508858,-532247216,1183666198,1448089312,1659375248,-15668232,1996427382,-532247080,-6664170,-2097151745,1946175612,678756146,-14256897,1996426870,1354771212,175570768,-1962379521,-654899642,913637200,-1925942017,1344158788,506610827,710708048,-400007169,-1863716767,-310157570,535137026,214584669,-1873273344,-326412987,1457032734,-16353653,1962879092,140428326,242745126,276299558,-15829249,-14283658,-14284169,-14284681,1962871927,880082742,507266189,843352912,1552633886,677379882,1577058744,-1962742397,1297948645,503319242,1430622296,-1910575989,209125336,-16091393,1996425334,1354771206,-2097138712,-443874579,-900899553,1478361096,-1957345904,-661774612,-15960321,1996425846,108461832,1342177720,-2097148952,-443874579,-900899553,-1957363704,686588908,2122536535,108331020,-375799765,1586168186,-164132084,1950353476,244339466,184862696,-1947896640,1418409028,-62486218,-989964663,-1977156514,1006838791,642282753,639846283,1965377291,207391550,1200299915,-364476126,-1961468789,373787167,-136558968,1073801798,54266484,1190534517,393544426,-15960321,1996425846,108461832,-1710983425,65535,-1962867223]},{"sector":5,"data":[1552626300,-1960867060,-789110201,-1995487965,-11085242,1996425846,108461832,-1878755585,15263758,-1980479863,2122577494,712245254,14305015,-1962511358,-348125626,-1983894782,1190656070,1946419418,1208322826,-775804007,721611768,-96040512,1187449579,-956301064,64070,1183432747,-532248094,-1980479861,-1072962490,1183517044,-96074760,-1947974143,1183446598,-532247578,2112112185,112645,-1070923029,-1947056503,1178198598,-1207599642,48955393,1183432747,209125360,383796877,178256,-401698736,1183517364,-498717722,198723209,-1962508864,1177281094,-398030362,15761027,-654899852,-1947711863,1177281606,-666465824,108904459,736118411,1183441990,-226589714,-150637568,-297367080,736646795,-297366592,-443850914,705117,1167087646,518818645,-326903666,-1957275888,1149963894,911510324,-1980217719,2089548374,142508850,-1955761152,1183402052,1958743026,108954380,-1962511104,1183403076,-401698564,1962929588,645201704,1347469355,1996443728,175570700,-150452597,1996443864,-126418950,507266189,516393808,710708048,-1993842689,1451881542,-401698570,2122575278,208929010,425603,1183516277,1279560188,-1946925429,82572886,-1070918261,-310157474,535137026,181030237,-1873273344,-326412987,-2585058,1996425334,313124870,-1962742397,1297948645,503317706,1430622296,-1910575989,82609112,16533191,176063232,-15371264,1996425846,108461832,-866072,1290275446,-62486040,-2080618869]},{"sector":6,"data":[-443874579,-900899553,1478361094,-1957345904,-661774612,1443949699,16533191,176063232,-1957727232,931859038,-1995553653,-1072959418,-1070907276,-1980479863,1183576646,-163149560,-1996077429,-1923876794,1343681094,1342177976,-16151832,1183576182,-230282250,-129594544,1358186027,1726484112,175570943,-1981332504,1183579206,-310157572,535137026,113921373,-1873273344,-326412987,-2082959842,-950663444,64070,687747,1586176372,-13137142,-16741196,1996425334,-233838586,-401967361,1996482529,-419764214,-1946532215,-2090927546,-443874579,-900899553,1478361094,-1957345904,-661774612,1443687555,16271047,176063232,-1959889920,931859038,-1995946357,1183577158,-163149562,-196702893,28856342,-588754944,745864968,385107597,-401698736,1183445531,-129594376,49120094,1562371467,445005,1167087646,518818645,-326903666,-950642910,63558,687747,-1360460939,173968128,1183385483,-1948742676,931863647,-1962522997,1465256022,-1947304307,503781104,-1515857266,1595909541,175570782,384714381,178256,141158480,-1995815797,-1072956346,-24416908,-350959741,-2096788644,1183384263,-2096788502,1183384263,-2096788512,1183384263,-364475420,199905023,-12946240,93055566,-1996306557,93052486,-1996306557,1183572550,-498714130,1183570814,-565822990,1183568765,-465159696,1183566718,-532268556,1187496829,-352321032,-62485750,201084671,-1952811584,1600059462,-1962742397,1297948645,503318218,1430622296]},{"sector":7,"data":[-1910575989,183272408,1187468887,-2097151748,1946159230,108954429,-1959300096,931858526,-1962516853,-62470337,1149960193,-96040696,-351779525,-96040170,200953599,-1961659200,516326342,-947662965,1958820638,-62470168,1183514624,-2090901764,-443874579,-900899553,1478361092,-1957345904,-661774612,1462168707,106859350,1149974411,106203908,-1980348791,1150023766,-565802652,-1989786485,1150016582,-465139348,-1989262197,1150017606,-263812842,529258635,-1962653813,1183385175,-396981786,20463235,-2096663296,80446,-6682764,-352321281,973537259,-1808335103,757570051,1183383552,-940012566,60486,1166760171,240487180,1978160697,-431605433,1166754421,-565823228,1166752373,-599377658,1166750325,-465159928,1166748277,-532268790,93004405,956454283,410384470,1979074105,272993043,-1948105079,1183388229,-96024580,1122697217,-15349885,748809286,-330942207,1996464242,1996445190,-159973384,-2197761,1996479606,-529072156,-1018113,1996482678,-361299994,383927949,-62485168,-6664170,-1996488449,2122578502,2138308858,-1696434433,5424,-1980610935,-1039403946,1187448693,-352321286,612139878,-16223232,60433524,-2097151974,1946165884,578092808,2972826,-498693376,-1960557431,1452012102,876906996,-1959373687,1149893702,-6664158,-1996488449,1589916228,1200301810,1468737071,1200170545,1468605995,133572141,-1962117884,650284227,640370433,-2144512239,-4257692,-1711041482,65535]},{"sector":8,"data":[20594307,-16157184,-1593755122,48955706,1183563819,-2090901766,-443874579,-900899553,-661913598,-1957345904,-661774612,-1962516853,2044398539,-1948518654,-936179130,41533451,1452005623,197800712,-150832686,-1964836902,66834891,13796291,-653597743,443798331,-1072958473,-922020744,-654900615,-2097151558,-443874579,-900899553,-768409594,192937912,-135497271,1441328080,-326898549,-1957210622,881525878,-1962115957,675646269,-1946270071,1284188765,1397772652,1978142352,1683786751,1348881547,244339537,-1711314968,-1037319629,1150015627,-1036805778,-1019493845,-1014297476,-1037319629,-345095031,1183551540,1850510334,1361730955,244338771,-1946208280,1284203612,1364414566,703073936,-1036805633,-661929429,-1720957813,-1036794997,1149878827,-1956749460,46292453,291825664,-1070399232,184966795,-1961986853,712477471,-14125057,1560225399,1206436620,856096785,308186048,594860811,2005606283,-3591382,2013210743,1996443942,242679568,-15960321,1996425846,108461832,-1022337793,-1191063877,121307156,-1014823308,1106764292,-1864856373,-326412987,1457032734,142525527,-955531124,-521643404,-11448346,1996425846,-1705572856,65535,-1950183847,1065363160,1092711738,-1946230400,-1931400228,-1950314800,-975532804,-1527576458,-2010719602,-57934259,99349387,-1962377532,105810932,1460013539,313754,101182208,-26025,-427098112,-310157729,535137026,113921373,277407744,1586168064,-2084556026,108204027]},{"sector":9,"data":[-2020877565,-1933377514,1430622424,-1910575989,-2084555816,2003175038,140413715,208984843,1602953099,52398860,126551646,-1962742397,1297948645,-1325398838,-919422207,1167120524,518818645,1448204430,-1950338217,-620032418,529227124,1200354867,2147427586,1962935357,142576460,419797591,1138950144,-628166517,1150016307,139233806,-503845582,1317742448,1992375050,-1950250238,-1948742712,544509399,-167346492,1963064390,-1929935095,-1899983144,-201586594,1391692708,2947994,868649728,-2090967086,-443874579,-900899553,1420886026,-1151815237,-1313129295,2092022650,-1149980229,-1313128783,1622260600,-1150242373,-1313108303,1689369476,-1150504517,-661889871,-1957345904,-661774612,-1952858061,-620034466,529206132,-654054094,1468729227,49120002,1562371467,182861,1167120524,518818645,1586223246,-2145416438,2080899711,-401698809,34866826,185228939,-1961986853,138840863,-2029627765,1468488775,49120094,1562371467,445005,1167120524,518818645,1586223246,-1960867062,1451952198,1548191494,-2090969209,-443874579,-900899553,-661913594,-1957345904,-661774612,140413778,2139103115,125569026,244367755,856043240,140413888,242539275,-315482229,66866826,105286617,-310179961,535137026,80366941,17086720,-1158988622,-1308555591,-1179391110,2092040455,45722859,-348212735,17152421,-1628735310,728259979,1569284189,1784515384,-1990042325,-2134689187,-1946257819,1563651165,-1962117788,1563651677,-2147191450]},{"sector":10,"data":[-1023314355,1167120524,518818645,1465309326,-1962385781,41910303,-1878557688,93906958,2123038979,859671304,105810880,-108835613,-1958250744,1951238105,141871931,537415040,1074285952,133923665,58469503,-1929379141,1258433590,1972056436,-2093708532,-472831802,-472783919,-1985088765,-1985125307,-1985124795,-1985123259,-396857787,1583349617,-1962742397,1297948645,1124074698,-1989911159,1569285725,1851623788,263839979,6339074,297338603,7387650,1167120524,518818645,1465047182,-1962254709,41910303,-1962443768,-401698623,2123039999,-1958900982,25951326,-1962392063,1442906689,1895531270,1642791797,-1944196208,1430622424,-1910575989,1586190296,-2145416438,2080899711,-401698809,34276542,185237131,-1961790209,138840893,-1956625017,1434912342,-20649886,49120095,1562371467,445005,1167120524,518818645,-1957177202,529205854,134381440,244320124,218398184,176065282,-797638901,1317748107,-2017359096,-1929154491,1300824206,105810792,1434964363,-1869806734,1783466240,907717611,911226421,-1816512917,-1174148300,-661900363,-1957345904,-661774612,-1070377130,185366155,-1961855754,142525492,-1157214581,-755040255,1593835960,49120094,1562371467,576077,-348949830,880720387,1167120524,518818645,1465309326,-1962117493,142525492,856051339,1607663579,49120094,1562371467,576077,-348881222,863156739,1458342741,175541079,2126787723,72256262,-754984141,-443851169,574045,1167120524]},{"sector":11,"data":[518818645,166254734,49120000,1562371467,-2071213235,-2079653732,963903646,887641937,866105856,-1962933064,-486498676,1398497032,-12105897,-1956945966,-486499188,652410645,-134005293,871920971,-752434231,1274544933,-919343755,-388877373,1450508782,721783590,963665988,-1955828489,-1948611608,-120495036,-751578997,-654900615,331678617,-1960939309,-67672996,326945035,1885881347,1313778448,1963049462,80118531,-138165534,93005529,1685389136,-9669377,1962893428,20441192,-1960387605,1615080197,1828141424,-1947694228,1682213850,-796133167,41538355,60414199,1892881349,1683786526,-921961481,1141052284,-1424986000,-1040822706,-2096925439,-1025375034,651818947,-11532917,1962894452,1618280300,-395283201,-605355807,1167120524,518818645,166254734,49120000,1562371467,-2071213235,-2079653732,192151710,115890001,866826752,-1157697047,266928127,643200257,1143670155,-147230616,-393517972,1150016139,-1946627732,2043884496,-1713834238,-753679101,1552621168,201062252,51608777,275800132,-162640213,57999809,-503003517,-638073918,1342540582,-9669377,1962894452,1618280296,-352298776,93005531,1886405675,1684862777,-628365173,-781433717,869305336,-150832685,-989619752,510710547,-143893365,2093550587,1615069971,1319833712,29488718,-964492427,-1010638332,-1960388105,1962889221,1685389164,-9407233,48783476,1440475904,1448209547,1996424791,142016262,-1878362369,-131667954,729076235]},{"sector":12,"data":[209125200,-16222465,244320886,1542984680,393531915,-1962652021,2026910675,63122182,50785217,721580225,118124739,-1957077409,180510181,-226387712,-1031045120,-638063125,29086259,-809487616,24528118,-628344203,-661733325,922745432,922681346,244056064,113704962,899547136,1457164027,190177745,1573978075,869960798,-86470976,1679,132751,-1009086725,-315402920,1150016267,979143480,-2077551500,74514574,183681,9477163,-847182735,-1036845055,-634142165,-1959863765,1563608726,19325695,1191997445,486614599,1195838064,-389811998,-269811624,-352300056,83961585,1195838576,1897726246,-498645238,1038664688,-386929920,-236257224,1896153382,642205452,175119617,-253606073,2287811,501805035,653388544,208733441,19285831,1191866653,-1007623609,-352319512,190703,12251627,1241610624,-1021998810,529149531,1989017394,67013380,1272941563,-1898869685,-1523122751,1610392886,49120094,1562371467,-874280115,1167120524,518818645,1465309326,-1945745781,-1916629286,-1191037890,-218365926,-2032628817,-1946209541,-1948580909,-947715970,964900357,-483822592,838809102,1461080656,16777114,906816256,1380987391,-6662378,1593835775,49120094,1562371467,182861,-269762509,-1960442021,105071367,-1957345965,1465261804,-1030825332,36978317,-67102023,-661934094,-13436026,-620506229,-1929347445,-208992899,3769142,283329140,838809171,1461080656,3601818,250305280]},{"sector":13,"data":[838809171,1461080656,3605402,1499093760,-1962742397,1297948645,-1961260234,41911071,1359508488,39619922,-1946219543,-873362438,-622084045,-1960442021,-1940433401,-1916629286,-1191037890,-218365926,-2032628817,-1946209541,-1915026477,-208992642,3769142,249766516,1345453878,-1705568686,14169,-13234965,374493233,929667671,1552744448,-21567230,-152321997,1167120524,518818645,-326903666,-1957210618,2123042934,240552716,-1995815285,1183579206,-96040696,1183432755,106859512,3203969,-203904,377289806,-882771,679279182,612107323,1178997887,390017,1325339371,-13927174,-695731130,1246365163,-1375975681,-209594745,166395914,1191171719,99844602,-1900052480,-1200357374,-129564757,1183560427,-2090967048,-443874579,-900899553,-661913588,-1957345904,-661774612,1444211843,209095511,-787856245,-62486048,-964442485,-260667110,-1996483067,1988883526,172264202,1183441105,-2084140038,1988696774,1443310,519194249,243174151,-654850165,-1425487997,-1414807501,-1985238101,2122971262,-364475914,-2130157941,-788516637,114000363,-329348864,-1946913141,1586229886,-363951124,-667696757,745849635,1946158249,-95122666,-234626351,-1031547253,-262764282,44648006,-1961790464,-489555371,-678692349,-1996045693,1195896406,871128713,-61931575,-2018699908,-95485961,70985340,327099004,-243251642,-15537404,696056398,-2013509889,1325788158,-62455985,-2130802771,149619441,1191181959,82936058]},{"sector":14,"data":[-1980467575,1317663358,-827850774,243174146,50873739,1166669382,-2090967288,-443874579,-900899553,-1070399478,1988882411,-1962677264,2123099766,71666166,1946305849,113738589,-1946532725,62915528,105266119,-1047799689,2123081203,-1958286346,1166669438,38091012,-947701644,-260666618,-1947312501,1334573636,63998970,64029650,1003946961,-1502149034,1347900246,142016337,-135786864,116360189,158711819,-385596021,-471269239,-1962571266,-147064714,70986612,-930398603,990010763,880084060,-1962650229,113673182,-217659517,-1994033753,2123039831,172883726,-336038261,241077060,-1996335989,-4583849,207063423,1468652279,307726608,-1980334453,-141821826,-788084861,-1980234784,-544475522,-1961984373,1161559623,-1996259824,1149964357,205863686,1166607229,71600908,2115126587,306546947,-1962260993,1166669438,-27989758,1167120524,518818645,-326903666,861361668,172919744,1988827363,1962281740,108954385,1443789829,-401967361,-397016857,-991308053,139365120,1183578339,-523155450,-523116335,1183441105,-62470394,1996423424,-618469124,200951433,-385649216,1988821160,-1959490806,1032521854,-1072965493,-1014292597,771507715,1448280068,108461911,-401698736,-1072956056,1182865781,-1962868484,-11273634,922745974,-6684124,-486539009,1035987817,58523678,-1962926408,2123102838,-11512052,-1711135690,15135,881544419,503860363,-1958900985,-1995076641,38061844,-1527578619,-1593540723,-1582628808]},{"sector":15,"data":[-2085945286,16791558,3806851,-92864768,1792154,209125120,-1948898584,2123041398,-2090967288,-443874579,-900899553,1317732360,1359406074,3895706,-339725568,-326412834,1988843350,-1959490812,1996425340,922703622,1016726052,-486539205,-1949332724,1032521342,-201586914,-1956749404,79846885,-1144442112,-1957363279,-1940433172,74892763,38026157,1001196413,92078660,-352313665,1359619,-1031021682,158714123,49690367,-472252440,-1949332646,-1949266952,-1898214339,-1070334781,374955,3711403,3842475,939951019,377684224,-1962934214,-108811327,-1205767148,-978649087,-1515912074,45655461,1150003968,1150004218,1150004222,1150004216,132885500,179945523,-1901333760,1606585307,1575324510,-1946155838,1430622424,-1910575989,-299987496,-397206014,-310116521,535137026,-1932833443,1430622424,-1910575989,149717976,2123234391,-1962469642,-1951724474,-1951724986,-1951725498,-2085943738,1461061871,1610556136,-1962742397,1297948645,1426065610,-326898549,-1912842488,118945918,-1425389941,-1425521013,-1425652085,-1425783157,-2096343413,1461061871,1610543592,-1034033781,-661913590,-1957345904,-661774612,180078899,172395264,-201862605,1378927232,1975520065,-993948685,643434078,-498919544,260581113,-1962742397,1297948645,1426065098,1465314443,280941107,379357952,-1960867072,-1960647921,-1958900743,1161495622,-1961724670,1161496134,-1962248956,-1995994875,-338588907,-338064418,49185752,-628371591,1608079080]},{"sector":16,"data":[1575324510,-1946155838,1430622424,-1910575989,1465275352,1183579955,2109737736,-1948780782,-654899626,1956599,138840320,-1962518903,-1073017786,-671673731,-150317429,500889560,1183383552,173443340,376815627,-1962258805,-768407482,-661917193,-150583669,-338457615,-661942210,-1962258805,1183516758,-773074682,-773140007,1977289688,-1947076620,1389507568,209125200,-1878362369,37611534,1997035067,990409223,58066502,855764611,197561298,-150506241,-2082932774,1583284442,49120091,1562371467,576077,1167120524,518818645,1465309326,1183570739,2109737736,-1949042926,-654899626,1956599,138840320,-1962518903,-1073017786,-738782595,-150317429,500889560,1183383552,173443340,-150581621,-1946645535,-259323322,-100408841,140965782,-678692861,-619985269,-621344908,-628893449,-2090967296,-443874579,-900899553,-661913592,-1957345904,-661774612,-13412525,185091723,-149783104,106335191,-621291273,-1996488675,1451821126,205949702,276676619,-150317429,500889560,1183383552,173443340,443924491,-1962258805,-768407482,1183576567,-1947076858,198325186,-347638273,-661942196,-1962258805,1183516758,-773074682,-773140007,1977289688,871495668,-11513134,1996426358,-401698806,1446707483,1913091848,105265931,1177224822,206969610,453396011,-16054186,-621344907,-628893449,-2091163904,-443874579,-900899553,1430585352,840887435,-788077587,-489500192,49120250,1562371467,52045]},{"sector":17,"data":[-1003791781,-654894733,168180022,907048704,788025,-1556741002,-527761396,-1949609134,1107525654,788464756,-5241984,-1140936517,1352203696,16777114,-1957340416,394997484,-1070382269,-523124086,745784363,959895799,1996491270,104412707,74842124,828214,1465311371,-963985357,-11476783,1583307219,1532880267,-469769981,-1140871191,1536219276,1125616430,-1957345981,-661774612,-1031094221,-1003757359,-654843277,168180022,920221440,788025,-1556741002,-527761396,-1070377130,-523123062,1507065680,-310157729,535137026,123424093,1392959747,-1864856373,-326412987,1457032734,-1962129781,-503904690,1183570059,-135230710,-1764097055,50882295,-1949070376,-310157626,535137026,147475805,196650,16721023,196880,16721379,16974097,81813,196609,16721219,196883,16721752,16974100,71479,16973829,80819,16973830,80789,16973831,76846,16973832,77065,196617,16723147,16974107,71234,16973839,68653,16973840,70289,16973841,77766,16973842,77833,16973843,71282,16973847,71332,131096,74238,205344,16725960,16974124,76831,196637,16725974,131373,75201,16983601,66198,327730,74235,16982560,77020,16973886,77630,16973893,77621,16973894,66769,327751,75198,16983601,77560,16973902,66145,16973912]}]],[[{"sector":1,"data":[66157,16973913,66164,16973919,67512,16973920,66553,196705,16712676,196861,16712704,196733,16713497,196734,16713507,196862,16713791,196863,16716445,8519941,1167120524,518818645,-326903666,-1990765016,855704638,1346036672,-6663856,-486539009,-1547685072,983760952,23717888,561299467,1946167784,20899868,-1706027148,65535,-1898410920,3981248,855663801,-139725888,-2090967088,-443874579,-884122337,11208333,-6664162,-1560280833,109903888,512557248,244121800,1988952273,2669270,1394495518,1444303134,-26030,1444282368,25498,1221376,1326733,-1959856589,-486449268,-14790362,96931381,-13762560,1493260692,309641227,1195836809,529258635,-2147266688,1179049954,516150507,-6670849,184549631,-1946979136,-1289843216,-1190228736,1394497024,-6663906,184549631,1457222848,-26032,-1073020928,1347473524,16777114,-1959664896,113413872,-6662650,117440767,-1073019511,-661971340,1333796747,-964460541,855082770,-17984,-142102798,-8304825,-746717136,1462072415,16777114,-6662400,-1207959297,1344143512,67482,1958742784,3318539,529258635,-2147266688,1812031427,16871681,67110400,-369098752,65535,16777194,-5632,163053568,-6664192,-1560280833,-1073020876,163057268,2073710592,184549377,3580864,-326412861,1342204344,115610,60072704,74825739,803979307,-1728030024]},{"sector":2,"data":[-6664110,-1560280833,-1073019916,146336372,-1952821248,-1560281087,-1073020006,582539892,-1706025471,65535,-1962933832,298016229,1744831232,2097152257,453051146,67109120,-117374208,301990144,889258752,318767361,1006633728,-1811939072,-1291844842,754974977,-889126122,788529408,-2046754048,973078784,-486472960,1006633216,-301923584,1023410432,989922048,1056964865,1828717312,-1056964351,-1929313528,1174405376,1157628672,-419430143,-738196727,1996553985,1912603392,1912602881,-1660943608,-167771903,1702258965,1701137940,1167087646,518818645,-326903666,209617678,721712384,-1955599424,126553182,-1946794359,138933976,-15961024,-6681482,184549631,-1948224320,1200354910,911706932,-1980217719,1589967446,1200301816,-1983708377,1451881030,-62470156,468385792,653418180,1946173312,-230228197,-1006138842,1191118430,126363142,-1946401025,994576966,-595592122,637951684,-1962932282,-310117306,535137026,147475805,-1873273344,-326412987,-2082959842,-1070920980,-1979955575,1183447110,105286646,-375159,1183647862,-1202710794,-1706033150,261,737822347,1183446598,2109737734,-2082932990,-443874579,-900899553,1478361092,-1957345904,-661774612,722136195,-96040512,-1980217719,1183577670,-62486266,-1928825089,1343682118,1342177976,16777114,-62485760,-1980217813,-1073019322,-654900611,-1962742397,1297948645,503317706,1430622296,-1910575989,988578776,310281046,721777920,54979008,-1727899208]},{"sector":3,"data":[-6664110,-1996488449,-1072966586,-1705973388,584,-1980086647,1589967958,105286650,638080651,-1993996407,1183515223,206998282,71797030,106400038,138921766,1183514624,1200170514,-1948742902,-532248313,16777114,-530674944,-14125057,1996433015,242679568,-1157627976,1347616767,-231681,1603009142,341835562,-1697495415,65535,13794947,1187448949,-385875746,1996423845,242679568,16777114,-834238208,13125319,-565786880,1187512319,-1962934040,126554718,-1948236151,207588312,1183385483,-1948742710,1183411783,1975520214,-530674932,-1960157301,1183396935,-899773482,-1994242165,1190648902,1965031644,112645,-1070923029,-941472119,53318,-1711137815,622,20856451,-756480,-16696314,-1711016906,65535,-1980479863,1183446614,-296318484,-150983240,1174524014,-195115788,4162342,-907474827,-26111,1048772608,1962934594,1074200564,-195116031,-1707606234,65535,1019627144,-1207339521,-1705967618,65535,60438271,16777114,-967407104,61994538,-805051693,-1947576695,75465690,-14713088,-1711039946,731,20987523,-16091648,-1593753586,-1863777984,-373282048,922681483,-6683750,-2097151745,81982,251595126,1084293440,721611521,-195115840,138906406,197936777,-1962249024,1178195526,-349866804,-195115944,206015270,-1996487899,-1072962490,2122516085,1098186978,48529027,2122529652,896795620,31999687,239504128,1964000779,-195115913,105351974]},{"sector":4,"data":[-942782839,63558,969426571,863893574,-772245877,-94452506,651052683,1963737145,-197722339,71014915,1048772608,1996489020,14018819,20713215,-385794911,1191117005,-1949963272,1191168118,-991505976,1183578718,1082730190,-2017057268,1342177818,-1030962293,1375869445,2078800,-26032,1391132672,-1946919228,958844486,2054489671,15091399,239504128,-1995417973,1451880518,-96039950,100423307,1183384090,-631862824,-1024316,-1977159610,-664878073,651708159,-1073084536,1191121012,-427916314,-1948158689,-970532770,1996423175,-193527818,-1946532213,134610006,-1957670398,973470278,-11513342,1996427894,175570700,-16222465,1642595958,-565802752,393592843,922690539,-6683660,-2097151745,80958,736691062,-4183041,782356550,-800704255,-538377357,-394361859,-1005554432,-2094597538,1946159231,-767128826,-2210167,966448246,-16777209,-6630282,-1962934017,-2090934714,-443874579,-900899553,-1957363698,49054700,375309398,575114022,638738116,1589905289,1200301590,308200485,38242598,-1005816065,-14281122,244327031,-990110744,-1993993634,209125127,41418534,-1058533744,308200699,38242598,71812902,-953810944,1607,639000260,-1004714101,-1993993634,1589905479,1200236054,308200474,172460070,639000260,-1004845174,-2010770850,1589906247,1200236054,308200476,206014502,639000260,-1004583030,-2010770850,1589906759,1200236054,1006838796,-1341885183,-1341986045,308200449]},{"sector":5,"data":[239568934,256362022,1204168194,1589903632,1207313942,74711332,48956080,1589903792,1334453782,-253657052,1589952778,1200104978,126559761,638475972,1589905289,1200301590,241091604,38242598,639000260,639780747,-1005304021,-1993994658,1589904455,1200301590,241091606,105351462,639000260,-1005041781,-1993994658,1589905479,1200301586,241091586,172460326,639000260,-1004058741,-1993994658,1996426311,2013210124,-401698814,1589967612,1200170510,209125122,74972966,-370667888,241091834,71797030,638351103,-1878624257,-86579186,638475972,-16365687,-14283658,244320375,-990198808,-1993994658,1996425287,2013210124,-401698804,1589967463,1200170510,308200460,138906406,638475972,-1005697143,-1977216418,1589905991,1200104974,308200464,189237798,638475972,-1005500536,-1977216418,1589906503,1200104974,375309330,692554278,638475972,-1005369464,-1977215394,1589914183,1200104974,375309332,726108710,638475972,638797570,-1005238392,-1977215394,1589914695,1191323150,1200104979,375309334,142574374,-1341885440,704834305,-771509824,375309536,206539302,-805052032,650185441,-2145103990,-1056247327,638475972,-1005107320,-1977216418,1589906759,1200104974,1204233752,-1006632935,-1960438178,1589907527,1200170510,375309339,306678566,638475972,-1004714103,-2094655906,1946159231,178181,-1070923029,-1961468220,1207314160,91554572,-352321096,197143298,-28931642,66336511,222874,1010729728]},{"sector":6,"data":[158728193,20713215,-352240479,-4183294,1996428406,276234002,-15829249,1996488310,74907398,1577606911,-1034033781,1478361110,-1957345904,-661774612,1443163267,637951684,1443526539,638607044,244332543,-990295064,-1993994146,-14264825,244318839,-990317848,-1993994146,-1000996281,-14283682,-401698761,1589967144,126428684,2013210198,-401698814,1589967128,1200170508,-14264830,244319351,-990312472,-1993995170,643171399,-1878624257,-118036466,638344900,1443252105,142081830,-437776752,207537400,138905894,2013210198,-401698804,1589966987,1200170508,-14264820,244320887,-990348568,-1993995170,643172935,-1877379073,-127277042,638344900,-2145826935,-1006499250,-953809314,67655,17450742,-1070988172,28312299,1589960912,1334453772,-236879849,135053578,390563878,-15567105,1392906358,-1005947137,-14285218,-14286217,1610556983,-310157820,535137026,248139101,50336000,16946177,50331904,16948481,50333696,16956417,50333952,-16612352,50404864,17070849,50336000,16863233,33559040,-16669696,50372096,17068801,50336512,16889856,51811328,16921601,50339072,16859904,51784960,16788224,53199360,16896257,50349312,17017345,50350080,16825344,53661184,16878848,85352960,-16670464,40448,0,1167087646,518818645,-326903666,-2091493606,1962936958,-373282043,1586168519,-164132086,1950353476,-6663414,184549631,-1947831104]},{"sector":7,"data":[1418409028,-129595082,-1946528119,1552626300,-1960867060,1183392327,600897510,1183387461,-398002200,91488768,-352321096,-1983894782,1187511366,-1006632718,-1977157538,1006838791,640775425,639846283,1965377291,-431584473,-1947187575,529208924,-2011805814,1190652486,1950351590,1963146250,-431557109,-955943678,127558,1183384971,-128006922,373787430,653149833,-16222209,-1705970058,217,637951684,-1962784887,1589964358,1194010360,1996443656,-294191114,62106,106873856,71797030,653811396,-16091137,1996486262,17537774,1589903360,1200170502,-128007162,209190694,-624897,714796662,-1006632959,-1993996706,2122516551,1567883506,-231681,1589903989,2013210360,22256153,1183383552,106874108,653674123,1166739337,-62520574,172460326,653811396,-14977025,-14286219,-23455369,50331649,1589967942,1200170502,256243468,158598144,731448715,-336014910,62925570,-1528169402,175570688,-1695123713,402,637951684,1996425097,2013210122,27630082,1589903360,1200170502,175570690,74972966,112794,106873856,71797030,638220031,-1710852097,459,637951684,-16365687,-14284170,-6682505,-1006632705,-1993996706,1996425287,38112010,1358710275,133018,106873856,172460326,-1005947137,-14223266,1979652983,2013210114,-26087,1174601728,429543676,-1006632958,-1993996706,1996426311,292945674,16777114,106873856,424118566,638076299,-1978775671,-2010772923]},{"sector":8,"data":[1166676039,1200104971,205883921,306677798,653811396,-1004714102,-2010773922,1589908295,1200236280,106873886,340232230,653811396,639584138,-1004714238,-2010773922,1589908807,1200236280,1191323168,106873885,373786662,653811396,639846283,1948600075,-352210940,-1312806398,-991899133,-1977157538,65110031,-1056251440,407865894,183624064,106874049,390563878,653811396,-1005369462,-2010773922,1589909575,1200301816,106873860,457672998,653811396,-1006221429,-1993996706,28843335,-2090902016,-443874579,-900899553,262150,12320771,763494401,31522819,18153727,25165827,18219263,2555907,734134273,1167087646,518818645,-326903666,142016284,-1710852353,65535,-1981004151,1854139990,1585660652,1187447022,-2097151772,1962936958,1144946751,460587009,1344274616,-1149185,-1130697610,-1996488704,-1073018298,-1070916235,-16660503,1996425334,-294191354,-1695779073,65535,185222793,-941394752,-7098,-1710590209,214,-1980086647,-1039401898,1996428149,-294191350,736917247,-2070261568,-352321535,-461470766,-385649664,1048576236,1962934596,9890051,17450742,-1914109068,536918016,-294191280,-1695779073,65535,199640713,-16026176,496634486,-385875967,1996488572,37198566,1183383552,-195655182,-1981266295,1183574614,-61436934,-1996471803,1451882054,-330920968,-336574839,-161561582,653674239,1589905290,-398000152,-1962440666,1325396038,1975520240,175570916,131482]},{"sector":9,"data":[175570688,16777114,-230257920,-1980475765,1451883078,-431584260,-385202551,1183514763,-61436934,-1981266295,1107683926,-163149568,-1946659191,1183444038,-1005392912,1191179870,126494454,-1548604,-2010716090,-263812345,200298239,-1804864,1996425846,-327745554,-1705983957,65535,1996439531,108461832,16777114,-465139456,-385649344,1996488489,4372708,-1202695527,-1706033151,65535,-1804545,1996487798,-327745542,16777114,-461963520,16777114,-94452736,661619494,1602430530,-165281751,175440903,795837222,1602430530,1589903409,1200301818,1191912995,638219301,1109618563,627016486,175570688,165018,1144946688,192151553,21235398,172395264,-1962696541,-310179258,535137026,113921373,-1873273344,-326412987,-2082959842,922686188,-6683660,-1996488449,1451882566,-164777734,1174604390,-230258184,-990620023,-1960381858,-62486265,829800459,705316490,1996443876,108461832,16777114,1958742784,-228670455,71797542,-1070923029,-637303,-1711016906,65535,-336181621,-228670410,38243110,-940685687,61510,-231681,1996487798,146297072,1347590400,16777114,-6664192,-1996488449,1589966406,1200170738,-2084771068,-443874579,-900899553,-1957363706,1122796524,1187403351,1048837868,1996489006,306613010,1964262923,102754563,-1292602,-1006233367,-1977215394,1183322183,442403786,1183385483,-1948742678,931859551,-1989262197,-1072963514,1586170997,710904810,-1993062517]},{"sector":10,"data":[1150017606,-431584990,15091447,-1961986784,1207364190,91554056,-352321096,-1983894782,1150021190,-398030552,-1993718645,1589961286,2139104790,292814866,-1030962293,1375736325,162981968,-339720567,-1069103355,1589903360,126559766,197019273,-1958120000,1175130694,-1005882348,-1960440226,-1102673657,716715755,1962889216,108330762,392346,179935488,-1980107008,138264134,-955941632,572998,556675,1996426869,-1099497702,16777114,138840320,-506169,-96024577,1589936127,126559754,39291686,-1982052727,-1070866858,-1979824503,1183448134,31779300,16777114,1111393024,-193658879,20973311,651976388,-16040053,-947190668,1589909483,1200301788,-465163518,-150983239,64523241,-1960387490,-6664185,-2013265665,-12795322,-21493387,-6663937,-16776961,-1711039946,65535,717379210,-754732554,-1982856222,-628361642,294787,922689407,2056913818,-2097151996,81982,251595382,1084293440,22669569,1424605227,-1707671807,-26109,1048772608,1979711808,1074724617,21012737,-1070923029,651976388,-1995946101,-1072970170,1183517556,-968476192,552152948,-597769215,206015270,-1996487899,-1072959418,2122516853,57934062,-2097084695,1963126910,16640259,66092675,-186055819,-597769216,575114022,651052681,-1995028597,-1960390586,1183393095,1200301778,-733574883,440896038,651576968,-2011478134,-1977166010,1183325255,410451928,-1927907585,1343667782,1183666950,726669006,1178161344]},{"sector":11,"data":[638744006,51136502,2122320757,91488970,-352321096,1354771202,-1673473,1996482678,-461963294,-16222465,-51902858,-230258425,-2081139063,1962985086,-360170,2081455999,-134267643,1182861687,-2096627470,-1962871722,1452013638,-195675654,92212604,1995589177,75399942,-1958579200,1452013638,-195675654,92212604,1928480313,75399942,-1960151808,1452012102,-129594892,-1946528119,1183441990,-599356476,-1981917557,1451883590,-834237442,-1949546871,1183437382,-599358502,-465109203,956378785,57926726,-1946282263,1175130694,-385649388,1589903556,126559758,-993114487,-14282146,642779767,-1709803521,65535,-992983415,-1960440226,1183384135,1200301778,-733574904,172460582,651576968,-2012526710,-1977166010,1183321159,410451928,-1927907585,1343667782,-15436033,1183650422,-1202710834,726663169,1996443840,-394854426,1357018879,-186101680,-230258426,-1946921335,1452013638,-195675654,92030079,2012366393,-230230211,427032832,15091447,-1005423358,-2144989602,637669455,738740097,1207903745,-230230255,57999872,-990095895,-1960440226,731465735,653840834,-384743679,1183579202,-28963844,1458111349,-129567230,-10980289,-1711016906,203,-1966835969,-466945978,-1325385691,736678659,-1957674798,119928902,-1706016768,65535,1022117512,-15960578,-1711016906,1788,-16640791,-1711016906,116,-1982052727,766565974,65824502,1589959750,-1978668278,1183368262,173982956,-1946401141]},{"sector":12,"data":[-1993933226,1468605959,173982722,639616038,604784522,1963015171,173982747,639616038,556931,1589907061,-867792114,-1962440410,501996102,638213828,-1960435772,1589912135,126428686,638213828,-1960435772,1589912903,1200170510,375309314,71797542,638475972,-1006352503,-1960438178,1589904967,1200170510,173982726,639616038,-1004714101,-1993994658,1589905479,2139104790,930349066,15091447,-163744508,1963255366,173982775,639616038,51136502,1589907572,532948490,206015014,20710180,1589906805,532948490,142574374,-1005751296,-1004139938,2139104799,74711066,48955824,19185706,638475972,-1005959288,-1977215394,1589906247,1200104974,375309323,206015014,638475972,-1005828216,-1977215394,1589907015,1200104974,375309325,256346662,638475972,638470024,1001415,2139104768,125108749,223313958,-1005589759,-2144989602,1963134335,1333798405,1589904141,2139104782,91554318,240091174,241091588,289916710,1190592512,1946222840,1333798422,-2128215536,19662919,15091447,637826306,-1005500417,-2144989602,1946159743,173982806,639616038,1736576,1589922165,1333798414,1589904400,532948490,206015014,20710180,1589907829,532948490,142574374,721712384,-1207702592,-768933887,-1961992508,126559944,731503243,-1177347135,-101253118,638475915,-166639871,1950414918,241091592,273645606,-129567224,-1006078848,-2144989602,-1978658737,-466949050,-443850914,1622621,1167087646,518818645]},{"sector":13,"data":[-326903666,-1705617568,65535,20725379,-2096663296,81470,379193204,-352321524,1040646123,19702017,20055609,922698871,-2053504108,-2097151989,83964422,60045055,-150989384,1342255654,35927807,16777114,1975520000,841909009,922682625,-1952840812,-385875959,922681873,-1768291436,-1996488695,1996426822,176724500,1183383552,525758,-1916123511,1183435846,-967406396,11945671,-1000422400,-1950071041,1191168638,637897418,1191118728,-1233222730,-1914274766,1183435846,-1269396302,13401731,28837245,721611520,-1203336768,11159239,-1404647680,1183514624,-1371108914,-1983101301,1996468294,-1438216924,45633558,-6664192,-1962934017,1177267782,-834238038,732972683,1183427654,-830569524,-1962574848,99339846,-137476469,-834237992,13401731,1183516028,-1962546228,-654848954,-2083764599,1946204286,-1982269691,1586220102,678952738,-1205438465,-11534333,1996469366,1354771378,-1957670832,1610558047,-1538881244,1342182328,16777114,106873856,185043238,-385649216,-1706032887,1084,-1935260023,2122557534,1232339108,-11485141,-6642570,-1006632705,-1993995682,1975520007,13494531,183409232,1183383552,-1135179334,-14524789,2013210743,243750,-1267269808,1387427583,-4557057,1996466294,710904742,-349937665,-1983894776,1183431750,-197722182,116431363,1183383552,-1034516032,-14387457,1996469366,-1133051982,-4557057,1996466294,-1069118042,1586188310,142081982,688003,1200293244]},{"sector":14,"data":[-1962349814,1200340574,1356396298,1342180792,16777114,340146944,1586172789,710904610,956305569,91567175,-352321096,1354771202,-1997046808,-29571002,1183535477,-1136260166,1589908084,1066083850,192518743,-1705574400,3015,66336511,768922,106873856,1463782182,758682,-6662400,-16776961,-2120608650,-2097151988,81470,1676215159,1041170177,20881665,-1962845207,1175173702,-1005030212,-1960441250,-1835378881,-2147483636,1962920062,630871814,-2147483647,1979697278,10873091,650141380,294787,1183454581,1357130440,-5736705,244360822,200685288,-998148928,-1960394658,1589904455,126428682,650141380,-2096478209,81982,1048774517,1946157378,65903111,-336920576,21104383,650141380,-16040053,-947190668,1589910507,1200301760,-934376958,-1054085846,-150983239,64523241,-1960394658,597315591,-2013265916,-466967994,-26032,-1073020928,-21493387,865751295,-2097151996,82494,251595126,1117847874,721611521,106874048,1463782182,821658,343342848,285594,-197722368,113285635,1048772608,1979711806,1041170185,20881665,-1070923029,-1592887669,117375276,364445996,65140480,507939824,-1994369397,39094532,-1994635637,1183515716,105154842,-1994897781,1183516740,172263702,-1961867637,1149833814,240421132,638213828,1149831051,310151440,-2000140662,127538244,-1207959539,166395905,-6635477,721420543,-2090901824,-443874579,-900899553,-1957363680,49054700]},{"sector":15,"data":[-16353537,-6683530,-1996488449,-1072955834,1996426869,74907398,16777114,-28931840,-1946270069,79846885,-326413056,1444867203,639131332,1962950531,310280198,-1207602176,48955393,1183432747,1975520238,543081491,276791334,-1207339774,-4521985,114485631,1183432747,-431584792,1212032,1183516788,441879320,1183517163,441879320,-1996485627,1451883078,310280444,-1005947648,-2094655394,1946159231,112645,-1070923029,-990493047,-1977157026,1589908295,1194862112,-2130021363,-536811962,-1813490047,543081476,289928742,641037315,605112202,1963015171,-94452714,407369254,-2127268863,1610671686,-353872255,-1003951360,-165217698,1963006023,-431587042,1451456512,334169576,653942468,18368502,1182861684,-2096889626,-1006573482,-2094654370,1946157695,310280242,-1005423616,-1960379810,-1023203513,1347601036,-335622168,408863751,105351974,639393476,1946306361,-431587062,1451311104,-1006592792,-165273506,1961890119,-94452684,407341606,1183379492,543081698,289901094,1178267684,-2145749790,1946215038,-431587060,1451335680,-352285464,-431586552,-396983552,-330905731,1589903361,2139104800,527695886,243236902,-1000442621,-1977157026,1006838791,-2096728831,1946220158,239531526,-1000377342,-1977157026,1006838791,-385649663,2122514716,57934070,-1962863639,1183385158,341755134,-1995994330,2122572870,1048379646,-28931248,-1957635849,723969094,-1706032569,921,-350986556,-94452693,604473894]},{"sector":16,"data":[1963015171,-159480914,-139954944,1073745478,1182900597,-2116026138,19458134,1589941739,-28931308,-1006139098,-1960438690,-462014153,1183517310,-1715065884,216730545,638869188,1177225099,179411428,16777114,-431619840,-2081925615,1946158206,341754893,637814411,-385595511,1183515514,1347590412,-1713092981,1589923922,1200301818,1347590406,1025178,-1706012160,4046,1183535186,1347590410,638869188,1385760651,-94452656,71797542,-1001368935,-1960438690,1385759815,265656912,1347551232,1039514,-1706012160,4206,-6664110,-1006632705,-1993993122,-1073019833,199820158,1204233731,-385875708,2122515202,192151568,15629955,28837236,721611520,273058240,639393476,1183385483,341755134,-1995994330,2122572870,259850494,-134330741,-28931624,38243110,-2082191831,1946161278,-465138861,1178329297,-1958117378,-1952842170,-101194674,1038763657,92143624,149571271,1342224384,-1957670247,1385818694,280205904,1174470656,-397012506,-135641461,1183442030,-364475420,-523041871,-1728051155,166086153,99346518,32130759,-465138944,2113816121,1476442142,1375732410,-465138864,-1711389141,-778416046,83886096,-763142144,-1206457591,45766656,-1957670400,1177288262,1347590628,16777114,-431619840,-991406575,-1960435618,1183384135,1975520254,8644867,638869188,-1996208245,2122572870,1416888336,-775804007,-465173512,2113816123,112711,-25755824,-1696303361,4474,1038894729,92143621]},{"sector":17,"data":[99370695,1342224384,-1957670247,1385819206,300194384,1174470656,-397012506,-135510389,1183442030,-330920988,1175034184,-397014554,738096779,12117110,1389505480,2096499536,-372864251,1183514837,-28955676,-1207907095,-11534236,1996425846,294754828,1183383552,6600948,-94452656,108527398,74972966,1155482,-129595136,112720,-361300144,1164954,-129595136,1080963,731466612,66638274,1178335302,-1203864076,-11534335,1996485750,302619384,1183383552,343532,1187448190,-1207958036,1385779200,-330921136,-1706012007,4671,300303873,1183574102,161040620,1443489350,6600936,-94452656,108527398,74972966,1185946,-129595136,-327745712,-1695910145,4846,-1191688567,1385789440,-129594544,2096383545,-196703480,-336050645,-129594618,-1712044501,-1617276846,16777234,1444013638,-293698584,-1957006080,1589905478,1194010136,2996482,-880025097,-936655988,-1980739959,12120670,1347590480,638869188,-996604021,-1960382370,-101244337,-991279479,-930409378,71797542,-262224743,627018534,1183448055,-1715403796,-157659054,16777234,1444013638,-360807448,-2096726271,2114055294,-431587063,1451476992,1183514856,-364496404,1178155636,-1206747414,1385763840,6600784,-361300144,-336824577,335591440,-1202695527,-11534236,1996483702,326408938,1385758720,326933072,1174470656,-397012506,638869188,-1996077173,1589961798,1200301600,-28931832,947175435,98846347,1178271894]}],[{"sector":1,"data":[-2130084354,19719238,31936128,738096779,12117110,1347590412,1342177720,75298315,116115083,736380555,-1202651578,585826314,721522872,-259267514,-1727266632,28856402,-167030784,-963967876,-963967765,-1202661129,-1706033132,3856,-1706012007,3997,300303873,1589962838,2139104800,1031012362,638869188,556928,1190605685,1963196430,239531551,-1004964604,-1977157026,-2013060089,-1073028538,20710516,2122519413,225771766,935671,-2145422076,-352131250,341754905,138906150,639655620,1946830648,-431587063,1451429888,1589903592,2139104800,276037643,638869188,622464,1317013109,434847974,638869188,-1006024822,942022750,158600007,15091329,-396983540,543081472,209682470,-1005554688,-2144988066,1962936959,-431063034,-1004934272,-1977215906,1589905991,1194862112,-2130086900,201385542,15226499,-1947842933,-1956714410,549608933,50340864,17588993,50331904,17896448,53314048,-16532224,50402816,17394945,50333184,17533697,50333440,17399553,50333696,17388289,50333952,-16619264,50404608,-15971584,50404864,16794369,50335488,-16326656,50405120,16813825,50335744,17526785,50336000,-15968768,50405632,17478145,50336256,17525249,50336512,17627904,51811328,17904128,54401024,17382145,50339072,17473280,51784960,16952577,50347008,16954113,50347264,17787136,54476288,16879873,50348032,16782337]},{"sector":2,"data":[50348288,16801793,50348544,17639169,50349312,17643777,50349568,16893185,50352384,17510656,53432576,16891137,50352640,17434368,53662464,16886785,50353152,17377280,51798528,17818368,54355712,17462528,1439232,0,-2081649835,1448548588,15222471,943620864,125108225,20594307,-1710787584,53,117435371,1048772922,1962934588,1044284167,125042689,55706,-1316096,-16695802,-1711041482,65535,-1980086647,1187508806,-385875724,2122514809,326434820,-1947050357,1451951686,240597256,1194919285,-2094959604,1962935422,22079747,-1947050357,1451951686,39270664,1072235380,1946630401,20506883,-2131599733,1979651199,14608643,15236739,922686581,-6683660,-1996488449,1451883590,-398014466,766509057,-151888245,1174606951,-27882500,-1980873079,1048834134,1962934592,1111393031,125042689,16777114,-1316096,-1006550522,-1960382882,1962281783,-339309820,2996242,653156036,-1962776585,-58800936,-1996387546,1589963334,1342121710,2139301386,931069962,637771937,1946437433,-295779312,74972966,16777114,1975520000,-295779088,71812902,-2094661632,259326015,-1963827573,-467004345,1448538251,-16361240,244378230,705199848,-1947709212,1975520007,-83959,-26032,1048772608,1979711810,1108279049,21143809,-1070919701,1586170859,276299762,16777114,-228685056,-1710065665,632,19664639,-1191105375,-503906283,-1980086781]},{"sector":3,"data":[1183578182,-330921486,16139975,-159481088,-1961067243,1191177310,-126448660,-1963440385,-16283644,-437520826,368199299,-1577826561,1178140972,-385649676,2122579580,158597352,66336511,16777114,-1808335104,-26109,849412096,738601729,343297,748758646,20095745,1929381181,839304966,-16775935,-1207725002,653721621,-11534030,-1711135690,65535,20856451,-16157184,-1593754098,48955710,1048821803,1979711802,974061321,20619521,-1070923029,1577058744,1575324511,503318210,1430622296,-1910575989,82609112,106859350,2013208459,74972934,-397361109,-259261042,-1710852353,65535,-2090940789,-443874579,-900899553,1478361090,-1957345904,-661774612,-16222465,28837494,1609060352,49120253,1562371467,313933,1167087646,518818645,-326903666,-11118824,1996425334,-26106,1183383552,2113004,-1070922377,-2096970519,80958,1048774517,1946157374,50043399,-336920576,20842239,20987523,-2096663296,82494,479856500,-352321536,1107754987,-197722367,59611651,-930414592,-1962922568,774305754,-1983380735,1586100302,-1707671558,70687235,-259325952,1187511947,-352321304,956664623,578153542,-16497153,1166672453,-1964758521,-316012979,-1992244949,922743366,-1600519270,-385875965,-947715601,-398000376,956379297,-915216314,-1280257,-960959370,-1202708991,1385758727,-26032,-1706033152,65535,1358710409,321178,-297367296,200300169,-13732414,-1711039946]},{"sector":4,"data":[998,66336511,257690,-327745792,16777114,1111393024,58130433,-16662295,-1593753074,-1192689342,-295779327,-1995994330,1191178822,-297336850,19793411,1979776317,-1707671781,67803651,1996423168,77372156,1996423168,81435388,-1460994048,956379297,1996568070,-1707671753,75930115,117374976,922681654,916521882,-754732799,922702048,546964004,184549378,-16353856,-352242162,-1707671623,4495875,-259325952,-1192462593,1385758728,-18352,1392508858,-26032,815857664,805764865,-1309111551,65524483,-330920962,1170670985,-956301054,66629,-2013188448,1183450693,105186034,1166592254,-1707671801,32414211,1183514624,772146162,872823553,-10062335,-1711016906,1234,32654987,-16698362,-1207700426,653721645,-919928524,922701905,-6684130,184549631,-14780992,-1962856434,103412294,1996423476,88185596,1996423168,88709884,-857145344,-197722114,10983939,-930414592,-1962922568,774305754,-1983380735,1586100302,-196687878,837484544,-362753,1996486774,-260636692,-387025153,1183383694,-262764050,242598411,19926783,703874699,-385798650,1183055548,1191128568,-230257676,1928611385,-59310137,348826,-59310336,75162,-197722368,31824387,1048772608,1979711810,1108279049,21143809,-1070923029,20856451,-16157184,-1593754098,48955710,1183563819,723053554,1044284352,175505409,20844287,-385794399,-1070858948,1593653225,49120095,1562371467]},{"sector":5,"data":[313933,-2081649835,-1000994068,1182991454,-1960443388,173982727,38242598,637820612,16793473,-1070922124,12773785,-1962260853,201657430,-129595136,-1946528119,1451951174,4326662,-1979955575,1183579734,172370936,-150983379,-336557096,-60898286,654067455,1589905290,-129564680,-1962440666,-1073000762,1589962613,138840842,638028070,280519,73319424,1699187494,1732709158,1182994293,1589932292,1204233738,-352321528,71729942,108461937,-1710983425,1636,638213828,-1006090359,1191117918,1065362948,116684032,-1710983425,65535,638213828,-1006221431,1191117918,1065362948,-990612224,-953808290,2631,19793663,-1962654069,-1956772266,180510181,-1873273344,-326412987,-2082959842,-11138324,1996425334,46307846,1183383552,2113016,-1070922377,-16720663,-1315243914,-956301309,64582,20463235,-2096663296,80446,-258341004,-352321530,973537259,1010729729,125108225,20856451,-1710787584,1801,117435371,1048772926,1962934592,1111393031,125042689,189082,-1316096,-16694778,244381814,-2013088024,-12782010,-466996876,61993099,922740435,647627674,50331651,75269104,-14123520,922682444,1754923930,-1979711481,-466946490,26536016,-2080618871,82494,251597942,1117847874,-15865087,-1711039946,855,-1070864917,20856451,-16157184,-1593754098,48955710,1048821803,1979711802,974061321,20619521,-1070923029,1593591435,-1962742397,1297948645]},{"sector":6,"data":[1426064586,-326898549,1183471128,-1947981308,105286384,-12128213,-1711041482,2045,-939899255,62534,1586175467,71731962,1981040440,343900171,-1962576641,340207814,368723587,-1577826561,1178140972,-2395404,-1711041482,2098,60438271,588698,-364476160,16008903,-1961170176,1183509086,105330692,-963966858,671500072,1182992199,1191119082,19964404,1928611385,-1707671586,153590275,922681344,177865716,-1996488701,1451883590,-263812610,-940419447,62534,1589911531,1065559792,-1978698496,-467008442,38222118,690357366,1182990967,1191128560,19833332,1928611385,-164777767,1174602854,-27882500,-1996477179,1451882054,-164777736,1174603366,-330921476,-1578215799,1317667118,736963076,2996673,-1054088713,-336312695,-161561582,653674239,1589905290,-330891284,-1962440666,1325397062,1975520244,775301604,-197722367,61446659,28835840,-443851264,311901,-2081649835,-2141844756,1979647102,-373282043,922681486,-1516633190,-1996488695,1183512134,-1310447100,65065731,1183446598,-2585606,2139292239,108986370,294787,922685054,-1097202790,-1207959543,1424687105,-1963303285,-467007929,122128976,-27006896,-369013,-26057,1183514624,806289398,806783745,-754732799,-1983773726,1183579718,-129594886,16533191,-58817792,-1951171320,1191180382,-25785352,-1963047169,-16283644,-437519290,1575324510,503317186,1430622296,-1910575989,2122340056,74841862,636207147]},{"sector":7,"data":[60438271,648090,-1948742912,-427751818,61931775,1090512595,-1707671806,169187843,28835840,-310157824,535137026,46812509,-1873273344,-326412987,-2082959842,922683116,798622618,-1996488697,1187445318,300613884,-1946526069,121177670,1182996084,1191053562,-62485764,104588330,-462290640,-244026,60438271,476058,-62486016,-310123478,535137026,46812509,83891200,-16497152,50406656,16867841,50331904,17048321,50333184,16878593,50333440,17284097,50333696,17298433,50333952,17087233,50335744,16875777,50336000,17316609,50336256,17356289,33559296,-16496384,50406656,17225473,50339072,17384961,50343424,17006081,50347008,17007617,50347264,17036801,50347776,17059329,50348800,17188865,50349568,17213953,50355968,17219329,24576,0,1960512339,35621658,14123225,74771722,48957320,-651556983,-1962877056,1541597983,-1864856381,-326412987,-2116514274,1442878188,308185943,2139103115,125110530,16777114,-1962531328,-16051586,898304116,17319158,870908788,712805123,118521475,1589910901,637194,1149945342,637602825,1962950531,-1946278910,-2014834082,-2094273537,1963528318,308185887,-1962896711,1944586822,-1958657537,1810369606,308186623,-1945477495,116067414,100826243,-1159134347,276726530,-2093845503,1963135102,23259395,34635395,-1070339979,1343387391,16777114,172264192,242532363]},{"sector":8,"data":[-1710590721,65535,-369473911,-605486865,41714433,-352160505,308186045,-1207958855,199753735,-3001345,-1705897354,197,-1710590721,212,-375159,-6679946,-16776961,-6679946,-1929379585,1586359886,678756338,-14256897,369172534,-11332015,-1073018787,1552643956,-148927732,271943,1183518324,-1669035538,-263812352,10388617,200427147,1175188550,-129627146,-1937025932,1859322012,-160508942,10390667,-738955565,1996486766,-227082478,-755969,1996486262,-25864,-1070399488,-15567105,-6620554,184549631,857109696,309788626,16554578,1996423168,-26094,1592328192,273074175,1996423170,27695634,-1070399488,10257545,10388617,1343387391,106138,-92864768,16777114,-6662400,855638271,288787913,1824427265,1444827391,-1705568687,65535,-6662378,1593835775,-1961730421,702775,-131608,261755510,-1962934271,45683294,571392,-369235480,1149960521,1958742794,77221937,1342177281,119194,308185856,855640761,-37164864,-1207958855,-1075314681,1405105149,29989456,1996423168,34052626,1996423168,28744210,1996423168,18323986,1996423168,-26104,-1924136960,1962929742,645201704,18888447,1996443926,108461832,-1995940353,1721433158,-1996488702,1552615510,-148927732,271943,1183518324,-1669035538,-263812352,10388617,637951684,187041675,187040327,187040839,1601504839,10257545,10388617,120730,-1916194048,-1929309898]},{"sector":9,"data":[1358916798,374429214,32283223,1461059584,127898,308185856,-402650439,-1070334702,1184518227,-16777214,1318720118,-1962934270,45683294,571392,-1946356248,-62485705,34635395,2089510261,642313002,1183385483,1200301810,-196703998,71797542,653674121,-1996077173,-1936983994,1859322012,-160508942,10390667,-738955565,1996486766,-227082478,-755969,1996486262,25336568,1183514624,-15143940,1962879092,276234022,-15960321,1996425846,108461832,1594383871,49120094,1562371467,969293,-269762509,1167120524,518818645,-1070344050,185097867,-1961397029,-1886699489,-1895104366,175374484,-16222465,-1610676618,-310181742,535137026,80366941,-1864856576,-326412987,1457032734,-4181161,1996426870,-6664180,184549631,994211008,1962938886,175570703,-1710721281,65535,762626059,16777114,47104,2139825013,-6662398,-486539009,-1948611048,105810928,2126831499,-1527514104,-26029,1183514624,-2090967290,-443874579,-900899553,-661913590,-1957345904,-661774612,1443163267,-2000669865,1996487494,209125134,64461392,-1073020928,104543348,326434834,33244870,-16091393,-325449610,184549379,-1961134912,66427640,309657600,126468147,-1711114241,65535,-26025,1988820992,1962281734,112729,940334788,58063686,101211844,1251627091,184549380,-1956940608,1354773496,-26026,1222836224,1358710409,263066,-1909071104,-1948808254,-1698679816,1134,394861685]},{"sector":10,"data":[1183567499,38242812,142001438,530904060,68852304,28311552,-91546901,-1694730497,1250,-1694730497,1148,75668055,-1070399488,-310157729,535137026,181030237,-1864856576,-326412987,1457032734,-1070334889,185366155,-1957333770,39619380,1041281,-620536460,-2146806133,1618217211,2131164032,-1961657266,-1898410754,449283008,16777114,314671872,179907051,50036736,146350452,142377728,991458563,-1005290287,62391934,-1070355712,1150004139,-1047811308,-997191189,-784660866,-779681155,-1962359165,1604645825,49120094,1562371467,576077,1443394699,309658,-1947671808,-1948610850,108971248,-1190504821,-784662518,-896859523,-201535189,868912036,1403712448,323738,172395264,1478409707,-1957345904,-661774612,-2095911805,1962938494,-339727612,105286490,-1995942261,1451881030,172395508,-1995680117,1451882054,239504376,-1946532215,1183387718,-1948742660,-297367289,16777114,-295793920,-14125057,1996433015,-18418,1392508858,-230257328,1602965526,408944426,-1695529335,65535,-2081405301,-443874579,-900899553,1478361100,-1957345904,-661774612,637951684,17334147,-14274187,1589906039,2013210122,-26110,1589903360,1200170506,106873858,175636262,638213828,-1710983169,65535,638213828,-16496759,1996426358,106873866,41418534,641204006,-2096865281,-443874579,-900899553,1835016,107872259,18153727,109576195,18219263,83362051,1114113,94437635]},{"sector":11,"data":[1179649,97059075,1245185,3997699,932446209,104595459,378798081,39190531,110428161,42402051,1376257,103153669,21233919,50003971,85852161,78512131,372047873,103350274,21233919,56229891,272433153,80216067,784596993,49479683,96796673,73597187,4521985,83755267,4653057,77529091,785711105,88932355,366542849,39714819,106692609,47841539,6356993,102039555,375521281,26148867,8061183,46465027,16580863,48300035,8192255,35848195,8257791,36241411,16646399,0,0,0,0,5,0,0,0,3932298,4980804,6029396,7077988,8388726,11206784,0,0,0,0,-65536,255,-1061158912,192,-2139095040,128,1077936128,64,0,0,1,0,0,-65536,255,0,0,5,-65536,255,65537,16842754,0,0,0,0,0,1140850688,1280332617,1711298881,1937010287,1835364096,7235938,1684957559,7567215,1819047278,1953656688,1852796416,101,0,0,0,0,0,0,0,0,0,0,0,0,0,1987208238,4607232,65535,18,131071,1329987587,777213006,5132102]},{"sector":12,"data":[327680,65538,0,0,0,-655359999,-538511672,-388175652,-154607642,154720496,388290800,538632166,655419612,655423176,538577208,388241188,154673178,-154654960,-388225264,-538566630,-655354076,-655357640,-655304464,-655304464,-655304464,655415536,655415536,655415536,655415536,655415536,655370000,655370000,655370000,-655350000,-655350000,-655350000,-655350000,1868965648,1768191086,114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,537001984,536870914,4194306,260046914,65537,65537,186845474,52691749,19727649,36176171,69796138,34801190,4325376,11075584,53018629,65546,52756495,589904,4784213,15269978,13172831,6619296,2687141,36241578,2162863,35979504,8978677,6422778,255,256,16777217,16777216,16777473,16777473,0,1,16777472,16777217,16777217,16777217,16777217,16777216,257,256,968294401,981678723,968309379,965687690,968309379,965687690,968309379,981678474,14979,0,1966080,1769238101,1684368500,0,0,0,0,7106675,1702100992,1677750381,1667855973,1929409381,1819242352,1392538213,1819242352]},{"sector":13,"data":[1697542757,25976,1919251317,1886584832,1701605231,1769406578,2003788910,1869480051,1701052416,1701013878,1677721715,1667855973,29541,1953656688,1879048307,1937011311,0,0,0,0,-1,196609,16711956,164,279886,136446413,9895,1867781,5120,262144,0,524316,4197985,25166112,26739080,5670,262333,1187250176,42201088,4325376,-1997793659,-1997799104,398008149,386789744,216539371,413397360,295838151,427815280,126755612,450163056,20128674,458944880,53420984,460386672,343811064,464580976,203892056,487649648,33826357,502133104,17505816,17625392,565714476,565834032,214245480,214364464,104669507,104788272,183181749,183234864,98706048,98824496,523903727,524022064,50406651,50524464,92218679,92336432,152118683,152236336,58861118,58978608,405939843,406057264,98904096,99021104,152774792,152891696,38742307,38793520,127019348,127070512,18295256,18411824,54666848,122814801,-2147352572,1,703397888,1048609,32769,-2147221504,2,647954432,-261095421,705593345,648151040,-261095423,705789954,-2147155968,1,705822720,-265289722,32769,-2147090432,1,648216576,6291460,706248705,0,1163089156,82,524289,1507345,2424863,3211306,1498613248,1296389203]},{"sector":14,"data":[1497713416,1380011842,1330447684,121983829,1347635524,89735500,1314213715,1329792068,1258704205,1162760773,1145504588,50397513,-16549690,171953411,-855441408,29690431,171953411,16908702,53674243,209595,587399464,1428620117,55947779,335762698,1456866133,56435203,1510159522,846398258,53367043,-1862062481,780665646,51042307,268634775,188678922,56683011,-1056743184,1637090144,56718083,-66887391,1637352243,56744963,-1090297347,429523809,52073219,1124270642,218563342,51177475,-989650919,1657078556,56865795,-16642541,121621763,-855441012,13436479,-670891771,132449031,58854403,1241743908,67043872,475085,1070400256,50387207,842793729,57563907,-16496887,138398979,-855437141,273680447,138398979,-855436920,285280319,-117243629,940180279,54008323,1879258970,933102388,56900867,-1979489176,1689322340,56942083,1073964309,1701512037,57003011,-1560058278,1733952358,20302083,1070400511,16777230,924582657,-855376111,71503423,239062275,-855440017,3391,222285059,-855438863,79498559,222285059,-855440134,86969663,222285059,-855439839,113773887,222285059,-855439041,95096127,222285059,-855439899,57088575,440388867,-855441408,90901823,222285059,-855438981,146672959,2130903309,1292043107,53377027,-1140627557,582484770,52541955,-2147277505,599917346,52722691,-1241308630,318767393,871039745,53648643]},{"sector":15,"data":[-1375522176,617939750,56654083,1124283583,1463747415,56046339,604198703,1650066274,56763395,553869927,1649869666,56762627,-15441308,390057219,-855441408,5642047,390057219,-855441267,28841791,390057219,-855440946,45029183,390057219,-855440626,55777087,390057219,-855440450,64886591,390057219,-855440369,81336127,390057219,-855440312,1343,54512899,-855438737,179110719,54512899,-855439677,184419135,54512899,-855438599,150078271,117637377,67044708,386088909,1070400258,51083779,1375944653,1070400258,50688259,-402440243,50398981,1912832917,-2068315260,59068675,-805075578,-2029255802,-855376119,1599,104844547,-855441321,8980031,88067331,-855440829,40371519,88067331,-855439998,42796351,54512899,-855440774,45417279,1761804546,775684963,-855376127,2879,-1241317118,-2059730091,-855376127,17368639,1644364034,1679491917,-855376127,326304319,-1509752571,1656423266,52159235,1174622052,67043623,605503437,16778755,-2014248191,-855376112,16259135,406834435,-855441105,59316287,406834435,-855441003,43128895,406834435,-855439363,51517503,406834435,-855439325,138876991,406834435,-855439253,143398975,406834435,-855440840,67508287,406834435,-855439151,145561663,406834435,5439488,-1627193087,67045512,-1022410803,1070400258,50331669,2115256269,1070400256,51125768,-603373619,1070400257,51849730]},{"sector":16,"data":[-2078916659,1070400256,17278989,1912996609,-855376127,89720895,-754777847,630129541,52545539,-687660862,1464795991,56071171,1761829414,67043938,1544110029,1070400267,117600007,853869313,52609795,872618751,464257819,55949571,-15968982,54512899,-855635199,124128319,155176192,-855636666,50136895,390057216,-855637726,3135,155176192,-855636361,94701887,155176192,-855635709,148834623,205507840,-855635993,9964095,-2130706165,1473511479,5755648,-637510718,1473577047,3631616,-1929355538,1620181088,22095360,1070399743,50459906,1322123265,5432576,-16690498,54512896,17104896,6521856,-335534092,954269795,20500736,1070399743,34842626,772931585,21810176,1070399743,18207490,1384382465,-855572735,350290495,318767361,16712972,-1526579251,1070399508,389900,352600013,1070399498,318220,-2130100275,65801,-16707070,138398976,16976714,1262592,1946178059,16711994,654917581,66054,-335539306,16711996,587808717,66312,-1996482333,296550456,-855572735,110823743,268435721,291766296,1275648,-1744824818,224067597,1186304,838862534,16712205,-687259699,1070399488,50653961,996737025,3693312,-16704116,205507840,16911273,5941504,-16688475,205507840,16844574,19415040,1070399743,67108873,926351361,3111168,1828721848,16712219,-1106821171,1070399490,50459399,642711553,2529792]},{"sector":17,"data":[-16699610,88067328,16974659,3503872,352342908,16713740,822624205,1070399491,988162,218251213,1070399500,620803,-284409907,1070399506,443912,2046967757,1070399510,33934600,1167851521,21357824,1070399743,50458888,1275133953,638464,-16686893,155176192,16845151,21998592,1070399743,16912665,203227137,-855572735,15206975,-754974427,1380712541,5938432,-1610589541,1571881044,5548032,-1191159109,1519845466,799488,-1258267977,1520631898,806656,973081697,208797708,807168,-469759004,209911906,803328,687869001,1661861900,783616,-100637947,1661075467,6492416,134220782,201916515,6490880,16802580,16712204,-1744224307,1070399495,18055688,1841299457,-855572735,175638847,-1392508667,-2091253670,777984,151027462,16722028,789921741,1070399491,25,2131836877,1070399508,18,370294733,1070399490,16,1130445,1070399488,294417,2031108045,1070399493,971793,-384745523,1070399503,27,-1475264563,1070399516,31259,2131902413,1070399489,76818,17973197,1070399489,1130769,1393639373,1070399514,243984,-2028912691,1070399496,461585,2047885261,1070399491,106767,1309622221,1070399488,374287,1863270349,1070399489,50203,1947156429,1070399494,435471,2014265293,1070399495,67855,1261517,1070399488,459535,873480141,1070399492,1239569,2115059661]}],[{"sector":1,"data":[1070399495,331280,-1827586099,1070399499,33842970,1379663873,51127296,1070399743,530454,-1592377395,1070399507,17904150,146931713,-855572733,337513535,205507840,-855631459,497617983,1543504129,82,76044776,108432130,-1962639733,-2096776674,1946159743,112645,-1070923029,-385871709,1156972675,2071273523,360054539,-167486325,1969228359,776271372,-161778560,1965044548,-129594027,1150111766,-1588584930,1344144208,384306832,1958742885,1183667762,726669048,-397389632,1149899734,1019225139,-2096663488,101438,1283459700,1283459119,199951407,112726,1354771280,-2088305944,4158,1686111349,2088992558,125042690,1459778815,-1946198552,1962281780,-8984317,-2018711357,1183515394,55616262,1064579,-2096728832,1946158206,473858900,141885445,-1710852353,65535,185104011,1443329270,-402360577,1049362206,300614876,185365899,1443329270,-402360577,-947650806,964622,85733111,81528323,-529152197,104087171,-16092160,-16370634,-404224906,1072219134,-1593506681,1178141794,-1996260090,1688274502,71710980,1183384445,207522564,271796214,-1014290315,503324165,175570768,-1962379521,1174604358,1183535110,71697160,-401698736,1996448479,-2043680756,1387814379,-1957683709,503647302,-1873797632,1662183438,-397361109,-1679290773,-129593979,1996443670,142016266,51005067,-1957689786,1174603846,244338692,-10314008,1183648886,-397404424,1996457463,-2053249012]},{"sector":2,"data":[-15966581,55752759,112720,-17962928,-1014663704,59169000,108432129,96083595,1946974009,860157532,-396987376,-1202289346,-397410298,1183398825,1958743036,808910607,-26107,1183514624,87073788,-11125621,-402277834,-11106903,721795638,-1041739584,1150113413,-397402594,1686144391,-396894417,-397013561,266896679,62412421,15224832,1793639301,-15790458,244321910,190729960,721778112,52160960,-1995028853,1183575622,-364476140,622478987,4046848,-2096728768,1946160766,578224094,-400525569,1183385460,1958743016,-63011890,91488257,-351905090,-396457201,85084043,-397410240,-259305335,-1351289333,-1705983957,65535,-1962130295,1149888582,407276292,-1994762613,1418276932,-465123534,1149894656,635710003,1183383568,-907520276,1975520057,23062787,607339658,1967144128,241077050,539905920,-550280064,1077103744,70468854,1207305845,192152627,-2146541941,-2147208369,-1962658996,1200295518,-297402074,19416971,1187506758,-167771674,1975530308,540967723,58011653,-956232471,2116,-281844608,-1058781497,944031232,98214144,-939768183,58950,1443583,607339658,1971338432,-327253226,-955943680,536929350,-1996113247,1187511366,-1979710746,-1071369404,259375164,-13089594,-1996250463,1187511366,-1962933274,1141498950,910477106,2122514432,880082956,31882883,1586179700,474450920,1948141323,343408419,1998723,1200293748,-337998820,-396457207,-1961080949]},{"sector":3,"data":[1347558999,16777114,205949184,-1995684213,1183528004,977570058,-1947705717,1468730439,1011124494,-2093067127,1946216062,843380282,-1592364028,1178141794,-1996260078,1688277574,273037572,1183384445,507809040,1996443678,-361299986,65947275,-1957686714,1174661702,244338704,1449141992,1342210488,-1924087765,1343620678,186706920,1443722688,1342177720,-1914171760,-32773884,31882883,1586177141,41913102,125173515,-352159863,-2093118711,-109772739,80164233,1183514624,944015630,2122527467,376767206,949891,1996426100,411101198,-348633975,944031493,-2091515904,1946217598,-62485755,-626981909,-1070903291,-2093029296,15105667,1183657588,-1924131086,1344151108,-504885616,-2085071265,-1070903296,-230257328,1508397078,642026784,1183666206,-1873799438,1606608910,112726,1354771280,369510029,540731472,15105667,-1202314892,726663173,1149980864,675556140,-796143061,1284227115,642525994,1347600779,-2095049752,1946217598,860651583,-431584496,292864011,1946157373,146745,54341236,-348228608,862224419,343835631,-2096204796,1946293374,28857864,-118992896,1996445313,112660,2156624,468436619,164423766,1586231019,860354062,1458402320,-350768408,384325351,-1008604286,25359848,141986563,184974987,-385649153,-947191533,3997732,-1959823873,8332743,-134330743,1946190023,179979,-1996601718,720058692,1090406134,1317078388,-1962966786,1149828678,114488,1048777963]},{"sector":4,"data":[1946157502,33522445,-8190604,-1090292477,-947191806,1946157373,146724,54334836,-1961200640,860354271,-385649376,46071955,-2087458048,16782910,29295477,860157440,-385649648,-11140973,-402269642,-6651471,-2097151745,762643199,6569603,1443394816,1342178232,-2139022616,-1710214324,1746,158646283,1342177720,450458,-1801824768,-352321529,67076948,1048779637,1962934718,944031287,860651520,28857872,-6664192,-352321281,62412340,-722972672,860651648,1149916688,-11495368,244319350,-351878168,-1103199464,108265473,1181383,1465253889,-956299288,4614,-806829312,-1962802303,2123040374,244340484,190511592,-165251648,1963995972,860223008,1444574224,98187007,-1702822680,1535,271797376,28858198,-1410838528,-689388672,-1962734719,2123041398,140352008,-1073020928,28838260,1771720704,-2147483640,1458516836,1342177720,-2139077912,-1978649780,1183332421,108954620,-1977518848,1183332420,-166809362,100920942,1183384796,-396996372,1183416438,1996445418,-2138052372,1861619376,-603585540,-96040700,1541953360,-263812736,384976525,507874640,244338718,1465731048,-386238721,1183481957,944015612,-92864682,-386894081,2122547320,779419654,-1971315736,1166601798,1150113592,-397402594,2117697583,1460106730,1458337535,-11073557,1996483702,-2142574358,2143414359,-396945685,-1705572827,65535,-62485930,-1159180136,2145052799,29244985,914949237,-1923743298]},{"sector":5,"data":[1343681094,1451223784,1451212008,1342177720,-2088795160,1962935934,28858120,1978159104,1376175999,-1023410176,8439016,-1172403456,172460805,-2135430973,1988821251,244340230,190357480,721778112,9759168,16402119,-1930930688,860129792,-2143502300,-397015435,1676347398,607339658,1967144128,233330182,-950736107,129606,6567481,-1202321291,-397393917,1157005051,863244339,540230902,1486491509,1442840584,1342177720,-343970072,-6662618,-1711275777,65535,16777114,1958742784,1354771218,16777114,1443425024,98187007,1451178216,-1873756117,4384782,16416387,251594612,468189206,112651,2143873219,512426241,1200293306,-28931828,494190603,-1946263925,1194918982,1392932152,820514448,-27358209,1183385483,1975520254,-622279709,-1962800257,1686112374,-396955853,-396984688,-397014932,909713155,108331098,5899975,909705216,91553830,16777114,1177958656,-955878137,476678,-30000896,-955878139,392710,1354771200,1291446358,2122516203,494146284,-1928563457,1343679046,1354771286,1358954424,1342177720,-1108865392,1975520085,108954589,1443722496,1342177976,1347469355,466282576,8566870,1354771280,-1108848560,674642203,-955878144,10246,41714432,-16223232,-6684044,-1979711233,-1071369404,477380668,3439747,1962870900,160471604,2088960000,141819922,-1710066433,65535,2110449750,1080451,1962870900,-26096,1153826816,-397017031,1153892826]},{"sector":6,"data":[-2130706428,1946573566,2028492292,-555170999,-1962868098,213386870,1256738816,-1980200119,-16053636,1689782644,172329216,-1962654327,2011743175,-16645506,1996424822,-26108,-259325952,359986699,1326731,91553547,1963226425,-339244284,-348288250,-1010816017,8293608,138840836,1946830347,209095545,-401698730,1853118060,184974475,-1206159873,-397410289,-1073002276,1149852788,-17265914,898302789,1223,1174285291,-1003123965,1625819206,-1959562240,1074039605,-1073496061,1308508224,1460603907,1220143184,-1962719746,1958742837,175570718,-1710721281,65535,-16479408,21948420,28837007,106859264,-33399671,-389872819,50363909,-401973621,276037912,-402241852,1149960203,855798786,55443136,197364931,101676251,166632016,-1073020928,20776053,210486016,65750598,990168707,-1007034364,8242408,173968131,1946212328,105301081,1962920680,55442951,1256964147,-6671105,-16776961,495649396,268371851,1308496245,686315267,175541064,1149878323,-1926829306,898303060,-2029996056,82574550,-96171603,-126488005,-360508117,55442948,1034881,-387427753,-1933354937,1430622424,-1910575989,15499736,173968129,1946183656,1359776552,-1929096053,-65890,1393953398,1393971794,1342243000,16777114,106888960,80118617,1308548578,49120003,1562371467,445005,8180200,73304833,1946167272,-1928557788,1065419356,292716544,-2130690175,1397820279,1342326667,1531414248]},{"sector":7,"data":[79922009,1308550370,-1873558781,1423108110,2139819892,1962871558,54918664,-16042613,871773123,-523123776,-268181295,12797510,454233095,555026944,1195062319,1967283024,1852798068,1768178944,1951596660,1667855457,1936280576,2020557428,1919111936,1114401903,805335649,1397310464,1497451600,1296387840,5130562,707668572,1129864192,607012680,1392518180,1163154265,1769406541,2003788910,1868759155,1936879468,1852794368,1493201780,1920287488,1114795891,1802398060,1702125906,1635209984,1970228592,1967285619,1852798068,1866727539,1701601909,1667853379,1701860203,1392534629,1819243107,1918984812,1667318272,1869768555,6581877,1769235265,1767138678,6646900,1667329609,1702259060,1819568468,1699545189,1459647854,1868852841,1767309431,2003788910,1835102790,1699545189,1700033902,1459647608,1868852841,2019906679,1767112820,1415933044,7632997,8107240,108432129,309655051,-1070381834,1156975733,108273715,-26026,-389873664,16808853,-167348597,1975530308,860157446,-1978698720,-1071369404,225804348,271795446,727058292,-1930932032,1793639290,-1962737541,2123041398,-396929528,1048803865,1962934296,1996445195,-26106,116064256,-26026,-389873664,33585985,1443395211,1342183608,1342177720,1347469355,-890761584,862224407,862224607,62412527,-1628942336,860651641,862224400,105286367,1446528136,-1022989848,8062184,141986562,1304662,108461910,16777114,108954368]},{"sector":8,"data":[-402426624,-389872142,16808610,1443133067,1342183608,1347469355,-401698736,1156978545,108380211,540232832,1686115307,-1202262221,726663177,1347440832,1390939792,-1103742697,-2096139007,4670,-1202321291,-397410300,-1202292447,-397410303,-396986087,-397016268,-389872118,16808585,1443264139,1911033488,1975520082,-339727594,860157465,-151620592,1965044548,-1561831696,200313614,-1192593930,-389873663,33847897,-1962379637,-1873410434,1379854350,91602955,-1159086037,860157440,-1207602160,48955393,1183432747,860130042,-2143502300,-2098658444,1962871552,112645,-1070923029,1962559035,1962871646,98214171,-1577564535,1183385018,83854332,-1202316684,-397410303,283867275,-1996113247,-626919354,-62486267,12249174,540232832,-281844608,141885195,271797376,-550280064,-126419114,1450761448,737965823,-169324352,1962871672,870864435,187558656,959018495,1962959926,62412323,954749056,-1978012808,-1071369404,125124668,-1796712618,1443490576,112727,-162469808,-1007008117,7946728,74877697,271797376,1064579,-1962314752,1207305308,108298250,16640086,1153893867,1442840596,1342179768,1342177720,1347469355,-286781808,-1410836971,73173764,-2146809866,-1142422667,317216375,73173880,-2146809866,-941096075,-404176009,-1962867848,-397015946,1552678457,172460548,-125049814,8447873,-1947728523,1443162999,192400360,-1593149953,1183383568,1975520254,1962890762,18343956,1459504777]},{"sector":9,"data":[-1962920216,-62486268,-1170800810,2012211205,108330763,16678531,1996427380,507809276,-25755824,-386869528,909735774,141885540,-2147239850,2001332304,2020665539,1988821249,-1172403452,209685253,2105743851,225706004,-1709935105,498,1328583,1962818304,188582662,-1008503297,7881192,74877697,271795446,-11138443,-402269642,82540417,-12654506,2015684803,1988821254,574917380,-1994505173,1150022726,541338404,-1946401143,119873092,-28931840,-1988686104,-13896122,-28931248,1358185987,-1694730497,65535,-15992693,922698612,-1705573454,4277,200820361,-13470528,-16534986,-1070858634,-193527984,-231681,1962931830,544538398,-1174396744,1347551436,16777114,-1305018624,-126419197,16777114,343705856,-386500865,-389843240,33716118,-2096728437,1946158206,-1305018605,74907395,1126810,-28931840,91602955,-352321096,1987962968,-1705510773,65535,1541953111,1962891126,544538398,723666059,-1957683644,1143678020,922701856,1149961138,468254,1354771280,-1174396744,1347551436,1091994,-1305018624,-25755901,1080474,-6662400,1459618047,729177064,401130432,-1962868617,909706358,141885538,-1873756117,490334222,76428857,244319605,-1015869464,41367784,175540995,-1962508661,81351,1586174325,206015240,-1946401143,-15991682,92998004,201082505,200308160,-1962380033,-1996191483,-1962153163,1200293982,-1996191476,1586170999,172490504,1995434179]},{"sector":10,"data":[1988821506,108956424,-351484029,1949645062,188582662,200701439,-1962248961,-1962571516,1342113374,-2081897718,-1962803082,-1202321802,-11534331,1149961334,675556140,-796143061,1284227115,642525994,1347600779,1055395472,-1696021741,-1962737546,1178143302,1342665736,-402229505,28901312,-2098674944,-1962801034,1207306334,208977971,607340426,1954561216,17819907,50757251,28837234,721611520,-129594944,2122577451,57999878,-2097150786,1963198078,245251,16285315,512427636,82511322,96083595,-385056885,92995763,-1946401143,1183397957,-96040458,443858955,1586171883,947880950,-1961921536,1183397959,-161575946,-1070381066,1569450101,172488196,964392196,1987315838,16416387,-167050123,-167042443,28837237,721611520,139365312,972048009,91617870,-352321096,1002449666,1249243206,16154243,-167050123,2122519925,259326982,-151626101,1948267335,860354054,-2094304248,1946220670,793114118,-2095090624,1962997886,860222982,1460892688,1342183608,737703679,1996443840,-401698810,2123043361,1962871804,-12130045,393541131,-1157627976,1347616767,721966731,1388743616,1354771280,-1016131864,7690472,175540995,271533302,1183521909,138808070,1150095476,-11526634,1996425334,-401698810,1283477792,1283461167,1283461166,-389865425,33781029,1586230827,209685256,2117667307,-1962380282,188582903,-1946978817,115917766,-1593835403,1386414164,1354771200,-1023037208,7647720,373195520]},{"sector":11,"data":[1232404736,100548227,722367744,-1202696000,-397410303,-22849362,-29457659,678690821,100546303,266866320,1648264185,410320896,100546303,1342179000,1342177720,-11485141,-1878655434,289925134,-351928671,-1010816254,7625192,74877697,-352160629,862224394,-337094945,187993087,-1007520266,7618024,74877697,-352160629,367547918,860651773,-404204000,187993087,-1007782410,108273128,209095429,762705419,-1988944152,-1202654138,1344144710,62797567,16777114,-193528064,-1200408600,726663175,28856512,244338688,-352030488,-1946211518,1175128134,-1927056374,1343682630,-16091393,1150093430,-1873797602,1356326926,527745035,385369741,104851536,1465317515,-16353537,2112357494,1962871666,-593864954,-1023410156,74704104,209095428,1443528331,184623848,-385649216,-16056038,2088969333,141951246,-1710328577,5496,411383,-385649536,1153892512,-2147483378,-369414300,2088960153,175440142,411383,-385649280,2088960137,225771790,505300109,97249360,-351386487,243041048,722629888,1347440832,-26032,1149829120,795115534,242548731,1460565247,411383,-1207601792,65732610,1342178488,1404058,1183401984,1958743034,507809063,-2098704354,-129595131,-15829761,-1202712972,-1706033151,6027,-96040632,-1694992641,5510,16416387,1962872181,380279310,1153892352,-2097151986,1946159230,793542660,105313796,-2096466942,1946160764,793542660,243041032,-955878400]},{"sector":12,"data":[17124870,105313792,-164793343,1946420806,860157446,-148802302,-2147482042,1317012597,1955267334,1443752706,142016343,-402229505,881553736,-277481973,1920002243,1988821248,860157444,-166431728,1948267332,73173769,1474435,28837237,721611520,-1897348160,-1962863246,1156974198,58003502,-2147356439,1458515556,1450261480,1342183096,-1993907992,1686173254,1183706927,-1924131102,1344153156,1172835984,507809102,1150111774,-1873797610,1312221198,1354771286,-1959994648,1284236870,642525994,735465097,-498717759,-1948760439,1284237382,676080428,737824393,-465163327,-1948236151,1183384644,-153580580,1946290759,-662797562,-1961921280,1207360606,359923978,14712451,1996427124,393452278,-397017088,854159557,381179393,-756527104,-565802714,-1989105944,-11478458,1704648310,-1962934249,1143726662,-62486234,736380555,1183393860,-364474888,1150111766,-1873797594,1301997582,384452237,-59310256,-1862764801,1310058510,384452237,-364475056,1183666198,-1873799454,1314383886,384452237,-364475056,1186484246,-1873797627,1313073166,-1948616961,1177283142,1183535356,-129618964,-297366704,1357530667,737166987,-11473850,1996479094,-327745558,-1174396744,1347551436,1123738,-629735680,68826879,16777114,-629735680,-9425944,-929374602,-1929379817,1343676998,-1962712856,1996445688,28858358,-1231400960,1459617815,723928203,-1957633466,1177233476,-6663964,-1929379585,1344153156,-1996278552,1347482694]},{"sector":13,"data":[309335,403020368,-11141120,28898422,-397389824,-1705545884,6096,-1695254785,6104,-1695123713,6155,1354771286,1342177720,-160456984,1975530308,507809058,-353873890,-488702,-16437194,1459957814,1342178488,16777114,77223680,-1023410160,7376104,108461825,1342177720,-1023409688,7354856,108432130,1865869398,271533302,1686115188,1150152495,-1924129250,1344149060,1172835984,778338380,860130031,1077723172,727058292,-588754752,75399978,1443656704,-1202667477,1347420161,1450098664,1342177720,1863444560,294531,1955272309,1443752706,-1202667477,-397410303,881553147,-277481973,1875437763,1988821248,62412292,-1070903296,676629328,1378239627,-401698736,961940625,1963048502,178181,-1070923029,-115939248,1872292035,1988821761,140413702,-351502453,1962818317,1996445447,-12261372,-16040565,-389812363,50556857,17450742,-13951372,81540747,-2091512341,1996426950,108461832,-1946173720,104548295,-360970980,34227958,922684788,1996424098,108461832,-151018776,1946421830,-1170800883,142016261,-402229505,-389808241,33582886,-2096728437,1946158206,860651526,-2147161328,1458516836,1450054632,-397361109,-389845520,17067778,-2096859509,340030,922683764,798623024,-1929379814,1343682630,503662264,1962281808,642026757,1186464747,-1873797627,1272965134,385369741,452631120,815988736,48808709,-1962735761,-1873409418,1189799950,91602955,-504774613]},{"sector":14,"data":[793048576,-2146667512,1459040100,1347469355,-999439640,-953809314,3655,-401698730,-125100505,637951684,2088976265,91488526,-352321096,-994039038,-1993996706,-1073017785,-1705557644,4336,949379,727125621,1347440832,-26032,669712384,1460565247,16777114,1962889216,112654,357145168,-11075584,-879096204,-16777194,-1281749388,-956301292,3652,105286487,84432523,1347551236,16777114,-1909049088,-1961528060,1207305308,108355594,-26025,-1873346560,1795549198,637951684,149447,793048576,1444508676,-401698729,-1073020685,28837237,721611520,106874048,38242598,-80780160,-389822581,50490889,1443526283,-236450160,1958742853,106873913,960465702,1963232822,73173785,1611286518,-1202255243,-1705967617,65535,-401698729,1589930708,2139301382,108265484,288856663,-396951552,-389845828,33844602,385369741,108461904,-1878755585,1234626574,385369741,-26032,-389873664,67464605,818819,1183516277,205949194,-1928694017,1343682118,82316944,209125190,-16091393,1996425334,-163148538,244338710,-1023409688,91056360,176063238,-14912760,431493238,1996443648,173443852,1183563819,-1873784306,166193166,-16103799,1996426358,108461832,-1878362369,1257170958,1831856323,-1902050814,138819844,1996425333,-401698810,1996450279,1357832,108461904,1347469355,-1427632496,-62486263,956599969,141887558,-1878624513,1777788942,-1006877045,40693992]},{"sector":15,"data":[173968131,-1992800373,1207368774,158629939,91602955,1183433611,-59310084,1342183864,-1962379521,-1070922154,1376405131,-401698736,-389871267,67267769,-1878231297,1151526926,58048523,-2097107479,1962937470,12708099,425603,1586187380,793245196,-2143456248,1408708455,1347469355,-1955894552,2139294814,678822158,637911947,-397402624,1183448753,207522812,-15828993,-1202712969,-1706033151,6686,-1694730497,6507,-401836289,1586178329,243237644,-2091355135,1946160767,242745155,-16091393,-6682506,-16776961,1996425846,175570696,-1962379521,637865030,-1873797632,1222895630,-16091393,1586169974,642222860,-1957635849,-654890937,-401698736,501958771,-16091393,244320374,726120936,-15602752,1996426358,142016266,1625820816,112708,1809311939,1988821248,860157446,-1962576704,48969796,-389824469,16804734,-1979418997,-1071369404,91570236,-348633973,-1010816254,7038440,74877697,1955267563,860129848,1077723172,-963906444,1800202435,1988821248,862224388,163075807,28856320,-1070903296,-370651056,1256740359,736674666,-1962868117,2089485430,163075640,-1070903296,-397389744,-397015092,1183383745,1958743036,-1948742904,-351827708,-1996190971,-397016507,-1073020110,1173759348,108331571,70468854,-396948620,727149036,-907521856,1150113641,-1202708962,1347420161,-1007242776,7016680,141986563,-2096726389,1946159742,173968237,17727363,2013203062,-1705552370,6047]},{"sector":16,"data":[-1962254709,1273692743,84559499,1344143390,244340566,-1958261016,637864518,1448091136,-401698729,1996441407,-396929526,-963942047,443860747,-1207273729,726663171,1586188480,676825866,1378240395,-401698736,1586169665,-1995994358,-1073018298,-389829003,16935502,-1962647925,1972058239,1978874626,-339727603,956599055,108266566,-167037813,-963906699,1781065923,1988822536,947686158,52839819,1183386694,138806262,-1946532215,1174612037,-129595126,-1996077565,-396886970,2122541316,57999364,1442879209,184691176,-385649216,1187446923,1442840816,1342177976,-1994452760,-1070858682,-87037872,-163148458,283660310,-1192733079,244340328,-1994821656,-1072958394,2122516084,292880638,-260636841,1342177720,1342178232,-345476120,-28931293,1357923977,-193527984,1708442,79187968,1083854848,184549404,1037139136,-864092159,-386631937,2122541240,141820158,-1694599425,8011,1354771287,1449676776,-335964440,507809050,1183666206,-1873799434,1165944846,1753475158,1354771286,-1016582168,74007016,74877697,-401698730,-125043297,-18880426,201082505,1466528960,1459233000,1342183096,-1994501912,-1072955834,922685300,1218053424,-1962934244,816053830,1150113285,-397402594,1686136899,1586224943,-1996190724,38112007,1971913865,860157442,1445295120,401084048,1975520066,860157467,1460761604,1449646056,1466416872,-397361109,82536368,1742465110,1757210819,1988821505,860157446,-1207602160,48955393]},{"sector":17,"data":[1178320939,-2090765308,1946289278,862224475,75400175,-2147191808,-1961872564,-16041860,1173767796,1081417779,271795702,-397002124,2122540928,108331268,1737222230,-1923674389,1344151108,1342177720,-197072816,1354771286,-161004568,1946301253,1441289995,-1070901401,1731389520,-126228394,1753475267,1988821248,244340230,188771304,-1977715520,-1071369404,108347452,-18814890,1149898731,1019225139,1443263872,2078805648,1390986209,-1962540952,-1873407882,1077602318,930398219,607339658,1967144128,1996445205,209125134,-16091393,1996425334,-38148090,1149901291,1019225139,1443919232,-15829249,1996426358,142016266,-1008695320,6800872,74877697,1149902059,1019225139,-166234816,1947218756,860157446,721712160,-1962218560,-167036812,28893301,-661863680,-1957345904,-661774612,1024214667,1098186784,-1559869813,-1557266348,512449963,1195050548,773027084,1571624587,125157947,-1960394098,-1996488682,1347423319,-397361101,-6671097,-16776961,-6682506,-402652929,-1763099336,1064192,1183578229,5546758,1571529518,-661780706,244039731,149094428,1232528201,283837155,1376684838,644670208,5508667,1642816884,-1057075194,-26032,-1070399488,-26032,-1962475520,1358968334,1359349987,16777114,251594496,512426012,-11337698,-16768970,-16768458,-16767434,-2097142730,-6669629,-402652929,109969598,-14286822,-1207958986,-1705967617,8526,1359405913,16777114,-2097041408,-443874579]}],[{"sector":1,"data":[-900899553,28377098,-919400725,-2093556597,1979649151,79227139,1167120524,518818645,1183570062,165892110,170138,-339135744,-1873784818,1051060238,-399215528,1348011267,922693200,-13739349,777693494,1400780543,2083979054,142016339,-16353537,1996425846,-2065149684,238770492,57999484,-2097119581,-443874579,-900899553,-661913590,-1957345904,-661774612,-1962387829,512624198,199753812,49120000,1562371467,313933,1851011,-1559530238,378077220,251592742,-1899823076,1048782528,1946288156,2080783120,638612736,989862049,1962966534,2080818950,-1023410176,1167120524,518818645,110024846,-1943142316,861777670,104345280,326458794,939931942,638350592,919238,1452953601,-2097151967,-443874579,-884122337,132892979,28400216,-1940893103,1430622424,-1910575989,-11053352,244321398,1966978792,11987203,2122578315,57999368,-1593291009,-259325868,872378600,-1432211776,650546781,1442855075,-15698177,1996426870,175570700,-16222465,-401734026,-1073005604,1996446069,175570700,-402098433,-1073019284,-1964455563,-6664192,1476395263,956331496,1946504710,1030162,1946181864,209125130,185725928,-1197181504,1323827475,-16092160,166202486,1975520051,1962871698,5236785,401083984,1005082879,780200704,648560259,1343058944,-15698177,-13758858,1478927902,175439627,638475972,889341835,1583284242,-1962742397,1297948645,-1962930998,1451952718,56879368,560306768,1451819008]},{"sector":2,"data":[-16192752,-6680458,-1912602369,916661958,-661863680,-1957345904,-661774612,2126796630,650130182,-2130555509,1946222841,33128725,-2129693695,1946223865,100237577,-352095231,642879614,637826559,503870975,1342210744,372703006,898311684,620950504,101384208,-1706033102,65535,1952038923,138841680,2030109370,-2133264635,-511639102,-1073020924,-1960439180,-478084515,-75366405,74711296,-269951,-930361077,68558475,1448235347,-952631470,-1912602617,-14284730,-14284683,-401734027,1499135316,-498908325,1593946335,49120094,1562371467,313933,1167120524,518818645,-980232050,126551646,-2130554997,1946227705,419004682,184841217,1345025216,74973009,-16222209,-108984713,108265752,18086273,1334513013,105843464,1610548596,-1912083706,-401697854,-310181805,535137026,80366941,-1864856576,-326412987,-1948742114,-1873605026,1001056270,-11330188,1996426358,142016266,-1962510593,1183398471,-1928915442,-2019946914,-2097151967,-443874579,-900899553,240648206,920423248,504127371,1048784391,1946166956,-594849006,1342620547,777197062,648683263,-2091165689,65682115,-1946157019,-594833192,207588150,1979710339,-372536571,-1064435410,1602954835,1960512260,2139170312,1951092226,-1715457276,-1960420413,637555726,1946963771,1048784552,1946166956,-594849006,1342620547,777197062,648683263,-396666873,83911437,5521035,-1911660917,480316511,1958742784,1946303499,590060039,-286588928]},{"sector":3,"data":[-1559345525,1183514654,2138892,-1559607669,1183514658,2401030,-1559738741,922681382,-1909587954,643291142,8140543,2117533478,440305408,62412544,470189824,922701824,-4718590,-1667608321,-16777183,-1711275466,65535,2468506,473858816,-193658624,-28262349,-140881728,-1895825371,-1895818234,771758598,1473775246,2114359078,110044672,190316668,-2096073536,3646,922683765,10092546,-1593835482,378208292,-389873626,50356813,-16359797,-13235594,-13236617,-13237129,-13237641,142508855,235304192,-335853592,-957870588,-1023299330,65535,6429928,106859781,2117533486,922693158,1397827196,1944587920,50011,0,0,0,0,-286785536,855834721,1586207168,-294134,109971829,-1014824876,-2096108749,611517947,-620504317,647676801,1183516430,139889414,126297850,39290662,1977289723,113716743,88017,1419875267,33260288,1200292726,-1957444852,126551132,1515963227,995317849,990607306,990868161,202078146,-1036270847,-1053034126,-1070336649,1532582595,-486428590,1959475990,33129234,-620034187,-1070397068,240341443,188510696,-1909537856,861776646,1048782528,1963065372,-876544510,39911912,1781959427,1979058944,108461922,-1207404801,-397408710,-259315576,1023818913,292880382,678739979,1946157373,1711720231,-352321280,71732026,1946288445,33832202,121439604,-1207339774,-1873805296,1004005390,468448811,6686407]},{"sector":4,"data":[1552613376,407341828,201213577,1342731456,101201663,-1990204952,184572982,-16026122,-16381898,-402257866,-963944498,1618798787,1554055424,71710976,113707381,92,-1019891480,39889128,141986562,-401698730,882981003,1778792710,-2096335616,130110,244319605,188470760,-2096466442,27198,2129134452,1745274677,-1996488704,184576566,-1962511114,1755515972,105286400,-1023383901,241196264,376867593,621954699,1183383553,306613242,-1996488155,1183578182,271634,1457800841,-401312001,2122538849,125042936,1342177720,-2090906136,1946215550,1996445203,175570700,-16222465,1593771638,16050446,209125206,-16091393,1996425334,240582406,-2097094167,1946220670,-431583929,-1070903274,33601616,34191440,112720,-401698736,-1072956938,2122530933,494141690,384190093,1354771280,1342243000,1342244792,1342177720,-739766640,1975520249,-401698787,-1175717486,384190093,1354771280,244338768,200916456,-385649216,2123038855,318735336,1983479668,-1962248730,-754404921,1946303720,16744716,-2126808063,2130774015,-394854603,-1149185,244378742,-1996170264,2122573894,242483428,1996443734,-294191126,-370379009,-11075780,1996482678,-294191126,-370379009,1996488511,17086696,17283152,-40179632,343261195,384190093,-401698736,1183709768,-1873799450,-84350962,6960697,384369525,-873937921,-1929178274,1343679046,-16353537,1256719478,1975520047,-373282043,1183515702,-163149334]},{"sector":5,"data":[1912668221,16858389,-706149513,17054978,87885938,-385648895,2122384072,1963065590,-330921202,-1947842935,1183444550,-1911297048,637737478,643475873,1521161867,-1981397367,1996482646,-428408856,-387287297,-259261094,662042123,52037262,-1947842933,-1557731242,-1993975127,-1923437802,1343679046,-953192984,31750,112640,1443083753,5912319,201126632,-2067264,-1075311500,1958742837,-360808183,-814415360,1962916587,899409932,259375115,8390343,113704960,124,-1895873815,-1962731002,1452009030,-1448925464,378087002,1183537835,33635830,71110004,1023964162,57934343,-1962895127,1207305308,175441930,6700675,-385649663,1218510981,1242991367,-229230329,91371383,2012235321,-1204405968,-1205177085,1344144338,-1542401,244377206,188356584,-1592363840,1178141614,-2096204298,721614406,122332096,-351844189,-163148990,-1962692957,1452011590,1577452530,13796096,-1996011357,-1996010986,-1207715786,1344144338,770066059,-1957691388,1212737606,-431584432,1342178309,1088964235,244338752,-1590093080,-1073020826,20790132,1024226304,829685762,1946157885,-2130056390,-23005626,104611467,-624897,1996424822,-71899132,58048523,1459551721,-402098433,-1072956473,-269935499,642026494,-1947843031,1177102404,-1949176856,1177099844,541363174,1183707371,-397404438,1183526406,33635818,71109236,1023767554,1031078407,6700675,1446411522,-1980673560,-661915578,1077037046,-2091899020]},{"sector":6,"data":[26174,163054965,-1207702784,-397410303,-1072997521,-588709003,-128021507,137578486,-169278604,-159481347,946995712,1048641323,2097152131,114435,8666752,-2130412288,-2147482929,34366,-813628291,1048576016,2097152146,80707844,-1824620544,75300864,577409,184571553,1946179590,-63012005,1416953857,14829255,-497120512,5685120,-1908640768,637737990,1473591039,52037262,-1422459098,922691162,1996446377,-260636686,-1542401,-1202198922,-336134141,1342308869,6960895,-1959644440,-2017009058,-16777130,2122572358,-1317272606,-159973546,-394854569,-1673473,1996485238,22407408,-385843549,1183514003,-1947981076,-1811482888,91521024,-350224200,734014210,-565802542,-153069943,-2147450235,12060020,721611584,-1982714944,1451874886,-163121444,-1207602175,48988160,-768884693,-1948629493,1317723222,200092397,-565834815,-1948232181,-1950340144,1183444550,-27883012,33308291,-1910803200,637738502,648298115,1460630528,-14266286,187081246,-385649472,915143937,-167051166,1048781941,1962934372,-51386109,6567563,-1191807233,-1202716416,-397410045,-1072956980,1182991476,1149961462,-465139444,1513553750,-103421952,58048523,-212759,-1612127114,1958742834,-55318269,-387680513,-1073007999,-471268491,1996445436,-106043384,58048523,-1912810007,1343679046,1445725672,1475770111,-100609,1996487798,-260636686,-1560262936,882966654,1543911686,-385649664,-8127365,-385649648]},{"sector":7,"data":[1048837235,1946158248,-60167933,-624897,1996488310,-401698564,3997768,-385647359,20839507,-385647103,-957809589,-62527185,1517873347,1988822784,1412890384,436637184,922691075,-14263637,-10835658,1996424822,175570692,-16222465,1996426358,-1998039538,-1964457168,-16580518,79170166,129519617,-504868863,1958743032,138868495,141893632,755648139,65732612,-1022736757,5923048,106859265,-472783919,64915339,65050507,1514924227,2122514688,91488262,-351910261,32815107,1342202019,-1557627928,-389873570,23085,-1023385439,5907688,106859009,-2020933846,-1013448574,5903592,6463744,1510729923,1988821250,244340230,187821800,1443656950,484970128,1975520052,-1946801406,989880894,191657214,1460630783,1342179512,1354771286,-401698736,-166988171,-397006732,1448144418,-2091361560,25150,1043929204,309592162,6436607,1342179512,1354771286,-401698736,915011145,-167051166,-1202313868,1464860679,1347469355,854068880,708740086,259260422,17414230,1354771280,244338768,-1946805016,1994965959,-1962736295,1149962870,105265420,1187450485,-1962933768,-768931770,283900043,957105291,695535686,16271047,108956416,823912535,-1980086647,-1202258858,-11534308,1589966966,1354771450,41418534,-890761584,112885,1495525571,1988821509,1979058952,105301765,1183522819,-2147277562,1954546493,105286433,1027605285,376717315,621168267,54337539,-1962183648,52758086]},{"sector":8,"data":[268647696,1183534965,1073947910,1950352189,-1103199445,611581953,621168267,54362115,956724608,1946271286,-1103692013,36628481,141934603,-1560166751,267061062,621168267,54333443,-1989315312,-1962457546,-955824586,476678,1681275136,-385649408,113705468,954,6569603,-385649408,1183449346,1006969862,-385649403,922681556,-2034761628,-1070903296,860129872,539354154,-1949160704,-1950340144,-1873784122,-185341938,57983499,-1979667479,52692550,58000188,721461225,27912640,607339658,1971338432,947191568,184654824,-1962510912,1793669188,1178009599,25880583,58048523,1459581161,-1996390424,-1072957882,1183518325,537076998,1965032253,-11278077,16154243,1149901941,635710003,1183383560,105286648,1025508133,141828099,137579648,-164953365,1354771286,621168267,54345731,-1207602112,48955393,-397361109,1185102738,-125926649,-385649664,2122579725,57934070,-2130770711,-369675420,922746621,112722020,-1070903296,860129872,539354154,-1949160704,-1950340144,-1873784122,-199235570,-1560255327,914949958,1048772708,1946157086,1513523460,105313792,-1962380031,1654851142,722004736,244338880,201148136,-385649162,1149894809,1019225139,1443263872,-1192751472,-63011858,712310785,956329121,578030660,-1157627976,1347616767,722224267,1813941202,-1949750528,-1873784109,1350625294,-1559477109,1183449196,1006969862,1445032965,1342211768,1342177720,708002954,2106852,-796143061]},{"sector":9,"data":[1185005611,-1873784313,-209459186,440406,105286224,154929444,45614453,-1207702784,-1974468607,-466996412,721428517,735087570,122069440,244338770,972248296,1962959926,-1170308340,91553795,-352321096,-1983894782,113769542,66490,28836843,1273545472,-2097086378,1946158206,74907419,-1528295792,1958742832,73304847,271796214,1207305844,91490355,-352321096,-1010816254,39215336,108461825,1239944848,1681296174,108461824,1342177720,-1957373208,1122550726,-1593769386,1183383658,108462076,1342177976,-1957339928,-389809082,22057,1347469355,-1017819928,55975144,1412890368,770172928,-1980086647,1589967958,2013210362,611837968,1442834627,922681347,-890765228,-96040659,-990095735,-1960379810,-1960438713,-389867945,16995809,5519103,-1993495320,1451883078,-94452484,679445286,638416128,19417031,105286400,709331238,1438116035,1996423936,1554442,108461904,1347469355,-1108865392,112878,1436281027,1048772868,1946157166,1354771243,104078987,-1710458881,65535,104078987,-401836033,1183395149,-61437446,16777114,-94452736,38242598,-1694599425,9143,-1202667477,1343103170,16777114,108461824,-1728052808,1840795730,863025715,1973047378,-16777165,62391926,1347590400,-1157627976,1347616767,16777114,540967680,494743301,1342193848,1343226040,16777114,-129595136,158646283,16777114,1975520000,-18409,1392508858,571472,-1873784167,1314711566]},{"sector":10,"data":[921419819,7224963,-1207077632,-1873805304,705685518,-713768949,16285315,1996425332,-25864,1996423168,-25858,1223163904,1845937968,-1207959552,-389873663,33576113,-16222465,2090468982,-1023410166,55877864,141986562,-401698730,1149906056,635710003,1183383560,108954620,-164793088,1963471684,112645,-1070923029,-396953461,-1873349713,1327949838,6436409,-1070921611,-401698736,1283521103,267061299,708002954,-2114417692,-2147481369,200749924,1443984639,1342180024,721843967,-1873784640,-254547954,-1006877045,5516520,142016258,-402229505,109979848,-1591344352,-1960420699,-1906661610,637739526,643475875,1521161865,6031047,48758784,-85408983,-1912471469,637740038,643474849,1520899723,637951684,-1993996407,-389873065,16995293,1443264139,-974647664,239373099,1459242633,-2097137944,1946221182,-59340497,2088968427,443809806,36914422,-1957290379,503708742,-1202708992,-1202716671,-397377536,-396959942,-259266603,-696912373,1397549251,1988821248,243041028,1443853312,1342181304,1347469355,-401698736,1955328021,1443293954,-1946166552,1979058996,535348214,-956235693,347654,876019456,71731974,244338718,184558824,-1206356800,-4521985,-1957670145,1344144454,1342177720,189627112,-1207601728,48955393,-389824469,50352933,-2096466293,1962937980,793048582,-952470520,17124870,208994048,187323624,1445622976,-402229505,-1072959101,-1202315404,726663183,1347440832]},{"sector":11,"data":[52823694,2117533478,922691155,552096636,-339727368,112643,1389619395,1996424192,175570700,-16222465,28837494,-960999424,8960512,468209746,209125120,-16091393,1996425334,1354771206,-1174387016,1347551334,-1023409688,139613672,175570695,3658650,-263812864,200431241,-385649214,1589903571,2013210352,2013210116,112646,2122534992,74711048,199999531,653287108,638076811,50753527,1452011590,787954,-6664110,-1996488449,-1072956858,-1930886283,-1305018624,-1046851581,-1996488650,1996486726,1354771216,919575120,1183383552,-162100748,-1206880513,-4521985,-1706012160,14045,-1979955575,1996488278,242679568,-1005816065,-14225314,-14285705,922682999,-1070922830,1996443728,74907398,1530266,-1305018624,-126419197,1104282,276233984,-624897,-6622090,-16776961,1996427382,-59310082,16777114,-92864768,2026650,175570688,3667098,-263812352,1962034699,-92372218,-14912256,1996427382,209125134,74069759,74200831,-1728036168,-6664110,-1023409921,5341416,1813416704,-1581241596,-389872534,16797998,-402360577,-389866497,33706341,-1996459871,1178205254,-1961921528,1923286598,138840832,-402624349,1183514716,1122550780,-16711599,922682998,1072170504,854115152,-16777135,-2097037306,114750,904397692,29401344,1360783555,1048772608,1962934720,1354771209,935631440,251592704,-1063190080,-18300159,-2097086384,1946158718,1345644549,686293995]},{"sector":12,"data":[-1477917872,-1962933424,184578102,722171382,-1706012480,14318,1048784619,2080375232,-6662617,-1996488449,1451883078,1975651324,1916177158,-1381632,1996487798,-25862,-1705639936,8613,1352919235,1988821248,28857862,216551424,-1830239487,-16711600,45614710,-51884032,-2098674944,-16645552,244320374,187197160,-13798208,1776813686,1975520079,142508830,-1961004032,1602947166,172460548,-151239032,1965096006,-62458362,-1207602112,48955393,-389824469,16797761,1443264139,-16763672,31982196,-337067264,-1962868657,216728694,2091094,-402492161,881590252,-260704757,1343482051,-1070923776,518224,-397361109,-389816131,16863166,-956008821,23558,620226560,105922187,-167044373,1966671220,-2146470654,1962936189,38127369,1170604032,1032520198,-495583477,1338763459,-1070923776,112720,3532880,1337714883,1988821250,1346276102,958393094,410322037,490880,1170608756,727056391,-1063628608,-1207959526,149618689,-16040565,-1070867083,1329916099,1988821507,244340230,187132648,721778112,9169344,17057526,-167041164,1190536052,494215172,-167486325,1948256839,272927493,1552641515,172488196,1443263552,-352257048,1996445278,5826564,-1946401143,184963134,-1975683648,1166541894,41257222,208991755,74841942,-402360577,619381691,721712639,-1706012480,15187,721712639,-1706012480,65535,-16484865,-1711007178,15173,-1710983681,6746]},{"sector":13,"data":[17253830,-1023130229,89039336,1344178946,125796358,-1961396992,1194919494,-1978698494,-467007929,1963214395,112645,1187476459,-1090518790,-1070922160,-1980217719,898364998,494204427,490624,1183529845,38025478,1149904245,1004808710,460653638,33179335,1979058944,-125924570,494272267,200703627,722892287,-2094339136,1962934908,-125925115,2122908651,-335639562,959810485,1946570806,-1996190963,105947397,914949257,1183516240,132695034,-1962868402,2089485430,141900036,-11137420,28837493,-790081536,141920514,-1022999157,55453928,5171200,96083595,-1207142401,-397410303,1049297138,-164952868,-544534293,-15808637,28839031,-605532160,909723136,-360774372,97656459,-1207142401,-397410303,512426182,2013201882,1354771212,-956253720,20998,-1880571136,-1962932915,-385462218,2088763531,57999367,-16744215,-1113979788,1073741883,1962931573,-26108,1183383552,-61437446,1347469355,647647312,-1996488683,1962933830,992844292,1183383552,41222134,-1979419393,-467007932,35514448,17188086,1996435829,74776574,2016666,1996443648,112886,516921936,1962868736,-25755900,1714074,74776320,-362753,-6620042,-16776961,-442827146,-1962934218,1962281780,-9508605,1295247555,1988821504,-11081720,108461910,-1023403544,5037544,108432130,-11138581,132646006,187992832,-1007454730,21808616,108432130,-167486325,1948256839,276597509,1552617963,172488196]},{"sector":14,"data":[958035008,359991415,1460043659,1758874,-143310848,28858198,1894273024,41221889,-397361109,2122579878,343146500,539968758,1686113908,1157029679,74784819,-593369002,1281943747,1988821505,243041030,721712384,-2089948224,1946158206,73173806,537544694,2089485684,-1961891056,1207305308,292831242,-1962379383,1465255551,1342177720,-352252184,28857872,1443162880,1342177976,-1946364184,243041272,1462203905,1701018,-1137246464,177886981,1342177339,-1207012097,-1706033151,16000,-1137246377,1026595333,-947191808,1273555139,1586168320,243237638,-16222719,-476445578,-16777158,233309302,-873938101,-1962868405,1552614518,172488196,-401705952,1149829167,1975520016,-339727580,73173795,1074415606,-74770572,425347,283643765,105220352,-512442357,542151,112640,1267263683,364380160,-17908,-1070903214,1347440720,-6664112,-1023409921,38514920,-1172403454,176128773,-1958644736,1194919494,-1204194292,1344144710,-1981950744,-1072956346,-1070917772,88520784,-59310256,96083595,-15960065,-521664906,142016257,-1694730497,15704,-1694730497,15712,1260185795,1988821762,1996445192,4450308,201213577,-15633216,-1706031498,14756,-1694599425,16218,17057526,1150092660,-1929123034,-125100476,-16353537,41287477,3771546,108461824,1979659775,966302210,-389873664,34097866,1443264139,198725352,722367936,1347440832,989829712,1541996544,-196702975]},{"sector":15,"data":[1190547478,91488516,-349813619,507809027,519063177,-401698736,1183655616,-1924131084,1343681606,503662264,-401698736,-24434803,1173758187,-1217130445,540231158,1183691125,-1924131084,1343681606,505824653,-401698736,2122917737,-756525070,200838110,-2083293697,114238,-1096738956,-230278911,1586171764,860326642,-2143502300,1927873396,71759615,-2096532476,1963003516,-10229501,134498038,2088962420,57999374,-1912646423,1343681606,4144282,-62486272,58048523,-2097109271,1979780732,71759391,1343845388,242548560,134498038,28837236,-1207702784,-1706033148,16025,268715766,1996428148,-59310084,87045887,1342177720,4149146,-1172403456,176128773,1444180992,-1018113,2013265014,-227082484,184570600,-162892608,1946223686,860157504,-163941374,1965032518,1354771252,-1018113,1962933366,753422338,1958742784,1444866852,-1948388120,860157688,722498564,1996443840,-59310096,1443001855,-1962931480,1979059191,-62485538,1230039235,1988822279,963701510,1869874294,271795446,1183671156,-1957685514,1344145990,505300109,-401698736,-1073011143,1183665012,-1706027274,6546,-899447,1996425334,79187976,983191552,-1996488645,1996488262,995859186,2122514432,225705996,-2146673013,-947900849,16781318,-25263360,-2096729087,1962999422,-339727612,187992841,-1198754314,-389873663,84560078,-1962117493,922684030,244319752,-940065816,-5050,755517067,87883778,-385649152]},{"sector":16,"data":[-1073545064,-1476448621,-947175362,1946198333,10697999,-2115435660,-330905856,2062282784,283920071,-1955337232,10567111,-1556278668,-160992000,1975530308,-330905759,1525411888,15484615,-2125206544,1946198527,-1543536378,-1958251264,54331462,1024553984,427032581,1946158653,474395,787160436,10747777,1187448693,-336568084,-330905823,451670160,-2131999033,-954995728,-261034938,1069157611,1071071223,1073168375,1183530999,-266322452,809306740,1023767792,913698912,8601216,1445952768,1342178232,-347643672,-297366247,-1070903274,33601616,34191440,112720,-401698736,1048633906,2080374915,-401698592,2122576353,393543660,18004054,138840912,1357661707,-16353537,244319350,-1008430872,105359848,175540996,-1962377589,992711,738084489,108954616,-2096204543,1962935422,-1983894776,1183385158,104112388,6948409,-1202712715,726663199,1347440832,1323830928,1782481892,57933824,-167636759,1946694468,34072835,5914243,-1959627776,-268419641,-152501387,-267371263,-286719115,-266322687,-420936843,-265274111,-555154571,-264225535,-689372299,-263176959,-823590027,860157441,-1207601728,48955393,1183432747,-196687882,-947191808,1978679357,22997251,-1981217922,-268419839,-1461124235,-267371264,-1511455883,-266322688,809306228,-380341008,2122514829,57999606,-2097052439,16782910,2062091125,860157441,1445950496,184644072,-385649216,-1705639575,3330,6436409,1525220213]},{"sector":17,"data":[112743937,28856320,-1070903296,244340304,-370967320,-1873411771,-885266418,-2097070871,1962997374,20179203,708002954,2106852,200820361,1444312256,184623592,-385649216,244318489,1445066216,545690,1996445184,105880312,2122514432,57999608,-352256791,-196687977,2122514433,343146742,29245059,-385649664,1048772837,1962999830,14412035,184829579,91489862,-352280129,-28915963,1465253888,-100609,1996424822,-193528060,16777114,1647720704,-385649408,1156972717,57942067,-385833751,1187512135,-2097151748,1946161788,309657394,-1705983957,65535,-262096816,1354771280,16777114,-96040704,326418443,126539915,-1996487899,922745926,-6683090,-2097151745,1962998910,280516190,-1070903296,-380612528,1172897540,-11736275,-1070922634,-26032,1072365568,-16353537,-6683530,-352321281,1996445234,74907398,-1694599425,65535,1346183659,1036743920,58060896,1040151529,-579538832,1961918525,-258982440,4048500,-1011583759,4541928,74877697,1292374,1354771280,244338768,-1008591640,4552936,108432129,112726,125008,1160046787,1988821510,-196702970,1150111766,-1873797602,557770766,8632406,1354771280,385107597,-401698736,2089542113,675580710,-1912846711,1344153156,385107597,-401698736,2122522900,880017412,1978957369,-62485752,1962296889,62412309,-1070903296,-162100400,1391740555,-401698736,961995169,1963048502,178181,-1070923029,-836310960]}]],[[{"sector":1,"data":[-196703402,-1957640405,1177286214,2129154300,417879619,-1813462044,-1962736316,1686112374,1183707182,-11528458,1996424822,-401698812,1183522984,-28931592,707937418,12592612,1946173501,8404328,-1069740172,-1591708416,103482630,1174471808,-163148296,2124501014,1356396292,-150699871,244338904,-1977540120,-1071369404,1316241468,3439747,1283475572,1962869038,1183536692,-28955656,2117533520,-96040188,1358317099,16777114,-129629952,972834443,511506502,-336050551,-163148439,2124501014,-1176963324,-369688571,75538768,-369633033,1157014507,645140530,737953419,104593478,444466240,70143104,-2144189194,-2136930956,721611524,1074695104,700984068,1157037134,443818034,36588672,-2144189194,2124481908,721611524,839814080,700984068,1283521102,1996425262,74907398,385238669,-401698736,-389865548,17122178,-167479669,1975530052,776271366,1451193351,-397361109,-125044993,1920270091,19809526,1465255796,16777114,843380224,1444377792,385369741,469297232,-129594025,-1070903274,-401698736,1156972739,91504690,937973590,776271364,-166628350,1946431044,-1202235893,-1873805311,113109006,36586742,1465256820,1342177720,4546970,776271360,1443525636,1354771287,16777114,-396929536,-389810425,16859886,-167479669,1946431300,28857890,1894273024,200838134,1444181247,-401698729,-1072966177,1686111348,1465318191,-1007233304,37945576,175540995,-800987050,947175435,-1995553653]},{"sector":2,"data":[2122579014,91488262,17712327,-2051516928,-1070903296,-1873784752,-546052082,-1979955573,2122518084,208928776,141869067,70208640,-7870378,1119348931,1589904398,931866120,41913126,71797542,1183434283,1200301808,-1983436026,2124540486,-431585020,-1996193631,1187510854,-956292628,15789638,-1996240735,1183579206,1958742790,81238,37563252,1025602560,208928771,1946158141,343338,1005270900,-1996239199,45218886,-738564397,736880230,-352075103,62955779,-771996023,1725032038,-1592202246,1183384912,-330905604,1187446857,-352298258,61645062,-1946401143,-523109818,-1423831,1996426358,912497404,1183383552,209125372,1996445526,-92864528,-1149185,-979702666,50331718,1996487294,1183536652,1355219946,-1018113,1996487286,-327745554,4643738,209125120,1996445526,-361299994,-1149185,-107287434,-16777146,1183517814,-431608848,1464911363,-1673473,1996483190,-327745554,3610522,209125120,-1694730497,18062,1100212419,1988822802,273058578,1963869707,38267139,-401698730,-1073014416,988349301,-1909049086,1444705540,484970128,172395326,1963738635,273058574,76940801,17712779,1443141638,185222795,192220230,36914422,565708148,-1207702784,-397410303,-125046353,-1995422069,1183576134,-230258418,-263811753,28856342,-962965504,1459617863,383665805,440769104,1183645696,-1924131098,1343675974,-303559024,105286428,1946699275,-1332062393,-1929379766,1343682118]},{"sector":3,"data":[-16222465,244319862,1461506024,385238669,178256,1210292816,1183645696,-11528458,1962878580,-401698776,-11068101,1996486262,-92864520,-1694730497,19154,185222795,1718881350,383665805,-565801648,1996443670,175570700,1659375248,-163148515,1183666198,-1873799458,477292558,-163148457,45633558,-6664192,-1929379585,1343682118,-14256897,244328564,-1927487768,1343682118,4084122,-196704000,1721390928,1342177352,-1191938305,-1706033151,18556,-11136021,1996484726,1054599410,1012111959,1183383552,-1137246220,-193528059,-1202667477,-1706033147,18591,96220927,-1018113,-1399131530,-16777187,-16401354,922743926,79168956,1620725760,-1962934212,1175128646,-16223220,949679222,-1929379779,1343675974,-15698177,244321910,-1927523608,1343675974,383665805,-431583920,244338710,1461490920,-2197761,1183572086,-565826590,-465138864,1356875307,-565802153,1343243819,736118411,-1202713018,-860225504,-1706012160,14005,184960651,108267590,1256036951,-396951552,1183530624,205916938,2088970357,578027522,36914422,-397013644,727072304,233328832,-15733954,770179700,41222127,-397361109,909767218,108332174,-401698730,-11125712,-1207583690,1347420161,-1019361304,926873064,108432130,-1979416949,-466997692,-1996472283,-1923700154,1343658054,-1927837208,1343658054,-150700383,-2136911656,1356396292,-1477964144,843352603,1077723172,-1923661195,1343658054,1342178232,887623312]},{"sector":4,"data":[-1740206596,2124501014,1356396292,-150699871,244338904,1461418472,379078285,-1434549424,-1207602176,65732609,1342177976,82316944,35449340,721749665,721692678,-1996193786,1183552582,-2147079270,101057284,-1639544571,-1740206761,922701846,244319176,-1591981080,1177093248,922703770,922682372,-2003172350,1459617846,66598655,66467583,3568282,843380224,-952011768,41542,607339658,1967144128,69640454,1470252681,63846143,69482239,-6785281,922719350,922682406,1996424232,1354771362,-401698736,648086624,2114323204,-1740242684,70403318,648097908,2114323204,-1673123580,-835256489,708247299,-1673098492,75367939,-1804140720,69613311,69744383,1347469355,-401698736,-1705573344,15433,-1740207273,1344160771,60442251,-1957683132,1141087302,1183535134,541328286,436640336,20774912,1460237568,3965850,18671872,731661963,1183422534,1183667858,-1202710868,-1873805232,383838222,194397833,-385649216,-1923678062,1343663174,-1701415169,65535,-1985722743,1183557206,-1740231780,69602955,-1053040175,111242876,1086466821,1183447249,2109737982,-28915963,1183514624,-1538905188,-778549717,-1840870920,69600827,648087677,-1980182268,-11038138,-16513994,-1711013322,19984,112727,1268030032,-1957232640,1174640710,1183535250,-28965990,-1404662448,1996443670,-25962,-1202257920,-1706033150,65535,11173507,-1063189132,-1593578749,1183384514,-6664032,1459618047]},{"sector":5,"data":[4788890,-1807316224,-1583724919,1177093248,-1673098338,-1951906167,1174640710,2114333586,-1673099004,-1740206761,1996443670,-401698656,1183521400,-1673098840,59917867,-1996194298,-1923639226,1343658054,-1868531969,442165262,1016850627,1988821764,142510858,723666059,103489092,1183384626,608472056,723534891,-1996210170,1157036614,611648562,-126419113,70426960,75367979,71344464,75499051,6469712,1375797178,1283299920,2078998528,-935919785,1283889667,1183383552,1996445692,-92864520,721695393,1342471686,721698977,1342472198,-1174396488,1347551472,5112986,1996445440,1307024124,-11075584,-16527818,-16496586,1996486774,108954618,-1593478144,48956542,244039723,-936704974,108954449,-1593478144,48956544,244039723,-936704960,1354771281,244338768,-1023278104,3920104,106859265,540231670,-397203339,1996438148,-864819194,-1962510593,503645766,-397402624,1996438191,978708486,-1207535873,-397410303,-389858748,33700761,-1878493441,327346190,1265942539,-1979162997,-466997689,-1996472283,648150086,1960327942,78160177,712300603,8829011,108954448,-2096401408,1962998910,112653,1688275691,138819840,-1070861452,1354771280,-401698736,1183569893,721611772,988332992,722143035,-163149376,-1980479863,1178204230,-15829746,1996427894,-26096,1183383552,142508814,-2096729088,1962935934,-1305018592,309788419,-15698177,244321910,-1996153880,1451883078,138840572,1183433355]},{"sector":6,"data":[142016262,-1207535873,1347420161,1347469355,3559322,-129595136,58048523,-16719895,-1711033802,65535,200558217,-385649216,-11534132,1369110646,-1996488626,1996485190,1354771444,142016336,-1207535873,-4587422,-1706012160,20075,737441535,-1706012480,18989,185878155,292820550,-755969,1996427894,242679568,-350986497,-193528043,1347469355,-15567105,1996427382,-401698802,1183384739,1958743030,-193528026,89143039,5142170,-193528064,1347469355,-16222465,-1984428426,16431616,-1483059118,-16777146,1996485750,1191484146,2122514432,108331254,-15827325,2122516084,578027766,-15042817,1996429430,209125368,-16091393,1996425334,1354771206,112720,-401698736,2122514464,141820148,-1695254785,2466,16285315,1996425332,1219468024,1183514624,-823606282,-2096495303,1962940030,63742214,-15317367,-1070917514,1687834704,-16777141,-4712330,16759551,530206802,-16777142,1996429430,1326553622,1183383552,-1305018372,343342851,5199002,-96040704,-15173889,1996427894,242679568,-15960321,-16534986,1996425846,108954376,-1207405568,-1195767990,-1207506176,-491124922,-1706012160,18692,62011135,-1694861569,20319,-15173889,1452997750,-1023410100,37304552,175540995,105286998,244338710,-1928236056,1344153156,-16222465,244319862,185948136,-14781248,1996423796,108461832,-1202667477,-397410303,1183383735,1975520252,-339309818,-1010816254,54063336]},{"sector":7,"data":[964612,85733111,906227851,418055388,-15960833,1996426358,142016266,-402229505,-125108093,561381131,-293353845,-603571442,-1948420860,-16539106,1996426359,175570700,-16222465,1558709878,1609089792,-1962736840,1183385670,105286650,-1946401143,-16401890,-11531145,1996487286,112644,3532880,-166989685,922692725,1996423614,-92864516,-1207666945,-397410303,-259325884,309720587,-231681,1996487286,112644,918939728,-963907445,939845827,1988822273,1444473612,-16091393,1996425334,74907398,-1962930200,1979649016,187992840,736392694,-605502528,-1962606025,-167048074,1156987508,880021555,505300109,175570768,-1878493441,339666958,544522251,1513553750,-696653824,91602955,-335544641,860157536,-1978829816,-1071369404,-327860164,1575731243,294531,1150113140,-11526618,1996425846,-401698808,-1073015808,1962875252,175570690,-16222465,1996424822,-10360828,201213577,1445623232,1342211256,-11485141,1996425846,-401698808,-125053903,1962934147,108954543,-1962380288,931726942,-1962770551,1994965958,-1962737097,1149962870,138819880,-1964440708,541362944,-1963178359,-1071369660,1752547388,17106593,1183579206,138820092,1156995709,963905586,52315275,50603526,990150150,696124998,689849483,1149961798,138815776,503552184,142016336,-1878624513,324462606,91537419,-352320584,-339727498,843380338,-1961855996,103490116,103482412,1178272894,-1204519418,1475018754]},{"sector":8,"data":[19809526,1183570804,138820092,95998844,-1958417664,1178152004,-165774328,1946431044,709135296,2080785977,843380235,-1196264444,602603524,-352319816,709135134,2080785977,776271371,-1207602174,199950343,958809227,-1921251770,-1023409736,-1940910504,1430622424,-1910575989,172395480,184962699,-149982007,-372176786,-763117309,105810688,-310117897,535137026,113921373,1343117312,1498962523,-1053076654,-1047854468,1343117515,1498962523,-1053076654,-1047854465,1343117515,1167120524,518818645,509073550,-1962246460,1183516750,-1426850810,-310157537,535137026,147475805,1343117312,1167120524,518818645,1465309326,105810718,1992628963,142525452,225703739,55099787,-34077712,-335764237,-1527514109,-2090967265,-443874579,-900899553,-555220982,-1929101259,385842878,142001415,-1207546229,-935657344,-7274122,1461062774,-1700465839,19216,901245123,-1098054080,118947710,-1962379579,-2135423410,1992833792,1996460289,242679568,369915647,-1527557801,4950682,1119601408,-1157371136,1515716672,-1705880752,13193,1515804867,-1202630064,-1706033088,65535,1348098243,869440082,-1073020928,-1202713740,-1706033149,65535,1532609368,192273163,309328,1397267024,-27787264,126550855,1532617215,192273163,374864,1398446672,-27787264,-503381169]},{"sector":9,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,521012766,1400637183,117376117,512447358,-75410272,645157760,-1961825405,-220002225,1963347967,105875949,753536,-11279243,188344375,189267547,1419904767,-1532898069,-1508471980,197692244,185889994,1241609664,1420075848,1420170889,58049035,118178792,-1590768865,-1959898244,-883720682,-1903110004,-727636288,378217989,868943318,-1190925367,1927806977,-16449485,244321910,1946900200,-947336,-1511519626,1975520001,1354825218,5519103,1317740302,206998286,1946214376,192905228,-13798400,-346775026,-1145031897,-1014803600,1979058960,-2131001082,-2130384044,1918148859,-346466044,138885424,-921967499,-745864587,119470987,-1047811240,-1413313621,-1951683752,1183558598,1183558406,1044097800,74601632,1419787913]},{"sector":10,"data":[-919354477,28902379,853796864,1996423680,-401698808,359926471,-242540786,-1962389877,1642595926,-402230272,31981597,512475904,1194939552,-2096531976,-75427605,-227060864,-1608611538,868455252,138906048,1946896186,189237255,1419906815,1499093955,521018963,1419779723,1400961921,-343730314,956621584,185168911,971863250,-394984873,-335558424,-5576477,512475935,-1070377824,1400961921,-343728778,138885392,1329328756,1005417730,-394984361,986090320,1968704071,197197535,1482277824,521018961,-125085866,104448051,1584682146,1419785867,1400962689,-293383050,192708624,-953344,157280308,-395001845,-1962779509,-795744049,2088820340,330825738,67269633,189595141,1419906815,1571501823,1521170175,1521039103,1400780543,1400649471,-15829761,1962871924,1962889220,130672642,1583284656,-661863649,-661774704,2083979054,3139667,-1957311713,-1202235668,1727464424,-736195836,1943223045,-772540656,1926446059,1048788993,1946158550,1606431490,1575324510,1426064066,-189141877,97820929,-1056714189,-922496493,1727525367,1575324420,855638722,-1325208631,861559553,95965376,856419200,-1325208631,-1202038015,1380974597,-398073005,83898701,-1961992565,2123041398,1962871564,-1957275868,-930404793,-1957635849,-796186553,1464916215,-1873653418,228190222,-1879046424,227665934,242679747,1996445271,108461832,-1011045912,3213544,209095428,185237131,1461875967,-1960426357,1356396488,-1960295285]},{"sector":11,"data":[1356396496,-1705881257,18571,-1711274264,22456,-11053373,1996425334,794486790,-2147483453,503316608,1364234328,-1966568878,-1193014549,41484544,29016318,321536,-883402406,1342578428,240275795,-1606515937,1567948838,1963065405,1473356549,20795627,1023767553,963969280,1964112256,1473552901,-109045013,-1576700654,132863955,1473461888,-2146863872,5755966,67371636,292929546,2418718,255527541,1207895669,250289924,-784432353,57933911,-402640664,-370671525,1532582407,-1021376680,1473584782,409219,184775936,512476096,-75300854,-1962641606,721423390,989856798,516096583,1364205326,-788084910,-1207959465,243991040,378231461,-1008182617,-1995934209,-16774626,234882574,387103,525883738,-717815869,1347440727,2117533520,2083979091,1364218451,184929000,957838784,1952094470,-1759576314,-1207180454,-1706033151,65535,1438892083,244051083,-1070399404,8128057,238618228,947191932,8130185,959365171,1948688390,175570733,772306687,1400780543,2083979054,-13741997,774282782,777299107,1420170889,197145489,-29264438,8430528,-1070379797,-717816018,175570775,1342732031,-16353537,240125046,-1559913496,-1073020800,959324021,1951912198,33601555,-1962520949,-1628961706,-402295603,-957612263,-352289629,140428301,638552870,637685639,-443871351,574045,871140181,-2147075648,-385649408,959316215,1948688390,1347440675,1354825296,-1642135762,73319462]},{"sector":12,"data":[4161830,638285058,637695999,-402360321,686490500,959365171,1948687366,108461835,772044543,647634687,8396427,512634398,119429077,-1494722730,526278405,637820612,-108982389,57999872,-2130669335,1946223097,16351542,-2127531007,1946224121,83460394,-1205570559,-109051903,-32932860,117014720,78643838,1946548608,49905676,-109049996,-1274907640,839773056,29488868,-2135686539,38242854,-661988557,8569729,19138442,108643338,41428770,126353716,8579969,-1962986861,973179678,1946256007,-16796926,-1960933181,167477249,113643900,-2097151605,130110,-6683275,-956301057,32774,1575324416,1218]},{"sector":13,"data":[0,0,0,0,508952576,117317390,1048599489,1963023297,-1089041387,-1121547941,1539161691,-72063,-1961362930,1048837094,1962944160,1364414517,28873106,33864450,1520647811,-1828621312,1224801512,-355396236,-392959279,1950941425,-773140214,34060522,1493230824,27809883,-924253323,2042628864,-1247728102,-1981548710,777692438,-145049695,-1491695135,18671706,-1962900247,-1189704765,13035610,378210675,-1047831877,1359002600,-619984589,-1616825484,-1715272870,1520115339,100924407,104553125,92101293,861580705,-1324991534,-1593410470,860379825,-1625912878,-2016900262,727360774,-1072998200,100872052,-768386399,1520895491,1521419835,-1348401795,1003631450,2086318854,1521721606,-1949158584,-1592358440,-1492744358,198716250,-1205410869,243991040,378231461,535321255,-1723956229,175374426,520049233,1482316439,1380976611,16777114,251591168,141908929,1539249806,1539122827,-154444257,57934530,-151327256,91489474,-471285506,-1072970758,-654900611,91669051,-506338351,2062074872,-100532181,-1945743676,1975585728,-1190715899,-1207040698,105929389,1239944785,1632263,240698363,1532647760,-95333800,-83881240,-375762096,-889192356,1520804142,-1491170514,521018970,1521288763,-1381956739,-1324991654,-1593541542,-1555539279,507206309,75324079,1521426059,1521688123,512427388,-1991550285,861579038,-1626437175,-1592882854,784539482,1473316550,49921]},{"sector":14,"data":[-1864856576,-326412987,-1193767394,-1202716612,-397410294,-1557266372,-310159403,535137026,-389329571,16788169,-1207535873,-397410286,-1543897056,-1557266348,122707371,-1392081106,10692189,-1070397952,412747344,1476395059,-1957313541,765089772,1342177331,-1962522997,-503905202,1342192133,1361068217,1347537203,16777114,1505791488,1958742875,-1073966314,-1951727614,1202390086,3848263,-1047811157,1606454443,-1034033781,-1957363708,5546476,-1391555794,1959332701,-1047594436,2001702,1958820608,-1949201658,787147723,1571620411,-1993472139,-346182370,650284551,7817,512351027,-1993473924,-77746402,-26032,-1243086848,1575324417,-326412861,-90417322,373721886,-1064380274,671371,540219,-1070397323,394811,-1957223307,-1929378802,371065974,-1527514081,-397190369,512295177,117374986,-400687098,-1554513605,-350289864,-401682687,1583349755,-1034033781,-661913580,-1957345904,-661774612,1996445526,-1070391534,2629259,578077498,175492094,394811,117382773,1589968936,38258446,130482194,715194368,71796992,104552171,1383333894,538251,1317739659,-940709876,242540171,-1962785653,1451952718,-943724536,-2031613579,870413568,-1003754560,243994238,-1527578620,-1089933693,119406608,-1515870811,-2085895285,1962935934,403097352,-352321280,1042435,1583334283,-1962742397,1297948645,-100659510,251594526,77660166,137792256,171870976,2012429056,-880018145,-208941525,67013454]},{"sector":15,"data":[1201992696,802363,985596786,138316032,-1006896128,66292732,735022064,-201618482,171870628,63175424,989856798,1912605726,3848963,663099,1506014091,992891224,1952295686,484986886,-1010814208,109992027,-2094661548,33561662,992348021,1946163718,-4181246,1364744675,-1425654994,772044125,-1906464094,113649344,855703608,104539840,359923726,959270,922691078,1134166018,117440550,184549816,-970013760,22915590,1571791150,125091851,-924270450,773027327,190688673,-1911851840,-4593472,41254,1539567988,-4181158,1409715939,882976256,1958742784,788473349,113901618,28397824,860947435,-594848823,140479286,74832651,250288355,184835979,-2129693477,1263403647,1499138165,-905969395,1499136002,46841907,668723200,1996423680,142016262,-397361101,-389812440,50341833,-970056015,694224134,134661678,417868129,649184000,82510256,699410097,1627759150,1627955758,2597096,5564419,637862182,-1023259391,1475119957,515460429,1173504,-1956690619,113401317,2537728,2586856,176065283,-401698729,594870112,1183578371,105810696,1364218192,244340510,-1962720280,1356396293,-150846069,244338904,-1023164696,1393188491,837291664,-1911589633,2123040838,65876486,-1962439719,-389873073,50341673,1393188491,300420752,-15698689,1996425334,-1014817274,244339486,-1023215640,49006899,48759217,-1962868697,-1873607074,-18159602,-1070394252,1207306467]},{"sector":16,"data":[141822003,1207306475,41164851,-389824258,16787165,1392926347,-974647664,1393325310,1342181048,1347469363,-1019155632,2539752,207522564,-401698733,276102824,899155,108461904,-16091393,535496822,648014019,1586168576,244339466,1962837992,213406483,-1070379008,142016336,-1878624513,-1021319154,-1194773565,-661913167,-1957345904,-661774612,1393057419,1508380304,-485395202,73370374,65323907,1200293470,1113033536,-1962742397,1297948645,855639242,-2135836471,1381653336,-1202695342,-1313341007,-1864856447,-326412987,-1948742114,-1873605538,-32053234,-922083980,1602946681,-456948988,-1962254845,1200031302,1944703296,139889414,-2092804217,-443874579,-900899553,-152567800,-1962868699,-1873607074,-35723250,512164980,-1933377446,-1064398632,5939494,-1864856373,1515831438,860967515,1602954944,1960512260,2139170314,1967869442,-876544510,-62208,-65536,-65536,-65536,-65536,-65536,-65536,11599872,-1157516869,-1313144143,78756611,-1157254725,-594868559,173509430,33616513,-1909578891,643291142,8590904,942026364,2080412182,1468741159,372975116,477364330,-1878763287,-2064481904,-2146339582,125108729,-1711276104,-2147480886,-462092807,-645211341,-620504317,-424673490,624158818,-1070399232,-2096734581,108993275,-2020875311,-356318834,22756,2431208,108954369,-1592232960,-1073020804,104534388,192151636,1095760,1400019536,-1957167104,-1935473082,-6664191]},{"sector":17,"data":[-1023409921,1519442060,106519303,-661774766,-401698733,578092231,-401698735,443874500,-619986893,1468666996,-1058897869,1967192704,945785609,-361379013,-887111426,2404584,106471680,192200715,-401698736,-1070357529,-1559865181,-389872206,16786581,1392926347,2112360080,-1962707716,784544839,1532666785,110046727,1392925347,521019083,1681331853,-853213000,-71098591,-850657096,-1864856543,-326412987,1473809950,243188988,-1425258869,-1425389941,-1425521013,-1425652085,49120095,1562371467,838221,1167120524,518818645,-1000875890,79234686,-54512896,-2090882061,-443874579,-900899553,-661913596,-1957345904,-661774612,-987867306,2126775926,309514,530969596,-310157729,535137026,147475805,-1864856576,-326412987,517508638,1589969328,72321798,176033595,990269323,41812559,-2095071181,-443874579,-900899553,-661913596,-1957345904,-661774612,-1950338274,1451951694,173982984,2080528187,106380048,255527805,1329268604,-33391356,-310173760,535137026,147475805,-1864856576,-326412987,517508638,-1962254651,117508166,-1962653951,1191249478,105316610,49120031,1562371467,576077,1167120524,518818645,-987834226,1183517278,17246472,1183515719,38217990,520505089,-1962742397,1297948645,-1946154806,1430622424,-1910575989,-984131880,-1174664586,1353515012,-990153399,-2080567682,1992623815,113672966,-1386543951,25024571,49905811,-1416429185,-2081458871,1460011719,82316944,1958743039]}],[{"sector":1,"data":[-1873345013,-21960690,49004595,1610351024,49120094,1562371467,838221,1167120524,518818645,1465309326,-1006209339,1996426878,175570700,-924316016,1444827390,-1058533744,1958743038,-1072998373,1460013940,1743261328,-339725314,509019719,-401698730,988544636,1958742872,-11074033,1996426358,-401698806,653000296,309756,1967739053,1992687099,113672970,-1324955773,1001216772,-1828618813,2130901376,1235981057,28372853,-2090967044,-443874579,-900899553,1122500620,-1962672094,1347423302,-1710852353,20226,142001232,2113936104,-1036598254,209125121,1347572051,1251628550,-1711275956,26216,520494787,-661934596,-1379365971,92193579,732811403,-389865535,50340345,-402229564,310312927,30029508,1393194751,105927249,1719900758,-389873664,100802966,1343112843,142016336,6719642,1992577024,-1326950902,1954438911,-1996488257,1183448662,1996444668,1381061390,108461911,-1710983425,26302,175555675,105679654,1996444489,-11447538,-11010442,1996424822,1727568388,-1000669184,-1960441226,-11468212,1364397686,-59310249,-16353537,379192438,1493172327,638219972,1258577035,1393456895,1996445521,108462076,-1710983425,26419,6738330,1122550528,-1006370783,-16661986,1996426358,142016266,101086975,-11540397,-326412861,1354773278,16777114,-971062272,142016257,-16353537,105907318,-13637549,1575324447,-402651454,85467393,-1961986421,-1873409410,-119085042,125157387]},{"sector":2,"data":[-768884693,-1962651159,423431238,-385649408,58065682,755223785,305987590,65107712,-13724736,1449880999,1342177720,16777114,1781938432,-1865845504,-897062898,1157022443,175386674,-401698730,-1072979516,-1000951180,-14285218,-14280585,244323959,-1727792408,-2096892439,1946171004,913637126,-2081745176,1946159740,175439755,-336917784,1996445315,108461832,-371486744,-11075722,1996425334,-401698810,1149895619,1019225138,-385649472,-1873346722,-1514412018,58048523,1459573225,-1511518576,-230258225,-1070447370,-1923737228,1343682118,-485912,1183707766,726669046,244338880,1457348328,-386763009,1996480726,520546546,-939582999,62534,3570819,-16042892,1149972596,-1706025418,26859,-12219056,-377362352,-1946925431,1344157252,-16222465,1996424822,-373954316,50749124,-970525602,1183514631,-13374988,3570819,-873921675,910461950,2124042270,-385875891,-1873346787,-1628575730,1459533289,1460434687,-16222465,-2098723210,-22746666,142016342,-1878624513,-401676274,1459549417,382879373,-401698736,-1923698572,1343672902,1659375248,-25368143,-610277290,-1946257943,1200292956,-800683750,58048523,1040082409,192348170,-472786805,62556043,-3127671,530239606,1442840683,1996445526,-401698608,28881297,-29431552,1996445526,108461832,-371772952,1048837678,1946158630,-31135485,542455,-385649376,1048837658,1962934372,-32446205,155043723,1025537024,57933837,-130583]},{"sector":3,"data":[-1207933898,-1202716398,726724656,-1873784640,-1149507570,-136727,-1207933898,-1202716398,-1873805296,-996087794,92127243,-336576328,-263145255,1190647019,1965031432,-37689085,58064651,1459468777,1342247608,1357971640,1464909867,1157020139,58015794,201285609,-2147060481,-348115380,778338308,860157631,-385649392,-8126648,-385649406,-1873346752,-144644082,208977931,1354771286,16777114,-13965056,-401698730,1183436224,-397388046,1996480274,490924274,201266153,-385649153,2122579278,57933832,1459439081,552078992,-46339644,-1159178410,-46863954,425603,736691061,860130045,-2143502300,535364468,1962871805,860157455,-167152368,1967140676,-49485565,158727947,271795446,-1506443,1962871804,795115526,-2147161153,1447046988,91553547,-352320328,1354771202,1927810704,-52631133,84442755,-11067020,-16518090,-1711017418,27397,3604311,-29950204,1796446723,-962527232,1461709571,67385087,67254015,5175194,922703616,922682360,-409336842,-1593835442,1183384508,-1415950128,1459617867,-14256897,-1969608588,-1962934211,-628305850,-2097098263,404030,1877541749,-63011844,57933825,-236055,721824310,245452992,2047224581,922701828,922682640,-1070922630,-401698736,1139389664,-1335206916,-1335381913,1952952423,-1754776982,459857000,1852371561,1852289129,-1335280791,-1335381913,1030388839,57999493,2013108713,2047275,854131573,8470012,1105789813,8535548]},{"sector":4,"data":[1592329077,8601084,1894318965,8666620,1206453109,-68621827,1963000893,-38606589,-2042815625,-385649408,-1606549972,-385649920,-1556218930,-385648896,-1008075503,17186299,-236387467,17382909,988349301,17972735,1877541749,-72816131,479455427,1988821763,914129674,-16157696,417871476,910461415,184960651,1215563846,-16222465,-1399191946,-1962934168,1996441592,1817877000,1183383552,-756525304,-96040474,74825739,602652715,-1980086645,1996437060,-26104,-1031077888,1342719625,-1962510593,1344157252,-435034025,-1023409736,52159976,141986563,-1996374367,2122579526,108331012,29230791,1156972544,141901875,271795446,-164953483,-1980074359,-11076490,837289590,-2081387776,1946221182,860157459,-2096269888,114238,909706868,-613088834,137577718,1983448948,735081980,-28931082,-1962819933,2145960902,-1962802917,-167049610,-11138699,1541932150,-161944832,1954558788,947684121,-1961659392,1207318620,175378483,74907478,23193683,2122529259,561250308,74907478,-1962922520,1354771448,1459910399,-1962823960,1979137008,-339244284,-335639786,1354771432,1443133183,-1962830104,1962871800,-1008276575,1774056,108432130,-1560000885,113706114,67102,105645767,113704960,1048,87176841,-1167228488,1347579268,1347469355,349562960,829734923,-1167222856,1347579290,184590056,-1960676160,-16401890,-4715401,-17665,-1070903214,-397389744,-1073015567,1048774516,1962935320]},{"sector":5,"data":[1279165371,74776582,65783435,-1022997343,1760488,175540995,271795446,1156974196,91570226,-352321096,860157519,-2096139136,1946171516,945589001,271796214,1048831605,1962935602,1278642440,-339727610,842414379,-2096204539,295486,1048778356,1962935884,403097576,-1996488444,-1593422794,149620254,102631111,-1393885184,439412931,1388184066,742296325,-2095453435,292814908,-1070910209,1593790544,1975520004,-339727612,46564109,189777803,-1193249344,-389873663,6721,6567679,619187856,6595058,434956483,1988821761,75401992,425603,-1070903691,-396996528,1183383631,1958743038,-28931323,727073515,-396930880,1183383611,1975520254,-2095387668,1946171517,-1070901478,947257168,-1996479768,-1072955834,2106315637,860223032,1474328000,-402229505,149683838,108461910,125015,428140739,1996423937,108461832,-1962641665,-16401890,568855671,-28931840,376815627,-16222465,1996424822,-635532540,209190661,-1996486680,1183579718,1273545726,-1962671079,2123041398,1979058950,142508811,-1207601920,48955393,1183432747,-129579010,-16056320,-963967627,-1962883351,1183384646,1975520252,11659523,29245059,-1960610816,947880920,-1207601920,48955393,104579115,57999806,-1962898711,1207368798,544542771,1586200555,860354300,-166365936,1950363463,947880816,-1962314752,1207318623,-555022285,972840587,91568255,-352321096,-1983894782,2122578502,259325960,16678531,-1073018508]},{"sector":6,"data":[1183516020,-2092241924,1962999422,-59361019,28837237,721611520,-28931648,359972875,556675,2122518388,91488504,-336050549,-339244256,-92372196,-1962511360,1183448134,-60912648,1172899723,142509055,735540480,1474872256,-16771560,-1878749642,356640782,6567679,1342178488,-954748696,64582,31999687,1681296128,-1472820992,-398014716,-1202323456,-1873805296,-1103304690,58507275,-1207914263,-1394016255,1480491776,678756358,-401698730,-1072959170,-1705632140,65535,106444543,1342178488,-689434992,1479999389,-401698810,99337289,65539728,-700019278,-1070903274,-1202696112,-1873805311,-1305942002,-1250639861,16533191,-398014720,1183514625,17120728,-1259797643,-385649152,3997889,-385649919,20775131,1024882177,427032836,-1207906583,-1873805311,-223090674,50087623,-398014720,-1192689664,-398014720,1183514624,605658,1156121461,1064447,-1595341963,729148160,28856512,2011713536,-28931589,58050107,-1879012631,-220141554,8829014,1354771280,-1963041141,-466996409,721428517,735087570,1388547008,-401698736,-1039420399,1996447604,8829182,112720,860129872,539354154,-1949160704,-1950340144,-1873784122,-1276385266,-1979812213,-352016330,-398014668,2122514432,695538394,33310407,757263104,138215936,52066048,-13724736,-781090905,-1016020112,-1015967376,-1854880912,-1016020111,-394362000,-1928039424,1343673926,568856208,-700019278,244338710,-2085432856,1962998910]},{"sector":7,"data":[-20322045,-1159197040,95966912,1894273024,-401698795,922743334,244319374,-2095859736,1963064446,1679723306,206015232,1342209187,-1673473,1996481654,-529072158,-2197761,1996479606,-663289894,-325195693,-956268893,305158,-1763130624,-1962602986,-24441226,1447085955,384059021,49473616,1024214667,57999522,2113988841,21948675,1946157629,408902,255676532,-385649408,339542325,-385649664,2105737550,208928806,14974593,-1207602160,48955393,1183432747,645267450,175570774,74760203,65781803,1342424737,-1964503408,-2125337688,268493950,1979665012,-525211638,2122531563,326369290,-401698730,-1202275329,726663172,-840412992,-1876301054,298772494,2122523371,58001674,-2097093143,-167506834,1971383878,209617167,343212289,956431009,108268102,-375799765,113705204,506,175570774,17596033,-1207601919,48955393,-397361109,-1073019720,2122439284,1962999820,172395475,-352191837,608565195,-998932480,-2145104512,83642055,-165418240,1954554949,608565171,-1401585664,2133091712,150750919,-166991104,1954606662,-62470245,1187446800,-352321290,-330921189,1996443678,108461832,-1779954032,1975520241,-163119345,149702275,972441227,-578817978,2377207,-385649536,-11075742,1996486262,5499132,1459574249,-385875528,87949084,1026129665,58458372,1040130025,142344448,2130772285,-14685949,209125206,-16091393,1996425334,-401698810,451671029,1963065405,-8918781]},{"sector":8,"data":[1963065661,-12195581,1963065917,-11540221,-389819669,51123350,-1928825089,1343678534,-1962853400,-964491146,71732032,1946157373,146714,-51838091,277760,138243700,1028355072,1853095952,-1962863895,-461311418,106335104,-489486159,1149878795,-230258140,2133189674,-196723968,1996428404,178184,-126419120,-956218392,263238,1996467179,309256,1354771280,-385798168,1157038287,1954578468,12970243,652742288,142016446,1342178488,-397361109,183173392,-1207404801,-397410302,1187451749,-1946158082,1178142278,-1959887116,1178203206,-2094629384,1963459710,-129594612,-1946270071,1183446086,608499206,-1961986944,1178142278,-1962511112,1183446086,105286406,1962427961,-196724432,1183516031,-1962677256,1183385158,-754404872,608996320,-2139037311,1175175435,608471302,-1207404801,-11534334,-1847003018,-25263360,-1959889669,1183448646,-401698810,244366729,-1961917464,1586230910,-763262458,1149868033,675596074,1048772609,1946157550,-301007100,1273545473,-1962737133,-947713922,73319488,621168011,-1993986048,108366599,1042049,41388326,637945227,621168521,145821440,-1993938733,1166869575,1200170508,608537352,172460326,637566757,-1978644599,-1744706940,206014758,31229066,1200170648,-269958386,-956093934,-268218,-2096597365,1996439750,-1404662520,-1981263850,108331007,-1995881496,2122577478,175374598,-1878493441,-1034033138,1187452395,-16776984,1183647862,-1873799490,-1544886258]},{"sector":9,"data":[-1984018805,2089016902,527695910,11304577,1343779856,1342732031,-1873756117,-1512249330,1977850448,1183383552,-14685190,922738294,1436156870,-1996488601,1996487238,3604446,-29950204,1794284035,1996423168,112862,1265539664,2122514432,1366622470,16154243,1996437108,-868810786,1984207363,1183383552,-562626564,69613311,69744383,737572607,1253593280,12106247,-941076398,-562626625,-1694730497,30594,-2197761,889129076,503989387,74776400,-1998057840,-465123364,199819264,-1168209151,-1618290685,-14024208,101353354,100918314,378209450,1183384748,-195655182,1390311167,-1706012080,31097,1358841481,635965072,-532248100,-1948100983,1066120286,721700747,-532272185,1183443153,108954616,-15239935,-956047754,41221968,-755969,1996485238,-401698562,2122570775,1450443014,632702603,145850112,1178331347,-1874364956,227207182,956327073,980748358,721975039,1996443840,244338912,-1962109208,126596190,1358448131,65160843,1346896452,-1545073008,108954381,-150506238,-2139048378,1996425333,-401698808,2122518108,326435334,956581515,91612230,-352321096,-280573,-2081929591,1962666110,-562626784,515131019,-465138864,1974486585,112645,-1070923029,-394854576,-1645736304,-465109241,146032259,971261579,58636358,-70935,1996480118,1976736506,2122514432,259326214,-1928825089,1343667782,-85455216,-16323678,-102179210,-1209482481,-1090319088,1183580155,4195592]},{"sector":10,"data":[-506231,1183647862,-397404442,1183579472,2130716144,-388822863,-1946532215,54330950,1025209344,1500774409,1946160445,1785161,540871796,1025733632,980680747,2122522603,208994308,-1964482933,-1744705401,233568395,-2132255093,-83760961,2123039604,-67140614,-1360460939,108954368,-2090634231,1962935422,-2147436467,2122533611,-562757628,-336953717,75400156,-1193904896,-1873805296,-1237784562,92127243,-335544392,112643,2123100299,201196538,-1962508801,-347082114,-226608889,-13958529,1979350585,-278620,-1070882837,-1946657141,-444586929,-1983378561,1996432463,2122536712,427034886,720389770,8332772,309643067,720389770,8332772,1962034747,112645,2122518251,91488260,-352319304,309251,-83105712,151420547,28837236,721611520,-689388608,-16363249,244322422,199736040,-955943488,4166,621168267,1183416320,105286652,-1996484827,-1946194810,-494433576,-2037803007,1183580022,251667718,-388822863,-9533815,-8616249,1183514624,805315846,-9795959,1963982909,105286179,-2037845980,272432990,-1073078668,-2033771916,65386,-821598592,-8616249,149618689,-1877969153,169011214,1080963,1996425588,-1549735920,-1961867639,1175128134,-1609337590,-467007989,78251523,78386827,-1995946359,1996425814,209125134,7973786,-196704000,-1995577624,-11489210,1996426870,-193528052,703073936,-1572435495,-6007159,1996468342,142016266,-16091393,798623862,1342177388]},{"sector":11,"data":[166203024,-1505326631,-1599580535,-467007987,78251523,78386827,-1982314871,1996479062,1380995760,1988926032,-1873805312,-656480242,-1982970231,1996476502,202619056,1392508858,112720,-401698736,-523118396,-3258879,-1779912586,-1983894771,1183424070,108461952,184859624,-1592757056,100860966,1183384682,74228126,-1954527607,-1493709242,-930349194,-9009525,640612168,-1983380732,-1946197874,244033094,-506395610,-11484925,-118971786,-1224781609,-253165728,-1639578665,69602955,-1056710191,-8239479,1996465270,-673585024,112773259,674166528,-1983380732,-1577098098,787940390,-930414098,721767073,731480646,66638274,-230258239,-150722399,-1962807762,88908232,-10189269,-775804007,-1983839240,-1098788282,268500842,1085806708,1183535104,-1706016524,21280,200951433,-385649472,113705115,66044,-9781631,91557888,-352321096,-1950340350,-461371834,281837775,-955890039,113703494,-1996112223,-1900494778,-1924129276,1343675462,1342183096,1944587920,-1912158249,-1593835516,378208342,1183383640,-128546314,309707275,-2013232224,-2069825978,-146372608,-2013231456,1183709254,-1202710846,-4564307,-1873784065,-381753330,1347469355,-840429936,6988257,-1582152055,1183383654,6857140,-10058103,115871376,242679735,-1962117377,1344207430,1089750667,-687740848,30033607,276726528,-1960938496,1200230494,635710003,1183383560,-63011894,158662657,1354771283,1407717008,-230257736,998393347]},{"sector":12,"data":[2114260998,84975889,-1954396629,-788234738,-1983829023,1183576646,1686504402,235289599,-1592623611,-2044001010,244055908,-506395520,1183433003,-2147239726,1347605035,-16091393,-1070921610,1384169658,-227082416,-2984193,-1224768906,1996488548,922701840,1347421088,501747344,-2081387642,130110,1688290676,-1605990144,-1996463455,-1070871482,-1560255325,914948194,-1063190438,-1371109119,28589699,-1207602176,49020927,-1063010261,1958742785,137821961,-401698810,922729216,244318644,-1950663704,1086817278,-150991176,61984870,1183443155,709135276,723928107,-1711316858,-120470997,-8485239,-1960033141,-372125618,1143718187,1652984104,-1535705089,-394234113,1177277863,65589668,-1996216314,-196703483,-1962654327,1177267270,65589712,738157190,1166650438,105286402,-1962523255,100900422,1166607398,1988528904,608537087,-9533813,-523040591,-1960557303,1166670406,273058570,-953793143,10309,1787202902,-397404417,1187510284,-352321366,1922992948,2122746879,-1962440193,-2046570938,1200226174,1652984580,105351679,-1985198549,1200292423,637928196,2122746116,-1438187521,-9271677,-1438217464,-9009607,117425023,-2091515410,1946221694,309253,28836843,244338688,-2087656216,16743614,914949236,1187446874,-2130706218,16739006,-955222768,31750,112640,172025936,1456895625,854068880,-1925452873,1343654982,735475455,-1873784640,-1524832242,745848843,378291853,112720,-401698736]},{"sector":13,"data":[-1072962873,1183650933,-1873799540,-1509758962,378291853,-401698736,2105779890,-1082916824,33308291,-1958185984,1789112902,-1270445312,-1962907997,-1543543162,1048772712,1946157086,-1605989627,-1070923029,-1962911069,1654901830,-1605989632,-1962908509,-1063014842,2092960513,-1180768251,-1070921237,-1835380656,-1962934217,1183394373,-897678422,-2095876864,130110,1996426357,112656,-401698736,-1873365570,-1985878002,25968259,721843200,1944604864,-63012087,1819541505,381830797,-401698736,1183571648,96379840,383534733,76462160,381177886,244338688,-942405144,130054,-1173960960,-956301053,16738438,1755220736,-829977857,-661940223,8554378,-2144042972,-9920885,574020867,-1634994617,-2021064856,-1073086378,-353893516,1753677790,1757316095,-914619393,33162951,1183514624,-1947679830,-1962868727,-266009530,1064192,540873076,1024553984,292814896,1946173501,-1592464623,300614618,-352023391,62300428,-660535317,721611525,-1763130432,-1962601207,1183649398,-11528482,1996426358,-401698806,1183704428,-11528474,1996426358,-401698806,983688540,112826629,-1543899392,1017184766,-1037330171,10746065,-431583998,-22982634,1356396289,-150863711,244338904,736486888,108935679,1049299572,45154814,216786899,17333891,1049298549,-405732866,-130613418,-164167933,2146867715,1183383552,-598308390,943128406,-562626811,736130815,1464881344,-402229505,-11140706,-16435146,1996483190,-29949984]},{"sector":14,"data":[1354771201,108461911,1442940392,87570175,-2197761,-1070863242,3604304,1996445442,23914502,943128406,-361300219,-1280257,-16646602,1459748918,-402229505,-11140782,1996479606,1979095770,2122514432,91553800,-352321096,178179,-1578088823,-523173378,953241,-1980107006,1183438406,142509052,-955747072,127046,-2080604463,1946158718,10807555,-935919786,-2133681661,1183383552,1996445434,-532247578,1089488427,1183535168,-431608854,-260636848,-1174396488,1347551472,8423066,1183536640,-700054562,1358710315,-1542401,1183579254,-398054420,2209872,1375793338,-2136434096,-1957298176,1177281094,1996443862,-59310104,736904843,-1202657210,-256245727,-1706012160,32969,-428409002,1222919819,1183535176,-431608854,-260636848,-1174396488,1347551472,6770842,1996445184,-2125030662,1743454208,384976525,-428409008,1088439947,1996443712,-465138710,-1873786808,-481695730,-230257322,244338710,-1947884312,1183443014,-330920972,-1946663287,1174658630,-230258218,-1981397365,-1923680698,1343681094,2129137296,-364475419,-1947056503,1177281094,-163149354,-230257322,244338710,-1008376600,50797032,75399944,-385649408,922681490,1996424114,1981454864,1183383552,309788666,1342181048,16777114,81152,1187449972,-939524100,16776774,-1070921493,-1979824503,1996487750,-25755886,-1694730497,27364,-1961724161,1452014662,-51714,1392505472,2139265616,1996423168,242679570,-15960321]},{"sector":15,"data":[-16646602,-16646090,-1962692042,1174603334,1996443658,6731784,1375771066,1330158160,922681344,1996424114,-2143642886,736821248,-15567105,-16529354,1996427382,209125134,33437439,33568511,50742923,-11531706,28838006,244338688,-1009990680,430312,209125124,-16091393,1996425334,1354771206,-1023360280,424168,242649861,-401698730,-1072964000,1962874996,209125122,-16091393,1996425334,112646,4974672,-1070923029,101247171,915080451,1049298204,787154140,-1996153695,1979710022,209125132,-16091393,1996425334,74907398,184556776,721712576,-1592529984,1178141980,-2096925190,189664967,-1194492426,-389873663,100730306,-351373685,1463126842,-16222465,1593771638,1975520010,-339727612,75399983,-2095025152,1946157693,41287450,-15960321,1996425846,108461832,1342177720,201310440,-1948879680,1979649022,112832,91547843,1988822272,209125124,-16091393,1996425334,1424512518,1958743039,-769750186,209190661,-15960321,1996425846,108461832,-8394666,997507083,96083595,-15960065,1996426358,142016266,1443264255,201286888,-1960807232,-16393698,1996426359,175570700,-16222465,-397015434,-1072955575,28837236,721611520,1122550720,-2097086459,27198,1788942196,105265408,-1202712716,726663199,1347440832,-1024979312,108954529,-15633408,532153974,-1070903296,-1873784752,-1582569458,84404419,1996424200,-401698804,-1072964368,-1880554635,-1908505856,57933828]},{"sector":16,"data":[-1962880280,-1901917114,-1811495164,-956301052,17076742,-1878604032,-1711276028,33874,-2096775517,1962935934,75538694,-2096740727,1962936446,75407622,-1962391927,-1633482170,81156,-1202709642,-1924136946,1343680582,16777114,-196703488,-1962522999,1183445574,105286408,-1962632541,-1667037114,209125124,1358954424,77608703,-1165686088,1347585293,-219672944,77767632,69265603,1996423424,-401698812,-1072964537,1048782196,1946158222,1577556510,104529920,326436286,294531,-1902049164,71710980,28837237,721611520,719897536,721420292,-1125625664,1958743039,124931,64284867,-1070923776,-401698736,922681559,-4717426,244338943,-942598168,303622,-1912158464,-956301308,302598,-1811495168,-1023410172,255208,1354771202,201291496,-1586268992,1178141846,-1593281272,1178141848,-2090634234,299070,-1070922124,18147408,-1559738741,1183515798,77112070,76429055,1358954424,-1175974256,-1908998192,-18428,-1607008432,-18428,1392508858,-401698736,-1566322671,-1845049596,-2097151740,300094,28837237,721611520,76587968,108314635,-397361109,-389873474,33555297,-1593418044,-1993997162,77111559,38242598,55306435,1996423424,-19011578,141869067,-1873756117,124942,53733571,1048772864,1946158224,108461830,-956269080,299014,-1811480832,384353028,-16711677,-1461189002,1958743038,1354771208,31985296,-18300160,-2097086462,300094,1048775797,1962935440]},{"sector":17,"data":[112651,251594987,-176946028,-1072971733,-1834938252,76587780,108314635,-402229505,-389873626,83886793,956599969,393547334,76691072,-1807842559,192217092,76560000,1354771201,-1023409688,16933352,74877697,76430987,-401698729,-1072986103,-167042188,-1873340555,-1310595058,-1873350517,1632270,244340311,-340659224,244340238,-352319000,-1878604026,-1023410172,67265768,108432129,77479555,-12618239,-16534986,-1710973386,33242,1459242633,76953343,77084415,77346559,77215487,62011135,1347469355,-1174387016,1347551334,8507034,-1305018624,-92864765,922698987,1603929424,1442840681,77479555,-1593477887,65733968,1342584481,8833946,-62486272,-1774780586,-1741226236,-1674117372,-1707671804,4831236,1375754938,-2141087152,-11141120,1352334454,-1023410042,117992,105286401,-2096848733,298558,922691956,-4717426,244338943,-3225624,-1207661002,-11468801,-1207656394,750421033,-1873784188,-836769778,-1023106397,102632,77635840,-1407283773,13363535,948510349,-1929329431,-384689634,512557245,-1226238792,2032045312,11528495,980688525,-1929336599,-383939554,512557217,-1695990935,236883200,9693462,1022107277,-1929343767,-385000674,512557189,2146121819,-786526832,-1871123656,113647245,-1919913493,-350744546,512594026,1676350358,-1675719280,-1872958651,326573709,-1919920661,-347921378,512593998,1206597857,1142853008,-1874793709,926359181,-1919927829]}],[{"sector":1,"data":[-351163106,512593970,736831552,-1742828144,-1876628723,1669602957,-1919934997,-349703138,512593942,267063652,-2128704112,-1878463689,929701517,1485832683,-469807090,1296912195,-1864856576,-326412987,-1193767394,1343129580,16777114,113408,-6663344,-2097151745,1562313453,1975520077,-215034,-369096502,65535,0,0,0,1942235995,920188696,656953,959844215,1979714566,212022788,-2061568,-1140870941,-1329856848,-1705993987,25506,-326412965,1125616430,-1967115453,736154050,-148081724,104412888,595001354,201734454,906262016,-1962931037,861361888,-775517504,-738242336,-1956749479,56319461,-370933791,-1933836369,777752792,1128470411,-326412987,869830174,-775779648,1942236128,920188898,656953,959895927,1979714566,212022788,1457556224,-1967115433,1356911046,1599722495,49120094,1562371467,50813773,-883751199,16973953,461677,16973896,540070,327744,16724823,16974240,542781,16973889,544440,16973892,544454,327749,78750,144101,70448,16978434,294427,16973926,286039,16973927,542602,196685,16712629,16973974,539374,196687,16714114,16973976,557413,16973904,489942,16973914,558081,196690,16720131,197019,16720139,16974236,140308,16973828,493579,327773,79192,210295,16728700,16973983,550781,131159]},{"sector":2,"data":[96749,134163,81114,16976917,545504,131163,16724826,197024,16728804,197028,16728787,197029,16728774,197030,16728713,197031,16728657,197032,16729425,328105,70445,16978434,542696,196706,16729345,16974250,542591,16973923,546752,196709,16737014,196909,16737002,196910,16737018,196911,16737010,16974128,539754,196713,16737006,131377,78196,208678,16737022,196915,16734855,197044,16736998,131380,97091,16997037,540029,16973941,493656,16973825,353152,16973841,490180,16973829,480048,16973830,480058,16973831,542631,16973953,557452,16973825,475811,196617,16711888,16974154,543665,16973954,554498,196610,16713396,16974155,542791,196739,16714091,131404,93552,224704,16713965,196941,16713257,16974158,531563,327814,78193,208678,16713244,16974159,482849,196623,16713795,196944,16728569,16974161,557474,16973833,482958,196625,16713263,16974162,467882,196626,16728578,16974163,472813,16973843,486458,16973845,472026,16973847,471868,196632,16746528,16974040,551723,196756,16738877,16974300,468485,196637,16738269,16974301]},{"sector":3,"data":[467627,16973854,558731,16973974,483391,196639,75388,206415,16740444,131551,100095,17008083,468503,16973856,537493,16973976,484271,16973857,482811,16973858,467417,16973859,528492,16973980,492492,196644,16729161,16974180,558786,16973853,539052,16973854,471881,327718,93549,17001920,545549,16973857,558713,16973858,538883,16973863,493569,131119,78753,209637,16715177,196978,16715094,196979,16715086,16974196,558753,196653,16728484,16974197,468283,16973877,542804,196655,16716889,16974199,544193,327728,100092,17008083,544212,16973876,539879,16973877,472589,16973886,471903,131139,79195,16987511,461502,16973893,472055,16973894,461559,71,0,0,-2081649835,1448548588,-1710983425,773,-141821813,-15939965,28837494,748310528,-16777216,-1207717322,-1706033151,481,15353543,26667264,1612973194,863313980,1946224118,108461870,63452927,33178,108461824,721831051,1342471686,-11485141,-16482762,565708405,15776256,-1533390766,-2097152000,1962937980,108461874,63452927,96410,108461824,-1962511105,-120518588,1342456835,-1207274241,-1202716671,-256245727,-1706012160,404,-167698967,1148454916]},{"sector":4,"data":[1946224118,138709823,72484395,200296073,-955941440,61510,-16353537,-16528842,-16495050,1183516276,66638320,-11533244,-16494538,721703478,-1202696000,-1706033151,65535,32261831,604277248,1963015171,108461878,63583999,-1157627976,1347616767,-768882805,-1070870389,1347602059,1342177720,-16354049,1962869876,141885194,16777114,1975520000,-955913373,60486,-16353537,-16516042,-1711015370,65535,-16353537,-16519114,-1711018442,65535,1460041471,108330838,-402361089,2122514608,678691052,-16353537,-1710927818,608,-16353537,1962870388,175439620,-1207405313,-88473463,-1706012160,65535,1954546934,-230257365,1962889238,74776326,50742411,-1957688764,1141048388,1067077640,-16777213,1183647350,-1706027278,65535,-15677821,1166797382,-364496630,1609106301,108462078,1342177976,16777114,74907392,253082,-1956684288,113401317,-1873273344,-326412987,-2585058,1996426358,142016266,1347469355,-2097148952,-443874579,-900899553,-1957363704,149717996,-167223669,58000391,-1593796887,1183384498,205929466,-1706028427,65535,200951433,721778112,9365952,-1878493441,327411726,-1979955575,1996488278,140413946,-1710327809,683,200820361,-12290880,1586170998,17298954,1352729972,-1593447676,-120519600,50880139,-11532729,1996424311,-25755652,737834751,-1202696000,-860225504,-1706012160,65535,-362753,-6621066,-1593835265]},{"sector":5,"data":[1178141618,-14912244,-6620554,-352321281,209125138,-16091393,1996425334,74907398,-1207819032,-443875327,705117,-2081649835,1448547564,-1962647925,1586168391,541534984,-1947318647,126551134,721968779,1183391303,108462060,16777114,-1946645760,214336503,-768313,140413951,607340426,1971338432,73370427,-2146809866,1183658612,726669046,-4697920,1979666687,105220872,-2053484480,-1929379837,1343682118,-1149185,-1785009034,184549379,-949848896,-68538,15746759,172329728,2112898617,-163148464,1962889238,74776326,50742411,1346374212,50611339,1346373700,16777114,-163148544,1996443670,-327745554,16777114,1958742784,50656788,1187448692,-335544588,-263812305,-336312695,-263782617,-351222141,142016424,-16490869,939459191,16777114,212224,100010613,-955943679,-134074,-1710852353,65535,1593067147,1575324511,1426065090,-326898549,1996445204,825864,1183383552,-2082960386,1946159231,109019910,-15829760,-1070921610,1347440720,16777114,173968128,540231670,1200295028,-27358432,-1996077269,1586168902,138906622,990266883,2114260998,84975881,-1995946197,2122516038,92078086,411335,75399936,-955941632,1094,384714381,108461904,-1962641665,1200356958,105251592,105352016,1342457347,300954,142016256,125338,-163148544,-1070903274,922701904,922682640,-1214642930,-1929379839,1343680070,384714381,-163148464,-6664170,-1207959297]},{"sector":6,"data":[-768901120,-1070903214,-2001055664,-11513216,1996484214,-230257680,-1947318741,-788234738,1354826721,737429131,100921414,726664320,-11513664,1342414902,-26032,-259325952,1575324510,1426065602,-326898549,-11118794,1183648886,-1706027310,65535,31082123,1586168902,243237640,-385649408,1586168065,17298954,1352729972,-1593251068,731448400,66638274,1183385158,140413938,-1995683957,1200354886,-1992278002,-1072968634,-823590027,-1706025472,65535,200558217,-385649216,1183514813,-1202708788,-1873805303,255191054,1183576203,-1202708788,-1873805304,254142478,-15992693,2117685876,-11701004,1996426358,74907634,516703883,-241543344,-1929379835,-969211579,1996443517,209125132,-1915986293,1344143681,-953432437,-6664120,-1962934017,-936642994,74907473,-1915986293,1344143681,-953432437,418074696,427095563,1978957369,209125140,-887041,1183515766,1448091340,400282,-196703488,2126920520,209125154,66471563,1342521862,-1962641665,1083034718,-1957683711,-970197946,-6664120,1577058559,1575324511,1426066114,-326898549,1589925378,931866116,38243110,1946288445,33701166,1048790645,1979646006,-1202301317,-11534335,-402638282,-1202713609,-1001390079,-14285730,-14284681,-1830287753,-2091259133,-16763330,-1202317708,-11534335,-402638282,-1073017905,113706612,-65482,3554947,-1003129345,-2128214946,33555071,-2128205198,34144895,-1960435081,883099207,1200301573,87466760]},{"sector":7,"data":[-1070901674,976682832,194111488,87341136,518224,1575324510,1426064578,-326898549,-1957275896,2123040886,-1427614204,-1070903285,204990544,112726,976682832,190703616,1459373705,990613736,91618374,-352321096,-1547687166,1187446842,-2080374790,12350,922697332,922682202,-396951504,1183447998,-59310086,542874,-28931840,1603000459,-754667262,-153615389,1946356807,-92372213,-955941888,-67002,-1694730497,2357,540230902,-1444347020,-92372224,-385647616,2122514592,58064634,-402614295,-11138776,-396886922,1183447910,2109737978,1007077211,1023410176,225837053,3802823,1187446785,-352321286,-286763476,105265930,-11132044,-396949898,1183447862,2109737978,1077838599,225771520,3802823,1048772608,1946157120,-92372218,1443986432,-1191414017,-397410303,113705728,64,16416387,1048783484,1946157120,1007077155,-16777216,-16557514,-1207947210,-397410303,113705801,64,113706731,65600,4210307,-402426880,-11138911,1996424822,780538,1577613288,1575324511,1426065090,-326898549,-1957275898,1996424310,112648,976682832,168683520,-1996077431,-1705968570,1014,-2080487799,13374,882969716,-28931840,-1996476255,1586232390,41368062,-991362187,876512000,359923712,56243967,3159807,1342177720,-16596760,-352101834,142016272,-1207535873,-397410303,1996423740,-59310328,8435798,-401698736,-167048133,-4717187,-1962742785]},{"sector":8,"data":[-27358266,184698761,-1955562250,-1312388101,65065732,214402040,1963984374,50722317,113707125,65596,113706731,60,3161731,-162892544,1165234181,-1207404801,-11534057,378208885,-1070923718,1347602059,16777114,142016256,-1560132213,-1957691344,1200293982,105186078,541559632,50611459,-397408187,1520696005,-955847933,15366,108461824,295322,-1956684288,113401317,-326413056,1460857987,-28915882,2122579967,159186948,-1962385781,-347600313,-1983894782,548991558,-163149490,-1946663287,78710398,2114185171,214401800,-1996077685,1166798406,-62486268,2123060971,-754667258,142476263,-1962096765,1965816950,-297366780,-1996077781,-166988730,-963967363,-259270409,16023171,1183516797,-1982269452,1983509574,-2095218954,1946219646,-129594601,2146715193,-196703473,-1980217719,1183577718,-28931834,-16222465,1996424822,133425156,990267017,-1770655162,1593722507,1575324511,1426065090,-326898549,1017206280,138813696,4064967,-1070923776,-26032,-6684672,-956301057,13830,175570688,742554,-96040704,1200347275,-129595134,-1710590209,2955,-15960321,-1070921098,9103440,983691403,-28931840,292864011,-15960321,1996425846,1354771448,2095582864,973522698,-956301312,12806,142508800,-2094566400,1946222206,209125136,1342247608,108461910,-352028929,209125132,1342247352,1354771286,151099984,1996423168,-26100,-1073020928,1586176372,860326412]},{"sector":9,"data":[1077723172,2139297140,259260468,880279379,737703679,244338880,1577719528,-1034033781,-1957363702,49054700,1074186070,-956301312,16791558,1007077120,721420288,1513503222,-399281149,922682784,922682202,28835888,1055412224,-1012992,-1711056330,65535,816037931,56271616,-16222465,1996424822,2091012,2122519787,242483206,-16222465,1996424822,780292,-963907445,1575324510,1426065090,-326898549,-950642938,64582,-1710852353,3176,1972107403,2096499458,-1310815476,-1948003580,1183387201,75400188,-15764480,1996425334,-1070901754,-401698736,1170671967,-254,1201276534,-1962934259,1600060486,-1034033781,-1957363706,49054700,73319510,74943270,38243110,1946222653,16923938,71124596,1025012737,125042949,1946224189,-1002443977,-2094660514,1964115071,-1005917387,-2094660514,1947337855,73319465,74972966,-286781808,200313604,-15895050,1996424822,-26108,183173120,112726,-401698736,-1956773881,79846885,-1873273344,-326412987,-2082959842,1448553196,3554947,-385649153,1048773345,1946222646,112645,-1070923029,-1292663,-1207933898,-11534335,-402638282,1183385095,1975520216,45607171,1023952523,1903427597,1967980861,1010729735,1702166528,-1697089793,1829,-1980742007,1187510854,-2097151758,14398,854077301,1958742788,874416936,41911040,-1961329408,1603006558,-754667262,-262274077,51136502,1187448180,-1593835022,1183383604,-16390]},{"sector":10,"data":[-1946526069,2122383991,1951072264,142508295,443893760,-335544392,1681325848,-663290112,3946239,1347469355,-369286936,28836393,-62486272,1023952523,1651769376,-756481154,1958742785,1785163,1048785268,1962934328,-226589946,-1959168768,-167746530,1948267335,943620871,678756352,-362753,518522998,1090030340,1206453108,-954864895,15366,1681325824,-663290112,1347469355,-54794160,-16559128,1285216374,-385875961,1048773049,1962934330,-663289877,3815167,1342177976,184725992,735671488,11004415,6561419,540231670,-135724172,943620864,1333067776,1962933891,-92864750,-59310250,-1946438936,57950456,-402597399,1183515388,-96040464,-1948742832,-11140489,787020918,1975925508,-663290091,3815167,1342177976,184702440,-385649216,-4194438,939968511,-2097151744,14398,-1746336907,-94467328,1208633227,1408648841,-59310250,-1962675992,-58817544,990150144,-2096464130,2097216638,2097036147,-663290001,3815167,1342177976,184681960,-1587710784,1183383610,-663289864,112720,32565328,-1577826679,1178140730,-12487432,-16751562,28891254,-1779937280,-196703236,1356351113,1100186,-96040704,-335544386,809403155,57999360,-2080446999,1946219134,-19076861,1459255039,-386107649,-125107347,58064443,-2080454167,1946217598,906413850,-16776960,-1207933898,-1706033148,3917,6567679,-16503064,-16751562,-396896138,1586231685,-1312322566,65065732,206042840]},{"sector":11,"data":[-1959758576,133626462,-953649919,16791558,1025960704,-1988868096,1967849533,-23271165,1967980605,-23795453,1968177213,-9311997,-939649047,14342,27977728,-1697089793,4233,15498883,-4715148,2147465983,244338770,1577061864,49120095,1562371467,313933,1167087646,518818645,-326903666,1040631576,-1962934016,1451951686,-297367288,-2114955639,1971322874,-49915,113717108,-65482,6567679,1342178488,16777114,1681325824,57534464,32130759,6594818,-337099127,-398029489,-1159180266,1044284406,57999360,-1929342231,1343678534,-1202667477,-1202716160,-1202716151,-1706033151,4012,200951433,-1927449152,1343678534,-1202667477,-1202716416,-1202716409,-1706033151,65535,695517195,384321165,178256,-26032,-1073020928,1048815477,1962999862,-92372072,-1919781632,1343678534,-335822872,1514046352,494141443,56237707,271796214,-1202515083,-1706033148,65535,56243967,16777114,-26112,1692991488,49120255,1562371467,313933,-2081649835,1187448044,-2097151746,1963000958,138840837,-1070923029,-2080618871,14910,512434293,1207304292,645138482,1077102582,1187455093,1392509438,1342177720,33155152,512429547,2139291748,108265524,-1993062517,2122579014,561316100,972965515,427034182,-16762205,-16751562,28838006,1307070464,142016506,1090970,-62485760,-1034033781,-1957363706,876512236,259260416,3159807,669850,872859392,-1962934272]},{"sector":12,"data":[1438866917,1048833163,1962934324,809403155,208928768,3159807,664986,3449600,-1962920799,516120037,1430622296,-1910575989,82609112,-1946801322,456984134,1998877696,212268,305995124,-350391296,1208008195,803980939,-347078466,1258340087,12514027,-1091703987,-387252197,-347274818,2440675,641591156,1037464576,-495714265,1946167357,1590553555,-1962742397,1297948645,1426064074,-326898549,727078668,1996443840,296720900,-467009536,-1962654071,2139817566,2113866498,175606532,108461902,112727,7071824,1183578251,-1311274234,65196804,787906,-939637111,64582,133617803,-1960217340,1077939783,-1946532215,1191180894,-1744336134,1039943305,-277610464,-11485141,-6620042,704643327,-62486044,956581515,74775622,-1586104517,956581515,91552838,-335544392,1590135554,1575324511,1426064578,-326898549,-1957275900,2122516598,276627462,294531,1149961854,132859914,65781803,-1996077429,1183579206,105251076,956974219,125568582,411335,-2096239872,2097153662,172264199,105285960,-1324974453,65524484,214402046,972834443,91555398,-351910261,243106568,-339774464,-1956684045,113401317,-326413056,-1962742653,1200293982,-28931788,359972875,607340426,1950366912,75399948,-2096139264,1946158718,142016265,-1996485400,1183579718,1575324670,1426065090,-326898549,-28915966,1586167808,860326404,1077723172,-593427083,-1961432317,1207305310,276039730,-1995290741]},{"sector":13,"data":[-1072955834,547423861,-28931836,-1946270069,46292453,-326413056,3278535,-6684671,-16776961,-1710880714,65535,-1979425141,-1071369401,611598396,-401698733,1996423354,18266116,74907472,-11485141,-402638282,726728523,-1706012480,2714,1342177720,660122,1575324416,1426064066,-326898549,2122536452,1148452870,294531,1187448692,-351997700,-62470395,1996424088,239442438,-259325952,-1946394997,1149829703,-1995994352,1200296516,38218502,-1961606007,1143669831,373590290,-1710852353,3824,1575324510,503317698,1430622296,-1910575989,1007077336,-16777216,-16751562,-1207933898,-11534335,-402638282,726728375,1347440832,-2081006360,-443874579,-884122337,1167087646,518818645,-326903666,-1957275890,-397015434,-125042999,58064651,1459671529,-1705983957,65535,1048836235,1962934362,-339727612,112643,-1980086647,1183446598,-196703748,15877831,860157440,-2094565952,17112126,512434293,2139292892,376766730,32786119,373195520,175440128,33179335,-62470400,1156972545,91496499,32786119,-1103742720,-955615999,128070,33179335,860129792,-2143502300,1156978037,91554866,32786119,-62470400,1187446785,1459618294,1357906104,-1695254785,5229,-266291113,-59310256,1342106,817387264,1996443888,344431350,-1202257920,-11472800,-1801784714,1459617812,1357910200,-1694861569,65535,-310157474,535137026,46812509,-1864856576,-326412987,-2082959842]},{"sector":14,"data":[-950598932,64582,-1962260850,-1977218946,1004810757,175375942,108314634,-62455993,1183575275,-310157316,535137026,113921373,-1864856576,-326412987,-2082959842,1465257196,556675,-840367235,209125120,1358792936,1342177720,-125720,1050282614,-1962934253,138841072,-1962764056,1207307358,57942067,-1962896663,8398085,1963345467,8775939,-1962117377,75012,-6681996,-1996488449,686553670,16777114,-96040704,-1962123637,104531013,343672070,723797899,103489607,1161364742,1208316424,65788043,-1928831605,1343681094,-16353793,1166738549,172294918,71666512,-1705983229,1145,-1912965377,1343681094,115866,621054720,225705985,-15960321,-6620554,-352321281,-92864760,16777114,2133164288,105286655,1996424457,325622282,1583284224,-1962742397,1297948645,-1946154806,1430622424,-1910575989,1022133208,-1983892649,1183441478,108956644,78185867,-1705806592,65535,-1946401143,1200426589,-1202708990,-1873805303,-23468018,-506231,1183710326,-1706027326,1288,63063691,1183435334,-59310108,-1928438389,1344143943,-1694992641,1467,-1948023,-1315242890,-352321515,1979682851,1226766,1183651408,-6663962,-1929379585,-1959336354,1183384135,1200305890,-465139452,-1948105077,-2090867626,-443874579,-900899553,-661913598,-1957345904,-661774612,1443556483,142510935,-1707837953,5387,-1070337909,-1070447114,111215476,-62486267,1144635443,956658694,393545796]},{"sector":15,"data":[1463055871,-231681,-1962639818,1160456773,362434598,-1929379836,1394013278,75370123,-62485679,139199312,105120593,361273936,243990528,854066116,-96040192,75499051,-1946794359,-402405362,1996423201,108461832,-399215105,1979705594,365074996,1583284224,-1962742397,1297948645,-16775990,-1927936394,1364259910,16777114,-661863680,-1957345904,-661774612,1444867203,242649943,252477059,1586318965,1393972960,-1705830826,65535,1474330251,63190783,19866,-1070377216,1149980752,642001706,742689616,1344816171,1342238904,1342185912,28570,-11053568,-402640842,-6625158,855638271,317430208,209125206,-16091393,1996425334,-26106,1583284224,-1962742397,1297948645,-1325397302,-1914571248,-134017924,50345155,17808896,56654080,18168576,53999872,134396673,50349056,118574593,50352128,17826304,52592640,18026752,56853504,117789697,50354688,18171136,54004224,135680769,50352640,-15441920,50371328,-15479808,50372352,18319104,52073216,135665665,50355456,18196224,54008320,18304000,52009472,18324992,57121536,18191616,57058048,17024256,55649792,17099264,50475520,118919169,83888128,-16709376,50421760,17796096,52606976,118950401,50333952,134305793,50331904,134225665,50332160,18275840,56900864,18232320,55754240,18024448,52772608,17825024,53788416,134301697,50333952,17561088]},{"sector":16,"data":[52675072,17822720,51266304,17474048,56804608,16838656,55496192,18215936,37277952,-16708608,50421760,-15285504,50422784,135756033,50339072,134389761,50340352,18012160,53959168,18294016,57039360,16994048,56942080,18235136,54059264,16854272,55403008,135747841,50343168,17144576,55764224,17501184,50849024,17083136,56978176,134363137,50344960,18009856,56880128,17438464,53637888,17730560,2618368,0,1167087646,518818645,-326903666,-11118816,-6680970,-1996488449,-661914554,1963001846,209617676,-1962511360,1200162374,-1983894776,1183441990,-163149334,-1995815285,-125047738,-1995946357,1988884550,214336508,15091399,22931712,949379,-1705633932,65535,-1980610935,100922454,1149830224,-339571958,172279560,1386283008,138709252,15105667,1183384437,-60912658,1963001846,12511491,1613038730,-96040704,209043467,1088833163,1946830649,9496835,-1980348789,1586225734,-431584260,172439872,1183518325,172243446,1149961854,-498693878,-15829249,2122574454,74711290,65781803,50332088,-11475386,1996481142,183298296,-2082322807,1946221182,2114323253,-129595132,-1995815797,2123101766,-431584276,1089095305,-1948236151,1194982494,-15502070,1996426870,1996443878,-126418954,-1995787800,1586225734,-431584260,172439872,1183516277,138906082,-1962640247,1149892678,142344966,2112126521,-461469380,83245035]},{"sector":17,"data":[-1961593504,1141110854,-60912886,2114471739,-427916523,51344384,1183575678,-129595128,-1995946869,2089414214,-129594620,-1962523511,1174473284,172264440,2113291833,-163149565,956843147,58584646,-1947318647,133626974,-1962380031,-956043706,-2082191735,1191121094,-60912666,971392651,58591815,-1946249751,1177281606,-2147089654,105351428,-1948023,-6680970,-1962934017,1600053830,-1962742397,1297948645,1426066122,-1957237621,1149895798,1019225139,-166235072,1965044548,860157452,1443263504,16777114,112640,-1070923029,1575324510,503317186,1430622296,-1910575989,1988843224,1654281736,184549378,-1978305344,-1071369404,208945212,-1996077429,-397003708,49020837,-2090942421,-443874579,-900899553,1478361092,-1957345904,-661774612,108432214,47028822,-1073020928,-397015948,-2090926215,-443874579,-900899553,1478361090,-1957345904,-661774612,-15930237,1996425846,108461832,-1728050760,-6664110,-1996488449,1996485702,-6664182,-1996488449,-310117818,535137026,113921373,-1873273344,-326412987,-2082959842,-1957290260,1187449974,1442840814,16777114,1975520000,29747459,637951684,637695999,638089215,-1710852097,65535,1039287945,175374592,1946223165,-373282018,1187447202,-16776724,-6681994,-1996488449,1451876934,1975651300,-941430007,60486,1589962219,126494434,1183441962,75238,1961641531,22341891,637951684,-1006352501,958849630,57934151,-1962851863,203810374,277760]}],[{"sector":1,"data":[-605486219,539904,-655817867,-297351424,-1070923775,-1980348791,1589962822,1200301794,-96040701,876907350,1358186121,-362753,669574774,-163149567,896909323,-1995291509,-1072958394,1156977269,208930866,-1996218207,-1705577402,65535,-193527978,-362753,-135731594,-163149568,91537419,31999687,860129792,136700970,-129595136,695582731,15236739,1190536053,494207718,16154243,1048778612,1962934378,1996445200,-92864524,1342210232,-270004592,-163121663,-2091158271,1946220158,860157452,-2096729056,1946216574,-159481015,-2096270336,27198,2122529909,913637624,-394362026,-1206094848,451608850,-352317256,1161219,-26032,-1073020928,417923965,-1203639297,-11534063,-1070859658,1375732154,82221648,2122514432,678756600,15236739,1190535797,477430502,16154243,1048778356,1962934378,1996445199,-92864524,-1873756117,23128078,98715267,-2132392202,-1981217931,175570942,16777114,-297366784,49120094,1562371467,576077,-2081649835,1187450092,-2097151750,1962936446,11069699,-16222465,1911031414,-196703999,-385649344,1187446934,-16776454,381160054,1996443649,1354771208,85826128,1996423168,105945608,1183383552,-196703234,-523041615,100550147,1183383564,-153580554,359927815,-1207273729,-11534057,1183515255,1347590644,16777114,-161576192,52758410,-62486272,-1710721281,1364,-16222465,-1070922122,-401698736,1183384631,-1965519882,206087,-506231]},{"sector":2,"data":[-1710870986,1493,16285315,2122516085,74711292,33181312,-1946532213,146955749,-1873273344,-326412987,-2082959842,1448543980,1183577643,139394824,1299496971,-15698177,1183518326,67118342,-401698736,-125107237,896859915,1963197942,241011495,1983461259,-1962705656,1166739574,507527182,209125200,1443526399,476570,173982720,50726,103692031,437402,1590070016,49120095,1562371467,838221,1167087646,518818645,-326903666,209125124,141210,1958742784,176063278,-148343808,67110470,1996426357,142016266,-1996479512,1996425286,175570700,-1962379521,-2145057210,-6664192,-2097151745,-443874579,-900899553,-1957363704,183272428,1187468887,-939524104,63046,-1710852353,19,-113015,1996424822,1354771204,350752400,200837891,-1958382337,1200356958,-129595126,78770315,-293345581,-2081225968,468389062,-2080878849,2080438398,1962359578,268760598,1149961844,-163149566,-1592725885,1178142254,-2263562,-1710870986,1716,-1710852353,1883,1593329291,1575324511,503317698,1430622296,-1910575989,283935704,1187468887,-2097151752,1962938494,-373282043,1190593027,1946681350,-1983894776,1183386694,105314058,91488512,-15841593,276234239,-1961986305,2426438,244338692,-1962775832,105314296,1551106560,-1049297141,105789067,69724247,1149878315,105154824,504382861,516393808,172264272,-523041615,-953432573,1342178349,16777114,172818176,268725379]},{"sector":3,"data":[-1996209013,922742854,-744880594,-16777215,-16372170,-1070862218,-26032,28835840,24242432,15877831,172395264,1946961419,105313804,-1960217596,1183386182,105314034,188773504,-1971751681,8398085,1475888777,-1962694424,-1593422282,1183385134,14936336,-15960321,1894255222,-230258430,-847921141,58064651,-59671,-1710870986,2042,201263849,-15960577,1083838582,-1962934264,-1593119760,1183385134,1312197392,71600902,-1996484603,1996484678,148281872,1996423168,-260636912,-1705983957,1898,343261195,67520246,-991362188,-227082242,16777114,-21370624,-15698177,1183518326,67118342,-401698736,-125107901,209059595,-1710196993,2246,183234699,-1996083551,915083334,1183516238,71600624,185222399,-1960872705,-1924129081,1344147525,-1324727157,65065732,768027590,-1706033148,1477,2122520043,259391246,-1324712821,-2081959164,-33353489,-1962096765,2133132870,-129627392,2122515849,108331250,-2147277440,-1070923251,-1995946871,1183516228,239438322,-1995946357,1190527557,376705030,82745936,1183383552,-2133292038,1996423439,148806152,1996423168,87071248,-1981218816,-2090901762,-443874579,-900899553,1478361100,-1957345904,-661774612,1988843095,108956424,100244054,-1073020928,-16035212,2088967540,896794642,956571809,762581572,-1877838593,25552910,1197255,-2095125760,1962939004,843380248,-15567864,-1207721930,1385758721,-26032,1149829120,310149906]},{"sector":4,"data":[-15895552,-1070919052,-401698736,48955932,1600045099,-1962742397,1297948645,-1325398838,-1914571248,-134017924,-1864856381,-326412987,-2082959842,1465255148,-16220541,-1070398091,-16741911,-610661770,-1962934265,108954608,-1961724928,-1073018810,1144775804,-402230518,1189871549,172264336,-335563544,621120331,1183383568,-14387974,1996423797,1354773256,-1528295792,-62486017,1946157069,175570702,511130,-62485760,-2121256213,64078,1166743157,138820354,1183518325,103719690,105789065,350996363,-1928269949,-130347964,1996467059,165779978,-1070399488,-310157729,535137026,113921373,-326413056,105286486,1946437131,108461875,-1710983425,65535,1086058635,50680576,-6664192,184549631,1343583424,931780747,1394492227,-16353537,-6683530,1476395263,1575324510,-1946155838,1430622424,-1910575989,4372696,1882192,172726864,-1073020928,1347426932,160930384,-661979136,470042567,38258432,379256831,1476395018,-1962742397,1297948645,-1864856373,-326412987,1457032734,105286487,745848843,-1706012592,2702,1150021771,-23074806,-396950293,-276627339,205819152,-227280837,696218,136157696,28311552,-310157729,535137026,46812509,243968,146342891,-1864856576,-326412987,1373146654,-16091393,1183516790,67118342,-401698736,190447195,555578560,-661977522,-1054668917,567408464,105286415,922683145,-509999570,1476395018,-1962742397,1297948645,1426065098,-1957172085]},{"sector":5,"data":[1166738558,1958742798,67499788,1342600448,714394,268826368,-16223232,244318837,1610562280,-1034033781,-661913598,-1957345904,-661774612,1443032195,-62470313,1317076992,1946157064,142016303,705690,-1947170048,1144718918,1024815882,276561920,-1946304280,1058053,1166739060,-62486270,-1710721281,2875,1610368651,49120094,1562371467,313933,-2081649835,1465256684,16271047,71731968,-16366079,-1717957514,-1962934261,-25872,1183383552,172264438,2081048121,13232387,2131248697,172395512,-171800,922744438,922681420,28835918,-6664192,-1560280833,1183515970,-28931830,-946836757,64070,-1996077429,92998725,1962935333,241011520,963959563,503465869,637008,-26032,1183383552,241011708,561252155,-1913227521,1174602311,1344159996,1177225099,-1706014468,3103,88212995,-335919479,105286400,-1946532351,1178335814,-1996261640,-947652538,-28901616,956843659,41811526,1352764907,-129629948,-401979765,1317797057,72231928,-1995815285,166460998,-2096476791,1191121095,-28931074,1913144891,-159973393,16777114,209125120,770202,-129594624,-443851169,705117,196633,66618,208504,67704,217732,16714054,16973974,461411,16973912,461372,196698,66280,208402,67846,16998546,461442,16973829,460808,16973830,461665,16973831,461803,16973832,462041,196617,68724]},{"sector":6,"data":[217790,66646,16983359,459929,196627,66053,216268,68594,211153,16712612,196970,16711772,196973,16713259,196975,16714834,196977,68817,16988385,459415,16973884,459427,16973885,459527,62,0,0,0,1167120524,518818645,1465309326,350470195,-1705947056,65535,-1709307165,65535,780375,-310157729,535137026,1439386973,-326898549,71731970,-402415453,-119010729,95807492,-402527000,820512403,9037825,-402285592,-51902216,571403,-26032,1085800448,-157200384,1049861,17406544,379781120,73328644,16777114,88776960,-1588528943,-120519348,-26032,922681344,-6683128,-402652929,28839480,1389505408,1354771280,-805258672,-1588572078,103482638,-11533208,-16445386,721709110,-11513664,1342414902,-26032,883097600,172877830,-1962933832,46292453,-326413056,1460071555,84975958,1645120409,-1543899388,171771362,-955875840,168157702,4241408,964688,98709239,1342195205,16777114,-2081387776,-761065786,-2084140283,-1566372154,-2084140285,-1163718970,-2084140283,-626848058,-600405755,85112836,-1070903266,922701904,245433616,1745234693,-6664188,721420543,-1592595457,1149830420,-2082567422,413208262,105351429,-499238585,-941064443,580,-964436341,84844814,1577469833,1575324511,-326412861,1444211843,15615687,-294221056,1438181073]},{"sector":7,"data":[-296842752,-754851456,-264074784,-2081536257,2080960126,571620,28856400,-1924116480,1343680582,16777114,-330921728,-26032,1352859648,-327745787,16777114,1354771200,122266,104243968,1342177720,125338,100967168,1342178488,16777114,68985600,1575324510,-326412861,1460726915,74877782,1347469355,-1710852353,65535,-125107063,964695,-263811760,-6664170,-1962934017,1149891654,-230257916,1577206921,1575324511,1426064578,-326898549,-1202301134,-4584427,-1706011905,65535,1342575779,-1728052808,1790464082,40745474,1922715730,-16777214,-1207561162,1385758723,-18352,1392508858,-26032,922681344,28837396,1347590400,-1173611080,1347616767,16777114,-834238208,101988095,-26032,1183383552,-6663984,-1996488449,1451883590,-60898050,50087555,-1559786714,1586168928,-62487556,126559746,-1207673181,-1952907200,1183054942,-1960443140,1846446351,-1543899388,1085801578,1586206976,-62487556,260777474,74452617,1822685687,-1556070396,1788937320,525572,-1207671133,-1952907232,1183054942,-1960443140,1980664079,-1543899388,548930674,1586206976,-62487556,260777474,74976905,1956903415,-60912892,50087555,-1559786714,1586168954,-62487556,126559746,-1962639709,1183054942,-1960443140,75539207,-556251449,-767113469,451608586,-2082972021,-1006315450,-1960379266,1435182597,-1995994878,1182990935,1183515900,-766574638,-596262901,-1697614081,65535,-1697614081]},{"sector":8,"data":[65535,-1962597912,-16363490,1186464887,-11526651,-1711030730,65535,1342180792,119194,75801344,62011135,383403661,-26032,1183514624,99394522,-1545320821,616432674,2147465220,-964471216,-32118778,1350565560,113673046,-1191310616,1448116221,-402209149,-54985217,-2091495297,-186120506,2147203325,-964471216,-35002362,1350564536,113673046,-1191321880,1448116217,-402209149,-122094125,-2091495297,-924318010,2146941181,-964471216,-37885946,1350563512,1342519480,-1577209112,-523172736,69731843,-331940016,-26107,111345664,72786181,-120457007,-1593550173,-1181154216,-101253117,-788243293,-1207687618,1344144624,75380479,721749665,721692678,1342472198,50603681,1342471686,721749665,1342472198,308122,60340224,-1070903266,648106064,2114323204,922701828,1201276166,-1593835519,100861190,1688405120,69640452,69993987,-150993991,73573353,-443850914,-1957313699,49054700,52954766,637934241,-1906664541,-1593628154,-1557789156,-1070900579,-6664112,-1962934017,1438866917,-326898549,1354771202,-1157627976,1347616767,336282,1354771200,-1157627976,1347616767,16777114,738627072,113714691,1400919200,16777114,1575324416,-326412861,-1191198488,-4584397,-1706011905,580,899152,-1706012007,65535,53347982,1519887142,-1726576346,1354771290,-26032,-727515136,-703166203,99792901,-6664162,1023410431,158597132,1342180536,386714,-1073297664]},{"sector":9,"data":[-956301311,17071110,104773632,-6664162,-2147483393,409150,113708149,-65088,75237063,2090926080,28615428,53479054,637944993,-1906656861,-1593626106,-1557789114,448289467,-1706025466,65535,1946158141,964617,-26032,-443875328,-1957313699,1644611564,1560281088,-326412861,1459940483,1354771286,-1706012592,1558,721796259,1347440832,103062096,44236800,1354771206,-1706012592,1744,-955961181,413702,78561024,1352791595,-1207596794,1069157397,726684162,1347440832,-1706012592,65535,-972798583,-956299451,66117,-947665013,105947912,100565830,-661926788,-1710983169,65535,-1962691933,-16363490,146277495,-1634054144,-1560281082,109970704,-1557789900,512449205,2013202000,702468,-26032,245563392,906399237,-1214044669,88520794,-1070903266,922701904,922682640,-1717959410,721420292,-11513664,-16445386,-1710944714,65535,1577327267,1575324511,-326412861,-1207767933,112856122,-1202695673,-4584367,-1202695425,-1706032652,1814,-26032,985137152,119847436,1924681810,-17908,-1070903214,-26032,-1706033152,65535,-1173603656,1347616767,-1173593672,1347616767,-1173598280,1379991551,-28930736,45633558,-6664192,-1912602369,-1979500538,942079558,1946963718,1335895570,1385797644,-26032,1178075136,-1207601666,48955393,110018603,-1557789894,-1070900573,2130753616,-1706012007,1937,721815715,28856512,1347590527]},{"sector":10,"data":[500378,106341120,-1202667477,1385791236,129210960,-291307520,1354771205,-1719697224,-996519854,-1560281081,-1070922256,2139207760,-1706012007,65535,721746083,12079296,1347590527,517786,103588608,-1202667477,1385791233,133667408,-626851840,1354771203,-1719729480,144330834,-1560281080,-1070922612,2130950224,-1706012007,2073,721663651,79188160,1347590527,16777114,98083584,60831487,-1728052808,1033523282,-1560281080,922682400,45613984,1347590400,16777114,64791296,-1017256565,-2081649835,-1923739924,1183446598,-27882244,1187444267,1589903610,1065362948,-14781152,-219478970,972193408,179314815,-990220554,1191117918,117581316,1183330348,73319674,-2012771802,809300550,1589959293,-62455812,653936266,-2092562552,-1233386498,654073483,-1962932282,1452013126,-443851016,311901,-2081649835,1448551660,-956056385,64938054,1119417899,-17908,109989970,-1977220292,705422492,-2088268289,-17908,-457682862,-17822,1183666258,-1202710812,-1706033127,1859,-1948230005,39291655,-1982052727,2122374742,242483428,384059021,-13572016,-1982052727,1996480086,-596181026,16777114,-1982166016,46629637,-2082447733,-1962614714,1452006470,-1995994658,-2092563881,-2105799938,-443850914,-1957313699,585925612,16777114,-565802752,-532247216,-1030074346,-16777213,-6627722,-1593835265,-1901918902,88908033,-1593732957,-1834810318,71737601,-1593731933,-1767701242,75407617]},{"sector":11,"data":[-1593730909,-1700592512,374785,75378423,-1207853917,787939333,-1633483648,73441537,-1593728861,-1566374818,74096897,-1593727837,-1499265940,74621185,-1593726813,-1432157068,-532247807,65553923,-1559986170,1252065708,28222213,721767585,-1559951866,2057372080,28484356,-1560005471,1151402422,28877572,28968647,109969409,-1591344322,-1130145117,1575324417,-1873273149,-326412987,-2082959842,-1957295380,-6683018,-956301057,6150,470220544,81568005,314069022,-1706025467,2656,3687622,-600375466,1354771204,16777114,-163148544,314069014,-1706025467,65535,688160417,1174533702,1183667962,-1706027274,65535,-26026,-1705639936,65535,16777114,-310157824,535137026,46812509,-326413056,-16061309,-1207721930,1385758721,440400,-1706012007,649,200689289,-10324800,1342414902,169626,-1617276928,-1560281086,378078378,1183384748,-27883012,1098170891,654073540,-467007606,-939899255,63558,-500085,1183579206,-27882500,78251562,101353352,33179275,1589967942,126494460,1183441962,663234298,-2080880897,2081028222,1575324623,-326412861,1461644419,-196688042,1187446784,-352244490,4241529,-159973552,28314,-1192195328,-1078326199,726684171,-1202696000,-876977436,-1957670389,-11526458,-644155786,-1996488693,-1072963002,-24428684,1183523819,1002832886,-2145356089,343212093,97664,1183518325,1002832866,-955943225,128070,-193035449]},{"sector":12,"data":[-2083032064,1962996862,1268405777,-2097151988,-345704890,-196688123,2122514433,-2123104012,14843523,-1863777419,-1191277824,-4584375,-1957670145,-1202708793,-356883740,-1924115960,1343677510,1342181304,587930,1958742784,-465138347,-1929754999,938212438,4161574,1191128693,130426618,-94467282,653936383,-1958344762,1191180894,130426618,-94467249,653936383,-1957820474,-970524066,216727559,-990230785,-2144929186,-1066062273,384059021,-26032,-2142830592,1962999677,-498693127,-952383997,1927873398,-6662401,1577058559,1575324511,-326412861,-402645016,-739770229,24700928,-402579480,-219676138,77785091,-402373912,-443874888,-1957313699,49054700,84975958,1712229273,-1543899388,748881194,671532805,-1207959291,-1202716608,-1706033126,3320,1153953931,-947912426,6212,-1996162911,1153896004,-939524350,-64444,-1996250975,80153156,1153892363,-1962933744,-1706025274,3364,221026902,113704960,1588,1575324510,-326412861,-1207767933,-1202716608,-1706033126,3395,-1946270071,373802968,1204256768,-956301288,-956268537,-64953,-16496697,60858879,-1962260599,-1706025277,3446,-1694599425,3454,-1017256565,-2081649835,1085801196,448286720,-1785049088,-1996488691,-661914042,-1996093279,1204227655,-955519466,-59321,-16627769,71813119,1204289535,-1593834232,1200161696,516131594,231512656,1996423168,232037118,-443875328,-1957313699,49054700,1342193848]},{"sector":13,"data":[1342184120,912282,-28931840,144824459,239569158,35014599,407357312,1204224000,-939524350,-64441,403195847,60858624,-955627639,-1962932217,-1706025277,3614,-1694599425,3622,-1017256565,-2081649835,1085801196,448286720,1033523200,-1996488690,-661914042,-1996093279,1204227655,-955516394,-59321,-16627769,71813119,1204289535,-1593833976,1200161696,516131594,242260560,1996423168,242785022,-443875328,-1957313699,49054700,1342193848,1342184120,954266,-28931840,144824459,239569158,51791815,407357312,1204224000,-939524350,-64441,-1996250975,1204226631,-1962923000,-1706025277,3778,-1694599425,3786,-1017256565,-2081649835,1085801196,448286720,966414336,-1996488693,-661914042,-1996073311,1204227655,-955517674,-59321,-16627769,71813119,1204289535,-1593833976,1200161696,516131594,-26032,1996423168,194747134,-443875328,-1957313699,518816748,16777114,146688,1994982260,204060673,1376737978,1354771280,16777114,-297367296,-385649344,1996423517,1354771438,178256,255433296,1183383552,-229209616,1342194360,-260636846,16777114,-465139456,-26032,1183383552,-363427352,737048319,1347440832,16777114,-294191360,-1411329,1996482678,-25872,1996423168,-25874,699924480,-17908,-6664110,-1006632705,-1960384418,-431585017,38243110,-1946925431,20833862,1024488448,58523650,1023465705,1149108227,-1962880791,1452009542]},{"sector":14,"data":[263658,-11382702,-6625162,-16776961,-2003114890,-1962934269,1183441990,537315322,-956301312,16786438,-428409088,-1694861569,65535,16777114,9431296,652762820,-1996208245,-1960385978,1183385159,1200301822,-330921720,172460838,653674121,-1995683957,-1960379322,1183387207,-427916296,-1207601917,65732616,-788527432,-398065184,-1935617,1996488310,-159973396,-1411329,-1248139146,-1996488703,2122578502,208995302,-59310256,-1694992641,65535,-1696303361,4003,-1696303361,65535,2098887,113704960,65572,1342177976,-1946197527,1438866917,-326898549,4241410,1751120,281320016,1183383552,-1579643906,1200162312,373802766,1204227073,-939524328,-64953,-16496697,134727679,60858624,-955627639,133191,1344193419,1111706,-25755904,1113754,1575324416,-326412861,-1207767933,-1202716608,-1706033126,4427,-1946270071,373802968,1204256772,-1593835496,1200162358,50841360,38258432,1204289535,-1577058556,1200161696,516131594,293771856,1996423168,294296318,113704960,1458,106432199,-443875328,-1957313699,49054700,-1559994207,1587610852,96903940,-1560005471,1050739942,97035012,-1559986527,-324860464,75538692,-1559900509,1085801710,448286720,-1600499712,-1996488692,-661914042,-1996093279,1204227655,-955512554,294787143,-16627769,71813119,1204289535,-956299256,-1593832697,1200161696,516131594,215259728,1996423168,215653118,163053568]},{"sector":15,"data":[-17908,-6664110,-1560280833,-443873756,7717725,38993925,27263231,101187843,4194312,153420035,4325384,264568835,9044223,250675459,4915207,257884419,4980743,29950211,4521992,98042115,6619140,264241155,9240831,277151746,201392129,230031362,1661075457,149028866,209911809,123601155,5242887,90833155,65537,257032451,5308423,235667458,1661272065,85000451,131073,256508163,5373959,241041410,1912995841,252313859,5505031,213778434,1661468673,291635202,201916417,137035779,9830655,292290562,1661665281,109248771,5242888,91947267,65538,35324163,5373960,171966467,1686765569,246415362,1661861889,219283461,20054271,224657410,1662058497,261816579,393218,61931779,5701640,176160771,403701761,277807106,1662255105,104792066,202702849,94306563,65539,39190530,27263231,157483267,6094856,170328067,328597505,283377669,20971775,42205186,203227137,229703685,1661075457,125829123,11337983,235339781,1661272065,131399683,11403519,240713733,1912995841,34078723,11469055,213450757,1661468673,83296259,1562509313,291962885,1661665281,84672514,1420296193,250150914,204013569,7929859,28705023,246087685,1661861889,219611138,20054271,279248899,3735807,224329733,1662058497,277479429,1662255105,88276994,204668929,204603651,7798792,87097347]},{"sector":16,"data":[1571880961,92864771,65543,12976131,36831233,1310979,262151,283705346,20971775,275644675,327687,115802114,205127681,279773443,458759,113180675,1681719297,147718146,205651969,253559043,983047,84475909,1420296193,272892163,1114119,254148867,1179655,272367875,1245191,175374339,323223553,188940290,206110721,1835267,1572871,120848386,206503937,72482819,1380712449,116326402,206635009,117309443,-2033188863,119275523,777060353,156565507,953221121,6160387,1574109185,9633795,928645121,175767555,945487873,249102595,2818055,271843587,10682376,120324098,207683585,88604931,3080199,85524741,6815748,189726722,1659109377,158007299,954269697,89391363,3276807,173080579,291766273,61341699,24576255,270467331,3145736,116916483,3735559,190513411,3801095,224002050,200146945,179044611,3932167,108003587,3407880,180158723,3997703,105644291,3473416,180551939,4063239,118358018,208797697,59769091,4128775,9043971,879755265,85721346,6815748,245760002,200605697,39518467,4390919,29229315,3932168,176488451,980680705,295108867,4521991,235012098,200933377,0,1167120524,518818645,-326903666,-11053562,1996425846,108461832,-1728052040,-6664110,-1996488449,1996487750,-6664182,184549631,-1959496512,-6663952,-1962934017,1959398344]},{"sector":17,"data":[-1924115930,-397346746,-1073020886,1979205259,-6664184,855638271,-1705619264,65535,-26026,1599602688,49120094,1562371467,445005,-2081649835,1465256172,16777114,1958742784,-129595058,-1912177013,-1070397370,-1962571226,279463920,-1960441739,-96040699,-812955833,-2144943476,74776637,-768358093,-1979953527,-1977156010,-1073068283,-956827531,309592080,1183667974,-1477947142,200838143,-1727826494,1996436971,1354773496,-100609,1996487798,8108282,902691,-6664191,184549631,-136547136,1946190022,73304974,922240651,1451952009,1606912776,1575324510,1426065090,-326898549,509040132,209110524,-1962377532,1183515742,-1981230842,19267142,-62486272,2085353515,-28406988,-1375961597,-1059991413,-1031090141,-523181871,-523181871,-523181871,-963977007,-523181871,-523181871,-523181871,-997531439,-338369878,1583292361,-1034033781,-1957363700,149717996,-65120426,-1005685051,1586170494,33260292,1183532926,-137219322,-28931597,1258835595,-1946657143,-1981679677,-779355066,1579933323,-11842564,763166286,-1946395133,-1981230654,1325398598,1139571962,-1946973373,-129070332,69464579,-341050654,105286633,-787978505,-204960792,1583292325,-1034033781,-1957363698,49054700,176063318,-15043584,1996425846,108461832,-11485141,630850678,-1962934270,1979059184,102015258,1342850697,-16222465,-1070922122,74907472,181146,200313600,-16026378,-1705637258,723,-963907445,1575324510]}]],[[{"sector":1,"data":[503318722,1430622296,-1910575989,175570904,-16222465,28837494,-1914155008,49120255,1562371467,445005,1167087646,518818645,1996478606,142016266,-1207535873,-397410301,-310116504,535137026,113921373,-1873273344,-326412987,-2082959842,1448545516,-1962510709,-1073000762,-1070922379,721456105,242679807,-1324595573,1089000196,1347605035,-1728051528,530206802,-1996488704,-1072958394,1996445812,731533326,-1996488704,-1705969082,1454,-1980348791,-1039402922,1719745652,-1006629108,1191179870,126494454,-125049814,-15972725,-1073017778,-29676683,-24444290,-493825,1996486262,142016266,70949463,1996423168,67345146,1589903360,29763080,-339244288,-159514363,1600043499,-1962742397,1297948645,503319242,1430622296,-1910575989,485262296,-16222465,-6683018,-1996488449,1187511366,-2097151770,1962936958,142016288,721843967,-1706012480,65535,185222793,721778112,32762304,-1685817,175570943,16777114,-364476160,200038025,-15370814,-1070921098,-59310256,91265616,-1073020928,-722742924,15105667,1996434804,108461832,16777114,-431585024,-13994944,1996482166,-361299988,-1694730497,65535,-15305664,-73734538,-1006632957,-2144933282,510984511,-352321096,-427916517,-16222977,-6625674,-16776961,1637485174,-385875963,-1070858379,-990886263,-2144933282,1946157439,112645,-1070923029,-2080881015,-1962738578,1452010054,132588,-11382702,1996483190,-25860,2122514432]},{"sector":2,"data":[779354352,-1996198239,1889663558,-163149564,-1996199263,1822553158,-230258428,-1947574588,-120458170,-1962440410,-120458682,38242598,1990269163,-96040700,-1996195679,1923216966,-196703996,-1996196703,1183576646,984564,61992996,1317796051,-136195598,787945,-2080618871,1962997886,11659523,66733707,37615174,-385646848,2122514595,494207216,-1947574588,-1960379826,-101213945,-1962440410,-1960380850,-140967353,1200170745,-362888190,71797542,653149833,-788117621,-398030368,138906406,-1947974007,-1993935802,1183515719,1200170738,-196703482,603983621,-754732560,1200170744,-92372216,-1961264126,96636099,1347551244,201704331,-11513344,1996481654,-69211928,49708675,1183523708,-329872406,1375734789,-364475568,1375734789,-362888112,142081830,-1542401,434697846,175570940,23706,175570688,-11485141,-1705968522,65535,-2096478581,-443874579,-900899553,1478361094,-1957345904,-661774612,-14488445,1996425846,108461832,1342177976,-1979954200,1183445062,1975520252,30730499,3643984,1183383552,-94991880,653811396,251742198,28837236,721611520,-230258240,-1946663285,33946198,-129595136,653811396,-1996339317,-1960385466,1183384647,1200236256,-1981535736,-1977160634,1183385927,1207314164,460685313,-1804545,1996480630,-1014279956,1375735301,113613392,1183383552,-12850180,-16534986,1996481654,-25888,1183383552,1183535356,-194054172,603983621,-754732560,-328271880]},{"sector":3,"data":[-1713344777,1183535186,-94991368,1375735301,-26032,1996423168,52599536,1996423168,6462192,2122514432,57999612,-2097081879,1962996350,17361155,50622113,1023700998,58654722,-1962870295,-1952848826,-150704626,-364475911,-1713355125,74452619,1183447543,-1305018392,-26109,1183383552,1975520238,12642563,-1411329,1996482678,-193527828,1347469355,16777114,-431585024,58048523,-16741399,1342419510,453530,-498693888,2054471691,-1149185,916126838,-1996488697,-1072957882,922708084,1183515570,-196738068,1342178232,16777114,-1305018624,1354771203,-361300144,-1542401,1347481206,-1804545,548986998,13416960,-6664110,-16776961,1996484214,121805558,922681344,1996424114,-25886,1996423168,124820206,1996423168,124295932,1183514624,-62486042,2122523371,141820134,-1696172289,1912,-1695648001,65535,-1694730497,65535,65781803,-2080618869,-443874579,-900899553,1638406,122290435,4456456,122814723,4521992,64946435,5308423,64225539,5373959,52035587,1384382465,8192003,9896191,5439491,9961727,15663107,10027263,106037507,6946824,117768451,458760,61210883,1048583,59572483,1179655,106561795,1245191,103153923,10223624,120258819,2293768,114884867,2949128,101843203,3145736,34013443,3932167,111542531,3407880,36962563,3997703,47972611,4063239,107086083,4128775]},{"sector":4,"data":[62718211,4194311,56033539,4259847,57934083,4325383,0,0,1167087646,518818645,1996478606,209125134,1347469355,1384155322,245452880,2047224581,922701828,922682640,-1070922630,1996443728,142016266,-1710852353,65535,184953507,-1593412416,1285750868,103457031,-1962742397,1297948645,503319242,1430622296,-1910575989,142016472,16777114,1958742784,103457041,1963476537,1996443657,-26106,-310181888,535137026,80366941,-1873273344,-326412987,-2082959842,1183517420,75145990,103431811,-14715904,721824310,245452992,2047224581,922701828,922682640,-1070922630,-26032,-310181888,535137026,46812509,-1873273344,-326412987,-1596420578,1178076658,-1610056698,1178076659,-1609531898,1178076660,-1609729018,1178076659,-1207599354,48955393,-310132693,535137026,46812509,-1873273344,-326412987,-2116514274,-16387522,-2130151938,-16387010,-1207601922,48955393,-310132693,535137026,80432477,1694499584,-1845493504,939524960,838861056,2046821122,1124073728,-1107295474,1241514240,32,0,0,1167087646,518818645,-326903666,-1202301174,-1001390016,-1960442274,604309063,2090487808,-1962934272,1979059184,-373282043,1996423326,108461832,503989389,1751120,-26032,1962868736,544538402,16777114,71600384,980729867,1149878315,541362466,-1961081717,1183391316,-61437446,1098174987,1342193848,-92864686,16777114,-1706016768,65535]},{"sector":5,"data":[-15992693,1962872949,37526020,-1705639936,586,-947153941,1996443678,-92864516,16777114,-1983411456,1552686148,38061854,-1070904498,343211856,136858,340035840,-1996483423,339118340,112640,-310157474,535137026,80366941,-1873273344,-326412987,-2585058,-6681482,184549631,-1961265984,1602948190,74972932,-16091393,1996425334,-26106,48955392,-310132693,535137026,147475805,-326413056,16968833,73304918,-351504501,176063322,-1962183680,1183515740,71776522,1183532917,138808070,-963967883,1996440555,23173640,1183383552,-2037557752,1343684352,1342242744,16777114,142016256,16777114,-1983739136,-11532218,-2037578122,1343684352,16777114,1958742784,187993025,732067318,-443851072,574045,1167087646,518818645,-326903666,-1957275894,1175128646,721712396,-15995968,1996426358,-26102,1183383552,473861114,96961285,-1996107103,434895942,-362753,1996425334,-59310330,251414147,-1946206488,1979059184,1338477321,-529154037,1600045099,-1962742397,1297948645,503318730,1430622296,-1910575989,116163544,1996445271,-26106,20774912,726889728,1996443840,-26106,1183383552,1359622,1183529707,340015366,2088972405,141819910,-1710852865,65535,-1710983937,65535,1997955,1962870900,39098908,76218368,-1705638519,65535,-24444181,-167037557,1600045173,-1962742397,1297948645,503317194,1430622296,-1910575989,173968344,957106059]},{"sector":6,"data":[796198470,556675,-1705834380,65535,1586176491,1011336970,1204289535,1409285950,-1174222408,1347551948,-16222465,-6683018,-2097151745,-443874579,-900899553,1478361094,-1957345904,-661774612,-1174217544,1347551967,-11485141,-291895690,-1207959550,-4521985,-1957670145,-768932282,1375849088,-26032,-310181888,535137026,46812509,-1873273344,-326412987,-2082959842,1448543468,-351897973,1463126795,-1705983957,65535,-15991157,1600057205,-1962742397,1297948645,402653898,33620736,1207961345,872481536,1140852738,1040188160,-2080374528,1963000658,1459619585,-1593769216,1476396800,1963000576,1509951232,-687865088,201326850,-419429502,-1845493504,-1660943776,-1694498558,-1593834137,1090584322,-1358953727,603980034,-1744829054,-1694498558,-1543503257,1090584322,520160001,83887872,-1878981888,117442304,402653952,-1040187133,1174471432,352323329,1493172992,-603979519,-1191115935,788530944,100729600,805308162,-1946156288,-452984574,-1375665401,1157629697,1224803072,1174406912,-1979645184,1191184128,0,0,0,0,-2081649835,1448543468,-1962641781,956676158,92146805,-352172661,205884199,990528771,-1962573882,418055237,721700235,-1957690811,205859782,175505232,120218,38077184,-443850914,311901,-2081649835,1448545516,-1962510709,1183386180,75400190,-2096860160,1443298886,385238669,-26032,1183645696,-1957685514,-654893500,541363024,-1705977609]},{"sector":7,"data":[713,294531,2089497460,545008424,158662411,103532427,1174471808,843380472,-1593215984,103482432,48956544,1177141291,-96039940,70387243,-336181623,-62485730,71304747,-151501175,1948267076,70426889,75367979,-1070923029,-1912977879,1343682118,-106869,41418551,-16484353,149423222,-1956684288,79846885,-326413056,1460071555,71732054,184788131,-1004112704,-1960440738,-358415801,1200301573,104375046,-1559786714,-1960442928,379782215,81706502,-352026463,207537188,-1559786714,-1960442390,950207559,1200301574,64004866,105351974,-1106897245,2124481984,-96040700,95958665,-1995815285,138840836,-1962785655,1149830726,943622916,-365024506,-1946169083,-130348988,-125107586,-1577419261,1143670250,-1983446256,1149963332,105130768,51135531,721827846,172263879,50719393,78029767,2114485305,104374287,99223082,74777000,77991679,721828001,102933447,1143669899,1962889218,71600906,1342325803,16777114,205783808,-1962560349,100861508,1151534516,-1956684283,214064613,-1873273344,-326412987,-2082959842,-1957295892,145820742,37546195,246968181,-11526652,1996425334,-26106,-1073020928,915080821,904595278,61095555,-1962576896,65734726,-1962522997,506856432,-1205957884,209139973,2005599102,-1205957876,206015237,990529283,-1962508346,1996688503,242679562,1354771286,-2130697496,33688702,1996426101,1354771214,233311888,171346193,-310157819,535137026]},{"sector":8,"data":[181030237,-326413056,-1962611581,103482950,1183384842,1958743038,75400036,-16354048,1592264822,67549184,1048793118,1946157988,-339727612,-28931325,-1539407024,91488259,-335657333,1354771202,16777114,75399936,-13994752,719849590,142016256,-402229505,1183448350,61383164,1962690105,374800,-59310256,-1962702872,-1465648058,1575324419,1426065090,-326898549,74907394,16777114,-28931840,67549264,79187998,-6664192,-16776961,-6619530,-1962934017,46292453,-1873273344,-326412987,-2082959842,1448545004,-2096341365,1946160767,-1070902518,-6664112,-956301057,479238,-569981184,-939524347,-16392186,839305215,-1962934266,1084427334,108954373,-1961135104,508005336,-1962392023,1177100359,-1547465974,113705894,1620,1183516395,106210060,425603,1996426612,105286412,1342178861,-1090740760,-24443654,-2096969853,238654,-141884043,-2096959613,238654,1183516020,-1962677494,1183385670,64004600,-358546295,-1593472763,1149830678,104374532,-1593555575,1178141862,-955679240,403462,16443648,956703393,192739398,103286471,92864513,-1593775383,1178142132,-954434056,33957894,78029056,95952523,-1995421909,273124101,95684099,-1593785367,1178142020,-385647368,580976791,-1509545210,-1205957884,105331461,-1506433,671532800,-1593834490,547554212,68073478,-88584162,-1706025468,1210,503582392,571472,309328,86219344,-1264517120,-1593472763]},{"sector":9,"data":[1166607684,-569981180,-939524347,-16392186,95724031,-1559802205,512427274,126551480,-1560038237,1319175080,-129619193,-1207689565,1344144390,503642808,84777552,1996423168,-29366260,1342178744,62142207,-352210968,102932772,2113422905,671532828,-1593834746,512427332,1194001848,-1962571504,100864071,1166607906,675185412,729023494,-1560042335,246941216,-1202708988,1344144634,16777114,68073472,2124501022,1356396292,-150699871,-6663976,-16776961,62393462,79187968,922701824,922682848,28837342,-1070903294,175570768,-1710721281,65535,-310157474,535137026,147475805,-1873273344,-326412987,-2082959842,-1957296404,-6680970,-1996488449,1451883078,507808764,-1946532311,1177100356,-1070901508,1996443728,-92864516,1021841040,-2012821760,-2097139196,406078,-1202314380,-1202651138,-1202716622,1471809108,-1706012154,1628,-16297821,721823798,-1108848448,-310157824,535137026,181030237,-1873273344,-326412987,-2082959842,2122516204,242483212,-1324595573,1021891336,-385649662,246939781,-11526652,1996425334,35035654,1183383552,103981562,1962559033,242679558,-1962615576,4000838,1025733634,309592577,1963065917,242679628,-1873756117,223799310,113721323,1872,76023495,2122514632,762577146,956707489,628423238,-1207011585,-11468802,-1207662538,-4521985,-1706011905,65535,-16297821,721823798,300437696,-96040192,-2096745821,-443874579,-900899553,-1957363702]},{"sector":10,"data":[82609132,1049318999,915080100,922682920,-16055386,364381556,-1207702783,-11534060,1183516278,-1949160700,721835038,1389595593,-26032,914948096,1049167400,1599996836,-1034033781,1478361092,-1957345904,-661774612,-16091393,1877476982,175570937,-402098433,-310181877,535137026,113921373,-326413056,1461775491,104374614,99223083,1183447249,2143292406,41675011,-16353537,28836982,1843941376,-398030588,95952523,972441227,108857415,-1995946101,-88148410,-2080470268,1048773319,1962935204,-2080929019,-794754321,-1593538301,92866026,-1996089695,950076484,71665926,61095555,-952536064,70316102,921454279,83796228,83494443,-1578482039,1183384628,83534310,75367939,-1946925431,100922950,1183384828,-364475406,-1578875255,938148992,1123043015,-330905852,1151403068,-364476156,721748129,-1996162042,1183573574,-100269066,-196703996,50658465,-1996193786,2124542534,-465139452,-1981397365,922738758,1586168754,-1707606032,2023,-1161591,922682486,1855587272,-1996488696,1048837190,1946157988,74907428,83506943,83638015,-1411329,922744438,-1070922830,1586188368,41418736,-336169217,74907426,83506943,83638015,-624897,922740342,-1070922830,1996443728,-262239242,-1207666689,-860225504,-1706012160,2232,-16484609,1996485750,-461963278,-1193249025,-256245727,-1706012160,2356,62011135,-1286517,155228727,1048772608,1946157988,74907482,-1996238687]},{"sector":11,"data":[-1588534714,1177224760,-28931594,83796304,83494443,-159973552,62011135,-1957642197,1200352350,-163173628,41418576,-1191807233,-860225504,-1706012160,2322,-16484609,1183577206,-2147079170,1996443652,-2143879196,-10949884,950076534,-163173626,1357006473,-1996238687,-11469242,10614390,-66704635,922701828,1586168754,38243308,1358317099,-11485141,2013263478,2144260,1375784122,-26032,1996423168,-498693372,75367979,-227082416,75380479,-1193249025,-256245727,-1706012160,65535,62011135,-1695648001,2379,-16484609,-6620042,-16776961,921175158,74907392,503642808,1354771280,631450,108461824,-16484609,-1930893194,74907392,-16771864,1996424822,1354771204,1577189352,1575324511,1426064578,1048833163,1963197992,74907409,503580344,309328,177642064,-443875328,180829,-2081649835,-11139860,1996424822,-158537724,-1710852353,781,1996484747,28857862,-1310175232,-62486271,-4986794,1443264255,-386107649,-397017061,1996488613,-1070901754,26404944,52927062,-1956773888,79846885,-326413056,1459940483,104374614,99223097,-756481156,83541504,-947650933,-1539407102,91488259,-964428149,-1205957886,239569669,63964675,379651465,239545094,-1593555575,76088486,-1996086623,1996424260,83539974,1996443678,-401698812,512426228,1200293304,17115406,-1264516027,-1593538299,1149830468,102932740,77989419,2114340667,108461857,503642808]},{"sector":12,"data":[-969474224,-401698813,1996423360,83539974,-1070903266,52402768,1084293120,138819845,547438965,-1543096058,-1103596285,1048773646,1946157988,46564099,1023813793,125042690,1946157885,-1591940329,1149830580,108461828,503582392,-401698736,132841531,-1996143455,1592453892,1575324511,1426065090,-326898549,74907402,639130,-163149568,68073552,244338718,-16773400,-224725386,-1962934263,46292453,-1873273344,-326412987,-2082959842,1183648492,-11528458,1996425334,191076870,1996423168,-163148534,-6664170,-2097151745,-443874579,-900899553,1478361094,-1957345904,-661774612,-1928663933,1343682118,-16091393,1687816310,-16777212,1183648886,-11528458,-6683018,-2097151745,-443874579,-900899553,-1957363704,49054700,294531,1586186612,73370376,956703905,460588103,-1207404801,-11534311,1183516278,-2133710072,1347552714,16777114,-15734016,1996425334,374790,-26032,1183383552,108462078,199203408,1721958400,-15930621,922682998,-660995226,-1962934265,-443810234,442973,-1947432107,1178141766,-1962574586,65734214,-1962654069,79846885,-326413056,956581515,92145222,-351910261,71731971,-1034033781,1478361092,-1957345904,-661774612,1464003715,242649942,-1996249951,681704006,-1002010362,-1996249439,1419888198,-196703994,707806346,-62486044,-410912629,1183514632,16792844,1625883509,-385649150,20775778,1025733632,57999367,1023481321,57999368,1023500265,57999375]},{"sector":13,"data":[1023500009,57999495,-385762327,1589904234,1200301574,-330921712,205980454,653280905,-1995552885,52883014,1183386183,1979649010,126559779,39291686,-1983887735,1149878870,1078233410,1149878923,809798212,19260458,1178896640,117196534,-1897331851,1962871552,-62458320,-1961593852,103542854,1183384650,-230257684,72091179,-1947318647,100920390,1183384650,-297366544,72091139,-336443767,-62458307,-165776383,1946352710,-330921204,70387203,-336574839,-263812315,70387243,-336836983,-62458343,-1962314750,100920902,-924122042,737298059,-1996208634,-11080122,1996483702,-263812114,1357661739,737298059,726724166,-6664000,-1962934017,-1532757434,-1002009853,-1962530653,-1499216314,-196703485,721835171,12708288,112726,1182565200,-1962380288,1143677508,-1593578722,243990946,-506395522,-1054088751,1182565200,-1593478144,116064672,723797131,243998788,-506395520,-1054088751,-26032,-397017088,-397016503,-1705638554,65535,-6647317,-352321281,172395402,199902857,1443788224,382355085,-26032,1183383552,1979649002,384325133,1996445186,-119150358,1149904363,635710002,1183383556,843874494,1996445188,1354771434,16777114,-1099005184,-2147191552,-2080689564,1946159742,-13375229,-901345962,-6664170,-385875713,28901157,-372102400,1187447228,200290550,187790847,-165120513,1946235460,-6662650,1442840831,1016730,-1494723072,1996445185,108461832,-1873756117,-189667314]},{"sector":14,"data":[-939595543,-268372410,50873995,280045636,1317789907,642515718,1183432971,138856198,-1705639936,3841,18004048,-163148976,-11533300,1996425334,112368134,-1427570688,172395518,1023418669,58064903,67017961,-13724736,-955310425,395846,1187455467,-352319734,172410650,334168066,51005127,-955454720,2630,1187448299,1442840842,16777114,61252352,106182281,-1555676021,1996424100,1354771210,-369663000,249953869,249433836,250810071,251268851,988352250,1078234110,13822361,725898379,1111788480,-1962883095,1149831750,105286464,-351648119,138840844,-1958460279,1149830726,1081409346,-398166785,-11469690,-1729609100,1078233596,10741846,687747,-286719115,-1209510147,-6662653,1442840831,16777114,-364476160,28856406,-370651136,-129594885,-387287297,-11077143,1996483190,-95295240,-387287297,-11077159,-1070863754,-70850480,-361300138,16777114,-32839424,1963065661,-24647421,1963066173,-25761533,1963196477,-10229501,1963196733,-11933437,1963196989,-10360573,1963197245,-12523261,209125206,-16091393,1996425334,196188678,1599995904,-1962742397,1297948645,1426066122,-326898549,1988843016,1183667716,-1706027272,65535,245668438,-1499267072,-129594109,1962889238,1114963776,-12290817,-1326954892,-443851024,180829,1167087646,518818645,1448597646,1443395211,1097114,1958742784,108954419,1443984642,1342439864,1347469355,283023952,518717440]},{"sector":15,"data":[687235,2122520180,91488262,-352320581,-774165758,175934435,48955787,1600045099,-1962742397,1297948645,503317706,1430622296,-1910575989,1988843224,209125128,1119130,1975520000,-339727612,176063276,-15371006,12061814,-1957277692,1385760326,288266832,300613632,-15960321,-1070921098,-11119024,-337115530,-310157824,535137026,147475805,-1873273344,-326412987,-2082959842,-11138836,-1768288138,184549393,-2091813696,1963069054,276234023,1342440376,1347469355,297376336,1183383552,-94991880,638213828,1589905289,650283782,887818121,-1961861493,-167048585,2122521204,57933838,-1006188925,1149962846,126428674,-1962516796,-672463804,638213828,1991,637951684,1991,49120094,1562371467,838221,1167087646,518818645,1996478606,-26098,-1073020928,2122528628,460653068,-1207011585,-11533310,1451951734,-1950340344,1347553862,965274,-15275264,1996426870,112652,175570768,-16222465,199755382,49120000,1562371467,707149,-2081649835,1448547564,-955353461,61510,707937418,-330921500,818819,539297140,-1962480896,270920774,1958742784,112645,-1070923029,-2081012087,1962936958,1975520007,17623299,687747,1183519092,105265416,28837236,721939200,-1962677312,1183446598,209617902,-2146536448,199176804,-2146143040,-350211508,845447182,-293698577,-2147191808,-2096090548,1946218110,175934279,141950731,-26026,-125108224,818819,-947715212]},{"sector":16,"data":[-1996125434,2122575942,242483210,-1995946357,1183515205,71665926,1183516139,-16414456,41287477,1358520040,-402360833,92928318,294531,1156978292,192225331,271795446,28837236,721611520,71731648,871777931,695529030,707937418,-330921500,-1962930139,-511579058,-1056243680,1962871669,-26102,1149829120,-6662646,-352321281,-293698768,-2094369792,1946158206,776243748,1183441962,209617900,621114368,116064258,636241547,-1073020924,-11139212,2145913974,-263812106,-443850914,836189,-1578333355,1178140770,-1959168764,2139292766,91488326,-352071519,95723779,75370123,-1056710191,73304912,4620163,-1264515724,-1593578747,243991504,-506395520,-1705983741,65535,-1034033781,1478361090,-1957345904,-661774612,-1593250685,1178140778,-385649656,-559873831,-536474875,-385649403,113705165,1576,16777114,-532774656,1963233029,-566329044,1963231493,108954404,-15830016,922683510,28837710,-1326952448,142016494,-1192285976,-11534332,-352081866,-532774541,1963156229,-566328978,1963154693,1346274150,208928775,-1207404801,-1705967618,65535,355226,-96040704,-239991,1183647862,-1706027270,65535,503582392,-59310256,-1694861569,1530,200820361,-16354112,-1360525194,108954614,-15830016,922683510,28837710,887640064,571630,-126419120,-2081283096,414782,922683764,-728103340,721420301,98608064,-2096767325,-443874579,-900899553,3145732]},{"sector":17,"data":[260636675,939065345,237043715,1275133953,334561285,27984127,331153413,28180735,342294531,-2054815743,183828483,940179457,187564035,1686765569,3735555,1376452609,94896133,20316415,241369091,781254657,274792451,1620180993,239009795,445841409,8388611,1695875073,231079939,-2087387135,264306691,941228033,233963523,429522945,268828675,1738211329,55508995,1167851521,336134147,849149953,334036994,27984127,271056899,1629552641,330629122,28180735,188416003,1721958401,95420419,1428619265,95092738,20316415,197263363,464257025,335806467,1437990913,317587715,458759,326631427,-2068316159,309460995,163446785,276430851,624885761,88604675,675282945,74842115,1698693121,271450115,482672641,224854019,541720577,318177283,1288437761,241762307,-2058289151,337379331,1624440833,140509443,1900552,192086019,1717174273,138674435,2293768,338427907,1692270593,185270275,954269697,157351939,1172635649,198050051,2949128,232456195,-2072903679,6946819,1634926593,330104835,846397441,1167087646,518818645,-326903666,209617158,2138374658,16777114,637978368,-1962934266,1183385670,1812892668,-772157180,-1950274567,1195052638,-15303640,1996424822,-401698808,726664361,244338880,-352285464,-401698746,-1073020852,922682997,-404028124,86253195,-2020875311,1183384914,108462074,1342732031,16777114,6463744,1962559033,-92864746]}],[{"sector":1,"data":[1342179000,1342177720,-11485141,-979699082,-2097152000,-443874579,-900899553,1478361098,-1957345904,-661774612,1443163267,86253195,-1215568943,-167049902,-1202318988,726663187,1347440832,104602,721611520,-310157632,535137026,516640093,1430622296,-1910575989,142016472,-1207535873,-397410303,-310181877,535137026,80366941,-326413056,1460071555,89309014,425603,1988822388,-1591547130,-523172572,1183434499,-1948742662,509751,140413696,964944849,-1593412608,1183384868,140413704,831120337,29137494,-11141120,-18347914,1149982210,642001694,541363024,1344816171,16777114,642026752,1150111774,-1706025442,65535,112726,30513744,2122514432,611581958,374870,112720,608471888,723534891,735087570,575441856,-1960948693,-1706011967,65535,294531,727058804,244338880,1577446888,1575324511,1426065090,-1957237621,-1705638794,65535,-1993980789,1149971012,742689064,1354771286,16777114,-443851264,180829,1167087646,518818645,-326903666,-1957275844,1187450486,-1962934024,4000838,-385649406,58065030,1023544297,1483997199,1946162237,2047258,-11132044,1996426358,142016266,-1710852353,65535,-16642071,-1070921098,-6664112,-352321281,641631197,393478150,103167743,1342309048,-1705983957,65535,244338770,-1694650904,748,190362,30664960,-800682666,-6664170,-16776961,-2132225930,1183667717,-1706027312,65535,-956189463]},{"sector":2,"data":[129094,-1559607669,1996424494,108461832,1172835984,200837895,-385649153,1173750165,359925811,16285315,-2031549579,1095681,-26032,2062090240,205949697,1946288445,33766763,1793655668,28858113,848973824,184549379,-385649216,244318553,201179112,-385649216,1369047373,-1711276029,830,67782390,-1873341836,101181454,112727,-26032,116064256,-401698729,1043924595,57999458,1459690729,1342179000,1342177720,1464909867,36762,17295616,112727,-26032,-1073020928,-152501387,-26112,-396951552,-1202192787,-1873805311,71886862,5530,-26112,109969408,-1591344362,1183406757,403082950,103491075,1157847721,1779338022,66703620,-934901311,51775118,1520935206,-1899739511,637736966,1521157675,-1960295165,-788239346,-1983839239,-759628730,-1957683709,1177274438,1183535302,-1002034180,-26032,1996423168,-59310136,16777114,73239296,-1995028597,-1072956858,748750453,-96040698,-362753,-1711023562,65535,16777114,641632512,79189510,-1202696192,-4521985,-11513089,1996426358,-61437174,1183563819,-1706011960,65535,19736043,539906,-102169738,-1816132611,564657966,-2080211196,2130870018,2130842114,302153474,721583874,1600035264,-1962742397,1297948645,1426066122,-326898549,-1957275896,2123040374,-129594108,-396931050,1755381824,1812343556,-1037330172,1174665425,541362682,721708705,-1727763962,-120470997,-1980217853,1149967940]},{"sector":3,"data":[1812333344,608471300,52315275,-1996199418,1600004676,-1034033781,-1957363708,1988843244,-1715041532,86642315,788003319,243991656,-936704692,637951684,-1962520695,244029894,-101251798,787989131,-1993997210,1200301575,1745234694,1200170500,126559746,73795075,71797030,1575324510,503318210,1430622296,-1910575989,82609112,1988843095,108956424,-244025,874417151,545208582,-947181441,-1725937877,73928331,-930350601,721758369,787957953,-930413270,-1952856437,-150706658,-1983380485,1183579214,-2090901764,-443874579,-900899553,1478361092,-1957345904,-661774612,85985023,956640417,2114265094,671547154,86679813,86771201,73938687,-2097149464,-443874579,-884122337,1458342741,-1962641781,688272414,1999186039,-137983200,-6663976,-956301057,17114630,-26112,-1956773888,46292453,-1873273344,-326412987,-2082959842,1448545004,86783627,721758881,537853936,86024453,1417015355,-1996149599,915012678,-13957844,-544525333,-1081875503,1962935634,956754727,208993398,-773944506,1388282851,-277610491,1962702393,1187416854,1459954851,-1873756117,-87037938,742275399,-3703035,-1593497586,-654900120,-10688432,-310157474,535137026,516640093,1430622296,-1910575989,216826840,876019542,129997318,-259325952,104085247,385107597,-26032,1183514624,1745224694,-96040700,-196702890,922701846,161088446,1442840583,512922,-310157824,535137026,516640093,1430622296,-1910575989]},{"sector":4,"data":[82609112,641108822,637978373,-1962934267,-310157626,535137026,516640093,1430622296,-1910575989,86548952,73936631,-1962742397,1297948645,-326412853,1460333699,175541078,-1928823157,1343682118,-402229505,512490956,1200293428,-129619680,1476150825,385238669,-26032,-1073020928,-1545010315,1183667968,-162523402,1950363204,75399947,-1593477888,65734198,1342422689,16777114,75399936,1467839744,16777114,1962891008,678756134,493210,1962891008,544538398,-14519041,-6675340,-1962934017,1200292956,-28931818,259309579,1354771287,-25755824,16777114,1444276992,-26025,727056384,-1202696000,-1706033151,65535,-2144451338,1686113396,512458542,1333790260,-1957199826,-16370658,2013208183,-26080,-1705574400,65535,-443850914,574045,1167087646,518818645,-326903666,-1957275896,-13957002,1392002759,-1960056059,926546014,922689397,-6683084,-1996488449,1347877958,108461911,-71960,-6620042,-352321281,1183008523,1043923704,-813759188,-310157474,535137026,80366941,-326413056,1459940483,-1074386090,367723858,1946172803,-13238516,727057526,-1528278848,-947697922,741751042,1592098565,1575324511,503317186,1430622296,-1910575989,149717976,1988843095,243041032,-15895039,-6680972,-956301057,3652,-768147626,1354771205,16777114,944015872,-956807544,-2130757564,-2145373364,-1971376540,-466994876,-1577433463,1178141996,-1961329158,-472778146,89309059]},{"sector":5,"data":[-15960832,-11077002,1827145334,-1337725960,-126945778,503568523,126551260,73795075,244029768,-101251994,737822345,742275583,-1591771643,1178141996,-955943430,64070,-772120949,1388282851,-1217134587,1207584511,1600052203,-1962742397,1297948645,503317706,1430622296,-1910575989,1988843224,28857862,244338688,1593781480,-1962742397,1297948645,503317194,1430622296,-1910575989,82609112,1988843095,-1305069306,-1710918395,596,-768147626,-26107,1686110208,-1202266317,-1873805311,-27203570,-14781185,244326516,-1946441496,960792824,-472785013,89294791,1599995904,-1962742397,1297948645,503317194,1430622296,-1910575989,1988843224,-773944570,1384614883,-310157819,535137026,46812509,-1873273344,-326412987,-2082959842,1448543980,1443264139,1459100904,1726484112,81568255,737953417,-1961890817,1183054942,1149964028,71776550,-947189377,470170439,1458076677,1358906765,1342177720,16777114,-2090902016,-443874579,-900899553,1478361090,-1957345904,-661774612,1460202627,-1946211498,-1472841225,-9014012,512427638,1200293428,138806056,-401698736,1183447781,-49672,-661973644,86253193,-1215568943,1048577362,2097152146,972983042,1946530366,1480491840,175374342,597146,39426560,-16056320,-1873400972,3467278,106444543,1342178488,16777114,1479999232,-26106,882966528,1778792710,1342600192,16777114,1590070016,49120095,1562371467,313933,1167087646,518818645]},{"sector":6,"data":[-326903666,1988843088,1183667718,-397404482,1183383877,876019638,-26106,1183383552,1183666354,-11528514,-6637962,-1996488449,1451866694,-1300824132,420250,-1169782016,-1996486651,1183561798,-1270445636,-1715976565,-120470997,723405963,73834952,-775804007,-1983380488,512471118,-1047853516,2115913529,508005126,-1951381879,1174646854,874417080,575093510,1200294270,-1203360990,-1196407159,-768901116,-1070903214,-2001055664,-11513208,1150005366,-1270469856,1342178349,-1950845185,50705478,-1070903296,922701904,1347421088,16777114,106472192,74760203,95565449,49120094,1562371467,182861,1167087646,518818645,-326903666,205949798,1962938173,242679623,379209357,40344144,922681344,1183647154,-397404484,1183383629,-1703477318,1342178232,1342177720,381437581,-1166606512,16777114,242679552,379209357,41458256,28835840,350984448,-15829249,1996426358,142016266,-1710852353,544,-1962742397,1297948645,1426066122,-326898549,142016258,-16353537,1069024374,-6664192,-1996488449,-1072955834,1996433525,74907398,705039008,-1442446364,-1407808764,-1706012156,65535,-16353537,-6683530,-1996488449,1183579718,1575324670,872416962,-822082816,2030043394,-1711275217,-117440246,1057030967,1157629960,-1308622080,2130706690,1895826275,-1862205696,1442841345,-2130706173,-1895824585,-1811874043,201392897,1476396812,-1711275264,-1996488443,1677722424,-1979711231,-218103196,-1778319613]},{"sector":7,"data":[973079297,167772422,385942328,1509951244,1426064128,-1946156799,-1375730915,-1828716277,-1308622054,352321795,2046821221,-1711275765,855704345,1644169223,-939523328,-1694498549,1207960423,-1660944126,-503250126,1744832518,1241514752,553648390,637535073,-1392508663,553714449,1962936327,1090519808,838861067,-922746110,838861065,-603978995,922747139,1677722423,-1207959289,352387860,-2130704377,-1946090752,-2113927161,-1426062592,-1107295990,620757842,1056964867,1442841381,-1090518774,134218548,1073742084,33555240,1392574211,1291846401,1124073738,1291846414,-922746617,788595509,-1811937278,1660945152,1509949702,1694499686,1509949706,973079346,1526726913,-352320712,-603979509,-1191181471,-520093430,1358955320,1677721864,-1593834735,-452984565,1845494610,1761607937,-520092869,1778385155,822084407,-335544054,1442841443,1828716807,-268434149,-1778319613,-1124072703,1879048451,905970484,1929380106,50,0,1167087646,518818645,-326903666,503760648,-1207959296,-397410302,-1073020830,28837236,721611520,-96040512,5302352,16416387,113709173,30,5899975,-1070923776,-6672405,-402652929,512426257,2013202000,-26108,2122514432,141885448,-1996077429,99350598,33048263,-126419200,16777114,49120000,1562371467,313933,-1192457387,-4521985,-1957670145,1385759814,-26032,-443875328,180829,1167087646,518818645,-326903666,1988843014,173968134,956322977]},{"sector":8,"data":[91556935,-352321096,175570723,1963130499,1161221,381158379,727076864,-1706012480,65535,-2080618871,-663420162,49120094,1562371467,445005,1167087646,518818645,-326903666,-6662652,-1107296001,132841858,-956109181,-2130706428,1962967806,-18189,1392508858,8566864,-6664162,-1912602369,-1610412026,-2145124204,-1574535116,109991891,-1818229998,880813056,-727570816,2084471639,225705988,-1157627976,1347616767,16777114,-310157824,535137026,1439386973,-326898549,2084471570,91488260,16777114,-26112,-6684672,-1912602369,637735942,1473591039,384714381,1354771280,-18352,112720,-26032,-1073020928,-443818635,1478411101,-1957345904,-661774612,17306,-5511168,105913995,-1710983169,82,-1962742397,1297948645,-1873273141,-326412987,-2082959842,512427244,2013202000,1354771204,1347440720,-26032,244318208,738131432,1347440832,-26032,-6684672,-2097151745,-443874579,-884122337,196629,65961,16988033,65783,16973828,65907,16973829,131355,16973826,131438,196611,65678,17007116,196941,16973826,196969,327683,16711808,16974164,524728,16973945,458861,16973826,524770,131194,65864,220098,65744,206143,66034,153411,16711811,131412,65809,350170,65861,220098,66039,210794,65938,351982,65806,22490]},{"sector":9,"data":[0,5,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1867513856,544241008,1970169165,65535,0,0,0,0,0,0,0,65536,0,2361869,0,-65536,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,454164480,454761234,531227,0,0,0,0,0,0,0,0,0,0,0,0,0,2162688,4784368,589914,33620053,33619972,100992003,33817095,84017152,33622021,33686275,50004475,507,84148994,50857734,773,327680]},{"sector":10,"data":[5,33686018,770,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1329790976,960115021,741355574,741813317,1347158065,960115028,741355574,741878862,1430323249,12632,827216464,-134217728,134217976,8,0,0,-1,-1,51970047,-64748,52036374,-64736,-1,-1,-1,-1,-1,54198271,1376255,52822018,1400635393,4980739,202571777,53346306,1519845377,52297730,647626753,52953090,1520107521,53084162,1520238593,53215234,1419771905,54394882,1520631809,52690946,1520762881,52559874,1521025025,53739522,1521811457,53870594,1521942529,53477378,1522073601,53608450,1522204673,54001666,206503937,51380226,1473445889,51511298,1473511425,52166658,1473576961,54525954,199163905,54263810,199491585,0,0,0,8336,1767108608,25978,1867378704]},{"sector":11,"data":[25974,1665789984,28271,1868230704,-2147455633,1816391776,6648687,2004055149,552624256,1937009920,1852601207,1784900971,1953387784,1701606505,1917126244,561147762,107695874,1668178243,1090874469,1953656674,1952797189,1225161074,1919905383,1700332389,1867383411,0,1828716544,1937208180,279886,1048676,9903,163845,0,0,0,65538,4194354,5242960,6029402,10780,262146,0,0,0,297151008,297201968,10365758,14680081,1146309894,4477775,65536,1162544640,1279610450,-855376126,319,20958467,1076,0,0,0,279886,17564101,11393,327686,8389608,131072,327680,393221,4194485,25690216,27066769,11080,262186,0,0,0,34023133,34079040,196355848,726987120,956311521,741208432,969224171,969339184,86256543,867627089,-2147287036,1,737280000,-261095359,873037825,-2147221504,1,741539840,-261095403,877297665,-2147155968,16,878641152,-265289720,32819,879165440,-265289721,32834,879624192,-265289721,32820,880082944,-265289720,32825,880607232,-265289721,32823,881065984,-265289720,32826,881590272,-265289722,32822,881983488,-265289721,32842,882442240,-265289718,32818,883097600,-265289718,32821]},{"sector":12,"data":[883752960,-265289720,32848,884277248,-265289719,32849,884867072,-265289719,32850,885456896,-265289718,32851,886112256,-265289708,34768,887422976,-265289719,32868,-2147090432,3,742916096,-261095405,888045569,744161280,-261095401,889290754,745668608,-261095409,890798083,0,1146309893,21327,134217984,369102592,520100352,1392902144,1163154265,1397556813,1146310468,1380272902,55330126,71910471,1380275029,1497713416,1380011842,16843076,-16252889,54512897,-855564297,439485247,54512897,-855562674,764019775,71290113,-855570732,961152063,54512897,-855572369,953615423,257,16720384,1107574733,1070399521,2401284,-1861992499,1070399534,702212,1594048461,1070399496,165636,1661157325,1070399535,3266819,-150782003,1070399488,511491,1879261133,1070399495,2051843,134496205,1070399528,1868035,-1476182067,1070399499,1238531,855850957,1070399503,2595075,2130919373,1070399492,3618307,-1308475443,1070399498,467715,-1677508659,1070399490,520707,-402440243,1070399528,2884611,212941,1070399488,403970,805519309,1070399544,3728643,-1140637747,1070399544,158467,-1174192179,1070399508,1404419,0,0,0,0,855834814,1347821248,-6664112,184549631,504394944,-26026,1444806656,16777114,-1260328192,505531724,1430622296,-1910575989]},{"sector":13,"data":[82609112,23871107,-14584832,1996426358,142016266,-1710852353,65535,16777114,1975520000,734014215,27388370,1024214667,57999386,1979763433,20506883,1023410477,58064918,50418153,-13724736,-16681305,1996425846,108461832,16777114,112640,1996473835,-26098,-1175781376,12861059,-5082112,-1711225802,65535,1996466155,-26098,-1645543424,-1710590209,65535,1996461035,175570700,16777114,-7935232,1996426870,9890058,-16091393,1996425334,-26106,1827209216,242679807,-1710590209,65535,-41239,-6681482,-385875713,1996488531,11974666,1335513118,-385875967,113770307,65742,-2080425239,1963396222,112645,-1070923029,-26032,619249664,-25857,485031936,-834763777,427032576,12977863,1996423169,12040202,-6664162,-956301057,50694,13541632,10348953,-804618623,-10390265,-793244042,-6664185,-385875713,9633503,29884572,14156232,18547144,29884699,29884872,29884872,29884872,29884590,29884872,29884649,20513224,1946227261,1026783159,410124544,1996554557,-16062205,1963000381,-17241853,1963004221,-16258813,-15829249,1996426358,142016266,-1710852353,65535,-13819925,343299,-1073487241,-1476448621,8323566,16187639,16908744,1491665170,49120254,1562371467,319474253,-268434688,419495680,-671022336,1795163393,184615680,1811940608,1862271744,486604545,184550144,503381761]},{"sector":14,"data":[838861568,520158977,704643840,536936193,369165056,1895826688,-83885312,553713408,486605568,1912603904,-503315712,570490624,-922746112,587267840,-1140849920,604045056,-1308622080,620822272,-1778384128,637599488,-1996487936,654376704,1291846400,671153920,1207960320,687931136,-1476328704,285213440,0,0,0,0,-1020541813,-1996153181,-1996485594,-1560277466,-1598554102,856051983,1347572434,16777114,190383872,-352094784,-1598320557,-795936241,1409016715,-6683055,-1912602369,378283712,-1993998332,117441062,-6661287,184549631,-1993771840,1459621902,1381172822,-1705983949,65535,-26025,-1073020928,244321908,185125352,-368741184,65535,-850591816,-1873273311,-326412987,-2082959842,401081580,-838416638,-956301056,64582,184960651,712247366,637951684,1946173312,4241441,8435792,-26032,1183383552,1958743036,-11526643,1996425334,-26106,1183514624,49120252,1562371467,313933,-2115204267,-956264212,65094,503369912,18528336,431509534,-1924129279,385840774,8435792,33790544,-1073020928,-588709003,-129579264,-2037579775,-2037776522,-1769144462,-1142292620,1923007488,126494463,-9402744,74719292,108342332,-9271553,-1631262741,-2144927886,57999423,-1962895895,-1983738685,1451883078,-2146767876,754938046,1191121780,-94452486,-2012771802,-1728089978,1996496957,-94452506,-2012771802,-1073023418,1191118708,130426618]},{"sector":15,"data":[1958149888,1924595711,-125926401,-1207602176,65797950,1358905272,164506,1958742784,-129579249,1187446784,-352321026,-96010493,653942468,1948270464,1065363188,-972786388,-2144537018,1965880958,-129579259,1183514625,-61436934,-9271671,-9136503,-9265468,4161574,954794868,13678847,532172830,-1202708991,1344143646,-9009523,-2135404522,-6664192,184549631,-385649216,-2037579629,-2037776522,-1769144462,2028732276,-9265468,-2012771802,1023373446,1006924832,-16354004,-335580538,1923007719,1065363199,-1957334016,-1983738685,1451883078,-2146767876,754938046,1191121780,-94452486,-2012771802,-1728089978,1996496957,-94452506,4161574,1191118708,130426618,1958149888,1924595711,178431,-26032,1183514624,-61436934,-9271671,-9136503,-9265468,4161574,2078868340,-28931073,-1017256565,-2081649835,1448553708,-1705983957,704,-1207837021,-1706033148,65535,721735331,-6664000,-1996488449,-1705978810,65535,735463049,1996443840,-25900,1996423168,571606,50174544,-459079680,-696844542,1342180024,199834,48931584,-1193904385,-1706033138,794,-1177127169,-1957625844,-25872,-972881920,2097152829,-905525498,-16777216,1183700598,-1706027304,65535,-1546107253,1183515422,13149152,52299265,-1545451893,513869090,263427,-16556381,62445174,573503232,-1037330171,-930350895,-150991432,-1727716818,-120470997,1346421035,1073946273,-6664128]},{"sector":16,"data":[-1560280833,1996423878,-6663978,-1929379585,1343682630,1347469355,-150993992,-1727716818,-120470997,230213771,573503232,-1037330171,-1054082863,52339024,-56995776,-16777213,1183700598,-11528456,-1711153610,65535,385369741,1354771280,243792,86126327,-775804007,-1194816520,787939341,731448610,737726914,513888449,-1706016765,1104,-1915324673,1343682630,80623359,16777114,52338944,-775804007,-1578071048,731448610,-1946627646,-129593864,1448562710,-150993992,-1727716818,-120470997,230213771,573503232,-1037330171,-1054082863,-1924085973,-1706032828,65535,-1915324673,1343682630,80623359,308378,52338944,-775804007,-1947169800,-788192706,-129593881,-1923657706,-1202651324,787939331,731448610,-1946627646,899272,86126327,-775804007,734079992,1150111943,-1147514878,-16777213,1183700598,-11528456,-1710961098,972,-1697220865,65535,1342182328,410266,1975520000,112645,-1070923029,184554147,-955747136,189958,722594560,12079296,1347590527,327322,48669440,-1202667477,1385791234,-26032,-1834811392,1173507,74825739,65781803,1577058744,1575324511,-326412861,1443163267,16664263,4241408,1751120,129407568,-259325952,-1996298591,1153896004,-1593835504,1149829594,16300042,-1944697719,1153898588,-939524350,-64444,1344194187,361626,1975520000,11856131,-1996431176,1552684612,184862488,38061824,1153957887,-1946157308]},{"sector":17,"data":[-1706025274,1451,58048523,-1207923223,1149829354,408718358,132295,-16628537,71616511,-963903489,-811970530,184549381,-1201048384,1149829348,408718358,-16628537,71616511,80216063,-963969013,261771294,184549382,-1203407680,1149829336,408718358,31078143,-1728052808,-6664110,-1996488449,80153668,1153892355,-939524350,-64444,17974471,340051712,-963969024,-6664162,184549631,-955943744,130630,-26026,1183514624,-443851010,1478411101,-1957345904,-661774612,-951915389,16829446,440320,105814608,1319305216,374786,-26032,614662144,-633929982,1226753,-1102672560,515395606,-694530048,184549382,-385649216,1996423654,1354771206,16777114,-599357184,1354771280,-4698032,12079359,-1365618679,184549382,-385649216,1996423614,1354771420,381568653,131119184,16824400,-26032,-1073020928,-1612119179,105286401,-1878859101,65988622,31078143,1342183608,503490232,2013264,116628048,-1073020928,2011759477,-633929983,1882113,32946256,683167774,278548480,184549383,-385649216,922681690,498598362,649613312,-1202708989,-1706033102,1837,58048523,-16695831,-1207838154,-1202716649,1344144224,1342190264,477850,1975520000,18934019,31078143,1342182584,503498936,3323984,124230224,-1073020928,65602421,-633929983,1161217,78952528,347623454,-2070261760,184549383,-385649216,922681574,616038874,-1866969088,-1202708991]}],[{"sector":1,"data":[-1706033087,65535,58048523,-1711224343,65535,77596358,-704198912,-956301311,16969734,-2113485056,-1207959551,-1588592576,-523173698,11967056,-1633484800,1975520004,9758979,503376568,19183696,-1070903266,1380974778,1347440720,108461904,-633929904,-1706012671,2063,184882851,-1201048384,1344143588,503391672,-1161811120,1347571712,1347440720,1342600959,31078143,983191632,-1560281080,-1073019702,-524796300,-1202708992,1344143654,817545259,1347441232,-11513776,-11532682,1342298678,-26032,-995950592,1958742786,-26093,-6684672,-956301057,52230,112640,-1962742397,1297948645,1426064074,1996483723,31373316,178256,142776912,1996423168,80656388,178256,143825488,1996423168,48674820,178256,144874064,1996423168,59947012,178256,145922640,1996423168,52344836,178256,146971216,1996423168,86161412,178256,148019792,1996423168,13154308,178256,149068368,1996423168,48543748,178256,150116944,1996423168,48936964,178256,151165520,1996423168,46577668,178256,152214096,1996423168,56539140,178256,153262672,1996423168,1226756,178256,154311248,1996423168,13285380,178256,-26032,-443875328,180829,1167087646,518818645,-326903666,-62470364,1183514624,31105806,16402119,209617664,-954895104,67142,-16091393,244320374,-1980296472,116128326,-401836289,-4653335,-17665]},{"sector":2,"data":[1996443730,161323534,245563392,269912325,-18427,1392508858,242679632,636058,38839040,38934153,-1157627976,1347616767,-1710328065,65535,-1996154205,-1593500650,101385486,58000656,-1593784087,101384784,57999954,-16728855,-1207838154,-1924136938,1343675462,1342185144,419738,1975520000,10479875,503371960,-599356080,-1070903274,1375784122,1347440720,1342203064,1347469355,1343125247,132422224,1183383552,1958743036,-868318389,1148518400,818819,-1410846347,1958743030,105301765,2122514434,527696122,519718539,112720,26843728,-1073020928,1187448180,-16776698,513473142,-16777210,1996487798,-26106,669712384,-1202667477,726663192,1347440832,-26032,1048772608,1946157260,-58817778,-16223232,-6620042,-2097151745,1946221694,-868318452,91553792,-352321096,-2084558078,-443874579,-900899553,1478361098,-1957345904,-661774612,-16061309,-1711087050,65535,-1191557495,1344143568,503378104,19380304,1183666206,-1202710794,-1706033150,2887,209043467,-1191545089,-1202716620,166395905,-1191545089,726663220,-6664000,-1207959297,1344143626,503392440,1354771280,731802,78553856,503384760,19839056,-1070903266,-26032,-291307520,17479682,884494366,-1202708991,1344143632,62410782,1637502976,-1207959541,1344143626,503397048,18135120,1344163870,1342178232,753306,17479680,1119375390,-1202708991,1344143680,385631885,178256,195140176]},{"sector":3,"data":[1183449088,18326268,503384760,21674064,1220038686,-1924129279,1343683654,1342177976,66202,-62486016,-2097080158,-443874579,-884122337,131130,16713085,131076,16713046,131077,16714110,131078,16714133,131079,16714156,196617,65656,196608,16714314,196626,16714362,16973843,197934,16973829,199259,196615,16713616,196650,16713803,196651,16713798,16973868,196637,131087,67070,16973863,327782,16973829,196704,16973854,196663,16973860,329359,16973977,330499,16973979,329337,16973980,330436,327837,67065,16973863,199046,16973875,263051,16973869,198770,16973878,330262,16973865,199445,16973881,199396,16973882,330342,16973866,263039,16973875,262868,16973876,328941,16973997,329195,16973998,330217,16974000,328901,16974003,330383,16973877,329053,327737,16713119,327682,16713151,327683,16713080,16973828,263356,327748,16713041,327685,16714107,327686,16714130,327687,16714153,16973833,328395,16973890,328418,16973892,328867,16973896,262894,16973904,196810,16973912,196683,16973915,262836,16973911,328801,16973905,328717,16973907,262964,131165,16713124,131074]},{"sector":4,"data":[16713156,3,0,0,1167087646,518818645,-326903666,-633929978,-26111,20774912,-2092532224,52798,-4706956,-17665,922701906,-6684198,-1996488449,1451883078,726684412,-1706012480,65535,-231681,-6620554,-16776961,-6683018,721420543,-6664000,-352321281,6809603,-1962742397,1297948645,503317194,1430622296,-1910575989,384599000,-1928694017,1343679046,1342182584,16777114,48406784,1946830393,-364475096,-659009514,-1706025472,791,360038411,-1207273729,726664196,1347440832,16777114,-339727616,112643,-1962742397,1297948645,1426065098,922741899,1622672098,-1202708989,1344144072,1343238584,151706,81152,-1070921355,-6664112,-1962934017,516120037,1430622296,-1910575989,1894548440,-1987033459,1452078662,172395512,1946961419,-1960842437,-986974650,1023438853,461176931,-16097596,-1977218490,-161561593,653674239,1589905288,1065362954,-992447232,-970525090,1183645703,-1706027376,544,284444359,239504128,1946163261,1850680,490563700,-950111232,3208262,31078143,-126419120,-1946781953,-986974650,-134220755,-6663976,-1962934017,1452013126,-96040456,-335784311,44480521,-1929754999,1589967966,1065363194,-1960283136,-986974650,1023438853,461176931,653936383,1589905290,-163119114,-351827930,52869337,-155660565,-993400063,-970525090,1183514631,138808070,-1014282636,1183433356,-61437446,1183522795,96807926]},{"sector":5,"data":[1664942192,-1004831488,1191118430,126494214,-631100,-2010712506,106873863,4161574,1589958773,130426614,-59310336,-1694861569,65535,12992131,721712128,-2096174144,1946161278,273058565,-492764181,1183666178,-1202710896,1344144564,-2131474805,-1706028852,65535,1962934589,112645,-1070923029,-1962742397,1297948645,503319754,1430622296,-1910575989,621078744,1342479523,-1559855896,-1511521076,77374244,-472786805,36091903,-2096731928,-443874579,-884122337,1167087646,518818645,-326903666,1187468900,-1879047940,79489038,-397361109,-6678390,989855999,1963123206,-401698811,2122394437,1963196678,18934019,-1996174175,244379718,-1577087768,1178141900,-15633168,721753654,-1202696000,-1706033151,65535,379602573,85893456,798642206,-1879048189,308471822,379602573,85893456,1134186526,184549379,-955943744,130118,379602573,31504464,-6664162,-1879047937,293791758,379602573,31504464,-6664162,184549631,-955943744,130118,-1985984883,1452055622,-1671510882,-1952692481,-788227018,646220518,641795074,1586169736,-1673068644,973588006,-1996153183,300675654,-6529340,1988860998,-230227982,-2010774390,-228685049,1962950528,-1605988889,1996443670,-1669922914,16777114,-1898411264,1065363138,-1005947812,1191156830,130426524,-1671510948,647775999,-1960179770,1191156830,130426524,-1671525586,647775999,-1960179770,-970548130,1183645703,-1873799520,598599694,-1878173720]},{"sector":6,"data":[188737550,132648592,-1375287538,-16777216,-1929190858,1343681606,16777114,-126419200,-1862633729,136636430,46413567,1347469355,1342177720,279450,-58817792,-2130217728,67176062,922685813,-1070922550,28856400,-191213568,-2130706430,67110526,113706613,188,1312455,-1147535360,989855746,1963123206,112649,-401698736,244328753,1577278440,-1962742397,1297948645,503317194,1430622296,-1910575989,116163544,108432214,993904267,-385649408,58589321,755114985,138215474,-385649152,-1073544595,-1476448621,384304816,39840252,503469240,85893456,60444702,1442840579,323226,38267136,6831747,737181185,280514752,-1070903296,1347440720,250089104,36432380,-26026,1183383552,1975520250,35383555,-26032,-1073020928,922686068,12059362,-1070903292,-1706012592,1364,-1694861569,65535,-2097023767,31806,-353827980,-26111,-488046592,1488897,1354771280,16777114,-603535616,-16777215,28838006,-1070903292,-1706012592,65535,-956187415,16899078,142016256,370586,-62486272,4372560,1354771280,361626,-59310336,1342194104,-1705983957,1428,-1191414017,-1202716611,-1706033144,1463,909749739,57999390,-16681751,765069430,-1996488698,-11469754,721428022,-929410880,-1996488699,-16769482,-1202258826,-1706033144,1597,-397361109,244323698,724056296,12624832,-16463709,-1207778250,-397410303,922688444,-1070923068]},{"sector":7,"data":[28856400,-2003152896,-1207959546,-1873805311,664528910,25312899,-385649408,922681609,-1070922552,346482768,956366057,1962983990,15984899,1206390416,142016257,16777114,-62486272,-1036583088,1354771200,413338,-1036613376,-59310336,571478,-26032,244318208,-1878467352,195356686,-397361109,922686690,922682052,-1070923656,112720,-26032,244318208,-14183192,721601590,-1202696000,-1706033151,1061,1342177720,182980240,-939079897,-2097151996,98878,-1070921868,367546448,-401698796,1743454496,80151751,80151788,79168720,80151730,1111295175,-385649408,528481789,1962949949,-24647421,2080390717,4144446,-1175911553,4275710,1290339189,1026354174,394199113,2080393277,-36706045,2080392253,4668698,384369535,1024519167,57999434,1040040425,58001360,1593684201,-1962742397,1297948645,503317706,1430622296,-1910575989,82609112,425603,244319605,-14232344,-1711094730,65535,1358710409,-14868760,-16595914,-6620042,-2097151745,1946158718,1354771208,988286608,49120038,1562371467,182861,1167087646,518818645,-326903666,306086662,796131328,-1727953759,-120470997,-1577433463,731448096,-1980182078,922745926,1183646434,-1706027270,65535,-362753,-6620042,-16776961,-1711041994,2021,1342177720,515226,49120000,1562371467,1478413133,-1957345904,-661774612,-1705983957,65535,48641791,16777114,49120000,1562371467]},{"sector":8,"data":[1478413133,-1957345904,-661774612,17464963,1048785012,1946157240,-1140406510,-956301056,47110,335988480,-1962934016,-2069690810,138840833,-16572253,-1873803658,67954702,113713899,65720,12861059,-16157696,-1711225802,65535,-397361109,113709814,196,-1962742397,1297948645,-1946155318,1430622424,-1910575989,49054680,-1957341354,1988824190,-1950338294,-1175942184,-422510560,-392833071,-1818951574,-1828690456,-287178732,1432210827,-1962508604,403749353,3664018,1960083,1697941,-1070350285,2116771242,-947171578,-310157729,535137026,147475805,-729133056,1509949928,-355405174,-355407152,48818896,-2133423616,41160674,-838991695,-897528542,-2133775824,57942266,-1012219254,-2044215278,666899140,1438893190,1452010635,-854674428,-1947981279,46292453,-1864856576,-326412987,-2585058,1996426870,242679564,-1710459137,65535,106349854,567089844,-989180277,1320422486,41034189,1344258099,-15829249,1996426358,209125134,16777114,-310159360,535137026,181030237,-1864856576,-326412987,517508638,-1274652987,-1272853222,1914817871,532689666,-1962742397,1297948645,1426064586,1465314443,72795422,567089844,-1274521915,-1742615279,-1956749537,146955749,-1864856576,-326412987,1457032734,2126782039,1183579144,1975519750,-853953530,-1967063519,-1436766000,-141877498,567101364,1996428146,142016266,-16091393,1301940342,855638025,1583292352,-1962742397,1297948645,1426065098]},{"sector":9,"data":[-987829109,1589905494,1258338308,-1960894003,146955749,-326413056,1443949699,1183516247,-1073337590,922196224,1183384314,-1983892496,-1897267642,505318144,-1947994365,1124124702,-1023153199,-1946532215,512487494,-470351120,-1996486651,1183579206,-98661392,65271554,100924998,-523173696,77465091,76279947,-150989125,-1898411037,28837446,662709760,1073837072,-2081143159,1586039235,-129594122,1460075403,16777114,-230258432,-15960321,1996487798,-126418950,-624897,-6622602,-16776961,1325399110,-2001420,1325399622,-1961724920,104595014,57869050,-39191,1491726406,1583286271,-1034033781,-1957363702,183272428,2007302,1962950205,73319446,-1727558874,49290891,512488439,-470351110,-997191189,-1960442786,-397409721,-1073013627,55050612,-1996439546,513932870,4078848,1589911157,1200301572,120268292,49290891,-1723284733,-1958677513,-150799842,-1877873693,637820612,637945739,1342326571,1075594472,25304715,1929272875,2126723928,-1983673598,-1072956346,-996062348,1958742784,-129595068,1183432755,112886,1342994175,16777114,507413248,360005120,-15960321,1996488310,-126418948,-386500865,367787643,209125264,-100609,1996487798,-159973384,16777114,-443873536,705117,1167087646,518818645,-326903666,142016274,385238669,67738192,95944704,-6664192,1375731967,-26032,1183383552,-6663952,-956301057,62022,16008903,142016256,384976525,128227920]},{"sector":10,"data":[1996423168,-227082490,-1695254785,65535,-16353537,630911094,-1996488692,1996484166,-163148538,1996443670,-25872,1996423168,-294191354,16777114,-260636928,16777114,49120000,1562371467,313933,1167087646,518818645,-327034738,1448542336,-150680415,-1325063634,98620163,1183383560,52339074,734147481,178626,-1036781357,1183433259,138841084,2105689657,80519441,-1962601821,1183416902,56533498,1183532011,535816,572427161,-754732795,-1946421277,33457136,28837245,-1962743040,85107654,86126327,-523041871,-1996486651,-861799866,302383876,-1952888827,-150662642,1580136441,-62521085,503439544,221813328,1183383552,787955960,514000162,-128021758,31492038,-1807315712,513888278,-1706025467,1219,77610624,-2094042112,121918,512436341,2139096350,259260417,378816141,2144336,781864990,-1929379827,1343657030,503619768,-26032,1183645696,-1706027372,2693,86126327,35522051,-1551874423,1183515168,-2142895230,989857797,746391622,-1727848799,-1037319629,-754974023,734147576,-1580692542,103482206,731448094,66638274,-2042197567,-1980086645,233538630,1090274955,-2042197696,142886599,-2008627456,1183514632,-2008643320,59131531,-1996284410,-157185466,-96061182,-123664267,-62506750,922702708,-222821662,-1202708990,-1706033151,3670,-1727848799,-1037319629,-754974023,734147576,-190625598,-234436862,-1962932222,-157025722,-62485758,-16582493]},{"sector":11,"data":[-1207626186,-11534328,-16583626,1996487286,1354771452,952986,-1975088384,-1996487675,1183551046,-1840871162,-150854495,-1941534248,50873995,-1996348410,1319211078,-1840905982,956503713,276137030,956504737,141920326,956504225,1182041670,48379647,503518904,112720,246717008,381616128,-2072605437,371066654,-1515870945,922689445,922682570,922682134,446759704,369502979,480333827,403057411,-1070903293,249862736,-1969160192,-1908000511,-1902047115,-1840891647,-1935603595,-1874446079,922700148,-2001206558,-1202708991,-1706033151,1527,-1929279297,119442550,-1524689378,530949541,46413567,-7571713,1183551094,-1941558384,-1840870576,1351501355,-1705983957,65535,80230143,1579107816,49120095,1562371467,313933,-1275051,-1711094730,65535,-1710983425,1856,-1034033781,-1957363710,108462060,-1710983425,1875,46413567,16777114,1575324416,-1946155838,1430622424,-1910575989,451707864,-1593419946,1183383746,12886522,192200715,-1946401143,184669726,-352094757,-1960931234,-1947479557,1443621875,-59310249,-386238721,-2092040107,-277020418,-544522773,872177294,-1928915210,196732030,514191872,-1946209529,1489347,-259268105,-1510807087,521599115,-1176209779,-1510866933,-1070335093,1996445520,-92864516,1325404392,119521397,-310157729,535137026,1439386973,-326898549,106386968,106860062,-1156954485,-470351850,118943883,-1175945587,-1510866933,-787855733,1183400160]},{"sector":12,"data":[140413950,1450427195,1958951755,1489689,-670833673,1394495518,-402360577,3997791,-16548608,118947398,-1947697523,381419078,115603200,-11526569,1088947318,15616,1183521917,1489162,-125050377,1183516446,172395006,-259268105,-1510807087,119446251,1988960022,172395496,-150989127,-789017631,530969321,-1956749561,146955749,-326413056,503732054,-1005947195,344589918,638640768,1947207670,112649,292934154,-4707349,1976699647,71732004,1962951741,164004639,839500675,975613156,1124562183,-176832502,28313579,-5242249,8448408,1962952253,112668,638012555,1913081659,-1962314260,992347468,-512621233,-335544392,4537820,28843381,55347968,55524134,-394933390,637619339,1912688443,870152128,-2084901952,-829748794,1017963570,168064046,-1946716736,-2081190954,-24442426,775728166,-1073085324,-561252747,648868491,208996154,1975519811,-1947104267,-9704993,-1744360922,1583286047,-1034033781,-1957363702,183272428,12861059,-950111232,65094,12850827,1183432747,-128546314,-1577433463,1178141142,-1958248966,1452013126,591352,1183535186,591350,-610643886,-1962934263,1452013126,-163150856,591126,-694529966,-1996488692,1183579206,-62506498,1183516286,-28931588,-335919361,-28915786,1183514625,573503486,-1194816763,787939333,731448610,66638274,-267482680,-1715369214,-1037319629,-754973767,734147576,-754732606,49325024,-150991688,-1559944658]},{"sector":13,"data":[163054316,573503232,56402693,-1017256565,1167087646,518818645,-326903666,-950642934,98822,-1073297664,-956301312,313350,-599883008,829685761,1342193848,1342210232,16777114,-62486272,494190603,503369912,16824400,683167774,-1957683712,1344207942,1342210232,16777114,-1002536192,1299447808,12850827,1183432747,-128546314,938210859,653680324,1963984886,-1933341926,591298,-1598533550,-11526652,244382838,184571880,-1089506112,495649154,-472840705,77479563,1183003017,960894710,2130826806,-599882813,242483201,16547459,1996425332,85760764,1048772608,1946157442,1354771207,133097552,46413567,1342177720,1578028008,49120095,1562371467,1478413133,-1957345904,-661774612,-2096436093,121918,-1310129291,108954368,-955222784,2623046,2122320363,276049654,-1005828353,-1977217954,-163149817,-361381878,638344900,1962950528,19130627,-1962129665,1183385158,-128021512,1962950528,17819907,1191117803,-128021512,1948270464,4161781,1183572852,240552716,-1980086647,485227606,720782986,1372138468,21797456,1589903360,121120506,1191121525,-129564678,-1963434357,-163149817,-663412676,-1963434357,-163149817,74719292,158711818,-385875528,1191116979,-128021512,1033373578,-227082208,1589938155,1065362952,-991857664,-1977218978,-163149817,1987362826,2768280,775765108,1029338112,276037695,638344900,1937049400,-15972609,-739571642,-1006090497,-1977217954,-163149817]},{"sector":14,"data":[1534377994,-1082905028,-351516929,-159481670,-15698898,1589906502,126494220,183912072,-991267392,-1977218978,-163149817,-1753956342,-1821102532,-351779073,207537386,775913510,-2144949644,393543743,1589945835,1065362956,-1005816576,-2144991138,57999423,738150889,49120192,1562371467,707149,-2081649835,-1667148052,-62486268,-1560000885,-661977956,-1207966767,-2098724314,-1438216716,-1070903274,-401698736,-1072958181,1183520116,77374460,-472786805,36091903,737435880,-15340608,-1207770570,726664192,1347440832,332954,112640,-1034033781,1478361092,-1957345904,-661774612,10415233,31506006,77340299,-2020940847,1090781734,-968489848,-968476156,1187381252,1187446678,1187383452,1183645853,-1202710882,1344143428,1416090,-1773761280,-2037559274,1343684452,200571112,-1923779136,-1979746682,1452066886,-1928401974,-1929417594,-934921263,1325337715,-933313336,541032486,1589963124,1065363144,-16550880,-2037528506,1183448940,-61436678,-1949809013,1178192470,-1005685766,1191180894,126494458,-347732856,313063,49120094,1562371467,1478413133,-1957345904,-661774612,-1923945341,1343663686,-1873756117,-199628786,74760203,317440043,503652001,-1371108016,-124104682,-1207959540,-310181887,535137026,1439386973,-326898549,138840864,1946288189,33635668,37555060,-385649406,803799238,-499712254,-26110,1048772608,1946158258,35449091,956440737,58459206,-16641559,1183517302,503720708]},{"sector":15,"data":[417878018,30974723,58189904,6555335,1996423169,-26102,-337051648,1681818369,57999360,-2097028631,307774,-672595084,75399937,-1588888576,1178141216,-2092729084,2080376446,52339005,2131117625,71732021,35522091,46524496,-1577564535,1178141144,-385649160,-12779102,-16288513,-397407626,1996423953,-129594614,1342298275,-385678104,1048772998,1962869208,175570698,30947071,-956108568,-16656378,23915007,6569603,-385649408,113705314,100,16777114,-666991872,58064641,-16691735,922684022,-1092091432,108954370,-1593082624,1178141470,-385647098,1421345074,-1588584958,1344144670,1374618,-196688128,1048773205,1946157528,30974254,-1946532215,1065415774,-350194688,-528580599,-15764480,1586230342,-2012771596,1547493446,1325394805,-92371974,-1955171072,130479198,388995584,1183383552,-27883012,16777114,-163149568,78776007,-6684671,721420543,1444674630,-1949791234,-628361658,2128231321,10610947,-935655556,-1729559694,-498692864,-1070903274,-1202696112,-1706033151,6056,-965427189,65306241,-1926794238,1343676998,16777114,-498692864,-6664170,-352321281,-195130455,1962950528,-11015933,-369867009,1183711057,726669026,45633728,-1202696190,-1706033151,65535,-428556277,78776007,244318208,737129960,1421365440,726670850,-1706012480,65535,309641227,48379647,1342439608,1347469355,346921552,244318208,-336599064,-1308178673,-1207959548]},{"sector":16,"data":[-1706033097,1225,-1034033781,-1957363704,1793885164,-1136753834,175374336,1326723,-385649408,1996423408,74907398,16777114,1958742784,14608643,-1207404801,-1706033144,3015,-6664110,-16776961,28838006,1838829568,-1929379829,1183422022,-61436678,-520206649,-1005458687,1191180894,-25785350,-1963047169,126363140,-2130813301,-411762625,-368956,-970524090,513875975,-28931835,1589907947,-96010246,-100725,76217926,-1962440666,1065418334,-2132314880,303166,1048787828,1962934748,505318196,25133061,-1005947904,1191180894,130426618,-28915876,300614816,-368956,1988885062,-28901378,-2010774390,-27358457,1962950528,-94452505,509478,721975039,-928952128,731463680,1358483906,378947213,-1916564656,-1054108082,178231888,-1956773888,146955749,-326413056,-1593381757,1178141986,721714436,-951129152,130630,1074077345,-1946401143,1065417822,-349867008,1952201735,-62456049,-1963172213,-96040953,-311050230,737953419,-150659578,990192174,92144710,-335657333,-60912880,1946173312,-62456061,-335657217,1575324606,1426064066,-326898549,75399956,-1593281280,1183384866,-1587090434,-1992293090,1183576134,-230258428,2122328555,259260652,-1947187457,126546014,1022117512,-1346212,2122576462,326369522,-2131730805,57933887,-1947187457,1065414750,-1948748544,103542854,787940638,1183384866,-226589698,-1206750208,1344144544,1152922,787955712,1174471970,-28931074]},{"sector":17,"data":[35522051,-1913370999,1343682118,35534591,-11485141,922743926,-6683874,-16776961,-404224394,-297367052,-163148464,-6664170,-16776961,1996424822,-185931538,-1034033781,1478361092,-1957345904,-661774612,-1960645501,255659078,1026454528,477364244,1912733757,33766734,1996441975,1996443662,108461832,737888488,1273731520,-15829249,244320886,-336513560,242679790,383665805,-26032,1996423168,-562626802,383927949,-43063216,-1928431873,1343675974,16777114,-3872000,1996426870,175570700,-16222465,-6683018,-2097151745,-443874579,-900899553,-1957363702,108462060,-1962840088,-1073019834,1996424820,5105670,-1034033781,-1957363708,-1962518548,-1962907634,512314329,-472842136,1715374931,-1948318976,71731991,-1343092962,-1031057585,45832363,1714880256,-1705816064,65535,-16750941,149423222,-1956706560,46292453,-326413056,-1003028650,-204412926,-11472757,1676149878,-1003028736,-639085054,-443851021,180829,-2081649835,1465255148,-486257013,-1003028693,-207296510,-1946270071,-486512626,-1946580207,-1392482762,1358853887,1325410792,922744181,1996423876,-207951618,6819467,-1070395677,-16750429,-1711249866,4798,-443851169,180829,-2081649835,106369772,-956021109,588870,1982083,-1724877506,49946251,1183446007,-162100744,-1728003935,1586230263,-1579668488,-470351120,-1946401279,512489030,378209008,-634714846,730863595,1912651782,-1194816695,653721643,33883426]}],[{"sector":1,"data":[-1948742912,505870273,-28931837,-2080612861,1586037443,-1928915206,1183575678,142844,-28931157,-96040021,-28931157,52299267,-293696085,101086975,438278743,1594294272,-1034033781,-1957363708,6857196,259375115,-1157627208,1347616832,1192346,1074916096,45867217,1714880256,-1705816064,6924,393527307,-1962907997,-788502498,-1948777501,126420038,6817535,-1962907487,46292453,-1864856576,-326412987,1473809950,1745783558,119423232,6700683,-234469749,130124719,49120095,1562371467,182861,-2081649835,1448547052,-16353537,496632950,184549400,721777856,19327424,-1207404801,-1706033144,7395,932859986,-16777192,95946870,815419392,1375731736,-26032,1996423168,112648,407083600,1996423168,-26104,1183383552,922702078,127533766,721420300,12052982,-1461059797,-230257920,104580867,58459340,-1593793559,-285801634,1183400000,86155764,61992951,1077993683,-1191819639,787939331,731448610,-1980182078,1996484166,-163183864,-193527984,-150991432,-1727716818,-120470997,1357792811,1073946273,-25755824,1347469355,13239865,548931700,13416960,1723336427,10074624,-6664110,-1962934017,-553389474,-2020940847,1090781734,-506232,1996425334,13148662,-775804007,-196738056,1183666240,-1202710792,-1706033151,6402,306067783,-385647099,-1589182641,-285801198,1005733513,2097466374,-13047549,-1694599425,65535,-16222465,-402351050,1599995912]},{"sector":2,"data":[-1034033781,-1957363704,216826860,-1727773045,85069451,788003319,1077936990,-1946925431,-140966842,-138245127,-1325063634,1088475907,-163149504,385369741,-163148976,1342178349,1223968395,230182984,573503232,-1037330171,1174665425,263670,-196703408,52299267,1342178053,1706906,108461824,385369741,472554064,-443875328,311901,-2081649835,1183516396,33570056,20791412,1023964162,578028034,-956264983,16807430,-499712256,365861378,1996423168,369531402,-1667170304,80782084,1048779755,1946157174,1980155751,-1711276032,5789,1048774635,1946157174,74907475,-402229505,1183383760,-28931588,108904459,-1996186463,-794690490,-62506748,1996424820,3336444,16678531,2122393212,1963065864,-401698785,1996482678,-801702134,-178722812,125157387,77346559,-1879045144,-390404082,-1034033781,-1957363704,49054700,85341951,-1980770840,-11469242,-402337738,1996488388,71732222,1342492835,-83992,-16443850,-840368522,1575324655,503317186,1430622296,-1910575989,116163544,33310407,108461824,-1862290456,-402331634,85341951,80754431,200599016,-15960640,-402351050,1187512216,-1879047940,-398268402,-2080618869,-443874579,-900899553,-1957363710,49054700,85107030,86126327,-523041871,2114340411,108954428,-2093581312,2080375934,71732016,1578011545,-134613245,-1962601938,105286600,572427161,-1309570299,-136064253,-1980759045,-861798794,2112895748,-339309820,-18429]},{"sector":3,"data":[1575324510,503317698,1430622296,-1910575989,585925592,1024214667,812908559,20797559,-1587383040,-794622820,-1715459324,1996450795,209125134,-16222465,1072170614,-1381378,1996426870,-401698806,-571741330,-1928431873,1343675974,1736346,242679552,-1914800385,1343676998,-240152,1183649398,-1706027298,6809,339588075,1036284928,91357696,1979843133,242679721,-15960321,1996425846,108461832,1748890,49120000,1562371467,707149,-2081649835,1448554220,1024083595,141820417,1946288957,15919455,48379647,2003610,74907392,-402229505,1183384232,-49666,-706149505,80257792,224716880,-1862371585,-72751090,443924491,67651318,28837749,1541951488,-25755654,1342177720,-369505304,1190527144,58000392,-16736279,-706150794,9890297,-16484609,1441269366,-28931838,2147483453,8579331,1342177720,-384536,28900982,-1847046144,-330920455,-1070903274,33732688,28856400,1620725760,184549399,-2082048832,50238,378228852,-1070923580,-1982708087,381211734,-27358464,915137489,687277214,-1949153791,1452003910,-696349228,118943883,-1176859106,-1510866933,-700019425,280514582,-6664192,184549631,-1207599680,48955393,-397361109,1599999242,-1034033781,-1957363702,384599020,1048794711,1946157178,27715843,7997127,1996423169,112646,1354771280,507413328,91569664,-352321096,1354771202,2225562,108461824,1347469355,507413328,91569920,-352321096]},{"sector":4,"data":[1354771202,2266778,2013710080,-256,1183647350,-1706027276,9229,385107597,602511952,-1073020928,113708916,66298,1836743,803799041,-96040191,38667819,504269721,-1543899389,20775674,-1207730432,-89980927,507413250,57949696,-1962899991,-1952843706,-150802418,1876985,2097152317,470206214,-1593835264,787939356,104530682,914162050,50430625,1208154630,-99710055,737801986,-1996481530,1996483142,1354771206,-361300144,586783312,1048772608,1979646072,2013710094,-385875968,1187512149,-1593835286,1183383744,-364475410,49950455,-1063128949,244029696,-101252358,-125048329,1031732795,1005307531,1836743,-2103377919,-100255487,734493954,-1996293626,1996483142,112646,1354771280,1357543167,16777114,2017362688,-1418330368,7866055,-219611135,-1547203586,1178140864,-15633170,721601590,-1202696000,-1706033151,3524,7880323,-2094432513,1040195134,-1063187339,244029696,-101252358,-1063189525,-330921728,-16353537,1342208054,-1710983425,1650,7997127,1599995904,-1034033781,-1957363708,49054700,1982083,-1590266562,787940126,1178272506,-1960477180,-1952905658,-150802418,-97585159,-1949791486,-1952906170,-150790626,63439867,-1996439538,384564814,-335544392,71731996,504269721,66713347,-1996439546,-2103312826,-28952319,1183572605,1575324670,1426064578,-326898549,-1136753906,2037710848,11419267,-385649664,1996423297,74907398,1883034,1975520000]},{"sector":5,"data":[175570754,1342179512,1888410,-1706012160,7383,-1928562945,1343682630,769690,175570688,385369741,108461904,-402360577,1536878252,989855748,1963123206,175570694,-2097137944,47678,1048783220,1946157524,209125154,993690,-737753344,-352321535,-499712238,67155970,1354771280,-560312240,-1962934249,180510181,-326413056,-1593512829,1183383654,-62470146,317390848,-1962641665,1183055454,939459326,-586264,1755446342,-62506752,-443816324,180829,-2081649835,-2091510548,-16746434,-1696005259,142016257,385238669,570989136,614531072,-163184382,1982083,690582846,-90047930,-230258430,737822347,-1952844218,-150802418,-97585159,-196703998,695582731,-1996293471,569111622,688017057,1187511366,-1962933774,-1952842682,-150790642,-196703751,91602955,32786119,12624128,-940554615,65094,184960651,1024881856,796131329,1946157629,212271,71118708,-349211648,-230257912,1183439095,-28931074,12584449,12598915,-953123584,49158,-1955599616,-487853498,-336312693,-196703269,1048828139,1966997534,71731981,49950455,12584491,1183565035,-2081035516,30782,-2103367819,-100269311,-1952888830,-150799858,736753657,1183446086,12624366,2112767545,-297366751,-352272221,2017362713,309657856,25310859,49952299,12596793,914949246,-1063190336,-263836928,201213577,-2089978688,16807998,1996431989,112648,-1070137520,312102912,-16777178,-1070921610]},{"sector":6,"data":[-28931248,787994871,820708126,721975039,-1063169856,244029696,-101252358,112720,592747088,1996423168,-28931320,-99710055,-134613246,-265357352,-1070903294,1354771280,-1706012592,65535,-1710721281,65535,80230143,1577577960,-1034033781,1478361094,-1957345904,-661774612,1461906563,242649942,-1962115445,998855,58087284,1023444457,141819905,1946158397,9562420,112726,1354771280,-1818603440,1442840614,1347469355,-644198320,721420321,-2132174400,-11053568,1996425846,108461832,-335943192,-1070901526,-84744112,-11083285,244320886,-337319448,1183667926,-1706027298,8261,-562626730,-1914669313,1343676998,1459417320,383665805,543201872,-1343553536,175570774,-402229505,-1544815190,1946162237,18103741,356323186,1038448129,91357696,1979843389,-11053424,1996425846,108461832,2131354,-2090902016,-443874579,-900899553,-1957363702,82609132,-1980353706,-396951946,1072226753,1975925504,112678,-6662576,184549631,991458496,1963236406,-28931322,-1946401143,1191181918,-1981558274,1174546103,80492091,1183565948,80520190,1593591435,-1017256565,567089588,1438901290,1183575179,505318148,1220739843,-1946945639,46292453,-1864856576,-326412987,-2082959842,1465265900,-1983892730,-996017082,1958742784,1150963718,-1207959544,-1096613868,1489664,1086055415,1347572480,16777114,12886784,58048523,-1207918359,45809704,-1640562944,-1705816060,7260,58048523]},{"sector":7,"data":[-1560246039,817562782,-1912655104,1996476534,108461832,-1873406381,-519968754,-1962898967,104594502,661848254,507808310,326381116,12846734,-2095114722,381228486,-5967360,-1927283642,1444335734,552078992,-1587942431,335872190,1489664,-1147542537,922681346,1347551428,-26029,-1073020928,-995943052,12493056,-788524027,179168,77477631,-392539312,184549415,-1156418112,-1070399459,1347441488,244338768,-338137880,77505295,12453507,-8918764,-109789173,-1543747957,-996081194,1958742784,30843162,-1157579101,-470351850,-2411623,1375781942,1452954448,-1593835480,-1073020458,-784334475,-2411552,1342479926,678664787,1594294272,49120094,1562371467,313933,1167087646,518818645,-326903666,-2091493508,5182,12061044,244338692,-1193699864,-1706033135,10531,92127243,-352321096,-1983894782,280557638,664424448,184549420,-1207599680,48955393,1183432747,80257498,-1948760439,3999814,1024160769,57999617,-385731607,1183515305,2112774,-840367243,-385649151,138215934,-385649408,222101802,-385649408,-2031549995,-1003028734,178178,1354771280,-369418776,922681973,62390980,-1947342080,624756294,1031500800,259260454,1962944317,8710403,1946167357,-2096370855,313406,251593844,-928971576,-666486524,988349301,1776832514,-935919869,74246148,14319235,-1394015371,-663290112,-1461186928,1975520242,8644867,80230143,-1729622384,1958743026,34072835]},{"sector":8,"data":[80230143,1342177720,-370097176,-928972295,104546308,-1434648190,80217855,1048814827,1966997534,49979805,80217657,103388284,-1897200440,1982083,-1584958146,100861128,104530682,175964546,16972449,-385562618,-928907408,244029700,-101252358,-1056708105,25298491,1508443004,25338367,80257864,-45079,-1878734794,-233445362,58048523,-16677655,-402339786,2062151776,-125926655,-385649664,28836209,-1209511936,-10425872,-1987557747,1452049478,85893510,-335919479,-2074164207,-1954265345,1191180918,637831930,1586169736,4161786,1589962613,130426500,-1928467712,-779319226,1988380217,-2075197684,646209220,1968979840,-2008642070,1312412044,956855686,58033222,-997964033,-970554274,244318215,735869416,1183666368,726668936,-1706012480,6088,309641227,48379647,1342439608,1347469355,610245200,244318208,-371414040,1048772817,1962934658,13101315,80230143,1223167632,1975520241,-21960445,-2080427799,34878,-1427569804,-2012821760,-1962934016,-2036082106,10217728,1962942781,-32642813,1962943037,-32052989,1929389373,8644867,1996499005,-32511741,2122545643,1937050886,8928899,-949193728,34822,-2109832448,1601437697,80230143,-521662832,1975520240,-935919861,112644,-284235696,12861059,-1958710272,721470486,-196703808,-1191815543,512426006,-472841016,77477515,1174481143,-196703244,-1913235829,-259268994,-1910634730,768474,-1927305742,1343675974]},{"sector":9,"data":[8795903,1577234920,49120095,1562371467,313933,1167087646,518818645,-326903666,1048794640,1946157076,67155977,-401698736,297326202,-1952821248,184549409,-1207599680,48955393,1183432747,80257532,-1963964791,-467007930,1347537195,1272474,-1981535744,2122516038,1098121468,2097152317,12314883,2113935933,11790595,-955887873,63046,956615841,58521158,-1962893079,-472779170,956712587,1963075207,-159973621,-1092088176,8907250,-336181505,-1002535977,2121531392,12850827,1183432747,-94991880,-336181623,-939065542,-939116284,-955878140,313350,1488896,80223883,915137489,687277214,-1946663421,1183447638,-195655182,-1963827516,942016070,192153927,-1577695489,1178141058,-1581351690,1178141896,-1205832464,-397410303,922742338,568853704,-935919872,19195908,80230143,1342177720,-1192385560,-2090991615,-443874579,-900899553,-1957363710,49054700,956350625,276563014,-150987615,50526766,989904902,1367278662,1982083,-1591446210,1178140864,-1962115836,-1952906170,-150799858,-1960449031,-1952906170,-150799858,470166521,-1592464640,1178140864,-1962574588,149619782,721700491,1073936902,-113015,-1207778250,-11534332,65601142,1575324663,503317186,1430622296,-1910575989,82609112,25312899,-950963200,16824838,507413248,209010176,721612961,84222470,183173124,-150983752,84222510,1183383557,-1003028484,112642,-59310256,-26032,922681344,1139279048]},{"sector":10,"data":[105286400,184669347,-16157248,-1711094730,9285,-1962742397,1297948645,503317194,1430622296,-1910575989,-1170308136,192151552,12191431,-6684672,-2097151745,-443874579,-884122337,-2081649835,1048773868,1946157242,-2109832351,1517551617,117196487,507413248,896876032,956350625,175965254,-150802271,-62486056,1183520235,-1073337596,244029696,-101252358,49295095,-1946401279,-1962739186,-140966842,-339571719,71731975,12584491,506394432,1183401987,-59310082,-26032,-443875328,180829,-2081649835,1589905132,133572102,-1875217392,-659232754,-1588543445,1344144670,-1962522997,151324758,-1706012160,11012,309641227,48379647,1342439608,1347469355,723163728,244318208,-338108440,105286508,84432523,1183383561,-27883012,2122320363,276049658,-990099713,-1977156514,-96040953,-361381878,654073540,1962950528,1354771229,1342184376,1347469355,-1962522997,151324758,-1873784320,-776214514,1183522795,139889414,1375734021,75400016,-1207602176,65732610,1342366369,2095582864,1575324418,503318210,1430622296,-1910575989,149717976,-1962522997,1183385686,-61437446,1234849874,-352321492,105316099,637951684,1962950528,-2146112524,1949235326,-96040165,972838539,276170310,-1006219521,-1977219490,-129595385,-545956804,-16359740,-2144991674,1316302399,108461830,503351992,803117648,-1073020928,1996439668,108461832,503353016,804428368,-1073020928,1996434548,108461832,503354040]},{"sector":11,"data":[805739088,-1073020928,1996429428,108461832,503355064,10525264,-1073020928,-1070922636,28836843,49120000,1562371467,313933,-2081649835,1465266924,1187445790,1992622286,75416584,792505004,1547437172,1191052149,1975519950,1170679535,640298751,369182088,-732525281,567089844,13780679,72795392,1320470835,57811405,-2147437591,1946209918,9103619,16777114,-1898410496,-1946145762,-164375970,1946172544,1346219381,-1391758015,1967674429,1027386373,179046260,-335841856,-797537821,-1408991548,1950039210,1975519749,1555058422,994828171,58000478,638315343,1979598136,-2010755327,1988755269,-765555504,-2146928955,1966735740,-1404680702,1975519914,1170679546,640298751,-989772408,-919403434,567103156,1992632435,3965136,1992664693,75416584,-1073042772,-953746827,1160707909,21350182,-970570408,-385875131,1187381426,521535695,-1393396083,-76206532,1480932481,2088963189,108348674,147803776,1015100651,209014595,1292008579,1317013109,585827535,1094859905,2088963189,108352514,47140480,1015099883,175458640,1174568067,1317012597,1337197007,-1435295283,13598336,2122323317,57934030,-2080409623,1962988158,-18552573,-973118487,1017906294,1325102378,-1731246454,1094845639,1409434823,1963108352,1124386595,38061903,78118989,80156277,1153914949,-1476377342,-955681528,-951496700,4588100,-1956749537,146955749,-1873273344,-326412987,-2116514274,1442894572,16533191,175570688]},{"sector":12,"data":[-1710721281,13302,2113961789,140428296,2135410214,175570688,3297690,172394752,1342193848,1342210232,3288474,-632911616,343195659,1342193848,1342210232,1853850,-1136228096,360038411,-1202667477,726663192,1347440832,-401698736,-1259745619,175570692,16777114,-1983739136,244320838,-338357784,138870531,638082756,1948270464,981896692,105912063,859740755,-2033778688,65334,638082756,973176704,-1977215115,736373255,-1706012215,13140,1076749354,914786560,-632910849,-1224781794,244383542,-1982401816,-1072972218,255660148,-385649408,244318830,-371913752,1589904443,1065362952,639333678,1543602048,-2144988044,1949172095,38594819,41910310,-385649572,1183515202,173443848,-1983363447,434883158,578039612,510926908,58010172,1006773737,-385649345,1191117342,-933313336,-2012771802,-1073029050,1183570549,-900297784,-1981528439,1177282134,814123272,981896703,-11528449,1996425846,880515592,1988820992,141962184,-12942650,981896448,-1706027265,13619,-12941683,434655254,1975520004,29681923,-1098902037,1952251694,138840860,956978827,292997190,-993505537,-1977169826,780568583,1965964543,-933313315,775913510,1183541876,948341210,138841087,-1995811189,1451870278,-2145260598,805252798,-1098897292,1948319534,949914401,948371455,-931740417,650659583,126354570,650665668,-2037905526,-1073021138,-1635004043,130481976,-632911104,-2037559266,1343684410,-1912851992]},{"sector":13,"data":[385825414,895916624,-2037841920,1307311920,-12941683,-1933293943,1183565398,173443848,-1983363447,552323670,-13713792,-2144898001,553594558,1589911668,-934871096,-1006138842,1191167070,126363332,650665668,-2037905526,-1073021138,1589957237,130426564,814123776,982420991,-1933507585,-1002010158,-339323255,-1001455869,650403524,1965965184,-1001979916,-13465971,-16363498,-1013267338,-1207959500,1344143697,-13465971,1354256406,-1957683711,1344199238,1342210232,1201562,1958742784,-1136227460,-1950726519,-2037786042,1139539768,-13713792,-1960151714,1344191046,-12941683,1553616918,-352321483,-1169752317,-2135269749,-176881601,-2135269749,326381119,-340111617,-1168208909,-1950726401,-1962985290,-16283644,-1946208122,-1962985314,780568583,1975519999,-1168208977,-1962932282,-2037793722,1183579960,-1136227878,-13072757,-338016631,981896515,-1873799425,-96737266,611696651,-12941683,2140819478,721420335,465064128,-1070903296,-2037559216,1343684410,-1427632496,-43062837,517621387,981896528,-1706027265,5841,517621387,896834128,1183383552,-428408862,-1696303361,6625,1038239235,192807039,736386756,-970530210,-1962901689,1344199238,-1673473,530244726,-1962934259,1183439430,-2146309190,805252798,-1098901644,1948319534,-1169752304,-1967497589,780568583,1975519999,-1169781790,-13072759,1191117803,-1168208966,1948270464,516131829,838113872,1586167808,-1962440516,1088064707,1183535186,-1706025286]},{"sector":14,"data":[12918,-1967366517,-259287033,218185926,-13066613,-13070593,-956299322,187462,-1996077429,1187503686,-1962934068,1183431750,-799109938,-1982052723,1452069446,-1983894572,1183438918,-2146112554,1560227518,1183521652,948320730,-15567105,-1946208114,-1962985314,780568583,1966750975,949914590,-2012771585,1023356550,1006924892,-16485062,-1191233402,1344143568,503407800,22853712,1183666206,-1202710808,-1706033132,13465,517621387,848599632,113704960,65898,384321165,948341584,-1706025217,12234,326483979,721541793,-1924115758,1343671366,16777114,-1962022144,1344199238,382486157,-752883632,-939768183,92678,-401698816,2122567920,158663164,-1982183797,1586235462,-58817782,-15830210,1996487798,142016266,904400528,-629243136,-16223232,429578870,-2097151945,1946205310,-1133052152,1805466,-58817792,-1207602626,48955393,-2090942421,-443874579,-900899553,1478361094,-1957345904,-661774612,185222795,1024095424,594804738,1962936381,1354771208,-352314184,1354771206,1342184376,1347469355,-16222465,244319862,-2083944216,-443874579,-900899553,-1957363706,183272428,71732054,-1996073333,1451883590,-16520194,1589967942,1065363196,-1946913536,1451951174,-62506746,1589909106,126494460,1022772872,1007252538,-16419748,-538182578,-1946401025,1452014662,-129594882,-335915383,-159481847,-15698898,1589967942,126494460,183912072,-1947568704,1982594166,150897656,-167050113]},{"sector":15,"data":[-1070922635,1589916651,1065363196,-16550610,1183579206,-27882500,-1980217719,65796694,-990099713,-2144928674,-193658817,1177273227,212472,28888191,-443851264,311901,1167087646,518818645,-326903666,172422664,-954043264,93190,1916206848,1882652417,945789441,922681344,922681718,1268384116,-352321536,1812383564,-1962934015,1856178758,138840833,1358710409,16777114,-129595136,-990226807,1183053918,-1960442632,1468737031,24158978,24254089,653811339,-1960441973,1956840023,1981188353,-59310335,16777114,49120000,1562371467,445005,1167087646,518818645,1996478606,175570700,-16222465,922682998,520028526,-310181516,535137026,147475805,-1873273344,-326412987,-2585058,-16683466,-2097057762,-443874579,-884122337,196699,16713021,131083,16711718,196616,16713006,196620,16712958,196621,16717812,196622,16714653,16973840,75591,196609,16723664,16973847,338188,16973930,337689,16973931,336191,16973933,339686,16973934,327861,16973935,333685,16973937,333695,16973938,209433,16973829,207062,16973830,210699,16973831,269546,16973825,269558,16973826,337468,16973948,336676,16973949,206797,16973839,207039,16973840,327905,16973825,206775,16973841,271360,16973833,327919,16973826,211065,16973842,211117]},{"sector":16,"data":[16973843,209417,16973845,327771,16973830,265212,16973972,395556,16973829,397699,16973830,265175,16973974,333590,16973839,335514,16973842,335540,16973843,333601,16973845,209013,16973861,336049,16973846,336931,16973847,269756,16973857,329077,16973978,269707,16973858,330734,16973852,329061,16973981,210621,16973869,196626,16973872,337078,16973857,196655,16973875,339430,16973987,211026,16973876,339495,16973988,269579,16973869,339614,16973989,331524,16973990,339456,16973991,337608,16973863,337634,16973864,210568,16973882,269566,16973876,328067,16974000,336889,16974004,327763,16973877,327744,16973878,331269,16973880,327817,16973882,265166,16973890,269792,16973892,265261,16973893,337460,16973885,197541,16973902,337383,16973886,210578,327759,16711715,16973832,337543,16973888,331532,16973890,331552,16973892,329656,16973893,329647,16973894,210600,16973911,329665,16973895,210416,16973912,335445,16973896,210327,16973913,210394,16973914,336402,16973899,330778,16973905,335458,82,0,0,5]},{"sector":17,"data":[0,1,0,4063237,774504540,2228266,541937475,541415493,5521730,1144791072,4084297,536870912,0,1061109567,1061109567,4144959,707668572,1543518720,6044160,774504540,6029354,0,1998585856,1701540463,1852776548,32,65535,538968064,1380533308,62,1480916992,1329791045,1229979725,1094844486,538968148,538976288,538976288,538976288,8224,154,1380533308,62,1,1310720,4456448,0,65536,0,1684957527,7567215,1936942419,7237481,7498052,1752457552,1766064128,27507,1769366852,25955,1232364871,7300718,1735357008,1936548210,1850277888,27764,28001,788557168,1968308282,1275068526,6578543,0,1952531561,1416167525,6647145,892416371,846397497,3749171,1148387375,6648929,1416822842,6647145,1954047232,1769172581,7564911,776882519,5066563,1818585203,108]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2097409,4194337,524352,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65281,0,65281,0,65281,0,65281,0,65281,0,65281,0,0,0,0,0,0,0,0,14688000,0,15744768]},{"sector":3,"data":[16285440,0,16580352,0,16711425,0,16711425,0,16711425,0,16711425,0,16711425,0,16711425,0,16711425,0,16711425,0,16580352,0,16285440,0,15744768,0,14688000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-16711680,16318463,-16711680,16318463,-16711680,16318463,-16711680,16318463,-16711680,16318463,-16711680,16318463,-16711680,16318463,-16711680,16318463,-16711680,16318463,-16711680,16318463,-16711680,16318463]},{"sector":4,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,1953300480,1818838544,905969765,1853182464,3026478,1275087360,778330479,11822,1866661938,774797680,989855790,1952794368,1718503712,855638127,1818575872,778400869,11822,1917845556,779382377,-2147471826,1699872821,1701667182,3026478,1701402128,1040711799,1869107968,29810,1867251775,26478,134217728,1816199233,1107296364,1918980096,1818323316,3026478,1342192896,1919381362,7564641,0,1107313672,1632510073,25965,2034368581,1952531488,1174405221,544817664,1702521171,4685824,1260419394,6581865,1701860240,1818323299,3670016]},{"sector":5,"data":[543452741,1936942419,7237481,1124088064,1952540018,1766072421,1952671090,779711087,11822,1749221431,1701277281,1919501344,1869898597,774797682,1207959598,1919895040,544498029,1635017028,1936278560,774778475,4784128,1701536077,1937330976,544040308,1802725700,3026478,1392523904,1444967525,1836412015,1632510053,774792557,1953300526,1886339848,1735289209,1817191200,1702060389,1936615712,544502373,1143821133,1679840079,543912809,1679847017,1702259058,1699875104,1768776046,153118574,1701602628,1735289204,1125318688,1952540018,543649385,1701996900,1919906915,1124868217,1869508193,1768300660,371221614,1852727619,1998615663,1702127986,544175136,1986622052,1124999269,1869508193,1701978228,1701667182,1679824928,1667592809,2037542772,544434464,544501614,1953525093,1126444665,1869508193,1701060724,1702126956,1701344288,1920295712,1953391986,1919509536,1869898597,237926770,1852727619,1679848559,1952803941,1124868197,1869508193,1919950964,460615273,1852727619,1663071343,544829551,1701603686,544175136,1702065257,237921900,1852727619,1663071343,1952540018,1310597221,1696625775,1735749486,1768169576,1931504499,1701011824,544175136,2037411683,1937009952,1819626779,1819306356,1768300645,544433516,544501614,1869376609,778331511,760433926,139677508,1970233921,774778484,1176521478,191194482,543452741,1936942419,141455209,544499015,1868983881,760433936,542330692]},{"sector":6,"data":[1667594309,1986622581,1750344549,1998615401,543976553,543452773,1920298873,1852397344,1937207140,1936028448,1852795251,1867387438,1852121204,1751610735,1835363616,779711087,1819626786,1819306356,1701060709,1852404851,1869182049,1847620462,1629516911,2003790956,858678373,1852727619,1663071343,544829551,1953265005,1701605481,1818846752,1948283749,543236207,1735289203,1679844716,1769239397,1769234798,187592303,1852727619,1914729583,421555829,544501582,1970237029,1830840423,1919905125,1869881465,1853190688,1867394592,1852121204,1751610735,1835363616,544830063,1679847284,1819308905,1696627041,1919513710,1768169573,1952671090,779711087,1851867927,544501614,544499059,1970040694,1847616877,778399073,1851867931,544501614,1851877475,1679844711,1667592809,2037542772,544175136,1851867928,544501614,1634038371,1679844724,1667592809,2037542772,1746932768,1847620449,1768300655,544433516,1763733097,1126772340,1869508193,1970282612,1397563508,1397703725,1937339168,544040308,1948282479,1679844712,1701540713,778400884,1851867927,544501614,1836216166,1679848545,1701540713,778400884,1701597241,543519585,1667590243,1752440939,1948284001,1679844712,1936421737,1701994784,1952805664,1713401973,1948283503,544434536,1919250543,1869182049,1310404206,1696625775,1735749486,1701650536,2037542765,544175136,1852404336,1310666356,1696625775,1735749486,1768169576,1931504499,1701011824,544175136]},{"sector":7,"data":[1852404336,11892,0,1828716544,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[8084045,3,32,65535,-333119488,0,64,0,0,0,0,0,0,0,0,1024]},{"sector":12,"data":[1409297384,544434536,1735357040,544039282,1970365810,1936028265,1667845408,1869836146,1461744742,1868852841,221148023,240788490,-855002081,1275181089,8653]},{"sector":13,"data":[279886,131221,190350734,32772,0,0,0,0,4194352,9175104,9765013,1175,589824,0,0,0,-2147024892,1,5046272,5242904,68,-2146959360,3,6619136,-265289580,32780,16318464,-265289531,32781,29229056,-265289405,32782,0,1313818119,1380533332,1431257861,16978,738197504,1414418246,542328146,741552945,925644345,540680242,1920298819,544367977,808528952,540160300,1952797480,691217184,0,0,0,786435,155058432,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352,1702061426,1684371058,46,0,4718600,589920,2,-1879048192,524289,137363466,536872960,-536846081,0,603648,0,1866661888,1701409397,852082,206438656,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352,1702061426,1684371058,46,0,4718602,655456,2,-1879048192,589825,154140684,536873216,-67084033,0,804352,0,1866661888,1701409397,917618,338559232,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352]},{"sector":14,"data":[1702061426,1684371058,46,0,4718604,786528,3,-1879048192,786433,204472335,536873984,1342202111,1,1320448,0,1866661888,1701409397,114,0,0,155058432,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352,1702061426,1684371058,46,0,4718600,589920,2,-1879048192,524289,137363466,536872960,-536846081,0,603648,0,30208,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65280,0,0,0,68157440,472004872,68157440,68166152,956310024,956826640,268435490,69339140,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1048596]},{"sector":15,"data":[524288,0,0,0,0,0,0,0,0,0,0,1040187400,24,62,268312,402653184,1616904216,134742112,335564308,134742016,134742036,1308622868,1309935624,134217728,134222856,68157440,469776648,68157440,68157448,956301320,956826640,268435456,67110916,134217728,554174996,268699672,0,136052992,1040456732,471612940,262144,943594512,2138840702,1047993983,1669100318,478026855,2004827774,2004318071,473963647,524322,393312,140509196,1597444,0,0,0,805832192,471604273,471604252,471604252,471604252,471604252,471604252,471604252,471604252,134224924,1996495872,1092754952,4,135790657,525316,134217791,555810852,943196177,473446456,2139037247,1044283263,1736195646,471604252,1998396444,2004318071,134749280,337923604,134742016,134750740,1312498196,1309935624,134224930,136451080,134226528,1377700372,134744096,2102,941752832,537666082,572662288,524288,138486280,555884833,136454433,907026948,572596770,575226145,572662306,69210178,0,131104,2097168,532480,0,1048576,0,134744064,471604297,471604252,471604252,471604252,471604252,471604252,471604252,471604252,7196,572662280,1291854344,28,136577113,2056,134217850]},{"sector":16,"data":[572653604,134742050,134744072,555819289,134750497,572655624,572662306,572660770,572662306,8766,469762048,0,0,786432,0,72704,0,134217760,606093056,68157456,2076,136446976,538182146,572654624,1041235968,340591108,539050017,136462368,705700868,1092698418,570966049,336863778,68161540,1006632960,1044266558,942423868,1946691132,1065238124,1715224438,2000058231,134744190,471604294,471604252,471604252,471604252,471604252,471604252,471604252,471604252,134224924,1998327838,1358974984,4067620,1041760341,570426384,134217850,606356516,336857108,336860180,538984488,134750240,841025544,1094795585,574954561,337781282,1010573857,1010580540,1044266550,943210046,1815492664,1044266558,1715346494,2003199590,134248254,136057856,68157481,1040203391,136448000,1008995332,505153596,2099208,341115906,1008812094,138297404,705705988,1094598954,570965566,134752788,67637256,33554432,1094861089,137511440,705176580,1109475634,571490329,571744802,101199940,471604224,471604252,471604252,471604252,471604252,471604252,471604252,471604252,134224924,136461344,1358964736,1040327196,134217817,570431516,469764154,2121867800,336859241,336860180,1010581583,134757436,712574984,1094795585,575216705,136454690,33697313,33686018,1094795529,134758721,842991624,1094795585,574954561]},{"sector":17,"data":[572662306,134226465,302153216,68157510,2076,136450048,37618184,35784738,1041235968,1046349828,539050017,136464160,571483204,1092632870,570949924,135539220,67375120,1040187392,2135048225,136462864,705181700,1109475618,571489808,570960418,134744088,471604224,471604252,471604252,471604252,471604252,471604252,471604252,471604252,134224924,2132938784,1291850760,148480,134217813,570425344,10,286462208,1044258835,1044266558,538984568,134750240,639698952,1094795585,575740993,136454690,1044259134,1044266558,2139045951,134774655,574687240,1094795585,575216705,572662306,8737,624699392,68157508,2102,136454144,570696208,69341218,524288,574619656,555884833,136454432,571548228,572531234,570966306,136451080,67244065,1107296256,1078083873,136461840,705176580,1109475618,638714128,336860180,134744098,471604224,471604252,471604252,471604252,471604252,471604252,471604252,471604252,134224924,136056862,1090521608,8764,65,570425344,10,572858940,572662309,572662306,555819337,134750497,572655624,572662306,572660770,136454690,1111630112,1111638594,1077952840,134758464,574687240,1094795585,642849857,338044454,134222910,1107830784,134742075,524288,1042038792,470686782,404492316,264200,2000422928,2138840702,1047993976,2004841272,477633650,471613043,477565960]}],[{"sector":1,"data":[67178623,1023410176,1044332158,1047986748,1799250692,1044266615,453803644,137761800,805832318,471604224,471604252,471604252,471604252,471604252,471604252,471604252,471604252,134224924,472006152,1040204808,4352,1040187454,1006632960,524298,1146045440,2004294735,2004318071,2139037263,1044283263,1920745022,471604252,475798556,471604252,1027436144,1027423549,1044266550,1044266558,2000567870,1044266558,457055294,135994139,2080,0,268697600,1048576,0,0,0,4096,0,0,0,0,452984832,0,0,469769216,65280,0,15360,56,35651584,0,805306368,524288,0,0,0,0,0,0,0,0,0,0,30728,0,0,536870912,1572891,117506048,1,0,3072,0,0,0,0,0,0,0,6144,0,0,0,4194304,805306368,1866674272,1701409397,114,206438656,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352,1702061426,1684371058,46,0,4718602,655456,2,-1879048192,589825,154140684,536873216,-67084033,0,804352]},{"sector":2,"data":[30208,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-16711680,0,0,0,0,34603008,539100930,134217952,1090650882,1142956032,8657920,-2000125568,17301504,538968577,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1048576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,7864320,0,16384,0,0,67633152,29362437,67108880,8389636,5259392,16918272,7356929,33816576,1073774594,34603008,2098946,268435520,16777730,6299648,137472,13140352,17301504,536870913,67108864]},{"sector":3,"data":[-2128576252,34631812,8,16777216,-2096692706,955785664,990846,0,471743488,-1012432097,-482673415,-403831905,941494150,-2028007810,-1893728337,-546211897,-536820543,524336,1610612760,1610627072,51118340,128,0,1,0,-1065304064,236730564,-1065286905,473460960,-2130508018,946921664,50794012,1893777537,118365240,-524254973,67123312,398590721,306061340,34576,8650752,16973836,-33521536,117702656,67699328,473434306,-2147285234,2134540000,-472932545,2096689377,63398268,1893777537,-126804680,490700540,67647616,549587205,134217888,1074005252,1217413248,16852502,-2005908991,33816632,1092649474,67126400,-500989692,68192328,65540,33554432,1141378593,1073766688,-2146426558,2097152,69288512,560088072,1095140360,1115947012,1141119235,1208488225,67734120,-1876942206,536871553,72,536870920,536888320,262144,128,0,1,0,562036737,236730404,-1065286905,473460960,-2130508018,946921664,50794012,1893777537,118365240,-524254973,14448,-501152767,4333576,8405030,7995648,-2113666030,-201260992,135004160,152241728,67633188,-2147483390,558248512,541362192,270549120,-2071453662,-2012208830,-1876942280,135406664,17536,0,64,0,0,8,0,312,0,67108992,301238020,135299216]},{"sector":4,"data":[8457474,67108864,1073742369,-2147442400,-2096094974,4227073,-1975516640,287459336,1099075616,-2105278460,-2105235198,1216880673,-2012708320,17896594,536871169,503316612,-1600060661,745947376,-536606948,951114118,-946008724,-583932985,-1623492649,562036929,236730392,-1065286905,473460960,-2130508018,946921664,50794012,1893777537,118365240,-524254973,67123312,656507907,10493980,545343273,4849920,66578,-200736384,134479872,270631492,169085000,1082196485,612520096,-2147219182,270549120,1217409057,67703332,-1876933320,269558856,507266296,-1048377585,507174113,-1014823153,1893777537,50804276,1893777537,422780472,-1201420660,67170032,4456960,134234144,67330,134217728,-2130705887,-1192222271,-2096030204,-125730815,-1974598640,285378575,2139156704,42270724,-2109454078,1200103457,-2012708352,34211986,562036737,16777218,1667681292,848097288,-2147221244,-959944573,671494963,-2012217055,269558418,545259649,236730368,-1065286905,473460960,-2130508018,946921664,50794012,1893777537,118365240,-524254973,67123312,536953356,5251232,1199720488,7471600,33693452,-200736448,134479896,961626690,169087028,1082196485,1015061664,-2147021026,270549120,1217407225,67703332,-1876932296,-1609554872,16930948,541097984,1640374800,541890608,270549120,-870835938,-1944505498,135358264,270615172,67126412,-532479488,134259264,-523297022,268498945]},{"sector":5,"data":[66081,-1006100446,-2146557688,256,-1856894968,285362184,1099927584,-2105147388,-2111567614,-2138103746,1342735040,67373140,541065217,520093696,587483144,579092728,327940,-2104997758,117711137,1343226113,50994346,411041798,236730368,-1065286905,473460960,-2130508018,946921664,50794012,1893777537,118365240,-524254973,67123312,-410974456,2621692,-2143008983,4913425,-2130246656,-200801920,118358040,1689330305,287449324,558007304,612429841,-2147219182,270549120,1217405985,67703332,-1876932296,1074799688,524174468,-507279601,2139160305,-523264193,270549120,1209012579,67703332,135350584,-1608498556,67119236,283119360,134223001,67330,536870912,131617,-2079789021,-2147475184,-125763584,-1622011888,285362184,1099071488,1115951108,-2112616190,-2004344800,1342734880,134485100,538968065,553648128,570705928,579616768,-2147090172,-2104997758,270625,1343226305,67771562,545259521,236730368,-1065286905,473460960,-2130508018,946921664,50794012,1893777537,118365240,-524254973,67123312,268567048,1310784,1073889318,4849936,1024,336068864,0,-2008006398,524173396,-507279601,545263857,264208,270549120,1217405473,67703332,-1876930248,1074799688,557990648,574916624,1082138642,528416,270549120,1209012545,67703332,135350584,-1608498556,10372,293864448,134219813,8457474,1076887744,67371553,-2079842016]},{"sector":6,"data":[50405664,4227073,541917216,555893896,1094877192,579080196,1141639442,1275597088,537428512,268706372,537919553,553648128,1667681292,578043928,1074004228,-964147070,134492979,540021025,134488644,545259585,236730368,-1065286905,473460960,-2130508018,946921664,50794012,1893777537,118365240,-524254973,67123312,16908,663616,549555984,8650752,0,336068864,251658240,284787396,541147838,304367760,557978121,541362192,270549120,-2071453406,-2012208830,-1876942280,1074799688,557990528,574916624,1673929234,1624021041,270549120,-870837917,-1944505498,152269624,1080083076,67113100,-494730240,67171864,65540,-2144337728,-1014034658,2029023424,51256864,2129921,1897926720,-1010334753,-482549511,923668383,952377335,1797000824,552649153,521041732,537395393,503316480,-1333722213,1996812512,-485617377,953970151,119475500,551084224,520386372,545259713,236730368,-1065286905,473460960,-2130508018,946921664,50794012,1893777537,118365240,-524254973,67123312,14714627,8659168,15,7864320,7936,351535360,0,1024590848,-236766204,1065286904,2134687263,-472932545,2096689377,59209852,1893777537,253713464,-505363577,507370688,-777828465,473488617,-2096953586,2096689377,59194140,1893777537,-2045952968,1085301187,4336,-2147483648,33554432,8,128,0,0,0,1]},{"sector":7,"data":[2031616,0,0,0,0,1536,0,0,-536821759,0,0,8650752,4352,0,288,0,524288,-1065304064,0,0,0,0,0,0,0,0,0,0,1,16261120,0,0,0,905969920,1024,0,0,0,524288,0,0,0,0,0,0,0,0,524288,0,0,0,0,16384,-2147483648,8320,0,0,0,0,0,0,0,0,0,0,0,0,0,8395008,0,0,0,65281,0,7864320,3584,0,8390520,0,3145728,8388608,0,0,0,0,0,0,0,0,0,0,1,8192,0,0,0,512,6144,0,0,0,3145728,0,0,0,0,0,0,0,0,3145728,0,0,0,0,0,16973824,1866711232,1701409397,114,338559232,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189]},{"sector":8,"data":[824192611,775239737,1819033888,1734963744,544437352,1702061426,1684371058,46,0,4718604,786528,3,-1879048192,786433,204472335,536873984,1342202111,1,1320448,0,30208,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,786432,-335474896,15761433,786432,-1744761296,254803980,16816129,805309676,434897167,128,-268434496,3178521,0,0,15728640]},{"sector":9,"data":[100663296,1572864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65295,0,32769,0,0,0,393216,2021857632,9994521,393216,-1744757920,425721862,50370689,1610614392,427328281,128,-1744763296,6324249,1572864,-1006566376,9961728,1572864,1560,102236184,16777216,402659524,12845318,16777216,1619001728,1572864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,251658240,786432,28672,117489665,7340224,459616,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2145845248,8396544,0,2031616,-268431616,3,0,8396640,0,0,0,524544]},{"sector":10,"data":[0,0,0,0,0,786432,1812139568,9994545,786432,-1744761040,254803980,-2093377535,805309548,426509071,128,-268434496,1882226713,38913,-864020128,260441862,-2147393536,1728,0,983808,-125755552,66880259,-2128610109,248,402685953,-2095056895,-92241952,1073514367,-478546719,-1629024260,1929842303,-1052772127,-192839688,-258021505,-277241857,-119505137,435159488,393344,12288,201375744,3145728,197472,6,0,0,12,0,939524096,482345222,-2146437056,-125825032,267943951,-2146436992,-125825032,267943951,-2146436992,-125825032,267943951,-2146436992,-125825032,267943951,63616,-134216864,986880,-2129036288,12583160,520093696,-2144272256,411113728,520093702,16777440,12595424,2013266736,54419456,-536658208,1066926398,-947914000,-54034436,1073529663,-2021655357,-125755586,536379679,-1491076992,-1628997218,940568441,454657,939662176,15761457,393216,-1736369824,425721862,34510977,1610614328,423133721,63616,-1744763296,811630617,38913,-864020128,416058399,221184,12596832,0,-2129066496,214118624,234914567,-1020261373,12,201326595,-1070593021,-2034159376,402965296,-1070592989,209912160,806225688,1662520515,214118412,1611408198,-969931162,-1061142522,3145824,0,12288,201375744]},{"sector":11,"data":[3145728,196608,6,0,0,12,0,1610612736,912261126,-2146436928,-125825032,267943951,-2146436992,-125825032,267943951,-2146436992,-125825032,267943951,-2146436992,-125825032,267943951,63616,-1946090656,101107248,33606656,12590852,536870912,-2144272320,1887437056,1040187392,192,12595296,201328496,1007616,-268431376,267386895,1127253521,71512068,106954758,-1020239872,214118412,806142768,-1020200768,214118412,403097136,6147,0,0,0,0,0,3342336,0,0,1610676224,0,805306368,0,-24962720,416861232,417792,1623211824,0,-1070593024,213909600,402686733,-1020261376,12,100663302,1616907264,46346480,402940720,-1070595034,411238752,949880600,1712850630,79900678,806101830,-2095511866,-1065336564,3145776,50331648,-92260360,1073266974,-2127040831,1006845920,2009861638,-2122844031,-188646418,2031929151,-952524817,1623211934,593494022,-2146436992,-125825032,267943951,-2146436992,-125825032,267943951,-2146436992,-125825032,267943951,-2146436992,-125825032,267943951,63616,-2136928416,101682975,67158017,12595442,1593835520,-2144272352,402657120,1040974592,192,12595296,2013266736,983040,-268431376,267386895,1127219715,71512068,106954758,1664114688,107372684,1611032160,-480118688,214118412]},{"sector":12,"data":[520930096,-2093016893,-125616136,2113438527,-2128610592,-125755400,517996830,-2029920255,-125755528,536379679,-954206080,482832668,933152625,40583,-1736369824,212862768,417792,1610616624,0,-1070589952,209715552,821592857,-1020258304,1610614284,66847500,-513599488,12791960,403727152,-1070595962,813891936,1022756376,1712850630,-2134822906,806093574,17786566,-1073740904,3145752,100663296,-2031929332,202295153,-1070064633,402850656,947259142,-415756601,207821852,806093580,-2095511866,1619009804,6291462,-2146437120,-125825032,267943951,-2146436992,-125825032,267943951,-2146436992,-125825032,267943951,-2146436992,-125825032,267943951,63616,-1067435936,110674224,83910659,12591002,1493172224,2031776,402724960,1040974592,192,8396640,205308720,-2129043360,-1736369768,462979353,53542979,268644624,106954758,1664114688,107372748,1611032160,1667496032,214118412,412664112,-966780829,214327308,-972241312,-412056013,250048526,106954758,-1021353984,250048652,1880024944,-479069984,214118412,940360496,3299,-1744764832,375423039,393280,1619007792,0,-1070583808,2013266784,1057784625,-2128668544,1610614524,16777240,1634087040,8601496,535847728,-1069612922,1619198304,912655896,-971045178,-260030714,420217606,419462,-1073740048,3145740,0,40054796,201770592,-1070593018,805503840,811992582,1714423494]},{"sector":13,"data":[-2080172020,806093580,51340998,1610613516,6291462,-2146437120,-125825032,267943951,-2146436992,-125825032,267943951,-2146436992,-125825032,267943951,-2146436992,-125825032,267943951,63616,-131911584,117428016,83898371,-1744764798,1493221439,50331808,-260038660,504103680,16801984,805503224,208061233,-2129018656,-1736369768,462979353,54460611,-268222480,106954758,1669095424,107372652,1611032160,1667692640,214118412,418431024,-1073729437,213909516,101498880,1717568051,107372550,106954758,-479174656,107372556,1611032160,1667496032,214118412,806142768,3171,-1744764832,870236191,393280,-24700624,16515840,-1070571520,201328224,806125665,-1070583616,12,50331660,1667653632,6500604,403727152,-1070588282,-259849888,856032792,102237894,402666246,420217606,1046150,-1073738656,3145734,50331648,6500604,218023776,-1070593018,-536673440,811992582,1714423494,-268429300,806093580,50751174,-1073674740,3670022,-2146437120,-125825032,267943951,-2146436992,-125825032,267943951,-2146436992,-125825032,267943951,-2146436992,-125825032,267943951,63616,-1073729440,6340656,83924993,818102146,1610400512,32,96,101450496,24768,-1732165888,2030486322,-1019248543,-54312964,1073529663,53542979,268644624,106954758,1664114688,107372604,1611032160,1668085856,214118412,526434352,-1019275069,-54312964,2147271487]},{"sector":14,"data":[-411107085,-18382850,106954758,1667260416,107372556,1611032160,1667692640,214118412,806142768,3171,-66650112,817086720,393408,1610612784,0,-1070546944,201329760,806150271,-1070583616,24,117179142,1667629056,6500364,402940720,-1070593018,411263328,822486552,102237894,209858822,252445446,-2145805309,-1071638432,3145731,100663296,6500364,201377376,-1070593018,805503840,811992582,1714423494,469899276,420217612,17823366,1610615960,6291462,-2146437120,-125825032,267943951,-2146436992,-125825032,267943951,-2146436992,-125825032,267943951,-2146436992,-125825032,267943951,63616,-1073729536,6324255,83938304,1611006106,1526775808,32,96,101450496,192,-872415232,37535748,-1020264349,214118412,856474416,1127219203,71512068,106954758,1664114688,107372572,1611032160,1668872288,214118412,408993840,-966783997,214327308,-972241312,106954755,417792,106954758,1667260416,107372556,1611032160,1668085856,214118412,815317296,39009,805503072,808698672,393344,1610612784,100663303,-2145812479,214112352,806126337,-1070571328,1879049840,201326595,1717985280,-2040451066,402965296,-1070593021,209936736,805709336,51907779,214118412,101450502,-1070593021,-1071632288,3178497,100663296,-2031929332,202295153,-1070588921,402850656,811992582,-415756601,201529372,253510412,-2145805309,1614813424]},{"sector":15,"data":[6291462,-2146437120,-125825032,267943951,-2146436992,-125825032,267943951,-2146436992,-125825032,267943951,-2146436992,-125825032,267943951,63616,-2141112224,107003952,67136512,805503218,1493221376,160,0,109839104,192,-1744764928,56680455,1717570787,107372550,1661363808,1127253521,71512068,106954758,-1020239872,214118412,806142768,-1020200768,214118412,408993840,-966783997,214327308,-972241312,-412056013,250048526,106954758,-479174656,250048524,1880024944,-478611232,482554140,955301937,61664,805503072,522094111,393312,1610612784,100663302,51314691,-121552900,536396039,-2095095680,1610614464,402685953,-278700032,-54493425,1056737151,-478546943,-2029568004,2081419135,20904129,-126715656,116949279,-512161791,-1059029000,3194880,50331648,-58689546,1073275166,-478548799,503776252,2037894975,-2127038239,-125665300,116293895,-1070004223,1623211872,6291462,-2146437120,-125825032,267943951,-2146436992,-125825032,267943951,-2146436992,-125825032,267943951,-2146436992,-125825032,267943951,63616,-54325408,116391936,33568768,-1744764924,536870912,50331712,252,108397312,262336,805502976,8306688,-984991,268431375,-149946384,-947913488,-54034436,1073529663,-2021655357,-125755444,536379679,-2124416896,-125755400,1022918943,1665087495,-161267722,2079744831,-2128610080,-125755400,1073529663,-2027946813]},{"sector":16,"data":[-125755490,536379679,-2126514048,-287236370,929095710,24704,0,6,196608,96,12,6,0,0,0,-1073741824,0,6291456,0,0,0,0,0,0,96,0,0,-1073741824,3170304,0,0,0,3072,768,0,3145728,12,0,0,1610612928,6291462,0,0,0,0,0,0,0,0,0,0,0,0,0,768,100663296,16789507,248,520093696,128,0,100664064,393408,0,0,0,0,0,12288,0,0,0,0,0,0,0,0,0,0,0,12288,0,0,0,0,0,6291456,0,817889280,49152,0,0,-2147418112,192,0,12,0,0,0,0,0,3145728,0,0,0,0,0,16777216,156,0,0,-134217728,15741184,65295,0,0,6144,768,0,3145728,12,0,16777216,1610612864,6291462]},{"sector":17,"data":[0,0,0,0,0,0,0,0,0,0,768,100663296,57347,0,0,0,0,234881792,196832,0,0,0,0,0,6144,0,0,0,0,0,0,0,0,0,0,0,6144,0,0,0,0,0,0,0,813695232,32769,0,0,0,0,0,0,0,0,0,0,0,-2145452032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,61441,15872,0,8126464,62,0,117440512,939524288,12583174,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,917504,0,0,0,0,0,28672,0,0,0,0,0,0,0,0,0,0,0,28672]}],[{"sector":1,"data":[2025850624,1866711047,1701409397,114,-1194816518,567099904,-428713383,-489570253,-85798703,-1014249333,-1962742397,1297948645,1157629130,518818645,105286486,1937031179,-401698736,-922011557,1586195829,29619718,-1909563019,637534726,-1014095989,4096294,1967476224,512435790,958791716,1946166814,106335042,637715331,930350905,637826957,-2097000565,958793923,125044823,-502479997,652536821,162947,1392908660,642975314,-1873797889,939124750,132319067,72319014,855960324,1589654482,-1962742397,1297948645,1157628618,518818645,105286486,2054471691,-560076720,393592843,35556910,106859264,1963049974,38270562,-1906543552,1208609567,-1070344050,73358,16001,1064650062,2367115,2498105,1451963764,46367494,729024313,-2097000565,1463355587,-2096663544,-152957757,2139351787,326369290,2131382271,71825177,259387392,-2146941047,-326553,244319862,-1992913176,1183516230,-310157818,535137026,46812509,-1957346048,1996431084,-586422264,1586217102,1200301574,651309826,2367115,-787510490,-489500192,49120250,1562371467,313933,-326412987,-11053538,-622327690,1958743004,-1012950,244320886,188136680,1444705746,-1878624513,-32184306,-11077493,1465321078,1358793704,-401698729,1599610322,49120094,1562371467,445005,1458342741,105287255,607554342,909714944,1400111142,-2093184218,-2094660922,1198784572,38570790,71616294,-1943655432,-964491700]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[7887437,3,32,65535,-333119488,0,64,0,0,0,0,0,0,0,0,1024]},{"sector":10,"data":[1409297384,544434536,1735357040,544039282,1970365810,1936028265,1667845408,1869836146,1461744742,1868852841,221148023,240788490,-855002081,1275181089,8653]},{"sector":11,"data":[279886,131221,190350844,32772,0,0,0,0,4194349,9175104,9765013,1175,589824,0,0,0,-2147024892,1,5046272,5242903,68,-2146959360,3,6553600,-265289598,32776,15073280,-265289551,32777,26673152,-265289480,32778,0,1313818119,1380533332,1279608837,16982,687865856,1414418246,542328146,741552945,925644345,540680242,1986815304,824981536,842083376,1699948576,857940084,41,0,0,0,524291,135856384,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352,1702061426,1684371058,46,0,4718600,589920,2,-1879048192,1,119603210,536873728,-1778360065,0,529408,0,1699217408,151025260,218169344,671088651,1126181219,1920561263,1952999273,1953055264,1701999731,1226861921,539911022,892877105,1816207406,1769087084,1937008743,1936028192,1702261349,11876,0,1207962112,167796736,512,0,400,553651200,851976,6356768,188,185073664,0,1207959552,7760997,16777226,3963,539583272,2037411651,1751607666,1765941364,1920234356,544039269,778268233,943272224,1092628021,1914727532,1952999273,1701978227,1987208563]},{"sector":12,"data":[3040357,0,786432,6291528,196620,0,102400,983040,268438049,1627332608,57856,1979711488,15,0,1986815304,0,135856384,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352,1702061426,1684371058,46,0,4718600,589920,2,-1879048192,1,119603210,536873728,-1778360065,0,529408,0,145408,33554432,134218752,335547904,587209728,671098112,822094592,956315392,1040202752,1224753920,1426083584,1627413248,1828742912,2030072576,-2130673920,-1979677952,-1761570816,-1476354816,-1258246656,-989807360,-771699712,-503260672,-385817600,-184488192,117505792,369168129,620830209,838937601,1073822209,1359038977,1560368897,1711366401,1879140865,2046915841,-2046722047,-1845392383,-1694394367,-1493065471,-1425954559,-1291734783,-1023296255,-821966591,-654191359,-519971327,-318642431,-100535039,84017153,218237698,419566338,520231938,620896770,721561602,822226434,922891266,1023556098,1124220930,1224885762,1325550594,1426215426,1526880258,1627545090,1728209922,1828874754,1929539586,2030204418,2114092034,-2046656510,-1845326846,-1711106046,-1543332094,-1342002174,-1174227710,-989676286,-821900798,-654125822,-503128830,-318576638,-217911550,-83691774,134414338,402853891,604184067,805513731,1006843395]},{"sector":13,"data":[1275281923,1526944771,1761829379,1912827907,2047047171,-2046591485,-1778151933,-1509712381,-1241272829,-1056720637,-788281085,-519841533,-301734141,-100404221,100925443,302255108,537139204,738469380,939799044,1074019844,1208239108,1376013316,1577342980,1778672644,1980002308,2130999556,-1962638076,-1761308412,-1576756220,570730244,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,49159,536870912,0,-1556839296,16842880,-1803283962,272656384,5269536,168034824,4,262144,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,167772160,2,0,0,0,0,0,0,0,0,100663296,0,8400899,538984452,172032000,4195416,623104,-1342160823,-1336926176,67371008,524298,-804257278,-2147483638,1180292,220274701,1111490560,8192,333654037,8408329,-1049556953,484930366,1879048192,-202305028,-1865418765,42115664,-101155710,1372645361,-81637052,119201,541065280,2140192,0,0,-1241093376,-608801317,1843115629,-1318200394,1313989632,49553,-1994388256]},{"sector":14,"data":[-1609811968,274817377,1125123137,-270011520,-2008498209,-117963527,-1611007752,-1600085856,79790242,8675881,688537856,278286885,-2144758206,1142195488,689242130,663397460,-1205338104,-2011159670,41512,285378816,67766794,-1538240496,-2101213565,285869445,1363431696,1075841570,4194304,136331328,32,256,-2013265920,1843082891,-1234314314,-608801317,319402093,587354257,303038720,1879052321,572694532,71368722,-2080292592,537921556,-2054846392,84215045,-1600085755,-106782560,32,0,16777216,0,32769,1024,1145273616,8925058,621316168,-1572306884,174120864,34220345,269485066,-1971148720,92635810,1360003339,303319620,234897424,1741611896,1940891836,-1115996985,1380616866,914393208,-608801317,1843115629,-1318200394,1279951928,33608964,150605032,-1610338286,270804004,-1574401374,134513794,-2008539120,84231557,-1576729339,-1600085856,-1910274668,915333944,965665592,949887522,-1640395037,-1750980470,672137362,654476256,-2008547266,-266155760,204423,692654616,-418708750,-1328488559,-2104339838,-504297991,-2077603312,1074799112,340066560,-1448982447,-1574401496,-1977474678,134959690,1843082848,-1234314314,-608801317,-1002065555,319099460,13163051,303214627,774457860,-1969086439,-461069784,1050660615,635799880,84215045,-1600084987,-2054643552,268714336,340068673,589448529,1360283089,680175173,5412002,1683061776]},{"sector":15,"data":[814230946,790661256,-2113369726,570826508,34241865,1343226890,578988112,629244554,1242575112,1107855914,251674632,1214186565,-1977045342,428515880,-1834382814,914393136,-608801317,1843115629,-1318200394,312443712,1112592388,2097320,83890194,1098060051,-142745609,134513871,-2008539120,84219269,-1476066043,-1600085856,-820774520,1070592828,2111829825,1162945570,-1438297836,-1801312118,687865938,549622866,-2004353016,-1994251966,238088,1161167384,67766794,-1537978352,-2105146750,285873537,286344208,1074299400,340070656,-1448982704,-1574401496,1361184138,-2009052142,1843082880,-1234314314,-608801317,71676269,654462020,1048872,269615104,572910080,1360282917,-2075126715,537921556,226854984,84215045,-1600081915,-2121752416,340087060,71649361,606224656,1360282961,680178245,5006498,1675896848,-2063589342,-1040644089,470249756,559988896,-202291968,-804260621,49947219,-109020030,-2079334135,-100134639,251674628,1087300472,-1968658270,1014643751,1209147806,914393208,-608801317,1843115629,-1318200394,1107619897,49153,16253152,4198429,960971847,340087060,-270011568,-2008498209,-117963527,-1074136840,522133279,-815562488,919597884,965665592,949035810,-1137078557,1201596281,136,1073807424,257,0,4194304,16515072,0,0,0,1024,0,-1065024768,248,536874752,536870912,8,1795174400]},{"sector":16,"data":[0,0,0,2097152,23552,0,1048576,117506240,1,16777216,128,0,0,0,0,0,3145728,0,0,0,3179521,1986815304,0,0,185401600,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352,1702061426,1684371058,46,0,4718602,655456,2,-1879048192,1,136380428,536874240,-1140825857,0,722944,0,145408,50331648,184550912,452989696,805316352,922759936,1140865792,1342196992,1459639296,1660967680,1929407232,-2097120512,-1828680960,-1560241408,-1375687936,-1191137024,-939474944,-620704000,-318708736,-16714240,268503040,604051969,771827457,1023489537,1375815681,1677810689,1996582401,-2046722303,-1744728319,-1392401151,-1107184127,-972963327,-788411903,-553527295,-285087999,-33425919,151127553,402788610,503454466,671229186,973222658,1241661954,1442992642,1610767618,1845651202,2097313538,-1979546622,-1878881022,-1677552894,-1543331838,-1409112062,-1274892286,-1140672510,-1006452734,-872232958,-738013182,-603793406,-469573630,-335353854,-201134078,-66914302,67305474,201525251,335745027,469964803,587407363,771958275,1040397827,1224951299,1459834883,1694719747,1912826627,2114156035,-1962703613,-1778150909,-1593599485]},{"sector":17,"data":[-1358714877,-1190940157,-1023165181,-771503869,-469509373,-201069821,100924675,402919172,755245316,1057240580,1359235076,1560566276,1661231108,1862559236,-2096858876,-1761309436,-1425759996,-1190875388,-888880636,-586886140,-284891644,-33229308,235210244,503649797,822420997,1074083845,1342523397,1527076869,1627741701,1812292613,2063954693,-1962573051,-1694133499,-1492803835,-1257918971,-1023034363,-771372539,570808581,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50331648,248,0,0,1073742336,138732608,1073741824,554764296,137494612,1902133248,134217737,537002241,32,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,536870912,0,0,0,0,0,0,0,0,0,0,0,0,0,33554432,0,0,-2147483392,335558817,536870912,301995024,72089760,-1903132672,67108864,8389122,1073741888,13131808,268435600,-2063591416]}],[{"sector":1,"data":[21103360,4195843,-2145370112,1,104940041,-2143012856,654311424,-2138634367,-946878641,32903,20920320,-252583929,270434302,34146596,-2021179390,2046353889,-2105408259,-117109748,268469475,134250496,1226866688,2,33554432,0,646318592,1717986918,1717986918,1717986918,1717986918,183566344,2017729545,-268435360,-2078703615,285228032,202449536,-2147450559,135274496,-51253233,-2143322114,260173833,1022410755,540871695,337922192,544210949,-1875865280,134217824,1243882512,42026195,-1937471228,1145118720,1118274,-1992080887,1078477840,671088640,1078462535,1212156104,16456,-2126494720,134811908,270614656,51448100,1149788166,-2080108270,-2105408479,151523850,35360,134250496,18874369,2,33554432,0,642322944,1717986918,1717986918,1717986918,1717986918,-234352384,-2080366071,134283408,1076249090,838890496,305226304,-2147483328,135274560,590092,304103552,281086025,1107829124,541232144,304367760,8912905,0,0,0,32768,201326592,4,4096,1239764745,1179141152,1207992512,1094715457,-2013263800,215368,1116619872,67441284,-1874837376,35719460,613437578,-2080110316,1162085409,286269713,37136,-394741640,1227660787,260790546,-409727465,170101316,-968322521,1717986918,1717986918,1717986918,1717986918,-1862209272,838932497,-469630864,-2146942462,302019618]},{"sector":2,"data":[68297792,1082196609,338186400,328212,304103552,547423305,-2130439608,545606688,287590544,-259459055,-252645136,1008660208,1228684348,-2021178079,-1937275001,605194616,1152840,109380616,1124612160,1207992448,-2105343935,-2021618865,1041023112,1116866584,67232391,524320508,37816804,613435474,1610877204,1162085409,564183056,32784,428196996,1228022537,-1874041310,312054168,-1843230140,104895008,1717986918,1717986918,1717986918,1717986918,-1820317687,1107371257,-1803399279,1083346689,310408226,-766368694,1082196625,338186400,-134094313,306151164,546423883,-2130439608,545868832,270813328,162596001,151587081,1109463305,1229079106,1212737059,1279805512,605194636,9541704,-2138897400,1325953176,-1997475609,1140851009,138497096,3162183,1150423046,67179076,-1874640768,44108068,663766050,418908644,673711137,1094762656,32776,159483004,1226973689,-1874312126,-1030713200,1632915780,102769217,1717986918,1717986918,1717986918,1717986918,-253746935,1107366464,-457277326,-2143485440,285226018,768944261,557974578,574916624,66084,304103552,545850441,-2130439608,546393120,270813328,-125303743,-117901064,2116091896,1233026686,1212687396,1279805512,605194644,9048133,1103175432,1124633124,-2013233024,1325400641,138496224,1040990272,1200754712,67441348,-1874837376,34703652,613433858,-2080102140,673711137,-2126503775,32776,159483012,1226973441]},{"sector":3,"data":[-1874312030,579899536,1632915780,104862274,1717986918,1717986918,1717986918,1717986918,193019913,838929656,-1811775486,512,5154,1094977797,-507295916,1048377584,328252,304103552,545588297,-2130439608,547441696,270813328,160036929,151587081,1075843081,1228947520,1212687396,1279805512,605194660,9048133,1107626240,1174963236,134316224,1074267201,138561608,213064,-2004025248,134811940,-1876868992,34179364,1149780226,-2080108286,269485089,21041218,32772,428196996,1226973961,-1874312174,311529880,-1870127028,104862340,1717986918,1717986918,1717986918,1717986918,18697,-2080366015,134299889,0,50336802,-2100816950,304367860,1099039753,590148,304103552,277022793,1107829124,541232144,270813328,159973441,151587081,1109463305,1229079106,1212687396,1279805512,1681037764,8657090,-2080175864,1074297368,117768704,-2134438015,125994823,35207,138416128,-252583897,-1877065474,-100306652,-2071511038,2013456641,269547552,-113178556,32772,-394741638,1226972657,-1891089398,-510652905,143204404,104895111,1717986918,1717986918,1717986918,1717986918,16314632,2013273153,-268435456,8392448,5181,-498528256,304384019,1099039753,-51253177,-1841332226,260173897,1022410755,532417551,-524056817,-189792191,-185273100,1008660212,1228684348,-2025339869,-1937275001,-1546557320,268098,65536,1074266112,512]},{"sector":4,"data":[0,256,4128768,0,0,0,0,0,0,16777216,32768,0,134217984,0,8388624,16777216,4198912,0,0,0,0,32768,1,0,0,262176,0,0,0,2097152,0,0,0,0,0,0,0,262144,0,0,0,128,528388,0,-2147221504,1024,0,0,512,0,0,0,0,0,0,0,16777216,8356035,0,268443136,0,8388624,100663296,8391168,0,0,0,0,0,1,0,0,786464,0,0,0,6291456,0,0,0,0,0,0,0,786432,0,0,0,0,3149848,1986815304,0,259719424,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352,1702061426,1684371058,46,0,4718604,786528,3,-1879048192,1,169934863,536875008,-503291649,0,1013248,0,145408,67108864,251660288,553654272,973090560,1124089344,1375750144,1610636288]},{"sector":5,"data":[1761633536,2013294336,-1979678464,-1677683968,-1375689472,-1073694976,-855586560,-637480704,-335486208,33616896,385944577,771826433,1090598913,1510034945,1711365633,2030137345,-1828616447,-1442734079,-1040075007,-738079743,-385753343,16905985,352455426,537008642,755115266,1023554818,1342326274,1644320770,1862429442,-2113767166,-1979546110,-1778216446,-1392335870,-1073564158,-821900798,-637348350,-352132350,-16582910,251856642,419632387,688070403,855846403,1023621123,1191395843,1359170563,1526945283,1694720003,1862494723,2030269443,-2096923133,-1929148413,-1761373693,-1593598973,-1425824253,-1258049533,-1090274813,-922500093,-771502589,-553396733,-251402237,-33293821,235144707,537139460,805578756,1074017540,1292126212,1510233348,1728339716,1996779268,-2096858364,-1895528444,-1559980284,-1157320956,-855325948,-519776508,-184227068,235208452,604314117,939863557,1174749701,1308969477,1560629765,1980066053,-1878686971,-1442472699,-1140478203,-771373307,-402268923,-66719227,235275525,537270022,839264518,1225145094,1510363398,1812357894,2030466310,-2130281210,-1912175354,-1610180858,-1308186362,-1006191866,-771307258,-469312762,-167318266,134675974,570888199]},{"sector":6,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1009778691,-262093282,100663296,863526912,4250160,100665078,1612636160,16777414,-2130508160,1676,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16711680,786432,0,0,-2147418112,-2043189664,39009,-1073741056,-1508297780,62652736,-1342108672,13025331,213909504,210551046,-2147418112,4120,7,8454424,0,67526656,0,-2134900724,6144,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2147368960,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8126464,-134217728,0,24]},{"sector":7,"data":[0,0,-268435456,0,0,0,0,0,0,0,0,942718976,-2138230469,51118080,456558083,820772936,-871494132,17170528,806929281,1812358656,404490258,7870524,201326592,253693052,-235853952,4095228,50331648,117701824,-1055973384,-1048084482,-2045142911,-1072943008,-2088767295,-821035040,-511635978,1876984199,-521021197,-2147368960,109052160,-1743179776,24,0,32769,0,963719219,-409177138,-1670132167,1942895079,-835065956,954702963,8126488,-1712220063,7299,805307907,3185671,939917438,214327296,-2147368080,17176672,-132161408,-102293698,-1717993474,117670815,-268353856,477921295,-1056160225,-1073335400,1625293784,829320288,135,-972683770,-1312082893,454564024,6786075,1661141763,1719689496,1043753990,409350198,204,1019612160,1723897905,-972285949,99,-2023553536,1611433479,1619014092,-1736363752,945851417,214360092,-1055339424,226910616,-1014570623,406044720,12339,16809985,805309568,1579008,0,-2147418112,0,409141248,1942895001,-835065956,971480179,-409177138,-1670132167,67123431,-1721670714,906074521,33685504,-436189184,15990784,-520066034,-2137450354,1022410755,-255851761,-1732181962,1619001606,1670945049,-1053812605,1630538886,-966779773,865648908,110649606,48]},{"sector":8,"data":[49152,0,7,16777216,1812332672,1614179327,869013606,201326595,-1741615930,255680,862176792,1884161,-2046346397,426557452,422600832,-1743153023,-264487840,-664795444,1637400844,868420742,-2145818932,3151971,-1192165120,-1634788034,-1743177925,-507069991,-1709328143,2027477107,-58292281,965613667,-409177138,-1670132167,1942895079,-835065956,954702963,1052833816,46143539,34360,1208021252,-872379199,1812332788,805724928,-1073544397,51330288,20377792,17225856,-1726390144,818099096,114065433,-1677642912,-1056151871,856044440,-265173473,524188920,534677263,-1014558945,1630745571,524188856,533169935,862375064,-1011348197,1747189766,19185692,204422,214308864,-406781949,-971476765,471907,1707474951,-1072904564,1619007756,-1736376016,912306201,114088044,-1056122784,210108824,1020015555,214106127,50331696,862178329,963103896,-828794471,-870763673,-1730569165,-842630952,409144454,1942894848,-835065956,971480179,-409177138,-1670132167,-1944504089,-1736493472,-1101004064,-654049229,650326016,-1057698816,1721265414,60710918,1721262342,-1738439143,411042150,1619001606,865638681,-2145832861,861931212,1724029953,865648908,1712856582,-963896861,-862441117,-1733217949,859006668,-959696592,-862441117,-862441113,219886438,443340,-2147403668,2139488632,402653315,117836998,-1741462397,6782000,-1044308196,-947073658,420266232,-114262020]},{"sector":9,"data":[-266757889,-859032736,-1736505652,-1055916276,912657542,17176684,3148931,-2045181952,-862428832,-1684459069,862358553,-1738439143,-640902975,416053478,956307555,-409177138,-1670132167,1942895079,-835065956,954702963,922521625,45095180,2120660576,50393596,-872358665,1812381940,-121213236,1627833214,-2045155688,-244869023,-238608512,-1726382084,808661950,114065433,-1677642912,-1056151868,201733016,405825048,16975372,811843712,1724684337,-248433869,828622476,862440600,862375064,1720097049,239599622,-2117322749,-534831482,214309112,1623588876,-969926605,7340091,-846827264,-1072929128,1619007756,-1736369872,828430361,114083468,-1056171936,210133376,1014505062,201523974,16777264,1633715961,834915487,-1944478055,-2045168794,-1737385887,820825548,415445196,1942894848,-835065956,971480179,-409177138,-1670132167,-1877395225,-2122367392,-1640496488,-654047540,12582912,7654400,510015494,-971076415,-1022610676,204721200,411042246,1619001606,865638681,-2145832933,861931212,1724423169,865648908,1712851974,2130507825,-946921665,-1623248641,871622607,-963897037,-862441117,-862440089,-1726401690,16803462,1812335614,864453069,805306371,404229318,406058703,247392,-1061085412,-434123514,426557452,422600832,-1944479103,-1022611360,408946380,1637400940,507251846,101082744,3147267,-2045181184,211312992,-1684459069,862358553,-1738439143,-1882744807,1618507836,956304483]},{"sector":10,"data":[-409177138,-1670132167,1942895079,-835065956,954702963,1667276825,30933004,107347969,514,-872415040,20,415446732,-217068490,-817889284,33488115,17225856,-1726390144,806302616,114065433,-1677642912,-1056151856,201733016,422823455,828622476,811650200,101455920,422785795,828622476,963103896,862375064,1015476504,1809317894,29846540,100860038,214315011,1723865136,-966780877,471907,1988493575,1611413040,1619014092,-1686030056,811632153,214352140,-1053291424,411263384,-1020261316,100862982,50331696,862178361,828886168,-1936090727,-870763674,-1713792973,-870840637,409190448,1942894848,-835065956,971480179,-409177138,-1670132167,-1407633177,403439808,1048772976,100859955,0,1362944,1738046720,-865652538,-2130239784,119437536,-1732181882,1619001606,1670945049,-1053812729,1630538886,-1017111421,1628201752,102239372,-828622541,-862375065,-1733217949,859006668,-963897037,-862441117,-862375577,1631089638,399564,941112976,8814973,805504515,-1891693444,-253664384,859733088,18661377,925892739,-1055973384,-653827842,-2081318527,-1072910209,56684737,-1043349256,202961025,260473137,3147507,-1193737984,-1936777922,-1734790853,828804313,-1742882575,113495664,-63928807,956307555,-409177138,-1670132167,1942895079,-835065956,954702963,16709912,3151884,124,50395136,-167771920,20,2093793280,513329088,2027979015,-125368546]},{"sector":11,"data":[-102293698,-1717993474,117670815,-268353856,477921295,1055916383,217628679,-656341480,490436332,532596622,-1014558945,-248433693,524188812,1070040847,-1318861042,414736856,134217728,0,33554636,0,0,0,256,-2046623744,0,0,0,0,0,786432,0,0,196608,48,0,196608,32769,-2147418112,32769,0,409141344,0,0,0,0,0,1073741824,419430400,152,0,0,50380800,0,0,0,0,1572864,0,0,0,0,0,0,0,0,0,3072,0,0,0,0,-1056964608,12416,0,13369344,1024,0,0,33554432,0,64512,0,0,0,0,0,0,0,0,120586243,248,0,-2147417917,0,-2147385343,0,6291456,6243,0,0,0,0,0,0,15734784,0,0,-1073741824,8388864,0,0,0,0,12,0,0,0,0,0,0,0,0,100663296]},{"sector":12,"data":[813744384,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,-1073545216,240,0,8257536,3,-2147418112,32769,0,808648896,0,0,0,0,0,0,402653184,0,0,0,117440512,0,0,0,0,3670016,0,0,0,0,0,0,0,0,0,7168,0,0,0,0,-2130640896,1699242112,30316,0,83938304,1611006106,1526775808,32,96,101450496,192,-872415232,37535748,-1020264349,214118412,856474416,1127219203,71512068,106954758,1664114688,107372572,1611032160,1668872288,214118412,408993840,-966783997,214327308,-972241312,106954755,417792,106954758,1667260416,107372556,1611032160,1668085856,214118412,815317296,39009,805503072,808698672,393344,1610612784,100663303,-2145812479,214112352,806126337,-1070571328,1879049840,201326595,1717985280,-2040451066,402965296,-1070593021,209936736,805709336,51907779,214118412,101450502,-1070593021,-1071632288,3178497,100663296,-2031929332,202295153,-1070588921,402850656,811992582,-415756601,201529372,253510412,-2145805309,1614813424]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[8084045,3,32,65535,-333119488,0,64,0,0,0,0,0,0,0,0,1024]},{"sector":17,"data":[1409297384,544434536,1735357040,544039282,1970365810,1936028265,1667845408,1869836146,1461744742,1868852841,221148023,240788490,-855002081,1275181089,8653]}]],[[{"sector":1,"data":[279886,131221,190350958,32772,0,0,0,0,4194352,9175104,9765013,1175,589824,0,0,0,-2147024892,1,5046272,5242904,68,-2146959360,3,6619136,-265289593,32813,15466496,-265289546,32814,27394048,-265289472,32815,0,1313818119,1380533332,1397576709,16978,738197504,1414418246,542328146,741552945,925644345,540680242,544435540,544107858,808528952,540160300,1952797480,691217184,0,0,0,2949123,141295872,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352,1702061426,1684371058,46,0,4718600,589920,2,-1879048192,1,135331850,536873728,-1644142337,0,549888,0,1834221568,1834098803,3014766,190316800,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352,1702061426,1684371058,46,0,4718602,655456,2,-1879048192,1,168886284,536874496,-1040162561,0,741376,0,1834221568,1834098803,3080302,267780352,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352]},{"sector":2,"data":[1702061426,1684371058,46,0,4718604,786528,3,-1879048192,1,185663503,536875008,-369065985,0,1043968,0,1834221568,1834098803,110,0,0,141295872,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352,1702061426,1684371058,46,0,4718600,589920,2,-1879048192,1,135331850,536873728,-1644142337,0,549888,0,145408,33554432,167773440,385880576,704651520,822095104,973092096,1140867328,1224754944,1358973952,1526748672,1694523392,1862298112,2030072832,-2130674176,-1962900480,-1728015872,-1493131776,-1258246656,-973030144,-721367552,-436151040,-268375296,-16713728,268503040,503388161,771827201,989934593,1258374145,1543590913,1778475777,1879141633,2046915329,-2080276735,-1895724799,-1711172607,-1576952063,-1375623167,-1274957567,-1123960319,-872299007,-670969343,-503194111,-368974079,-184422399,16907265,184681986,352456706,570563074,704783874,839003650,973223426,1107443202,1241662978,1375882754,1510102530,1644322306,1778542082,1912761858,2046981634,-2113765886,-1979546110,-1845326334,-1711106558,-1576886782,-1476221438,-1342002430,-1157450494,-956120574,-788345854,-570238462,-368909566,-167580414,-16581886,167970306,318967299,503519491,637739267,771959299,1023619843]},{"sector":3,"data":[1359169283,1560499715,1795384323,2030268931,-1962704893,-1694264573,-1425825021,-1207717117,-1039942397,-805058813,-536619005,-268179453,260099,218366980,520361476,822355972,1040463876,1225016324,1392791044,1560565764,1778672132,1946447620,2114222340,-2046524668,-1945859836,-1794863356,-1593533692,-1392204028,-1190874364,-1006322428,-804992508,-603662844,-419110652,-1039864828,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-536674304,0,0,-2147483648,143296067,131072,294126721,271712276,607262728,276824064,270864,16777216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8388608,0,0,0,0,0,0,0,0,0,0,0,0,64,0,1233403904,5120,-2147352319,8397316,605030476,76,2629696,268697608,8389261,-1609557951,1661486083,67371040,288,-1039629038,-2145119972,-1945037312,820418839,402653184,-203349520,-201721375,1903413177,-130234493,-823660303,1853258988,12754159,-2147393472,808239424]},{"sector":4,"data":[0,203555328,-1717986919,-1717986919,-1717986919,-1717986919,1566851224,269411784,148897792,478162947,639111171,1074823689,134480513,-808466625,1909379023,1019738140,1010580540,-591795357,-1065912338,1364599234,622985216,-2103092695,818517008,575735810,-2062376848,304227357,419430419,557077042,18473,1359488256,-2012212974,-2112876150,1657151522,-1995946686,1229210661,-1807203294,536870981,1082163200,4100,-2147483648,67108864,-1726409951,-1717986919,-1717986919,-1717986919,77109657,9013395,16779281,-2013260784,671168512,1141916168,-2059230976,1209275402,1145324612,1141383492,1111638626,828654146,574916624,2126114,0,0,64,12288,2097152,681647888,68354594,1108355328,1229529172,102285344,17977716,25329672,539263504,1161974470,67209480,1109543236,-2142760319,-1939654650,-714837042,841794482,-1651706164,2213061,-1717987047,-1717986919,-1717986919,-1717986919,1166298264,-1742290936,149422592,939530273,-1844959231,-1592735448,336233794,67373076,553911300,1112687112,1111638594,-2012196508,1226056260,1670132006,409144347,-2044367653,830890264,1759229661,168825017,-1038297576,687899668,949191696,251869254,-1986786682,-267910686,-2098185758,1252663352,-267880126,-1975384895,310543009,604045376,1234342548,608768549,-1840232046,1212454228,-1726382048,-1717986919,-1717986919,-1717986919,1385732505,549543780,-2108708568,150601928]},{"sector":5,"data":[687937801,1363415625,1210323489,-2010701167,-2021161209,-502783612,1111638602,-1855700414,574916624,138496276,-1836838846,606709140,-1843115678,-1838927287,279259209,688144144,521175586,34679054,143238384,-1845428212,18020756,293765128,539263504,1094863530,69308424,1101171266,4198916,-1635507193,304564626,1234314313,1381339676,2196520,-1717987047,-1717986919,-1717986919,-1717986919,-2109517672,-1708777463,11057792,134852643,1386909699,-213801591,1050660839,67373116,553911300,1112162824,1111638594,-2012212891,1896358468,1942894887,-1107849057,1234314473,843682340,625578660,335585316,35735844,1224737808,-1542172142,251857033,90768006,-2012212974,-2112876158,1183982114,-1995947710,71369761,-1861729982,604569664,1234079876,608801316,-1845216868,68232482,-1726414815,-1717986919,-1717986919,-1717986919,1385732505,-1073200564,20971793,16,16779273,1192259908,806882378,1212465504,1145324612,1141383492,1111638598,291914306,574916624,1244217608,279221330,604578180,-1843115630,-1843121335,1077420617,-2045242352,68190750,-868497888,830871571,286834720,-471757567,-473826847,2138299577,-532880749,-2084319759,1665533057,4231567,-865921017,-609849918,152089453,757222808,2213009,-1717987047,-1717986919,-1717986919,-1717986919,128994456,940449800,14680064,-2012348168,302528528,506691868,-470714308,-812660793,1942933455,1021507740,1010580540,1893785707,-518251464]},{"sector":6,"data":[1942894919,409144475,1717810893,897999128,-768324157,16416,16777232,1075839008,0,2097152,15728640,0,0,0,3670016,0,419430400,16064,786432,64,6168,35651584,34,0,0,0,134217728,-1073676288,0,0,3145736,0,0,50331648,0,0,0,0,0,0,469762048,0,0,0,-2144336896,544435540,7236946,0,190316800,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352,1702061426,1684371058,46,0,4718602,655456,2,-1879048192,1,168886284,536874496,-1040162561,0,741376,0,145408,50331648,184550912,469767424,855648256,973092352,1157643776,1358974464,1476416768,1660967936,1895852544,2130737152,-1929345536,-1694460928,-1526685184,-1342134272,-1056917248,-721369088,-419373568,-67047168,234947840,604051713,788605185,1090598913,1476480513,1812030209,-2130610431,-1862170623,-1526621183,-1140739583,-821967615,-687746303,-503194879,-301864959,-66980607,167904001,352456962,587340802,721561346,906113538,1208107266,1442991874,1644322050,1778542338,1996648706,-2046656510,-1845326846,-1643996926,-1392335614,-1258114814,-1123895038,-989675262]},{"sector":7,"data":[-855455486,-721235710,-587015934,-452796158,-318576382,-184356606,-50136830,84082946,218302723,352522499,486742275,620962051,755181827,872624387,1040398083,1292059907,1526945283,1745052163,2013491971,-2029814269,-1778152701,-1610376189,-1392269053,-1224494845,-972833021,-821835517,-670838013,-368845309,33814019,302254340,604248836,906243332,1292123908,1610897156,1912891652,-2147190012,-1979415292,-1710977276,-1358650364,-989545980,-620441596,-368779516,324868,369429253,654647045,889531909,1124416517,1359301125,1661294597,1896180229,2131064837,-1979349499,-1845129723,-1660578299,-1425693691,-1190809083,-955924475,-771372283,-536487675,-301603067,-83495931,570818821,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-268238848,0,0,0,50399232,1879089281,536870912,-2013002236,100668433,50626624,1140864,268435968,270533124,0,524288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,536870912]},{"sector":8,"data":[0,0,0,0,0,0,0,0,0,0,0,0,8,0,67108864,-1052638206,34832,151523328,-2145254400,1082132736,-1337981944,16777216,663552,8192,-2147073664,134217748,67178500,27394432,6660,1049608,64,-2095038199,-1861739516,318767184,68947586,-2015136776,0,1098915612,-2025898504,947583219,1894653159,529406256,-51330801,-298287330,-287557313,-1026491333,397312,202932225,1595396,0,0,268566528,36993,0,0,0,262144,119281634,925458,81789696,1074688,9306236,-2129590143,16777220,1883242496,-17502177,-828424321,419306608,4124897,2031616,-1905025986,-1908683151,-2109706016,526987,671613952,-1571518128,738853569,134479912,160190504,1091108864,579388449,1088423945,289805312,-2105537502,8407076,539099136,1132740672,135348752,138547334,806887492,579084484,1226981896,269632528,135414920,17808,-2147483646,134218784,8,-2147483648,0,1665273860,858993459,858993459,858993459,858993459,-502202112,545294344,67108994,285215248,31981568,411173258,67125792,-2147483390,285876288,270615052,-2010954616,138546241,-121632959,138513440,-2078276575,-2009070575,0,0,0,16384,-1073741824,0,4]},{"sector":9,"data":[-1527642360,134292112,603996320,335806794,1212416129,805308032,-1608497374,571507076,268575041,541591618,1084502040,1107567684,1108346912,-2105268190,1216876576,-1008598912,-177107321,1720437132,-156223124,-1150815283,277100495,858981184,858993459,858993459,858993459,151270195,-2045763327,5131776,80218368,8968,9044200,-1002436476,33884676,1352679553,1208238610,67703332,-1975515103,-2004876220,1279263777,69306498,-2012183520,-1008629636,991694471,941362823,647534961,470714307,1718863672,-1724539955,34078848,337675074,1074792929,21111808,-521067508,412256323,1225002111,-2131189728,-507436272,146939648,1343496304,608452772,135283204,690045456,541065475,16520,-1857543149,1245980194,1144166665,-1857023031,340398403,54530180,858993459,858993459,858993459,858993459,545353732,1342212512,167520586,1098842184,6850560,143216778,168053168,1082196485,-1038921568,507279360,136381455,71600880,34771072,-2004071360,-2078276575,-1874702320,-2126503920,-1857551358,-2004335582,1210377096,-918281583,-1975246191,8409110,-1069481464,138487884,611907587,1140982338,1199837193,50356352,270616840,571506820,268902721,541591618,1083461652,2080687175,1091569676,214337,1082671232,619839488,606248712,285822532,310985762,-1843097336,268968241,858981152,858993459,858993459,858993459,-1727777997,150528993,1347309696,8972549,-2013235704,701366569]},{"sector":10,"data":[-1861673519,-2079846136,-2012208830,1207976482,67703332,-1992292319,-1870658492,1279263250,69306512,537953312,-470710206,1058967495,2084446152,311003384,579946532,579979844,1227131204,252182528,1150460128,1073744001,71451648,269057538,411058308,1191709823,-2138771423,16851472,138547202,-1877860284,71581844,134366212,1161904400,-2139062268,16793732,-1878514670,1229243425,1143083273,-1862004087,573680164,54530052,858993459,858993459,858993459,858993459,276996100,1317012544,151277632,72,2656256,35989504,521217296,-507279601,37681392,270548992,136381448,71600448,34771072,-2002760640,-2078276575,-1988354032,-1857543150,268977186,-2004860896,1210323593,-901504367,-1992023407,18724,-1585314816,134300434,1140867072,69339458,1090785673,805307904,146939904,1108361604,276955153,557992002,546082834,1107821188,1074792482,1074299520,1082393729,605159680,69374280,294209604,310985762,1142461188,277136456,858981184,858993459,858993459,858993459,-939248845,-2092957560,680402944,1049600,-2013265793,1343094824,1193280583,1217404945,67703332,1107562818,1149767713,138479649,138479810,-1944058847,69273665,537953312,605194560,1143116104,1143116104,311003272,579946532,647220292,1187289164,67633152,1007469185,1090521281,-1617984766,-512752612,1216003,470286336,1056447751,-2131523777,1894201468,960069607,17702852,473752560,-2105507825]},{"sector":11,"data":[-54271716,16514,-1903705103,1282336305,951303133,-854002704,-2016656232,54530180,858993459,858993459,858993459,858993459,7368964,528517344,50331648,224,2684416,142671872,1896775992,1065286904,-253260257,1065352952,-1670132065,-264168194,-121632962,129895455,52426944,-1327468320,-1882725391,243743518,-579782628,-2026642468,-684188658,1815517965,33927,-2147483648,-1879048192,-2147483392,0,0,2,0,0,0,0,0,6291456,0,0,-1061027840,0,268566528,16385,276824064,0,268730368,64,0,0,0,-2147483648,-2030043136,0,0,-2147483648,2048,0,0,0,2097152,0,0,0,0,0,0,0,0,2,0,0,0,75759616,0,0,0,0,0,0,0,0,0,0,0,0,48,0,0,4128768,0,-2147360767,16777216,14528,196608,8392706,0,0,0,0,0,0,0,0,939556864,0,0,0,0,224,0,0,0,0,0,0,0,917504]},{"sector":12,"data":[0,0,50331648,6158,544435540,7236946,0,0,267780352,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352,1702061426,1684371058,46,0,4718604,786528,3,-1879048192,1,185663503,536875008,-369065985,0,1043968,0,145408,67108864,251660288,570432000,1056977408,1224753920,1442860800,1644191232,1795188480,1996517120,-2030010624,-1761571072,-1493131520,-1224691968,-1023361280,-805255424,-520038400,-117380864,268502272,671161089,1023488769,1459702273,1677810945,2046914561,-1778284287,-1375624447,-956187903,-637415423,-217979135,235012865,620894722,771893762,1006777090,1275216898,1560433666,1828873218,2030204162,-1979547390,-1845326334,-1643996670,-1291671038,-989676542,-738013694,-553460990,-268244990,50527234,318966531,587406083,872622851,1040398595,1208173315,1375948035,1543722755,1711497475,1879272195,2047046915,-2080145661,-1912370941,-1744596221,-1576821501,-1409046781,-1241272061,-1073497341,-905722621,-737947901,-586950397,-385621757,-83627773,251922179,520361732,839134212,1107573252,1409566468,1627675652,1845782788,2063889156,-1929083644,-1727753980,-1559978492,-1174099196,-670775036,-335224828,67434500,470093829,939862021,1308967685,1678072069,1963290373,-2130347259,-1811577083,-1375362811,-939148539]},{"sector":13,"data":[-502934267,-200939771,235274501,671488774,1040593926,1325811462,1594251014,1862690566,-2096728314,-1845065210,-1576625658,-1375294970,-1207520762,-955859450,-653864954,-351870458,-49875962,185008646,487003143,788997639,1074214663,570902535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,120586246,-2146571264,112,118259713,-809461631,-335544218,786435,-960491808,1610612736,18776065,920,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,61455,0,0,0,196608,-1199501984,14188557,-1073741824,-1732178920,15112545,-2147371007,464519448,50816]},{"sector":14,"data":[208896,110625075,0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,-872415232,0,0,-2147418112,0,0,0,0,0,112,0,0,0,0,0,0,0,0,2014863360,7130230,117638656,-857821159,51934720,811828999,-1073741056,1608929,1812332646,109514523,281182211,33554464,2021142576,-63423480,30840,52297728,-125631496,2146455311,511570127,-1628966596,939990648,-535871944,987762494,-249782657,536836318,-1577852957,-2147417919,1879048206,426803201,14520,0,0,0,101090049,32,0,0,0,0,251659008,3985200,119524472,520093696,855639552,-268369789,213922048,1879840774,464920,1879050096,527433735,-112259074,-51953665,-12791821,-1073281273,267387198,520125568,960268071,-133247007,821592311,-857945040,50331704,-1718022906,-591344461,-854850036,16789699,-1934524031,6733873]},{"sector":15,"data":[438004742,1611435148,11016390,1883767296,1075350668,-859009952,0,117837363,-969898367,289812492,1612188803,238028995,-1055908850,-2034165626,-1941125608,814505992,-1866462898,-2134761421,393216,208896,404226096,0,201326592,0,50528256,958859523,-409177138,-1670132167,1942895079,-835065956,65510515,101652736,13381656,8437856,163602432,12605440,1895866371,940317760,405805080,267386895,1044480,813829616,415303878,-2040462301,-2101125096,-2034159592,-2090782708,46358556,-2034233320,19099652,140,0,0,0,104,50331648,128,-1073741824,1812332544,-1743250917,147087372,100663544,135016652,-2000621512,13421772,405995520,-2034170622,805717600,201397062,281239576,504237872,432439313,-1038563712,1611172940,273100940,811798753,50348228,-1329471290,1001885671,1001642905,-606040445,-137437261,-276923153,134415299,1942895047,-835065956,971480179,-409177138,-1670132167,402784487,806913561,1196294240,1577058432,420219200,-1610416000,205533440,808458264,-2146893728,-1736439400,160989193,138829954,69408961,1612220001,422625891,1611058304,-1046740685,270008931,939820736,2022498627,2021161080,126057336,990316295,-592351076,50794012,1552401281,-1657047058,16243950,-1702925306,-1073336295,1617956044,818676736,408424460,-859039496,1879051980,216600579,106989249,1124479238,1612188672]},{"sector":16,"data":[187703491,-2146363626,-964683322,202174488,939929864,7512195,549982403,828835328,322138466,429627705,-943416099,1289107761,644244166,63129804,956760067,-409177138,-1670132167,1942895079,-835065956,65510515,-2095497697,16265264,-1064557415,102798080,12595212,822125315,406031449,416028774,429424921,-2129028991,1619532184,415506438,-2040459133,-496869352,-864020176,20144134,40092316,-2034233320,428022788,-858993524,-858993460,-1987475003,814520713,321316376,1673692169,862358665,-423326695,393314,1728974646,202152967,67133656,940060876,281808024,939576440,822484094,-119469925,1057359456,-1895316729,-524066568,328600368,-507019119,1022412672,822610956,-1065265146,277020988,192,856044390,-1724828877,-1734796898,422799052,1724255367,-1043569050,197507,1942894855,-835065956,971480179,-409177138,-1670132167,405930983,821825295,664273100,-1635737703,1614741536,-1547629376,-859033344,432740451,-1055903604,213979148,520929552,-536387336,-259842052,-132610463,422605410,1611058304,-996409037,270008931,251954880,211294467,202116108,432802828,-1717986919,-956813172,-862441117,-862375066,-1944505498,6735564,87425030,-930493312,-125236212,818678812,217844752,2093756620,117497856,521216780,106989281,1124479238,1612188675,154153155,-2133782106,-964689466,202116656,1292048904,51961858,12589059,870711552,854799110,429627697,1724684441]},{"sector":17,"data":[-1937565389,1131361478,51282822,956809217,-409177138,-1670132167,1942895079,-835065956,65510515,-1070592972,13369536,20127897,2134940,209746700,2013307072,1036746246,1613525891,1073529663,-1019216701,1619538428,415506438,-2040459133,979525656,-864020176,20144134,40093852,-2034233320,419628548,1010580620,1060912188,-1616961588,831297951,828622476,862375064,862375066,-966226919,52,-1736374785,202174616,134242304,203698380,550243352,939527372,587209854,-2039410637,805701216,201524038,415457304,283543856,29786353,-2045196672,503843852,1879363331,135464472,100663488,856044390,-1724834813,-1734796901,422799052,1019661441,-2033727941,197379,1942894855,-835065956,971480179,-409177138,-1670132167,204735463,12582912,1196294268,1367376281,786496,-1598026752,-1043595008,101090191,-501193154,249700366,554623520,134635650,69408961,1612220001,422583906,1611058304,-795082445,270008931,100959936,-863182589,-858993460,403492044,421009432,-963890804,-862441117,-862178458,-1944505498,3982968,359399430,1880627587,1627393036,810076288,-937899964,416047308,1879051980,820916492,1177585201,21377036,1712852099,-2010116925,-1049620282,-2034171770,101500440,-2046751728,202913800,12584979,593888768,806581030,-1717987023,1204197529,-863749853,-2043602738,54725827,956760067,-409177138,-1670132167,1942895079,-835065956,65510515,8404793,1585344]}],[{"sector":1,"data":[-1072906144,12607488,201326592,41168,100893465,1712065548,1611032160,1717569126,813850886,415303750,-2040462301,247619608,-2034159592,-2090782708,-2067701732,56696844,16975368,-858993492,-858993460,-1734830004,831297944,422758028,591627788,1944489100,-466576327,393240,235282284,202152975,-662699776,1895594032,1618505752,13398136,269221888,-126126080,2146471695,511443151,-1618480324,953130111,998960,-1198780610,216007454,2082244097,217259836,50331840,-1312570957,-583295005,-572662371,-641628445,410486471,258182193,197571,1942894855,-835065956,971480179,-409177138,-1670132167,924713959,819986688,2031820,520093696,4128768,-1603268864,100663296,403639299,-1033204,268431375,-217055248,-108064770,-51953665,-12791821,-1073281529,267387198,-1625523072,-1073219584,267387198,1989705991,1987475062,260536182,487526159,-268945202,50794012,127386497,-287524493,1628208,74186752,0,2052,4224,0,0,4,1580032,0,0,0,0,0,917504,0,0,0,12583939,0,1627389952,8388992,100663296,6144,0,50528258,3,0,0,0,0,0,16,7876608,0,0,201326592,786432,0,0,0,0,100663296]},{"sector":2,"data":[0,0,0,0,0,0,0,0,2,0,0,0,0,-1071644672,48,0,403046400,268435712,0,0,524288,117440512,224,0,0,0,0,0,32771,0,0,67305472,192,0,25190656,128,402654720,0,1179648,197379,0,0,0,0,0,0,805306368,0,0,0,3072,6,0,0,0,0,768,0,0,0,0,0,0,0,0,0,196608,0,0,0,0,16777216,11583520,0,0,4098,0,0,0,0,0,0,0,0,0,0,0,0,0,0,264274179,240,1040187392,768,251658240,15360,0,-2097086436,6,0,0,0,0,0,0,0,0,0,0,1835008,0,0,0,0,234881024,0,0,0,0,0,0,0,0,0,0,14]},{"sector":3,"data":[0,0,-524222208,1834221792,1834098803,110,0,0,-125825032,267943951,-2146436992,-125825032,267943951,63616,-2141112224,107003952,67136512,805503218,1493221376,160,0,109839104,192,-1744764928,56680455,1717570787,107372550,1661363808,1127253521,71512068,106954758,-1020239872,214118412,806142768,-1020200768,214118412,408993840,-966783997,214327308,-972241312,-412056013,250048526,106954758,-479174656,250048524,1880024944,-478611232,482554140,955301937,61664,805503072,522094111,393312,1610612784,100663302,51314691,-121552900,536396039,-2095095680,1610614464,402685953,-278700032,-54493425,1056737151,-478546943,-2029568004,2081419135,20904129,-126715656,116949279,-512161791,-1059029000,3194880,50331648,-58689546,1073275166,-478548799,503776252,2037894975,-2127038239,-125665300,116293895,-1070004223,1623211872,6291462,-2146437120,-125825032,267943951,-2146436992,-125825032,267943951,-2146436992,-125825032,267943951,-2146436992,-125825032,267943951,63616,-54325408,116391936,33568768,-1744764924,536870912,50331712,252,108397312,262336,805502976,8306688,-984991,268431375,-149946384,-947913488,-54034436,1073529663,-2021655357,-125755444,536379679,-2124416896,-125755400,1022918943,1665087495,-161267722,2079744831,-2128610080,-125755400,1073529663,-2027946813]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[8084045,3,32,65535,-333119488,0,64,0,0,0,0,0,0,0,0,1024]},{"sector":7,"data":[1409297384,544434536,1735357040,544039282,1970365810,1936028265,1667845408,1869836146,1461744742,1868852841,221148023,240788490,-855002081,1275181089,8653]},{"sector":8,"data":[279886,131221,190350716,32772,0,0,0,0,4194352,9175104,9765013,1175,589824,0,0,0,-2147024892,1,5046272,5242904,68,-2146959360,3,6619136,-265289636,32772,12648448,-265289594,32773,21430272,-265289510,32774,0,1313818119,1380533332,1431257861,16722,738197504,1414418246,542328146,741355570,875312697,540680248,1920298819,544367977,808528952,540160300,1952797480,691151648,0,0,0,262147,96338176,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352,1702061426,1684371058,46,0,3145736,327776,0,-1879048192,524289,137363462,536872960,-536846081,0,374272,0,1866661888,1701409397,327794,140378368,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352,1702061426,1684371058,46,0,3145738,458848,1,-1879048192,589825,154140680,536873216,-67084033,0,546304,0,1866661888,1701409397,393330,228458752,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352]},{"sector":9,"data":[1702061426,1684371058,46,0,3145740,589920,2,-1879048192,786433,204472330,536873984,1342202111,1,890368,0,1866661888,1701409397,114,0,0,96338176,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352,1702061426,1684371058,46,0,3145736,327776,0,-1879048192,524289,137363462,536872960,-536846081,0,374272,0,30208,402653184,1712862774,403445816,0,943588096,2114879038,1044283196,458752,471743600,2138980222,2120433535,1098412831,1048460899,1669217918,1667457891,1012932223,786456,393328,408944654,7893004,0,1572864,0,806880768,59,0,0,0,0,0,0,0,201326592,1667436044,1043734040,28,406650686,801852,939524159,1616904254,103812336,473316124,238567231,242234908,981362236,974915440,943652918,238427150,56630384,473316124,56623104,106968604,991639064,991691616,1610612790,53877763,402667120,205422390,202905696,6172,409142784,1612579683,1667434080,1042028568,910231068,808674099,409165872,1664103942,1664312179,1666867251,909534051,204478470,1008205884,1044266814,2020491032,1981298236,1065238126,1669209719,1667457891]},{"sector":10,"data":[404229247,471604334,471604252,471604252,471604252,471604252,471604252,471604252,471604252,7196,910039103,1291859992,102,2120613977,1712852486,402653306,1616904291,471597168,907832931,2139054876,2122219391,1664319102,1044266558,1667701822,1667457891,202913342,905997923,202915638,404226147,1712062566,1717767192,406789120,201326604,402653246,408958464,202899515,2130738815,409144320,2117475852,1061031038,7340032,1667046407,1009999934,411004732,1999649798,1665033067,1662533182,471624502,202905628,1711276134,2003198003,410215998,1796750348,1714643827,1662529595,907832118,202905606,471604224,471604252,471604252,471604252,471604252,471604252,471604252,471604252,201333788,2137209952,1358982144,2134782779,406585429,1711277592,402659386,1852204606,909515830,473306140,808476727,404238384,1937446936,1667457891,1667964003,912483171,471610931,471604252,909533195,2021144118,1849587832,1044266558,1667701822,1667457891,25395,805732096,202899558,6198,409147392,58655536,56825955,1042022400,2136932380,808674099,409166640,1798321766,1664115559,1662518070,137772572,202119216,1711276032,1617322035,409157144,1796748812,1714643811,1729627696,473316892,404229168,471604224,471604252,471604252,471604252,471604252,471604252,471604252,471604252,201333788,138285119,1358968344,419328,89,1711291454,1006632970]},{"sector":11,"data":[1668166400,2139042030,1048526398,1044276092,404241982,1798510616,1667457891,1668488291,140731235,1717973822,1717986918,1616928872,404250720,1936070680,1667457891,1668488291,912483171,402667059,1719416320,202899515,1572864,2118004760,2114354815,507392062,464920,1665144944,2138979966,2120433528,1669296956,1048067683,1044135547,476255240,201726079,989855744,1044332414,2120418878,1803449100,1044266595,990854268,409146376,404229247,471604224,471604252,471604252,471604252,471604252,471604252,471604252,471604252,201333788,476265996,1291852824,13183,2113929301,2063597568,786442,102721151,1667440159,1667457891,2139045479,2122219391,1736343166,1044266558,1048452158,473841214,993752688,993737531,1010712374,2122202172,1664908926,1044266558,1065229374,473907007,7230,1572864,403439616,1048576,24576,0,0,4096,1835008,0,0,0,452984832,0,0,1006837248,65280,0,7168,56,124780544,0,1879048192,806880768,0,0,0,0,0,0,0,0,0,0,1040218112,0,62,1610612736,3932187,252051456,6,0,7168,0,0,0,0,0,0,0,7168]},{"sector":12,"data":[1879048192,1866690672,1701409397,114,140378368,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352,1702061426,1684371058,46,0,3145738,458848,1,-1879048192,589825,154140680,536873216,-67084033,0,546304,0,30208,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1572912,0,0,12582918,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,855638016,0,-16711680,0,24576,0,0,19922944,808649603,805306608,1661371137,1714427904,13372416,-858996640,1572864,405832641,19922944,808649603,805306608,1661371137,1714427904,13372416,-858996640,1572864,405832641,100689408,-1017068020,102264856,12585996,100663296,-2096685538,2029547968,990846,0,102644736,-203962593,1635647229,2012119967,2126908867,-945873025,-2045903897,-542088765,-268384541,786552,1879048220,1879063552,51249152,192,0,32769,0,-1061036032]},{"sector":13,"data":[0,0,0,0,100663296,836993281,4141208,36639,16515072,118423582,-33505152,118358016,16974720,101456064,29412364,209665688,12585990,13394112,16987007,3158915,59129600,1627414534,101465280,29412364,201326744,12585990,13394112,16986907,3158915,59113728,1627414534,100663488,-202256628,202948656,8390406,201326592,-972290509,-1065291424,-2145832186,3145728,-2040437056,422800396,1640219268,-1010433914,-1008296701,1825353777,-2045916364,-1877396541,805307331,520093900,-1309423857,914055416,818286366,2128140738,-941941137,-2034631705,-542084157,1623228641,253639926,-524188921,507279600,-1048377585,1014558944,-2096689378,2029052097,118431292,-253705853,15480,-519978233,6500504,8405280,131328,-2130639309,-201260864,201719808,197568,101449952,-1065352957,2143516912,-202383425,2130508017,-942688207,-50794013,-659528900,203097696,524183292,-524056817,1065348337,-473460961,2029052097,-946915572,-50794013,-1657061572,208922574,100713468,6489600,402679392,-2132730109,402653184,-2147416525,-118443583,-2095505908,-121536511,-1889072080,419679247,2143353072,-2084110202,-1011417853,1741467697,-871578752,17768155,813695363,16777216,1932946572,1002895372,-523894778,-1007878973,1821159729,-2036760319,-802147365,1640005825,253639868,-524188921,507279600,-1048377585,1014558944,-2096689378,2029052097]},{"sector":14,"data":[118431292,-253705853,100678776,818087692,14168304,1619417383,7995648,8789790,-191299136,201719808,222150,253630560,-524188921,817946352,270945432,405823680,1826143357,-2045961418,-659527876,-1743178132,17002182,811647104,1640182296,812439728,405823680,1826109494,-2045961418,-1936103620,204694470,100713414,-530512384,402717888,-528021757,805369857,394803,-870829981,-2146487528,768,-1720903668,419654796,1641005184,-1010427770,-1013027581,-2133905345,-871578656,101069787,817889283,520093696,856059020,868638972,-2134441978,-1010012989,126660913,-862420511,-2095505701,952107015,253639680,-524188921,507279600,-1048377585,1014558944,-2096689378,2029052097,118431292,-253705853,100678776,-520027380,6684920,-1010020820,7535089,-2029058560,-191364736,118423576,2033398659,422785228,828622476,1052809369,-1064890593,405823680,1826141745,-2045961418,-659523268,-266848660,524248006,-236730481,2143354616,-252715073,405823680,1826107423,-2045961418,-1936102084,-1741593658,26310,837816064,402693273,-2134832125,1610612736,101451315,-862391965,-2147405008,-121569280,-1620639696,420703372,1640218756,1673926790,-1014100725,-859033552,2014102320,210133350,811597859,822083584,859204748,863920128,-523894778,-1010012989,9220401,2025357617,202322790,1623228449,253639680,-524188921,507279600,-1048377585,1014558944,-2096689378,2029052097,118431292,-253705853]},{"sector":15,"data":[100678776,805552903,1781856,1611022375,4849968,0,345506048,0,206594054,-1082169836,-67637281,818018557,270945432,405823680,1826140977,-2045961418,-659525316,1612199532,828597244,862375064,1623404569,792624,405823680,1826140209,-2045961418,-1919190724,-261037114,100678854,-480049664,201389592,6,-1070595904,-1014030562,2029007040,51322416,3178497,811604160,-202913825,1635774717,932155295,2122714619,1738415996,821621219,529490278,808452323,503316480,-639383589,2064054520,869171359,2129554931,127803199,819788000,528905062,1623228641,253639680,-524188921,507279600,-1048377585,1014558944,-2096689378,2029052097,118431292,-253705853,100678776,14714625,12988656,12607264,131328,8396544,351011072,251659776,821559488,-1335804866,456551640,2139004429,-202383425,2130508017,-942722689,-50794013,-1893761220,-235871289,-1640108352,-642553905,1065279213,-473460961,2130508017,-942723041,-50794013,-972210372,1622700515,6396,-1073741824,100663296,16777228,128,0,0,0,3,2031616,0,0,0,0,12586496,0,0,-268386301,65281,0,3932160,8392448,0,12583280,0,3932160,-1061036032]},{"sector":16,"data":[16527360,32799,16515072,0,905970432,7168,2083520512,12,0,3670016,0,0,0,0,0,0,0,0,3670016,0,0,0,0,24576,-1056768000,1866723520,1701409397,114,228458752,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352,1702061426,1684371058,46,0,3145740,589920,2,-1879048192,786433,204472330,536873984,1342202111,1,890368,0,30208,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65295,0,0,0,0,0,1572864,-872413672,15761433,1572864,-1744763368,102236184,38913,402659532,432799750,16777344,1619001728]},{"sector":17,"data":[1605657,0,0,15728640,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100663296,786432,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100663296,50331648,4092,1056964608,192,-268366080,3,0,4064,2013267824,393216,813898080,9961728,393216,8395104,425721862,50331776,1610614320,3179289,0,-1744763296,6291456,1572864,-872413672,9961728,1572864,1560,102236184,0,402659532,13369350,16777216,1619001728,1572864,0,1719671136,529269510,221184,192,0,-2128671744,-125755424,267944711,-2128610173,248,805355520,-2128611327,-226459680,2147354495,-478547232,-1629024260,1896287868,-2139098912,-58490896,-258021505,-411459585,-253722722,267386928,393216,28672,117489665,7340224,8847712,30]}],[{"sector":1,"data":[0,0,0,939524096,12583174,0,0,0,0,0,0,0,0,0,0,0,0,0,-134217632,111068976,-2078671359,8388866,1073741824,983072,411048288,520093702,192,8395104,201327408,24576,0,535822366,64225,-33095680,0,8387587,0,251658240,1611595776,0,1879105657,454657,813898080,15761433,393216,-1736369824,425721862,-1022453631,1610614320,422609689,128,-1744763296,1885372441,38913,-864020128,836273695,417920,1619007840,0,-1070589952,214118496,402686733,-1020261373,1610614284,201326595,1616907267,247672928,805749552,-1070592413,411238752,940443440,1664093379,107360268,1611424614,-2095511962,-1059037172,422576152,128,12288,201375744,3145728,196608,6,0,0,12,0,1610612736,509607942,1044672,-268431376,267386895,1044480,-268431376,267386895,1044480,-268431376,267386895,1044480,-268431376,267386895,61440,-1946090752,101450511,67110403,8392698,1593835520,-2145845216,-268434592,1006632960,128,8395104,402654000,393216,1610614368,241172486,-411103645,115572734,1073529663,-953130816,-268431458,821035023,-953028416,-1628997218,1067370288,6339]},{"sector":2,"data":[0,0,0,196608,0,0,1610674176,0,805306368,0,-33357728,414237488,786432,1610616624,0,-1070583808,213909600,813204249,-1020258304,1610614284,66847500,-530117632,113651952,858809136,-1070594554,813891936,1016989488,1714423494,6762502,806093574,17786566,-1065352296,3145740,16777216,-20758536,1073529663,-2127038845,478355424,2010909958,-1016071037,-54313994,2031929151,-411496465,1623211934,929038342,1044608,-268431376,267386895,1044480,-268431376,267386895,1044480,-268431376,267386895,1044480,-268431376,267386895,61440,-2134831264,111052569,83935238,-864020094,1493221439,-2028404576,402656510,1006632960,24704,813898080,201327408,1007616,-268431376,519045135,1664091654,811806726,106954758,1664114688,214118604,1611449136,1667493984,214118412,806142768,-2128668573,-125755400,1039696159,-1019216189,-54312964,517996830,-955391999,-54313096,1073529663,-952110912,482832668,1067370353,40647,-1744764832,1012924446,786624,-18383056,16253184,-1070571520,2021654880,1066173233,-2128668544,252,48,1634482368,8798104,1072718640,-1069613050,-528285344,922093104,-2042689850,-260030714,806093574,419526,-1073740048,3145734,0,107360268,201770592,-1070068730,813891936,946210310,1714423494,6691852,806093580,-2095511866,-1065275124]},{"sector":3,"data":[3670022,1044480,-268431376,267386895,1044480,-268431376,267386895,1044480,-268431376,267386895,1044480,-268431376,267386895,61440,-264038304,15728655,83898371,-1732178302,1610137856,983072,-259973280,470549248,24704,-1744760848,2034025265,-2129018687,-1736369768,932741401,54460614,-268222480,106954758,1669226496,107372652,1611032160,1667690592,214118412,815317296,-1073729437,213909516,101498880,1717569126,107372550,106954758,-482385920,107372684,1611032160,1667493984,214118412,806142768,3171,-66650016,1725726727,786624,1610616624,0,-1070546944,201328224,806142015,-1070583616,12,66847500,-479764480,6697212,858809136,-1070588154,813916512,862324272,103810758,243282182,420217606,1047683,-1073734560,3145731,50331648,6697212,218023776,-1070593018,-528285344,811992582,1714423494,-66906100,420217612,17788035,1610614424,6291462,1044480,-268431376,267386895,1044480,-268431376,267386895,1044480,-268431376,267386895,1044480,-268431376,267386895,61440,-1073735584,117360432,67161088,805503226,1493221376,160,96,67896064,128,-872415232,57065475,-1019281213,-54312964,2130494271,53477382,805515264,106954758,1664114688,107372604,1611032160,1668083808,214118412,821084208,-1019278237,-54312964,1073529663,-411107098,-18382850,106954758,1667260416]},{"sector":4,"data":[107372556,1611032160,1667690592,214118412,815317296,39009,805502976,1672921392,786560,1619007792,100663303,-1070563327,201529440,806126337,-1070583616,1879049752,201326595,106954752,107163654,805749552,-1070594557,411263328,822502960,53480643,113651724,252445446,-2145806335,-1067421600,3178497,100663296,107360268,201377376,-1070531581,948109664,811992582,1714423494,100669452,253494028,-2145780733,1623202032,6291462,1044480,-268431376,267386895,1044480,-268431376,267386895,1044480,-268431376,267386895,1044480,-268431376,267386895,61440,-2134831264,106954752,67122688,-1732174078,1073741824,32,0,76284672,128,-1736368384,101498886,1717570755,107372550,1711695456,1664091747,107163654,106954758,-1020239872,214118428,806142768,-1019678528,214118412,1063305264,-966783805,214327308,1712113248,106956294,417792,106954758,1667260416,107372556,1611032160,1668083808,482554140,1072742449,61632,1611006048,1042055967,393440,96,100663302,-2095120381,-121552900,536396039,-2128650112,1610614512,805355520,-1893769216,-121602289,2097022847,-478545408,-1912127492,2014310271,8188096,-59541264,116949279,-512124927,-1059029000,3194880,50331648,-54300682,1073505087,-478606208,243728892,2037894975,-1019216669,-66896132,116310279,-528902143,1623211872,6291462,1044480,-268431376,267386895]},{"sector":5,"data":[1044480,-268431376,267386895,1044480,-268431376,267386895,1044480,-268431376,267386895,61440,-66911392,116391936,50334726,-872414980,1056964608,117440704,254,74842880,196736,805502976,254861327,-984863,268431375,-149946384,-411042591,-18382850,1073529663,125828291,-268431476,267386895,24113152,-125755400,1894809631,1665103879,-161267722,1006003007,-1019216669,-54312964,1073529663,-954204989,-54313058,1073529663,-1052774208,-287236370,811655198,24576,0,6,196608,192,12,0,0,0,0,-1073741824,0,0,0,0,0,0,0,16777216,156,0,0,-268435456,15728640,65295,0,0,63489,16128,0,7340032,14,0,117440512,939524288,12583174,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100663296,63495,0,0,0,0,201328128,917696,0,8306688,192,0,0,28672,0,0,0,0,0,0,0,0,0,0,0,57344,0,0,0,0,0,6291456]},{"sector":6,"data":[1891632896,1866711047,1701409397,114,939929864,7512195,549982403,828835328,322138466,429627705,-943416099,1289107761,644244166,63129804,956760067,-409177138,-1670132167,1942895079,-835065956,65510515,-2095497697,16265264,-1064557415,102798080,12595212,822125315,406031449,416028774,429424921,-2129028991,1619532184,415506438,-2040459133,-496869352,-864020176,20144134,40092316,-2034233320,428022788,-858993524,-858993460,-1987475003,814520713,321316376,1673692169,862358665,-423326695,393314,1728974646,202152967,67133656,940060876,281808024,939576440,822484094,-119469925,1057359456,-1895316729,-524066568,328600368,-507019119,1022412672,822610956,-1065265146,277020988,192,856044390,-1724828877,-1734796898,422799052,1724255367,-1043569050,197507,1942894855,-835065956,971480179,-409177138,-1670132167,405930983,821825295,664273100,-1635737703,1614741536,-1547629376,-859033344,432740451,-1055903604,213979148,520929552,-536387336,-259842052,-132610463,422605410,1611058304,-996409037,270008931,251954880,211294467,202116108,432802828,-1717986919,-956813172,-862441117,-862375066,-1944505498,6735564,87425030,-930493312,-125236212,818678812,217844752,2093756620,117497856,521216780,106989281,1124479238,1612188675,154153155,-2133782106,-964689466,202116656,1292048904,51961858,12589059,870711552,854799110,429627697,1724684441]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[7887437,3,32,65535,-333119488,0,64,0,0,0,0,0,0,0,0,1024]},{"sector":14,"data":[1409297384,544434536,1735357040,544039282,1970365810,1936028265,1667845408,1869836146,1461744742,1868852841,221148023,240788490,-855002081,1275181089,8653]},{"sector":15,"data":[279886,131221,190350825,32772,0,0,0,0,4194349,9175104,9765013,1175,589824,0,0,0,-2147024892,1,5046272,5242903,68,-2146959360,3,6553600,-265289635,32769,12648448,-265289597,32770,21233664,-265289550,32771,0,1313818119,1380533332,1279608837,16726,687865856,1414418246,542328146,741355570,875312697,540680248,1986815304,824981536,842083376,1699948576,841162868,41,0,0,0,65539,96534784,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352,1702061426,1684371058,46,0,3145736,327776,0,-1879048192,1,119603206,536874496,-1778360065,0,375808,0,1699217408,33584748,755040256,671088648,1126181219,1920561263,1952999273,1953055264,1701999731,1226861921,539911022,892877105,1816207406,1769087084,1937008743,1936028192,1702261349,11876,0,805308928,117465088,256,0,400,553650176,1245193,6356768,190,136839168,0,1207959552,7760997,16777219,2833,539583272,2037411651,1751607666,1765941364,1920234356,544039269,778268233,943272224,1092628021,1914727532,1952999273,1701978227,1987208563]},{"sector":16,"data":[3040357,0,786432,6291504,131081,0,102400,655360,318769697,1627332608,57856,201326592,11,0,1986815304,0,96534784,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352,1702061426,1684371058,46,0,3145736,327776,0,-1879048192,1,119603206,536874496,-1778360065,0,375808,0,145408,33554432,134218752,318770688,570431744,671098112,822094592,989870336,1073757696,1224754176,1392528896,1560303616,1744855552,1946185216,2080406016,-2063565312,-1811903232,-1577018880,-1342134016,-1090471936,-889142016,-620702976,-503259904,-301930240,63488,251725825,503387905,721495297,989934337,1291929345,1493259009,1627479297,1778476289,1946251009,-2147386879,-1962834687,-1811836671,-1610507775,-1543396863,-1409177087,-1140738559,-939408895,-771633663,-637413631,-436084735,-217977343,-33425151,100795393,302124034,402789634,503454466,604119298,704784130,805448962,906113794,1006778626,1107443458,1208108290,1308773122,1409437954,1510102786,1610767618,1711432450,1812097282,1912762114,1996649730,2114091266,-2013101310,-1895658238,-1727884286,-1509777150,-1342002430,-1157451006,-989675518,-821900542,-670903550,-469574398,-352131582,-201134334,16972034,285411587,503518979,738403587,973288195]},{"sector":17,"data":[1258504451,1493390083,1694719747,1828940547,1963159811,-2130478845,-1862039293,-1593599741,-1325160189,-1140607997,-872168445,-603728893,-385621501,-184291581,17038083,218367748,486806276,671359492,872689156,1006909956,1141129220,1308903428,1510233092,1711562756,1912892420,2063889668,-2029747964,-1828418300,-1627088636,570729732,-1907611627,278545,1406011667,-2132575026,-1895628008,2084454022,686352379,1627496784,-126059458,673769723,-1171289534,276856889,269492224,4180,-2147483648,0,1834713909,-1234314314,-608801317,-1999063443,-1619162501,-553189348,31624240,274728176,1611151376,-817044687,214361863,-1617792909,235080733,-239914738,1623408896,574626960,12638234,-515504120,47330341,81319440,543236868,2081751256,705827297,-1206648700,84955681,-127708140,558452932,142754369,558966792,1111576963,-2013231742,1363290152,1074405953,-415654333,-1761288669,1033823161,625332686,1162132520,-608801381,1843115629,-1234314314,1385045208,547694208,-498360309,214977380,405811353,-1050660864,134874755,-369377745,-1615851479,522133279,-1802226636,576656660,19154208,281309479,156242592,1613300769,1342759449,15362,243411216,-1942018302,1397131300,-1042085730,-1758396288,1111539280,-386938637,1229267294,-125141951,1210353904,562176162,1358954504,1370762562,340071511,-1860680367,-1983372219,1830498436,-1234314314,-608801317,-1579633043,678437098,-1595256930,1226867760]}],[{"sector":1,"data":[-1838938924,1217923731,-1992023407,537454611,1007749506,-1600085848,-726294368,303305748,-411452272,-622823010,-759796453,-1897710302,-1466244296,-1574401374,2080374920,713175396,-2010906492,290551937,-127713264,-1579214912,142754369,558967848,1078019369,-2012706682,1343522082,532868,675467526,-1806380765,1162941509,-668430074,1078202565,-608801509,1843115629,-1234314314,1921948888,562112736,234889227,72370400,-1164963319,-134480478,146726895,-906806225,-1599729647,-1600085856,336860342,572461332,-1969084278,1091601004,1159860740,340087060,-1969051558,5251621,-1630983920,553918530,334367043,-1797054322,268501784,2084486672,736626682,1125236112,-2055585730,46237680,-1601206264,1577255048,1361110841,323310676,-820232802,1008896272,1830502468,-1234314314,-608801317,-1982286227,638591739,-1609957188,1879105539,66076752,-2053373055,1344803850,-1093671005,521267707,522166049,-482926817,-505158685,-1503058416,1906796954,-1830602546,-1911342814,-946085064,1021475230,32,1073807488,4210688,0,2048,8392448,0,0,0,0,0,1052260352,0,2146311,68157440,0,-2144010228,0,0,0,0,8160,49159,-1073725440,-2138898432,128,50331648,128,0,0,0,0,0,8388864,0,0,0,12591116,1986815304]},{"sector":2,"data":[0,0,0,0,137167104,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352,1702061426,1684371058,46,0,3145738,458848,1,-1879048192,1,153157640,536875776,-1107271425,0,534528,0,145408,50331648,201328128,469767424,855648256,973092352,1191198208,1392529408,1509971712,1711300352,1946184960,-2113897728,-1879013120,-1644128512,-1476352768,-1308579072,-1056916992,-721369088,-419373568,-117379072,151060736,486609665,654385153,922824705,1275150849,1593923073,1912695041,-2113832191,-1811838207,-1459511039,-1174294015,-1006518527,-805189375,-570304767,-318642943,-66980863,134349569,386011138,486676994,654451714,922890242,1191329538,1409437442,1593989634,1828873730,2097313282,-1962769406,-1811771134,-1576887806,-1442667006,-1308447230,-1174227454,-1040007678,-905787902,-771568126,-637348350,-503128574,-368908798,-234689022,-100469246,33750530,167970307,302190083,436409859,570629635,688072195,855845891,1090730499,1258506243,1493389827,1778607107,2030268931,-2013037309,-1778151677,-1576821501,-1375492349,-1123830269,-956055549,-771503101,-519841277,-284956669,-16517629,285476867,587471364,923020292,1208238084,1476677636,1694785540,1862560260,2114221060,-1845196796,-1509647356,-1174097916,-939213308,-637218556,-335224060]},{"sector":3,"data":[-66784252,168100612,402985221,637869829,939863301,1174748933,1409633541,1610963717,1778738437,1980067589,-2063237883,-1794798331,-1526358779,-1325029115,-1090144251,-855259643,-620375035,-1039801851,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1610615808,0,-671088640,0,0,0,0,0,0,0,0,0,-1894187008,49363,50396925,6364,109064960,1610645020,-870441460,49347,1662780976,9489504,-1073735437,-2144209952,-2097074173,6316038,906756870,61644,1824921696,-654278631,-605998976,103809048,204511281,-1290993472,948749104,13424652,1668810240,-1633696793,15759486,253624320,2130207168,-1614856321,-1023009844,870113632,1065286905,1826148239,-1330577098,-1278746913,202752,208896,394080,0,3072,50331648,-585301833,-572662307,-572662307,-572662307,819781085,1739823459,-1067444096,8782080,1623588984,-167708672,235675328,1630541872,1611038903,403472126,303759459,111081731,-1642527997,217979904,29363206,-1933507706,-1744737229,1662517248,1382155056,-1017073555,-2147258341,13375500,198,-151406835,-1945277224,100669560,1731256525,-855232360,415260827,-248500173,-1335770234,460075056,-211760122,-2045954338,64532673,20343832,-1736369765,32961]},{"sector":4,"data":[-203165197,-612614202,2088564278,-554467588,-1687315507,-1909332425,-572662307,-572662307,-572662307,-572662307,-807009316,922774579,50380982,1640759419,-392625780,113260032,805307916,50727960,-1011826429,2139062143,224627761,-477151293,-1656750344,-659529329,-429443476,1008635751,1021243768,-1058803336,-248446976,-235802127,1723047923,-868771071,51118272,414237490,419335425,1623985152,1050660193,60324108,1728497183,-1057187431,809484129,-267977969,920378976,-1329494515,1813562319,260976950,-2141120509,454754304,1668232758,-614016154,-960051610,-1681060666,-969870484,-576873679,-572662307,-572662307,-572662307,920444381,1730021830,-869058944,8094687,17234809,855697560,2113963673,507279408,-1014823153,1616953406,-1942921120,1625541991,-2096285992,1637604704,913103024,-1044367514,403441283,-1681037773,-1942919626,454794201,-1222960357,-1681037645,12610614,-533658868,-1933494674,202309496,1874878668,-870796351,16780536,-35951476,-1335771002,468463664,-866062330,-66210087,1660993485,2070111768,403047950,32865,923147259,-614046746,-966337594,-1933326650,1668062157,-1070560207,-572662499,-572662307,-572662307,-572662307,-1882245412,935332876,-1149167184,1660944491,731382236,-1072943104,-866123714,-1944505498,-1057986618,2122219134,224627761,920150203,-580877555,-659529293,918958956,1050660711,1627388284,-419955715,-1686270927,454761243,1723053339,1815518157,117440704]},{"sector":5,"data":[1641795832,416058497,1640765440,-1283366528,51956784,1728103967,-1014624909,808497249,-865723540,-153567136,-1312325619,1662542720,102485955,-2144266228,463143168,1057371702,-614016154,-960051610,-238236480,115601816,-585269199,-572662307,-572662307,-572662307,870112733,1740577254,-865658752,8782272,16777216,117450904,1720162777,2147483341,-152051777,1616954160,-1942921120,1619987811,-2096285992,1642323296,829216944,-647174521,-1681037645,-2084477392,-1942944250,454794189,-1122297061,-1714592077,8415206,-516750580,-1939784050,-664791040,-1040751752,2016419487,415260915,218312716,1065320184,468459440,-1065434308,-2131135528,-1008783233,-2038316785,-669022671,32817,-203165189,-614071354,2087115574,-1899528452,-1734778500,-2144213305,-572662499,-572662307,-572662307,-572662307,-1064357412,264265740,192,-134151940,686555392,520093708,-2038858088,-659529277,2118006380,2139062143,-110916559,-477151353,-1673527560,-1893777410,109502919,1050660839,1021245820,-958140040,-1720087503,-235802127,1042268147,-1010304900,0,49152,55296,32,0,536870912,251658240,224,0,0,0,-2147418112,0,0,-2147017216,254,2113929216,12288,113246208,0,58721024,183,0,0,0,0,1728053248,128,0,16777216,1572992,113180928]},{"sector":6,"data":[6144,0,0,0,8388864,0,0,0,6144,0,0,0,50331648,3718,1986815304,0,185663744,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352,1702061426,1684371058,46,0,3145740,589920,2,-1879048192,1,169934858,536875776,-503291649,0,723968,0,145408,67108864,251660288,570431744,1006645248,1157644288,1409305088,1644191232,1795188480,2030071808,-1962900992,-1660906496,-1358912000,-1056917504,-838809088,-620703232,-301931264,100726272,453054465,822158849,1140931329,1543589889,1744920577,2080469505,-1778284031,-1409179135,-1023297535,-721302271,-368975871,33683457,369232898,537008898,755115266,1023554818,1325549058,1610766082,1845651714,-2147322110,-2013101054,-1811771390,-1425890814,-1123896318,-889010686,-687681022,-402464766,-66915326,201524226,369299971,604183555,771959043,939733763,1107508483,1275283203,1443057923,1610832643,1778607363,1946382083,2114156803,-2013035773,-1845261053,-1677486333,-1509711613,-1341936893,-1174162173,-1006387453,-855389949,-637284093,-335289597,-117181181,151257347,520361988,755246596,1090793988,1359235332,1560566020,1761894660,2030334212,-2063303420,-1878750972,-1576757500,-1207653116,-905658364,-570108924,-234559484]},{"sector":7,"data":[184876036,537204229,872753669,1107639813,1241859589,1493519877,1896178949,-1996129019,-1593469691,-1308252667,-939148027,-570043643,-234493947,67500805,369495302,671489798,1057370374,1342588678,1644583174,1862691590,1996911366,-2063172858,-1761178106,-1459183610,-1157189114,-922304506,-620310010,-318315514,-33098490,570885638,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32895,0,0,0,-1061158864,-2147011594,-1073741824,855835395,251700237,-1073692576,-866119888,786432,805703180,12,0,0,0,0,0,0,0,0,0,3072,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1073741824,49152,0,0,0,0,0,0,24,0,0,0,0,0,0,117440515,14576,63491,423680,-1677656064,17588224,51118304,12333315,49164,202125312]},{"sector":8,"data":[1083834816,817896192,466354179,192,456130563,3145728,805309440,503377120,-1073741824,402656771,-654245780,488375936,805306496,8438528,48,1063676934,102635550,30,104727296,-473921777,1056864504,31,1072693248,-2122370880,-817891103,1717631216,110649606,1008245761,2146484255,117171975,1640231104,-117885008,1610670321,100696065,-1073734656,6316134,0,0,0,-2133131008,1942894855,-835065956,971480179,-409177138,-1670132167,251659239,523463820,202119219,101449728,419438080,-2143354740,-536824313,405799708,-1073741044,-2130244560,-18759169,-119038081,955777280,-2146994128,2021656440,865615160,466378758,-2096144381,-1196310272,13254,453783552,601082904,408973411,-837273802,100862976,29569222,1812332696,817062246,204670515,50380992,-870834589,-1073683615,-1724816634,-2130460543,2016460952,-2045131168,100863024,1661363808,-1643968744,857260824,818700300,-255850813,1612198851,808687665,-2147418112,805307904,1610661888,96,0,24,50331648,968345368,-409177138,-1670132167,1942895079,-835065956,15178867,-959997952,822095971,27878,855700249,13056,-1241448323,811008,119406688,511238273,103842567,408977433,-1718025978,-2043593594,411459864,-952596895,1611019032,1619401164,49176,503316480,0,0,8388864,0,3584,0,3]},{"sector":9,"data":[1627324422,3366942,-1065318559,107152896,1667481600,1661763585,260544817,-1894129424,-866071400,204505857,1717567494,119039494,-2129028217,1611019928,113443020,518429025,-1939750900,16777264,2122119409,-50561986,-546871706,-507017441,-960567303,1815529155,-854006985,1942895079,-835065956,971480179,-409177138,-1670132167,404685799,519270156,1007039232,-1692860416,1628184064,4010880,1610652673,405799692,818089011,-1022610484,-2147414992,17176672,914594201,858784563,53686275,865635641,416047110,-954695732,-118431293,-132235652,524188796,-959673329,2096689347,-1911611586,-862441153,-216320410,393228,-1073725594,-1621032930,104790247,-2097084829,-118398010,-2145436136,939524124,-2036754127,-2097050497,1055297343,1845945983,-1714616808,-962625127,-536379642,-1721694525,-2147021594,3181761,-1944518656,828622534,1818674828,-862441114,-1944505498,-960248296,-835662797,956788760,-409177138,-1670132167,1942895079,-835065956,65510515,-1056465101,855651200,-137560058,62425,855670591,-2147405819,-510827572,-1738460946,1636178278,-1942002024,528481281,-1684409913,53687267,805516080,-1724316877,1611019160,1635260620,811630747,50727960,-960066559,-862441117,425967820,828622476,828886680,912706712,793371,33488902,1617141377,-1065318559,107154432,-261685241,1664125977,252149761,-1721638672,-866058599,204505857,1717569030,102265606,-2116446087,1614153368,113455296]},{"sector":10,"data":[507252531,-2038365949,16777264,-960459527,-963890817,828800102,862375064,-971471079,-2040434842,-1072135327,1942894855,-835065956,971480179,-409177138,-1670132167,204735463,519270156,2112237824,-1692847976,786432,805647104,124141056,1612591235,-102260865,-408977410,-2147414800,17176672,830708121,858784691,53686275,865644857,416047110,-954695888,-50794013,-65060994,1065352896,-942879585,-963896845,-828886685,-862441109,422785894,152,864248166,-1939750815,-863977024,202114659,-1944493984,419652400,-2147237759,57904897,-2045131168,235080752,1634100832,-1741617512,51954552,818700300,102631107,50541336,3180033,-1944517888,811648710,1718011644,-862441114,-2129054874,2034026136,63161315,956809240,-409177138,-1670132167,1942895079,-835065956,65510515,16813113,402654083,13369356,1548,855638016,5,1619004876,-255826378,-1073541316,103824624,408977433,-1718025978,-2031013754,411459864,-482834847,1611019032,1613764812,862374936,1673956377,-1060732879,202911840,422825164,828622476,829673112,828820632,15735011,1063649286,1614749190,16777267,104781952,1673578271,1043396848,8395038,-1067450368,-2122382589,-868222751,1717630464,-153132996,1010341889,1626538008,-54402969,1628964364,-2080831613,16777264,2122119405,-972279746,828793702,-507000936,2114883577,1640378392,-2133073529,1942894855,-835065956,971480179,-409177138,-1670132167]},{"sector":11,"data":[522126311,1048773056,15730432,-134021120,4128768,8731904,520093792,1014923393,255652032,1022410755,-18759361,-102260865,821598617,-2146994064,2021656440,-519062471,-259571716,-2028249040,-84612653,2023702141,524188796,-942896113,2096634083,-1911611586,-946921602,-255594269,96,3072,1966080,411041792,0,0,0,128,14696192,0,0,0,0,0,0,0,0,133227265,248,16777216,786680,0,1572870,0,3840,24,0,0,0,0,0,32,3,0,0,1610612736,14680320,-259849984,6,0,16777216,192,0,0,0,0,0,0,0,0,3670016,0,0,0,0,117440512,12583811,1986815304,0,0,0,0,1072742449,61632,1611006048,1042055967,393440,96,100663302,-2095120381,-121552900,536396039,-2128650112,1610614512,805355520,-1893769216,-121602289,2097022847,-478545408,-1912127492,2014310271,8188096,-59541264,116949279,-512124927,-1059029000,3194880,50331648,-54300682,1073505087,-478606208,243728892,2037894975,-1019216669,-66896132,116310279,-528902143,1623211872,6291462,1044480,-268431376,267386895]},{"sector":12,"data":[8084045,3,32,65535,-333119488,0,64,0,0,0,0,0,0,0,0,1024]},{"sector":13,"data":[1409297384,544434536,1735357040,544039282,1970365810,1936028265,1667845408,1869836146,1461744742,1868852841,221148023,240788490,-855002081,1275181089,8653]},{"sector":14,"data":[279886,131221,190350944,32772,0,0,0,0,4194352,9175104,9765013,1175,589824,0,0,0,-2147024892,1,5046272,5242904,68,-2146959360,3,6619136,-265289632,32809,12910592,-265289596,32810,21561344,-265289544,32811,0,1313818119,1380533332,1397576709,16722,738197504,1414418246,542328146,741355570,875312697,540680248,544435540,544107858,808528952,540160300,1952797480,691151648,0,0,0,2686979,99877120,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352,1702061426,1684371058,46,0,3145740,327776,0,-1879048192,1,135331846,536873728,-1644142337,0,388096,0,1834221568,1834098803,2752622,138412288,1663565824,1866670121,1769109872,544499815,1919117645,1718580079,1866670196,539914354,892877105,1816207406,1769087084,1937008743,1936028192,1702261349,11876,0,3145738,458848,1,-1879048192,1,168886280,536874496,-1073716993,0,538624,0,1834221568,1834098803,2818158,192413952,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352]},{"sector":15,"data":[1702061426,1684371058,46,0,3145740,589920,2,-1879048192,1,185663498,536875008,-335519489,0,749568,0,1834221568,1834098803,110,0,0,99877120,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352,1702061426,1684371058,46,0,3145740,327776,0,-1879048192,1,135331846,536873728,-1644142337,0,388096,0,145408,33554432,167773440,385880576,704651520,822095104,973092096,1140867328,1224754944,1358973952,1526748672,1694523392,1862298112,2030072832,-2130674176,-1962900480,-1728015872,-1493131776,-1258246656,-973030144,-721367552,-436151040,-268375296,-16713728,268503040,503388161,771827201,989934593,1258374145,1543590913,1778475777,1879141633,2046915329,-2080276735,-1895724799,-1711172607,-1576952063,-1375623167,-1274957567,-1123960319,-872299007,-670969343,-503194111,-368974079,-184422399,16907265,184681986,352456706,570563074,704783874,839003650,973223426,1107443202,1241662978,1375882754,1510102530,1644322306,1778542082,1912761858,2046981634,-2113765886,-1979546110,-1845326334,-1711106558,-1576886782,-1476221438,-1342002430,-1157450494,-956120574,-788345854,-570238462,-368909566,-167580414,-16581886,167970306,318967299,503519491,637739267,771959299,1023619843]},{"sector":16,"data":[1375946755,1577277187,1812161795,2047046403,-1945927421,-1677487101,-1409047549,-1190939645,-1023164925,-788281341,-519841533,-251401981,17037571,218367236,520361476,822355972,1040463876,1225016324,1392791044,1560565764,1795449348,1963225092,2130999812,-2029747196,-1929082364,-1778085884,-1576756220,-1375426556,-1174096892,-1006322172,-804992508,-603662844,-419110652,-502993916,-1004763886,-2145119970,-1945037312,820418871,941146112,-471784968,-470156815,1903413177,-130226301,-823660303,1857453036,12754159,-2147458880,808239424,0,32768,203555328,-1717986919,-1717986919,-1717986919,-1717986919,1484014744,404743624,-386727680,482357283,1125650435,1075364360,-1907834079,12837663,155501251,404651722,303963654,817942577,-1072950216,1368199364,1210056704,-500607592,-1729857276,554763284,-1626169248,304097449,419431443,559174194,253970729,1359218054,-2012737262,-2112880246,1388716068,-1995946686,1229210629,340345890,939982917,1888259171,-1011706620,-153341396,-993682036,-1726409951,-1717986919,-1717986919,-1717986919,244881817,624003,37792038,-1728572216,687945737,1679593800,-2059394944,604636290,-404232409,567163367,505323105,859184670,1673956377,555907427,112919126,-1476094960,524560,149035008,3670568,-703067632,-1626029538,-2079315698,944126099,-1711210484,31623476,971169800,540574448,2034387626,79818760,-2103342526,-2142760318,-1835785215,308759506,1234314313]},{"sector":17,"data":[1381339728,-2145367996,-1717987047,-1717986919,-1717986919,-1717986919,1600410776,-1641504576,145275535,420022305,1370034177,1352149538,176505505,33719315,268567042,556890500,555819297,-2012163786,1158947396,835065923,1516996996,-1020086563,432222220,1759229485,1056968869,35727636,687866896,-1527770607,251857033,-42139002,-2012737262,-2112876158,1183982116,-2012724926,-2076048351,-1845214910,604307520,1234079876,608801316,-1845216868,69805394,-1726414815,-1717986919,-1717986919,-1717986919,1419286937,1074365003,-2109701848,-1341980472,-2130507767,-750489270,-403441248,608083919,-2088533213,562303106,555819309,288825633,574916624,690321672,144986698,-1836838846,1234314313,-1843095260,-1606933175,1178080272,1081886,-868497888,830871575,421052448,-471792383,-473826831,2138299577,-532880765,-2084319759,1665533057,4231567,-865921017,-609849982,152089453,757255580,2213009,-1717987047,-1717986919,-1717986919,-1717986919,1202998936,-1138352120,11010560,-2012348168,268711944,110960782,1613764620,-406330397,971499495,509837006,505290270,1893785654,-1055122376,1942894919,-1942944069,-1288578202,432222220,-768324157,16416,16777232,1075839008,0,2097152,15728640,0,0,0,3670016,0,419430400,16064,786432,64,6168,35651584,34,0,0,0,67108864,-1073676288,16777247,240]}]],[[{"sector":1,"data":[3670024,0,0,50331648,128,0,0,0,0,0,234881024,0,0,512,-2144336896,544435540,7236946,0,0,0,138412288,1663565824,1866670121,1769109872,544499815,1919117645,1718580079,1866670196,539914354,892877105,1816207406,1769087084,1937008743,1936028192,1702261349,11876,0,3145738,458848,1,-1879048192,1,168886280,536874496,-1073716993,0,538624,0,145408,50331648,201328128,486544896,872425984,989869824,1157644032,1358974464,1476416768,1660967936,1895852544,2130737152,-1929345536,-1694460928,-1526685184,-1358911488,-1090471936,-754924032,-436151040,-117379328,167838208,503387137,687940353,989934337,1375815681,1677810689,2013359617,-2013167871,-1677618687,-1308513791,-1023296767,-889075967,-704524543,-503194623,-268310271,-50203135,117572353,352456194,486676738,671228930,973222658,1208107266,1409437442,1560434946,1778541570,2046981122,-2063433726,-1862104318,-1627220222,-1492999422,-1358779646,-1224559870,-1090340094,-956120318,-821900542,-687680766,-553460990,-419241214,-285021438,-150801662,-16581886,117637890,251857667,386077443,520297219,637739779,805513475,1040398083,1292060419,1493390083,1761829635,2013491203,-2046591997,-1878815741,-1643931389,-1459379453,-1207717629,-1056720125,-872167933,-553397501]},{"sector":2,"data":[-150738173,168033795,570693124,973352452,1409566212,1711561988,2013556484,-2046525180,-1845195772,-1576757244,-1241207804,-905658364,-570108924,-335224316,325124,335874565,637869317,872754437,1107639045,1342523653,1644517125,1845848069,2047177733,-2080014331,-1945794555,-1761243131,-1526358523,-1291473915,-1056589307,-872037115,-637152507,-402267899,-184160763,570817285,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,805502976,0,0,0,0,0,0,0,0,0,-2146631680,7,61443,0,57344,0,1046478896,23310339,16777408,857476224,3355488,209740039,-1340013810,109052160,811600902,1660945152,1618700,456351744,1694525891,1501966720,-2046753152,1610812470,1641590797,671482818,318767272,203296707,-940313604,128,-2097135752,1073740536,-1109930017,250592487,-405835513,1056766435,939293183,-270738279,103845614,402681856,125829894,14,805306368,0,1982883328,-286331154,-286331154,-286331154,-286331154,-2061597983,266363374,16810113,956303344,2031843,268873753,806358881,1803550728,50913286,-386711712,6500448,2143341592,811647117,29393969,409002191,-1023377383,-1933447040,2359507,-1060366336,-1741385668,-2140551584]},{"sector":3,"data":[428212536,8401792,-69685235,1149633636,369123440,481499495,1815511169,1610614464,-1044266868,-1738439027,406018124,126228675,865613838,1657146422,328741017,1208782104,24676044,2014854799,1945581004,-2015634122,-843906,-213978308,-603158919,-286331154,-286331154,-286331154,-286331154,2016419552,268460996,33587271,202114312,3801292,537833529,2098914,482345244,18661377,454431680,2147483389,807330749,-17271844,-102527169,-409094184,427286137,-941385223,2065178255,-2040457082,-1202065690,-2017205904,-1065550280,1626787187,-2114125044,-969931832,637559000,746979683,-865865479,419371227,1633852697,-1637777159,-134014961,84286403,865610902,952503350,562835480,-2130311507,13387404,-1725123815,865848686,-915642810,869689011,-1718200010,820761,-286331154,-286331154,-286331154,-286331154,1216132321,666919272,75471661,-1736505372,1614427744,1187427865,809943909,643826214,36069378,29762400,811713156,2081211288,-2096290098,221698144,-1039649831,-1591636944,1815524237,-865684519,-877515573,-871602586,-916180327,-647203143,547055027,-256900852,-962556653,641268739,1275266659,1734776845,100688064,-244862159,-1738440563,418584588,75898307,865609446,486280422,1099313176,50529197,17932,-1688095993,865848812,-647207226,868443827,446929718,394803,-286331154,-286331154,-286331154,-286331154,2033235169,744489982,1946400295,1024196804,1717952]},{"sector":4,"data":[-1234771140,1622568552,2146436991,125825031,17203184,1014558944,806142744,-2096257333,221698144,-1039649830,-1054831568,-470706035,1058967495,-537428520,-851548570,-647219557,-647219525,1083926963,418907904,-960440282,1174429696,2125663331,1623627981,419371200,432577281,-1738439027,406001740,616962243,865608518,1187777542,-2138886120,109249990,9772,-1687834087,865828108,-647207322,-1279181252,-1899688909,820833,-286331154,-286331154,-286331154,-286331154,-2077181727,666919216,67115808,164,669184,1052837376,-1002520304,-2129098623,-2004805496,420905752,811713156,806142872,-2096240952,221698144,-1039649828,-1054831568,1815518201,-865684519,411459865,-848927130,-1723062637,-647190981,-1058981453,-262077684,1148227395,1132683520,211722183,-943460232,1610614427,991739952,1073741048,-1108930594,-286311954,-410029809,2095509891,73532,-1882777146,9964,-113730545,-1281684020,-831756745,434570800,-993719053,820857,-286331154,-286331154,-286331154,-286331154,8298209,274751608,33587279,-2139160568,25836288,100855809,2030494241,-1019355965,-591184420,-202127555,2147483389,2141120445,-17276004,-102527169,2096161231,-473888993,-403459711,2067701711,-1897711474,-868452489,243778529,-806894789,-2139090529,1616904960,671088640,8388608,0,0,1,15872,0,0,0,0,14336]},{"sector":5,"data":[-268235250,0,1610643456,0,3640,939524096,3171840,0,0,0,0,4096,264266496,16777344,240,117452800,0,0,0,0,-1073741824,0,0,0,0,0,0,0,0,12,0,0,0,13099264,544435540,7236946,192413952,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775239737,1819033888,1734963744,544437352,1702061426,1684371058,46,0,3145740,589920,2,-1879048192,1,185663498,536875008,-335519489,0,749568,0,145408,50331648,234882816,570432000,1056977408,1224753920,1442860800,1677746176,1828743424,2030072064,-1996455680,-1728016128,-1459576576,-1191137024,-989806336,-771700480,-452928512,-50270976,352389632,755048449,1107376129,1543589633,1761698305,2114024449,-1727951615,-1325292031,-905855487,-587083007,-150869503,302122753,671227394,822226178,1057109506,1325549314,1610766082,1879205634,2080536578,-1929214974,-1794993918,-1593664254,-1241338622,-939344126,-687681278,-503128574,-217912574,100859650,369298947,637738499,939732483,1107508483,1275283203,1443057923,1610832643,1778607363,1946382083,2114156803,-2013035773,-1845261053,-1677486333,-1509711613,-1341936893,-1174162173,-1006387453,-838612733]},{"sector":6,"data":[-670838013,-536617725,-335289341,-50072573,285477123,553916676,872689156,1174682628,1476676356,1694785540,1946447620,-2130413308,-1828418812,-1627089148,-1459313660,-1073434364,-570110204,-217782780,218431492,654645765,1141191685,1510297349,1879401733,-2130347259,-1895463163,-1576692475,-1157255675,-721041403,-284827131,17167365,453381638,889595910,1258701062,1543918598,1812358150,2080797702,-1878621178,-1626958074,-1358518522,-1157187834,-989413626,-737752314,-435757818,-133763322,168231174,403115783,705110279,1007104775,1292321799,-1039706873,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-16777216,0,0,0,0,402677760,15925255,7936,3145728,-1743161152,9986310,6303751,-218101992,12294,196614,213912816,0,50331648,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24576]},{"sector":7,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100663296,0,0,0,1610618880,110002445,8401200,51118080,100715520,40473,1630220,-1899947936,0,17596417,805306520,196608,112247651,1610612832,-2046740468,-1325203216,993791104,805306368,1795,96,36952076,-1073542137,2105537,210501888,252059166,505298702,0,-2139103231,2059411216,2147386239,-403576701,-2115552113,126317504,-1056441151,-212924420,-418399037,970908559,1882748670,-1073670144,805309952,121045774,0,0,0,805306368,1944502368,-835065956,971480179,-409177138,-1670132167,1892563431,333710176,857672911,12640527,16253696,416153952,12584704,808452295,-1061133984,1073743968,1048578,-16769152,-1610615584,-813695245,-51183556,20854812,2088767472,-102703101,-807323332,-948733938,-1044379848,1676043910,402653376,2037148720,-532257890,1852190816,201366553,1636568332,11534734,255055884,1611045004,11276738,479330560,269361955,858989336,0,1619013891,-2043605960,813850928,-1017112436,8591622,415424992,806929200,-1849091901,-1023141759,286028036,-669489652,-1073741824,1610614272,50528262,0,16777216,128,1610612736,1939628384,-835065956,971480179,-409177138]},{"sector":8,"data":[-1670132167,1892563431,-517782016,3214470,6295568,263168,6488208,25169408,1617985741,-2141077280,-536863744,20447239,1476398784,-1939862493,1177584145,-2090733544,-2034167794,-2090782708,115546124,-2034233320,-2111754236,6327327,0,0,0,8388864,0,7168,0,6,-1694509044,-1073532903,812652742,204669184,1041629699,858981936,125829939,-1341312256,36899916,848310576,-1017116648,203526,811753905,405848856,-2130634557,1661471873,537279112,-1944493544,-596115456,-249809384,863233990,2037442414,2071338940,-805511431,1626922447,1929404512,-835065956,971480179,-409177138,-1670132167,1892563431,537052003,1838284,14731559,15862016,13000800,8392243,-969899827,415479905,805381728,38567945,-1728048288,207881222,103977089,-2124324840,-864022133,20144134,468061336,-2034233320,-1004523516,-1016869864,-1010580541,941153475,-600229832,-523337501,507279600,-415425521,-270747277,12117879,258342924,-1677236466,819468294,204669696,52825602,522061374,-518058496,271803328,12783494,1055928624,-1015087080,204550,808608154,405863448,-2130638852,1695549057,1073945736,1598256,-422838272,1713786412,1127428967,-1936182477,-1053137978,-1001599848,-1070495527,1929394272,-835065956,971480179,-409177138,-1670132167,1892563431,599943014,3342591,1734552364,1707000,8649987,9176627,-1238255923,-664400797]},{"sector":9,"data":[402801600,75939856,528556336,259784710,104788097,-513581032,-863989367,20144134,602279064,-2034233320,1746939908,1724304664,1717986918,1277978214,-867414964,835159905,591825944,1666096145,1724684337,1061670,100598028,-929510272,-33482746,204702479,54461196,53677107,14336,828818288,3345663,848310576,-1017103336,8591622,807035276,405848088,-2118057786,874513281,-2147407920,1598304,-969146368,1719584352,-483183770,-1944505549,1898996678,1754121880,1616957552,1929404512,-835065956,971480179,-409177138,-1670132167,1892563431,-536640666,3345456,-1058666196,15919899,15622400,25166387,1048255463,-104064522,-58196096,268427583,-104628232,207880198,103977089,-2124324840,-863972984,20144134,-1008333672,-2034233320,807415812,-513700833,-505290271,-60752159,-855835396,862358625,1673956377,1675009073,1674352689,10498374,365690880,1880660353,805312518,202506752,839267089,104008755,-518058496,-499317824,-2043573247,813850928,-1017112564,147003446,403595648,806928432,-2134828861,952107458,-2139012112,1597890,-993263616,1667288676,858993638,-2011614413,422592504,948422553,1623224536,1929404512,-835065956,971480179,-409177138,-1670132167,1892563431,280232807,920624,1610860583,1706752,0,8405555,101070336,421015564,113770649,-1878969792,409239564,-1939862493,1177584145,-2090770408,-2034143224,-2090782708,115546124,56696844]},{"sector":10,"data":[809506824,1717963800,1717986918,-1067163546,-859782976,862358625,1657047057,1743002673,-506685133,14729415,533463052,-602993149,805310466,504116832,470162495,471731230,125829939,125878528,2025905923,2029945727,-403574781,-101237352,126284736,-1056448319,-1073506335,411041916,-1044127391,9986558,2020999168,1883010616,-1682752665,-258163781,-264764480,822535118,1626874268,1929404512,-835065956,971480179,-409177138,-1670132167,1892563431,14730851,2296952,14684944,263168,64515,8438332,101482511,405814296,268206579,-133988384,1073659935,-1610616608,-813695245,-51122116,20852764,2088767472,-119218173,20889607,2021658608,-1279058628,-1280068685,2016984243,-294094728,969394033,1014558944,997727518,1894239901,4194438,67108864,0,8193,1568,0,0,1,8126464,0,0,0,0,0,1879048192,0,0,0,28864768,254,50331648,6291584,0,2016,0,805355521,49248,0,0,0,0,0,2,4063232,57359,16253696,0,939524144,0,0,0,0,0,57344,0,0,0,0,0,0,0,0,0,3670016,0,0,0,0,117440512,8389383]},{"sector":11,"data":[544435540,7236946,0,0,-268431376,267386895,1044480,-268431376,267386895,61440,-66911392,116391936,50334726,-872414980,1056964608,117440704,254,74842880,196736,805502976,254861327,-984863,268431375,-149946384,-411042591,-18382850,1073529663,125828291,-268431476,267386895,24113152,-125755400,1894809631,1665103879,-161267722,1006003007,-1019216669,-54312964,1073529663,-954204989,-54313058,1073529663,-1052774208,-287236370,811655198,24576,0,6,196608,192,12,0,0,0,0,-1073741824,0,0,0,0,0,0,0,16777216,156,0,0,-268435456,15728640,65295,0,0,63489,16128,0,7340032,14,0,117440512,939524288,12583174,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100663296,63495,0,0,0,0,201328128,917696,0,8306688,192,0,0,28672,0,0,0,0,0,0,0,0,0,0,0,57344,0,0,0,0,0,6291456]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[7952973,3,32,65535,490209280,0,64,0,0,0,0,0,0,0,0,1024]},{"sector":3,"data":[1409299944,544434536,1735357040,544039282,1970365810,1936028265,1667845408,1869836146,1461744742,1868852841,168653687,-1273033180,-1205744375,567102465,15919962]},{"sector":4,"data":[279886,131233,189692143,32772,0,0,0,0,4194350,9961536,10551457,1187,589824,0,0,0,-2147024892,1,5111808,5242911,80,-2146959360,4,7143424,-265289426,32769,26935296,-265289407,32770,47972352,-265289238,32771,80084992,-265289246,32772,0,1313818119,1380533332,1297043973,20033,704643072,1414418246,542328146,1414418243,1330990665,1129534293,1313426497,540680263,1634561874,1395138670,589329509,10545,1918979328,776216683,2036421664,7499628,65540,315883776,1126694912,1866670121,1769109872,544499815,1919117645,1718580079,959520884,13624,0,0,0,0,0,0,0,65536,131108,1638403,131076,-1879048192,65281,319881248,536879360,24190,0,128256,0,1867644928,7233901,16777218,5121,539575080,2037411651,1751607666,1766662260,1936683619,544499311,892877105,0,0,0,0,0,0,0,0,2359297,196610,262169,65538,-16674816,2097152,553653009,1585324032,0,-184549376,1,0,1634561874,196718,513212672,1126694912,1866670121,1769109872,544499815,1919117645,1718580079,959520884,13624]},{"sector":5,"data":[0,0,0,0,0,0,65536,131108,1638403,131076,-1140850688,65282,319881248,536879616,24190,0,128256,0,1867644928,7233901,16777220,7703,539575080,2037411651,1751607666,1766662260,1936683619,544499311,892877105,0,0,0,0,0,0,0,0,2359297,196610,262169,65538,-16598016,2097152,587207697,1585324032,0,-184549376,1,0,1634561874,1632436334,1142975346,315883776,1126694912,1866670121,1769109872,544499815,1919117645,1718580079,959520884,13624,0,0,0,0,0,0,0,65536,131108,1638403,131076,-1879048192,65281,319881248,536879360,24190,0,128256,0,130048,268435456,167772160,268442368,352333568,335561472,402690816,419483648,167849728,234962432,234972160,268536320,436312320,167879424,436318720,167884544,369213952,335660800,335680512,335685376,335707392,335730432,335736064,335754752,335778560,335793152,335823872,168075520,168081152,402968832,436525056,402973184,302311680,453322240,335909376,369471488,352715776,369508864,352745984,335978496,386318848,403115264,185022976,252136960,369586944,302489600,419936256,386394624]},{"sector":6,"data":[369626368,369648128,369661696,369693184,336160000,319399680,403292928,336194816,403310080,336211456,352997632,336229120,235572992,235578112,235579392,369802240,707072,168479232,336255232,353051392,319512576,353080832,319543296,218895104,319568640,369929472,185392640,185400576,353184512,185423872,554527744,369998336,336456448,353251328,336491008,286174976,286185472,252646912,370094848,302998528,403668224,336569600,319801344,303034112,235932416,135288832,235953408,403745280,1103872,1836012032,28257,-16513664,17563906,-2130771980,100663808,-16056192,16843009,-2130706433,134153220,-17235328,-116817913,41945087,-2146959623,486081547,-102494848,-268795876,-243269618,-2147480058,486539272,14877824,-368803811,16843263,-16711935,-131330,33358076,33555198,16843265,33947906,33685762,49803904,100729346,16843266,131329,-50135548,-50267135,16711423,33489407,-2147352831,367920149,48956800,-16646142,-33423870,16711168,50201086,33555199,50397953,50266880,251429119,50266622,33686016,-16646142,-33489407,16711422,-15985280,16843009,-65281,-16711681,-33358079,-33292795,-50201086,-768,33358078,50071294,16646654,-16842754,-16646401,16908290,84083203,50463239,16777473,-2130771713,-130319,-50266369,-33358335,33161344,34277378,-2147417598,-63995]},{"sector":7,"data":[16908033,50266624,192938495,-33358336,-16450045,17039365,33817093,-2147352061,83813118,100598783,83952640,67240705,33555328,33751554,327940,-33161468,-33292796,-503152638,50398210,67110145,67044863,142607614,-2146697212,101382139,-151388032,118325254,-142601728,-2147478793,-59131,16908033,50266624,75497983,-2147479024,33494789,-16711423,343998463,-2145325568,33358857,100598782,83952384,16974594,-16580606,-83755774,-67109632,-131586,8388862,-16646656,-16580863,16973829,16908549,-2147417599,-16646142,-33423615,-50267391,-16778241,-65537,34080384,16581631,-318799851,-58715136,-2147481344,16844804,-65025,-33423616,-16515327,16973828,33620225,50266624,50004733,50201086,50332671,48957824,16843009,-16646142,-66913022,133922818,196353,197125,-16646398,83948928,16778243,16646655,134512894,33489153,-16711681,-16646655,327427,33620227,50266880,16581117,49742720,131329,-33358077,32769,33685762,50332161,33489663,16515581,-3,-16711937,16908033,192938495,197114,-16580861,-2147353087,318768652,15401344,-352288747,1052661,117897088,67469312,8391422,66978304,50332671,16908801,-16646141,-50135549,-50266879,-1,33489150,-16711169,-167280639,33685762,33555201,50201599,-92274178,-2147480853,328182]},{"sector":8,"data":[260112133,16908039,16711937,-16842753,-50266625,-16581119,327426,33751302,33620738,50266880,16581118,-16908289,-514,-33424128,-2147221758,33485318,50266878,100664575,33686273,41943298,50266624,16581118,-16908289,-2130706690,100664323,33423488,50201342,33752320,33489152,49512702,196354,75497989,-16580355,-16385021,261890,-251232251,50267643,83887103,-50067328,196353,50462979,50332673,16646655,-33619971,-2147418881,33423360,50332415,16908801,33555584,16646655,-16842755,167543039,33489405,67109631,16843265,262403,-16646397,-67043839,-257,-58654723,-16646656,196353,16908548,-2147417599,-16646140,-33423615,-16778240,-65537,-16052096,-50135549,-50266367,-65793,33489149,66978557,50332415,16908801,-16383997,-33358076,-50201342,-512,33489150,-16711169,-83591167,-16842754,-16712193,-33358591,42008322,33620480,196866,-16449786,-33358334,184909825,16843263,-255,-15990656,16843009,-2130706433,33491717,-16711423,8454143,33554190,66047,-16580862,118784001,152046064,302843008,116293632,75497490,-267841529,134512649,33489153,-16711681,-16646655,261890,16843011,33554945,33489663,50332412,49414528,16843009,-16646142,-2147287550,33491454,-16711423,310444031,-16842996,-33489409,-16646399]},{"sector":9,"data":[16973827,50397698,33489408,-117735170,67044094,33620736,125829377,589813,33620482,33423872,-130819,-16842755,-33554690,-50266625,-33423871,-16580862,16973827,33685763,50397698,50332417,33489663,-201424641,33556735,176161025,-2146043644,352840455,116324736,-84574190,-209715191,-2147482106,393222,263552,-352223211,-58714880,50334955,16843009,-16646142,-50200830,-167739391,16843010,33554945,33489663,-125828610,50333696,16843009,-16580606,-50200830,-2147421183,16971020,33620225,50266880,33423871,17240448,-393213,-33620477,-50266369,-16581119,261890,16974085,50463234,50332161,33424127,-252149506,50201086,67044095,50398464,33686017,92274946,-2146107388,352381697,183237760,33620736,16908546,-16449533,-33358077,-167641854,-351633408,33685762,50397697,67044608,50201343,92275198,-2146107388,352381697,15795840,-218726392,100663312,-176096513,-2147482102,1051638,117438976,263552,-352223211,109057280,-2146959119,1110774,-83950080,101381504,200704000,293601287,196871,-33292294,-16777730,-33424128,-16580862,17104899,33685763,33620738,50266880,-285638402,50201086,67044095,50398464,33686017,125829378,-2146959112,134281217,133758080,67469312,25171200,-2146107157,352381708,15401344,-336625643,109051911,-2147481856,789232,118222976]},{"sector":10,"data":[425984,92274695,-2146107388,352381697,132906112,368672768,176160775,-15663100,-33423869,-512,33423614,-16711169,-284786687,67047680,-8388097,-2147481621,352322565,15401344,-351436779,92278259,-2146694916,201913591,132903040,425984,-310378490,-2147481835,393222,263552,-352223211,-58714880,-2147481621,988665,117438976,263552,-352223211,-109047290,-2146105362,368700167,15402880,-352223211,-293595904,-2147482389,262157,102099840,557056,92274695,-2146107388,319613697,217052288,-352288749,-260041472,-2147482389,393225,102100352,67796992,50201085,83821311,67175168,33686017,131331,-33358077,-66978303,-50332416,-16843009,16711677,-33554304,-16581119,327426,17039619,33686018,163841,-33358078,-66978303,-50332416,-16843009,92340222,-2146107388,352381697,216792192,16843520,131329,-16580861,-134087423,-183992320,16843010,50332161,33489663,-192937474,-2147481846,33358858,50266878,50332927,33620993,16974338,-16580606,-33423870,-50267135,-16777985,-131330,8388862,-33423872,-16580862,16973828,33685764,-2147417598,-16646142,-33423870,-50267135,-16777985,-65794,1309568,50201087,33554943,16908545,33620231,16646400,-67403521,33620993,65793,92339969,-2146107388,352381697,216792192,16843520,131329,-16580862,-134087423,-167215104]},{"sector":11,"data":[16843010,33554945,33489663,-192937474,-2147481845,16971010,117637377,65793,-108986623,33686008,33620231,16646400,118522111,100728065,-16843265,16646141,50201085,33620480,16908545,16908806,-226491902,33686263,33687041,16843009,-33292286,-50201342,-16777984,16646142,-2130902778,352322569,15401344,-335970283,-100661505,100663311,-159319297,-2147481835,251659269,33686273,131331,-33358077,-251593471,62336,33751311,-2147417598,519159,100665216,67338240,-92269305,-2146302229,368700935,116127616,425984,75497478,-2146106364,268692477,-51379072,-352026603,-41937660,-2146434069,368898052,132903296,622592,58720262,-2146104060,353233908,-219479936,-335642603,109051910,-2147482112,398830,100664960,67338240,167774983,132905600,-2146828277,200928007,116782720,491520,-209715194,-2147481835,368247824,-202699136,-352288747,-100661505,-226492402,3605,-2147024902,536870916,14680448,-520126432,-109051897,-2147481824,403571712,2432,-536772576,-109043712,-2147481632,467193,135398272,-2147153669,-66584336,109052936,-16646396,16908290,-65279,218464511,16711936,-16646400,327426,16843010,117441025,16843265,16055680,33685769,-2147483391,33552124,33358330,33555199,16974337,-16646141,-108986878,-16646405,16908290,-2147417598,352322565,15401344,-184516587,-16581118]},{"sector":12,"data":[16973826,50397698,67043840,33358590,-130818,109117182,33620725,196866,-33292542,-2147353086,322550,-15855744,16843009,-16842497,-33554690,-33424128,261890,33751298,33620738,50266880,-168197890,50201086,33555455,33686273,260047106,-2146107388,352381697,-17432704,-16777474,-33424128,261890,33751298,33620738,50266624,-168132354,50201086,33555455,33686273,58720514,-2147482389,267775,202441856,-131072,-16777218,-50266625,-16581119,16908291,50463235,50332161,-2130836737,-50267137,-75432193,-33423617,261890,33751298,-2147417598,33490186,-16711423,-256,33423614,301990655,-1375360,196353,-218333166,-125829112,-2147481842,33426184,50266623,33620480,16908545,-16646142,-33423615,-16777728,-65537,-25165570,196353,-2147352316,-33488890,-16778240,16843136,16712447,-2147418623,33490935,16777983,16974337,16973829,-209714943,50397691,50332929,131329,-50135295,-50267647,16711679,66978303,67469567,25171200,-2146107157,-33360640,196355,33620227,-58717440,16843506,-2146762750,322546,118881408,294912,92274695,16908036,-65279,117473535,25169408,-2146565902,324348,118422656,67534848,16843263,-255,459136,-33358062,-16712191,33489151,-16711169,-335249407,50270720,-8388097,-2147482389,352322565,15401344]},{"sector":13,"data":[-234192875,92277494,-2146957572,134674681,82571904,117932032,-276824058,-2147481842,393220,263552,-352223211,-58714880,-2147482389,464380,722304,-234782706,8392192,66978549,50332415,131329,-218333173,33620226,25168640,66978549,50332415,131329,-218333173,33620226,-411038976,-2147482382,462588,117441664,294912,92274695,-2146566133,234942977,49610880,50267134,16843520,-2146762750,16970492,184549889,83030656,251428864,75497479,-2147481856,33360649,67044094,50397696,16974338,-16580606,-50201086,-33554944,-131330,8388862,-33423872,261890,33751298,-2147417598,-16646142,-50201086,-33554944,-65794,722304,-352223211,8393984,50201326,50332415,16908801,-16646141,-50135549,-33489407,-2130772225,16971014,50397698,67043840,33424126,83031680,368869376,260046855,-2146107381,352381697,-17891456,-16777474,-33424128,261890,33751298,33620738,50266624,-168132354,50201086,33555455,33686273,58720514,-2147481849,234883845,15860096,-134184946,-33358591,261890,16777473,-65025,-192872703,-2147482369,462588,17632640,-16514818,-16777218,-33489665,130817,33620226,33686785,-2147417855,16906741,33882370,16843010,33489664,16515582,-2,67174143,92339713,17891332,33620483,33489408,-285638402,50401536,-92274431,-2147481358]},{"sector":14,"data":[184552197,16974337,-16580606,-159318526,17498357,-2147417598,234942983,15860096,-219054066,125829124,-2147482624,265983,101385088,-218398706,109054981,-2146501900,455416,100664448,184844288,-41939452,-2146761742,251458820,82969728,-218267634,75500291,-2146501387,520945,100665728,184844288,-159379957,-2146563086,250933760,116588160,294912,-260046842,-2147482098,393220,101385344,-218398706,109054981,-32572684,-33358332,-16711935,33489407,-318865407,75497478,-2147482112,250940174,-168686464,-234848242,-67107585,-192937972,3086,-2147155972,33423369,50266623,33620480,33620225,50201088,-917120,16908290,16843010,-16646142,67304450,131330,-16580862,196353,-2147352318,33747711,50266624,50266623,33620480,16908545,1152,360480,16843010,33554945,33489663,33555199,-8388094,131570,-16580862,196353,67240194,-16581630,16908290,16843010,-16646142,-234782718,33555198,16843265,33554945,33489663,58720766,33423379,50266877,67174912,33620483,33489408,49185022,-16581119,16908290,16909060,-16646142,-33489663,1802658125,539903008,1819894100,335610112,1126694912,1866670121,1769109872,544499815,1919117645,1718580079,959520884,13624,0,0,0,0,0,0,0,65536,131108,1638403,131076]},{"sector":15,"data":[-1879048191,65281,319881248,536879360,24190,0,128256,0,130048,268435456,167772160,268442368,352333568,335561472,402690816,419483648,134295296,234961152,234970880,268535040,436311040,167878144,436317440,167883264,369212672,335659520,335679232,335684096,335706112,335729152,335734784,335753472,335777280,335791872,335822592,168074240,168079872,235195392,436523776,235199744,302310400,453320960,335908096,403024640,352712448,386283776,386298112,369530624,369539328,436668672,218576384,302467584,386363648,336043520,453490176,419948544,369625856,386423808,369659136,403243520,386486016,352948992,420065024,336190720,436860416,369761792,352993536,369779456,235568896,235574016,235575296,369798144,702976,168475136,353028352,319492864,302732800,353076736,302765312,252446464,336349696,353147904,218944768,218957312,336413440,202211584,554541568,386794496,302926336,353273600,336516608,286200576,286213120,235895296,386898688,336584960,487592704,336617728,353415424,336658176,236009472,135365888,236030464,403822336,1180928,1836012032,28257,-16513664,17563906,-2130771980,100663808,-16056192,16843009,-2130706433,134153220,-17235328,-116817913,41945087,-2146959623,486081547,-102494848,-268795876,-243269618,-2147480058,486539272,14877824,-368803811,16843263]},{"sector":16,"data":[-16711935,-131330,33358076,33555198,16843265,33947906,33685762,49803904,100729346,16843266,131329,-50135548,-50267135,16711423,33489407,-2147352831,367920149,48956800,-16646142,-33423870,16711168,50201086,33555199,50397953,50266880,251429119,50266622,33686016,-16646142,-33489407,16711422,-15985280,16843009,-65281,-16711681,-33358079,-33292795,-50201086,-768,33358078,50071294,16646654,-16842754,-16646401,16908290,84083203,50463239,16777473,-2130771713,-130319,-50266369,-33358335,33161344,34277378,-2147417598,134153220,-17235328,753671,66978558,100599038,83952640,50463746,-25165310,-16449822,392963,17105156,-2147220989,33685507,67240706,67110145,83756543,50201598,48366208,16974084,-16515067,-33292539,67665924,-75494400,-2147087625,116849152,462208,-134774766,92274706,33554201,66047,-16580862,268730369,92274706,16908055,-65279,1343743,159391982,-33424124,392963,33882371,33620739,50266880,16450045,-17039363,-16777731,32768,33489406,100598527,83952384,16843265,41943298,33489408,33423871,-196357,-65541,-2130706689,-16644090,352386307,15531904,16547860,75497481,-16711416,16776961,33423871,83821567,16843520,131329,-50135294,-33359102,-16581119,-2147287037,16968457,33620225]},{"sector":17,"data":[50266624,50070269,17300352,83886847,33555202,-2130771457,50659573,-16711676,-33489407,17302656,-16646399,33489151,67043838,50332927,131329,-50135293,-2147418879,16971523,50332161,33424127,33554560,16908801,-16580606,-50200830,-50267135,-1,33489150,-16711169,-99909631,50332417,33489663,209715710,-2146238458,352381697,-169148288,-2147479537,460535,-33290880,32778,-16515582,16973827,50397698,67043840,33358590,-196355,-16777217,-16646400,33489153,49678208,16908801,-16646141,-33358333,-335904767,-159383542,83887361,118456575,16843263,-16711935,-65793,33358077,50266878,100664575,33686273,131331,-33358077,-16712447,-16843265,16777213,50201085,109052927,-33423630,-16580862,17170436,33686019,163841,-33358078,-16712447,-16843265,58785790,-2147090428,-33423872,196098,131845,-33423615,33747840,83886847,-50036734,67044096,50267644,83887103,-68090240,-16580859,-2147155965,33358856,50332415,16974337,-16580604,-50266623,-131329,8388860,-16646656,16973826,-2147417598,-16646140,-50266623,-65793,-49677184,-16646399,17039362,50397442,50332673,33489407,-261890,-33554434,16548095,33489406,67109631,16843265,75497730,33489408,16646655,-65540,-2130706689,67046160,33358590,-196353,-33554690,-50200832]}],[{"sector":1,"data":[-16515582,16973826,50397698,83822080,50201343,16581117,-16777218,-16646400,33489153,-17103744,-65793,33489149,50201341,164095,33685762,100664065,50267391,33424126,-16054912,16843009,-2130706433,33491968,-16711423,92340223,16908043,-65279,234914047,-16646145,33554689,33489663,-117437824,-2146433264,1182980,302444160,294912,284758023,17302656,-16646399,33489151,50266622,50332671,16843009,-16646142,-66978046,-2147287038,16970241,33620225,50266624,-25165058,16908041,-65279,202539263,-65793,33423613,67043839,33620736,196866,-33423614,-17237120,261890,16908547,-184057855,33556735,131330,-50201086,-33554944,-16843009,-131074,33358077,50201086,67044095,50397952,33686017,16974082,-16580605,-16646398,-786816,16908296,67993601,226498035,-2146106901,318893566,167442304,116490240,109051910,-2147482112,368706569,-85260416,-352157675,16973835,33554945,33489919,25166333,16843510,-16646142,-33423613,16220161,16908297,33554945,50201599,15991292,32837760,131329,-33292542,-2147353342,67090,117440001,-16777728,-65537,33358077,66978558,83821567,50397952,16974081,-16646141,-33423870,-17761152,-33358335,-16515325,16973828,33620227,67731457,125834746,-2146043157,649986,16843011,67109633,83756287]},{"sector":2,"data":[33424126,16187900,48959360,16843009,-16515069,-33227260,-50201086,67731457,125834746,-2146043157,150925578,267582080,458496,183730426,-209715194,33558283,-2147090949,368706569,-85260416,-250970091,-92272386,-16773134,-2131099642,396019,118223744,101875712,-33488895,-33552641,-257,16646142,50201085,67044350,50332927,16843521,131331,-33358077,-75432958,-33423630,-16515582,327427,16974083,-2147417599,-16646142,-66912766,117505408,67731456,125834746,-2146043157,368765714,-85260416,-336232427,109051911,-2147481856,789229,118222208,425984,159383559,-2146043388,368765703,132842112,368279552,260046855,-15598844,-33423614,-33489407,16711679,33489406,-2147352831,301723404,50201343,132842880,67731456,125834746,-2146043157,233827091,83625856,-184844276,-159380476,-2147481621,393222,118876032,425984,159383558,-2146043388,368765703,132842112,368279552,-100532209,159385341,-2146043388,352447238,32178304,-317947885,226498035,-2146043157,368765703,82572416,884736,-444596220,-2147482091,458760,-100398720,-351895531,-109047289,-2146301967,368765702,65795712,688128,-411041786,-2147482091,33358860,66978558,83821567,50397952,16908545,-16580605,-50135550,-66978559,-33555200,-65537,8388861,-33423872,-16515582,327427,33751299,229378,-33358078,-50201342]},{"sector":3,"data":[-50267135,-16843265,-100398720,-351829995,41948666,50334955,131329,-33292542,-134087678,-183795712,33620226,67043840,33358590,118157696,67928064,50201085,67044350,50332927,16843521,196866,-33358077,-50201342,-50267135,-513,16646142,-33554304,-33358335,-16515325,16973828,-2147352061,-16646141,-50135550,-66978559,-33555200,-159318274,33488915,33489662,16843264,17235970,16777729,-2130771714,100793340,65793,159448833,-2146043388,368765703,199950976,16843520,-16646142,-50200829,-2147420415,16971274,33554945,33489919,-58719746,16843264,17301761,16777729,-2130771714,117635835,65793,-327090431,-2147481854,67091,117440001,-16777728,-131073,33358076,33555198,16843265,33686535,49804672,17041154,131329,-16580861,-66978559,-768,16711679,17235966,-2147483138,368706573,-85260416,-335577067,-100530435,117374991,-259982848,-2147481835,201131016,50332927,16974337,-16580604,-50201086,-209653500,-15991552,16973828,-2147417598,519165,100665216,67534848,8393985,-2146237973,368307468,116129152,425984,142606342,-2146042364,335473411,-152237696,-351633387,58725886,-2146173205,368504073,132904832,622592,125829126,-2146105596,352840698,-320141696,-352026603,109051910,-2147482112,398824,100664960,67534848,201132548,82509952,-2146697974,183954189]},{"sector":4,"data":[116849024,491520,-310378490,-2147481835,367854612,-303360896,-351895531,-100530435,-327155698,33558037,-2147025414,536870916,14680448,-520126432,-109051897,-2147481824,403571712,2432,-536772576,-109043712,-2147481632,467193,135398272,-2147153669,-66584336,109052936,-16646396,16908290,-65279,185630975,83822590,16843264,-33423357,-41878015,-16253194,16908292,-100696063,-33555200,16711678,66978301,50332671,16843265,131330,-50135294,-75432703,-33423623,261891,-2147352316,234619912,50397952,58720513,-2146566932,-50266112,-16581118,16908290,33620225,67044096,33358846,-130818,-67043841,33229184,-16515070,-33292797,-335839231,243269636,16842766,-65536,-33554690,-33424128,261891,16908547,33620481,50266880,-151289603,66978302,67109887,310379009,-15795196,16908292,33555201,-2130836994,251457535,33555711,-8388351,-196359,-16777475,-33424128,261891,16908547,33620481,50266624,-2130902531,33487355,67044350,33620992,82578048,335839232,-16515324,-33423869,-65793,33358077,67044350,33620736,16908545,-16580606,-75432446,-33423627,261891,-2147352316,33490191,-16711423,-256,33423614,50266623,251462655,50267391,-18544000,-16580862,-16122364,-16515324,-33423614,-16712191,33489151,-16711169,-335183871,293601290,-15795189,-50070013]},{"sector":5,"data":[-33489663,16777215,33489407,-2147352831,251456782,66978815,125829630,-196366,-16777475,-33424128,261891,16908547,33620481,50266624,-2130902531,33487355,67044350,33620992,-100398976,-351829995,41948666,50070265,50266878,16843264,-33423359,16973830,-218202111,33554946,50333438,196865,-33423870,82833792,67731456,16843263,-255,17561728,66978558,65792,458243,-2147417853,16904959,117310208,16843520,-33423357,176225793,16908036,-65279,200835327,-33358335,16842755,184353536,50267135,33423871,-65282,-16646400,33489153,32245888,-50135039,-16515318,-2147287550,368706568,-85260416,-217219051,16843263,-16711935,16777215,83624446,16646654,33555072,17170945,-117735423,100794625,131329,-50135294,82834560,67665920,83824380,16843264,-33423357,-8323583,-15794961,16908292,-352288767,25165828,50200847,16778238,-16646143,-2146959868,16904705,83821056,58722302,50070265,50266878,16843264,-50200575,-234848246,33554946,58723069,50070265,50266878,16843264,-33423359,16973830,-218202111,33554946,50333438,196865,-33423870,17760640,66978558,65792,-33227006,-234782713,33554689,134087935,49873792,50201340,33555199,65793,458242,-2147417853,33747710,117309952,16843520,-33423357,159448577,-33424117,261891]},{"sector":6,"data":[16908547,33620481,50266880,16581117,-65539,-16777473,32768,66978302,67109887,75497985,50266625,16581117,-2130771972,-33485055,261634,33554689,251397375,32179072,-16646143,-2146501628,-50204155,-16581374,16908290,33620225,67044096,33358846,-130818,-50266625,33163648,-16515070,-33292797,133398529,276824071,-2146043381,368765703,15860608,-16908291,-50266369,-16515583,16973827,33620226,33554945,33358591,-100957955,66978302,67109887,41943553,-2147481848,-33485055,261634,33554689,134087935,32637312,-16646143,-2146959868,-66914045,-16581118,16842754,33489152,-16646145,855680,257,-33554433,-50266625,130817,117506306,-2147417852,16906743,16843783,33489664,16581117,-3,130816,159383808,-15795196,16908292,33555201,-2130836994,251457535,33555711,-41942783,-2147481102,-33485055,261634,50331905,33556222,-25165310,66034,458243,33620226,33554945,50201343,-117276420,83822590,16843264,-33423357,-41878015,-16253194,16908292,251756545,-33358335,16842755,117310208,33686016,32702080,-33357823,16908294,16843265,50266880,33358590,-261892,-2147352320,-33485055,261634,50331905,33556222,-25165310,66034,458243,33620226,33554945,33424127,-150830850,50334206,16908545,-16646142,-33423870,-83821567]},{"sector":7,"data":[33620223,-16844672,33751049,251887618,-16581374,33619971,-25165056,131579,-16449789,-33358334,-16711935,33489151,-16711169,-66682879,33620736,-16646141,8453378,16908279,16711937,-1,-33423872,-16580862,16973828,251756546,-33358335,16842755,117310208,33686016,32702080,-33357823,16908294,33620481,50266624,-2130967810,251459843,66978815,16581117,-2,-16646400,33489153,-51573120,-33292530,-2147353085,50268945,116916990,50266878,32899456,66978558,-2147351552,-16645897,17039363,-192937982,67109386,33555201,16220415,197124,-33423870,-33552000,-16646399,16908290,16843010,-33423358,-234782718,33555199,16843265,33554945,50070271,33620484,50266624,50266623,33620480,49479552,-16646142,-16646398,16908290,33620226,294913,92282880,16843264,131329,-16580862,196353,-2147352062,33682175,50266624,50266623,33620480,50070020,33555199,16843265,33554945,25166591,196338,16908546,131329,-16580862,-2147353087,-33549565,-16581375,16908290,16909060,-16646142,-293536255,50200834,33555199,33752065,33554945,16581119,1918979582,776216683,2036421664,7499628,513212672,1126694912,1866670121,1769109872,544499815,1919117645,1718580079,959520884,13624]},{"sector":8,"data":[65536,131108,1638403,131076,-1140850688,65282,319881248,536879616,24190,0,128256,0,130048,268435456,184549376,302005760,352347136,335575040,402711296,436281344,184658944,235001856,235014912,268582400,419595008,184721152,419613440,184736000,386070272,335742208,335766528,335778560,335808512,335845376,335857408,335883776,335917568,335937792,335975680,185014528,185029888,403152640,419931648,403161600,319277312,453520128,336107264,369677056,352935424,369730816,352981760,336240384,386602240,403407616,202115584,269241088,369925120,302845696,437085696,403558144,370020352,370046720,370073088,370110464,336592384,336614144,403747328,336658688,403782144,336697088,370274560,336740864,236095232,236100352,236101632,370324480,1229312,185778688,336784896,353588224,320055808,353626880,320096512,236230144,320134400,387286272,202765568,219561472,370575360,202829312,571941376,387436032,337133056,353932544,337182720,286876416,286895616,253361920,387589888,303723264,404399872,337310464,320553728,303794432,236703232,136059648,236724224,404516096,1874688,1836012032,28257,-16513664,16908289,-184516600,69120,32702336,-2146566144,16904704,150929920,-16253056,16842753,16777473,-65281,-2147418113,16777472,-16777215,92274943,130820]},{"sector":9,"data":[-100564986,25167615,-33488391,-116752378,100663807,-392832,-117342202,117309697,-117437568,-535986144,-92266247,-2147479827,919281,2176,-486244323,75504896,-65300,33685504,-131072,-33554434,-50266881,196097,50462979,33687042,131329,-2147287293,33682165,33947906,33620226,-789120,16908290,100729346,16909058,-16580606,-50200830,-50267135,-1,50200830,-16646144,-2130771968,367920149,48956800,-16646142,-33423870,16711168,50201086,33555199,50397953,50266880,251429119,50266622,33686016,-16646142,-33489407,16711422,857728,65535,514,-2,-16646400,-33161726,-33358333,-33489919,16711679,117309949,33424124,-130818,-16777474,196353,33751299,50660355,33620483,16646400,49250559,-50266369,-16646655,33228416,33587452,-58655489,-2147156224,50463489,50529540,-176160510,-511,33358078,-2130967298,67238653,84149251,16909059,-16711679,-16382080,-16711935,33489151,16777727,-16580607,-2147353086,16841217,-16777215,25166079,-2147417854,83885568,-33551744,-33292798,392964,33882372,33751556,-419659774,83821567,67175936,41943809,-16580632,458499,17170694,-2147352317,33685508,67240706,67110145,83756543,50201598,31851648,262403,-16449786,-385974269,50397697,100664833,67045119,142607103,33685252]},{"sector":10,"data":[-2147352822,201389056,32768128,17497601,-134512639,101187585,-159383551,-2147087622,16841462,16778250,-393088,-16320512,-99975168,176162550,-167706374,-2147418108,285214476,-8388607,495,-134774767,16777233,16772992,-2147479295,33495047,-65281,-16646400,16842753,50266880,25166334,16843002,-65536,33652736,8388865,-2147155970,1117956,-276823808,285278463,369459200,16777727,65793,-16711935,16777215,65664,257,-2147418113,552468500,293601281,-301989408,67731488,66978301,50333183,50464001,131331,-50135293,-50267391,-33620993,16711677,-16581248,327426,17039621,557058,-66978303,-50332928,-75432193,-16646402,392962,17105157,-2147417598,-16646142,-83755519,-67110144,-65793,395648,-318668781,25170432,-2146107156,66972416,-8388098,-2147481071,33488890,-130432,-33325054,-8388095,-2147417345,16779268,-16777215,8388863,16777727,-16711679,-16711935,33489151,67043838,50332927,16843009,-16646142,-83690238,-33423870,261890,-317947901,33554945,-41942273,16843512,-16646141,-66912766,133922818,196353,262405,-176095486,67241216,-2130771712,50724854,-16711676,-33489407,525440,257,-2147418113,130816,16777473,16712191,-16711681,-16646655,327427,33620227,50266880,41943549,131576,-2147287293,16972029]},{"sector":11,"data":[50332161,33424127,50396800,33620480,131330,-16580861,-66978559,-768,16711679,33489407,65792,-16646399,-99909632,50332161,-58719489,16843510,196865,-33292541,-67600383,65792,16776960,461696,-318668782,25170432,-2146107156,267774720,-159383536,-2147481594,33488891,-130432,-33325054,-8388095,-2147417345,184419333,-16515582,16973827,50397698,67043840,33358590,-196355,-16777217,-16646400,16842753,33489152,192938239,131576,-2147287292,16971260,50397441,67044352,33423871,16513408,257,-2147418113,716801,134346368,33062912,-16515068,243334914,16842759,-65536,-16678912,33489151,16843008,-16711679,-16777472,16646142,50201085,83821311,50398720,16974338,-16580606,-50201086,-33554688,-131330,33423614,50266623,-589440,327426,16974086,-16154623,-50266623,-75432193,-16646411,-16580863,17235972,33685763,163841,-16646398,-50266879,-513,58785790,-2147090428,50395662,100402175,83821311,25166848,-16580617,-2147221501,100397319,67044350,132096,32504192,50201342,33752320,33489152,49578238,196353,-109051646,50266370,83886847,67665921,50266621,33620736,262403,-33423613,-16777984,16580605,-16646528,16973826,557058,-50266623,-92209409,-16646145,16973826,-2147417854,-16711676,-50266623]},{"sector":12,"data":[-257,-49677184,-16646399,17039362,50397442,50332673,33489407,-261890,-33554434,49905919,67109631,176161281,16646400,-2130771972,33488633,67109887,16909057,33555584,16581119,-16908292,352682239,65792,16776960,-521600,-33423614,-50266623,-65793,33489149,66978557,50332415,16908801,-16383997,-33358076,-50201342,-512,33489150,16777727,-16711679,-2147418367,-16779520,-33424128,33491328,196865,-16449786,-67403774,-2,-50266625,-16646911,42008322,16843264,196866,-16449785,-33423614,184909825,16777727,65793,-16711935,16777215,65664,257,-2147418113,33491456,16843008,-16711679,-256,8388863,16842753,-65536,184909824,16777727,65793,-16711935,16777215,65664,257,-2147418113,33491970,-65281,-16646400,16842753,50266880,25166334,16843002,-65536,33652736,8388865,-2147155970,166725396,75499792,4363,-1081343,1114368,285732736,-2147418112,16842735,75497489,-267841529,151289865,130816,16646656,-33423872,-16580863,16973828,33620225,50266624,50070015,32965760,-16515071,-117604351,33620226,50267136,-41942529,16973825,-196608,117473280,16777727,65793,-16711935,16777215,65664,257,-2147418113,-16839662,16646142,33489406,50332671,16908801,-16646141]},{"sector":13,"data":[-75432447,-16580872,16973827,-2147417854,150992135,16908800,-33423358,-33489663,-16777729,-65794,16646141,33423869,50266878,50332671,33620737,16908802,196867,-16580861,-25100543,589811,-2147417854,351863818,116328064,-285507566,-92270074,-2146105365,654068,101118848,360448,-260046841,-2147352577,16973569,-16840064,-33390591,41943807,-2147351810,352322565,15466880,-335445997,-75492096,50334955,16843009,-16646142,-50200830,-133988351,33554945,-41942273,16843512,-16515070,-2147353086,459001,16843011,50332161,33489663,15991293,32968576,-16580606,-134381566,33620226,50267392,-176160258,-2147417365,33685503,-130176,-33390590,-25165314,-2147353069,50331138,33424256,-32766,293601538,16580871,-16908538,-33554690,-33424128,-16580862,17104899,33685763,50397954,50266624,-2130836994,50328564,83887103,33620737,-17955712,-16515583,17104900,33751556,67469313,25171200,-2146238228,352381953,183237504,33620736,16908546,-16449533,-33358077,-167641854,-301039616,50397697,67044608,-58719489,33620718,262403,-33227003,-2147353085,16968695,33554304,-33325054,41943807,-2147352834,33428478,-130432,-33325054,-8388095,-2147417345,352322565,15466880,-335445997,-75492096,4331,83197958,8388614,-2146959108,1050613,-243205632,-2147417359,33685503]},{"sector":14,"data":[-130176,-33390590,109052414,-2147416577,33816573,50265728,-33587197,-75495935,17104640,-100630524,33686270,-50528128,-2147417087,33425912,-130432,-33325054,-8388095,-2147417345,-16449532,50462080,50233598,-8323838,-2131099389,352322565,15466880,-335445997,-75492096,4331,83197958,8388614,-2146959108,526325,49019264,-32767,58720769,-2147287042,33488386,100599424,-163839,-25165309,-2147286274,100793855,-16712832,-2147221244,50264576,8389122,67239165,167280641,41943550,-2147287042,33684995,50331520,118587393,100728065,-16843265,16646142,50201085,67044095,50398464,33686017,196867,196354,-134217471,-592768,261890,16974085,-301694974,66978302,83887359,50463745,125829378,-2147155719,100727551,-25165313,-2147481351,16908537,33554304,-33325054,41943807,-2147352834,352322565,15466880,-335445997,176166144,-2146107157,318827521,15466880,-336625643,75497480,-2147481600,658161,135000448,294912,-310378488,-2147417365,33685503,-130176,-33390590,142606846,-2147417345,33685503,-130176,-33390590,-226491906,-2147353069,50331138,33424256,-32766,142606594,-2147352833,50331138,33424256,-32766,92274946,-2146107388,318827521,15466880,-335839211,-125829112,-2147481579,16968697,33554304,-33325054,41943807,-2147352834,33428478,-130432,-33325054]},{"sector":15,"data":[-8388095,-2147417345,285213705,33489919,15467392,-2147221744,285273090,33358847,-130818,-33489153,130817,16777473,16712191,16646272,257,-2147418113,585731,33618304,-32767,58720769,-2147287042,33488386,263552,-335445995,25170688,-2146107156,200666123,134087552,-168132597,-109049081,-2146629389,584687,100664704,367886336,75497480,-2147481856,16968686,33554304,-33325054,41943807,-2147352834,16908042,-16842112,334725121,41943550,-2147287042,33684995,50331520,-32997375,41943806,-2147351554,352322565,15466880,-335445997,-75492096,-2147481365,988664,-226428416,-2147417359,33685503,-130176,-33390590,-25165314,-2147353069,50331138,33424256,-32766,58720514,-2130770688,-33357315,33750656,67076349,92338689,-2146172924,352840704,116128384,-285507566,109056518,-2146043410,352381703,15466880,-335445997,-310373120,-2147482133,327692,102099584,557056,-343932920,-2147417365,50331409,-16907648,334528513,41943550,-2147417345,33488652,-130432,-33325054,-8388095,-2147417345,335545349,250347648,-336363499,-176156148,-2146300690,335605504,99348352,622592,-327155706,-2147482091,16968699,50269312,-16613375,-226491906,-2147353069,16973570,-50066816,-16581119,327426,17039619,50463234,50332161,33424127,16515582,-196611,-33620226,-2147418369,50267132,83887103]},{"sector":16,"data":[33620737,16779904,16581118,-131077,-33914626,66978302,83887359,50463745,41943298,50266624,16515581,-16973829,-2130706691,352322565,15466880,-335445997,-75492096,50334955,16843009,-16580606,-50200830,-2147419903,33683210,50266880,49806720,131329,-33358075,183795713,-109051896,-2147417365,33685503,-130176,-33390590,-25165314,-2147353069,50331138,33424256,-32766,176161026,-33424124,-16580862,16973828,33685764,33620738,50266880,33423870,-196356,-16842756,-16777730,66879488,67044095,50398464,176161281,33423616,-327427,-2130771971,33488378,83821566,67175680,16909058,33555072,33358591,-327428,-16908548,318472447,-16581119,16908289,100729345,131585,-33489407,16841856,16843010,-100892672,16844034,-16711679,263552,-335445995,25170688,-2146107156,846843,16843011,33554945,33489663,16318973,33032832,-16646142,-117604350,33620226,50267136,-41942530,16843264,17170946,16777730,-2130837250,33620220,65793,33028736,17171201,16777473,65962239,-109051896,-2147417365,33685503,-130176,-33390590,-25165314,-2147353069,50331138,33424256,-32766,276824322,16580871,-16908538,-33554946,-33424128,16973826,100795138,16843266,-16580606,-218791934,16908801,16908806,-176160255,196595,33685762,50464257,131330,-16580861]},{"sector":17,"data":[-50201343,-16777984,16646142,-2130902778,100664322,16385920,-335445995,25170688,-2146107156,100723463,284881024,368345088,-176160760,-2147024917,67041794,-33750144,-33193982,192938491,-2147416577,33816573,50265728,-33587197,-142604799,-2147353074,50331138,33424256,-32766,92274946,17760260,50463235,50332161,33424127,-2131623683,251658483,8389121,17826030,33620227,-336101375,109051912,-2147482112,16908525,33554304,-33325054,41943807,-2147352834,16973578,-16842112,67338241,-92269305,1181419,-335839229,109056518,-2146108945,519159,100664704,15695872,41943554,-2147287042,33488386,50268800,-16678911,75497983,-2146106364,268692477,-25164544,-2146434069,285077507,75499007,-2146106133,268692477,-25164544,-2146434069,268300547,-243268097,-2147481365,131075,100664192,15433728,-25165565,-2147351809,50331138,-16907648,-15958015,41943298,-2147352833,353108995,216790400,-336232427,-8383220,-2146175764,519421,100664704,367951872,92274694,-2147481856,33811439,-130688,-33390590,159384062,-2147417345,33488642,-32246656,-16613375,159383810,-2147352833,50331138,66978176,67338242,167774983,132905600,-2146893813,185068794,109054464,-2146764052,521717,100665216,368214016,-209715192,-2147417365,33488643,50269056,-16613375,-125828610,-2147353069,50331138,33424256,-32766,293601538]}],[{"sector":1,"data":[61956,-99844090,226498036,-2146044693,368372493,234946176,-2131099648,117436915,-17169792,-50102269,92275453,-2147353602,-16444407,50462080,50233598,-8323838,-2131099389,536870916,14680448,-520126432,-109051897,-2147481824,403571712,2432,-536772576,-109043712,-2147481632,467193,135398272,-2147153669,-66584336,125830152,-16646652,16973826,16777473,-65281,-16711681,98305,65792,16776960,-262016,-33521660,92274945,33488910,-33423360,33423360,83821311,16843264,131329,16908551,-184778751,117441025,-58719743,16843251,17301506,16843522,-134512640,33227263,50266621,33620224,196867,-33423614,-132992,16842754,-116948990,33423868,16777983,16843265,263552,50266389,-302088192,-58715648,1517,-167739372,-16581119,16973826,50397698,67043840,33358590,-130818,159448831,131576,-2147287292,16971260,50397441,67044352,33423871,49018752,-32767,260047361,-65521,33685504,-16908288,-33554690,-33424128,261890,33751298,33620738,50266880,-118128386,67109631,75497985,-16646411,261889,16974084,-2147417599,352322574,-58720251,-2146238228,388348,-25160448,-16842763,-50266369,-16581119,16908291,50463235,33554945,-2130836993,50329847,33620992,-17496960,-16646399,17039363,33620227,-352092159,-8388350,-2147352065,33624322]},{"sector":2,"data":[50331520,285573121,-33554421,-257,16711677,50201085,33555455,33686273,131331,-33358077,16449408,-2130771969,50266615,33620992,16451968,-16842755,16679167,33489406,67109887,16843521,209715458,-65530,33685504,-131072,-33489409,-16646399,-2146435069,67104002,58724096,-16646164,-2146303998,652027,135198592,-294912,41943550,-2147287042,33684995,50331520,202342401,-16711423,16777215,33489406,-16843648,-16646399,16908290,33620226,33554945,33489407,-130818,-16777218,-2147418369,50266878,33620480,16778880,-130818,-17006338,50266623,33620992,41943297,33489152,-261890,-2130706434,33491195,16777983,16843265,262403,16843011,66909568,50332673,-51085311,16974081,16973829,16777729,33358591,-196358,-16711937,-16515583,-33095552,16711679,50201087,67469567,25171200,-2146238228,388348,8393984,33423862,67044095,16843264,196865,-184647671,134218497,32767360,196865,15892490,58720264,-2147481600,16968686,33554304,302022658,41943550,-2147287042,33684995,50331520,-16285695,41943550,-2147287042,33684995,50331520,67469313,131584,16711168,384,-32766,-25165822,-2146566138,201388801,99875968,-2146566144,524539,49478016,-32767,8389121,-2147353077,50331138,33424256,-32766,125829378,33685508]},{"sector":3,"data":[-16908288,98304,-8388096,-2147482881,285214462,33489919,15467392,-2147221745,388605,67047424,33423871,-65283,196096,16712192,58785536,-2147417363,33685503,263552,-335445995,-58715392,1516,-217481195,75500023,-2146957316,117897721,117045632,-218267641,-293601273,-2147481586,458755,49016704,-32767,159384065,-2147417595,33423107,-32705152,-33390591,58721023,-2147352066,16973823,-16906368,-33456126,92275204,-2146107388,318827521,99417216,-2146107392,524539,49019264,-32767,8389121,-2147353070,50331138,33424256,-32766,92274946,-2146566133,201388801,99875968,-2146566144,-33425920,-16580863,16908291,50397441,-25163520,197108,-201490424,50397441,41945600,33423862,67044095,16843264,196865,-184647671,134218497,32767360,196865,15171594,58720264,-2147481600,524291,49472384,-32767,8389121,-2147353077,50331138,33424256,-32766,125829378,-2147352833,50331138,33424256,-32766,125829378,-2147352833,50331138,33424256,-32766,92274946,-2146566133,201388801,99875968,-2146566144,-33425920,-16580863,16908291,50397441,-25163520,197108,-201490424,50397441,-226489856,-2147481600,524291,49475200,-32767,8389121,-2147353077,50331138,33424256,-32766,125829378,-2147352833,50331138,33424256,-32766,159383810,-33424117]},{"sector":4,"data":[261890,33751298,33620738,50266880,16581118,-16908290,-16777730,66879488,67109631,176161281,16646400,-2130771972,33488378,67043839,50398208,16908545,33555072,33489407,-261891,-16777219,184910079,25171200,-2146238228,388348,8393984,50201070,50332415,16908801,-16646141,-50135549,-33489407,-2130771969,33683465,50267136,49675392,16843009,-16515069,-33423613,133595137,-109051896,-2147417365,33685503,-32374656,-33390591,58721023,-2147352066,16973823,790144,-318668780,-25161216,16777965,-2146107137,-16781570,16711678,50201085,33555455,33686273,131331,-33423614,-460928,17039362,-184254462,33489406,67109887,16843521,41943298,-2147481593,33488891,-130432,-33325054,-8388095,-2147417345,234883845,15925632,-201555956,234881029,15992704,65535,514,-16777218,-33423872,-2147221758,526587,49478016,-32767,8389121,-2147353077,50331138,33424256,-32766,226492674,16646413,-65788,-50331905,-16646656,16908289,83952130,16843265,-168394749,25166847,83952129,-2147417599,83820801,32896640,83952130,16843265,-16580606,-66978303,-512,16711679,-2130837244,234882565,16843521,131330,-33423614,15792256,-2147352305,-33361922,50401536,-109051647,-2147481102,150997765,16843521,196866,-16646398,-159318527,17367287,-184844286]},{"sector":5,"data":[167772165,16843521,15861632,-2147482354,201389052,99875968,-2146566144,16970481,33554304,168656898,-8388095,-2147417345,235277059,99810176,-184778740,92277765,-15991819,-218595326,58720263,-2147482112,33751281,-16907648,-16220159,25166082,-2147352577,235145988,66256256,-167870453,58723075,-15991307,-234586109,-41939452,-2146761742,194044,58723075,-16056842,-219054077,142606344,-2147482112,16974059,-16841856,-15958015,41943298,-2147352833,235539204,183695232,-218660850,-8385014,-2146633997,521213,100664192,250642432,58720262,-2147481856,16970481,-16841856,-16285695,41943298,-2147352833,33426678,50266752,-16285695,58720766,-2147417345,235277060,99810176,-184778740,92277765,-49546251,-33358330,-16712191,50200831,-16646144,-2130771968,519424,100664192,15826944,41943555,-2147352834,16973576,-65152,185434113,192941814,-2146502926,251064843,-185464192,-2147221504,788992,-176096256,-2147155978,67042306,-33750144,-33193982,125829627,-2130770675,-33357315,33750656,67076349,159448065,-16646656,196353,16908546,131329,-2147287550,50328065,33620480,33620225,50266624,33817340,33554945,33489663,33555199,-8388095,131826,-16580862,196353,16908546,-2147417599,536870916,33555840,16843009,-16646142,-16646398,33685506,-218136574,33554945,33489663,33555199]},{"sector":6,"data":[33817089,50266876,33620480,33620225,50266624,-17694336,16908290,16843010,-16646142,-33423614,318996481,-50201088,196354,50594050,131330,-33423614,16969344,50266878,67174912,33620483,33489408,1308492029,543912545,1411395140,504824064,1126694912,1866670121,1769109872,544499815,1919117645,1718580079,959520884,13624,0,0,0,0,0,0,0,65536,131108,1638403,131076,-1140850687,65282,336658464,536879872,24190,0,128256,0,130048,268435456,184549376,335560192,352347136,352352256,402709248,436279296,184656384,268552960,268568320,285360896,419596288,184722432,419613952,184736512,386070784,352519936,352548352,352557312,352582400,352613632,352620288,352643584,352673536,352691712,352740608,184998400,185013760,403135744,419914752,403144704,352814848,453506816,336093952,403219200,352923136,386497792,386526464,369783808,369814016,436953600,235661568,319564288,386694912,336393984,470632704,420330240,370017024,386821632,370071296,403663616,386921728,370166272,420520960,336656640,437335040,370251008,370274048,370296064,236093440,236098560,236099840,370322688,1227520,185776896,370337536,320029952,303277568,370403072,303321856,269783552,353691648,370496512,219520512,219536896]},{"sector":7,"data":[370553344,202803968,588691968,404171520,337082624,370659328,353913088,303607808,286844928,236536064,404318976,337230080,505016320,370821632,370846464,337315584,236670464,136026880,236691456,404483328,1841920,1836012032,28257,-16512640,-33423616,-217808883,234684671,15926400,-2146632703,16904708,217776384,-16449920,16842753,16777473,-65281,-2147418113,16777472,-16777215,142606591,-33423612,-100433914,58722045,-67042823,-116555770,117309951,-33946752,-117211130,117178625,-117437568,-535986144,-92266247,-2147479827,919281,-134214528,-485654499,159391224,-65300,33685504,-131072,-33554434,-50266881,196097,33685763,16975362,-16580606,-218595326,67568129,-125828607,196595,100794626,16908803,-16580606,-50200830,-50267135,-1,50200830,-16646144,-2130771968,367920149,48956800,-16646142,-33423870,16711168,50201086,33555199,50397953,50266880,251429119,50266622,33686016,-16646142,-33489407,16711422,857984,65535,514,-2,-33423872,-32965886,-50201086,-768,33423614,50266622,50202111,33424127,-130818,-16777474,196353,17170691,33685763,33620483,16646400,66289919,25231356,16711424,33423870,-2130771201,50462212,16909827,-16648832,16711679,33423870,100598527,-33718019,50397953,50463746,65794,159448833]},{"sector":8,"data":[-16711929,33489151,16777727,-16646143,-33423614,-100499455,65792,16776960,131456,-2147287295,33423376,66913021,83756030,83887359,50398209,41943810,-33292570,392964,-435388408,66913021,50267134,83821567,8391167,17367544,-2147352317,50462729,67175169,83821824,66979070,50136061,209715710,-16252698,-33227259,-436043773,50397697,8390913,-16121864,-16515324,-50070014,-2147287805,33489930,33491458,15990912,-201293812,184418561,-75497215,134218231,-2147483386,101382902,16447104,264705,-100630527,116916479,176161023,-2147027206,16841226,16778486,461952,-2147483375,126975,-142601984,4599,-1081343,1114368,-15137664,16776960,33489407,65792,-16580862,-2147353087,16841218,-16777215,25166079,-16711678,251953154,16777233,16772992,-2147479295,33494531,16843008,-16711679,-256,8388863,16842753,-65536,1605632,73958,31463808,-2145327616,33358860,66978558,83821567,50397952,16908545,-16580606,-50135550,-66978559,-33555200,-65537,-41942786,-16581118,-16515326,17039364,491522,-33423870,-66978559,-16778240,-16843648,-16515583,-16515326,17104900,-2147417854,-16646142,-33424126,-66978559,-16778496,209780735,34732808,-351895552,301663486,-85260416,-351895531,50136061,92275198,-50200834,151486465,130816,16646656]},{"sector":9,"data":[-33423872,-16515327,16973827,33554945,50201343,50202358,260048126,131564,-33358078,-2147287806,16905475,33554945,50201343,-41941256,50266372,83952896,-2130771712,33882357,-159383547,50529790,33489408,-2130771714,-16774905,33554433,-33554178,-16646655,261891,33620227,50266624,33423871,92275197,131575,-16580862,-117473279,33620225,50266624,33424126,33619584,16843520,131329,-33358077,-50201343,-768,16711679,766,65282,-66354945,50332161,-41942273,16843511,-16515070,-33423614,135233537,135675,-18151808,-2146305276,368765703,-253032832,-2147479537,184222729,183895424,32931840,-142606328,67110145,-2130771201,-16708879,261891,16843011,50332161,50201599,16581116,-2,-33489153,33554434,-16776961,33164160,-16580606,-2147287549,16971007,67109377,50201599,293601790,-65528,33685504,-131072,-33554690,-33424128,-16515582,327427,16974083,50397697,50266880,16646654,-65539,-33554689,-16646656,-2147287295,67040771,83821567,33620992,33491328,-196354,-167870210,66978302,67044095,83887359,16843265,33555328,33489407,-261891,-2130706434,117310470,-389248,-66847229,-16515579,-2147156221,83818498,159384831,-33096975,-16580861,-2147483132,-50073859,50659330,67041408,-2147351296,-16645898,17104899,-16711678]},{"sector":10,"data":[193003009,-16646908,196353,33685763,50332417,33489663,-196354,-50331906,163840,8389115,196353,-2147417852,16974079,67109248,-16678657,-50266623,25231103,-2130707456,50200830,67109631,58720769,33489408,16646655,-2130771972,33295098,50266878,33620736,262403,-16646396,-50266623,-257,-25100290,-2147353856,50200577,50332415,-8388095,100730112,-16744193,-50266623,8453887,-2130706945,33423614,50266878,33620736,75497729,33489408,16646655,-65540,202408191,33489663,16581118,-2,-50266369,-33358335,261891,16843010,50332417,67044607,50201598,16581117,-16777218,196096,16712192,58785536,16711673,-2130836995,33685257,83821568,66978815,-328576,16711679,33358332,-2130771201,16842755,83886593,67044607,66978559,109052414,130827,16843009,16711936,-1,16809984,65792,16776960,-16056960,16842753,16777473,-65281,-2147418113,16777472,-16777215,109052159,130827,16843009,16711936,-1,16809984,65792,16776960,-15860096,16776960,33489407,65792,-16580862,-2147353087,16841218,-16777215,25166079,-16711678,118784002,152046064,285934720,-2147418112,16842735,-276824047,4359,-1081343,1114368,268895360,-2146832375,-16774905,33554433,-33554178,-16646655,327427,33620227,50266624]},{"sector":11,"data":[33423871,33423868,16908800,25165825,-2147416590,33620223,50266624,33423871,32964992,131329,-16580862,-16581631,16908289,83722241,16777727,65793,-16711935,16777215,65664,257,-2147418113,-16839662,16646142,33489406,50332671,16908801,-16646141,-75432447,-16580872,16973827,-2147417854,150992135,16908800,-33423358,-33489663,-16777729,-65794,16646141,33423869,50266878,50332671,33620737,16908802,196867,-16580861,-25100543,589811,-2147417854,351536141,32508544,-318734319,8393217,16908524,-2147352559,588534,101118592,360448,-243269625,-2147352833,16973570,-16840320,-33390591,58721023,-2147352066,368706569,-85260416,-351829995,25171450,50334699,131329,-16515326,-2147353343,33683203,67043840,-8388097,16843255,-16646142,-2147287549,524536,33620226,67043840,33293054,293601524,131574,-33292542,-167673854,50332161,50201599,-75496962,-2147417109,33685502,-16907392,-33325054,-92274179,-2147353325,50265603,33424256,-98302,310378755,16777478,458750,-65538,-33554689,-33424128,-16515582,327427,16974083,50397953,50266624,-2130836994,50262777,67044095,67110143,125829633,-33423635,-16580861,327427,33685765,67731457,125834746,-2146043157,368765703,166396288,16843520,196865,-33227004,-33358332,-150864895]},{"sector":12,"data":[-334397440,50397441,83821568,50201854,49086848,196866,-33227004,-50070268,-335642623,-25165565,-2147352065,50265603,-33684608,335183873,58720765,-2147287298,33684995,67108480,67731457,125834746,-2146043157,368765703,-17757568,-218529784,117374991,100988032,200441856,-83754993,66123392,-98303,58720769,-2147287298,33422851,67045248,-98303,-8388094,-2147286530,100728064,-33490048,-2147221500,50264577,25166337,33684989,167215105,58720765,-2147287298,33684995,67108480,229377,-41877755,-2130836735,-50200576,-100398720,-351829995,125834746,-2146043157,150925578,267581824,-2147025152,394484,135000704,-335577088,-25165565,-2147352065,50265603,-33684608,-16285695,-25165565,-2147351809,50462463,16580736,16482310,67110142,-17170048,-2147352318,33422593,-142606078,-2147353335,50265603,33424256,-98302,310378755,16777478,458750,-65538,-33554689,-33424128,-16515582,327427,16974083,33620737,50266880,-2130967810,50263288,67044095,67110143,159384065,33489407,-218332931,66978302,67044095,83887359,16908801,33555072,33358591,16613629,-109051896,-2147417600,50462719,-16972928,-33325054,159384061,-2146043388,368765703,-85260416,-351240171,125834746,-2146043157,368765703,149681536,294912,-310378488,-2147480566,527341,134218880,-336363520,-25165565,-2147352065]},{"sector":13,"data":[50265603,-33684608,-16154623,-25165565,-2147352065,50265603,-33684608,334397441,58720765,-2147287298,33684995,67108480,-16154623,58720765,-2147287298,33684995,67108480,67731457,125834746,-2146043157,368765703,149619072,368214016,-8388600,-2147417109,33685502,-16907392,-33325054,-92274179,-2147353325,50265603,33424256,-98302,243269891,-15598844,-2147287550,234679049,50267135,-51509376,-33161715,-33423870,-512,33423614,16777727,-16711679,-2147418367,16842240,-16777215,159383807,-2147481360,16974073,33554048,-33325054,58721022,-2147353090,368706569,-85260416,-351829995,293606906,-2146700820,201653508,83164544,-201490420,-176157692,-2147481364,393221,135653248,294912,-192937977,-2147417109,33685502,-16907392,-33325054,176161277,-2147417345,33488642,-49025408,-33325055,58721022,-2147352066,17039358,-16840576,-33390591,41943807,-2147351810,368706569,-85260416,-351829995,25171450,-2147481365,988658,-159319550,-2147417103,33685502,-16907392,-33325054,-92274179,-2147353325,50265603,33424256,-98302,58720515,-2130770688,-50068995,50593408,67731706,109057274,1180141,-352288766,8393473,-2146303507,318107147,226493438,-2146043157,368765703,-85260416,-336363499,209715205,-2147482368,398820,134219904,-336494592,-8388350,-2147352065,50265617,-33684608,334200833,41943550]},{"sector":14,"data":[-2147417345,33423117,-16907392,-33325054,-25165311,-2147417089,351929353,132908672,-335904747,-75492858,-2146302226,301723397,-159382529,-2147482133,393224,102098816,-352223232,-25165565,-2147351809,16973322,-16842112,334331905,41943550,-2147417345,33358860,66978558,83821567,50397952,16908545,-16580605,-50135550,-66978559,-33555200,-65537,-58720003,-16515581,327427,-2147352316,-50135287,-66978559,-16778240,-16843904,-16515583,-16515326,17104900,-2147417854,-16646141,-33424126,-66978559,-16778496,159449087,-2146043388,368765703,-85260416,-352223211,16973836,33554945,50201599,16253436,32902528,-16646142,-2147287549,16905728,33554945,50201599,-243269122,-2147481590,17034239,33554048,-33325054,58721022,-2147353090,33362938,-16907392,-33325054,-25165311,-2147417089,33358860,66978558,83821567,50397952,16908545,-16580605,-50135550,-66978559,-33555200,-65537,-58720003,-16515581,327427,-2147352316,-50135287,-66978559,-16778240,-16843904,-16515583,-16515326,17104900,-2147417854,-16646141,-33424126,-66978559,-16778496,-159318017,50200850,33554943,16908545,16843013,-2130771712,16843261,-41943039,17236217,16777729,-2130771715,368706569,-85260416,-351829995,25171450,50334699,131329,-16515326,-134087423,-150241280,33554945,33489919,33030016,131329,-33292542]},{"sector":15,"data":[16547842,16843010,16844290,-16711679,16907648,-2147483391,134347004,131329,-16712447,134540416,-335577088,-25165565,-2147352065,50265603,-33684608,335183873,58720765,-2147287298,33684995,67108480,101941249,-33488895,-33552641,-257,16580605,50201085,33620736,50725378,50332161,-125828353,117572082,-2147352316,50328568,33620480,33686278,50332161,33489663,16515581,-3,-33489153,-33487105,226492417,-2146043388,368765703,-85260416,-335708139,310380286,-2147024902,1112817,135655040,-335839232,92276477,-2147222278,33291526,67046528,-98303,-8388094,-2147286530,100728064,-49351808,-33325055,58721022,-2147352066,17039358,-50067328,327435,50462979,50332673,33424127,-2131622659,201195507,67110143,75497729,-15991316,33816580,-335708158,109051912,-2147482112,16974061,33554048,-33325054,58721022,-2147353090,16973579,-16842112,67534849,285278720,8389120,-2146369044,285339136,-185595264,-335708140,92274695,-2147482112,33620207,-130176,-33390590,176161277,-2147417345,33488642,264320,1179138,-335314942,58724862,-2146304274,301526792,176162046,-33423125,-2147352559,301919235,-17955968,-267878383,83759352,149682048,229376,58720258,-2147482112,16974059,33554048,-33325054,58721278,-2147353091,16973581,-16842112,67600385,-75492090,-2146105621,352775163]},{"sector":16,"data":[-286521984,-335314925,92274695,-2147482112,398824,117441920,-336232448,41943554,-2147287042,33488386,50268544,-16613375,-293600770,-2147353069,16973570,-16840320,-33390591,41943807,-2147351810,168035334,8391677,-49675029,-352288757,201132548,-135525248,-151486455,125829127,-2147482112,529900,49019264,-16613375,41943807,-2147353090,16973580,-16842112,334725121,58720765,-2147287298,33684995,67108480,68386817,327161326,-2146046229,367979283,-219475328,-2147025408,921596,-142542334,-2147025423,66976260,-50526848,335839233,-25100540,-2130902271,-100465666,1152,-536772576,-8380416,-2147481632,467193,235143296,622616,25174016,-2145386272,516345,119601536,302219264,84474632,134279296,-2147219204,33424391,50332415,65793,-16711935,16777215,25166335,16842752,-65536,-67076096,8389887,-2147417602,134089488,33620992,131329,-33423870,-17367936,-2147090425,193281,83822590,16580480,-16908291,-50266369,-16515583,16908291,33620227,33554945,33489407,-2130902530,67042041,50332671,75497985,-16580876,261890,16974083,67600385,117377022,33620992,16908545,-16580606,-50201342,-33554944,-65537,33423614,50266623,58721279,-16253198,17170436,-16285693,-50201087,-16777984,100136576,-33030656,117800967,-33423870,-50266879,-513,66713984,-98303]},{"sector":17,"data":[243270145,-65521,33685504,-131072,-33554690,-33424128,261891,16974082,33620481,50266880,-117931779,67044095,33620736,-17562496,-16580862,16973827,-2147417853,201131026,50332927,16843265,-33423358,-25100799,-15991313,-2147155964,388096,83824380,16580480,-16908291,-50266369,-16515583,16908291,33620227,33554945,33489407,-2130902530,50330616,50332671,75497985,-16580876,261890,16974083,-351698943,-25165565,-2147352065,-16509948,-33292541,-16777727,16646142,66978301,33555455,16843521,131330,-33358077,-526208,261890,-2147352317,50263044,67044095,50397952,276824321,-65530,33685504,-131072,-33489153,-16581119,-16515326,-16122364,-33358077,-402030590,100598783,67045886,-18347648,-16580862,-33161469,-16515320,-33358334,-16712191,50200831,-16646144,-2130771968,781573,-66383744,-33292530,-2147353085,251456266,92275966,-67108114,-33227250,-50201342,-512,50200831,-16646144,-2130771968,-50268916,-66049,33358078,67044350,50397696,16908545,-16646142,-33423615,-125764351,-16580613,16973827,-201031678,50266878,50332671,16843521,-100398976,-2147483115,368765701,99287680,-2146043392,-66914046,-16581118,16908290,50332161,25167358,-16514826,-2147221500,100595201,33620736,131329,-33423870,66056576,-98303,142606849,33685508]}]],[[{"sector":1,"data":[-16908288,98304,-8388096,-2147482881,-33486089,196098,33620225,100532992,16122240,327428,-167673852,50333182,16843265,-33423358,176225793,33685508,-16908288,98304,-8388096,-2147482881,-33486090,196098,33620225,134087424,50267135,33424126,-65282,196096,16712192,159448832,-33226514,-16515321,-251363326,134087935,50267135,142607102,34994692,-351961088,41948666,-100661781,-200376299,16776960,131584,-512,33423614,33424636,33619584,16843264,17039873,-2147483135,67304442,-75497215,33620473,33620230,50266624,-269188867,-25165565,-2147352065,201131016,50332927,16843265,-33423358,-25100799,-15991313,-2147155964,388096,83824380,65929600,-98303,25166337,50200847,16777982,131329,-2146894333,83948289,41945342,-33226763,-2147483129,-50137086,-16581118,16908290,50332161,25168126,-33226509,-184385528,134087935,41943042,50135800,50266878,16843264,-33357822,-167673851,83821568,25166848,392950,16908547,33554945,-2130836994,-33485055,196098,33620225,150864640,15925632,-2146894331,83883266,133118,49808000,50201341,33555199,131329,-2147090941,67171841,67110143,-17432192,16973829,33620226,33423872,185172222,66978301,33555455,16843521,196867,-50135293,-33489663,-513,16646141,-16581248,261890]},{"sector":2,"data":[-2147352317,-33488887,-50266879,-92209409,-16580866,261890,33751299,229377,-33423870,-50266879,-66049,17760640,50201342,16843008,-16580606,-2146697980,83946499,201131263,-1178496,-2146501628,-50204154,-16646655,196354,16843010,33555201,66978815,16646653,-33554434,159448320,131579,-16515325,-184582142,50397441,67044096,50201343,134738560,-229376,58720765,-2147287298,33684995,67108480,185630721,125834746,-2146043157,191237,41948666,-196366,-16777475,-33424128,261891,16974082,33620481,33489408,33423871,-67600131,67044095,33620736,-17562496,-16580862,16973827,-2147417853,526080,-33555328,-33325055,58721022,-2147352066,17039358,17760640,50201342,16843008,-33292286,-218005497,134088192,-720256,34078212,-200638464,16776960,131584,-512,33423614,83755774,921216,65535,514,-33554434,-50266625,130817,33685762,33620737,-2147352319,67106552,33620352,33620737,16875521,-125827841,33686005,33620737,131329,-50135294,-50266879,16777215,766,65282,67731711,83823613,33620736,131329,-33423870,-34603392,327435,-335314939,251396098,-41941761,-2147480843,-33485055,196098,33620225,100532992,16122240,327428,-167673852,50333182,16908801,-16646142,-50135550,-17300864,16973832,33620226]},{"sector":3,"data":[33423872,-151224066,83888382,49480064,-16253440,251756548,-33358335,16842754,50332161,25167358,-16514826,-2147221500,100595201,33620736,131330,-33358078,-66978558,16776192,33620224,17760640,50201342,16843008,-33357822,-167673851,83821568,25166848,392950,33685763,33554945,33424127,-134053635,50333950,16908801,-16646142,-50135550,-67044351,16777471,-142605823,589565,-218005499,134086658,58721535,50135567,33555199,131329,-67272702,67109121,50267391,33424126,-65282,196096,16712192,159448832,-16580362,-2147287036,-16714231,33554687,-33554430,16711679,50201086,83821311,16843776,16514432,33685762,33554945,-2130902273,-33485055,196098,33620225,100532992,16122240,327428,-167673852,50333182,16908801,-16646142,-66912766,-50789760,-33292530,-2147353085,251456266,92275966,-67108114,-33227250,-50201342,-512,50200831,-16646144,-2130771968,50268945,116916990,50266878,-135000704,-16646656,-49643518,16646140,142606847,-33620992,-16581120,117473283,-16646135,-159318527,50398211,-2130771712,33816824,-33423357,159448321,-16646656,196353,16908546,131329,-2147287550,50328065,33620480,33620225,50266624,33817340,33554945,33489663,33555199,-8388095,131826,-16580862,196353,16908546,-2147417599,536870916,33555840]},{"sector":4,"data":[16843009,-16646142,-16646398,33685506,-218136574,33554945,33489663,33555199,33817089,50266876,33620480,33620225,50266624,-17694336,16908290,16843010,-16646142,-33423614,318996481,-50201088,196354,50594050,131330,-33423614,16969344,50266878,67174912,33620483,33489408,1308492029,543912545,1411395140,4327111,-1047855104,-388823887,1687855918,78765195,-796070957,-1557216509,-930323304,-1099669317,-215255328,-338492239,-1993424125,-94064098,-427044722,921515003,931465,203852086,15630592,914961922,-1591345142,1480392958,1024095319,276125511,470220590,117386752,854261788,33614224,-54512866,268865070,8437248,-268194778,234978445,1734129951,728191422,79793102,431270402,1090789837,-206882124,788275108,1050254,268812428,512437760,-1960418152,-1912602098,378218179,1397882896,244339024,-485622552,-1767690584,-37754780,-1156958488,-1993459491,771778078,6819468,-1899459554,2014936,1020912603,76218603,1023639333,74711935,1223,109981215,-2135031792,650130176,1190134700,-268194778,-62601434,-970566065,726466116,-2131983888,-1141077248,101072896,1398216278,333975184,1963409588,83764760,104857787,1461081606,-401698733,1074246654,669582197,-1191408895,-13697025,1348769846,1088968470,-2134605382,1958742784,784371429,637536419,2242187,105152806,-14284800,100663814,782582760,525966,-1207959106]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[8084045,3,32,65535,490209280,0,64,0,0,0,0,0,0,0,0,1024]},{"sector":8,"data":[1409299944,544434536,1735357040,544039282,1970365810,1936028265,1667845408,1869836146,1461744742,1868852841,168653687,-1273033180,-1205744375,567102465,15919962]},{"sector":9,"data":[279886,131198,189692135,32772,0,0,0,0,4194351,7602240,8257662,1152,589824,0,0,0,-2147024892,1,4915200,5242888,44,-2146959360,1,5439488,-265289452,32769,0,1313818119,1380533332,1380143878,5525577,0,1313818155,1397051988,1313817376,1431193940,1397970255,1229734211,975193934,1919111968,544501865,1952797480,691086112,1291845632,65537,288555264,1126694912,1866670121,1769109872,544499815,1919117645,1718580079,959520884,13624,0,0,0,0,0,0,0,65536,131108,1638403,131076,-1879048192,65281,289472549,536879360,24190,0,128256,0,1666383872,1953524082,1918979328,288555264,1126694912,1866670121,1769109872,544499815,1919117645,1718580079,959520884,13624,0,0,0,0,0,0,0,65536,131108,1638403,131076,-1879048192,65281,289472549,536879360,24190,0,128256,0,130048,268435456,167772160,268439552,352328192,335556096,402678016,436248064,167830272,234942976,234948352,268508160,436284160,167851264,436291072,167856896,369186304,335633152,335642112,335644416,335651840,335659776,335662848,335671808]},{"sector":10,"data":[335683840,335686400,335701504,167941376,167947008,402835200,436391424,402839552,302178048,453183232,335770368,386112000,335800832,386144512,335830528,335844608,386189824,402981632,285560064,252018176,403025664,319158784,554054400,403081728,352765952,419889408,369573376,419921152,336054272,319291136,403189504,386428672,470330880,403233792,386474496,352939008,235518720,235523840,235525120,369747968,652800,185202176,269099520,235556096,185235968,269128960,168477440,134931456,252384000,252397824,118194432,118202112,235652352,135005184,420226816,302802432,235704832,252493568,252505088,218963968,185416960,151870208,252540928,252550144,353221632,269347584,252580096,235814144,235825664,135182080,235846656,403638528,997120,1919111936,7630953,263552,83918862,16843263,-255,263296,-116883449,192939776,-2145322752,553246733,250477184,116490240,142606350,-2145583104,486597380,-18217600,-50332162,-33424128,16908290,33620226,33687041,16843009,-33357822,-66978558,-16777984,68518142,92280302,131819,-33358078,-33489407,33423614,50266878,50397696,50332417,-2130771201,33427196,33555199,131586,-33423614,-16843264,394264830,-65523,-16711681,-33358079,-33292795,-66978302,-512,16711679,33423870,33294335,16646655,-16842754,-16646401,16908290]},{"sector":11,"data":[84083203,33686023,16777729,-2130771713,-63995,16908033,50266624,192938495,-33358336,-16450045,17039365,33817093,-2147352061,33685507,67240706,67110145,83756543,50201598,657536,-134512628,8390154,-2147027206,301991693,318240640,403079168,-65025,16908033,50266624,75497983,-2147479024,33494789,-16711423,343998463,-2145325568,33358857,100598782,83952384,16974594,-16580606,-83755774,-67109632,-131586,109052158,67043848,-2146107139,-16774908,-16646655,327426,16843010,33554945,66978559,920310,184812928,50919936,16843264,196865,-33292542,-50201342,-768,-2130771969,251003917,-75497457,-2146107150,16122895,-16709121,261891,33685763,33555201,50201599,16581117,-3,276889343,-33620217,-50266369,-16515583,17104901,50463236,50331905,33424127,-65283,-33620227,-50266113,-16581119,68255747,-58714634,-2147479829,33358856,33555199,16908801,16974084,33620482,50266880,33358335,-196356,-16777217,-33424128,-16515582,-16580860,-33489407,-131329,276824316,-33292533,-16646910,-16777984,16646142,50135551,33489918,33620736,262402,-33161467,-33424125,-768,184910078,16843263,-255,-15990656,16843009,-2130706433,33491717,-16711423,25231359,-16646387,33489407,-16646143,-2147352830,166725396,75499792,-2147479027]},{"sector":12,"data":[1181422,268895360,-2146832375,-16774909,-16646655,327426,16843010,33554945,33489663,50332412,-16449408,16843009,-2130706433,-16839662,16646142,33489406,50332671,16908801,-16646141,-75432447,-16580872,16973827,-2147417854,150992135,16908800,-33423358,-33489663,-16777729,-65794,16646141,33423869,50266878,50332671,33620737,16908802,196867,-16580861,-25100543,589811,-2147417854,-16639744,-66847485,-100402940,-33614592,-16843266,16711421,33554943,33686017,16974339,226492421,65798,-16449789,-33358077,-33358333,-16711935,33358079,33358331,50135806,67044094,33555455,131329,-16580862,-50201087,16744449,16973825,33620225,50266880,33423871,-130819,209780479,16842762,33554945,16646655,-16842754,-50266625,-33358335,-16580861,17039364,33620227,50332161,33424127,67993854,50266622,117376255,50267135,33424126,-65282,-16646656,16908290,16974338,-16580605,-66912766,-67044607,-513,16646142,33555198,50463489,33751554,243269890,16842760,16777729,-130817,-50332162,-16646912,16973826,50397442,-50266879,-16646399,16973826,50397442,50332417,33424127,168460542,-130818,-33423617,261891,196868,-75432190,-33030655,-33227258,-33423870,-512,33423614,33555199,-100433919,8388617,83821081,33227772]},{"sector":13,"data":[16515581,-3,-16646400,16973826,67174914,33489664,16646655,-16384250,-50135550,-50267135,-65793,-2130837250,-128249,-16711937,-16581119,16908289,33554945,117310719,50201854,-65282,109116928,50137594,50201599,16646654,-1,-33358336,-16318972,16973829,33554689,50266623,336494845,-33620226,-33554689,-33424128,196353,33620225,100598528,50267646,33424126,-130818,-33489153,196353,176161026,-16908772,16449531,50135546,16777983,196865,-49938685,-16318967,-33358077,16776961,50135550,66978557,-2130836226,-128249,-16711937,-16581119,16908289,33554945,117310719,50201854,-65282,394329600,-130831,-33488897,-33358335,-33358333,-2147418623,33619970,33621760,65793,-16646398,75562242,67109392,50201599,16646654,-16842755,-16646400,-16384254,-16515323,-33358334,-16712191,33423615,33555199,50463489,50332161,-2130836737,-128251,-16711937,-16581119,16908289,33554945,83822079,41945086,49808377,50266620,33554943,131329,-16384254,-2146959868,-133957374,-16647166,130818,33620226,100598272,50333694,65793,-16646398,92339458,-501,33489150,33489662,16843264,-16646142,-33227003,-117276665,-66914301,-16580863,16908290,33554945,134088191,16843520,-16646143,-50135295,-50066304,-33358335,-16580861]},{"sector":14,"data":[17039364,33620227,50332161,50201343,33423869,-261892,-16777219,-33489153,16973826,33751555,33686274,101548033,50331905,67044607,66978559,33424126,-65281,-83755776,-33424127,-33358590,-16515326,16908293,33620225,50266880,33423871,-130819,226557951,-16580854,-33423871,16711424,50135550,67044350,16843264,-16515070,-66847229,-33358588,-33424127,16776960,50266622,50397696,50397954,50266880,101548286,50331905,67044607,66978559,33424126,-65281,-83755776,-33424127,-33358590,-16515326,16908292,33620225,50266880,33423871,-196355,33620225,33621248,-16645886,-50135295,35192960,66978559,50135804,16581116,-3,-16646400,16908290,50463234,16908802,-16646142,-50200830,-50267135,-65793,-2130837250,16648714,-16777218,-16515583,17039363,-16646141,-33424512,-33096185,-33358332,-33489407,16711679,50266622,-2147417600,-128251,-16711937,-16581119,16908289,33554945,67044607,33555711,16908801,-16646142,-66912511,-117245949,-16253312,458500,16843011,33489408,-2130902273,-128251,-16711937,-16581119,16908289,33554945,67044607,50332927,131585,-50069758,-66913022,-66978559,-512,33489151,33555199,33686273,92274946,-501,33489150,33489662,16843264,-16580606,-351633393,176166390,-2146042133,33483534]},{"sector":15,"data":[83690493,134022909,-32896896,16776960,50201086,33555199,131329,654851,33685763,33554945,16646655,-16777218,-200835072,-512,33423614,66978558,66980348,33424126,-65282,92339712,-501,33489150,33489662,16843264,-16646142,-16515324,16908292,33620226,50266624,33358590,-2131098882,134150402,117312253,83756542,-65026,-50201088,-50070270,-49938941,-16118400,-33423614,-16712191,33423614,66978557,33555455,131329,-33292540,-66847484,-50201085,16776960,67043838,16843264,131329,-16515325,-33292798,16776961,50135550,66913277,-2130901250,536870916,14680448,-520126432,-109051897,-2147481824,403571712,2432,-536772576,-109043712,-2147481632,467193,135398272,-2147153669,-66584336,125830152,-16646652,16973826,16777473,-65281,-16711681,98305,65792,16776960,-262016,-33521660,159383809,-16842989,-33489153,-16646399,16908290,33620482,33489408,-392450,16973829,33554689,50266623,335577341,-83624702,-50201087,-512,50266622,134153471,16844288,-16646143,-50201086,67239168,131329,125894402,-65518,-33489153,-16646399,16908290,50397698,50201344,319389949,-65793,33423614,50266623,33620480,131330,-33423614,-58659322,392972,16843011,33489408,-2130902273,-16640255,-33423615,-512,33423615]},{"sector":16,"data":[50332415,16908801,-16646142,-50135295,68419712,33358587,16581118,-16777218,-33358079,-49677048,261895,33620226,33358335,33620471,33489408,-2130902273,-16837879,16711678,33489406,33555199,16908801,-16646142,42008321,-66584839,-33358069,16776961,66912766,50201597,66978815,335577341,-83624702,-50201087,-512,50266622,117376255,8390911,33358080,50135806,16777983,-16646143,16908291,33554689,50266623,184779005,65792,16776960,34209152,458492,16843010,33489408,-2130902273,16780035,-16777215,-41942785,-84147703,-33358062,16776961,66912766,50201597,66978815,335577341,-83624702,-50201087,-512,50266622,117376255,8390911,33358080,50135806,16777983,-33423359,-2147418879,16908288,16843521,-16646143,-50135295,34865280,33227773,16581118,-16777218,-16580863,524036,16843014,33489408,-2130902273,-50195456,16908034,83820800,25166847,50201085,50266877,65792,-16449791,-50233341,-50135551,196354,33554689,33555455,65793,-16646398,8453378,50135572,66047,-16449791,-50233341,-50135551,196354,33554689,33555455,65793,-16646398,109116674,-33489392,-16646399,16908290,33620482,33489408,16646655,-16842754,131071,33685762,33555201,-2130771457,-50195456,83885569,109056762,50201070,33555199]},{"sector":17,"data":[131329,-16580862,-2147353087,16973820,-16580605,-50069758,-15529600,-16777474,-16646656,196353,33685762,33554945,-133988097,100533247,67045373,16843264,-50200830,-16582400,-50070013,34865280,16646653,16777986,-16646143,16842755,33554689,50266623,335577341,-33424126,50463232,33554945,-58719746,67175167,33489408,-2130902273,-50195456,58784770,1243895,33620226,33489408,-2130902273,522488,34865280,458492,33620226,50266624,-2130902274,117374209,16843264,-16646143,-50135295,34865280,393212,16843011,50266880,16581118,33021,16843777,-16646142,-32504960,261890,33685762,50266624,-100499202,33556222,131329,-33358078,-50266879,16777344,33620228,-2130771456,-50195456,196354,117440769,196865,-50135549,-131712,-16711937,-16253951,-16712191,335577343,117373954,16843264,-16646142,-50135550,-84082304,-33358062,16776961,66912766,50201597,66978815,335577341,-16581374,33685506,50266624,33358590,33620226,67044096,33424127,-33488897,-50070271,-50004477,159448323,-16646656,196353,16908546,131329,-2147287550,50328065,33620480,33620225,50266624,33817340,33554945,33489663,33555199,-8388095,131826,-16580862,196353,16908546,-2147417599,536870916,33555840,16843009,-16646142,-16646398,33685506,-218136574]}],[{"sector":1,"data":[33554945,33489663,33555199,33817089,50266876,33620480,33620225,50266624,-17694336,16908290,16843010,-16646142,-33423614,318996481,-50201088,196354,50594050,131330,-33423614,16969344,50266878,67174912,33620483,33489408,1308492029,543912545,1411395140,1869379937,-411038976,-2147482382,462588,117441664,294912,92274695,-2146566133,234942977,49610880,50267134,16843520,-2146762750,16970492,184549889,83030656,251428864,75497479,-2147481856,33360649,67044094,50397696,16974338,-16580606,-50201086,-33554944,-131330,8388862,-33423872,261890,33751298,-2147417598,-16646142,-50201086,-33554944,-65794,722304,-352223211,8393984,50201326,50332415,16908801,-16646141,-50135549,-33489407,-2130772225,16971014,50397698,67043840,33424126,83031680,368869376,260046855,-2146107381,352381697,-17891456,-16777474,-33424128,261890,33751298,33620738,50266624,-168132354,50201086,33555455,33686273,58720514,-2147481849,234883845,15860096,-134184946,-33358591,261890,16777473,-65025,-192872703,-2147482369,462588,17632640,-16514818,-16777218,-33489665,130817,33620226,33686785,-2147417855,16906741,33882370,16843010,33489664,16515582,-2,67174143,92339713,17891332,33620483,33489408,-285638402,50401536,-92274431,-2147481358]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[8084045,3,32,65535,490209280,0,64,0,0,0,0,0,0,0,0,1024]},{"sector":7,"data":[1409299944,544434536,1735357040,544039282,1970365810,1936028265,1667845408,1869836146,1461744742,1868852841,168653687,-1273033180,-1205744375,567102465,15919962]},{"sector":8,"data":[279886,131210,189692122,32772,0,0,0,0,4194351,8388672,9044106,1164,589824,0,0,0,-2147024892,1,4980736,5242896,56,-2146959360,2,6029312,-265289547,32769,17891328,-265289396,32770,0,1313818119,1380533332,1146047750,5132869,0,1313818155,1397051988,1313817376,1431193940,1397970255,1229734211,975193934,1685015840,544109157,1952797480,691086112,1291845632,543912545,65538,189137152,1126694912,1866670121,1769109872,544499815,1919117645,1718580079,959520884,13624,0,0,0,0,0,0,0,65536,131108,1638403,131076,-1879048192,65281,288423968,536878592,24190,0,128256,0,1867317248,1852990820,512,1357825,692267008,1886339872,1734963833,1293972584,1869767529,1952870259,943272224,53,0,0,0,0,0,0,0,603980032,50332160,67115264,512,45875200,536871167,1192192,2116026399,94,0,501,0,1685015808,7238245,1802658125,539903008,189137152,1126694912,1866670121,1769109872,544499815,1919117645,1718580079,959520884,13624]},{"sector":9,"data":[65536,131108,1638403,131076,-1879048192,65281,288423968,536878592,24190,0,128256,0,130048,268435456,167772160,268439552,352328192,335556096,402678016,436248064,167830272,234942976,234948352,268508160,436284160,167851264,436291072,167856896,369186304,335633152,335642112,335644416,335651840,335659776,335662848,335671808,335683840,335686400,335701504,167941376,167947008,402835200,436391424,402839552,302178048,453183232,302215936,352551424,352562944,352572416,319025664,302253568,352589056,369377536,134500352,268719360,352610816,285505792,402948864,369399552,369403392,352637184,369421056,352656128,335886848,268788480,369454336,302350848,403016704,335912960,302361088,335918592,235259136,235264256,235265536,369488384,393216,168165376,319164160,319172864,302404352,319188992,302420480,201766144,319210752,319222016,134677760,168236288,285682432,134691328,503791360,319250944,319256064,319265024,319273728,218619136,285732096,201854976,319299584,268973056,369638912,285757952,268983296,285765120,235437312,134793728,235458304,403250176,608768,1685015808,7238245,263552,83918862,16843263,-255,263296,-116883449,192939776,-2145322752,553246733,250477184,116490240,142606350,-2145583104,486597380,-18217600,-50332162,-33424128]},{"sector":10,"data":[16908290,33620226,33687041,16843009,-33357822,-66978558,-16777984,68518142,92280302,131819,-33358078,-33489407,33423614,50266878,50397696,50332417,-2130771201,33427196,33555199,131586,-33423614,-16843264,394264830,-65523,-16711681,-33358079,-33292795,-66978302,-512,16711679,33423870,33294335,16646655,-16842754,-16646401,16908290,84083203,33686023,16777729,-2130771713,-63995,16908033,50266624,192938495,-33358336,-16450045,17039365,33817093,-2147352061,33685507,67240706,67110145,83756543,50201598,657536,-134512628,8390154,-2147027206,301991693,318240640,403079168,-65025,16908033,50266624,75497983,-2147479024,33494789,-16711423,343998463,-2145325568,33358857,100598782,83952384,16974594,-16580606,-83755774,-67109632,-131586,109052158,67043848,-2146107139,-16774908,-16646655,327426,16843010,33554945,66978559,920310,184812928,50919936,16843264,196865,-33292542,-50201342,-768,-2130771969,251003917,-75497457,-2146107150,16122895,-16709121,261891,33685763,33555201,50201599,16581117,-3,276889343,-33620217,-50266369,-16515583,17104901,50463236,50331905,33424127,-65283,-33620227,-50266113,-16581119,68255747,-58714634,-2147479829,33358856,33555199,16908801,16974084,33620482,50266880]},{"sector":11,"data":[33358335,-196356,-16777217,-33424128,-16515582,-16580860,-33489407,-131329,276824316,-33292533,-16646910,-16777984,16646142,50135551,33489918,33620736,262402,-33161467,-33424125,-768,184910078,16843263,-255,-15990656,16843009,-2130706433,33491717,-16711423,25231359,-16646387,33489407,-16646143,-2147352830,166725396,75499792,-2147479027,1181422,268895360,-2146832375,-16774909,-16646655,327426,16843010,33554945,33489663,50332412,-16449408,16843009,-2130706433,-16839662,16646142,33489406,50332671,16908801,-16646141,-75432447,-16580872,16973827,-2147417854,150992135,16908800,-33423358,-33489663,-16777729,-65794,16646141,33423869,50266878,50332671,33620737,16908802,196867,-16580861,-25100543,589811,-2147417854,368575497,149620864,-101482475,75497482,-2146107388,649984,16843011,33554945,33489663,-142605827,50333952,16843009,-16580606,-50200830,-2147420415,-16840430,-65794,33423612,50266878,83887103,33620737,16908802,-16646140,-33423870,263296,-352288747,16973831,33620482,83886849,50267135,33358590,75497721,-2146107388,912128,134935424,200835072,75497485,-2146107388,912128,134935424,152207360,-16843009,16580606,50201086,67044095,50398464,33686017,262402,-33358078,-50266623,83950464,67403776]},{"sector":12,"data":[243275008,-2146107157,980466,263296,67928085,67047424,33423871,-130818,-33554433,75562496,-2146107388,250800910,167445888,67403788,8393984,-2147480576,352322564,149618816,-351764459,142611960,-2146107157,352322564,250282112,-352288747,159388928,-33423868,-16580862,17104899,33685763,67174914,50266624,33423870,-327427,-16842755,-50331906,67403776,8393984,50334187,16843009,-16580606,-50200830,-2147420415,33424393,50266878,83887103,33620737,16908802,-16646140,-33423870,-83821311,-16777729,-65794,58720508,-2147088879,352322564,166396032,16843520,131329,-16580862,-150864639,491520,293604103,-33620473,-50266881,196097,16908546,100729345,16843266,131329,-50135549,-50267135,-2130772225,352322568,250345856,67403776,50401024,16974338,-16580606,-50201086,25227520,-2146105340,368634632,84148864,-351961067,92280315,-2146105877,368831237,235144064,-352288747,25171442,657412,-351764469,293604088,-2146045436,977664,236319360,294912,25174016,-2145386272,516351,119601536,67141632,159389710,-2145386496,536928257,132184448,553222144,58720263,150669330,15761413,67697672,-16513408,196353,16843010,-2130706433,234883855,-17497984,-33554690,-33423872,261890,33751298,50397698,50266624,67404030,8393984,50201333,33555455,16908801]},{"sector":13,"data":[-16646141,-33358333,-33489663,-2130772225,-16904689,16646142,50201086,33555455,33686273,196866,-33358078,266112,-184516587,-65794,33423613,67044094,50397696,16908802,-16646141,58785282,3089,-65538,-33554689,-33423872,261890,33751298,50397698,50266624,67797246,33423614,285213695,133365120,185565184,67047424,33423871,-130819,-17888896,-33554690,-33423872,261890,33751298,50397698,50266624,67404030,8393984,50136054,33555455,196865,67338250,-16711423,33554431,459136,67469326,-16711423,33554431,459136,-33292527,-2147418623,352322564,-151909760,-66813942,75499527,-2146107388,234883844,66453632,67044093,16843264,-2146828285,-50072064,261890,50397442,75500032,-2146566133,-50072064,261890,50397442,142608896,-33423861,261890,33751298,50397698,50266624,16581118,-16908290,-33554690,184844288,8393984,50201326,33555455,16908801,-16646141,-33358333,-33489663,-2130772225,352324367,-17956736,-33554690,-33423872,261890,33751298,50397698,50266624,184844542,8392192,50135544,67044094,235831296,-131329,33358077,33620735,17105154,33620226,50266368,16581117,-16777219,263552,33751313,-2147483135,520952,722048,33751306,33555201,-2130902017,234944000,101384832,-234455026,58724090,-2146565109]},{"sector":14,"data":[251458052,82969728,-234586098,58724092,-2146563317,250999296,101384832,-234455026,83758842,33424126,243269887,-2146503413,782848,185529728,622592,33489406,33555199,16843265,33554945,25166590,196594,16908546,131329,-66912510,16909314,-16646142,-16646398,16908290,-218136574,33554946,33489663,33555199,16843265,75497730,-2145386496,16908293,33620225,50266624,50266623,33686016,32702336,-16646142,-16646398,16908290,-66976766,196354,16908546,131329,-2147287294,50262529,33620480,33620225,50266624,33423871,1246080,50135550,33555199,33752065,33554945,-2130836993,-33488146,196354,50594050,131330,-50200830,1632501248,1142975346,1632903214,347603200,1126694912,1866670121,1769109872,544499815,1919117645,1718580079,959520884,13624,0,0,0,0,0,0,0,65536,131108,1638403,131076,-1140850688,65282,305201184,536878848,24190,0,128256,0,130048,268435456,184549376,302001152,352342528,318793216,402704128,419496960,184651008,234993920,235005696,268571904,419584512,184710656,419602944,184725504,386059776,335731712,335751936,335757568,335773952,335796480,335804416,335829248,335859200,335864576,335898112,184933120,184948480,403071232,419850240,403080192]},{"sector":15,"data":[319195904,453441280,336028416,336037120,352835328,352854272,319315200,302549760,352890624,369689856,151595776,285817088,352935680,285836544,403283200,369740032,369748736,336214272,369781504,336250624,336266496,285956352,369849088,336306432,436975872,336323840,319553792,336338688,235684096,235689216,235690496,369913344,818176,185367552,336373760,336391168,302854144,336424448,302887424,235796480,336470784,336494336,151956736,151968000,319751424,151988992,521091328,336561920,319796480,336591616,336609024,235963136,286304512,185664768,336666880,269569792,403793664,303141632,269594368,303156480,236056320,135412736,236077312,403869184,1227776,1685015808,7238245,263552,-2147483378,127743,-8385024,130820,16843009,16711936,-1,16809984,65792,16776960,-16513664,-2147090431,117438977,33096064,-2147025407,33552650,25167360,-2147024902,16906497,192939774,-2145322752,553246733,250477184,116490240,159383566,18677760,-469794816,486539265,48891008,-33620480,-50266625,196097,16908546,17041409,131329,-50135294,-33489663,-2130706433,-3831,16646142,33489405,33620480,33686536,33554945,33489663,16581117,-16842755,176160770,-2147287808,367920149,48956800,-16646142,-33423870,16711168,50201086,33555199,50397953,50266880,251429119,50266622]},{"sector":16,"data":[33686016,-16646142,-33489407,16711422,-32827776,-16646656,-16318974,-33423614,-33489919,16711679,33423870,50136575,16646654,-16842754,-33488897,196353,33751298,50726147,33620483,-234848256,16646400,25166334,-33357825,-33358074,-66978302,-512,16711679,50201086,33359358,16646655,-2130771970,-130815,33423615,-65152,16908290,84083203,33686022,513,101154817,16712191,-16711681,130817,50331905,33424127,16384384,257,-2147418113,16843265,-130944,688132,66978558,100599038,83952640,50463746,66050,31522688,-33358336,-16450045,17039365,33817093,-2147352061,33685507,67240706,67110145,83756543,50201598,-8388607,33554912,33751554,327940,-33161468,-33292796,67665922,167903743,8389119,-2146696972,16905216,16845566,33028992,17172480,-84508672,-159382006,167837946,-2147418108,16775680,16713464,-151385472,-99975162,83230976,209715456,17891335,-268468224,285212673,301463424,-2147418112,16842735,125829137,-16646376,16776960,33489407,65792,-33358077,-100564991,65792,16776960,16908672,-33521663,75498751,4367,-1081343,1114368,-15334016,16842753,16777473,-65281,-2147418113,16777472,-16777215,343933183,18935296,-535724032,552468481,-50067072,-16515583,16973829,50528773,50332161,33358591]},{"sector":17,"data":[-196357,-33685765,-2147418369,66978302,50333183,50464001,67108736,50332161,33521919,-83755774,-67109632,25230846,-16777983,-2147353344,-16644090,352386307,15727488,50266625,18022654,151289856,-33423616,-16580863,16908292,33620225,50266624,183960574,32505984,33488896,83821310,16843264,-16646142,-150733310,-16678902,16777229,234943104,67469312,167313419,16252032,-2147481087,167378688,50266496,33620736,196866,-33292543,-50201342,-768,33488895,-133922816,16973827,-58719486,16909308,-16711677,-2147287805,67042308,16581117,-16777219,-50134144,118325502,70144,15401088,-352288747,987381,-135005312,-16744435,16777230,-16513664,-134053879,8390655,2808,16220161,-159383543,67044103,33620736,196866,-33292542,-50201342,-768,33488895,-134184960,-16646143,16973828,-58719486,16909308,-16646141,-2147287805,67042308,16581117,-16777219,-50134144,84836606,66049,-131329,33358078,100598782,67175680,16974338,-16580607,-50201086,-33554688,-131330,33358079,176161534,-16777737,-2147353344,67043073,83887615,33752065,50134144,16843523,50266880,83656957,-50201085,-33554688,75562749,-33686012,-50266113,-2147222015,50199556,58721279,-167768572,-335773675,852224,-151060352,-2147483371,33358856,33555199,16843265,17039618]}],[{"sector":1,"data":[16843010,50332161,33358591,-196356,-50266369,-16646655,-16449790,-16646398,-33489407,-131329,-25165572,196353,33685762,33620993,16908801,-16580606,-50200830,-50267135,-1,33358078,50201342,50267391,16646655,-2130771970,-196351,33358076,51445632,425986,260111875,-50135538,-50266367,-65793,33489149,66978557,50332159,16908801,-16449532,-50070011,-50266623,33488895,-2147352320,67105545,75498237,-50069764,-50266367,-2130837761,-16972796,-16712193,-33293055,33881216,33489917,33620736,-50561021,67174915,100599040,25166846,-33423873,-2130707200,33491717,16843008,-16711679,-256,8388863,16842753,-65536,167804928,16777727,65793,-16711935,16777215,65664,257,-2147418113,33491717,16843008,-16711679,-256,8388863,16842753,-65536,201490432,16712191,-16711681,130817,50331905,33424127,16384384,257,-2147418113,16843265,-130944,118784004,152046064,285934720,-2147418112,16842735,-276824047,4359,-1081343,1114368,268895360,-2146832375,-16774909,-16646655,261891,16843011,33554945,33489663,33358334,33225344,33488896,67044350,16843520,-16646142,-50201086,-100958207,92339715,-2147351808,66847744,65152,260,150962428,16777727,65793,-16711935,16777215,65664,257]},{"sector":2,"data":[-2147418113,-16839662,16646142,33489406,50332671,16908801,-16646141,-75432447,-16580872,16973827,-2147417854,150992135,16908800,-33423358,-33489663,-16777729,-65794,16646141,33423869,50266878,50332671,33620737,16908802,196867,-16580861,-25100543,589811,-2147417854,368575498,-101840768,-2147418350,302509576,-125829119,-2146105109,719603,201454976,67403776,25171200,-2146238228,584959,16843011,50332161,33489663,-109051395,50333686,131329,-50135293,16351233,16973831,33620225,50266880,33358335,25166072,50333686,131329,-50135293,-2147419903,-16840430,-65794,33423612,50266878,83887103,33620737,16908802,-16646140,-33423870,-720768,-65792,-50331905,-33423872,261891,33751301,67174915,33489408,33423871,67403776,25171200,-2146238228,519423,33685763,50397697,67044608,50201343,16318973,116130176,16843520,16908545,-16449533,-16580861,-100532991,67403776,25171200,-2146238228,847103,184677760,-2130771968,396021,-92274432,-2147482112,723450,-192937728,-2147480576,352322564,15466880,-2147418348,846592,184677760,-2130771968,396021,-92274432,-2147482112,-16840430,-65794,33423612,50266878,83887103,33620737,16908802,-16646140,-33423870,16514048,-457344,-65792,-50331905,-16646656,-16580863,17104899,16908547]},{"sector":3,"data":[67174913,33489408,16646655,64765,67404031,8393984,491,-2147418347,16771854,70912,15401088,-168591339,-192937972,-2147480575,352322564,-8388607,491,67928085,67047424,16646654,-33554434,159383807,496,-16515312,-33423871,-512,-2130837505,352322564,-8388607,491,-351436779,217317631,-202109568,-66879475,68617,167049088,67403788,8393984,491,32788,16777227,201389184,67403776,25171200,-15728400,-268337152,-125825017,-2146301717,318303752,-101513344,-267943920,69632,15401088,67403797,25171200,-15597330,-301891584,-226487795,-2146300437,302050816,32374912,-2146107392,33424393,50266878,83887103,33620737,16908802,-16646140,-33423870,-83821311,-16777729,-65794,25166076,-33424127,261891,33751301,33620739,50266880,16581117,-16908293,-16777731,67403776,25171200,-15466260,-352288768,16908297,33620225,50266880,33423871,8388856,33556726,131329,-33358077,-2147420159,33424393,50266878,83887103,33620737,16908802,-16646140,-33423870,-83821311,-16777729,-65794,25166076,-33424127,261891,33751301,33620739,50266880,16581117,-16908293,-16777731,285376512,66821,33290880,-2147154688,352322564,15466880,-2147418348,584448,16843011,50332161,33489663,16318973,133562496,16843520,-16580606]},{"sector":4,"data":[-117310206,17137664,68102,116849280,118587402,-131330,33358076,33555198,16843265,33882370,16843010,50332161,33358335,-130820,16711679,-17756544,-16777472,-50266881,130817,33685762,33686785,16908801,-33357822,-66978558,-16777984,84443390,25170944,-15466260,-335904768,16777229,16774016,-2147480319,251659268,33686273,131331,-33358077,-251593471,16839296,17760256,50397443,50332161,33489407,32571645,67272704,-125823736,117441003,-301432814,318308607,-118617984,67272725,-92269306,83886571,-301629422,92279547,-2146239503,302378501,99351424,-301563886,318439679,-85064064,67338261,70925,32240256,-2146104064,16771840,243275251,-15338517,67272704,184551943,-125829119,117441003,-167280630,184090879,-101316480,-2146762742,368247824,-202699136,-335577067,-226492402,218169344,334790656,16777229,234943104,294912,25174016,-2145386272,516351,119601536,67141632,159389710,-2145386496,536928257,132184448,553222144,58720263,150669330,15761413,67697672,-33290368,196353,16843011,16711936,-1,-2147352832,16777217,-16777215,8388863,-2147155972,16907776,724864,-2147483378,127743,-8385024,-16843019,-33489409,-16581119,16908291,33686019,33555201,-2130836737,-16975872,33423613,67043839,50397696,16908545,-33292285,263296,-2147483371]},{"sector":5,"data":[125951,8393984,50201333,33555455,16908801,-16646141,-33358333,-33489663,-2130772225,-33228800,16908291,50397441,67043840,33423871,-17039107,-32632960,-33554690,-33423872,261890,33751298,50397698,50266624,-134184706,-16842241,16646142,33489406,33555455,16843521,196866,-33423614,260047105,18153476,-335577088,352321537,-17432704,-33554690,-33423872,261890,33751298,50397698,50266624,-134184706,16645884,33489406,33555455,16843521,196866,75562500,2834,-65539,-33554689,-33423872,261890,33751298,50397698,50266624,-67796738,-33554422,-65793,33423613,67043839,50397696,16908545,-16646141,16907777,-33289344,-16646656,17891331,-352026624,16646400,25166334,262143,-218333167,16777223,16775552,-2147481855,16714512,67047168,33423871,-130818,16711679,15600768,-33292529,-50201086,-16777728,-250904322,-65794,33423613,67044094,50397696,16908802,-16646141,8453634,-33620744,-16646656,261889,16974082,50397697,-2130836480,352322564,-8388607,491,-167739371,-16581373,16908291,167772929,66516352,50266878,16843264,17432578,67403776,16777727,65793,-16711935,16777215,65664,257,-2147418113,234882560,-8388607,498,67403790,16777727,65793,-16711935,16777215,65664,257]},{"sector":6,"data":[-2147418113,352323072,-8388607,491,67403797,70912,32243584,-2146107392,16773643,192940790,-2146699786,117898243,-109051902,-2146957320,352322564,-8388607,491,184844309,69120,32702336,-2146566144,-50072064,261890,50397442,-176158208,50201590,33555199,131329,-2147483382,-50072064,261890,50397442,-176158208,50201590,33555199,131329,-2147483382,234883844,-8388607,498,-167739378,-16581373,16908291,167772929,66516352,50266878,16843264,17432578,185106432,50201086,33555455,33686273,196866,-33358078,-33489663,-16843265,16646142,-33488768,-16646399,16908291,33620227,33555201,33489407,-130819,-16777219,-2147418625,352324356,-8388607,491,-301957099,-16581118,16908291,50397698,67043840,33424126,-130819,8453886,66979064,16843264,196865,-16515326,-50201087,-2130772992,352324367,-8388607,491,-285245419,-65794,33423613,67044094,50397696,16908802,-16646141,8453634,-33620744,-16646656,261889,16974082,50397697,-2130836480,234883844,-8388607,498,-134184946,-33358591,261890,17234048,50201342,1023,235831551,-131329,33358077,33620735,33882370,-8388350,131583,-2147287295,33423105,-196355,-16711296,-2147418114,16775179,25231103,-33555199,-2147353344,50331393,-8388095,83952383]},{"sector":7,"data":[16843266,-16711678,-50201342,-768,67469566,70912,32243584,-2146107392,520956,-109051648,117506303,184844288,50399744,196866,-50069758,32961920,17432576,33620482,67043840,-167739138,69120,32702336,-2146566144,235277058,32701056,-2146695936,16774150,109055227,-2146501900,235211523,32701312,-2146761728,201127172,-50854784,-184254453,-58717436,-2146761486,16774405,92277756,-2146501643,235604739,-192937983,184549874,-234848242,250937599,-168686464,-2147418354,235277058,32701056,-2146695936,16774150,167513339,-85259648,-16253682,202211328,209718774,-2146568462,848894,62592,-2147481087,658680,-192937728,-2147480576,33423369,50266623,33620480,33620225,50201088,-917120,16908290,16843010,-16646142,67304450,131330,-16580862,196353,-2147352318,33747711,50266624,50266623,33620480,16908545,1152,360480,16843010,33554945,33489663,33555199,-8388094,131570,-16580862,196353,67240194,-16581630,16908290,16843010,-16646142,-234782718,33555198,16843265,33554945,33489663,58720766,33423379,50266877,67174912,33620483,33489408,49185022,-16581119,16908290,16909060,-16646142,-33489663,1802658125,539903008,352840698,-320141696,-352026603,109051910,-2147482112,398824,100664960,67534848,201132548,82509952,-2146697974,183954189]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[1936287828,544434464,543516788,1953394531,1937010277,543584032,543516788,1701603686,1128415520,1415074862,2573]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[30169677,45,32,65535,-333119488,0,64,0,0,0,0,0,0,0,0,1024]},{"sector":5,"data":[1409297384,544434536,1735357040,544039282,1970365810,1936028265,1667845408,1869836146,1461744742,1868852841,221148023,240788490,-855002081,1275181089,8653]},{"sector":6,"data":[279886,1704183,190934735,131078,268436480,74332,131072,196610,4194370,14155856,15073504,1297,262147,0,0,0,1281949782,1282011440,96601417,185467153,-2147418108,1,94765056,-265289711,32769,-2147352576,2,95879168,1048582,32769,96272384,1048579,32770,-2147287040,1,96468992,-265289663,32769,-2147221504,1,100728832,-265289726,32769,-2147155968,1,100859904,-265289708,32771,-2147090432,1,102170624,-265289725,32769,0,1279345412,67,524289,100663308,1314014539,1191398469,1426344260,22168915,1070399999,17398273,33489408,1744912333,1070399489,2647809,1766664192,1936683619,544499311,1684957527,544438127,1668047171,1952541813,1092645487,1768714352,1769234787,28271,1279345419,1145984835,1129271888,1090846721,1414876994,3,0,0,0,-2081649835,-1202320148,1344144900,16777114,-96040704,100941440,-1207601875,65732618,-1996486216,783874118,79187968,-397402618,-998042738,1958742790,-129564925,185218815,16777114,1458604800,-150993224,50740270,1342866950,-150993992,-1727498706,-120470997,176686595,899152,104607479,1983315792,6469640,1375797178,22387280,1048772608,1946159744,297293364,1009710848,-1580692730,787940924,-936703220,176557571,243793]},{"sector":7,"data":[141962999,-775804007,-2012871688,-591900662,-11526646,-351597514,1183536716,-96060936,1183516029,-1962677254,788002886,-930412996,-150990152,721828910,-2046426175,62410762,1982789376,-1037330168,100923601,-1202713976,1344144900,972572299,92142150,-335919477,-129594621,-26032,1048772608,1946157072,112744008,1009710848,-2046426362,1990283274,62494984,-1946552576,243912,141962999,-775804007,62981112,1342867462,-1727644511,-120470997,141992272,-775804007,1119375608,1347590400,16777114,171376384,-6662645,1577058559,-1017256565,1167087646,518818645,2122438798,1963004172,242679569,1342177720,16777114,112640,2122385899,1946226700,-2084557836,-443874579,-900899553,-1957363702,183272428,1187468887,721420542,245503,16678531,-8167563,-1957004026,126551646,-1577564535,-269023684,-150993223,-1194816535,787939342,-1147599300,-67698678,1317652483,768246,104607479,244121,1174665719,-2046426122,-129615094,1183520894,-2046426122,-129615094,1187448701,-352321026,-373281885,-347668345,-25263205,-940411904,65094,1451030027,-150440287,-1948200466,702664,141962999,-930365141,-150988872,-1727498706,-150969157,-1983370245,-1047791538,141954699,-1056710191,176686595,990273163,327025223,66602635,990545926,-1585642937,33441479,1308748544,16678531,2122557044,-1921777410,-1996071285,106859319,1459781513,74907478,-2097148696,28837572,-1956684288,1438866917]},{"sector":8,"data":[-326898549,-11118844,922682486,-6681848,-16776961,179831926,-6664192,-1962934017,787941446,112789052,-1947601152,964848,104607479,702873,-268174857,-150744648,-1727498706,-150969159,-1946645511,787940934,-523171722,1996486699,-2043280636,1040406026,-1202255224,787939339,-1181153732,-101253117,-1202665981,787939335,865667190,-1178457150,-120389630,-1037319629,-1588541693,-523172292,1983315792,57842184,1996423168,-1202235900,787939339,-1181153732,-101253117,-1202665981,787939335,865667190,-1178457150,-120389630,-1037319629,-1588541693,-523172292,1983315792,-26104,1599995904,-1017256565,-387151019,922689010,-6681898,-1962934017,1438866917,-1957237621,731448390,-1946627646,1226992,104607479,909766699,92145212,-351912799,-1547269374,1183517318,-1037330170,-259262255,-150993224,721974830,1983265264,-1593475576,48957558,-2002532725,102540042,-150991688,50886190,-1559590906,-2036267488,102408970,-150985544,50740270,-1559591418,-1956772322,1438866917,-326898549,-1588177104,1183386246,833750,141962999,64243337,1208649734,-1579661687,100862598,1183385148,-666465318,-1948498295,1183439430,141992414,-775804007,-767129096,64767627,1183437382,2406624,104607479,63981193,1208649222,-1579006327,1183386248,-498693148,-1947842935,1174660166,-398030382,65160843,-1996080122,1183574598,-330921496,-1593542913,-523172292,176555523,176726352,141952515,-797537456,-729904298]},{"sector":9,"data":[4372567,-1706012007,1249,-1207666945,-1706033151,1322,87071312,1996423168,176595204,104596995,141992272,-775804007,-2012871688,1465274378,-1174396488,1347551472,398746,2406400,104607479,213446795,1982789376,-488696,906167414,55970438,1460308030,16777114,74907392,50740385,1990283462,-1037330168,-956041007,-26032,1996423168,571396,95918672,-1706033152,1451,-1929087233,1343673926,1342178232,348826,74907392,383927949,243792,-26032,922681344,-6682538,-1207959297,787939342,-1181153732,-101253110,176555523,-1192081783,787940305,-1181153162,-101253020,176686595,-768375,-1928656330,1343681094,16777114,74907392,-887041,-6622090,-16776961,922682486,-1113978794,-16777211,129500278,-6664192,1342177535,455834,176595200,-1577564535,1183386248,-59340294,-1912701303,1343682630,1342177720,-26032,1996423168,-129594108,922701846,-6681848,-16776961,922682486,922684038,-963966328,176555563,734497616,1342867462,-1174396488,1347551472,31386,74907392,-2096668440,196608708,1009710848,96049414,-1946552576,833776,141962999,1996486795,-2043280636,330847754,1982789376,179935496,66713344,-1962244034,1372072911,503334840,178256,109484624,1996423168,666392068,1982789376,179935496,737801984,1356396487,503335608,178256,111843920,1996423168,1001936388,1982789376,179935496,737801984,1356396487]},{"sector":10,"data":[503336376,178256,114203216,1996423168,1337480708,1982789376,179935496,737801984,1356396487,503337144,178256,17209936,1996423168,-26108,1183383552,100835822,953241,1039791878,1232994305,-1149185,-1710571466,1853,-1207666945,787939488,-1181153732,-101253115,176555523,2799696,141962999,702873,100923895,-1588589944,-523172292,1983315792,-294191352,1347469355,-352318280,-294191289,142096127,176026,74907392,-150953800,-1727644626,-150993479,-2046426119,733499402,1982789376,179935496,66713344,1342867462,-788120415,922702048,1996425334,1354771438,1030224,548950096,13416960,-6664110,-16776961,-207950218,1577058314,1575324511,-326412861,178929283,-385649408,113705099,2730,104347391,102905599,510874,1446444800,170433032,922681344,922682936,-224786346,-16777209,721827894,-1202696000,1347420210,-1174396488,1347551472,305306,943128320,1412890374,79337992,922681344,-1070922184,196628560,1009710848,62494982,1358558976,-150992968,-1727498706,-1037319629,-754974023,734147576,1017204930,1356910854,141965055,210586,74907392,-150452597,-1190773714,-369688570,246990987,1009710848,180066566,66844416,-2045901880,1183535370,1982789382,-1948200696,64075976,141962999,6601625,-1054082057,176686595,768080,104607479,244121,-1588528649,-523171722,943128400,1354771206,2144336,1375784122,-26032,-443875328]},{"sector":11,"data":[-1957313699,149717996,-164932009,351815367,75399936,-1610123922,-1986524542,1303905350,-6664192,184549631,-1960280640,725419078,1027830784,1165230125,1946174269,5389585,1664953716,1023898624,594804850,1187448299,184550404,-1959954954,1065416798,-14322688,126548038,71711640,29288821,-941298944,197702,1187503595,-352321020,71747542,-806682623,1249179147,-1576335712,2123041406,351240696,922701568,1100614410,-1996488704,-947127738,440729,-1957496329,-101213753,-92864688,-2080814872,922683076,1996425994,23042810,-2054553600,1352138772,-2095719960,-963968316,-443850914,1478411101,-1957345904,-661774612,-1959859069,4000838,-385649407,58065501,1023614441,1215561729,1962934845,21686531,1946158397,408853,255664756,-385649408,339542287,-379882496,1996423379,142016266,-402229505,-997983803,52881670,687747,501810037,242679555,16777114,51570944,-401705217,-997983854,50784514,503716536,142016336,-1710852353,65535,208977931,178796287,231322,48687360,181810943,1996485355,-196702962,-6664170,-16776961,-1710735818,1371,-1928694017,1343681606,138295039,16777114,45541632,1195651,-385649664,1996423852,108461832,-401705217,1911096010,-2143386625,57933834,-2096983063,4670,-1981217932,172395266,1946157373,146696,2045315444,304211970,-402492439,1843990844,172395266,1946412861,242679575,-15960321,1996425846,108461832]},{"sector":12,"data":[16777114,38725888,104478463,-1728052296,1996443730,2083979022,2050424584,-26104,837353472,242679554,382879373,-26032,1996423168,-114562862,-16595837,1183649398,-1706027310,65535,-369814040,922681864,-6683080,-16776961,-1710874058,2835,104478463,16777114,81152,922690677,479856726,-16777205,-1710735818,2853,142096127,732826,-1070137600,-26102,-1070923776,-26032,-1175912448,-230242559,1996423168,-26098,-1073020928,28840308,-6664192,-1996488449,-6622650,-16776961,614076022,-1996488692,-1202652090,-2091909118,1946219134,-339727612,112643,194353744,1048772608,1962934290,23783683,-1191414017,1347420161,763290,-59310336,1342177976,1342177720,16777114,21686528,1195651,-385649664,1996423488,200514062,-1073020928,837354356,176063233,-2096270783,2002389630,172395271,65740812,-1995815285,-397407674,-997983040,1975520002,17492227,-67095,-6680970,184549631,-385649472,1183514872,2964746,1211960692,1031762944,980680817,-2097093655,4670,-639040652,242679552,-1710328065,3136,178256,8435792,208247376,-1981284352,242679567,-1710328065,3163,178256,1048786411,1946157074,10676483,-15829249,2006584950,1342177292,1342177720,1342210232,820378,271706112,-15829249,-6680970,1342177535,1342177720,-1705983957,65535,1048800491,1962934290,354216037,2122539243,1517635594,1181383]},{"sector":13,"data":[79167488,-1202708986,1344145472,16777114,-30086912,1963004221,-39982845,20780407,1037267969,57999618,1040114153,-965476091,1040039657,57999634,1040035561,57999638,1040079593,57999872,1039992297,57999873,-369275415,-310116965,535137026,181030237,-326413056,1443163267,-150993224,-259324818,-1979288061,-2013260668,1587084870,-1017256565,-2081649835,1448543980,-1710983425,2363,-1923682165,1343620678,1342177720,16777114,184983552,-1928692062,1448085062,-2081140760,-125107004,1443133183,615066,1962871552,142016277,-402229505,-997982313,1357130244,-2095983128,-2014838076,-1956684046,1438866917,-326898549,-11118836,922682486,-1248196524,721420295,1476340726,74907478,-2080769304,1996424900,104636676,112848887,-1947601152,1882312,104607479,703385,-939262985,176557571,141992273,-523112713,213436555,1982789376,-1950274808,1292488,141962999,737933209,-2012347448,112742666,65992448,3016135,28856350,1654280192,1191182342,2080833411,-24951150,-7701500,95945846,1009710848,-2046426362,62410762,1982789376,-2012871928,347623434,1009710848,-2046426362,-2002694134,1980105482,1017204744,1356910854,-787974495,765087968,1577058312,1575324511,-326412861,1461120131,205949782,-402244957,-1073020227,-1070922379,-2097015831,1962936958,209125138,-2097016856,-1073020220,1105789812,-1840383,1991772790,45633544,-1617276928,-16777202,1018694262,45633542,-1348841472]},{"sector":14,"data":[-16777202,-659027338,45633546,-1080406016,-16777202,12061302,45633542,-811970560,-16777202,45615734,45633542,-543535104,-16777202,1421347446,45633544,-275099648,-16777202,146279030,45633547,-6664192,-16777202,1454901878,45633544,261771264,-16777201,1052248694,45633544,530206720,-16777201,-692581770,45633546,-6664192,-16776961,-1464333706,45633546,1067077632,-16777201,2025327222,45633544,1335513088,-16777201,-1061680522,45633546,1603948544,-16777201,-1061680522,45633546,1872384000,-16777201,-2101867914,45633546,-1885712384,-16777202,-1207551434,-1202716671,1344146058,1342185144,1022874,976682752,178182,182237264,515395614,-1097183232,-1207959537,1344146140,3482,185377536,104478463,1342178232,504033464,1357904,-26032,113704960,68266,111305648,176071179,-1157627976,1347616767,104478463,16777114,142254848,142349961,503337912,176863312,-1070903266,1375784122,1347440720,-11513776,1347423350,16777114,-1980724480,1443564086,-1705983957,65535,727185547,1347440832,1342433208,1342767288,1064858,-1070901504,183547984,-407351266,12079107,-6664191,1442840831,-1710983425,65535,-26026,350945280,384452237,-26032,1183645696,-1706027286,65535,384452237,1354771280,-6664112,184549631,-1948682816,1600056902,-1034033781,-1957363702,82609132,184606440,721778112,8645056,184633320,-1191938880]},{"sector":15,"data":[-1202716608,-1706033126,65535,-244087,28836982,1347590400,16777114,-60912896,-1962129527,1204288606,-956301038,5191,-1191420277,1200160856,408914966,-1577296245,1200162878,-60912880,-1996208501,1586170439,50841596,-60912896,-16627769,71813119,1183580159,-1706025220,65535,-2089500661,-1694730497,65535,-1962933832,1438866917,-326898549,1354771202,1144986,-28931840,74825739,837533739,-1694599425,1750,-16369501,850984566,-1706012672,65535,-2096749917,407614,-1072965004,-1070868876,-25755824,1169818,1575324416,-326412861,1445129347,-1705983957,3372,-166989685,-1070922635,-1923721237,1343676486,16777114,-532247808,-1962379613,1017375302,414733830,-1063628800,1023410193,142475266,181929671,116064257,181929671,-1202323456,-1706033112,4557,1443233955,1342188216,16777114,100836096,1448132651,874906,-443851264,-1957313699,49054700,1354771286,1178010,139764480,1342178488,308378,185115392,181943939,-1206750208,-4554881,-1706012160,4704,-351775069,571429,28856400,-1202696192,1344143454,16777114,1458604800,16777114,139895552,184326742,1048772608,1962936406,-373282043,1048772871,1946159832,16758790,-1207506023,1085964288,-1706012160,65535,185089699,735737024,12079296,1347590527,1214362,181838592,104478463,-1728052808,-6664110,-1560280833,922684072,28837434,1347590400,1223578,142123776]},{"sector":16,"data":[104478463,-1728052552,-6664110,-1560280833,1048775360,1946159784,2017362828,-2055995384,-2123055093,104478463,1342177720,504007352,2013264,317954640,-1073020928,1692992373,976683007,178182,182237264,515395614,278548480,184549395,-385649216,922746695,62391866,-256356352,-1202708982,-1706033132,4909,58048523,-54551,-1207551434,-1202716668,1344146050,1342177976,1017242,1975520000,-15865597,-1576369504,396492849,182237184,-1516613602,-1560281073,28838668,-443851264,-1957313699,116163564,-164932009,-16353537,-828767114,-1962934253,-1004868616,-1977220002,1183422464,25831166,-1979676634,1589968454,25699844,-147108026,1600053628,-1017256565,1475119957,149717846,-1962641779,-1526262020,-1197103707,-1202716562,-397407550,-998035993,180533260,1600051852,-1017256565,-2081649835,-11140372,1996424822,323459588,-259325952,1589908459,71761668,638076554,91555640,-352321096,1321634569,-427835381,-1956724693,1438866917,-326898549,-1202301158,-11534290,1996424822,-4921340,184992899,-15698496,1996424822,7583748,848973854,-1207959530,-11534291,1996424822,-7280636,184992899,-1089964864,1191116801,721611524,108462079,-1710983425,5492,512618635,-1175976574,-161575665,-1928270360,-402292194,1586302892,283175148,1589917931,126494212,1021855368,-1741720530,-1914288503,-622270882,-161575665,-1928362008,-402290146,-974646712,-1843491566,302966789,-386507123,1191121066]},{"sector":17,"data":[-167031292,1191167103,-167031292,1488480372,-11526648,1996424822,361536004,1488453632,-397402616,-997982576,-196688124,820709464,-1963696501,1183422471,-396456472,-1928364824,703130718,-1709273841,300607493,-1928173592,-402288098,1586303408,273475820,-196673714,-864029173,93986445,-1928395800,-397153186,-396684860,1586303026,250800364,1408654989,1527905256,185606632,-1928366849,-571935138,275572750,-386507123,1586302990,248441078,-402444101,817369090,-1956684285,1438866917,-326898549,71204884,192228614,503710904,101038160,-2144146658,805700670,79171445,-1706025466,5584,2113929789,-330906078,-314143443,79187990,-1706025466,5531,503710904,-330920624,-1382395882,-1962934260,1438866917,-326898549,-1084860666,1048576009,1965884932,783828737,79187968,-397402618,-997982722,1958742790,79185665,-1706025466,4967,-147066741,-24958092,-2146929407,805700670,-1974599307,-2071460794,1150092804,-96040703,2097154877,-338130172,768771,100960198,-1956684288,1438866917,2122378379,611659268,1342189240,503710904,-39786416,184992899,-1205307968,1344144900,503346872,-26032,401276928,-1325105536,250086773,-1978864641,-467008442,-11016112,-1962752893,1438866917,-326898549,-2141825240,1024097854,1961427829,100972547,-1964486626,79987709,-1946648947,-1526262032,-1197103707,1344144900,-2080541464,2123171012,384863216,-1515870969,103069861,1592283166,79987709,-1947697523]}]],[[{"sector":1,"data":[-1526262032,-1599756891,1033373208,57999402,1023540969,326369323,1962945853,10807555,1962946365,20310275,-1929193751,1038674014,-2111927027,221702149,2115010792,-262238932,-1928516632,-402292194,1860701476,-1923318256,434694238,-1575056115,264431621,-386900339,1458048268,-347833072,-396456644,-1928527896,-402292194,1122503928,-1926202096,-303501218,-2111927028,216459269,2098213096,-396456674,-1928537112,-402281954,1586302852,214886640,2114984168,-2147039482,-2097151734,688190,1290339188,-396456702,-1928547352,-1108807586,37218575,-387424627,512560292,-1645738622,266856460,1586310269,210954480,92413581,-401830936,1551765461,-387424627,512560256,-1981282910,-262238961,-401837080,1149046717,1586314475,208070888,92413581,-401842200,813567913,-386900339,512560212,1307051394,261613580,1586306685,205711592,94510733,-1928408088,904458334,260040716,113706622,68224,176176771,-385649664,1586299315,203090152,-386900339,-1628893524,-262238975,-1928590360,-402292194,1323830276,-385649393,1586299008,200730856,92413581,-401870872,947785529,-386900339,512560100,-571996798,254273547,1586302078,198371560,94510733,1586316011,197585128,95035021,-1928421400,-1175916450,251914251,921386621,-386900339,512560044,-1511520894,250603531,1586302077,194701544,94510733,1586352875,193915112,95035021,-1928435736,-2115440546,248244235,113706622,68224,176176771,-385649664]},{"sector":2,"data":[1586299135,191293672,-386900339,-353825216,-262238976,-1928636440,-402292194,-1696068784,-385649394,1586299155,188934376,-1928539672,1944641630,-396456692,-1928645656,-402292194,1994918700,-1929020402,65792094,-387948915,512559900,367527346,241166347,-2014772353,-262238976,-401930264,1586302102,205056216,-386900339,512559864,-236452478,238807050,1586300284,-1929122832,-504833954,-1306620662,182118405,2114856168,-1575056049,181331973,-387424627,512559816,-1041758846,235661322,1586300284,-1929122840,-1310138274,233629706,-386900339,512559784,-1578629758,233564170,1586300284,-1929122832,-1847011234,232515594,113706621,68224,176176771,-1928170240,2045306974,-262238966,-1928512536,-1477904290,-2143386869,779419658,-1928795005,-57935754,-1515911402,-605510235,147096569,79188050,703090694,113541928,1342571704,1342579896,-2094523416,1458046148,-1956684287,1438866917,-326898549,-1202301176,1344144900,-2080765720,2123171012,384863224,-1515870969,-128021083,-1928721432,-402292194,1323829764,-955679475,17465350,10086656,-386376051,512559600,-370670206,221505545,-2065104011,2118025216,309686538,-386376051,512559572,-840432206,219670537,-326931596,-126448376,118946955,-1515870811,-2096270360,2123172036,384863224,-1515870969,149717925,-1946650995,-1515870724,-115283803,1376306307,100972624,661579856,-1207516029,1344144900,-2080805656,-661977916,-1928758296,-402292194,-1092089484,-1206946548]},{"sector":3,"data":[1344144900,503347384,450009680,2129133568,-1956684288,1438866917,1048833163,1946159876,67553047,-1207959541,1344144932,503710904,452565584,65732608,-1963231000,413271110,1575324422,-326412861,182060743,79167488,-1202708986,1344143483,1358490,-2143386880,125108234,176045696,-954567325,17499142,103069696,2126008350,-1706025472,6980,102237894,-2147039488,-1962934262,1438866917,-326898549,727078682,-398029313,79187990,-1706025466,7034,384321165,-123213744,-1962621821,146204888,92413581,-402083864,443812857,55041931,-394297123,-1191873488,1344144900,384254861,485071440,783810560,79187968,-397402618,-997984202,1958742790,100972587,1218072606,-1962934252,-1132441872,1949304324,21270008,1038501513,75300875,65788043,-973075525,394375,-443850914,-1957313699,250381292,922703447,-1382413558,184549404,-385649216,28836015,-6664192,-1962934017,1979059184,10348803,483498582,1183383552,-61437446,-1980348791,1589966934,126494454,183649928,645428416,2084650880,1065362954,67403610,-1979454688,1183380038,1970093310,-163119303,653680324,-1952970870,2084650232,2136620041,541428997,-947191061,1946168125,2964780,1664946292,1026454528,594804850,553535174,1187382507,1191117310,-28931338,971526296,46433260,-337407512,-28916083,-957879550,-352059834,-28915999,1457253124,1896346,486447616,1035468800,233328640,46433260,1591961064,1575324511]},{"sector":4,"data":[-326412861,1443294339,185218815,738970,1958742784,-26035,1119354880,347623424,1347590400,16777114,200313600,1446212854,16777114,-96040704,201086601,1378055362,-1191545089,1344144900,1747610,-6662656,-1207959297,1448083457,16777114,190552576,-1956773888,1438866917,-326898549,-1202301160,1344146092,-2080972568,2123171012,384863208,-1515870969,100972709,-890744802,79987702,-1947173235,-1526262032,-1918523995,-840374178,-2111927034,113698821,2114588904,-262238932,-1928938520,-402292194,-18348364,-1923318263,-1444353954,-1575056122,156428293,-386900339,-421001572,-347833079,-396456644,-1928949784,-402292194,-756545912,-1926202103,2112417886,-2111927034,108455941,2097791208,-396456674,-1928959000,-402281954,1586301204,106883312,2114562280,-2147039482,-2097151734,688190,1586311797,105310440,-386900339,1586301264,125102328,-1928795005,-57935754,-1515911402,-1343707739,147096565,-1397206958,-35106806,113541923,-386376051,512558612,233309570,156755974,113707125,16,113706731,65552,-443850914,-1957313699,8501484,179091536,600238160,-955988861,4102,1575324416,-326412861,1461251203,179091542,-1293397986,79987701,-1947697523,-1526262032,-1197103707,1344144900,-2081055512,2123171012,384863216,-1515870969,-396456539,-1929011224,-402292194,-488110696,-1926464248,-1914113954,-2111927035,92727301,2114506984,-396456612,-1929020440,-402284002,1586301060,91154672]},{"sector":5,"data":[2097723624,-1925387452,1642653790,-2111927035,89843717,2114495720,-262238928,-1929031704,-402292194,-1830288056,-1927381752,1038674014,-1575056123,131000325,-386900339,2062026032,-955875832,17465350,-2143386880,846528522,-387424627,1586300184,128641264,-386376051,-326957498,-126448376,118946955,-1515870811,-2081127960,1347553476,1342876856,-2094870552,1586300612,82241784,92413581,-402333720,141887529,1050311,116064256,1050311,1599995905,-1017256565,-1964209323,111281222,1038363147,578027566,-722926730,212224,58097012,1023454185,57999361,1023447017,57999362,-385842455,1048772861,1962937050,75399189,-1206946639,1344144900,503350456,535468624,1183449088,1357130244,-2081002264,2122318532,58044676,-956248855,17488390,12839168,704923274,-85438236,46433274,182060743,-1360461824,-637090048,-402653174,113702529,-385874408,48758941,-1193153542,1344144900,504016056,454859344,113704960,2778,-335857432,-49551234,887681259,-387191810,1877736980,-352292632,-86644557,624780779,2012312576,277767,1475077492,1912613437,2833746,759007862,-343575552,6503750,527947636,1962946365,-9115389,1912614973,3751218,770245495,4013567,1961427829,1025567743,57999470,1040129001,57999472,1040141801,57999473,1040149481,57999537,-1946221591,1438866917,-326898549,-1202301160,1344144900,-2081198872,-661977916,-1929151512,-402277858,1586300500,78178544]},{"sector":6,"data":[503719096,-212866992,-1929067389,-259266434,-1515911402,1586341285,55765224,92413581,-402437144,142345877,-387424627,166396736,-387424627,-941096136,-1306620668,53405701,2114353384,-262238899,-1929174040,-402292194,1726481180,-1928823802,300478558,-1928729853,166260830,77129731,95559309,-402456600,511575625,94510733,-1929186328,-840374178,-262238971,-402462744,108856881,176162503,1048772609,1962936960,-396456654,-1929195544,-1847005090,-128021243,-2096890392,1988954348,385649656,-1515870969,-231151451,1376306307,100972624,545712208,-402209661,1600059841,-1017256565,-940799147,711174,-2147039488,-956301302,17499142,403097088,79167494,-1202708986,1344143494,2205850,179091456,-1984409570,-1706025472,8647,-1017256565,-2081649835,113706220,65554,503857336,100972624,-1835380706,-1207959521,1344144900,-2081282840,-661977916,-402508824,1183384471,-27883012,-1934077870,79187968,-1461170170,147096351,16678531,1183516796,-27882500,1183518187,-27882500,-763111177,-2082801920,159318522,-1073019780,-471334029,1575324637,195,0,0,0,1942235995,920188696,656953,959844215,1979714566,212022788,-2061568,-1140870941,-1329856848,-1705993987,65535,16777114,1958742784,939968299,-1996488701,1459654670,1381172822,857605352,-6664000,1459618047,16777114,1958742784,-339351545,511567952,-850591816,-1957313759,-18196,-1957313699]},{"sector":7,"data":[-18196,-1957313699,1354771436,-1710983425,8903,-1017256565,-1192457387,-1957691328,1861682246,-23441402,-1962934238,1438866917,1996483723,108461828,1342193848,16777114,1575324416,-326412861,-1710983425,8973,-1017256565,736922453,1996443840,279484932,-443875328,-1957313699,74907628,1119386,1575324416,-326412861,-1710983425,9078,-1017256565,-2081649835,-1070923028,71732048,-1706012007,7365,-1929492855,735087578,1575324608,-326412861,-16585597,-6683018,-1996488449,-628294074,-1070870389,-1017256565,-1275051,-6683018,-1962934017,1438866917,1996483723,-26108,-1073020928,28837236,721611520,1575324608,-326412861,1347469355,16777114,-402345728,-443867504,-796081315,1465303182,512488331,-1014824408,-1929671924,-1898345280,-52916543,-644962907,384562059,-208971946,36183691,-1962097789,-1898345221,-1515848511,-75369589,1584661024,36183689,-956532855,1594097223,-796081314,1465303182,512488331,-1014824408,-1929671924,-1898345280,-52916543,-1515870811,-208938610,1465260267,512488331,-1014824408,-1929671924,-54423847,-1515870811,-75369589,242483744,36183689,134105030,1610381193,-186006690,-1898935293,126559936,39291686,-796125973,-1960394610,183212295,1468729227,-1962677502,1465293063,-796140917,-2145073270,-604567687,-612115721,675187456,214401794,35716993,1049214068,2106130984,-1898345220,16744641,1170607221,-1632369666,1594472424,1170654046,-1118500866]},{"sector":8,"data":[-880048288,-74720461,1561136872,1455644255,-1898410921,675187648,-59405566,-2080488054,-8319801,-1267465696,36191881,-1996718711,-1510146491,1946369189,1604691202,-796081314,-661912853,1465303182,-1946354805,-2097010658,201467910,-796126741,-661912853,1465303182,-1946354805,-2147342306,1963196031,-59274483,780379557,1594622504,-1990868130,-1962888154,-396886921,-1956707328,-454337058,49008780,-1064380276,-74754218,673090556,671515394,300616706,49008780,-1064380276,-74754218,673090556,-25198590,-1961921273,-1515848585,780379557,1594622504,-544750754,-1962724120,-337672201,1431787241,11806345,915099987,-293404120,674662668,175931394,141855491,-1243085451,-402396412,1532560565,-1017225379,1049319254,1569325608,-59405314,141948731,830537522,-1017225344,-1929609847,-54423847,66814117,-2136143755,1605075188,-1515863202,-2131459923,-1017225301,-796108970,49004686,-2065148074,1443162882,-1191998633,1995112456,-796108970,49004686,1827166038,1443162882,-1191998633,1592459268,-796108970,49004686,1424512854,1443162882,-1191998633,1189806092,-796108970,49004686,1021859670,1443162882,-1191998633,787152916,-796108970,49004686,619206486,1443162882,-1191998633,384499728,-796108970,49004686,216553302,1443162882,-1191998633,-661979136,36191883,-1047602804,134118784,2106003572,646534652,-1744895820,1599930514,-1014774946,11976450,-1962797080,675187703,1457515266,-1898935209,1443032000]},{"sector":9,"data":[31189079,1465255147,179893131,1450633984,-1898935209,1443032000,29616215,1465255147,112784267,1449061120,-1898935209,1443032000,28043351,1465255147,247001995,1447488256,-1898935209,1443032000,26470487,1465255147,381219723,1445915392,-1898935209,1443032000,24897623,1465255147,314110859,1444342528,-1898935209,1443032000,23324759,1465255147,45675403,-1948742912,-1946015682,-2134798631,1946680957,1592284677,971595265,310271,146480363,-1156060416,317390860,-352317253,1358605,12257515,-1157371136,1465253912,36191883,134118784,2105559924,1031014386,-1995640957,-1946015682,-1950314792,2106195061,142445564,1931017091,646534413,-1744895820,1599930514,780387166,-15990232,-1627352425,-784269275,182767848,1583324896,46367683,-352262936,46367675,133332352,-276581772,675186956,13625346,-1346654741,924629504,-2129762327,1986939143,1684630625,1766067075,1701079414,544825888,1325958192,1718773110,-1971884180,1635013390,1864395619,1718773110,225931116,1920099594,840987247,976236593,1869366816,1852404833,1869619303,544501353,1869771365,-1105184142,233514985,-349709122,670285320,-742521877,1444871207,45817614,2406656,-1272446022,1176620352,-1953392468,-851397418,-1161065695,1085548547,-1403117107,1357132319,-132681496,-1074558005,-1064566602,-1047602804,-1510156146,-1093038427,-1950154570,11976691,-645087092,-661732978,-1515870724,-1093038427,-1950154570,2106195061,-28981508]},{"sector":10,"data":[-1962677497,872217717,-1962112064,-1023999404,628391808,-86964855,-657335855,-640550191,-86910767,-657335855,-1996339831,-427817907,12747151,106268984,-1996125757,1166606917,105220356,675187651,210500610,855790731,-2134706240,-785812353,-774254086,-772091432,-774319655,-774254086,-1880719144,939573889,1479,-1996339831,1435042893,-1007187194,-796211061,1049357035,-1375993304,179161227,-1378579768,-594874230,-772240723,-774647326,-774647326,181653986,-2147257139,-2135883318,-326436598,-265950942,1205878143,2964855,-784633288,-773795360,2010200800,-166366713,276038086,-2097035648,141754579,1023442949,393510784,376750091,176154496,-1981478201,-477494715,92915338,-373033077,-1070334327,1166607753,-1007187198,-628370893,-1014247285,-796189205,-770974925,-621341319,-628420117,-1014247285,125419531,-621290505,-1979655293,-1266670396,74901918,-628370893,-1014249333,-930406933,-921969869,-638118535,-628420117,-1014249333,125419531,-638067721,-1979655293,864036036,-1110297601,-1393982112,3860487,736628203,-402068736,65732661,-788519192,13796288,-925801355,10086595,1055395307,-402068736,65732698,184564200,-1018464814,-352310040,2942989,2028472555,-402396416,-919404482,226098955,-755510793,-2081040137,-779943726,-2084384512,510984401,-389821743,65732691,855644648,570537435,-2134045973,334856697,1925387227,-1695956223,10873341,-703950163,-1850895443,-293367379,-1225159928]},{"sector":11,"data":[-2131680753,-444591922,-773205633,-773205527,1959332841,-18251304,-2089192957,-897638151,-349836925,-1965935824,-125129510,-1396143443,-293355130,-1947629052,2145485305,-790310912,-590284335,1299499275,1920919936,553222983,-377251713,-2133199072,444336377,-184419712,-494873904,-1965880831,-1963423009,853969604,149520630,367256043,-1308493184,14319617,-657330480,-623846447,-503262592,-1949660429,-1010594864,-2147438087,-1070399279,-373043061,1760099557,-402149376,915079477,2080571944,284132102,-427763829,-252018305,-1981779073,-24443268,-54531645,-1342141976,17819651,36189835,-2130543613,-1962901265,2145812695,2139159169,2089410419,-1006728446,-1962926360,-2097010634,2080444655,-1006728442,-1962912280,-2130565066,16810223,-24444292,1049361603,-1064566232,-1047602804,-1515870811,915128462,280625704,105679616,-511575669,-905314289,-2130293623,-1946160921,2145747151,-788515400,-773205527,-2115382807,2097427433,-338036988,8710465,675187708,-1933538302,-1514041639,-1950314843,-1174263754,1284178048,-2114352382,167804897,38570442,-8329343,-444543093,1620095,-846536239,-377361102,1216151702,-935601673,343732107,-2147424383,-935593461,-930411916,-444469365,-366247936,-108998093,-2146141176,-1292566022,13795328,80090122,149520384,-1964512442,-1156783308,-1047920086,586058455,-1020491544,-779368141,-1144834934,-276168703,115597706,-674174255,-687146270,-754262494,-1300104576,14319617,-41221516]},{"sector":12,"data":[-489436022,36179595,734528408,-1997405490,1174856500,-503311232,-1007172614,1282703232,-1007299631,-2131005463,-456097844,38046659,39684902,1954513065,-1445922847,-789086336,-738729356,2139145207,-663432201,-281875318,-472787592,192143569,-1929934957,-1898345278,1004179137,-1962576445,87762436,-255592509,-782338945,-373033517,-863962340,-1008414593,637944971,-1459200629,-512458768,-257306377,1959851903,-137103390,-142610237,-1965525805,2028942060,-773598763,-1827965984,-1030948985,-1047602804,-1019487602,1149966197,1161504260,-1961986812,992346692,91554373,992347275,-142097659,-2147334773,65765620,-1962785397,898236765,-813694798,38570880,-1946190709,-410975884,-830341376,-1043234816,-318062383,-469080716,-331719820,-209255053,714209927,-2133002523,1232541948,-388970032,-1970153008,-486492723,251232341,-771026308,-880802956,869501697,283738331,1047797106,2114320768,1959922219,30310403,-209004918,-41230454,1997072768,-786205673,-19672606,-336038463,-1948349671,-792622121,9955816,1950335734,550141955,-623776815,-1024001310,-2147257281,-523231030,-687664016,1349770771,-623780911,-58669826,-381323777,-97781267,-678694117,175365771,-621292553,13861877,-619982602,-327152779,-2023066096,1960512474,1979648612,149717007,-74818698,-225780086,-16068046,-855766408,-489600140,-160312367,36847232,-385649664,-92274316,1913091968,29816340,-964685964,13861633,-989984909,1962933376]},{"sector":13,"data":[-773795782,2139138520,-2145118348,176154496,675187655,38111490,-963976310,-141884023,842956995,57933826,855733993,675187648,38111490,-141884023,-370771517,-1375930039,-778685301,181981408,-1948879644,-506396083,-318055984,1032571764,-1053632373,-2139034496,-452821011,-998190224,-229248,844156276,-2131784961,-914325301,-1947497600,-1947732026,-1950348326,-403202875,-763111421,-1946514688,65468353,-1644555304,-880802956,-154825983,-1949891615,173577171,-787777281,181653986,-385190428,-989921429,1962933376,-14882385,1301018503,-790507262,38046681,-657399599,1450503434,-613096438,-327106254,2146271361,-2140084950,-2139044736,-2139815940,-1979622005,-2134298067,1048608975,1946157618,-773074680,842924761,1418416130,841255425,-2133950272,-657331503,-1962927384,1173742,-695483893,-897580172,-371356927,1609170812,1943223288,-1762396387,367247411,-963904885,-654843401,-678692325,55445363,1943212993,-4275207,62991359,1942064080,113689581,-1979710926,167916590,-2146994963,-331739411,-469091209,922695796,113705512,37028392,861033296,-388287790,1532690006,671532888,1342322946,-13479341,1526601704,110057563,1005126184,868234238,-1563282469,922681906,113705512,37290536,-397257904,-1070334430,-1560136285,-739573193,1837889415,16089350,-1960973440,675187703,-1515870974,2145681581,176219776,915123174,-24444376,107842499,105155580,-556735023,-623845167,1962926117,-521829934]},{"sector":14,"data":[2011708415,-1778940151,-1072966010,-986988172,-1606559497,-793217274,-790769178,1474154978,-1059995439,-528039727,-1968375669,-1832897824,-1817341523,266633389,185650304,-2090633985,410783487,57987595,-1962817152,-1949594671,-2084555816,-411627281,594692212,2080833411,1959922219,30310403,-242559350,-343224950,-125116534,-466434934,1997074307,-786205681,-774778398,1204867539,384562549,-1024012409,-2147257281,-388947766,-539894831,-152905007,-1755394169,1950335734,550141955,930145745,-657398319,1276326914,56365825,91523996,268428929,268488321,-134343779,1948254407,-773861101,-774254117,549815258,1977679235,-157030141,-788494103,-153562907,456403664,1545273676,91523843,-1670753,13533455,-31744496,-164424845,-671624970,-772287497,334879479,333321166,79625470,1979648768,-523766248,-310307979,1081475584,-1958906802,-1948677125,-338545718,-523765788,-2129103585,1979777261,-527788249,-74791030,-376775286,-225784182,-141098830,1963983047,552436498,-489590412,-741223983,-336865327,-57645589,38420096,-385649664,-92273787,1913091968,29816351,-964683148,13730561,-2097097853,-940113705,141828096,-2095004285,812966141,1049360267,-561577432,-411008988,1961742607,853575202,180685760,105220551,-1979359864,-1047811386,-1413051477,-1962545277,58311671,-51006231,38420096,-385649664,-1070398601,36191883,-1414793333,-24400981,1150024899,634424070,-613122064,856051083,-253656623]},{"sector":15,"data":[-774867841,769774048,-377389056,-1056735264,375920,-2081408,-422529420,-397354799,57934209,1560398464,-657398319,268486647,-489615755,-741223983,-317990959,-1813312907,-2095004285,-2005606147,-369154839,-142084802,105745404,-511585909,-277577744,856048779,2146444752,-523134092,539877841,-521567872,1891707775,-2147482213,1962926141,-773402469,-1968418600,-1379323160,-1382896237,-2146442112,1351749836,-964429941,38321925,-461328899,281837583,1185260971,-956521401,1048576005,1946157642,1220541727,-1376285950,-388896629,38413826,-1376923221,-1381246767,-1381246767,-55846703,-773140136,-774123048,4188377,3926103,3663959,3401815,-1056193781,-678706677,1952406361,30048259,1946665718,147488771,-606998575,-623781423,-606998575,-623781423,-606998575,-623781423,-1946220311,855787574,1943419903,1976699740,2012232452,1391916859,-1947389033,37921269,74760203,-225712137,38052176,108314635,-268179465,1185016339,1958742786,65533704,13796328,-621323630,-585380325,-1779950755,1939050898,235097875,504562242,101909060,370344518,-311229880,237719491,505086530,102433348,235078214,504562244,-1038941626,37885579,-1966478347,-466483644,269225764,-1979564381,254019141,1084428300,-1948568830,-485717013,227250458,-503904029,-896800629,1435174027,1959922434,65206022,1440355272,1150020915,1958742786,185961230,-150440750,331875298,1490407898,-1957641973,-1073020348,1435176308]},{"sector":16,"data":[1959922434,65206022,870978520,184847305,-1961921344,-771029931,-487126924,-367798269,1150013905,1958742788,185961231,-150375214,332923874,13730794,1354959704,-1073019765,653723764,-402456000,93047315,141869067,37627639,-904665085,1150016307,1958742786,72715023,141873675,-402398473,-741225965,184829067,-1961855808,-771030443,-487126668,-904665085,1426117507,1166798131,1958742786,1042741000,331875074,38046682,141869067,37758711,-636237821,184829067,-1961200448,-771029931,-487126156,-636237821,1150014929,1076295428,332923650,71666666,141869067,37627639,-367798269,-167625056,50479142,-782592059,-774778398,-774385197,-774778398,-774385197,-774778398,1591202259,-960236021,150022,38483595,141882891,79752833,1350038843,1282731275,36189951,36177607,1364197965,1465209682,-919348429,1055445555,1532846076,-950511270,1426204678,1381060610,861361491,-70129409,1515937119,110057561,451478056,868234236,869413833,871183323,38445823,36189951,36177607,1364197973,1465209682,-1074005784,-1070398899,-1414812757,-1957312789,-61384980,1988953886,40550156,-1523145418,-1523145418,-1957361429,-61384980,1988953886,40025860,-1523145418,-1523145418,-1090362690,922681962,113705512,41026088,-755018413,110058333,158466600,1593995960,1575324510,-1966525501,1612614088,41074434,1946418304,1946631186,1946369036,-1413467368,-341070933,-1107054313,-1515912498,243312037]},{"sector":17,"data":[-343932295,47103495,-1515870811,39718537,1589178763,-555200510,46433028,-1401569269,1048781232,1912799838,-1742557182,-788317533,-1967879194,1962281730,1612614547,350767874,43563776,-1962930456,649438,-402482245,2011758595,-1744336129,-1202502832,-397410302,-998044877,28885766,-1950091003,-1962792906,-1178586114,-1410138108,-1007092085,49201148,-1979300725,2146478584,-265952908,769095935,1552564192,55347973,1442927755,-774774063,-489565231,-741223983,-774774063,-813640751,1947248768,1049865,-640554031,-120464687,-1992302587,-75299259,-117214466,-1202571541,-470306895,56088765,-1123847190,-745799681,-168312781,-573446141,-1047800949,335148535,-1948397080,-138310701,1492159477,-578030089,-570177397,-506347469,-791555119,-741219887,-506343215,-791555119,-741219887,1158205649,73238790,-956150391,1577058309,-81729449,-122296225,268856707,-1957313544,82609132,1988843095,76170756,-153580648,67337095,-1952910475,772065016,-1744532922,-1946401143,-1962637113,-2142831490,1962999676,-1956684052,1438866917,-326898549,-1957275902,116065398,1949187200,1015039494,1190491392,16743552,199962484,1952791680,1161592843,-2142894476,-260767684,-1957771637,1308748792,1949318272,775717114,1179517301,-2008611446,1975519748,-1956684042,1438866917,1586228363,-400585468,512617372,-1779956286,-287315733,28837244,721611520,1575324608,-326412861,2122536535,443809796,-402098433,-997991587,106859266]}],[{"sector":1,"data":[-74768501,119468171,-1515870811,1996429547,-616306680,-1962752893,-346887976,-1962516853,-400585441,1600056372,-1017256565,-2081649835,1448544492,-2096871797,1465256172,-57937781,369411971,-1515870969,-396468315,-998047131,-96040696,138840912,2122534976,92143624,-352321096,-1950340350,1183447646,759137272,28837237,721611520,-129629248,1342588419,-2096698648,1988822724,-94467322,1965899651,755287556,142508870,-1979089408,76022084,772064838,1342350520,-1928831349,-397409984,-998045540,-2081387772,1946159742,1157940739,-94467258,-2147065973,1198796863,-1946526069,189727359,-1962312193,-1948715065,755287800,1694466886,-947187332,6601113,67172855,-140916853,1190824953,2081095555,-1714975983,-150992199,-1962671879,-101213753,-1958282613,-1962671929,1599997510,-1017256565,-2081649835,1448543980,-2096871797,-1957295892,-2080601104,118883015,-1515870811,24635486,-1995914109,-1957627322,38243288,1342719491,1965899651,112645,-1070923029,1342588419,-2096754968,1988822724,-94467322,1965899651,755287556,-94467258,163715,28840319,-396996608,-998047473,805619204,-1962480826,1996749406,142508802,-1203470848,1448083457,-2097089816,80086212,1586185774,41911290,-1960018688,-654900665,2117728395,-1962574584,48957510,1183434635,-396996600,-998047545,142016260,1342189752,116582486,-1962490749,1599997510,-1017256565,-2081649835,1448543468,-2096871797,-259323668,118946955,-1515870811,-2097105688]},{"sector":2,"data":[1183385796,-1948742660,-1991769529,-63046074,-1962377985,1178142790,-15433986,1996425846,108461832,-402360577,-997982718,-15734008,1996425334,74907398,-2080448024,1599997636,-1017256565,-2081649835,1952778366,142508806,-15633083,1996426358,108461834,-402360577,653000138,1711832707,1996427637,108461834,-402360577,-997982554,-15537402,1996426358,108461834,-402360577,-997982374,1575324424,-326412861,74877782,114681942,1073923203,1183536720,1355154182,-2096770328,-1956772156,1438866917,1465314443,-1898410756,74878400,906146495,916797093,-1096468827,-397081934,-1084423717,-1733557574,-1851460719,44744618,495583026,-1996335735,1170670661,-1962755578,-1956749369,1438866917,-1070338933,-1017256565,36189835,-385683777,915141855,-289471960,-189601534,36189835,-385683777,915142351,-289471960,-148313854,36191883,-385683778,1049359508,-289537496,-149624574,-1070377136,675187708,-1414812926,-1017618517,36191883,141948731,49200835,36191883,-1515870811,36189835,674663363,49200898,-1515870811,-1022824829,-1526532417,-2086296155,-1094514450,82510574,36189835,108330840,-16485121,889127540,-289480449,-1962611966,1476536374,1150223503,71601922,-16366449,674663392,49200898,-1515870811,-1850870901,91867403,-346952398,675187479,-1515870974,1360847781,674663254,49200898,1593185000,675187542,-200939518,-964470434,-1947934200,-1962792898,1150010359,635996678,729055216,1027588141]},{"sector":3,"data":[595002224,-388823887,-511653750,-389005049,-388962096,-136803432,281903323,-1979290490,-523106752,-1022989176,1686787667,1200238089,-2139085559,376816698,-2096445821,96012995,49185536,-1962742909,121318916,1532949473,-1783802173,-1817341267,-1174457427,-388956155,-623780911,-539894319,-472779550,20828369,-606997248,1577319981,1820933257,72648962,-1996071799,1724057668,-4,16777215,-858993408,-858993460,-1090519604,80085770,21284353,-1950338256,123420880,-661911869,-1073954674,-1185479938,-1510801404,105679710,2131190912,-1040768845,108298224,41535755,-397201997,-13369477,-1409088066,-1149992792,95287434,-930398210,-145944390,1303417314,-939268874,-1699686637,-939268106,-377357805,-545189132,-145288381,50249439,-1157495576,333987111,158490623,834361159,9300029,-1750247585,-1834117715,-1850895443,-141829641,216252467,-623776815,-556671535,-186458928,-2125020032,319003350,332469225,51101657,838865081,1381192128,-800041387,-774450716,-774712875,-791621421,-774450716,-774712875,1506857171,324658434,-384607759,1506874201,1366291,-690887472,-758000175,-791620655,1504325636,1229962722,-201510736,-1048314706,51035666,28839048,123427328,52215235,-1962932039,-205507587,1200303787,138674440,-1207957569,-953483260,-1003823070,-654916566,-1952971772,727077832,-2082526247,-251459389,-964430037,772049670,20850679,289275974,-2093088170,-2097150890,-1014824210,1592189442]},{"sector":4,"data":[46498651,-2084801201,-175698195,195924397,-938758712,-1834103542,-1750216438,-1817341523,200641453,-15894336,-489617332,-774776879,-791555119,587203005,869600239,33194477,-49023616,-585904877,-707672813,-787977215,-1983575091,38570300,-1996202871,12781124,0,77594624,0,0,1992,0,245121024,0,-1138753536,7102,-1090256896,915282889,1890950656,-978474965,-721392739,1241501606,-708675553,-376643584,-1169700480,-1912493421,-73532962,1403682539,-858993405,-858993460,184548812,1030792151,-89925878,426061055,-1223206686,-33557551,293888462,-424948617,1306614783,-1785413948,-1157641242,-1387972204,-1764773602,971613695,2146052005,-1577112408,2086976740,1474154566,2048473854,826484067,-1141068096,-16040193,1505428857,-2082474177,-1014822165,1962871562,1945096461,-396930059,1533017723,1438903531,1005120651,-491395068,175432714,294528,1187382389,-987824636,-1207751658,567092480,1846446879,-1157111035,520028162,1183516012,-850611196,-326413023,1459940483,74877782,-1962385781,80086655,317408816,1946172800,1191545349,816841451,-12188536,2122516046,-394330106,-2097150778,2080376446,893222930,65736060,1311769798,1949908096,-1962606857,1065354334,-1962379983,1207896158,-1961956606,1346372678,-402360577,-998047364,-1956684284,-1144824347,-75430536,141755774,1528299347,-219462845,310211,-851181384,-167087583,91521218,56397696]},{"sector":5,"data":[-327595200,-852446013,54436641,939953859,915088899,12058668,-1994273483,-1945949154,235089414,620804127,-853389126,244004385,585303406,1879491894,869960709,520042203,57869676,920743145,91489989,62642828,520041984,521536876,1358275,-2013865165,1946223452,-851528700,-220052703,-326412861,-16583704,-1092090762,1575324670,-326412861,119428695,-1962639733,-678754698,990400139,-1961593090,1002505158,51147768,1324942321,-1527513777,-1960973316,-775550009,-1962249240,-775539769,-1528073496,-202780343,-1979354203,92808708,1600045707,-1957313699,119429100,-1962639733,139365343,1183455971,-1948218874,1944768983,-1958106622,-202780207,1944768939,92808707,1566557067,-326412861,1460464771,-2080535722,1170606831,1183531526,71665924,1170670985,-1920991486,-11532218,-396949898,-998047056,-1012986,2105737805,209453058,495697970,126354943,183231530,1354773335,-2097076760,-963967804,-443850914,-1957313699,508975084,108956423,-1070336117,-218103879,-638107218,-1962639733,-1952123945,1566531266,-326412861,-1962467753,-1070398338,-218103879,1086426030,1608054592,-315440291,-355399965,-85796655,-326412861,-167485813,537091207,45616756,-1949748414,1931595217,31648003,56395766,-385649280,1317732481,106334984,-1070397666,-1957275652,-470119440,1074444389,846573298,735021905,283331018,60563917,74685936,1240140212,796180491,178502,-1274774342,1931595072,-351685628,1958742836]},{"sector":6,"data":[-678733542,-1957575189,-842388529,-268198879,-1274776675,186313481,-166300224,1073962119,1586170740,440369158,-336067723,12122372,41048348,1600046731,-1962846231,1451952206,-851397626,-1274776799,-470947063,1975520235,1552414439,175390723,1065409163,-133991142,-1191586069,-789898240,-2081649835,1448543468,-1979287925,-1449654716,108265603,1074152694,-4716940,14215679,17188086,1283458676,-286580730,33967232,-284793728,1149878323,-1980200190,1157037694,259328006,-1744354166,-472786805,87984118,-1959758847,75246396,310312715,74776407,-1744354166,-20584368,-1996045181,1150025286,76103684,-16628537,73173761,-2012985718,-160896249,1963198020,-1493270196,-1976863484,1352140612,-2096653592,-1073020220,117388149,1153893736,-1979302396,-1952970940,-958148136,17120903,104793287,12106475,-571977726,46433246,184829065,-2147060544,-351795636,105676957,114436,71732567,121932368,1223184536,113542142,972965513,57998974,-1962986519,-467008442,-443850914,2126234461,-2131001083,1393062661,1130043391,-1007490237,-2130345797,1929741051,402608904,-347913381,141738994,-443826125,108249949,-1207955992,-443809793,-466435235,-1023409688,167986850,-2145159708,50544190,574360946,540806515,95421810,1016072171,-1342015981,75414291,983800023,-997539069,-1957300245,23247084,1474147816,108432214,-22903155,-1962550109,-660404154,71731973,-955919197,387590,-402209024,-2147483643]},{"sector":7,"data":[57999420,-2147399191,57943356,-956232983,17162758,-1547685120,-794622496,98870021,-1559898461,-761068070,99525381,-955912029,537255430,-2144146688,108342588,99616511,1015031787,-15960789,-955916282,381446,-2145981696,225779772,98582147,-16091904,-351940090,-301531388,76170757,15224984,46433030,-1082802165,99006550,92923984,-1962621821,775717104,117379701,1447429594,1342563000,-2096794904,-259324732,1970027648,-704198905,1174405637,1962949760,10545411,-1986526070,1040096902,175374405,1946175293,5782789,117377397,-2038233648,-1960771938,771661446,356319331,54425344,-13724736,-12206681,-955915258,388614,702464,8906832,-352140157,571472,280556267,871230208,-1595387712,-1192629503,-169148415,-23152897,-352182552,-335639589,-2025477311,-1337610171,-1186615227,-1186612923,-1186612923,-1186612923,-1186621115,-1186612923,-1186618555,-1186626747,-1639597755,-365001915,91488261,-351934303,-1494661600,624787710,-2142828940,-176881603,-970209397,518542928,79987459,-1964378229,-1956684034,1438866917,414772363,-603133952,2122536535,74713604,98830079,97926787,-1961462784,-1962551266,39291655,-1980217719,109312598,-352057896,-465665239,276037637,98049675,1183385483,-96024584,233504768,98049675,-1986459765,1451882566,-670661638,1048773125,1946158574,-129594611,1962558987,71731973,-1070398741,-1962546013,-2096767946,386110,2122525301,612172026]},{"sector":8,"data":[168066691,80090997,1183532589,-94991368,-763111177,-1982138624,1451882566,-163133446,99287041,16139975,-2080535808,1996429551,1996445444,-126418950,-2096857368,1048774852,1946158554,686315296,46433275,98700939,1317652523,-972755970,-1958334460,1325399622,2143292414,-2012902670,-801209596,125042693,58483004,1176513664,-8552377,-2082048768,386110,-526314379,-771355899,-2096401403,1962997374,112645,-1070398741,39184464,1577239683,1575324511,-326412861,-402650952,1448598238,98436807,2122514464,276037636,-1593835074,109250008,-1996356136,871103558,98049675,1183385483,-670661636,-1073020411,1187448181,-16477444,-2065105802,46433274,1048834187,1946158554,-502908662,-1962642683,-1962548682,721806910,-264338434,125108229,17754199,1443021955,-386107649,-998047379,-264338684,125042693,16181335,1577239683,1575324511,-326412861,-402652488,-660481454,-28931835,98188931,-955878144,101048838,-801702144,-499712251,74907397,98318079,-385976577,-997985570,75399946,-2096728985,1967588478,-297893096,292880389,98713219,-16092160,-402269130,-997986327,-297893118,292814853,98713219,-16091904,-402269130,-997986408,-670661886,113707013,1516,184934561,1946538502,-25755886,-2081421080,-1073020220,28837236,855829248,619204800,1575324417,-326412861,-1276592077,1048794841,1962935786,-736195784,38797061,163715,1183453564,-736195836,-13137147,704940039]},{"sector":9,"data":[-15864860,-16395210,1541932150,79987706,-16353984,-351933946,-402194684,-443851259,-1957313699,178412,1473865192,-365001898,1366622213,184841867,-347439370,-736195789,38797061,163715,-559935108,-736195835,-12612859,705005575,-15799324,-16395210,-402268618,-997983742,74792964,99223295,189712011,-2084143168,387646,1183516533,-402259708,-1956684283,1438866917,45673611,-654514176,1988843095,108956420,99237507,-347310848,-736195787,38797061,163715,76157564,97787531,134156171,126409099,250340394,97793791,1352139914,-2080794136,1967129796,-368640252,-947173883,1975520079,-365001788,125108229,17188491,1577445382,1575324511,-326412861,-402650440,1448597650,98317963,1183432755,-129594884,98975371,-128063402,-1996307325,-131335610,-2096857557,389182,1015027061,-2096073427,805690942,-1733555851,-23205808,-2096970621,805690942,-16053388,1048774526,1946158576,75399961,-16354304,1592326214,-331447552,108265477,-386119937,1048772720,1962935792,-1310173402,46433278,294531,2122516852,57999608,-2097138456,388158,2122516852,57999612,-16759832,-396952970,-997982479,-264338684,225705989,98436807,-396951520,-997982604,-1956684286,1438866917,-1070338933,-2083008024,385086,733480308,-1207702784,-397410272,-443810301,-1957313699,-390056980,817420210,-253210624,46433277,99368579,-2095680240,380990,1488455028,-1207702784,-397410184]},{"sector":10,"data":[-997982765,1575324418,-326412861,-402652488,1448597374,-2147060085,242559548,98049675,98043523,1178569474,-13419797,2083536000,960266291,1043934847,192218586,1966095488,-569981178,-1409273851,-774927464,65130977,65130959,820609992,1015085451,-2147124176,-478267076,-1996202357,1590070079,1575324511,-326412861,-402652488,-1101605098,233505945,1178076298,-1207601916,149618689,3964998,-1070338443,1575324510,-326412861,-2096865653,293410043,2080439171,1552414220,91504643,-352321096,1572877058,-326412861,887685299,-326413056,1459940483,77512278,401342259,-1744419702,1946190761,1978160651,46433024,1191277632,956876419,1929733686,1590135779,1575324511,-1957275709,1183517262,106334980,1460174475,-1812199650,326418442,1963653507,2043808526,-1439846390,-763110409,-1948584192,-768371977,41205771,-141299209,-746089743,960245764,654574198,197299114,-1998424637,-2035527931,-12285947,1928805199,1600018677,-1957313699,82609132,1988843095,1459565316,-2097128728,1149895364,1006838790,-163810046,1963460164,121932303,-774337640,1049097955,661913861,1143669899,-62486268,461291531,74776400,-1744354166,-168171440,990299267,125107270,537283712,-1946157121,76088388,148679,1590135552,1575324511,-326412861,-2147197301,1573848679,50354115,50905857,50358784,51028225,50359040,51409665,50359296,51403265,50360576,19027969,50331904,51405825,50360832,19050497]},{"sector":11,"data":[50332928,19062017,50333184,19065857,50333440,19078145,50334208,33733377,50332672,51400193,50363392,19084289,50335488,19091201,50336000,18607617,50336256,18646273,50336512,19097345,50336768,52592897,50332928,51066369,50333184,52154113,50366720,19108097,50338048,52201985,50366976,33889793,50336512,52213249,50367232,33922817,50369536,33883393,50336768,52230401,50367744,34061825,50370048,52158209,50368000,19036929,50339328,34490113,50338816,34071809,50339072,50978049,50337280,34470657,50340096,51390721,50370816,34118145,50340352,34047745,50340608,51084801,50371328,50696449,50338816,33898753,50340864,51385345,50371584,51077889,50371840,51100161,50339584,17499393,50343936,50994945,50340096,51130881,50373120,17816833,50344704,34443009,50343168,17772289,50345472,51039745,50341632,51045377,50341888,34744577,50343936,51381505,50342144,51398657,50342400,34688001,50344704,34683905,50344960,51541249,50375936,51427585,50376192,51550465,50376448,51566081,50376704,34746625,50347008,51447809,50346240,34738177,50348544,34422017,50348800,34049793,50349056,34748929,50349312,51073793,50381056,51456257,50348544,51471617,50349056,50989313,50349312,18979073]},{"sector":12,"data":[50354176,34710273,83906560,-15664384,50331904,18095873,50354432,18585345,83909120,-15740672,50332416,19029249,50354944,50985985,50351104,50716161,50351616,34729217,50353920,51001601,50352384,50720513,50352896,34704641,50355456,51035649,50353920,50430209,33576960,-15663104,33554688,-15739904,768,0,0,0,0,5,0,0,0,-1322373119,822230315,1663906610,909456387,923018538,1898920248,807403520,1026273582,858927392,874529581,623523381,959985440,1291853871,726466605,5393664,1124090701,6515809,1668047171,11141120,11141205,11141205,11141205,774176853,771778104,3014704,805318192,774897710,3026944,774897712,3026944,30757,763101184,762589321,762458214,786313316,794964621,794833648,751645422,1929653536,7631473]},{"sector":13,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-16842556,-521078532,32960,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1141243904,1229016399,1230177358,1409632078,1397968716,42009210,0,646,119552514,1920099616,684655,808463205,48,0,0,0,0,0,0,0,0,-65536,-1,32751,0,16352,0,16368,0,16384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25264513,1]},{"sector":14,"data":[0,0,536870912,538976288,538976288,673720360,538976296,538976288,538976288,538976288,1210064928,269488144,269488144,269488144,-2079322096,-2071690108,-2071690108,269488260,269488144,-2122219135,16875905,16843009,16843009,16843009,16843009,269484289,269488144,-2105376126,33718914,33686018,33686018,33686018,33686018,269484546,2101264,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,369101325,219677186,202116105,-63481,302846719,1848180482,694971509,539831040,142475299,142475264,1,0,258,0,518,0,900,0,1026,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65536,0,0,0,0,0,0,0,0,0,87425024,0,65535]},{"sector":15,"data":[0,0,1084571789,1264664749,16633,0,0,0,16420,0,-1717944248,-1717986919,16313,-849019008,16845,-849019008,49613,0,16368,0,82009,90963971,262399,0,852227,2097165,262176,-65536,-1,-1,-1,-1,-1,-1,-1056964609,-2130706625,536870687,1073741711,1073741775,1073741775,1073741775,1073741775,1073741775,536870863,-2130706545,-1056964833,-193,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,65535,0,0,0,0,0,0,0,520093696,536871040,1073741888,1073741856,1073741856,1073741856,1073741856,1073741856,536870944,520093760,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1310740,16842756,0,254,15794173,15794173,15794077,15794141,15794141,15794155,15794155,15794155,15794155,15794167,15794175,15794175,15794175,15794175,15794175,15794175,15794175,15794175,15794175,2,786447,16842754,0,-17104644,-25428229,-19398985,-16777489,-16777473,-16777473]},{"sector":16,"data":[257,4194304,524352,-65536,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16580607,0,16580383,0,15793951,0,15793927,0,15793927,0,15793927,0,15793927,0,15793927,0,82902791,8772,82902791,8772,133172992,65279,82841344,8772,82841344,8772,15732480,0,15732480,0,15732480,0,15732480,0,15732480,0,15732480,0,15732480,0,15732480,0,15732480,0,15732480,0,15732480,0,15732480,0,15732480,0,15732480,0,15732480,0,15732480,0,15732480,0,15732480,0,15732480,0,15732480,0,15732480,0,15732480,0,15732480,0,16518912,0,16518912,0,-520155392,0,-520155392,0,-520155392,0,-520155392,0,-520155392,0,-520155392,0,-520155392,0,-61696,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]},{"sector":17,"data":[-1,-1,-1,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-16580608,-1,-16580384,-1,-16580384,-1,-16580384,-1,-16580384,-1,-16580384,-1,-536674080,-8454144,-536674080,-8454144,-536674080,-8454144,-536674080,-8454144,-536674080,-8454144,-16580384,-1,-16580384,-1,-16580384,-1,-16580384,-1,-16580384,-1,-16580384,-1,-16580384,-1,-16580384,-1,-251461408,529516515,-251461408,529516515,-251461408,529516515,-16580384,-1,-16580384,-1,-16580384,-1,-16580384,-1,-251461408,529516515,-251461408,529516515,-251461408,529516515,-16580384,-1,-16580384,-1,-16580384,-1,-16580384,-1,-16580384,-1,224]}],[{"sector":1,"data":[0,0,0,0,1768179088,16777332,1886339840,843450745,163840,1953718608,1850280293,115,-2143289344,285218313,1946198016,0,327680,524448,131071,1300385794,1869767529,1952870259,1852397344,1937207140,589824,23,-65536,1342177283,130946,234881024,134258688,33554176,-2108685824,1668047171,1952541813,29295,2228254,524382,131071,1451380738,1769173605,824209007,3223598,788529152,151035904,33554176,-2108685824,2037411651,1751607666,547954804,892877105,1766662188,1936683619,544499311,1886547779,973078574,536886016,-1711272448,50331906,1800372304,0,10879052,65538,1342308356,130,-1610590720,16780288,33554688,542212688,1901273149,1701994869,1869566496,538976372,541990944,1749229629,1701277281,1734955808,110,-1610587136,16780288,33554688,1917878864,544437093,539446567,543452769,757083179,743579692,544370464,1868963907,1699553394,2037542765,0,1631783424,1819632492,1919906913,1920091397,1091072623,1953853282,19803694,177,0,0,0,0,67600385,117377022,33620992,16908545,-16580606,-50201342,-33554944,-65537,33423614,50266623,58721279,-16253198,17170436,-16285693,-50201087,-16777984,100136576,-33030656,117800967,-33423870,-50266879,-513,66713984,-98303]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[15751757,64,32,65535,490209280,0,64,0,0,0,0,0,0,0,0,1024]},{"sector":10,"data":[1409299944,544434536,1735357040,544039282,1970365810,1936028265,1667845408,1869836146,1461744742,1868852841,168653687,-1273033180,-1205744375,567102465,15919962]},{"sector":11,"data":[279886,17957335,191459723,655366,268445696,66684,655360,196618,4194514,28573840,29753792,1769,262189,1187250176,42463232,113573888,113574012,113635696,82379003,82506032,1477902677,1477964080,23987992,24051984,25626419,25624848,34539342,34603024,51054447,51118352,20318113,20381968,35522486,35586320,33949660,101581073,-2147352572,1,134283264,1048585,32769,-2147287040,1,134873088,-265289663,32769,-2147221504,1,139132928,-265289709,32769,-2147155968,11,140378112,-265289719,32779,140967936,-265289720,32769,141492224,-265289717,32770,142213120,-265289717,32771,142934016,-265289721,32772,143392768,-265289717,32773,144113664,-265289719,32774,144703488,-265289710,32775,145883136,-265289716,32776,146669568,-265289722,32777,147062784,-265289720,32778,-2147090432,5,147587072,-265289699,32769,149487616,-265289707,32770,150863872,-265289710,32771,152043520,-265289720,34815,152567808,-265289725,34816,-2146893824,1,152764416,1048580,32769,0,1279345416,1094995525,82,524289,100663308,1314014539,1191398469,1426344260,760366419,1070399999,22531843,-2063450163,1070399744,22533379,-620544051,1070399831,22536451,-419217459,1070399831]},{"sector":12,"data":[22539523,-217890867,1070399831,22542595,-16564275,1070399831,22545667,184762317,1070399832,5771523,973291469,1070399567,368131,-1526513715,1070399516,2080259,-754761779,1070399517,1235971,-1291632691,1070399496,818691,-1492959283,1070399508,611331,1426276301,1070399558,4709123,-2147270707,1070399557,93953,606157,1070399488,5,1292255181,1070399488,8,475085,1070399488,71174,-217628723,1070399488,173569,278477,1070399488,296706,67387341,1070399489,2,1795243981,1070399491,215041,369704909,1070399489,236545,-1056555059,1070399489,152583,1766662656,1936683619,544499311,1684957527,544438127,1701601603,1918985326,1869762592,1835102823,1174929408,1296388686,88430159,1313213184,1095451457,1297236300,117443411,1111576134,173299023,1313212928,1414418243,1397509970,1141440519,1313228620,1313165391,1175453698,1330794574,1329742147,1380996178,223628873,1313212416,1163280723,217921,1145980422,105206849,1313212160,1313428048,218104916,1094995526,1413829465,1196312916,218106195,1347636806,1095320389,1296651340,251660357,1279544902,1329742151,1380996178,206851657,1094912512,1145984844,1129271888,1,0,151252200,209125125,-16091393,1996425334,74907398,16777114,1975520000,-339727559,-297366194,4778064,712359947,39991039,72103679,384714381,-26032,-1073020928]},{"sector":13,"data":[1183650933,-1706027282,65535,384714381,-26032,1183645696,726669038,1347440832,16777114,1975520000,-227082312,-1023024664,33783016,73304833,-2130413685,18023039,-1070920075,-401698736,28836069,14608640,-2130420085,16777855,-806812812,48668928,544540473,1946812035,12642563,1851011,-16026368,-1711089098,65535,922733803,-202702214,1851011,-385649408,-963968866,1946160445,1031698186,1920204809,-1593799191,104399940,242549322,1342177720,-1705983957,65535,1252103403,-1706016766,65535,1048807659,1962934858,112656,1354771280,-26032,1911095296,38445567,-1193546936,-1706033135,65535,1081917451,47855359,1342248376,1965227651,243717,45614059,-1070903296,-6664112,-385875713,922746684,1659437798,2178559,574427762,1036023296,-1636564954,1962944573,-9180925,-389824469,17433253,4734595,-15895552,-1207803338,-1706033151,65535,4865667,722236416,-6664000,-16776961,-1929360882,-1924076474,-1873742266,32827406,956456609,460715590,956453025,326495302,956453537,192278086,956454049,58060870,-1593779479,378208860,1183384158,-94991880,-1544141173,922681950,-6684062,184549631,-385649472,922681479,-6684032,-1996488449,-1705971130,65535,1357661837,16777114,-196704000,39585339,1554208628,38846210,518813325,521543175,530949541,1851011,-12684032,1354297974,-6664190,-1593835265,104399398,158663248]},{"sector":14,"data":[956443297,1946309638,36086032,1978418745,36348184,1978680889,49069840,503457470,-1515870969,16777114,-2143879424,-227082494,16777114,108954368,-1205505024,-1924136356,-1873741754,14936078,343195659,5113543,1554055169,1578535682,58368770,58463881,31985296,1860748032,-1593834751,378208860,1183384158,-61437446,1358579341,49821439,-2081943920,-96039680,58374224,-401698736,-12779367,-2089779457,164926,-1070920076,26450512,113704960,196682,40648323,-1591708161,378209146,1822622588,1846970626,-26110,104529920,125108834,16777114,-1204491520,-1706033151,65535,-1962706271,-1996260330,1451883078,-96039428,112720,-401698736,2058878994,1183666179,-1070903046,-6664112,-1023409921,52456,140413698,17188491,2139161159,2114297602,140413709,-1610453119,140413701,-389871617,33751209,-1962379637,92997246,91423801,-335544392,956664602,-1207601660,267059201,956450187,-394526140,2130854969,-1010816018,1167120524,518818645,1465309326,-1275058456,-1339962068,48625212,13926593,-1996071285,1978206727,911363,-310157729,535137026,80366941,-852839424,140413729,-963976142,126470398,-922828150,-2130557047,-1995981591,1539507279,787254101,1128470411,-1031094221,-533995311,-1070377130,-523123062,1507065680,-443851169,-519873699,-1933843457,777752792,1128470411,-326412987,869830174,-775779648,1457531872,-1967115433,1356911046,1599722495,49120094]},{"sector":15,"data":[1562371467,50813773,-883751199,0,1942235995,920188696,656953,959844215,1979714566,212022788,-2061568,-1140870941,-1329856848,-1705993987,65535,16777114,1958742784,-1375287509,-1996488703,1459724302,1381172822,855713768,-6664000,1459618047,16777114,1958742784,-78321657,27322448,-850591816,-1957313759,-18196,-1957313699,-18196,-1957313699,1354771436,-1710983425,1255,-1017256565,-1192457387,-1957691328,1861682246,513429510,-1962934267,1438866917,1996483723,108461828,1342193848,16777114,1575324416,-326412861,-1710983425,1325,-1017256565,736922453,1996443840,-26108,-443875328,-1957313699,74907628,16777114,1575324416,-326412861,-1710983425,1430,-1017256565,-2081649835,-1070923028,71732048,-1706012007,65535,-1929492855,735087578,1575324608,-326412861,-16585597,-6683018,-1996488449,-628294074,-1070870389,-1017256565,-1275051,-6683018,-1962934017,1438866917,1996483723,-26108,-1073020928,28837236,721611520,1575324608,-326412861,1347469355,16777114,-402345728,-443875162,-21249187,83591425,1393062658,1130043391,-1007490237,-1207958341,567100416,-1024062862,-2147126144,1073861263,-1007912629,567095476,-1023298397,28182158,741772070,889239552,512303565,109838754,521011620,-1171980104,567084144,-200373450,908256001,32900805,-617358708,-232849610,-385649919,-986251703,-1946027514,244698,-232849610,-1021372927,855643321]},{"sector":16,"data":[-762841381,74711297,567099060,-1007492541,-387151019,1996423243,1042436,-1017256565,115600690,-657331503,1438907106,1122561163,-29235200,175432714,294528,1187382389,-987824636,-1207852522,567092480,-200373473,-1157111039,520028162,1183515122,-850611196,33864481,33880961,-11335565,1128487703,-1144786197,-75431420,141754886,1528299347,-219462845,50341059,50520577,50358272,50430977,50358528,50406401,50358784,50356481,50359296,-16771840,50335232,-16730112,50335488,50415361,50360064,-16707072,50335744,50350081,50360576,-16712704,50336000,17070081,50331904,50352641,50360832,-16715776,50336256,-16644864,50336512,-16647168,50336768,-16649472,50337024,17092609,50332928,-16620288,50337280,17104129,50333184,-16633088,50337536,17107969,50333440,-16563456,50337792,-16574464,50338048,-16577280,50338304,17120257,50334208,17126401,50335488,17133313,50336000,17139457,50336768,50635009,50332928,17150209,50338048,17079041,50339328,50455297,50339584,50346497,50377216,50528769,50347008,50491649,50349056,17071361,23296,0,0,1167087646,518818645,-326903666,340167432,-1962790237,-89976250,273058562,-1962771293,-22868410,205949698,-1560279251,1183515168,59548426,-1559738741,1183515208,39232262,723154687,1996443840,410451734,-1157627976]},{"sector":17,"data":[1347616767,-1709541633,65535,-1980217719,1347615318,16777114,-62486272,-362753,-6621066,-1962934017,-310117306,535137026,382356829,-1873273344,-326412987,-2116514274,1442910444,-244025,205949951,1946226749,17906952,-387359628,242679554,36845311,1073938081,-761638882,-16777215,922685046,364380722,922701828,-1070923232,-6664112,-16776961,-22999434,1344159746,49952511,41694975,1346375864,109978,1975520000,242679563,-1705983957,594,-385875528,-90111343,172374274,1187448693,-352318966,36872461,1963607609,172410629,1183514635,81162,37559156,-385649408,171770141,-385649408,188547363,-385649408,1357447748,242679554,1342177720,243866,-6664192,184549631,-385649216,1996423735,842465038,59547906,922701854,2124022304,-1929379838,385809542,59547984,-1046851554,-1929379839,1358888070,1342177720,-1929224728,1358888070,184758504,-12421952,-2037576074,1343684348,49952511,41694975,1346375864,226458,1958742784,59547940,-2037559266,1343684348,16777114,242679552,36845311,503549089,-26032,-1192689664,-1942552831,1354771203,-16644632,-402420682,-1073020199,-1070920844,-26032,-1729560576,59547905,-6664162,-1929379585,1358888070,2062028432,1958742786,-62470350,-1935605759,-1588584957,1344143944,1344798904,16777114,1444842240,1023904002,259391487,38280843,163715,1187448181,-4,1996426870,-16323588,-1070920074]}],[{"sector":1,"data":[-26032,954793984,138840833,1946157373,146699,-152501387,19261696,-15829249,-1929235914,385809542,540475216,-26110,1996423168,59547918,922701854,-6683910,184549631,-385649216,-1935540437,-1706025469,687,-17529207,-17004915,-6664170,-1996488449,-1946224506,-58552848,-158955010,-2133292034,91499071,1966751616,112645,-1070923029,-17660279,-17004915,-17398215,-2037560202,1343684348,-17398133,-6664162,-1996488449,-1946225018,-2012771624,1023340678,1006924842,-955878081,33485446,-157381888,-2012771586,1023340678,1006924892,-1950780102,520025734,-26032,-2037841920,-1098645770,1946222322,-192509164,-1945203714,-1933507837,-1957670182,-335612282,-192509166,-1945203714,-1933507837,-1588571430,507511550,-106263,-1935602058,-11526653,-16582090,-1207796682,-1706016752,65535,58048523,-369198359,1996488259,842465038,142016258,250089104,1589652224,-1962742397,1297948645,503319242,1430622296,-1910575989,108954072,762643200,-1207273729,-1706033151,964,175570768,-1710721281,65535,964688,1354771280,-6664112,1342177535,16777114,49120000,1562371467,445005,-2081649835,1448545004,16402119,105286400,1344163870,172186,-163149568,503727619,73701968,-259325952,1015086731,-2146208466,1966014332,-159481075,-955812606,63558,1015038699,-2147126180,125123132,33048263,-2093880576,1946158206,-339727612,178179,972572297,477300350]},{"sector":2,"data":[1949187456,1547534378,1183519348,-1957683706,-1706025273,751,-538183541,503399565,-129594544,50202115,2073710622,1577058305,1575324511,503317698,1430622296,-1910575989,-2098429480,1988843008,516328198,2122747216,-1202710785,-1706032896,549,91602955,-352321096,1589652226,-1962742397,1297948645,1426064074,-1957237621,283837558,1948925056,1060929541,28837237,1174989568,1962949760,1589652459,-1034033781,50337282,50459137,50358272,50582273,50360064,50583809,50340352,50417409,50340608,16799745,50344704,16806657,50344960,17082369,50350592,16983553,50351360,17041921,50351616,16908033,50351872,17070849,50354176,17038593,83909120,-16757504,50332160,50357505,50353920,50395137,50354176,50415873,50354944,50378497,50355200,50424577,50355456,50499329,50356992,50391297,50357248,50384641,33580288,-16756736,512,0,123170792,40018180,1946830393,19720451,16777114,2047228672,-402426622,1183523478,1958742788,146696,266929012,1714880257,80996354,1358448265,-1996154136,-11471290,-16498634,721700918,-6664000,-1593835265,1183384130,108432382,737572395,990003254,-1996259642,1084358262,1241918212,-230258428,721974923,-969148298,1988690814,-633929742,1354771202,37762815,-887041,-1705968010,75,-1946270069,-788246002,734079969,-1996262394,1956772934,-96040702,-1711520117]},{"sector":3,"data":[99094155,1956903415,1975520002,1946615556,41197826,71607112,-1711520117,99094155,-1031013897,-775804007,1419985144,-1580692732,787939956,-939325976,58199689,1851011,-398167040,1956716406,-96064766,200558217,-348881216,1144425247,-193582332,-422378831,51295487,302368395,-102215677,1958742809,-196149495,16023171,1996479349,112884,244338768,-1206161688,48955393,-389824469,85284440,-1962933826,-768931770,1183578251,1457420,58091892,755185129,322764802,-385649152,-1073545011,-1476448621,-1070922648,823846992,158646283,39991039,16777114,1979058944,57338115,-375799765,28836728,-102215680,-1577850064,1178141282,-385649650,726663313,-6664000,-402652929,45626593,1307070464,1354771285,16777114,-2084377856,1946159742,885516476,1996470251,108461838,-16222465,669518454,-336557058,2050424740,-26110,1996423168,-666465010,-6664170,-16776961,-1679239050,242679562,-2590977,1290328694,242679557,383272589,-26032,922681344,-6684038,-385875713,-8126621,-16156927,1996426870,14936330,1460303615,723785192,-11933194,336232067,146339189,-236433408,-12981975,-1705983957,65535,-1191235863,-219480063,39991039,16777114,1975520000,-15079165,1851011,-15961088,1996425846,429713414,-41239,1996425846,319154182,-1577102615,1183384168,47882746,1963869753,473858831,141819904,956583585,275973702,956458657,242552390,956490401]},{"sector":4,"data":[108398662,-1996257119,1996487238,-25862,-1125580800,40280574,1963869753,48406811,1980253753,37527827,-1593424343,1177092678,-432603384,9693442,956465313,1198853702,1851011,-1589611520,1178142186,-1592364538,1178141252,-15830266,-1207803338,-397410292,1827219066,59810302,1913013817,49586449,1929791033,1647771401,899074,922738923,179831394,-1579685120,1178141402,-385649650,1048837873,1946157084,937973568,-129595108,38405691,922685812,-6684062,-16776961,244381814,-1591978008,1177093198,1245118214,469755906,-16234967,-16614858,1996426358,142016266,-351897857,142016341,-2130282753,33754238,28837237,721611520,1810387136,-35788527,-15829249,1996425846,108461832,-384675352,2122579491,57999370,201225449,-2096138753,1963002494,1345781513,-401698816,1996423628,73709582,1354771280,-6664112,-385875713,244383131,-381577752,-626917997,239483138,988349300,473859070,57933824,1358835945,-1588543445,-523172770,1354771280,16777114,233826304,47855359,137114,47882496,-385855325,-626918057,239483138,-18283660,473859069,57933824,-1694632727,65535,-386057495,2078803917,-47060729,-15829249,-186119562,-47847161,-385788696,-2115437281,-48633598,36897175,30016051,65930166,36897834,36897331,36897331,31261235,26083694,36897331,71763024,1963004733,-38737661,440215671,1036219392,57999390,1040035049,57999616,1040119273]},{"sector":5,"data":[57999633,1040017385,57999634,-369264151,356384113,-385649407,373161358,1032680449,57999872,1040036073,57999873,1040049897,57999875,1040047849,58000484,-369166359,1996488001,209125134,-16091393,1996425334,-26106,-389873664,479848,39991039,385369741,90479184,1084293120,-230258428,737953419,1183447110,-196687882,1183514624,-163169806,1183518334,-230282250,-775804007,-196703752,956587681,92206150,-336312693,73310467,1377495235,922681350,1183646306,-1706027274,65535,737953419,1183447110,-28915724,1218510848,-196724476,1183518590,1208364020,-1037330172,1183447249,72524286,2130593337,-28931323,1386284011,-102186236,-2097086383,191038,1996425333,-26106,-389873664,414140,39991039,16777114,-28931840,-1962933825,47882743,5244473,922701940,12058704,-1070903292,-1706012592,65535,-1980086647,-801375146,-164953484,39991039,16777114,1958742784,-129579227,183173120,33062531,-13958027,1996427243,-25864,1183383552,1975520248,-25881,1996423168,440574,949638736,-16777210,129564278,-1705619456,1605,-1191282945,1464860680,16777114,572928,1043988267,91553820,146798123,-25755904,1342179768,107977302,1996423168,702718,-6662320,-1107296001,-13959167,956463777,1962954758,-644336,-402503114,-1073005330,146735988,-25755904,1342181304,115448406,1996423168,1030398,-929409200,721420294,673090550]},{"sector":6,"data":[1646134018,-1836583420,57966595,-16774978,297336438,-1705619456,1634,-2097151554,7230,-164953484,-1191282945,1448083474,404378,-1981234432,-16776112,-1711119818,1469,-1694611831,65535,201082505,-15958592,79232630,28856320,-15602944,-6620042,-16776961,79232630,-1070903296,110795344,922681344,1048773724,1946158150,2144261,280495083,-6664192,-16776961,721576502,-1202696000,-1706033151,65535,1344202947,1721828098,138819842,1996431221,1354771206,48379647,37107455,72496895,-1174396488,1347551472,16777114,41984256,1963476537,108461932,652742288,38845953,1851011,-1957727232,-391969210,112742402,-6664192,1375731967,-26032,922681344,922681438,-1679292950,-365494528,13559813,38024959,-16726040,-16752586,-402419658,-190775166,1241918210,-1310175228,108461824,-1106988568,1996423718,244340230,-352229912,47882594,1963476537,108461914,1347469355,37238527,72496895,-1174396488,1347551472,537754,108461824,-1588543445,103481922,-11533230,-16631754,-1207676362,-256245727,-1706012160,1913,1851011,-16223232,-873986442,-15930608,669517430,108461830,-1022974744,5184488,1547108098,108461824,16777114,-399048960,74907394,72496895,99497727,35796735,6043391,1347469355,-1174396744,1347551436,16777114,-504839424,-16711602,-16586698,-1070922634,1245118288,1077346052,2209794,1375793338,135371344]},{"sector":7,"data":[-389873664,17256164,39728895,1358055053,-16768536,922682998,922682462,1183646580,-1924131086,1343681094,16777114,-6664192,-1023409921,38702056,105286402,3979673,1451817463,105286654,-1996884071,1183711046,1996443900,833540,-26032,-389873664,33574496,705054346,-1309635612,82966026,73304880,-2012985601,-154760441,818184433,-2012979573,971555623,-1962803122,1191118430,74877702,-1979431169,168265732,-1947437632,-1018689978,642663400,108461826,1354122893,-1207935768,-1706033147,1955,-6664110,-1996488449,-1072974778,922690676,1183646336,-1706027274,1302,-1996209503,1996486214,-163148536,1996443670,-25932,1996423168,1110900488,1949761284,-1236890365,1183666198,-1706027338,2265,148871760,-389873664,33770928,-375098,-1962516853,-1140521913,-45709049,-1057093750,-1963178360,-1057095097,-1912912248,-11470266,112723062,-6664192,-1023409921,5077992,-1962153213,1191118942,71731720,1183516552,105840390,-344604661,-1022867829,38624232,-62470397,1183524624,-137221368,1183448182,138841086,1995952683,139889148,16678531,2122517621,108331012,33324675,1586172533,105316102,83773066,-955807696,66630,-1962931527,-768869306,1183445495,2009074684,105286581,1292036291,648020227,-2000617982,681638982,-2000617982,715258694,129762562,-1912781175,-11470266,28836982,-6664192,-1023409921,55366632,-96039678,108461904,16777114,-28931840]},{"sector":8,"data":[376815627,1727413424,-61961475,-1056707286,-1996202357,112647,1183515627,-1578580994,-352255924,73304837,1586169855,-2145416444,-244047809,1284171971,1183646212,1996443898,-26106,1183383552,1975520248,73304867,721176202,126437604,-1979425141,-466945210,38242632,-1962647925,-1137836730,71796999,-1007139189,55331816,105286402,-1246113237,-772671739,-1948200480,1200161886,105286404,-235417045,-1106880887,216727918,-1962510807,1207895134,23969284,1178191499,736981766,1862173183,-2096466687,91554303,-352321096,-1967117566,704647309,-1983839251,1178336838,688289542,-347666874,73305048,1586184073,105286404,-1023260791,4970472,108461826,1342180536,-1957642197,1344144454,770970,108461824,1342439864,-1202667477,-796164097,-526757806,-1023410171,4958184,2130753536,1375797178,200383056,547553280,1975520000,-339727612,374833,201431632,1347551232,788634,2269952,-445333493,1342179000,616602,-1706012160,2415,184557219,-1194429248,-389873663,19288,2113155,-16157696,-1711267786,3128,2244227,-16157696,-1711267274,3144,1982083,-16157696,-1711268298,65535,1260579011,1996423685,-129594106,-2070261738,-1962934263,-1593827274,1178141282,-1962642426,-16768458,1183646838,1448089336,629402,434684672,-16711093,-6683018,-1962934017,65558256,-1010398464,4905960,74907393,1342179512,832666,-1706012160,1962,-1207666945]},{"sector":9,"data":[-1706033147,3050,-6664110,-16776961,922682486,-627441634,-1023410164,4891624,1547108098,1647771392,140614144,1996423168,171376390,74907395,50870015,51132159,6043391,1347469355,-1174396744,1347551436,559514,1776861952,-16711606,244319350,1074121192,-1177408704,-235470841,-389823861,16861776,-1962647925,277318175,-1947981312,73305072,721700747,309714,-770969097,1065551477,1174500609,-389822837,346660,1342411448,1342188216,-397361109,649657494,-1159180286,57844735,-1091010931,118882854,-945445467,64070,1358448269,-1543534616,1923155042,1644561155,394500,129618475,-1544423680,1654719568,59901188,-939637111,128582,1586171627,-28901378,-1997126006,-163119353,956527265,-361302458,956442273,1963085830,36348182,39061049,915082613,512426578,-2004876190,-398457966,-389872299,346512,50477217,-1727772154,-150992967,-62486023,-150713695,-28931624,16402119,-94467328,1183572945,-259552770,-62485755,-113151,2122578502,-444856326,-772120949,37265891,99649417,721576097,-1727770106,72355467,1183447543,40149494,-940030327,64070,1586173419,-1948003846,-2021001146,1183516160,-129629706,-1577433345,1178141776,-1948025606,-472778146,721568417,-1996205562,-1023016825,38337512,-10229759,-1996095304,244055110,-506395568,1183432963,-14357506,-1070922634,-60912816,922695679,922681912,565707858,15776256,-426094510,-2097151986]},{"sector":10,"data":[-1962738618,1178205766,-1194036484,1183385074,787964,-335657335,74907429,-237941,1681325879,1245118210,1614216964,2209794,1375793338,145660496,1182990336,1183515388,-62506498,-389819534,20138104,84028065,1183385532,36085999,1183367422,-330920466,-1404662448,702544,166697552,1183383552,1580136354,-1580692732,-1054145992,-775804007,-1471772168,44320455,74907392,178256,-1404662448,1996443670,163224226,1187446784,-956067082,100705862,16664263,21031168,-2086248821,-1962760634,-230258425,-1952031093,-230282489,-940292471,99658310,16533191,-1436644608,44713603,1183385483,-1436644360,1177225099,-96040456,16678531,922701941,1183515388,2146633212,-1639543472,79187990,-6664192,-1996488449,787978822,-930413474,737822347,-1037329983,1174665425,-1471772168,721577121,-1996101626,1996465222,-1468596476,-1639543472,1996443670,256547482,1586167808,4161782,-1779891339,-1572419840,126484482,1059382314,-1404662448,1352418953,-1946615576,1065393246,-16354000,1191158350,-1572435044,73281271,1183565963,-1715393542,-120470997,-1980217853,1183557702,1611017204,-1037330172,1174665425,1376125938,-1538881276,-151626101,225722375,-16484609,-11470730,1189673590,-161576191,1954547702,74907407,-493825,1996465270,4909306,-16484609,1996466294,-1673098332,1996443678,267033250,1191116800,-163119108,133987971,-454491267,-28901378,956584097,58588742,-84503,922682486]},{"sector":11,"data":[904397352,47882497,5244473,1189610357,-1377254655,-1962671034,-788242890,71732198,731498027,66638274,243992646,-506395574,1183433003,243960,71970551,66602499,-96040506,-1962522997,-788246002,-1983829023,915144262,908788818,-167050510,-963967874,-1070923029,50742787,-1996201978,1996487750,-126419190,-1946257665,1177287238,-11517704,-1207676362,-256245727,-1706012160,4446,-16091393,1996486774,-96039940,1090012715,1379336016,2209796,1375793338,293640784,1996423168,-126419190,-100609,-1962653130,1177287750,-1202700034,-256245727,-1706012160,4514,-16091393,1996487286,1245118462,-62485756,1090405931,2209872,1375793338,246127184,-389873664,67126728,-1962248449,67438662,1996443648,6600710,28856350,-442871808,-16777199,1183517302,71697160,73270827,1342178093,-1207535873,1344143462,1342177720,1084058,-2048343296,-16644539,1183646838,1156075764,108461824,385107597,-26032,-389873664,410984,36189951,1358186125,-1962924312,1174664262,-1037329928,103545041,1183384670,-96039938,72484395,-244087,-1705968010,65535,1160964291,1183515139,1644561158,-28931836,506265,1451882999,-28931076,-1980106855,1586231878,-59340028,-2071206191,100861424,126420042,-1962647925,-422445962,99779723,-1962653815,1988822110,-1947807238,50724996,-1996205562,1586168391,-92894460,-2071206191,1200162306,-840383738,-1962672060,130483294,535494656]},{"sector":12,"data":[-1962385781,121178694,1182998399,1586168328,2080848136,112645,1586172395,-1962410236,1183515742,2080848134,-1010816041,38058984,23967745,-150577525,1183384679,75465724,-1962118144,-783809465,1088999912,-1946401279,529204830,-2020875311,1174470760,106859516,721700747,309714,-770969097,1065551989,-16550399,1586232390,38243078,-1946401279,-389809082,541756,-1091273075,118882854,-945445467,63046,1358186125,-1947726192,-263812609,57804291,-375159,1183707254,-639086338,584837152,213436555,-26282240,1183432963,-1960252420,126614622,1005733513,594803270,163715,-259322252,-1947175381,-2147196386,-2147249528,217859715,-1577171201,1178141290,-388989698,-389864792,345028,1851011,729576448,244338880,-940449816,7174,-633929984,112642,1354771280,1342545848,-1705983957,65535,47855359,1342177720,-150991688,50473510,1342318086,1342177720,16777114,2050424576,1354771202,16777114,-2143879424,1354771202,112720,122460752,681639936,42377986,-2031612272,48668928,5244473,-626982028,244338690,-1007588376,4406248,-331447552,108265474,49024767,1048778219,1962935024,-339727612,-267452659,-335100158,-1207956734,-389873663,17168,49036931,-16354293,-352130042,-264338667,74807042,233553963,49284863,49022663,28835840,-437730560,-2097086398,1946158206,-3676155,-1746402325,1958743039,-401698811,-389873663,17136,1342368952]},{"sector":13,"data":[1224240360,42337851,-323483021,1592283138,65751288,-1560115551,-152567058,1958742786,36093754,503508158,-1515870969,47855359,1342177720,-150991688,50473510,1342318086,1342177720,1308058,-128980992,-16601624,-1711089098,859,-1022289432,54682600,108461827,1342566584,1342179256,1358710413,201162728,-10390336,12060790,922701830,1183646800,1776832762,1958743037,505931,-1946521865,-60947496,-2130813303,234175,-323013004,36093442,-1515911394,734235557,1342464518,-1711166744,17,47842875,922683764,244318938,-2081414168,1946158206,36091911,39839824,1105651907,-323026432,36093442,-1515911394,105286565,376750091,1946157373,146716,54336628,1026388992,896794628,-1070917653,-19994544,-352321096,112706,1048834795,1962935024,-339727612,-267452622,-401698814,-521404723,49299075,-1411977,-352129018,71732204,213504555,-1544423680,1183515376,-137221372,-334067215,-1009587454,21064680,473858820,57933824,-1593771031,1178141402,-385649654,-1084882704,649986796,-1526260222,-1956731483,574425158,-385649408,58065061,1023457769,57999369,1023450601,57999373,1023451369,57999393,-385842967,1048772792,1946157806,49193223,1558925384,201182696,-1207143232,-397409556,1346959021,-1207901208,-1813446655,-298415360,1923171842,2096118531,-36444106,-411779061,-538197973,49165963,185069187,-400523786,-1072956014,-323432076,1927827458,-339344394]},{"sector":14,"data":[-298415166,130450178,990081697,1443266032,-352301336,1916152754,-40638461,-1485520885,732031830,-1310175040,-1197675523,-169148415,48641791,-1243083120,-1198724114,-397409754,-2081750795,1962943805,-10819325,1946166845,2571667,1961427829,2637311,-1070881932,1079961795,1183514881,49193732,184591592,-13208384,-1878861258,-179116018,1358841481,36189951,-347160,1183579766,36217604,1342342819,-351256,-16590282,-6619530,-402652929,-873923919,367575822,-1962868672,-291306426,6023170,192200715,-1560000885,244318854,-1006817048,20969448,73304833,-1593673845,121176614,715198069,71776514,-397015435,334233467,1443120779,-1962742593,-1526259984,1449043365,-1006653464,71287784,-633929984,1354771202,112720,336763472,-389873664,147372,1403034,-1192195328,-1873804564,-83564530,555149392,-1873348469,-306518002,-389822581,17383304,1851011,-948931328,16784390,1354771200,-1645736304,48669165,5244473,2057373300,5284610,47855359,385369741,207329872,1386283008,-28956412,47855359,1374162576,-263812620,-129594032,922701846,2040135714,-16777204,-16590282,1335554166,-16777193,-1207797194,-397410176,922743618,28836474,26890240,-16777196,31982710,99140352,-16711361,244319350,1358587368,186677224,-1959693120,648086622,1963407618,36348168,1946437433,112645,-1070923029,1183576203,650073604,519080706,-1515870969,1962281822,-191109117]},{"sector":15,"data":[36714239,721524712,244338880,-1593376792,104399590,108331088,-401698736,-1679233840,-18425,133228624,41957119,1347469355,1342177720,1556122,-2143879424,352623106,922681344,-1070923046,28856400,-442871808,-16777192,-1711089098,6382,-1022552600,322854888,198567937,-1577695607,1183384654,58106344,736904841,18213375,105113687,-396889973,-1073010110,1996425076,-1947707900,-773878797,-1948003869,-1996288377,-1924074938,-397353914,1183444878,1962871792,-226590452,91488976,99632839,74907392,38680319,-599356074,1996443670,298031856,-396951552,1183385073,1611006954,-297367292,-2114042169,-773879040,-1948003869,-1996287865,-12714938,50951423,67499590,-28931840,-1962641665,1344208454,1358954424,384321165,2144336,-26032,1043922944,1953825354,41563903,1347469355,16777114,2050424576,768002,1354771280,-107327408,-16777191,-1207797194,726664192,1347440832,1708442,-129595136,-371063,-1207797194,726664193,1347440832,1713818,2050424576,768002,112720,1354771280,440179280,922681344,28836474,-1070903292,-92864688,-1694992641,2989,1950234951,-385647102,-1125581086,568902410,-1962867907,1346372678,1342377656,-1207882008,1183384334,1141804030,-773730044,-1983839263,384563782,-106869,96701239,-397410300,-1073020780,1182993524,1183515902,-28952070,1183572594,-28955654,-120457007,201082505,1345093312,-1962923544,-523109306,235266257]},{"sector":16,"data":[-28931837,1586172651,-1959264258,273859,13232208,83783299,251559553,-1008240893,3973096,51296257,71732048,-523116335,1342377477,721581217,-523172794,-397352751,-389866821,16792700,-788248949,98619872,-1202715890,-1588591858,1177223796,-773795580,-1729605408,1508426522,-16645316,-270006666,-28915962,-739768928,-1982297335,1688336990,138885380,-397209484,-259323388,73670283,-1996341109,-1058472378,108461833,990289640,92208710,-335657333,108461830,-1996058904,-1606613434,721712389,-1960711232,1183515742,-1962440442,1178205766,-1593477882,65733732,-1946157128,1200161886,112642,1004726467,1996423682,108587014,-112953,1883145215,309657346,-1962326296,1881050096,37784322,-385988983,1183517011,1183401990,108954620,-1726974976,39325323,1445591543,-58817540,-955941632,-954,972834443,92208710,-335657333,-62485757,1074153097,-1070922635,1586176491,105286404,1183516553,105265662,1889600885,-1207702782,1586233343,38242564,-1023409736,70999016,105286402,376750091,1946157373,146726,54341748,1026651136,846462980,28863723,28856320,-1070903296,-401698736,28835935,-1202066688,-1202716671,-1873805311,24897550,922741995,-622132156,71579391,2057431531,1342585090,721974528,244338880,-1497112,-1528298378,-840413180,1354771453,904400528,74907395,-16500248,721607222,-1202696000,-1706033151,6399,-1070881557,988997827,2057372427,1342585090]},{"sector":17,"data":[721974528,244338880,-1578572824,1183384334,-336188432,238485284,-330920701,-21108656,443858955,1342177720,-1946290712,1452010566,51291118,51385993,175520070,-166996097,2122411892,1946341616,-633929934,-401698814,1183444860,922702066,922682454,-2101869484,-1588584960,103613530,2056933376,-16777191,-16590282,1201336950,-16777192,-1929192906,1343682118,1579674,72655104,-1577564535,1183384440,-633929732,1354771202,-150607711,1183666414,-1924131082,1343682118,16777114,973024000,393480318,50481825,1141259206,-1593344764,-972881334,1151402987,1475906308,971509392,2097036034,108954374,1459909632,184650216,-12880650,-1711089098,7630,-654850421,54978640,16777114,1958742784,2050917153,443809794,41563903,1347469355,1342177720,1875098,2050424576,419994114,-389873664,34355652,956463777,1962954758,1354771208,-1243083120,-336188441,1142852405,-773598972,246939619,-297366269,-48830384,594853899,1342177720,-1946359576,-788249570,-1948003869,1452011078,243763696,278366467,1983464963,197558024,-385649162,922681477,1183646426,-1706027274,7477,-1996204895,2023880774,-62486269,47855359,-1957642197,-136775738,1342564398,385238669,-163148464,1570394134,-2097151971,280126,922699125,244318938,-1980889112,1048703558,47186702,850920829,-1207702783,1183383864,-227082262,72759039,72627967,1344163870,636058,463097856,-16777187,-16590282,664466038]}]],[[{"sector":1,"data":[-1962934243,-2096872386,1946158718,38445328,1183434283,2143292392,-1950340350,244340728,-1593775128,-970259388,75351867,3991639,930412043,47855359,2037658,-35105280,497654273,-1073020928,1048781172,1946157690,2050424602,1354771202,112720,499489360,922681344,-1667628422,-1023410147,70800360,74907393,-1996469016,100923974,1183384672,72262142,-1577564535,1183384438,-633929732,-129594110,28856342,1855606784,-1929379809,1343682630,-11485141,-1711128522,65535,40253183,385369741,112720,521050704,-389873664,16791548,-150714741,50718766,-1023126522,3664872,74877697,72627755,75429387,49006219,-1952858069,-150607858,1141259257,185826564,-1962639626,721611718,244029888,-101251608,1151402987,-639057148,-1593768905,104399482,141885520,-1873756117,-439687154,-1559869813,922681930,922681978,-397409202,-1588527219,103482230,-11533234,721707062,-1868934976,-402653184,-259324689,-1962899009,-472840610,-2020875311,1183384336,-49670,-125106316,-947651069,2050424580,768002,1354771280,1218072656,-16777184,1459780150,-1351192,-1207797194,-1202716661,726663169,-1706012480,6631,41563903,1347469355,1693082,78505984,956463777,1962954758,244338694,-1008389144,3605480,-633929984,112642,1354771280,1342546104,721454568,1342338054,-1705983957,8387,920578243,922681602,28836570,1183666176,-1924131074,1343683654,16777114,-633929984]},{"sector":2,"data":[112642,1354771280,66864779,726664262,-660975424,-1023410157,3581928,74877697,1979711107,238485257,2942979,922742923,28836570,1347833856,1373594,-2115452160,-16711626,-1207772618,-1706033151,65535,1342457347,-1006648856,20342760,-28915967,1183711231,1183666180,417878270,-28931328,911141059,1183645953,1183666430,82333700,-28931328,909830339,1586168328,-12614908,28837237,721611520,-163149376,125091851,-1962516853,-1207702777,1183384992,60614908,1358186121,-1996236824,1586229830,138871796,-1912977783,-11472314,1357445750,737708800,-25785866,1586178539,-28931324,611583801,5892182,-147066741,1183650428,1996443890,2746618,-29624181,-141884803,972965631,-763364234,-2096934168,1946220158,73304842,-1979824501,-1962546425,931726942,899868867,-1598094846,106859269,1983592331,-1962183932,76153468,-972823510,-947189879,897771715,1988821249,1480493828,-1715041534,-101199989,-33293781,94371713,-1598094466,-1010332923,120938472,48556033,-1191688567,2024013823,40936194,-1946657141,1688406087,233329412,-62486269,-1946270071,1191442526,-196703992,16402119,-196703488,1946043961,-27358422,-467007606,1183433475,71732210,1963083577,734235439,2024012870,-230257918,-1543748053,1187447908,-1962933766,1178205254,-1962314498,1177286214,40936444,-1962770712,602667590,-1946263925,1194918982,-1962246654,-62510141,-352033629,-28931118,-1946794359,1183445574]},{"sector":3,"data":[-1013781506,859093992,1245088512,2050424578,899074,2734160,-1471771312,731533334,-1996488672,1187421254,1187446998,-402653030,1183384075,-773944364,-1948003869,-1996287865,-12725690,-1961200385,-729938952,-467008118,-1996487379,1183685190,1166889174,635981828,-1673098266,1973044793,-700019432,1183666198,-1706027352,65535,91602955,-352321096,-1983894782,-790060986,-1602321663,-385649664,-1209532223,-1193768191,2124611585,71796995,-2097039640,1979699838,-1520009193,-1520008963,-773944322,-1948003869,-1996288377,871081542,50428648,-1924083130,-1202674618,-397410300,-2065165781,-763953407,-1962892824,-773598754,277333987,1459617539,715409034,1356396516,-1979686424,84188230,1317790762,14778532,1183432971,-1669430364,-150047488,16819270,1190594421,1946288292,-763460806,-1961658881,-773598754,246939619,-30087165,-1996200799,1996476998,-1538880046,8775760,-472785269,1183572945,277318098,1183471107,1357130404,-1023409688,3369960,-1961497854,45155958,-964565293,1015218960,-1962576641,67175494,-1593424129,1178141300,-1008698362,87245800,13166593,1358448265,-1996422168,1174665798,-62486268,126539915,1183441962,-1983708170,1397816902,-1946657141,1174603847,-28955654,290056272,-1946657141,1193932358,10086408,855566531,-2081947130,-1946645760,126485598,1183441962,120502772,990399787,-1207601215,48955393,1183432747,1958743036,73304891,50423680,9889879,-1946663287,108397552]},{"sector":4,"data":[66340491,-96040506,1166757974,-129629432,-397359573,1996427495,1996445188,282978548,32786059,250284101,46020351,-1202667477,-397410256,552078581,-62485760,847440067,132644865,1458604800,-1023392792,3306472,-2110324992,976898,845605059,922681344,367526530,1508426496,-1962868686,-472841122,50509823,16777114,1172882176,-1962868686,-472841122,50509823,16777114,837337856,-1962868686,1200292958,96666374,-389873654,6959648,-1996453192,-1979765114,-385930106,-125042790,425347,1166870388,780568842,-432603137,68728834,112720,1354771280,630692432,1183383552,-432603140,964610,1354771280,-1231400880,-1962934235,1962281968,1345781529,899072,-1923725744,-1979763578,385821830,584030800,-963969024,-1996077781,201273990,-1961527872,520040070,747014992,-1706025217,8996,745848843,-10557353,1508398928,847643647,1979666687,264103944,-13846785,1342850445,263317590,-1207536247,2124611585,71665923,-2080440600,1946221694,-432603374,68728834,1354771280,-2103816112,-1023410139,36785128,9158144,-1946235416,108889080,-1962576896,180782071,48641791,-447420330,-1006714136,53553128,108954370,-1207601820,48955393,-125059029,158727947,1694924419,-873921676,71731968,1946222653,33570069,4025716,-385649405,3997833,-378244091,-16056146,2057390964,5284610,-1946261016,120174832,-1559739349,512426124,-472841654,-2020875311,1183384336,-49666]},{"sector":5,"data":[-397012620,-661913976,-1963041277,31730183,-402617338,1048837699,2097152140,-1945712793,-352321536,48669023,-956280669,-1056928762,-950932736,-16741370,1962871679,-70981627,1525170923,-12719106,721591350,817385664,-689418240,187558666,-1593477889,65733242,990045857,1962954758,1345781531,964608,1354771280,530206800,989855782,2113965062,124931,809167043,922681447,230162512,-927444992,-2037559296,1343684408,2566042,-2114614528,-352270098,847678227,881232383,516328447,-26032,-259325952,-986986869,-1996437499,1006580358,2113965062,884902876,948160255,922681599,-2037579696,-397344968,922739718,922682046,817365696,988303360,-169295094,-1962603985,272436294,1023898625,1014235409,1183538923,5022478,33179334,33113798,-1124383033,-129594105,-330920624,112720,177707600,1996423168,440334,-330920624,-6664170,-1207959297,652935169,1024083595,125042689,1946157629,-1250550,317197942,-1774848,-1070920074,-26032,-672464896,-389824469,17772376,-1207666945,-1924136954,1343678534,1342180280,2638490,74907392,1342179256,385107597,768080,-26032,-1073020928,1183648629,1183666420,-504868632,-398029344,-498692784,-494540720,1450557451,1358186125,1342368952,199390952,-1203276352,-1873804564,-362747890,-1929183069,-1957567922,-401698576,-2036077998,2009479939,-155693015,-1511501822,3604235,59422723,194701392,74760203,59377407,-1207666945]},{"sector":6,"data":[-1706033151,10254,922685163,-1070923122,4241488,152299600,782690499,-2031615998,1354771200,-974647664,1458973660,-1946404888,59154936,1912751417,50372877,1996637497,38127365,-396951553,-2092499920,-612629506,49690367,721652385,1342371334,-1207157016,1347421050,1342177720,-1873756117,490072078,1851011,-1207340032,-397409754,502001468,5256959,1709706896,-1084795172,649986796,-1526260222,1583326629,1525157520,2114373611,-402652925,-389873631,77336,39466751,2721690,-1578071296,117375118,-1073020786,914949237,-389872580,11768,9309951,922683765,-1097202628,-1023410174,154002408,-1084795390,649986796,-1526260222,1583326629,1023690379,58064917,50498281,-13724736,724306343,-706195264,1975520008,41281795,1342177720,-384347160,-1070923157,146729040,58048523,-402497815,1491670986,977175298,510918658,1558938,-297367296,1342422200,1342177720,-15616280,-1365578122,-385875963,28836403,770199552,36301058,1342177976,184689640,-385649216,1642594843,34990367,1342178232,184684520,-385649216,-1729625593,33679870,2745754,-297367296,47842875,-253164683,12079105,-1070903292,-1706012592,10915,-1980479863,-801376682,-722926731,1095681,712219216,-1073020928,783814013,-6664192,184549631,-11961152,-16621002,-1711119818,10928,440400,8435792,717068880,1996423168,50378990,1354771280,1301958736,-16777177,-16621002,-1711119818]},{"sector":7,"data":[1776,440400,1354771280,16777114,24242432,-1192331521,726663939,1347440832,2773146,22931712,2811034,12079104,-1696077053,10991,50444368,899341547,1342177322,-352124232,-391124783,-2097072407,7230,1354237300,-1200428286,-397409712,552201318,473858817,494141440,1342318264,-1209528688,200838119,-385649153,1464795399,1342368952,-337646104,1354771265,-370586648,1048772851,1946157084,36091927,-401698736,-125048950,-1422524543,-655817867,-806664448,-352321096,309462,13297744,58048523,-2097102103,7230,-323483020,-370651134,11659756,-352129864,405072005,-1207916823,-397410299,-1073020768,-1729559691,-26112,113704960,66430,-402617623,-2065102849,440320,8317008,2037694475,72892035,-402295808,1844124723,-350457368,505960,6482000,1567932427,58590919,922681345,244318848,-1948215320,244340464,-2308888,1443004470,2011034,473858816,896794624,1342318264,-336863000,-903236820,36298025,539626538,-483731414,2813482,-13960916,1110119722,-1993644757,-1423208661,-852774613,875312427,971555626,-16711381,721706038,1996443840,1647771396,73304834,-472783919,2275327,2144255,16777114,-940537088,19462,837337856,-1962589397,272436294,1023898625,544473361,1183528683,5022478,243792,374864,73971792,-26032,28835840,15853824,1024083595,359923713,1962934845,13297923,1962935101,13232387]},{"sector":8,"data":[-722878421,242679552,1342177720,16777114,1570394112,184549378,-3705664,62393974,-2037559296,1343684474,1342210232,2633114,2055638272,-1706027265,65535,-8747379,86501456,-8747379,-26032,-1073020928,922686325,-2037579064,-1202651270,-397410256,2112423113,2055638527,726669055,-6664000,-1962934017,91504888,-352321096,-1950340350,1962281968,-6662370,-16776961,-1929206730,1358920326,1342252216,1023709416,57999367,-1912651799,1358920326,240248918,58048523,-53271,28839542,-1264955392,-385875928,1996488480,-339727602,242679792,1342177720,-402098433,166266062,233358335,-1962604502,272436294,1023898625,477364497,1183543787,5022478,505936,9484368,-409317346,-1207959513,1508573185,1024083595,125042689,1946157629,-1250499,129502838,1183666176,-1202710798,-1706033141,11485,1358055053,1342368952,-1982005528,-1072959418,1996425333,112654,28840427,1996443648,84470000,1996468715,1354771214,2976666,732228352,-2048343104,-1962606039,272436294,1023964161,913572113,-1962881047,1285754438,163074048,-2069803008,34775810,-26032,1996423168,571406,49848656,1342312611,-1705983957,65535,-385875528,1183514782,81162,37555316,1028486144,1433665545,1996482283,571406,-62485168,-1070903274,-26032,279117824,-58817790,1023767552,276168714,44971775,-1202667477,-397410240,-1259666627,-1560145247,278987396,49849090,-1207011585]},{"sector":9,"data":[99287041,722368255,161108160,-352321490,242679699,1342179768,1343125247,16777114,1975520000,112645,-1070923029,775592528,1048772608,1962934802,112645,-1070923029,-385740125,-1070858402,681502915,1183515914,17841420,289212532,-379751423,1183514911,5022478,38411915,-472783919,51298187,-1952856181,-150841330,1959922681,1183667993,-1343729428,242679769,1342178232,384583309,766483024,1996423168,702478,50378832,50391120,-1207011585,-1202716661,-397409536,28836594,13101312,1024083595,913571841,1946157629,212266,171773044,1025995776,779354123,1996479723,702478,142016336,-16596504,196611702,1996443648,-4134136,-1070920074,113737451,66648,45364875,113707755,1112,45233803,-1207011585,-1924136957,1343679558,1342180536,3004570,-330920704,36485200,-624891824,200820361,722238912,1996443840,52226296,-1577094167,-1952906708,-150841330,1976699897,-1338573050,-15799550,-402510794,104067590,242549848,1354771286,1342193848,-385761048,1996488516,112654,784046672,904462336,-1010816001,153577448,205949701,1946226749,17906951,1391155572,-1559345525,-1202716596,-1202716657,-1588592624,251987014,34906880,-26032,922681344,1183646256,2011713774,242679768,1342181816,384714381,792894032,1996423168,41066766,-1560278011,-1706032618,11453,-401698736,-1070869240,-1962866199,19728966,998656,-118946954,-1816132864,-2119696594]},{"sector":10,"data":[242679601,1342181816,384714381,833616,802003536,1183645696,817385710,-873967614,-96040487,209567755,-11485141,669579894,12445954,755111073,1183383567,71737852,1962690105,-62485732,-16496989,184835126,-1207601984,65732640,1342181560,474010,35037440,-1560277971,-1073020302,20778100,1024816128,410255362,113706731,983640,-1207011585,367722497,39323335,-253034466,39323335,-387252164,722368255,647647424,-352321488,242679628,1342180536,1342181048,-1559607669,-1706032618,12382,1996436459,1030158,1095760,172395344,-352185181,1211150821,-1590582991,-1590582991,-1590582991,-1590582991,1429315889,1429296433,1848733233,112689,636676291,1183515904,17841420,289212276,-351439871,239504159,-1207939933,384499713,17464963,1996426869,112654,827300432,-404029440,-389824469,58860948,-16742771,142016336,-1948824600,108954608,1443329024,-402229505,1049351996,-16056244,1049298037,-1923677598,385810566,42639696,1996443678,-26108,-389873664,16852308,-956008821,65094,1015028971,-2146667218,1965949308,24936478,-1961331364,-1706025274,10086,1015083147,1457485056,1342214584,-1009327128,2431976,75399427,762643200,-16222465,1956251254,1342177330,-1207404801,-1706033149,12428,964688,1354771280,-778416048,1342177322,16777114,-504839424,-402587612,1048772689,1946157950,-1506345146,62699522,75400016,-1207602176,48959488]},{"sector":11,"data":[588038187,-14423984,1946157629,408866,1048781173,1946157626,62699533,112720,148498512,28840171,1508397056,721939449,-1207702592,-389873663,74888,2808218,1005619968,1963124278,-229382139,909707755,57999994,-1007702552,1143236584,71731970,1962933565,-115444,-12775308,-350128897,47358333,-8878455,2122544363,91488262,-352311621,2603779,-2020875311,-454360440,-8747379,108954448,-1593478144,65733260,1342345377,-1982472216,-2080409466,1946158718,36085804,1183367422,36217084,1183367422,36348411,-1995981819,1183710534,-1224781574,28901240,-694530048,-352321497,1580662539,2025258754,-716379905,-8747379,-1224767765,-1070858376,3192912,-30414768,599976131,649592839,244338690,-1948311064,1183667952,2045268214,833536,-1946784009,41150712,2105800707,91553794,-352321096,-1983894782,1843921477,673090306,1646134018,-1833467900,1048805379,1962934300,674692893,-129594110,-566630320,47855359,385369741,112720,525048400,113704960,66430,592636099,922681344,-1070922260,178256,-26032,-324861952,-1547687163,1789068004,837337858,-402520541,1183384061,73305076,931788331,40517259,-1983894705,1183448134,-2091717640,1962997886,-62470320,-963969024,731498243,-1946627646,126420062,-1962931016,804717662,1577310347,-1995994124,1178334790,-955812602,129094,1183521771,105265654,1187450230,-1962933764,931857502,-1962480826,1066075230]},{"sector":12,"data":[2130131791,26929322,16547459,1586169204,-1962410236,-389810106,33759912,-1593543029,-268238230,33619585,922686078,-1070923076,3192912,-51124144,1626062891,48510521,-24435075,-16201853,-1207571402,-269025268,178256,875469392,-1073020928,922682997,-890568036,48512649,-1962858264,833736,50753271,-28931647,833616,50622199,-1588527546,1177223786,833798,-397350409,233308267,1781958913,112642,572713155,213385730,107935488,-420941685,-1192230144,1861681164,1355154180,40542550,721831467,213451846,1357510400,-1962921240,103351366,-840433046,1782483712,147292930,990045345,-15106568,-1996100554,-1962744770,833991,-1202656777,-1706033150,13574,566421699,1988821761,108397316,956712587,477235270,-16497013,-1073019826,1586182004,105316102,-16220533,92932166,-454359160,17057419,1988692038,-15668474,1586169422,139394822,-1979154805,-1962440699,1325335622,1975520004,-1010398234,35744744,833537,-1962643721,3139824,2089021443,292880386,-16352125,2088962933,91619080,-352321096,-1950340350,2025720,175439627,-1207666945,-397410303,-389808373,8492,99366655,2434458,501793536,-16777183,-1710887882,9529,554625219,652738560,1275512576,-1207959550,726663169,820531392,5415680,242597899,43136767,-1202667477,-397410256,-389809331,8416,5389955,-955419648,20998,112640,160950352,549906627,1183449665]},{"sector":13,"data":[1357130244,503355064,1354771280,-8485235,-6664170,184549631,-1926335296,385842822,105286480,-523040847,503605253,178256,-26032,1183383552,225722622,-1694599425,11575,-352321096,-1010816254,18904040,106859266,294787,1586170997,-33044732,112895,1586191851,105351942,1963476739,73304841,-63545,1048831979,1962934354,-1808335088,1354771202,1342189752,-335897368,38576585,-1988047744,28900934,-11513856,535299702,1958742784,73304842,-1979824501,-5313785,721589814,280514752,1793609728,-1010816006,85982184,-129579261,2122515558,91554054,1291339463,142508802,-15633408,45614710,-605531992,1975520008,8710403,-788111733,-2138600477,-96040701,-1962647925,1191380551,4785416,-388823375,-940161399,-1962934265,-522979770,-113015,1586231926,-754480136,1347590624,-1705983957,65535,1979710083,-49915,1996428660,74907642,-385976577,-1073018855,28837236,721611520,-62486080,-16222465,-253229450,1958742792,-58817773,-1962052608,1183578206,-1207500298,48955393,-389824469,50667336,16271047,71731968,-1988107136,1190655558,1954545668,-129579259,2122514433,292814856,-1191676161,-397367294,-1073018850,-1830222987,-128021760,-2020875311,1183384448,1183535354,-754535946,1372138464,1354771280,3660954,-359680,-12778123,-15305473,1183578742,-1202708986,-1706033142,65535,1946159677,142016267,-386369793,1206585431,-1962516853,1191380551]},{"sector":14,"data":[-62486264,-1946519809,98208963,1347551242,-1694730497,14484,1979467323,112645,-1070923029,-113015,1996425334,136177912,192200715,16678531,28837236,721611520,2112406464,-1711207650,13037,736904841,244338880,-3368984,1183646838,770199802,1975520251,-92864683,1342177720,201042152,-15895104,244378742,734819304,27060672,-1946349336,833736,66744055,-163149375,1183570059,-1962440444,1204287070,-1962934270,1204287070,-1962934268,1204287070,-1946157306,1204287070,-385876216,-689373976,-1194816516,1861681164,64523258,-161576487,-1996077173,1200352838,-364476152,-2080585752,1962928766,-364475636,-1207795037,803799041,234481665,-939768183,259142,-766209,1709765750,-1948742677,1183384135,-193527810,-1947505688,1178205254,-1579059980,1178141276,-2082900738,1962933886,-193528014,-1981072408,-1924075450,-397346746,-1072956138,1996427125,-348460812,-386238721,719977486,-262239233,280519,-193528064,-1367064,166263926,-263812629,-1147261,-1847000204,-1948742912,-1983894544,1200162884,-262239482,-1996208501,1586168391,71813104,1996423168,-353441540,-1946417944,833752,-1946521865,-62485520,-402112375,2122578944,1282736126,-386631937,-661919048,-16627769,-193527809,-1392664,1183710838,-907521798,-70522631,213436555,-93391104,-654059381,-940155255,-63417,-17269117,1586170228,-129594378,-402241655,1996487604,-77534982,-369342837,28901098,1996443648]},{"sector":15,"data":[-294191120,201158888,-385649472,1586233191,38258672,1996488703,-14554628,480438467,2122515459,125108234,37371523,-2096270336,1963002494,1379828493,108331008,-385875528,1996423354,-1476216822,91809872,309706763,-401967361,45614011,-1259843584,-373282045,45613210,45633536,1474842752,1975520005,112645,-1070923029,-166989685,1996426612,59631626,1342177976,-1962703128,1525352062,-32866941,1166758261,-96040698,1946156605,-96012474,108298240,17464963,1190595956,1971323130,176063282,1445754112,-16222465,-1293354378,1958743036,-96040057,-1593162359,1166607462,45635078,1996443648,-68884472,58048523,-2080413207,2117668039,-6195452,484969078,178179,51767376,465758403,-1561853431,105286637,45633566,530206720,-1996488659,-1072957882,1183518845,726670854,-6664000,-1996488449,2122577478,578683126,-1695123713,14064,-1191772952,-11534334,266864246,1350568962,200978152,-384207424,922681746,1996423896,3192838,-171186096,736978152,25618880,-150991688,84044334,865665087,-1178457150,-120389626,-1037319629,73835328,-1946546968,-1194816528,787939340,-939326870,-335786359,172279560,-964427778,-59361012,-102173833,30206201,-386251127,1183447521,-1194816528,787939340,-939326870,-2080616823,1962998398,-260666594,2013034041,16836867,-1995815797,-29495738,-1996262145,-964491708,-387585268,1183386367,1978159358,-1191670808,1464860673,-1018113,485031030]},{"sector":16,"data":[1958743038,1354771222,-260636841,-386107649,-1072955893,28837236,721611520,-96040512,-16628281,-25755649,-2081927192,1946221182,-260636776,184682216,-393317184,28899684,-1427615744,105286400,1756909598,-1202708988,-1706022910,14050,1090012809,1996427124,1004837624,1891106816,233328644,178202,-1476216752,55371856,-1191557495,-397410302,2122514831,242483450,1342533816,-402229505,-1073014269,1187452021,-16420858,-1207787978,-1202715280,-397410256,1183577217,-1202708986,1344144488,1346371768,3998874,-118364160,58590919,1996423168,53209094,-1192494872,451608577,-1191654424,-397410302,-1070923087,780368,44054271,-380583893,-389808533,17045968,-396954069,-125048980,-16614013,1979656820,-62485246,-159193008,-1946647320,833736,-1946390793,-1982266408,-2115499913,75400184,-955943936,1093,-414521258,67011398,-124075908,-1996488648,649656390,244338690,1356129768,-329752,244381814,-1010328600,18443240,71731969,-1912715639,-397345210,1586220216,25133310,-1979353798,65771527,-1021755672,85542888,-28915968,1187446784,-352321028,-58817669,-8489984,-773259658,-2081387546,1962869372,41221982,1358579341,-1191843864,1861681164,-386364422,-133957663,-16235065,105155583,1963475971,38061846,-4653057,105220607,-16104055,2145974902,-2094928905,1946158204,105220891,-1593162359,1166607462,112646,178256,-806857136,-62486024,-546840,2045312630]},{"sector":17,"data":[-28901402,67010179,2095645565,-62485505,414116035,1586168065,-1948004092,-1962704713,91570374,-352321096,73304851,-2016943151,-64640,1024629334,-387252224,411232451,45613347,45633536,2011713704,1958742785,59023673,1358579337,-1728036680,-1070903214,947493456,-92078080,1023768063,443875327,-362753,213386358,1781462784,-555200510,1958742784,112645,-1070923029,-15992693,-1276574859,-1169781504,4241488,1354771280,-1194679832,-1924136876,-1202668986,-397410296,-259262901,1342335672,178262,-163714992,-122097525,-1202302974,-397410302,-259262929,1342342328,178262,-165550000,1924722827,-1202302974,-397410302,-259262957,1342331064,178262,-167385008,1186525323,-1202302972,-397410302,-259262985,1342320824,178262,-169220016,1996484747,1354771450,312102992,-2097151937,91619322,1962934077,-92864745,1354385037,1342193848,184558824,-1207601984,48955393,-125059029,1342177976,201245416,185169088,-1207601921,48955393,-389824469,50337632,-1962379521,1344144966,-1710983425,65535,1963214395,112645,922685675,-1070923102,271628368,-241178544,-389824469,16848688,-1207666945,-397367294,-259325914,-402360577,-166986133,1183520628,-754470652,74450400,381872208,91537419,-352321096,-1010816254,1506280,108432130,-2071206191,1344144066,-1324988789,98620167,1344144488,-1710983425,15721,58754185,-1207602112,48955393,-389824469,17569480,1342422200]}],[{"sector":1,"data":[-402360577,-2002663296,71710978,28837236,721611520,37397440,175423499,503596683,753441360,1183645696,922702056,1441268408,1996443848,-26108,-397410304,922732616,1183646306,-1706027288,65535,376629443,2122514944,175374342,-402360577,-1072955981,28837236,721611520,1441317824,-402587370,-1070864331,-401698736,113755252,894,-1543503944,2057503340,1458973443,-1948002328,38258648,-396951553,-2092506144,-344194050,-940389656,194566,-2079930624,-956301054,33714694,1476839168,-16761854,721706038,228217024,-1593835471,1185087810,805750532,-16654334,-402487242,-722927843,75400180,-955419648,201467398,38844416,-699930544,-1008216856,1075170280,1547108096,1647771396,768002,243792,309328,374864,10139728,8435792,-2142859952,73971792,58767440,-26032,-1073020928,31982452,-1914125568,-402643691,-1070864531,-13965232,58736267,1967179659,-1472790767,1354771202,1342189752,-370158360,727122269,1347440832,4181914,-359680,-12778123,1461286143,381306509,4241488,952408656,1077739520,-1207601920,48955393,1183432747,1975520252,15788291,-2071267797,1110966356,-16288582,-385701322,-2092564254,-360969986,1354909325,1358841485,1342177976,737362664,1996443840,-229381890,58048523,-1929328663,-1202666426,-1202715912,-397410302,1183707939,-2068295482,45633538,350769152,-934900237,41072720,178256,-217716656,1355433613,1342331064]},{"sector":2,"data":[1342177976,-1913456920,-1202664378,-1202715578,-397410302,1183707879,817385678,45633538,-655863808,1547108338,1178501892,91488260,-352313160,1095683,1098095184,213385216,-26282240,1471563401,519260392,-1233715376,4336282,-1236911360,28837237,721611520,-62486080,737360872,-1528278848,-58817541,-16026624,-402498506,-1072958008,-1070916491,-35198896,44840703,-1202667477,-397406160,-1070862695,-75896752,1555570155,-1202696190,726663169,244338880,-1711080728,11166,1342468280,-939704088,201467398,38844416,-730601392,-1008336664,34863080,-28915967,1586167808,-773598972,277318627,-62486269,1962934077,-514463721,1988876427,-1325364228,636015368,1183383553,-513939202,-1006745973,320061416,1245612800,-775451902,-1981754912,-661923258,51414923,1039156873,1316356095,618677899,-1996157952,1317068870,1187447265,-2147483138,-1946295962,-1996288377,1183444550,-465123614,401100800,1681326046,-532247292,-529668016,58048523,-1962838807,-773598753,73703907,51414921,374871,-857184533,66096096,83357814,91554048,-352321096,633350914,1183383553,-754404902,-2146661408,-1056178459,1183515785,-28931622,276152331,33555703,1015024245,-1207601915,48955393,1183432747,-526259980,16023171,1996429940,-541529872,-472785013,-2016943151,-64752,-280489,-545462192,-622335913,66602633,-1996101626,178388038,-163149565,50857475,-375159,-1929192906,1343682118,1342177720]},{"sector":3,"data":[3412634,-633929984,518625794,1005060096,-1982297120,28896350,58630912,-1962653815,1200352350,-364476158,-2085144,1183705718,1508397298,-25263121,-1207602176,65732609,-1979711560,1256774214,-1194816527,1861681164,64523250,-632910887,-402372863,1183576388,-431584790,-472785013,-2020875311,1183384334,-25263128,-1925811200,-1202657722,-1706032262,17728,-1924631232,-1202657722,-1706032548,17766,2130706237,-431584458,-1545054581,378078074,1553597308,-352321469,-431583966,58374224,-26032,-1073020928,1555566965,-1202696190,726663169,244338880,-1023355160,1185768,-1572961536,1567948800,10618567,1223360513,-1873756117,37742606,5127811,-13470720,721604150,817385664,719867904,1309067244,-1207959552,1347420764,1342177720,-1873756117,9299982,40634055,1469775871,-352321467,636935,-430249904,40648323,-944671233,41478,-1377254656,-1962605807,272436294,1024029697,1148453137,1424736299,-1559345525,1554055244,1578535682,-96040702,-1912842615,-1588528570,1346372344,16777114,40679424,-96039600,112720,242679632,552078992,1812383488,-1191182590,350945281,17464963,1996469877,112654,835885648,-404029440,289597635,-85457878,207522786,1468729227,-1270445822,-1950984567,126552670,-1996335221,1451868230,2047264706,-385876221,1183383831,-1267269692,1354516109,-370298904,-1360527112,-1194816529,1861681164,-1983839300,-661931450,1183385483,71797680,-1950464375]},{"sector":4,"data":[1183385159,142052268,-2081450008,1962983038,12839171,-12728693,-2095876609,1962936446,12708099,1455715979,-391350529,-397016871,-397353420,-1880498600,390912,-385649407,1325334656,38112190,-1917696375,-1924091834,-1705987002,18196,-1922599872,-1924091834,-1705983930,17712,-1961659328,1451995206,58368946,58463881,-570496938,2122541035,1047789574,-1929218561,-397359546,1183433126,64523192,1204172509,1183523014,767886264,-1924136903,-397409211,1996472796,309254,67221584,1354771280,382092941,-26032,92930048,-956046294,2122578059,57934014,1459578601,-2251800,1788984390,-1136248574,-35060867,-505419522,265742531,62783490,-396997120,-661922448,1443004299,-2082636824,-311033857,-389822837,33623992,-402229505,-259269292,1342177720,74907478,-940549912,-64956,-402229505,-389817008,16781244,956319905,276039238,39991039,-1559869813,-1706033080,65535,259451075,-1070923773,-401698736,1183563160,201336058,-96040699,-17078656,50024064,-1996346207,1187445830,922681598,1183646820,1156075770,1958743004,112650,-665196464,-1023373336,84882408,1354771200,1441271440,-592385859,-396887925,-661922580,41426435,145819531,-259266349,124545,-1996339829,-1662454202,2016870364,-608638974,1198847499,-1913227521,-397345722,-1092031556,-1194816531,1861681164,64523260,72351705,-1578255384,1183384108,-163148296,58374224,1191483984,-1073020928,1555566965]},{"sector":5,"data":[-1202696190,726663169,244338880,-1191340312,-397344769,32036811,-1511472384,-402652914,-661922774,-1560280648,1200161662,-601233404,36452095,735143912,1174531062,-472785269,748807121,243742978,-1578075133,1352860282,244340224,-1193887768,-397344769,922736570,-1070923046,28856400,-1315287040,-1023410108,118388712,205949701,1946226749,17906951,1206592884,-1559345525,1183645772,753422578,242679745,1342179000,384976525,813341264,28835840,-1960383744,20777542,1023898624,175374338,1996483819,-559159282,1996481771,1354771214,4607642,735570688,-236403776,-402647283,-1073020026,-4715907,1793609983,15264005,48248575,383534733,-26032,1183514624,-465173540,-16589661,-1207771082,-1706033142,65535,-603026535,-1543899390,-722992514,-62486019,41289415,-157220864,-632911614,37633667,-385649664,-1969160044,-632932093,-1981217924,-329783296,213436555,-630262016,1183432963,-1948742696,-733574905,-1996077173,1200345670,-28931832,-2081668120,1979711102,-763460845,-1960545025,1183448134,1996443902,-40900398,-100609,-1070869386,4843600,1148502027,59653763,-16419584,-1863591354,41303683,-1592495104,100860534,104530830,125698686,184711912,-14846784,1996488310,112852,1173584,-814366709,1625819883,1958742786,56289283,217245891,1183515462,71213828,-9140595,-956156765,232966,142016256,-1982170136,1187508806,-956300804,126534,-627906480,1586229387]},{"sector":6,"data":[138871794,972310153,58193014,-150944279,1962999812,71073800,-1394015371,108461824,184631784,-385649216,922681475,2008547892,548950016,199774208,325567,-1962445823,-972934114,1962879495,37003522,-397393856,1183432162,-58817552,-2094893824,1946218110,41713927,360514256,84030625,-1957691385,86896710,548950016,-941076480,-263812162,36963843,1183400000,-2585610,130479686,-161576160,-2147481658,175506492,-1913227521,-397409212,803782112,1975520001,142016267,735692776,11266496,16533191,41713920,92013264,15615687,704940544,-1949957148,-13374992,-2081268085,1946158719,-1908505731,225705987,1342177720,184600296,-351504960,108462012,184577512,-1951238976,-947654018,-1923945718,-1979747194,1187511878,-1979710982,1586185989,-28901378,194512776,1025537216,57933837,-2142822421,-93057731,-947190805,171802695,1586231412,-12073218,1325525760,16402119,-92372224,-389778176,-1073020790,1491665781,4030719,1996466549,-652548088,-1023409736,51076072,-1908505855,1031077891,41303683,-1206946816,-397410302,-1073020877,-1070922635,1996434155,-96039676,-1092294576,1358579341,36976383,-390236952,-1073020870,28893300,149442560,1958742784,112853,185526467,512426240,130417204,-401872128,-1073020906,-1070922635,1183518187,72285956,-344604661,-1023409736,714728,1044284160,963903492,956464801,2080536070,3532811,74825739,753647659,48248575,-1588543445]},{"sector":7,"data":[787939958,-1588591908,1344143924,-1650831330,1342177310,2007962,1980169984,-1912144126,112643,177924291,922681345,28836576,-1070903296,1347440720,-26032,1183383552,2109737982,14608397,-385976577,-1070923267,113707499,630,-1023409736,604660712,116955648,-526188544,2109737730,-18426,-402607383,113761329,574,48248575,1342179768,-1202667477,-4521985,-11513089,-1710990282,19897,-1070903214,-2103816112,-16777139,-1929223626,1343666246,1342183608,16777114,-533266688,702466,-1203335856,-1080405994,1342177356,381175437,1354771280,1290443344,1183383552,2109737942,-533266671,118725122,-555220992,-700019749,922695659,179831900,1347590400,39991039,-1157627976,1347616767,73152255,16777114,-1706012160,65535,-16589149,721576502,-1986375488,721420338,-1712798784,-2097151991,147006,922687349,196608736,-1070903296,1347440720,1297062480,-521666560,-533266688,1301453314,1927806976,-1847016485,-352187895,-330920636,-1070903274,-1202696112,-1706033151,65535,880066571,48119427,-15567872,-1929191882,1343679558,16777114,1975520000,-330920684,-6664170,-1929379585,1343679558,16777114,1044284160,-1250689022,37633667,-1207601920,48955393,-389824469,83888432,1024214667,544473360,1946227005,18234631,1458259316,37619399,1357381633,-569981184,-1207959550,1156251649,722368255,-6664000,-1560280833,1996423704,374798,62699600,1088854608]},{"sector":8,"data":[1344143360,4804250,242679552,-571994480,-3347530,-1207822282,-1202655136,-1706033151,1826,-1070876181,144107715,922681344,28836450,-811970560,-16777139,-1711088074,381,48105159,-389873664,16844916,-66814333,1187448693,-352312834,75399954,-955812357,2293318,1187448299,-1962928130,-472777122,42514431,1342422200,5156506,817385472,-1561833472,1575535586,-1962592504,1554189894,1174849284,1342177284,1342181560,4385434,1095680,-26032,1085800448,12079104,-666466040,-26032,1183383552,-934901286,91602955,-823541717,-644346,-1957294474,1344194630,-1697089793,4019,-767129280,2080375357,-773944353,-934900765,42502025,30557835,1177143366,-662797352,1187347968,2083126915,-629735482,721944760,-1202661306,-1706033088,13736,184974824,-391809856,-1072972814,-1070921355,119728208,721840361,12079296,1347590527,5243546,40411904,-495665141,-1202667477,1385791233,1343724112,-2002583552,1958742787,1354771405,-1719729480,-6664110,-1560280833,-1073020326,2122561652,2121596940,1353598605,1342184120,-397361109,1996470718,112654,-1706012007,65535,196757129,-946899776,114758,12732103,10795008,-1933293943,1183565406,-1203336946,195970759,-1337538816,1187512319,-1912602702,1343663686,16777114,1975520000,-11081469,1183432747,-1069119038,-1996443720,1586283590,-1371107898,2040156182,184549456,-385649216,-164888780,-523123061,604365009]},{"sector":9,"data":[-1673099008,2013255819,-13107454,1150946934,-1962934195,126458974,184702857,-385649214,-2092499192,-797177346,-1207011585,1385758721,-26032,1285750784,1975520004,-18159357,-401705217,-1073019516,28837493,-19076864,-1705983957,3207,1352550025,383534733,1235130960,1996423168,-25954,1554186240,1958742784,1354771413,-1700890881,11253,-1545845109,1183515744,73311206,-1545582965,1183515378,57975780,611696651,-1727766367,-1037319629,-754973767,734147576,-1673098814,2097152317,112645,1183515627,57975708,50558113,-1559994362,95946216,-1952821248,-1560281007,112723018,-1751494656,-1560281007,45614162,-1550168064,-1560281007,364380718,-1348841472,-1560281007,62391790,-6664192,-1560280833,922681890,246939746,1183666176,-1706027360,65535,-1549646197,1183515400,51159972,-788245855,-1673098784,50558113,-1996101626,1183554118,570819484,-1740207870,966411915,58497094,-1550301557,-392101312,65065221,50614790,-1560054778,1386283620,-234476796,-1773762302,41926667,-930365397,-150993224,-1962651090,63015888,1611006914,440580,100919799,1621296210,1611071234,40149250,39847427,-1207811421,787939331,1183385064,37790154,37881347,50520739,1174653510,1946551196,1376125699,71869188,84171425,787939372,100861022,100861002,100860680,1183384110,35955092,73008643,-150993915,-1962648018,243912,71970551,-291387389,65065221,-1840346680,999573131]},{"sector":10,"data":[-1962639672,-1962677311,1084462150,1242467076,736219396,37135297,36570667,71960067,-1593689949,755303514,1580136192,1241907972,-800683772,1074027169,1580136256,99263236,99485187,50480291,-1559999994,100860816,-190642706,1577452290,71475972,-1559994719,100860682,100860680,1319306334,440322,73281271,38667779,-1207675229,787939331,100861022,1319306326,-1194816764,787939368,-939326370,71962115,58068617,37895819,-788245855,737684448,-1962707906,244029895,-101251608,1208120483,-1962654557,-101213753,731497099,1090048450,-1962650461,41198024,99102455,243910659,-1179122824,726670848,-1169141568,1347551436,-1588572080,-523172782,71828995,1354771280,242679632,-342208432,-1560281005,-1073020318,45614709,-65214208,503366840,1354771280,1082178128,921194578,-2132258639,922702001,922682432,922682440,-1070923166,242679632,630870096,-1560281004,-1073020314,922684533,-258342302,-385875890,-826737802,726670848,-1169141568,1347567616,922701904,922681910,922681920,-11533722,1347423862,5528730,41984768,-965427189,503371960,1354771280,1075886672,-11513774,-1593688010,103482432,-11533238,-16629194,721577526,1996443840,-1706012658,65535,184736419,-1198558016,1344143586,1347469355,-1174403912,1347571712,721565345,731500614,-1543974462,-1588592068,1177224264,1376685002,736219396,38183873,-797507760,-3508481,-1207802314,-11534235,-1070920074,-543535024]},{"sector":11,"data":[-1560281004,-1073020186,971572085,15186175,-1070903266,12210256,1347441216,-11513776,-1207772618,-11534236,-1070920074,-1348841392,-1560281005,-1073020294,166265717,-1946801153,-941370914,-16547705,-24951041,-1192199165,726663170,1788498112,-1560281009,1354237420,1589137410,-6664190,-1207959297,-1873804720,-1111955442,-16622429,721576502,-390573888,-1070903293,-6664112,184549631,-15632960,721604662,280514752,-1897377776,-22615588,39991039,-1705983957,20123,1356220041,1347469355,1357904,151042128,1434884688,1996423168,1354771414,503495329,1357904,16824400,-26032,2122514432,91554310,-352321096,-1547687166,1239941866,140428465,4161574,28838261,1843941376,-15078421,1996425846,73971720,-1070903266,1083480656,-2136801280,-333780989,48905859,-1593019392,1352860282,-368654592,-16777214,-16621002,-107346314,-16777131,-1711119818,22018,40253183,1342177720,5640090,1714880256,1444452866,922681344,28836480,630870016,-16777130,-1711112138,22062,47855359,1342177720,5651354,-633929984,1153079810,922681344,28836582,1603948544,-16777192,-1711086026,21996,-1023409736,16851944,-1191826688,-1202716606,-1706031104,21767,-472785269,50497417,74825739,166445099,67011398,28892540,-169295104,-16711680,28836982,1347590400,5675674,6464256,-1202667477,1385791482,-26032,1587740672,1354771200,-1719665736,-1986375598,-1560281002]},{"sector":12,"data":[1048772704,1946157154,1581155088,158597120,91537419,-352321096,-1010816254,41960,1648263936,158597120,6436607,5696922,1581155072,158597120,6174463,5701018,1614709504,158597120,6305535,796826,1843970816,-1962868736,-1073019834,20780660,1024357376,259325954,6043391,5111450,-5707776,733278440,-1957313600,-1957210388,1102316630,28844493,855798528,-1956749376,46292453,-326413056,1451972438,-1962467834,1454638206,28844493,855798528,-1956749376,79846885,-1269344768,69324057,1593881665,1432077150,-1959859061,860046103,-775779648,1457531872,-1967115433,1356911046,1599722495,1575324510,-2030757,-661865501,-1959896176,1162035991,518818645,-1070344050,-523124086,1465311275,-963985357,-11476783,1583307219,-1962742397,1297948645,-519895205,-1144302842,-346881726,745126852,-1145115821,-346863325,665172920,-1145902253,-346870387,773176236,-1146688685,-346870020,808696736,-1147475117,-346869336,1173207956,-1148261549,-346861974,1309260680,-2105349293,-201260288,1761608519,1711342336,1778385706,33620736,1795162885,469828352,1828717390,-553581824,1845494531,-2097085696,1862271794,-1342176768,201391949,989856256,218169165,1124139776,1895826254,1291911936,1912603470,1543570176,83886422,-939457792,100663631,1291911936,134218038,-1157561600,16777740,1543570176,150995254,1275069184,453050114,1140916992,2080375638,1358955264,469827407,453051136,2097152841]},{"sector":13,"data":[301990656,486604621,167772928,503381769,436208384,520158991,1426129664,2130707232,-1459617024,536936202,-1476328704,150995468,-2030042368,553713459,369165056,16778034,-234880256,570490634,-822082816,587267909,-1912601856,604045100,-100662528,620822316,-1191116032,100664065,754975488,637599567,-704642304,654376769,-1509948672,671153992,-184483072,-1996487931,486540032,687931206,503382784,-1979710714,1509950208,704708431,922813184,167773013,385876736,721485653,-1493105920,201327361,302056192,-1879047418,1006699264,486539793,-83819776,369099561,-419364096,385876797,-989789440,553648716,1845560064,-1728052395,-1493105920,-1711275258,16843520,570425869,-805240064,-1694497970,1476461312,-1677720747,-2080308480,-1660943574,-234814720,637534797,939590400,553648926,-1845427456,-1577057494,-419364096,570426190,-1023343872,587203372,285278976,-1560280316,-1090452736,855638352,1073808128,-1543503100,1627456256,603980621,-956235008,754975244,939590400,-1526725870,-134151424,620757824,-503250176,-1509948671,486605568,-1493171452,-285146368,654312193,234947328,671089410,-1358888192,687866708,-486472960,704643925,436273920,872415825,-318700800,-1392508081,1073808128,-1375730864,-1425997056,-1358953642,-1946090752,-1342176433,-503250176,-1325399216,2130772736,-1291844783,-1593769216,-1275067636,-234814720,872416030,-83819776,889193299,-150928640,939524895,-1694432512,956302160]},{"sector":14,"data":[-704576768,1107296779,-1107229952,1241514325,486605568,1140851287,-587136256,1157628502,1661010688,1023410974,1073808128,1291845938,-385809664,1040188192,-67042560,1056965408,-771685632,1325400384,-1946090752,1073742624,-1459551488,1090519840,-436141312,1358954814,67175168,1107297105,16843520,1375732035,-754908416,1392509243,738263808,1140851537,285278976,1409286466,1627456256,1157628713,-1090452736,1426063675,536937216,1442840896,-738131200,1459618085,-1275002112,1342177865,1811940608,16842576,1929446144,1509949773,-1006566656,1375732305,1543570176,1291846431,989922048,1358955288,-1023343872,1627390262,33620736,1375732498,-1392507648,201391949,-1040121088,1426064153,302056192,1560281681,939525376,218169165,1493238528,1459618604,1963000576,1476395849,-1073675520,1493173069,889258752,1509950286,1728119552,1526727474,-1258224896,1543504718,-1040121088,1560281904,1342243584,1577059118,2113995520,1593836334,1744896768,1610613553,-570359040,1627390766,-855571712,1644167982,1845560064,1694499655,1895825920,16842576,0,0,1167087646,518818645,-327034738,-11140960,-1070920586,-11513776,-1706030986,65535,425603,-1159134347,209125120,-1928825089,385837190,8435792,-26032,-2037841920,-259260574,-9979264,-972721060,1560242306,-10320129,-10307957,-9927994,105286400,-1996486651,-1946196858,134547014,244338688,-1996451352,-1912641914,-1979750266,-1946197882]},{"sector":15,"data":[973039238,1946117254,1688111886,1622576127,939821823,-1959758841,973039238,1979671686,1621003017,4161791,1183517300,525574,-10189175,-15960321,-2037708170,1344208740,16777114,-1959662848,520053894,14522960,-2037841920,-2037645468,1344208736,86938,-6755584,28839030,-6664192,1342177535,-1705983957,65535,49120094,1562371467,576077,1167087646,518818645,-326903666,105286406,1344163870,16777114,105251584,932859934,-1996488703,820771910,503727755,-62485680,-6664162,-1996488449,-661914554,1183319946,1952201978,1966750724,-62485745,-6664162,-1996488449,149683270,956712587,-931660730,-1962742397,1297948645,525002,15991043,2228227,13500675,5046273,19071235,5111809,18415875,5898241,15401219,5963779,12648707,6029315,3801347,6094851,1835267,6553603,1167087646,518818645,-327034738,79167634,-1202708991,1344143613,503381176,1954975056,-1202710785,-1706033024,65535,108380171,-369098824,-2037579448,1183448948,-162099980,-1098901269,1949106030,-159973601,-1695254785,136,-1980479863,1589966422,126494452,-9533816,-629817334,653549252,1946173312,-196673759,509478,-1098901269,2132868974,-159973601,-1695254785,195,-1980479863,1589966422,126494452,-9533816,-629817334,-1946925429,1183446614,-61437446,-1098899477,1949106030,1857978406,528359679,-624897,43709558,-1996488703,1451881542,-195115786]},{"sector":16,"data":[-2012771802,184512134,-992774720,-2144930722,678690879,653543167,-352319546,1857978399,125706495,-9519488,-14715604,1996486262,20486900,1183383552,-162100748,653549252,-2037905526,-1073021074,1183568757,-162100236,-9402743,-9267575,-1098901269,2116091758,-159973601,-1695254785,65535,-1980479863,1589966422,126494452,-9533816,-629817334,653549252,-16775226,1996487798,1954975226,-11528449,-36170,738160822,-1706012480,65535,200820361,-385649216,-310116686,535137026,63655261,671154944,973078784,1879114496,889192961,1342243584,1291845888,0,0,0,0,1167120524,518818645,1465309326,567094452,-1996071285,38766871,-310157729,535137026,46812509,-1864856576,-326412987,1457032734,-852839337,106859297,1468598152,55544065,-310157729,535137026,46812509,-1873273344,-326412987,-2082959842,-1957295892,1988692086,-96024584,1586167808,55020042,1183441962,1111393276,544538625,2080377917,-59866357,-96024820,99287352,855262919,-58817791,-955943680,851014,1459386111,21249667,-167348992,1946420806,112645,-1070923029,-401698736,-259325685,-2013187680,1586185732,38242826,1448141866,1342177720,-253227376,-2081387776,1946221182,537183768,1586170603,-96010246,76023690,-94467258,1962950528,105314029,-1962183672,1065416798,-972851920,80093191,734432000,-2090928058,-443874579,-900899553,1478361094,-1957345904,-661774612]},{"sector":17,"data":[1460595843,141986646,-1947044215,1200294494,1040591619,-1177408767,-235470748,-1979492471,-467008953,-1963178359,-125107897,-1946517879,-129594942,20987523,-1994755072,1200290942,-1981535742,1048836678,1963065664,-1983739128,2122972230,-59310088,1144454998,-401698815,-259325889,-2013187936,1996441092,922703610,244318532,-1962923288,19964144,-12188536,-11077514,-1878965194,1435662,80146571,-230282496,-310157474,535137026,113921373,-1873273344,-326412987,-2082959842,1448543468,-1962248565,-963966850,702873,1183447543,1975520252,108954374,-1979157504,805633094,-1958279800,179935686,-2131101952,361246914,1590135623,49120095,1562371467,445005,1167087646,518818645,-326903666,1988843020,1183667718,-756526856,200313601,-1207536138,-1024851969,832587264,-12306431,-1923681931,-397347770,-259325515,-478874101,16139975,3964928,1344157044,16777114,-2012968448,849410630,-96061439,1187448693,-352242948,20488210,1979336248,-163133514,1187446785,-1962854148,1065417822,-2095942400,82494,2122531189,410914040,-335544648,3965018,1586204020,-62455812,1946630316,-8394282,16154243,2122517877,393547000,16271047,-2096043264,1946220670,-125926449,-2096857844,-2096302010,2098788478,-193035329,-1950778052,1183451230,55019768,-1997257078,1204159047,130416641,1589652224,-1962742397,1297948645,503317706,1430622296,-1910575989,216826840,1988843095,1183667718,-555200268,200313600]}],[{"sector":1,"data":[-1207536138,-1813381121,815814144,-397371391,-259325801,-344656373,-96039594,12314704,-166989685,-1604919948,1352139056,-1962902808,1962281968,1183667918,-1628942084,200313600,-2134870794,-1149960132,1023492257,125042689,1946157629,-1962087620,1183577214,-196703750,-1577419127,1174470974,-58817540,-2130346652,124582982,-1979162997,1200157766,-62485758,-1979496567,1200159302,244339457,-352274968,-58815733,-1980479861,-1091830714,-310157474,535137026,80366941,-326413056,-1962742653,126486110,-1963047288,1178076230,-2146667266,1949171326,-25264122,-16222929,1183516230,721611526,1575324608,1426064578,-326898549,-1957275898,32179830,540835910,1988754036,-28915716,76152832,1475906456,16777114,1975520000,822051614,-8185476,-1206616263,1727463434,768017406,1183383600,-1203943682,970158603,91618422,283885611,540835910,1586231924,-28931324,-963967095,-443850914,311901,1167087646,518818645,-326903666,-1957275898,2139096670,108265474,201490304,-21494154,8907263,-1962516853,-276757633,-8190020,-1207601545,1944846333,-1979294069,-14024097,19105674,-259267542,247799,1586170485,41910278,1174500610,-1979294069,-467009209,2009480008,39815865,-472776918,17479563,-150901320,200279015,-1928694529,-388890811,54585553,63436784,-1962248960,2139096670,24510978,106859334,704726922,1086718948,129618475,-1997408512,1589652247,49120095,1562371467,33737293,218170112]},{"sector":2,"data":[855638786,1224803072,1325400320,0,1167087646,518818645,-326903666,-1957275888,1988692086,114672,2114256771,14608643,20979339,-472783919,21332362,-1072962518,20780148,1028813824,1634992130,1962935101,8513795,1190543595,980681734,-2146804085,259391295,-26029,-1073020928,-1070922371,1442882537,-1979031925,98839047,-397377556,-259325791,1963065219,738510340,83854150,80086132,-347650528,1586189967,38242826,-553262038,2062045311,-336557312,105314021,-1948027640,1200228958,1357130241,1144454998,14653953,-259325952,20987523,-960269056,-347722748,173968317,721635211,-1996407290,-1181090746,-101253020,28857936,-174436352,-1962934272,-62485520,6601113,1448278519,1342177720,16777114,-370111744,80150399,734432000,1600057414,-1962742397,1297948645,1426065098,-1957237621,922682998,1996423932,516328196,2013264,-26032,-972881920,1575324510,197826,11665411,2883839,5636099,2949375,19529987,11534339,1167087646,518818645,-326903666,138840836,-1207763805,1344143758,503403192,1354771280,21146,21013248,537282294,113707124,65858,1190536171,141824006,21104327,367722496,503418552,22591568,-1070903266,7707216,1117978624,105313793,-955747324,16860166,-1206523136,1344143758,503406264,1354771280,35482,21275392,503418552,23443536,-1070903266,-26032,1050869760,26130433,1907904542,-1202708991,1344143666]},{"sector":3,"data":[112742430,-1046851584,-1207959552,1344143758,503412664,20494416,1344163870,1342179000,56986,26130432,2142785566,-1202708991,1344143741,385631885,178256,16882256,1183449088,19964668,503418552,25671760,-2051518434,-1924129279,1343683654,1342177976,16777114,-62486016,-2097073758,-443874579,-900899553,1478361092,-1957345904,-661774612,-1205539709,-397408258,-4718423,-1561833465,604423936,-1207958014,-1202683936,-397377557,109248593,-1207631324,-1202683924,-397377550,1187446849,-2097151748,82494,951592309,-1706025471,369,-1191426423,1344143666,16777114,73048832,2130462265,-62485754,-2096866653,100948486,-1962742397,1297948645,1426064074,-326898549,727078690,-14619658,-16581578,1191118454,-532247290,515395606,-6664192,-1962934017,2130590712,-1946711294,1178141766,30963206,1577198646,1575324511,1426064578,-326898549,-63504638,134133762,-1202695527,1385758726,-26032,-1073020928,922687604,1996423932,-25858,1183383552,1958743038,112645,-1070923029,201213577,1342600384,16777114,1575324416,459458,34930947,1179649,2162947,3735553,10944771,3801089,32112899,3932161,33161475,3997697,28508419,11534339,23331075,5898241,0,0,0,5,0,0,505355295,522133023,522067742,0,0,65535,65535,65535,65535,65535,65535,65535]},{"sector":4,"data":[65535,65535,0,0,0,-1280269643,-1247629133,0,0,3932222,2031616,5898299,9896056,13893813,17891571,21889328,538968064,538976288,0,32767,1094921728,1094910028,710672460,1279345454,0,1466720579,1632461934,1124101737,1851223137,1651856228,1818313472,1298427479,7235937,1466720579,1968399470,1631780962,1684952940,6452563,1466720579,1968399470,1682243682,1157657705,7629156,1529830434,1014774365,993864510,8236,1986348032,6644585,1684957559,7567215,2031616,5898299,9896056,13893813,17891571,21889328,505355295,522133023,522067742,1296120367,0,19792,0,0,16777216,33555202,16974593,1147731970,6648929,1835619433,1281949797,1869768058,1700358400,1716482657,1952805734,825324288,1929394485,959787826,1929391872,1702125892,1929394688,1701669204,1852375040,27764,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2122252288,65921,0,0,0,0,0,0,0,0,0,97517568,99616232,591420,3670019,524543,3932163,590079,4194307,655615,4456451,721151,2359299,196863,2621443,262399,2883587,327935]},{"sector":5,"data":[3145731,393471,3407875,459007,258,2097184,16842756,0,-12584705,-12584705,-16269057,-16269057,-1863681,-1863681,-507906,-507906,-507906,-507906,-507906,-507906,-507906,-507906,1073676280,1073676280,-1879048221,-1879048221,-469762161,16777216,16777216,-12584705,-12584705,-12584705,-8389377,-1,-1,-1,-1,-1,-1,-1,257,4194304,524352,0,0,16128,0,16128,0,16128,0,16128,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768]},{"sector":6,"data":[0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,768,0,15729408,0,15729408,0,15729408,0,15729408,0,-64768,-1,-1,-1,-1,-1,-1,-1,65535,0,0,0,0,0,0,0,-12648448,-1,-12648193,-1,-12648193,-1,-12648193,-1,-12648193,-1,-12648193,-1,-12648193,-1,-12648193,-1,255,0,0,0,0,0,0,0,1061093376,1061109567,1061093439,1061109567,1061093439,1061109567,1061093439,1061109567,63,0,0,0,0,0,0,0,1061093376,1061109567,1061093439,1061109567,1061093439,1061109567,1061093439,1061109567,63,0,0,0,0,0,0,0,1061093376,1061109567,1061093439,1061109567,1061093439,1061109567,1061093439,1061109567,63,0,0,0,0,0,0,0,1061093376,1061109567,1061093439,1061109567,1061093439]},{"sector":7,"data":[1061109567,1061093439,1061109567,63,0,0,0,0,0,0,0,1061093376,1061109567,1061093439,1061109567,1061093439,1061109567,1061093439,1061109567,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1818838544,101,2003127808,65536,1852141647,3026478,1392509440,6649441,1392509696,543520353,774796097,67108910,1769099264,774796398,92274734,1835356672,778401391,268447278,1953064005,393216,158627139,7103812,1124075264,158953583,-2147470778,1632632840,157643891,7564873,1701402128,150995063,2036417536,3753481,1291848320,1752460911,808535561,1750274048,30575,1867776011,158949732,1701670728,786432,1986359888,1937076073,1733320201,7361824,1308626176,158627941,543641694,-2147455420,1631846414,774792564,877005102,1816203264,7172705,1392512768,1175024741,276824117,1852785408,1819243124,774778483,1884262400,1852795252,285212787,1918979328,910559595,1179648,1667592275,543973737,1701669204,154021422,-2147469498,1631846419,1699946617,1852404852,774796135,46,-1874853888,335549446,1342215168,0,131118,786532,8388611,8474755]},{"sector":8,"data":[335545344,939542016,50332672,-2091867392,5701632,3276840,65550,1342373889,1701859200,1459617902,838875648,33558016,50331648,1631813712,1818583918,5111808,3932180,327692,1342308352,33554562,671089152,-16774144,33555199,1766228560,1847616876,979725665,0,0,-1874853888,335549445,805348864,0,983052,786536,8388611,8474755,33557504,201341952,16776960,-2108685824,1702256979,1818846752,1935745125,1342177338,1207960064,83889152,33554944,33360,983160,917539,65537,1400918019,6649441,553678848,234889984,512,-2142240000,1668178243,27749,0,-1874853888,335549447,1006664704,0,524292,524360,65535,1350717442,1953393010,1886404896,1953393007,1953391981,67108979,335550976,-16775168,33554687,1917223504,3829103,704644096,134220800,16776960,-2108685824,3829588,402660352,201338368,1536,-2125430016,1835008,3014696,458764,1350762496,1409286273,587208448,16780800,50331904,1800372304,5505024,2293799,131086,1342373888,1851868032,7103843,0,0,-1874853888,335549447,1006664704,0,524292,524364,65535,1384271874,1987013989,1883316325,1852403568,1852140916,29556,1703940,524308,65535,1182945282,980250482,262144,786474,-65528,1342308352,980374658,1835008]},{"sector":9,"data":[3014680,393228,1350762496,469762177,771762176,117443584,-2097152000,33104,1507412,917539,65537,1333809155,1409286251,587212544,33558016,50331648,1631813712,1818583918,0,0,-1874853888,335549444,738234368,0,655364,524328,65535,1401049090,544698216,1702125892,805306426,771753984,117443584,-2097152000,33104,458856,917539,65537,1333809155,1744830571,587208704,33558016,50331648,1631813712,1818583918,0,0,0,-1874853888,335549446,939563520,0,524292,524344,65535,1099059202,1836212588,1852785440,1819243124,67108979,1342183424,-16775168,33554687,1631945296,544828530,1735289170,540026912,808525869,14889,1441880,786448,8,8474755,637535232,201334784,33556736,-2142240000,1853189971,1912602724,587207936,16780800,50331904,1800372304,7471104,2293797,131086,1342373888,1851868032,7103843,0,0,0,-1874853888,335549445,738229248,0,524292,524340,65535,1401049090,1768121712,1411411041,979725673,3932160,2621447,196620,1350762496,67108993,587208704,167775744,50331904,1850310736,1953654131,2883584,2293784,720910,1342373888,1818576000,6648933,402674688,234889984,512,-2142240000,1668178243,27749]},{"sector":10,"data":[-1874853888,335549452,1208001536,0,524292,524336,65535,1149390850,1394637153,1769239653,7563118,402654208,134225920,16776960,-2108685824,1702129225,1818326642,3407872,1310742,786444,1342373892,3486080,369118208,201331712,67112192,-2142240768,12339,1441892,786452,262158,914378752,67108912,738207744,-16775168,33554687,1867022928,1176531573,1634562671,872415348,335554048,251661312,50332672,842104912,4980736,1310758,1048588,1342177284,3420800,939525120,134232064,16776960,-2108685824,1918989395,1735289204,1835619360,14949,3604544,786472,17,8474755,671120384,234889984,16777472,-2142240000,27471,3670140,917539,2,1132482563,1701015137,108,0,-1874853888,335549446,1308662272,0,327680,524442,131071,1300385794,1869767529,1952870259,1852397344,1937207140,589824,23,-65536,1342177283,130946,234881024,134257152,33554176,-2108685824,1701601603,1918985326,1966080,6160418,-65528,1342308353,1919243906,1852795251,808333600,49,-1711264000,-16774912,33554943,1866695248,1769109872,544499815,959520937,539768120,1919117645,1718580079,1866670196,3043442,989871360,234889216,16777472,-2142240000,27471,-1874853888,335549443,1879101440,0,524310,524360,65535,1350717442]},{"sector":11,"data":[1935762796,1701978213,1651336557,774795877,1459617838,587225600,16780800,50331904,1800372304,262144,13107226,262200,1352859651,7032707,0,0,-1865940992,335549444,1073764864,1124073472,1852140641,7496036,2883613,917536,65538,1132482563,1701015137,108,1509951488,-16775168,33554943,1699971664,1852400750,103,1509954048,83888128,33554688,33360,1835008,524378,131071,1954697218,1752440943,1919950949,544501353,1869574259,779249004,0,1853171722,1819568500,136930405,1701601603,1918985326,1952531478,1752375397,1684829551,1869573152,1768693867,404776299,1919970633,1919250543,1851879968,1864394087,1633951846,779314548,1835619350,1752375397,1684829551,1869573152,1768693867,924869995,1852727619,1663071343,1952540018,1751326821,1701277281,1818846752,539828325,1953064037,1769414771,1847618668,1646294127,1701978213,1685221219,724460645,1663070030,1735287144,1768300645,757097836,1768187168,1629516660,1646290290,1735289189,1936286752,1685217635,523134053,1702130753,544501869,1914728308,1919902565,1684349028,544437353,1818845542,640574565,1702130753,544501869,1914728308,543449445,1702125924,1869768224,1768300653,1713399148,1701603681,1126641252,1735287144,1768300645,1763730796,1969627251,757099628,1701605408,543519585,1629515620,1986089760,1309814373,1696625775,1735749486,1701650536,2037542765]},{"sector":12,"data":[1631791918,544483182,1634624882,1847616877,1713403749,543517801,1768300589,1763730796,1869488243,1633886327,1684368492,1950424096,1886217588,1869881460,1986097952,1768300645,1713399148,1701603681,1141714532,543912809,1713402729,778857589,1885688337,1701011820,1769497888,1852404851,1393959015,543520353,1920103779,544501349,1851877475,980641127,32,0,0,0,1818838543,1869488229,1868963956,778333813,1953451546,1981833504,1684630625,1818321696,1633971813,1768300658,422471020,661545283,1701978228,1663067233,1852140641,544366948,1701603686,1833507630,1886351984,1696625253,2037150305,1852404256,1701847143,1685023090,1867387694,543236212,1667592307,543973737,1701669236,1884494126,1718182757,543450473,1701669236,1953459744,1970234912,506356846,1667592275,1701406313,1769218148,1629513069,1634038380,1763735908,1937055854,1124937317,1869508193,1919950964,544501353,1818313483,1633971813,539828338,1868710152,774796405,1867781678,1634541679,1679849838,1936028769,544106784,778400629,1952531469,1936269413,1819633184,537996908,2019906592,1920213108,1633906293,778331508,1769107222,1634625895,1631789164,1684956524,1713402465,342191209,1701601603,1918985326,1634231072,543516526,1701603686,2003136017,1818313504,1633971813,1768300658,25964,0,0,1953451541,1981833504,1684630625,1818846752,1835101797,1310662757,1696625775,1735749486]},{"sector":13,"data":[1768169576,1931504499,1701011824,544175136,1852404336,1310400628,1696625775,1735749486,1701650536,2037542765,544175136,1852404336,1395925108,1702130553,1818435693,543908719,544432488,1852138850,1634231072,1684367214,1684086828,1953723754,543649385,1954047342,1634492704,439250290,544173908,2037277037,1869374240,544435043,1948283503,1919249769,1143352947,543519841,1953723757,543515168,1914728041,1701277281,543584032,808991025,544175136,960049202,1631853870,1919885433,1852796192,1713399924,1684825449,1869575200,1918987296,556688743,1920298824,1919885427,1852402976,1936028789,1701406240,1948279916,1814065007,1701278305,1631784494,1953459822,1701995296,543519841,0,0,1851869703,2037539189,1650804232,1918989682,1632437625,90727282,1769107521,1632437100,1967785081,1241802094,108620917,1969714497,1393128563,1702129765,1919246957,1952665351,1919246959,1987005960,1700949349,1698957426,1651336547,1392931429,1633971829,1867318905,2036425838,1702188039,2036425843,1684363017,1685284206,31073,0,0,1969771528,1633973106,1917191801,2036425833,1952535304,1633972853,22217081,22282573,22282583,5439814,0,0,117469441,7864576,2030108681,16779776,720932,201335049,2230528,1929445389,16780800,983156,285242625,7733504,771817490,-2130701056,524333,0,-1962736664,2144763,-67057474,637535418]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[11164237,64,32,65535,-333119488,0,64,0,0,0,0,0,0,0,0,1024]},{"sector":5,"data":[1409297384,544434536,1735357040,544039282,1970365810,1936028265,1667845408,1869836146,1461744742,1868852841,221148023,240788490,-855002081,1275181089,8653]},{"sector":6,"data":[279886,15204743,191784445,458758,262145000,65836,458752,196615,4194433,23330936,24510832,1647,131110,1187250176,34074624,720896,57999804,57999680,104858316,104919408,289998011,290058608,728631610,728691056,295638220,295694640,371202475,371257648,22421392,85590033,-2147287036,1,133824512,-265289663,32769,-2147221504,1,138084352,-265289707,32769,-2147155968,10,139460608,-265289719,32774,140050432,-265289719,32769,140640256,-265289720,32770,141164544,-265289721,32771,141623296,-265289722,32773,142016512,-265289709,32779,143261696,-265289721,32775,143720448,-265289721,32776,144179200,-265289713,32777,145162240,-265289720,32778,-2147090432,3,145686528,-265289717,32769,146407424,-265289697,32770,148439040,-265289714,32771,-2146893824,1,149356544,1048580,32769,0,1380008712,1279870532,69,524289,100663308,1314014539,1191398469,1426344260,642925907,1070399999,16777220,537280461,1070399751,16777222,-955891763,1070399747,17178374,570703821,1070399774,17349125,1191526349,1070399752,532998,-754761779,1070399504,2118660,805584845,1070399513,316419,-469549107,1070399503,344579,503660493,1070399490,204549,-217759795,1070399498,644357,201736141]},{"sector":7,"data":[1070399501,752902,1074151373,1070399506,731651,-804962355,1070399503,1018117,822427597,1070399503,861701,2047033293,1070399501,1087749,-754696243,1070399513,2048004,318914509,1070399489,2,755122125,1070399492,1546756,1057243085,1070399528,229635,212941,301989888,1701080649,1631789176,1210082418,1818521185,29285,1397638662,71652929,1094912768,1314341970,1330794564,201328195,1162104393,1145984856,1129271888,1174863873,1329742158,349269,1095648779,1414680386,1129271888,1175322632,1329742158,1279546450,1330794567,100665155,1229213254,609345,1196180487,1129271888,1174798338,1162891086,846,-2081649835,1183519980,24027916,687747,-6681483,184549631,-384928320,1996423361,-26102,-998047744,74907394,-16222465,1996424822,-26100,-998047744,1975520008,10217731,40908543,16777114,1958742784,-330920629,922701846,12059248,129519617,-1070903295,-26032,-1073020928,1048784501,1946157194,1882652455,-26110,1183383552,-6663938,-2097151745,922682052,1996423792,-25858,113704960,138,384583309,1354771280,-6664112,184549631,-12225344,-16622538,-1929106890,1343679558,16777114,1958742784,-8591101,384583309,-26032,1183645696,-1706027284,65535,738158057,-1732751168,726670849,-1202696000,-1706033104,65535,-443826133,705117,0,1942235995,920188696,656953,959844215]},{"sector":8,"data":[1979714566,212022788,-2061568,-1140870941,-1329856848,-1705993987,65535,16777114,1958742784,-33110229,-1996488704,1459679246,1381172822,855713768,-6664000,1459618047,16777114,1958742784,-22747129,27322448,-850591816,-1957313759,-18196,-1957313699,-18196,-1957313699,1354771436,-1710983425,407,-1017256565,-1192457387,-1957691328,1861682246,-828747770,-1962934271,1438866917,1996483723,108461828,1342193848,16777114,1575324416,-326412861,-1710983425,477,-1017256565,736922453,1996443840,-26108,-443875328,-1957313699,74907628,16777114,1575324416,-326412861,-1710983425,582,-1017256565,-2081649835,-1070923028,71732048,-1706012007,65535,-1929492855,735087578,1575324608,-326412861,-16585597,-6683018,-1996488449,-628294074,-1070870389,-1017256565,-1275051,-6683018,-1962934017,1438866917,1996483723,-26108,-1073020928,28837236,721611520,1575324608,-326412861,1347469355,16777114,-402345728,-443875162,1320928093,1425768705,1393062657,1130043391,-1007490237,-1207958341,567100416,-1024062862,-2147126144,1073816207,-1007912629,567095476,-1023343453,16647822,741772070,889239552,512303565,109838578,521011444,-1171980104,567083296,1141803830,908256001,21366469,-617358708,1109327670,-385649919,-986251703,-1946072570,244698,1109327670,-1021372927,855643321,579335899,74711297,567099060,-1007492541,-387151019,1996423243,1042436,-1017256565]},{"sector":9,"data":[115600690,-657331503,1438907106,1122561163,-29235200,175432714,294528,1187382389,-987824636,-1207897578,567092480,1141803807,-1157111039,520028162,1183514946,-850611196,22330145,22346625,-11335565,1128487703,-1144786197,-75431596,141754710,1528299347,-219462845,50338243,50374401,50359296,50357761,50359552,50384385,50360576,16852993,50331904,50386945,50360832,16875521,50332928,16887041,50333184,16890881,50333440,16903169,50334208,-16743680,50339584,16909313,50335488,-16763392,50339840,50393089,50331904,-16768512,50340096,16916225,50336000,-16772352,50340352,16922369,50336768,50417921,50332928,16933121,50338048,16861953,50339328,50350337,50343680,50380033,50377216,50362881,50348544,50369025,50349056,16854273,1828739840,1167087646,518818645,1996478606,30455814,178256,2529872,1996423168,72923142,178256,3578448,1996423168,30586886,178256,4627024,1996423168,68204550,178256,5675600,1996423168,40679430,178256,6724176,1996423168,64403462,178256,7772752,1996423168,85243910,178256,8821328,1996423168,26392582,178256,9869904,1996423168,40024070,178256,10918480,1996423168,68597766,178256,11967056,1996423168,81704966,178256,13015632,1996423168,23377926,178256,14064208,1996423168,26261510]},{"sector":10,"data":[178256,15112784,1996423168,62306310,178256,16161360,1996423168,69908486,178256,17209936,1996423168,11450374,178256,-26032,-310181888,535137026,516640093,1430622296,-1910575989,-1796439592,-950642944,16740998,108461824,1342182072,503421112,3323984,21994064,1996423168,440326,24295504,515395614,1687834624,-16777215,129500790,817385472,-1202708988,-1706033112,377,-1207535873,-1202716664,1344144608,1342185144,102042,108461824,1342179768,503560376,2013264,27499088,1996423168,1226758,26785872,850939934,-6664192,184549631,-385649216,-4718208,-17665,1996443730,30513670,1721958400,1746307330,-18430,1392508858,108461904,125082,85369600,85464713,-1157627976,1347616767,-1710852353,511,-1996327261,-1207797738,-4521985,-11513089,379192950,-1560281086,378077810,-4717964,-17665,1996443730,36542982,-895287296,-870938367,-18431,1392508858,108461904,148890,2055637248,2090240511,-18177,1392508858,108461904,154778,42115840,42210953,-1157627976,1347616767,-1710852353,65535,-1996396381,184642070,-385649214,1119355072,884494336,1347590400,16777114,26649344,58048523,-956258327,273414,805750272,113704963,65894,65472198,134661888,-973078523,17032710,-26032,-2037841920,-1769341076,-1631256722,-74711188,-1190929218,-1510866918,26621695,16777114,9746432]},{"sector":11,"data":[-1330098146,726670848,16562880,1347440722,6600784,1354771280,108461904,-6664112,-1996488449,201290374,-1204587328,1344143538,503361976,309328,1380974778,1354771280,-11513776,-1191218506,-11534136,-1070922122,-275099568,-1560281086,-1073020304,-1224795275,-1732706446,726670849,-1202696000,-1706033104,65535,-638992341,1882652416,68532226,29603920,1354771280,-26032,922681344,-55049616,-6663937,-1560280833,378078478,922682640,-55049616,-1224781569,-1224736900,-6619270,-16776961,-36170,-6681482,-16776961,-6683018,-2097151745,1183515332,173443848,-9009527,-8874359,-2030107413,-1631256714,-2144927882,-227270593,-9140537,-2033777872,65392,-9003324,541032486,-1635049346,-2030043276,-1232339084,-2030043274,-1977155722,-16283644,-2080411514,2147446974,-1635002756,130482036,53524480,-6664162,-2147483393,208958,817370484,-6664189,-2097151745,-1073020220,113640821,-1207958736,1599995905,-1962742397,1297948645,-1873273141,-326412987,-2082959842,727069420,1268404416,-1560281084,79167952,1469730816,-1560281084,45614168,-6664192,-1560280833,-1202716206,-1924136952,1343672902,16777114,-767128320,-6664170,-1560280833,-1073020462,-794753419,30581505,-4538325,-1706012160,1188,184800931,-1593412160,-693960240,16758787,-1706012007,65535,184815779,-1593412160,279118936,12040196,-1070903266,1347440720,-6664112,-1996488449,-1072965050,-1070922379]},{"sector":12,"data":[-16686103,246995574,-375762944,-16777212,213506678,-259305216,16777114,1036387072,192741379,-1560161631,1486947604,-955258108,16821766,64397568,-1593502557,1822622736,-629735678,383534733,-26032,1996423168,-25894,1183514624,-465173540,-1962831197,1688462406,-431584510,-1593679197,-1556086382,683148310,1647245056,197890,-1207640413,787939339,100860306,84214162,23372544,-1202667477,1385791232,91986512,-1868365824,1354771201,-1719729480,-6664110,-1560280833,922682294,28836206,1347590400,16777114,-62486272,24000255,-1728052808,-6664110,-1560280833,1048773674,1962934672,-14751485,62275203,-385649408,2122579732,57999612,201264105,-385649216,1085865732,448286720,-6664192,-1996488449,-1072968122,-303496331,-1193767938,1200160916,408914966,-1996386143,1183518279,206014972,1066951,151504640,38258432,1204289535,-1577058556,1200161134,306693898,1204224001,-1962934252,-1706025277,65535,58048523,-89111,-6631818,-1207959297,-2090991615,-443874579,-884122337,131119,16712160,131076,16712206,131077,16712229,131078,16712276,131079,16712253,131080,16712183,196617,16712599,16973838,197466,16973935,67027,16973829,67119,16973831,66169,16973839,197440,16973825,66218,16973842,66249,196627,16712719,16973860,197479,16973959,197507,16973960,132291]},{"sector":13,"data":[16973977,65978,16973875,65558,16973878,197411,16973865,132211,16973874,197519,16973866,197994,16973997,198029,16973998,196922,16974000,198047,16974001,198176,16973881,132236,16973890,132386,16973892,66559,16973903,132315,327760,16713220,327681,16712111,16973826,132201,327762,16712134,327683,16712157,327684,16712203,327685,16712226,327686,16712273,16973831,132159,327767,16712250,327688,16712180,16973833,132378,131165,16713225,131073,16712114,131074,16712137,1953300483,1167087646,518818645,-327034738,-950664920,64582,-19102067,108461904,-1276637552,79987460,-19102067,-2037559274,1343684474,1344798904,163226,1552320768,2109737983,-373282043,-2033843407,-1207894157,-1924136957,1358917766,-10701057,-2096061208,-2037578044,1343684464,503323320,-26032,-1073020928,515379060,-6664192,-2097151745,-353828156,178178,-662270640,-1224781570,1860763484,113541904,26621695,-19364213,23463427,-150981447,1372138465,178256,-26032,-1073020928,-1224796299,1889206108,-1207959549,1344144408,1342182072,16777114,4372480,29603920,-1706012007,484,-10582391,-764100597,32807504,-2037841920,-1769341068,-2033713290,65384,-1207810327,-1202716620,-11533348,-385917770,-998043659,1555496710,1354771455]},{"sector":14,"data":[112720,20355664,-2037841920,-1769341088,-1224736926,922746716,922682340,-1070922782,35494480,113704960,1288,1342177976,1342506680,-10701057,-2096123672,1048774340,1962935558,22145283,1342177976,1342504632,-10701057,-2096130840,45614788,12079104,-1224781819,-2098659492,113541903,1342177976,-8878451,1555496784,258992383,-1962490749,-134252410,-1727897042,-1037319629,-754973767,734147576,84059074,1342177976,-8878451,1555496784,256108799,-1962490749,-134252410,-1727950290,-1037319629,-754973767,734147576,84190146,1342194360,-11485141,-1710946762,65535,200951433,-385649216,-1706032985,65535,-9795959,-9660791,84293375,-1224781742,-655818916,147096334,-10701057,1347469355,1342177720,155290,1686538496,1721141759,-29949953,3604228,112645,-1224781744,-1224736916,-6619286,-1996488449,201289350,-1560054592,-1224801016,-1224736932,-1224736922,-1070858396,44669520,-92078080,1025537535,460718079,-19102067,-2037559274,1343684474,1352663224,243610,1552320768,-3675137,1402665590,-16777213,1553660534,-352321533,1555496724,1354771455,84293375,1342177720,209562,178176,-628716208,-1224781570,1122565980,113541902,-19218815,108134851,-19233081,-1224801854,-1224737062,-1224736906,-1224736908,82378588,147096334,-19226997,-9128252,50726,-21473786,-591900668,244338691,-2096616472,-2037839676,-1072955686,-6682508,-1560280833,1048772632]},{"sector":15,"data":[1946158344,137821961,-26107,-1224802304,-1224736932,-1224736926,-1070858400,-26032,-1098711040,1946222298,1753677614,-662270977,1753627134,-385649665,-1224737363,-6619298,-16776961,-1694540106,65535,1181383,1187446785,-16776708,-1694540618,65535,1593591435,-1962742397,1297948645,-1873273141,-326412987,-2116514274,1459688172,-62470314,-2037579776,-11468944,244319862,-2097073688,-2037578556,1343684464,-17791347,12079126,-6664152,-1996488449,-1072959418,-1070922371,-973012247,-1207895226,-1924136957,-11470778,652800118,113541901,385369741,2144336,2073710622,184549381,-1206946624,-1706033122,1571,-385694589,45613248,-2037559296,-11469074,-219615114,113541900,26621695,-150981448,738127526,-1202695735,-1706033150,174,376815627,-1695516929,1218,503584952,1226832,13212240,-2037710848,1722023662,-1774780671,121805313,1183383552,-162100748,15877831,-1205474560,-1202716620,-11533348,-1830227850,113541900,-2081143100,-1959463866,64798456,-234874183,-230228059,-17922421,1928480313,-1774780462,42703361,113704960,18,-1929258817,520024246,4241671,817407474,-1202708989,1344143840,338586,-62470400,1996423169,108567280,1183514624,-2090901764,-443874579,-884122337,1167087646,518818645,-326903666,1183536648,-62486266,-1995946357,384563782,788037248,1586175092,-96010246,-231797,76217414,1586169736,-2012771588,-1073022906,1586224757]},{"sector":16,"data":[4161788,1187448181,-1962924804,1344207430,519849611,96442960,1183514624,-1706025464,65535,49120094,1562371467,1478413133,-1957345904,-661774612,40955009,-1070901673,-26179959,-26311031,-1912846711,1358799494,-1878624513,-9902066,-1929067389,385720966,53524560,1788497950,184549376,-1207601728,48955393,-2037792725,-1072955862,815800436,-2146658301,2734160,-1070903266,1921420624,-1706027266,65535,326483979,-2037551893,1343684210,-39680371,-6664170,-1929379585,385774214,-226063024,-1202710786,-1706029056,1544,-9271671,53493376,-955747328,821966982,-955847933,821966982,507413252,645201920,-29849973,-2034741218,-1202708990,-1705992190,1612,-40466807,91602955,-352321096,1086335746,397939061,2006601728,-2097152000,-1070923068,-2096828183,16741054,1048594044,1946157872,53524503,-659009506,-1202708991,-1705992192,53,-40335735,-9259265,1347469355,118135376,-92078080,1029797375,1551237119,53493376,-16157696,-1694656330,1665,-40454401,48026,1849097984,2471937,1921420624,-1202710786,-1706033024,65535,-26048883,-2037559274,1343684002,16777114,1547108096,1921420546,-1202710786,1344144312,1342189752,16777114,-10295040,-1202667477,-11534291,-385912138,-998045093,243718,3061840,1924595536,172615935,-1207516029,-1202716670,-11533978,-385912138,-998045129,1924595462,1354771455,112720,128162384,-930414592,-1962920776]},{"sector":17,"data":[1714354138,-1056728831,-2037787885,-1769341394,1119419952,-1011331072,1347590401,55450,679905536,1975520254,22079747,122919504,-2037841920,-1769341068,922746742,-426114666,-1996488704,-1979814266,-1979813738,-1979833722,-939645802,16657542,23503104,-30636487,1776878450,1855898626,1207314174,108266506,-40466805,-2037709589,-2037777000,-1001325018,654208670,638089215,721844223,446320832,-1962934271,-1946259834,-2080477034,889089670,-29704563,118943883,-1176859106,-1510866918,1149683231,-2037710594,-1769210322,-2037776848,-1769341376,884538946,-2037559296,1343684154,-9259265,-2096550680,876415172,-385647360,-1224801919,-1070858382,28856400,530206720,-1996488696,-1979871098,-159082,-36170,-118602,738078390,-1147514688,-1207959543,-1924136958,1358919814,-31017217,-2096575256,45614788,-2037559296,-11468936,-385912138,-998045461,2025751302,57999615,-1207908375,-1924136952,1358797446,-31017217,-2096587544,146278084,-2037559296,-11469414,-385912138,-998045509,4372486,1354771280,-8866049,471450,-96040704,913686539,-9259265,564890,-1732837632,145201917,-1224802304,2090532246,-1929379831,1358852742,518524560,46433032,503584952,1226832,71211600,1996423168,72260346,-2037841920,-1769341388,-1224737226,1347616632,-31017217,-2096626968,-1224800060,-1224736904,-1224737226,-1224737228,518586226,147096328,-30243191,-1694861569,2812,-1694861569,2821,-8878453]}]],[[{"sector":1,"data":[-30243271,45636978,-2037559296,-11469420,-385997130,-998045739,178182,-1803121328,-1224781571,-186056846,113541895,2080375357,-1799946446,1991704573,1958150143,649527295,126740734,-16202621,-158538,-35146,-35658,-385912138,-998045783,-1803142392,-13143043,-1694534986,2437,-40323329,626330,-1766392064,166173437,-2037579776,-1873740174,121104398,-1207778173,-1706033129,2925,-385694589,-1224801982,-1070858382,28856400,-677752832,-1996488695,-1979830650,-118634,-36170,-159050,738037942,93999296,-16777206,-369218426,-1224737397,-140837006,-2147483639,208958,-1224799884,530251160,-16777206,738039478,1347440832,691354,1354771200,1342190264,-40454401,-2096686360,-1224800572,-509936234,-2097151990,16657086,-2037570700,-1873740382,111142926,-1929198461,1358799494,-26048883,108456016,-1929067389,-335699322,53524494,882528286,-1929379835,385774214,30980176,45633566,1587171328,-1996488693,-1191339898,1344144176,503439544,79010384,-1224802304,96009624,1347590400,-1705983957,2949,-31291765,-31156597,-26311031,-26175863,-30636345,736821248,1342190776,-29718899,-1732837552,105375997,-1006189437,-2080477562,889089670,-1232209781,448396858,-5901824,-1577177978,-2043084442,-864879060,-40323329,274586,302434048,-956301312,130118,-30884221,-15567872,-1694619466,2840,-30886145,168858,1854311168,1887833086,-16157442]},{"sector":2,"data":[-1711172042,1170,1593591435,49120095,1562371467,1478413133,-1957345904,-661774612,-954012541,57926,53493376,-955812864,53539398,1187448299,-1962659598,1344205382,503482040,-1476216752,97819216,1183383552,292896992,1342184376,259226,46433024,-118898645,-529072383,1347469355,1342177976,417434,-163149568,-1946659191,2139293790,57999370,-1207871767,726663234,2013221056,245668360,1183383552,1975520252,19917059,246717008,1183383552,-363427352,1342177976,84428427,-11534328,1625874550,113541893,1342177976,-16222465,1357439094,113541893,1342177976,1074284171,1996443712,87943392,1023853699,58523650,-1962846487,1200293982,-754732796,244029920,-101252510,-1191557495,-1924136958,-11470266,283697270,113541893,-1962385781,61933127,-1952849709,-150892018,-96040455,1342177976,1358579341,-387942657,-998046485,146694,82379645,-529072383,1347469355,1342177720,822170,-465139456,-1947838839,2013202526,1354771210,-16222209,1996483190,-25880,1996423168,-428408864,736392959,-56995648,-2097151987,494272506,1979711293,-230257896,-2034741218,-1202708990,-1705992190,3559,-337623415,140413901,-16222209,1996483190,-529072152,-2096868120,1586170052,138885384,-2065104010,-59310336,1011354,-59310336,1013402,-14685440,1234886774,-1207959539,2062090265,178430,-498692784,-529072304,-2096876824,1996424900,175570700,16777114,-565802752,1912718141]},{"sector":3,"data":[-565786875,45613506,1183666176,1996443870,67758304,1023853699,628883458,-2197761,1996426358,-529072374,-2096899864,1183385796,-529072140,562586,-565802240,1945388601,1751046,-1946283799,1333790302,1183515658,-128545802,-1996077175,28837975,49120000,1562371467,1478413133,-1957345904,-661774612,1444736131,33310407,140413696,673735,106859264,17450998,867700596,172394752,-1207148916,770244609,106859266,67782646,1048584820,1946157872,-230242553,99287856,821184199,-230257916,-2034741218,-1202708990,233545730,503525560,30980176,12079134,1385844896,-1996488689,-1957632442,2013202014,108527368,-1705983957,3803,1342177976,84428427,-11534328,-286726538,113541890,-2096603509,1962936447,24570115,1342177976,-428409005,-2096966424,45614788,1183535104,1346387976,-387549441,-998047039,178182,-163148464,-428409008,-2096975640,1183516356,1647245302,-1036805886,62505515,871944960,-1950209086,1200162910,178180,-163148464,-428409008,-2096986904,1183516356,-1842415626,-1036805887,62505515,871944960,-1950209086,1200162910,4372486,1354771280,-1710721025,2181,200951433,-385649216,-1706032950,2250,-1981004151,1586228822,142081800,1996443730,35252454,-16202621,-1070864778,28856400,429543424,-1996488689,1451878470,140413930,2013214719,112642,1996443728,-327745554,147354,140413696,185223049,-955943488,64582,-1673473,1996483190]},{"sector":4,"data":[1354771432,525210,-359680,-12760971,-1958513153,1207305822,729023498,53493376,-955812864,53539398,1187448299,-1962659598,1344205382,503482040,-1610434480,174561872,1183383552,-1196299290,1344144176,503437496,-1610565552,1996482283,151296762,1996423168,151821050,451608576,-1947830529,-1070921634,142081872,1342177720,810394,-62470400,45613056,1183666176,1996443876,22800614,-2130262909,29615230,1187448178,-16661788,1996481654,175570700,-387549441,-998047453,-463566072,638219972,-16777018,681240182,-1962934256,-2090927034,-443874579,-884122337,1167087646,518818645,-326903666,53518340,884494488,726670848,1589137600,-1706025468,1448,578076683,503602872,42383440,12079134,-1466281968,-1996488692,-1072956346,-1706030980,3303,414716651,-1533390848,-2097151991,113705668,65566,-1962742397,1297948645,-326412853,1443687555,-1980479859,1187511366,-1962934022,254084166,-28931840,1859323057,670980,1586170483,-28931332,149630980,-1963172213,923074118,1191118728,-62455814,83525251,1325387132,-96024580,1586167808,105316102,-231797,76217422,1191118728,-92371974,-1947763708,130418270,-443851264,-1957313699,1451972588,-1962467836,1454638718,41034189,-1956659149,1438866917,1452010635,-851332090,855798305,1575324608,-326412853,73304862,-1274652987,172919615,41099725,-1960853453,1438866917,1586228363,106334980,1317748660,1931595016,-1950338302]},{"sector":5,"data":[1438866917,-1960907637,1455752286,-1958693882,567085646,-1070398861,1575324447,-326412861,-1962647925,1085539926,-855093621,855798561,1575324608,50337475,-16577792,50334464,-15715584,50334720,17540609,50335488,17048577,50335744,17620225,50336000,50774273,50331904,17544705,50336256,17618177,50336512,34535681,50343936,17351169,50345984,50763777,50376704,17832705,50350592,33758721,50349312,17453825,50351872,17814273,50352384,34372097,50350592,17796353,50353152,17032961,50353920,17463809,50354176,17213697,50354432,17631489,50354688,17826817,1828741376,1167087646,518818645,-326903666,205949798,1962939965,11921667,552141686,77059,1979716413,54520067,781434883,51750911,-1559345525,244318812,-15064088,-1070920074,-26032,1183383552,-1070903054,-1202696112,-1202651137,-1706030848,134,24000255,1342178232,379471501,2013264,-26032,1996423168,1354771442,379471501,582465616,16824400,-26032,585629696,242679577,1347469355,1208051361,1354771280,44698,242679552,1342177720,1347469355,-26032,-1070923776,1996441323,108461832,-16091393,1996426358,358606862,-351615869,176063461,-1193315328,-1706032034,285,-352140157,112849,672524368,184730755,-3967808,-402646986,-998039147,112642,-1360408021,1354771202,-2094532888,-1073020220,1996483444,-26098,-504692736]},{"sector":6,"data":[1342463672,16777114,46433024,24000255,16777114,81152,922688373,1083834834,-16777215,-1711009738,329,64370431,16777114,1354771200,16777114,-391976192,1441337915,40935935,1963345465,142508307,208995584,1342182072,-1142419824,-10163945,-938836351,-385649664,1048772996,1962934294,142508301,108331776,9045703,113704961,22,-1577118743,1178141296,-385649658,1996423613,-18422,1375797178,-26032,1996423168,1354771210,-26032,-794755072,-13571839,-16091393,-437776778,20441345,-1928431873,1343672902,16777114,272531712,1962970624,-700019440,1996443670,242679762,-352004888,-700019442,1996443670,242679762,-2097000728,1996425412,-767128306,-6664170,-385875713,2122579604,57999626,-95255,1996425334,242679558,-2096698904,2045314756,108462078,-16091393,-1561850250,-1250536,1996424822,242679562,-350603288,175570910,-383671064,1996488318,242679562,-383523352,2122514597,57999370,-2080489495,1946159230,-29955837,1064577,108331149,40908543,922682603,-6684068,-385875713,244383260,-384318488,1048706580,9306128,166265716,1547108350,-26110,1183383552,1614270,39847467,26357495,-1912846711,1343681606,-11485141,716766326,1647245056,1183535106,-1845099524,-6664191,-16776961,1183694454,-1706027276,65535,39597823,-1698793729,65535,-2114079767,582421118,1996448117,242679562,-2096725784,-1645673276,402665725]},{"sector":7,"data":[1728276225,1778523651,-1643995646,1728276226,1728276227,1728276227,16898051,1728110849,-872192253,17906945,417923957,1026979838,57999385,1040077033,57999386,1040138217,57999616,1040121833,57999618,-69911,1996426870,175570700,-16222465,-6683018,-352321281,17972530,2062091125,18103807,-1394015371,18169342,-1293352075,18234878,-1159134347,33635837,300483445,33766909,166265717,-2085032963,-443874579,-900899553,-1957363702,283935724,-1929087233,1343682630,450202,272531712,1962970624,374802,118856272,1347551232,16777114,-1593578752,1183384852,1958743026,-6664092,-956301057,62534,16139975,74907392,385107597,-26032,1996423168,-193528058,-1695123713,65535,-16353537,1100673654,-1996488700,1996484678,-129594106,1996443670,97426162,1996423168,-260636922,16777114,272531712,1962970624,-227082488,79770,1575324416,-326412861,1445391491,1457795,-385649664,1889600096,535809,770459273,104529928,75367646,149712515,-1996156255,137225286,1678129920,-2096857599,-955718546,126534,-1560280648,212009560,73179397,2128889401,369492762,-1952888828,-150727154,1476788729,73179394,33159065,-1962603514,103541830,1183384798,2126515166,244029708,-506396062,1174534647,-465138706,370051993,-1980107004,1721884742,1476802817,-1560052222,1721827928,201734401,-1560052219,1183515916,-297387552,1183516030,-1962677266,1183440966,23503330]},{"sector":8,"data":[2145535545,-498693373,-1545451895,922682386,-107347562,-1996488698,1451874886,305564636,379670020,-1947273468,721705998,-129070648,-150838623,65065454,-1996203514,413268550,302383872,-1952888828,-150903282,-61437447,-150981448,-632945686,-1982048629,1451878470,-431568918,-941031424,-263811840,1996443670,-126418950,66733707,1342496262,66602635,1342268422,423322,108461824,384845453,1479999312,-26108,1183645696,-1202710800,1347485695,16777114,108461824,384845453,-801702064,109484545,1996423168,112646,120101456,1996423168,-96040186,1688293440,-1037330174,1174665425,-1957674760,1452009542,722410,1183535186,722408,1671057490,1342177287,485786,40018176,1177149649,68592122,-2080881151,-13309842,2122579022,427622652,1208051361,-1191426423,1861681204,-632945668,-1982048629,1451878470,-431554582,956568225,58582598,-1946210583,50617398,-1929276874,1343680582,73021183,1342260365,50616993,1342496262,1342325901,437402,108461824,384845453,1815543632,113089026,915079168,906167388,1183646098,-11528464,-1929094602,-1588591804,100861018,-1924135714,-1706032060,735,-1928956161,1343680582,40646399,16777114,-1774780672,126327297,-1956773888,1438866917,-326898549,74907410,385238669,-26032,1183514624,-1845099524,-1952888831,-150892018,-230258183,26621695,16777114,-297367296,-1192208759,787939380,1174471264,108462062,1342179512,16777114]},{"sector":9,"data":[-1706012160,450,-1207535873,-1706033151,65535,16664263,-196688128,1122697216,66340491,990011398,2097243654,108461885,39991039,-1946257665,1452011078,722416,1183535186,722414,-6664110,1342177535,16777114,26386688,-2080487935,-13308346,1183577158,-196724238,922728060,-6684266,-1711275777,65535,39585339,413219701,1611016960,-1842415870,-28931839,385238669,1354771280,-1191282945,787939370,-1957690782,100924998,-1706032750,2156,-1928956161,1343682118,191642,1575324416,-326412861,1444736131,26621695,338842,-465139456,-1947838839,1308776502,-150727007,1544457198,-1983370492,1654779982,-772868350,1510343648,-62486268,50337953,1208113158,1712229273,-1980107007,884537942,65730304,1452008518,-330921498,-1157495,-1711121354,686,199771785,-385649216,1187446988,-385875734,1183645869,-1957685518,1346436166,1089488523,-62485680,81659395,1183535176,-1845099536,-1706016767,1437,-1914145025,1343681094,30422783,276122,-394854656,1342177720,383642,-394854656,1090274955,40149328,-775804007,-263846920,1183535168,-296317972,1375734533,-330921136,1375734533,101161552,-1706033152,1549,-788372831,-62510624,17045153,1854140486,1325348076,-92371974,-1592165120,-1991769754,884537926,-93391104,-1947974141,1183442518,-296318484,-1578481921,1178141272,-385647126,922746696,1996423772,49847016,922681344,-962985578,1577058310]},{"sector":10,"data":[-1017256565,-2081649835,-1957297428,1889732166,138840833,721752739,755065862,1554186248,26386692,-775804007,972065784,2080660534,73179395,-956015453,134502918,-1845099776,263425,-2080487799,159806,922690676,163054192,1996443648,2668798,39988983,196628544,-1842415872,-1070903295,-26032,-1956773888,1438866917,-327029621,1448542490,503584952,-26032,-2037841920,-1072955530,305995892,-385649664,1996425576,26785796,-1070903266,817385552,496652288,-385875956,1183517008,7552262,-722926731,-385647100,1697450210,867584,904463222,-1816132855,-1599602898,636946,153938000,-2097072151,7742,434701172,1354771209,-2095122712,-1073020220,166265717,-1237909751,179935747,113639424,-973077712,198662,-1206941464,-1706032034,3217,-16595837,-1711182282,3229,-16595837,-1207855562,1385758772,178256,-26032,113704960,65894,1574599,113704960,608,-401401368,922685219,-510000746,-1996488697,-1979783546,-989927274,-1946229090,64798459,-234874183,-1774780507,152279553,1048641536,9306128,922684021,-1008205800,46433046,721712895,-1202696000,-1706033151,65535,26228479,802202,302434048,-2130706432,-1929375682,-385649664,-1070921652,182164048,922681344,-1885732240,-385875966,-1070921672,504752208,184730755,-385649216,28837928,669536256,46433032,-9664887,594853899,-401698736,-998040267,1975520002,406257418,393472000]},{"sector":11,"data":[-16595837,-1694536522,2995,-16256023,-402646986,-998041763,132573442,-384023320,28837856,216748032,1064577,192217229,23475967,16777114,-1696863488,65535,-2146975767,208958,-2033776268,53542766,-1207906839,-397410302,-998045778,1820756226,1975520255,127592707,1183666206,-1202710912,-1706032896,65535,-9402743,-1987557747,-2080412026,16740542,347608948,244338688,-2096265752,-1224801596,882573164,-352321524,1820756914,726671103,-6664000,-1996488449,1040149126,1602158591,-26032,922681344,330826094,-2037559296,1343684330,1342210232,28314,1820756736,-1706025217,65535,-18184563,-2037690346,1344208748,16777114,1547108096,-360280830,-1202710786,1344144608,1342252216,16777114,474368,922716276,-6684068,-16776961,-1694536522,65535,62273279,840602,272531712,1962970368,1882652442,67155970,1354771280,-895856560,-1996488692,-1979747706,-2113964906,-1912598466,-15830016,-402646986,-998042382,1958742786,1857486677,-25857,-998047744,1958742786,220456987,1342463672,55450,46433024,24000255,16777114,46433024,1064577,578093197,1586943,-2095720216,922682052,28836464,-1070903292,1958149968,1924595711,-25857,922681344,-6684272,-385875713,278988352,105265408,904463221,108953862,292880526,1586943,-2095812120,-1073020220,501812597,406257414,361228288,-1962752893,279119430,74907392,1962970685,-339727612]},{"sector":12,"data":[112643,1354771280,-1650831280,-16777216,-2130546634,9307774,-1070922635,28836843,-6664192,-16776961,-1207799754,-2125463541,9242238,28837237,721611520,-1070903104,26890320,-2130706418,9307774,922703733,-2037579172,1343684472,1014426,2122746624,244029951,-101252718,-9402743,108380171,-9402681,915079169,-1238695578,1049362288,-2037710824,-1723269264,-120470997,-29624277,-947190659,-963968277,184705187,-955875904,155654,264300544,-1912177023,-1593477888,65733212,1342337185,974234,74907392,1347469355,1342177720,946330,87222528,1064577,57933965,-16439319,-1207799754,726664215,1347440832,808858,85125376,1064577,343212174,1586943,-2095811352,922682052,1139277848,46433043,1342178232,-2096826904,-2037841212,-1072955540,-504822923,65517572,-2037690338,1344208748,1005210,406257408,296937472,-1878866813,301787150,-402646877,113708834,65554,721712895,-1202696000,-1706033151,2736,-2080594711,329790,922685300,1369048328,-956301308,329734,406257408,335013888,-16595837,-385716170,1996488506,-26106,-2048327680,-25860,1776877568,1351940,1963345465,73328899,1963359875,922685045,-711327344,-1560281074,166396258,23213823,661146,1354771200,1041050,105286400,-385870685,96009196,803753984,46433028,-9664887,58048523,-16507927,-1207855562,787939380,872743270,1347590400,1342177976,675482]},{"sector":13,"data":[1975520000,68728849,314069022,-6664192,-385875713,1048706029,9306128,922685812,669515800,46433042,58048523,-386149143,-407369149,-1957683709,520055942,-26032,243269632,-1878850586,284223502,-2130700125,-1912598466,-11045632,-1929225162,385841286,63543888,-2037710848,-1952841858,-150892018,1887865337,1975520255,1887880966,-1962933761,721511990,-1946193738,-1962928066,1224700038,-775804007,1006119928,-1962639874,-1962742841,39887814,108904459,39847623,-1209532416,272531725,1962970624,406257421,294447104,-385694589,-1070858618,267098704,922681344,-761658768,-385875958,1048706674,9306128,922686581,-1964507112,46433042,1586943,-2096014872,922682052,-1070923410,-360280752,-1202710786,-1706033024,3049,-18184563,1891127318,-1706025472,4160,-18184563,-407351274,-1706025469,4176,-18184563,1924681750,-1706025472,3077,39597823,-18184563,-524791786,-1202708988,-1706032863,2499,1946157373,44493059,84426371,-15764480,-1710946250,3715,84412103,1048772608,2113995110,406257492,258664448,-1593654141,104399206,326434840,1064577,74776717,82559019,1208051361,-402646877,1048644806,9240592,922684021,-1024983016,46433041,26621695,-150981448,-1727961554,45633618,1100632064,-352321519,145090621,26621695,683930,-427390720,-392787458,-425802498,-1090810882,448332764,-5901824,-1711172042,2702,1064577,175440014]},{"sector":14,"data":[1586943,-2096085528,113705668,65554,-218391,-1207855562,787939380,872743270,1347590400,1342177976,988570,1975520000,68728849,314069022,664424448,-385875953,1048641984,9306128,922685812,-68681704,46433039,58048523,-16668695,-402646986,-998043375,-435257342,244318979,-1559310872,1048641560,9306128,-397386123,-998043698,1547108098,2022083842,-1706027265,3441,-8485237,-1844540519,-1980107007,201289862,-955877952,33517702,1714850560,1890986753,406752255,1887865600,731465983,737726914,2113813496,-339244284,-1547269374,-1073020320,113706621,608,-16019992,-1070922634,28856400,-509980672,-956301299,16781830,17754368,1064577,343212174,1586943,-2096074520,922682052,1072168984,46433039,1342180280,-2097090072,-2037841212,-1072955540,-571931787,-6664192,-385875713,129562834,-739749888,46433024,-9664887,58048523,1342226409,16777114,-122361600,50871936,-1710722048,4761,-1207916567,-397410296,-998047578,1820756226,1975520255,9627907,503515320,1820756816,-1706025217,3653,16777114,-126097152,182585847,191564635,188746554,320473908,320475930,242683400,245239454,1962965821,-26744573,1949113983,408832,-1073525641,-1476448621,246485718,233311921,320475930,267521770,1946190909,1024622474,57999484,1040128489,57999491,-335590423,8731933,1609106293,9256447,-1908600708,-385646848,-1220675128,-385649374]},{"sector":15,"data":[1600059091,-1017256565,-2081649835,1183515884,40542980,1946157373,146717,104677492,1024685056,1064566793,1946159933,40280387,40375947,379652075,404130565,-62486267,-108919,-1962840522,1385759814,1547108176,-25755902,-1694730497,65535,1990269931,2014743298,-1579750654,378208714,-840236596,-1962773855,-352160746,1575324612,-326412861,-16061309,-1711121354,65535,1358841481,1342213560,1050169,146277749,721611520,-711307072,-16777197,-1900478858,104419328,91553808,-352319304,1354771202,1306522,-25755904,1342207160,1312313,146277749,721611520,161108160,-16777196,1975058038,104419328,91553812,-352319304,1354771202,16777114,272531712,1946193152,22014211,1326723,-14584460,-1207799754,726664214,1347440832,1384090,1958873856,-25755893,1342207672,183222315,-1191282945,-1202716554,-1706033151,5279,33310407,1547108096,-26110,-1073020928,1187459700,-16776966,-6620554,-1996488449,-1072956858,1048779124,1970602004,178181,28836843,-96060672,1187503477,-1711275780,65535,-1191282945,-11534221,-1365574538,-16777196,1958280822,-1070903296,347970128,1996423168,7715070,1354771280,1363098,-25755904,1342206136,-1705983957,5339,-1191282945,726663300,-358985536,-16777196,-2051473802,-1070903296,352688720,1996423168,6928638,1983808336,74711040,65781803,1342177720,1390746,339641088,896889856,40908543,1342439608]},{"sector":16,"data":[1347469355,224107088,1183383552,-128546314,544591931,-1191282945,-1202716559,-1706033151,5463,-1191282945,-1192689550,138314496,-529268731,-1191282945,726663281,1939493056,-16777195,1924726390,-1070903296,-16737559,1991835254,28856320,-2087038976,-16777195,1958280822,28856320,-1818603520,-16777195,1975058038,28856320,-1550168064,-16777195,1891171958,28856320,-1281732608,-16777195,1907949174,28856320,-1013297152,-16777195,1924726390,28856320,-744861696,-16777195,1941503606,28856320,-476426240,-16777195,-2068251018,28856320,-207990784,-16777195,-2051473802,28856320,60444672,-16777194,1773731446,28856320,-6664192,-1962934017,1438866917,113765515,65558,40908543,-16353537,-6683530,-1962934017,1438866917,-326898549,272531744,1962970368,209125235,-401967361,-998047231,-532248316,17202817,1027110146,58720255,-1593752599,1178140696,-385649184,1996423480,375008,1547108176,75229186,-16333693,79224950,922701824,1793589852,113541892,-1593764887,1178140696,-1915521568,1343677510,-1202667477,1347420674,1342177720,16777114,1958742784,14805478,-1727248757,26349195,100923895,1183384160,108954080,192152065,956307617,58056774,-1593795351,1178141030,-385647392,413204672,1611016960,-1842415870,-28931839,-1710983425,2100,-1914550647,1343682118,-11485141,716766838,1647245056,1183535106,-1845099522,1234849793,-16777193,1183703670,-1706027274]},{"sector":17,"data":[5974,-1545582965,103481368,787939936,1183383954,-163148290,-1070903274,-25755824,-150984008,1342333486,66995851,1342280198,508058,-495517952,385238669,130914896,1996423168,-495517948,1572506,-1590695168,1178141030,-1926791712,1343677510,-1202667477,1347420674,1342177720,1482138,1958742784,7321830,74907472,-2081293080,-443874108,1478411101,-1957345904,-661774612,-2129728381,-1912598466,-1956285184,103482950,787939936,1183383954,1547108348,384342530,1183383552,-196702734,-1070903274,-59310256,-150984008,1342333486,66864779,1342280198,1614746,-227082496,385107597,387488336,922681344,1996423772,151689970,1183514624,1614600,224389200,-1207778173,585826305,-1207404801,-11534331,-402498506,-998047035,142016262,1342178488,39597823,-2096974616,-310180156,535137026,1439386973,-326898549,915101200,-1588722670,-285801450,73141899,1317652523,40018418,-523112713,73008643,-1577171319,100859928,-1723333614,23465611,1451882999,-263796740,-1662451712,-196702976,1183535126,-1957674754,1346433606,66995851,1208278534,-230257840,26347011,-543535040,-1929379816,1343681606,-16353537,-275118986,184549400,-1925417536,1343681606,-1946663285,-788372978,1086401505,1996443712,-126418954,66471563,1208050694,194662472,-1929379817,1343681606,-16353537,-6683530,184549631,-1962576704,803994694,-788372831,-28956192,17045153,1325396550,-58817540,-1593344768,-1991769754]}],[{"sector":1,"data":[1191181382,68329968,2112898617,-10884861,1593835448,-1017256565,1167087646,518818645,-327034738,2122514562,309662214,-8485235,-1732751338,-1706025471,6635,922687211,1996423534,2122747142,-1202710785,-1706033024,4128,39597823,-8485235,-524791786,-1202708988,-1706033104,4200,-1962742397,1297948645,-326412853,65472198,134661888,-1207959547,1344143480,-2080610072,113640644,-1962867738,1438866917,-326898549,-666464984,-401698736,-998047723,1547108098,-666465022,530206742,-1962934250,516120037,1430622296,-1910575989,149717976,503727755,9746512,-1801826274,-1962934254,1344144966,503347640,441555536,1048576000,1946157872,-129579199,1187447600,-352112390,-129564925,-2131206517,-176881601,1586170859,1547665656,1325337460,-96039944,2012759609,-128021523,1968979840,-129564925,503727755,-129594544,1183516907,-1202708986,1344143730,1061018,49120000,1562371467,1478413133,-1957345904,-661774612,-16192381,-1711121354,5024,-1191426423,1344143518,503359160,8239184,1183666206,-1202710792,-1706033150,65535,578142219,7734983,1996423168,6928636,112720,449550928,1996423168,6994172,112720,113712875,65654,-1191414017,726663273,-627420992,-16777190,1790508150,-1070903296,340564560,-310181888,535137026,1439386973,-326898549,1614096,-940423543,130630,23477891,-1207534334,-2115436543,-2143386879,108331008,-1560274783,113705734,65664]},{"sector":2,"data":[1023821451,1115095048,781434883,470198271,1576703,1588867,-385647616,1721827554,413353985,14215424,1574655,956393121,1946163206,13166851,1574599,-1075249152,23503104,84674105,1183516277,18803198,688196769,-2097145850,6206,-1612119172,23503104,1574401,-1593797143,104399206,-697039604,17108129,-1593829370,104399206,2088501272,1574441,111245035,403060995,1344435200,-2096777752,-1073020220,922684532,-823656424,46433030,111217643,1614595,16664263,74907392,-11485141,-1207953354,-1706033151,7292,40908543,1347469355,1342177720,1179546,2114373376,-956301312,32774,-10295040,-385333621,455671604,458824512,463608707,459414528,463608674,956307617,58061382,-2080423959,32318,922697077,-1030094224,-1996488681,922742854,1183646320,-1706027274,7328,-1913620737,1343682118,30422783,556442,1882652416,-260636926,1532314,2114373376,-2097151744,1946486398,74907411,-11485141,-1207953354,-1706033151,7458,-370453784,-443810084,-1957313699,283935724,39887190,-113015,1183646838,-1706027276,7576,-1711651189,26349195,1183447543,-263796740,1183514624,1958742790,81179,37565812,1027044352,1014235139,1946158141,343365,99301236,-1030457,-263812097,39847425,23475851,972846635,2114084918,1614186807,-952177918,127046,1183571947,-1982269444,-705957818,-335788405,138841078,39847467,1996484075]},{"sector":3,"data":[112644,142016336,492214864,1407909888,39861891,-955876096,155654,-28931328,39847467,200296073,-2093452096,1946486398,74907409,1342177720,39859967,505059920,1996423168,1354771204,-135248245,1342280238,1347469355,-6664112,-16776961,731513974,1577058316,-1017256565,-2081649835,1048644844,9306128,922696565,1183646300,-1706027274,4516,-1711520117,26349195,1183447543,1711684606,-955810815,62534,2122521323,91554046,33441479,23503104,-335657429,23503108,-196703928,39597823,1064577,91553934,-352321096,1354771202,-11485141,-1705970570,3363,39597823,1064577,91553934,-352321096,1354771202,1064577,91553934,-352165727,1614083,112720,-26032,-443875328,1478411101,-1957345904,-661774612,-1960645501,255659078,1985901568,12577027,1962936125,10152195,1962936381,10545411,-2097100311,1962939454,-1075248268,142016256,-16353537,1996425846,242679564,16777114,180650752,-375799765,1996423359,92530698,1996424939,83879946,184730755,-2082114112,1946162238,-2081825163,373195520,-730529792,-1928431873,1343675974,123290,272039680,238485253,1882652421,209125122,735999743,-1706012480,7985,-1864468737,7661582,-16595837,1183649398,-1706027298,535,1048810219,1953759252,-26061,-2064973824,1326723,-1708821388,65535,1040152041,57999616,1040153577,57999618,1040149481,141689344,1996620349,-13113085]},{"sector":4,"data":[84948735,84817663,40908543,-15960321,1996425846,108461832,16777114,49120000,1562371467,707149,1167087646,518818645,-326903666,272531732,1962970624,10610947,494746,-62486272,84426371,-1586203648,1178141296,721974780,-677752640,-16777185,-6683018,-1996488449,-1072957370,-11516044,-1710946250,8129,-375159,922682998,922682626,922682628,922682622,1996424448,1354771448,13023312,1375766714,-26032,1996423168,-92864520,271258,-126419200,16777114,40935680,1979467321,-778416122,-2097151987,1962939454,1889605493,-62506750,2058882933,1996443650,-26106,-998047744,49120004,1562371467,-1957311667,82609132,1712258902,-1774780671,543726081,1183383552,-27883012,-150981448,-259324818,721512097,884540486,1357510400,-1912840508,1342583872,-1030962293,1347601923,-2096693272,922684100,865730966,1577058337,-1017256565,1167087646,518818645,-326903666,-11118830,-1711172042,8631,-1980873079,1183445078,-162100748,15877831,-948704512,65534022,-1946925429,184940118,-96040704,-1946397047,1065416798,-1004309504,-1977157026,-397371385,-998047581,-128021758,126535819,-242528104,-2097114392,-969211196,1589912948,126494458,-2132258664,46433024,-1946657141,-1744336184,-386823344,-998047633,2143697666,-15209718,1191180358,-2086081542,-13306810,1721889350,-230278911,1721861500,-230278911,1177231220,3455474,-11474441,1996486262,-196703244,66475659]},{"sector":5,"data":[-397389119,-998046147,-195116022,-591463541,1751299,922723826,211419542,-16777199,-1962842618,1600057926,-1962742397,1297948645,-326412853,1627684480,2122320508,75463172,537161344,-1744550262,-1017256565,-2081649835,1448545004,65406710,-15108861,-1207799754,726664200,1347440832,2228122,1975651072,14739715,1342194360,-1727937608,-6664110,-1996488449,-1072956858,431493493,244338688,-2080930328,-1070923068,-16723223,-308610442,-1996488688,1451883590,1882652670,-1202695678,-1706032701,65535,-100609,-21431178,-591900668,-6664189,-2097151745,-1073018684,116835444,1963066342,1882652438,67680258,1354771280,765087824,184549396,-955878206,16781830,1882652416,67745794,1354771280,-2120593328,-973078495,255494,65406662,-435257344,922682371,-1113980522,-1996488670,1451882054,3455224,17067767,1589966406,-1090810890,448332764,-5901824,-1711172042,8800,-1694861569,8939,-1694861569,9015,84426371,-15764480,-1710946250,4224,84412103,28835840,-1956684288,1438866917,-326898549,-1202301174,-1202716606,1385759171,563583568,1183383552,1975520250,2144271,-401698736,-997984642,12970242,26621695,2290586,-163149568,-1191684471,1861681204,-163184380,-1946794357,-591398826,519080707,-628220409,-234874183,922689445,798622102,-16777181,312146550,-1996488672,1451883590,-1202695426,-1202715394,-1706032164,65535,185123971,-1207142976,-1873805284]},{"sector":6,"data":[-166402034,-16595837,1996488310,-219944708,-16464765,1268447862,-16777184,-6620554,-2097151745,329790,2058886772,-11526654,-16448970,-1593506762,100861186,-1588591362,100861188,401278208,503478968,374864,1654739024,328962,26386768,1342178565,1566106,-1956684288,1438866917,1183575179,2174212,1996490557,-1816132791,-341311698,1354771235,-352320072,23503121,737471304,116084928,-1202667477,-11534335,-402498506,-997984467,1354771206,1342179512,39597823,-2080957208,28837572,-2094470400,1946162238,-1070922635,1996430827,-26108,-998047744,-1478235390,-1591497693,-752641757,-752626909,-1960586461,1438866917,-326898549,1161248,-26032,-1073020928,28837245,721611520,-330921536,108314635,537165443,-1070922372,-2097070871,-12581818,-1711172042,8755,-1981659511,413262934,1183399936,3455208,65564407,1452008006,-96040476,-939764087,59974,956393121,712895046,1978156601,-398014703,1183514624,-464090142,-1980086647,1589967958,1200236282,-397371381,-997983037,71711490,922694005,1486487958,-1593835486,1178141030,-385647382,1048641730,9306128,922691444,-1276641256,46433276,-387418369,-997982767,-10228990,1183574598,-61436934,888817283,-337099009,1614219,39847467,26357495,-1912715639,1343681094,-11485141,716766838,1647245056,1183535106,-1845099522,-1298509823,-16777179,-1711121354,9659,1357268617,384976525,633969232,922681344]},{"sector":7,"data":[1996423772,634755814,1183514624,1614824,1064577,712310925,39597823,-11485141,-1207953354,-1706033151,9759,-1929496,721580086,-1202696000,-1706033151,7149,922684139,182976536,46433024,-1962933832,1438866917,-326898549,1547108112,-196702974,1536839702,-1962934234,-1952843194,-150892018,-62486023,721700491,-150839290,-28931607,385107597,1354771280,-1191282945,787939370,-1957690782,-1056702906,654940752,922681344,295305820,-1996488665,-1924075450,1343681606,2563994,1547108096,-260636926,2566810,39887104,2080654905,-62485747,39847427,71711560,1621187197,71710978,1183517053,1611016964,-1962153214,1177224262,1611017212,1183399938,1611006450,1547108098,112642,1614217040,-593866750,-16777189,721574966,1183535296,-136775694,1342280238,1347469355,1872384080,-16777187,-1711121354,7543,-1017256565,-2081649835,1996427500,-230257404,1083854870,-1962934244,-1952843706,-150892018,-62486023,1023821451,863240225,1946165821,2309401,607993204,1026651136,947126310,1946167357,-373281992,1183514796,403047420,-96040704,956393121,679279174,-1591547064,1177223192,-96040452,410894347,16402119,-1592661248,-454360730,-352315231,1614303,-96040640,16416387,1721854332,-96061183,413229437,-96061184,103504244,787939936,1183383954,-230257154,-1070903274,-25755824,-150984008,1342333486,66995851,1342280198,2324890,74907392,1847194,-263812864]},{"sector":8,"data":[-230257328,-224767978,-16777193,1996424310,475896560,1183514624,1614842,-30152624,-1207778173,-443875327,-1957313699,509040364,75416828,-1962379579,-1527641010,-1956749537,1438866917,1465314443,2126839070,142001412,51138187,1324942321,-56298929,-1956749537,1438866917,-327029621,1048772740,1946157086,11528451,1342179000,-2081714712,1183384260,1975520252,10217731,-2037559266,1343684476,1342243000,2646682,-28931840,376750091,1342182584,1877479056,46433265,-1694730497,10286,922709483,932840374,-2130706392,-1912598466,-15830016,-402646986,-997983874,1958742786,-59310275,16777114,46433024,779403275,413384747,39887616,-2114618904,-1929375682,-16091904,-402646986,-997983627,1547108098,1354771202,112720,685742672,1996423168,679320316,922681344,-1969618544,-1962934232,516120037,1430622296,-1910575989,-2031320616,-62470400,1183514624,-1924129274,385841798,16824400,708614736,1183383552,1958743034,1357848,-401698736,-997986118,108461826,2778010,-339727616,-1237909649,686660099,1996423168,-26106,-998047744,1958742786,-250615733,1342463672,666778,46433024,24000255,669850,46433024,413384747,39887616,-737816,-402646986,-997983807,-435763710,922681347,-1070923172,28856400,1419399168,-956301275,130118,26228479,968602,-62485760,-1962742397,1297948645,-326412853,17755265,1195651,-165645056,33809926,922687861,146276976]},{"sector":9,"data":[-1070903292,-1706012592,8731,58049035,-16653335,-1207865802,-1924136958,385806982,8435792,714709584,1048576000,1962935088,8448259,-9140537,82510640,-9140481,-9134453,1962950528,-1962021901,-2130742114,208952383,-9138433,-9126271,-344521936,-9134453,1968979840,1955004164,-226062849,2089191934,-16454657,-1946190714,-2130740066,-210436033,-1635050261,-2030043276,126549876,-1662496616,46433271,-8610165,-8616193,-1635055736,1065418612,-1948551936,-956334946,283836423,-17660275,1924681750,-1706025471,10933,39597823,-17660275,-1195880426,-1202708989,-1706033117,10957,-8485239,1946158653,17295619,1586943,-2080940568,-1073020220,-622263435,809402368,57933827,-1207905047,-397410302,-997988098,1988528386,1975520255,11659523,1183666206,-1202710912,-1706032896,2956,-8747383,-1987557747,-2080409466,16743102,347608948,244338688,-2081499672,-1224801596,-610599050,-352321494,1988529074,726671103,-1013296960,-1996488693,1040151174,1451163647,198351440,922681344,330826094,-2037559296,1343684338,1342210232,2835354,1988528896,-1706025217,3060,-17660275,-2037690346,1344208758,1702554,1547108096,-226063102,-1202710786,1344144608,1342252216,1671322,474368,-1224767372,547028854,-352321525,406257428,-140253184,721601667,-952570944,822048902,2025258755,209623807,-998047744,1975520002,-2082149601,50298558,1048829300,1946158344,137821967]},{"sector":10,"data":[578329093,113704960,1288,-1962933832,1438866917,-327029621,922681472,1996423534,-2142860028,-2135404522,1754943488,-16777191,-1929225162,1343651910,503727755,2209872,703634000,20774912,-1207601920,48955393,-443826133,6013789,681902083,655615,604635395,6946819,58130691,7012355,394330371,7143427,682688515,917759,689963267,7274499,721027075,983295,190054403,1048831,189595651,1114367,246022147,1179903,245497859,1245439,309067779,1310975,308084739,1376511,306118659,1442047,667418883,458753,568262659,1507583,535953411,1573119,28705027,65538,519307267,1638655,143196419,131074,515899651,7995395,518389763,1704191,510197763,1769727,641990915,8126467,587726851,1835263,673579267,8192003,602013699,1900799,580780291,983041,283050243,1048577,119275779,589826,727318787,65539,577241347,1114113,607387907,1179649,613613827,1245185,680656899,2425087,22085891,393219,670105603,2490623,341442819,8978435,344981763,9043971,68681987,9699330,66257155,9830402,342556931,9437187,527630595,1441795,525926659,1507331,5767427,10027011,146538755,2162690,331022595,10092547,532021507,2228226,447348995,10158083,4325635,10223619,67764483,1835011,443547907,10289155,19464451,3145729]},{"sector":11,"data":[628818179,2162691,567017731,2359299,529268995,2949122,432734467,2424835,514130179,2555907,161349891,3604481,517472515,2621443,290652419,3670017,221970691,2752515,445645059,3801089,528154883,3407874,691929347,11534339,64618755,11796483,17957123,3473411,159777027,3670019,65077507,4325378,665649411,4849665,533266691,4456450,723124483,4521986,641401091,3997699,624951555,4063235,715391235,5177345,502006019,4194307,713163011,5308417,621019395,4325379,622723331,4456451,668139779,4521987,712179971,5570561,620429571,4718595,424673539,5767169,702021891,5832705,146145539,5898241,414384387,4980739,96272643,5111811,475070723,5308419,621936899,5373955,95289603,5439491,326107395,5701635,-2115204267,-1207905556,1344143518,503359160,8566864,-2037559266,1343684402,1342187704,16777114,847678720,-632911361,-1098904853,1949105966,-632881392,-1965400437,780568583,1975519999,-631338007,1946173312,-632881390,-352319546,784236554,276766975,-1948629249,126540382,-13728120,-378159094,-1982183797,300670022,-13713792,-2145946580,553594558,1191121022,-631338022,-2037905526,-1073021138,1586225781,4161754,1191123316,509658,-1098903061,2116091694,784236551,276114687,-1948629249,126540382,-13728120,-495599606,-1982183797,-335597434,784236554,276701439]},{"sector":12,"data":[-1948629249,126540382,-13728120,-378159094,-958767477,1183514631,-1924129060,385823366,814123856,726671103,-1706012480,65535,199116425,-2095090240,1946214014,-562626808,136858,2209792,55286352,-998047744,-373282046,1996423342,-532247074,-6664170,-1962934017,1174659142,30712808,-1545058677,1183515568,40805354,-1193380097,726663177,922702016,922681988,1347420802,100762,-1303999232,-26032,-998047744,-562626814,1342180024,380782221,44931664,-1924136960,1343664710,1347469355,129178,2109737728,-9180925,39716551,113704960,470,24000255,-1728050504,922701906,922681948,922681706,-6684312,-1560280833,-1073020564,1122567029,1547108351,1354771202,132506,-565802240,-1017256565,-2081649835,120382,1048785013,1962934878,74907411,1342180280,1347469355,-1706012592,734,39597823,1342177720,16777114,1815543552,-26111,1996423168,-26108,-443875328,1478411101,-1957345904,-661774612,-401150845,1183448530,1975520244,14608643,571472,38640208,1183383552,-193527824,1342180024,16777114,-364476160,-737244263,-1980107007,-1072957370,1191117685,-1774780424,62691841,1183383552,-296318484,16139975,-947983616,64070,15877831,-1589581056,1178141030,-12550666,922743926,1996423790,-330920966,99505803,1347551243,99370635,1347551243,16777114,-6664192,-1593835265,1174471124,-330923014,-163119308,-1947056385,1178204230,-4686606]},{"sector":13,"data":[28898422,-1070903296,1347440720,-26032,1183383552,2109737980,-1511501815,46433030,1048777451,1962934742,23503115,2113291833,-8918781,26621695,16777114,-193528064,-2080455192,-310181180,535137026,516640093,1430622296,-1910575989,-1091796520,-1202301184,-1202716606,1385759171,-26032,-2037841920,-1072955530,314052469,-6664192,-2097151745,-202833212,8697858,-2085072866,-1202708992,12189700,726684224,-1202696000,787939368,1346372194,-150991944,1342280238,39597823,-11485141,1342271030,-26032,1183383552,1975520194,1991704331,61905663,-1494548480,-1979949592,201293446,-15960640,-1694533962,65535,-16608791,-1694533962,65535,-1986771319,683185750,1848571648,-1556070398,196608462,-735119616,-737803519,328961,-16686941,-1191215434,-1706033147,65535,103586384,1183383552,2125922298,-25857,1183383552,1921435544,-2097151745,1963001470,1975520091,138314515,208928773,1342186680,337818,46433024,40908543,1342504632,1342430392,-11485141,-1224763274,317259646,214205186,-8472833,1342177720,1347469355,-1706012592,1514,201082505,-385647424,-397409880,-998046420,27191554,-8472833,1342179512,296602,1954973952,2125922303,702719,37657168,-2037841920,-1952841876,50421774,-150875122,-1840870919,58048523,-946714881,36934,-956214039,50246,-8747321,367591424,105286401,2089829945,18278659,956307617,1685360710,26621695]},{"sector":14,"data":[158362,1854310656,1888913919,3455231,26242807,-1946194298,-1946194298,-1912639338,-259275138,-1910634730,1751514,-14703118,-1711172042,1559,-6916353,1183683702,1183666306,-6663994,-2097151745,-1073018684,297286005,-2053484544,-2097151995,736821956,-1094287731,118883292,-234874183,-2105635419,-1190854978,-1510866937,40908543,-6916353,-1011313546,-6664191,-16776961,1996472950,-1804140650,16777114,-1736539392,-2095221504,1946193022,1925088023,276103423,-9271553,1342186680,481434,46433024,-1916635393,-1924103610,-11483578,1996473462,2125922200,11528447,-1592998781,1178140696,-2096204656,1946193022,-1938358520,16777114,23109888,30672387,-3914239,-2030071738,1183580026,2055616914,-385647105,-1224737057,28901246,-1070903296,1347440720,22911568,1183383552,2109737980,-26547965,30817923,-1962183424,1178142278,-385647216,1996488353,34511554,-1224802304,161152886,-16777213,-1694533962,922,-8472833,-1694861569,1764,-8472833,-2080661016,2122515140,141820056,-1701284097,273,-310157474,535137026,1439386973,-326898549,1996445248,112644,-26032,1996423168,112644,61907280,-775804007,138806264,1183535168,722186,1183535134,722186,2056933406,1342177281,177050,207522560,688003,-722926731,108954368,-385649408,1996423371,-26108,1183383552,74907624,1342177720,50873995,84005894,-1588592636,1346896334,50873995]},{"sector":15,"data":[1208049670,-26032,1996423168,207522566,-1710589953,1894,-1946270071,931859550,-1962641665,787940423,-1952906642,-150838770,1200312569,-735119610,244029697,-101252718,50873859,84005894,-1588592636,-285801874,1645120409,1358558978,-150845557,-1727933394,26349195,-11470345,-1070922122,-11120560,548930167,13416960,-6664110,184549631,-1207142976,-1706033135,282,-16595837,1996424822,-25858,1996423168,-394854652,16777114,61907200,-775804007,138806264,30672387,-1996487675,1996487750,67811342,1354771280,-1113960368,-1996488697,1187510854,-352321302,-1069103553,-1052326360,242679552,1342444728,-1914013953,1343668294,16777114,-330921728,-1207666945,-11534335,1183710326,-11528512,-1852117898,-1593835514,1174471124,-364445700,972703371,-1182995898,721712895,1996443840,-835256568,138840833,23070211,136354384,1988820992,-734657784,74907393,-1924087765,-11534012,-1929261514,-1706032572,2110,50886283,-16657354,-1070922634,54824272,-835256496,71601409,-26032,-1956773888,516120037,1430622296,-1910575989,351044568,1183663339,726669036,1347440832,1342177720,16777114,1958742784,1816036148,309592065,23869183,384583309,-26032,-1073020928,1183650933,-1706027284,65535,384583309,-26032,1048772608,1946157526,-700546123,91553793,-352321096,-2084558078,-443874579,-900899553,1478361092,-1957345904,-661774612,-1962349437,272436294,1027044353]},{"sector":16,"data":[192151825,1963005501,9824515,-956258583,16897542,1547108096,112642,30251600,1996423168,101620238,113704960,364,-385875528,1996423297,1354771214,16777114,70165248,53493376,-1204063232,1344144176,428954,53413120,-335919479,-94467309,1183319946,1952201976,1949973518,-95486198,821722753,-1674493,1996487238,309262,-96040112,1996425963,309262,24295504,-6664162,-16776961,-6680970,-352321281,775356303,-262096892,112720,-26032,2078867456,-2084557825,-443874579,-900899553,-1957363702,1577502700,-150994686,1073742918,1183526772,-312060,-63105932,1025340671,92078077,2130705981,2209816,649593835,563761152,-2097151996,99287748,-352311368,1575324656,-1873273149,-326412987,-2082959842,1048779500,1970536468,1882652448,108954370,-1207601807,65733376,1342374328,1347469355,185965136,-504823808,138314496,57999365,-16721943,-1711121354,2868,58048523,-1711224855,65535,-1996158815,2122576966,1031107078,964688,-431583920,1570394134,-1929379829,-11475386,-402323402,-998047237,84452100,2071314443,-1544272245,314049800,630870016,-2097151989,1187447492,-352321292,-163148446,922701846,922682626,-23001852,33948420,77680645,393989,-1600499707,-1929379829,1343682118,1342177720,-26032,922681344,1183646320,-1202710794,-1706033151,2994,84412103,243269632,-1593703450,100860540,-2136800878,41591042,39978499]},{"sector":17,"data":[-2096988509,1946219646,178188,-193527984,16777114,205298176,-310181888,535137026,516640093,1430622296,-1910575989,451707864,1326723,-14125708,-1207799754,726663938,1347440832,497562,1958873856,18934019,1342182840,799898,46433024,-16707095,-1711121354,65535,58048523,-1207893527,-1706033150,65535,200558217,-385649216,-1202716451,-1924136946,1343678022,16777114,-431584000,-193527984,-2097094936,1183384772,1975520244,1226758,-2097104919,329790,1183661428,-11528458,-16448970,-1593506762,100861182,-1588591358,100861188,-1706031872,3090,40908543,385238669,112720,203725392,922681344,-90569464,-1962934260,-22812602,-364475644,-150667101,111406190,41591045,-1593507165,77791868,-196703483,721750179,-258322240,-16777205,-1711116234,2411,385238669,37158736,70713093,83796229,84018691,84189520,83887619,-26032,922681344,1183646320,-1202710794,-1706033151,65535,65408640,-1207112958,-1706033118,2499,-1711094653,65535,-1962742397,1297948645,-326412853,-955716477,64582,16402119,-28915968,922681344,-6684068,-1996488449,-1705969594,3191,-375159,-23398282,-1996488701,922746438,1996423772,-25864,2122514432,1936982266,16678531,1996451188,74907642,837786,1958742784,106859358,-16615425,28836983,726683648,-1706012480,65535,201082505,-12553024,-1705968010,1010,645185547]}],[{"sector":1,"data":[738096895,-1957670720,2013202014,74972930,1358591743,2144336,1375784122,-26032,-1073020928,1996426613,218995452,1187446784,-2097151748,1946221182,-92864760,859034,-25263360,-16223232,-1181024650,-1962934267,-443810746,1478411101,-1957345904,-661774612,1443949699,1023952523,57999872,1023473641,141820417,1946288701,31189337,503478968,242679632,-1710459137,65535,58048523,-16661271,-6683018,-16776961,1183647350,-1706027274,65535,737822347,-1560124922,1183515570,-1845089284,62169857,68421319,1183514625,240552716,-1996236637,-385623530,1048772997,1962935316,24897795,16777114,84189440,41682489,44108149,2047228165,-1923189758,1343682118,84031231,84162303,50660001,1342504454,50660513,1342504966,1014170,41591040,-1593507165,77791868,1882652421,-163148542,28856342,295325696,-16777202,-1207799754,1344143994,1342177720,700570,138314496,91488261,65408640,84058370,-1593583453,-626850556,335988483,-385875964,1048772849,1962935316,15198467,51136139,721582598,-1996236794,-1298009018,-196724477,103484030,100860538,451609560,39990923,41825835,41563651,2113173049,64528652,41551403,1183434243,239504140,41682435,64620075,-1577826679,1178141620,722108148,50494470,-352069114,-1841919206,-2143933695,2083914498,-193578750,-626979715,2080779011,-1983511806,-660533690,205928707,-626980747,239483139,922705268,-1432747408]},{"sector":2,"data":[-1996488689,2058940998,1996443650,-401698574,-998047506,41596932,1183535134,-670684404,1183535107,-637129970,-6664189,-1962934017,1451953222,64529166,64624265,1342339768,-1863158017,12118030,-16464765,-16617418,-929369482,1577058319,-1962742397,1297948645,-1873273141,-326412987,-2082959842,329790,2058886772,-11526654,-16448970,-1593506762,100861186,-1588591362,100861188,401278208,503478968,374864,1654739024,328962,26386768,1342178565,692122,2091008,-1962742397,1297948645,-1873273141,-326412987,-388461026,-310181879,535137026,1439386973,-326898549,1882652418,207854082,1183383552,41597182,-25755824,333975184,79987456,40908543,-1694599425,3206,-1017256565,1167087646,518818645,-326903666,108461834,30422783,826778,140413696,-1962653813,-129070833,1183433003,105352182,-1996337269,-1054082482,-244087,1996424822,1996444152,112886,4831312,1375754938,272865872,1586167808,105351944,-96040632,-16353537,-11470730,28898934,1236815872,5945856,1738166354,-1962934256,1200293982,-96040702,-16353537,-1202653066,-11534335,1236860022,5945856,-1936043950,-1962934256,1200293982,1183401988,108462072,-92864688,1342177720,-1191414017,1522139209,-1706012160,65535,-1962742397,1297948645,-1873273141,-326412987,-2082959842,-1588197652,1183384186,41722362,-1946401143,624756294,1026716672,259260454,1946167101,2637104,-1070916748,-1593784599]},{"sector":3,"data":[1177092498,2603260,39988983,1983508619,-350585094,26386729,-335788543,40018408,-335919575,40018400,-335919615,1647741912,2117479170,2050360066,-92915454,1988690813,702714,26357495,1983508619,-1961787396,721523254,50495542,956464182,58588278,-1577290103,1178141306,-1593281030,1178141308,-11897604,-1207799754,1344143994,1342177720,1149338,-96040192,-1962605917,77855814,41596933,1183535134,2047224826,1183535106,2080779260,-73773054,-16777202,-1207799754,1344143994,1342177720,917402,-435257344,28836355,-310157824,535137026,1003179357,1660945152,201391882,1694565120,1828717320,33620736,1862271754,-1946090752,1895826184,-1778318592,1912603400,1644233472,33554950,385876736,469827333,1359020800,2097152785,1711276800,503381761,973144832,251658499,536937216,285212934,-788462848,301990148,67175168,318767365,402719488,-1996487926,-436141312,-1979710710,604046080,-1962933494,-520027392,-1929379062,-704576768,369099270,1140916992,-1912601845,1728119552,301990669,33620736,452985352,-1392442624,318767885,503382784,486539792,-1375665408,503316998,-419364096,369099531,-687799552,553648647,-301923584,570425868,1258357504,587203079,2113995520,-1694498039,218170112,-1677720823,1409352448,637534724,1895891712,654311943,1946223360,553648909,-301923584,570426120,1459684096,603980549,-452918528,754975247,1694565120,620757765,-1207893248,805306892]},{"sector":4,"data":[-1979645184,687866627,553714432,973078784,1812005632,872415756,-67042560,889192960,-167705856,889193224,1140916992,1140851206,-1157561600,1157628427,-822017280,1107297038,587268864,1140851471,1963000576,1342177796,-520027392,1207960333,553714432,1509949705,1057030912,1375732234,1476461312,1275069197,1996555008,1291846417,-1644100864,1308623626,-335478016,1459618307,788595456,1560281601,-1224670464,1493172993,2113995520,1509950216,1661010688,1543504649,1937009920,1167087646,518818645,-327034738,1187446930,-1962934022,272436294,1023898625,1249116433,1996450027,768014,3717200,1150963742,-16777215,196611702,364400640,-2135404540,-1070903296,-6664112,-16776961,1052249718,-1202708992,-1202716660,-1202716662,-1706016752,302,-385875528,1183515286,81162,37559668,-385649408,188547335,-385649408,205324911,-385649408,-1070923515,-16616983,28839542,-1332064256,1342177280,16777114,1975520000,13756675,-1207011585,-1706033141,426,28351056,117768192,-62486272,1342193848,-1694730497,450,200951433,-385649216,1996423331,768014,-96040112,1996443678,31496956,-2037579776,1343684466,519718539,44866128,28835840,-2037559296,-397344910,-998047227,1921420548,-1847045889,46433026,863289355,-1928431873,385839750,833616,702544,1074837584,48470608,-1073020928,1996428660,768014,1921420624,-1706027265,702,738138601,1996443840,28829946]},{"sector":5,"data":[-16464765,1172896374,46433026,192200715,-1705983957,65535,-1946225175,1344207430,16777114,242679552,-335907073,242679558,-1705983957,65535,-1946233367,20777030,1024160768,57999362,-385798423,1996488386,768014,-26032,-1706033152,65535,-1191426423,-11534272,1996487750,-25860,1183383552,1975520250,-23795453,-1207011585,-1957691381,1344207430,-1694730497,65535,-1928431873,385839750,833616,-26032,-1073020928,-1276574859,1921420544,-1706027265,529,-1947056503,1344207430,204954,-163149568,-1980086781,-661916602,1948925824,977240069,28837237,721611520,1887865280,-96039937,1995720249,-1957683645,1344205894,208282,-196704000,126539915,-9533816,74721852,108347196,-9402681,1586167809,-2012771596,1023372934,1006924892,-1950190278,1344205894,16777114,-196704000,-9388413,-1961724928,-1903300026,-1056702606,1347605132,-336312693,-230257904,-9269619,-762527485,1152929874,-1706025472,920,-1207011585,-1924136949,385839750,-26032,1996423168,-25862,-1746337792,242679805,-9271667,213405718,179851264,280514560,-6664128,184549631,-385649216,1172962721,142016510,-401705217,-998046999,-43718396,-1962742397,1297948645,1426066122,-326898549,-950642934,64070,503596683,-1706025392,65535,66471561,1344144454,230042,-1947170048,977043710,1015026036,-2146208466,1966014332,-159481075,-955812606,63558,1015036139]},{"sector":6,"data":[-955812516,129094,2122525931,74711046,65781803,-1996488008,2117728326,-2145946876,611593789,503596683,516393808,-26032,-125108224,1150149867,-1957683711,1275459654,-1706025472,65535,-443850914,-1957313699,1988843244,-2146374908,91499068,1967078528,112645,-2142893845,-344653764,-1956724693,516120037,1430622296,-1910575989,-1930657320,1183536640,17841420,289213300,-385649407,15270123,242679553,1347469355,702544,1354771280,24730,809402368,57999363,-16732183,179834486,-2037559296,1343684476,1342210232,345242,-62486272,-1165954933,1952251771,2088945168,1191140607,-59339780,-8617274,1988544256,-1207750401,-397409488,-998047420,2022082818,2089192959,1954974207,2022083583,1988508159,-1961987073,-1946192226,-1962969930,1946630148,1956547373,4161791,-2037708171,-2043019400,108265334,-9009465,1996423984,768014,1988528976,-1706025217,1663,-2037698069,1344208758,307354,1988528384,1954974719,-1706025217,1493,1996463083,112654,83270224,726663168,395989184,-1207959546,-1377239039,172395264,1946157373,146709,-2031549579,736512,-2031549579,-373282048,1996423312,112654,84712016,-1706033152,157,-948649973,-1207011585,-1706033141,1525,11967056,67436544,-62486272,1342193848,-243969,-929366922,-1996488704,201292422,-14322496,196611702,-2037690368,1344208762,-1694730497,230,-8734977,-8734977,16777114]},{"sector":7,"data":[79987456,-15829249,-1694532938,1692,-39703,-1070920074,-988336,1996425334,7071758,-385563517,-2090926259,-443874579,-900899553,-1957363702,82609132,503596683,-1706025392,516,503596547,96049744,1183383552,71732222,1996375609,-1957683669,1344208454,148890,-28931840,126539915,1023166088,1006924892,-1948617414,1344208454,162202,-28931840,-1946270069,1438866917,2122443915,1963130886,74907438,1342177720,393882,1996443648,768004,125016656,-1202716672,726663182,1347440832,16777114,-6664192,-1962934017,516120037,1430622296,-1910575989,787252184,209617238,1416954128,1355957901,23475967,-2097122840,1183384772,1715373052,125108481,100288199,-955913472,326214,24000255,-1946519809,1116601462,-1202710830,-970260440,-26032,1996423168,309262,-767128240,1738166294,-1207959545,485163009,286031489,-2095876863,1963002494,242679565,-1705983957,392,-1070865941,49120094,1562371467,707149,-2081649835,-1957296404,1183385158,71732218,179950123,-2131626240,1586180290,-96010246,1183520648,-137221372,71731697,-579354613,737822347,1183385158,-94467074,-956674305,485163015,-1979294069,-62486521,-1962522881,76216950,-561313912,-1963307265,126417990,972703371,-596507066,1593722507,-1017256565,1167087646,518818645,-326903666,205949734,1946226749,17906951,2028693620,1023568545,292814851,1946159165,736570,1187462260,-352300070]},{"sector":8,"data":[-632895739,1996424167,309262,-632911024,798642206,-16777216,79171190,-1751494656,1342177280,16777114,112640,-956263191,50911814,1183699179,-632911394,1342185144,1356744333,-605548912,79987464,1187494123,-1962934052,20777542,1024029696,1433665538,1609285675,-1207011585,-1706033148,2157,181836368,1183383552,1975520252,1782481678,125043458,40517251,-1205177083,-11534272,1996487750,184195836,1183383552,1958743004,242679572,1342178488,517752459,-59310256,726426,242679552,-1696827649,2848,-2080413975,-443874579,-900899553,1478361098,-1957345904,-661774612,-1958417277,272436294,1024291841,57999633,721532137,53406144,1342187704,1356088973,669519504,79987464,-1207011585,-1924136956,1343673414,300186,242679552,1342180280,648090,28856320,-1070903292,-733573808,-1734717418,721420293,735087570,-1706011968,1553,4865667,-385649664,-1632108319,-1202708992,1344143445,503338168,-1069118128,683167766,-6664192,184549631,-385649216,1183645885,-1102673472,2122321899,359935164,549224064,1191120756,-1101100098,1183319946,1975519932,-1101100059,1946173312,-1102643450,-1929377850,1343668294,503339960,-26032,-1073020928,113706612,192,-1967235445,-1136228345,74722364,91562044,-339851521,-1101100053,1183319946,1951415484,1970289668,-1039743215,-352321536,-1132560375,-15764436,1586216518,-2012771650,-1073038266,1586228085,-2012771650,742177862]},{"sector":9,"data":[540804212,1191118197,-1947472962,126533214,1018971784,1006924870,-955878074,16827398,1241958144,-16776960,112725622,129519616,1048793088,1946157250,440325,129500139,-1214623744,-16777207,163057270,179851264,1048793088,1946157248,636933,179831787,-677752832,-16777207,213388918,230182912,1048793088,1946157252,833541,230163435,1318735872,-16777205,79171190,-795193344,1342177290,489882,112640,-956203031,53830,755648139,205324289,-385649152,-1073480135,-1476448621,1996426069,440334,171547216,1183383552,12755408,1959806521,1241958150,-1962934272,-1029451706,242679552,1342179768,679066,-800683776,956350625,108318790,4851399,1183514624,12624848,-1207011585,-1706033140,65535,-1580185975,1178140868,-955878192,18950,-800683264,-2097101661,19006,1183664757,-1202710848,1344143456,63130,-1069645056,74711040,834881222,12729987,-972786688,-2091596474,50238,1187382388,-1632090425,-1202708992,1344143465,381699725,-26032,113704960,65610,-1207011585,-1706033148,1214,85105232,1183383552,1975520252,1782481678,125043458,40517251,-1205177083,-11534272,1996487750,86481660,1183383552,1958742994,242679572,1342178488,517097099,-59310256,268698,242679552,-1697483009,1376,-80151,112725622,129519616,-15275264,163057270,179851264,-16061696,213388918,230182912,1996443648,-26102,-1729560576]},{"sector":10,"data":[420089598,1057505035,654851848,1057695499,856371976,1057505035,-385138933,-310116741,535137026,181030237,-1873273344,-326412987,-2116514274,-16737044,-1711172042,3407,-10058103,-9922935,-150981448,50337838,-1946196346,100624534,1183383604,-195655182,32523975,10938624,66078347,989861894,1963025926,1720093454,1754696703,-230258177,-1946921335,1452012102,722420,-1980086647,1187511382,-2097151762,2099834494,-94452630,4161574,-1014275724,1183433356,-329872918,-1996077429,1586231366,4161784,1589916020,1065363178,640185344,-467007606,1347537195,801178,-128021760,-316010614,1364382251,-10189175,900762,1686518272,-1961855745,1065416798,-14519296,1191180870,-6755346,1191180358,-2085622806,-13307322,1721888838,-263833343,1340670847,-1774780417,240556545,1721827328,-263833343,1183524479,403047408,-163149568,956393121,58521158,-637399,922744438,-40239080,-2097151986,1609237700,24000255,1342185400,-9795955,-2135404522,1855606784,-1929379834,385837702,9222224,-677752802,-1929379828,385837702,105286480,-409317346,-1929379828,385837702,9353296,-6664162,-16776961,-1929225162,385837702,62437456,817385502,1150963712,-2097151987,-443874579,-884122337,1167087646,518818645,-327034738,1448542434,1342194360,-1727937608,-6664110,-1996488449,-1072976826,922687861,-1732771236,726670849,-1202696000,-1706033104,65535,-16571671,664448118,-1996488690]},{"sector":11,"data":[1451868230,-1337538622,922681344,1347551856,1342292920,16777114,1882652416,67155970,1354771280,999968848,-1962934257,-1505326654,-1996482399,-1946213242,1174644294,-1034515520,-14645623,-14510455,1187469035,-1962735420,-1983738685,1451869766,-1000436792,1946173312,705137192,1372138468,231971408,1589903360,260712134,-768873174,-2037821102,-1181024482,973078542,1962876550,-1000436981,1962950528,16312587,-3913985,-1108621754,-14645505,-14639420,4161574,-2030067595,1721892644,612776193,-955877889,16721030,-1371093248,1721827328,1178159105,-385647442,922681673,-6684266,-1996488449,1451862086,3455146,-14373129,-1951906303,1451993158,-897675862,118943883,-1176859106,-1510866918,-1774780641,-26111,1996423168,-1065943102,1353860749,1355433613,16777114,147096320,12353155,1996425332,-25924,1183514624,-1034515520,-14645623,-14510455,-14639420,4161574,-1175911563,-1001994496,-1014299896,1183433356,-933852730,-2134614389,678690879,-467007606,1347537195,970394,-966867968,705661478,1389505517,512133457,24484607,-2043019264,1786052382,-2134614389,1802829887,28329671,-1333886208,-385649408,413204752,612776192,-15436545,1358898358,16777114,79987456,58048523,-120855,-1207799754,726664193,146297024,-1706025469,2175,-14643573,62934571,-1948570680,-1949750311,738140294,-930365370,-1936043693,-385875960,1191117083,-968425532,-41495,-369155962,-2030043334]},{"sector":12,"data":[1721892644,612776193,-955877889,16721030,-1371078912,-87063,-16617418,1996472950,29604032,225024592,1183514624,-1034515520,-14645623,-14510455,-14639420,4161574,1290339189,734235647,1178320966,-385647450,1187512127,-1962735420,-1983738685,1451869766,-1000436792,1946173312,705137192,1372138468,266050128,1589903360,260712134,-768873174,-2037821102,630914846,973078540,1962876550,-1000436981,1962950528,-17766133,-3913985,-1108621754,-14645505,922717931,532152686,-2037559296,1343684390,1342210232,833434,646352128,-1202710785,1344143504,1061274,646352128,-1202710785,1344144136,1065370,646352128,-1202710785,1344143506,837530,1547108096,646352130,-1202710785,1344144312,1342189752,851866,-1401487616,815770,-1401487616,16777114,-2090902016,-443874579,-884122337,1167087646,518818645,-326903666,1187468818,-16776972,-1207799754,726664192,1347440832,883610,-263812864,1005737609,-12749360,-1711172042,4357,884525195,-136672512,50337838,-162625080,-500087,1996425334,-1950250234,722387,-1326952366,147096320,-768375,-1711172042,4451,16023171,-2098658444,4372480,29603920,-1706012007,3367,200165001,1349285056,757914,-96040704,-239991,1375891510,29603920,259693136,1183514624,-230278672,1996432500,-92864516,-1946532349,1347615830,1202586,-230257920,-661925333,-990880213,-970524042,1996423168,108461832,-231681]},{"sector":13,"data":[753465974,147096320,-768375,1637543542,-16777200,1771761270,-2097151984,1962996862,106859270,1577060294,-1962742397,1297948645,-326412853,-1961956221,1451951174,-62486266,-369207671,1183514772,-129595128,-1030962293,-1980610935,1183577174,138816504,2097825339,-228670368,653412095,1183319946,1965898998,-96024817,1586167809,-129564680,-689240184,821460608,2122319484,612252150,1089896064,2122325620,410266870,687242880,2122322548,208939510,720797312,2122319476,192226294,-500085,1183512646,-1950225418,130480222,-92372224,-1961856000,1177286726,343304,28837246,-15602944,1589967942,1065363196,-385649664,-1070858400,-1017256565,1167087646,518818645,-327034738,1183645878,-1202710796,1344143558,1273754,-1069645056,74711040,838289094,385107597,16824400,-6664112,-1996488449,-1072981434,1357448061,-2065149951,46433025,-1919256833,1343659078,1226138,108461824,1342197944,-11893107,40953936,-1996045181,619442758,-1919256833,1343659078,1243546,-1703477504,-1705983957,4812,-1197836545,-1706033151,4912,-1919256833,385829510,-227082416,1279642,2126514944,318675655,1183383552,-61437446,-1919256833,1343659078,1283994,-26112,1177223168,-61465606,377278987,-1203960449,-1206946293,-1706033117,65535,-385694589,2122514597,-931856225,-1197836545,-1706033151,5026,24000255,1342180024,-11893107,1354256406,-459649024,-16777197,-1929225162,385829510]},{"sector":14,"data":[9746512,565727262,-56995840,-1929379821,385829510,13350992,1083854878,-973078508,234835590,-1919256833,385829510,374864,-26032,-1073020928,1996433023,-1673097830,-1113960426,-16777197,-1070884234,330209872,1996423168,112794,-26032,-991232000,-1919256833,1343659078,16777114,-1619098880,-1215232,-6645130,-352321281,1849098031,1095681,1250331984,-1202710785,-1706033072,4113,39597823,-11893107,-1799860202,-1202708992,-1706033104,4185,-1962742397,1297948645,-326412853,-12391293,1183646838,-1706027290,65535,-385649344,1048772846,1946157252,-414791929,99288240,753354439,-532247295,-793227242,-1706025472,2697,67389066,-481916879,503374008,-532247216,-692563946,-1924129280,1343668806,1342185144,570266,-1035563776,-339720567,-1099005943,-15764436,1586217030,-2012771648,-1073037754,1586228085,-2012771648,742178374,540804212,1191118197,-1947472960,126533726,1019102856,704935278,-2146636864,1970257534,-352210940,-2013089790,2122377798,57934014,-1950333185,126533726,1019102856,1022456876,1022194720,-1341885128,-1341986040,-381253625,12484224,1191117684,-1067545664,1183319946,1949056190,1948269809,1966226669,-352145404,-2000672254,1183705926,-1706027290,65535,-1017256565,-2081649835,-1923720980,1343663174,503375544,370448976,1183645696,-62486100,1191117803,-60912644,1962950528,-1036090379,74711040,48977072,1586188464,-62455812,1183516552]},{"sector":15,"data":[-28931832,2122342891,108802218,967474816,2122336894,1148464298,598376064,2122333812,947137194,1084915328,1586175349,-62455812,-1960048698,1191181406,738707196,-237941,130481222,-2145326292,1951443582,-1434550266,-1961593516,1191181406,1141360380,-237941,1183513670,-1962440534,1191181918,-2012771586,-1073042874,1586204789,-62455812,-1959065658,1191181406,218613500,-956539253,1183645703,-1706027348,3868,-1951906167,-986973114,989877253,226362950,-972654965,-1962890174,1183385158,71732136,1183666206,-1706027348,4405,1588086411,-1017256565,16973870,196968,196712,16716568,196620,16713041,16973837,200857,16973935,67562,16973829,66246,196615,16715369,16973852,69880,16973839,201567,16973825,69995,16973841,69804,196626,16714907,16973859,69856,16973843,201446,16973839,199145,16973846,197831,16973858,197884,16973859,200986,16973860,198598,16973862,70757,16973882,68286,16973883,201543,16974000,66721,16973901,134778,16973893,66978,16973902,69574,16973903,67834,16973911,70950,16973912,201331,16974024,69665,16973913,201996,16974025,71144,16973914,201752,16974026,201361,16974027,201437,16974029,201675,16974031,201408,16974039,198672,16973912]},{"sector":16,"data":[198592,16973915,198753,16973916,198661,16973917,199063,16973920,199190,16973922,197106,16973923,197625,16973924,196679,1953300581,0,5,0,0,141,116,1196228608,67,4409165,1146241838,1146241792,1196228608,67,4477507,1380134442,774504516,4477507,1380134442,68,1127098972,17490,1685015808,1124101477,3231055,843927363,1395413036,1685015808,28005,1059192866,0,539828224,0,0,1953064005,0,2228258,2228258,1685217603,1701603686,1767309312,2003788910,1698955379,1701013878,0,1682243584,1140880489,1280332617,22849,65537,1329790977,1090531917,3164244,827150147,808648762,745417776,3222584,1953656656,1413546099,68,0,0,0,0,0,0,0,0,0,0,0,0,0,-2122252288,65921,0,0,0,0,0,0,0,0,0,41943040,44040856,1953301228,1819506547,1668115310,257,4194304,524352,-65536,-1,-1,-1,-1,-1,-1,-1,-1,240,-65536,240,-65536,240,-65536,240,-65536,240,-65536,240,-65536]},{"sector":17,"data":[240,-65536,240,-251723776,0,-251723776,0,-251723776,0,-251723776,0,-251723776,0,-251723776,0,-251723776,0,-251723776,0,16515072,0,16515072,0,16515072,0,16515072,0,16515072,0,16515072,0,16515072,0,16515072,0,0,0,0,0,0,0,0,0,0,0,256,0,256,0,256,0,256,0,768,0,768,0,768,0,768,0,1792,0,1792,0,1792,0,1792,0,3840,0,3840,0,3840,0,3840,0,7936,0,7936,0,7936,0,7936,0,16128,0,16128,0,16128,0,16128,0,32512,0,32512,0,32512,0,-33024,-1,-1,-1,-1,-1,-1,-1,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-256,61695,-256,61695]}],[{"sector":1,"data":[-256,61695,-256,61695,0,0,0,0,0,0,0,16777216,-1,16810239,-1,16810239,-1,16810239,-1,33023,0,0,0,0,0,0,0,2130706432,-1,2130706686,-1,2130706686,-1,2130706686,-1,254,0,0,0,0,0,0,0,-12648448,-1,-12648196,-1,-12648196,-1,-12648196,-1,-12648196,-1,-12648196,-1,-12648196,-1,-12648196,-1,-12648196,-1,-12648196,-1,-12648196,-1,-12648196,-1,-12648196,-1,-12648196,-1,-12648196,-1,-12648196,-1,-12648196,-1,-12648196,-1,-12648196,-1,-12648196,-1,-12648196,-1,-12648196,-1,-12648196,-1,-12648196,-1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1953300480,1818838544,1694498917,2003127808,6684672,1852141647,3026478,1392535296,6649441,1392535552,543520353,774796097,1761607726,1769099264,29806,1917845610,544501353,7105601,1291873152,1701278309,3026478]},{"sector":2,"data":[1768178960,1979711604,1684952320,1750272367,1668498735,7274496,1701080649,774778488,3556873,1124102400,1141470325,27749,1866662002,1175026032,1929379890,1935757312,1225352564,29550,1699872880,1919906931,101,1946681344,2019906560,1971322996,1667846144,1701999988,1767247872,30565,1631781005,158557298,-2147468986,1766588558,1175024755,268447793,1685217603,7929856,778331201,1175006766,2046820407,1818575872,157643877,14406,1967390843,1667853424,6648929,1090550912,1685025909,778854761,1175006766,1401946165,1668440421,-2097151896,544163584,774795092,877005102,8650752,1684957510,3026478,1174439296,543452777,1954047310,3360265,2004055149,1802398835,-1874853888,167774726,1442878464,0,131118,786532,8388619,-8302461,67108864,1174410240,201340928,-1560280320,16745296,5701632,3276840,65550,1342373889,1919241600,25959,3801175,917554,2,1132482563,1701015137,1308622956,1006638080,167775232,33554432,33360,131074,786472,196607,1182945282,1852140649,979725665,1953300480,-1874853888,167774726,1442878976,0,131118,786532,8388619,8474755,335545344,939542016,50334720,-2091867392,5701632,3276840,65550,1342373889,1701859200,1459617902,838875648,33558016,50331648,1631813712,1818583918,5111808,3932180,655372,1342308352,33554562]},{"sector":3,"data":[671089152,-16774144,33555199,1766228560,1634624876,3827053,1937009920,1852601207,-1874853888,419436805,788571648,0,983052,786536,8388619,8474755,33557504,201341952,16776960,-2108685824,1702256979,1818846752,1935745125,1342177338,1207960064,167775232,33554944,33360,917624,917539,65537,1400918019,6649441,536901632,234889984,512,-2142240000,1668178243,27749,2004055149,-1874853888,419436804,738253824,0,524292,524332,131075,1233276930,2019910766,1852394528,14949,393268,786596,4,8474755,402668544,234891264,16777472,-2142240000,27471,1572984,917544,2,1132482563,1701015137,1828716652,1937208180,1835757164,-1874853888,419436804,738246656,0,524292,524304,131075,1099059202,3826788,100669440,201368576,1024,-2125430016,3014656,2621464,65550,1342373889,7032704,402680320,234891264,512,-2142240000,1668178243,27749,-1874853888,419436813,1543553024,0,524292,524308,131075,1149390850,980181353,1835008,10485766,262156,1350762496,67108993,603985920,83888128,33554432,1766097488,1411411041,6647929,369112576,201336832,67110400,-2142240000,1701736276,6946816,2621462,458764,1342177284,1819627648,25971,2621444,524304,8,1350717442,7631471]},{"sector":4,"data":[637548032,201336832,67111168,-2142240000,827150147,6946816,2621478,655372,1342177284,1297040256,67108914,603994112,184551424,33554432,1631748688,1377854581,6648929,905983488,201336832,67111936,-2142240000,808464945,6946816,2621494,851980,1342177284,808465280,3538944,2097224,65550,1342373889,7032704,1207986688,234889216,512,-2142240000,1668178243,27749,2004055149,1802398835,-1874853888,419436804,738224128,0,524292,524312,131075,1199722498,1867784303,536870970,1140852224,67111936,-2097152000,33104,1572871,917544,65537,1333809155,956301419,671094784,33558016,50331648,1631813712,1818583918,1953300480,1819506547,1668115310,1936485226,-1874853888,419436804,738224128,0,524292,524308,131075,1182945282,979660393,1835008,4718598,262156,1350762496,117440641,671094784,16780800,50331904,1800372304,3735552,2621464,131086,1342373888,1851868032,7103843,1937009920,1852601207,1784900971,1685285995,-1874853888,335549448,1711315456,0,327680,524442,131071,1300385794,1869767529,1952870259,1852397344,1937207140,589824,23,-65536,1342177283,130946,234881024,134257152,33554176,-2108685824,1685217603,1701603686,1966080,6160418,-65528,1342308353,1919243906,1852795251,808333600,49,-1711264000]},{"sector":5,"data":[-16774912,33554943,1866695248,1769109872,544499815,959520937,539768120,1919117645,1718580079,1866670196,3043442,1275068416,33593856,67109120,-2108685824,0,10092630,262152,1342308353,1023410306,536886016,16780800,50331904,1800372304,1953300480,1819506547,1668115310,1936485226,-1865940992,335549444,1073764864,1124073472,1717858913,6646889,2883613,917536,65538,1132482563,1701015137,108,1509951488,-16775168,33554943,1699971664,1852400750,103,1509954048,67110912,33554688,33360,1835008,524378,131071,1954697218,1919950959,544501353,1869574259,779249004,1953300480,1819506547,1818575879,543519845,543903510,1663070068,1952540018,1752440933,1768300645,373253484,1702256979,1920295712,1953391986,1634231072,1936025454,1091051578,1953853282,103689774,1918976800,537228132,1685217603,1853171722,1819568500,220816485,1685217603,1701603686,1952539680,1631783009,1768318066,1124623724,1717858913,711289961,1634036816,1881171315,543908713,1948282997,1881171304,1701736296,1327505454,1869881451,1852793632,1970170228,16229,1828716544,1937208180,1835757164,1851867923,544501614,1818323300,1836412448,779248994,1953451555,1869505824,543713141,1869440365,1948285298,1919950959,544501353,1952672112,778400373,1953451538,1869505824,543713141,1869440365,288258418,1819305298,543515489,1936291941,1735289204,1867388192]},{"sector":6,"data":[543236212,1768710518,1768300644,1634624876,573465965,1919248468,1936269413,544173600,1954047348,544106784,543516788,1885957219,1918988130,1309945444,1702109295,1763734648,1702043763,1952671084,590242917,544501582,1970237029,1679845479,543912809,1667330163,1869881445,1986097952,1768300645,841901420,1852727619,1663071343,1952540018,1702109285,1713401965,778398825,1868111904,1633886325,1953459822,1801547040,1751326821,1701277281,1310928499,1696625775,1735749486,1701650536,2037542765,1126178862,543453793,544501614,1702257011,1311452772,1696625775,1735749486,1768169576,1931504499,1701011824,544175136,1702257011,1920295712,1953391986,1918984992,1126641252,1869508193,1886330996,1948282469,544238949,1701603686,1126178862,543453793,544501614,1702257011,1310862948,1696625775,1735749486,1701650536,2037542765,544175136,1684104562,1667854368,1701999988,1867391534,1852121204,1751610735,1835363616,544830063,1914728308,1126198901,1717858913,778398825,1953451542,1981833504,1684630625,1918984992,1768300644,204367212,1852727619,1713402991,543452777,2004055149,1802398835,1802134381,1953451551,1869505824,543713141,1869440365,1948285298,1701978223,1663067233,778334817,1851867917,544501614,1852404336,1411722868,1701995880,544434464,1881173870,1970561897,1763730802,1752440942,1818435685,1868722281,778334817,1701336092,1763730802,1869488243,1685024032,1663069541,1701736047,1684370531]},{"sector":7,"data":[1867389742,1650532468,1948280172,1919950959,544501353,1952672112,1936028277,1631784494,1953459822,1701995296,543519841,1953451547,1869505824,543713141,1869440365,1948285298,1919950959,779382377,1953451551,1869505824,543713141,1802725732,1634759456,1948280163,1919950959,779382377,0,0,1895837185,2949376,1895891059,16806400,8716402,-2097122559,7602432,1962999932,16805632,7929974,2046850817,7864576,2030108813,-2063561216,7733275,2004055149,1633971813,1768300658,422471020,661545283,1701978228,1663067233,1852140641,544366948,1701603686,1833507630,1886351984,1696625253,2037150305,1852404256,1701847143,1685023090,1867387694,543236212,1667592307,543973737,1701669236,1884494126,1718182757,543450473,1701669236,1953459744,1970234912,506356846,1667592275,1701406313,1769218148,1629513069,1634038380,1763735908,1937055854,1124937317,1869508193,1919950964,544501353,1818313483,1633971813,539828338,1868710152,774796405,1867781678,1634541679,1679849838,1936028769,544106784,778400629,1952531469,1936269413,1819633184,537996908,2019906592,1920213108,1633906293,778331508,1769107222,1634625895,1631789164,1684956524,1713402465,342191209,1701601603,1918985326,1634231072,543516526,1701603686,2003136017,1818313504,1633971813,1768300658,25964,0,0,1953451541,1981833504,1684630625,1818846752,1835101797,1310662757,1696625775,1735749486]},{"sector":8,"data":[2513485,17,32,65535,490209280,0,64,0,0,0,0,0,0,0,0,1024]},{"sector":9,"data":[1409299944,544434536,1735357040,544039282,1970365810,1936028265,1667845408,1869836146,1461744742,1868852841,168653687,-1273033180,-1205744375,567102465,15919962]},{"sector":10,"data":[279886,1179861,190284719,131078,268436480,70684,131072,196610,4194347,10092624,12845246,1255,262146,0,0,0,401801298,401801488,9830910,14155793,-2147287036,1,34078720,-265289663,64,-2147155968,1,38338560,-265289715,32769,-2147090432,1,39190528,-265289720,32769,0,1229734665,1095713360,1124549714,1112557900,17490,1329742085,87125,1229734670,1146241616,1346653783,37965650,65536,786440,1162544640,1279610450,1229211395,1163089156,33489490,81869,1070399744,16899585,654311424,1919117645,1718580079,1767317620,2003788910,1816338547,1868722281,543453793,1819308097,1952539497,7237481,0,0,0,0,1167087646,518818645,2122438798,1963004172,242679569,1342177720,16777114,112640,2122385899,1946226700,-2084557836,-443874579,-900899553,-1957363702,1022133228,209095510,702550,10532944,515395614,2090487808,-2097152000,1946159742,4241474,2013264,20093520,1183383552,1958742998,213407273,1183535104,-1202708778,-1706033122,349,-1957642197,1344198214,503357624,269531216,-26032,-1070923776,1442921705,-2096834072,-1073020220,-1598492556,508567040,-1161811120,1347555580,74907472,6600784,1354771280,1347442256,16777114,-62486272,-26032,1183383552,230183130,-6664192,1342177535]},{"sector":11,"data":[16777114,-629735680,383534733,-26032,1996423168,-629735428,16777114,-431584512,-1962880861,1174658118,13542372,-788475743,13804520,-788476255,-1545023000,1996423380,-25860,279117824,4241408,702544,-26032,1183383552,1975520216,8513795,737965823,-6664000,-1996488449,-1202258362,-1957691381,1344198726,1342180024,16777114,-25755904,1347469355,65517648,151042128,25860688,1996423168,1354771454,517490315,112720,16824400,-26032,1996423168,-25896,-4718592,-17665,-1705619374,65535,-1996438877,-352271338,-1002009324,-6664170,-1929379585,1343669318,16777114,-1002009344,-1070903274,-1706012592,65535,-646594549,1590183563,-1034033781,1478361098,-1957345904,-661774612,1446440067,-1961986421,356322374,-385649408,58589941,1023621865,57999362,1023499497,57999365,1023488489,57999366,1023443945,57999375,1023542249,57999380,-352131095,172395272,1946157373,1996445205,175570700,-16222465,-6683018,-385875713,922682150,28836030,1347590400,-1003028650,-1036583168,-26112,132841472,1064579,721908992,-372102208,278987518,172374272,1183517557,1090310,-352321096,272039912,51230720,175570768,-16222465,-157677962,-385875966,2122515154,-948699126,556675,-1705590411,65535,-1217085429,-26026,-1343553536,1024083595,611581986,155019127,1027896320,292814881,-939564311,64582,1187451883,-352321028,-62470388]},{"sector":12,"data":[99287042,66864839,364402176,1996443649,1354771452,61774416,1793654784,-62470145,535494656,33310407,-1206326528,-1706033136,65535,92127243,-352320840,243715,1459373705,-352250696,2440644,641585012,1033663488,-864813017,1946167357,-17700455,17464963,-2081881228,440304384,57999360,738137321,1347440832,-269986224,180650767,1459553513,1062655,16777114,440304384,225705984,1347469355,-396996528,-998043698,-701038838,-26112,-1070923776,-26032,-756482048,272532478,376700928,1062655,1342376120,-16091393,1996425334,-26106,-1923743744,1343681606,16777114,1183667712,-1202710796,-1706033151,65535,-1543503944,312672278,28857856,-1070903296,6600784,1354771280,264858,28857856,-1070903296,1342182563,1342177720,269210,-1070901760,1689800784,-1070903296,-26032,727056384,413356224,28856320,1033523200,-385875961,-1705574843,65535,58048523,1459501289,382879373,-26032,1996423168,899282,14391888,-1706033152,1313,-1194166529,-1706033147,1127,-6664110,-16776961,146330230,-40218624,1375731716,-26032,1183645696,-396996398,-998046700,1183667716,-1706027310,65535,-2080514839,1963264638,-36443901,1719939,-1961856000,-1070922154,1376405131,179852880,-13702397,1996424822,1139299850,113541889,-2080527127,1963264638,-39589629,1719939,-1961331712,-1070922154,1376405131,246961744,-370651133,147096334]},{"sector":13,"data":[-162583,1996424822,1508398602,-3740926,-1711221194,902,1342178744,361370,-1706012160,1418,-385821021,-1923678887,1343670854,244122,175570688,14038783,57754,175570688,382355085,-701038768,-26112,787021824,16793085,2011759477,17972733,-521600139,18103804,1793655669,18169343,854131573,50871807,887686005,51199486,-135724171,-54138372,49120094,1562371467,707149,-2081649835,95951596,-6664192,1375731967,-26032,-693960704,1354771200,-1719729992,-6664110,-1996488449,1996485702,10532868,-6664162,-1996488449,-1598492090,-62486272,-939630964,63046,65423047,-1983894784,1183447622,71732216,-940554615,-6074,-1423673,-330905601,1187446784,-1560280850,1183645886,-1706027290,65535,-1017256565,-2081649835,-1957292308,-1593830346,103481548,1183383752,105286650,1979712573,19523843,781434883,108242943,13514283,906188779,1374355662,-1728027464,312561746,1347590400,-11485141,1625819254,-397389296,-259321926,1183527915,-838456326,-364476160,956354209,57928262,-2081798519,1963067006,-364475641,65788151,65685131,537586672,1241916934,738609670,2096499462,306086663,75431936,736884267,1193529,915080829,535494674,-768883061,13514487,200038025,-1592757038,-388955954,74895419,13514243,-1578338773,-970260460,200689289,184975296,-142967360,-28931624,1324681,721472673,989906950,327155270,-1207666945]},{"sector":14,"data":[1344143558,1342177720,247962,-15340800,-1070922634,-159973552,503367352,-1706025392,65535,-1710983425,65535,-1207666945,-2091909119,4670,-1070922625,312547819,1347590400,-1728027464,-963948462,-397389159,1347555382,1343213288,1342177720,16777114,-443851264,-1957313699,384599020,406227798,13279488,12977707,-1946401143,71108166,-385649152,-1073544925,-1476448621,908789697,1475018960,13645315,1689801195,1347590400,-1728047455,-1070903214,142016336,1376719592,242018384,871100555,737953419,-1996435450,-794695098,-364496640,1183384435,108954602,-1962445566,-654841274,1183515627,-336591894,1946643978,-1744332793,185039367,-2096661258,5694,-164952961,909716459,108855318,1455755,-963960853,922210859,1451819216,1959922670,13672720,-801380143,906167414,1982529744,1614318,1183434283,2143292408,2109737734,-1982269580,915008582,-895418344,-972674304,-330941696,1996428159,13023236,28856350,-375762944,-352321530,74907413,737703679,-960999232,508567040,117480016,1996423168,118004228,1996423168,1354771204,1443385,379656574,1347590400,-1728027464,-963948462,-397389159,1347555054,1343129320,1342177720,260506,-443851264,-1957313699,-2098429460,-1957275904,76220022,-1161591,-1070922634,-6664112,-2097151745,1946157692,-294191343,503596173,-701038768,87202304,1996423168,-129594108,362434582,-1962934267,100923974,1144717340,-385646842,1183515211]},{"sector":15,"data":[-771357704,-498693888,-1560226655,113704988,26,16777114,-465139456,57982987,-16725271,-1207910858,-1202716657,1344143520,1342185144,657050,-532248320,-1149185,922739318,-1598554084,-11526656,1905975414,-1593835510,100860110,50659540,470155520,-294191360,-1946650881,100923974,53280796,1183535104,-129618948,112720,637008,1375753658,160275024,1996423168,-126418962,66733707,1207966726,-62485680,1358448171,1342177720,-1174402632,1347551317,16777114,13023232,1183666206,-1706027272,65535,16784545,-2097100794,6718,1659437941,-868811007,-902365440,-935919872,-969474304,74907392,-2096527896,1558776516,-599341311,1187446784,-956301176,99910,971261579,58623558,-45847,-6649738,-1996488449,87918662,-15370496,1342225974,378291853,2013264,5216848,854261760,1032341131,57999488,1023463657,141688961,1996522301,15329539,-1920436481,1343654982,1342197688,16777114,-1975088896,1137113227,1187381388,1183645915,-1706027380,65535,-2088089975,1946213502,-2075736524,-2058959316,-294191328,-1935617,-1929372618,1343652934,1342177976,710298,-294191360,377767565,178256,177576528,1174470656,-294191134,378291853,-1971912880,16777114,-565802752,65160843,1317789254,-770823172,1925266176,-125924586,13778435,1994554937,-495023862,16830113,-16770042,1996484214,473366498,-1941533440,1996443670,-25974,1183514624,-498728482]},{"sector":16,"data":[31213255,-953750784,16783878,-1941518848,-1941533440,1337479190,213405696,-974630909,147096328,9207424,837354356,-2042167297,-1191261719,1344143558,-150941023,-727625512,1356396288,16777114,440304384,1970536448,1342177976,-1728044872,-6664110,-1996488449,-1072987578,-1360460939,-6664192,-1996488449,-1979744634,-1039433642,-1696005259,2124334080,-74754305,-234876743,-1014276443,1375732741,71601488,-960999394,-1706025472,65535,-1702725889,65535,-11485141,1996456566,50968580,137291856,-16202621,-6651274,-352321281,-263811758,1150111766,-1202708988,1344143558,752794,13017344,-1947187575,1178202694,-1959756042,1178202182,-1960280332,103543366,100860104,-1957691372,103542854,100860102,-1924136936,-11472826,1996484214,976900,-1710570365,65535,-443850914,-1957313699,250381292,-28915882,1187446785,-1107293962,-1696006114,-1707802880,65535,201082505,-385649216,76218502,1946157885,1029601094,141819905,1946157629,8448279,-15960321,1996487798,108461832,-2096859416,1827342532,-15960321,1996425846,142016508,-402229505,569049202,1342181048,-402229505,-998046720,-11932924,1996426358,-59310326,-16222465,921175670,180650753,-335657335,8469807,209169012,1912603709,343331,485213814,1946190397,8601003,283887988,-1962752381,1325397574,1958743030,-10884861,16678531,230165877,1996443648,61007878,1577370755,-1017256565,-2081649835,1448548588]},{"sector":17,"data":[-16353653,-6683530,-1996488449,-1072957882,-1070922379,-16727319,1996486262,71866888,1996423168,964616,-398029488,-6664170,-2097151745,-16772546,1183520885,-872010772,-939130112,1221376,108904459,1181383,1048772608,1979645974,-364475624,13239851,12977667,184555171,-955875904,5638,71600896,1183384619,105155582,-1996340181,2123103302,176040938,2113830457,-28931323,-947191061,-1946532215,2116807806,-58836724,1183516029,-1962742788,-129594937,-16484609,41221940,1358591743,-624897,1996425846,2144268,1375784122,-26032,1996423168,-25866,28835840,-1956684288,1438866917,-326898549,-1957275868,1149961846,-1996215548,1150024774,38021894,-939899255,63558,-1710721281,2891,-1981135223,-1039405994,-1796668555,-364475647,-595686058,118943883,-1512403426,530949541,142016350,754842,74907392,16777114,-398030592,58048523,-1962842391,121494598,1023769600,1618870280,-1207666945,-1706033148,3653,74907472,1342179512,944282,1996443648,-596181026,-2097070104,1183385796,1975520228,18802947,-1207666945,-1706033146,3701,74907472,1342180024,16777114,1996443648,-596181024,-2097082392,1183385796,1975520254,15657317,1181383,113704960,22,721472161,-1996438010,-861805498,-939119872,-28931840,-16484609,41221940,-16485121,-6683020,-16776961,1996424310,-25892,1996423168,721718020,-1957688762,1177223748,-6664180]}]],[[{"sector":1,"data":[-1962934017,121494598,1028158464,1567883272,1048799723,1979645974,-465138920,13239851,12977667,184555171,-955875904,5638,306086656,-1737097472,738084491,50383878,-1560229882,-1073020910,113739389,18,-2080408087,1946214014,-528579820,-15830016,1996424310,-529072162,16777114,74907392,-1804545,-6619530,-16776961,1183515766,1342450442,722224779,-1706032572,65535,-16484609,-6626698,-1996488449,1996486726,-394854652,16777114,-129594624,-443850914,-1957313699,283935724,-375097,-62470273,1187446784,-956300812,130630,687747,-1293352075,71731968,1023410477,58064903,50373865,-13724736,-955253337,720454,1187462123,-352295682,-196688076,1187447038,-348634882,-196688088,1187449324,-349761282,-196688100,-219479810,-351910261,-888145807,-451948017,-653266673,1729128207,1354771216,-1946257665,1385761350,122480720,-1980742007,1347613270,-11485141,1183577206,1347590408,-1727641973,803754066,-397389305,1174603562,-229239824,-2097151699,1347551450,-1996048664,1451882054,-96039944,972838539,192084054,1178142071,721712886,-1962677312,-443812282,-1957313699,335988716,-956301312,6150,-1103692032,108461824,503357624,2013264,152410704,1996423168,13023236,922701854,-1097203498,-16777208,-1598552970,-1202708992,-1202651137,1344143558,1342185912,16777114,1575324416,-326412861,9104513,1183536727,-1837200122,118943883,-1515870811,731137675]},{"sector":2,"data":[721471494,-835258414,-1806292736,731399819,-768895930,13514487,193484425,-1592363822,-1037369138,-1583856127,1178140876,-1593409896,1177092302,-1807316072,2140685881,26077443,721472161,721470982,-801703982,-28931840,629063691,731399819,-768895930,13514487,193349257,-15565120,-459667338,-1996488691,1451854918,1975651214,899088,74907472,-2080436248,1156121796,-25263359,-955941276,6618694,-7440641,1218088054,50331658,1451985990,-2109306482,-2088479095,-16771522,113706613,22,1195651,-1955170817,1451985990,2122746254,-2141812225,-8747321,-861863936,-939119872,-137221376,-1996435914,-1946190714,1451983430,2122725764,-14781441,1996488310,2125922176,-1706652161,13887568,17351811,-33146,-335578490,2055637974,2089167871,-836306945,1221376,108904459,1181383,-2037710848,653787004,100860110,-861732664,172395264,922210859,1183383758,-1960776816,1325371462,1958742928,-25755873,-7440641,1183681654,1994936474,147096320,-997439999,-2144957346,-680198081,-1986771317,1206618694,-1954396533,1178174550,-12160116,1996488310,-1938358386,1352287885,-2097134360,-2037839676,-1769341066,1996488568,-1837695228,-1920305409,1343658566,154114642,-2037710848,1174536054,13541772,-1953872383,1325368902,1975520134,142016431,920986,-1956684288,1438866917,-326898549,727078666,-1946211338,1183384646,176044538,1589932670,1187416838,-1977165821,-62486521,1958742936,605535]},{"sector":3,"data":[171780980,1024750592,259260429,-1962647925,-670873657,-1996732790,-993334521,-2144991650,108268856,171474982,-347721099,-1714975953,-150992711,-137286663,-162100774,-956054901,2097825339,-163149033,200691455,-1953073984,-947190690,-958921913,-370466809,-768882805,-1070870389,1600046731,-1017256565,-2081649835,45614828,146296832,1347590400,736154,-96040704,1517600779,290167376,1183383552,-27883012,1114948107,-1946394940,-1993996218,1589903943,205949948,105351462,-1946394940,-1993996730,-60898297,638207627,-16496759,-1449461130,721420306,1996443840,74907642,1342376888,-2097147928,1996425412,195009274,-443875328,-1957313699,49054700,16777114,-28931840,309641227,74907472,-16353537,1996425846,43227656,-443875328,50013,1942235995,920188696,656953,959844215,1979714566,212022788,-2061568,-1140870941,-1329856848,-1705993987,65535,16777114,1958742784,1040631595,-1996488704,1459630094,1381172822,855713768,-6664000,1459618047,16777114,1958742784,-336926713,27322448,-850591816,-1957313759,-18196,-1957313699,-18196,-1957313699,1354771436,-1710983425,5255,-1017256565,-1192457387,-1957691328,1861682246,-1097183226,-1962934252,1438866917,1996483723,108461828,1342193848,16777114,1575324416,-326412861,-1710983425,5325,-1017256565,736922453,1996443840,6461956,-443875328,-1957313699,74907628,103066,1575324416,-326412861,-1710983425,5430]},{"sector":4,"data":[-1017256565,-2081649835,-1070923028,71732048,-1706012007,4957,-1929492855,735087578,1575324608,-326412861,-16585597,-1097202058,-1996488685,-628294074,-1070870389,-1017256565,-1275051,-6683018,-1962934017,1438866917,1996483723,-26108,-1073020928,28837236,721611520,1575324608,-326412861,1347469355,16777114,-402345728,-443874764,-1900297379,-1795456768,1393062656,1130043391,-1007490237,-1207958341,567100416,-1024062862,-2147126144,1073767055,-1007912629,567095476,-1023392605,4064910,741772070,889239552,512303565,109838386,521011252,-1171980104,567088144,-2079421642,908256000,8783557,-617358708,-2111897802,-385649920,-986251703,-1946121722,244698,-2111897802,-1021372928,855643321,1653077723,74711296,567099060,-1007492541,-387151019,1996423641,27125764,-1017256565,1475119957,-13413546,184960651,-149783104,72780759,-621291273,-1996488675,1451820614,172395268,310231051,1452005367,-136775928,7642,-1995815287,-1073018794,1317738101,105286408,-235417037,1183570059,-1947076860,-1875055661,1317787787,106334984,-788248949,-774254101,198758890,-134973989,871402481,-11513134,1996425846,15525896,1996903995,990409223,58065990,855764611,197561298,-150506241,-2082932774,1583022298,146955615,-326413056,-617392553,184960651,-149783104,72780755,-621291273,-1996488675,1451820614,172395268,310231051,1452004343,-136775928,7642,-1995815287,1317734486,-1948125436]},{"sector":5,"data":[138841080,-503844725,-141100541,-134019482,-963913845,125098763,-654845193,1577114243,146955615,-326413056,1183536723,1975520010,139365142,856049291,-1947076654,71732184,-745803273,-1953481493,140413896,-1962518901,-372177850,-355345455,-921970479,-201853835,-768348021,1996443730,142016266,989862376,125240918,1178273906,-2096925180,-768409106,1532937867,574045,1458342741,-1962260853,-503905202,1183570059,-135230712,-1764097055,50751223,-1949070376,-1034068282,-315490296,-355399965,-85796655,-326412861,-402636056,-469041997,2122320500,74776580,-33274170,840353054,620804096,-1960894003,-486505458,178951,8527615,-1274788213,-1155412660,-75431788,141754516,1528299347,-219462845,9747395,9894785,-11335565,1128487703,1506013931,268501760,1778385667,1057030912,1795162882,-872348928,1811940097,-436141312,1862271763,-1291779328,1895826177,402719488,16777492,-1124007168,1912603393,1996555008,2063598095,1879114496,83886356,-1660878080,100663572,-1409219840,117440788,1526792960,16777732,-603913472,167772436,-905903360,50332174,1442906880,2080375560,922813184,2097152776,-201260288,251658516,-1493105920,2130707208,-1845427456,16777984,1845560064,150995460,251724544,285212949,1778451200,301990163,-1560214784,318767379,1224803072,201327119,654377728,335544597,-553581824,218104334,1090585344,83886868,-1912536320,100664067,1459684096,234881551,604046080]},{"sector":6,"data":[-1996487932,1359020800,419430677,-134151424,-1979710709,1812005632,-1811938801,-855571712,-1946156269,-1090452736,369099278,469828352,-1912601844,989922048,503316756,-184483072,-1895824632,-352255232,-1879047415,822149888,-1845492982,570491648,-1828715775,1761673984,-1795161341,1711342336,486539785,-1308556544,369099522,352387840,503317006,1912668928,-1728052479,-1979645184,553648658,-1442774272,570425869,1191248640,-1677720831,-2063531264,654311951,-889126144,553648904,-1476328704,587203330,-1610546432,855638273,-33488128,754975244,906035968,654312196,-2080308480,671089412,-989789440,687866624,-419364096,872415756,-1694432512,-1392508155,-1425997056,-1375730939,-1845427456,-1342176496,1409352448,-1275067644,-268369152,956302085,67175168,1107296773,-1308556544,1140851213,-201260288,1157628420,1308689152,1023410952,-2063531264,1040188168,-452918528,1073742595,-838794496,1107297024,-117374208,1140851456,939590400,1342177806,-1761606400,16842497,-704641792,33619717,2063663872,1509949713,-1677655296,1241514761,251724544,1375732237,486605568,1526726932,620823296,1308623627,1107362560,1459618308,-1258224896,1325400843,-1560214784,1358955280,-2113862912,1526727178,-301923584,1560281600,-1124007168,1426064144,1510015744,1459618562,419496704,1476395776,-1711275520,16842497,-620756480,33619717,0,0,5,0,0,-65536,-65536,0,8454145]},{"sector":7,"data":[8585346,196609,262146,5,0,0,0,0,0,0,0,0,0,0,0,0,-2122252288,65921,0,0,0,0,0,0,0,0,0,359661568,361764232,5596,0,0,257,4194304,524352,-65536,-1,-1,-8390401,-1,-12586753,-1,-14688001,-1,-15744769,-1,-16285441,-1,-16285441,-1,-16285441,-1,-16285441,-1,-16285441,-1,-16711426,-1,2130706680,-1,520093920,-1,117440640,14745599,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000]},{"sector":8,"data":[0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,14688000,0,-57600,-1,65535,0,0,0,0,0,0,8390400,0,12586752,0,14688000,0,15744768,0,15744768,0,15744768,0,0,0,16285440,0,16711425,0,-2130706681,0,-520093921,0,-117440641,-116981760,-16777217,-150503297,-1,-150503265,-1,-284720913,-1,-284720913,-1,-553156361,-1,-553156361,-1,-536379145,0,-418938865,-1,-418938673,-1,-418938673,-1,-418938673,-1,-418938673,-1,-418938673,-1,-418938673,-1,-418938673,-1,-418938673,-1,-418938673,-1,-418938673,-1,-418938673,-1,-418938673,-1,-418938673,-1,-418938673,-1,-418938673,-1,-418938673,-1,-418938673,-1,-418938673,-1,-418938673,-1,-418938673,-1,-418938673,-1,-418938673,-1,-418938673]},{"sector":9,"data":[-1,-418938673,-1,-418938673,-1,-418938673,-1,-418938673,-1,-418938673,-1,-418938673,-1,-418938673,-1,-418938673,-1,-536379185,0,-16285681,-1,-16285441,-1,-16285441,-1,-16285441,-1,-16285441,-1,33023,0,0,0,0,0,0,-2143289344,285218310,1258328064,0,327717,524356,131071,1300385794,1869767529,1952870259,1852397344,1937207140,589824,23,-65536,1342177283,1768711042,1634689648,25714,917504,524432,131071,1132613634,1651534188,1685217647,2490368,4194338,-65528,1342308353,1919243906,1852795251,808333600,83886129,-2080362752,-16774912,33554943,1866695248,1769109872,544499815,959520937,539768120,1919117645,1718580079,1866670196,3043442,989869312,234889216,16777472,-2142240000,27471,0,0,1700004864,1107719288,1634563177,1766852464,1920300131,2035483749,1141074796,17993,1124663296,1651534188,1685217647,1868710152,774796405,1816205870,1684104562,1970413689,1852403310,1816338535,1868722281,778334817,1917139975,1047687026,1765948429,2037539182,1952531488,1125334625,1651534188,1685217647,544434464,1953525093,11897,0,112642,-1360408021,1354771202,-2094532888,-1073020220,1996483444,-26098,-504692736]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[7756365,13,32,65535,-333119488,0,64,0,0,0,0,0,0,0,0,1024]},{"sector":16,"data":[1409297384,544434536,1735357040,544039282,1970365810,1936028265,1667845408,1869836146,1461744742,1868852841,221148023,240788490,-855002081,1275181089,8653]},{"sector":17,"data":[279886,1179884,191191628,131078,268435968,69084,131072,196610,4194343,11862096,14352597,1278,262146,0,0,0,290455635,290455824,8782214,13893649,-2147287036,1,26148864,-265289663,84,-2147155968,1,30408704,-265289716,32769,-2147090432,1,31195136,-265289724,32769,5898240,1,31457280,1048591,95,0,1330397957,1141132099,88167489,1129270339,1279460683,4932431,1111557376,22304079,1279462400,1464550223,1380992078,148303,134217984,3072,1380272902,55330126,71910471,1380275029,-855507198,319,20958465,65590,1294139392,1869767529,1952870259,1852397344,1937207140,1869366048,1092643683,1768714352,1769234787,28271,1937009920,1852601207,1784900971,1167087646,518818645,2122438798,1963004172,242679569,1342177720,16777114,112640,2122385899,1946226700,-2084557836,-443874579,-900899553,1478361098,-1957345904,-661774612,-1959990141,255659078,-385649408,58065026,1023470569,1416888321,1946157629,343386,-169268620,172395264,1946413373,15395075,10499839,-1728052808,1996443730,-1338573042,-1372127488,-26112,451608576,-16091393,1996425334,242679558,-2096988952,1996425412,-26098,-1070923776,12773785,-401705217,-998047405,-1053950,922685046,1067057172,-402653181,-1070923500,-26032,-689242112]}],[{"sector":1,"data":[-1928431873,1343675974,16777114,1354771200,-2197761,-102232458,113541890,-1928431873,1343675974,16777114,-5510400,1996425846,42788878,-352009085,13559965,-352294168,242679701,383010445,-26032,1996423168,-969474294,-26112,1996423168,-733573878,922701846,-6684474,-385875713,339607400,1036940288,-1049362411,1946164797,17972654,283706229,18038271,1996464500,209125134,-16091393,1996425334,-26106,-310181888,535137026,181030237,-326413056,1342179512,103578,-1706012160,411,-1207910237,-1706033147,430,-6664110,-1560280833,-1070923578,112720,571472,29923920,1347551232,118682,10658560,-1202667477,-1202716671,-1706033147,65535,-6664110,-1560280833,-443875142,-1957313699,-1070137364,32217600,922681344,-191233850,-16777215,-1711234506,509,12203775,16777114,1575324416,-326412861,-15930237,-1130757002,-1996488701,-1202654138,-1706033142,555,-16727389,146338934,983191552,-1560281086,1996423364,440564,38378064,1183383552,-193527810,1342178488,16777114,-62486272,-16484609,-6622090,-1962934017,1385823814,6600784,-1588571495,1385758914,233957456,1273516114,13411085,13506185,-1711520117,1689800786,1347590400,-1728002911,-790081454,-397389299,-928838358,-904492800,-19273728,1064579,-10128384,-1711232458,65535,-1996435293,-956247530,64070,-772127093,65065440,-1962881018,-1996434922,1451882054]},{"sector":2,"data":[-902365192,-935919872,-835256576,-868811008,-161561600,38243110,-397389159,1347554675,-1005793816,-1993935266,1191117383,-92371974,-4621252,-1711232458,65535,1342219448,-1962252056,1438866917,-1296503669,726670848,-11513664,1996424822,-26104,1978138624,176063239,-14125823,922682486,1855586324,-16777213,922682486,2025324564,-1070903066,-2103816112,-956301309,16781830,-2094142720,4670,1996433012,339148548,-26112,1996423168,339148548,65583104,1354771280,-26032,113704960,18,-1017256565,-2081649835,1183647980,-555200262,46433033,956344481,276168262,956343969,141950022,956343457,645200454,-1710983425,65535,-1191688567,-11534335,1996486774,1239044,-16333693,1996424310,39295736,-443875328,-1957313699,250381292,11155199,175258,13673216,13768329,-1207535873,-1706033151,65535,556675,1996452213,11712518,922701854,1771700422,-16777209,-186120586,46433025,1342177720,10630911,-150993480,-1962892242,10920392,834457,-939262985,108461905,-2096890904,-1070921532,-1573454000,-1506345216,108461824,-2096896024,1048774852,1946157074,27322627,1342179000,1342197944,12203775,11024127,-2097052439,1946224766,25487619,1358579341,-2096566040,1048773316,1962934290,11051297,1962821177,440345,5290064,-1170800816,-1472790784,108461824,-2096963352,-1499395388,-62506752,-1532949643,-96061184,350815093,306086657,57999360]},{"sector":3,"data":[-1207922711,-1202716659,-11534256,-16729546,-16734666,-1427634570,180650754,1342180792,1342194104,12203775,-150993480,-1962892242,10920392,834457,-939262985,108461905,-2096987928,230165188,1354256384,922701824,1183514786,10920956,108461904,-2096995096,230165188,1102598144,922701824,1183514786,10789882,-150993479,-1580692503,-1147600730,-67698676,-11417597,921175670,180650754,-1070892053,-1170800816,-1506345216,108461824,-2096967704,28838084,922701824,95944890,-1540425984,-1580692736,-1147600730,-67698676,-11417597,-1444411786,147096322,-11485141,-1962892746,-1499202490,1996443648,43182086,-1207384957,-11534335,-1962892746,-1532757434,375040,-930354697,-1728010591,-150991685,1372062715,-402229505,-998047128,306086664,611647488,956344481,477429318,1342179000,1342197944,12203775,-1543616885,-11534168,-1897396618,180650753,11155199,198810,1575324416,-326412861,-1189679997,-1230962663,-1308218624,-1712720128,12848779,1183447543,-902365190,-935919872,-835256576,-868811008,1347590400,1376393960,158656592,1039681161,92078082,33048263,-92372224,-955941630,195142,503362232,-129594544,-654837551,-96040112,-654837551,-26032,-1230962688,-1308218624,-1543974656,-1197408084,-1274664192,66638080,-1560235002,-1298071362,-1408892160,12362496,16139975,-163149056,-523116335,13633027,13768331,-1980610935,1085862998,1347590431,-1728009055,1589923922,1200301810]},{"sector":4,"data":[1347590402,1376357096,149219408,12453379,-1192474999,1385766720,11313488,-1001368935,-1960381858,1347590407,1376347880,146860112,12322307,-1947580791,-1181092282,-101253115,477417995,49970819,2122535806,1299972856,1089095307,-1947318647,-1992233914,753659974,65685131,1183447622,-330920978,-1980217853,1183707206,-1957685526,-120456634,-1957635849,-120457146,-1705977609,65535,-1929087233,1343679046,12596991,79770,-163119360,1022787203,820577149,11712767,1183535134,1358483960,-772127093,2056933624,-1962934266,1438866917,-326898549,74907398,12334847,12465919,619674,6600704,-1588571495,1385758892,172395344,-397389159,1347553443,-1995964952,1183578694,-773795578,-804912160,-770274560,-62486272,-108919,1996424310,139500044,1996423168,142016260,547738,74907392,-1726005064,1183535186,1347590650,654073540,1385760651,139847760,-1343729582,-1140456697,1085820928,1347590431,-1711651189,1589923922,1200301820,1347590402,1376269032,126675024,12453379,160209488,-443875328,-1957313699,518816748,-1207666945,-1706033139,65535,-16484609,647628918,-2097151999,1946159742,505861,95945707,-62486272,84297355,-1181155313,-101253060,-1946265975,788003910,-1181155156,-101253020,-1947187575,-523108794,100917457,378208464,1183383762,-329872918,-1726005064,1183535186,1347590640,652893892,-1727903861,-1528278958,-397389305,1183385342,524335350,-1957670247,1385820230]},{"sector":5,"data":[-362888112,-1727558874,-2065149870,-397389305,1183385310,176063476,-1207602176,65732673,-1996468040,1183579206,-773795578,-804912160,-770274560,-431585024,-1192733047,1385766720,-429996976,38243110,-1957670247,788003910,-1181155156,-101253020,-397389159,1347553075,-1996059160,1085864518,1347590431,652631748,1385760651,-62485680,11284215,6601113,1385822711,118089808,1676169298,-129595130,-1962641665,100922438,-1957691204,100922950,-1706032962,2466,-1962641665,100923462,-1957691204,100923974,-1706032962,2490,-1593542913,1177223356,-1096724236,-163173632,173578832,1996423168,-129594620,12322307,-96040112,12453379,175151696,2122514432,91488266,-352317512,1357827,-1946401143,503645766,1018796288,-1980107008,1183579734,-1406208004,1689884928,-1980107008,1183576134,-773795330,-804912160,-770274560,-498693888,-1192995191,1385766720,-263812272,-1001368935,-1960385954,1385759303,105244752,-1612165038,-96040699,-1726005064,1183535186,1347590640,652369604,1385760651,103147600,2145931346,-129595131,-1962641665,100922438,-1957691204,100922950,-1706032962,2694,-1962641665,100923462,-1957691204,100923974,-1706032962,2718,-1593542913,1177223356,-1096724236,-163173632,-26032,1996423168,-129594620,12322307,-96040112,12453379,-26032,-443875328,-1957313699,216826860,721467041,-1996443130,-1197343162,-1274664192,-62486272,13514495,13383423,13252351,13121279]},{"sector":6,"data":[-397389159,1347552651,-1996167704,1451881542,-28931082,-162120807,92218748,1995720251,-196703458,-1946532215,1177288262,33083898,-1962888698,100923974,-1230831438,-13112576,-16725450,-16725962,-16724426,-1962881994,1385823814,87681104,-1813491630,-129595132,737953419,-120457146,11798017,66602635,-1560235002,-443875144,-1957313699,418153452,-1207142657,-1202716670,1344143504,1342181304,782490,176063232,-15567616,1307053174,46433025,460701707,1005174827,175570689,1342220984,1342177976,16777114,268879616,-1207959552,1344143504,-1070903266,1375784122,1347440720,1342203064,1347469355,1342994175,-26032,1183383552,922702074,-390594540,-1070903293,1402622032,184549379,-1203669568,-1202716608,-1706033112,3277,-113015,79170678,1183535104,-1202708738,-1706033112,3134,-1957642197,1344208454,503353528,269531216,-26032,-840433664,-9901579,-1559476597,-4718432,-17665,1996443730,-26100,-1365049344,-1340700416,209125120,1342177720,503353528,1030224,223058512,1996423168,1354771450,16777114,-62486272,1354771280,-407351216,12079107,2006601737,-16777204,-1070859146,9484368,-373796834,12079107,-6664191,-16776961,1996487286,-26108,350945280,384321165,-26032,1183645696,-1706027288,65535,384321165,1354771280,-6664112,184549631,-2525760,-68621194,46433026,-1034033781,-1957363702,183272428,1342193848,1342184120,16777114]},{"sector":7,"data":[-62486272,-1866934133,373786880,-1961336948,1204288606,-1962934256,130546782,1586167811,71732220,-1962260599,1204288606,-939524350,-64441,-1202667477,1385791232,-26032,1586167808,239569404,-939762037,3143,519849611,-26032,-1073020928,-1070922635,1996441067,-25860,1996423168,243716,-163148464,95965206,-6664192,-16776961,-1866988426,-1924129280,1343682118,16777114,-28931840,-965427189,1342469887,16777114,11182848,-1962933832,1438866917,12119179,-1960719060,-41941922,-2147255284,-1070396179,126469514,1200210314,-1983477246,-443874233,50013,0,0,0,1942235995,920188696,656953,959844215,1979714566,212022788,-2061568,-1140870941,-1329856848,-1705993987,65535,16777114,1958742784,772196139,-1996488704,1459625998,1381172822,855713768,-6664000,1459618047,16777114,1958742784,-46209017,27322448,-850591816,-1957313759,-18196,-1957313699,-18196,-1957313699,1354771436,-1710983425,3655,-1017256565,-1192457387,-1957691328,1861682246,2124042246,-1962934258,1438866917,1996483723,108461828,1342193848,16777114,1575324416,-326412861,-1710983425,3725,-1017256565,736922453,1996443840,198744580,-443875328,-1957313699,74907628,865946,1575324416,-326412861,-1710983425,3830,-1017256565,-2081649835,-1070923028,71732048,-1706012007,65535,-1929492855,735087578,1575324608,-326412861,-16585597,-6683018]},{"sector":8,"data":[-1996488449,-628294074,-1070870389,-1017256565,-1275051,-6683018,-1962934017,1438866917,1996483723,-26108,-1073020928,28837236,721611520,1575324608,-326412861,1347469355,16777114,-402345728,-443874901,2126234461,-2063892224,1393062656,1130043391,-1007490237,-1207958341,567100416,-1024062862,-2147126144,1073762959,-1007912629,567095476,-1023396701,3016334,741772070,889239552,512303565,109838370,521011236,-1171980104,567086544,1947110198,908256000,7734981,-617358708,1914634038,-385649920,-986251703,-1946125818,244698,1914634038,-1021372928,855643321,1384642267,74711296,567099060,-1007492541,-387151019,1996423504,18147332,-1017256565,1475119957,-13413546,184960651,-149783104,72780759,-621291273,-1996488675,1451820614,172395268,310231051,1452005367,-136775928,7642,-1995815287,-1073018794,1317738101,105286408,-235417037,1183570059,-1947076860,-1875055661,1317787787,106334984,-788248949,-774254101,198758890,-134973989,871402481,-11513134,1996425846,14477320,1996903995,990409223,58065990,855764611,197561298,-150506241,-2082932774,1583022298,146955615,-326413056,-617392553,184960651,-149783104,72780755,-621291273,-1996488675,1451820614,172395268,310231051,1452004343,-136775928,7642,-1995815287,1317734486,-1948125436,138841080,-503844725,-141100541,-134019482,-963913845,125098763,-654845193,1577114243,146955615,-470994432,-773140218,-1006968104]},{"sector":9,"data":[-387151019,1021837416,1961102077,75399178,-972786432,519963718,2234053,-853213000,243998497,132317300,-16776517,-1962905058,1286865990,-2068110899,-2063892224,1393062656,1130043391,-1007490237,1458342741,-1962260853,-503905202,1183570059,-135230712,-1764097055,50751223,-1949070376,-1034068282,-2068119544,-2030337792,1393062656,1130043391,-1007490237,16973883,196970,16973931,199847,16973932,199822,16973937,69080,16973825,199832,16973938,69168,16973829,69213,16973830,69228,16973831,132096,16973826,69276,16973834,196770,16973948,133090,16973828,69300,16973839,199686,16973825,69327,16973841,66541,16973842,67085,16973843,69351,16973844,200193,16973829,196810,16973830,69393,16973849,199623,16973834,133178,16973843,196799,16973836,133029,16973844,69115,16973854,199775,16973977,199753,16973980,196890,16973857,68642,16973875,133101,16973869,68489,16973878,196825,16973863,196853,16973864,199602,16973865,199810,16973866,68957,16973884,68973,16973885,199950,16973997,199521,16974000,196993,16974004,131509,16973885,199974,16973881,131464,16973890,131554,16973893,197135,16973890,197594,16973892,197418]},{"sector":10,"data":[16973896,131612,327760,16714775,327681,16715005,16973826,69085,16973915,198488,16973901,198539,16973902,197655,16973905,196742,16973911,196633,131160,16714778,131073,16715010,1953300482,1819506547,0,5,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2122252288,65921,0,0,0,0,0,0,0,0,0,254803968,256905032,1953304476,1819506547,1668115310,257,4194304,524352]},{"sector":11,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-65536,-1,-1,-1,-1,-1,-1,-1,-1,-12583169,-1,-12583169,-1,-1,-1,-1,-1,-469762105,-1,-469762105,-1,-1,-1,-1,-1,-8388609,-1,-8388609,-1,-8388609,-1,-8388609,536870911,-8388609,536870897,-8388609,-15,-8388609,-1,-8388609,-1,-8388609,-1,-8388609,-1,-8388609,-1,-8388609,-1,-8388609,-1,-8388609,-1,-8388609,-1,-8388609,-1,-8388609,-923649,-8388609,-923649,117506047,-1,-1,-1]},{"sector":12,"data":[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,536870911,-1,536870897,-1,-15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-469762105,-1,-469762105,-1,-1,-1,-1,-1,-12583169,-1,-12583169,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1953366015,-2143289344,285218310,1258328064,0,327717,524356,131071,1300385794,1869767529,1952870259,1852397344,1937207140,589824,23,-65536,1342177283,1869374338,27491,917504,524432,131071,1132613634,1801678700,2490368,4194338,-65528,1342308353,1919243906,1852795251,808333600,83886129,-2080362752,-16774912,33554943,1866695248,1769109872,544499815,959520937,539768120,1919117645,1718580079,1866670196,3043442,989869312,234889216,16777472,-2142240000,27471,1648429056,779384175,1124412974,1801678700,1952539652,1867782753,1634541679,1663072622,1801678700,1919885427,1835627552,779317861,0,0,1828716544,1937208180]},{"sector":13,"data":[-524222464,-521403580,-512817537,-498595416,-478933835,-454029409,-424144290,-389606167,-350808263,-308143800,-262137072,-213181300,-161997384,-108978543,-54780140,8000,54796052,108994193,162012600,213195916,262150928,308156744,350820153,389616873,424153694,454037407,478940341,498600360,512820863,521405252,524222464,521469116,512883073,498660952,478999371,454094944,424209826,389671703,350873799,308209336,262137072,213246836,162062920,109044079,54845676,57537,-54730516,-108928657,-161947064,-213130380,-262085392,-308091208,-350754617,-389551337,-424088158,-453971871,-478874805,-498534824,-512755327,-521339716,-1375730939,-1845427456,-1342176496,1409352448,-1275067644,-268369152,956302085,67175168,1107296773,-1308556544,1140851213,-201260288,1157628420,1308689152,1023410952,-2063531264,1040188168,-452918528,1073742595,-838794496,1107297024,-117374208,1140851456,939590400,1342177806,-1761606400,16842497,-704641792,33619717,2063663872,1509949713,-1677655296,1241514761,251724544,1375732237,486605568,1526726932,620823296,1308623627,1107362560,1459618308,-1258224896,1325400843,-1560214784,1358955280,-2113862912,1526727178,-301923584,1560281600,-1124007168,1426064144,1510015744,1459618562,419496704,1476395776,-1711275520,16842497,-620756480,33619717,0,0,5,0,0,-65536,-65536,0,8454145]},{"sector":14,"data":[1464909,89,32,65535,-333119488,0,64,0,0,0,0,0,0,0,0,1024]},{"sector":15,"data":[1409297384,544434536,1735357040,544039282,1970365810,1936028265,1667845408,1869836146,1461744742,1868852841,221148023,240788490,-855002081,1275181089,8653]},{"sector":16,"data":[279886,19399208,191785539,655366,402653984,71148,655360,262154,4194580,33226896,34472454,1872,262192,0,0,0,406126727,406188400,129368629,129495408,128254674,128315696,597754712,597881136,113575346,113701168,383976998,384102704,426379175,426504496,281610581,281735472,64883314,65007920,103156406,229507089,-2147287036,2,186187776,-265289663,336,190447616,-265289663,344,-2147221504,1,194707456,-265289716,355,-2147155968,11,195493888,-265289692,32776,197853184,-265289720,32775,198377472,-265289717,32774,199098368,-265289712,32769,200146944,-265289708,32777,201457664,-265289719,32778,202047488,-265289676,32779,205455360,-265289710,32771,206635008,-265289719,32772,207224832,-265289719,32773,207814656,-265289715,32770,-2147090432,11,208666624,-261095414,32769,209321984,-261095413,32770,210042880,-261095411,32771,210894848,-261095414,32772,211550208,-261095413,32773,212271104,-261095412,32774,213057536,-261095413,32775,213778432,-261095412,32776,214564864,-261095418,32779,214958080,-261095371,32777,218431488,-261095422,32778,0,1313817351,1280266836,1296126730,1229278288,122572611,1414418243,122441554,1414418243]},{"sector":17,"data":[5001042,65536,786440,100663313,1314014539,1191398469,1426344260,139609427,1113146699,1146241359,-855507187,56623423,104844545,-855569387,149619007,121621761,-855572480,146080063,71290113,-855572480,61998143,71290113,-855569613,297731135,71290113,-855566340,1599,104844545,-855568082,2111,-14483455,71290113,-855572412,67044415,71290113,-855569545,302777407,71290113,-855566266,125305151,37735680,-855637803,52562239,155176192,-855637479,575,155176192,-855637107,831,54512896,-855637459,65798975,54512896,-855637085,21889855,37735680,-855637061,98960191,20958464,-855632921,206438719,20958464,-855633757,324075839,20958464,-855632984,343540031,20958464,-855632560,46205247,155176192,-855638016,360382783,88067328,-855636704,1343,88067328,-855636658,5571903,88067328,-855636794,27919679,88067328,1398,1852397333,1937207140,1852793632,1819243124,1851879456,27749,1145323788,1414418246,1279537201,201330503,1178879041,844385871,1196180528,1091305488,1330005060,808670286,289885252,1145113344,1414680644,1279537201,117442119,1296912195,205999172,1145113344,1414680644,1279537202,184551239,1346651201,808670290,138890308,1380976128,1196180564,1124728834,1162759759,1279546435,201329479,1179403588,827608655,1196180528,1141637138,1330007109,808604750,323439684,1162087168]}],[{"sector":1,"data":[1414680652,1279537201,184551751,1347175748,808604754,172444740,1095763968,1145849166,214860,1329742088,1279546453,134219079,1330401091,1196180562,1124990980,1381256783,1314344015,1330794564,134218051,1398099789,1196180549,1124728852,1414419791,1279547730,3399,2004055149,1802398835,1802134381,-2081649835,1996450028,1354771212,504001208,5290064,2857552,1996423168,112652,221821008,1354256414,1083854848,-16777216,95947894,381177856,-1202708981,-1706033072,85,-1207142657,-1202716665,1344145794,1342197944,27290,209125120,1342179512,504139448,5290064,8362576,1996423168,636940,228505680,146296862,-1801826304,-16777216,179833974,-524791808,-1202708982,-1706033144,175,687747,1996435572,178188,-1404662448,1354256406,932859904,721420289,1183666368,-1202710868,1344146744,1343238328,73626,-373282048,1996423820,-26100,-1073020928,1183527796,149332748,503320760,221821008,-1070903266,1375784122,1347440720,1342203064,1347469355,1342994175,-26032,1183383552,1975520170,1354771225,504001208,221821008,817385502,-6664176,-385875713,1996423630,243724,-1404662448,1354256406,-1936044032,-16777215,-1070880138,-26032,1183383552,-1070903042,-1202696112,-1202716660,-1706032832,368,738096895,1183666368,-1202710868,-1202716660,-1706032896,439,210517635,-12553216,79170678,1183666176,-1202710868,-1706033072,644]},{"sector":2,"data":[-1700104449,460,178256,40606288,1183383552,-1070903042,-1404662448,196628502,12079104,-1667608575,-1207959550,-1706033127,515,913686539,-1700104449,527,1358841481,1342178232,1342177720,125594,-25755904,1342177720,33200720,1996423168,309502,112720,35691088,565706752,-6664192,184549631,-15108672,1637526134,-1996488702,-1202651578,-1202716662,-1706033151,65535,503329208,2799696,666390558,-1924129280,1343663174,1342179768,16777114,-1404662528,-26032,1183645696,-1202710868,1344143414,16777114,1975520000,-1435041981,16777114,45633536,-6664192,-1996488449,922746438,196610278,1183666176,-1202710868,-1706033072,65535,738096895,1183666368,-1202710868,-1202716664,-1706032896,65535,-5605633,-6683530,-352321281,-1740206796,244338710,185295080,-14256704,-1928714698,1343658054,16777114,1975520000,-1740206828,-6664170,-1929379585,1343658054,16777114,-1740206848,-1070903274,-1706012592,65535,-1183465461,168312451,-16157696,-1710618570,800,120864387,-16157696,-1710803914,65535,124403331,-16157696,-1710790090,816,168836739,-16157696,-1710616522,832,164904579,-16157696,-1710631882,851,209731203,-385649408,922746235,-6681472,-385875713,-443810449,705117,1167087646,518818645,-326903666,205949732,1946158653,-385649029,20775227,1024291840,477364226,1946158397,14805284,-16222465]},{"sector":3,"data":[1996424822,-26098,-1070923776,20572569,721502696,-6664000,-352321281,242679789,-16353537,1996425334,20506634,1996479723,-565801714,-6664170,-16776961,1183649398,-397404450,1996423743,-565801714,-6664170,-352321281,242679733,-401967361,-1427439053,204226179,-16223232,-6681994,-2097151745,1946159742,142508949,-7375616,-1710471626,65535,922715371,10095112,-16777213,-6680970,-1996488449,-1202660282,-1706033147,65535,-6664110,1375731967,-26032,144900096,242679562,-1696827649,65535,170276607,1342182840,1347469355,-26032,904462336,172395519,1946160189,242679574,-15960321,1996425846,108461832,16777114,-11080960,-1207376330,1385758722,242679632,185087743,184956671,-555217264,-17110768,687747,-236387467,641138686,82614794,-437714944,998910,32047989,1392127,1374225269,1457663,289265268,-385649407,306052883,-342985727,49120148,1562371467,707149,-1275051,-1710610890,65535,-1017256565,-2081649835,1187448556,-1962934020,-995948986,138840838,-1962345821,-1073019834,20787316,1023964160,645136386,-16715543,-1207294410,-1706033150,1333,170276607,1342177720,16777114,973522688,-385875712,1889599693,-1037330169,-930350895,-1727510901,-120470997,1183433003,159162878,-775804007,-1949791240,731448902,737726914,-96040511,16678531,1187448189,-2097151746,2097216126,-96024827,922681344,1996425766,-92864514]},{"sector":4,"data":[124794623,159135487,-1705983957,65535,3817091,-2090306560,-16732610,922690421,45615654,-390574080,-1070903293,-459648944,184549381,-1207601728,48955393,1183432747,641138684,112650,-26032,726663168,-1706012480,65535,108314635,16547459,922687348,381159246,-1202708981,1344146744,1342189752,50586,973522688,-1962934272,146955749,-326413056,-1962742653,113401317,-326413056,-1962611581,19727430,670976,1038680950,-1816132863,1554513710,-432603385,440328,-11513191,922682998,922683918,244320780,-384883480,922681624,62392550,1347590400,-16353537,-16197578,-351742410,-432603167,309256,-11513191,922682998,922684004,-890566046,149305087,-1728052296,1996443730,540475142,506920712,-4986104,-1207376330,1385758724,108461904,170538751,170407679,922721515,129501414,1347590400,-16353537,-16154570,-351699402,-432603259,571400,-11513191,922682998,922683628,1843988714,-432603137,636936,-11513191,922682998,922684448,1441336350,-432603137,702472,-11513191,922682998,922683178,1038681896,108462079,103578,-28931840,505936,-25755824,1354771280,474778,1975520000,112645,-1070923029,-26032,787152896,149305087,-1728050248,1996443730,1949761286,1916206855,-17372921,106563133,112592497,115672781,121898773,111085192,-443873539,311901,1167087646,518818645,-326903666,205949702,1946226749,17906952]},{"sector":5,"data":[334047860,112641,128162384,1183383552,-6663942,-16776961,-1766322570,1996443648,-25862,28835840,15657216,1024083595,729022465,1962934845,13560067,1962972733,242679781,1342215864,1343125247,532122,1975520000,112645,-1070923029,-2084377776,822334,28839029,204251904,140352080,-1070923776,2130884688,-1706012007,2155,141662800,1996423168,9877518,-26032,1183383552,-1701162758,-1207959545,1344143444,503333816,-92372144,-1207602176,65732668,-1946140488,-1706011942,65535,-2080618871,822334,-1070920843,1342975139,261018,1354771200,-1719729992,-6664110,1342177535,16777114,-58817792,-16091904,-6680970,-352321281,-18411,1751120,1354771280,503340216,73308752,1996423168,1354771214,577178,-15800064,-310132693,535137026,181030237,-1873273344,-326412987,-2116514274,17894526,1996427637,112654,-26032,28835840,-2130056448,17828990,-1070861196,-1962742397,1297948645,503319242,1430622296,-1910575989,619480024,1024214667,427032848,-924253322,146689,255663220,1025864704,57999381,-352255767,242679560,16777114,-373282048,1996423623,-26098,28835840,28961024,170276607,504207032,1354771280,16777114,242679552,383665805,63412816,1996423168,-562626802,-1864337665,26798094,-1928431873,1343675974,253850,-1195382016,1344145184,-16222465,-6683018,184549631,-13142848,-1097200010,-1996488695,-2091852730]},{"sector":6,"data":[47166,28837237,721611520,12100544,-401698736,1996423720,-596181234,647578,-1137246464,68196870,1996423168,168270350,1183383552,1996443868,142016270,-1710852353,65535,-26032,1996423168,-596181234,281754,-12130048,-15829249,1996425846,142016262,16777114,-1371634944,58064640,-54295,1838812790,-1996488694,-11477946,-4714890,-4330497,-1710631882,2616,1342179000,672154,-1706012160,2639,-16132957,-1710456778,1051,1342178744,678810,174891776,174986889,1050300498,-1560281084,146279552,815419392,-1560281084,378079478,-974583560,242679806,271258,-599357184,17464963,-1202702475,1344146304,209729279,779674,-1237417216,225705984,-1193511169,1344146304,798362,-1237417216,91553792,-352321096,-1547687166,703135926,176063487,-385649662,-957808864,-401698808,1996425359,-401698596,233374084,18038271,339580788,-385649407,20840206,-385649406,54394584,-385649406,887750277,49120254,1562371467,707149,1167087646,518818645,-326903666,142016260,150484735,150353663,783770,142016256,1342177720,786842,-62470400,1996423168,124565512,-4698082,1183535359,-754732548,180618720,632836126,1687834624,-16777205,-155711370,-1202708982,-1957625857,61996102,1510334675,-1202708985,-1706033115,3099,-2080618753,2080570494,-1371634763,141950720,-1878521624,131196942,16533191,-60912896,-2016943151,-62604]},{"sector":7,"data":[-2080618753,2080832638,142016492,-1377300848,142016256,12072703,568856208,-1371634944,259325696,-16222465,922684022,244318382,-2096832280,-443874579,-900899553,1478361094,-1957345904,-661774612,-1207404801,1344145184,209729279,16777114,142016256,150484735,150353663,16777114,142016256,1342177720,16777114,142016256,503825080,-18352,119584848,632836126,-6664192,-2097151745,1946158718,142016269,503783608,-26032,1996423168,119584776,922701854,244320724,-2096613400,-443874579,-900899553,1478361092,-1957345904,-661774612,1443949699,11419267,-15567617,-1710796746,3185,183514879,16777114,121020672,-1578088823,1183385408,809403388,427032582,120995459,-2096792052,201799214,120995459,-955878144,201799174,121020672,192153145,1996444788,-130613498,-164167928,228956680,1996423168,181712902,922701854,-1986392960,-16777203,28837494,-1785049088,-16777203,2122516086,92081392,-351841608,205436931,1347607180,1358954424,504026296,2472016,231119440,1689845760,121676032,-1980106855,-955826154,62022,-772639093,1954843622,914635019,-1593084665,1178140846,-385649422,1586167996,-1846798,-1928907081,-1873742778,111929358,-772645237,918520803,763169287,385369741,12236880,1905938462,-1929379827,1343682630,385107597,-26032,1183645696,-1924131084,1343682630,16777114,108461824,-1309522293,98620163,1344145104,209729279,689562,108461824]},{"sector":8,"data":[1342177720,728474,108461824,150484735,150353663,725402,108461824,385107597,-18352,-230257840,-523041871,503762949,2472016,188979792,-1365180416,-230278912,1996428405,-230257914,-523041871,503762949,177838672,1988820992,-1947807246,-1996015996,-16026492,2122576454,58525426,-1946218007,916713542,-62485753,1577533603,-1962742397,1297948645,503317194,1430622296,-1910575989,149717976,637951684,163713,-385649663,-2094661396,1946748031,14870787,11419267,-11176705,-1710610890,3989,1358448265,170276607,11417343,16777114,-1373730048,-941371136,-16026489,-1375287297,-256,244381814,-141336,-1207294410,-1202716670,726664168,-1706012480,1471,170276607,-1694992641,2477,956780705,1963738630,1095711,248420944,11075584,-2096335744,822334,178340213,-1587811574,1458244336,957018273,1963738630,1095696,250059344,11075584,-337677184,168468794,205915705,280500853,177885184,-1459617777,-881491968,210517635,-1591970816,451610300,956742817,1963738630,1095700,-26032,11075584,-1583123072,1185089360,-373282036,1589903738,2139170310,1962999810,122724848,205915705,-257881740,1174812938,-1579256564,1183383726,106874106,71797542,1962943805,10676483,1946166845,2571535,-1394015371,2637056,-1242863500,11419267,-1592691201,104400720,58002502,-1207922967,300613635,956780705,1963738630,440325,146277355,-96040704]},{"sector":9,"data":[170276607,624538,-129595136,16533191,106873856,654067339,1996900153,14280963,75465510,-385649627,1325334660,122724858,205915705,-1070900107,1048796139,1979646126,122724622,205915705,95961716,-1582372096,104400720,91556934,-352319560,637088,1048812523,1979646126,122724759,205915705,1927873396,-339727361,-1371634812,57999104,-1577091607,104400720,-1099625402,-385875272,62455659,-96060672,1352733822,1174812935,-1207601908,65732610,-1996487240,1589967430,2139301382,745875204,-1577433345,104400720,91556934,-352320840,374787,2113553979,122724627,205915705,-1070922635,62391275,-96040704,-493825,-16112074,-694486410,-16777207,417987654,641138687,-126419190,955546,112640,-1962742397,1297948645,503317706,1430622296,-1910575989,216826840,-1207273729,-1706033143,4305,-6664110,-1996488449,1451881542,175570934,1342179000,664986,-1706012160,3254,-1980217719,1996487254,-734593270,288135689,1183383552,108954620,-385647360,2122514693,58589702,-1711211287,4626,303602256,104529920,259328550,122697471,1189786,122724608,-15972701,-16305098,-1710790090,4461,-16091393,-16318410,-16317898,-1593359818,103483142,-11532542,721892406,-11513664,-16301514,-1207483338,-860225504,-1706012160,4513,120862463,168834815,1194650,175570688,117978879,118109951,121779967,721882785,1342638598,120862463,1347469355]},{"sector":10,"data":[121779967,121911039,-1174396744,1347551436,1207962,175570688,721880225,1342706694,117585663,135542527,721882785,1342636550,-1174396488,1347551472,1174938,175570688,117454591,117585663,135542527,721882785,1342636550,-1174396488,1347551472,1234842,175570688,117454591,117847807,-2097083415,2097350270,18344195,84311683,250151806,-26111,-1706033152,65535,170264123,922685301,-1231418640,-1593835511,1185090288,876019468,1781989127,310090247,1996423168,272039690,305594119,1110900487,118923527,118621739,876019536,1354771207,1110900560,1144454919,2144263,1375784122,313498192,922681344,922683188,-6682096,-16776961,922684022,922683160,922683162,513869634,436611847,922701831,-1070921932,922701904,922683202,548931396,13416960,-6664110,-16776961,346098294,335948551,922701832,922683154,513869844,302394119,565727239,15776256,-6664110,-16776961,922684022,922683152,922683154,513869844,302394119,565727239,15776256,463097938,-16777197,922684022,922683152,922683158,922683202,565708972,15776256,-912633774,-16777199,1996425846,-193527818,1097626,175570688,-362753,-660932490,-16777200,1996425846,283810556,-310181888,535137026,113921373,-1873273344,-326412987,-958886370,738564358,1139281552,94216192,121021336,-1744462688,-1610139485,-1550318177,-310180038,535137026,1439386973,113699979,-1876294247,1632270]},{"sector":11,"data":[-1744461920,-1610138461,-1550318178,-1667168450,121676549,-1017256565,1167120524,518818645,1465309326,-1962567519,-1962567138,-1962566642,-133849578,-1734139443,-1709274875,-1676769019,-1642690299,47109,-789118349,-310157729,535137026,516640093,1430622296,-1910575989,82609112,-1996077429,1183579206,179935496,-2131101952,1586180290,-15234820,1183579206,-101213944,185091721,-1948287040,130481246,108461824,-2097148952,-443874579,-900899553,-1957363708,116163564,71732054,519849609,-26032,1174601728,1183402236,-1961038854,126549086,-113016,1988885574,-2012968198,-2192633,1183513166,-1962440450,1178204742,1591505660,-1034033781,1478361090,-1957345904,-661774612,1443425411,638082756,-1960429685,-970259385,653805193,637945739,-1996339413,1996487238,108461836,1392794,-62486272,1443657471,638082756,-16615425,922744950,565708972,15776256,-275099566,-16777196,-1000993674,-1960441762,103482951,-11532116,922744950,565708972,15776256,244994130,-16777195,-1000993674,-14284706,922681975,1996425236,2210042,1375793338,355834448,1996423168,140428300,71797542,135530027,2013210192,339148546,-92864760,-1174396488,1347551472,1244058,209125120,-1694730497,4930,49120094,1562371467,576077,1167087646,518818645,1996478606,175290374,951603230,-1202708979,-1706029008,1541,-1962742397,1297948645,503317194,1430622296,-1910575989,82609112,-15698177,1996426870]},{"sector":12,"data":[175570700,-16222465,-6683018,-1996488449,-12714938,721974783,244338880,-1946181144,-310117306,535137026,214584669,0,1942235995,920188696,656953,959844215,1979714566,212022788,-2061568,-1140870941,-1329856848,-1705993987,65535,16777114,1958742784,-838416597,-1996488699,1459994638,1381172822,855713768,-6664000,1459618047,16777114,1958742784,-370874361,27322448,-850591816,-1957313759,-18196,-1957313699,-18196,-1957313699,1354771436,-1710983425,5719,-1017256565,-1192457387,-1957691328,1861682246,-1902489594,-1962934250,1438866917,1996483723,108461828,1342193848,16777114,1575324416,-326412861,-1710983425,5789,-1017256565,736922453,1996443840,-26108,-443875328,-1957313699,74907628,16777114,1575324416,-326412861,-1710983425,5894,-1017256565,-2081649835,-1070923028,71732048,-1706012007,65535,-1929492855,735087578,1575324608,-326412861,-16585597,-6683018,-1996488449,-628294074,-1070870389,-1017256565,-1275051,-6683018,-1962934017,1438866917,1996483723,-26108,-1073020928,28837236,721611520,1575324608,-326412861,1347469355,16777114,-402345728,-443875162,515621725,620462342,1393062662,1130043391,-1007490237,-1207958341,567100416,-1024062862,-2147126144,1074131599,-1007912629,567095476,-1023028061,97388174,741772070,889239552,512303565,109839810,521012676,-1171980104,567088608,336497462,908256006,102106821,-617358708]},{"sector":13,"data":[304021302,-385649914,-986251703,-1945757178,244698,304021302,-1021372922,855643321,-225970469,74711301,567099060,-1007492541,-387151019,1996423243,1042436,-1017256565,115600690,-657331503,1438907106,1122561163,-29235200,175432714,294528,1187382389,-987824636,-1207582186,567092480,336497439,-1157111034,520028162,1183516178,-850611196,103070497,103086977,-11335565,1128487703,-1144786197,-75430364,141755942,1528299347,-219462845,50353347,51291649,50358784,50625793,50359040,50523137,50359296,50894337,50360064,50516737,50360576,18212865,50331904,50519297,50360832,-16542208,50337024,18235393,50332928,-16628224,50337280,18246913,50333184,-16662528,50337536,18250753,50333440,-16723456,50337792,-16220416,50338048,34810113,50331904,34394881,50332160,18263041,50334208,-16124672,50338560,51144705,50363392,-15696128,50338816,-16134144,50339072,50938113,50363648,-16176640,50339328,-16179968,50339584,18269185,50335488,-15836928,50339840,51735553,50331904,34813697,50333952,18276097,50336000,18282241,50336768,51777793,50332928,50571009,50333184,18292993,50338048,51283969,50334208,50669569,50334720,18221825,50339328,33830657,50371072,34917121,50339072,51452161,50337280,51446785,50337536,50419713,50370816,50801921,50371072]},{"sector":14,"data":[50453761,50371328,34693121,50340608,50414081,50371584,50796801,50371840,50437633,50372352,34908417,50343168,50941441,50341632,50948353,50341888,50397697,50342144,50715137,50374912,50505473,50342400,16923905,50346496,17319937,50346752,50859009,50375936,51448321,50343424,50337281,50376704,51427329,50377728,50638337,50345216,50699265,50345984,50865921,50379264,34221057,50348544,33755137,50349056,34216961,50349312,51267585,50348544,51417345,50349056,50860545,50349312,16930049,50353920,50855425,50349824,17650433,50354176,17654273,50354432,18104833,50354688,18214145,50354944,50952961,50351104,51169025,50352384,51241473,50352640,51182081,50353408,51747585,50353920,50897153,50354176,50513153,50354688,50835969,50356480,50846977,1828741632,1937208180,1835757164,1167087646,518818645,-326903666,309252,1940048,-2136801280,1354771207,10650,206873344,1342179256,13722,210412288,1342179000,16794,148546304,1342179512,16777114,183411456,1342193848,1342184120,16777114,-62486272,74825739,1793835051,-1202667477,1385791232,-26032,1586167808,239569404,-1207535873,1344143460,16777114,-60912896,-1207154807,1200160876,341806098,-1996077429,1204226631,-956299760,-956300537,-64953,-16496697,7649535,-1944696951]},{"sector":15,"data":[-1014294433,-6664162,184549631,-6458176,-6620042,-1207959297,-310181887,535137026,46812509,-1873273344,-326412987,-2082959842,-4709140,-17665,922701906,127535334,-1560281087,378079978,-4715796,-17665,922701906,530188518,-1560281087,378079614,-4716160,-17665,922701906,932841702,-1560281087,378079016,-4716758,-17665,922701906,1335494886,-1560281087,378080286,-4715488,-17665,922701906,1738148070,-1560281087,378080006,-4715768,-17665,922701906,2140801254,-1560281087,378079090,-4716684,-17665,922701906,-1751512858,-1560281087,378079446,-4716328,-17665,922701906,-1348859674,-1560281087,378079470,-4716304,-17665,922701906,-946206490,-1560281087,378079566,-4716208,-17665,922701906,-543553306,-1560281087,378079842,-4715932,-17665,922701906,-140900122,-1560281087,378079846,-4715928,-17665,922701906,261753062,-1560281086,378079262,-4716512,-17665,922701906,-6682394,-1560280833,378079396,-4716378,-17665,922701906,1067059430,-1560281086,378079400,-4716374,-17665,922701906,1469712614,-1560281086,378079784,-4715990,-17665,922701906,1872365798,-1560281086,378079788,-4715986,-17665,922701906,-2019948314,-1560281086,378079756,-4716018,-17665,922701906,-275117850,-1560281088,378079466,95946988,-1550168064,-1560281086,112723988,-1348841472,-1560281086,45615276,-1147514880]},{"sector":16,"data":[-1560281086,347604802,-946188288,-1560281086,330827588,-6664192,-1560280833,-1070920564,2147334224,-1706012007,745,721906339,-55029568,1347590527,16777114,168862464,-1710852353,787,1358710409,16777114,120890112,-16353537,748354678,721420291,1419399360,-1996488701,-1924072378,1343675462,16777114,1354771200,-1694730497,893,-1545845109,1183517296,206742504,-150991432,-1559597010,683149692,1378809600,124822284,-1710852353,65535,1358710409,1342178744,275098,-1706012160,65535,966414418,-1560281084,1996425736,-59310330,16777114,105286400,-16298333,-1207376330,1385758721,108461904,183252735,183121663,16777114,170304256,1979711293,-339727612,112643,-1962742397,1297948645,503318218,1430622296,-1910575989,82609112,-1207535873,-1706032752,991,-16297821,-1699215754,-291876863,-1560281085,1996425968,27572230,66951760,178454528,108461834,1342290104,16777114,113025792,-1559801695,1048775750,1962937484,-1137246436,-1001466,-1137246384,-6664186,-2147483393,1347615970,16777114,440320,71670352,1347551232,283546,164930304,1342178744,286618,174891776,174986889,-6664110,-1560280833,146279552,-6664192,-1560280833,378079478,330828024,124035840,-1559798621,-1264384068,128754439,-1560272968,1621297000,130065159,-1559775069,113706928,6424490,-1560253768,-1365047462,7256071,-1559776605,1991771998,123904768,-1207454045]},{"sector":17,"data":[-1163722630,124166919,129894087,-1900543870,119317248,-1207495517,413335686,118530823,118621895,113704972,2230046,-1560275016,379782938,108461831,503818936,83597904,1996423168,123385862,144330782,-16777211,-1296562570,-1706025465,1301,-1207535873,1344145250,336538,108461824,503823032,87005776,1996423168,118536198,1016746014,-16777211,414713462,-1706025465,1532,721884321,-1559805434,279119640,145531143,118621697,50796193,1208527878,-1593369949,103352492,330827550,181838592,-1559572829,-492631354,114991878,-1207512413,-626851809,181576458,-1559573853,-559741210,114729734,114296519,414711824,180658944,-1207511901,-660406244,180921094,-1560271688,-593294644,2668550,-1559830365,113707728,3147492,181667527,113705010,4066008,-1560262472,77793036,4241415,-1559820125,113706752,788226,118359751,397934626,118137600,-16316765,-793246090,-1706025466,1545,-1207535873,1344146116,399002,108461824,503765176,102996560,1996423168,181188614,815419422,-16777210,-524810634,-1706025466,1597,-1207535873,1344146132,412314,108461824,503775416,106404432,1996423168,118011910,-6664162,-1593835265,103483140,144901954,117482247,17345697,-1593376250,103483146,-1556084564,-1398733050,235284744,227981319,922701854,922683088,922683090,922683108,-1315305754,-1207959546,1344146304,1342187960,1342197432,1342188216,1342199480]}],[{"sector":1,"data":[16777114,108461824,504070328,115579472,113704960,6948640,119801543,113705090,4982562,119932615,1996423256,119584774,-291876834,-16777212,-1207376330,-1202716666,1344145346,1342197944,16777114,-26112,-1917321216,-1202708992,1344143485,1342356664,470170,91761920,312727799,10926091,-1783082978,-1202708992,-1706032652,65535,-150738899,113157080,168441599,1342177976,1342228664,1342484664,-1705983957,1892,112998143,1342177976,1342203064,1342407864,-1705983957,65535,168441599,1342177976,185743103,1342177720,495258,-1137246464,178182,-1103691952,112646,-26032,2025324544,302394117,-6664181,-1207959297,103482344,-1706031426,65535,-1962742397,1297948645,4391626,19791874,262399,21364738,327935,24510466,393471,26083330,459007,27656194,524543,29229058,590079,30801922,655615,40239106,721151,41811970,786687,22937602,852223,32374786,983295,33947650,1048831,5308675,327681,35520514,1114367,37093378,1179903,12779779,458753,38666242,1245439,18219010,1310975,117309443,1704191,69140739,8847363,69796099,8912899,57147651,10092546,128450819,1310723,36110595,3342337,127598851,11010051,118554883,3735553,50135299,3407874,6947075,11337731,8192259,11403267,47710467,11468803,116982019,11534339]},{"sector":2,"data":[43450627,11730947,56688899,11796483,11993347,3735555,57606403,4325378,125370627,4063235,122421507,4194307,49545475,4325379,51052803,4456451,110559491,4718595,10616837,65791,16449541,131327,14876677,196863,19595269,262399,21168133,327935,24313861,393471,25886725,459007,1179907,5701634,27459589,524543,29032453,590079,30605317,655615,40042501,721151,41615365,786687,22740997,852223,52494595,6094850,32178181,983295,33751045,1048831,35323909,1114367,60621059,5832707,36896773,1179903,63963395,5963779,38469637,1245439,18022405,1310975,10944514,65791,16646146,131327,15073282,196863,113115395,6750211,1167087646,518818645,-326903666,12761172,-1128771554,726670848,-1298509632,-1996488704,-1072976826,28837237,721611520,103850944,503369656,13219920,-944222178,-1202708992,1344146166,1342178232,26266,14465024,-692563938,-1202708992,1344143572,503803064,243792,8624720,-357040128,-1202708992,1344143588,503374264,122861648,129519646,-1600499712,-1207959552,1344143608,503378616,15710288,1052266526,-1202708980,-1706033145,65535,503382968,16627792,-1070903266,-26032,1183383552,1958742956,81162,37558644,-1203538944,1344145128,503818936,15112784,-256376832,-1206719738,1344145136]},{"sector":3,"data":[503818936,16095824,-390594560,-1202708986,1344145330,66714,116963328,-1162325986,-1706025465,277,-122149909,-1202708986,1344145322,74906,115914752,-1296543714,-1706025465,65535,-351866696,641631183,292814858,170276607,1347469355,1342177720,16777114,49120000,1562371467,1478413133,-1957345904,-661774612,-15668093,28837494,1872384000,-16777215,45614710,-6664192,-2097151745,-16732610,922691188,-6682074,-1996488449,-11472826,-16112074,-1879003594,72542222,170276607,-1695516929,65535,721778872,1342902790,1358055053,120218,18397184,146296862,-1924129279,1343681094,126874,-62486272,721676472,1342619142,1358055053,16777114,-58817792,-1206029312,1344143665,503390392,-230257328,-6664170,184549631,-1207601984,48955393,1183432747,1975520252,108461832,16777114,-18432,1751120,1354771280,503396792,-26032,-310181888,535137026,46812509,-1873273344,-326412987,-1948742114,138218054,-385649152,-1073544983,-1476448621,178324249,105265418,780343669,-2129392878,-938798530,-385647616,113705161,13110034,-2097102615,268877358,113131139,-385647516,113705137,6555326,-1593792279,1178143242,-2095483642,336269830,185745025,58655920,-956264215,-1341451770,8907012,113116803,-1103199984,2114159622,-1106851974,-352091130,168468850,1963345465,305037576,-352257525,-1104248434,-352270330,168468895,1963345465,302416136,-352257525]},{"sector":4,"data":[-1106869841,-352270330,168468928,1963345465,138840840,-351595869,138840882,-351879517,168468778,1963345465,-11081469,-1577096215,1178143242,-343641082,-2097001832,-788350718,-1744639742,251855107,-1962698749,1185089094,45633548,178343936,105265418,312542581,-1593578741,-1202714946,-1706033151,65535,956959393,863307334,-1207142657,-1706033151,1049,-1207142657,-1202716671,103482744,726666002,-1706012480,1472,721778872,1342902790,16777114,-1207047424,103482344,-1706031426,65535,-1962742397,1297948645,503318730,1430622296,-1910575989,82609112,16533191,-62485760,-523041871,503762949,142016336,-1710852353,65535,91537419,-335788405,-62456052,184319619,-4663428,49120255,1562371467,313933,1167087646,518818645,-1957242738,154994246,-385649152,-1073544834,-1476448621,1048774086,1979646126,142016284,1342177976,91034,175570688,-16222465,1637484150,-352321532,-1371634876,830210816,11419267,-13992187,1996425846,-1372127480,-401698816,-6684260,-16776961,2056915574,-16777211,1996425846,108461832,16777114,-1373730048,-941371136,-16026489,105286655,-385831261,1048772860,1962868910,-1371634800,-579076096,11419267,-2719998,1996425846,-1372127480,-401698816,-1209335480,11419267,-2090566656,33599038,1996447103,105286410,-523041871,503762949,87792208,2122514432,208995846,11411083,-2013273135,183174966,11411083,-1879055407,915081014]},{"sector":5,"data":[-422510418,11568267,121013305,-2067331458,1846,11417227,-1132206383,2097153846,-1333490847,914655488,-11015417,1996425846,-18424,-401698736,-1108738350,-1371634944,-411303168,11419267,-2064635,1183517302,-754732794,114296288,1922715678,-2097151995,1963460222,-1373730036,-1847040,-351848825,-1373730038,-1847040,-16304497,-402608586,1996423457,105286410,-523041871,503762949,-26032,1996423168,95197706,1525350400,11419267,-11307777,1996425846,-1372127480,-401698816,512426064,-472842066,192186311,113770495,-65362,-1710590209,65535,-1207404801,-1202716670,726664168,-1706012480,65535,67769579,67765258,75105402,77595770,85787808,-2090990307,-443874579,-900899553,1478361094,-1957345904,-661774612,-16091393,-1710456778,65535,425603,2122529660,897516038,-1207872280,-1202651137,726663198,1347440832,138906,175570688,117454591,117585663,721880225,721879046,1342706694,721882785,-351862266,108954413,-2093646845,2131035774,20375599,-16091393,-16314314,-1593372106,103483156,103483152,-1588590572,103483166,-1202714862,-256245727,-1706012160,65535,-1962742397,1297948645,1426065098,1183575179,212228,71110772,1026520064,57999365,-385835799,1048772795,2114717500,1007077126,-2097151737,17251390,113706621,788284,1342178488,-369113880,1084293271,79272199,200931072,-1592953390,-1181153472,-101253020,225825291,-1727577951]},{"sector":6,"data":[-150892359,1976699897,1010729763,477430279,121519747,-955875811,17251846,1044284160,1434255623,121505479,1307246621,121380491,1050797009,1116158215,-955876095,17251846,1044284160,830275847,121380491,-2020875311,1050870082,-2128418041,856113214,-955875832,-1140375546,1077838087,2080881671,-9901821,121636551,1609107507,1575324671,1426064066,113699979,-1607662183,-1650325706,121151493,-1610244958,-1616771270,127769093,-443875328,-1957313699,-1727609108,1017129733,94347783,-1576583520,1084294558,94151431,16777114,1575324416,50337731,50731265,50360064,-16643840,50338048,50413825,50363648,-16667392,50340096,-16493824,50340352,-16505088,50340608,-16495872,50340864,-16287232,50341120,50558977,50334208,50552833,50334720,50566145,50336768,33977345,50339072,33945601,50343168,50562305,50374656,16784129,50346240,16795905,50346496,16892161,50346752,50547713,50347520,50429697,50348544,50437121,50349056,50385409,50350592,50579457,50351104,50642433,1828737536,1167087646,518818645,1183570062,17841420,289212276,-351177727,242679582,1342181560,-1207933464,300613633,-15829249,280496758,-605532160,736946945,49120192,1562371467,707149,1167087646,518818645,1183570062,17841420,289212276,-351177727,242679582,1342189752,-1207950872,300613633,-15829249,817367670,-1746382848,736946945,49120192]},{"sector":7,"data":[1562371467,707149,-2081649835,1187469036,-16776962,-16193994,1183646838,-1202710868,-1706033072,224,91602955,-352321096,-1983894782,1996488262,15120390,-1404662448,-6664170,-2097152000,1962999422,-432603365,71731976,1183666240,-1202710868,-1706033072,607,91602955,-352321096,-1983894782,1996488262,16431110,-1404662448,429543446,-1929379839,-1705989050,65535,-1207535873,-1924136720,1343663174,80282,-1404662528,1689800726,-1706025469,852,-1207535873,-1924136934,1343663174,16777114,-432603392,309256,-1202695527,1385758725,27040336,1183383552,-432603222,-1449504760,-1560281087,2122517812,175440126,28875344,-1039466496,28837237,721611520,-28931648,149305087,-1727773045,-1037319629,-754973511,734147576,1385775298,440400,-1706012007,65535,-5618039,1342760502,16777114,229417728,16678531,-1706030475,65535,91603467,-352321096,-1983894782,-4653498,-17665,-476426158,-1560281087,-4715936,-17665,-6664110,-1560280833,2122516712,242483454,-1207535873,-1705967617,666,1996426475,112646,-26032,-443875328,311901,-2081649835,1187468524,-2097151746,1946224254,23456003,-1207404801,-1202716646,-1202716659,-1202716558,1344145442,16777114,1614216960,-26102,-1039466496,922708341,1183516902,591108,-1404662448,1354256406,-375762944,184549378,-1207601728,48955393,1183432747,1958743038,142016264,-335544392,142016283]},{"sector":8,"data":[380389005,221821008,817385502,479875072,-16777213,-1070921610,61381200,922681344,-1399190220,-16777214,-1710379978,696,-16713239,-1710596042,916,1342710456,16777114,574521344,1467285512,149305087,268729987,649594229,-1207702784,-1924136890,1343663174,1342210232,16777114,1975520000,112645,-1070923029,201213577,-16026432,-6682506,-385875713,1996423330,-1404662520,951603222,-1202708979,-1706033104,65535,-1207924247,1344145442,212122,-2133292288,1544036799,582492788,-1706025464,65535,-1082074997,1949960225,136493071,1740132382,-1706025469,65535,149305087,-1728052040,1996443730,75399944,-1593215696,378210468,132843686,-1962348895,1376317462,-26032,-1073020928,183051892,108954623,-14846718,-1710410698,925,229390079,16777114,142016256,-1705983957,65535,-1034033781,1478361094,-1957345904,-661774612,-1960645501,272436294,1023898625,292815121,1996432619,1095694,7661648,-352321096,242679575,-16091393,1996425334,1095686,36497488,-1070864661,-1962742397,1297948645,503319242,1430622296,-1910575989,585925592,1024214667,125042960,1946227005,-14357743,817368694,669536256,112640,1996429291,175570702,-16222465,817366646,-538423296,736553729,49120192,1562371467,707149,-2081649835,1187470060,-1207959298,-1202716670,-1706033151,65535,185232035,-15174208,-1650850186,-1996488700,1996466758,1354771206,306074]},{"sector":9,"data":[-11015424,1996424822,43051012,1853210635,174733055,460442,108461824,328346,-1438217984,721843967,563761344,-16777211,-1962351050,50660422,1183666176,-1202710868,-1706033072,1367,91602955,-352321096,-1983894782,-1072955834,1996426100,50567850,837353472,-1435042047,380389005,221821008,817385502,-1885712384,-385875966,1996423448,-26106,1183383552,108461990,1358952632,122566399,16777114,-1502150912,1342177720,394394,1312227072,1354771207,16777114,108461824,1342233784,504114872,91658832,922681344,1183516902,263428,-1404662448,1354256406,-1785049088,184549381,-1207601728,48955393,1183432747,108462078,1342236344,380389005,95722064,2122514432,494207230,149305087,84166283,-1924136955,1343663174,1342197944,381850,1975520000,112645,-1070923029,-113015,-88603018,1183666176,-1706027348,1522,16678531,922688885,1183516902,394500,-1404662448,1354256406,-1533390848,184549376,-1207601728,48955393,1183432747,108462078,1342177720,380389005,110598736,2122514432,242483454,-1207535873,-1705967617,1810,1996426475,112646,33987152,-443875328,311901,-2081649835,1183536876,81162,37581684,-385649408,339542223,-385649664,2122514652,1567949064,-1207535873,726664201,1347440832,16777114,-1438217984,1979711293,12249347,174733055,16777114,-1194816768,1861681281,-1983839318,783854662,-1957683700,1344187462,483738]},{"sector":10,"data":[1781989120,-26102,1996423168,14465036,204388432,-1013297122,-352321536,209125241,1342182584,1342441912,1347469355,114203216,1183383552,-49750,1996429428,1357836,67811408,-1435041968,504094392,37329488,922681344,95946982,1347590400,-2096335105,1963983998,156147977,156243595,-1465841685,-1441363192,-1706012152,894,1946157629,1781989141,-26102,1996423168,112652,33069648,-443875328,705117,-2115204267,-956129556,65094,210517635,-1207143168,748879873,-6664180,721420543,45633728,1347590527,16777114,-6664192,-956301057,16687238,2122747136,-1202710785,1344145442,16777114,2122747136,-1202710785,1344144233,495258,2122747136,-2091903233,1966081150,182499333,-1632107541,1390054413,19438160,-2037579776,1343684478,-8485235,-6664170,-16776961,-1710692298,578,57983499,-2097115159,822334,-1070920843,1342975139,725402,1354771200,-1719729992,530206802,1342177291,730522,-432603392,71731976,1342179589,-14121331,1354256406,-996519936,184549380,-1207601728,48955393,1183432747,108462078,290714,105285888,112720,86874704,2122514432,175374590,-1710852353,2597,1996429291,679906566,-1202710785,1344146744,1342189752,325530,-373282048,922682091,-1550186264,-1929379838,1358921350,1342240696,-25917811,-26032,-2037841920,-2037514372,-1202651266,-1706032277,2344,130472075,40233216,-43874675,-2037559274]},{"sector":11,"data":[1343684478,588442,1652985088,-1924131075,385782406,124885584,-2033778688,-401,-43874675,-26032,-1073020928,518587253,75399938,-972589776,16640390,-2033842709,-1929314842,385737350,75400016,-1207601904,65733485,-1945931080,-1706011942,65535,57982987,-2097026839,16687294,783817333,-1924129268,385782406,159357520,783810560,-1706025460,2533,268729987,468255604,-410612479,646351357,-1667608321,-16777207,-1191237962,-1706032262,2445,-26048887,130472075,647924480,4161791,-1897331851,1921420033,1926773758,25422083,174733055,-150961736,100573358,-1202716543,-1706033150,2624,-8747383,58048523,-1560235287,-2037577110,1343684258,-14252405,-627421154,-1929379831,1358865030,1342405816,655258,-958887168,-2037579769,-1705967966,2586,-1207535873,-1202716652,726664193,-2037559104,1343684258,691866,1781989120,177707530,-930414592,-150961736,67018926,612796865,-1924129025,385782406,179542608,-2037710848,1344208676,704154,1781989120,180853258,-2030108672,-1224737120,2126053158,1570394115,-1996488694,-1946212730,4161752,619250549,646381567,649527295,175479551,350814208,108462079,319130,12314880,174733055,-150961736,100573358,-1202716543,-1706033150,65535,-8747383,-713768949,-1928697181,-1979848058,1358898822,1342406840,16777114,646351104,-2133292033,74711103,-14252289,-14240001,180634,108461824,1342182584]},{"sector":12,"data":[1342439864,-1957642197,520038022,184523344,922681344,1637485162,-1962934266,8501448,-23023881,-2037792509,1344208676,-23951731,2107265046,-1962934266,520037510,-26032,922681344,-2036725142,-16777210,-1912692602,1358853254,16777114,2089191680,2092860415,57999615,-2080534039,16687294,1996428660,1357830,67614800,1354771280,-1365618608,-2097151994,822334,-1070920843,1342975139,472986,1354771200,-1719729992,1167741010,1342177287,478106,-1601795328,1575324670,503317698,1430622296,-1910575989,205949912,1946226749,17906951,518721908,-1207011585,-397410288,28835941,-15602944,1996426870,1095690,24963152,-1070863125,-1962742397,1297948645,503319242,1430622296,-1910575989,205949912,1946226749,17906951,518721908,-1207011585,-397410256,28835873,-15602944,1996426870,3192842,20506704,-1070863125,-1962742397,1297948645,1426066122,-327029621,-950665082,65094,149305087,84166283,-1924136953,385841798,8435792,204380752,-1073020928,28837237,721611520,-28931648,-8747379,783831062,-1706025460,3731,-1207535873,-1924136710,385841798,206477904,2122514432,510984446,149305087,84166283,-1924136952,385841798,8435792,238787152,-1073020928,28837237,721611520,-28931648,-1207535873,-1924136700,385841798,214800976,2122514432,242483454,-1207535873,-1705967617,3560,-2101839893,-1706025469,65535,2055638352,-1202710785,-1706033024,65535]},{"sector":13,"data":[-8747379,1721389078,-1962934258,2055376368,-62486017,1586171371,1547665660,130418037,-1927484672,385841798,-62485680,-6664162,-1996488449,-2037515194,1178206074,-2656772,448267894,-2037559296,1343684474,343706,108461824,1342177720,397978,-443851264,311901,-2081649835,1183515372,81158,37557620,-385649408,104661223,1023964160,1853095943,-2097093143,822334,28839029,204251904,223648336,-1070923776,2130884688,-1706012007,3426,224959056,1996423168,75399944,-1207601904,65732640,1342193848,-1996443672,1048837702,1962937484,-1547687157,-1706030036,3457,-1202667477,1385791232,227514960,-1706033152,3477,16678531,1048803956,1962937484,112652,1342975139,902042,1354771200,-1719729480,-778416046,1342177293,907162,75399936,-15895280,115869814,-28915966,166395905,-402098433,1183388281,-1942060034,192217100,748929067,-1046851572,721420295,12079296,1347590527,511898,-711307264,-2097151993,1946222206,142016267,-1710852353,1149,-1034033781,-1957363706,-2098429460,1996445185,1751046,899152,7518288,2122747216,-1706027265,2485,-8485235,152803920,-1098907648,1962999678,-432603334,71731976,1342178821,-16873843,-2135404522,-627421184,184549390,-1207601728,48955393,1183432747,1975520254,10479875,-1710852353,2080,-1929335831,385842822,242915920,-259325952,-8537472,-1926990756,385842822,53058128,-259325952]},{"sector":14,"data":[-8537472,-1928301510,385842822,59357264,-1550168034,-1929379826,385842822,204388432,1016746014,-1929379825,385842822,-24736432,-1706027266,3917,1400225803,149305087,537165443,431490421,-1207702784,-1924136903,385810054,8435792,133143120,-1073020928,28837237,721611520,-28931648,57982987,-40471,-2037578122,1343684350,504182968,3192912,137992784,-1070923776,-1929341463,385842822,-24736432,-1706027266,3884,-25262451,582504470,-1706025464,3938,-25262451,783831062,-1706025460,2198,-25262451,-2037559274,1343684350,16777114,1958742784,2122747317,-1924131074,385810054,142973520,-2037579776,1343684222,-25262451,-1617276906,-1929379833,385842822,2122747216,-1706027265,3955,-1928956161,1358855814,-8485235,-26032,-1073020928,1776878453,112895,1575324510,1426064578,-327029621,-1799880486,-1202708989,1344144267,503939768,-1404662448,1354256406,-375762944,-1207959537,1344144285,504094392,60602448,-2037559266,1343684392,1342210232,1099930,679906560,-1514647297,983191555,-1996488688,-1946212730,4161752,-2030107532,-1224736986,580583206,-1962934256,-2130762082,359923775,-14121331,282237520,-2037579776,1343684392,-352081992,204388405,61454416,141335120,-661979136,-1207957562,1344146478,591002,679906560,-1202710785,1344146478,1109146,679906560,-1202710785,1344144299,1079706,679906560,-1924131073,1343663174,1113242,61716480]},{"sector":15,"data":[-558346210,-1924129269,385820806,289905232,1183383552,1958743038,-18411,1751120,1354771280,503559608,292461136,-977797120,-1202708989,1344144318,503561656,679906640,-1202710785,-1706033024,65535,-14121331,236624464,-1098907648,1946222376,9627907,-14121331,-558346218,-1706025461,3868,-14121331,-843558890,-1706025469,4364,-14121331,783831062,-1706025460,4380,-14121331,-810004458,-1706025469,4396,-14121331,1183666198,-1706027348,3068,16678531,-659022220,-1202708989,1344144337,-14121331,-6664170,184549631,-1207601984,48955393,1183432747,1958743038,-18411,1751120,1354771280,503570616,313498192,2122514432,175440126,-1710983425,65535,922695659,-6682802,-1996488449,-1202673082,726663171,-1499836224,-16777199,28879478,-1070903296,297114192,1996423168,309418,1354771280,16777114,1575324416,503317186,1430622296,-1910575989,585925592,1024214667,125042960,1946227005,-14357743,548933238,1961381888,112640,1996429291,175570702,-16222465,548931190,921194496,736553730,49120192,1562371467,707149,1167087646,518818645,-326903666,205949730,1946226749,17906951,619385204,-1207011585,-397410240,28835879,-15209728,1996426870,142016266,-1207535873,-397410240,-420806167,-310132693,535137026,181030237,-326413056,-949687165,65094,537165443,1996433269,1357830,-26032,1183383552,-6664032,184549631]},{"sector":16,"data":[-15305280,-1070922122,207657552,-1662451712,108461825,-351379736,75400166,-385649632,1996423398,67614880,1354771280,1301958736,-16777210,-1207376330,-1924136928,1343662662,1342197944,1245338,1975520000,112645,-1070923029,-113015,-424147338,1183666176,-1706027350,4895,16678531,922688117,565709030,1183666176,-1202710870,-1706033072,4923,91602955,-352321096,-1983894782,1996488262,16431110,-1438216880,1520062486,-2097151981,1962999422,-432603366,2275336,-1438216880,1354256406,-560312320,184549387,-1207601728,48955393,1183432747,108462078,1342177720,380257933,202283600,2122514432,158597374,-1207535873,468320255,108462079,1342185656,-16658712,-591919498,783831040,-1706025460,5235,-1928956161,1343660614,16777114,243712,175124215,-1985722877,28875846,-577089536,-1962934253,-936662962,-150993992,51015726,145531336,-939269935,201084553,-1962574135,-1673123391,-150993224,51139118,1183425094,1354771358,16777114,-1504802048,112773163,1378809600,-1580727540,-523171820,1317652483,2127105020,700549893,1996463686,-1636368634,-1952680193,1177265734,1183535266,-1538905176,1354771280,16777114,108461824,1342177720,842138,1575324416,1426064578,-327029621,1187446914,-1962934018,20777542,1026782208,57999362,1023469033,57933844,-2097092375,1963001982,209125149,-402360577,1996423391,14465036,204388432,-459648994,-385875950,1996423365,74907404]},{"sector":17,"data":[-2097102104,1948255358,9562371,1023531496,2138374143,1517600779,1946157373,10479875,-401836289,922683651,599263462,-2037559296,1343684478,1342209208,1230234,1975520000,112645,-1070923029,201213577,-16091968,395971702,-352321515,209125211,-8485235,951603222,-1202708979,-1706033088,3846,922698475,95946982,1347590400,-15960321,-16095178,-1710594506,1784,1946157629,-14554322,1486490742,-352321522,-432603358,374792,-11513191,922684534,922683950,-739571156,722237183,-1969598272,-1962934254,180510181,-326413056,-11080573,347604598,163074048,-1070903292,-1706012592,5503,1034569353,58064895,-16713751,347604598,179851264,1996443652,-1371107926,278548502,-2097151986,1965032574,-1371108073,210679888,368548432,1183383552,-958886996,166395911,1353598605,1451162,199145472,1183666206,-1706027346,5581,537165443,1183007861,-1934097236,-1957683701,1344187462,1071514,65648640,1183666206,-1202710866,1344144360,504114872,899152,370907728,783810560,-239579124,999968771,-1962934250,509656,-189260309,-1924129277,1343663686,503575480,204388432,230182942,-828747776,-1207959530,-1706030034,5936,504114872,389782096,783810560,-88584180,563761155,-1962934249,4161752,783817845,-2091901428,1965032574,228505605,-524811285,1390054410,275356240,-443875328,311901,-2115204267,-956266260,64070,-1202667477,-1706032511,1120]}]],[[{"sector":1,"data":[-8878455,108380171,-369098824,1048772970,1962937484,112652,1342975139,857754,1354771200,-1719729480,614092882,1342177293,862874,66959360,-1070903266,-55029680,-1957683709,520059014,41990224,385718864,-2037710848,1183448952,-27358210,1962950528,8907011,503580344,516131664,67483728,-2037559266,1343684474,1342209976,1035162,-28931328,-558346210,-1706025461,2268,58048523,-1929344791,1358920326,1342443192,1046426,-958887168,-2037579769,-1705967750,4111,-8747379,1234849814,-1929379824,385841798,228505680,-778416098,-1929379816,385841798,204388432,211439646,184549399,-385649472,1187446914,-2097151494,822334,-1070920843,1342975139,1482138,1354771200,-1719729992,-1415950254,1342177302,1487258,2025258752,76913407,1183514624,-1923486726,1358920326,1342443704,1557146,-62486272,1065408651,-16550912,1996487750,68335868,361929296,1183383552,-2133292036,57933887,-243969,1251671158,-1962934246,1065417822,-955943936,129606,-106869,1065418310,-385649408,-252969245,-1017256565,1167087646,518818645,1183570062,17841420,289212276,-351177727,242679588,1342185656,-1207930392,401276929,-15829249,1996425846,108461832,1342185656,-352204312,-2084557850,-443874579,-900899553,1478361098,-1957345904,-661774612,1024214667,125042960,1946227005,-14357743,1085804150,669536256,112640,1996429291,175570702,-16222465,1085802102,2145931264]},{"sector":2,"data":[736553729,49120192,1562371467,707149,-2115204267,1442908396,16664263,-432603392,71731976,1342178309,-8747379,-2135404522,60444672,184549401,-1207601728,48955393,1183432747,2055638526,-1202710785,1344146478,1693594,108461824,1342241464,-8747379,597315606,-2097151975,1962999422,-432603362,71731976,1342178565,-8747379,-2135404522,1805275136,184549402,-1207601728,48955393,1183432747,108462078,1342244024,-8747379,-375762922,-2097151975,1946222206,108461839,1358954424,1391514,12445952,504114872,-125399728,-1202710786,-1706016768,6937,-8878455,2130706237,2055638350,-1924131073,385810566,431200848,-2037579776,1343684474,1687194,-1913615616,-1979745662,-2037515194,1343684474,519849611,212834896,1183383552,2055638524,-62506497,1586175348,1547665660,130473077,-1928271104,385841798,68466768,93999134,-1929379813,385841798,446995024,-259325952,-8799616,-1928301254,385841798,68532304,-811970530,-16777190,448267894,-2037559296,1343684474,1279130,108461824,1342177720,1321370,-443851264,311901,-2115204267,-956233492,65094,1024083595,410255361,1962934845,47704323,1946158653,474379,1424556917,47376642,-1207142657,-1202716646,-1202716659,-1202716544,1344145442,1399962,136493056,363174480,1048576000,1962936354,-432603319,71731976,1342178821,-8747379,-2135404522,-1181069312,184549396,-1207601728,48955393,1183432747,1958743038]},{"sector":3,"data":[15526147,-1928562945,385841798,221821008,817385502,-325431296,-385875948,582484576,-1706025464,6839,-1082074997,1952188449,136493090,-2019930082,-1962934260,566198488,259275272,503849656,68663376,-560312290,-1207959526,1344145442,504114872,375298640,582483968,-1924129272,385841798,246717008,-1073020928,99156853,136493058,-2037559266,1343684474,1422490,136493056,-2037559266,1343684344,1346371768,16777114,2022082816,2109737983,-432603306,71731976,1342179077,-8747379,-2135404522,1234849792,184549405,-1207601728,48955393,1183432747,136493310,60444702,-1929379812,385841798,136493136,1905938462,-2097151971,1962999422,-15406845,-1710459137,7551,-2097052695,822334,28839029,204251904,474651216,-1070923776,2130884688,-1706012007,7256,475961936,2122514432,276111364,-1207142657,-397410272,1183383890,8710652,-401836289,1996425054,4241420,20768848,201082505,-1200785984,1344145442,16777114,2055638272,-1202710785,1344146478,1871514,2055638272,431509759,-459649020,-1962934243,509656,-8747379,1637502998,-1207959523,1344144411,504094392,2055638352,-1706027265,7884,175489035,-1710459137,4476,-4713749,448286975,-1070903296,-1706012592,7912,210517635,722171136,204252096,480352848,-1070923776,2130753616,-1706012007,7343,481663568,2122514432,57999612,-2097114135,1967129726,209125132,1342179000,1899162,75399936]},{"sector":4,"data":[-1206946496,1344145442,504114872,504470096,1048772608,1962937484,112652,1342975139,1891226,1354771200,-1719729480,-375762862,1342177308,1896346,75399936,-16222944,-454554506,-16323840,1340607606,-1942060282,192217100,748929067,2040156172,721420311,12079296,1347590527,1542042,-1919266816,-16777193,1996426358,422943242,-443875328,705117,-2115204267,-956234516,65094,503849656,-24736432,-1706027266,3972,-16873843,-6664170,-1996488449,201260166,-9603904,-1962351050,134546502,-2037559296,1343684478,1342209976,1618842,1975520000,112645,-1070923029,-1191295351,1344145442,1453722,2122747136,-1202710785,1344145442,1997722,-25263360,-16092160,-744880522,-352321516,108461847,-8485235,951603222,-1202708979,-1706033104,6807,65781803,-1962933832,79846885,-326413056,26274945,-26179897,-2033778688,65140,503587512,199145552,565727262,-1924129276,385777286,16758864,367696464,-2037579776,-1202651522,-1706032086,7718,-25524599,1065408651,-16288768,-956401018,-2037579769,-1705968002,7745,-8485235,-2037559274,1343684222,2013082,8448256,-25524597,-26048887,70039632,396991056,-2037841920,-661913990,1946173312,2055667463,509694,-25512193,1985178,1924595456,400005886,-2037710848,1344208498,504073400,391879248,-1073020928,-1098709131,1946222196,1887881001,-1929379330,385842822,70170704,-1936044002,-1929379810]},{"sector":5,"data":[385842822,1921420112,-1706025218,5963,-2033776917,130676,-25518453,1946173312,-9115389,-26165629,-1928301312,385842822,70301776,1721389086,-1207959527,1344144433,504094392,2122747216,-1706027265,4238,201213577,-1206553408,-1202651137,726663194,968380608,-1706025468,4266,503597496,71481424,1102598174,-1924129276,385777286,16758864,559061584,-2037579776,-2037776770,-2037514634,-1202651522,-1706032047,7995,-25655671,1065408651,-13995008,-956401530,-1224802297,1404632696,2006601732,-1996488672,-1946257274,4161752,1344146292,16777114,2022082816,1991704574,526621438,-1224802304,-1365574024,-1962934239,519992966,199145552,-2019930082,184549407,-1957333568,519993478,193771600,1520062494,184549406,-2092862016,1946222206,73250845,1454919710,-1202708988,1344144469,2136730,1958742784,112645,-1070923029,201213577,-1206553408,-1202651137,726663194,1706578112,-1706025468,8381,16678531,1996425333,547789316,1840775168,-6664188,184549631,-12945984,-1710797258,8408,-25393527,243792,112720,537958992,-1224802304,28900988,-1706012672,8225,-25381121,1342178488,1342177720,2156698,1575324416,1426064066,-327029621,-2037579646,1343684478,503849656,468032080,-2037579776,1343684478,504114872,459512400,-2037579776,1343684478,1824154,1975520000,74907405,2175386,-373282048,783810689,1975013388,-207990780,-1962934245,509656]},{"sector":6,"data":[504114872,458463824,2008547328,-1202708988,1344146398,504114872,471374416,-1073020928,1996425845,472160772,-1108672512,1358954424,1342184120,-1202667477,1344144509,2150298,-18432,1947728,1354771280,949637200,-16777188,-1710797258,4487,1358841481,1342180024,-1705983957,4503,-1962933832,46292453,-326413056,-949949309,63046,16664263,1354771200,1342382520,1473690,-1605990144,578142219,-1710983425,8686,1342457481,1342177720,2227098,74907392,2230682,-373282048,-2068315684,726670852,-1202696000,1344144515,513820299,52475984,564501072,1183514624,-129594976,-2131206517,678756415,16154243,-1008139404,-432603392,4241416,-1572434608,1354256406,1469730816,184549410,-1201769024,1542127617,503614392,-129594544,-1967632354,-1924129276,1343683142,1342177976,1955482,-96039680,503355984,2122317824,494141690,32917191,74907392,1342182584,1342439864,-1957642197,1344206918,2245018,-128021760,-2131212545,57999423,-335578647,-1983894544,1996488262,134584836,1183383552,28856324,312102912,-2097151992,1946222206,74907402,1799322,-15275264,1183646838,-1202710878,1344146744,1342189752,1939610,-1602814208,1545882,-16389888,-1207666945,-1202716652,726664199,1347440832,1720730,-432603392,4306952,-1572434608,1354256406,-1835380736,184549410,-1207601728,48955393,1183432747,74907646,1342236344,379733645,582064720,2122514432,443875582]},{"sector":7,"data":[149305087,1342194360,379733645,5290064,583899728,-1073020928,28837237,721611520,-28931648,-1207666945,-1924136710,1343660614,1631130,-25263360,-15043328,-1207376330,-1924136893,1343660614,1342197944,1784730,1975520000,112645,-1070923029,-113015,28836982,1183666176,-1706027358,8967,-1207666945,-397410240,1996485195,14465028,204388432,1989824542,-16777182,697999478,-1207959518,-443875327,180829,-2081649835,582484716,-1706025464,65535,503616184,199145552,-1850191842,-1706025468,8101,175489035,-1710983425,8154,-4708373,448286975,-1070903296,77117520,1905938462,-1207959517,-1202651137,726663197,1347440832,2083994,77510656,535009872,-1073020928,922688117,-258341042,-1996488673,-1202651578,-1202716662,-1706033151,8194,-1034033781,50347778,52649729,50360064,35674369,83916544,-16655616,50342656,18943233,50332928,-14722560,50337280,17391617,50333184,19074817,50333440,-14452224,50337536,17415681,50333696,17427969,50333952,-14465024,33560832,-16658944,50337280,35858433,50366464,52568321,50331904,17278977,50336256,17319681,50336512,50664705,50365952,-14654208,50341632,-14738432,50341888,-15566080,50342144,-15398912,50342400,-16229888,50342656,-16709632,50342912,69016577,50332928,-16067328,50343168,-16210432,33566208,-16654848,50342656,-15012352]},{"sector":8,"data":[50343680,-15755776,50343936,-14866688,50344192,52664321,50371328,52659969,50371840,17591297,50343680,51613953,50339840,17595393,50344192,52504833,50340352,52032769,50342400,18810369,50346496,19086337,50346752,16862721,50347008,16866049,50347264,52140033,50375936,16869889,50347520,52501505,50343424,52526849,50376704,51619585,50377472,51649793,50345984,18435073,50350592,18828545,50351360,18450945,50351616,18908673,50351872,52141569,50349312,52136449,50349824,18838273,50353920,18890241,50354176,18894337,50354432,18444545,50354688,16896769,50355456,52197633,50354176,51540481,50354944,52620289,83909632,-16659712,50337280,52547841,1828742400,1937208180,1167087646,518818645,-326903666,-129579512,-129594815,-6664040,-1996488449,1451883078,1959922684,-129594872,1962559032,106859274,-1996994934,-32511225,2122381382,-780248328,-972661109,1204175111,-310181887,535137026,46812509,-1873273344,-326412987,-2116514274,1442915052,16533191,105286400,-2037559266,1343684320,-1705983957,742,-9140599,2147483453,18082051,1988529488,-1202710785,-1873805248,83945486,-8995199,376789581,196232843,242529350,-1951250805,1183429718,-94991880,-1070921493,-1980086647,-1224738746,1996488564,-126418950,-1705983957,257,-9128193,381044365,4241488,-401698736]},{"sector":9,"data":[2122384566,1950699190,10938627,-9128193,735856267,-129629230,1392137747,1354771280,84378,1958149888,-163148289,28856342,244338688,-16481816,-1946192714,17106502,-1974460927,1352201798,1810370192,-163149308,-1947169896,-2134505890,-16776959,-35658,1996481654,1354771426,16777114,1958149888,-163148289,28856342,244338688,-1979434520,1033434694,41681024,1183350960,1958150134,105286655,503349253,-163149232,244338840,-1962666520,106859504,8421574,-62470400,-1224802303,244383604,-1962652184,-2090927034,-443874579,-900899553,1478361090,-1957345904,-661774612,40168577,16533191,138840832,-2037559266,1343684126,-102232432,1958742786,105286420,-2037559266,1343684476,-437776752,1975520002,-373282043,-2037579055,1343684126,-8616307,-6664170,184549631,-11766336,-1207376330,-1924136880,385785990,5290064,43162192,-1073020928,28837237,721611520,-62486080,175423499,-1710590209,684,1996469227,-1601794806,-1202710786,1344146744,1342189752,181658,-946148608,1090484870,-2096239716,16743102,-1367269772,327745402,1342177976,-11485141,-1694532938,65535,-17660279,-613105653,-8733053,-11111168,-1207376330,-1924136879,385785990,5290064,62888528,-1073020928,28837237,721611520,-62486080,175423499,-1710590209,65535,1996429291,-1601794806,-1202710786,1344146744,1342189752,16777114,-222888192,-25858,283705344,512134655,-1924131074,385719430]},{"sector":10,"data":[536918096,50633296,-2037841920,-12714120,-1915322625,385842310,-1668903600,-1202710787,-1706029055,65535,-31684983,2147483453,19785987,-17647873,16777114,-192509696,-157906434,2025259006,-155779073,-189333506,2058813438,-401698561,-2037841314,-1072955746,-1224789387,-1224737252,244383608,1375942120,-401698736,-1224801459,244383260,-16610840,-1694567754,65535,-8866049,2011696784,20703490,-31672577,-17385729,-17516801,-23152897,937954960,-1635370238,-6916866,-1862394698,38856718,-8616307,244338710,-16657432,-1862305610,37545998,149305087,1342198456,-23034227,1354256406,-6664192,184549631,-1207601728,48955393,1183432747,-125399556,-1924131074,385785990,-26032,-2037579776,1343684476,296858,-125399808,-1924131074,385842310,67803728,-2037579776,1343684344,503620792,77109840,2122514432,175374588,-1710590209,556,1996429291,-125399798,-1202710786,1344146744,1342189752,148890,-222888192,56924926,-1997996032,2025259006,-401698561,922681758,1404569830,-2037559296,1343684256,1342197944,135834,1975520000,112645,-1070923029,-1912846711,385808518,-1601794736,-1706027266,1273,-8616307,-6664170,-1929379585,385808518,2089192784,-1706027265,65535,16547459,65602420,175570942,-17267059,-128279,-1694567754,718,-2097151560,-443874579,-900899553,1478361094,-1957345904,-661774612,8580225,-15960321,-2037577098,1343684478]},{"sector":11,"data":[1342243000,30874,2092960512,142016294,-1928956161,1343653446,253594,142016256,-16353537,1996425334,-26106,28835840,721611520,49120192,1562371467,576077,1167120524,518818645,1465309326,-1274653045,-1960719078,1451952206,-850480118,855798305,-2090967104,-443874579,-900899553,-661913594,-1957345904,-661774612,1451972438,-853887994,-850414559,855798305,-2090967104,-443874579,-900899553,-661913598,-1957345904,-661774612,106349854,567099828,-1070398862,49120031,1562371467,313933,1167120524,518818645,-1960912754,1455754334,-1958759416,567084622,-1070398861,49120031,1562371467,576077,1167120524,518818645,-1960912754,1455754334,-1958693880,567084622,-1070398861,49120031,1562371467,576077,1167120524,518818645,1465309326,-1274650997,1931595070,1606431490,49120094,1562371467,182861,1167120524,518818645,-987834226,1001653846,41034189,-2095071181,-443874579,-900899553,-661913596,-1957345904,-661774612,567089588,-310165244,535137026,-1932833443,1430622424,-1910575989,509040344,-66552124,168183435,-1274645056,-31339239,-1328510272,520530524,1203042187,41034189,1595916339,49120094,1562371467,445005,1167120524,518818645,12114062,106859351,-1047846451,-1962742397,1297948645,-1946156342,1430622424,-1910575989,1459730648,-1962254709,1451951694,-2094936824,-443874579,-900899553,50335494,16935937,50335488,17085441,50336000,50606337,50331904]},{"sector":12,"data":[16980225,50336256,17054209,50336512,-16508928,50341632,67439105,50333184,50617601,50376704,17097985,50350592,17033473,50351872,16829441,50353152,16905985,50353920,17071105,50354176,17037825,50354432,16783105,1828740096,1167087646,518818645,-327034738,1448542382,1024214667,192151824,1963004221,8841475,-2096991511,822334,28839029,204251904,6462032,-1070923776,2130884688,-1706012007,112,7772752,1996423168,39118862,-11368823,210517635,722171136,204252096,38705744,-1070923776,2130753616,-1706012007,604,40016464,-1098711040,1962999634,242679569,-1705983957,65535,-385875528,1996423685,112654,-26032,1996423168,105310222,1183573739,81162,-2115435659,146689,742247284,1024095233,57999670,-352243223,242679751,1342256824,198554,-96040704,67745872,1354771280,-6664112,-1962934272,1421249008,-97281,-24404364,1996482513,67745798,1354771280,664424528,-1996488703,1024021637,158728191,156534215,2011758592,-92864513,1342442168,-11225345,-11106675,1704611862,-1929379839,1358911110,1343000248,16777114,-62486272,504139448,-26032,-661979136,-956533109,1996423168,67811334,1419676496,-1846785,-1928768329,1343662150,99994,1451658496,-1924131073,1343662150,16777114,-92864768,1342180280,1347469355,26909264,1996423168,67352826,1421279056,1354771455,28351056,1996423168]},{"sector":13,"data":[67287290,1421279056,1451658751,-1706027265,452,-1191545089,-11533305,738153654,-1706012480,472,-1191545089,-1202716661,726663169,-1706012480,513,737834751,1347440832,16777114,-92864768,16777114,-23533312,-1207535873,726664201,1347440832,238746,1418103040,-49665,2078868341,242679806,1342254264,1342441400,-11231605,-1207966767,-1070921388,-6664112,-385875713,1996488282,78833678,58048523,-2080485911,822334,28839029,204251904,41589328,-1070923776,2130884688,-1706012007,648,42900048,1996423168,110356494,210517635,722171136,204252096,-26032,-1070923776,2130753616,-1706012007,65535,-26032,-320274432,1589652477,49120095,1562371467,707149,-2115204267,1442907884,-1202667477,-1706032511,65535,-17135991,578142219,-1710983425,878,1342457481,1342177720,228250,74907392,232602,-373282048,263717889,-1202708990,1344143878,503939768,216184912,1354256414,949637120,-16777213,750257270,395988993,-1996488701,-44410,918029430,-6664191,-1996488449,-1191226234,1344143896,1347469355,503453624,-91845808,-1202708738,-1706032512,976,-17129845,1962950528,-432603314,5814280,1451658576,-1202710785,-1706033072,65535,91602955,-352321096,-1983894782,1996488262,-26108,1183383552,28856324,-6664192,-2097151745,1962999422,38070531,-1710983425,65535,-16625431,-1191226698,726664193,-491237184]},{"sector":14,"data":[-1706025460,65535,-17135989,-1951906167,1065396318,-1204587264,1344143903,1347469355,503455416,-91845808,-1202708738,-1706032512,65535,-17004857,-2037710848,1183448826,-24721496,-385875714,-1224801907,28901202,-1070903292,-1471771824,-124104674,-1962934268,1191159902,4161704,-202660492,503457976,-1471771824,666390558,-1924129278,385810566,5290064,101292624,-2037579776,-1705967872,1123,-16728448,-385649408,-2033778386,130814,-16742771,36747344,79993424,1183383552,-2133292036,192151615,-243969,-1751450506,-1962934268,1065417822,-385649664,-1014300433,-491237346,-1706025460,1166,-1929322775,1343662662,514344587,79075920,1183645696,-744861526,-1929379836,1343662662,504139448,82025040,-2037579776,1343684438,519849611,105028176,-2037579776,-1202651306,-1706032590,1352,130472075,1451658496,1570394367,-1929379835,1343662662,-11106675,1385844758,-16777210,-1191226186,726664193,1183666368,-1706027350,1307,-16990589,-1958904556,-771818314,1387724774,68008191,1354771280,-11106675,-1717940202,-1996488698,1024021636,108396543,156533959,-1232404480,-422445316,156533899,145654921,-17004801,-1191414017,-1706032588,1559,-1946401143,4161752,1191119732,-59310084,405914,-60912896,1946173312,-15210237,-5742965,1065396294,-1946848000,1065396318,-385649664,-1098645878,1962999550,-432603290,5879816,1451658576,-1202710785,-1706033072,1934]},{"sector":15,"data":[91602955,-352321096,-1983894782,1996488262,46438916,1183383552,28856324,-778416128,-2097151998,1946222206,-37951229,-1929087233,385832582,221821008,817385502,-6664192,-16776961,-1694565706,1756,-1191383319,1344143934,503461816,37140560,-2037559266,1343684352,1342197944,195482,8817920,1186484479,1587171330,-1996488698,-661936058,1946173312,-1471742202,-1929377850,1358889094,422810,1451658496,-1924131073,385810566,-26032,-2037579776,1343684438,504139448,109288016,1996423168,38320296,128621136,1183383552,-2133292120,57933887,-5748993,-1181046666,-1929379833,385832582,-1471771824,1973047326,-16777215,-1191226186,726664205,-2037559104,1343684438,440474,-58291968,-49666,-1224796555,129564500,-1070903292,-17004919,-1706012592,1747,-11356417,1342441400,-16998773,-1207966767,-1070921388,1234849872,-16777209,-1694565706,65535,1577058744,-1034033781,-1957363710,1592558060,-950642943,33481350,74907392,1342256824,463002,-96040704,-1207666945,-1706032852,205,-939768183,16704646,-457798912,-427636994,-2030043138,-1098645788,2081750756,-460929044,-16776962,179894902,-1224781820,-2037514524,1343684258,57242,-359680,-12777355,-385649153,-1635057255,-472776988,156546955,58062347,-2147389463,-72006,1709769589,-494483711,-16776962,-1207376330,-1924136870,385841798,5290064,56138320,-1073020928,28837237,721611520,-28931648]},{"sector":16,"data":[-22903155,210679888,20290128,-661979136,-1929377850,1358865030,16777114,2055638272,-1924131073,385786502,134650448,2122514432,460652798,149305087,1342200760,-17135987,1354256406,-1667608576,184549381,-1207601728,48955393,1183432747,2055638526,-1924131073,385809030,139893328,1996423168,67811578,-459371696,-1948003842,-1979099969,-1728125309,-91845296,-1706027266,2178,-17135987,210679888,155032144,-661979136,-1929377850,1358887558,560282,2055638272,-1924131073,385809030,140941904,-2037579776,1343684474,504139448,144546384,1996423168,67811580,-459371696,-1846786,-1928768329,385809030,191470160,-2037579776,-1705967878,2351,-8747379,-2037559274,1343684346,568730,2055638272,-1202710785,1344143946,678298,-25263360,-16092160,-644217738,-352321534,74907435,-8747379,951603222,-1202708979,-1706033104,1503,-1635052821,-472776988,156546955,-18577782,-18447736,-18577665,-1946270487,1593762438,1575324511,1426064066,-327029621,1187447346,-1207959042,1344143956,503467448,38582352,-2037559266,1343684288,1342197944,664986,-1064923904,1503285502,-1929379831,1358872710,1342332088,620698,-1098479360,-2133292034,125042751,-21068033,-1929377850,1358872710,627610,-1061257216,1634992382,-10975545,-2037710847,-2037776706,-1202651462,-1706032546,2562,-21068151,1065408651,-16288768,-956383610,-1224802297,-1667563846,-16777207,-1694581066,2624]},{"sector":17,"data":[-21068149,-21199223,1065408651,-14912256,-1946239866,520010886,216184912,-191213538,-352321526,1485227782,-956301057,16666246,74907392,1342256824,1342442168,-28395777,-28277107,2040156182,-2097151990,141950970,1979711293,32827651,-28277107,210679888,171088464,-661979136,-1207957562,1344143969,-28277107,1622691862,-1924129278,1343663174,1342197944,272026,-1404662528,40482896,195009104,-661979136,-1929377850,-1705989050,1072,380389005,-26032,1183645696,-1202710868,1344143979,690586,74907392,1342254264,1342442168,-28402037,-1207966767,-2037577388,1343684258,698778,-1404662528,-2037559274,1343684258,722074,74907392,1342254264,1342442168,-28402037,-1207966767,-2037577554,1343684416,755610,1488880384,57999615,-1929333015,385765510,-1064923824,-1706027266,2780,57982987,-1929339159,385826950,-1132033200,-1706025218,65535,57982987,-1929345303,385732230,-1064923824,-1706027266,1148,-36796787,1840795670,-1706025470,2837,-36796787,-2037690346,1344208570,730522,-830042880,-1202710787,1344143983,734874,-830042880,-1924131075,385786502,78027344,2025324544,-1202708990,1344143985,-36796787,-6664170,184549631,-955943488,65094,1358954424,1342184120,-1202667477,1344144000,261018,1317469952,74907646,1342256824,1342442168,-28395777,-10844531,731533334,-2097151998,91619322,1962934077,1518767403,-1900523265,1318735884]}],[{"sector":1,"data":[-1962934268,509656,-10844531,-2037559274,1343684176,705690,1975520000,-24188669,16678531,-2001199500,-1924129278,385765510,-1404662448,1268404246,184549387,-1207601984,48955393,1183432747,-35264002,16678531,1996425333,-26108,-4718592,448286975,-1070903296,43038800,77221918,-1962934259,46292453,-1873273344,-326412987,-2116514274,-1962890516,272436294,1024160769,57999633,-385816855,1996423412,1357838,223976016,-2037841920,-1705967786,65535,242597899,722368255,2056933568,-385875955,-1598553906,-1202708990,1344144025,503486648,-1438216880,1354256406,-23441408,-1929379827,-1202673082,-1706032472,3273,-1946401143,4161752,1191118452,509692,1353336461,843418,1485212928,-1924131073,1343662662,965018,1485212928,-1202710785,1344146574,847514,-59310336,1342352056,903834,-62486272,1065408651,-16550912,1996487750,138779388,-2037579776,1343684440,519849611,244030032,-1224802304,230227798,-1070903292,1485213008,-1706027265,3480,-1207011585,-1706033151,154,-352321096,242679571,-16091393,1996424822,1042440,-1070863637,-1962742397,1297948645,1426066122,1183575179,81160,37555316,1026323456,343146516,1996435691,175570698,1342182584,459162,216748032,33848963,1996429429,108461834,184554984,-16026432,-1070921098,8952400,-443875328,574045,-2115204267,-16702228,163054710,-1070903292,-1706012592,3516,-19102071]},{"sector":2,"data":[1979711293,-373282043,1996424062,67811332,-591986864,1854311934,-1706027265,2088,-9533811,210679888,241277520,1183383552,-958886918,-1900543993,-1706025460,322,-1191557631,1344144045,-9533811,-1397207018,-1924129278,385801862,5290064,153459280,-1098907648,1962999518,-432603314,6338568,-561607344,-1202710786,-1706033072,3820,91602955,-352321096,-1983894782,-1072956346,1996426100,146512390,1760100352,108462079,-18970995,951603222,-1202708979,-1706033104,2260,-1912647959,1358880390,1342354872,947354,-958887168,-2037579769,-1202651426,-1706032457,2102,1065408651,-1928301312,385801862,45725776,-711307234,-1929379826,385801862,247765584,-2037579776,1343684318,16777114,814123264,1975520255,1854311797,-1202710785,1344144062,1004442,-561607424,-1706027266,3934,-9533811,-2037559274,1343684318,986010,-432603392,6404104,-561607344,-1202710786,-1706033072,2023,91602955,-352321096,-1983894782,-2037515194,1343684462,-18970995,1872384022,-2097151985,1946221694,-15013629,-1928956161,-369135994,-1098645726,1998651184,-25564925,-13584641,503496888,-26032,1183383552,-128546314,57983499,-1929341463,385838726,46905424,-1080405986,-1929379831,385801862,172661328,-2037579776,1343684462,-18970995,-895856618,-16777209,-1207376330,-1924136863,385801862,5290064,315660880,-1073020928,28837237,721611520,-62486080,-9533811,-2037559274]},{"sector":3,"data":[1343684318,1077658,-58817792,-16092160,-593885578,-352321518,108461847,-9533811,951603222,-1202708979,-1706033104,4852,-13584641,16777114,-37099264,503502520,47036496,-2101850082,-1202708983,1344146658,1342197944,1260954,108461824,-13584641,-9533811,1183535126,-11526406,1183446622,817299444,-25857,2122514432,57999604,-2097085719,822334,28839029,204251904,286104144,-1070923776,2130884688,-1706012007,4379,287414864,-2037579776,1343684402,-9533811,-1382395882,-1929379828,1358901894,1263258,847678720,-1202710785,1344144094,1089690,-561607424,-524791554,1452953602,-1962934253,509656,-18970995,-1768271850,-1929379826,385823366,-561607344,-1706027266,4272,-13465971,-491237354,-1706025470,4288,-13465971,1183535126,-1706025222,3261,503507896,48543824,-2037559266,1343684402,776090,-28931840,175489035,-1710852353,3062,-4712981,448286975,-1070903296,49526864,194662430,-2097151988,822334,-1070920843,1342975139,1163162,1354771200,-1719729992,-845524910,1342177297,1168282,-196703488,-1034033781,1478361092,-1957345904,-661774612,1024214667,125042960,1946227005,-13046977,1052249718,28856323,-6664192,-16776961,1052249718,-1343729661,242679553,1342389944,802458,-6664192,-16776961,28839542,278548480,721420301,16509376,1024083595,393478145,1946157629,52706674,1996454515,52541454,52672592]},{"sector":4,"data":[-16734999,-504885642,1975520000,13428995,210517635,-1207143168,748879873,-342208500,721420305,45633728,1347590527,1178010,-6664192,-16777199,1978142326,-1942060285,192217100,748929067,848973836,721420288,12079296,1347590527,16538,1184518144,-16777216,-1070920074,207067728,1827340288,688553601,-15961341,616042102,683167747,-2128286973,53217918,1996426355,53065742,53196880,2122387947,1996696842,242679573,1342385336,1342385592,-1710590209,4719,2122394347,1912815114,176062755,477561663,-1207011585,-1202715842,-11533505,-6681994,-16776961,1996426870,9758730,-2097151560,-443874579,-900899553,-1957363702,1458340844,-1207666945,-1202715852,-1202716659,-1924136880,1343663686,649114,-1371108096,-341031287,-2012771762,809282118,960234620,922697342,1689782502,1183666176,-1202710866,-1706033072,3612,175489035,-1710983425,3638,1996429035,-1371108092,951603222,-1202708979,-1706033104,3664,250331179,-1951643905,1065397342,-1196788480,-443875327,180829,-2081649835,146299116,-2125455869,54396030,-55048843,-1207702782,-628358398,-71806894,-1924129278,1343663686,1342197944,817050,-1371108096,211655248,1183645696,-1438217810,51296336,210016848,1183383552,-2133292116,108265535,-961788161,1996423175,330996394,1586167808,4161706,1996426100,53786630,-339506352,108461834,1342387384,503517368,-26032,1183514624,-1438217812,51755088]},{"sector":5,"data":[335583824,1183383552,-2133292116,108265535,-961788161,1996423175,337156778,1586167808,-1744336214,1946182973,7224699,1866270068,-15895552,565708406,599281667,250302467,-1207535873,-1202715871,-1202715869,-1706032350,5217,-1985198453,-1202673082,-1706032361,5233,-1951644023,4161752,1191118452,509612,-1700104449,5257,-1968546165,875403271,-1471772416,679264267,2130707517,108461859,1342383288,1342384312,94914187,468386596,-1207535873,-1202715871,-1202715869,-1695874271,-1207535873,-1202715868,1347420968,1355930,-1404663040,1353336457,1342380472,1360026,-1404663552,1065408651,-16354304,130460742,-1435042048,1366170,-1438217472,465063966,-1706025469,5375,1417003019,-1207535873,-1202715863,-1202715861,-1706032343,5448,-1985198453,-1202673082,-1706032349,4223,-1951644023,4161752,1191118452,509612,-1700104449,4193,-2136318325,1467314239,-1207535873,-1202715860,-1202715859,1391133484,514475659,52279376,580538398,184549397,-15698496,699926134,733499395,716722179,-1952978173,1344186950,503521720,196450896,-1073020928,1944650612,108462079,1342384568,1342385080,-35863,750257782,767053827,-1706012669,4684,-1034033781,-1957363708,720143340,-1207666945,-1202715852,-1202716659,-1924136942,1343680070,1222042,-330905856,1996423969,-327745788,1471130,1975520000,13297923,770459275,205325089,-385649152,-1073545043,-1476448621,1183651369]},{"sector":6,"data":[-1202710810,1344144165,1479834,9693440,384190093,53000272,1183706347,-1202710810,-487914709,384190093,53393488,1183701227,-1202710810,-823459023,384190093,53786704,1183696107,-1202710810,-1159003337,384190093,54179920,1183690987,-1202710810,-1494547651,384190093,54573136,1183685867,-1202710810,-1830091963,384190093,55097424,1183680747,-1202710810,2112422731,-1340760321,-1005209067,-669659627,-334110187,1439253,336988694,-1927930346,1343680070,384190093,262511184,1191116800,-327253524,58655533,-939583511,54455366,1072463489,-13795581,1996424310,-25876,-1073020928,1183533684,54410732,1060964212,-348949501,-700019441,1287147542,-1706025469,4183,503535800,-700019376,1183666198,-1706027282,4309,427147275,-1710983425,4324,1183655147,-1202710826,-840236206,-336836865,-18277,1751120,1354771280,503537336,284924496,-443875328,620937821,-637467904,1862271766,-1275002112,83886338,1845494528,369164051,-402586880,117440773,-1275067648,419495702,-318700800,2080375553,-452918528,2097152769,-872348928,16777999,-1291844864,654376719,-1577057536,671153939,1207960320,687931148,1862337280,369099537,369165056,771752208,-1090452736,570426117,906035968,838861071,-184483072,973078799,2063663872,704643857,-1476328704,989856022,1073808128,-1392508144,-1308556544,771752709,-2046754048,-1342176497,-1895759104,1325400336,1174471424,1157628688,838927104]},{"sector":7,"data":[1191183120,-1744764160,1459618068,-1459551488,1476395285,1308689152,1493172502,-603913472,1509949709,-1593769216,1593835790,-721353984,1610613007,167838464,1476395794,1761673984,1526727441,-1845427456,1543504659,-268369152,1610613523,1392575232,1627390737,2097218304,1644167957,1828782848,1694499605,1937009920,1167087646,518818645,-326903666,205949730,1962938173,8841475,1946226749,17906967,339557236,1028092929,1400111617,1946289213,9627982,-401705217,-1073020775,1996427637,-18418,-26032,28835840,-8787200,28839542,-6664192,-352321281,242679789,-16091393,1996424822,165079048,1996479723,175570702,-16353537,-1847064458,-1194595572,1344146562,-16222465,-6683018,184549631,-1195936576,-1706033104,65535,1996467435,-565801714,-6664170,-16776961,1996426870,-529072162,-15824664,1183649398,-1706027298,65535,-1070889749,-1962742397,1297948645,1426066122,-327029621,1448542350,1342178744,16777114,156410624,16533191,-59340032,-422378831,-771989877,1555562467,-26111,-2071396352,-1802958974,-2071394428,-1802958288,1191119410,-58817540,-2982902,-1207376330,-1924136848,385841286,8435792,25729616,-1073020928,28837237,721611520,-28931648,594919435,-1207666945,-1202716652,726664193,-2037559104,1343684472,111514,-359680,-29554059,-1207601665,48955393,1183432747,1975520254,-432603365,7452680,2022083920,-1202710785,-1706033024,482,91602955]},{"sector":8,"data":[-352321096,-1983894782,-1072955834,1996432245,1357828,67221584,1354771280,-8878451,228216854,-2097151998,175505402,1979711037,112645,-1070923029,201213577,-14977600,-1207376330,-1924136846,385841286,8435792,37526096,-1073020928,28837237,721611520,-28931648,594919435,-1207666945,-1202716652,726664193,-2037559104,1343684472,157594,-359680,-29554059,-1207601665,48955393,1183432747,1975520254,-432603365,7583752,2022083920,-1202710785,-1706033024,662,91602955,-352321096,-1983894782,-1072955834,1996432245,1357828,67221584,1354771280,-8878451,-1046851562,-2097151998,175505402,1979711037,112645,-1070923029,201213577,-14977600,-1207376330,-1924136844,385841286,8435792,49322576,-1073020928,28837237,721611520,-28931648,594919435,-1207666945,-1202716652,726664193,-2037559104,1343684472,203674,-359680,-29554059,-1207601665,48955393,1183432747,1975520254,-432603365,7714824,2022083920,-1202710785,-1706033024,842,91602955,-352321096,-1983894782,-1072955834,1996432245,1357828,67221584,1354771280,-8878451,1973047318,-2097151997,175505402,1979711037,112645,-1070923029,201213577,-14977600,-1207376330,-1924136842,385841286,8435792,61119056,-1073020928,28837237,721611520,-28931648,594919435,-1207666945,-1202716652,726664193,-2037559104,1343684472,249754,-359680,-29554059,-1207601665,48955393,1183432747,1975520254]},{"sector":9,"data":[-432603365,7845896,2022083920,-1202710785,-1706033024,65535,91602955,-352321096,-1983894782,-1072955834,1996432245,1357828,67221584,1354771280,-8878451,-6664170,-2097151745,175505402,1979711037,112645,-1070923029,201213577,-14977600,-1207376330,-1924136840,385841286,8435792,72915536,-1073020928,28837237,721611520,-28931648,594919435,-1207666945,-1202716652,726664193,-2037559104,1343684472,295834,-359680,-29554059,-1207601665,48955393,1183432747,1975520254,-432603365,7976968,2022083920,-1202710785,-1706033024,1651,91602955,-352321096,-1983894782,-1072955834,1996432245,1357828,67221584,1354771280,-8878451,513429526,-2097151995,175505402,1979711037,112645,-1070923029,-113015,-1128790922,-1298509822,-1560281084,1996425764,47233028,79796816,77791232,74907402,1342359224,16777114,221684480,170145535,1342177976,-1202667477,726663215,-224767808,-16777212,-1207303114,726663170,817385664,-1070903296,84515408,922681344,45616438,-1070903296,3192912,1354771280,16777114,74907392,1342182584,1342441400,1347469355,22649424,113704960,2930,-1207648536,-1706033148,1344,145491459,-1207302493,-1706033137,1360,145491499,-1207470429,-1706033132,1372,-1207483229,-1706033143,1384,-1207376733,-1706033141,1396,-1207072093,-1706033140,1408,-1207069533,-1706033149,1420,-1191557495,-1706033131,1433]},{"sector":10,"data":[-9009527,1342180024,16777114,-1037330176,-2046691119,922746742,1891109094,-1706025471,65535,-1207154525,787939364,865668178,-1178457150,-120389630,-1037319629,-9009661,-1559810909,-89979212,206741770,-523040847,734147481,178626,-1036781357,-2043952597,816054134,112763655,-1207239005,787939404,865667696,-1178457150,-120389629,-1037319629,145491459,722141347,-56362426,6600714,175124215,734147481,871945154,63056834,-1559712762,1177224890,112632826,-150963016,-1727369170,-1037319629,-1036781357,100909611,849545388,-96064761,-2096681309,1962999422,-432603366,8042504,207009872,683167774,-1684385792,184549382,-1207601728,48955393,1183432747,1975520254,-432603366,8108040,165328976,683167774,-1013297152,184549382,-1207601728,48955393,1183432747,1975520254,-432603366,8173576,150779984,683167774,-342208512,184549382,-1207601728,48955393,1183432747,1975520254,-432603366,8239112,153466960,683167774,781864960,184549377,-1207601728,48955393,1183432747,1958743038,-373282043,1996423899,-26108,-2037841920,-1202651276,1344146518,949637150,1342177287,474778,165061376,165156489,-9128193,503962296,-1706025392,65535,-26032,-1063059456,-1038710522,74907398,-9128193,16777114,-2113485056,-956265460,302810118,209887488,-1560250363,-2069820282,6161676,-15955805,-2101869450,-1706025460,65535,-150990152,-1324715986,-1543974141,1822624844]},{"sector":11,"data":[169648907,50992291,-1559624186,1889733712,169911051,-1207297885,787939468,-120517550,312735953,17086474,206712567,-120457007,-1962271069,-787999690,7911654,206712567,-2885493,-787884383,302394360,64550666,-1547293753,346098538,-773795576,1921419744,165061119,-9271805,191497731,-1593086301,-120518976,168953387,-956049161,1252247083,113287436,-9271805,206177795,-1593028957,-972878998,-1593123677,103484272,103484268,731449968,66638274,51080198,-1559712762,1252068062,-1547304180,1352731378,1275472652,1879452428,-1037330166,100923601,100863052,-190642004,335988490,-1593835253,103484270,446892052,191537418,135529987,-1593174365,1185090066,169779463,-1593357661,103483928,1218644140,145531143,100917457,100861768,1285752694,1921420039,1174799359,229155591,721898657,721897478,-1727369210,-120470997,122160643,145491459,-1592939869,103483934,379782978,169779464,-1593304413,103483212,413337772,1141244680,-1408892153,136094472,-1559620959,513869510,-895268854,7387142,175124215,-861669165,-1811535098,-1408881907,208136,-1593390941,-523171820,100917457,-1935472954,-1979317491,227582733,1208405153,227713864,227804715,-1592947037,1487079446,135962890,-1593156445,1587742408,1141254922,-1408881913,173712136,-1559620959,379652874,335938312,185508616,721898657,-1559712762,1587612428,185639690,-1559751007,2023951394,148677383,-1559749983,2091060262,148939527]},{"sector":12,"data":[721951905,-1559712762,1520503006,-1408892150,125739784,-1727470431,-120470997,2124531851,-570021113,-1037330168,-1054082863,148768259,51127459,-1559698426,614534184,-1408892148,149070600,722217121,-1559712762,28837754,-1956684288,46292453,-326413056,192028299,-472783919,171096063,170964991,-15947800,-1207294922,-11534334,-1207162314,-1706033151,2597,168048383,1342177976,205272831,1342177720,670362,909573888,178189,-533266608,112652,-26032,-443875328,-1957313699,116163564,138840918,1946157373,146715,-1729559691,1326336,-404159627,1391872,-1763114123,26798336,722106111,-124104512,-2097151990,822334,28839029,204251904,180722256,-1070923776,2130884688,-1706012007,2771,182032976,179830784,1555582976,-1202708991,1344145968,16777114,175570688,-2097064728,822334,-1070920843,1342975139,16777114,1354771200,-1719729992,-6664110,1342177535,16777114,-25263360,-385649664,1996423454,-26102,334036992,175570689,-1705983957,70,-956234263,64582,-1308854645,-1947806974,-1962442108,-1995996012,-1995820924,-16108908,2122579014,-528741636,-81176,-1550185866,-1996488693,-1202652602,-397344769,1996424836,-92864758,770970,12380416,-1207535873,726664201,1347440832,751514,192062208,1979711293,1913046810,-16774901,129500790,163074052,-1070903296,-6664112,-402652929,1048837739,1963133810,335988546,-1593835253,103484270]},{"sector":13,"data":[446892052,191537418,135529987,-16116061,177867382,-1996488697,-1202652602,-397410301,1996424716,375034,100853840,-16091393,1369111158,-2097151993,67859006,113718901,133908,722226849,-1559751674,1252067866,335938316,169255688,-1710590209,3796,1358579337,1342178488,-16399384,96008822,-13440768,1575324510,1426065602,-326898549,-28915944,1187446785,-1962934026,-472779170,-2020940847,-467006928,-129594032,207854160,1183645696,-1924131096,1343682630,16777114,-398029568,-524791786,-1706025471,3186,-772383093,-1964781085,705311111,1183666404,-1734717192,-1929379828,1343678534,385369741,209820240,1183645696,-1202710808,1344143842,829338,-161576192,-472783919,171083658,-1924078550,-1705969594,65535,384321165,-129594032,-6664170,-2097151745,1946222206,31766563,1586188318,-1948003850,503444103,-398029488,-6664170,184549631,-1207601984,48955393,1183432747,-163119106,183926403,921240445,-18177,1751120,1354771280,503442360,190159440,2122514432,141885694,-1710983425,2794,-1034033781,-1957363710,49054700,138840918,1979713597,23324931,781434883,242329599,956966049,393544774,204082943,204095107,-385647616,113705285,3114,-1593754391,1178143236,-16354044,-351519730,-535888008,-532774132,58458124,-956227351,843782,18344192,956966049,393544774,204080895,204095107,-385646801,113705217,3083306,-1593771799,1178143236]},{"sector":14,"data":[-16354044,-351519738,-536412316,-532774132,58667020,-956244759,806150150,13887744,956966049,141886534,204091011,-9115380,956957857,292881478,205270659,1010729740,58458124,-352277271,-533822606,2028538892,170172927,1963214393,705069831,-1997861876,956957857,242549830,205260419,1010729740,2138976268,109274091,-351531808,170172816,1963214393,105286408,-351524189,168075622,1963214393,105286408,-351519581,105286486,-351477597,170172750,1963214393,-16848637,956957857,57934918,-939583255,801798,-1590629632,1178143268,-385649404,77725476,71710986,1055458164,1007077375,-352309236,1812801554,-519196659,219024653,1393440014,-15779826,45614198,614551552,71710986,715195765,-1592726772,1178143236,-1593477884,65735740,1343021217,1342177720,659610,708247296,1010237196,-533266676,163964940,192028299,-472783919,170952585,171087753,-1710590209,2859,-2080487799,750142,1048781684,1946225522,1916699420,359925003,192036483,-1207012344,-1706033136,65535,1954545833,1916177182,-754798325,818315750,-25755894,-16616193,-26060,76087296,-16624503,922746486,-1847063694,175570690,-1694599425,2881,1575324510,1426065602,-326898549,184459534,135532171,-1054088751,184157739,-1577302391,1183386364,184590836,-940030327,65094,-134330741,-1181090706,-101253072,184157699,135529987,-1947056503,-146735546,-140903314,-100269063,335938314]},{"sector":15,"data":[-163149560,-1191282945,-1957691368,-454537023,-1706012152,4082,-375159,1183647350,-11528462,-73729418,-16777201,60488310,-16777200,2122579526,-1669582850,-1980348789,-22941114,-163149558,-1928956161,1343681094,1342189496,1342183608,1342189752,1376294632,275618384,1183383552,-2137370374,-16777200,-2003109258,-2097151984,644158,1996427636,184203270,922701854,-509998636,-1593835504,1183385270,112894452,-940030327,65094,-134330741,-1181090706,-101253071,112461315,135529987,-1947056503,-146735546,-140903314,-1274674183,335938310,-163149560,1342185656,-1191282945,-397410256,1347553307,1095834,-96040704,-1928956161,1343681094,-1694861569,4289,-1694861569,4297,-2080487681,2083585662,-163148901,-1577957751,1183385272,108462070,384976525,2144336,3192912,-790081456,-1706012153,4403,1358579337,1132186,-92864768,1134234,-734100736,292814857,-1207535873,1344145076,164902655,1157786,120496384,-1577826679,1183385394,-28915720,1183514624,-59836418,3258777,100923895,100861740,1183385620,-28931086,-59836608,66713497,50801670,-1995959290,548992582,414732288,1996443648,123070718,-2120593326,-1996488687,1996487238,-230257402,1996443670,294296314,1996423168,294820602,1191116800,-25263106,-1952744400,1183446598,120627698,-637303,1183647350,-1202710798,-1202716640,-1202716648,-397410256,1347553031,1169818,-96040704,304192080,1996423168]},{"sector":16,"data":[311007994,1048772608,1946159572,108461841,503786680,-734593200,-26103,1996423168,-18426,452688,-1034033781,-1957363706,317490156,-1207535873,-1706033151,65535,172635903,172504831,1183386,-163149568,755254923,171835391,-385649152,-1073544022,-1476448621,1996428930,-1976107258,310483468,1183383552,1446445054,1412890378,312056330,1183383552,108462076,503760568,-59310256,16777114,108461824,113653503,113784575,16777114,108461824,113653503,114046719,1200538,108461824,113915647,114046719,1204890,108461824,113915647,1208404129,-26032,1996423168,-1942552826,-1908998387,1211563789,-26100,1996423168,-25755898,16777114,-59310336,16777114,67692800,171063039,170931967,16777114,-62486272,-1207535873,1344146186,-1694730497,4812,-1207535873,1344146186,-1695123713,4828,-1207535873,1344146466,-1694730497,4933,-1207535873,1344146466,-1695123713,4949,-1694730497,4957,-16353537,-16107978,-1710607306,4898,-1980217719,1996487254,153466886,-4698082,179851519,-1202708981,-1706033115,65535,-16353537,1996487286,325950200,1877540864,1312227075,1278672650,330275338,1183383552,108462076,503793336,-59310256,1295002,108461824,503793336,-159973552,1299098,-59310336,1032090,108461824,173160191,173029119,1312154,-129595136,-371063,922682998,922684840,-55046742,508567048,344562256,-1706033152]},{"sector":17,"data":[5263,2122547947,175440644,171849471,171718399,922683627,922683970,412748352,-1996488684,1996487750,168998918,1996443678,333617916,1996423168,168998918,1996443678,334666486,1996423168,169523206,1996443678,338860796,1996423168,169523206,1996443678,339909366,-1930887168,108462078,172373759,172242687,1357210,-129595136,-371063,-16103882,-1710603210,4004,-2080618871,17503294,1996435573,191543302,1996443678,342006518,1996423168,191543302,1996443678,343055094,1996423168,-600375546,-566821110,207009802,1996435179,206223366,1996443678,263690998,1996423168,206223366,1996443678,352164598,1996423168,-231276794,-197722358,165328906,1344163870,465818,-6664192,-16776961,922682998,922683974,1620707908,-1996488683,1451880006,108462064,172635903,172504831,16777114,876019456,1781989127,353016327,1183383552,108462068,135673599,135804671,121779967,121911039,120862463,1347469355,-1174396744,1347551436,1390234,108461824,503846584,-159973552,1394330,876019456,272039687,357734922,1996423168,1479999238,173711626,145491459,1110900560,1144454919,876019463,1354771207,2144336,1375784122,-26032,1996423168,173586438,1996443678,270244598,922681344,1996425012,301898484,1996423168,-260636922,-1695648001,65535,-16353537,1996487286,318020344,283705344,976683005,943128330,322083338,1183383552,108462076,503897272,-59310256]}],[{"sector":1,"data":[1421722,108461824,503897272,-159973552,1428122,108461824,503806136,-59310256,1223834,108461824,-385386312,1996488238,185251846,1996443678,366648054,1996423168,122075142,1996443678,367696630,1996423168,168998918,1996443678,368745206,1996423168,169523206,1996443678,369793782,1996423168,148682758,1996443678,370842358,1996423168,125351942,1996443678,371890934,1996423168,203601926,1996443678,314350326,1996423168,374790,-75044784,1048796907,1963002644,108461832,-352320584,108461830,1342178488,-300056,95946358,1642614784,108462075,1342177976,-305176,129500790,1307070464,108462075,-397361109,1996487492,636934,372945643,317198992,328602997,335090582,321459646,301339489,-1695123713,4836,-1034033781,-1957363708,317490156,1183471191,-1947981308,-126449168,-1962588534,-92370440,-1996077430,-147063226,-963967882,-947191061,1996375611,1995913996,-339309820,-339244281,-28931581,1005864584,-1962642441,-1962742842,-28951609,-147125133,-963967885,-947189781,1183450091,-163149570,-1979699015,-466947002,720787082,-138279946,16713185,-21376469,-1544423679,1183452220,-196724490,113708917,3296,204080839,-454492128,1010729728,629086220,720782986,-1963947036,-125045690,721432761,-1948125242,-775027761,734069737,63933394,-336463922,-163149269,-259267542,-1946925430,767951864,-654900738,-1175566711,-947191760,-503855573,-772911477,734069737]},{"sector":2,"data":[-294193198,-1978867549,-466947002,1183510667,-138007562,-772240424,-297367064,1177273995,-754732552,-297401376,-134753749,-1947187575,-96064570,1174659283,-137221138,-230258185,1177273995,65065982,-768872890,1183447031,-126469636,1177224565,-1977685006,-466947002,1979336251,-263812341,100419115,166395920,737298059,537260102,204120832,92127243,204080771,708739888,92155916,204091011,-1956684240,79846885,-326413056,294531,1182991475,2122526724,74854404,805596803,134512259,1183520115,138816262,84174583,61931524,1174661331,-2094732536,1930953854,105286405,2122521067,275980292,721428665,1183515726,138816262,-739515913,-1962391925,113401317,-326413056,-2096436093,1962935422,16758809,721839863,3193298,1183445495,-129594882,-369736055,2122514596,410458118,84166283,1727463472,1574150,817484331,-1980631296,468449862,-150583669,402981990,-1177408768,-235470800,721833611,72221640,-1946530167,-523172282,-1980086741,-11469754,1183578742,1049864,-13768624,-150929479,1574369,817484331,-1980631296,1996486214,-92864516,-402098433,-4587761,98694912,-768933864,-150982471,-129594895,-231681,1183578742,1060104,-17962928,-150929479,1574369,817484331,-1980631296,1183579718,-754404866,-129627168,-225783253,-527772534,1175175210,1575324662,3016386,9961731,6815747,251396355,6946819,217448707,7274499,218365955,1638655,345964803]},{"sector":3,"data":[65538,298582275,131074,204341251,2162943,359530755,589826,362872835,2490623,306249987,1245186,305201411,1310722,253362435,10092546,328204547,2162690,351076611,2228226,348258563,2949122,10944771,2555907,12583171,2621443,5701891,2752515,214368515,3866625,177471747,11337731,95420675,11403267,66978051,11534339,87032067,11730947,16646403,11796483,179110147,11862019,360579331,4325378,379322627,4521986,246219011,4063235,81461507,4194307,200016131,4325379,255066371,4456451,177864963,4521987,176554243,4653059,205324547,5767169,206307587,5832705,327811331,5898241,9109763,4980739,14745859,5701634,361824515,5308419,119603459,5963778,309723395,5505027,320078083,5570563,175309059,5767171,77791491,5963779,69796099,6619139,125567235,6750211,2004055149,1167087646,518818645,-326903666,205949730,1946226749,17906951,954935668,-401705217,-1073020865,1996426357,-18418,41130576,1996423168,112654,-26032,28835840,-15471872,1996426870,108461834,-402098433,-353697426,-310132693,535137026,181030237,-326413056,-400495485,113706908,1742,16664263,-25263360,-14584576,-1593252298,117376718,-2147154226,850939904,-1202708986,-1706033025,271,91602955,-352321096,-1983894782,850984518,-1202708986,1344144758]},{"sector":4,"data":[16777114,1975520000,-837877828,1354771206,-150975816,1342623278,16777114,170042112,108314635,16678531,-1070922380,-16720919,-1710611914,65535,-1996049757,1187505222,-956301088,57926,922713323,1183516902,8390114,103987280,2142785566,-6664192,-1962934017,1344201798,-16441368,347604086,28856320,-1070903292,-465138864,1620725790,-2097151999,175505402,1979711037,-28915963,1586167809,86548964,1964525369,74907426,1342182584,1342441400,736261887,-1706012480,424,31475399,-498693376,-2096404317,-11869114,-828251578,-498714362,2045313917,-25263105,-385649664,2122579792,477429984,191406920,-1207666945,-1202716652,-11533305,722167862,-1706012480,665,-1207666945,1344144656,-1207798296,-443875327,180829,-2081649835,1183516396,59456776,149488501,-385647103,20775459,1025537024,2054422530,1962939453,12118275,1963165245,29944067,1963165501,30533891,-2097009687,822334,28839029,204251904,37919312,-1070923776,2130884688,-1706012007,592,39230032,1996423168,131262474,58048523,-1711147031,65535,210517635,722171136,204252096,-26032,-1070923776,2130753616,-1706012007,65535,-26032,922681344,-6682078,-16776961,-1710611914,65535,722106111,-6664000,-385875713,1996423596,84981770,-1477947362,175570689,1342182584,1342441400,191379199,1347469355,16777114,25618688,-1207535873,726664201,1347440832,211098]},{"sector":5,"data":[71731456,1979711293,84981765,1253575403,74381056,112330243,-1929623927,1996488286,-397402614,1307115862,175570689,1342409656,1342410168,1342409656,204186,20375808,-1207273729,-1202715765,-1202715763,-404028532,-1207273729,-1202715765,-347077747,175570906,1342410680,1342410936,1342410680,235162,175570688,1342182584,16777114,163074048,-1070903292,-1706012592,65535,1023690377,91619327,-351989576,4896778,50622199,-1996049914,1586297926,175570942,1342411704,-1929623925,2360794,-2103816110,-16777213,-1799878026,1183535107,-27882500,1375742469,61315664,-1645674496,175570688,1342410680,1342410936,-26032,1996423168,60012554,91797584,-6664162,-16776961,-1799878026,2042122243,-924115451,-1207273729,-1202715770,-1202715769,518587270,175570943,1342408376,-385644616,1996488500,60143626,175570768,-26032,-1073020928,28837237,721611520,513429696,-352321531,59522349,-269941899,59588094,-135724171,59719166,-51838091,59784702,1894318965,60112383,-1757562764,-385649405,-443810220,574045,-2081649835,1996425452,59291656,73319504,511180582,-1705983957,65535,-1207404801,-1957690478,1451951174,3540230,1922715730,-16777212,-1984427914,1183535107,106334980,1375746565,76126800,1996423168,59422728,71732048,84301451,1347551302,303258,142016256,1342410424,-1962654069,1040516694,-1706012160,1207,-1207404801,-1957690479,1451951174]},{"sector":6,"data":[4326662,-694529966,-1006632956,-2094660514,1962942591,142016296,1342411704,-1030962293,1375740933,83532368,1996423168,60078088,71732048,84301451,-346947542,142016284,1342411704,503675576,84646480,1996423168,60078088,91994192,815419422,-16777210,-1783101322,1589923843,2013210116,-26078,1589903360,2139301380,276103200,-1207404801,-1202715761,-1202715760,199951247,-1207404801,-1202715761,1347421072,357530,73319424,440896294,208977931,1946157373,146794,350975348,-1207404801,-1202715765,-1202715763,-1706032245,1454,385369741,71732048,84301451,1347551280,395930,73319424,478118694,638022656,35422083,1996441205,59160584,59226192,59160656,99719760,1589903360,2139301380,1735721500,385369741,92059728,-11080930,-1950873482,-1917300733,-1934077949,-6558973,-1950873482,-1917300733,-1897181181,-1207404801,-1202715770,1347421063,190874,73319424,478118694,-1926990589,1343682630,503676600,-26032,1183645696,-1957685512,1451951174,3147014,-6664110,-16776961,-2051536778,1183666179,-1706027272,875,-1034033781,-1957363706,351044588,-1559874888,512494472,1996426122,74907398,-1929326872,1343679558,-1006582040,-1993997218,1183651911,-397404436,1589903543,1200170500,-330920678,-1461170154,73319424,474450214,384583309,10086480,637820612,-1927395447,1343679558,-1006597400,-1993997218,1183653959,-397404436,1589903483,1200170500,-1933341918]},{"sector":7,"data":[2360770,1760055378,71731968,84301451,1347551274,-1962911000,1451951174,3147014,1290293330,71731968,84301451,1347551286,-1962918168,1451951174,3802374,820531282,71731968,84301451,1347551294,-1962925336,1451951174,4326662,350769234,71731968,84301451,1347551302,-1962932504,79846885,-326413056,-1962218365,1451951174,-62486266,-939633015,64070,193470148,541032486,1187452277,-1006632454,638289950,1965047680,-2012807345,-990844149,638289950,1965834112,-2012807361,-2144474357,1946220158,-96024767,2122317824,276111862,-16490812,-970587066,117374983,418057096,193470091,193464063,193595022,-1006138842,1191117918,126363140,193470148,-2012771802,742192710,117422453,2122517384,175374586,-16490812,-970587066,1589911559,130426372,-129579264,552271872,972455552,179840895,-126945536,-237884,-930350010,-1744336346,-377239549,-129070800,654073540,1183319946,2100313334,-129594413,-1034033781,-1957363708,116163564,-1996128072,1586297414,-28915716,1344143360,-106869,-472777146,89819019,922701854,1335493928,-1560281080,1996424488,-92864516,-106869,-472777146,89819019,922701854,1872364842,-1560281080,1996424490,-92864516,-106869,-472777146,89819019,922701854,-1885731540,-1560281080,1996424492,-92864516,-106869,-472777146,89819019,922701854,-1348860626,-1560281080,1996424494,-92864516,-106869,-472777146,89819019,922701854,-811989712]},{"sector":8,"data":[-1560281080,1996424496,-92864516,-106869,-472777146,89819019,922701854,-6683342,-1560280833,1996424498,-92864516,-106869,-472777146,89819019,884494366,508567045,440400,152738384,1996423168,-92864516,-106869,-472777146,89819019,985157662,508567045,440400,155097680,1996423168,-92864516,-106869,-472777146,89819019,1085820958,508567045,440400,157456976,1996423168,-92864516,-106869,-472777146,89819019,1186484254,508567045,243792,159816272,1996423168,-92864516,-106869,-472777146,89819019,1253593118,508567045,243792,162175568,1996423168,-92864516,-106869,-472777146,89819019,1320701982,508567045,243792,164534864,1996423168,-92864516,-106869,-472777146,89819019,1387810846,508567045,243792,166894160,1996423168,-92864516,-106869,-472777146,89819019,1454919710,508567045,243792,-26032,-443875328,-1957313699,-1091796500,-2033756672,130894,-1207666945,-1202716652,726664201,1347440832,77722,-96040704,1962934077,4896805,66744055,-1996049914,-1929426298,-989901666,654264990,-1927776257,385827462,101574736,-2037575445,1343684418,503678392,180460112,1996423168,59488260,175807056,-1073020928,-2033776524,65394,1996431083,59553796,186423888,-1073020928,-2033776524,130930,-2033776917,196466,-9259265,-12024179,-1192734698,74907397,1342408120,378029709,440400,-26032]},{"sector":9,"data":[-2037841920,1183711056,-1924131162,1343653958,362906,-2008642304,-26032,2122317824,1081409672,149305087,1342218424,379995789,5290064,194026064,-1073020928,1996425845,194812420,384499712,-1929087233,1343661638,504182968,3192912,-26032,-2033778688,65358,-1207666945,-1706032249,994,376750091,547782272,-2033776523,262004,-2033770261,130932,-1232398101,2055274320,141893797,-9140537,116064258,-9140537,-1224802304,-2037514380,1343684434,-955975960,130118,-1207666945,-1924136056,1343683654,-1705983957,65535,16547459,922697845,-1581774618,1183666176,-1202710874,-1706033072,148,175489035,-1710983425,65535,1996429035,-1505325820,951603222,-1202708979,-1706033104,2826,-11630905,1996423168,59291652,1418104144,-1202710785,-1706033150,3119,-11237747,181049936,-1098711040,1962999630,-373282043,1996424189,59815940,202086992,-2037841920,-1924071560,1343682630,-16493848,-1783102346,1654280195,-1996488694,1358920326,-11106675,954748950,74907396,1342411704,-8616307,112742422,1436176384,-1996488692,-1912647546,385842310,1354170192,61532415,-1207666945,-1924136044,1343652422,1342179000,817818,1350994176,-2109305345,-1224781802,-2048327856,74907395,1342411448,378422925,178256,211786320,-2037841920,1183711056,-11528562,-385920842,1996424032,59357188,-1840870064,45633558,-996519936,-1996488692,-1912647546,1343656518,-11487489]},{"sector":10,"data":[-16565272,-1900542858,1183666179,-1202710890,-1706033150,3305,-11499895,378947213,1354170192,51833087,-1207666945,-1924136047,1343658566,1342177976,855706,1350994176,-1706652161,-1224781802,-236388528,74907394,1342409400,379471501,178256,179214928,-2037841920,1183711056,-11528546,-385920842,1187447500,-1207959302,1183384967,-1537307486,1586188318,-96010246,-2020875311,1344144730,-12417395,1838829590,-1996488691,-1072955834,1996433524,-1569259612,-369013,-472778170,89819019,-2037559266,1343684424,892570,1958742784,112645,-1070923029,201213577,-14125888,1996465270,-94467166,-772126977,1518832611,-1924129275,385831558,231709264,-1073020928,28837236,721611520,-28931648,678739979,-5998849,1586209398,-96010246,-2020875311,1344144730,-11237747,-6664170,184549389,-1207601984,48955393,1183432747,1958743038,-1535705305,-1952286977,1191180894,-1948003846,503667335,-129594032,815419414,184549390,-1207601984,48955393,1183432747,1958743038,-1535705304,-1952286977,1191180894,-1948003846,503667335,1451658576,-1706027265,3681,91537419,-352321096,-1983894782,-1072955834,1996433524,-1569259612,-369013,-472778170,89819019,-2037559266,1343684476,954778,1958742784,112645,-1070923029,201213577,-14191424,1996465270,-94467166,-772126977,1518832611,-1924129275,1343652422,967066,1958742784,112645,-1070923029,201213577,-14191424,1996465270,-94467166]},{"sector":11,"data":[-772126977,1518832611,-1924129275,1343653958,979354,1958742784,112645,-1070923029,201213577,-14191424,1996465270,-94467166,-772126977,1518832611,-1924129275,1343655494,991642,1958742784,112645,-1070923029,201213577,-14191424,1996465270,-94467166,-772126977,1518832611,-1924129275,1343656518,1003930,1958742784,112645,-1070923029,201213577,-14191424,1996465270,-94467166,-772126977,1518832611,-1924129275,1343657542,16777114,1958742784,112645,-1070923029,201213577,-14191424,1996465270,-94467166,-772126977,1518832611,-1924129275,1343658566,1028506,1958742784,112645,-1070923029,201213577,-14191424,1996465270,-94467166,-772126977,1518832611,-1924129275,1343659590,870298,1958742784,112645,-1070923029,201213577,-16222784,-6683530,-1207959297,-1202651137,726663194,-1934077760,-1706025467,685,1577058744,-1034033781,-1957363710,149717996,294531,1996426101,108461832,-351956552,105286467,-1995942261,1451883078,-129579012,1187446785,-352321282,-94452716,653936383,1948270464,-129579259,1191116800,71732222,2097038905,-125926428,-15698944,1996425334,93632518,1452953630,-1962934262,113401317,-326413056,-1962480509,1451951174,-96040698,-1946397047,-1181153210,-101253110,-1003437440,1191117918,394798596,-1727510901,1183447543,2143292168,73305054,637816575,-1962932282,1451951174,-96061178,1589913203,126494458,-989968760,-1977220002,-94452729]},{"sector":12,"data":[653936383,1589905288,72285956,654198410,-806680696,-1034033781,50339590,51372033,50360064,16828673,50332928,-16000512,50337280,16934913,50333440,16835585,50333696,16932609,50333952,-15742208,50338048,-16633856,50338304,51098625,50331904,-16059904,50341632,17313537,50346240,50346497,50342400,17364481,50346496,17793281,50346752,50468865,50375936,51045889,50376704,50470401,50349312,50465281,50349824,16822529,50353920,17844993,50354176,17178369,50354432,50343425,50354176,50538753,50354944,50617089,50355200,51105793,50355456,50611201,50355712,51082241,50355968,50678017,50356224,50590465,50356480,51114497,50356736,50993409,1828742400,1937208180,1835757164,1818978915,1167087646,518818645,-327034738,-1070923514,42055760,36608592,-2037841920,-1072955572,1996433525,2923014,-1706033152,441,1342588553,1342177720,117914,108461824,121498,-373282048,-1581776444,726670853,-1202696000,1344144800,-11762037,-2135404514,-1046851582,-1962934272,-1979757434,1187510342,-1962934112,1065416798,-2094238464,1946198142,25094403,149305087,1342204088,379733645,5290064,61643344,-1073020928,266929012,112641,-1207890967,1344144810,519587467,95008848,-2037559266,1343684346,1342197944,152986,-91845376,244338942,-2147331096,16710334,-941030539,-1605974272,-2037579775]},{"sector":13,"data":[-1202651398,-1873803854,30795790,-1946532215,4161752,1191119732,-92864518,568856208,-94467326,1946173312,9038083,1344193419,503939768,19438160,2045444096,-11630963,1183535126,-1706025224,848,-11630963,-1900523498,-1706025460,328,-11630963,1183535126,-1706025222,65535,-11630963,95729744,-401698736,-661978777,-16775226,28837494,-1070903292,1317440848,-1706027265,65535,-1191545089,-1873803850,21096462,-1946532215,4161752,1191119732,-92864518,-1914171760,-94467327,1946173312,-8591101,-500085,1065416774,-385649408,-252969275,1183432747,108462076,114586,-6664192,-1996488449,-1202715066,-1706033151,65535,16547459,1996425844,62429702,384499712,-1928956161,1343660614,504182968,3192912,64002640,-1224802304,127598412,-385875966,-1224737213,-1600454836,-1207959550,-310181887,535137026,46812509,-1873273344,-326412987,-2082959842,-1070920468,52541520,-26032,1183383552,1975520244,-339727612,105286521,-1070903266,-1195880368,-1957683707,1344205894,1342382264,165018,-129579264,1183514624,-163149324,-2131337589,812908607,503727755,516131664,96057424,1183666206,-1202710790,-1706033150,65535,1358579341,-1847062896,-92372992,-955091968,129094,-1695254785,65535,-336050549,-161576179,-2131343617,-1334575041,-310119445,535137026,46812509,-1873273344,-326412987,-2082959842,1183517420,-96040696,-2131075445,829685823,-1996077429]},{"sector":14,"data":[-1014236090,-336050551,-128021744,955664010,-15567609,1191181382,-60912648,1183319946,1975519990,-60912668,1962950528,-96040187,1191118315,-2084705286,-443874579,-900899553,1478361092,-1957345904,-661774612,-1962611581,1183385158,-16520196,1586232390,541032700,1183577460,1960327942,-1957683701,-1706025277,65535,-1996077429,65797190,-1946401025,1065417822,-1946848000,-667220410,1325339764,-60912644,1948270464,-62455819,-956539253,-310181881,535137026,46812509,-1873273344,-326412987,-2082959842,922703084,1773668582,1183666176,-1202710868,-1706033072,65535,175489035,-1710852353,65535,1996429035,-1404662522,951603222,-1202708979,-1706029008,65535,-1962742397,1297948645,721610,24117507,7274499,1442051,327681,33227011,458753,32637187,65539,4259843,2556159,3735811,2228227,6488323,3801089,2490627,3014659,9830659,11534339,18219267,5767169,20447491,5832705,2004055149,1802398835,0,5,0,0,1349284931,1818586721,1986356224,1936024425,1852794368,1845523316,1768161391,1735355489,1953392896,1702428780,65651,7562585,1392537422,1299210615,1702065519,1953789250,7564911,1684957559,7567215,1684957559,7567215,1953394531,7106418,1953394531,7106418,1349284931,1818586721,1920287488,1114795891,1802398060,1702125906,1852405504,1937207140,1970226176,1130720354,1801677164]},{"sector":15,"data":[1701146707,1769406564,2003788910,-65421,3866647,59,3145728,1835619433,1852375141,788556916,1631875840,1761633652,7107694,1416822842,6647145,1819569769,5062912,892416371,1852375097,1342205044,846397517,3749171,1819569769,1631873280,1761633652,7107694,1936880963,1816293999,1382772329,6648929,1684957559,7567215,1651863364,1816356204,1399546729,1684366704,1852405504,1937207140,1852405504,1937207140,0,1835039,1966111,1966111,2031647,2031646,2031646,524293,131072,589827,262150,65543,1886216531,1665754476,1459646063,1868852841,1767309431,2003788910,1954047316,1919111936,1651272815,1090548321,1986622563,1953059941,1224762732,1952670062,1415935593,1701606505,1953059840,1700029804,1459647608,1868852841,1634879095,1291871597,7695973,1970169165,1954047316,1667318272,1869768555,6581877,2097184,1869377379,1660973938,1919904879,24838259,26018178,27459991,29032881,30147015,1968046549,1867541612,1996518514,1868852841,29559,1953656688,1677721715,1667855973,29541,1769366884,7562595,2883628,1677721644,1667855973,1769406565,2003788910,2883699,3014700,1986356224,6644585,1684957559,7567215,2883628,1986356224,1936024425,738208768,738208768,1986356224,6644585,1684957559,7567215,1684957559,7567215,1769366884,7562595,1769366884,7562595,1986356224,6644585]},{"sector":16,"data":[1684957559,7567215,2883628,1986356224,1936024425,771763200,1919168000,2556022,1230390596,1330464067,654329156,1819627008,1919897708,1769406580,2003788910,2883699,2883630,1769366884,1996514659,1868852841,1996518263,1868852841,29559,827150147,1329791034,3813965,1953656688,2883699,808464945,738208768,822094848,892219648,738210304,6630400,738225964,875298926,3484672,738211372,942407735,3222528,892219692,3288064,28716,827150147,1329791034,3813965,1953656688,1869611123,7566450,1543527482,704653824,1380205568,1329987670,1163023438,3801171,2883628,1701511226,1818586738,1308646400,1349282933,7631471,1684957559,7567215,1986356224,1936024425,738208768,738209280,1986356224,1936024425,1986356224,1936024425,1701052416,1701013878,1852405504,1937207140,738208768,1986356224,6644585,1684957559,7567215,1684957559,7567215,1986356224,1936024425,11264,1953394534,3014771,1986356224,1936024425,1701052416,1701013878,2883699,2883628,1543527424,1711287808,1937010287,1701052416,1701013878,2883699,2883628,1986356224,1936024425,1986356224,1936024425,1701052416,1701013878,1852405504,1937207140,738208768,1701052416,1701013878,1852405504,1937207140,1852405504,1937207140,1986356224,1936024425,1711287808,1937010287,1852794368,29556,1953394534,1711276147,1937010287,1868955648,7566446,1953394534,1868955763]},{"sector":17,"data":[7566446,1130954798,1953396079,1761638770,1702125892,1967352064,1852142194,1761638755,1768384836,1761637236,1701669204,2051827968,7303781,892416371,846397497,3749171,1920287603,1668179314,1416822905,1937076072,6581857,1667581043,1818324329,1631875840,1929405812,1701669204,1766617856,29811,0,0,0,0,0,0,1,131072,0,19777,1297088512,0,36,2883584,3014656,3080192,3801088,2883584,77987840,78972079,80151743,81003725,81790170,83100906,84083965,2753801,0,2097184,1819569769,1761619968,7107694,1819569769,2236928,2236450,0,0,1986356224,1936024425,1701052416,1701013878,2883699,2883628,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2122252288,65921,0,0,0,0,0,0,0,0,0,390070272,392173400,1953306540,1819506547,1668115310,257,4194304,524352,-65536,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,65535,0,1792,0,1792]}],[{"sector":1,"data":[0,1792,0,1792,0,1792,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12582912,0,12582912,0,12582912,0,12582912,0,12582912,0,-65536,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-12648448]},{"sector":2,"data":[-1,-12648193,-1,-12648193,-1,-12648193,-1,-12648193,-1,3670271,16128,3670023,16128,-13041657,-12632065,-13041433,-12632065,-13041433,-12632065,-13041433,-12632065,-13041433,-12632065,-13041433,-12632065,-13041433,-12632065,3670247,16128,3670023,16128,-12648441,-1,-12648193,-1,-12648193,-1,-12648193,-1,3670271,16128,3670023,16128,-13041657,-12632065,-13041433,-12632065,-13041433,-12632065,-13041433,-12632065,-13041433,-12632065,-13041433,-12632065,-13041433,-12632065,3670247,16128,3670023,16128,-12648441,-1,-12648193,-1,-12648193,-1,-12648193,-1,-12648193,-1,-12648193,-1,-12648193,-1,-12648193,-1,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1953300480,2097409,4194337,524352]},{"sector":3,"data":[0,0,0,0,0,0,0,0,0,65281,0,65281,0,65281,0,65281,0,65281,0,65281,0,0,0,0,0,0,0,0,14688000,0,15744768,0,16285440,0,16580352,0,16711425,0,16711425,0,16711425,0,16711425,0,16711425,0,16711425,0,16711425,0,16711425,0,16580352,0,16285440,0,15744768,0,14688000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-16711680,16318463,-16711680,16318463,-16711680,16318463,-16711680,16318463,-16711680,16318463,-16711680]},{"sector":4,"data":[16318463,-16711680,16318463,-16711680,16318463,-16711680,16318463,-16711680,16318463,-16711680,16318463,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,0,8390400,1953300480,1936607504,1819042164,1869182049,33554542,1684291840,2003127840,1769099296,1919251566,3026478,1140851456,1952803941,1917853797,1702129257,774778482,589824,543450177,544695630,1953394502,3026478,1140853376]},{"sector":5,"data":[1952803941,1866866789,774796398,1393557550,1886745701,65536,1852731203,1769235301,779316847,11822,1917845508,1702129257,774778482,360448,1835888451,1667853941,1869182049,1344303982,779383407,-1879036370,1717924432,1852142181,7562595,1392510592,1701147235,1866670190,1936879468,3026478,-2143289344,167778585,-1912557568,0,524296,524408,10,1132613634,1970105711,1633905006,1852795252,1699946611,1852404852,29543,1441800,524332,10,1350717442,7631471,335559680,201335808,67321344,-2142240256,827150147,1879048250,603984896,1056967680,1027,1329823824,3813965,637536256,134228992,2560,-2108685824,1685414210,1952535072,14949,2359356,786461,820,8474755,905971712,134228992,2560,-2108685824,1685221207,1852132384,6845543,872430592,201332736,67314688,-2142240256,1342177332,402666496,620760064,1027,3506256,872441856,201332736,67315200,-2142240768,-2147483594,402666496,654314496,1027,3637328,872454144,201332736,67315712,-2142240768,134217784,738215424,167774208,33554432,1632666192,2037672306,3932160,2359364,52494348,1342308356,1702249856,1610612846,603997184,570428416,1027,1682931792,-2080374684,603997184,587205632,1027,1867415632,25966,5636104,524332,10,1401049090,544239476,1937008962,3932160,2097236]},{"sector":6,"data":[53018636,1342308356,12672,5505120,786464,262954,830492672,13614,5505156,786464,262955,847269888,524288,2883686,655368,1342308352,1851869314,1634235236,25963,6553660,786484,262956,1216368642,2003071585,6648417,1677750272,201339904,67316992,-2142240768,1701736270,2424832,2097272,65550,1342373889,7032704,2013293312,234889216,512,-2142240000,1668178243,27749,2004055149,1802398835,1802134381,-2143289344,419436804,1073789952,0,393224,524356,10,1149390850,1969317477,1344304236,1953393010,29285,1179656,2621572,196628,1149456547,1969317477,1344304236,1953393010,29285,1310868,917536,65537,1333809155,-1811939221,536881664,33558016,50331648,1631813712,1818583918,1953300480,1819506547,-2143289344,419436806,1409338368,0,393224,524320,10,1350717442,1953393010,29285,393364,524332,10,1132613634,1701736047,1869182051,134217838,-2080370176,905979904,-1560280831,1866695504,1667591790,1852795252,9699328,3145746,19660840,1352859649,1852785539,1952671086,7237481,1073753856,234889216,16777472,-2142240000,27471,4194429,917536,2,1132482563,1701015137,1828716652,1937208180,1835757164,1818978915,1350565888,10,1744871424,0,524300,1703996,459152,1417695235]},{"sector":7,"data":[6647145,134241792,436219904,117545472,-2142240000,1702125892,524288,4456488,28180532,1342177287,1920287616,544370547,1852402754,201326699,1006649344,-1543500800,50332161,1919112016,1114401903,29281,872418304,134221824,2560,-2108685824,2003790931,3670016,1048628,655368,1342308352,1935754882,1409286260,1140860928,-1040174080,1793,1866760272,1701601909,1768702752,27491,4194392,786492,131512,1666404355,1819045746,7496002,5767168,1048628,655368,1342308352,1869370242,-2080374665,268448768,167774208,33554432,1632010832,29811,2004055149,-2143289344,167778572,-1946088448,0,393224,524352,10,1401049090,1701147235,1866670190,1936879468,524288,7864338,1310760,1352859649,1919112067,544105829,1869377347,29554,4980744,524312,10,1216499714,25973,4980772,786524,131772,1666404355,1819045746,7496002,524288,1572964,655368,1342308352,1769095810,7628903,1677730816,201350144,33738752,1397752576,1819243107,1918976620,134217728,402684928,167774208,33554432,1866695248,7499628,2080384000,201350144,33736192,1397752576,1819243107,1918976620,-1946157056,2013267456,167774208,33554432,1632862800,1701605485,9175040,2097270,65550,1342373889,7032704,1979758592,234889216,5376,-2142240000,1702061394,-469761932,536901120]},{"sector":8,"data":[33558016,50331648,1631813712,1818583918,1953300480,1819506547,1668115310,1936485226,-1874853888,419436804,1040227328,0,524296,524340,10,1300385794,1702065519,1953517344,1936617321,524288,9175060,9830412,1342373890,1717914752,1769090932,544499815,1937076077,1969365093,1852798068,2004033651,1701867617,603979876,536881152,16780800,50331904,1800372304,5767168,2097192,131086,1342373888,1851868032,7103843,1937009920,1852601207,-1874853888,100664867,-1644099072,0,393222,524356,10,1132613634,1953396079,1394637170,1769239653,7563118,301991424,671116288,16782336,-2091867392,1853189955,544830068,1953785171,1936158313,7864320,9175054,655404,1342177287,1835619456,1866866789,1952542066,8126464,2621466,59703308,1342308356,540160384,1920298856,8126464,2621482,59768844,1342177284,540291712,1920298856,11141120,1310748,655368,1342308352,976302466,14645,1704128,786450,915,8474755,469817344,134222848,2560,-2108685824,893006642,-301989831,301996544,-1811936256,-2097151997,33104,2883754,524328,10,1401049090,1918988389,1919906913,-738197446,167782912,-1862267904,-2097151997,33104,4194310,2883692,458762,1149259776,543519841,1836216134,29793,4980746,786456,263051,1300254722,22852,4980784,786456]},{"sector":9,"data":[263052,1149259776,22861,4980822,786456,263053,1501581312,17485,6160394,524328,10,1401049090,1918988389,1919906913,872415290,167795712,-1912599552,-2097151997,33104,4194424,3670156,458762,1317031936,1700949365,1866866802,1952542066,8126464,2097230,655368,1342308352,808464770,14896,4980894,786442,914,8474755,1543535616,134225920,2560,-2108685824,1768121668,980181357,10354688,655450,59310092,1350762496,2080374913,536898048,167774208,33554432,1766621776,3830899,1744870912,201329152,231936,-2125430016,11796480,3932244,655368,1342308352,1667581058,1818324329,1734960160,980644969,15859712,655442,59244556,1350762496,-1275068287,1006658560,-1795159040,50332163,1699512400,1852400737,1700405351,28530,8126584,1835148,458762,1132482560,1701999221,544826222,1836216134,29793,9044092,524316,10,1401049090,1868721529,14956,8913050,786450,901,8474755,-2013219840,201335808,67339776,-2142240256,1717924432,30825,8913116,786468,263047,1400918016,1768318581,100663416,536903680,16780800,50331904,1800372304,2883584,2097280,60227598,1342373888,1936020096,29797,8388690,917536,2,1132482563,1701015137,1828716652,1937208180,1835757164,-2143289344,419436810,1509993472]},{"sector":10,"data":[524296,524352,230,8540162,335546368,134243328,2560,-2108685824,1702063689,1948284018,1679844712,543912809,1752459639,1701344288,1811939360,805311488,-100661248,33554432,33360,1835016,524396,10,2038583298,1998615919,543716201,1629515636,1763730532,544175214,1986622052,8293,1835124,524292,240,8540162,469792768,134228992,2560,-2108685824,1919885356,1869112096,6648687,603981824,134257664,2560,-2108685824,1629515361,1919251564,1769234798,1679844726,1702259058,1919509551,1869898597,3832178,805308416,201366528,-2147476992,-2125430016,2359296,2097220,65550,1342373889,7032704,1140877312,234889216,512,-2142240000,1668178243,27749,-2143289344,7,1107360768,0,524296,524392,230,8540162,335546368,671128576,16782336,-2091867392,7340032,5242888,16384008,1342308354,8322,393408,786484,524287,8540160,134267136,134230528,16833536,-2108685824,11272192,2097198,65550,1342373889,-738197376,536882688,33558016,50331648,1631813712,1818583918,1953300480,-2143289344,419436806,1208007680,0,524296,524460,250,8540162,301991936,134261760,66560,-2108685824,524288,11272222,1703948,1350762624,385876097,536883712,100666880,50331904,1700364368,1308622963,536883712,117444096]},{"sector":11,"data":[50331648,1867415632,8716288,2097202,131086,1342373888,1851868032,7103843,1937009920,1852601207,1784900971,1685285995,-1874853888,285218310,1258328064,0,327717,524356,131071,1300385794,1869767529,1952870259,1852397344,1937207140,589824,23,-65536,1342177283,1852793730,1819243124,0,9437198,-65528,1342308353,1852785538,1819243124,1851871264,27749,2228262,524352,131071,1451380738,1769173605,824209007,3223598,788530432,151028736,33554176,-2108685824,2037411651,1751607666,547954804,892877105,1766662188,1936683619,544499311,1886547779,889192494,536886016,16780800,50331904,1800372304,1953300480,1819506547,1953451538,1869505824,543713141,1869440365,221149554,1953394499,543977330,1701732688,1816206956,1684104562,1970413689,1852403310,1866670183,1869771886,1632641132,778855790,1868710152,774796405,1867319342,778400629,1411001902,1830842223,544829025,1668246627,1864397675,1769218162,1936876909,1163133998,1308906579,73756271,544108320,1380199940,1177420886,1125338703,1953396079,1394637170,1769239653,779315054,11822,1953300480,1684291851,1769099296,1919251566,1769107468,1919251566,1818846752,977339237,1867388764,1769107488,1919251566,1818846752,1713402725,1684960623,1983975982,1634494817,543517794,1852404304,1936876916,1769099278,1919251566,1818838560,52443749,493118529,2037411651]},{"sector":12,"data":[1936941344,1634296687,543450484,1852404336,544367988,1701603686,1869878048,1769104416,1680827766,1667592809,2037542772,1631785786,1953459822,1684300064,1769107488,1919251566,46,1828716544,1937208180,1835757164,1818575886,543519845,1852404304,242378100,1852404304,544367988,1701603654,1141252154,1952803941,1750280293,1684370017,1769107488,1919251566,1818846752,1769414757,1847618668,1646294127,1701060709,1702126956,1142894180,1952803941,1935745125,1768124275,1684370529,1769107488,1919251566,1818846752,1712660581,544042866,1986622052,1768173413,1952671090,981037679,544165405,1986622052,1768173413,1952671090,544830063,1667592307,1701406313,1124871780,1869508193,1768300660,237003886,1852727619,1679848559,1952803941,8293,0,1937009920,1852601207,1784900971,1684291848,1852786208,1868958068,1713402990,56978537,341588545,1713401678,544501359,1701603686,1868963955,778333813,1635139855,1650551913,1176528236,1937010287,1852786187,1766203508,540697964,1684291843,1886339866,1935745145,1768124275,1684370529,1852794400,1768300660,320890220,1679847284,1702259058,1919509551,1869898597,272267634,1852727619,1629516911,1713398884,779382383,0,1953300480,1819506547,1668115310,1936485226,544165395,1953394534,1852383347,1818326131,778331500,1818575883,543519845,1953394502,1852786187,1766203508,540697964,1818575878,476410981,1701602628,1629513076,1668248435]},{"sector":13,"data":[1702125929,1868963940,1713402990,543517801,1869768213,1919164525,795178601,1701996900,1919906915,1310538361,1919164527,795178601,1701996900,1919906915,1886593145,1718182757,778331497,1851867916,544501614,1684957542,1631784480,1953459822,1818584096,543519845,0,1828716544,1937208180,1835757164,1851867931,544501614,2037411683,1818846752,1869881445,1937008928,778464357,1953451551,1869505824,543713141,1869440365,1948285298,1868767343,1713404272,778398825,1953451550,1869505824,543713141,1802725732,1634759456,1948280163,1868767343,237009264,1852727619,1663071343,1952540018,8293,1310392320,1869619311,544437362,1953720684,1763730533,1230446702,1313418830,1310076489,1919950959,1702129257,1763734386,1635021678,1684368492,1631785262,1953459822,1986095136,1868701797,86009972,1684955424,32,1937009920,1769099299,1919251566,1818846752,1869488229,1768693876,1684370547,544106784,776882519,776556105,1763714846,1869488243,543236212,1768710518,1919950948,1702129257,1768300658,3040620,1867388416,543236212,1768710518,1633820772,1914725493,778400865,369098752,1881173838,1953393010,544436837,1953721961,1701604449,1126575716,1869508193,1701978228,1685221219,2003136032,1952805664,1735289204,1852383347,1313429280,1229867310,46,1828716544,1937208180,1835757164,1818978915,1852397329,544698212,1801675074,1970238055,1460364398,1868852841,1700012151,1393259640]},{"sector":14,"data":[1819243107,1631723628,1091597170,1986622563,1767120997,543517812,309485890,1667329609,1702259060,1953059872,1109419372,1410232929,1701606505,1918976544,2019906592,1767312500,2003788910,1634879008,1292395885,544566885,158490946,1970169165,2019906592,1666388340,1852138866,1667318304,1869768555,107245173,1769235265,1225287030,1952670062,174421609,1701603654,1682251808,1460565097,1868852841,1700012151,538997880,1828716576,1937208180,544165405,1920103779,2036559461,1836675872,543977314,1667592307,1701406313,1311190628,1700949365,1718558834,1667589152,1818324329,1734960160,544437353,544501614,1667592307,1701406313,11876,0,0,0,2004055149,1802398835,1802134381,1395545396,741228846,538976288,538976288,741416992,808202272,808202796,539766828,539774273,539774288,740565024,741223468,742009903,1632252972,745431408,538976288,538976288,825761824,741482540,741485616,741354544,743260448,743264288,-1524621280,774646828,975974188,1312042028,1701344357,1851878514,539784036,857743392,824192049,841756716,824979756,555753516,555753516,1713381420,741223532,741157932,876293178,1735157058,745370985,538976288,538976288,539767347,741551153,741420082,538979377,538979361,538979361,539772448,791424044,992754220,1634879028,744842094,538976288,538976288,741552928,858534176,824980012,539767084,539762976,539762976,742793248]},{"sector":15,"data":[741092384,742009903,1884501051,745433441,538976288,538976288,875765792,741417004,741485619,741420081,740368416,740368416,1937002528,741092908,975974188,1228159788,2037145972,538976300,538976288,857743392,824192057,808202796,824979756,555753516,555753516,1277173804,741223470,741289004,876293178,1953068883,1819436410,744779361,538976288,539767092,741485617,741420082,538979377,538979361,538979361,774656582,774646828,992751148,1768838452,543450484,1735289163,745369444,741618720,808202528,824980012,539767084,539762976,539762976,748888096,741223468,742009901,1698968620,1918987630,538979435,538976288,892608544,741417004,741485619,741420081,740368416,740368416,1380655136,741092908,774647596,1395931948,1701078391,538979438,538976288,874520608,824192054,841757228,824979756,555753516,555753516,1260396588,741223506,741157932,876293166,2003988302,539785569,538976288,538976288,539768628,741485617,741420082,538979377,538979361,538979361,774656587,791424044,992751148,1936021300,1699160180,1851878770,538979449,741946400,858534176,824980012,539767084,1428955424,539783784,743261216,741092398,741223470,1967207483,1634890867,744581484,538976288,825630752,741417004,741485616,741420081,740368416,740368416,606085152,774646828,975973676,1177824300,1634496105,539780206,538976288,892543008,824192056,841757484]},{"sector":16,"data":[824979756,555753516,555753516,1293951020,740305995,741157932,876293178,1701344335,1866670194,1920233077,538979449,539766816,741354544,741354546,1092627504,1344285773,538979405,741090336,791424556,741095980,10753,0,0,0,1937009920,1852601207,1784900971,1685285995,0,2035482624,1835365491,7680,812801,694364160,1886339872,1734963833,1109423208,1953723497,1835099506,1668172064,959520814,539898936,543976513,1751607666,1914729332,1919251301,778331510,0,520093696,1090525952,2560,0,26214400,201328895,536576,-33488888,16654111,0,3166,0,1919243264,1634625901,108,0,184353024,1663565824,1866670121,1769109872,544499815,1937008962,1634038388,1850286189,824192611,775174201,1819033888,1734963744,544437352,1702061426,1684371058,46,0,4718623,655456,131072,-1879048192,524289,134217740,536872960,-536846081,0,718336,0,30208,469762048,806888556,806099000,0,203294208,2117090364,1010597388,0,410795008,2121809020,1013333118,1667261958,1014774883,1719549052,1717986150,1012939902,3670032,393312,408944670,7888908,0,0,0,1880624640,115,0,0,0,0,0,0,0,0,1711291392,2120629784]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[1142968148,538976335,538976288,538976288,538976288,1230131232,1414091343,1393167705,544239464,544370534,544695662,1953068403,538976288,538976288,1342836034,1701736296,1852138528,1953720692,538976288,538976288,538976288,1409944899,543517537,544366947,1713401449,1948283503,1969581685,538976368,1292504385,543517537,1851878512,1701978213,1987208563,1869182049,538976366,1342836034,543908713,1948282997,1952540008,1948283493,1701536617,538997620,537529666,1866997792,1970086007,222259299,1852785418,1952670068,1634038304,1919906924,538976288,538976288,222437408,1701593866,1730178657,1734439521,538976357,538976288,538976288,222502944,2003782922,2002873376,538976366,538976288,538976288,538976288,222437408,1634488330,1886593134,1735289202,1918986016,544105828,538976288,222437408,1751339786,1819632741,1635131493,1769234787,538996335,538976288,222371872,1634030090,1461854308,1629516385,1344300142,1701011813,538976290,222502944,1769101066,1193305460,1684955506,538993005,538976288,538976288,222502944,2037727754,1701998624,1953391987,1919903264,1918979360,543254644,222437408,1818317834,1869881451,1701987872,538976356,538976288,538976288,222437408,1801540618,1970217061,1634148468,1734435442,538976357,538976288,222437408,1818313482,1768956012,544173665,1701737844,538976370,538976288,222502944,10]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[14703181,31,32,65535,-333119488,0,64,0,0,0,0,0,0,0,0,1024]},{"sector":16,"data":[1409297384,544434536,1735357040,544039282,1970365810,1936028265,1667845408,1869836146,1461744742,1868852841,221148023,240788490,-855002081,1275181089,8653]},{"sector":17,"data":[279886,12583297,191782519,655366,268437504,68348,655360,262154,4194430,22282384,23527775,1601,262174,0,0,0,222625900,222687600,74187104,74248560,64487860,64549168,122094081,122155312,38994567,39121200,115016367,115142960,82379565,82506032,23724935,23851312,25953186,26014000,28705725,50987281,-2147287036,1,64618496,-265289663,32769,-2147221504,1,68878336,-265289714,32769,-2147155968,6,69795840,-265289719,32769,70385664,-265289719,32777,70975488,-265289710,32778,72155136,-265289720,32770,72679424,-265289721,32772,73138176,-265289720,32780,-2147090432,3,73662464,-265289720,32769,74186752,-265289706,32770,75628544,-265289725,32771,-2146893824,1,75825152,1048578,188,0,1229016327,1128481102,1414483463,1145131077,16777216,201328640,4352,1380272902,55330126,71910471,1380275029,1497713416,1380011842,33489220,-2130624563,16777476,1070399999,67108868,33496064,409549,1070399744,16976646,-2063122483,1070399744,16806659,212941,1070399488,66307,1762017229,1070399491,5,1158037453,1070399493,73478,-1459339315,1070399489,255748,475085,1070399488,402692,-2130559027,1070399488,215042,606157,1070399488]}],[{"sector":1,"data":[66568,922828749,1070399496,431620,-721338419,1070399495,648705,1006714829,1070399498,686849,-1626914867,1070399491,296711,540621,1070399488,254465,1766663424,1936683619,544499311,1684957527,544438127,1702129486,543449456,1819308097,1952539497,7237481,1347291392,1346653783,21188434,1313212160,1431257665,184551764,1111576134,1347703375,205737810,1313213952,1380926017,1196180564,1129271888,1141440523,1313228620,1313165391,1174929418,1447121742,55787845,1313211904,1145981254,1291845640,-2081649835,1048776428,1946157088,439811857,1354771200,112720,-26032,922681344,146276378,45633536,1183535104,994566,71732048,1342178349,1342177720,16777114,1575324416,1426065090,-327029621,1183514768,736520,1139344245,-385647103,19727059,605440,-404159626,-1816132862,497549102,112643,-26032,113704960,10485790,-385875528,-1070923007,-401698736,-1073020076,922742388,922681982,28835864,263737344,280514560,314068992,922701824,-2135424890,-2037559296,-1202651276,-1202716022,-1706032520,65535,1039419017,477495295,1586943,3946239,5125887,-9140595,3192912,-401698736,-1729427631,16023171,1048810100,1979646584,406257474,1010237184,1954974976,922702079,616038444,244338688,1023879400,57933830,-38423,-1711110090,65535,-9140595,-1967632362,-1202708990,-1706029056,65535,-1929217885,1358918790,16777114]},{"sector":2,"data":[-12785408,1851011,-1207340032,-1202716670,971702273,1586943,1342293176,-1705983957,65535,-58903,-1207952842,726664193,-4566848,-1706012033,459,-2130771479,153150,163057269,79187968,-51884032,-18028287,16777114,-18552576,1342180024,-352320072,1095912,-26032,-1073020928,62391677,-1207702781,1183384320,439811848,67155968,1354771280,-1415950256,-1996488702,1451882054,1976581112,-22746877,16777114,1887865088,1745407,-9402823,413207668,1887844608,-385649409,2122448518,1963131400,-18416,-26032,-1073020928,1877541749,439812094,142016256,1347469355,-26032,1541996544,1354771454,16777114,-28251904,1718015,1342445496,1347469355,-2080426007,8254,1152910709,-1207702784,12189892,-1706012080,65535,343195659,2113155,-1207601920,48955393,547602475,-32446208,1586943,3946239,5650175,1542045739,1745406,1946437177,-34281213,17202817,-14060282,721426486,922702016,347602970,246960129,-1070903292,-6664112,1342177535,1342177720,16777114,-37426944,33980033,-385649658,922746298,28835864,922701824,364380186,-1697977599,65535,200951433,-385647424,-63046246,-1593477633,250282064,-67469693,1386284405,-1593578752,1183383626,406257660,1010237184,1048793088,1946157084,3318022,-1191328279,-1075248700,1258374397,1342277121,1342394371,2130798339,-2046791423,998656,1223230325,1025081343,57999372]},{"sector":3,"data":[1040114409,57999373,1040079593,-2022440946,871088171,1962941245,-18618109,423430783,-385649408,-387186998,2080571453,50413027,1223230335,50478590,1609106293,50544126,954794869,-1949701122,146955749,-326413056,-16585597,721583670,1996443840,406257414,73304832,-472783919,9091071,8959999,16777114,-28931840,1979711293,406257436,1010237184,909573888,1354771200,1343238328,1659375248,-339727612,-28931325,-1034033781,1478361092,-1957345904,-661774612,-955978621,130118,1718015,1342441656,1347469355,84384336,-1039466496,922705780,922681368,922681404,1048772656,1946157084,3318021,-994573333,2122534913,91488262,-351272776,213920514,244338723,-1996227352,104725574,-2094631680,7230,45616500,28856320,954748928,-14685185,-1207953354,726663620,1620725952,-352321535,-58817779,-1207602174,48955393,-310132693,535137026,46812509,-1873273344,-326412987,-2082959842,1183526124,1064204,-2132212875,-385649152,37552565,1030452224,57999365,1023458281,57999366,1023446761,57999367,1023447017,913571848,1962938173,12904707,-2097044247,1963657854,702478,374864,-21895088,-16689687,1996426870,175570700,-16222465,2140800630,-385875962,922681662,1996423194,175570700,-16222465,2140800630,-385875961,-1070923482,-26032,468254720,1354771201,-1041756528,1975520254,17623299,1586943,16777114,16836864,1342177720,-1511518576,1877580286]},{"sector":4,"data":[176063233,-385649663,922681578,1352269848,184549383,-385649472,922681562,-6684646,-385875713,1183514830,1958742794,81168,-85392523,146688,-1209465996,242679552,-16353537,2011695222,11069946,-1928431873,1343673926,16777114,242679552,383141517,-26032,-1947664384,439811840,-163148544,-6664170,-2097151745,2131232382,105301767,283836416,134639235,972703371,75236934,105285960,34111107,1187448703,-352321528,141460240,-62485758,2080917049,1183401988,439811848,209125120,-16091393,1996425334,35559942,753598464,-352156184,1745191,1963345465,142508324,494208256,1586943,3946239,3553023,-1202667477,-1873805264,33810446,82427947,242679807,-16091393,1996425334,-100669434,-394936309,-1779954032,1038215939,57999634,2013163753,1129768,-806812811,1719806,289268340,-6392831,1996426870,175570700,-16222465,-6683018,-352321281,18234667,2078868341,1024423935,-613285612,1996559677,-27596541,20828651,-385649406,71171843,-385649406,-1075052805,-1962742397,1297948645,1426066122,-326898549,209125146,-16091393,1996425334,74907398,16777114,1975520000,-339727559,406257483,1312227072,-431583998,-6664170,184549631,-1927318080,1343678022,16777114,-431584000,2811984,175423499,384190093,-26032,1183645696,726669030,1347440832,16777114,1975520000,-364475464,-1034033781,-1957363702,82609132,-1593549173,121176090,-1947663500]},{"sector":5,"data":[41910528,57934082,-16743959,-1711269834,65535,1953873931,2113155,-1955760896,2139292766,1685325828,218398595,922705524,297271322,-4698108,-1070903041,-1550167984,989855751,1912610310,1354771212,16777114,-339727616,439811898,964608,1354771280,2023379024,184549377,2132901074,1073757445,922688114,922681368,922681404,-1070923722,3192912,-401698736,-974454675,-1962933832,46292453,-1873273344,-326412987,-2116514274,-2097085204,7230,1183517301,-1706025466,65535,-1710852353,65535,-17004919,-16873843,950095894,-1706025472,2073,-2037690286,1344208636,545178,406257408,-24736512,-1706027266,65535,-1962742397,1297948645,503317194,1430622296,-1910575989,116163032,-24736511,-1957685506,1344145990,551834,-91846400,-57243138,142509054,1376547840,138840912,-6664162,-16776961,-2037576074,1343684350,504120971,108461904,16777114,49120000,1562371467,707149,-2081649835,922684140,12058650,-1070903292,-1706012592,2346,-1980217719,-801375658,28837237,721611520,-62486080,1586943,582042,28856320,-342208512,1342177288,1342374072,-1694730497,2296,1586943,590234,28856320,194662400,1342177289,1342374328,-1694730497,2328,1586943,603802,28856320,1083854848,1342177289,1342374840,-1694730497,2392,1718015,1342445240,1347469355,67279440,1183383552,406257662,157391360,-1202716672,-1706033151]},{"sector":6,"data":[2411,1685584,-25263280,721712128,-1207702592,-1706033151,2526,1586943,640922,28856320,-778416128,1342177289,1342184376,2113155,-1207602176,48955400,-1705983957,65535,33310407,406257408,-26112,-1073020928,1187457140,-352321290,-159481075,-955812607,64582,1996427243,-25866,1183383552,1975520246,-25884,922681344,-124125160,1342177289,1342177720,16777114,45633536,1996443651,170564348,-443875328,1478411101,-1957345904,-661774612,-16061309,-1711269834,65535,-1694742903,65535,200951433,-15958592,247004278,28856320,-15602944,-6620554,-16776961,247004278,-1070903296,-26032,-6684672,-2097151745,-443874579,-884122337,1167120524,518818645,1465309326,-1962851167,-1962850786,-1962850290,-134133226,1151541709,1176406273,1208912129,1242990849,47105,-789118349,-310157729,535137026,-1932833443,1430622424,-1910575989,142016472,-16353537,1996425334,-26106,-987889664,1102317142,41034189,1344258099,-16222465,1996424822,108461832,16777114,-310159360,535137026,80366941,0,0,0,0,1942235995,920188696,656953,959844215,1979714566,212022788,-2061568,-1140870941,-1329856848,-1705993987,65535,16777114,1958742784,1577502507,-1996488703,1459703822,1381172822,855713768,-6664000,1459618047,16777114,1958742784,-74455033,27322448,-850591816,-1957313759,-18196,-1957313699]},{"sector":7,"data":[-18196,-1957313699,1354771436,-1710983425,2919,-1017256565,-1192457387,-1957691328,1861682246,-1634054138,-1962934261,1438866917,1996483723,108461828,1342193848,16777114,1575324416,-326412861,-1710983425,2989,-1017256565,736922453,1996443840,-26108,-443875328,-1957313699,74907628,16777114,1575324416,-326412861,-1710983425,3094,-1017256565,-2081649835,-1070923028,71732048,-1706012007,65535,-1929492855,735087578,1575324608,-326412861,-16585597,-6683018,-1996488449,-628294074,-1070870389,-1017256565,-1275051,-6683018,-1962934017,1438866917,1996483723,-26108,-1073020928,28837236,721611520,1575324608,-326412861,1347469355,16777114,-402345728,-443875162,-1363426467,-1258585855,1393062657,1130043391,-1007490237,-1207958341,567100416,-1024062862,-2147126144,1073840783,-1007912629,567095476,-1023318877,22939278,741772070,889239552,512303565,109838674,521011540,-1171980104,567085808,-1542550730,908256001,27657925,-617358708,-1575026890,-385649919,-986251703,-1946047994,244698,-1575026890,-1021372927,855643321,-2105018661,74711297,567099060,-1007492541,-387151019,1996423243,1042436,-1017256565,115600690,-657331503,1438907106,1122561163,-29235200,175432714,294528,1187382389,-987824636,-1207873002,567092480,-1542550753,-1157111039,520028162,1183515042,-850611196,28621601,28638081,-11335565,1128487703,-1144786197,-75431500,141754806,1528299347]},{"sector":8,"data":[-219462845,50347715,50826497,50358272,50440705,50358784,50654977,50359040,50797825,50359296,-16590848,50334976,-16624640,50335232,50725377,50359808,50897921,50360064,-16635648,50335488,-16644608,50335744,-16673536,50336000,50788609,50360576,17496065,50331904,-16489728,50336256,50793985,50360832,-16696064,50336512,-16728064,50336768,-16747008,50337024,17518593,50332928,-16330496,50337280,17530113,50333184,-16109824,50337536,17533953,50333440,-16121856,50337792,-16254976,50338048,17546241,50334208,50338305,50363648,17552385,50335488,50888961,50331904,17559297,50336000,17565441,50336768,51060993,50332928,50663937,50333184,50958849,50366720,17576193,50338048,50970113,50366976,67801601,50332928,67809537,50333184,17505025,50339328,50967041,50368512,50683649,50337280,50453761,50337536,50955265,50371072,50911233,50371328,50905345,50371840,50679553,50339584,50907905,50372352,50705153,50340096,50866177,50341120,50697473,50341632,50700801,50341888,50785025,50377216,50670849,50345216,50347265,50345984,16855041,50350592,34216705,50349056,50509057,50347520,17297409,50351872,50404353,50349312,17304577,50354176,17497345,50354944,50573569,1291867904,543912545,1411395140]},{"sector":9,"data":[-2081649835,1085803244,12079104,-62486270,31431248,1183383552,-163149318,74825739,1475067947,16664263,74907392,-771858805,1486851043,-1959264512,1344206406,-1694730497,65535,-129595072,-771858805,1486851043,-163149056,1183516553,-163184136,-244183,2122579526,-1048832002,-1191545089,1177223680,1085821180,-6664192,-1962934017,46292453,-1873273344,-326412987,-2116514274,1442907884,-401705217,-1072955542,-1070922379,721556969,45633728,1347590527,188570,42509056,-1207011585,1344143536,16777114,38707968,42483331,198407168,-3181376,1996425846,-26104,2122514432,175439884,-401705217,-1073020450,1183560820,41853710,-17135929,518717446,-17123701,-422378831,8963713,-16616193,242679604,16777114,-1996191488,-1895890348,-1098645766,2097217274,-401698601,582484518,-1924129280,385810054,-1161811120,1347551484,-1202696112,726663268,-11513664,1347423862,98714,1614592,58048523,-1191229463,1344143545,503363768,12892240,1380974778,1354771280,39368784,26261584,406257488,1030144,242679632,1347469355,16777114,1745664,58048523,-1694561303,65535,1586943,-1705983957,65535,-17004919,1354771280,196628560,12079104,-862302199,-16777215,738131126,1050759360,-1202708992,-1202716661,-1706032896,65535,39198347,-1207957562,726663234,-811970368,-1560281086,922681986,213385242,922701828,-1070923134,-1499836336,-16777214,-1711263178]},{"sector":10,"data":[65535,1586943,-1710852353,65535,638082756,1946173312,29669492,1392922654,16777114,29669376,-26032,-994574336,-1202708991,1344144010,1344798904,161434,41460480,1979711293,406257460,1010237184,29669376,741801808,2406400,-26032,104660992,-1206487808,1344143812,503483064,268482640,-26032,2023948288,2017362690,158662402,1342293176,16777114,439811840,67221504,1354771280,1718015,1342439608,1347469355,44931664,1347551232,16777114,112640,49120094,1562371467,707149,-2081649835,1085801196,448286720,-6664192,-1996488449,-1070858682,2130819152,-1706012007,65535,-1979818357,1996426823,112644,-1706012007,65535,-1979818357,1204227143,-956301038,5191,-1996208501,582486599,373786880,-954703988,-64953,-16496697,273139711,-1014300666,-6664162,184549631,721712576,-15995968,-6619530,-1207959297,-443875327,180829,1167087646,518818645,-326903666,12498956,-1930017143,1344206942,503366584,1354771280,229274,-96040704,-493825,-910625162,726670848,-6664000,-1560280833,1996423458,-159973384,503369656,17479760,1344163870,1342179000,243866,-126419200,-1191807233,1344143573,503386296,-1202708912,-1706033146,982,-493825,-575080842,-1202708992,1344143579,385631885,178256,-26032,1183449088,111384828,-126419199,-1191807233,1344143589,503374776,-62485168,45633558,-1650831360,-1979711485]},{"sector":11,"data":[-1550255034,1996423432,-159973384,503376824,1354771280,223642,19178240,200951435,1024226496,460587009,1946157629,-952833244,72710,503760640,-956300543,100737030,-954144000,50404358,503760640,-352321535,470206442,-956300031,134290950,537315072,-2097151999,-443874579,-884122337,16973850,197111,196719,16712329,16973843,65554,16973829,65655,16973830,66363,196615,16712286,196634,16712234,196635,16712192,196636,16712080,16973853,197043,16973977,197020,16973980,65801,16973875,66581,16973881,196933,16973865,66555,16973882,197132,16973866,196777,16973997,197364,16973998,196672,16974000,196793,16974001,197419,16973881,66109,16973898,65746,16973903,66081,327768,16712474,131073,16712479,1632436225,1167087646,518818645,-326903666,-1924863212,1343679558,1347469355,112720,-26032,-1073020928,1048786036,1946157692,2083979026,-330920702,-6664170,184549631,-1928038976,1343679558,16777114,-330920704,-6664170,-2097151745,161342,1048819060,1962934902,112645,-1070923029,-1962742397,1297948645,503317706,1430622296,-1910575989,205949912,1946226749,17906970,373098356,-346786815,1980155749,-402652926,28836635,-10884352,-1070920074,-26032,1185087488,473858818,628424704,-1207011585,-2091909100,7230]},{"sector":12,"data":[849413492,-1207309568,-1706032700,65535,1347607180,16777114,242679552,16777114,-4723968,-1207810506,-1202655136,-1706033151,65535,-1070881557,-1962742397,1297948645,503319242,1430622296,-1910575989,-689143336,-2009661696,-26110,113704960,630,16777114,-1002010368,108904459,-369098824,1996423802,-733573692,-6664170,-1962934017,1174656070,39101404,-1545714037,1996423754,702660,-26032,-2037841920,-1952841940,-150842354,914786809,-998834177,1342179768,-1202667477,-4521985,-11513089,-1711112650,523,-1070903214,-677752752,-1929379839,385825414,3711312,-1248178146,1375731713,473858896,91488256,-352308575,29669379,1347607180,16777114,-998834432,1342180024,-12941683,-6664170,1342177535,-12941683,-1070903274,-392540080,-1996488702,-1072972730,1996426877,37067460,1183514624,29157820,41826047,-1728049992,922701906,-4718568,-17665,922701906,-6684034,-1560280833,378077828,1347551878,16777114,41722624,460701707,42350335,42219263,200346,-998834432,194458,-280576,-16683543,721426486,-1046851392,-16777213,-1207952842,726664205,1347440832,165530,948340992,-62470145,1187446784,-956301114,16723590,-196688128,922681344,297271322,1996443652,1354771398,53582416,1183383552,951517128,-25857,1174601728,713460166,-998834177,-11485141,-2037646218,1344208682,-1698138369,65535,-13060353,16777114,39100672]},{"sector":13,"data":[-244223,-2037648314,1178206006,-951681804,62534,16533191,-998834432,1342177720,1347469355,-1706012592,853,196888201,-14516800,1922745462,-2097151997,161342,-1326972043,-2043216128,-2076770558,61250050,-706150400,1983808510,594870274,1718015,1342442424,-13728001,-13715713,1347469355,16777114,-968455936,58507275,-2080426007,161342,1996436085,112836,1354771280,1347440720,233114,2109737728,112645,-1070923029,196888201,-401771328,1996423239,60398276,-1913978880,41303683,-15305472,196658294,-1070903296,1347440720,-26032,552075264,-998834432,16777114,-2043216128,-2076770558,-26110,-1070923776,-1962742397,1297948645,-326412853,1586943,1342177720,16777114,2083979008,-26110,113704960,636,-1017256565,16973854,196638,16973933,197209,131183,16712194,131083,16712055,16973836,196677,16973937,196687,16973938,66194,196616,16711969,16973848,66233,196617,16711884,16973849,196829,16973846,131760,16973857,196848,16973979,196774,16973980,131467,16973862,197191,16973858,65920,16973875,66093,16973876,197578,16973877,131558,16973892,196886,16973893,65947,16973912,131414,16973904,65991,327770,16712191,327691,16712052,16973836,131387,16973917,197145,16973913,196663]},{"sector":14,"data":[16973914,196821,1632436316,1142975346,1167087646,518818645,-327034738,1183514758,17841420,289212276,-348359679,242679634,1342181304,1342444984,1342208952,1347469355,16777114,242679552,1342181304,1342182072,1851011,721712128,-1207702592,-1706032502,65535,-1962870807,20777542,1024816128,57999362,1023483881,57999375,721493737,19589568,-1207011585,-1706033151,65535,-26032,-1073020928,-1041693835,242679552,1342181304,-8747379,2075676694,-6664192,-1929379585,385841798,-26032,-2037579776,-1873739910,98494478,-8747379,-26032,-1073020928,1996429685,1010237198,1278672640,1354771200,1342189752,79770,-1922045184,385841798,2055638352,-1706027265,545,-8747379,-1070903274,41720400,2023948288,2055638274,-1924131073,385841798,37198416,1048772608,2080375416,2016870202,52795906,1996423168,1010237198,775356160,2055638272,616059135,-157659135,1023410177,91553799,-352321096,-1983894782,-1072956346,28837236,-11801856,-2037576074,-1202651270,-1873805311,4581390,-428556277,503432376,2055638352,-1706027265,65535,-1207011585,-1706033151,65535,1996474603,-339727602,242679793,1342181304,-1710721281,65535,-310136597,535137026,181030237,-1873273344,-326412987,-2082959842,1187450092,-16776966,-1711110090,65535,1718015,1342181048,1347469355,47684176,1183383552,1975520248,108954475,-15109120,922684022,922681404,1996423240]},{"sector":15,"data":[3192840,34642512,1206583296,1586943,3946239,4601599,-1207404801,-1706033119,65535,1962934589,43169834,1344163870,159386,43169792,1100632094,-1207959549,1344144018,-1382395874,721420290,244338880,721674984,26536384,425603,1183520885,-1202708984,1344144010,1353188024,247450,41460480,1183534059,508567048,53975632,1183514624,-1202708984,-1706033150,65535,184711331,-1960936000,1344145478,-1705983957,65535,184711331,-1207599936,48955393,1183432747,138841082,1344163870,216474,2017362688,242614018,-16091393,-16761802,-385854410,922746664,414711834,28856324,-1070903296,-73772976,-1996488702,922745926,-6684030,-1996488449,1586295878,439812086,964608,1354771280,2140819536,-1996488701,922744902,1996423800,-193527818,57514576,1178271744,-12028680,-1711111626,981,41432831,235162,-92372224,-1960676352,1344145478,-6664162,-1962934017,1344145478,16777114,138840832,1344163870,16777114,175570688,3946239,4339455,-94231,-16615370,1996486262,1354771444,16777114,439811840,67745792,1354771280,-1365618608,-16777213,-6682506,-956301057,7174,2016870144,63740418,2122514432,309592316,1718015,1342445752,1347469355,-26032,2122514432,410255366,503858827,42645584,-1070903266,-26032,-1706033152,65535,42088191,16777114,112640,-1962742397,1297948645,503318218,1430622296,-1910575989]},{"sector":16,"data":[250381272,2017362774,494272258,1586943,3946239,2766591,-1207535873,-1706033104,1268,15319083,-2009661694,29399554,922681344,-1070923144,45633616,1184518144,-1996488700,1451883078,-196703748,41432831,1347469355,-26032,2122514432,528417020,2122385276,2000683258,-2110324970,-196703486,1119375424,77221888,184549381,-15239744,-1711114186,1210,1586943,3946239,3815167,922714859,28835866,-1070903292,-1706012592,1409,42088191,189338,-163149568,-500084,503478326,-193527984,16777114,2016870144,18782722,1586167808,-159988492,50726,-6662650,-1962934017,994702414,-12812600,-1711111626,1359,1586943,3946239,4470527,-1207535873,-1706033104,217,42088191,-1202667477,-1706033086,65535,-1873756117,18212878,-989920791,1191179870,1065363190,-1960413906,1191179870,1065363190,-1961200308,1191179870,1065363190,-1961986737,-2144930210,91572031,-352321096,-1983894782,922743366,479855234,-1207959549,1344143812,503727755,107453008,1996423168,108042758,113704960,28,-16680728,-1207952842,726663179,1347440832,366234,439811840,67942400,-2110324912,1354771202,95656528,2122514432,544473330,1718015,1342439864,-1957642197,-1031015338,-644198318,-1207959547,-1706033151,65535,1586943,1342177720,1718015,1342248376,1342443192,1347469355,391322,28856320,-6664192,-16776961,-1207952842,-1202716661]},{"sector":17,"data":[726663169,-1706012480,1618,1718015,1347469355,1342177720,16777114,439811840,-26112,28835840,-310157824,535137026,46812509,-1873273344,-326412987,-2082959842,1946158718,1354771212,16777114,1958742784,439811914,833536,1354771280,503392952,109222480,113704960,65564,503432376,3318096,-610643938,-1207959546,-1706032700,903,1718015,1342439864,1347469355,117807696,113639424,-2097151402,-443874579,-900899553,1478361090,-1957345904,-661774612,1443163267,-955877749,64582,1015028971,-2146667218,1965949308,24936486,-1960807076,-1706025274,65535,1015083147,-1948289792,-1588584762,1077936262,1956270110,1577058305,-1962742397,1297948645,1426064074,-326898549,503760648,-16736256,-1207952842,726663182,1347440832,467866,-96040704,16664263,-14292224,-1207952842,-11533295,-1070858634,-761638832,-1996488703,513931334,-129615616,1183516286,2008056,-113013,1178336838,-1949270790,583228901,-1811873024,1862271748,-1140849920,251723525,1728119552,100663556,-1660878080,134217988,-603913472,150995204,268436224,436272900,1711276800,469827333,302056192,2080375558,151061248,2097152774,721421056,520158978,-1744829696,536936193,-1107295488,553713408,1342178048,570490624,956302080,587267846,-335478016,83887104,234947328,100664321,-2113862912,587203328,1560347392,1241514242,-1006566656,1291845894,-486472960,1040188165,-1442774272,1325400320]}],[{"sector":1,"data":[1946223360,1358954756,-1325333760,1375731972,-1878981888,1392509186,788595456,1409286404,-100596992,1426063616,503382784,1157628676,234947328,1442840835,1577124608,1476395269,-889126144,1509949700,-2147417344,1476395777,2080441088,1526727424,-1627323648,1560281856,822149888,1694499584,1918979328,776216683,1167087646,518818645,-326903666,1183667768,-62486070,425603,-661974668,-956545281,1586171143,-62455812,-16119866,1676213366,-901346048,-6664170,-1996488449,2122565702,494141446,1191178379,-901593400,-931755251,-959953153,-1962227134,1191168118,-901593400,108954368,-15960832,-6633354,184549631,-15371072,-1207952842,726664210,1183666368,-1706027318,65535,49120094,1562371467,182861,-2081649835,-1588193556,1183383838,17211626,-1996798328,1183381830,-163149576,-2013198176,1187442246,1187381502,113639665,-1708392123,246,-1744746080,372673360,-331182847,178256,21030992,-1744746336,406227792,-331182847,178256,19720272,21300934,-26070,1268776960,-1957652479,-1929307082,-1202654142,-397410302,1252000014,-1957652479,-1929306570,-1202654142,-397410302,922681594,915079496,1116537120,79188212,-404205568,-230242560,915079434,2055209238,611594988,837581440,2055224181,410989293,854424192,915091317,1116340504,-930375444,-1729281398,494190859,284313287,574522113,292880385,18232971,854424192,1258162046,-311787284,608076546,1450508289,18626187]},{"sector":2,"data":[821328512,1116543861,-1924131084,1343681858,116122,18653440,18744889,1191117694,-361329686,821328512,1116540789,-1924131084,1343681858,122522,372673280,-327516159,-1928366800,1343679554,384647821,32348752,1183514624,-1924129276,1343679558,129434,-1957670400,1344205382,132506,-1202695680,1344143654,135578,-1924115968,1343681606,16777114,-443851264,180829,-1947432107,1174471750,-1960973562,-1181153210,-101253110,-13581696,1586169422,-1961392122,-140965818,138840569,-16497013,-1073019826,-443819659,84329053,-2080308480,1862271744,1795162880,268500736,-1006632192,503381760,-1593769216,1476395265,922813184,1509949696,1918979328,1167087646,518818645,1183570062,17841420,289212276,-347835391,242679644,1342181304,503469752,-26032,1996423168,833550,19702096,1342341283,60314,1446936576,1098186754,-1207011585,-1706033151,147,1354771280,16777114,-1960121600,20777542,1026061312,309592066,1946160189,998753,-1914109067,-373282048,1996423322,175570702,50074,112640,-16741911,28839542,-6664192,1342177535,16777114,1958742784,242679780,1342181304,503469752,2144336,-26032,-2136932352,19702530,-15829249,1469713014,-1879048189,5498894,1996470251,833550,242679632,-26032,-1073020928,28837237,721611520,-6664000,-2097151745,163902,28837237,721611520,41984960,1996456939,1030158,142016336,16777114]},{"sector":3,"data":[-9312000,-1962742397,1297948645,503319242,1430622296,-1910575989,317490136,1718015,1342439608,1347469355,22190672,1183383552,-128546314,1718015,1342442936,1347469355,24549968,1183383552,-6663954,-1996488449,1183576134,-230258184,1718015,1342181048,1347469355,32021072,1183383552,-230257676,1357923843,737429131,-1202654650,-397409706,1183383651,-294191108,16777114,-58817792,-14977537,-16771018,-16761802,-1207946186,-1202716074,-1706033088,65535,1183526635,-230292996,1718015,1342439864,-1202667477,1344143958,131482,-230292736,-796143061,1183563819,-1706011918,731,-1962742397,1297948645,-326412853,-1962480509,1344144454,16777114,-62486272,721831563,-1992229818,1187510854,-352321282,142016283,-16484609,552139894,1958742784,-28931323,1191121387,138870782,972703371,-579011002,-1946157128,113401317,-326413056,1443687555,33441479,-129579264,1183514624,-163149562,-1995946357,1183577158,-129615612,1048793981,1962934572,-161576133,-467007606,1347605035,168090,-1981535744,1586232390,721914612,-1706011950,65535,1183441962,-62506502,1191123179,-163148808,-637185,-1226050490,-1946788213,76215414,-428603592,16664263,-28931328,1575324510,1426065090,-326898549,439811842,964608,1354771280,-1415950256,-1996488701,12123718,-28955840,10729881,1183447543,2109737982,-28915961,199950336,1694400131,1187448190,-1962908418,516120037,1430622296]},{"sector":4,"data":[-1910575989,82608600,205949697,1946226749,17906951,619388532,-1979736856,-66426,246943350,-1224781824,-1070858500,-26032,401276928,1024083595,74711041,250331179,-15829249,-6681994,-1207959297,-310181887,535137026,181030237,-1873273344,-326412987,-2082959842,1190532844,91521030,-352295752,-1983894782,1190586950,91586566,-352321096,-1983894782,-1072958906,922686837,414711834,28856324,-1070903296,-1113960368,-16777213,-1207952842,726663182,1347440832,16777114,1183399936,1073757678,1119359871,1996443648,-25874,1183383552,1975520240,-226589923,-15567616,-1207952842,726664216,1347440832,296090,-373282048,922681664,-1070923752,1996443728,112874,-26032,922681344,1183645720,-1706027276,65535,503394232,19839056,1996443678,108461832,1342179512,1342177976,771245707,-1957691377,70122054,922701824,263716888,922701824,-1070923138,-6664112,-1996488449,-1072956346,1996425845,-25872,-1913978880,-1695516929,347,-1292663,-1207952842,-11534323,1183575670,-1706025236,1200,-1695516929,409,1718015,16777114,-62485760,1342184099,1342442680,-1544534389,726663810,-1706012480,1261,1586943,1342177720,16777114,473858816,91488256,-352308575,29669379,-26032,2122514432,359923950,1718015,1342441912,1342177720,1347469355,329882,439811840,-26112,922681344,28835866,-1070903292,-1706012592,1546,1586943]},{"sector":5,"data":[1342177720,-1202667477,-1706033151,1331,15892099,922685813,-1070923752,28856400,-6664192,-1207959297,-310181887,535137026,80366941,-1873273344,-326412987,-2082959842,1448547564,15615687,-62470400,2122514432,57999110,-16740375,-1711269834,65535,91602955,1458159659,112641,-26032,1183383552,1975520236,98212359,-454361088,-1695779073,65535,-1980610935,1347613782,120218,105285888,2113155,-954043136,64070,956712587,360577606,653418180,1963802496,2139104795,343214593,32392903,-327745792,16777114,-26112,485163008,-375041,1996485750,-25870,1183383552,-195655182,1183563499,-96040698,1718015,1342439608,1347469355,103979600,1183383552,-128546314,2113155,-2089913088,1946218110,439811871,67876864,-18352,1354771280,105945680,1317732352,-1983370250,401338446,1718015,1342443960,737572607,-1706012480,1687,-1947187575,1317793862,-162649096,737955465,-96074815,1967675,922688382,922681368,922681404,-1070923712,3192912,28875344,-337051648,439812094,964608,1354771280,983191632,-1962934271,-62485560,-1952851317,105286640,731511435,64428998,198382529,2132114642,1073757445,922685046,922681368,922681404,-1360330698,1577058744,49120095,1562371467,537053773,-251591936,1862271747,-771685632,83886339,1644233472,117440772,1812005632,134217988,-1946090752,150995204,-2113928448,436272902,-771751168]},{"sector":6,"data":[469827332,218104576,536936193,-1811873024,301990149,-721353984,318767365,1812005632,-1996487931,-1979645184,-1979710715,2113995520,-1912601851,-167705856,369099524,402719488,553648900,1426129664,570426112,-1727986944,587203328,1392575232,687866628,-1124007168,704643844,-1795095808,889193220,-369032448,1291845893,469828352,1040188165,2097218304,1325400322,167838464,1073742596,-1593769216,1509949701,-2130640128,1476395776,1275134720,1526727424,637600512,1543504640,-1308556544,1560281856,1040253696,1577059075,956367616,1627390720,-637467904,1644167936,1918979328,1167087646,518818645,-326903666,340167432,-1962818909,1352864326,273058562,-1962783581,1386417734,205949698,-1560279251,1183515072,41591562,-1559738741,1183515204,38314758,723154687,1996443840,410451734,-1157627976,1347616767,-1709541633,65535,-1980217719,1347615318,16777114,-62486272,-362753,-6621066,-1962934017,-310117306,535137026,382356829,-1873273344,-326412987,-2116514274,1442910444,-244025,205949951,1946226749,17906952,-387359628,242679554,29505279,1073894049,-761638882,-16777215,922685046,364380610,922701828,-1070923328,-6664112,-16776961,1386286710,1344159746,38811391,38549247,1346375864,109978,1975520000,242679563,-1705983957,594,-385875528,1352729233,172374274,1187448693,-352318966,29532429,1963607609,172410629,1183514635,81162,37559156,-385649408,171770141]},{"sector":7,"data":[-385649408,188547363,-385649408,1357447748,242679554,1342177720,243866,-6664192,184549631,-385649216,1996423735,-1036583154,41591041,922701854,2124022208,-1929379838,385809542,41591120,-1046851554,-1929379839,1358888070,1342177720,-1929224728,1358888070,184758504,-12421952,-2037576074,1343684348,38811391,38549247,1346375864,226458,1958742784,41591076,-2037559266,1343684348,16777114,242679552,29505279,503478945,-26032,-1192689664,2050424577,1354771202,-16644632,-402490826,-1073020199,-1070920844,-26032,-1729560576,41591041,-6664162,-1929379585,1358888070,2062028432,1958742786,-62470350,2057371649,-1588584958,1344143940,1344798904,16777114,1209961216,1023904002,259391487,38018699,163715,1187448181,-4,1996426870,-16323588,-1070920074,-26032,954793984,138840833,1946157373,146699,-152501387,19261696,-15829249,-1929264586,385809542,-1070137520,-26111,1996423168,41591054,922701854,-6684080,184549631,-385649216,2057436971,-1706025470,687,-17529207,-17004915,-6664170,-1996488449,-1946224506,-58552848,-158955010,-2133292034,91499071,1966751616,112645,-1070923029,-17660279,-17004915,-17398215,-2037560202,1343684348,-17398133,-6664162,-1996488449,-1946225018,-2012771624,1023340678,1006924842,-955878081,33485446,-157381888,-2012771586,1023340678,1006924892,-1950780102,520025734,-26032,-2037841920,-1098645770]},{"sector":8,"data":[1946222322,-192509164,2047773694,-1933507838,-1957670182,-335612282,-192509166,2047773694,-1933507838,-1588571430,507511378,-106263,2057375350,-11526654,-16625610,-1207808970,-1706016752,65535,58048523,-369198359,1996488259,-1036583154,142016257,250089104,1589652224,-1962742397,1297948645,503319242,1430622296,-1910575989,108954072,762643200,-1207273729,-1706033151,964,175570768,-1710721281,65535,964688,1354771280,-6664112,1342177535,16777114,49120000,1562371467,445005,-2081649835,1448545004,16402119,105286400,1344163870,172186,-163149568,503727619,73701968,-259325952,1015086731,-2146208466,1966014332,-159481075,-955812606,63558,1015038699,-2147126180,125123132,33048263,-2093880576,1946158206,-339727612,178179,972572297,477300350,1949187456,1547534378,1183519348,-1957683706,-1706025273,751,-538183541,503399565,-129594544,38929923,2073710622,1577058305,1575324511,503317698,1430622296,-1910575989,-2098429480,1988843008,516328198,2122747216,-1202710785,-1706032896,549,91602955,-352321096,1589652226,-1962742397,1297948645,1426064074,-1957237621,283837558,1948925056,1060929541,28837237,1174989568,1962949760,1589652459,-1034033781,50337282,50459137,33581056,-16756736,50334208,50582273,50360064,50583809,50340352,50417409,50340608,16799745,50344704,16806657,50344960,17082369,50350592,16983553]},{"sector":9,"data":[50351360,17041921,50351616,16908033,50351872,17070849,50354176,17038593,83909120,-16757504,50334208,50357505,50353920,50395137,50354176,50415873,50354944,50378497,50355200,50424577,50355456,50499329,50356992,50391297,50357248,50384641,1291871488,543912545,1167087646,518818645,-327034738,-11140960,-1070920586,-11513776,-1706030986,65535,425603,-1159134347,209125120,-1928825089,385837190,8435792,-26032,-2037841920,-259260574,-9979264,-972721060,1560242306,-10320129,-10307957,-9927994,105286400,-1996486651,-1946196858,134547014,244338688,-1996451352,-1912641914,-1979750266,-1946197882,973039238,1946117254,1688111886,1622576127,939821823,-1959758841,973039238,1979671686,1621003017,4161791,1183517300,525574,-10189175,-15960321,-2037708170,1344208740,16777114,-1959662848,520053894,14522960,-2037841920,-2037645468,1344208736,87706,-6755584,28839030,-6664192,1342177535,-1705983957,65535,49120094,1562371467,576077,1167087646,518818645,-326903666,105286406,1344163870,16777114,105251584,983191582,-1996488703,1183579206,-62506746,1344154486,519849611,-26032,1183383552,-1965519876,-96040953,74734652,-629851588,519849611,-26032,1183383552,-62485508,-1962742397,1297948645,525002,15991043,2228227,13500675,5046273,19071235,5111809,18415875,5898241,15401219]},{"sector":10,"data":[5963779,12648707,6029315,3801347,6094851,1835267,6553603,1802658125,1167087646,518818645,-327034738,1018691730,-1202708991,1344143669,503395512,1954975056,-1202710785,-1706033024,65535,108380171,-369098824,-2037579443,1183448948,-162099980,-1098901269,1949106030,-159973601,-1695254785,136,-1980479863,1589966422,126494452,-9533816,-629817334,653549252,1946173312,-196673759,509478,-1098901269,2132868974,-159973601,-1695254785,195,-1980479863,1589966422,126494452,-9533816,-629817334,-1946925429,1183446614,-61437446,-1098899477,1949106030,1857978406,528359679,-624897,43709558,-1996488703,1451881542,-195115786,-2012771802,184512134,-992774720,-2144930722,678690879,653543167,-352319546,1857978399,125706495,-9519488,-14715604,1996486262,20486900,1183383552,-162100748,653549252,-2037905526,-1073021074,1183568757,-162100236,-9402743,-9267575,-1098901269,2116091758,-159973601,-1695254785,65535,-1980479863,1589966422,126494452,-9533816,-629817334,653549252,-16775226,1996487798,1954975226,-11528449,-36170,738160822,-1706012480,65535,200820361,-1207601728,65798142,-2080881013,-443874579,-884122337,16973827,65576,16973882,131440,16973877,65616,1632436301,1142975346,1632903214,0,5,0,0,1412311644,21592,0,10485761,1867382784,1634755956,65636,327683]},{"sector":11,"data":[720906,1114128,1179660,1310739,1441813,1572887,1703961,1835035,1966109,2097183,2883626,3145774,3538994,3670068,3932218,4194366,4456514,4718662,4980810,5242958,5505106,1048662,0,65535,0,0,65535,65535,1529830434,1014774365,993864510,8236,1852399949,6513473,1768178944,1852375156,1761635444,1702125892,1767139584,1929405805,959787313,858944256,788543797,1631875840,973104500,1767142144,1761633645,1919253068,538968175,538976288,538976288,538976288,8224,3080434,1296105530,0,19792,0,393219,196608,6,538968064,0,1157627904,7629156,1986348032,6644585,1684957559,7567215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2122252288,65921,0,0,0,0,0,0,0,0,0,206569472,208669800,199868,9961475,524543,10223619,590079,9175043,196863,257,4194304,524352,16646144,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656]},{"sector":12,"data":[0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,16678656,0,32512,0,2130706432,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686]},{"sector":13,"data":[-1,2130706686,-136414225,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-276963329,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-269567009,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,-1,2130706686,14745599,2130706432,-1572930,2130706684,-1572865,2130706682,-1572865,2130706678,-1572865,2130706670,-1572865,2130706654,-1572865,2130706622,-1572865,2130706558,-18350081,2130706686,-35127297,2130706686,-68685833,2130706686,-135790593,2130706686,-270008321,2130706686,-538443777,2130706686,-1075314689,2130706686,2145910783,2130706686,-1638401,2130706686,-1703937,2130706686,-1835009,254,0,1632436224,1818838544,150995045,2003127808,655360,1852141647,3026478,1392509184,6649441,1392509440,543520353,774796097,243269678,1769099264,268465262,1953064005,1638400,1868852821,795366153,6517573]},{"sector":14,"data":[1124270080,1141470325,27749,1866662657,1175026032,33554482,1935757315,1225352564,29550,1816331011,7496037,0,1392510720,1667591269,1816207476,201326700,1835619328,1631858533,1175020916,53,461373440,1919899392,1918312548,-1879019423,1918985555,26723,1766195203,774792302,142606382,1852392960,1699618916,1175024760,1632436275,1142975346,1632903214,1919904889,-2143289344,335549446,1342215168,0,131118,786532,8388623,-8302461,67108864,1174410240,268449792,-1560280320,16745296,5701632,3276840,65550,1342373889,1701859200,1459617902,838875648,33558016,50331648,1631813712,1818583918,5111808,3932180,1179660,1342308352,33554562,671089152,-16774144,33555199,1766228560,1847616876,979725665,1632436224,-2143289344,335549445,1073771520,0,262152,786532,65535,1401049090,1668440421,1868963944,2112114,268437504,201352192,-2147479808,-2125430016,524288,3538974,786444,1342373890,1952533888,1126197347,6648673,536888320,234889984,16777472,-2142240000,27471,3145796,917539,2,1132482563,1701015137,1291845740,543912545,1411395140,1869379937,-2143289344,285218314,1711312896,0,327717,524356,131071,1300385794,1869767529,1952870259,1852397344,1937207140,589824,23,-65536,1342177283,130946,234881024,134254592,33554176]},{"sector":15,"data":[-2108685824,1702129486,6578544,570435072,134234112,33554176,-2108685824,1936876886,544108393,825241137,327680,8650799,-65527,1342308353,1886339970,1734963833,-1457490840,943272224,1293954101,1869767529,1952870259,1919894304,11888,3866677,917536,65537,1333809153,107,-1509929472,16777728,33555456,33360,5701640,786528,65535,545411074,1835356704,1768843617,1713399662,543516018,1667330163,14949,5701736,786444,14,830623746,12336,5701748,786440,65535,629297154,1632436224,-2143289344,335549445,805348864,0,983052,786536,8388623,8474755,33557504,201341952,16776960,-2108685824,1702256979,1818846752,1935745125,1342177338,1207960064,301992960,33554944,33360,983160,917539,65537,1400918019,6649441,553678848,234889984,512,-2142240000,1668178243,27749,1802658125,-2134900736,335549443,570463744,1308622848,1885697135,33580129,-1946156032,-16774144,33554943,1766228560,1847616876,1713402991,1684960623,1917001774,1702125925,2003136032,1818846752,16229,1441821,917539,65537,1501581315,29541,1441872,917539,2,1317031939,1291845743,-1865940992,335549444,1073764864,1308622848,1885697135,486564961,536882176,33558016,50331904,1631813712,1818583918,0,5898248,-65528,1342308353,1852134274]},{"sector":16,"data":[1735289188,0,5898258,1310728,1342308353,2019914882,116,1509956608,-16775168,33554943,1869906512,1769107488,1931506798,1819242352,3043941,1918979328,1631785216,1953459822,1701867296,1768300654,2123116,1869488157,1868963956,543452789,1917001773,1702125925,2003127840,1818838560,285228901,1819305298,543515489,1936291941,1735289204,32,1632835072,1663067510,1701999221,1663071342,1735287144,540701541,1853171722,1819568500,170484837,1702129486,543449456,8237,1918979328,776216683,1851867917,544501614,1684957542,1309745210,1696625775,1735749486,1701650536,2037542765,1818838544,1869881445,1634476143,979724146,1867384608,1634755956,1648429156,779384175,1276587566,543518313,544173940,1735290732,544175136,1953718608,1310666341,1696625775,1735749486,1768169576,1931504499,1701011824,544175136,1702257011,1310335034,1629516911,1818326560,1847616617,1885697135,1713398881,979725417,1833245728,544830576,1701603686,1818851104,1700929644,1818584096,1684370533,1125654586,1869508193,1634934900,1696621942,2037674093,1818846752,220215909,1852727619,1881175151,1953393010,1867388192,543236212,1768710518,1768300644,1634624876,372139373,544501582,1635131489,543451500,1701603686,1701667182,1310662714,1696625775,1735749486,1768169576,1931504499,1701011824,544175136,1852404336,1310400628,1696625775,1735749486,1701650536,2037542765,544175136,1852404336]},{"sector":17,"data":[1125326964,1869508193,1919098996,1702125925,1818846752,1632444517,1142975346,1632903214,1869567003,1668640032,1702109288,1948284024,1867980911,1461740658,779116914,0,0,0,1291845632,543912545,218115585,2949376,1895891714,16974080,524402,201356289,1803520,1632436249,565709030,1183666176,-1202710870,-1706033072,4923,91602955,-352321096,-1983894782,1996488262,16431110,-1438216880,1520062486,-2097151981,1962999422,-432603366,2275336,-1438216880,1354256406,-560312320,184549387,-1207601728,48955393,1183432747,108462078,1342177720,380257933,202283600,2122514432,158597374,-1207535873,468320255,108462079,1342185656,-16658712,-591919498,783831040,-1706025460,5235,-1928956161,1343660614,16777114,243712,175124215,-1985722877,28875846,-577089536,-1962934253,-936662962,-150993992,51015726,145531336,-939269935,201084553,-1962574135,-1673123391,-150993224,51139118,1183425094,1354771358,16777114,-1504802048,112773163,1378809600,-1580727540,-523171820,1317652483,2127105020,700549893,1996463686,-1636368634,-1952680193,1177265734,1183535266,-1538905176,1354771280,16777114,108461824,1342177720,842138,1575324416,1426064578,-327029621,1187446914,-1962934018,20777542,1026782208,57999362,1023469033,57933844,-2097092375,1963001982,209125149,-402360577,1996423391,14465036,204388432,-459648994,-385875950,1996423365,74907404]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[25188941,153,32,65535,-333119488,0,64,0,0,0,0,0,0,0,0,1024]},{"sector":5,"data":[1409297384,544434536,1735357040,544039282,1970365810,1936028265,1667845408,1869836146,1461744742,1868852841,221148023,240788490,-855002081,1275181089,8653]},{"sector":6,"data":[279886,56492849,191654789,2162694,268435712,2098572,2162688,196641,4194605,51446088,52429594,2703,131215,0,0,0,730333935,730460464,52629200,52752688,159387580,159445296,201331275,201453872,158274968,158396720,207951921,208073008,203758509,203878704,208674585,208728368,292495986,292614448,566175521,566292784,137244688,137359664,170799694,170914096,107558202,107671856,18822887,18936112,9779010,9892144,20526962,20640048,38942675,39055664,56637566,56750384,39139697,39252272,18889245,19001648,38943348,39055664,35666719,35778864,16923574,17035568,187776005,187887920,9322248,9433392,187383606,187429168,6701604,6811952,17777222,17887536,59785881,59896112,20792206,20902192,243811306,243921200,151013327,150995280,150358630,291897681,-2147418108,10,322240512,-265289711,312,323354624,-265289711,319,324468736,-265289711,328,325582848,-265289711,336,326696960,-265289711,344,327811072,-265289711,353,328925184,-265289711,362,330039296,-265289711,371,331153408,-265289711,380,332267520,-265289711,389,-2147352576,1,333381632,1048899,397,-2147287040,1,354549760,-265289663,403,-2147221504,1,358809600,-265289689]},{"sector":7,"data":[409,-2147155968,4,361365504,-265289719,415,361955328,-265289720,424,362479616,-265289716,435,363266048,-265289720,440,-2147090432,3,363790336,-265289717,32769,364511232,-265289712,32770,365559808,-265289711,32771,-2146893824,1,366673920,1048580,451,0,1380929030,139215181,1347573059,1279479365,1381319431,1145979208,1381319431,1415071060,1381319432,1364345165,1430456389,1396788306,1124618067,1380274773,138761025,1129469251,1397968722,1381319432,1313423696,1430456148,1280659026,1095763276,89411145,1313423696,1095763284,139742793,1162627398,1313165391,1279870474,1447121733,72565061,1347175752,1329742090,1380996178,89411145,1162036033,1095763276,5525065,65536,786437,1145504512,1162544713,1279610450,1163089156,33525586,-1560199219,1070399758,17682185,1711685581,1070399755,16880135,-972537907,1070399753,17362180,737229,1070399744,17017611,-250921011,1070399749,18770698,-1559609395,1070399774,18159617,-436125747,1070399766,16806668,802765,1070399488,415747,606157,1070399488,1171969,1292189645,1070399497,374277,1191395277,1070399495,2,212941,1070399488,254473,-1911996467,1070399492,273673,-939180083,1070399488,341792,320880589,1070399493,172297,1627996109,1070399503,275488,1980383181,1070399502,191500]},{"sector":8,"data":[185089997,1070399499,262668,671693,1070399488,1918986,-116768819,1070399514,1891082,604651469,1070399514,1679370,236994509,1070399492,883978,34226125,1070399505,128521,-821477427,1070399488,21769,1929985997,1070399489,968457,-1056358451,1070399492,4,1495220173,1070399497,98335,-65060915,1070399489,548890,-1155907635,1070399494,693016,-988135475,1070399497,501509,-1727381555,1070399496,696072,-16236595,1070399499,412427,1510621133,1070399491,215301,-804962355,1070399490,348421,-469090355,1070399492,22538,1242185677,1070399521,186394,2082422733,1070399491,2658561,253706189,1070399489,1612289,385957837,1070399512,757761,320356301,1070399497,432651,-150323251,1070399520,293664,-853524531,1070399492,937994,1327053,1070399488,16,1523661,1070399488,10003,1261517,1070399488,10002,1195981,1070399488,10005,1392589,1070399488,10001,1130445,1070399488,30,1916877,1070399488,27,868301,1070399488,14,1654733,1070399488,15,1851341,1070399488,22,2047949,1070399488,24,1720269,1070399488,7,540621,1070399488,23048,1292320717,1070399488,1498890,486883277,1070399496,2119690,2031632333,1070399497,671258,789200845,1070399508,538399,1042104269,1070399491]},{"sector":9,"data":[304160,-1038073907,1070399491,234784,-115327027,1070399492,193309,-1996406835,1070399515,58633,285818829,1070399489,64265,587939789,1070399495,41221,1308966861,1070399488,68357,637878221,1070399488,5,1527070669,1070399494,1777665,956645325,1070399490,136709,-586858547,1070399489,445957,-1174323251,1070399505,1152513,-1979629619,1040187418,1919117645,1718580079,1632641140,544501353,539583272,892877105,1667845408,1869836146,1126200422,779121263,544825888,544104772,1631806285,539780450,1629516901,11884,1330600462,1414877005,1346653783,71520082,1094913280,1396790862,1346653783,54742866,1095764992,1465142857,1380992078,82767,1095914511,1229343555,1095976268,1396786518,1410334728,1262698834,1162627398,1312901187,155469127,1095765504,1414808908,1145984837,1129271888,1175191554,1129598543,1112296513,206259009,1430522624,1279345488,1128350284,150997835,1380926017,1397052500,167776084,1380926017,1230131284,939086,1095914509,1229343555,1347372364,478789,1330600461,1464748365,1380992078,344911,1128351244,1279345477,1128350284,234884427,1163149648,1465141572,1380992078,410447,1347371788,1279870553,1296125509,2629,-2081649835,1996429548,-26108,1183383552,74907624,-401698736,1996427372,-394854652,16777114,-1372127488,1983315725,-1707671796,4233741,-1202716672,-1202699352,-1706023152,65535]},{"sector":10,"data":[-955363165,552454,-2110324992,34576910,1183383552,-1070903064,42572368,-1706033152,140,736655103,-11513664,-15886282,-1207065546,-256245727,-1706012160,168,-1542401,-1710496714,655,736655103,-11513664,-15886282,-1207065546,-256245727,-1706012160,65535,-1696041217,226,-1705983957,65535,201213577,-14977600,-6683530,-1996488449,-1202655162,-1202716638,-1706033151,65535,1996425451,41851646,1996423168,1354771204,16777114,-263812864,729071627,1354771280,-2118627248,12079104,530206721,-16777215,-1070862218,286832720,-2135404514,12079104,-6664191,-1962934017,46292453,-326413056,-2096960381,357438,1187448693,-352321026,1949761332,-26107,37552128,-1207602176,48955393,1183432747,1958743038,1312719648,125108229,72236672,-1207274496,1344144334,16777114,74907392,16777114,-28931328,-1034033781,-1957363710,-2110324756,26450446,922681344,-1667626012,-16777215,-1710456778,421,179975935,110234,1781989120,-26104,244318208,-15717400,-1710158794,65535,1962934589,-26107,-443875328,-1957313699,250381292,1996445271,-163148538,-6664170,-1962934017,1177287238,-28931594,721712895,922702016,-124122188,-16777214,1996424310,-1271463938,52468235,922681344,-6681452,-1996488449,213447750,-164694272,-1192195315,787939331,-125104650,-1727138143,-1037319629,-754974023,734147576,-28406846,-835991509,-1995576957]},{"sector":11,"data":[1996485198,2110733060,-339244284,-230257917,112720,222596432,239903056,50716881,1996443648,1354771444,2144336,1375784122,-26032,1996423168,-25868,1996423168,1354771204,170906,-1583722496,-16777214,129500278,-6664192,1342177535,16777114,234266880,734147481,178626,-1036781357,-259276245,1443133183,1342177720,-787614047,96863200,-1588592637,-523170228,1342178309,16777114,74907392,-1727138143,-1037319629,-754974023,734147576,-167377982,-1202700275,-1706033151,832,-1593542913,865668598,-1178457150,-120389630,-1037319629,234227203,1285640256,98619662,-1706033148,875,-1593542913,865668598,-1178457150,-120389630,-1037319629,239903056,-1706016704,65535,-1593542913,865668598,-1178457150,-120389630,-1037319629,234229387,-1056710191,1342178053,1074678945,-6664128,-16776961,1996424822,1354771204,231578,108461824,-1207666945,-1706033149,919,-16353537,45614198,-1499836416,-16777213,1996424822,112644,-26032,1048772608,1946159212,1354771211,-1710983425,65535,-443850914,311901,-2081649835,-1957295892,-1667037626,71731979,-1962167645,-1700592058,74877707,196359723,2130053966,-339309820,-1983894782,1996424262,1816036102,91553800,-352321096,1354771202,16777114,1950253824,57999365,-1593790487,1178143726,-1962574586,65734214,-1995706719,1721890886,71710988,1183516029,-1593578748,1183386726,209101310,2113422905,-129594619]},{"sector":12,"data":[1990263787,-129595124,957121185,92143174,-335657333,209887491,-1946270071,1177224774,-1037329928,1183447249,71732220,-1711389141,-120470997,-375159,-16419786,100924534,1346374580,-493825,28900982,-1097183232,-2097151996,539198,922683005,199951730,138034819,-15237632,721776694,-11513664,1996486774,112894,-26032,-1956773888,113401317,-326413056,-1962480509,3999814,1025012738,57999873,1023460329,57999874,1023478249,1165230595,-16695063,-1710348234,65535,141442691,-385646848,1048772909,1979648108,19130627,-1710590209,1476,-375159,1996424822,-744861692,-16777211,1996425846,98474746,-18284544,108461824,721712895,-6664000,-1996488449,87948870,-16026368,-1878690762,104917006,2122524907,829752574,138034819,-16026368,-1878690762,313518094,1048776939,2097154106,1949761289,-401698811,1996428064,-1103692022,-26109,-1494679552,-25263360,-385649661,1048772765,1946159162,977175512,-629276664,1048821227,1962936430,1949761345,123509253,113704960,2156,16777114,62825216,-1710590209,1548,-375159,1996424822,-6664188,-16776961,1996425846,103193338,1996423168,-26102,117374976,1072367726,141442691,-13074944,-2096599538,552510,113716597,-63380,-1710590209,1676,-375159,726665846,2040156352,-16777213,1996425846,111188730,-6684672,-1962934017,146955749,-326413056,-2096173949,1970340990,112645]},{"sector":13,"data":[-1070923029,90048059,-1578564747,75399936,-1207601807,48955393,1587789867,75399941,723613040,-1197846336,-1996488704,-1705971130,1685,15892099,1996433012,11574002,485163008,-1710852353,10,1358055049,16777114,108461824,-1695385857,33,503566008,171620432,28856350,-6664032,-1996488449,-1705970618,65535,-1695254785,65535,-1928956161,1343682630,122778,108461824,-231681,-471269770,1949761532,1354771205,112720,-26032,-443875328,311901,-2081649835,1048773868,1962935668,108461832,16777114,71731968,1023417901,58064979,50521833,-13724736,-16108377,-1710918602,65535,-16536087,-1710918602,65535,-16539159,-1207602122,-1706033151,65535,-16543255,-1710918602,65535,-16546327,-1710918602,65535,16777114,108461824,16777114,57469184,138034819,-15960832,-1878690762,561506318,-2096932375,539198,1340670844,1949761283,-26107,1139343360,1949761283,-401698811,938017774,1949761283,-401698811,736696081,1949761283,-401698811,535369543,1949761283,-401698811,334043297,1949761283,-401698811,132715980,1949761283,135502341,1183383552,1681818620,141819909,-26032,267059200,90717827,-16223232,-6620042,-16776961,-16419786,-1315242890,-385875960,922682062,664405364,-1996488696,-1705968570,65535,922738155,1067058548,-1996488696,-1202652090,-1706033102,65535,922732011,-1667627660,-1996488696]},{"sector":14,"data":[-1202652090,-420806605,1023690379,57999438,1023463657,57999439,1023451369,57999440,1023454697,57999441,1023470057,175374418,1962955581,13232387,1048777195,1946160546,-339727612,112643,-15883613,244319862,-16070936,-1710918602,2253,1358710409,-1779954032,1949761288,-59310331,583322,-1036090624,57999363,-16728087,-1710918602,65535,91502335,331930,-62486272,91502335,-26032,922681344,1996424564,86678268,922681344,-6683276,-16776961,-1710918602,65535,-2097029655,17435198,28837236,-1207702784,178455128,-8656630,168574592,704934912,-1341985856,168600065,-939562775,17435142,201770496,113639434,-973075955,658950,228722375,1256783872,238977279,74711050,49004586,245498288,-13113078,168640128,704934912,-1341985856,168665601,-56087,1996424822,24045572,63061635,-385649664,1048837953,1962935654,22341891,91502335,16777114,21555456,-16353537,2095580278,-15341311,91502335,1860701840,19982606,91502335,-437776752,19196174,-16353537,-1880619914,18409729,-1710852353,65535,-16708119,1996424822,-60954620,-16711191,62391926,-6664192,-385875713,1996423410,112646,1996484587,178182,1996482539,-339727610,71732192,-120387407,1023442725,141819958,1946174013,12904721,-16353537,244319350,-385211672,1996488305,74907398,-1964503408,-27006710,120522531,122357563,167839575,167840257]},{"sector":15,"data":[167840257,167840257,127469424,129042341,130615229,135137237,138020898,167840257,167840257,167840257,167840257,167840257,167840257,167840257,167840257,167840257,167840257,167840257,167840257,167840257,139200588,139200588,139200588,158009707,160696683,167840148,166332891,167381490,167840257,167840257,167840257,167840257,162269600,163056129,163056056,167840184,167840196,164563407,-1034033781,-1957363708,49054700,-1710852353,2851,1358841481,63190783,-1705983957,2831,-1946257665,-995949498,146296835,865751040,-1962934261,79846885,-326413056,-16585597,1520043638,-1996488693,-11469242,721977398,1184518336,-16777205,1183579766,142648068,571472,191732304,-443875328,311901,-2081649835,1996423916,13081094,1183383552,1889620222,6882568,1354771280,755354,-25755904,755254923,1889730665,6882568,571472,-26032,-443875328,311901,1167087646,518818645,-326903666,1376175876,-16776955,-1365637514,-2097151995,539198,244332917,-14886168,-73791882,-1996488693,-397345722,1996423256,-59310330,790426,-2110324992,5413390,1183383552,1038635260,-59310336,426650,-2094470400,539198,-6676099,-16776961,-627440010,-1996488697,-1705968570,65535,-16353537,127597686,-2097151992,-443874579,-900899553,-1957363710,74907628,-1705983957,94,6593104,1996423168,1354771204,-1741226160,-1539899635,2209805]},{"sector":16,"data":[1375793338,8428112,-443875328,180829,1167087646,518818645,-327034738,-11140970,-6683018,184549631,-13404992,-2037578122,-1202651284,-1202716544,726663178,-6664000,503316735,280148048,817385502,-6664192,-16776961,1973028470,-385875967,1996423349,-230257402,-778416106,-1962934266,1177286214,-96040462,737691275,1183446086,737184752,1309389878,75429387,49006219,1183432747,200188400,2113553977,-96040187,-291437589,1787201803,208052735,2112898617,-263812347,1721828331,-62486260,737822347,-1711314298,-120470997,-1947318647,1177284678,-1037329924,1183447249,135444716,-491237346,726670855,1342225088,1996443730,-330920978,196347395,-1224781760,1996488554,108462076,-11485141,1343294518,-26032,1956839424,345657349,1577058320,-1962742397,1297948645,1426064074,-326898549,-18428,1392508858,204930896,-26095,1183383552,-27883012,286013183,503525560,74907472,-59310254,16777114,-25755904,-1694730497,65535,-1034033781,-1957363710,149717996,-1710983425,2796,-2080618871,347710,1048774516,1946158418,112645,-1070923029,-506231,1048837238,1946158430,7387141,1907885035,2122534912,91488504,-352321096,1354771202,920730,-59310336,90062467,-1207602176,65732721,1342206136,-1705983957,3737,-2080606465,351806,1891108212,-1207702784,726663281,1134186688,-16777202,1048837238,1946158430,7452677,1891107819,146296832,-56995840]},{"sector":17,"data":[-956301302,130630,138034819,-12880640,-6683530,184549631,724530368,434852032,1946157629,212234,20776308,-955812608,65094,1996427243,-25862,1183383552,1975520250,-25893,1996423168,3062012,-25755824,55450,1575324416,503317186,1430622296,-1910575989,653034456,1183432747,-96040452,1024214667,1098121232,1776878454,81153,37564276,1027699712,57999365,1023444201,57999366,1023481833,57999375,-385842455,1996423515,-21567474,-1946532213,-2098594730,242679553,-336526872,242679791,-1712184600,-1980086647,-521405354,737308648,-6664000,-352321281,1950254035,242483205,91502335,82586,146688,28837236,735111936,-2083722304,1946159742,1312719791,125108229,72236672,-1197378560,1344144334,93594,-6952192,1996426870,142016262,-336306712,242679687,383403661,-26032,1996423168,-629735666,-897048,1183649398,-1706027302,65535,91504259,-385649664,1996488538,-26098,-1073020928,1273561972,1614709759,57933829,-939572759,17129478,242679552,-1746399600,-13571588,-33011977,-385649409,1996488486,175570702,-369678872,2122383130,1769308170,-401705217,199884161,242679807,-1928562945,1343620678,-369830168,2122579706,57999370,-2080443927,1946159230,-18290429,138034819,-15958528,-1710919626,65535,-2080451095,539198,922683005,-336919182,91502335,289269227,2005758977,1129767,-521600139,1457662,-152501387]}]],[[{"sector":1,"data":[242679806,-15960321,1996425846,108461832,16777114,-22222592,1963004477,-9246461,1963005501,-25237245,1912733757,33766868,1827210103,-2083853313,-443874579,-900899553,1478361098,-1957345904,-661774612,161482439,113704960,2312,151389895,1996423168,108461832,1374162576,67553025,-956301302,656902,134661888,-956301302,17435142,201770496,113639434,-973075955,658950,168756934,268879360,113639434,-973075951,659974,169019078,-1576614144,-956301299,590854,142016438,1354105016,1088949904,33998595,-4063223,12060790,244338882,-16538392,244320374,-1207812376,-1706033142,3112,-16146269,244319862,-2097148952,-443874579,-900899553,1478361092,-1957345904,-661774612,161494783,1175962,167950336,-6664162,-1560280833,1996425632,-401698810,1996423216,241088518,-6664162,-16776961,244319862,-1593819160,-523170398,241042947,241567235,-2096334685,-443874579,-900899553,1478361090,-1957345904,-661774612,-16353537,-1710645194,4563,-2096562013,-443874579,-900899553,1478361090,-1957345904,-661774612,151010947,-15961088,922682998,781846784,-2097151988,-443874579,-900899553,1478361090,-1957345904,-661774612,161494783,101018,49120000,1562371467,1478413133,-1957345904,-661774612,1446964355,-1710721281,4974,1357792905,1342194360,504268984,306223696,1183383552,-1866968848,1301958656,-16777198,918089334,-524791808,-1706025456,65535]},{"sector":2,"data":[1358317193,1342214328,1237402,108461824,-955977752,62534,-956266007,311878,16598726,821839558,-772514165,1015516131,-1960383735,-768871866,-150992199,-330921487,-4032885,-1047805362,-1964218633,-936709554,-2010070656,1183578186,-230258196,-747257845,79855235,1191117684,-260636734,-1957642197,1116586614,-1957685512,-998181818,2122535106,310247668,-1712044405,-150992199,1976699897,2144261,-1070923029,1342295168,1262234,-196673792,956892833,58586182,-939561751,62534,1586188267,-1846796,-1928748361,1343669318,1342187448,16777114,-159973632,-1924087765,1343669318,-2131474805,-2091862332,2113991806,-196703470,702873,-770967049,548930933,721611520,30179520,17275472,1191116800,151560692,2096383545,-310157655,535137026,80366941,-1873273344,-326412987,-2082959842,1996424428,342137350,1183383552,171869180,477430026,168574592,-2146077440,658750,1048579701,1962936846,-1572961529,192151565,-1191414017,726663246,-16061504,1320746102,146296832,-895856640,-16777197,1337523318,1048793088,1946225162,571397,-1070923029,333814352,1996423168,5290236,205422672,91488266,-352319304,1354771202,1310874,-59310336,1342198200,168640128,-1207602176,48955400,-1705983957,5147,-1191414017,-2142240685,659006,146277748,721611520,916082880,-16777196,1387854966,1048793088,1946160546,571397,-1070923029,237476432,-310181888,535137026,46812509]},{"sector":3,"data":[-1873273344,-326412987,-2082959842,-1974074132,-467007930,909766795,1333135624,-1710721281,3504,1358710409,151271167,-1705983957,5255,-1946388737,77792838,146296841,-358985728,-1962934252,-1846818,-1207328073,1344145940,1342185656,1248666,106859008,-472776918,151685002,1577717666,-1962742397,1297948645,503317706,1430622296,-1910575989,82609112,105286230,-259267542,151402041,1996437110,303077896,1183383552,922702076,-1070921470,352164432,1996423168,105286652,1342767779,1342179512,1290138,-773944576,1015516131,167944969,49120094,1562371467,313933,1167087646,518818645,-326903666,1183536652,307661584,1375736325,274646096,222792230,-397351894,1589903513,126559760,1358579337,-1006562072,-1960442274,582506039,1687834624,-1996488683,-1202260922,-1706033142,65535,734147481,178626,-1036781357,1183433259,-196675592,443810048,1090143883,-1946401143,1178204230,-13008900,-890700682,-62456064,1187507691,-352320778,-159481060,-167346680,1954608198,-163149029,-1980076297,-397345722,1191116965,-163148810,1006268151,-645990330,1577058744,-1962742397,1297948645,1426067146,-326898549,1048794628,2098792712,142016371,-1710852353,65535,201213577,-15043136,1996425334,-26106,1183383552,1958743038,137792335,-337194743,-62470344,451608576,-771983733,-28931098,161645625,1183517045,176437508,-16026615,144833606,-62506743,144825980,-62506743,-259320196]},{"sector":4,"data":[1183573713,-1568372226,71731977,151684233,151521023,1575324510,1426065090,-326898549,1187468804,-352321282,-27358447,1183572945,1015494916,-16024311,111279686,-28952311,1586227068,-1948003842,-2026306490,141887804,956892833,1132265030,-1995897183,384564294,855408259,1988824445,-1947807236,-1995883900,-16171900,1183579214,-62506498,1048830591,2100431110,101121796,-25263351,-1962115790,-472777122,-1996208501,1577663623,-1034033781,1478361090,-1957345904,-661774612,-1207374717,-1883629684,-11513321,-1710158794,6040,-1980217719,1589967446,939468294,-1961867637,302322262,642798080,637827071,100825087,399546963,1183383552,-92864516,-1694992641,6110,-2080618869,-443874579,-900899553,-1957363698,317490156,1342177976,-1728051528,-6664110,-1996488449,-1072958906,-1706029452,65535,-1980479863,317453910,1358954424,16777114,-129594112,-1930148215,1589966422,71732212,-1207465690,-4521985,-11513089,-1710158794,6068,653549252,637683593,-1207674999,-4521985,-11513089,-1710158794,3446,-1980873079,1996484694,1354771204,1996444240,-159973394,-1695254785,65535,-113015,1996484726,401185518,1996423168,-92864516,892058,-226589952,-15567872,-6622602,-16776961,-6622602,-352321281,-18423,-26032,1183514624,1575324670,503317186,1430622296,-1910575989,82609112,138034819,-10193665,-2096612850,539198,1996431733,410294790,1183383552,108462076]},{"sector":5,"data":[1342203832,-2081943920,108461825,16777114,-13767936,1723336310,244338688,-16731672,-124123530,-1879048168,270657550,-1710852353,6333,-244087,-1706031498,65535,-16353537,-493159306,-2097151976,-443874579,-900899553,1478361090,-1957345904,-661774612,-2096829309,17316414,117398388,1048774714,1962936378,108461871,768922,-62486272,-1207535873,-1873805210,16836622,-16353537,-6620042,-16776961,1996424822,198023932,569049088,-1207535873,-1873805209,2156558,-1710852353,2983,-1863840112,108461839,16777114,49120000,1562371467,182861,1167087646,518818645,-326903666,142016260,1696154,-409317376,-1996488679,-11469754,28837494,1268404224,-16777191,783875190,28856320,1637502976,-2097151975,1969686142,-59310304,1342188216,1342177720,1667482,-59310336,1342188472,1342177720,1671578,-59310336,1342185144,1342177720,1675674,-59310336,1342185400,1342177720,1679770,-59310336,1342185656,1342177720,1683866,-59310336,1342185912,1342177720,1687962,-59310336,1342186168,1342177720,1701530,49120000,1562371467,313933,1167087646,518818645,-326903666,142016260,16777114,-627421184,-1996488684,-11469754,-1070922122,436574800,1996423168,3062012,1354771280,1710746,108954368,-14781081,716766326,-1070903296,438934096,1996423168,2865404,1354771280,1718426,-59310336,1342185144,-1705983957,6727,-1191414017,726663199]},{"sector":6,"data":[1452953792,-16777190,548994166,-1070903296,442866256,1996423168,2210044,1354771280,1735578,1312719616,259260430,-1191414017,726663202,-241545024,-2097151987,-443874579,-900899553,1478361092,-1957345904,-661774612,-16454525,832177782,-1996488677,-1202652090,726663212,-1164291904,-16777190,767097974,-1070903296,449419856,1996423168,3127548,1354771280,1759386,-59310336,1342189752,-1705983957,6887,-1191414017,726663217,-157658944,-16777190,850984054,-1070903296,453352016,1996423168,3389692,1354771280,1786266,1678165760,-956301051,17132550,49120000,1562371467,182861,1167087646,518818645,-326903666,108461828,1903770,-62486272,2930768,1354771280,1790106,-59310336,1342188984,-1705983957,7007,-1191414017,726663215,1855606976,-16777189,817429622,-1070903296,488479312,113704960,66920,90965703,-310181887,535137026,46812509,-1873273344,-326412987,-2082959842,1048775404,1962935652,1748927242,57999365,-2097027351,1138750,1474888565,1816036097,58523653,-16704535,-1710325194,7123,-2081012087,353342,922708340,1016729952,-1996488676,1996487750,-1506344970,-1472790771,-1237909747,-1204355317,28856331,-1202696192,-860225504,-1706012160,7269,-1694730497,7277,90586755,-385649408,922681497,546966424,-16777188,-1710172618,6143,-2069643221,143172360,-1559723357,1721960582,-9114875,-1710453194,7286,-506231]},{"sector":7,"data":[922744438,922684838,922684840,922684342,-1202713672,1347420161,-1174198600,1347551266,1875866,-126419200,1877914,1614216960,500931089,1183383552,-159973380,228996863,229127935,196491007,196622079,112720,-2034741168,15645184,-929410990,-16777188,-795149194,-16777188,-1070922122,922701904,922684824,1996426660,-1202695946,-860225504,-1706012160,7705,-1695123713,3045,1048779243,1946158436,108461834,16777114,-16192768,-6683018,-2097151745,354366,922683764,77204622,-16777187,-1710137290,4429,-1710721281,6443,1358579337,1342188728,1342177720,1912218,-92864768,1342188984,1342177720,1916314,-92864768,1342189496,1342177720,1920410,-92864768,1342189752,1342177720,1924506,-92864768,1342190008,1342177720,1928602,-92864768,1342190264,1342177720,1932698,-92864768,1342190520,1342177720,1653658,1678165760,-956301307,354310,1812383488,-2097151995,-443874579,-900899553,1478361092,-1957345904,-661774612,-2096436093,353342,1048775285,1962935656,16312579,90979971,-2095874816,353342,-6682764,-352321281,-26107,922681344,-409333408,-1996488675,922745926,-694546814,-1996488693,1048835654,1946158436,-59310294,1342177720,-1237909680,-1204355317,-159973621,228996863,229127935,-1174396744,1347551436,161434,-10556672,28900470,-11513856,-16009674,-16009162,922744438,922684838,548933032,13416960,1905938514]},{"sector":8,"data":[-16777186,-1710453194,8133,-375159,28900470,-11513856,-16009674,-16009162,1347484278,-1174354248,1347551368,2095258,-92864768,1999258,-159973632,2001306,-59310336,2111386,108461824,2055066,-129595136,-1710852353,6437,-126419120,-521662832,108462076,-1694992641,8081,-1962742397,1297948645,503317194,1430622296,-1910575989,108462040,2036378,1975520000,108461836,1342186168,-351698968,542677525,1996423168,-401698810,1996423187,-401698810,-310116696,535137026,46812509,-1873273344,-326412987,-2082959842,1996430060,545757702,-1073020928,1996426613,2209798,154855504,-1711196695,65535,90455683,-2096466688,354366,451478389,1816036097,326959109,90455683,-1710787584,7627,-761657877,-16777187,983172726,-1996488680,922740294,922684342,922684826,-2087056402,-1996488673,922742854,922684344,922684846,-325448602,-1996488672,1996483142,-428409082,1608602,-1237909760,-1204355317,112651,-1070903216,-1818603440,-1996488671,-1072958906,-1561787531,1996443648,-361299984,16777114,-227082496,2085274,-431585024,291518207,2099354,-96040704,736524031,-11513664,-16009674,-16009162,28899958,-1202696192,-860225504,-1706012160,8239,90717827,-13077504,-1710453194,7104,-637303,-1070864778,922701904,922684342,1996426168,112886,649613392,12302850,-56995758,-16777189,1268446838,-1207959520,-11534334,-6622602]},{"sector":9,"data":[-16776961,1402665590,-16777184,77260406,-1711276004,3722,-1962742397,1297948645,503317194,1430622296,-1910575989,1089242072,1996445271,409442822,244318208,-16249112,1469711990,184549390,-15895104,548931190,-974630912,91678983,1342177976,16777114,-901347072,58048523,1342322153,1342181048,383927949,-26032,1183514624,-1069119004,-1981397365,1996487750,-25910,1183383552,-598308390,2004140555,-2459905,-1207177674,787939338,-1706029670,8451,-16009565,922737782,179833958,-1372653824,848973837,-1560281088,1183517624,-1037329984,100923601,-1952904266,-101203890,199116425,-16550464,1183571526,-563152960,-1962166621,731511878,66638274,-1727285242,-134459765,-565802503,58048523,-1948367105,1861745734,-1962284066,-1230782394,-62485749,-1593067357,104402328,58657718,-1995721055,-1532888506,-1207551731,-1593606389,1183386552,196518386,-1588576192,1077939128,112720,-1070903216,-6664112,-1560280833,-1073016480,854131573,228106500,-1711651285,-120470997,-1592940893,1177226660,-1037329934,-1465648943,-96040179,228984323,-1962038621,100921926,-1398600280,210155533,-1497870306,-1706025459,9319,-559693781,282895120,-1559176541,1996427480,570333898,1183383552,1614217154,596744721,1183383552,28856560,-11513856,-16009674,-16009162,-1070873994,1996443728,-59310144,-1174396744,1347551436,16777114,196518144,1979336249,196649224,1962034745,108461869,-1947175169]},{"sector":10,"data":[1346435654,1089619595,-1237909680,-1204355317,-92864757,-386763009,1183515585,196518906,-1544403317,1996426168,582523586,1996423168,591501830,1183383552,922702036,922684838,1996426664,-227082246,-1192200449,1347420161,-1174396744,1347551436,2416282,-730398976,1892762,108461824,-1697351937,9051,-1695516929,9226,-1710852353,8913,1354771280,361114,108461824,2006170,244338688,-940068888,17125894,53078272,1342178232,2426522,-129595136,58048523,1342311145,1533082,-968455936,-1916250487,-259273602,-1910634730,-1515870758,1996431269,402103032,2122514432,108267468,147619459,-1734276235,196518669,-351427423,-834237641,-1946925431,1183436870,108462070,2418330,-733574912,1355577087,385107597,61532240,-16353537,-1332030346,-1962934242,-1230769082,-163149045,-1593067357,1077939126,196649296,-1202700224,1347420161,1347469355,2074522,291545856,58048523,1342325993,2391706,-263812864,1354771280,1123482,-1466281984,-16777199,-1070862218,922701904,922684342,565709752,15776256,1251627090,-16777204,1996484726,-25908,1183514624,474572,138217332,-351243264,-260636898,-3246337,-6631306,-16776961,922742902,922684342,-6681672,-16776961,1996484726,-25902,1996423168,511286000,-1734279168,-1241106163,-1593606389,1183386550,228893178,196609593,-1197407361,-230258421,722311329,731511366,-1543974462,-1532949082,-230282483,-775804007]},{"sector":11,"data":[229155832,66733707,-1559386618,1183518122,-1476000782,229417741,504137400,229029968,-6664162,721420543,283026368,-1559176029,-660401958,1614216976,508336657,1183383552,196518384,1979336249,196649224,1962034745,108461865,-1018113,1996487286,-1237909518,-1204355317,-92864757,-386763009,1183514989,196518906,-1544403317,1996426168,112880,922701904,922684342,1996426168,1354771440,2144336,1375784122,507746896,1996423168,512858630,1183383552,922702036,922684838,922684840,922684342,-1947661384,112893,547461712,1183383552,1975520224,15722755,-1230782421,-2081387765,-1554644282,1077939128,112720,-1070903216,-2120593328,-1560281053,-1073016480,-1763114123,228106496,196478507,-775804007,229024760,722314401,-1727285242,-120470997,-1592940381,100863398,-1432155210,229155085,196609539,-1207063389,1344146566,504211128,568105552,-1070923776,-1559175517,-626847524,282632976,-1696565505,65535,-1710852353,2445,196492931,-2093452032,768062,922694005,-73789088,-2097151972,1103422,922683764,-811986730,-2097151963,759870,922683764,395971480,-16777188,632817270,-13702400,-258341258,1342177317,-1705983957,8905,-1710852353,8896,-401698736,113767568,66918,-206615,548931190,1374179328,518167042,1599995904,-1962742397,1297948645,1426064074,-327029621,1048772738,1946158414,1379828492,91553797,-352321096,309788455,1350583949,1342210232]},{"sector":12,"data":[1342186424,-1705983957,10359,1186484254,-1202708980,-1706033071,10375,-8485239,1946157373,9234691,89261767,1183514625,1946551050,-301581556,-1593147893,103484398,1183386740,138840842,209585667,208012859,1721830014,2114333452,138840332,50742923,1342993414,51226785,1342995974,722093707,-11532730,1996424310,242679568,722224779,-1706032058,9972,51226273,1342993414,50611851,1342995974,-1962248449,1177225286,1996443652,239504144,1342588459,-1710459137,65535,-1034033781,-1957363696,175570924,637820612,1996437503,571400,656382544,-11534336,79169654,1016745984,1342177319,-1006614296,-1993997218,175570695,41418534,-1207404801,-1706033142,10057,142016336,1342179000,1398682,518541312,73319424,38242598,4162342,-1073018498,28837246,721611520,1575324608,1426065602,-326898549,-263796976,1187446785,-2097151498,1962935422,13232387,755648139,121438209,-385649152,-1073545029,-1476448621,1187456982,-352318730,-163133631,988479588,-17807673,-163133696,787167296,-17807673,-163133696,585827304,-17807673,-163133696,384509712,-385333621,667943042,665135006,667166648,667953068,1183524816,1347590640,-1727510901,10113106,1375731752,105286480,-1706012007,10263,-1979955575,1183579734,1347590646,-1727773045,-6664110,-1996488449,1451882566,-62485510,66999947,1444149318,77306,1375787651,-92864688,-1694992641,65535,-1980610935]},{"sector":13,"data":[-770968490,92212092,1988099901,-339727612,-230257917,-1034033781,-1957363704,-2131983892,108461824,1350583949,1342210232,721712895,-2087038784,503316492,280148048,817385502,-1818603520,-1962934260,79846885,-1873273344,-326412987,-2082959842,1048774380,1946160100,-466157751,683055627,1183383552,-2110324740,695114254,1183383552,-59310086,1347469355,228079359,228865791,1358591743,2144336,1375784122,698260048,1996423168,686463738,1996423168,705272572,-310181888,535137026,516640093,1430622296,-1910575989,216826840,89261767,1822490625,-1546062075,-1969158804,-1546062072,1996425354,578198022,1183383552,-1975614474,108855304,-26032,1048772608,1946158436,-159973622,2808474,-2096108800,354366,1996425332,485202678,1048772608,1946158018,108461832,16777114,92446976,-2103191305,-466157819,695900683,1183383552,-2110324742,715233806,1183383552,-92864524,1347469355,228079359,228865791,1358198527,4634704,1375758010,700422736,1996423168,1354771444,-1741226160,-1539899635,-92864755,1186484304,6732288,-526757806,-16777175,-1070859658,922701904,922684824,1996426660,-1202695948,1723465798,-1706012160,10753,737572607,-11513664,-15886282,-15883210,1347482742,-1174396744,1347551436,2804378,-193528064,2757018,-92864768,2806426,1681818368,175439877,90717827,-385649408,-626982594,-1475989232,229155085,282723889,823188129,-1592940538,103878872,-1499394650]},{"sector":14,"data":[-670682867,282632464,228984369,823189153,-1592939514,103878060,-559869730,-1408880368,282894605,229246513,822979233,-1592730618,103878876,-1432285782,-1509545203,196518669,722316449,-1559386106,1048775608,1946158436,1816036172,981336069,291518207,2813338,-62486272,-624897,-15882698,-15882186,-16009674,1342945334,1342177720,2144336,1375784122,722901584,1996423168,723426044,1996423168,581278454,-2081882112,1816036096,1954414597,210646783,2828186,-129595136,-624897,-15882698,-15882186,-16009674,1342945334,1342177720,52869200,1375740602,580754000,1996423168,577673976,922681344,-224784032,-1996488671,1996487750,-1506344970,-1472790771,-1237909747,-1204355317,28856331,-1202696192,-289800058,-1706012160,10458,-1694730497,10466,-1695123713,10574,143277699,-16220672,781907574,-16777175,1996424822,581999350,-310181888,535137026,46812509,16973951,200789,16973931,74754,16973947,73583,131200,16717559,196620,16712134,131089,16717739,196621,16721327,16973843,74698,196611,16722090,16973851,198409,16973948,74727,196620,16721980,16973852,198382,196733,16721907,196637,16712632,16973854,74743,196622,16713243,196639,16715605,196640,16715561,16973857,206428,196609,16713323,16973858,66054,196627,16713618,16973859]},{"sector":15,"data":[66039,196628,16713577,196644,16713569,196645,16719994,16973862,200471,196614,16713552,16973863,137047,196623,16713540,327720,16715114,196672,16713524,16973865,204493,16973961,140735,196625,16713512,16973866,206350,16973962,140025,16973842,66261,196635,16713412,16973867,140054,16973843,204584,196747,16713404,16973868,74687,196637,16713332,16973869,204867,196749,16712991,16973870,205545,196750,16713145,16973871,137077,196631,16721384,16973872,200318,16973968,137226,196632,16713019,16973873,76624,16973858,198118,196626,16712709,16973874,73934,16973986,198187,196627,16714211,16973875,73661,16973987,74281,196643,16714184,196660,16721304,196661,16713976,16973878,200019,196630,16713946,16973879,201250,196759,16713780,16973880,201263,196761,16713756,196665,16713723,16973882,201844,16973978,203435,196763,16713706,16973883,196845,196764,16721484,16973884,74659,16973869,203419,196765,16714855,196669,16714756,196670,16714739,16973887,200602,16973855,75055,16973872,199851,131105,16715117,16973888,198852,16973990]},{"sector":16,"data":[198895,16973991,200562,16973863,131516,16973872,200584,196648,16722237,16973896,200010,16973865,69975,16973881,136960,196659,16722269,16973899,137012,16973876,206303,196654,16722784,16973903,76632,16973892,199835,16973877,71462,16973894,197779,16973880,136684,16973893,136702,16973894,136349,16973896,75538,16973904,207134,16973890,132787,16973898,73914,16973906,207738,16973892,197876,16973893,74653,16973911,206202,196682,16718085,16973932,69999,196701,16718039,196717,16717952,196718,16717905,196719,16719699,327795,16717556,196620,16719692,327796,16717736,196621,16721608,196725,16721296,16973942,200081,196695,16722799,1953300599,1167087646,518818645,1996478606,4777990,74825739,904642603,-402229505,-1073020735,1996485236,19916806,-395001845,-402229505,-1073020516,1996480116,34269190,-730546165,-402229505,-1073020297,28887668,49120000,1562371467,182861,-2081649835,1085801196,448286720,-6664192,-1996488449,-1072955834,-1070922635,1586193387,71732222,1342850953,503844024,-26032,1586167808,206014974,-1995961160,1603015239,239585044,1200160768,408914966,1342177976,16777114,-27358464,-955234423,-956298489,-64953,-16496697]},{"sector":17,"data":[516131839,-26032,-1073020928,1996465268,-25858,28835840,1575324416,1426064066,-326898549,4241410,1751120,6789712,1183383552,1975520254,-339727612,-27358380,-1996208501,-861861305,239569155,-1995957576,1603016263,1354771224,43418,-27358464,722487177,340232640,-955103351,-956300537,-64953,-16496697,516131839,13015632,-1073020928,1996469108,13802238,28835840,1575324416,1426064066,-326898549,4241410,1751120,15637072,1183383552,1975520254,-339727612,-27358381,-1996208501,1204226631,-1207959538,1200162834,408914966,-1705983957,281,-1979818357,-1070919609,-1995159671,130486855,1204224011,-939524350,-64441,1344193419,81562,1958742784,-25755724,84634,112640,-1034033781,-1957363710,49054700,1342193848,1342184120,91802,-28931840,74825739,1424736299,-1946263925,1200161862,63742218,-1207023735,1200162858,408914966,-1705983957,400,-1979818357,-1070919609,-1995159671,130486855,1204224003,-939524350,-64441,1344193419,112026,1958742784,-25755725,115098,112640,-1034033781,-1957363710,49054700,1342193848,1342184120,122266,-28931840,74825739,1407959083,-1946263925,1200161862,239585034,850919424,373786888,723017612,144330944,-1962934270,1200225886,-1983894768,1200165959,185059090,38258432,1204289535,-1946157308,-1706025277,557,-1267417077,-1694599425,569,-1962933832,46292453,-326413056]}],[{"sector":1,"data":[-1207767933,-1202716608,-1706033126,597,201213577,721712576,-1958483008,1183579742,172460292,-1996239711,582487623,373786888,-954703988,397383,198599,-16627769,71813119,-1014235137,-1533390818,184549378,-3902272,-1332019594,-1207959550,-443875327,285393501,637534720,67174146,-1660943872,83951362,67109376,100728579,-872348928,83886594,385942272,117441027,-2046754048,-1375730944,184615680,956302083,2130772736,1459618050,-1174403840,16842496,838862080,33619713,-1459616512,50396929,553649408,67174146,-1744829184,83951362,-16775936,100728578,-1090518528,16842496,922747392,33619713,-1375731200,50396929,1937009920,1167087646,518818645,-326903666,-26104,1183383552,-61437446,-1962223453,198878146,-1727342431,-1037319629,-754974023,734147576,-670694462,234267402,-1727276383,-1037319629,-1036781357,100909611,1285753818,98619662,-1264386043,1543948043,-1207953391,-11534312,-16021962,-1710517706,65535,-16108381,887621238,-129595136,443858955,-16508184,-2065168778,40036355,-402229505,283640001,93513733,-6683157,-1962934017,-310118330,535137026,46812509,-326413056,-16454525,213386358,-1706025464,65535,185373859,721778112,8513984,234239743,-150993480,1343114286,1342177720,1354771280,16292432,-2036137984,1958742798,1095898,28856400,726683648,-1706012480,275,185442467,-1195346752,1347420176,1342177720,9353296]},{"sector":2,"data":[-6664162,-1560280833,-1073017356,45655412,-1070903296,-1706012592,65535,185364131,-1198492480,-1706033145,65535,185488035,-385649216,28901245,1575324416,1426064066,-326898549,-11118824,-1207135178,-1924136946,1343679046,16777114,239902976,50716881,-297387264,1776878460,-1808335103,-26100,1183383552,-297366534,-1728052435,-120470997,-939637111,59462,1988843499,1191105000,737834751,-11120448,28896374,1996443648,1354771450,1088964235,2144336,1375784122,32086608,1996423168,1354771450,-327745706,1342177720,737834751,1183535296,1346388200,-1174354248,1347551368,16777114,-398032128,-28931326,2095597113,-92864607,1342178488,80026,-6664192,-16776961,-1070859658,-398030000,1346435281,-1192462593,-1202716671,-256245727,-1706012160,65535,15222471,-1956123904,1979973238,-394359832,1996488657,1354771450,51268769,1346388167,-1192462593,-11534335,-1070859658,38047056,2144336,1375784122,43162192,1996423168,1354771450,51268769,1346388167,-1192462593,-11534335,-1070859658,54824272,13023312,1375766714,29530704,1182990336,1183515368,-398050818,1996460412,309498,50436688,-1706033152,775,737834751,1183535296,66638312,1074678790,1996443712,112876,2209872,1375793338,36215376,1996423168,-25862,1599995904,-1034033781,-1957363710,183272428,243676927,97946,-62486272,1354771280,131482,127553536,-16777214,-1070859146]},{"sector":3,"data":[922701904,95948278,1278146304,565727246,15776256,-1415950254,-16777213,79232118,-1432727552,1342177282,176282,-96024832,-157220864,-1036805875,62505515,871944960,-1983763518,1183577670,1278146554,-1580692722,731450956,66638274,-28407352,16416387,1183531893,234267126,734147481,244162,-1036781357,244040235,-936702474,2130071099,-59310240,-624897,45678198,28856320,565727232,15776256,-308653998,-2097151997,-351996346,-59310144,-1946781953,1177288262,-1588576006,865668598,-1178457150,-120389629,-1037319629,244048081,-936702474,-96040111,1346953425,-1174396488,1347551472,186010,-96010496,100302467,1172898685,-59310081,188058,1575324416,-326412861,1443163267,16664263,-25263360,-2094042105,1946877566,-25263319,-2094828533,1946746494,-25263331,-1961397242,-422445450,-1962641665,503365252,-26032,-2071396352,1191120376,-25263106,-339575284,-27358449,279045073,-125335282,-28901619,419331715,-861803652,237544195,-1559359327,245566988,235447054,-1559361885,1996426756,53000196,1117409310,-1560281084,-1956772918,46292453,-326413056,1347469355,833616,239873783,1342180357,-150991688,1343092270,1342177976,1342180536,1342183608,1342178488,-1207926040,726663169,-1202696000,787939333,-11530676,-1207044554,-1202716667,-1202716671,-1202716667,-397410303,45613147,-1070903296,1354256464,-256356352,79187968,112742400,414732288,129519616,954748928]},{"sector":4,"data":[243712,1354771280,833616,171192055,-775804007,465064184,1546581760,-1037330159,-1202652975,-1202716668,-1202716663,726663204,82333888,1575324416,-326412861,-1207767933,1861681172,200410388,519980681,276234064,-15567105,1996426358,-26098,1586167808,105286654,-1962129527,1200162886,172395274,-1962391671,1200161862,1317771538,-1980106998,1183518791,-101213948,-1961994359,314727909,-326413056,-1207767933,1487077384,286434065,957056673,2114687494,302434080,-16773103,-1710361546,1517,1358841481,1347469355,1342181560,-352319304,193372455,194119225,113721469,1053016,234108671,193946,-28931840,1354771280,571472,1095760,-25755824,1347469355,1342179512,2144336,1375784122,-26032,1996423168,67214078,-443875328,-1957313699,49054700,1342179512,112720,-1363652528,-1706025472,222,1358841481,16777114,180134656,-1694599425,65535,-1017256565,1167087646,518818645,922736782,28840204,716722176,-1202708978,-1706033120,1674,286013183,1342177976,504030392,2144336,111188560,922681344,62394636,1186484224,-1202708980,-1706033120,1718,286013183,1342178488,504410808,2144336,114072144,922681344,95949068,-1162326016,-1202708981,-1706033120,1762,286013183,1342179000,504445112,2144336,116955728,922681344,129503500,414732288,-1202708975,-1706033120,65535,286013183,1342179512,504268984,2144336,119839312]},{"sector":5,"data":[922681344,163057932,-524791808,-1202708976,-1706033120,1850,286013183,1342180536,504214200,4241488,108304976,-310181888,535137026,516640093,1430622296,-1910575989,485262296,-1705983957,65535,199509641,-385649216,-1202716165,-1706033112,1915,-16021853,716760182,-1969598464,-1560281081,1996426130,571620,127507024,1990393856,-461963508,1342180024,16777114,209888000,-1192986881,-1706033148,1975,-15885661,112780406,1822052352,-1560281081,1996426670,102669028,1990262784,-1036805876,62505515,871944960,-1715328062,-2103357358,1347590412,527002,-431585024,199775881,-385647150,142540946,2013257533,8972547,-1727236447,-541568942,1389505535,137140816,1347551232,-1542401,966452854,-1560281080,-2103374730,1347590412,738189240,-1706011950,2126,1996443730,-428408856,547738,209888000,-1727161695,-541568942,1389505535,141597264,1347551232,-1542401,2107303542,-1560281080,-1365176934,1347590413,738189240,-1706011950,65535,1996443730,-428408856,16777114,229548800,-1532772309,228107021,112720,1354771280,19438160,-1163722752,309258,53713488,1789067264,67155976,112720,726683728,-1706012480,2261,-15957853,-1593018826,103484546,-1202713676,1347420161,1347469355,585370,243442432,228079359,228865791,1342177720,1354771280,104634960,-459079680,-1170308341,359923722,141180547,-2096204800,819262,1048774516,1962937986]},{"sector":6,"data":[-1170308253,158597130,179975935,601498,1782481664,158597128,141178623,605594,-2143386880,158597132,209729279,609690,-2109832448,158597134,243414783,413850,-465665280,158597131,199505663,597402,-1547687168,-2103243804,209756942,-1559729501,65735354,-2097151560,-443874579,-884122337,16973847,65640,196736,16711831,196625,16714077,196627,16713156,196635,16713751,196636,16713697,16973853,66343,16973853,66150,16973858,67094,16973859,66361,16973869,67768,16973872,67416,16973876,67141,16973884,67734,16973885,197771,16973997,196792,16973999,198414,16974000,67522,16973892,67496,16973904,65893,16973906,67746,16973911,197994,16973896,196622,1953300566,1167087646,518818645,-326903666,108461846,16777114,-330921728,768080,49781328,-1706033152,65535,-1192462593,1344146362,1452953630,1342177280,23706,-96040704,-1543743863,-1031074838,-15994717,951643254,508567057,-26032,-1706033152,65535,-1980086647,-358482858,-96061173,1183516278,199926778,957083809,108461126,-1543747957,62393328,-265357568,-1037330165,100792529,62393322,-265357568,-1036805877,45728299,871944960,29502402,-15994874,1996424822,-25876,113704960,1051350,243271367,280494104,922701824,922684294,-476443758,-1560281088]},{"sector":7,"data":[922684164,922685056,922684294,-6681710,-1560280833,-2136928046,193766158,-1559178591,-694088810,-754732790,239772640,-754252639,240428000,-787578719,1241908192,240952078,-1559178591,146280068,-1202696192,1347420161,1347469355,16777114,195994368,-16093464,-1207194058,1385758736,194951248,-6664162,-16776961,-1710510538,65535,-1207193437,787939331,243994240,-506393014,1183432963,282239478,244048081,-506393616,100909315,1183387220,200319476,-775804007,-1949791240,731510342,737726914,-368694335,208184075,737429131,722522630,-1559498746,129502316,-1248178176,-788529151,-163184160,1342179512,16777114,31510784,1996485702,-297366266,1996443670,-193527818,16777114,108461824,-1705983957,65535,503849656,132954192,-1070903266,1385185466,-163148976,-775804007,-296842248,-1957574613,731509830,-1946627646,-936644530,-159973551,-755969,-1070922122,204930896,-1706012655,617,1342535843,16777114,49120000,1562371467,182861,-2081649835,1924663532,-1202708984,1344146362,-1174404680,1347571712,208156415,208418559,199898879,200292095,1342469887,286013183,1347469355,174490,91923200,503871928,288929872,-1070903266,1380974778,208183632,199886339,200279555,1815543632,-365494516,-264831221,74907403,1342177976,286013183,1347469355,16777114,92054272,-1929087233,1343682630,16777114,-129594624,-1711520253,-120470997,-96040112,-1711389181,-120470997]},{"sector":8,"data":[-26032,-443875328,180829,-2081649835,922684652,-6681682,-1996488449,79232582,-6664192,-1996488449,-1070859706,2005584,1183383552,-196687880,1187446784,-16776964,1996424310,-193527810,-1694730497,65535,91537931,-336050549,-96040189,59415120,1996423168,-196703484,181808887,193725955,-62485680,184823543,194381315,181838160,77680712,-1202698229,-256245727,-1706012160,941,-2080618753,2080963710,-196673630,150240899,1996461180,-25858,1996423168,-1338573052,62429707,1183383552,74907638,240924415,243545855,239744767,240400127,-1174396488,1347551472,16777114,74907392,-1695123713,36,-1593542913,1212681100,194421072,-1706014648,1092,-1593542913,1212681100,184852816,-523041871,194381315,67410512,1996423168,181838084,-523041871,193725955,184852816,100917459,-1706030186,1054,-1593542913,61934294,100917459,-1588589684,1212681110,70425168,1996423168,193765636,-1588574136,1212681110,72981072,1996423168,240951556,-2069802936,-1706014706,65535,-1593542913,1346899548,51283105,1343116294,291226,74907392,51272865,1343113734,51283105,1343116294,296602,74907392,51272865,1343113734,1208911009,77109840,1996423168,240951556,-2069802936,-1706014706,65535,-1034033781,-1957363708,49054700,1023952523,276038144,1946288445,33701230,-1209465995,13363456,141442691,-385646848,1048772801,1962937318,12052739]},{"sector":9,"data":[-16353537,-2115500938,1975520006,11004163,-16353537,401081462,1975520005,112645,-1070923029,240518707,-1964440715,175570688,346778,-28931840,108461904,-402360577,1996424500,-25755894,352922,-2090276096,552510,1996440693,74907398,-1559876632,-1073017882,1996434548,74907398,-1559969304,1996426838,1153546,1183383552,1996443902,74907398,-16453656,1996425846,11705086,1996423168,-26102,117374976,401279086,141442691,-15696384,-2096599538,552510,-6683275,-1962934017,146955749,-326413056,-955585405,64582,16402119,-163148544,-6664170,-16776961,1183648374,-1706027274,65535,1023952523,57999373,1979749865,25815299,1946159421,10348821,425603,-1796668547,175570688,-385875272,2122514562,58523654,-1711242519,1538,92014139,922684277,-6683272,-352321281,102341228,104529920,108332410,92026623,922740971,-487914118,412570,2013674240,-2094566139,2097153662,1443284749,-956301307,33749574,1048786923,1962935638,1443284784,-956301051,33684038,-6675477,989855999,1946515974,-8853245,425603,1996427132,112650,31844432,33310407,-92372224,-15830016,1996425846,-163148294,568872982,-92371970,-385649664,2122514666,57934076,-1207901719,-571932671,108954368,-1949402112,624756806,1026585600,208928806,1946167101,2637102,116070772,688587937,-1935542202,-163170037,263725437,-701565184,-1590957302,1174473476]},{"sector":10,"data":[-1578636296,1177094870,-1579160586,1174473430,-1579684874,61934294,100917459,1178274700,-1592819722,731450070,66638274,-1995731962,-1767770554,-129615605,263719293,70186752,-1592530165,61934340,100917459,1178274710,-1592819720,731450116,66638274,-1995729402,1996486726,-163148534,949637142,-16777208,1996486262,138648312,485031936,1785343,2011759477,2113022,-1209465995,2440702,82379635,2637311,686359415,-17176065,-443826133,574045,-2081649835,330826988,-1483059200,184549377,-385649472,2122514613,91555588,-352321096,1354771202,16777114,75399936,-385649657,1183645849,-1706027268,1447,-1928956161,1343683654,373914,181838080,-775804007,-1945762824,-62506229,263732095,-701565184,-1037330166,100923601,1178274700,-1591313156,731450116,66638274,990615046,360709702,-150990920,-1727331282,-120470997,194381315,2113816123,181838134,-775804007,-1945762824,-62486261,-1727331167,-120470997,194381315,-113015,1183647350,-1706027268,65535,-231681,-694485386,-1962934270,79846885,-326413056,-1962087293,20776006,1023964160,1148452866,-1593801495,1183385706,196125176,-1962382685,-1331431354,54716427,-1710852353,2216,1358579337,329114,-62486272,1358591743,1342178232,16777114,-92864768,-1694730497,1309,-1710852353,65535,1358579337,1342177720,120986,-92864768,140698,108461824,16777114,-1372127488,148347403,922681344]},{"sector":11,"data":[-6681680,-956301057,358918,2080818944,-1962934267,79846885,-1873273344,-326412987,-2082959842,-1070913812,-1979955575,1183578694,539916,-991362186,474368,-2098658446,81152,104663668,-385649408,1475018898,-401705217,1183578378,-61436934,-16726295,1996426870,105286924,1642614806,-1577989,1183649398,-1706027302,65535,-15829249,-2014782858,242679801,383403661,-26032,-1024786432,-15829249,1996425846,108461832,201071336,-5278528,1996426870,175570700,-16222465,-6683018,-1996488449,1451883078,-7083012,1996426870,-35854324,2122549483,-2106261496,-15829249,-1662514570,-8984066,687747,1843987317,142509055,-385649664,1996488548,100375054,1508442112,16858623,4001655,1032680193,57999375,-335585047,17907094,4044916,1032614402,58130946,-335594263,49120130,1562371467,707149,-2081649835,1589904620,126559748,193725995,-703689831,-1980106998,-1960379322,103481927,-1952904298,-150273010,-28931591,-472786805,194938763,-1325399622,-61986297,-1037835565,-1034033781,-1957363708,149717996,637820612,103483275,-1952904308,-150284786,-129594887,38243110,194381355,68062105,-1980106997,1048837190,1946160726,-774337770,112867,1311377329,-136260616,-1635311152,-1961628917,-472777634,-1325399624,-129095161,-2029395757,922684318,280497070,1347590400,504078008,21207632,922681344,-828765264,-16777208,-1710510538,332,-16011101,1048774774]},{"sector":12,"data":[1946160726,309253,-1070923029,50502224,-1706033152,2854,-1962379521,788002886,100862678,-1957688436,788003910,100862724,-1588589674,1346898646,1208681633,2209872,1375793338,189373008,1996423168,-1338573048,190093835,1183383552,142016506,240924415,243545855,239744767,240400127,-1174396488,1347551472,222362,142016256,-1694861569,818,-1034033781,-1957363706,73319660,638291105,763103033,-1324689759,65065731,638290950,494798651,638293665,2080524089,184852756,100917459,958794646,92078663,-352321096,-1950340350,79846885,-326413056,1342938808,-1324597087,98620164,-397410088,-443875299,-1957313699,205562348,-523041615,1342232581,1342938808,-1962933016,1438866917,-326898549,1187468802,-1962934018,1182991966,1988821510,71729924,-1996190974,-28901625,150896259,-1956715140,79846885,16973862,199051,16973931,65743,196736,16714431,196627,16712427,196635,16713877,16973855,66534,16973843,66508,16973844,68378,16973853,198580,16973841,197994,16973842,198023,16973843,199114,16973846,198124,16973847,198463,16973852,68328,16973869,198593,16973853,197305,16973856,65833,16973872,198837,16973858,198988,16973863,199010,16973864,197148,16973865,68296,16973884,198780,16973870,198535,16974003,66430,16973892]},{"sector":13,"data":[198853,16973877,198845,16973883,198789,16973890,66336,16973907,198816,16973892,198474,16973894,68322,16973911,198561,16973895,65593,16973915,131123,16973914,68278,196714,16712141,1953300609,1167087646,518818645,1996478606,-26106,-1706033152,63,-2096502109,-443874579,-900899553,1478361090,-1957345904,-661774612,166346371,-15961088,922682998,-1885730326,-2097152000,-443874579,-900899553,1478361090,-1957345904,-661774612,-16061309,-6683018,-1996488449,1451882566,1946561530,-163149556,103531147,1183386750,108462076,1358329599,16777114,108461824,16777114,-1281732608,-1560281088,-310179352,535137026,46812509,-1873273344,-326412987,-2585058,922682998,-107345432,1342177280,16777114,49120000,1562371467,182861,1167087646,518818645,-326903666,1354771206,16777114,-96040704,242597899,504021688,112720,-26032,1996423168,108462074,154522,-96040192,-1962742397,1297948645,503317194,1430622296,-1910575989,116163544,92421763,-2093383936,361022,-6681987,-1879047937,11397134,1342177976,-1560215368,-523172480,1385816273,-26032,2124611584,1958742789,1156272131,92276423,1223360512,956661921,2080735750,2117533503,32283141,922681344,109053310,-1593768575,-523172480,1385816273,178256,-26032,-1073020928,780207733,16778624,92157695,16777114,286565120,286660233]},{"sector":14,"data":[956661921,2097512966,92447017,-523116335,286524931,286660235,-1980086647,1589967958,138841082,-1962440410,-1993996730,117375559,-310180478,535137026,80366941,-1873273344,-326412987,-2585058,-1710916042,65535,92157695,16777114,2114373376,721420293,286696384,-1559161693,-2103245440,49120005,1562371467,1478413133,-1957345904,-661774612,286531268,641204006,-1878886401,-19142642,-1962742397,1297948645,-1873273141,-326412987,-2082959842,1048773868,2114061698,108461898,1342179512,16777114,2107265024,-1996488702,1996487750,372702982,339148561,-2110324975,-26107,1996423168,-59310330,16777114,108461824,286668543,286537471,92419839,225434,-2094077184,361022,1996433278,337560582,2013210129,2013210116,-26106,1996423168,337560582,939468305,41418534,16777114,49120000,1562371467,182861,1167087646,518818645,-326903666,108461828,468192912,108462077,1642598032,-401698563,1996488484,-26106,1183383552,1095932,-26032,-1073020928,1996426365,112646,53123664,1996423168,-401698810,244383515,-83224,1996424822,-25860,1996423168,-401698810,1996488043,-401698810,-310117144,535137026,46812509,-1873273344,-326412987,-2585058,244319862,-1862490648,-21567474,-16353537,-15657418,-15657930,-1710915018,65535,1692929680,108462078,-1511518576,49120252,1562371467,182861,1167087646,518818645,-326903666,-950642930,62022]},{"sector":15,"data":[-1962385781,120259655,-1946532215,1194001991,-129595134,-1957670247,1385762374,64461392,-930414592,-1946532213,1347590618,-1727248757,-242528174,-6620277,989855999,2131459287,1992702724,112645,-1070923029,-939768183,128070,-16725271,1586169462,50825992,-1957686714,1174602311,244338704,-2097087256,1946221694,108461838,-15829249,244321398,-16708632,1183052358,1182991366,1586168840,71797512,1183385387,105352186,-1996339413,1385822278,239504208,-1706012007,1125,1183565963,-1713730566,1183535186,1347590412,-74714741,457626,2094480128,990150411,-1207601466,48955393,1183432747,-62485514,1962296883,108461875,-1962385781,306578183,38243152,1343243779,1860701840,-58817792,-15830016,1996424822,209125134,2112360080,-230228224,67520131,-1980348789,1191181382,172395508,2113160761,-13899517,-1962510593,126552158,1343374851,50481035,-1873801146,2615310,16547459,1996426868,242679558,-1878231297,3598350,-1947056385,1600057926,-1962742397,1297948645,503320266,1430622296,-1910575989,173968344,-1995946357,105286407,-2097002615,-443874579,-900899553,1478361094,-1957345904,-661774612,-1962254709,117508166,17188491,-310181305,535137026,113921373,-1873273344,-326412987,-2082959842,1996444396,571406,39164496,-1706033152,20,-1928431873,1343663686,-15960321,1183517302,205925128,105286480,1342850603,204086923,-1207966767,-6683260,1342177535,1353598605]},{"sector":16,"data":[-404222320,1922715901,-2097151998,-443874579,-900899553,1478361098,-1957345904,-661774612,1443687555,957056673,2114687494,194158858,-2045867111,-1593251061,-1952904314,-150236658,-96040455,16008903,-129579264,213385216,-194054400,1586229387,-1948003848,-1995984768,1187509830,-352321284,193372456,194119225,1183517822,-161575942,126431223,1183517931,-161575942,-1996328969,1182990919,1191118070,-128021508,1183572945,-2071512580,-3506427,2122577990,-1501821192,-2081143041,2080699518,-310157672,535137026,516640093,1430622296,-1910575989,82609112,108432214,1309308459,2114977411,1030149,-963968277,-1946401143,1177225286,-1037330164,-259262255,-59360946,1183516029,-1962742788,-62486074,92127243,16533191,242679552,-15960321,1996425846,108461832,-771996021,1996443872,-25860,-2090991616,-443874579,-900899553,1478361098,-1957345904,-661774612,1460857987,142508886,-2096204544,1962935934,-129579256,-1494679552,105286400,-1722789223,295325778,-1962934265,138841032,1385814667,1347590480,-74714741,476570,331744000,-196703785,-940157303,64582,-375097,-129579137,1187463167,-1962934034,1178201670,-1956875016,1385822278,1347590480,245402,-263812864,-1947052407,1452012614,-229230090,92016511,1945126457,-129594616,-335788407,-196703464,972445323,595391062,1178142079,-1961068816,1183447110,-129594374,-1947318647,1174666310,-2131176966,1183416292,-1952650248,1600059462,-1962742397]},{"sector":17,"data":[1297948645,503317706,1430622296,-1910575989,82609112,-1995684213,922745926,1996427532,-11526648,194644598,16777224,2122517574,997457926,504120971,105286480,-6664162,-1962934017,1344144966,16777114,205914368,722224779,1177156678,204930826,138840849,1183535168,-11526644,-6681994,-1962934017,-310117306,535137026,147475805,-1873273344,-326412987,-2082959842,1183517932,239483146,-2115435659,-196704000,1183432747,-62486022,1996451051,-92864752,-1202667477,-11534335,1996425334,-59310320,-1202667477,-860225504,-13833472,1996427382,1354771450,1342177720,-16222465,1996427382,1354771452,1946568249,13023240,-352286534,8828934,1375792826,153000528,1183514624,-196728562,-2080618753,2130769022,172395454,-768511,1183578694,-96061170,1183550588,205928712,-2115435659,-196704000,1183432747,-129594890,1996451051,1354771216,-624897,28839542,1996443648,1354771216,-1191676161,-860225504,-13833472,-1070919562,-159973552,-1207011585,-11534335,-1070919562,-126419120,1946568249,13023240,-352286534,8828934,1375792826,-26032,1183514624,-196728564,-2080880897,2130769022,138841022,-768511,1183577670,-163170036,-310145924,535137026,214584669,-1873273344,-326412987,-2082959842,1946158718,108461832,16777114,49120000,1562371467,503499341,33620736,1778385667,302056192,33554691,1275069184,486604548,-1056898304,318767362,-1375665408,335544578,-2130640128,-1811939072]}],[{"sector":1,"data":[-1191116032,-1778384640,1107362560,251658753,-2113862912,268435969,-184483072,285213185,-1795095808,301990401,1711342336,318767617,-1107229952,469762310,-1845427456,570425608,-1493105920,603980037,-1862204672,620757250,1812005632,754974981,-654245120,872415488,654312192,1241579265,-301923584,939524608,-956235008,-1342176505,1627456256,1157628169,-167705856,1275068674,1593901824,1325400320,1711342336,1459618053,-553581824,1476395527,-385809664,1509949959,-1996487936,2113994496,234881792,2130771712,-1761606912,-2147418363,1937009920,-1192457387,-11533234,-6683530,-1962934017,46292453,-326413056,-1962480509,100861510,104533108,226429934,50611851,990674438,2114741766,-2110324910,31562254,1183383552,1183535356,1946551046,-301581556,-1593016821,1177226222,1946561286,721611532,1183535296,2114323204,1711684364,-1593016820,1177226342,2114333444,721611532,-6664000,-16776961,463142006,-2097151998,539198,1419844213,-96040699,89392839,1996423169,-26104,1183514624,89433082,-16222465,1996424822,977175300,92209160,-352321096,1354771202,16777114,1575324416,1426065090,-326898549,-11118840,-6681994,-1711275777,348,201213577,-385649216,20775231,-385649408,121438411,-1962249216,-1846824,-351405897,1849590606,1132331016,63583999,86170,175570688,184986,-129595136,440400,-26032,1996423168,2050424824,2083979020,2050424588,2083979020,-26100]},{"sector":2,"data":[1996423168,-126419190,193434,-16127232,-1710356938,531,141573763,-1706134528,835,1946158397,179780,141561482,1988749011,-1715041284,-120470997,1589966987,126559748,208930307,-140916989,737081342,638350342,-1960441975,100860487,-956101506,-134285415,2114333678,1200170508,73319426,4162342,-1578564740,130491904,-1461125120,1748927232,1584660485,504211128,73319504,41418534,-1707606234,576,1182056459,210646783,209306,-96040704,73319504,721914662,1074636294,1200301648,-1475990782,-1706016755,65535,108315147,237516543,922682603,-6681094,-16776961,1771764342,-385875965,922746674,652807674,1681818623,527695877,504211128,73319504,41418534,-1707606234,65535,125091851,237516543,-65303,-384960458,1589968633,228106500,2080848166,-1993979900,73319431,41911078,638090496,149447,-1005458688,-1532951458,1194927629,1208318978,38242598,1023952523,410255872,1963065661,15984899,1963065917,28305667,1946288957,44099925,141442691,-385646848,2057372310,291676940,-1559462751,1589907812,126559748,638352035,-1560131701,1996426364,54237706,1183383552,175570936,1354771280,-27358384,-472783919,56532991,-16091393,1989867638,-385875965,1048773198,2130707842,38070531,-1559463263,2090930530,291808012,637820612,2057504651,1200301580,209494786,16777114,89432832,192200715,243414783,16777114,-16192768,-6681994]},{"sector":3,"data":[-1996488449,-6621114,1023410431,175374358,-1694992641,65535,1996425451,-25864,1048772608,1946158420,-126419190,16777114,-15996160,1996425846,-25864,1996423168,-26102,113704960,1364,-2097037847,552510,-1276574860,73319424,-1559786714,2057507170,199271180,38243110,-1559141213,-492630916,52533771,1419968512,-1036090619,141819907,-1710590209,65535,90455683,-2094566144,354366,1048780917,2130708618,65575449,389873664,-1710263296,220,1946162749,-26107,1996423168,77568522,1183383552,175570936,112720,1354771280,-771858805,-1846813,-16556385,1996425846,84515576,-6684672,989855999,141822534,-1710590209,65535,-1710590209,65535,67010179,113706612,66898,141428479,-2097088023,552510,-269941889,1846476544,1849590536,57933832,-1593777687,1654852730,209494289,-1005493085,-1960442786,209363719,38243110,-2096333661,1946222206,-25263342,-2096335871,1946680958,-25263354,-14453501,-728102282,-1996488700,1996486726,-1070903286,112720,-27358384,-472783919,56532991,1048790251,1946158420,-2110324981,112105998,149618688,-1710590209,1378,-506231,726665846,28856512,1586188288,-773598722,1587544035,1413382915,175374341,-1694992641,1754,1996426219,-126419190,365210,1681818368,695533573,90717827,-2094893824,559678,1048779647,2130707842,-25263340,-2096204793,1946418814,175570696,229018]},{"sector":4,"data":[1409730304,-1711276027,65535,134119043,1048791157,2113931374,-902365375,17668611,1996423168,95525386,1183383552,112742648,580538368,-16777215,922744950,922684538,922684540,922684538,983174268,-16777215,1996425846,97950456,1599995904,-1034033781,-1957363704,49054700,1048786155,1946158018,142016301,71066,-28931840,1342732031,1342177720,369510029,-26032,1187446784,-16777212,1996425334,21338878,1325334528,75399940,-1950122752,113401317,-326413056,-2096829309,1963394174,108461834,16777114,-15865088,-6683018,-1711275777,65535,1342182328,16777114,1975520000,75400058,-1207601913,48955393,-1705983957,65535,117735043,1183670645,-1706027268,65535,-1928956161,1343683654,16777114,-58817792,-1592361984,1178144152,-2096202244,2080439934,228892936,2097038905,228106542,-775804007,-62486024,-1727159135,-120470997,-113015,1183647350,-1706027268,65535,-231681,-6619530,-1962934017,79846885,-326413056,-2096698237,539198,266929022,-2110324991,117217806,1183383552,74907642,1347469355,228079359,228865791,1358591743,2144336,1375784122,119904848,1996423168,120429306,1048772608,1946158018,108461835,-1710983425,65535,90455683,-12291072,-1710137290,58,-375159,922682486,922684838,922684840,922684342,-1202713672,1347420161,-1174396744,1347551436,16777114,-92864768,33690,74907392,16777114,-2088899840]},{"sector":5,"data":[354366,922711668,-895873906,-1996488700,1996487238,-1506345212,-1472790771,-1237909747,-1204355317,28856331,-1202696192,582615846,-1706012160,1956,-362753,-1710137290,65535,-16484609,-15882698,-15882186,-16009674,-16009162,28899958,-1202696192,-289800058,-1706012160,1746,-1694861569,1276,-1710983425,65535,-1034033781,-1957363708,418153452,957395105,208930886,89917127,1183514625,280011528,16008903,-398029568,949637142,-16777210,1183648374,-1706027288,1605,1023952523,57999373,1979750633,54520067,1962936637,48425219,1048788459,1946158018,1514046215,796131333,63061635,-16223232,-1332082058,-2097151992,2097153662,1443284804,-956301307,350726,-1740733696,125042701,228867715,-2094828288,1946219646,175570702,-1913358593,1343678534,-2080871192,1946219646,49735939,-385875528,1187447538,-352189708,1446937558,-814415867,89523911,1048772609,1946160536,-1539406910,-1150025715,32786119,-2085295358,246334,1048774516,1946158426,-1036090458,141819907,-1710590209,964,425603,113707133,1368,1048807915,1962935640,1476839298,-956301051,350726,1849590528,58589192,-2080412439,890942,1659437941,-1539406849,57999373,-1694541591,2818,1946157885,277838,87892596,-15567872,62392950,1183666178,-397404440,854194101,175570943,16777114,-14161664,138034819,-16026368,-6681994,-385875713,1048837909,2080376890]},{"sector":6,"data":[-15996669,-1710590209,65535,-2080440087,539198,1048833652,2130708538,-17831677,2122567147,58523654,-1207861527,-1706033136,2425,276676619,1342181816,724634,2109737728,10676483,89786055,1048772609,1962937752,-21501693,228867715,-385649408,1183579821,2440456,641544308,1024226304,779354151,1946167357,-1593382119,1177093468,1543962602,-394362107,-954237696,59462,1554064619,-364510971,1554114539,-398055163,1554112491,-398065403,-1734223893,-398051059,-1991768964,2122573894,125632746,15353543,-1592988928,1178144164,1208253674,-1423735,1183648374,-1706027288,1668,-1542401,-1885672842,-385875962,1048837669,2113931374,-31725309,-219003193,201498891,-1577171319,1183386624,201105910,-1578350967,1183386618,138841080,1946166589,2506084,658312308,1030517760,1131675688,1325338859,-159480842,-1962443520,-1991706554,1183577670,-126945282,-1980348925,1996484678,-26102,-11534336,-6623114,-2097151745,890942,-1360460939,-1539406851,963969037,-154391,1183577670,-163169800,1187497084,-352321290,-28377155,16678531,1183560829,1183402220,-5510146,1183579718,-28952084,1187487868,-352321282,-196687975,1726546432,1543948285,-385875707,1048837469,2113931374,-44832509,425603,1256784765,64920317,1183383552,1095932,-26032,-1073020928,1191121020,-58817540,-954893288,64582,1325338347,-58817540,-955941632,1571910,-1710590209,2694]},{"sector":7,"data":[-59310256,1040141289,57999392,1039975401,57868325,1039988969,58130472,-369228823,-1070859027,-1034033781,1478361096,-1957345904,-661774612,723971203,-62486080,-1946532215,138218566,-385649152,121438384,-385650176,20775068,1023898624,292814853,1996452843,-194975730,-1946532213,-1293288362,242679552,-16353537,1625819254,-1446924,1183649398,-1706027302,65535,-15829249,-857154954,242679802,383403661,-26032,-991232000,-15829249,1183648886,-397404666,-1259604767,-15829249,1996425846,-106502138,1996465899,175570702,-16222465,-1243085194,1958743035,242679699,-15960321,1996425846,108461832,16777114,-96040704,-369338743,1996488566,209125134,-369510680,20840298,1024423681,-1166868224,1962938173,-9443069,37602283,1033729025,-1183710720,1979843389,-2085426301,-443874579,-900899553,50344202,50949121,50358784,51125505,50359040,17133313,50332672,-16300288,50338560,50386689,50363392,-16736768,50341376,-16190464,50343680,-16085248,50343936,50848513,50336000,17264641,50340352,50608129,50336256,50676737,50336512,-16385792,50345472,50606081,50337280,-16323584,50345728,50602753,50337536,50992129,50338816,50851841,50339072,17267713,50343168,-16434944,50348288,-16557568,50348544,-16560128,50348800,-16414976,50349056,50726913,50373632,-16727808,50349312,-16745728,50349568,50725633]},{"sector":8,"data":[50374144,-16774400,50349824,51101697,50341632,-16304896,50350080,51107329,50341888,-16398848,50350336,-16518656,50350592,-16242944,50350848,-16169984,50351104,-16175360,50351360,51066881,50343424,-16179968,50351616,-16272384,50351872,50729217,50377472,17280001,50349056,50573825,50344960,50592257,50348544,16908289,50352896,50601473,50349056,50682369,50349312,50994945,50349568,50735105,50349824,50451457,1828736000,1167087646,518818645,-6629234,-1207959297,1344145450,503833272,-1161811120,1347571712,922701904,922684824,1996426660,922701830,1347424524,16777114,91267840,24943184,-310181888,535137026,46812509,-1873273344,-326412987,-2082959842,1448543468,243414783,16777114,-62486272,166082303,165951231,-1728052552,-1449504686,-1962934272,285516232,165152299,1385814667,-499712176,-533266679,-1947104503,14588667,-972881920,1347606291,166082303,165951231,49050,208970496,166082303,165951231,-1728052552,-241545134,-1962934272,285647304,165283371,1385814667,-499712176,-533266679,-1947104503,-25861,-972881920,1347606291,166082303,165951231,16777114,209625856,208944771,-955745024,816134,-1592268032,100863092,104533400,175901678,722202273,-1559390202,1048775796,2097155198,2114373384,-352321524,209625367,228853251,208012859,1721830012,-1543099636,209625869,737965823,-11513664]},{"sector":9,"data":[-15886282,-15883210,-15961034,-1710457290,65535,-1694730497,65535,91240191,16777114,1879492352,-16777211,-1710918602,65535,16777114,-2090902016,-443874579,-900899553,1478361090,-1957345904,-661774612,723971203,-62486080,-1946532215,138218566,-385649152,121438347,1031500544,1517617157,-16353537,48760950,-96040184,-369338741,1996423306,-632910578,-6664170,-16776961,1996426870,78440666,-1928431873,1343674950,16777114,-2954496,1996426870,105286924,1659392022,-4003072,1996426870,142016266,-402229505,-1073020526,1996468084,209125134,-16091393,1996425334,-26106,1183383552,-61437446,1996461035,209125134,-352098584,998792,4033652,1037005313,-1217003263,1912733757,33701317,-1091854986,-1962742397,1297948645,1426066122,-326898549,209363206,-1592696157,1688407164,73319441,-1559786714,-1960440710,2091057735,138840844,1946288189,33635603,-907476107,33701120,-353827979,16705792,141442691,-385646848,1996423412,-26102,1183383552,-2031595266,209363203,291636779,-1577433463,103484540,1183388004,-96039940,285738499,165154443,165416451,226279739,722065569,51447814,-351675386,-96040172,285476355,165152315,-660534659,67513097,-96040687,66864779,-1961817594,50977294,990502414,-1592951615,103483866,100864266,350947806,66864779,990971398,2097797638,165323018,285607467,-1191426423,1344147716,-362753,-6620042,-16776961]},{"sector":10,"data":[-286720394,175570690,-1694599425,65535,1996439787,-26102,1048772608,1962936430,175570708,16777114,209363200,-1593057117,-492630916,1845952267,-2095584504,552510,251596926,1048774766,1962936430,-26107,-443875328,574045,-2081649835,-1331623188,138819856,113708148,66908,-1559738741,1187451056,-956301060,64070,385238669,97950288,1996423168,-163148534,-476426218,-1962934267,222103622,1986425856,26405123,1962936637,19261699,2122524139,226295814,89523911,1187446784,-352189702,1446937362,192217093,89523911,1187446785,-1962802694,-1331492794,-92372208,-15830016,1996425846,-163148294,786976790,-92371970,-385649664,2122514779,57934076,-1207872791,1323892737,108954369,-955745024,350214,-2084508928,350270,1187494261,-956300804,17127430,1849590528,-1484849144,91502335,16777114,-2086868224,2097153662,8972547,1023952523,812908581,1946166845,2571532,675098228,-350653440,89956614,-506327,-2096800762,2097215102,-163133665,619380736,17128609,-403965882,688217249,-538184122,17128609,-672401850,957192353,75298374,-163149496,16285315,1187448701,-352321288,228892940,2096645689,1183401988,175570936,385238669,103455312,1996423168,-126418954,406938,-15996672,89917127,48824321,1849590783,58589192,-2080442135,2097153662,-17831677,16777114,-28931840,1342181560,16777114,2092960512,-28901616,419331715,1187452284]},{"sector":11,"data":[-352321282,-28377330,16678531,1187448189,-16771074,1771702902,1342177285,16777114,1996443648,-25858,1187446784,-385744646,540933789,-385649408,624819824,-385649920,675151501,-385648896,-2098594071,-1950340098,146955749,-326413056,-1207636861,-1706033133,65535,57982987,-2097118487,1963394174,112645,-1070923029,-26032,2122514432,1769277188,385631885,-26032,1996423168,-62485242,-6664170,-2097151745,2080439422,228106518,2113685049,-25263346,-1593279488,1178144164,-1590264578,100864260,731451656,-1980182078,111279174,168166161,-1037330159,1183447249,108462078,385631885,-26032,1996423168,-25755652,16777114,1575324416,1426064578,1996483723,702468,-26032,1996423168,505860,107518544,-1706033152,1646,-1207666945,-1706033147,1708,112368208,1996423168,70713092,104267537,137821969,171376401,-26095,-443875328,180829,-2081649835,1448551660,63452927,16777114,-28931840,-1207666945,-1706033149,65535,-26032,1996423168,1354771204,-1741226160,-1539899635,2209805,1375793338,-26032,-291438592,460043,734147481,244162,-1036781357,1183433259,-498677776,1721827344,-1036805876,79282731,871944960,-339596350,-360807628,-2096729088,1962997374,-360807576,-16223232,-1785009546,-2097151993,1946220158,-159973624,500634,-498663680,-1727240543,-136163701,-431584775,1342177976,-1712306549,1183535186,1347590630,530074]},{"sector":12,"data":[-1706012160,65535,-1423735,-15995338,28894838,726683648,-1706012480,65535,-2081012087,1962993278,-427916404,-15698944,-6624650,-1996488449,1451881030,-2093618188,1946217086,-361300216,632218,-159481088,-15830016,-1382353290,-1593835511,1183386752,-364460042,-1766326272,-230258420,-940286324,124486,-1695123713,97,-940816759,2160710,16402119,-62470400,-1545011200,-62485759,1004946947,2114741766,208052489,-1979955669,-6625722,-1996488449,-11475898,1996487286,1354771448,16777114,-263812352,-1957670247,1385817670,137796176,1174470656,-95022600,-1804545,1996485750,-263812110,-1957670247,1385817670,140024400,-1706033152,65535,-1696303361,65535,-1946781953,1385820230,-431584432,-1706012007,2195,1996443730,-227082252,16777114,-499712256,-533266679,178185,-1706012007,2214,1183565963,-1713730564,922701906,922683878,-242546204,-593822837,50331656,1389827014,-499712176,-533266679,146577929,922681344,922683874,45681120,1406872320,-1695511727,2289,1183565963,-431619076,1385814667,-432603312,-466157815,-598832887,-1696702839,2371,333202947,1347608150,165820159,165689087,600218,-1983501568,1996482630,-600375316,922701833,1996426222,112870,-26032,1996423168,-667484412,-499712247,-533266679,178185,-1706012007,2390,1183565963,-1713730564,922701906,922683878,-242546204,211483531,50331658,1389827014]},{"sector":13,"data":[-499712176,-533266679,166828553,100859904,-11531814,-16131018,1996482678,1354771436,2144336,1375784122,-26032,1183514624,-62520858,957114017,58588230,-109847,1687874678,-2097151999,1946217086,-361300200,16777114,-361300224,16777114,-159973632,16777114,74907392,-227096,-1650786698,1577058310,1575324511,1426064578,1448602763,-1727271263,-1995841373,-1962286570,-1550252474,378079716,922683878,922683874,45615584,1347590400,663450,-1580692736,-628421530,-11513191,-16128458,-1962286026,-1694790671,2648,-686569981,922701906,922683874,1033505248,989855754,1635714118,-1559869813,922683868,922683874,45615584,1347590400,682906,-1580692736,-628421530,-11513191,-16128458,-1962286026,-1694790671,150,-686569981,922701906,922683874,2006583776,-1560281088,113707486,2520,721700491,-1727406586,-120470997,-351675741,208052597,165716889,165811849,-1727773045,-1995840349,-16128490,-16129482,-1207312330,1385758722,182229584,-930414592,-1962152287,1347590618,166082303,165951231,-74714741,731290,331744000,-11513129,-16129482,-1710628810,2829,-1962287965,-559741882,105286409,165414443,-775804007,165192696,165283527,922681344,922683874,45615584,1347590400,736154,-1580692736,-628421516,-11513191,-16128458,-1962286026,-1694790671,2928,-686569981,922701906,922683874,1436158432,50331659,-1559635962,922685700,922683874]},{"sector":14,"data":[45615584,1347590400,754586,-1580692736,-628421506,-11513191,-16128458,-1962286026,-1694790671,3000,-686569981,922701906,922683874,-1650849312,50331659,-1559635450,922685702,922683874,45615584,1347590400,773018,-1580692736,-628421224,-11513191,-16128458,-1962286026,-1694790671,3072,-686569981,922701906,922683874,-442889760,50331659,-1559165946,922685704,922683874,45615584,1347590400,791450,-1580692736,-628421212,-11513191,-16128458,-1962286026,-1694790671,1865,-686569981,922701906,922683874,2023360992,50331656,-1559165434,1600000266,-1034033781,50344196,50673921,50358784,50472449,50359040,-16308992,50336512,17189377,50332672,-16268288,50338560,-16077312,50338816,50553345,50363392,-16070400,50339072,-16774400,50341120,34033665,50335488,34019073,50336000,34045697,50336256,17204737,50338560,34184449,50336512,-16235520,50342656,17223169,50339072,-16438016,50343680,-16420352,50343936,50580993,50336000,50557185,50336256,17397249,50340352,50567681,50336512,50347521,50337280,50658817,50338816,17193985,50343168,50584321,50339072,17262593,50343936,50452225,50341632,50457857,50341888,50345217,50342144,-16678656,50350592,-16484096,50351360,50684673,50343424,-16237568,50352640,50703361,50377472,-16251648,50352896,17403649]},{"sector":15,"data":[50349056,-16256256,50353152,50425089,50345216,50507265,50348544,50550785,50349056,50969345,50349312,50661633,50349568,17192449,50353920,50710017,50349824,50546433,50351360,-16688128,50360320,-16183808,50360576,17327361,1828743680,1167087646,518818645,-326903666,1916206854,-26107,113704960,1394,91502335,91290,285516032,209323521,17893025,-1593017338,100733188,111219042,1678115089,285516049,199230977,17893025,-2096373242,-443874579,-900899553,1478361092,-1957345904,-661774612,1443163267,-1962116447,-1324509162,737858308,285516738,-1962115935,-754080746,-1547555846,915083526,-964489832,-754732793,285516286,144950787,228892945,-754972923,101057528,285909777,285490819,-955482880,1115142,137791744,-1592071407,104402328,293474568,-1961817949,130188240,-86834255,77840939,104760081,360513553,285607623,-1532952576,460045,-120388687,-351204701,228892954,285869625,178459006,-2083484911,61933506,-1037305133,-1592719709,103354628,111217786,2080778513,285516044,291636777,688981665,-1592695802,103354628,111217632,-502912751,137541643,-491237346,726670855,1342225088,1347440722,228079359,228865791,1342732031,286013183,-6664112,-1560280833,-1706031758,65535,49120094,1562371467,313933,1458342741,-2096728437,61933510,77725395,-1547304175,1183518984,460036,100923603,178458886,285778193]},{"sector":16,"data":[2131117625,105286411,722536611,285516742,957418145,343868486,-1560000885,-796192502,-1324891517,737858307,285647810,1575324510,1426065090,-326898549,-11118844,-1710325194,65535,-1946270071,722537014,-1961818570,722536510,-15662018,-1070922634,-947171248,-523041871,-741962928,1996443872,70713342,104267537,-1202301167,-860225504,-1706012160,65535,721712895,-1588571968,103485704,-1588588284,103485706,-11529978,922746486,922685700,548933894,13416960,-6664110,-16776961,129500278,-6664192,1342177535,16777114,74907392,-1588543445,117771684,-754732800,-1499836168,-16777214,-1734278026,460045,-120388687,-1532932032,460045,-1705969453,65535,-1593542913,117771672,-754732800,-1070903048,-26032,1996423168,228106500,-1325398267,1358484227,84780193,-120389625,-1868935104,-16777214,1570438774,1577058307,1575324511,1426064578,-326898549,1376175876,-16776955,-1710325194,1147,-2080487799,1946158718,77680669,2047214353,111235084,2080768785,-6664180,-1560280833,378080668,-1667166818,-1643771123,-1207602163,48955396,-1705983957,599,-244087,-1705968010,872,-1577158913,100864260,-1588589446,100864262,-1202713476,1347420161,-1174396488,1347551472,230810,-25755904,308634,142016256,-1694730497,605,-16222465,-15959498,-1207141322,1347420161,-1174396488,1347551472,249498,228106496,-1325398267,-1946627325,-754157034,2093104098]},{"sector":17,"data":[228892946,-754972923,2081852408,1004720908,-14451262,2057373814,-754732788,2090946784,1356911372,1342179512,2209872,1375793338,-26032,-443875328,574045,-2081649835,1654720236,2047224593,-28931828,722560161,-1995670522,2122579014,377225470,66995851,990971910,2114820102,228106524,285738539,1183518955,67503102,2109737745,285516040,1183439095,-58817538,-1961460736,100924486,104534282,478023076,722314401,-351204858,-62485744,285607427,142458891,-149879135,-62486056,33441419,-1961819130,100793414,1183518982,134611454,-62485743,285869569,16678531,-1073019787,922698612,-610660734,-1996488700,1996487238,1354771208,285778256,285476395,285909328,285607467,-92864688,285488895,285619967,-1174396744,1347551436,331162,-92864768,333210,75399936,-16026624,1996425846,-49813496,2122534891,108331262,16547459,922698612,-593883518,-1996488703,1996487238,1354771208,285778256,285476395,285909328,285607467,-92864688,285488895,285619967,-1174396744,1347551436,150426,-92864768,16777114,1575324416,1426065602,-326898549,73319428,4162342,-953809027,-352321529,73319439,638425249,75237177,126428744,637820612,163715,-953808771,583,1589907947,228892932,38222118,642254204,-2097002615,552510,2057380478,291676940,-1559462751,1589907812,126559748,-120388687,638352035,-754825333,209495032,1023952523,460587520,1963065661]}],[{"sector":1,"data":[9890051,1963065917,18999555,1963066173,24701187,-2097042967,712766,1048777845,2130708590,1095699,-26032,-1073020928,922683005,82513406,234895103,16777114,1849590528,58654728,-1593739799,104402042,208998754,957119649,1964073990,23128323,-1710590209,65535,-2080487799,712766,1996426612,-1070903286,-1075294128,-15864835,1996425846,1354771454,-55580592,-16091393,-1231356298,-385875962,1048772902,1946159214,8579331,637820612,61933451,1654913235,209363729,638312611,-754825333,291808248,-1559462749,244321250,-16410392,-493221258,-1996488698,280559174,-962965504,184549381,-1207599680,48955393,-526139349,1958742794,175570706,-1191282945,726663169,1005080768,-15668227,1996425846,112894,1354771280,-251672,1996425846,118987518,1996423168,-26102,117374976,-1813444498,1849590528,58654728,-16741911,-2096599538,552510,1996455541,100702730,1183383552,-532773890,276037642,1342863103,-1202667477,-397410303,283901146,-16091393,-1070858634,112720,-70784944,-16091393,-6619530,-1711275777,65535,182453959,887816192,84777121,61931527,378271955,-489485190,545178171,84780193,-120389625,209458827,-1036262701,1996426878,-26102,-1706033152,2157,-1034033781,-1957363704,183272428,16533191,-96024832,1183645696,-1706027274,2395,-1928694017,1343682118,616602,-163149056,67500068,-163149568,620250763,263672]},{"sector":2,"data":[-1946663287,272435270,1980724224,22538499,1962937661,9300227,2122529003,846987510,957192353,712898118,16285315,-1532943236,-129615603,1048779901,2130708590,108954389,-16352256,-351404490,3604228,98146830,2122514432,242483450,-16091393,1183709814,-397404426,2122579229,57934074,-2097081367,1946221694,17492227,-385875528,2122514694,226295814,89523911,1187446784,-352189702,1446937537,-1166737403,89523911,1187446785,-352189958,108954541,-955745024,350214,-2086671616,350270,1187485813,-956300804,17127430,1849590528,-2038497272,91502335,16777114,-8722176,425603,1911096189,138841087,1946166589,2506024,658312308,1025799168,326369320,1854080235,2122516728,427622646,83248839,-2094798080,-351733690,-160529427,-2081953016,-351734202,228106721,2096514617,-131839991,-1996487675,2122577478,125632760,83379911,-1592661248,1178144164,1208581368,67500068,-129595136,-1928694017,1343682118,635290,-159973632,-1694992641,2492,1040116713,57999392,1040125929,57868325,1040112617,58130472,-369141271,-1070858544,-1034033781,-1957363704,82609132,1342182328,16777114,1958742784,8710403,117735043,28837237,721611520,-6664000,-2097151745,1963394174,-62485141,-6664170,-16776961,1183647350,-1706027268,65535,16547459,-1734273412,-62506739,2122518141,142344446,957195425,947715654,-1727162207,-120470997,67500068,-62486272,-1727159135]},{"sector":3,"data":[-120470997,67500068,-28931840,-1928956161,1343683654,16777114,-59310336,-1694599425,65535,-1034033781,1478361092,-1957345904,-661774612,723971203,-62486080,-1946532215,138218566,-385649152,121438352,1028485888,1400111109,1996434155,209125134,369510029,-81794992,-1946532213,-1947599786,242679552,-16091393,1996425334,-45422586,-462110709,-15829249,1996426358,142016266,-1710852353,65535,-1980086647,-924058538,-15829249,-437777290,-4330498,1996426870,142016262,-336124440,242679727,383403661,-26032,1996423168,-629735666,-562968,1183649398,-1706027302,65535,255691499,1037464576,-1670250240,1979777341,33570180,54366834,-385648894,-1997799584,-1962742397,1297948645,503319242,1430622296,-1910575989,82609112,243414783,728474,-62486272,1354771280,205978,815419392,-16777213,922745974,922685700,144773382,67513105,178343953,101067537,565727249,15776256,1436176466,-16777213,-879035274,721420299,1996443840,-154146810,-1962742397,1297948645,503317194,1430622296,-1910575989,149717976,199505663,731546,-62486272,243414783,790938,-129595136,70713168,104267537,285778193,285476395,285909328,285607467,-59310256,285488895,285619967,-1174387016,1347551334,757914,-59310336,285488895,285619967,722536609,1343292422,722537121,1343292934,-493825,-15662026,-1206843850,1723465798,-1706012160,3011,-493825,-15662026]},{"sector":4,"data":[-1592719818,103485704,-1588588284,103485706,-11529978,922745974,922685700,1186468102,6732288,1402622034,-16777204,-744818570,-16777205,1536883830,-16777204,1805256310,-1996488698,1996487238,-420982778,108462069,-1694861569,1583,-1962742397,1297948645,503317194,1430622296,-1910575989,116163544,199505663,794010,-62486272,243414783,190618,-96040704,-231681,-15662026,-1592719818,103485704,-1588588284,103485706,-11529978,922745462,922685700,548933894,13416960,-1382395822,-16777212,1671101046,-16777204,-879035274,-2097151998,-443874579,-884122337,16973854,198263,16973930,199212,196715,16714417,16973851,66243,16973843,66163,16973844,68331,16973853,198520,16973841,68445,16973858,198334,16973842,66076,16973859,198428,16973843,196641,16973846,198897,16973852,68291,16973869,198533,16973853,199258,16973863,199280,16973864,196955,196649,16713560,16973900,198482,16973870,198961,16974003,68339,16973892,196626,16973877,199643,16973890,66311,16973907,199664,16973892,198634,16973893,198908,16973894,68285,16973911,198987,1953300551,1167087646,518818645,-326903666,-1808335100,1808908,922681344,614076038,-16777216,-1710383050,45,234108671,13978,-1137246464,4168202]},{"sector":5,"data":[922681344,1218055278,-16777216,-1710337482,65535,-1962742397,1297948645,-1873273141,-326412987,-2082959842,922683116,-6683276,-16776961,-6682506,-1996488449,-1070859706,-92864688,552078992,-62470398,1183517682,201630470,-99710055,-1980106997,-1962147818,-140966330,201499641,-11485141,244382326,-16648472,1996425334,1354771450,-1461186928,142016270,-1694861569,65535,-1962742397,1297948645,503317706,1430622296,-1910575989,201630168,-1962742397,1297948645,-1873273141,-326412987,-1579643362,-310179734,535137026,516640093,1430622296,-1910575989,210805208,-1962742397,1297948645,-1873273141,-326412987,-1579643362,-310179142,535137026,516640093,1430622296,-1910575989,82609112,16533191,1357824,100429559,1344146418,637951684,637695999,-1701169153,184549377,-1962576704,216792134,-2080618753,2080701566,-18220,-1962742397,1297948645,503317706,1430622296,-1910575989,149717976,1357910,84307703,1183386610,-1001382148,-14284706,-14286217,-26057,-1073020928,-4717195,-1958482945,931920990,638082756,-970258549,-134455669,-1952904593,-836041649,1183447543,140413946,38243110,737959563,1878458951,1334548744,38742790,1183447543,138906616,66744055,-2090928058,-443874579,-900899553,1478361094,-1957345904,-661774612,141311619,-2095087873,67660862,1996429437,175570694,-16222465,-1878496202,-11278322,-401698736,-310181877,535137026,113921373,-1873273344,-326412987]},{"sector":6,"data":[-2082959842,-1202322196,787939348,-259323796,200459905,-2080606583,2080376446,105286464,2114733113,306460984,922694516,1996425324,-401698808,1183514675,1284217094,-1980107000,1183518788,-101213946,-1961995127,1149830726,1815543570,142016264,216534672,-310157824,535137026,80366941,-1873273344,-326412987,-2082959842,-2091506964,2147420286,18802947,67665539,367592316,1357825,-1962381577,-221871632,-327775989,-1995422581,1150024262,-498693878,-1995553653,1150019142,-163149560,-1947044215,1183384132,-1996190754,1150017606,-196703994,-1996209013,1177284166,-62486048,737429131,1183440454,-62485512,-1711640841,-136163701,-532282375,-1947187575,1861744710,1317771750,66713590,1183440454,-96039960,-59836608,-498168935,1174665719,-364475936,1088833163,-1711771913,-134852981,-565836807,-2082191735,1962936446,-263782650,-2081929473,1963133054,108461893,-1726915423,-1037319629,-754974023,734147576,-263846974,882987072,-1036805878,-120339925,-1037319629,1088964099,291283280,-1588574136,1212680756,637008,1375753658,64133712,1996423168,-260636922,-1947699457,1177283142,1183535344,-398054428,637008,1375753658,-26032,-2090991616,-443874579,-900899553,1478361092,-1957345904,-661774612,-16454525,-1710573002,1139,-787736415,769708512,1183383555,2092960764,1354771215,1358722815,-26032,166395904,1342179512,16777114,180003584,-1962742397,1297948645,-1873273141,-326412987,-2082959842]},{"sector":7,"data":[1187449068,-1207161094,1347420168,1342177720,205562192,-523041615,503371781,-26032,1183383552,1958743036,-6664156,-1996488449,-1072957370,922685300,-2120611734,-1962934268,1789130822,-59310328,4762,49120000,1562371467,1478413133,-1957345904,-661774612,1443163267,452740807,833548,203960055,512487563,-472839126,129007755,1577881763,-1962742397,1297948645,-1873273141,-326412987,-2082959842,-1957293844,1822623302,1357832,141307639,-964562805,1988692978,108954616,-11504384,379193462,-1996488697,-1070860730,-159973552,-1595404656,142016509,-1695123713,1859,-1202667477,-1873805311,162523150,721699979,1183399940,105155580,1073890347,-375159,-1710918602,103,16777114,-1961563392,1200355422,-1996018940,1200356422,38218502,-1191557495,-1706033145,1378,1174528209,571644,-26032,-523173888,-375295,1183647862,-11528462,1996487798,-25862,448266240,-1202708984,1344145378,1085980715,-1957670256,731511878,-1946627646,-936644018,-96040111,-775804007,-196178952,-11417557,1996487798,142016506,-11485141,1343294518,-26032,1183383552,142016496,-1705983957,1790,-1695516929,1798,49120094,1562371467,313933,-2081649835,-1202320660,787939348,-259323796,200459905,-1946782071,69928004,-1946270071,1183385156,272927740,-146743087,-1952842130,-506394036,1183447543,239373304,-146743087,-1952842642,-506394548,1183447543,74907642,385369741]},{"sector":8,"data":[-26032,1996423168,-92864520,16777114,-161576192,-1559083125,-1956770924,46292453,-326413056,-1962611581,3999814,-385649406,20775256,-385649406,37552409,-385649662,1048772977,2130708590,23587075,141430527,141442691,-385649664,347603289,1815017216,200410376,1589923870,2013210116,939468290,85914,1975520000,11593987,185101473,1024947392,57999361,1023448041,57999362,1023447785,2138308611,922688491,-1070920804,-401698736,512428009,-472839164,234403839,16777114,175570688,16777114,-28931840,112720,-26032,1996423168,-25858,1996423168,-26102,1996423168,124295934,1183383552,-25755652,1815543632,-401698808,1048774711,1962936428,1354771211,-1862502657,-77207538,-100609,-2137326474,-956301305,-16225274,-1875514369,-52828146,244357099,-335771672,-401698672,-1981022932,-1710590209,1950,1358710409,194262783,-1192751472,175570938,-1694730497,1976,16777114,-2090800384,552510,1996434037,-26102,1996423168,7313930,1183383552,108462076,1342469887,1172835984,175570938,-1694730497,192,141428479,1048783339,2113931374,175570722,323482,-62486272,-16353537,-1873804170,-99162098,-16091393,144374902,-1962934267,146955749,-326413056,-954930045,323654,167265991,74907392,-1705983957,2120,139369040,1996423168,1354771204,1816656,291254007,-775804007,213405944,875493120,-1037330166,-1202652975,-256245727]},{"sector":9,"data":[-1706012160,942,-1207666945,-1706033145,2411,146250320,146276352,-1202696192,1347420161,1347469355,284314,-96040704,16139975,-230242560,1183514624,-230278664,-538377348,-330905856,1183514624,-330941968,-1008139396,-92864768,-1728048968,1183535186,-754667018,14157280,-6664162,-16776961,1671101046,-1996488700,1996485702,999968772,-1996488695,62455366,1546581760,-1037330159,103545041,731451740,-1174875710,-796196861,-1947056501,1546581978,-1712720111,-120470997,1183433475,-138310674,-1727384530,-120470997,171181611,-775804007,-1949266952,-628364218,171192055,731507191,66638274,-62486077,-16484609,-1957630346,100920902,-1957686948,100924486,-1706030540,65535,-16484609,1905983094,-16777207,1620767862,-16777207,2122577478,108799222,-369998081,1191182108,-14226964,-1694861569,1012,721712895,-1969598272,1342177289,626842,1575324416,1426064066,-326898549,1996445198,309252,161258064,-1706033152,2466,-1207666945,-1706033144,1053,-26032,1187446784,-956300034,457286,351815367,-62470400,1978335232,183912135,-230242560,1525350400,-771983733,833766,-1947046153,-1333752872,-196703993,-2068512944,-126419195,-386500865,1996423254,-196703484,1586188318,-1846788,-1710914377,65535,-1946913025,-472777634,92583935,-134723957,1183535320,1356396534,-16767512,1183052358,1183519990,-230278658,1191157372,-129596420,-96040152,2096907833]},{"sector":10,"data":[-443851133,180829,-336819371,173968146,17188491,71731975,-2097002751,-16512442,2122516558,-444792824,-1034033781,-1957363704,49054700,185101473,1024554176,1500774401,1946157629,212340,1944799092,211039999,710298,-28931840,721712895,-1202696000,787939340,218435062,1285640192,98619662,-11534333,-1070858634,548950096,13416960,-6664110,-16776961,-6619530,-352321281,74907438,-335731992,-2043216090,-26098,1183383552,74907646,1347469355,234239743,-150993480,-351384530,74907577,-97048,-16225226,244319350,-1946706200,79846885,-326413056,1444867203,384190093,-26032,1996423168,-431583990,-6664170,-956301057,60998,-150989640,-1962382290,-221871632,-327775989,-1995422581,1150024774,-263812850,-1995815797,1150020166,-163149560,1023952523,661913613,1946165309,2440482,417923957,2505985,-1293352075,2571520,938017653,2637057,-773258379,-2095650048,2080376446,1849590544,74776584,141428479,49170119,-293698814,-385649408,2122383691,1946288366,20179203,-1981004149,-661917114,-1996339317,126608454,-1948105079,1183385159,71797754,737429129,1183441478,-96039938,-1981528533,1183578182,1088475644,-1711378697,-773173621,66713569,1183441478,-263812122,-146743087,-1952843666,-506333618,1174665719,-398030364,-1928694017,1343678022,891290,-428409088,-1696041217,3492,-2097100055,2097153662,-9574141,141442691,-16485120,-955748858]},{"sector":11,"data":[33615430,-2081403137,2080436350,-11409149,1224099467,-370129271,2122579783,58523654,-2080424215,552510,117376117,1187448942,-16645906,1183576134,-263833098,552141693,-263796737,417923072,108954623,-385647360,1048837903,1962936430,1845952260,-297351416,1325335040,-58817540,-385647616,1183579891,1183402218,-18224644,425603,-521600131,1849590782,74776584,141428479,15615687,-62456062,971654795,58588230,-939605271,64582,-83223,1996425846,-431583762,1827164182,-293698567,-1207601920,48955393,-1956724693,146955749,-326413056,1443556483,117735043,-1746336908,1357824,141307639,-964562805,1988692978,71601146,1183384619,105155582,-1996340181,1183710278,-1706027274,2838,-1928956161,1343682118,730010,-159481088,-1961460736,1178205766,-2096202250,2080438398,-62485752,2096645689,-94467261,-787462261,1861697760,1334548990,-136195830,-163149319,-787593333,1861697760,1334548988,-136195832,-129594887,-1928956161,1343682118,408218,-159973632,-1694992641,1605,1342182328,349338,1975520000,75399955,-1207601913,48955393,-1705983957,65535,1575324510,503317698,1430622296,-1910575989,653034456,1183432747,-96040452,1024214667,58064904,1023455209,57802759,1023443689,175374337,1962935869,8448259,1996445675,-136779762,-1946532213,-1477837738,242679552,-1928562945,1343620678,-336054552,242679783,383403661,-26032,1996423168,-629735666]},{"sector":12,"data":[-250904,1183649398,-1706027302,65535,1996473067,175570702,-16222465,-1326971274,1958743036,242679727,-15960321,1996425846,108461832,16777114,-96040704,-335784311,242679699,-401836289,-1997799809,687747,2122547828,57933832,-34327,-6680970,-385875713,255721326,1031959552,-1250819840,1979777341,33570205,37596018,-385648894,-1578369189,-1962742397,1297948645,503319242,1430622296,-1910575989,82609112,1187468887,-2096368900,1946158718,-234436850,-956301301,783366,-1203770624,787939331,-259322378,-1207402869,787939340,-131396106,-1727138143,-1037319629,-754974023,734147576,-2080887870,-29684241,-963967875,-947191061,-1979949429,38258439,213385217,-164694272,-60912883,-939323509,-1995652733,-208993201,-1962785653,-787592178,1086391265,105351488,-310157474,535137026,80366941,-1873273344,-326412987,-2082959842,1448545004,-150989640,-234551698,-129595125,-1207404801,-1706033139,65535,-1727138143,-1037319629,-754974023,734147576,-62486078,-1946530167,-1073019322,20780916,-385649408,-1053097619,-353827979,212224,-1494656140,-1808335103,287349260,1183383552,142016502,1090274955,-96040112,922701888,1285623286,-11515890,1586230902,273124344,234229387,1089075009,239569744,239865483,1089075009,2144336,1375784122,180066896,1996423168,180591350,1323892736,142016257,16777114,142016256,1342179256,1091226,-1399173120,-16777200,-157218698,-1036805875]},{"sector":13,"data":[62505515,871944960,63056834,100924486,1346375158,-1727116127,-1037319629,-1036781357,1174651435,129519866,-164694272,-1036805875,-120339925,-1037319629,66864643,1074656774,505936,239873783,734147481,871945154,63056834,-1705969082,2352,-1710721281,65535,-16726807,-1070921610,283482704,-1706033152,4331,-1962379521,1346436166,66733707,1074678790,-157200320,273677,239903056,1342178349,-1174396488,1347551472,539802,142016256,1342178488,526490,244994048,-1207959544,787939331,731450956,-1946627646,-92929040,-1727138143,-120470997,2114189451,142016508,1448564311,16777114,-11998464,-1710324170,2697,-637303,1183516790,-167377924,1346387981,66733707,1074678790,-157200320,1346914317,1208896673,1996443720,-128021514,-149928053,1074656814,239569744,239873783,1593743593,49120095,1562371467,688310861,1828782848,1795162894,1124074240,318832393,-2080308480,67109135,-1040186624,453050127,805307136,637599493,-1878981888,452985104,-654245120,486539536,939590400,285213453,-1778318592,301990663,100729600,570425616,-2063531264,318767879,-67042560,603980041,-1761541376,369099534,285278976,469762828,1157694208,486540045,721486592,754974992,1627456256,805306632,-872348928,570426117,352322304,1140915985,771818240,654312206,1140916992,671089422,-1107229952,687866629,889193216,1241579269,-1425997056,1006633224,302056192,1023410436]},{"sector":14,"data":[-251591936,771752710,-1392442624,-1291844851,234947328,1140850960,234947328,889193223,-738131200,989856517,-855571712,1107297031,-419364096,1140851463,-385809664,1157628678,469828352,1174405900,620823296,1459618064,-1006566656,1191183117,-1459551488,1275069190,-1560214784,1778385160,2046821120,-2130641147,-1744829696,-2113863920,419431168,-2097086704,1937009920,1167087646,518818645,-326903666,-935919866,4954627,1183383552,-2110324740,59677198,1183383552,1949761530,2117533452,-1741226228,-1539899635,-1070903283,244338768,-15470360,-6620554,-16776961,2073754742,-2097152000,-443874579,-884122337,1167087646,518818645,-326903666,-2091493624,1962936446,108954377,-385649408,922682071,1234830280,-1996488701,2122579014,1752432646,425603,-1070922626,1183516651,-1543109882,-96040691,92127243,16402119,105286400,-259270409,208942847,66733707,1342995974,228079359,425603,1183516028,-1962743034,-1543095354,-2096136947,2080376446,105286405,-963966997,-1532951573,1996443661,1354771210,-1862633729,322955278,556675,-1947663499,108954368,-1962574848,99288646,-150583669,-1543095336,-2089452275,2113931390,-339727612,138840839,228066819,-2080881015,2113930878,105286405,-1070923029,-2080749943,2097215614,-129579259,1183514624,1946551288,1183535116,2114323450,2122534924,92012552,-351779189,138840837,-2091853577,2080376446,105286405,1183516139,-1948715258,722314254,1996444104,-126419190]},{"sector":15,"data":[-1862633729,313255950,-150583669,-1947169832,-654899130,1996486795,142508810,-1962574592,48957510,-654852053,108954448,-1962574592,48956998,-654852053,142508880,-1962574848,48957510,104449931,377359768,556675,1183516028,-1962743032,-1580692537,-1054143080,-1070923029,108954448,-1962574848,48956998,104449675,377359780,425603,1183516028,-1962743034,-1580692538,-1054143068,-1070923029,175570768,556675,1183516030,721611528,2122535104,92143622,-351910261,1354771202,-1174396744,1347551436,252826,138840832,208930305,17188491,185368070,191132864,-1593278784,1177226660,721611526,-96040512,92127243,16402119,105286400,-259270409,722106111,1996443840,-1741225990,105265421,1183516028,-1962743034,-1543095354,-2096136947,2080376446,105286405,-963966997,-1532951573,922701837,1183517812,2114323450,244338700,-2095828760,1962936446,9300227,-150583669,-2081387560,2080376446,105286405,-963968277,228853307,2122543997,142475272,722311329,48957510,1183432747,108954616,721714688,-1962742848,-96040506,16285315,1187448189,-16776968,1996425846,-92864520,556675,1183516028,-1962546424,-654899130,108954448,-1962574848,99288646,-150583669,-1542550568,1372072717,66602635,1342993414,66733707,1342995974,-1696067952,-59310317,16777114,-2090902016,-443874579,-900899553,1478361094,-1957345904,-661774612,-2096436093,246334,1996425332,-26106,1996423168,-26106]},{"sector":16,"data":[1996423168,-26106,1183383552,-2110324744,61577742,1183383552,1681818614,175439877,90717827,-385649408,922681509,-6680224,-1996488449,1048837190,1946158436,-159973592,228996863,229127935,196491007,196622079,112720,548950096,13416960,-6664110,-352321281,-1908998302,86022668,1183383552,-159973382,228996863,229127935,196491007,196622079,112720,649613392,2275843,932859986,-16777212,922744438,922684838,922684840,922684342,1996426168,112892,-2034741168,15645184,-1818603438,-16777212,1201338998,-16777212,-1147470730,-2097151996,349246,1048776309,1962935652,1748927239,343146501,737703679,-11513664,-15886282,-15883210,317453942,737572607,-11513664,-15886282,-15883210,-1070860170,548950096,13416960,1637503058,-2097151995,353342,1996425844,-25864,267059200,90717827,-16223232,-6621066,-16776961,865793654,-16777210,1996424822,-25864,1048772608,1946158018,108461832,16777114,49120000,1562371467,182861,1167087646,518818645,-326903666,228106512,-1577433463,1183387044,108954616,-385649408,922681799,-946207800,-1996488698,922745926,-761656348,-16777210,-1710325194,1640,-1980742007,726725190,-1957670720,1178143302,-1962574342,65796678,1342850699,956843659,92141638,-336050549,138840835,-260636848,1347469355,-1174396744,1347551436,431258,138840832,2130200121,1949761315,2114323212,1996443660,-129594374]},{"sector":17,"data":[1342719531,737179391,1996443840,-401698808,753602209,956843659,612235334,737310463,1996443840,175570936,721962635,-11470778,-1962118090,100923462,-1873802114,287565838,956974731,830405190,208930307,2117533520,-96040180,1342850603,956843659,92141638,-336050549,138840835,-260636848,722106111,244338880,-351388440,172395322,2113553977,-227082446,737834751,1183535296,-96064758,138840912,2113422905,-129594619,1183515627,1183535112,1946551290,922701836,244321406,-15683352,-1667567498,-16777210,-241562506,1342177286,456602,-163149568,-16091393,28838006,726683648,-1706012480,1766,185328803,-11504448,-1710325194,1652,-1030519,-1710496714,30,1358055049,1347469355,-16091393,1996425334,-1202695952,-860225504,-1706012160,565,-1695385857,1700,-1695516929,67,-1191807233,726663210,-16061504,716764790,28856320,328880128,-16777209,312147062,-352321536,-466157750,-26101,1996423168,142016266,1342177720,1354771280,-26032,-459079680,209125131,16777114,-6664192,-1996488449,-1202653626,-2091909078,779326,-1070922636,28836843,-6664192,-1962934017,-1734145466,138840845,-2096257885,-443874579,-900899553,-1957363704,317489644,74907393,1347469355,28856400,-2137370624,-1929379832,385842310,72267856,1671057438,-1929379833,385806470,63879248,2040156190,-1593835513,-2037840562,1320746866,-1202708988,1344144590,497818]}]],[[{"sector":1,"data":[74907392,350752400,-28931839,1635041291,503566008,-259617456,-1706027266,1960,503598776,2089192784,-1706027265,2023,-9271669,-16429405,244319350,184606440,-1191938624,1344144334,503986872,537049168,147954256,-2037841920,-1705967760,2566,503566008,172144720,-342208482,-352321528,1312718865,91553796,-352321096,-1547687166,-1667168946,2055637259,196256255,196347435,2022082888,2109737983,2022098694,-1593835265,-2043081746,108920698,-8747381,-291437589,-293172981,208052734,-8878535,-2037709187,65798008,-1995675999,-2037646266,-2043936902,731512558,-1980182078,-1946192250,738162822,731511878,-1980182078,-35706,-1224801162,100925302,1346374580,-17910017,-1191414017,-1706033151,65535,1342459576,-1878755585,414902286,-1946270069,46292453,-1873273344,-326412987,-2116514274,-956255508,63558,63452927,330650,-163149568,72236672,-385649408,1320682104,-1202708988,1344146182,1344798904,16777114,1350994176,2109737983,36497667,503598776,185514064,-6664162,-16776961,738152630,1347440832,16777114,200188160,-1577433463,1183386726,193372654,-1578744183,1183386514,210936288,-1577302391,1183387030,243180016,-1579006327,1183387822,180396508,-1578482039,1183386324,1354170344,267774207,-2210167,-385920842,1183387627,1354170330,266463487,-15995229,-385920842,1721962455,1354170124,265152767,-16021853,-385920842,-1834807357,1354170123,263842047]},{"sector":2,"data":[-15953245,-385920842,-1767698513,1354170125,262531327,-15827293,-385920842,-1365045349,1354170128,261220607,-16072541,-385920842,-727511161,1354170122,259909887,-1947974007,1177804358,-465161254,200148531,208012851,193332787,194119219,210896435,227935795,243140147,279840307,180356659,181667379,-2115746167,1631903358,2122386293,1968008922,1958742788,1354170227,-25857,1996423168,1384549638,-2135404289,347623424,1320701952,-6664188,503316735,280148048,817385502,-6664192,-973078273,282118,-1543879029,1183517678,208053230,-1545189749,1183517574,194159584,-1543747957,1183517842,227976176,-1545451893,1183518334,279880668,-1544927605,1183517376,181707752,-1559331167,-1365177666,182100752,-1559457119,-1767830552,200057613,-1710852353,3080,-1579792759,104402038,1500842990,957121185,1963746822,200188240,243140153,1721845621,-1375323892,-12684016,683202166,-711307264,989855754,1963689478,-696844500,1342188216,16777114,-1845085440,-1592101621,104401798,292883602,957059745,1963824646,1577502472,-352321275,1577502470,-16777211,1996424822,203201238,787152896,-1928956161,1358910086,1342210232,1342181048,1342459576,663450,-1202708992,1344147634,1342189752,667546,1309066752,2122514436,57934072,-2147447319,282174,28837237,721611520,89039808,1342426808,1827147408,63879189,985157662,-1202708982,-1706029054,1998,-2131605879,282174,-1873800331]},{"sector":3,"data":[7530510,-506231,-660934026,-352321529,-227082481,-11487489,1105727120,-129595129,16285315,-826799500,-1706025469,65535,-1559331167,-291435088,291414795,-1559187807,1721830898,167813900,208930503,113704960,3198,-1695123713,2225,16285315,113706613,1362,-2080881013,-443874579,-900899553,1478361090,-1957345904,-661774612,-954274685,59462,-1705983957,898,1357792905,-303559024,1354771204,-1695648001,1222,-1727271263,-1037319629,-754973767,734147576,1713829826,-330921716,-1705983957,65535,1357792905,-1175974256,-293698812,-16223232,1067118198,-1593835516,865668078,-1178457150,-120389629,-1037319629,208021239,972834441,108457030,-1981004149,1996487750,-401698810,1996423419,2144262,726684313,-1818603328,-956301299,123462,-335788405,-360807663,-14191360,1183572550,-137221124,1183441526,178426,1354771280,-1694861569,65535,-2115352951,16841342,2122437495,1979777274,-361300208,16777114,-465139456,-337226103,-360807647,-16223232,1805314678,-956301299,59974,-1995663688,1586291782,-96024602,1183514880,-430535708,-1980479863,1183577686,-330921478,1589906923,-196673548,-16267738,-2081665281,1962994814,-58817555,-1960152064,1178205254,-1996261638,1183578694,-62510598,-16353537,1996482166,-6663964,989855999,-713754042,31999687,-360807680,-15698944,-6624650,-16776961,-6624650,-1962934017,-310122426,535137026,46812509]},{"sector":4,"data":[-1873273344,-326412987,-2082959842,1996424428,1354771206,-107327408,-1593835512,104008686,104008806,104008582,104008594,104008850,104009110,104009342,104009902,104008384,708119252,-62486228,-1207535873,-397385404,1996426161,1299101702,195553360,-16353537,-401871306,1996426141,1714880262,194242572,-16353537,-401897930,1996426121,-1841889530,192931851,-16353537,-401829322,1996426101,-1774780666,191621133,-16353537,-401703370,1996426081,-1372127482,190310416,-16353537,-401948618,1996426061,-734593274,188999690,-16353537,988347510,49120011,1562371467,182861,1167087646,518818645,-826746738,-1202708989,1344145978,1352663736,1007258,49120000,1562371467,1478413133,-1957345904,-661774612,8842369,-8747321,1048772609,1962935634,8448259,91504259,-16157696,-1878690762,245688334,-1928956161,1358920838,1342210232,1342183096,89013891,-1207602176,267061988,72236672,-1207602176,65733710,1342426808,1032602,-1202708992,1344146502,1342186424,1036698,2055637248,409087,1996433013,1354771206,-488108400,-62486259,242597899,-8747321,113704961,1362,-2033776917,196474,-8747381,-1962742397,1297948645,503317194,1430622296,-1910575989,-1897102888,-96024832,1048772608,1962935634,11856131,-1142419824,1312719088,57999364,-1207917079,1344144462,504039096,268613712,259562064,1183383552,2092960764,63879202,985157662,-1202708982,-1705992190,4133]},{"sector":5,"data":[-9271671,1358722815,1374162576,-1593447677,1077938952,200951433,1028751040,208928769,1946157629,-163133632,99287056,653674183,108461824,-9140595,8435792,-159973552,1342459576,729498,-1202708992,1344147634,1342189752,733594,72267776,949637150,-352321520,-163133677,-974454758,16416387,113706613,1362,-2080749941,-443874579,-900899553,1478361090,-1957345904,-661774612,8711297,88999623,-826802176,-1202708989,1344145978,1352663736,1092250,-62486272,280205904,1320681472,-1706025468,2984,-8616307,1119375382,-1706025462,4196,-8616307,-401698736,1344147617,1342459576,-1763176816,-1706025456,4212,503598776,2089192784,-1706027265,4242,503598776,63879248,-6664162,-1207959297,1344144334,503598776,122919504,113639424,-1207958450,1344144334,503986872,178256,191666768,1183383552,-459648772,-2097151984,-443874579,-884122337,1167087646,518818645,-326903666,105286406,45633566,-6664192,-1996488449,-1072956858,-1706029700,2951,33310407,-955913472,64582,-2080618869,-443874579,-900899553,1478361090,-1957345904,-661774612,1459940483,108954454,-10718208,683148918,781864960,-1560281071,1996426216,2799622,289249872,-324861952,108461835,1342179512,1133722,180265728,-1207535873,-1706033142,4443,-16065885,79169142,1788497920,-1560281071,1996426650,440326,180591184,-1365049344,-953881843,84666374,-335100160]},{"sector":6,"data":[-956299765,-804602362,-637090046,-956178422,386767366,-1375287551,-1593780211,-1834808344,200057100,-1592944989,2124614334,182100238,-1592742237,1385762198,193372496,-1706012007,4565,-1834891125,-1713730804,-1834921902,1347590411,-74714741,1217434,2094480128,990150479,-1589020986,-291303810,-1372127477,-2043216112,-1841889525,302291467,-11534336,-15886794,-1710452170,4671,-1727240541,-120470997,279840259,1712229273,-1980106996,-1365115834,1317771536,-1543899140,1206586470,-1559187807,922684518,922685054,922684306,1301941126,1342177298,210908927,227948287,16777114,200188672,-775804007,2114323448,244029710,-101250066,-1577302391,-1952903554,-101188530,-2146701661,-267653594,-1727271263,-1037319629,-754973767,734147576,1347590594,-1727240543,1268404306,184549395,2132442322,-2147067,45683574,200188160,-1543899239,1721830382,1894357260,243180031,-1592938333,1587743726,279879953,-1592921437,10685542,-2090902006,-443874579,-900899553,1478361090,-1957345904,-661774612,-954667901,64070,556675,-4716931,19720703,63452927,1318298,-62486272,32261831,200188160,-1728051451,-1037319629,-754973767,734147576,-196703806,-351508831,-260144366,-13339392,1721887814,1317771532,-1980106772,45674054,1183535104,1347590644,-1712437621,-879079342,1375731732,349346384,1183383552,-293698576,-1949928192,1727525958,-129594898,276086795,-1695516929,5368,-1981266295,569109078]},{"sector":7,"data":[15761027,1996425332,335911664,1187446784,-1207959312,1183386774,-362902296,16271047,108461825,1347469355,330537552,1996423168,1354771208,-1885712304,-1962934260,1183447110,-129594382,1978811961,108461870,-1411329,-1705973642,65535,-899447,1996425334,-394854422,223058512,1183383552,-230278666,1187499892,-2097151494,1946218622,-260636912,877466,-260636928,1381530,142016256,1316250,108461824,1060506,-59310336,775322,-96040192,-1962742397,1297948645,503317706,1430622296,-1910575989,619480024,1379828566,57999365,-2096984855,1962937982,42199299,818819,2062091125,306612994,734147481,244162,-1036781357,1183433259,306613212,1208894979,734147481,871945154,-1983763518,-291379130,460043,734147481,871945154,-1983763518,1187506758,-956301060,122438,-351517045,-461470958,-13339392,1183571526,1317771532,-1980106786,45670470,1183535104,1347590634,-1713355125,1050300498,1375731733,213686864,1183383552,-528579612,-1580829440,1183386752,-426094362,-1996488701,2122572358,376701152,-1696303361,3285,-1981004151,1183444566,-229209616,2122524651,141820132,-1696303361,3307,14960327,211204096,-1930410359,1183445598,-295793428,31475399,-364475648,-1957670247,1385762886,-26032,1183383552,-162100748,552879747,16144003,16271047,18409728,16547459,1988842613,-126473460,2128639545,-529102589,-1947449717,1183444566,-229209616,-739766640]},{"sector":8,"data":[-96040456,-159973552,737441535,1067077824,-16777194,1996487286,-260636686,-135641461,-1705975698,6247,-1694861569,5724,31213195,1996484678,-398029850,1088177707,-11513191,1996485238,411933424,1996423168,306613218,-1310959989,736285443,-1070903102,242679632,1342177720,-16091393,1183516790,-129629434,2144336,1375784122,415341136,1996423168,-398029850,1088177707,-11513191,1996485238,-25872,1183514624,-263847446,-1946401025,1178198086,-951683588,64582,535301776,-96040456,-159973552,737441535,-1801826112,-16777194,1996487286,-327745554,-135641461,-1705975698,5801,-1694861569,5809,-135641461,26861678,1444017222,-129564682,957105803,58587206,-2080449047,2113993854,-401698764,1183446986,1996443898,-193527818,-1705983957,6203,-362753,1996484214,-364475412,1358720759,1303194,-92864768,1601434,-495517952,1633690,-461470976,-15698944,-73735050,-16777192,-1164254090,1577058327,-1962742397,1297948645,503320266,1430622296,-1910575989,619480024,209617750,-385649408,2122514961,57999370,-1962800919,865667142,-1178457150,-120389629,-1037319629,-1948498295,1174603846,865683468,-742249534,734147576,-398030398,84668065,865665031,-742249534,734147576,-364475966,16533191,-565786880,1183514625,-2095912182,1962992766,-565772492,-1727379829,-136425845,-498693639,1342177976,-1712699765,1183535186,1347590626,1568410,-1706012160,4946]},{"sector":9,"data":[-2082191735,1962992254,209756614,1358186121,1370010,-431585024,14843523,1996428916,326146788,1183383552,-229209616,-1981004151,669773398,14974595,1996425332,419666660,1187446784,-1207959324,1183386774,-228684560,-1930672503,1187507806,-1962933790,-1986460090,1451882054,-364475400,-11513191,1996486774,407673590,1183383552,-128546314,553010819,16275075,16402119,14084352,16547459,1988848501,-92919030,2128770617,-495548157,-1947449717,1183444566,-229209616,602410640,-532248074,-126419120,737572607,-1499836224,-1962934253,1385818694,-498693296,-1706012007,4540,301352449,1996486742,-227082272,-1947175169,1861741126,647647458,-16777191,228253814,-1962934252,1174527046,-193527824,736642699,-1723802554,1996443730,-260636686,16777114,309788416,-1961855233,1174605382,1996443898,112652,-428409008,-1962391925,61987926,-1037311277,1354771280,-1174396744,1347551436,266138,-364475648,-1030655,1183579206,-62506526,1187448181,-16776964,1183578694,-96061174,535364477,-428408833,807834,-461470976,-15698944,-40180618,-16777197,-2036669322,1577058323,-1962742397,1297948645,1426067146,-326898549,74907396,385631885,112720,332438096,1183449088,-1947981060,46292453,-326413056,-16585597,-756546442,-1981535489,1996488262,-3676156,-523040591,-1946270207,-443810234,180829,-2081649835,1183450348,-62486524,-1928956161,1343683654,1342177720,1463450,1575324416]},{"sector":10,"data":[1426064578,1996483723,71731718,-397351894,1996488654,88508934,-397351894,-443809854,311901,1167087646,518818645,-327034738,1048772740,1962935630,1312718872,292880388,-1928956161,1358920838,1342210232,-352314184,108461875,1944587920,108461827,-1712845168,146932,113653620,-16775986,1105725046,1958743021,108461864,-8616307,8435792,899152,1354771280,1759898,-1202708992,1344147634,1342189752,1763994,49120000,1562371467,182861,1167087646,518818645,-327034738,1048772746,1962935630,1312718876,359989252,-1928956161,1358920326,1342210232,1342184632,-2081832917,108461824,-337113456,108461826,300420752,146932,-2115435659,-18432,1392508858,204930896,-26095,-2037841920,-1769341066,922746744,1152913676,-11526648,999949942,1342177286,-8866049,-8997121,16777114,-62486272,-8866049,-8997121,16777114,-58817792,-13405184,1843922550,1958743020,108461865,-8747379,8435792,964688,80656464,459053648,1344143360,504410808,3192912,460102224,-310181888,535137026,46812509,-1873273344,-326412987,-2116514274,-16742676,244319862,-16631320,244319862,184844264,-1207536192,-2031484929,1312718848,125108228,89013891,-1207602176,65733710,-1996239176,-826738106,244338692,200637928,-13732672,-2037578122,-1202651270,-1202716544,-1202716654,-1706031922,3793,1186484254,-1202708980,-1706032844,3809,1962935869,80656550,1183535134]},{"sector":11,"data":[-1873797382,74442766,343261195,503631544,266050128,1996423168,-401698810,149618712,-1878624513,-209721330,-2080618871,-443874579,-900899553,1478361090,-1957345904,-661774612,9235585,-1996140895,1386347078,2022082821,1309067263,-956301307,17125894,2055638272,-1202710785,1344144462,1832090,72267776,-826781666,-1706025468,7211,-1878624513,-215750642,201082505,-1201965632,-11533234,244319862,-2096810008,1962998398,2059305068,1702166783,503566008,72267856,1553616926,-973078500,282118,503566008,171620432,45633566,1771720736,-1996488690,1358918790,1419418,63879168,1119375390,-1706025462,7284,2122523627,377356540,503598776,2055638352,-1706027265,4168,-1543879029,-2037709490,1386479480,-62485755,-1962742397,1297948645,1426064074,-326898549,172138498,-768875478,-1147514798,-2013265892,1586232902,25133060,-1978305222,-768894969,-6664110,973078783,242548294,233553963,16777114,-28952064,28897909,1575324416,503317186,1430622296,-1910575989,82609112,-1878493441,5826574,425603,113706612,66898,89013891,-15895552,244320374,-1979846936,720108614,-1878493441,-234100722,201082505,185562304,-954761536,17124870,1309066752,1320681476,1996443652,-401698808,1183515664,49120252,1562371467,313933,1167087646,518818645,-326903666,-1036090620,192151555,-1710852353,65535,-2097088023,353342,1048774517,1946158440,108461866,692378]},{"sector":12,"data":[-62486272,-1710852353,6803,-59310256,16777114,108461824,-1694730497,7671,-2097102359,361022,1048797054,1946158420,-2110324981,505387534,149618688,-1710852353,7721,-1694742903,65535,1946162749,-59310326,16777114,-16192768,-6620042,-2097151745,349246,1996425844,507615996,199950336,-16353537,1318780022,-16777186,244319862,-337291288,-1975614629,1416888328,143277699,-2092466688,349246,922684276,-1919283582,-352321513,108461832,1931674,-62486272,-26032,1048772608,1946158420,-59310326,1489306,-15996160,1996424822,184982268,1996423168,-401698810,113763584,2186,-1962742397,1297948645,503317194,1430622296,-1910575989,1782481880,309592076,-16222465,-826800522,-1706025469,8548,1589905387,130426374,112640,-1962742397,1297948645,503317706,1430622296,-1910575989,686588888,-1207273729,1344145486,16777114,-62486272,1131724811,-1157627976,1347616767,-1694730497,7994,-1980217719,-1039402410,1183656308,-11528488,1996486750,-126418950,2053786,-666465024,-826781674,-1873797629,15984654,185262755,-1207601728,48955393,-310132693,535137026,113921373,-1873273344,-326412987,-2116514274,-956266772,713222,-18432,1392508858,204930896,531667473,1183383552,-61437446,-1070903214,-6664112,-16776961,1996487798,534878970,1048772608,1946159842,1354771241,-8747379,8435792,1620048,63879248,436574800,1344143360]},{"sector":13,"data":[504410808,3192912,437623376,-492765184,49120010,1562371467,1478413133,-1957345904,-661774612,-1207374717,-4521985,-11513089,-1710158794,6778,-1980217719,922745430,1522012428,-11526648,-1516632458,1342177313,-362753,-1583679370,-1996488678,1996487750,-126418950,1749402,-62485760,-1962742397,1297948645,503317194,1430622296,-1910575989,116163544,-16097596,-1977218490,-62486521,-16359740,-1977219514,-96040953,1643937408,2122320508,75463420,-520337792,1643806336,2122320508,75463418,-520468864,955926154,74775622,166445099,16547456,28882549,49120000,1562371467,576077,1167087646,518818645,-326903666,105286406,-1946532215,4161752,116083828,788299392,1586171764,105316102,1183319946,1975519996,-58818325,-1960479698,1204160094,1191128831,1292355078,-16359797,130418246,106859347,-972667137,1586188295,509446,519718539,480483920,-310181888,535137026,46812509,-1873273344,-326412987,735612446,1706578112,-11526648,-1962418122,1344144966,16777114,132162304,-1962742397,1297948645,503317194,1430622296,-1910575989,116163544,-1996077429,686554182,-1979294069,-96040953,141843516,74723132,125123132,1074153099,-1946401143,1344144966,16777114,105285888,-2147066229,-797638593,-2080618869,-443874579,-900899553,1478361090,-1957345904,-661774612,8580225,-8485235,716722198,-1706025458,7141,-2146935157,242483263,-8485235,-1873588202,-8656882]},{"sector":14,"data":[1048780011,1962935630,2122747148,-1202710785,-347077682,2122747366,-1202710785,1344146148,16777114,108461824,1934490,-2037559296,1343684478,16777114,49120000,1562371467,1057278541,1895825920,117505818,-1493171712,134283039,-939523584,167837470,822084096,184614687,-167705856,-2147483375,385876736,318832389,-1308622080,453050141,2046886656,2080375555,1895826176,486604567,-1912601856,536936219,-2046754048,16778015,1006633728,570490636,2013332224,251658775,-822017280,285213206,-1644100864,301990423,1291846400,721485596,-956235008,318767638,-1006632192,788594461,-100596992,570425621,-1191116032,419431198,-1090452736,-1694498042,1979712256,1006698271,1090585344,-1660943610,1476461312,805306630,-620756224,1107361565,-788528384,1124138781,-1325333760,620757793,1912668928,-1509948669,-721353984,-1493171452,-1577057536,1208024836,1610613504,1258356509,-805240064,855638558,-318700800,872415774,-956235008,771752735,-1291844864,1325465348,-1610611968,1375797013,-1962933504,1392574229,-369032448,1140850973,1258357504,905970463,1124139776,939524871,302056192,1241514262,520160000,1342177553,-1140784384,1107297053,1124139776,1241514524,-1744764160,1140851485,-50265344,1157628690,755041024,1291846177,-1174338816,1325400608,1845495040,117505818,-2013199616,1476395550,-1543502592,134283039,-1660878080,1493172769,-989854464,167837470,771753216,184614687,-754908416,1459618591,1962935040]},{"sector":15,"data":[2013331225,-687865088,2030108432,-452918528,1627390496,-2097151232,2046885648,-973012224,1778385173,-922746112,2063662876,838861568,2080440094,-1929379072,2097217309,1937009920,1167087646,518818645,-327034738,-950665074,64582,286031489,-385649663,1183515244,81162,37559156,-385649408,54329578,-385649408,87884009,-385649408,-1612119780,242679554,1342177720,78234,-6664192,184549631,-385649216,1996423809,243726,80656464,2058899486,2124042240,-1929379839,385840774,80656464,1150963742,-1207959550,-1924136959,1358919302,-2096995096,-2037578556,-397344906,-998046992,1958742786,242679603,-9009523,95965206,79187968,280514560,1905938496,184549378,-15371072,62393974,-2037559296,1343684470,153242,34662656,-1202667477,-397409074,-998047211,80656388,44230736,184730755,722171072,-6664000,-385875713,-826801686,-1706025468,65535,1342492344,16777114,242679552,1342177720,16777114,29616384,722368255,-2114917440,50333822,-1209465996,242679553,1342177720,81562,1996443648,243726,-26032,-1202716672,726663182,1347440832,16777114,-6664192,-385875713,1183515014,81160,37555060,-385649408,1944649970,242679553,1342178232,503631544,8042576,-26032,1996423168,1988529422,-1202710785,-1706033147,65535,58048523,-1929335319,385840774,28285520,1183383552,80656630,77221918,-1996488701,-838469050,-129595132,1065408651]},{"sector":16,"data":[-2147126230,91568703,-352321096,-1983894782,-2113964922,80672894,-826784138,-1957683708,1344206918,201114,-129595136,126539915,-9271672,74721852,108347196,-9140537,1586167809,-2012771592,1023373958,1006924892,-1950321350,1344206918,16777114,-129595136,-9126269,-1961987072,-2104625546,1343684470,-336050549,-160003316,-9010547,1035489302,-1706025464,892,-1207011585,-1924136957,385840774,43948624,2146107392,-1207011585,1344144590,1342178744,1342178488,1346375864,184218,1975520000,-37361405,-1207011585,-1202716669,-383908658,2122448445,1963003916,242679631,1342178232,503839416,-26032,1996423168,243726,68532304,8042576,1354771280,-26032,1996423168,133871630,95965214,79187968,280514560,-6664128,-16776961,244321910,-956055576,130118,1593591435,-1962742397,1297948645,1426066122,-326898549,-950642934,64070,503596683,-1706025392,65535,66471561,1344144454,222874,-1947170048,977043710,1015026036,-2146208466,1966014332,-159481075,-955812606,63558,1015036139,-955812516,129094,2122525931,74711046,65781803,-1996488008,2117728326,-2145946876,611593789,503596683,516393808,-26032,-125108224,1150149867,-1957683711,1007024198,-1706025464,65535,-443850914,-1957313699,1988843244,-2146374908,91499068,1967078528,112645,-2142893845,-344653764,-1956724693,516120037,1430622296,-1910575989,-1897102888,1187468800,-2130706182]},{"sector":17,"data":[17894526,-1645673612,172395264,1946157373,146701,54349428,-380603392,1996423589,112654,71146064,-1706033152,79,58048523,-16676887,62393974,-826781696,-1202708988,-1706033030,1222,1342492344,66970,242679552,1342177720,402330,22735104,722368255,-2114917440,50333822,1240007540,242679553,1342177720,281242,1996443648,243726,90806864,-1202716672,726663182,1347440832,85402,1922715648,-385875963,2122383640,1946226700,18082051,722368255,1347440832,1342178488,-1705983957,179,72236672,-955747328,1325364358,-2095715580,347710,-2033776523,63897460,-2033776917,138674036,-9134453,1962950528,11397379,-1207011585,-1924136956,385841798,8304720,7051856,1183383552,-2131719172,1560246714,-2100948876,-10682502,1988885574,2055390972,-2037710593,-2037776524,-397344906,-2037841760,-2037514376,-2037776518,-2037645454,-2043019400,242483062,-9003381,-9259381,121111690,-1635045516,1065418610,-1962248960,973043846,1946121862,1954974472,1988528639,242679807,1342178232,-9009525,-912633826,-352321536,1988528945,-1706025217,1371,-9009527,-9271669,-627421154,-352321531,242679705,1342177720,18842,-1070903296,22256208,1996423168,-401698802,1187447068,-1962933766,-2090927546,-443874579,-900899553,-1957363702,82609132,503596683,-1706025392,418,503596547,96377424,1183383552,-1959728130,1344144454,519980683,31824464]}],[{"sector":1,"data":[1183383552,-1965519874,-62486521,74734652,259340860,519980683,35232336,1183383552,-1962349570,1178141766,-1949796354,46292453,-1873273344,-326412987,-2082959842,1187448044,-2130706180,17894526,2122522485,208929034,34242179,2122516084,561317642,-15829249,1922697846,-352321530,209617167,225771792,-1878100225,6481934,33310407,-62485760,-1962742397,1297948645,503319242,1430622296,-1910575989,82609112,16533191,209617152,343212305,17464963,1996426869,112654,17930832,267059200,269254273,-15895295,244321910,-956296216,130118,-2080618869,-443874579,-900899553,1478361098,-1957345904,-661774612,-15537021,1183647350,-1706027276,1941,737691275,1183446086,-96039954,-1980348885,1996487750,-26106,-1924136960,1343680582,-1149185,244382838,-16759576,1183516278,-1037329938,1317796049,1372072944,-1711520117,-120470997,737300107,1996444104,-59310098,-1705983957,65535,-1207535873,-1706033151,65535,-1962742397,1297948645,503317194,1430622296,-1910575989,283935704,242679638,16777114,-230258432,571472,122788432,1183383552,-227082256,1342180024,16777114,-62486272,-15829249,-6622602,-16776961,-6680970,184549631,-1961003840,731508806,-990326334,-1993995682,-62485753,-775804007,1200170744,9955586,-1928431873,1343681606,16777114,-129594624,-1712044541,-120470997,638213828,1183516553,-96074762,-775804007,1200170744,138840834,-775804007]},{"sector":2,"data":[653298680,-972879989,2129675835,-263812342,-1993947605,-1961497849,731449414,-1946627646,173982960,2100771110,931735043,-1727641973,-120470997,1589964939,1200301578,1002832642,142539846,737953419,-8787514,-1727641973,-120470997,1589964939,2000233994,637828354,1577219977,-1962742397,1297948645,1641162,15663363,6815747,72941827,7274499,124190979,2031619,112197891,2097155,73335043,2228227,65798403,2293763,118751491,2752515,113901827,3014659,117965059,3670019,121766147,5242881,120914179,4325379,123666691,4456451,88867075,5046274,95027459,5111810,16515331,5177346,8061187,5767170,94372099,5898242,68222979,7471359,69009667,5767171,65405187,5963779,88015107,6029315,67633411,6094851,26214659,6488067,75497731,6553603,45482243,6619139,1167087646,518818645,-326903666,-1924863212,1343679558,1347469355,112720,-26032,-1073020928,1048786036,1946158446,1849098002,-330920699,-6664170,184549631,-1928038976,1343679558,16777114,-330920704,-6664170,-2097151745,348222,1048819060,1962935632,112645,-1070923029,-1962742397,1297948645,503317706,1430622296,-1910575989,216826840,16271047,209617152,695533841,-1710328065,65535,112720,-26032,1996423168,-26098,113704960,1390,89130695,-1175912447,209617152,57934096,-16730903,-1070920074,-26032]},{"sector":3,"data":[1183383552,1622692092,28856560,-6664192,-2147483393,282174,1187448692,-352039178,1312719635,125108229,-822720825,-955913469,182777414,-1980348789,65796678,-1946794241,1065416286,-336235264,-193036259,-1960610758,1178204742,505116406,-163148976,-6664162,-1996488449,1586230854,-2012771594,1547498566,1586222965,-2012771594,1547498566,977011828,1191117685,242679798,1342178488,519456395,-26032,1996423168,-26098,1996423168,-26098,1187446784,-1962933768,-310118330,535137026,181030237,-326413056,-1956713341,1065354846,721777920,22211008,-1996077429,-661915066,1946173312,-2146178066,1965073022,-96040167,-694530018,-1996488703,1586231878,-2012771590,-1073044922,1183572341,-62486022,2122322923,427044002,519718539,34708048,1183383552,-94467078,1183319946,1975519906,-94467103,1946173312,-96010338,-352319546,-1568767969,-2145028832,1965990526,-94467322,-1962932282,1344207430,145562,-96040704,-1963303285,-1572435961,-713703414,-1980086645,334233158,748846720,1183521140,-1706025222,618,-1946532215,126548574,178407048,-1948158528,1065417310,-385649408,1191182137,509690,2122322923,427106466,519718539,-26032,1183383552,-94467078,1183319946,1975519906,-96039967,-2086386039,1946158206,-28931302,1183535134,-1957683460,1344185414,1347469355,16777114,-1961301248,1344208454,519849611,-1538880688,-1070903266,-6664112,-1996488449,-1072957370,-1202708108,-1706033114]},{"sector":4,"data":[886,326435240,-1694992641,65535,16271047,1309067008,-1962934258,-443811770,311901,1167087646,518818645,-326903666,1309067094,-1207959282,1344144189,503527096,132298832,1183666206,-1202710870,-1706033071,845,1353336461,-402229505,1183448667,1975520252,1312719665,712245262,503532216,54769744,-491237346,-1924129273,1343662662,1342198200,16777114,-1438216960,108461904,-1979832600,1048837190,1946158430,9234691,16547459,1996446836,2668796,59087440,-391970816,-59310325,1342188216,234650,200057600,-1191414017,-1706033144,931,-16073053,179895414,-1298509824,-1560281085,1996425946,309500,63019600,-1700593664,-59310323,1342179000,16777114,229548800,113715947,330728,200017607,113704966,47188670,182060743,113705440,18288026,229508807,113705176,3662,-2080618869,-443874579,-900899553,1478361090,-1957345904,-661774612,1450896515,91096775,113704960,1360,1342177720,-941093232,-230258178,225820683,-1207535873,-397344769,-135724282,-2008642302,716722198,-1706025458,65535,72236672,-1928301568,1343653958,1342459576,16777114,-2095453440,347710,1183648373,-1202710904,-404028466,378029709,182761552,-6664162,-16776961,146338422,-1768271872,-1996488700,1996482630,702706,46701136,1183383552,-18206,1392508858,204930896,82221585,1183383552,-531199522,721843967,-358985536,-16777210,-1206842314,1344144210]},{"sector":5,"data":[-16353537,1996480630,-25890,1856176128,-18427,1392508858,204930896,-26095,1183383552,-598308390,-1192069377,726663177,-11382592,1347476086,336282,-227082496,1342180024,378029709,-26032,-1924136960,1343653958,1347469355,344474,-431585024,58572811,-16678423,62452342,-1070903296,-1924116400,1343682118,435610,-431585024,58572811,721510889,-11513664,1592384094,-159481087,-2095745792,1962998398,-125926641,-2096532224,1962998910,21883139,-624897,-15995338,-1852118922,-1996488699,1996483654,1714880504,-495517940,379802,-364476160,957083297,58518598,-1593775639,1178143846,-385647382,1183514846,-163173382,-1948760439,1177287750,-196703752,-624897,-15995338,-593827722,-16777211,922745462,1996426222,-1695511576,1520,1183434283,-126419066,208025343,-1696434433,1537,-231681,-15964618,-259267978,403610,-1983501568,1183576134,-2042231828,200148539,-291432066,-330945781,1350977161,-1542401,-1710494154,1613,-1948760439,1174661702,1711684592,-1592164852,1177226342,-263812630,-495517872,208025343,16777114,-196704000,8814211,2122527358,746455280,1347469355,-2466049,1996485238,-126418954,-2590977,1996485750,-361299988,-7964929,1290334326,1354771201,-631308464,1347469355,-2466049,62452342,-1070903296,-1924116400,1343682118,448410,-431585024,125681675,1342600959,-2097117720,348222,-1729559691,1346274302,930414597]},{"sector":6,"data":[-1192069377,726663179,1347440832,244994128,-2097151993,355902,1996435572,112646,123247184,922681344,1637483886,-956301305,355846,-15471872,45675126,-1070903296,1347440720,-26032,1996423168,47487730,1996423168,-562626592,470170,-596181248,-1696958721,65535,49120094,1562371467,182861,-2115204267,-956267796,17125382,1849590528,460587013,-1207535873,-1706033151,154,91109119,41626,1845937920,-150994939,1073742918,1183537524,-316156,1996489789,-1816132842,-1700266194,-28915961,418054174,536757959,-955127040,1965638,126618347,130746245,127076299,-1928956161,1358921350,1342210232,738096895,-6664000,503316735,280148048,817385502,-6664192,-1962934017,79846885,-326413056,-2095256445,1962935934,38398211,294531,1089012597,172395266,734147481,244162,-1036781357,1183433259,172395492,1208370691,734147481,871945154,-1983763518,-291377082,460043,734147481,871945154,-1983763518,1187508806,-1962933786,887817286,15498883,2122516084,1752498424,15498883,1996425332,147102444,2122514432,141820152,-1694992641,2258,-1947842817,-1952906170,-101194162,-1192606071,-1957691390,1385820742,-364475568,-1706012007,2311,-6664110,-1996488449,922741830,1996426222,112874,-1070903216,-6664112,-1996488449,2122577990,-1938489110,15367811,1996427380,-25876,1183383552,-162100748,2122528235,141820140,-1695779073,2589]},{"sector":7,"data":[16285315,1996426868,170236664,-2136932352,-129595124,15484615,211204096,-1930148215,1187509854,-16776726,-6621066,-1996488449,1183575622,1347590408,-1712175477,1503285330,-1996488695,1451883078,-96041988,-61439200,-28915968,-672595968,-28931328,1005209091,159253574,721700491,1183448646,-25878,1183383552,1996443880,-92864516,-1705983957,65535,-1712175477,1183535186,1347590634,620954,-96075520,-240111,1996482678,-193527818,-1712175477,1183535186,1347590634,629658,-6664192,-16776961,-6625162,-16776961,1183578230,1347590642,-1712699765,-6664110,1375731967,-159973552,-1695254785,65535,-15436033,1996427894,209125374,-1710983425,2513,1343243779,-15829249,1996483190,74907404,360346,1996443648,175570926,-11485141,1996424822,2144490,1375784122,-26032,1183514624,-28966422,956581515,58588742,-57623,379252342,-2097151993,1946217598,-327745768,16777114,-327745792,16777114,-126419200,16777114,1575324416,3150530,1966339,7143427,163315971,8388609,4522243,7405571,5177603,7471107,77660162,917759,81592322,983295,139722755,1245439,150142979,1769727,142082051,1900799,130482435,65539,142541059,983042,45547779,10027009,138805507,1114114,145621251,1179650,169148675,1245186,159842307,2818303,166592771,2293761,23724291,1441795,83951875,2490369]},{"sector":8,"data":[14090499,10158083,12976387,10223619,129433603,3932415,144113923,3145729,79364355,2228227,43843843,3473409,78250243,3342338,119603459,3407874,9437443,3014659,23199747,5243135,72941571,5308671,51904771,3801090,159318019,5374207,155713539,5439743,168231171,4456449,154533891,5505279,116588803,3473411,75956483,5242881,28246275,5046274,19333379,5111810,71565571,5767170,75170051,5832706,85065987,5898242,77463557,917759,81395717,983295,80871683,5832707,3604739,5898243,162005251,6946817,22675715,6029315,1167087646,518818645,-326903666,-11118830,129501814,-2103816192,-16777216,1183648886,-1706027278,65535,425603,-1997995147,1413382912,1114963973,-1207273729,-1706033145,199,13474384,1996423168,-533266678,-499712245,10131979,1996423168,1882652426,1916206860,11180556,1996423168,208713738,1183666206,-397404430,1996423673,899082,-26032,1996423168,-26102,1996423168,-533266678,-499712245,14522891,1996423168,909573898,943128330,15571466,1996423168,-26102,-1377239040,142508801,-12421888,129501814,748310528,1342177282,144026,175570688,199243519,199374591,148122,175570688,208680703,208811775,152218,175570688,504131768,-230257328,1927827478,2050394881,-533320948,-59340533,209469067,199376427,200965769]},{"sector":9,"data":[192184063,-1962640138,-1962611770,1004074950,-385646649,1988690129,2096499696,-339244284,-137917692,922702040,922685008,-2036724606,-1996488703,-166986682,-963967876,-963967765,1183439095,-58817554,-1962574848,99351622,-134461813,-297387048,-1880554628,-59340544,-654850421,-2110324912,1345781516,29989390,1183383552,-1955206150,-654836666,1183576203,-1948715014,-58817544,-1962574848,49019974,-952383861,1183535486,-263812612,92258315,-335919477,1355254530,240137983,209860351,16777114,-62486272,15761027,1183516028,-1962742800,-297367098,16547459,1183516028,-1962546180,-654836666,2112767547,-263812337,1459373705,-939557143,64582,66864779,-1559502842,1183517238,-502922246,171483915,-1559611743,950078576,208839434,-1207273729,-1706033145,65535,42048080,1996423168,-533266678,-499712245,44734987,1996423168,909573898,943128330,45652490,1996423168,171358218,1183666206,-397404430,1599995917,-1962742397,1297948645,1426065610,-326898549,209125126,208549631,247706,-28931840,-16091393,1183647862,-11528454,1996424822,20310020,-1005816065,-14284706,2013210167,48142850,1996423168,-92864756,-1694730497,748,-16091393,1183647862,-11528454,1996424822,26470404,-1005816065,-14284706,2013210167,51550722,1996423168,-92864756,-1694730497,800,-16091393,1183647862,-11528454,1996424822,32696324,-1005816065,-14284706,2013210167,54958594,1996423168]},{"sector":10,"data":[-92864756,-1694730497,852,-16091393,1183647862,-11528454,1996424822,39249924,-1005816065,-14284706,2013210167,58366466,1996423168,-92864756,-1694730497,904,-16091393,1183647862,-11528454,1996424822,45869060,-1005816065,-14284706,2013210167,61774338,1996423168,-92864756,-1694730497,956,-16091393,1183647862,-11528454,1996424822,44689412,-1005816065,-14284706,2013210167,-26110,1996423168,-92864756,-1694730497,65535,-15960321,-6619530,-1962934017,180510181,-326413056,1459809411,73319510,38243110,638082756,-1006483575,-1960440738,140428343,38243110,638344900,1342326571,240137983,209860351,279706,-990903552,-1993996194,73319479,994020134,-1002406409,-1960440738,-28931833,863290939,1177274251,1589924094,1200301576,207537154,38218534,734432080,-1705968058,1176,638344900,50483083,140428488,38766886,1581222182,1575324511,1426066626,-326898549,-1000974590,-1960442786,-1001912761,-1993996194,1589903943,931866124,638082756,-1006483573,723913822,-11533753,-15839178,-1710456266,1239,1589964843,931735048,637820612,-147112053,1589919869,126559756,1006519945,-1959562042,-28955705,140428368,38243110,638344900,1342326571,1177273995,664424702,-1006632955,-1960440738,-939326897,638082756,637685641,1600012169,-1034033781,-1957363700,-1000974356,-1960442786,1589903943,1200170504,207537154,-1002992858,-1960441762,1589903943]},{"sector":11,"data":[1194010124,922701826,922685008,1704594562,721420293,140428528,-1002993370,958792798,1249707127,638344900,-147112053,1589919860,1200301572,1355229956,638082756,-1006483573,723913822,-1957690809,1355230150,376986,207537152,38767398,1589954563,1334388232,73319426,71797542,638082756,1599997833,-1034033781,-1957363700,-1000974356,-1960442786,-1001912761,-1993996194,1589903943,931866124,638082756,-1006483573,723913822,-11533753,-15839178,-1710456266,1534,1589964803,931735048,637820612,2097444665,207537226,994020134,-1002408713,-1960442786,-953482169,140428368,38243110,638344900,1342326571,-953432437,21469776,1589903360,1334519308,-993524990,-1993996194,1589903951,1200301572,140428292,1577552166,1575324511,1426066626,1589963915,1200301572,1589921798,1200170504,207537154,-1006138586,-1993996194,214064391,-326413056,637820612,-1006483573,-1993996194,1589903943,126559756,638082756,-1034090615,50333964,17040641,50364416,16783105,50332672,16803329,50336512,16799233,50336768,16795137,50343168,50340865,50340096,16793601,50353920,-16731648,50365696,-16741888,1828750848,1167087646,518818645,-326903666,209363214,291636793,1654721405,-196703983,-351503711,209363209,-1577826679,1183388002,-194083844,-62487800,-193035512,-955941632,62534,957192353,58653766,-1577302391,104402044,192745828,-1995348831,2090990150,-1593185524,1183386748]},{"sector":12,"data":[291807738,-2080881015,-2096563602,-2096564154,2097216126,-96024827,-1532952576,-129615603,1183384446,-2110324744,-26098,1183383552,-6663946,-16776961,230225526,-6664192,-1207959297,-1706033136,65535,209567755,-1191807233,-1706033151,65535,-624897,-15637962,-15637450,-15959498,-1710457802,65535,-1695123713,65535,-16091393,1996485750,-62485510,1358186027,737691275,-11470266,1996486262,-92864524,-1174396744,1347551436,16777114,-159973632,16777114,49120000,1562371467,151571021,-1409219840,1778385664,-1140784384,33554688,-1560214784,67109120,-1912601856,453050112,151061248,570425601,-738196736,1140915968,285278976,1140850945,-603979008,-2113863936,-1761606912,-2097086720,1937009920,1167087646,518818645,-326903666,175570692,-1705983957,84,5937744,1996423168,2050424586,2083979020,-667484404,198877450,-775804007,565727480,15776256,2140819538,-16777216,-1710325194,65535,1358710409,-1705983957,65535,-26032,1996423168,2050424828,2083979020,-667484404,198877450,-775804007,565727480,15776256,-6664110,-16776961,-6620042,-2097151745,-443874579,-900899553,50332936,-16758784,50338560,16793345,50339072,16783873,50343168,16811777,50349056,16782337,1828738816,1167087646,518818645,-326903666,175570692,1342180792,46746,108954368,-10980352,-1097201034,-16777216,922684022,922685794,-828763804,-16777216]},{"sector":13,"data":[922684022,922684538,1402604668,-16777216,922684022,922684384,-560329758,-16777216,-426112394,-16777216,-15959498,-1710457802,299,-1710590209,65535,-2097104663,1946159230,-533266677,-499712245,10676491,957440673,1963751942,291807500,209454649,-1830222987,1413382912,1316225029,243414783,16777114,-62486272,899152,-26032,1996423168,16161532,1996423168,1647771644,1681325841,17209873,1996423168,2050424828,2083979020,18258444,1996423168,18782972,1996423168,-25860,1996423168,-26102,1996423168,1647771402,1681325841,-26095,1996423168,2050424586,2083979020,-26100,1996423168,-26102,922681344,922684538,-6681476,-2097151745,-443874579,-900899553,50333960,16782593,50332672,-16733952,50338560,16794369,50336512,16790273,50336768,-16748544,50348800,16838145,50349056,-16750592,50365440,-16753920,50365696,-16768256,1828750848,1167087646,518818645,1996478606,175570700,-16222465,-1070922122,3401808,-1962742397,1297948645,503318730,1430622296,-1910575989,209125336,-16091393,1996425334,112646,780368,-1962742397,1297948645,1426065610,-326898549,175570690,1342178744,28570,1973047296,-16777216,112724598,-6664192,1342177535,16777114,108954368,-385649408,1996423446,505866,15112784,1996423168,291676426,199231033,-526318211,-1593578741,-1588588190,104403300,92081122,-351542623,291807491]},{"sector":14,"data":[291676496,199231033,-526318210,-1593578741,-1588588190,104403300,92146658,-351542623,291807491,24156752,1996423168,899082,27892304,1996423168,-26102,2122514432,745799684,-1710590209,65535,-1710590209,65535,-1191295351,-1706033136,65535,209567755,-1207273729,-1706033151,393,-1593149697,104402042,92081120,-351543135,209363203,209494352,199362105,-492763779,-1593578741,-1588589444,104402042,92146656,-351543135,209363203,209494352,199362105,-492763778,-1593578741,-1706029956,505,294531,1996428148,-26102,1996423168,-25755894,16777114,175570688,16777114,11921664,556675,-1394015372,175570688,1342179256,16777114,175570688,957440673,2097930246,199270661,1654719467,1688293393,-502908655,-1593475829,65735650,1343317153,957440673,2114707462,199270661,1654719467,1688293393,-502908655,-1593475573,65735650,1343317153,149914,175570688,957119137,2097930246,199270661,2057372651,2090946572,-502908660,-1593475829,65735650,1342995617,957119137,2114707462,199270661,2057372651,2090946572,-502908660,-1593475573,65735650,1342995617,16777114,1575324416,723650,17826051,6946819,18874627,131073,9044227,262145,14287107,1769473,6488323,2949121,17039619,4980737,6095107,5701633,25034755,8519935,16515075,8585471,26279939,8716543,15597571,8782079,1167087646,518818645]},{"sector":15,"data":[1996478606,175570700,-16222465,-1070922122,3401808,-1962742397,1297948645,503318730,1430622296,-1910575989,209125336,-16091393,1996425334,112646,780368,-1962742397,1297948645,1426065610,-326898549,175570694,1342178744,28570,1973047296,-16777216,129501814,-6664192,1342177535,16777114,291676416,199231019,-1577171319,103485796,1183386594,-25755654,243152639,200161023,44186,-28931840,-362753,-15684042,-1710463434,189,1358579337,227948287,210908927,56730,-96040704,1358853887,106906,-96040704,1358841481,210908927,227948287,61594,-96040704,-100609,-15995338,-1710326218,259,-113015,922745462,922684518,1905922222,-1996488703,2122578502,57999366,-16689431,112724598,1301958656,-16777215,-526316938,-28955893,199401808,1358579243,66995851,1342955526,66733707,1342956038,147098,175570688,1342180792,162458,209363200,199231019,-1577171319,103484540,1183386594,-25755654,243152639,200161023,99482,-28931840,-362753,-15684042,-1710463434,405,1358579337,227948287,210908927,112026,-96040704,1358853887,193690,-96040704,1358841481,210908927,227948287,116890,-96040704,-100609,-15995338,-1710326218,475,-113015,922745462,922684518,-996536146,-1996488702,2122578502,745799684,-1710590209,65535,-1710590209,65535,-1191426423,-1706033136,65535,209567755]},{"sector":16,"data":[-1207273729,-1706033151,602,-1710590209,65535,-1593149697,1177226208,-492744450,-96064757,-28931248,199230979,-96040112,199362051,44079696,1996423168,-26102,2122514432,57999364,-16709399,1996425846,-25860,1996423168,-26102,-219611136,142508800,-385649664,1996423401,440330,-26032,1996423168,199270666,1358841387,722199201,-1957627322,100924998,-1957688352,100923974,-1706030110,65535,722238113,-1995710458,2090991174,-502912244,-96040693,-100609,-15827402,-1710494154,727,-113015,922745462,922685614,-392557466,-1996488702,-11470266,-15886794,-1710452170,776,-375159,-1705968010,65535,-1980086647,-11469242,-15953354,-1710385610,795,-375159,922746486,922684398,-6680962,-1996488449,1996488262,1714880506,-1372127476,10066448,1183383552,175570938,722198689,-1588527546,1177226210,1183535354,-536476674,1183535115,-502922246,1100632075,-1962934271,180510181,16973837,197120,196714,16711881,16973964,66350,16973952,66064,16973826,65819,16973828,66391,16973848,65635,16973869,66036,16973900,65629,196695,16712290,196738,16712172,196739,16712262,196741,16712216,1953300614,1167087646,518818645,1996478606,175570700,-16222465,-1070922122,3401808,-1962742397,1297948645,503318730,1430622296,-1910575989,209125336,-16091393,1996425334]},{"sector":17,"data":[112646,780368,-1962742397,1297948645,1426065610,-326898549,175570690,1342178744,28570,1973047296,-16777216,129501814,-6664192,1342177535,16777114,108954368,-385649408,1996423449,440330,15112784,1996423168,291676426,199231033,-526318211,-1593578741,-1588588190,104403300,92081122,-351542623,291807491,291676496,199231033,-526318210,-1593578741,-1588588190,104403300,92146658,-351542623,291807491,24156752,1996423168,899082,28088912,2122514432,745799684,-1710590209,65535,-1710590209,65535,-1191295351,-1706033136,65535,209567755,-1207273729,-1706033151,396,-1710590209,65535,-1593149697,104402042,92081120,-351543135,209363203,209494352,199362105,-492763779,-1593578741,-1588589444,104402042,92146656,-351543135,209363203,209494352,199362105,-492763778,-1593578741,-1706029956,508,-1710590209,65535,294531,-873921675,175570688,-1694599425,65535,-1710590209,65535,-2097105431,1946159230,11331843,-1207273729,-1706033146,65535,-1593149697,104403298,92081120,-351543135,291676419,291807568,199362105,-492763779,-1593578741,-1588588188,104403298,92146656,-351543135,291676419,291807568,199362105,-492763778,-1593578741,-1706028700,588,-1593149697,104402042,92081120,-351543135,209363203,209494352,199362105,-492763779,-1593578741,-1588589444,104402042,92146656,-351543135,209363203,209494352]}],[{"sector":1,"data":[199362105,-492763778,-1593578741,-1706029956,65535,-1034033781,50334474,50399233,50358784,16848897,50332160,16812545,50332672,16833025,50337792,16802561,50343168,16841729,50351104,16801025,50353920,-16673792,50364928,-16714752,50365184,-16680960,50365696,-16703488,1828750848,1167087646,518818645,-326903666,175570696,1342179000,47002,142508800,-2091748352,361022,-6680449,-16776961,-15998922,-385097162,-2103377701,-773795579,335938528,370576145,-129595119,-371063,1589906038,2013210360,2013210364,9804542,1996423168,2050424586,2083979020,10852876,-1511456768,92446976,-523116335,286524931,286660235,-1980217719,1996487254,-128007158,-59244762,-25690330,59290,175570688,291649279,291780351,63386,108954368,-15436800,230165110,-6664192,-16776961,-6681994,-1593835265,-523172478,100917457,378212628,1183387926,-94991880,-1005947137,-14223266,-14222217,-6619529,-16776961,922684022,922684538,-6681476,-2097151745,1946158718,175570709,16777114,2050424576,2083979020,-26100,-310181888,535137026,147475805,16973831,65557,16973828,65642,16973843,65626,196628,16711719,196682,16711954,196740,16711941,196741,16711871,1953300614,1167087646,518818645,1996478606,175570700,-16222465,-1070922122,3401808,-1962742397,1297948645,503318730,1430622296,-1910575989]},{"sector":2,"data":[209125336,-16091393,1996425334,112646,780368,-1962742397,1297948645,1426065610,-326898549,175570690,1342178744,28570,1973047296,-16777216,129501814,-6664192,1342177535,16777114,108954368,-385649408,1996423446,440330,15112784,1996423168,291676426,199231033,-526318211,-1593578741,-1588588190,104403300,92081122,-351542623,291807491,291676496,199231033,-526318210,-1593578741,-1588588190,104403300,92146658,-351542623,291807491,24156752,1996423168,899082,27892304,1996423168,-26102,2122514432,745799684,-1710590209,65535,-1710590209,65535,-1191295351,-1706033136,65535,209567755,-1207273729,-1706033151,385,-1593149697,104402042,92081120,-351543135,209363203,209494352,199362105,-492763779,-1593578741,-1588589444,104402042,92146656,-351543135,209363203,209494352,199362105,-492763778,-1593578741,-1706029956,505,294531,1996428148,-25755894,16777114,175570688,16777114,175570688,16777114,11921664,556675,-1394015372,175570688,1342179000,16777114,175570688,957440673,2097930246,199270661,1654719467,1688293393,-502908655,-1593475829,65735650,1343317153,957440673,2114707462,199270661,1654719467,1688293393,-502908655,-1593475573,65735650,1343317153,149914,175570688,957119137,2097930246,199270661,2057372651,2090946572,-502908660,-1593475829,65735650,1342995617,957119137,2114707462,199270661]},{"sector":3,"data":[2057372651,2090946572,-502908660,-1593475573,65735650,1342995617,16777114,1575324416,723650,17826051,6946819,18874627,131073,9044227,262145,6488323,2949121,17039619,4980737,6095107,5701633,25755651,8519935,16515075,8585471,26279939,8716543,15597571,8782079,14286851,8847615,1167087646,518818645,-326903666,-526297574,2047224587,-96040692,722199201,-1995670522,2122577990,528351482,66733707,51222534,990671878,2114711046,200188174,208930347,228066859,-1946532215,100923974,-1073017740,1956710525,-1982269684,2122578502,528351480,66602635,51225606,990674438,2114741766,208052494,209585707,228853291,-1946663287,100923462,-1073017730,2124482685,-1982269684,922744902,-6680958,-1996488449,2122575430,812908550,-92864688,-1694992641,65535,722106111,-11513664,-15886282,-15883210,1347481206,-1174396744,1347551436,89242,20572416,556675,820577140,-92372223,-955023872,63046,-1980086645,-1734219194,-96064755,1187452139,-1962934038,-654837178,-1946794359,100923974,1183387032,-125926412,-955023872,62022,-1980217717,-1532893626,-129619187,1187452139,-1962934042,-654837690,-1947056503,100923462,1183387044,175570928,-624897,1996485238,1996443892,-361299986,-1192855809,-860225504,-1706012160,65535,722106111,-6664000,1342177535,16777114,-125926656,-1593278976,1177226660,721611768,-62486080]},{"sector":4,"data":[-134723957,-1012776,-1070921098,-59310256,228079359,2096645689,-129594619,-963968277,2209872,1375793338,34183760,2122514432,142475514,722311329,49019462,1183432747,-125926424,721714688,-1962742848,-62486074,-16091393,-2091849610,2080438910,-96040187,1183516139,1356396538,16285315,1183516028,-1962742792,-1542550586,1372072717,-1174396488,1347551472,16777114,-294191360,16777114,-310157824,535137026,147475805,196615,16711831,16973851,65966,16973853,65741,16973858,65901,196653,16711852,16973894,66065,16973892,65895,1953300567,1167087646,518818645,-326903666,175570692,1342180792,35994,108954368,-13208576,-1801844106,-16777216,922684022,922685794,-1533406876,-16777216,922684022,922684538,-1264972676,-16777216,922684022,922684384,-1763111966,142508800,-385649664,1654718618,2047228177,-1593019124,104403300,58002556,-2097117719,349246,922701428,-6680958,-1996488449,-1202652090,-1706033139,65535,-1694730497,204,-231681,-15637962,-1710136266,220,-231681,-15959498,-1710457802,236,-1694730497,244,-1694730497,65535,-1710590209,65535,-16091393,-15637962,-1710136266,65535,-16091393,-15959498,-1710457802,65535,-1710590209,65535,-1962742397,1297948645,461002,1376515,262145,8323075,1769727,4391171,1245185,3342595,1310721,12845315]},{"sector":5,"data":[4456449,12320771,8716543,2293763,8782079,1167087646,518818645,-326903666,1748927236,57999365,-2097112343,1946159230,-1908998282,-26100,1183383552,229030140,922701854,922684386,-6681632,184549631,-13732672,-526254986,-1509545205,-1588576243,103484386,1346375080,16777114,1958873856,-59310320,29082,175570688,-351946776,-59310286,16777114,209125120,134810,1996443648,43031050,-6684672,-956301057,354310,-2095125760,1946158718,1778829072,-251,244320886,-351769368,175570711,-351910680,209125135,-16091393,1996425334,780294,-1962742397,1297948645,1426065610,1996483723,440328,-26032,2122514432,1584660484,-16222465,-15637962,-1710136266,364,-16222465,-15959498,-1710457802,268,-16222465,-15998922,-1710497226,380,209336063,209467135,100762,142016256,1342178744,16777114,-6664192,-1711275777,65535,-1710721281,65535,2122534891,175374342,199243519,199374591,1654733547,2047228177,-1593215732,104403300,762580092,-16222465,-15637962,-1710136266,65535,-16222465,-15959498,-1710457802,65535,209336063,209467135,16777114,108954368,-1592626176,-1499263878,-1432141811,209494285,-351426397,209363250,228984377,-1499265666,-1592923379,104402042,75435434,229286720,957119649,2114824198,229155589,2090929643,-1408878324,1074036493,-2096255837,1946158206,175570697,-402098433,-443875322]},{"sector":6,"data":[574045,-2081649835,-1432285460,-1509545203,196518669,722316449,-1559386106,1996426168,42441222,-1706033152,65535,90834631,-1230897153,1346387979,1074509985,28856384,726683648,-1706012480,593,-1593012573,1077939126,196649296,-1202700224,1347420161,1347469355,16777114,291545856,210648707,184841216,-2093386304,822846,922683764,2140802190,-2097151998,1138750,922683764,-6680224,-16776961,-6683018,1342177535,-1710983425,65535,209050,44624128,243414783,175514,-230258432,210646783,178586,-196704000,291518207,417434,-163149568,737441535,-107327296,1342177282,196506,-193528064,1347469355,1074509473,-1197387712,1346387979,-1174396488,1347551472,16777114,-193528064,1342179256,199578,295325696,-16777213,79230070,-1835380736,1342177283,235674,-193528064,1208854177,229155152,1016746056,-16777213,949679222,-1711276031,65535,737441535,-1706012480,65535,-1191807233,1347420161,196491007,196622079,1358198527,2144336,1375784122,59152976,1996423168,112884,922701904,922684342,1996426168,-1506344974,-1472790771,8828941,1375792826,63871568,1996423168,309492,19241552,-1706033152,299,737441535,1347440832,-26032,1996423168,112884,922701904,922684342,1996426168,-1506344974,-1472790771,36091917,1375779770,66099792,1996423168,112884,922701904,922684342,1996426168,-1202695946,582615846]},{"sector":7,"data":[-1706012160,1142,-1913358593,-11470778,-16009674,-401885130,1183514948,-129615364,-571931778,-28931328,2130331193,13822211,737953419,-1556023226,1183517622,-96064514,196649792,1224230539,228984321,51226273,-1559513594,1183518122,100747514,-1465840216,-1207565555,229417739,-1191938305,1347420161,196491007,196622079,-755969,1996486774,2144506,1375784122,77503056,1996423168,112886,922701904,922684342,1996426168,-1506344974,-1472790771,2144269,1375784122,79731280,1996423168,112886,922701904,922684342,1996426168,-1202695948,-2001076026,-1706012160,1256,-887041,-15882698,-15882186,-16009674,-16009162,28898422,-1202696192,-289800058,-1706012160,65535,113711339,2998,196609735,-1499398144,229286669,-1559385951,1996426668,85105398,1996423168,85629684,1996423168,6396658,1996423168,-401698812,-2034760723,-1202708980,1344146854,344218,282638336,-1497870306,-1706025459,65535,-1034033781,-1957363708,82609132,-955752821,2097152583,-16365625,509951,71812989,1187512319,-385875458,1996423333,1354771210,1358853887,-828747696,-1996488699,-12714938,-1959561985,121178206,126419582,-1962385781,1194982470,-1996260092,1586168903,-28931320,2114078521,38242563,-1962385781,1194982982,-1996260090,1996424775,105286410,1996443712,1354771454,178256,-26032,1183383552,-49668,1586180980,2114402568,-1962440446,1183516766,71776764]},{"sector":8,"data":[1200161661,140413700,972965515,58589767,-1962784887,1183516766,105331198,1200161661,-28901626,-2096869633,2113930366,-11343613,-1034033781,-1957363704,116163564,1290276496,1095683,105421392,-1073020928,113707389,132458,-1207915799,-1706033135,65535,58507275,-956263191,17132038,-2110324992,107649550,1183383552,-1908998150,2267660,1183383552,1614217212,117348881,1183383552,-92864514,228996863,229127935,196491007,196622079,-1191414017,1347420161,-1174198600,1347551266,444826,-92864768,228996863,229127935,196491007,196622079,-1191282945,1347420161,-1174370632,1347551470,477594,-25755904,448922,-59310336,450970,-92864768,588186,-955847936,354822,1575324416,1426064066,-326898549,-2110324978,118135310,1183383552,-1908998158,118921740,1183383552,1614217204,153459217,1183383552,1782481918,57999877,1342223849,1342177720,-1237909680,-1204355317,-227082485,228996863,229127935,-1174387016,1347551334,486298,-25755904,1342177720,-1237909680,-1204355317,-193528053,-960999344,8960512,-1818603438,-16777209,922682486,922684838,922684840,922684342,1996426168,112894,1186484304,6732288,-1147514798,-16777209,28900982,-11513856,-16009674,-16009162,922743414,922684838,1186467240,6732288,10113106,-16777208,28900982,-11513856,-16009674,-16009162,1347482742,-1174354248,1240137864,-887041,-15882698,-15882186,-16009674]},{"sector":9,"data":[-16009162,28898422,-1202696192,582615846,-1706012160,2088,-887041,-15882698,-15882186,-16009674,-16009162,28900982,-1202696192,-289800058,-1706012160,2249,385238669,229029968,832196638,-1207959547,1344146854,722238113,1343316486,722238625,1343316998,16777114,-1505852672,243073037,-1499217877,-1241119987,229286667,-1734274069,-1442432755,-1559593459,103484842,-1499264074,-1472298227,243073037,-1465663445,-1207565555,229417739,-1532947477,-1408878323,-1559593459,103484844,-1465709640,74907405,228996863,229127935,196491007,196622079,-1191938305,1347420161,-1174198600,1347551266,586138,74907392,228996863,229127935,196491007,196622079,-1191282945,1347420161,-1174370632,1347551470,220826,-25755904,590234,-193528064,592282,-227082496,330394,1575324416,503317186,1430622296,-1910575989,82609112,210646783,172442,-62486272,-1207535873,-1706033150,711,47028816,1996423168,-1506345210,-1472790771,-1237909747,-1204355317,-59310325,1342177720,32094288,1375759034,167025232,1996423168,175020796,-310181888,535137026,46812509,-1873273344,-326412987,-2082959842,1048775404,2080376172,16443651,-150639455,91005912,504420536,229029968,932859934,-16777208,-1710325194,2488,-637303,-1710496714,2500,-375159,-1710137290,2512,-244087,-1710453194,2738,-506231,-1070859658,922701904,922684824,1996426660,-1202695946]},{"sector":10,"data":[-860225504,-1706012160,2588,-1191414017,1347420161,196491007,196622079,-624897,-15882698,-1207064522,-860225504,-1706012160,2622,-1191414017,1347420161,196491007,196622079,1358460671,13023312,1375766714,174496336,1996423168,-1506344970,-1472790771,-1237909747,-1204355317,-126419189,1342177720,8829008,1375792826,183081552,1996423168,175545080,1996423168,176069372,1996423168,176593658,1996423168,185834230,-310181888,535137026,516640093,1430622296,-1910575989,116163544,-722989424,108462078,1726484112,-1908998146,180263436,1183383552,1614217210,108435985,1183383552,108462076,228996863,229127935,196491007,196622079,-1191545089,1347420161,-1174387016,1347551334,723866,-59310336,1342177720,-1237909680,-1204355317,-92864757,1186484304,6732288,-1583722414,-16777210,463142006,-16777205,-778372490,-16777210,244319862,-2080510744,-443874579,-900899553,50338562,-16641024,50366464,-16569600,50366720,-16699392,50366976,50737665,50358784,-16608000,50367232,-16617728,50336512,16832001,50332672,17136385,50366208,-16143360,50338560,16982785,50334464,16841729,50336512,16837633,50336768,17016321,50338048,16968961,50339072,17392129,50340352,17381889,50343168,16921601,50343936,-16742656,50350592,50362625,50343424,17394177,50349056,16798977,50352896,17380353,50353920,50963201,50350592]},{"sector":11,"data":[50345729,50351104,50876673,50351360,-16743936,50363648,-16705280,1828750336,1167087646,518818645,1996478606,440330,4889168,2122514432,544538632,-16091393,-15998922,-1710497226,98,-16091393,-15637962,-1710136266,114,425603,1996428404,899082,-26032,1996423168,-26102,1996423168,-533266678,-499712245,-26101,1996423168,2050424586,2083979020,-26100,2122514432,141819910,-1710590209,65535,-1962742397,1297948645,329930,1179907,262145,3670275,1245185,2621699,1310721,8388611,8716543,5373955,8782079,1167087646,518818645,1048828046,1946158436,142508888,-1203997696,1344146854,199374591,199243519,16777114,1958742784,175570696,-352300824,209125187,147354,1996443648,-26102,-6684672,-956301057,353286,-2095650048,1946158718,1778829064,-335544571,175570711,-352096536,209125135,-16091393,1996425334,15656966,-1962742397,1297948645,1426065610,-326898549,-401698810,-526317136,-1509545205,167289613,722199201,-1559386106,-256374278,-11526647,-16123850,-1593181642,103484824,100863402,-1588589600,103484836,100863404,-1706030110,458,-1559386463,-1465841172,166634253,1342181560,62106,2109737728,1778829064,-352321019,1161331,-26032,-1073020928,113729661,66922,243414783,70042,-62486272,291518207,151194,-28931840,-231681,-15882698,-1592940490,103484842]},{"sector":12,"data":[-1588589146,103484844,-11530840,28900982,-1202696192,-860225504,-1706012160,65535,-1694599425,340,-1694730497,65535,113706731,1386,-1034033781,-1957363710,116163564,425603,1996425333,-401698808,-1497890466,-1588584947,104402042,92081120,-351543135,209363203,209494352,199362105,-492763779,-1593578741,-1588589444,104402042,92146656,-351543135,209363203,2090946624,-502908660,-1593475573,65735650,1074560161,-26032,1996423168,-401698808,2122514690,57999364,-1593773079,103484842,-1230828122,229417227,229115435,-1207191389,1344146566,504211128,34445904,-659030016,-1202708976,1344146854,16777114,196518144,-1588576192,1077939128,112720,-1070903216,-6664112,-1560280833,-1073016480,-1779891339,1778829056,-251,-6681994,1342177535,16777114,-2110324992,39492110,1183383552,1614217212,-26095,1183383552,28856574,-11513856,-16009674,-16009162,922745974,922684838,548933032,13416960,-1281732526,-16777212,-1070859146,-26032,-1706033152,749,-231681,-15882698,-15882186,-16009674,-1207191498,-256245727,-1706012160,839,-1694599425,708,-1694730497,332,1996425451,-401698808,-443875322,574045,1167087646,518818645,-326903666,108461828,180107007,247450,-62486272,1074636449,-1442432192,-1593082099,1077939624,229377595,1996430718,-1506345210,-1472790771,229286157,228984363,229417296,229115435,-16741655]},{"sector":13,"data":[922682998,922684838,-1432285784,-1509545203,28856333,1236815872,5945856,1855606866,-16777213,922682998,-1465840218,-1202700275,-1588592639,103484844,1212681640,4831312,1375754938,60201552,1996423168,229286150,-1465823160,-1202700275,-1588592639,103484844,1212681640,4831312,1375754938,62626384,1996423168,-1506345210,229417229,-1432268728,-1509545203,28856333,1236815872,5945856,-6664110,-16776961,1996424822,-25860,-310181888,535137026,46812509,-326413056,1461775491,166764886,209323577,2057373054,-1593578740,1183386096,167027198,2113816121,-28931323,-190774293,-28931831,956953249,2114747398,209494277,-224328725,-129595127,956954273,92141638,-336050549,167158019,-1577564535,1177094648,167420414,-1946663383,103546438,1183386092,-129594374,166594091,-1913239927,1343679558,-100609,1183578230,-1241119746,1183535115,-1207565320,-929411061,-16777216,-1710325194,1148,-1554807,-1710137290,261,-768375,244319350,-111128,1996424310,-294191124,737166987,-1957630906,1177285190,1996443886,112884,548950096,13416960,-1969598382,-2097151995,33909310,1183521396,-364475928,-1996208501,-1499339194,-465139443,-1995593567,384557638,-1980479861,1183574598,-431584792,31737543,-498678016,2122514433,92012794,-335919477,-96040187,104585463,58461110,-1962848023,-654838202,2122576011,92012790,-336181621,1002867458,2081142790,20179203,16154243]},{"sector":14,"data":[2122540148,75366646,132890667,66471563,-1995720698,1996487750,-1506344986,-1476001011,922701837,2122517430,92012790,-336181621,1002867458,2097920006,-159481073,-1962574848,132904518,65783435,1342945441,-1411329,1183573110,-62520350,2144336,1375784122,21273168,2122514432,57999610,-1962874391,-654838202,2122576011,92012790,-336181621,1002867458,1963702278,13428995,16416387,-1070922626,1183516651,-1241119750,-532248309,16154243,1183516030,721611766,-62486080,-134592885,-488488,1183573622,-1509555232,1183535117,-1476000772,2122534925,92012794,-335919477,1002932994,2097919494,-92372209,-1962574848,132905542,65783691,1342944929,16154243,1183516028,-1962742794,-1207551546,-2095677941,2080437886,-163149051,-963968277,-1197356917,-339662069,1354771202,-1947568385,1174660166,1183535328,-62520350,-14881968,922740342,922684838,922684840,922684342,1996426168,-461963286,-1193117953,-860225504,-1706012160,1864,504211128,-330920624,-23441386,-16777215,244319350,-245272,-1550125962,-16777210,144369782,-1962934264,-324796858,-129594615,1577709219,1575324511,503317186,1430622296,-1910575989,283935704,1681818454,57999365,-1878949399,57075726,722315937,-1995594234,-1398670778,-1475990771,-163149555,-1995594079,-1465782202,-62486259,291518207,468890,-129595136,1090143883,1183535168,1346388214,1342177720,1354771280,36149840,1183383552,1958743028,-509980633]},{"sector":15,"data":[-1996488696,-1202654650,1347420161,-362753,1996486262,-1202695944,-860225504,-1706012160,1901,1324775051,-1191676161,1347420161,1459255039,1358460671,1342177976,-1174354248,1347551368,496026,-126419200,1342177720,1342177976,1459255039,-1191676161,1347420161,-1174354248,1347551368,506266,-92894464,-126419122,1342177720,1996445264,-126418954,1342177976,1342177720,-1174354248,1347551368,514714,-126419200,1342177976,1342177720,-159973546,1358460671,13023312,1375766714,134257232,2122514432,812908788,-1191676161,1347420161,-362753,1996486262,-1202695950,-1145437658,-1706012160,2112,-1695385857,2128,-1695254785,65535,-1878624513,-88283122,-16353537,-15882698,-15882186,-16009674,-16009162,28899446,-1202696192,-860225504,-1706012160,2316,-1878624513,-91428850,-1694992641,2486,49120094,1562371467,182861,1167087646,518818645,-326903666,1681818386,57999365,-1878965271,29550606,856063619,1187457653,-1593835016,103484842,1183387046,-163133444,1187446785,-956300814,128070,722316449,-1995593722,686551110,33310407,229417216,229115435,-940030327,128582,32655047,229286144,228984363,-940292471,127046,-775804007,-297367048,291518207,653722,-96040704,-16743447,1996487286,-227082250,-231681,1996486774,-193527814,-1192200449,1723465798,-1706012160,2353,-362753,1996485750,-59310096,-493825,1996487286,-227082250]},{"sector":16,"data":[-1174387016,1347551334,611994,-92864768,-624897,1996485238,-126418948,-362753,1996485750,4634864,1375758010,161913424,2122514432,141898502,-899329,116125774,-637185,1325397070,-293698578,-385647616,1996488561,-401698808,1996486998,-1506345208,-1472790771,-1237909747,-1204355317,-92864757,1342177720,2144336,1375784122,170367568,1996423168,-401698808,1996486950,170892026,-310181888,535137026,80366941,-1873273344,-326412987,-2082959842,244319468,-16750616,244319862,-460312,-1497889162,-1706025459,65535,-1878624513,-119216114,291518207,290970,-62486272,112720,-1432268720,-1475990771,-1398714355,-1475990771,1996443661,112892,163074128,5618176,-2087038894,-16777214,-1130693514,-2097151998,-443874579,-900899553,1478361090,-1957345904,-661774612,-2096567165,355390,-840367236,91005184,1822677239,282638341,-1497870306,-1706025459,1675,243414783,687514,-129595136,199505663,690586,-96040704,291518207,458138,-62486272,737834751,-11513664,-15886282,-15883210,1347483766,-1174396744,1347551436,710042,-59310336,1342177720,-1237909680,-1204355317,-126419189,228996863,229127935,-1174396744,1347551436,425114,-126419200,-1705983957,654,43293264,1996423168,-1506344968,-1472790771,-1237909747,-1204355317,2209803,1375793338,45390416,1996423168,186030844,1996423168,186555130,1996423168,110861048,-310181888,535137026]},{"sector":17,"data":[298536285,-587136256,1778385664,1157628672,-1895760126,268436224,318832392,1895826176,453050122,100729600,486539531,-1392442624,570425610,-436141312,754974986,436273920,805306631,1191183104,1241579264,956367616,771752704,234947328,1140850955,-536804608,1459618058,1728119552,1207960324,1744896768,1241514762,620823296,1275069184,-402586880,1375732489,1107297024,2097217280,1937009920,1167087646,518818645,2122569870,1282670598,-1710590209,65535,-16091393,-15959498,-1710457802,65535,276087307,-16091393,-15959498,722238518,317411520,-16091393,-15959498,-1207141322,-4521985,-1706012160,65535,-1710590209,65535,-1962742397,1297948645,264394,5243139,1638401,2359555,5439489,5767171,8519935,1310723,8585471,1167087646,518818645,-326903666,-2110324988,-26098,1183383552,142509052,1343583232,209336063,209467135,16777114,228369152,228464265,185441441,1947049478,175570708,1342177720,22938,-59310336,-352321096,175570706,1342181560,26010,-59310336,1342181560,16777114,142508800,-11635712,922684022,922684538,-1667167108,-1643771123,721777677,116103616,-1157627976,1347551487,47002,-59310336,209336063,209467135,185441441,1947049478,-1715459323,-4716821,16759551,-6664110,-352321281,175570752,291649279,291780351,59802,175570688,209336063,209467135,63898,-59310336,291649279,291780351]}],[{"sector":1,"data":[16777114,-59310336,209336063,209467135,16777114,-59310336,16777114,49120000,1562371467,118016589,1157694208,67109120,301990656,453050112,-654245120,318767360,-922680576,335544576,-1862204672,520093952,16843520,1140850945,687932160,1392509184,1937009920,1167087646,518818645,-326903666,175570698,1342179000,43674,175570688,1342179256,220314,1654280192,-2097151997,559678,166265727,142508801,-11504640,922684022,922684296,1352272778,-16777215,922684022,922684302,1620708240,-1207959551,787939330,-2002580600,178187,193605367,-1207203165,787939330,-1901917298,178187,193998583,-955543389,820230,-15602944,-1430779274,-11526642,-1710455754,298,425603,1996428404,899082,55614032,1996423168,50436618,2057371648,-1981755124,2090989126,-1981755124,-2002651066,-1912208629,-1037330165,1317796049,-1983370250,-1969095602,-1878654197,-1037330165,1317796049,-1983370248,1183578702,-163184132,1174520203,-2079930376,-16777204,-16021450,-401896906,-2001206903,1183666187,-1900523274,112742411,-1410838528,175570688,504277688,-2076770480,-26100,2122514432,1853095942,-1710590209,809,2122540267,544538632,-16091393,-15998922,-1710497226,368,-16091393,-15637962,-1710136266,384,-16091393,-15998922,-1710497226,785,-16091393,-15959498,-1710457802,801,425603,-526313356,193504011,-1559502175,2057374602,193897228]},{"sector":2,"data":[-1559462751,2122517392,359923718,143277699,-955744768,559622,-955847936,17336838,49120000,1562371467,576077,-2081649835,1448548076,294531,1586174325,-13107448,-1293417865,106859264,2013214719,11003906,-1962894103,931858526,-1962254709,63408959,-120504122,-1946532215,1586168391,38208264,-1980182208,1586232390,-1995994362,-972821946,-1980182208,1586229830,38243080,50749067,-784334265,-196703752,-1947580789,65130958,1086784449,-772222656,-330921480,-1962385781,-523173305,51011211,1586168391,38208262,-120504256,1183447249,175570926,1358579341,1357661837,1208239755,-11474864,1357661837,1358055053,-1962510593,1346896966,1593785832,1575324511,1426065602,-1957237621,-784333242,105286136,1074022027,1183447249,-2076278012,443809804,209991307,-422378831,956712587,1963894404,71731977,245924921,1048650356,8457348,117376125,915082372,45157508,1183573715,-1501263610,71731982,245925001,1575324510,503317698,1430622296,-1910575989,108462040,16777114,108461824,193476351,193607423,225946,108461824,193869567,194000639,230042,108461824,16777114,-1979267328,-2097151992,-443874579,-900899553,1478361090,-1957345904,-661774612,-1207535873,-1706033146,65535,-1207535873,-1706033145,65535,-26032,1996423168,-2009661690,-1976107253,-26101,1996423168,-1908998394,-1875443957,-26101,-310181888,535137026,46812509,16973832,65557,16973828]},{"sector":3,"data":[65623,16973843,65607,16973844,65688,16973861,65575,16973869,65569,196695,16711992,196741,16711858,1953300614,1167087646,518818645,-326903666,-2091493622,1946159230,1095719,-26032,-1073020928,113708669,61410268,199100103,216727720,198969031,113706826,12061662,722238113,-1995349498,-1072956346,-654899843,-1577302391,103484540,1183388004,2109737978,-1982269691,117439046,1048774796,2130839692,142508818,-2096335616,2130902142,-92372218,-955875838,560134,-1942060288,57933832,-16735511,-1710361546,160,-506231,-1710325194,65535,1358317193,16777114,-159973632,-1962116447,-787410418,1354836985,-1962115935,-787392498,1354836985,286406399,290993919,737703679,-11513664,-15999434,-1710498762,285,-1695123713,65535,209467019,-787392351,-1947194376,-1593017794,-120516334,1996486699,-11118838,-15658442,-15640522,1448605302,-1174396744,1347551436,16777114,-159973632,77210,-126419200,16777114,-2090902016,-443874579,-900899553,50333192,50338305,50358784,-16739328,50338560,16834561,50340352,16852225,50349056,-16717824,50364928,-16733952,1828750080,1167087646,518818645,-326903666,108954374,-385649408,113705198,2180,143132359,45613056,414732288,143041280,-773795431,-1706011950,73,-1207199581,-1202716670,-2103246592,1347590408,16777114,282501888,194526851,184841216]},{"sector":4,"data":[-2093713984,759870,922683764,2006584216,-2097152000,1103422,922683764,1520046294,-956301311,558598,-2113485056,-956301304,246278,-948573440,17023494,-1741226240,45718027,1183383552,-61437446,737828548,126428864,38242598,194524927,186522,175570688,110234,209125120,-1202667477,-11534334,-1710334410,449,-1559502687,-593293042,199401738,-1559162717,922684126,103485710,-1706029472,485,-1710459137,493,-1710590209,457,-1962742397,1297948645,503318730,1430622296,-1910575989,82609112,63061635,-11373568,-1710325194,65535,737953417,1996443840,-401698564,1996423362,-25860,113704960,962,-1710852353,401,104090,-1741226240,23304715,922681344,-6680362,721420543,142910400,-1559721821,-2036135806,49120008,1562371467,182861,1167087646,518818645,-326903666,108461828,16777114,-26112,1048772608,1946158018,108461904,16777114,-62486272,34904656,1996423168,1354771206,1342177976,241055487,16777114,-59310336,152474,108461824,-1694730497,65535,286144255,722538657,1343119366,16777114,108461824,16777114,49120000,1562371467,182861,1167087646,518818645,-326903666,-1036090620,1198784515,-1710852353,65535,143146627,-2093974016,1946159230,142016265,-402229505,1187448183,-352321284,142016274,-16353537,-1070859146,38791248,-1577302273,1178142856,-1671940,-6683018,-2097151745]},{"sector":5,"data":[-443874579,-900899553,-1957363708,82609132,-2009169066,108331016,143132359,-2002714623,104546312,628885638,194524927,143001219,143040792,-773795431,-1202695470,-1706033150,786,91602955,143011459,143171864,104546368,746522758,143132415,194524927,16777114,-62486272,-1946265975,-787969994,-60898074,-29324506,-16742106,-1710516170,65535,1575324510,-326412861,1443425411,143146627,-955878144,17336326,142778624,142870073,922690172,109056214,-1593767805,1385760898,178256,-26032,-1073020928,780207733,16779394,1074300065,142739003,117394815,922683524,1117391768,-1996488701,1451883590,-701038594,62691856,1183383552,-94991880,-1577290044,-523171704,-1960382461,83830300,-1963428156,-2010774458,-701038848,57907728,922681344,-208008296,1577058307,-1017256565,1167087646,518818645,-326903666,1996445192,21797390,1996423168,12425740,-823590912,106873856,637945599,1183319946,1963474168,-2009169051,58654728,-16730903,-1710516170,1183,-1980086647,915143766,-422508408,653942468,958791819,108396096,143134463,1589907691,-2009691142,652661000,251595007,922683524,-1248195688,-16777216,1996426870,-2009169140,108920840,1208518817,-1070923029,112720,2122339819,678759928,-1577170968,245566432,143171857,2016343880,-502922484,286302987,286144255,241174059,15768144,736821248,-1728559478,-956829557,527761376,-23992234,-16595837,1996426870]},{"sector":6,"data":[143171852,1048793160,1968638080,1354771368,-16766744,2122517070,58458122,-55575,10095734,-16777215,-124121482,1577058304,-1962742397,1297948645,1426066122,-326898549,922703412,-1365636200,-1996488700,1451883078,-701038596,10131984,1183383552,-363427352,-150583669,51148846,722132486,-1995546618,1988886086,-991506170,-1960379810,-398064896,-1981131125,1451879494,9119470,37763366,1996435060,1996444168,1217079020,1372072706,16777114,-465139456,-1578740087,-523170398,1183576203,-1983511580,-1031015354,149669379,16008903,209232128,-2081405303,1962935422,-2143386866,125065224,228736643,-2095549440,1946159742,142016274,738084491,1343070726,209204991,-2096978712,1409532990,-593424523,-532248310,66340491,-351609850,-1002536141,427119875,-1712044405,-120470997,-593366901,-1983501558,-593371066,-339344630,-1002536173,259347971,722132129,1183446086,182231520,-2081274231,1460174910,1996425333,178184,1996424939,112648,101685840,1048772608,1962937762,24832259,142622339,-2094566057,1946215550,142016289,-1948223745,103546438,-11530846,1996485750,6469872,1375797178,-26032,1996423168,-26104,1183383552,-128546314,-1710721281,65535,-1948023,28838006,-6664192,-1962934017,-523172282,-1946532349,1183448150,-564753956,-1962379521,1346953286,-100609,1996484214,-597768980,38243110,1342647078,422810,105286400,1174659281,-61436934,-1982314871,1996479062]},{"sector":7,"data":[-532247800,1996443712,-294191106,-991136001,-1960388514,723911239,-1516613625,-1962934266,-523172282,-1946532349,1183448150,-698971692,-16222465,1183572086,-11517698,1996484214,-731986708,38243110,1342647078,448410,105286400,1174659281,-61436934,-1982839159,1996477014,-529072376,1224623755,-294191280,-991136001,-1960390562,723911239,-6664185,-16776961,1183516790,-128545802,-755511049,-6664110,-1962934017,-523172282,-1946532349,1183448150,-833189428,-16222465,1996480630,-294191106,-991136001,-1960391586,723911239,1721389063,-16777209,1996425334,-159973384,453530,142016256,-1696434433,1458,1183527147,65065222,1452014150,-599356932,-2206071,1996425334,-25755680,-1149185,1589963894,1200301788,120268290,104962640,1183514624,286172146,-150583669,51148846,-1559502330,922685712,103485710,-1706029472,1082,194524927,498330,-701038848,148806160,-1956773888,146955749,-326413056,-16061309,1183647350,-1706027272,65535,243414783,523930,-163149568,721712895,-11513664,-15886282,-15883210,1347483254,-1174396744,1347551436,533914,-159973632,535962,1575324416,1426064578,-326898549,-2110324990,161454606,1183383552,142016510,-11485141,922682998,1996426648,-25755900,108461904,-1174396744,1347551436,16777114,-25755904,673690,1575324416,503318210,1430622296,-1910575989,250381272,-230242474,113704960,2180,143132359,45613056]},{"sector":8,"data":[414732288,143041280,-773795431,-1706011950,2173,-1207199581,-1202716670,-2103246592,1347590408,13466,282501888,194526851,184841216,-2094041664,759870,922683764,-1415967848,-2097151992,1103422,922683764,1738150102,-956301312,558598,-2113485056,-385875960,922681487,-426112104,-1996488696,1451883078,-94452484,-1993949141,1200170503,-1741226238,153917963,1996423168,159488518,1183383552,-128546314,1589914859,-163119114,-2012771802,-1073023930,171714164,1508377973,-1978405895,-1952910266,-523831312,1443329279,-2080782616,1191117508,-226590222,-897835200,-1710852353,874,956859041,2114487302,142910211,1074301089,143001147,-2036267138,-2002565112,-310157816,535137026,46812509,-1873273344,-326412987,-2116514274,1442889964,194526851,-385649408,1048773899,1962938582,84011267,194524927,626842,-196704000,-633207,-1710172618,819,-1981921655,922738774,681185632,-1996488703,-1705969594,918,16402119,-230242560,1187446784,-352321306,-431584394,1174659281,-162100236,-11499895,-11364727,-11493692,641174310,1946318649,-126419145,-1948367221,-972824490,-1960423342,-970259897,83466832,-2037841920,-1769341096,-1566441638,-1948200691,1485212656,-1983511553,-1031017402,149669379,15484615,209232128,31999625,1183576646,-330941958,1183516286,-96040468,-1578744065,1178142856,-8225562,2073753718,-16777212,1050343542,-2097151999,-2096956858,-1593642426,1178144152]},{"sector":9,"data":[-1593278470,1178144164,-1590395150,1183387032,228893178,-899447,-2037578122,-1202651300,-1202716544,726663204,-6664000,503316735,280148048,817385502,-6664192,-1593835265,1178143670,-1593281030,1178143672,-1958841102,1078000198,-230257840,-1202700224,1347420161,1347469355,16777114,-364476160,292864011,291518207,16777114,-364475648,-351182685,196518156,-1577433463,1183386552,1614217202,227777041,1183383552,-1466281736,-16777207,-1070860170,-26032,-1706033152,65535,737703679,-1957670720,1078000198,-230257840,-1202700224,-256245727,-1706012160,1514,-1694992641,1522,-1980873079,1187508310,-956300548,58950,-1962797847,-523114938,-1946925565,-2037778858,-1769341104,-1631256750,-1960378544,-565802185,65033867,-498693690,652498569,1946318649,-126419153,-1960423342,-970259897,166894160,-2037841920,-1769341096,-1566441638,-1948200691,1485212656,-1983511553,-1031017402,149669379,15484615,209232128,-2081929591,1409532990,-2033776523,196436,1048782827,1968505796,-96040179,-1712568789,-120470997,1048776171,1968571332,-96040180,1089226283,1418103104,-1572961281,57999373,-16699415,28899446,882528256,-16777209,1996486774,-294191120,847258,-431584512,1174659281,-162100236,-11499895,-11364727,-1946650881,1224692870,-59310256,-1804545,-1631264138,-1960378544,723911239,1838829575,-1962934260,-523114938,-1946925565,-2037778858,-1769341108,1996488526,1418103800,-11517697]},{"sector":10,"data":[1996487798,-495517724,-11755836,38243110,1342647078,828314,-431584512,1174659281,-162100236,-12024183,-11889015,-493825,-1946200906,1346960454,-1804545,-1631264138,-1960378552,723911239,-644198393,-1962934260,-523114938,-1946925565,-2037778858,-1769341116,1996488518,1421279224,-62485505,1996443712,-495517724,-12280124,38243110,1342647078,871066,-126419200,-1947318645,-789057450,1347605239,469402,-431584512,1174659281,-162100236,-12548471,-12413303,-493825,-43850,1996487798,-495517724,-12542268,1183524843,65065446,1452012614,1350994422,1385597439,-126418945,-11225345,-231681,1996481654,1352582370,1200301823,120268290,119249488,1191116800,-398029850,-1577302527,1178142856,-385647130,1996488161,171940600,1996423168,242260728,922681344,-2137386794,-16777203,-1710516170,1937,90979971,-385647360,922681583,-1600516478,-1996488691,-43386,-1710137290,1981,-506231,-1516632458,-1996488703,-11477946,-15882698,-15882186,-16009674,-16009162,-43338,-15882698,-1207064522,-860225504,-1706012160,3669,-1543879029,1183517622,196649970,51226273,722315782,-1727285754,-120470997,-1592940893,100863400,103484844,731450296,-1543974462,-1499394648,-1241119987,229286667,51226785,-1559513082,-2034758228,-1202708980,1344146854,16777114,-596181248,228996863,229127935,196491007,196622079,-1191676161,1347420161,-1174396744,1347551436,516506]},{"sector":11,"data":[-596181248,16777114,108461824,-1696827649,468,-1694992641,3705,-11094273,518554,-310157824,535137026,46812509,196641,16715110,196749,16714483,16973966,68595,196610,16714445,16973843,68609,196617,16714474,16973851,199315,16973825,133224,16973839,131736,16973840,133275,16973841,133315,16973842,134519,16973843,68388,16973853,68663,16973857,69080,196642,16714371,16973884,68356,16973869,68285,16973872,198580,16973857,196816,16973987,196945,16973988,198536,16973989,197518,16973990,197763,196775,16715357,16973896,68974,16973892,67072,16973900,200107,16973890,200296,16973892,68350,16973911,68396,16973914,200237,16973898,68478,1953300571,-2115204267,-1962894100,212012102,280514577,-1706025472,65535,-15816541,-1206842314,1344143382,13978,63742720,-1202667477,1385791234,-26032,-928841728,-6664189,-1711275777,65535,-16222465,-6683018,-1962934017,1175127622,-1206881272,1344144462,-16222465,-6683018,-1207959297,1344146114,16777114,-28931840,1685372939,243416707,-16157696,-1710325194,152,199507587,-16157696,-1710496714,168,179977859,-16157696,-1710573002,65535,16777114,204930816,-26095,20774912,-1710918400,65535]},{"sector":12,"data":[-1202667477,1344146866,504410808,3192912,-26032,1183514624,40888830,687747,922688373,-6680308,184549631,-1207011904,1344146114,1342177720,70810,-26112,-1073020928,-1028125067,-1202708982,-1706033151,65535,-10189171,716722198,-1706025458,103,184960651,158599238,637951684,1962950528,1686539533,-1202710785,1344146148,-2037576469,1343684452,-16222465,-6683018,-1207959297,1344145420,-10189171,-1070903274,1375784122,-1202696112,1347420260,1347469355,286013183,-6664112,-1996488449,-6620602,-2097151745,1962936958,204930849,-26095,-1073020928,837354356,180533249,28856350,-40218624,-385875968,1996423456,211073034,178256,30054992,1996423168,243709962,178256,31103568,1996423168,228636682,178256,32152144,1996423168,234141706,178256,33200720,1996423168,180140042,178256,34249296,1996423168,208582666,178256,35297872,1996423168,240302090,178256,-26032,1996423168,234403850,3323984,37395024,1996423168,200456202,5290064,38443600,1996423168,181975050,178256,39492176,1996423168,198883338,178256,40540752,1996423168,234272778,178256,41589328,1996423168,239908874,178256,42637904,1996423168,196392970,178256,43686480,1996423168,291289098,178256,44735056,1996423168,171227146,178256,45783632,1996423168,286439434,178256,29006416,1996423168,291026954]},{"sector":13,"data":[178256,36346448,-6684672,-1711275777,65535,16777114,-92864768,-1710983425,65535,-1694861569,65535,385238669,-26032,1183514624,-11517706,-6621066,-352321281,-92864719,245905151,384059021,-26032,-1073020928,1183652981,-397404444,1183645743,-1706027292,65535,384059021,-26032,1183645696,726669028,1347440832,16777114,1975520000,-1950340164,180510181,-326413056,2050917206,779354117,637820612,909719435,108266874,92026425,1589910645,2139170308,1946222850,2139170312,1962999810,73319433,637892769,-1956771959,79846885,-1864856576,-326412987,1473809950,106349830,-1274380604,1931595094,-18426,865076203,-2090924096,-443874579,-900899553,-661913592,-1957345904,-661774612,139904286,-1274657141,1931595069,-18429,49120031,1562371467,445005,1167120524,518818645,-987834226,1317734486,-851659770,-1207733471,-2095054849,-443874579,-900899553,-661913594,-1957345904,-661774612,-1274650997,1931595070,-18426,865076203,49120192,1562371467,182861,1167120524,518818645,1455806606,-851332090,-1207536863,65798143,-2084555888,-443874579,-900899553,-661913596,-1957345904,-661774612,-1274650997,1931595077,-18429,-1962742397,1297948645,-1946156342,1430622424,-1910575989,1586175704,139904268,-1274655093,1931595071,-18429,49120031,1562371467,576077,1167120524,518818645,-1960912754,1455754334,105810696,567099572,-4717709,-310173697]},{"sector":14,"data":[535137026,147475805,-1864856576,-326412987,114855454,-1005822325,-1047787434,-1274657141,1931595074,-18428,-310179943,535137026,147475805,-1864856576,-326412987,-1260876258,69324057,-310142911,535137026,516640093,1430622296,-1910575989,142016472,-16353537,1996426358,48621578,-1962742397,1297948645,503318730,1430622296,-1910575989,142016472,-16353537,1996426358,35710986,-1962742397,1297948645,2250,0,1942235995,920188696,656953,959844215,1979714566,212022788,-2061568,-1140870941,-1329856848,-1705993987,65535,16777114,1958742784,-1643722965,-1996488696,1460178958,1381172822,855713768,-6664000,1459618047,16777114,1958742784,-96147449,27322448,-850591816,-1957313759,-18196,-1957313699,-18196,-1957313699,1354771436,-1710983425,1527,-1017256565,-1192457387,-1957691328,1861682246,781864966,-1962934266,1438866917,1996483723,108461828,1342193848,16777114,1575324416,-326412861,-1710983425,1597,-1017256565,736922453,1996443840,-26108,-443875328,-1957313699,74907628,16777114,1575324416,-326412861,-1710983425,1702,-1017256565,-2081649835,-1070923028,71732048,-1706012007,65535,-1929492855,735087578,1575324608,-326412861,-16585597,-6683018,-1996488449,-628294074,-1070870389,-1017256565,-1275051,-6683018,-1962934017,1438866917,1996483723,-26108,-1073020928,28837236,721611520,1575324608,-326412861,1347469355,16777114]},{"sector":15,"data":[-402345728,-443874901,-289684643,-184844024,1393062664,1130043391,-1007490237,-1207958341,567100416,-1024062862,-2147126144,1074315919,-1007912629,567095476,-1022843741,144574094,741772070,889239552,512303565,109840530,521013396,-1171980104,567084416,-468808906,908256008,149292741,-617358708,-501285066,-385649912,-986251703,-1945572858,244698,-501285066,-1021372920,855643321,-1031276837,74711304,567099060,-1007492541,-387151019,1996423504,18147332,-1017256565,1475119957,-13413546,184960651,-149783104,72780759,-621291273,-1996488675,1451820614,172395268,310231051,1452005367,-136775928,7642,-1995815287,-1073018794,1317738101,105286408,-235417037,1183570059,-1947076860,-1875055661,1317787787,106334984,-788248949,-774254101,198758890,-134973989,871402481,-11513134,1996425846,14477320,1996903995,990409223,58065990,855764611,197561298,-150506241,-2082932774,1583022298,146955615,-326413056,-617392553,184960651,-149783104,72780755,-621291273,-1996488675,1451820614,172395268,310231051,1452004343,-136775928,7642,-1995815287,1317734486,-1948125436,138841080,-503844725,-141100541,-134019482,-963913845,125098763,-654845193,1577114243,146955615,-470994432,-773140218,-1006968104,-387151019,1021837416,1961102077,75399178,-972786432,519963718,143791813,-853213000,243998497,132319460,-16776517,-1962352098,1286865990,-189062707,-184844024,1393062664,1130043391]},{"sector":16,"data":[-1007490237,1458342741,-1962260853,-503905202,1183570059,-135230712,-1764097055,50751223,-1949070376,-1034068282,-189071352,-151289592,1393062664,1130043391,-1007490237,16973867,197445,196716,16711748,196624,16711872,16973841,197420,196721,16711853,16973842,197430,196722,16711816,196627,16712067,196628,16711938,196629,16711915,196630,16712082,196631,16712409,196632,16712404,16973849,132488,196609,16712399,16973850,197356,16973948,132576,16973829,132621,16973830,132636,16973831,196822,16973825,132684,16973834,198065,16973829,132708,16973839,132735,16973841,132759,16973844,197366,16973841,132801,16973849,132523,16973854,131254,16973872,196987,16973865,197348,16973866,196645,16973997,131786,16973878,131185,16973879,131495,16973880,196628,16974001,197398,16974002,196671,16973893,197379,16973894,131151,16973903,131364,16973912,131411,16973913,132493,1953300571,0,5,0,0,1701012321,1869480044,1818324338,1969422336,1918987634,1660970353,1634497141,7304051,1953658211,7632997,1752331619,6581857,1886549347,1818455653,1920295680,1935766117,1969422437,1852402802,1969422437,1970430578,1660971123,1681093237]},{"sector":17,"data":[1920295680,1852399984,1969422452,1819308914,1660972649,1886614133,7954802,1668445539,1936945010,-1114112,-524355,-8650786,-4325393,-9,-1,-1,-1,-3342337,-13369498,-3342439,-13369498,2031513,3145767,4194360,5374025,6488154,7471209,8650875,0,0,0,0,-1,-1,-1,-1,34952,8738,34952,8738,-32897,-2057,-32897,-2057,572688520,572688520,572688520,572688520,-34953,-8739,-34953,-8739,-1431677611,-1431677611,-1431677611,-1431677611,-572688521,-572688521,-572688521,-572688521,43690,43690,43690,43690,-43691,-43691,-43691,-43691,858993459,858993459,858993459,858993459,65535,65535,65535,65535,286361736,1145315874,286361736,1145315874,-286361737,-1145315875,-286361737,-1145315875,1061109567,1061109567,1061109567,1061109567,-65279,-1,-65536,-1,-808497586,-454755076,1061103399,1920136179,-50561410,-202114567,-808458265,1061134239,-269516929,-538968579,-134742274,-67387457,-52429,-49345,-52429,-49345,2004287488,2004318071,2004287488,2004318071,1061093376,1061109567,1061109567,1061109567,-202178560,-202116109,1061093376,1061109567,-505285645,505334988,2122202943,-101057284,-49345,-1,-49345,-1]}]],[[{"sector":1,"data":[-65536,960068732,-943221869,-4113,-1616953537,-12337,-202114567,-6169,-2021142577,-52429,-50528257,859011192,-1718010820,-1717976125,2088516668,2088566012,2071723260,-808470601,-33688589,-16843010,-1953820913,-1195844131,-387420048,-1903239715,1044266558,-1044276068,-471604253,471648713,-909566948,-471604253,-1667448383,1044266558,-538972177,1431677867,-33751040,-134743045,1987479688,1886417008,1734838408,252645135,-134742017,-707400725,-707417430,-134747157,-134744073,-134744073,-134744073,-134744073,1852994915,7105653,1886152008,1698955264,1701013878,1767985152,1140880494,1667855973,1767309413,2003788910,1648427123,1349808751,1953393010,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,62521344,-65536,262144,24,84]},{"sector":2,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65536,0,0,0,1,0,0,-65536,0,0,0,0,0,0,589829,327685,327685,131074,-65534,-1,196607,131074,196611,-131069,-65538,262142,196611,262148,-196604,-131075,327677,262148,327685,-262139,-196612,393212,327685,65534,65534,131072,131072,2,2,-131072,-131072,65534,-3,131069,262143,196609,65539,-65533,-131070,-65538,-3,-4,131068,327679,262145,65540,-65532,-196606,-131074,-4,-65541,196603,393214,327682,131077,-131067,-262141]},{"sector":3,"data":[-196611,-65541,-65536,131072,131073,-65535,-65536,-131072,196608,196609,-131071,-131072,-196608,262144,262145,-196607,-196608,-262144,327680,327681,-262143,-262144,65534,131070,65537,1,65534,65533,131069,65538,2,65533,65532,131068,65539,3,65532,65531,131067,65540,4,65531,-2,131073,65538,-65537,-2,-65539,196610,131075,-131074,-65539,-131076,262147,196612,-196611,-131076,-196613,327684,262149,-262148,-196613,196606,-65535,-131072,131069,196606,262141,-131070,-196607,196604,262141,327676,-196605,-262142,262139,327676,393211,-262140,-327677,327674,393211,105645516,117180076,127665996,103286200,115869336,126355256,100926884,114558596,125044516,98567568,113247856,123733776,0,1886611812,7954796,1953784144,544109157,1953064005,774504448,5264205,1397587548,1412300880,20557,1852399952,1631780980,1935767150,1632632832,1953785196,1632632933,1768179060,1868169332,1968139631,1868169332,1850305903,0,1294871132,20563,1701603654,1852141647,1632632832,1299476073,1819632751,1766195301,1632855404,1933665654,1347636480]},{"sector":4,"data":[0,65535,1967259648,1852798068,1953841664,7237492,87,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2122252288,65921,0,0,0,0,0,0,0,0,0,115343360,117442296,1509196,62259203,5570815,61997059,5636351,61734915,5701887,61472771,5767423,61210627,5832959,60948483,5898495,60686339,5964031,60424195,6029567,60162051,6095103,59899907,6160639,59637763,6226175,59375619,6291711,59113475,6357247,58851331,6422783,58589187,6488319,58327043,6553855,58064899,6619391,57802755,6684927,57540611,6750463,57278467,6815999,57016323,6881535,56754179,6947071,56492035,7012607,2004055149,1802398835,131331,2097152,262176,-65536,-2097153,-3145729,-3670017,-3932161,-4063233,-4128769,2143354879,1069613055,532742143,264306687,130088959,62980095,29425663,12648447,12648447,12648319,264306495,264306687,130088959,130285567,63438847,-2083520513,-2116026369,-1040187393,-1056964609,-520093697,-520093697,-251658369,-251658369,-129,-1,65535,0,0,0,0,524288,786432,917504,983040]},{"sector":5,"data":[-2146500608,-1072758784,-535887872,-267452416,-133234688,-66125824,-32571392,-1072758784,-1072758784,-536084480,1611137024,1879048192,805306368,939524096,402653184,469762048,201326592,234881024,100663296,117440512,0,0,0,1953300480,259,2097183,262176,-65536,-1,-1,-57346,-63492,-64520,-65040,-65040,-65056,-65088,-64640,-16840960,-50393344,-117489920,-251691264,-520093952,-1056964863,-2130706685,16776967,16711439,16580383,16318271,16318335,-1040973825,-1007157249,-941096961,267386879,1070399487,-3080193,-8126465,-7340033,-12582913,65535,0,0,0,49153,61443,63495,30720,14336,4111,32799,32831,32895,16777471,50331902,117440764,251658488,520093936,1056964832,2130706624,-16777088,-33488896,469762048,-670892032,-804847616,-1073283072,983040,786432,1048576,0,0,0,1953300480,983299,2097167,262176,-50397184,-50331649,-251658241,-251658433,-1056964801,-1056964849,16776975,16776963,16580355,16580352,15793920,15744768,12599040,12586752,3840,768,12583680,12586752,15732480,15744768,16531200,16580352,16776960,16776963,-1056964861,-1056964849,-251658481,-251658433,-50331841,-50331649,-1,-1,50397183]},{"sector":6,"data":[50331648,201326592,201326784,805306560,805306416,-1073741776,-1073741812,-66912244,-66912001,-66322177,-66273028,-63913732,-63950596,12595452,12585984,-63960064,-63950596,-66309892,-66273028,-66862852,-66912001,-1073741569,-1073741812,805306380,805306416,201326640,201326784,50331840,50331648,0,0,1953300480,1048835,2097174,262176,-65536,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,65535,0,0,0,-536805376,-268337145,520126479,251658488,16777456,16777344,16777344,16777344,16777344,16777344,16777344,16777344,16777344,16777344,16777344,16777344,16777344,16777344,251658368,251658480,16777456,16777344,251658368,520093936,-268369672,-536772593,32775,0,1953300480,983299,2097167,262176,-65536,-1,-1,-1,-1,-1,1073741823,1073741811,-196621,-196612,-4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-196609,-196612,1073741820,1073741811,-13]},{"sector":7,"data":[-1,-1,-1,-1,-1,-1,-1,65535,0,0,0,0,0,855834624,855834675,50331699,50331648,50528256,50528259,3,0,-268238848,-268238785,63,0,50528256,50528259,50331651,50331648,855834624,855834675,51,0,0,0,0,0,0,0,1953300480,983299,2097167,262176,-65536,-1,-1,-1,-1,-1,-1929379841,-1929379889,-65585,-65553,-458769,-458760,-262152,-262149,-458757,-458760,-262152,-262149,-458757,-458760,-65544,-65553,-1929379857,-1929379889,-49,-1,-1,-1,-1,-1,-1,-1,65535,0,0,0,0,0,201326592,201326784,-956301120,-956301300,117440524,117440512,117637120,196611,-268435453,-268435336,196728,117637123,117440515,117440512,-956301312,-956301300,201326604,201326784,192,0,0,0,0,0,0,0,1953300480,259,2097152,262176,-65536,-1,12648447,12583680,12583680,12583680,12583680,12583680,12583680,12583680,12583680,12583680,12583680,12583680,-64768,-1,-1]},{"sector":8,"data":[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1953300480,786691,2097165,262176,-65536,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,65535,0,402653184,402653184,402653184,402653184,402653184,402653184,402653184,402653184,0,0,-2122383360,-2122383106,254,0,402653184,402653184,402653184,402653184,402653184,402653184,402653184,402653184,0,0,0,0,0,0,0,0,1953300480,1638659,2097181,262176,-65536,-1,-1,-1,-1,-1,-1,-1,16711679]},{"sector":9,"data":[16580381,15793934,14745345,12648192,8421127,8421135,12615455,14712639,15761279,33062911,66879487,134119423,268402687,-1073774593,-32769,-32769,-32769,-32769,-32769,-32769,-1,-1,-1,201392127,503316480,1056964608,1929379840,-520093568,-1073676096,-2147286816,458864,-15794120,-14745348,3145982,6324225,12615680,8388615,8388623,12582939,6291507,3145827,18350275,51118211,101056515,201523203,-1207894013,-268435453,3,3,3,3,1,32768,0,0,1953300480,259,2097152,262176,-65536,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1953300480,2,5439981,16842814]},{"sector":10,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-8454144,-1073741825,-1,-33,-4097,-524289,-67108865,-1,-3,-257,2147483647,-1,-65,-8193,-1048577,-251658241,-129,-16385,-2097153,-268435457,-1,-9,-1025,-131073,-16777217,-1,-32769,-4194305,-536870913,-1,-17,-8392449,-1073741825,-1,-33,-4097,-524289,-67108865,-1,-3,-257,2147483647,-1,-65,-8193,-1048577,-251658241,-129,-16385,-2097153,-268435457,-1,-9,-1025,-131073,-16777217,-1,-32769,-4194305,-536870913,-1,-17,-8392449,-1073741825,-1,534839263,-4097,-524289,-67108865,-1,-3,-257,2147483647,-1,-65,-8193,-1048577,-251658241,-129,-16385,-2097153,-268492832,-1,-9,-1025,-131073,-16777217,-1,-32769,-4194305,-536870913,-1,-17,-8392449,-1073741825,-1,-1882718241,-4097,-524289,-67137537,-1,-3,-257,2147483647,-1,-65,-8193,-1048577,-251658241,-129,-16385,-2097153,-268449905]},{"sector":11,"data":[-1,67043319,-1025,-131073,-16777217,-1,-32769,-4194305,-536870913,-1,-17,-8392449,-1073741825,-1,-408944673,-4097,-524289,-67127048,-1,-3,-257,2147483647,-1,-65,-8193,-1048577,-251658241,-129,-16385,-2097153,-268441697,-1,-18612233,-1217,-131073,-16777217,-1,-32769,-4194305,-536870913,-1,-65553,25161983,-1088425729,1056964800,396427231,-4097,-524289,-74453362,-1,-3,-257,2147483647,-12648193,-65,-117448705,-1048829,-251691012,-251723393,8437535,-2154752,-268494944,-1,-12583177,268368867,-194561,-16777217,-1,1073512447,-4194545,-536870913,-990721,2147352559,528478463,-1088421889,536801415,-2021523489,-4097,-117966337,-72303685,66848764,63741,-2130739712,2147418368,-1835023,117505727,-939532289,-1081348,-251707399,-57473,-267403489,-2158593,-268449913,-503316481,-7689,-1007092740,-100851204,2130640895,-117497857,-1605633,-121634823,-536886977,1073651711,-1074003985,528478463,-1088421889,-1879052257,662765535,-4097,-956857345,-70193426,-117906959,-1539,1073643262,2139094271,-196657,-117448257,1073733503,-1097729,-251682829,-57473,-251674849,-2097153,-268488816,268369919,-15369,-235668544,-100795143]},{"sector":12,"data":[2130640895,-16809988,-6324417,-943751170,-549454081,1073709054,-537395217,-8392449,-1073741825,-3841,-1882718241,-4097,-1057538056,-83836933,-51250717,-1667,-229634,2134900735,1073741631,-24641,-204897,-1081360,-251670553,-129,-251674625,-2097153,-268464185,-2031617,-62930697,-35390720,-109183245,2130640895,-4,-12615873,1069498367,-540016641,-4063236,-269484049,-8392449,-1073741825,-3841,-808845345,-4097,-990380157,-83824626,-17563677,-1667,-229634,2134900735,1073741631,-32834,-401433,-1048673,-251664433,-129,-251674625,-2097153,-268447799,-15728897,-1069300489,-1836288,-113377565,2130640895,-4,-12615873,2143174655,-538443777,-6291463,-136314897,-8392449,-1073741825,-3841,-808714273,-117444609,-1040711873,-83886064,-18350109,-1731,-229634,2134900735,1073741631,-32834,-401433,-1048625,-251661409,-129,-251674625,-2097153,-268447797,-7937,1098231,-1836288,-113377593,2130640895,-4,-12615873,2143174655,-538443777,-1572871,-71303185,-8392449,-1073741825,-3841,-808714273,-2080378881,-990380033,-83886012,-24117261,-1731,-229634,2134900735,1073741631,-49217,-401457,-1048589,-251659969,-129,-251674625,-2097153,-268447797,-61442,4506871,-918784,-113410530,2130640895,-4,-12615873,-1614856193]},{"sector":13,"data":[-543162369,-393219,-41943057,528478463,-1073741825,-3841,1338572767,1073278975,-1040711681,-83886064,2115960568,-1731,2147254014,2134900479,2147418015,-16789569,-204993,-17825796,-251659137,-57473,-251674849,-2097153,-268480552,-32,1098231,2096691968,-109233090,2130640895,-50380802,-3178625,-473956356,-545261313,2147418110,-16777489,528478463,-1088421889,-3841,264306655,-3936257,-990380033,-83886012,410910972,-1667,536837886,2147481855,-393241,-1052772161,2147409919,-51412994,-260047105,-57473,-251674849,-2097153,-268496960,-49,4506871,16710400,-117636865,2113929216,16810239,-950273,-20971549,-536934656,2147368959,-529,25161855,-1088425729,-3841,534904799,-4097,-1040711681,-83689456,-2113994241,-3,-257,2147483647,-15777796,-65,-1610620929,-118489092,-264306688,-251723393,-520110305,-2097281,-268492831,-1,1110519,-1265,-131073,-16777217,-1,16744447,-4194497,-536870913,-405505,-17,-8392449,-1073741825,-14712577,1072824287,-4097,-50855937,-79757244,-1,-3,-257,2147483647,-1,-65,-520101889,-1048829,-251658241,-129,-2130722817,-2097377,-268484623,-1,327671,-1025,-131073,-16777217,-1,-32769,-4194305,-536870913,-1,-17,-8392449]},{"sector":14,"data":[-1073741825,-1,2147024863,-4097,-524289,-67173440,-1,-3,-257,2147483647,-1,-65,-8193,-1048577,-251658241,-129,-16385,-2097153,-268468232,-1,267452407,-1025,-131073,-16777217,-1,-32769,-4194305,-536870913,-1,-17,-8392449,-1073741825,-1,-196641,-4097,-524289,-67158020,-1,-3,-257,2147483647,-1,-65,-8193,-1048577,-251658241,-129,-16385,-52428801,-268435580,-1,-9,-1025,-131073,-16777217,-1,-32769,-4194305,-536870913,-1,-17,-8392449,-1073741825,-1,-33,-4097,-524289,-67108865,-1,-3,-257,2147483647,-1,-65,-8193,-1048577,-251658241,-129,-16385,-2097153,-268435457,-1,-9,-1025,-131073,-16777217,-1,-32769,-4194305,-536870913,-1,-17,-8392449,-1073741825,-1,-33,-4097,-524289,-67108865,-1,-3,-257,2147483647,-1,-65,-8193,-1048577,-251658241,-129,-16385,-2097153,-268435457,-1,-9,-1025,-131073,-16777217,-1,-32769,-4194305,-536870913,-1,-17,61695]},{"sector":15,"data":[0,0,0,0,0,0,0,0,0,0,0,-129,-16385,-2097153,-268435457,-1,-9,-1025,-131073,-16777217,-1,-32769,-4194305,-536870913,-1,-17,-8392449,-1073741825,-1,-33,-4097,-524289,-67108865,-1,-3,-257,2147483647,-1,-65,-8193,-1048577,-251658241,-129,-16385,-2097153,-268435457,-1,-9,-1025,-131073,-16777217,-1,-32769,-4194305,-536870913,-1,-17,-8392449,-1073741825,-1,-33,-4097,-524289,-67108865,-1,-3,-257,2147483647,-1,-65,-8193,-1048577,-251658241,-129,-16385,-2097153,-268435457,-15729409,-9,-1025,-134145,-16777217,-1,-32769,-4194305,-536870913,-1,-17,-8392449,-1073741825,-1537,-33,-50335745,-524529,-67108865,872415231,-3,-257,2147483647,-1,-65,-8193,-1048577,-251658241,535887743,-100679681,-2097153,-268435457,-15729409,-9,-1025,-131073,-16777217,-1,-32769,-4194305,-536870913,-1,-17,-8392449,-1073806592,-3841,-33,-50335745,-524529,-67170308,-1,-3]},{"sector":16,"data":[-257,2147483647,-1,-65,-8193,-1048577,-251658241,-2146764673,-520110081,-2097281,-284172033,-11534849,1677262839,-117441537,-156671,-16777217,-1,-32769,-4194305,-536870913,-1,-17,-260050689,-1082146726,-12599041,16777183,-33558781,-524465,-67143184,-1677592321,-3,-257,2147483647,-1,-65,-8193,-1048577,-251658242,1349370239,16760703,-2097393,-274658562,-15729409,2095513591,150535167,-131327,-16777217,-1,16744447,-4194497,-536870913,-16516865,2147287023,-2088767233,-1086368659,-3841,720961503,-50335839,-524529,-75546929,-15790096,-3,-257,2147483647,-15785220,-65,-520101889,-1048768,-251691012,-1459911041,-251674817,-2097153,-284622608,-3146241,-1616904201,2145450815,-117574897,2113929216,16810239,-1997504513,-20971645,-536934656,2131804671,1073283055,-1887440641,-1086347013,-3841,-1427963937,-33558647,-524337,-73412801,-217055264,286390781,301956624,2147422225,-7763744,17955007,-1845501953,-1097968,-251674632,-587296897,-252199105,-2097154,-282481982,-15729409,-411042057,-253690929,-117571840,2118403140,1145324798,583171967,-457179360,-545307580,1061422335,536018927,-2021658369,-1086336834,2147414247,-1433731105,-50335965,-50856177,-68683265,2130764000,1145370877,1157398084,2134852676,2132943490,1145357503]},{"sector":17,"data":[1157553983,-1097916,-251715598,-1040743553,-255344833,-2146306,-274487286,-15729409,-50333193,-1007617177,-100843620,2114982161,286331388,-2012709057,-1849737336,-551612143,2131759612,-1881079825,-2139098881,-1086389770,536801415,-1473577249,-117444697,-252182777,-83820544,1067370488,286390781,301760016,2134839569,1065912328,286331327,301784847,-1048831,-251686936,352370815,-267927745,-52490242,-275799510,-16518913,57591,-939984127,-117620834,2118403140,1145324796,572686143,1153318690,-548977596,-15776520,667090927,-528486145,-1136658688,50331648,-1565853473,-520097889,-1057489149,-83820544,1067370488,1145370877,1157398084,2134852676,1059201570,1145324734,1157160775,-1048801,-251713598,-618733441,48767,-253819136,-281048406,-14425857,49399,-939984111,-100843618,2114982161,286331388,-2012709057,297680776,-553185007,-15789575,-2088173585,-528486145,-1082139978,268365831,-1968512289,-1056968833,-520618205,-80674816,1057014520,286390781,301760016,2134839569,1065912328,286331326,301522695,-1048825,-251688056,-23084673,-259538945,-1025564674,-268490582,-14434049,61687,-956302479,-117620992,2118403140,1145324796,572686143,79642402,-548453308,-12368648,555941871,-1015025409,-1073761059,1073672391,699042527,-1056968705,-117965021,-68091904,1057015551,1145370877,1157398084,2134852676,1059201570,1145341119,1157422879,-1048767,-251715294,-34633857]}],[{"sector":1,"data":[-253247489,14647294,-268459264,-16260865,16841975,-956302351,-100843776,2114982161,269554172,-2004320449,-1044414584,-549515247,-15724036,-2012676369,528478463,-1073751578,-69385,-1493106466,-251662337,-17301753,-68091136,1057015551,286390781,301891088,2139033617,-7829304,269607359,301916031,-17858800,-251688824,-1276690562,-251674625,719257599,-268464215,-15730433,117506039,-956302351,-117620992,2118403140,1078199551,585269247,-121635039,-536919804,2135180542,572718319,2138894463,-1073760265,-3841,-1616876834,-117444609,-524529,-68087936,1057015551,63741,-2130739712,2147418368,-14474510,117505727,83877887,-51413180,-260103390,-403439752,-251674625,719257599,-268484704,-14680833,532742135,-1023411215,-180480,-16777217,-1,150765567,-4194545,-536870913,-15691265,63727,-8785857,-1073747975,-15793921,2139097822,-50335745,-524481,-68075552,1057014015,-3,-257,2147483647,-12648193,-65,-1040195585,-1048815,-251658241,-201523329,-1056980993,-2132803777,-268435711,-8389377,2146500599,-520094735,-164096,-16777217,-1,-32769,-4194305,-536870913,-16523009,-17,-8392449,-1073792514,-8396545,-33,-50335745,-524289,-68026376,-16715521,-3,-257,2147483647,-1,-65,-8193,-1048577,-251658241,-2113929345,-251674625,-2097153,-268435457,-61956]},{"sector":2,"data":[-9,-1039,-131073,-16777217,-1,-32769,-4194305,-536870913,-1,-17,-8392449,-1073741825,-1537,-33,267448319,-524289,-67502081,-1,-3,-257,2147483647,-1,-65,-8193,-1048577,-251658241,-129,-100679681,-2097153,-268435457,-33024,-9,-1031,-131073,-16777217,-1,-32769,-4194305,-536870913,-1,-17,-8392449,-1073741825,-1,-33,-16650241,-524289,-67108865,-1,-3,-257,2147483647,-1,-65,-8193,-1048577,-251658241,-129,-16385,-2097153,-268435457,-1,-9,-1025,-131073,-16777217,-1,-32769,-4194305,-536870913,-1,-17,-8392449,-1073741825,-1,-33,-4097,-524289,-67108865,-1,-3,-257,2147483647,-1,-65,-8193,-1048577,-251658241,-129,-16385,-2097153,-268435457,-1,-9,-1025,-131073,-16777217,-1,-32769,-4194305,-536870913,-1,-17,-8392449,-1073741825,-1,-33,-4097,-524289,-67108865,-1,-3,-257,2147483647,-1,-65,-8193,-1048577,-218103809]},{"sector":3,"data":[0,0,0,0,0,0,1953300480,1819506547,257,4194304,524352,-65536,-16269057,-1,-16711426,-1,520093936,-1,50331776,-16777217,0,-50331649,0,-251658433,0,-1056964849,0,-2130706681,0,16776963,0,16711425,0,16580352,0,16547584,0,16269056,0,16260864,0,15732480,0,15732480,0,14681856,0,14681856,0,14680832,0,14680832,0,12583168,0,12583168,0,12583168,16777216,8388848,50331648,8388856,117440512,8388860,117440512,8388860,117440512,252,117440512,252,117440512,252,50331648,248,16777216,240,0,0,0,0,0,0,0,0,0,0,0,8388608,0,8388864,0,8389376,0,12583680,-268238848,12584704,-133758976,12586752,-32571392,14688000,-15794176,14696320,-14745600,14712800,-14745600,15794175,-12648448,15794175,-12648448,16318463,-8454144,16318463,-8454144,16580607,-65536,16711679,-65280,16777215,-64768,-2130706433,-63744,-520093697,-57600,-117440513,-49408,-1,-256,-1]},{"sector":4,"data":[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,65535,0,0,0,0,0,0,16547584,0,-2130706685,0,-520093937,0,-117440705,0,-16777217,50331648,-1,117440640,-15728641,251658464,-16253185,520093936,-16515841,1056964856,-16647937,2130706684,-16647937,-16776962,-16647937,-16776961,-16647937,-16678657,-16515841,-16662273,-16253425,-33431297,-15728889,-66854657,-253,-133959425,-255,-133959425,-16777471,-133697521,-117440767,-133695485,-251658495,-66586623,-520093949,-33032192,-1056964857,-16287744,-1056964849,-15763456,-1056964609,-15763456,-1056964609,-15763456,-1056964609,-15763456,-1056964609,-15763456,-520093697,-15730688,-251658241,-15730687,-117440513,-15730685,-16777217,-15730673,-1,-15732481,-1,-15732481,-241,-32513793,2146500359,-66592513,266403587,-133701377,65076993,-133709569,12648193,-133988097,8453889,-134021057,8453889,-66912250,65283,-33488896,65287,-16711680,65039,-16777216,65279,-16777216,64767,2130706432,63743,1056964608,61695,520093696,57599,251658240,33023,50331648,254,0,248]},{"sector":5,"data":[0,0,0,0,0,0,0,0,0,0,0,1953300480,1818838544,503316581,2003127808,2031616,1852141647,3026478,1392517120,6649441,1392517376,543520353,774796097,578813998,1769099264,268465262,1953064005,2752512,1868852821,543707913,6517573,0,1157638912,1702060402,0,2883840,158627139,7103812,1124084993,158953583,12870,1632632878,157643891,7564873,1124085505,1918985580,0,3145984,1702260297,16807026,1918107697,543515489,1701274693,838926451,1768703488,1866997872,1870293362,1818326126,3375360,1885957190,1919243808,1633905012,905969772,1852786176,1107296372,1852786176,2053722996,1393557605,1701607796,5113856,1767992400,893782382,5177344,1684827970,3556873,1224757248,1768710516,927336803,5308416,1701080661,1852402802,944114021,5373952,1819571535,6647401,1392530176,1802072692,1953853285,0,5507072,1734962241,1701585006,29798,1816199253,544106345,1953391971,29285,1816199254,544106345,1751607666,116,1460142080,1634750208,6649201,1409308800,1936613746,1701994864,268465262,1701601616,6648948,1342200320,1702130785,779316850,1175006766,1526726707,1852394496,1767317605,1936225380,154021422,13382,1916928092,543716213,1885431891,774796133,1568669742,1869566976,774796140,1334837294]},{"sector":6,"data":[1869182064,29550,1868169318,1226861935,960891246,6750208,1836019546,1953845024,808535561,0,6883328,1193307982,6580594,1174432256,543518313,1684632135,7012352,1768187213,1193307509,6580594,1124101120,1936875887,1917263973,25705,0,1682243694,1344304233,1702130785,774794866,46,1879048192,1919895040,1769099296,1919251566,7438336,544370502,1701995347,1828744805,1937208180,1835757164,-1874853887,167774726,1342215168,0,131118,786532,8388611,-8302461,67108864,1174410240,83900928,-1560280320,16745296,5701632,3276840,65550,1342373889,1701859200,1459617902,838875648,33558016,50331648,1631813712,1818583918,5111808,3932180,262156,1342308352,33554562,671089664,-16774144,33555199,1884258896,1176530533,979725417,1953300480,-1874853887,134218757,805348864,0,983052,786536,8388611,8474755,251688960,234889984,16777472,-2142240000,1702256979,7864320,2293793,131086,1342373888,1851868032,7103843,33574912,201345024,33555456,-2108685824,786432,3932162,-65524,1342308352,1986089858,1766203493,1092642156,14963,2004055149,-1874853887,419436806,1308662272,0,327680,524442,131071,1300385794,1869767529,1952870259,1852397344,1937207140,0,10092558,-65528,1342308353,1767985282,29806,1507337]},{"sector":7,"data":[262143,1350717440,1953392993,1966080,6160418,-65528,1342308353,1919243906,1852795251,808333600,49,-1711264000,-16774912,33554943,1866695248,1769109872,544499815,959520937,539768120,1919117645,1718580079,1866670196,3043442,989871360,234889216,16777472,-2142240000,27471,-1865940992,335549444,1073764864,1342177280,1953392993,738204928,234889216,16777728,-2142240000,1668178243,27749,524288,524378,131071,1401049090,1768189541,26478,1179648,524378,65540,8540162,469762048,134240768,33554176,-2108685824,1881173876,1953393010,1869640480,1919249519,1828716590,1937208180,1835757164,1632634880,544501353,671752237,1769238133,1684368500,1632634153,91516521,1852399952,1800340084,1851867910,141321571,1970233921,774778484,1852786184,2053722996,1866859621,1310946414,1696625775,1735749486,1768169576,1931504499,1701011824,544175136,544109938,1852399952,520105588,544501582,1970237029,1830840423,1919905125,1869881465,1853190688,1767985184,439252078,1852727619,1663071343,1952540018,543236197,544695662,1986945379,1124889441,1869508193,1886330996,2125413,1851867916,544501614,1702257011,1376845856,1634496613,1696621923,1953720696,543649385,453000961,544434464,544501614,1635131489,543451500,1852399952,1768300660,355362156,1702256979,1920295712,1953391986,1634231072,1936025454,1059062304,1763711232,1818304627]},{"sector":8,"data":[1684104562,1700929657,543649385,1953064037,355361893,544501582,1635131489,543451500,1701603686,1701667182,1311440928,1696625775,1735749486,1768169576,1931504499,1701011824,544175136,1953064037,1869504800,1919248500,1818846752,1124937317,1869508193,1919950964,779382377,1953451551,1869505824,543713141,1802725732,1634759456,1948280163,1919950959,779382377,1953451547,1869505824,543713141,1869440365,1948285298,1919950959,779382377,1767985201,1663071342,1869508193,1634738292,543519859,543516788,1953394531,1937010277,543584032,543516788,1885957187,1918988130,1344417380,1953392993,1851876128,544501614,544503139,1948282740,1126196584,1651534188,1685217647,1632641838,544501353,1852727651,1663071343,544829551,1948282740,1126196584,1651534188,1685217647,1750345262,1881174889,1702130529,1818851104,1986994284,1920430693,543519849,1920298873,1851876128,779313526,2019906601,1936269428,1869575200,1734959648,544175136,1953718640,1852383333,1948282740,1998611816,1868852841,1310404215,1696625775,1735749486,1701650536,2037542765,544175136,1953718640,1310600805,1696625775,1735749486,1768169576,1931504499,1701011824,544175136,1702257011,32,0,1953300480,704649989,3014912,755040300,16788992,2949233,1509978625,7536896,1946222683,16797184,5177461,1342207489,7799040,2013331537,-2130680320,6750329,2004055149,-129595009,1183554795,-2090901768,-443874579]},{"sector":9,"data":[]},{"sector":10,"data":[3562061,26,32,65535,-333119488,0,64,0,0,0,0,0,0,0,0,1024]},{"sector":11,"data":[1409297384,544434536,1735357040,544039282,1970365810,1936028265,1667845408,1869836146,1461744742,1868852841,221148023,240788490,-855002081,1275181089,8653]},{"sector":12,"data":[279886,1835250,191264114,131078,268435968,74012,131072,196610,4194397,13631568,14745819,1294,589828,0,0,0,593821699,593821968,104202262,180224017,-2147418108,1,52690944,-265289711,32769,-2147287040,1,53805056,-265289663,32771,-2147221504,1,58064896,-265289722,32769,-2147155968,3,58458112,-265289720,32769,58982400,-265289721,32770,59441152,-265289716,32771,-2147090432,1,60227584,-265289721,32769,0,1447383559,1230197317,16777216,201328640,1258684416,1162760773,1145504588,1398080585,-16494011,20958465,-855565366,308019519,20958465,-855572480,3539263,1294270464,1869767529,1952870259,1852397344,1937207140,1986351648,1769173605,1886404896,1633905004,1852795252,1225195520,1195723852,281665,1329742085,218197,1447383566,1230197317,1346653783,21188434,1313410560,1397900630,1397050693,1162297683,1828716546,1937208180,1835757164,1818978915,1936483443,1299014754,1330791241,1413893971]},{"sector":13,"data":[1167087646,518818645,2122438798,1963004172,242679569,1342177720,20378,112640,2122385899,1946226700,-2084557836,-443874579,-900899553,1478361098,-1957345904,-661774612,286031489,-15633151,28839542,-6664192,-1207959297,166395905,269254273,737440769,49120192,1562371467,707149,-2081649835,113713900,2408,-1710983425,647,1358841481,1342180024,16777114,-6664192,-16776961,1183710838,-1706027298,65535,-1545714037,1183517038,158770152,-16484609,1067122294,-2097151997,17394238,1721830261,164274953,-351673695,166633737,-1593193821,-593294880,2996233,164507383,-1207317341,-397408698,-998045158,-402209022,-956296183,17437702,-569981184,-956290807,17394694,2734080,74907472,-2096961560,28837060,1575324416,-326412861,-1960907645,10683974,71731978,-16107357,-1207304138,-1706033150,669,-1929087233,1343682118,16777114,-96040192,-1980348885,-794565562,-62485751,-1980217813,787997254,1178274254,-1591509276,1178143180,-1996259868,1183573062,179935716,-1543899392,-1952905662,-150352370,105161721,681647851,-498714368,1183384445,-498693150,702873,1151597047,-835782906,105030409,-1324989279,-1981754621,1117908038,-1981754618,1183579718,515480044,-1543899392,1183517138,-465159682,1183518078,-28955676,-775804007,721611768,166765504,971785867,226419270,736249483,731507782,-336014910,-1547687166,1186466292,-1108848634,46433030,157826691]},{"sector":14,"data":[-13995008,-16121290,-401997770,-998043787,108461828,1347469355,164640511,158217983,-1174402632,1347551317,16777114,1575324416,-326412861,-2096305021,4158,-1377238156,71731969,-1962264413,691865158,2121823232,24832259,1962939453,10676483,1946164797,25880847,-402360577,-998042858,25094402,-1207666945,1344146070,16777114,1812383488,-16776951,211420278,-1996488701,10745414,302434058,1342177280,1342177976,203930,-159973632,-2096097048,113705668,1313256,1342588600,-2096608792,1186464452,-169324538,46433029,-956244247,17437702,2734080,74907472,-2097079320,300483780,335988481,-1207959030,-387252182,169084615,750256132,-941757696,101323782,3061760,1048826603,1947470312,11200771,-1710983425,869,-1544141175,-1202714112,-1706033150,65535,1050311,1996423169,261351670,-16595837,-1710626250,923,-16484609,-6621578,-1207959297,-1202715066,-1202716652,-1202716670,726663171,28856512,-4697984,-236433281,74907418,16777114,-163149568,-1207304029,-11532730,-1207303114,-1202716669,-397410302,922682018,1186466308,1996443654,74907638,-2097113368,922683588,-6682132,-956301057,4102,74907392,-1695123713,179,922696939,45614656,1347590400,-16484609,-16109002,-1710608330,65535,708649195,-385649408,742260487,-385649408,775814922,-385649408,842923789,-385649408,-443810186,-1957313699,49054700,-1710983425,65535]},{"sector":15,"data":[1358841481,165558015,-1705983957,1051,-100609,146278006,-6664192,-1962934017,-559741370,1575324425,-326412861,1443687555,720783047,-402209024,-956296183,1375302,1996437739,-193528056,1342177976,1342178232,186406888,-1962380096,-391908282,-14947575,1996425334,243956,178256,473622608,108314635,-1980479861,1586232390,-163150858,-1995994366,-1072958394,1048819829,1964247528,176063351,-2096729068,1964309630,-96024733,1187446784,-956301058,784454,-1946657141,947914870,-16419582,250346054,-1946657141,947914870,-16550653,1191181894,-125926408,-1948680616,1178205766,-1962115334,1177287238,-2034740994,-1959924982,1178205766,722042362,-1202652602,485165600,-1202667477,350947898,-1202667477,216730282,336232067,-1070918795,169261136,108461904,-402360577,-998046053,-443851256,-1957313699,317490156,384714381,1354771280,28856400,-6664192,184549631,-2096139072,1964175486,1354771213,-2095247384,-1070923068,1183651819,-1706027282,65535,384714381,-26032,28835840,1575324416,-326412861,1460071555,-28915882,1187446784,-1207959300,1861681162,66096126,1586232438,188779012,1183441962,81402,54356084,-16091904,-16121802,-351679946,3604232,-600375542,105093641,1183514624,1143928828,66095878,-1962281930,788004422,-125106622,-787886431,-523296,-1593180106,-956102160,38047056,164536656,-523116335,166725163,100915447,-956103102,105161040,1212728835]},{"sector":16,"data":[113285712,1191116800,-58817540,-385647352,1191182193,-25263106,-385647352,1600061280,-1017256565,-2081649835,-2091512596,1964247166,28371203,50757251,922686581,922683904,1469712842,-956301306,129606,922686187,922683904,-1885730340,-956301312,195142,755517067,-1181155317,-101253110,105000695,164499083,-1056710191,166725123,-1946663287,187500614,179935488,-1946552576,1143928770,-200932602,-1992278007,922744390,1996425728,1183535352,-837907464,-773730039,62991329,1342587398,66471563,755385350,-1706033148,65535,1342178488,-11485141,1151466102,273670,105029968,164499083,-506338863,-11484885,1996486262,3604472,16508938,-955202429,1375302,-1962882071,1183385670,-28931084,-1946925567,1988883550,704678410,71711716,-1377238156,-28931328,-1946925567,1988883550,704678410,71711716,1178332020,-385649658,1995112592,-1946919285,1183451766,-1962899450,-2021067682,1183516230,732660,702873,788003319,243992130,-506394162,100909315,1183386096,-196703240,-1728050387,-150992199,-138245127,50742318,1074394118,-163149504,167786239,1358460671,-1946663285,-787886578,736219617,1107690433,1183535110,1141244918,273670,141204048,1183514624,-196728322,-1946919285,9046646,1178330154,-385649404,1586233202,-62487556,-1995994366,-1072955834,585696116,140413951,-1979025781,8914502,1575324510,1426065602,-326898549,276726534,-15567872,146277494,-1986375680]},{"sector":17,"data":[1342177280,541338,-935919872,145660425,1187446784,-352321282,243172184,-955812607,134726,1187448299,-2097151730,1963003518,74907401,164247295,1996425195,-600375548,143104521,1996423168,178180,19962448,1996423168,108461828,-1962379521,1174603334,1183535114,205914888,144939600,1191116800,306613246,2097038905,276726688,-13995008,922682486,-509998606,-16777208,1996424310,142016262,50742923,-1957688762,1174603846,43667468,-352321530,-365494519,53778953,-443875328,-1957313699,216826860,-1324989279,-1981754621,1117912134,-1981754618,-761135546,-835782903,-163149559,167786239,166606591,596378,3604224,-163149046,100917457,-1588590096,-523171374,166987267,-25755824,-1191414017,-256245727,-1706012160,2360,167786239,166868735,607642,3604224,-264831222,-197722359,-25755895,-1191414017,-256245727,-1706012160,2412,167786239,166606591,645274,166764800,-335919479,3604261,-92864758,166999807,164509439,-1191414017,-256245727,-1706012160,2469,17187489,1183578694,-268041218,-96060663,-190722179,-96040695,922691051,922683904,1996425712,-25755654,1342177720,-1174396488,1347551472,658842,105160960,-1946532351,100924486,1178274292,-1949336070,100924998,1183386096,-62485512,166987267,-768375,-16121802,-1710624202,2658,33179335,-13505792,-1962278858,1174665286,1183535354,244029946,-101250610,166987267,112720]}],[{"sector":1,"data":[-59310256,-1174396488,1347551472,674458,-96010496,972441227,-948110778,33179335,-13702400,-1962278858,788003398,100862414,-1957688848,1174664262,1996443898,112894,2209872,1375793338,36280912,1191116800,164798970,2096776761,3604426,-298385654,95853065,922681344,1996425728,-197722120,182688265,922681344,1183517184,-163183624,167027024,164759043,178428496,922681344,1183517184,-163183624,-196703408,164759043,180066896,922681344,1183517184,-268041226,1183535113,-771357708,-879079415,-16777206,-16121802,-16125898,-224725898,-16777206,-1962278858,1174665286,1183535350,-771357708,-6664183,-16776961,-16121802,1996486774,-25868,1996423168,-92936188,-1017256565,-2081649835,-950663444,65094,16533191,6600704,-1946259721,-60947496,-972786037,1191116800,-58817540,-1671581,2122579526,-662829314,16664263,-62470400,1183514635,-96040452,1689785579,-26282240,1577310347,74877946,-16711482,1183578694,525820,2147108411,-62487583,-58817782,-1194361263,1861681252,-1947169794,1086719070,1689781037,-26282240,1586229387,910214660,6600707,-1946259721,73305072,36454598,-150969160,-259260818,-972792181,-16632000,2122579526,-2055338242,1575324510,-326412861,1443163267,16664263,-1962022144,1183514206,2022148348,-28901623,-1946263925,9046134,184305288,-2082179648,1946159742,172395310,702873,-259261961,158660107,83773183,2022148144]},{"sector":2,"data":[172395273,702873,-1031734793,-27358416,-1996601601,-1962313577,-2017001890,-1207957128,-11531912,1525155446,79987461,-402360577,-998046212,-443851262,-1957313699,216826860,1342177976,807066,158507776,-1705983957,3164,-1207312221,-1706033148,2047,-1207308637,1347420168,1342177720,11319376,-6664162,-1996488449,-1705969082,65535,185201315,721778112,37218752,-1694861569,65535,158074567,-1070923775,8165968,1183383552,414732536,-895856640,1023410188,142475266,157943495,116064257,157943495,1996423168,702712,-26032,-935526400,-955747072,34196998,-955847936,17419782,1354771200,-1694992641,940,-1727987784,43667538,-1560281075,12061154,1389505535,219257424,1889730560,-1161811191,1347551487,16777114,157721344,-1207666945,-1202716669,1344146070,1342182584,867994,74907392,1342178488,503990968,2668624,223582800,1996423168,374788,169261136,179851294,1754943488,-16777203,112723062,-1430761472,-1202708982,-1706033132,3453,-1207666945,-1202716665,1344145978,1342181304,889498,74907392,1342179512,503980216,1030224,229087824,1996423168,636932,176601168,263737374,-1130737664,-16777203,179831926,1924681728,-1202708982,-1706033132,65535,1342193848,1342184120,16777114,-62486272,58048523,738111721,62410944,1347590527,914074,158638848,-1202667477,1385791232,235117136,-324861952,1354771209,-1719729480]},{"sector":3,"data":[345657426,-1560281074,1996425706,112644,-1706012007,65535,-2096510813,619582,1659437941,-331447298,57999369,-2080483095,649790,1323893621,1975520254,-28841725,-1207666945,1385758723,-26032,1586167808,206014972,-1191420277,1200160932,408914966,157957763,-1593478144,65735024,-1962286943,1200225374,-60912880,-16627769,71813119,1586233343,306694140,1204224001,-1962934252,1183579230,172460292,-939762037,-1962933497,1344207942,16777114,1975520000,-59310325,965786,-36706048,-1694730497,65535,-1962933832,1438866917,-326898549,205949700,-2096742237,1962936958,1575505939,46433277,57982987,721534953,43116992,1064579,-385649664,1996423815,166639626,178256,252877392,1996423168,166901770,178256,253925968,1996423168,158513162,178256,254974544,1996423168,165722122,178256,256023120,1996423168,157726730,178256,-26032,1996423168,165853194,178256,258120272,1996423168,158382090,178256,259168848,1996423168,164280330,178256,260217424,1996423168,165459978,178256,261266000,1996423168,166508554,178256,262314576,1996423168,158644234,178256,263363152,1996423168,166377482,178256,264411728,1996423168,164149258,178256,265460304,1996423168,165591050,178256,266508880,1996423168,169129994,178256,267557456,1996423168,1357834,1226832,268606032,1996423168,2799626,8042576]},{"sector":4,"data":[269654608,1996423168,177649674,1357904,270703184,1996423168,172668938,2668624,271751760,1996423168,169261066,702544,272800336,1996423168,178960394,1357904,273848912,1996423168,171620362,1030224,274897488,1996423168,169916426,1030224,275946064,1996423168,176601098,1030224,276994640,1996423168,175290378,1357904,278043216,1996423168,157988874,178256,279091792,1996423168,164542474,178256,251828816,-4718592,-17665,1996443730,282434060,-660406272,-636057335,671532809,-956289792,4102,-18432,1392508858,209125200,1109146,171221760,171316873,-1157627976,1347616767,-1710459137,65535,-1995820893,-1207291370,1344143548,1195651,-1207602176,65735242,-1945463112,726684378,13417152,1347440722,6600784,1354771280,209125200,-6664112,-1996488449,726727750,-6664000,-1996488449,726728262,1347440832,1342433208,1342767288,1139098,-25755904,-1202667477,1344146034,1342433208,1342243000,16777114,-59310336,-1710983425,65535,-1694730497,65535,-336352280,1575324667,1426066114,-326898549,105286402,-16121181,719848566,46433025,-16484609,-1710628810,4570,721712895,-11513664,-16134090,-1207341514,-256245727,-1706012160,2316,-1207666945,-1706033151,4646,-1207666945,-1706033142,3141,134584912,1996423168,74907396,503727755,568873040,46433025,-26032,-930414592,722063521,-1037329983]},{"sector":5,"data":[726726865,1183535296,1347427846,-2097086488,-1706032444,65535,157812423,1996423169,178180,139369040,-443875328,-1957313699,49054700,166069959,113704960,264676,-1207666945,-1202716006,-11534136,-16131530,-1710630858,65535,-1017256565,1167087646,518818645,-326903666,165978372,166069817,1996437119,211720718,1183383552,-1070903044,922701904,922683856,163055982,5618176,10113106,-16777197,-16128506,1996426870,350132988,216727552,-1207011585,-1706032486,65535,-1962742397,1297948645,1426066122,1048833163,1963002216,165978433,166110016,-2096859393,617022,1889600884,-1593578743,-1706030624,4512,721712895,-11513664,-16134090,-1207341514,-256245727,-1706012160,4540,157812423,-443875328,-1957313699,49054700,16664263,-16323840,1191181894,73304836,1962950528,-28931086,-1017256565,-2081649835,1151405804,-754732794,-163149344,-754564447,-129594912,-1559869813,1183517140,165061384,105004675,-385649408,1048772749,1962935876,8644867,-1995838303,-257819066,105265417,1183542654,-268041224,105265929,-190750338,138819849,1183537534,-200932362,138820361,1183534462,-268031226,244029705,-101251518,-1946401143,103483462,-1952904716,-150584306,-96040455,-150992200,1174666350,722426,-1192081783,-11532730,45675126,62410752,-773304320,1958742796,158638342,-113015,-1097138570,-1962934252,1438866917,-326898549,105160974,-523041871,-1577695607]},{"sector":6,"data":[-523041214,-1946663287,-727513530,138840841,-2096507229,410174,1609106293,1144947457,57999366,-1593747991,1178143216,-385646842,1183514954,-268041224,105265929,1005126527,167026945,2131248697,19982595,66471563,990508038,58656838,-1962860055,103482950,-1952904720,-150584818,-62486023,721962635,-1727400954,105123467,1183447543,702714,66875127,184941126,-230258432,1342588600,-1192069377,-1202716670,-397410301,-1073017844,-1108802699,-228685056,105285574,1812383490,-956301303,16781318,-365494528,357997065,1996423168,353737220,1183383552,167814132,-34871216,-16595837,1996424310,357407476,1186463744,1996443654,178418,243792,1354771280,1350566328,1350565816,-1207348248,-11532730,45675126,62410752,-1108848640,74907403,1210010,-196704000,-1207304029,-11532730,-1207303114,-1202716669,-397410302,922743026,1186466308,1996443654,74907636,-2081495320,1996425412,-193528060,845978,-331940096,364288521,113704960,16,922688235,28837440,1347590400,-16484609,-16109002,-1710608330,968,-1017256565,-2081649835,1048775916,1964247528,1816036106,57999369,-2097047319,4670,1996426613,172668932,2040156190,-956301310,16781830,-365494528,135174665,113704960,65552,158088835,-955419648,324678,50218695,10086656,169098883,-950700799,64582,720914119,2793728,-336181623,-128021719,1183385483,105298166,-159973552,1342177976]},{"sector":7,"data":[1342178232,185246696,-955812672,130118,1182991595,2122515192,-780926724,771114635,-1181155317,-101253110,-1946265975,837547590,1342588600,168048383,1342178232,1342177976,1342177720,1350566328,1350565816,-1593310232,187501062,179935488,-1980107008,111279702,732426,702873,1183447543,-196703244,105000695,1117898891,-1037330170,-939263791,166727171,164892297,-134330741,-1962523602,105161160,-775804007,63439864,-1995836402,-16132594,-202898314,46433028,-1710983425,5318,-1946532215,788001862,243992130,-506394162,100909315,1183386096,-28931084,105131767,166987267,1183400000,243966,112720,243792,105161040,1342178349,-1962523999,-787886578,736219617,1996443841,-193527810,-386238721,-997986079,268879632,-16777216,1996424310,312646394,922681344,922683862,1996425684,-66787324,-1962490749,1438866917,-326898549,-398556404,175445001,158088835,-385649408,-727645989,-268031223,244029705,-101251518,-1577826679,103483862,-1952904716,-150584306,-28931591,16533191,108954368,-1928498176,-1924071866,-397347770,199950503,1358841485,1358186125,-2097101848,179832004,-194054400,1577310347,197362686,-2131337591,17188543,113756021,65552,1342588600,178259,243792,149612624,91537419,33310407,268879616,-2097152000,1946221694,-196703332,105000695,1117898891,-1037330170,-939263791,166727171,164892297,-134330741,-1962523602,105161160,-775804007]},{"sector":8,"data":[63439864,-1995836402,-16132594,-1947728778,46433027,165033727,164902655,-402360577,-997983474,1575324422,-326412861,-16490869,73304839,2114404227,509717,106859264,1586169855,121602822,130483326,-443875328,-1957313699,73305068,1586171903,4162308,130487677,1586167815,-1961885946,1065551454,-956007168,-1962932473,1438866917,-326898549,112646,-1979824503,1183579206,2309382,-1192688779,-385649152,154993072,-385649408,222101738,-385649408,540868807,-385649408,557646015,1031107584,57999394,-385832471,1151402710,-704249594,29288713,722064545,-1727401978,104992395,1183447543,105030140,164890153,-1593728023,103483862,-1952904716,-150584306,-28931591,103399819,-1981216298,165060865,166987307,1141803929,-1980107002,-727581114,-268031223,244029705,-101251518,-1577302391,103351876,-1309996586,722065057,-1727400954,105123467,1183447543,700550142,-1593190906,100730434,1038682580,164929793,166725163,1108249497,-1980107002,1151466566,-704249594,-9049847,17188001,-351676922,272532434,57933824,-16638487,-16132554,-16133066,1726481526,34204154,1064579,-385649664,280494324,-1130737664,184549401,722435520,1996443840,-41424892,-385563517,28836326,-1192301824,-1706033135,6665,58507275,-16657943,1996424310,434608644,-1202716672,-1202716622,-1706033024,6644,-16484609,463078518,1342177306,1342190264,-1705983957,65535,1342190264,-402360577]},{"sector":9,"data":[-1460934609,1342181816,16777114,2092960512,25487619,-16484609,-57015178,1342177283,1342182584,1342210232,1720730,74907392,-1710983425,7204,1357904,1354771280,1694874,1357824,641577451,-385649408,326631061,1962943549,-22681341,1962943805,-26679037,1023488489,57999399,1040110825,57999400,1040075753,57999432,1040136425,57999440,-369132055,-727645938,-268031223,244029705,-101251518,1039812233,75431943,260030475,-1727642975,-120470997,166725123,-2096507741,2131294846,-58817780,-2094959360,1962998398,505883,105000695,1117898891,-1037330170,-939263791,166727171,164892297,722065057,-1727400954,105123467,1183447543,474618,-1073019777,1151405951,-1037330170,100923601,-693958156,-92372215,-2096333048,1962999422,-92372191,-1206160128,787939335,-930412988,-1727642463,-120470997,235128835,243862004,-727643690,-268031223,244029705,-101251518,-930354697,-1727642975,-120470997,235128835,243862000,-694089260,-200922359,244029705,-101251516,-930354697,-1727642463,-120470997,235128835,243862004,1996425686,1632260,-16595837,-16132554,-16133066,-1679293322,113542135,-1017256565,-2081649835,-727644948,-62486263,-1995843935,1996488262,-62485244,999968790,-16777187,1996487798,491166462,-443875328,1478411101,-1957345904,-661774612,-1960252285,289213510,1982821377,36104451,1962934589,8448259,1962934845,12577027,1962935869,17819907,1962938173]},{"sector":10,"data":[24963331,1962999869,15001859,1996452331,242679562,-2082071832,-1070922556,36170137,-1710328065,6606,-2080618871,4158,726671220,45633728,1268404228,-16777188,28900470,45633536,1553616900,-352321508,-59310135,-1202667477,-1706032128,65535,-1191414017,-1202716671,-571800576,-401705217,-997989382,-1952191742,-415430074,-15240189,1996426870,175570700,-16222465,-6683018,-385875713,922681777,62391872,1347590400,-15829249,-16107978,-1710607306,5496,-38935,-1710866378,65535,1962934589,1882652452,483367433,922681344,-660993550,-16777188,-1710660042,7393,165820159,823450,1354771200,16777114,-13965056,-1710328065,65535,57982987,-16693015,1996425846,-76290034,-1191244567,-1706033133,65535,1266008075,687747,1183530356,105265422,-727630476,-129595127,-1995843935,1996487238,-129594098,-6664170,-16776961,1996486774,-25862,922681344,922683862,1996425684,-170334194,-16333693,-6681994,-2097151745,1962936958,-22091517,556675,-1511455884,242679806,16777114,-23402240,-1928431873,1343674438,16777114,-663290112,-401705217,-997989505,242679556,383272589,-26032,1911095296,272532478,309657600,-16222465,1996424822,-176887794,-385432445,922746456,-409335318,-385875949,1996488268,-26098,113704960,65574,-1694614551,65535,1064579,-2095680256,9790,1996427124,108461832,-401705217,-997984783]},{"sector":11,"data":[637978374,-385875968,356384272,1025210113,57803028,1040057321,57999634,1040079081,57999635,-369232919,373161557,-385649407,4062702,-385649406,20840303,1032811522,-1686896126,-2080491287,-443874579,-900899553,-1957363702,82609132,-907520170,140413670,-1014300878,-167746375,273023969,-1056706421,-2080487799,-24441914,-661849853,750370958,-1510736896,-2020744239,1183386116,-2080648708,1964248702,337525302,2801162,1693123444,195951760,-1961528128,-670826914,1963016064,15132912,1240001396,14084353,-100609,1996426358,27715594,184600553,-13994533,-1710606282,5808,-16121693,1996488310,209125134,-401967361,922740538,922683960,446302720,-352321513,-386692341,909836485,-1301018092,-1090508098,1586167828,-62944772,1958742957,-27358395,1065408515,-1947175679,7792840,-108271244,1074284171,-150708597,105810907,1996478967,1996445456,209125130,-397323440,1178337036,-1983611386,1586169414,994019836,897385542,-8145429,959345940,58003070,-1946200599,-1958737850,-604568482,-150581621,276234201,175570775,1342994175,-840412845,105266174,1183384446,105286406,1583339767,-1034033781,1451884558,209095178,-994093481,-2096788736,-1073020217,-259321228,-243978184,809037827,272169588,-1072961675,-1966907554,1451887222,-27358452,1024345739,745799700,-1076362410,92995780,184731523,-1961134912,1966094576,1103705073,809037827,272169332,-265558923,-85847928,394845419]},{"sector":12,"data":[2123088734,182137854,-478147747,182702338,-478145955,182702342,-478129827,182702350,-478128035,-1326722786,98825806,-259325718,-1190410365,-617414578,-768360397,-1560223581,-1392770850,1193118360,14063370,-2029921533,-270401318,-1962876767,-2097095138,1946356862,-355429629,-355417301,12059506,-1957313667,861361900,769984,-1190625789,-490864562,108953600,-1106938877,-617414426,38149258,-1728454144,175423499,2038235323,-2097104125,1583334147,-1034033781,-1957363706,140413932,-2146804221,242549055,-1979418998,-538442154,112894,-1070398859,-1034033781,-1957363704,1183537132,1326344,1988758644,106334724,-401973621,-1956643090,146955749,0,1942235995,920188696,656953,959844215,1979714566,212022788,-2061568,-1140870941,-1329856848,-1705993987,65535,16777114,1958742784,-569981141,-1996488699,1459998734,1381172822,855727592,-6664000,1459618047,16777114,1958742784,-310646777,30861392,-850591816,-1957313759,-18196,-1957313699,-18196,-1957313699,1354771436,-1710983425,8583,-1017256565,-1192457387,-1957691328,1861682246,-1097183226,-1962934239,1438866917,1996483723,108461828,1342193848,16777114,1575324416,-326412861,-1710983425,8653,-1017256565,736922453,1996443840,231315972,-443875328,-1957313699,74907628,962970,1575324416,-326412861,-1710983425,8758,-1017256565,-2081649835,-1070923028,71732048,-1706012007,65535,-1929492855,735087578]},{"sector":13,"data":[1575324608,-326412861,-16585597,-6683018,-1996488449,-628294074,-1070870389,-1017256565,-1275051,-6683018,-1962934017,1438866917,1996483723,-26108,-1073020928,28837236,721611520,1575324608,-326412861,1347469355,16777114,-402345728,-443875108,-1957313699,15722732,184479464,-2146798364,1962935422,71747076,382017278,12060114,522308901,103026315,45811683,572456704,71731974,567102644,-2130301253,1929786619,402608904,-347913381,79414258,1140897792,175251917,1954595574,42958853,2034974726,817153004,-459071027,110019333,-1960442402,-1207948234,567096576,97656457,97781388,12066574,554744357,-1959386675,-486136818,113587746,-628357594,-13182157,1929781790,-32249597,705086774,-1143305210,-13238269,369500702,347718431,-153406720,17171079,1051985012,-498916915,-1957313550,1435884,-402360577,-443810004,-315440291,-355399965,-85796655,104119235,104135553,-11335565,1128487703,-1144786197,-75430348,141755958,1528299347,-219462845,33574083,-15670272,50332672,52009729,50358784,52203265,50359040,50674433,50359552,50682881,50360576,18946049,50331904,50685441,50360832,18968577,50332928,18980097,50333184,18983937,50333440,34719745,50332160,18996225,50334208,51475457,50363392,19002369,50335488,19009281,50336000,19015425,50336768,52510977,50332928,52226305,50333184,19026177,50338048]},{"sector":14,"data":[51532801,50334208,34245121,50336512,34238977,50336768,51556353,50334720,18955009,50339328,34056705,50337792,52285953,50336256,52289537,50336512,34771713,50339072,52263169,50337280,34739201,50340096,51464449,50370816,50596865,50371072,52181761,50371328,51458817,50371584,52147969,50338816,52048897,50371840,52229121,50339584,18659329,50343936,50412801,50340096,52046081,50373120,17871361,50344704,51750657,50341120,34792449,50343168,17781249,50345472,52267265,50341632,34370305,50343936,52273665,50341888,51455745,50342144,51473409,50342400,51241217,50375936,51268097,50376192,51194113,50376704,52236289,50377472,34372609,50347008,51291393,50346240,34403073,50348544,35440129,50349312,52352001,50348544,52359937,50349056,52283137,50349312,52150785,50349568,52256513,50349824,34384641,83906560,-15828224,83886336,-15685888,83886592,-15676928,50332416,18947329,83909376,-15671040,50332672,34722817,50353920,34730497,50354944,33594369,50355456,52210689,50353920,50338049,33576960,-15826944,33554688,-15685120,33554944,-15676160,1828717312,1937208180,1835757164,1818978915,1936483443,1299014754,1330791241,1413893971]},{"sector":15,"data":[0,5,0,0,0,655369,65547,-524289,-655370,0,720941,5308434,852056,1048607,2490429,4456531,917590,983081,3145779,3801172,2162773,4128804,2228290,2818083,3473454,4194360,1572929,2752537,3407919,4849721,1507403,2097178,4063269,4784195,786508,1376273,4653084,5374030,1441879,4718619,77,1702258002,6910834,5570730,5570730,5570730,5570730,1702258002,6910834,655369,65547,-524289,-655370,0,513,0,0,511,-127664383,134612488,25592,-33756936,-118948611,-66584576,117703687,2300,326918,117244928,-49938432,67108868,1789,67632136,150734596,-386400256,-50463236,63720,101251171,1677199366,101251171,1677199366,-386400256,65792,63720,67567624,134219524,17170432,67174660,1537,17039622,100729857,524288,117703687,2048,16836856,201851137,-127729664,134612488,-127704308,134612488,25592,16836856,-119013375,524288,117703687,2048,17039622,100729857,17170432,67174660,1537,67567624,134219524,135004160,16843008,63720,101190755,1677199366,101251171,1677199366,-386400256,65792,63720,67567624,134219524,17170432,67174660,1537,17039622]},{"sector":16,"data":[100729857,524288,117703687,2048,16779276,201851137,207814656,134612488,-127704308,134612488,25356,16836856,201850881,524288,117703687,2048,17039622,100729857,17170432,67174660,1537,67567624,134219524,-386400256,16843008,63720,101251171,1677199366,101251171,1661732870,-386400256,65792,3080,67567624,134219524,17170432,67174660,1537,17039622,100729857,524288,117703687,2048,16836856,201851137,-127729664,134612488,-127704308,134612488,25356,16836856,201850881,524288,117703687,2048,17039622,100729857,17170432,67174660,1537,67567624,134219524,135004160,16843008,63720,101190755,1677199366,101251171,1661732870,-386400256,65792,3080,67567624,134219524,17170432,67174660,1537,17039622,100729857,524288,117703687,2048,16779276,201851137,207814656,134612488,207840012,134612488,25592,16779276,-119013375,524288,117703687,2048,17039622,100729857,17170432,67174660,1537,67567624,134219524,-386400256,16843008,63720,101251171,1677199366,101190755,1677199366,135004160,65792,63720,67567624,134219524,17170432,67174660,1537,17039622,100729857,524288,117703687,2048,16836856,201851137,-127729664,134612488,207840012,134612488,25592]},{"sector":17,"data":[16779276,-119013375,524288,117703687,2048,17039622,100729857,17170432,67174660,1537,67567624,134219524,135004160,16843008,63720,101190755,1677199366,101190755,1677199366,135004160,65792,63720,67567624,134219524,17170432,67174660,1537,17039622,100729857,524288,117703687,2048,16779276,201851137,207814656,134612488,207840012,134612488,25356,16779276,201850881,524288,117703687,2048,17039622,100729857,17170432,67174660,1537,67567624,134219524,-386400256,16843008,63720,101251171,1677199366,101190755,1661732870,135004160,65792,3080,67567624,134219524,17170432,67174660,1537,17039622,100729857,524288,117703687,2048,16836856,201851137,-127729664,134612488,207840012,134612488,25356,16779276,201850881,524288,117703687,2048,17039622,100729857,17170432,67174660,1537,67567624,134219524,135004160,16843008,63720,101190755,1677199366,101190755,1661732870,135004160,65792,3080,67567624,134219524,17170432,67174660,1537,17039622,100729857,524288,117703687,2048,16779276,201851137,207814656,134612488,25356]}],[{"sector":1,"data":[-2122252288,65921,0,0,0,0,0,0,0,0,0,581304320,583410366,1953309458,1819506547,1668115310,259,2097152,262176,-65536,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1953300480,257,4194304,524352,0,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792]},{"sector":2,"data":[0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,1792,0,-12648448,-1,-12590849,-1,-12590849,-1,-12590849,-1,-12590849,-1,-12590849,-1,-12590849,-1,-12590849,-1,-12590849,-1,-12590849,-1,-12590849,-1,-62922497,33488641,-130031361,16580352,-247471873,16285692,-482353025,15745022,-952115137,14688255,-1891639265,12619775,-1623203825,12636159,-1623203825,12636159,-1623203825]},{"sector":3,"data":[12636159,-1623203825,12636159,-1891639281,12619775,-952115185,14688255,-482353121,15745022,-247472065,16285692,-130031489,16580352,-62922497,33488641,-12590849,-1,-12590849,-1,-12590849,-1,-12590849,-1,-12590849,-1,-12590849,-1,-12590849,-1,-12590849,-1,-29368065,16776963,-62922497,16711425,-130031489,2130509568,-264249281,-491776,-532684769,-966912,-1069555569,-1892608,-1069555513,-1630464,-1069555481,-1630464,-1069555481,-1630464,-1069555481,-1630464,-1069555481,-1892608,-532684601,-966912,-264249201,-491776,-130031585,2130509568,-62922689,16711425,-29368193,16776963,-12590849,-1,-12590849,-1,-12590849,-1,-12590849,-1,-12590849,-1,-12590849,-1,-12590849,-1,-12590849,-1,-12590849,-1,-12590849,-1,57599,0,0,0,1953300480,1835091728,838860901,1852393472,1214122356,1310720,1936941392,5266953,1308630656,-1879017627,1818848083,687865964,1734689280,1701736041,704643186,1987005952,6644585,1157639168,1919250552,780140660,1935756544,7497076,2004055149,1802398835,1802134381,-2134900736,419436802,838899712,1375731712,1919252069,83913075,-1946155776,-1711271424,33554690,1868137040,1634541685,1852776569,1830844780,543520367,1629515636,1634759456]},{"sector":4,"data":[1998611811,1701995880,1701344288,1920295712,544370547,1629516649,1869767456,3044211,419445760,234889216,16947968,-2142240000,27471,2004055149,1802398835,1802134381,-2134900736,419436802,838899712,1375731712,1919252069,83913075,-1946155776,-1711271424,33554690,1868137040,1634541685,1869488249,1634738292,539915123,1987005728,1752637541,543519333,543516788,1936880995,1763734127,543236211,1936683619,11891,1638460,917536,66203,1333809155,1828716651,-2143289344,285218310,1258328064,0,327717,524356,131071,1300385794,1869767529,1952870259,1852397344,1937207140,589824,23,-65536,1342177283,262018,234881024,134254592,33554176,-2108685824,1702258002,6910834,570435072,134234112,33554176,-2108685824,1936876886,544108393,825241137,327680,8650799,-65527,1342308353,1886339970,1734963833,-1457490840,943272224,1293954101,1869767529,1952870259,1919894304,11888,3866681,917536,65537,1333809155,1828716651,117440512,1702258002,359232370,1702258002,543781746,1667330640,1701013876,1835091744,1632633957,1494053747,1830843759,544502645,1936941392,1701401608,1835091744,1868106853,1867260021,1646294131,1493901433,1461745007,1646292591,1091051641,1953853282,3026478,0,2004055149,1802398835,1802134381,-1073545216,-1073545216,-1073545216,-1073545216,-1073545216,-16580608,-1,-1]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[9591373,77,32,65535,490209280,0,64,0,0,0,0,0,0,0,0,1024]},{"sector":9,"data":[1409299944,544434536,1735357040,544039282,1970365810,1936028265,1667845408,1869836146,1461744742,1868852841,168653687,-1273033180,-1205744375,567102465,15919962]},{"sector":10,"data":[279886,23724451,191394610,458758,268436480,65964,458752,196615,4194478,25165944,26345868,1805,131131,0,0,0,85983727,85983568,1559692130,1559818608,198056837,198177136,47914649,48034096,305078137,305197360,43656310,43708720,80094517,355860497,-2147287036,1,161087488,-265289663,32769,-2147221504,1,165347328,-265289713,32769,-2147155968,11,166330368,-265289716,32771,167116800,-265289719,32769,167706624,-265289716,248,168493056,-265289720,32770,169017344,-265289719,32776,169607168,-265289719,32775,170196992,-265289716,32777,170983424,-265289722,32778,171376640,-265289705,32772,172883968,-265289686,32774,175636480,-265289704,32773,-2147090432,3,177209344,-265289715,32769,178061312,-265289703,32770,179699712,-265289724,32771,-2146893824,1,179961856,1048578,32769,0,1279543567,1447121735,1095254853,1397049166,1380275208,1095649613,76,524289,100663308,1314014539,1191398469,1426344260,55723347,1070399999,17412866,-972734515,1070399750,17423621,33503232,-620412979,1070399746,17041925,-184205363,1070399755,17783045,-536526899,1070399748,16898565,939671501,1070399800,17153538,-553500723,1070399492,138758,-1056620595,1070399505]},{"sector":11,"data":[19716,33832909,1070399489,4,-1576714291,1070399488,4174850,201473997,1070399550,206341,-1660600371,1070399489,68102,1694646221,1070399537,6018306,2046967757,1070399554,3506690,1342324685,1070399553,4333314,2013675469,1070399489,2932738,1526874061,1070399532,2940930,-972931123,1070399534,3018242,620904397,1070399532,3141634,-1929232435,1070399536,3154690,1342324685,1070399536,2879234,-2097004595,1070399532,2158338,654458829,1070399528,4529154,-167624755,1070399556,3557378,285360077,1070399495,710147,1040400333,1070399498,9217,81869,1070399488,2988546,81869,1070399489,3,-469614643,1070399557,5226242,839008205,1070399566,5057794,1766662656,1936683619,544499311,1684957527,544438127,1819308097,1952539497,544108393,1836213588,1175126016,1279345486,1128350284,864843,1414415878,122507845,1313212160,1313818704,134220101,1312902726,1380276051,1174929418,1397310542,89018179,1163135744,1314344274,1330794564,134218051,1095978566,1396786518,1174994947,1346454350,1163023700,1174798342,1297040206,150997069,1313428048,1330794580,100666179,1347374662,151109,1129203211,1112296513,827016001,1828716556,1167087646,518818645,1996478606,108461832,-15960321,417860214,49120004,1562371467,576077,1167087646,518818645,1996478606,108461832,-15960321,1407715958,49120003,1562371467]},{"sector":12,"data":[576077,-2081649835,1996428012,175570700,-16222465,1996424822,-26108,-1073020928,-1070900875,-2097115159,1947398270,809403381,1198784533,355481343,354039551,384714381,-26032,-1073020928,2122396021,1963000048,-193528042,-887041,-1709887434,65535,184992899,-1928038976,1343680070,16777114,-297366272,-6664170,-1929379585,1343680070,1347469355,112720,-26032,-1073020928,1048810869,1946162480,1748927458,-613089279,24002179,-2853888,-15388618,-1877775306,583694,-443824661,705117,1167087646,518818645,-326903666,1916699402,914292737,24381127,1996423168,328775686,-4698082,-6664192,-1560280833,-1073020558,1996429439,1354771206,-26032,-1073020928,1923156084,-1546062079,1048772978,2113929586,142016291,-1191086943,-1056762984,1347607180,24262399,16777114,-163149568,24380929,24249897,-1962742397,1297948645,1226,1942235995,920188696,656953,959844215,1979714566,212022788,-2061568,-1140870941,-1329856848,-1705993987,65535,16777114,1958742784,1845937963,-1996488700,1459904526,1381172822,855713768,-6664000,1459618047,16777114,1958742784,-26417145,27322448,-850591816,-1957313759,-18196,-1957313699,-18196,-1957313699,1354771436,-1710983425,535,-1017256565,-1192457387,-1957691328,1861682246,1318735878,-1962934270,1438866917,1996483723,108461828,1342193848,16777114,1575324416,-326412861,-1710983425,605,-1017256565]},{"sector":13,"data":[736922453,1996443840,-26108,-443875328,-1957313699,74907628,16777114,1575324416,-326412861,-1710983425,710,-1017256565,-2081649835,-1070923028,71732048,-1706012007,65535,-1929492855,735087578,1575324608,-326412861,-16585597,-6683018,-1996488449,-628294074,-1070870389,-1017256565,-1275051,-6683018,-1962934017,1438866917,1996483723,-26108,-1073020928,28837236,721611520,1575324608,-326412861,1347469355,16777114,-402345728,-443874901,-1094991011,-990150396,1393062660,1130043391,-1007490237,-1207958341,567100416,-1024062862,-2147126144,1074041487,-1007912629,567095476,-1023118173,74319502,741772070,889239552,512303565,109839458,521012324,-1171980104,567083424,-1274115274,908256004,79038149,-617358708,-1306591434,-385649916,-986251703,-1945847290,244698,-1306591434,-1021372924,855643321,-1836583205,74711300,567099060,-1007492541,-387151019,1996423504,18147332,-1017256565,1475119957,-13413546,184960651,-149783104,72780759,-621291273,-1996488675,1451820614,172395268,310231051,1452005367,-136775928,7642,-1995815287,-1073018794,1317738101,105286408,-235417037,1183570059,-1947076860,-1875055661,1317787787,106334984,-788248949,-774254101,198758890,-134973989,871402481,-11513134,1996425846,14477320,1996903995,990409223,58065990,855764611,197561298,-150506241,-2082932774,1583022298,146955615,-326413056,-617392553,184960651,-149783104,72780755]},{"sector":14,"data":[-621291273,-1996488675,1451820614,172395268,310231051,1452004343,-136775928,7642,-1995815287,1317734486,-1948125436,138841080,-503844725,-141100541,-134019482,-963913845,125098763,-654845193,1577114243,146955615,-470994432,-773140218,-1006968104,-387151019,1021837416,1961102077,75399178,-972786432,519963718,73537221,-853213000,243998497,132318388,-16776517,-1962626530,1286865990,-994369075,-990150396,1393062660,1130043391,-1007490237,1458342741,-1962260853,-503905202,1183570059,-135230712,-1764097055,50751223,-1949070376,-1034068282,-994377720,-956595964,1393062660,1130043391,-1007490237,16973845,196814,16973933,196785,16973937,65960,16973825,196795,16973938,66048,16973829,66093,16973830,66108,16973831,66156,16973834,66180,16973839,66207,16973841,66231,16973844,197073,16973829,66273,16973849,65995,196638,16712037,196655,16711840,196656,16711774,16973873,196742,16974002,196922,16974027,65965,16973915,196903,1953300684,-2081649835,727057644,244338880,188804840,-12815168,347604086,-1070903296,-401698736,1183396163,146942,104671604,1023898624,594804743,45617131,28856320,-1080406016,-1962934272,-25263120,184841473,-1950059274,722070470,-1091638282,-370475007,1575324510,-326412861,-1202393981,-1924136880,-397365690,-998033630,1958742788]},{"sector":15,"data":[112645,-1070923029,-5486967,1771701366,-1996488701,-1202651578,-2091909112,1946201214,-339727612,112643,-26032,-443875328,-1957313699,49054700,-1996337503,79232582,62410752,1067077632,184549377,-14125888,1085801590,1319194626,-28952318,28837236,721611520,244338880,725695720,1085821120,244338690,-1959186200,1438866917,1183575179,474374,32047989,-385647103,20775399,-385649408,37552458,1026782208,57999363,1023443433,57999364,1023447017,57999365,1023523049,57999366,-385767703,62390779,45633536,1318735872,-385875967,28836331,-1070903296,55024208,-1039466496,-655817867,74907393,1342183608,-1873756117,805169166,1946158653,29485315,-2096859393,93758,28837237,721611520,1541951680,1975520069,27650307,24002179,-385649664,28835986,9365760,316030592,-15764480,-692583306,244338706,-381705752,45613439,28856320,-8197376,-370670474,46433278,-1207866647,-1202716666,1827209221,375039,309328,-2080414999,93246,28837237,721611520,1996443840,912320516,-1559968637,-692584084,244338706,-382499864,1996423471,1849590532,91553793,-352321096,1354771202,189057512,-385649216,1048772883,1962934638,-9508605,1856225323,16902401,24000255,-402360577,-998034193,15853828,-381390872,922681579,1996423530,15067140,-1559968637,-1628765846,23740035,-15698944,-16684490,-857209738,79987456,-1207866717,-1202716671,-1873804932]},{"sector":16,"data":[933488654,24002179,-14322688,-1070922634,1146415184,410304523,23987911,113704960,360,-1207666945,-1706033151,65535,1343396024,-773321072,-704199118,1085800466,-1202708990,1344143740,1342227640,-10978840,1085801590,28856322,244338688,-348174104,74907480,16777114,-11605248,-6683530,-352321281,736580,-957807755,1025146878,57999368,1040112873,57999369,1040138217,57999370,-335601175,802080,-1360460939,867838,-1326906507,933374,401146741,65617407,99156853,1575324670,-326412861,425603,146281077,129519616,-6664192,-1996488449,367724102,425603,28837237,721611520,105286080,16777114,74907392,16777114,163074048,2122534912,91488262,-352319304,1354771202,16777114,105286400,-1017256565,1575783253,-326412861,1023821451,208929280,1946288445,33701141,904603252,-15960321,1996425846,1404299272,1996433387,-26108,1996423168,175570700,-402098433,300635103,16777114,209125120,-16091393,1458047094,1575324499,-326412861,8711297,1589925463,1065362950,-385649408,-2033778546,65406,-8470909,-1005290113,1191118430,126494214,-8470901,176178056,-1958054464,-956334402,-16744381,1183646838,244338816,-1958850584,1962281968,112725,37795920,-401698736,1996436961,1619972,1354771280,417861264,408877,1996436597,1849590532,192217089,-352321096,2122776328,731245567,1944604864,1958742850,1849590549,91553793]},{"sector":17,"data":[-352321096,-1547687166,48955758,-963906005,-443850914,-1957313699,49054700,-1070901673,78551632,-1181155328,-101253040,-1996071285,1030151,79272528,79233024,-259305216,312474,112896,-1694987439,65535,-970209493,1685913,1586231799,1577552132,1575324511,503317698,1430622296,-1910575989,149717976,16271047,207537152,138906406,-1996029146,-1960379834,1183386183,106874108,653936267,2114078521,2139301461,1232338952,138885414,-1960435842,958792775,964626503,654067339,2114602809,1200301621,1194927622,-349471222,106873892,653936267,2097432377,1194927622,-1005095672,1183516254,1194927868,637959430,2081048377,-129579259,2122514433,695468280,-1962522997,201656406,-11513344,1996427894,3323920,1438443600,-1962516796,-1993934266,1183516743,1200170748,106873866,105351974,172439846,-1960441227,958792775,91490375,-352321096,-2084558078,-443874579,-900899553,1478361102,-1957345904,-661774612,638607044,605112202,1963015171,106873890,-1959264474,1451954246,1180946,922701906,922682582,1392903380,438682,-1207702784,-310181887,535137026,248139101,-326413056,10022017,16402119,75399936,-385649408,2122514617,57999366,-16731927,-6683530,-1996488449,-1072981434,-1628896395,108461824,1342190264,-9927027,-6664170,-16776961,1996462710,-26106,1996423168,-632910438,-6664170,-1962934017,1174657606,-1673098782,1352681101,1352550029,-1191306264,1861681155]}]],[[{"sector":1,"data":[-1036805732,45728299,871944960,-1983763518,1178196038,-1996259682,1187487302,-956301150,42054,731543295,-11513664,-16461258,-1929064394,1343658566,16777114,-1568767232,-1928498176,1343661638,16777114,-96040704,-16484609,-6645130,-1962934017,-443811258,-1957313699,75400172,-2094500864,1382462,922683764,-6679272,-2097151994,1281598,922683764,-6679666,-16776961,-6683530,-1962934017,46292453,-1873273344,-326412987,-2082959842,1183516396,315925262,-1157627976,1347616767,-1710328065,1863,-1996173149,-1207643626,-4521985,-11513089,-6680970,-1560280833,378078420,1183515862,173443848,-1996171101,-16459242,-1628959114,1975520043,-373282043,2122514771,2020933644,1342193848,1342184120,16777114,-96040704,-512442357,-1202667477,1385791232,-26032,1586167808,239569402,-1207011585,1385758721,-26032,1586167808,206014970,17975239,340248320,1857552384,373786899,-1961336948,1200164422,509706,38258432,1204289535,-1946157308,-1706025277,65535,-2055946229,-1694861569,65535,-1207011585,1385758721,-26032,446889984,1975520021,-10098429,504590008,1095760,-1070903266,1375796410,1347440720,1342203064,1347469355,1343125247,-26032,1183383552,1975520252,-13244157,-1206570845,-1706033139,65535,185931939,1348039872,-386107649,-997982793,328114948,-11668760,-773260170,-59310322,1342177720,173210,242679552,16777114,-59310336,-2080904472]},{"sector":2,"data":[297272004,244338688,-1205010456,-1202716671,-1873804736,831514638,-231681,664405622,-1207959541,569049089,-1202667477,-1202716662,-1873800362,683010062,-1694730497,1799,355468999,-1461125120,49120254,1562371467,707149,-2081649835,1996428012,8886788,1183383552,1975520254,12183811,702544,1748927312,91488257,-352319304,1354771202,229786,-129579264,1996423169,-26108,-1073020928,1187455860,-16776972,-6622090,-1996488449,-1072958394,20777588,-940804864,63558,16777114,-163133696,1048772609,1946157422,1748927250,192217089,16285315,1187448181,-16776970,112787062,1996443648,157915894,1996423168,506110,1354771280,628634,-163133696,1048772609,1946157422,1748927239,208928769,188903656,-955943488,63046,-1191282945,-11534331,-1566902666,-352321536,74907408,1342180024,1343444664,-1192751472,1575324455,503317186,1430622296,-1910575989,283935704,1024214667,57999386,1979802601,39184643,1023410477,58064916,50387689,-13724736,-15991897,-1070920074,-26032,1183383552,-1070903044,-1202696112,-1202715673,-1706032896,2584,737965823,79188160,-1202708971,-1202715671,-1706032896,65535,166445099,-401967361,28840836,-372102400,-236453274,-1447142,1743261302,46433071,-596328437,722293224,-6664000,-352321281,808910799,793569301,184730755,-4098880,-401264586,-997984866,1958742786,808910771,-60102635,355468999,-1528102912]},{"sector":3,"data":[24118983,1996423169,790423566,184730755,-7244608,1877479030,46433269,-1904885749,24118983,2078867456,176063487,-1207601919,48955393,1654898731,1958742785,242679575,-15960321,1996425846,108461832,16777114,29944064,-384249880,1048837962,1962934292,335988542,-16776960,-16459210,-16459722,-186118538,113542136,443924491,1342182072,-2048389488,37795882,2092453918,-1202708991,-397410108,28856370,244338688,-13244696,244321910,-14540312,28839542,-6664192,-385875713,1996488430,-181540850,-385694589,2122579682,91555596,-352321096,1354771202,518524560,-20125408,-16222465,1996424822,242679562,-2081057560,-1209464636,176063486,-385649408,2122579630,57933832,-88599,-6680970,-385875713,1996488346,108461832,-16091393,1996426358,-134354930,-385170301,1996488322,175570694,-1878100225,715188238,-385432445,1996488302,175570694,-401705217,-320132350,-16353537,1996425846,1043326990,1996480235,175570694,-401705217,-789889313,-401705217,1005190382,176062974,57934825,-1191261463,-1202716669,-1706033150,63,-469884439,-1257622775,-1593133814,973825290,-1257555445,-1257589494,-1257589494,-771050230,2013941002,-1257589494,772415498,18169098,678924916,1962999869,-10032893,1963000381,-9246461,1963004221,-15931133,1946227261,18103704,2045313909,-27137537,1963066173,-37689085,373103479,-385649407,4063090,-385649918,37617223,-385648894,1021968140]},{"sector":4,"data":[33832446,32047989,33963519,-1813445771,83901949,-1947663499,-31331843,-1962742397,1297948645,1426066122,1183575179,138819846,1183516796,138819844,1183384446,138840840,-1034033781,-1957363706,1988843244,-1961063676,1200161348,-1948742910,-1995994876,41191732,1575324510,1426064066,1448602763,-1962510709,1166738558,38045954,1971928201,-1982297342,-1956684233,79846885,-326413056,1460071555,140413782,1081219,2139838590,108432142,-1962641917,-956100537,972834441,712967806,645855035,-953432437,990135945,209457223,1066951,239585024,652935168,-1962385781,1191248966,273099022,1183521003,105265660,-969207683,1183517823,140413702,-1995552981,1586171975,276792072,-1591771392,-667221990,-661974411,446891915,138819840,113706613,26,-402098433,1600061228,-1034033781,-1957363706,82609132,294531,1586195828,276792072,-1962511104,1200162374,140413710,51267467,1183387719,105286654,-1996208637,1183579206,239548678,1200292735,140413710,-1961998455,1178205254,-1962574082,65797702,-1946401141,1194002526,273123598,989862561,185758936,1393456320,-82968,922683510,-756547558,138841086,-1962927453,113401317,-326413056,1460202627,972434262,1333529718,403472003,1586186623,-1948004084,-1961988417,1982532213,208995082,830404107,-1928706421,-1056763315,1183439500,-61437446,2114221625,74877189,1988821995,142016260,-16353537,1996487798,74907642,-347288088,-1946801406]},{"sector":5,"data":[-1956684090,180510181,-326413056,1443425411,818819,-1310129283,209617664,-385647080,2122514600,58523658,-2097111063,2119109246,9890051,-787718517,1854376931,-62486258,721440952,-259323322,2097444409,71731973,-963968277,200820361,-1955627328,1174604358,1181180,1996443678,108461832,-386369793,1586187350,209683452,-1962511104,1200163398,-60912886,51005323,1183386695,172395518,-1980217853,1183578694,172439818,1200292735,-60912886,-1962260599,1178204742,-1962574082,65797702,-1946532213,1194064990,206014730,175570771,-386369793,-1956708776,180510181,-326413056,1460464771,-989910186,-1960441250,-196703993,71797542,-1980479957,1183578182,-96040460,38243110,-990099831,1183517278,1194927868,1346534918,-362753,1996425334,71731974,2113422905,-129594619,1183515627,2095599620,66096126,108397054,-2096859607,2113930366,106873870,637945599,-16119866,-2092497842,2130707582,-339244284,-62456059,1600039403,-1034033781,-1957363702,116163564,173968214,819075,-1159134337,172460800,-1946270071,1174603846,-96040698,51136395,1183448646,-28931076,2131248697,-96061130,1183396222,-96040184,-1995946453,1195050566,-1961722868,1183386695,206030598,1204224000,-352321526,173968201,17188491,1193871943,-1959007476,1178205254,958102792,377289286,-1995946453,1586169414,138840842,1143731083,206014730,1586174187,-96040182,2131380025,-62485752,2080917049,105301765,2122514432]},{"sector":6,"data":[595460102,294531,1996426356,142016266,-402229505,1183579404,172360456,503321093,108461904,1581957608,-1034033781,-1957363704,108462060,-1202667477,-11534256,434635894,106859519,17319879,75399936,-955616000,4167,935879,1575324416,1426064578,-326898549,1586189830,-1995994362,1586232902,-1995994364,1586231878,71797758,-1946401143,1150024310,71796996,1183571595,71797244,-1962516853,-1962440250,1183515742,1577552382,-1034033781,-1957363708,351044588,1187468887,-956301066,63558,16402119,-62470400,1187446784,-956301058,16783366,-330905856,1187446784,722366192,-262239233,49301123,2088974219,91488264,-336050433,734497625,1183385156,-58817550,-1995606784,1187510910,-1996488196,1055653446,66733707,-952370106,1183518069,-28952078,1191118197,-1960317956,-163173433,-506231,1183646838,1575506166,-330921728,1064681483,-1980610933,2122972742,-62470150,2089353217,138725126,-2092498944,-2055333633,1177274251,-129594890,2122519531,327024888,-1929087233,-397347258,1183383584,-327253012,-941132800,6150,369542912,-1962934272,1600056390,-1034033781,-1957363710,317490156,1988843095,-263796988,2088960000,58654722,-2097085207,2130708092,8841475,556163,1149971326,138685188,-1946270071,1141048900,-196703992,1183384715,-28931086,1183384619,-193033234,1006761987,-352158679,142377836,-1960280832,1183384644,105155582,-1995946965,76280902,-1947056503,69928004]},{"sector":7,"data":[-1947318647,-193068040,16940073,-952177860,62534,1183384715,71601138,1183384619,105120750,1183515649,105120750,-956152791,1604,76224491,-1947056503,1183384132,-196687890,67174400,148679,-193035520,-1960610816,1183448646,-163133448,1174601728,-62486028,1358579399,108461824,1358317197,-402098945,2122517493,796131566,-1980610933,1187510342,50331894,1183444550,-96024580,1996423248,-163148538,971526166,-263812853,-1928956161,1343682118,-956114456,1604,1592805003,1575324511,1426064578,-326898549,-2091493572,2097154174,23259395,50873995,423429702,-385647104,113705300,65558,-16222465,1996424822,121169924,294531,-1880554628,71731968,1183439095,141986564,-964565295,-41218450,-1992495229,1183578694,-96064762,-335657335,1183427874,-1948742660,1191312966,-1070902524,-50141104,-939762037,67655,92914571,-16595069,2122578510,-713228038,-787972469,1858568679,-1391203570,-1946401143,71732184,-1962653911,-2096789053,1325335239,-25263106,-1947960064,1022264309,-2096869633,2097153150,11725059,-2096789075,-320142649,294531,-1578564737,141986560,-788105725,1858503142,71731982,-1946532215,1177224774,-28931590,-788234613,-2080570393,619396335,-1962742141,-62486268,1354771280,-1946391576,1204288606,-1962934008,1193934406,49251076,92914571,-2080747777,2097216126,142511059,-788103677,1858568679,-2095584498,76219118,-1946401143,71732184,-2096871679]},{"sector":8,"data":[-1014299921,1325335945,-25263106,-1948222208,-422509450,-293341949,-2096436420,-293403921,-1996190974,72285957,294531,1600056701,-1034033781,-1957363706,250381292,556675,-605486219,73319424,41418534,-1202667477,-397410280,1589966801,1200170500,2013210114,1354771206,1342183864,-990397208,-1993997218,-14285241,1354771255,1342197688,-990402328,-1993997218,2013210119,1354771204,1342197944,-990407448,-1993997218,1048773703,1946157078,1200301603,1194010118,1334519298,254486020,1363012087,-955810560,129094,1996428779,-69015544,-16222465,1996424822,151447556,-990361975,-1960442786,-523173305,-1995543035,-1960379322,723911751,-230258425,38243110,-335919479,-60912865,50087555,1183385483,1589924094,939468292,-887041,1240004726,-96010246,-1962647868,958855750,-713095609,-1034033781,-1957363706,149717996,-15829249,1996426358,142016266,-16353537,-1326971786,608076559,913637376,-1995684213,1183578694,-129595126,1074546315,-1946270071,1174604358,-62486268,-15829249,-16769482,-16769994,-16768458,-1929371594,-397346746,-443874351,836189,-2081649835,1448546028,-402098433,1589903552,2013210116,1354771202,1342183608,-1980332824,1589966406,2013210116,1354771206,1342183864,1224110312,972703369,58652230,-1962899479,-523110842,-1995543035,1586232390,-62487556,-1992848638,1589968502,1066083844,2097839161,-339244284,172264195,-1946925431,1141049924,-129595124,637820612,2097432377]},{"sector":9,"data":[1200301574,-1962677500,1177286726,-230258188,729726987,1588867,1443525632,1358198527,-336134168,142016282,-624897,1183577206,-28965900,503321093,-227082416,-71704,1183577670,-163169798,1600029822,-1034033781,-1957363706,116163564,406750038,1333067776,1457795,-12487680,971506806,-1959138310,-1962927586,2088960631,578682896,-1996209013,1150024774,-96040690,-16484609,-1924072330,-1056763316,1347607180,-401574657,-11075960,1962872436,-169744368,1719939,1589671168,-1034033781,-1957363710,82609132,-164932009,-150969672,-2114417682,-1962615609,-1981558306,-1995542849,1971913845,138790662,1032388608,-956138103,2629,1342981575,239453952,1170669568,1459617808,-397361109,1170733360,-956301304,3141,419332934,1996468862,218294276,-443850914,180829,-387151019,-443871887,-1957313699,82609132,2122536535,1451098116,556675,2122535036,1249843208,425603,2122531964,1048530694,-787980661,1858046947,175475470,50755115,-167048075,1983457406,-1996259836,1586168950,306285830,-1957277666,-654900154,1133045840,108461911,-174135210,688146059,1599999045,-1034033781,-1957363706,183272428,75400022,-385646848,2122514667,58523660,-2097093911,2115505278,14280963,687747,-790035587,176063232,-385647025,1586168007,-1948004084,-1995542905,1183579718,-28966134,-1996484091,1586296902,172395514,1023690243,159252560,721440952,1183386182,-27358460,51005323,1177226311]},{"sector":10,"data":[-163149558,92127243,16139975,71731968,-1980348925,1183579206,-62520566,2113949757,5289993,-1995815381,1996487750,-126418950,-231681,-873986954,-92864702,-493825,1996425334,74907398,-1958576664,2139356766,91553804,-351648117,-27358442,956974731,92080711,-351647861,172395267,-1979818357,1586170439,172395518,1143731083,-62520566,1393313673,-16091393,-1779893130,-443851020,705117,-2081649835,1183515372,172374278,1187448702,-352321026,105286421,1963607609,71731976,2131248697,-28915735,1183514624,1575324670,1426065602,-326898549,138840836,2114733625,172395272,-351512949,138840854,1963738681,105286408,2131379769,105286632,-1995942261,1451883590,73305086,1468598153,-1933341950,1575324626,1426066114,-326898549,138840836,2097956409,172395272,-351512949,138840854,1963738681,105286408,2081048121,105286632,-1995942261,1451883590,73305086,1468598153,-1933341950,1575324626,1426066114,-326898549,73304850,956843659,58589767,-1962886167,1194921030,-385646842,1194918064,-1962181118,1183384135,172410636,1586167808,138840836,2114340665,8907011,1208371083,-955758967,5244486,1183545835,-263812852,-1995815285,1183575622,1183399948,138841076,1963738681,105286408,-336443767,-230242555,1586167888,-1948003856,-1995542905,1183577670,-96040464,-28931776,16271047,-161576192,51005323,1183386695,-297366020,1183666198,-1924131090,1343682630,16777114,1958742784]},{"sector":11,"data":[242679562,1357792909,-956082456,2630,-1962129665,1178142790,-385646836,-443809924,836189,-1947432107,100729926,100728862,-1073020894,1048783486,2115502114,537315147,-956280832,402661894,507413248,947787776,-1962925919,-1560272362,378077212,686489630,1982083,-954106624,7686,470206208,-2097152000,8766,480317053,504793856,2138880,2233993,-1034033781,-1957363706,106859500,-1962926943,-1996481002,39291143,-1593549173,378208288,126418978,1560434569,1426064578,-326898549,-129594080,-1070903274,431509584,1354256384,-6664192,-2097151745,5694,1996424820,-171251700,-16091393,1996425334,74907398,1357661837,-1946280728,-1962439720,1183384151,-229209616,-16091393,1996425334,74907398,1357399693,-1946306328,-1962439720,1183384151,-162100748,922701906,922681374,1183645724,-555200284,-1948742659,39291655,-1995946359,1996425814,-260636686,2242303,2111231,1356875405,-1946322712,-1962439720,1183384151,106334468,1980159,1849087,-624897,669578358,1975520253,-227082475,-1018113,-16768458,-402644938,-1072956142,1996434292,506920716,473366272,574029568,540475136,-129594112,-38803376,-15960321,1996485238,-159973392,-336300289,209125245,-887041,922742902,922681374,1183645724,1122521320,-2585603,939459191,-887041,922742902,922681374,1183645724,-488091412,-2585604,939459191,1358448269,-172824,1996426358,-193527818,2242303]},{"sector":12,"data":[2111231,1356875405,-1946353432,41418712,1996437503,-193527818,2242303,2111231,1357137549,-1946378008,41418712,1183660031,451432696,-263812099,-1544399221,378077212,1183514654,-162100236,-1996480349,956310038,209055814,1178190475,-1207601678,48955393,614711339,1575324416,1426066114,-326898549,75399942,-2089518080,2135884926,71732078,3409451,245640951,-1577433463,103481400,1183383604,71732220,-1962920797,100924486,950206516,3449088,-1593819997,1084424248,808910592,-26091,922681344,1452938544,-16777187,-1961545674,-654837178,1354771280,1347440720,2068122,808910592,527473173,922681344,-6679248,721420543,1575324608,1426064066,-326898549,808910594,103258645,1183383552,922702078,1318719144,-16777210,28900982,-6664192,-16776961,922746486,922685090,-6680928,-1962934017,-443810234,-1957313699,641631212,527695872,355481343,504596152,-26032,1996423168,327596036,922701854,-2003173338,-1962934242,46292453,-326413056,-1928795005,1343682630,503329976,71732048,580538398,184549406,-1928039232,-397346746,1996426323,-129594106,1150963734,-2097151970,10302,1183659636,-1202710792,1344143420,503596683,510433872,-1073020928,983637620,-96040704,-28931776,1358448269,-15984920,1183647350,-1706027272,65535,-1034033781,-1957363708,183272428,2506371,-1921354752,1343682630,503329976,108461904,-1710983425,7844,410304523,1358448269]},{"sector":13,"data":[-16001304,1183647862,-11528456,-1711266250,7882,2637443,-1925483520,1343682630,503332024,108461904,-1710983425,7953,578076683,-1996473695,-1992230330,1183710790,-1796714248,142016267,385369741,641138512,-26112,1187446784,-352321290,-163133691,1183514625,1575324662,1426065090,-326898549,75399946,-385649408,1048772777,1946157410,10479875,33441479,-163148544,884494358,-1957683712,1344144966,2049946,1958742784,675185431,963903488,-1593418101,1194917954,-13730810,703331398,2637443,-1926794240,1343682118,503332024,105286480,1905938462,184549402,-1592822592,1183383610,1183400184,-28915716,2122514432,930414846,1358317197,-16062744,-1709887434,8087,355481343,-1957642197,787940422,-1924133210,1343682118,385238669,-26032,922681344,-6679248,-1962934017,113401317,-326413056,-1560000885,-1034092502,-1957363710,317490156,721435297,-1996474874,916584006,-230258432,2080654905,-163183864,2130986555,-159481082,721777920,17689024,2637443,-1593281536,1178140734,-2081655804,2080375934,75399942,-1207534056,-320274431,708739840,276037632,-772389237,-2131176968,-1992278044,233567302,32786119,-1962480896,1177154630,-230257678,2080654905,-1962480654,1174533190,-230257678,1005995523,-276954042,15892099,1187448189,-1962934030,1174663750,1588726,414714238,-163173632,-1947056503,103543366,1183383606,-230257682,50345635,983823942,-96024832,1187446784]},{"sector":14,"data":[-1962934024,788002374,1183387302,3711486,3409451,245640951,-2080618871,2080435838,-297366779,1183516139,1004074990,360511046,355481343,385369741,112720,-26032,451477504,808910847,1354771221,-135379317,-1506871336,1183666190,-1924131080,1343682630,2299290,808910592,555522581,-286720000,1575324670,503317186,1430622296,-1910575989,250381272,-1996478303,1178203206,-385649402,45613225,-1070903296,244338768,-16314136,-1709887434,7479,-1979954968,2122576454,1081409542,3979344,434655262,671533053,-16777216,-16764874,-402640330,1048772876,2098790450,3842381,1090012809,-1577302391,1183383604,3711478,-375159,1183707766,720049910,3292803,-14189056,1018753654,-397402624,113769680,65576,3159807,3290879,-16727064,1018753654,-397402624,922743906,1996428592,569285362,62390272,-1070903296,244338768,-1962511128,-310119354,535137026,46812509,-326413056,-1591284605,1178144424,-1954712572,-1465711546,-74192882,1356482185,383665805,106666576,922681344,1996428592,114268890,1183514624,-431619106,-1961974109,-1532762042,327983374,327681579,-1508996199,-1980106994,-1969103802,-2046416109,244029715,-101249372,-1191295351,1364197381,245774079,-152564080,-25755899,-388204801,922681368,-2034756304,-1202708973,-1706033151,9106,-1034033781,-1957363710,317490156,2123191895,3456758,-1515911402,1183557029,3318532,-1559869813,100859952,950206516]},{"sector":15,"data":[675185408,594804736,294531,1325342078,1040631556,-956295168,419447302,3449088,-1593819997,1084424248,-954275072,419446278,1107740416,-1593829120,1017315380,3711232,-956284765,10246,75399936,-955941352,1573958,50611851,-1560267258,406650938,-955286016,402668038,1619968,-1560000981,916521014,-129619200,201213577,-1591575104,1183383606,808910840,1354771221,-134330741,-1506871336,-1070903282,1347440720,1920410,3842304,2113685049,675185455,1853095936,737953419,788002886,1183387302,-1509555208,-62486258,737822347,788002374,1183387302,-163133446,887816192,956316321,1048509510,2637443,725054464,-150981114,-1995528658,100923462,1183387302,-163133444,950075392,872819456,-1506871552,-96040690,355481343,385238669,112720,548837968,1599995904,-1034033781,-1957363708,149717996,1342177976,1347469355,1994919568,-129595132,-371063,-1206570954,1344148358,1949338,327983360,-1508996199,-1543899378,-1969156432,-1543109869,-1952888818,-150035442,246326265,2113949501,5289987,3409411,-1560266589,922681408,-493218512,-1593835488,1151538054,327852288,-1593816925,104398922,394138508,-1558999903,922681418,1152914736,726670848,1385844928,-1593835484,787943088,1185091238,4890880,327943737,-1935599491,4891411,355481343,503334072,112720,575183440,922681344,922685102,-236450128,-92864515,-1191491608,-11534332,1996486774,-401698566,62391217]},{"sector":16,"data":[-1070903296,244338768,-16538392,-401264586,-443865207,-1957313699,585925612,-1207923736,-1706033139,2108,-15816541,1989805174,-1996488675,-11477434,-1710315466,9947,-1207666945,1344148358,2343322,-562626816,383796877,568498768,1996423168,-562626812,2204314,-532247808,-1545058813,1183518374,245670890,-1726772575,245632651,-1588528649,-1952902260,-150034930,1307070713,1575324669,1426064066,1048833163,1946157094,641138441,624007680,-443875328,-1957313699,641631212,158597120,2504447,454554,374784,625646160,-1432158208,-1407809266,571406,-26032,-1599930368,-1575581426,-1405681906,-1439236338,-26098,648216576,1575324416,-326412861,-1956320125,1183386694,172395514,-1946663287,-1992291258,1183579718,71697162,-1912846711,1343659078,385369741,3455056,-1113960418,-1996488667,-1072958394,1048780405,1946157096,-1673097961,1183666198,-1202710792,1344143420,1961882,-196704000,23215747,-385649664,2122514681,57999604,-1593773847,1178140734,-1593150050,1183383610,1183400094,-1673098334,17450539,1183516230,-1673122912,-1929099639,-397370298,1183646799,-11528540,1996425334,75399942,-1962574512,65733702,1342197944,-1992959512,1996486214,-1673097970,922701846,-811991002,-16777187,1996426870,-1636368484,379864717,74907472,16777114,-1639544064,-1962129783,1183423558,-159481078,-949193728,63046,1589920747,105316102,-2146961882,2122519412,729088246,-1995815285]},{"sector":17,"data":[1187486790,-352321034,-159481058,-1961331712,1183386182,242679712,379340429,650353232,1187446784,-1593835274,1174474404,72285962,294531,2122560637,326369526,-1995815285,1996464198,-1673097970,127553558,-1962934242,214064613,-326413056,-15143805,922684022,-2087055704,-16777187,28838518,-1885712384,-16777187,922684022,922685090,-1617293664,-1006632931,-1960442274,1183384135,126559994,-2080881015,960062,-1499396482,48973838,1589952555,1191388678,-28931834,245644931,-1593410048,-347599196,-994039038,52823646,1183384647,-129593860,45213776,384321165,3455056,1183666206,-1706027272,9627,477413387,294531,1996426100,-398029558,-504868842,175570934,384321165,-293279664,2637443,-1590332416,1178140730,959283194,679411270,-1996472671,1117911622,-28931840,294531,1996426100,-129594102,-1511501802,175570934,385369741,-297211824,-1034033781,-1957363704,49054700,3455062,1996443678,74907398,2615962,200313600,-2094828042,10302,1018698868,-11526656,1996424822,-26108,-259325952,108328459,-1996473695,-167049658,1996428148,74907398,-1996305944,1451820102,-346927098,327852298,-1935585216,-1706016749,65535,1575324510,503317698,1430622296,-1910575989,82609112,1024083595,58064906,50439401,-13724736,-2094412377,19518,-1830222987,685611521,1048772608,1962934352,245670256,734147481,178626,-1036781357,-1992244693,922745926,-1070918352]}],[{"sector":1,"data":[-59310256,245774079,16777114,1312719616,57999360,-2097064727,963134,1256784765,808910593,692427285,113704960,65618,5650175,5519103,-369162264,1048772909,1946157132,19130627,4982471,1048772609,1946157136,245670288,1048813035,1962934348,17295619,16777114,1376175872,-956301312,19462,15984896,246550271,1074705057,-420936844,1379828480,57999360,-16720663,-1709887434,7470,5375687,-890699776,-1308164352,-385649650,1048772801,1962934348,12052739,5127811,-385649408,1048772781,1946157138,10742019,355481343,2718362,1376175872,-385875712,113705105,78,113746923,65614,4996739,-2088995840,21054,1048802677,2080378546,808910702,492804629,922681344,922681430,837288020,-1950422018,1419970630,105286400,-2097129821,19518,-380615308,1048837898,1962934352,1342621498,-1207959296,726663173,-1873784640,-26482674,1048782315,1946157136,1342621470,-352321536,-769083678,422113320,1193904937,1512694568,-1574350295,-1591099863,378208340,-310181802,535137026,113921373,-326413056,245776003,-2092139008,959550,1586185598,38243076,-1508996199,66713358,-1996474874,126550599,-1542550631,66713358,-1996475386,105351943,-1508996199,66713358,-1996474874,1200293447,244029700,-101249372,3409411,-1962653815,46292453,-326413056,-1962647925,103481927,787939382,1200164518,721914626,-150981626,-1995529170,105351943,3540523]},{"sector":2,"data":[245772023,-1962522743,103482439,787939380,1200164516,46292228,-326413056,245776003,-2094432768,959550,1183523454,244029702,-101249370,3540483,-1962522999,-1952906170,-150035442,872809465,71731456,-1962654069,-443873706,311901,-1947432107,103482950,787939382,1183387302,71731974,3409451,245640951,-1962654071,-1034090922,-1957363708,245670380,-461309743,71696767,-16353537,-2065169290,71731711,184964745,-955482670,1606,280263,-2093159680,10302,983634036,105265408,1050740853,105285888,1048782315,1946157096,3842317,2080785977,4104453,983632363,105265408,-1991767684,1187448390,-1962913788,1451951174,1575324422,503317698,1430622296,-1910575989,108954584,-2095549440,91710,79171956,922701824,922685374,244322240,-224024,1172833910,49120043,1562371467,182861,-2081649835,53822,922686846,922685376,922685374,-504889134,-771307541,-2097152000,53310,922689918,922685380,-1029632062,258914575,-628309757,922701906,635961552,-804861972,-1962934272,516120037,1430622296,-1910575989,108954584,-14975488,-1206927306,103481368,-1957687360,-654899642,-417339312,264111815,-310181888,535137026,46812509,-1873273344,-326412987,-2082959842,2113930878,-9639909,264255231,721426616,1343209478,-402229505,113764073,4030,-1962742397,1297948645,503317194,1430622296,-1910575989,106859480,-1961902431,-1995456490,39291143,-762526837]},{"sector":3,"data":[-1962742397,1297948645,503317194,1430622296,-1910575989,108954584,-2094892032,2135885438,142508828,-2095678464,2132281470,-16979952,-1962522997,-1096611754,-1072264945,49120015,1562371467,313933,1167087646,518818645,45668494,-1070903296,244338768,-2080681752,-443874579,-884122337,1167087646,518818645,-326903666,-21698556,-1980729112,-397345722,922741200,1996428592,618240764,922681344,-1578627136,309490,-1103691952,-1070137585,-401698801,62454537,-1070903296,244338768,-939852568,54278,-704198912,-2097152000,-443874579,-884122337,1167087646,518818645,-326903666,178210,1354771280,-401698736,1996487373,-565801722,-6664170,-16776961,1183702646,-11528478,1491656822,108462073,383665805,-26032,62390272,-1070903296,244338768,-2080728856,-443874579,-900899553,1478361090,-1957345904,-661774612,-2091193213,1962936446,108954374,-1957661696,1183386694,-1471756374,-11534336,1183688822,-1202710868,-397410223,1183440971,-1404662362,1183666198,-11528532,401122934,108954414,-1928563712,-11490234,-6642058,-2097151745,1946159230,-1404662518,-1502150832,-2096724504,-443874579,-900899553,1478361096,-1957345904,-661774612,-401019773,1996488070,112648,1815543632,1781989121,-401698815,2122579816,1098192648,721435297,-1996474874,117439558,1048772822,2130772182,81157,244322431,-1862366744,-26941426,14026439,585629696,1354771239,1342183608,1358954424,-1785624,-352267258]},{"sector":4,"data":[142508815,-2096530432,2098661502,138870531,-1962522997,-1096611754,-1072264945,-364475121,922701846,-1070918352,-1706012592,65535,125091851,31999687,-955913472,59462,-2081929589,-443874579,-900899553,1478361092,-1957345904,-661774612,-955716477,64070,425603,32047999,-767655167,58654720,-16717591,-15744970,-15745482,-402599370,113764516,210,-1962880791,100861510,1346179006,-1962574080,132843078,721440952,-1995457018,1048836166,1946157262,-801209544,242548736,-1961902431,-1559248874,378081218,-1096740924,258868495,1183535134,-11526648,-202835850,-129594581,264111619,264373803,-352268125,-1070137581,-1103692017,138840847,1996443678,-552474376,33048203,17808902,1177094214,-1103199482,1333677839,15533814,-2095090624,403685438,922687604,922685376,244322238,-1979813912,113769030,4030,113715691,5181374,425603,922688894,922685376,1183518654,138806022,-1202708920,-397410303,1187503795,-2097151994,2113930878,-14161661,13371079,1183514625,49120250,1562371467,313933,1167087646,518818645,-326903666,-311695356,1358710409,503727755,-459085744,355481343,-1694730497,11522,-1962742397,1297948645,503317194,1430622296,-1910575989,264151512,264246923,-1995455837,-955268074,53254,-838416640,-2097151744,-443874579,-884122337,1167087646,518818645,1048828046,2113929424,-1003028707,-1036583153,264413455,504327685,-801702064,-409802752]},{"sector":5,"data":[13633223,113704960,206,-1962742397,1297948645,-1873273141,-326412987,-1948742114,100730438,-310181678,535137026,46812509,-326413056,-1957313699,71759852,997474304,1023690379,661979131,1962933309,-180976,1996433780,1226758,-339727536,108461834,1342181304,1342187448,-2132275568,-15930624,179832438,-692563968,-1947407596,79846885,-326413056,1988843095,108956420,-2096607489,2113931390,1191545355,172360840,1324185024,1600046731,-1017256565,1167087646,518818645,1448597646,-1962379637,-8190338,1443986954,-1181104245,-101253110,-401698736,-259260454,-1181104245,-101253110,-2010070400,-963951084,-310157474,535137026,80366941,-1873273344,-326412987,-2116514274,1459661036,108432214,168328835,922687604,1996427988,1485212936,-1202710785,-1706033072,12772,-2037575445,1343684440,504671416,-26032,-2037579776,1343684440,16777114,-62486272,755517067,305987594,-385649152,-1073544940,-1476448621,922694320,-1957293356,-1903297466,-1056702632,1347605132,721440952,-1705968570,13079,821577415,15132928,721440952,1448148038,-1912832373,1358911619,-2080442648,-521468220,721440952,1448148038,-1912832373,1358911619,-2080448792,1187448516,-385800968,1187446960,-385867272,1187446952,-385866760,1354236064,-2037559296,-1924071592,-397367226,-997982541,5289990,-2037557680,-397344936,-997982557,-96040698,-1473395413,1356396543,1353205389,-386238721,-997982581,-129579258,1592459300]},{"sector":6,"data":[1342197944,-10975603,-1471771312,-26089392,-1207516029,1448083536,-10975603,-27137968,-1996045181,-986973626,-134240211,1183666392,1996443816,-11474438,837825008,837825144,835334640,837300774,837825000,837825070,835334640,839398001,842412664,2122527352,74779144,284774016,-1928694017,385833094,326023248,1996443678,-25864,1599995904,-1962742397,1297948645,1426065098,1996483723,178180,311998544,347623454,748310528,-16777165,62391414,1857572864,-1202708973,-1706033132,13121,-1207666945,-1202716671,1344148740,1342182584,3366810,1975520000,-373282043,1996423476,2406404,350926928,146296862,2023378944,184549427,-1936192,599262326,-122138624,-1202708972,-1706033144,13197,-1207666945,-1202716663,1344148722,1342178744,3383962,74907392,1342179512,504599224,374864,867670608,1996423168,2471940,313571408,146296862,-862302208,-16777165,649593974,-860336128,-1202708974,-1706033144,13281,-1207666945,-1202716666,1344143808,1342210232,3405466,74907392,1342180024,504671416,2668624,873175632,1996423168,1947652,324450384,347623454,546983936,-16777164,515376246,481841152,-1202708971,-1706033132,13372,58048523,-57623,532153462,-1195880448,-1202708974,-1706033132,13393,-1207666945,-1202716668,1344148100,1342182584,3434138,74907392,1342185656,504666296,1357904,880515664,1996423168,2603012,349616208,347623454]},{"sector":7,"data":[-6664192,-1207959297,-443875327,180829,-2081649835,1048773868,1962934636,9955587,16533191,349479168,352454201,922688892,28841266,-1070903296,1347440720,-26032,1183383552,33998844,-2097151979,2080439422,75399975,-15172096,722809398,922702016,1183520002,-11526650,1167721590,-1593835482,100733828,1072370946,355612415,16777114,1812383488,-16777215,-1709887434,14427,201213577,1343059136,1342179512,-1705983957,2297,355481343,-386107649,-692520056,244338706,-1962912792,79846885,-326413056,-1962611581,1344144454,3255706,71697152,1586177259,-2012771586,1547500614,977011828,1191118197,-1961169922,1344144454,519980683,-26032,1183383552,71732222,2013152825,-28931119,-1034033781,1478361090,-1957345904,-661774612,-1957106557,1065354846,1393128448,-1979737368,99350598,-1728559417,1782481682,208928769,1343548088,-1979743512,99351110,-923121977,1816036099,208928769,1343551672,-1979749656,99351622,-922990905,-1471771389,1857572886,-1706025453,12706,380126861,313571408,-23441378,-1929379787,1343662150,519718539,906861136,1183645696,-1957685592,1344207942,3546266,-1471771392,-860336106,-1706025454,13867,380126861,-129594544,-6664162,-16776961,-1927991242,1343662150,16777114,49120000,1562371467,182861,1167087646,518818645,-326903666,-62470396,1048772608,1962934632,1849590535,292880385,-16353537,1996425334,565569546,-335788407]},{"sector":8,"data":[-301533641,91490304,-352321096,-318310866,460595200,17464963,1187452286,-352321270,108461838,-1710721281,65535,-244087,2122517070,-377683958,-2080618869,-443874579,-884122337,-2081649835,-2091515156,92222,922685300,1996423534,5629956,-352009085,-301533621,1148520448,15533814,-2093714400,2113996926,138856238,669712385,-1929087233,1343620678,1342177720,401084048,-2081387762,259850750,343275019,1342189752,16777114,-16127232,2122516558,-797114360,1575324510,-326412861,23608963,-1207601920,48955393,1755562027,74907393,425603,-1073019788,28837236,721611520,1704612032,-1962934264,1438866917,-326898549,-1957275902,2123039862,3964934,1325338996,142508808,-1408729600,1023297160,-972589780,-963969019,1183451371,1191545086,1600052203,-1017256565,-1192457387,1344144339,503565496,63682640,1183535134,-11526652,-6683018,-1996488449,-443873722,-1957313699,-1528004116,2668544,-700019376,-3610544,184861827,-955812416,44102,683169771,1183666176,1183666350,1927827670,113542143,-1191295351,-1924136920,1358912646,-385976577,-997982371,-28931834,1342187704,1350846093,-385976577,-997982391,1552321798,-1924131073,1343663686,377767565,1354771280,-26032,1183383552,-1404662868,-1017256565,1167087646,518818645,28891278,49120000,1562371467,182861,-2115204267,-16744212,-694549386,-1996488696,2122579526,57999366,-402609943,849608524,2009074453,74907410]},{"sector":9,"data":[1358954424,-940036120,1606,-16713751,-1206570442,-1202716665,-1202716670,1344144348,1347469355,3720602,-666466048,612155403,355612415,1342180024,504551096,893491792,-1202716672,1344148182,1347469355,3757978,-666466048,14188163,922693500,179836210,-6664192,-1560280833,922686676,1183651122,-1706027300,9422,64767627,-2069633978,-431584493,-351042909,842465149,964336149,1996423168,-663290108,-2080413207,93246,1183655540,244338816,-1946994456,-1962439720,1183384151,-2041149052,1354771282,1342177720,-1873756117,-195368946,23871107,-13143040,-1206570442,726663169,1347440832,1905938512,-956301255,1376774,842465024,768021,1354771280,1347440720,3454618,842465024,888510997,2122514432,359923966,-1191282945,-2091909112,1962935934,1354771202,3792282,105286400,-1017256565,-2081649835,1996423916,889494020,1183383552,1849590782,326369281,721712895,535318720,1958742797,1845938004,-2097151999,93246,1996431732,571646,1354771280,3803802,1354771200,-402360577,-997982618,1812383492,-2097151999,92734,1637489268,-16777213,163118710,-1070903296,890804816,113704960,362,-352321096,-1950340350,516120037,1430622296,-1910575989,142016472,-2096734581,1946160255,-339727612,112643,106859344,-16091137,-6683017,-2097151745,-443874579,-900899553,-1957363708,216826860,16777114,-62486272,-1694607735,15000,-1980479863,1183577686,1347590404]},{"sector":10,"data":[-1727797064,-1298509742,1375731772,-25755824,-1694730497,15551,-129594983,-1694869879,65535,468993579,1446770262,1913550842,-129615099,-6682765,-352321281,1575324642,1426064066,-326898549,1815543558,-28930797,28856342,-811970560,-1996488643,20838982,-2146667264,1947074174,-25263904,-1948617718,-1072956858,20778100,-955157504,326726,1187448299,-1962932228,418118726,821984896,2122377596,-478202370,-1728166262,-1996476371,-471073722,-1017256565,-2081649835,-1923720980,1183427142,-2585604,130481222,-60912831,-956545281,1586189319,-62455812,-1957492794,1191181406,906479356,-237941,130481222,-59310275,-16228725,244327543,-1980384792,-661914554,-956545281,1586176007,-62455812,-1957492794,1191181406,923256572,-237941,130481222,-59310275,-16228725,244327031,-1980398104,-661914554,-956545281,1586176007,-62455812,-1957492794,1191181406,822593276,-237941,130481222,-60912847,-956545281,1586183431,310346504,-16223232,1186528374,-16323840,-927400842,244338688,-1980417560,-661914554,-956545281,1586176007,-62455812,-1958475834,2139293790,74711056,48977072,1586188464,-62455812,1183516552,2491656,-335657335,-92372951,-2147058640,2117728894,-92372974,-2146667476,1948514942,-92372986,-1962183382,1191181406,-96040196,1586169736,-28901378,1183319946,1975519994,-60912696,-956545281,1586171143,509692,-1985329523,1183579718,-62486268,11028167,-1961104640]},{"sector":11,"data":[1065418334,-1961135104,1191181406,-25785348,-1963047169,-16283644,1183557702,-1471792890,1183571326,-443851096,-1957313699,105286636,-1202695527,1385768720,-26032,1347551232,-1727773045,-6664110,1342177535,-1946316824,79846885,-326413056,11988097,-263796906,922681345,1183650668,-1706027276,15646,325859071,-1705983957,15613,325859071,1342177720,4008602,75399936,-13339392,95946358,-1125625856,79987711,325859071,385107597,-26032,922681344,-1070918804,1027054160,922681344,28840812,-6664192,-2130706177,8389758,1996430965,5289990,1250331984,-806858497,113542141,-1912715639,-1979757946,367786566,-1325107573,-1947806974,-1996226940,-2071201210,1183384576,1815543806,-96040173,1996443678,-25858,1183383552,-28931090,1978549817,1586188398,376962822,-1191245848,-397410054,2122448052,1946189828,75399942,-1207470843,-397409554,922746016,1183650668,-2091903332,2102455934,-297366779,1354236907,-6664192,-1996488449,1183575110,-330941970,1183654261,-230258276,-2081665281,2080435326,-228685033,-1947056385,1191180918,939821818,-941263865,61510,1592805003,-1017256565,1167087646,518818645,-326903666,-62470396,1183514631,1958742796,81185,37567348,1029272576,2020868099,1962935357,11725059,1962935613,13363459,1183519211,264938246,17581767,-871971072,-1962934257,1183516766,-1962440196,-857142202,105286400,264898091,2080630845,175570918,-397361109]},{"sector":12,"data":[-997982637,1958742788,205965085,-806682622,721831563,1024444934,-1015281212,-1979964184,-1072956346,1187448692,-352320244,205965234,-1410662397,-2146804085,1962944127,-939079928,-352320497,-939079930,-16744433,922684022,15208392,79987710,225820683,83642055,205965056,1994981376,-62470145,1187446791,-385874932,-890699927,-62486021,209043467,264781443,-955943676,130118,133987971,1256784757,-2083853313,1035326,113710197,69580,-1559869813,1187450826,-385875700,1187512109,-352320004,49120168,1562371467,576077,-2081649835,-1070922516,2130884688,-1706012007,1938,201213577,1342796992,4172954,-62486272,1342433464,-331800,722693174,-258322240,-1207959492,-397408804,1996487388,178180,-45488048,-1207647101,-397408304,1996487368,243716,-46798768,-1207647101,-397410104,2122578612,141820158,-1694730497,65535,-1017256565,1167087646,518818645,-326903666,-330905828,1187497664,-956289554,1111550022,267011783,108461824,1342177720,-2080575768,1570374852,-1996488646,1451880518,1076468466,1183383552,-430536220,-1149185,1996483702,-260636686,4201882,1183422720,-94991880,-1411329,1996482678,-260636686,4225946,1183422720,-162100748,4214170,-465163520,1004951067,1350040150,1178273138,-11963400,28837494,-2065149952,79987708,3827866,-465163520,1004951067,309851734,1178273138,-401902604,1183447637,474620,1996480116,-394854422,-887041]},{"sector":13,"data":[-1936002954,-1728053190,301221377,-1595148714,33324675,1996425589,-22484986,-2096970621,-443874579,-900899553,-1957363710,149717996,-164932009,1586183403,105316102,-1986525302,1187510854,-2097151752,1929967742,-2114024667,-1325399577,-1947741425,-2132225594,-955547676,1183576203,75258,1859252275,-129564678,1325389291,75399940,-1950647040,-1956684090,79846885,-1873273344,-326412987,-2082959842,1085801708,79187970,-994553853,132665344,1975520026,112645,-1070923029,201082505,-2095614784,1946158718,50640913,1085820958,-1202708990,-397410108,1183521278,49120252,1562371467,182861,1167087646,518818645,-327034738,-2033778554,65404,503727755,2122747216,-1202710785,-1706029056,17077,-8747383,1618788363,37750471,1085800448,-994553854,300437504,37790719,-8734977,503464120,12892240,-26032,-1002635264,-1207602176,48955393,-2037792725,-1072955524,28838773,244338688,-335594776,142016272,1342181304,1342185144,-1863840112,2058813423,1125161727,367722496,-1207404801,-11534325,244319862,-940607768,33520774,2092860160,91554047,-352321096,-1547687166,-1098710684,1962999676,112645,-1070923029,-1962742397,1297948645,503317706,1430622296,-1910575989,1849590744,175374337,325859071,-402098433,2122514970,544473094,-2096603509,1962937983,-1908505849,108331027,353908479,922682603,1692930958,-515970849,-16228725,1491604599,140413715,-2095822967,-443874579,-900899553]},{"sector":14,"data":[1478361094,-1957345904,-661774612,22080641,503727755,-26032,-2033778688,65400,-1996337503,-939557754,50296454,105286400,-2037559266,1343684478,1342177976,16777114,1954973952,2092960767,-2037559211,1343684272,1342227640,16777114,12860672,-2037702539,-2037776720,-2033713286,65200,-21985651,12892240,-38606768,-8747461,1996428660,1751048,108461904,1625820816,2022098926,-16776705,-1694534474,65535,1996428779,833544,108461904,1088949904,2022098926,-2097151489,16742590,1085822837,-1924129278,385790086,12892240,402450512,1342177720,-1326969200,808910845,37795861,38707536,-8616391,28837236,721611520,244338880,-1191267096,1344148182,377898637,903912016,-692584448,244338706,-940441624,16868358,2025751296,91554047,-352321096,-2084558078,-443874579,-900899553,-1957363708,172395244,2040672516,108954369,-1957661440,-197326778,1024619775,729087996,1962933821,74907442,-352316488,74907440,1342183352,38026883,-1207602176,65732642,1342185912,2095582864,-15143955,179831926,-2068295680,-1250542,481821814,1991790592,-1948194047,1438866917,-326898549,73304834,68700042,24748593,503412408,67156048,16824400,-26032,1183383552,2092960766,1996443655,1894404,-1946270069,1438866917,2122574987,142344196,-1710983425,65535,-1017256565,-2081649835,2122521324,58523654,-16740887,1183647350,-1706027290,65535,2088550411,-1962647925]},{"sector":15,"data":[1183389255,440896231,-1964423544,1183325255,508005099,-940947832,2029126,33048263,-212959231,541559560,208977931,1946157373,146721,921382516,301221574,334841542,32722560,49499776,-1074567552,-537696640,1317018859,1317028083,1719673075,1719729907,183238131,-1074567552,-537696640,1183706347,-1706027290,65535,-1034033781,1478361092,-1957345904,-661774612,-15960321,1996425846,108461832,16777114,49120000,1562371467,576077,1167087646,518818645,-326903666,-163133684,1048772608,1962934638,10414339,325860995,-385647360,1187446932,-16776972,-15504330,1996425846,108461832,4031130,-163149568,956712587,1333065286,16154243,1183516797,-1982269450,922744390,1183650668,-1706027272,18037,1039419017,326435072,-15960321,-1710003146,18023,16008903,-1608979712,822346328,-16680542,364383350,1991790592,244338689,-2081705240,149566,1996427636,175570700,-16222465,244381302,-2080429080,1946219646,-163133691,1183580159,49120246,1562371467,576077,1167087646,518818645,-326903666,-62470378,1048772608,1962934638,10938627,325860995,-385647360,-476446564,-1996488641,1451881030,1179163380,1183383552,-329872918,-1728049224,1085821010,1030722,2140819538,1375731770,-193527984,-1695385857,16389,-297367143,-1695525239,16366,468338219,1446767702,1916172272,-297387259,922693491,922686768,-6679700,-16776961,-1928106954,1343682118,3990682]},{"sector":16,"data":[16824320,-1980152277,-1072956346,1187455103,-352321284,39362746,2040672516,808910593,1423381,24557648,-401698736,1183574719,49120252,1562371467,-1957311667,1849590764,544473089,325860995,-15107072,-1710003146,65535,1342369464,-818200,-1710003146,65535,-1017256565,-2081649835,1187451116,-16776974,-1432746378,-1996488647,2122576966,57999364,-2097086743,148542,1048584820,1962934886,636955,571472,1198299728,-1073020928,28837237,721611520,-230258240,15892099,-1880554636,37795840,-53483440,-1560099709,-1073015956,922686333,726663768,1996443840,-61675514,-351746941,1144947558,1685323778,40255104,-1201835008,-1202716662,-1706033143,3060,1039550089,343212039,-1207535873,726663184,244338880,1038737128,-680198142,200689291,1024425152,679346177,2080376381,474373,1996427134,1161222,1354771280,-1259860336,1815543785,-58202093,-956119933,127558,15892099,-1058471052,-193528064,1342177720,-1710983425,18403,-1191938305,-11534334,1520043126,-16777207,-2095763402,1946158206,1748927239,980680705,-352321096,505911,440400,1192663632,-1073020928,1048817012,1946157636,1715372049,175374338,1342324920,-2080957976,922682052,317199212,46433276,-1070887189,928225872,2122514432,796131332,355481343,385369741,616667728,922681344,-1483074256,-1996488668,922742854,244323632,-1778200,-15388618,345698422,-16777168,129561718,2122534912]},{"sector":17,"data":[91488260,-352319304,1354771202,3773850,-226589952,-1207601920,48955393,-443826133,311901,-2081649835,1183668460,-1371108944,11028167,1815543552,-1404662509,28856342,-442871808,-1996488632,-1072977338,20799100,-2132642560,1963633790,-1468103716,-14123696,-1961661386,1344187974,1342177720,3854234,-1438217984,880590859,-578895861,-2136056181,460655167,-1929377850,1343664198,503727755,-26032,-1073020928,28840565,-1961891072,1065397854,-5082099,-1377063354,-443826133,311901,-2081649835,2122516716,1131675652,16533191,-28915968,2122514432,1535056126,-1995893016,1451882566,1958874106,-25755826,-1946388737,201717830,-1202695680,-397410224,1589953711,1200170744,-397212150,1191118973,-943199234,65094,419331715,681647487,705039108,-1005292540,637806622,637958143,-402360321,1191118785,-1948390402,46292453,-326413056,-402330493,1183388275,-27883012,393527819,654073540,1342851015,96701184,1347551244,175636262,-1961783832,1452014662,1575324670,-326412861,184829579,158598726,-16353537,-1394080650,1575324434,1426064578,-326898549,574522118,57999364,-16733463,28836982,-1835380736,-1996488630,1996488262,112644,-62485168,1183666198,-1706027270,19162,1023821451,2104950789,781434883,1248241663,-335655169,-28901583,983641323,906373888,-28956416,983638251,906373888,-28966656,1183519979,-28931832,1245449451,1246120513,1247693394,2122533470,125632766]}],[{"sector":1,"data":[16664263,-1962153216,1178204742,-1996259586,1996488262,112644,1254267472,1178271744,-15305474,28836982,1996443648,1620726014,-16777141,300482166,1575324426,-326412861,-16323453,-1070922634,1262918224,1183383552,74907642,-1924087765,1343684166,385631885,1283103312,1183514624,1958742790,81180,37561716,1025864704,745799683,1946158141,343347,-286718348,-95486208,16416387,1183525501,-13767682,-252970426,721434785,687879174,-454297018,721434785,16790534,-655623610,-1995946357,-789841338,972834443,58653254,-375159,-1070922634,1280350800,1178271744,-385649158,1996423325,1354771204,-1191545089,-1706033151,65535,325729923,-1207077888,726663170,-1873784640,-592451570,-386238721,1048826213,1946162026,243725,1354771280,-401698736,883022997,-1408878336,-1593213934,104398904,477893294,325729923,-1203473408,726663170,-1873784640,-596645874,325715655,803930112,1342178488,313276159,722644641,1342451718,1390939792,1782481884,326434835,1342178232,1347469355,1055395472,1778829276,-1962933997,1438866917,1352789131,1443248402,-1592888046,104403534,91558484,-352321096,-1950340350,1438866917,-326898549,574522118,57999364,-2097085207,277054,-85392524,973522688,-1593835260,103481396,1325727800,-62486272,92127243,16533191,74907392,-1705983957,19705,2130462267,-59310320,1342178488,-402360577,-997982641,74907398,-1924087765,1343683142,385762957]},{"sector":2,"data":[1288280656,2122514432,141885690,972834443,326434374,721712895,-11513664,28900470,-308654080,-1593835444,103482418,100859962,-1991770058,-1072956346,1187448189,-16776964,28836982,1183666176,-1924131078,1343684166,16777114,-92372224,-1962380032,1178205254,-15305474,28836982,-1070903296,-59310256,1342177720,16777114,74907392,1342177720,16777114,906922752,806224640,1959279364,74907416,1342177720,50345633,1342451718,1342177720,5108122,973522688,-1962934268,46292453,-1873273344,-326412987,-2082959842,112723180,-1070903296,244338768,-1545936664,378081880,113709658,66594,-397361109,28889671,32002048,1354771209,-2031612272,307405779,1342177720,-1577338392,378209320,614663210,639011076,1958873860,-62470367,516161536,-1960442844,-1960442809,614663767,639011076,-62456060,419200643,849470590,1649924,184823971,-955875904,274438,70295808,-1593559389,950206518,108461828,-385988376,1996477904,603691526,922681344,-773320102,108462033,1342177720,50345633,1342451718,1342177720,5159066,309248,1479999312,1513553682,-401698798,922737185,922686042,1290277464,307798273,-1592611677,100864602,-1365048272,1778829074,-2097151725,-443874579,-900899553,1478361090,-1957345904,-661774612,722136195,307667904,-1559079773,1319309904,-129595118,-386513271,1183436565,1996443900,-159973384,-493825,-1024919946,108462028,-1694730497,20307,721696417]},{"sector":3,"data":[1342451718,-16470808,-402376650,-1070870232,-90118064,-397361109,28837840,149442560,570869713,721420292,1055412416,1513553870,-788338670,721843967,-1202696000,-1706033151,19111,721843967,1347440832,1342177720,5168538,108461824,1342177720,1347469355,1342177720,5020570,-725948416,307377919,48762512,1513553874,-793057262,1342178488,307771135,307902207,585633424,1782481881,225771539,1342178232,1347469355,250089104,49120217,1562371467,182861,-2081649835,1055392492,-28931634,688140449,1177094726,-25755898,-16091393,1996425334,74907398,-3415832,-15388618,1805319798,-1962934200,146955749,-326413056,17051809,1183516230,106334980,-1995287389,-1559079402,378081870,1347555920,-1545056174,1575324671,1426064578,815918219,105251076,-1962654069,1319306838,1343654162,1446444818,1412890386,-397389294,-443809926,311901,-1578333355,-1017314256,1575783253,503317186,1430622296,-1910575989,2062320600,307640063,307508991,307246847,307115775,1351239309,-1949720344,-1962439720,1183384151,-1739159146,307640063,307508991,307246847,307115775,1350977165,-1949746968,-1962439720,1183384151,-94991880,1183432747,-1907979888,-1962661727,-1996215786,1451856454,1975651220,-1715459322,-956227095,61510,1589908459,126559890,39291686,-1986902391,1191154774,-263812112,2140685881,13756901,60180107,1451987526,787860,-1986378103,1589943382,1200301714,-1773786358,653543049]},{"sector":4,"data":[-1960441973,1183384151,-1806268014,972703371,91592774,-336050549,5289987,-1986640341,1183577670,-163169804,1183516029,-1962677258,1183446086,-1773746274,-1073020928,1187448189,-1962934114,26844742,1443991110,105286544,1946699275,-1004344531,1191156318,126494362,1183350564,1975519986,-230242812,106873888,-1979300097,-2010713530,-1638990073,10387075,1183569277,-1740228102,1182999677,1451426446,1183514768,138808070,1589908596,105316102,218613286,-16359797,-970586554,1191119367,-96040040,2140685881,-14358269,184960651,175376454,-16359740,-970586554,1182990343,1451426190,1183514768,-1873376370,-1962742397,1297948645,1426064586,1183575179,105253636,-2132212875,839843584,69771524,69867147,1963349561,71711017,516170869,-1960442840,1468737031,69772034,69867145,1963349561,71710989,-1070921611,-1560008029,1589904424,1200301572,1468737028,532948486,71797030,106400038,637820612,-1960441973,-1004141993,-1993997217,1468605959,73319426,-1962660703,637808150,-1993996407,-1014300073,748929676,773228804,1575324420,1426064578,117435531,681641010,705039108,-1961921276,1451951174,69772038,69867145,1589922283,69771524,69867147,638028070,-1006479479,637806622,637814667,-1006217333,-1993997218,-1993997241,516163159,-1004141528,1183515743,106334980,638028070,-1006479479,637806622,637814665,-1962518647,79846885,-326413056,-1593512829,101385260,192218158,69875455,69744383]},{"sector":5,"data":[-1577130776,378209324,1183384622,-27883012,309641739,70000324,638028582,-1560127605,378078252,1589904430,-1933341700,126428866,39291174,71797030,106400038,1375734789,2013210192,144762890,-1946401141,-443810218,-1957313699,82609132,75400022,-1205764608,103481368,1183383610,71711230,1183516029,-1962677500,1183448646,973472516,552290304,294531,916528509,-1948715264,74856944,1183516030,-1962743036,71731654,3540483,-244087,-1914110858,71732172,1575324510,1426064066,-326898549,-196688116,614531072,637930244,-385649404,2122514791,58458116,-1962898711,-654900154,-1593555319,1178141744,-1994424828,451609670,69476036,71797542,106400550,-1996217181,-16505322,-16502770,2122515534,-528541436,-2096869633,2097153150,17295619,69476036,71797542,106400550,-1996217181,-16505322,721694734,414732480,28856320,-2098704384,-163133505,1996423168,-193527818,-1962662751,84157974,1347551244,69476036,175636262,-340087064,75400107,-385646848,2122514613,327031044,-1962661727,956574230,1963206166,604387688,-10324732,2122515534,58523652,-16740119,-1006358522,637805598,-1960441973,614662743,639011076,1354771204,1342183608,1358954424,-943780632,1570374,-1962662751,-1996216810,1451883590,-96024578,2122514432,830281722,654073540,-1960441973,1183384151,-27883012,-335919361,805765093,72285956,69476036,638028582,-1560127605,378078244,1776878630,-159973377]},{"sector":6,"data":[-1946913025,1452014662,787966,1589923922,2013210364,-1175328758,-385915671,1183434965,770199800,808910786,-126419179,5140634,1446444800,1412890386,1345781522,1312227090,-93788142,-1034033781,-1957363710,116163564,721700491,721434118,-1996214266,-1072955834,-1528233099,1782481664,225706003,1342177976,1347469355,921177744,-25755693,-1979853848,1178205254,688485630,1996488262,-31201026,325729923,-1207077888,726663171,-1873784640,-754194418,50345633,990130182,2131930630,3842317,70256131,313394747,1048779903,1946162026,178244,1354771280,-401698736,113758941,4970,1048784875,1962939242,243731,1354771280,-401698736,113758913,70506,1342178488,313276159,722644641,1342451718,-1494741360,1575324626,1426064066,-326898549,-53352444,-1979955575,-1039401386,922690420,922682430,1183515708,787964,1354256466,1760055296,-60898120,172460326,921195270,1575324668,-326412861,-1593381757,1178141748,-1590198780,1178141748,-397574652,1183445967,-61437446,1081393675,-1577427260,378209324,-1993997266,1468605959,-1933341950,70034370,70129289,70518527,2122566123,410916868,956576929,276628550,184822945,1963208198,574522124,91488260,-352045919,-63576038,-1980086647,-1039401898,-11401356,-1595344266,873398259,-1949701372,46292453,-326413056,-1207636861,-397410279,-1070858389,-1560008029,-443874264,-1957313699,49054700,308035203,-2096729088,1946158206,1547600653]},{"sector":7,"data":[1551171602,294531,-420981132,-28931642,1182056459,294531,-11529356,-16496586,-16497098,-16495562,-352040394,71743518,72005712,-1000937392,-100609,-16497610,-16498122,-16497610,-402374090,922731621,1996428592,1420139262,1183514624,308060932,-1034033781,-1957363710,49054700,956583585,997459014,294531,1048778868,1946158160,112653,-10295216,72353479,-1070923776,1554060267,72393490,108314635,-397361109,28901192,-1070903296,244338768,-1949237016,1319306310,1575324420,1426064066,-326898549,1547600642,561250322,71319171,-15043584,1996425334,-744036346,-1996077431,1347553366,-940036888,278534,1575324416,1426065090,-326898549,1547600644,796131346,71319171,-165121024,1946223686,142016278,-402229505,1183437676,-27883012,-219656110,-15930377,1996425334,74907398,-1946185496,113401317,-326413056,-2096960381,1203262,1190554996,242484228,-16222465,1996424822,-6297596,1996444651,108461832,-1546443800,378081886,79172192,922701824,-1873669538,-801118194,325729923,-1207077632,726663171,-1873784640,-802428914,325715655,1587609601,313303826,51536033,-1560006650,922686126,922686048,1088950878,1074186231,-1962934012,113401317,-326413056,-1961956221,557647430,1023769600,92143656,-638992341,70295810,313394745,-1365175683,805710610,-689418236,-163133446,736821248,84160673,104529944,360649390,722644641,755249158,-397410281,1187510965]},{"sector":8,"data":[-352315402,313434378,70256171,-637303,568915574,3449287,972965513,2098375686,313303301,950081003,-1408878336,-1592820718,100859956,103486124,-1992294344,883031622,-28952320,1996429428,-1004541698,721975039,1996443840,112894,1493342800,1996423168,112648,1242536528,243990528,235077686,-935656400,1996429428,112648,3580240,70256131,112720,1293785680,79167488,922701824,1996427948,-401698570,-1398681839,-230258414,-1980348789,1183577158,-129594894,-1980479861,1048836678,1962939242,243731,1354771280,-401698736,113757925,70506,755385995,121438241,-385649152,-1073544928,-1476448621,916544102,-196728576,-1202667477,-11534334,-2031613834,113542128,16791201,-102108090,3580160,737429033,62410944,-2102528,28838006,1183666176,-1924131074,1343683654,4860058,-59310336,1342178488,-402098433,-997986231,3449094,-1577957751,-1991770054,-1242958778,1354771200,1342178488,-402098433,-997986263,3449094,-1577957751,-538247114,956315297,226489414,1347469355,-402098433,-997986295,-193035514,-8424448,2062283854,1089750667,3802683,-1070919556,112720,142016336,-2081430296,2122516164,1518147572,-336312577,3449173,2146584121,1354771213,142016336,-2081389848,2122516164,980680946,-336441601,-230257867,939932480,722500608,28856512,1996443648,-262281208,-2096708477,2102325886,-230228203,1499336939,1502304637,1512135105,1514232284,79190524]},{"sector":9,"data":[1996443648,-193527822,-1561850224,1782481869,326434835,1342178232,1347469355,-1897394544,1778829261,-1962933997,-1398541754,-196703470,70256131,-15552861,1996485750,-803673870,-1980610935,280556630,-6664192,184549631,-2094170688,278590,1996429173,-126418950,-1982859800,1451882566,726684410,-1058516800,-193527812,-1192069377,-397410303,535559281,71319171,-15174656,1996485750,1354771442,-221464,1996485750,1354771442,-1191437080,-443875327,442973,1458342741,-1070334889,503598731,141986567,-217678197,1073837478,-443851169,442973,1458342741,-1946411433,1992623182,176079878,24373713,530969508,-443851169,705117,1475119957,72256508,-1004527432,-372177282,-206962317,-443850837,442973,1458342741,1183522391,-1036805884,1317782059,2126592774,734104322,142001608,2122516254,343670788,1309046275,-265552245,-1952123907,-215961400,418118826,-268173685,1944703484,-1510759423,548980875,1944703264,-1410094591,-1956749537,146955749,-1864856576,-326412987,-1948742114,12060246,-1205744317,24313857,49120072,1562371467,182861,1458342741,2126782039,108446986,839143051,-670389029,178945828,-1191780160,-478150655,1208055168,-1956749537,180510181,861361664,1479969791,1962281732,-2095281394,2082014335,-1946252486,-1119433,-16493002,-1710990794,1917,-259307293,72627967,73283327,73152255,16777114,-1154620672,-16055208,495649396,478885769,-1912453239,-164429241]},{"sector":10,"data":[20742182,-964491915,-660641,-31062969,-1916630012,183173444,132684374,-768409600,1583333427,-326412861,1183536982,-1946209530,184834102,-1958775562,38222108,-24443276,-269797493,1258577604,20938790,-970577803,478871559,2130989055,-1157133543,-16055208,495649396,-1710880887,65535,1553111638,28311552,-1070398741,-443851169,1912914525,352387840,1744831287,-1023343872,1778385754,-989789440,1795162890,-1543437568,1828717358,-83885312,234946361,100664064,251723592,-419429632,268500738,671089152,201391879,-587201792,285277954,1056965120,218169095,905970432,302055240,1828717312,318832392,1208025856,83886428,-436141312,117440860,-419364096,33554982,-771685632,2080375629,654377728,2097152804,-285211904,520159021,1560347392,251658588,-150928640,150995494,-234814720,16778034,-536804608,285213020,1191248640,100664074,100729600,-1996487927,755041024,-1979710711,-1358888192,486539578,369165056,218104646,184615680,234881862,385942272,-1879047415,-1174338816,301990659,-1610611968,838926134,-855571712,318767875,1191183104,855703354,1006633728,872480582,788529920,889257798,2063663872,369099531,-1879047424,922812229,218104576,939589445,66304,-1728052470,-486472960,553648692,-2063531264,-1711275192,-738131200,-1694497977,-369032448,-1677720823,-285146368,-1660943546,-1660878080,637534776,1241580288,553648968,805372672,855638279,-2130640128,-1560280280]},{"sector":11,"data":[1375798016,-1543503064,-1275002112,754975268,469828352,-1526725848,956367616,620757814,201392896,-1509948631,-1644100864,-1493171416,1661010688,654312237,2113995520,671089453,637600512,687866632,-1761541376,704643848,-1358888192,973078839,1275134720,-1392508097,704709376,889193016,-1509883136,-1375730937,-1878981888,-1342176463,-1056898304,956301830,-167705856,-1325399289,-1711209728,-1291844860,973144832,-1275067611,-1275002112,889193224,-603913472,956302087,1577124608,1107296805,1946223360,1241514305,100729600,1140851257,436273920,1157628453,-654245120,1023410976,-251591936,1174405637,1778451200,1308623157,-771685632,1040188248,-1912536320,1325400386,-570359040,1056965464,-922680576,1073742670,-637467904,1358954817,-1660878080,1090519897,1392575232,1107297096,-855571712,1375732034,-838794496,1140851542,1493238528,1157628735,-1576992000,1442840897,167838464,1459618121,1124139776,1207960347,1979777792,1476395331,-620690688,1342177848,637600512,-939523260,-805305088,16842503,-285146368,1493172533,-335478016,-922746044,1124139776,1375732230,-1241447680,1509949752,1812005632,-905968828,2080441088,-889191611,-855571712,1275069223,-1157561600,-872414392,1426129664,-855637179,-1677655296,1459618340,1409352448,1325400871,1275134720,-822082748,788595456,1358955302,-1778318592,1375732518,-939457792,-771751098,-671022336,-754973882,620758272,201391879,1006634240,218169095,-335478016,1560281656]},{"sector":12,"data":[1862337280,-687865025,-721419776,16842503,1937009920,1167120524,518818645,-326903666,-1957210542,1183385670,-1694551124,65535,243779891,65208649,-1962892055,-486454002,1346273362,477430017,2030456575,9890051,638082756,2133067658,140413251,-395046596,-462154948,-1957670761,-6663996,1476395263,-1997501862,-1761524202,-812908749,22023816,22228618,302120320,1295943657,869793537,-6427649,1199048270,638082756,2133067658,140413251,460464188,393510716,21956106,1202602888,1917910915,1962871559,4122627,-1090556439,1189609757,-1980402944,-972993250,86790,-512419012,22021830,198896385,-402426625,-6684648,-1962934017,1177225286,-2090967124,-443874579,-900899553,1586298888,-1705552978,65535,21562889,-54264013,-1979192429,-1073506108,-1389432789,259506986,-276904902,734004120,1034759920,-1812660223,-503773245,317698,-352126969,-285021438,-973137150,469761799,755455999,1376200958,1526673415,-1544143865,-1861907707,-1358472699,1510292741,-653991419,1208176644,839185912,2097376003,1627692291,-1056698620,1493063941,1644796423,1761829631,1963416316,1997049608,720530947,-553420534,1510335749,-1761126905,33922309,1409681414,1074222343,2097539593,-16387841,1476336639,1526669319,1526670087,1526343687,1510431239,1510431239,923228679,2047371774,-1946272504,1141215493,16968702,-604026877,855592198,-1040295421,1611154697,1644556543,1074129662,553647881,1392990972]},{"sector":13,"data":[1510431239,1006582791,1039154696,621296648,1510292740,-653991419,990205956,-66787323,-519634940,-1660690941,1342464260,1459884031,-855185922,687823363,-385982457,1661264388,218741754,-66758139,33997828,134048777,-737610231,1979675401,-1879083768,1090484744,905969417,-872166394,1963356931,-1962567930,436604421,-872000506,1946405891,-1660520954,335909125,1241915398,-570170882,218064899,301952009,-1577095671,33554185,-1459257346,654116357,-167378426,251597829,1979652358,33554182,-1459255810,771556869,-66713594,352261125,1996429574,50331398,67498239,335917055,-16377089,-352386305,-1040251899,553587717,16776966,117827071,453369855,-16390657,2144511,-26032,-1329397760,-1609241854,35913964,199950604,604040352,-352187391,-805064702,839021544,1944637686,-283756014,973500928,1979772950,402292745,-385822080,-1070398895,1347602054,16777114,1225132288,372949761,192151791,1947794048,449460980,1390210001,1342177720,16777114,-806659584,1947794048,-318310878,58000384,-1174300952,-92254441,856847384,-2145850405,225712378,398121611,-1240667313,-335596977,-1224832508,182094415,-2147125761,611602430,544528954,259316491,851705427,1370367,-1227650469,1376643919,1337379582,1509950952,-13444470,-1031094221,-964014016,-1974419202,-947236669,1355058000,16777114,147096320,-19231805,1928659661,1342078981,1337370998,-914315797,-617350140,1405016454,37530625]},{"sector":14,"data":[-1057093001,251648010,-243334831,-13704239,-872153177,1644391171,-872198141,2030271747,-1979484413,1925579461,1984904196,-10360573,-1705907834,65535,46500547,1022259910,1391097679,15533814,1359443208,16777114,-377071360,118937995,-1330741619,-1426850784,-1712784501,-318310660,91555840,16777114,317282816,1375089153,17557586,-92251814,-385649384,372965125,611451119,15734330,-257941897,-20829696,2009414336,-1227191541,-266958257,-14882560,-1705907834,65535,1375089347,13625426,-92251814,-385649384,372965065,611451119,15734330,-257941897,-20829696,2009414336,-1227191541,-266958257,-18814720,-1705907834,841,1945447107,-370046462,-184418159,166397555,-175452674,1984953984,-347097598,854995582,-1876366391,906688050,158597460,-25112834,-1241352625,1393429071,-33393663,419004617,116787573,1946222829,-1340806376,-318310889,125043200,15666690,973140128,-1979549752,842591185,-283755786,-1979420160,-2147422450,175380730,74634538,41144634,468439434,243988018,-784727824,397476466,1947794048,1926562314,1993423364,869370370,1388742336,-26032,-2134704128,16838158,-299466557,-2134639104,33615374,-299466557,-2134639360,67169806,-299466557,-2134639872,67169550,-316243773,-154928384,134278406,243276917,-1710751507,1081,-318310717,175376384,15541888,72981239,750977024,1023111728,-789088481,-972655640,-2147397882,1326352579,645972737]},{"sector":15,"data":[-1007222546,15601280,645972744,-1008795411,15535744,243319584,-1019215635,15541888,243319743,-1023278868,15476352,243319805,-1023344404,15476352,243319806,-352190227,-316243963,-1058407168,-318310658,393543936,15535744,112641,-26032,414908416,1327020544,-1006817048,15533814,-2145946623,-33493722,21380736,-402426600,-1070334325,105290320,1237516288,-1219933879,47811327,-2020921637,-617412971,-1705815216,65535,167774659,117442560,1949318144,1949514761,1949842456,-561331398,-1081540814,113639670,-972488458,151078150,119471299,838923967,5290432,-420762893,-1409199170,-16775192,2130792718,-1073036298,54316148,-1966875788,-956353826,151058055,22265539,518316,22089471,180614783,1021605056,1017607170,-1011452923,162531102,-13441654,-1081221494,-8322825,158794053,-234860615,2009923246,-135298575,-1965061376,-28579341,-1325594850,853903881,-1914795265,-2130643521,1912665855,5224713,-855724302,-276696713,-544538379,-369298550,1229585953,1229539657,-968275639,16863238,-4728438,-1959863549,-1995996513,-1023324898,154535573,148048078,130352595,129238956,1369507695,33325057,-1073028846,397410933,-855717634,41293372,-1002782670,-58718861,-1274907113,15704855,-1006810392,1006719906,-1012501224,-76277700,1419910956,1395556353,938024705,872190973,506304,-218017345,12161963,20168193,15533814,-1107069948,384303521,-16616455,-617364509]},{"sector":16,"data":[1886656572,796146492,74592316,74856764,21440255,22093323,-1992096395,-1979625186,33641103,48859849,46727881,36711657,1387235560,-1959597311,989942078,-82577953,319618947,1363053051,1386055681,1226500865,1048791369,1962934609,-645248741,-620494921,1772063534,1193183496,1342621185,113705217,132776269,-435725629,-351755256,15573000,101319204,-207486641,-199849728,-207568128,618695168,21996160,645973042,150798573,-1593774842,-2137915148,158472442,15533814,-1979550463,-53483056,1006784447,1007121512,-1088522900,1404961377,1359937281,-65898495,1456012972,-1176532137,266862848,-346136832,1337705448,-1157371134,824967777,158795836,-466436093,-13707261,1941881639,-1107039486,182976999,-16616456,-742407197,1359886338,-384469759,-1212154653,-1089606910,149619397,-352155713,44023555,-16690242,2013352206,-1951597544,-386430002,-242485291,1448602995,-16711495,-346071341,1883030498,235600757,-176881327,-274546637,-267991552,-291367168,-316243968,-324870912,15966720,-1576995677,1336017222,-388877567,-919340019,872221160,-49878839,-386080280,1021901899,16171005,-2097149511,96864455,871948809,-104535854,620817569,101432318,-324861711,-658521344,-352079872,22265381,22089471,-1392766856,-193654980,-1342118209,976902,952363755,1963021070,14401529,-466483280,504133375,-6664105,-1023409921,1375818686,1359937370,1380612097,104639740,283641205,1022225152]},{"sector":17,"data":[-1075219195,78643426,1979699176,29524447,-1731819007,-162395461,808453619,-1269570682,1355056699,-1281834358,99874314,-1202704336,-1957668069,-402083588,-997982304,-1031683320,-1202577376,-1336911589,-386102524,-997982324,-661863676,-1957345904,-661774612,-1070377130,-485863797,80510979,-485994869,1087143939,-486125941,-1560212478,602407153,206474239,-806878237,-2090967042,-443874579,-900899553,825229320,892613426,959985462,757861676,1903165486,1970566002,2037938038,1835814252,1364197486,1431589714,1310414678,1276857627,1142638619,1125859611,1348157979,1281051995,1146832987,1130053979,1348158043,1281051995,1146046555,1129267535,-661896625,-1957345904,-661774612,1459940483,1187446579,243932154,-511639315,1183514628,1021587974,1009283680,740587374,-301533600,225706496,48447411,1585991603,71780347,785943312,176064394,1207583624,1006669033,1010332272,1949595513,1954036774,98780946,1341867718,-1821365177,-1635284434,-1193678070,65227056,-1990701128,62913350,1197271808,1187382755,-1337500677,1019079550,1022391343,-1341885138,1018293119,-1155697363,-481869745,-79247606,1195848795,-1972867909,-318310713,41158656,-1863597174,829563180,762775356,216252419,-166722489,16838150,268698228,-2020921709,1133054630,189220858,-1928432385,1996487238,1464868360,642970,1606912768,-1962742397,1297948645,1049802,48627971,6815747,1572867,2097407,5701635,2162943,13828099]}],[{"sector":1,"data":[2228479,15728643,2294015,53018627,2359551,81002499,2425087,63242243,2490623,69206019,2556159,96206851,2621695,97386499,2687231,77070339,2752767,91881475,2818303,107872259,2883839,109576195,2949375,196935683,3014911,1167087646,518818645,2122569870,125042694,69090947,-2096270336,1962935934,507413285,510918660,425603,1996425844,-26104,149618688,-1710721281,65535,-1559869813,-310180834,535137026,80366941,-1873273344,-326412987,-2082959842,-1070920468,-1097183152,-1996488704,1451882054,1975651320,8907011,1343161016,-159973550,16777114,-196704000,309706763,-1207535873,-1202716662,-1706027880,228,1996448235,18520582,-1073020928,-6664844,-16776961,882570358,-1996488703,1451883078,1958874108,1996444191,-25862,1996423168,24943348,28835840,1996443648,-25868,283836416,-1207535873,-1202716662,-1706033120,65535,98714,-16192768,-6622090,-2097151745,-443874579,-900899553,1478361090,-1957345904,-661774612,-2095256445,93758,1996451700,-26106,-1073020928,28861300,-6664192,-1996488449,-1072961466,-1706013068,65535,-1981528439,-1070864810,-1980742007,1183575622,-364475932,-336832887,-297368824,-262765823,-362888192,652887807,1962950528,808910828,-428409067,-1804545,1996484726,1632494,-1696041217,65535,16777114,49120000,1562371467,182861,-2081649835,-1070918420,2130884688]},{"sector":2,"data":[-1706012007,65535,1358841481,184986,-163149568,16402119,108954368,-385647360,159318288,294531,99156855,-26111,1183383552,-195655182,146842,-297367296,-1192208759,263864896,-11513344,1996485750,-25870,1183383552,6600956,-61961319,1183447543,1975520250,-96024827,1183514625,1446746618,2081193734,71711493,1183516019,-1962677254,1183384646,-62485510,6601113,1183447543,1975520236,-330905820,501940225,150682,-262784256,1178273141,-1710328594,65535,-1980873079,1325396054,-327253012,-1948418304,697956934,1444480070,-95486202,16416387,1089012605,140428543,638076671,1183319946,1946828024,45193956,-1073020928,1996439678,-129594100,28856342,-962965504,184549378,-2094301504,149054,2122366836,-1183511048,16777114,2126514944,209125141,503587000,112720,-26032,-1073020928,1996462975,-25866,-443875328,336249437,-1879047424,419495680,2030109440,251658496,-218037504,285212928,-1425997056,301990144,-973012224,318767360,-1711209728,-1996487936,-385809664,-1979710720,-1560214784,-1962933504,-721353984,218104577,-771685632,-1929379072,-1694498048,771817218,-905903360,234881793,654377728,-1912601855,-301989120,872480513,-2046819584,956366594,1593836288,973143808,939524864,989921024,771752704,1006698240,-1610546432,-1392508159,-1459551488,1157628673,1937009920,1458342741,-16222465,28837494,630870016,-1962934272,931857502,1946580537]},{"sector":3,"data":[142016276,1354771286,22170,73304832,-1996077429,-443851257,442973,-2081649835,-1957297428,2005599326,-1961563390,926483550,1996426356,-1070901754,7182928,-1958346752,2000225374,-1803004,939460214,1342177720,16777114,-443851264,311901,-2115204267,-16744212,1996424822,-2142860028,12079126,-6664191,184549631,-1207601728,48955393,-443826133,1478411101,-1957345904,-661774612,-1157627976,1347616767,-1710852353,207,-1995524957,-1206995434,-4521985,-11513089,-426113418,-1560281088,378080952,-4714822,-17665,1996443730,16620038,-1130168320,-1105819378,-18418,1392508858,108461904,70810,247767808,247862921,-1157627976,1347616767,-1710852353,299,-1995521885,-1206992362,-4521985,-11513089,1117390454,-1560281087,378080968,-4714806,-17665,1996443730,22649350,-794624000,-770275058,-18418,1392508858,108461904,94362,248292096,248387209,-1157627976,1347616767,-1710852353,391,-1995516765,-1206987242,-4521985,-11513089,-6683018,-1560280833,378080984,-310178086,535137026,46812509,-1873273344,-326412987,-2116514274,17828990,28837237,-2128811264,17894526,2122519413,225771786,-15829249,2140801654,-352321534,-2084557855,-443874579,-900899553,1478361098,-1957345904,-661774612,-1962611581,272436294,1024488449,57999633,1023458793,1198784787,-956252695,973830,-569981184,-16777202,-1070920074,13154384,1354771280,-26032]},{"sector":4,"data":[113704960,331490,-1560124767,1996426976,2865166,-533266608,1354771214,16777114,112640,-2130670103,-938549754,-600375552,37795854,-62485168,-566821040,-26098,-593297408,-58817778,-2095156224,1946680446,242679576,-1705983957,65535,-15829249,194706550,-352321533,-502333512,-499219698,-1384185842,249564927,249577091,-1206878976,-1706032576,709,133973703,-943527168,84861446,-8984320,1024083595,74711041,283885611,1342324920,16777114,-62470400,-1645543418,-1962742397,1297948645,503319242,1430622296,-1910575989,205949912,1946226749,17906978,1183518069,81162,37554548,722826240,-15144000,28839542,1452953600,-1207959549,132841473,722368255,-2081494080,-443874579,-900899553,1478361098,-1957345904,-661774612,1024214667,578027792,1963004221,172395277,1946157373,146697,-1070918284,1996429547,112654,-26032,28835840,-16258304,-1070920074,-310120725,535137026,181030237,-326413056,1460333699,-96024746,1183514624,508567048,-26032,1183383552,138806262,-6664162,-1962934017,-2130801680,292829756,1965964416,-8617965,-2096270034,1963128446,-129579257,954925056,1968979072,-129579257,753598465,425603,-1070922636,45614059,-129595136,1929936441,775782423,1183523956,-1957683704,-1706025273,915,-454297461,503399565,-129594544,503596547,126655056,1599995904,-1034033781,1478361094,-1957345904,-661774612,-1962218365,272436294]},{"sector":5,"data":[1023898625,762577169,1996437739,374798,42252368,1788497950,-16777211,-1070920074,-1202696112,726663180,-90550080,-1207959546,-2065104895,172395264,1946157373,146697,-1070896780,1996452843,374798,249870416,-2135404514,-1684385792,-1207959547,726666980,1622692032,-320319488,249870590,-337096674,79987707,309706763,-1207011585,-1202716658,-1706029340,65535,1996465643,1354771214,1343153336,-1705983957,65535,201082505,-7572032,28839542,-16389376,-1070920074,102603344,1994981376,49120255,1562371467,707149,1167087646,518818645,-326903666,205949702,1946226749,17906954,-1070892428,-2097063959,151614,129500532,-1207702784,1755512840,1379828480,91488258,-352318792,636931,-16748893,1756892790,199774208,242679803,1342205624,-327192,196611702,922701824,-1070923164,89758288,1996423168,2799630,1647771472,1354771202,145818,242679552,1342179000,503473848,118200912,28835840,14870784,755648139,154992641,-385649152,-1073479816,-1476448621,1996424767,440334,40286288,515395614,2073710592,-16777209,716705398,1183666176,726669050,-644198208,-1996488699,2122579014,225706234,2080375101,16792840,1654850429,242679554,1342180280,385500813,1354771280,16777114,-62486272,16416387,37555572,1023966208,58523663,-2096995165,117467198,28837237,721611520,38839232,7224963,-1207601910,48955393,1386463275,242679554,1342177720]},{"sector":6,"data":[116634,-11867904,-15829249,1756891766,-16127232,1996426870,7256074,-104535984,-1962987543,-100264699,-100337148,604305924,788931590,-385470714,-310116584,535137026,181030237,-326413056,74877782,1015025899,-2147126230,91569980,-352321096,1015039496,736851200,-443851072,180829,-2115204267,50332798,1996435061,112646,111647312,-11534336,95946358,1486508032,1342177287,1342181048,1347469355,-26032,-1706033152,65535,-1034033781,1478361092,-1957345904,-661774612,17755265,205949782,1946226749,17906952,-1880536204,242679554,503346360,309328,833616,1074837584,-26032,1996423168,374798,8042576,-6664162,-16776961,95948406,364400640,-2135404540,-1070903296,-6664112,-1207959297,1240006657,172395266,1946157373,146715,-269941899,277760,-169278603,343296,518587253,35973378,-1207011585,-1706033151,65535,-26032,-1073020928,199820149,242679554,1342178744,-8616307,-2135404522,-6664192,-1929379585,385807494,2089192784,-1706027265,65535,-17529203,112720,5814352,-70129584,-17529203,-21370800,863289355,-1928431873,385807494,309328,833616,1074837584,157129296,-1073020928,1996428660,374798,-192508592,-1706027266,2757,-1929275927,1358920838,-1202667477,-397410216,-2037515389,-397344900,-1072955797,-1070920844,-26032,1877540864,2089192705,-1706027265,2875,-1928431873,1358920838,16777114]},{"sector":7,"data":[1975520000,22079747,-1207011585,99287041,722368255,-828747584,-385875964,1183514938,81160,37555060,-385649408,669581565,242679553,1342178744,-8616307,-2135404522,1301958656,-16777206,-2037576074,1343684340,1342178488,16777114,1975520000,-11605757,-17529203,-1835380714,-1996488696,-1912637818,385842310,160471632,-2037841920,-259260550,-8617331,-8878455,1065408651,-2147126230,91568703,-352321096,-1983894782,-1912638330,973044870,1996454022,2089192780,-1957685505,520059014,161126992,-2037841920,-661913736,-2037905526,708640498,1060897908,-2033777035,130932,-8872309,-2037905526,1547501298,977011828,-2037663371,1344208760,642458,2022082816,1958642687,343146751,-9009525,-17527155,-762527485,-2037690286,300679032,-9009525,-17527155,-762527485,-2135404462,-1706025472,1022,-97303,-2037576074,1343684340,1342178488,1342180536,1346375864,659354,1975520000,-35067645,-106519,1996426870,-48961528,-2090942421,-443874579,-900899553,-1957363702,82609132,503596683,-1706025392,902,503596547,162634320,1183383552,71732222,1996375609,-1957683669,1344208454,256154,-28931840,126539915,1023166088,1006924892,-1948617414,1344208454,710298,-28931840,-1946270069,46292453,-1873273344,-326412987,-2116514274,1442876140,1024214667,192151824,1963004221,15722755,-16710423,-1070920074,-1202696112,726663180,1201295552,-2147483644,1234494,922689909]},{"sector":8,"data":[129503956,-2037559296,1343684476,1342210232,16777114,2089192704,2022083071,-8590337,213388918,-2037559296,1343684476,1342210232,733338,-62486272,-1165954933,1952251771,2088945168,1191140607,-59339780,-8617274,2022098688,-1206724865,-397405482,-2037776632,-2037514374,-2037776516,-2037645450,-2043019398,242483064,-8872309,-8997237,121111690,-1635045004,1065418614,-1962248960,973044358,1946122374,2022098694,-15542529,95948406,-2037690368,1344208760,275354,112640,-1962861847,520059014,182819408,-2037841920,-2037645448,1344208758,16777114,-1952978176,20777542,1024816128,57999362,1023466473,57999365,721476329,14805440,-1207011585,-1706033151,1690,123640400,-1073020928,1996467060,374798,2089192784,-1202710785,-1706033024,1139,-8616307,-6664170,-1929379585,1358920838,-1202667477,-397410216,-2037516253,1343684476,-2081087000,-1073019708,1996428405,964622,2089192784,-1919266561,-385875957,-2037514409,-1705967748,65535,427081739,-1207011585,-1924136935,1358920838,303258,474368,820577141,242679807,-8616307,-26032,-1073020928,485032821,2089192959,-6663937,-1207959297,1344148182,-8616307,1083854870,-16777207,28839542,-1785049088,-385875955,1996488435,-339727602,242679792,-402098433,-521536862,-310157570,535137026,181030237,-1873273344,-326412987,-2082959842,1183516908,17841420,289213300,-385649407,65601803,1711720193,-1593835505]},{"sector":9,"data":[1688404550,38314255,-1592824669,1789067850,39100687,-2096142173,150590,364381556,-1207702784,-2036137964,1312719616,91488258,-352315720,1554435,-16741213,-1934094730,-672641024,242679795,1342182328,258225919,818586,242679552,1342181816,258619135,822682,242679552,1342182072,258750207,901274,242679552,1342183608,1342444984,1342178232,1347469355,467866,242679552,1342183608,258488063,-1705983957,1350,-1207011585,-397410170,1996485490,1488910,216504912,1183383552,28856568,-6664192,-16777204,397938294,194662400,-1996488691,-2091845562,1281598,28837236,721611520,-1130737472,-16777210,922685046,278528134,-1996488693,-1705969594,65535,837402667,142508801,-385649664,1183514917,77066,1996494397,-1816132633,497549102,242679566,1342183608,385500813,1354771280,372634,258515712,16416387,1419969396,258253058,-1593686365,1218645868,258646274,-2097001821,369134654,28837237,721611520,38708160,8797827,-1207601899,48955393,1285799979,242679554,1342177720,537498,11528448,722368255,-2081363008,1008702,28837237,721611520,258253760,-1207011585,-11534317,-1710267338,15,-2097117975,1010238,28837237,721611520,258646976,-1207011585,-11534319,-351311306,1816036314,91553807,-352321096,-1547687166,1996427116,1226766,1815543632,-4396273,1996426870,8828938,-235870128,1996437995,175570702,-352285512]},{"sector":10,"data":[-1676854801,403511309,403511309,403511309,403511309,403511309,403511309,403511309,-452081907,51225357,302908174,-1207037426,-310181887,535137026,181030237,-326413056,1459809411,74877782,-1996335455,1048772932,1946157636,2078725,548930539,457476352,50676875,755128838,1149829124,591694595,39323139,-1591655287,-1073020324,20777588,-1088588800,65732624,-1996484929,1587612028,81154,37561972,-1089833984,149618715,-352317505,1687526,-1592820599,-1073020320,20778868,-1089506304,233504798,-352314689,1884135,499057643,360483072,-443850914,-1957313699,1988843244,21269252,-2096998749,1964972924,112645,-1070923029,-1962785629,1143677252,39363363,721634443,67437892,39494400,722814091,1621301060,157059842,-787784661,-1836610589,39625472,722427019,-472837796,9996171,-1962778973,-788373474,-1635283997,39887616,1575324510,-1873273149,-326412987,-2082959842,1183517420,17841420,289213812,-385649407,-1070923589,-1207813143,-397410140,-997982505,242679554,1342220216,-1005080,-1380446602,-1612165120,242679792,1342223288,-1010200,-1179120010,-1947709440,242679792,1342226360,-1015320,-977793418,2011713536,242679792,1342180792,10827519,-1705983957,3256,24002179,-11504640,1048776310,1946157636,2144261,532153323,395988992,-1996488688,-1072957370,726665588,664424640,-16777200,1048776310,1962934872,2275333,565707755,-828747776,-1996488692]},{"sector":11,"data":[-1072957370,726665588,-610643776,-1207959540,-2048327679,172395265,1023410477,58064936,67057641,-13724736,-971939417,41990,12533379,-1207601889,48955393,1183432747,242679802,1342180792,385238669,1354771280,870810,-62486272,16154243,1480405364,2132177922,4930882,1849495412,1024095232,91488406,1963011133,-62485743,-2097109597,1946221182,314588426,1187448190,-2097151754,1962997374,242679609,1342183352,16416387,582492276,1025436416,-848034640,1946617917,157302216,-1069694092,1035891730,-1183570560,565758187,1805275136,-385875957,-1531379903,-35106816,46433277,355481343,1342324920,-1705983957,65535,113640939,-16711516,28839542,-811970560,-385875957,1996488465,175570702,-352278600,242679605,-1207273729,720044205,-15829249,-1279784330,-14685440,1996426870,12171274,1996428523,175570702,-352272456,242679561,-1207273729,-397410107,-890638686,101730302,1980724753,1980724751,1980724751,1980724751,1980724751,621770255,621880593,1980724753,1980724751,1980724751,1980724751,806432783,990982161,990984977,1175537169,1360089361,1360089361,437328401,437328401,-384755183,-310116747,535137026,181030237,-1873273344,-326412987,-2585058,722654262,1996443840,808910600,106859285,-472783919,246855679,246724607,16777114,-310142720,535137026,80366941,-1873273344,-326412987,-2585058,722654262,1996443840,808910600,106859285,-472783919,246855679]},{"sector":12,"data":[246724607,16777114,49120000,1562371467,939838029,-33488128,1744831239,1358955008,83951361,973079040,100728577,201327104,117505793,587203072,134283009,-184548864,151060224,2130706944,167837441,-1241447680,1862271750,-1610611968,335609602,1509950208,352386818,-1275067648,402718468,-486538496,419495696,1744830976,369164033,2013266688,436272907,-570424832,385941248,419431168,453050120,-1291844864,469827339,-1577057536,486604555,768,503381777,436273920,167772930,1946223360,201327362,335610624,369099533,-16710912,570426127,-1207893248,855638272,369165056,587203339,755041024,-1342176502,-1895759104,1241514240,151061248,1291845897,-771685632,1308623112,201392896,1325400328,-1023343872,1476395275,-2097085696,1509949704,-1392507648,33619712,-1006631680,50396928,1308624128,83951361,922748160,100728577,150996224,117505793,536872192,134283009,-234879744,151060224,2080376064,167837441,-385809664,1459618577,318833408,1476395793,553714432,1493173010,-285146368,1526727439,-671022336,1543504647,1593901824,1560281864,-805240064,1577059087,1694500096,369164033,-620755712,385941248,1828782848,1593836304,1828782848,1627390732,1895891712,1660945160,-1040121088,1677722375,-1526660352,1694499596,-1342176768,33619712,-956300800,50396928,1937009920,-2081649835,1183515372,-1202708988,1344147406,1346372280,11418,2109737728,71732000,-826781666,-1202708977]},{"sector":13,"data":[-1706029056,99,201213577,1342865088,38298,-339727616,-18429,-1034033781,-1957363710,82609132,-13937065,503596683,265205840,922701854,-6683624,-1962934017,2096499696,-1070901714,45633616,-6664192,1442840831,504385208,372703056,-26108,104529920,57934870,1459617471,16777114,-1090262272,113770490,1046,1600046987,-1034033781,-1957363710,82609132,1988843095,75401990,16533191,-62470400,189726720,-2129298177,267838,-15565822,1911031926,-62486017,91537419,-335788405,1183362077,1975519998,-28916220,371100448,369557252,-28931580,273581960,1600046315,-1034033781,1478361094,-1957345904,-661774612,185222795,1024226496,846462977,1946157629,-14226625,-739768202,68854782,427147275,503481528,138840912,-6664162,-1207959297,1344144004,16777114,68854016,-2068309013,1996443650,108461832,-1543548952,-370473958,1342342328,-335618072,49120224,1562371467,576077,1167087646,518818645,-326903666,1782481670,57999361,-956267287,64070,425603,922687102,28841264,1996443648,108461832,1575489168,-96040449,16416387,922687605,28841264,481841152,45633540,244338688,-1979760664,2122578502,1064567034,23725767,922681344,-6679248,-1996488449,-1202652090,726663177,-6664000,-2097151745,1979644542,808910609,1030165,2078800,42834512,-692584448,-6664174,-2097151745,-443874579,-900899553,1478361092,-1957345904,-661774612]},{"sector":14,"data":[-2091062141,92734,1183670132,-6664028,-1962934017,-1962439720,1183384151,-1437169240,1354771282,112720,-26032,922681344,45618480,-1070903296,244338768,-1979800600,-1072956346,-29547660,-15895041,-1206570954,-1202716657,199950367,355481343,1342182840,1342342328,16777114,49120000,1562371467,838477,33947651,1638655,34537475,1835263,37158915,2162943,38928387,3539199,32440579,10092547,31392003,10289155,1376515,4849665,21561603,5177345,3735811,5308417,7799043,5505025,8782083,5636097,20906243,5767169,0,5,0,0,0,0,0,0,0,1,65536,0,0,0,0,24,25,0,0,65536,0,0,1412311644,19794,1412311644,21592,458752,8,655369,1381248554,774504525,5067348,1381248554,77,1376276,1441792,23,131073,65538,0,131073,0,687875328,234881024,4096,452991232,469762048,7680,536878848,553648128,8704,1,0,0,457912091,993083227,1528521522,1528524336,1848848703,0,23,589824]},{"sector":15,"data":[0,0,0,0,0,0,2304,0,0,0,0,0,0,65536,0,0,0,0,1329790976,16205,16842752,1,65536,65537,65537,78643250,458752,131072,3932160,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16842752,1,65536,65537,65537,78643250,458752,131072,3932160,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16842752,1,65536,65537,65537,78643250,458752,131072,3932160,2]},{"sector":16,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,655392,1769366852,1996514659,1868852841,29559,1413545985,1361064022,1413549360,724238349,1413546027,864328,826823745,1413545997,64884058,65404936,65667075,65929219,66322437,66715653,4,43010,2573,10,0,0,0,0,0,0,0,0,0,0,0,0,4325440,393216,2375,0,0,0,0,0,0,0,0,0,0,0,0,-2122252288,65921,0,0,0,0,0,0,0,0,0,50331648,52429592,1953301356,1819506547,257,4194304,524352,-65536,-1,-1,-1,-1,-1,-1,-1,-1056964609,0,16776963,0,16711424,0,16547584,0,16269056,0,16260864,0,16260864]},{"sector":17,"data":[0,16260864,0,16260864,0,16260864,0,16260864,0,16260864,0,16260864,0,16260864,0,16260864,0,16260864,0,16260864,0,16260864,0,16260864,0,16260864,0,16260864,0,16260864,0,16260864,0,16260864,0,16260864,0,16260864,0,16260864,0,16260864,0,16260864,0,16260864,0,16260864,0,16260864,0,16260864,0,16260864,0,16260864,0,16260864,0,16523008,0,16662272,0,16744192,0,-2130706688,0,-1056964863,0,-1056964861,0,-1056964861,0,-2130706685,0,16776961,0,16711424,0,16547584,0,16269056,0,15736576,0,14683904,0,12584704,0,12583680,0,12583680,0,12583680,0,12583680,0,12583680,0,-64768,-1,-1,-1,-1,-1,-1,-1,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1056964608,-1,2130706684,-1,-16776962]}]],[[{"sector":1,"data":[-1,-16776961,-1,-268435201,0,-268435441,0,-268435441,0,-268435441,0,-268435441,-1072942285,-268435441,-1072942285,-268435441,-1072942285,-268435441,-1072942285,-268435441,0,-268435441,0,-268435441,0,-268435441,0,-268435441,3354627,-268435441,3354627,-268435441,3354627,-268435441,3354627,-268435441,0,-268435441,0,-268435441,0,-268435441,0,-268435441,0,-268435441,0,-268435441,0,-268435441,0,-16777201,-1,-16776961,-1,-16776961,-1,2130706687,-1,254,0,0,0,0,0,0,0,0,0,0,0,0,0,117440512,-1,251658464,1020261180,251658480,1020261180,251658480,1020261180,1325400304,1020261180,-218103566,-806142769,-218038212,-806142769,-217874372,-806142769,-217595844,-806142769,-16261060,-1,57599,0,0,0,0,0,0,0,0,0,0,0,0,0,1953300480,1818838544,16777317,2003127808,131072,1852141647,3026478,1392509696,6649441,1392510080,543520353,774796097,1158676526,7629156,1124074752,544829551,843472416,425984,1953718608,1125122149,1920233071]},{"sector":2,"data":[27759,1866661895,1667591790,538976372,3360350,1342179328,1953393010,538976288,877026848,589824,1953521987,543519349,1180573728,167772213,1969311744,538994035,1579163680,13894,-2147483648,1916928014,543908197,538976288,3622494,1952797584,1735289204,184549491,1919243264,1634625901,774778476,786432,1835888451,1667853941,1869182049,774778478,884736,1852794960,774778469,1937009920,1852601207,1784900971,-2143289344,285218310,1258328064,0,327717,524356,131071,1300385794,1869767529,1952870259,1852397344,1937207140,589824,23,-65536,1342177283,130946,234881024,134254592,33554176,-2108685824,1836213588,1818324585,2490368,4194338,-65528,1342308353,1919243906,1852795251,808333600,83886129,-2080362752,-16774912,33554943,1866695248,1769109872,544499815,959520937,539768120,1919117645,1718580079,1866670196,3043442,989869312,234889216,16777472,-2142240000,27471,-1874853888,335549446,1342215168,0,131118,786532,8388613,8474755,335545344,939542016,50332672,-2091867392,5701632,3276840,65550,1342373889,1701859200,1459617902,838875648,33558016,50331648,1631813712,1818583918,5111808,3932180,786444,1342308352,33554562,671089152,3072,33554944,1766228560,1634624876,3827053,1937009920,1852601207,-1866465280,335549445,989906944,1409286144]},{"sector":3,"data":[1768780389,543973742,1919249473,167780724,-1275067136,3072,33554688,1699971664,1852404852,1746957159,543520353,1851877475,778331495,655360,11796500,12,1342308353,1986089858,1751326821,1701277281,1700929651,1701998438,1869374240,1735289203,671088703,587211520,16780800,50331904,1700364368,1342177395,587211520,50335232,50331648,1867415632,7864320,2293795,131086,1342373888,1851868032,7103843,1937009920,1852601207,1784900971,1685285995,-1874853888,335549445,805348864,0,983052,786536,8388613,8474755,33557504,201344000,0,-2108685824,1702256979,1952805664,1735289204,1935745139,1342177338,1207960064,201329664,33554944,33360,983160,917539,65537,1400918019,6649441,553678848,234889984,512,-2142240000,1668178243,27749,-1874853888,335549445,805348864,0,983052,786536,8388613,8474755,33557504,201351680,0,-2108685824,1702256979,1668180256,1852403055,1702109287,1763734648,14958,131172,786492,131084,8540162,251688960,234889984,16777472,-2142240000,1702256979,7864320,2293793,131086,1342373888,1851868032,7103843,1937009920,1852601207,1784900971,-1874853888,83887364,872445952,0,327685,786532,0,1099059202,2032166258,1931507055,543519349,1952540788,1970239776,327680,6553618,12]},{"sector":4,"data":[1342308352,1851881346,1869881460,1936286752,1852731235,1064592229,327680,2621473,65550,1342373889,1936021888,4259840,2621473,131086,1342373888,7294592,1937009920,1852601207,1784900971,1685285995,-1874853888,83887365,1090549760,0,327685,786532,0,1417826306,1701995880,544434464,1881173870,1701736296,1836412448,7497058,285213952,201352192,0,-2108685824,1948282473,1344300392,1701736296,1952797472,1735289204,11891,1900549,786532,0,1149390850,1870209135,1635197045,1948284014,1868767343,1852404846,4154741,738198784,234891264,16777472,-2142240000,27471,2883649,917544,2,1132482563,1701015137,1828716652,1937208180,1835757164,1818978915,-1874853888,83887363,755015680,0,327685,786532,0,1468157954,1769236833,1713399662,1629516399,1702327150,14962,327785,786452,43,8540162,335553280,234891264,16777472,-2142240000,1668178243,27749,2004055149,-1874853888,251659534,1845544960,0,327685,786512,0,1417826306,1768780389,543973742,1953785171,1936158313,327680,3604505,12,1342308352,1919243394,1634625901,2035556460,25968,1638465,786462,262165,1451249667,3290452,419462400,201336832,67113984,-2142240768,1230196289,327680,3276840,1245196,1342373890,2003127936,1852394528]},{"sector":5,"data":[1090519141,838871040,301992960,50332160,1867284560,543973731,1869112133,8192000,4587560,1114124,1342373890,1953841536,1918312559,1918988385,1684960623,327680,4587577,12,1342308352,1852394626,1763734373,1967267950,1919247974,1342177338,335558912,402656256,-2097152000,33104,4587525,786482,0,1417826306,544503909,1702521203,4259840,2621510,1441804,1342373892,1918979200,25959,4587645,786472,262167,1400918016,1819042157,4259840,2621530,65550,1342373889,7032704,1509981440,234891264,512,-2142240000,1668178243,27749,-1874853888,251659549,-1862219776,0,327685,786552,0,1132613634,1970105711,1633905006,1852795252,1699946611,1852404852,29543,1310725,786482,0,1115836418,543454561,1702125906,922746938,486544384,218106880,-2097152000,33104,2293765,786482,0,1468157954,543453807,1735288140,26740,2293815,786457,262181,880824323,5242880,1638435,2490380,1342177284,13696,2293865,786457,262183,914378752,8519680,1638435,2621452,1342177284,14208,2293915,786457,262185,947933184,327680,2621490,12,1342308352,1918980226,7959657,838874880,201339392,67115264,-2142240000,1852143173,6881280,3276850,1703948,1342177284,1684295552,10158080,3276850]},{"sector":6,"data":[1769484,1342177284,1852788352,83886181,671105280,3072,33554432,1951629904,1109422191,7566441,1090533120,201339392,67112448,-2142240000,1761607729,838877440,251661312,1024,774996048,-1694498763,838877440,268438528,1024,3309648,1342178560,201336832,0,-2108685824,1684955464,1801545843,922746981,838881280,469765120,50332672,1331200080,1331179374,26214,5242985,786482,262173,1216368640,2003071585,6648417,1342216960,201339392,67116544,-2142240768,1701736270,327680,2621535,12,1342308352,1852785538,1952671086,7237481,1593849600,201339392,67116800,-2142240000,1701080909,1761607789,1006657280,536873984,1024,1866694736,1953853549,29285,7208965,786472,0,1350717442,7631471,1845507840,201336832,67117312,-2142240000,827150147,1761607738,671116800,570428416,1024,1329823824,3813965,2097166080,234891264,16777472,-2142240000,27471,8192115,917544,2,1132482563,1701015137,1828716652,1937208180,1835757164,-1874853888,83887375,2013306880,0,655365,786502,0,1350717442,1701736296,1952797472,1735289204,83886195,838867200,3072,33554432,1866695248,1667591790,1869881460,922746938,1677728000,100666368,-2097119232,33104,2621445,786482,0,1149390850,543973737,1701869908,3932160,1966120,458764]},{"sector":7,"data":[1342373892,1852789888,1593835621,503326720,134220800,1024,1968210000,6648684,922748160,201336832,0,-2108685824,1701146707,1006633060,503330560,150998016,50332672,1817411664,30575,3604575,786462,262154,1182814208,7631713,1174406400,201349632,0,-2108685824,1953063255,1919903264,1852789792,841490533,691351853,1593835578,335561728,184552448,-2097152000,33104,5570565,786532,0,1468157954,544500065,544370534,2004053569,673215077,892480817,3811638,1392535808,201331712,10752,-2125430016,1310720,2621540,65550,1342373889,7032704,1677744640,234891264,512,-2142240000,1668178243,27749,2004055149,1648429056,779384175,671755822,1769238133,1684368500,1700005929,1852403058,1124559969,1701736047,1141732451,1868788585,1667591790,774778484,1380275208,1481911885,1163135060,1412321357,772033874,72176212,1415074862,1953451541,1869505824,543713141,1869440365,1948285298,1125064815,1869508193,1919098996,1702125925,537534522,544501614,1853189990,1631784292,1953459822,1986097952,455096933,544501582,1635131489,543451500,1836213620,1818324585,1818846752,421542501,544501582,1970237029,1679845479,543912809,1667330163,1869881445,1937009952,1852601207,1784900971,544165410,2004053601,539914853,544162848,544567161,1953390967,544175136,1768187250,557804641,1852727619,1663071343,1970105711]},{"sector":8,"data":[1633905006,1998611828,543716457,543516788,1701080941,1631784045,1953459822,1769107488,1125348462,1869508193,1868767348,1667591790,1869881460,1142759482,1870209135,1769414773,1948280947,1634934895,1931502966,1769239653,1064527726,1851867921,544501614,1953067639,1869881445,1125261370,1869508193,1701978228,1713398881,980250482,1699948832,1952671084,1646290021,543454561,1702125938,544434464,544501614,1886418291,1702130287,1868963940,387988082,2032168772,1998615919,543716201,1663070068,1701736047,306148451,1819305298,543515489,1936291941,1735289204,538583098,1679848297,1734438241,757097573,1634692128,1650532452,1702130287,1629498980,1634038380,1696627044,1953720696,538979955,2032168772,1998615919,544501345,1629515636,1852141680,1869881444,1064593696,1936269337,1937072672,1126182521,1869508193,1868767348,1667591790,1225404020,1769236846,2053729377,1632832869,1931502966,1769239653,208889710,1953521987,543519349,1954047348,2004055149,1802398835,1886339849,1702109305,1661498488,1970302319,91383156,1701080941,22020461,538968899,542966875,1342513197,1953393010,0,0,2004055149,1802398835,1802134381,83915017,7473408,1929969671,150996992,589940,167802121,7768320,1953300494,11856131,-1142419824,1312719088,57999364,-1207917079,1344144462,504039096,268613712,259562064,1183383552,2092960764,63879202,985157662,-1202708982,-1705992190,4133]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[48689,43776,0,156041216,1310720,1441814,1441814,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,1886549325,639662440,1819033888,539782757,1818322258,1936879476,825297421,540030265,1752446513,1702248736,776282158,1699946540,1819571297,1461726309,958406721,842084664,168626701,168626701,1346720336,1313428033,541139015,1162694472,1380927008,1279349536,218762565,1970231562,1851876128,1684960544,1953722981,543452769,1952540788,1869116192,1735289207,1746952480,543518063,1763733364,1646293876,544502629,1635148897,1734440046,1634541669,544433515,543516788,1702458722,1635197042,1948284014,1970282607,1634231154,1897948531,1801677173,1629518188,1629512814,543236212,1953785186,1881174629,1701013874,1210064942,543519333,543519329,1701670771,1936028704,543450484,1936746868,544175136,544499059,543516788,1734440051,1868963941,543236210,1718579824,1650553961,1629513068,1696621678,2037150305,1818325792,168636005,1766197773,1886724216,1936615712,778396777,1631723552,544828516,1701077350,1635197028,544435308,1998615151,544109167,1685024631,1802661751,1684369952,543515509,1701867617,539913313,1818579744,1769235301,1881171318]},{"sector":12,"data":[1953392993,543649385,1819044215,1818585120,1870209136,1684086901,543236196,1936028262,1869357160,539913071,1701593888,1998614113,1868852841,1629516663,1965057134,1918987630,543450482,1819042167,1769414771,1663069292,1952540018,543236197,1734963810,539784296,1701144675,1629518194,1634037872,1668178290,168636005,1632438797,1830839659,1919905385,1885696544,1936877921,1142956078,1886415218,543649385,1668637030,544437349,1819042147,1953784096,1769238117,1948282479,1634082927,2037673077,1970040864,1852400237,538979943,544567129,1970235507,1830839404,543517537,1701999987,1819042080,1970040864,1852400237,1936269415,544106784,1685024615,1919907616,1735289195,1685221152,539914853,543574304,544567161,544104803,1920102243,544498533,1818324339,1953046636,745762149,1663066400,1769236850,543973731,1936683632,1952671088,1851876128,1852793632,1953391971,1702125938,544108320,1869242733,1868767346,1684632430,1952543333,1936617321,1277173806,1702063983,1869571104,1852514418,544432751,543452769,1667855475,1735289195,1634886688,1936876919,544370464,1919905636,1633886323,1768169582,1634890867,1948284003,1646290280,1919252853,544432416,1819043191,218762542,1919501834,1763734643,1701998701,1869181811,1629516654,1763730802,1919905901,1953390964,1495277614,1931507055,1819635560,1701519460,1948282981,1814062440,544110433,1835627124,543450477,543452769,1701274725,1663052900,1769237621]},{"sector":13,"data":[1702125942,1869375008,544367991,1935959394,1851858988,1701978212,1702260589,1819042080,1717924384,543519605,1663070831,1953789292,1713402469,544042866,543516788,1685217657,1769152556,1635214692,539781996,543452769,1668444016,779314536,168626701,544567129,1970235507,1881171052,1931508065,1768121712,1629514849,1852142708,1852795252,544175136,543516788,1668573547,544105832,1852139639,1701998624,1769103728,1948280686,1746953576,543518063,544370534,1701601651,1394614318,1768843624,1864394606,1936614774,1634869292,1936025454,1851858988,1885413476,1634298992,1936024430,1818851104,1633886316,543712116,543516788,1702458722,544417650,543521125,543452769,1701536109,1730175264,543453039,1919970665,1769173861,539913839,1701137184,1735289200,1701344288,1970234144,1919251566,1851859059,1769152612,1663069038,1918985580,1629512805,1847616622,544498021,1701536109,1752440947,1768628325,1701340020,1869357166,1931504495,1768120688,779318639,1866670112,1718775660,1663069301,1635021429,544435817,1746955881,1869443681,1998616942,543716457,543516788,1853189987,544367988,1936748404,1684955424,1869375008,544436847,543450209,1701867617,1629514849,1702305907,221146220,1107954954,1919448161,1936551791,1634235424,1886593140,1818980961,1633886309,1700929646,1914724640,543973733,1937075312,1495277614,1931507055,1819635560,1751326820,543908709,543452769,1651863396,1663919468,1801676136]},{"sector":14,"data":[1701344288,168636013,1698826765,1869574756,1629516653,1763730802,1919905901,1953390964,1668245024,1881173089,1953393007,538979955,544567129,1819044215,1852401184,1953046628,1919907616,1948280948,1696621928,1919903334,1869881460,1701145376,1752440944,1847618917,1819566437,1918967929,1735287154,221144165,1124732170,1702063980,1814066036,543911791,1735549292,1998615141,544105832,1953459299,544433512,543519329,1886351984,2037150309,1853188128,1851859047,1752375396,745760111,1952540704,1629498483,1864393838,1919248500,1953653024,1701602153,1918967923,1818304613,1852383340,1634496544,221144419,1393167626,1919508852,1937334647,1701602080,1684370017,543584032,1701470831,544437347,543452769,1953718895,1701602145,1634541683,1763730795,1634017396,1919248755,1919903264,1869770784,1667592307,1948283764,1869881455,1948283509,1746953576,778399087,168626701,1769239617,539784035,1702060386,1953391981,1629498483,1730176110,1734439521,1629516645,1763730802,1919905901,1953390964,1634035232,1701999988,538979955,1914730818,1987013989,543649385,1701736053,1936942435,544830049,1970037536,1919251572,1768453920,1830840419,1746958689,543520353,1969447777,1634497901,744777076,1970239776,1818851104,1768169580,1634496627,1752440953,1969627237,1981836396,1702194273,543584032,1919906931,543516513,543452769,1818850421,544830569,1667330163,168636005,1666386445,1969513832,1931502956,1769434984]},{"sector":15,"data":[544434030,1952540788,1701994784,1852793632,1768842614,544501349,1948282739,544498024,543516788,1701670760,1818851104,1700929644,1701998624,1953391987,1629512805,1953046644,1700929651,539915379,1919242272,1634627443,1851859052,1634082916,2037148013,1769107488,2036556150,1869116192,543452277,1914725730,1701868389,1684370531,218762542,1970231562,1869116192,543452277,1668508004,544437109,543516788,1685285239,1864396143,1851859046,1634541689,544370538,1785688688,544498533,1752459639,1701344288,1634038304,1936007276,1702125940,1701273888,1646294126,1919903333,1919950949,1701143407,1735289188,1293951022,544829025,1735549292,2019893349,1684956528,1920300137,539784037,1970235508,1847617639,1701078373,1830825060,1847621985,1646294127,1667571813,1836019311,1818321769,1931508076,1684960623,1768453920,1948280172,1852406130,1869881447,1818587936,543236204,1701670760,220209198,218762506,218762506,1818304522,1852383340,1634496544,221144419,1393167626,1919508852,1937334647,1701602080,1684370017,543584032,1701470831,544437347,543452769,128,194,13107321,7667712,2381,113,0,0,0,0,0,0,0,0,0,1465662019,2119980879,809717572,775041605,5262676,1828913158,48759378,838004880,1828866625,413733321,-258997626,23690,839731777,1828913436,67109633,788,50331924]},{"sector":16,"data":[128,154,12714104,7864320,196,12976248,-65536,200,14942207,-65536,229,28377087,-65536,434,41222143,-65536,630,61603839,-65536,941,73072639,-65536,1116,95551487,-65536,1459,101253119,-65536,1546,108134399,-65536,335625218,1649,1651,115212287,-65536,1759,121307135,-65536,1852,133234687,-65536,2034,142344191,-65536,2173,155582463,-65536,2375,155844607,-65536,2379,156106751,-65536,2383,95551487,-65536,1459,101253119,-65536,1546,108134399,-65536,251739138,589826,1970225968,1919248754,536872448,1986815304,1677721600,1864396143,1851859046,1634541689,544370538,1785688688,544498533,1752459639,1701344288,1634038304,1936007276,1702125940,1701273888,1646294126,1919903333,1919950949,1701143407,1735289188,1293951022,544829025,1735549292,2019893349,1684956528,1920300137,539784037,1970235508,1847617639,-1995815287,-1073018794,1317738101,105286408,-235417037,1183570059,-1947076860,-1875055661,1317787787,106334984,-788248949,-774254101,198758890,-134973989,871402481,-11513134,1996425846,14477320,1996903995,990409223,58065990,855764611,197561298,-150506241,-2082932774,1583022298,146955615,-326413056,-617392553,184960651,-149783104,72780755]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[543516756,1819045734,1852405615,1852383335,1836216166,1869182049,1752375406,1684829551,543515168,1702129518,1868963940,1752440946,1914729321,1634036837,168650099,1293969007,1869767529,1952870259,1852397344,1937207140,1092624430,544174956,1936617315,544500853,1920298873,1852397344,1937207140,1702057248,225650546,1769293578,1629513060,1948279918,1092642152,1852138596,544044388,1818455653,1684370287,544106784,543516788,1801675120,543516513,544370534,1953658214,225600872,1718511882,1634562671,1852795252,218762542,1342835978,1414416722,541544009,1213483351,542397775,541411412,1330597971,223495500,544491786,1881174889,1769173871,543517794,1881173876,1953393010,1869768224,1851859053,1886413088,1633905004,1852795252,1953068832,1953853288,1769174304,168650606,543516788,1869574227,779249004,1750343712,1830843241,1646295393,1919950949,1919247973,1701601889,1701345056,1970413678,1852403310,1852383335,1948279072,168652663,1886350438,1679849840,1702259058,1852793632,1969711462,1769234802,1629515375,1953046643,1852793632,1987208563,1679848293,543912809,1667330163,168636005,1965059924,1948280179,544434536,1952540006,543519349,1851877475,1948280167,572548456,1869574227,1030907244,577987961,544106784,224749684,1769429770,2003788910,1931500915,1769235301,1864396399,1752440934,1230446693,1313418830,1768300617,1948280172,1701978223,572548193,1869574227,1030907244,774008686]},{"sector":3,"data":[168626701,1702129486,1394614330,1769239653,1394632558,1819242352,1849520741,1769414767,1679846508,1650553705,1881171308,1953393010,543649385,1836020326,1852397344,1937207140,1700006413,1852403058,168651873,168626701,1313756498,541544009,1129595202,774381640,693387586,1279870496,1176523589,541937490,1145981271,223565647,543574282,544567161,544109938,1953701985,1633971809,1629512818,1768714352,1769234787,1713401455,544042866,1633820769,543712116,1701603686,1970239776,1752369677,1684829551,1701995296,543519841,1229987937,1768300614,1713399148,1948283503,1646290280,1751348321,1818846752,538979941,543516756,541477200,1701603686,1752369677,1684829551,1986095136,1752440933,1634934885,1344300397,1864386121,1869182064,1931506542,1629516901,1752440947,1885413477,1667853424,1869182049,168636014,543516756,1869440333,1377859954,1769304421,543450482,543452769,1869440333,1142978930,1919513445,1864393829,1869182064,1713402734,1948283503,168650088,1668571490,1229987944,1768300614,1931502956,1819635560,1818304612,1937334647,543515168,544499059,857763700,539904818,1936287828,225667360,1684957450,1852141669,1953391972,543584032,543516788,1869440365,1914730866,1769304421,1701668210,544437358,544370534,543516788,1819308129,1952539497,778989417,168626701,1668571458,1768300648,544433516,1970235507,1646290028,1970413669,1919295598,1948282223,1293968744,1329868115,2017796179]},{"sector":4,"data":[1953850213,778401385,168626701,1431439885,1313427022,1230446663,1464812622,1381441619,541414473,1092636239,1331123232,1330398752,542724176,1414748499,168643909,1702258003,543973746,1667592816,1769239905,544435823,1970235507,1646290028,1651449957,1987208563,1998611557,544105832,1852404597,1767317607,2003788910,1460276595,1702127986,544108320,2004099169,1818632303,2037411951,1937339168,778921332,1933647904,1936024608,1651077731,1763730533,1870209134,1830842997,1635085921,168635500,544567161,1970235507,1746953324,543520353,1414091351,1480928837,1852776517,1819042080,543584032,1920298873,1668244512,1852140917,1768169588,779316083,1850280461,1685221152,1948283493,1919950959,544501353,1735549292,1868832869,1701672291,745763950,1970239776,2036428064,1852401184,1953046628,1667591712,1634956133,168655218,1881173876,1953393010,1953068832,1953853288,1701344288,1869640480,1919249519,1935745068,1936024608,1651077731,1629512805,1702260578,218762542,1376390410,1229868629,1109411662,1128878913,1145979168,1396785696,541147977,1213483351,1313429280,1398230852,1933642253,1701344288,1684291872,1969516133,1852383341,1633904996,745760116,1701344288,1297040160,1953525536,1936617321,544106784,543516788,541477200,1701603686,1711934835,1109422703,1128878913,1684955424,1396785696,541147977,543519329,779380083,1750343712,1881174889,1702258034,544437358,1718513507,1952672108,1752637555]},{"sector":5,"data":[168652389,1852732786,543649385,1752459639,1836016416,1768846701,1769234787,544435823,1735357040,1936548210,1226842158,1870209126,1868832885,1953459744,1986095136,224469093,1297040138,1919905824,1852383348,1818326131,543450476,2032168553,544372079,1953724787,539782501,544567161,1819044215,1952802592,1830838560,1634956133,168650087,1768189545,1769234787,1948280686,544498024,543516788,541937475,1953656688,1918967923,1853169765,1767994977,1818386796,1752637541,2032168549,168654191,1702130785,544501869,1914728308,1109421685,1128878913,544370464,1230192962,539902275,544166944,1768912481,1752440932,539784041,1953064037,1701344288,1094846989,541280595,1109422703,1128878913,1229987905,1768300614,1998611820,543716457,543516788,541477200,1953064005,1629516399,1679844462,1818588005,225731429,1701344266,1297040160,1953525536,1936617321,218762542,1141509386,1163282770,1327514144,541139022,1196312915,1176520012,1347440460,1498619993,1296389203,1850673677,1931501856,1818717801,1818632293,2037411951,1769104416,1931502966,1702130553,539784045,543516788,1953655158,543973749,1986622052,541204581,1769238639,168652399,1679848297,1650553705,778331500,1850679328,1701344288,1931502963,1702130553,539784045,1701209458,1668179314,1948283749,1919164527,543520361,1769414722,1646292076,1762266469,1919251566,1952805488,1629512805,1919164531,543520361,168635969,168626701,1347241300]},{"sector":6,"data":[1380012623,1229332569,223561036,1836012298,1885413477,1667853424,1869182049,1948283758,544498024,544109938,1701080693,1767317618,2003788910,1769414771,1663069292,1952540018,1702109285,1919905901,226062945,1818846730,539915109,1701336096,1818846752,1835101797,1701257317,1634887022,544828524,1768383842,1998615406,543716457,1769218145,543515756,1918986339,1702126433,2116558962,1628048681,1696621678,1998611566,543716457,543516788,1702131813,1869181806,1412309102,539906125,1970231584,1869116192,543452277,1702258030,1701060722,1702126956,1701344288,168650099,1701603686,1752637555,543517801,1852732786,543649385,1684957527,544438127,1948283745,544826728,544825709,1763730786,1937055854,2036473957,544104736,1819308129,1952539497,778989417,1716062733,1952866592,1897951845,1953786229,543649385,1684957527,544438127,544567161,1684957542,1835365408,1634889584,1713404274,1936026729,543584032,1936287860,1919903264,745824621,1752435213,1830844773,1646295393,1701060709,1702126956,168636004,168626701,1313428048,1196312916,1414092576,1213472840,1230250053,540030264,541347393,540357944,1313428048,1397900628,1750338061,1230250085,808794144,1684955424,892680224,1685024032,2004033637,1751348329,1869116192,543452277,1931502946,1713402981,1679848047,1952866674,1635086624,2037672300,2019914784,168636020,543516756,1986622052,1713402469,1948283503,1411409256,892870729,1919950901]},{"sector":7,"data":[1702129257,1970479218,1919905904,1948283764,1679844712,1969317477,1663071340,1634885992,1919251555,1952805664,1175063854,544501359,1953653091,1734633842,1629516645,1847616882,1931506799,1869639797,1684370546,218762542,1376390410,1229868629,1411401550,1142965576,1126191951,1396984648,1414864971,1414089801,1309281625,1919252069,1853190688,1263026976,541807428,1752459639,1701344288,543567648,1634886000,1702126957,1752637554,543517801,1684957527,544438127,1914729321,1768844917,221144942,1853182474,1735289198,1263026976,541807428,1752459639,544503151,543516788,1881171503,1835102817,1919251557,2036428064,1668180256,1701999215,2037150819,1684957472,1952539497,1812598117,544502639,1937075299,1936876916,1852404512,1864394083,544105840,1701603686,1918967923,1852383333,1886545268,1702126962,1935745124,1768251936,1814062958,779383663,1699154445,1634887022,544828524,1145784387,1931496275,1819635560,1700929636,1853190688,1953853216,1701079411,543584032,1684957527,779319151,2019887629,1684956528,1920300137,539784037,1970235508,1847617639,-1995815287,-1073018794,1317738101,105286408,-235417037,1183570059,-1947076860,-1875055661,1317787787,106334984,-788248949,-774254101,198758890,-134973989,871402481,-11513134,1996425846,14477320,1996903995,990409223,58065990,855764611,197561298,-150506241,-2082932774,1583022298,146955615,-326413056,-617392553,184960651,-149783104,72780755]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[154189,344,32,65535,490209280,0,64,0,0,0,0,0,0,0,0,1024]},{"sector":11,"data":[1409299944,544434536,1735357040,544039282,1970365810,1936028265,1667845408,1869836146,1461744742,1868852841,168653687,-1273033180,-1205744375,567102465,15919962]},{"sector":12,"data":[279886,153355549,191784989,5308422,402665184,65593,5308416,262225,4194799,82969288,84083963,4673,262533,1187250176,33812480,393216,72417603,72479088,165544332,165671280,138412629,138539376,74646239,74772848,145097515,145158512,185729989,185790832,38667398,38793584,142017711,142143856,56558911,56684912,222430585,222556528,27592287,27718000,48629381,48755056,65275580,65401200,16975623,17101168,297862939,297988464,75106369,75231600,57608332,57733488,97454279,97579376,1247548,1306672,140511550,140636464,177801679,177926448,157616765,157741360,193465132,193589552,74714106,74772784,45878350,46002480,168889473,169013552,133238061,133361968,100076987,100200752,132058663,132182320,52498098,52621616,95227629,95351088,109776724,109900080,100405195,100528432,359534642,359592240,25760154,25882928,112923062,113045808,354882084,355004720,13439875,13562160,104666001,104788272,103683064,103805232,257954922,258011440,52237674,52359472,45421982,45478192,8721869,8843568,40703448,40759600,306845190,306901296,73209664,73265456,88020880,88142128,144775147,144896304,35002498,35123504,107813030,107934000,274995486,275116336,68098624,68219184,148576906,148697392,273947427,274067760,188357701,188477744]},{"sector":13,"data":[130882831,131002672,186719631,186773808,60956244,61075760,65609362,65728816,30940894,31060272,60497667,60617008,345186120,345305392,4595885,4714800,23273651,23392560,173875408,173994288,81731977,81850672,163127781,163246384,558375559,558494000,226763964,226816304,80160156,80277808,102966764,103018800,42542679,42594608,399320706,399438128,307767329,307884336,40708464,40759600,8333722,8450352,155527588,155644208,50932291,51048752,2304633,2355504,137374333,462553425,-2147418108,3,721616896,-265289711,492,722731008,-265289711,500,723845120,-265289711,508,-2147352576,2,724959232,1048780,515,738328576,1048601,523,-2147287040,1,739966976,-265289663,529,-2147221504,1,744226816,-265289687,537,-2147155968,20,746913792,-265289719,32769,747503616,-265289716,32770,748290048,-265289715,32772,749142016,-265289712,32773,750190592,-265289720,32774,750714880,-265289719,32775,751304704,-265289720,32776,751828992,-265289712,32777,752877568,-265289715,32778,753729536,-265289720,32779,754253824,-265289718,32780,754909184,-265289709,32781,756154368,-265289721,32782,756613120,-265289715,32783,757465088,-265289715,32784,758317056,-265289715]},{"sector":14,"data":[32785,759169024,-265289715,32786,760020992,-265289689,32787,762576896,-265289709,32788,763822080,-265289710,32789,-2147090432,8,765001728,-265289721,32769,765460480,-265289724,32770,765722624,-265289722,33025,766115840,-265289722,33537,766509056,-265289710,33281,767688704,-265289692,33282,770048000,-265289712,33283,771096576,-265289718,33793,-2146893824,1,771751936,1048579,545,0,1280789767,1397051983,1213680903,1397051977,1397575686,122836291,1414873682,89018196,1380011346,1464665931,1329809759,1464665934,1313164639,1464666197,1128481119,1459962452,1163151698,16777216,201328640,4352,1380272902,55330126,71910471,1380275029,1497713416,1380011842,33554244,1209155533,1070399744,16777228,4276173,1070399744,16787979,1464549325,1070399744,17101131,1579106253,1070399744,17464122,-501202995,1070399744,16943136,-1272954931,1070399749,16777244,2899917,1070399744,16777256,-1658961971,1070399745,16777261,-96124979,1070399760,18031941,-784187443,1070399747,16777245,69025741,1070399747,17105441,-753188915,1070399747,16965384,540621,1070399744,17758795,1078673357,1070399759,17015363,-885375027,1070399497,342821,1392589,1070399488,396821,1543716813,1070399490,110918,-1239138355,1070399488,975909,-751550515,1070399498]},{"sector":15,"data":[258819,19939277,1070399489,966949,352534477,1070399492,117009,1578057677,1070399496,3,84099021,1070399490,20251,402866125,1070399491,357924,1130445,1070399488,83749,2375629,1070399488,247079,2064728013,1070399488,385319,1006714829,1070399489,27651,-536657971,1070399488,43314,1528971213,1070399497,68,977682381,1070399501,1316130,-1509539891,1070399494,540465,1729183693,1070399489,1396514,1075396557,1070399488,155148,3686349,1070399488,34583,-1673969715,1070399493,235523,3489741,1070399488,304407,-1874116659,1070399503,37,-1155186739,1070399506,244500,-2129117235,1070399491,56600,-1441251379,1070399490,101912,1589197,1070399488,78,405094349,1070399508,929317,-1559609395,1070399496,178185,1177960397,1070399491,13827,1778597837,1070399491,741195,692731853,1070399493,125706,-1722859571,1070399490,1226570,2084716493,1070399496,177734,388317133,1070399497,101424,2703309,1070399488,39,-1977925683,1070399489,14596,3162061,1070399488,184833,704856013,1070399489,95235,-516341811,1070399490,126209,-1862058035,1070399494,79,440614861,1070399489,286531,-1589428275,1070399492,268612,2084847565,1070399490,292164,876888013,1070399497,125519,1075986381,1070399508,184086,-1204535347]},{"sector":16,"data":[1070399499,122134,-1759887411,1070399490,26,739327949,1070399490,1052687,-2009120819,1070399492,14,1494106061,1070399488,54,-1036632115,1070399488,131894,523648973,1070399496,274435,-1258078259,1070399495,97289,475085,1070399488,9,-1610006579,1070399488,46862,2310093,1070399488,1040715,-1790558259,1070399494,70,692469709,1070399498,1014562,1311588301,1070399489,346931,-1356709939,1070399496,67,-1844625459,1070399490,289057,1712275405,1070399498,111689,-1038008371,1070399493,195076,167985101,1070399494,324102,-402440243,1070399495,4,-251445299,1070399492,288515,-920567859,1070399492,47108,-1776140339,1070399508,41761,1813725133,1070399491,26913,1090731981,1070399491,13857,-585023539,1070399488,511284,-1038860339,1070399490,231956,1293172685,1070399490,288533,337723341,1070399489,58,-566607923,1070399498,364833,624246733,1070399488,6222,-1794883635,1070399489,494851,3227597,1070399488,166939,-550944819,1070399502,168195,-215334963,1070399490,42,541343693,1070399489,304708,523452365,1070399491,254271,-902283315,1070399488,25,-1471987763,1070399489,367381,285818829,1070399491,192259,-972865587,1070399490,38,2080980941,1070399490,857381,1528119245,1070399498,250369]},{"sector":17,"data":[-1174323251,1070399491,391195,-1689632819,1070399507,181275,-334413875,1070399488,203537,1064909,1070399488,187702,-1223737395,1070399488,188431,100745165,1070399491,444163,999373,1070399488,529672,1327053,1070399488,130569,1798586317,1070399494,503816,923287501,1070399492,285992,-13025331,1070399491,73514,338247629,1070399502,43,-1911603251,1070399493,161039,-150323251,1070399490,364614,-318095411,1070399498,498182,671693,1070399488,19017,370163661,1070399490,68358,2081374157,1070399488,1114127,-16433203,1070399488,6,344013,1070399488,74756,-131121203,1070399490,16431,-786284595,1070399502,1372706,1478836173,1070399491,1079074,-214941747,16745985,2244557,1070399488,33049,990068685,1070399490,68377,388120525,1070399497,742446,691158989,1070399488,112434,3293133,1070399488,70194,-1207353395,1070399489,291355,-1726267443,1070399493,46,737229,1070399488,16693,-1941225523,1070399501,791115,1458125,1070399488,238605,1410154445,1070399491,121357,1023557581,1070399497,199207,18104269,1070399496,510228,3620813,1070399488,484372,977616845,1070399513,1596997,-62570547,1070399511,82999,1547124685,1070399488,53270,2113485,1070399488,31,1867202509,1070399492,75]}],[{"sector":1,"data":[1544175565,1070399496,63,1682063309,1070399488,66,4079565,1070399488,807476,868301,1070399488,21565,1279082445,1070399489,61,3424205,1070399488,441602,5259213,1070399488,51,147405,1070399488,158280,424165325,1070399489,72,-1022738483,1070399495,522261,1896824781,1070399495,478467,-753975347,1070399489,914703,806830029,1070399497,240435,1513701325,1070399495,452153,171458509,1070399499,550200,-583516211,1070399497,397369,540622797,1070399495,496697,1593917389,1070399490,210975,-49463347,1070399490,112416,-1843380275,1070399492,59,3948493,1070399488,763979,-653312051,1070399488,23,-1744420915,1070399490,64,-1875558451,1070399491,688191,-1421918259,1070399492,263487,1393180621,1070399499,137479,1612857293,1070399501,680248,138821581,1070399489,310787,390807501,1070399499,462083,1998274509,1070399495,1358370,1900494797,1070399492,201525,-902807603,1070399492,100423,4669389,1070399488,369188,1800093645,1070399500,77900,-1840562227,1070399498,768527,856637389,1070399501,220976,2131378125,1070399493,424970,-1592836147,1070399504,76,2016821197,1070399495,846095,1785805,1070399488,119811,-149930035,1070399491,30977,-284540979,1070399488,74,927612877,1070399506]},{"sector":2,"data":[68879,1427521485,1070399494,376136,-230146099,1070399490,18,-1140768819,1070399488,54273,-603897907,1070399488,75777,-369016883,1070399491,273153,1766657792,1936683619,544499311,1414091351,184549445,1129467974,1230261839,491083086,1229196800,1196379201,1162297680,1263681869,1175388171,1128613955,1347375179,1163022421,1856579,1095320593,1128746828,1179795784,1095586383,938836,1330790928,1094927425,1279349843,1431192908,234887757,1279347012,1229211471,1230195030,1396303,1095320592,1111969612,1095582785,1313425234,285218643,1279347012,1094928207,1279607630,1313428048,251660372,1162297680,1330007625,1346653783,71520082,1145899776,1314341711,1330794564,218104387,1279347012,1163085647,1195462740,285215301,1279347012,1095780175,1330004306,1413565778,201330515,1279347012,1095976783,1396786518,1141506054,1330397513,1313424967,285217092,1279347012,1431455567,1313427022,1095059527,184554308,1279347012,1380992847,122965577,1296894464,1145984855,1129271888,1376518145,1380273237,1346653783,54742866,1229195776,1196379201,1347175752,1141506061,1330397513,1414481735,268439631,1279347012,1163020111,1229406544,1163149646,1175191561,1398033999,1162173001,424498510,1229195776,1196379201,1313165391,1175191557,1179930191,1162167105,407721294,1229197824,1196379201,1313428048,1397900628,1347769413,1141506060,1330397513,1111577671,218109011,1279347012]},{"sector":3,"data":[1329809231,1380533838,201332301,1279347012,1212368719,1162300993,1108475922,1145130834,1414742339,1279871043,1431192900,6989,-1003791781,-654894733,168180022,907048704,788025,-1556741002,-527761396,-1949609134,1107804182,788464756,-5240896,-1140936517,1352203696,16777114,-26112,-1073020928,113717620,2002,130289289,1392924247,-401698734,-1070399405,-26032,-1705574400,65535,192200715,16777114,-6664192,-1207959297,567102719,-1864856373,-326412987,-1948742114,1996424798,142016266,-16615425,-401698761,1586168432,39291142,-310179959,535137026,113921373,136493824,137296769,-11335309,-1014801633,-873338108,-1207958341,567100416,-1024062862,-2147126144,1074263695,-873694901,567095476,-888678237,131204750,741772070,889239552,512303565,109840326,521013192,-1171980104,567083053,403606326,908256008,135923397,-617358708,371130166,-385649912,-986251494,-1945625082,244698,371130166,-887155192,855643321,-158861605,74711303,567099060,-873274813,1167120524,518818645,1448335502,-1946209449,-1073018810,-671673731,-150579573,500889560,1183383552,106334472,185353867,-149783104,173444055,-621291273,-1996488675,1451822150,1975520010,172919574,856180363,-1947076654,105286616,-745803273,-1953480981,172919768,-1962387829,-338622906,-355345967,-619980591,-235408267,-768348021,1996443730,175570700,300420752,139868929,141690743,1980122683,32408323]},{"sector":4,"data":[-963915213,125107979,-654845193,1593891459,-310158498,535137026,147475805,-1864856576,-326412987,1457032734,-1948568745,-1073018810,-738782595,-150579573,500889560,1183383552,106334472,185353867,-149783104,173444051,-621291273,-1996488675,1451822150,105810698,-125050377,-1962260853,65140720,1727502074,-1946680568,197561303,-150506277,-2082932774,1583284442,-1962742397,1297948645,-1946154806,1430622424,-1910575989,-1957276712,-1073017786,1317738101,138840842,-235417037,1183570059,-1947076858,-1874924589,1586219147,139889418,-788117877,-774123031,198758890,-134974007,871402483,-11513134,1996426358,-401698806,1446707232,1913091848,105265928,-293403786,-1949158655,-2091163962,-443874579,-900899553,-661913592,-1957345904,-661774612,205949782,-150581621,-1948742687,-259323322,-637279753,140965782,-745809917,-2090940789,-443874579,-900899553,-661913592,-1957345904,-661774612,-13412525,185091723,-149783104,106335191,-621291273,-1996488675,1451821126,205949702,276676619,-150317429,500889560,1183383552,173443340,443924491,-1962258805,-768407482,1183576567,-1947076858,198325186,-347638273,-661942196,-1962258805,1183516758,-773074682,-773140007,1977289688,871495668,-11513134,1996426358,-401698806,1446772552,1913091848,105265931,1177224822,206969610,453396011,-16054186,-621344907,-628893449,-2091163904,-443874579,-900899553,1430585352,840887435,-788077587,-489500192,49120250,1562371467]},{"sector":5,"data":[1430637389,840887435,-788077587,-489106966,49120250,1562371467,-661861555,-1957345904,-661774612,1172835984,-401698816,-469042054,2122320500,74776582,-33143098,-971586274,620804103,-1960894003,-486008818,178951,135667455,-1274657141,-1155412660,-75429842,158533678,1528823635,-352009341,784059377,855343368,1393128200,-2091180033,-236256061,50333387,16790785,50331904,50356225,50332928,16800257,50339328,-16748800,50409984,16792065,50354944,-16750336,98048,0,0,0,1167087646,518818645,-326903666,175570756,-1928825089,1343667270,1342193848,16777114,-79247872,1354771200,-1719729480,597315666,-1560281087,-1073017918,-1070922379,-1207782935,-1706033133,440,-1962802013,-1935471034,538687494,156821584,184599715,-1202424640,-397402083,-962393782,1958742784,539080774,154986576,184600739,-1204259648,-397393915,-895284946,1958742784,1073920042,153151568,184598179,-1206094656,-397402078,-1063057134,1958742784,538163214,151316560,184599203,-1201244736,-1706033151,65535,13254275,-16157696,-1711224266,216,12467843,-16157696,-1711227338,232,12598915,-16157696,-1711226826,248,12729987,-16157696,-1711226314,683,-626802645,191931137,31196729,104401269,57999838,-1207844375,-890691555,1354771201,-1719729736,949637202,-1560281087,-1073013940,-1070889612,2130753616,-1706012007,476,185714339]},{"sector":6,"data":[-385649216,922746733,683148940,-1706025471,65535,185744547,-385649216,-323420331,-1202708990,1344143670,503394744,278837328,515395614,-6664192,-1207959297,1344143934,503514296,1354771280,16777114,1975520000,-339727612,112643,-2096498525,1962937470,-1942552759,22276102,58048523,-95255,-1207530442,-1706033141,454,2080383037,833550,-26032,540868608,-1207599872,65732927,-1946073160,-1706011942,65535,185203363,-384141888,1996488393,167426060,178256,-26032,-1073020928,-1293352075,-1942552578,35710982,58048523,-1191271191,1344144140,-16091393,-1070921610,1375784122,1347440720,1342203064,1347469355,1343125247,-26032,-1073020928,1994982261,1346274302,57933825,-1694602007,65535,109721343,16777114,922701824,-6682986,-1929379585,-1705984954,65535,58048523,-2080488215,86078,988349300,-25858,1048772608,1962935970,-30676733,109721343,-1710852353,65535,31065799,1187446784,-2097151492,50238,922683764,-1147535164,-2097151998,50750,922683764,-879099706,-2097151998,51262,922683764,-6684472,-1962934017,485227590,31473283,-1207602176,65740833,1344281528,16777114,-62470400,-1343553536,-1962742397,1297948645,1426066122,-326898549,-431583974,1354771280,1342184120,16777114,-431569152,1187446819,-939524120,-5562,-1996208501,-1202655162,1344143698,16777114,-230258432,-1996399944,1586296902,51165434]},{"sector":7,"data":[-1929623927,1183710814,-1706027290,909,91602955,-907427797,-431584000,1354771280,1342184120,237978,-431569152,1187446824,-939524120,-5562,-1996208501,448327750,-62486269,-1912709492,1343678022,249754,1958742784,-431583809,1354771280,1342184120,255642,-431569152,1187446824,-939524120,-5562,-1996208501,-962465722,-196703983,-1996282184,1586297926,-431583746,345657366,184549380,-385649216,1183711098,-1070903066,1751120,51223120,1187446784,-956292890,-6074,-1423673,71732223,-1578088823,1183388102,53786868,-1929623927,1183710814,-1706027290,65535,58048523,-1191234071,-443875327,180829,-1192457387,-4521985,-11513089,1436157046,-1560281084,378081828,-1039461850,1743324021,-18430,1392508858,74907472,291738,278307584,278402697,58049035,-1207809559,-4521985,-11513089,-1852177290,-1560281084,378080160,-1039463518,736691061,-18430,1392508858,74907472,307098,322347776,322442889,58049035,-1207824919,-4521985,-11513089,-845544330,-1560281084,378081468,-1039462210,-269941899,-18431,1392508858,74907472,322458,295478016,295573129,58049035,-1207840279,-4521985,-11513089,161088630,-1560281083,378082138,-1039461540,-1276574859,-18431,1392508858,74907472,337818,228762368,228857481,58049035,-1207855639,-4521985,-11513089,1167721590,-1560281083,378081824,-1039461854,2011759477,-18431,1392508858]},{"sector":8,"data":[74907472,353178,195339008,195434121,58049035,-1207870999,-4521985,-11513089,-2120612746,-1560281083,378082082,-1039461596,1005126517,-18431,1392508858,74907472,368538,320381696,320476809,58049035,-1207886359,-4521985,-11513089,-1113979786,-1560281083,378080156,-1039463522,-1506443,-18432,1392508858,74907472,383898,277914368,278009481,58049035,-1207901719,-4521985,-11513089,-107346826,-1560281083,378081842,-1039461836,-1008139403,-18432,1392508858,74907472,16777114,263365376,263460489,58049035,-1207917079,-4521985,-11513089,899286134,-1560281082,378081278,-1039462400,-2014772363,-18432,1392508858,74907472,413850,324313856,324408969,1819591179,-1157627976,1347616767,-1710983425,1643,-1995713885,185324566,-1202621246,-4521985,-11513089,-2036726666,-1560281082,378080132,-1039463546,-4704652,-17665,1996443730,111254020,312672256,337021202,1958873874,-18405,1392508858,74907472,276378,323789568,323884681,74826251,65781803,-1962933832,46292453,-1873273344,-326412987,-2082959842,1183517932,109749002,-26032,-1633484800,1975520006,38594819,16139975,-1201673472,1861681278,325846518,-1946925431,-1723795898,113118859,-1031013897,-150962503,325846505,-1980473717,-163149049,113116675,244029768,-101251394,2126103179,99219200,1586172780,38242804,-1946919285,-1991751485,1586171463,71813108,1204289535]},{"sector":9,"data":[-250,-1096681914,-163170042,113744252,325849916,-1711276104,-1995563869,-1559355882,378084222,-6677632,184549631,-385649216,922681786,-1070922102,-26032,1183383552,-1070903044,-1202696112,-1202651137,-1706030848,1982,109852415,1342179256,503971512,16824400,-26032,1996423168,1354771452,503971512,-219105200,16824400,-26032,1656225792,726670849,-1169141568,1347572736,1347440720,1342863103,109852415,345657424,-1560281080,-1073016778,1072235381,1007076865,1823998480,726670849,-1202696000,12189697,726684244,1347440832,175570768,-1942552752,-1706012666,2121,185612451,-385649216,113639690,-1207824323,1344143734,1347469355,-1174402888,1347572736,1347469355,1996443728,922701834,1347421836,554138,242918144,58048523,-1207904791,1344144180,1347469355,1381236922,1347440720,175570768,-1942552752,-1706012666,562,185815203,-385649216,-1706032982,2389,200820361,-385649216,112722074,-677752832,1375731720,-26032,1183383552,1975520250,8448259,1358460671,154522,1975520000,-92864758,16777114,-9835776,28899446,1905938432,-16777207,163117174,-6664192,1375731967,-26032,62390272,-207990784,-1560281080,45617292,1150963712,-1560281088,922685570,45617206,-1070903296,909573968,112658,153524816,922681344,45617208,-1070903296,16758864,112720,-26032,116064256,22021831,-310181887,535137026,113921373,-1873273344]},{"sector":10,"data":[-326412987,1457032734,-1995802997,-1995426762,1443921974,151962,272278272,141934603,22021831,1022033921,272250623,1342177720,16777114,976682752,-1875443952,-1908998394,-26106,922681344,922685498,922683028,-560331118,-16777208,-15713738,-1710844362,2225,49120094,1562371467,445005,-1275051,-16348106,-21494666,-1202708983,-1706032896,1958,74825739,166445099,1342832312,16777114,1575324416,5636802,66519042,262399,70189058,327935,72155138,393471,76087298,459007,83951618,524543,80019458,590079,78053378,655615,81985538,721151,74121218,786687,85917698,852223,93782018,917759,95748098,983295,87883778,1048831,89849858,1114367,91815938,1179903,97714178,1245439,99680258,1310975,12058627,10027263,101646338,1376511,159514883,65538,147521795,131074,103612418,1442047,105381890,1507583,107151362,1573119,108920834,1638655,13107459,1114113,160628995,589826,110690306,1900799,48562179,3014911,126877955,10027011,125436163,10223619,41549827,12386559,114426115,10289155,102170883,3342337,161480963,2949122,32899331,3538945,132055299,2686979,25755907,3735553,42991875,2752515,24576259,3801089,3080451,11337731,53281027,11403267,163840259,11534339,22020355,11599875]},{"sector":11,"data":[149356803,11730947,144113923,11796483,55312643,3735555,1900547,5898495,144572675,4325378,146604291,4521986,151912707,4194307,142868739,4325379,51970053,65791,57737221,131327,56950787,7012607,61669381,196863,66191365,262399,69992453,327935,71958533,393471,75890693,459007,83755013,524543,79822853,590079,77856773,655615,81788933,721151,73924613,786687,40108035,16056575,85721093,852223,38273027,16122111,93585413,917759,95551493,983295,124190723,16187647,87687173,1048831,164954115,16253183,89653253,1114367,91619333,1179903,97517573,1245439,99483653,1310975,101449733,1376511,103415813,1442047,105185285,1507583,106954757,1573119,108724229,1638655,52297730,65791,110493701,1900799,58064898,131327,61997058,196863,1167120524,518818645,1465309326,-1962248565,1317734526,63408902,990322369,50820087,1324942321,-1527513777,-2090967044,-443874579,-900899553,-661913594,-1957345904,-661774612,2126796630,209110280,-1962520949,1002505159,50820087,1324942321,-1527513777,1606585596,49120094,1562371467,707149,1167120524,518818645,1465309326,-1962248565,1317734526,-1949857018,65262041,990322371,1258779639,66257739,-1510736389,-2090967044,-443874579,-900899553,-661913594,-1957345904,-661774612]},{"sector":12,"data":[2126796630,209110280,-1962520949,-774272057,1002636259,1258779639,66257739,-1510736389,1606585596,49120094,1562371467,707149,1167120524,518818645,-1940399986,-1950314792,1183517310,105810696,1605104636,-1962742397,1297948645,-1946155318,1430622424,-1910575989,2126796760,138840842,-66695541,-2090882061,-443874579,-900899553,-661913592,-1957345904,-661774612,-1898410921,176065472,-1962391926,-201587122,-310157398,535137026,113921373,-1864856576,-326412987,1473809950,-1979023676,1317734470,-1426850810,49120095,1562371467,576077,1167120524,518818645,1586223246,197888774,-150832677,172395483,-1072969677,-654900615,856184459,2043808714,-136644862,-775189790,-2084371461,-472842030,-751052534,-201910413,293126155,41535755,-310126345,535137026,113921373,2147465216,-294008565,-353642249,1167120524,518818645,-1957242738,1988823134,973572614,1124889860,1975551046,112884,865076203,-310157632,535137026,80366941,-1864856576,-326412987,1457032734,-1898410921,175541184,-1962377589,-1047853490,66061128,-1493959176,-1958674060,1583348929,-1962742397,1297948645,-1946155318,1430622424,-1910575989,-852708136,106859297,1468600201,49120002,1562371467,182861,1167087646,518818645,1183570062,139889414,2081183289,956661519,141953606,-1962260853,116067414,-1962522997,-310179754,535137026,147475805,-1873273344,-326412987,-1948742114,1451951686,206977288,92016511,1930053177,172395272]},{"sector":13,"data":[-351512949,105286406,-2096605557,-443874579,-900899553,1478361096,-1957345904,-661774612,1988843095,108956424,74708795,49006219,1600046987,-1962742397,1297948645,503317706,1430622296,-1910575989,-1957275688,2123040886,1995913990,-339309820,1590135554,49120095,1562371467,313933,1167087646,518818645,1448597646,-1962379637,-147126658,-963967875,-947191061,-310157474,535137026,80366941,-1873273344,-326412987,1473809950,141986646,990281355,-1962639625,-1962742842,-2090901817,-443874579,-900899553,1478361092,-1957345904,-661774612,1459940483,108432214,-352321089,-2142877951,1962999676,1590135800,49120095,1562371467,182861,1167087646,518818645,1448597646,-1962510709,-1961942498,1488927,-125047049,-1962786421,1599997009,-1962742397,1297948645,503317194,1430622296,-1910575989,-1957275688,512427638,529207074,-150989128,-1946645522,1599998529,-1962742397,1297948645,503317194,1430622296,-1910575989,1040631768,-1207959540,-1873805311,649230,-1962742397,1297948645,-1873273141,-326412987,-1948742114,-2103245242,49120006,1562371467,182861,1167087646,518818645,-326903666,-1957275900,2123040886,-62470394,82509824,-62455993,168134828,-1946847808,1600060486,-1962742397,1297948645,503317706,1430622296,-1910575989,116163544,1988843095,108956424,2122517227,74776826,703316011,-12285370,-1873746902,2811918,1207584393,721372554,244338916,-1996481560,1178205254,-1949076230,1177287238]},{"sector":14,"data":[-2090901764,-443874579,-900899553,1478361092,-1957345904,-661774612,705054346,244338916,184711912,-1979026240,-467007930,-352313339,105286149,-310123478,535137026,46812509,-1873273344,-326412987,-2082959842,-2002709268,-2012807417,1958742791,16115971,33949383,113704961,66050,33832579,-385649664,-1264516948,-230258426,108380171,-1996059999,1048834630,1962934746,-226589878,-12291072,-6622602,184549631,-13077312,1183707766,-1706027276,65535,737691275,731509830,-1980182078,1183575622,-163173382,-775804007,-263812616,-1913489665,1343680070,16777114,725674752,-6664000,-1996488449,-1072960442,-1202701196,-1706033144,1452,-775804007,-297367048,-1192462593,-1706033142,65535,-775804007,-263812616,-11485141,-6624138,-16776961,1996484214,-25872,922681344,-6681662,-1207959297,-1706033151,1523,1342183864,16777114,-62486272,28838379,882528256,-1962934266,1191181382,2092960764,49120237,1562371467,1478413133,-1957345904,-661774612,-2096829309,493630,251619454,1651836808,33949383,113704960,514,-1705983957,65535,33832579,-1962576896,48956998,-1705983957,1491,1342183864,386458,-62486272,33832579,-1961004032,1191181382,2109737980,112669,108567120,-336920576,-1705983957,1500,-244085,-1072956338,-310120835,535137026,46812509,-1873273344,-326412987,1473809950,141986646,-351895925,2088781323,74776831,183222315]},{"sector":15,"data":[-467008374,-311048389,1600046731,-1962742397,1297948645,503317706,1430622296,-1910575989,105286360,-1873746902,3270670,460701707,705054346,244338916,184574696,-2146667072,1962870398,108953606,-1207601697,48955393,-310132693,535137026,46812509,-1873273344,-326412987,-2133291490,1918961278,108953606,-2145880454,1927284350,108953606,-2146666762,1928857214,108953611,-1207601154,48955393,-310132693,535137026,46812509,-1873273344,-326412987,-2133291490,1916864126,108953606,-2145880486,1925187198,108953606,-2146666794,1926760062,108953611,-1207601186,48955393,-310132693,535137026,46812509,-1873273344,-326412987,-2133291490,1915750014,108953611,-1207601351,48955393,-310132693,535137026,46812509,-1873273344,-326412987,-1965519330,-467007930,-401698736,-1072955581,1183451764,769927686,99287072,705054346,49120228,1562371467,182861,1167087646,518818645,-326903666,1187468804,-352321284,-60912851,-1979156853,1357130240,-1310191984,-60912644,-1979025781,1374497288,244379787,1006411752,721712326,-15799360,1183579206,-62506746,28887932,-310157824,535137026,113921373,16973834,198013,16973852,197972,16973857,197955,16973871,198225,16974003,198023,16973890,198079,16973892,198216,16973893,198090,16973894,198254,16973895,132504,80,0,0,0,1167087646,518818645,-326903666,-1942552828]},{"sector":16,"data":[108461830,1074284171,-4698082,1553616896,-1996488704,1586232390,-62486008,-310179960,535137026,80366941,-1873273344,-326412987,-2082959842,1448543468,-1962379637,922683006,-1957230964,-1202708794,-1706032897,65535,66864777,-2090901818,-443874579,-900899553,1478361092,-1957345904,-661774612,1459940483,108432214,253894283,381173643,65992448,105248504,-1961724926,212928069,254077139,91554108,-352321096,1589652226,49120095,1562371467,182861,1167087646,518818645,-326903666,-1957275900,-13957002,327022091,-1962516853,-1962410233,755484376,-654850421,-2092437365,494668542,-1181104501,-101253110,108461904,-1075310960,-1174928385,-963969014,-1946552423,106859506,134154123,-963913589,126365700,1577141645,49120095,1562371467,313933,1167087646,518818645,-326903666,108461834,16777114,-62486272,1342177976,-1711520117,-6664110,-1996488449,-1072957882,-1706022540,65535,-1980217719,-1039402410,1183522420,1380982278,-493825,-6620042,-16776961,-6621578,-1962934017,183236166,-1695123713,65535,-310132693,535137026,46812509,-1873273344,-326412987,-2082959842,1448546540,1183432747,-230258188,-1962248565,-33355650,2131248697,-373282043,-1974533841,1038363141,376700962,1946185277,485181187,1765638223,2123040884,176030472,1187450603,-352321530,-8552441,1325757728,-177014981,-788111733,-1366848541,-62486265,-2142895637,-93052868,1965898880,112645,-1070923029]},{"sector":17,"data":[200296073,1174500544,-12285370,1183441962,3030522,-1947663499,3161344,960334716,-2088337664,2080437374,-385647089,2122448763,1913441522,-9311997,-1728050504,1996443730,-227082252,16777114,-1949791488,808319558,-136672512,-768869274,-753680125,-1980610935,-147065770,1089184370,-12285370,1183441962,3161594,820577149,3751423,686359422,3157503,100427511,-768933883,-150992199,30551025,1444016710,-62485516,-150993659,-62486031,-1066207429,16023171,58593148,-2113997079,2076242558,-320273546,-260144130,-1961921536,1452012102,-2082932748,-621346606,1183515627,207522802,28837769,-2090902016,-443874579,-900899553,1478361096,-1957345904,-661774612,1460202627,175541078,2122579755,443876360,47988355,-1961659388,2025429446,-134613248,1975925737,138856197,1586167813,-1948004088,-1995985273,2122579014,92080646,-974536661,2113276672,207522579,134154123,130472075,-137983187,1206946776,737953419,13154770,-268176905,-768883061,-1979943177,-11470778,244321398,66928104,-129594376,737961719,702704,-259264777,1996244537,702474,1178332919,-1957399812,126553182,-661977089,1194198982,-768883061,-1979943177,1586231366,-16282868,-1965520121,805632070,-1186527352,1183514634,-60360712,-654850517,-768876041,-1979943177,-1072957370,1586172276,-16282868,-1965520121,805632070,-12122232,1586170998,-1847032,-1962433865,-953481658,-401698736,-134021103,1600046987,-1962742397]}],[{"sector":1,"data":[1297948645,503318730,1430622296,-1910575989,116163544,-164932009,-1962254709,-1961825473,1191118942,-2012771832,1958742533,-1958263284,1325336134,2143292166,108954598,-1206813440,-1924134982,-1202651835,-1706033149,65535,-1995809141,1590070079,49120095,1562371467,151439949,1191248640,251658497,-2080308480,285212929,1409352448,301990145,1996555008,318767361,1543504640,738262788,520160000,-1342176512,1862271744,1510014721,889193216,1526791937,1426064128,1845559042,0,1167087646,518818645,-326903666,113726980,3662,401035,-1995290741,96009286,-59836672,-166989685,1200162164,-1962743022,4372678,67156048,7838288,1419968512,-6664165,-2097151745,1946221694,-62485748,401035,-351123575,102664967,306678528,1491603088,1975520007,-373282043,1119355015,12079104,-6664188,-1560280833,-1073013932,-1783044236,-442871807,-1560281088,1950355872,-1475950632,-956300021,64582,-1564992277,-59836672,512487563,922948000,-1979332989,209724420,-16480245,-1465779130,-62506741,-6628228,184549631,-392268608,-1073020430,-1243048076,1958742786,86632592,-1988837365,1342210232,185242,262710016,-385649344,28901239,-310157824,535137026,516640093,1430622296,-1910575989,1525449688,-1505310890,1183514625,-1471772410,-1968677237,-1438218233,225755146,1936990268,1869875516,10897095,-1501658368,-12421888,1996424822,-26106,1346895872,1358055053,16777114,1958742784]},{"sector":2,"data":[-1337553645,108461904,-1705983957,65535,1031127051,31065799,431489024,-6664160,-956301057,16898566,-1404647680,1586200575,509446,11552454,31473283,-2096663296,122430,-1070899340,-16705047,2011801670,-1337553409,1354771280,-1207535873,-1706033105,448,628473867,-1207535873,-1706033094,464,360038411,-1207535873,-1706033060,65535,91602955,-352321096,1354771202,16777114,-1404663552,1954545469,-6664052,-352321281,-1400995437,544505855,295706251,-1564991605,-1402013952,1485566091,-1925710050,-1202671546,-1706033086,65535,1353729677,200602,-62486272,-385649344,1996488552,-59310164,-1705983957,793,1085163145,1374225269,-1367932929,462436095,281163519,16777114,998656,971572085,1354771455,1342177720,16777114,-1400995584,292847615,34735815,-6684671,-956301057,135686,108461824,16777114,118268160,118363787,-1994692445,-1558484458,378084204,480451438,504793360,1879998480,1347551515,16777114,112640,49120094,1562371467,182861,-2081649835,79168748,254452480,-150991943,-6663959,-1560280833,1967132450,-373282043,512426148,126553890,100550281,1183383640,-1962152964,1183055454,130488062,1183514624,-28952068,-4657806,582504575,697978881,1342177283,1342177720,209818,196125440,1350565816,1342251960,215706,28856320,-6664192,-1560280833,113712002,-60870,16777114,19183616,56007248,1956839424]},{"sector":3,"data":[19249179,56793680,-1700593664,19314704,-26032,748879872,-1338080497,58064651,-2080412951,-14974402,1625883509,58015999,-1191224599,-443875327,-1957313699,149717996,604875425,-1558705152,645926314,-2147283543,-133321690,229117568,1376175873,-1593767917,-2145124086,178462220,135168001,144769281,201401345,17343292,17958599,882966768,-119242737,-1560097664,1048776500,1962935018,18737411,111687423,1342180536,1347469355,-129594032,-1936044010,184549380,-14650176,922744950,922683882,916066424,-1560281084,1996427064,-63504390,-2009661687,-13309168,-1207523274,-1706033148,1094,943765584,16693328,72653392,950206464,-1472790769,440326,-26032,-1202716672,-1202702272,-1706032898,1184,-1592838493,104402744,108399082,-1559631199,916524856,-66701041,-1593412087,916654588,-1472790769,899078,1354771280,1183666256,-1706027272,65535,628408331,-493825,-16127434,-1710196682,1203,-15726941,922745462,922683900,-6680440,-352321281,255369493,166331947,111405265,255238416,167511595,2124671185,1354771216,722417825,722470406,1342827014,325786,-62486272,-1588543445,103485238,103485566,-1706030596,65535,-335657335,939968282,-953167857,-535874042,-1983894723,1183448646,276734972,-1206909277,-11532536,-1710225866,1331,-1206959965,-11532536,1318780022,-1962934267,722417678,1074670536,1108248847,94418959,2117533520,90020368]},{"sector":4,"data":[1017315328,94418959,-25755824,358554,906922752,734538511,-1995490290,-1206960626,-11533256,-1710195146,1415,-1206958429,-11533256,-1650786698,-1962934267,722417166,1208912328,118011919,-59310256,373914,940477184,-1983370481,-1206956018,-11533256,-1710195146,65535,-955298141,-15779322,256156159,-2147425152,1151533516,1241958159,-1593651185,1218645816,255238419,-955033437,-16554490,1879492607,-1207956978,-1706033102,135,1074789539,-1070922635,28836843,1575324416,-326412861,-951260029,152178694,-26112,-995950592,-401698805,1187381523,1183645878,-4697930,1347590655,1342179256,16777114,-62486272,1971322685,-373282043,512426219,1207894022,-1608611070,-1995994351,-661915066,17059712,-2131075445,-1962802097,-16775650,-1070923185,-1559085405,2075660706,306225920,722576547,-1583722304,-1560281082,-1070919258,-1506345136,-28930799,112720,112761424,-661979136,1200209963,1342671106,16777114,306356992,-11485141,-1928183242,-1202651578,-1706033151,65535,-1070868341,-1996339319,243719,114727504,-1465712640,243729,99654224,1151533056,-1547687150,-1432153530,296263953,-385649344,1151467343,58015762,-1191229719,-1202713176,-1202712650,-1706033147,1813,1343072440,1342828216,1342178744,468634,1379335936,281851923,899152,-26032,28835840,1575324416,-1873273149,-326412987,-2082959842,-1101656340,1187450492,-352321288,38061841,1183547391]},{"sector":5,"data":[71600632,-2080880897,278988486,-129615598,1386473340,-62470373,233504768,-1946394997,-971275210,1191182080,268083708,2096907833,-1003058197,-163133679,434831360,-16628537,107249791,-163148802,-972798839,-63420,-964430266,458793225,2096514617,394719,1578859683,-1962742397,1297948645,-1873273141,-326412987,-2082959842,113707244,1973080,1347469355,16777114,-96040704,-2080614775,326894586,1077740927,-955484659,1008424966,-502872320,-1593835263,-523166888,268084032,-150992456,1075533870,378273316,129047384,-2143100205,-1039925534,268045963,-18775999,1183432963,4241656,-126419120,546970,194683648,662028299,458753735,113704990,4001786,1074789025,235273764,-129595120,1342193848,-1694992641,58,-2096391517,760382,-1070922635,-1700711445,166241035,-1323607903,65065735,-1559520762,608177050,194683902,-1592032093,100863994,-1700590694,-31178741,-1559520605,28840388,49120000,1562371467,2083661,35717123,9306367,137167107,327681,4391171,458753,54591491,2490623,131399939,1638401,81854467,11206911,35127299,2883839,24051715,3014911,110231555,3473663,117702659,3670271,66519299,2490370,86245379,13238527,22806531,14090495,31522819,5832959,20840451,5964031,103874563,6160639,69730563,5242882,37224451,15401215,44892163,15466751,67829763,7078143,42270723,15532287]},{"sector":6,"data":[41353219,15597823,38862851,15663359,28311555,7274751,40173571,7340287,32440323,15728895,21561347,15794431,12779523,15859967,101842947,15925503,108724227,15991039,113901571,8519935,1167087646,518818645,-326903666,374796,2202192,1183383552,-61437446,1342179512,16777114,-163149568,-1577560439,378209934,1446577808,958100988,376830534,-1962503519,956732438,175503446,1979074105,-373282043,-1070923600,20683344,1183383552,1958743028,1996443884,-92864516,32410,110011136,110106249,-755969,1996486774,-25866,-1834811392,-1810462458,1354771206,-1695254785,377,110114559,109983487,16777114,110535424,393592843,-1705983957,65535,-955869533,-16347642,-1878603777,-2130641146,-16347074,-2095745792,-16347586,113708661,6424216,110757575,602603775,184979105,1963364358,-1744386290,-956284410,432646,-955454720,554080262,-1710831872,-1207898106,-310181887,535137026,516640093,1430622296,-1910575989,82609112,28857943,1347440640,1354771280,-26032,-1734148096,1975520013,-373282043,922681687,-6682998,-1996488449,-1072956346,-1202656396,-1706033142,347,-15848797,1488518262,1788497920,-1560281087,1996426652,5945596,-26032,-1499267072,-1976107251,-59310330,16777114,18921472,-1674117296,94418957,27171408,-1667039232,2076227600,-1674117296,94418957,31693392,1050869760,374803,28678736,45678592]},{"sector":7,"data":[-259305216,114842,1095936,-1694987439,65535,322834059,-821835733,235130411,243863708,-1263005130,922701824,-1598550628,-140881915,-1560281087,146280974,922701831,-1598550628,194662405,-1560281086,-860351646,922701845,-1598550618,530206725,-1560281086,548933826,922701902,-1598550618,865751045,-1560281086,1018696490,922701824,-1598550618,1201295365,-1560281086,1085807504,922701825,-1598550618,1536839685,-1560281086,1018695062,922701824,-1598550618,1872384005,-1560281086,-256374298,922701824,-1598550618,-6664187,-1560280833,244322290,184557032,-385649216,-1070858577,-401698736,28836892,-2090902016,-443874579,-884122337,1167087646,518818645,-327034738,-2033843694,-2097086730,135230,-1410792588,1312719616,57999387,-2097110551,992318,-1746336907,1310624512,-1925710053,1358820998,1342243000,16777114,50116608,-2037559266,1343684086,-17398131,-2037559274,1343684346,1342243000,228250,-91845376,-2037559042,-1924071948,-1873740730,31647758,-34437495,-34568505,-2037710848,-2037776908,-2037645576,-2043019790,58523120,-1962881303,-15784930,-122224841,-25858,-1073020928,-2037707915,-2037776648,-353763852,-122224896,-25858,-2046754816,-2030043400,-1024721424,503508152,49592400,-2037559266,1343684342,-34175347,12079126,-6664191,-1929379585,1358820998,1342188728,16777114,-125400832,1958743038,-293172949,-1928401923,972945030,1996353158,-292618483,-291599363,541032701]},{"sector":8,"data":[-1634997900,130481646,-125400320,1760248062,-34161024,-1204390656,1344144124,1347469355,-17398131,-2037559274,1343684086,1342243000,268698,-155287552,292880637,614711339,262578959,-1206169949,-320274431,50116608,-2037559266,1343684086,-17398131,-2037559274,1343684346,1342243000,194970,-155287552,-931921667,-17135987,-192508592,1183666429,244338940,-1929331736,1358820998,290202,731463680,-1980182078,-1705969082,1148,1075531427,-2037550732,-1957626378,-14987746,-92864713,299930,-59310336,302234,731463680,-1980182078,-1705969082,1195,1074767523,1996437620,-1507947524,-13107441,-493159818,-16777212,-1694632778,1429,-1037330112,1183447249,-6663942,-1560280833,1967132452,-1506345185,79927823,922681344,-6677682,721420543,254059456,-1559255389,367729486,-34294017,254025355,1996437503,-25862,250150912,49120255,1562371467,1478413133,-1957345904,-661774612,1460202627,-62470314,1988820992,1174530826,1948269696,106859514,199964553,1949056128,3964939,-2142894476,-260759492,1962949760,140413710,278792135,33310407,-2140542208,360000572,1174406342,1948269696,3965178,1586225012,-348681976,312906,1015023083,1174828032,1965833344,742162677,-672408971,1191181963,-2146702340,192162877,1946172800,1031816999,-957319904,-1958281211,1191308279,1948269952,1465276410,217754,-644198400,-2147483646,-931856324,-16359797,3061815,59349584]},{"sector":9,"data":[-259325952,359986699,122599510,309328,-26032,-1073020928,80085876,-62485760,-310157474,535137026,113921373,-1873273344,-326412987,-2082959842,1048775404,1962935018,8448259,111687423,1342179512,397466,-96040704,-15697757,-1207523274,-1706033142,332,-1543747959,922685576,112723624,1855606784,721420294,-129594944,-637303,-1928943562,1343682118,1342177976,16777114,-96040192,-1544141269,-1073018390,-654899843,-1962284381,1177286726,167551996,92127243,-56370953,-1472790775,112646,-26032,367722496,-1559912264,-358413828,228368649,-1592756061,-2002580058,3979280,-2009661616,-63504624,25860617,1923284992,49120027,1562371467,1478413133,-1957345904,-661774612,1443556483,16533191,-365001984,1668546562,458112643,-2091092992,1025598,1048794484,1946160932,108954446,-1207405568,-4521985,-1207505921,-4521985,-129594881,-1946528119,-1961908706,-1957683705,-1961144802,-1957683705,-1961941986,726670855,-11513664,-1465649058,1958742790,-368654584,-352321278,48931129,-244087,-1710847434,86,-955864925,190982,-58817792,-1592036352,1183384026,-637089802,-1207959551,-1706024926,65535,-1544141173,244318682,-1862368536,3860494,34735815,28835840,-6664192,-2097151745,991806,512432244,529207074,-150989128,-1961739730,307792880,1736449931,-2090959103,-443874579,-900899553,1478361090,-1957345904,-661774612,1461513347,574522198,57999375]},{"sector":10,"data":[-2096933655,993854,1256784757,-365001981,57999362,-16717847,-1207523274,726663180,1347440832,384190093,141007440,-1073020928,1996431476,-365494298,2016870153,135895568,1183383552,-394854416,167524095,277362431,922694891,79169192,697978880,1342177288,1345863864,1342242488,538522,-263812864,111687423,1342179000,392602,1085820928,-21475272,2073710592,-1996488696,-358486458,-263833335,1183384435,167551472,1944995385,-297367293,111687423,1342180792,1347469355,-431583920,-6664170,184549631,-14125888,922740342,922683882,-1902505864,-1560281080,1996427270,-63504408,-2009661687,110533136,2124611584,-1960187120,103542854,-388953622,-1961883997,103542342,-388953604,1187505387,-953167632,1038151238,2124660779,268870416,722417825,722419718,-1995488762,916584518,1007037199,1040591631,-62486257,722417313,-1995487226,1048834630,1962935018,12708099,-1957642197,103542854,103483882,-1706029050,2327,736773769,1183535296,-66704402,2114333449,-6664176,-1996488449,144829510,169249543,67513095,102112007,2094140167,1023770380,91619330,-352321096,-1983894782,1048835654,1946157586,255893864,989857541,1913652742,-129594561,989857541,879946310,84884641,104529927,678563966,100419211,1178271751,-2095222036,1946220158,256287028,989857541,1913683462,-230257909,989857541,494136390,109721343,268842751,-1411329,-15696330,-1533350794,-956301302,135686]},{"sector":11,"data":[-263812352,722417827,103544902,1117982528,-297366769,722417315,103545926,1050873660,-297366769,-1544403413,1187450696,-1962934022,-1961942498,18147639,1962949763,16705795,818307,-169278603,207391488,1166753675,205859588,-1995553493,1166800966,138750722,-1995815637,1166801990,340077314,-2081274231,135742,-1729559691,-365001984,57999362,-1593798935,1178143664,-385649158,-2103377789,-96061157,1166769012,460044,268830267,1183530866,460280,1927956027,138775348,989857541,1913683462,-62485720,989857541,494070854,16154243,1166755700,460050,276694587,1183517554,460274,1944864315,-1976107216,104267526,-361300208,276707071,-1695779073,65535,34735815,381157376,-93391104,512487563,922947362,-1962124149,-263812289,-1962654327,1160507462,-129619188,-1961998967,1166667334,-297366782,721962283,1166670918,-297366774,-1980611029,1996428357,-25862,1191116800,382108666,957295265,58587718,1593762281,49120095,1562371467,2083661,79298819,458753,102957315,196610,96600067,10551551,54132739,10748159,115802370,10027010,161939459,11075839,150994947,11206911,94044163,2883839,122421251,3014911,6881539,10092546,73728003,3670271,131727619,2490370,115278082,3473410,19267843,3145730,183631875,13107455,65077507,3801089,27918595,11730947,1179907,11796483,124452867,22610175,10289411]},{"sector":12,"data":[4325378,71106563,5964031,104661251,4390914,115605765,10027010,120062211,4325379,9437443,4456451,134938883,5242882,133038083,7078143,95289347,7274751,11272451,5701634,115081477,3473410,72089603,8519935,0,1167087646,518818645,-326903666,108953606,-1593477888,199952160,705054346,244338916,-1996380952,582548550,-59836672,-1995289595,-661915066,98176,28839029,-1070903296,-401698736,1183514638,49120250,1562371467,182861,1167087646,518818645,-326903666,108954418,-950307840,118342,-1979711560,1183437382,-1472790576,5945350,9345616,1183383552,-1472790572,5814278,-26032,1183383552,-666449962,922681345,-1070922072,922701904,922684294,1183648644,1389505486,-26032,1183514624,267690960,-1546500469,-4714492,2122535167,91488264,-343933000,112643,112720,-26032,-1073020928,1183656564,-632911396,1586172395,705137370,-1014279964,244338752,-16748568,-6628746,184549631,-1696369216,65535,1342189752,1342644920,1374162576,142508800,-1203735552,-1202716656,-1873803479,4122638,1342185656,1342648248,837291664,4241408,120961104,-401698736,1354235940,1018712064,244338695,721426408,1203261632,244338695,-2097148952,-443874579,-900899553,1478361092,-1957345904,-661774612,-1979257725,-467007418,-401698736,1183383621,2275580,100429559,1183388236,-2133292038,1962934655,138840611,1996425096]},{"sector":13,"data":[-96040186,548950080,-6664192,-2097151745,467006,1183516285,119579644,-1962742397,1297948645,503317706,1430622296,-1910575989,105286360,-1072962518,272439668,1025340416,343146528,1946169405,4209944,1346181236,-1206356992,384499717,317440043,-352321096,178189,62392555,-1207702784,-310181884,535137026,46812509,-1873273344,-326412987,-1193767394,726667852,-860335936,-6664192,-956301057,-16310266,1354771455,-1878624513,-32446450,-1962742397,1297948645,459466,27983875,2883839,17301507,14549247,11665667,4587522,16711683,14811391,14286851,14876927,8257795,5242882,36634627,7012607,0,0,1167087646,518818645,-326903666,-1957275884,1183385158,-1948742660,81159,233374581,146689,54332276,-385649408,1609105989,242679554,-1878231297,39970830,678739979,638344900,723912587,-11532729,-16122826,-1710192586,65535,-1728050683,-150989639,-96040455,109035531,-385875528,1589903906,1207313932,58001431,-1962895127,1207434334,1962999810,38270476,-2094304128,2130901630,-129579227,2122514432,-864220424,-772252021,-460878877,1358483712,58266,1958742784,-129564835,1586225387,38270716,-1959299968,-523109818,-940161399,62534,66354819,28837245,721611520,-159480896,-12288208,110818934,184549377,-14453568,1183577158,-163184134,1586222827,38270716,-1960545216,-523109818,19372624,-1073020928,-1070918283]},{"sector":14,"data":[-1006535191,-1977217954,103028551,57999932,-37143,-6620554,-385875713,1589903714,2139104780,57933848,654257641,605505418,1963080710,-14620413,-1946388853,958793284,762649415,638076043,1964853049,-1948349660,-1960440714,1200167748,-60912894,638351044,-1994570613,-1070922681,-1979949429,266930759,-60912895,721581963,1589905015,2139825676,-60912869,-1962508501,1194001479,1347590408,721700747,1385760839,138906448,2114209593,178181,62391275,1389505280,29727312,1347551232,137114,-993490176,-1960440738,1586175303,138882044,1385814667,-1950119088,-796193698,491227942,737959563,-628422585,-1957670247,-60912701,-1962387573,1317604446,-230258192,492255526,45614462,-1207702784,-768933885,513429586,1375731714,-26032,-930414592,-628373877,-1986400521,1451879494,-137917458,-939288081,1183570451,-229209104,334251523,-633606570,468255614,990346494,-385649976,1589968402,1200301580,-60912869,-1006483575,-1960440738,1586175303,71797244,-133655,1996426870,-401698804,-1073020897,-471268491,-60912643,16926663,-25237248,-310157474,535137026,248139101,-1873273344,-326412987,-992440802,-2144991650,1962940543,1200236065,1007035415,-1592626174,958795764,242555719,638583969,1964853049,112645,-1070923029,-1962742397,1297948645,503317706,1430622296,-1910575989,820806616,105286486,-1946401143,20939736,915084660,881524992,-461372277,138885503,-1070922377,-1962861335]},{"sector":15,"data":[126614622,276086795,1962934589,14870787,1946158141,17033554,705316490,140772,1006395019,57934407,-1006583063,-1977217954,-467003577,-1962872795,1195113566,-1207601916,48955393,1183432747,-60912646,425859,28837236,721611520,-129594944,872040075,57997382,-956266775,259142,16139975,-1472790784,273058566,85087883,1347551250,303314687,303183615,737429133,-1706011950,65535,16154243,1183667060,-800683566,-1961867637,302322262,-1957670400,507564102,2144336,-26032,512425984,529203456,-461371509,4210047,1586176883,276219088,289704486,126414884,-1865386241,71821326,158711819,196347591,233373697,112895,922692075,1183516328,307661584,1375736325,339148624,305594130,-62485742,1347605035,353946,-60912896,1577731979,-1962742397,1297948645,503320266,1430622296,-1910575989,988578776,-1274624170,-2097151989,65598,-1070922380,-1711168279,65535,1073807523,113707125,256,2122574059,58064650,-1962901015,-1961942498,1488927,-1962250505,306220016,-1946663287,-1960866856,2145681415,4241488,-26032,1183383552,-901345850,-943176055,64070,1586180075,-1959293960,-472778146,-1996341109,-661914554,1996437503,2275528,112433744,1996423168,-401698616,-1073020059,1191126388,-968455174,2096776761,2001865,-1960867071,2145681415,1913144891,16705795,184619240,-15960640,-1711210442,65535,-1946199063,-1962868706,-2146989281]},{"sector":16,"data":[1178304484,-385650168,1048772824,1962935976,1354771208,16777114,108954368,721712128,-1207702592,1183383556,-263796754,1187446784,-956292878,128070,-1995946357,922744390,-1070922072,922701904,922684294,1183648644,1389505518,94673488,1048772608,1962937268,108954506,-1954843648,-1962868706,-2146989281,1178304484,-949259512,62534,111687423,1347469355,193345279,193214207,737035917,-1706011950,1508,196361859,-385649664,512491337,529203456,-461371509,138820479,1187459187,-956300560,62022,111687423,1347469355,193345279,193214207,737035917,-1706011950,928,196361859,-385649664,113770249,4546,1577058744,-1962742397,1297948645,1426065098,-327029621,1186464054,-6664190,83886335,-2037841340,-2033713452,65276,-16990589,-385647611,-2033843963,-1962869046,-1963010914,83819654,-1207465935,1344143934,503465656,-897151664,-1924131074,385810054,16824400,-26032,20774912,-385646848,-2037579571,-397345026,-2037841633,-1202651398,-1706033108,65535,201213577,-16353856,-335610746,-28901477,738084491,1358887558,1342185656,16777114,-796489472,2126515198,-88670242,-679047682,-1224781570,-6619440,-1962934017,-1912680314,67032718,-125400639,-123827202,-124846082,509694,-17260917,1965047680,-795934965,-792820738,-511770114,-19874173,-6783487,244383350,-1996470296,1040110214,443809808,1946165309,3161365,1077743732,1024160768,108265552]},{"sector":17,"data":[-19757369,-2037776384,-2037842222,-2037514538,-1873740074,17819662,57982987,738153705,-1207702592,-443875327,1478411101,-1957345904,-661774612,-955847549,64070,-402229505,1183383611,-2145785082,2000288894,702498,-1963301129,-315950002,808304899,-96040704,-16359797,126486086,1023166088,-1948749008,-310117818,535137026,46812509,-326413056,-1979425141,1038363143,158597129,1946165309,-339506428,71761669,-443816213,180829,1167087646,518818645,-326903666,512448006,529203456,-461371509,-1039778945,721712913,-1959334976,-1962868706,-1038185673,-1948004079,1183384128,-1948742660,-1706016761,1555,-96040640,-237941,108461879,80124496,117374976,28840386,-310157824,535137026,46812509,-1873273344,-326412987,-2585058,-1711210442,1280,16778951,-310181888,535137026,516640093,1430622296,-1910575989,105286616,-122138560,-6664192,184549631,-1962314560,2139096670,91554561,-352321096,3604236,108461825,16777114,49120000,1562371467,268618317,1761608448,-1979646200,1476395776,-1946091772,1258291968,-1543438584,-33553664,738262791,-1778384128,788594436,620757760,1057029893,1510015744,973078790,-1728052480,-889127162,603980544,1476460296,-973077760,1510014723,-335543552,1526791943,553714432,1174405636,-1459617024,-469696768,1409286912,1812004608,-1107295488,1845559041,2013266688,1862336262,0,0,1167087646,518818645,-326903666,-96024826]}]],[[{"sector":1,"data":[28835841,-409317376,-1996488704,1950415942,-60912878,662773643,1586200576,-2145416196,-1954610841,-310117306,535137026,516640093,1430622296,-1910575989,82609112,572427094,-1205892337,1861681174,-1947170040,1183388224,1975520252,-401698780,1183448982,91570428,-352256072,572427039,-1205892337,1861681174,-1947170040,1082784838,-59310318,-1878624513,845838,49120094,1562371467,313933,1167087646,518818645,-326903666,-1957275890,529205342,2130798464,-637241,106859264,1183319946,1086557178,-26032,1183383552,2113010,1187448182,-1962925838,1077998150,1183443153,-6663944,-1996488449,1950415942,108461947,-237941,-126419145,16777114,-60912896,2123046795,116466,-1962385781,-2146989281,-1992261660,-523111354,-1728052475,-120470997,-506231,726665334,-6664000,184549631,-1959955264,-1991707578,1586230854,-1958769912,-1948003880,1099562054,140413698,1183528843,2145681652,-511636341,-1056210944,149619849,-1694730497,750,1593198219,49120095,1562371467,313933,1167087646,518818645,1996478606,108461832,1843924624,16727296,1996427381,108461832,-1569136,16727550,28837236,721611520,49120192,1562371467,313933,1167087646,518818645,-326903666,1187468806,-1962868742,-1961942498,1488927,-1962381577,306220016,201082505,1342993600,-1878624513,1239054,-1946532215,-2090927546,-443874579,-900899553,1478361092,-1957345904,-661774612,1443556483,-1962385781]},{"sector":2,"data":[-1992278009,529267270,-461371509,-129595009,16533191,-1958810880,1346373190,-771989877,-92894237,126556299,-6664128,184549631,-1960872512,126486110,183912072,-1961986880,-472777634,-1946519925,-2011198696,-62485753,1191120619,-129594372,2096907833,16758970,49120094,1562371467,313933,1167087646,518818645,-326903666,142016260,-1878624513,-14358514,1039943305,242548991,-16222465,244319862,-1979868952,1183579206,49120252,1562371467,313933,1167087646,518818645,-326903666,2122536454,963903494,-1962516853,-2146989281,1183416292,-62470150,367722496,-1962516853,-60912841,1895818193,50436610,1191116800,-96039940,2096907833,108462051,16777114,-310157824,535137026,46812509,-1873273344,-326412987,-2082959842,-950663956,64582,2125995243,-59836672,-2071203701,254088050,105265920,-1937767051,-60560,-1096680378,-62506746,243326076,-2130764930,-15852530,49120094,1562371467,100846157,1744896768,117440769,989856512,-1543438590,-50330880,939589376,-905968896,1526791936,385876736,-2113863936,788529920,-2097086719,0,0,0,0,1167087646,518818645,-326903666,951604746,1211037440,-2114942205,-1961883450,1177224774,244029704,-101249038,-1308998007,-1981754621,727119942,381178048,2040156160,-16777216,-1206933450,787939378,-2147155128,-1070903296,-26032,-1073020928,1996426868,-25864,1149829120,91570230,-352317512,912034678]},{"sector":3,"data":[-1070909441,-126419120,16777114,-96040448,-2012986232,1183515460,239372552,-2012592502,448267588,-1202708989,1344143536,12238891,1347441236,-11513776,1342605878,109852415,-6664112,-1996488449,-1073009596,1283500660,209715498,537690113,-1710590209,352,-1994636151,715202132,272926995,-16562015,1577273350,-1962742397,1297948645,503318218,1430622296,-1910575989,82609112,269008470,-16708480,-1877853642,172484622,-2012071264,1153828164,1153892384,-973078520,-1593834940,378210060,1755514638,1779861787,460104475,460199561,-1995160439,1149834836,441747736,460328576,-1547687167,19202586,-1948200704,-2145685490,-1056178719,-14978909,-1710081482,65535,-1994636151,-1070916012,-26032,1962868736,893684272,709944362,541362368,112720,27171408,1962868736,876907054,726721578,172263872,112720,-26032,-1070923776,112720,-26032,-6684672,-956301057,133638,-2147158528,-6683276,-16776961,244319862,-955702552,190470,460103936,460199563,-1996319581,1577227798,-1962742397,1297948645,503317194,1430622296,-1910575989,-890469928,209125120,1354122893,1342194360,162458,-146356736,-401698816,1183385009,2147433978,-4716939,13429119,-150953288,512490094,117641632,-1946663287,73892056,-128021625,411591,-128021760,34097095,-1236890368,-92864688,16777114,1958742784,102665157,38272768,-150953288,512490094,117641632,-1946663287,509578200]},{"sector":4,"data":[1996437503,4372492,-26032,2122514432,259391242,-16220541,512428405,1342111750,-1923683582,1358902918,-1202667477,-1706033024,65535,-2131206517,-1962867633,-16775650,-2033778097,-1104019658,-13072697,-2033778688,-1425998022,-1962391925,-2147153322,13796096,-12286327,-12151159,-1912965377,1358902918,1342210232,16777114,-96040192,-1962742397,1297948645,503318730,1430622296,-1910575989,384599000,1187468887,-956301068,60998,15746759,-230242560,1187446784,-2130706182,2147420798,512431220,529207712,-150953288,-259323282,17055990,28837236,721611520,-129594944,15353543,-401698816,1183384245,259277046,-624897,244320886,184753640,-1207536192,166330367,1488898,-1946784009,572427248,-1992883441,2122443894,1954545418,-1608611047,-1205892335,1861681314,-2080863478,1962936441,112645,-1070923029,-1325399771,-1948200188,-511703476,-1983837201,-461371836,281837583,-1962523511,19265606,105679616,201253248,105155009,621168267,179372035,1284235475,-203063290,1149878539,107249670,105286647,58048523,1023468521,57999361,1023490281,57999362,1023486185,57999365,-1207916823,1861681174,572427254,-1996029169,-661918650,-1995946357,1586169927,239585260,1586233343,-96039956,-1962260599,1183575134,206014964,-1947443573,1200221766,-329348336,-1980742005,1586172487,-230257684,-2095822967,1962994302,16771331,-1695123713,65535,57982987,-16715543,-6623114,-16776961]},{"sector":5,"data":[2073752182,-16777212,-1868894602,-1207959548,1861681174,-1948742666,-1961942474,-1708064972,65535,-150989128,-661916050,253900427,13055115,-1159135232,175570942,322970,-297367296,-4164544,1183648374,244338922,-1996234520,1950412870,-13113085,2122426859,1954545418,-125926602,-13601792,916064886,-1996488699,1950413894,175570838,16777114,-297367296,-385649344,1996488573,88578570,1183383552,58015986,-37655,1183648374,244338922,-1996256024,1950412870,-18618109,-939569943,60998,-2114004759,2147420798,1996484980,-26102,1183383552,58015988,-49943,-6681994,-1996488449,1967190598,-193527854,-56343,244381302,-2097143576,1962997886,112645,-1070923029,-1962807645,1600058950,-1962742397,1297948645,503318218,1430622296,-1910575989,216826840,108461910,-1092088176,118268165,118359563,512448884,529207074,-150989128,-259324306,-1995685749,-1072956858,884475253,-1962546417,126614110,-956545399,-970394554,-1962609338,206015448,-1946794359,1194001479,239545100,-1913108855,-11471802,-1070922122,922701904,922683150,-6682868,1577058559,-1962742397,1297948645,503317194,1430622296,-1910575989,149717976,253894283,1183385483,1489144,254422775,-1980217853,1187510854,-352321284,-128021740,1962950531,-62485755,1183005163,1191122680,-96039940,1928873529,574029796,705101583,254451983,-150991943,-1070903063,5413456,-1073020928,251595125,-4714710,-1593512961]},{"sector":6,"data":[-2092429526,-443874579,-884122337,1167087646,518818645,-326903666,548951570,1587171328,-1996488704,1967192134,-373282043,381157657,141489920,253894283,1183385347,-1948742672,931788918,1183384715,263662,-2114828663,2147419774,512432500,529207712,-150953288,-259324306,17055990,-2135423628,721611520,-1982714944,1451881542,108954102,91586559,-342245333,10663961,-1962512649,-1607037992,-1959490799,38832896,468993579,1183446614,-61437446,-940679541,-1962932985,1175190086,-1207601668,65732609,-1962933576,1200221790,-228685054,1200209963,-1962440446,1183576158,-61436934,-1996339319,-1039465385,1586186356,-1946973198,19203140,105810688,-780147328,-1983837215,1586168903,-196703246,-1980344693,1468597831,-228685048,673735,-228685056,-33265792,217204355,-1947050357,1452014150,-1995994628,1586168407,72319474,1586233342,172476402,1586167808,72319218,-262239487,-49911936,1577058744,-1962742397,1297948645,503317706,1430622296,-1910575989,116163544,-62470314,451608576,295706251,-1564991605,-59836672,1082847371,1014965253,-13274101,-1465779130,-62506741,922738300,1371017632,-1473317120,5309707,1354771280,417434,1975520000,2147465221,-1465829141,-1475936501,-62486261,-150953288,512490606,117641632,1358579337,-1202667477,-1706033071,59,-1946526069,88378099,185368612,-1962588280,-2090927034,-443874579,-884122337,1167087646,518818645,-6629234,184549631,-13929280]},{"sector":7,"data":[-1710081482,65535,1350565816,1342222776,16777114,-1070903296,-401698736,983825001,11712530,-401698736,-310118315,535137026,516640093,1430622296,-1910575989,351044568,644762,-163149568,-1962511040,-51775930,10663936,-1962381577,51486750,-129595129,1200347275,-96040682,-16220543,-167349121,1963000903,1354771213,-605548912,-163149568,1586219499,407342072,1006388873,58063430,-16734999,1996425334,-230257158,1354771280,628634,-263812864,-2131591551,-1958382336,-1995994152,1183051334,1187447536,-1962934028,126611550,200033929,-385649216,-12714115,-15829505,1183578694,-96060932,1793670002,-159973377,1089488523,-6664128,1023410431,225771775,-1695123713,2678,-335544392,-196673716,971916939,58520646,-1946206999,1077996614,-336574975,142016422,-1912965377,726725190,-6664000,-1996488449,2122444870,1946190066,-1195512950,-1873805311,1632270,-1946794359,130483806,-18284543,49120254,1562371467,313933,1167087646,518818645,-326903666,-26108,1183383552,108347644,-369342837,1996423324,1354771452,657818,261771264,184549386,-2089323328,1946158718,-59310113,1342189752,663450,630870016,184549386,-10783552,280558710,899305472,1342177290,670618,1958742784,-59310267,1342185656,674714,1369067520,184549386,-13667136,1085865078,1637502976,1342177290,681882,1958742784,-59310311,1342197944,16777114,-6664192,184549631,-385649472]},{"sector":8,"data":[1996488558,74160892,1187446784,-369098756,-310116514,535137026,46812509,-1873273344,-326412987,-2082959842,1183516908,-96040698,-26032,1174601728,1183402234,-96039940,1929135673,-60912880,1183319946,1952201976,1966750724,-62485754,-1961366720,126549086,-1705974742,65535,-1996726645,-61931769,-310129685,535137026,46812509,-1873273344,-326412987,-2082959842,1187464940,-1207304452,-1202716493,-1706030594,2852,-1946401279,1065354846,-1207601920,367723132,-1928956161,-1705985466,2870,1354385037,1558711952,1996443903,-25860,922681344,-21494134,-1706025463,65535,-1962742397,1297948645,503317194,1430622296,-1910575989,485262296,-230242474,1187446786,-1593834756,378210060,1183385358,-262764050,-1961662815,-1995216874,1451881542,321692150,321787531,-1981135223,2122574934,58064646,-1593729815,1178143664,-385649402,-1070923375,-1559009117,512430950,529207074,-150989128,-259324306,-1962786677,748880976,773228819,-1715459309,-1996029789,-1559821802,378078972,144901886,169249031,117744391,117839497,-1996026717,-1996026346,1183447622,321692152,321787531,2130335289,13625603,1178142844,-385649928,1996423365,-92864762,-1694992641,65535,185730806,-385649393,312541357,75019,199771785,-2092337984,1963061886,-230242555,1183514624,1975520252,15722755,1946157373,146712,-2002685579,-1978234085,117744411,117839497,33310407,241344768,241440395,-1996026717]},{"sector":9,"data":[-1559818730,378078984,1206585098,33324675,1187448181,-1962934020,-1072958906,-1494678667,81152,37558388,-1591184128,378215304,-56419446,-32077562,-230242554,1654718465,1679198990,118268686,118363785,-1996029789,-1593376234,378211938,1183387236,-94991880,-1946213655,1452012614,325493750,325588617,-1947580789,748940374,773228819,151451155,125108496,269027062,-1606650878,-467005427,1963345465,118268210,118363787,468600363,1183445078,-430536220,460636683,31737483,285984262,17549334,285985286,17550358,286470662,1578316822,-1962742397,1297948645,2228938,185073667,8913151,181665795,8978687,166920195,9044223,166526979,9109759,145817603,9175295,156958723,9240831,142671875,9306367,141819907,9371903,140967939,9437439,74645763,458753,202899459,2031871,28246019,2097407,33882115,2883839,152109059,3473663,138149891,3735807,23986179,4063487,189006083,2424835,13369347,4718847,11731203,2686979,99811331,5112063,157810691,5767423,178388995,5964031,25559299,4063235,44040195,7012607,27918339,7340287,48562179,8323327,38600707,8388863,29294595,8454399,110034947,8519935,135069699,8585471,83755011,8651007,81723395,8716543,78446595,8782079,73138179,8847615,0,0,0,1167087646,518818645,922736782,-1070918832]},{"sector":10,"data":[-1706012592,65535,324024063,16777114,49120000,1562371467,1478413133,-1957345904,-661774612,8973441,252477059,-521600140,242679552,383665805,-26032,1048772608,1962935996,-1404662413,1354771280,1342190264,16777114,440320,16030288,-523173888,277612075,-1918089591,1343663174,16777114,113025792,58048523,-16743191,-1705976202,65535,292929547,112998143,16777114,-1140406528,-352321530,-562626714,378291853,-26032,-1935605760,-1941558512,1083328003,1177286865,460891026,-2197761,1996481142,-431584284,1357006379,736642699,-1202658234,-256245727,-1706012160,65535,-1193380097,-1706033147,65535,2016870224,28751899,-1706012642,65535,-6664120,-16776961,1183649398,-1706027298,65535,-342245333,209617274,1601503748,58998403,-161974786,1946683974,59160658,-8878455,-8741236,-8616249,-2033713153,-130,-8370489,-2109290497,1187512319,-939524220,-31162,-7846201,-1975072769,922746879,922685492,-2037575622,-1202651268,-11532927,-939558754,230406,-6952192,1996426870,175570700,-16222465,-6683018,-2097151745,-443874579,-900899553,83891722,50414593,50340096,50435841,50359040,50339073,50363392,50336769,33586432,33646593,33559296,33644033,33559552,50416129,50340096,33613825,50339072,33622785,83894528,50417409,50353408,33591297,50343168,50350593,50341632,50403329,50341888]},{"sector":11,"data":[33586433,50346240,50358785,83931904,33645313,50336512,-16710656,83909376,33642753,50336768,33594625,33572096,50418689,50353408,-16752384,50359040,33600001,23808,0,0,1167087646,518818645,-326903666,-1983894778,1183448134,209617402,57803520,-1962861847,138218566,-385649408,58065070,1023457001,896794625,1946158397,474433,-1964440715,11397376,-15829249,1996426358,142016266,-1878624513,20047886,-16731927,1996426870,-401698806,-1561787912,242679552,-16222465,-6683018,-385875713,1996423313,108461838,-16222465,-6681994,-352321281,-25986,-1070923776,-26032,1877671936,25837187,-14912512,-1070921098,922701904,922685454,922685460,922683034,-6682984,-956301057,129606,16533191,-12522752,1996426870,-26102,871038976,-15829249,-6681994,-352321281,1326374,913814132,1946160957,242679708,-15960321,1996425846,108461832,16777114,-96040704,-2080614775,124478,-1070921612,-26032,1183514624,-61436934,322788587,-385649407,4063025,1036153346,58130947,-335606295,209617336,393413632,-15960321,1996425846,108461832,16777114,1975520000,-1952781386,607980614,1023898628,225707045,1996458987,-26102,-342294528,175570836,-1710852353,65535,-310145557,535137026,181030237,-1873273344,-326412987,-2082959842,1048773868,1946157574,-1036583156,-26101,-1427570688,209617152,762642944]},{"sector":12,"data":[33832579,-385649408,379650201,138819856,-962525827,-1592726767,1178144924,-1593475578,65739596,-1995834719,-347014074,172395460,-1560280027,1183515288,533770,-1207788893,-1706033134,65535,92127243,-352321096,-1547687166,2122384028,1963066124,112645,-1070923029,-2130272093,33688702,1048780405,1946157568,-1203862738,661979142,-1710328065,65535,33556167,401276928,35522247,113704960,66048,-16222465,-6683018,-2097151745,-443874579,-900899553,1478361098,-1957345904,-661774612,957382817,1819609158,112737923,-161123328,17827846,1048796789,1946158774,-1241069811,-2097151994,964670,1822509685,1846971163,1779841307,960328987,1964730374,196911415,303433259,269747771,922692221,922688362,922688360,922688362,1048779624,1962938040,112645,-1070923029,-26032,113704960,1718,-1962742397,1297948645,1115338,32768259,6946819,16843011,7012355,38731779,17760511,24641539,17826047,23724035,17891583,21823491,17957119,14614531,18022655,13762563,18088191,8847363,18153727,7536643,18219263,12255491,1900546,36700419,1441795,18219011,4260095,9306115,12779775,27394307,4521987,47316995,16646399,9830403,17039615,1167087646,518818645,-326903666,108954380,-949979903,1052166,335988480,721420304,865751232,-2097152000,438846,28838261,-6664192,-2097151745,123454,1048783989]},{"sector":13,"data":[1946158780,1345781541,-26093,-1202716672,-1706033139,65535,45783632,-1706033152,704,112985799,113704960,67266,-1207870231,-1706033147,132,-1191557495,-1706033146,65535,-1946663287,1174604358,-2113524742,-196703984,50873995,103544902,1183387788,-163133444,1048772608,1946158786,-1472298225,141885446,-1705983957,65535,272119551,-1946913025,-654837690,-2110324912,-129594608,1174659281,28856572,144330752,-16777215,-15714762,-15506890,1183579254,65065466,103483974,103486306,-11530110,-1206875082,-1706033151,291,242890495,-755969,922745974,922685570,28840076,1050300416,-16777215,722686006,1996443840,1647771644,-1942552813,112656,23632464,1048772608,1946158768,109093164,269878827,-163149504,112211711,1347469355,-755969,-1207533514,-1706033151,441,112211711,96922,943128320,25401872,922681344,-1936060362,-16777215,-1710327242,405,324024063,16777114,876512000,494141456,271857407,-11485141,1996486262,-62485516,1358317099,1342177720,16777114,209125120,1347469355,16777114,-1039743232,-2097151994,-443874579,-900899553,1478361096,-1957345904,-661774612,1443425411,55197315,-16157681,-1711060426,65535,268963456,172395265,-1961881949,346228806,-26096,1183383552,-61437446,270407227,109014140,270272059,1048601714,1979715595,-128021667,-1727772789,269164170,78774058,915137491,469962814]},{"sector":14,"data":[-1995379837,1334573150,142052102,-233584637,2096920123,990215985,712440398,31080067,-14453504,721635894,-2103816000,-16777214,1996487798,-25862,922681344,-1070922934,-26032,-2090991616,-443874579,-900899553,1478361096,-1957345904,-661774612,111296131,-2092665856,435262,1048774517,1946158758,-1573454053,-1741226234,-26099,-1706033152,65535,-1499217877,111452934,1342177720,-1705983957,790,111294207,206490,-1576614144,-2097151994,1946158718,-401698811,-310181877,535137026,46812509,-1873273344,-326412987,-2082959842,436286,-1070908044,112720,-26032,1048772608,1946157802,-1472790773,-26106,233504768,109721343,111687423,16777114,-1475950848,-2097151994,-16602050,-6683276,-2097151745,-443874579,-884122337,1167087646,518818645,1048828046,1962935992,-1207515340,-16776954,918030454,-6664162,1342177535,1347469355,16777114,-1203862784,208994318,-1207404801,-1706025418,65535,16777114,49120000,1562371467,313933,1167087646,518818645,1048828046,1946158776,142016293,1344157368,16777114,-26112,113704960,1720,35522247,-1070923776,-26032,-310181888,535137026,80366941,16973849,196977,16973948,197061,16973951,197501,16973834,197565,196620,16712404,196666,16712299,196667,16712310,196668,16712202,196669,16712180,196670,16711868,196671,16711715,196672]},{"sector":15,"data":[16712662,196673,16712642,196674,16712597,196675,16712592,16973892,131162,196653,16712519,16973893,197491,16973993,196728,16974003,196831,16973880,131805,16973892,131168,16973893,196682,16973890,197429,16973892,131156,87,1167087646,518818645,-326903666,105286406,1183441105,4372730,-92864688,15514,-62486272,645251083,-1694861569,136,242532363,1342194360,-1694861569,65535,45616363,-1499836352,-1207959552,-310116353,535137026,46812509,-1873273344,-326412987,-2082959842,1183515884,-1981755128,1996487750,1119375370,-1684385792,184549376,-1207601984,686489601,-1694730497,65535,292864011,-16091393,1119419510,-6664192,-352321281,1073920222,-26032,-1070923776,-1962742397,1297948645,503318218,1430622296,-1910575989,116163544,-1710852353,65535,1090143881,-775804007,244338936,-1979767320,1967193158,-18427,1996428267,-60912890,1996437503,-25862,1183514624,49120252,1562371467,100846157,486605568,83886336,1996555008,100663552,-234880256,738262784,1191183104,771817216,-939523328,1526791936,738198272,-402587904,0,0,0,1167120524,518818645,-1974019954,-796260794,91488316,99338494,-853953392,-1958673375,76023926,973161670,1543652550,-1274820989,-1960719033,477235318,70927950,2088827765,125066495,1180435654,-1962933050,138816454]},{"sector":16,"data":[-1878594752,-150993722,-310157608,535137026,80366941,-1864856576,-326412987,-1260876258,-2094936743,-443874579,-884122337,1167120524,518818645,817158286,-310173235,535137026,-1932833443,1430622424,-1910575989,106335192,-851246920,1942063905,-18429,-1962742397,1297948645,-1946156342,1430622424,-1910575989,106859480,567099060,1912602808,-310165503,535137026,46812509,-1864856576,-326412987,-2082959842,-14794004,-1927412106,-1705984954,65535,-1262725491,1914817857,-18429,-310126345,535137026,46812509,-1864856576,-326412987,-2116514274,1459651820,1996430854,1183653384,-258322244,503316480,503740159,-8747379,19372624,1452081152,-1928913220,-1258325314,1914817878,-18429,1594349815,-1962742397,1297948645,-1946155830,1430622424,-1910575989,207522776,-1962387771,1068762702,41099725,-310126345,535137026,147475805,-1864856576,-326412987,-1948742114,1455754334,105810696,567099572,-654900621,-1962742397,1297948645,-1946154806,1430622424,-1910575989,207522776,-1962258805,1183451222,-851266554,-150637791,-17704,-1962742397,1297948645,503318730,1430622296,-1910575989,149717976,108461910,-1995989784,-12715962,-1207536129,-342228993,-126419084,1347469355,1342177976,-1561850224,-96040449,201086601,-2093974062,863371258,1979710013,108461870,-1995741976,-12715962,1344304383,1347469355,1342177976,1927810704,-96040449,201086601,-1962378030,1452014150,-1960645636,-654837178,-24907637]},{"sector":17,"data":[-2096399341,108993534,191891143,12058625,-6664128,-352321281,-310157690,535137026,46812509,-1873273344,-326412987,-2082959842,1187450092,-1207959302,1861681161,-1006238970,-163149551,-768313,105286655,-336050551,-161576151,721700747,1209760774,-1946401143,1178203206,-1962117124,1183448134,-129594380,-375159,1183053894,1486948854,-129615589,1183567740,49120250,1562371467,182861,1167087646,518818645,-326903666,-2125048032,-16651714,-16092033,-6682506,-352321281,142508819,-1207601920,48955398,-1873756117,-10360818,-1192474999,1861681161,66096108,-955136970,60998,458768011,-2081653205,92144895,-352320328,1002932994,427748934,17188086,2088841332,1954545410,41221929,300420752,1975520007,-293698787,-2095090432,1962934908,142016267,16777114,-330921728,-370260225,1191116933,164004846,-1564955925,141489920,295706251,1183385347,-153580570,1946223687,142508821,-1961921536,1194919494,-955812086,126534,1183535595,-1311626490,-26105,1586167808,-532248090,-1948100983,39291655,467682859,129098326,16777114,-1980200192,-8133506,-1207602431,48955393,1178322827,-1962576146,216788550,1929510787,112645,-947191061,-1947318647,-768932282,-150993735,-162100751,1178190475,688226030,99288646,16139975,-330921216,1223575043,-1174911351,-369688567,906227851,401281476,-16614271,-16092033,889127540,1307053712,-129040639,-1962283389,1178201158,-1948156424]}],[{"sector":1,"data":[1174662726,1183401990,-15799320,1996425334,-401698584,1325334824,105286632,2112374329,142016490,-330921136,-523040847,166200835,-294191280,-1569136,-196703999,-1981004149,163182662,-1947601152,-1003093008,138840849,-1962785655,76088902,461113087,-1994687327,1686111300,2122448390,2097185012,-196703483,-2135424021,2145681408,1284235473,31555846,-1983837440,1153828420,2123104008,-2131787276,2130643712,-339244284,-1983894782,1317794886,1183531270,-503889912,729801856,-97060910,-229209841,503569035,126491524,1183441962,-96024592,451608831,-1980742005,163117638,-261163264,512489611,1099567556,-1981535736,2122444870,1962999792,-92372513,242548991,-1947050357,-1977908162,25753670,163058411,-93391104,512489611,1183453636,138512632,-16365825,-964429754,-296812791,15629955,2122516862,58589428,-1946213655,1174662214,-2090901770,-443874579,-900899553,1478361092,-1957345904,-661774612,1443556483,1090932363,1074284171,-461313545,-137221249,-1995441610,-628360618,461649547,-467009398,-940030327,16776262,-1207915543,1861681161,-1006238728,-163149551,1183570059,38222088,-2132212876,105286400,2037712697,17188854,1996425332,-401698808,2122384496,1962999804,-161576175,-1962391670,915143262,8919940,1586173931,138906358,163104907,-59836672,512487563,1216876996,-161576184,-16627769,-161576065,-33134720,-1577689461,243997564,-506389672,-1054088751,-1962653815,-1181091770,-101253116]},{"sector":2,"data":[108384779,-631157,1586168911,138921718,-129594369,-1946401143,1200289374,-1981535736,2122446918,1946222584,-11802365,49120094,1562371467,313933,1167087646,518818645,-326903666,-1564977644,208598784,295706251,1183385347,-1948742668,39291655,-1980217719,1183578710,-1311626486,144808455,1183383552,-229209616,-1946919285,1982535799,108411146,1988690806,105286406,-523040847,-1946794359,1183577182,407320842,-1070922633,1586198507,71825140,-2095221759,1946160254,32153879,1946961465,172395279,1997162297,-62470393,1038811137,-1946663285,1177287254,-229237776,-1981004151,1187507798,-1962934020,999945798,259845718,1178273151,-1962379540,1183444038,-1961956362,194639430,2080800722,1992297373,209125273,-16091393,1996425334,-59310090,216534672,-310157824,535137026,147475805,-1873273344,-326412987,-2082959842,1996427500,209125134,-1996333592,-1072957370,1996439164,32499726,1358317193,503989899,142016336,-1226305904,-96040455,1963476539,138840838,-1962893079,-654837178,2080379709,-96040157,457038071,-1206288640,384499713,-134723957,1261016,1183517308,1037629432,-411172837,1183432747,243172348,-2096729088,1946158718,138856199,988479488,16285315,2122516092,75301114,65781803,-1980086645,1174664262,-263812854,721962635,1183446086,-1962284046,1191178334,1476904688,-899445,-1072958898,2122575231,108265724,191891143,2122514433,57999372,-1191221527,-1706016768,611]},{"sector":3,"data":[-2080417047,-443874579,-900899553,1478361098,-1957345904,-661774612,1444342915,-150953288,512428654,117641632,-1947056503,-1962439720,1183384151,-61437446,-1728020296,1996443730,-92864516,16777114,-196704000,129094187,242330,8389888,-1996434813,1451882054,108954616,-167152640,1946286662,138870531,-1727510901,-1946792309,1311504478,-60941318,1266670139,-935656324,1996440947,-193528054,-1695267073,2354,-150992455,-1006238743,-263812847,-259270517,621167755,-864026623,105351425,-2131730805,-1962867121,1183576670,-128545802,1468598153,-96040702,-2080614775,1946158718,-96012718,-11766783,1996425846,-25868,163119104,65664768,-1995324410,-661918138,-1996045437,126610526,-461313839,-461356929,-364476033,75649,-1947443573,-523113914,1586169609,105873646,-228685055,-2097084541,1577058903,-1962742397,1297948645,1426065098,-326898549,10663940,-1962643721,51486750,-28931833,1200281739,635709957,1183383679,671228,1996433525,-401698812,-1073019837,12062325,1822052416,-1207959541,451674111,-1963041141,-467008185,-1996456155,112786502,-59836672,-2020878197,-443871620,180829,-2081649835,1996425964,-7084026,-637303,-1964505482,-163149313,1979711293,-280571,1183537899,-1311626492,112892423,1183383552,-94991880,1391884031,1354771280,-2098721136,-62486025,1040078473,594935802,-402229505,1183384397,-49674,-11484300,1996487286,1354771448,1525157520,-62486025]},{"sector":4,"data":[-2080483703,2080439934,-339727612,-62485757,-1034033781,1478361092,-1957345904,-661774612,-2095649661,122430,2122517364,91553798,719962155,-599883007,141819905,956426913,-327940538,16139975,298098944,-369867127,1586168063,105286644,1946306361,15395075,17188854,-504822923,-1995994368,1187507782,-1962934032,129103430,100917459,1183386088,637162,66481911,-1995324410,1191177286,-263782410,167003779,958093473,360576582,-1946919285,1194919494,-1962248958,1174663238,1946631150,-195130407,-771930229,2145681640,-1309649269,65196807,8400322,-939768183,-1466,-16353537,-1209471370,2092960766,108461860,-1979822872,-12717498,1343649023,518669963,-59310256,887623312,-96040458,1962690107,-92372178,-2094826496,1962935934,-569981166,-1207959295,-1706016765,2124,-939586071,16899078,538097664,12119275,-1947735232,1325396038,2126515184,-329348332,166479491,-33134720,1191176683,-196705290,458793225,2113291833,-17372925,-2097151560,-443874579,-900899553,1478361090,-1957345904,-661774612,1460202627,303079766,2131117625,8579331,-335788407,440337,-1946390793,2122827736,-8388850,1183579206,-62506746,279177084,-395842798,1183383665,269418488,303079698,1962427961,440397,303050487,-2071203701,1183387262,2147433978,-1564985228,-93391104,512489611,1057165728,-1979332733,2133129286,-511701622,-2000614784,96897797,-1202712964,1861681158,243009016,243792]},{"sector":5,"data":[-26032,278986752,105265426,1600035196,-1962742397,1297948645,1426064074,-326898549,-129579254,1187446784,-956301062,243072582,-637241,-129579009,921370624,-1946263925,103482439,-1991763118,2139225158,1971322626,303079686,-1946401239,1178203718,-1962117124,1183448134,-129594378,-375159,1183053894,278988542,-129615598,112771708,-93391104,-1082009461,2147421822,1996425332,220437242,1183514624,1575324666,-1873273149,-326412987,-2082959842,-2125069076,2147419774,512436596,529207712,-150953288,-259324306,704987274,8332772,1039943305,192151562,1946159933,-6664186,1577058559,-1962742397,1297948645,503317194,1430622296,-1910575989,116163544,16533191,-1608611072,-1995994351,585890374,-1963303285,2133067079,242486076,2326400,1996425332,-401698564,1191116939,-96042500,-1465843550,-62506741,-310126980,535137026,1439386973,-326898549,10663944,-1962643721,51486750,-62486265,1200281739,635709957,1183383679,142574586,-1207601918,48955394,-863977429,-28931672,-402360577,1344144340,100419211,1344143394,-1694599425,3749,1039681161,91619327,-335544392,440338,-1946521865,-129594408,243042185,-1946663285,46292453,-1873273344,-326412987,-2082959842,1448563948,-150953288,-259324306,295706251,1552627459,-2145416418,91553855,-487997397,142377729,-1207601918,48955394,-998195157,-62486232,-2147203850,1182795380,183206141,-2147138314,1182794868,-996145923,-2004933621]},{"sector":6,"data":[37548614,54275954,1182991474,2088964348,561316360,-2147203850,1552620405,-1875378402,-232790002,1039419017,158662655,32786166,1038680948,71628289,-16223104,31983222,-1962546429,126557788,1347607180,505562253,-59310256,16777114,-163149568,1979711293,13363459,-2147203850,1183673717,1150111920,-1070903254,274766416,-1073020928,1183668596,1552634032,-1707606242,65535,1198833675,1353729677,16777114,2147433728,1183660405,1754943664,-1996488688,1950413382,-1608611030,-1205892335,1861681314,-488698,-6676879,-1962934017,-1961779170,10663967,-1962512649,-230257672,-2145500791,-394263476,1183448381,440568,100167415,1183387260,-1948742740,126481990,-1951637877,1200162374,-1403090174,458360575,-1994698079,-1564998585,107935488,512489611,1057165728,-1979332733,2133129286,-511701622,-2000614784,112645,-2097117975,1963067516,71628375,-1605274240,2133068740,779223868,86277251,244328565,1039189736,510984224,-1996367199,113749574,474,1344282552,1045402,-1371108608,-385754461,1153957466,-956301304,64582,-2147203850,-1326906507,-45711106,-22419072,-2147138314,1156978805,309690372,35945603,431492213,-6664160,-385875713,113770018,68464,1593711081,49120095,1562371467,182861,1167087646,518818645,-326903666,1586189894,25133064,-1979157190,216279559,721611648,599281856,726670850,1183666368,-1706027334,65535,225820683,1346371768,637850]},{"sector":7,"data":[-339727616,142016320,1354385037,-1705983957,65535,-1710721281,65535,1090274953,512483188,529207712,-150953288,-259324306,-1979955573,1996430912,-401698810,-1072956057,28884852,-310157824,535137026,80366941,-1873273344,-326412987,-2082959842,-1957296916,-1961779170,10663967,-1962512649,595099888,-1207602176,753598465,295706251,-1564991605,107935488,1082847371,635709957,1183383679,671228,-1706031500,3294,-1878624513,-50206706,49120094,1562371467,182861,1167087646,518818645,-326903666,-1564977656,107935488,295706251,1183385347,108462074,1342210232,-1873756117,-147658738,-1728020296,1586188370,41418746,-1785055233,-1996488696,1996487750,-459649018,-1191182328,-369688567,298059267,-1946663287,-1947169832,19203652,30179328,-1962522743,1333852254,1586168070,-2146991622,39289600,-94467328,1090274955,-1961343095,-2090927034,-443874579,-900899553,-1957363710,49054700,956427425,125109318,1795049159,-2095912190,1962935422,-28915961,99287644,1291732679,-28931326,-1034033781,50336258,-15797504,50368000,17764097,50333440,-15804416,50373632,67188225,50332928,-15747840,50343424,-15648000,50345728,-15969792,50345984,-16528128,50384896,-16118272,50385152,-16553728,50385408,-16581888,50385664,-15708928,50385920,-15644928,50386176,-15669248,50386432,-15809024,50386688,-15801088,50386944,17681409,50350592,17842177]},{"sector":8,"data":[24832,0,0,0,1167087646,518818645,-326903666,1183536724,-62486264,-26032,1111293952,721780224,31910336,1353991821,-2146935157,1966735743,-62487789,705137154,-660975388,754974723,48955456,-1705983957,65535,1039550089,377290755,1979707709,538753033,-26032,113704960,68464,1183692267,1996443828,178186,-401698736,1183515452,-1992278006,1183447622,-1236890120,-2085468535,-1962740114,126549086,1018185352,1006924892,-1961790161,1191181382,-128021508,-956807425,367746055,-5081345,1996486774,-401698570,1183515384,1174489334,-60912648,-1963178241,-1371109369,276086794,208940092,141828156,74722108,510986556,-956801397,1325334535,-60912644,-1963178241,-1404663801,57982986,-385813527,2122318085,1182084782,-237941,126549062,1018054280,1018066012,1017803823,-385649618,1586233085,-62455812,1183319946,1952201902,1949252615,-18355965,-1946661121,2139158622,-2123080449,1006257803,-370313256,29294289,-2144277760,1949085310,-1367441360,-2144701408,1949019774,-1367441372,-2145487863,1952231038,-1367441384,-1961724881,1191181406,-2012771588,-2142851514,1962978942,234783690,-1897331842,-62485506,-11483605,-1873348490,35055630,-2131200511,1966059134,-128021750,1560233926,-2130767127,1946201726,-1367441381,-2146077652,1948298878,-1367441393,-2146864085,1946791550,-17700605,-956801397,-16711865,1586170486,-1847034,721563319,244338880,-385742616]},{"sector":9,"data":[2122383096,58007724,-2130775319,1946791038,-31725309,-1191254295,-2090991615,-443874579,-900899553,1478361094,-1957345904,-661774612,1460464771,175541078,-506169,-335598593,64981836,775913694,-544532107,2139151875,175397889,-570171509,788627328,-947714699,-1960121598,-2132933665,645213759,-570171509,771850112,-544531339,2139151875,175397890,-570171509,788692864,-947713931,142489859,2122952575,142490100,2122911871,106859516,33310347,-373282041,2122907919,138841084,2096907833,12642563,-1963172213,-96040960,57835580,1006671081,1020424737,718174078,3816932,1819748468,1023418925,2071396365,781434883,51947519,-491901,1183559541,-62506508,1183557492,-129594884,2122538475,-1720385028,1352139914,16777114,1958742784,-62485620,138820416,1183548276,1183400188,-129579020,871104511,42795661,55247691,55247691,55247691,42795661,55247501,50397912,1962957629,-11409149,993858423,1023963648,58130495,-48407,1290402886,6045183,1564322676,-385649408,2084437807,-385649408,-471072985,-491901,1183516021,-1962677496,1177286726,540148,1183517822,525812,-369342839,2122579715,91619320,-352321096,138840852,1224230443,2113930045,-129594385,-352320507,-2090901797,-443874579,-900899553,1478361094,-1957345904,-661774612,1443163267,-351897973,173968155,-1979037953,-62486521,-1705974742,65535,-16228725,126355526,189712011,1591637440,-1962742397]},{"sector":10,"data":[1297948645,503318218,1430622296,-1910575989,183272408,1187468887,-16776970,1184500342,-1962934268,1988710128,-129594376,1308624173,360564283,-1979031925,-1947981312,788497400,-1014292619,1183434243,-159480842,-14781184,1996425334,1481226,1174601728,-347060214,1560249112,-8133772,-339839697,108954588,-16026624,1996425334,-25866,1599995904,-1962742397,1297948645,394954,74055683,8913151,3866627,8978687,6160387,3014911,68091907,5964031,49872899,14418175,4718595,14483711,0,1167087646,518818645,-326903666,-2135402996,1347590400,-16091393,-6682506,-1996488449,-2135360954,1347590400,-16091393,1486489718,-1996488702,1996487750,244338700,-1996444184,163117126,-126945536,298059267,-1946925431,-259324322,-788118389,2145681640,-1980086741,-129594617,-523040847,66733571,1577707526,-1962742397,1297948645,503318730,1430622296,-1910575989,183272408,209125206,-1878362369,5826574,-1191426423,1861681161,-1006238724,-96040687,-1962385781,105155568,-461313839,-1962440321,-1014760866,-128022266,19203979,105253632,-1996488411,662763078,-128021506,167134859,-62485753,-523040847,166200835,49120094,1562371467,576077,1167087646,518818645,-326903666,-1957275898,-1958672818,-146798522,2145681633,922210859,-628420614,461651595,770376074,-150992456,-259261330,298071555,956843659,376767044,1178141835,-15764218,-1592034298,1149836156,-62485756]},{"sector":11,"data":[1149901035,-1981535736,-12714938,-3574528,1996425334,-26106,1599995904,-1962742397,1297948645,503317706,1430622296,-1910575989,116163544,-62470314,971702272,-150993224,-661914514,243173259,1039812233,578060287,425603,512431221,529207712,-150953288,-259261842,2324608,1996425333,-401698564,1191117161,303079932,2096907833,-310157633,535137026,46812509,-1873273344,-326412987,-2082959842,512427756,529207712,1468729227,-96040702,-1946397047,60360262,1444149830,33195004,75437948,292995083,1346372536,16777114,-569981184,-352321279,1354771214,-16222465,244319862,-1962929688,1452014150,49120252,1562371467,313933,1167087646,518818645,-326903666,-1564977646,175044352,295706251,1183385347,8435962,-1957670247,2013264478,-1707606270,65535,-369342839,1996423332,-59310326,-1862514945,-25368562,-1191819639,1861681161,-1006238730,-196703983,1200347275,-2132225786,1183416292,8435960,-1946663381,108411376,1183515519,-230258426,-1962379521,129103430,1174659283,-402258952,1996443657,-25870,1586167808,113476596,-1947181431,-2132225785,1174634468,2145681650,-2115090807,-1962933977,1183576158,165728750,-195130617,17190784,-1712175477,33185419,39260423,-1946526069,1200225350,-230257896,688408065,2122516038,58589190,1593791465,-1962742397,1297948645,503318218,1430622296,-1910575989,149717976,440406,84307703,1183387260,-1948742660,1183384135,-1707606022]},{"sector":12,"data":[65535,-150953288,-259261842,295706251,1149908739,209724421,88377354,-939762037,2147418695,49120094,1562371467,100846157,-1241513216,738262786,788529920,922812160,16777984,-738132222,1073742592,-654246141,1442841344,-637468927,452985600,-620691712,0,0,0,0,1167087646,518818645,1996478606,209125134,-16091393,1996425334,-26106,-1073020928,-1070922635,-6678549,-16776961,-1710385098,540,192296703,16777114,49120000,1562371467,707149,1167087646,518818645,-326903666,-1983894770,1183448134,205949946,1962939965,38988035,1072235382,77059,1979716669,42985731,781434883,58894335,-15829249,1996425334,-26106,1048772608,1946157542,1354771208,16777114,-96040192,-369338741,1996424037,57337870,1996480747,-230257394,-6664170,-16776961,-1070921098,1996443728,-126418954,110769919,110638847,16777114,-96024832,1187446785,-352321284,172395437,-351887709,-969474139,-26095,2122514432,192217096,-16091393,-6683018,-2097151745,964670,1822524533,1846971163,1779841307,-385649637,104464244,57940840,-37911,-14980554,-14981066,-14980554,-1206163402,-1706033151,459,-2080419863,1946159742,142508834,-14912256,-1710214090,65535,259309579,271857407,16777114,109748480,-2096712541,1946159742,-33110266,-2097151999,121406,300483444,37651455,57999362,-63511,-6681994,-385875713]},{"sector":13,"data":[2122579708,57933834,-956264727,16907782,444160,-2097151998,214590,922691445,1285162634,-16777214,-14980554,-14981066,-14979530,723217462,-6664000,-956301057,16991750,1354771200,125338,-1304526080,158662662,1342177720,16777114,-499219712,57933825,-2080466967,441406,-1914109067,1345781758,-26093,-1202716672,-1706033139,65535,-26032,-1706033152,65535,112985799,1709768704,-1547686914,-22871860,-1475987199,1342600454,16777114,1178501888,57999363,-112663,-1710847434,65535,54920903,922681344,922688362,922688360,922688366,-890692756,-29457410,276037633,109721343,1342177720,16777114,-32577280,109721343,109590271,16777114,-2012821760,-16777210,721848886,-2298944,-6680970,184549631,-1207601728,48955393,-768884693,-6657557,-1728052993,2122539499,57999370,-1191326743,-1706033151,65535,-1694646295,65535,-131351,1996426870,142016262,-1710590209,65535,-154647,1996426870,108461834,-1710721281,65535,-1946316823,-264435130,-14846734,1996426870,175570700,-16222465,-6683018,-1996488449,1451883078,-43324932,109852415,-1728052040,922701906,922683018,922685986,-6680032,1073742079,1240007540,1073920253,-26032,1038680064,242679805,-16091393,244319862,-385800984,1996487980,175570702,-402229505,501809655,209125373,-16222465,-6683018,-385875713,8453388,50791119,47645447,50790719]},{"sector":14,"data":[50791175,50791175,50791175,10879751,45220507,50791175,57737390,1963004477,-11802365,473770615,-385649408,276299220,1929386557,-12588797,1979718461,-13112924,1946164541,17907100,250151797,-14161409,1963004733,-25040637,1963004989,-9246461,1963005245,-10884861,1963005501,-52303613,1963005757,-52303613,-2080441111,-443874579,-900899553,-1957363702,149717996,-1929087233,1343682630,1342177720,16777114,-1338080512,158597126,112211711,279194,943128320,72063504,922681344,1419382838,-16777212,-1710327242,1117,324024063,290202,876512000,158597136,271857407,111514,74907392,1347469355,16777114,1575324416,503317186,1430622296,-1910575989,142509016,-385649403,-1070923580,-1560232797,2122514972,1937048584,55451275,706758538,105266148,-1511455883,-26112,-4718592,1347590400,-1727641973,748769362,773229331,1310624531,407317251,1377457947,-26032,1347551232,16777114,1310624512,407307011,-1994762477,1468601415,-1706012138,65535,55451275,542663,1310624512,34570243,55195391,16777114,-1958483200,-1073018810,20779380,1024947200,494141442,1946157885,-1205671137,-1706033151,65535,28841963,-6664192,-352321281,-26100,99287040,-352295752,1354771436,-26032,-310181888,535137026,113921373,-326413056,84311683,-1070900108,-1560232797,1183515164,1958742790,81174,37559412,1025668096,661913603,1946158141]},{"sector":15,"data":[-13112532,-1710092746,65535,922692843,-6680050,-352321281,269394209,278660651,-1578833072,103485454,-347074404,71732197,269616683,-26032,-443875328,772194909,2030109440,1761608450,385942272,1795162883,-1291844864,-1878982910,956367616,2080375556,-301989120,-1627324672,2030109440,2130707204,2063598336,704708355,-134216959,721485570,-469761279,738262786,-1996422399,201327362,-805305600,755040002,1241514753,771817219,-939523328,771817218,-1627389183,788594434,-16776447,805371648,-1979710719,822148864,956302081,838926080,654312193,855703296,436208385,872480512,-788462847,486539776,989856512,-1241448701,1560347392,369099521,-520092928,922812164,1442841344,989921029,285213440,1040252677,956302080,1057029890,-654310656,1073807105,-1224670464,553648896,-1728052480,1090584320,-1241513216,1107361540,1342243584,587203329,369165056,754975234,805372672,1157628416,687932160,-1107295484,100729600,1107297026,-1962867968,1191183105,-637533440,1845559044,268501760,1459618306,-973077760,1895890693,-1560280320,1912667909,-1744829696,1929445125,1174405888,1946222341,1056965376,1962999557,872416000,1979776773,-134216960,1996553988,939524864,-33489151,0,0,0,0,1167087646,518818645,-310126450,535137026,13323613,0,0,0,1167087646,518818645,-326903666,-950642912,60998,-1705983957,65535,58048523]},{"sector":16,"data":[-1962795543,529139806,-2013855958,1963721392,23456003,1183432747,-364475924,459945727,459814655,1342178488,161178,-163149568,-502135,-1592640970,378215276,19733358,14320384,922701906,922688362,-1667622040,1375731714,11639376,1654718464,1679198990,-263812850,737302153,1444673094,-96040456,-1577298295,378213164,1446581038,2083094514,-263833339,922690163,1996427834,-260636686,172954,241344768,241440395,468731435,1183445590,-329872918,-1946794357,1174665302,-61467654,334120451,373025878,2071728942,104531583,1937117996,-1947580789,1174531158,-61468166,425603,45626996,922701824,1996427834,-159973384,-231681,-4654474,1385779455,-96040112,771511947,-628948990,726684160,-2036707136,-956301311,1606,-1092583795,118889320,-234879559,976682917,775356178,741801747,-26093,1757347840,-529101541,96012062,-2086276608,1946158718,178217,976682832,-126419182,-624897,1996487798,-18182,1347590480,-231681,-1070859658,32479824,1048772608,1946159984,-25988,-1477902336,459841792,459937419,-1980348791,1347614806,460207871,460076799,16777114,-263812864,737302153,1444673094,-96040456,201086601,-2087684670,1946158718,178210,976682832,-126419182,737572607,-1202696000,726728703,1347440832,-6664112,-1207959297,726665710,1586188480,705137160,-1014279964,-6664128,-352321281,142016307,305805055,-493825,1996486262,-260636686]},{"sector":17,"data":[-1763176816,976682753,-126419182,-624897,1996487798,-59310086,-1694861569,874,-310157474,535137026,80366941,-1873273344,-326412987,1473809950,106859350,1757346699,-1190715877,-1510866939,459945727,459814655,1342178488,16777114,459842304,459937417,305805055,-1961136991,756772374,-628948991,-11513344,-14980554,-1709479882,65535,563761234,-1593835517,378211938,1822625380,1846970651,-2090901989,-443874579,-900899553,1478361090,-1957345904,-661774612,1460595843,460104022,460199563,-1980610935,244053078,512433000,1317608298,-128022026,-753155797,-1980086647,2122579030,1467219974,16777114,321691904,321787531,2146719289,956660806,1064825414,305805055,460207871,460076799,16777114,321691904,321787531,241440313,108994940,241305145,748755318,773229331,-163173613,100161051,-763166719,-96040704,-239991,-15582666,1996486774,-59310090,-362753,1996487798,-25862,1183514624,459849480,119468171,-234879559,-2090901851,-443874579,-900899553,1478361092,-1957345904,-661774612,-16353537,-15582666,-14980554,-14981066,-14979530,-1877251018,780302,-1962742397,1297948645,503317194,1430622296,-1910575989,283935704,-150989128,512429678,117640994,-1947056503,-1995994152,1333852742,1996423430,209125370,-1710590209,1021,-244087,1996487286,108461832,16777114,-129595136,191905411,-1957595904,-16775650,1183515207,-263812612,-150991688,1586232430]}],[{"sector":1,"data":[84345850,1183383556,-2094863370,122430,1586176885,175636470,-1877969153,2615310,-1980342645,1191119431,-163150864,-129594612,2096121401,102665174,38797056,-1962742397,1297948645,503319754,1430622296,-1910575989,-1393786408,-1957275904,126486110,-2037783510,-661913766,45123466,52818059,-431585024,203802251,1552320768,633768959,1183383584,633768956,-2037841792,-963903650,-1996472283,1187505222,-2097151764,1962993278,108461835,339866,-431585024,-10385779,-152025463,1963001926,14084355,-1957642197,-388954042,-780147584,1372138464,-297366192,-26032,1183383552,1183400184,-128021526,-467007606,-1980873079,2122577478,57999606,-1962853143,126544478,1183441962,-1965519878,-1962758009,206328,199771785,-16026176,-6624650,-1996488449,-2037651386,1178206042,-2096663046,16735934,-947184779,956304421,1979669638,633834291,1178140704,-2094433028,1946215550,-96040157,-10844615,-1098706315,1964834650,-362902773,704726922,-330956316,703088267,518778438,486178435,-1098709131,1947860826,-361299989,-1018113,1654319222,-1996488698,1183576134,-364510744,-369736151,1183514456,-1981535735,-1962977146,-388954042,-1996456155,-661915066,45123466,-125049814,556675,-2037699980,-667156646,-1098709131,1962999646,633834267,-2043084788,779485020,539346827,-62506752,2122523772,510918884,972703371,1979669126,1522434830,125115647,-10975605,-940816895,60998,2122527211,125115642]},{"sector":2,"data":[-10830205,-1947438055,1191178334,-96040208,-947189880,-1996487899,37613126,-1962117888,1191178334,1485212400,-16283393,1996424822,-428408848,721453240,-1705972154,65535,109550160,1586167808,-330921232,-2097068288,1962995326,-427916488,-13467902,-2037518218,-11468970,278586998,-2147483641,-16820570,-1963958645,-796974073,1452182240,31555839,-2037858038,-2037645482,-1427505322,-431584512,-2115090943,8449662,1889607038,1418103051,537901311,-26032,-2037710848,1889795924,138840843,-2097118999,122430,1183511413,1619429614,1095935,1619430736,1183535359,-1706016530,65535,91602955,-352283487,1619430742,280514815,1183535104,-1706016530,65535,-1957642197,-31134138,1183400000,28856558,-6664192,-2147483393,-1929312178,1358913670,-1695648001,65535,-657327407,-780147584,139365344,123265,1183432971,9741064,1593801449,49120095,1562371467,313933,1167087646,518818645,-326903666,-129594104,-1946401143,-62455848,-2012723574,-60912889,-2012854646,176063239,-1927383808,-1202653114,-1873805311,-127604722,205391559,62390292,-6664192,-352321281,175570705,-11485141,1996425334,34052860,-310181888,535137026,113921373,-1873273344,-326412987,-2082959842,1187448556,-1929379588,1183448134,-1965519878,126355014,-16091393,1996425334,-401698564,-310181877,535137026,113921373,-1873273344,-326412987,-2082959842,-1070921492,1612368,-1073020928,1183661172,-62486024]},{"sector":3,"data":[1191172235,138840828,1183647624,1996443654,178428,94083664,1183645696,28856568,244338688,-940066328,336346630,243712,128424528,-310181888,535137026,113921373,196629,16712252,196638,16711798,196639,16712445,196640,16711791,196641,16711753,196642,16713658,196643,16711975,196644,16712113,196645,16712082,196646,16712010,196647,16713746,196648,16713810,196649,16713528,196650,16713511,196651,16713782,196652,16713460,196653,16713414,196654,16713308,196655,16712897,196656,16712942,196657,16712684,50,0,1167087646,518818645,-326903666,43950390,1963607609,461938988,462034571,2080921145,956661536,426903110,-1961991519,957244438,226429014,837354365,105265411,703136627,1488899,-1962250505,51323422,-196703993,1200347275,-754274042,206312,-1947187575,1451951686,72825096,-1914109058,956857344,58065479,-1593801751,378213222,1446581096,2135522312,105265413,1996440182,105286410,755521163,-628948991,-1873784320,-10426354,-1961991519,957244438,545196118,1178142076,-1961266426,1200354398,72846082,-2097151483,1654849746,1679198478,43968782,-1559607669,1586168478,38243316,-1559996533,378084232,33889162,13796096,-1995545949,-15834090,244320886,-385712408,512426608,1207894022,-195130622,126558091,1357792905,-1962522997]},{"sector":4,"data":[1183385686,-128546314,-6664110,-1191182081,-369688564,99501571,1183383556,43950572,1963607609,241344794,241440395,1963480633,105265422,1183517045,139889414,-1962894615,1183444038,-228684814,1468729227,-431585022,-1947707767,-388955065,-1988107136,1207364166,1282736388,-1962522741,1183385687,-531199522,65697535,1444148806,-431608840,1390958107,-529072304,-1864468737,77195278,-1981659511,-92019626,1023768063,343212031,-1947842933,1174661206,-464120862,467551787,703324246,-1946794357,1446639702,956658952,125044294,-2131599733,-1962867633,1175184966,-385649432,1721827579,1746307859,461939475,462034569,-1559607669,1586168478,38243316,-1996204149,1451883078,105286652,-1995942261,1451882054,-330920968,-1947056503,126612062,-1996335221,1451872326,206015442,-1995548789,1451873350,71797718,-461313839,-599357057,17057782,-1410792588,105351936,-1995942005,1451871302,-596181042,334906883,1177286742,-766108720,1183535186,-833188916,332678659,1177278038,-766108720,45633618,244338699,-1996129816,1451874374,-359462,-12778123,-1956547329,1452003398,-666500142,735729171,1444662342,241345486,241440393,-1878362369,23193614,-1947050357,1183386183,1958742986,1354771215,1342898872,-1698007297,65535,185351809,1836515568,185337543,-2031550224,-431584512,-1981262197,1451882054,-227638280,-26875636,-1946794357,1446639702,956658952,125044294,-2131599733,-1962867633,1452014150,-698992132]},{"sector":5,"data":[1178147957,85423572,-763166718,241345280,241440393,401035,-385724417,1183579585,-698971180,-1980348791,1183053910,-689369870,205423102,1912725515,201770760,-352198645,185377042,721435653,7911890,-503844361,-1962210141,-16775650,-310181297,535137026,113921373,-1873273344,-326412987,-2082959842,1721830636,1746307859,-1978255085,2136898587,-2012858106,-1588169189,378215304,1183390602,-94991880,-1961991519,-1995545578,1451881542,108462070,-1946663285,19790422,14320384,244338770,-2130953752,-284487130,185738880,-196703248,-1544137077,378080866,1183518308,-94991368,-1994684253,-350516714,1379335961,184727571,768080,72850000,1996423168,-401698810,-310181877,535137026,46812509,-1873273344,-326412987,-2082959842,-1957296916,-1961942498,1488927,-1962512649,339774448,201082505,-1206749760,726666008,448286912,-6664192,-352321281,-60912878,414726143,448286731,-1382395904,1577058308,-1962742397,1297948645,503317194,1430622296,-1910575989,82609112,958105249,1584663110,-1559607669,381164422,175044352,253894283,1183385347,-2082960388,1946160255,207588103,82524159,1343173816,1343075000,1342190520,317082,-1547687168,413340186,-60912878,-1962784885,-962395049,-938047216,229816336,247248976,3389520,-26032,-310181888,535137026,113921373,-1873273344,-326412987,-2082959842,1448545516,705613216,-1913615388,653786948,243994322,-936702272,-150025567,734538726]},{"sector":6,"data":[722389006,-1995516914,1218573902,734079763,-1995519994,-1012860858,-1947981299,-92894736,-134265715,-1962031066,-129594424,103530795,-768930092,-235417973,-8259445,91423440,-352137032,-1547203838,1218514368,230073107,722386593,722387974,-1995520506,1487010886,-62510317,908849291,-25096508,91424160,-351952712,-1547269374,1486949820,229942035,-310157474,535137026,516640093,1430622296,-1910575989,57057752,1963345465,1711720198,-1577058557,1178143592,-955878138,-16029690,43950591,1963345465,-1643723002,-1577058558,1178147718,-955878138,-14973434,460759551,1963345465,241082654,241174027,1048645493,2147420928,1048774517,1962871550,1980155654,-2080375013,-443874579,-900899553,1478361090,-1957345904,-661774612,44041927,-1070923776,-1560106333,-1532820824,44212994,-1962742397,1297948645,-1873273141,-326412987,-2082959842,2122390252,1954545166,105286416,956847755,208997462,1963607609,-18425,26077593,949891,-2002702219,-1978234110,206977282,92218492,1913275961,42508573,42604171,2131252793,956660948,-847837626,-1962768223,-385709546,-1564999337,242153216,295706251,1183385347,-153580548,1946223687,12249347,-1962260853,19729494,14320384,1183416356,-94991880,-1728020296,1996443730,-126418950,16777114,-163149568,-1962522997,1446578262,-385647348,142606195,1997162041,-9836285,-15829249,1325397622,-196702730,1354771280,502426,172919552,66604587,-229733944]},{"sector":7,"data":[-1946663285,1446640214,2131983368,105265413,1183517814,139889414,-1980217719,1183578710,-94991368,2081183289,956661541,511052358,-1947054337,1065415262,-1962314486,1451952710,10086668,17460867,810627,1854001387,-2097118984,-385811874,1996488558,243172110,-1206815488,-11529822,1996426358,-26102,501940224,-1946394997,939465823,-15960321,244320886,-1962752792,-930349986,51136395,1183666369,-1070903056,-26032,1183383552,-532773906,57933825,1358864105,-15960321,1183648374,1183666410,244338918,-1962793752,1452010054,139868652,2095645566,956857598,57804358,-1946258711,1452010054,49120236,1562371467,707149,1167087646,518818645,-326903666,922703388,1996428114,768006,156932688,2122383360,1954545168,276726553,-1592101632,378208904,1446576778,2131655694,205928709,-4716686,-1427531265,10663937,-1961857289,-1607037992,-1994652911,1207368798,57934084,-1962890775,1451953222,-1988090866,1451882566,8435962,-11513191,1996487286,114399992,1183383552,138841078,956978827,-1300296106,1178142076,-5541108,1996427382,-163119114,1358186125,-1705983957,2368,722226827,-939263922,-2114826615,8452166,16406147,-1962391925,1446578774,2131983610,-129615611,1183517814,173443848,-1980217719,1183578710,-94991368,2131646009,956660892,-1787622330,17581699,939651,-893301,1065415238,-1948551926,1451953222,15198478,-2096072961,1962938494,295876625,242679632]},{"sector":8,"data":[-1710459137,1918,1586175467,476023804,1996437503,209125134,786960016,-60912895,1200343179,1354826508,1357923981,-1705983957,1793,-2081667447,122942,922692212,1996428114,3389446,66755152,1586167808,138841084,956978827,57934423,972998633,-385649657,1877737152,-2081655157,76219590,956454027,209456726,1178142079,-2096795124,-353696058,1418396811,-398030590,-1947576695,1183384644,138841070,956978827,58649174,2097054697,-398051064,2045313910,-293698562,-1960938241,1174662726,263660,1088833161,108461904,-1964614005,1357130247,16777114,-398030080,1592415883,-1962742397,1297948645,503319754,1430622296,-1910575989,82609112,242649942,-1962621309,39095044,2081183289,956661516,91359814,-351877501,239504362,989856773,-1962248762,126553694,-352168053,-96171258,-1946397557,126421086,-1962780791,76219998,-1996335989,39291143,1577337995,-1962742397,1297948645,503319242,1430622296,-1910575989,82609112,175541078,16533191,80118528,-1962522997,1413023830,2081193982,-62637819,1191118199,-1947800580,-2090927034,-443874579,-900899553,50333702,-16130816,50342912,-16594944,50344704,-16704768,50344960,-16212992,50345216,-16182272,50345472,-16223744,50345728,-16248320,50345984,-16497920,14592,0,1167087646,518818645,1183570062,50343180,1996492349,-1816132856,-1532494034,-373282048,244318371,-385763608,244318360,-385834520]},{"sector":9,"data":[244318352,-385705752,-6684536,-385875713,-6684544,-352321281,-401698695,1928004507,-1878362369,49342478,1996450027,108461834,16777114,-10753280,1996425846,142016262,16777114,-11801856,1996425846,142016262,16777114,-12850432,1996425846,-26106,787152896,-16222465,1996424822,-26102,518717440,2752546,3801138,5242946,4784157,5898269,8847463,1900692,28835959,49120000,1562371467,576077,1167087646,518818645,-326903666,459841802,459937419,-1980348791,129562710,922701824,-11398598,1822553718,1846971163,-163173605,-1980213733,1451883078,-1202695428,-1722744833,-1070903214,-1706012592,581,1342177976,16777114,-1338573056,976682763,-126419182,-624897,1996487798,39754490,1048772608,1946159984,45193735,434831360,269027062,-167283455,34605318,244319604,-1593830168,144905060,-401698814,-310180629,535137026,516640093,1430622296,-1910575989,149717976,572427094,-1205892337,787939350,-259322960,-1962786677,1183384656,-94991880,863289867,196097791,1347469355,16777114,302446080,527699723,167528134,16598726,1358710413,196097791,1347469355,-362753,-6621066,1577058559,-1962742397,1297948645,-1873273141,-326412987,-2082959842,-493220116,-1207959550,-1706033150,65535,58048523,-1593784343,378215272,1183390570,-128546314,-1961136991,-1994691050,1451881030,375028,976682832,-126419182,-1946781953,1177285190,-128574474]},{"sector":10,"data":[-1980086647,1347615830,1358954424,726684313,1347440832,16777114,-1338573056,976682763,-126419182,-624897,1996487798,-25862,116785152,1963003913,151451143,91488784,-18346352,1883145214,880082955,269027062,-167283455,34605318,244319604,-72472,-15582666,1996486774,-59310090,-1191545089,726695935,1347440832,-26032,99287040,210586,325361920,-956168029,1270790,-401698816,-310180977,535137026,516640093,1430622296,-1910575989,116163544,16533191,-26112,-6684672,-1996488449,104593990,930353280,242532363,52082768,-26032,-1073020928,-6677387,184549631,-2094631744,133182,28837237,721611520,-62486080,244320747,184671976,-16091968,244382838,-352055320,-26102,-6684672,-2097151745,-443874579,-884122337,1167087646,518818645,-326903666,-1338573010,-26101,1183383552,-61437446,1023821451,1618214913,1946157629,212241,-2143473036,-1872530176,14018574,1048796395,1946157576,1354771285,-59310256,-362753,-1928613834,-1705979322,962,1674739331,921380468,34094723,724530176,-11513664,1996487798,-1338572806,-767128309,-26032,2122514432,309617618,16777114,1975520000,538425353,-26032,-310181888,535137026,46812509,-1873273344,-326412987,-2082959842,38974,113726069,1722,196097791,1358954424,1347469355,983191632,-1593835519,87886910,1024097280,92209160,490906,-1774288640,1954545408,-1774780657]},{"sector":11,"data":[-26112,113704960,2147418262,55328387,-16157681,-1711059914,65535,-1962742397,1297948645,-1873273141,-326412987,-2082959842,1187401452,1183645884,-1070903108,129519696,-6664192,-1996488449,-12731834,721712511,-1954944064,-1767654842,922701824,28838832,-6664192,184549631,-16091712,-6636938,-352321281,178394,-1136226992,-26032,1183383552,1347590584,16777114,-1304000256,-1149976565,88054352,1183383552,-1235842636,-1418411509,381437581,1996444240,-1200160844,351898,-1300824320,353946,8435712,-1300824240,468122,112640,-1962742397,1297948645,-1873273141,-326412987,-2082959842,-950642452,47686,276838143,426906,1975520000,-373282043,-2135424735,-6664192,-1996488449,-1072976314,32047989,-6664191,-1996488449,1451864134,1975651250,15657219,-1334378670,381437581,4372560,-26032,1996423168,-25938,1183645696,-1070903108,-6664112,-1996488449,-12732346,-385649281,-1564999492,-1200687360,295706251,1183385347,-2133292116,-1962802097,1207348318,91488516,-352288584,734014210,-1270445614,-4827511,722186294,-1957670720,-1961942498,1488927,196095735,1895821451,40959748,-4688129,1996469878,-1403089996,1468729227,-1270469886,1387681307,44735056,512425984,529207074,-150989128,-1962168274,309395440,16777114,-1200161024,1353205389,16777114,-1438217984,-955943616,43590,253894283,381165451,-1339099392,-1947170037,1082763846,1883144978]},{"sector":12,"data":[91553803,-352321096,-1983894782,882555462,-1879048185,911374,1589266059,-1962742397,1297948645,-1873273141,-326412987,-2082959842,-1957285652,-1961942498,1488927,196095735,1082912907,72387330,-1982839159,922735190,-6680448,184549631,-1878493760,-44439538,-956258839,16816134,-26112,113704960,152,196097791,1347469355,108954,302446080,376705035,-1961991519,957244438,175493718,1976583737,112645,-1070923029,184682659,-955812416,130118,-1070913301,1996443728,-797507630,196097791,1356088973,236698,-729906432,-1207601821,65732610,-1996487752,1183579206,-767161392,28837236,721611520,112894912,393527307,1342210232,-1705983957,1839,737965823,-6664000,-1711275777,65535,49120094,1562371467,1478413133,-1957345904,-661774612,1462168707,-62470314,28835840,-191213568,184549377,-385649216,922681843,1520044976,-1996488701,1451878982,1975651308,31320323,83610,459841792,459937419,460199481,108989820,460064313,-6683274,-1929379585,-289476994,-1190717943,-1510866939,-1961138015,-1994692074,1451882566,-1338572806,1354771211,134060624,116785152,1947208466,-92372119,2137226240,-125926650,-1956940288,-1961942498,1488927,305802999,1216409739,922681606,1183519290,-94991368,-2097151699,1347551450,437658,241344768,241440395,1979340345,-129615611,1187455092,-16776452,-15582666,1996487286,184727800,-26032,1182990336,1451426538]},{"sector":13,"data":[28836076,922701824,1996427834,-126418950,-1280257,-4658570,1385779455,1354771280,412766288,-1207959551,-1706033150,289,305805055,-1711520117,335037955,1347615318,1347469355,196097791,1183535184,1317771772,-329348118,-635713493,-6663853,-2097151745,749630,-1243020428,-129594624,66737803,1444145734,-1202695444,-1706033151,65535,-1981397367,1048832086,1946157576,1044284173,108331532,205391559,2122514471,913571846,450512582,1357792909,1356547725,1342180024,16777114,-632910592,976682832,-92864750,-1946650881,1452013638,-364510214,1391220243,30382672,1996423168,-428408856,-1542401,-6625674,-1090518785,1988954606,-1190715666,-1510866939,269027062,-167283455,34605318,922686836,1996427834,-126418950,-1280257,-6624650,-2097151745,749630,563742068,-956301308,16915462,-2090902016,-443874579,-900899553,50344194,-16269824,50339584,17086721,50335488,17090049,50336256,-16208896,50340352,17099009,50336512,-16231680,50340864,-16167168,50341376,-16295168,50341888,-16229376,50342144,50666753,50366720,50740993,50366976,50764289,50367232,50521857,50367488,-16195328,50342912,50656513,50367744,50671361,50368000,-16524800,50343424,-16651520,50348544,-16528128,50349568,-16322304,50349824,-16291072,50350080,-16565504,50350336,-16578816,50350592,-16581120,50350848,-16390656,50351104]},{"sector":14,"data":[-16511232,50351360,-16186880,50351616,-16736768,50351872,-16740864,50352128,-16744192,50352384,-16748288,50352640,-16752384,50352896,-16760064,50353152,-16762112,50353408,-16279808,50353664,-16381696,50353920,-16384768,50354176,-16420096,50354432,-16457472,50354688,-16470528,50354944,-16474368,50355200,-16477440,50355456,-16485632,50355712,-16496640,50355968,-16502272,50356224,-16170240,50356480,-16182528,50356736,-16217344,50356992,-16243200,25600,1167087646,518818645,-327034738,922681608,-6681680,-1996488449,1451883078,1958874108,-1170308345,91553798,-352321096,876019537,-26096,-1073020928,244335220,-1996470040,-6621114,-2097151745,1962997886,-125399589,397955326,1637503008,1342177280,1344282296,16777114,-1976107264,-125399802,565727486,-6664192,1023410431,-1401683967,-310132693,535137026,516640093,1430622296,-1910575989,1290568664,572427094,-1205892337,787939350,-259322960,-1962786677,1183384656,-61437446,15877831,138314496,108331010,-385744664,-1070923277,1996443728,-92864516,196097791,1355171469,16777114,-1338573056,-465138933,1183437355,-162100748,-1070903214,374864,32676432,45613056,547442688,1183422734,-1000961598,1704611922,-1996488702,-1072959418,2122522997,141820146,-1695385857,298,15761027,1996425332,38771440,-1070923776,-1962835223,1452014150,-162121220,92034943]},{"sector":15,"data":[1945388601,-260636848,107162,-1136228096,197023369,-1581550398,1344147372,63063691,103529542,1347554848,236992255,170650,-260636928,121242,237019392,-196738663,-1946790383,1452014150,-162121220,92230268,1928611385,-964787381,-385649565,1996423356,41261808,1183383552,-1168733768,443859467,-1984412021,1451876422,-700019230,-6664170,-1996488449,-1072958906,1183539061,-1169814600,1038680949,-260636673,149402,-13440768,196097791,-624897,-1070861194,374864,-26032,1183514624,-1069118992,237019472,-1035599463,-3910127,1996473462,178370,58759760,1183383552,1958743024,-15472381,-1983887733,-370544570,-227082242,-3639553,-6632842,-1207959297,-11534334,-1365577098,-16777214,-1566904202,-16777214,463138934,-956301309,61510,45635819,146296832,1347590400,186778,-230258432,58048523,1358864361,236954,-1270445824,196499081,-385649214,1183579788,-867792400,382092941,1996444240,571572,64526928,1996423168,-25870,62390272,1996443648,-25870,28835840,-310157824,535137026,1439386973,-326898549,-1070901734,-1980873079,45673542,28856320,1347590400,16777114,-230258432,1183432747,-129594886,253894283,381165451,-1339099392,-1947170037,1351287360,-62486268,-939633015,61510,15892099,300483444,-226589951,-16223232,-6622602,721420543,24963520,196097791,-362753,-1070860170,-25755824,-1191414017,-1706033144,65535]},{"sector":16,"data":[-1996266335,1187505734,-1593835286,1178141540,-1961918998,-1082070434,1962935680,-1983673545,1183573574,-398030350,-431584432,-330955879,99505683,-763166718,-1202695680,-1706033150,65535,200427145,-1961986624,1183443014,-8525326,-336967937,-227082318,16777114,-196704000,200693385,-385649214,1487011683,1511426819,-27903741,92015231,1945912889,-431030525,503677112,-330921136,-1946925565,1347614294,-1696172289,65535,-1712961909,300697089,1586228822,-193542932,218154534,32261763,15619715,-991142261,-970525578,1191119360,-330923024,-296320255,56140032,56235659,-1980217719,1996487254,76389106,1183514624,-27882500,2147112505,956660783,678688838,196097791,-362753,-6621066,-167771905,269160966,-672595083,241345022,241440395,-1980217719,-957613482,-1695385857,1604,-1980479863,-1039403434,-1595341963,-260144130,-2096597759,-2096960402,-1962873250,1992617054,12986100,-227082496,435610,112640,-227082416,147354,112640,1575324510,-1873273149,-326412987,-2116514274,721534700,-129594944,-1980348791,-2037777850,-2037514518,726728280,683167936,-6664192,-956301057,-385975162,2122761987,-956045058,133126,-1338573056,-18421,1354771280,-1706012592,65535,276838143,12954,1975520000,-373282043,28836786,647647232,-1996488699,201256070,-952339008,-108410,243967,87923280,-2037841920,-1072955668,-2033770635,6553176,1342177976,16777114]},{"sector":17,"data":[-326727424,1975520254,-96024824,887685121,134661891,-2097151742,133182,-303496331,1379335937,-2071556845,230183166,-6664192,-2147483393,285119630,-27228473,-1098711040,1952710232,15526147,-18041089,1342181048,-26704243,-711307242,1023410181,58523662,-2147294487,33452222,-1098905737,1979842161,-323551448,-401698562,-2037840680,-1072955826,-1058471051,-326727422,246960382,-2037559296,1343684200,16777114,-323551488,-25858,-2037841920,-1769341360,-2037776814,-1031012774,-27490679,-2037792725,-2037776796,-2037711262,-466944400,1347537195,-26442101,-1957670247,-1711378810,513429586,1375731718,-26032,-2037841920,-1769341356,45678166,-11382784,-1694608202,263,201082505,-385649216,-1706032747,1657,-25131383,-24996215,58049035,-16678679,-70474,-108874,1392399542,-25118977,16777114,1975651072,23325052,-18041089,437914,1250330880,1284934142,1975651326,33155331,1253506898,1485213182,-1202710786,-1706033144,365,-18041089,95642,1589051136,124033790,-2037841920,-1769341312,-1039401342,-991362187,1589051137,122919678,-2037841920,-1769341356,-2037514666,-1924071848,1358848646,-26966387,-401698736,-1073020342,-353827979,1988544256,-1962923778,-1946266490,-1979820394,-1979811706,201226902,1913485266,-49915,-2037709193,65797716,-1979711560,-2130811258,-2130814834,196097791,1347469355,-27752819,2668624,229161040,1354771280,16777114,1487306752]}],[{"sector":1,"data":[1187479550,-956290826,63558,-1224791573,-6619412,-1996488449,-1979820922,-108906,-1694569290,329,-25131383,-24996215,58049035,-2097082647,16668350,125260914,-28000637,-2092206592,16668350,141693047,-28000639,108200191,-28014965,-4717589,1116113152,1183238142,-2097151746,133182,-1224779659,-1224737150,-1924071808,1358886534,-29063539,-401698736,-2037841669,-1072955838,1187458165,-2097151494,133182,-1679228043,1488880384,57959422,-16741399,-2120549258,-16777208,479919222,-385875967,-1098710905,1946222148,324182326,-1224790549,-1224737150,-2037514624,1343684342,-29182209,582298,1116113664,1003629566,1979602582,1418083086,-1928825346,-1979808634,-113018,-16011210,1996486774,-158953994,-1224781570,-1464271294,-1224781811,966458950,-1962934265,738083462,1418078674,1452677630,-163184130,33052177,-369196922,-1224737023,82574942,-18041089,269978,-356613376,158597374,-18172161,713882,4430336,1048772608,1946157534,-1338573032,-18421,1354771280,-1706012592,1268,16402119,-96040192,-1962742397,1297948645,-1873273141,-326412987,-2082959842,-11139860,1996426870,138840844,1996443678,110926346,1586167808,141986570,-16777018,179832950,-6664192,-1996488449,-1072956346,28837236,721611520,106859456,-1073018999,1183517044,138816508,-16127168,-6682506,1207959807,49120094,1562371467,707149,1167087646,518818645,-326903666,1988843024]},{"sector":2,"data":[-1996190966,922743366,146278056,1603948544,-1996488695,922742854,179832488,1872384000,-1996488695,922745414,79169192,2140819456,-1996488695,922745926,112723624,-6664192,-1996488449,1183578182,474610,-1628896387,539904,-1763114114,41714432,-2096529920,2113930364,8579331,1342178488,1342254264,-362753,-644155274,-1996488695,2089022534,460652546,294019,79172981,750276608,1996443649,-59310096,670874,-2093421824,2097153148,71600903,65788151,-1727773557,1183535186,1347590644,162947,1149962109,-338102526,38046467,-1706012007,65535,-6664110,-1996488449,2122577478,108265718,16023171,-1070910603,1187470571,-16776206,1962930806,-260636926,-1694730497,2640,-637303,1962930806,-92864764,-1694992641,65535,-336312695,-159973439,166344447,276313855,686746,140413696,1996425097,-63504396,-2009661687,-26096,1586167808,-1207465722,-2090991615,-443874579,-900899553,1478361094,-1957345904,-661774612,-954798973,64582,16402119,-364460288,922681344,26873914,-1996488693,-1072956858,2122526581,141820154,-1694861569,2774,15367811,1996425332,191863530,2122514432,141820156,-1694730497,65535,-1846951893,-92864768,-1710852353,2881,-1032536053,272250623,16777114,-364476160,-1300971509,-1207535873,-1924136946,1343679558,366490,1958742784,-294191203,-1192200449,1347420161,1347469355,16777114,-62486272,-2106277877,1357543167]},{"sector":3,"data":[16777114,1975520000,-9246461,736786175,-11513664,1996484214,-92864528,548950096,13416960,-6664110,-16776961,2006645366,-16777205,-6624650,-1962934017,-310117306,535137026,46812509,16973865,67124,196623,16712767,16973855,66066,16973840,67575,16973841,66656,16973842,67567,16973843,67270,16973844,197885,16973961,198806,16973962,197785,16973965,197903,196750,16714259,196663,16713071,16973880,132574,16973986,133991,16973858,131635,16973987,133876,196653,16711893,196679,16711699,16973896,133937,16973872,131519,16973873,133811,196660,16713904,196685,16713757,196698,16714015,16973915,133832,16973892,133265,16973893,132713,196682,16712508,196709,16711922,196710,16711795,196711,16711767,16973928,133455,196688,16713815,196713,16713239,16973930,133913,196690,16712911,196715,16714341,196716,16714167,196717,16714252,196718,16713975,111,0,0,0,1167087646,518818645,-326903666,1048794630,1963918156,12183811,-150980424,-1962718162,884473816,112656,1354771280,1342242744,-1705983957,79,-150980424,-1962718162,884473816,1354771216,909573968,-6664174,-16776961,-275118474,-1996488704,1451883078]},{"sector":4,"data":[1958874108,3717213,55324407,1992611979,76228346,272271241,55326463,1342177720,46746,3717120,55324407,1343227909,653942468,637958143,1208633227,-26032,922681344,-1070922932,42703440,-1070923776,112720,30120528,1996423168,25074182,951582720,1278146304,-942109949,1063559,-310157824,535137026,80366941,-1873273344,-326412987,-2082959842,-11138836,-6683018,-1996488449,1451883078,1975651324,8579331,653942468,637945739,-1996339413,-1072957370,1048777343,1947140940,1278672737,-26109,1458241536,55328387,-15436529,922683510,-6681680,-1560280833,255656780,-1204063232,787939384,-259325108,-1995946357,-1005570940,-1960379810,310675719,-94452720,71797542,269386889,653942468,-1996339317,-1005578620,-1960379810,-2071394745,1996427284,-26106,-2090991616,-443874579,-900899553,1478361092,-1957345904,-661774612,3717206,55324407,1183570059,881277194,-385649648,1048772848,1963918156,15132931,184685544,-385649216,922681564,28836684,-1751494656,-1962934270,-1073018810,-1997995147,81152,-1947663499,146688,-1897331851,212224,-1914109067,277760,-1964440716,3717120,55324407,-4657013,1347590400,-1727641973,748769362,773229331,545532691,580131600,-1706012144,65535,-6664110,50331903,319824004,-1995431276,-1995432828,1376788116,-26032,951582720,1278146304,-940537085,1052804,143425536,922681872,-6683828,-352321281]},{"sector":5,"data":[112674,-26032,401276928,1342177720,16777114,-1710429440,65535,1689781739,-1250560,721636406,1671057600,721420291,28856512,-426094592,-402653182,-2090991192,-443874579,-900899553,1478361094,-1957345904,-661774612,-150980424,-1962718162,172395480,271877945,-1377238156,1279165184,58003203,-402611223,-1073020680,-1712782475,1278672640,112643,57645648,1183514624,1958742792,81174,37559412,1025668096,829685763,1946158141,-11211968,-1710092746,65535,922700267,-6680050,-352321281,3717182,55324407,-2020878197,103485454,-347074404,3717338,55324407,-2020878197,103485454,-347074404,3717329,55324407,1183570059,310848262,-6664176,-16776961,721636406,-6664000,721420543,28856512,-6664192,-402652929,-310181680,535137026,113921373,-1873273344,-326412987,-2082959842,-2091514644,133182,364391541,-62486272,2114340411,106859278,-60913333,638088900,-1207959354,1344143514,-16091393,1996425334,-25860,-2090991616,-443874579,-900899553,-1957363706,951604972,1278146304,-1012989,-1710213964,65535,272270473,443858955,-150980424,-1962718162,985137112,-1774780656,-26106,-1073020928,-1070922635,951597035,1278146304,-2585853,-15713609,-16347082,-1710846410,65535,-150980424,-1962718162,985137112,-1808335088,-1841889530,-26106,28835840,-443851264,-1957313699,951604972,1278146304,-1012989,-15715148,-1710212428,65535]},{"sector":6,"data":[-150980424,-1962718162,981977048,1577058320,-1017256565,16973848,132128,16973825,132154,16973833,65623,16973842,65726,196627,16712231,196663,16711850,196667,16712283,16973886,132094,196653,16712638,196698,16711966,16973919,196660,16973888,197600,16973890,197724,196676,16712224,196718,16711809,196720,16712535,196721,16712471,196722,16712460,196723,16712312,196724,16712305,196725,16712294,196726,16712254,196727,16711987,196728,16711838,121,0,0,1167087646,518818645,-1957242738,1149961846,16792834,20782194,-1961396479,272434244,1024422400,175570961,333975184,112640,-1070923029,49120094,1562371467,182861,1167087646,518818645,280549518,1721389056,184549376,-1207599680,48955393,-1734098901,1161218,-26032,-1073020928,28837245,721611520,43688896,-1962742397,1297948645,-1873273141,-326412987,-2082959842,-1957296916,882968182,1946433808,-18427,1149985259,-62486268,1023558795,125042944,1946223165,-2082018485,170558,2122517364,-646640132,-343798344,-62485702,1946159421,1025081107,594870280,43531907,-1207602176,535527470,-2130950517,401309900,1946160445,7355891,2034042236,-1197310464,65798140,1593591435,-1962742397,1297948645,503317194,1430622296,-1910575989,82609112,141986646,162945]},{"sector":7,"data":[-1593346815,70848564,-1070922380,-1962835223,-864025532,-62486144,43662979,1024357376,-428048351,2139105341,-45711135,-62485759,1954555965,-385647043,574423316,-385646976,557646057,1026260352,997490700,1971329853,9300227,2122560747,225705990,104858,-59310336,16777114,503760640,-385875966,2122514604,-244056058,16777114,-59310336,16777114,-2082280704,1946158718,503760860,-385875710,1048772744,1946157720,108954385,-385649408,-6619292,-385875713,2122579804,-1250689018,1342177720,1343230392,-1157627976,1347616767,16777114,-2086737152,1946158718,112792,269727824,-18352,-335544390,108954593,-2088602624,170046,28840052,280514560,-4698096,-17665,116835563,1963003913,151451143,393478672,197146367,1342181560,1347469355,-26032,28835840,-1704006912,65535,1040137961,58556451,1040111593,58687525,1040129001,58032166,1040134121,58032167,-369161239,608042684,1025212289,58491169,1040127977,58032173,1040148713,58032174,-369153047,624819868,-385649279,641597152,-385649279,658374388,-385649279,675151568,-385649279,2045378276,-310157570,535137026,80366941,16973838,196687,16973930,197178,327791,16712215,196692,16712061,196674,16712260,196681,16712135,131157,16712218,327764,16712186,327802,16712157,196732,16712165,196731,16712097,131197,16712189,196730]},{"sector":8,"data":[16712069,131198,16712160,124,1167087646,518818645,-326903666,43557140,-939899255,62022,622555297,1183383553,833780,45587024,-1073020928,28837245,721611520,503712192,105286402,1971332925,17099011,434701182,-2145174271,607999348,1030255744,58032165,-385813783,1187447342,-956300814,326726,-1961138015,958097942,1964731926,1812347142,-2096532453,1962998398,17492227,16023171,-118946955,460103936,460199563,-956229143,127558,50087623,-2084181248,138814,599264372,244338817,-385751832,916521430,-2095846638,138814,616039796,-1578701951,103485596,1183387666,-330920464,-26032,1347551232,73114,1779841792,993686811,1964730374,325493044,325588619,459937337,108996476,459802169,1048780662,1946157594,-330920680,459841872,459937419,-2097151699,1347551450,16777114,805750528,-939524337,-15781370,-1811494913,-16777200,1996483702,112880,-92864688,16777114,20506880,32655047,507413248,91488258,-352320584,112643,-369342839,624819974,-385649279,658374450,-385649279,-46268635,-385649153,-29491479,-385649153,132775644,459841793,459937419,2122523371,259260658,-1961136991,756772374,-628948991,-1592923392,378215272,17111914,13796096,-1980348791,2122578006,427032818,-1961677663,957558294,511047766,1979074105,-26087,-1209466880,325492992,325588619,1979209273,-163170043,2122573684,745799922,-1961677663]},{"sector":9,"data":[957558294,276625494,1178142079,-1593216266,378213164,971707182,-493825,1996486262,-25860,703266816,-1961662815,957573142,259848278,1178142079,-2096597258,-2097023378,-16713634,1996486774,-59310090,16777114,-163149568,-2080876919,1946221182,-2091888105,1963064446,-339727612,-62485757,-26032,485163008,-493825,1996486262,-159973384,16777114,-226589952,-2147126016,-31756250,35391175,113704961,65724,-1962742397,1297948645,503317194,1430622296,-1910575989,585925592,-1734257065,-62486270,-1995424095,213447750,-6664192,184549631,-1207599680,48955393,101302315,1183515166,-2144846586,1618950772,1954554173,-2145239779,641546868,-2089716352,138814,-38269836,244338943,-369291800,116786712,1946229616,-58817752,-1591577600,378215276,552278894,35536515,-1207602176,-705953794,460326646,-2082179839,1946221694,459842014,459937419,-1980742007,552333910,1031872813,410451975,781434883,54831103,51905270,49677080,49677140,51905364,-887041,1183707254,1048793326,1946160188,-96039675,1991771115,244338702,-2096781080,1946221694,507413303,812974082,1023821451,58032161,1023452905,58032162,1023469033,1265926182,1971333181,14215427,1971398205,9038083,1971398717,13166851,1023821451,58032417,2114244585,85715203,1971331389,18737411,1971331645,34466051,1971332669,42985731,1971333181,56355075,-2096813079,801854,-1667152012,-96061168]},{"sector":10,"data":[104415103,964562550,-1961662815,957573142,763163222,1178142079,-1960413456,1452011590,77298,1375787651,112720,37591632,1347551232,1357792909,1358579341,-353890672,325492996,325588619,270407225,1877541748,470170111,-385649648,1446641510,-385647118,142606174,2012235321,-11212541,15629955,2122386036,1954554118,-12261117,1350640824,585633424,76999166,-1946919285,-297366729,-523041615,1150021635,1141086468,139727622,-1981135223,748809302,773229331,-329893613,199820157,956858367,57928262,-1946222103,1418397252,-229230328,-202833027,956858366,57929798,-1577129495,378213164,1446581038,-385646862,142409434,1928349241,-19863293,-343858248,507413386,57999362,-956253463,-1978,305805055,459945727,459814655,348058,1346274048,913637123,253894283,381165451,976156416,-1946645742,1183387713,-1948742682,440383,55586551,1755437195,1779862299,139540763,1094255989,-16550906,922744902,922686010,922688362,-6677656,-1962934017,-1961942498,1488927,305802999,1099692171,-431585008,55590531,-1961396993,100923462,1183384400,2092960744,-430011639,121184139,-140900225,-385875962,1586168704,-1205892122,1861681158,-1946645528,-1029503935,-26097,1709768704,-26109,113704960,-61648,254936775,113770495,4244,-1947306241,1066136670,-1309778293,-152841468,1963196993,52488451,518635563,507413251,141819906,33048263,-11081472,1342203064]},{"sector":11,"data":[16777114,805750528,-939524337,-15781370,-1811494913,-16777200,1586228854,-1958769676,78769758,1106699219,74712066,65781803,1343125153,1342177720,-1694730497,321,16547459,-806812811,-293698814,-385649664,1822491334,1846971163,504772891,-385649648,104399542,57937948,-1207783959,-1873772504,-63707122,-16604695,721635894,882528448,-1962934265,931918942,-1309784437,65065732,-58817552,-161975296,18575366,1822493044,1846971163,-1593316581,378215272,1413159786,993817864,930416196,-1961662815,957573142,729548884,1144587647,-14387706,-1961739722,1418397252,77064,1375787651,-26032,116785152,1947208466,-2145011706,-1577316631,378213222,1413026664,958952712,594871876,97408,-828760715,-16777215,-15505354,-1928108490,-1924075962,-1873746874,34334734,-2080465943,1946218110,108953866,57966886,-1207855383,-1706033151,65535,55195391,-1705983957,1859,-101399,721635894,-6664000,-1962934017,931918942,-1309784437,65065732,71601136,105120665,-1995942893,1451876422,460104162,460199563,459937337,108812671,459802169,116806003,1946229616,460104010,460199563,1963480121,105134398,748763509,773229331,-497665773,92024191,1944077881,-58817754,-385649408,1150025216,-754667262,266633448,278660611,242615867,2088962419,58589700,-151133207,1946419780,-2144880572,-401698736,2122577958,57934076,-16701975,-15582666,-14980554,-1709479882]},{"sector":12,"data":[1742,185730806,-385649392,113705226,66200,1350576056,-202895728,-25865,-202833920,321691904,321787531,2095207993,956661572,1031200838,-1961138015,958097942,1964731926,1812347142,-1592560613,378213164,372839214,192224110,460064313,-2019949195,-16777211,-15520202,-1928123338,-1924075962,-1511399866,269197566,1212736554,1944995385,108953863,209027368,1342177720,389530,-22484736,-370260225,1187511588,-385875730,195099932,1222912528,200165001,-385646656,512490764,529207358,78772363,346154963,239155472,-169278595,-296812548,-200727,-15505354,-1928108490,-1202655674,971574902,775356414,741801747,1038936851,-1300987614,1954620221,-2128331284,641586548,-385649279,675151221,-85726847,1343125153,1342177720,-1694730497,1580,205260487,1599995905,-1962742397,1297948645,503317194,1430622296,-1910575989,183272408,35274371,-16026368,1996426358,163027466,1996423168,209125128,-1710590209,221,-1980348791,-6621098,-1593835265,378215272,1446583146,962491660,1500842566,-1961136991,958098966,1299516502,1963607609,440304456,1098121218,-1961662815,957573142,897322070,1178142079,-1959889398,1451952710,77068,1375787651,142016336,-1878624513,-9181170,-1962260853,19729494,14320384,-6664110,-352321281,172395338,-1980348885,922745414,1996427834,-159973384,-11485141,-15520202,-1206703050,-1706033144,65535,-11485141,1183709814,-6663940]},{"sector":13,"data":[50331903,-1996265466,1586232390,302394118,-1677327600,-2096658160,-443874579,-900899553,50337032,50341377,50358784,-16622080,50368768,-16641536,50369024,-16186368,50369280,-16169984,50369536,-16408064,50369792,-16449280,50370048,-16126208,50370304,-16173568,50370560,-16257024,50339584,-16507392,50340352,-16355584,50346752,-16722432,50347264,-16167168,50348544,-16249344,50348800,-16232704,50350336,-16617216,50356736,-16130048,50357504,-16406016,50361344,-16220928,50361600,-16308224,30208,0,1167087646,518818645,1183570062,-268425978,1947205693,536886545,4002164,1024554032,292831232,1085805291,-1207047424,149618736,-352316488,1095683,-1962742397,1297948645,503317194,1430622296,-1910575989,520023000,1430622296,-1910575989,-1561558568,1996445184,-401698810,-2037776486,1048837982,1962935988,109748485,-1264516117,-2114942202,1073874558,113710709,66032,31735427,-385649664,113705196,66020,191905411,-385649664,1048772815,1946157530,12970243,-1705983957,416,1023821451,1601445917,322792575,1028551712,1316233243,-1096715029,-62486272,58048523,1342220265,16777114,-129595136,200955529,-385649214,-11403116,-2037516170,1343684450,-1694730497,65535,-26032,1996423168,-25860,1072365568,-352272223,12755388,-996034581,-1582109952,-1377107770,-352270175,13279656,557687787,1039234080]},{"sector":14,"data":[-663478238,1950351933,1074085265,-2037520524,-11468958,748291702,-2097151997,130622,1016729716,184549379,-16288320,-385917258,-1923742338,1358914182,-10569985,434638480,1589543680,108282111,191891143,-2090991615,-443874579,-900899553,1478361090,-1957345904,-661774612,-955847549,64582,-1705983957,777,805731971,2122516084,443879430,191905411,-385649664,113705159,68464,31080067,-385649664,2122514615,628359178,956738721,276040262,956739233,141822534,956738209,225774150,722106111,244338880,-351959832,176063275,-14846976,-6681994,184549631,-15632960,28838518,1905938432,-956301310,130118,-1705983957,634,-1962248449,1344145478,503477944,108461904,16777114,-96040704,687747,-1398725004,172374278,-1365176204,172374278,-1432287116,172374278,1996426869,112650,-401698736,451609877,16547459,1996426100,1354771210,16777114,112640,-26032,1183514624,49120250,1562371467,445005,1167087646,518818645,113760398,66032,1342177720,16777114,-868318464,259325952,1346373048,-1696067952,-871970819,-2097151744,-443874579,-884122337,1167087646,518818645,-327034738,-11140962,244319862,-1979898392,-2080415098,439358,-1969158795,-1593578746,-259324236,425601,-2095680192,122942,113708917,66016,1342177720,204698,1883144960,1282736139,31080067,725972224,-6664000,-1929379585,1358915718,-1710852353,65535]},{"sector":15,"data":[-10189175,33439363,-1710197760,927,125157387,-10307841,1443075560,-9927027,1656160080,-401698561,113770032,68464,49120094,1562371467,182861,1167087646,518818645,-326903666,205949706,-1946794359,1183386182,138841080,-1946532215,1183385158,-163148292,-2095990109,130622,-6680460,184549631,-1207470656,-397410256,922682162,364381836,1347590400,-15829249,-16001994,-1710501322,65535,-1962742397,1297948645,503319242,1430622296,-1910575989,317490136,-1995326815,1183578694,408844,272455284,1023898625,1551106321,-1070901525,35428944,1187446784,-1929378820,1183445062,-297366034,-94467248,-1070909441,702544,-26032,1996423168,-59310322,384845453,-26032,1191116800,-96041988,-58817790,-1194820090,602603521,687747,1183516276,112501518,334217259,17464963,1996486261,1354771214,16777114,-2082936064,-443874579,-900899553,1478361098,-1957345904,-661774612,-1961563005,100861510,1183390552,28353016,2130200121,-373282043,1183514872,1088475640,-1191557495,1861681161,-31178504,1106923147,67035520,-128545855,-489486415,1183433219,-399048708,1085820937,-6664192,184549631,-2096204352,1963001470,-2012821572,-352059391,-129594444,-523040847,-1578350967,608178170,-163149314,1090143883,1183448612,637172,458764023,-1979833280,922743366,1183519172,-196738068,166200835,1343341731,-1695385857,1331,461649663,65816203,-1559631866,-11527292]},{"sector":16,"data":[-6621578,-956301057,61510,-1995324255,837545542,958093473,461172806,-940679541,2147418695,-1578213749,243997564,-506389672,-1054088751,-1962653815,1204219486,1191182088,-297368592,-129594615,2096121401,458793927,-1543879029,-6680582,-1207959297,-310181887,535137026,46812509,-1873273344,-326412987,-2082959842,1048773868,1962941268,4372505,67156048,98343504,1419968512,1975520027,112645,-1070913045,-26032,3997696,-1206226172,-1202716670,-1706032128,65535,201082505,1356494016,16777114,-2084558080,-443874579,-884122337,1167087646,518818645,-326903666,-950642926,62534,425603,1187448693,-352319752,-129579259,1183514624,-230258184,958093473,1702752838,-150992456,100923502,1183388100,-263796754,1183580159,-163149320,1586180587,71797742,461112875,-62486200,972048011,343407686,972310155,209124422,-1979955573,1183576134,-96040458,-2081011969,-1593184698,1178147672,-1194885898,1861681161,-1947169798,-166607842,1963001408,458793243,2113029689,32153914,1963345465,-96040186,-1961987421,669776454,-150992456,-125044114,298065547,184709515,1443394806,16777114,-1949635840,1183445062,-230227980,1593790953,49120095,1562371467,182861,-2081649835,922682092,-6682998,-1996488703,1996488262,-26108,2122514432,225771774,109721343,1342177720,486810,-1976107264,1354771206,1342305464,1347469355,16777114,109617920,1924674283,726670859,1347440832]},{"sector":17,"data":[1342177720,16777114,1958742784,-29457637,343146497,504066744,-26032,1924661248,-1706025461,65535,33439363,-2084080384,1962999422,-1976107252,1354771206,498586,1575324416,503317186,1430622296,-1910575989,112107992,1946699321,-1449504746,184549383,-15960896,-16339402,-1181088138,-1593835513,1178142380,1343648776,16777114,1958742784,-1405681908,108461830,135066,111845632,1946699321,-1952821226,184549383,-15960896,-16340426,-476445066,-16777209,-16348618,161089142,-2097151993,-443874579,-900899553,50339076,50787841,50358272,50803969,50359552,50809345,50360576,50811905,50360832,17151489,50332928,17090305,50333184,17164545,50333440,-16604928,50370816,-16515584,50371072,-16334592,50371328,-16414976,50371584,17156609,50334976,-16490240,50371840,-16507392,50372096,50475265,50331904,16832769,50336256,16844289,50336512,16840705,50336768,50797825,50334208,-16442368,50342912,-16732160,50348288,50845441,50340352,50785025,50340608,50841345,50343680,-16712192,50354688,50418433,50380800,-16693504,50358272,50578433,50353920,50605569,23552,0,1167087646,518818645,-327034738,-1588198528,-2037837382,101055700,-628717312,-695810307,1183514876,408844,-1259797643,605441,-1729559691,17841409,289213300,-385649407,-1746337348,1354771201,16777114,-727807232]}]],[[{"sector":1,"data":[-729381892,1319174908,-1962440421,-2080582498,50123910,-1995463007,-727807225,254059004,-55048311,726670850,-1924116288,385668742,-561607344,-1202710787,-1706032896,278,-2037858262,-2037842212,-2037514531,-2037776930,-1634992676,1065418204,-2091944704,1789502,-236387467,608076544,57999375,-1929320471,1358880390,458104459,512440319,939462436,-16470552,62393974,230182912,-4698108,-2037559041,1343684318,92826,2110917376,11004163,-385875528,-55050077,-1957683710,519953542,-695825072,-1924131076,385669766,16824400,55417424,-2033844224,-2147418663,16571070,-2037554316,-1924072230,1358745734,1358710413,221338,-830043904,-863582212,-352321284,-561607366,-1224781570,-1224737316,736689360,242679556,1342178232,1342439864,-1924087765,385801862,37460560,-1224802304,-879035184,16777218,-208762,-1946366842,972869254,2096942214,-593589316,-595132419,4161789,166265717,737078271,1958742976,112645,-1070923029,-36004213,-1073018999,1996428661,112654,39492176,726663168,1671057600,-1207959550,-1477902335,176063235,-16157696,-1710111178,928,-1813397461,176063235,-1962511360,-1264382394,37651206,-395051006,-1710590209,65535,-2033721621,64722,1024083595,510918657,1962934845,53340419,1962935101,142508995,-1207601919,48955393,-2037792725,1996487890,243726,67745872,1354771280,-1046851504,-1996488702,1090312326,-1635046283,1065614810,-385649408]},{"sector":2,"data":[1996488565,112654,42834512,726663168,-1751494464,-1962934270,-939664738,-385875961,-1098645675,1946221778,-627143891,4162557,1122567028,242679807,1342177720,16777114,28856320,-6664192,-1962934017,-939664738,-385875705,-6619359,-16776961,62393974,179851264,-1224781820,-2037515048,1343684318,16777114,-561607424,2073710846,-1962934269,-578646544,-796489218,-16454660,-1946365810,-2130915170,1965096831,-561607182,-930706946,167688444,1292368,-26032,-1224802304,548994248,-6664192,-1996488449,201115782,-385649216,-1202716527,-1605367297,-467006978,-26032,-1073020928,-1635025548,130481352,50116608,-2037559266,1343684318,-53049715,-2037559274,1343683802,1342243000,16777114,-628716288,-2037559044,-1924072248,-1705968570,65535,-53174645,958090913,1342600199,250010,-561607424,-660975362,1073741827,-775804007,-897152520,-6663940,-1560280833,1967135566,1309067033,-16777189,-1709487050,65535,-16662551,-369309562,-2037514416,-1957626146,-14987746,-893976777,-25860,-1635057664,-1499333420,38222095,-1706031500,65535,-1694730497,65535,-1037330112,-2037778223,-1705968438,1075,1074767523,113707125,4006,1996464619,-1507947524,-13107441,-1694709066,1109,-53174645,957293729,108266567,85629520,-1224802304,1771764944,1073741828,-775804007,-897152520,-1952820996,-1560281085,1967132452,604423945,-385875953,-1224736939,512490704,939462436]},{"sector":3,"data":[-53823745,245402,13547520,-59310256,-58685811,-59310256,364954,-1706014720,1146,374864,93887056,-2037579776,1343683712,16777114,-1031370496,2113020,37557367,-385649408,414776633,-979742688,-385875964,-1224737491,-742851390,-1706025472,65535,-54229367,-54094199,360038923,1344280760,16777114,-1028194560,83794684,-18284544,1278672892,30972443,1996423168,-1028194546,-561607172,-1957685506,519884934,-996212912,1975520252,-1028194548,84581116,-672595968,-1028194308,-25860,-1635057664,-2038170412,-16581420,86678071,-1635057664,-2038170412,-16581420,87398967,-1635057664,939523284,225690,268879616,-352321534,-727807195,-729381892,126550780,-1961144669,-2080582498,50123910,-1499265141,-727807217,-1559786500,1996427044,1354771214,16777114,-61609728,49120094,1562371467,707149,-2081649835,-11140372,1996424822,108461832,378266,-1706014720,1463,-21434229,330846217,-90550272,-1207959550,1448086015,705298080,-879079196,-1962934267,74907632,74907478,95130,-6664192,1442840831,1343266488,16777114,1958742784,-1978799340,1357130244,16777114,1174702080,1962949760,-443851026,403096157,-452984064,-1996423419,436273920,117440772,1224737536,-1711210752,1828717312,-1660879099,-637533440,-1627324668,889193216,-1610547455,570426112,-1593770237,-1493171456,-1576993019,-1493171456,-1560215806,-721419520,-1543438587,1879048960,738262788]},{"sector":4,"data":[-1627389184,771817220,134218496,939589380,-1023343872,570426113,-1342110976,838861060,-1946090752,973078784,587203328,1526791940,-134151424,1191183105,117441280,1862336259,-2063531264,1593835780,-838794496,1610612996,-1174338816,1526727425,-402652416,-2113863933,-385809664,1694499584,0,0,1167087646,518818645,-326903666,1183536722,408844,-924253323,605440,-1394015371,1064192,803799925,17841410,289213300,-385649407,-1545011000,1354771200,218522,572427008,-1205892337,787939350,-259321286,-1995161461,-1072956858,115934069,-1948742910,-330921721,83642055,-329348352,1183385483,1975520234,32237827,-1980742003,1183706694,1996443886,1354771434,1342180024,247962,242679552,-1912834305,1343680582,163994,242679552,100419211,-1957691380,1200286814,1007100930,-1207601917,48955393,-1705983957,658,82593411,-335788289,176063388,-16157696,-1710111178,65535,401195051,176063234,-1962511360,-1264382394,37651206,-395051006,-1710590209,65535,1183571691,77066,1996495421,-1816132653,-1079509202,-1236890366,1354771280,1342184120,16777114,-431584000,-944486775,326726,268205699,-1763114114,-1371108096,242679632,-1694730497,65535,158711819,191891143,317259776,-1367440639,-2096728833,1962978942,-62456059,1183697643,-1337554506,-1951375733,-1304000249,477413387,1957578297,-1371129372,-1957482125,263619,-1270445232,-1705983189,65535]},{"sector":5,"data":[-1951375733,126463558,-1961986305,201718854,-1466281984,184549378,-1341492032,-2096567545,-352014266,738504883,-1962466300,1334489182,-119439358,1200144650,-1198331134,-11534302,722614838,1347440832,-18352,1347590480,726684313,-6664000,-1962934017,-1961942498,1488927,305802999,1082912907,-96040684,611696651,1342184120,16777114,-96040704,-1958382528,-1961942498,1488927,305802999,1183576203,339773946,1354122893,-369013,1751095,-26032,512425984,529207074,-150989128,-1961739730,105414896,-1643723006,-1694499070,65535,722368255,-6664000,-1207959297,-1880555519,-62470400,2122514436,-276885508,-15829249,-558302090,-1706025472,912,-1961986305,201718854,-1070903296,45718096,1191116800,-2888708,1996426870,242679562,-1710590209,65535,91602955,-352321096,1354771202,16777114,296020736,1761761281,-603923454,-603923456,-603923456,-603923456,-603923456,-603923456,-1694328064,-1694328062,-1694328062,-1694328062,-1694328062,-1694328062,-9705214,49120094,1562371467,707149,1167087646,518818645,-326903666,-1957275850,-1961942498,1488927,305802999,1099692171,-263812852,-1980610931,1183575622,408844,1206453109,605441,736691061,17841409,289213300,-385649407,719913295,1354771201,16777114,-260144384,-1207601920,99290932,-1947181429,-2081387769,1962870396,108330795,1357792909,16777114,-956790016,-16715197,62393974,1183666176,-1706027278]},{"sector":6,"data":[937,-1980610931,300674630,-1207011585,-1202716669,1344143583,252314,242679552,1342178232,16777114,-297366272,208994128,-1202667477,-1706033142,65535,-1207011585,-1924136956,1343681094,16777114,-230257408,-1913764215,-1957630394,1143669828,205794062,1354771280,1342180024,271258,242679552,1342178744,384976525,70556240,1183645696,-297367054,1357792909,721974527,179851456,1419399168,-16777212,112725622,1183666176,-1706027278,1125,-1980610931,1183706694,1149980910,172239618,1342719019,-1202667477,-1706033142,141,-1207011585,-1924136953,1343681094,40346,20310272,687747,922683764,-660991546,721420288,55830976,687747,1183516276,112501518,33701507,-1543168,-124122506,-352321536,172395486,1946157373,146698,401146741,-1915950333,-11477946,62393974,28856320,-4698112,28856447,179851264,-6664160,184549631,-955681344,749574,12970240,48905859,-1589873664,1183387654,1354771426,722417825,722470406,1342827014,333466,-465139456,-1995407711,-1070864826,255238480,276694571,167511595,-26032,1183383552,722398184,-398030400,-1981397367,1183441990,-532232222,2122514432,1954350304,-773816693,-767324697,242679632,98584203,-1706033148,65535,58048523,-1946190615,-405675906,1166802179,460242,2111980859,242679614,-1935617,1996481654,-394854426,16777114,242679552,98584203,-1706033148,1647,-1961986305]},{"sector":7,"data":[67493958,-2053484544,1342177286,428954,112640,-16634647,-2031361978,15761027,867711349,379211776,-1996488697,1967190086,33614083,1343173816,-1024373,3389495,37132880,512425984,529207074,-150989128,-1961739730,-263812104,-1962131063,931917918,-1982708083,1150020166,47197444,-1948367223,-1607663036,-632911611,-1947574645,-330921721,2145273403,-364477639,-362902782,1174472587,-565802004,2146190905,-364477659,-362902782,1183385483,-632931348,1182995583,1586168554,17271786,1183575110,-330941990,230179966,-6664160,-956301057,749574,242679552,736773771,3016133,67500241,-1248178176,-16777213,1183518326,96807914,-120520658,1342178309,16777114,-6664192,-385875713,1150025193,-599377658,1149972341,-767149812,1149970293,-767153404,1003767339,427101764,956843147,292935238,721568907,1177278022,172243928,-68615307,1751040,976682832,1354771218,-1202696112,-1722744833,1385779282,1354771280,124826,-262239488,1149974411,-599377658,-1947663499,572427008,1488911,305802999,-661975157,2139871491,1979648784,2144311,34183760,-125108224,-1710721728,65535,-1946256663,38258461,495648778,67527,211885451,236358407,105351431,-1962387575,931917918,-1982052725,1187448388,-1962934064,-1995994339,93048390,-1996487675,317442630,-1949671797,1191173190,-16283172,1183043654,1183516362,-800704050,113763964,-65100,-1962654581,1284100686,734079756]},{"sector":8,"data":[1149883462,38046478,-1982443893,-1054144436,-1982314965,113707588,-58490,152730,572427008,-1205892337,787939350,-125103558,33966464,-1207011585,-1706033151,607,1593691881,49120095,1562371467,420137549,1023410944,-1711210752,-872414464,-1660879097,-117439744,-1644101885,1996489472,-1627324668,-452984064,604045062,-2013265152,-1526661371,2030043904,-1509884157,536871680,637599495,-1392508160,-1493106937,1073742592,-1476329727,2030043904,-1459552507,1275069184,-1442775291,-117439744,-1425998076,-1946156288,738262785,-889191680,-1409220860,1392509696,771817222,-1660878080,369099525,-771751168,939589381,486540032,956366593,-1761541376,1191183108,-1761541376,1526727429,167838464,1543504644,-1073675520,1627390720,-1560214784,1644167937,-1224736000,-2113863931,0,0,1167087646,518818645,-326903666,1183667822,-129594916,-1705983957,65535,58048523,-1929298967,-1705994682,65535,-1961136991,-1994691050,1451874374,1745783770,1780386587,-229734117,737435273,-1982653503,1451883078,321692156,321787531,2094683705,956661579,1148639302,1342177976,305805055,-755969,1996485238,-92864516,1358954424,-1957670247,1452014150,142844,1375787651,1354771280,52634,976682752,775356178,741801747,-26093,703266816,1342177976,305805055,-755969,1996485238,-92864516,1358954424,-11513191,1996487798,1354771450,16777114,-230257920,-1544268149,378084200,1183521642]},{"sector":9,"data":[-631862312,-1994691421,-954503658,37446,43155075,1586191231,-1948003950,9111158,1089881737,1183529076,1958742930,81164,37564788,-348949504,-1807300859,1183645697,1183666422,45633697,-6664192,-1979711233,1183355974,-1605988960,-26032,1191116800,-944903278,234566,1187501291,-352320876,-1773761075,112720,-26032,-2090991616,-443874579,-900899553,1478361090,-1957345904,-661774612,-955978621,167771206,1358710413,-16222465,179832438,-6664192,-1577058049,-310179330,535137026,80366941,-1873273344,-326412987,-2082959842,-1957291284,104664134,-385649408,154992785,1031304192,57999376,1023493353,175374608,1963004221,9758979,-1070894869,-26032,1183645696,-6663960,-956301057,58950,-150993992,-259266962,2088826115,544538864,-1149697,-1878860746,-10033138,-1961986305,50718278,-4698112,-1706025463,65535,-2082060545,2080630398,242679751,1342178232,16777114,112640,-2097093655,1946159742,-969474295,-26095,-1070923776,-2097098775,1946159742,239504134,-2096712541,131646,1996482676,-26102,-555024384,1024083595,175374337,1962934845,9693443,-1028076309,1996443663,243726,1354771280,-1995488607,-1202652602,-1202716654,-1706024949,724,141934603,191891143,-1981087744,264388227,-955812353,64582,-1029633813,-1982269681,-994509754,1996443663,309262,-59310256,-1191545089,-1202716654,-1706024949,758,-1066090485,1343211192]},{"sector":10,"data":[-1207011585,726663173,1996443840,1227002,537638992,-26032,-1073020928,-1028088204,244338703,-198168,28839542,-6664192,-385875713,-2090926313,-443874579,-900899553,50335754,-16656896,50371072,-16576768,50371840,-16676096,50372096,-16630272,50372352,-16740096,50340864,-16635648,50373888,-16735744,50341632,-16771072,50341888,-16700672,50342912,-16608256,50375936,-16654592,50376192,-16688640,50376448,-16696832,50376704,-16766976,50376960,50486785,50349824,50467841,23552,0,0,0,1167087646,518818645,-326903666,-129594104,-15615325,-1207530442,1385758725,-1976107184,943128326,909573907,-26093,-12779520,1025078527,494206977,16777114,976682752,112658,-26032,166395904,1346372280,16777114,49120000,1562371467,1478413133,-1957345904,-661774612,1444080771,-1995326815,1077999174,-1577302391,67441082,-96040704,1024214667,57999366,1023475433,57999369,1023468265,192151824,1963004221,17230083,-16719383,179834486,-491237376,-1706025472,65535,34225795,-1959693312,130545246,1996423175,571406,-1707671728,112653,15112784,1996423168,636942,2050424656,112667,-26032,132841472,-940155253,-956299769,522310,48905859,-14453760,-1207523274,-1202716664,-1924136958,1343682630,1347469355,16777114,1958742784,112645,-1070923029,-1980080501,1958742791,242679575]},{"sector":11,"data":[1342180280,-1577296245,126419446,23501392,367722496,-1207011585,-1706033141,65535,1354771280,16777114,242679552,-631157,112695,46176848,-1070923776,-26032,-2065104896,176063232,-16157696,-1710111178,65535,-1544962005,176063233,-1962511360,-1264382394,37651206,-395051006,-1710590209,65535,1183571691,77066,1996491325,-1816132653,329776942,-161576189,1963409283,112645,-1070923029,200558217,-1923844928,-11472826,146280054,28856320,-4698112,28856447,179851264,463097888,184549378,-955484736,749574,112640,-1929302551,-11473338,163057270,28856320,-4698112,28856447,179851264,-6664160,184549631,-1915718464,-11472314,179834486,28856320,-4698112,28856447,179851264,-1070903264,-6664112,184549631,-1951894336,1065613918,-1962445824,126614622,-1070923029,-1962805597,178517062,1958742786,-263812340,-1962042717,2057563718,-230257893,-16642909,1996426870,-26102,1894318080,142508543,57934592,-69143,246941302,-1070903296,-1706012592,65535,58049035,-1946202391,931919454,1963458179,-12457725,1443788543,-1705983957,725,-1961986305,129562206,1342671104,1342177720,190618,-14817024,-1961986305,939521630,-1705983957,65535,-1961986305,1183577694,-2692342,1996426870,-60912886,1962950531,112645,-1070923029,-1979949429,-1178539257,-2080212223,-2080275455,-603792383,-1996322558,-150895614,-20059902,49120094]},{"sector":12,"data":[1562371467,707149,1167087646,518818645,-326903666,2122536482,376700940,-1962476383,-1996030442,1451882054,117481976,117577355,77665515,102140679,-163149561,-1577560439,378210056,1183385354,-61437446,469124651,-770967466,32047997,1023966978,58130434,-956172311,62022,15222471,-364460288,922681344,-6680006,-1996488449,1451879494,976682990,-126419182,-1695123713,65535,-1593155957,126422456,1979711293,173968135,67527,305805055,-493825,-6621578,-167771905,134943238,1586169205,-1593311478,103484862,-11530234,-15697866,-1710626250,1054,-2081143159,1946160254,230990103,276694571,-2009661616,-63504624,89561609,48955392,1183432747,375024,-1310308727,1356911363,16777114,140413696,1967130505,140413708,1991,1441382443,-93420799,-60914942,-96040192,972838539,58652758,2080424937,-163170040,-1175911566,976682752,-126419182,-624897,1996483190,-327745554,1342177720,16777114,-264338688,-1200291839,971392651,494727750,-16228725,-431586505,-431584507,-523041871,1354771280,16777114,1958742784,140413843,931864459,-899445,78770758,-268181293,-1946794357,76150870,-1962781559,1149889094,-196703484,57148931,-1962523511,100922438,1149829996,-263812342,-1962392439,100921414,1149830004,1681818380,108920835,-1980610933,1487005766,1511426819,-163149565,-1577560439,1183384412,57975274,-370129407,2122579759,1416953868,15236739]},{"sector":13,"data":[1586187902,-1960867064,-398030025,-523041615,50335789,231121392,276694571,-2009661616,-63504624,-26103,1143668736,-498693876,-1981266293,317447750,31606411,1183516740,205783522,-2082582785,2122518766,-394329890,-1962516853,126478406,1586173419,-16267510,140413951,1991,-955883893,-1207959545,-2090991615,-443874579,-900899553,50337800,50503681,50360064,-16683520,50371072,-16612864,50371840,-16678912,50372352,-16523520,50339584,-16651520,50375680,-16756480,50343424,-16532480,50377216,-16628992,50377472,-16759296,50377728,-16762624,50377984,-16766464,50378240,33625345,50341376,50418945,50340352,-16537856,50350080,-16481024,50357504,50438145,50349824,-16515072,50359296,50416641,50354944,50376705,50355200,50385409,50355712,50413057,50356480,-16501504,50364928,-16470784,33536,1167087646,518818645,-326903666,-230257394,-15615325,-1207530442,1385758727,-1976107184,-1640562938,-1674117359,-26095,-12779520,-385649153,20775066,-385649664,1587151003,-2097151998,127038,-1930886284,-130120960,980680705,1343973560,1358186125,1342180024,16777114,2799616,976682832,1354771218,976682832,-26094,1347551232,1358954424,-1722789223,-1070903214,-26032,922681344,-1070919110,-26032,1048772608,1946157560,238977848,829685762,16777114,33200640,1996423168,-193527818,-362753,379254902]},{"sector":14,"data":[-956301310,16915462,-26112,166395904,1346372280,153498,49120000,1562371467,1478413133,-1957345904,-661774612,-1593512829,1183388090,205949948,1946158653,605510,272445044,1023898625,1416888593,-1070910997,-26032,1996423168,243726,-60912816,-1996359519,-6664185,-1207959297,2095775745,687747,922683764,1301942726,721420291,-2090210368,1946159742,239504134,-2096712541,131646,1996482932,64330250,-538247168,1024083595,208928769,1946157629,212246,-873783692,-1207011585,-1706033149,65535,-16648029,1996426870,-26102,-1679097856,-1207011585,-1957691389,1065614430,-1207601920,48955393,1586217003,-8918532,-1962742397,1297948645,503319242,1430622296,-1910575989,149717976,297443670,-506231,-1961739722,73370584,-472709967,881586315,9122955,-1996337013,1451883078,-1202695428,1385758721,1347590480,227994,-26112,1996423168,-92864516,-231681,96008822,697978880,1375731715,53516880,1996423168,-92864516,211866,-264338688,141819905,34473671,1223360513,109852415,-1728050760,922701906,922683018,922685630,-6680388,1073742079,330828661,-6664160,-352321281,-25905,-6684672,-2097151745,127038,1586216565,176129016,-1207601920,48955393,-2090942421,-443874579,-884122337,1167087646,518818645,-326903666,-1957275894,-1961772490,104664134,-385649408,154992920,-385649408,272433297,-385649408,272433448,1026716673,57934097]},{"sector":15,"data":[-1962862871,20777542,-385649408,37552405,-385649408,87884040,1023898624,410255366,2088984043,192217348,197018,112640,-16674071,317391948,956449931,125109316,16777114,-13047040,1552614468,-754667260,-1958966301,-1962833091,1183384145,-61437446,1347571794,1342178744,16777114,-1706012160,952,-231681,-6620554,-2097151745,1962936958,9562371,298202879,16777114,8775936,-1705983957,65535,305805055,-1325245301,-1948003580,-12743876,838795889,-1728052808,1385779282,-26032,1552613376,-1205892346,1828126726,-1946645752,1452014150,67068,-1996434813,1367934529,73173768,-472709967,1032535179,1368064395,-96040702,1392268937,-1706012080,65535,2122547691,108265482,-1559345525,1048774324,1946157570,175570696,16777114,-373282048,1153892519,-16776950,-1207530954,-1706033151,1027,722368255,1234849984,-16777210,721848886,1050300608,-956301306,439302,-969474304,99850769,2088960000,-2123038710,956449931,58000452,-956336407,-15927738,-1961739722,78709852,1015800787,25902475,-2097000053,1367539969,1183383554,-61437446,-6664110,-16776961,-15582666,1996487798,-163148294,112720,1354771280,-1961129823,958106134,57998422,973004265,57997894,-1191258647,-773256446,-2090901762,-443874579,-900899553,1478361098,-1957345904,-661774612,-1593512829,1183388090,976683004,105286418,84432523,-763166719,-1202695680,1385758721,1347590480]},{"sector":16,"data":[361626,11442688,1996423168,108461832,-1962522997,17107030,13796096,-1785049006,-16777211,1996425334,35756550,1048772608,1946157552,235325193,-385875710,922681513,179832460,1347590400,109721343,324810495,324679423,150426,192233472,1344279480,54682,-1697715456,611,16282,-264338688,-1116405759,-2080612725,1962936959,209683288,-14584832,-15582666,1996425334,112646,-1202695527,726695935,1347440832,-26032,837484544,305805055,-1962522997,17107030,13796096,28856402,1347590400,-1706012007,501,-16222465,1996424822,108461832,49050,-60912896,688003,28837237,721611520,49120192,1562371467,313933,1167087646,518818645,-326903666,297443588,-1946401143,104664134,1026388992,343146505,1946161213,17841492,-2014772363,17906944,267072372,687747,922683764,1687818694,721420294,8776128,687747,1183516276,112501518,33701507,-1543168,1520044662,-352321535,172395486,1946157373,146764,71108468,-347311104,-60912694,17450951,-1976107264,112646,106273360,1996423168,1354771214,16777114,-1976107264,1354771206,16777114,-1274624256,-16777210,-1710111178,315,-352321096,-60912876,804807,-1950422272,1204288606,-352321268,49120180,1562371467,470469197,251659008,-1845428478,-369097984,-1744765180,301990656,-1711210751,-1979710720,-1660879103,-1056963840,503381764,301990656,-1627324668,1325400832]},{"sector":17,"data":[520158980,671089408,-1560215803,-1979710720,604045056,-905968896,637599488,1627390720,738262784,553648896,771817221,-1778384128,-1275003136,754975488,-1258225915,704643840,-1241448704,-385875200,-1224671486,-1459617024,-1207894272,-973077760,1107361540,-335478016,570426115,1979712256,1208024832,1644167936,1275133701,-553647360,1644232452,318833408,1191183110,1476395776,1761672963,352387840,1459618565,-150928640,1476395779,654377728,1627390721,2080441088,1644167937,0,1167087646,518818645,1996478606,142016266,721843967,-4697920,28856447,179851264,-1070903264,244338768,-2097092120,-443874579,-900899553,1478361094,-1957345904,-661774612,-15567105,1996427382,209125134,-16091393,1996425334,1354771206,-401698736,-310181706,535137026,248139101,-1873273344,-326412987,-2585058,1996425846,108461832,-1202667477,-1202683905,-1202716671,-1202708468,-11534335,-1878860746,8185870,-1962742397,1297948645,503318218,1430622296,-1910575989,175570904,-16222465,-1070922122,2147465296,1226832,537704528,112720,-600375472,-401698814,-310181822,535137026,113921373,-1873273344,-326412987,-2585058,1996427894,242679568,-15960321,1996425846,108461832,1342177720,47986431,199757456,49120000,1562371467,969293,1167087646,518818645,-326903666,1187468854,-956301102,120390,-15436033,1183650422,-1202710821,-1706033121,65535,-153467256,1946291270,1975519761,375294733]}],[{"sector":1,"data":[-63545,-385875272,1183646132,-733574693,34359030,1190540148,762581004,30426823,-732001536,1946173312,-733544691,1948270464,-800667664,2122514432,225771984,-954835317,-1191182585,1978204176,-616133375,-1965799799,-466953658,1183576203,-1983511596,2122579014,309592072,-1927907585,1448139590,-1710852353,65535,1996428267,-733573866,-59310256,1355957901,-1914171760,-666466047,556675,-1645673612,205977088,-385649400,45613204,375294720,126431223,-150994248,1183387758,178192,-1995542793,2122518086,1920270552,972834443,1786041414,-2133565813,1651846719,-1949022465,1183437894,-96039430,-59310256,-437776752,1958742784,-666450169,1122697217,972834443,745854022,-2133565813,611661119,-1915468033,-11479994,244382838,184597480,-1961790272,134157918,30951111,-700004608,250281992,970213003,108460614,-1980086645,2122568774,443810008,13794947,1586173045,959941398,176099446,2081322553,-700019963,2122542315,74711256,149667883,735331979,2426309,-942913911,2147469894,556675,196609396,-1207702752,1183391752,-662797362,-1962511360,1183386182,343343054,-1206749441,726664193,1451970752,-867791926,-6664110,-16776961,1996428406,-26094,-1706033152,65535,-1697745153,65535,-2090942421,-443874579,-900899553,1478361106,-1957345904,-661774612,-1962480509,126552158,-1946401143,1178142278,-1960741892,126549086,1023035016,1006924848,-16419552,-471073722,-1962385781]},{"sector":2,"data":[126483526,65781803,-2097151560,-443874579,-900899553,1478361092,-1957345904,-661774612,-1961956221,126552670,-940161399,62022,16402119,-196688128,1187446784,-1962934020,130483806,-1830223872,106859264,1946173315,9496835,956843659,57865798,-1962899991,126547550,1183441962,2113016,1191118197,-1956058122,-1072956346,20778100,1025274880,829685762,2122536427,141897208,32655047,-163119360,33310407,-12522752,161151094,184549380,-955812672,195654,1187458539,-352321036,-126419162,16777114,1958742784,702701,66744055,808319046,-96040704,-1703034869,-955883893,-2097151737,1962996862,-10098429,-1962254709,126481990,15892099,1183516532,-338102278,-96040189,-1995678069,-193035513,-1207601920,48955393,-310132693,535137026,147475805,-1873273344,-326412987,-2585058,-1710838730,1169,208977931,111949567,-1710852353,1185,112080639,305818,1958742784,-1372127476,108461830,309914,-1439236352,-26106,-1073020928,922684532,1996424874,-26106,-310181888,535137026,46812509,-1873273344,-326412987,-2082959842,1187448556,-956301060,2147482182,-16222465,28837494,-1070903292,2147465808,-275099566,-2097151998,-443874579,-900899553,1478361092,-1957345904,-661774612,1024214667,829685766,1946159421,17841433,289212276,-348163071,1354771228,1021841040,112895,2122536171,158597130,298202879,388762,-339727616,176063297,-1962511360,-1264382394]},{"sector":3,"data":[37651206,-378273790,-1710590209,65535,1183571947,81162,37602162,1024095744,-1183711226,1996490557,242679732,-1878362369,4122638,-310138901,535137026,181030237,-1873273344,-326412987,-1697083874,65535,-15698177,1996426870,175570700,-16222465,-6683018,-2097151745,-443874579,-900899553,1478361100,-1957345904,-661774612,-15799165,1996425334,-26106,28835840,244338688,-939620632,439302,1278672640,-26085,-310181888,535137026,80366941,196622,16713021,196767,16713116,196771,16712456,16973870,197376,196630,16712128,196793,16712687,16974010,197768,16973858,197752,16973871,197980,16973895,198067,16973911,198102,16973912,197370,16973915,196924,16973917,197875,101,1167087646,518818645,-326903666,-1202301098,1861681208,-2114417910,-1995437881,1166791294,-632911566,-1995815541,1166795334,-733574906,14698183,-398014976,2118025984,92012547,-352321096,-1983894782,1187511366,-1962934042,931870301,-1324857717,65065732,459710960,1963476537,-1878604020,-956301310,-16608762,57188863,-1324358528,-1948200188,-511638964,-1056243697,-1593686903,1149829996,55746826,55842443,-1996077943,1183385684,-564753956,-1962714975,-1996269034,1451882566,-599380998,-1593555831,1149830004,-330921716,-2013047136,1183514948,-94991368,1977505337,-599377655,-5241739,1621099499,-2147186685,-1962868148]},{"sector":4,"data":[-81526204,57675403,123265,-506338863,1149878539,-1946344446,-2130484722,-788528671,-1983837215,2122515012,141885448,-1949147509,65736263,-1979825013,1174656582,239372780,56376963,-1207602176,48955393,19251243,-834238208,604128395,-833188873,-489487439,1149878795,-830569726,-2096598016,-2097022906,-2097087914,-16554434,1996431221,1354771418,-2722049,1996477558,-1707671572,-1741226234,37526022,703135744,-129594617,972707467,141942358,1977370169,9103619,185730806,-385649649,512426112,529207074,-150989128,-1962711506,276333552,-1586793472,104405878,645202790,-1962213727,957022230,444594774,1178142076,-1592559624,378211934,1446579808,2082373626,-129615611,922687351,1183515494,-94991368,-2097151699,1347551450,16777114,241082624,241178251,2145277497,956660761,309845062,57687680,-2096663552,218686,1187382389,1048624104,1962935152,108954374,-14650368,-1070867850,-696844464,278673151,-1280257,-16344522,-1710843850,763,-1710877463,65535,111296131,-1709607680,65535,735737599,1996443840,-733574186,278660651,-16848560,956736673,142595142,956737185,1518267462,111427203,-2096663296,435774,922686324,922683042,-828764776,1342177282,16777114,-733574400,1342612643,-1544796533,-1202714970,1347420161,1347469355,16777114,-834238208,175489035,-1499217877,111452934,922716651,1996424866,-25906,922681344,922683042,-1070919524,-730398896]},{"sector":5,"data":[971798271,1946590214,110665993,110761611,1656227563,16759296,-6664110,-2147483393,221758,1587610996,-1593578749,1183384420,-65106958,-1995994353,1755437126,-498717949,278660611,-196703936,16547459,-1070922636,1923154923,-163149565,15353543,-230257920,2095728185,40691971,-1965531509,-467007417,-1983101303,1200286278,-364510967,972179083,58649158,-1947580791,1177283142,-901346868,1187510411,-1962934032,-422458250,58902145,28116203,-947130298,2143292239,-260144139,-385646848,1183515019,92276172,-3914103,-16554442,-1070868362,-26032,1586167808,71825368,393543424,-1325119605,1021891336,-1593478272,166398438,-150346079,721611736,-330396736,237750315,237699962,1317604954,-1573453842,-159973626,1342177720,279962,-1035548928,501809152,1879504641,1979645955,8579331,63719051,145869382,244048083,-511704222,1992375040,56860781,-259267542,63719051,-125058490,1517813307,-1983756661,-29639098,922689909,1191118498,-159973386,1342177720,317594,-901346560,-1983756757,1183563846,-1609831478,-467008669,-1983101397,1183432774,-1065448510,15746759,-864646400,-776047101,-2100919834,1338477315,259964939,-263847507,1183577067,-1069119030,-2084419959,2113978494,-1000436898,-467007606,1962934589,8710403,1946158397,605567,1586185589,-1948003892,17007239,2122576966,561250556,956530337,427609158,111294207,-1996262751,-1202653626,-1706033151,65535,16533191]},{"sector":6,"data":[-866219264,-2020875311,1177092994,-1001979920,-4174081,-16342474,1996485750,-1002009618,1996443678,93100736,1183514624,-196738576,29378187,1183564870,-1035585078,-655817859,-666467330,-32118518,-136814965,1073742407,1586217332,20938948,116795509,1963003913,151451143,443810320,1342832568,242759423,-1202667477,-1202716664,-1706032897,65535,-4714005,146296841,-4698112,-6664192,-1577058049,922683902,1996424866,-294191116,503971768,167682128,-1705974742,65535,-775135605,-2105046045,-263837437,-3383669,-472789946,58886027,-768511,1325384774,-19142208,263063239,1252065280,172374275,-907476108,-765555967,704989066,-1341768732,-385649397,1048773048,1946157894,28240131,-1961136991,958098966,58646102,2080481257,-599377656,-1779891338,459841793,459937419,2113558073,25618691,1178142847,-385649672,1755382140,1779862299,-564774629,92219004,1927038521,460103967,460199563,2147112505,956660755,209188934,-1996265311,1822536774,9890051,-1961138015,958097942,679475798,1178142076,-1591642120,378215276,1446583150,-385649414,1178140968,-385649416,1048772896,1962934810,18278659,-2197761,922737782,922688362,-6677656,-1996488449,1451863622,-92864592,-493825,-14979530,-1709478858,65535,-1985329527,1183558742,-599381074,-1438217392,1353598507,1353991821,-286781808,-263812863,65173131,-1962709962,-133974914,75431483,49006219,1183434635,-1267299406]},{"sector":7,"data":[199390763,-1962639626,721611718,-1677327424,-465139440,968115851,897495622,971130507,92189766,-340506997,-498693373,2125612601,-498693351,2125743673,-1270445307,1183515627,-1949791262,-1054100922,-1070923029,-337623415,460104029,460199563,459937337,104419445,1249188712,1979340345,-129615611,28837236,721611520,436614080,-952929278,964614,58237184,-1961748829,1174656582,196912108,-1545320821,113707954,67254,971130507,92058694,-352321096,-1983894782,922740294,-1070922078,922701904,1996427420,-1677313556,-1593215994,378209944,116065946,-1174379848,1347551487,94874,-528579840,-15305472,-1070867850,-696844464,-2853121,922741878,-347076958,-629735577,-11485141,1996478070,-327745564,111294207,548950096,13416960,429543506,-16777208,1996479094,-696844316,-2066689,922741878,1996424866,1354771428,-1174402888,1347551283,542874,-461993216,-2066941,-11085194,1183569526,-465163308,1356875307,-1280257,1443275318,-1202667477,-860225504,-1706012160,65535,15105667,244319604,-2146657304,1946216574,1714880304,1354771203,61512272,1996423168,1354771418,64374411,103541830,103482234,-1924133286,1343678534,1342177720,329370,1883144192,242483203,-16091393,1996425334,-26106,1599995904,-1962742397,1297948645,503318218,1430622296,-1910575989,183272408,-2101455273,57188611,-1577302391,1177224030,-163149558,956843659,108918342,-1980348789,-13957050]},{"sector":8,"data":[28116459,961018950,-159446402,-1962516853,126483526,16533191,-335598848,1174514949,2117683196,-1946779896,1600060486,-1962742397,1297948645,503318218,1430622296,-1910575989,82609112,55066243,723877376,1996443840,-401698810,116785189,1963003912,-264338669,208994305,268961526,-1710918528,65535,-1962742397,1297948645,503317194,1430622296,-1910575989,787252184,951604823,141489920,-964562805,1149898760,-1981535741,1150016582,-431584970,-1995553653,83294278,-385649407,2122515393,208928774,887623312,1958742789,61860099,57018055,-6619137,-1962934017,1183387716,38050536,1048772608,1962935970,38836744,-1964441600,88377859,1183441962,1711720434,-150995197,460587524,425603,244321396,184871656,-385649472,-1070922907,-6664112,-956301057,17225734,-498678016,1962868736,410320666,-15305473,-2019945356,-1996488698,1451881542,474254326,-1994500981,1451875910,138709984,737035913,-96040512,-1946401143,1178143812,-2096726792,1962998910,71600682,1183441962,-62485544,2144880185,-428409024,-1311226229,98620163,726663208,-6664000,184549631,-1977453120,1149828166,-26109,113704960,4014,-1577180032,1149834026,306497296,-957808640,71598082,-599356667,2096776761,23128323,425603,2122519156,208994530,619187856,1958742788,22931715,-1947836789,-96040129,-523041615,1166800899,-700020466,16926198,1183535732,-96060932,1183533692,-162100236,2080920889]},{"sector":9,"data":[956661567,946996805,735463051,1183386693,-129614888,1183525500,-700040728,1149962364,-666486510,1183521406,-162100236,1963480377,105199893,1166676085,1004808705,108260934,-369473793,1183580011,-162100236,1946703161,13166851,1946567993,12642563,704726410,-297387036,-1276574860,205818624,2127971897,-129594613,2128102969,10545411,-1980217717,2122568774,561250530,-1962379521,1346960454,1183432747,244338914,-1946909208,1066133086,-1308998005,65065732,71666680,105186201,-1995942637,1451881542,38139638,-1979157496,-467009211,721611584,-297367104,17581451,1183578182,-96060932,1183516789,-666486316,1996435572,-92864760,737953419,-11470266,244372598,-2097051160,1028158,1586170740,-1960866842,334101062,-62485759,33179179,1183571014,1183400188,22145530,425603,2122530676,963969250,-991424880,1958742786,-599356624,2096776761,20441347,-1947836789,-96040129,-523041615,1166800899,205859598,2096645691,18606339,-33397376,-335919361,-227082288,-624897,1996485750,-529072146,-1193380097,-1706033144,65535,32521859,-1582402304,1183384412,56140270,56235659,-1980479863,1956771414,-129629949,-1980217717,1586171972,-1958769690,78772806,-133963565,970737291,58522182,-1962899735,1452012614,139803126,1161395061,-1971948282,-467009211,1978549819,-96040084,-1949153655,1178205254,-1961265670,1160449605,-129615092,1996426879,-92864760,-1191557377,149618689,-16222465]},{"sector":10,"data":[-1070859658,-126419120,1944587920,-1338080512,762576911,-1947836789,-767128801,-523041615,1736497155,2122579458,108265698,-1995553653,1149964356,-398030576,-1995553653,-689309626,142016508,-2130938113,225342,1048777844,1946157916,205818637,2113422905,112645,-1070923029,1357006473,-1276637552,-62455822,1593630953,49120095,1562371467,313933,1167087646,518818645,-326903666,-1202301152,1861681208,-2114942196,-1961883450,126563932,-939768183,1028102,54823424,1177281578,-230258422,704857226,138806244,704924810,1942043629,138840584,-352107518,71600643,704857224,138816484,990529067,91681350,-336443765,54823435,1177281578,172370696,74694667,552321067,704857226,138816484,990529067,91681350,-336443765,54823435,1177281578,172370696,-1947056503,78711422,2114185171,-260142596,722355595,1183386693,105286638,-1980873173,2122578502,1753088242,51005067,1183385670,205818856,-1947580791,-522983354,-1979955709,2122575942,259260424,1183535191,-754732558,-6663968,-1962934017,1183443014,54823670,1178199082,-2094435338,2097216126,-262239471,971654795,108924487,-33396864,1586170347,-96039952,-15841535,1183053382,-840232720,16416387,1183658868,726669024,1183535296,-297387770,1183516029,-1962677266,-11532730,1962870388,-26100,1183645696,-1070903072,-92864688,16777114,-96040192,-310157474,535137026,147475805,-1873273344,-326412987,-338129378,192067708]},{"sector":11,"data":[-26032,-1073020928,1048646005,16845684,1923168117,872823051,-1204914928,1344146290,1347469355,257268304,1923153920,872823051,-1203342320,1344146290,16777114,192067584,1184518174,-352321521,192192816,1946227517,18365721,4002932,-1207602174,854261761,504066744,-26032,1924661248,726670859,1347440832,16777114,192067584,-1070903266,1347440720,16777114,1958742784,-9574141,-310132693,535137026,516640093,1430622296,-1910575989,283935704,1245118294,1354771203,-957870448,142016505,-1710852353,65535,55451275,1946224630,-264338681,-646709247,55451275,-1959370869,-62486265,16008903,1310624512,55020035,1183441962,-196703238,-96060608,1183544701,-96074764,1183447249,-754667022,-62520352,-1947187575,105352152,-1995942005,1451882054,139869176,92039039,1996899899,105286496,956847755,242612310,1979074105,-262239479,98176,1183532917,-196703758,-1946794357,1446639702,966685960,-1720383930,-1947181429,60359751,1460864583,139868936,1178273141,-1954384890,1183517278,-1962440204,78771318,1586226899,104893436,-351776629,-230257914,1593794537,-1962742397,1297948645,503318218,1430622296,-1910575989,753697752,138840918,956978827,175443542,1963738681,112645,-1070923029,-2081405303,214590,1625883508,138840835,956978827,58592854,2080592617,205928712,1223230326,325492995,325588619,2097829433,54126851,1178142847,-385649912,1048773423,1946158784]},{"sector":12,"data":[52816131,325336707,-2093911040,124990,922692212,1996427834,209125134,16777114,302446080,343150603,-1961991519,957244438,141888086,1963476537,49146115,55451275,721831819,-1995400186,1200353862,-196703990,16139975,1310624512,55020035,1178330154,-385648650,1602945731,-1962439882,78771798,-1039932717,-1946401143,38270680,-16419583,-773065146,-1946394997,1468728903,-398030584,-1947576695,1451952198,-363448054,-1997995138,956857346,58124358,-1593671959,378213164,1446581038,-385646870,142344815,1994933817,40233219,-1962391925,1446578774,958100970,376825926,-1962129781,1446579798,-385649654,1178141255,-385649656,1586168383,71797756,-398064743,-1981131245,1451879494,-398029842,971658891,1518276182,1178142076,-1957464308,1452010566,173423086,92227708,1913144889,-60912831,-1325250677,-2132225276,1183387620,38270714,-1960610812,1452010566,173423086,1178146933,957576456,242608726,1978156601,-96040183,-369604983,1586168018,172461052,2122576619,578027760,-1947449717,1446637142,957838606,309660742,35274371,-1962183680,1200356446,-96040694,1183566571,-296317972,2114868793,-18355965,1178142844,-385650164,1996488413,-394854422,-15829249,261753974,-1996488694,1451876934,-294191132,-1280257,1996425846,111188488,1183383552,-531199522,305805055,-1411329,1586227318,21465852,-11475926,-15520202,-1206703050,-1706033144,3160,736249483,-1957631930,1177280070]},{"sector":13,"data":[1183666402,244338938,-1980381976,1183573574,-431619078,-1946663287,-1962717666,126563935,-1309256053,65196804,-62486078,-1946394997,1979910775,-126469644,1183516029,-1962742792,-129594938,972703371,1434384454,972310155,58718278,-1946277655,1200356446,205990670,-1948760439,1982593654,2130054132,-339309820,62925570,-1995400186,1586222662,239569916,-1948498295,1177286726,-1677327372,-632911600,272250623,383141517,-26032,-555155456,-260144131,-385649408,1183579605,-129615366,-890698892,-60912643,-1995552885,922735686,1996427834,-394854422,704726922,922702052,922686254,146281260,-795193344,-1962934254,104007238,1098124984,246955651,-1959430912,1177287238,-1677327372,196256528,735331979,-1560054266,915082172,908788596,909706102,92078968,-352094047,-1547269374,113709590,67254,-370667888,-310157824,535137026,181030237,-1873273344,-326412987,-1193767394,1861681208,268961030,1354771280,321533695,199757456,49120000,1562371467,182861,1167087646,518818645,2122569870,997982214,956712587,863242310,-2146804085,1586168079,138840842,2098218809,273124101,1183515627,173968136,-1961867383,1183517278,306657542,1200292732,173968146,-2095954039,-443874579,-900899553,1478361094,-1957345904,-661774612,721742979,244338880,-939562264,-16554490,49120255,1562371467,1478413133,-1957345904,-661774612,54935171,-14781184,-14980554,-14981066,-14979530,723217462,244338880]},{"sector":14,"data":[-939813656,16991750,49120000,1562371467,1478413133,-1957345904,-661774612,-1203862698,309657614,196884107,269891115,303445561,914949246,922685974,922685498,-1130296398,369502987,45633554,922701824,163058198,5618176,-1248178094,-1207959545,103481345,-1197273416,-310157810,535137026,516640093,1430622296,-1910575989,-1203862568,91488270,-1914171760,49120255,1562371467,2214733,252051715,7077891,258277635,7143427,253296899,7405571,253952259,7471107,32309251,9830655,285016067,2031871,311361539,2162943,65863939,655362,355926275,1900546,239796227,3670271,143196419,2162690,133366019,2228226,140902403,12255487,163708931,12321023,261881859,3932415,162922499,12386559,312868867,12452095,91160579,12517631,89915395,12583167,175243267,12648703,166920195,12714239,162201603,12779775,155975683,12845311,42926339,2949122,144572419,12910847,249692163,12976383,247267331,13041919,45154563,3145730,43319555,4521986,331022339,6619391,246284547,4718595,326762755,5373955,174260227,8585471,0,0,1167087646,518818645,-326903666,-1331603954,105265419,1709769589,1488897,-1962512649,574000088,-2095316209,1586038467,-1324905476,636015372,625475599,1183383567,23560442,-60912881,-738572661,-2096690720,1946221182,19589379,-1710852353,65535,253894283]},{"sector":15,"data":[381165451,107935488,1082912907,-96040690,-16223168,244382326,-1191213592,1861681174,-1948742906,-1961942474,-1708064972,188,-150989128,-661977490,253900427,13055115,512425984,529207074,-150989128,-259324306,-1995947893,-1072956346,-1706031500,218,253894283,381165451,107935488,1082912907,-129595126,108314635,16292432,512425984,529207074,-150989128,-259324306,-1995685749,-1072957882,-1706031500,278,253894283,381165451,107935488,1082912907,-196703980,108314635,-26032,512425984,529207074,-150989128,-259324306,-1995292533,-1072958906,-1706031500,65535,956476577,91555398,16777114,108461824,16777114,305832192,1963345465,973522694,-1577058542,1178147674,-955878138,-14984698,205562367,1946568249,206217480,1963345465,-26107,-2090991616,-443874579,-900899553,50333186,16813057,50333440,-16680448,50341376,-16695040,50349312,-16692992,50382848,-16754688,50383104,-16698368,22528,0,1167087646,518818645,-326903666,108954380,-385649408,1190527125,1970536710,-1957642197,-388954554,-780147584,1372138464,-96039600,-26032,1183383552,-1965519880,-1981535737,-1014236602,-62486208,16416387,1996447102,142016266,-1963172213,-1981535737,-1957628858,-1873788733,5171214,-1963696501,704819335,206308,200689289,-16026176,244382838,-1996164120,1183577670,-96065034,-335788543,175570871,-1979156737,-467007930,2133190865]},{"sector":16,"data":[1183666176,244338695,-2097148952,-443874579,-900899553,1478361094,-1957345904,-661774612,1460857987,106859350,-467007606,-1946532215,-2013919138,1963721392,24701187,687747,-2065104011,173968132,-1946278016,71108678,2118153216,20244739,1946157373,146701,54337908,-383486976,1183515743,394506,-244087,-1202715018,-1706033150,504,-1962653975,67439174,-1947866368,134548038,-1948390656,1183517278,206330,-523040591,210498443,201123200,-385381951,1183515675,656650,1586215659,-1946973430,-266071996,-2114302325,184553441,273123777,-16516375,-1070922170,173968208,-1962522741,120260190,27105872,1586167808,105351434,-1957642197,1200294494,106859268,1342326571,16777114,173968128,-385595511,1586168767,273124106,-1996484827,1200354374,-754667248,75240,-506231,1393775158,1342180280,16777114,-1960187136,1200294494,992528,-1946925431,78712903,19261651,-129595136,1074153099,1183535952,-1706014470,965,-1962254709,272927731,1317793828,266437108,-1983837440,1586171975,-1946973430,-282849212,-2114431349,-1325399582,199414532,-12719678,1962936381,-8984317,1962936637,-15013629,1946159677,736658,99156853,2637311,518587253,51767807,818819,216597365,207522563,-1946278016,338495558,1260800,-118946954,-1816132862,1101528878,207522565,637159051,145817601,-208936749,-444593013,-21501442,-1962123637,19266118,-754339584,-1946973216]},{"sector":17,"data":[-35291124,-1946246935,-208991138,-2147335029,1452015332,31621626,-754405120,-1983771678,-1528233401,207522562,280567,-2094893569,1946221182,38242844,-1202658262,-1873739777,46065678,1586226218,38767372,-352263808,207522602,280567,-2094697217,1962998398,38242847,-1202658262,-1873805311,43182094,1586226218,38767372,184607104,38242753,-1978900853,-466945466,-523040591,1284240267,15040516,1810481419,207522814,637159051,179372095,-208936749,-444593013,-1983837437,207522567,620381835,-754536000,468472,1284240267,-119439356,1586219755,-1946973428,2359876,721047178,-373224467,1586233153,38242828,-2125405142,8452734,1183516796,16788986,1183515627,244338938,704775144,207522788,-2147332213,-840236831,-1962123637,246481479,19261651,-263812864,1392932607,1342180024,16777114,207522560,1150022539,-1075544062,-2114955637,-1325399582,-19142386,-1962123637,246481479,19261651,-263812864,621037451,112263175,395043027,-355267919,4186753,1183433227,38243054,1183441962,71825394,225771264,112720,-401698736,1183383936,229161202,209125200,1342178744,118170,207522560,1150022539,-1075544062,-2114955637,-1325399582,199414542,38242754,-1962123637,1059450438,-754274048,-1946973216,65372172,126468363,-1962123637,-1071321530,-120387919,-1962932443,72125427,200860032,71797185,-1962123637,38046707,1317666852,-18617870,-1962123637,71797559,-1325398235]}],[{"sector":1,"data":[-1948200186,-754273834,1071809002,-1983773952,-125047226,-1979294069,-467009215,-1947318647,1059392606,-1948200192,65372366,126468363,-1962123637,-1071321530,-120387919,-1962932443,72190971,-369565312,1586232906,71797516,-1325398235,-1948200186,-754274025,1071809002,-1983773952,-11473338,244319862,-1996404248,1586228806,4138252,-523040079,210498443,184804736,-1962440255,1183517790,-1312807698,637063942,-208994297,-2147201909,-202770207,-1878885891,-989681918,1778596098,956541955,-536642045,1761962243,1761962245,1761962245,1761962245,-368798715,-2090902012,-443874579,-900899553,1478361096,-1957345904,-661774612,-2147066229,91560511,-352318536,106859274,704726922,-2092941084,-443874579,-900899553,1478361090,-1957345904,-661774612,1443163267,425603,-1863777419,108954368,-951288320,64582,167542403,1586171517,-1948003844,-2026305466,293470436,66877067,-2092038538,176032254,-352319048,-62456057,-963914005,-1946401143,-1948003880,-2026305466,1232863460,-771989877,-460878877,-951981312,64582,184319619,1586171517,-1948003844,-2026305466,243007716,66877067,-167049610,-1070921347,1191118827,-1948652548,-62486074,-472786805,956843659,2113987719,138841015,49120094,1562371467,313933,1167087646,518818645,-326903666,2122536452,125110280,83642055,-2093815040,2098202750,-62470393,636157953,537427587,1187448701,-352321284,142508824,-955810520,195654,2122517483,92090376]},{"sector":2,"data":[66864839,-59340032,-1979294069,-467009216,49120094,1562371467,67422797,-2113928448,-1425998079,469762816,738262785,838861568,822148864,822084352,939589380,0,1167087646,518818645,1048828046,1946159984,12577027,32521859,-955681792,17526790,11528448,185616011,1031017030,-15173889,1996428918,410451732,-15304961,1996428406,276234002,1342177720,-2048389488,410451723,-15304961,1183519862,374770452,319833603,1347555926,786960016,410451725,-15304961,1996428406,276234002,-15829249,1996426358,142016266,-1878624513,46983182,191905411,-12552960,1996429430,343342870,-15567105,1996427382,108461832,-1897394544,273058564,957503115,91555926,1946568249,410451734,-1961605493,1174607446,139858694,244338770,-2097148952,-443874579,-900899553,1478361108,-1957345904,-661774612,572427094,-1205892337,1861681174,-1947170038,1451951686,72366344,1077478773,-13339646,1996425846,108461832,16777114,302446080,527699979,-1961129823,958106134,91555926,1946568249,175570702,-16222465,-6683018,1577058559,-1962742397,1297948645,503318218,1430622296,-1910575989,149717976,173968214,1996437503,108461832,16777114,833792,-259266057,51011211,80118583,-1962522997,69929046,-1996336101,1451883078,1958874108,1150112611,28856332,244338688,-1962904344,1979059184,-18427,1183538667,139889414,1418265737,-129725694,-461313839,-1948200577,-511638452,-1056243711]},{"sector":3,"data":[-1962654583,1418459716,-96074756,-1979951597,1418266180,-29062392,-1962261367,-31194044,-2114433909,184549857,71600577,1586218635,-2096133366,-1054145343,213504555,1592915712,-1962742397,1297948645,503318218,1430622296,-1910575989,216826840,173968214,1183528843,72125704,-768884437,-150991687,-129594895,50742923,1183384132,-1996190726,2122579014,58654726,956336873,1551825478,1342180024,-1711651189,-150993479,-6663943,-1996488449,1996485702,-96040182,-1980479997,112852038,1089074944,-1070903232,53844560,-1073020928,45616757,-6664128,721420543,12380608,-1962254709,833591,-1946652937,71339480,-1962391927,76151878,-1980086645,1996423748,833544,50753271,-1957689274,1177287238,105262072,-150993223,-107327255,-352321534,108954488,-1955431168,1149893190,833538,-1962512649,-936703922,142016337,737822347,112851014,1357510400,16777114,-58817792,-1958314491,-523109818,2113685051,175570748,1342178744,-1711651189,-150993479,-96074759,-26032,76087296,-150993223,1346388193,1342177720,16777114,833536,-1946652937,117639774,-352320507,138840835,49120094,1562371467,445005,1167087646,518818645,-326903666,-1957275882,1451951686,273033992,-1995287013,1451878982,-263796756,381157376,409925376,1049352331,1032523554,1183383947,1996443896,343342870,-1427632496,-96040451,185616011,125112902,16008903,-14882048,1183578230,374770452,319833603,1347555926]},{"sector":4,"data":[-2098721136,-96064515,-2081143159,749630,1508442996,-128021759,1183385483,833774,-1946521865,-293731336,-1995903101,1183579262,138808070,2122543476,813564154,-787593589,72190944,1006559616,-2094959167,1962936957,105220891,50877835,1444090950,453323542,1446707797,990213388,997460550,-150991688,-661916562,-2080612861,1586040003,71797744,1317797412,1004654862,-2090895935,1962936959,172395353,51140235,1444087366,139934472,1195067509,-12356346,1183578230,787964,-196703408,-1873749769,-40900594,-166989685,-1444347019,105286400,1946699275,-260144272,-1961790464,214336478,-1962260853,1200163926,139954438,-17275776,1996444651,-62485512,1342180357,721420728,-1873742778,-45357042,-166989685,1183541364,374770452,1418265737,239504130,-780147584,72125408,123265,1149878539,172395268,-1995680117,1418266180,172279560,1686110208,-964428284,-128021748,213401483,40236800,1099815051,-163149564,199902859,376761414,-964489237,-364475636,32265867,1410462788,-160024074,1600056439,-1962742397,1297948645,503321802,1430622296,-1910575989,686588888,1183536727,274107150,319440387,1183386710,-61437446,-1962522997,1177225302,206969610,-1980479863,381220438,309262080,512487563,922947362,-1946925429,1140979286,72618242,957495969,561320518,-1961677663,957558294,360648790,1178142076,-1961986290,1452012614,738591222,773198099,-196703469,1962296843,105183052,1165298688]},{"sector":5,"data":[1080451,1552629620,-1995994352,-661917626,1183385483,440558,65957623,263619,440400,178256,-294191280,-1961998709,17109078,13796096,1996443730,-193527818,-504885616,44867847,1964131897,191668546,191764107,2131777081,956660790,796331590,-1961998709,1174605910,206967562,191764027,108990332,191628859,-6682762,-352321281,-196703474,32921227,285961222,-955552234,63558,956516513,58521670,-1207786519,1861681208,-2114941960,-1978660666,-467008188,1947354683,29616387,14960327,54823424,-1948236151,1418400836,-431585002,-1578609015,1178141514,-1207601672,65739624,-1994242931,1183571014,-61436934,2082362425,956661592,1366432836,-1946925429,1140979286,508825884,-1946532213,1413086294,2082045722,407124229,1149964919,441748248,2132694073,956660776,561192004,-1946925429,1140979286,441717016,956517025,225835078,-1961343861,1721965140,1746307347,-196703469,1979074059,9693443,-1948492149,1451953734,106379536,-2098658435,956661504,2071069767,-1948492149,1452014150,39270908,75441532,527566649,-1948492149,1452012614,285671926,1586168407,-196703268,32921227,1460732999,-1958155514,1175127622,-15633144,1996427382,112654,-26032,216727552,-1961998709,1174605910,139858694,-1982314871,1586223702,239504348,-1995417973,39291143,-1948492149,1452005446,71797210,-1962518647,126563932,-1948367223,78766150,1174659283,1060318,-1947580791,-1960711176]},{"sector":6,"data":[1452014150,139803132,92235644,1980122425,-196703392,32921227,1427179077,284132104,1994292793,-1958024230,60359749,1427310149,274086664,92021119,1997424187,71666458,105186201,990401811,712314966,1963869755,38139429,-2095090680,186942,1702888564,1252130306,-129615613,1049166965,-276622544,-562153200,2117710198,-16353814,334100550,-633437186,57933826,956370048,2037833342,-1946532213,1446640726,2132507880,-431605499,1183519862,-396981274,334775811,1149892182,374638868,1149911787,736373250,-431619118,1005082131,-1284370346,1178273143,-1951631858,1451953734,105251600,990402067,411035734,1178273148,-1961790490,1451953734,340035856,-954837879,2116,-16642944,1996427382,-26098,1927872512,71666687,105186201,-1979165421,65874445,13796289,1930450491,-11015933,1178273911,-385648882,1702952781,209780226,-2084074751,1178145007,-372608290,1996488505,-26094,1599995904,-1962742397,1297948645,503320266,1430622296,-1910575989,518816728,1048794711,1946159984,43378947,184960651,561317958,-15173889,1996428918,309788436,-1206880513,726695935,1347440832,-401698736,1827272362,572427010,1488911,-1961333001,64523023,-1959293991,-1206967778,1861681174,-1961915634,-1948711976,-62486265,939513995,-15960321,-1399190922,-1996488695,1586230342,-1959264260,1451952710,105251596,755521043,-628948991,-1706012160,353,-2081929591,127038,113707380,68464]},{"sector":7,"data":[-1593703703,1183519290,306580240,1996438900,376897304,-15436033,1996429430,343342870,-15567105,28840054,244338688,-16653336,1996429430,343342870,-1961605493,1174607446,307630864,244338770,-1962701592,1175127622,-14650360,1996429430,343342870,-15829249,1996426358,142016266,721843967,244338880,1442947048,-15304961,244323446,-1980299032,1183578694,306580240,1183516021,1444211706,-1961605493,1174607446,307630864,244338770,-1980308248,1048834630,1946159984,22407427,833622,66744055,263428,-96040112,66209323,1177282630,-1873788684,-142874610,213448843,-194054400,66870923,263431,-2081798519,749630,417923956,-1202237439,-1706033146,2843,-1961605493,92870230,-1962781303,1451952710,-362902772,1461389099,105185538,-1962388207,1451955270,172370710,-1995680229,1451882054,105286648,721966731,1444614214,-498693870,-1947969911,1177282630,-263812620,829734923,99239563,-1924136948,-1202713531,1861681158,-879079184,-352321534,214401806,-1946794357,84015190,-1962781423,1325396038,1975520240,833768,1744247947,96666370,1183383556,-1962152978,1452008006,285540836,-947715499,-293717748,1996483959,376897304,-15436033,1996427894,142016272,-1878624513,-104601586,-1961867637,1446580822,956658952,376702534,-1961330945,1451955270,105251606,1376278035,-401698736,1183577408,138808070,1996431220,410451726,-15304961,1183519862,374770452,319178243,1347553366]},{"sector":8,"data":[-1914171760,-2090902008,-443874579,-900899553,1478361108,-1957345904,-661774612,1444867203,-1962129781,1174605398,173413128,-1980086647,1996487766,242679568,-1710459137,3155,-1961991519,957244438,58588246,2130770665,-96061176,-253164685,572427008,-1205892337,1861681174,-1947170026,1351287360,-498693884,971265673,863310934,1964131897,1958873902,376897322,-1961736565,19731542,14320384,2107265106,-1962934260,1452008006,67044,-1996434813,1451877958,-15275032,1183520374,341216018,-1981397367,1347610710,834714,461938944,462034571,-1981135223,2122574934,208994310,-1962129781,1183387222,-61437446,-1948105077,1446634582,2083028988,-96061179,1996431735,-59310314,-1694861569,273,-1961991519,957244438,427811926,1178142076,-1961724958,1452008006,67044,-1996434813,1451877958,-431584280,736646795,1444670022,-297367060,-1026423,1996428918,-361299988,1347571794,854068880,-310157576,535137026,315247965,-1873273344,-326412987,-2082959842,-950662420,64582,1090274955,1929791035,-62485673,1208370691,1183443153,174520314,1577310347,209095432,1351286923,-163149566,1006130825,276762710,1178273148,-1962314994,-1992230330,-1058276282,-1961998709,1446580310,2131787000,-163170043,1183517046,1183400186,-1952060666,65796678,1593591435,-1962742397,1297948645,503319754,1430622296,-1910575989,183272408,-150989128,512429678,117640994,-1946532215,105379800,527764480,-1995421813]},{"sector":9,"data":[-1072957370,1996428660,209125134,-16091393,1996425334,-6664186,-2097151745,-443874579,-900899553,1478361098,-1957345904,-661774612,343313238,-351242749,309734175,-1962260853,1413024854,2132507650,1912879364,105286421,17323659,39063812,-15841653,-1073017266,-2090936459,-443874579,-900899553,1478361104,-1957345904,-661774612,-1592857469,378215272,1183390570,-128546314,-1961136991,-1994691050,1451881030,-25868,62390272,922701824,1996427834,-159973384,-1947056501,1177285718,-128574474,-1980086647,1347615830,1358954424,726684313,1347440832,1474825872,976682752,-126419182,-624897,1996487798,2147465466,1354771280,-1873784752,-246093810,35391175,113704961,4964,-1962742397,1297948645,-1873273141,-326412987,-2082959842,127038,28837237,721611520,49120192,1562371467,182861,1167087646,518818645,-326903666,-2091493620,1946360958,13953283,957104289,57940550,-2097100311,51134014,1048775284,1946291262,12118275,-1962130783,957105174,376772694,1964394041,-2110324975,-26085,1183383552,-128546314,1183523051,408324886,319964675,372970582,1500843076,205653563,-1070902411,-1980217719,922744390,1996430210,-159973384,1347469355,-15042817,1996429430,343342870,-1877838081,-107223026,205405827,-1961790205,1451954758,1174798612,1209405708,51308812,-1961736565,100734038,370216016,-35058606,1044284162,611648012,-1962130783,51135510,319571462,990660630,276109398]},{"sector":10,"data":[1964394043,306613003,1964262923,48163075,18644611,1084314997,440809740,1048792437,1946225726,1044284167,477430284,-1962130783,51135510,319571462,990660630,729094230,1964394043,-8656602,-1962130783,957105174,393549910,1964394041,205431058,1946157885,343383,155021428,-2090634240,1948851326,8513795,205405827,-1585810135,1178143808,-1586334438,378211394,1446579268,963015960,1635063366,206847619,-10849024,1996428406,1211563794,1178009356,-26100,1185087488,1209436428,36366604,-1962129759,-1559476202,378080336,113708114,134206,113708779,724030,113706731,461886,-1961736565,1185092694,1209436428,178188,306354768,-303497216,440830721,-1962131293,1451955782,205693720,205788809,-1961736565,1185092694,1209436428,273058572,-1962128733,1451953222,206349070,206444169,-1962391925,1352862294,1377208588,105286412,-1962126173,1050876998,1391884,317260670,1326337,99156860,146689,54353012,1027765248,141819909,1946158909,18213123,112868995,-15174656,-14974410,722186294,-11513664,-1710510026,3886,-15865006,-1206156746,726728703,1347440832,-401698736,-521600671,-2110324992,444006171,-15173889,1996428918,309788436,922739691,1996430210,410451738,-15304961,1996425846,-3216632,-14974410,1996429942,376897304,-15436033,244322934,-1207886616,-1679228927,-2110324992,444006171,-15173889,1996428918,309788436,-18346352,1488896]},{"sector":11,"data":[-1961201929,572427248,-1960867057,-16052104,62442868,-149058816,1077936751,-768375,-1961942474,1050054,1488976,461516535,1342181381,-1863026945,25815054,922722795,1996430210,410451738,-15304961,1996425846,-401698808,62390437,1025895168,-2055995366,1962943037,-10491645,1962943805,-13768445,1946167613,2768329,1760101237,178431,-26032,2122514432,1450508058,-150989128,512432750,117640994,-1191557495,787939350,-259318910,1988704003,-94467076,-788117621,75240,1284235473,-35553274,1149878539,-94467322,621168523,1284177921,-18776058,1149878539,478053126,-1962445817,1333852766,1048773126,1946159984,240556549,1599995904,-1962742397,1297948645,503322826,1430622296,-1910575989,216826840,381179479,275707648,381218955,242153216,512489611,529207074,-1995292533,512489030,529207074,1196231,-159973632,16777114,276233984,16777114,276233984,-135786864,276233984,1347469355,253894283,1895767947,40959748,-15829249,1996426358,142016266,-1878624513,-169351154,253900543,-15827325,-4717195,-1962546177,787911,96897872,-1202716660,-1873805261,3270670,253900543,-15827325,-4717195,-1962546177,1312199,96897872,-1202716652,-1873805286,911374,-310157474,535137026,214584669,-1873273344,-326412987,-2082959842,1448543980,-1962248565,1586169982,-1960867060,-96040703,259309579,-26032,1586167808,-954234100,184549377,-1959232266,529206366]},{"sector":12,"data":[1946171523,108461870,16777114,-62486272,-1960807360,529206366,939464843,-237941,108461879,701594,-62485760,-1962123637,1577158943,49120095,1562371467,576077,1167087646,518818645,-326903666,49120006,1562371467,182861,1167087646,518818645,45668494,244338688,200972008,-1592101696,378215276,372841326,226433898,104400508,91429736,-437776752,49120249,1562371467,1478413133,-1957345904,-661774612,19983489,572427094,-1205892337,1861681174,-1947170032,1183388224,1975520216,10545411,-19626297,1187446784,-352321284,-664892588,1586182027,-1948003844,126550616,-19757431,-632910512,2275408,-26032,1996423168,-632910578,-26032,-2037841920,1183579856,-796509700,-16485122,-1946233722,-2037711754,-2104951088,-1098776872,16776912,1191133812,-664892420,126558091,998237312,-1653081018,-19612029,-970361856,654235270,-1948754293,-2012771809,-1912678522,1358878342,-15829249,1996426358,142016266,-1710852353,65535,49120094,1562371467,403491405,-1442774272,117440787,-67108096,520158987,1778385664,553713424,1845494528,570490631,-1442839808,637599506,922747648,654376705,-1375730944,687931152,-1509948672,738262804,-2030042368,771817218,-1962933504,872480521,-452984064,939589395,989856512,1157693190,100664064,-939458807,1073742592,1208024849,-50330880,-922681582,570426112,-905904381,1526727424,-889127166,-687865088,-872349939,-1308622080,-855572716]},{"sector":13,"data":[402653952,1308688149,-184548608,1476460306,-1040186624,1996553992,-922746112,-2113863917,2046821120,-2097086718,0,0,1167087646,518818645,-326903666,106859278,1183385483,263674,-1947056503,1451953222,66830,1375785603,-227082416,1342179000,1342177976,-1946526069,-163149561,-26032,1183383552,440828,1174530551,-228684814,-1962129781,1463357014,2137553924,38222085,1183539574,-129594894,16008903,-1961039104,1183578206,173443848,2130990905,956660761,309789255,116934275,-1946925313,1174666310,-163169292,2122570108,661913844,-493825,1183576694,-163173900,737560203,62520390,1357510400,16777114,106859264,1183522699,-2096657930,-443874579,-900899553,50332172,-16730880,50345984,-16761344,52736,1167087646,518818645,-326903666,2122536458,1500905230,139345537,611680254,-1727127391,139068931,139204115,413255819,-1713730802,209508923,-935656321,1453393522,237019912,-1727127391,277087745,277222929,158711819,17669793,-351376890,1778829062,-1593835506,26807840,285755910,-351777770,172395313,-1559472501,378081412,1183518854,241869576,-1559345525,-1070919484,138847129,138942089,-1995942237,-1559734250,378079324,512428126,529207074,-150989128,-1961835474,277127664,277223051,2130989113,956660801,980877888,236979911,113704960,69022,33965814,703136629,229160962,261929040,374864,15964752,-1464336384,-2001186803,95965195]},{"sector":14,"data":[-90550272,-385875967,547422724,373004558,394201176,104531580,259197014,-1727127391,139855401,139990553,-1207893783,787939350,-661974844,253900427,411776139,1183385483,243172346,-16353793,-351774202,-92864749,277231359,277100287,2028474000,140157698,-150991688,-1962386898,-92929040,-1996175741,1150024822,240421644,277087787,277222939,-1995942237,721967126,1185126848,1209436424,140288776,140383881,-1962523509,69929044,50484251,319849478,-1559198186,378079306,1149962316,-2132225788,1319337956,2147368200,1252089973,237765896,-1961907037,722343990,185092662,721714678,-1962742848,237020102,138847129,138942089,-1995940701,-167223786,1963066950,18278659,1578535321,263632904,261929040,374864,34314832,-1665662976,-2001186801,95965195,-6664192,-385875713,1586168038,172461052,-167226717,1946224198,1312227107,1278672648,1245118216,-129594104,-26032,-1398603776,-129594609,138847129,138942089,33965814,547445108,373004558,377423966,104531580,242419804,-1727127391,140248617,140383769,-1665648149,1183666191,922702070,922683470,922683468,922683466,244320338,-1962817560,-1550191034,378079324,-1665660834,-2001186801,95965195,-1432727552,-2097151996,546878,142544764,139869825,91389951,-343933000,139895043,-166846301,1946224198,373004565,243009608,104531583,108398662,-1559738719,1190530592,410255878,-1727127391,140383803,108990076,140248635]},{"sector":15,"data":[1554056822,237019912,-1559355231,-2090988130,-443874579,-900899553,1478361098,-1957345904,-661774612,-955847549,64582,-15698177,1996426870,-1586173172,378212484,1446580358,2139061258,138819845,1183545462,-62510330,-1577433463,1178144288,-1996259590,1183578694,1317771770,173968136,277089835,277224987,276814395,-935656324,1183517299,-2079970552,-96040688,262944511,-15567105,1671101046,-1962934267,1174534726,-62521070,957227169,511507014,1358954424,726684313,95965376,244338688,-1946396184,1178142278,-385647108,1586233205,-62485740,-310179959,535137026,281693533,-1873273344,-326412987,-2082959842,-1957294356,1200294494,-96040702,16271047,96701184,1183383556,-129594372,-96060608,1183531901,-96074760,1183447249,833782,-1946784009,-59339816,1351286923,-230258430,1005868681,578750550,1178273148,-1961134330,1183446598,-230257672,972314251,-1183512490,1963345465,-129594444,1183516907,-96040458,-2090948629,-443874579,-900899553,1478361094,-1957345904,-661774612,1444342915,-150953288,512429166,117641632,-1946794359,-1962439720,1177223767,173415176,-1980086647,512490582,1207894022,209617666,-1591315200,378208908,1446576782,2132442122,138819845,-1229450382,1996443663,374800,80321104,-370606080,-161576192,17057782,-1092025483,229160960,276234064,1342178744,362394,209125120,818819,1052250485,1996443666,142016266,-51900784,-1960973568,1603008094,-13107430]},{"sector":16,"data":[1996425846,-26104,1586167808,-1949791242,-1056765369,-230257328,1354771280,16777114,-196704000,31473283,-1956612864,80118768,1418396811,173422850,92212348,1913144889,113672965,76278507,-1996335989,1451880006,71601136,1038894729,460652543,99894787,1183383556,-11517704,1586172022,705137400,-6663964,-1962934017,1452011078,138816496,-1995811301,1451883078,-1205867524,-11530840,95948918,-493203456,-1962934272,-208990114,604128395,-1995174912,2122515015,242483206,722499327,1996443840,-26106,2122514432,310116604,2122385279,1988100090,241077001,2147420103,1586170091,-96040178,512427913,1342111750,-310157822,535137026,214584669,-1873273344,-326412987,-2082959842,1586169580,106924810,1183385483,173968378,-1995946101,1183579206,-61931524,578076683,-1946526069,1451951686,39270664,75435644,141952825,-1946526069,199951431,117065347,1586222315,-2081363190,-443874579,-900899553,50333190,-16548096,50342912,-16633344,50344192,-16406016,50344704,-16446208,50345216,-16605440,50345984,-16452096,52992,1167087646,518818645,-326903666,297443688,-1912846711,1183434822,205949894,1962935869,15001859,1962936637,13166851,1962938429,32958723,1946226749,17906955,-454491275,12577024,-1705983957,65535,305805055,1350565816,-1705983957,65535,-1979949429,1975520007,26405123,1996429803,309262,67221584,1354771280,1086736011,-409317346]},{"sector":17,"data":[-16777216,-6633866,184549631,-1914997312,-1705973178,65535,16481920,1183523445,1357435385,1355302541,1342178488,-16458520,95948406,1183666176,-1706027320,782,16285312,837354356,-163149055,-3914103,79171190,230182912,-4698108,1586188543,1074236356,-828747746,-16777214,-1108865418,17230081,687747,922683764,-6680122,721420543,26995136,687747,1183516276,112501518,33701507,-1543168,-6681994,-352321281,172395486,1962934589,19065091,1962934845,15919363,1962935357,17164547,1962935869,21162243,2122562027,494207422,431638214,-792574326,-1153005344,1354385037,-1698662657,550,12601031,242679552,1342178232,1086736011,548950046,-6664192,-1996488449,1586216006,509638,-2080612725,108265535,-389646593,2122515530,58654908,-16742423,-16711626,-6633866,-1996488449,-12732346,-1924565760,-1202677178,-1706020864,65535,-6797687,1183649398,616059034,-6664192,1023410431,611581958,-1207011585,-1706033149,65535,-1207011585,-1706033149,929,-26032,28835840,10742016,305805055,-1698269441,65535,1035486857,376701183,415778502,-2001189238,1183697222,1996443848,-25920,1586167808,4162556,-6683276,-16776961,28839542,-6664192,-352321281,138841013,1962934589,-23336701,1187463403,-1929379392,-11484602,95948406,79187968,2142785536,314068992,163074048,-6664160,-1996488449,-1072972218,-907476108]}],[{"sector":1,"data":[1879492606,-385875957,1183580016,81160,37554292,-373591040,1996488544,23652366,-2080417815,-443874579,-900899553,-1957363702,-1360231956,1485212928,1418103295,74907647,1342178488,1342441912,1347469355,50043472,-2037841920,-1072955526,-1635054979,1204223828,468385793,-1207666945,-1202716668,-11533302,-1946191178,1090475142,597315614,-16777213,62391414,-2037690368,507576148,-26032,1996423168,440324,768080,1354771280,949637200,-16777213,112723062,95965184,-1070903292,-1706012592,882,-8733053,-1925284864,-1979754362,-44410,-1912646474,1358920838,1342185656,-352226584,74907417,1342179000,1342439864,-1957642197,520049286,60136016,-1224802304,-790036654,1975520001,74907612,1342179000,1342180280,1342177720,1347469355,16777114,74907392,1342179000,16777114,-28931840,1354771280,112720,-26032,1996423168,-25858,1996423168,374788,-62485168,-1070903274,-26032,-2037841920,2122579798,645136636,1387724624,309503,27519056,-1207666945,-1202716666,-1202715635,-1957625857,520049286,69442128,-443875328,180829,-2081649835,1187387116,1996423402,440324,67745872,1354771280,1117409360,-1996488700,-1072955834,1996433788,440324,67811408,-25755824,384452237,8362576,1996423168,374788,-364475056,-1130737642,-1962934272,46292453,-1873273344,-326412987,-2082959842,-2091514644,2080638590,108954374,-1207599489,1173028865,957294753]},{"sector":2,"data":[2097802246,-62470342,367722496,-771989877,-1948003869,-1961969098,3737158,1191172468,166502908,2096907833,166510307,83827851,-472783919,247084683,-1996077429,733539072,-310157632,535137026,46812509,-326413056,1443294339,-1559869813,113708730,2540,-1560000885,113708840,3688,49956551,-1472790784,2275334,-26032,1183383552,-1472790532,138840838,-11526592,-15592394,-1928195530,-768869818,-6664110,-956301057,65094,1988827371,-754798082,-1170865178,1446313742,1342178488,-16756504,-324927930,-28952311,-1956716420,113401317,-326413056,-1593643901,104401388,662507112,-15832927,-787585018,65065440,-1995523578,-11469242,-1706032010,1454,98212432,28835840,721611520,1575324608,1426064066,-326898549,-1136227004,-244087,1183647862,-6663940,-1962934017,130481246,-1136227072,-26032,1183383552,108462078,1342185656,721700491,-1705968058,65535,1354516109,721700491,1174666822,1996443654,-25858,-443875328,442973,-2081649835,-11139860,-16711626,-1415969674,-1996488703,-12714938,-1960348672,-1962868706,-772764897,39357414,126492555,1183441962,1958743038,73304845,-1996601718,112647,-1070923029,1575324510,1901250,4718595,10092799,62521603,8126467,61997315,8192003,37683203,10289407,16711683,10420479,31719427,10813695,94306307,10879231,41091075,11272447,91881475,2883839,32899331,1441795]},{"sector":3,"data":[34078723,13435135,91488259,5964031,36896771,14549247,85655811,4587522,23330819,14614783,99811331,14680319,9699331,14745855,8847363,14811391,5767171,14876927,30605315,6750463,18809091,4653059,29360131,6815999,83493123,5242882,96731139,7012607,32506115,5963779,72548611,6029315,25100547,6094851,63832323,6225923,66978051,6619139,0,0,1167120524,518818645,-326903666,-1957210514,19203654,-96040704,12863175,57057536,1964131897,55746852,55842443,1964004921,239483160,1453396853,205928707,-2136929419,105265411,854131573,-661891316,1388298382,47107,-67103047,-950031373,228358,306612992,-1962711389,-2136799674,239504131,-1559210357,378078034,1317733204,1443793164,173423363,92220284,1980253755,1711720228,-1543504125,378078040,113705818,898,-1559352671,-120519820,-1560053597,-890698886,33998603,-16777215,1996427894,242679568,16777114,-129579264,1996426674,276234002,-1710328065,65535,48907975,-362902773,269502455,-14846976,1996427894,242679568,-15960321,1996425846,108461832,16777114,192407808,-689434992,-1572961523,125042694,111689347,-1710721792,65535,-1928635159,-1940404138,-1950314792,47354,-67104583,-950031373,320582,31868615,-92372224,-1591905280,1183386090,167551418,-1577302391,1183387768,277389806,-1578350967,418061170]},{"sector":4,"data":[-1996119880,1183448134,228368826,-1578219895,1183387046,166109676,-1947187575,1200351838,-1035564794,-1961129823,958106134,192221270,1963869753,138906374,-1950202367,1150023798,71772942,-1175042423,-1053066304,1317602166,-1035564042,58114363,1036144265,92078080,1183432755,-163169854,-1992293261,1996486214,-294191166,-1699055873,65535,-1983232375,1755564102,-1032388861,276313855,166344447,120986,-800683776,-624897,1996484214,32611002,1183383552,57582540,-624897,-15697866,-1710626250,514,-1949153655,369486406,-1102673664,16416387,-1465842316,-1593578746,860882594,-1706012480,65535,1183432755,-196703808,-2734393,309788671,-15698177,1996426870,-1207309556,1347485695,1354773328,1342180280,16777114,-1404647680,-1633615872,-1236891379,-545996789,-1995461471,-2069777338,-2045342960,173422864,326912895,1980253753,-92372210,-1958841088,1065399390,1446409484,229162583,-1190426433,-661913595,-947142514,-472786549,-147078397,1263208307,-83627261,-56232963,645946975,-2147284087,-133460954,193595078,-1873375980,-2000791722,-1174762741,-661913595,-947142514,-472786549,-147078397,1263208307,-83627261,-56232963,2122538591,527696122,-1928169729,-1202679738,-1706033149,65535,51491489,-1995327482,-1264457658,-14816495,1183650422,45633680,345657344,-1593835517,100863574,1183387228,240689640,-2084813175,127038,-840367244,-1790511613,-1978305281,-2143513274,1183516787]},{"sector":5,"data":[-398065168,1183516395,-1136262672,11028167,-1136227584,2109752889,-1069119224,27805383,-398030080,2113160761,-196703992,27805383,-1468103936,-1959431168,1979957366,-362902540,1024083851,478019824,-327745712,-1694730497,536,112720,-26032,-125108224,92206907,-337873271,-595687165,722502817,1023627782,58458367,-1996423496,1177268294,-1438217772,16924291,188120576,-1926070336,-1202679738,787939338,512426242,117641212,1342179885,1342179256,16777114,1975520000,-1268872432,1946763136,524255240,-1142357132,242262272,16909881,-1192752523,1975520009,11069699,-150992200,-1962868178,183403504,268181131,1048786691,2113929474,-733574385,-1999092181,1183451460,138709208,-1962228093,-1874424362,-259303594,96074379,-1898411008,-1949856832,65262041,1945582531,55266055,-33881101,1610393075,156008542,-1434549249,-1979351296,938202182,-774613365,-2101181982,-661891325,-91504498,-1962934088,-201545138,1451974571,-2134736428,-661891323,-91504498,1317732528,-1426850646,-1337554081,-1999354231,1183516740,-666465836,16910079,-1961851743,957384214,58591830,2080411625,138819848,-2048326794,-427916544,956986368,343216214,1963869753,-733574385,-1962711901,1183434822,57451470,16416387,77671541,306592001,1586177140,-2138585388,-1531403259,-1070379008,-401698736,1586170078,-733544492,-2021006383,100729730,1183515500,57975772,-1547680117,1183515514,-1069153292,-1962706781,1688458310]},{"sector":6,"data":[56533763,-1962391925,17107542,13796096,-1996269405,-385656298,1183516222,-1236925484,2113994557,16758798,-1982577109,1187493446,-956300860,55878,1083393782,-605486219,-934900479,108461904,-1324502367,636015371,-1706033145,65535,57982987,-2097037847,1962992254,23062787,735725195,50550790,-1559198714,2122515296,57941986,-1198500629,-11534291,244382326,-1962399256,-1996266466,1258511902,92309446,-1981558483,17007239,1183567430,57451470,-1593611613,961020162,511570502,-150992200,-125046162,268181131,1174290179,1578535689,139802627,-2008415118,2122516565,108265722,-1560058719,2122515294,58000612,-1928990999,-11483066,-68565386,-631338235,-1948629249,25867390,-259267542,1965096579,-92372172,-1593478144,65737134,-1995550047,1586214982,-1981558316,17007239,-1365129146,-1371109103,-1949284863,1191171166,-2138585388,1474895877,553550596,-25094532,276627584,296492683,-467009398,1034831497,225771775,112726,-401698736,1183385430,-92372050,-1962576896,619425350,2082537091,-2130804458,-1961853696,-1978773474,-1981535744,-12732346,1443656960,-1873756109,119859214,-1950857591,-472787874,58886025,-1949809151,1174515270,-732001328,-1949022465,-2138601274,771654405,1183527294,-800704046,2122523262,57934050,-1946246679,1346950214,185045992,-385649216,2122384565,2080440276,78375171,15091399,-1959400704,802246,-1545010315,-385647104,154993930,-385649408,171770299]},{"sector":7,"data":[1035172864,58654731,-352088087,-733020247,699942539,1183565894,-800708178,968246923,57989702,-2114008343,16766078,2122551421,57999556,33211625,1183558726,-1408891988,-1270445809,722312865,1183427654,-1001994314,401145856,-733020164,699942539,1183565894,-800708178,1208025761,-1192081783,-1202716627,-1873805311,104654862,1003505155,58643014,-1946207255,1183434822,-732001358,92309446,35514633,-1949020417,1177139270,-1371108408,-1949284823,2057551942,-196738301,-1560054621,1183515512,100899290,370348164,1487081606,1511426307,-730398973,184981480,-385649216,1654718628,-1560170493,2122515298,57934074,-956265751,3057222,866547455,244338880,-1996111384,297312838,-1674643712,-1037330163,-1952843567,-101211570,2097209149,-1207702782,1183383775,-732525660,92324481,-1898410921,-1963291712,1317774918,-1426850652,-732525729,-1031675183,-1940454526,-1950314792,-1572434950,-56340853,-1956664333,1174656070,56533924,111294207,503677112,-1535705264,16777114,57451264,57149127,-1947664384,1577502467,-385875965,113705858,66428,1219249803,1476788633,1511395587,1611056899,-2097151741,1962993278,-565802219,-1948236151,1688458310,-934900989,-1546762615,1183515500,56533972,-1545845109,-1108802700,-733020164,699942539,1183565894,-800708178,970081931,58511430,-2097042199,1962993278,-565802222,-1948236151,1688458310,-934900989,-2083633527,1946477694,-934900467,-965279920,-402229505,1183515434]},{"sector":8,"data":[-1304000056,-3115265,-16127434,-1710196682,944,-341948791,-163149013,1923106361,-1605990141,966674059,343056454,79578755,704792458,468452,-1996487675,652993606,79578755,-1950458229,-1605990137,-915030005,731793035,47233490,-503844361,1183432963,-465123424,1996423172,-294191200,-1699055873,2416,2127054393,-934900989,-2084157815,1963254910,-934901482,-6260993,-15697866,-1710626250,2512,-1949284727,1183434822,-733574198,-942258551,56902,14829255,-431569152,1183514624,56533972,-1547155829,1183515500,57975772,-1547680117,1183515514,-1069153292,-2096924509,1946278526,242262377,16909881,-1662515339,1958742787,702553,16920311,-276563829,-65107190,-2093022449,66110,1183453054,138774744,735331979,1166596166,180847369,1452295821,-1947169961,375295,-1064380276,-645150837,-1023155247,125040443,-217887925,-201458941,1583348901,16910079,179835627,36632320,-2080863487,512428783,1057165308,-1999354230,1300236357,1586233097,-733544492,-774349175,-934900765,-1984805333,-2096921977,343214590,-1090740759,2078867616,-767128581,2127578681,-64034557,-2851199,-385647616,1988754477,-632910878,-1716763133,277087747,277222931,-1996269405,-1962714602,1822672966,-733574397,-1962713437,1956895814,-1069118717,50559651,2024010822,771654403,-24967820,-1961331425,1183440454,-733574176,-1962711901,1183434822,57451470,-2080626199,1962993278,-565802215,-1948236151]},{"sector":9,"data":[-1555508154,1183515492,57451464,-1984412117,-24916410,-2096794614,1685392382,547112647,-1669923072,-1862633729,42526734,-1965793653,-1752654762,-472840833,58754953,15105667,1177226869,1812332984,-733574397,56927048,1946877571,-98637565,16416387,1688274548,56533763,82083459,2062091124,-362902534,620840842,1183383555,212452,1642820724,-941734145,124486,-1946447383,1174657606,100899244,370348164,19730566,14320384,-1996269405,-1962714602,-1555508154,1688404830,-599356669,-1962707805,2057551942,-196738301,-956073821,16998406,-934900992,-1984412117,1822674502,-362902781,620840842,1183383555,1958743012,-934900467,-864616624,-402229505,1183514678,57320396,-1546238325,468386686,1962937661,-83498749,1962942269,-79304445,1962945853,-26351357,1610259433,49120094,1562371467,969293,-2081649835,1465255148,-1962385781,54336583,1028879360,745799681,1946157629,474433,1451962741,39267078,1175353227,56899131,-1132453507,1949173120,736547098,-788299116,-387234066,721835659,-771029417,65602431,-2080714495,58589434,-385830423,1451950326,106375942,2139352555,57999384,-1962875415,1462437462,2144471814,14215427,369170177,1049297772,-141884572,92325761,-964565295,-1957559422,1334548930,-1543899368,-1992293518,1451883590,113662718,1325466481,-1064380276,-17923,-1359863632,65130817,-28931087,201215743,-15174208,-61408178,1015236166,-1946586112,58863046]},{"sector":10,"data":[1593698513,-1962712158,67238982,-92024789,-2095284480,2114001023,1190942307,3965766,-963905164,-788299219,1671585512,-11670781,-1511319473,-1031071999,17057527,1377924352,94419026,-1674117296,167025165,-11534336,-15697866,-1710626250,3498,1510497931,-2096609535,2097155711,1746272518,-1962284285,-472838561,58889985,57415169,-1956749316,113401317,242262272,375193,-1958675977,-63504400,1879442191,1357510414,-1705983949,65535,74825739,132890675,242234881,-1023409736,1167120524,518818645,-326903666,142508804,-2094891232,2099185790,142508812,-2095219703,2131560574,108954391,-1157270528,669716910,-351382853,142508322,142344320,-956539251,334233351,425603,512427636,82514348,240131723,-2146935293,1131806527,108954451,-15174656,-1928943562,1343621190,1342177720,572826,-1341773056,-15275247,-1928945098,1343621190,1342177720,951706,1409690368,-1072997618,-12777604,-2013102848,-1979389177,-2082199033,-443874579,-900899553,-1957363708,-661891092,-2101362546,72256259,-205507588,1073837487,1575324511,-1946156350,1430622424,-1910575989,-264338472,1735720961,111296131,-1957595904,-16560610,-6671753,-1560280833,-1073019230,-1202700684,-1706033151,65535,55451275,-1204652033,-1706033128,65535,1962934845,112645,-1070398741,184982691,-15633216,-16342474,-16346058,-1710845386,65535,111689347,856192256,-6664000,-2097151745,-443874579,-884122337]},{"sector":11,"data":[16973842,134928,196610,16711892,16973855,134980,16973833,131644,196618,16712634,196779,16712713,196653,16711873,196786,16712499,196795,16711960,196796,16715603,16973887,134911,196660,16711933,196837,16712297,196710,16713140,16974054,134944,196688,16715192,16973932,134813,196699,16715264,131,0,0,0,1167087646,518818645,-326903666,138868228,-2095549439,1930036862,-339727612,209125202,1343112845,16777114,-1924863232,-1202713018,-11534296,244319862,-1996442648,1183710278,246960142,1183535104,-62510330,-401698736,1174470696,239504892,2734160,105286480,1358710315,-2048389488,-62521088,-2080618869,-443874579,-900899553,1478361098,-1957345904,-661774612,33877121,-24736426,1996443901,-26104,-2037776384,-466944514,1983508619,-1962577146,48956998,-1072970101,-1070922637,1983450347,-1962577146,48956998,-2037791093,-2037514756,-1957626369,939461214,-33769729,16777114,173968128,-33782133,-2037709055,-2090926596,-443874579,-900899553,1478361094,-1957345904,-661774612,425603,1586173054,-1977644278,126355526,-16097653,112647,-1070923029,-1962742397,1297948645,503318218,1430622296,-1910575989,283935704,173968214,957193889,58462791,-1962827031,172264435,2114471737,26601731,84690827,1183384960,308251638,262944395,-467009398,1039156873]},{"sector":12,"data":[57933825,-167736599,17828102,116796021,1963069449,138868259,-1955171327,1200294494,100899090,370348164,372969606,1635714830,104531580,1500710668,-624897,-15828938,1996424822,173968136,721485752,-1873802169,-28514290,-151763319,1946224710,-96040699,-21476629,-163149559,-1203862704,91619085,-352321096,230203651,108461904,1342177720,-1207279989,1194000639,244338700,-335670808,-159973428,-1962379521,-4715938,205990656,-401698736,1183383789,-196703750,-16097653,1187451463,-956301070,64582,1586174699,705137398,28856548,1973047296,16777218,1191178822,-163119108,972703371,-562234298,-1962254709,1191309894,138868232,-1962380287,1183445574,-952701960,63558,-1962254709,1183386695,-1961300996,-2020934562,-467008128,1354771280,16777114,-129629952,-1946401025,1200294494,-196738292,2147239483,173968346,-1978900597,-2021068730,1586169216,209160970,-787724289,-129594394,58885257,17456779,173968135,1150022539,138885386,1827210111,277127678,277223051,55842361,104401781,91554642,-352321096,-339727602,173968138,1984455,1592650496,-1962742397,1297948645,503318218,1430622296,-1910575989,82609112,1342850701,1342188216,-1878624513,-35723250,-2080618871,-443874579,-900899553,50332678,-16739840,50373120,-16767744,50374144,-16723712,50342912,-16635136,59136,1167087646,518818645,-326903666,108461828,1358710413,1088949904,1958742784,458793227]},{"sector":13,"data":[1039943211,394067983,723212449,255720518,-15107072,244382838,184596456,-15895360,244382838,-1207886104,48955393,-310132693,535137026,46812509,-1873273344,-326412987,-2082959842,1448544492,2122972971,-1003058180,-2129728751,2147418748,-12123787,-964428730,458793225,2096907833,637162,-812912649,-1056710191,129095563,-1039932717,1929922107,163071779,-1947207936,65130959,-1311274047,65196807,138820546,1586227058,725584134,1327688640,-150992456,-774927377,-1950284831,-754470441,1002570722,-411891642,106859335,28852105,-2090902016,-443874579,-900899553,1478361092,-1957345904,-661774612,1443294339,16533191,726133504,-6664000,-1191182081,-369688567,906227851,2088833476,1954545410,105182752,-15698943,-6684044,184549631,721712576,-14488640,889127540,16777114,2080833280,461152539,-16497527,1183579206,-62506746,28881276,-310157824,535137026,46812509,-1873273344,-326412987,-2082959842,-1957294356,-1995324362,1187510390,-352321286,41713986,896827391,1962440249,1996445219,637176,34904656,727056384,163074240,-6664192,-956301057,2147418692,-16235322,-1963434357,1200159302,-129596664,164004617,-1577433345,1178147672,-1867088646,7792654,688277131,-1592043514,-523166888,268084032,-1323607903,-1981754617,100922950,-2069689880,636955,458764023,-1979833280,922745926,-2069818940,-100269285,-31178737,1343341731,-1694730497,663,16777114,268083456]},{"sector":14,"data":[66987072,1174664774,-230258180,166213375,4241488,-26032,-2090991616,-443874579,-900899553,1478361090,-1957345904,-661774612,1460202627,-1003058346,636945,458764023,1183434243,-96024580,971702272,-16614271,-1976798081,-467007420,2117728395,-1323535110,65065735,1342826502,-738572661,-402258976,-2135404535,-6664192,-973078273,-63420,-964429242,-59361015,1600045687,-1962742397,1297948645,50333643,16922113,50333184,-16700672,50371328,-16639744,50371584,-16673280,50342912,-16696064,50391296,-16708864,50391552,-16669952,27392,1167087646,518818645,2122438798,1963003916,1354771213,16777114,112640,2122407403,1963004172,176063258,-2096729087,1963068030,242679599,1342177720,16777114,-2082804992,1963330686,176063263,-1962511360,-1264382394,37651206,141819906,-1710590209,65535,401326123,151813763,2122577525,-260833270,298202879,16777114,-2082084096,-443874579,-900899553,50332682,-16771840,50371072,-16762624,50371840,-16747264,50372352,50355201,18176,0,0,1167087646,518818645,-326903666,512448018,529207074,-150989128,-1961739730,205556720,-1913633143,1183445574,205949934,1962935869,9758979,1946159421,1064316,-219610251,17841408,289213044,-385649407,1961558167,-1705983957,65535,15761027,884475253,-1962546417,126611550,-1946401143,109020120,-14715649,1183647351,-6663954,-1962934017]},{"sector":15,"data":[-230504720,242679552,1342178232,384976525,1996426219,243726,17217616,-6664162,-16776961,62393974,-6664192,-1207959297,-1914109951,176063232,-16157696,-1710111178,65535,2062270507,687747,1183516276,112501518,33701507,-1477632,-6681994,-352321281,172395487,1946157373,146695,-789888652,1343210168,-1207011585,-1202716669,-1202716671,-1202683905,-1202716671,-1706024950,65535,141934603,191891143,-1880424448,703073936,1310624512,-2146961917,-6683276,-16776961,28839542,-6664192,-385875713,-2090926227,-443874579,-900899553,1478361098,-1957345904,-661774612,1460726915,572427094,-1205892337,787939350,-125103558,-1995423349,1187509830,184549620,-385649216,-661978999,126558091,-940423543,63558,-1946788213,80118583,972179083,1065220166,957334177,-2093976316,1962996862,-129594596,-230278336,1755386740,1779862299,173291803,92214652,1980253241,38046478,-1996204917,1451883078,-11998212,-964429754,-2084967674,1962996862,-196688121,-1611988991,-150993224,-259263890,-1962479997,923006558,-1593522557,70848450,20824956,-1593215744,378213222,-1142221976,1344276408,16777114,-1958221056,-1962717666,1452014150,340232700,1377195913,-26032,512425984,1204224846,721420296,-1706012480,65535,-231681,96008822,-6664192,-1996488449,1451883078,1380995836,-26032,1599995904,-1962742397,1297948645,50335435,-16755712,50371072,-16696576,50371840]},{"sector":16,"data":[-16728064,50372352,-16625920,50340352,-16733440,50373888,-16745728,50374144,-16707584,50375680,-16640768,50343424,-16629760,50381312,-16699648,50381824,-16622080,50356736,50388737,50349824,-16634368,50362112,50372353,23552,1167087646,518818645,-327034738,1448542800,253894283,381165451,976156416,-1946645742,-388954559,-1996488411,1187510854,-956301068,63046,14567111,-297351424,62390272,-6664192,184549631,-1710721600,802,-16156951,-1206878154,-1706025418,65535,1023821451,58032136,1023445993,58032174,-1593795607,378215272,648223594,672565523,460103955,460199563,-1995408733,957381654,2115725846,11659523,104401276,57809768,-956258583,129606,-1961138015,-1994692074,-1979854202,-142186,1376926262,1354771280,1342177976,16777114,261928960,-695825072,95965437,1134186496,-1711276031,65535,55195391,-1705983957,440,191905411,-382897152,922683507,922688362,922688360,922688362,832183144,-385875967,922746725,922688366,922688364,922688366,-420799636,-36391169,-36522241,-36391169,-36522241,16777114,-695825152,-289910531,95965193,-6664192,-352321281,-26070,62390272,922701824,922686010,922686248,-1070918874,-4698032,1385779455,1354771280,-660975536,-1879048190,140437518,-940816759,214534,-1375287552,-2097151985,749630,-655817868,1958742791,320774451,320870027,-2097143803]},{"sector":17,"data":[1822621906,1846970651,459842331,459937417,55195391,-1705983957,65535,218529409,-955943552,-63930,-1727129439,320734723,320869907,-37452151,-37316983,-1996077429,1187508806,-2097151748,122430,1048774517,1946157552,105301765,1048838143,1962938286,-26107,512425984,931860542,-1323604319,65065732,102665200,38272768,-37058931,-1700704234,-1957674993,1143672388,922701836,346099726,239352080,1149964413,-1710298354,65535,-385464695,346161022,-6664176,-956301057,-16554490,108954623,-385647104,1183515978,-2146943738,1961427829,-2146878207,-18283659,-2146616059,233374581,-2144453371,222127732,-385649278,512427460,1342111750,134211586,-1961679199,957556758,1963699734,-1408878327,-385649397,28837548,922701824,922686010,922686248,-1398729946,-1374254325,637938443,672537363,-1202695661,-1722744833,-1070903214,-1706012592,65535,1342178488,16777114,111143168,-1961138015,-1994692074,-1979859322,-2080522090,1946214014,-532247796,-1098514023,-1063906819,321692157,321787531,-37710279,-2065104003,956727040,1929232006,-25988,512425984,1342111750,-562134270,-15633408,1996482678,-529072154,-955530008,56902,972834443,108981830,-1980873077,2122579014,92013308,15615687,1042189056,-1958769904,-1323604450,-1948003580,1093263430,320774404,320870027,-2097143803,1822621906,1846970651,459842331,459937417,-1947842933,-2037782442,-1769341500,703200710,976682756]}]],[[{"sector":1,"data":[-1061748974,-1095303171,1354771453,1342177720,276634,-1407284480,-2012771825,-939672954,33406086,1947024384,13691139,167870336,-941030540,-1132003584,-1165572355,-1142355203,-997815552,-963212291,77309,-1996432765,-1979859322,-2080522090,1946214014,-532247796,-1098503783,-1063904771,325493245,325588619,-37710279,58527359,973014761,1946009222,-16914173,305805055,-37701889,-37832961,-1202667477,-1706033151,1153,262938251,-2037905526,-2033713734,130492,1282738748,-1961662815,957573142,2097004694,956727103,1996340870,976682807,-1098478830,-1063875587,77309,1375787651,1354771280,1342177720,314266,-1407284480,222265359,-2030104971,-1367081540,-2097021506,16629918,305805055,-37701889,-37832961,16777114,302446080,57937931,-103703,-15582666,-147274,738049718,45633728,-979742720,-2147483648,-1089495258,1343200440,2011696784,-562134266,-1960283136,-1711424378,2145932859,990215224,829941318,-37976437,-2116008447,-2146957698,697901941,1444537926,-1961169944,-1946304890,-1979858794,1451877958,-1132033048,-532248067,31344327,-62470400,-2037710846,1143733694,-1199142650,2109737981,33483011,-38093184,-385649398,-1098907143,1963785658,32499971,43138691,-167152129,1963000388,31451395,49184387,-689372292,102664961,38797056,477082,-1266251520,-1841396739,192282370,-35617139,154265680,-1948105079,-1961869794,459710775,-523041615,512487427,1207894022]},{"sector":2,"data":[-1874951422,545128450,134643329,-15108736,-1979543538,721271430,-1070903068,-26032,-2037841920,1760296392,-38238581,-37976573,-38631799,-38224245,-50075695,35712897,-2037840501,1048837576,2080375442,-1195474115,914096381,956581003,2147332742,-1299805395,65065469,35663301,-4696240,-1299830016,-677752579,-1593835520,-2043084142,276692408,-37976437,43124265,113706731,-64878,16154243,-2037708428,1174535624,-1962087452,-1979856762,1187505222,-2097151498,16626878,512439412,1342111750,-196688126,1083834369,-1996488702,1178333254,-2095811322,1962996862,-70522621,16008903,-263812352,-1946434071,-16775650,1187447367,-2097151754,2113987710,-26050,2122383360,1971324934,-465138924,261752361,-1559258463,1183517618,-897177116,-897151491,1183535357,1356396516,-1705983957,65535,16777114,-465138944,-1948105175,60359748,1410532932,773208840,2131590163,738605830,-1207602669,48955393,-2037792725,2122448310,1954557446,1975520004,-1199142113,263677,2097431611,-498693352,261752363,-37185909,-489487439,91669051,16533191,-1229028608,393478397,705694624,104548580,192289638,17974518,1187448181,-1962933252,-16775650,-6684081,184549631,-385649216,2122578907,57934068,-939797783,128070,417690,-263812864,1946568251,-71440125,971916939,58719302,-1946226455,1183448134,-1845049362,-369099006,512491233,1342111750,899074,-2037559216,-1873740342,70969358]},{"sector":3,"data":[401035,-956151809,656966,401035,-16625665,1996424822,-897151502,244338941,-1996220440,512490566,931860542,-1323604319,65065732,40141040,135168254,1721827600,-364476133,57982987,-167735063,34605062,178266997,736373264,470156242,504763152,-963233008,-385649667,158793889,-37452229,-1763114121,1354771200,-26032,922681344,922685474,922685472,922685470,-6680548,-1962934017,-1961869794,1713277759,-754667237,104958435,-955756151,261190,1187470827,-167769082,17828102,116787829,1963069449,-11998973,19610,102664960,38797056,-939656983,591430,-2080427543,1149964526,1141086468,139727622,-316011382,-763117309,-963233024,1997632253,-997836026,-2146863363,-130460,65792590,-1961834877,-1072956346,-1226243203,81405,-1360460929,146941,-1494678659,212477,71108734,-379948032,714800537,-16777207,244378230,185086184,-2091420480,1946418302,91331124,-1073020928,1183525748,-754667030,1042189280,-1996029168,-1946308474,71797720,105317273,990402323,2132503062,990280741,1998284806,-364475619,244338752,-351803160,162437649,922681344,-1070922934,15243856,922681344,922688362,922688360,922688366,28842860,-6664192,-385875713,648150293,672566035,2081831187,958690576,1964014086,21666334,2122514432,326435066,253894283,381165451,976156416,-2131195118,-939719071,801798,-1203862784,427032582,276838143,1344157368,16777114]},{"sector":4,"data":[-1070903296,-6664112,-352321281,110270981,-1229455360,-289910769,95965193,328880128,-956301306,16915462,-2090902016,-443874579,-900899553,1478361090,-1957345904,-661774612,-1592988541,378215272,1183390570,-61437446,-1995235677,-15523818,1376926262,78223952,-2002714624,-1978234085,-196703973,-1577691511,78711570,19261651,-129595136,166594295,91554304,-352321096,-1547687166,645927452,-1195439631,-1873802770,18409486,236455623,922681344,922686010,922686240,-1070918882,-21475248,-1070903169,548950096,1347590400,16777114,320774400,320870027,-2097143803,-1398603566,-1374254837,-1845049589,738197250,-6664000,-1962934017,-310118330,535137026,1439386973,-326898549,2144262,236455467,-1191557495,-11530708,-1710352330,65535,-1979955575,922746454,922686010,922686240,548934430,1347590400,-11485141,1996488310,236495356,-1706012007,65535,721428664,-1727129594,195823145,195958297,47843015,113704960,4912,305805055,-1727129439,320734723,320869907,1183535186,1347590650,1347469355,16777114,809403136,175374355,321920651,704267915,113706055,66266,-1961136991,-1558483434,378077844,113705622,744,246955651,-1710918400,3402,-1017256565,1167087646,518818645,-326903666,263632902,108461904,1342180024,811930,1958742784,-1608610982,-1960867055,39291655,-1980086647,-1935541162,-1911125246,-61458174,1178142069,-1205308166,-1202712002,-1202712650]},{"sector":5,"data":[-1202713176,-11534326,1996487798,210803450,1183514624,-61436934,-1996321629,-16609770,-1229453706,95965199,-1583722496,-2097151988,-443874579,-900899553,1478361090,-1957345904,-661774612,1466887299,406750038,58466318,-1962789912,-15853538,-1978787834,-2021127610,2122321452,158599690,202014336,-1427569804,-18432,-1560058205,251593374,922684952,513872442,538348307,2098451,1375785603,167680592,2123169792,184729234,867763990,-5901824,-401729530,-1564934583,1183666193,922701970,1183650642,-860335982,1723355152,-6664192,184549631,-2096335424,1155646,-1699216012,-1207702529,-1957691290,-1961779170,-1962439905,-2002582953,-1978234622,-1706012158,65535,1351763597,1343278264,1342190520,638874,976682752,-26094,244318208,-939711512,326726,-2097062935,1186878,-135724171,176062464,-385649397,2122318062,58001674,-2147424791,1964968574,14477571,218791552,-739703947,-1908505856,57933840,-1711224343,2259,705185418,-1070903068,96377424,1183383552,2126515194,108461836,1354771280,442522,976682752,261792016,-1969139648,1510353680,1183666190,-1202711032,-1706033151,65535,42993407,33179275,-1592813050,-1297936486,113613323,211877888,-1710868206,-955745265,261190,-1711228951,3492,1299562507,-1994692959,243988550,-316010485,1925266249,10152195,57018055,2145976319,1042189060,-1960867056,78772342,1487005395,1511426819,407910659,1077478773]},{"sector":6,"data":[-1710328810,3587,1685438475,-352320840,-339727518,-62470306,1525350401,303840899,-2096335872,1084990,79184244,-951784704,-16554490,70052095,-1962716511,956519446,2082171414,956727078,1914398726,56140062,56235659,459937337,108794239,459802169,-359003789,184549384,-1207601728,65732611,-1996488264,1183579206,-2090901764,-443874579,-900899553,-1957363706,82609132,1343106232,1342185656,699546,-62486272,-108919,-15582666,-15523786,722673206,1347440832,-59310254,-1728044872,-660975534,-2097151990,537635846,195958403,-637090048,-956301310,1257478,976682752,503743250,377692179,-16772320,-15523786,722673206,-1202696000,1385758752,185965136,1048772608,1946161968,807308040,71795475,-637090016,-956301054,923654,1575324416,-326412861,-956109693,-16554490,54323455,1342407352,-1207666945,-1706032897,3019,50555553,1343265798,269367039,16777114,-28931840,722673313,50549254,-1559357434,1183515282,1575324670,1426064066,-326898549,-950642920,63558,721700491,-1995565050,60422726,1444087366,538327816,997094675,1964187142,-92372120,-1962246400,103351366,-890696168,403097345,-1593835506,378213158,1446581032,2084077320,105265413,-1070911117,-1979824503,648150086,105261843,-1946663287,1451951686,321299208,321394313,-1995685213,-1962130410,697956422,420195334,-1962168810,697956934,420683270,-351068138,71732040,105251737,721966611]},{"sector":7,"data":[453749766,-1995723242,1451881542,2094140406,184844070,-14649664,-1709473226,65535,-1979955575,1183579734,-129594892,32921227,286292486,-1961853930,1183384646,-129594374,2130331193,-96040177,-1711782357,195823145,195958297,16285315,-337050753,1488896,305802999,1049352331,1032523554,1183383947,-2585614,142016311,-1710852353,65535,-1192737143,1861681164,-1947169816,923005534,-1996175741,1150020214,-2132225788,1183416292,105155564,-1995942773,1451880006,175932400,-1957989120,-1952843706,1552616524,105786126,990404123,2134342874,1925724932,-2110324943,-25755877,737965823,-11513664,1183575158,-262763538,319178243,69929046,1375884315,-129594544,-1706012007,4355,922690539,1996430210,-59310082,1347469355,305805055,-16222465,1183516278,1347590648,16777114,205431040,1946157629,212243,1183521397,100768248,370216006,216730696,-1711782261,206571009,206706193,305805055,-16222465,1183516278,1347590650,1350565816,1347469355,1637503056,1577058314,1575324511,503318210,1430622296,-1910575989,250381272,1042189142,-1959294192,78710342,-268181293,15877831,1711720192,-253,-15582666,1962870900,1354771206,270939903,270808831,1342179512,16777114,108432128,-422378319,-1961834877,51396126,105286455,185502272,1005398544,-163351615,1946223172,56140060,56235659,1963480121,105134352,1149963125,205794062,1962820667,40140833,56140286,56235659]},{"sector":8,"data":[-1996077943,1149962324,205784062,-955366263,127558,1183658219,726669044,922702016,1149964302,205794062,242548560,151450,876019456,-196702960,-6664170,-2097151745,1283461358,922681602,1996424010,1354771206,16777114,-230257920,49120094,1562371467,182861,1458342741,305805055,272506507,512440203,78715750,1895818195,108068616,-11485141,-15718858,-1206901706,-1706033144,4433,305805055,1343207096,1342177720,16777114,-443851264,2802525,244711427,1966335,204603395,2031871,299565315,8323075,137297923,2162943,24051715,2359551,157941763,2490623,4390915,2621695,48300035,2687231,238354435,2752767,161939715,655363,6029571,786435,191692803,2949375,270270467,3408127,248774659,3670271,221511939,2162690,154533891,3866879,306249731,12255487,217317379,4325631,135921667,12714239,219480067,13041919,212467715,13107455,263979011,4718847,140836867,4784383,161284355,11075587,249888771,13304063,278396931,4980991,14417923,5636351,17235971,6422783,280821763,6488319,176357635,4521987,305135619,6619391,61931523,6684927,218234883,15139071,298647811,4718595,123797507,16318719,33685507,16384255,224395267,16449791,189530115,16515327,240844803,16580863,156172291,16646399,195952643,16711935,301006851,16777471]},{"sector":9,"data":[1167087646,518818645,-326903666,-96039674,-26032,1183449088,-1176229123,-503906204,-1961398087,-96040240,-628366294,-1023155721,721178250,-2084502547,-443874579,-884122337,1167087646,518818645,-326903666,-1588177132,1183390566,1042189294,-1995994352,195096646,971254288,578022982,-1309772149,-1649916,-14980554,52127798,-396955530,-1073020406,1149962356,139758342,1988842219,-330905616,195035136,971254288,628354118,459945727,459814655,31516758,58048523,-1962896919,1722018886,105155355,-1995942773,1451882566,269197562,1178199082,-1206422804,-11527322,-14980554,-1709479882,65535,-1980217719,512490070,931860542,-1323604319,65065732,38074096,-2091551742,1795646,1755401854,1779862299,139737371,1144603253,-2093124346,1156976878,829686018,33703158,251603829,1149967206,139758342,-1980217719,1419442774,-2147483647,35352590,35260103,602603521,-2081667329,1240010950,281445375,460326646,-1708559358,867,460334720,436652029,-16777214,-14980554,-14981066,-14979530,-1206162378,-1706033151,65535,305805055,-362753,-1070860170,775356240,741801747,571411,-26032,-1070923776,459841872,1358448171,1343199928,16777114,302394112,1745224464,-1677327613,261792528,-1560053087,1990265314,165716739,57949835,1043986475,92078968,-352094047,-1547203838,1856049990,302818051,305805055,1343207096,1342177720,16777114,1042189056,-1591768304,78715750]},{"sector":10,"data":[-670834477,722356107,-1559633402,1453396106,1543897870,-196703986,-1995548511,116912710,-16773190,-1163845516,1023419407,208896000,688514721,17861126,183235654,17426081,17861126,1996485190,2050424818,39950851,1996423168,1947110388,2047748867,-125087485,16777114,1002898176,2114155526,112645,-1070923029,-955216221,17804806,-2090902016,-443874579,-884122337,1458342741,-167479669,1946223172,105155418,956847243,1333528662,1178142079,-1958186490,60359748,1410532932,139868936,92023935,1996899899,321691941,321787531,1963480633,105265446,1149968757,1141086468,139727622,1963480635,105265938,346099061,239352080,28837247,721611520,-443851072,442973,1167087646,518818645,-326903666,55417358,-1073020928,1924675188,-6664181,-1996488449,-12715450,-2128644865,750654,1023964417,58064892,-1207895575,1344146290,1347469355,-26032,1183514624,17885690,-1209528688,-129594884,16777114,1975520000,-401698631,1177287846,1654264,-6624654,-16776961,-1207743946,-1706033151,65535,459945727,459814655,460207871,460076799,1342177720,96410,62233088,-1073020928,1978205044,-972634113,-16777210,-14980554,-1709479882,65535,-1705983957,65535,256922,1958742784,-11605757,263077507,-1878690560,-59447282,16777114,-1177408768,-235470838,-1862908279,-64952306,-772387189,-1983380503,110818382,184549379,-385649472,1048837912,1962935992,-18427]},{"sector":11,"data":[28857067,-6664192,-1879047937,-68098034,737298057,1178334278,-1697680650,65535,-1980610933,-1024723898,1342927544,-1705983957,65535,-982138869,504066744,1354771280,983191632,-1207959549,1344146290,16777114,-21894912,-1962742397,1297948645,50336715,50610945,50359296,50613505,50360576,-16721920,50369536,-16668416,50370304,-16537600,50370560,-16535552,50372352,-16626176,50375424,-16551936,50346752,-16649984,50379520,-16699648,50348544,50580737,50374912,-16673280,50357504,-16544256,50395904,-16507904,50396160,-16545536,50396672,-16575744,50397440,-16772608,50397696,-16502784,50397952,-16513280,66560,0,0,1167087646,518818645,-326903666,142508816,-11438848,1996427894,242679568,16777114,309788416,1347469355,-1961998709,19730518,14320384,-6664110,1375731967,1354771280,1342177976,109722,261928960,-263811760,374864,13867600,1719664640,1183694835,138840560,-1710721281,65535,-15960321,-6681994,-1996488449,1451883078,108954620,-1202424832,-11529822,922682998,1996428114,281851910,-401698736,-1073019856,1048775796,1946161570,-6637563,1723335659,512446464,529207712,1468729227,42509058,42604169,244338770,-16700184,-860354954,867717136,-6664192,-16776961,1996427894,242679568,1347469355,-59310256,-1946519809,1385761350,-26032,-310181888,535137026,248139101]},{"sector":12,"data":[-1873273344,-326412987,-2082959842,1448572140,-1928113503,-259289986,867763990,-1582960128,1178145338,-165579510,17828102,1183517044,217064604,-166794490,34605318,1183517300,217064604,-1673099001,234636998,184370886,-1091404147,118884846,-234879559,-177831771,175570879,-16222465,1183647350,45633788,1183666176,1183666418,244338828,1593737704,49120095,1562371467,445005,1167087646,518818645,-326903666,-11118834,1996426358,142016266,-1202667477,-1706033150,65535,-1091404147,118885256,-234879559,-177831771,-62470465,-45693427,209125130,-16091393,1183647862,45633788,1183666176,1996443890,-401698810,1600060954,-1962742397,1297948645,503318730,1430622296,-1910575989,250381272,-1070901673,274631504,-1710983169,704,-1309129079,65065735,-1995839482,-1041630650,274631424,-1995946101,1200354374,-230258426,440656,1089750667,-150452343,-1037329943,726726865,-6664000,184549631,-385649216,1586168064,-95974404,-1946396789,440520,1861737099,-1946973196,-226587688,159989131,-1962774135,1200296030,-228685052,-930406517,-150993224,-259263378,721701001,-6664000,-1962934017,1200164958,274631428,1991,-955228533,8061511,687747,1183516797,-1982269686,-1070921146,274631504,-1710983169,65535,-1309129079,65065735,-1995839482,-661915066,-1946388853,1418459716,-1995994628,1586168407,38243088,100288003,1183383556,50826230,67500614,-62486272,-11485141]},{"sector":13,"data":[1183709814,1183666422,1996443900,209125134,-16091393,1996425334,-401698810,-1073020863,-51838091,637182,-1946652937,-1004631056,105414673,274631425,737953419,70122054,-1962440448,1183518814,-96064522,-1996487635,1599996487,-1962742397,1297948645,503319754,1430622296,-1910575989,116163544,176063318,-1961394944,126554206,-1962932731,121311838,1183516790,-1982269686,2122517062,58654730,-2097089559,1969621630,241077043,1474435,1187456372,-2097151494,2098068094,-92894438,-422378831,-2096210293,1962940024,440700165,1191123179,-941560838,1444422,-15829249,1996426358,-26102,1183383552,2126515196,-62456061,-1961730421,-62510329,-1961861493,113345295,1131659579,1474179,-1070922379,-16729111,1996428918,8435732,-26032,1586167808,276204308,1149973643,-61568006,1468598153,308185858,85214859,126419071,-1961861493,67441734,-2096658176,2113993854,274631481,1988829067,-62485742,76219433,756303403,1200160772,308185860,1325342603,-62485764,1996425096,308185870,1346373515,-1694730497,65535,1586173931,-954234096,-64441,1586170859,-1959294192,1149894212,274631428,1183522699,139889414,1468598153,274631426,-1962539133,340142855,-1728052179,-150993223,341740537,-1199618168,-2090991615,-443874579,-900899553,1478361106,-1957345904,-661774612,1443294339,84428427,1183383574,105286652,-1996483067,1586231878,-1959293956,926546526,-167038859,1996429429,108461832]},{"sector":14,"data":[1342203576,251546,1975520000,112665,1586176747,-92894212,1418396811,39270658,121177205,-1070922636,1182993131,1182991612,-1226111750,49120094,1562371467,218417741,486540032,520158976,922747648,553713408,1929380608,704708352,1946157824,738262788,83886848,755040005,1442841344,939589376,-234880256,1275133696,201327360,-721355006,1157628672,1711341312,-1895824640,-201261310,234881792,2130771716,1191183104,-2097086718,1744831232,83951360,1,0,1167087646,518818645,-326903666,-1957275890,1988692086,1979059196,229162499,704791690,-754404892,-162624544,184608128,-163149375,344653860,-355267919,4186753,1183433227,172395510,-1962930395,-511641522,-1983837200,1150023750,-1947676410,2145878520,-2134408960,325391,-2130414334,-134479897,1962999812,-1605372,38074365,74776832,-16783487,17188086,-410975115,1183580031,992760,-427763829,-754667249,-1983771678,1183578182,1958742790,81188,37554804,1024095232,1064632323,16533191,-163148544,-59310256,-2097136152,1946355326,-128021206,-1946919287,-754667257,132415720,-2114828663,-1962930393,1183577182,165729266,-163148537,1354771280,1577061864,49120095,1562371467,445005,-2115204267,1459667180,106859350,-1325250677,636015364,1183385600,1958743038,236757276,236852875,1963087673,1963407657,37128997,-1001994480,-588709887,106859265,-1961132383,958103574,175440471,108332857,228603531]},{"sector":15,"data":[1187504107,-1962934076,-1961673674,1149961822,106203908,1963087673,1963407628,-968440056,-1595342848,959744769,1964194870,-968439842,1996423169,-26106,-259325952,91616779,-352321096,-1983894782,-1072969658,1961427829,106859265,-1325250677,-2132225276,1183387620,-25928,-259325952,1355564685,-1202667477,-1706033102,65535,-1962516853,-754405113,-1176229144,-503906294,-2084813175,1946222206,922701845,922685576,43649532,-150994942,-867792424,1996437483,-1506345028,94418957,36084304,-654901248,-154384759,1954527302,-1203336420,-1191149787,-369688556,-1674117296,94418957,-26032,1183383552,-1203308594,74712064,30820038,12076791,-972786687,-150874298,33601606,-1128790668,-1207702782,1183383952,108462036,16777114,-901347072,12076791,704934920,-166925376,1954592838,-352210940,-1962758142,529255006,1183319818,-1069103139,1586167808,-2145416246,1963131263,-1069089021,-1949671797,-1069153529,1183666240,548950238,-6664192,-1929379585,1343671366,16777114,474253568,141934603,16777114,71559424,-1962516853,39291655,-1996209015,1586169428,1074236362,-26032,1077936128,-775804007,-1102673416,-26032,1183383552,158679226,57383510,183042048,-899773692,1586182143,-13107270,-6635914,-1962934017,1149876806,1010186508,-1957399533,957561886,-1957923785,38046492,-1962784887,76218972,1017186185,-1962637037,-1961673698,1149829703,-1994618110,1552614007,-1992849150,-1961673674]},{"sector":16,"data":[-2092987620,1979647613,75334406,-1961855745,2361413,1981808701,-6662394,-2097151745,1946207358,47704323,-100609,-1897390988,1975520003,58714371,13008515,417923957,-2080470270,2122516679,91488510,-351885151,111321347,1351763593,378947213,-26032,2122514432,57999560,-16672791,-1070886282,-6664112,-1962934017,1149873990,-1837695214,503414968,112720,-26032,1177223168,272927151,-1986509173,1183519812,373590426,-1986509173,1183520836,440699294,28133110,2122385269,2080440224,16758789,1183515627,-1874425440,1344160909,-1198491905,-1706033056,452,-1949671797,4161567,1190541685,863301805,-1198360833,-1924136928,385838214,92379728,1586167808,1074236362,1820757328,-1818603265,184549381,-1962117696,529255006,615335562,-1962440464,1177261638,-1941534308,16678531,-11508108,-16122826,-1710192586,1208,-1728051963,-150992199,-4697863,-879079424,704643076,-754404892,-2146595872,-1056243483,1190528393,628361389,-6260993,-16127434,-1710196682,1256,-1728050683,-150989639,2142785785,-73773056,-352321532,-1983894782,1317047878,938150031,-1198754049,-11532896,-1710381514,491,-1728051963,-150992199,-4697863,-6664192,704643327,-754404892,-2146595872,-1056243483,1187448201,-2130706290,36086910,1317012606,2122318479,74711206,76500608,10976896,1317012596,1190527375,74777005,-2138157440,-2138159477,78712804,1301012691,266436866,-1983837440]},{"sector":17,"data":[1166737989,-1947196414,-511637940,-1056243697,-2097003127,1946222206,1250331954,1216776703,-1472790529,2144262,1216777040,1344159999,16777114,1216776960,-1957674753,126601822,-6664128,184549631,-1976666688,-467008444,-511701621,-1983837440,-25263355,-1988201472,-1961885130,1418396740,236757766,236852873,1343112333,-351163208,1218349948,-1387885825,126414884,620905867,-11534321,-1694545738,65535,-12155255,1962999613,1216777010,-1957674753,1090472070,548950080,1268404224,-1962934266,-956348258,-1962737337,254083653,-1224781824,-6619320,-1996488449,-1962981754,721372806,-2146595868,2028536033,-1607038465,71600909,-1559866229,378084222,1150098304,1354256398,246960142,-1483059200,-1962934270,1418397764,106182922,1144588405,-385649404,1586167973,138709766,-1995811701,39291143,294531,-1897331851,75401984,-1962516853,78709319,-461313837,1116113167,-1995994113,637485190,179372095,227270867,184804736,-1979348543,721371526,38636516,184607104,38111681,-12417397,-788496603,105745376,184672640,105220545,-33135232,-33331840,-50240128,-33462912,-12417289,74711552,16862592,-12417289,74712064,33639808,-12417289,74711296,16993664,-12417290,-2147191680,1577125453,1575324511,1426064578,-326898549,-2091493622,1946158718,-1472298115,91553798,250200107,-1472790783,74907398,481178,1958742784,16312579,111687423,48905859,-1207602176,65732622,1342180792]}],[{"sector":1,"data":[506522,-1449504768,184549383,-2094697024,191038,922684276,-6682968,-352321281,-1976107251,-1472790778,-26106,113704960,1704,179610,-1472298240,-1804271610,-1705983957,65535,1048808171,1946158754,-1573453949,74907398,16777114,1975520000,-1573454053,899078,-26032,-1706033152,2020,492954,-10950400,146798123,1211513104,-2091024893,1946169981,846593873,-1710983425,2046,1115013131,1342180792,549786,-129595136,111294207,136419920,1187446784,-956301062,269022790,2147120697,-161576013,3309443,2013203316,-126419150,471450,-96010496,955664003,-2092507413,-1645528889,1577058744,1575324511,503317698,1430622296,-1910575989,108462040,425603,1048775796,1946157802,964613,230163435,1369067520,1342177287,-2080463640,1946158718,33998612,-956301296,-15852538,503760895,-335544562,-1610168558,-956301299,-14975482,-2147039233,-2080375013,-443874579,-900899553,50338050,-16666112,50399232,-16677376,50399488,-16392192,50399744,33800961,50334208,-16493824,50373632,-16384256,50342912,-16577792,50345984,-16268032,50379776,-16280576,50347776,34062337,50343168,-16477440,50383616,-16378112,50384128,33730817,50346240,-16590336,50354944,34040577,50349056,50821633,50349056,-16506880,50359040,-16482304,50359296,34074881,50353920,33806849,50354944,33833473,50355200,33795585]},{"sector":2,"data":[50355456,-16586240,50364928,-16583168,50398720,-16623360,67328,0,1167087646,518818645,-326903666,1008634628,38243091,1358710409,216534672,-62485760,-1962742397,1297948645,-1873273141,-326412987,-2082959842,1586169580,109019910,-2096728577,1962869887,106859353,-1994635381,-1599997370,1977105165,-339727612,268607755,1963345465,112649,-26032,2122514432,276037882,-1694861569,65535,-955883893,7239,-2096734581,1946160255,209190664,16777114,106859264,-16496697,105367551,-310116353,535137026,46812509,-1873273344,-326412987,-2082959842,1187448556,-352321286,8304706,-1946521865,1921513432,1954545683,112645,-1070923029,201082505,-2096728896,1962935934,-58817780,-2095745792,1946159230,8304655,100298487,-1873800340,-13768690,-1577433345,1178142398,-2085192454,-443874579,-900899553,1478361092,-1957345904,-661774612,1443425411,-1878624513,9431054,-1946401143,-1961673674,1183386692,1958743032,-60912792,1346373515,-1946657141,-1706016761,65535,1366671371,704988298,-754404892,106859488,-511701109,1975597824,38243132,1418457124,-754667258,266764522,-1036262701,1200301941,992514,-2147070837,-1056182047,-1962523511,126486110,1284236330,14778372,1149878539,-339309820,959744778,1964194870,1589652358,-1962742397,1297948645,503317194,1430622296,-1910575989,116163544,106859350,-467007606,-1946532215,-1961942498,108432159,620905611,381222927]},{"sector":3,"data":[-1948125440,306220016,-1946401143,-1960866856,2145681415,2012890683,-96024827,1586167808,-1959293956,-472778146,1577205899,-1962742397,1297948645,262858,9240835,458753,21495811,10748159,6684675,4194559,7602435,4521986,0,0,1167087646,518818645,-326903666,-29457660,477429761,113393283,-2095745792,442430,1218055797,184549377,-1878690368,15329294,504066744,1354771280,-6664112,184549631,-385649216,113705162,476,191891143,922681344,922683018,1924665916,-1706025461,65535,-1519009781,111951491,-15567872,-1207522250,1344146290,37530,1975520000,-1371634804,359923718,112080639,504066744,11442768,-1073020928,1894318964,-1438743553,359923718,111818495,504066744,-26032,-1073020928,1424556916,192067839,-26032,-1073020928,1924674421,-6664181,-1996488449,-12714938,1024357631,158662652,-26032,686358528,192067839,112720,-26032,-1073020928,350815092,192067839,-6664162,-1207959297,1344146290,16777114,-16914176,-1962742397,1297948645,-1873273141,-326412987,-2082959842,113708268,1734,32521859,-1709149184,65535,57982987,721541097,31761344,-1711148893,543,57982987,-1878932503,29878286,1342177720,16777114,134673920,57934096,-1962824727,-1979494882,-467008697,-1946925431,126563935,-1309387125,65196804,1060290,-1695136119,65535,-1980086647,1048837206,1962934812,9103619]},{"sector":4,"data":[12336771,-1589283584,378215276,372841326,108338026,459802169,512438900,1822491470,1846971163,374815003,92021375,1930708793,-161576165,-1727772789,319178499,372967511,1182735210,104531580,1047993192,35274371,-2096598016,-2097022354,-1593770914,378215276,372841326,192224106,459802169,-6683275,-16776961,1996487798,-25862,1822031872,184549378,-385649472,-1070923540,-1560232797,480448026,1174812930,960263171,1963064838,460366134,19261649,35300096,54920903,922681344,922688362,922688360,922688366,28842860,-6664192,-1711275777,644,57982987,-2097111063,99902,244322677,-1711200024,765,57982987,-16742423,1963034638,-18320,-26032,-1070923776,-6664112,-2097151745,359793658,1077740919,-955354611,16900614,-1341733120,-352256255,-502872308,-956301311,1258401798,-18432,-26032,-1331625984,1476802817,-400720613,-1073020381,95950452,-124104704,184549378,-1207339584,-1706033151,65535,16777114,1975520000,1354771217,16777114,1278672640,-26085,-310181888,535137026,516640093,1430622296,-1910575989,216826840,55451275,2916227,922709108,1183647370,-1202710794,-1706033151,857,55451275,-1926465537,1343682118,1342177720,16777114,1958742784,-1069644991,980746246,-1980217717,512488518,1194918734,-1962508786,1183387207,-196703244,2130462265,1312227085,1996443651,-25860,512425984,2013201230,1354771244,-26032]},{"sector":5,"data":[-310181888,535137026,516640093,1430622296,-1910575989,753697752,1310624598,912231171,1149974411,1141086468,139727622,-2097151699,1347551450,1347469355,16777114,-599357184,-2206071,1376926262,-26032,983629824,1980119314,-1591315173,378211934,1446579808,2132442334,-599377659,-22998158,1477386,-564774645,92214908,1927038521,976682767,-562626798,-1864599809,18868238,957495969,1963045894,306749717,25298489,1352731765,-2079966973,-385649407,113705137,4288,-1559086431,1218511284,25338642,-1560063839,512426372,529207074,-150989128,-1962822610,272665584,-2082847095,-16560066,1048777077,1979649464,112645,-1197402389,-1961759987,931912286,-150993224,-1962717138,71338968,-1915206007,-1202659258,-1706033138,65535,719406730,-6663964,-2013265665,1183703366,-1229434655,1183469569,1357130464,16777114,-532248064,-1241127894,-700020479,1191172235,537380566,-1915193601,-1705978298,65535,-959029621,-6684665,1577058559,-1962742397,1297948645,-326412853,1443163267,-150992456,52123694,-1995324410,113770054,33554824,1075533985,28313147,-1070922626,915085547,183177668,-16614271,-2081459073,1983449542,-1192134658,-1956773887,516120037,1430622296,-1910575989,183272408,172395350,-1961134429,-1961942498,1488927,-1962250505,272665584,201082505,-1962314560,-2095084584,494207039,1621344299,241083150,184420039,113770495,2147420928,55576263,-974520321,-60912896]},{"sector":6,"data":[126558091,-1946794359,1451951686,66824,1375785603,-60912816,67438475,112742400,45633536,1996443648,-25866,1352859648,-60912893,112736139,1345255168,-1948742909,1351288384,-129595128,972707465,930875478,1178142079,-1959759354,1452013638,241083386,241178249,253894283,381165451,175044352,1082912907,72387330,-2097151739,-22871854,1476874,-2093225205,217150,211880309,236358407,-1961628921,529267806,-150993224,-1962717138,-1962898448,1587741264,1612089614,-129594610,-1543874933,378079998,251595520,-2090990768,-443874579,-900899553,50340102,-16468224,50366720,-16585984,50400000,-16698368,50400256,50346753,50359296,-16720384,50400512,-16451840,50400768,50396929,50360576,50399489,50360832,-16639488,50370560,50568705,50364160,-16576000,50372352,-16525056,50340096,-16471040,50373120,-16454656,50374144,16962049,50337536,16947713,50337792,16950017,50338048,-16462592,50342912,-16520704,50377216,-16675840,50347264,-16578304,50348288,-16642304,50348544,-16728576,50382336,-16397824,50384384,50356225,50377216,50545665,50380288,-16544256,50362624,50362625,50354688,-16768256,50395904,-16619776,50396672,-16725248,50397440,-16716288,50397952,-16687872,66560,0,0,1167087646,518818645,-326903666,-950642844,59462,14304967,-264338688,242548737]},{"sector":7,"data":[31342211,-2096663296,122942,1183651700,-1070903076,440400,-26032,1187446784,-352320292,151451172,125108496,269027062,-1207602174,65733016,1342278840,1356613261,1342179000,16777114,108432128,1116595921,-666465828,184960651,1025995968,2087976961,1962934845,18016515,1962935101,25225475,1962935357,68872451,1962935613,85190915,1187459563,-955252504,268884550,48905859,-2095418368,992318,512430964,939462436,1343266488,237210,1975520000,-664892666,-1091098752,1183514625,-62486040,970606219,58522694,-16454935,1996425334,-664892420,58013573,721734121,80210368,283657927,-632895728,1822494742,1846971163,1779841307,957117723,1964730374,-664892666,-2080823424,1270846,1586169461,-819494696,112868995,-15371264,-1710510026,65535,1081459211,-2133303669,954988327,276838143,16777114,1958742784,-700004565,183173120,2080375101,212229,1996428670,-25898,1183383552,1975520214,-664892441,-1695078528,65535,205405827,-2096663552,127038,1586169460,-30965544,-385595416,1187512121,-955244312,270850630,16777114,-1979303168,-1961855738,-14978018,30710327,20774912,-2092403712,437310,1048778613,1962935982,1948158736,-1707606245,65535,1946157373,-1405189334,192151558,111949567,185172968,-2095548992,437822,-622263435,-1372127234,158263302,58048523,-1946235671,662755422,-20715011,1088964295,-632895728,1183649868,244338922]},{"sector":8,"data":[-16496408,1102579830,2122338320,192217324,15367811,146277748,721611520,1603948736,-16777214,1119357046,2122338320,192217327,15564419,146277748,721611520,2140819648,-16777214,1136134262,2122338320,192217330,15761027,146277748,721611520,-1617276736,-16777214,1152911478,2122338320,192217333,15957635,146277758,721611520,-1080405824,-16777214,1169688694,2122338320,192217333,15957635,146277757,721611520,-6664000,-1207959297,787939350,1183388218,572427206,-1960867057,307792880,133635979,91586560,-352321096,-1983894782,-1072967098,113725556,3886,305805055,1342178232,1342177720,16777114,1958742784,-800667851,2122514432,326960080,-150986056,906350702,-6664175,184549631,-1706461760,65535,253894283,1988829067,307792838,1333796747,113737729,-61658,-3258681,-163148801,-942389623,53318,63995523,782325629,-800704241,1085806460,-800159232,103932115,1022037798,254674687,-338671873,-830569579,-2144502528,1962997886,2275367,97545975,1183387958,-732001332,1346373515,1087129227,-26032,-1073020928,1183516277,-834238000,-338671873,-125927261,-2091158272,2097204862,775848789,75301647,254674687,1208954529,-1949415799,931910750,2275414,97414903,-1924132554,-1706032828,438,-6664128,-1207959297,1317666880,165729230,-1961941498,-1961942498,-964785377,-1961731701,23560223,-767113345,2122514433,1618215122,13649607,-797015296]},{"sector":9,"data":[-1588232957,1178144558,-1977254448,822399046,-962574712,-970022586,-1205820858,1861681186,288818640,-1555657392,105093712,82509824,10503878,97535627,1183387718,-1640562748,1183666182,-11528544,-2135374730,1570394112,-16777210,-1511272378,-1579655541,119607078,13649607,-797015296,-385647613,1996487749,-800683256,1343243781,969819787,91607110,-352319304,1354771202,319898,-800653568,1187501035,-955219736,277469766,1357530765,149425808,-327254013,-1962576640,65792582,-1979711560,1996463686,276871176,1354771280,326554,142016256,1343259064,10387075,146277749,721611520,362434752,-16777211,-2101868426,2122534928,91554206,-352319304,1354771202,339866,142016256,1343259576,43941507,146277749,721611520,1234849984,-16777211,-2068313994,2122534928,91554718,-352319304,1354771202,354970,142016256,1343260088,15695488,2122386549,1962995949,571397,-1070923029,93035088,1996423168,277264392,-276922288,-2129890048,23653758,146277749,721611520,-1399172928,-16777211,-2017982346,2122338320,208994543,-521306495,-1207601919,48955400,-1705983957,575,-939843351,285272134,98191047,-82581231,1342177720,16777114,-1650432,199883846,-2090901765,-443874579,-900899553,-1957363708,49054700,205405827,-955878144,17203718,-2109832448,108855302,-1560170847,-1365178750,-2113521407,-949980154,141360710,109852415,1342177720,503868600,1685584,-26032]},{"sector":10,"data":[1174470656,-2109832194,259260678,-100609,-1710849482,65535,-1191295351,-11533916,-6619530,-16776961,-1207525834,-1202712560,1344145516,1343230136,1342210232,16777114,109224192,-1962824029,516120037,1430622296,-1910575989,418153432,16533191,-398014720,748748800,773229331,1846950163,2132507675,1812347142,-15501797,28837494,314068992,-1248178176,-385875962,1996423448,1354771206,1342182072,16777114,976682752,1781989138,1748434715,-26085,1822490624,1846971163,1779841307,957773083,1964730374,166639632,108461904,-1207848472,-823588370,1781989120,1748434715,1849098011,1815543579,-401698789,1183384529,-162100748,305805055,459945727,459814655,-1202667477,-1706033150,1899,1343200440,1357530765,1342178744,26010,261928960,108461904,-1593745944,60362272,319849478,990938646,1669330518,1178273148,-10718220,2122573894,1400845032,1358954424,726684313,45633728,-6664192,-1593835265,246484894,19261651,-1948200192,-444535730,-1983837249,1183706182,-1665642262,179851279,-6664192,184549631,-6261568,-1665661322,1183666191,-790081284,-58817791,-2087947002,2117265534,-18880253,1357530765,-402229505,-310181534,535137026,46812509,-1873273344,-326412987,-2082959842,1187474668,-956301164,38470,305805055,459945727,459814655,543386,108461824,-1202667477,-1706033137,2185,1342898872,1352156813,1342190520,470426,-1740206848,108461904,-1593782296]},{"sector":11,"data":[378211938,372837988,1266424686,104400511,1131813740,-2087303425,2134021758,976682810,1681325842,1647771406,113678862,1183645696,45633688,381177867,-1818603520,184549383,-4426560,45614710,1183666187,-722972524,-1803648255,-2086111995,2117244542,108461840,1342177720,1342181304,435098,49120000,1562371467,182861,1475119957,108432214,-1962639733,-754405116,75240,76219785,-388822607,-1996488411,1149961029,-754405118,75240,-1962523255,-754274044,4138472,-1978907255,-467008956,-1961933431,145818692,-1986467629,1599998277,-1034033781,-1957363708,-1957275668,2123040374,-1325102332,636015368,92864515,-1995815797,1149961029,105220358,-1995946869,1149962565,205883652,-443850914,311901,-2081649835,1448543468,-1962510709,1183515774,-1947196162,-2129511922,184553441,-28931647,604259466,-771313401,-1324053536,-2132094198,-1040039966,1317790762,14778620,1183432971,-62484996,-26032,1166606336,-1956684276,79846885,-326413056,1988843095,108956424,162944,76224885,-523040591,-511636085,-1053097728,1153829236,1586168066,-2146959612,1962935676,54823706,-523040335,-511636085,-1053097472,1153829236,1586168069,-2146959612,1962936444,105155355,-523040591,-2130555509,989921505,-972458815,-1962866620,134153310,752768,1149966965,-754405111,72190944,989913472,-972458815,-1962865852,134153310,949376,1149966965,-754274036,-2129818656,1006371041,-972458815,-1962865084]},{"sector":12,"data":[134153310,1145984,1166676853,1004808706,158601028,17908934,-16490869,-1956684281,113401317,-326413056,1988843095,108956424,162944,76224885,-523040591,-511636085,-1053097216,1153829236,1586168066,-2146959612,1962935676,172329745,1946371129,88393225,73304833,2088765439,292880392,956712331,158598724,17319110,-16490869,192708615,-1961790208,1144588357,-972458999,-1962865852,134153310,949376,1166741877,205797636,1153829236,1586168078,1577582340,1575324511,503318210,1430622296,-1910575989,149717464,1183536641,139889414,-1980086647,-2037515178,-1924071688,1358887558,305805055,-1962260853,330838,13796097,1996443730,108461832,16777114,16788736,1375787651,142016336,-1207535873,-1706032896,65535,-1232399381,-1165951240,1965096698,107905812,140411649,-125400320,-124846082,2143292414,-121732127,142409982,-1946532213,116128854,-1962522997,-2090989482,-443874579,-900899553,-1957363704,49054188,27630081,1183383552,71711230,-1202712716,-1705967624,65535,1963214395,74907423,1342179256,-16873843,-4698090,-6664192,184549631,-1207601728,48955393,-443826133,180829,1167087646,518818645,922736782,1996424862,-401698804,1996485682,-401698806,-1073020870,922692468,922683018,1996424862,75544588,201431632,1593769984,-1976107258,-1640562938,209125126,1342439608,16777114,49120000,1562371467,576077,1167087646,518818645,-326903666,-1640562940]},{"sector":13,"data":[108461830,-1705983957,3132,201082505,-15633216,-16343498,-1706031498,1477,65781803,-2097151560,-443874579,-900899553,1478361090,-1957345904,-661774612,-954143613,64582,673527,-385649392,1183515565,267396362,729071627,1962938429,9365763,1962942525,14346499,1962950717,19982595,1962967101,38267139,1962999869,50587907,-1962710551,4000326,1025274896,527699969,1947206205,268647714,71116148,1026061328,1114902533,-1711061527,65535,-1711063575,65535,-1711065623,65535,-1711067671,65535,-1929173527,-1163660218,-1942552815,768006,-11513191,-16348618,-16014794,-385114058,-6683906,-385875713,1183515390,269499658,289217652,1025471504,578031634,1947210557,269761829,356329588,-383028208,-6683942,-385875713,-6683950,-385875713,-6683958,-385875713,-6683966,-385875713,-6683974,-385875713,-6683982,-385875713,2122384042,1947214602,176062732,91492385,903322,172395264,1947213885,270613778,574428532,1025012752,460591139,-1711112727,65535,-1711114775,65535,-1711116823,65535,-16620055,-1207530442,1385758734,-1976107184,-1506345210,-1539899637,38070539,1258978945,-1710918640,65535,1357006477,-1763176816,172395512,1024475181,58064907,50473449,-13724736,722388135,498618560,-1070903296,244882000,266928128,1354771202,1342182584,14974592,2122525813,619380962,-1202667477,-2142240747,1962993534,-444693735]},{"sector":14,"data":[722594560,381178048,2122338304,108331242,15236739,28884085,733604608,397955264,2122338304,108331245,15433347,-425614209,732031753,397955264,2122338304,108331245,15433347,-425620356,-338102519,-339727481,112648,45614059,-1360506880,26011905,-1202667477,-1202716644,183238655,-1202667477,-1202716644,-1706033151,65535,35391175,1743323137,-532247295,-15615325,-1207530442,1385758735,-1976107184,-1640562938,-1674117365,21031179,234687979,237178384,240324155,242290285,243273334,245698188,-1962856983,-2144531898,539920,535364470,-1816132863,-1884815570,1354771215,1342179512,-1705983957,3909,325336707,-385649408,-6684418,-385875713,-1070923530,309328,-339727536,1354771234,1342178488,-352321096,1354771222,1342178488,-352320840,1354771210,1342178488,1342178232,16777114,12642560,-1202667477,-1202716661,384499952,-1202667477,-1202716661,183173480,-1202667477,-1202716661,-1706032672,65535,-16738839,-1207530442,1385758736,-1976107184,-1841889530,-1875443952,-176821488,554636814,957295887,1477397519,1997497359,-1955992817,4000326,1024881681,410259713,1947271741,285424922,71113844,-349211631,-26037,1156251648,16777114,-1707218176,65535,922695403,330827404,1347590400,109721343,263468799,263337727,922687211,347604620,1347590400,109721343,268449535,268318463,16777114,-62486272,-229757,45615477,-6664128,-1711275777,65535]},{"sector":15,"data":[-1962742397,1297948645,1426065610,-326898549,2275332,84176631,1183387958,976683006,-6664174,-1996488449,-1070859194,1620048,-59310256,915098,470206208,-1962934014,46292453,196663,16712778,196744,16714536,196887,16715632,196888,16715520,196889,16715535,196890,16715861,196891,16715168,196892,16715160,196893,16715152,196894,16713713,196639,16715099,196895,16715091,196896,16714513,196641,16715075,196897,16715015,196898,16715121,196771,16714976,196899,16711877,196772,16714968,16974116,199560,196741,16714960,196901,16714952,196902,16715728,196903,16715721,16974120,196941,196745,16715714,16974121,196988,196746,16712683,196652,16713819,196653,16715799,16973870,196970,196752,16715781,196790,16713745,196664,16715059,196792,16711738,16973881,197743,16973977,197801,16973978,199720,16973979,199658,196770,16715804,196803,16711992,196680,16715843,16974029,198174,196784,16712676,16973915,199542,196668,16712488,196830,16712479,196834,16712449,196835,16713500,196710,16713268,196712,16713728,196715,16715083,196730,16715067,16973948,199587,196701,16714090,263]},{"sector":16,"data":[1167087646,518818645,1048828046,1962936006,-401698805,113704975,67270,-1962742397,1297948645,-1873273141,-326412987,-1193767394,-1706029008,65535,-1962742397,1297948645,-1873273141,-326412987,-2082959842,346096876,138819856,1491665788,269918465,2097694265,21883139,1021841040,1958742786,459847715,459061328,374864,-26032,-1070923776,-1560110941,-1599929702,1782481670,1383334675,-16222465,244319862,-1560168984,1996425700,1312227080,-401698813,1183384169,805750780,-939524337,-15781370,-1811494913,-956301296,17220614,1996443648,-466157818,-1741226231,23828994,922681344,-6680524,-385875713,28835981,-1581978880,1178144788,-1207206392,-1706033151,65535,379654635,138819856,28841341,-6664192,-16776961,721635894,949637312,-16777213,922683510,244319054,-1996361496,2122579014,125632518,411335,-1593054464,1178144782,-1996259834,1048774214,1946157724,805750540,-939524337,-15781370,-59310081,-16353537,-2096503754,171070,28837237,721611520,-23441216,-1929379839,-1873803706,35186702,57982987,-1694537495,65535,-16222465,244319862,-16765464,-1710214090,65535,-1961136991,958098966,1964730902,1745238284,-955878117,17217030,49120000,1562371467,313933,1167087646,518818645,-326903666,269787398,2097694265,138840837,346096619,922701840,244319054,-1996410648,-11469754,922682998,1048775140,1962939242,112645,-1070923029,-26032]},{"sector":17,"data":[1788936192,1958742803,81186,37556596,1024685056,326434819,16777114,-1710429440,65535,-6683157,-956301057,190470,460103936,460199563,-1996319581,-956131818,443398,49120000,1562371467,313933,1167087646,518818645,-1667114866,105265424,1048780158,1946157722,243717,1048784107,1946158752,178181,28844267,-2095322368,170558,112723316,-2096108800,434238,79168884,-1207702784,-310181883,535137026,80366941,-1873273344,-326412987,-942109154,1272326,-1673624832,1081344002,43531907,-2096139264,170558,113707125,136042,1048783595,1946157722,-1740733681,141885442,325715655,350945283,43662979,-2096270080,170046,113706613,70506,325729923,-1207602176,48955393,-310132693,535137026,516640093,1430622296,-1910575989,183272408,-167354741,343146759,137216907,951687440,1358558976,-1705983957,65535,-1962516853,1183387207,912231418,1183385483,106859516,704857994,-163149340,16271047,-1960973568,1200356446,-96075508,956843659,92207686,-336050549,-129564912,284968579,972441227,-612566970,49120072,1562371467,313933,1167087646,518818645,-326903666,-330920684,-1070903274,-1202696112,-1706033151,65535,1031061515,1039025803,91357696,1979843133,-330920682,-6664170,-1929379585,1343679558,16777114,-1960318208,1183516254,-1962440206,1183516254,38242804,49184385,-350981118,112653,-26032,-1073020928,28837245]}],[{"sector":1,"data":[721611520,49120192,1562371467,268618317,872481536,1744831232,-167705856,1778385667,-1409219840,1828717315,-956235008,1895826179,-788462848,1912603395,-771751168,-1828651264,-620690688,301990656,-2147417344,318767873,654312192,889257730,536871681,906034946,-1811873023,369099521,419431168,922812162,2046821121,939589376,318767872,989921025,-201325824,1962999552,117441280,1979776769,0,0,0,0,1167087646,518818645,-326903666,-950642836,38470,1352156813,-1202667477,-1706033101,65535,-1207535873,1385758848,10664016,-1962512649,-1606513704,-12743919,838795889,1352156813,16777114,-1367440640,-1201441792,-1706033126,280,1083590281,-175418252,-950866301,56902,1686122987,1686161154,1153842946,1149894659,1007100930,-2147060479,-336067996,38046227,37488420,1149897333,217588738,38045699,-2096839037,-898301892,1353598605,-6922613,1751095,20355664,1183514624,-2090901866,-443874579,-900899553,1478361090,-1957345904,-661774612,1460989059,10664022,-1962512649,-1608610832,-1960867055,-1961779138,495653952,-1995290485,-935592882,-1070922379,-16711703,1996424822,-163148292,1354771280,149146,-96040704,1065605259,-1193315328,-1706033101,613,1090012809,-4716939,13560319,1343173816,-500085,3389495,45390416,1183514624,263674,-899447,-661977482,-16222209,1183647351,-6663946,-1996488449,-661916602,1962950528]},{"sector":2,"data":[9431299,-1946657141,-263812857,1089750667,-260636848,-1963696501,1357130247,221594,-262239488,957298849,779355207,-1996208341,1191308870,-262239484,51279755,-25039242,74842832,65783435,-1962749768,1200222302,-262239474,32392843,1586175047,255238640,1946306361,38218542,32261769,1586168391,175606768,-2115209725,1980080382,-339309820,94418947,-1980735861,1586170439,-330920976,-1961605375,1600059462,-1962742397,1297948645,503317194,1430622296,-1910575989,283935704,-1564977577,107935488,512487563,529207712,295714443,-1961475957,340298525,1005997705,721778120,10021312,-16353537,1183708790,-1070903046,43817552,1183383552,-1948742664,-230258425,-613105653,-150993992,1077998190,1357923977,16777114,-196704000,-1207601856,1558970367,-1946919285,-62486265,1358460671,1089502851,1085811070,-14161152,1191118454,-159973386,1358579341,-1705983957,65535,-62488240,1996423296,-260144132,-1948811456,-1705971642,65535,1089498755,15761027,1586219391,-1960866828,1200222790,-196703486,-310157474,535137026,46812509,-1873273344,-326412987,-2082959842,-1957296404,1065354846,-1207601920,1122729983,16533191,195600640,2113685049,10664174,-1946390793,-1607037992,-1994652911,1200290398,1014965253,-15305717,1602946678,-1875378402,43706382,91602955,-335788405,-62456059,-2090941461,-443874579,-900899553,1478361090,-1957345904,-661774612,13823105,175570774,1354122893,1342194360]},{"sector":3,"data":[16777114,-146356736,-1233223680,-1207536384,1172930559,-1236890366,-401698736,1183448927,2147433978,-1706031500,65535,16777114,-96040704,1954545469,-1236890154,-26032,1183383552,-948682500,-150953288,512490094,117641632,-2080881015,1946158718,-2133292282,-1954544305,1204287582,-1962933752,-208930722,-1995946357,254019140,-523107407,-1963428213,-511703988,-2000614777,1586168903,-62485512,-14792823,-6620554,184549631,-1961265728,-1961779170,10663967,-1946521865,510722032,447386,-11015936,737834751,-2037559104,-1202651338,-1202716544,-1706033151,1783,1962967101,985563403,1974141183,9824515,-2037792725,-2037776588,1178206002,-2093386744,1946486910,537311283,-26032,-1564999680,-93391104,915134603,469963168,-2080874871,-1635187261,662765358,782142336,185565439,-500085,-1997857161,-2131206517,-129945,-6620554,-1996488449,-1979764090,-1946209130,126482526,-2096998519,91619322,1962934077,8435885,-1957670247,-1946209658,100611222,-763166593,-1706012160,1324,-1980211573,-488040377,918454528,1958621695,-9049853,956843659,1962883206,343304,1692992372,-1770093569,-1962445568,-1979755898,1586206278,72319224,-128021759,-12286325,-12151157,1468598153,8435714,-1957670247,-1946205050,100615830,-763166593,-1706012160,65535,-1980211573,1586170439,1216777208,206014975,-1946657141,-1979757946,1586171463,1283886072,273123839,-1946657141,-1979756922,1586172487]},{"sector":4,"data":[1350994936,340232703,-1946657141,-1979755898,1586173511,-1773761544,-2095560823,1946355838,1418104118,-1634053889,-1996488701,1967193158,-20256509,295706251,-1564991605,-93391104,1183576203,541100540,-1862633729,29943822,58048523,-1946245143,-2090927546,-443874579,-900899553,1478361094,-1957345904,-661774612,-351867773,-92372214,721712384,-1959662656,1191118942,705137160,244338916,-1996477208,1586231878,105316102,-467007606,-401698736,1183383577,-96060932,1183566708,-62510086,-1962742397,1297948645,503317706,1430622296,-1910575989,105286360,-1705974742,65535,175423499,705054346,2098660,1183450603,-2082199034,-443874579,-900899553,1478361090,-1957345904,-661774612,9628801,10664022,-1962250505,-1607037992,-1959490799,38832896,-1980217719,1183578710,-2037825528,-2033713290,720756,1342182584,21658,-62486272,-1207536320,-739639297,1921435392,-1962934017,973042822,2097115782,1954972464,-2037708033,-523108492,731504849,-1980182078,-36730,726727798,1704612032,184549383,-16091712,-6620042,-352321281,105286586,-9009607,1996442739,1991704330,2022084095,-2135404289,28856320,-6664192,-1996488449,-1711313274,-881470965,1962967101,-60912698,-1232396405,-422445198,-2037651759,-1769209992,9043834,-16625527,-36218,-369133946,1586233201,-1960866820,-771788106,-1947807258,1452013638,67066,-1996434813,38832384,-1946388737,-771788154,98619872,731447300,1358483906]},{"sector":5,"data":[1342177720,16777114,-62485760,49120094,1562371467,445005,1167087646,518818645,-326903666,-1202301180,1861681314,-1947170042,51486750,108461879,-16091905,244321396,-1979798552,1967193158,-339727612,-1608610971,-1205892335,1861681314,-1946645754,1099562054,10663962,-1962512649,-1608610832,-13171951,1962870390,242548492,1911033488,-62486018,-1961331392,-1961779170,10663967,-1962512649,443678712,266650,-1951470848,-1961779170,10663967,-1962512649,-62485520,-1206108023,1599995905,-1962742397,1297948645,503317194,1430622296,-1910575989,183272408,-163133866,-146356697,108461829,1342189752,545434,1486508032,-2013265912,1996486982,1095686,141007440,-1706033152,2157,-506232,1085802102,2090487808,1342177288,557722,-96040960,-1207535873,-1706033072,2193,144153168,1183318016,108462075,1342185656,16777114,-6664192,-2013265665,1183710278,1996443894,1354771206,572427088,-1205892337,1861681174,-1012986,1895761008,-26110,1048772608,1962934750,112645,-1070923029,49120094,1562371467,352504397,1124074240,167837448,1023410945,-1962868984,-2030042368,-1912537339,-184483072,117440775,2097152768,738262785,1509950208,771817220,1392509696,822148865,83886848,889257729,-939523328,922812164,-1929379072,939589379,-1375730943,939589376,1157628672,956366592,536871681,956366592,738198272,973143812,738198273,989921030,-1828715775,1006698244,-150994175]},{"sector":6,"data":[1023475459,-1107295487,1308688136,-2013265152,1610678019,-1996487936,-2113863930,-956300544,-2097086714,0,0,0,1167087646,518818645,-326903666,1781989166,1748434715,1849098011,1815543579,976682779,-700019438,-26032,1183645696,1183666390,1183666388,-6663982,184549631,722760896,1996443840,-763953196,1342433464,1354771280,-2096274712,-443874579,-884122337,1167087646,518818645,-326903666,-129579238,-1070923773,55044176,58048523,-1929330455,-397346234,1183648882,726669030,1347440832,25270864,-1073020928,1719666293,2011953144,384190093,1354771280,-1684385712,-1962934271,4057158,1024226305,1265893888,1946288445,-2134643867,-1928791986,-397346234,-1801384918,-1878643960,65589512,-1995927546,1183579206,867818,456999028,1028748288,125042725,1946167101,-1584403702,1177093836,-1592202246,1174472396,-2146374662,-1946683290,1452010566,-96040466,-239991,1996486774,-92864516,-385504024,312606560,-1912208624,-1677317368,-4698096,1347440895,201320528,-2096812056,-443874579,-884122337,1167087646,518818645,-326903666,-950642912,63558,31737543,112640,39315536,58048523,-402528023,1183649299,2145931514,-431583989,-1070903274,1347440720,16777114,1975520000,-127500281,19786231,384190093,1354771280,-6664112,-1962934017,4057158,1024619521,57999872,1023459049,57999873,-352231191,-96039492,188016720,150490752,1038763659,57999373,1023494377]},{"sector":7,"data":[57999387,1023506921,930349093,1946166845,2571608,675088244,-345476096,-129594488,1023410981,92012545,2113929789,143827213,-2131081591,-385681330,-861863757,-96075514,-1962890519,52820038,81152,37553532,-1592951296,1183385742,-129072902,9300226,688311457,-2065040826,-129567232,-1593281532,1177093838,-1586041860,1183385748,-129072900,-160765180,1946482758,114204936,-335788543,143958364,-2130950519,-351995826,-127500208,-461470729,-955747328,58438,-1946224919,1452010566,-96040466,-151234935,1963194438,143827226,2096776761,-129073146,-1592988926,1178142862,-2147188742,-167643058,1963259974,143958284,2096907833,-129073148,-129594620,1023410981,343146497,1946157629,-126419168,-231681,-219612554,-23467773,956863137,-377685434,620250763,-352187140,143565071,2147108409,-129594408,17628196,-2080881015,444990,1105724276,143572745,503875262,-1515870969,-4789339,-402089418,1183383616,-1640562718,3598344,-1579137399,100864018,103483534,-1588588388,103483538,-1588590450,103483540,-11532144,1996481142,166193376,1577261032,49120095,1562371467,-1957311667,49054700,-1241219455,-1960283645,-768932794,-150738759,-27883023,1932720771,700615431,787153990,-1224835455,-1205374461,1177224168,-1961038850,-768932794,-150866759,-27883023,1915943555,-1023770152,-1962446335,29502401,1183515718,1575324420,1426064066,-326898549,-1957275808,-1767701434,1245118216,1354771203]},{"sector":8,"data":[16777114,145274880,922701854,922685596,922685462,922685454,-6680556,-16776961,-14980554,-14981066,-14979530,-14980042,-1928185290,-1705981882,38,294531,2122517364,91694822,115982379,-1472790782,2537478,-26032,78118912,-1070909580,-1983494519,922731590,246941352,-1070903296,-1924116400,1343669318,16777114,112640,-742109558,144745440,-1979711048,-522992050,-351755101,112649,-1559714653,2122516640,963994568,1342740664,1342741688,1355302541,-1705983957,65535,144193279,1342433464,-1695779073,1191,-16213853,-1207395274,-11533336,-6623626,-352321281,-934900431,-1035563696,-1069118128,3643984,-1073020928,1407779701,-1032388609,-1705983957,1442,-16213853,-1070874506,96705104,-1667039232,-62485240,-26032,-1073020928,669582197,143046911,-934900400,-59310256,55195391,16777114,143572736,503875262,-1515870969,-402208859,-956301055,565766,-1976107264,-26106,1183383552,1958743038,196628545,1134186496,1342177286,412058,1958742784,-25755859,379602573,-26032,922681344,1996424842,-25858,1183514624,114074538,60835467,731490374,-1543974462,-1159199026,-935427328,292880390,109852415,503763128,-26032,-928841728,976682758,1781989138,1748434715,-26085,922681344,-1070920256,-26032,-1588592640,100864018,103483530,-1706028900,65535,-16207709,722318390,-6664000,-1560280833,922683570,-2034757574]},{"sector":9,"data":[-1706025464,65535,271857407,16777114,143827200,143525419,100919505,1183385742,143958512,143656491,100919505,1183385744,768242,-227082416,-386894081,922681533,2140800712,-1207959546,-1706033151,65535,1577058744,1575324511,1426064066,922741899,-6680518,-1560280833,922683558,45617210,-6664192,1342177535,16777114,976682752,-1472790768,-1439236344,-1405681912,-1372127480,-26104,-443875328,-1957313699,686588908,31983303,-6684672,721420543,-6664000,-956301057,-16665594,-25857,1048772608,1946158794,95610883,144850563,-15829760,-1206896074,1344145542,382106,976682752,-1506345200,-26104,-1070923776,102537808,-6684672,-1962934017,1438866917,-326898549,-1588177060,103483538,-388953970,-1913370999,-1900087170,-1526262264,-156916315,1963198534,12773635,721831563,990416902,2114499078,143696140,145884675,-351910263,-1875473651,1983464968,-1996260090,-1801386378,105265416,-1528233089,74907392,143800063,474010,-1912198400,280514568,-124104704,-1996488697,726723654,798642368,1342177288,1342177720,539034,-297367296,738197432,-295793710,-338492495,1183446007,105286642,143656491,1354771280,500634,28856320,-1399173120,-1996488697,-1599999930,-1540425976,-1949791480,-768872378,1178333687,-13732110,28897910,26890240,1342177288,-1705983957,2059,143656451,-1868492565,105265416,-1801385860,105265416,1183384446,138840838,184550181]},{"sector":10,"data":[1025012928,57999361,1023471593,192151554,1962935101,15984899,-1962899735,103482950,-1202714480,-1706033136,2363,1354771280,16777114,28856320,-627421184,-1996488700,-4659130,-1949160449,61991006,-201856045,-1947842935,103482438,726665358,1570394304,1342177288,1342177720,550554,-364476160,-150429535,-1962367954,-364475448,-235417045,1994802747,-428409060,1342177720,16777114,-1070903296,80517712,100859904,1183385742,145274884,1996443678,74907398,16777114,1958742784,45345027,721988769,-787961850,-465139224,721989281,-787961338,-498693656,14698183,-565786880,-1465843712,71710984,-1930886276,306086656,1685389328,613274,145268992,-385595767,-1465843516,71710984,1048813437,1962938386,-1953240168,1177224262,-1475986444,-2096005880,1053246,1183517301,-1476000780,-8984312,50611851,100922438,103485458,104534172,58656944,-1577098519,1177225392,302394356,-1677327600,-11605744,-149941599,1183535320,1356396516,721700491,1342744582,624538,-2120593408,-352321527,145531210,2114209337,269656389,145491459,145229355,305530427,-442889348,-1593835511,1609107628,305570303,269616683,145491459,145229355,-461963440,721700491,1342745606,373914,-6664192,-1996488449,-1432231866,105265416,195061629,-1947981296,-754667024,1042189286,-2093546736,1988694254,145400284,143656505,1048587901,1979781131,459841831,459937419,1963480121,105134376,1149969269]},{"sector":11,"data":[139758342,1979208761,-163301109,1156974197,225772786,16777114,145400064,-351910263,143696210,145360427,-337754487,145662278,2114340409,1042189118,-1995994352,1048631878,1979781131,-1579644129,378215272,1463360362,958100744,376768071,1146752,1207305844,175440914,716698,145662208,1187491563,-2097151522,1962991742,-562134263,-385649408,312541417,-666466032,-1995929439,2122567750,208928992,14581379,113706612,1734,113917571,-402426880,922681808,922685498,-1231419226,-2097151994,1946214526,-529072376,16777114,-562134272,-1207206400,-1706033151,65535,2122518507,159187166,1342177720,16777114,1245118208,1354771203,250266,-77076480,459945727,459814655,460207871,460076799,305805055,1353205389,264346,-700019456,82221648,-1073020928,-1113978763,-385875960,-2034761396,1183666184,1996443816,1245118422,83991043,1183514624,302394328,-733574896,721979553,1183436870,-129593902,1996443670,-763953196,751002,-733574400,-1962654207,1174524486,-1956975866,52758598,1958742784,81220,37564788,1026847744,896860163,144064131,-1959103232,100922438,1183385742,-129593866,1183535126,-163173628,1354771280,16777114,-1961170176,1183384646,-1962480648,1183384646,138868476,-1962511356,1183385158,143565310,1979205177,143827230,1979467321,143696150,1979336249,143958286,1979598393,138868230,-2095483896,444990,-2048392332,143572736,519599757,-1515870969]},{"sector":12,"data":[7792805,134760182,1996427892,74907398,-16698648,-1710831562,1555,144064131,-1588628480,103483538,-1202714482,-11533336,-1710712778,3100,-1582938487,103483540,-1202714480,-11533336,-1710711754,1172,-1583069559,1178142874,-1593281114,1178142878,-1961921372,-1700551098,-1538880760,-402088285,1599996735,-1034033781,-1957363706,82609132,721982113,1208520198,-1577171319,103483540,-1991767920,922745926,922685498,922683534,1996425360,112894,4831312,1375754938,212048464,922681344,-1834938310,-11515896,-1207398346,-11534335,1236860022,5945856,-979742638,-16777204,-1592772042,1346373774,1208521889,-25755824,1342177720,-1174386248,1347551322,845466,976682752,-1908998384,143696136,28856384,1996443648,4831484,1375754938,-26032,914423808,-63798,-1017256565,-1947432107,1344144454,16777114,876019456,71731984,-6664162,-1962934017,46292453,-326413056,271857407,369378957,-26032,1996423168,108461828,16777114,1575324416,1426064578,-326898549,-18426,-1979955575,1183448646,176063482,-15172608,280496758,1973047296,1342177293,-1705983957,3474,-2080487799,2080376958,142016280,1342181560,16777114,-1070903296,125147728,1183383552,209617916,-15827968,-1070920586,122133072,1183383552,-92864518,-100609,1996487798,74907398,1342177720,-1962932504,180510181,-326413056,1446702211,-1961138015,-1994692074,1451883590,-1576613890,-1711275768]},{"sector":13,"data":[65535,-100609,922745974,922686254,922686252,1183650362,-577089328,-2097151990,1969475710,112645,-1070923029,-1946532215,1183439942,-92371976,-2095418368,2113931390,108954412,-1960411648,1183385670,105286644,-336181623,209617688,-1962509312,1183386694,176063450,-1962509312,1183386182,243172316,-1962509312,1183387206,-293698600,-2147191266,-1920937906,-11481018,-6623626,-1996488449,1451871302,-798588722,976682879,-25755886,-1694730497,65535,818819,2122541437,1669136394,184694411,50390657,33619585,-25098636,1333068032,294531,632828276,922701824,1996427834,-59310082,-1961136991,723217942,454780934,1377528342,-18352,1347590480,726684313,261771456,-1711276017,65535,80365254,13321926,1355433613,16777114,-2094208256,1946158206,2471974,976682832,-25755886,737965823,1996443840,-18194,1347590480,726684313,-6664000,-16776961,-15582666,1996488310,1354771452,1357805311,-3246337,-11481994,-6623626,-2097151745,1946221182,108953863,242680808,16416387,1183528053,-599377416,748760190,773229331,-62510317,100554267,-763166719,-968455936,-3647863,-15582666,1996488310,1380995836,-26032,-1956773888,214064613,-326413056,-956109693,28769862,144324351,1342289592,988286608,-28931840,1191172235,1476904702,-106869,130481734,-1640562897,-25755896,451415696,-28931840,1191172235,1493681918,-956408181,-6684665,-1962934017]},{"sector":14,"data":[516120037,1430622296,-1910575989,116163544,721962635,6601170,-92016137,-2096860622,-1959655354,-768931770,-150738759,-96040463,192266251,-16359797,130418246,-15930576,1183709814,-6664186,-1962934017,1191118430,772261382,721962635,65583570,-1031015945,1689899563,82966272,106859312,-2012854529,106859271,-1962932282,-310180282,535137026,80366941,16973881,196775,16973932,196750,196717,16715723,196878,16715638,196638,16715380,196639,16715472,196640,16715467,196644,16715799,196774,16715355,196650,16713517,16973995,132706,196630,16714037,196655,16715489,16974000,199933,16973841,198109,16973842,198263,16973843,134274,16973853,132659,196638,16714429,16973883,199970,16973852,199947,196637,16712890,16974142,132169,196646,16713354,16974143,133763,196647,16713599,196928,16713553,196929,16713110,196930,16714502,196931,16713411,196675,16714470,16974148,132409,196653,16712836,196933,16715216,196677,16715104,196934,16715243,196679,16715134,196935,16714293,196681,16715095,196810,16715567,16973900,198018,16973997,197922,16973890,197974,16973892,199656,16973893,199981,16973894,198334,16973895,132134,16973904]},{"sector":15,"data":[197611,196680,16714756,16973932,198781,16973900,199465,16973901,132403,196695,16714385,16973937,198313,16973906,132426,196701,16714400,196725,16714417,118,1167087646,518818645,113760398,-64852,44973699,-15764480,-1711100362,65535,44959431,-310181888,535137026,516640093,1430622296,-1910575989,418153432,951604823,141489920,-964562805,1149964296,-230258378,126605451,-1324984693,65196804,-62486078,385107597,1354771280,-1946394997,1194004039,1962889228,242745094,16777114,-666991872,393478150,504506552,-196702896,-6664170,-956301057,448518,1445128960,-1092059507,118886952,-1515870811,304658526,1183666206,-1924131096,1343681606,16777114,-2090902016,-443874579,-900899553,1478361092,-1957345904,-661774612,23784577,3717206,84569847,1183387656,-1948742758,126563935,-1324853621,65196804,-632911422,1200347275,139954950,-1982445943,512481366,529207074,-150989128,-1962711506,37784560,-1996205941,1451882566,-62470150,1187446784,-956301108,56390,14567111,-1705080064,-1993193589,-1070870970,-1981659511,1183440966,175570920,-1878493441,-19142642,425603,-51838092,102664966,38272768,-2590977,1996478070,-126418950,57030399,1352418957,16777114,-1002009344,-1673097904,-629735600,-1878362369,114681870,734545547,1183433798,-901346314,-1983494613,1183573062,474524,138218108,1031110144]},{"sector":16,"data":[1685323875,-6523137,1996463734,571598,30382672,-11534336,79220342,-358985728,1342177281,130458,-767129344,-6523137,1996464246,702670,33004112,-11534336,112774774,-6664192,1342177535,16777114,-800683776,13794947,-1073019788,512431733,1342111750,82372866,-1985067381,1183568454,-800683600,-1697745153,65535,-1554807,28888694,-6664192,-16776961,1285672566,1241921795,721712387,-1593578560,-1957687140,-16560610,2013204087,209190662,162970,-666991872,410320902,-3246337,-15587274,-15586762,-15586250,-1710084554,65535,-1995400031,922742342,-1070920946,45718096,1317732352,-1983370298,1586229326,240073626,1200293501,-263812850,-1952817525,1183385159,272039922,1354771211,16777114,-901381376,-1946925431,1195088478,-1962508788,1183386695,-831062028,-1149185,1183576182,-297391118,-196703408,1357923883,110769919,110638847,16777114,-1705080064,704989066,-1408877596,-1586662142,378211180,1446579054,962688472,1551226438,-1697745153,65535,197936777,1346925760,44971775,16777114,1958742784,-831062214,-3901697,1996473974,-461963274,734820095,961564864,1946590214,1778792718,-1207405557,-1715863450,-1207506176,-860225504,-1706012160,65535,-1862360087,-57612274,16777114,178176,-1099497648,-1698924801,65535,201082505,-385649216,-1070858624,-1981659511,1183572038,64105402,1444140614,-364475944,-1947445623,1452007494,-1101645342]},{"sector":17,"data":[-1779891341,956856064,58178630,-1929344023,-1924082618,1358862982,57030399,-1280257,1996483190,-126418950,-1950595445,1177271894,-497673248,259510795,3999090,-1962380543,1177271366,-1207702560,-1706032896,65535,-1694730497,1147,-23689591,-23554423,58049035,-1912735767,385784454,-532247728,-23689725,1996443730,-25900,1996423168,78420732,1183514624,1174510036,-497675808,-364510823,-370387439,512491357,1342111750,-1669430526,-1207601821,48955393,1183432747,1958743014,-831062170,324762,-867792640,58048523,-16610839,-6620042,-1996488449,1451865670,1975651256,41216259,380389005,-26032,1183383552,1975520222,39905539,1183432747,-1236891208,-1694730497,1875,-1694730497,1883,16533191,-864616704,-1696696577,1311,-1962886423,1178194502,-1962183178,1178193990,-385649180,2122514887,58001308,-2097037591,1963498622,28698883,-1697745153,1432,197936777,-385649216,1996423678,-763953202,-1697614081,65535,199116425,-385649216,1996423654,848974028,184549381,-385649216,1996423638,-1774780468,96770566,-1073020928,-1008139403,-864616703,1347469355,-2984193,922734710,922683034,-241564008,-16777214,1996475510,92379804,1996423168,112844,37198416,1996423168,-59310132,457882,-864616704,1342177720,437402,-264338688,57933825,-1879014679,-93526002,-1697745153,792,198985353,-2089913152,1962993278,-834237693,-159973552]}],[{"sector":1,"data":[-1696303361,65535,184725155,-11373376,-1705976714,809,1165279243,735868671,-11513664,1996486262,-864616476,1996443728,-797507630,-1174396744,1347551436,434074,1975520000,-596181173,465818,-599341312,922681344,932840110,-956301305,175622,-831062272,-3901697,1996473974,-461963274,734820095,-11513664,1996477046,-1677313584,962819078,1584719430,-1174378824,1558904985,-3246337,1996473462,-159973434,-1804545,-1070867338,104419408,225707676,1961248313,6731784,-352282182,2144262,1375784122,56924752,1586167808,88574618,-1398545366,-700019966,-1546103157,378080108,1183517550,191538150,548956907,13416960,-6664110,-352321281,-831062181,-1701021953,65535,-3246337,1996473462,-25914,1183514624,474524,138217332,-350456832,-1635876056,-2095811584,1946198142,-831062258,-6392065,-6643594,-16776961,1996476022,-461963274,16777114,-831062272,-1694730497,65535,15236739,1996426110,-394854450,16777114,-595688704,-16223232,698014838,-2097151993,1946209406,-864616696,16777114,-562134272,-16223232,479911542,-2097152000,1946221694,-427916514,-1961856000,1175172678,-16223048,-6620042,-16776961,-6620042,-2097151745,1946159742,14084355,54935171,-385649664,1048772812,1946157544,12773635,-1697745153,552,-2081929591,448574,1996429429,674693070,708247314,741801746,775356178,129735186,1996423168,-1674117170,1310624528]},{"sector":2,"data":[242745091,-16353281,1570376823,-1593835518,378215276,1446583150,2083880920,-700040955,1755393651,1779862299,-665437925,92217980,1926645305,-1002009829,-1947318647,1183434822,-831062030,384714381,-26032,871038976,-1961138015,958097942,1964731926,1812347174,958428443,460707926,1976976953,-666991850,158662662,957070497,2098342406,-1207515386,-16777202,1996476022,118332136,113704960,67288,31997571,-1593478144,65734344,1343966369,16777114,-310157824,535137026,113921373,-1873273344,-326412987,-2082959842,1448548076,-1207273845,1861681208,268961030,-1947580791,88574680,-1957632982,2013202526,108527368,1911033488,1664910082,2088975221,108265482,818307,1183657845,1183666420,727077104,-6664000,-16776961,-1070861194,155490896,1183383552,-260636678,-1705983957,65535,-336181623,172264228,1358579337,-1705983957,2477,-1946925431,1183386692,-1070903050,152214096,1183383552,140413936,294787,1183519348,268829686,-1070903285,42900048,267059200,-1979162997,-467009209,-523041615,-1996484603,1586231366,239569672,-1980217813,-1667106746,-362902768,1342850859,-1705983957,65535,-1577957751,1183387072,184721916,-388822863,184550181,1024423104,443809793,1946157629,212266,1149961845,-330921720,957024417,595455046,1183524075,-96064516,184944171,185075203,-775804007,-1948324872,1177287750,101067770,-1949111541,1174662214,-297367054,1354771280,16777114]},{"sector":3,"data":[207522560,1174603657,207522804,-1962653815,-74773410,-1980217717,1174602309,105351664,-310157474,535137026,147475805,-1873273344,-326412987,-2082959842,512429292,1200227150,-1981535741,1755445830,1779862299,-163149541,-1946659191,126563935,-939768183,62534,972703371,545125446,-151232885,1963000391,-339727612,-60912847,-1946794357,1463416918,957314312,175441479,972703371,192738374,1191174123,-62487564,-1949963504,1183516254,-1207465476,-310181887,535137026,46812509,-1873273344,-326412987,-2082959842,-1957295892,1602946654,-1995994314,1586232390,88574470,-1957632982,2013264990,108527368,728730,-129579264,334168064,-1309116789,-1947806972,1089928286,292816898,-1946663169,1200227934,1222912515,2012759611,-126448673,-422378319,-1963172213,-467009216,-96040640,-1588571495,378211938,103485028,370875272,1347558282,704726922,1372138468,-26032,1347551232,16777114,-60912896,319178499,-2090989481,-443874579,-900899553,1478361090,-1957345904,-661774612,-16091393,1996425334,-26106,1996423168,142016266,-1710852353,65535,-1962742397,1297948645,2819786,91554051,8060930,66846723,18284799,90046723,196610,58720515,983041,90833155,458754,177012739,2031871,139788291,10420479,78905603,1114113,67371267,1179649,57737219,10682623,70385923,1245185,115540227,786434,112853251,851970,116457731,917506,128057603]},{"sector":4,"data":[1441794,187432963,11665663,95682819,10223618,89325827,1900546,125829379,1966082,108134659,2228226,99418371,2293762,138019075,2555906,150339587,20971775,149159939,21037311,79954179,2949122,146210819,21299455,146931715,21364991,24707075,4653311,147849219,21430527,183566339,21496063,76677379,3211266,84672771,3342338,73990403,3407874,69861379,5898495,100204803,4456450,101122307,4521986,29491459,5242882,7930115,4718595,9371907,4849667,183107587,6947071,30736387,7143679,12124419,5242883,133824771,5373955,0,0,0,1167087646,518818645,-326903666,-950642890,129606,32786119,242679552,1342178488,13722,702720,1183443447,242679778,1342179000,18842,702720,1183443447,242679774,1342178488,22682,-62486272,-1207011585,-1706033146,103,-637303,649596534,-6664192,-1476394753,724857860,-733574720,-2996599,246943350,-1070903296,-1924116400,1343672902,16777114,112640,-741192054,-96040480,-1979711048,-522988466,-2081143159,2113993854,-159481082,-1962180864,-1070861226,-369473909,1996423524,-495517940,-1694730497,213,-1423735,1996425846,-159973410,16777114,-398030592,556675,2122567038,-948043770,15367811,-1072971394,1183563134,1317771528,-1946552342,46564336,-1713224053,-125044233,2113813319,-339244284]},{"sector":5,"data":[-1983476990,1183572038,1317771526,-1946552344,46564336,-1713486197,-125044233,2113813319,-339244284,-1983476990,1183571014,-230258182,-1980479861,-4657594,-330921601,-1947187575,1183447622,11790806,-1980479861,-1712719802,-364475648,-1982435593,1183566918,-126945304,-1714796919,1183535186,1347590408,102554,-1957670400,1385811014,105286480,-1706012007,427,244338770,-1996451608,1183567942,1347590406,-1727510901,-1097183150,1375731713,-901346480,-1957670247,1385811014,46897744,1347551232,1659375248,-834238208,972048011,545247302,971785867,411029062,-1982445941,1183576646,-297367048,-1982839157,1183576134,-330921522,32786059,1183578182,-129615396,1558774653,-96039937,-1948891647,1178198086,-385647146,1452015426,-1950340114,1600057926,-1962742397,1297948645,503319242,1430622296,-1910575989,183272408,-1962260853,-355398570,1317787857,140413702,-640554031,-753680125,-1980086647,1183579222,139889414,1913411129,956659477,242616902,-1962260853,1177226326,139860742,1183517931,139889414,453658155,1183386710,-128546314,200951435,343276614,-1962522997,1446578262,957904140,326437446,854310955,1106804355,125242994,938901121,-1207601527,518718440,-231681,-390530442,1347590403,-493825,1134229110,1375731715,58497616,-310181888,535137026,147475805,-1873273344,-326412987,-2082959842,1187451628,-947912712,64070,32655047,-62470400,2122514433,91553798,-404111317,205949696]},{"sector":6,"data":[1962935357,10086659,-1377238146,81152,-1595341963,146688,54331252,-345017344,-62470185,-1070923766,-59310256,-1727641973,1654280274,-1996488701,1451880006,726684400,1996443840,138841074,-1957670247,1385761350,57252432,1347551232,16777114,-297401600,770725395,-628948991,-1706012160,65535,-1980479863,1183577686,-94991368,1928746553,-385649056,1178206066,-380209420,1187512170,-352295684,-230242415,1187447038,-348634884,-230242427,1187449324,-383315716,1187512184,-352256270,172395505,104671979,2144760832,343304,803858548,474623,669582205,540159,535364479,6503935,401201012,-196703233,-1962742397,1297948645,503318730,1430622296,-1910575989,1089242072,105286486,-1996488411,1996472390,242679568,-16091393,1996425334,-1002009326,-401698736,2122514798,578118596,13532803,2122516084,376766672,1357792909,1357661837,1355040397,-1866434817,29157390,1996430571,-1065943090,-2048389488,-297367294,-3115265,244367478,-1996297240,2122574918,477364416,-1961991519,-1559337962,378078040,113705818,860,-1544796533,1810563956,-1324595573,98620164,1178271776,-1589543188,378211938,1487081060,1511426307,1543948035,-1962934269,865725510,-1178457150,-120389628,-1037319629,189722763,721714678,-1962742848,-754667066,-330396704,243910699,468386676,1073960609,-1593615197,378209106,1487078228,1511426307,1946601219,-1593831421,2023949172,230727939,-1577302391,145820418]},{"sector":7,"data":[52816083,1958742784,81167,37558900,1026847744,108331011,-1983101301,144818758,-1035585269,954939261,-1149185,244367478,-1962811928,-936641458,184946219,185077251,1317665233,-2626622,1996484214,-401698624,1317732798,734538748,-351599090,-1035564059,-1065943216,1843924624,57189121,65947275,-1560057850,1889600364,201335811,57713409,49120094,1562371467,969293,1167087646,518818645,-326903666,1183667716,1996443900,142016262,-15698177,1996426870,175570700,1342187704,16777114,106859264,1954547702,2133295109,1586174187,-1946973434,1200164420,575129376,1586167808,508020486,1586167838,511673094,-955418842,65545287,-955883893,65545799,49120094,1562371467,838221,1167087646,518818645,-326903666,140413718,-1995290741,1200353862,-263812844,-1996339317,1200355910,-129595132,111687423,-887041,1996484726,244338938,-1980123672,1451881542,-364475914,1183433355,-364475396,-1980600585,1183575622,-261163012,-2081667447,1962935934,-294191312,1342177720,-1545073008,-1070903296,-401698736,1183383648,-327745554,1342177720,-1569136,-1070903296,-401698736,1183383740,-294191124,-16228725,-390585225,-996519933,-1996488698,1996484166,140413932,-1205438465,-1706032152,1794,-1947449719,1183517790,-1962440210,1183517278,-2096657940,-443874579,-900899553,1478361096,-1957345904,-661774612,425603,1996427892,2016870152,-365494512,121412105,233504768,-16222465,-1207067594]},{"sector":8,"data":[-347077216,49120236,1562371467,313933,1167087646,518818645,2122569870,309592070,-16222465,-16127434,-1710196682,1910,1996426731,94418952,-1674117296,-2081625331,-443874579,-900899553,1478361092,-1957345904,-661774612,425603,1996427892,-2009661688,-63504624,129014281,233504768,-16222465,-1207065034,-347077216,49120236,1562371467,313933,1167087646,518818645,2122569870,309592070,-16222465,-16122826,-1710192586,196,1996426731,94418952,-1506345136,-2081625331,-443874579,-900899553,50333188,-16399104,50403072,33589505,50341376,-16592384,50415616,33562881,50352128,-16679680,50358784,-16339200,27648,1167087646,518818645,-327034738,1448542360,425603,1048775797,1946157560,112645,-1070923029,-2083502455,127038,-1914109068,-1976107255,1354771206,16777114,1354771200,16777114,-1983894784,245624390,-465138430,-2095990109,1946210430,-26105,1391132672,109852415,425603,112723316,-1207702784,-768933880,922701906,922683018,922684836,-6681182,-1560280833,-1073019214,330830453,1788497952,-956301310,16911878,146860288,-1202667477,-11521595,185814046,-385649216,2122516654,359923718,16777114,112640,-26032,1048772608,1946157802,-797015103,722629888,-977776448,520048689,-1073015988,2078868341,1685512,-1309522295,1356911363,96154,-465139456,-7113664,211880054,236358407,-1471772409,1386894985,-26032]},{"sector":9,"data":[1996423168,-26104,1183383552,-128546314,722320033,1343258118,277362431,167524095,85402,-196704000,722320033,51412486,1343077382,277362431,167524095,91546,-666466048,722321057,1343227398,276313855,166344447,16777114,-62486272,460719815,548995071,-6664192,-1996488449,1967188550,-361300213,16777114,-16586496,-1947574645,38258463,1586167818,-954233878,-1962934009,126610014,-1996487675,-661937082,-1951906165,1200204374,72845570,-1995589471,-12736954,-955943425,108102,-1952162165,126461510,1353598605,1342181048,16777114,-1354331648,-1705974742,65535,-1951447416,-410931586,1137049855,1183654063,-1229434705,1191071745,-1371108690,-1705974742,65535,-150989128,-259323794,253894283,1149974275,-867792624,-1981135221,-1070919612,-1559009117,1178145638,1343256016,1345439160,323755775,58048523,-2096888855,1962935934,15460611,1342177720,1358579341,1356088973,1356613261,164250,1975520000,538163212,-26032,-706150400,1354771203,1355957901,1352812173,1353467533,16777114,1958742784,-1472790564,636934,309328,1312227152,1278672659,1354771219,46373456,1048772608,1946157558,-1472790758,505862,178256,32946256,-1070903266,-157659056,-16777214,-1928951242,1343652678,1342184888,16777114,-2000617984,922714694,179832488,1183469568,1357130370,377702029,1354771280,-26032,1183383552,2109737942,-700019914,1040186157,142016516,781434883]},{"sector":10,"data":[53127167,14042871,-385649344,582484776,-12261088,-383769160,40238910,105251620,52299334,-2096951319,1962987646,1354771218,1345439160,323755775,58048523,-956113431,52806,-1951906165,1183427158,-531199522,14304967,-1505326336,-1961985885,1452013126,-531219976,-1142357122,956857348,57859654,-1962626583,1183446086,2089207680,-2097151745,1946158718,171868947,208928770,958102177,2114877446,76343555,716064394,28706276,-8747383,242759423,-8747379,-26032,-1635057664,130482042,-26112,1187446784,-1962934042,1452013126,-531219976,770245502,956857347,57859654,-2096946199,1962987646,1354771218,1345439160,323755775,58048523,-1962792471,1178202694,-14779162,1183048822,1183517426,-754732558,-1070903072,102472272,-1073020928,65602421,142016258,-2066689,1996480118,-126418982,-1191807233,-1706033151,65535,32521859,-385649664,1654653406,-1981535741,-1072963002,-1561787531,-565802240,-1981786485,-1979746682,-1946191722,-2037786042,1487011700,1511426819,-565802749,-1579133303,1183384412,-797015078,-12291072,-34634,-1694533962,65535,645185547,15761027,-2037699212,-1769209994,1183448952,-531199522,-9140597,-2082847095,-2097023378,-385812386,1048837991,1962934798,59566339,-1962844695,931914846,-1310308725,65065732,-565802000,-1981786485,39094532,-1982183797,-1070922684,-1995684727,1149831748,105154824,-1962874391,931914846,-1310308725,65065732,-565802000]},{"sector":11,"data":[-1981786485,39094532,-1982183797,1183515716,1745224700,105154819,66864779,-1996264442,1183517252,138709376,58738315,-1996262394,-2002711484,-1978234085,-531220197,1178149749,-2095155746,1962990206,241344792,241440395,56235577,104400501,91489112,-352321096,-1983894782,1183518276,1946551168,-666486013,-1008139393,-427916543,-385646848,1654718906,1679198990,1511405838,959214851,1963153414,461938982,462034571,1977636409,-565823221,2122516085,259260634,31882883,1325336958,2089207782,-2097151489,2114053758,-463566053,2123046795,-754667034,-25590809,-16157696,-2033719730,130940,13532803,-1259797644,-362902784,-947699829,-1960867070,-1995964665,994110534,-10191867,92531318,-1190819062,-369688573,726679616,-6664000,184549631,-1203210816,-1706024941,147,425603,922686580,45614760,-1070903296,1347440720,125540944,113704960,66062,253894283,381165451,141489920,1183576203,272665036,-1695910145,389,-1207800343,1861681158,-362902548,67438339,-1538881280,-1947967861,-427914465,-405601103,1368064395,-1537307902,-1996339319,1586168919,242786724,-955807424,-14977530,-797015041,-2093124608,1962992254,-431584469,-1696053623,65535,58048523,-1946288151,1178200134,-1995344666,1183049286,1451426294,-2033778440,130940,55195391,-1705983957,65535,-8601981,-1960872960,931914846,-1310308725,65065732,-1962636304,1183384148,-531199522,-1996209013,2122570310]},{"sector":12,"data":[57999366,-2097115159,133694,-1700720012,2013673741,-1585480690,104405882,1988038264,-9271609,-1070923775,835041360,1277099856,1975520019,-18552542,-1962714975,-1996269034,1451875910,56402400,-1579530615,1174471540,-431554688,-234263,-1207523274,726663171,1347440832,-9795955,-1566945258,-1996488702,-1072966074,2028536701,1887865851,1820735999,-1962246657,973041286,2097113734,112656,-26032,117374976,-1092022664,1925088251,477364479,111687423,1342177720,16777114,112640,158046800,-2033778688,65394,957249697,444070470,-16222465,1996477558,1787203036,26890495,184549384,-385649216,1996488250,-461963512,-1914276097,1358916230,534170,1975520000,-31397629,957249697,58118726,-57367,1996425334,-1401487454,-9795955,-26032,-1073020928,99156852,-34018817,425603,1191120500,34382286,2110670393,-83039997,425603,1048775284,1946157578,-34281213,-150989128,-259323794,253894283,-964479229,33879558,2122535285,913572044,-1947574645,-864122081,93011339,645203769,-1947574645,263431,-866219184,67438475,112742400,-362902784,804724619,-26032,-1073020928,28837237,721611520,75200,210493649,201187712,-2096854591,1946209406,-864616696,580762,-797015296,-1710918400,65535,-1696303361,2294,425603,-2033754252,65384,13926019,1996425332,151296724,2122514432,141820066,-1700628737,1636,34487939,-15436544]},{"sector":13,"data":[-1207523274,726663179,1347440832,1100632144,-2097151991,128574,922688372,129500840,45633536,-2037559296,1343684456,1347469355,410266,-1471771904,-1549117813,378082150,-4713624,460760063,-1711164253,65535,425603,28841588,-1566945280,-1711276025,185,-1705983957,194,109721343,1342177720,14746,112640,4299344,2122514432,192151760,457979647,16777114,-2095322368,438846,922686580,-6682958,-956301057,438790,-401698816,1599996192,-1962742397,1297948645,503317706,1430622296,-1910575989,384599000,-1995326815,1048837190,1946157582,8841475,32521859,-2088798976,2080376446,108953977,1182020037,1048800235,1962934768,-364475066,-1070903274,-1202696112,-1706033151,2815,796180491,112342783,384452237,-26032,-1073020928,1183650933,-1706027286,65535,384452237,185440848,1586167808,176129020,-1951173632,2139356254,125108234,32521859,-1207602176,48955393,245612587,1975520002,112645,-1070923029,-1962742397,1297948645,503317706,1430622296,-1910575989,82609112,-1995326815,2122447942,1963004172,176063244,-2096335870,1946225278,209617670,-1962052336,1204288606,-1207959286,535494657,269254273,-2081131519,1963330686,176063248,721712384,-1962677312,-1264382394,-2084558074,-443874579,-900899553,1478361098,-1957345904,-661774612,-350950269,-330920668,-1070903274,1030224,28856400,-6664192,184549631,-1928235840,1343679558,16777114]},{"sector":14,"data":[-264338688,-713818111,-1962742397,1297948645,50341323,-16653312,50366720,50992129,50359552,-16528896,50400768,51000321,50360576,51002881,50360832,17352961,50333440,-16151040,50371072,34061569,50332160,-16147200,50372352,-16211456,50372864,-16656128,50373120,-16754176,50373376,-16531968,50374144,-16198656,50341376,-16163840,50374400,-16644096,50342912,-16373760,50343424,-16708096,50377216,-16325632,50346752,34152193,50341376,-16156672,50347776,-16267776,50348032,50955521,50340352,50517249,50340864,-16706048,50350080,-16622336,50415872,-16158720,50416128,-16336896,50416384,-16477184,50416640,-16259328,50416896,50966273,50345216,-16498688,50357504,-16699136,50359296,50365185,50354432,50996737,50354688,-16715520,50364928,-16507392,33536,0,1167087646,518818645,-326903666,512448010,529207074,-150989128,-259322770,-1962786677,1183384656,-61437446,16271047,9627904,-1202667477,-11521595,185814046,-1957595968,931859038,-1309129077,65065732,106859504,956843147,1736312391,957105291,1602028103,956712075,1467876423,956974219,-11502329,1962871926,-13304062,1996424308,-92864516,1342177720,16777114,-264338688,74711041,1022083115,-1962254709,-129594569,-523041615,1048637443,1946157936,108330765,-1710721793,65535,1962871275,141885190,-16769560]},{"sector":15,"data":[1183578182,-129615608,1676215165,112895,49120094,1562371467,576077,-2081649835,1448551660,58605187,-1207600128,48955393,1183432747,-65106946,-1995994353,2122576966,74711294,65781803,-1996262751,1187511366,-1593835274,1178141540,-385647370,1586168445,138906356,1183441962,-163149326,17385354,1688335942,-163170045,1183384446,-163148810,-1980611029,-125046714,16271047,-227112192,-964565295,82510722,-129629779,189777803,-2081062976,2130770046,26274051,99763851,1183384960,1714880490,-193528061,1342178232,16777114,-195130624,280567,-1961396993,145818695,-2143491885,1923155315,-1593185509,-654894222,-1070923029,721702539,1947075528,2047748867,-1240585469,-95516399,111687423,-1191414017,-1706033151,544,15222471,18737408,57673463,58064640,-1962900759,1174663750,-754404880,1645120480,14778371,1836499259,704865184,-1947169820,1174663750,1006144488,-1957005314,1183443014,1979595748,-1472790751,-62456058,-1191414017,-1706033151,691,737166987,1183443014,-263812122,1671433195,736373251,1183445574,-398030362,-941195637,63558,66221707,-422452106,58902145,189777803,-1391493440,-336050687,-263812109,-1981397367,2122573894,1585316070,-1964351861,1038363143,57999361,1023444201,2138308613,1962936637,-228684987,-2020875311,1174471554,-25263354,-1591643136,1178141566,-15106830,-1593399242,1183384434,28856572,-6664192,-956301057,65094,-772645237]},{"sector":16,"data":[-2105046045,-129619709,-1423617,922740302,1996424872,-92864762,518669963,-428409008,226202,-129594624,-1962523135,1174529606,-263812118,2112374329,-19339005,183780995,-1946283799,1207432286,1950351362,-362902591,1963016064,-230257868,1376125849,1410732803,236337923,2082635527,201734918,-1206226169,-11531777,722368566,28856512,-4698112,-6664192,-352321281,167753745,112720,16758864,-26032,-22937600,-1472790775,108461830,-1191545089,1344145919,705298080,-6663964,-1962934017,-472780194,58886027,-1946663383,1191178846,-1948003854,17007239,1191118406,-431030294,1593757673,1575324511,459970,29884675,655362,48300291,2162690,25231363,12255487,55967747,12517631,54722563,12583167,11534339,21889279,8716291,6619391,0,1167087646,518818645,-327034738,-1957297834,-1961942498,1488927,57028343,1082912907,72387330,-1980348791,1187510358,-956301062,54854,14960327,-1983894784,1183443014,-62486042,-1948023,-16559050,1375949366,-624897,-1929157066,-1705988538,65535,721644705,-1996265466,1956770374,-364476157,16008903,-1371108608,2080376637,539914,1664967038,-11504640,1996467830,2016870320,-1472790768,309254,12229200,-1706033152,192,-2472311,1996467830,-2009661518,-1472790768,440326,-26032,-1706033152,65535,-2082978167,1962990206,44951811,678805515,-1962760471,1183432774,-1035564070]},{"sector":17,"data":[-1193785719,-11534334,1996476534,-25906,1183383552,1975520250,42068255,972179083,141941318,971654795,91543622,-352321096,-1983894782,-873728954,1183432747,-431584792,734807691,1376125906,1410732803,-297367293,-1947183479,1452009030,-799655448,-1779891341,956856064,58183238,-1929344023,-1924079546,1358868102,57030399,-1018113,1996484214,-159973384,-1949415797,1177276502,-397009946,259510795,3999090,-1962380543,1177275974,-1207702554,-1706032896,65535,-1694861569,528,-22378871,-22243703,58049035,-1929258263,385789574,-431584432,-22379005,1996443730,-25888,1996423168,37853946,1183514624,1174510048,-397012506,-297401959,-370125295,922746717,-6682968,-1996488449,2122572358,91579310,-352321096,-1983894782,-1072960442,-1947663499,-1472790784,43162118,1183383552,1975520214,24242435,-1694861569,65535,-1983363447,-1039414698,1558774645,-1102672639,-6664170,-1996488449,-1072962490,1223230325,-1983894783,1183435334,-92864568,246682,-696844544,-1696303361,702,58048523,-16701719,-16340938,1996425334,-227082490,-1411329,-1070868874,1996443728,-663289894,-1174396744,1347551436,16777114,16181504,16023171,-1914109067,-1472790784,-26106,1183383552,1975520214,14543107,111687423,-2459905,-6629258,-1996488449,-1072962490,-991362187,-696844544,-26032,-1073020928,-1259797643,-696844544,1347469355,-2459905,1656281206,16759296,-6664110]}]],[[{"sector":1,"data":[184549631,-385649216,1996423315,-1367932970,201626,1975520000,8513795,-2722049,1989868150,184549379,-9276224,28890742,580538368,-385875965,922746685,1996424872,-25938,922681344,1996424872,108461832,16777114,-1371108608,1946158909,539911,720051572,11566723,2122519924,259260594,111687423,-5212417,-6638986,-16776961,-16340938,1996485238,-25878,922681344,1996424872,-25862,1183383552,-495025156,-15958528,-16340938,-6626698,-2097151745,1946211966,-696844536,16777114,-461470976,-16223232,-6626186,-2097151745,1946221182,-327253218,-1961856000,1175177286,-16223030,-6620554,-16776961,-6620554,-2097151745,1962998910,539277321,-26032,-2090991616,-443874579,-900899553,50338052,33751809,50363136,-16676864,50403072,33747201,50332416,16838145,50335488,17025793,50336000,16879617,50336256,16891393,50336512,33774337,50334720,33763585,50334976,33778177,50335232,-16524800,50343424,33742593,50339072,33676033,50339328,33717505,50340608,33786625,50341632,33704961,50343168,-16753664,50349824,33695489,50344192,33729281,50344704,33684993,50344960,-16665088,50354688,33790209,50349056,33793793,50349312,33593857,50352128,-16736256,27904,0,0,0,1167087646,518818645,-6629234,184549631,-1206291264,-1706033151,125,112868995]},{"sector":2,"data":[-1710394368,65535,74825739,434880555,113247943,1996423169,-26106,-1070923776,-401698736,28836102,49120000,1562371467,182861,1167087646,518818645,-326903666,1354771206,56218,-96040704,324024063,34458,-62486272,1342177720,16777114,-1976107264,-26106,-11534336,-1684342154,-16777216,-15713738,-1365575050,-2097152000,449086,922684532,1996424922,12753658,922681344,-929429866,-16777216,1996487798,14785274,-1706033152,231,113000067,-15174656,230227062,-6664192,1342177535,16777114,-140881920,-2097152000,450622,922683764,127534816,-2097151999,451134,922683764,-6682910,-2097151745,48702,922683764,664404158,-2097151999,49214,922683764,932839616,-2097151999,49726,922683764,-6684480,721420543,-6664000,-2097151745,-443874579,-884122337,1167087646,518818645,-326903666,28857868,-6664192,-956301057,64582,-1564976149,-59836672,295706251,1183385347,-1965519882,2133067079,1047792444,33834998,2122528884,208928774,-14786677,-26057,233504768,-1946788213,939466335,16777114,10663936,-1946390793,-1608610832,-2093546735,76154310,185368612,1191117960,195600892,2096907833,-310157667,535137026,46812509,196621,16711691,196752,16711704,16973977,65815,16973841,196927,196614,16712031,16973889,131215,196653,16712101,196943,16712086,196944,16711716]},{"sector":3,"data":[16974161,196666,16973877,131255,16973893,196721,16973890,131173,87,0,0,0,1167087646,518818645,-327034738,1048772920,1962935986,112645,-1070923029,-1949284727,356321862,1025209344,57999386,1023508457,57999387,1023583465,57999389,-385675799,-6683825,184549631,-385649216,1048772836,1946158810,-633929880,-1875443962,-1908998394,13736454,922681344,922683098,922683028,-493222254,721420288,-11513664,-16346058,-1710845386,65535,-20019575,225820683,1342179256,91034,-830043904,-633929730,-826867962,12163838,-1706033152,302,114964223,110507775,61338,977175296,1316225040,272250623,110114559,109983487,16777114,976682752,-1808335088,-1841889530,17734150,922681344,922685498,681182870,-2097151999,434750,1048778868,1946158748,-1573454063,-1808335098,-1841889530,26122758,1048772608,1946158730,-1976107239,20879878,-11534336,-1710844362,372,24812112,1048772608,1946162000,1345781593,56138259,-2037841920,112787148,-2019930112,1375731713,-26032,-2037841920,-1072955702,79170933,1654280192,-1996488701,-79226,-78666,-1694577994,65535,-26032,-1224802304,163118796,-6664192,1375731967,-26032,1048772608,1962934958,32893187,191512195,-385649664,-6684181,-385875713,1183515107,138808070,1996437876,108461832,382879373,2013264,50829904,1183645696,-55029550]},{"sector":4,"data":[-459649022,184549377,-1928039232,-1202662842,-1706032404,582,57982987,-1593728279,1183390542,262578672,-1577433463,1183387428,-25860,-1073020928,-1326906507,-930691328,-2097151746,1946218622,-92372131,-2091420672,1946221694,1312719697,1249116187,262553219,-2092731392,992318,512441460,939465550,-1024373,39492151,-1073020928,512436341,939462566,-369013,40802871,-1073020928,512431221,939462436,-237941,51878455,-1073020928,1183519092,-930706992,1975520254,302434054,-2097151742,1946218622,-260636920,171930,-92372224,-16223232,-1382352266,-2097151998,1946221694,-59310328,16777114,-927038720,57999614,-352266519,1073920098,-26032,1183514624,458138608,-1543879029,1183518630,254059516,-2097105175,1962987646,11397379,458112643,-385649408,1183514787,138808070,1996433780,108461832,-19888499,12079126,-6664191,-1929379585,1358876806,458104459,-6670337,184549631,-1703774784,65535,-1560280648,-358415854,1354771202,16777114,-1036090624,1433731078,271857407,1347469355,-26032,1173028864,113000067,-14322688,-1710010314,65535,899152,-26032,-1706033152,166,11311696,113704960,1724,28575431,-6619137,-1207959297,-11534335,-6631306,-352321281,49120164,1562371467,352766541,2130707200,234946307,-1862204671,117440770,1644233472,16777728,1174471424,2097152771,1929446144,150995456,-754973952,-1543438591,-1040186624]},{"sector":5,"data":[771817218,-1962933504,973143811,822084352,1057029891,-1493171456,1157693185,1744896768,754975235,536871680,1241579267,33555201,1375796994,1258357505,-1275067647,-2080308480,1023410688,-973077760,1510014721,1375798016,1107296769,1845560064,1157628419,503382784,1107297025,-1795095808,1459618304,1124074240,-167706880,0,0,0,1167087646,518818645,-6629234,-1962934017,-167555554,141852679,-1207750680,166395905,184557288,721974464,-6664000,-16776961,-1709487050,65535,-1962742397,1297948645,-326412853,-1955140477,-1962717666,1183385159,206015428,-1191295351,1344144166,1347469355,1380188346,1347440720,-1976107184,922701830,1347421836,16777114,112239360,963952651,-26032,-626851840,1958742790,-1617276899,-1560281088,-1073019172,922685556,-6682918,-1560280833,-1073019170,922687861,-6682960,-956301057,438278,-26112,-1070923776,-1207794711,1347420161,-1070903216,-6664112,-1560280833,-1073019164,1048825972,1946158816,-600375535,-533266682,18323974,-1073020928,922686837,-289929588,-1706025466,297,185000099,-2086439744,451134,922685812,922683100,1956251362,184549377,-15174208,-1207530442,1344145142,16777114,115516160,58048523,-1912638487,726715462,850940096,-6664192,-1207959297,-11534176,-1207065034,-1706031712,65535,1183439095,-867791412,-6664170,-1996488449,-1072969658,922687092,-1706031398,761,141934603,-1698138369]},{"sector":6,"data":[65535,109067907,-385649664,-1667170077,-1980182259,-120471482,1183447249,-1069118530,1174665425,-1677327424,-1035564784,115357439,1342181048,378160781,37526096,1183514624,163158412,-1980107008,1183553606,109093774,1183432747,-754732644,149554656,-342210935,-1705079993,-1983756661,-1705080057,16926663,-1705080064,26756747,1183564358,71797186,-1952817525,-1992257978,2122516039,108265884,77364867,1183516021,-1962677312,1174519366,-1673068606,144328323,161250947,922727292,246941410,1183666176,-1706027382,65535,-1718860149,-150993479,149464057,-1550956917,922683698,1183647450,-1706027362,65535,731924107,100901958,67438898,-2147090176,1310624518,-2146467837,-1962508127,721636894,-1992290745,922733126,-1070919628,-898171056,-1950058753,1177288262,28856522,-1264955392,-16777214,721858614,-11513664,922731638,-1706031488,65535,112211711,16777114,-633929984,112646,-26032,922681344,922683098,922683024,-6682994,-16776961,-16328138,-16346058,-1710845386,65535,114964223,110507775,207258,1354771200,-1808335024,-1841889530,-26106,1183383552,1975520198,505868,-26032,1183383552,-633929786,-965279994,16777114,-1338573056,112646,-26032,922681344,-6682960,-1207959297,-443875327,-1957313699,-633929748,1354771206,1245118288,-2143879405,-1707671802,-1741226234,63740422,922681344,-1348860240,-956301312,438278,-401698816,512426119]},{"sector":7,"data":[662700878,-1979267201,-16776959,722482230,-11513664,-1592571338,103485460,100864022,1346373248,1342177720,171930,-1979267328,-16777215,722483766,-11513664,-15513034,-15722954,-16344522,-1710843850,1326,109721343,1347469355,16777114,1575324416,-1873273149,-326412987,-2082959842,438334,-1070921100,-1873784752,11528206,-1962742397,1297948645,-1873273141,-326412987,-1579643362,-324860186,108347398,116131527,1048772608,1946158786,115783699,-18352,243792,74160720,652935168,-1202667477,-1873739777,223864846,1342177720,1358954424,1256722064,178189,-18352,-401698736,-1229451971,-4698101,62411007,2073710592,-1207959548,726665396,448286912,-6664192,-2097151745,-443874579,-884122337,1167087646,518818645,1048828046,1946158822,1354771209,-401698736,-310178567,535137026,516640093,1430622296,-1910575989,1659667416,512448087,1200292686,-96040694,687747,1038680948,108954371,-1593084672,1178143028,-385649158,-1667169659,-867792627,114964223,382617229,39623248,-2136932352,839265030,-1991751671,1317793350,-733074480,737431177,-129594943,-2084026743,1946158718,-633929885,1354771206,1245118288,-2143879405,-1707671802,-1741226234,93755910,922681344,922683098,-2136928100,-1706014714,1378,114964223,323630847,1208385697,91396688,922681344,922683098,1996427420,97557230,922681344,922683098,1996428106,98409198,585826304,114964223,-11485141]},{"sector":8,"data":[922732662,1183519562,-934925330,-1707671728,-1741226234,-26106,922681344,-6682918,-1996488449,922742854,922683098,-1070919524,1245118288,-2143879405,-26106,915079168,1982533788,-14816262,1443289654,-1694992641,1545,114964223,-294191274,399002,-864681216,323630649,1183571327,-772222476,-129629704,-1949532463,722508854,451672694,114964223,-126419114,410778,-633929984,1996445190,106011374,1979908096,1245067724,-1948418285,-120458170,1174534353,-864646152,906231505,1982533788,-14816262,1443289654,-1694992641,65535,114964223,-294191274,16777114,-864681216,323630649,1183571327,-772222476,-129629704,-1949532463,-19805066,278672899,-335907285,-633929955,1996445190,88120056,922681344,-11139366,1385885302,50331653,909757558,-578874550,1342178744,16777114,-901347072,278673035,-1325763029,-213481424,-369998200,2122317972,125188595,-957200642,-2144275642,1966142078,112645,-1070923029,-3783031,-1962485194,-230453768,45633558,1355229952,16777114,-1002010368,-1949678077,-1324508138,1006293763,-14385982,-1962485194,-972830138,-931725488,-1950058753,1177284166,922702024,922683034,-2120612200,-16777207,-1962485194,-972830138,-934900912,1356088875,-1916371317,1343681091,721420984,-6663993,50331903,-32662474,909767494,58594122,-39959,-16328138,-6623114,-2097151745,1962935934,10414339,-16192834,-16327626,-1710825418,1947,712359947]},{"sector":9,"data":[109852415,503770808,16554576,-526188544,1958742790,-600375538,110776326,184549384,-1710787136,2355,1187471595,-1962934078,69928004,-4307319,-16328138,41221940,105155408,1342325803,115095295,-138262901,726711918,104419520,141821596,-1174378824,116064409,-1174396744,1347551436,16777114,147227392,-2084419841,2081014398,-600375374,-466157818,155884038,2122514432,57933832,-1962779927,-787945410,278700543,1183434539,323658152,278660651,1183434539,-432110684,209059590,-11485141,-1878594506,157018126,1353336461,16777114,112640,-1350664112,-1207602176,267124735,766330507,-768933648,-150964039,1346388209,786960016,178185,-1400995760,-1207602176,116129791,95045259,-1873805307,152299534,305805055,459945727,459814655,16777114,976682752,1781989138,1748434715,-26085,2122514432,1635057670,956904609,1500904006,51054753,990579206,1963701766,185114956,196609593,-1063173259,101067533,-1173996789,-1103727349,415172788,956664587,-2094369532,57999420,-1979613463,119800389,-1969207672,119800388,-1969338744,1178116166,-2144111458,1946394238,1963146244,323658025,149423619,842465104,112649,-1070903216,-811970480,-1996488704,-1072956346,-1164308363,-385875968,-964493005,80184068,922722283,1996424926,15375100,-1706033152,384,115226367,1347469355,51595937,1342760966,154285823,110902915,-1593216000,378209944,116065946,-1174379848,1347551487]},{"sector":10,"data":[633498,-633929984,1354771206,721846433,1208562182,323658064,149423619,842465104,-1707671799,-1741226234,57055750,144769024,168166155,196518667,-1559557983,-1063187528,306881293,184944171,-955532637,48198,-776184181,-1229455389,-1674117365,94418957,171022928,-125108224,200965675,957644031,259957886,-1950583041,-956061626,1354771280,-16236824,2122562630,-998505540,-2096581442,1962935934,186169423,448288336,-6664192,-352321281,-1502150849,228341503,1342546104,711578,737708800,-15992194,2117673852,-1977712988,119800388,91554620,-352320328,243715,-1471771824,726714115,-521645888,80118535,1183384715,1975520166,-96040008,1577661603,49120095,1562371467,445005,1167087646,518818645,-326903666,1187468866,-956301064,62022,14960327,1354771200,16777114,1975520000,103409923,-16222465,1183647350,1183666416,619204846,-260144378,-385649661,1183514987,-1677317370,872809232,-1598533623,922701829,395971996,-1996488693,1187503686,-2097151774,2097406590,-497120404,-1207966767,1996426166,134801630,1416937483,-1981659509,-661915066,-1207966767,922684342,-1598550628,194662405,-1962934260,-787945458,62991353,722508806,-1995885562,922744390,-1588590886,103483008,1346898226,149436159,154285823,-1174402632,1347551317,466842,15853824,-337492225,-532232306,1187446784,-1962363672,1065609310,-2096204544,2081218686,-26033,1558773760,-396457211,1996437503]},{"sector":11,"data":[125888734,796180491,-1947705717,39291655,-1981135223,1183509590,635710188,67436551,474368,79168885,-1207702784,1183383555,-361299974,-43031,1183047750,-1544878872,1357530765,-1202667477,-1706033150,1074,-402229505,1183385451,-432110614,74776582,48956592,69994416,1317668644,-119439124,1183367434,115778028,-1996487931,-11470266,922741366,-1598550628,-224767995,-1962934260,-787945458,62991353,722508806,-1995885562,-1202653626,-397410303,1187448343,-352321032,-260144364,-385649153,1996424347,-294191120,1458048656,-1338573051,-26106,82378752,-260144383,-385649661,1183514839,-62486266,323618363,1252066686,-1593251053,1178144924,-1996259844,1996487750,113633532,1004947081,1980910086,-92372212,-1593410301,1183388234,-92371994,-2095547389,2080376958,109093243,154273283,2114471483,-427916433,-2090241024,1962996350,-163149033,149425803,-1056704047,108914768,1978025531,9038083,33048263,-226589952,-15960832,1996487286,1354771446,-16425240,1996487286,-1674117146,94418957,22321744,243990528,-103741208,100909355,103485596,1183385908,28856566,820531200,-230242555,1038811136,15892099,1996426357,-159973382,-397361109,1187448087,-352321038,142016292,-1928956161,-1924074426,-397349306,1183515551,-196724240,1996426101,-294191116,1189613200,105286916,-26032,-1073020928,-320273548,-25858,2122514432,57934832,-2097080343,1962996350,-92864756,737572607]},{"sector":12,"data":[-1125625664,-125926652,-1961135104,1183385158,1241922556,-1593475565,367727434,957389985,276692038,1183517675,-401699850,66703624,-62486079,-386107649,1183384967,1241922534,-2096335342,2097412734,306880774,-2082060663,2080635518,142508833,-385647360,-2136932194,839254790,138820361,-1880554625,-427916544,-385649408,1996423302,-428408838,228341503,1342546104,647834,-401700096,737792264,-1677327423,872819472,-1070903287,69331024,66748035,1988831357,-2115579398,-1962166586,70903366,28837236,721611520,109487040,58048523,-1962900503,76146246,1183546603,-364475930,-2081923445,158662719,1357530765,-351976984,-396457115,1996437503,100264166,1450557451,-387418369,-521468675,-2081923445,1182007359,82831443,1996439787,108461832,1358186125,1356613261,-1962785048,1178202182,-15763980,1183577206,-297367076,-401698736,1586168553,-1948003858,-2026246586,91490022,-352321096,-1983894782,2122572870,108265700,15761027,1048777077,1962935942,-2076278006,57999366,-1929253143,-1705982906,65535,-1961677663,957558294,2082172438,956727053,1981508614,178181,-1070923029,244044331,512433004,237706094,505092968,1317608298,-631338536,-635713493,-1983885687,699974238,922701824,922686010,922688362,2122521448,108332016,66748035,1183516797,-631862312,1183516395,-1034515520,-4698030,1385779455,-1032388784,734033663,-6664000,-1962934017,20836422,1024291840,443809794,1946157885]},{"sector":13,"data":[18409762,197019335,7911424,115879671,-371964279,1187447046,-1593834306,86836970,-1947342080,71170630,-385649152,-1073544984,-1476448621,1187451020,-1593834562,103484342,1183386552,13560276,722187937,-1995720698,1183700038,-767129138,1191172235,50841298,1356088973,-1194166529,-1706033150,4280,1355695757,-1705983957,4292,29247175,196649216,1187495147,-1593834818,103486026,-1360327750,109315783,512425984,529207074,-150989128,-1961739730,339774448,198592137,-1205373504,-1706033126,65535,1087784585,-1863777419,572427008,-1205892337,787939350,-259321286,-1982445941,-1263004608,1586188296,-1204289578,-1706033126,2591,253894283,381165451,976156416,-2131719406,-956168632,-16605690,-25857,1022033920,264769462,269750278,113709076,1670,-1982970227,-661925306,-1965930753,126402118,1356088973,-1194166529,-1706033150,65535,1355695757,-1705983957,65535,1355040397,1342177720,16777114,-310157824,535137026,80366941,-326413056,-956109693,65094,-1308735861,98620163,1344145642,-16091393,-6682506,184549631,-1960676160,-1072955834,20807548,1029799424,1971060738,2113930301,343392,138242940,-346063360,-28901532,167673475,-2136884612,839265030,994592777,595528262,-1961845599,-787945458,1002515449,326961222,-787945311,1241908216,138820371,62391678,-1207702784,1586233343,-1962440442,130483294,569114623,-955883893,-352321529,106859280]},{"sector":14,"data":[67527,1586169835,34064134,73304832,-1979824501,1575324423,503318722,1430622296,-1910575989,183272408,138840918,-435822383,-96040698,126605451,972834441,1970538054,114966147,1030124544,762642431,61993099,-964565293,922683626,889128666,-1962773249,69928004,105155408,1342325803,-1174402632,1347551317,1190298,108954368,-1959889665,61933174,-964565293,922683626,889128666,-1962773249,69928004,105155408,1342325803,-1174402632,1347551317,740762,-94467328,-1996077429,-310157817,535137026,80366941,-326413056,-1593643901,103483008,-1991767758,922746438,922683100,2124023522,184549394,-13994560,-1207530442,1344145142,494234,115516160,242532363,115095295,318413392,-1073020928,-1533409419,-352321529,-566821007,108461830,-11485141,-16193482,-16174538,-1962484682,787941446,726665448,1723355328,10074624,-308653998,-16777198,-16328138,1996424822,-399048706,842465032,-566821111,108461830,961593387,141820998,-1174402888,116064307,-1174396744,1347551436,519578,-600375552,-466157818,125344262,-443875328,442973,-2081649835,1183515372,71707398,201213577,-150635072,-28931624,149436159,1342546104,228341503,1268890,1006162176,92208710,-352321096,-1950340350,79846885,-326413056,-1962742653,103482438,100864156,-1202714316,-11532896,-1710384074,3589,-1174518135,755302490,-1949160704,-135006247,1575324641,1426064066,-950604661,17204230]},{"sector":15,"data":[73304832,1150022539,106203908,1468598153,73304834,67389059,1962950531,-443851036,180829,-2081649835,-1957296404,126551134,-1090894199,1139476660,1996436735,11135226,880066571,-1979425141,119800391,-2147332982,-1053161503,126554228,-1996335221,39094532,109315783,28835841,-1070903296,112720,-401698736,1793847477,-2096839037,-1200291780,109315783,-1262616575,959376136,645397062,71601494,146061392,-120469973,369491492,1754943488,-1962934256,126551134,-1996335221,39094532,-964481813,-1996190972,-1072956346,-963917451,-787958739,1039716856,310181900,-1962647925,39291655,1418265737,71616258,-1956773888,46292453,-326413056,-1962742653,1177224774,-28931836,92127243,1183439095,-25263106,-1207599782,48955393,-443826133,923058781,-620690688,16777730,-905903360,33554946,1057030912,2080375555,872416000,-1627324672,-654245120,2130707203,-1509948672,520158984,-335478016,150995458,184550144,-1560215808,1795162880,604045071,-2046819584,-1493106928,-1593834752,671153930,-1895759104,318767622,-2113862912,335544838,-335543552,738262799,-1174338816,369099269,1157628672,-1375666424,-788528384,-1358889200,-335543552,-1325334770,-1795161344,-1308557560,1241580288,301990668,1711342336,318767885,-184483072,486539793,-1627323648,503316997,587203328,939589396,-872414464,956366603,1124139776,553648647,-1224670464,570425874,-2030042368,-1140785390,1593901824,654311943,1526792960]},{"sector":16,"data":[754975250,654377728,805306889,1963000576,687866624,1912603392,1224802059,906035968,704643843,-1895759104,872415744,-1124007168,754975490,1828782848,-1358953710,1661010688,956301825,721421056,1392574208,-1593769215,-1291844858,1509950208,1409351437,167838465,1023410691,1862337280,889193219,-1459551488,939524867,1342243584,1157628425,-134216960,-553582833,-2113862912,1107297024,-1174338816,1375732225,1124074240,1795227393,687866624,1812004627,-16710912,1275069200,436273920,1459618307,-385809664,1526727174,-301923584,1560281604,939524864,-2113863920,0,1167087646,518818645,-21440370,2122534921,91488262,-352320072,440323,-26032,922681344,45614750,-4698095,-1202708983,-1202712318,-1706033024,65535,-1962742397,1297948645,131786,1966083,10617087,3670275,10027011,0,0,1167087646,518818645,-326903666,205949738,1946157629,343411,255682164,1024685056,57999873,1023480041,57999875,-385808151,-6684397,-16776961,1183649398,-1706027306,65535,-1202667477,1347420161,26522,242679552,383141517,-26032,28835840,-1070903296,-6664112,-2097151745,124478,-1070921612,-26032,-1070923776,14281113,-1559869813,-471133366,115097219,-16157696,-1710826442,183,115228291,-14912512,-16327114,-1710385098,209,14129744,922681344,-6682914,-2097151745,449086,922702196,230164186,-476426240,1342177280]},{"sector":17,"data":[59802,43667456,-16777215,721869366,-157658944,1342177280,64666,-633929984,505862,-26032,-1706033152,65535,18848336,922681344,922683056,-6682918,-2097151745,451646,922685300,-6682908,-956301057,451590,-1547687168,-559741220,114991878,-51991,1996425334,-26106,652804096,242679807,-15960321,1996425846,108461832,16777114,49120000,1562371467,202033741,1426129664,1795162881,1979712256,1090584320,-1476328704,754975232,1073808128,654312192,1510015744,671089408,1040188160,1426128641,1291846401,1442905856,855638785,1459683072,-1811873023,1140851200,-1375665408,1157628416,251724544,1140851457,-889126144,1459618304,0,0,0,1167087646,518818645,243325070,-402583543,1048772790,1946159984,153518087,1005321744,109852415,-1728048712,922701906,922683018,922686004,-1684401614,-1560281088,-1073019222,922684276,-1415966668,-352321536,-401698802,45613766,-1147514816,-2097152000,-443874579,-884122337,1167087646,518818645,243325070,-402518007,1048772690,1946159984,153518087,1005321488,109852415,-1728048456,922701906,922683018,922686004,-6680014,-1560280833,-1073019222,922684276,-6680524,-352321281,-401698802,45613666,-6664128,-2097151745,-443874579,-884122337,-2115204267,1459668716,269066326,19260458,-96040704,376750091,-1962476383,-1996030442,1451883590,117481982,117577355,77665515,102140679,-62486265]}],[{"sector":1,"data":[-1577167223,378210056,1183385354,-128546314,-1961878367,-1559224810,378082098,-960556236,459849227,96012062,-1700400640,65535,-1705983957,65535,-1705983957,65535,58048523,-1962861591,1452013126,-27903496,1178167413,-10258948,-1928113610,1358905478,1342190520,16777114,151451136,91488528,-352319816,505859,-1962930395,-2130751346,-1056182047,-11499895,305805055,-100609,-2037515146,-1705967808,65535,191905411,-385649664,922681708,-6680006,-2097151745,-2096957882,-385812394,1183514792,-128545802,-2097151443,-2037841702,-1769341124,1446772542,-385647106,142540940,2013021755,8579331,305805055,-12810613,-12675445,-2097151699,1347551450,-1202667477,-1706033149,65535,236994179,-967082495,1493121670,305805055,-12667137,-12798209,-12941683,112720,229161040,1354771280,16777114,1883144960,57933835,-16720919,-15582666,-49482,-1191232330,1385758721,2147465296,1354771280,-1706012592,65535,191905411,-385649664,922681520,1183647370,-1202710874,-1706033072,65535,1353074317,16777114,118530816,-955747008,462854,-14947584,-2096723402,1946221182,118667269,431490027,1390054407,53910096,1183514624,-27882500,-1995217245,-1559009258,378081312,480448546,504793360,-1957670384,1452013126,142840,1375787651,-26032,748879872,773228819,270836499,270931593,325596927,325465855,325596927,325465855,16777114,1354771200,16777114]},{"sector":2,"data":[470206208,-1711275774,65535,191891143,1599995904,-1017256565,1167087646,518818645,1048828046,1946158864,-1976107232,270437126,503810823,-26032,922681344,-6682864,-956301057,462854,56138240,922681344,-1415966150,-1711276031,300,-1962472287,-1559818730,378082150,547558248,571902224,976682768,-26094,748879872,773228819,270836499,270931593,-1705983957,308,269035136,153518334,849476880,873892627,270312211,270407305,197670655,197539583,197932799,197801727,193946,98867712,113704960,1706,-1962742397,1297948645,-1873273141,-326412987,-2082959842,-950655252,167701574,253894283,381165451,976156416,-1947170030,1183386688,205949942,1962935869,11462915,1962938429,46852355,1946226749,17906955,-1427569803,10676480,-1559345525,922684352,922686010,922688362,-6677656,-956301057,34158086,102664971,38272768,16154243,884475253,-1962546417,126613086,-244087,112725622,312561664,533771,84253264,116785152,1946226697,-330920692,-60912816,-351111169,-330920690,-60912816,721569675,-11529145,-1207772106,-1706033142,65535,-1207011585,-1202716667,1344145918,16777114,102664960,38797056,-385875528,2122515049,108265482,-1559345525,-1070922060,-1962780439,20777542,-385649408,37552648,-385649408,54329856,1026585600,57999364,1023462377,-696975354,-1207011585,-11534330,-1706029450,65535,91602955,-352321096]},{"sector":3,"data":[1354771202,16777114,-1197348096,-1706033151,1496,-1804287989,31999686,-1961136991,958098966,1964730902,1745238283,-1207601893,468388334,305805055,459945727,459814655,-1202667477,-1706033150,508,1343200440,1356744333,1342178744,91546,-514949120,112704,976682832,1781989138,1748434715,1347590427,1358954424,726684313,1347440832,396186,976682752,1781989138,1748434715,-398029541,112720,-565801648,1354771280,141722,470206208,-385875710,748814078,773229331,1711680275,1746279187,-129595117,200955529,-385647150,125828834,58179595,-1191257623,-1706033150,316,58048523,-1694578199,776,1342178232,305805055,325596927,325465855,-362753,-4654986,1385779455,1354771280,-6664112,-16776961,-15582666,-15505354,-15505866,1996487286,2147465464,1354771280,-1706012592,596,-1946256919,1317788742,130122730,1283375419,-1588543445,103485240,103485446,-1706030614,65535,-2472311,922685046,-11530234,-15696330,-6628234,-16776961,95948406,-6664192,-16776961,95948406,-6664192,1342177535,18330,-31397632,-1411329,112725622,-191213568,1342177284,-2031612272,-401698816,922745970,1183649920,-1706027282,65535,276838143,384714381,1354771280,16777114,-1274624256,-16777210,-6680970,-385875713,1183710678,1996443882,374798,-26032,-1073020928,-1075248267,-365001731,-1737228286,-1588543445,103485238,103485566]},{"sector":4,"data":[-1706030596,1616,-153336183,17828102,518587253,276734463,1593777129,-1962742397,1297948645,503319242,1430622296,-1910575989,317490136,269066326,19260458,-129595136,158646283,-1962476383,-351863274,117743879,117839499,-1980742007,512488022,529207074,-150989128,-1961739730,205556720,737822345,-1684385600,184549384,-385649216,2122514674,963969274,1342190520,16777114,-96040704,-385649344,884474074,1586188303,-1204289542,-1706033101,1369,253894283,381165451,976156416,-1947170030,1082784326,-94467316,1183385483,-125926404,-1962249216,138841048,-351123575,-60912882,1150022539,138816258,-954972279,454214,425603,1182991476,2122516718,57999608,-1161473,-15582666,-15505354,-1592564170,378213164,19731246,14320384,865751122,1375731720,147167824,922681344,922686254,922686252,922685028,-761655710,-1560281086,378082092,1721832238,1746307859,459842323,459937417,-1961677663,-1559024106,378084204,1187388270,1183451636,-179926802,1358186125,-1705983957,2602,49120094,1562371467,313933,1167087646,518818645,-327034738,1448542342,184960651,58001478,721533673,278548672,184549381,-385649216,2123170219,459849454,96012054,-1952058880,1451952710,-364476148,-1288567,1347554934,601242,172395264,51140235,1444087366,1645120264,1679723278,-431060722,1005084297,-385647149,125763737,57917755,-1962897175,1452009030,77288,-1996432765]},{"sector":5,"data":[1451876422,242679778,-1070903214,112720,88644176,512425984,1065357228,-385649652,1996423386,-327745778,-1695910145,2489,-8733043,369820350,3389703,1996465650,-532247794,98719371,-763166718,-1202695680,1385758721,2147465296,1354771280,-1706012592,1580,-15829249,1996481142,2055638496,-1734717185,-2097151999,749630,-1097180812,-956301309,451654,269027062,-16550910,1183573062,206998282,-1994692445,52128278,1444087366,460104456,460199561,305805055,-2097151699,1347551450,650138,321691904,321787531,241440313,109001596,241305145,28849014,-2093946112,17581574,206050947,242679552,-1280257,798681718,-1593835516,378211938,1183387236,-396981786,-1947842933,-1259739050,-1983894530,-1072956346,109251188,-2097016020,1256982,167265990,-1998305654,1183709510,-1070903048,-26032,2122514432,175374588,321662595,773751554,1996423187,-294191120,460207871,460076799,244122,-2090902016,-443874579,-900899553,50341130,-16615168,50368000,16989953,50333440,50774273,50363648,-16478208,50372096,-16245248,50339584,-16561664,50339840,-16247040,50340096,-16416512,50340864,-16354560,50373888,-16154880,50341376,-16289024,50341888,-16357632,50374912,-16326144,50375168,-16317440,50375424,-16754944,50343424,50758913,50337280,-16276480,50345984,-16544768,50347520,50769921,50340096,50491393,50340864]},{"sector":6,"data":[50504193,50341120,-16550400,50350080,-16162816,50351104,50777857,50345216,-16559360,50419712,-16225280,50388736,-16102144,50356736,-16157952,50357248,-16182784,50357760,-16408320,50358528,50345729,50354432,50757377,50354944,50635009,50355200,50618881,50356480,50763521,50356736,-16283392,50364928,-16581376,66560,0,0,1167087646,518818645,-326903666,-11118832,721635894,-6664000,-1929379585,-11471290,1996425334,-26106,1183383552,-94991880,305805055,512446546,1602945870,-1960867018,78771782,-670834477,704726922,922702052,922686254,146281260,-6664192,721420543,1183535296,1376135942,1183666179,-6663948,50331903,-1996265466,512490566,1200292686,-196703990,721844107,-1995400138,1178202742,-1959952900,-8171522,-1962640056,-1207702585,1178140744,721714684,-2091258944,75319551,65783691,-1962915656,-62485560,1156301099,66340491,1178333766,-1958576132,-2091912578,75319551,65783691,50350264,104594502,92148542,-351060319,1224704783,-947190659,1220019179,-62520576,1982591115,-167033102,-963926660,1358186027,233311888,-2090902016,-443874579,-900899553,1478361092,-1957345904,-661774612,-2096436093,1946158718,1310624624,779616003,708069258,1200312548,105251594,112720,-26032,-6684672,-1929379585,1343682118,278673151,-1957642197,-16560610,2013202039,-26100,1183645696,1183535350]},{"sector":7,"data":[1356396294,-1873756117,2942990,55195391,16777114,1310624512,105286403,-1962260735,-167555554,91521031,16777114,49120000,1562371467,182861,1167087646,518818645,-326903666,-1957275872,2122517110,125632520,-150452597,-1962677288,1183385670,108954604,-1962443520,-654899642,1183515627,-364476154,556675,2122516852,57933830,721528553,889147584,140442,-498693888,-1962642177,-16560610,-125106569,145562,-1983436032,-1072961978,2095645567,1310624513,242745091,-1711115009,65535,-1816951,512427636,2013201230,-1694987508,65535,1183434539,2143292392,21883139,1357006477,1357792909,1342179512,157338,-498692864,-163148464,571472,-26032,512425984,1200292686,-532248270,971785867,58713670,-1962870039,1178200646,-385646616,-6684433,184549631,-1587186496,101386068,410322774,-1157627976,1347616767,109852415,16777114,122987264,123082377,123090687,122959615,1344194187,16777114,-1338080512,745799695,55451275,-13862913,1996425334,516328198,-1706025392,65535,25822919,-6684671,-956301057,100870,10348800,556675,1183517556,-96040468,-336443863,-364475639,704398985,2122576966,243073032,32261771,1183572550,-163184142,2122526443,142475272,32261771,552332870,425603,1183518333,-465174038,32786059,216791110,425603,1183532926,-263847446,-2066689,1996484214,-227082256,-755969,1996480630,-461963294,-1174396744]},{"sector":8,"data":[1347551436,16777114,-529072384,-624897,1996486774,-59310086,110769919,110638847,16777114,-2090902016,-443874579,-900899553,1478361094,-1957345904,-661774612,-15012733,-256374154,-6663937,-150994689,1971323074,112646,-16740887,1183648374,-1706027278,65535,-1980610933,1183573574,-398030348,-1980348789,1183578694,-62486024,55451275,-1926465537,1343678022,264858,1310624512,746061571,385500813,-26032,1183514624,-230258202,-1981266293,1183577158,-163149318,-1979955573,1183709254,-1924131094,1343681094,-16222465,-6683018,-1929379585,1343679046,16777114,1958742784,-9049853,263194311,-1070923775,-1962742397,1297948645,503318218,1430622296,-1910575989,915101400,512430646,1999307598,108411146,-963967874,1183515627,105285894,142524427,-401698736,99351692,315802,-310157824,535137026,46812509,-1873273344,-326412987,-1948742114,-1962717666,1194919494,-1962574582,65735239,-1996077429,-1073019322,-654898562,-401698736,99351628,16777114,49120000,1562371467,453167693,637534976,-1811874048,1862271744,-1761542400,-1610612224,469827330,-1224670464,-2030042365,-184548608,-1425998079,1426064128,738262786,150995712,788594434,-1862204672,486539779,1963000576,570425859,385876736,989921024,-117374208,486540035,-2130705664,1040252673,-805240064,536871683,1258291968,1107361537,-352320768,-1023344894,-1459551488,855638274,-1728052480,-1006567679,-1862270208,1224802052]},{"sector":9,"data":[-1962867968,872416002,-1056898304,905970434,-536804608,1023410946,1174471424,1040188161,1526727424,1694564096,1711342336,1207960321,1090585344,1258291972,922813184,1325400836,-1660943104,469827330,0,0,1167087646,518818645,-326903666,512448014,1200292686,-163149514,704857994,-230258204,-523041615,66477707,1060103,-1946663287,-196703993,-1946657141,-1962717642,1194921028,-1961984498,-667159482,1854080886,1325338872,1310624754,105286403,956847755,58594903,2080408297,340211973,1586199415,71797752,105317273,-1995942125,1451883078,139869180,92234620,1913013819,-96040100,972838539,242550870,1963345465,-128021751,134367222,922698612,1996427834,108461832,16777114,302446080,1551110155,-1961136991,958098966,1964730902,1745238351,-1958120165,1755444318,1779862299,139933979,1194932853,-2143980282,1979711871,1310624559,105286403,-1995942261,1468601415,-1873784298,137947150,55451275,542663,655341568,-230257840,-1873741615,59959310,49120094,1562371467,313933,1167087646,518818645,-326903666,512448014,1200292686,-129595082,-1961080949,1194008151,441916184,-1980086647,-1039401898,1187448693,-352321290,-128021642,1207312267,292815874,55451275,1963001846,-6663416,-352321281,1310624522,340232963,-1995024501,1451881030,-59310092,-1191545089,1385758975,-230257840,-1946921333,721636894,1461393479,-1706012134,65535,-1946530165,-70124450,-1056712239]},{"sector":10,"data":[1347605267,16777114,-2114942208,2113994750,16758789,-963968277,-1946794359,-1979494882,-467001273,1962296891,813170455,1345669002,-1997126006,-1202708409,-1706033151,65535,49120094,1562371467,1478413133,-1957345904,-661774612,-2096698237,1946159230,142016356,55451275,704857994,-6663964,-1996488449,664406086,-16777213,721635894,1996443840,1310624520,239569667,1342588419,16777114,1310624512,912231171,1183385483,-96024580,250281984,-2080612725,-2146370490,-130457,1183578694,-96061176,512486012,260047694,49120001,1562371467,313933,1167087646,518818645,-326903666,922703376,-1070922934,-26032,512425984,1200227150,-1947981309,-24949008,-1207602431,48955393,1178322571,-1962576378,216729158,1929510531,112645,-963968277,-1962522999,-1962717666,126563935,-1324984693,65196804,1060290,-335788407,-60912862,-1727772789,319178499,372967511,360452910,104531583,225841964,284978819,-2096738561,2130708094,108954584,-385646848,1486946550,1241921799,-1878297597,95807502,-1560065375,-6682792,-1962934017,1200356446,1191418116,139924230,55451275,-1995159671,1586173527,38270716,-1979157496,-467009209,721611584,1310624704,138905859,55451275,-1963166069,38242308,55451275,-1959370869,-62486265,44056195,-1955564288,105352152,-1995942005,1451880518,21465842,1183441962,206015478,-1946663287,-1979494882,-467008953,-336312695,-60912835,-1727772789,319178499]},{"sector":11,"data":[1183385687,-229209616,134367222,1200228468,1088694785,-1070923029,-1946794359,126549086,1183441962,-62487564,-60912880,-1995683957,1183709254,244338928,-1962673176,1325336134,1975520006,1310624688,17793027,535301776,73964285,99287040,287130,-310157824,535137026,46812509,-1873273344,-326412987,-2082959842,1187448556,-1962931974,-1962717666,126563935,-1946401143,38270680,-1962511359,1183386695,1310624762,206015235,722356011,-1202652602,-1873795313,4909070,125157387,299162,-1710888192,1175,-1962742397,1297948645,-1873273141,-326412987,-1193767394,-11524337,244319862,184556520,-1710787136,65535,-6683157,-2097151745,-443874579,-900899553,1478361090,-1957345904,-661774612,23391361,1310624598,912231171,915087243,1149961038,374639380,1963480889,105330949,512429940,1602945870,-165704906,1963000391,112645,-1070923029,-1947187575,-1962717666,1468732487,-196703978,-1946790263,1183385671,-96024590,1187446784,-956301064,64582,-1946343552,-2147267042,1486946575,1241921799,-1878297597,61728782,-1560065375,1048774488,1962934944,-62456061,44056195,-385647103,-2033778193,65186,-22509881,1721827328,1746307859,-162121453,92031103,2012497465,-226589887,-2093255424,1946218622,-92864757,-1862764801,-58529778,55451275,-1961662815,-1995216874,1468601415,1310624534,138921731,512425984,1204159310,244318210,-369393176,2122514675,92143868,-335786241,-226589933]},{"sector":12,"data":[-16417280,149680718,32796291,16146051,-624897,244380790,-1996279320,1451879494,976682990,-159973614,-1695254785,173,-1961129823,958106134,478146134,1178142076,-1592428564,378215304,1183390602,-296318484,-22378809,116064256,-22378809,1183514911,-296317972,-22772087,-22636919,-23034169,1183514624,-162100236,-22636999,108997756,-22772167,1183523954,-162100236,-22636999,-1125579916,-1534707456,-385649410,1183514803,-1601816078,-385646850,-1098710873,1965096610,-1467562228,-956300802,16687750,976682752,-1497956590,-1531510786,-1598619650,775356414,741801747,571411,-26032,1048772608,1946157552,-96040186,-1962852375,-89466,-1174494586,-369688566,-2104627061,-2037776724,-661913954,-22772085,-22636917,1468598153,-1633776894,-1601795074,105351678,-23159157,-1996262239,-1635055545,-2037645666,1200225962,56664324,-22378871,-1962714975,-1996269034,-1979800442,-1577146730,-2037841060,568983200,-1400467969,-1224781570,244383394,-2097071128,16689342,179837812,-1565591808,-1913615362,1358867586,721428664,1358865030,434638480,702465,44314359,-1995682811,-2080465786,16949310,-661973387,1468729227,-196703998,-1946790263,1183385159,-35853838,956843659,142473286,956712587,1132264006,15761027,1996426100,-126418950,2112360080,1310624762,-1665758461,-1962636290,1200161364,374835476,55451275,-23284085,-1996077941,512428103,-1232403634,1149959836,38242308,-136215]},{"sector":13,"data":[-2096978930,173118,113706623,2097828,44044031,-1191557377,787939338,-661978460,206866315,-369605119,-2090926249,-443874579,-900899553,1478361092,-1957345904,-661774612,117397079,1048773280,2116027040,-1576599787,-1572961534,108339202,44172999,251592704,-1532951904,-1543045374,2112770,113706613,66212,-150992200,-1962761170,105286616,206356365,119468171,-234879559,-2090901851,-443874579,-900899553,1478361090,-1957345904,-661774612,1459940483,702550,50753271,1183385670,2144508,44041771,1983508619,-1962574586,48956998,1183434379,-1610219258,-1539407102,913637378,44304071,787152928,-16604511,184721934,-955877952,520266246,702464,44183287,1854134411,1183517436,1455394300,519080716,375047,1183557106,105840390,-931807221,-310157474,535137026,80366941,-1873273344,-326412987,-942109154,172038,-1547687168,-1465711958,44344066,-2096979293,-443874579,-884122337,1167087646,518818645,-1465788274,-1441363198,139868418,92213372,1913013817,44605705,44701323,1721829355,1746307859,49120019,1562371467,313933,1167087646,518818645,-326903666,-1201935610,787939338,-661978460,206342027,206477195,-1980086647,251657302,108331684,44304071,1183514656,139889414,2147243577,956660781,645134918,-150992200,-1962761170,1283951576,1318554380,44606220,44701321,-1560108383,113705636,672,-1600056853,-1609629950,81154,244357503,-2080430360]},{"sector":14,"data":[-443874579,-900899553,50334724,-16393216,50339584,-16665344,50345728,-16608768,50346752,-16514560,50413312,-16637184,50348544,-16512768,50350336,-16639232,50383616,-16630528,50420224,-16684288,50420480,50457601,50347520,-16348672,50357504,-16670720,28160,0,-2081649835,1048778476,1979650618,31189251,460594827,563755007,1207959554,200427145,-1207142976,-1706029055,218,-402539287,1996426720,223930610,58048523,-1593725719,1183384296,1958743028,-1774780649,-1808335102,775356162,741801747,48732691,132841472,-1961677663,-1995231722,1451883078,460104188,460199563,-1980348791,1183578198,-61436934,2146981433,956660751,142079558,-1946532213,132906070,-1961677663,-1995231722,1451878982,-126418964,-624897,1996483702,740199402,-1875378417,181725198,-1980873079,-92016554,-385649409,-12779370,-385649409,1048772750,1946158938,268679192,18192976,113704960,1882,48760519,-169279488,43294976,43390603,1978422841,-364496575,2122529909,913572084,48774787,-1207602176,65736704,1343226296,16777114,-398556416,57999362,-956252183,190470,460103936,460199563,-1996319581,-385706474,1721827487,1746307859,-163149549,-1577560439,378208916,1183384214,-329872918,32786119,-12195584,-1947318645,17166422,13796096,-6664110,-1996488449,1451882054,-260636680,-1578207489,378215308,1177230222,-262792210,244338770,185531368]},{"sector":15,"data":[-385649216,1048837899,1962935016,-297366765,-1544530293,378077844,113705622,66280,-1018113,28896886,-6664192,1375731967,-1908998320,-1942552805,-26085,922681344,922688362,-1008198808,112663,-1560232797,922681884,1805258540,-1962934270,1438866917,-326898549,-392079800,-498693886,-3782969,1354771455,16777114,1975520000,158722307,305806979,-385649153,512428395,939465588,150170,1183401984,1975520218,268548102,-402431255,1996426204,190114010,58048523,-1962327319,-15689186,46373431,1183383552,731463930,-1980182078,-1705976762,650,1074929315,922684533,-1717956820,-385875966,512428307,939462810,303963787,1996437503,-25862,1996423168,-25892,-928841728,259342353,254555903,176794,506920704,-3675374,-1259799946,1975520011,741801743,-26097,922681344,-588574264,303963787,-6670337,1207959807,-941996407,115782,14843523,922687348,922682006,922682004,922686254,-6679764,-352321281,321691911,321787531,-1980742007,1755443798,1779862299,-465139429,-1981393271,1451873862,108954584,-2096728832,1962935422,460103945,460199563,1183523307,-229209104,2145801785,956660751,141812806,-1947187573,132903510,-1961677663,-1995231722,1451866182,460104122,460199563,-1984149879,2122563158,292814854,-1950857589,1183431254,-229209616,31606471,-26112,922681344,1369051706,-1996488700,1451868230,-1101645374,92216188,1992050233,243732]},{"sector":16,"data":[976682832,1354771218,-1032388784,-339708161,243740,976682832,-428409070,-1947961601,1451998278,-465163330,1390827035,-18352,1347590480,1347469355,79272528,1048772608,1946159984,124053763,-1947974005,1183442518,-363427352,-1411329,1996482678,-1200160838,254549643,244332543,-1995992600,1451872838,-359468,-639040652,-49919,-773258380,-263812351,972183179,192264790,1975010873,-495025402,-2096466688,481854,-1863777419,741801729,71277071,922681344,1218056648,-16777212,-1710088650,1809,305805055,470170,-1069119232,-2084415863,1962935934,-998341879,-385649408,1183514808,-1034515520,2092848697,956661531,343325766,1342177720,305805055,1347469355,-4032769,485212278,1342177720,305805055,-1673473,1183573110,-1101624388,467945003,1347610198,1358954424,726684313,1347440832,434074,1883144960,57933835,-955877911,302792198,112640,-26032,1996423168,-461963290,1342177720,343962,-2091888128,1946158718,-465138936,-337226101,-1136227578,1388205707,91069008,1183514624,35431174,2037694475,48760519,1822490624,1846971163,43295515,43390601,2122540011,1567948806,-2851197,2122522485,427163602,-1673473,28894326,1587171328,1375731717,-1099497648,-339970305,-998341857,-14781184,1996477558,112850,29071952,1347551232,462305023,462173951,117402,1781989120,1748434715,337700891,-1560280648,480444604,1514046210,309592071,123340487]},{"sector":17,"data":[62390272,144330768,-385875961,2122515943,57999556,-2096767255,1946158718,268613637,1048830955,1962935016,-59643645,-351272776,325493204,325588619,-1981266295,1183574614,-229209104,-1984412023,1187494486,-385875486,1183579650,-732525614,-2097151739,1347551442,93082,-398030592,-1419639,1996477558,462201298,462296715,466765355,1347605590,1978142352,1975520010,-37164797,425603,-924253324,-700019968,970479243,427152470,1976714809,462201108,462296715,1975408185,-1136248568,-1528233099,75399936,-1954647040,1452003910,-465139244,-1981393271,1451878470,-700020246,-1579657591,378215308,1183390606,-1101624900,12863175,112640,976682832,-428409070,-1947961601,1177271366,-430564380,-4698030,1385779455,1354771280,-6664112,-2097151745,749630,-1880554636,-398556412,57933826,-1946322199,1452003910,43295700,43390601,48760519,1692991489,-1001994243,1183514625,-665416746,-1981528439,1183573590,-1101624388,-1984412023,1156168278,-1001994243,1048772608,1962934768,-566328566,57999361,-1207920407,-1706016766,40,254555903,465562,506920704,119773714,922681344,-409333304,-16777215,-1710081482,65535,-1983887735,1446625878,2132507834,-1203357435,28841078,922701824,-1070919110,1996443728,-1065943102,28843243,922701824,1996427834,-461963290,-1950595445,1177271894,-430564380,-4698030,1385779455,1354771280,-1483059120,-2097151991,749630,1855588468,-385875965]}],[{"sector":1,"data":[113705971,1182782,-16520471,-15582666,1996477558,1354771410,1342177976,16777114,261928960,-934900400,374864,-26032,1719664640,1187495883,-2097151752,188478,1996430197,-763953196,-1961128799,723226134,1444663878,-397389100,1183385597,-968455176,1962427961,-129594579,276086795,1962934589,12183811,1962934845,14870787,303963787,512440319,939463112,1088046731,147823184,922681344,1996427834,-763953196,16777114,-968455424,1979205177,263632945,-934900400,702544,140679760,-1073020928,1048779893,1946157798,281851966,184727632,6731856,-26032,-1073020928,1183656308,-6663992,-1962934017,-15611874,-629735625,16777114,-565802752,-2082449783,190014,1347552628,-15269144,-15582666,1996477558,1354771410,1996443728,-562626592,-1713748341,1587171410,-2097151991,749630,2146002804,505318146,-1959264494,-15611874,-632911049,-2103816128,-1962934270,-1961746914,705137183,228217060,-1962934263,-1961768930,-385382369,1187512116,-1962934018,1178196550,-385647362,1586233124,506891262,-1976268014,1357130240,16777114,-27358464,298333835,8926347,-335657217,-129594414,-1580841335,378213164,1183388462,-162100748,305805055,-1713748341,332547587,1347605590,-1961128799,723226134,1444663878,-1202695468,726695935,1347440832,-26032,1183514624,-162100236,321652267,321787419,-1981004151,1048833622,1946159984,29157635,425603,28850293,922701824,1996427834]},{"sector":2,"data":[-763953196,-1713748341,-4698030,1385779455,1354771280,-895856560,-2097151997,749630,-2014772364,112641,80910928,1183514624,1177262554,-296346644,297289217,1183562326,1177262554,-296346644,462161409,462296593,-1713748341,468469291,1174531670,-229240336,462305023,462173951,724634,-398030592,-2081794423,1946158718,-1203336436,-1984276853,1451867206,108954558,-385649664,2122578374,57999364,-390423,1996483190,-1166606360,-1950845185,-15782882,-401698761,1183383886,-732526126,1962932867,11790595,1962934077,11266307,-1947187573,1446638166,957052346,108378182,14843523,1048774517,1946158938,-1001994387,1996423168,-461963290,1342177720,319898,-11513344,-14971338,-1709470666,1278,459945727,459814655,-1592853016,378215308,1183390606,-1101624900,123354755,-1207602176,65736707,1343226040,366490,1510393600,-956301305,190470,460103936,460199563,-1996319581,-385706474,1721891155,1746307859,-398030573,-1947576695,1452011590,-1203336718,-944089463,123462,-1946212119,1452003910,67028,1375785603,99719760,1183383552,-363427352,-2853121,-1935551882,-1911125221,-767153381,1389647387,-401698736,-1073019560,-286719115,-76420610,254555903,739994,-935919872,190028305,922681344,916066846,-1711276028,1931,425603,1048781684,1946158940,154837276,154932875,-1994692445,-1592038890,378210622,1822624064,1846970651,-443851237,311901,1167087646]},{"sector":3,"data":[518818645,-326903666,1187468816,-956301060,61510,15877831,105286400,-15507805,-15582666,1996426870,1354771212,1342178744,820890,237019392,-2079980647,-2045373680,-163149552,-940026231,189446,-262239488,324941451,1962948736,-465665219,91488258,-352321096,734014210,-1949791278,-628360122,465644441,-2079980589,-2045373680,462201616,462296713,737953419,60420678,319849478,-384793066,1183514974,100899324,370348164,1446711430,2132900874,138820357,1048779378,1946157796,-260666584,324935307,161920,1183521653,-1377068548,957227169,1149041734,185514472,-955419456,17259014,-18432,17885593,305805055,-493825,-1070860682,374864,224172624,547422208,100899086,370348164,1183387782,-128546314,16533191,-12982016,-237941,915143750,9047980,-2081143160,1127486,1048796277,1962935008,1916877864,2002402314,-196706298,-2145719520,1919022206,-193036282,-1978763654,-466947002,232036944,1183318016,-262239244,324941451,955532938,-16419584,216789062,234126976,2122319476,125116404,33179335,-954471680,64070,1183454443,1357130484,1357923981,1342177720,-1995412504,2122578502,108265722,-369998081,1183579815,-62510606,16547459,922695037,1183519290,100899324,370348164,1347555462,-1202667477,-1706033147,1965,-1727127391,277087747,277222931,-1980348791,1187510358,-956301060,61510,15877831,-27662080,49120094,1562371467,707149]},{"sector":4,"data":[-2081649835,1183515884,-1723842556,-120470997,39623248,748879872,74792975,1558954027,48250499,-1958972160,-1961135074,-28931833,254549643,1183385483,-1961300996,126549598,-1705974742,65535,-1996726645,-28901625,-1946401025,1065418334,-1948224256,130481246,-1961432320,-14978018,740199223,-1959264497,1346372678,532122,112640,-1034033781,-1957363710,82609132,460594827,1183385483,-1977488388,-466944442,1946165309,2964751,1060964980,1023767552,141885534,288622279,367722497,-237941,126549062,184436360,-942639680,1127430,1575324416,-326412861,1443556483,303963787,1183385483,-28915716,113704960,742,-1946263925,9108598,184174216,-385649216,-467009197,1962936893,12249347,1946181181,-28901627,1988877035,-60912642,704725130,2964964,-1947663499,6569216,-1981217931,7224576,1883076724,-385649408,1933377666,1029665792,1618215028,108381242,1593329350,1988824299,-60912642,-2013183862,2122381382,410258168,67008139,1150155894,-1957277695,1177224262,-1706014466,3977,184057472,113709685,66278,-106869,1988886086,218154748,-1946263925,1183513718,-385840904,1187446639,-1226071816,167265990,1187426539,-1427436552,536364742,1187423467,-1628762888,184043206,2122553579,208929022,-1946257781,2021719134,1953762815,1074022027,-1037330112,-1705969455,3490,1089881737,-1070922635,512452331,939463198,-631157,-25755849,1029274,-161576192]},{"sector":5,"data":[1988829067,218154750,-1946270069,51519006,1586188295,50826230,1346436678,721700491,-1705968058,3589,303970047,1224602,-163149056,-1961746781,-1995994152,1191181382,-28901628,48629447,-1125580799,112894,1575324510,1426064066,-326898549,922703362,1996427834,142016266,-1202667477,-1706033147,4184,262938251,-467007606,-26032,-1073020928,-1070922635,1187473899,-1962933762,60423750,319849478,-1961851370,1586169934,72221450,990273043,2135260378,1992833796,237019455,2097038905,-18406,1347590480,-1202667477,-1706033147,3009,16664263,-1950553344,1191181918,-1405711362,704678415,-6663964,184549631,-1197181760,65732609,1577059000,-1034033781,1478361096,-1957345904,-661774612,305805055,-15960321,765069942,-167772152,269160966,-1070922636,1048779755,1946157794,209125137,-16091393,1996425334,185657350,28836843,49120000,1562371467,576077,-2081649835,1586168556,-1995994364,130547270,113704960,1716,-1694599425,65535,-1034033781,1478361090,-1957345904,-661774612,17493121,16533191,242679552,1342177720,16777114,-125400832,205949950,1962935869,9824515,1962938429,30402819,1946226749,17906955,-1595341963,10021120,-1207011585,-11534331,-1711087050,4444,-1207011585,-11534330,-1711087562,4663,460594827,-2037565441,-1705967878,65535,201082505,-15829568,738130102,-6664000,-352321281,242679582,1342179256,-17135987]},{"sector":6,"data":[-1986375658,-16777198,129502838,-6664192,-956301057,190470,460103936,460199563,-1996319581,-1207790058,1575550977,176063233,-1962511360,-1264382394,37651206,141819906,-1710590209,65535,1038729259,172395265,1023410477,-260636666,781434883,319399935,556673,-943688445,190470,460103936,460199563,-1996319581,-16607722,-1224800650,-6619400,-352321281,242679710,-16091393,1996426870,314743306,-1073020928,28837237,721611520,-6664000,-385875713,-1224736903,-6619400,184549631,-385649216,1996488553,505870,-91845296,28856574,-991408127,1958742797,242679592,1342179256,1345323448,1024324072,57933825,-49943,129502838,-2037559296,1343684346,16777114,-91845376,-6663938,-1996488449,1090451078,384369525,1620223,-401698736,922684941,1100618612,-1962934261,-1543571834,1996430196,440334,-26032,-526188544,242679554,1342178744,1469338,48407296,111949567,-1705983957,4848,-1238552,-1207522250,-1706033151,5769,-1873756117,230418446,-1191266071,-397408596,-1360396850,-15581442,-669919214,420616465,-384700398,-310116707,535137026,181030237,-1873273344,-326412987,-2116514274,-956232468,63558,-1207011585,-1706033151,5085,-17529207,1024214667,57999366,1023485929,57999376,1023683305,192151824,1963004221,22604035,-972992279,16709254,-1207011585,-11534331,-1711087050,5004,-1207011585,-11534330,-1711087562,4428]},{"sector":7,"data":[460594827,-2037565441,-1705967882,5152,-506231,129502838,-2037559296,1343684342,1324442,-125926656,-15827456,129502838,-1617276928,-352321519,-189333685,1354771454,1304218,242679552,1342179768,1307290,-1070903296,335256144,1996423168,243726,336042576,726663168,278548672,-16777196,79171190,110776320,1342177301,-1705983957,5391,278535819,-2037565441,-1705967882,4460,-506231,146280054,-2037559296,1343684342,1430426,1141294848,-956301303,190470,242679552,-1961136991,958098966,1964730902,1745238283,-1207601893,48955393,-397361109,1822491465,1846971163,43295515,43390601,-385875528,2122515242,745799690,-1559345525,-1588590924,378215276,372841326,108338026,459802169,1048774516,1946157800,112645,-1070923029,50587728,33701507,-16223232,-728102282,721420305,48556480,755648139,138215425,66090752,-13724736,-2129162329,50333822,113762677,744,-1961136991,-1558483434,378077844,1996423830,-189333754,303274750,-1073020928,1996440181,636942,354130512,726663168,614092992,-16777195,62393974,815419392,1342177301,-1705983957,5433,-1207011585,-1706033148,5448,1354771280,1397402,-13309696,-1207011585,-1706033143,5470,112720,359176784,1996423168,243726,359963216,-1202716672,-1706033151,4479,-1207011585,-1706033148,4373,112720,-1224754709,1134231284,184549394,-385649216,1048837862]},{"sector":8,"data":[2097152842,-19076861,-1207011585,-1924136953,1358886534,1342243256,185236200,-14125888,129502838,28856320,-1477947344,81162,-1343683724,242679806,1342179256,-17398131,630870038,-1929379818,1358886534,1453978,-62486272,-385649344,1996488330,571406,-158954160,28856574,686313473,1958742794,242679592,1342179512,1345323448,1024087528,57933825,-107031,146280054,-2037559296,1343684342,1151898,-158954240,-1818603266,-1996488686,1967192646,-29824765,1342183608,1927810704,1949761290,374970907,1183514624,460628988,278542079,1031578,-96040192,-15689053,112725622,2056933376,-1560281066,1996423904,374798,304519760,-492634112,-1372127486,1354771206,16777114,172395264,1946157373,212241,71117940,1027437568,578027529,1474823147,-1372127255,112646,316709456,1996423168,-398556402,2037645314,-385875528,-1070923637,176063312,-1207601911,48955393,-397361109,-840176875,16777114,1144947456,1047855113,123471559,1755381761,1779862299,154837787,154932873,-1961136991,-1558483434,378079550,1721829696,1746307859,459842323,459937417,-1961677663,-1559024106,378084204,28842862,-1070903296,-356521904,123471559,1894318080,460104191,460199563,459937337,104401269,58006376,738161129,1525174464,1354771200,1525157520,-48961271,-15829249,1996425846,175570702,1233306,1975520000,112645,-1070923029,326933072,-269942784,112113916,-112662448,2130503145]},{"sector":9,"data":[-1911061227,1612025365,-753442793,-1911244012,-53417707,-1962742397,1297948645,1426066122,-326898549,155492632,1963214393,-398029511,75400016,-1207602176,65732621,1342180536,16777114,108461824,1342178488,384321165,330406480,2122514432,91553796,-352321096,-1547687166,-443872956,311901,1167087646,518818645,922736782,1234831020,184549401,-13797952,-1207530442,1385758732,-1976107184,607584006,574029587,426285587,-1398603776,1975520006,1073920032,427334224,367722496,111949567,1342179000,1342177720,1347469355,1625242,49120000,1562371467,1478413133,-1957345904,-661774612,1460071555,875989846,-26096,-125108224,111951491,-2096663296,437822,915098740,-167049556,-147123084,-1202246540,-1705967624,6324,111937083,915086452,-167049554,-147117964,-1202253708,-1705967624,65535,112068155,-1202318219,-1202716399,726663169,-1706012480,6443,414717163,244338688,-402137880,-1070864606,-401698736,922683345,93982772,184549401,-15895104,-1206897610,-1706033151,6422,109721343,1409946,1975520000,-1976107251,112646,332503632,922681344,112723594,28856320,-1070903296,-1885712304,1577058329,49120095,1562371467,1478413133,-1957345904,-661774612,112080639,16777114,1975520000,-1942552787,899078,-11513191,-16348618,-15525322,-1710024650,65535,184987299,-1205832256,-1706016766,2749,922686955,112723630,28856320,-1070903296,-6664112]},{"sector":10,"data":[-2097151745,-443874579,-884122337,-2081649835,1448545516,55195391,-1705983957,65535,113524355,721712128,-1207702592,512425985,1334444878,736963075,-162625080,58706187,-1962851863,126563935,78762379,-1039932717,-1996484563,512489542,1183515470,106334980,2132170553,956660799,947328071,-1946657141,60359751,1460864583,-96040696,1006392969,544998998,1178273151,-1961266684,1452014150,106314236,1178161269,-1957989116,1207367774,1114900482,55451275,-1962654069,1200162390,374835476,-6664110,-1962934017,-956084706,2119,55451275,722225035,-120517049,178256,-26032,922681344,77202250,-385875941,512426142,1200292686,-1037330164,1183447249,-1705815810,65535,-1309391223,-1948200188,-1962717666,117651039,-1946663287,71797720,105317273,990402323,310314582,1178273148,-2096400636,2080502910,-196703431,1586182123,-28931080,2114864953,112645,-1070923029,-1946657141,1988822094,972589830,209651831,1329137020,-1207601402,48955393,-947535829,28843636,-6664192,-16776961,-1711060426,65535,55195391,-1705983957,6572,-443850914,311901,-2081649835,1448548588,112475779,-1593478144,65734324,-1996059999,1183709766,726669032,12079296,129519617,-1070903295,-26032,-1073020928,2123070068,-122136600,-1734717185,989855768,91552326,1979350585,-398029469,-1202237418,-1202716416,-1706032889,7071,15367809,-1959693055,-24908682,-2096794597,611648510]},{"sector":11,"data":[384321165,12080976,129519617,-6664191,-2130706177,16902782,1983506037,-1193183764,451608577,82476673,-2129563135,17295998,1183648375,-1706027288,65535,1600045099,-1017256565,-2081649835,-1957294356,1175128134,-385649398,922681492,1183519290,173443848,-2097151699,1347551450,-1202667477,-1706033147,7236,16664263,-1407284480,705137167,1603948772,-1996488676,547486790,100899086,370348164,1446711430,2082766602,138820357,922688887,1996427834,142016266,-1202667477,-1706033147,7396,16664263,-16520448,1586232902,-1405711362,704678415,177885412,-1996488675,1178335814,-2096138756,1946221694,1958742793,-373282043,1183514897,173443848,319047171,19727958,14320384,-1980610935,-1039403946,-269941899,237019392,-2079980647,-2045373680,-195675376,92215932,1995589179,277127443,277223051,2146719289,956660786,729018950,305805055,-1962391925,1174604374,106304260,-2097151699,1347551450,-1202667477,-1706033147,7501,16664263,-1961956608,1174602822,-2079970552,1183402000,-27358210,262944395,-467009398,493853264,1183383552,237019638,-2079980647,-2045373680,139365136,51011211,1578304590,2094676742,990150443,-14323000,-1961739722,1451952198,71697162,1376146963,1354771280,1342178744,1048730,-28915968,65732608,-2080487681,925758,1586177652,-1405711362,704678415,-6663964,-1996488449,1178335302,-2096269834,1946220158,1958742791,-17962749,1577058744,-1034033781]},{"sector":12,"data":[-1957363704,149717996,106859350,1183385483,-1948742658,-1978442186,-1981535744,1187510342,-956301060,64070,48250499,-2096073472,2084636798,142508810,-2096857254,-2095052730,1962935422,-25263333,-1961525760,512491126,2021659486,141909759,1593329351,-28377344,1039681163,829685792,1946168637,4144456,1581078132,963605504,712247366,218660483,1994982261,142508801,-385649377,113705325,740,1709817899,142508801,-2130217952,10487934,2122573941,57999364,-1207877143,1055457281,142508801,-2081721299,1948190846,142508517,-588578643,218660483,719913845,142508801,-385649377,2122514721,-965476100,1057521283,2122563307,108265724,1577614979,1988866795,1579060222,21006867,1183441962,75400184,-16550912,1187511878,-1962933764,1849555014,-385649408,58589342,1023455721,57999405,1023449577,57999460,-385836567,1187512110,-385873160,1187512102,-385873416,1183579934,605448,222105468,1029275136,1416888352,1946198077,-465665201,57999362,-2080429079,1946158206,-28901609,-1946263925,-2146214346,292880440,-1962516853,2045509190,-2080485633,2080439934,106859503,-1979824501,-469317881,-1962934270,915144286,9048926,1183441962,-21435912,48498375,1273692161,-1594341689,-22484736,200820423,-23009024,536364743,-23533312,217597639,-24057600,1962963005,-10819325,1946186557,7618003,1441334133,7814655,1441334133,-26154497,67108792,1586232902,-1207465722,-1956773887]},{"sector":13,"data":[113401317,-326413056,-955716477,64070,1177247979,1183400190,1174510072,106303748,-1191557631,-1202712158,-11531518,1343443510,1343278264,16777114,1958742784,-1572961524,91488273,-335570248,6731779,71732048,-1559865717,378077832,1347551882,16777114,184727552,281851984,3389520,129931856,1183514624,-937522182,-1996029167,-1202651578,-1706033142,65535,201082505,-1954318912,79846885,-326413056,1443032195,-16091393,1183516790,-11526650,-6683530,-1996488449,1988886086,106859268,16662726,1208239755,-28951736,28837245,721611520,-443851072,574045,-2081649835,1183661292,1996443844,556571140,1996423168,108461832,1261722,-6664192,-16776961,1996425334,67221510,1354771280,-1174339656,1347583999,16777114,142016256,1355040397,1342194104,16777114,1575324416,503318210,1430622296,-1910575989,1257014232,-894023993,108954385,-16091904,-1207530954,-350350902,-1976107169,-1236890874,1119375390,-6664192,-16776961,396015222,50331648,-1991723450,149666374,-2135269749,192159807,-4569461,1178319438,-1214538,1183692406,1183535292,-1236915270,-1203336896,251697744,-1202716672,-1706033128,6097,109721343,381437581,-26032,-310181888,535137026,46812509,196672,16716700,196744,16713951,16973961,203640,16973932,203594,196717,16717277,16973966,202833,16973935,203720,16973938,71242,196615,16715935]},{"sector":14,"data":[196639,16714369,196642,16713599,196644,16716739,16973989,203611,196741,16714584,196646,16712197,196648,16714170,196649,16713853,196650,16720162,196652,16713798,196653,16717882,16973870,204931,196630,16719870,196664,16715790,196923,16718608,196667,16711770,196798,16718447,16973886,203004,196642,16718438,16974018,202987,16973859,205031,16973860,205114,196645,16712567,196680,16713903,16973900,202763,16973871,200944,196661,16720111,196699,16714233,16974172,202866,196668,16714978,196957,16717046,196958,16715891,196959,16717490,196960,16717533,196961,16714384,196706,16718867,196962,16718472,196963,16719813,196964,16718848,16973926,201911,196679,16720045,196711,16719986,196712,16719892,196719,16718587,196725,16718407,16973943,202794,16973913,204925,16973915,202722,16973916,204859,196701,16719853,16974079,202622,196705,16715628,16973954,202605,196706,16713839,16974085,204957,101,0,1167087646,518818645,-326903666,321691916,321787531,2081052217,956661521,175245382,-1961677663,-384618986,1721827539,1746307859,173422867,92017791,1929922105,325493005]},{"sector":15,"data":[325588619,-1995946359,1183517270,408838,-1073543049,-1476448621,1183514863,173443848,-16737559,-15582666,1996425846,22649352,748748800,773229331,1679178003,2131262478,1644575135,-1583778034,378211938,1844121188,-16091393,244320374,83914216,-763166719,-1923421440,-11471802,1996425846,42441224,1183514624,-754667020,1042189280,-1996029168,-661915066,-1727772789,319178499,1347553367,321795839,321664767,16777114,-14750976,1996425846,108461832,16777114,1510927104,-553611264,1661001472,536912640,49120000,1562371467,445005,1167087646,518818645,748804238,773229331,139868435,92213372,1913013817,321691913,321787531,1721858283,1746307859,139868435,92017791,1929791033,325493005,325588619,-1996077431,922683478,1996427834,108461832,132762,302446080,259264523,-1961991519,755917846,-628948991,-13374720,-15582666,1996425334,1354771206,1342178744,157594,-1407284480,222265359,1183518325,139889414,-2097151739,116064466,-1962522997,-310179754,535137026,80366941,-1873273344,-326412987,-2116514274,-1593802516,378213222,1446581096,2081521418,138819845,1721830007,1746307859,13625619,-1961677663,957558294,326896214,1178142079,-1962118648,-1073019322,20776316,-14713344,-15582666,1996425846,-26104,1183514624,408838,-1073540489,-1476448621,748749469,773229331,8907027,-1962391925,2146110038,-1961129823,-350516714,302446198,-260763637,-16091393]},{"sector":16,"data":[28838006,1347590400,16777114,77056,-1996432765,1451852358,976682884,726684178,95965376,-6664192,-1962934017,-2146456546,-1334506177,-1954396533,803963990,1350583949,-16091393,-6682506,-352321281,175570718,-16222465,-6683018,-352321281,889332750,-1929212670,2080517122,-2097032702,-443874579,-900899553,1478361094,-1957345904,-661774612,-1592988541,378215272,1183390570,-94991880,-1961136991,-1994691050,1451881542,105286646,956847755,326896726,1178142079,-1962117622,1451951686,172394760,-955492727,137734,1178501888,57933827,-1962816279,1452013638,206977530,-1578564738,956857344,57805382,-1962895383,1452013638,139868666,58527103,956342249,58132038,-16738327,1996426358,-92864758,-1191676161,-1706033151,917,-1946925429,1446639190,2081914632,105265413,1996427379,108461832,-624897,-1070861194,1183523307,-162100236,2080921145,956661532,360056390,-624897,1996485750,108461832,1342177720,16777114,-196703488,972445323,57997910,956379369,57997382,-16701207,1996487286,-380611848,1183514901,206998282,2130073145,11725059,1178142844,-385648908,1183514792,-162100236,1979340345,-129615606,28837237,721611520,-62486080,-1559020895,1183515162,-94991368,1963742777,172374325,1183527029,-162100236,1963480633,105265445,2122522741,443810044,246955651,-1592560640,35986288,974031616,1004654867,-385649215,983629989,75027,244048081,-511698064]},{"sector":17,"data":[-1547629571,2122521456,91488508,16777114,209125120,-16091393,1996425334,112646,79665744,2122514432,1802830076,-362753,1996486774,-193527818,1183536619,139889414,2146850361,956660760,292811846,-624897,1996485750,108461832,-352321096,105286432,956847755,461174358,1178142079,-15436044,1996425334,-159973626,737441535,-744861504,-16777212,1996487286,209125368,722106111,1285181632,-1962934269,1451952710,459842316,459937417,-1962522997,1822623830,1846970651,321691931,321787531,1963742777,172374277,28837236,721611520,75200,460328587,201253248,460366785,-1962522997,1446578262,958625036,510986822,-15960321,244320886,-956277272,190470,105286400,-1559734645,378077844,-1070923114,-1559020893,1721963364,205300494,305805055,459945727,459814655,375706,302446080,427036683,-1961991519,957244438,1964731926,1812347148,-955878117,18048006,49120000,1562371467,576077,1167087646,518818645,1721882766,1746307859,773208339,956921107,1964190726,12577027,305805055,-16222465,-426113418,-1593835515,378213164,372839214,628431754,461899321,922689397,-2002709958,-1978234085,77083,1375787651,7248464,116785152,1963985682,302446206,2004160523,305805055,462042879,461911807,-1962522997,19728470,14320384,1234849874,1375731714,1354771280,1342177976,99738,261928960,166639696,374864,108829264,116850688,1073745822,116861556]}],[{"sector":1,"data":[-16773216,645931636,-1610610189,-467006992,112720,-26032,-467009536,166727307,184607104,166765505,166798976,-1206129729,-1202713176,-1202714130,-1706033147,65535,604631201,-1558967296,-310179344,535137026,80366941,-1873273344,-326412987,-2082959842,1822498540,1846971163,1779841307,957052187,1964730374,112645,-1070923029,-1578482039,378215272,1183390570,-229209616,-1961136991,-1994691050,1451879494,460366318,-1996488411,2122577990,91554054,411335,325492992,325588619,-2097151699,1446576346,956658954,326371398,-1961677663,957558294,259787350,1178142079,-1710721528,65535,-1207762967,-1986396161,1451876934,-431584796,-1981262199,1451881542,-96040458,-1946397047,1452011590,173423090,-806812802,956857344,58067014,-1962883607,1452010566,173423086,1178142837,-385649400,2122515128,1349779704,15367811,1996442229,-327745554,-887041,1996484726,-401698810,1347614842,55706,460104448,460199561,-1980086647,1996487766,142016266,-1878624513,-100014066,-1981397367,1183574102,-296317972,-1980479863,1005319766,15367811,1755386740,1779862299,-96040677,-1979951479,1451881542,175570934,-1207404801,-1873805311,-103946226,-1981397367,1446635606,956855794,58060870,-2147342359,-31756250,-1947187573,1183445590,-464090654,-1947842933,1755572310,1779861787,26274075,-1947449717,1446637142,-385647350,142541064,1929922105,16705795,-1947187573,1446638166,956855562,58001478]},{"sector":2,"data":[-2097030167,1962997886,-360807578,-10455808,1996485238,108954608,-1962380032,1452010566,-1962087442,1452010566,77294,1375787651,108461904,954732176,-1706011911,1555,-1994692445,-1994692074,1451881542,175570934,-16222465,244319862,-1980275224,1451876934,-263812124,-1980606837,1451883078,-2093814788,1946217086,459841811,459937419,-1980086647,1183448150,-162100748,-1962391925,1183386198,-464090654,1978553913,-330942200,1038680949,1879998465,1183514907,-296317972,-1981397367,1183574102,-464090142,-1994691421,-1961136618,1452010566,-464111122,-1679228044,-498714368,-1813445772,-162121472,1178142837,-385649164,1187446918,-939524126,-7098,2122545899,997458168,-1962391925,1183386198,-61437446,-1961136991,958098966,141950038,1979336249,13297923,-1946532213,1822686294,1846970651,-330921189,-1980868981,1451881542,-1959138314,1451952198,-196703990,-1577691511,378215272,1446583146,956855798,58061894,-1962897431,1452012614,459842550,459937417,-1947187573,1183445590,-61437446,-1542401,1996482166,-495517724,1342177720,642458,-59310336,-362753,1996486262,1354771444,287386,460103936,460199563,459937337,104400501,91495272,282010,976682752,1781989138,1748434715,186423835,116785152,1947208466,241344792,241440395,460199481,104401781,91560812,-352321096,-1547687166,-310176924,535137026,113921373,-1873273344,-326412987,-2082959842,1448549612,722508961,-1995435514]},{"sector":3,"data":[1187505222,-16776970,721635894,-6664000,-1962934017,2116749950,2113866724,-339727612,-1983411454,211814982,-1947981296,2117685240,-1962641908,-1962677305,1183386694,1042189068,-1321759984,65065732,105155568,-1995942773,1451882566,321692154,321787531,2096780857,956661527,275970118,-1961677663,-1995231722,1451882566,27257338,67257590,1149970804,-754667262,266633448,1997162043,142508818,-385649659,2122514817,57933834,-956204823,128582,-2097057559,2080639102,23587075,305805055,-362753,1149958262,1357130241,321795839,321664767,1342179512,16777114,976682752,-92864750,-1694992641,1377,272506507,1183528843,-754667252,-2131754016,221758,1386285684,1410763523,-9443069,-1325251445,-2132225276,1183387620,57188860,1962690105,30796035,972834443,142543430,15222471,15722752,956974219,528222790,721639585,-1991706554,1487005766,1511426819,77059,-1996432765,1451882566,-1955337222,1183448134,-398014490,1486946304,-129619197,-336443767,172395287,2112243257,-396457193,-773306625,-2105046045,-431619837,972179083,-511907770,32013955,1325335420,-398029848,-129629799,-371183,-15582666,1996487286,167156472,1586167808,-1948003864,-1727823225,-120470997,990529027,1535043142,17333891,1183536501,-94991368,-2097151739,372965586,947195492,241305147,116798069,1963985682,-1807842517,242548752,254951043,-2095221249,-15781826,1048778357,1979649842,809403162]},{"sector":4,"data":[326500111,278136519,199950337,-2081929473,-2097022906,-16713130,1996487286,142016504,1290276496,-297367051,-1026423,1996487286,142016504,-2014835056,-364475917,-2081663351,1963001982,38073968,-2096729084,1946220158,-297366772,-1980737909,1451878982,842957804,1366687503,254819971,-1958054401,60359748,1410532932,-95012088,1178282357,-1591446024,378213164,1446581038,2081980410,-129615611,1156977015,192218114,33703158,28837237,721611520,322610112,-1947318645,816050262,840337679,108954383,-165579776,18575366,1183516788,-329872406,1183516395,-262763538,1996443730,-401698808,300677499,-1018113,1996484214,-361299988,-1981280624,-2090901771,-443874579,-900899553,1478361096,-1957345904,-661774612,460326646,-1591118847,378215276,19733358,14320384,28856402,244338688,1391742696,1781989200,1748434715,142383643,132841472,-1961138015,-2095355370,-443874579,-884122337,196622,16711854,196756,16714722,196639,16715118,196641,16713266,196664,16714319,196667,16713609,196798,16714213,196674,16713496,196681,16712343,196965,16714509,196709,16713249,196710,16711913,196966,16713302,196967,16714169,254,0,0,1167087646,518818645,-326903666,922703372,1996427834,142016266,119706,302446080,175378443,-1961991519,-384932842,922681678,1996427834,142016266,-1202667477,-1706033147]},{"sector":5,"data":[192,1586092843,-1405711364,704678415,-129594908,-401698736,1183384599,-125926410,-1592756979,378212484,33886342,13796096,-2097083927,1946876030,-125926638,-2096335860,1946941566,-125926650,-1593019127,378212484,17109126,-2083067136,1962997374,108954432,-12946173,-15582666,1996425846,178184,-26032,1347551232,-1202667477,-1706033147,247,1586092843,-1405711364,704678415,-129594908,-401698736,1183384471,-62455818,957227169,729611334,1358954424,726684313,28856512,-6664192,-1593835265,378213164,372839214,108335238,277087801,1187475060,-2097151748,1963132542,-129594596,1946165565,3030282,1060963700,-955616000,132678,49694407,-60912896,262944395,-467009398,1039681161,92012553,2113932605,108954403,-7703294,244381814,-1996286232,1178203206,-385649162,1183448951,1975520246,-9574141,-1711520117,277087747,277222931,49120094,1562371467,445005,1167087646,518818645,-326903666,748770938,773229331,173422867,92214908,1913144889,321691919,321787531,-1995946359,250284630,-1962391925,1182992982,1451426056,1183383562,-2007594618,305805055,1855606866,-1593835517,378215304,1446583178,956659080,125077062,185730806,-1593150448,378215304,1827216266,108954370,-1207601918,65732618,-1996462920,999921222,461310550,1178273148,-1961594104,-1952868794,-1948611640,1451952198,465644298,721677267,1183422912,-1806268014,1358710413,1352156813,305805055]},{"sector":6,"data":[-1837695150,-16091393,1996425334,55351958,1325334528,-59339780,714621578,-1941534236,-401698736,1183384075,-62485622,-1840905319,194270739,721843650,-387343936,-1937865983,-1961134838,2055273590,309661079,60409483,1444123206,77204,-385820029,2122514887,410258060,227311235,2122519156,208931980,193756803,2122516084,225773964,-1711520117,328353283,-1662413738,-1971420415,-1961724671,60423238,1444123206,-1907979884,-342862199,-1907964150,1187512319,-2080374896,1962998910,325493087,325588619,1972655673,-1840891640,1625883509,-1773761791,-1806287975,92019583,1938966075,-1773761772,-1949791335,-1840870438,731141771,-338486335,-1715459325,-1986902391,1183683670,1183666428,922701976,-11398598,1996460662,142016266,-1701415169,65535,-1946398977,1116404854,-1981535592,922717254,-963964358,-1840905319,1385453075,-26032,2122514432,427035276,210534019,2122519412,225708940,160202371,116787060,1947208466,-62485741,-1840905319,93607443,-763166719,12708096,33980035,2122524277,309592202,-1869842689,12183566,1971996219,-13899517,1996476395,-401698676,1183383719,-14947958,1032603275,594804769,1946168893,4144414,1996429684,-401698676,-1073020793,20796276,1025274880,796131330,-2080444183,1979682942,-1904311546,-1948551937,1451986502,-1957237872,60423238,1444123206,-1907979884,-946841975,100934,-1946237719,-1072985530,20777844,-385649408,-1293287783,-1975072770,-1427570686]},{"sector":7,"data":[-1971420162,-1961462526,60423238,1444123206,66964,-1996434813,1451855430,-1975072880,-2031550464,-310157570,535137026,113921373,-1873273344,-326412987,-1948742114,524092998,2134340608,605459,222107772,722697984,-1205146688,636157954,1946165309,10501618,1996483956,-26106,-1073020928,1996426357,-26106,-1073020928,28891508,49120000,1562371467,100846157,1308623616,385941250,419431169,520158976,-1308622080,570490624,-1308622080,-1174339836,-1509948672,-603914492,1073742592,1711341312,0,0,1167087646,518818645,-326903666,-2091493512,67757118,1048774516,1963264484,976682836,1781989138,1748434715,-26085,45613056,1183666187,196104342,-1735047544,-26032,1187381248,922684052,922688350,922688348,922688354,-1181082784,-1929379840,-1202678714,-1706033151,251,205391559,-1796669408,976682752,1354771218,459841872,459937419,-2097151699,1347551450,16777114,726684160,45633728,-6664192,-1929379585,-1665234818,-1190717937,-1510866939,459159295,459028223,459421439,459290367,152730,166641408,512259725,375047,1621206514,1645644571,1578514715,956724507,1947950086,166639665,-1790538416,702544,-26032,1187381248,1183652500,28856468,-6664192,-956301057,520896006,243712,39688784,1599995904,-1962742397,1297948645,-1873273141,-326412987,-2082959842,1187451116,-1593835272,378215264,372841314,158669662,459015737,552141685]},{"sector":8,"data":[112641,42965584,-1073020928,132711285,459841793,459937419,-1980742007,1621226070,1645644571,1544456987,1579059995,-95516389,737959561,-1982653503,1451881542,34380534,922681344,922688386,1996427834,-92864516,-624897,1335555190,-2097151997,749630,-1125579916,-263811840,-159973552,-1191938305,-11534335,-1877853642,50784270,628473867,1342177720,305805055,-887041,1996484726,-193527818,1358954424,726684313,1347440832,16777114,976682752,-227082478,737179391,-11513664,1343980086,-159973552,-1695254785,951,191905411,-1710787584,65535,1721847787,1746307859,-229230317,92224124,1928349241,-263812301,66213515,1444148294,773209078,2082570003,738605830,-15108333,1996485238,-263812112,66213515,1444148294,-1706011914,65535,1342177976,189850,49120000,1562371467,1478413133,-1957345904,-661774612,-1592857469,378215264,372841314,108338014,459015737,28860276,-6664192,184549631,-1588431680,378215272,1183390570,-195655182,-1961140063,-1961139690,-1961141234,-1994695138,1586100814,465644540,-163149357,-502135,1393703478,-11513263,-1928185290,-1202654650,-1873805311,1501198,158646283,1342177976,16777114,49120000,1562371467,1478413133,-1957345904,-661774612,-1962087293,1183516766,307661584,2080528185,956596014,-1960283641,1451954246,205914898,-1961994733,1463486558,2132048898,1980185348,537966606,-26032,-1070923776,-16679703,-14974410]},{"sector":9,"data":[1996428406,276234002,-15829249,-6681482,-2097151745,749630,1996479605,242679560,722237183,1996443840,-401698806,-1073020588,1586175092,273058568,957503115,243204695,121177212,1182992503,1451426320,748748818,773229331,-96040685,-239991,1586170486,41418504,-1070909441,922701904,1347427202,-15829249,-6681482,-1962934017,126552158,-1996335221,1451882054,340167672,1963607609,273058618,957503115,478148694,1178142076,-1592429578,378213164,1177228078,-61465606,286279169,334172758,-1961677663,722677270,1444674118,-163173892,-502247,1996428406,276234002,-15829249,-4715402,-1070903169,1347440720,16777114,1883144960,141819915,97946,-16848640,957495969,1182075462,-1961662815,957573142,981268566,1178142079,-1959562506,1452013126,205915128,990795283,2131963414,990280737,1997745158,-126419175,-1946781953,1452013126,205915128,1376671251,5741136,2122514432,678690822,1342178488,305805055,-15567105,1996427382,209125134,305805055,-493825,-1070860682,-1706012592,1423,-2097151560,-443874579,-900899553,1478361104,-1957345904,-661774612,-1962480509,126553694,-1996335221,1451883078,-2110324740,1354771227,85039696,116785152,1947208466,-58817701,2136308736,-92372218,-11700736,1183516278,-61436934,-2097151699,1347551450,10906,-96040192,100423307,-763166719,1679178496,992572686,1963876870,321691939,321787531,241440313,108795519,241305145]},{"sector":10,"data":[1586171507,17269518,153475,1659617323,-1961991519,957244438,91618390,1962559033,142509035,-1205046272,-11534335,1996424822,-92864516,-1962260853,33885270,13796096,-4698030,1385779455,1354771280,-509980592,-16777215,1996424822,-92864516,1342898872,16777114,241076992,-2097019005,-1207958953,-310181887,535137026,181030237,-1873273344,-326412987,-1579643362,104401994,1249184832,-1962128223,957107734,2131510294,956726297,1930183174,205955345,206050955,206308905,206444057,1285629163,1310100236,1142307084,2132245516,1107704070,-1592822260,378211398,100731976,370216002,-310178748,535137026,281759069,-436206848,520158980,-1996487936,553713408,-1342176512,604045060,822084352,637599492,1174405888,671153921,167772928,687931137,-369097984,738262784,838861568,771817219,1040188160,939589376,620757760,1275133700,-1761606912,1291910913,1677722368,-553582848,-2113928448,1644232452,768,1661009666,-1593834752,1677786885,-1761606912,1711341312,0,0,0,1167087646,518818645,-326903666,298098950,-939899255,64582,1586175979,41910778,242515967,17188854,2013202548,-26110,1191116800,-96041988,458793225,2096907833,49120217,1562371467,1478413133,-1957345904,-661774612,1444736131,-16351615,-385649281,244318534,-1191208472,1861681314,-1608611066,-1996029167,-661917114,-16615425,458793271,-523040847,-1706012007,65535,200558217]},{"sector":11,"data":[-385649216,1048772882,1946157534,12079117,-6664189,-1996488449,1996485702,1354771206,166213375,1358198527,16777114,-364476160,-1036805816,129614379,871944960,1086467010,-1947711863,1452010054,-754470424,96611298,1183383680,458793456,-939768183,60998,163073003,-294717696,298059267,-1947842935,105286616,-1962784887,1183573598,-1962440210,1325393502,-62485508,-1962653815,1736500830,1586232838,-1946973210,19203652,30179328,-1962522743,1204217438,1191182088,-398029842,2095990329,637101,-1947701513,-1003093008,65962769,-2131736949,-523141148,-511636341,-1056243711,1183515785,-297367064,163064299,-294717696,298059267,-1947974007,-61931560,-1979955573,1586168903,107446500,-463565826,-16234554,-1578219777,1178147672,1221557486,-1877246813,845838,49120094,1562371467,182861,1167087646,518818645,-326903666,-1202301168,787939337,100866904,1183388100,-96024588,233504768,-1946526069,-971275202,1191182081,268083706,2096776761,-230242325,915079168,2129334724,-16614271,-1955498881,1149976844,-503889918,729801856,-97060910,-162100977,1049352843,25828228,1183441962,-62470152,451608831,-1980217717,163118150,-126945536,512489611,1099567556,-1981535736,2122446918,1962999800,-58818081,242548991,-1946788213,-1977908162,25752134,163058411,-59836672,512489611,1183453636,138512626,-16136573,1983509062,-385648908,1600061306,-1962742397,1297948645,50332875,-16765440]},{"sector":12,"data":[50371328,-16735488,50343680,-16729856,50412032,-16742400,48640,0,1167087646,518818645,-327034738,1448542490,-1996365663,-257836986,-1236891391,-1928694017,-1202668474,-1706033086,826,16598726,1889779755,31499019,-1560158557,-257752612,702465,37657168,1048772608,1946161064,-1472790769,31365647,113704960,4008,44828359,1048838143,1946157742,-1372127473,-26110,113704960,686,461518591,1358954424,1347469355,-6664112,-1711275777,65535,-150989128,-1961739730,572427248,54496015,113738750,621168267,61931521,227270867,200794496,-1962571327,-1961942498,104920607,-385649407,2122514749,57933832,-1929300759,-1924088762,1358918790,-17922419,45390416,-2037579776,-1202651276,1385824255,505936,48470608,-2037841920,-12714260,-385649281,1183646003,1996443836,814124294,244338943,-1995505176,1048820294,1946159984,21227779,205978,-326726912,32285694,976682832,1354771218,-320336240,1958742787,1954975030,1183666431,-2019929924,-1996488703,201255558,1024818624,91619325,-350217032,1073788931,63347280,1441464320,305805055,-219672944,-2092242156,1946204798,814124347,1183666431,1637503164,184549379,-1926660928,-1705984954,877,-18315639,1954545469,10663959,-18305289,915134603,469963168,-18440567,-50043008,-18041089,235162,1488896,305802999,512487563,529207074,-49913728,253894283,1895767947,-26104]},{"sector":13,"data":[1183645696,-6664004,-1996488449,-1946193274,-1961942498,1488927,305802999,-2037647221,1099562866,-13767928,-1961739722,-1961942498,1488927,305802999,1082912907,-754274042,206312,-1136226992,142016336,-1878624513,4253710,16777114,636928,-26032,113704960,2147418604,-1548335477,850919920,1211037440,5113091,-26032,-1465712640,-1203336433,1577181347,49120095,1562371467,445005,1167087646,518818645,-327034738,1448542426,-9271609,2122514432,74778380,65781803,-1995684213,-2080409978,1963396222,-1169766906,-15602944,1183648374,-2037559110,-1705967826,65535,1354385037,556675,512431732,529207074,-150989128,-259322258,-1962786677,82510928,-1711276104,129519698,-6664192,-1996488449,1040151686,108363775,-377487432,-2037710298,-324796556,196124929,1947092537,175570723,-1928956161,1358919814,65539728,1921419533,1883145215,57933835,-1711146519,65535,118259331,1183649909,1996443834,4372490,-26032,-1224802304,1996488564,142016270,-588771696,1975520001,1925088076,963903743,-8878451,175570768,240538,2092960512,175570728,16777114,747014400,2147433983,-1564993676,749664000,-1948742657,51486774,715032860,73892095,1958150141,-25857,1407778816,209617919,-1926597625,-11486650,-6681994,-1996488449,201271430,1024884160,91619325,-350217032,1073788931,-26032,602472448,196125183,1963869753,-1608611051,-1205892335,-1359544158]},{"sector":14,"data":[-259260556,33835136,1996425451,-401698802,512430709,381161250,242153216,-661975157,939514115,278938,242679552,-9128193,16777114,1488896,-1961988361,572427248,54496015,113738750,621299339,227213313,201253248,-1962571327,-1961942498,141623071,22170,175570688,124826,-62486272,253894283,-150989128,260771438,-654059381,-1979955573,2122516551,1534328840,-1710328065,65535,253894283,-150989128,260771438,-654059381,-1710065665,65535,-9128193,-9402739,-26032,512425984,-930410718,-150989128,-1957687698,646351111,-661956353,-14246397,-15577207,244321910,722621160,-6664000,-16776961,244977270,-956301307,-16605690,1883145215,410320907,28458627,-1592691456,1178143664,-16157682,-1862306634,139913230,556675,-1331618188,239483147,1996425332,-26098,1996423168,-26098,113704960,-64866,-9140597,-310157474,535137026,181030237,-1873273344,-326412987,-2116514274,1459790060,42387286,-1962934017,-358413754,-1070903295,-26032,1923284992,572427022,-1205892337,1861681174,-1947170040,1351287360,-96040700,-2080614775,1962935934,126085379,721975039,-1706012480,1671,-1961991519,957244438,1367342166,1178142076,-1588956166,1178143664,-1958579192,-1961942498,1488927,-1962381577,343442416,-13732864,1996425334,-92864516,16777114,-1643723008,-1946157310,-1961942498,1488927,-1962381577,37784560,-1996205941,1451883078,142016508]},{"sector":15,"data":[1347469355,-1202667477,-1706033147,1713,-1961851743,957384214,763165782,1178142079,-2094631174,121918,1048780661,1962934752,175570712,262944511,236992255,16777114,-18432,-346908336,-599882822,57933825,-2096736279,122942,1307116404,175570694,1342210232,-1705983957,65535,-150953288,-259323282,295706251,1149974275,172263704,-8878393,-2033778560,65402,16205510,-8616307,-15956343,-1980283251,-135546,-1070921610,-6664112,-16776961,-2037577610,-1924071678,1358820486,-1981280624,1975520015,99019011,721975039,1347440832,1342177976,490138,142016256,-16599297,1343200440,-34306419,-401698736,-1073017202,-1175911563,261928965,-158954160,95965438,1738166272,-1593835513,378212484,1446580358,-385647108,142540971,2012890681,10610947,31211139,-385649664,1048772759,1946157536,9300227,1343200440,-17398131,702544,-26032,-1073020928,1996440948,2022083850,-2037559041,-1924071954,1358892166,-17398131,229161040,702544,277127504,277223051,-2097119227,1347551442,16777114,261928960,-158954160,95965438,-6664192,-1207959297,-1722744833,-1070903214,178256,-26032,1996423168,45547272,261929215,-192508592,244338941,185452008,-385649472,-303431863,-599883004,57933825,-2096831511,122942,-639040652,175570692,-8878451,-293171888,-2037559043,-1924071668,1358886534,1343072440,1342180024,-1946532213,-2147091370,13796096,-1483059118]},{"sector":16,"data":[-16777208,-2037577098,-1202651272,-1706033024,2405,31211139,-385649664,1048773772,1946157536,75688195,-150953288,-259323282,295706251,1149974275,205818136,-8878393,-2033778560,65402,16205510,-8616307,-15956343,-1980283251,-135546,-1070921610,-258322352,-167772152,252383750,512437108,529207074,-150989128,-125106066,-1962124917,-390690505,205818877,185075201,721699979,1143671876,101056782,175570699,-8878451,-293171888,-2037559043,-1202651380,-11531518,-1206693322,-1588592538,378211938,-2147152284,13796096,1436176466,-1207959545,-1924134142,1358893702,1342190520,647834,241344768,241440395,2113689145,9234691,1178142847,-385649670,1048772738,1962934748,-532774021,1953824769,-16222465,-15834058,-1710333386,1404,185730806,-1960086513,-1961942498,1488927,-1962381577,207195128,-1232521333,1150025190,134611212,71600907,722224171,100732484,1996425990,2022083850,-2037559041,-1924071954,1358892166,1342898872,324155135,310807888,-6663937,184549631,-385649216,-1699152063,-12654081,-1928694017,1358919814,1342210232,652186,-599883008,57933825,-2096949271,122942,233374580,10663939,-1962250505,-1608610832,-1959329007,1149835332,10663950,-1962250505,-1608610832,-1959329007,1149835332,-1311626480,-26105,-2037841920,-1769341470,512490980,529207074,-150989128,-125106066,-1995685493,201263238,-969444160,1727888006,939513995,-42236275,3389520]},{"sector":17,"data":[115317328,1996423168,2055638282,1740132605,-1600499712,-16777206,-2135422346,-1070903296,179280464,1048772608,1946157532,41609475,31473283,-385649664,-1564999056,175044352,512487563,922948000,-1994898293,-1098706364,1946222344,178302,-43743607,-43874679,253894283,381165451,141489920,1099692171,72452866,-43612535,-43477367,-2097151739,-2037841710,-1769341584,1183579506,1787201802,-494498819,-459895811,1820756477,1855359485,1954990077,-947912707,-166266,2022098943,-3,-2037577098,-1202651806,-1706033128,2815,-1207273729,726663296,244994240,-2097151989,121918,-840367244,-532774143,57933825,-1207843863,1861681314,-1947170038,51486750,407145271,-15448951,244320374,-1995990808,201262214,-1960348480,-13136936,-1202320778,754384899,67494097,496652288,-16777210,-2135422346,-1070903296,189897296,1048772608,1946157532,24045827,31473283,-385649664,-1564999324,175044352,512487563,922948000,-1994898293,1996428868,45547274,-401698561,1996425509,8435722,1354771280,411802,-599883008,57933825,-2097075223,122942,568918900,175570689,-1924087765,-1202653114,-1706033151,65535,-34961783,-150953288,-661976466,295714443,-1635181309,1200357126,-358708468,306678269,-34955637,-16335221,-1995553397,-1635052473,-1098121750,1166802694,373786896,-34955637,-16335221,-1995291253,-1635051449,-1098121750,1166802694,440895764,-34955637,-16335221,-1995029109]}]],[[{"sector":1,"data":[-1635050425,-1098121750,1166802694,1615300888,-34955637,-16335221,-1946532213,-2147091370,13796096,1435043209,239569154,-1961863287,-1961942498,1488927,-1962381577,104986616,1718946816,1342660280,809114,1619429632,1131692285,-43999605,-1957283957,100526726,1448083486,16777114,681201664,-1962934272,100526726,-1706033122,3734,-44005751,295706251,-1564991605,175044352,-2037647221,1099562336,-1961628896,-1961779170,10663967,-1962250505,541116400,113704960,2147418602,-16599297,297114,-599883008,125108225,31473283,-955747328,16715910,-15930624,580520566,-1996488691,-1191243642,-1706033151,3375,-15679869,-15960832,244320886,721847784,-10032192,-6681994,184549631,-1957202496,-1961779170,10663967,-1962250505,73433328,-12325890,1996425846,-26104,113704960,2147418602,31211139,-2096663296,122942,-2033776524,65296,1996426475,-26102,-2037841920,28901136,-6664192,-2097151745,16715966,28873076,-2090902016,-443874579,-900899553,1478361094,-1957345904,-661774612,14347393,512448087,126553890,-940161399,64070,-1331615509,-96061173,1586174324,4162550,1207308660,192152070,958104225,57997894,-2097013015,-15272378,715258438,-96061169,381210748,-1339099392,572427019,-1996029169,-661916090,294787,58593148,-2130578711,33555071,-387382410,-161576191,294787,108998012,163715,922690934,-1070920784,1134186576,-16777208]},{"sector":2,"data":[-1207193546,-1924136953,-1202670522,726663169,244338880,-2081128984,749630,-1461124236,-1608611071,-1995994351,-661915578,-1994897525,-1070878138,-401698736,2122383772,1971322630,12708099,295706251,2088777611,57933859,-1962888471,-2037834172,529268588,-150953288,-125106578,-1960945269,-2012771809,-37242,-1348860298,184549390,-385649216,-2037776249,-466944146,-1202683892,1344143907,-1924087765,385839238,-26032,-1073020928,-2037553292,-1924071640,1358917766,-1705983957,65535,-14121331,71932496,-2037841920,1950416746,-1608611004,-1995994351,738141830,-644198208,184549390,-1962183488,-37730,-26057,-1635057664,-2037645530,1200226154,647924510,73892095,108461951,16777114,1354771200,16777114,-128021760,-1984805237,113645639,721420304,42640320,-1560115037,-1935474034,-128021758,1149891467,306678036,-1980211573,1586171975,239569400,-1980211573,1586170951,172460536,-1559085405,2075660706,306225920,722576547,1570394304,-1560281073,-1070919258,-1506345136,-62485231,112720,259299920,-661979136,1200209963,1342671106,16777114,306356992,-11485141,-1928183242,-1202652090,-1706033151,2936,-1070868341,-1996339319,306619143,-1206801757,-1202713176,-1202712650,-1706033147,4005,324155135,1343278264,1342180792,571802,-2090902016,-443874579,-900899553,1478361090,-1957345904,-661774612,1460202627,10664022,-1962512649,-1606513704,-1994587375,-1070859170,-1996339319,-60912889]},{"sector":3,"data":[-1994897527,915143238,401281476,956712587,158663236,-33135488,17196161,-96010496,-1593194877,1178147672,1591835898,49120095,1562371467,182861,1167087646,518818645,-327034738,-950664804,63558,-9402681,-1070923776,175570768,-85455216,1975520001,10348803,-16091393,1119356534,1268404224,-16777204,951584374,28856322,-6664192,-16776961,1996425846,-26106,-2037841920,1586233198,-2012771834,2122576966,125042696,-9519485,-2089520128,16740542,-2033769099,130928,720651914,599281892,726670850,-2037559104,1343684396,1101978,1975520000,-943199435,16740486,-196703744,-2146638806,35895376,-1070903266,747015504,-1706027265,3702,242597899,1346371768,91802,-373282048,1996423493,747015430,-1070903041,244095568,1187446784,-16776712,530187894,-1996488687,-12716474,-15698817,-1070922122,-360280752,244338942,-66072,1234831990,-1996488686,-12716474,1343124607,832410,-159973632,1241242,108461824,1189018,1958742784,175570703,-1710852353,331,1736294411,-9388413,-385649664,1996488476,205888010,1174601728,-2037823478,1183579752,1753626890,-15632642,-1946261362,-2130810722,-361407425,-26704129,-26691841,-26573171,539211856,-26032,-1706033152,65535,276838143,-26573171,539211856,-26032,-1706033152,65535,-2113984791,2147481214,512448628,529207712,-150953288,-259262866,-1709281025,4920,-1710852353,3113]},{"sector":4,"data":[-26966391,-150953288,512489070,117641632,-26835319,-2037655413,1200225892,1721666334,-129594626,-523239132,1284174731,-35553276,1200144650,112644,2122519019,-176881656,-1710852353,3774,1593751273,-1962742397,1297948645,503318218,1430622296,-1910575989,-2098429480,108461824,103578,2147433728,1183520629,-1924129274,385842822,1073789008,-26032,1950351360,112645,-1070923029,-1962742397,1297948645,503317706,1430622296,-1910575989,82609112,1488982,-1962512649,574000088,-1994652913,1207434334,1946943494,-339727612,-60912890,1578125195,-1962742397,1297948645,503317194,1430622296,-1910575989,250381272,10664022,-1962512649,-1608610832,-1959329007,1183391300,440699900,-1947056503,1183390788,102665208,38272768,-1710852353,65535,16402119,-15799552,1996424822,-25862,1191116800,407145466,1929004601,73695466,458269181,-1977727863,-2145123004,1149766412,102664965,38797056,958091425,141884486,-1694730497,4928,-1695385857,4936,-1694992641,1029,49120094,1562371467,182861,1167087646,518818645,-326903666,-62470394,-996081664,-96040687,1586173675,105286650,1963083577,107446276,-62455810,167396995,958093473,-495125434,-1962742397,1297948645,503317194,1430622296,-1910575989,183272408,32153942,1946568249,10152195,242368131,-1203995136,787939337,100863602,1183388100,-1948742666,1183446855,-1961497608,1191179870,-129594376,326436665]},{"sector":5,"data":[167134851,242353919,-1946788213,1194919494,-2067454,-1592888818,-120513704,242353919,242353723,113706623,3698,-150992456,-1961987538,-1004631056,461152529,-1996210133,1190657094,1954545916,1087436549,1183515627,-62486020,1929381437,1354771216,1332634,-96040704,-351374685,242393363,1486949355,1358483739,16777114,-96040704,1593460363,-1962742397,1297948645,503317194,1430622296,-1910575989,351044568,-330905770,1187446912,-939524108,64582,-1962516853,-163149561,126605451,-1988107136,1996484678,-263811832,178256,350984784,1187446784,-956268820,63558,1988851435,-1947807240,1485567582,-1995994366,1346432582,1523866,1183399936,263666,-1946532215,1178201158,-14385414,1183647862,45633780,261771264,-16777195,-2135422858,-1070903296,167942736,1187446784,-16744212,1183647862,45633778,496652288,-16777195,1996425334,-227082258,1394842,-230257920,1177108544,-129564692,-1946788213,2145681415,1995982395,-8722173,-1928825089,-1202652090,-1706033150,2032,49120094,1562371467,313933,1167087646,518818645,-326903666,1586189866,71797512,-1325398235,-1948200186,-754274025,1071809002,-1983773952,-661923770,-1979287925,-1981535744,-12724666,-1957661440,-1961942498,1488927,-1962119433,307792880,1586182027,-1948003880,126550616,1356482185,1356613261,1342186168,1068954,175570688,-1696958721,65535,1037452937,74776831,1122746411,-1948754293,1183450742]},{"sector":6,"data":[-1962899242,1183516766,4138454,-523040079,210498443,184804736,-1962440255,1183516766,-1312807722,637063942,-208994297,-2147201909,-1056179999,-1207679095,-2090991615,-443874579,-900899553,1478361096,-1957345904,-661774612,-1207535873,1347420415,16777114,-26112,1586167808,1074235656,28837237,721611520,1975520192,112645,-1070923029,-1962742397,1297948645,503318218,1430622296,-1910575989,-1229433128,512446465,529207074,-150989128,-259324306,-16486145,703070832,28706048,1554512,295082576,-661979136,-956299322,-16665594,-25857,-2090991616,-443874579,-900899553,-1957363710,49054700,16664263,108954368,2134277120,75399942,-13733366,179832950,1347590400,-16353537,-6683530,1375731967,-3217328,33441417,179832902,1347590400,1342457485,16777114,140413696,67389066,-1962440656,-1958674874,113401317,-1873273344,-326412987,-2082959842,1996445420,374790,112720,-26032,-1073020928,-1897331851,-632910592,-1196800375,-1706032570,4450,-1996340219,1187490886,-16776964,-6641034,184549631,-1956416320,1346415174,1353598605,1084901003,348756560,-1706033152,5565,-666465976,1191172235,738707160,-1968546165,1357130247,1356351117,16777114,-664892672,-1962932282,1183493214,-2010053380,37664775,1186484254,-1924129278,1343663686,16777114,-62456064,100433539,-6647428,-2097151745,-443874579,-900899553,50348802,-15623168,50366464,-15319552,50367488]},{"sector":7,"data":[-15349760,50367744,-15606784,50368000,-15292928,50400768,17945601,50333440,-15651584,50371328,-15869184,50339584,-16740352,50341376,-15233792,50374144,-16402176,50341632,-15402496,50342656,-15241216,50342912,-16310784,50343168,-15672064,50343424,-15774208,50345216,-15278336,50345728,-15756288,50345984,-15802112,50412800,-15941632,50348288,-16463104,50382848,-16486400,50383104,18329857,50346752,-16741632,50351360,-15647488,50417408,-16143872,50385152,-16430592,50386176,-16476672,50353920,-15666688,50386688,-15663360,50386944,-15952640,50354176,-16465152,50419968,17981953,50350592,-15242752,50354944,-16663296,50355200,33583617,50349312,-16714240,50355712,-15220992,50388480,-15248640,50389504,-15259136,50389760,-16169216,50422784,-16389120,50357760,-15617024,50358016,-15643648,50423808,-15297024,50358272,-16702208,50424064,-15531520,50391296,-16719360,50424320,-15450880,50391552,-16759296,50424576,-15320832,50359040,-16632576,50424832,-16261376,50425088,-16448000,50425344,-16510720,50425600,-15838464,50425856,17869057,50356480,-15925760,50426112,-15934720,50426368,-15649536,50426624,-15780096,50394112,-15618560,50426880,-15701504,50427136,-15704320,50427392,-15271680,50427648,-15424000,50364160]},{"sector":8,"data":[-16623104,33280,0,0,1167087646,518818645,113760398,66022,-1705983957,777,-991424880,1958742799,-1942552793,112646,-11513191,-16348618,-15587786,-1710087114,65535,-1207339712,-1706016766,531,31852231,-310181888,535137026,516640093,1430622296,-1910575989,1458340824,205949782,1946158653,605542,272452980,1023898625,1953759505,-1070903061,-26032,1996423168,309262,123844688,-1415950306,-16777215,79171190,-6664192,-16776961,1639452278,-1202708985,-1202716667,-1202716669,-1706016752,393,-2096913943,1946159742,-969474295,50436625,-1070923776,-2096918295,1946159742,239504134,-2096712541,131646,1996482676,-26102,-555024384,1024083595,443809793,1962934845,31844611,1962935357,54126851,1962935613,36432131,1996471531,112654,-26032,-1706033152,65535,58048523,-956090903,2147462214,16777114,242679552,1342178488,503925432,4372560,56597072,1253572608,1183666185,-1701162820,-1929379839,-1202668474,-397410303,1048776665,1962937200,-1136226999,275179600,1047838731,-1928431873,1343667270,1342178744,1342178232,1346375864,16777114,1958742784,-1136227039,155891792,-26032,1996423168,309262,155891792,-6664162,-385875713,1253572938,-1070903287,260040784,191905411,-1207208704,-397407926,-1073016820,113707380,2928,-2147408407,608830,1183658100,1253593276,-1070903287,-26032,-1073020928]},{"sector":9,"data":[1183652980,1183666364,-6664004,1207959807,-1371108016,-26032,-1073020928,246942581,-6664160,-352321281,-1136226891,1354771280,1342786232,1342189496,146074,1975520000,155891751,3848272,38509136,-1073020928,1253578357,1555582985,-6664192,184549631,-1207601728,48955393,-1705983957,65535,1034700425,58032127,-16741911,-1207530954,1344145255,16777114,-1401487616,16777114,-1608611072,-1205892335,1861681314,-1947169876,939466328,1354516109,1342194360,16777114,-1136227072,-26032,1183383552,477380786,-5474561,-1070878090,-26032,1183383552,1282752688,-1699580161,65535,253894283,381165451,976156416,-1947170030,939460696,16777114,242679552,1342177720,16777114,23914752,1889779755,31499019,298202879,16777114,1354771200,16777114,22079744,305805055,16777114,-1337554176,-1206764893,-1706030774,65535,34735815,-6684671,-956301057,135686,-1951732992,20777030,1024160768,57999362,-385829399,1996423442,309262,-1136226992,1119375382,-6664192,-16776961,1253576310,-1202708983,-1706033147,65535,1970585611,503925432,59480656,1183383552,-1136226890,-6664170,-1996488449,-259278266,-1984150899,1187493958,-1929379660,1178188870,-13928776,1586214990,-2012771656,708618822,1060897908,1187448181,-1962933836,126531678,1017792136,1006924892,-3115718,2122561606,91488436,-340232449,123844612,-1236890800,1342786053,86938,242679552]},{"sector":10,"data":[1342178488,503925432,70425168,1626013696,491418,242679552,503925432,374864,243792,1074837584,12098128,-1073020928,-1914109067,242679805,1342178488,503925432,100833872,922681344,-6680122,-352321530,142508319,57934592,-228375,1996424822,112654,112237136,-1873805312,112715790,1577058744,-1962742397,1297948645,503319242,1430622296,-1910575989,-435763240,721420545,345657536,-2097152000,1791038,922685300,-929424556,-956301310,1790982,-401698816,922684406,45614732,1347590400,109721343,278411007,278279935,14490,343162880,1342194360,1342439608,16777114,458531584,158711819,1346372280,17562,-26112,113704960,486,-1962742397,1297948645,-1873273141,-326412987,-2116514274,1442988780,1024214667,57999366,1023540713,57999369,1023533545,192151824,1963004221,33941763,-956178199,63558,16533191,-1236890368,125286480,1354771280,503450,1975520000,13756675,1354122893,352922,-1991751680,37615686,-1962508800,-1237137680,-1236890368,33266256,1183383552,1326588,-2065104001,-1236890368,-360280752,1996443902,98867964,-2037579776,-1202651414,-1706033060,553,747014464,-59339777,-18316659,-13728119,-1635054101,1065418542,-15829924,-1946210674,973024902,1996434566,750190569,3062015,243792,-26032,-2038235136,-16515284,-53578,-1946211146,-1238631306,-2104623314,-1705967894,1669,-1207011585,-1924136957]},{"sector":11,"data":[-335615354,242679562,1342178232,381044365,103127632,2122514432,494797816,-956795253,-346245566,-1236875756,242679552,1342178232,1347469355,431770,572427008,-1205892337,787939350,-259321286,-1962387317,-1270445817,1065408651,-1956875264,-16775650,1996423751,814124468,-2037559041,-1873739918,70445070,1354122893,-13597043,-26032,-1073020928,-2037578123,65798002,1353991819,1342803640,1342194360,171418,242679552,1342178488,503942840,9673296,512425984,1342111750,-971314430,626182,-1207011585,-1706033151,1879,1354771280,16777114,32416000,-1593227613,-1935472136,242679561,1342178744,32388863,451994,242679552,1342179000,167261951,16777114,1354771200,33434,20310272,687747,922683764,-895872570,721420288,49998272,687747,1183516276,112501518,33701507,-1543168,-359003530,-352321536,172395486,1946157373,146722,1592329077,277762,-1545010315,343298,1575551861,408834,1944650613,-4920574,28839542,446320640,1342177281,73882,1975520000,12708099,253894283,381165451,976156416,-1947170030,-2037839808,832241384,-16777215,79171190,-2037559296,1343684260,1342194360,83610,-1531019264,1265893630,-31553907,-1534685872,-1070903042,32152144,-1073020928,-2037566092,-1924071906,1358831238,681114,-2037823488,-1924071774,1358882438,132762,1958742784,512134418,783831294,-845524992,184549386,-12290624,79171190]},{"sector":12,"data":[-1617276928,-16777216,79171190,-174436352,1342177289,16777114,537835520,81369680,113704960,2928,298202879,277402,1354771200,295834,112640,-1207839767,787939350,512430650,117640994,-31684983,-31553907,1619430736,244338942,-1962299672,-151118690,1947207239,512134424,1602965758,-1707606264,2171,91602955,-350216008,160348315,-1534685872,2124042494,184549385,728331456,-2037559104,-1705968098,65535,1484046347,-37714291,1488976,175348304,-2037841920,-2037514818,-11469216,-1862418762,138799118,-37845503,-37839221,-37845249,-1958803514,-956449122,1996423175,-1064923890,616059133,-2070261759,1023410186,57933830,-51735,-1710505418,65535,-1207011585,-1706033147,2307,-16650589,112725622,-6664192,-1560280833,1052248568,-1202708990,1344144132,167263875,-1207602176,65734520,-1945666888,-1706011942,65535,-31553907,-297893040,91553793,-352321096,1354771202,167261951,16777114,-599883008,57933825,-2080456727,122430,-1243020428,-532773890,796196865,-31553907,572427088,-1205892337,787939350,-259321286,-16230261,107649591,-1073020928,-1981217932,1619430910,-509980418,-16777214,28839542,-308654080,-385875966,1048837767,1962936646,112645,-1070923029,-16169309,95948406,922701824,418056518,160185987,-1207601920,48955393,-1935425493,242679561,1342863103,447898,-28710656,556673,-385649661,1996487961,242679558]},{"sector":13,"data":[1342177720,284314,244338688,-385804056,-2090926553,-443874579,-900899553,1478361098,-1957345904,-661774612,12250241,572427094,-1205892337,787939350,-259321286,-1995947893,-1946204538,-2145416232,259326015,1342340280,1351239309,722842,-1961563392,-47458,1216777527,1183666431,244338826,-1929366552,-1705997754,1353,1116598411,448286857,-6664160,-16776961,-1928298442,-1202681274,-1706033117,65535,49120094,1562371467,1478413133,-1957345904,-661774612,1443294339,-972530037,1586167815,509446,-2146804085,292880447,-1207404801,726665084,966414528,-352321531,175570758,1342189240,363674,-96040704,-1946530049,1065417310,-690852,1183578694,172370938,-244087,1996425846,2124042248,-1962934267,1988885598,50696,-362753,-375781770,1577058307,-1962742397,1297948645,503318218,1430622296,-1910575989,82609112,142016342,1342181048,1347469355,-26032,-259325952,1443264255,440730,1590070016,-1962742397,1297948645,503317706,1430622296,-1910575989,82609112,-62470314,1996423168,-26106,-1073020928,1996432244,-26106,512425984,529207712,-150953288,-259324306,-14788469,-401698761,1183383578,108462076,16777114,-62485760,49120094,1562371467,182861,1167087646,518818645,-326903666,-129579256,1996423168,215849478,1183383552,1958743034,69515307,-92864688,1347469355,-401698736,1183384217,1958743036,108461835,16777114,-129595136,-1694861569]},{"sector":14,"data":[3345,16285315,2122516093,91619064,-352321096,-2084558078,-443874579,-900899553,1478361090,-1957345904,-661774612,-11998077,-1617295754,-1996488691,1451883078,1958874108,1996444204,-1203335686,1119375382,-711307264,-16777203,1536820854,-1929379826,-1705985978,3197,1954545469,-339727612,112643,-1962742397,1297948645,503317194,1430622296,-1910575989,283935704,142016342,914330,-96040704,1954545469,1721389082,184549387,-12553024,-6620554,-16776961,1922759286,-1962934261,1065355358,-385649408,-1070923568,-1936043184,184549384,-385649216,1996423360,108461832,16777114,-230258432,159236107,-1207915031,-1477836801,142016256,847002,-129595136,896843787,-1710852353,65535,200689289,-1205963584,-11533275,-1070860170,-159973552,1358954424,1726484112,-159973631,858522,-126419200,16777114,-92372736,1517584383,295706251,-1564991605,-93391104,1895821451,239049246,1996423168,235248134,1183383552,10664188,-1946521865,51486750,-263812857,1183570059,508004860,-1962510593,705032262,1996443648,130128390,-1202716672,-1706033086,65535,237607504,-1070923776,49120094,1562371467,313933,1167087646,518818645,-327034738,-11140974,-1264973706,-1996488691,1451883078,1975651324,12052739,-1710852353,65535,-1980348791,-1039402922,-1696005259,-59310336,-1912965377,1343664198,1342194360,912026,-126419200,-1913227521,385838726,4372560,-26032,1183645696]},{"sector":15,"data":[-6664016,-1996488449,-12717498,-1923582849,1358917254,173722,-196704000,-1924631488,1358917254,-150953288,512488046,117641632,1342188037,1342194360,717722,-1608611072,-1205892335,1861681314,-1012750,-1818616208,-1962934268,-1961779170,10663967,-1947046153,-196703248,-14794615,1671038582,-16777202,-6682506,1577058559,-1962742397,1297948645,503317706,1430622296,-1910575989,239504344,-1962288477,-727511994,138840841,-1559603573,378079696,1183517138,165061382,165152455,2124546047,-2147087609,-1204783865,-4521985,-11513089,-1710846922,3792,-1995997533,-1207468010,-4521985,-11513089,-1710846922,65535,-1995996509,-16284650,-16285642,721911350,-1706012480,65535,-2096506719,-443874579,-900899553,1478361098,-1957345904,-661774612,956730017,645139014,-1207273729,-1873804532,7923726,376750091,-16091393,-16284618,721912374,-1706012480,65535,28836843,49120000,1562371467,445005,1167087646,518818645,1996478606,52082698,-401698736,-1073020870,1996432500,-633929974,-734593271,-768147703,-801702135,187865609,-660406272,165060873,165152313,28837236,721611520,49120192,1562371467,445005,1167087646,518818645,-326903666,1996445228,-733573880,683167766,-6664192,1073742079,1039943305,461242369,1120333963,1183645907,1996443860,140810758,-1073020928,28837237,721611520,-310157632,535137026,80366941,-1873273344,-326412987,-2082959842,381158636]},{"sector":16,"data":[976156416,572427026,-1996029169,-661914554,33966070,-2081881227,-401698816,37616128,1028551680,125042694,1946158909,-1958548625,1603009630,-2145416440,410255423,-151232885,1947207239,539015216,294623824,113704960,2928,652742288,1489140,305802999,253894283,1183385347,-153580548,1946289735,-339727580,-60912854,-16228469,-297893065,91553793,-352321096,1354771202,167261951,607642,1883144960,-713752565,-2097151560,-443874579,-884122337,1167087646,518818645,-4663154,-17665,-1197846446,-1207959536,-4521985,-1706011905,4293,-1157627976,1347616767,1102490,-18432,1392508858,283089488,-4718592,-17665,-325431214,-1207959536,-4521985,-1706011905,65535,-1962742397,1297948645,-1873273141,-326412987,-2082959842,1448543468,-1962379637,1187448446,-352321284,1191134980,1149912828,1357130495,16777114,168134656,-1947568704,1600060486,-1962742397,1297948645,1426064586,-326898549,-950642934,64070,-1710852353,4478,-163149496,1979969675,-24424954,1949973632,775716880,2088775541,695545599,1962934845,-129579228,1183514624,123733496,302946896,1174601728,4341238,246953086,244994080,-352321528,1547468857,1187448693,-352321032,75400149,721712128,-1207702592,1183383554,108935672,1031848051,1326674990,1183577067,123733496,21269840,172333648,1599995904,-1034033781,-1957363708,1988843244,-2146374908,91499068,1967078528,112645,-2142893845]},{"sector":17,"data":[-344653764,-1956724693,46292453,-1873273344,-326412987,-2082959842,1996424940,225090056,1174601728,1183401992,-96040452,1586170859,1547665660,1325337460,138841084,2013021753,-62485523,1996443712,-96040186,1358710315,883354,108461824,-397361109,-310116627,535137026,80366941,196690,16716234,196744,16716065,196745,16715070,196750,16712469,16973967,200558,16973935,66761,16973829,68918,196615,16713453,196762,16714903,196763,16714139,131229,16715439,196634,16713757,131231,16715463,16973851,68592,16973841,68643,196626,16712705,16973987,68679,196627,16715718,196772,16713715,196773,16716353,196652,16715834,327726,16715978,196685,16712889,16974006,198661,327702,16715952,327893,16715991,196823,16713765,16973889,199485,16973858,198493,196643,16712926,16974019,69304,16973875,197237,327717,16715965,16973918,67880,196667,16715124,196811,16714725,131408,16715981,327757,16715939,16974185,200424,196662,16714431,16974039,200492,196663,16714832,196824,16712284,131161,16715955,196821,16714815,16973914,200619,196666,16716108,131163,16715994,196823,16714645,327776,16716004,131449,16715968]}],[{"sector":1,"data":[16973918,198888,16973893,198431,196679,16713943,196711,16713886,16973928,66430,196698,16712378,196843,16713158,196715,16714127,16974061,69803,131165,16715942,196969,16712495,196846,16713699,196719,16712317,196848,16714891,196976,16713681,196849,16714911,196979,16712484,196984,16714686,196856,16715905,196985,16714931,16974202,198655,196699,16714949,16974203,197626,16973916,198549,131165,16716007,16974201,199129,16973921,198900,327778,16715436,16973850,197488,327779,16715460,16973851,197658,100,0,1167087646,518818645,-326903666,1721849368,1746307859,-230258413,-1577822583,378213164,1183388462,-262764050,253894283,381165451,107935488,1082912907,72387330,-1980086647,-1070859178,-1559009117,1183519590,321692666,321787529,1183432747,-163149320,-1946532213,1446640726,-385646856,142344352,1928742457,9890051,-16353537,1996486774,-25866,1654718464,1679198990,-364476146,-152283511,269160966,1183518324,-329872406,-1980348791,-1192495018,-1947580789,1446636630,2095546360,-163170043,748806259,773229331,-128567021,92066943,1945519673,108462029,-493825,-1070860682,374864,-26032,922681344,1183518240,-163173398,-26032,1183383552,142016488,262944511,-26032,1183514624]},{"sector":2,"data":[1174510056,-128577034,1183554283,-195654670,-1995217245,-1961662442,1452011078,321692656,321787529,49120094,1562371467,313933,1167087646,518818645,-326903666,512448016,1207894022,-1608611070,-1995994351,1187508806,-1962934020,-1961942498,-196703993,1191118827,-196705284,-195130602,1946173315,-1960866831,263431,-940161399,129606,99763851,1183383714,13232632,-1963434357,2133067079,58002236,-167728151,1963066439,10676483,67389430,-1712782476,254451968,2113685049,-161576142,-788248693,2145681640,1039156873,1534427135,-1577302273,1178144554,-2096333316,-1961429946,1065612382,-1578535936,1178144554,-1959953156,-16775650,1996423759,-25862,512425984,1207894022,-1608611070,-1995994351,-1564937658,-93391104,-1980611069,971765830,-1946919285,84380447,1183383556,-1953305610,1178204742,958559472,259977286,-150953288,-259264402,-2131599733,-2096888760,-385026490,1586233191,73892088,-96010245,-1560787327,195600640,2113553977,-13833981,401035,1577209855,-1962742397,1297948645,50333131,-16744960,50339584,-16717312,50343680,-16650752,50355200,-16721408,50357760,-16713216,32512,0,0,1167087646,518818645,-326903666,1187468806,-352321286,702535,-1946521865,51276830,-62486265,529258635,1996437387,-1705617914,65535,5610064,179830784,-93391104,241966731,1183385347,108462076,1342178821,1342178488,28826,-96010496,957229217]},{"sector":3,"data":[-1317209530,-1207535873,-1202714746,-1706033151,65535,49120094,1562371467,33737293,805307136,1526791936,905970432,2130771712,0,0,0,0,1167087646,518818645,244373646,-2097149464,-443874579,-884122337,1167087646,518818645,-326903666,-1705617628,65535,16777114,205431040,770590345,691863553,-385649152,-1073543023,-1476448621,-2031548615,-2110324984,1077346075,1144454924,1110900492,1211563788,1178009356,23370252,922681344,922684480,922684484,922684482,922684488,-4715450,-1070903169,1347440720,120730,-1983894784,1183440966,-293698594,-1207601905,65732611,-1560277320,28838974,10113024,-2097151999,1948708478,114682115,16777114,114157824,205534975,205797119,205666047,1347469355,461518591,1184976976,1209436940,-565802740,1390433929,20552272,2122514432,91557614,-352321096,1030147,-1207157085,-1706033151,328,-2096724247,440894,-504822923,1077346048,1144454924,1110900492,1354771212,-1338572976,-11513845,-1710510026,349,-1981921655,1347608662,143514,1040631552,-1207958004,-1706033151,401,196097791,461518591,1347469355,461518591,98714,-1706012160,392,122010,102623488,461518591,196097791,1347469355,196097791,131226,-1706012160,436,1342177720,152986,1040631552,-16775924,-16011210,-15974346,-15973322,-15973834,-15972298,-1710471626,588,205534975,205797119]},{"sector":4,"data":[205666047,206059263,205928191,1350565816,1347469355,-1684385712,-1711276030,65535,1183432747,-565802528,-2096782615,440894,113707381,68464,-16411927,-1710510026,581,-1981921655,922738774,1117850688,1142328076,1174799116,1209406220,726684172,-11513664,1342943286,-529072304,-1696696577,65535,196097791,461518591,1347469355,461518591,16777114,-1706012160,632,1342177720,16777114,1040631552,-16775156,-14974410,-15974346,-15973322,-15973834,-15972298,-1710471626,65535,205534975,205797119,205666047,206059263,205928191,1350565816,1347469355,-6664112,-1962934017,1452006982,205956064,206050953,-83479,-1709473226,761,-1981921655,922738774,1117850688,1142328076,1174799116,1209406220,726684172,-11513664,1343980086,-529072304,-1696696577,975,461518591,196097791,1347469355,196097791,329882,-1706012160,102,1342177720,307610,1040631552,-16775412,-385109962,922746697,922684490,922684494,922684492,922684488,922684486,1119358016,-1070903284,-26032,-1073020928,-1897331851,205955333,206050955,-1981921655,1117904982,1142328076,-498693876,-1578871159,378211404,1117981774,1142327564,-498693364,-1545316725,378080332,1084296270,-431585012,-1559475551,1183517760,206218214,16777114,66709760,636386947,1352730996,1377209100,-1593316596,378211398,1183386696,-531199522,461518591,-1070903214,922701904,922684480]},{"sector":5,"data":[922684484,922684482,922684488,-157676474,-16777213,-15974346,-15973322,-15973834,-15972298,-15972810,723223094,-11513664,1996480630,87595742,922681344,-1070916734,1996443728,-562626592,1350565816,1347469355,-1986375600,-2097152000,1948642942,205955355,206050955,-1995681629,-1962126826,1452006982,205956064,206050953,636386947,512440437,529207074,-150989128,-1962131410,37784560,721703051,453788166,-1995684842,1451875910,1077346272,1144454924,1110900492,1380995596,-26032,2122514432,141895662,205391559,686489640,686718595,113707125,2559038,2122521323,141886190,205391559,216727568,284065411,113706613,134206,1342177720,43930,1781989120,1748434715,112667,-26032,1347551232,460207871,460076799,16777114,-1706012160,65535,-16601367,-1928576970,-397348794,-1073019916,-1662450827,-2110324990,-163148517,65202256,58048523,-16610583,-1710473162,1303,-1981921655,922738774,748297090,-1996488703,1451878470,-2110324758,726684187,-11513664,1342980150,-529072304,-1696696577,230,205534975,1347469355,-2066689,922738294,1347427202,-1411329,2023417974,-16777210,723223094,-11513664,1996483190,2147465448,1354771280,-1706012592,1728,253894283,381165451,1076819712,-1947170036,1183387712,1958743036,-946188282,-1962934267,-1961942498,1488927,205532919,1183576203,272665078,253894283,381165451,-2110851328,-1947170021,1183387712]},{"sector":6,"data":[1958743036,-6664186,-1962934017,-1961942498,1488927,461516535,1183576203,272665072,460719815,-1528168449,1488897,205532919,253894283,1183385347,1489132,461516535,1183385347,-329348110,-1995683957,1988885062,205818866,-1962129527,1183576670,206014970,-1947443573,1183387719,-227111952,-1995422581,1586171975,-263812110,-1206892663,-1706033151,1842,-1543503944,1990394292,461808411,-367127,-14974410,-15969738,722227254,-11513664,-15974346,-15973322,-15973834,-15972298,-1710471626,1697,205534975,205797119,205666047,206059263,205928191,461518591,1347469355,206714623,206583551,189594,-2110324992,1354771227,1379336016,1345781516,2147465228,1354771280,-1706012592,1043,-1962129759,-1995683818,1451875910,206610912,206706315,-1995684189,-1962129386,1452006982,206611424,206706313,721420728,-1559473146,381160532,1076819712,572427020,-1996029169,381217862,-2110851328,-1996029157,1586229830,340233196,-1946925431,1150022262,340232468,-1947050357,1200223302,112660,50960976,2145976320,-1811919367,436256771,1879115523,-1358828799,-754396414,-754396408,-1073163512,-1811919616,-1811361021,-1811704829,-1811704829,-1811704829,-385641469,-1811704827,-1811704829,-1811704829,-167537661,-1811704826,1292080131,-1811704832,-553233661,1883144964,91488267,16777114,1488896,205532919,512487563,922947362,-1192462711,787939350,-125101182,2122923779,105155570,19261649]},{"sector":7,"data":[-129595136,-788118133,75240,1284235473,-35553274,1149878539,-129594618,-788528859,105745376,201187712,105220545,621167755,1183383553,105155576,1301020196,31555846,-1983837440,1183516228,75256,-2147070581,-1056178463,-2096740983,1963257470,11790595,586055299,-1427569803,-293698816,-385649382,2122514593,58010094,-2097112855,-15582658,-1897331851,305832192,205522489,-2098658444,325492992,325588619,205788729,109016444,205653561,1183542642,-531199010,205653507,205788691,321787451,108812671,321652283,2122535287,678766062,205797119,205666047,205797119,205666047,1342178488,16777114,-1706012160,2249,325322439,501940225,205797119,205666047,-1948367221,100917334,370347074,1347554372,317594,470206208,1577058562,49120095,1562371467,-1957311667,82609132,572427094,-1205892337,1861681174,-1947170042,1183387712,1975520254,73304841,1991,62404331,-27358464,1878466443,-1992278014,-1705968570,65535,-1996202357,74792967,401326123,-106869,73304887,939466635,-1694730497,65535,1577058744,-1034033781,50336772,-16212736,50369024,17142529,50333440,-16485888,50339328,-16465408,50340352,-16280320,50341376,-16729856,50374400,-16367616,50342144,-16173056,50345984,-16765696,50348544,-16600064,50350080,-16419840,50351104,-16580608,50351360,-16461568,50420736,-16766976,50422016,-16210944,50356736]},{"sector":8,"data":[-16427264,50356992,-16684800,50428928,-16544512,50429184,-16565760,50429440,-16181248,33280,0,0,1167087646,518818645,-326903666,-2091493628,251873854,-1070917260,-26032,512425984,2139947854,459849250,96012062,-2086276608,2097154174,20637955,-1559738741,951649098,-1947601152,147030488,1310624016,88574467,983819306,742886162,-1961852765,-1961942498,1488927,305802999,1082912907,-62486256,158646283,529258635,1962950531,305832224,723220131,241214400,-955359581,-16056826,444415,-947912949,-16560122,1310624767,537886723,55451275,-1927583553,119415415,-234879559,55353765,1963476537,-1547687154,1721963368,-1338573037,-10228981,-1710081482,65535,55451275,16861174,-56550028,-32077050,325493510,325588617,-1962475359,755434006,-628948990,-1959204096,-167555554,1946288455,117743895,117839499,-1995217245,-1592563690,378210056,-672463094,-1962472287,-1559818730,378082150,922686312,1989808698,-1560281086,378082092,1347556142,325596927,325465855,16777114,321692416,321787529,55451275,-1961662815,-1995216874,1468602439,1310624538,321691907,321787531,-1994635383,113712727,3686,459947651,-1587643392,378215276,372841326,477436778,459802169,-1331620235,973486347,-15895534,-14980554,-1709479882,65535,305805055,459945727,459814655,16777114,302446080,410259467,-1961991519,957244438,1964731926,1812347147]},{"sector":9,"data":[-1207601893,48955393,1688453163,-2090901997,-443874579,-900899553,1478361092,-1957345904,-661774612,1443294339,55066243,-1207534590,-1997996017,55091456,-1174649207,-369688520,-964562805,727060488,381178048,1167740928,-1979711486,1149765190,5289989,-26032,1149829120,-948682698,-13214581,1354771255,1342197944,16777114,-2012565504,1149764676,138840835,-1993587575,1149841476,876922414,893699584,17596417,-2145383296,-1979635124,-467008188,-26032,1149829120,508856604,-1995232607,117379140,1183515464,-310157572,535137026,80366941,-1873273344,-326412987,1473809950,108432214,1366619659,-150980424,-2585618,-1710211401,65535,55326265,113706613,983884,55054079,55064121,951593854,-1947273472,272631288,96963408,-1588588536,-970259640,-150980423,-6663959,956301567,2114145334,1276051204,-2090902013,-443874579,-900899553,50334210,16955393,50333440,-16770560,50370816,-16665344,50339584,-16694016,50340096,-16584960,50342912,-16638208,50346240,-16699648,50350080,-16723968,50419712,-16669696,50392064,-16634368,33280,0,1167087646,518818645,-6629234,-16776961,-6683018,-2097151745,-310181180,535137026,46878045,318767872,-2080309504,184550145,-2063532288,1,0,0,0,5]},{"sector":10,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2147418112,1381433344,541414473,1836216134,1702130785,1700012132,29816,1459617792,1702127986,2108704,0,0,0,0,1680736256,1140881010,1128879685,1146047813,822083653,3211264,1048588,1572884,2621472,3932208,6291528,1953724755,28005,0,3276799,0,0,0,0,0,0,0,0,1633646445,1651794787,1852788224,1968046181,1867541612,1828746354,1919904887,1828746085,1919510647,29541,2003632128,1868786015,2003632238,1852140895,1666383989,1819045746,7496002,1869767507,1631743084,1666383986,1819045746,7496002,-65504,65535,1,4128831,268369935,2032127,4128784,268369927,1835519,1393106976,1933910120,-65437,128,1632698367,824206695,0,0,0,0,0,0,0,65536,0,0,0,2147418112,32767,0,0,0,0,0,0,0,1,1,0,0,0,1143865344,17231,1397507886,35782656]},{"sector":11,"data":[35652136,35652128,1262567982,1397555200,1953067607,1866858597,7894126,1953067607,1866735717,1701672291,29806,1953067607,1917853797,1634887535,1918304365,543519849,1702256979,1918304256,6648937,1953387816,1701606505,10596,0,0,-65536,0,0,-65536,0,32,0,65535,-1482184960,-1499159130,-1480291610,623224743,-978934747,-2105376126,-2101312894,-2105376126,-2105376126,49830,65700,65536,0,0,65536,1684957559,7567215,1769366852,25955,1769366884,7562595,1801675074,28789,1381454669,1598379081,1431192909,1397555200,1414091351,1329880901,1397555267,1414091351,1431461701,5391692,1381454669,1598379081,1162297680,1330007625,0,983040,268959759,65535,0,0,0,0,0,0,0,0,0,0,0,0,1478426622,-1957345904,-661774612,1461513347,108432214,880805099,1015039507,-559872,1183648886,-1957685514,536807518,-2131073408,-2130942336,-1946532213,-772156984,-1949266951,-754732583,-1982200838,-1020531106,-1947056503,-930350010,-103679535,737169033,-196703807,-1962248449,1344144966,1358954424,384714381,1161296,140413776,-1962647553,-120456634,-1947449719,-120456122,736773769,-336098305,175570773,736904843,-1957211962,1610549342,175570696,-364475562,-1957640445]},{"sector":12,"data":[1610549342,175570700,65816203,-1957211962,1610549342,175570696,737822347,1183535302,1355219946,-16228725,1183517791,-754535942,-1947204616,-120325050,1983510531,1587969516,49120095,1562371467,576077,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2105164800,1617198199,2053194803,2066970215,1899192434,863860342,1719427441,862419828,1781759079,1899193980,2085696362,1362313073,859795836,1919574353,1345535869,1346271867,2104911483,2104636223,1917006711,103]},{"sector":13,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65536,0,0,-65536,-1,65535,16711778,0,0,0,0,0,0,0,0,1048576,0,0,0,262152,1668509040,29301,1,0,0,-65536,-1,1651638272,1869902965,1836187758,7041633,0,0,0,0,0,1162346496,1380271169,1330595328,5391700,1867382783,1852990820,1836012032,1392537185,1936943479,1919111936,7630953,1868784964,1769234802,1392534902,1936943479,1680736256,30322,0,15,0,1143876188,1275085647,1768186223,1713399662,778398825,11822,3145777,0,0,0,2228224,7168800,808546336,829431808,1881145394,1814036596,126484585,126879628,127534997,94373790,9437751,1310840,774766832,46,-1,0,0,0,0,0,0,0,0,0,0,0,0,-2122252288,65921,0,0,0,0,0,0,0,0,0,-65536,-65536,-65536,-65536]},{"sector":14,"data":[196612,16713762,196992,16713766,196993,16713770,196994,16713774,387,0,0,0,2031875,2097152,262176,-65536,-769,-1793,-1793,-3841,-3841,-7937,-7937,-16129,-16129,-32513,-32513,-65281,-65281,-65282,-65282,-65284,-65284,-65284,-65281,-63233,-63233,-61953,-61441,-57346,-57346,-57346,-57346,-49154,-49154,-32770,-1,65535,0,512,512,1536,1536,3584,3584,7680,7680,15872,15872,32256,32256,65024,65024,65025,65025,30208,30208,25088,25088,24576,24576,49152,49152,49152,49152,32768,32768,0,0,0,2031875,2097152,262176,-65536,-769,-1793,-3841,-7937,-16129,-32513,-65281,-65282,-65284,-65288,-65296,-65281,-65281,-59138,-58114,-49412,-49156,-32776,-32776,-4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,65535,0,512,1536,3584,7680,15872,32256,65024,65025,65027,32256,28160]},{"sector":15,"data":[26112,49664,49152,32769,32769,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,524547,2097160,262176,0,65343,65343,65343,65343,65343,65343,65343,65343,65343,65343,65343,65343,65343,65343,65343,65343,65343,-193,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,65535,0,-12648448,-12648448,-12648448,-12648448,-12648448,-12648448,2130706432,2130706432,2134769664,2134769664,2134769664,2134769664,2134769664,2134769664,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33026,3932592,16842806,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]},{"sector":16,"data":[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481]},{"sector":17,"data":[268435455,-16,-1044481,268435455,61680,-252702961,268369920,65520,-1044481,252641280,61680,-1044721,268435455,-16,-1044481,268435455,-16,-252702721,252641280,61680,-1044481,268369920,65520,-252702961,252641280,-16,-1044481,268435455,-16,-1044481,268435455,61680,-252702961,268369920,65520,-1044481,252641280,61680,-1044721,268435455,-16,-1044481,268435455,-16,-252702721,252641280,61680,-1044481,268369920,65520,-252702961,252641280,16580592,-1044673,268386300,-16,-252702721,252641280,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,255787260,1073545200,-1044481,268435455,61680,-1044721,268435455,-16,-1044481,268435455,-16,-1044481,268435455,16580592,-1044673,268386300,-16,-252702721,252641280,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,255787260,1073545200,-1044481,268435455,61680,-1044721,268435455,-16,-1044481,268435455,-16,-1044481,268435455,1073545200,-1044481,255802620,61680,-1044721,268435455,-16,-252702721,252641280,61680,-252702961,252641280,61680,-1044721,268386300,1023213552,-252702913,252641280,-16,-1044481,268435455,61680]}],[{"sector":1,"data":[-252702961,252641280,61680,-252702961,252641280,1073545200,-1044481,255802620,61680,-1044721,268435455,-16,-252702721,252641280,61680,-252702961,252641280,61680,-1044721,268386300,1023213552,-252702913,252641280,-16,-1044481,268435455,61680,-252702961,252641280,61680,-252702961,252641280,1073545200,-1044481,268386300,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268386300,1073545200,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,1073545200,-1044481,268386300,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268386300,1073545200,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,1073545200,-1044481,268386300,61680,-252702961,252641280,61680,-252702961,268373760,267452400,-1044481,252641520,61680,-1044721,268386300,1073545200,-252702721,252641280,61680,-252702961,252641280,251719920,-1044481,268374000,15794160,-252702961,252641280,1073545200,-1044481,268386300,61680,-252702961,252641280,61680,-252702961,268373760,267452400,-1044481,252641520,61680,-1044721,268386300]},{"sector":2,"data":[1073545200,-252702721,252641280,61680,-252702961,252641280,251719920,-1044481,268374000,15794160,-252702961,252641280,1048378608,-51376321,255803004,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-51376129,255802428,1010629872,-1044673,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,941423856,-51376321,255801372,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-17821697,259993612,806158064,-1044609,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,537198576,-1044481,268378116,61680,-1044721,268435455,-16,-252702721,252641280,61680,-252702961,252641280,61680,-1044721,268370304,25231344,-252702721,252641280,-16,-1044481,268435455,61680,-252702961,252641280,61680,-252702961,252641280,62980080,-1044481,268370880,61680,-1044721,268435455,-16,-252702721,252641280,61680,-252702961,252641280,61680,-1044721,268371936,132186096,-252702721,252641280,-16,-1044481,268435455,61680,-252702961,252641280,61680,-252702961,252641280,267452400,-1044481,268374000,-16,-252702721,252641280,-16,-1044481]},{"sector":3,"data":[268435455,-16,-1044481,268435455,-16,-1044481,268378104,536412144,-1044481,268435455,61680,-1044721,268435455,-16,-1044481,268435455,-16,-1044481,268435455,1073545200,-1044481,268386300,-16,-252702721,252641280,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268402686,2147418096,-1044481,268435455,61680,-1044721,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,61680,-252702961,268369920,65520,-1044481,252641280,61680,-1044721,268435455,-16,-1044481,268435455,-16,-252702721,252641280,61680,-1044481,268369920,65520,-252702961,252641280,-16,-1044481,268435455,-16,-1044481,268435455,61680,-252702961,268369920,65520,-1044481,252641280,61680,-1044721,268435455,-16,-1044481,268435455,-16,-252702721,252641280,61680,-1044481,268369920,65520,-252702961,252641280,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16]},{"sector":4,"data":[-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,-16,-1044481,268435455,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,240,15732480,251658240,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]},{"sector":5,"data":[-1,-1,-1,-1,-1,-1,0,0,33026,1572984,16842768,0,-1,-805306381,62980095,16761855,-1,-1879048207,62980095,16761855,-1,268435440,62980095,16761855,-1,268337136,62980095,16761855,-1,268189680,-3932161,12829695,-1,267919344,-3932161,12829695,-1,267390960,-3932161,12829695,-1,266340336,-3932161,12829695,-3841,264242160,-3932161,16761855,-3841,260047344,-3932161,16761855,-3841,251658480,-3932161,16761855,-3841,251658480,-3932161,16761855,-3841,251658480,-473708545,14926791,-3841,251658480,-1010580481,12829635,-3841,260047344,-2084322817,8635329,-3841,264242160,130277631,508896,-1,266340336,256045311,1000176,-1,267390960,520157439,2031864,-1,267919344,1057029375,4129020,-1,268189680,2130771711,8323326,-1,268337136,-16711681,16711935,-1,268435440,-8257537,16744959,-1,-1879048207,-3932161,16761855,-1,-805306381,-1572865,16771071,257,4194331,524352,-65536,16711679,-65536,16580607,-65536,16318463,-65536,15794175,-65536,14745599,-65536,12648447,-65536,8454143,-65536,65535,-65536]},{"sector":6,"data":[65279,-65536,64767,-65536,63743,-65536,61695,-65536,57599,-65536,49407,-65536,33023,-65536,255,-65536,254,-65536,252,-65536,252,-65536,252,-65536,248,-65536,240,-65536,14745585,-65536,15794163,-65280,16318435,-64768,16580583,-63744,16711623,-61696,16777167,-57600,-2130706545,-49408,-2130706529,-33024,-2130706529,-256,-1056964801,-255,-1056964801,-16777469,-520093889,-16777465,-520093825,-50331889,-520093825,-50331873,-520093697,-117440705,-1056964609,-100663297,-2080374785,-234881025,-1879048193,-201326593,536805375,-469762049,2147024895,-402653185,-917505,-1006632961,-3670017,-1056964609,-14680193,-2130706433,-8389569,-2130706433,-1761,16777215,-3297,16777215,-14577,16711679,-57593,16711679,-33020,16580607,-255,16580607,-255,16318463,-253,16318463,-249,15794175,-241,15794175,-129,31522815,-1,132186111,-1,264306687,-1,532742143,-1,65535,50331648,65535,0,65343,0,65343,1056964608,65507,2130706432,65475,-16777216,65415,-16711680,65295,-33357824,65311,-66650112,65087,-133234688,64639,-266403840,63743]},{"sector":7,"data":[-515964928,61695,-1015087104,57855,-2013331456,50175,268370176,34815,536740608,4095,1073481472,8190,2146963200,16380,-1040640,32760,-2015488,65520,-3965184,65505,-7864576,65475,-15728895,65415,-14680575,65295,-32571392,65055,-66650112,64575,-134021120,63615,-268369920,61695,-520093696,57599,1124073472,49407,117440512,33023,251658240,255,520093696,254,251658240,252,117440512,248,117440512,240,117440512,224,117440512,192,50331648,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1818838544,101,2003127824,268500992,1852141647,3026478,1393558016,778401377,11822,0,1917849603,779382377,11822,1749225476,1701277281,1769099296]},{"sector":8,"data":[1919251566,3026478,1376781696,1734439013,1952542313,774778469,1682247680,29801,1851068432,1393127268,1933910120,99,285212672,1953841936,1818575881,269615104,2037411651,3294729,1343230720,1702130529,1936607497,0,269746176,1702260557,1667846176,1701999988,269844480,1702521171,1667846176,1701999988,1699942400,1751347809,270532608,1684957510,3026478,1376788736,1634037861,1632378996,1176532083,157576809,13126,1749225506,1701277281,3026478,0,1192240000,1867784303,1734430752,774778469,3425801,1634222864,1952670066,29285,1867386944,1818324338,3491337,0,1108361472,157576303,13894,1950945346,1667853409,3622409,1427129088,1919247470,1701734764,3687945,1393574912,1919250549,1769104243,29808,1968377925,1919120226,7630953,0,1066496,1066752,1067008,0,1376798976,1668637797,1866866789,1175024750,1241514041,1819165968,1701278305,1852786208,826673524,48,1266679808,1852786192,774796148,1343225902,1734439521,1752195442,276824064,1836216142,27745,0,1699483777,29798,1698893954,1919251566,25701,1766985859,7628903,1242596352,1769239413,1684367718,0,277151744,1735289171,1394632044,1701011824,277217280,791748657,1884495922,6644577,1141933824,1818391919,1884495973,6644577,0,1225820288,1852138606,774796148,1150287918,1836409711]},{"sector":9,"data":[7630437,1209073664,1701077349,774778482,285278208,1953460038,774795877,46,33554432,1819628049,1327526501,50331758,1650545681,774778483,0,285507584,1701273936,2036419616,779384175,11822,-2143289344,671096326,1593876480,0,458754,786472,196607,1182945282,1852140649,979725665,3014656,7208965,262156,1350631552,67108993,1174411520,83902464,-1593834752,33616,1638478,786508,65539,8540162,738221824,234893824,16777472,-2142240000,1852141647,6225920,3276866,131086,1342373888,1851868032,7103843,0,0,-2143289344,671096327,889246208,0,327685,655470,65535,1401049090,543520353,1920103747,544501349,1969450820,1953391981,980631840,327680,7995409,262156,1350631552,-2130706303,1275069696,50334720,256,33360,2293765,786484,131077,1417695235,544503909,2037149263,4587520,3932195,393228,1342373890,1801538944,1631723621,1886743395,10158080,3276817,65550,1342373889,1986089856,-1694498715,838869504,33558016,50331648,1631813712,1818583918,0,-2143289344,335552006,1342215680,0,327680,524438,131071,1300385794,1869767529,1952870259,1852397344,1937207140,589824,23,-65536,1342177283,1601662338,1852793705,0,9830414,-65528,1342308353,1769101186,25972]},{"sector":10,"data":[2228259,524368,131071,1451380738,1769173605,824209007,3158062,788529152,134256128,33554176,-2108685824,2037411651,1751607666,547954804,892877105,1766662188,1936683619,544499311,1886547779,922746926,671104000,16780800,50331904,1800372304,0,0,0,0,-2143289344,838865163,1291878912,0,458757,786462,65535,1132613634,1701408879,14963,327715,786462,8388618,8474753,335545600,201345536,33557248,-2142240000,1717662276,1968250996,1953066081,83886201,838870272,-16774144,33554687,1632666192,1377854823,1701277281,167772218,838872832,100666368,50332672,1816232016,167772268,503331840,117443584,1024,1917222992,3829103,1023420672,201334272,-2147481600,-2125430016,5111808,786495,-65524,1342308352,980374658,6029312,1966141,589836,1350762624,1426063489,671089920,16780800,50331904,1800372304,5570560,2621465,131086,1342373888,1851868032,7103843,0,-1865940992,838864643,872449536,1342177280,1953393010,6778473,327685,524416,65535,1468157954,1702127986,544434464,1684956531,543649385,1920298873,1668244512,1852140917,83886196,-2147480064,-16775168,33554687,1869906512,1701344288,1769107488,1919251566,788529198,671096320,33558016,50331904,1631813712,1818583918,0,-2143289344,1677744644,755014400]},{"sector":11,"data":[327685,786512,65535,1384271874,1734439013,1952542313,1866735717,1701672291,29806,1638405,786532,131075,1132482563,1768320623,1344302450,543516513,1634038338,29547,327790,917544,65537,1333809155,1845493867,671095040,33558016,50331648,1631813712,1818583918,0,0,0,0,-1865940992,838864643,838884864,1375731712,1734439013,1952542313,6778473,327685,524372,65535,1468157954,1702127986,544434464,1634755954,1634625895,1735289204,327680,3407886,-65528,1342308352,1970239874,1868832882,1701672291,29806,1835035,917544,65538,1132482563,1701015137,108,0,0,-2134376448,2013288968,838909952,1375731712,1734439013,1952542313,6778473,327685,524380,65535,1434603522,1965057395,1851859056,1868832868,1646292599,1869902965,29550,917509,524360,65535,1954697218,1869422703,1881171318,543516513,1634038370,83886187,872421120,-16775168,33554687,1718190672,1667591712,1634956133,2914674,536872192,134231040,16776960,-2108685824,1852139636,1852793632,1836214630,1711276078,671090688,83889664,50331648,1884651600,6684672,2621468,393230,1342373888,2003780736,-1828716434,671090688,16780800,50331904,1866694736,1919510126,-1828716435,671095808,33558016,50331648,1631813712,1818583918]},{"sector":12,"data":[-2134376448,1677744646,973113088,1375731712,1734439013,1952542313,6778473,327685,0,262143,-8237056,503348994,1543505664,-16774144,33554687,1868005968,543452277,544567161,1701538156,544175136,1885693291,1966080,6553619,-65524,1342308352,1768453250,2019893363,1769239401,1881171822,543516513,1634038370,16235,2293767,917539,2,1132482563,1701015137,822083692,587211520,16780800,50331904,1699446864,28773,2293851,917539,4,1384140803,1987013989,101,0,0,0,-1874853888,671096324,1342225920,0,327685,786502,65535,1401049090,1667591269,543236212,1852404304,980575604,327680,8650772,196664,1352859651,1818579843,544498533,1917853793,1702129257,14962,1310865,917544,65537,1333809155,-1862270869,671101440,33558016,50331648,1631813712,1818583918,0,-1865940992,-1526716411,922798080,1174405120,6581865,458757,786477,65535,1182945282,543452777,1952540759,838860858,-1946155776,117443584,-2130673664,33104,1310725,786492,131077,1468026883,1701605224,1919899424,1677721700,1593840640,100666368,50332160,1632469072,543712116,1701867605,1867263858,1668441463,6648673,587220480,234896384,16777472,-2142240000,1684957510,2019905056,116,0,-1865940992,-1778369526,1174468864,1124073472]},{"sector":13,"data":[1735287144,327781,2949127,-65524,1342308352,1852393090,1750540388,3830881,83898880,201364992,-2147481856,-2125430528,327680,2949142,-65524,1342308352,1634222978,543516526,3829588,335557120,201364992,-2147481600,-2125430528,327680,3932195,327692,1342373890,1869109120,1461740908,6582895,587228160,201376512,33555968,-2142240000,1668571469,1884627048,796026224,1702326092,1935762290,83886181,738210304,16780800,50331904,1766228048,1310745710,7632997,838874624,234900480,2304,-2142240000,1851877443,539780455,1852139636,1852392992,-2030043036,536883712,50335232,50331648,1749254224,1701277281,11272192,4718642,262158,1342373888,538976384,1851877443,1092642151,538995820,32,0,0,0,-2143289344,1056986884,671112960,0,458757,786482,65535,1350717442,543516513,1651340622,3830373,83900416,201334272,-2147482880,-2125430528,327680,2621462,65550,1342373889,7032704,369111552,234891264,512,-2142240000,1668178243,27749,0,0,-2134376448,604000265,1476441088,1174405120,1937010287,83887360,201338112,16776960,-2108685824,1953394502,1835093536,14949,1048581,786557,8388611,8474753,587203840,805333248,50332672,-2091867904,7536640,1572907,393256,1352728579,-1879048061,268448000,-16774656,33554687]},{"sector":14,"data":[1866891856,29806,3866768,786452,65535,1401049090,979729001,9437184,1966151,327692,1350631552,-2030043007,671089920,16780800,50331904,1800372304,8847360,2621465,131086,1342373888,1851868032,7103843,0,0,-2134376448,603986952,872453632,1224736768,1852138606,50361204,805308160,-16774144,33554687,1699512912,1226863718,1852138606,14964,327736,786472,8388611,8474753,369099520,201337856,16776960,-2108685824,1936877894,1766596724,3827054,335558656,201336832,-2147482624,-2125430528,196608,3407909,-65524,1342308352,1734955650,1226863720,1852138606,14964,2293816,786472,8388613,8474753,134244608,234891264,16777472,-2142240000,27471,1769577,917544,2,1132482563,1701015137,108,0,-1865940992,1845514246,704701440,1342177280,543516513,1684104520,83915365,1275070208,-16774144,33554687,1766097488,1851880563,1713399139,544042866,980447060,1342177312,503317760,83889152,-2130673664,33104,327813,786522,131078,1350586371,1953393010,544108320,1936877894,1632641140,25959,1441804,917568,3,1233145859,1919251310,1632641140,589325671,5767168,1966102,262158,1342373888,1701593984,29281,1441922,917589,65537,1384140803,1920300133,1869881454,1668236320,1852140917,116]},{"sector":15,"data":[-1865940992,1845514246,704701440,1342177280,543516513,1953460038,83915365,1476396800,-16774144,33554687,1766097488,1851880563,1713399139,544042866,1953787714,540700015,5898240,1966085,327692,1350631552,-2063597439,1509950720,100666368,50332160,1917878352,544501353,1176530543,1953722985,1734430752,201326693,1073747456,50335232,50331648,1850310736,1953654131,1734430752,2302053,369121280,234888704,1024,-2142240000,1634036803,-2113929102,1426068992,16780800,50331904,1699905616,1852994932,544175136,1969450820,1953391981,0,-2134376448,687878687,1627448832,1409286144,7561825,458755,786472,65535,1350717442,1953067887,1936617321,50331706,671099392,-16774144,33554687,1867547216,1769236851,980643439,196608,2621462,-65524,1342308352,1667581058,1818324329,50331706,671103232,-16774144,33554687,1698988624,1634560355,14956,327725,786462,8388612,8474755,335557376,201331200,33558528,-2142240000,1258291246,503317760,83889152,-2097119232,33104,1310801,786450,131089,780161027,6881280,1966085,393228,1350762624,1862271105,301995008,301992960,50332160,3047504,83920640,201334272,-2147481856,-2125430016,9240576,1179668,1245196,1342373890,11904,327845,786462,8388616,8474755,335588096,201331200,33559552,-2142240000,-1023410130,503317760]},{"sector":16,"data":[150998016,-2097119232,33104,1310921,786450,131093,780161027,2949120,1966120,655372,1350762624,855638145,302003968,369101824,50332160,3047504,671107840,201334272,-2147480832,-2125430016,5308416,1179703,1507340,1342373890,11904,2621545,786462,8388620,8474755,922775296,201331200,33560576,-2142240000,-2030043090,503326720,218106880,-2097119232,33104,3604621,786450,131097,780161027,10813440,1966120,917516,1350762624,-1426063231,302003968,436210688,50332160,3047504,671138560,201334272,-2147479808,-2125430016,13172736,1179703,1769484,1342373890,11904,4915220,917554,65537,1333809155,1509949547,838880000,33558016,50331648,1631813712,1818583918,10485760,3276875,196622,1342373888,1701593984,1092645473,27756,0,0,0,-2143289344,671095309,1342223360,0,458757,786520,65535,1401049090,1953653108,1734430752,1968054373,1919246957,1950425203,1593835578,503317760,50334720,-2130673664,33104,2162693,786472,65535,1300385794,1768387169,3830638,805309440,201331712,16776960,-2108685824,1952867660,587202618,503328256,67111936,-2130673664,33104,3145813,786462,65535,1384271874,1952999273,1962934330,503328256,83889152,-2130673664,33104,4259852,786452,65535,1417826306]},{"sector":17,"data":[3829871,1056973568,201334272,-2147482112,-2125430528,5570560,1966145,-65524,1342308352,1953448578,980250484,7667712,1966143,458764,1350631552,-2030043007,671089920,16780800,50331904,1800372304,8847360,2621463,131086,1342373888,1851868032,7103843,0,0,-2134900736,335557131,1090579200,1459617792,1702127986,83887360,0,67108608,-2108686336,8324095,327710,786632,65535,1132613634,1701999221,1881175150,1953393010,1663070821,1869508193,1919950964,544501353,1937012079,543515753,1936025716,1634541669,1852401522,503316595,335548672,-16774144,33554687,1699512912,3830886,285228032,201336832,768,-2108685824,8519680,1572881,-65524,1342308352,1734955650,3830888,285255680,201336832,1024,-2108685824,1966080,1048605,-65524,1342308352,1886344322,1006633018,671096064,83889152,33554432,33360,1900674,786460,65535,1115836418,1869902959,14957,1900712,786472,6,8540162,738222336,234891264,16777472,-2142240512,27471,0,1851065600,119566180,1953064005,174550633,1836216134,1769239649,1409705838,1852403833,1968310375,544367980,1376349775,1919249525,1717980960,1868710152,774796405,46,1230133001,1210991956,1125142604,1735287144,1699946597,1952671084,175009641,1851877443,1092642151,1879338092,6645601]}],[{"sector":1,"data":[67108864,544108320,1376845824,1634496613,1159751011,1953720696,543649385,1749229575,779317857,1634030348,1768448882,774793070,46,0,0,0,1634030352,543712114,1886220131,1702126956,1699943982,1751347809,2019914784,1869488244,1868963956,778333813,544165397,1851877475,544433511,1701995895,1684106528,1393569381,1668440421,1633886312,1818583918,3040357,0,0,0,0,1684291857,1852794400,1869881460,1936288800,1396391796,1852404340,1936269415,1869575200,1852795936,538979943,1668248144,543450469,1752459639,1701344288,1919510048,840987763,1663055157,1634885992,1919251555,16243,0,0,0,0,0,1310392320,1629516911,1818326560,1461740649,1702127986,1668244512,1852140917,1309486708,1970479215,1881172067,778397537,1953451539,1981833504,1684630625,1836412448,779248994,1852786213,1769152628,544433530,1953723757,543515168,2004116834,544105829,1851858996,842080356,1311911479,1700949365,1970086002,1646294131,543236197,1819240567,1970151525,1919246957,1952801312,1852138871,1629499680,857760878,926299954,1867388974,543236212,1768710518,1701650532,1920299873,1852140901,1294282356,1970495845,1701668210,1830843502,544502645,1814062434,1701278305,1752440946,2048945761,779055717,1918979345,544106855,544173940,1735549292,1310010981,1629516911,1818326560,1713398889,1852140649]},{"sector":2,"data":[778399073,1919895063,1953784173,543649385,544173940,1886220131,779642220,0,1851867938,544501614,1702260589,2019914784,1869881460,1634235424,1869619316,1769236851,808349295,543516756,1886152040,1818846752,1381441637,776295497,542133320,1763734377,1919902574,1952671090,544370464,1936943469,778530409,1936278584,1936269419,1819633184,538979948,1634036816,1931502963,543520353,1969450852,1953391981,544108320,1768169569,1919247974,544501349,1802725732,1850291758,1717990771,1701405545,1830843502,1919905125,1869881465,1885696544,1852401505,795178081,1852404336,1752440948,1679848297,1836409711,779382373,1766078976,1763732339,1920409715,543519849,1953460848,1702126437,538979940,1634036816,1914725747,1987013989,1920409701,543519849,1953460848,544498533,778199412,1936278581,1768169579,1952671090,544830063,1713402729,778857589,1817190432,1702060389,1702065440,1679843616,1701209705,1953391986,1936286752,1126641259,1651534188,1685217647,1869575200,1734959648,1919903264,1635148064,1650551913,1830839660,1919905125,1343041145,1953393010,1696625253,1919906418,1851867925,544501614,1684957542,1668244512,1852140917,539242100,544432488,1851877475,778331495,1632837664,1663067510,1701999221,1663071342,1735287144,524252005,544501582,1970237029,1830840423,1919905125,1869881465,1853190688,1769101088,422471028,1701996868,1919906915,1868832889,1847620453,1696625775,1953720696]},{"sector":3,"data":[1867391790,1852121204,1751610735,1936286752,1886593131,543515489,1914728308,1461743221,1702127986,538973230,1668507972,543453793,1885957187,1918988130,1175863140,543517801,1847620457,1629516911,1818845558,1701601889,46,0,0,0,1634030132,1852779876,1713404268,543517801,1953723757,543515168,1702257011,1853169764,544367972,1768169569,1919247974,544501349,1701667182,1631793966,1953459822,1853190688,1769101088,539911540,1634620704,543517794,1663070068,1952540018,1702109285,1919905901,544830049,1701603686,1851068206,1701601889,544175136,1852404336,1851069044,1701601889,544175136,1819305330,543515489,1920091439,1998615151,1701603688,1769107488,1852404846,1768956007,1920300131,538979941,1952672080,543519349,1869506409,778331506,1936607535,1768318581,1852139875,1768169588,1931504499,1701011824,544175136,1852404336,1752440948,1679848297,1836409711,779382373,0,0,0,0,0,1936278547,1919230059,544370546,1713401455,778398825,1867260672,1852776567,1835363616,779711087,1632837664,2032166262,544372079,1969450852,1953391981,1699948334,1869181811,1869881454,1869357167,539912046,1986089760,1869488229,1948265591,544105832,1953068401,1277952046,1864398703,1701650542,2037542765,1344282670,1935762796,1818435685,543519599,1629515361,1768714352,1769234787,3042927]},{"sector":4,"data":[302018817,7471376,1929449505,17834752,272629876,1090548993,7733520,1996558402,17842944,273219704,1241545089,16,578142219,-1577130775,378209112,1183384410,-531199522,-1996268383,1956764230,-2142895869,-370784513,922745964,62391976,-1070903296,-1924116400,385837702,44210768,1183383552,2109737942,-75962109,-9402741,-9664967,-2037708163,-2043019410,276627306,1342177720,16777114,2013724416,-71374578,-9257341,-14912512,-1207523274,-1706033151,65535,1342177720,617370,1921435392,-1593835265,1178144376,-15042566,1996425334,-596181036,-9795955,134322768,-1073020928,988349301,142016510,-1804545,-2037520778,-1705967766,2086,58048523,-1577180951,1178144376,-385648942,1996488479,-1569259768,-1918077185,1358916230,16777114,1958742784,-16389885,-2080507671,1946158718,-834207986,956435617,58576454,-2080699159,1946158718,171868938,57933826,-1191316247,1861681174,-1947170040,51323422,113673015,1963066614,-864124079,-1959365632,529263198,-1949532533,956664637,-1960413945,126610014,1342178309,-1949540725,263431,440400,-1947574645,1345320735,16777114,1975520000,112645,-1070923029,-788528859,-2146661408,-1056178719,2122515593,141820108,-1697876225,2268,13663875,-6683275,-16776961,-157621130,-2097151992,1946158718,1753663327,-2097151745,1946211454,-730398968,591002,-1568767232,-16223232,1687855734,-2097151994,134718,922686581]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]]]
      • 1981-04-24.json
        [53,55,48,48,48,53,49,32,67,79,80,82,46,32,73,66,77,32,49,57,56,49,216,224,237,225,185,0,64,252,139,217,184,255,255,186,85,
        170,43,255,243,170,79,253,139,247,139,203,172,50,196,117,37,228,98,36,192,176,0,117,29,128,252,0,116,3,138,194,170,226,233,
        128,252,0,116,14,138,224,134,242,252,71,116,216,79,186,1,0,235,208,195,250,180,213,158,115,78,117,76,123,74,121,72,159,177,
        5,210,236,115,65,176,64,208,224,113,59,50,228,158,114,54,116,52,120,50,122,48,159,177,5,210,236,114,41,208,228,112,37,184,
        255,255,249,142,216,140,219,142,195,140,193,142,209,140,210,139,226,139,236,139,245,139,254,115,7,51,199,117,7,248,115,227,
        11,199,116,1,244,176,0,230,160,230,131,176,153,230,99,176,252,230,97,42,192,186,216,3,238,254,192,186,184,3,238,184,0,240,
        142,208,187,0,224,188,22,224,233,51,1,117,213,176,4,230,8,176,84,230,67,43,201,138,217,138,193,230,65,176,64,230,67,228,65,
        10,216,128,251,255,116,4,226,241,235,180,138,195,43,201,230,65,176,64,230,67,228,65,34,216,116,4,226,244,235,160,176,84,230,
        67,176,18,230,65,230,13,176,255,138,216,138,248,185,8,0,186,0,0,238,238,184,1,1,236,138,224,236,59,216,116,3,233,122,255,
        66,226,237,246,208,116,223,176,255,230,1,230,1,176,88,230,11,176,0,230,8,230,10,176,65,230,11,176,66,230,11,176,67,230,11,
        184,64,0,142,216,139,30,114,0,43,192,142,192,142,216,43,255,228,96,36,12,4,4,177,12,211,224,139,200,138,224,252,170,226,253,
        228,98,36,15,116,24,186,0,16,138,224,176,0,142,194,185,0,128,43,255,243,170,129,194,0,8,254,204,117,239,176,19,230,32,176,
        8,230,33,176,9,230,33,43,192,142,192,190,64,0,142,222,137,30,114,0,129,62,114,0,52,18,116,56,142,216,188,240,63,142,208,139,
        248,187,36,0,199,7,182,226,67,67,140,15,232,183,4,128,251,101,117,14,178,255,232,186,4,138,195,170,254,202,117,246,205,62,
        14,23,250,188,24,224,233,45,254,116,3,233,189,254,184,48,0,142,208,188,0,1,38,199,6,8,0,195,226,38,199,6,10,0,0,240,233,42,
        0,185,0,32,50,192,46,2,7,67,226,250,10,192,195,80,65,82,73,84,89,32,67,72,69,67,75,32,50,80,65,82,73,84,89,32,67,72,69,67,
        75,32,49,43,192,142,192,38,199,6,20,0,84,255,38,199,6,22,0,0,240,250,176,0,230,33,228,33,10,192,117,43,176,255,230,33,228,
        33,4,1,117,33,252,185,8,0,191,32,0,184,182,226,171,184,0,240,171,131,195,4,226,243,50,228,251,43,201,226,254,226,254,10,228,
        116,8,186,1,1,232,173,3,250,244,180,0,50,237,176,254,230,33,176,16,230,67,177,22,138,193,230,64,246,196,255,117,4,226,249,
        235,221,177,18,176,255,230,64,180,0,176,254,230,33,246,196,255,117,204,226,249,233,54,0,180,1,80,176,255,230,33,176,32,230,
        32,88,207,80,228,98,168,64,116,8,190,25,226,185,14,0,235,10,168,128,116,16,190,39,226,185,14,0,184,0,0,205,16,232,230,3,250,
        244,88,207,32,50,48,49,252,191,64,0,14,31,190,19,255,185,32,0,243,165,176,255,230,33,176,54,230,67,176,0,230,64,230,64,184,
        64,0,142,216,232,120,3,128,251,170,116,38,176,60,230,97,144,144,228,96,36,255,117,22,254,6,18,0,38,199,6,32,0,178,230,38,
        199,6,34,0,0,240,176,254,230,33,176,204,230,97,178,4,187,0,96,232,200,254,117,7,254,202,117,247,235,7,144,186,1,1,232,222,
        2,228,96,180,0,163,16,0,36,48,117,3,233,152,0,134,224,128,252,48,116,9,254,192,128,252,32,117,2,176,3,80,42,228,205,16,88,
        80,187,0,176,186,184,3,185,0,16,176,1,128,252,48,116,11,187,0,184,186,216,3,185,0,64,254,200,238,142,195,184,64,0,142,216,
        129,62,114,0,52,18,116,13,142,219,232,118,252,116,6,186,2,1,232,129,2,88,80,180,0,205,16,184,32,112,43,255,185,40,0,252,243,
        171,88,80,128,252,48,186,186,3,116,3,186,218,3,180,8,43,201,236,34,196,117,4,226,249,235,19,43,201,236,34,196,116,4,226,249,
        235,8,177,3,210,236,117,228,235,6,186,2,1,232,61,2,88,180,0,205,16,184,64,0,142,216,138,38,16,0,128,228,12,176,4,246,228,
        4,16,139,208,139,216,228,98,36,15,180,32,246,228,163,21,0,131,251,64,116,2,43,192,3,195,163,19,0,129,62,114,0,52,18,116,77,
        187,0,4,185,16,0,59,209,118,70,142,219,142,195,131,193,16,129,195,0,4,81,83,82,232,210,251,90,91,89,116,230,140,218,138,232,
        138,198,177,4,210,232,232,62,0,138,198,36,15,232,55,0,138,197,177,4,210,232,232,46,0,138,197,36,15,232,39,0,190,232,226,185,
        4,0,232,80,2,233,74,0,184,64,0,142,216,139,22,21,0,11,210,116,240,185,0,0,129,251,0,16,119,231,187,0,16,235,155,30,14,31,
        187,183,228,215,180,14,183,0,205,16,31,195,32,51,48,49,49,51,49,54,48,49,188,3,120,3,120,2,48,49,50,51,52,53,54,55,56,57,
        65,66,67,68,69,70,184,64,0,142,216,128,62,18,0,1,116,57,232,178,1,227,43,176,77,230,97,128,251,170,117,34,176,204,230,97,
        176,76,230,97,43,201,226,254,228,96,60,0,116,25,138,232,177,4,210,232,232,156,255,138,197,36,15,232,149,255,190,167,228,185,
        4,0,232,190,1,43,192,142,192,185,48,0,14,31,190,243,254,191,32,0,252,243,165,184,64,0,142,216,176,77,230,97,176,255,230,33,
        176,182,230,67,184,211,4,230,66,138,196,230,66,228,98,36,16,162,107,0,232,62,20,232,59,20,227,12,129,251,64,5,115,6,129,251,
        16,4,115,9,190,171,228,185,3,0,232,110,1,176,252,230,33,160,16,0,168,1,117,3,233,185,0,176,188,230,33,180,0,205,19,246,196,
        255,117,32,186,242,3,176,28,238,43,201,226,254,226,254,51,210,181,1,136,22,62,0,232,243,8,114,7,181,34,232,236,8,115,9,190,
        174,228,185,3,0,232,42,1,176,12,186,242,3,238,199,6,26,0,30,0,199,6,28,0,30,0,189,177,228,190,0,0,46,139,86,0,176,170,238,
        42,192,236,60,170,117,6,137,148,8,0,70,70,69,69,129,253,183,228,117,228,187,0,0,186,250,3,236,168,248,117,8,199,135,0,0,248,
        3,67,67,186,250,2,236,168,248,117,8,199,135,0,0,248,2,67,67,139,198,177,3,210,200,10,195,162,17,0,186,1,2,236,168,15,117,
        5,128,14,17,0,16,176,128,230,160,128,62,18,0,1,116,6,186,1,0,232,16,0,233,207,0,128,62,18,0,1,117,3,233,46,250,233,118,255,
        156,250,30,184,64,0,142,216,10,246,116,24,179,6,232,37,0,226,254,254,206,117,245,128,62,18,0,1,117,6,176,205,230,97,235,232,
        179,1,232,13,0,226,254,254,202,117,245,226,254,226,254,31,157,195,176,182,230,67,184,51,5,230,66,138,196,230,66,228,97,138,
        224,12,3,230,97,43,201,226,254,254,203,117,250,138,196,230,97,195,176,12,230,97,185,86,41,226,254,176,204,230,97,176,76,230,
        97,176,253,230,33,251,180,0,43,201,246,196,255,117,2,226,249,228,96,138,216,176,204,230,97,195,251,81,80,228,97,36,191,230,
        97,43,201,226,254,12,64,230,97,176,32,230,32,88,89,207,184,64,0,142,216,128,62,18,0,1,117,5,182,1,233,85,255,46,138,4,70,
        183,0,180,14,205,16,226,244,184,13,14,205,16,184,10,14,205,16,195,251,184,64,0,142,216,161,16,0,168,1,116,35,185,4,0,81,180,
        0,205,19,114,20,180,2,187,0,0,142,195,187,0,124,186,0,0,185,1,0,176,1,205,19,89,115,4,226,224,205,24,234,0,124,0,0,23,4,0,
        3,128,1,192,0,96,0,48,0,24,0,12,0,251,30,82,86,87,81,139,242,209,230,186,64,0,142,218,139,148,0,0,11,210,116,22,10,228,116,
        24,254,204,116,78,254,204,117,3,233,137,0,254,204,117,3,233,185,0,89,95,94,90,31,207,138,224,131,194,3,176,128,238,138,212,
        208,194,208,194,208,194,208,194,129,226,14,0,191,41,231,3,250,139,148,0,0,66,46,138,69,1,238,74,46,138,5,238,131,194,3,138,
        196,36,31,238,131,234,2,176,0,238,235,121,80,131,194,4,176,3,238,51,201,131,194,2,236,168,32,117,8,226,249,88,128,204,80,
        235,167,43,201,236,168,16,117,8,226,249,88,128,204,128,235,152,74,43,201,236,168,32,117,8,226,249,88,128,204,128,235,136,
        131,234,5,89,138,193,238,233,126,255,128,38,113,0,127,131,194,4,176,1,238,131,194,2,43,201,236,168,32,117,7,226,249,180,128,
        233,98,255,74,236,168,1,117,9,246,6,113,0,128,116,244,235,236,36,30,138,224,139,148,0,0,236,233,71,255,139,148,0,0,131,194,
        5,236,138,224,66,236,233,56,255,251,30,83,187,64,0,142,219,10,228,116,11,254,204,116,32,254,204,116,45,91,31,207,251,144,
        250,139,30,26,0,59,30,28,0,116,243,139,7,232,30,0,137,30,26,0,91,31,207,250,139,30,26,0,59,30,28,0,139,7,251,91,31,202,2,
        0,160,23,0,91,31,207,131,195,2,129,251,62,0,117,3,187,30,0,195,82,58,69,70,56,29,42,54,128,64,32,16,8,4,2,1,27,255,0,255,
        255,255,30,255,255,255,255,31,255,127,255,17,23,5,18,20,25,21,9,15,16,27,29,10,255,1,19,4,6,7,8,10,11,12,255,255,255,255,
        28,26,24,3,22,2,14,13,255,255,255,255,255,255,32,255,94,95,96,97,98,99,100,101,102,103,255,255,119,255,132,255,115,255,116,
        255,117,255,118,255,255,27,49,50,51,52,53,54,55,56,57,48,45,61,8,9,113,119,101,114,116,121,117,105,111,112,91,93,13,255,97,
        115,100,102,103,104,106,107,108,59,39,96,255,92,122,120,99,118,98,110,109,44,46,47,255,42,255,32,255,27,33,64,35,36,37,94,
        38,42,40,41,95,43,8,0,81,87,69,82,84,89,85,73,79,80,123,125,13,255,65,83,68,70,71,72,74,75,76,58,34,126,255,124,90,88,67,
        86,66,78,77,60,62,63,255,0,255,32,255,84,85,86,87,88,89,90,91,92,93,104,105,106,107,108,109,110,111,112,113,55,56,57,45,52,
        53,54,43,49,50,51,48,46,71,72,73,255,75,255,77,255,79,80,81,82,83,251,80,83,81,82,86,87,30,6,252,184,64,0,142,216,228,96,
        80,228,97,138,224,12,128,230,97,134,224,230,97,88,138,224,60,255,117,3,233,117,2,36,127,14,7,191,130,232,185,8,0,242,174,
        138,196,116,3,233,136,0,129,239,131,232,46,138,165,138,232,168,128,117,84,128,252,16,115,7,8,38,23,0,233,131,0,246,6,23,0,
        4,117,104,60,82,117,37,246,6,23,0,8,116,3,235,91,144,246,6,23,0,32,117,13,246,6,23,0,3,116,13,184,48,82,233,216,1,246,6,23,
        0,3,116,243,132,38,24,0,117,77,8,38,24,0,48,38,23,0,60,82,117,65,184,0,82,233,185,1,128,252,16,115,26,246,212,32,38,23,0,
        60,184,117,44,160,25,0,180,0,136,38,25,0,60,0,116,31,233,163,1,246,212,32,38,24,0,235,20,60,128,115,16,246,6,24,0,8,116,23,
        60,69,116,5,128,38,24,0,247,250,176,32,230,32,7,31,95,94,90,89,91,88,207,246,6,23,0,8,117,3,233,143,0,246,6,23,0,4,116,49,
        60,83,117,45,199,6,114,0,52,18,233,209,245,82,79,80,81,75,76,77,71,72,73,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,
        36,37,38,44,45,46,47,48,49,50,60,57,117,5,176,32,233,37,1,191,138,234,185,10,0,242,174,117,18,129,239,139,234,160,25,0,180,
        10,246,228,3,199,162,25,0,235,139,198,6,25,0,0,185,26,0,242,174,117,5,176,0,233,248,0,60,2,114,12,60,14,115,8,128,196,118,
        176,0,233,232,0,60,59,115,3,233,99,255,60,71,115,249,187,99,233,233,37,1,246,6,23,0,4,116,91,60,70,117,24,187,30,0,137,30,
        26,0,137,30,28,0,198,6,113,0,128,205,27,184,0,0,233,180,0,60,69,117,33,128,14,24,0,8,176,32,230,32,128,62,73,0,7,116,7,186,
        216,3,160,101,0,238,246,6,24,0,8,117,249,233,22,255,60,55,117,6,184,0,114,233,133,0,187,146,232,60,59,115,3,235,120,144,187,
        204,232,233,195,0,60,71,115,45,246,6,23,0,3,116,91,60,15,117,6,184,0,15,235,97,144,60,55,117,9,176,32,230,32,205,5,233,218,
        254,60,59,114,6,187,89,233,233,151,0,187,31,233,235,64,246,6,23,0,32,117,32,246,6,23,0,3,117,32,60,74,116,11,60,78,116,12,
        44,71,187,122,233,235,119,184,45,74,235,34,184,43,78,235,29,246,6,23,0,3,117,224,44,70,187,109,233,235,11,60,59,114,4,176,
        0,235,7,187,229,232,254,200,46,215,60,255,116,31,128,252,255,116,26,246,6,23,0,64,116,32,246,6,23,0,3,116,15,60,65,114,21,
        60,90,119,17,4,32,235,13,233,92,254,60,97,114,6,60,122,119,2,44,32,139,30,28,0,139,243,232,96,252,59,30,26,0,116,9,137,4,
        137,30,28,0,233,58,254,232,13,0,233,52,254,44,59,46,215,138,224,176,0,235,168,80,83,81,187,192,0,228,97,80,36,252,230,97,
        185,72,0,226,254,12,2,230,97,185,72,0,226,254,75,117,235,88,230,97,89,91,88,195,251,83,81,30,86,87,85,82,139,236,190,64,0,
        142,222,232,28,0,187,4,0,232,255,1,136,38,64,0,138,38,65,0,128,252,1,245,90,93,95,94,31,89,91,202,2,0,138,240,128,38,63,0,
        127,10,228,116,39,254,204,116,116,198,6,65,0,0,128,250,4,115,19,254,204,116,106,254,204,117,3,233,150,0,254,204,116,104,254,
        204,116,104,198,6,65,0,1,195,186,242,3,250,160,63,0,177,4,210,224,168,32,117,12,168,64,117,6,168,128,116,6,254,192,254,192,
        254,192,12,8,238,198,6,62,0,0,198,6,65,0,0,12,4,238,251,232,40,2,160,66,0,60,192,116,7,128,14,65,0,32,235,17,180,3,232,71,
        1,187,1,0,232,109,1,187,3,0,232,103,1,195,160,65,0,195,176,70,232,185,1,180,102,235,54,176,66,235,245,128,14,63,0,128,176,
        74,232,167,1,180,77,235,36,187,7,0,232,65,1,187,9,0,232,59,1,187,15,0,232,53,1,187,17,0,233,171,0,128,14,63,0,128,176,74,
        232,129,1,180,69,115,8,198,6,65,0,9,176,0,195,80,81,138,202,176,1,210,224,250,198,6,64,0,255,132,6,63,0,117,49,128,38,63,
        0,240,8,6,63,0,251,176,16,210,224,10,194,12,12,82,186,242,3,238,90,246,6,63,0,128,116,18,187,20,0,232,224,0,10,228,116,8,
        43,201,226,254,254,204,235,246,251,89,232,224,0,88,138,252,182,0,114,75,190,243,237,144,86,232,148,0,138,102,1,208,228,208,
        228,128,228,4,10,226,232,133,0,128,255,77,117,3,233,98,255,138,229,232,120,0,138,102,1,232,114,0,138,225,232,109,0,187,7,
        0,232,147,0,187,9,0,232,141,0,187,11,0,232,135,0,187,13,0,232,129,0,94,232,64,1,114,69,232,115,1,114,63,252,190,66,0,172,
        36,192,116,59,60,64,117,41,172,208,224,180,4,114,36,208,224,208,224,180,16,114,28,208,224,180,8,114,22,208,224,208,224,180,
        4,114,14,208,224,180,3,114,8,208,224,180,2,114,2,180,32,8,38,65,0,232,119,1,195,232,46,1,195,232,111,1,50,228,195,82,81,186,
        244,3,51,201,236,168,64,116,12,226,249,128,14,65,0,128,89,90,88,249,195,51,201,236,168,128,117,4,226,249,235,235,138,196,
        186,245,3,238,89,90,195,30,43,192,142,216,197,54,120,0,209,235,138,32,31,114,196,195,176,1,81,138,202,210,192,89,132,6,62,
        0,117,19,8,6,62,0,180,7,232,172,255,138,226,232,167,255,232,114,0,114,41,180,15,232,157,255,138,226,232,152,255,138,229,232,
        147,255,232,94,0,156,187,18,0,232,181,255,81,185,38,2,10,228,116,6,226,254,254,204,235,243,89,157,195,81,230,12,230,11,140,
        192,177,4,211,192,138,232,36,240,3,195,115,2,254,197,80,230,4,138,196,230,4,138,197,36,15,230,129,138,230,42,192,209,232,
        80,187,6,0,232,117,255,138,204,88,211,224,72,80,230,5,138,196,230,5,89,88,3,193,89,176,2,230,10,195,232,30,0,114,20,180,8,
        232,40,255,232,76,0,114,10,160,66,0,36,96,60,96,116,2,248,195,128,14,65,0,64,249,195,251,83,81,179,2,51,201,246,6,62,0,128,
        117,12,226,247,254,203,117,243,128,14,65,0,128,249,156,128,38,62,0,127,157,89,91,195,251,30,80,184,64,0,142,216,128,14,62,
        0,128,176,32,230,32,88,31,207,252,191,66,0,81,82,83,179,7,51,201,186,244,3,236,168,128,117,12,226,249,128,14,65,0,128,249,
        91,90,89,195,236,168,64,117,7,128,14,65,0,32,235,239,66,236,136,5,71,185,10,0,226,254,74,236,168,16,116,6,254,203,117,202,
        235,227,91,90,89,195,160,69,0,58,197,160,71,0,116,10,187,8,0,232,176,254,138,196,254,192,42,193,195,207,2,37,2,8,42,255,80,
        246,25,4,251,30,82,86,81,83,190,64,0,142,222,139,242,209,230,139,148,8,0,11,210,116,12,10,228,116,14,254,204,116,66,254,204,
        116,42,91,89,94,90,31,207,80,179,10,51,201,238,66,236,138,224,168,128,117,14,226,247,254,203,117,243,128,204,1,128,228,249,
        235,20,176,13,66,238,176,12,238,88,80,139,148,8,0,66,236,138,224,128,228,248,90,138,194,128,244,72,235,194,80,131,194,2,176,
        8,238,184,232,3,72,117,253,176,12,238,235,219,252,240,207,241,240,241,26,242,169,247,48,242,156,242,65,243,125,243,195,243,
        246,243,84,242,56,244,39,244,34,247,122,242,251,252,6,30,82,81,83,86,87,80,138,196,50,228,209,224,139,240,61,32,0,114,4,88,
        233,71,1,184,64,0,142,216,184,0,184,139,62,16,0,129,231,48,0,131,255,48,117,3,184,0,176,142,192,88,138,38,73,0,46,255,164,
        69,240,56,40,45,10,31,6,25,28,2,7,6,7,0,0,0,0,113,80,90,10,31,6,25,28,2,7,6,7,0,0,0,0,56,40,45,10,127,6,100,112,2,1,6,7,0,
        0,0,0,97,80,82,15,25,6,25,25,2,13,11,12,0,0,0,0,0,8,0,16,0,64,0,64,40,40,80,80,40,40,80,80,44,40,45,41,42,46,30,41,186,212,
        3,179,0,131,255,48,117,7,176,7,186,180,3,254,195,138,224,162,73,0,137,22,99,0,30,80,82,131,194,4,138,195,238,90,43,192,142,
        216,197,30,116,0,88,185,16,0,128,252,2,114,16,3,217,128,252,4,114,9,3,217,128,252,7,114,2,3,217,80,50,228,138,196,238,66,
        254,196,138,7,238,67,74,226,243,88,31,51,255,137,62,78,0,198,6,98,0,0,185,0,32,128,252,4,114,12,128,252,7,116,4,51,192,235,
        6,185,0,8,184,32,7,243,171,199,6,96,0,103,0,160,73,0,50,228,139,240,139,22,99,0,131,194,4,46,138,132,244,240,238,162,101,
        0,46,138,132,236,240,50,228,163,74,0,129,230,14,0,46,139,140,228,240,137,14,76,0,185,8,0,191,80,0,30,7,51,192,243,171,66,
        176,48,128,62,73,0,6,117,2,176,63,238,162,102,0,95,94,91,89,90,31,7,207,180,10,137,14,96,0,232,2,0,235,237,139,22,99,0,138,
        196,238,66,138,197,238,74,138,196,254,192,238,66,138,193,238,195,138,207,50,237,209,225,139,241,137,148,80,0,56,62,98,0,117,
        5,139,194,232,2,0,235,190,232,127,0,139,200,3,14,78,0,209,249,180,14,232,193,255,195,138,223,50,255,209,227,139,151,80,0,
        139,14,96,0,95,94,91,88,88,31,7,207,162,98,0,139,14,76,0,152,80,247,225,163,78,0,139,200,209,249,180,12,232,147,255,91,209,
        227,139,135,80,0,232,184,255,233,115,255,139,22,99,0,131,194,5,160,102,0,10,255,117,14,36,224,128,227,31,10,195,238,162,102,
        0,233,87,255,36,223,208,235,115,243,12,32,235,239,138,38,74,0,160,73,0,138,62,98,0,95,94,89,233,63,255,83,139,216,138,196,
        246,38,74,0,50,255,3,195,209,224,91,195,138,216,128,252,4,114,8,128,252,7,116,3,233,243,1,83,139,193,232,57,0,116,51,3,240,
        138,230,42,227,232,117,0,3,245,3,253,254,204,117,245,88,176,32,232,112,0,3,253,254,203,117,247,184,64,0,142,216,128,62,73,
        0,7,116,7,160,101,0,186,216,3,238,233,225,254,138,222,235,218,128,62,73,0,2,114,25,128,62,73,0,3,119,18,82,186,218,3,80,236,
        168,8,116,251,176,37,186,216,3,238,88,90,232,126,255,3,6,78,0,139,248,139,240,43,209,254,198,254,194,50,237,139,46,74,0,3,
        237,138,195,246,38,74,0,3,192,6,31,128,251,0,195,138,202,86,87,243,165,95,94,195,138,202,87,243,171,95,195,253,138,216,128,
        252,4,114,8,128,252,7,116,3,233,166,1,83,139,194,232,147,255,116,32,43,240,138,230,42,227,232,207,255,43,245,43,253,254,204,
        117,245,88,176,32,232,202,255,43,253,254,203,117,247,233,87,255,138,222,235,237,128,252,4,114,8,128,252,7,116,3,233,169,2,
        232,26,0,139,243,139,22,99,0,131,194,6,6,31,236,168,1,117,251,250,236,168,1,116,251,173,233,32,254,138,207,50,237,139,241,
        209,230,139,132,80,0,51,219,227,6,3,30,76,0,226,250,232,203,254,3,216,195,128,252,4,114,8,128,252,7,116,3,233,177,1,138,227,
        80,81,232,208,255,139,251,89,91,139,22,99,0,131,194,6,236,168,1,117,251,250,236,168,1,116,251,139,195,171,251,226,232,233,
        209,253,128,252,4,114,8,128,252,7,116,3,233,126,1,80,81,232,159,255,139,251,89,91,139,22,99,0,131,194,6,236,168,1,117,251,
        250,236,168,1,116,251,138,195,170,71,226,232,233,160,253,232,49,0,38,138,4,34,196,210,224,138,206,210,192,233,143,253,80,
        80,232,30,0,210,232,34,196,38,138,12,91,246,195,128,117,13,246,212,34,204,10,193,38,136,4,88,233,112,253,50,193,235,245,83,
        80,176,40,82,128,226,254,246,226,90,246,194,1,116,3,5,0,32,139,240,88,139,209,187,192,2,185,2,3,128,62,73,0,6,114,6,187,128,
        1,185,3,7,34,234,211,234,3,242,138,247,42,201,208,200,2,205,254,207,117,248,138,227,210,236,91,195,138,216,139,193,232,106,
        2,139,248,43,209,129,194,1,1,208,230,208,230,128,62,73,0,6,115,4,208,226,209,231,6,31,42,237,208,227,208,227,116,45,138,195,
        180,80,246,228,139,247,3,240,138,230,42,227,232,128,0,129,238,176,31,129,239,176,31,254,204,117,241,138,199,232,136,0,129,
        239,176,31,254,203,117,245,233,212,252,138,222,235,236,253,138,216,139,194,232,16,2,139,248,43,209,129,194,1,1,208,230,208,
        230,128,62,73,0,6,115,5,208,226,209,231,71,6,31,42,237,129,199,240,0,208,227,208,227,116,46,138,195,180,80,246,228,139,247,
        43,240,138,230,42,227,232,33,0,129,238,80,32,129,239,80,32,254,204,117,241,138,199,232,41,0,129,239,80,32,254,203,117,245,
        252,233,116,252,138,222,235,235,138,202,86,87,243,164,95,94,129,198,0,32,129,199,0,32,86,87,138,202,243,164,95,94,195,138,
        202,87,243,170,95,129,199,0,32,87,138,202,243,170,95,195,180,0,80,232,133,1,139,248,88,60,128,115,6,190,110,250,14,235,15,
        44,128,30,43,246,142,222,197,54,124,0,140,218,31,82,209,224,209,224,209,224,3,240,128,62,73,0,6,31,114,44,87,86,182,4,172,
        246,195,128,117,22,170,172,38,136,133,255,31,131,199,79,254,206,117,236,94,95,71,226,227,233,244,251,38,50,5,170,172,38,50,
        133,255,31,235,224,138,211,209,231,232,209,0,87,86,182,4,172,232,222,0,35,195,246,194,128,116,7,38,50,37,38,50,69,1,38,136,
        37,38,136,69,1,172,232,197,0,35,195,246,194,128,116,10,38,50,165,0,32,38,50,133,1,32,38,136,165,0,32,38,136,133,1,32,131,
        199,80,254,206,117,193,94,95,131,199,2,226,182,233,148,251,232,214,0,139,240,131,236,8,139,236,128,62,73,0,6,6,31,114,26,
        182,4,138,4,136,70,0,69,138,132,0,32,136,70,0,69,131,198,80,254,206,117,235,235,23,144,209,230,182,4,232,136,0,129,198,0,
        32,232,129,0,129,238,176,31,254,206,117,238,191,110,250,14,7,131,237,8,139,245,252,176,0,22,31,186,128,0,86,87,185,8,0,243,
        166,95,94,116,30,254,192,131,199,8,74,117,237,60,0,116,18,43,192,142,216,196,62,124,0,140,192,11,199,116,4,176,128,235,210,
        131,196,8,233,16,251,128,227,3,138,195,81,185,3,0,208,224,208,224,10,216,226,248,138,251,89,195,82,81,83,186,0,0,185,1,0,
        139,216,35,217,11,211,209,224,209,225,139,216,35,217,11,211,209,225,115,236,139,194,91,89,90,195,138,36,138,68,1,185,0,192,
        178,0,133,193,248,116,1,249,208,210,209,233,209,233,115,242,136,86,0,69,195,161,80,0,83,139,216,138,196,246,38,74,0,209,224,
        209,224,42,255,3,195,91,195,80,80,180,3,205,16,88,60,8,116,89,60,13,116,94,60,10,116,94,60,7,116,97,138,62,98,0,180,10,185,
        1,0,205,16,254,194,58,22,74,0,117,54,178,0,128,254,24,117,45,180,2,183,0,205,16,160,73,0,60,4,114,6,60,7,183,0,117,6,180,
        8,205,16,138,252,184,1,6,185,0,0,182,24,138,22,74,0,254,202,205,16,88,233,71,250,254,198,180,2,235,244,128,250,0,116,247,
        254,202,235,243,178,0,235,239,128,254,24,117,232,235,185,179,2,232,199,238,235,219,3,3,5,5,3,3,3,4,180,0,139,22,99,0,131,
        194,6,236,168,4,117,120,168,2,116,126,180,16,139,22,99,0,138,196,238,66,236,138,232,74,254,196,138,196,238,66,236,138,229,
        138,30,73,0,42,255,46,138,159,161,247,43,195,43,6,78,0,121,3,184,0,0,177,3,128,62,73,0,4,114,42,128,62,73,0,7,116,35,178,
        40,246,242,138,232,2,237,138,220,42,255,128,62,73,0,6,117,4,177,4,208,228,211,227,138,212,138,240,208,238,208,238,235,18,
        246,54,74,0,138,240,138,212,210,224,138,232,138,220,50,255,211,227,180,1,82,139,22,99,0,131,194,7,238,90,95,94,31,31,31,31,
        7,207,251,30,184,64,0,142,216,161,19,0,31,207,251,30,184,64,0,142,216,161,16,0,31,207,251,30,80,184,64,0,142,216,128,38,113,
        0,127,88,232,4,0,31,202,2,0,10,228,116,19,254,204,116,24,254,204,116,26,254,204,117,3,233,39,1,180,128,249,195,228,97,36,
        247,230,97,42,228,195,228,97,12,8,235,245,83,81,86,190,7,0,232,194,1,228,98,36,16,162,107,0,186,122,63,246,6,113,0,128,116,
        3,233,138,0,74,117,3,233,132,0,232,198,0,227,235,186,120,3,185,0,2,228,33,12,1,230,33,246,6,113,0,128,117,108,81,232,173,
        0,11,201,89,116,197,59,211,227,4,115,191,226,232,114,230,232,155,0,232,106,0,60,22,117,73,94,89,91,81,199,6,105,0,255,255,
        186,0,1,246,6,113,0,128,117,35,232,79,0,114,30,227,5,38,136,7,67,73,74,127,234,232,64,0,232,61,0,42,228,129,62,105,0,15,29,
        117,6,227,6,235,205,180,1,254,196,90,43,209,80,246,196,3,117,19,232,31,0,235,14,78,116,3,233,98,255,94,89,91,43,210,180,4,
        80,228,33,36,254,230,33,232,66,255,88,128,252,1,245,195,83,81,177,8,81,232,38,0,227,32,83,232,32,0,88,227,25,3,216,129,251,
        240,6,245,159,89,208,213,158,232,217,0,254,201,117,224,138,197,248,89,91,195,89,249,235,249,185,100,0,138,38,107,0,228,98,
        36,16,58,196,225,248,162,107,0,176,0,230,67,228,64,138,224,228,64,134,196,139,30,103,0,43,216,163,103,0,195,83,81,228,97,
        36,253,12,1,230,97,176,182,230,67,232,166,0,184,160,4,232,133,0,185,0,8,249,232,104,0,226,250,248,232,98,0,89,91,176,22,232,
        68,0,199,6,105,0,255,255,186,0,1,38,138,7,232,53,0,227,2,67,73,74,127,243,161,105,0,247,208,80,134,224,232,35,0,88,232,31,
        0,11,201,117,215,81,185,32,0,249,232,42,0,226,250,89,176,176,230,67,184,1,0,232,51,0,232,122,254,43,192,195,81,80,138,232,
        177,8,208,213,156,232,11,0,157,232,36,0,254,201,117,242,88,89,195,184,160,4,114,3,184,80,2,80,228,98,36,32,116,250,228,98,
        36,32,117,250,88,230,66,138,196,230,66,195,161,105,0,209,216,209,208,248,113,4,53,16,8,249,209,208,163,105,0,195,232,35,254,
        179,66,185,0,7,226,254,254,203,117,247,195,0,0,0,0,0,0,0,0,126,129,165,129,189,153,129,126,126,255,219,255,195,231,255,126,
        108,254,254,254,124,56,16,0,16,56,124,254,124,56,16,8,56,124,56,254,254,124,56,124,16,16,56,124,254,124,56,124,0,0,24,60,
        60,24,0,0,255,255,231,195,195,231,255,255,0,60,102,66,66,102,60,0,255,195,153,189,189,153,195,255,15,7,15,125,204,204,204,
        120,60,102,102,102,60,24,126,24,63,51,63,48,48,112,240,224,127,99,127,99,99,103,230,192,153,90,60,231,231,60,90,153,128,224,
        248,254,248,224,128,0,2,14,62,254,62,14,2,0,24,60,126,24,24,126,60,24,102,102,102,102,102,0,102,0,127,219,219,123,27,27,27,
        0,62,99,56,108,108,56,204,120,0,0,0,0,126,126,126,0,24,60,126,24,126,60,24,255,24,60,126,24,24,24,24,0,24,24,24,24,126,60,
        24,0,0,24,12,254,12,24,0,0,0,48,96,254,96,48,0,0,0,0,192,192,192,254,0,0,0,36,102,255,102,36,0,0,0,24,60,126,255,255,0,0,
        0,255,255,126,60,24,0,0,0,0,0,0,0,0,0,0,48,120,120,48,48,0,48,0,108,108,108,0,0,0,0,0,108,108,254,108,254,108,108,0,48,124,
        192,120,12,248,48,0,0,198,204,24,48,102,198,0,56,108,56,118,220,204,118,0,96,96,192,0,0,0,0,0,24,48,96,96,96,48,24,0,96,48,
        24,24,24,48,96,0,0,102,60,255,60,102,0,0,0,48,48,252,48,48,0,0,0,0,0,0,0,48,48,96,0,0,0,252,0,0,0,0,0,0,0,0,0,48,48,0,6,12,
        24,48,96,192,128,0,124,198,206,222,246,230,124,0,48,112,48,48,48,48,252,0,120,204,12,56,96,204,252,0,120,204,12,56,12,204,
        120,0,28,60,108,204,254,12,30,0,252,192,248,12,12,204,120,0,56,96,192,248,204,204,120,0,252,204,12,24,48,48,48,0,120,204,
        204,120,204,204,120,0,120,204,204,124,12,24,112,0,0,48,48,0,0,48,48,0,0,48,48,0,0,48,48,96,24,48,96,192,96,48,24,0,0,0,252,
        0,0,252,0,0,96,48,24,12,24,48,96,0,120,204,12,24,48,0,48,0,124,198,222,222,222,192,120,0,48,120,204,204,252,204,204,0,252,
        102,102,124,102,102,252,0,60,102,192,192,192,102,60,0,248,108,102,102,102,108,248,0,254,98,104,120,104,98,254,0,254,98,104,
        120,104,96,240,0,60,102,192,192,206,102,62,0,204,204,204,252,204,204,204,0,120,48,48,48,48,48,120,0,30,12,12,12,204,204,120,
        0,230,102,108,120,108,102,230,0,240,96,96,96,98,102,254,0,198,238,254,254,214,198,198,0,198,230,246,222,206,198,198,0,56,
        108,198,198,198,108,56,0,252,102,102,124,96,96,240,0,120,204,204,204,220,120,28,0,252,102,102,124,108,102,230,0,120,204,224,
        112,28,204,120,0,252,180,48,48,48,48,120,0,204,204,204,204,204,204,252,0,204,204,204,204,204,120,48,0,198,198,198,214,254,
        238,198,0,198,198,108,56,56,108,198,0,204,204,204,120,48,48,120,0,254,198,140,24,50,102,254,0,120,96,96,96,96,96,120,0,192,
        96,48,24,12,6,2,0,120,24,24,24,24,24,120,0,16,56,108,198,0,0,0,0,0,0,0,0,0,0,0,255,48,48,24,0,0,0,0,0,0,0,120,12,124,204,
        118,0,224,96,96,124,102,102,220,0,0,0,120,204,192,204,120,0,28,12,12,124,204,204,118,0,0,0,120,204,252,192,120,0,56,108,96,
        240,96,96,240,0,0,0,118,204,204,124,12,248,224,96,108,118,102,102,230,0,48,0,112,48,48,48,120,0,12,0,12,12,12,204,204,120,
        224,96,102,108,120,108,230,0,112,48,48,48,48,48,120,0,0,0,204,254,254,214,198,0,0,0,248,204,204,204,204,0,0,0,120,204,204,
        204,120,0,0,0,220,102,102,124,96,240,0,0,118,204,204,124,12,30,0,0,220,118,102,96,240,0,0,0,124,192,120,12,248,0,16,48,124,
        48,48,52,24,0,0,0,204,204,204,204,118,0,0,0,204,204,204,120,48,0,0,0,198,214,254,254,108,0,0,0,198,108,56,108,198,0,0,0,204,
        204,204,124,12,248,0,0,252,152,48,100,252,0,28,48,48,224,48,48,28,0,24,24,24,0,24,24,24,0,224,48,48,28,48,48,224,0,118,220,
        0,0,0,0,0,0,0,16,56,108,198,198,254,0,251,30,80,184,64,0,142,216,88,10,228,116,7,254,204,116,22,251,31,207,250,160,112,0,
        198,6,112,0,0,139,14,110,0,139,22,108,0,235,234,250,137,22,108,0,137,14,110,0,198,6,112,0,0,235,218,251,30,80,82,184,64,0,
        142,216,255,6,108,0,117,4,255,6,110,0,131,62,110,0,24,117,25,129,62,108,0,176,0,117,17,199,6,110,0,0,0,199,6,108,0,0,0,198,
        6,112,0,1,254,14,64,0,117,11,128,38,63,0,240,176,12,186,242,3,238,205,28,176,32,230,32,90,88,31,207,165,254,0,240,135,233,
        0,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,87,239,0,240,0,0,0,0,101,240,0,240,77,248,0,240,65,248,0,240,89,236,0,240,57,231,0,
        240,89,248,0,240,46,232,0,240,210,239,0,240,0,0,0,246,242,230,0,240,110,254,0,240,83,255,0,240,83,255,0,240,164,240,0,240,
        199,239,0,240,0,0,0,0,207,251,30,80,83,81,82,184,80,0,142,216,128,62,0,0,1,116,95,198,6,0,0,1,180,15,205,16,138,204,181,25,
        232,85,0,81,180,3,205,16,89,82,51,210,180,2,205,16,180,8,205,16,10,192,117,2,176,32,82,51,210,50,228,205,23,90,246,196,37,
        117,33,254,194,58,202,117,223,50,210,138,226,82,232,35,0,90,254,198,58,238,117,208,90,180,2,205,16,198,6,0,0,0,235,10,90,
        180,2,205,16,198,6,0,0,255,90,89,91,88,31,207,51,210,50,228,176,10,205,23,50,228,176,13,205,23,195,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,234,91,224,0,240,48,52,47,50,52,47,56,49,255,255,235] 
        
      • 1982-11-08.json
        [49,53,48,49,53,49,50,32,67,79,80,82,46,32,73,66,77,32,49,57,56,49,215,224,126,225,32,75,66,32,79,75,13,232,19,26,138,251,
        232,14,26,138,235,138,207,252,250,191,0,5,176,253,230,33,176,10,230,32,186,97,0,187,204,76,180,2,138,195,238,138,199,238,
        74,228,32,34,196,116,250,236,170,66,226,238,234,0,5,0,0,255,255,250,180,213,158,115,76,117,74,123,72,121,70,159,177,5,210,
        236,115,63,176,64,208,224,113,57,50,228,158,118,52,120,50,122,48,159,177,5,210,236,114,41,208,228,112,37,184,255,255,249,
        142,216,140,219,142,195,140,193,142,209,140,210,139,226,139,236,139,245,139,254,115,7,51,199,117,7,248,235,227,11,199,116,
        1,244,230,160,230,131,186,216,3,238,254,192,178,184,238,176,137,230,99,176,165,230,97,176,1,230,96,140,200,142,208,142,216,
        252,187,0,224,188,22,224,233,27,24,117,212,176,2,230,96,176,4,230,8,176,84,230,67,138,193,230,65,176,64,230,67,128,251,255,
        116,7,228,65,10,216,226,241,244,138,195,43,201,230,65,176,64,230,67,144,144,228,65,34,216,116,3,226,242,244,176,3,230,96,
        230,13,176,255,138,216,138,248,185,8,0,186,0,0,238,80,238,176,1,236,138,224,236,59,216,116,1,244,66,226,239,254,192,116,225,
        142,219,142,195,176,255,230,1,80,230,1,176,88,230,11,176,0,138,232,230,8,80,230,10,176,18,230,65,176,65,230,11,80,228,8,36,
        16,116,1,244,176,66,230,11,176,67,230,11,186,19,2,176,1,238,139,30,114,4,185,0,32,129,251,52,18,116,22,188,24,224,233,241,
        4,116,18,138,216,176,4,230,96,43,201,226,254,134,216,235,246,43,192,243,171,137,30,114,4,186,0,4,187,16,0,142,194,43,255,
        184,85,170,139,200,38,137,5,176,15,38,139,5,51,193,117,17,185,0,32,243,171,129,194,0,4,131,195,16,128,254,160,117,218,137,
        30,19,4,184,48,0,142,208,188,0,1,176,19,230,32,176,8,230,33,176,9,230,33,176,255,230,33,30,185,32,0,43,255,142,199,184,35,
        255,171,140,200,171,226,247,191,64,0,14,31,140,216,190,3,255,144,185,16,0,165,71,71,226,251,31,30,228,98,36,15,138,224,176,
        173,230,97,144,228,98,177,4,210,192,36,240,10,196,42,228,163,16,4,176,153,230,99,232,5,24,128,251,170,116,24,128,251,101,
        117,3,233,239,253,176,56,230,97,144,144,228,96,36,255,117,4,254,6,18,4,161,16,4,80,176,48,163,16,4,42,228,205,16,176,32,163,
        16,4,42,228,205,16,88,163,16,4,36,48,117,10,191,64,0,199,5,75,255,233,160,0,60,48,116,8,254,196,60,32,117,2,180,3,134,224,
        80,42,228,205,16,88,80,187,0,176,186,184,3,185,0,8,176,1,128,252,48,116,9,183,184,186,216,3,181,32,254,200,238,129,62,114,
        4,52,18,142,195,116,7,142,219,232,199,3,117,70,88,80,180,0,205,16,184,32,112,235,17,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,233,153,21,43,255,185,40,0,243,171,88,80,128,252,48,186,186,3,116,3,186,218,3,180,8,43,201,236,34,196,117,
        4,226,249,235,9,43,201,236,34,196,116,17,226,249,31,30,198,6,21,0,6,186,2,1,232,219,22,235,6,177,3,210,236,117,215,88,180,
        0,205,16,186,0,192,142,218,43,219,139,7,83,91,61,85,170,117,5,232,54,22,235,4,129,194,128,0,129,250,0,200,124,228,31,198,
        6,21,4,5,176,0,230,33,228,33,10,192,117,27,176,255,230,33,228,33,4,1,117,17,162,107,4,251,43,201,226,254,226,254,128,62,107,
        4,0,116,9,190,255,248,144,232,78,22,250,244,198,6,21,4,2,176,254,230,33,176,16,230,67,185,22,0,138,193,230,64,246,6,107,4,
        1,117,4,226,247,235,216,177,12,176,255,230,64,198,6,107,4,0,176,254,230,33,246,6,107,4,1,117,194,226,247,176,255,230,33,176,
        54,230,67,176,0,230,64,230,64,176,153,230,99,160,16,4,36,1,116,49,128,62,18,4,1,116,42,232,115,22,227,30,176,73,230,97,128,
        251,170,117,21,176,200,230,97,176,72,230,97,43,201,226,254,228,96,60,0,116,10,232,180,21,190,76,236,144,232,203,21,30,43,
        192,142,192,185,8,0,14,31,190,243,254,144,191,32,0,165,71,71,226,251,31,199,6,8,0,95,248,199,6,20,0,84,255,199,6,98,0,0,246,
        128,62,18,4,1,117,10,199,6,112,0,60,249,176,254,230,33,186,16,2,184,85,85,238,176,1,236,58,196,117,68,247,208,238,176,1,236,
        58,196,117,58,187,1,0,186,21,2,185,16,0,46,136,7,144,236,58,199,117,33,66,236,58,195,117,27,74,209,227,226,236,185,8,0,176,
        1,74,138,224,238,176,1,236,58,196,117,6,208,224,226,242,235,7,190,15,249,144,232,63,21,232,236,21,30,129,62,114,0,52,18,117,
        3,233,159,0,184,16,0,235,40,139,30,19,0,131,235,16,177,4,211,235,139,203,187,0,4,142,219,142,195,129,195,0,4,82,81,83,80,
        185,0,32,232,207,1,117,76,88,5,16,0,80,187,10,0,185,3,0,51,210,247,243,128,202,48,82,226,246,185,3,0,88,232,222,20,226,250,
        185,7,0,190,26,224,46,138,4,70,232,207,20,226,247,88,61,16,0,116,169,91,89,90,226,180,176,10,232,189,20,228,8,36,1,117,51,
        31,198,6,21,0,3,233,102,254,138,232,176,13,232,167,20,176,10,232,162,20,88,131,196,6,140,218,31,30,163,19,0,136,54,21,0,232,
        206,26,138,197,232,122,20,190,4,249,144,232,145,20,186,0,200,142,218,43,219,139,7,83,91,61,85,170,117,6,232,40,20,235,5,144,
        129,194,128,0,129,250,0,246,124,227,235,1,144,180,4,43,219,142,218,232,174,19,116,3,232,130,1,129,194,0,2,254,204,117,236,
        31,160,16,0,36,1,116,62,228,33,36,191,230,33,180,0,138,212,205,19,246,196,255,117,32,186,242,3,176,28,238,43,201,226,254,
        226,254,51,210,181,1,136,22,62,0,232,252,8,114,7,181,34,232,245,8,115,7,190,82,236,144,232,24,20,176,12,186,242,3,238,198,
        6,107,0,0,190,30,0,137,54,26,0,137,54,28,0,137,54,128,0,131,198,32,137,54,130,0,191,120,0,30,7,184,20,20,171,171,184,1,1,
        171,171,228,33,36,252,230,33,131,253,0,116,25,186,2,0,232,6,20,190,9,232,144,232,241,19,180,0,205,22,128,252,59,117,247,235,
        14,144,128,62,18,0,1,116,6,186,1,0,232,230,19,160,16,0,36,1,117,3,233,95,250,42,228,160,73,0,205,16,189,163,249,144,190,0,
        0,46,139,86,0,176,170,238,30,236,31,60,170,117,5,137,84,8,70,70,69,69,129,253,169,249,117,229,187,0,0,186,250,3,236,168,248,
        117,6,199,7,248,3,67,67,186,250,2,236,168,248,117,6,199,7,248,2,67,67,139,198,177,3,210,200,10,195,162,17,0,186,1,2,236,144,
        144,144,168,15,117,5,128,14,17,0,16,228,97,12,48,230,97,36,207,230,97,176,128,230,160,205,25,252,43,255,43,192,136,5,138,
        5,50,196,117,77,254,196,138,196,117,242,139,217,209,227,184,170,170,186,85,255,243,171,228,97,12,48,230,97,144,36,207,230,
        97,79,253,139,247,139,203,172,50,196,117,37,138,194,170,226,246,34,228,116,22,138,224,134,242,34,228,117,4,138,212,235,224,
        252,71,116,222,79,186,1,0,235,214,228,98,36,192,176,0,252,195,82,80,140,218,38,136,54,21,0,129,250,0,200,124,13,232,253,24,
        190,10,249,144,232,197,18,88,90,195,186,2,1,232,235,18,235,245,255,255,255,251,43,192,142,216,199,6,120,0,199,239,140,14,
        122,0,185,4,0,81,180,0,205,19,114,15,184,1,2,43,210,142,194,187,0,124,185,1,0,205,19,89,115,4,226,229,205,24,234,0,124,0,
        0,255,255,255,23,4,0,3,128,1,192,0,96,0,48,0,24,0,12,0,251,30,82,86,87,81,83,139,242,139,250,209,230,232,16,19,139,20,11,
        210,116,19,10,228,116,22,254,204,116,69,254,204,116,106,254,204,117,3,233,131,0,91,89,95,94,90,31,207,138,224,131,194,3,176,
        128,238,138,212,177,4,210,194,129,226,14,0,191,41,231,3,250,139,20,66,46,138,69,1,238,74,46,138,5,238,131,194,3,138,196,36,
        31,238,74,74,176,0,238,235,73,80,131,194,4,176,3,238,66,66,183,48,232,72,0,116,8,89,138,193,128,204,128,235,174,74,183,32,
        232,56,0,117,240,131,234,5,89,138,193,238,235,157,131,194,4,176,1,238,66,66,183,32,232,32,0,117,219,74,183,1,232,24,0,117,
        211,128,228,30,139,20,236,233,125,255,139,20,131,194,5,236,138,224,66,236,233,112,255,138,93,124,43,201,236,138,224,34,199,
        58,199,116,8,226,245,254,203,117,239,10,255,195,69,82,82,79,82,46,32,40,82,69,83,85,77,69,32,61,32,34,70,49,34,32,75,69,89,
        41,13,10,255,255,255,255,255,255,255,255,255,251,30,83,232,37,18,10,228,116,10,254,204,116,30,254,204,116,43,235,44,251,144,
        250,139,30,26,0,59,30,28,0,116,243,139,7,232,29,0,137,30,26,0,235,20,250,139,30,26,0,59,30,28,0,139,7,251,91,31,202,2,0,160,
        23,0,91,31,207,67,67,59,30,130,0,117,4,139,30,128,0,195,82,58,69,70,56,29,42,54,128,64,32,16,8,4,2,1,27,255,0,255,255,255,
        30,255,255,255,255,31,255,127,255,17,23,5,18,20,25,21,9,15,16,27,29,10,255,1,19,4,6,7,8,10,11,12,255,255,255,255,28,26,24,
        3,22,2,14,13,255,255,255,255,255,255,32,255,94,95,96,97,98,99,100,101,102,103,255,255,119,255,132,255,115,255,116,255,117,
        255,118,255,255,27,49,50,51,52,53,54,55,56,57,48,45,61,8,9,113,119,101,114,116,121,117,105,111,112,91,93,13,255,97,115,100,
        102,103,104,106,107,108,59,39,96,255,92,122,120,99,118,98,110,109,44,46,47,255,42,255,32,255,27,33,64,35,36,37,94,38,42,40,
        41,95,43,8,0,81,87,69,82,84,89,85,73,79,80,123,125,13,255,65,83,68,70,71,72,74,75,76,58,34,126,255,124,90,88,67,86,66,78,
        77,60,62,63,255,0,255,32,255,84,85,86,87,88,89,90,91,92,93,104,105,106,107,108,109,110,111,112,113,55,56,57,45,52,53,54,43,
        49,50,51,48,46,71,72,73,255,75,255,77,255,79,80,81,82,83,255,255,255,255,251,80,83,81,82,86,87,30,6,252,232,197,16,228,96,
        80,228,97,138,224,12,128,230,97,134,224,230,97,88,138,224,60,255,117,3,233,122,2,36,127,14,7,191,126,232,185,8,0,242,174,
        138,196,116,3,233,133,0,129,239,127,232,46,138,165,134,232,168,128,117,81,128,252,16,115,7,8,38,23,0,233,128,0,246,6,23,0,
        4,117,101,60,82,117,34,246,6,23,0,8,117,90,246,6,23,0,32,117,13,246,6,23,0,3,116,13,184,48,82,233,214,1,246,6,23,0,3,116,
        243,132,38,24,0,117,77,8,38,24,0,48,38,23,0,60,82,117,65,184,0,82,233,183,1,128,252,16,115,26,246,212,32,38,23,0,60,184,117,
        44,160,25,0,180,0,136,38,25,0,60,0,116,31,233,161,1,246,212,32,38,24,0,235,20,60,128,115,16,246,6,24,0,8,116,23,60,69,116,
        5,128,38,24,0,247,250,176,32,230,32,7,31,95,94,90,89,91,88,207,246,6,23,0,8,117,3,233,145,0,246,6,23,0,4,116,51,60,83,117,
        47,199,6,114,0,52,18,234,91,224,0,240,82,79,80,81,75,76,77,71,72,73,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,
        38,44,45,46,47,48,49,50,60,57,117,5,176,32,233,33,1,191,135,234,185,10,0,242,174,117,18,129,239,136,234,160,25,0,180,10,246,
        228,3,199,162,25,0,235,137,198,6,25,0,0,185,26,0,242,174,117,5,176,0,233,244,0,60,2,114,12,60,14,115,8,128,196,118,176,0,
        233,228,0,60,59,115,3,233,97,255,60,71,115,249,187,95,233,233,27,1,246,6,23,0,4,116,88,60,70,117,24,139,30,128,0,137,30,26,
        0,137,30,28,0,198,6,113,0,128,205,27,43,192,233,176,0,60,69,117,33,128,14,24,0,8,176,32,230,32,128,62,73,0,7,116,7,186,216,
        3,160,101,0,238,246,6,24,0,8,117,249,233,20,255,60,55,117,6,184,0,114,233,129,0,187,142,232,60,59,114,118,187,200,232,233,
        188,0,60,71,115,44,246,6,23,0,3,116,90,60,15,117,5,184,0,15,235,96,60,55,117,9,176,32,230,32,205,5,233,220,254,60,59,114,
        6,187,85,233,233,145,0,187,27,233,235,64,246,6,23,0,32,117,32,246,6,23,0,3,117,32,60,74,116,11,60,78,116,12,44,71,187,118,
        233,235,113,184,45,74,235,34,184,43,78,235,29,246,6,23,0,3,117,224,44,70,187,105,233,235,11,60,59,114,4,176,0,235,7,187,225,
        232,254,200,46,215,60,255,116,31,128,252,255,116,26,246,6,23,0,64,116,32,246,6,23,0,3,116,15,60,65,114,21,60,90,119,17,4,
        32,235,13,233,94,254,60,97,114,6,60,122,119,2,44,32,139,30,28,0,139,243,232,99,252,59,30,26,0,116,19,137,4,137,30,28,0,233,
        60,254,44,59,46,215,138,224,176,0,235,174,176,32,230,32,187,128,0,228,97,80,36,252,230,97,185,72,0,226,254,12,2,230,97,185,
        72,0,226,254,75,117,235,88,230,97,233,18,254,32,51,48,49,13,10,54,48,49,13,10,255,255,251,83,81,30,86,87,85,82,139,236,232,
        243,13,232,28,0,187,4,0,232,253,1,136,38,64,0,138,38,65,0,128,252,1,245,90,93,95,94,31,89,91,202,2,0,138,240,128,38,63,0,
        127,10,228,116,39,254,204,116,115,198,6,65,0,0,128,250,4,115,19,254,204,116,105,254,204,117,3,233,149,0,254,204,116,103,254,
        204,116,103,198,6,65,0,1,195,186,242,3,250,160,63,0,177,4,210,224,168,32,117,12,168,64,117,6,168,128,116,6,254,192,254,192,
        254,192,12,8,238,198,6,62,0,0,198,6,65,0,0,12,4,238,251,232,42,2,160,66,0,60,192,116,6,128,14,65,0,32,195,180,3,232,71,1,
        187,1,0,232,108,1,187,3,0,232,102,1,195,160,65,0,195,176,70,232,184,1,180,230,235,54,176,66,235,245,128,14,63,0,128,176,74,
        232,166,1,180,77,235,36,187,7,0,232,64,1,187,9,0,232,58,1,187,15,0,232,52,1,187,17,0,233,171,0,128,14,63,0,128,176,74,232,
        128,1,180,197,115,8,198,6,65,0,9,176,0,195,80,81,138,202,176,1,210,224,250,198,6,64,0,255,132,6,63,0,117,49,128,38,63,0,240,
        8,6,63,0,251,176,16,210,224,10,194,12,12,82,186,242,3,238,90,246,6,63,0,128,116,18,187,20,0,232,223,0,10,228,116,8,43,201,
        226,254,254,204,235,246,251,89,232,223,0,88,138,252,182,0,114,75,190,240,237,144,86,232,148,0,138,102,1,208,228,208,228,128,
        228,4,10,226,232,133,0,128,255,77,117,3,233,98,255,138,229,232,120,0,138,102,1,232,114,0,138,225,232,109,0,187,7,0,232,146,
        0,187,9,0,232,140,0,187,11,0,232,134,0,187,13,0,232,128,0,94,232,67,1,114,69,232,116,1,114,63,252,190,66,0,172,36,192,116,
        59,60,64,117,41,172,208,224,180,4,114,36,208,224,208,224,180,16,114,28,208,224,180,8,114,22,208,224,208,224,180,4,114,14,
        208,224,180,3,114,8,208,224,180,2,114,2,180,32,8,38,65,0,232,120,1,195,232,47,1,195,232,112,1,50,228,195,82,81,186,244,3,
        51,201,236,168,64,116,12,226,249,128,14,65,0,128,89,90,88,249,195,51,201,236,168,128,117,4,226,249,235,235,138,196,178,245,
        238,89,90,195,30,43,192,142,216,197,54,120,0,209,235,138,32,31,114,197,195,176,1,81,138,202,210,192,89,132,6,62,0,117,19,
        8,6,62,0,180,7,232,173,255,138,226,232,168,255,232,118,0,114,41,180,15,232,158,255,138,226,232,153,255,138,229,232,148,255,
        232,98,0,156,187,18,0,232,181,255,81,185,38,2,10,228,116,6,226,254,254,204,235,243,89,157,195,81,250,230,12,80,88,230,11,
        140,192,177,4,211,192,138,232,36,240,3,195,115,2,254,197,80,230,4,138,196,230,4,138,197,36,15,230,129,138,230,42,192,209,
        232,80,187,6,0,232,114,255,138,204,88,211,224,72,80,230,5,138,196,230,5,251,89,88,3,193,89,176,2,230,10,195,232,30,0,114,
        20,180,8,232,37,255,232,74,0,114,10,160,66,0,36,96,60,96,116,2,248,195,128,14,65,0,64,249,195,251,83,81,179,2,51,201,246,
        6,62,0,128,117,12,226,247,254,203,117,243,128,14,65,0,128,249,156,128,38,62,0,127,157,89,91,195,251,30,80,232,252,10,128,
        14,62,0,128,176,32,230,32,88,31,207,252,191,66,0,81,82,83,179,7,51,201,186,244,3,236,168,128,117,12,226,249,128,14,65,0,128,
        249,91,90,89,195,236,168,64,117,7,128,14,65,0,32,235,239,66,236,136,5,71,185,10,0,226,254,74,236,168,16,116,6,254,203,117,
        202,235,227,91,90,89,195,160,69,0,58,197,160,71,0,116,10,187,8,0,232,174,254,138,196,254,192,42,193,195,255,255,207,2,37,
        2,8,42,255,80,246,25,4,251,30,82,86,81,83,232,126,10,139,242,138,92,120,209,230,139,84,8,11,210,116,12,10,228,116,14,254,
        204,116,63,254,204,116,40,91,89,94,90,31,207,80,238,66,43,201,236,138,224,168,128,117,14,226,247,254,203,117,241,128,204,
        1,128,228,249,235,19,176,13,66,238,176,12,238,88,80,139,84,8,66,236,138,224,128,228,248,90,138,194,128,244,72,235,197,80,
        66,66,176,8,238,184,232,3,72,117,253,176,12,238,235,221,255,255,255,255,252,240,205,241,238,241,57,242,156,247,23,242,150,
        242,56,243,116,243,185,243,236,243,78,242,47,244,30,244,24,247,116,242,251,252,6,30,82,81,83,86,87,80,138,196,50,228,209,
        224,139,240,61,32,0,114,4,88,233,69,1,232,214,9,184,0,184,139,62,16,0,129,231,48,0,131,255,48,117,2,180,176,142,192,88,138,
        38,73,0,46,255,164,69,240,255,255,255,56,40,45,10,31,6,25,28,2,7,6,7,0,0,0,0,113,80,90,10,31,6,25,28,2,7,6,7,0,0,0,0,56,40,
        45,10,127,6,100,112,2,1,6,7,0,0,0,0,97,80,82,15,25,6,25,25,2,13,11,12,0,0,0,0,0,8,0,16,0,64,0,64,40,40,80,80,40,40,80,80,
        44,40,45,41,42,46,30,41,186,212,3,179,0,131,255,48,117,6,176,7,178,180,254,195,138,224,162,73,0,137,22,99,0,30,80,82,131,
        194,4,138,195,238,90,43,192,142,216,197,30,116,0,88,185,16,0,128,252,2,114,16,3,217,128,252,4,114,9,3,217,128,252,7,114,2,
        3,217,80,50,228,138,196,238,66,254,196,138,7,238,67,74,226,243,88,31,51,255,137,62,78,0,198,6,98,0,0,185,0,32,128,252,4,114,
        11,128,252,7,116,4,51,192,235,5,181,8,184,32,7,243,171,199,6,96,0,7,6,160,73,0,50,228,139,240,139,22,99,0,131,194,4,46,138,
        132,244,240,238,162,101,0,46,138,132,236,240,50,228,163,74,0,129,230,14,0,46,139,140,228,240,137,14,76,0,185,8,0,191,80,0,
        30,7,51,192,243,171,66,176,48,128,62,73,0,6,117,2,176,63,238,162,102,0,95,94,91,89,90,31,7,207,180,10,137,14,96,0,232,2,0,
        235,237,139,22,99,0,138,196,238,66,138,197,238,74,138,196,254,192,238,66,138,193,238,195,138,207,50,237,209,225,139,241,137,
        84,80,56,62,98,0,117,5,139,194,232,2,0,235,191,232,124,0,139,200,3,14,78,0,209,249,180,14,232,194,255,195,162,98,0,139,14,
        76,0,152,80,247,225,163,78,0,139,200,209,249,180,12,232,170,255,91,209,227,139,71,80,232,207,255,235,140,138,223,50,255,209,
        227,139,87,80,139,14,96,0,95,94,91,88,88,31,7,207,139,22,99,0,131,194,5,160,102,0,10,255,117,14,36,224,128,227,31,10,195,
        238,162,102,0,233,91,255,36,223,208,235,115,243,12,32,235,239,138,38,74,0,160,73,0,138,62,98,0,95,94,89,233,67,255,83,139,
        216,138,196,246,38,74,0,50,255,3,195,209,224,91,195,138,216,128,252,4,114,8,128,252,7,116,3,233,240,1,83,139,193,232,55,0,
        116,49,3,240,138,230,42,227,232,114,0,3,245,3,253,254,204,117,245,88,176,32,232,109,0,3,253,254,203,117,247,232,140,7,128,
        62,73,0,7,116,7,160,101,0,186,216,3,238,233,231,254,138,222,235,220,128,62,73,0,2,114,24,128,62,73,0,3,119,17,82,186,218,
        3,80,236,168,8,116,251,176,37,178,216,238,88,90,232,129,255,3,6,78,0,139,248,139,240,43,209,254,198,254,194,50,237,139,46,
        74,0,3,237,138,195,246,38,74,0,3,192,6,31,128,251,0,195,138,202,86,87,243,165,95,94,195,138,202,87,243,171,95,195,253,138,
        216,128,252,4,114,8,128,252,7,116,3,233,166,1,83,139,194,232,148,255,116,32,43,240,138,230,42,227,232,207,255,43,245,43,253,
        254,204,117,245,88,176,32,232,202,255,43,253,254,203,117,247,233,90,255,138,222,235,237,128,252,4,114,8,128,252,7,116,3,233,
        168,2,232,26,0,139,243,139,22,99,0,131,194,6,6,31,236,168,1,117,251,250,236,168,1,116,251,173,233,39,254,138,207,50,237,139,
        241,209,230,139,68,80,51,219,227,6,3,30,76,0,226,250,232,207,254,3,216,195,128,252,4,114,8,128,252,7,116,3,233,178,1,138,
        227,80,81,232,209,255,139,251,89,91,139,22,99,0,131,194,6,236,168,1,117,251,250,236,168,1,116,251,139,195,171,251,226,232,
        233,217,253,128,252,4,114,8,128,252,7,116,3,233,127,1,80,81,232,160,255,139,251,89,91,139,22,99,0,131,194,6,236,168,1,117,
        251,250,236,168,1,116,251,138,195,170,251,71,226,231,233,167,253,232,49,0,38,138,4,34,196,210,224,138,206,210,192,233,150,
        253,80,80,232,30,0,210,232,34,196,38,138,12,91,246,195,128,117,13,246,212,34,204,10,193,38,136,4,88,233,119,253,50,193,235,
        245,83,80,176,40,82,128,226,254,246,226,90,246,194,1,116,3,5,0,32,139,240,88,139,209,187,192,2,185,2,3,128,62,73,0,6,114,
        6,187,128,1,185,3,7,34,234,211,234,3,242,138,247,42,201,208,200,2,205,254,207,117,248,138,227,210,236,91,195,138,216,139,
        193,232,105,2,139,248,43,209,129,194,1,1,208,230,208,230,128,62,73,0,6,115,4,208,226,209,231,6,31,42,237,208,227,208,227,
        116,45,138,195,180,80,246,228,139,247,3,240,138,230,42,227,232,128,0,129,238,176,31,129,239,176,31,254,204,117,241,138,199,
        232,136,0,129,239,176,31,254,203,117,245,233,219,252,138,222,235,236,253,138,216,139,194,232,15,2,139,248,43,209,129,194,
        1,1,208,230,208,230,128,62,73,0,6,115,5,208,226,209,231,71,6,31,42,237,129,199,240,0,208,227,208,227,116,46,138,195,180,80,
        246,228,139,247,43,240,138,230,42,227,232,33,0,129,238,80,32,129,239,80,32,254,204,117,241,138,199,232,41,0,129,239,80,32,
        254,203,117,245,252,233,123,252,138,222,235,235,138,202,86,87,243,164,95,94,129,198,0,32,129,199,0,32,86,87,138,202,243,164,
        95,94,195,138,202,87,243,170,95,129,199,0,32,87,138,202,243,170,95,195,180,0,80,232,132,1,139,248,88,60,128,115,6,190,110,
        250,14,235,15,44,128,30,43,246,142,222,197,54,124,0,140,218,31,82,209,224,209,224,209,224,3,240,128,62,73,0,6,31,114,44,87,
        86,182,4,172,246,195,128,117,22,170,172,38,136,133,255,31,131,199,79,254,206,117,236,94,95,71,226,227,233,251,251,38,50,5,
        170,172,38,50,133,255,31,235,224,138,211,209,231,232,209,0,87,86,182,4,172,232,222,0,35,195,246,194,128,116,7,38,50,37,38,
        50,69,1,38,136,37,38,136,69,1,172,232,197,0,35,195,246,194,128,116,10,38,50,165,0,32,38,50,133,1,32,38,136,165,0,32,38,136,
        133,1,32,131,199,80,254,206,117,193,94,95,71,71,226,183,233,156,251,232,214,0,139,240,131,236,8,139,236,128,62,73,0,6,6,31,
        114,26,182,4,138,4,136,70,0,69,138,132,0,32,136,70,0,69,131,198,80,254,206,117,235,235,23,144,209,230,182,4,232,136,0,129,
        198,0,32,232,129,0,129,238,176,31,254,206,117,238,191,110,250,144,14,7,131,237,8,139,245,252,176,0,22,31,186,128,0,86,87,
        185,8,0,243,166,95,94,116,30,254,192,131,199,8,74,117,237,60,0,116,18,43,192,142,216,196,62,124,0,140,192,11,199,116,4,176,
        128,235,210,131,196,8,233,23,251,128,227,3,138,195,81,185,3,0,208,224,208,224,10,216,226,248,138,251,89,195,82,81,83,43,210,
        185,1,0,139,216,35,217,11,211,209,224,209,225,139,216,35,217,11,211,209,225,115,236,139,194,91,89,90,195,138,36,138,68,1,
        185,0,192,178,0,133,193,248,116,1,249,208,210,209,233,209,233,115,242,136,86,0,69,195,161,80,0,83,139,216,138,196,246,38,
        74,0,209,224,209,224,42,255,3,195,91,195,80,80,180,3,138,62,98,0,205,16,88,60,8,116,82,60,13,116,87,60,10,116,87,60,7,116,
        90,180,10,185,1,0,205,16,254,194,58,22,74,0,117,51,178,0,128,254,24,117,42,180,2,205,16,160,73,0,60,4,114,6,60,7,183,0,117,
        6,180,8,205,16,138,252,184,1,6,43,201,182,24,138,22,74,0,254,202,205,16,88,233,82,250,254,198,180,2,235,244,128,250,0,116,
        247,254,202,235,243,178,0,235,239,128,254,24,117,232,235,188,179,2,232,118,2,235,219,3,3,5,5,3,3,3,4,180,0,139,22,99,0,131,
        194,6,236,168,4,117,126,168,2,117,3,233,129,0,180,16,139,22,99,0,138,196,238,66,236,138,232,74,254,196,138,196,238,66,236,
        138,229,138,30,73,0,42,255,46,138,159,148,247,43,195,139,30,78,0,209,235,43,195,121,2,43,192,177,3,128,62,73,0,4,114,42,128,
        62,73,0,7,116,35,178,40,246,242,138,232,2,237,138,220,42,255,128,62,73,0,6,117,4,177,4,208,228,211,227,138,212,138,240,208,
        238,208,238,235,18,246,54,74,0,138,240,138,212,210,224,138,232,138,220,50,255,211,227,180,1,82,139,22,99,0,131,194,7,238,
        90,95,94,31,31,31,31,7,207,255,255,255,255,255,255,255,251,30,232,19,2,161,19,0,31,207,255,255,251,30,232,7,2,161,16,0,31,
        207,255,255,249,180,134,202,2,0,80,228,98,168,192,117,3,233,135,0,186,64,0,142,218,190,21,249,144,168,64,117,4,190,37,249,
        144,180,0,160,73,0,205,16,232,70,1,176,0,230,160,228,97,12,48,230,97,36,207,230,97,139,30,19,0,252,43,210,142,218,142,194,
        185,0,64,43,246,243,172,228,98,36,192,117,18,129,194,0,4,131,235,16,117,230,190,53,249,144,232,16,1,250,244,140,218,232,25,
        7,186,19,2,176,0,238,176,40,232,208,0,184,90,165,139,200,43,219,137,7,144,144,139,7,59,193,116,7,176,69,232,186,0,235,5,176,
        83,232,179,0,176,41,232,174,0,250,244,88,207,185,0,32,50,192,2,7,67,226,251,10,192,195,49,48,49,13,10,32,50,48,49,13,10,82,
        79,77,13,10,49,56,48,49,13,10,80,65,82,73,84,89,32,67,72,69,67,75,32,50,13,10,80,65,82,73,84,89,32,67,72,69,67,75,32,49,13,
        10,63,63,63,63,63,13,10,251,80,228,97,138,224,246,208,36,64,128,228,191,10,196,230,97,176,32,230,32,88,207,184,64,0,142,192,
        42,228,138,71,2,177,9,211,224,139,200,81,185,4,0,211,232,3,208,89,232,134,255,116,6,232,87,237,235,20,144,82,38,199,6,103,
        0,3,0,38,140,30,105,0,38,255,30,103,0,90,195,80,177,4,210,232,232,3,0,88,36,15,4,144,39,20,64,39,180,14,183,0,205,16,195,
        188,3,120,3,120,2,139,238,232,28,0,30,232,167,0,160,16,0,36,1,117,15,250,176,137,230,99,176,133,230,97,160,21,0,230,96,244,
        31,195,46,138,4,70,80,232,202,255,88,60,10,117,243,195,156,250,30,232,123,0,10,246,116,20,179,6,232,33,0,226,254,254,206,
        117,245,128,62,18,0,1,117,2,235,195,179,1,232,13,0,226,254,254,202,117,245,226,254,226,254,31,157,195,176,182,230,67,184,
        51,5,230,66,138,196,230,66,228,97,138,224,12,3,230,97,43,201,226,254,254,203,117,250,138,196,230,97,195,176,8,230,97,185,
        86,41,226,254,176,200,230,97,176,72,230,97,176,253,230,33,198,6,107,4,0,251,43,201,246,6,107,4,2,117,2,226,247,228,96,138,
        216,176,200,230,97,195,80,184,64,0,142,216,88,195,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,126,
        129,165,129,189,153,129,126,126,255,219,255,195,231,255,126,108,254,254,254,124,56,16,0,16,56,124,254,124,56,16,0,56,124,
        56,254,254,124,56,124,16,16,56,124,254,124,56,124,0,0,24,60,60,24,0,0,255,255,231,195,195,231,255,255,0,60,102,66,66,102,
        60,0,255,195,153,189,189,153,195,255,15,7,15,125,204,204,204,120,60,102,102,102,60,24,126,24,63,51,63,48,48,112,240,224,127,
        99,127,99,99,103,230,192,153,90,60,231,231,60,90,153,128,224,248,254,248,224,128,0,2,14,62,254,62,14,2,0,24,60,126,24,24,
        126,60,24,102,102,102,102,102,0,102,0,127,219,219,123,27,27,27,0,62,99,56,108,108,56,204,120,0,0,0,0,126,126,126,0,24,60,
        126,24,126,60,24,255,24,60,126,24,24,24,24,0,24,24,24,24,126,60,24,0,0,24,12,254,12,24,0,0,0,48,96,254,96,48,0,0,0,0,192,
        192,192,254,0,0,0,36,102,255,102,36,0,0,0,24,60,126,255,255,0,0,0,255,255,126,60,24,0,0,0,0,0,0,0,0,0,0,48,120,120,48,48,
        0,48,0,108,108,108,0,0,0,0,0,108,108,254,108,254,108,108,0,48,124,192,120,12,248,48,0,0,198,204,24,48,102,198,0,56,108,56,
        118,220,204,118,0,96,96,192,0,0,0,0,0,24,48,96,96,96,48,24,0,96,48,24,24,24,48,96,0,0,102,60,255,60,102,0,0,0,48,48,252,48,
        48,0,0,0,0,0,0,0,48,48,96,0,0,0,252,0,0,0,0,0,0,0,0,0,48,48,0,6,12,24,48,96,192,128,0,124,198,206,222,246,230,124,0,48,112,
        48,48,48,48,252,0,120,204,12,56,96,204,252,0,120,204,12,56,12,204,120,0,28,60,108,204,254,12,30,0,252,192,248,12,12,204,120,
        0,56,96,192,248,204,204,120,0,252,204,12,24,48,48,48,0,120,204,204,120,204,204,120,0,120,204,204,124,12,24,112,0,0,48,48,
        0,0,48,48,0,0,48,48,0,0,48,48,96,24,48,96,192,96,48,24,0,0,0,252,0,0,252,0,0,96,48,24,12,24,48,96,0,120,204,12,24,48,0,48,
        0,124,198,222,222,222,192,120,0,48,120,204,204,252,204,204,0,252,102,102,124,102,102,252,0,60,102,192,192,192,102,60,0,248,
        108,102,102,102,108,248,0,254,98,104,120,104,98,254,0,254,98,104,120,104,96,240,0,60,102,192,192,206,102,62,0,204,204,204,
        252,204,204,204,0,120,48,48,48,48,48,120,0,30,12,12,12,204,204,120,0,230,102,108,120,108,102,230,0,240,96,96,96,98,102,254,
        0,198,238,254,254,214,198,198,0,198,230,246,222,206,198,198,0,56,108,198,198,198,108,56,0,252,102,102,124,96,96,240,0,120,
        204,204,204,220,120,28,0,252,102,102,124,108,102,230,0,120,204,224,112,28,204,120,0,252,180,48,48,48,48,120,0,204,204,204,
        204,204,204,252,0,204,204,204,204,204,120,48,0,198,198,198,214,254,238,198,0,198,198,108,56,56,108,198,0,204,204,204,120,
        48,48,120,0,254,198,140,24,50,102,254,0,120,96,96,96,96,96,120,0,192,96,48,24,12,6,2,0,120,24,24,24,24,24,120,0,16,56,108,
        198,0,0,0,0,0,0,0,0,0,0,0,255,48,48,24,0,0,0,0,0,0,0,120,12,124,204,118,0,224,96,96,124,102,102,220,0,0,0,120,204,192,204,
        120,0,28,12,12,124,204,204,118,0,0,0,120,204,252,192,120,0,56,108,96,240,96,96,240,0,0,0,118,204,204,124,12,248,224,96,108,
        118,102,102,230,0,48,0,112,48,48,48,120,0,12,0,12,12,12,204,204,120,224,96,102,108,120,108,230,0,112,48,48,48,48,48,120,0,
        0,0,204,254,254,214,198,0,0,0,248,204,204,204,204,0,0,0,120,204,204,204,120,0,0,0,220,102,102,124,96,240,0,0,118,204,204,
        124,12,30,0,0,220,118,102,96,240,0,0,0,124,192,120,12,248,0,16,48,124,48,48,52,24,0,0,0,204,204,204,204,118,0,0,0,204,204,
        204,120,48,0,0,0,198,214,254,254,108,0,0,0,198,108,56,108,198,0,0,0,204,204,204,124,12,248,0,0,252,152,48,100,252,0,28,48,
        48,224,48,48,28,0,24,24,24,0,24,24,24,0,224,48,48,28,48,48,224,0,118,220,0,0,0,0,0,0,0,16,56,108,198,198,254,0,251,30,232,
        230,251,10,228,116,7,254,204,116,22,251,31,207,250,160,112,0,198,6,112,0,0,139,14,110,0,139,22,108,0,235,234,250,137,22,108,
        0,137,14,110,0,198,6,112,0,0,235,218,255,255,255,255,251,30,80,82,232,173,251,255,6,108,0,117,4,255,6,110,0,131,62,110,0,
        24,117,21,129,62,108,0,176,0,117,13,43,192,163,110,0,163,108,0,198,6,112,0,1,254,14,64,0,117,11,128,38,63,0,240,176,12,186,
        242,3,238,205,28,176,32,230,32,90,88,31,207,255,255,255,255,255,255,165,254,135,233,35,255,35,255,35,255,35,255,87,239,35,
        255,101,240,77,248,65,248,89,236,57,231,89,248,46,232,210,239,0,0,242,230,110,254,75,255,75,255,164,240,199,239,0,0,30,82,
        80,232,48,251,176,11,230,32,144,228,32,138,224,10,196,117,4,180,255,235,10,228,33,10,196,230,33,176,32,230,32,136,38,107,
        0,88,90,31,207,255,255,255,255,255,255,255,207,251,30,80,83,81,82,184,80,0,142,216,128,62,0,0,1,116,95,198,6,0,0,1,180,15,
        205,16,138,204,181,25,232,85,0,81,180,3,205,16,89,82,51,210,180,2,205,16,180,8,205,16,10,192,117,2,176,32,82,51,210,50,228,
        205,23,90,246,196,37,117,33,254,194,58,202,117,223,50,210,138,226,82,232,35,0,90,254,198,58,238,117,208,90,180,2,205,16,198,
        6,0,0,0,235,10,90,180,2,205,16,198,6,0,0,255,90,89,91,88,31,207,51,210,50,228,176,10,205,23,50,228,176,13,205,23,195,138,
        198,232,172,249,138,194,232,167,249,176,48,232,179,249,176,32,232,174,249,195,255,234,91,224,0,240,49,49,47,48,56,47,56,50,
        255,254,40] 
        
      • 1988-01-28.json
        {"data":[
        -13436026,-1752439855,1451819088,1611565826,72255744,18119,246465280,-1964227858,263211744,-1007926546,105993040,-1912584008,-1258114624,-402542583,-2147155945,8168192,
        -38465359,149422512,8299264,1482381575,1431458755,-980627318,4984456,12305806,130491904,-953810944,-64953,-1960379140,-50529249,-75236100,113649152,1946157056,
        5021704,350994730,1278097552,422912,-352302058,5021895,-1057046230,-524164046,1532648710,1381061571,180049750,375040,855640255,-2131494958,129380546,9672073,
        -270381233,9682684,-1191182145,-1510801397,9682684,-1182793537,-1510801397,1499094623,1364443995,-396994734,146210840,12087475,-1094676964,-1984692224,-469101107,1499094878,
        509657947,469809158,-1064380274,-1077922820,79233024,-1096027392,12058632,1096476,386039,13795328,-2013117303,1153827924,80187909,280887391,-268388352,-150990661,
        -132053533,-1996434816,1418199620,88393220,117753746,3194368,-1699493748,-1107268376,12058648,-393039076,549322849,4241408,1458082483,2670080,-1833709428,-1107276568,
        12058688,-393038928,1220411457,536918016,921211571,5291520,-1279262536,2877586,5506758,1460061888,1488879616,-268388352,384340659,-1899459584,-132006184,-1191138881,
        -784269305,128316393,-943496929,-1962934524,81838588,-1996165184,2089288260,89950212,410823,-1336884480,861464718,57983144,-1340085255,860678294,-1783570294,-1556920856,
        -1733296010,-1976353304,-392711968,2023961398,-1017579520,-393301936,-527813846,168873088,-2147256887,-1901006876,1479745256,-739748157,585653060,47616,-1179212101,82313233,
        -396967099,-396671810,12189709,-1229473024,-402646599,-1581038353,-1071382432,57950268,-1107262231,-75450618,-2139917058,1853161467,1786043146,-997584713,54264612,37513588,
        1085735540,1450368826,-2135485506,-997584697,-390067164,1946369026,1946303566,818380803,980606778,-2135482946,-997584697,-390057948,1946369028,1946303538,818380803,510844730,
        -2135480386,-997584697,-390021084,1946369030,1946303510,818380805,-549845900,-1944188557,-388460856,-1021354084,-1899459554,-2147434792,12182578,-536695680,242547682,-1152384838,
        263829338,1144907776,-1021313301,120588080,120588080,119539504,121767755,122619680,646580043,1720189001,1008648961,106788611,-1274577270,10741763,39226194,-1696070988,
        72256256,1988835043,273058572,-1392715634,-2147066229,1979777150,1946631187,1946696719,1946827787,1947024391,-1817406717,-1202708911,-661782464,1960024,-740140769,2122975066,
        4650503,-1274710783,5236738,1227262495,23496704,1946631363,1946696763,1946827831,1947024435,112943,786958772,-402410496,-1023541207,4855354,-768469899,-25114882,
        -32803559,-1274367794,1042446,45404722,-1023407896,48762548,1358490368,12256851,-1144812032,-930348990,117913894,57956443,-1664937779,1819142158,-65073469,-2065260368,
        -1341918534,-1582240256,1690010854,1109977088,-1326576464,-1148918110,468189284,-2069905854,-402651969,1416759655,-222683984,-1548685821,-315390746,1913214696,32815939,-398329368,
        946997579,-402627399,812803322,745863649,-334673944,58048680,-2127303700,1946157557,1970289685,1692198929,770183794,-1564546035,245636,-1515143445,82543846,-2065259344,
        -1179111493,12189728,1119479808,-1498413845,568624358,568770340,-756678480,63165670,459487,5289992,-958886370,-16777210,-1928935649,-973078528,-100627450,-5121229,
        -13373259,1276020742,4765696,-953761650,637534213,-16628281,654114047,-50592373,201129212,92874432,-1040317324,-1014821909,1959606848,-339083772,-2132049460,-1995934208,
        -2013229794,117476366,-939608893,-2147450362,-1895381504,113704704,-1124007790,317194368,-2134539946,1958742784,1714325522,1729530112,1762560000,1678672128,-1023393536,-2065268816,
        5244615,113770495,82,5506758,1426507279,113676800,-973078442,22278,4720327,113770495,74,4982470,1292289791,113742336,78,1354243590,
        -1193767424,-1064435640,-13371853,-62914375,-1146752154,1066139616,-1946164549,113712951,-65456,5375687,113639424,-960495532,-1845471994,5637830,1460061696,512458752,
        -1205993331,-661782448,206594532,-1604196856,113639424,620691456,1166550768,1642485761,268813862,1894166960,-527797788,1894166704,356836,1065400580,-1053045973,-617414030,
        637985729,637689225,-1258005111,-1043778818,-1993997087,-24443315,-2010716020,1166550565,2147465473,847249598,-1406731036,-85794814,-989932298,-970684378,-67108858,-389871841,
        1621295257,-1144485120,-1040842112,-1156877280,-1040842240,-1157401584,12058880,-18614524,-1877571382,616663552,1950366912,67156767,1967178230,134265611,1971372534,671136515,
        -150732616,-1999962397,-1023373034,11795850,-1979710279,49266887,37487396,-1015020171,1007151873,-2147126015,-404618045,5290014,44095630,183510016,172739,-1545326049,
        -620101534,28508789,12123954,-1142687996,-470350848,378063614,-943521647,-16756730,1376176127,-973078528,-1073720314,5572294,1443284626,113639424,511705175,5290067,
        1642387598,135061642,-2065276442,7819,1734,-58398977,-50529028,-50529028,-50529028,-2030240516,-1956518176,-1021355069,0,0,65535,-2147446080,
        65535,37376,65535,39439,65535,-1073704448,65535,39679,65535,37631,65535,37390,65535,37629,120586311,4653071,
        16713520,65535,-2018902016,-2013790184,-2010644456,254672920,125310465,218112015,571408385,788475392,146311050,-1329558016,495461935,-50559770,-50529028,-50529028,
        -50529028,280558844,264277504,627441696,2147483646,-369090033,-268400676,503385902,-436271228,369168174,537855864,68864,771760655,-2020724993,-1912600392,-1973295936,
        -435680032,650414689,-970580598,-16777210,-1293196826,369168174,537888632,68864,771760655,-2020462849,-1912594248,-423579432,-18076,-1469782790,-502959102,9497080,
        -452984903,1963042916,-369565179,1625555074,2088044712,444262,192,1711336376,-339476319,2450944,1962934400,1711336205,-1073740089,369098752,15406827,444262,
        192,1711336278,-1073740089,-1744830464,-949616405,12582918,-345767936,113731072,49152,15441920,444262,192,1711336240,-1073740089,67043328,1894167472,
        -528059932,1894167472,537707654,317420006,1894167472,-528059932,1894167472,-551238522,280523238,-371683840,1409023708,508973649,-1912586053,65176027,-1963816192,-788498276,
        143952870,1959922432,-461090697,-855766156,-855750284,-346530956,-347935129,-335484160,679016484,-1862354864,1477823992,616108402,140962036,2029528300,-17374701,-336628277,
        -335484160,75036708,770375948,472181826,15401228,619577579,1108339484,-351752126,96202240,1020323840,15401996,1257111787,15417930,619446507,-1974979336,-410363656,
        1499094559,1043255131,912614438,-1381651712,1869459367,864689408,-1853193334,-460663158,1368062602,1357679445,503730771,551947184,547889380,-315468427,-661731188,-1962522994,
        -1977220002,-218529777,-109050508,1124627955,-1258139905,-1947473151,-2034303786,3976329,-1053161100,-1958480011,-1093145614,-561280627,1946172588,1975597590,138841079,721740928,
        -422490381,-1785397458,520809353,1482381831,-1142335139,1510416145,1499289691,-2131588145,57999869,-2147332353,74711292,48975695,-1950136505,1979137010,33390624,1325336181,
        38731522,1946221696,1313820424,-347189682,1179076401,-347716026,-97495,-58716811,1308914688,1176234830,-2145916090,57999869,-2147332353,108265724,1313754959,1195836651,
        -1950136762,16548082,1313735796,1178993387,1005751235,-2146077193,141820156,1330597711,837504590,1195853639,703284806,1979711107,16547857,1313736308,434851663,1195853382,
        -41937941,-16550655,-58719674,1325691904,1191373647,-225721529,1946221696,-347123964,-1018738942,-41880949,-16550655,-58719666,1325691904,1191373647,-225721529,1946221696,
        -347189756,-1018804734,1243515645,39226112,74634042,-889269366,1946273014,717915916,-154064139,-337971490,720710148,-20513071,41281730,1048584564,1912733769,1228832808,
        326566656,378229328,-1031602077,6660100,1525610276,-2146505896,67127614,1048577906,1963393097,736856956,-1736214,-1947873024,-154825992,65876707,65065409,-1761587706,
        -561068404,-470355829,16828151,-654900108,-523117065,177653507,974419136,705721286,-204829968,66388901,1976499965,-1963947276,-1977569049,61600714,1976499965,4241654,
        -454502258,-2145815551,33573182,1048580722,1996685385,1662421771,79856384,-301963872,1228832963,74712576,-489627184,1375752381,-980748149,-1164382926,-487128768,100909315,
        -1953038258,1085970672,-136120575,1946222790,-136775920,-255360547,1228832800,24380928,-1933114553,-1764061502,-544517286,812957706,745784890,-800002006,-1947807514,-1947169850,
        -204829957,-1947169884,16155131,16220448,-204830176,63243172,1976499933,-259368736,-422517040,-1950053800,-204829957,-2114221142,-1977614089,61535178,1976499933,1713292266,
        -1201214157,1,-1178258586,-13418496,-791583074,-102585498,202138084,-215719450,-1150918170,1,1725772646,520537483,12187187,-781803968,1185718227,-1020115386,
        594932705,-1062706716,460652720,1721633201,-2092510253,-630061826,1713353118,1721750483,530545229,-960249805,-464519164,-435418015,-420273055,-695510687,-389809889,-1977221070,
        584578565,-1998007609,-389873594,580386850,-790572349,638286332,646579504,1720189001,572965633,-1429796291,4793994,-1023318392,1452015411,1944768770,536919811,-489561391,
        -489561391,-489555453,-100408623,1048641207,1929773129,-791555836,-153122073,-774796333,-773139990,-2133723414,-942536735,-1329333757,321549,179312242,-2066599086,-1342016064,
        -855591904,29685271,1526268276,-812953661,6601041,1952165352,1509548550,-402002951,-290716680,-118889895,-2029586749,-3996672,9318890,508973296,-1912586056,243928,
        524677608,-1949345698,281248747,-1949069574,-1178497311,-888994784,1236914574,12581888,-1897218557,-1583010061,104530512,57999960,1023606946,175440215,-1207950145,-1934890617,
        1824500680,-1917470720,-1412920149,-1409330248,-1901344628,113518277,-1868365806,-1845064704,-594609408,50446163,-1274837574,-350106353,-1899416817,1377733593,1977320706,1501620618,
        779403274,-1274871110,-1205744375,567086081,1962950016,-16398835,108334396,567089588,1596211460,-596491972,604199330,59089423,-919358485,61214345,61345417,-1828272319,
        855769091,-611442990,567089844,59095583,567093172,-1948545506,-1962929130,520094734,-1169077934,666108805,37495245,-1860537000,-1960916949,-524123693,869961231,-853887790,
        -2051399903,-853036029,-854543327,4030497,985271412,-855002109,201898017,-980540979,-2135237234,-853888000,52001,1850280461,1953654131,1297040160,542196048,1143821133,
        1679840079,1701540713,224752756,1953383690,1679848037,1702259058,1701868320,1768319331,606106213,168626701,1852400978,1953654131,1936286752,1953785195,1852383333,1769104416,
        1092642166,543582496,1701012846,1918989171,1393167737,1802072692,1851859045,1701519481,1752637561,1914728037,2036621669,2361869,1230192962,538984771,4544581,-1471873304,
        -401247231,663355914,-398129688,-1070384696,-335284294,192184488,1317078708,-2013265642,-1023393498,-1471883544,839152897,-396301340,1534394314,-167650840,259264519,-58710134,
        -2147256937,-327154748,-401478893,-2018229193,141820732,71042996,1639187060,-1343740024,975169604,1342523018,33900230,-966873624,-402651834,-2007474522,112461126,-335284294,
        41189544,646480052,1317077057,-1023409898,-1880555725,-167283457,1148551364,-466421621,1006651018,-1274449403,374243585,820707329,578076682,20747188,1957957748,292815420,
        54269364,-1749808268,28313579,-347858456,-402542587,937968639,-400062463,-947174350,19720387,669525898,281343556,31982453,468239104,-2012771839,1996423751,88508928,
        897001276,1967353064,1131669522,425600,-390069387,1007625220,-400657661,-269993627,-2006862848,1139337255,1187382960,1187382273,-397410048,1951947834,961013872,-1275014680,
        -400062462,112214986,67192518,16795334,1545398352,-397118376,-1276626647,-2004372480,1135405095,1187382448,1187382273,-397410048,1951947774,957081679,-1275030040,-400062367,
        112214926,67192518,16795334,1541466192,-2127268776,71246,-1979681304,663224935,-1975292440,-352304858,-400757972,393560773,-2143105816,1962935934,82362371,71044900,
        129238389,-402396032,-998227189,4253715,1005070216,38258243,4624128,1996472370,851680534,107383488,1912798336,-2130594807,71246,11803115,167777768,-1273990137,
        1964025857,605225986,1946364935,-1023233022,1586158387,-1866235642,-1672428800,-1975458566,-465509152,1019488832,-453609510,-1017602752,-1342048582,-152506720,-230823885,-2065258320,
        66370299,-33686036,-50463235,-1073082588,1458242420,233603984,-1070338933,918870158,1085800568,-958886400,-16760826,-969403160,-973076922,-402651322,1187381401,-1830289146,
        88524288,1553262592,-2065256528,-1341918534,645983756,-2081423297,-1280307772,602464394,-2030558173,-399265568,-1070390497,-930359157,9444874,-973208972,9518602,-973208972,
        208989450,-440349186,30244870,1060360,1104734458,963985576,-1975410456,82362592,168813696,-2045807397,9955548,-393017227,494141585,-1280307477,-941039478,-2046555102,
        583395524,-1975409176,550273248,-1192718672,-3933406,128976246,-1270755864,1106307219,-956371480,1187381255,-269996027,88524379,1541990408,199754935,108956226,-1186855448,
        -85415829,-503024330,-399250439,-1460863284,-2146732784,1946158462,89062950,129291243,2122318256,91553797,-348034328,-1332497401,1098180609,-1996580376,1100277799,-1879506453,
        1019413830,1007318016,-1341885183,-1341985901,-1008715257,1867385357,2035494254,1835365491,1936286752,1919885419,1936286752,1919230059,225603442,1885696522,1701011820,1684955424,
        1920234272,543517545,544829025,544826731,1852139639,1634038304,168655204,906628388,1143812656,1701540713,543519860,1953460034,1667584544,543453807,1869771333,604638578,
        -1191181637,-2135884312,1910796518,175505212,1951134946,-35079931,-436212501,-1,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,1726778197,-65121456,-2048523856,-1912316277,39750619,-75489397,-1341491728,-8067566,
        -1511456186,268140801,-1341361147,528803348,1566074459,-1341785623,-393943533,118381863,-1156341569,-611450752,1711284239,4389,101616512,-511613440,15,1723927398,
        -1070373205,1711282337,1745323,650029926,571648,-492083539,-266268677,554675046,1722509048,379699251,-1096063488,1722613788,1726516395,1725992107,309675,-492083539,
        6340347,-1950338202,-1419378108,1711573862,-219,1722508800,1150009395,-1096063484,862322778,38046656,-1956205722,-14326268,1711341567,-1070373205,1711555723,5160619,
        -1950338202,-1419378108,1711573862,-219,1722508800,1150009395,-1096063484,862322772,38046656,-1956205722,-14326268,1711341567,-1070373205,1711555723,12084907,1711313408,
        -1070373205,-524162932,-1196726780,-1419313153,47206,-1419378542,-1933560986,81838560,-4674714,-1096063233,862322760,38046656,-1956205722,-14326268,1711341567,-1070373205,
        1711555723,4374187,-1950338202,-1419378108,1711573862,-219,1722508800,1150009395,-1096063484,862322748,38046656,-1956205722,-14326268,1711341567,-1070373205,1711555723,
        3587755,-1950338202,-1419378108,1711573862,-219,1722508800,1150009395,-391420412,862346121,329302015,1528760079,-815966106,-1633050967,-1752459381,-1751345268,192349500,
        -259267534,-13703471,-1013485404,8857216,1977289455,-2029092859,-1007153152,1960512082,1662421778,79856384,201352608,6660616,-1961825298,-2097126634,1704985794,-1560861696,
        1525547109,-1500331016,-1396003714,-792428544,-1962301510,-1033008376,-1738237777,-1928615972,-781808389,-2094880769,-2094890206,-1753447638,1532582488,526212958,-12537,-1,
        -1,63498751,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
        -1,-1,-1,-1,-739639297,-253,-1,-1,62646783,1962230504,1228832816,175244288,4800128,-352095225,-1360490369,1662421802,
        113410816,-1460871030,-84183807,1946265836,-1429959941,-287114425,1228832963,124912640,4800128,-397314809,1202334337,-389808926,779416823,4800128,-2146995708,117459262,
        -477481358,-1960155928,-2097126634,-661977406,1963043052,-1460864261,-1946455039,-486822973,1048626159,1912864841,1228832775,141887232,921232266,-1012141270,-1976937752,1049232990,
        -896794551,1858001550,2042628858,-1898827000,2083964378,8332544,-523116335,-268181295,1946615680,283935587,106415243,-946940020,-125086895,-1258036352,145861640,-489561391,
        41148624,-906046710,-963972491,-22289782,1541830093,-1939929254,-1176990000,-192217084,2046546093,87238147,-20479573,-70210273,858129273,-276714747,-454942798,20901761,
        -2082966198,787157188,-779361398,79289995,-1393325312,58326224,-1442500058,536856449,2046611628,87172611,-1309703766,-2115706337,1241595887,-1195124619,-386086912,-2143485871,
        -1191676193,-661725184,1065474867,964012629,12187187,-670913152,-102573054,1085806708,-2133291520,-16772594,-1152384838,263829338,760342528,1085805547,515935744,62445710,
        -326414336,1476419327,4241496,-1899767666,-2116340776,1974097215,871773026,40864457,-779361839,-489160020,-1321306629,1391121156,-1912586056,-661774656,1342178232,861271179,
        486487789,208989451,4241438,243325070,536805394,-661890979,-611558881,-1019487741,-2143478666,-350522657,503734293,-1152384838,347715724,751691776,-1168046305,-661913472,
        516145667,-1073694714,1962944488,-947897081,-1070336394,516103943,-1073694714,1239120,1342665818,1273545355,-2143463424,133002951,-1896037601,-2116340776,1974097215,871772973,
        40864457,-779361839,-489160020,-1324780037,-1930767612,-1010695208,-1172437408,-1933881344,1358264,523001576,-2135269113,64523264,-1009634366,1085855886,515935744,1342178232,
        1593830539,-1021356032,210447953,976111174,-502959068,99350775,76164678,-3974663,-1288523493,-1221151308,766556600,1904806077,1953654135,1869182329,224222064,1685283327,
        1785227110,-1480889237,2052915168,1651925880,-1364431506,-13959249,555482912,623125312,673850974,137060137,436210447,477961083,674899725,729688354,876360572,960443710,
        959985440,909456429,858927403,863792,-2075560121,1951232843,1985049935,-1907716792,-1873899700,-1840082608,430931,520887815,488315674,472582684,-1756954614,-1723230136,
        -1655858357,-1605329073,-1571643055,-23725,-436096944,-435113851,602495108,-148571571,-301677949,-297607034,839248515,-289109276,-1396375998,-169719058,548988415,105352711,
        12189491,-1951665376,55020055,-1703954,-1,-1,-1,-369098753,-65398,-1,28313168,397444582,1085834470,-1329558016,-425662944,-423611872,
        116795120,1948254359,645932555,132055191,-821899944,1448302076,-326951343,653036304,9899648,7788832,105286555,-427691893,-390004721,140413700,-268377215,-661732597,
        -1409281863,-131800950,91543612,233567714,-14308208,140935431,1175058432,1725537032,281314048,1532909855,-816314531,-436096944,-434720635,-434065276,181229728,-1202708785,
        -661782464,-88067496,7341702,7212683,7083659,-1461116933,-1202708895,-661782464,1846446586,1813416192,1879492096,1492844544,1636690207,-1342170904,407431168,45150346,
        -1978121752,-402345784,-393603014,-1335790871,803797514,1954588696,-202638589,-1054525,-427163472,-1340595480,-387872254,78649371,350807434,-401887208,34347018,-31130844,
        41210500,-527826676,-51901520,1630660887,-1325417240,401401863,145805450,-1978145304,-402018064,-930474018,-672648528,-370636265,-1696046833,440575,-1340616984,-387806713,
        145758151,-1058478454,-1979076585,398059745,-1343747152,604113943,-1327461637,397010955,-443927888,-384326936,-1325768489,395634699,141828264,-1070375941,183033,-2081944912,
        1971365911,-1979600649,394127590,-511048784,-1340639512,-387610107,-1578887313,-1578697180,1609042864,-1977611241,-401887008,-1863772325,196147808,605507048,-1327461665,390719499,
        -1973387543,-198919709,1976009964,-209000436,-855705886,-2135625867,-1023363901,-20987853,92874255,-101058055,87631609,-101058055,246465529,199817884,65539607,-1878856960,
        1975560399,-1325753326,385411117,256014,-812645653,868417828,-1901018176,-471270756,65539606,-1878856960,1975560399,-1325753326,382789805,256014,-812645653,868417828,
        519816128,-1912586056,279013080,-14326272,1711276287,-432820144,-1468930960,1951950368,878086,520159232,-7935805,1048602740,1946288201,1228832777,41157376,-13412117,
        1958725518,4622848,158597180,1182073148,-336534344,-257640445,1946499878,-1409614791,-72628084,-1979685472,-1962908122,-1191156970,-1595408372,32815880,-2094580248,1704985794,
        263515648,-1260071704,-456136701,-890764620,-402541340,-54270779,-464474778,1480632417,-293395084,76113412,1220038686,-455569920,216042081,-1973295608,-973078506,-16777210,
        1642513542,-872865960,2122381191,393543686,1966383336,-432820201,-1468930960,604533764,204961276,-399250684,779302043,1949611240,-1608204741,-1472919832,-1102023679,266903593,
        -1975547150,115835103,1946484608,-1607221698,1958798208,-1607549386,616444395,-33246048,-30903092,-2094762808,-202701370,149191,71747328,1187381248,1187446791,-956301300,
        2630,1966353640,-397808836,-596495256,772558476,-1996270453,-617412010,1966347496,874637322,-1976695438,-1979764196,-1976696226,1854407276,1284124165,72255489,17254086,
        1966350568,-242685937,1962950528,-386431225,-142085503,-2009849880,-1070397866,-32086399,-1007187969,-81327871,1326383648,151200021,69280335,557600530,-843122809,72780704,
        1966321896,868083759,20719218,-964486540,1946303494,214336266,208929596,772195971,1946244155,113672981,22297390,904596596,678690876,22297390,333985397,4161777,
        -142145675,-2014180120,1418342135,-251598845,1317803912,1418407436,173443332,18245249,-339725568,374243604,213123073,451657778,18239105,839693312,-254482240,1962950528,
        1358399241,1492241640,-142084217,654901699,35715987,141829897,1326383649,52499733,580341513,1325990689,69283735,1008160530,-223,-1,-536870913,151135490,
        -162463958,-2144925681,35979999,1358899721,654839798,620945216,-15003902,135263828,48169039,705233445,267800831,-545239288,151135490,-162463958,-2142304241,35979999,
        1711217426,1325928438,547588864,950348288,16776960,0,509606656,4243280,20766606,494154615,10487542,-2144701183,16818190,-100642328,-31153692,-386162202,
        -336068576,-1610156523,57999616,-401871880,645922851,-335675232,-1269237503,-899735808,-1325793278,329050123,-1974452212,-401887008,-78113897,196147907,605260264,-527806273,
        -2065167440,-1006938093,9969289,10094220,10229385,10358409,-92013629,1242002432,-2035019916,-466435079,-335412806,-1930825692,33667584,1007625452,856323343,870003648,
        -338545719,-326937224,-1997763826,-386269114,-108330899,-940699728,3142,-1995678069,-527824290,839853292,-1961789984,5236959,1586092331,173947660,753656439,1055448971,
        -153539840,57934276,-167616887,57934532,-167485815,57935044,-167354743,57936068,940072585,-1267400634,1532516603,1566399065,82362717,-1056642111,-356449047,1355020292,
        1139146928,-930463516,-393592604,1610335064,1086018334,-153383424,16818182,113651317,100728992,512607118,468189344,-453376001,-335666015,-436147456,-437716063,-1610156290,
        -109805568,10495616,32241791,1595890681,-83885366,106979167,4241438,646568078,378273895,11534441,-202866458,520516608,62152967,1552808911,130491936,-930283521,
        637853889,-1946007671,216580552,71796774,88589862,677154202,-16267482,-1043297025,-1993997088,-796130745,638380225,637814664,-1845147706,-930327034,915259534,-454515310,
        -388986112,123601127,638082189,637687689,637814664,16713671,-427773702,17770096,12707871,38242598,637584104,637814664,-63545,88589862,17770130,-536801513,
        251658509,-13701119,866208046,-805302336,-1912592200,1095888,414767246,-54489600,-13371853,1894121648,1726599505,-145119757,1946157505,-2135907071,683176166,-1898410496,
        1724944064,2101072,-121498,571441151,-363305472,-268393512,503385902,1558946129,1212868858,-776988299,1105749222,-1341098680,-396302625,125126712,1692860336,-1018679320,
        1642332852,393494696,-397390258,41156918,76088459,-435680168,-420010911,-1979599775,-343873852,-1044345711,-972880672,-1047768637,-389953909,-1044315388,-1017574168,-1912586056,
        1763086040,1730579200,2942976,1894121648,-2040461537,-2038373180,-326412860,209052682,-33134975,105808383,183173184,-1090099583,105808383,-815988735,1967633384,-422465509,
        1202382948,-575663499,-1578606362,-1341557433,-396040449,74729368,-2132409424,-1335926845,278980657,816898186,-820995608,-396402693,108330798,-889585740,1408958466,641227917,
        -63545,-524171124,1200170500,-1043821566,-2010772248,-970587065,1536820551,-435048198,-423130592,-435900383,-436096991,-419450847,-435048415,-423392608,-436031327,-436096863,
        -419450719,140283297,385945382,638606477,1428095247,1187507339,1560293380,232784143,17760257,788475632,-1070358195,-1194328049,-796000216,-1912596296,2144472,-466435954,
        183032,-1207558573,-661782520,-2147479365,1971324543,75464751,-2094434880,1962934911,2145059,-1845147706,-1912594248,-2049088,639601446,251660279,-4717195,-1207702784,
        -617414404,-1017438457,-1064384372,870774203,-1543453760,-2046820320,-1543503872,-2046820320,-1543503872,-2046820320,-1543503872,-2046820320,-1543503872,-2046820320,-1543503872,-2046820320,
        -1543503872,-2046820320,-1543503872,-2046820320,-1543503872,-2046820320,-1543503872,-2046820320,-1543503872,-2046820320,-1543503872,-2046820320,-1543503872,-2046820320,-1543503872,-2046820320,
        -1543503872,-2046820320,-1543503872,-2046820320,-1543503872,-2046820320,-1543503872,-2046820320,-1543503872,-2046820320,-1543503872,-2046820320,-1543503872,-2046820320,-1543503872,-2046820320,
        -1543503872,-2046820320,-1543503872,-2046820320,-1543503872,-2046820320,-1543503872,-2046820320,-1543503872,-2046820320,-1543503872,-2046820320,-1543503872,-2046820320,-1543503872,-2046820320,
        -1543503872,-2046820320,-1543503872,-2046820320,-1588592640,807731216,1479556096,121378676,512431474,-478150640,82559024,-1976631502,-341294457,-1576554494,1235222601,-1342129408,
        1006875834,-1157204985,-725960704,-1983672829,-1744805098,-2097041261,-2081553214,-1070398230,-1577038173,-1976696734,-1549266297,-472842166,445090606,5022632,-1976636463,-2136462681,
        1705000932,180364288,6660804,849840686,1713801384,1095936,7989254,174885414,189565478,603998624,1963080958,2088773141,242552073,1206437258,-1964471808,4253889,
        -1995978614,-1610588146,121372745,71042932,1929380024,119584771,12189491,514585376,5291783,146391091,-156503296,268470022,-189069708,515958785,-2097125984,-1007811390,
        2041169,-523107407,-235532623,1913126016,1505820162,-1962986813,503335198,-561056205,7616197,983534126,1458766760,-374885699,1593570347,-1064380276,119849759,-1744805214,
        653742672,1319305292,-779003392,-401820439,-782367449,1351388134,84470016,167798432,-2146863617,-534503453,200000266,-472775247,606135168,-1564276001,-1031602074,-1597772283,
        1183318089,4890624,-1610529144,1183318114,673760007,673730640,134238288,268437504,1073745920,1073758208,673988608,774514989,808462622,808464432,12351,538972176,
        16986144,466618115,-490529840,466623440,-1784610988,-22733872,466676103,466623440,-279475805,-261809200,-129894323,-415634343,-399574951,-406786094,-26286350,-11272365,
        -272109404,1251409920,466623519,466623440,466623528,466623440,49808376,58196924,336855672,16847892,1966337,816840766,1085834470,-1950315008,1509954334,-1070338765,
        857735358,-1178235137,-1410105344,268486017,-277680581,4241490,512344206,-1070399469,-2134916978,5290240,-1765881716,-1415237976,-1070335774,-2134916978,571649,-1426063176,
        -1325604181,864347697,-1094676800,-1061181306,571649,-1523660660,-1325669717,-1098586574,12560454,2144512,-1523660660,1476125355,855670463,92874432,-432820129,4241540,
        12245134,1015079954,-1979550412,1914079696,-432754688,-1181698940,-617414626,-997535181,-1978932760,-19266608,-1326193980,198502575,-1364143990,-1978937880,1960000496,-393301998,
        1074531266,-1901010806,-1341407512,-1333467595,-1148918218,-661913600,951107726,-1732344602,49064,771752633,1111659181,1962884332,46628871,-1416476086,967896546,-1665235738,
        573352,771752889,-152268115,-527765808,1975794412,1086816261,-337466478,-2065286480,-1079467330,112787576,-1523649792,-109721211,-1912586056,270436824,-432295936,408545412,
        8851072,-393301996,1084754746,-1380970379,-1475661336,-2146995195,-83851482,2008748523,1200500410,-202053626,645924212,-956628857,402686982,199791792,-1976556533,-1340190496,
        -393943470,1478488125,-58716300,-402426880,1404043573,1055425766,1085850608,-388461056,158475740,91555132,8857216,-15365,60746239,-2065280848,-1912586056,-430853928,
        -393301884,-1062729026,-4979340,-1332737301,179366036,-527814620,1387273808,-488078106,1951932399,-1869561072,-622328972,-430723072,-270276476,1342578371,1962123240,-1900006644,
        7651264,-469383386,270958832,243322624,-1271922672,-855134208,270958608,243322624,-1272971248,-855396352,11200528,-1340143784,-1115363756,954837753,1346380801,1476403432,
        -789177229,-1336917980,1485104725,1929384168,-430526451,479455364,-400787736,-1161618317,-628376969,168805251,-2025818688,-1258180397,284983312,61870196,-58711883,-402164704,
        61866053,645931189,147783696,1342181422,1200500307,-221976570,41179227,-1336884231,1485104727,281870516,1405337651,1949367424,1304579,1052288,-1909564624,-1679292857,
        1946661106,-1329333799,163113102,-527818740,-1259827536,1487979273,521045222,-1329956933,-1903892903,1944585799,-352094990,1521520751,28345574,62406529,28312181,-1326573685,
        864347739,-1946209326,-947188401,41665586,-1036861186,871621290,223316991,-1003305077,-1057095045,-508640718,-2147125773,-713687054,-2065277776,-1409565284,871366633,39291593,
        -186118476,343186688,-2065277520,139955027,1334495539,174033676,1528507112,-2065277264,-2129673341,1941607931,-9180925,-2065277008,-423579453,-18076,44590308,-119405452,
        -4650005,-1469782785,-502237951,-1206862856,-1124065863,-1628853159,-453055717,-1704096,-1,-1,-1,-1,-1,-1,-1909331201,243920896,
        1235222624,1023288320,858420482,-975466789,-2147453898,1963792764,415364892,-1961462504,1625522649,-389707168,-393609199,183026058,197691904,-401951541,616759359,-166808561,
        -773271068,350802408,-8338688,-2042071289,-771804421,38702051,5279625,973103776,863307590,-2034224302,1244067781,-1580727552,-388956082,-1269118973,-289109490,-339375550,
        -301929728,-1966801334,-352261180,-1975325184,-352261183,-1018499584,1122944138,15451530,1257111787,-997538562,15401195,-1047903506,15401195,-436253970,5814302,2025576590,
        32553715,855642296,-1387282945,-464961815,-435418015,-420273055,32553569,855642296,-1385710081,1933223145,-396929525,1583302963,1273699186,1084776932,47206,259325952,
        -201524351,-54852236,867625971,1354964928,637897254,1642333576,1642466316,1642525476,-1072994728,854071669,-2132769063,-164425756,-590347087,-498727565,854995961,1712843712,
        644220043,-141884109,-1476393799,1711764991,1174988993,-930417182,-115353973,-61,-1,-1368195073,-1364808040,-1339183193,-1297895330,-1331907933,-1364807454,-1320570969,
        -1297895055,-1321487709,-1297894887,-1304120669,-92229008,-854428800,1436307520,1183575179,172394754,-346514083,102654024,-326434710,1981152384,4241418,1726535822,-2127631612,
        -124314,1724033,872217346,-992440640,-167705546,74711490,18364100,-1912586053,-1965519909,-472836770,-426246354,520554413,1720242017,1948682261,-855592448,273058368,
        -2143510748,-2126769806,367529335,49211415,95683955,-1023026456,-2013236064,646452294,1720189044,-622279915,-397184507,548406503,138737190,201487552,360611841,202470666,
        -1977200638,-1073084604,78643829,1476413064,-402634590,-1030879985,2142697611,169180800,-1005975948,-956431755,-2011929078,74711398,74901050,1256917428,-402275608,1114768850,
        1912856040,-386364867,309528068,1947335808,147322378,300428404,-400037115,753403219,-400592379,2122319108,91556373,1912931560,21954065,1190643061,1962934554,86566920,
        753402859,707445509,707406378,707406378,707406378,707406378,707406378,707406378,707406378,707406378,707406378,707406378,707406378,707406378,707406378,707406378,
        707406378,707406378,707406378,707406378,707406378,707406378,707406378,707406378,707406378,-402416407,2104624345,-1341921560,1156982320,41205768,2122318092,292883221,
        642777612,168248458,-1342016064,4622340,4760152,-1241248024,360611967,168195083,-33393212,342231750,1946248840,1994799620,-351685628,80078900,-1962677528,-386888742,
        -85457845,360611843,-402295541,426902526,1912913384,46721044,-236449934,-32869884,-613088946,-352042520,71690243,72607939,1625827442,641773571,-1073199882,17564276,
        -402634590,-2014837641,-401640956,175243922,1912912872,68216837,350749675,585679620,-399150588,-1977220305,1134693956,1208403456,1223184384,64350212,1760042610,-1948611837,
        58452208,1912883688,39118863,2112359026,-402296316,65733586,-1023158552,-1575729527,-1974271884,-478146466,-2114223969,-1995606437,1183388230,-402148336,636158903,1208257318,
        67059016,-4717706,-1059027453,170264288,1183387204,1686775314,-1597178366,1183383669,-1628912880,-1974439421,-1977216930,-805436804,-157233280,57934275,638635904,638475402,
        -1056619381,503710440,4374279,-1430025558,-1968569936,-1968526652,96905927,-1662515311,61663235,-1209528462,-401968639,91358176,-352111128,-402148347,-389872841,91358021,
        -352115224,53078019,53995715,1156063090,1208403458,1692954624,57993219,2145914738,-401968639,91358120,-352125464,50456579,51374275,-58718093,-385649407,857604247,
        -992440640,520160310,-972944664,17670,4589254,1193705472,1139335168,-1163874303,-387055114,-1461189759,58452223,7683712,-2145947134,268453646,-1342102040,32946864,
        56879342,-385905944,1719731037,-956301798,-402647738,997331855,-1900006626,70698200,-2135744767,1929315304,3532842,1048585586,1929511029,552335363,-1900006626,406242520,
        -2118967551,1929307112,1192132618,283643904,-1274711296,39446533,40364227,1961369458,1208403457,-1796730880,44361730,-1343746190,-401968640,91357912,-352178712,36825091,
        -1022081400,1912749288,21620771,4720326,40495248,1912764904,8710163,333975154,-1981533695,20714566,548668788,-1023278360,7675530,-1014969346,274606720,1183386483,
        306612500,-351254903,340182809,-1977220352,-165281212,-1960440220,-470332644,-1995422071,-960294314,-1275063226,359041025,7612040,18501249,669565696,-1977519616,19140678,
        201646272,32946848,1370350,547884658,-860617612,1084753643,-1431042699,-1023307032,2145931603,1979661312,-339442172,441111,-1460394823,-401705856,1743314592,1274339840,
        -2135626123,-1017423367,707406378,707406378,707406378,707406378,707406378,707406378,707406378,707406378,707406378,707406378,707406378,707406378,707406378,707406378,
        1344940586,4241438,113694862,-1325465458,-434051552,-1900006496,-1862223656,1411317660,-816308480,-335415366,-1023374174,67112970,37756928,-335416902,-1275032158,1960256544,
        1824413200,1927336115,-102021629,-2040615890,9281760,1149970115,48808197,-1979694430,1134695494,306612736,1151483684,323389952,-1979693662,-390065594,275155462,-1067391872,
        -1005976596,-1979693406,19140678,201646272,292981408,168814208,4694726,138709542,-301730118,1095875,50489079,-763359674,-490647552,82362636,626577419,516096015,
        12180366,32553473,-1021349901,1317727538,-578361344,1929300456,3270672,-1910633614,-1172329253,-487718416,12174312,32553473,851668467,5147373,-388145176,208862882,
        1912605416,32553479,-320689428,616124867,-24319756,-138801038,145288193,971507829,-1259085091,-1017513600,855570920,340167140,359041219,1328838,7612040,18501249,
        -960235264,36358,7612040,7677578,292873226,605046410,1954561183,1959591438,1954626564,-33822714,-1173230599,11535350,284092654,1929248744,7071747,-1101965629,
        -239468478,506113,-498930004,-1017226757,857624915,-120025408,-1668284232,5512959,856322847,-1912206656,-350522112,-1145031914,616103956,-1912206604,-401902336,-169681764,
        -1259375285,113703296,1493172366,547930971,-860617612,27791339,1474823540,-1475941378,-1274842108,-1178339055,-138742748,-322948351,141889704,-488872984,-109005578,66501315,
        -1007811920,1910796518,-1972312381,-1015945532,-2065284944,-1912586056,7512536,876380390,-436272523,-4987509,1891499827,-769201739,-2065284688,-789159452,-527822812,-452984903,
        974136417,-502238012,-1232290826,-1124067143,1659483541,-1327895790,1719985730,12250419,28861952,1711276032,12174643,868388416,-781803777,-492083504,281444601,536935041,
        1135667314,1642366182,1642466316,1642525476,-2065283920,1711276223,443,-583834112,-1966765210,870289140,1073789430,1721689738,-1969237039,1722640116,-253639885,1169179765,
        1642366182,11583656,-947840139,-8318976,-781049856,41635174,1185973483,1085834470,-2585088,-1107348508,-1209420243,266567889,78771763,91478992,872014406,-339725578,
        79269905,-1460589824,1711764991,1174988993,-930351646,-2065283152,-561195381,-1124073281,1189721701,-1230587120,-1124068935,-1997949327,-1963005167,-31182267,242549308,-2092149365,
        1971324098,1166704718,-1007030706,758263857,1953724755,1109421413,1685217647,1767982624,1701999980,840960525,1294807344,1919905125,1917132921,544370546,758329394,1869440333,
        1092647282,1701995620,1159754611,1919906418,892351008,1835355437,544830063,1869771333,537529714,758591538,1635151433,543451500,1869440333,1126201714,1768320623,1634891111,
        1852795252,1109396746,543519585,1969516365,536896876,1969516365,1092642156,1867325440,1701606756,536887840,1969516365,1126196588,1342835968,1953067617,1749229689,543908709,
        1342185521,1953067617,1749229689,543908709,1056972850,1061109567,808517695,1330785585,1917132877,225603442,808722442,1867328818,1751347054,1701670770,1633960224,1919251568,
        1767982624,1701999980,891292173,1143812400,1819308905,1092647265,1953522020,1176531557,1970039137,168650098,825242400,2036681517,1918988130,1917132900,544370546,1411412591,
        544502629,1954048326,543519349,1953721929,1701604449,537529700,758198323,1652122955,1685217647,1920091424,168653423,875574048,2036681517,1918988130,1919885412,1937330976,
        544040308,1953066581,1920091424,168653423,758329395,1652122955,1685217647,1852785440,1819243124,544367980,1869771333,537529714,758198326,1802725700,1702130789,1852785440,
        1819243124,544367980,1869771333,537529714,758263863,1919971139,1936024431,544370547,1702126916,1869182051,1917132910,745697138,1701597216,543519585,1667590211,1850286187,
        1818326131,1769234796,168652399,825241888,1328498989,1297044000,1920091424,168653423,842412320,1937330989,544040308,1769238607,544435823,544501582,762602835,1853182504,
        1952797472,220819573,538976266,1850286112,1953654131,1095320608,1397706311,541280596,1802725732,1702130789,544106784,1986622020,977346661,824183309,1395470902,1702130553,
        1884233837,1852795252,1917132915,225603442,909189130,1699556660,2037542765,2053722912,1917132901,225603442,909189130,1767124275,639657325,1952531488,1867391077,1699946612,
        218762612,1378361354,1297437509,540876869,573654562,1497713440,218762537,808656906,2035494194,1835365491,1768838432,1699946612,1769108835,1277196660,543908719,1277195113,
        1701536623,537529700,538976288,1851072557,1801678700,1937330976,544040308,1953066581,1667584800,1953067637,1867260025,168651619,809056049,1936278573,540024939,1869771333,
        822742386,758200631,1802725700,1159737632,1919906418,925960717,1143812152,543912809,1631985712,1920298089,822742373,758200375,1802725700,1176514848,1970039137,168650098,
        842544945,1936278573,1866670187,1869771886,1919249516,1767982624,1701999980,908069389,1143813424,1701540713,543519860,1986622020,2035556453,1159751024,1919906418,1968318509,
        1699946606,695235956,538970637,1226842144,1919251310,1229201524,1330530113,1128879187,1936286752,1953785195,1852383333,1769096224,1092642166,-670429894,-1272327165,12058864,
        515344992,62406656,-254531148,1610657792,2209641,-1164198640,-1327962647,863037070,-1334712640,-91822528,-2065297488,-2048524112,-90066,-1573990154,976158718,1979710982,
        179986,-373634371,-478098150,-1160528449,-53689367,-1896873800,-419450664,-1147017695,529268704,251660279,-491058315,-1960866817,-1899723257,-435375896,-435113887,-434982780,
        -431837109,-426594229,-423611829,-430657393,-434982845,-432623551,-436162493,-436162496,-1173573568,-1326578702,-1333467631,62437889,-1174294290,-1158806568,-1158937670,-1158937638,
        -1070464064,-1166558226,-1329893697,-300446975,-1979418741,314114647,-1151353600,-2082435863,-92207678,58000345,1257124016,313583615,2025686246,-528291397,1468713267,-1123109886,
        -1813398651,264471537,-1164575871,330349170,12158182,-490720511,-436162308,-1975458749,1027663072,242548736,-1179218757,-1262682088,205777339,347143915,-1951365914,15429862,
        15401195,119828964,-1951342454,-997560090,-1934593562,363884774,-1917811482,15429862,15401195,-2145095196,-1901010806,15429862,15401195,-2145095196,-1971272458,-2146994720,
        380666060,397444326,-1901034266,-997560090,414216678,482182374,-113972804,-215719452,817390054,-1127182848,430964992,2112390374,-424824596,-18076,44590308,-119402380,
        -1179119429,1287454749,195815868,45743851,1365304320,-401372997,-463926818,1946265700,-1141972464,498710544,-1133527808,-351565591,-412292866,-1326586904,-393943526,464580086,
        1676182758,-434327354,264628356,-2065293904,-1341131288,-393943507,514860139,1021871334,-434130925,983427204,-2065293136,-400937240,-873985165,724035639,-433999621,279832708,
        -2065292368,-1340992280,-393943518,12521891,-1126712064,-2134176279,-75448093,-1341491904,-1115363650,736738537,-433803061,-1335827324,-463149360,1946331236,-453448958,1946265700,
        610329850,-1963776771,-422465312,-1469782940,-1963297534,-1335826748,-393943515,649122962,1810400486,-433606650,-1158893436,-1326578754,-393943512,699456641,-1947695898,-433410011,
        -854608764,-855591920,-1973296112,-429126432,-421493151,-433344415,-401690492,78182374,12192884,-1188447456,-402646343,-1578890793,-1578697436,-81518108,1085809126,-958886400,
        4614,9834112,-1777434496,-386260992,-223334756,-1174707994,116850687,1948254358,-956833273,38406,1048676068,305397874,1085283188,894953552,1968750602,-427815934,
        896002182,1273402032,-351677464,1967171639,1971365892,164030471,300613808,3948324,876349042,99287671,-1341541400,988303360,-1833895371,1012419558,-436046848,1913046858,
        -82706432,-1341548568,-393943508,432878370,2133116042,-1084815602,146390876,1605300736,-385649416,-58719947,-167086806,33592838,636027764,268483329,-469056557,-58688647,
        -2147126102,175486716,9832182,-385649662,-738787064,1975057536,-1777928664,326369792,9840256,-1775861513,116849920,1946288152,-2142966974,-50325466,9832182,-348883960,
        -1644396490,116796789,1962999958,-1777928662,326369792,9840256,-1775861509,116849920,1946222616,-2146374898,-33548250,9832182,553940228,-117434594,956072131,116793205,
        1946288278,-1777434612,645924864,-335740778,403603461,243270144,-116916201,503087299,116794997,1962999958,-1777928675,208929280,9834112,-1775861756,99351808,1576576,
        386826241,-1007090688,1515141,503924597,116785175,1963196439,1392279612,116798325,1963458583,386332214,276038400,9832182,-166234878,536876806,367726708,9832182,
        -166824702,536876806,645924724,-343998440,389951492,1392279552,-1007091340,908729656,1178942034,1574646,-2146536188,67115022,-393936712,365767574,-2134640315,-83879898,
        -343604808,8240110,-116895512,-1326402365,-401695741,-239851368,-1847062884,1962884136,8239904,137619536,1946172504,1946237972,1946762256,8239884,-1157202456,451412093,
        -2134640376,41287676,-58672149,-352160428,-721649517,-1544879499,1967520896,-1873810685,1975057536,9955587,1966603392,11266307,1968372864,13887747,1967586432,14084355,
        1946307048,354826791,-2139982848,58020860,-2147450647,2020871420,1966341248,-385830907,-58720004,-1341819596,15919361,116835320,1962999958,386332186,-260832256,1509110,
        -385649656,116785310,1963982998,-2147095585,-33515994,1576576,-1343686136,-2131016406,33573182,1048577908,1963130953,95965193,-855526465,116807696,1963458584,1355020793,
        109494323,-1065091047,669516660,-1662298093,-84549399,-81103384,-165026071,268473862,116790644,1946288278,386332181,242549760,9840256,-167056387,50337542,1810432885,
        1206450943,97338666,-154928645,-2147477498,-1007091084,116835320,1946419223,386332407,-260831232,-1763052880,386332160,-462158848,1509110,-153258744,268473862,116788340,
        1946288278,-1775861553,243334400,-394264463,-386268857,-79353354,-1070392371,-1078696469,-315420467,65651705,2028210943,1006403635,-58708356,-2144633276,91510780,1968766080,
        -164319201,134223622,850408821,1509110,-1339263740,386332208,594871040,535506608,766559224,1509110,-1340836600,386332195,192218112,116791728,1963130903,46150146,
        -390057248,-1007087058,259580938,1195164810,1396442236,113641342,-134217703,751078083,-1685996729,116840238,1963458583,-1685143979,1509110,-163416828,50337542,116798069,
        1965031447,-1777928682,225772032,192687676,1967979648,-336547836,-155176446,33592838,645924724,-1325596522,298379488,1139523634,1509110,-338332384,-653465374,-646782838,
        116798699,1963065494,1949187119,1965767817,3729418,-256321931,1020193614,-401967827,-931856342,-347410248,2083531968,421956287,-1576348416,-1007091687,9840256,-1682391299,
        915126251,909836314,-1012072420,1509110,-167414776,67114758,-1577411389,446890112,1876736,256014,-812645653,-885397309,646589300,-58720183,-2147126780,896927468,
        -1962891032,-2097126634,-1460926782,-84183807,1946265836,93005563,-83868023,1227262659,83656704,-327154318,-401967610,-1960443779,4622597,9824451,-644955764,-779290741,
        -326909554,-1208186104,-1979534588,2046611460,-1963947501,146342228,2044907776,-791611135,-169680175,16155050,1976303136,1355187166,-713699330,-661731188,-1946521922,6940924,
        -1070390669,918935694,1397751932,-611530612,1482408763,-24967819,-1962314752,4843772,-2147220878,-1995914109,-1950154682,853510904,5022207,-796138505,-1618222127,1251999824,
        854062592,-775748609,-1748892704,1344179139,-2033044736,-772043814,66048495,1225193211,41222656,-100408623,-1949922365,-1158860065,-1957298048,-1308914704,1957163780,525579,
        1592816970,-1007042509,-1312412834,-1008151805,-1912586056,-424628008,-1564462460,-1901985675,32684544,854480304,1430056128,-1313864076,233538790,9113216,15001601,99091314,
        -424103936,-402209916,359858587,-2065255760,-1178992453,12189726,57272320,-352210200,-424431573,-1900006524,1053042368,-2135817980,-2147476504,33584446,-1263529358,-1070365466,
        -1004093298,-1308551106,190593,95929095,314114739,-854543238,1376875283,-335415366,1971365978,-2130935784,82513780,309661864,-489855000,1976303328,1976565465,17426643,
        162815211,-177073203,332206516,642927986,36504971,-1964471808,115458252,-2147366528,-457175836,1490323972,-1977167862,-822214027,-855375432,-2145684717,376703740,1947335808,
        284983313,-1047917452,289149220,-1040315020,28958443,-854805504,-402361581,-1007091566,-1612149072,1950394608,-424169462,-117395068,-1332708885,-259200878,-311115766,857659530,
        -1899459648,-1060926760,225707240,91557692,1877514672,-20840720,-166677048,-469695003,17081338,17174156,-1014317005,225709860,91557692,1273535152,-20381968,98956993,
        413393921,437160961,5021953,-1593769821,44236878,1275512577,-1943137792,-956281330,1124194310,-636580813,-2011170047,-1023380210,-2065254992,-2135314245,57966842,-1179008069,
        12189715,33417216,-424234813,-1175733372,1954675328,3794950,-1179003205,12189717,31582208,3860675,-1174387480,1018888695,-198919936,1954588908,-870389748,1967912674,
        -343886608,32619018,1946238188,-115297277,-1901004093,217034216,-1327461880,-274077554,568640507,568785700,-1088118300,-1195138586,-155582464,78704131,-874583826,-1007812432,
        1381061627,1428051798,1086254219,-2116121088,-1962933278,83656946,-1668676493,-422510468,38027,880071179,91612292,-351989016,1976368683,87746565,-855760149,1575486837,
        -31855867,-402295348,283837727,91606270,-351946520,1976368647,99936259,1583292253,-816096934,-1,1793720319,1392513028,-402652741,-1017446398,-397324203,1482227716,
        -880032931,11598492,1088701414,1088741514,256014,-812645653,-661928826,11598492,1088701414,1088741514,256014,-812645653,726910086,1358660056,-529376503,-1950103838,
        -436162357,-1975458749,-2042567456,-1327985724,-465312256,-455046592,734299712,1358660056,-503025143,65404892,-2015040552,-1947629838,-1176073255,-355270652,-1107295559,652986049,
        -2116777072,-1191181342,-792854524,-1877480506,-2010767184,-1434451835,-1177318585,-457310206,-1878791226,-1191385601,-1064390656,653733522,76727853,1075062672,-2054674905,1202356224,
        -419435806,1381099910,-490613109,178440,1509955816,254593,-402651975,548405261,1509994728,-402652487,-54329343,653733522,76727853,1075062672,1347506727,1476433128,
        -387818919,1085808323,-958886400,-16772602,-162442465,141869254,-2147462936,-202686226,1949353718,2746376,-351211904,777738739,-397211766,1130037341,-1966869022,1390957319,
        -498902272,229688310,-1342158616,4450314,16432067,-1157610264,-1679294208,2109457406,3663872,-402620997,-1144783218,719848224,16825088,-1006730776,78768266,115927250,
        -389707264,616759297,663749647,-400080876,-1144848383,246677511,-1329393459,-1337727306,-1337792968,-465377787,-436007839,-28776351,-64724508,868442598,12123391,784371376,
        641927050,-2147449464,-203274326,856090111,12123391,-1967092048,-2010758393,-1434451835,133489223,102654147,-2065248080,-1912586056,1730578904,1763085312,-422465536,-1197283196,
        -1427569804,-422400000,-391008124,-527766282,-269963088,-1143852052,-201916352,280230026,-402613784,-1918780353,8389888,1086050867,-1963723008,-1944155400,8448000,-1329807896,
        -1199249709,-661782488,-795950962,1711284239,-475,2232191,13147626,17772272,-1331605218,-1199249708,-661782464,6887054,6760075,-1579433496,-768409581,-150978373,
        15859,602604405,77200,12253322,16744464,-1030875788,-1178586266,-13418496,-1410111748,-964636674,132573968,-1161600737,-1933901824,1751478,-184661272,1464947536,
        414713374,-942109184,18950,16744448,512236404,1220018252,1723895296,12173363,-50384064,-22285466,-339476785,1595869152,-1017619623,-2013213464,167788838,-2130348828,
        71246,4623043,4269706,91546634,18239105,-956644608,-16760826,1317671088,216060422,105253388,4138634,168092864,66239172,-1595897106,-390070133,66566662,
        82624750,603996064,1959016975,1059457072,-1191642368,365793533,2108695410,-1977218895,2122320476,141820673,83984000,95486581,41146682,-470361722,2078857355,1371798524,
        -1190923078,-773324612,-2136412985,-152959371,82542768,-322452504,1497409602,-1594062141,1177157701,652267525,-1979423498,4628696,638010922,33842422,1191576259,71707136,
        -1161566326,1067451378,1947149312,-1461137390,-1342016508,1059490307,-771444480,214174436,1978199560,1042710727,67895296,-198919698,4065014,-401967744,-186464416,-335970124,
        1042710541,652771072,630188069,-1195121614,1727463440,38142732,-100609408,82185446,82232454,-661928826,-2115583350,99008907,99009670,-1006910330,-1073250678,2114585319,
        172025862,-402293110,-3995078,-1,-1,1358954495,-1595531088,196092134,-1964334616,-401821472,-1004344678,57950376,-1476391192,-402426848,-816316414,1481297232,
        508757699,4241488,116840590,1946222752,-1674673877,1929629696,-1641118941,477298944,196104280,-390077312,645982815,-1577189216,-1064435558,9969291,-2146467802,123412312,
        -534425405,-1031563776,-293556221,-1325143421,787403524,-869366645,1120176878,1480737518,1257119524,-289394102,96633674,1122011884,1381024748,-2098723920,-1223855104,-758913008,
        -1219885452,-759437280,-461088422,-2091774603,-1964243518,1522633440,-1979520018,28361665,1946179816,7454277,1249846400,1522074039,1350611968,1139146928,-997834524,-997834524,
        -329713525,695584644,510993540,-436162480,-2042567613,-2042567484,-131377212,1562443649,-546154401,-872493598,-863976331,-339725696,-2082436599,-2132015638,-2084364572,1122895042,
        -383731902,134271549,1010313240,-590285567,-452272944,-472849456,-617422070,-960562298,787678155,-58055670,-1341930877,-360452480,-1947389437,786878961,-869366645,1122010862,
        -1975368978,1246424775,1257160754,-1006691608,426967612,168084099,-335120960,-351517048,535003142,-2081504374,-51903254,68666366,25166592,6291648,1572912,393228,
        131075,22391296,268960770,-8372192,-426725376,964996,-489929538,774171394,-1327461716,-387848049,-672624720,1960852200,-426594070,47748,-1179218757,-991428582,
        -1325470726,-1014700399,-2065263696,149292208,233230566,247061222,-867910144,-1712782366,-1951650304,47833,-301987655,-69057810,-1191132998,-286392312,-85835198,-2082043930,
        -2098822682,-1981379610,-527791386,-1002797084,15424117,-1002798108,15422069,-1002798620,15420021,-1002798364,15417973,-1002796060,15415925,-1002796572,15413877,-1002796316,
        15411829,-2065263440,-1191182150,-320077816,1975794242,-1158159849,146342080,1122823168,1975794242,-1946754553,-9377333,-1157627718,448378508,-99751936,-1783562517,233211110,
        11590374,-790230810,199639216,199639472,199639728,199639984,-689520464,-689552976,-689552720,-689552464,-2065262928,-1325753149,-405739382,41189544,-2135886357,-1964522008,
        -394088208,-930420802,-1209498448,-1645704473,-756496758,2000370688,-1950054811,-389969168,993788101,-662022025,-1159150198,1998011392,-1946645939,-2033634365,599347660,-1813907678,
        1018778200,-1176373504,-503897565,324655107,-1966699567,-1262187832,-773523822,868746209,332071872,-2083420208,-938276926,-623777327,-623777327,-623777327,449642932,-1901064469,
        216482280,-1327461884,-415373170,4241414,-1070344050,-1960394610,637542446,2098887,645975636,-453115797,-419552223,3980065,-151517720,16804614,12193397,-1232291072,
        -402646343,-18089729,539920678,1797685248,-1022886400,1085820958,-2133291520,16804622,551952560,-1966137512,82624736,181735204,4241603,512481422,-472186864,272555419,
        1089536,58048522,-469578880,-423579552,-1469782940,-352160766,-1469782792,-453348351,1963239520,46396935,199958645,1963115510,-35422202,-2138038037,-1168900637,1337655296,
        4045240,1543012072,-1578890005,-1578705116,-81518108,512303590,-1329397744,-393943413,460456284,276104508,-1157627718,800700328,-128063488,-1023358744,108265532,-385826584,
        -2035285873,-5208858,-390504218,518541571,1692686839,91554216,-1947601950,1012982784,-502958854,8448488,-2065266768,-468481863,1963042916,-152547062,-203269642,-1332712725,
        -461052280,1957313632,-1874400509,-2065266256,1692839600,-452984903,1946331236,-336010747,179933232,-1469783040,1359574273,1509343464,418116578,-2065266000,-1336909596,-463149395,
        1963108452,803756282,-1878594568,-2065265232,4241603,243325070,-1157693422,-675610624,1423799,-1007182104,-1912586056,302940376,12254976,-1209222400,-402643783,-1329334393,
        -1184569682,1692729343,276038312,12253410,-1206863104,-402645063,-18090133,-427773757,-424824700,-1469782940,-453348094,1946265700,-345971708,-427708170,-425021308,655407460,
        27813092,-397342347,-497420763,-1341461517,-461052286,1951743072,-427577326,47748,-1179119429,484966431,-1325470729,-1333467516,-463149472,1963108452,-430067462,-1414479008,
        1692689638,-92994904,-469736263,1963042916,-622309111,-203269643,-1934620181,1625588966,-117314568,-100991549,-370477578,-707339547,-1700419158,1431738005,12539390,-796672768,
        -2135465495,-75448093,-1086884544,-1799553023,-1219434032,-1899459578,-798638144,-1979706183,1974399683,-1172641022,-474284032,2341302,-1326017816,-460527602,246685708,-1998004090,
        -1017313308,83654,-335101309,-1475941757,-1469156092,-965839870,-1342111418,-331158000,-1337270134,-331157999,1309027146,268778752,-1070398852,512425778,707657801,-2133762425,
        41484508,243974195,-75497398,-2143849980,846465019,-235525967,-372193142,1317595600,40273923,1183375568,-2046578427,-740019488,105286112,4800128,-804883194,1724973670,
        130188038,-235486226,-2013051256,61932134,-472654710,-771334519,88508640,50586603,50529541,1049232387,121372770,138174580,171722356,222060404,28920692,-401951744,
        62173785,-21867288,1242970818,840725760,-2134442286,326441470,45403902,-1263387416,-1304958968,-386102701,-1269104576,-1305745406,4793994,-1023318392,518521780,1959922354,
        -339018001,-402410266,-768429551,-189014549,-167254015,-402410301,-25120255,-33262568,-1261900858,-1309415416,1381104778,4800128,-2146864121,50350398,11993718,856031672,
        -1978091831,1241532950,1521602792,488424281,943142186,1961101894,-117081853,18213315,2134506624,853314295,-2020987137,116824863,1963458583,386332392,376767488,116817700,
        1946353687,11528451,1509110,-379358144,-58720103,-1207601905,1995150336,1966472320,-1777928687,175374848,9840256,-1795114755,-1073061653,-58695816,-2141293565,1567887100,
        1948056704,939294812,116791925,1947205782,-1777928634,91554304,-342490952,-1775861707,871103744,176037948,897343804,830307132,116793124,1946288278,-913551335,247447950,
        506322,-1359821686,-2146994856,-50293210,-538386252,-1262225152,-339725710,-343953195,-1683308847,1925718504,1022028745,1019444321,750747514,-2135168224,-697026564,1966472320,
        -1777928690,125043200,9840256,-2134643715,158601212,-1976693889,-342140537,-339725675,-1687568751,1925702120,386332297,-2106245120,2112430124,-2139151105,292894204,9832182,
        -2146798590,-50293210,1273734324,486310032,116789621,1946288278,-1775861750,-1498088192,-2138032661,91557884,736863668,-997568368,-1047606900,-1879044679,-743981060,1951969010,
        1948269602,50102292,-58715524,1007647758,1007254625,839221114,1632448,-998194183,-1326126218,32697328,471538190,724117543,926233651,473336826,1174702336,-2110375098,
        -1962642176,989888566,1946163766,473336081,938015488,-1202698985,365793538,1358676824,-402620997,-1017580555,1183449524,374243584,1388511233,-1476380184,-1329374656,-1341985904,
        -515839984,-152546621,106334975,58053130,604301504,1958742543,1996766215,32241667,-389850375,663403882,-1022311178,48991920,266866352,378258401,-1024065520,-2146274303,
        158646498,1967192704,-352144888,-352210425,-117394941,-1963160893,-469105050,-524287116,-1895430140,-1008236032,1720384650,1961101830,81838083,102813942,-410386289,-1598016573,
        1720320143,1961101830,82362371,-1023406299,-1974316208,115916996,-301729862,-1979675744,-1061149480,-1007287064,201487361,-1058766847,646504458,1532625035,48808792,-386173707,
        -1007895336,1978988776,-1127290629,-1007761526,-2044949722,-1251077,-404161658,-397360129,1253513658,-1962943000,-406845570,108923394,-385887768,292887183,-1090517063,-1175977918,
        1191545087,115931362,1093044224,-1597810688,-1062731710,145237876,-2135686028,646586859,-990511037,-805014480,-166401044,74712004,200000766,1954596086,-352013310,-1023364094,
        -1912586053,9485275,1972584320,13101315,-1071380598,168224960,-28216128,-1289456184,-1272466171,-1273770752,14674036,-1325135432,-841862399,-385650157,-58720124,168064260,
        -1266977344,-1273770752,12576919,-1205287552,28378121,332255795,-58702221,168064260,-29526592,-2139392821,-1209325075,-315488845,332202164,-1830283340,67221504,-768405327,
        477303757,332202164,2129139124,67221504,-768405583,645075917,1182059518,-789854722,-2147446597,192190271,1927808180,-1589855744,-1265609237,6809652,-341758022,45387850,
        -1157604120,1065353360,-1173982092,938189077,-1593263472,-1265618453,4450305,-341771334,-823619546,-400329219,-266011179,1006954688,-1594115583,-922873484,1956710586,-1161232886,
        57975074,-392086342,1405288579,939561147,-2012580825,-29824985,9375360,-389850362,1752563089,-1057122072,-533068568,-58699660,1007187252,1011315715,-1337756668,-557520845,
        -64748532,-527776758,-1125633104,-39786274,947200168,-863969142,-401690592,12246699,-1172391136,-402630215,29225115,216000512,281874356,281870516,-2065252944,867176171,
        2145968266,-2030361378,-562173756,-1031057213,-1030827469,-1426032449,1487653004,102654147,-1475370993,-2065276752,-1910767432,4242392,-1943616626,637561110,6760073,6555335,
        1638924288,-639073050,-2130086743,268461070,56748288,-1330698008,-947591582,-2147449338,-2012821760,-402653184,-2128172802,872444478,-1592822510,-2036137860,8298752,-385840989,
        1459356158,-1945756073,-1144811813,-611450832,-1081930562,196673683,128316160,-1335992545,-393943453,125020800,-2065275728,-2121265173,-2147453378,-2129235200,-2147458034,2082376448,
        1981712640,2115930880,2015267072,-1391073280,195917544,-385649472,512426478,-343867274,512295040,512426106,-343867268,512295040,-1868562304,9413120,113640116,-402587502,
        512426745,-1014955894,512295040,-1073020794,243339892,65636,6696584,6755977,6885000,-2065275472,7872139,8003209,8265355,8396425,8793739,8439169,
        -1577021024,280232079,9569990,44820481,9051787,8920713,309641227,6557313,780664834,378077294,243794031,-2002714511,67110144,725582011,989891870,-1959169085,
        50366510,-2130672082,-1593802555,-2103246707,-1895381504,646643456,113639564,-402587502,-1073020207,243339892,131172,7220872,7280265,7409288,4241414,-2135048050,
        -389707008,-1123571681,113639552,-1342111598,-402606850,44630885,-2129497088,1140876302,1781434368,1796638976,1829668864,8823040,-150732613,973254883,-1977518910,-1845049630,
        921174272,174339,243339892,262244,6958728,7018121,7147144,184584353,86537408,-470350848,-494268240,9569990,50849793,1946157737,1678672146,-2013263872,
        -1996459474,-2013236458,-1593805554,327816,1065401092,9248299,611566395,-1275032416,-1845049602,-756547328,174338,243339892,524388,7483016,7542409,7671432,
        -2065275216,8789643,320768294,-2011264256,-1968132096,-604903197,-410340944,-1310987544,1678178048,1946189824,-402542334,1739630758,1048675558,41943174,-1280307598,215729640,
        -1327461760,-608048973,116851380,-65436,62128756,-1326936144,-429346597,-1335827324,-396040672,1692668552,-93060696,-527802140,-1341862784,1348789856,1477604328,1625736330,
        -1340970008,-194713858,1773207019,12289254,-1878463744,-2065274192,-1207959109,-661782464,6887054,6760075,-308615085,1977289563,10021123,-2065273936,-1910767432,1678178264,
        1946157312,-310450154,243985714,-242548634,6885002,6755979,-139980056,67134470,-401181696,-315429536,6950538,243986827,378208365,166199403,1678178216,1946157568,
        -314382314,243985714,-242548626,7409290,7280267,-139995416,134243334,-401181696,-315429596,7474826,243986827,378208373,-840433549,1678178215,1946161152,-318314481,
        -1157627718,448378508,-323360768,6555383,410320895,-135467032,1073767430,-385649664,1642397477,74760360,-2065271632,-1326069016,260367980,127995817,1405313311,1840306314,
        -1014332186,1857083530,-1014332186,8396427,8003129,243345014,8388708,8003211,8527497,-1962914584,956335134,1929412638,-2145481980,-1977710336,-1875842304,243341428,
        8388708,8527497,-1962923800,-1996454882,-352286178,-1336897514,1485104751,8527497,-1962929944,-1996454882,-134182370,24428555,1405311993,1890584151,646481126,-997588916,
        -125049806,-2147483461,16814654,1085803125,-1950315008,-1521620795,8535683,-1207143168,113704960,132,-1342142743,-1199249807,-1064435640,1431787091,939560864,1996508166,
        -776673275,-169344021,1583308208,-1979026597,-1207940050,1441464321,1086555024,1397839868,4988554,855640249,-775932929,7643,-1963531605,-1207940066,-1007288320,-1207733246,
        1537933569,1048600409,1962999954,4241420,-980696946,-857160957,-2111948380,-1207535872,166395904,1275494544,2129199360,-2078373377,1940934656,123241702,113466207,-1336913065,
        1485104754,1342196898,-1912584005,571843,-13379446,-607010765,-1358954467,-186500235,-469399002,1958783073,868233734,1194847231,-469398746,1958783073,-1077923321,652935169,
        9584256,-1206946559,-1064435648,1074120075,-387413248,-346512305,642731816,108332338,624043591,-970537846,-930480123,4992650,-2065269584,-1547334824,-678756220,-352320840,
        985726481,-385648928,-12714118,-1191676928,1599799296,216580871,-1511458289,242613221,-124779848,-386263603,-1862539880,909899892,74776706,8402571,1717897,-454507525,
        2112420366,-1597768731,-2134704105,594804988,1977617725,470661125,792533483,-1207601696,267072815,2005204096,1961901071,1977629707,-1107251198,49020927,-158992845,16548035,
        -264501644,11534965,512381891,-1014366184,-478121180,98811908,646628106,-461373290,-1595930100,-1017446377,1534395708,1996750720,536576086,-397323913,-76214556,9905792,
        250276079,1625748400,-150995015,268474118,-136180875,-1341204504,-345970956,-1759084508,-907481344,-1060664818,-1022753312,-4628250,-1761151233,158666752,-1310132254,-420171762,
        -1759084448,-1017528576,473336826,1175226624,-2110375098,-1962642176,989888566,1946163766,473336073,-121622016,28312555,1355021305,1601439804,1735657788,376815748,-1088125212,
        -1071349748,-570029522,780592743,1742612106,-922849557,-2031872395,-2146648284,170836004,-429400826,646590086,1424713693,209045758,2133100260,-2031730676,1156251828,1333119230,
        11831012,91504808,-461315958,-431999937,-466752634,209659014,-1266227520,-2094929152,728891897,1999829379,3323942,1077985579,-2031820662,-2146648284,-1005928412,15435494,
        -419786064,16547915,-997587852,1492863718,-1467554621,-1475840704,-1274776192,-1473385720,-1272875712,775889920,1742603834,28581492,-586794450,840266855,3324388,1094830123,
        149621172,-2136471372,45351541,-466434934,346286275,141885364,547881140,28574324,-466434934,1012988867,-385649150,-326958838,-1930654920,-1899983152,872254424,3717568,
        -175396109,638614669,-64057,122013222,1170613888,-970588154,647103813,148935,1170613760,2089664516,96937496,-970522625,637536069,411078,88458790,-1143960430,
        -470351856,-763312893,3671296,637588096,637683081,855922056,13822171,-1796668557,947686656,604342822,1950366912,1179043335,8513792,-402652485,2037514420,172377738,
        -1923255104,-561311620,-401050483,-208994194,788521151,-147964533,-1928396795,-14272388,637957173,-335608378,96871940,-388287492,2089615469,93267512,309643518,-1088061402,
        -402652485,762445913,38160070,-2144983061,45826061,4712448,1187388274,367722822,641236109,-478143094,-972655552,-352238010,1179043332,952402690,-1008552863,-13238276,
        1979646581,108396292,-218102599,149848997,-1895239805,1150223940,38047492,-1916599153,-1993992068,28901981,-846744576,2089665301,1569269264,112898,365791156,-61,
        1430346987,1380927572,1094918227,1194539330,859390540,961763154,1128940595,1347302201,692267074,2037411651,1751607666,1329799284,1363234893,1836008224,1702131056,1866670194,
        1919905906,1869182049,959520878,942420536,876096563,741685292,-382978504,837474889,686817422,692273960,1866679081,2037411951,1769108089,1751607145,544502888,1329808160,
        1347243343,1363231056,1126178897,1836019523,1970303085,1702130805,544371301,1866679072,1886548591,1919905648,1952538994,1869179252,544108143,959525152,842545209,942418994,
        741552952,876099628,942418996,741684536,909654060,942418998,758593336,1816215853,543976556,1769108000,1751607145,1937011816,1914708083,1936024946,1919247731,1702262386,
        778331237,-435310546,-434982780,-1172131765,-1276247992,1894400,1273369264,-2065297744,1273402032,1253712560,-2135691776,-1342175768,-1018435950,-1979645767,-330570045,1038934154,
        410320930,-1833897502,313543654,-1933882394,1620406,-371107139,-18094435,-61,-1,-1,1358954495,1084776932,-816315787,-2048523856,-2065296976,-427773700,
        -419450768,-392042975,1642332420,-527702990,-337537347,-24407983,41077899,-930298370,-1064380274,-1912590152,16825552,-390642754,-310116144,1404962932,13035703,-91805717,
        -754973511,178666,-1962892568,65176023,309504,-1342138648,-854674400,-1177406704,-1998061566,-175377408,-13369421,-371068227,-292837980,-661733325,126606131,1642334089,
        1642465292,-4983413,280887091,-1517884958,1642393227,1642526500,1084776932,-523404,4241637,1049352334,-406780909,47878,-1908408135,-1376557349,1084776932,-1014952843,
        -549777408,-1070339466,-208935425,-13380213,-371042627,-359946866,856679296,-804998702,1107653595,-768345630,283508729,653758976,76735083,1983462448,-1274608638,-502215410,
        179094508,-1274645312,-351220466,803783669,237466896,-1900006625,4243392,-1418648415,-1418647903,-1593803585,-1582599896,-1079283414,748749068,782347121,129739633,243712,
        -356314931,-268377749,2011696816,-1327461678,-764352492,57999784,-1977561984,1958783172,536918547,-1179082565,1491599446,302940388,1122762496,292823208,-1155530566,1455012000,
        -465442816,1183360,268891903,292880640,-1155530566,465156342,-467015680,1183360,1947248895,536918545,-1179053637,350748696,302940388,1625620224,1692844208,-385876039,
        1692708440,125043368,669775330,-385876039,1692708424,74777000,401339874,-2136448796,12194165,-1185170656,-402631239,243327959,872349714,-322508563,-392887950,-1070399443,
        1181194,115868532,302433792,1623392256,-1157627718,414824771,-475404288,1946500245,4974595,1181382,-87858944,-47963676,856039910,650153664,2367115,604423974,
        -68950528,-496506797,512304731,-1341718492,-1184569760,-1041694721,-1469782867,-503155710,-431640331,-464469152,-434065312,-1261479904,-2145989376,-143311876,-61,-1,
        67187455,8388608,0,285290752,67266304,8388608,0,285376000,100820736,8388608,0,285370112,134479872,33554432,0,285474560,
        100903936,33554432,0,285453056,84064512,8388608,0,285390848,134336000,16777216,9,285343488,84122880,8388608,0,285449216,
        251888640,-65536,2048,285442816,84136960,-65536,0,285463552,117677312,8388608,0,285449216,151231744,8388608,2048,285449216,
        134374400,16777216,0,285369088,67359744,8388608,0,285463552,0,0,0,0,67265536,0,0,285369344,
        84136960,8388608,0,285463552,84133376,8388608,0,285459968,184742400,-65536,2048,285405440,84073728,16777216,0,285400064,
        117628160,16777216,0,285400064,100869376,-65536,0,285418752,134454272,-65536,7,285449216,235128320,-65536,2055,285459968,
        268682752,-65536,2055,285459968,235142912,-65536,2055,285474560,168019456,-65536,2055,285459968,268626944,-65536,2055,285404160,
        100869376,-65536,0,436413696,67266304,8388608,0,419587840,134375168,8388608,0,419587840,151226624,8388608,2055,419662080,
        134409216,-65536,7,570616832,117687808,-65536,7,570672640,134465024,-65536,7,570672640,151242240,-65536,2055,570672640,
        84133376,-65536,7,570672640,268591872,-65536,2055,1057121024,184811264,-65536,2055,553910016,251920128,-65536,2055,570687232,
        251920128,-65536,2055,553910016,268697344,-65536,2055,1057226496,67314944,-65536,0,436413696,33760512,-65536,0,436413696,
        134409216,-65536,7,553839616,100854784,-65536,7,553839616,84133376,8388608,0,419677696,200015616,-67106672,7340033,-2097152000,
        -50657596,-2065297488,-2048524112,-386938950,-628166725,-2065253968,1358955449,332202164,-1183055685,28835841,1494469890,208814707,-1,-1,-561714689,-1146036766,
        -92240666,-1339591552,-839325682,511000744,1086053004,-1965322752,-1912572626,1961691866,1963501581,-423972855,8436356,416130795,1971372790,-941075682,-2065409043,-1804288708,
        163121035,-201618688,-1105300049,1072206685,-1325470976,-387937741,-81474134,-1461140346,-21003827,1974097153,-1467554619,-1475840640,-1341885120,-1337203054,-360388932,31744,
        -83442557,-393014082,11796486,432871117,1017917180,-402295772,-169091079,-1104335677,-1959854112,76230196,1947140265,-1877218557,-2134842240,309608700,772475624,1742538438,
        113651234,-400267298,-1950151936,2210291,1973941094,-210417140,-930352245,1957163878,82805511,-117117309,-6657,-50593793,-1957341666,4243180,-461054322,1441270645,
        -192419596,-1276512140,1976368640,172917033,1719730752,-385876470,58061924,-402612759,91616361,-336318488,174490094,1317142463,-385875702,-855768954,1256719733,-25302028,
        -402295348,1961620642,41274622,-855740693,-202898059,-2140804108,141888508,-386664472,1491858523,1963785344,172917022,1719730752,-385876470,1148515336,-2114698520,-4257178,
        17452673,-2143950080,91557372,-336315672,-335773653,-689437323,-2145260556,91614460,-336236824,-302219241,-1528298123,-2146571275,91615228,-336220440,233603075,-820027811,
        1085820958,-1193767424,-1595474165,-1065049884,-527823756,-1005936156,-1595498010,196089579,551821542,208978052,78176394,568591989,568771594,1962933376,-434065404,1797687328,
        -820029440,7911761,-402393926,-1460885428,-502893184,149682678,-1472272240,1084769004,-15527,1926651112,-727390190,-1192751758,-402099497,57858066,-1008166168,-1342001176,
        -396040531,-54328664,-1157226912,-611450816,9832182,-467962752,1974156384,-1777434614,645939200,-1333854058,-81730016,-369098819,116785453,1950351510,1012982849,-2132249279,
        -1090480602,9834112,386826256,-1336926208,-881793010,242565288,1743269040,1967171787,388399109,-1336353024,-81730016,-2147371288,-553609690,-369098819,398393573,-8591360,
        1625610378,-850414343,48405,548407410,-369418010,-527826743,1967537232,403109397,242550784,1943454440,548469257,-369418010,548405410,-2131025690,125165820,9834112,
        -2145654014,125166076,9834112,-2146440447,175439612,1979382912,-1760657399,-346550272,-1310158722,403109376,1702103040,-58133,-1,-1,-1,-1,
        1913047039,-384683008,-58657327,-2147126188,125162748,1509110,-2143914744,477382396,1967520896,-1777928697,678756608,1926455784,1392279587,-461103500,250288760,1509110,
        -166824696,67114758,645924724,-336134120,-24057853,354846808,1042432,-2063546648,1629423597,-386268043,1355743266,9840256,-1777928451,309592320,-2139102080,91506172,
        1948122240,-1775861755,-1017577984,18802768,1692839600,379634520,-684660736,-58714252,-33262258,-2146964544,158681852,679004414,-352315742,354826787,-2143128576,91499260,
        1966537856,-1777928697,829751808,1964899456,-1777928697,628424960,561570948,504027955,427032598,1348592720,1642527780,201330664,-396237310,1967849480,1642485999,1397801816,
        1139146928,-662028060,-125157148,1139146928,-527810332,-528072476,-2116539565,1526799867,1482418806,396382403,82362368,646580004,-461373289,1959016967,-1759084532,101251072,
        48758935,1354979328,5433425,645942645,-386989929,-307232680,-4628250,-1761151233,192221184,1172895714,-420171776,-2144867488,-285173978,-1610598424,-390070249,-2147015676,
        -134179034,9897480,-4628250,-1761151233,41226240,645986274,1505689751,-95370408,201365408,-1761180096,-79648768,-1185823912,1692673808,-85982552,-15527,889192447,
        -1060551223,-1058225940,-1494359572,1223468780,2089903007,948965519,508951456,1381390086,-1957670063,-1900006420,2016855256,4241408,113694862,-2113994688,16651878,-1979627894,
        -58718618,1008431874,1008432920,1007056392,739471893,853051916,786682367,-331376641,20711403,1072230262,1552557799,1075742722,374243584,1532690944,1600019033,-815980793,
        1973608936,-1550194673,602409586,-2130349056,71246,-435769149,180367882,-1190300444,28442628,-499457328,58063584,-1008931096,33652352,1183524981,1096460,1174660087,
        13796098,1930361472,8292881,-617414910,-763116797,251297792,1187382386,1048577025,1946157121,1094615054,125044992,182244584,858289636,4623040,55347750,-754941766,
        1222834146,115918987,1942160349,21400081,175441064,1317079476,-352321258,1005097082,846492929,22973183,-1959861295,-420490873,-352145397,-1978997248,-414652164,-1965229592,
        1072170878,75401959,-2081998360,1072169926,-2142877977,1963262334,-415963131,-1952441621,605796096,-1224182592,1967171619,-399853822,2089477906,-418584575,-402264445,393544135,
        -1090517063,-152567742,-386173733,-1997757492,-220051707,-1998112536,-402636506,-469041417,1448156867,1096188,-661733325,1449045235,-1207955271,-661778432,1499376883,-1583028193,
        -1947703691,-165180765,225775812,1971846272,65830915,-2011970432,-428546009,199641776,-385876039,78699561,1727456306,1942160128,-351685628,6613038,45100661,1303841510,
        -1964604952,-406845570,108923394,-2082048536,2078802886,80118758,-2082048536,1525155822,-2129758977,71246,4269704,184444648,-504839196,6601178,1960527080,-1258692090,
        -401020032,129016596,108956398,-387566104,125108467,-1476339480,-1014975296,1317667248,-2065640954,1962950150,1040582683,-1562318848,280518,1962916840,1013982219,-394300048,
        2054553520,-388329496,663397062,-167426422,41164996,1334501584,988033540,-2007010111,-1152187321,1340604420,-1208329257,-439031793,-1073250678,2114585319,-439818234,-1969057304,
        -1075313537,2095643621,859010304,1552557787,21400073,74711868,343213372,-1572607917,-2146127781,41222908,-667283536,-1014627725,57989899,-388562456,-1062731723,717439156,
        707406378,707406378,707406378,707406378,707406378,1344940586,4241438,243325070,-1333788610,-1205803488,365793537,-1211148257,-447682552,-352320839,4366851,-488293400,
        4366584,28899523,1930808720,1040643595,460619776,485221426,-1191181125,-1070383863,4065014,-401771136,-186474000,-387156661,-2135631279,4073088,-1008465281,707406378,
        707406378,-550884822,251798786,-162201829,367593487,1256605337,-1209646395,-454760445,-1008407064,-1,-1,-1,-1,-1,-1,-1,
        -1,-1,-1,-1,-1,-1,-1,-1,-1,352092415,-58718350,-1271695937,-326370284,-1912586050,269912798,820150272,
        -2135424834,58011898,-1951399746,-1912577258,-1950054714,-2117826832,-788463642,-1795215642,-1947625530,503774119,1398167381,-347057583,-76,-1,-1,-1,
        -1,-1,-1,-1,-1,-1,-1,-1,-1,170731576,471402015,117835522,0,173690993,471402015,117835522,
        0,170731576,1885603455,117833986,0,257052769,421070361,202050818,0,170731576,471402015,117835522,0,173690993,421070361,202050818,
        0,170731576,1885603455,117833986,0,257052769,421070361,202050818,0,0,0,0,1342578261,1448235347,-421482409,-907477884,
        47873,-1897922376,-1437222696,1595,-315467147,134794,-1106648639,1340604416,-1958120191,1223459801,-796070773,-41172850,1220132915,-1951730944,276598261,71681574,
        96937486,-970522625,-1919285947,-970581892,654181445,-64057,88458790,-1954040686,-840314421,1220838165,-2065243728,-2065243472,-1900019528,-1437222696,1595,-1557643,
        842429696,34507501,165789952,1006632888,723940568,1925266371,264471328,-990335,738197432,1925266371,48656,1962983912,-387329784,333971618,17426432,-402623256,
        1583284457,1482381658,-1017307385,16115742,-1912602440,-1899459392,4243416,-1559917786,-947687132,93005314,-1049549149,-1014954773,-1993940992,8175389,-1559917786,-947687128,
        93005314,644950691,213851529,93005313,-2089735005,-1960443193,1898881797,-1340241626,528803555,243985714,-507445246,82034953,-2084316925,527696123,-3964597,14909711,
        216777200,721424568,-268387901,-524303986,1032529663,-1023047642,855665384,-536823562,-74727282,243985714,-507445246,-1012534520,861032784,-805131054,-763036702,-1017620134,
        1465255454,-1073694383,-315440754,34507302,165789952,-1961432701,-1899393799,-533807399,-218102855,1583307175,1405296391,1348926643,-90438059,-54657229,-1801786894,1717372829,
        -466461864,-21802045,-1286347541,-387978241,-4980699,203690100,205259188,45353076,41223336,-997588812,1355015218,-117511942,1692836784,-87860997,-1325861912,-463149395,
        1946265700,-345971708,-119346954,1692837296,1375263720,-467201863,-519985052,41179642,-1672453916,-1325873176,241493678,-352320536,1489997826,-15365,16777216,33554432,
        67108864,134217728,268435456,536870912,1073741824,-2147483648,65536,131072,262144,524288,1048576,2097152,4194304,8388608,256,512,
        1024,2048,4096,8192,16384,32768,1,2,4,8,16,32,64,128,0,-16777217,
        -33554433,-67108865,-134217729,-268435457,-536870913,-1073741825,2147483647,-65537,-131073,-262145,-524289,-1048577,-2097153,-4194305,-8388609,-257,
        -513,-1025,-2049,-4097,-8193,-16385,-32769,-2,-3,-5,-9,-17,-33,-65,-129,-1,
        -2065269328,788521150,-147966837,1947140100,32565507,-2132410192,369168174,537855870,68864,-369090033,2684076,-1912600392,-1973295912,-435680032,41057,1642520710,
        -2134842240,57950460,-2147382551,1073742350,-1912588104,536918464,-211356109,-1174622938,-13426688,-1431652250,-211375446,-661952853,-1912588104,-1175047208,-1385816064,1958951782,
        9824515,-352160695,536918513,-1201209549,1840672182,1722544998,951638155,869830144,536918518,996584806,1231975875,-185925004,857735353,1438148351,1716868437,-1956205581,
        3717336,-164374386,1713373369,-1019517267,1950959477,-1191908606,-661782480,-1192003397,2092564484,-1107348736,552203629,8174081,-369789251,-13434601,-1124041542,-1964378751,
        -1172933902,-1933770628,-226498059,-75429006,208991228,-336331589,-436096826,10217856,-1912600392,645932736,-1195442174,-1064435648,-1157626696,2092626808,-1107348736,-857082431,
        8174080,-369767747,146276547,-1899918336,243279552,-1908408318,309441,855669946,-169361921,1928471785,8174256,-369757507,-1519193575,-1157626696,2092626940,-1107348736,
        -1997933051,8174080,-369750339,146276479,-1899918336,645932736,-1900085246,309441,855669946,-164905473,1928454377,8174091,-369740099,57930197,-1191223575,-661782520,
        140928,444095,-2132476928,91553852,134784,1095744,-661733234,1711284239,-475,2232191,16149994,17772272,-469269474,1946172544,-1177406709,-793051117,
        -792598346,-2065269072,-2132361166,-1175221309,-211419103,-176862555,-930352245,-5901466,862330597,28862189,1711276032,12174643,-1627442368,1724961126,-453385557,-435418015,
        -420273055,29058657,1711276032,-1956192973,857671365,-1175155978,-427147264,-741251426,1727302303,-1020041555,343273697,1084776932,47206,141885440,-1451602586,-1010814177,
        1342178502,202138084,-215719450,1717068262,427147275,-2037398296,266633440,78771763,91479248,872014406,-339725578,82739985,-1476393799,1711764991,1174988993,-930417182,
        -115353973,253649091,-1331687512,-1199249803,-661782464,6760073,6887052,-1342177095,1367664246,1502182376,-914356620,9496833,-2065270864,1507537745,108321547,-352138880,
        -1047883775,112492774,41208074,2024802228,-464485146,-434065312,-191698844,27813092,1625619060,-863969142,-2115481596,1622169844,-397384474,-1973881736,1482745540,-1998024784,
        -194320195,1692860080,-1325536268,-125507975,-1332738325,-108730758,-1912586056,1763086040,1730579200,-352095744,-2132504535,-1040791414,-1173523454,-1933901824,1751478,-187742488,
        1946272246,47629,-1179218757,887619610,2075194575,-1592818458,1629464847,47299,821566927,8781824,-256,-1,-1,-1,-1,-1,
        -1205928961,-661782464,520098721,-1506613041,707406543,707406378,2147254314,-58700682,-2145946432,1114870524,-2114417833,-1048641305,-13760529,-336034667,-1084780537,-336883200,
        182879,-121308990,-1587939130,-121069095,-1563188594,-1532189539,-121702210,-121702210,-121702210,-120784694,-58677880,-117148337,-83885366,-889616716,855310338,1600111588,
        -152311573,-219417365,-286527253,-466460833,536932815,554180881,553722116,-1592680193,-1593663120,-1778409215,-893741638,567923929,-872802310,-738733065,167772407,1018,
        992,-436162360,-436162428,-1643989883,-1001222,-1192230641,-661782464,78144740,-359767435,-2065301072,1692838576,-452984903,1963042916,-336010747,45125693,1625588966,
        -2065300560,-2065300304,-1897922376,-2116340776,1968548415,-109658872,-47251666,-435834632,-939476860,-617359218,1437220737,1992099957,788475641,112261377,1085834470,-1193767424,
        250281984,-2065299536,1894158256,15401195,-661949980,1894158256,15401195,1910898864,1963588480,-1433081597,-2065299280,1963654016,-1873286397,-236535758,-1896873800,-1093520424,
        196737233,-796218368,-102568276,-1191141190,196083720,-1073025810,548406644,-2081168658,91496698,-352313158,-436162330,-1331632608,-2138774007,41290747,-13500237,-1959861296,
        -1191647305,-661782464,179365631,1085834470,-2585088,-1342150866,-1333467637,-350165472,-435375895,610395268,-1335761165,-848239090,-231,-1,-1,-1,
        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,65535,0,-2122448896,-1715633755,-8487295,
        -406585381,-26444033,947715838,940572688,947715708,2084044816,2097086008,269515832,2097052728,31800,406600728,-65536,-406600729,1006698495,1715618406,-1006698436,
        -1715618407,118489027,-859013873,1715239116,406611558,859773054,1882206271,1669325040,1734566783,1520025830,1021830972,-528443046,-520552712,235012224,239009342,1008205826,
        2115508350,1717966908,6710886,-612433818,454786011,1665007643,946629688,30924,2122186752,1008205950,1014896766,1008271128,404232318,404226072,1014896664,402653208,
        403504652,805306368,811662944,0,-20922176,603979776,610729830,402653184,-33220,-16777216,406617855,0,0,2016411648,3158136,1819017264,
        108,1819017216,1828613374,2083520620,-133400384,-973078480,1714428108,1815609542,-857967048,1616904310,192,806879232,811622496,811597848,806885400,1711276128,
        1715273532,805306368,808516656,0,805306368,24624,64512,0,805306368,201719856,-1067438056,-964951936,-420028722,1882194044,808464432,-864550660,
        -866109428,-864550660,-871614452,1008468088,218025068,-1057226722,-871625480,1614282872,-858982208,-855900040,808458252,-864550864,-859014964,-864550792,403471564,805306480,
        805306416,805306416,805306416,806903856,811647072,24,-67108612,811597824,806882328,-864550816,3151884,-964952016,-1059135778,2016411768,-855847732,1727791308,
        1717992550,1715208444,1723908288,1828192316,1818650214,1660813560,1651013736,1660813566,1617459304,1715208432,1724825792,-859045826,-858981172,813170892,808464432,203292792,
        -859042804,1726349432,1718384748,1626341606,1717723232,-289013506,-958988546,-423231290,-959521034,1815609542,1824966342,1727791160,1616936038,-864550672,2027736268,1727791132,
        1718385766,-864550682,-870551328,-1258553224,808464432,-859045768,-858993460,-859045636,2026687692,-960102352,-285288762,-960102202,1815623788,-859045690,808483020,-956432264,
        1714559116,1618477310,1616928864,1623195768,101455920,410517506,404232216,940572792,50796,0,0,808517376,24,0,-864285576,1625292918,
        1717992544,220,-859779976,203161720,-859014132,118,-1057174408,1815609464,1616965728,240,2093796470,1625356300,1717991020,3145958,808464496,786552,
        -871625716,1625323724,1819831398,812646630,808464432,120,-687931700,198,-858993416,204,-858993544,120,2087085788,61536,2093796470,7692,
        1617327836,240,209240188,806355192,875573372,24,-858993460,118,2026687692,48,-16853306,108,1815637190,198,2093796556,63500,
        1680906492,807141628,808509488,404226076,404226072,819986456,808459312,-596246304,0,268435456,-960074696,1408958718,-13443958,523137,-472840329,-2052587730,
        1541681918,-644039217,496825500,1922912413,-241325411,645988253,-839909313,-434065380,525883936,1380982479,-1912586056,1812398040,-16485120,-2097123834,402681406,-1330113675,
        1812343552,-1559595776,1856176236,1889681408,4235264,527826748,4130550,-468159481,1954588806,1950394386,-432069618,-426594170,-576704949,-28645785,1962950670,-1173573474,
        -152173582,117456646,-2031842188,-2039119704,-2106244952,-2031697908,1273402032,-34839,-369098753,-5670,-1,-1,-1,-1,-1,-1,
        -1,-1,-1,-1,-805306369,-768401824,399311540,1954596086,4242258,28367758,16778886,1131675964,-1912870661,281874356,-1269699446,1494273283,
        -1261292718,-1273967358,-401552120,393383402,-717569282,-689377934,839676557,-2134442286,-546170370,445499624,45374153,-1996877619,520159246,-12447,0,196608,
        -1,-1,-1,-1,-1,-1,-1,-1623725569,2143190966,541733959,1329804080,1363234893,16319978,825237744,792212015,-1728301000]
        }
      • 68mb.json
        [[[{"sector":1,"data":[-1900006406,2080423120,122745995,-50651312,-1190788929,-1510866688,400874,129940992,1015022771,-2146536320,477429820,-32455037,-839944757,-1961587944,-292879796,-32455037,-2145749813,-193724356,-1408857154,192151612,506710,281874100,-336532642,376830,-1199832901,-849935871,208887571,332251187,-1091734193,-739572061,-1090075970,1031896574,-948589995,15398283,1224736892,1818326638,1881171049,1769239137,1852795252,1650553888,1157653868,1919906418,1634692128,1735289188,1701867296,1769234802,1931503470,1702130553,1766654061,1852404595,1886330983,1952543333,543649385,1953724787,28005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25165824,117833729,1179345,526843904,2,0,0,0,0,0,0,0,0,0,0,0,-1437270016]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[1301298411,1397703763,3157557,66562,131074,8976384,524305,17,139111,-601292672,1296494977,1329868115,540368723,1095114784,540422484,872030240,-1127182656,118914048,906000571,1444820933,1052726038,768380,111473660,-28981729,403606287,-112359300,-956151927,-75743737,2037519309,104448051,141851667,2081623691,2082475657,-142864224,58463782,326900742,58465814,-2089021946,1352859858,1377208700,2085200764,2085295753,-150986568,-1954803418,58460958,-201897789,2085160449,2085295747,83933952,2085754507,-394506079,494010514,-1394081360,-1961463296,768507,-209852738,-1928694362,196681855,1957098240,2107555352,855662568,1578552768,-1895526625,432865860,-346531752,440896488,512378952,-13468659,100918263,370375753,12287051,243975,-397323696,-663617478,1424490928,1482316032,17152882,13796096,2081103363,780853986,378174485,512457764,1268874313,60028,179044464,-1272351552,506638,-219475763,2081953339,922163571,-1023509480,2085557896,922210867,378043418,1302559781,-104597380,-1962756925,-1317253866,182899206,-1954787530,-1964407094,-1971575786,-847502026,168674067,762212174,1953724755,1679846757,543912809,1679848047,543912809,1869771365,1376390514,1634496613,1629513059,1881171054,1936942450,2037276960,2036689696,1701345056,1701978222,226059361,1330184202,538976288,1498619936,1146309971,538989391,1398362912,-1437270016]},{"sector":2,"data":[-8,263090,393221,524295,655369,786443,917517,1048591,1179665,-65517,1441813,1572887,1703961,1835035,1966109,2097183,2228257,2359331,2490405,2686975,2752553,2883627,3014701,3145775,3276849,3407923,3538997,3670071,3801145,3932219,4063293,4259839,4325441,4456515,4587589,-65465,4849737,5046271,5111885,5242959,5374033,5505107,5636181,5767255,5898329,-65445,6160477,6291551,6422625,-65437,6684773,6815847,6946921,7077995,7209069,7340143,7471217,7602291,7798783,7864439,8060927,8126587,8257661,8388735,8585215,8650883,8781957,8913031,9044105,9175179,9306253,9437327,9568401,9699475,9830549,9961623,10092697,10223771,-65379,10485919,10616993,-65373,10879141,11010215,11141289,11272363,11403437,-65361,11665585,11796659,-65355,12058807,12189881,12386303,12452029,12583103,12714177,12845251,-65339,13107399,13238473,13369547,13565951,13631695,13762769,13893843,14024917,14155991,14287065,14418139,14549213,14680287,14811361,14942435,15073509,15204583,15335657,15466731,15597805,15728879,15859953,15991027,16122101,16253175,-65287,16515323,16646397,-65281]},{"sector":3,"data":[16908545,17039619,17170693,17301767,17432841,17563915,17694989,17826063,17957137,18088211,18219285,18350359,18481433,-65253,18743581,18874655,19005729,19136803,19267877,19398951,19530025,19661099,19792173,-65233,20054321,20185395,20316469,20447543,20643839,-65221,20840765,20971839,-65215,21233987,21365061,21561343,21627209,21758283,-65203,22020431,22151505,22282579,22478847,22544727,22675801,22806875,22937949,23134207,23200097,23331171,23462245,23658495,-65175,23855467,23986541,24182783,24248689,24379763,24575999,-65161,24772985,24904059,25035133,25166207,25297281,25428355,25559429,25690503,25821577,25952651,26083725,26214799,26345873,26476947,26608021,26739095,26870169,27001243,27132317,27263391,27394465,27525539,27656613,27787687,27918761,28049835,28180909,28311983,28443057,28574131,28705205,28836279,28967353,29098427,29229501,29360575,29491649,29622723,29753797,29884871,30015945,30147019,30278093,30409167,30540241,30671315,30802389,30933463,31064537,31195611,31326685,31457759,31588833,31719907,31850981,31982055,32113129,-65045,32375277,32571391,32637425,32768499,32899573,33030647,33226751,33357823,33423869,33554943]},{"sector":4,"data":[33686017,33882111,33948165,-65017,34210313,34341387,34472461,34603535,34734609,34865683,34996757,35127831,35258905,35389979,35521053,35652127,35783201,35914275,36045349,36176423,36307497,36438571,36569645,36700719,36831793,36962867,37093941,37225015,37356089,37487163,37618237,37749311,37880385,38011459,38142533,38273607,38404681,38535755,38666829,38797903,38928977,39060051,39191125,39387135,39453273,39584347,39715421,-64929,39977569,40108643,40304639,-64921,40501865,40632939,-64915,40895087,41026161,41157235,41288309,41419383,41550457,41681531,41812605,41943679,42074753,42205827,42336901,42467975,42599049,42730123,42861197,42992271,43123345,43254419,43385493,43516567,43647641,43778715,43909789,44040863,44171937,44303011,44434085,44565159,44696233,44827307,-64851,45154303,45220529,45351603,45482677,45613751,45744825,45875899,46006973,46138047,46269121,46400195,-64827,46662343,-64823,46924491,47055565,47186639,47317713,47448787,47579861,47710935,47842009,47973083,48104157,48235231,48366305,48497379,48628453,48759527,48890601,49021675,49152749,49283823,49414897,49545971,49677045,49808119,49939193,50070267,50201341,50332415]},{"sector":5,"data":[50463489,50594563,50725637,50856711,50987785,51118859,51249933,51381007,51512081,51643155,51774229,51905303,52036377,52167451,52298525,52429599,52560673,52691747,52822821,52953895,53084969,53216043,53347117,53478191,53609265,53740339,53871413,54002487,54133561,54264635,54395709,54526783,54657857,54788931,54920005,55115775,55182153,55313227,55444301,55575375,55706449,55837523,-64683,56099671,-64679,-1,56492893,56623967,-64671,56886115,-64667,57148263,57279337,57410411,-64659,57672559,57803633,57934707,58065781,58196855,58327929,58459003,58590077,-64641,58852225,58983299,59114373,-64633,59376521,59507595,59638669,59834367,59900817,60031891,60227583,60294039,60425113,60620799,-64611,60818335,60949409,61080483,61211557,-64601,61473705,-64597,61735853,61866927,-64591,62193663,62260149,62391223,62522297,62653371,62849023,62915519,63046593,63177667,63308741,-64569,63570889,63701963,63897599,64028671,64095185,64226259,64357333,64488407,64619481,64815103,64881629,65012703,-64543,65274851,65405925,65536999,65668073,65799147,65930221,66061295,66192369,66323443,66519039,66585591,66781183,66847739,-64515,67109887]},{"sector":6,"data":[67240961,67436543,67503109,67634183,67765257,-64501,68027405,68158479,68289553,68420627,68616191,68682775,68813849,-1,69075997,69207071,69338145,69469219,-64475,69731367,69862441,-64469,70124589,70255663,70386737,70517811,-64459,70779959,70911033,71042107,71173181,-64449,71435329,-64445,71697477,71828551,71959625,72090699,72221773,72352847,72483921,72614995,72746069,72877143,73008217,-64421,-1]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[-8,263090,393221,524295,655369,786443,917517,1048591,1179665,-65517,1441813,1572887,1703961,1835035,1966109,2097183,2228257,2359331,2490405,2686975,2752553,2883627,3014701,3145775,3276849,3407923,3538997,3670071,3801145,3932219,4063293,4259839,4325441,4456515,4587589,-65465,4849737,5046271,5111885,5242959,5374033,5505107,5636181,5767255,5898329,-65445,6160477,6291551,6422625,-65437,6684773,6815847,6946921,7077995,7209069,7340143,7471217,7602291,7798783,7864439,8060927,8126587,8257661,8388735,8585215,8650883,8781957,8913031,9044105,9175179,9306253,9437327,9568401,9699475,9830549,9961623,10092697,10223771,-65379,10485919,10616993,-65373,10879141,11010215,11141289,11272363,11403437,-65361,11665585,11796659,-65355,12058807,12189881,12386303,12452029,12583103,12714177,12845251,-65339,13107399,13238473,13369547,13565951,13631695,13762769,13893843,14024917,14155991,14287065,14418139,14549213,14680287,14811361,14942435,15073509,15204583,15335657,15466731,15597805,15728879,15859953,15991027,16122101,16253175,-65287,16515323,16646397,-65281]},{"sector":3,"data":[16908545,17039619,17170693,17301767,17432841,17563915,17694989,17826063,17957137,18088211,18219285,18350359,18481433,-65253,18743581,18874655,19005729,19136803,19267877,19398951,19530025,19661099,19792173,-65233,20054321,20185395,20316469,20447543,20643839,-65221,20840765,20971839,-65215,21233987,21365061,21561343,21627209,21758283,-65203,22020431,22151505,22282579,22478847,22544727,22675801,22806875,22937949,23134207,23200097,23331171,23462245,23658495,-65175,23855467,23986541,24182783,24248689,24379763,24575999,-65161,24772985,24904059,25035133,25166207,25297281,25428355,25559429,25690503,25821577,25952651,26083725,26214799,26345873,26476947,26608021,26739095,26870169,27001243,27132317,27263391,27394465,27525539,27656613,27787687,27918761,28049835,28180909,28311983,28443057,28574131,28705205,28836279,28967353,29098427,29229501,29360575,29491649,29622723,29753797,29884871,30015945,30147019,30278093,30409167,30540241,30671315,30802389,30933463,31064537,31195611,31326685,31457759,31588833,31719907,31850981,31982055,32113129,-65045,32375277,32571391,32637425,32768499,32899573,33030647,33226751,33357823,33423869,33554943]},{"sector":4,"data":[33686017,33882111,33948165,-65017,34210313,34341387,34472461,34603535,34734609,34865683,34996757,35127831,35258905,35389979,35521053,35652127,35783201,35914275,36045349,36176423,36307497,36438571,36569645,36700719,36831793,36962867,37093941,37225015,37356089,37487163,37618237,37749311,37880385,38011459,38142533,38273607,38404681,38535755,38666829,38797903,38928977,39060051,39191125,39387135,39453273,39584347,39715421,-64929,39977569,40108643,40304639,-64921,40501865,40632939,-64915,40895087,41026161,41157235,41288309,41419383,41550457,41681531,41812605,41943679,42074753,42205827,42336901,42467975,42599049,42730123,42861197,42992271,43123345,43254419,43385493,43516567,43647641,43778715,43909789,44040863,44171937,44303011,44434085,44565159,44696233,44827307,-64851,45154303,45220529,45351603,45482677,45613751,45744825,45875899,46006973,46138047,46269121,46400195,-64827,46662343,-64823,46924491,47055565,47186639,47317713,47448787,47579861,47710935,47842009,47973083,48104157,48235231,48366305,48497379,48628453,48759527,48890601,49021675,49152749,49283823,49414897,49545971,49677045,49808119,49939193,50070267,50201341,50332415]},{"sector":5,"data":[50463489,50594563,50725637,50856711,50987785,51118859,51249933,51381007,51512081,51643155,51774229,51905303,52036377,52167451,52298525,52429599,52560673,52691747,52822821,52953895,53084969,53216043,53347117,53478191,53609265,53740339,53871413,54002487,54133561,54264635,54395709,54526783,54657857,54788931,54920005,55115775,55182153,55313227,55444301,55575375,55706449,55837523,-64683,56099671,-64679,-1,56492893,56623967,-64671,56886115,-64667,57148263,57279337,57410411,-64659,57672559,57803633,57934707,58065781,58196855,58327929,58459003,58590077,-64641,58852225,58983299,59114373,-64633,59376521,59507595,59638669,59834367,59900817,60031891,60227583,60294039,60425113,60620799,-64611,60818335,60949409,61080483,61211557,-64601,61473705,-64597,61735853,61866927,-64591,62193663,62260149,62391223,62522297,62653371,62849023,62915519,63046593,63177667,63308741,-64569,63570889,63701963,63897599,64028671,64095185,64226259,64357333,64488407,64619481,64815103,64881629,65012703,-64543,65274851,65405925,65536999,65668073,65799147,65930221,66061295,66192369,66323443,66519039,66585591,66781183,66847739,-64515,67109887]},{"sector":6,"data":[67240961,67436543,67503109,67634183,67765257,-64501,68027405,68158479,68289553,68420627,68616191,68682775,68813849,-1,69075997,69207071,69338145,69469219,-64475,69731367,69862441,-64469,70124589,70255663,70386737,70517811,-64459,70779959,70911033,71042107,71173181,-64449,71435329,-64445,71697477,71828551,71959625,72090699,72221773,72352847,72483921,72614995,72746069,72877143,73008217,-64421,-1]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[538988361,538976288,122902867,0,0,671154176,202603,33430,1329877837,538976339,122902867,0,0,671154176,1316715,37394,1143821133,895439695,673194016,0,0,-2116288512,18161,0,542330692,538976288,270540832,0,0,-2116288512,149233,0,1296912195,541347393,541937475,0,0,671154176,2561899,47845,1095649623,538980402,540424243,0,0,671154176,66656107,9349,1179537219,538986313,542333267,0,0,-2114650112,73156337,71,1330926913,1128618053,542392642,0,0,-2114650112,73221873,54]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[538976302,538976288,270540832,0,0,-2116288512,149233,0,538979886,538976288,270540832,0,0,-2116288512,18161,0,1314213699,542724692,542333267,0,0,671154176,4134763,17069,541148997,538976288,542333267,0,0,671154176,4724587,4885,1297239878,538989633,541937475,0,0,671154176,4921195,33087,1113146699,538976288,541937475,0,0,671154176,6035307,14986,1113146699,1146241359,542333267,0,0,671154176,6559595,34697,1179864142,541281877,541415493,0,0,671154176,7673707,7052,1347635524,542720332,542333267,0,0,671154176,7935851,15792,541148997,538976288,541675587,0,0,671154176,8460139,58873,1162692936,538976333,542333267,0,0,671154176,10360683,11616,1162104653,538976288,541937475,0,0,671154176,10753899,23537,1448363347,538989125,541415493,0,0,671154176,11540331,12015,1230196289,538976288,542333267,0,0,671154176,11933547,9029,1430406468,538976327,541415493,0,0,671154176,12261227,20634,1229734981,538976334,541415493,0,0,671154176,12982123,12642]}],[{"sector":1,"data":[860704069,538981944,541415493,0,0,671154176,13440875,91742,1414742342,1313165391,541415493,0,0,671154176,16389995,12050,1397310534,538976331,541415493,0,0,671154176,16783211,57224,541934925,538976288,541415493,0,0,671154176,18618219,39818,1381124429,538989135,541937475,0,0,671154176,19928939,18201,1145913682,1163282770,542333267,0,0,671154176,20518763,5873,1380010067,538976325,541415493,0,0,671154176,20715371,10912,1380011347,1448232020,542333267,0,0,671154176,21108587,8335,542333267,538976288,541937475,0,0,671154176,21436267,13440,1162104405,1163150668,541415493,0,0,671154176,21895019,13924,1330007637,1413565778,541937475,0,0,671154176,22353771,18576,1347371864,538976345,541415493,0,0,671154176,23009131,15820,1263750980,538990917,541937475,0,0,671154176,23533419,5883,1397968708,1280066888,541346134,0,0,671154176,23730027,9462,1397968708,1280066888,541675081,0,0,671154176,24057707,12231,1397968708,1280066888,541937475,0,0,671154176,24450923,4623]},{"sector":2,"data":[1397968708,1280066888,541415493,0,0,671154176,24647531,236394,1397968708,1280066888,541217351,0,0,671154176,32249707,4421,1397968708,542130519,541415493,0,0,671154176,32446315,18756,1262698832,541544009,542397260,0,0,671154176,33101675,2404,1313428048,538976340,541415493,0,0,671154176,33232747,15656,1313886273,1397052495,542398548,0,0,671154176,33757035,8369,1397968708,1280066888,542133320,0,0,671154176,34084715,161763,1414087749,538976288,542133320,0,0,671154176,39262059,17898,1329808722,542262614,541415493,0,0,671154176,39851883,9194,1213419332,542133317,542133320,0,0,671154176,40179563,5651,1347175752,538976288,541415493,0,0,671154176,40376171,11473,1396785745,538985289,542133320,0,0,671154176,40769387,130810,1414087749,538976288,541937475,0,0,671154176,44963691,413,1162760013,538976345,542327106,0,0,671154176,45029227,46225,1162367821,538985298,541937475,0,0,671154176,46536555,6934,1396785745,538985289,541415493,0,0,671154176,46798699,254799]},{"sector":3,"data":[1230131015,541150284,542327106,0,0,671154176,54990699,29434,825242164,538976288,541675587,0,0,671154176,55973739,6404,942682676,538976288,541675587,0,0,671154176,56235883,720,842019381,538976288,541675587,0,0,671154176,56301419,395,1162891329,538985550,541415493,0,0,671154176,56366955,10774,1230197569,538988103,541937475,0,0,671154176,56760171,6399,1381258305,538985033,541415493,0,0,671154176,57022315,15796,1262698818,538988629,541415493,0,0,671154176,57546603,36092,1145784387,538987347,541415493,0,0,671154176,58726251,16200,1347243843,538976288,541415493,0,0,671154176,59250539,14282,1263749444,1347243843,541937475,0,0,671154176,59709291,10636,1263749444,1498435395,541937475,0,0,671154176,60102507,11879,1447645764,538989125,542333267,0,0,671154176,60495723,5409,538985286,538976288,541415493,0,0,671154176,60692331,18650,1145981254,538976288,541415493,0,0,671154176,61347691,6770,1178686023,1279410516,541937475,0,0,671154176,61609835,11205]},{"sector":4,"data":[83965417,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16776960,0,0,0,0,0,0,0,0,0,589203758,780676609,-2010250961,771829014,20002441,110046750,-919404237,-1912153714,2016840641,2048822784,86163200,-67105863,520529139,7866055,512492834,-1962475398,779881230,18550409,2081230474,923699246,403606273,243871356,243990827,-1993442278,-1962867442,779884046,18157193,2081296011,487491886,470715137,243871356,243990807,-1993442285,-2147408114,696002110,-1557258635,513868069,430124668,16352001,547425909,665005692,2082644225,19505966,-1946799108,-1324167682,870372102,-1948545317,-1912554466,-2130657762,1347552127]},{"sector":5,"data":[2139098997,158682117,112775307,-1959801526,772059586,18552459,725805779,899886786,94812673,725805779,247500482,94812447,-1207524109,-883949000,-795948916,855705020,-1579643200,-617382901,2081234570,-1557208073,-970063609,16854534,689343278,664874497,103493121,-628948707,512437760,-472841963,-628899029,287214336,-754667140,-2084361237,-919404326,2081230474,868387664,787609554,1476464035,-163712521,772174351,19793606,85631236,-1557247928,62390559,922103296,-58719945,844919808,-1959898908,771826446,17370761,621710126,243871233,-164757237,771831590,17368577,186024750,446758913,860375045,512372443,-470351561,151388462,370224641,1347944715,119994158,117489409,-1070335997,-1607548786,-1557266121,-1545076461,1077958656,520487214,773736449,17245943,-1962564051,7387336,-1064380274,856008382,782562303,18955913,786706975,771831712,771822499,18036479,771823848,18024079,18850606,809402414,1081409281,36557363,787296768,20385418,53404151,771826438,19207699,17408814,186026286,1049308673,-13762271,-1207889098,-1064435600,1476404712,455538478,100740609,-1645543135,791579182,378154497,-1959919315,771826462,-369023583,7340032,1358955961,17408302,186026798,-1031057407,-147926477,771828534,1476464035,725022510,512437761,-634715861,959378315,1929450294,915090949,-1023540973,-1959863670,1342246166,-768359797,87488302,228797953]},{"sector":6,"data":[-147957759,-1979644618,-771313166,-1964832028,-1949529368,378154719,-963968723,1464861364,1482625997,-1961331879,1373909727,756451886,332224257,1950964063,-8656637,838923241,103362276,443810067,151388462,377695745,855638283,785943259,-150922335,-369622045,113508178,20291886,-970014578,-16699386,18850094,775847982,1215627521,-388894581,861073411,5957842,639464794,-1574041718,1380319503,1239994931,-1608099328,-1574043648,-1590820592,65732879,772246310,18810615,91553793,-351273179,-754667260,267927016,384507507,-774753454,13796320,300478603,-1960420864,-508665,-970062221,77830,1448133383,784763735,18550411,992932343,1946226950,295906868,-768388607,386269998,370355713,53346585,-2097079034,-1557266222,-1993473783,771820310,18024135,-13434879,1526632936,453937966,-784643839,1583340171,521061208,-402301250,-466485226,-617408819,516217742,2025718065,-1944286976,432865860,1958742700,-1290882040,-351220473,168674291,762212174,1953724755,1679846757,543912809,1679848047,543912809,1869771365,1376390514,1634496613,1629513059,1881171054,1936942450,2037276960,2036689696,1701345056,1701978222,226059361,-118947830,-369098729,7342227,0,0,0,0,0,0,1879061760,-176155904,1124532230,538988111,1193287712,28672,554104192,1481982215,538976288,1879071008,-174014464,1342637318,538988114,1797267488]},{"sector":7,"data":[134246400,956757376,1330397959,539249475,1879079712,-183975424,67583494,254,1879084288,-176160768,1124540678,540101967,-1625284576,-1073713152,201782688,1414548487,538976305,1879095328,-174014464,1275532038,540169296,2105376,0,13238272,-1598029712,119146229,861163596,538976288,7340252,116752384,1329792807,538980941,15605792,-2147483536,120391413,860704579,538976288,7405567,116752384,1329792819,538981453,1056800,318767104,0,21,6400,1769472,1308622848,28675,131327,16777216,0,589824,0,0,2048,-2134093824,101191744,167772932,67372546,201328655]},{"sector":8,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7340978,33554432,33554943,23593024,150995456,256,0,0,537067520,10240,65794,1744887810,192513,131081,0,0,0,-65536,1325400063,1095639119,538985805,8224,1174405120,842093633,2105376,7341078,33554432,33554943,23593024,150995456,256,0,0,537067520,10240,65794,1744887810,192513,131081,0,0,0,-65536,1325400063,1095639119,538985805,8224,1174405120,842093633,2105376,7341178,33554432,33554943,23593024,150995456,256,0,0,537067520,10240,65794,1744887810,192513,131081]},{"sector":9,"data":[-65536,1325400063,1095639119,538985805,8224,1174405120,842093633,2105376,7405567,33554432,33554943,23593024,150995456,256,0,0,537067520,10240,65794,1744887810,192513,131081,0,0,0,-65536,1325400063,1095639119,538985805,8224,1174405120,842093633,2105376,-1603270397,131589,5242881,5242960,80,1343422464,505355295,522133023,522067742,7345407,7345198,1413563904,538980913,1095106592,540422484,1308631072,1095639119,538985805,8224,0,0,0,603979776,16777216,33554434,50331650,67108866,83886082,100663298,117440514,134217730,150994946,167772162,184549378,201326594,218103810,234881026,251658242,268435458,285212674,301989890,318767106,335544322,352321538,369098754,385875970,402653186,419430402,436207618,452984834,469762050,486539266,503316482,520093698,536870914,553648130,570425346,587202562,603979778,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,33554687,-1,-248,-62977,-16056321,201326591,-1]},{"sector":10,"data":[-244,-61953,-15794177,1895825407,-1,-142,-35841,-9109505,1996488703,-1,-137,-1207741185,-2147214333,4,0,0,0,0,0,0,0,0,0,0,0,0,520093696,1509964544,-1761576960,-738151168,285274880,1308700673,1,46596163,46597014,46600962,46601547,201770542,785318656,1187465,335973422,1088998144,-402594816,16449595,887619584,64256,3008513,33620219,-83876120,-402456064,19922975,1697792,-402587344,19922963,911362,-402456272,21430279,-1577057560,1048587780,1946157069,-1590800371,959315971,1476400134,-13761163,-402203090,-152371101,1431787088,-1156664237,281870343,1583308123,-2144415912,3390,1458047092,-402426624,-1943142331,-1677714402,-367067346,512634374,46792732,471764480,-13722624,771798046,1842828,781983502,867968,-402099200,57999393,-1660940056,-16740149,33023,1042432,1354957172,772125779,925439,516118619,1465274630,-1154038482,1053044231,146343871,1604842240,520575326,-1269608253,520039942,1482358798,-1910567229,-1191175674,12451845,-778523647,-1948200480,-1381257736,-2131565909,409662,1102979700,964870,-125069140,-1378317395,1962933123,-49907,-16578444,-1416364285,-454906989,867968,-402426880,432865328,1951355709,788475397,1344143627,-1912586056]},{"sector":11,"data":[1548504,205261860,521014389,867968,-402426880,525860872,788475641,1364197643,1156056663,-18177,281002126,1095936,-1410088909,1482252039,788475587,-1545009434,248830,0,0,0,7342254,5242880,917506,1310800,7340044,1,131072,0,0,1459617792,860902150,-1144549633,-2068316139,-1943024362,1959201728,-222818805,1460031496,-889192008,1594317656,-2063597621,290058,1330511872,1296125472,538976325,1330511904,1296125472,538976325,-8388576,1342177535,16908291,268566529,-134217728,1,0,0,0,2097920,40,0,0,0,0,0,0,0,130816,1330511872,1296125472,538976325,32,1095106560,540160340,-16768992,1342177535,16908291,268566529,-134217728,1,0,0,0,2097920,40,0,0,0,0,0,0,0,130816,1330511872,1296125472,538976325,32,1095106560,540160340,-16768992,1342177535,16908291,268566529,-134217728,1,0,0,0,2097920,40,0,0,0,0,0,0,0,130816,1330511872,1296125472,538976325,32,1095106560,540160340,-16768992,1342177535,16908291,268566529,-134217728,1]},{"sector":12,"data":[0,0,0,2097920,40,0,0,0,0,0,0,0,130816,1330511872,1296125472,538976325,32,1095106560,540160340,-16768992,1342177535,16908291,268566529,-134217728,1,0,0,0,2097920,40,0,0,0,0,0,0,0,130816,1330511872,1296125472,538976325,32,1095106560,540160340,-16768992,1342177535,16908291,268566529,-134217728,1,0,0,0,2097920,40,0,0,0,0,0,0,0,130816,1330511872,1296125472,538976325,32,1095106560,540160340,-16768992,1342177535,16908291,268566529,-134217728,1,0,0,0,2097920,40,0,0,0,0,0,0,0,130816,1330511872,1296125472,538976325,32,1095106560,540160340,-16768992,1342177535,16908291,268566529,-134217728,1,0,0,0,2097920,40,0,0,0,0,0,0,0,130816,1330511872,1296125472,538976325,32,1095106560,540160340,-16768992,1342177535,16908291,268566529,-134217728,1]},{"sector":13,"data":[2097920,40,0,0,0,0,0,0,0,130816,1330511872,1296125472,538976325,32,1095106560,540160340,-16768992,1342177535,16908291,268566529,-134217728,1,0,0,0,2097920,40,0,0,0,0,0,0,0,130816,1330511872,1296125472,538976325,32,1095106560,540160340,-16768992,1342177535,16908291,268566529,-134217728,1,0,0,0,2097920,40,0,0,0,0,0,0,0,130816,1330511872,1296125472,538976325,32,1095106560,540160340,-16768992,1342177535,16908291,268566529,-134217728,1,0,0,0,2097920,40,0,0,0,0,0,0,0,130816,1330511872,1296125472,538976325,32,1095106560,540160340,-16768992,1342177535,16908291,268566529,-134217728,1,0,0,0,2097920,40,0,0,0,0,0,0,0,130816,1330511872,1296125472,538976325,32,1095106560,540160340,-16768992,1342177535,16908291,268566529,-134217728,1,0,0,0,2097920,40]},{"sector":14,"data":[0,0,0,0,0,0,130816,1330511872,1296125472,538976325,32,1095106560,540160340,-16768992,1342177535,16908291,268566529,-134217728,1,0,0,0,2097920,40,0,0,0,0,0,0,0,130816,1330511872,1296125472,538976325,32,1095106560,540160340,-16768992,1342177535,16908291,268566529,-134217728,1,0,0,0,2097920,40,0,0,0,0,0,0,0,130816,1330511872,1296125472,538976325,32,1095106560,540160340,-16768992,1342177535,16908291,268566529,-134217728,1,0,0,0,2097920,40,0,0,0,0,0,0,0,130816,1330511872,1296125472,538976325,32,1095106560,540160340,-16768992,1342177535,16908291,268566529,-134217728,1,0,0,0,2097920,40,0,0,0,0,0,0,0,130816,1330511872,1296125472,538976325,32,1095106560,540160340,-16768992,1342177535,16908291,268566529,-134217728,1,0,0,0,2097920,40]},{"sector":15,"data":[0,0,0,130816,1330511872,1296125472,538976325,32,1095106560,540160340,-16768992,1342177535,16908291,268566529,-134217728,1,0,0,0,2097920,40,0,0,0,0,0,0,0,130816,1330511872,1296125472,538976325,32,1095106560,540160340,-16768992,1342177535,16908291,268566529,-134217728,1,0,0,0,2097920,40,0,0,0,0,0,0,0,130816,1330511872,1296125472,538976325,32,1095106560,540160340,-16768992,1342177535,16908291,268566529,-134217728,1,0,0,0,2097920,40,0,0,0,0,0,0,0,130816,1330511872,1296125472,538976325,32,1095106560,540160340,-16768992,1342177535,16908291,268566529,-134217728,1,0,0,0,2097920,40,0,0,0,0,0,0,0,130816,1330511872,1296125472,538976325,32,1095106560,540160340,-16768992,1342177535,16908291,268566529,-134217728,1,0,0,0,2097920,40]},{"sector":16,"data":[130816,1330511872,1296125472,538976325,32,1095106560,540160340,-16768992,1342177535,16908291,268566529,-134217728,1,0,0,0,2097920,40,0,0,0,0,0,0,0,130816,1330511872,1296125472,538976325,32,1095106560,540160340,8224,1921055360,50102282,-58717580,772109322,17182463,1465012563,-1202715106,-661782464,7603910,2145550336,7673402,113641330,-352255884,-1064545504,50654145,1539346115,235922307,1912659944,-397387764,-155582438,1810427395,646600704,-469106572,133759348,1499094815,182875,-973061214,536889350,1946352768,1208403461,-1047911936,1151483684,1160677376,-1061058048,1185023720,-1060992256,-461372192,214174223,4694688,-401714426,-1960443812,-390003385,4366850,138906150,646580059,-461373322,-1998583104,-1023379930,-401671285,896860224,4384782,12136309,32553473,-496108804,116849661,1946288200,837291536,-1189711360,-256245756,1827928577,703074043,-33131264,1962951438,1701364683,797895423,1701376000,773778175,1701376000,780135167,1701376000,786623231,1701376000,788065023,1701376000,795470591,-58658816,772110101,17182463,1921055360,-1202708746,-661782464,-13722536,520160798,714,-264831186,1048653316,478741744,-970060173,319091718,-184105426,334188548,-200882642,-970058748,324870,-265387730]},{"sector":17,"data":[857508100,-257872174,95795972,-1993411593,-1291522026,786691588,83166720,-267976914,1048653316,23987440,-30529930,772076806,82849409,62456174,1048653312,23921904,-30534538,772076806,82849409,-371064467,-150550994,-617407228,-1590767053,-155319056,833796,344638462,91669051,-490591418,113651443,-1977875209,915025619,-1976695563,772076558,84025087,-13709178,-2046492130,520040176,-930740990,35585838,786991621,82839183,181686731,-455998287,-883309558,110042894,110036667,-392362307,-1980104685,-83562442,-100611096,449642932,-1154547717,1381060614,449700914,1347967322,777146707,115017415,78905345,57875149,-2013228055,-2012823762,-2012823538,-2012823242,772194838,115017415,1239941122,779579905,115017415,-421003261,778793472,115017415,-1427636224,113287168,-1086422888,58004486,755000325,78708816,-594873866,95795608,-1557208585,-1014364453,1958742936,23968012,19849719,-351872250,-1052868601,91619846,-620298450,-1039234554,1240281606,-619839186,-1056011770,1240281606,-1010900527,-1947139322,100740612,-1959917861,1510398774,-1017619623,-768358093,45365483,-193848627,113192584,113249928,113325704,113379014,10938368,-1998004622,-388402688,780795925,243926719,915015360,378144449,520029890,-1597831454,535299775,113222144,-402210656,-1063124970,113352710,-1577054744,-1029699903,321542,-1022967134,254075018,-321780559,-2134701355,537313086]}],[{"sector":1,"data":[242496887,113196672,-2144570855,-2147041218,1048585586,2006517440,-1052868578,393679366,113327744,-2146404864,822526526,1048578423,1979713218,-104597502,-1086422845,276243462,113262208,-2146863271,1493614910,-1007156617,79283193,113228544,-527825014,1022365477,-803834102,-789786388,-2131963668,-58716188,1124497162,-119442103,-1866204733,0,0,0,33587200,-65536,2623746,16777728,64,33622016,112,67248128,256,134447016,512,268763135,1024,2141716480,33556483,262144,67239936,4194816,8,33556483,1048640,268697600,4194816,32,33562629,4194368,1074135040,4194816,128,33587207,64,152635015,0,825176368,876097328,33591296,33554690,47186032,150995709,512,0,-1879048192,16843264,14680576,133761376,33558272,0,0,33591296,33554690,94371952,150995961,512,0,-1879048192,16908800,15729152,166729344,33563648,0,0,393252864,396629898,396629924,396629924,396629924,13113278,-331940050,922693143,-883620128,860944896,1490587328,383427374,-669087442,1359416854,375127,771817662,-523134804,-125050671,-1414662265,-142103635,1499459042,17211694,11838254,17342766,11969326,4982471,244057972,113705038,139067476,5639820,6555335,244058107,-839188378]},{"sector":2,"data":[108817,1397765749,106386001,11667636,91362253,-99186642,1516177175,1918393177,1048587803,1946163194,-90165752,-339149289,113651215,-1207888147,183173121,-1060060976,1962935077,-30523386,1073772550,-1024014198,855799168,-86887488,12374670,-1974338809,-1061924635,393352653,1962998912,1200236050,1050816002,1200236038,1067593219,-1106384122,-963706881,958502,104768046,551952560,1044283438,276103174,547907300,263195252,1357140198,343146920,1491600304,-402477047,28313939,839470824,155838656,1021838000,-402542583,-1070462665,856240872,-1898279214,-1077922878,-1414855372,113756300,116260972,-956272989,1644209158,10920711,-1157626689,-1416427788,-947672173,-1817472252,-1817472085,1477035,68585733,86810629,19309102,1044283438,192085254,86705863,113639951,-841022174,-754536174,-1993451040,1343673870,-617393378,512482190,512622780,2139160766,1968198147,92241935,-1962314420,1241954512,-1031065651,1076698971,-542953984,4205846,383886126,74299992,113760910,2294387,41225868,-33385821,-1777432383,1896269570,-1207419134,-1064434579,-661733325,637550241,43124283,3999094,-955615760,-201311226,1041140742,-1899416832,-1777431847,281146884,-970060684,268756230,-435763666,521015556,-1981282546,444169,1476990976,1973609522,19243520,100786385,-2135812258,332204212,378012786,-768469155,113647374,-1089928916,1048576281,1963005677,-1958900981,-16398531]},{"sector":3,"data":[18147839,7673402,132711282,-1949748479,-973031875,672590854,1364350750,-855067642,-2139590125,108331261,162604981,-956431946,914933246,-511699222,-351369153,-332494826,739129878,-2012973567,117517326,526342745,332207540,-58716814,-2146929406,113640137,-2147417993,672590910,1048578933,1980307179,-351816108,-331448240,-176861162,1048578486,1948522219,-348225472,192155414,384515712,-1226935031,-1238439166,120253185,526342745,332207540,-58712206,-2145749758,113640137,-973012873,1343679494,263193014,19662394,748815222,550076417,1048640138,1963065464,-2133852667,-1070391055,-1994986848,-341821883,876972310,-2010952311,1434985077,75335685,384573066,-2145034872,16807998,113643893,-2097020808,1292439753,-29521117,-21566526,-17765950,-64057,391984778,1534391818,-1957527374,-1978179522,-1224706786,39053312,-806877070,-402427129,-27654177,1976499906,114026721,391984778,28803250,1049318226,512366432,719847541,-401706494,158533542,1527232232,-339214758,-27632669,1976499906,624853209,58065409,-1962834968,-2129174466,1963530751,152616717,7814784,-1090292480,118360318,1044283644,594934790,391986816,-1759742976,-1896873794,392609478,-1174407745,-1494024183,-1190627945,-557968372,-1202984174,-1064374272,-365002458,1968129023,1048651339,1347289068,-2128199051,1107291710,641299793,-2030044255,943078880,410136183,-679642,943579270,1914795824,-123656693,1038124799]},{"sector":4,"data":[343093300,-1105973831,118363148,11812489,11931276,-1527525845,1048577806,1963001075,104761624,13744389,-216781122,37652900,768261,-216727618,28858276,637645633,-839303798,460480277,7931590,-1070391807,1049221262,244056496,-1105264206,-877062902,245691137,264733471,-271454255,-271454255,7391105,212617,-1122576735,-401734441,113113874,199757318,857671419,92940031,383230502,383164710,235347462,81247519,-84875250,-1962467578,-1993472419,-1978211298,-2010767523,-1978212834,1166739533,103360023,1166743256,102311449,-315484454,-1895877858,975080415,1840783109,650153476,40961678,772216552,383649526,-2130283200,-351275013,-134511869,1239998578,40364548,-1959918483,-2147411650,1954546813,-2093118711,-210370561,45109483,-1962588792,-2084504003,-193593345,423529262,775785217,19211914,-1962742656,88442941,-855719682,-1607535243,37492438,707666034,1912677638,-352189436,100806149,-1574043531,-1057089834,74301214,-1767710834,784539394,-1911103071,33602496,838992312,113142,158471117,-29458138,1957319939,1472461057,-2012864941,1434977629,592281604,574998017,-569981435,-141950954,-855067566,-2000224749,1918506357,1071743075,1376996744,1526706408,-1027910030,1207313923,410288380,20938790,-2144990092,108266559,104824870,-167115147,-822199692,-2129607805,1963197179,63093720,-62392794,639137152,1946238848,1065362956,637957124,1963343744,1962281478]},{"sector":5,"data":[-2083586545,-75427645,-663419902,48753145,-485062610,1200301590,1468737028,77062,637590147,638076675,1930057491,-569475067,-1960411114,1166607431,1200301591,423987462,173509414,138906406,-1994566263,-92071099,1023768320,-1267597248,-1961273973,-617408699,1343446410,-768359797,-1557203977,-145226455,-20280589,-1965345855,860886365,698429138,787740421,1476733347,-2094074889,338238,4029559,-2089322748,1963018109,1229259523,-858731312,180413568,-1964471604,378154738,118363875,-1207873861,332202497,1392594619,1065365072,772633833,1978351488,2139106857,578129922,771840443,604653450,1978678512,1065430549,242549248,38242862,108314634,-59512624,1532495220,1476474601,2139172443,1965961736,2139106831,141897738,-68603925,19065342,771876328,805863297,772633902,738674570,1962812465,17164564,142573870,-579719629,-2144467083,1915816575,1048587988,1965621620,1048587863,1962934622,505304911,-1105261049,-947715751,2088971782,594870280,360481582,773616896,1539203,1166742901,1149840904,356879112,356813102,773277067,-1189657463,-1527578599,503734047,-1122038265,-401733807,520550398,22276359,855726526,1149972178,1975520008,1149971982,1418407445,197823255,-1996065592,1435048773,457542429,773674379,-1996268405,-1020589731,771807875,-1995744117,-472837795,-628899029,1552625152,207456518,-338492239,-628899029,784937728,-2013115254,-1957689267,-137219134,698560241]},{"sector":6,"data":[-235448315,691962670,477560837,1913648701,-569475067,503726102,-1122038265,-401733807,520550258,10938631,-569475026,-1091993578,592281856,1435173376,457542429,773265086,225580091,992872055,91619908,-351615357,139234030,383651336,72125230,106203950,-1962125943,1166744917,141395995,383649526,857634112,1272810203,-338438141,-18644925,-338562165,-1014899197,-271580673,-351175288,1376039229,-754166389,1522674666,755030659,-628948991,-1979534592,-1023211395,755028611,-628948991,-1980500224,512364869,1569199838,119414303,-641917170,-941093371,1435181046,457542429,1996552835,427655958,51410688,192026437,-1994701429,1170673221,-1979711461,-2011767266,133701469,-1017160929,777409104,24395392,774992937,822574977,772240688,805994368,1505632885,2088971777,410255368,138709806,289669934,208998003,139263790,18574723,1924483,-1017619874,196610,-617414144,18431684,-1977198842,-75488675,859731205,1166747346,1975520014,1435182600,1166747165,642798107,638928267,-1961662985,1348098248,-768359797,-1557204489,-145226455,1959922673,-1993981951,520496453,-351898227,773787222,384646784,-2141948927,1081411579,1166791219,912652069,-1993054729,-1303892155,267795713,-388954510,-169090352,1946286720,759547653,1434976496,653733417,-147971688,857839158,922169042,-1992285798,267072069,-658578479,-1926198505,431564669,1604645632,1036264967,1962934147,-11736829,-796157757]},{"sector":7,"data":[399311284,-796157757,11838384,-1966926643,-2145952458,829686014,-2007859022,-1273537514,-32256760,-1967115322,392340422,-1975524992,392471489,1544980998,-81270761,166200178,-27654400,1976499906,-1014905903,-2144992830,192152895,-2129607805,1963197179,-394466319,2004025506,392183435,21448135,592282368,574998017,-569981435,1654718486,356878615,-1994955615,1553994565,71665687,-2013235808,-2094660283,1996491391,2139301383,997343240,637856643,-2147321974,-959397658,-1977170224,1435042647,1334519369,2005542402,1544980993,33602327,-855506504,-1156550125,-402259006,1913061386,4319235,-1006668823,102650711,20938790,-2144986252,359924799,104824870,-1014821004,50037008,-102402812,1599807239,-83039805,7683712,101544474,-1912312392,113649344,117507071,-1957472573,-2097080010,74776380,-135580533,1552694409,-16398590,39685375,-1962517107,-1994957258,1577485084,117309975,109248629,1533286240,1364247390,-315402926,-768358093,449643188,1962998147,16417554,-41742987,1159492609,-499121991,786557950,83035846,1107969,-246290346,-264861190,1566505732,-1017620134,1048587856,1979450942,1048587813,1946551871,1048587784,1929643583,-1265979371,3205158,199789488,-1979243520,-401887008,-1017642974,1347680924,1894154252,-1955470192,-2145101608,1894125324,-1955470192,-401712189,-809304063,1358581916,1894154252,-423327088,-2145101711,1894125324,1483859088,-1841138,777474499,383520393]},{"sector":8,"data":[1212728203,53404151,773249030,383391251,777211934,383727243,-208937330,-569969106,1047871510,-217846063,-388877486,-1957035906,-1978043129,-425579001,861029910,7137490,41050,384279086,384213294,-338603173,-388953997,-388896559,-661919535,268428161,861015787,-2082025006,1072169170,529226240,723474526,-97293,19793781,-350823410,1347572623,383164718,-603026642,-1892787690,503655174,-1123148018,-135788315,1599807474,383557934,-523116410,-1017513981,1448563024,-963961338,-468808914,-1863190762,1347886598,-1590812914,-675473706,-941093372,52844786,526321989,104541703,712251112,384344878,113716818,1323,28954763,-694080000,856104470,521019135,149273870,535991784,244002394,994645732,534416337,1499422215,50008,0,0,0,0,0,0,0,0,0,0,0,0,7340032,805735982,115392256,-1426062151,-69056697,1364219595,508909394,-326413562,772961931,3153550,-1576909685,646447137,881525991,1187524,21465638,224889382,307202854,341281574,77790849,113710965,1323,1979710083,1468737036,722897180,1468737029,-1977182438,976093767,-1741917436,-268181295,2143561367,-13698034,41025876,-1909587532,-989843426,-1996484066,123405127,1516199199,-2090968999,-389348668,-487915511,0,-1342177280,304006147,1328096768,-108940270,-83164989,-83756287]},{"sector":9,"data":[1543558401,-83779839,-50198271,-83755775,33233409,33227259,35258581,33227208,35586555,38863391,33227259,33227259,42664443,33227259,33227450,33227259,33227259,-83164432,-83756287,218158337,-83675901,1946381313,1426289667,33229315,33227259,70582485,33227208,64684539,115540955,-1442839064,-1007093022,82126474,109494322,-1073086452,382544501,-327892981,1970405437,-351227900,-448888805,208928772,141942844,208987146,82559026,74825738,796296,827587,1299562506,82192010,510990029,7945856,-1005358080,637538846,215031,-1207471100,-617463552,-1258744371,-1072971005,646580341,382534885,4048875,-1341885070,-2146243824,320830,-532935820,-58718347,-1342016512,304006144,1200104960,-473696243,92940028,-500576953,-960235272,3078,382534068,-466422924,-185919795,-117523736,-1154554941,937951234,639464704,-466483830,1946169320,-229351,212863349,788166,-167187712,108265924,-371493557,-498598261,-389809966,-210436086,1971373302,-9770508,378208948,399310881,820281424,1479605376,-461371787,147620063,1948828918,-167137270,41230532,-1329348354,29685250,1375177667,-1962986925,-788207842,-393245725,-1075291388,-166365697,-152993596,638481497,-387698004,91619248,-1007101470,-31594151,1195716,226328614,-385649659,-1977156083,-1004138939,-13495427,82255498,-1886657583,1698432232,1161561972,-1960386187,-393246451]},{"sector":10,"data":[227091972,1053082616,-2144993262,1963265405,1166681614,1952791566,1967471620,-104597502,-469907223,8120337,126271538,58048522,-1442839064,-1007093022,1055392436,247789056,1489174901,-1341341646,-386030871,126484565,292929546,-167763224,208929220,141828264,-1996499480,-22943481,-385977367,547880971,-990448012,-118393824,-1962691389,-855629546,518570772,509440,-1427913736,1191545382,-421002828,-2134575361,179307892,-486715671,-1950091029,-2130697954,-1023404349,-436847440,-1056767819,-1961398087,-1948125222,-161173304,-2084043801,11993298,-763114749,-1148087808,-470292213,-141373049,-2084502557,-1148059438,-201981947,11913354,-1835481974,-796134409,93005515,-214007728,645136388,54888998,84025087,-1977161590,520028741,-930478846,88443430,84025087,11726986,-855395078,-1960379622,-1960443315,520029269,-1258682654,-1894068991,-83562490,83050112,-16092160,-100334050,449643956,-389809925,915079246,-1047853840,-489563509,-489565743,-754724399,-1181564653,-235411189,-1070344053,-745803273,-150943559,1694138609,-360709262,-628427420,11718865,1018811089,-1963854080,-2030962950,-963948348,-1951704917,-1007113277,449700914,82984576,839349504,-268041756,-1073036540,117376116,12780784,-350797286,-721055228,1023956736,1476745224,1091062021,1476745224,167826693,822614536,1476745224,1795512325,1476745228,604329989,-1710145007,423543826,1161307649,638153733,-8176188,-101550593]},{"sector":11,"data":[-1447741,637534654,19154422,-2128210060,-16833691,18745030,1173759743,208929059,-335544386,1173759532,628424995,1048639027,1946157175,317450250,1223177842,-1106086636,513802241,1161438721,-402295548,32178216,516163150,-1993998318,185011831,-2146469386,30526,-1511521420,503760403,-1007091967,-1274636056,29279105,-14620672,1195739942,-1960390613,-937735867,-771024267,117313909,1048576285,1912930589,487521804,-2096764159,24519930,-924073138,-400192986,-165216449,1963008837,3663907,84543174,6088705,1048621426,-972946166,330246,1048578676,1946157175,330622979,-1945712765,304006337,1736975872,2139694605,1334388242,1472460820,-1993946829,-1993975987,196696397,85835264,-213137533,1173759652,348012575,-1107069691,146343179,96961280,-1017142029,591787558,-385649659,1381040286,11397203,-620033678,-85456779,-379786496,1642594443,-2131201535,30526,-622328972,2105550354,443875874,1979317376,81705850,34698,233355,366475,106379,-58709525,-1335856392,1074313985,-1174323015,-990510847,-33065726,-2084307264,-990500671,50885633,-26167351,650313414,638088584,638352776,638471561,638608776,638666120,638803336,638932360,1656263,1170679296,637534231,1918407,1499093760,168216259,1055391749,-957158651,330246,-336001104,-1191135512,-890765311,860582400,1312719067,359950593,21905024,-2146536215,-352235970,1048588661,1972371792]},{"sector":12,"data":[23306282,-264441820,1671438709,1961901057,1963042843,1446936855,1965961985,1480491015,141767169,22742726,1124199169,-1966881800,-1979622602,-1962844354,-1979621106,-1610521818,512360804,378143078,1048576360,1963001098,1304596,113640818,-2147351286,16807742,451412853,-2134640622,687961150,-1957613963,637629710,-1957212791,637630222,1465470345,768342,-2097055298,-1527559225,-1107294023,-947715708,1587868421,-1007134369,11977721,-402652487,41025541,1438853002,637535165,-1157343862,503710030,33667079,1929843661,75556940,-165264268,1963008837,943620329,309657606,918888016,1149894957,155502089,715267855,503732225,33667079,-1677257779,104349312,1343124736,503392928,19740357,520701064,91463000,-5064725,1981188345,504793088,1837639169,132684870,-1017275132,7814784,-402164736,-14222141,-1007148987,7814784,-401705984,-2094596941,1946165373,1308567044,-389810144,-165217117,1963008837,-1262225406,-943458045,50405382,-955847935,50405382,10020864,-2132153229,9169144,1397815019,593333030,1965147126,281278067,-1977192844,1460012101,18431684,71645222,548623221,593331238,807816052,123675485,593299494,8011392,639071489,294272,-1977205131,-1912208059,637540870,117769378,1048588011,1963065464,-1977200617,-527825595,436637190,109454848,973538564,276060384,-351356440,1036264971,1979711363,123730335,-1329375141,-1341986040,-960235257,33628166]},{"sector":13,"data":[109895563,-454556361,1166681851,18850320,-165222173,1963074629,571378142,891717889,868387585,-2083453962,-2094661418,1946160765,16679693,992394613,-1216934315,906171115,992347435,141696373,992389495,-1552475307,86709899,390398758,425005862,101002659,1705614,2016855078,758548736,788958209,-165279999,1963008837,-17373168,7814784,-402426880,1256722148,868387584,1979131602,86614803,637873569,-32279049,823560386,1300964865,-768389099,-150656607,86615025,-2081294504,338238,4003447,-2012121340,-1560202730,580976947,8906753,-1023390232,654254313,-1576778358,1048576286,1962935864,19701818,758564126,71600129,-1979038582,-1575025564,646447398,-987889365,637611318,35814784,78644597,839533702,-2034172224,-1575024316,263192871,-1023334238,591787558,-399543039,-2137259522,407614,105915253,19740356,637610912,-1610333048,646578471,-2010775258,-970585788,637666116,118121608,197369176,654013632,19088886,116788596,1954546991,2746374,650362931,-32289398,823012033,1005400577,-1962773567,-1957605176,911553,-1054123943,-117251632,-320223765,376064,591787558,-2146929663,57935100,-1996488003,-1996148178,-1979370450,1342251046,20125323,591787558,638284801,21462403,52823157,-825210539,906677968,-896859855,915073414,-1977220814,-2144992171,1946493565,1983807507,175439616,1946352768,83656711,1458242164,1912667368,1981188245,1837639168]},{"sector":14,"data":[540967238,1946223361,-165259182,1946231621,788985351,813006853,843047296,570829284,-2000158207,637612302,1980976442,822527515,915013889,-956432078,360004134,-164493710,20121343,20067976,372950008,108331126,1181563430,1978179188,1486678784,-402344880,-1519189871,1964113024,873398027,-392530939,1055589720,-16428056,-351981042,2000584732,57933824,-2146608664,17118782,29165685,906413568,-1410859003,639661056,19088886,-58718859,-2146143104,175426812,87295687,-380108795,29228793,-386405632,113639501,-1946222306,-1962860018,-385796826,1048641112,1962935864,-1605368290,918815016,-2010775251,123210052,100666600,19740356,155502118,650315521,-2145434122,-1912205963,-855296250,923175955,-104659195,1371766964,-1979245050,21275332,-1090516551,-1359871684,558474,-1007068921,-126556080,1196768038,992347765,225724749,18679494,1435051520,1300833863,-1017579447,-2147187736,41158396,-469056691,-1492647741,-2045843444,-1559452914,-1710447860,-1055758063,217253650,230756079,212012195,298978467,1080038016,1113735521,1197950566,-127276952,304006150,2139104768,-1977219059,1963396679,205307429,58007720,604786622,775957727,309789754,1189138840,-13701117,512634388,-2118909904,787045059,304006644,325043456,574982694,637618056,623068555,1200160771,1166747138,71797029,1200144434,662015238,1946224630,-1909580270,-402640866,669580160,275914745,-1928956531,431556479]},{"sector":15,"data":[520494592,-123407609,304006595,325043456,592281894,133562688,-1971555070,-2010775225,1200300613,1166616068,38243109,512634398,1048576048,520093815,-47905931,206335,592284454,-34283135,-1993948917,1200235333,-1909580282,-1577045986,639567415,-2145170047,133584640,638940417,69420535,637891584,-81566333,-1929371719,199960445,592282406,1685764,-1928954483,-1527576713,512634398,-320339920,-1956700413,773727823,3153550,87625353,1703093791,133625635,637891588,136531331,2000681347,-1089019110,2005730619,109981224,1195835440,-391271763,-492174872,-1329334027,-977012468,-989851106,133567327,504263681,807308846,37873664,-133724129,2105550531,141886754,807308846,10283264,-1962848373,133563223,512634370,57933872,-402594071,20709911,54265460,1743456117,27650130,-95754150,967033483,940476417,-1142846975,243991867,126420281,-503004285,375289,87800657,-1274725984,924748805,42919941,1360425561,-1982123181,-1610270946,78906681,2045247921,1935235842,39512105,104400582,1381060609,1006744296,-402426623,1499070791,-960634280,17185030,1963392128,-377441278,113704309,-1023408583,304006430,325043456,-1962717301,1468727623,522160645,18876102,856590596,20095489,87625355,1946338294,180521763,-164727324,1977879265,650677032,19088887,-150113280,-2147143930,-972721152,17118726,-617365453,87498377,-973062168,341510,-385764157,113704205]},{"sector":16,"data":[-352190176,537314821,-1006238975,637538846,638803908,-1560066165,-1960443597,849477959,1200301569,1334519301,1606690311,923175945,646514437,971505973,943620345,125042950,-1897377456,-1101506054,-523172549,-268181295,637534650,136529399,-2029882368,1179800017,832744518,1173825025,1946157347,788985621,1946189829,571902221,-389903615,1499134739,1353499640,-1974460842,-989778906,-2013188810,1686635332,-1977657340,19047362,1593504488,1960024,1499125763,1048622050,1946224184,-93788157,-58670088,-1979484414,61916100,-1194816829,-523042688,960397507,242483462,591787814,1282670720,593854758,113704831,-973076935,1342257926,-2144992080,1946296957,2105550363,74711330,283836848,1048576688,1962935863,-972836857,1409366790,512644638,918880282,1153826936,526257929,-1977215052,332203093,325421606,20391560,-2142088765,17185086,-1070455180,104349312,-385649407,1443233925,1705614,2016855078,758548736,788958209,1153836545,123604745,625838886,65372233,-841953840,170322310,-1977216179,503710805,414472022,863114189,104414848,103117825,1705614,2016855078,976652544,1007062022,436637190,1049175552,-1893334920,-973047290,17184774,966967346,-2146112762,158600444,1954610304,-352210936,-352145402,1594077186,1510416222,-2142190759,17184830,113640821,838927929,-971780636,-16747002,1448330072,104335094,1345746177,2105550342,-1902378462,637540870,7878340,19740297]},{"sector":17,"data":[19859084,637613984,-1610333048,-2010775237,-970586300,-1659958972,-970586763,117705284,957778776,652904961,-1979427446,100743222,87492238,1577522125,-1326922917,1166681843,423543812,1161307649,638088452,539182583,638940416,-303350332,-957115672,16808454,-956887064,31238,-148453070,1057605,-1977219468,-1040317107,1187525,-134131832,-1070444349,-2046412382,168179718,1444836544,918881822,-1909586374,637546502,1705614,2016839974,512501248,520552570,-1007134626,637575656,-972733046,33628166,1912634856,1665040422,477294593,24395392,-1005226711,637538878,-1106018364,-947715723,1554690,-1007115021,-1007089744,637561320,-1979366006,537315024,-397278719,1918500930,1665040446,879947777,24395392,103642409,-1090052521,918880629,1959067666,46564115,-218097735,1595868836,-180361209,113689226,-402456288,113639434,-1006698210,-1007089744,508778246,21937927,378130995,28902699,-156178432,-1022927013,72714790,578343434,591787814,443875332,7814784,-401378047,242485015,332207796,-1152186253,-521666496,-977052922,-989851106,11539295,591787814,41222656,1200144638,516276993,1606746130,1702962707,-2130837725,1962934655,1300309510,-1023279069,304006150,1200301568,1963473933,-1190719978,1623130123,-222001652,-1207405138,15401216,130283527,-974252823,-989851106,130487135,-1977221120,-164494251,332210356,134092658,37538046,67373684,74712892,292882748]}],[{"sector":1,"data":[-134133880,855408835,45147764,1949432960,-1274564606,12843393,1947466880,150765587,-58705036,-2139524074,58018556,-822040599,785943632,3153550,11810559,11941631,17184511,17315583,11802249,-1996441949,-1946089954,117508102,1482301275,1945648335,1975519995,-335564796,1946238195,1946369048,-1909580252,-1996476386,-1946152418,520098822,1879611626,505284096,512634375,-739770320,-351854845,512634567,1053098032,-1125449447,512634398,87818288,104599924,-1023990411,527761409,147859072,-149361920,1962934722,-804356078,512295176,109840542,-1665464160,520560136,20743915,-400681611,-4521909,-1950118145,198440927,1124168923,1018161951,506688770,-1895825473,3008711,1962934147,1004533537,-1090160929,384565247,150421131,-2096118909,503443683,108333303,150406855,-383778817,1978269560,512634623,1049296944,-8189705,-2146470401,589118,520030324,1049299193,-54327049,16824657,-33489279,-8320393,74972672,-1017534989,-1527520815,1397801817,1894274822,643985920,19088887,643462144,-1961665141,4138433,1299628859,-469044234,-477494155,-511653634,852232896,-972930844,637588608,1981105467,-768388554,358452006,-770968585,-745863307,24428555,1526368840,-141897730,-410977910,-2046381249,49009355,-757329176,182028003,123730127,-1966909349,-338755856,423544052,1429743105,638153732,-8176188,-101550593,144083651,182727168,-1978436416,-16776282,-1660940106]},{"sector":2,"data":[1879545754,-2037408768,-1866268656,-2147467264,30526,-1152165516,1088946496,1340824324,1383649924,-896904880,-523107920,87099012,1114921049,-1003616685,34927902,14123226,-1828207066,787176199,1982083,-2096663544,352329278,-1269813899,127375873,-346554256,-1909580254,-1560268770,-58720226,-2136968187,340286,-1751471499,-1677692921,104742528,-1648003846,-903929486,-93126654,1963392128,2027031059,2000584719,141819904,4242259,1526971112,-2132808711,2121533948,1964113024,943620315,-730595066,2047616,852325634,127376100,513867888,1021587968,1404531713,547508817,33667072,-1694595096,7341975,-58716557,-2145553399,309662204,-1070399308,2100990,-1040316044,-939603970,1526323179,-2031396007,1320899334,-1207493119,-1751514623,1526755335,-2147126521,-495644164,-74754218,-402567490,1583349281,513918699,-58656000,-2143587838,1014236412,1946549376,1378842440,1431327569,-1030951797,-489561391,-489561391,-1031679229,57868799,-805272343,713077998,1927297766,158763574,-369196312,162791642,-15537671,119427846,-1711190341,7341975,99157851,1448281855,503717463,-208986361,-402567489,1595932081,-1948390562,105973846,-30021545,323848998,591787814,123666433,74761354,-517324876,1944074841,-997568507,-527825941,-31070128,676888178,-872283546,-66913278,175431738,-2048342998,-1965364227,-1974269578,-58719386,103118083,509040158,-1090052346,-1957232306,-45356813,526278491]},{"sector":3,"data":[1451884976,-44374008,134079208,585841266,119427846,-1342091589,139889153,-386055192,123469259,1465262706,1321139083,-48764927,-2141495713,-1975450937,-17300922,-1979091768,501745750,-39458563,1532880267,1918523739,-30217981,16668137,7677578,503744447,-294131449,18464286,-1977207611,1144521797,-1290242812,1560815120,593233955,593854502,593267423,637723520,-2094834424,-663355588,-1996340084,96937532,-1021313025,147850998,-1710918655,7342289,-1977200047,-225835691,721548928,1241561289,1950429133,1103265822,-468285394,399031831,-844353965,179056169,-386370112,-466425271,1515919053,168674137,1702063689,1679848562,1701540713,543519860,544370534,1986622052,977346661,1684955424,1701998624,1629516659,1797290350,1998616933,544105832,1684104562,168430969,2105746944,-389873632,-164368308,1946245864,21555247,1380985717,72714790,332207796,494032986,-1979711042,637607454,1946443064,1381060623,1525490664,-167028647,-164428940,-306386749,770243186,-369790208,-1326910559,-400853761,376701190,1928177128,1501199,-167049358,2145912953,-209459200,-389849351,-167050795,1048586360,1948844404,15329320,-164369292,22953600,-401443840,225575165,-1107188760,108396543,13101126,-956775432,-16703994,1973506243,1161504257,-1592887977,992346487,91576645,-346491341,-4302628,-622069505,1963392128,-13244204,803786612,-401444115,158531481,41481739,132694853,-1159071488]},{"sector":4,"data":[-222631438,-402647362,112459783,264160249,516234752,-947716078,-2093446837,1082936303,650321666,35866103,640775168,35814784,-58709388,639989241,119700864,-2144987020,1946755709,-1157124079,1622794255,16955913,-385694589,-997987011,-319166206,-1000929597,637606206,1963218232,1560880644,1036264995,1979711363,-1022926866,591787814,650313792,-1088199293,1173825219,-1023409629,-186101678,-401902337,175243281,-402610968,1492713441,1515897690,1375731907,105927505,-1090052521,12454156,833801,123708659,189106726,290294566,52879862,-1557264059,-1960437361,78711877,-930354989,-1885262255,1300964889,-137219309,-896908559,-148450765,-225831563,-1226250102,-1186696467,145752080,1946173312,-448823241,1199834484,-2096007925,-320724797,117386841,-1058924145,384562739,116624217,-1090052521,196675852,849670912,-164386112,-128448673,-1017489061,1591602009,1475734366,213799254,1271366409,-67105607,1582933235,1364706143,-2096558914,213470151,-1493959680,1354981209,530642483,1161438721,1308718096,50008,0,0,0,524288,4718664,0,12060240,650153712,-115072,208996345,-2136448284,777520756,1191679,17950808,18,149422080,14337,-352321536,-402616318,4260091,0,1308685032,1108736,1258291200,216727618,0,-402653184,5832923,1108943,1258291200,216727618,0,-402653184,7405763,1108943]},{"sector":5,"data":[1258291200,216727618,0,-402653184,8978603,1108943,1258291200,216727618,0,-402653184,10551443,1108943,1258291200,216727618,0,-402653184,12124283,1108943,1258291200,216727618,0,-402653184,13697123,1108943,1258291200,216727618,0,-402653184,15269963,1108943,1258291200,216727618,0,-402653184,16842803,1108943,1258291200,216727618,0,-402653184,18415643,1108943,1258291200,216727618,0,-402653184,19988483,106254543,168201774,780873216,28311568,4621862,1333067836,271483694,-1993996288,-1943666074,-980745130,107907878,4602150,-1957346699,138841068,-1961425315,786992101,-1677693301,6225710,-1960383349,-1910112146,-1960442794,-970587546,771752006,1060489,-2091361017,1020199620,637826049,-402635130,-1427439598,204356398,-1946914304,1187391208,-336919808,237931310,2122327552,309657600,-2044329552,3932230,20714612,-2010774412,992870470,1946160174,149783302,516152299,-1896873800,-29458216,1965029887,-435703804,-5178766,-1578753562,-561066356,1342323134,7387166,116840590,520161488,-1710918568,7342289,1948531884,-1274563832,-351220466,234810355,168625930,1702129225,1818324594,1635021600,1864395619,1718773110,225931116,1937330954,544040308,1953259880,168649829,35449124,0,0,0,0,0,0,838860800,182016]},{"sector":6,"data":[8388617,0,1,16776960,134217728,327684,1090519040,33578042,20480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,536870912,538976288,2361869,65280,-1459617792,-1778094846,688155906,290051,0,0,0,538968064,538976288,538976288,538976288,538976288,536879136,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,57409536,56099949,56099949,1133,0,0,0,0,0,0,24,0,0,0,0,0,46596096,7342333,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,365805748]},{"sector":7,"data":[-58714254,638743808,771901322,637745058,771966858,-352110430,-268388306,-23013234,933375743,-1458451197,460652545,-1261882874,-855592440,259131155,1946220928,1976699402,113651206,-67042679,-24381901,-1844540626,1226771970,-1014047949,-1138848986,109979136,-2128215874,1347552127,-2144985995,1967916415,1389464341,-850786632,-896837585,108318779,-1810462418,548948226,118941757,-377370581,1622673920,118155290,-1047607253,-784523079,111539177,1342518200,7387339,244111502,113641723,-1207891715,-437764832,63540230,868257473,788433910,40967822,-212860743,109850277,60883569,1872965120,113436674,1896229166,96504834,-1064433152,-2029615314,-1093104126,-24444880,723148985,-202780210,784370853,42278655,37667886,918892036,-1959918989,-100494826,-795948916,-83515716,1864302382,512503298,-1557265789,-1993473407,771915534,41621129,772115238,637692835,771900811,637693347,772031883,637695907,772162955,771914147,40961678,2097581102,1048784386,1946157716,-17582,567101620,567101620,772194446,43255339,-1958160137,-850742056,-17631,567101620,567101620,650153544,67271,-953810936,1375733766,113714768,4980746,201770790,637534208,919239,-1274609664,773967177,40582852,-846678792,638284309,189089161,-402426688,-1960442558,335876165,-1683804672,-1767887358,1166550530,861117507,1354773467,626564253,4059136,-1207012112,-1655640064,2447516]},{"sector":8,"data":[1124168944,1539541827,146845,-970586763,637617221,773866890,-1945895774,1125832,-1693545682,-773205758,-773205527,-1054129687,44147502,-1004120314,-953806211,1093,378662,1166616064,868257282,653822912,-1993996919,-953810363,16712773,105236262,-953810944,2117,521013087,772095208,42147470,1879612314,-1929577728,283870155,-164379762,-2135294325,648409856,3540620,567103668,-1172369890,616052617,-2145268443,261950,-524679564,808052796,378154527,-771095914,-889321868,567086772,773461480,40517248,772699136,40961678,-13713357,-352158946,-388287726,28836345,109981184,-13761935,-402490594,-30539481,-402437882,2062031478,681895976,1225195054,443082755,-1207615256,-1064435600,-49887706,-147980280,16992774,772305920,55117566,773474792,40517248,-402426369,-2144468658,158270,1441268596,113651204,771818449,65275534,567101876,1241970478,1946157571,777192997,64620174,-601978066,-850742269,1220578337,-953761650,134217990,113714688,1146290184,-2144467109,158270,-303561868,-1105261054,119407274,-5112181,-1431518722,-126500854,-1441943473,44633736,1379429818,-1258291269,-1272853176,1914817864,-1262449085,-1960719031,-1843491861,734563330,298025944,745728811,-113442632,1097998797,-919349109,45666867,567146818,251999090,13796096,-1325153304,199414540,1050050,57853243,-1272161047,1512164670,1002112782,72322051,-1945612404]},{"sector":9,"data":[-1070396337,-839300172,1002289697,-349267736,-17410,567101620,567101620,65315630,65053486,1095583939,1953459744,1635148064,1650551913,975201644,1634683936,1735289188,1397703712,2003790880,1176766989,1818326113,1920091424,1127903855,1869508193,1818304628,1633906540,1293968756,1919905125,1868963961,1329864818,604638547,1912612328,521061121,-1346762316,-1155412728,1189609473,109981184,-1070398863,2065628974,113651202,-1023409558,1912608488,109981203,-1070398863,2065628974,113651202,-134151574,14739651,-4713358,-390033665,-1959919586,-402489074,1843920953,-389810174,-1064435635,771754472,41881227,-1023400728,-2028040658,3194370,1622802059,-775017702,111539177,784370775,772014243,42278655,113444703,918892119,-1527578001,1872834139,-389862654,727384712,512306904,-1195179407,808262240,100871680,251986559,40822784,-661923061,1219762804,1366434253,-1912601811,113714880,524321,671532838,-1018998016,1381062430,1799275822,-1907405054,244000261,-885325821,-1977211022,-1946157034,-1983708224,-1999073787,-956301290,262,-1983173888,-1946156274,208320,526342490,-1172369725,162793685,-184933939,7387166,1307105422,-1203211008,801981200,925321,1050252,-4587084,236912639,158615552,365791412,1912619069,-16403418,1207963166,-1914167947,-1206356991,-1064370177,268879654,638727168,1064577,58004020,-104652808,12108575,1009765699,1397801856,1465274961]},{"sector":10,"data":[-2144467426,-16618946,-1813511307,1595869182,1532582494,52056,-2147483648,0,1,0,1397310550,1444945995,3354163,0,0,0,0,59921,0,1229215232,775113555,16810035,1073807361,-33423360,524294,1,-1070398400,1688328334,-794612224,6725898,181576494,79382708,1210174720,-953761650,134217990,113714688,1129512968,-88043968,6555335,1721958447,3455232,856334526,-65073409,1476109555,-18426,281002126,2144512,-217393986,-1022926940,0,0,0,0,65535,37632,65535,37648,0,0,0,0,0,0,0,0,0,0,0,0,-1949791226,-754142768,-754667030,192808416,771805824,772497571,190977672,234885305,189709831,365791156,-1014185209,738197432,264733635,-1309612157,736154372,1891114744,-1982296576,-972490946,-16773882,-1070349537,512678030,314441806,375040,-1296103666,1957098250,-18416,331274382,181911296,-218102343,-1189166170,-1047592961,-644953805,-1090469698,96010448,-1527514112,-388906209,-388896559,-993793839,637692734,840977802,1300768493,-1262384607,-387647912,915080452,-265616735,44250761,410356006,-953760117,5701,-1909078746,788476864,-1425889887,44540206,117321387,-1070398811,4176209,-24925453,773092607,42548864]},{"sector":11,"data":[-2146208511,242680124,-1410137167,-1323766951,1504441091,-2141645589,1946159228,1073788931,-1413051477,-978593652,-4712076,-1414812673,-1426062664,-1414922064,-1545426005,-1526282706,516112642,-1912573768,792626136,108331013,86969985,773783680,771924385,235053987,665184287,43884590,1383466284,-398020528,844630331,512437988,-1959918626,772005910,40582853,-1996194363,39160093,-1003610354,637787710,-64057,71665958,-470402125,19843211,-1207706106,19791878,772005382,375066240,659679234,-1070335997,521054963,-1339603224,149284952,43950126,-1959861198,772005406,65017483,1799275822,442337538,773608841,43982474,1569324850,-1004597730,637787710,-64057,71665958,-930399309,100787190,112722910,-570031872,1527676931,-186121706,-1325923546,1002000705,-1426850816,-985282778,-953810944,55877,-599406810,-497483776,-1757510684,57999106,-956262423,170246,-1761163520,1342177794,784608798,-1004141973,521011310,6195750,146326526,186764612,859207104,1586112219,-1161560576,230177150,140556612,561127885,965549707,859407777,33602002,-470289929,91607563,1979895869,-1761163512,-352320766,2122524173,108330777,426689574,1048686315,536871570,113713782,328343,43138689,343293952,43452103,1048641546,-2147482990,113706614,983703,-986818529,771910430,-1996318815,-1590804665,1200161433,308266305,-1339680024,129624130,1508397854,773806851,43597443]},{"sector":12,"data":[-399674368,-1959909885,-1996235250,-1959918001,-1996234738,-1959917489,-1996318450,12061263,786560770,772005539,375066240,635037698,1344657128,-402633544,777521011,40582852,541952550,-1609680338,772109058,44043914,-2010714830,-1590812339,-1993997344,-1590814651,-1993997346,-1047914939,-453617484,771905512,65013249,1527676974,-1930952170,902112805,377340966,251484392,-1908505825,242548482,54017664,-2146994944,-33343682,-1969131149,1958742786,627173482,15225776,65052935,521060494,-13371853,-1996331079,-402399730,-1527569081,7387166,113760398,1050816,146933388,64921902,42902318,772327075,772006049,-1560112989,146278600,100871680,-147979636,-1560114650,-400619318,19792328,772005894,375066240,620619778,235073256,43884575,-930356174,1052039987,45818317,-851528704,-102612191,-1338505030,-113396734,91431373,-349736728,29052947,-851528704,-661956575,567100852,567100852,-1338504006,663152642,-1338502982,662628353,106058576,-222625872,-297603582,-297603518,-297603518,-1896873800,1048585920,1962737662,-843009011,639005205,1074087926,-5238924,-301534534,-297603518,1122910786,1532626926,-526299048,-469357821,64791299,15226032,1049319430,-946994208,55590537,1049231155,1555956558,8435985,64884225,1527676974,954728982,-945491164,872632838,1410239505,1242465027,619184643,-534869212,65315075,-1912350045,-1260901440,102878538,-1907834740,113714880]},{"sector":13,"data":[524289,134661926,121918208,-1258291269,-1272853176,-1558065848,113705952,990,512475278,-668269919,1253329739,-4513331,-850873089,-850873311,65315617,65013390,567101876,503731907,-695525625,788318515,57476806,57589536,1946172588,-1392907518,1006995494,-33197046,-202684479,1812891694,16351235,-970062219,218328326,444206,-1946157056,-1096601912,-1029493245,-962384381,-895275517,7268355,56009510,1270136883,100908731,788475422,106824526,1931413278,-152545785,233528869,567102900,1946418304,422373380,252036089,-774319872,-773271064,-1943092248,771776790,6497929,-1909579315,771776790,6497931,359794463,637540328,55969337,162794356,1706696462,-350106368,788473598,639501138,-1912430175,871773144,244000448,-372178100,67307124,-85834170,-1190811970,-836027104,52881873,-498711036,12787705,218103808,1835355402,544830063,1869376609,1769234787,1696624239,1919906418,-768465888,1946179304,-1996377598,38243391,280519,784829184,43454091,6678615,-102565749,-1690424530,-1993975550,651134733,167923081,-971541294,771820615,-956047199,3399,772753289,755145633,19791892,772005382,375066240,576579586,777147331,771922849,43460343,620760837,-661913616,-850787656,-31953,12519541,109981184,1532625888,922693315,-1893334215,-1557265851,53347129,637704966,-953809527,16712773,105236262,-953810944,2117,102650051]},{"sector":14,"data":[1465012563,-1590799018,-1557790070,-1935605758,111355394,-1902039552,144909826,-1868485120,178464258,780871168,-1993998328,-1207956434,-1960443896,-150994418,650445793,-1962933085,48989144,71207718,111224320,-1948125440,113259464,168201759,-1426850816,134795,4638246,1183327744,1183393281,1183393282,102630148,1586046464,797517318,-502741629,149783519,929417,1060489,-268388322,1048631438,536477694,128975989,-1070370074,-1090862962,1119813640,1227526,-402647366,549323476,105365248,-1174390597,-974651332,2407938,-1157215041,1169817665,45541376,-1090404162,1320879722,5421568,-1107122200,639500328,1511922885,1946221187,-817921999,2139171956,1950501638,16417046,101742064,-268387758,992395918,1526661406,521106439,-1157213761,1471807577,40560640,-1105264149,639500332,1511922885,1946221187,-817921999,2139171956,1950501638,16417046,101742064,-268387758,992395918,1526661406,521106439,-1157212481,1874460785,36366336,-1105264149,639500336,1511922885,1946221187,-817921999,2139171956,1950501638,16417046,101742064,-268387758,992395918,1526661406,521106439,-1157211201,-2017853303,32172032,-1105264149,639500340,1511922885,1946221187,-817921999,2139171956,1950501638,16417046,101742064,-268387758,992395918,1526661406,521106439,-1157209921,-1615200095,27977728,-1105264149,639500344,1511922885,1946221187,-817921999,2139171956,1950501638,16417046,101742064]},{"sector":15,"data":[-268387758,992395918,1526661406,521106439,-1157208641,-1212546887,23783424,-1105264149,639500744,1511922885,1946221187,-817921999,2139171956,1950501638,16417046,101742064,-268387758,992395918,1526661406,521106439,-1157206081,-809893679,19589120,-1105264149,639500748,1511922885,1946221187,-817921999,2139171956,1950501638,16417046,101742064,-268387758,992395918,1526661406,521106439,-1157204801,-407240471,15394816,-1105264149,639500752,1511922885,1946221187,-817921999,2139171956,1950501638,16417046,101742064,-268387758,992395918,1526661406,521106439,-1157203521,-4587263,11200512,-1105264149,639500760,1511922885,1946221187,-817921999,2139171956,1950501638,16417046,101742064,-268387758,992395918,1526661406,521106439,-1157202241,398065945,7006209,-1105264149,639500764,1511922885,1946221187,-817921999,2139171956,1950501638,16417046,101742064,-268387758,992395918,1526661406,521106439,-1157200961,800719153,2811905,505348587,-1896873800,-29458216,1965029887,-433606652,1891171186,-958886400,17186822,1516199517,520575833,-1960393896,638028036,-1996340085,-1205992889,-661782416,-1996190938,1149969925,38111490,344532511,39619622,777062083,65015435,1494124846,650219030,1090519202,17729830,772233472,65013503,195]},{"sector":16,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16711680,1526726656,1044151389,574307627,113716736,5742,243871484,-953280927,1467142,113716736,5750,1728497454,771751958,385681095,-953262757,2081881862,113716796,725489409,50775854,-398770921,326305487,1409286072,639470374,57872186,1526727352,771826665,376452745,-1923786925,773224478,376375030,-1404865248,1913085928,113502268,-186108044,773354758,376375030,-402295520,652936843,1862727214,510935318,773581646,1027344264,-2144467339,18247438,122218563,783074675,-347928696,-1993453890,773219638,771753926,376708745,-1927443674,773224502,1949252736,1015033398,772305954,376375030,643069185,838944650,104410852,309532257,375497006,1128521937,-1960388605,8972319,-953259541,18244358,643885824,838944650,-523157276,-1977165821,200094223,1125086409,529213011,1526777576,1128481139,-953224478,51798790,641002240,838944650,-523157276,-1977165821,-773574137,-670875424,839879206,1959332845,642990863,1575493515,192109312,-220052669,1661388590,1560282134,-1959896225,773218574,773219233,375731851,1729530670,512372246,-1007151511,126559824,1962934953]},{"sector":17,"data":[117386757,-2144463263,427098172,1962934697,113716745,136803,-1336930581,-385895421,-346554210,18737155,-1007041704,-1977200299,-315488177,225757451,-402034803,141755362,-503312664,116128246,1982761262,1566177302,2122327747,57933824,1173809989,243281603,-401598865,1249050566,1864794158,777056022,722891425,100740806,777524848,376583819,3964974,-2144459147,1966800764,113716745,595555,-2094653461,427032639,17299238,772961536,375588551,166395906,-134179096,-335999509,61886474,65601460,-1007134720,2139825751,1049177604,-2010769817,1703421445,-1590800383,-1993992586,1012400709,638219521,637818249,-351908471,1963080794,1435051526,1011936004,1021867015,1021604872,637957382,-352037496,1963211838,1889611279,-1993981930,-1943665595,736822877,74811686,105745446,1207314000,74711298,166397104,38270502,-1341819902,15067138,1207314008,57937922,1593881832,113651395,1342183174,185043750,1343780288,777474643,375588551,-4980727,1541931952,1532649471,-352130216,-1871713533,1954545833,113716754,5731,771827432,375602819,-1453886199,309608448,1661388590,-402653162,-2094137109,152462142,11092085,773157889,375588551,384303104,60418051,1665041198,645204246,1946288297,113716754,5731,771947752,375602819,-1458604791,175382528,1661388590,-402653162,-2144468519,18286142,-2094133387,1467198,-953284747,152462086,1354979328,76164694,443858954]}],[{"sector":1,"data":[225786428,24936494,772175104,-352320314,72673289,1178993011,1482612715,-1974315325,76164816,1912881640,1958742540,845836,-352024530,-347716095,-1017226520,208896060,1014128956,947354172,887873316,-1923676589,773257278,393483576,240275792,-1973046265,-17470,-1174403655,567148543,777541978,771841419,1124287886,645934147,1527209943,-2144448317,-2146013426,1864794158,-1976632042,1948990468,1965898762,243281415,1174541935,1476395752,1381060803,868823894,-1976675374,1958742532,15853634,-466470542,-489559925,-756493871,-1960021504,-775844902,-388902430,527564997,-774774063,1912650984,332595990,11790536,-721220238,-402599549,57802921,1539042118,1526762985,1862727214,175374870,-755510793,-2097036669,-1960443695,-1977219465,1962949636,-1274957817,-1871385601,76162630,1618214972,116796998,1971328623,1278944798,2000056835,1413162502,640578049,1996966971,641364520,1996837947,640871200,2080590907,637959960,2080461883,1278944784,2081062663,1413162524,-352157947,164004628,-1250572034,1661388590,-1342175722,-335563775,637644818,199959690,1661388590,-1342174954,-385895421,1516174638,-1664919463,1862727214,41222678,1889387421,-104597502,1915763907,2000239624,-131060732,1355020739,643256915,637960075,-1073085046,-4979595,54283499,642203509,162792842,54584566,92940024,-453638732,653787968,1195836810,-399668442,309526578,-33306749,787576264,375588551,-4980728]},{"sector":2,"data":[-1977215765,45154149,-350909658,113716747,595555,61931444,1610393064,-1017619622,1448236368,-1976696142,37545988,199769202,116797182,1946687087,1966947341,2122327583,1903493121,-164752405,269905670,977014388,-2144990603,1962934398,1558922844,4602406,-1073078923,1162236532,975573995,1165295686,76164678,1178216005,1178236160,782756677,376375030,638547008,537020407,638022656,32384,-148495756,1946161159,1966750744,2122327561,225771520,3935979,-2144991371,1949958270,116128003,1916176686,1516173334,1354979421,-1959897513,773222462,-1073085302,1609044852,774141184,386270918,-970039807,-346095612,-970039745,643760132,67575,-953273739,35021574,1479142144,76164694,510967818,1946168808,22865931,1179058803,-370457017,376021550,312878,1049177671,1600001637,33597784,-1269823116,-402280193,-1017578610,512577875,163124989,121253376,-498924428,1532576248,777146563,-1073085302,333985908,774664705,973175939,-148500876,1946161159,2088775198,393543681,1631330316,2050756978,1613499767,-4927350,1072170672,772271099,375588551,1482293257,585673923,-401050624,376766547,1862727214,-311156714,1862727214,158613782,-116987058,1324876267,1405352131,1947024465,1946172461,1946827817,2105550373,510788098,-1977165005,-1014824099,964699652,856519680,160048841,20588099,-119405452,1532562748,777081795,375981766,645934624,1021253231,1010201632,1009939465]},{"sector":3,"data":[1009873964,-2146667232,125116476,977674416,639560640,16940416,-919398542,55413286,192203019,1124074427,1946237478,1022943751,-1017423584,376021550,1862727214,108331286,1863221294,-1069932522,781051883,-583330184,792463988,-336002187,200013838,108343100,1863221294,-1007140842,777213470,376192643,1344763136,1465012510,-164428203,12115598,-1943941789,131795931,1499094877,695490591,1781958958,512306710,-1959913876,773220918,376184462,1946172547,1912879632,21248520,-336002185,-347716091,1583085803,525189919,20644097,1797216002,528417055,8388608,1612681472,16842783,257,25344,8388864,1948225792,16842783,1,2048,0,-1876979456,1479475487,0,0,0,-1644167168,989921567,530841857,536870912,529596416,50339757,16908288,-1174265929,5132063,4605519,18859008,50412289,534912974,8171,32768,534192017,16843008,1,999,32769,534192017,131328,-1876979456,31,536674304,20644097,2097921,8388608,203395328,16842784,2049,65280,538771456,20644097,958407938,32,-1862270848,2108959,16843009,-16777216,0,-1862270848,2114079,65793,-16777216,0,18895872,16857857,8282,1048848,529538961,543752192,37421313,-2061471486,32,-1862270848,2128415,65793,1073741824,0,-1862270848]},{"sector":4,"data":[2133535,65793,0,2,-1577058304,989921568,547881217,536870912,529596416,8109,16851127,50331707,550314177,8409,-1862270976,18845727,19247,-1862270976,18845727,21551,-1862270976,18845727,22319,552402944,20644097,-182389502,32,-1862270944,2164511,8192,554114961,768,555155716,52501506,604250400,1195984929,1330380872,1297416279,1330511938,4345173,0,0,0,0,0,0,0,0,0,1414484560,609108301,0,0,12066574,-2011050697,-1174230506,12072980,567146813,113641075,-1022688439,-919349109,45666867,-1558065854,-768408622,-851312456,-1592358111,64135426,-402436957,-802426956,-1995314557,-402480874,-1959859571,-1912430314,868388570,244002514,1068762066,-1675506183,-1336846512,-470119654,1974399493,229658369,-1442139990,-1993410005,1493422654,521033823,-851528624,1922914337,1959279364,940882476,-1022017304,1048583950,1930036041,-1590231050,915080962,914949076,-164428846,64370313,53163657,-351780888,270198790,1913141224,721878994,1476838915,113639446,1006638683,-1978108918,136243424,1048582259,1929511753,131787186,619192078,-388699374,-806680568,1048583950,1962935113,20113667,55131776,-2143718398,50547006,-58715788,-2144504760,712329724,55185027,-2134250751,91572732,-336703768,1509720255,-58717580]},{"sector":5,"data":[-2147126182,141897980,64360191,64095999,-58677525,-966888126,2068230,857688255,-388920375,91424569,-351833112,-49851,1048648820,529014675,283837045,-2095082079,91554297,-350254173,529376003,1048827371,1986207627,122087435,529336007,317390848,-1558213727,-1918827881,43623199,-1560073311,1139344181,1140621567,-1715521419,-1949748449,115075281,367527283,1025829639,359989247,529677952,-972589823,18857478,113640939,-352313410,-1338788644,-1105819135,-383660769,-58654970,-1083083443,-919396195,-1628909173,-402296058,938149592,1962934077,-1841397739,125108511,548472518,-972690687,2142470,-1205936917,-661782416,-1321304018,141885472,86968007,116064257,86968007,-383844224,-58655050,-385649592,-390070545,-1949748448,105638097,-2048391821,1024125702,91553791,-351860504,-24057364,1968569472,914959946,-1943136675,-401187066,108202390,-385458200,106364534,1006930470,1007449101,-402099190,57938036,787344198,639720866,117441734,113651294,771760456,557399680,774075392,558368454,-2145654015,57951484,771906281,558368454,113716736,8521,1560725038,-880009183,-1993417842,772012086,66717324,1496746286,109850145,1558716763,136898576,552081522,765537799,100871713,124920107,788937006,-384666847,-2144989055,58002748,-402276375,-538373419,-1960900867,138930390,521013022,1443292274,101210600,503778902,918892118,1157046577,1971322884,918892049]},{"sector":6,"data":[2088764011,108141088,123608926,526278635,-402242584,-2144467283,1464382,-953282187,259078,512437760,-1993465553,-1157368290,568852486,572176,-401597464,-1590819249,-1557265420,-1590812363,-1557265418,-2144460489,2177342,669516660,1048587785,1979646570,-465770493,80093022,-350286336,-1172369887,1625832552,235363858,1048784415,1946158077,91023370,-49887442,-385875965,-1590756054,992878903,1981886214,-385393147,-986775764,-1960759018,1053044466,1149960811,-2147440380,-2144458636,35019534,1913110248,108984,-1993996172,-1943663531,145296989,638088192,638080393,-385196660,-1607597904,-1073085453,1149801332,-930375670,-1977158518,-494264235,-58662910,-385649126,-2144403597,35019534,1913091816,1157637814,100675104,-986840068,772012062,40578756,7259174,427721510,637957375,-350654780,899755763,1183393313,933309977,1183393313,784608795,-2094128843,555824390,637997288,-15120697,1187391231,931921688,-1993981117,1404305494,-1960435251,772145734,40582852,272972582,509376263,382021202,-1993989839,-1943661738,525997406,-490275262,-400617842,-1003559391,637692734,639782283,774133131,556873413,578128166,610110502,-1557265269,210313521,1577211017,192167943,1476853294,115533846,788408297,374867654,114747392,1593568745,998947335,-398759749,-538373925,1375502587,602473332,113651201,771766304,536217287,-1078001664,-1949748449,57141457,-202896269,113716736]},{"sector":7,"data":[-57356,-12764693,775189759,529612416,773158145,-2095082079,108331513,536126254,-1557265173,367730678,1465255454,-986839282,-1088449226,1726494752,123625232,783739679,536100483,-385190401,-1158022290,-2098644015,1048587776,1946171424,941668869,582616043,1023457336,1914818041,-660394423,785943299,773846177,536221323,-535917778,-2134802173,238759425,1215759011,-2143805250,41222204,-1003600314,1459779390,-402077821,777981953,65015435,-164374130,1930311656,-425178,118397044,540966958,91488312,-348643138,941800963,772793576,44109451,350994830,775689402,44109451,521060750,-186120589,51177487,-669086930,-851528701,-87496415,1962935869,1003600389,-138804245,265676859,-1023218200,1967586432,536395563,-779368141,1929530600,42395653,-12773397,772437247,773821856,-350218334,396373735,-1650315744,-91952894,1967979648,542097195,-779368141,1929518312,39249925,-12773397,772437247,773821856,-350198878,1671442151,-1599984096,-95098622,1968241792,146204691,1525156722,143845384,1072235378,35056122,1951136896,10807555,857760959,-388920375,208863697,-398687302,1474826047,9038082,1962934077,-1784599019,33129247,-1557264779,82518169,547070766,-2094082581,2136382,-2094130828,136354110,-2094135182,539007806,-953284749,-14640890,772795391,547044995,772240384,546899655,-2094071809,-14640834,-953278347,151161350,113716736,8389260,-1912158418]},{"sector":8,"data":[-1174405118,-857195389,31778830,-1590814741,-1557258087,-1590820214,-1557258085,-953286004,-16609786,-107943425,1968438400,113651262,-1090518358,1166555246,26142975,427081738,91365436,-347667064,378608,1006730216,-402426614,988348788,378617,-402478401,540803432,92857202,-2131432633,1014323452,857741503,-388920375,91422949,-352247832,-49880,-1607592588,-108847211,772175105,-350204510,1319251460,786230048,773868960,771923618,43976390,-116594432,1968831616,251604493,-13761578,-385625594,-58656518,-2131856336,57946620,-1090485527,-919396174,-1964453493,-402296064,1860894916,1962934077,1048653363,550117267,-970061707,18932998,-2127634197,-702573762,772306208,551945926,785378049,529743489,-965402398,-418986450,-1091895008,-448888786,-1205993184,-661782416,113642101,-973077275,17098246,551985198,772076194,552025728,101610496,-850217901,243279393,1526857862,1810439943,-229128,251595380,117375958,921371602,117396201,236914206,512503303,-1993468321,-1172939466,149422080,15853,-12778124,-133990913,536412651,521061127,-398768966,1609043271,1153090304,222160955,-385853976,1377761306,-1172369834,753417067,1563870477,-2146137578,125046266,567083700,250800966,996719135,-401796376,1516109866,-1957575905,-486288882,-701068526,76162563,64098047,64358143,-104637960,-1598358549,216655932,-1023406616,-960880882,215869500,-1023409688,240590342]},{"sector":9,"data":[-1088483833,179897137,731983360,670979,-768406414,-897519113,1326811184,806154219,-678754936,1594666728,851642143,-1834995996,460605471,1209103432,-970061964,2177286,113651395,-1006689991,1778828846,784531458,40502982,-1590770689,1307050659,772568064,558382720,772240384,-400478303,516096001,-1912586053,320768987,512306688,112271692,329509075,113651200,536813899,1048587971,771760459,558565062,504263680,-1912586056,1285631704,1286945,102679327,918892118,-964484815,-1090056694,146350414,1587999488,516103943,567108276,-1959863410,-1996315874,520094238,1048587971,1946165576,4319261,-1964504973,5564420,-1590816654,-1959911106,773929494,557585923,-970059797,2181126,65052974,-1558803666,8251394,556639022,790006062,113716769,8497,557032238,1017196227,100871713,724443450,186727942,-117279296,992889027,-1021236474,-1191182405,567101440,829741835,507063883,695673131,1208006723,561127885,-661764066,67271,113704968,1146290184,-1993466048,773930014,773929635,-132039005,784348099,773930147,773929635,-115261789,509019843,650153558,1734,-1557774268,776994817,66598597,-1392705909,74791484,-135528821,74800188,-269746549,-344604662,146798475,571648,1958742700,1949187079,-186471933,548406499,1582869235,-1022927073,-695525626,-851640136,-1958514143,1107474648,-779368141,796008909,-2097148155,-1023999790,158662640,721864494]},{"sector":10,"data":[-335544543,-754667238,-754142744,784468962,558433851,-1590819721,-1557257911,-1661460181,-851574600,784571681,556605067,1142851886,512306721,-880008890,1153155982,-1274826719,-1021194933,169642534,1174631643,-1976633621,639720734,784538760,-400476767,19850344,773928710,557123271,-1590820864,959324463,1981888262,131328259,-1590800189,-2144460489,1464382,992874357,1965108486,1048784392,1946165557,-4200442,1489238104,773768185,773926305,557260427,1087934024,-654851285,771752867,558382720,772240384,557719177,-1993470741,772005918,64882375,-1021378560,1225180974,771751969,559494793,1527155758,2877473,1396474150,639661385,1510112385,639137093,-402373494,259327692,-402274685,158466073,558474030,-134216472,650377667,-1310194550,1174631686,868480491,651310016,-75490166,-2143718387,880020219,-389838256,1951925908,2811923,79242866,-773795584,184214226,-672446781,-2097148155,-1023999790,209059824,-134216519,-657335599,-1007093278,-75447303,-2145947088,74922491,-1020204160,1916926848,1190887433,-343931785,-1007041737,1912606952,4188173,1541932402,-386471168,-389873387,762698844,567104180,1460046894,1125169185,-1993461811,773931038,557975180,1446936622,192217121,1912683752,113651208,-117497514,1355020739,-4583244,520040191,-771022528,280235892,1075773230,81185,1492648821,-68421181,512634398,512631127,-661913460,-1019494258,-2144989321,1509949502]},{"sector":11,"data":[-661758860,-352264984,1104776429,-638072021,1734,17221453,-1996486656,-956300530,1392510982,650350147,1734,113714765,1,637725315,202377,-1908155901,-1020574781,443942,-953791232,134217990,61023744,113714688,1129512968,52840427,637534982,208515,113649153,-1957888000,-1020575544,-1047602953,443942,-953791232,134217990,61023744,113714688,1129512968,-970538098,1509949446,17221414,1241513984,51808550,868425472,109981439,-1910103721,-1946121210,651726528,81465,585631604,-350260736,1829102,958797938,1962934590,244000482,21037059,637534990,227020170,-2134645781,1509949502,-661910668,198147,-121598400,-389809725,1903361741,112267981,-930357037,-654851285,-1912477309,113649345,642580480,67271,-1557790712,-953810941,1392510982,650350147,1734,113714778,1,378086986,-1909587965,-1088334074,-1993998196,2408205,856002086,1031808767,-1945340838,100869824,-1908408317,653192128,208515,113649153,-129171456,784595395,557465219,103052288,512437843,724443454,773929502,557450894,-850788168,1220578337,-953761650,134217990,-1022928128,-2144467426,2184766,-1909579404,639719174,2367118,-1942058202,-13899776,-130347662,-661781388,113701867,123338752,503366431,1381061456,-617406706,983965322,2126169086,-1337674695,-1324829427,-148779712,70952710,-1978567680,-1204115954,-661782416,-523107920,87098888]},{"sector":12,"data":[1482381658,236897055,-2113485025,-973057991,37322502,964691655,113704960,15015,236897055,1947024415,1946827809,1981824061,1949252624,820771075,-1996473880,1916446494,-108599289,-571800462,116858603,539303,-336002187,984064275,-1560280283,113719680,14756,10479864,117424927,251593682,-689241130,1928942568,1021256785,1011577409,105346906,243926798,11877178,-230999105,913639342,-754974280,-1491170336,-1948775622,16296392,568860788,1008562937,-400984774,777255192,53085894,63563808,705087022,-396689405,-1007157242,-1007036109,984026757,-1040764043,91488264,-348477790,-2134771928,-1576700928,501954943,427081739,1098231,-2103245452,-150017223,1946165441,983868165,-1566374933,113506362,-617412850,964632202,1962998656,-2113485050,-788518855,649563107,965066555,-67100743,-150493965,540714758,-1593412608,-1834796380,-1492715719,1946173498,983736582,-969304925,37324550,1049292979,1048787343,1996634516,-1977322179,-1841396769,158667321,964836995,-352160432,-2109832412,578103353,965885571,-1290046200,-2145915908,3768126,-55374987,965885571,-1291684600,-2029598978,512229689,-2103363185,-1809385671,-1842940103,965583673,-1959869448,-486288882,37414954,-24381901,-970014669,248838,1946274024,27846669,108268092,-260693956,782896107,63702726,-102372608,1465274819,-1102188917,11876589,210435467,-215686330,-251420762,-260723554,222134310,-2144989068]},{"sector":13,"data":[175376957,92939856,1476508648,1583340149,1594878809,1521506654,22341802,-109770180,782938347,-402403166,171704646,222038900,-1847064716,-336562943,776031746,63979136,777679961,63979136,774665289,63979136,774140996,63979136,773616723,63979136,-385649615,585629849,-394890239,1575485698,-1426885631,-402614295,1752432913,-402591256,-210501308,17033386,-471311756,1949252608,837331547,1012757505,-336955616,13690967,-109830084,-176944836,-244040388,712248636,645139004,63873582,-855194066,-1343749885,1948269568,1946762261,1947024401,1946827789,-811454960,117321219,-1813511219,1963604992,-17896967,378406,-18421433,378406,451652167,-12204506,1946827776,-401609756,-579600247,-402626072,-210501436,2062026987,-389123072,1017774170,1010725922,787445536,63979136,1008039253,1008169994,652178701,553600454,117321386,-756338604,276040252,-2144416533,19944510,-970586508,-1440678075,1409730094,1743323184,1048588030,1946158028,113651208,-352320564,117321381,-1628765236,-1977219357,-1018608124,1049177689,-1993473070,855888958,914960118,-473758762,1048588011,1962935244,1048587824,1912669133,76162600,-838453202,773747971,63782528,638285058,771835018,63899192,-1125971083,1174702630,1963605065,792511477,3937908,540807796,154930804,1027345012,742131316,993788532,-169416509,171706226,-571934859,1448199157,857671198,1631366390,2050754930,539755895]},{"sector":14,"data":[-486587256,1499340784,-1590800189,-1243085858,100740828,-953285664,253446,-526307840,104541699,594739875,1527182894,410255894,-1959897594,-1911137994,1220946886,238374,1529249838,123665686,-1161562024,521026625,-385711384,-1909533767,773927710,556867075,-13760629,773927222,-1155452509,-13761562,773927198,556861071,1915759811,1997093894,-104597502,-617393213,1929375464,-1152150710,-470351862,-2134703525,997327060,-181737325,540815218,742138228,154934644,976099700,1946364422,-1875952622,1007449232,1007186954,168064013,784430528,64095999,-703660242,197364483,784554944,53085894,1539322624,1347929081,868823890,33601746,1912688872,240518733,946061063,-218101575,1963417254,314999613,1963015296,344671797,-1207808885,719853568,-1960349183,-1225162484,1176467201,1599625798,1963082811,16417546,1413158260,51606532,-498710988,-17941,1499382777,-1946555553,-1993472940,-1959236842,1284180564,33601548,1912662248,1175227363,1448171334,-402504566,2104623275,-1962650485,12060236,567146818,12241010,1358082,-839303244,1002140193,-1950911039,1284179028,1107343366,1914818041,146691753,1577880322,-2097020742,1068763841,1914818041,1975597973,38046353,-1962800962,-2126429940,1996880121,3598465,309657916,410386214,443940646,-1590800297,1149843563,-1527556092,158662972,1167009375,1167009306,1599692312,1179005955,16352073,1760101236,121422847,-2094655883,276037693]},{"sector":15,"data":[642863191,-947712629,-205508094,1599625642,-947695165,227223114,942032711,638809093,1946238336,96961285,-947715093,-101981655,20712427,-347667595,2110006788,1354979585,-113114952,1918443981,869413641,-113265418,1455628749,119473694,1912614632,1174702598,-1274614970,69324057,547499585,941866808,1547437194,792462964,32178804,2091087,506994879,1577524998,1015042243,-2146602431,142039612,973175936,32178805,-1530701575,16743552,247724405,-1158509817,1757100971,-400617925,-1977221089,1959922196,-855460857,-219462111,216585099,1048587776,1946223569,-216209405,-855001917,485016353,-1173916928,350763012,-661929216,1152696371,-1024056883,-1259178624,-350106306,-113396506,-1329389107,1397608195,1397703712,1919243808,1852795251,808334624,1126703152,1886339881,1734963833,824210536,758200377,825833777,1667845408,1869836146,1126200422,544240239,1701013836,1684370286,1952533792,1634300517,539828332,1886351952,2037674597,543584032,1919117645,1718580079,1816207476,1769087084,1937008743,1936028192,1702261349,1431183460,1329791052,1430323278,1380974680,1130102862,1229344335,1498623559,977338451,1431257948,1498567758,1398362926,0,0,0,0,0,0,0,0,0,0,0,0,0,1329856256,1381256789,1543503961,1296912195,776228417,5066563]},{"sector":16,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,117440512,1179014466,1112756805,1163018757,105073473,1230390596,172246339,1230390596,1229473091,89475143,1162627398,1174685267,1481851459,1396788233,1230128212,172770646,1414288717,1095914569,139283267,1447645764,1297236304,1414727248,1397441345,1329792843,1381256789,1392857433,1280066888,1313408851,1279349843,1124550988,1162693967,56185934,810370386,1230459656,1162363732,1141059923,4739919,512,80]},{"sector":17,"data":[0,0,0,0,0,0,589826,0,66050,-805277694,195842,131081,0,0,16843264,14680576,133761376,33558272,0,0,33685504,1879179265,-117071872,589827,2,0,33554432,33554689,188743904,301992432,512,0,0,66050,-2147422206,651286,131108,0,0,985807529,987445979,987445979,989084379,990722779,1397245448,1128875092,168624206,1701998165,1852272483,1684372073,1836016416,1684955501,544106784,1179537219,1395541833,168645465,1107954980,1663067233,1634561391,1864393838,1634738290,1701667186,1936876916,606088480,1699940877,1919906915,2053731104,1869881445,1634476143,543516530,1713401449,543517801,1107954980,1864393825,1768759410,1852404595,1126441063,1634561391,1226859630,1919251566,1952805488,218133093,1986939146,1684630625,1970234144,2037544046,1685021472,1919885413,1685021472,1634738277,168650087,1158286628,1919906418,544106784,1314213699,542724692,1835888483,224685665,168633354,1970499145,1667851878,1953391977,1835363616,544830063,544370534,1314213699,777605716,542333267,1701603686,220465677,1852785418,1969711462,1769234802,1948282479,1814065007,1701278305,1919903264,1835363616,226062959,168633354,544173908,2037277037,1869373984,1679846243,1667855973,168653669,1225395492,1818326638]}],[{"sector":1,"data":[1394631785,1262698836,1918988320,1952804193,225669733,168633354,1868787273,1667592818,1919885428,544367972,1126198889,1229344335,1498623559,1768693843,606102894,1869771333,1852383346,1313817376,776423750,542333267,1701734764,1096229920,1313427026,1277174087,1667852143,1679846497,1702259058,1634738291,1512076403,2019893306,544502633,543452769,1819044215,543515168,1869506409,224683378,9226,-1556676608,-710852878,679865220,822321227,1062313041,-343611744,1403392193,-2064146369,-1827365628,-336375573,-1551257266,-399593343,1526774632,-400383311,1554299230,-1185617733,1256741796,-77749063,-1531363096,3598379,1793654619,-262871040,-389342229,1949386338,104841419,-260181015,-252980336,-543146365,1309146560,-1009324366,-7215,1012676775,861687644,512416767,-1014938159,-2008680498,-784311225,-82646203,-1864843433,-234879801,642744238,1595934150,2142285803,-970586511,1103298564,1398274928,915124288,-4569704,243990528,-118995547,1787420667,-1373730640,1597987653,1167593099,1672589961,294125232,-1961457109,-15628213,1267472010,-1962847864,1267668735,-1962782327,-1684947690,378209456,112237453,-1476754945,-402426551,-1007616215,-964165178,-5439167,8953919,-1056656194,7014065,-15721472,12824682,46042]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[-797333783,28733,939525376,956432642,84017923,51381306,37422338,71041794,84148739,33752637,85591052,1057358142,1074071042,1090848258,84017923,17171010,33752131,88343809,100732175,100812037,100812292,436356868,117590031,117590280,117656073,139134985,67240195,84412939,33751886,302075666,51447126,1459949570,218629636,16865281,33752154,89851140,67240784,100948997,1696670721,1711407362,1744961794,57083393,1812006916,201458442,436752388,1761935629,17633028,-1583874299,1423267020,1437095307,1409832366,1369855031,1376539136,1439454658,1282100628,1450466488,1583308235,1572296209,1570594236,1140872933,1281051750,1294093600,1140868096,1140870500,1573281217,1442403877,1319259277,1571642802,1210862869,1214859337,1245268090,1242516551,1298571579,1296842821,1277054077,1245727932,1612013773,-1350279087,-1496600915,-1472157734,-1471828010,1630449553,-1457805061,-1574019172,-1550867533,-1586259196,1590860538,1083989802,1297629352,1244941769,-1342419311,-1544968019,-1333310256,-1300844433,-1444240174,-1371100853,1084769280,1085558013,1271483083,-1493260520,-1493282902,-1323219968,1064060093,440860976,-78859922,-678425786,-1886197932,1164909464,1454583194,-1049936021,-2008015800,-447734632,-1236271793,479775887,-1280949094,1547859370,1806592938,1598686537,-1655717047,1185287593,222570414,189799553,-883900336,-632240474,55607463,542175825,5317969,542330180]},{"sector":5,"data":[542330692,1936876886,544108393,808463925,692267040,2037411651,1751607666,959520884,825045304,540096825,1919117645,1718580079,1866670196,1277194354,1852138345,543450483,1702125901,1818323314,1344285984,1701867378,544830578,1293969007,1869767529,1952870259,1819033888,1734963744,544437352,1702061426,1684371058,1980120096,-805326845,512634398,1448099287,839071678,1975520228,-350975484,125126709,-2013142400,1210837780,-494925963,-350976511,212257,378144373,384499817,1962935357,375569,-164495182,303120000,-2147257344,1482559694,-1444163809,512634398,512310743,-820051152,512634398,512441815,-820051152,512634398,-1599980073,852434698,841935844,773771200,1037508238,99354255,110057560,-90438268,-2076770480,-331940091,-109043963,-1965263068,-100209695,2003631232,872186066,-1569449870,2003106944,-2135591919,-1535880708,1952644224,1358725279,503746164,1381390165,-1940892847,512634584,-324846121,-367097595,92578053,-1593445725,-257751674,-1564462331,116786546,1963003952,54436611,52496126,92546697,92673676,-1560072031,-661781700,646533208,378273838,-1909587920,-1136797930,-1929705568,-1814327597,-1573470157,-2127165962,397606,1470248456,1285699075,1252144643,-1573502973,-1970076840,-52178468,393536522,1952054400,217874500,-2143941257,204862,-1598277771,909306634,906181283,52627142,113653249,905970464,52561606,-2102112001,911747789,56100550,153140224]},{"sector":6,"data":[923203126,91553539,1313400912,-1618268584,-2026488178,906357278,99360398,-367591626,645936645,-84213626,-685863378,-2059501507,661979136,52498174,92673678,92546699,1183378571,99787008,-1593473885,-2036136464,1499158533,1566531162,-1949366497,989881118,1963143198,-2062614833,767237632,785077009,1037502094,-301560026,1499158533,1566531162,654255647,-1909586450,641586950,99485327,1448563998,1347637586,-298385626,-326413051,1561609870,512634563,918896087,46335364,134482950,37781504,906167312,52496126,371129595,17623071,-953809294,-57530,-1023315169,117884726,-402653178,-210631594,509092072,521556054,-2013020482,1090813956,973161671,50378752,1479200248,-747430050,604423990,-1023397373,-661892870,-685863378,218800957,378275416,646514203,-1909586403,-1136797930,512624928,-402256630,-402194600,1030946697,906895336,229639878,238479615,1966306024,919571219,101588620,203327798,901310470,427039723,839323142,440804,-230522945,637826478,117794186,230204214,-85456903,922355710,906868897,52498174,-1910110442,637934358,102573707,-87295225,785943632,1037508238,1477249699,454462470,489064710,378416646,549207511,169774601,-773323251,48760574,-390696193,-969536104,-15880186,-402410264,-400683604,-400607178,-2098515188,1912669264,1722869782,-466480781,1946163773,614725898,-1207515389,1476526349,-993853069,637903406,4409079,-955747200]},{"sector":7,"data":[839066630,650377472,-1991938364,-1945794002,-1023046650,-2080469272,-335669660,-387698160,451412076,-25303040,18238595,-1023112711,851689522,614676196,256003,1455685552,906877886,55197312,906458112,52692679,48758867,516120064,-1909566640,-1958881506,-1409080290,158662460,91538234,-352074109,-58675726,-2012973825,1006839334,-1576831745,1017905959,-1576831745,1482359587,1444856607,521556817,-1107090269,-125157925,54206090,-12800722,-1019605900,-528085900,-268180430,-947196181,-863367957,-1406210766,41207610,-466421534,526276955,112835,512634398,113655255,520160035,-320289799,-872887297,301760763,-1073083787,-588774540,183039,1947270272,352092401,-58659724,-385649390,-58719727,-2146601962,58017532,-368985879,7340037,512634398,54279639,938017653,1963342849,14477571,58001212,1006704873,-385649659,-1023999616,57933825,-956205079,1042438,-368654592,-2130706417,1912802047,9758979,1381061456,512448342,-75300724,-970820353,17684998,-661912034,-611401586,-1073940941,196678175,-1079708928,96013781,128250624,-2046364129,141820416,1499094623,1424709723,67135904,271688256,11562164,-1189052229,28966919,271695360,-838860865,1516134177,1377727321,-2135009762,-1189147065,45351011,-796480260,-102620723,1532632926,-504807080,-1260877056,-1155412674,1204228066,-1945095930,1482360927,271584896,202276865,-1957560051,266517459,-1946003575,509215815]},{"sector":8,"data":[11725063,115447,-1444347020,-633438208,661979405,232392390,1359368192,-1935583402,868257280,532610303,768274,-708926221,375053,1583326451,-2141714599,1060902,218900096,-2089817344,1786058235,309709067,270711617,1558906654,300400216,-380483400,1951006381,1282689334,1228174409,1967733876,1220578371,650153478,1967406464,958808087,276103493,54889254,1096455,-930356233,451664523,868233991,-1961235502,-149951526,1946157506,5814543,-768408341,2092435179,-1565803847,-383791329,915144277,-1907490000,906176198,516096003,1364678150,-685863378,1963015229,-1906661,-561117410,113243699,571648,-1527557636,231587673,468428019,393544252,-1895840792,-1090571322,146341894,-212730880,-843163228,1503982349,520576607,788397289,1063794431,1781989166,-1957343169,239504364,155117661,788381673,1037508238,-1006653245,1962932611,642928682,638404235,-2147199350,141885178,-164445442,-770972937,628381786,512634398,113720791,34016696,-1950090977,773718615,1037508238,101127817,-1961391329,1606747215,1355020294,773739094,1037508238,221906678,192159616,95420852,5671462,1511939048,230905950,1986610186,543515753,1919252079,2003790950,1247757,544567129,1953723757,1986095136,1752440933,1768300645,1461740908,843140681,942878256,1852383286,1701344288,1869574688,1718558836,1970239776,1868701810,1679848559,1702259058,1869875725,1853190688,1852397344,1937207140]},{"sector":9,"data":[544106784,1634233925,1684366190,1685015840,1493831013,460224846,994918400,1027488851,1380663101,1195458898,-246191790,-229379757,-548151982,-1554812846,-1722583469,2069068627,-397149869,246483344,1206501207,-234418682,-782301266,787057633,1207412479,-1159192810,55746816,55582347,-1980089624,-1140521380,71600391,56008758,-2113949501,1913109737,2012840951,-167112073,-771035532,-25105804,369456908,18475039,-400615741,82313341,106203642,839142537,-5192768,1931017600,1022984440,-25103501,-2131856580,-378313478,521556561,-1190938949,-768409594,-397163893,-987873908,-402641354,1528773896,-1891781912,-1895581178,-989612026,-402641354,-1070449420,512634563,105987543,117448936,-506404400,-506338863,-288300591,-779366902,-1325182559,-773795324,101341664,-943520944,889094,-1152166400,112788406,-1949158656,1026484418,775341342,1017833472,-1587651809,243991478,378209208,104530874,-831257772,1940600381,55878461,861032790,95795666,-523111945,-523116335,348047499,2353165,74705361,13156993,-1325390616,219987457,-2013261592,1107513614,55580296,1509988328,-1262264743,-801395712,-802424718,787934017,1037508238,55709320,-1341931018,-33393380,220046016,-988989,465290890,-1036331251,-260898896,-1979721496,-788312042,-1192635927,-628423243,243982839,-511704238,219463171,-506343285,-1979690264,219987663,4843593,55167882,1420006097,1347638787,-1190938949,-768409594]},{"sector":10,"data":[-397163893,-987874216,-402641354,1528773588,-1891860760,503559686,3028677,524010472,1419861595,-1177406717,1077936135,378073591,-1070464170,-486492989,-805065723,381942754,-1273066721,-1307669757,1963015171,520040962,53485198,520110241,-1980216600,39618820,-1023128439,50307126,906044611,-1023213662,74776380,-13444982,1599211294,-8184042,191198463,-1106938405,1105924650,-402652995,1550974987,1962998659,-337999052,304791104,1750874934,-745813644,12114739,1009765652,186021375,-1207470611,801969156,62391787,170904852,-106400576,-335564605,1552627450,311869032,503322809,-1527570666,-138024929,-1962779511,-114497085,-402652739,-210501713,57999164,-1325848855,1023011585,-1469484512,-1157270144,65735343,1007366587,-1978829536,1157097666,-1997041944,619382340,578102076,976142387,1950868246,372911638,259278821,-468305362,772371527,1206261306,1077936756,-225729557,259334460,-193672949,1153165484,-486587256,1021963255,-1404734174,-529219574,-2008766232,-202637500,1912994179,-1105258888,-92073430,-1962707457,-75274156,-1962707457,1413179996,995194216,1282763356,1363696779,-1102426997,70914678,-964490380,1509417477,2028536240,1012507896,-1189841919,95944708,-1952124160,-389837880,1284110059,-2088637692,205063145,210436723,-2096264922,-964492601,96570114,-638910461,1565582386,-854327112,1962884143,-352210940,335722681,3944397,1149961589,-339678392,-1105258770,20714026]},{"sector":11,"data":[1552617845,1213500266,-1980327192,1418265180,1017834246,-1959561982,12085332,1009765652,-1205373441,801969153,-445333494,410337596,-1560264264,113640228,-972684506,84092678,52627142,-136451836,28356075,521599723,938001034,-401051042,-746119273,-466421902,-1980349720,1284048468,39618820,-389872503,-4655167,921299967,53223051,772705078,-165550077,-1996333943,918753356,53221001,773753910,-1607023869,-1966931146,-390005054,74603981,53912118,4694070,3270851,-400571354,1552545263,272927746,2222275,394864378,39816230,116799227,1963196550,-2143894783,34110,-969537931,16811270,-1898236989,-774337853,-1008479773,800243722,37488500,24444850,-173414205,-1022995319,614539030,675202051,639535875,590252547,-174987261,-1945469815,1552486468,72124674,1459024361,907160254,1584022667,1975519939,-177084398,-452442937,-1909586420,-1942104314,-351859132,1096804571,-178657194,-1022868337,521535666,870892170,-400657827,-109961581,93857416,839227583,-180754204,-1996206967,2089354844,240421890,-155719229,-940235032,52494916,-1022339956,-940238104,2490948,-1022339956,521535666,-269958518,-1004375460,637903422,-2143009290,-1444407435,1223288835,1912849384,-185735156,-1945998199,-1070461372,-1006653245,521600944,-2096919576,67506446,-2092156952,-83488474,229967559,-4521984,538872319,505317632,59435008,1358954424,-854515528,63133743,-2080535808,-1414724921]},{"sector":12,"data":[228480,-970586251,-352320443,-1395618953,-22361858,-1461439808,-33131263,-337063740,-1429959946,-1398417270,-1376220502,-754601557,-1039972118,-768357749,-930352649,-1398454457,390498342,-678777939,-487066062,105251622,650183595,-1978972535,2122524363,477429773,1552674098,173312776,-628893653,1959332608,-623773689,-102573103,149668747,222702374,-388769545,651725632,638535307,-2130549001,1913648891,-773140213,267861464,166400114,-770457597,-952699090,-1019525043,-1014300042,222726438,491177766,-953810944,-57530,512634563,113655255,-1895890008,1443049502,-790099221,341610227,145151,-164380018,-2135294325,-1180306688,415170580,918887936,-1527578572,512634399,1048591831,1946157992,512634445,-617398825,100668601,-1336456216,639922943,268846582,-1977213579,-461372827,1895596272,1049170292,109839774,166200736,1460267034,117803558,407341094,-1949507005,637743134,1449609,53479052,773774222,1037508238,61343430,861413120,-1898344759,8961730,-1191179585,-1510801402,172838,-12729813,-1207732721,271388671,834304,78764075,-628170541,-1996487005,1023412254,208994032,394951,113705152,8,1735,113647821,-946208763,-855617530,1376175649,113756928,1572916,3546764,3278535,113704980,-65480,3802823,-953745409,83902470,1723450112,1946172424,1963015175,138852617,1911033264,28361489,1458842345,-391360425,1055408108,652249664]},{"sector":13,"data":[-397998710,854081504,1977629248,1975519748,1583306981,-391360317,518537164,-1073042880,-1017580427,178957392,1492809152,-1185916989,-1070399489,-772296974,-389849256,-320339961,125183,520494787,-1007188217,1916698678,-143327227,244004433,149094428,-490130607,-119383554,-1957313703,1586189292,529149446,1929666104,73304599,-472776910,106824515,-1994421458,1566246494,-1023097725,113401179,109981184,-1004126761,-2096782786,141885439,1145435686,-1023314560,-165231627,-1015019963,109981190,851394007,-745846003,-472783919,-1960379645,-913571259,125092155,57982987,-2095584263,309657598,-1993942644,-1993997747,221953845,-2144929277,-1022918643,-876602375,-387399286,-13188259,906331190,92681983,-1962929944,1466820805,-2046390474,110048773,918750596,906848929,-1945795421,-2036123952,683590405,512634381,885341655,-1960688501,918758492,92550911,-2043216074,-2889723,434685323,110048784,-1892285050,-1023048698,52732214,916243395,218906240,-351308800,-401682687,-1202651141,718110721,32228184,-68677937,916243455,218906240,-351308800,-401682687,-1202651141,718110977,32228184,-68677937,916243455,218906240,-351308800,-401682687,-1202651141,718110722,32228184,-68677937,916243455,218906240,-351308800,-401682687,-1202651141,718110978,32228184,-68677937,1444856831,1967075560,1048589883,1962936992,-402279419,-2068565474,-2143933747,-15888066,1397758837,371085905,47135]},{"sector":14,"data":[-402468120,28899093,46786560,1532582431,117388888,-1058337391,-337058766,908025393,227542726,1962949632,113653254,-1023341168,1017967243,-386370524,-152370483,-1064382324,-315428213,1958742701,-1965258010,1992506109,221806597,-578157964,910872714,906099104,1442970274,906099647,91827848,-175440502,1023370216,-402426614,104660828,976157044,1950869510,1954495555,1946696758,-1877525454,-1877656432,1947024528,1946827826,104476228,1802782695,427029050,-389611862,-2143943952,358718,-80035467,-28918413,-340202553,-402149279,-1343552959,-1426753303,1593981160,-16812664,520494790,33275399,-1527525750,21686467,-167079445,1005096308,-386405632,-167116746,-1977215372,809303877,960237170,537718134,74604860,-478774724,-1325438743,32761948,18278494,33202230,-385721112,65601337,-11540224,427095562,637556968,540804490,154931059,356260724,339478388,1172833140,1048589824,1962935673,1962871443,1322253967,-45131837,548458122,-486034605,158772750,25002022,-32934903,921887435,33168938,-889004502,-66592384,-982229157,-503314456,-21042181,145772494,-1342080792,24373280,1860765872,-392155647,-16455353,-819278966,887621611,-1325208832,113653249,973079929,974091506,-1408535301,31385770,-956381186,-1360402462,1962621694,1187512057,-385964823,-251461625,-1695942398,-34150146,-402245074,-402295481,502005228,-819278966,1950947188,119408148,1207864151,123711218]},{"sector":15,"data":[-772405387,-819279102,1793678787,-398413570,1465843957,-1125638650,1577525246,-185999734,385234686,1323894137,-384126722,229703286,-1342122776,13625610,-12795254,1139475316,1053046416,-617413244,1914787048,-402541381,192229302,641500904,1075203456,650362930,-1089051264,1396471528,854121267,-294495455,-1813511756,-1274645201,-349516412,-387697945,1405300614,-402652741,460464405,-2130355061,-2122284829,1962967291,1556422160,71824903,91496208,1542990285,518339,-286721813,1358262816,619187691,243349052,33555985,-1271164440,792782851,1480649844,45352308,-131123736,1443241667,15703,1824393332,56278797,1824458475,56278541,-661729140,196722830,1604711168,-1021376674,1358747624,1476396264,1019382467,1012691488,906327167,33097470,-29993442,906166278,50341504,1342534975,1480320232,1593792744,116799007,1962869502,1444828111,-402652741,561127521,-167420789,427131079,1954595830,310036,1914719464,105182732,906589192,50202310,9103616,1006666985,1008759821,1009218568,916550921,201456032,1373173496,11913354,548407267,-486571800,918772217,33097414,-377361664,-29950095,-385746674,540868470,154988915,356314484,339479924,-1336931980,-11278242,-398455720,-389808307,62602061,534505472,65795186,-1271196952,775481345,-466422156,-1020382744,244563,-1152187157,-1031143420,992208976,-397009320,526319296,384353115,1946202171,-1006695176,-617393584]},{"sector":16,"data":[1914674408,-402344955,1482305022,20766858,104600436,121376628,138152820,171706228,11535220,1793718979,83945707,-1996173080,1418207556,243041059,-2013039808,-269933452,62832621,1918157032,-400615927,41029067,-555094805,81062125,503561919,1420290134,-294510754,521557534,1578224616,-1948028385,-1949856813,-620032420,-2135227531,-1946645760,-137219134,-947171085,-896797705,84337498,-763166719,558139648,170087560,-2001636106,-1393875852,-2081898446,-1979485180,-1573454012,-437779093,652964355,839140746,-1964486428,906523996,637889440,-1962654328,-1993993148,1149964101,1166616086,272927501,289769766,638731403,638797193,347521,-400615872,1053038424,643368350,-1677439608,4031270,-1336932491,50522189,-1770807976,-1837889988,518587056,68479213,-2096854446,1052709062,506789636,-1962637226,1406920918,76488542,907702874,95565451,-1271494346,62832389,1918092520,246540296,-471268494,918809580,94256836,1962497000,1166747147,474253579,1743487155,1952179432,643558146,-2147138058,-1960426891,1149836101,1166747165,1569334813,-788821500,182964427,-1058832161,1149813514,1166681624,524584991,189106982,-1290058615,1166747136,650126341,-2013117174,-620094908,401287796,121998118,639255689,-1995881077,1085480004,-13181973,-1929332706,725023301,1392525318,-201966669,1528317064,88443686,-1022738652,907625608,1073746081,356878630,364578421,387072,1090358,-2147436349]},{"sector":17,"data":[-1003071738,637550654,-1929097845,690357885,637761281,-947715703,1609818683,25765383,1642596035,512634602,-1073070633,1049303669,1040912477,276041823,274546372,94256777,94373516,11463160,4210372,72190758,-1157202547,-208928769,-343157877,885542,-2094641548,1215627069,88471334,846561280,1968888040,1564379437,1594264592,1958742544,1564026555,637956885,-1961534069,1002931191,-24392990,1979711107,-2080535785,813039613,958812651,-445442731,357927718,-571740277,-1049313270,1043972236,108335197,274662969,2011759476,-1547684865,1604522077,-9639664,141934602,274546313,274663052,94256777,94373516,4031270,1575488628,1022718741,-101616634,-1070463509,-402583576,772270449,1037502094,-1640053722,-1023315451,-1396497488,-1439247384,-1966867998,-2136467132,719854708,-1207339686,801968384,208977930,54174006,1947270272,26798083,250135545,1357739354,-588775248,-244164354,38127398,1059356674,1073745304,-1977987958,-1058701079,-511654646,1300768271,1166616066,1017198085,1166616067,106307121,-1090054569,146343243,-1897380352,-971041025,369453830,1596437224,1914658311,2106074649,1170613765,-986316796,637901366,638023049,-1022796404,-1960407317,1059390789,-397009408,-1993977854,-1943664779,526256477,1150019186,1166616093,407144987,-527777756,-388971312,1059374090,71665702,605570186,652487231,-1961015927,-1993991356,-1993995451,1149908293,1166550559,100607519,-1929284467]}]],[[{"sector":1,"data":[196681853,-16259072,-1185430536,-1426915269,650128223,-1993996919,642258245,-1021885047,-1072085770,-1003073420,637550654,1912882488,-163859643,108891619,-1590233085,958792508,846541125,4031270,1149906036,1954588697,-1071361999,1968750652,520042015,376570044,992347883,242551645,-1977204956,-461372059,1977629247,-1007041791,639386763,1963672891,1084802037,1552613493,1564157466,-1947765497,992353372,-562755235,1397804779,-401062774,1482424190,-1640068810,109852165,292750752,-405608442,-385982232,906487733,1912808609,1053046452,-13236834,637746230,-1020181105,-687436242,2340925,1258735142,-1004140541,-1090155986,-812974079,190221094,-113787928,558140355,-2094836597,41042171,-1966868942,1418403908,-773795828,-1965502230,852921058,1381024758,2133117067,-2145368952,-506363679,-980757807,1149887114,-1017619956,1015083659,-2096925185,-231012410,240946115,-126493941,-1996455749,1438846556,-326898549,-330921964,16729798,-151005720,1963519046,112899,-386052471,-790036583,-144799233,49039094,2095580020,-112817665,-386181495,1183580052,-1947994117,-112817160,-687610889,-1980545399,1183577430,-1981548547,53932358,-2096944122,427032786,50284230,53256502,24500471,-137219256,-45708813,1183441911,-1982123023,1580855134,-167217679,1946353478,-394859774,259260104,-941073176,60742,33507014,-1962872855,-1993994172,1149964613,1166616082,-213480685,653612683,638928265,1377260935]},{"sector":2,"data":[-1074704757,1190556137,58000620,1433671871,521557534,526309375,918123101,101400192,906654720,101385926,-12139008,-280065791,653991144,639059343,-1995356789,-1960439740,1149834053,-280589550,1995952691,-314144265,-2080815615,989920086,292879686,82593526,-165279883,1971324229,-12139004,1959922433,-112819418,-78216447,-330893824,-15174652,1187441990,1317733375,852110327,1053046464,2114126636,-1951730705,1183578966,-330893575,-167349246,1946741830,-26810365,149702390,1149833076,592742433,1074691203,1955070835,-330893788,504067332,535570152,-1995160439,1190532692,158599404,-387101045,1284105671,-12154364,-1017256565,-1191181640,1377725004,-1094758319,1309665283,526014808,854131571,-30873369,-402542512,1918434071,1170679338,511705090,-242527402,-687923434,908025435,94256836,-1336928141,-52500398,277848,607978868,1342534912,1493013992,1776861419,-401639949,175461893,1564379446,109852176,-14282657,-101193723,88471078,-1979091584,1294526468,76071166,-2146548537,1166747136,373590285,256215846,638862473,-1995356789,-1960439740,1149834053,-1983892718,-1003090876,637550654,973366666,125048900,-58660784,-32935080,1975794368,-1010814226,639124616,-1590295041,-1993998320,521540933,94256836,-401735898,1135629757,-335790104,1763752412,1474871347,-1979484931,300547908,-385175297,246480229,-1325571863,-44308220,1458110640,-385437443,45153617,922569961,94770825]},{"sector":3,"data":[-1474393034,-2131588347,58064700,-16267645,-1090054604,-286784578,1527018316,384177385,741801759,775356163,738641667,-1945846269,-402444770,110035339,110035758,57869100,-1093014693,1053033662,116786598,1962870124,130515715,1977289307,907971078,-1396441597,-1186479226,-1510801398,-995441786,-167564226,-16421882,-5239180,-1178534230,-1426915323,-1442484832,-1179991158,-1510801392,921018857,94770825,-1474393034,113653253,905971053,90965702,-1090054656,-225770306,1979661440,113672973,1839347372,251540997,1353450860,-1441512310,-218101063,-14739803,-16569290,-956092874,-1107088378,773753860,241428483,53347983,53216911,1458111346,-1505835777,1812395525,57999109,1527236483,-383940570,-225712847,1829668918,62832389,1934384872,-385634299,521594119,53229311,53360383,53216967,512492734,-1796734162,772181760,738627331,-352161021,79609562,53231300,-218098247,1149916836,-964449781,1185260822,1587914054,-385862168,118940858,906280639,53229253,-218098247,-14739804,-16569290,-956092874,-1107088378,773753860,230942723,53347983,53216911,-1410617485,-218101575,2105550500,125116671,-108838577,-2114817528,1965039676,41713670,-1340967904,62499374,648344320,553614720,-347143307,-1430244362,243349187,67110417,-1022588952,-1963882520,1251731650,-1645735821,-1909580047,-1606559970,-383842800,1444865079,-685863378,-1573468867,1128593157,7700480,512634398,113655255]},{"sector":4,"data":[520094540,-402407745,1460019649,123674462,-964443022,1333003008,1968979072,-1404025343,326418442,225707324,1017905643,-1442286244,1963277484,-1427787774,-294273014,-390057384,-806751948,-1960946973,62832626,1260775511,520516447,-352079782,1048589962,1979647354,839325202,1249634496,-2031612046,-33262353,536013760,-351227814,-1101389858,2146005259,62832384,-521604469,-1341885622,-2132219133,-16418242,1053095285,-8190558,-387156737,-378400684,94518980,1128658726,628367360,-397322490,2089542127,240946694,-2029797698,1472213751,1581952744,94518980,1229309734,1599733759,5433351,-148459145,-2147466427,-148499595,536888133,-4652172,1300834047,-1572944823,-282269691,401195058,1875295971,1443086015,1625879179,91446858,216597424,1048590051,1979647354,233330419,74866176,-353696336,-428681473,-1959341845,369472054,115888415,1140425711,1632158553,1637310792,1660379543,1639015159,1649697201,1659265682,1641898447,1671717364,1641898916,-561225228,289152790,-1957687433,-1605128,1491587328,178650926,17099105,1933893608,-385437691,3990171,88443430,-167109772,229639284,-2136412693,-897523852,587646592,-2010774525,1877542229,587646690,-466484733,225738920,52627142,2110006788,1703552519,-388986107,1418322147,-388240634,-1317911408,88471078,-962431872,67314438,125682726,1273617202,738309121,-1274907642,-1293398013,41113619,334007275,-1327461854,-33393153,-1983452224]},{"sector":5,"data":[184556558,-1988791086,-352314858,1145759984,-165253262,1971324485,587646563,-1004141565,267061117,52627142,150831106,-2014818699,642348289,1074021878,113656436,1007879038,638352400,-2147203594,113652340,102302590,2080818775,512235267,780665725,243794825,914949002,1049166731,378078093,914949007,2092630929,1577522691,15329567,-1662451280,-17176095,1963012584,1173759731,-327940091,2114373174,229641987,-1556683894,-1070398596,58696502,-141877498,2092631830,-397009405,526263088,58695990,-1325268955,-370617591,-1014308526,1917306344,12511304,-1960426638,-662043563,-1572944842,1173759493,57966660,370147514,62832159,-2008956032,21284636,12058682,718141443,-897514381,-165281280,1947223109,13271300,-543561600,-351906679,-384847698,1105780999,-385649853,-1960378785,-437582507,-385919511,-126549874,88471078,-957254592,50560518,91488680,58590918,-1978224628,58500067,2141438003,59351555,59641481,59381385,59520649,-141877498,2092631830,578480131,-2147027402,108363779,59679030,-1959355925,-2130477250,-1962868761,824436935,52732214,-1974433301,1190979779,-617470862,52627142,-1572944893,1173759493,-1004109756,225789309,52627142,1569334786,2110006785,-1017579501,1929367528,-1000929778,637903422,-2143009290,1489176415,-369147159,-1561592150,1979703784,1173759734,-277594108,58590918,1947089943,2114373125,229644291,2091115402,-1547685117,520487807,118945675]},{"sector":6,"data":[503545019,567994454,-164225186,-2147254266,-1607024523,-68615299,-327816993,330827379,-1020277487,91162310,-315955200,92145351,915137792,179045810,-2080672320,1015088366,108342826,704806016,-293396620,385779465,1061140487,-218102599,-2028178001,775794174,-1391168193,1967079229,91070478,524033828,113640821,-973077121,16993286,1931081960,168588563,-1207405367,-386334718,-1195119384,-152371197,1048579189,1946158463,374789,-469047061,243332984,503383407,92219018,98713285,1795618358,158662917,17516534,-350289036,8775730,-350289037,88471082,-402164416,1300248128,663240709,-2145444725,268791566,1912798083,1580934670,-402098419,1399990647,-1006582552,-402290130,1198659804,1930956520,-1976646495,1183458821,888858624,116798834,1947207023,1795618343,477366277,-1000929712,637903422,-327146102,-1591310271,-385928694,1625818350,1476878129,-1007929368,91162358,-385649407,1357512509,1347886847,118904403,-1304523978,921930501,98836110,-1014767733,-356128766,-386333879,910641120,100744841,1593447912,374756187,-1004601569,-1608610816,-1643723003,839345413,625600740,94256836,38127398,-953810928,-402652923,225594854,94256836,378662,1305733120,-1976646408,1482382853,-1664934049,911233878,95565451,851116976,1478491917,-1013096869,1398232732,915093072,1270810036,-1157189627,536808754,1583307608,1453114269,78663763,851367147,486487565,-359274301,297272947]},{"sector":7,"data":[-1020277487,52627142,-1305048318,-1270969595,-1979414011,538971429,91538490,-117435976,775356355,741801731,773753859,738641667,-972677117,356358,-387245080,359859732,1962938941,178179,738627577,772181763,-350033917,374979,741786910,365331203,269174006,915081076,-1024981580,-663281670,91242112,-1949207296,449217523,1946078952,2144261,-984169493,-2096944074,1156978118,57937931,1577380702,-1577115416,915080626,914949556,-1264384590,-1241069819,-939524347,-16417274,398452965,-469097614,95957881,1352464640,-402295136,-2141703360,215614,-375585675,-1202126989,1810432003,-2146732545,215614,-922090379,62392181,1491728640,-1090054401,1270744407,768261,-1029593869,90481413,901449494,88850182,-1190832194,367525899,1795606017,113645061,-385940098,-1703732709,90447499,92942020,1914101224,361556109,1048610931,1962935114,90480938,103745083,1084251508,1964025862,90939930,94379660,-1996003906,-955933130,131652,-605501133,-385649887,-1001128108,-402284994,-1000649711,637919806,1074087414,-1779955595,1300244019,-74760187,-1106524285,364447296,-391843072,2003959933,110033803,-441448988,-401347670,1735524461,110033803,1270744548,768261,1049339123,-165280286,1967129925,861071368,88965158,918902336,-964492500,189068821,-402230256,-346096138,566124033,-378345466,92145350,94627840,2005737842,-44439526,548931187,-20518656,-1475985248]},{"sector":8,"data":[-402230256,-68551243,-37426946,-117508631,-1946243095,-1006227682,-402290130,158471662,-1592198680,-1259862483,1017955093,-1979550401,-498882041,1491649525,-1207536664,801968399,-384636733,55314118,14477313,208999283,141871370,-117439816,-1008133144,-352320584,2028210934,-499219473,125173509,280028210,518384632,98836110,-617352309,1284242315,408193814,1149953074,1964025867,477924102,522083467,-1446908936,343211992,52627142,654755329,113641219,-1207696602,-1007091707,1944575720,246960136,1529859345,-392763197,1275512400,-1461190397,1526952725,-469073685,-396884359,-991172448,-499219624,175439621,1945922280,2144267,95959787,887879936,98713284,191332390,1191716568,1173759499,141901829,640815080,1074089344,1376089760,-1979665321,-386167856,1516240080,1932585960,178179,-1008185368,974028854,1088946445,-2143904747,-2146616794,-1909537891,641586950,94256836,1978098664,471001091,-1023017178,-2136415182,145232501,243337332,8390161,537659568,175394984,-973077064,16982790,1053059051,-1006238306,-2096782794,494272510,-167315961,225706245,288274512,-967102515,390662,414732483,1529859345,1157048003,125829187,-1075308172,637891072,33705347,100009718,1355904257,-854517832,-389850321,91357350,38634278,-410327038,1931430888,-1593391593,-1645674742,1773190119,-1007036626,1347552512,35652867,-1594109720,145229165,1053039732,-1977219678,1106018341,178333320]},{"sector":9,"data":[535298487,-414259200,-399733016,45672296,-1640053760,-937492731,-413472768,-1274982167,-13702911,-27851184,-1327723836,140949773,1393388730,-385928622,1532688164,-16112526,1270744436,-1107039483,-91550278,369543043,-1190717921,-1527578613,-1341634887,-385928691,521598716,-1017641121,-167315914,192151813,27342416,1158227462,-1007069182,55314118,21030912,1053043570,-466483810,38111270,-1573469178,-97531,-167301003,17167878,27267188,783831046,1529859345,100009670,116835072,1946222726,302446089,41158662,-1202707536,801968406,-148454565,-2147466428,-167152633,17167878,-689190795,-2132379672,84752910,1930660584,169112864,-1206881079,-2143944702,-2146616794,-428152583,-1207925015,-286588925,-352320072,184120553,-1908442908,637920262,-1475655798,-1461095160,506426369,-1640577706,38570757,-2147433993,-779482507,-2131697024,141914362,-1980702333,216728140,-2146442880,74711289,-1192550562,-1998053538,645936671,-394261190,91422794,-337242136,243748,94256836,13115135,-991557656,-402284994,-148497944,-2147483067,815859572,1166616067,-148454607,-2147483067,-1977217931,-511704499,16351472,-1058536075,-1192856761,-1007091680,-1947881496,1358961166,1497868776,-1746399629,-990584092,-402284994,-411828280,-1008356376,1392864930,-478095222,1916698864,91619077,1953561472,1090224133,-662041225,-2146442368,58131195,-1195116453,-111476724,-459413309,213386867,-1020277487,52627142]},{"sector":10,"data":[-447551486,1915392744,179009,1915279080,-499727047,342133253,-1960435946,-1960440498,-92070058,990147839,857961169,-1259845166,1964470824,-498908671,642468853,-33274230,1317742272,1451828738,703133727,-645151771,1053092075,-8190558,-1207536129,801968409,1173825219,1954545731,287029254,-389861427,116909284,67110417,243271028,-973009606,16993286,1929463016,975601669,-521633779,1964602129,1959332370,1226766,975601718,-386301939,-1195121456,-253034493,175760394,55051975,117374975,1053033840,915079980,749471154,1053076032,507970348,221906678,-1962380272,-467759373,-1107039483,648283467,100629888,-970586763,-1176109243,-1527578614,90939423,1218531498,-1029592317,-947672315,-469084156,1048779640,1979647458,973534736,158666765,-129644762,2095710207,-467759361,-1175221499,-947191776,-125065997,87916582,-970587019,-2143886075,-2146616794,-386392298,-993795020,637742142,-2136472182,481822324,-1020277487,52627142,-470095870,94504647,512492787,1074005412,1916560104,-1572944842,1841571333,-694949819,4622886,-955943262,359942,1275512549,918880515,380371756,88850183,-218100807,-1573475164,195888491,-385648192,-1387200781,521590923,92942020,1930451432,-336898045,1477665256,1913659112,256764130,-466428558,385809385,915093023,179045810,1006990528,-101223105,109983427,-1960443088,-1962921458,-397717031,-497469171,-1205922058,801968413,10493695,1077855286]},{"sector":11,"data":[1300964864,-1927814396,-1590294915,958792508,91566405,378662,1002930944,-617352990,944826451,-1023315109,-12745946,-1590290059,958792508,259338565,54436150,793065766,-953809547,1124073477,1053087467,-1960442466,-1007221411,108298240,-854522184,-169295057,24176866,369157352,-397193185,1482376469,-1060898992,-385649664,-605552450,1929752576,11921667,1955419735,-507910112,-401678104,1600053683,-24441740,521537310,-385699591,1157038231,1954545666,1837770253,71600651,90939958,1149896683,1166550532,1300243979,-1960435701,-1556735419,1149964222,1166616075,289704730,474319142,638796939,-1960950391,-1993994428,1149966405,1166616077,1207313942,141901829,640425960,1074089856,1284199966,1990211083,11817477,-921972598,62131573,-1961132917,1955208524,906947359,264113723,45352820,-1106343114,-400615921,-396691780,123677400,24249776,703110392,-1671848682,637760841,770182537,-1664901662,1208322854,642253173,-1013119609,52627142,643237378,-1994566261,637929238,-14985845,1376126774,1512510696,101123727,-1070455438,55248582,696772632,526260594,-499203018,1300243973,-544537595,-1340834419,526710304,1606678531,1053082375,-1960442466,-1007221411,-243990336,-2147433481,129500788,-1020277487,-387868696,266920340,-18432,-1661032984,-1659531288,-1008622616,12633079,-1007158923,-210419712,216552272,1166616281,1435051535,-4181235,1526777886,-1729576104,-1206619168,801968387]},{"sector":12,"data":[374979,-512825095,-513087293,-386282775,378331460,113706400,71173534,74516167,279969792,1914237928,212448,784651124,1053099402,-148175390,141950806,369522175,-1036583137,-1547685115,15205826,-394825192,1920077195,98713284,88471078,-402098880,-2144982348,-2092956339,783815879,-1038709984,411232261,1512976056,-1005028376,-972715474,402868998,117870426,-390057466,1668425853,96605835,98713285,67456384,-1980300450,-1982713068,1418265172,88471044,-402164416,1300245092,521551877,4622886,-1205253144,-1310195707,1515897824,101123727,92942020,55248582,-390057448,393357361,98713285,67456384,-2080963746,80091886,-4593435,1593773801,-1729561877,-1207536673,801968389,-531437373,1128658726,108273664,1229309734,113704959,-973077684,369454342,221908608,223209473,975601820,-1197637619,124911619,244005749,-386398782,-389816260,108257107,-854523464,233358127,1275512544,113639427,-401210003,208801051,1049301877,-16054846,166399605,-385875016,1482227354,-23991976,98713285,-11280597,1979648117,371136006,88850183,196689840,850064128,-1947686208,205973519,512676978,-208992796,539901357,-964441995,775793950,381646126,1208403743,-402652669,-1301148636,90900166,186116118,1048619123,1962935114,-1976646495,-1038185723,479586309,-1889889166,-972683514,402868998,652787762,-981110233,-2147098050,1526990157,130473731,521543397,536068328,-956388631]},{"sector":13,"data":[218886,1460061891,-1588592381,-425523810,94413061,1476782243,-1640053565,1166681605,1007625218,-385649407,-85457374,-401874172,141876856,-854521672,-1007107281,88471078,-972065408,33760006,-388035608,635962810,113689567,637797155,-1006281334,-167564226,125059267,1946469366,-373280251,-1007288106,-167217888,1634992579,100766953,116799007,1946226736,29619720,-1159134348,870288128,-388985920,907940808,94254789,-1961672472,914797783,56442507,595197707,-1960850712,1040398074,724960108,167996430,1007711424,520320003,912246763,94256836,1594194921,53934731,-352097218,-1899983726,870288344,1371704274,-402652743,911807348,94254789,-402164539,-370664098,-2035001582,1564379958,2046757635,527558679,113718879,66412,-546045636,-1351351492,317440050,1048786527,1963000684,-1909055969,-1979487714,-13230331,906192902,56428231,1011286016,1006990362,1085333517,-1962888215,-1950338081,319744208,38258214,-986309115,-402285002,639570561,215031,504591488,216586123,184191775,1012888768,524907523,-148449557,33555271,-970569867,637796935,17975239,-986309120,-402285002,-678751671,-1960409420,-940113025,276070400,-1960914200,1958742778,1946369061,-1662312689,1241156383,-14280221,-1863643577,1053046367,-2115435106,-2068557820,-380097843,908066686,57425411,-1392602903,1963801770,168084995,-203421124,-164427915,216078568,-400615935,915013129,521535522,95960713]},{"sector":14,"data":[1053034869,-2144991842,-390134427,-389872432,915144179,-167051230,1048625525,1954546299,2064041734,1375698946,2075809542,-569579518,-1101461665,1015022205,-1331661542,-1336956390,-524031990,-1444153805,94256836,38111782,3936036,-202833035,1173759491,125075459,71693862,-386960127,1038615229,-1207536420,801968393,1173759683,1886748677,52627142,-590157822,1912934376,-1640053744,1173759493,91504643,-83171247,-589633447,-390057021,907940335,94254789,-1961806616,914863319,56442507,544866059,907919080,57413163,53926539,-1962709986,1958742779,1946369035,-907337981,-34674344,1822498648,-1640053757,-389510395,-1950153703,9431505,52627142,1300243972,-1977204731,-1070398115,-1977688093,740214211,872123139,1948297426,-1467028734,-1469156094,-1949272828,440369346,-1185821836,1827143681,-986293999,-989487562,602408820,279898139,914863191,56442507,377093899,1595750120,1812383542,1006633219,182416385,-385059648,912260464,57425539,1109160960,1745289014,907953923,57286286,521813376,-952759948,220422,-1951145472,1558781890,521543423,536641256,-1403915381,91494972,-488672024,-1054123786,-60561377,922697449,56049280,370308352,-396949985,108146860,-561068404,123729803,33260483,-986257033,-133831114,-2083376189,377406,-342752395,651201036,637818402,-754626934,1930856680,-1966568699,-1072264222,118917381,-1105818874,-2133589499,377684182,-1962932729,-1996112866]},{"sector":15,"data":[-486155234,517859353,-544753038,1931395048,-1980571134,-1962550242,-388199721,113645421,840434507,585361600,1444846194,98711237,67456128,918757214,55248582,653888280,638078602,839861899,-952741139,395014,-1957670656,6154447,544495960,-354234365,-389051558,-831258545,1963378230,-1662517243,1946237952,-134005522,-1007091339,-165231782,1946682437,29550596,-922005053,-1337392779,1014753408,-402295975,-311230105,1173759683,74713092,-1023302168,1659420722,-402296004,-193789655,-1977200189,-1977215130,106103110,-351298584,1501223,-969534604,17134854,1006648040,1022260225,24508419,642892793,639067786,1392592522,262531078,505403788,326550846,-1911624728,911935449,57413259,-137417889,1570846425,-2147440381,1963932867,-1590276078,-1556741264,-1590295768,-1556741262,-396885206,650320772,906458565,93068940,914956054,512427402,512295724,113640888,637535604,638928267,-1994959477,-1559900138,-148503090,-2139093691,-1006224267,637897262,-2013241718,637892126,1359109771,-1996153880,-1559901162,243860932,-779418170,572971147,512230494,686294387,527784197,222706470,-1130161801,-1047853307,53216771,748751987,1977153283,-930396159,130221283,-128202445,97296835,-1072965237,723914356,-654900666,74700843,-617364733,-1962552669,651310019,-1560119561,378078678,-960297516,357638,54916646,1359902080,38636070,-2131697280,1968767225,992864261,-919347085,-117431880]},{"sector":16,"data":[1963378371,-655687419,289770278,324897574,97388075,97525275,175449714,544522251,41140539,1961412747,-1023314946,92942020,-1946190104,-402277362,242357165,326420747,636030644,9890050,521558873,95996211,-1983645440,-1996113386,-2096776162,381502,-119011980,-2082246125,382526,-1981262988,-959286764,17134598,91428490,97914507,96214667,1913955560,1397774273,55248582,773754424,-397323773,-957865367,911890941,101451407,-1942576526,-402256354,521535582,233003865,1931220968,-16731611,-351946234,97821123,376750091,-402271581,242357292,97257159,-2065170432,-385649901,1053097836,243991966,237700536,-165280980,1971324229,96248078,893749542,637909665,-484883063,1291920905,1434658325,-1007157225,1899922230,1014235136,119442230,66292486,14058442,-1960868888,-1556741563,-1977217349,1161429062,991196420,58001501,1996903739,141900554,1295713141,906655494,247152187,-562741877,1173770435,796147717,1465274961,734169862,-654899643,638875021,-150843765,1049310945,-134019572,235310646,-202780410,13730725,1594336499,-1957078434,523036871,-1157219530,-1703585778,-437732629,-1023118340,637648105,-1090165375,1166747327,101491473,323324710,-1006235997,-402290130,-828244489,-803828987,64611077,13796289,39750438,-1962755096,118393328,1389497094,108384651,-2097151699,-857210662,1380997634,101586571,-402256735,243860120,243861006,-930413110,-770974069]},{"sector":17,"data":[17107060,-904494336,-928841723,-1547685115,-526187042,1049319429,1044055559,1735525902,-651491212,101596699,12519915,1926834944,-1958251434,-148466742,378077798,245564935,650611462,50489079,-1962539258,101622224,-628899541,-2084371712,619380946,-1494693749,-401415407,225645393,1990201268,-993447163,-133849538,-381228093,-1037369122,-768407178,-1996104029,1476780054,96210571,1913739496,-1138849306,-1172928251,1958882053,1371398944,317245579,-1066247917,96081547,91507010,1913738472,-1138849342,-1172928251,-767655163,158597125,96214667,1913769448,97952170,1198833675,96732673,96867971,303753216,113669746,-1979644556,-1962577130,-1962558434,-402270706,1618088501,132665431,512636417,-969538770,939739910,1509669608,1914639963,-1308040377,-1173946624,-1579619579,-1073019436,-761064588,299034629,113716850,1484,1913742824,-1640053725,98476293,98569867,41271307,19271651,287707461,28840781,-937492736,-41228032,-1946357783,1959398344,77163,1392564867,39750438,1526799336,243913099,954729991,-389510399,-663613335,854075107,-1004637678,-1593467330,-1993996850,-794750651,1166616069,178195,13115135,1525270835,-20911619,-1640053754,1429939717,638481177,1656263,1435182592,1435051531,-4585675,312731903,-1142180750,-1006183629,637902398,639196553,641031561,118185351,510974731,1364219142,-1976646574,1451894277,-1261729024,-369956862,1566071130,308930567]}],[{"sector":1,"data":[-2081700238,-1959374509,-1962539234,-2083912717,-1977220906,-2093612986,30526,976630132,1963831302,-1590276054,-1959391823,990753598,990017015,907507400,7800323,989910915,990016991,906458064,229967559,-396886016,1161436244,992441604,58001501,1996903739,141900573,1295713141,-166496762,1950352709,514385923,-16497209,473753632,1032520427,-1153549514,1506505998,-75381925,359989760,-796145013,33546881,-510999414,-315437686,-657331759,-1949791293,-137219134,-201879053,1317676739,-470994427,-773140218,-1006968104,-1610327576,-1641806485,58001468,-402555416,57868552,503354857,98836110,-469096566,976632436,1946517286,189265459,906327048,91948798,-963717492,1270870923,1048589829,1977943371,113653254,-402324149,678690913,-1976646625,6744069,1357626739,1208912671,-670156029,-1996197115,973461518,1946517286,-636581408,887879941,-1977668470,-2147128538,1955438308,147191311,-990508684,853570568,-2146309148,-680261380,1946408424,2114385415,-881524987,92942020,6720038,-1178401002,-1494024181,-2144991372,1950351229,1218561013,-637125885,1076130821,991977357,-1977716006,-33197282,1998469827,-1961397755,-402269154,124983084,1912798083,-114103550,55092163,512279544,1218643315,1053105667,1435174370,378091016,1435174407,29524742,118915894,-400621562,-617351096,1218520299,55091971,-1059912271,-534392693,534938623,39750438,-136256640,1406831603,1542965992,378254194]},{"sector":2,"data":[-1031600670,651821844,-1023257085,1014291211,96607881,71731750,2007154942,116807173,1963068730,381544455,-1017249165,96222857,-617426037,91430536,1578062056,118917970,-1072264954,378100229,-1007155778,-1029455821,91464197,96248648,189172518,290884390,2007155243,-1105819387,-1073297659,-134217723,2114373571,-958070779,33760006,98698951,1049362431,2105607602,1952201217,63406906,-1293355125,-1607568896,1805780333,587646469,118882563,-1962587202,-1962560962,571863,540846764,-678755724,-91490590,-402651706,-1057094949,-1946227773,-2096777674,58064894,-972851827,369453830,94518980,654311352,-1958126197,990230070,994079984,-163810088,17644038,1460028020,-9109679,1153848150,915079423,817563058,222740237,-1341310023,-16310783,141689439,1946172544,32241924,-1889641480,1599733572,-1962052857,-1929006538,784597876,1072366986,92942020,1929301480,843442946,-1950090807,-1898476297,88850375,-402650695,775688335,-555217292,168260624,-1442483008,-1007030814,-1341996669,-1934953696,-388460848,-389873209,1015086802,-1609992960,1805780333,-1008455163,-24422906,96603787,95829635,990803199,1963308606,-1572944888,1300833797,-1898935223,88850368,-1440735048,-1414812757,88850347,-1040260046,1949187244,1958742546,1952201764,1967078432,30179331,-1075319894,179045715,1007580352,1007318108,-2147257025,-341179956,-863351059,1602275712,1979136775,15526147,168069718,-1979157056]},{"sector":3,"data":[-2012910274,101018430,820512534,192022273,57982986,1577112041,-2130805527,-452637890,113640821,1459946827,-1578610426,-402427134,123337870,-385649825,1053098195,1207305698,58003467,906011113,55328384,-1960414208,383356119,116809503,1946225978,973534731,74711565,224804491,1962950016,10283267,-1896182953,504663001,116793110,1946291514,-1948611824,1342553150,1493008872,-352140157,-550822083,1347680043,1979666774,141950726,521591435,-1879218712,1510344454,113642098,840434507,408152256,1532517977,-1956706957,-400430089,1049359716,-150796830,-396370173,92930720,880066570,-386430137,58003293,1325311465,753649970,-165734817,17644038,116788084,1946291514,1715374852,168135181,-1962642240,-401740809,-1057095064,76177091,-1073023093,-1576702560,-1007090325,92942020,1218691123,91988483,98083656,-1023026525,1805661776,584119813,1477846213,1364678339,1261895504,1262387205,91555077,88803014,1795618533,578095109,-150976322,-2147482556,-963964556,-1089812861,79234379,-1951927552,-988449552,-97484,-1929780875,-1881567535,1476741894,-1017225383,-1675719626,75270661,-2134847616,-1992892441,-351954378,539015390,-1425714241,-1438601046,179945523,-391384320,1639958335,-1834249723,-1577612373,-1582627430,-1968503396,88849383,1438892082,-326898549,-25261818,-1573468874,-92894971,-386113908,1157091188,1954545731,9693443,-2043227598,369314838,-835917817,385775243,737142815]},{"sector":4,"data":[378019606,1053033292,-397081182,1918702731,-1573468818,1232896773,374765055,922695175,1983579570,-1962183174,-1992884610,-402279874,521588210,91043583,-289740715,110058333,512230834,1992623469,906982394,94516873,-1541501898,-2000080123,1153893196,922746697,94516933,4408567,-1190956000,1284112383,-92355511,-1572959946,109852165,-386398812,2126827252,1575324666,-1957275709,-402355458,393547177,537767238,1701068064,212610421,1970682912,-1830245338,505443597,214558806,-117425024,521538421,-1576702560,2095580523,1595891454,-141884813,-104598177,-164170261,17644038,-1746336907,116798976,1963461946,221297653,-1305048266,222740229,-1341310023,-16310783,1735524959,922639501,95559227,1015045492,1360688384,1796114998,780809733,-2009725587,637889326,-401904246,1968832018,914961999,-645198490,906446731,-1962719069,-1556739769,1200293314,-1130154491,-1003092475,637897246,906438538,98698951,-1942618112,-1962548218,443911647,974028854,1036194317,108396543,973522486,-2143944691,-83019226,916243449,221906678,913929217,221906678,906851330,221914752,1049310973,1592462694,1448281630,911233367,98713285,-1962067010,-1992948155,1166737732,-1994451448,-1130298556,88377605,-1996273503,-1029634236,155486469,-947666037,-1312347372,-1997408736,-1912136188,-1962548194,444433403,1443656704,-1107120037,-14283472,1492648540,1532911449,-2143936761,135084558,236372893,235867414,92669062]},{"sector":5,"data":[176621703,92669830,-1944679370,113718787,62653322,-1912158410,905969923,-167527261,1954547268,10938627,-2147138314,-1645673611,1374160384,-1931834178,-1898213677,-2133118013,74778108,67160961,58662537,512285491,-594934903,-962098642,786682243,-2083745909,-2013037381,-2013037530,-1912373714,24111322,2134805302,2029986563,-1898935244,100499672,-1986001291,62693891,58730122,-461318922,-1109661694,-1607033849,1033371779,125173759,-2096693706,918789376,-1660699487,-387872061,20712903,-1226307723,1273563069,645936895,1023214464,906327299,8589054,-469062677,-855760012,-855767692,-3993228,1962874228,1173527,-1894300529,-389868220,1474822183,5630191,1960131,286163766,417873926,646133485,197068305,4057289,62693430,447799925,110048963,-402259092,-13189784,906177590,53360383,-1608610762,-1994451451,-1962566090,-1996256242,-1962725874,-1996256754,-1962726386,-352088562,1812369168,772181763,738627331,-1122506749,654259719,-402259092,229686564,-402258197,246463772,105248294,845641088,1173759716,-1004109819,326436733,54427702,1383465219,23431718,638421542,638811588,134563318,520503412,118945675,-1962714433,229658847,-528066390,-1428126038,378662,703090688,2139825664,2046763779,88405528,-1274776448,-1979389050,-402213695,20712615,-346553483,-1830266683,-977074244,-1310193804,88405707,642610560,67272576,-2144989580,1946681983,2139104775,947194114]},{"sector":6,"data":[1912642280,71628373,639464450,906495872,906194593,57542343,-1556676609,-1590295692,-1556740601,283837302,121537334,141819910,55035686,585859335,906380427,906197155,58334860,2015297334,138709763,58237750,2015297334,21161987,1508433522,1364706251,-1341869744,-1090054634,1487536986,-1047899990,-1413467222,1476970371,-2035621754,-1014279996,-1411871573,-1834264487,-779644501,56277855,1347508163,37095601,-352125170,1048786630,1946157175,1048786465,1963000684,508711193,911672918,57546379,1547599926,141820931,-385825304,-1007157106,1912678376,113718794,16778077,913042425,906364833,57544331,-1458689226,102446605,4001195,-2091748096,1299644921,-1257846986,922746637,906000289,906194083,906193569,906366627,906193057,906366115,905999265,906193059,905999777,906193571,230098630,-1348454911,-1331546611,1856058893,-1314703869,128005645,-1281149434,-1590233075,-1556740601,-1590293077,-1556741266,32181673,1577541624,-1017554401,229613622,-1341769162,908031245,-1962539103,237713098,456527281,1024307974,175439872,1997421366,-133991680,-1007091221,1929368040,112652,-789061421,-1257889482,-2143894771,898878,-1590276492,-1556740594,-1590295702,-1556740596,-969538712,898822,1812383542,905969923,56493814,504591744,1381434966,-389467311,1515782193,526255967,-952756501,17001478,113718784,3509,-1341733322,-1007026419,1743307768,-1203670273,-523042815,-1257863882]},{"sector":7,"data":[-1959431155,653735617,53874093,905999110,7673363,-259270002,1778814518,1049310723,-1959394456,-787632882,1048590057,1946157162,1726599427,-1007114765,-660487175,-49915,-1007156620,96616067,-117279488,-1038185533,1960512261,104720389,28963442,89647104,378268274,-771029566,-1612182155,-941788427,-16562170,1395387391,96214667,1527533544,512301426,1347487164,637645909,-1962912118,-1962556914,-581768981,-1957078947,-388287789,-1977219863,-1040317362,-967709390,402868998,1458110384,1493332752,1317742275,1053033986,-2144991774,1459881293,856999811,-202780224,-1442745429,1173759583,141901829,638728168,1074089344,-1031579385,118915841,-1159593978,1073957025,-1179925512,548929540,-1431571680,-2086006608,915081927,1149961630,1150003981,-1031034097,-1413467221,113755051,-436271746,1275512400,1839333379,-179574779,-930360950,1965978456,-2131066875,78644852,-1007033294,100009718,-2146339839,67499534,99878646,-117082640,-1023408200,94256836,-335953869,-1337428902,1795618307,997529605,444132618,-931798006,-469332399,1871324677,29750795,-1410849675,527784439,-466436046,-443920048,-1006549272,1443208766,703391827,1583045235,112220249,-1336305941,-1332614395,1351478017,1961410955,-1619830784,-389872976,-93126671,90900214,1358132496,-1142401453,1482382889,-1001330573,637919806,652543942,1074087414,837290101,1300243985,784613381,-1977219702,367525958,-1427417072,94256836,1441316915]},{"sector":8,"data":[92743367,-1677306032,-1658226456,-1893310713,-949819387,1482251867,1929352424,1448300701,694479004,1482383005,-1976646461,-2146012411,215614,-386828807,-328008192,1928568552,-116462617,2044988099,9300227,1912679912,1795618547,125044741,91963008,-1897630464,-1962548218,88850171,-218102343,1805690021,95529477,-1410088909,-1833011480,866882219,-1414834240,-499741781,1156982277,141901829,638616552,1074089088,92942020,4622886,1460032336,94256836,88471078,505050496,-1977694893,1569269253,651922439,1527340425,-90511329,178390726,-402170111,-85455044,1582848768,24371338,-990606653,-2096783810,-1070463801,125367818,98836110,-1442101366,-963985357,514539532,169494469,906328310,92931781,534285483,-2086316373,-1515911442,-930370131,2046167725,-1950338300,-1851027000,-1413467221,2029390507,1200335684,-276605158,1166616091,371089205,973534751,292815885,-1962067010,-1951727292,-1968503996,-350246396,-1959387366,-1962548682,-1951726012,-1951725500,348554179,548521515,-341118474,130515715,196735883,1587868416,-1007149290,-499202786,-1962112251,-1992947627,-1962539242,-2095118763,896664313,223230758,-550817929,121044819,-645180922,1510130408,101123727,-1017445773,55248582,-390057448,1918569809,-362092302,98704899,-964430965,1355020314,-1572962145,276037642,178390726,-1000929792,-402284994,123730308,113465502,94256836,895322918,425036582,611638027,141806123,-768357885]},{"sector":9,"data":[190679846,-401349881,343017691,-1108811897,1944028936,1121945349,-1007096350,-129351417,-1139373117,1931381253,1258735109,1525168131,215476225,113699442,-1962867340,-1962559434,-770798594,-1980169467,-1006258114,637919806,134565248,51674509,-133837762,-1070397757,1946140392,770377475,110019468,-611450066,-372113785,-779901453,128250624,-499202762,341675269,921236267,1983587852,906326530,7159433,-1021372680,84264097,-995950591,-971603195,-962527227,-905561339,1996599301,-1593085425,104531396,28313032,-1070464393,-10622970,512663410,-372178130,-779901453,128250624,-501299914,88602117,-402164416,1333792308,2005745669,654191380,1912766011,512308741,385351789,116835103,1962870132,91463718,975618302,410387526,96214667,1929886696,130934804,1049169778,117376444,11535802,-133860446,1388575171,1183458899,-1967063548,-1950209312,47569,1913104104,-2134375881,-902102827,-997575821,1962621763,512314347,-785709636,650218322,-1962776841,50706486,95986630,-634693032,96083457,1566811,-1007100277,-117128061,717892547,-1999831327,-1962577114,1372056522,89033254,-952743350,395014,1959332352,-118672884,-784936239,-502921450,651365110,906712579,101127811,1405311232,686349107,-1774286585,-227386619,-745843887,492735270,1996684163,1187456521,-1157627363,641925121,1997364795,117565533,-227201166,492734758,113298,1913079528,2122524192,74776351,525270822]},{"sector":10,"data":[-1948612718,120711362,-1953297550,-1161043245,619249663,1918458631,113895581,954767474,-2020380160,1979648991,-1977199987,-1006239658,637902398,638279049,120937865,-2094611622,1963072894,-4564084,2091263,-389993640,113639431,-117373429,1465013187,378264371,-722991722,1532649222,-388877373,-126744969,-947128716,113371218,200110682,638285266,-14713213,-14285708,-661971130,-388402104,-713947588,105769155,-1957430670,103737567,-1947110565,921627615,55445190,-1462619648,637826306,1191183814,-1476392775,548442884,-117242764,-1426863821,-1007287375,50623496,-204917767,-1414819414,-166662269,158597571,-402616600,74776872,8775750,1979774696,977043486,742791541,1343190592,1478193384,-2143942029,436604990,-5111180,1313818282,571719,-2147473176,360001084,116799046,1946224146,45720582,-1190925568,350748675,918718976,101787265,63176447,-389853447,-143261533,10348622,-164230027,-16560634,540809588,-303884939,1965702217,-213929980,1060940458,-897523851,-1327830271,1319826208,-1578586941,1325036544,113653443,369165134,88850183,539015255,-1442839111,-1070421005,1605030026,922712808,88817280,920221157,88803014,1718010629,1711695462,1717986918,1717986918,-151493018,1342177279,-37132,1157627903,-3004,-1,-1,1879048191,-154,-1,-1,-1,-1152144140,1631324977,2050757746,539755127,175276092,773750828,1037508238]},{"sector":11,"data":[-397402153,27787288,1405311832,-397353749,44564492,-397360296,78118916,2117911384,-1152182669,-388984970,1935398702,-790048760,-790048536,-1022417688,1019416496,1007056431,1555088220,-1006930749,4327,4347,4367,557744182,24379651,1392923075,-745777634,-611400818,-1811495370,-969538301,235115014,-1794717898,-1157627901,-986315886,-402640330,-164170404,33789446,-1070462860,123412318,-1607023783,54264735,-969477515,67343366,-1845049802,-2009721341,906206990,60098247,-952762368,17015814,-182261760,123412318,13691225,158666812,-1874952138,108265485,1946369219,-1511406847,-2143904768,219198,-2143935628,204862,-13231243,906188854,303120000,-855345920,772139816,-1876943105,1476824886,-389833469,861142854,-460592933,-1259113893,-219355135,322748276,-2143902091,888894,-466440331,-336406040,385234506,-1152187650,1659371524,-898475036,119428870,-165216629,1946682949,649613336,1479527697,-969535629,196102,287619152,-346542131,1048589840,1962935038,-201922555,-370670613,-1022926861,-1258331416,-225908735,861140596,-468195109,854356571,-226957084,-1653338052,-545979588,302446134,141885958,-102235216,-1031345981,1048583958,1946157911,-531896317,-2045341958,-2077848827,-1330649083,-1909580281,-969025762,205062,52430534,841386240,839287555,1048576515,520098321,-839383691,-133764317,404684590,-1940850032,512634584,178470359,983783437,995662851]},{"sector":12,"data":[1963143718,54173962,218766990,-2085679895,27787972,512683892,12061962,-1909580212,-969025762,-16560890,-1092490465,-1959901333,776437278,1037506190,-402153284,-622133246,521537302,60032710,-1845049848,113710595,917,61087369,-1996254533,-1945919434,-989617650,-402640330,-953748616,-1140613114,113714691,66468,1048590019,1962935072,281837579,-33098186,58064642,909692032,55256712,-2113500106,780744197,-2125068928,-1946091545,6613213,-2120760482,-2097086489,175440127,1183458896,581056000,-1054124029,642961411,1510106871,-466429949,106314534,-989980046,290863910,-953808781,-57530,-989984021,190200614,-989986190,171369680,906327334,55256586,4622886,-2113500106,780744197,-1004141184,-980675722,-2097047320,58068223,905972927,52444800,-1341885440,913107715,92808841,-2093611242,-16405954,1444809844,-1372142282,-16464379,922361694,52430590,554630710,116798979,1946289654,-352079868,378418729,-1960442490,637895718,303120000,-855345920,772139812,-1877205249,-2077849306,378283525,-980679290,-1959340658,906332198,52496126,537314870,922419203,92286660,1047658812,54281844,-164213643,134433542,61883508,-167315914,91554309,1241972278,113653251,922682146,95043203,-1023314433,911234590,906341025,95303365,1582826632,-164183265,537086726,-705968012,1258747446,-1099689981,521587691,56049280,-402426880,1048632841,1962935129,2080818857]},{"sector":13,"data":[-1070464507,504214505,718111412,1493616182,582549251,-1339044591,-1198397406,911410777,53485195,379706254,1958951680,1977170712,-2143924204,50691134,-1243085196,-643962867,805736246,-1340140029,-1123358465,-402277400,1994964260,113703671,-973077727,-16571898,56166086,-2147053824,-2113499387,807308805,806784515,774277888,-1376524288,-661893113,-685863378,218800957,92578648,-1621600168,35971206,-11472204,-16416202,-1593475018,512624004,1355746570,755940280,773721771,1037508238,-947128261,-2054551949,-466481493,520299683,1539200600,-1349785586,-2128166050,267783550,-75429005,74715120,267975553,-117734461,1977289667,-2126607609,-1006695680,224279334,-588765577,-1960939008,638481725,-2129824117,1913648894,-335607028,-772812532,-772812305,-1605137,-1021372913,524732198,-1269760001,113653384,-1089993909,-941092865,-134005507,1492713845,1977289667,-2129229563,-1863793920,-1949142528,1359705141,-489487183,266765145,-2128210709,267783550,-427750797,-494800896,48959487,-234097101,-986303095,-167386570,1967129924,94038023,1074089088,2017361974,521535493,1397796468,93233489,98836110,-2011904381,1344214564,93460107,101127817,93329035,838861246,56486080,-987991464,-167386562,1967129925,89581575,1074089344,1326761859,41812774,385353096,1482381599,2013710019,1397751813,-1014279599,226394406,41095158,-13375279,-15482109,38701862,33618305,-796192651,33546881]},{"sector":14,"data":[-271465334,-466429744,-678755093,52883959,1346963014,-796176046,101123783,-1070465024,-402652738,1482228455,-984124838,-1928994250,-134015876,930464059,521536906,91752190,-1996124510,-955936746,365062,113721856,1543,29278258,45213696,918889586,2089616866,369461780,93299231,1510313663,-1070376103,226394406,41095158,27837323,1499120472,650336347,638021060,-1577040246,1994917238,7989421,643237571,642084292,-1577040246,1659372918,6678701,-395180193,-1070385035,243932744,-315490233,1165346086,1010746422,1173759488,410353732,1165310758,-611577227,1197292326,-2061104523,74729797,1229293862,-497498237,784605148,-1007155830,524732198,-410910721,113639679,-1273494709,91660314,-990120472,1006996014,-117279485,-1340139837,1720329743,56271617,56362694,1560725249,637534211,-1575532918,503710567,637754043,118716101,384739304,1049298719,-16055459,-466441608,409372198,939882144,1963630854,-1593391608,-1444282614,1747323392,-352159485,-130255771,643106499,638807748,134563574,645138269,521557790,55248582,1053034008,109839209,-1996029142,-1207752642,113639439,-402586251,526383888,494142268,922709737,7421571,-400591872,1161298168,-166824700,1950352709,-132180472,-115403069,910003139,247152185,-953752459,-57530,939578344,276104261,1074087414,1170705269,-400490748,48955602,993410443,1963899710,1048786658,1946157175,104478221,108334512]},{"sector":15,"data":[-1341733322,-987300083,1173754750,276111365,45817622,-53614592,1053139826,334169570,-768387834,118917430,8054790,1560430312,-2082115065,-1942612793,369322526,1748928799,639021059,-1560189302,113640282,-956169380,220422,1183458816,57123351,-14279162,-14281354,1522209654,119496195,133002216,1049304854,-16055459,-1977210504,918886214,-953810068,7494,917860072,57163461,138840614,653673864,-1995487605,521598789,-373047246,-986251702,905997630,1967815,-1992884225,-1022444738,48772607,1354981120,93017683,1830718262,1958951680,1979398944,1839412742,-1961432320,76087925,38046102,-1996327029,41912636,-1996327543,1482382877,-16482944,-1992948363,-1023382210,175503163,-645115311,-902053236,868440410,93627382,4622886,1982149,118393654,-31994,1429934708,990737670,141887565,1963214138,12511491,1006596072,225773141,1963478331,71645704,-1897331851,910002944,247152187,1448207733,-402238126,1560740123,-1892262310,1929774854,10479875,838965480,641218276,1265960340,-1189847667,1465253889,-2143943086,31038,1394476916,2048836918,1962281728,-593238009,99287732,-1260599064,-2143904768,31038,647828084,-788377973,1609796585,-1510736889,32186118,1599735709,910717534,101125771,-1995944567,1837696597,256216077,4622886,-972798583,855706181,1962281920,1183458827,172328968,256281382,-401914487,-1942552883,906355742,2104972,-499218122]},{"sector":16,"data":[1049179653,385351710,-1712798945,116799230,1963197969,1048786440,1946157169,2943011,906257802,52569656,-164231052,67506438,1170670964,-1962868988,1044067901,-579531077,1048583958,1962935114,-1007041791,1698234292,985035780,973501664,1979188293,88471212,1353086016,-402360833,1918369803,-1075544058,1476674953,16758979,1006912903,-151685889,-260816700,906008040,52561466,-1573460364,1841565103,341675277,-1962519157,-1992947635,-1979316466,-315487667,1258735158,-990504957,906392584,55250560,189106976,520041303,1347508051,1392509369,-2143936942,31038,105977972,-1960381557,-372178354,2050933814,-52458752,520529395,-655861497,1532633051,1918851416,-805091583,526108642,24510219,1354981369,38177574,229483318,4622886,229614134,-13188264,-1023381242,1899922230,91488256,1896808246,-1070349568,872843062,-1461655293,-2063153610,87818240,-1185348235,1431388663,-326898549,1980054557,113653268,-1342110941,1575324417,-391593239,266934348,1946303492,1946434792,1946500324,-60913170,-1996601716,1187445574,1451819258,-396456730,-1226247541,-363951692,50503734,8692278,911589426,8785536,323086337,645936796,-1644298106,-1985056163,-661915578,-1377255374,-167284027,175407298,-857144656,-385175552,1187446983,-956301074,62022,50022134,1992643701,184847356,906786240,53485198,184560801,-1908443968,-1174457408,-1070432256,-915034382,-1362724791,-1923615115,1577259357]},{"sector":17,"data":[-754667030,1441269483,1935220486,-1904940286,-230258240,-24381901,28878067,1992665856,-363951130,521577715,-1174398279,503713736,520391912,189821447,1028420800,427098138,265553655,74842111,-375098,1024444577,141843021,1951226429,32631043,-1324364639,736154373,-1995452410,1190589510,1232339707,654081732,1183384971,1166747372,-163149566,-1342118935,-1341986040,-128021749,-402374680,1431352548,1560962280,-21370536,50503734,-2078373322,512243200,-1007287550,-1462471360,919630912,-352286047,-481901015,-700546304,309657615,265830019,-32803584,-264379578,84112143,116785168,1954546434,34504709,-1969012733,-17664,91416606,9085215,-2097147899,-1536028165,-1602763973,-375050,100866165,-1804464174,-1871199429,265422379,265553411,-1019542414,-1014300042,-1982297314,971567198,57876229,-1962970647,-2013232114,-2147286514,1946215294,16482578,-1324584176,-2115775740,-1996422933,-1995450338,268824134,-96012800,50951423,1177284678,1060340,-1980348791,1452010566,-464090644,265295499,-754667182,212949218,-930354989,519593611,-253181902,57876234,-1946222871,-75369378,57806848,688906427,-1319898018,-1948003580,1586372299,1372730348,1493374184,994603551,141843400,-108935125,997392896,-135504383,-3002,1317782901,265724406,-1029455613,265855247,-1005600605,-1559241722,-1064562748,-962346749,-1949748465,-1961893866,857667678,176285888,-385649889,378273421,-1169027122]}],[{"sector":1,"data":[-1934031938,-1226301951,1918502658,6535658,-1962688833,-770967946,-987359628,64523293,-661724090,-947702015,-354268668,-823451898,-1907273722,-1590238138,-1959391290,907002894,303175423,-385394599,921239774,-79235330,-986876926,-1985086346,-4658106,912518143,906166944,8658570,35555382,1086584323,1084807285,1183569012,-388287506,250282618,34010678,108298243,34504758,-4505597,63629567,-948643061,1408261769,1526972392,99501705,1183383568,-2118110228,1930428667,-1312584946,1038144260,-1552547584,755040301,-1957691136,-919340962,-1070345845,1493804776,871128718,-420982318,57892353,1006479593,-385649210,-1976107143,906003486,50470536,50022134,1183527541,1060332,264676150,-1006188746,-2130640881,-2097086778,74776318,16828033,-1070167754,-1029491185,-942109169,905969668,6362879,-386376053,-397082208,-396556343,1190527395,980681467,-402536472,-2143944229,1064766,106309236,1077330998,1015031312,907113472,53479054,-1120469194,110044686,116064320,1057408566,1577517072,-379722357,1451992222,114414,200427147,1208317120,344578190,1223575179,344578190,146736926,24045568,1017927249,-1442286546,1930493827,854843906,285180864,1588199795,23717977,-260666542,82375171,1996446383,110044914,-13238228,638500150,4195983,519861957,108315990,1358957753,-1979687745,866448156,1504422848,1444814686,-1979026235,-1415253188,-987799893,-914357644,-201749632]},{"sector":2,"data":[-1966473564,-385928505,41093733,-1014302326,1525209906,-1979550966,-1568020263,-15436545,1962873460,309657364,168202022,110044672,-1070399476,110090382,110035080,-952762230,-2147275770,512636416,-1942617296,-167563746,1946286918,918894119,2126778304,1569466108,-1991356912,1971922460,113587726,-1943662652,-1993993123,-443870651,-1550259875,-1003043530,1053046287,-1064562752,289308726,443809810,512634398,243285463,-1996226426,-1946131690,-1202708520,-1940909803,922405824,52496070,-1949266432,1444871143,-628178290,-389299317,1586167820,1105745400,216554759,726909696,-1333597989,1526730984,-1959373885,-402444258,-1847066619,-1664918608,-230257840,-1962931736,65596998,-1013098496,-76234741,-661774776,73353,1992672031,-1395749914,-109823428,-176923588,-210436036,-242749141,-952743485,84851974,1053046272,-1064566691,980731659,168135206,909341888,101596809,477479226,1347834183,-291575636,-502368850,-1960421129,-1113377275,-346464754,1499355153,238979894,65286662,63407096,1355007723,2080818742,-1909062907,-2096943098,57870074,-1962932550,-402238502,1528758841,-661911694,44286723,652957696,-2093940552,-623833150,-355269711,849311977,646330084,-469105843,2080818742,108265477,2080818742,-387448571,922695328,1150223152,839445268,113653440,905971068,92022410,53781302,-1902064920,-1070394276,180273294,8961792,-1515870811,384411045,-1590246414,12517412,3205120,520502642]},{"sector":3,"data":[73273,1049166965,1031798785,-402295718,-387252205,9216310,1962934077,1004506142,-350718984,64523473,1073742598,-2144943986,125062461,1513979942,-1007091340,1952071040,-1971974,958854514,1962934590,244000494,21037059,637534990,227020170,-169287957,614545070,-1901906432,116798976,1958740738,116798992,1946222729,-1935591928,-1901906432,-1950338304,1084438264,1117992451,1151546883,-1590276093,-1813512050,104231679,20855071,912880640,8980214,907834369,50464502,907310208,906006177,2360891,-661911179,-1945748682,-2147226880,242506301,1946113768,-1578608438,-385371986,-2093571773,213054,-2065104012,614544896,104543744,242483342,34010678,108347395,9347894,-1528261397,1552505759,-1368463358,-873789264,1929326056,51284928,-902080000,-779419018,2010725202,1048786562,1962935104,512505349,-2093612224,213566,906366580,54658702,51263782,91621120,1109298230,512505347,1391002436,512636671,243991364,-886374397,1282726540,-1030827773,-338065591,919155502,50466442,-12590719,1996618115,512636632,91358016,1109298742,51284739,-1932842240,1959824344,1086522139,-1991655282,637535006,200329,495340979,639469606,81545,-1590240626,27460400,1087933440,-1380259749,-392145431,12561812,1220578304,1946051048,-16586493,1743313038,-1946782978,1358955278,-1518937797,-385934359,-164188816,67143174,-2143941004,34110,-969537931,16811270,-1946156865]},{"sector":4,"data":[669534400,638219006,81545,-340957208,-1386026837,82381232,1958742688,1946237984,1946303524,1946369074,113653302,-1341848797,920906497,52627142,-351817723,44054260,-337366525,-478063670,-75235521,-646489342,35555382,921496323,604015008,922151681,9178763,1962932611,33260480,477365362,-164186133,16812294,703074420,-961252864,1509949446,-1993965514,-773063168,-1996032458,276103424,1912606696,444058,-2143924992,16812302,911271147,-1912593247,654259136,1952071040,-388461031,678624619,-1996032458,108331264,1513979942,-1053097237,-164173963,16812294,-661779595,1929202408,1975597831,-1017579517,-1144825607,195366308,-1525766794,-1521441467,-1520523945,-1512331849,-1512331813,121415145,154928242,-225764746,907173003,271582966,906327297,54402697,907304075,54271625,-1187578066,922693284,-397368137,-969495756,16982790,-521600592,-617364578,300424982,736646060,639857153,1946172803,1032005145,638809343,345591,-1995737728,-1945788866,-402284538,1130089016,99145707,-1612096596,520042142,41025700,-1158941461,-1675690186,921955072,10493695,-13177621,1912648734,-1660032791,-1996333943,1150028412,72124688,509138667,-1661343658,-1796733089,112809642,1202057984,1587914055,1552614539,72125186,-1962519413,1150159484,141885198,1577868430,-333542346,512308741,-969538070,-16420346,379301097,52477703,-1173705543,-819264710,-372123861,-788475517,-1666848543]},{"sector":5,"data":[-1995553652,1418266748,1352067846,-854514248,41048879,82415339,906267550,-1962728285,-1556739516,1149961000,715339278,38046467,52863798,906249355,52635272,109981379,-1910096425,637743110,3284539,112198770,-1004092423,50345022,-521616389,653947647,1979661696,-351883260,-1977199641,-385928675,-1017446398,-687436242,1053042237,992346154,242353245,73214758,-2093104090,-294256641,-1202666503,-470417349,-2091321341,868419271,-6690597,-2144990862,91553597,-1326257341,860930820,-1142402085,997350399,4031270,-2094654092,57999165,921365315,637746849,1966032185,1017198323,1161373187,652834097,-64057,54436150,793086246,54305078,826640678,1489238104,-389872464,728891995,1049173782,109839774,-2094660192,175374653,38111782,1883041828,552077172,96872191,-953751297,1051985266,-375592471,686333167,370373122,-1640068833,-1610183675,-933042171,1756628082,-471080213,-75240141,-1157401836,-1909063660,637743110,3280523,1349835067,29172343,512632320,-208994250,1015073579,1178564095,-75237150,-1123453164,415170562,501961472,1962933123,-2091648899,78712771,-478028845,-397074433,1918761668,868257380,512636671,-973667536,175374339,183193945,78680811,244027627,-779419598,3421893,1364829427,-5191125,-1909019917,-2096943074,13374,508890485,906399238,-66852864,-144892153,1946157765,872859400,-352315392,872859398,-1946157056,-1895811578,-352308730]},{"sector":6,"data":[145775535,28356331,-373359893,-30545807,-1977218958,21096453,-320142733,-1640068810,109852165,-165280352,1948255045,243283462,906102262,53229311,775356214,1370115,-687923434,53347983,53216911,-890568077,-1410612853,-1320035701,1508627204,-1023158132,-494675826,378091023,-1942617300,-1023201762,-344713026,14805144,-1628765581,175505980,587646518,28311811,20746475,460786290,357892902,390927142,647152011,638928265,-401123959,1418303999,648538886,-2147072522,52824693,321261909,-588573875,54916646,653227392,620905867,1077739760,1023767552,-562757584,-854515272,-339709137,1929526443,7727168,-1073048974,653923701,638406027,-82881141,-1986416920,1418265676,-400495866,-1993955244,-1993994931,-1070395563,-937492682,1703093760,-2128167163,1073743181,-341288984,113653384,-1342110941,-1951339775,-42997565,1460017010,-393011362,225574943,-390068760,-1977156357,-350451683,1407118294,-388396207,1482423721,-335747352,-50403113,911219826,271582966,855929857,906554304,637746849,1479492923,-1329397387,1019476230,1344697607,1592312458,410146817,4553859,121377396,1283524469,-348127165,1130660121,317439999,-352317512,1946696720,515395798,1529859345,1609106290,-1704597094,641123638,-97536,70912372,1959069300,-101520615,-1003073341,637903422,4408775,910175232,4589112,1346909810,984891652,637896998,1543652807,1300243968,-1070907324,1229293862,1262848294]},{"sector":7,"data":[-1993997648,509103941,-5445546,-1993996174,-1943648907,526272349,743490392,275929089,87829876,-969524106,16982790,-2048196176,-91551970,235834166,-1737889792,369380489,50707999,-218099783,-1430244444,916047337,921225,118944395,906167743,50595582,-1202658581,801968415,-352160934,-388109375,-1519255526,-986294754,-150625738,536888132,-1787551906,268879414,-1007087866,91602954,53911606,1444825152,587646518,-164232701,-16420346,105914740,113718871,83035554,-1542026186,-398392315,-148439277,1073759045,1951926111,-400954610,124911641,4408567,-1341295296,279066127,113653254,-117374173,918757214,4654650,-1007091086,-986296237,-1291830218,65271384,914962160,-1942616670,1476764702,1438906459,-326898549,101127696,-260141737,1812383286,-969539579,355590,1957693928,-12285427,91071030,1812383286,-391315707,712179542,-1190955032,-1403650037,-1461396504,-501517304,-544514314,1605647848,-1927342585,1065414774,1426551808,1560284904,-1325857933,1575324419,-339725629,922726402,-1341961054,1906456319,113653253,922682746,95567497,-1241069770,385875717,-2035446521,116798976,1962870130,50325557,1929309672,51308586,-402563699,-1133379275,915087126,116786610,1962870129,36956163,1053040406,-1847065182,-355342171,-1331319832,-952712445,-16408058,287553791,695414733,1342356712,1458046091,-387938588,527819857,460709946,-391338664,-1073028112,1055395444,-1428190236]},{"sector":8,"data":[-622268299,-1021372928,1492839338,1962949760,-117264380,-397061949,1482544751,-969532301,-16420346,922641896,91358918,42133504,-391499856,385393631,854115103,1912844542,106307320,-712775593,526255967,-378403920,-986294754,-1962565066,1331430367,8826253,1336132072,942038192,24444741,526274474,1962988008,1958742545,-1392801008,1961082088,-1073066246,1555039092,5499050,521579378,95567499,94516933,1963073512,-12285420,1961072872,1031808524,1191605248,-1237415626,-1960897019,856011318,1896281801,57999109,369175784,-1572944865,1173825029,1971322947,-401874163,-1058495360,-1533351703,-1396505680,1977833704,1945975559,-202659303,952120142,639268100,989822336,1555039605,-1429960022,-823606280,1946398721,-117264382,5368003,-2094597518,141831741,775782694,1326085422,-1342166040,-337284605,-386333950,-764084202,-486020948,-46418315,-1398093709,1961032936,-1444196614,-1073085302,-286735756,-79969310,642714482,-488110710,-118262302,-117198653,250381251,1460033054,-1259566251,984263726,-401050172,192217038,-1002788180,-1008183435,844264959,1988733632,-1958221050,-387447178,108411873,-164216972,-16420346,-494923659,369112577,763299194,-771095435,1988702068,-1105259002,2123171147,-806856950,1827168177,1308838306,5126914,-141882509,-402489660,-336027054,-85395189,1963110400,61929731,1577541469,-998007009,-1572739058,918789705,5900022,912946431,94516991,-1539899594]},{"sector":9,"data":[1599479301,-390057209,1265827033,1157087486,1948254275,-1578608654,1594061824,-2144933397,141885501,1275524662,-277479677,520550283,8448095,95854902,142131211,-970209533,95855414,1962949760,-1436766205,-2086545944,-914357052,906816257,94635663,-1576628426,919155461,94516933,910523588,92946057,-1945727946,1444856581,-1252960506,46262294,-402407745,1599732963,1931435527,-1785861885,369344190,-1584601057,848656873,3965120,2088817524,-847955455,740297901,-1329171104,-1057045505,984891396,2129183659,-1494005343,-1974405259,1927872324,637957345,1978140042,-1396483842,1979609064,-513808134,-1243335997,39708694,1349143737,-392008728,-2048329788,907309730,95035017,-1640068810,109852165,-1696070240,-385649673,-1992949613,906341950,95422092,-1407284938,512439813,-2010774102,-1074623715,-397343810,911998015,94254789,-2143942030,-16418242,45089908,861425899,38570441,-2127344503,1969900795,1954588681,-1182850043,106369024,1599473438,129698280,1360991839,-983968769,1912970806,17090330,88869120,95199542,-1071710410,113718784,-64086,1033145833,57999447,-950332949,905969668,95303365,-335608634,911866626,95028935,-2093547521,620962878,1961427829,-1804998252,1763752273,1829160502,669582853,62832639,-225750704,1509663464,372470360,2050916383,712376069,91031238,1912679446,-971607029,16982790,-974454352,1924679656,-1833834477,-352041847,-389969013,74627225]},{"sector":10,"data":[61928939,-1957567253,62832626,1509646056,-2143883150,-16418242,521539189,552076981,-1275729919,-655686542,-655686736,106045009,-1074296033,887620670,922695419,-1892285006,1577432070,-1166911201,2050916406,-663355643,62832465,1509627624,521596018,91897472,-3837185,-16408010,-1090149322,118883262,1860747314,-401575174,74751865,-219430658,-1341864829,916712208,94635663,-1576628426,-1256253947,11134998,1924488936,1367862157,-378933319,79298322,1354814212,1090785060,-838969174,1438905205,-326898549,-658376950,-1207601921,1844117509,-1980346743,1586296918,-27357958,-91551970,-638070901,58050827,872415161,1336865472,-12219866,1960791272,-1436766205,385646217,518542623,2126798232,-389968900,-1031012448,855612392,1455794880,-162624520,-7870379,1008431965,1020818512,907179269,52706947,906654785,52706947,-352160685,-443811390,-385650083,-588672298,116799122,1979647346,919439874,91033224,378091203,-952760844,390918,12777216,-1975159298,16416994,-494911884,49971215,-461359497,284983536,-1942606217,906361606,100220553,-197722314,110048773,-1992948227,906362638,100736649,85888054,914961926,-695532029,200000395,-1830092368,229662297,-138151701,1948254403,243283462,906102262,100011648,646002177,16713204,-197229770,443879429,1929300200,1048590041,1946158582,113718794,132596,-385842199,-147418586,17167366,-400067328,-1233977926,-163676106]},{"sector":11,"data":[-411828219,-200882378,905970181,100009718,911963396,99878599,1391132675,-164183047,-16420346,-846593420,1945941224,1048589874,1946158582,146919,-147398027,268825606,-352160512,244004446,-986315265,-1962540234,-43980586,-952742542,33944582,907012864,100023936,907375616,99878599,-397410303,-1590259661,1149830644,76109828,1536267753,1048786512,1963066868,918894092,348456451,-335711256,-194779133,-1207375016,65732610,-385875528,20746615,-396948361,276034476,-385437601,-969502361,16982790,-202702416,-1447176053,5671171,1493323401,-1996206455,28903030,-1960897024,1963043029,639429378,-2147072522,179832692,-349188847,-1407254780,-352161024,101491145,647043561,-2147072522,179832692,-349188847,-1474363416,-1948062976,1392515614,-1340145840,1935366144,-1658001401,-101681845,1460018883,2209873,55248582,-1976646632,114437,-1960390773,1776814934,123689439,1946237983,516159963,-685863378,54427709,-1021378557,9707263,1460018883,91555526,1258735104,784603139,29296010,651135744,-401516917,123723568,1946237983,-3933733,-1023371234,437160785,-1640053760,650130181,1362314633,1509932520,-1410856333,-387259748,-512491593,-225721511,16925943,-1961659392,268765252,-1950315008,1149962828,385824268,1157042706,1962934786,-984211944,887620724,-314185491,1150164830,-1113508344,1084433934,1048589824,1946161681,138709792,-2045870026,1157039104,1962934530,-661774841]},{"sector":12,"data":[520315368,-2063139274,1671640576,-1010814208,735611910,-1898410302,1032128,1096023,-1359741008,1610058567,-1899877544,33864128,-789068149,326428883,-830219636,1943022576,-740624632,871508962,-2015719726,520494839,1976434183,1318235355,1187548077,-31145334,91598908,-341118036,1974615046,-1834683540,-1183579736,-1014198128,-1037313908,-1064380274,-1191178305,-5242864,-1958236429,734235639,-1077899582,78708751,-789068149,158656723,-802432372,-830219634,-137917456,1961415632,734170121,-2084401456,-1014173489,-1907828596,-1077899560,280559631,-201347072,-141867090,-1907833973,1032128,-963967823,-388771593,-628356492,-628174805,-995711,-789067893,175433939,-802438516,-813579634,-1014169616,-1907828596,-1077899560,280559631,-201347072,-141867090,-1907833973,1032128,-963967823,-388771593,-628356748,-628174805,-1947152765,-741279801,-1945537304,-1898959934,-254835774,1322289836,1187548077,-31145334,108376124,-341118036,-1304653817,-1527551115,27837066,905971432,303306495,-1014213693,268434305,-1017445770,1364198942,-377268394,-385649918,-108330811,-1992900466,637568830,1112685953,-1293352076,-2095116800,-1293390649,-1104907008,-1959349178,-2097117378,1152985287,9353984,-386969928,141689005,-1179393858,-1527578522,-1090485015,-2031615882,-1102809856,851424394,4503808,-1207923525,-2031585102,-1106152704,1153021066,8502016,-400799816,1467089013,-1179393858,-1527578621,-1421307720,-1191000445]},{"sector":13,"data":[-1527578604,46564267,-218084423,-1086788700,988282996,-1104120576,851424462,4372736,-1207923781,988303070,-1105432064,62501856,-1331367168,-964449720,1358082,-2085968653,1270416070,1604645632,123230558,-1094493409,549041424,1957098240,2105550345,41244415,1472440051,443918067,-2025944266,-1949594880,650130392,-947714813,1610146306,41272123,-1007041544,2097152,4194304,243990529,-493879280,244050174,-18743280,1397816552,1465274961,180297222,-1105261056,179942996,1973875456,10561098,22822144,2134720882,-398690559,930414682,370051878,15302912,109979138,1589510176,572086,1946167784,-1234780661,-402649158,326434846,-1196778832,-1934945770,-896816176,-1341724285,531297168,1516134151,-1017619623,1103768401,1442971839,-896839337,1599710963,1191408734,-1017515550,708217638,-2096450816,317195206,-401640192,175439885,775716902,-397540235,-154992639,818184435,1681401422,-1023364095,21505673,21761676,21628615,244056320,548929811,16825857,18562689,762663747,24329857,628445252,21380737,494269459,19152513,360022016,482281230,24493751,-218097479,906392998,8718022,1892664074,984320,-388900655,-388896559,1392310979,-1940447658,-1133004605,620760837,-259260432,-661731188,1795591726,109979319,-13434877,-216833351,1579114404,119408218,1077840159,1109297424,512503312,-1943126569,781195806,-1877074292,572427310,1175882128,-2077849341,-2045342715]},{"sector":14,"data":[-1898411003,153140432,303171271,113746369,-1581182444,6358727,-930307647,-1945458013,-1996469754,-1946138570,1443885598,-1107294279,478941174,-502872445,375289,-1944982082,113672988,106887650,-1070391777,1790498958,11051959,-1432106868,937959168,118904322,-1207905601,-22347773,-1070421048,-1413238614,-1934899573,-1070355496,1219210155,-1421825109,130515883,-1190476157,-1510801404,548406193,-2141279501,906167372,3290761,874417206,-399194880,1156973038,-176945148,775326006,512505344,1656553520,780744211,-1942618074,-989845498,-97484,-941065356,71628545,-277512192,1729006134,-1997721085,-1976169908,838878742,234895094,1444806726,1813955894,1127713539,1451763267,1988634112,1381061377,647296744,906118795,3540539,-1556741002,-980746186,637542661,639190665,639321740,-15186234,-1940170406,639590104,638809737,504716940,-20513194,-2082959678,-1310580283,2129207134,569213951,-15120697,457623551,-981204993,-1960896991,-29235003,-805053812,-1962930245,-1945942514,1375969822,-1911903583,-1442396224,-385876214,921174518,-1442411518,-1070376438,-1064380274,906006719,-1995789663,-2101411259,444160,-1080952064,-977796992,637248,46629803,-947651870,440580,46629803,-947651870,964872,46629803,113769186,1152385212,178954550,-973029725,-369049594,12650183,113721542,1086259328,8652487,113721579,16777352,9049737,9701063,113722072,1130299544,10225351]},{"sector":15,"data":[521576804,1112672022,53483145,-1030815949,-2135310285,-1582566656,1055392582,-1088481643,-1070399464,-5199189,-218099271,-1945692502,-1107284962,-1943663320,-1943665084,-1943666108,-1107281402,-1993998227,1509963830,53352073,605456678,-958755328,1509949446,67271,-1590296576,-1037368506,238408,-1207905601,-1079312381,-1908273880,-1162364198,-2118917959,-1203908375,-802310294,646657597,-1909062268,-888830442,1510393398,-969532925,219910,1543947830,-952762365,220422,1347618304,369318587,-886380537,-1022928040,1124120656,-2143539251,1381178741,280495646,774884675,1037508238,291708553,291833484,1511983096,-104638373,503366488,-685863378,12838973,1962934333,1048587886,1962982070,-388461560,-1572754,-1077900288,163123298,-2096685568,-492109113,-268419590,-1612165518,-397839617,113639790,-956231151,806490630,1627834293,-1665715200,870003539,-1667411776,-268425896,1961885757,-268388338,1486658896,1961885733,-1958526207,1016945603,-955419391,1829901318,-1945769034,583872,-1241070034,-887160390,-1899416826,8568769,172838,-1426062663,-503134333,80184314,113738667,-1426062151,-503134333,80184314,-1426061639,-503134333,147293178,-1426059591,-503134333,-1012717830,1405290240,-1064546298,-1866528994,-1440838912,1030410,-2096969853,91553787,1964849958,-253580543,-1944966466,1552699228,1499237460,-1939972980,-1946124132,817783644,-1438743795,158662410,178917003,1963215931,71600387]},{"sector":16,"data":[-1017444520,-1900006650,113714880,277479424,-1207926593,45682906,-947672320,-2080710142,-2085944121,79234759,-947672320,-2080710142,112788679,-947672320,-2080710142,247007431,-947672320,653976066,12322503,-970583866,-369049594,-1056520410,638636032,8390343,-953806700,-1644133370,113714704,279445652,-1744386266,638628352,10225351,-1022947140,278139018,279449758,280760498,282071238,1354651216,-1869563716,771754169,-2085929845,-136183098,12802142,0,0,0,1,0,0,0,-1,213495,-65535,65535,0,13369344,0,0,8388608,0,0,0,0,0,231112708,1431178700,538976332,8224,0,0,0,0,0,0,0,0,0,16776960,0,0,131071,17578,17582,17582,17578,17578,17578,17578,17578,17582,17578,17578,17578,17582,17578,17578,-1,5]},{"sector":17,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12035,538976257,538976288,538976288,538976288,202181664,202181645,-1879048179,16711680,0,0,128,0,0,0,0,0,0,0,-1879048192]}],[{"sector":1,"data":[0,65535,1,0,0,0,0,0,0,0,0,0,0,0,0,0,917504,5,0,0,956,1,0,0,36864,65280]},{"sector":2,"data":[0,0,0,0,0,0,0,0,0,0,0,36864,0,0,0,0,0,0,0,0,0,0,-65536]},{"sector":3,"data":[]},{"sector":4,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-65536,-2147450880,-1908324966,1166053185,1229538629,-1869640119,-1722838382,1498764623,-1667523943,1100979869,-1521135799,-1465407835,-1398035799,-1330663763,-1263291727,-1195919691,-1128547655,-1061175619,-993803583,-926431547,-859059511,-791687475,-724315439,-656943403,-589571367,-522199331,-454827295,-387455259,-320083223,-252711187,-185339151,-117967115,-50595079,-2130706691,1167753216,-1891529151,1162167680,-1907799735,-1835888497,1431279951,-1701226155,-1633837925]},{"sector":5,"data":[1330200991,-1499093675,-1431721817,-1364349781,-1296977745,-1229605709,-1162233673,-1094861637,-1027489601,-960117565,-892745529,-825373493,-758001457,-690629421,-623257385,-555885349,-488513313,-421141277,-353769241,-286397205,-219025169,-151653133,-84281097,-16909061,16783103,65280,772669984,1532768034,1014774365,993864510,44,0,0,0,0,0,65536,67305985,134678021,202050057,269422093,336794129,404166165,471538201,538910237,606282273,673654309,741026345,808398381,875770417,943142453,1010514489,1077886525,1145258561,1212630597,1280002633,1347374669,1414746705,1482118741,1549490777,1616862813,1145258561,1212630597,1280002633,1347374669,1414746705,1482118741,2088458841,1132428925,1094796629,1162035521,1229538629,1161904457,1330594113,1498764623,606360911,1092887588,1314213705,1067951694,-1398035799,-1339940319,-1263291727,-1195919691,-1128547655,-1061175619,-993803583,-926431547,-859059511,-791687475,-724315439,-656943403,-589571367,-522199331,-454827437,-387455259,-320083223,-252711187,-185339151,-117967115,-50595079,16776957,0,0,0,0,1937783808,-2144548095,-1346677986,-685830646,13311835,0,0,327680,-1513576760,-1513577016,505355295,522133023,522067742,38,4650,1354498050,1354498048]},{"sector":6,"data":[0,0,0,0,0,0,225181696,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-256,255,255,0,1330511872,1296125472,538976325,-2128216032,16778063,203,0,0,16777216,50267143,50463496,67240712,83952641,117375747,117507079,134546695,151323649,168100871,184878087,201392905,218170375,251724809,268567304,285344515,302121741,1342309128,537002764,553779722,1409417738,1459553281,1375798019,838992897,1426260745,1459815180,1392575241,604046349,637862913,654377985,1510016001,-16645107,335544319,335677195,352388356,385812229,385942788,402785291,419497220,436338949,453117707,469894155,486803202,520029189,536806405,553583629,553779722,570556938,838993675,587399945,604046343,-16448511,335480077,387323156,454695192,522067228,2236191]},{"sector":7,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,196608,0,0,0,4084,34,3276802,262144,505,50331910,65536,4032,8978466,65536,140,2,327680,99223020,54395681,9175829,1547330304,1634625911,858665010,16791096,0,537327158,209059587,1479999286,-2144809725,204862,-1598277771,10,-1845784576,1086259200,1089142784,1121452032,1130299392,-1587281920,1152385024,1086717952,1086652416,0,65732608,771809512,274870015,-689437717,788475392,65736806,771804392,275394303,-1024982037,788475392,65736814,771799272,275918591,-1360526357,788475392,65736822,771794152,276442879,-1696070677,788475392,13570174,0,0,771751936,282789519,-586772690,-400306928,-13762439,772856622,283051663,-519663826,-400241392,-13762459,-854532306,6023208,4188363,113651450,-1912601823,-68711472,-1030859234,-1014244722,2615499,52498174,92673678,92546699,1183378571,99787008,-1593473885,-2036136464,1499158533]},{"sector":8,"data":[1566531162,1406076703,772191312,291708671,12802904,-2147483648,-1879048192,-1660944640,1448150558,918892119,-1003613849,-1190040770,-201588732,1594324135,520575326,1347666845,-1557213044,-1993469818,-1945073626,-1127182648,95684512,1662975790,1958742801,-2036257265,785419792,277358219,-873768104,281874356,108267324,45147186,95686861,281919538,236107966,1017969695,-1274448860,506638,-219475763,1895689211,100663296,570425344,512,67121664,-117440512,67073,16973824,-1073741824,1879056911,16780288,0,-1957625856,-503312370,13326846,0,0,0,0,1130102784,1414419791,1395546450,21337,0,0,0,0,0,0,0,0,0,0,0,0,28639232,-1392377850,67108874,2863,766213,199296512,-486080512,16777228,65574,437,36,771763200,973090048,131072,3317,44,0,0,843123213,1632116784,1635214450,1159751026,1919906418,908331533,87439045,-402164539,-986279792,-989514186,1374160756,700077830,-476387326,1364789087,1947876524,-1943083003,772111902,92020361,-611398772,47122174,911261747,637725345,1479492923,-544530682,-796147661,504291304,909559094,246409221,-2034968693,155093814,13104899,-400984960,-91547833,276086794,57934652,1607461663,910083126,77719813]},{"sector":9,"data":[-1392866465,141829180,246679475,-202698547,10485483,806735268,34736556,-928496659,806686064,-16645610,201919768,134679564,-15329537,34737426,-844617985,-1007935488,2655598,177041105,403734577,-702053157,-1063332840,1062650526,402719197,-765951277,14507522,-786902942,-579091471,-576987765,-574890581,-606221328,249424861,1312570423,1196687181,15934,813643346,168636464,1354244141,543908847,1714461039,2006282092,251879495,-518704158,-580542423,1684022119,-2144045463,2036032032,14685216,971116297,-645996267,1869505841,-244816011,1373765188,1769369189,1768845170,1194362221,-1055785888,-1872756481,1387081181,-495816091,1107427408,355656207,-773839903,1866554688,-1324048343,23087016,1379000847,-1555008542,-2116651805,1902592090,-27]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[1334761,5240,3767,3445,4485,0,0,0,0,0,0,0,0,1692990208,772677120,17051391,5892347,-13758946,-83818450,503336680,788475406,-386203380,236847171,271515438,3794945,-13758946,-402582482,236847151,405733166,2484225,-13758946,-402580434,236847131,539950894,1173505,-13758946,-402578386,236847111,674168622,-2144429055,78910,216533108,-402427136,-1013120998,79338,-1269804288,520039943,-1073020624,41245528,-1007107079,95703123,807337774,1958742785,-1017423869,567148267,-1139339526,251331902,-1607558113,-2136472256,2133067636,740228910,645934593,-1652619968,50291433,83951616,147714,34341376,0,0,35521024,50473987,554,0,0,0,16777216,131589,37224704,73990688,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19660800,0,0,65536,16842752,0,-65536]},{"sector":13,"data":[0,0,0,0,0,0,0,256,521012766,516822667,-1960918367,-1960919522,1344193550,-611561133,512476046,1253311679,1048584653,1963000491,1379828531,745799682,-1275067205,1914817864,868257315,519451647,38936206,-2097143367,-201584447,-1047781468,38930062,567101876,38932105,-1268950183,1914817864,71672677,-1912591197,-577888576,-24381901,530904060,513556096,-1912179456,-850807611,-1710832095,-1106902782,12526368,-1731872512,-1258291269,992070984,-1272220966,1914817864,-1023193051,-1734098389,1489014274,55505155,-201502727,-1064371036,567101876,52233926,-383842560,266993045,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1862475776,-2147483645,1543503872,1811939328,-1828716544,1,-631492864,1795162113,1]},{"sector":14,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1230127360,89020742,1919902273,539756404,1920230738,539756665,1869506377,738616690,1767982624,138346860,1684104562,6778473,1769109256,1735289204,622857728,1919164465,543520361,168636965,824516623,1986356256,543515497,168636965,1701597222,543519585,1702063721,1981838450,1836412015,824516709,1919251232,543973737,623718949,621415731,1701603654,1819042080,1952539503,544108393,1818386804,1633820773,1679830116,1702259058,221324576,1850283274,1768710518,1329799268,1312902477,1329802820,554306893,1702063689,1679848562,543912809,1752459639,540091680,1679847017,1702259058,221390112,1917853962,544437093,544829025,544826731,1663070068,1769238127,543520110,539893806,470420782,1700006413,1852403058,543519841,1668571490,1869226088,1495801954,1059671599,1851867923,544501614,1667594341,543519861,168636709,1920091411,1763734127,1480925294,1768300613,168650092,1869762594,1835102823,1869575200,1734959648,544175136,544500070,1830841961,1919905125,369757561,1867385357,1701996064,1768300645,1746953580,1818521185,1109029733,1126196321,1634561391,1864393838,1768300658,1847616876,224750945,1665207818,1936942435,1852138528,543450473,1292504345,1919905125,1818304633,1633906540,1852795252,1920099616]},{"sector":15,"data":[220623471,1851867914,544501614,1684107116,1297040160,1145979213,2037588012,1835365491,1818322976,224683380,168632586,1852727619,1931506799,1953653108,1297040160,1145979213,2019893292,1852404841,772410727,1867778573,1701585008,543974774,1668248176,544437093,1919902305,744777076,1851876128,544501614,1953394531,1702194793,218237453,17599498,17446912,17599488,0,100608,1918309120,543519849,1953460848,544498533,1869771365,1850281074,1768710518,1853169764,1309242473,1914729583,2036621669,1986939158,1684630625,1986356256,543515497,1970365810,175403877,1635017028,1920099616,1226928751,1818326638,1679844457,1667855973,1701978213,1936029041,1634738292,1701667186,1936876916,1701139210,1919230059,309489522,1635151433,543451500,1768187245,2037653601,1393583472,1869898597,1869488242,1868963956,442789493,1852404304,544367988,544503151,1881171567,1919250529,1920099616,1460761199,1702127986,1969317408,1696625772,1919906418,1634030096,1634082916,544500853,1869771365,1699155826,1634887022,1634082924,1920298089,1750274405,1852404321,1769349223,1952541807,242118505,1801678668,1869182496,1769234796,1226010223,1818326638,1679844457,543912809,1851877475,1175414119,1965048387,1635148142,1650551913,1394173292,1702130553,1701978221,1920298867,1696621923,1969318008,1684370547,1685013266,1634738277,1830839655,1634562921,208167796,544503119,1763731055,1953853550,1936607511]},{"sector":16,"data":[1768318581,1852139875,1768169588,1931504499,1701011824,128255889,129763250,131991507,134940672,137299998,140249162,142411885,144574607,146933938,149883100,1410533628,1830842223,544829025,1634886000,1702126957,1377465202,1769304421,543450482,1634886000,1702126957,1768759410,1852404595,1850281575,1768710518,2004033636,1751348329,1986939151,1684630625,2036689696,1685221239,1344544769,1835102817,1919251557,1818326560,1847616885,1763734639,1818304622,1702326124,1634869348,459630446,1634885968,1702126957,1635131506,543520108,544501614,1869376609,459564407,1634885968,1702126957,1635131506,543520108,544501614,1869376609,476341623,1634885968,1702126957,1868963954,1952542066,1953459744,1919902496,1952671090,1986939153,1684630625,1918988320,1952804193,1226666597,1818326638,1881171049,1835102817,1919251557,1836016416,1634625890,1852795252,156371262,159123821,160303500,164563379,168298987,1225787930,1818326638,1713398889,1952673397,242118505,1701603654,1953459744,1970234912,1343120494,543716449,544501614,1853189990,1867780964,1634541679,1864399214,544105840,1701603686,1665207923,1936942435,1852138528,543450473,1986939150,1684630625,1851877408,526740580,1869440333,1663072626,1920233071,1646292079,1801678700,1701060723,1869771891,325346681,1970499145,1667851878,1953391977,1835363616,477721199,1635151433,543451500,1869440365,1646295410,1801678700,1684300064,1936942450]},{"sector":17,"data":[1986939155,1684630625,1986938144,1852797545,1953391981,1986939150,1684630625,1919903264,443834733,1635151433,543451500,1668183398,1852795252,1918988320,1952804193,1225552485,1818326638,1679844457,459371617,1635151433,543451500,1986622052,1886593125,1718182757,1952539497,594440041,1702130753,544501869,1914728308,1987013989,1969430629,1852142194,1768169588,1952671090,259617391,544501582,1701667187,1986356256,224748393,1830842190,543519343,1701603686,1766198131,1696621932,1953720696,1631787891,1953459822,1801547040,1768169573,1952671090,544830063,1920233061,1631981177,1864395881,1313415278,875700308,1869566997,1851878688,1701978233,1701996900,1869182051,1142256494,1768714357,1702125923,1684369952,1667592809,1852795252,1986939152,1684630625,1935765536,1919907699,1850282340,1768710518,1634738276,1701667186,309486964,2004116814,543912559,1635017060,1969317408,1176597612,1952673397,544108393,544501614,1886418291,1702130287,2036473956,1952804384,1802661751,1902465575,1701996917,2037588068,1835365491,1836016416,1701736304,1847620718,1763734639,1635021678,1684368492,174000718,175966830,178260625,181340847,184552163,186845972,2878,191302475,194710411,128255889,129763250,131991507,134940672,137299998,140249162,142411885,144574607,146933938,149883100,2300]}],[{"sector":1,"data":[0,0,0,0,0,0,0,0,0,0,195624960,196411392,199232465,202116086,204409885,207883330,1007075003,-1155828734,138151556,1891308660,1946893318,114932493,108266812,-1106879301,-745864647,-351900184,-1261080055,-1558065843,2045313699,116793089,1946223389,486995469,74711555,248375583,116838175,1946419997,33325074,-58658190,535656204,-116996989,-2147482934,67312910,-1398712069,1975520002,229920774,-145219123,-16625146,189953279,-397511232,-1595407731,-1975487741,1392682510,38930062,637542591,335499,1946221443,-1014102520,567101876,243934727,-1960443903,-1275067618,-1994273463,-16625122,1963111694,243817423,113640102,-402652386,1810367939,-1950338302,45196008,-402476382,104398876,108266156,44828359,645988351,955974429,1963106822,21358851,860933113,503744192,1958742531,-1506881532,-1161603070,-2081945880,-1421967355,276037634,44842627,-1173785344,1877477122,-18089211,-402183750,1048577382,1962934955,38248727,-1593829725,178455113,38510848,-1207956317,567102464,44828359,109969408,1236534373,512434637,1353974341,-1549721139,-1572962302,41222146,113688627,-16711006,520241454,1090948952,1124503298,46433026,-661780706,-1191149377,-1510801344,567103924,1159629094,105952258,-841249761,-1408841951,-973045502,16949766,-2095112674,1048576708,1962934946,8513795,-1258291269]},{"sector":2,"data":[-400437944,537198602,1943550720,-12850933,-1315384136,-1008151804,567101620,113700722,-1560280414,2425957,268436976,378212978,-754776987,142004283,-92155861,57872384,-1559992927,1705051223,-1982332156,-402481634,-668205122,43523643,-977722508,856127384,-50426890,-242546965,-33649842,-1014102498,43523726,133997811,-1742829281,-1898411006,87997648,855671784,-18195,44959367,1962934077,-852577276,-1405189343,58064642,-385954839,372965763,376701600,38864582,19326977,989950696,1946329110,23193605,113701611,-1107295663,1975452755,-1744400755,1740241922,-204592380,43950500,-16776541,520263214,-402471805,1355481089,-1193768109,567100424,-1073019789,19203563,1540421376,-2095070376,31982276,921225984,-1948568831,-1962760178,973084694,-1274514230,-2011050690,1124079630,141880890,567099060,1650312,-1190870141,1051983887,-498916915,-885096199,242614018,-1950939208,-855455458,-888748497,1405288450,-1273100720,-1910387375,874431963,117934848,1336092166,446703106,-1981773312,1476861703,535348059,-16652032,-1269804258,-1591620271,-611450289,3415749,1532495753,-440745185,-38344443,-402481760,-227147955,98957953,-440793483,53012485,37240448,-1274448640,69324057,37265985,-1106904134,266863154,102611459,-402454040,-1195180031,567086087,-854851400,-1169833183,12059220,1931595069,277776,-1480980875,-44111610,-335567384,-1160213531,-919395552,-851312456]},{"sector":3,"data":[-1190104543,-1910597691,-1174235106,1068761344,-1675681331,-851528624,1922914337,1958820612,98941624,-335580696,512630449,12452504,-2017281791,870961660,-805065262,-503262589,-1161617416,582484351,169249061,203328512,-1172189952,-1057095349,1455038925,-842990079,-2095070431,350814916,104839934,-1207802392,567086081,973273320,1946502662,1158035975,-102337275,110043075,117114174,1364676950,-1912136112,71601117,774277158,34389762,-2097149767,-201585978,1599690916,-1561846010,484987646,646470146,1090781861,-167639646,175407300,36570870,-385649280,1740505590,29685253,1891500916,1732151557,1428030980,1397838422,567105972,1582979419,1049173853,109838908,839320126,-2080863260,57873391,-973075265,147462,1947271043,301957893,113640821,-1996422592,-2097001154,1115034879,12122251,1009765637,1395291647,28893067,1529859333,1084366706,520494594,-4597877,-54512897,1170648818,162800895,1170612685,-350289665,1074185749,1049296898,1049166951,-947715507,-386234605,1048576387,1946157632,22931461,-163171861,-2147340794,-2001072268,121014533,33996290,-352237080,91863578,33568393,-402522178,1048576314,1946157649,-36116474,-2080518167,251809086,508632693,1010222343,515856130,1095938,1604645884,-1168564474,364774808,17360898,-402307142,116785410,1947206309,88979974,-167709208,537044230,1438254708,15263749,44369654,-1173982200,-605551266,90552832,-167717400]},{"sector":4,"data":[-16601082,62129524,-1207915799,567086081,-402604312,11796825,44369654,973501472,1946501894,-154862039,268608774,104466036,443811138,104514814,343147841,116835582,1946682021,1141258758,-385649659,1709965145,52233974,-2145750015,174910,1270483060,7399431,1201798891,1483522,-850591816,-1694042591,91553538,43779782,504793601,-88676349,225759754,44842627,-955878400,-16602106,1295942655,125042690,38616707,-971868926,176646,44842627,-955878400,-16602106,-1950053633,-54466345,-1912119719,-821740002,-1106919494,132645423,-352145408,125483752,1364414550,-1948349614,-919360270,65259658,1509956072,1582848857,-628665661,-787223677,346000355,-388331767,-1017446442,1965374636,-2146137583,-92261910,-402164983,1229324301,-796260629,567083700,1405346530,-167530415,-1965554718,23038727,661965054,729073918,79234955,-775892736,-775892544,254038208,960245764,117703286,45404298,-497540659,-1978274844,-855460841,-1978799327,1959922199,-855460857,-202685663,1354980185,-854453320,-1018936273,305020191,4008564,1344042069,-1957669552,138841068,-1593555319,1183384763,79274248,1476806281,1489706845,17088030,300662835,1963049718,-628403444,-472776910,125681604,533667675,1381061456,-1157161386,-8323061,57936440,989878971,1213887192,-133963567,79511099,1421756274,113154,-1205862213,567110656,-661962894,-164374645,16837249,12110131,1914817858]},{"sector":5,"data":[74037786,-1275051847,1914817855,1979058958,378226186,-771029911,-1661347211,567099060,-335901795,1032529416,24510219,1499094777,-887138213,-930420598,-849870664,-791114975,-2132705079,176153472,1476507865,-578149939,-13440048,-849869896,52001,0,-1274724676,-842822576,-852446175,343329,1757024628,-27465697,958840972,1946162694,-1172255234,78717743,-930288941,-861683197,120711198,-1207401496,802010880,443809852,-843644232,-49873,112726133,-1993355849,855820574,-1224230693,1052717005,-1119975159,141092868,-850067272,1975520047,914957836,-1943657716,-350024162,113649158,100737808,-1335512033,-17916,-1174405189,-1128333307,505531650,-849149768,534481953,46478985,46603913,-1560275295,178324039,38380288,-1560277855,1773666891,-754667243,63540456,73769921,99614757,57872384,-1559992927,44106839,1562283008,1629391876,1428065284,-1893823484,43950855,589347664,-1731869823,-1324366973,-1259613436,1478610250,515901127,113705041,1056446,-1315384134,-1981099260,723439126,43557826,184560801,-33131328,-350315514,121169923,-1912322653,-853953344,-1564410335,1553990301,1958742528,-1573211095,1074004637,-1673625347,326434846,-1088485858,-1648492385,9484544,639608051,-67105117,-1558286941,2062032510,521015034,8437255,855542700,-956824604,-919401211,526651017,-1960913217,857695246,1714850258,-903938273,1678674206,-49889,4028532,1446867968]},{"sector":6,"data":[212304,-24434059,526792331,544536379,-1157219668,1022719006,988902409,1963219206,233352207,-1140442619,1510307102,10545498,-796172712,-402352408,-1528038249,526204545,829693709,526204545,1047797505,526204545,1668554521,526204545,1953767230,526204545,2104762149,526204545,57941834,-385831191,-1293352813,-1338081279,108396290,-385875528,113704829,-369163600,1048641366,1946157739,112646,-16815895,-956126458,2130856198,1260293121,-1891729406,91619102,512689862,-13833984,-2147389207,2020158,28837492,-12850944,517146366,512689862,-15668991,44840585,44762822,-1895381504,1189675294,-767655935,108265502,-385875528,117374737,1606360786,-2095215841,78712771,512355283,-605479234,-784432898,108331294,-385875528,113704685,-385802543,183107270,-984211967,-1960878282,1023588566,1618092493,12114059,-165556924,108363970,567099060,-164475157,-1207711104,567100417,-745804174,289308710,712245539,244049,1052039987,-498916915,-1260745735,-1272853179,-1272853179,-1272853179,1495387454,-31056034,-383577850,526319202,-402652742,1223164743,-27989509,306085926,-361496285,302448166,1168193059,1048589828,906043036,513541830,-402164480,-1556740846,-1064434619,-1396100266,1962949697,-1147128070,76041758,966494,976636332,1948171014,48474629,240251627,1606295071,964894,-12219866,73008698,1229324917,247112947,-1205926400,567098624,-1961987553,-851528488]},{"sector":7,"data":[526276897,-672594162,536525565,1027056616,57999425,-400546886,1606351546,966430,-218100039,-1898255452,-2147203834,174910,-1274663308,-1898214320,-1088303677,2142765066,-661869823,21739691,-1411871573,-1425975624,-1934894964,-1174399458,783810880,119655717,-1560275295,512492103,413204502,44606208,71900812,72162956,72425100,-1107143489,1048576014,-1946149220,-1910569256,236418240,514047519,1172854534,116886274,1929862943,966149,-1993990386,-2147339458,1966735740,109258246,-1409154509,1975519914,1049175802,-14286188,637703182,43853450,641778816,37234312,-402486296,521012009,-2128404290,-1191116602,-771979326,-1378733079,-763113469,-1980177920,-2147311594,2002750,79367285,-850873344,-1560055263,512426578,512296005,113712834,7876,-164373618,-4456821,512308751,-472834368,-472783919,-1992891439,1260306462,1877529139,521018881,516165121,33129247,-651490956,-347995277,250080002,1959922463,528529926,-1577485848,78716606,104587475,108469956,85902497,-388825073,-2095137117,152126,-672595083,38969600,44435142,-1257847037,-1912602366,-1325452352,28355072,-1430244438,-1414878293,-18261,-218101063,1832812715,242548766,567089588,515704322,-1575064158,1841176190,571678,-1163614733,12066413,1914817853,-1260877047,-383660738,-397410165,-1700593449,520050718,1094524568,-1170836480,12066518,1914817848,1392214819,549399925,511622656,-218101575]},{"sector":8,"data":[2126161061,1023457310,141697485,1052039307,1307255245,513285887,1962950973,114932230,-1896304152,-1274916346,-954086071,152070,-1509505536,113705218,693,-1557163336,548937360,-754667229,63540456,512926657,512761599,44842627,-1173981952,1944592283,521019128,-1950939208,-855455458,1048583983,1946231568,505284141,17088263,236883494,915088931,196682508,-773730048,-1527513887,-25329370,108195840,872859174,119472385,-1377303573,-411506431,1101842739,-92946422,43557315,43662976,1393652737,548981644,-773271261,-773271064,1539507176,-628665661,-1948004021,-2029373281,-134682406,82363226,-349343232,686357568,1158057472,1375679236,-391358634,642187324,1979663674,1609818626,208951646,2287697,1031808601,-102730496,-1962467645,216553470,1459940096,1493175272,-108529365,515416259,-1070464277,-234815303,-2143501394,-2144595854,516248350,-1014824259,526112514,104468203,141696697,515507770,539755127,113542083,-940405930,218104132,508809054,1465012230,-661731188,1048625294,1946157739,800589372,-1994273483,-1945847522,117750534,588267136,504787968,-2097041222,-661909270,-1193767360,567092527,-1289843681,-784433151,376766750,-1995620161,-352010946,-784433139,108331294,-402652486,1516240655,1528760152,8502979,857659071,-3001399,1025427998,712310783,1946157117,-2114917630,1478450494,-2130021345,1042242878,-351046625,585285342,1958742957,-388986105,-185862442]},{"sector":9,"data":[516104397,-661731188,79498891,222361985,-1048377739,-253656305,1048625203,1963008784,-1202629864,567096070,100368473,-1070391694,1527834240,448267125,-2084044024,-372174911,-372119087,243919313,-1021377345,135968859,102688747,-661731188,-852293960,283541537,119410549,79511179,990724283,-348752645,135969598,-1191182401,801982978,-956301437,16856070,113650037,-1962933964,-1207649010,-939325414,-787496573,-773205527,-1981165079,-352010482,-2096844355,-410841145,-1106514960,448335168,-212337656,1122525092,-1021376768,1465255454,-1275065669,1914817864,868257324,-1178104833,-1426915168,-1648484586,48926,-1073042772,-1547765131,442142,-1073042772,-1064502667,520576607,59587,116411625,-678706292,-1107229505,119415542,-1392505927,-1951677949,-136139837,79676167,309505,-1945974909,-947672128,-1006968318,1124120582,-2143539251,280497525,-1993355965,-1946079202,117518854,195,0,0,1447380015,1313817391,0,1543503872,1296912195,776228417,5066563,1547304960,1330926913,1128618053,1413562926,973081856,1430342492,1480937300,1094856261,-15925164,0,20479,11705,1413566464,1124089160,1347636559,1547518789,1296912195,776228417,5066563,544891197,16707,0,0,1341849600,0,0,517537792,-285081600,119467806,520363768,521936656,524361525,16785231,1526726914,2056991,131072,526589787]},{"sector":10,"data":[5254913,131072,526589787,4599553,131072,526589787,4468481,32768,522723163,4534017,-1610546943,0,128,33554432,1662999296,1127153951,33554432,1662999296,1294926111,18259,1526727168,18834207,16175,0,0,0,1668172055,1701999215,1142977635,1981829967,1769173605,168652399,1953845018,543584032,1769369189,1835954034,544501349,1667330163,1577717093,168626701,1919117645,1718580079,693250164,760433952,676548420,1444948306,1769173605,891317871,221261870,538976266,538976288,538976288,1126703136,1886339881,1734963833,1293972584,1869767529,1952870259,1919894304,959520880,825045304,774977849,1395132941,1768121712,1684367718,1297040160,1145979213,1634038560,543712114,1701996900,1919906915,1633820793,906628452,1667592275,1701406313,1329799268,1312902477,1702043716,1751347809,1919509536,1869898597,1646295410,1629512801,1936024419,1701060723,1684367726,1396443661,1953653108,543236211,544695662,1953721961,1701015137,543584032,543516788,1143821133,1663062863,1634561391,1763730542,1919251566,1952805488,221147749,1175063818,1296912195,541347393,1919179611,979727977,1952542813,1528847720,1769366884,542991715,977612635,1852730990,1528847726,542986287,541273947,1769108595,542992238,1397567323,168648007,541592077,1919179552,979727977,1952542813,538976360,1701860128,1768319331,1948283749,1679844712]},{"sector":11,"data":[1667592809,2037542772,1852793632,1852399988,543649385,1296912195,776228417,541937475,1701603686,1292504366,1701060640,1701013878,538976288,538976288,1884495904,1718182757,544433513,543516788,1769366884,1948280163,1937055855,1868963941,1868767346,1851878765,1852383332,544503152,543452769,1886680431,221148277,538985738,1849312559,1852730990,538976288,538976288,1937007955,1701344288,1768843552,1818323316,1986946336,1852797545,1953391981,2053731104,1869881445,1852730912,1646292590,1936028793,1292504366,1345265696,538976288,538976288,538976288,1632444448,544433515,543516788,544695662,1835888483,543452769,1702129257,1701998706,544367988,1836213616,1852141153,1663574132,1948741217,1769497888,221129076,538988554,1931494191,1852404340,538976359,538976288,1920098627,544433513,544503151,543516788,1835888483,543452769,1667592307,1701406313,2036473956,1920234272,744975977,1684955424,1701344288,1953701998,779317359,541985293,1397567264,538976327,538976288,538976288,1701860128,1768319331,1948283749,544498024,543976545,1869771365,1701650546,1734439795,1646293861,1953701989,1684370031,544106784,1869440365,539916658,225800025,538982410,538976288,538976288,538976288,538976288,1684366702,544175136,1667592307,544826985,1998606383,543716457,1936287860,1769435936,778593140,542771725,551428247,561324327,571023803,581509722,121110528,3473783,2688069]},{"sector":12,"data":[69337763,125501870,133432002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,567086772,1998491182,-18291,44959367,1962934077,-852577276,520039969,-315388555,44842627,235238911,552462623,-87520004,1421660302,-1064371304,-1092036466,-351877553,512622736,-969503369,-2138352890,-704199114,-318013301,-952759948,25908230,-2145916147,174654,-971108236,174598,1505369870,-851725172,1048583969,1946157855,507412490,57999363,-970162456,172550,-661731188,-1739277744,-851967816,103503905,-1152152199,-470351856,1959922523,-18429,1979842621,-33544957,-1903322973,-158501090,16950790,535305844,-166104532,-16572922,116789877,1979646642,1376188171,1979711234,618129411]},{"sector":13,"data":[45549254,-1207515648,431226882,-1573510707,116821387,1962869534,752871683,44435190,-401116159,309472222,45221622,-150243841,-16625146,-401771009,116792343,1962869426,198568195,570869302,113639565,-973077811,183302,45156038,1376188160,1962934018,-1205991870,109975810,549388882,-1172369920,801999830,119537468,-400677516,-971046121,178950,38930167,326500351,45686411,1946221443,1377732874,-1190738174,234881026,-2091521249,175166,-4318092,-1405712385,-1948729598,-1431516877,1963801665,521030137,-1948840312,163066603,-1205744291,28466440,521019853,-1198828614,801982480,74760203,567085748,-1957491062,-1048318670,-1957446141,-208939329,601876644,1948743400,728754438,-402588951,192097973,918167310,1293609090,-151121431,43058950,1048833653,1946194885,171869151,-663486319,-1081354050,28872191,-1960719063,-2137979618,1966735743,-2145940965,-360652830,1962884161,138316556,4030609,-873920907,627304957,-1750989430,-1189039987,-230227959,705212590,-1912626495,1442873791,-393488194,-1404689554,1948479976,1947024394,2064005638,1324381581,-1431516877,-85979844,-152073393,-2146531119,1049320960,1049202956,915115406,-167014128,-175439243,-1207935809,567093505,-1953657694,-1986980034,-1953656770,194059062,-1962773002,7127029,-852950600,-1920097759,-1860026741,-1919795575,-1861468533,1042536439,1049203655,-6255212,-1760130419,1976699533,-372703739,-907467574,1998491173]},{"sector":14,"data":[1376188301,1962934018,-1157183995,1048772866,1962869420,-35067645,117255401,1347508054,-268388269,-2144943986,-33554882,1542981748,1583307096,12108551,868257472,1031874303,175417941,1023442949,-311234560,-1977163541,-13499811,-472783919,-2088778877,113213667,227157504,200094279,50623945,-1948718141,-1494006030,-117241996,-352073853,1060929764,1015022964,787445024,-1887828340,2017364270,-1679033969,-1258291269,-1272853176,1394724168,623032400,512634398,1807388023,-1943941875,532844250,-850021286,-1160081887,448004224,-1591336499,748880965,-628335872,378131203,-628359166,1121619530,71305,-75375986,41029632,78764851,-628300845,-477375858,-145702861,922693328,-13725830,-1903200202,1625869250,-1023315448,1946352259,66749194,904398196,773057280,-1920917761,1709709172,732555275,-1174228574,-102202832,-400617981,-269923592,521019131,-394120262,-1514517780,1256646786,520105704,-1910589205,-1107144162,1340604448,-1904296152,521053427,-2112678263,-2112813370,-2112636415,-1889204537,113675902,520192533,45634243,1377946979,-1302134344,-1205744383,567086088,-854851400,1661057057,1512164698,-1492728125,116785410,1979646620,-1694054880,-1910636286,-2147331554,574,-401902561,-1574566943,451447768,1105773345,-1948729345,512678028,922681938,922681352,-661782518,1007049960,1952078138,1376188209,1962934018,1967143992,-1492728313,770375682,1377734174,135694594,168724736,12066560]},{"sector":15,"data":[639749442,-1736636729,-919339009,115871723,58976257,38930167,-1468661761,58190019,513206337,-108852108,-1437502593,1090742504,-108983573,1148387456,1249125692,1963801770,-638615076,650611595,-393488478,15205193,-1489076217,125042690,44435190,235173121,-2135329761,16956222,1793590132,400680992,-658890994,549251211,-1021289240,57937212,-1442802456,250133483,1948597251,1947024559,1915759787,1997093945,-661940171,-1912151087,637686278,118257547,1979711107,-9574141,1377734174,1017923842,1091531789,8452481,-341179533,532689649,-383798549,508165967,-1912553641,-391499772,1017774781,638874893,16729542,1603141822,-1779949810,534147586,1023363561,-1327467227,1166550589,-1912553729,-397336818,106503428,-1962471905,57827319,520253416,-134281495,-16625146,-1023314433,1006793960,-1007651571,1996918278,109979277,1236534373,-1022942771,1996918278,-17523,567101620,-850873261,-1557767391,-2019359643,634424205,125112319,2474635,-1960610320,-268425790,1913651205,378218009,-754776987,242405435,-667169908,-668268430,268499841,-1591344013,-1557789595,2040726615,-1931965555,1405299656,-150990661,-771007517,-4717708,33570303,2425718,-1919376386,110019335,-2144957065,16955454,-353893516,-9902044,-1203863514,57934082,-402080792,-1608111873,19137190,650130256,38930167,343212031,38969638,-1203863514,141820162,650153478,117441441,1048585808,1946223288,19326979]},{"sector":16,"data":[-1207515610,-1614938110,-1223575412,1320431565,330946187,-400438016,-645192310,12567425,-754667183,1219777515,1918575053,-1023193052,-1946148859,-1731872053,-753941885,1003684842,990999235,1477277634,-1195340282,567101696,12314887,1386423896,-19077118,-14264230,100840710,1376161318,113649154,637534208,503317411,-1921573234,512409651,-2010774862,-167770338,141885379,-972901471,176646,369446,-1281114061,-1507948030,-2010767614,637534494,132806,144909824,178464256,213862400,-1176532224,-1410138102,-1527526773,-1182017346,468189194,1947024414,637985565,-1014808695,334015490,-1442352098,175377724,229700587,1239409578,-1070408469,257789354,-338492239,567102132,-2095118841,-16602050,113706613,-1047892,44474968,1526207977,602429528,285656830,330957186,319211394,-385873790,105914693,-1909566690,781022982,-1921573234,184701601,105018560,116834446,1963000486,-1492728315,-1977221118,-2013265634,637707806,335499,45293193,119441958,-1306621952,512435714,1236533251,-1996021299,637712670,45420287,1386463283,119495426,-1403993256,-2131132095,-117214720,178914795,1240495552,1405311055,116792913,1962869404,13756675,38930167,58064895,100714217,38930062,37650470,57933824,637574377,525955,377693697,117440522,-661731188,-1736630645,1979710339,-1736459712,-2024534389,-1867964789,567099316,-739761805,512630291,-796160649,536564712,-968478744,227268614]},{"sector":17,"data":[-1948711226,1998491136,-1955927155,-1994333240,865640206,2099153371,2139589272,507200408,57841823,-1979711557,1016626462,108360986,-1921579378,1376161318,1048585730,1962934274,117319190,512425986,-1082091361,1946851454,109061638,-1912406014,646805278,143056,-2144988556,16777790,229639540,-1338643705,820709130,-22091769,-1341991192,-1677265395,113704706,1946157724,-1948729593,350996787,44842627,-2096269840,177470,113706613,-64852,-1017423585,-2102674856,505396457,-1921573234,52379264,-402426880,-971037849,9275910,-1756297529,-2118254592,471132160,-713814724,-1514148213,-1962887803,1192069877,48969699,648810613,977741194,-2147126076,-1002823476,60813026,1193118713,-613048761,1947024556,467986596,-672607883,-152830181,-7501290,-342404858,-919382348,1947024556,466151559,-348060812,1950170355,1947024391,-169104344,1966947500,464054304,427035964,1957098335,1015041559,-1397197811,-1284240068,1964743144,-335564554,-11736774,462219436,-1070405003,-391369237,-92988542,-1198620998,567089664,50332347,-1198042850,1692963077,-1189639385,12058630,1914817870,-339725820,-151015422,-7501306,-789183884,57982986,-386563607,-829744322,8513921,8392232,8392330,-1948840312,-57943873,229680371,512630442,113675639,536806065,-369677847,179830652,1017961266,-386632691,208935694,-1014616020,-1023219722,-353647738,1998491166,-1557755251,-1070457086,-1754012870,-1813264130]}],[{"sector":1,"data":[-1921573234,184701601,-1023314496,-661733234,-1929376577,163119733,-2086276352,-344654019,96941451,1017970687,-2131004147,-613154756,-138201719,-16625146,-401967873,-1410794151,-118459366,1455684035,-1101967273,-1813476392,80118554,-1182017345,-1527578500,1583306841,1998491166,-1224292723,113639682,-2147417416,204606,-1394080908,-1899815135,-141723874,-16625146,868185343,512630482,378077778,378077192,113639434,520093698,-1074240536,196673629,-232738816,1090614702,-150214269,243869401,2062061182,1008497407,-400133062,171769045,1793591669,1007448831,-149523398,-16625146,-387418625,-1041760137,-1172369920,-2031517016,-11802595,1572859250,244000256,99323518,-56629167,398387289,975573876,1204581637,1372119881,1509723368,-351978970,639634446,41223482,539756523,1963276838,-790476882,654078184,-1904329085,1006927112,1016887072,-402164723,222100573,1458108789,109971196,-970587566,518,124935,512437955,-75263831,-1274777083,-970863298,170758,512630467,549061202,1023457280,477241805,530059,659083,-1448925665,-1193768048,567099904,2097596198,-1006633064,736680587,-1966044400,524299271,-1962490887,184727838,-1909033765,512435907,-75300859,101217280,1236583310,638001613,69258,52333350,-850807808,1377732897,-1257308414,-1999342334,-956127730,152070,247662336,-402190817,-1910111584,-2121435362,175166,-2096138753,177470,113707125,-64852]},{"sector":2,"data":[116789995,1946223270,1376188171,1962934018,415492099,-336392727,45326790,-1064380274,-1207579718,567089664,88424067,-16485376,-1962588410,990201630,2131052830,47322,-1960533272,394986319,67258358,931861621,1144531120,1091270143,1144535728,-2096925439,-903150911,88424067,-166300672,1963065927,89099013,860954603,1308670153,-346480179,1325447173,-4709939,-1207733505,1168310272,1975520005,-1086878829,-1527577269,88424067,-1106545408,1015023081,-1543277568,-1070401419,-137808982,-1076153391,512396248,915014980,118359627,-402653000,2005607451,76170761,1965374534,1966356500,-1101642224,-1431567029,-85934070,-346144433,1011460837,-153127667,243803857,-1910076457,-158501090,16950790,1048588148,1946223291,399239171,45811398,1461652992,1594833640,-12204506,1694942976,-1165240177,166233050,1170613825,-991359489,-1157183757,521011202,-386679319,736690504,-77207295,-1921579378,-1304526810,-344653822,524189734,57933827,857656040,16181458,624746354,-393487499,1975519916,15132884,-551170190,1313422815,179095413,-389909056,-1116602156,-1183504324,1946221696,704413712,1256784757,-16252930,-347732657,11986960,691904370,-385452800,-51773899,63605754,-293403273,942256131,-402164732,-361627496,-91492885,1023411398,24379433,8841287,-551167886,1329872351,179097717,-389319232,-965607308,1381061456,-397060521,-1779894470,17349376,-1675219224,45327142,-1644742168]},{"sector":3,"data":[1516199517,1918393177,-14285252,117617462,-1993978039,637880078,88686217,1142327334,113714693,-64187,-2010724981,117852966,-1308164570,1048782338,1979646636,113714695,-16776532,285656771,330957186,319211394,-385873790,994187797,2106836246,-1193637107,-2132242171,-1388868830,-1007041544,1998491166,-2089698675,44842625,108396288,44828359,-383778817,105912805,1996918318,-1281284467,1958742786,-1064434168,567101876,113714695,691,-1308178906,1476853762,11331779,-402599704,57868521,-402612759,-286785256,-804849920,1962936462,208070666,-1918947709,-401216766,2126122025,-853887858,6078241,-1187008441,-1426915317,1912686824,-1908505805,745865357,-402546456,-2115499719,-146181628,76468230,-402295808,1014104485,-1898969353,1198850056,193832865,-400919360,1005257427,-1920071945,225771521,-1920071945,410255362,-343716166,121497635,-973077832,25301254,-1551756358,283869715,-2096339480,310514494,113706613,164371,-1021767447,-1987058497,-1332816834,229681706,-771307606,855638414,-1920031808,-1567698781,113676161,-1576628520,-389837095,376570789,1023737320,242548735,-968976408,-8253178,-393981254,-1094500731,-471334783,-49916,-336002188,-1161562111,12097620,1914817848,33260311,112726644,-17563,-1962932807,-1737179181,91431373,-1737226554,116900608,560848,646120820,519999184,-1912586056,8691928,1975519775,840544258,-1547632924,213422284,113476]},{"sector":4,"data":[2142307253,-846152518,-1865637599,-963797085,26058246,-1898969353,91488257,-1919023418,-448888827,175454863,613409952,-1572852513,-389873572,125108738,-1920070013,-11080959,-963718090,-7414778,-971686680,9362438,1946710622,2117503809,-1590695025,-1072983831,1048589173,1946193788,-1911651577,636158605,973175936,-2119368331,1965960764,41713677,-2096663296,42831374,1556024299,688830464,-336059955,113506561,-852155464,2032044321,2064026776,515508120,623097882,-389865011,1052449639,509584,1912736488,-388789448,124978294,1946157885,1396239343,1526902760,230292363,-222285312,-544517202,1543493352,47260,774813776,-388723888,1482163274,-351243619,180938947,1946157629,1195270,-1007091340,-1902967050,-2145029104,781098046,-1665261964,-386167922,343278645,-1953588034,69986557,-1665267085,-1174566002,-1527578611,-1887322429,76202035,477413386,-922855866,-259268400,964987694,-16485869,-2029589552,-2016346147,-596353315,1376994243,-1542221549,-1961642221,-2080535565,-947715642,571649,-208990741,-964428405,164070153,-2147482695,110654526,1398089589,1964950814,1127189400,650130243,994510218,-687770683,-1406742389,24364347,-507364393,1566253034,-1507396669,-1946973245,281445373,-1190082685,-201523196,-1006852570,-41159797,-2095790461,79238343,653524224,650378406,638338954,621569674,-533065712,-670644541,113641102,-134181159,-804849725,1946158222,316401693,-1174002200]},{"sector":5,"data":[770212943,102557756,-1098012767,-1547727445,-391797363,917767553,6035082,-12770867,-149654273,-1545340959,378113900,1639616366,1006561410,-1023021592,-1898703221,1040448139,-617443630,-919396986,567103156,192028038,-1902967050,855929920,1326705609,244005552,1229557458,108579083,-218235125,-1195115346,65738026,102056376,-1898969353,91488288,-352314648,1926299414,2030472718,-1946209395,23718111,-402330632,133761318,2030472899,-52743283,1912631528,-387216626,225575030,1946058472,-1192039434,-336003054,652053255,-134150202,216826819,1342242744,716762251,716722176,535318574,-729067515,-1275064135,1914817870,-31659988,-1275064135,1914817871,-32446459,-941034773,1195272,2122322549,208994048,-74713717,-1073042772,-118815884,-998006791,650354196,20711306,-12843404,-1007155340,-350895229,113506798,-393963586,343019224,119473694,1052768139,-1073042288,117104810,-1874936289,113689351,-956366763,369122054,-1275046470,-803091183,-350326048,5618187,567087796,292741328,-1970368096,579786790,-651812156,1975794318,-1070349340,-1550999133,-1516008029,-2126610291,192151695,1929393896,136898566,-401216519,275971793,-402468120,-873987416,-402296066,-152370528,1946157629,1195272,-336002188,-1589738741,57933965,-133971992,109971139,-13398663,-1898961277,-9246497,552083826,-8263680,-1734275214,1036462989,242352151,-352317720,96872172,-804355073,133701774,-1903771965]},{"sector":6,"data":[-1179992014,-1527578613,-964449620,1185260810,1963992134,-1012554493,-1414807501,-2130262333,-1007157105,-372125813,28895697,-136260864,1946157767,-804910842,-150541426,-804904496,1455683726,-1898445114,74943232,-1409285702,829734922,41233724,1220521034,440711,460697330,-1048325641,-771641338,-670693152,550565518,-762390266,-652867358,-389158002,-336002169,-1017186303,864556479,202893513,1962934077,15640,-628419723,1946500992,6219783,-437581966,-352275224,1398195168,-1157335157,76189569,242597898,1124403142,1124140998,1124206534,-768462357,1958742700,1965898794,-1400851965,-1182314817,-1359871995,-638119307,168149379,1125091530,-1881605247,-689241485,51505243,-972690439,-128253945,1464976222,-1090369653,247040101,-1343030272,-2006454399,-57278674,-1017553130,369366532,369366532,369366532,369366532,369366532,378410493,371397573,-393314625,-1951726918,178957554,-1157990976,1001688702,1472405965,-1070399861,-218103879,1607595950,1455662835,-402360379,-1017244041,2030472710,-1593376883,-1492713587,-16484979,646818054,638666635,18044811,294494982,26060054,294497030,126725398,-1898345277,-2138212066,-1909587585,-146508583,76468230,-399281152,2126448482,-804849778,1946161294,-386430203,-1070464357,-50331719,642756338,1560247680,1555563636,113748736,-1904308379,-394011974,132659284,250865664,-1023263256,-1590819298,-661746311,-74727282,-1190606973,548405256,1101984765]},{"sector":7,"data":[-208940661,-66992509,116864684,1085136,971506548,111536130,-74715678,-1190410365,548405251,1957622781,-788315871,-399593406,-208992629,-66468221,116862636,1085136,166200180,108390402,520613346,116900860,560848,1021838708,-400954369,116850817,102096,1105724788,-402199807,-1779957705,-17504256,-804849725,1962936462,-804849881,1946158222,240117768,-352216600,-400510971,2078803499,-2091206138,-399009816,921174406,25225230,512630467,-208958087,-1090402685,146378159,-1527514112,-1180032848,-1527578621,531284018,-1898969353,108265488,-393367618,113705351,-1917874331,-394011974,-2084358316,9281854,1048581492,2113965469,-2081834488,-348700696,232777740,-1610536472,-1650291298,-1659961715,-1912159347,-1953662714,1190536939,141824012,-394007366,384513816,290884390,-1889462647,324438822,-1889331575,-394015558,-1960429824,-1073017018,-661960588,-1979703515,-1312584752,619238149,-1963947505,854184143,1354859501,1919220096,1693024259,243921542,378111018,-1960410068,283315534,-372119087,-372184623,-377034288,-2076897655,-393992774,-1962461520,116900829,560848,1189616501,9496589,-1550999135,1404735338,915597442,-393985606,2078815884,-1910586624,-158500578,1947208775,-396644347,736625923,206042878,-1341819888,83224669,721423545,-1341660214,82438176,-1021314078,-1898969353,276037634,-2048372397,86566912,-393980486,1532573237,1217449121,-1014128733,167795872,-1610254912]},{"sector":8,"data":[-1057059445,984891396,637123,-2112813370,-2112642302,-1996195957,-963680970,25302278,-1014885446,-1918955777,-1918943613,-402426110,-1077674074,146378151,-205508096,236897194,-397258721,1482296132,788475423,1094490233,1513883250,537657975,-24422461,-1073042180,-370669964,-169104641,-1514486945,901965954,-387251480,-1094513567,113705089,36238,864553663,-388877367,-12777443,1027503359,1752498176,-1733869951,477398909,-1456028330,24936600,-2146732742,1962934908,178181,686309355,-840212973,-1920057725,-1207405568,-152567807,-13243641,-343044602,213379256,-375320717,15760,1048582005,1962971004,-1908505843,57933965,-384038423,62397342,285656576,330957186,-2112642174,-1106285335,-2118188927,868823944,127658194,1962934333,918902318,-991389527,-768385518,1023903976,460652544,-1456028330,943370392,292880708,-2112813370,-2112636414,-2112682297,-346161142,7126888,-852950600,1956817953,-2118164849,121432200,787016053,-2111522292,309567092,1032907169,-1988820992,-1887682944,-385649664,1956708220,-2109556081,1946942440,-1172851668,567083100,108396348,1342322152,-397344848,-27784712,-1023314752,146776,87885940,-385649664,565903179,247458178,8502979,864549055,-388877367,3999469,1443984640,-1733740859,1578243816,-393742145,57935554,-401696535,116789305,1946324864,-2109556218,-1207006999,12282880,-1161219328,-457309951,1931595151,-400617965,113705398,-1880846491]},{"sector":9,"data":[-2112551226,241428737,12114059,-165556924,141852866,-1734146361,401342463,859964088,-842363950,-1734237407,-1734142327,859963576,-970863150,9917190,-1921442162,-2144415181,9917246,784531828,-1919414645,-1556184274,829751192,-1556184274,225706136,-1592907474,511913624,-352282461,238759452,276207777,-1592882386,778298264,-1734277433,99287040,-1592907474,-851463016,-385649887,-930349209,119425251,-1336869069,1487860250,15761,2105542261,175446783,239716395,385230343,-1152149677,1085538305,1918575053,1975597837,-8722173,1975597897,29082369,1140897792,-1024056883,-369986176,-1094514046,-423690111,868823943,96463058,1962934077,15685,-423687563,-388877433,913573270,504196329,12080902,170905015,-1205635904,802010882,1979711293,-1224296423,512634829,512331127,113640137,872350411,-1224230693,123678669,-890715361,161474815,-2132270928,-1090052607,-5242795,-1413467222,145795755,196691882,-213929984,-1904297302,567089844,-1275046470,1344392465,67132576,1967144000,-1920229371,1990344964,-1073063793,247072116,-1089213565,-678720081,-1181841730,-1527578613,-1163214798,-1202552036,512387328,-826671012,1512164752,-1914172558,-400510926,901382419,847440259,-973074968,25301254,-1551756358,-1007058413,1448235347,503731543,-617391692,119480781,1516134237,-1094493351,-1631649663,-389467256,28509381,1946157117,1036779018,57999359,1393326313,-402071320,-622329793,-620078328]},{"sector":10,"data":[112735348,-1977496269,1023314626,-1342015975,-1572797207,1673170804,840362116,-271448911,-271578766,2008681074,-1173820540,65766513,-393972550,-1628884484,-852446200,-466464735,1485795491,-466427770,-1165004125,-504790283,521018929,95414278,-2144991630,175439933,-1342150168,5630014,-1977206549,-1073068283,607924340,1156056436,653257472,-1152973430,-1073052294,-1014817676,106489859,125044538,1962950528,114551793,-16314793,123666775,520603883,-2081441085,-1338931223,-1341199555,-1341461733,-1341723842,-1341985988,119408252,-796241321,567083700,-1022927014,567089588,-387432188,-768424961,-1953595714,-1920229122,984891652,-1921212245,-1980266582,-1265670850,-1172189881,57902042,-394091846,-389861068,2126118926,1695975822,-2082817393,-1020189720,6035082,1074053770,108347452,-1920268798,-1102003970,1203015297,91431373,-1964433650,-1904296183,-1269246069,2090904378,851683981,-1968848960,1156075434,1012954125,1174631739,1017912299,-399215603,91489632,-341136214,92334321,-160154820,1963426280,222080241,540809588,154990452,331019124,319211394,-973078142,42078470,839573737,1911073472,71690244,-402325016,-1514273583,3976330,1659372916,871820037,-389829696,82314324,119793664,1031808707,-1173719808,118391656,1843994382,-2095118800,-141883921,-2130385944,1946222585,-1090056474,12226273,-2016335103,-1163594799,521044912,-1271904279,-855592934,1962884143,1141684271,-1258290757,-1166036733]},{"sector":11,"data":[567120060,-861860750,-1578071408,-796225334,29048555,1140897792,-1024056883,-167414656,91558082,-352300312,-854608852,1979923472,1946631178,-855591930,505080592,-1912586056,1242991576,-2076800512,-167108864,431358581,32032510,-822164736,-1269642498,-841272565,-1070376432,112511115,-617478217,263459021,45355213,281924147,-2055684413,852003500,-1408846611,567136394,516159970,8502791,864586943,-388877367,-12767363,1025275135,393543680,-1456028330,-1880834152,3975852,-1084294539,-672626548,-352160767,-1880835558,-851639624,-1961856479,1140898008,-1024056883,-1274251904,-1172189890,1441301358,1379986223,-1232866655,954749951,-1193899216,45694976,1528941824,853307994,63602934,-851181128,62477089,-1260702976,1126288702,-1269040670,-1272853179,-1272853179,-1272853179,-1910387394,512587550,-1560274783,1974993576,516640769,8502791,864527295,-388877367,-12779159,1029928191,1534394368,-1733706927,243863435,-1084649761,937985955,-1270319871,-855592940,1962884143,-2103657979,512440811,1723109087,567083696,37568627,-1273662208,-841272487,867617,-1615198859,-1172771966,334201984,-617391692,1094525389,-1174047488,65766016,-377326918,1723074757,567083440,-1897980279,-394096966,516107900,8502791,864551359,-388877367,-1514209055,-49782,4001396,-2143914752,110667070,434833780,783286452,1445587883,-1399281218,-1196802044,-1330958790,-346117632,918902284,-1431529303,-92995524]},{"sector":12,"data":[-2013151394,1946192360,140503299,-1081432642,1622445014,292757965,-939813400,-1517329146,352765578,1122566530,1694942984,-1165240689,-1561820198,770435076,512630467,1048612215,1946157739,-1405189366,309657346,-1193355799,95556142,46218891,46335630,-400609331,109970203,-1591308937,-1557790137,-1591345130,-1557790135,-1591345142,-1557790133,-1912209396,-1265793274,119655753,-1608102732,567083683,915001907,2129170141,1962884141,15625,-398458507,-1983709163,-393290442,-12833431,3999860,-402426880,-960299007,42078470,-964553798,329449476,146818,915082612,914984669,113676133,1174503957,16705731,1442952680,1577165800,-389873291,-1712848515,1407931905,-402604311,-126615152,-1403593933,259263804,-143311556,1015071742,-17795827,1592585159,108317694,-377312326,-397211827,-27590465,-389843761,-544538258,1442921704,113696647,-1107261613,79266959,1973940992,1392967172,1593543559,222080086,-1226308236,1593240321,-2024587648,-393251840,109970310,1421839735,870288130,-1650317632,76173314,1476478952,2088769653,309672449,1676149898,-2092880895,-1057094969,43885094,-1993981948,637678398,-1962788702,1340648699,1007121411,-1442614259,-1070402581,1392953002,642711687,43269769,1998491331,1159630477,-2131348732,-1787559876,-1399922241,1975519914,-2085569798,-400620002,-350278579,-2071740698,-2000813077,-400664956,393347116,-974588021,653756160,1962949760,1894272513,114174721,530903839]},{"sector":13,"data":[-2084650146,-1107039356,99124360,-369987072,-386137956,109969473,-1910076041,855917830,1465274879,9627820,-1387393164,992364359,292945477,-336731575,11069452,1161438791,-503155201,1499357151,-397297804,643367012,1962950016,516159948,1476299527,-352301080,1307072260,-114599680,-2134640249,-93057732,4647084,-1897395852,-1964463104,-387126528,-2098724766,1966947328,-2134981662,-1073042432,1340667764,-1022542846,-1921579378,1158057510,654258948,1946172800,452846,1035007467,-1070464277,-234815303,1444856750,512634448,918916471,1015218885,1477342208,1912879696,70927880,-347732106,-339725331,1086337795,-1021354408,343048252,1394507820,-1921573234,45948613,-687684733,183181147,108159292,41384508,1371742252,-1910634925,-1903331554,520373510,-1962913048,48989145,1064500027,-397192880,-2091130366,-75431229,57835520,-1323897863,1139528452,-888946292,-1944010365,1942502344,-850742037,-1912169439,-393382138,-1660427802,124999769,-2111129081,-1442509591,378662,1499137792,-1940912445,-1064417088,237862,-523041615,123259019,512630467,1048612215,520094378,1505423988,-851725172,-390057439,-1094514555,29294721,868823944,-50075438,1962934077,15638,1048596597,1963366565,-2013151471,-739716557,-398494212,317258045,-984169727,-392648394,-1084356593,-768374783,1979496936,104065061,-1887435018,-1273465598,1931595067,-137041700,1946157885,343306,-1545075340,-1174148352,703103822]},{"sector":14,"data":[1072218922,-1271303680,1931595065,-139400972,1946157885,343336,2145912180,-1172182272,448039589,1320427981,-855633735,-1978764767,-158680554,91492546,-343654726,-2091795965,-1020663832,-1090485826,-919369736,1458098739,15868,-1514202763,-984197238,-1399281354,1962949802,-121676038,-64690041,-1160481702,-1070366189,-873937927,1964864255,-851790824,-386763999,54392634,1024095232,91488261,-352319000,-2091599357,-1020686360,-2112813370,1695975681,352765583,330957186,-2112642174,-1940275261,1074053770,108347452,-1920268798,-1968520962,-1332904922,520530746,1203042187,-948821555,1388519182,511963834,1374166798,-1017503959,321708,-1018234252,-76275652,-143377092,-210490308,-277595332,-344716996,-1178400196,1017905160,-1442745312,1017968866,-1978502112,-1439780640,-1314208634,540847106,-492174476,-1430244616,-59398461,16743552,-169085324,1359851600,-1174762665,503775231,-961613305,117505861,-1889200503,-394011974,1170614496,74583551,-1017620129,109977358,666537335,1048585858,1946157854,157149190,-377260870,-1269824779,2066102319,1006924941,1006793775,-943499172,9496838,1544980992,-14817280,1994929010,-2147027452,745865871,567098292,401085299,212470,87891572,-1558612992,-1947627287,106817536,1572814768,768256,-1070421261,8645059,-1898695029,-12285362,-1861992832,-402295552,1685389208,-225718645,1961966418,-840389613,1174631676,-2115439637,-1947306497,-370455850,995816075]},{"sector":15,"data":[-1957268238,1005751246,-971868943,9503750,-56170324,-28905100,-342817786,783306986,1963017272,38025225,2088764532,1951924226,-12285421,561265212,-1861992832,-402164480,41287476,80135161,-851725312,-400526559,-375130770,-101315696,-402355517,1979318040,-2032454921,1001652572,-479059507,-402563960,-1991899737,-1668317642,-1898168704,-1089964801,45613148,-1658729175,868455363,-27989797,-1921317318,-880675979,-398032896,222101062,-398006412,1119878206,440711,158707442,-754974280,-338162720,-1160582188,-1427537297,16967937,-109789174,1946366952,-15824343,-1996442227,-24194034,-393155834,-4324407,-17779,-1202717761,802008577,-1912652160,-385649408,-1044447072,-1094110331,227184128,985588551,1972240142,-737244922,-1616448626,92993795,1200458146,1195842955,1195840907,-2133297762,9497406,2062025589,-1920032509,-1919678965,1946165285,-1996032474,125043853,-1815789949,-1961331454,47346,-1072976560,-1957688972,651880660,1492314968,-153631255,26052870,-1935667596,-1928983923,1979661453,-12064509,-167613720,42830086,803739253,-971934464,42078470,-947776582,58856198,14149888,521065471,1998491166,-1220640627,113639682,520094391,2011759476,-649532969,8503127,-1409253186,-315438966,-1921277906,-1359871940,904446815,-385649662,-969998593,9275910,-1760130514,378023565,-970027521,9402118,-1912620462,1524248808,-30537869,-342919418,-1935687936,771753414,-1888010624]},{"sector":16,"data":[-401509120,-1073018645,71108724,-385516288,1391189404,-1912434456,-1265793274,-1910387383,646805254,44173054,-1442396634,-1614938110,74039180,-67088199,1556063475,-1174959360,-1510801326,100952506,71678751,776667320,-1888024842,-385649409,-1047733702,1052561806,788475397,521047421,-394119494,-1276566084,-1899416618,-1098025210,-24409128,1965178028,-339345916,1963801847,-141864461,-97851220,-527822988,538983852,1153954421,-350215938,1965178091,1959656973,574401763,-838927499,222092011,-1957046667,-35083017,-2012384007,-2001975547,-1040300283,-303316482,276111932,208981502,-28899960,574401729,-838928779,1467301436,108332088,117319340,-202898740,1950104827,1963801604,218482189,-855193818,-385873662,-1084817230,-544537907,1303990534,222080000,-739763596,974484731,1955429126,1948400655,1950104595,1967012868,548425222,-1436423335,-118760478,1012198233,-1960610500,-73340706,74726972,192220476,-955447866,160244230,1466034944,-1953684801,118359775,-527782933,1954348160,2096922629,-2144977547,204350,-802814603,637707814,52299518,1023107560,1007186957,1006924924,102528380,45213983,984670342,-75243733,638022911,1979663672,-1070444799,-2007038038,-58702043,-33197043,-16651839,507412518,343146499,637780159,62799497,-393488194,-1431504106,-92992196,-1948840312,507412518,118358019,-1948729661,66780648,-1081158602,-919404415,222079660,-348060812,-2146531081,-692337920]},{"sector":17,"data":[-1912619381,-1191182406,802008576,-1581055940,915115730,113675988,-973041792,9403398,-1898695029,-1898836341,1306777227,1525175889,-1898535940,1507732315,-695481597,-1862007098,1228333824,-126687060,1179191412,-1862007042,568913899,-33262085,1016036358,-2147125953,42958862,91564604,-1887433088,-92477438,104466036,-998929029,-2034224562,222053892,76022389,-1898695031,-1898836343,8437443,1958742700,256247,-1396503236,1979338216,1966816260,516116214,1364414546,1998491182,507412621,225771523,45156086,-402229761,1323827209,1482381568,784539482,-1927135616,519533568,582622990,1023457421,567138443,-1962184161,-2030063400,413276231,521061120,1023459304,141819969,1950220160,-2110932474,788359401,-2112813370,-2112636415,-2112642258,-2130880279,183614,-2031549579,-868319232,1702100994,-1207775814,-850379518,1349671713,12114059,-165556924,1601536194,-1186856264,-779354113,521019853,-1187053384,1958346753,1914817935,1975597867,1950253079,512629391,930450807,-1186856520,-779354113,736829901,1998491182,1107343501,-779368141,468394445,-117439171,1709769589,47037183,1018480947,1528941904,1441334131,-1327985665,407340799,-1023403614,-53922992,-1073069652,-248776075,-42745000,1448170396,503731543,1504989776,1532568013,1031944634,74711105,-779369589,1599932191,-1654957730,-2692925,1364678347,865068223,1472302025,1946172588,-1404982779,229701611,521035690,-1898836343,-1898692983]}],[{"sector":1,"data":[-1017225383,512634398,1048808823,1946157740,-1405189882,535822082,503427267,-1921573234,520268450,777133763,-1921573234,-1274863430,-1172189887,1102316399,-396746291,113640079,520094495,-2102674749,251648744,-65279713,-10557284,1958367824,-3544957,-907534578,-1655154143,1962950973,-67114749,-1898793495,-24283362,100867846,508960343,-1128390906,-175708024,505377311,-1962467578,49866999,100860392,52476447,-851246920,-150506975,1962938561,526317825,343082847,646459060,646447904,-466484369,52504200,57681544,855843002,-849693495,-352160991,-1260876925,-1172189890,1521746799,57876941,-1946193431,-851528488,-35395551,62797451,44842627,-955877889,175110,-2144474128,-33380826,62797451,1954299052,1954298887,9365763,71374475,-851640136,-385649887,-661913806,1200029616,1614360,864803007,222068937,283706229,947695871,-2131266556,-227247044,1978182316,-1543146251,-185908927,1014238524,1954298945,1971076100,1170613991,642321919,-1948840312,-1103722162,1125550851,-919383804,-851705672,-1586341599,-5187445,-1575467130,377946137,378078273,233505859,-686913498,914968203,2062025662,-383840515,-2065116315,-1405189634,1978662914,-1408841978,-369099006,-1943088782,109934366,-1899459554,-388460864,1421484377,939571352,113713613,852097,-1948907834,-687421568,-401800821,1827143686,-888725760,-1090485826,-919369790,652792371,-49888,3999604,-347638528,145811488]},{"sector":2,"data":[243921542,378110657,-1313176893,539158658,1023471592,695533567,1962934333,-1324446939,-1288271208,-1273591144,-1185787496,-768409599,1008723176,1968790271,-852773879,1975519777,-1830239487,-2102478090,-350230552,8502979,864539839,-388877367,-12771395,1023898879,1316290560,750003179,-377085491,243921542,378110691,-558202139,532080770,1023467240,762642431,1962934333,-1188132311,-1173452136,-1154053480,-1139373416,-1185787496,-768409599,1008694504,1968790271,-852642807,1975519777,585679617,-2099528970,-350259224,1998491327,489062541,235470083,521011997,777002691,-1921573234,109494322,-1073085666,785384564,525861542,-852708157,118359585,-226039418,470714670,378089092,398099486,523430020,12108551,6076984,-225762867,378220205,2018018293,378220044,91522040,-82408658,-1228764285,536471807,-768177874,-2100446590,773783528,-2100164921,179568640,-1182017862,2028470274,857853439,-9312055,-1091204888,-1027634216,868823943,515631314,-1161219133,-840400148,-1173703650,45714390,-11671552,-919395891,-385923352,-658573987,-2016100469,-768358093,-1021407000,540847356,154991476,-1018235020,855637945,117345216,1476134686,123711218,549442039,-212773117,509565348,-141877498,-217878593,1354964900,1465012563,113679446,-956264599,-6894842,-1178586113,96404804,-945097839,-912897786,-955857005,-956301165,9684230,-1948729856,1998491166,-1304526707,1964965890,-1781940464,243985714]},{"sector":3,"data":[-1040282665,-910252813,-1773420651,914956467,-315386163,-1863907642,-188160000,1930502376,1961691913,1828881,113642731,-402485399,-629997551,-123927317,-107150613,1499094878,1405311067,1448563281,6744220,-1815789949,-1974502080,-987853833,-989397101,-1861896045,-956267800,1863,-2012917879,915079799,931763785,-1867827709,2005530411,-852063485,158828950,1049360267,-117205431,-1798766719,-114616963,-1331366916,1049209344,-123890103,28838635,-1207702784,-107151358,1499094878,1397801819,-157526191,477364679,-1765065085,-1961134849,-1198077154,417894661,124717312,-1815663095,149682589,-1550596703,-123889973,1482381663,-1014345533,-470414413,-1815936165,1381061571,-1672128682,-1861810442,-385649661,1541931203,-1764771327,-853933896,-236452319,-100234000,-63010410,-29455978,-2135226474,-1935688192,1912773864,-942240810,1872187142,28698754,1802813451,-1614813045,87460748,135170961,-1261556847,49906490,1681393010,-1610058751,1090817419,-1392120917,48858027,-796254196,-1604261248,-2085972224,175243769,104483244,510957312,-1957278143,1191229687,-24436275,-1761566626,1946172800,4030473,-347667596,70822648,1229324917,-1527577885,-167728919,76613382,1001855861,-1861740917,-1861937621,-1935687039,-1962886680,-318005272,1939736693,-373279757,-1614872434,-32601204,-63534186,922683030,638031610,771914880,-2144978059,1966735740,-1977200332,637896708,-2013182838,10486085,38111383,344598102]},{"sector":4,"data":[-2145334656,-141860630,-1207712125,567101184,66687464,-24424719,63341406,-836040871,-97059042,-1392762986,-259069782,-481750924,-2092325881,-277413383,-1761566689,-404615957,10506015,-12240233,-1096154764,-919365886,-1073042772,-980682123,1583308189,-1017423526,-399527856,125104912,10640560,-1564256105,-1017604352,1465012563,-471294890,-1773420545,-1761724789,-1761855863,-97059042,-919461994,1958742700,1959213588,-266409968,-1532361100,-320142927,-341128910,914956263,-662006018,-8273869,561288779,177668256,973436361,24444741,-1393390678,1975519914,-1773421830,-1756428601,283673451,1960512000,-336028412,1593416962,1532582495,1465012675,-1957520298,-1760575750,2105594419,141900289,-494922358,1089110239,-850984776,1282562593,-1207954503,567102976,113658226,-973039871,9896454,973096424,2123825414,-1761500653,-1080627778,230266626,-1527514112,175376444,-1207954503,567103232,27318899,-1153531753,309592464,-1567573088,183211777,-1756424565,-1206201368,1587347456,-1017554337,12080727,-1762803968,-67105351,913682162,-1106907261,-947157194,-1492617817,146277749,-1960580352,-2026193160,-1492617817,79168885,-1961628928,-2025931016,-1492617817,45614453,-1207702784,1048576000,1946259643,15627,-1147009420,571536,1354981214,1465012563,113679446,-1962831685,-1953430250,-2137978818,1081344061,235129483,-819228406,-64049087,165916402,-1866791226,-234835968,735021998,82543562,478137147]},{"sector":5,"data":[-225706357,-2136673284,26262334,-1437660555,-1431683152,-1442795350,49019037,1600059805,1482381658,1381061571,-1672128937,89375617,-338492239,-850919240,-1958448607,-1064433944,855983289,-1861894401,244032755,-1070361659,1234240958,-645192580,-1946383640,730924439,394864342,-1861707893,-1993943509,-1752497321,-701787890,156731686,-1962419733,-1660621883,-1660752903,1600019960,-1017423526,-1107293255,1017905245,-503155393,16352249,-222679179,428796034,-1962901314,2013579222,202029056,179118541,-387484444,485027882,-1023315198,-76283844,-392429252,1973284877,-1173113647,567083100,74760446,-1007767576,1390858728,1525589992,-2112668029,-955878126,42078982,-210245376,-1259857432,-1908688358,297017805,-855614278,1958805025,-1908621613,-1601303617,-391475844,-1092030483,-1904297233,2139150987,74776579,149446,-1889200503,-394011974,196745472,1695975822,-2082817393,-1172769816,-303529233,201439256,-1930944051,-1023315199,661913660,41156924,330611947,-846316614,1975582241,-430381034,1962935613,-278403061,-387564056,65738932,-1258331671,-1908688358,313795021,-855614278,1958805025,-8787709,1038495208,57933842,-387754263,921234924,-1662467089,-1911197184,1972205342,-1508999162,-2134703870,-33380826,-223352381,1946220928,8567305,-370184728,512683789,512396663,521011878,-1174281344,585859990,-1207934232,208810753,28444021,851648973,-1021194798,1962998144,-843042108,-1160082911,-1480686726]},{"sector":6,"data":[1977289347,-2086355453,-1378186414,283705270,96699161,-396740727,130488344,-389873664,28835871,1963618862,-1021195005,567134462,16351427,1421116277,-662036019,-343701318,8502973,1948269740,1946762491,1950170359,-2134946303,868823943,398190802,1962934077,15664,-930413452,1048586219,1979685030,702725,-1070392341,-1733949942,-2021605476,-1830235597,-49897,-123927435,-930412565,-2091402595,1460061177,333973262,-1980594688,-1987834354,-1165750250,-2048359426,-1022927081,-1265704513,-1742615254,-259304879,-268179759,-895365493,1476376194,1595430632,62517507,-1331367168,1499113984,852527811,1696839926,868426189,-1889033280,-1550805597,-1767731231,-1919245427,-1551002973,2124648619,-1919442289,-1567654494,-2136829984,-1880907121,-1567582302,-542994564,-1940282737,-1567582046,1000574346,-1868520560,-1567579485,-1465741251,-1868258416,-1567578461,-626880356,-1898208626,-1550784350,-1918726764,-1868651891,-1567581790,-1583116131,-1868913779,-1567781726,-576483364,-1874943089,-1550876253,-995913756,-1904303218,-1567736925,-1555525473,-1667067944,-1881431411,-1097892702,733151361,-1863907586,-1888942394,-1074973951,914985022,-1494708515,117349385,-940142433,-972721024,26254854,1946273782,281409327,-150178816,277713926,-2130414592,155189453,160272942,-141716434,1954538437,62430474,-387454976,-1645177623,-1309985934,-164728163,74809543,-1920137474,-1867800234,730873534,-1887322170,2124662531,2098104463,-1527561841]},{"sector":7,"data":[-1887420792,-1919809849,-346161152,-1640071040,343212432,-1920123264,-2146601727,43032382,1018824309,103934338,-1567580512,-523203188,-1750933296,-1920098160,192266250,-947776582,42078982,1007545088,-1173260798,113738259,98835,-2112813370,-267392766,1016036541,-1608485631,1090817419,1187396276,-2118188543,113748879,36242,33834694,18118,-2146923288,1963065726,943370262,1972339206,72253454,-1887191294,18118,-1962381080,1031799422,-1172998912,984646478,1979598136,4638376,72253442,139716614,-1450339167,343146512,567104692,1998491166,-1545325939,-1205927250,567094785,-2118193869,-1087655168,1525190718,29881864,772404597,-973632110,208994312,-1920188800,-972721152,76586246,-402405912,-1746337724,46983168,-1954396742,-1987206858,-393255114,132715800,-1942060858,1131741325,-2112813370,-2112636415,-2112682297,113704962,-1880846491,-2112551226,85584129,-2147252760,9276478,-1070396555,-1551001950,-1750954598,-1791587955,-1940275312,-393224259,915080797,-2134667295,9477694,-1712651659,915139891,733188245,-393199937,-294516799,1954596854,29882089,-1276580235,-633437953,125108622,-1898248506,-964498687,9362182,-1207935809,567093504,1962949760,-1880841962,1950022784,205565954,-1570755552,297009244,-1677656344,-1645627672,1357448052,-2034224385,177052678,-1190431552,-994115572,-1904296306,-1070422797,-1953458014,-1097866946,317230719,-1942060821,125108365,-1880946954,-1173785598]},{"sector":8,"data":[770212798,-355473388,-2147432472,9276478,-1008203147,-972721663,9278982,-1920188800,-401837056,116785905,1962905564,-401806590,1567948931,-1919482170,-2136478976,-7349186,915082612,914985109,113676253,872386524,-1791587347,-1087655024,-488075202,-2134379002,-940166540,-386894591,283705046,-1912619031,-852950856,-1899644127,-1953627970,-393223874,1048577293,1946193292,-1744386555,1625882768,-19666433,855720424,-1919507776,-1567778141,915115415,914984925,149459093,-385649664,585760346,-166546177,42984198,-469105803,448024771,-846299462,1555716129,169987328,-457260096,-1968849009,567107764,-1920334138,1811986432,855654587,16890569,41099725,-661973013,-1875173751,-849936200,-1995804127,-1987010538,-342842866,-526063576,-1889204537,113676260,-402554347,1048777488,1946193979,11266051,-1919533440,-385649664,-605422117,991857661,1140897936,-494919219,1024886912,-2146601840,9476414,2008680052,50981251,-1875173749,-1919414645,-1919281525,242600491,-2147371800,9477182,244016501,-1910600296,-1265796834,522308927,-930377870,1048596963,1962971197,-1656848377,460587152,1049350539,447778202,2030472710,128905869,117310837,725716362,63605713,-1987208690,999135758,1921882126,23062540,-1868808576,-351243008,1027506319,125042832,-1920319872,-1954450432,-1265616098,-1021194946,-1919467904,-1594329856,-790065774,-1959889918,-393373154,41156892,-617364487,2032045598,436717453,117382912]},{"sector":9,"data":[113675674,-1593798504,100896922,91393434,1946157373,15919114,1048827509,1962971290,9103619,-1881661813,-1868427637,-1868556661,-1869136256,-1271827456,-803091156,-773730079,-773729823,183423201,716460494,-377413171,-377092164,-422518319,-422517040,-422517040,167826816,1509264086,2113993603,1459730487,443687373,859964088,-842363950,-1664087263,-851181384,1052004897,1935286733,1625857289,2942976,1973228267,-2134706421,-402295552,82509854,-1918826753,-1919482114,512476152,-1276604456,583935,-1918826809,-320143360,-1265663558,-1021194943,-1867800234,730873534,-1880834106,-509360381,-535918449,-1527561841,-1880932728,-389706914,-1628962357,29747433,-398556989,292880528,-941705752,-2121308922,352765583,568852866,-1935621359,115888269,104486912,-960262772,9477126,-1919533440,-385649664,-1494744935,67102721,1048582517,1962971197,-1942061038,1018822797,-385649278,113639703,-1207857000,-2118226944,2210703,29018419,-1740734463,57999504,-855567686,-401509599,113761866,-1887334555,-2112551226,15067393,-963651421,26056198,12114059,-2011050684,-158344682,863273154,613257888,-1609992948,101355677,427069593,145236346,28843380,-2131348924,378020042,567119834,-1528230421,-1660500480,243270800,-2147184489,9476158,1048585333,1946259163,56354845,1048582261,1962971197,-2109752815,-955233304,9280006,-1677263360,512476048,-919367720,-1919283577,117437411,1048613018,1962971288]},{"sector":10,"data":[517092149,-1921442162,567099572,-2111325665,1323893619,1959275519,-637077808,963936399,-1881536778,-2146798304,9475902,1950989173,-2085963080,-768400405,28889479,-1558065854,378114212,1048613030,1946193290,-851397476,-966823391,445687814,265218243,-1919482114,-1919533440,-1958185984,-2087725026,863895803,-1868165493,-1868294517,-1039416949,12067188,857853250,-851397431,-1472298975,141820048,-1867990463,567099572,567099060,-1258657047,-1172189890,1102352257,113648077,-385839722,-1360397737,2047616254,136597520,1485871522,-1650326492,-1761212272,-1868717936,-2134654966,-7373762,1505692789,-1887650420,-402595608,-1070406501,-1881471354,58048522,-1962898199,-1081115082,12095035,-2145268439,108265532,-377344582,-2120089773,989626511,1085276788,-1868755318,1613504524,-1601291358,646614912,36016099,1958742530,1975794195,-1640071153,141820048,-1881405698,116113458,-1004404172,101378256,-1935503202,-790572915,-1869110560,-1869005184,-1574669056,-922054499,-1073078923,243997044,333680026,856038064,2030472959,128905869,-1991309963,-1148347842,1048612479,1946193292,-1899644157,-1953612610,-1181778370,1017905160,-1979550401,1948269575,-498882047,-1341935119,1946433568,-1439780846,1967078572,1007127042,-1442745312,854712899,-154948928,1963066438,-2083157181,-1202256446,1086024704,-1949748480,16890610,1935614413,-606017515,1946157629,212259,87891572,-384207872,-661923585,-851181384,-851528671,-2134706655]},{"sector":11,"data":[1190548341,1299448836,-2147133813,91488506,1950023296,-2143243774,-360701750,-460003232,-1679292813,-657856037,-1031547509,75401733,-2147031168,410322687,-1291684213,-27510726,1187382901,99287552,16795334,8644942,1963130752,4638213,-1125596416,-851725077,-1959169503,-1950338054,-1977202232,-1073068283,-466482060,1960985576,-989968399,-1605374741,1187417468,-469106176,1161430389,-1442482945,16795334,100945536,-1023380248,1037771240,91488259,1962935613,4638304,75401728,1946470390,4638438,41323266,1946172544,942584651,-1287293924,-27510726,1187382644,843972864,-400783653,-700716225,1364597619,-225718645,-506271572,1001130356,1509257969,990636894,1508733681,-10732962,1001655924,478552525,-1209494157,-672798246,-1982341143,1182794366,1069026305,571694,-997807373,-1312520534,850064131,-1094473024,-54554751,-849300342,-1968849375,-393544513,868475883,-1421964864,-1867603312,-1970229342,861379832,-636581687,-1813468018,1008563683,1022784544,-2030930935,177254150,-152406848,91521223,-1898314042,19785985,91603770,-343879808,1963801812,18409731,-1921317318,401146741,943370753,-2145553132,26175806,1139278709,22866145,22603948,-1867825527,-1867708730,11790592,-1867825527,-1867708730,1765703680,494207375,1977855976,-1952428008,-398392179,984613166,1476471272,-1867825527,-1867708730,-522786816,401081972,2028710913,-1888928128,-402426623,775741678,117311861,113676462]},{"sector":12,"data":[1023381677,-2147257025,708575951,-813682571,-415334398,74776720,2028676331,1048577972,1946194094,-1342000126,-1390007745,-2031390064,-2046172191,13166817,-136126074,904454534,-2145290781,1048577231,1946194151,46659077,1049184373,117412011,113676459,-956329811,9481734,-1409246744,1961001448,1947024440,2064005684,976123021,1009415363,-385649606,1048641375,1963102057,7661573,-347678229,-11671276,-377346886,1320871377,-439621245,-107126962,1374375619,-2130587776,-394264371,-398007758,225763332,-1409268248,-2130689560,-348127027,1963801652,-1442795511,1073794433,736677611,-536025088,240211718,-2025668857,-2130704711,-230686515,-2129955410,-1195376667,-523042815,1599727627,-1442795513,-1007116961,117326250,784568493,-1999698233,-1993474048,780753166,-1990515063,1563855150,-1993409399,780714510,-2000419129,-953286656,8967942,113716736,35016,-1811495122,777870217,-1986656569,-953271172,1049204742,113716779,993888666,1930003432,-18413,495658579,1930377766,178179,19130715,-784955090,1431786376,-1999036787,-804850130,1131749512,168814764,2011708530,-399018999,410323364,-804850130,91562120,-351715352,116796966,1950451920,468405790,1007126574,772175165,-1999630720,149439233,-1396346102,1124567086,776912619,-2000275831,509486,-719419090,495658632,-1999030643,792494126,-2144455052,141828668,-804850130,1416954248,21465638,959374386,1938342406,-1029624302,1138807176]},{"sector":13,"data":[651690819,-1998053493,778693376,-2000419129,1626013697,21465638,-784276430,651690976,-315486326,259311883,-1960422589,13035551,1128362843,787669571,-2000419129,887816195,21465638,-784276430,651690976,-466483318,54583505,260712152,-921965262,1396903796,-400585946,1935343709,-498908405,113716978,297156,777740125,-2000548213,-2000379602,-969503954,378220168,-1976661816,-125253090,-1960423229,174343,-13761163,780714502,1962949760,108825,-953284235,42517510,1343154944,-4979792,1476435688,501744619,-104638463,642864579,839405450,1959332845,158305549,1929648616,976904,-335939870,780742150,1509460183,-2144943267,1946157182,-152353533,-2144419003,277401614,1929365224,645934666,1357875408,-1999396562,19842603,1485361414,-751400146,1015033480,774272256,989822080,-953284235,159958022,639625984,1946173315,133637657,309657601,-1006188754,-352320888,9889801,-116528136,-1336931605,-385895421,-128450557,-1960421437,-1993472897,646498366,-2010774136,776995173,646502305,1476543881,175440188,72714534,105744678,37509867,-1993996683,1357579349,-395049156,-462157764,108332604,72714278,71057131,-1590816907,641763537,637814153,-351904372,1971922475,1301030404,-165261306,1946223175,-352014332,1207313929,91488770,333972144,-165259263,1947206215,14870531,-970013857,9018630,126559824,410370059,1465013072,-1006188754,-1275065976,-402411265,1516240731]},{"sector":14,"data":[820729947,1947205801,113716754,35012,771981544,-2000404861,-1457949431,393480192,-1006188754,-402653048,-2094136178,159958078,65733237,-1450151957,309624832,-1006188754,-402653048,-2094137041,159958078,11097973,772961344,-2000419129,-186122240,1048784384,1963559108,16820544,-953281164,8963078,94169088,772153320,-2000404861,-1457097463,309592576,-1006188754,-402653048,-2094135934,159958078,11079541,772437024,-2000419129,-488112128,1048587777,1963035037,1048784399,1962969284,113716743,624836,1448133464,168069678,1008366784,772633914,97408,-970062219,166395908,1929832168,-347716095,-1017618721,-796241322,-402355666,208799443,208977930,771755240,32179336,-387234234,1019436634,1007448960,1011184225,608270202,1396567007,1049450246,-92239473,-1929087996,780765758,393483576,240275792,-1973046265,-17470,-1174403655,567148543,777541978,771841419,1124287886,645934147,1527209943,-2144448317,-2138517490,-802783186,-1976631928,1948990468,1965898762,243281415,1174571216,1476395752,1381060803,868823894,-1976675374,1958742532,15853634,-466470542,-489559925,-756493871,-1960021504,-775844902,-388902430,527564997,-774774063,1912650984,332595990,11790536,-721220238,-402599549,57802921,1539042118,1526762985,-804850130,175374984,-755510793,-2097036669,-1960443695,-1977219465,1962949636,-1274957817,-1871385601,76162630,1618214972,116796998,1971357904,1278944798]},{"sector":15,"data":[2000056835,1413162502,640578049,1996966971,641364520,1996837947,640871200,2080590907,637959960,2080461883,1278944784,2081062663,1413162524,-352157947,164004628,-1250572034,-1006188754,-1342175608,-335563775,637644818,199959690,-1006188754,-1342174840,-385895421,1516174583,-1664919463,-804850130,41222792,1889387421,-104597502,1915763907,2000239624,-131060732,1355020739,643256915,637960075,-1073085046,-4979595,54283499,642203509,162792842,54584566,92940024,-453638732,653787968,1195836810,-399668442,309526578,-33306749,787576264,-2000419129,-4980728,-1977215765,45154149,-350909658,113716747,624836,61931444,1610378984,-1017619622,1448236368,-1976696142,80078852,48774258,116797182,1946716368,1966947341,2122327583,1903493121,-164752405,277401606,977014388,-2144990603,1962934398,1558922844,4602406,-1073078923,1162236532,975573995,1165295686,76164678,1178216005,1178236160,782756677,-1999632650,638547008,537020407,638022656,32384,-148495756,1946161159,1966750744,2122327561,225771520,3935979,-2144991371,1949958270,116128003,-751400658,1516173448,1354979421,1398166097,11200598,113716830,35202,-2079930578,771752073,-1987705145,-1377304576,773353984,176784035,-400919333,1852965024,-1987796178,225762058,1912640488,-2036126111,1977289353,512437849,-75265696,774009858,176784033,-1975028252,-2069811512,1977879177,786991677,-1987701109,1963064195]},{"sector":16,"data":[-337017342,378220057,-1590785662,-469071484,-930471819,-1987665618,376824842,-92018550,-2130414748,1527213250,-1325419426,-81139705,1583026411,61931444,788209384,-2000419129,1499070473,915260248,-2094102176,41221948,1377701867,-1205924272,-695519232,1515725261,1381090079,-1976645325,1958742532,1048587836,1946192223,33259535,977011829,775696500,216738932,645147964,578039612,510930492,1929242344,-1862224866,-150992198,1976699874,1925251857,-347696882,-120026435,-129628693,-1946615317,-1017554239,1448235344,-2048371117,1156984575,1969094929,16902147,-2113485010,771752073,-1987836217,-953286656,9012742,113716736,35208,1594279470,28508553,1929342952,-2103234979,1960512137,-10295201,-1557245838,-620066428,45306484,1929335784,-2036126143,1977289353,116796982,1963100367,915091003,2088798406,812985599,788481222,-821639378,771752072,-1999696256,244002306,-1959884455,780753702,-1990379893,-386412823,1601371920,-1987534034,1467341578,-1987927762,1333126154,-821627346,141820296,1131875388,-1070464395,-804850130,208929928,141823036,796003332,729225276,-1590767478,-469071484,-259382923,-1987665618,393602058,-1590769526,-469071480,-393605771,-4956581,-1461188432,1527835641,-1325419426,-107091965,-1006188754,771754376,-1990261050,1482250752,777408707,172360842,788035008,217990282,1953512480,1952529433,1970093085,-1976676828,537722436,108294204,175399228,-2144463893,76075022]},{"sector":17,"data":[-2144467221,25743118,-29047250,-1017618944,777410384,-1999552885,168069678,-401378112,611647583,-1660500434,777912713,1593836742,777928683,1593836742,17299238,775058688,-2000419129,703266818,-1976674728,1958742532,3008542,1760037748,1191342849,-347715770,-895340823,80096904,-1993455872,1586021950,11098207,1342796802,95485876,1492703976,-1924049981,-1182165986,976093193,1124365319,1497495778,1381024603,168069678,-398953280,745668895,24937262,638481466,1050615,-2144461196,1962934652,1008733207,1007776353,739080058,-1261401504,-402214657,132905099,-1006188754,1509951880,-391330984,410255394,1962954728,116796950,1948289232,116797165,1950451920,116084233,-134091783,-1007107250,222056787,3942772,-2144983692,1912734333,651899678,-2096931446,-2144992061,225706041,-1977169613,975586057,-503024639,1494039800,1364443995,-905525714,-2144460664,-544681946,913580092,846465340,829697084,209002556,1965046912,1176547335,518766650,41779238,857174529,1300899529,1959332611,244491,20588099,-119404684,1532567612,-895340861,116797064,1963034832,243281414,975210704,-1914180672,998824238,1008366813,-116165329,1200238160,-86906625,76154226,1492830952,-336064789,1966029835,243281414,-129988400,1398152899,-851541202,661979272,1381047888,856053079,-1193373962,567108352,-619979892,1516199175,1951932249,914959913,-1993439029,780717342,-1999948149,-853635538,3965832]}],[{"sector":1,"data":[70914164,1144653938,-117213439,1178994155,1543039979,-389865634,-389810963,-389286679,-389349360,-1360527348,113755094,166563,113706731,101027,105993040,1448544030,-335100078,-1962934128,-1403998734,-315438966,16352088,-289447564,1364285328,196730507,-156962048,1946421063,38258442,1204224000,1493172228,1348068834,-2112799104,-972262145,26273798,864162751,1487580096,-1946711201,2139312606,158662660,67586038,1334575989,197362436,-1957040926,41910750,125144933,-1889200501,-1962780791,-1970625762,-1971187178,-964554442,8524294,-2112813370,-402252033,520553045,-324861069,1600019088,1482381575,-1863565693,-1023314688,1048774414,1963100835,-1338971901,-1903104863,646805254,52299510,-402098945,1958404039,-972297341,25301254,-1551756358,118391315,1406750953,1526728936,-1092070973,1354979584,1460032083,-1047606989,783875891,-855592430,-1475965905,-1505850999,305051785,801964722,-1984952692,-1985069431,-1307431240,-1943024380,-1987461114,-1198932418,112333358,109850573,1049201060,-1779922526,-1610183632,-1640068727,-1140421495,-1170306679,816048265,-1984690548,-1984807287,-1307431240,-1943024376,-1987459066,-947272130,227139846,705086986,113714314,35302,-1981282617,-286785526,-901871313,1042569,1594323704,1482381831,-998046485,1355020554,12066390,505531747,141696775,-1982187895,-1982069108,1354979422,-397060346,242352149,-117440896,520488052,521011947,1599993739,1455642631]},{"sector":2,"data":[871773011,-98103,-1131739019,-544503350,-956946965,-1006078974,-1937133892,1025043395,225574931,1996498749,-1162034168,-339506039,-1631796218,-2084336503,376831995,1979711104,216791299,-1198922077,29229055,-118082816,-75297557,-402426880,-964493228,108197892,41273611,-2137219093,695534078,105993554,12079191,1009765637,158685439,45668491,-349188859,91486465,-346486945,113541894,1560284392,-821957798,-268274,1472421467,-18096,-1359822798,1481232887,-75250849,-2095221503,-7748034,-12773772,1342928383,-7739743,1485424158,520029419,451643846,-25114317,637957375,-352105078,892874249,-1976695691,-947715251,762575108,1959332856,-98279,992347508,772008709,41223483,1950943723,80184069,1928979435,-98292,235042296,2097358343,839283202,227157741,-536426937,1354956937,1465209171,-376745466,-1981931895,-1981598072,201245928,186414281,-402295315,65732646,1912713448,99113480,-346093823,113541892,117763065,1928944223,1532583174,-2096829608,-1007089468,-1957538992,-2088116706,91619323,-352310040,7858179,1504972659,-855637829,-2082196959,-336001340,-294128,-1053095052,-1326971020,113541888,1510175481,516118619,-108847354,-1273268991,361375234,-1977671219,11659458,1931413022,1435117063,-132002559,45354987,158648587,-854226394,1967736609,-1021314829,1392922711,119470731,447797643,1974399740,1272523523,123456395,868441944,1959332800,520494671]},{"sector":3,"data":[-678739788,1963063683,522308904,92939856,1476418280,1931413022,1085601798,-1675506366,440238118,-1047854475,248447467,-335545368,-397322982,-376701018,1931595097,990636802,990344392,41285864,526238091,2603203,-1258289989,-25115903,-166628097,209027270,1049429790,45713889,-16717824,-1000929597,193583678,639071487,-134201981,975573108,638022149,1996571962,1195899137,123726315,-469332029,-1814350967,-399050862,922194825,-92042776,-2147125751,65746882,1378927232,1975520065,1960512260,66683705,2088766837,91565066,-1980680449,-2094863551,225773305,738884736,922682741,-348026383,167346960,2088766325,91565066,-1980680449,-768371903,-768366613,922730547,868452836,1959332818,-1339706335,624436736,942017141,74711397,242598970,-402290138,24379219,1229080391,-2024348811,1961692106,1048792371,1962969574,105155115,975581188,41222469,809246443,-771029899,872612980,1048635371,1979681251,1229079048,-347123895,-17917,-386323625,1499463178,-1930886285,-896839424,425088,-922022540,1229522548,32196423,185658206,1577285065,-108852757,855799295,1962871753,106386788,-2083966127,9037374,1156987765,141889287,-402490172,686489946,218580214,1156975732,108269063,201802998,2093222005,23652354,1156976363,91556615,-352192792,45475843,-352300312,2156547,123275122,-346137249,180650756,-432110599,91553929,115934066,-435763201,-1023410039,-425602509]},{"sector":4,"data":[-402208887,-402650487,-2007433593,1133111943,1967192963,13690883,-294270466,-1995829832,1133111943,12642371,-2133118013,1962935932,-360200431,1127030921,-360200637,-398253943,861733030,-1999490085,-1970675698,-1053161148,-1054204298,1157034122,343179271,-2012593014,1133111943,1967192963,8185859,-327823618,556160,1278741876,705196808,-779483060,185093258,-165382967,1963919172,121959948,637957136,-347667062,-2021107711,-2092725782,58015995,-33537560,-153324087,1971324740,1962281496,172263956,-1981118584,1090224963,602407797,1976499712,121960172,-167217905,1947207492,168618754,-1895271214,-24517626,-386370102,-1017839614,509019729,868977415,-364999205,-59447159,123667826,-2096829607,-1007089980,121960029,638743856,1095763338,1945983720,1166681606,-336048127,92939789,74760202,-169131705,-1017775829,869413725,-402208832,855642249,121960155,639923488,1156973962,225774855,57966760,-947968957,176809990,121959936,-955878130,176809990,-162206976,1963984708,93005350,218580214,-990507147,1124365440,-947919744,176809990,121959936,-955878130,176809990,640215808,-1960442485,1156973141,259329287,1954596598,-427801852,-402208897,-167769463,1963853636,-402209018,-402650487,-619971369,-768408204,1431449010,113728963,690664,855667688,-2084555822,9038398,2112364149,9234432,-1980418305,-1967115455,2145912132,-180945152,1149911433,7661572,-1981137277,-400657151]},{"sector":5,"data":[1743257688,-180945152,-1070382711,-402373494,922681434,-1975416331,1340605764,-365001984,477430409,-402307958,922681410,-1975416331,937952324,-180945152,501760393,2942976,951370581,378339504,567118314,113707891,35306,-1980430650,1150010157,121959938,1023964432,58064995,-1023384648,-1981151601,-1981804920,1241258728,-1981804998,817366389,1094799360,-1981139201,113728963,690664,-167740696,1946224452,-79790052,359989385,1006781578,1006926860,-1341751785,-348041119,1349562372,868234049,121960146,-1978960864,1709704516,-214499584,1156989321,108339207,268911862,1149897588,5171204,-1980287233,54823489,-16759832,1099560758,-167623542,1946224452,-79790061,208994441,41684284,3935276,212861557,1442547432,-1338460989,-367620864,1931595145,-83441904,-973078135,982120198,-1980561722,110084910,243829226,1558743520,238701051,91589088,1342189752,922698049,516131306,8054791,1370198,-401706402,-689438584,-402230784,-1226243911,-788010544,-956268098,9276934,-2001486080,854116659,-49719,4001652,-1962314496,2156762,32179058,12108793,-1960719016,-2134146600,1476507648,-1195171379,29054979,-1021195008,-984132066,-1614871433,708619404,1060900468,178915956,-118327872,-1021354401,-108757574,-2118191381,-854005760,-853743444,222038644,104466036,-260731525,-2118139058,-20368896,-22369079,1963801793,243803896,-960298880,25301254,-1551756358,-1195146733]},{"sector":6,"data":[567105536,45668490,-1977496232,-1060072456,-456130268,516146186,-1895832344,-1567787234,243270976,528483648,-385916952,-1580990611,-1152871483,-470351861,-1953430081,197559287,-201537397,-988872796,-660215661,208977931,2080375869,-1161562110,116098170,-402652488,-1007026287,-1577056769,42468348,43254775,45351916,46793730,47842311,48563211,49284134,50004996,51971093,53609489,55575570,57082899,58917866,61277163,62850031,64357360,65537009,66651122,68486131,69993462,70845432,73335801,75498490,76547067,77071357,78775294,81069055,83690496,84935681,86246403,88146949,89064454,89785352,91096073,92275722,93455372,94569485,95421454,96404495,100140048,101254164,102302742,105645079,107021336,107938841,108332058,110101531,110953500,112198685,114426910,116720671,117376032,118096929,118686755,118752292,118752293,120194087,120128552,120063017,119997482,119931947,119800876,120259629,120259630,120194095,120128560,120456241,120783922,121111603,121242676,121177141,121439286,122946615,123405368,124585017,127140924,127927362,128582723,129238084,129893445,131007558,132645959,134284360,137233584,137037076,145622312,149554473,156697916,162465085,168691006,177997136,179570040,188876153,195495290,203031931,207095164,215745932,224593312,227345825,235734452,242091445,250480054]},{"sector":7,"data":[255460808,265881033,271779274,277939659,285738444,298059213,308020686,317654479,324142544,333514204,337380848,341181956,347080197,353895942,357565976,360973849,368903706,371787291,374343196,378144285,381355550,384042527,391775776,396559916,401016384,402654785,407897666,412747348,418252373,426509910,431228520,434439785,442828412,447219344,449447588,460850872,466028236,471795405,479069920,483854068,490669832,495519497,501024540,505480989,514328368,518981444,524683077,529073990,537069383,547489608,553977673,560727882,567281496,574883673,582879066,588318555,598738796,600049536,602933121,608503682,540091663,1702132066,1919295603,168650085,1818838563,1633886309,1953459822,543515168,1768976227,1864393829,544175214,1702065257,168650348,1936607513,1768318581,1852139875,1768169588,1931504499,1701011824,1225984525,1818326638,1663067241,543515759,1701273968,1225656845,1818326638,1679844457,224752737,1850281482,1768710518,1769218148,168650093,1986939150,1684630625,1952542752,554306920,1936028240,1851859059,1701519481,1869881465,1852793632,1970170228,539893861,221126702,1851071498,1701601889,544175136,1634038371,1679844724,1667592809,2037542772,1445005837,1836412015,1852383333,1769104416,622880118,1634213937,1869488243,1650551840,168651877,1819235866,543518069,1679847017,1702259058,540091680,622883689,520752434,1970040662]},{"sector":8,"data":[1394632045,1634300517,1968054380,1919246957,544434464,623718693,654970162,1819309380,1952539497,1768300645,1847616876,543518049,1713402479,543517801,544501614,1853189990,453643620,1635151433,543451500,1752457584,544370464,1701603686,1835101728,436866405,544503119,1696622191,1919514222,1701670511,1931506798,1701011824,1175783949,543517801,1634038371,1852795252,1920099616,168653423,1952530964,1713399907,543517801,1936943469,224882281,168632074,1702063689,1679848562,543912809,1752459639,1952539168,1713399907,224750697,1631721994,1868767332,1851878765,1919885412,1818846752,1634607205,168650093,1667449104,544437093,1768842596,220226661,1866672394,1852142702,1718558836,1936024608,1634625908,1852795252,1936682016,1700929652,1701998438,1886348064,604638585,1635151433,543451500,1701603686,1701667182,544370464,1701603686,1953459744,1970234912,168649838,540091667,1701603686,539587368,1768976227,168649829,540091659,1701603686,539587368,1986939165,1684630625,1769104416,1931502966,1768121712,1633904998,1852795252,1126566413,543515759,1701273968,540091680,544501614,1885696624,1684370017,1919903264,1937339168,225273204,1866672906,1881171300,543516513,1847603493,1881175151,1634755954,543450482,544370534,543976545,1769366884,225666403,1665209866,1702259060,1685021472,1634738277,540697959,168636709,1397509655,1129207110,1953459744,1936615712,1819042164,168649829]},{"sector":9,"data":[1920287520,1953391986,1769104416,1763730806,1869488243,1852795936,544367975,1768710518,1632375140,543974754,544501614,1853189990,235539812,1953397075,1696626785,1919906418,1125583373,1701999221,1679848558,543519841,622883689,841293873,1393887757,1867345525,1702188142,1415865687,1917220200,1952535401,1953383701,1847620197,1679849317,543519841,691086632,1125392442,1701999221,1948284014,543518057,622883689,269094193,1702129221,1701716082,1769218167,540697965,538979346,1698963488,1702126956,794372128,1010772302,543976513,1701603686,1852383347,1919509536,1869898597,1998616946,543976553,1679844706,1952803941,220292197,1701986570,1970239776,1920299808,1495801957,1059671599,760433940,542330692,1936876886,544108393,623784229,1850282802,1768710518,1768169572,1952671090,226062959,1850291722,1768710518,1634738276,539781236,544501614,1701996900,1919906915,168635513,1679848047,1667592809,2037542772,1953459744,1886217504,168655220,1937067288,1886593140,1718182757,1313808505,544370464,222709327,1766068490,1952671090,544830063,622880367,151653681,1344302926,224949345,1850285578,1768710518,1919164516,543520361,1931505257,1668440421,1634738280,168650868,1986939152,1684630625,1986356256,224748393,1329993226,1633886290,1953459822,543515168,1953719662,168649829,1953384741,1701671525,1952541028,1768300645,1696621932,1919906418,1920295968,543649385,1701865840,1126566413]},{"sector":10,"data":[1869508193,1868832884,1852400160,544830049,1684104562,1919295603,1629515119,1986356256,224748393,1380060426,541802821,622883689,235539761,1230128470,1763727686,824516723,1158416909,542066755,622883689,67767601,6710895,7237379,1920091417,1998615151,1769236850,1948280686,1701060719,1701013878,620890637,824508977,36775170,151073061,1144791050,540955209,52437024,34086920,620890637,1835862065,761553965,1678276985,1835871588,142178605,1831696761,1684286829,540091653,620900901,622855985,622862385,1766070834,1952671090,544830063,1701997665,544826465,1936291941,168653684,540091658,1702132066,352980339,1635020628,1768300652,544433516,1953720684,221930597,1160260106,1919906418,1667460896,1701999221,1852383332,1986946336,1852797545,1953391981,1918989856,1818386793,168634725,1868769295,1852404846,1735289205,691086624,1986351629,1869181801,824516718,1141705229,1763726159,1852383347,1297044000,1397703693,544434464,1210084969,1142178125,1763726159,1852383347,2003790880,1835363616,477721199,1852727619,1277195375,1751409007,543713129,1668571490,1768300648,168650092,1634683932,1734953060,1226848872,1818326638,1713398889,1852140649,224750945,1631793162,1953459822,1701867296,1886593134,1718182757,543450473,1853189987,544830068,1868983913,1952542066,544108393,1701603686,-2046817779,1937007955,544370464,1634036835,1696625522,1852142712,543450468,1280463939]},{"sector":11,"data":[1663058731,1801676136,778530409,168626701,1095062082,1331372107,545005646,1564886607,168626701,1701869908,1163018784,1998605121,1869116521,1629516917,1918988320,1952804193,1948283493,1768169583,1634496627,1752440953,1969430629,1852142194,1380065396,541802821,1953785203,778530409,1144982029,1819308905,544438625,1931506287,544437349,543516788,1769235297,1663067510,543515759,1701273968,1836412448,779248994,168626701,1346586691,1852726048,168648046,544213517,1852730912,1394614304,1768121712,1936025958,1663066400,543515759,1701273968,1836412448,779248994,168626701,1701869908,1128809248,1769414736,1970235508,543236212,1634886000,1702126957,1869881458,1936286752,2036427888,1701344288,1952669984,543520361,1701080931,1734438944,1970151525,1919246957,1527385390,1886611780,1937334636,1701344288,1835101728,1718558821,544370464,1851877475,544433511,543516788,1920103779,544501349,1701996900,1919906915,168636025,1212353037,542263620,1769104475,1564108150,1952542811,168648040,1229211715,774789970,1644825949,1528841283,1986622052,1532836453,1752457584,1124732253,774789956,218762589,773857290,538976302,1667592275,1701406313,1752440947,2032170081,1998615919,544501345,1663070068,1735287144,1869881445,1701344288,1918988320,544501349,1701996900,1919906915,168636025,1418791437,543518841,1679836227,1702259058,1869881402,1936286752,2036427888,1701344288,1920295712,1953391986]},{"sector":12,"data":[1919509536,1869898597,1763735922,1752440942,1886593125,1718182757,543450473,1986622052,168636005,1701869908,541344544,1752459639,544503151,1634886000,1702126957,1948283762,1768169583,1634496627,1752440953,1969430629,1852142194,1919164532,543520361,543452769,1701996900,1919906915,168636025,1701593883,544436833,543516788,1701995379,221146725,1124732170,168645452,1886339985,544433513,543518319,1830842991,543519343,1701603686,1869881459,1869504800,1919248500,1668246560,1869182049,168636014,1329793549,1528846672,2082488623,1564618528,1970238240,543515506,541142875,1110384764,727392349,1970238240,543515506,541142875,1110384764,727392349,774778400,1528847709,1953719652,1952542313,225341289,1528832010,2082488623,1564618528,794501213,168648022,543689229,1970238240,543515506,538976288,1884495904,1718182757,544433513,543516788,1701603686,544370464,1701603686,1869881459,543515168,1768976227,221144165,790634506,538976321,538976288,538976288,1768189513,1702125923,1851859059,1129529632,1948272969,544503909,1701603686,1980370222,1110384672,538976288,538976288,1226842144,1667851374,1936028769,1646289184,1918987881,1768300665,221144428,1679826954,1769239397,1769234798,538996335,1667592275,1701406313,1752440947,1768169573,1952671090,544830063,795111009,1713402479,1852140649,543518049,544370534,543516788,544695662,1701603686,774468392,541133325,542519072]},{"sector":13,"data":[538976288,538976288,1700143136,1768319346,1948283749,544498024,544695662,1701603686,1918967923,1920409701,1702130793,1868767342,1667592818,779709556,168626701,544167047,1701867617,1713398894,1936026729,1886593068,1718182757,543236217,1735289203,1713399148,543517801,544370534,1953719652,1952542313,745434985,1953849888,1819634976,1819306356,1768300645,225666412,1919903242,1970238240,543515506,1769174312,1998612334,1667525737,1935962721,544370464,1701603686,1768303409,724723052,1701603686,1868963891,1952542066,168635945,1634222986,1936025454,1701344288,1919251488,1634625901,1701060716,1701013878,1702065440,1869881444,1852793632,1819243124,1970239776,2037588082,1835365491,218762542,1414808330,1701060697,1701013878,168626701,1701060640,1701013878,1411391520,1948280168,1768780389,543973742,1769366884,2032166243,1998615919,544501345,1965059956,539780467,1751348595,544432416,827150147,755633454,1886611780,1937334636,544370464,1937007987,1701344288,1952539680,168636005,1094978061,1528841556,1702125924,218762589,2035581706,1142973808,541414465,1752459639,544503151,1634886000,1702126957,1948283762,1768169583,1634496627,1752440953,1969430629,1852142194,1633951860,1931502964,1769239653,1629513582,168649838,1919950945,1953525103,1919903264,1847615776,1864398693,539911534,1701990432,1159754611,1380275278,544175136,1885693291,1701344288,1835103008,1633951845,221144436]},{"sector":14,"data":[1698980874,1702126956,1852776563,1919885413,1919905056,1768300645,779314540,168626701,541869380,1769104475,1564108150,1952542811,1768316264,1634624876,1528849773,224219183,1095910666,1528841555,1986622052,1532836453,1752457584,1818846813,1835101797,794501221,168648016,545458701,1919179552,979727977,1634753373,1717397620,1852140649,543518049,1701860128,1768319331,1948283749,1713399144,677735529,1948264819,1701060719,1702126956,1394614318,1768121712,1830844774,1769237621,224750704,538976266,538976288,538976288,538976288,538976288,538976288,1713381408,1936026729,544825888,1852404597,1769414759,1633903724,779314290,542050829,542125856,538976288,538976288,538976288,538976288,538976288,1869762592,1937010797,1919903264,1852793632,1836214630,1869182049,1700929646,1701998438,1818584096,1852404837,1634017383,1713399907,778398825,1151470093,1819308905,544438625,1768693857,1864397939,1768300646,544433516,543452769,1684174195,1667592809,1769107316,1763734373,543236206,1701996900,1919906915,168636025,1229195789,1683693650,1702259058,1885035834,1567126625,1818846811,1835101797,1528847717,542986287,1565994843,1093622560,1564105563,1920234593,1953849961,1566405477,538970637,1531916123,1935489627,1869902447,1919247474,1528847709,542987055,1564618587,1278171936,218762589,538991882,1769104475,1564108150,1952542811,1717263720,1852140649,1566928225,538970637,538976288]},{"sector":15,"data":[538976288,538976288,1667592275,1701406313,1919164531,744846953,1919509536,1869898597,539785586,795111009,1713402479,1936026729,544175136,1953720684,1628048686,1345265696,538976288,538976288,1632641056,1936028533,1952866592,1696625253,543712097,1701995379,1969647205,1718558828,1718511904,1634562671,1852795252,537529646,542584608,538976288,538976288,1702057248,1769414771,1814062436,544502633,1836216166,221148257,538999306,538984751,538976288,538976288,1886611780,1937334636,1818846752,1998615397,543716457,1667592307,1701406313,1952522340,1651077748,1936028789,537529646,1953784096,1969383794,544433524,541335584,1919501344,1869898597,1936025970,538976288,538976288,538976288,538976288,1377837138,761553253,2037149295,1818846752,168653669,538976447,538976288,538976288,538976288,1210064968,1701078121,1768300654,544433516,538976288,538976288,538976288,541138976,1818838560,1914729317,2036621669,1919903264,1668440352,1769367912,168650606,538976288,538976288,538976288,1394614304,2035490848,1835365491,1818846752,538997605,538976288,538976288,538976288,538979616,1717924432,1830844521,1768841573,572548974,578056046,538970637,538988335,538976288,538976288,1953720652,544825888,1701603686,1852383347,1919906592,543450484,1701081711,168636018,1931485339,1869902447,1919247474,538976288,1109401678,1634607225,673211757,1752198241,1952801377,539583337]},{"sector":16,"data":[538976288,542318624,544817696,1702521203,1836263456,1701604449,1713402995,1953722985,537529641,538976288,538976288,538976288,541401120,544817696,1702131813,1869181806,1630019694,1634234476,1769235810,538978659,1109401668,1633951865,639657332,1835627552,1697128549,1768714849,544502629,1936877926,168634740,538976406,538976288,538976288,538976288,1193287751,1886744434,1919509536,1869898597,1936025970,1919510048,538997875,539828256,1701990432,544762214,1914728308,1919252069,1864394099,1919247474,538970637,538989359,538976288,538976288,1886611780,1937334636,1818846752,1763734373,1886593134,1718182757,543450473,1701996900,1919906915,1851859065,1818304612,1970479212,1919509602,1869898597,1936025970,1711934766,1110384672,538976288,538976288,1934958624,1646293861,543519329,1836216166,673215585,1746956142,1768186213,1763731310,1919903342,1769234797,1864396399,1970479218,1918987629,221129081,790634506,538976332,538976288,1428168736,544433523,1702326124,1935762290,168636005,1402079757,1668573559,544433512,544825709,1881171298,1702061426,1852383348,1701344288,1380533280,541347139,1769369189,1835954034,544501349,1769103734,1701601889,1327505454,1920099702,224748649,1701998602,544499059,1953068915,1936025699,544825888,1717924464,1852405865,1851859047,2004033657,1751348329,1953068832,539828328,1887004712,695100776,1868967213,2019893362,1819307361,790637669]},{"sector":17,"data":[221140781,1968258570,544437353,543516788,1296912195,776228417,541937475,1735357040,544039282,1836016424,1684955501,1953392928,1919971941,1919251557,168635945,1480919565,168645705,1701987133,1936028769,1679843616,1667592809,2037542772,218762542,1145785610,1528844873,1986622052,1885157989,224949345,541347082,1769104475,1564108150,1752457584,1146948109,1819308905,544438625,1931506287,544437349,1702043745,1751347809,1952542752,1868963944,2019893362,1953850213,1701601889,1818846752,221148005,1342835978,541611073,1919179611,979727977,1952542813,775641960,1566387758,1095764493,991971412,168626701,1886999659,1095770213,991971412,544175136,1634036835,1818304626,1702043756,1751347809,1952542765,1702043752,1852404852,1629516647,1679844462,1667592809,1397563508,1397703725,544175136,1918985587,168650851,2037149295,544106784,543516788,1920103779,544501349,1701996900,1919906915,168636025,1886999611,1095770213,1998604372,1869116521,1881175157,1835102817,1919251557,1869881459,1936286752,2036427888,1701344288,1920295712,1953391986,1952542752,168636008,1634222903,1936025454,1701344288,760433952,542330692,1835888483,543452769,1836020336,221148272,1342835978,1347243858,1952129108,1567914085,168626701,1948262524,544503909,1394614304,1768121712,1936025958,1847615776,1663072101,1634561391,1881171054,1886220146,168636020,1917848077,1953525103,1851876128,543515168,1701077357]}]],[[{"sector":1,"data":[544240928,1847617135,1634562671,1751326828,1667330657,1936876916,1684955424,1701344288,1819239968,1769434988,1931503470,1768121712,1663069281,1936024687,218762554,538980106,538988836,673201440,1635086693,1769152620,220819047,606085130,538976292,1680351268,1634495599,1769152626,220819047,538978826,538989604,1920287520,1953391986,1835627552,537529701,541336608,1967333408,1852142194,1633951860,168650100,606085181,538976336,1920103747,544501349,1986622052,1851859045,1634738276,168650868,1445208096,1293951008,1329868115,1702240339,1869181810,1970151534,1919246957,540281357,541991968,1967333408,1852142194,1919164532,224753257,606085130,538976327,1730682942,1952540018,1949135461,544104808,1852270963,738856233,1277435936,1008738336,1701586976,1949135731,544104808,1852270963,537529641,541205536,545005600,1885958184,168634725,606085241,538976328,1801675074,1667330163,1697128549,1702060402,1919950963,1869182565,1663071093,1634885992,1919251555,537529641,541402144,1933910048,1701863779,1685021472,1093148773,1229538131,1685021472,926031973,537529641,543106080,1631789088,1634300530,1914725735,1920300133,1851859054,1768693860,1701209454,168649829,1414269453,543518841,1297044048,1998607440,1869116521,1881175157,1835102817,1919251557,1869881459,1936028192,1948284005,1881171304,1886220146,1869881460,1701344288,1717920800,1953264993,1952805664,1735289204,1191841070]},{"sector":2,"data":[1869440338,544433526,1818584104,1936028773,543236137,1701996900,1919906915,168636025,1297222157,542263620,1769104475,1564108150,1752457584,1146227213,1919179552,979727977,1952542813,470420840,1634624850,544433517,1768300641,1864394092,1768300658,779314540,168626701,1313165907,541412673,1769104475,1564108150,1952542811,1768316264,1634624876,540108141,1701603686,1701667182,1376390450,1528843845,1986622052,1532836453,1752457584,1818846813,1835101797,1713385829,1852140649,845507937,168626701,1953451597,1752440933,2032170081,1663071599,1869508193,1886593140,1718182757,543236217,544695662,1986622052,1919885413,1952542752,1868963944,1870209138,1679848053,1769239397,1769234798,1713401455,778398825,1146554893,1819308905,745765217,1952805664,1864379507,1701978226,1702260589,1397563507,1397703725,1986946336,1852797545,1953391981,1918989856,1818386793,221148005,1393167626,1528845381,1769103734,1701601889,1953717053,1735289202,168648029,545327629,1918989856,1818386793,1394614373,1768121712,1936025958,1701344288,1986946336,1852797545,1953391981,1918989869,1818386793,1634607205,221144429,1931485194,1852404340,538976359,1701860128,1768319331,1629516645,1919251232,544433513,1663067759,1634885992,1919251555,1869881459,1936941344,544106345,1948282740,1981834600,1634300513,778398818,168626701,1886999627,1163075685,1769414740,1970235508,1634738292,1701667186,1936876916,544175136]},{"sector":3,"data":[1886611812,544825708,543516788,1920103779,544501349,1769369189,1835954034,544501349,1769103734,1701601889,168636019,1936278580,2036427888,1919885427,1952805664,1752440947,2037588069,1835365491,1835627552,168636005,1230244365,1528841549,1701669236,218762589,2035581706,1411409264,541412681,1752459639,544173600,1634886000,1702126957,1948283762,1768169583,1634496627,1752440953,1969430629,1852142194,1769218164,1931502957,1769239653,1629513582,1629512814,1869770784,225734765,1919903242,1847615776,1864398693,539911534,1701990432,1159754611,1380275278,544175136,1885693291,1701344288,1835103008,1769218149,221144429,1766082058,1634496627,1948283769,1663067496,1702129263,544437358,1629513327,2019914784,1768300660,221144428,1409944842,541413465,1769104475,1564108150,1952542811,1768316264,1634624876,168650093,1936278565,2036427888,1752440947,1397563493,1397703725,1919252000,1852795251,218762542,1380275722,1420888589,1936485477,760433952,542330692,1952802935,544367976,1981837172,1718186597,1752440953,2032170081,544372079,1701603686,1918967923,1920409701,1702130793,1868767342,1667592818,544828532,1629515636,1768163853,221145971,1443499274,1179210309,1331372121,545005646,1564886607,168626701,1701869908,1380275744,542721609,1752459639,544503151,1634738273,1701667186,544367988,1679847284,1819308905,1948285281,1663067496,1701999221,1444967534,1179210309,1702043737,1852404852]},{"sector":4,"data":[168636007,1936278610,2036427888,1752440947,1768169573,1981836147,1836412015,1634476133,543974754,543452769,1769104755,1847618657,1700949365,1763716210,1752440934,1696627045,1953720696,218762542,1280267786,1919179552,979727977,1527385437,1819042115,1852776563,1633820773,543712116,1735357040,544039282,1836020326,1869504800,1919248500,218762542,1279345418,1683693644,1702259058,1885035834,1567126625,1701603686,1701667182,1633835808,761815924,1634886000,1702126957,224228210,1913261322,1633820704,761815924,1634886000,1702126957,538997618,1701860128,1768319331,1629516645,1663072622,1634561391,1814914158,543518313,1868983913,1952542066,544108393,1970365810,1684370025,544825888,224749684,538976266,538976288,538976288,538976288,538976288,1633820704,543712116,1735357040,778920306,1380715021,1919902565,1663071076,1701670255,544437358,1835364904,1936421473,1852383273,1646289184,1751348321,1818846752,1919885413,1313817376,776423750,777214291,168626701,541934930,1836016475,1953391981,1795820893,1886614867,1935961701,1869770784,1936942435,543649385,1629513327,1952539168,1881172067,1919381362,1629515105,1679844462,1819308905,544438625,543516788,1936942445,543516513,1701990434,1629516659,168655214,544826731,1663070068,1769238127,778401134,573451822,168626701,1398096208,1292504389,1886611780,1937334636,1936026912,1701273971,1864379507,1970544754,544435826,1835888483]},{"sector":5,"data":[761556577,1869112165,543649385,1864396399,1718558834,168636006,538970637,1330135877,1313823520,1327528992,224216646,538990346,1330135877,1701665568,1734439795,168648037,2035550733,1159751024,542066755,1752459639,544503151,1634886000,1702126957,1948283762,1768169583,1634496627,1752440953,1969430629,1852142194,1667571828,1931505512,1769239653,221144942,1766082314,1952671090,1397563507,1397703725,544175136,1634476129,1819043170,1814062181,543518313,1629515369,1952539168,1881172067,1919381362,221146465,1191841034,542069839,1700946284,218762604,539003402,1700946284,538976364,1667592275,1701406313,543236211,1954047348,1920234272,543649385,1684370293,544106784,543516788,1668571490,1919950952,1634887535,1935745133,1814061344,1818583649,218762542,1970231562,1887007776,543236197,1700946284,1852776556,1814061344,543518313,1763735906,1818588020,1646275686,1852401509,1735289198,1953068832,543236200,1869377379,168636014,1634222922,1936025454,1701344288,1936683040,1869182057,1718558830,1885696544,1701011820,1701601889,1918988320,1952804193,544436837,1629515369,1952539168,1713399907,778398825,168626701,1179207763,1510608212,1718773072,1936552559,1852793632,1769236836,1818324591,1869770784,1936942435,543649385,1646292585,1751348321,1869770784,1835102823,168636019,1179191821,1330535200,1159748948,1380930130,1163281740,1970151500,1919246957,1836016416,1684955501,1229326861]},{"sector":6,"data":[1314594886,542987343,1769108595,1026647918,1920234301,845639273,1836016416,1684955501,1179191821,1330535200,1159748948,1414744408,1818846752,1835101797,1868767333,1851878765,218762596,539000074,542396238,538976288,538976288,538976288,1884495904,1718182757,544433513,1952540788,760433952,542330692,1970235507,1663067244,2037543521,1953853216,1701344288,1836016416,1684955501,1819176736,537529721,538976288,538976288,538976288,538976288,1763713056,1752440934,1868767333,1953064046,544108393,1713402729,1702063201,-1576399570,1380261920,1280462674,1279612485,1836412448,544367970,1667592275,1701406313,543236211,1702195828,1852793632,1769236836,1763733103,1752440934,1634476133,1881175155,1919381362,1914727777,1914728053,1920300133,224683374,538976266,538976288,538976288,538976288,538976288,544104736,1953069157,1685021472,1902452837,543973749,1864396660,1919361138,1702125925,1752440946,1948282465,1847616872,1700949365,1886593138,1718182757,778331497,543558157,1836016416,1684955501,538976288,538976288,1394614304,1768121712,1936025958,1701344288,1836016416,1684955501,544175136,1920098659,1970217081,1718165620,1701344288,1852793632,1769236836,1763733103,537529715,538976288,538976288,538976288,538976288,1830821920,221148261,538995210,1769108595,1026647918,1920234301,845639273,1884495904,1718182757,544433513,1920213089,1663067509,1768189551,1852795252,543582496]},{"sector":7,"data":[543516788,1667592307,1701406313,1702109284,1931506808,1852404340,168653671,538976288,538976288,538976288,538976288,538976288,1668571501,168636008,1159733351,1414744408,1818846752,1835101797,538976357,1701860128,1768319331,1629516645,1970435104,1868767333,1953064046,544108393,1948280425,1931502952,1768121712,1684367718,1818846752,1835101797,537529701,538976288,538976288,538976288,538976288,1696604192,1953720696,168636019,1853182583,543236211,1667592307,1701406313,1868767332,1851878765,1868963940,1634017394,1713399907,543517801,1629515369,1952805664,543584032,1701603686,168636019,1329990157,1982144594,1634300513,543517794,673205833,695494003,542065696,1835888483,543452769,1836016475,1684955501,1918988333,1952804193,1567847013,168626701,622862461,1769103734,1701601889,1884495904,1718182757,544433513,1701978209,1667329136,1818386789,1634738277,1701667186,779249012,538970637,1952805672,538976297,1394614304,1768121712,1936025958,1931501856,1864397925,1852776550,1919885413,1919905056,1768300645,779314540,1767317536,1633903724,544433266,544825709,1965057378,778331507,542509581,1836016416,1684955501,538976288,1667592275,1701406313,1752440947,1868767333,1851878765,1869881444,1918984992,1864399218,1713402997,1696625263,543712097,1701603686,537529646,1836016416,1684955501,1918988333,1952804193,225669733,539009546,538976288,538976288,1394614304,1768121712]},{"sector":8,"data":[1936025958,1918988320,1952804193,544436837,1931506287,1668573559,544433512,544370534,543516788,1667592307,1701406313,1868767332,1851878765,168636004,1867778573,1702065440,1701344288,1380927008,1836016416,1684955501,544106784,1633820769,543712116,1735357040,745365874,1701868320,2036754787,1982145824,1634300513,543517794,1953721961,543449445,168650351,1918989861,1818386793,168636005,1936019991,1702261349,1868767332,1851878765,1634607204,168650093,1634683951,1629516644,1869770784,1835102823,1953392928,1752440943,1886724197,544367984,1869440365,1629518194,778134898,168626701,1095715928,1195984964,1683693640,1702259058,1885035834,1567126625,1701603686,1701667182,1634753312,1701667186,1936876916,1275727197,1683693640,1702259058,1885035834,1567126625,1701603686,1701667182,1634753312,1701667186,1936876916,218762589,538997002,1634886000,1702126957,538997618,1701860128,1768319331,1629516645,1663072622,1634561391,1814914158,543518313,1868983913,1952542066,544108393,1970365810,1684370025,544825888,224749684,538976266,538976288,538976288,538976288,1735357040,544039282,544567161,1953390967,544175136,1684107116,235539758,1144950023,1170309466,84001575,132096,196624,524315,-65498,1175322678,543517801,544501614,1853189990,1632636516,1847617652,1713402991,1684960623,1936607507,1768318581,1852139875,1701650548,2037542765,1954039057,1701080677,1917132900]},{"sector":9,"data":[544370546,118370597,-2121384307,-1017200253,16778498,327679,1918980110,1159751027,1919906418,238101792,-264336121,499221377,65475,720896,36709,8392704,256544,-335543317,65994755,258048,-234880015,66256899,259584,-134216713,66650115,17037824,-1889075189,-1593769984,-81786615,721155,36714,151625985,17038368,-1888747509,-1325334528,-48227300,66977795,-553645311,16777358,536937889,184615935,9363200,94437632,67117057,-553645311,16777358,536937889,33555457,67305476,263168,100664325,67567620,33818624,-1897857013,268500992,186647299,0,171180544,67706890,17041920,11,268500992,186648584,67895300,2817,16777216,537660581,234882061,68091908,33820672,-1888485365,-1593769984,186646785,9400832,44106240,68235266,1979714305,16777359,536969216,184681490,9401856,-2147483392,729089,36271,25169922,33821472,-1865285621,-1560215552,187696132,9490432,77791744,68431876,267520,385877014,68681732,2113932033,16777358,536903696,436208665,68878340,269312,503317533,69140484,2817,16777216,536969232,184615968,0,-2146434816,69279745,2817,16777216,536969232,603980835,69533700,271872,184615975,9363712,-2146434816,69738496,-469759231,16777359,536903696,184615977,9396480,179372288,69869578,1694501633]},{"sector":10,"data":[16777359,536903696,273152,754975788,70123524,274432,838861873,70451204,-520090878,16777358,537068304,11,872546304,874514442,721156,0,185312769,33830176,11,-1543438336,186648586,0,109380096,70656006,17053440,-1918697461,-1325334528,941623818,70844420,17054720,-1904345077,268500992,1109393536,721156,36724,16842753,279328,1157628996,71696388,280320,1342178376,1028150337,1297044048,1128092752,1347636559,1144865605,1296257609,85212484,86507520,1321,87885116,1342,1360,91817336,91948410,1404,1420,94438816,95682560,95815093,96993280,97125833,97256907,97387981,97519055,98304000,99614720,100925440,101058053,102236160,102368793,102499867,102630941,102762015,103546880,104857600,104990273,106168320,106301013,107479040,1641,1660,1680,1700,1720,114099916,115343360,116654080,117964800,1801,119342876,120586240,121896960,122029893,122160967,122292041,123207680,123340633,1883,1900,125896576,1922,844831492,513491530,1161328196,-1824055665,512051230,1310627660,-1236263252,512446750,1446036820,-1218503143,513614886,1330512640,168488788,1330795077,1447382098,196234309,1230521605,189158483,1229193984,277676882,1124369618,38554689,-2060186585,1128809220,554631760,1376158882]},{"sector":11,"data":[1296125509,450822981,1375962382,-553431483,92605978,1396789829,441910085,1141081290,1459833925,75811354,1162893652,605785347,1163002757,17040973,1124369722,56184911,-2068563773,1430343685,1241924947,75841050,1163149636,-1003502590,1230242948,755123533,59055664,38946134,-2060968521,1280267779,807189251,1145242245,-1473939709,1212351876,55724356,-2069355145,54807810,-2065029662,1145785605,-503098807,42265125,1443054674,92604966,1229213010,643171154,1107657994,1262568786,-1640514558,1163265668,1497778514,741867266,1163068293,584517204,1342604566,1347243858,582813268,1342473462,38294593,-2064769249,1230521604,572063828,1124369638,56185940,-2067783573,1212368132,931268175,1191478594,105862223,-2058875813,1229476613,-536718266,42290699,-1895414199,59068938,106057542,-2057171164,1397506819,-1340093696,1381238916,1095648597,-1761393331,142961697,1145130828,1212631368,1884890882,1212940933,1884890882,1127088261,1160662351,1110328664,1446990913,1464877378,1985169490,1162756420,4674372,32,16908288,1452844288,50397319,-1734017023,16811862,-1526726398,8869528,131072,-2024367963,5254913,34691,8882433,35651840,-1835490048,196743,-1677721088,-2019596665,1325420111,-1509931450,16777351,34732,32769,-2018142043,16843008,100,999,-2017132544,-889126912,16777351,-1392508912,8869528,34775,8903937,524544]},{"sector":12,"data":[1452848384,-2014773113,-285147136,16777351,-1124073215,8869528,16812027,8870145,8913920,-2023620352,-2012413952,1493238016,-2022440569,8919040,-2023030528,831005186,536936584,-1734016991,788694872,1328480321,0,1452844288,758058631,758054977,1395589199,1395470080,4337408,4336943,788551471,788551469,758054992,1278148688,1278029568,1351111424,1468553864,1116226952,1233669256,1585996168,780680840,730348168,8946824,-2024209918,34649,16812175,8951041,287309824,1452844288,-2002714489,16777216,34983,-1526726144,25646744,-1241492945,16842888,34649,1347241300,61,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65535,0,0,0,0,0,0,0,0,0,16711680,-16777216,0,1014783323,993864510,34,0,0,-65536,65535,0,-65536,65535,0,-65536,-1,65535,0,0,-65536,65535]},{"sector":13,"data":[658688,0,606339082,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,1294214180,1329864787,1700143187,1869181810,775233646,673198128,1866672451,1769109872,544499815,825768241,960049453,1766662193,1936683619,544499311,1886547779,1667845152,1702063717,1632444516,1769104756,757099617,1869762592,1953654128,1718558841,1667845408,1869836146,1092645990,1914727532,1952999273,1701978227,1987208563,2122853]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,917504,0,0,0,25,0,538976288,538976288,538976288,538976288,2105376]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[1431258111,1498567758,0,0,385941505,1006632960,16780288,111872,285212672,201326600,1375731968,3,541440,738200576,111872,1627389952,201326595,1375742976,3,234240,553651200,111872,-989855744,201326595,1375740160,3,259840,822086656,111872,687865856,201326596,1375744256,3,285440,570428416,217600,-1090519040,201326596,-1258282496,1,298240,654314496,111872,-251658240,201326596,1375741696,3,336640,771755008,111872,1426063360,201326597,1375743488,3,362240,754977792,217600,-1191182336,201326597,1627401472,3,387840,687868928,217600,1325400064,201326598,-1258280704,1,400640,788532224,217600,-1291845632,201326598,1627401984,3,426240,520096768,111872,-452984832,201326598,1375739648,3,464640,536873984,217600,2063597568,201326599,-1258283008,1,477440,1711279104,217601,-553648128,201326599,-1258199552,1,503040,-872412160,220675,1962934272,201326600,1375980544,3,567040,33557504,220928,-654311424,201326600,1375732224,3,592640,285215744,221187,1023410176,201326601,1375932672,3,618240,1593838592,217601,-754974720,201326601,1543593728,3,631040,50334720,217600,922746880]},{"sector":7,"data":[201326602,-1258290432,1,656640,1023413248,111872,-117440512,201326603,1375747328,3,797440,1358957568,238592,1761607680,201326602,-1258270464,1,695040,1375734784,239104,-855638016,201326602,-1258270208,1,720640,1442843648,239616,822083584,201326603,-1258269184,1,746240,1476398080,240128,-1795162112,201326603,-1258268672,1,771840,922749952,217600,1560281088,201326604,-1258277120,1,823040,1644170240,217601,-218103808,201326604,1560371712,3,835840,1509952512,217600,620756992,201326605,1493195264,3,874240,637537280,218112,-1157627904,201326605,1375741440,3,887040,704646144,218112,520093696,201326606,1375742464,3,912640,805309440,218112,-419430400,201326606,1375744000,3,963840,603982848,218112,1258291200,201326607,1375740928,3,989440,100664832,2097152256,100663311,1023411712,100663318,1761608192,100663349,1761608704,100663349,-822082304,100663361,-285210880,100663361,16778752,1015040,100664832,2274560,33555968,3782912,67110400,3782912,83887616,4312832,117442048,4321024,100664832,-1392508672,100663311,1023411712,100663318,1761608192,100663349,1761608704,100663349,-822082304,100663361,-285210880,100663361,16778752,1027328]},{"sector":8,"data":[100664832,2274560,33555968,3782912,67110400,3782912,83887616,4312832,117442048,4321024,100664832,-587202304,100663311,1023411712,100663318,1761608192,100663349,1761608704,100663349,-822082304,100663361,-285210880,100663361,16778752,1039616,100664832,2274560,33555968,3818240,67110400,3818240,83887616,4312832,117442048,4321024,100664832,218104064,100663312,1358956032,100663320,1761608192,100663349,1761608704,100663349,-822082304,100663361,-285210880,100663361,16778752,1064192,100664832,2819328,33555968,3853568,67110400,3853568,83887616,4312832,117442048,4321024,100664832,1828716800,100663312,1023411712,100663318,1761608192,100663349,1761608704,100663349,-822082304,100663361,-285210880,100663361,16778752,1076480,100664832,2274560,33555968,3782912,67110400,3782912,83887616,4312832,117442048,4321024,100664832,-1660944128,100663312,1862272512,100663323,117441024,100663351,117441536,100663351,-822082304,100663361,-285210880,100663361,16778752,1088768,100664832,2546944,33555968,3853568,67110400,3853568,83887616,4312832,117442048,4321024,100664832,-855637760,100663312,-922745344,100663332,-855637504,100663354,-855636992,100663354,-822082304,100663361,-285210880,100663361,16778752,1101056,100664832,1661696,33555968]},{"sector":9,"data":[3570944,67110400,3570944,83887616,4312832,117442048,4321024,100664832,-50331392,100663312,-1761606144,100663327,-1862270464,100663351,-1862269952,100663351,-822082304,100663361,-285210880,100663361,16778752,1113344,100664832,2683136,33555968,3888896,67110400,3888896,83887616,4312832,117442048,4321024,100664832,754974976,100663313,1694500352,100663322,2097152512,100663350,2097153024,100663350,-822082304,100663361,-285210880,100663361,16778752,1125632,100664832,2478848,33555968,3853568,67110400,3853568,83887616,4312832,117442048,4321024,100664832,1560281344,100663313,1191183872,100663319,452985344,100663352,452985856,100663352,-822082304,100663361,-285210880,100663361,16778752,1137920,100664832,2342656,33555968,3924224,67110400,3924224,83887616,4312832,117442048,4321024,100664832,-1929379584,100663313,-1593833984,100663328,117441024,100663351,117441536,100663351,-822082304,100663361,-285210880,100663361,16778752,1150208,100664832,2751232,33555968,3853568,67110400,3853568,83887616,4312832,117442048,4321024,100664832,-1124073216,100663313,1862272512,100663323,117441024,100663351,117441536,100663351,-822082304,100663361,-285210880,100663361,16778752,1162496,100664832,2615040,33555968,3853568,67110400,3853568]},{"sector":10,"data":[83887616,4312832,117442048,4321024,100664832,-318766848,100663313,1023411712,100663318,1761608192,100663349,1761608704,100663349,-822082304,100663361,-285210880,100663361,16778752,1174784,100664832,2274560,33555968,3782912,67110400,3782912,83887616,4312832,117442048,4321024,100664832,486539520,100663314,2030044672,100663324,788529664,100663353,788530176,100663353,-822082304,100663361,-285210880,100663361,16778752,1187072,100664832,2274560,33555968,3782912,67110400,3782912,83887616,4312832,117442048,4321024,100664832,1291845888,100663314,-2097150464,100663325,-218103296,100663349,-218102784,100663349,-822082304,100663361,-285210880,100663361,16778752,1199360,100664832,2274560,33555968,3782912,67110400,3782912,83887616,4312832,117442048,4321024,100664832,2097152256,100663314,-1426061824,100663329,1761608192,100663349,1761608704,100663349,-822082304,100663361,-285210880,100663361,16778752,1223936,100664832,2274560,33555968,3782912,67110400,3782912,83887616,4312832,117442048,4321024,100664832,-587202304,100663314,-1929378304,100663326,-1526726144,100663352,-1526725632,100663352,-822082304,100663361,-285210880,100663361,16778752,1236224,100664832,2274560,33555968,3782912,67110400,3782912,83887616,4312832,117442048]},{"sector":11,"data":[4321024,100664832,218104064,100663315,1358956032,100663320,1761608192,100663349,1761608704,100663349,-822082304,100663361,-285210880,100663361,16778752,1248512,100664832,2819328,33555968,3853568,67110400,3853568,83887616,4312832,117442048,4321024,100664832,1828716800,100663315,251659776,100663340,1795162624,100663356,1795163136,100663356,-822082304,100663361,-83884288,100663361,16778752,1174784,100664832,1457408,33555968,3500288,67110400,3500288,83887616,4312832,117442048,4321024,100664832,-1660944128,100663315,419431936,100663341,1795162624,100663356,1795163136,100663356,-822082304,100663361,184551168,100663362,16778752,1309952,100664832,1457408,33555968,3500288,67110400,3500288,83887616,4312832,117442048,4321024,100664832,754974976,100663316,587204096,100663342,1795162624,100663356,1795163136,100663356,-822082304,100663361,419432192,100663362,16778752,1174784,100664832,1457408,33555968,3500288,67110400,3500288,83887616,4312832,117442048,4321024,100664832,1560281344,100663316,587204096,100663342,1795162624,100663356,1795163136,100663356,-822082304,100663361,654313216,100663362,16778752,1297664,100664832,1457408,33555968,3500288,67110400,3500288,83887616,4312832,117442048,4321024,100664832,1023410432]},{"sector":12,"data":[100663315,1023411712,100663318,1761608192,100663349,1761608704,100663349,-822082304,100663361,-285210880,100663361,16778752,1260800,100664832,2274560,33555968,3782912,67110400,3782912,83887616,4312832,117442048,4321024,100664832,-1929379584,100663316,1426064896,100663347,-1493171712,100663359,-1157626880,100663360,-822082304,100663361,-285210880,100663361,16778752,1346816,100664832,1457408,33555968,3500288,67110400,3500288,83887616,4312832,117442048,4321024,100664832,-1124073216,100663316,754976256,100663343,-184548864,100663356,-184548352,100663356,-822082304,100663361,-285210880,100663361,16778752,1371392,100664832,3432192,33555968,4030208,67110400,4242176,83887616,4312832,117442048,4321024,100664832,486539520,100663317,1593837056,100663348,2130706944,100663357,-1157626880,100663360,-822082304,100663361,-285210880,100663361,16778752,1395968,100664832,3227904,33555968,4136192,67110400,4136192,83887616,4312832,117442048,4321024,100664832,2097152256,100663317,1593837056,100663348,2130706944,100663357,-1157626880,100663360,-822082304,100663361,-285210880,100663361,16778752,1408256,100664832,3159808,33555968,4100864,67110400,4277504,83887616,4312832,117442048,4321024,100664832,-1392508672,100663317,1593837056,100663348]},{"sector":13,"data":[2130706944,100663357,-1157626880,100663360,-822082304,100663361,-285210880,100663361,16778752,1420544,100664832,3159808,33555968,4100864,67110400,4277504,83887616,4312832,117442048,4321024,100664832,-1392508672,100663317,1593837056,100663348,2130706944,100663357,-1157626880,100663360,-822082304,100663361,-285210880,100663361,16778752,1420544,100664832,3159808,33555968,4100864,67110400,4277504,83887616,4312832,117442048,4321024,100664832,-587202304,100663317,1593837056,100663348,2130706944,100663357,-1157626880,100663360,-822082304,100663361,-285210880,100663361,16778752,1432832,100664832,3159808,33555968,4100864,67110400,4277504,83887616,4312832,117442048,4321024,100664832,218104064,100663318,1593837056,100663348,2130706944,100663357,-1157626880,100663360,-822082304,100663361,-285210880,100663361,16778752,1445120,100664832,3159808,33555968,4100864,67110400,4277504,83887616,4312832,117442048,4321024,1413742336,1179535705,738207311,16889088,39936,2883584,3080238,33554490,1,11264,0,0,1413742336,1179535705,553657935,16889088,17920,2097152,3014700,33751098,1,15104,0,0,1413742336,1179535705,822093391,16889088,5063680,3014656,3014700,33554490,1]},{"sector":14,"data":[15104,0,0,1413742336,1179535705,570435151,16889088,40448,3014656,3080236,131130,1,15104,0,0,1413742336,1179535705,570435151,16889088,1937002496,3014656,3080236,131130,1,15104,0,0,1413742336,1179535705,654321231,16889088,3034112,3014656,3080236,131118,1,15104,0,0,1413742336,1179535705,771761743,33666304,7490304,2097152,2949164,33751086,1,15104,0,0,1413742336,1179535705,754984527,16998656,7498496,3014656,2949164,33685550,1,15104,0,0,1413742336,1179535705,687875663,16889088,779240960,2555904,3014702,33685548,1,15104,0,0,1413742336,1179535705,788538959,16998656,7490304,3014656,3014700,33685562,1,15104,0,0,1413742336,1179535705,520103503,16889088,40704,3014656,2949164,33685562,1,15104,0,0,1413742336,1179535705,536880719,16889088,4604416,3014656,3080236,33685562,1,15104,0,0,1413742336,1179535705,1711285839,16889089,7040256,2097152,3014700,33751086,1,15104,0,0,1413742336,1179535705,16787023,111872,9216]},{"sector":15,"data":[2883584,2949166,33554490,0,11264,0,0,1413742336,1179535705,-872405425,16997891,39168,2883584,2097198,33685562,1,11264,0,0,1413742336,1179535705,33564239,33775360,9216,2097152,2949164,33751098,1,15104,0,0,1413742336,1179535705,285222479,16998403,41984,3014656,3080236,50528314,0,15104,0,0,1413742336,1179535705,285222479,16998403,52992,3014656,3080236,50528314,0,15104,0,0,1413742336,1179535705,1593845327,16997377,1668498688,3014702,2949164,33751098,1,15104,0,0,1413742336,1179535705,50341455,16889088,9216,2883584,3080238,33554490,0,11264,0,0,1413742336,1179535705,1023419983,16889088,9216,2883584,2949166,33554490,0,11264,0,0,1413742336,1179535705,1358964303,33793024,23552,2883584,2949166,58,1,11264,0,0,1413742336,1179535705,1375741519,33793536,23552,2883584,3014702,58,1,11264,0,0,1413742336,1179535705,16787023,33666304,9216,2883584,3080238,33554490,0,11264,0,0,1413742336]},{"sector":16,"data":[1179535705,16787023,111872,9216,2883584,3014702,33554490,0,11264,0,0,1413742336,1179535705,1442850383,33794048,23552,2883584,2949166,33554490,1,11264,0,0,1413742336,1179535705,1476404815,33794560,609504768,2883584,3080238,33554490,1,11264,0,0,1413742336,1179535705,922756687,16994816,611468032,3014656,3080236,33554490,1,15104,0,0,1413742336,1179535705,1644176975,16997633,7498496,3014656,2949164,33751098,1,11264,0,0,1413742336,1179535705,1644176975,16994817,7498496,3014656,2949164,33751098,1,11264,0,0,1413742336,1179535705,1509959247,16994816,5002240,3014656,3080236,33816634,1,11264,0,0,1413742336,1179535705,1509959247,16996608,5002240,3014656,3080236,33816634,1,11264,0,0,1413742336,1179535705,637544015,33772544,1852392448,3014656,2949164,33685562,1,11264,0,0,1413742336,1179535705,704652879,33772544,1939819264,3014656,2949164,33685562,1,11264,0,0,1413742336,1179535705,805316175,33772544,8935936,3014656,2949164,33554490,1]},{"sector":17,"data":[11264,0,0,1413742336,1179535705,603989583,33772544,7620096,2097152,2949164,33554490,1,11264,0,0,1329856256,1413565516,65605,67305985,134678021,202050057,269422093,336794129,404166165,471538201,538910237,606282273,673654309,741026345,808398381,875770417,943142453,1010514489,1077886525,1145258561,1212630597,1280002633,1347374669,1414746705,1482118741,1549490777,1616862813,1145258561,1212630597,1280002633,1347374669,1414746705,1482118741,2088458841,1132428925,1094796629,1162035521,1229538629,1161904457,1330594113,1498764623,606360911,1092887588,1314213705,1067951694,-1398035799,-1339940319,-1263291727,-1195919691,-1128547655,-1061175619,-993803583,-926431547,-859059511,-791687475,-724315439,-656943403,-589571367,-522199331,-454827437,-387455259,-320083223,-252711187,-185339151,-117967115,-50595079,-259,1280069443,4543553,33619969,100992003,168364039,235736075,303108111,370480147,437852183,505224219,572596255,639968291,707340327,774712363,842084399,909456435,976828471,1044200507,1111572543,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,1583176795,1111580767,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,2122153083,-1868922753,-1891529151,1162167680,-1907799735,-1835888497,1431261007,1431279701,-1633837925,1330200991,-1499093675,-1431721817,-1364349781]}],[{"sector":1,"data":[-1296977745,-1229605709,-1162233673,-1094861637,-1027489601,-960117565,-892745529,-825373493,-758001457,-690629421,-623257385,-555885349,-488513313,-421141277,-353769241,-286397205,-219025169,-151653133,-84281097,-16909061,1329856511,1413565516,65605,-1718052970,-1650680934,-1583308898,-1515936862,-1448564826,-1381192790,-1313820754,11842482,1061043516,1107312960,1178944579,575162112,639968291,707340327,1263159595,1330531660,100860417,185207048,252579084,353636881,437786390,522067228,1364205856,1431589714,100860417,185207048,252579084,353636881,437786390,522067228,1465262368,73029976,16844828,134480129,202115080,134283532,336855297,538713108,1549474836,23027293,320607244,1611923731,1684234849,1751606885,1818978921,-1195919691,1886350957,1920055993,1987409011,2025634679,2088467065,-1094877571,-1027489601,-960117565,-2105442177,-914110265,-859059687,-808549171,-741158448,-673786412,-623257467,-572750117,-522256162,-1996665,1280069443,4543553,33619969,100992003,168364039,235736075,303108111,370480147,437852183,505224219,572596255,639968291,707340327,774712363,842084399,909456435,976828471,1044200507,1111572543,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,1579757352,1111580767,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,2116628264,1163477887,1564564289,1162167619,1531529545,1532708189,1431264335,1499224405]},{"sector":2,"data":[610018396,1330200868,1095650901,-1431748785,572632235,-1296977884,-1229605709,-1162233673,-1094861637,-1027489601,-960117565,-892745529,-825373493,-758001457,-690629421,-623257385,-555885349,-497819425,-421141277,-353769241,-286397205,-219025169,-151653133,-84281097,-16909061,1329856511,1413565516,65605,67305985,134678021,202050057,269422093,336794129,404166165,471538201,538910237,606282273,673654309,741026345,808398381,875770417,943142453,1010514489,1077886525,1145258561,1212630597,1280002633,1347374669,1414746705,1482118741,1549490777,1616862813,1145258561,1212630597,1280002633,1347374669,1414746705,1482118741,2088458841,1132428925,1531004249,1162042689,1229538629,1163746121,1548704603,1498764623,610031964,1092887644,1314213705,1062158670,-1398035799,-1339809247,-1263291727,-1195919691,-1128547655,-1061175619,-993803583,-926431547,-859059511,-791687475,-724315439,-656943403,-589571367,-522199331,-454827437,-387455259,-320083223,-252711187,-185339151,-117967115,-50595079,-259,1280069443,4543553,33619969,100992003,168364039,235736075,303108111,370480147,437852183,505224219,572596255,639968291,707340327,774712363,842084399,909456435,976828471,1044200507,1111572543,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,1583176795,1111580767,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,2122153083,1163477887,1531010113]},{"sector":3,"data":[1162167619,1548306761,1549550939,1431264591,1499289941,606348324,1330200868,-1504817579,-1431748697,572632235,-1296977886,-1229605709,-1162233673,-1094861637,-1027489601,-960117565,-892745529,-825373493,-758001457,-690629421,-623257385,-555885349,-497819425,-421141277,-353769241,-286397205,-219025169,-151653133,-84281097,-16909061,1329856511,1413565516,65605,67305985,134678021,202050057,269422093,336794129,404166165,471538201,538910237,606282273,673654309,741026345,808398381,875770417,943142453,1010514489,1077886525,1145258561,1212630597,1280002633,1347374669,1414746705,1482118741,1549490777,1616862813,1145258561,1212630597,1280002633,1347374669,1414746705,1482118741,2088458841,-2139128195,-2071756159,-2004384123,-1937012087,-1869640051,-1802268015,-1734895979,606378649,1092887588,1314213705,1067951694,-1398035799,-1339940319,-1263291727,-1195919691,-1128547655,-1061175619,-993803583,-926431547,-859059511,-791687475,-724315439,-656943403,-589571367,-522199331,-454827437,-387455259,-320083223,-252711187,-185339151,-117967115,-50595079,-259,1280069443,4543553,33619969,100992003,168364039,235736075,303108111,370480147,437852183,505224219,572596255,639968291,707340327,774712363,842084399,909456435,976828471,1044200507,1111572543,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,1583176795,1111580767,1178944579,1246316615,1313688651,1381060687]},{"sector":4,"data":[1448432723,1515804759,2122153083,1163215743,-2042543807,1162167619,1099778377,1162167695,1430865231,1431279701,1431674011,1335992479,-1499093931,-1431746137,-1364349781,-1296977745,-1229605709,-1162233673,-1094861637,-1027489601,-960117565,-892745529,-825373493,-758001457,-690629421,-623257385,-555885349,-488513313,-421141277,-353769241,-286397205,-219025169,-151653133,-84281097,-16909061,1329856511,1413565516,65605,67305985,134678021,202050057,269422093,336794129,404166165,471538201,538910237,606282273,673654309,741026345,808398381,875770417,943142453,1010514489,1077886525,1145258561,1212630597,1280002633,1347374669,1414746705,1482118741,1549490777,1616862813,1145258561,1212630597,1280002633,1347374669,1414746705,1482118741,2088458841,1132428925,1094796629,1162035521,1330201925,1161904457,1330595137,1230329167,606360911,1095705685,1314213705,1067951694,-1398035889,-1339940319,-1263291727,-1195919691,-1128547655,-1061175619,-993803583,-926431547,-859059511,-791687475,-724315439,-656943403,-589571367,-522199331,-454827437,-387455259,-320083223,-252711187,-185339151,-117967115,-50595079,-259,1280069443,4543553,-909639423,-842216502,-774844466,-707472430,-640100394,-611480358,-539042340,-471670304,1027342820,1094729534,1162101570,1229473606,572596298,639968291,1260988455,1330531660,50483536,134677764,202050057,269422093,353637138,454694934,522067228,877941586]},{"sector":5,"data":[50475861,134677764,202050057,269422093,353637138,454694934,522067228,911759190,119145561,33686018,117901060,34278155,33687298,437391890,437394970,-1771021713,302711388,34672922,1603755282,1667391840,1734763876,-1718064792,1818991514,-1650692499,1953722993,-1636338059,2054781087,2122153083,-1549622880,-1482250844,-2122274392,-1414888574,-1390957435,-2035241042,-1263291727,-1195919691,-1148601671,-1900102212,-1866428481,-1802255679,1329856257,1413565516,-16711611,-1,-1,-1,-1,-1,-1,-1,-1,606282273,687810085,741026345,808398591,875770417,943142453,1010514489,1077886525,1145258561,1212630597,1280002633,1347374669,1414746705,1482118741,1549490777,1616862813,1145258561,1212630597,1280002633,1347374669,1414746705,1482118741,2088458841,1132428925,1094796629,1162035521,1229538629,1161904457,1330594113,1498764623,-1667541681,1100979869,1314213705,-1465407922,-1398035799,-5263699,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-520093697,-454827437,-387455259,-320083223,-252711187,-185339151,-117967115,-50595079,-3,1280069443,4543553,33619969,100992003,168364039,235736075,303108111,370480147,437852183,505224219,572596255,639968291,707340327,774712363,842084399,909456435,976828471,1044200507,1111572543,1178944579,1246316615]},{"sector":6,"data":[1313688651,1381060687,1448432723,1515804759,1583176795,1111580767,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,2122153083,-2105442177,-2038070141,-1970698105,-1903326069,-1835954033,-1768581997,-353789801,-320077829,-1231382093,-38232933,-1061307138,-960191550,-1499093816,-1431721817,-525488981,-758067538,-1246454353,-1160136265,-1044398405,-909654589,-842216502,-707538481,-556083242,-1583308898,-471747880,-235934235,-84478477,-589440044,-256855570,-101190414,-387456289,-1560746778,1329856511,1413565516,65605,67305985,134678021,202050057,269422093,336794129,404166165,471538201,538910237,606282273,673654309,741026345,808398381,875770417,943142453,1010514489,1077886525,1145258561,1212630597,1280002633,1347374669,1414746705,1482118741,1549490777,1616862813,1145258561,1212630597,1280002633,1347374669,1414746705,1482118741,2088458841,1132428925,1094796629,1162035521,1229538629,1161904457,1330594113,1498764623,609178959,1092918863,1314213705,1067951694,-1398035799,-1339940319,-1263291727,-1203683007,-1128547655,-1061215196,-993803583,-935247419,-859059511,1143262925,1162167620,1229539657,-589571367,1340033501,1330597715,-387389873,1498764629,-252711335,-185339151,-117967115,-50595079,-259,1280069443,4543553,33619969,100992003,168364039,235736075,303108111,370480147,437852183,505224219,572596255,639968291,707340327,774712363,842084399,909456435]},{"sector":7,"data":[976828471,1044200507,1111572543,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,1583176795,1111580767,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,2122153083,1163215743,-1891548863,1162167619,1095321929,-1835907697,1431261007,1431279701,-1638949809,1330200991,-1499093675,-1431721817,-1364349781,-1296977745,1094825139,-1162233791,-1094861637,-1027489601,1103480003,-892745663,-825373493,1171378639,1229538629,-623294135,1239276763,1340166111,-431009969,1431693544,-296134315,-219025169,-151653133,-84281097,-16909061,1329856511,1413565516,65605,67305985,134678021,202050057,269422093,336794129,404166165,471538201,538910237,606282273,673654309,741026345,808398381,875770417,943142453,1010514489,1077886525,1145258561,1212630597,1280002633,1347374669,1414746705,1482118741,791173721,1616862761,1145258561,1212630597,1280002633,1347374669,1414746705,1482118741,791173721,1132428841,1531004249,1162042689,1229538629,1163746121,1548704603,1498764623,610031964,1092918876,1314213705,1062158670,-1398035799,-1339940319,-1263291727,-1203683007,-1128547655,-1061215196,-993803583,-935247419,-859059511,1143262925,1162167620,1229539657,-589571367,1340033501,1330597715,1347479119,1498764629,-252711335,-185339151,-117967115,-50595079,-259,1280069443,4543553,33619969,100992003,168364039,235736075,303108111,370480147,437852183,505224219,572596255]},{"sector":8,"data":[639968291,707340327,774712363,842084399,909456435,976828471,1044200507,1111572543,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,1583176795,1111580767,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,2122153083,1163215743,1564564289,1162167619,1531529545,1532708189,1431264335,1499224405,-1638128548,1330200868,1095650901,-1431748785,572632235,-1296977886,1094825139,-1162233791,606387387,-1027489601,1103480003,-892745663,-825373493,1162101796,1229538629,-623294135,1239276763,1330859999,-431009969,1431654480,-296134315,-219025169,-151653133,-84281097,-16909061,1329856511,1413565516,65605,67305985,134678021,202050057,269422093,336794129,404166165,471538201,538910237,606282273,673654309,741026345,808398381,875770417,943142453,1010514489,1077886525,1145258561,1212630597,1280002633,1347374669,1414746705,1482118741,1549490777,1616862813,1145258561,1212630597,1280002633,1347374669,1414746705,1482118741,2088458841,1132428925,1547781465,1162042177,1229538629,1163615305,1565482076,1498764623,610097501,1092918877,1314213705,1067951694,-1398035799,-1339940319,-1263291727,-1203683007,-1128547655,-1061215196,-993803583,-935247419,-859059511,1143262925,1162167620,1229539657,-589571367,1340033501,1565478739,-387389859,1498764629,-252711335,-185339151,-117967115,-50595079,-259,1280069443,4543553,33619969,100992003,168364039,235736075]},{"sector":9,"data":[303108111,370480147,437852183,505224219,572596255,639968291,707340327,774712363,842084399,909456435,976828471,1044200507,1111572543,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,1583176795,1111580767,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,2122153083,1163477887,1531010113,1162167619,1548306761,1549550939,1431264591,1499289941,-1638063011,1330200868,-1504817579,-1431748697,572632235,-1296977886,1094825139,-1162233791,606387387,-1027489601,1103480003,-892745663,-825373493,1162101796,1229538629,-623294135,1239276763,1330859999,-431009969,1431693544,-296134315,-219025169,-151653133,-84281097,-16909061,1329856511,1413565516,-536805307,-454827295,-387455259,-320083223,-252711187,-185339151,-117967115,-50595079,16776957,-1182422875,-1431730298,-1398896469,1974513582,2088401014,-2139128195,-1598901887,-1984716127,403968514,707274268,993605420,1363361597,1515672915,1818912862,-1953860754,-1095909492,420811523,724117277,1010445624,1380204606,1532515924,1835755871,-1886489489,379437456,185147239,588713735,859119909,504236593,1279922193,1919116616,-1202690485,96248911,1113671215,-1265330879,-2105303910,-810109530,-858861104,-1727657980,-707472430,-976831558,-842282550,-703853112,-623257385,465034459,539238938,875703862,-572537657,1172189339,1313294681,1566347853,1902273632,-1480748688,-1752920673,-1815960682,2071446464,-16672647,1280069443]},{"sector":10,"data":[4543553,-255,-1,-1,-1,-1,-1,-1,-1,572653567,639968291,707340543,788474923,842084399,909456435,976828471,1044200507,1111572543,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,1583176795,1111580767,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,2122153083,1163215743,1094795585,1162167619,1095321929,1094796609,1431261007,1431263573,-1638949809,1330200991,-1499181483,-1431721817,-1364349781,-81,1094844415,-18367,-1094844417,-1,1107296255,-191,-1,1162101967,1229538629,-46775,1239285759,1330860031,-431009969,1431655508,-296134315,-219021329,-151653133,-84281097,-131845,1329856511,1413565516,65605,-1718052970,-1650680934,-1583308898,-1515936862,-1448564826,-1381192790,-1313820754,11842482,1061043516,1107312960,1178944579,575162112,639968291,707340327,1263159595,1330531660,100860417,185207048,252579084,353636881,437786390,522067228,1364205856,1431589714,100860417,185207048,252579084,353636881,437786390,522067228,1465262368,73029976,16844828,134480129,202115080,134283532,336855297,538713108,1544821780,23027220,320607244,1611923731,1684234849,1751606885,1818978921,-1207893759,16871021,1920032091,1987409011,2025634679,2088467065,129859197,134744071,202116108,-2105442177,344132807,336860185,454788116,538713116,14079264]},{"sector":11,"data":[-623257467,-572750117,-522256162,-1996665,1280069443,4543553,33619969,100992003,168364039,235736075,303108111,370480147,437852183,505224219,572596255,639968291,707340327,774712363,842084399,909456435,976828471,1044200507,1111572543,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,1583176795,1111580767,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,2122153083,-1027506049,-960117565,-892745529,-825373493,-758001457,-690629421,-623257385,-555885349,-2088599073,-2034399868,-1970698105,-1903326069,-1835954033,-1768581997,-1701209961,-1633837925,-1566465889,-1499093853,-1431721817,-1364349781,-1296977745,-1229605709,-1162233673,-1078018885,-488513344,-421141277,-353769241,-286397205,-219025169,-151653133,-84281097,-16909061,1329856511,1413565516,65605,67305985,134678021,202050057,269422093,336794129,404166165,471538201,538910237,606282273,673654309,741026345,808398381,875770417,943142453,1010514489,1077886525,1145258561,1212630597,1280002633,1347374669,1414746705,1482118741,1549490777,1616862813,1145258561,1212630597,1280002633,1347374669,1414746705,1482118741,2088458841,-2139128195,-1044332610,-976960574,-909588538,-842216502,-774844466,-707472430,-640100394,-572728358,-505356322,-437984286,-370612250,-303240214,-235868178,-168496142,-101124106,-2114126854,-2054913150,-1987541114,-1920169078,-1852797042,-1785425006,-1718052970,-1650680934]},{"sector":12,"data":[-1583308898,-1515936862,-1448564826,-1381192790,-1313820754,-1246448718,-1179076682,-1111704646,-259,1280069443,4543553,33619969,100992003,168364039,235736075,303108111,370480147,437852183,505224219,572596255,639968291,707340327,774712363,842084399,909456435,976828471,1044200507,1111572543,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,1583176795,1111580767,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,2122153083,-2105442177,-2038070141,-1970698105,-1903326069,-1835954033,-1768581997,-1701209961,-1633837925,-1566465889,-1499093853,-1431721817,-1364349781,-1296977745,-1229605709,-1162233673,-1094861637,-1027489601,-960117565,-892745529,-825373493,-758001457,-690629421,-623257385,-555885349,-488513313,-421141277,-353769241,-286397205,-219025169,-151653133,-84281097,-16909061,1329856511,1413565516,65605,67305985,134678021,202050057,269422093,336794129,404166165,471538201,538910237,606282273,673654309,741026345,808398381,875770417,943142453,1010514489,1077886525,1162101569,1263159623,1347374668,1431523921,1498961750,1583176794,791175519,828333609,1162101569,1263159623,1347374668,1431523921,1498961750,1583176794,791175519,1149206057,1111640155,1212432962,1179011144,1212301922,1683252067,1616927586,609508196,1109664852,1113281613,1062949965,-1398035799,-1339809247,-1263291727,-1195919691,-1128547655,-1061175619,-993803583,-926431547]},{"sector":13,"data":[-859059511,-791687475,-724315439,-656943403,-589571367,-522199331,-454827437,-387455259,-320083223,-252711187,-185339151,-117967115,-50595079,-259,1280069443,4543553,33619969,100992003,168364039,235736075,303108111,370480147,437852183,505224219,1886350879,1953722993,2021095029,2088467065,1717920893,1785292903,2121100395,-2105442177,656508035,875506728,976696885,1094728763,1263159620,1532384078,1616797020,-2004384123,656509577,875506728,976696885,1094728763,1263159620,1532384078,1616797020,-1903326069,811150112,693642022,1211318059,593639752,1027420201,1044268870,1497846354,-1891675052,1161306666,1629758551,-1875758495,-1856951710,-1718052974,639802266,-1650699983,1667473310,-1549622880,631678372,-1448564955,-1381192790,774712723,943861299,-1347538631,1482011056,1179600306,1346519875,1280789584,1432313690,-1229613900,-1768572745,-1128547655,-1286779558,1329856511,1413565516,65605,67305985,134678021,202050057,269422093,336794129,404166165,471538201,538910237,1179399720,959793997,625887546,1529621796,1600019804,1667391840,1378232164,1126847571,1768384101,1852599146,1936879983,2021029236,2105244281,-2105442178,1245414531,790704188,1768384101,1852599146,1936879984,2021029236,2105244281,-2105442178,1446872195,1754673726,1701145215,1785226597,1886415466,1785029999,2004247909,1887338102,1198948215,1702657142,1971222128,728591733,1532712258,-1757923543,-1684366952]},{"sector":14,"data":[1097164133,-1616994916,-1583331259,-1515936862,-1486527066,-1414878808,1984212396,1785358949,1886416928,-1313820754,1991405655,1987475067,1361074550,1887338110,590226051,1079713871,1479823423,1583100721,-10833059,1280069443,4543553,33619969,100992003,168364039,235736075,303108111,370480147,437852183,505224219,572596255,639968291,707340327,774712363,842084399,909456435,976828471,1044200507,1111572543,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,1583176795,1111580767,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,2122153083,1163215743,1094795585,1162167619,1095323465,1161905473,1431261007,1431259477,609559588,1330200911,-1504817579,-1437646937,572632235,-1296977886,-1229605709,-1162233673,-1094861637,-1027489601,-960117565,-892745529,-825373493,-758001457,-690629421,-623257385,-555885349,-497819425,-421141277,-353769241,-286397205,-219025169,-151653133,-84281097,-16909061,1329856511,1413565516,65605,67305985,134678021,202050057,269422093,336794129,404166165,471538201,538910237,606282273,673654309,741026345,808398381,875770417,943142453,1010514489,1077886525,1145258561,1212630597,1280002633,1347374669,1414746705,1482118741,1549490777,1616862813,1145258561,1212630597,1280002633,1347374669,1414746705,1482118741,2088458841,1132428925,1094796629,1162035521,1229538629,1161904457,1330594113,1498764623,609178959,1092918863]},{"sector":15,"data":[1314213705,1067951694,-1398035799,-1339940319,-1263291727,-1203683007,-1128547655,-1061215196,-993803583,-935247419,-859059511,1143262925,1162167620,1229539657,-589571367,1340033501,1330597715,-387389873,1498764629,-252711335,-185339151,-117967115,-50595079,-259,1280069443,4543553,33619969,100992003,168364039,235736075,303108111,370480147,437852183,505224219,572596255,639968291,707340327,774712363,842084399,909456435,976828471,1044200507,1128349759,1229407556,1313622858,1381060687,1465275731,1549424984,1633640029,1579757352,1128357983,1229407556,1313622858,1381060687,1465275731,1549424984,1633640029,2116628264,1213940863,1111638594,1212696644,1112362317,1667450946,1532257364,1533304923,-1638652844,1414349348,1095914075,-1431748780,572632235,-1296977886,1111667891,-1162233790,606387387,-1027489601,1120257219,-892745662,-825373493,1212565028,1296844872,-623293107,1306385627,1413698783,-430681004,1532715618,-295673765,-219025169,-151653133,-84281097,-16909061,1129709567,541414209,-2147450848,-1908324966,1166053185,1229538629,-1869640119,-1722838382,1498764623,-1667523943,1100979869,-1521135799,-1465407835,-1398035799,-1330663763,-1263291727,-1195919691,-1128547655,-1061175619,-993803583,-926431547,-859059511,-791687475,-724315439,-656943403,-589571367,-522199331,-454827295,-387455259,-320083223,-252711187,-185339151,-117967115,-50595079,-259,1396786005,-2145378235,1163215616]},{"sector":16,"data":[-2042543807,1162167619,1099778377,1162167695,1430865231,1431279701,1431674011,1335992479,-1499093931,-1431746137,-1364349781,-1296977745,-1229605709,-1162233673,-1094861637,-1027489601,-960117565,-892745529,-825373493,-758001457,-690629421,-623257385,-555885349,-488513313,-421141277,-353769241,-286397205,-219025169,-151653133,-84281097,-16909061,1129709567,541414209,-2147450848,-1908305766,1166053185,1229538629,-1869640119,-1722838382,1498764623,-1667392871,1100979869,-1521135799,-1465407835,-1398035799,-1330663763,-1263291727,-1195919691,-1128547655,-1061175619,-993803583,-926431547,-859059511,-791687475,-724315439,-656943403,-589571367,-522199331,-454827295,-387455259,-320083223,-252711187,-185339151,-117967115,-50595079,-259,1396786005,-2145378235,-1868922880,-1891529151,1162167680,-1907799735,-1835888497,1431279951,-1701226155,-1633837925,1330200991,-1499093675,-1431721817,-1364349781,-1296977745,-1229605709,-1162233673,-1094861637,-1027489601,-960117565,-892745529,-825373493,-758001457,-690629421,-623257385,-555885349,-488513313,-421141277,-353769241,-286397205,-219025169,-151653133,-84281097,-16909061,1129709567,541414209,-2147450848,-1908305766,1166053185,1229538629,-1869640119,-1722838382,1498764623,-1667523943,1100979869,-1521135799,-1465407835,-1398035799,-1330663763,-1263291727,-1195919691,-1128547655,-1061175619,-993803583,-926431547,-859059511,-791687475,-724315439,-656943403,-589571367,-522199331,-454827295]},{"sector":17,"data":[-387455259,-320083223,-252711187,-185339151,-117967115,-50595079,-259,1396786005,-2145378235,1163231232,-1891548863,1162167680,1095321929,-1835907697,1431261007,1431279701,-1633837925,1330200991,-1499093675,-1431721817,-1364349781,-1296977745,-1229605709,-1162233673,-1094861637,-1027489601,-960117565,-892745529,-825373493,-758001457,-690629421,-623257385,-555885349,-488513313,-421141277,-353769241,-286397205,-219025169,-151653133,-84281097,-16909061,1129709567,541414209,-2147450848,-1903193958,-1988065647,-1937010039,-1869640040,-1718840687,-1734502743,-1667523943,-2036359523,-1516855413,-1465407835,-1398035799,-1330663763,-1263291727,-1195919691,-1128547655,-1061175619,-993803583,-926431547,-859059511,-791687475,-724315439,-656943403,-589571367,-522199331,-454827295,-387455259,-320083223,-252711187,-185339151,-117967115,-50595079,-259,1396786005,-2145378235,-2105442304,-2038070141,-1970698105,-1903326069,-1835954033,-1768581997,-1701209961,-1633837925,1330200991,-1499093675,-1431721817,-1364349781,-1296977745,-1229605709,-1162233673,-1094861637,-1027489601,-960117565,-892745529,-825373493,-758001457,-690629421,-623257385,-555885349,-488513313,-421141277,-353769241,-286397205,-219025169,-151653133,-84281097,-16909061,1129709567,541414209,1124106272,1094796629,1162035521,1229538629,1161904457,1330614930,1498764623,-1672522417,1100979791,-1521135799,-1465407835,-1398035799,-1330663763,-1263291727,-1203683007,-1128547655]}],[{"sector":1,"data":[-1061175619,-993803583,-935247419,-859059511,-774910259,1162167761,1229539657,-589571367,1340033501,1330597857,-387389873,1498764629,-252711335,-185339151,-117967115,-50595079,-259,1396786005,-2145378235,1167737600,1094815297,1162167619,-1907799735,-1835907775,1431279951,-1701226155,-1638949809,1330200991,-1499093675,-1431721817,-1364349781,-1296977745,1094825139,-1162233791,-1094861637,-1027489601,1103480003,-892745663,-825373493,1171378639,1229538629,-623294135,1239276763,1340166111,-431009969,1431693544,-296134315,-219025169,-151653133,-84281097,-16909061,1129709567,541414209,-2147450848,-1900638054,-763326537,-673655597,-1869639970,-1713204590,1508633315,-1667392871,-1247830371,-1511399210,-1465407835,-1398035799,-1330663763,-1263291727,-1195919691,-1128547655,-1061175619,-993803583,-926431291,-859059511,-774910259,-724315439,-656943543,-589571367,-522199331,-438050079,-387389723,-303306007,-252711187,-185339151,-117967115,-50595079,-259,1396786005,-2145378235,-1868922880,-1883795786,-724315520,-1897998376,-1835888497,-354182686,-1701226005,-1633837923,-522799713,-1499093527,-1431721817,-1364349781,-1296977745,-1229605709,-1162233673,-1094861637,-1027489601,-943340349,-892745529,-825373493,-758001201,-699804461,-623257385,-555885349,-488513313,-421141021,-353769240,-286396949,-219025169,-151653133,-84281097,-16909061,1129709567,541414209,-2147450848,1094796629,1166053185,1229538629,1167016265,1330614930]},{"sector":2,"data":[-1739238065,-1672522417,1100979791,-1521135799,-1465407835,-1398035799,-1330663763,-1263291727,-1203683007,-1128547655,-1061175619,-993803583,-935247419,-859059511,-774910259,1162167761,1229539657,-589571367,1340033501,1330597857,-387389873,1498764629,-252711335,-185339151,-117967115,-50595079,-259,1396786005,-2145378235,-2105442304,-2038070141,-1970698105,-1903326069,-1835954033,-1768581997,-1701209961,-1633837925,-1566465889,-1499093853,-1431721817,-1364349781,-1296977745,-1229605709,-1162233673,-1094861637,-1027489601,-960117565,-892745529,-825373493,-758001457,-690629421,-623257385,-555885349,-488513313,-421141277,-353769241,-286397205,-219025169,-151653133,-84281097,-16909061,1129709567,541414209,-2147450848,-1908305766,1166053185,-1953807035,-1869640051,-1722838382,-1751689843,-1667392871,-1533043043,-1532516699,-1465407835,-1398035799,-1330663763,-1263291727,-1195919691,-1128547655,-1061175619,-993803583,-926431547,-859059511,-791687475,-724315439,-656943403,-589571367,-522199331,-454827295,-387455259,-320083223,-252711187,-185339151,-117967115,-50595079,-259,1396786005,-2145378235,-1868922880,-1883795786,-724315520,-1897998376,-1835888497,-354182686,-1701209877,-1633837923,-522799713,-1499093527,-1431721817,-1364349781,-1296977745,-1229605709,-1162233673,-1094861637,-1027489601,-943340349,-892745529,-825373493,-758001201,-690629421,-623257385,-555885349,-488513313,-421141021,-353769240,-286396949,-219025169,-151653133]},{"sector":3,"data":[-84281097,-16909061,1129709567,541414209,-2147450848,-1900638054,-763346505,-673655597,-1869640119,-1713204590,-1729369373,-1667523943,-1247895907,-1511399210,-1465473371,-1398035799,-1330663763,-1263291727,-1195919691,-1128547655,-1061175619,-993803583,-926431547,-859059511,-791687475,-724315439,-656943403,-589571367,-522199331,-454827295,-387455259,-320083223,-252711187,-185339151,-117967115,-50595079,-259,1396786005,-2145378235,-1868922880,-1881239882,-1965843072,-1903306870,-1852731249,-1785357854,-1701210217,-1633838181,-522799700,-1499159319,-1431787354,-1363628915,-1296977745,-1229605709,-1162233673,-1111638853,-1027489601,-960117565,-892745530,-825373493,-758001201,-690629933,-623265833,-555885349,-488513313,-422190109,-387323674,-571609621,-219025169,-151653133,-84281097,-16974613,1129709567,541414209,-2147450848,-1900638054,-763326537,-673655597,-1869640119,-1713204590,-1729369373,-1667392871,-1247895907,-1511399210,-1465473371,-1398035799,-1330663763,-1263291727,-1195919691,-1128547655,-1061175619,-993803583,-926431291,-859059511,-791687475,-724315439,-656943543,-589571367,-522199331,-438050079,-387455259,-554964247,-252711187,-185339151,-117967115,-50595079,-259,1396786005,-2145378235,-1868922880,-1883795786,-724315520,-1897998376,-1835888497,-354182686,-1701209877,-1633837923,-522799713,-1499093527,-1431721817,-1364349781,-1296977745,-1229605709,-1162233673,-1094861637,-1027489601,-943340349,-892745529,-825373493]},{"sector":4,"data":[-758001201,-690629421,-623257385,-555885349,-488513313,-421141021,-353769240,-286396949,-219025169,-151653133,-84281097,-16909061,1430716415,1163084099,-2147450848,-2071756159,-2004384123,-1937012087,-1869640051,-1802268015,-1734895979,-1667523943,-1600151907,-1532779871,-1465407835,-1398035799,-1330663763,-1263291727,-1195919691,-1128547655,-1061175619,-993803583,-926431547,-859059511,-791687475,-724315439,-656943403,-589571367,-522199331,-454827295,-387455259,-320083223,-252711187,-185339151,-117967115,-50595079,-259,1094931782,-2145368749,-1868922880,-1883795786,-724315520,-1897998376,-1835888497,-354182686,-1701209877,-1633837923,-522799713,-1499093527,-1431721817,-1364349781,-1296977745,-1229605709,-1162233673,-1094861637,-1027489601,-943340349,-892745529,-825373493,-758001201,-690629421,-623257385,-555885349,-488513313,-421141021,-353769240,-286396949,-219025169,-151653133,-84281097,-16909061,1430716415,1163084099,-2147450848,-1900638054,-1652518946,-678786349,-1869640051,-1713204847,-1751673451,-1684301159,-1246978403,-1528176426,-1465473372,-1400001880,-1330663752,-1263291727,-1195919691,-1128547655,-1061175875,-993803583,-926497083,-859059511,-774910259,-757869871,-1210591531,-589571367,-522199331,-471604511,-387520811,-303306519,-252715539,-185339151,-117967115,-51643655,-260,1095254854,371204178,-16776960,35651584,790769166,979196764,725499004,-13878467,1396916804,2105376,-16777216,1396916804]},{"sector":5,"data":[102768672,-526417664,-16776964,1396916804,69214240,12550400,1111817984,538989379,-2130705376,-16776964,1396916804,69214240,16613632,542330112,542330692,1936876886,544108393,808463925,692267040,2037411651,1751607666,959520884,825045304,540096825,1919117645,1718580079,1866670196,1277194354,1852138345,543450483,1702125901,1818323314,1344285984,1701867378,544830578,1293969007,1869767529,1952870259,1819033888,1734963744,544437352,1702061426,1684371058,554016,-583598151,-1777382394,796893487,800534444,-191090750,-1675806208,244]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[-1,1474560,1195704353,538977345,8224,-1993474048,771756574,1312396,1397791947,516238878,1200226322,1997552642,1997028401,1431458086,-1744415145,-422449013,-661731188,33658111,771817485,1187525,117655433,1516068702,-955454631,16778055,1204225515,528548611,-878880677,11731924,1638640,11338692,327914,14746574,590110,13370304,1376521,11666370,65775,19465178,65836,19334092,65834,19399626,65835,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16777217,0,0,0,0,21302018,70778880,707406336,1768444960,1936269427,1886339872,1734963833,673215592,824191331,758396985,809056561,1667845408,1869836146,706770022,10794,62652416,0,0,0,101632,27648,76544,1140850688,1681818655,74277997,76940438,-972440326,-1022749431,-787754741,956756742,-871931129,-1693973497,-1945612792,-653678839,-1627113461,-66782204,-66782204,-50004732,990194180,1174747909,-1039813371,-66782203,1392891140,-66782202,-16777212,234881023,134744077,-16250880,-16776961]},{"sector":9,"data":[319824127,318903042,318903042,318903042,721556226,-1957510208,-1207931882,-90436595,23849198,1726540866,-997832191,23062766,1525214274,12559105,235911242,22014190,1256778818,-997832191,21227758,-1549931454,1048576193,1946157361,1408643853,583761,20647560,-1017488551,-335295302,-1576984344,-167051086,-274594956,-322260480,184625570,-1576831754,96010540,868528640,-1014326053,-85397766,-68402688,-1383626678,1962281728,-360216572,-421379328,162650507,-1014313294,-622268678,-68402688,-511211446,1962281728,512198660,-421379327,363977099,9705098,-1014305542,74584124,183181324,20655672,-167050123,-1062071180,10741998,-2021069758,-167051060,-2021129100,1140523273,-645148958,378149297,-319160172,-2147449624,-1963325718,2062085827,-68402688,-1282963382,1962281728,-259553276,-421379328,777044893,604059296,1946762255,1946369029,-1017579263,78132932,-164314074,1610909446,-964612492,-58719168,-2093255665,-58703674,-2127334384,-2147401530,712249852,-2143238525,578032380,-2143238525,443814908,104918657,1996749952,-5576695,-964623246,-1070463808,-388896559,1355018243,1139033060,1464976216,1048587859,1946157361,-913550804,1824250254,-737688064,-634894394,280171188,-16117555,1824197236,-1274558976,-1171765306,-402652738,-346358114,1824196179,126365184,-2010249724,1609050183,-1899983617,-1899459368,96895936,-1342132801,431598083,1202057984,-207354703,1005487013,-216419926]},{"sector":10,"data":[78727077,-1935281244,-958886200,335579654,664977459,19571201,19440192,117517218,-125059021,1824195761,121735168,-502741117,11313912,-1017553061,-661733325,772018336,20063882,-159390592,33851142,816320372,-1263514507,1947204736,-351816694,1949345798,1356116029,1493118952,-16663725,20004480,-1291684864,133988356,-5039756,1996749952,-2147372270,78142,78840436,1946065896,-1996311806,-956224226,-16699642,1405311999,-1900006626,-153515048,134514438,-947239307,540827684,12256629,-163976418,17073926,1048588917,1996686409,-27334637,95424114,41089082,-667224062,-670956942,-16071682,507119732,41026693,-1014244558,272417834,-1006763403,-1980004833,1526775070,-326412861,142510675,443875082,-584393078,1960786499,1007727377,-167284209,41181380,512285490,113639654,1527709871,255640413,124911792,1966130422,-1575964670,-960298778,58374,11470534,-1070349553,1048631438,1957954659,-2029586700,-311098876,71902858,-1945868640,1407094478,813039370,-478093276,-1966929377,-2115776261,168235235,66879739,-1444411529,-351898883,-868317138,-583104512,-2133292544,-1009770269,-1009728560,1979972736,31686678,-1022750684,-845020660,-1572847616,1077936334,1526779810,-1996508989,-1576999898,-1348337431,-1286356224,1913601027,1623520774,-2008350347,1526785310,-326412861,-661733325,116839600,1946289287,951365634,1963221766,1183470436,182727176,-2146404928,1417090299,-13449334]},{"sector":11,"data":[-863533010,1212803840,-2010249355,-352264898,1967654463,-1940434662,-1931964736,-1950314808,13418482,-218101575,1604601765,1210116953,646585717,65537097,1149904637,1977289267,-336124924,1976303110,772279298,117496994,1438866779,1183509643,1931492360,1946369132,1007625322,-1956482301,65438707,19760264,-661733325,71902858,-1596159405,367527011,138840829,1081610284,246879604,20004480,-1224576000,1959329296,-32983290,-2144766520,74778619,13057672,1049153534,1589117116,66813953,1911031927,-1207733252,-939654968,-403245066,12952136,-2000462501,1560326174,419070147,-75495051,-2012974320,-402572522,-225707212,7255179,1931541120,-1021801981,-1950147446,-84767805,7572608,553287683,7115915,7255179,-13490829,-92266360,1343387072,9705098,-1062053652,-59774738,-68238198,1726541507,-997833988,-2000421906,-1408335868,-68287744,419070147,-41940619,-2012974320,-402572522,-1957168436,-1947038725,855666356,63276736,-202780176,-204353115,1472421796,-1946973434,7126010,122257658,-1961784573,-1064566151,-1014047860,-1070344050,-133970554,-202780335,-204353115,1507561124,-92210901,-1977780800,-67901403,-1810462128,-1302795264,-420942144,-289110277,1078445190,351004130,-689429110,-756486405,-997833989,-997831954,-320716729,-1006936313,-2144971951,225777727,41910310,-2012843248,-352240882,79921925,1499195618,1476013032,-1960379509,1857325877,1166681600,-268199934,-1543256189]},{"sector":12,"data":[-1017123614,-74755497,898311930,7572608,1821674243,1857325824,1166681600,-268199934,56986150,-92265336,1343387072,9705098,-1062053652,-78124818,-336673654,1323888136,-997833989,80184302,1599782882,1364706299,-410912117,-242515969,-1920275150,775422066,208929073,1964572547,1224638727,1224832084,28373899,134245563,101189441,2039152812,-1933538300,-1899786533,-202780200,-204353115,-1899983196,174021083,1471314422,1397838342,-1064380276,855665851,122156745,-967019519,-1979578553,2139817551,74943234,-372125302,-774789645,-980769549,-248788342,-92268661,-1673890368,9705098,1946724588,-980747525,613073074,-1810462128,-1302795264,-1628901696,-289110278,-1763130234,-499104006,-299847451,1358597352,9705098,-342009620,-2145088986,74827002,393478460,1976498816,1946565636,-285565938,1123707112,-1645296506,1187284554,-2082807232,-75429693,57868428,1358916329,9705098,1189632236,-1408829702,913572096,11273926,19701762,-301913694,-1292226328,15704258,-301944158,955917544,1963012366,-1597197803,664928554,317255169,-1597328646,681705771,1499196929,-1017182374,-74755753,-315428213,7507082,7386251,-1510741551,-1527524911,1438867289,1183509643,71064840,-466480265,-259268399,27632895,-940799147,12912710,1381090141,-555199657,1962871553,-1158630351,96141328,-1945056000,-1610564898,96000654,63879681,-386991460,-2042431071,-2002915644,-1275360763,-1158564859,281870352]},{"sector":13,"data":[300473998,-74753032,-1191154498,-207355806,1499094949,1465012675,26208262,930414347,-1902116678,63879898,-1677720648,1592323834,-997833991,1458064110,-16205575,-112203538,-289110462,-1292285720,251836612,-113252114,-289110462,-1962571107,7127027,-896745332,-661732722,4359306,4359482,-2071326091,-2059796411,141885509,8094858,8095034,-1543478599,-1912101389,-1241271846,11386371,12076660,-1664830975,-219615494,-997833992,-997831954,1090054376,-301898614,1123606760,1257161862,-1325868824,73697796,-120592146,-289110462,-1292318488,-1979273010,-301930714,1123597544,-1645296506,-980761422,-1360518006,-285565704,1123592424,-1645296506,1187284554,1946238016,-1964645638,-1106726463,-827195167,-1964497782,-285565704,1123583208,-1645296506,1187284554,1946565696,-1964645638,-1978027583,-1107268586,613023923,-1661442840,1592323834,-997833992,-2041930258,-499104060,-1978758423,13417984,-1810462052,145288192,-1963263116,-1967082811,-130553820,-1810462128,-1302795264,719908544,-289110280,1078379654,548464098,-285729560,1358436584,9705098,-392341268,698415117,115928577,-1597852936,955121842,1963012366,-1597197806,-219676377,-286724361,-1597328649,1609433384,868440410,20226303,322731812,220990583,-466483080,-1114900477,-1581055593,-1993998035,19898631,38242598,-1899262781,21281731,-1898214205,20757443,-58655805,-2144963856,460847868,508973308,254133386,-1948200704,-1899459344,-1349189672]},{"sector":14,"data":[1482563329,-94871857,925826862,335314945,-1557203593,-469106382,942540661,1963012390,-1974054867,-259286844,20226094,976125732,1912728964,518443472,117317390,-1963196092,-16698074,520209812,-469084066,-469105035,20226606,788176028,20389631,772175005,21237502,1448104399,-1899394018,-1123120167,-389184000,1048639529,1946157361,-1209467900,1482563575,251539033,785318212,24782394,-147056523,1455100023,1958742612,1963342858,34322693,-154203726,-58667056,1006925078,772109317,24522495,520040092,-1993473674,771849502,25101964,-1014051956,-821986373,0,0,0,0,1195706893,1698963521,1701013878,1769096224,544367990,1936876886,544108393,825306674,221851694,1886339850,1734963833,673215592,1293953347,1869767529,1952870259,1919894304,1634889584,1852795252,943272224,959524148,168636473,2037411651,1751607666,1126703220,1112088617,959520845,825046584,221722681,1919897610,1852795252,1866670195,1769109872,544499815,539575080,1819764040,762606693,1801675088,543453793,539914051,926431537,168626701,544165412,541148997,1685217640,1701994871,1952801824,1702126437,604638564,1868767297,1864399216,1752440934,1195712613,1698963521,1701013878,1769096224,544367990,1847620457,1763734639,1635021678,1684368492,218762542,541139978,2037411683,543584032,543516788,541148997,1769366852,1142973795,1702259058,1936269426,1768251936,1763731310]},{"sector":15,"data":[1635021678,1684368492,218762542,1866671114,1851878765,1768693860,1881171310,1835102817,1919251557,168639091,538970637,1314211360,1482177859,1869881388,1634231072,543516526,542395977,541607474,1668183398,1852795252,1836412448,779248994,538970637,1752639520,543519333,1763727448,808984691,1919448096,1751610735,541476384,1635280232,1768121700,543973741,1818455657,1986622325,168634725,1866861069,2019893362,1819307361,538983013,1230390596,1161643331,1176518983,1027821141,168641345,1428425229,1735289203,1717920800,1953264993,1818326560,1864394101,1128407142,1769166116,1965057902,544367987,1768318308,543450478,1970037110,1718558821,609769504,1868963912,1852383346,1920099700,544501877,541607474,1668183398,1852795252,1818321696,221148012,1968055306,1919246957,1935765536,543450483,1176530804,541281877,1763734377,1818326638,539911273,1701139232,1635280160,1701605485,1868718368,221144438,1849762826,1701344367,1919950962,1634887535,1634213997,1868767347,1869771886,1718558828,1701344288,1414416672,1212559904,1853187616,1869182051,1970151534,1919246957,1124732206,1869508193,1867260020,1159750753,1142964551,1667855973,1917067365,1919252073,604638510,1868767297,1864399216,1752440934,1195712613,1698963521,1701013878,1769096224,544367990,1629516649,1634038380,1814067556,1701077359,168636004,1461979661,1768845921,555837294,1699880992,1667329136,543649385,1864396385,1663067244]},{"sector":16,"data":[544829551,1948280431,1159751016,1142964551,1667855973,1917067365,1919252073,604638510,623098108,-854492230,-803304671,-762853620,-2096308212,34394118,33621703,401080851,-1169721599,1894256005,-855002110,-1173769183,567086496,567095476,-930357114,1187525,856706956,239569344,52427137,-1557260173,1200095236,16351501,-2130283517,1963133689,239585029,213385324,-269958272,-390630912,-1075314281,-1171426303,-922874034,-75388812,544560214,-1174287896,-1703735380,168775354,-1953270300,-955461602,-485698937,-804879601,65733132,-402535960,12058776,-1596420608,-1574042489,-2002779851,916598276,-1977912319,-1610331866,-266075037,-1947030552,-2046771954,-206837555,-661733333,-508034804,109574667,-1557266368,-930348745,4327047,20554542,-2029220936,771800070,-1946061149,-1106868280,-1557202176,1235222904,883043844,-1899262975,839153115,-401551900,162791807,-854731078,-1894872031,-1961980927,304006401,239585024,1334578384,-1010814192,280171188,-1015017267,12108796,-841272550,1964653584,133922829,-75496076,-1576831736,-809303759,1187525,-401442875,1223163950,-389467647,222036035,1017913716,-1393265338,-277523140,1968061612,1128049898,870901109,4122624,2049345582,-1009224959,-24387957,-1064380276,1947024556,1918974989,2004499462,-1428216830,-208933141,540847299,154991476,-1018235020,1948269740,1946762491,1950170359,-617364493,-456071286,-456071984,-2010192688,1007611271,1009087024]},{"sector":17,"data":[738621241,-337638864,1916877836,2001091607,171387923,-2143048480,-764280069,1921055872,-1010005501,-116451654,246921923,57985290,-1945185862,-1948741944,-1995648994,-2096311657,34394118,214965899,215123911,109252336,-1023275824,-1064386509,-1138834394,197168128,856454360,2049346267,-842823167,-1010824657,24782474,801965744,1414986625,-466480779,34339201,124914039,57987594,-1022756224,-617350476,-620031795,-2144985484,410452543,-2144991374,1930101119,-803304689,-762853620,-2096110836,34394118,129585859,-1948568832,185389719,-1274514222,1126288649,1525736003,-24437053,-1064380276,-5173840,-1325551886,-218123949,2097036206,-8552151,-210413229,788430208,1195896181,1015084939,-1944881907,-1948741944,-955461602,235721351,-804879602,-65076724,756231619,858596096,1395475245,1932354349,-1825733843,765657133,767765939,769863123,1023618547,587218195,1128084285,1664963389,-2093124803,4035389,1035156899,1037254083,1039351267,1293110531,860693248,1397572429,1934451533,-1823636659,1302528077,1304645043,1306742227,1560497651,587226387,1130181469,1667060573,-2091027619,-530738339,1572036003,1574133187,-1007199776,1962999555,79951622,167736576,-164373709,-8388168,171773163,-402361597,-1023408769,-1023409736,-1610722564,1767318384,909652846,1942495485,1986348064,1711235945,1445470240,-9211291,544108393,691023409,167772407,1147106248,-2147466684,96]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[1132513769,1702260335,1684370546,0,11819597,65,16318496,148766719,128,131006480,30,1]},{"sector":4,"data":[0,0,0,0,-1325367296,431226891,-1593769976,186647299,135186944,16777472,729089,528075,16842753,805309216,16779279,537529009,255066123,-1325334520,186649098,135216128,179372288,729098,528192,168472833,-905966816,16779278,536936704,375390219,268501000,186647042,135219200,178323712,729098,528196,168472833,2113932064,16779279,805569699,260046859,-1560150008,187696132,134217728,336592896,729089,528150,84259073,436210464,16779279,537068449,253493259,-1593769976,186647556,135207936,77660416,733184,528158,33726722,-16776912,255,65280,16777728,16777216,65280,16777984,16794112,65280,16778240,0,65280,16778496,16791296,65280,16778752,16785664,65280,16779008,16780032,65280,16779264,16788480,65280,16779520,16780032,65280,16779776,0,65280,16780032,16780032,65280,16780288,0,65280,16780544,0,65280,16780800,0,65280,16781056,0,65280,16781312,0,65280,16781568,0,65280,16781824,0,65280,16782080,0,65280,16782336,0,65280,16782592,0,65280,16782848,0,65280,16783104,0,65280,16783360]},{"sector":5,"data":[65280,16783616,0,65280,16783872,0,65280,16784128,0,65280,16784384,0,65280,16784640,0,65280,16784896,0,65280,16785152,16796928,65280,16785408,0,65280,16785664,0,65280,16785920,0,65280,16786176,0,65280,16786432,33585408,65280,16786688,0,65280,16786944,16799744,65280,16787200,0,65280,16787456,0,65280,16787712,0,65280,16787968,0,65280,16788224,0,65280,16788480,16782848,65280,16788736,16780032,65280,16788992,0,65280,16789248,0,65280,16789504,0,65280,16789760,0,65280,16790016,16802560,65280,16790272,16805376,65280,16790528,0,65280,16790784,0,65280,16791040,0,65280,16791296,16816640,65280,16791552,0,65280,16791808,0,65280,16792064,0,65280,16792320,0,65280,16792576,0,65280,16854016,0,65280,33554432,0,256,33554432,16813824,512,16795136,0,65280,16795392,0,65280,33556992,0,512,16795904]},{"sector":6,"data":[0,65280,16796416,0,65280,16796672,0,65280,16796928,0,65280,16797184,16819456,65280,16797440,16822272,65280,16797696,33602304,65280,16797952,0,65280,16798208,16819456,65280,16798464,16822272,65280,16798720,33602304,65280,16798976,0,65280,16799232,0,65280,16799488,16819456,65280,16799744,16822272,65280,16800000,33602304,78053120,983218,-80,-1308621569,-1342175232,-1,11665412,-5242872,11534344,-5242868,16777215,0,168624128,0,335546880,1092923904,1397600256,1397703712,1919243808,1852795251,808334624,1126703152,1886339881,1734963833,824210536,758200377,825833777,1667845408,1869836146,1126200422,544240239,1701013836,1684370286,1952533792,1634300517,539828332,1886351952,2037674597,543584032,1919117645,1718580079,1816207476,1769087084,1937008743,1936028192,1702261349,8292,2097152000,220246528,1296478208,1480928852,159383621,67154432,114339841,-201260800,117247750,118818569,120391457,121964345,123537233,125765486,127797138,129370026,65536,1258881024,545325064,152895489,788596811,86,151846912,788596811,83,151846912,788596811,52,151846912,788596811,49,151846912,788596811,56,151846912]},{"sector":7,"data":[788596811,-2147483582,152371200,788596674,-2147483564,152371200,788596685,78,151846912,788596811,1162626387,21571,218103808,17320713,1128350255,5264715,0,139135245,1430335233,1163153236,21587,486539552,17291273,17967,218103808,17320713,21807,218103808,17320713,16175,218103808,17320713,16797999,65793,67108864,16842752,257,16384,768,139198755,17321985,1526859861,140444168,67658754,1845758058,141755400,134773000,-2113402755,143134728,268995600,-1759508335,144449544,537436704,-1390409559,145891336,1074313280,-1019213635,147472392,1074319168,-817887019,148193288,-2146902912,-411039519,149848072,-2146897024,-209712903,150568968,808857856,808857856,909181003,4344624,3160113,1261451313,808988928,855654987,855650354,4927538,1261449779,909312066,909312048,855657264,1112223798,808597248,808597248,842465355,4344624,808464945,808595712,822102832,1261449266,774963266,774963250,822103346,1112355374,875835648,875626544,4927540,808727601,822100555,3421230,875834929,774963277,1112355892,943206912,942800944,4927544,808990770,838877771,3684398,943205938,775028813,1112356920,11665970,716177457,979196735,725515324,791427901,673328732,341714473,2130752000,16887811,1493217792,-20480,65535,0,224147968,-855592448,16756736]},{"sector":8,"data":[0,524296,729266,67760,1704114,65456,134217728,-1308620800,-1342174401,-1308622584,-1342170624,1329805889,1090519118,678970,1704114,86192,5374130,41449648,201372160,2141761536,33556483,262144,67239936,16712192,8,33556483,1048831,268697600,16712192,32,33562629,-1308610561,-1342168832,196607,2097330,34523824,234926592,980987904,776948060,5462355,1297889912,1397703763,1398362926,542068224,1162690894,538976288,-1308613877,-1342172416,143665131,398336,2162866,-98972240,-661731188,-762392013,-75759428,-1912577864,868257496,-842888238,-395742701,-579731323,54428462,108267644,1678165550,12255869,244002304,-1336837117,-1262409207,1458604800,-1070345677,-164706934,-1971493834,-1946907928,-855460666,1580036627,908668505,527727621,-147929461,58549542,-1312424232,146690305,909848064,92044293,87460654,-356455556,6291456,-394434626,-18153470,-1406206158,192184100,-1156664234,281870343,-1007686818,-1140902935,79233024,33667072,1914573773,-1899459533,49112,637537209,639634816,538987904,-1074470329,-1950482432,768381,1973875708,2146063,-1182951490,-1494024181,-1021377931,-394454082,11861922,-115403059,1309281731,1395486319,1702130553,1768169581,1864395635,1768169586,1696623475,1919906418,1699875341,1667329136,1851859045,1953701988,1701538162,2037276960,2036689696,1701345056]},{"sector":9,"data":[1701978222,226059361,65546,1141509378,543912809,1953460034,1767990816,1701999980,1291848205,1869767529,1952870259,1668172076,544172320,538976288,1937339168,1685286192,538997615,1937339168,113640752,-2080428169,1962998910,-142704629,-972720837,-13666810,-899814263,-1308518396,-1342160640,1301298411,1397703763,3157557,67586,50462722,587857,262161,1,0,2687104,1308622848,1095639119,538985805,1095114784,540160340,872030240,-1127182656,118914048,906000571,1444820933,1052726038,768380,111473660,-28981729,403606287,-112359300,-956151927,-75743737,2037519309,104448051,141851667,2081623691,2082475657,-142864224,58463782,326900742,58465814,-2089021946,1352859858,1377208700,2085200764,2085295753,-150986568,-1954803418,58460958,-201897789,2085160449,2085295747,83933952,2085754507,-394506079,494010514,-1394081360,-1961463296,768507,-209852738,-1928694362,196681855,1957098240,2107555352,855662568,1578552768,-1895526625,432865860,-346531752,440896488,512378952,-13468659,100918263,370375753,12287051,243975,-397323696,-663617478,1424490928,1482316032,17152882,13796096,2081103363,780853986,378174485,512457764,1268874313,60028,179044464,-1272351552,506638,-219475763,2081953339,922163571,-1023509480,2085557896,922210867,378043418,1302559781,-104597380,-1962756925,-1317253866,182899206,-1954787530,-1964407094]},{"sector":10,"data":[-1971575786,-847502026,168674067,762212174,1953724755,1679846757,543912809,1679848047,543912809,1869771365,1376390514,1634496613,1629513059,1881171054,1936942450,2037276960,2036689696,1701345056,1701978222,226059361,1330184202,538976288,1498619936,1146309971,538989391,1398362912,-1437270016,11665920,967836160,1175374338,842093633,1176510496,909202497,2105376,0,-1308616192,-1342172384,65280,134217728,-1308620544,-1342174401,-1342140672,14913,1342177280,1028150337,1297239878,1201217,1704114,16908976,7340544,33489536,33556480,11665423,45088784,33554689,20971584,134218238,983296,1048754,16908976,7340544,50135760,33556736,11665423,45088784,33554689,23593024,150995708,983296,1048754,16843440,14680576,133761376,33558272,11665423,45088784,33554690,94371952,150995961,983552,1048754,16843440,14680576,166726464,33559040,11665423,45088784,33554690,377487600,603982320,983552,983218,-1073643344,-1073709055,0,236398080,134263296,390443008,392429568,11665414,28312082,-65536,11665413,1487929370,1329814586,1312902477,1329802820,-1308619187,-1342148096,1397575491,1027818832,978845696,1297040220,1145979213,1297040174,11665432,766509064,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155]},{"sector":11,"data":[757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,757932395,1667331155,1345134955,1460032083,-1047606989,783875891,-855592430,-1291416529,-1321301756,305051652,801964722,79365772,79249033,-1307431240,-1943024380,-1996174586,-1207645890,112333358]},{"sector":12,"data":[109850573,1049167023,-1628961619,-1425634280,-1455519484,-955872252,-985757436,414050308,79627916,79511177,-1307431240,-1943024376,-1996172538,-955985602,218426374,889636362,113714181,1265,83035847,2011693066,-717321971,275048452,81346185,-1994941720,-402334402,786956313,4319232,5302353,1599670386,1482381831,-998046485,1355020556,12066390,505531747,141696775,82130569,82249356,-1195157410,12272640,-841862400,31883297,-1207841152,567100417,1140897987,855638459,-2145268270,28836302,-1021194940,567095476,1962935613,418117635,1929380413,-17659,45810667,112640,-1308622663,-100682240,1364414659,1376147285,512354699,914883817,-521665298,1959332610,1978469148,2549765,-1326971925,1510502913,117507560,-2096829601,-336001340,1516177156,1560703737,-346530983,147096324,1397801977,-383874222,-294140,753403253,-402396416,259194999,12278196,841075968,113542116,-2096043015,192217083,125092155,-2097106712,1928922820,1482381827,520494787,1963063683,637711387,567088522,-389903841,102629553,638022431,-855550582,267122721,-922025292,-1977218700,1193397525,-118262455,1347928863,-91532538,-645200098,-218359120,721647022,-880063527,1599604571,197145539,508523721,1085546246,-108800117,-852986623,642785057,1525155210,102651904,-133795041,-851296076,-2144953311,41228861,32227723,-68677937,1427827711,-5838767,-849745525,-352160991,1959279371]},{"sector":13,"data":[-118998265,-1047854475,-1195172003,79364135,-1023298304,1962933888,-2134444527,119409781,82591373,-402652487,113508096,-448871337,1962871556,1032005143,276101120,1912945190,1161438727,-117344511,-370456761,-1883044001,855961350,-141388837,-1828392138,83048183,1980365443,935493637,-1031797781,188830256,184841664,-2093386533,225772537,738884736,922682741,-348060420,117015330,2088766837,91565066,83638015,-2096043199,192219641,738884736,922682741,-1824455428,-1477717453,-1070345677,82786047,198325187,-1272875831,637579301,175449400,23410726,-1002830732,-1977217419,-11278331,1195835763,-478852798,197822294,1295217901,82919043,-1976863488,805570116,21314086,518718069,74788924,74764811,-404016125,82722432,1107850751,1330202946,-1174148273,727187455,-32839431,57891167,1368424427,2088815243,225705990,108316939,1195854153,-346160661,1976109840,166419971,1979709827,197735170,1431729407,860948055,-247561271,762642436,252134646,2093222005,41216002,1156979435,208932103,235357430,1156974196,141888519,-402490172,15401602,-352224536,2156547,123275122,-346137249,180650756,-247561223,91553796,350815090,-251213825,-1023410172,-241053133,-217659644,-402650620,-2007433579,1124398471,1967192963,33089539,-294270466,-1995829832,1124398471,32041027,861099715,-2134297610,141950974,81116299,636215179,1946339062,-1178811384,-339506172,1260824,658312562]},{"sector":14,"data":[-1006078208,-1945844292,-1006179389,-1945851460,-293949,-25160075,-117213697,-240972565,-18428,855638461,216791286,1946221443,5564419,-133904765,-922024334,-1611988363,33456284,1431447925,1347880529,-855310152,1493122095,-661976715,-855309640,-117314769,123667827,-2096698535,216532676,-346399488,-401682687,1583087611,-1185916989,-1070399489,-772296974,-1017161655,1963064195,-784432355,376766212,1979711293,-241086453,-786497788,82532356,80813823,-919397653,1962933888,1300899334,772401923,74790200,55413294,-117127293,200813939,-2145815351,91553790,-351978714,87764483,166396533,-2096794551,-471137081,-2146667783,1979252734,637996546,1912765699,653079046,-968422006,322310,-2133118013,1962935932,-175651055,1127030788,-175651261,-398254076,861733030,-1999490085,-1979389170,-1053161148,-1054204298,1157034122,343179271,-2012593014,1124398471,1967192963,8185859,-327823618,556160,1278741876,705196808,-779483060,185093258,-165382967,1963919172,121959948,637957136,-347667062,-2021107711,-2092759819,58015995,-33537560,-153324087,1971324740,1962281496,172263956,83199880,1090224963,602407797,1976499712,121960172,-167217905,1947207492,168618754,-1895271214,-33231098,-386370102,-1017839614,509019729,868977415,-180449829,-77928444,123667826,-2096829607,-1007089980,121960029,638743856,1095763338,1945911528,1166681606,-336048127,92939789,74760202,-169131705]},{"sector":15,"data":[-1017775829,869413725,-217659456,855642116,121960155,639923488,1156973962,225774855,57966760,-947968957,168096518,121959936,-955878130,168096518,-162206976,1963984708,93005350,218580214,-990507147,1124365440,-947919744,168096518,121959936,-955878130,168096518,640215808,-1960442485,1156973141,259329287,1954596598,-427801852,-217659521,-167769596,1963853636,-217659642,-402650620,-619971651,-768408204,1431449010,393155,-1811939035,-1476394496,-838860032,-419429376,251659520,620758529,1023411969,1560283137,1929382145,-1862268415,-1140847871,-587199487,167775489,654315010,1140854530,1627394050,2030047490,-1526722046,-1107291390,-603974654,-50254846,553725186,1476472323,-1677644029,-754896893,67186947,738275844,1359033092,2130785284,-1040108284,-67029500,1073821444,1996568581,-1325319931,-402572795,469842693,1711356934,1850283782,1920102243,544498533,542330692,1936876918,225341289,621619466,1701847089,1852138354,1868767348,1701605485,778331508,548538769,229638162,540091676,1702132066,1986076787,1634494817,543517794,1679847023,225145705,1175268106,1634562671,1868767348,1701605485,808346996,404795904,168669184,540091673,1702132066,1852383347,1684103712,1667592992,1936879476,622529037,2036473905,544433524,1635020660,1768169580,1931504499,1701011824,1227033101,1919251310,1701716084,1768169591,1952803699,1713399156,1679848047,1702259058,976299296,622397965]},{"sector":16,"data":[2036473905,544433524,1684370293,544825888,1953724787,168652133,1768247841,1919251310,1768169588,1952803699,1713399156,1679848047,1702259058,976299296,1445857805,1836412015,1634476133,543974754,540094760,1918986339,1702126433,539784050,1163152965,1868963922,1869488242,1059677550,1175266336,1634562671,1869488244,1970479220,1919905904,543450484,1679847023,1702259058,976299296,221252109,1635151433,543451500,1769366884,1881171299,1835102817,1919251557,1919295603,1679846767,1667855973,1919164517,1919252073,537529646,1920091405,1763734127,1330192494,541873219,1819042147,-1308544210,-1342174944,220203533,544501582,1818370145,543908719,1769366884,388916579,169914880,168669184,1917127968,544370546,1953067639,543649385,777273670,548536342,229638155,1158486794,1919906418,1769109280,1735289204,1919509536,1869898597,221149554,1124937482,1869508193,1868963956,1952542066,544104736,1230197569,1684360775,544370464,1396856147,543450452,1986622052,220212837,1124932618,1869508193,1768300660,1394631790,1702130553,1766203501,779314540,220269069,1852727619,1713402991,1634562671,543236212,2004116846,543912559,1986622052,168636005,1986939172,1684630625,1634231072,1952670066,544436837,1981836905,1836412015,1634476133,225207650,1866868490,1952542066,543236211,1802725732,1919903264,1702065440,1953068832,1397563496,1397703725,218762542,1330002442,1413565778,1769104416,540697974]},{"sector":17,"data":[1532374875,1650551866,1566403685,1362058016,794501213,1528847701,1933198895,1566931561,1110399776,790658080,168648019,1380927047,542392653,1986622052,1528838757,979064367,1700946284,542989676,1565601627,1429166880,794501213,1920219732,1936417633,978202400,1952671091,1567847023,1110399776,790658080,168648019,1380927034,542392653,1986622052,1528838757,979064367,1700946284,542989676,1565601627,1429166880,794501213,1528847665,542979119,541208411,1395597436,873074013,1297239878,1679840321,1702259058,794501178,1528847697,542987567,1563504475,875518752,794501213,1528847672,2082488879,1565732640,168626701,790634539,1815763798,1818583649,1394614365,1768121712,1936025958,1701344288,1819244064,543518069,1700946284,168636012,790634536,-1308492207,-1342174688,1718773072,1936552559,1897947424,1801677173,1919903264,779379053,540084749,525676320,169914880,1699786752,1919903346,1629516653,1853169774,1684959075,1869182057,543973742,1836216166,221148257,538985994,1933198895,543521385,538976288,1667592275,1701406313,1752440947,1769152613,1864394106,1752440934,1818632293,2037411951,1936286752,1869881451,1919903264,544498029,1668641576,168632424,-1308595395,-1342173664,824210273,539766838,741357617,808596256,909320236,924855344,539766834,741486129,875442464,840969268,691550254,1191841070,1110384672,548536372,1102053386,1668246636,1936028769,1634759456,1864394083]}],[{"sector":1,"data":[1752440942,1868963941,1952542066,543450484,1802725732,1919903264,1937339168,544040308,1701603686,168636019,790634554,-1308606893,-1342174688,1768976195,1931506533,1702130553,1768300653,544433516,1948282740,1713399144,1634562671,1684370548,1936286752,168636011,790634557,1920219732,1936417633,1394614304,1768121712,1936025958,1701344288,1836412448,544367970,1948280431,1801675122,1701847155,1768169586,1931504499,778396777,540674573,978202400,1952671091,544436847,1701860128,1768319331,1948283749,1847616872,1700949365,1718558834,1667592992,1936879476,1919250464,1634890784,221145955,538982154,11153711,663730,1919895216,1937006957,1931501856,1818717801,1769152613,1864394084,543236198,1886350438,1679849840,778793833,541919757,775171872,169914880,1866903552,1952542066,543236211,892481077,1668180269,909320296,1713392432,1886416748,1768169593,1763732339,543236206,1751607656,1852138541,2037672307,1769104416,221144438,538980362,4470831,663730,1919895216,1937006957,1734960416,1931506792,1869898597,1881174898,1948283493,1801675122,235539758,-633434873,834765062,100647687,1380864,1441864,1507425,1573029,1638597,1704178,1769759,1835319,1900879,1966442,2032023,2097576,2294223,2359802,2425368,2490932,2556482,2622051,219939457,1634885968,1702126957,1847620466,1931506799,1869639797,1684370546,1191841070,1919895053]},{"sector":2,"data":[544498029,1836213620,1952542313,-1439800219,841003520,168669184,1766067491,1965058931,1769304942,1818386804,1868963941,2037588082,1835365491,1936286752,168636011,1850281264,1768710518,1701650532,543254884,1411412591,1801675122,1646276640,757097569,1936286752,1853169771,1650553717,221144428,1426927626,1818386798,1869881445,1769109280,1109419380,777277263,548536430,229638168,1158486794,1919906418,1634038304,1735289188,1919509536,1869898597,221149554,1867389706,1918989344,544499047,1986622052,1886593125,1718182757,224683369,1628249610,1881171054,1936942450,1414415648,1998606917,544105832,1684104562,774778489,1850281264,1768710518,1867915364,1701672300,776227104,548536429,229638171,2035487754,1835365491,1634890784,1701213038,1684370034,220858893,1702129221,1969430642,1852142194,1870012532,1701672300,1650551840,1713400933,1679848047,1702259058,976299296,1343041056,1835102817,1919251557,1869488243,1868767348,1952542829,1701601897,1769409037,1713399924,1684371561,1936286752,168636011,1917127969,544370546,1684104562,543649385,1953653104,1869182057,1635000430,778398818,1444874765,1836412015,1699946597,1818323314,1836404256,544367970,622883689,841297201,219220493,1836216134,1646294113,1701539698,168636014,1866861860,1952542066,1953459744,1635148064,1650551913,1864394092,1919164526,543520361,221917477,1309483274,1395486319,1702130553,1768169581,1864395635,1768169586]},{"sector":3,"data":[1696623475,1919906418,520752430,1684095501,1918980128,1769236852,1411411567,1701601889,-1308548562,-1342175200,118360589,235945613,49267073,393155,-1811928795,-1241503232,-1258280192,-1258279936,-788517632,738209280,1056976641,1560293377,2063610113,-1795149311,-1174392063,-637520895,-134204159,352335361,973092610,1996503042,-167757566,654326274,-1761592573,134233091,939542020,1627408132,1962953476,-1929360380,-184529660,1509969412,1744850693,1979731973,-2030022395,-100642299,117461765,335565830,604001542,1073763846,1577080582,1895847942,-2080351994,1343038726,1835102817,1919251557,1869488243,1970479220,1919905904,543450484,1679849826,1702259058,34213166,218302989,220137994,1702063689,1142977650,1679840079,543912809,1679847017,1702259058,976299296,224266765,1380013834,1196312910,1279336492,1094983756,1327513940,1330520142,1163013454,1096175437,541412418,1263749444,1380190733,541414985,540684581,1280067927,541409824,1414745932,1342836001,1701015410,1998611557,543716457,1836216134,673215585,692989785,1175262783,1634562671,1851859060,1701344367,1495801970,1059671599,1917127969,544370546,1684104562,543649385,1953653104,1869182057,1635000430,778398818,220269069,1869771333,1920409714,1852404841,1634738279,1953068146,544108393,1818386804,168636005,1632636189,1701667186,1936876916,1953459744,1836016416,1769234800,778398818,623381005,1818304561,1633906540,1852795252]},{"sector":4,"data":[1768846624,1629516660,1818845558,1701601889,544108320,1802725732,587861294,1646276901,1936028793,544106784,1751343461,1819042080,1952539503,544108393,1953066613,554306862,1920091405,1998615151,1769236850,1881171822,1769239137,1852795252,1650553888,221144428,1393369098,543518049,1634886000,1702126957,1852121202,1701995892,2004099172,778396521,220727821,1953723725,1953391904,1646293605,543716463,1629508655,790652014,1634738254,1701667186,1936876916,1074400558,2037535757,543649385,1914728308,1987011429,1629516389,1668246636,1869182049,1853169774,622883945,44707377,1646770,226626992,1919248468,1936269413,1953459744,1869505824,543713141,1836019570,544175136,1634038371,1629513076,1936028192,1701998452,1818846752,168636005,544567129,1819044215,1953459744,543515168,1701601889,544175136,543519605,543516788,1868983925,1952542066,1769239840,2037672300,1342836014,1701015410,1998611557,543716457,1836216134,673215585,692989785,1410151487,1701995880,544434464,544501614,1970237029,1679845479,543912809,1667330163,1868963941,2037588082,1835365491,1818846752,539915109,225643021,1802725700,1935767328,1919903264,1953784173,1965057125,1919247470,1679843616,1701209705,1953391986,1919252000,1852795251,543584032,777211716,1750338061,1679848297,543912809,1852727651,1646294127,1853169765,1836216166,1702130785,168636004,1668248144,543450469,1752459639,1919895072,544498029]},{"sector":5,"data":[1311725864,225722153,1919248468,1635197029,1851859059,1920099616,1663070831,1952540018,543649385,543516788,1836216166,1914729569,1987011429,544830053,1701603686,1409944878,544434536,1802725732,1851876128,544501614,1965057378,1919903342,1953784173,221144165,1869762570,1684366691,1953068832,1866866792,1952542066,794372128,859777358,1819235853,543518069,1700946284,1936269420,1953459744,1886745376,1953656688,1998611557,543716457,1881159727,1835102817,1919251557,738856238,1936607501,1768318581,1852139875,1701650548,2037542765,544175136,1684107116,1937339168,544040308,1701603686,168636019,1850281239,1717990771,1701405545,1830843502,1919905125,168636025,1968246043,1181442921,1634562671,1851859060,1701344367,1495801970,1059671599,2017791339,1769239401,1713399662,1634562671,1768169588,1919247974,1919295603,1948282223,544498024,1667592307,1701406313,168636004,1936287828,1936286752,1633886315,1953459822,543515168,1868983925,1952542066,778331508,1917848077,1701143407,1769414756,1176529012,1634562671,1495801972,1059671599,1850281320,1768710518,2019893348,1769239401,1713399662,1634562671,168636020,1936287828,1936286752,1633886315,1953459822,543515168,1667855697,1919895147,1953784173,221144165,1869762570,1684366691,1953068832,1851072616,1684959075,1869182057,543973742,1836216134,673215585,692989785,1175261503,1634562671,1852404852,824516711,285871435,1919895053,1953784173]},{"sector":6,"data":[543649385,223162661,1175262218,1634562671,1852404852,824516711,1295131950,225839629,1314013527,977751625,1768444960,1768169587,1663069043,1869508193,1700929652,1718514976,1634562671,1684370548,543582496,1953724787,1713401189,1936026729,1701994784,1634890784,1701213038,1684370034,1342836014,1701015410,1998611557,543716457,1953724787,1948282213,1936613746,544367974,2004446817,673216865,692989785,1443696703,1718186597,1735289209,1261511968,219154957,1769104726,1852406118,824516711,319425869,1919243789,1769563753,622880622,841297457,520752461,1986089741,543649385,1330007637,1413565778,1718511904,1634562671,1852795252,554306862,1701331725,1852402531,2019893351,1769239401,1679845230,543912809,1836216166,221148257,1359812106,1801677173,1836216134,1769239649,622880622,168643377,1968246038,1181442921,1634562671,1852404852,824516711,420089165,1769296141,1866885987,1952542066,1735289204,774972704,223162917,-1928917494,-2129591234,-1022936895,117441793,1835010,2555908,3604485,4325384,5373967,6946842,7995391,1818838542,1869488229,1868963956,325348981,544173908,2037277037,1701867296,1768300654,242443628,1701012289,1679848307,1701408357,1225990244,1718973294,1768122726,544501349,1869440365,1226537330,1818326638,1679844457,1702259058,1701868320,1768319331,1769234787,1225944687,1818326638,1830839401,1634296933,1887007776,2017792357,1684956532,1159750757]},{"sector":7,"data":[1919906418,238101792,1094618375,-1379827432,84067072,-65280,1343094788,1702064737,1920091424,622883439,-1928917455,-2095516866,516103617,1381061456,-91531434,-1912600390,1762064346,1963196430,-1962570985,1972044381,105745156,-1979157110,2106263893,-404625398,1499094623,-1021355941,11666831,-5242722,0,255,2086492928,1026244156,771760699,425526983,788267008,424677001,1376175918,771751961,426051271,-953286656,1660422,113716736,1566251505,-217659602,775715865,435488455,-953275586,1025111814,124184635,-4713613,-1960422401,255469085,45613939,602495744,914959873,1465063775,1730055509,116796953,1965037918,-152523709,-398691833,930350938,1963428840,116796952,1965037918,119728133,-164747541,1092181510,-347201932,126365211,108346684,1578008622,-398261991,-982317089,126365356,1321134915,1412860206,130428441,512306688,-1960437405,1731628317,1015033369,775320623,1948400768,116796936,1963006302,1200236116,786706945,424674873,-1590816141,-523167408,-670874813,-400585946,1777008776,1376175918,-352321255,1200236128,1088696833,-670834479,839879206,1959332845,642990863,-957866101,1098078976,-220052669,1376175918,-352320743,1200236084,1088696833,-670834479,839354918,1088475620,-1977165821,200094223,1125086409,529213011,1526750696,1128467315,-953224478,68768262,1532976384,1343130414,1386294809,915090969,-1959913132,773412374,425205386,642827256]},{"sector":8,"data":[44631947,772109568,424675071,3964974,27859317,772371712,424806087,250281986,-1274826672,10414335,-402396328,-1017642723,1364575225,139430438,-921965262,1871514996,67299337,250087539,-101260800,-1993472277,-132553426,650337625,32384,-347798668,784549366,425594496,-3741680,-2144449934,-283550170,1637953104,784739097,425657857,915091032,-2144462495,645201980,-8617938,772371770,424806087,535494665,4162342,-148498060,1962934535,113716754,137554,-1763178005,233568256,1342893049,-4979792,1476396008,643286008,772046731,425082505,637896742,1342268808,426090798,38111526,1963015256,1435051530,1300833796,1012591366,637957378,-352037495,1946631248,1946696936,1963343076,1434985990,1010756356,772764932,1075404705,71665958,106794022,-1993987093,-1943665547,642778701,16926710,78644340,-165279253,1946288711,-402477051,643301628,268584950,-873987212,784555776,435816134,-1960423424,1975520007,1381191704,113716823,596306,61931444,1610570728,-346530982,-385619198,11075717,772961408,424806087,1189609472,1048784385,1963530578,1073785198,-953281932,1659398,17557504,1379828526,1467287833,1946222761,113716757,6482,-402412056,-2094136272,152654398,11091317,772961282,424806087,-1813512192,1048784387,1963530578,8431910,-953281932,1659398,50718720,1379828526,259328281,1948254377,113716746,6482,771875560,435830400]},{"sector":9,"data":[772764929,424820355,772240640,424806087,-1017642999,-1976674736,1958742532,1966750746,2088775181,108331009,312878,-722990613,1174500100,1591733062,1381417816,-1976643446,79816708,-1073083278,216534132,76033536,1178993131,1583016171,1937784003,1918974988,2004499525,-337697727,1460032317,434912909,1946483328,-415331068,356003353,1364203380,-1274605998,-1144878491,96075775,-17920,1499079117,1569402456,1166945793,742605571,1607935616,1354980103,1578008622,-2144436199,-48669146,1006930478,1007318059,772240685,425594496,48776706,1354979328,861295185,1406284745,168069678,-398297920,963772657,-393485262,-774774063,1912656616,-1948611796,-773664319,12970193,-489611406,-1125592623,51802624,-389540909,225575091,-779889405,11134976,-347733134,-1914086469,-164734208,35216902,-772339084,-1031548169,13730561,108497702,1006930470,-1341688576,-335563775,642158708,3933322,776364148,425592566,639530368,1912818747,637957942,1912689723,1278944814,1915254535,1413162554,-350193915,1278944818,2132311043,1413162502,638614529,2131184699,639400970,2131055675,-2095781118,-922875450,-953240203,102322694,-1274957824,-1340937217,613033473,-953283605,152654342,-1274826752,-49354497,1482250846,-164717373,35216902,-1013120395,-134057827,1019476419,1007186480,738490169,-104597456,1381191875,2139825751,92939782,74825738,1290534836,1064633148,92939847,-453637708,653787968]},{"sector":10,"data":[95683978,54584566,92940024,-1960425657,3336237,-947711373,1976106499,113716977,530770,351010740,-10122714,-1960443216,772533013,424806087,-4980727,-2048392272,1532649468,1431356248,45241938,-402355666,1014104755,788398824,425592566,1007514632,639595837,97920,334197109,1577514542,242487321,175454780,8290342,1180464384,975592683,494207046,1383383050,334185798,4602406,776357237,642057354,1962952250,-347781574,116797095,1950357854,1207379471,1946165250,2122327559,578027520,268957478,1008235520,638154042,32384,250285429,125108284,8290342,-117214150,-1993472277,-132554442,1482512990,1448300739,1595837230,1007127065,1126266146,1912614888,1153838610,-208994303,19064902,1412860206,772860697,425932427,312878,1376175918,-1275066087,1577693439,-73471909,-1957641384,18933767,574366836,-58716811,773748002,1128662152,-387388605,124977599,1174702126,772246083,1128662152,-335948309,80096773,-1017579520,777410384,425672331,168069678,-401378112,611647583,-100219346,777912601,1593836742,777928683,1593836742,17299238,775058688,424806087,703266818,-1976674728,1958742532,3008542,1558711156,1191342849,-347715770,1487023849,80096793,-1993455872,1578718270,11098207,1342796802,95485876,1492842472,-1924049981,-1189482210,976093193,1124365319,1497495778,1381024603,168069678,-398953280,745668883,24937262,638481466,1050615]},{"sector":11,"data":[-2144461196,1962934652,1008733207,1007776353,739080058,-1261401504,-402214657,132905640,1376175918,1509951769,-391330984,410255394,1962955752,116796950,1948260702,116797165,1950423390,116084233,-134091783,-1007107250,222056787,3943796,171714932,-2144983692,1912734333,651899678,-2096931446,-2144992061,225706041,-1977169613,975586057,-503024639,1494039800,1364443995,1476838958,-2144460775,-551985626,913580092,846465340,829697084,209002556,1965046912,1176547335,518766650,41779238,857174529,1300899529,1959332611,244491,20588099,-119404684,1532567612,1487023811,116796953,1963006302,243281414,975182174,-1914180672,991520558,1007318237,-117213905,-336064789,1966029835,243281414,-130016930,1398152899,1530823470,661979161,1381047888,856053079,-1193373962,567108352,-619979892,1516199175,1951932249,914959913,-1993467559,773413662,425277067,1528729134,3965721,70914164,1144653938,-117213439,1178994155,1543039979,1354964830,-1912600392,1476861656,567108276,95493769,113903302,2615296,113917568,-401181441,1048576753,1962870474,59631628,113917568,-352160513,220635145,567102644,1354965197,-1912600392,1476861656,-2147477272,-16332226,635965556,-901873664,108330758,-402419224,1354957669,-1912600392,1476861656,1943846376,-572856312,113903302,-1202666497,-661782520,509085470,95493774,-768358093,637567422,113981065,637980095,113917568,-402098945,-12716411]},{"sector":12,"data":[-352160257,15675,904399477,914957824,-538245429,1459619014,9420624,114008358,38111526,73239590,-1172414632,-628228088,-1174160989,1676149689,-970579979,-16332282,1444856607,-1202694319,-661782520,-2124937442,-1291251906,-401902329,113639936,-369162550,1048576499,1963329792,151298061,-912078594,-1572797426,1048645322,128387343,113642357,-2128607321,944398,255754624,1963441929,-1090075126,243474439,-2130178455,705236798,-972393209,537340422,241766019,255754560,1963400713,503760395,243343367,8392297,151993985,192218934,120981190,1762558240,-2130640882,302583614,-972393209,537334278,241766019,255754497,1963423497,1996932618,243474439,-2130440599,1711869758,-972327673,537355782,241766017,1048642560,121768207,113642357,-2128607422,944398,389972226,1963413001,1309066795,113713159,2327,241764087,225771536,241766019,152674576,-351461469,54639115,-957066776,-16332282,152518273,762644314,123340486,386320160,-150994935,537815302,-2096139008,537815310,839457185,220046308,1102711787,-199432189,113903302,524190207,1963394569,520537978,-973078519,537331206,241764087,1551171586,241766019,589204994,-829686775,557222694,3964937,637936245,113983115,-1910059221,-1341804282,128905786,786636550,97126086,-1341733376,585891589,-1190802753,-1527578612,-893509882,-1341733371,1323892485,-1173654782,-1477967327,-905525517,200015622,-402439750]},{"sector":13,"data":[113701786,-2113993014,-2012672194,-972327673,537364486,241766017,1048643584,127600927,113652597,-954202213,597766,386320128,-150994935,944390,-2129693424,944398,153002000,260179464,1102711787,-213063677,113903302,1582915583,-1581595873,-214112253,60898945,108265788,60884735,-389813013,1048576021,1962870474,4122637,113917568,-402426625,-1262288795,69324057,257598017,-1576049502,512367056,-1006760247,1152649648,359866829,571934,-1381770610,61716995,536013288,113903302,512410623,-1006760247,1152649648,-1023991347,225710592,-402544198,113701578,-335608118,12777233,-1173654400,-1209532015,-905525518,-1966866682,968990,-1106357474,119410259,-1274656065,-1977496224,974017310,1946569246,26327563,-957182488,-16332282,-1172066109,236858616,-853167073,1354964769,253050496,-1591773697,-12841208,113645685,-1191246134,-1172439025,-628228088,-1174164061,1407714221,-1017634830,1072190032,624852992,812973833,175380109,175376070,395372544,1048586098,1962936960,1762558235,-2088763378,-150050522,253036230,1594341376,248059530,99295693,253036230,-1017619713,-1975250504,-32585442,141801923,108143053,153421510,113689599,-1023407835,11668797,514850828,1762064214,1963196430,1762064194,1946157582,-1338081264,158597125,97140352,-349408256,2811907,248059530,378061566,378015276,632950270,-854346738,234338849,567088820,125108284,-1274153030,1579273488]},{"sector":14,"data":[1035649823,-242227199,-854851400,97040929,567085748,-854851400,97173025,1929385960,45988366,-1158582040,1793589793,-1160516623,1659372221,485016561,5498880,1048578675,1979647408,216791299,1929415400,82573571,-134193176,1347507907,1015073075,-2144766976,611585340,-2131132095,-1977781248,10217476,1015026547,-2146601599,1967128956,21284359,537183776,-756332986,1476396230,1472421465,3965014,1015026036,-2147126240,74778940,32241734,1609200633,57998907,-134091783,1364706143,-4195242,-1189040115,-1426915317,234864478,1015073075,-1543015424,200901441,1599730805,1364219587,-1048326517,3964939,76161396,1929389288,-247773680,1153829237,80093439,-351474912,-402355705,108134490,-119870650,1509491179,516120152,119427158,4096038,1951465216,-1275023337,639749475,1734,914958079,-661911228,155624230,915088984,-561116858,1144425254,3965705,70914420,1144653938,-117213439,-964491541,-118822142,-1021354408,-1923657392,-1190580162,-1359871980,-117344776,-1017620129,0,855638016,-1202695205,-661782520,-1554512098,-773320952,1763085305,1796638990,11724814,153435776,-402426369,384310732,-1173523691,-219676211,201785071,8644877,218891974,35055616,-2147424792,-16177858,378349685,113642100,-402650508,309466405,990545569,1997103622,176267529,157091387,1236929398,-273422335,2112403947,6875165,1930851560,201784838,-400495859,108200229,393527307]},{"sector":15,"data":[-1243079189,68872195,1914386664,114223114,220610176,-402099195,1894253242,-393383166,229901746,648028621,-850611187,1344326945,-1912600392,1476861656,220595910,43313156,512482795,-1014102607,721993915,-1274695394,-1021194934,1381061456,377882310,-1123629568,297336588,-1965345980,-32585442,141015491,213653133,527573453,-851178056,-1119977439,125108492,213714630,-972231681,-15301114,213714686,1509972968,-1017619623,571472,119462030,1053034072,243993797,417860219,-851524608,2064550668,911370,215039684,175836811,117441256,-775932989,-1012141079,1141422160,259203533,-851179080,-149917151,1963983042,-1459229942,57999361,-104638216,1397801816,-617393583,248061578,-806829058,-1206422529,-617397231,248061578,1203356670,1914817800,1141749765,1499079117,-138192805,944390,-134056832,-1907772221,-854799610,-385649887,1840971513,-295966716,860901560,-920745253,681830414,571472,119462030,1958742616,50609502,-1984291468,-298326013,-1677142552,-402473542,1939729965,637978168,28837133,-1161561856,451412669,45988590,-1192356632,-1172439021,-628228088,-1174164061,48759725,-843440146,-302258175,220595910,-339725564,1762064336,1946159118,1762558214,-1954545650,-1274186210,1931595080,-26220285,856476579,214541248,113755128,3892,255198919,113639424,-973075157,861702,241899147,241768073,254281415,113770495,3872,220268230,621200896,119406607]},{"sector":16,"data":[156239558,156286464,-1190497089,-201588444,132694948,1042432,-1023404056,-1962092127,-401810666,-1581055977,378211563,216534253,-39730432,-15299828,124940,922178499,-771028357,1346371956,-617360845,175971978,190378999,721843410,64681939,2066151362,872808714,907415823,1354980111,-1269673645,-148779722,-1580692511,378212148,-235466954,58114875,-134091783,1482381658,419874755,-956301299,858886,624852992,58064649,-147788807,68053254,-117214196,1048585707,1963264629,468449539,-1677240088,-1660884760,-336002189,14673934,153435776,-402426369,-1007150444,153435776,-162499329,-15922426,1048594804,1963199782,201782832,695598861,158729927,113639424,-1929049776,-402042858,113646165,-1207890754,512377869,-1006760247,-1928838471,-854802922,1980155681,-973078519,67719174,156243597,-1021694744,567089588,-1006708598,-878558972,-40572914,1102061427,-1576088670,1688342362,433103375,-402652741,158596478,-402547270,-756421571,248226044,-1092075220,47561224,-1158927128,652739093,116451564,-402640664,-1195179987,-661782520,-402470470,113699857,-2147283674,-16177858,113709684,2422,156239558,1343655172,431220745,-1157859095,-353893699,-930364437,-768359797,-141429769,-1935555597,-1911125238,-2012871926,13796106,14320456,176692875,-1946166296,-1976109103,219128586,218961545,856327073,1975520210,177250567,177346187,176692875,-1543522328,243862805,2074152215]},{"sector":17,"data":[-1143852278,-201916384,516212875,-1070461755,220282496,-1342016001,126363365,-501169277,244040696,-768406917,185238433,-1592691264,512428688,1139280530,-1023315170,49009547,179954167,-773140224,1039852248,595002343,527815179,-1173415261,116851845,527977,431623797,1762064132,1971322894,71940611,1023444713,192358160,125161995,-150738757,-1156256781,-201915392,868387664,16432082,-225778697,-1554459510,-92074212,-1172606198,116851857,527977,632967029,1762064132,1971322894,72727108,-1031061525,180081203,-1946945792,-137219128,1976699891,253666058,13567686,-1995838719,-972087794,33607430,-150692422,135162118,-1173457664,116851761,-2147479959,1639580533,-358881276,244000451,-108852602,-2094369792,477511929,4241745,104458320,426924376,-394264386,-561315820,-2092907901,132858089,102885456,-339135656,1397801937,-1144616110,-768409584,57930743,-1946102909,-1898445861,1525844955,-389851045,1388514266,1526616296,-369209368,114293457,599281747,-1994273483,-1945187298,1477365254,516097883,240276304,786151967,-853204040,1482381857,1344193311,-828288429,-870413554,-1948742130,623098067,1532633549,1354964824,-1912600392,1476861656,-1912229471,2925016,248816422,571472,119462030,-1202666664,567108896,1381024600,-1973483336,-854669034,-1017619935,213728896,-2144832257,861758,1048581492,1946488102,-1139372786,-1123629556,-35127284,-1928532998,-972243946,17612038]}],[{"sector":1,"data":[-2131038232,988478,1048578677,1946160422,-5052413,571587,-970538866,991750,587646758,637534735,254281415,-1591279617,568856355,512435741,-1591341272,-1019539674,1223166068,-385649891,-987365230,-401814218,-1073013300,-970569867,-15785466,705596198,597763599,-303542001,-1960421092,638527518,990848673,1359443139,1495077608,-987341198,1359793462,1495111656,158711819,587661094,-338763249,113649165,-352317662,117384709,-2144989405,-15785410,-1591341452,992349987,1997964294,-8984281,567086516,-1977213326,-32585450,-852314942,1962884129,597763599,103491087,1200164650,32241693,-1202666503,-661782520,-145225954,17721606,-149195776,944390,-972720768,-15784698,220937856,-33065728,-401790202,1391000328,-27006722,1929993704,-26286074,503418089,214245061,520279272,1929484520,-27596788,-402553414,1927932005,624852993,292880143,1929491688,-29169652,-402556486,1525278797,1980155649,-973078519,67719174,156243597,504756456,248059530,850707198,-12836403,-400618123,-440730092,-400562175,-956224279,7495,-14727225,116858879,69225,-303496331,-921269760,-389874162,1836317393,254099072,-1172146689,-286784451,42789095,45988508,-1645746968,113641586,-385872091,113704830,-351990490,57784838,-941110040,996870,872859392,855638031,216769472,-1559433821,-610071335,217948940,-2146631773,-15784642,-1981217932,16508928,-2115435662,-41490432]},{"sector":2,"data":[-402556486,-1628837999,624852992,343277327,-2097036056,17771070,-400684428,1931476471,-8853245,-401684064,102630393,121189864,-1171426529,1592263129,906414055,-956301297,996358,624852992,309722895,1929408744,-46995445,-402553414,1273751357,518756331,241764087,108334080,-402510406,1048635177,1979649829,248094729,-385831704,99155831,-81532675,567086516,1945945320,-149361918,944390,-402426615,116913433,201330281,-689431691,-149492991,944390,-1169984252,-488111667,637978342,-336002035,868481025,-1965345838,-1593147362,-470349178,176035467,244043779,-912257758,1376175886,1358954511,503316921,214245061,520250088,1107522137,516154594,243976499,-922023296,378218356,-912258434,-920730354,-386692340,-561251292,1381047891,1526458088,1918574425,369305096,-320730490,1354964984,-1912600392,1476861656,102651479,254281415,516292607,28904657,-1591324672,-165279098,638222374,176031235,643354763,257033927,-1192755200,-352161023,244081,-165219445,-15302650,-121961100,-1157370881,654053368,254549641,-1977723311,1958742788,1961180228,440699712,1946157069,-386364616,-1960437312,638527518,990848673,-402295613,712120807,-852048602,443475980,-947140469,-987301493,-401815242,-947185166,740199206,1929067279,1499340746,-501168509,520616107,650338142,856325025,243934921,-503903619,12109963,-137219322,1959922673,-1557774335,1354960682,637949777,175836811]},{"sector":3,"data":[-661853743,-74727282,-201539533,1499400107,-150944936,135162630,-1173851136,1994916853,-1173951515,1860698861,846053,-109582180,1946448797,-1008932094,1946167784,-1977372639,-1274119914,1025625445,57999361,1024322552,57999360,839248889,-117359424,-1070463509,-1007091396,-854851400,242727457,567085748,-854851400,2017361953,-389873650,1726544169,16902145,-402584134,1048831245,1962938164,910066439,108265487,-402577990,1048831225,1962938172,1044284167,108265487,-402587206,244049125,512429872,237702962,505089852,237702974,505089844,243863350,512298816,-373682366,-457185280,-1577530136,243927675,-315487619,1151590903,1175881999,53066255,-387668760,512295137,498732872,-459806717,-134699800,944390,-1173785343,-2031615371,-124524316,1381061571,106256214,572958,-1993947506,-1945151970,512304859,146476888,-1982099968,-1995484146,-1156624362,-4649136,1512427007,1599932191,1532582494,1381061571,106256214,572958,-1993947506,-1945151970,512304859,146476888,-1982099968,-1995484146,-1156624362,-4649136,1512492543,1599932191,1532582494,1397903555,1392528616,868387666,-1966525477,-401965810,-919398686,175836811,-1558783512,512298800,1532628786,-1020542325,-919348429,175967882,857129448,2064550857,381216778,255067691,255204891,-1995490141,1527725598,868440154,-1976126272,-2146514410,-1023524374,1354965453,872859474,-956301297,996870,216768768,216864395,-1577697560]},{"sector":4,"data":[378211545,887622875,217948662,218044043,1526082280,241419096,852146,-662024016,263767038,1478610244,116915395,527977,116853364,1812205161,283837044,241764087,410259456,241764087,225706480,-402452038,113697599,-335608118,41805827,113917568,-402230016,-1561851987,-901873661,158727942,-402534982,-1326849253,-1274624269,1048576017,1963264629,-1274624417,116883473,1911819881,1169819764,-486938622,1397801977,-1608625583,28905161,-1915604224,-955019234,1004038,-27531264,536414067,1482381658,361669059,531256637,1482381658,-150047240,944390,-402295540,32180016,297452536,-491657213,-1007041543,175455872,-2144898047,685374,-1070384524,218247949,855044,527744,109433079,141823593,-402476614,-756292989,116876523,8392297,116862069,4197993,116853364,3149417,-1360323467,241772161,1048838015,1996556938,1762064141,1946222606,1764131589,116899598,1911557737,116861556,3149417,116870260,1908412009,1048583540,1963002485,1762064136,1953595406,51493385,-371056920,2011955052,-2147394327,17462590,1048835189,1965559071,490636134,225708301,220020355,-2116061944,944398,1764131585,1048629006,1963002485,2047264267,113705226,2624120,241766017,79233152,394509056,-1592357954,-1071313303,1946630913,-2092743929,-169730106,241764087,91488512,220268230,2067697151,2078986,-1527642338,-150935319,806250758,-385649408,116850909,2100841]},{"sector":5,"data":[497092724,176726797,-2002712853,220046090,241764087,141819920,-1559421023,116066936,-1559594847,1048579359,1946225269,1967030323,745799690,220151427,-2094697136,151854398,102637173,-1185851562,-645005304,650035598,175882007,-218095687,1583307172,2011897607,-1962074719,-167081442,522647523,1976699661,176399109,-1868361749,-1844016886,-768388598,176363145,-1965345958,-150307554,244723,45868023,871626496,33602514,-1556024329,113642118,-1107293574,1049433739,119409275,394526337,1149967476,138754824,1149964149,222640909,532219765,-341511424,533103370,113696491,-118486395,-2109833021,1450442767,175455872,-1173850875,-1528298939,-2142770208,685374,2095580533,-2143556864,17462590,1374160245,-2144343296,34239806,-1645738635,-2145129728,118125886,-1628961419,-2145916160,151680318,-1830288011,-1173624064,1625817777,-905525536,1048641286,1979647690,51493382,-2132783384,84571454,113640821,-2113993014,-15832794,116835311,1965035394,1435671,113917568,-2130152192,-2146539250,-972690688,-16332282,-2113472829,141820175,241766017,703267136,260179702,-2096663550,1074686222,116792299,1946423170,1762558216,-352255986,-2113473012,91555855,113903302,116835327,1963986818,-905525755,-154927354,-2146467322,116799349,1967132546,-1906659,113917568,-2096007936,806250766,220137159,113705040,593181,243475691,-953151895,1343037190,486983424,-352316915,1762558737,113717262]},{"sector":6,"data":[5246239,220006087,-138215388,537815302,-149588992,269379846,-1173523200,1894253389,-905525537,468451078,241764087,326369296,241764087,192217120,-402436678,113696595,-1006696758,431898243,-2095221504,18463806,1048581749,1996491381,-1392065009,243531545,-398455191,-1007092797,915260409,1049430651,431559067,-234414592,248094884,855638457,-1877045806,1376175889,-402653169,578026169,1963195520,1292309,571934,-1381770610,61716995,534702824,-239418375,-555620351,244040697,915214204,1049431921,-1527573078,-1929362712,-2146069450,-15302594,915211381,146347420,-1254191872,-1968901611,-32585442,-1241566525,-1169772280,296752548,567100596,229642610,567100596,-239466125,-560863231,-134091783,-852839229,-1269673695,-1960719060,-1039967550,-1558861661,-1047851138,-1547631783,-2136795738,116900623,33558121,-2065168780,-1023315200,241764087,91488512,1912661480,1967030514,1979188490,24242410,-1340141885,-350165472,2145792,-1073042288,246679924,-855636037,854780688,-854143516,1309281561,1395486319,1702130553,1768169581,1864395635,1768169586,1696623475,1919906418,1699875341,1667329136,1851859045,1919950948,544437093,544829025,544826731,1852139639,1634038304,168655204,248160256,-1576052062,112791396,1511427328,-851659761,-1176990943,236882104,-803828449,-851397574,1051991841,112796109,1679199488,-851659761,-1176990943,378377328,1085553360,1051992525,113713613,-1804595989]},{"sector":7,"data":[216860359,-768409600,-392925000,113766441,-2001204007,215680711,-768409600,-393693000,-1007095787,-1190213216,62521345,-1877046016,1376175891,-402653169,141818069,-402522694,-1007035057,328212109,101402566,-970931325,-1610216633,-1181217079,62521345,-1877046016,1376175891,-402653169,141818077,-402553414,-1007035105,241764087,-1485504511,-1743861344,-1945741737,-1077506338,2076053403,1292554,1577559283,261143391,176832131,-955943935,16974663,855638457,1376176082,-402653169,24311957,32619203,-102967576,868234179,-1916193829,-401633258,1618084040,294534785,1333111381,290332301,17072000,2139098996,158598148,100958080,-336002188,561182721,-1207942680,12255232,47360,261101197,1929419496,50706953,-102988056,-336068117,281248528,294583169,-1514488085,-596514814,-1173885959,1760035493,132905436,-402458182,-1007035297,-2096212085,108265722,100943814,719858923,-1908505856,108265482,100943814,-92070677,-972655616,-351927225,-2143387631,108396310,67389382,1204159723,-1581055740,378210956,1048775310,1962936963,-1878654195,13796106,177346051,100861931,-763164029,243909376,1639518088,845832,-2012313149,138524943,-1023409688,-1995471709,-1995471330,-1945138154,-955281890,17795590,-920745472,-1195114994,378356749,567086979,-853953341,364749345,567086772,378343860,567088574,-1978747824,-854213354,-1073063903,-1007091084,567095220,-964430965,119408136,768287]},{"sector":8,"data":[520529139,1049478136,378148345,-1125642551,-138151681,944390,-149064702,944390,-149588991,34498822,-1173523456,1625818005,-905525541,1709965062,241764087,359924224,241764087,225705985,-402452038,113695555,-335608118,1762064200,1962950670,1762064144,1962999822,1762064136,1946189838,1762064176,1946169358,51493389,-958720280,-16332282,116857835,134761,116855668,16780905,-1782969484,-621156349,113903302,142722047,983218,1947635120,1946600970,820510730,-1173851392,-790101687,-389809702,1072169010,-401182208,292683864,1912641256,11528204,-924317838,16705536,64076483,-103109912,1141749955,248061578,1622787070,-1021195000,175388301,156253837,503391417,-1012600057,175840907,-787496061,-773074453,-1259613717,1914817864,214409992,-979124173,2074198796,984330,-388896559,-388896559,176563959,512350347,-2120151690,65065226,175874520,-788525307,-773271064,-1175924248,-503906297,1219811331,141697485,856476579,214541248,2065599427,264471306,-338564143,-338564143,567101620,-811399054,-1547685108,-1950151475,-2096465122,-338620477,-338564143,1219816401,141697485,856478627,215065536,-1202499389,-4503552,-1591620097,251988603,-773271296,-773271064,2099705576,1993882378,-1193768175,567101440,-972091485,-15790586,113640939,1526730510,116900696,69225,-4494988,-850873089,1960512289,773753098,-850873331,-1207012575,-661782520,-402405958,-335947381]},{"sector":9,"data":[221029190,567089588,-850217904,1200236065,1530922051,125124924,1963064192,-1576473854,-790098229,-1273793751,69324057,248226369,1932116712,-320411643,645986027,-2143348135,706369854,-1007112843,11665827,-139460595,17462790,-402426624,113705201,2422,218826438,-1710831871,-402653174,-1427635492,-1023314955,-1593755160,136646249,-2147467904,-1746336907,22800384,646013299,16715552,253771395,-1206094590,-1172439019,-628228088,-1174164061,-622328915,113647576,-117175002,-150956055,135162118,-148343808,806251270,-1172605680,-1159199731,-212277032,45988508,-1646743320,113641587,-385544922,646179117,-2114515351,944398,-399381632,745734353,241764087,611647496,-402390598,602462341,-1111843597,-662968318,-972524643,84747782,-2115438359,944398,12118144,-2096897816,694846,243997301,243862152,28838554,2065599232,-1673622262,-1416385782,-102612845,-402461976,1323827984,-1966868477,1125042462,-1928828743,-1206483178,567100433,230176882,1931595076,1964325897,2877485,-2002723349,1359362070,840924169,-1142894108,-670886005,396360577,931860605,175437323,175849101,-67100743,-1597790989,1927810761,18463476,-1160257304,-622329323,-224073513,-1007950616,-1732311266,175422987,-67033927,516138227,194559751,-1190497090,-201588444,-117214042,-1007156757,1958676254,194559498,-67033927,516138227,146296838,517508608,1048598535,1962874502,75086421,869763304,248094930]},{"sector":10,"data":[516286090,45681865,113714688,3922,653455080,1913594019,-381714383,1065356148,-2145815061,1972372095,-21004013,1974097153,1763339,1625818738,267122688,1980167974,1962934538,11528197,133759467,-2091662561,1065421763,1047855616,-16226429,1736642165,276168469,-15243389,149630068,1402755,1533827,-16029821,2139298932,376570125,1057849219,2139295863,175243535,-15761535,-133990656,1543045611,-2081190973,-148501562,17462790,859665664,138709970,108380171,-1961540469,1552619348,871626509,256674770,-770969097,641728884,638220451,175769286,2637056,-2144989579,17462590,-970586507,17463814,-1190495297,2088763417,57944358,-67103815,650355955,175849089,1979253248,12812567,-2146465278,208862457,571472,119462030,125016,-1329581117,-1144968449,-470351841,378222221,-25038845,410457863,175849101,503324601,-962268409,17463814,175638214,32241704,-1202666503,-661782520,-2141714658,688190,820523637,140282368,-1962652533,378078804,780667521,113707645,33557115,176031431,113639425,-2147349888,91619323,-352309016,7202819,-2093055037,141819914,-1593835334,132844163,177346187,-1106603871,339414742,91688050,1979860027,180781829,-2084310805,688958,12191860,176398592,378210283,-1868494190,1376039178,176232075,-1037309229,14320474,-2097151699,45285594,175980170,-763116797,77056,-150939005,176595955,-2093055037,141819914]},{"sector":11,"data":[-1593835334,132844163,177346187,856330401,2099153627,-1141639414,-470351869,-150994245,-1143852045,-201915904,176595776,176267715,-150986565,2063991779,-768391158,175847159,-1559420253,-2036263294,-2144930294,2114323210,-2113535734,1048822550,1946159762,-2147039732,113704726,-351922559,177250605,1962934333,176398595,377554630,-2113524991,869413654,2099153627,1039398666,175247350,377489094,-2130262273,868418582,176398802,125157387,-1962241887,722113046,-2096464378,-315490086,176164490,103492323,-628946298,-1946689024,-1324713186,200004357,-1960086309,-150306546,1962934723,-773074682,737471465,14320577,512425778,-751105411,-201913229,-1098432,-2069691273,1438302998,-729290751,-2132468503,-16177858,1354957172,1448432211,850664966,248059530,567132926,-343210210,175881759,567104436,1516068359,12802139,-402653184,-402259722,1053032923,-2053108535,-1409305590,-167706696,-15302650,-4717708,-150492161,135162118,-401705984,108136284,-402590278,-1024863199,13953024,116856691,67112553,-843445387,-737417215,220595910,-1494615804,77719552,4056178,-385649408,512426137,-620032237,512430709,507186961,141760130,-402528838,-1024732195,-149308765,17721606,-2141031424,863038,117321077,1206390059,907447270,255107343,255465097,-401655645,1240000065,974556134,255369487,175847159,377619971,-1961248605,185537310,-1960413733,990843166,1998174238,637978140,-642120691]},{"sector":12,"data":[-746592255,241772163,906414078,-956301297,996358,1967030272,91555082,-352035864,80603139,-1006675223,241764087,108298240,430966470,113689410,-1016981072,175376070,1947634949,16508938,241764087,1635057920,213780166,1141749761,248061578,1119470590,-1105818360,-2145268468,835134,1048593268,1963068606,45201933,-959248152,-16332282,1048585707,1963134142,1423371,-385796632,334233304,241764087,192151600,-402538054,113693409,-2130770230,-16332226,1793655669,-1106852125,228655116,213885709,-1559425119,362876097,219259661,-1559423071,113642771,-402646609,-1628962427,-1354858495,141950745,430835398,569112576,1912658408,-213456868,113641587,-134145618,820514795,-44635907,-425531312,870930680,113689599,-134211154,1347880643,1049317715,-946991925,214515339,225844875,1377416865,-75251060,-1190300672,-1426915312,-1908211917,-286569534,1482381658,-1195178145,512377869,-1006760247,-855097159,-145702111,68053254,-402426612,116850709,67112553,-912258188,-291248114,-844250696,-2134681553,-15094466,1048593524,1963264629,48347682,-388891416,-1164120934,-219675971,141794769,220595910,-495982331,-387582744,-1597774351,1726484169,18463470,-1160653592,-823655915,-325523247,-387589912,113698261,-1023403603,1946161981,1391920,1048795252,1962940862,-1136753913,2004090905,1946163005,1785110,490541428,1024226304,125042718,1946165053,-121374462,1762064323,1963196430]},{"sector":13,"data":[45988382,-1160676120,1994916541,146415313,-1545957888,-1380318291,-781719549,-972690657,118302214,116900857,67112553,-1111875979,-783292414,-402473542,-1172385463,-628228088,-1174164061,988283821,99295185,220595910,-1161561850,719847909,1355020753,-2002693549,2065599242,-137219318,-1193767965,-201850881,1511637667,-121415589,921188466,4646912,-402630680,259195008,1967030428,108332298,10610845,1939669483,-397370356,57868094,1476439272,-401902947,115867813,18737153,1371784939,213978763,431885961,213847691,431754889,1048626009,1963264629,-1106852345,99287564,213780166,1048625920,1963264629,649221,113706731,72128,-1029615421,322863897,158662669,219219515,295764854,432055053,230212440,-920745404,-1178337778,235538432,378214832,378083776,378342595,567086270,1504972403,567139123,1962951485,-104597502,113768643,72128,-974647182,-402033921,1793589257,8513536,1388572395,1448562769,18464929,-2096293626,858902,-1962075743,-1190323426,-68681628,-1949070590,-1962076354,185406774,-787843841,-773926417,-338112022,1006041074,1947841542,1762064160,1946419214,-1193768177,-839366400,1958742831,-529012468,-1172720477,-689438499,1482645199,1354979929,320244562,219259149,432014891,-1560225149,378080529,1482296595,319720387,286133005,-116886259,430900934,-1960514561,-2095464434,443810041,213845759,990691233,1963624966,-1090074870,-16777204,1225572614]},{"sector":14,"data":[-1007099413,-1957538992,-1592977642,103484693,370871569,653724947,378079880,295898899,1482381839,-1375275325,125107993,430835398,-399709440,-1796669571,-1354858241,477429529,-2130823960,-15093954,2011696756,-402164995,-2002649166,49018890,48958955,-389871125,-2002649182,-138151926,944390,-1173981940,250085621,47311,-1185823752,113704961,3852,252315335,238747649,1601637000,238977105,292945679,-1593751832,113708815,6057,-350770269,-1459173622,-1944605417,-401102050,230162642,-1965345980,-32585442,140622275,396367501,1364795853,-454556045,3991552,168690521,252354831,100913715,370347793,295898899,320243983,1503390479,-1957604413,-2096461810,292815097,-1259843245,845824,-11969703,-351334138,-1017423382,1364414551,109971026,1048579275,1962874496,-225750984,45742219,24373248,-703346941,214500867,-1962880381,-389968678,-1047658226,-138743669,268417039,29488985,-1324846080,-1310665980,-337456380,-1946799335,178650,-1946090008,15001793,-259276402,-1191184454,-1960378369,-137878772,69281488,991168806,1499072465,-1017161637,396363462,213885184,-1592286813,-1549595455,243878167,178329509,396862223,-1996484888,-1559291882,1505365782,-842012669,1448563139,252909195,722407841,-2095676922,-225771302,-919340917,175967882,-1962881816,96963542,-763166718,1499422208,1364414659,861361746,320244690,252813583,377620011,-1962878333,871926770,2098105033]},{"sector":15,"data":[10217482,242534667,512416563,-651490691,252321417,-617411861,175971978,252321417,856624289,168166354,-2012857585,-1593149942,103484040,178458380,252485903,100913715,212012810,1516134159,-1017619623,1448563283,-208940661,-919340917,1122504881,-1948843264,1590332353,-1017423265,-13412777,-108792269,-148540416,1946157505,334496518,-134091781,-372175502,1946220931,331350790,1927574491,-1949922555,82573535,-617365453,1354981214,-768388525,-235420021,-947130229,-125046281,1532676747,146719576,650546688,175376070,1947634949,-92542966,671532838,654311183,377489142,-1157270273,65798135,638580667,432277191,-1993998334,639223326,-400964447,-1960443824,638527518,990848673,-402295613,946995319,432316710,-987313869,-401814218,-1960443656,991544862,-1961986621,-996071733,918890009,1944587465,117384704,-1591338556,-1960437308,991331358,-122652989,-1912600389,-768359461,-2147027418,125107990,-763109167,-1961694464,65065432,-1314773309,645932569,-788457039,922167016,-1993995653,639218198,176031235,254190374,-1608114493,28905161,378217984,-987361498,638373150,257033927,1827143680,378087143,-1021374680,-402252202,-768351876,-2147027418,477429526,-763109167,1096448,-611519497,-661732605,82047491,1122700425,1055589515,-523118453,27902723,-388916224,76279811,-485460579,-268425975,76136715,-14343957,-484709617,-773730031,-773729823,992737,76136715,-388953877]},{"sector":16,"data":[-388896559,520612049,509002590,-519116794,-2147027418,192216854,-1307145434,-1947073767,640281348,431101579,-92147197,91357695,-352313880,637831959,431032054,633304321,149622783,-388896559,-388896559,-1017241849,1448235347,76202035,639535910,-1993981169,638527006,431032054,1343583489,1493109480,-852048602,-1965346036,266829884,451658507,78770212,-397350701,643366639,214775493,478862131,-472709967,1516159755,230906713,1886339850,1734963833,673215592,824191299,758593593,809056561,1698897952,1634890862,1867522156,544501353,1952870227,1701994871,1850286124,220212835,220465674,1701987082,1936028769,544104736,1734438249,1718558821,1701344288,1937339168,544040308,1634038369,604638510,1329859085,1702240339,1869181810,1970085998,1646294131,775037029,1919885360,1734961184,779249000,220465677,1701336074,1380535584,542265170,1835888483,543452769,1852727651,1864397935,1634887024,1864394100,543236206,2004116846,543912559,1986622052,168636005,1409944868,1293968744,1330795081,1919950930,1936024431,1635197043,1970479219,1936024419,1819633267,604638510,1750338061,1229791333,1380930130,1869770784,1936942435,1935767328,1936618784,1701012341,1969648499,168636012,1141509412,1702259058,606107680,1819635555,1869488228,1700929652,1869770784,1936942435,221144165,1700930570,543649385,1668248176,1702064997,168636004,1920091428,1914729071,1768186213,1931503470,1702130553]},{"sector":17,"data":[1918967917,779313509,1159989773,1919906418,1769109280,1735289204,1701344288,1380535584,542265170,1734438249,1768300645,221144428,1917133834,544370546,1953067639,543649385,1953724787,1629515109,1935762802,604638510,1869771333,1920213106,1768645473,1948280686,1293968744,1330795081,1835606098,543516513,1701603686,604638510,1869771365,1126182514,1684829551,1953459744,1701867296,1752440942,1229791333,1380930130,1634560288,1713399143,778398825,1696860685,1919906418,1850286126,1717990771,1701405545,1931506798,1701011824,1919903264,1701344288,1380535584,542265170,1734438249,1768300645,221144428,1919230986,779251570,1970225952,1847616620,1663071343,1702063980,1701344288,1380535584,542265170,1734438249,1768300645,221144428,1919230986,779251570,1936607520,1768318581,1953391971,1835363616,544830063,1914728308,543449445,543976545,1953724787,1763732837,779052654,1696860685,1919906418,1750343726,1868701797,1931506799,1869898597,1868963954,1752440946,1679848297,1702259058,1936263693,1668180256,1634757999,1818388852,1769414757,1948280948,1293968744,1330795081,1868767314,1851878765,168636004,1920099620,539914863,1970499145,1667851878,1953391977,1634759456,1713399139,1948283503,1293968744,1330795081,1868767314,1869771886,1768300652,221144428,1919230986,779251570,1701336096,1629513074,1847616882,1852121199,1701409396,1986076787,1634494817,543517794,1948282473,1914725736,544501615]}],[{"sector":1,"data":[1701996900,1919906915,1862929785,1752440934,1919164517,778401385,1698963488,1702126956,1701736224,544370464,1701998445,1818846752,1713402725,544042866,543516788,1953460082,1919509536,1869898597,221149554,168633354,1701603686,544106784,543516788,1953460082,1919509536,1869898597,1864399218,1752440934,1634213989,1679844466,1702259058,604638510,1869771365,1126182514,1869508193,1886724212,1702125924,1701344288,1380535584,542265170,1953394531,543977330,1701603686,604638510,1869771365,1411395186,1701995880,1919705376,2036621669,544434464,1229791329,1380930130,1852793632,1819243124,1768294925,1646290284,1763734645,1635197044,1869488243,1869357172,1702125923,1852383332,1701344288,1935764512,892477556,1919250464,1953391971,543584032,224749684,1952539658,1918967905,539910501,1746957385,1847620449,1646294895,544105829,1701602660,543450484,543452769,1668248176,1769173861,168650606,1819044215,1852793632,1970170228,168636005,1920099620,539914863,1635017028,1935767328,1970234912,1763730542,543236206,1701603686,1634235424,168632436,1701867617,544436833,1646292852,543236197,1381124429,1663062607,1920233071,1713400943,778398825,1851867936,544501614,1953394531,1702194793,604638510,11670377,514850847,-1943077882,777211662,1397694094,1325829678,113651283,771773259,1399260870,113651200,1023431500,242569296,1427013678,-1015005101,512241217,-2136976564,771798016,-1202355037]},{"sector":2,"data":[12268294,-2145268480,108135931,-528039029,817107691,-997842483,1963138621,100630535,531628661,1397334830,1426519598,628441171,-1325660386,8503087,-1241559670,-233577728,-485526098,92939789,1312612132,-369561739,-1947729785,113651202,776033888,1398081270,-1928825536,-1269928938,773967113,1397309057,275972608,1318393485,1258735150,162792787,1424695757,771789288,777211040,1398081270,-402164416,41091688,-1410854421,-352161022,116796962,1967149909,786230018,1398081270,774272320,1397694094,1324750477,567085492,773254136,1398081270,772633920,1397694094,1327306381,567085492,7334137,1597932334,276037715,1594265134,-850807725,113716769,21343,1698595630,276037715,1694928430,-850807725,113716769,21349,1397465134,1730578990,-1021376685,-852157512,109850145,-1993452712,-1202498018,567096611,1543932974,512306771,521032538,1427183245,-853206088,404131105,623097941,784540109,1398292099,773092352,1398150853,-853206088,382021153,599282522,-1021194971,1578008622,785350739,1398673024,1397804928,1448563281,66816853,280711161,-1946945753,-1161655320,12451840,83460864,-242546570,-1190859133,180027396,-2131495168,361246914,47695,-980683806,-1962934086,48846,-486539075,1575152386,1499094878,147019867,302035458,25276416,251703808,2030022656,1229806650,1380930130,1262567982,1547335680,1381124429,607015503,2013275172,1229806650,1380930130,1279870510]},{"sector":3,"data":[11665450,1303380045,1380930121,1180057939,203902025,268481024,19509248,268481024,980987904,1380535644,1095979599,1229336150,1229783116,1397903186,1229346369,1380535628,542265170,1279870496,0,1163087201,1179208787,1381187926,1296650831,1161909061,-1308606640,-1342172160,-1258257985,-11695616,800068579,233025266,1031801717,787707185,1398083200,-1909537920,777211678,1434597003,-2079421650,113651285,-486517307,1011461148,605451311,1916878047,2002402546,914960110,-1993452158,-128613362,1048653507,8476034,431230069,1090789837,47430,-1007034389,1437573678,1435738670,1436656174,1446421038,1330553390,1428586542,-1909534893,777211678,1398081270,-1928432320,-1269873130,-1927164663,-850433258,-1348456927,131917909,378341235,2145996476,139716610,2011760243,41216258,1577514542,-176848813,-1929176344,1917859862,266070252,1577514542,-512393133,1930065896,1048587787,1963217739,37284308,772809704,1397694094,1437537933,-1186790984,567083041,1441334131,116796930,1971344222,1023457456,57876941,771900393,777354915,1434328715,-1174404935,45613056,1914817858,922169063,-1959897647,-2091527402,-1036320062,-1959864718,-1269465570,-1927164610,1917873942,-854739852,918892065,-1959898269,777377038,1433405127,-953286656,5599750,516238848,-1914153594,2115407120,776434255,1398671094,776107392,777377185,1439770359,309584,-388767021,-628301302,-628174845,992600,-1993418749]},{"sector":4,"data":[777212190,1397956236,1440325934,1433445166,-686912722,273082453,1333663373,1676215923,24176897,1577514542,-176848813,1912980456,49277168,1327402542,-1357476525,1124186197,-855637831,1023588385,378347981,-781037559,1434362670,-2045328082,780873301,-18328109,-1676243707,-1263046065,773967117,777378209,777351331,1433536199,-1590820864,-1557244457,-164735493,-2142020090,-1909549195,777215774,1451564683,-402652743,378343364,57888638,-1325342231,-777966075,-1947675819,-1909567032,-1923920122,-1185525442,-208994293,1952032499,549683997,-13703198,1951791886,109260302,771839344,1433540227,-374871296,1200292060,-6083046,512634453,378360655,28857910,47427,378347981,57889297,-1929341463,-1202309610,567098625,1376851597,-2081881229,-2136789504,-6214059,204335189,1433444654,1448911662,1433575726,1449042734,567093940,1963886894,378089046,750016119,-1993465395,777419022,1434459787,-1929369159,-1269408746,-1927164608,995234070,-352160575,-851528649,286690593,-352160942,907447595,1124186198,-855627847,286690593,-400985518,-1276637546,-1022266878,1258735150,-164756397,-2142020090,250282613,1258735150,-164756141,-2142020090,-1909582987,1381191454,1329993357,567085492,-855002022,67168289,-1909537799,-1923920098,-1202344170,12141313,-1272853248,-1272853183,2210108,378347981,-1200467959,-1590765429,53368275,777381126,777388963,1397694094,1443209518,50740014,772044374,777388961]},{"sector":5,"data":[1443038761,-785975506,-1261925547,-1927164608,1917859862,1975597846,1048784402,1962956291,-851528497,1863748897,-385649840,-1909522586,-1923920098,-1202344170,567098624,1342772877,854190450,777330429,844485025,243937005,-503884320,-1070348149,57862609,788130624,777211299,777376673,1441072643,771752122,1440751242,-201916233,1946221187,-1958723583,512634600,378360655,12080559,1914817859,243281447,-1206889643,567098624,-661972366,859964088,-841862199,-402034143,-398786470,-399814794,567099060,1446385293,-851246920,774337057,1398083200,1023457312,443687373,45668491,868823874,1914818002,2680841,494331963,1052043307,-41737779,772961280,1437537930,-1270814080,1914817846,1927101188,32241667,-1021354503,47955,1292798766,-787946669,-774319638,-2080840997,24379643,784554816,1398081270,-1023314624,1426519598,125112403,1448162957,771756264,1398081270,-1928891104,-396999114,516096001,1364414470,-677302699,653733461,549148113,-1946945792,512437960,-1909566639,-1957473530,512634606,-175418545,-1185809525,-1494024181,-2096663463,-287170365,-970585109,-1960385273,132651591,1532583168,-1021376680,1381061406,-1957341609,146920,-1590794126,-147958390,777376038,777358499,1445529334,-1171098240,-980746240,-989599535,-1962913816,29751047,-1324780544,-2081893628,82513703,-268425343,-1961885915,146920,-146986894,-349998321,47814,-1073494645,-402599293,126550044,130541707]},{"sector":6,"data":[37552128,-2096664064,41154557,1583195627,1532582495,53396255,-2091545594,-661978926,-1190141053,-355401724,-85796655,-2012871890,-1009217963,567086516,-49887442,788528981,1445594823,-953286656,5647366,113716736,22062,805750574,771752022,1446119111,-953286656,5649414,918892032,12538723,20768768,-1590791566,-1557244560,-1590798903,-1557244558,29316555,771798016,777380000,1441072699,-125107593,1912673768,1889611339,-844943787,1923165781,-811389355,341609813,-754021586,307005781,-448885970,48469,-720467154,15263829,797515378,149447,1889611264,71797077,1433575726,-2096740471,1162283203,132898786,1340151437,771801065,1440296587,-686912722,11855957,797567602,149447,1889611264,71797077,1433575726,-2096740471,1162283203,-2094080030,39183678,-953284746,5624070,512437760,12146046,47616,-851312456,-1915057375,1934637078,1030482690,125042688,1946221443,778038018,1434328715,-1909571404,-1185722594,378339392,567104943,1662436654,-1947038893,-506391988,-506338863,-2095660669,-1590804287,-523151919,-1270814333,-1927164608,1934637078,-1272976638,-1927164610,1934651158,773057282,1397694094,1437537933,-1186790984,567083041,-1007041544,1442816302,-1022905624,777133649,1397694094,1446385293,-1186790984,567083008,378341490,1102337590,526000589,1377747801,1327402542,378360403,162811718,-1269161523,1512164617,1444856607,1381061456,-2044803794,189238101]},{"sector":7,"data":[-788120786,-1974700715,976096583,1968562182,239569730,-570016978,-1976011435,976097351,1968561414,373787438,772687619,1440024123,1200300405,-509399528,474450773,1440981806,773474187,777378723,1399011013,1510098057,1510403064,1356076685,1482381817,784539486,1443049097,1577514542,1702199379,-777965998,653733461,-1957014043,512437960,1085560190,1299325389,1232453947,1577514542,1098219603,94449234,104541782,74864131,1443078446,50735406,653733462,-1957014063,512437960,1085560190,426910157,360038715,54428462,192151638,53401740,-1906964730,-122033192,512634563,378360655,162811718,378347981,162811960,-1007083059,1381061456,102651734,788274958,778012834,1397309057,728892160,718127155,594863114,-2011264466,1105952863,-1203568457,567100425,-1023995534,997527552,1602762381,-855441224,-1187910870,12124159,1914818012,-425181,-4317580,-285099777,343024077,1962933891,512372239,1093427080,-165281609,57966592,-117314568,1583292167,1482381658,2026109948,771775546,1398750851,772830208,1398736526,567101876,1594279726,771752019,1399144067,772830208,1399129742,567101876,1694943022,771752019,1438975686,775074816,1437537930,-851383680,1979661345,33351939,771901323,777376163,1381361571,-1207959110,-147980288,777376054,1515551395,772294538,-1957306974,-1557264825,1200248286,784399876,-1957306206,-1557263033,-388934157,-1557206831,-2144446993,2136353062,1442029870]},{"sector":8,"data":[1980757565,243281414,780162601,1397309057,829621248,772493195,1442123401,772820779,1440157321,-1979711304,-1557262521,1191400945,-710726138,784859989,1439895177,772818827,-346695261,189762348,-183596754,290401109,-686913234,256346965,1441899310,772163331,55956899,243871432,1200313811,-643617263,105352021,1435149102,-1207959366,-147914753,777376054,777389475,1439770359,-754973511,128134888,113716822,22149,-786527442,512306773,53368455,777376030,1439768067,-754973511,-850873109,773681697,-1152163933,-1993408513,-1269604066,1931595080,512306702,1219777377,57876941,771805161,777217443,1398998727,-2127691776,1079206206,787051009,1399129742,1665043246,244002387,-506374701,-506338863,1360445827,-1426915152,4195672,771752122,1439774455,1946221187,37568513,-1207732480,-1557266430,-986819099,-1923914954,-1557261244,61953422,1439932718,-753777527,100871904,-1557244530,-1607576176,1149785519,-744411647,100871765,-147958299,-1185558234,-235470832,1627798318,-1941997741,264733632,-271383375,-953235709,5604870,-2002571776,1048653397,52384585,-1607590286,11818464,-215550162,100871765,-763144715,16417536,-2144467340,-2141862642,378389496,-1007071073,1330714253,229950457,-1590812211,-1557244455,-953264784,5599750,-677302784,-73191851,116797013,1971344222,512634390,-1959898273,-1185512162,1978138625,2115407110,772371279,1397425862,46065924,-1590819407,-388803119]},{"sector":9,"data":[-1909536629,-1923920122,-1957280194,3965171,-1185864844,-1494024181,-2095287207,-488496957,-82903250,772699221,1433405059,377695745,-352299662,-1959990372,-1959912889,995488542,773682371,1441734187,259507003,1426519598,125124691,1379997325,-386170904,65796954,-1274916375,773967117,1442645703,-953221121,5646854,113716736,22060,772196142,771752022,1445988039,-953286656,5648902,113716736,22068,1442029870,1445176110,771752122,777397153,1445529334,50820224,13796288,-661976597,-1023153967,771805827,1439774455,-115963602,104410709,1551128061,1442685742,1946157117,-777966056,-1036302251,-13758601,777387278,1439766019,-115963602,116797013,1971344222,512634410,-1959898273,-1185511650,-1590820862,53368317,777379334,777351331,1433536199,1105723392,2115407109,772371279,1397425862,25880836,-113865938,512437845,9131655,688322094,309690454,-147979087,22422278,621114624,48959487,4057299,774403072,-397016669,477233499,-150536402,-274649515,104410709,141776375,588185390,-14096042,1361450637,-1274988567,773967117,777378209,777351331,1433536199,-1590820864,-1557244457,-164735493,-2142020090,-1909582219,777215774,1451564683,-402652743,378340524,158551934,1258735150,-169278381,772124928,-749350495,-2134340632,645195071,1946173312,549684001,-13700638,1951791886,109260302,771839344,1433540227,-1918113024,-380543210,-1909587776,-1957470458,512634619]},{"sector":10,"data":[915231567,549017097,-1264258304,773967117,1398671094,773223808,1398742670,-2061595858,112982,-1929060632,1934607126,113651209,-385592501,-1959919488,777422622,1442395787,688322094,343244886,772800440,1445136119,74711041,-523041615,99287049,-1979711560,771798272,1440550538,1442685230,-570031314,1889742421,113716821,21874,178513,1439801646,104410696,57890297,-402652743,1918436467,-241095149,100740693,-2094115472,5599766,216782562,1338185357,1258735150,48956499,-335952904,645934844,-1195420119,-164753417,-2141837050,-138935436,104410879,108353025,688816174,-164741034,-2142020090,-1590794891,1625839139,112896,1595837998,512437843,1709725317,-352161021,-1909586361,-1923920122,-1957273538,80118771,-218098247,812976038,688322094,578043990,109981190,-1959898273,-1336507074,244002304,-1426893359,112903,-2061595858,63563862,378340979,65753834,-117314568,36524995,771798784,1440751242,53404663,-2091518714,-1557266222,-1993452176,1532326422,1364401859,777410386,1398742670,1445634862,12240779,512372224,12015072,-1959857161,777398814,1445731897,-1993472140,-346674146,104541738,594695732,103493200,-1892788684,777401350,777400995,777399969,777398947,1445992073,-2028041426,772991830,1445992073,1446159150,1446290222,-2028041426,1048784470,1946179122,116797034,1971344937,251604540,12211762,715206144,787009878,1445594627,-1962882840,116862465]},{"sector":11,"data":[87594,-388953996,-388896559,-14292783,715337231,267861334,729220212,-1880508437,251604480,12211762,715206144,-2084568234,-1897398062,771853056,777398947,1445609091,2003662071,781118210,777398945,777399971,777400993,1446250025,1962934333,116797024,1971344937,1048653325,267867690,1299661428,-2094134549,-145348034,1098331764,707691310,-1590820266,12015146,-534869458,786691925,1445987843,771805827,1442121219,771805827,777351331,1433540233,1516199672,-1021355175,738641710,-1191182506,-335937545,-4654612,1357310975,-147959215,-1957310154,104541946,930371069,-930407566,238759497,292902397,776064907,1439764027,53348211,-346697410,-39637478,100871765,-1557244450,-953264784,5599750,178432,1510036456,516118617,109981190,-1909566641,-1923920098,-1202291906,79233024,783020800,1398081270,-1203735168,378354944,567105078,-661965454,-1275057735,512634431,-1959898273,-849967850,991719969,-1927777599,777419582,1451570827,-1959877211,-2091481802,62462406,-1264192768,119655742,102679327,1327402542,109981267,-164736177,-2142022394,28842100,47427,1435702925,2104631757,378356148,567104915,28865515,47427,1435702925,141697485,1436630669,567105204,-1186790984,378339328,567104943,1435713165,567105204,-1925381448,-850029802,-1960414687,1107343576,-1174404935,567083031,1435637389,-1275067975,-1205744320,567105280,-849935944,-851528671,1124186145,-1929371207]},{"sector":12,"data":[-850029802,-1354855135,-1592357547,-849955755,-1021376735,-1186790984,378339328,567104915,-1925381448,-850029802,-1959628255,1107343576,-1174404935,567083032,1448875661,-1275067719,-1205744320,567105280,-849935944,-851528671,1124186145,-1929371207,-850029802,1364443937,1431787090,922693150,-13740688,-397053386,-1993473921,777352734,1433935500,2081327406,244002389,1390630268,2047753006,772109909,1434062475,1947109678,237579861,-1607576196,1093424559,1880525614,116797013,1954567621,-18164,1327402542,1881050451,1915080021,-2127651540,5601286,2057383440,100740693,-2094115472,5599766,788047851,1433536143,1879478062,1599938389,1532582494,-335962685,1397838058,78764172,-1023153197,-2091132786,1482231779,1381061571,508909398,1981712686,512503381,-1993452168,-1202359282,-2135292916,1926314752,-1348456923,776023125,1433409163,-989399506,208961621,788529081,1397694094,1433411213,175253197,1562376349,1499094623,-107101349,1730578478,15723347,-956301312,841478,-385431808,-956301300,850694,248225792,-1576052062,-794685596,61073433,-960298637,1726726,215293579,-1962070879,773194704,216113933,215420555,-1036271357,113651830,-1962861991,856501814,81783039,-518091234,73525260,856781343,-1194685486,567099905,-1995645533,-133374186,68413596,113689501,100801113,215561924,503826316,216080014,520368872,1381032562,-402393880,1482294129,-1950154381,-1559435490,-1036317453]},{"sector":13,"data":[244042356,-1056764695,762757691,442044032,-216651004,871533324,74705151,-216101346,66447372,866480671,-1194685486,567099905,-1995640925,-351473386,1494122642,-1006237670,-1945310410,-1910634553,-401804514,1931412427,-8853245,-1964486064,73263107,1510163688,-1023315112,217652875,990709155,-1948224318,51182350,1992440769,1494122542,371920922,-225768187,115932979,512630276,-1998058235,-1150148861,-896806349,-851312200,218211105,218306185,-2130762519,538597646,-46742522,130518028,85888542,56485901,-15931105,-1174403143,-1006235814,-1945315018,1072170951,-1987022335,-166041314,35281158,1122508917,-1023315198,-583613434,130518028,443233929,443367049,-401812035,-713948812,-1006235157,-1945315018,-1910634553,-401809122,-1960901864,-1961203426,-1962089202,-401808618,129564982,258259456,-348732410,130518028,1912660456,1763609033,1493628442,980748314,1929520360,-406994175,1493628428,326435866,216991431,113704960,3313,1912684520,103345106,217003716,-1995978868,-1994757322,-400921282,-411959044,-1006235157,-1945310410,-1910634553,-401804514,-1960901984,-1961203426,-1962084594,-401804010,12124350,442153472,-46742522,130518028,1912629736,1763609033,1493628442,980754458,1929506024,-105004287,1493628428,326438938,218171079,113704960,3331,1912653800,103345106,218183364,-1995978868,-1994757322,-400921282,-411959164,-1006235157,-1945305802,-1910634553,-401799906,-1960902104]},{"sector":14,"data":[-1961203426,-1962079986,-401799402,-1007157178,939514507,-2012296544,-851659769,-1962438879,-1961266472,-1193899057,567099904,1085589811,-919395891,12112267,-1021194942,1962935357,146415354,-1545957888,-1380318291,-1398544381,-1120409313,-849935944,-851528671,-878656735,-905561586,-1274579698,-400438003,512480409,915085929,1049303659,1042160237,-401842546,1914634660,-1002567976,993921094,175440966,993968268,41223750,-1274559737,-1591620339,-1992422100,-878703546,-905561586,-1274579698,-400438003,-143474734,6196030,1455701510,130124808,1107343442,106570189,74892350,721930124,1475943410,264667990,-402598013,-963968585,104554334,158731566,221132427,-1696006349,1798736129,1832814874,512630298,350752044,91430657,-335756824,-1949158494,1107409098,-1992416819,-1992423354,1038682710,-1195116033,1522154752,1931595023,-15931133,-1962093149,11593944,215432835,957314048,1946998534,-1958824951,-854797026,-677133535,-650737396,-616658676,-485062388,-452032244,-1195116532,1689926912,1931595023,-20125437,-1962088541,7399640,216612483,957314048,1947003142,-1958824951,-854792418,-375143647,-348747508,-314668788,-183072500,-150042356,-1195116532,-793101056,1931595033,-24319741,-1962083933,3205336,217792131,957314048,1947007750,-1958824951,-854787810,-73153759,-46757620,-12678900,118917388,151947533,-1262225395,-1021194946,859964088,-841905207,-1947170015,984570,-2097098109,212930530]},{"sector":15,"data":[78766803,-1039406893,1107343440,-779368141,12067277,1478610263,1431457987,-398524227,1516044301,-1118452904,48775168,868441344,-473003054,-842691825,66286113,1975598032,6285549,-472937480,-842691771,64975393,1975598032,4974809,860999563,1959922624,1095956,-980694485,561127885,-1053044733,786963317,-18176,-980694997,225583565,-1053044733,451413877,-824026880,-1178379951,-422510588,-85796911,309699,-556666927,1388575458,-773140144,-773139990,64523498,1490587330,266503002,1342578371,-1912600392,1476861656,-54512408,248815910,-164374386,1015078539,-1088457728,146348624,1973875456,433110796,-1073042772,-341046156,-1393325064,-76169206,520608491,-1307012669,-1342175549,30288112,29622272,28246512,1112672448,-1064507253,234885125,303903,787971,244039822,-108331002,-34108593,-1202674445,-883949516,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704,78708751,-789068149,-628299565,74698795,-768878452,-268181293,-947135858,-388771593,-802438516,-1064565645,-522989013,-1030817789,1322289836,1187548077,-31145334,91598908,-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094,-1031072797,-1064385789,-2080863315,292880383,-501415642,16417267,-2129234704,-351272766,1086360796,-276578162,486614544,-339702200,-1950118942,-1962932162,50334262,33948144,1060096,-1064380274,-100663109,-410265970]},{"sector":16,"data":[784698363,1085550591,-1191181637,-896794602,482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,3765360,9371780,10813594,12255408,13697222,15139036,16580850,18022664,19464478,20906292,905838922,1073037237,1076903961,1084244100,1133789950,1183729109,1190872742,1206208423,1274956249,1282624531,1334201661,1368150395,1371820467,1459442859,1561156703,1602182744,1686134717,1764254893,-1992005202,35774,0,0,0,0,0,0,0,0,0,1526726888,96504912,243990544,-939327202,-1946464375,50406926,-145782328,18878091,-1946595447,-1996413938,1049359695,378208552,78709016,244048595,451084566,280347942,80184065,52878732,-2097080274,-402456123,67231118,521070306,-1962868545,281444850,734759681,1487205326,-78147846,-67541109,16084991]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[2305257,0,0,0,0,0,385875968,-1761601536,38400,0,855791616,-956131836,-1341989886,352609795,-83760638,-771495677,-419305725,-419305727,116796929,1963003717,516159490,240340998,4242207,1048626062,1962870430,15395075,386332198,125108992,18163328,-2147095681,-2147412722,386332198,259326976,-1777928666,125109248,18163328,-2147095617,1073812750,386332198,259328000,-1777928666,125110272,18163328,-2147095585,536941838,855639225,-1946209290,637606812,-2054682742,1179058449,-957291962,72198,257373835,-1979419507,-789852132,-789851925,-1847061,-385799769,631243493,637942273,-1961265919,109379908,125112129,19334854,-32904447,-973003258,75526,19203838,-347716026,19243202,19269178,1049302645,1149898577,1107969,1049299570,1149898585,321537,-1611971002,75337208,1946172803,38091280,1023607924,1166799595,176809989,1543029753,-1021376680,973153696,1963009542,-2145613268,-13498397,17926026,1963459830,21267463,91491957,1946240132,654755335,166396161,19269374,19334854,621215232,-381270527,648085313,621165057,-33131263,-352246258,658407454,393543937,19205886,19203642,117311861,113639718,-33554137,1174480134,-1593896727,104464678,74776869,19271422,19205886,-17045178,973153952,1963009286,1363053351,21269007,1912611560,1497271052,21269007,1929385704,353271823]},{"sector":4,"data":[116787201,1954545946,29747459,-957790650,2106456318,4031236,1161436276,50623490,-2131563715,-150923994,125144406,19084937,-351888480,-1950130686,-2097077450,41222204,1418392555,52202242,589203934,1086518785,-315478924,-1157411702,-1024065533,-1157401440,-740098046,1946436666,-487390458,-1966543883,88378080,1973469942,107252266,1144661483,984904195,-1351154620,-167558102,175415490,-687514483,110831242,45287915,-661920778,-167427957,41164994,753460274,-2048132855,973153952,1963009286,21269012,1963459830,436602886,-167318783,436609232,-381270527,631307781,637942273,-972393215,71174,18286278,-286702080,19243261,19269178,113640821,1174472346,-1593975575,104464677,695533862,-478143350,1960512015,33259539,-1125579915,50036736,904463221,11528702,-972983293,75270,19203782,63341312,-1593989911,104464677,628424998,-478143350,-1962987001,-167702137,125110276,1963017348,-2080017392,158597444,19334854,638516737,-381270527,631307633,637942273,-1956940543,-1978705602,2106392900,4031236,1161448564,50623490,-2131563715,-150923994,125144406,-1962501216,1177740044,1946434118,63341319,636221410,18220742,386319872,1552547841,-1962987007,-2029518268,243269905,-167247595,-2147411450,-346160268,1179016712,-335738647,671532544,1543045121,-1021376680,0,1178942034,908729656,270549120,16909320,1364217682,1196248139,286280008,353637138]},{"sector":5,"data":[421009174,555753246,623125282,774712358,842084399,-1,-335573877,-2303014,-1,-488644899,-421141277,-786457,-1,-33554433,-16711909,-14745601,536870911,301957119,336725271,252253465,169679632,68354559,168298246,-62453,438108159,34997016,-62194,-13959169,1600061216,1667391840,1734763876,-8912897,-9175164,-9044108,-138,-1970667521,-808523009,-48,-757989377,-690629421,-2500393,-14,-1,823917823,892613426,959985462,138226992,1702326537,1970893938,1534095209,1644105053,1734763635,1818978920,-10475717,1668840028,1835950710,-13685204,1545666346,1044200507,1111572543,-48061,-11974585,-11665589,1381060687,1560280915,-385907067,-4671562,-1,-1128547655,-1061175619,-983103,-1,-67108865,591405339,643704100,1596532778,1358956587,1414677847,1330206041,226327376,1146307071,1246250822,574245963,1518141310,1112949592,1044139342,-13959361,1431600160,1498961750,1566333786,943194111,892611897,842083126,-13750221,-2004386561,-1010636289,-60,-960102401,-892745529,-3289909,-15,-1,64511,1442775531,1381061456,102651734,4242428,-1959863410,-1341177042,113764525,2147831,2028471156,-1268718585,365820239,-434065261,57840416,-150807575,1946159301,-135953654,1127123246,1008265999,-163351126,33592838,116800629,1963065367,113651253,-973011302,38662]},{"sector":6,"data":[1090975534,1946206223,17296131,1099255,-1336928140,107473063,-1981222736,195046918,109242375,1458088112,1023105030,1007514878,-99453446,9899648,41085200,-1760657158,1776885760,-488091646,-1759606266,-2133315072,57935843,1476825320,-1573986166,-12843365,-970061451,17209862,235029481,-1774286329,-1060637184,276384884,91597628,9834112,-1775861696,938180352,9840256,1951677631,1950432297,1954823192,1954757665,1954954256,1955675148,1955609621,1972517892,549975570,243271796,-400556009,243271213,-384827242,512360940,-1998061545,1977629702,-1777434617,166400512,141943100,9834112,30664977,-940146908,-1190366206,-423690238,1974399492,-163189924,494141895,-1090517831,-1359870748,1161616244,-990498187,-164792960,134223878,988358261,1968454659,-2134575564,-165906950,67115014,243274357,-1341915112,89122990,-846921544,26732821,-2147388439,-83879898,988327600,-2063484923,-2098653747,387877377,81837824,-234878791,1959037614,20637955,81915777,-391804370,-1476218620,-385649536,-58720052,777089808,111033984,1006925311,134247736,-167766234,359926980,1946339318,-1775892473,18278656,638119122,233373720,116862465,-2147479717,-2144461964,-16343490,-973663371,91554304,1947256822,388399112,585678592,15132933,1946469366,13297923,561336892,1946731510,12511491,1963116534,549713428,-1007285643,-1979026429,11200992,1946403830,405177590,-385649664,638058672]},{"sector":7,"data":[640679960,-147980265,1006342,-149130112,1963065541,281540101,-2144464524,-16343490,-990508683,134509632,-167766234,91517124,78899280,1968323672,-371160459,-58720100,1943336464,388374607,-67338240,-940167049,537293826,-352283098,553439750,-1979705306,9871584,-1640071122,41287430,-388827356,1574410,203743442,1508872,-1203977078,429927541,-1998310912,167778598,-400591680,451609424,1582624,-2143546133,116789363,1946681368,1950694453,405176325,645986048,-84148074,771978984,215498368,772502785,215484102,-1862092800,-1364191795,-100421400,1583292167,1482381658,1983696733,-973614985,74792960,-965257156,1946731510,281540117,116790132,1946419224,46462476,145228916,99156853,79951361,1396446324,113709173,305397874,9840259,59920,686358527,1015771895,-1341819591,44493088,-2147432969,255595892,12060277,43444645,74730044,58019388,-167727895,544474307,1577466414,772371727,111019718,-11343616,1594243630,772371727,111019718,-12391937,-1640071122,91619078,1928778472,82886431,-234878279,-166169170,1987379911,82964353,-1275061856,65336842,1680071,-956361751,6406,-234874183,1011315886,1011380738,-2147125491,988509892,141711164,347820588,33286405,1946339318,12973854,1008235648,-1207536356,-35019264,1951611905,1966423077,-1543456581,1006759913,1007448635,-2136115388,-1070453308,-150872087,1954545861,-370102113,-973667884]},{"sector":8,"data":[-361463808,-527806460,-1007229717,-385649404,1178337488,-973657483,175440384,1947256822,46659077,-1946543500,-1996482018,-973071330,-2147454714,1189654192,723242242,26405312,1484080444,1947256822,12973830,-2142407678,134223886,652783280,1228832770,124978944,-1610360646,-135397275,1946288325,1090828301,503840955,1621767,1689851341,403109376,276039680,100713975,1692726133,557588772,-428479519,1582720,-30152201,494221116,33605111,-940177548,-351505406,281540143,-940178060,-1205505022,367620608,-175511551,255613298,893130356,-940176523,-1207536638,-35023616,87603968,1970420540,-385533765,1692926169,1010070261,-147622601,1946288325,46659079,1290473076,1947256822,46659079,1089144693,1946403830,645986875,-1325662058,23849134,1560661333,-369249047,977075600,-940166793,1022653704,-167414475,343212743,-1090512199,-1359870726,-1007286923,-167086784,175440835,-351949125,63174237,616298101,1012132614,-352159932,2001943619,1951022129,1951284461,46659305,-1007285643,-166169312,410321859,175459388,-2147432969,-256878732,-1363455765,-164304123,-394984509,1446822123,984614005,-973633301,963936256,1946403830,103070675,-922872341,116840238,1946288278,12973857,-1273269120,-31986720,-1965609272,-155176224,33592838,-973666188,41189376,82370736,-53024512,1962884096,-229297,1398164084,4242206,-1946494066,-1962927074,-146586637,1946681541,1056669963,-1156614912]},{"sector":9,"data":[183173150,8527419,512427125,507183232,242483226,512296073,-970063844,17618950,-970062101,17209862,-77702369,1048587971,1963001498,113651242,-1191180646,1642332344,-419683248,1632353,-419823092,1108065,1492050683,1085891046,321536,-1006961694,330912080,1623586560,-1878690560,216792546,270819812,-126565318,-186457974,-1664919463,12974074,1007842310,1343845806,-527801884,1642496012,1642520710,1623586648,-402295808,1692795031,1397801885,-1275557295,645986819,-397475689,-947257213,-1174707994,116786147,1966080151,610395159,1959016976,-488600847,1976303341,-1760657192,132874240,9897718,1508799504,-87861157,6342135,116800372,1967128727,-1760657356,-307216384,-83908632,-2147473176,-134179034,9897480,9897718,-401902208,-151322736,-2147444986,-189790604,-83917848,9905792,1371798335,603985824,-771444368,1493640384,-1185853245,1642333155,-1002827740,-527763340,44590308,1482289376,1937784003,116862503,2101057,-2127683980,-1542501058,-401247741,-147980269,-1072742138,-402426880,-527826909,110862894,1966750915,147060247,-1007286411,-351439613,116862473,8392513,2125464181,1966619843,-1777928690,125043200,645955504,-1006829418,0,1957559424,788475397,-1957359815,107381740,256254,1022290781,-1207143040,12320767,255180545,1019414286,774403457,257111691,1962933891,1547382294,772502786,256980617,1293846830,-1959869681,-1192891596,1317208065]},{"sector":10,"data":[1019412742,-32541310,50036931,-294401026,-1642166226,-2093169914,-1976695435,-1022976482,-970545933,17777926,1213407693,1145393729,1413563424,65,0,0,0,0,1426063360,111955,-256,-1,16777215,0,0,0,0,0,-1896873800,-286248,-90032,-1273033136,-2145989230,360153340,256052865,-1565229056,-58714419,-2130282624,1000206,-852446144,167984417,-1207558542,567096585,-2130198132,1961885945,-1207912433,-1073074227,243336820,268439363,-29598888,-79952781,243340405,67112771,825817985,243351925,134221635,-63161877,243468149,-348123325,1979268142,1125024008,-352190449,1979333666,1125024008,-352288753,1979202582,1125024522,-1276633073,-2096567551,537871118,-1023301144,134217728,1085808134,-1195340288,-661721088,251657888,-989399521,108266014,-1777434586,113709056,268439580,158726460,270272199,-1612119040,1946041344,1979399172,116794900,1947205782,9234691,270272199,-2081865728,1979333632,-842943460,-352161003,1000351351,974070784,1963990790,470712582,-351797232,113649251,-1333788522,14018802,637789113,9832182,-466193136,974136417,-1963952956,653058784,9840256,16574527,-290449549,-2097107224,135217934,-1777434586,113643520,-352251874,470206278,-350224368,-396303337,-1875115908,1413236083,-2076441484,243336821,134221852,-1961878367,-108985266,309612618,1330379137]},{"sector":11,"data":[-108983180,108286544,1096087937,537723765,255959808,113444639,365806004,18391078,1020097031,-944016752,1611668486,1972517888,470206214,-1342144496,1124530050,1946161167,-1568559102,1048577803,1946226718,-386879325,195035163,1435655,1342609131,365806004,-527824782,-1557746768,123207959,1364414659,62126218,-84098328,-1759084506,-947237120,15425766,65255931,-1761151450,410333184,270819812,-260783046,-320675702,-730477570,-1760657370,149651456,-1761151450,-327938048,-1017619623,-434917126,-469701776,61406065,-1007091340,1692684624,1182011560,-1342170951,-77273427,-84122904,547906788,1625616864,1692803248,-1174646040,1642333155,-1002827740,-527763340,27813092,1625616609,91570344,256052867,-424759280,-64100252,1482252516,1392952315,365805748,-165278862,1526990407,-337808121,-351839264,220,0,-65536,0,0,48,0,0,0,1522010064,255143227,-1961735517,1084427334,71731986,-1961737565,512296542,-1964502460,-385621245,1522336381,306225467,440830246,306454155,408848678,638730913,-1961474423,857970206,-1194773550,567099904,1122567027,-1912655102,515512909,239055906,1931595039,36694275,57985083,-2097010455,2242110,244053620,243868206,243995188,243868208,243995190,243868210,2123174456,595894575,305538807,745918987,305923587,100869746,544346680,305399299,-956097934,251991666,-1324256768]},{"sector":12,"data":[-1947675900,63474888,104541889,57802754,-1962814231,-1960602082,-1960602610,-2094820842,58064890,-1207905303,567099904,-1360460941,-1982821631,-1995111666,722796822,638732862,52592265,-1189983682,515506180,-851463134,-385649887,-935657079,-2098658444,572563713,642156838,692504102,1187391035,244005930,-922017250,642320245,-350073207,227092031,-1962752125,639770638,-947712631,504269570,82412322,520542091,567099316,57876238,989936873,-385649464,-117243595,305794699,305925635,305663491,305794697,-1962933063,-1273035049,237096255,-385649889,-1960443631,-1960320243,51708174,-1994252786,722796814,638732862,52723337,-401454530,243990811,235082298,243864116,1354306106,-1710323421,1183524387,-2079421674,1976109859,9431299,597309067,-75293557,-352160257,-689416353,115564289,306581129,512447211,243999638,378217352,-92068986,-352160257,1107343423,57876941,-1962895127,51284432,18254101,1141803797,-1707701486,1963735843,1245588236,2122917394,1245578012,1245588242,2122917394,1245578014,9562130,1676346083,305794699,305532419,305794697,597298827,-1996308093,-1960601074,1227064334,595857033,-1946197271,51526158,1242442701,-1073312238,-1037137117,1312499235,-352160224,2122524206,192282400,1522337550,1317611067,235268896,995802375,255191425,306974345,243910963,-1178393704,243859460,-1178393704,243859461,-1950145640,-1189985250,243859462,12788632]},{"sector":13,"data":[0,0,-1980265728,-1995113666,-1961556178,-1960602082,-1961557738,-1206582514,567099904,-924253325,-1913834752,-678755250,1068769030,521019853,-1259797645,840338176,-359662,371917940,-1993993654,-359659,369296500,-117239222,1317924147,-1948808446,102995486,-851463137,639569441,243862923,-947710715,861856514,89034221,512481163,520496022,567099316,-276619506,1166747138,470189315,638743824,1317868939,869346055,-1337805623,-350106367,506031,512489475,1452090262,84839175,-1949684971,-1273035049,237096255,-352160993,1959279400,52620034,-336098311,-18301,352007819,305280649,352792203,113091,178627,244163,309699,-1996488509,-1961495266,-1960602082,-1960593386,-1205618162,567099904,1659568755,179959947,572439040,567099316,1391133299,664855602,598778658,599140087,-1960698182,754549192,-352160255,-851463111,-352160991,-1341224143,572440355,957740449,50885637,-500976578,-1961628685,-2036137403,71666467,857966755,28951497,45728512,62505728,79282944,49920]},{"sector":14,"data":[0,0,0,65280,16711680,1526726656,1044151389,574307627,113716736,5763,243871484,-953280906,1472518,113716736,5771,2080818990,771751958,387385031,-953262757,2081888518,113716796,725489435,486983470,-398770921,326305231,1409286072,639470374,57872186,1526727352,771826665,377829001,-1923786925,773229854,377751286,-1404865248,1913020392,96725052,-186108044,773354757,377751286,-402295520,652936587,-2079918546,510935318,773581646,1027344264,-2144467339,18252814,105441347,783074675,-347928696,-1993453890,773225014,771753926,378085001,-1927443674,773229878,1949252736,1015033398,772305954,377751286,643069185,838944650,104410852,309532278,376873262,1128521937,-1960388605,8972319,-953259541,18249734,643885824,838944650,-523157276,-1977165821,200094223,1125086409,529213011,1526777576,1128481139,-953224478,51804166,641002240,838944650,-523157276,-1977165821,-773574137,-670875424,839879206,1959332845,642990863,1575493515,192109312,-220052669,2013710126,1560282134,-1959896225,773223950,773224609,377108107,2081852206,512372246,-1007151490,126559824,1962934953,117386757,-2144463242,427098172,1962934697,113716745,136824,-1336930581,-385895421,-346554210,18737155,-1007041704,-1977200299,-315488177,225757451,-402034803,141755174,-503312664,116128246,-1959884498,1566177302,2122327747,57933824,1173809989]},{"sector":15,"data":[243281603,-401598844,1249050566,-2077851602,777056022,722896801,100740806,777524869,377960075,3964974,-2144459147,1966800764,113716745,595576,-2094653461,427032639,17299238,772961536,376964807,166395906,-134179096,-335999509,61886474,65601460,-1007134720,2139825751,1049177604,-2010769796,1703421445,-1590800383,-1993992565,1012400709,638219521,637818249,-351908471,1963080794,1435051526,1011936004,1021867015,1021604872,637957382,-352037496,1963211838,-2053034481,-1993981930,-1943665595,736822877,74811686,105745446,1207314000,74711298,166397104,38270502,-1341819902,13363202,1207314008,57937922,1593875176,113651395,1342183200,185043750,1343780288,777474643,376964807,-4980727,1541931952,1532649471,-352130216,-1873417469,1954545833,113716754,5752,771823080,376979075,-1455590135,309608448,2013710126,-402653162,-2094137126,152467518,11085429,772961282,376964807,1525153792,1048784386,1963529848,536914191,-953283980,1472518,24832000,540966958,259326231,2017362734,125108246,2013710126,1476397334,777408707,-1073085302,977017460,-2144465547,1962934652,80096774,-402003200,24314734,-538229178,1455642718,785418834,1541932170,168587779,-401836864,-2010251252,1174530820,1525214022,-2143501474,1631325299,2050770290,-551272073,106118635,306089303,83525655,1049429108,942544653,1343714325,118379089,-1031117388,-1174405189,-4587515,1512164863]},{"sector":16,"data":[-1959896999,-1909587619,1128465221,-685342676,-1017444513,243281488,780146308,377759360,76164861,175385404,125119804,-2079424466,-398065130,-1017643006,1448235344,-768358093,76164691,1114947594,1912637928,-1947979207,-773664280,7006417,-628413326,-489569909,1575539153,-786468352,-388902430,376569940,-938224893,1912622056,-2083192051,1105723601,1174630912,-346309653,777752614,377751286,-150309886,-2083325999,-779943486,2005607936,76162566,125108284,-4980304,781192427,376964807,61865993,-1477902412,1499094781,782025560,377751286,-1660783358,40934851,-1007041544,141701180,74922300,-1007144916,1397801977,-1960421550,-1977219457,1975519749,-335563772,113716745,595576,61931444,1610441192,-1017619622,1448236368,-1976696142,33089540,-1377289102,116797182,1946687108,1966947341,2122327583,1903493121,-164752405,269911046,977014388,-2144990603,1962934398,1558922844,4602406,-1073078923,1162236532,975573995,1165295686,76164678,1178216005,1178236160,782756677,377751286,638547008,537020407,638022656,32384,-148495756,1946161159,1966750744,2122327561,225771520,3935979,-2144991371,1949958270,116128003,-2026469074,1516173334,1354979421,-1959897513,773227838,-1073085302,1609044852,774141184,387974854,-970039807,-346095612,-970039745,643760132,67575,-953273739,35026950,1479142144,76164694,510967818,1946168808,18409483,1179058803,-370457017,377397806]},{"sector":17,"data":[312878,1049177671,1600001658,33597784,-1269823116,-402280193,-1017578422,512577875,163125015,121253376,-498924428,1532576248,585673923,-401050624,376766547,-2079918546,-311156714,-2079918546,158613782,-116987058,1324876267,1405352131,1947024465,1946172461,1946827817,2105550373,510788098,-1977165005,-1014824099,964699652,856519680,160048841,20588099,-119405452,1532562748,777081795,377358022,645934624,1021253252,1010201632,1009939465,1009873964,-2146667232,125116476,977674416,639560640,16940416,-919398542,55413286,192203019,1124074427,1946237478,1022943751,-1017423584,377397806,-2079918546,108331286,-2079424466,-1069932522,781051883,-583330163,792463988,-336002187,200013838,108343100,-2079424466,-1007140842,777213470,377568899,1344763136,1465012510,-164428203,12115598,-1943941789,131795931,1499094877,695490591,2134280494,512306710,-1959913855,773226294,377560718,1946172547,1912879632,21248520,-336002185,-347716091,1583085803,509985567,1963130880,-2028044770,512754462,514399901,44040448,-1256278528,-2147418082,515244032,16785077,-1241513726,2012446,32784,515186358,1145646849,0,-1256278528,1060045086,0,-1256278528,1160708382]}],[{"sector":1,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1070399488,50349766,33638086,149190,33769158,-1928706423,-1105305026,82313345,868823809,-139073326,1979711293,14412035,515784320,-385649153,54329553,1023767552,343212041,16926406,515770054,-1022965761,-402652386,-789905201,515391105,1064640153,186563745,-1593281088,-415424838,-971147773,-973012922,-973012410,-14762490,565708486,-1022966015,-402651106,1961558171,214726,-972274039,18985990,565577414,-2124289279,-1507936194,-2146994914,18793742,1048662763,514989752,243271541,-352182587,-1106837949,-1103200226,141885726,-402626584,820707415,515784320,-402098942,1223164165,-2145260800,52346430,1088948341,3794945,1187386091,820510978,-1022966016,-973078242,-14762490,515245766,-153753600,-2130764311,1962935166,8290323,-972196864,-402587066,113704967,532163,-1079947069,516006686,515847817,4047704,-971801088,-973012922,-973012410,-14762490,-383859805,1048576148,1963007670,515678522,141934603,1025424033,343278567,16795334,16926406,515770054,-1207515393,1793786145,18118,214726,-972274039,69123590,565511878,-2141983999,52344382,1465272437,918888017,-41214278,-1190869117,-475267070,1958742537,-1404458491,-921963029,-1073085323,1187386740,1187381504]},{"sector":2,"data":[113705218,663235,515770054,-972428289,-973078458,18987270,1583307039,1187382507,1036189954,310247424,16860870,16926406,515770054,516137983,1048589035,1963007670,515678503,141934603,1025424033,259392487,16860870,16926406,515770054,-972166145,-1996488378,82511430,33638086,15811,1187384958,113639682,-1543561538,703274691,515260032,505574661,-984524970,-1927366090,-1994471874,-919402370,1958742700,1101834757,1317664747,1583307018,49951,0,604834304,0,184549376,0,60883200,729089,0,33689601,184549408,0,1048576,8193]},{"sector":3,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3670016,0,0,0,-65536,65535,592052225,0,1162608384,538985049,2080,0,393216,393222,0,0,0,1061093376,0,0,0,452984832,-65281,-57601,-14680065,387028095,420745733,269420821,-16114405,100930305,185206791,-244,404364543,235017731,-243,553621247,1616862975,1684234849,-10000795,-2071103489,1955558286,1989244304,-27758,-393573889,192088630,-1341438488,565223943,-1945762327,-1943945458,-1121859058,109847497,-2135415872,1009765805,-955747073,1512292870,-954406085,19119110,-1073312768,-1036089053,1166747171,270312204,273008166,-1207497216,802008320,108396348,599656135,118358017,-151341080,18793734,750265204,29052929,-1228328192,-1915604225,-400439754,1079511762,1979789885,-1341733144,-1947664095,39225861,1963063936,79423747,-2147461494,57999866,-1979415831,-92274346,-385649407,1451885710,49971200,-92272524,-385649661,378011931,-1130290272,1958742819,-1036088483,-1073312221,1569400355]},{"sector":4,"data":[1960512278,-971077342,-969503453,-935950045,178209,-1191181893,-4849663,915264050,1474830790,641526538,-1994760821,-1927163618,-1994272458,-1205748426,29032451,112896,-768409674,565917325,-972410392,18987526,179835371,113408,-4798157,468242994,643492618,-1994891893,-1927163618,-1994272458,-1205748426,29032452,112896,-768409674,565917325,-2146830872,18987582,-1960431756,-620029347,512305012,915218897,914956753,62398909,113408,-1241513543,-1915604225,-400442570,162793926,-853429830,599695649,41271307,45624811,1932512685,68020483,567352969,567359117,566048393,-1157626440,28901377,855619072,-1154052654,160229409,-1207676439,29032459,-1228328192,-388877569,1072236922,107079684,-1159134349,597074691,-1960588867,-1172072930,2122326558,41156611,854071019,-1220640763,158662945,565591680,-346131455,49015144,1301151539,-851463140,-385649887,-1946418303,-1088182002,515777441,1957098274,57665795,-1558038367,653730734,515515316,-2117563614,1979788537,56092931,567099316,1323893619,-1374778621,572440355,956581515,51803141,1227076670,-1058409867,112898,58050827,1459651305,72190801,-1996335733,-1994147818,-1272727026,-855592894,-385649887,-125107439,-1174402375,1068769822,57876941,-2147286807,18986046,-2091292811,695534073,565591680,-2146405119,18986046,243927413,113648166,-2147475018,18986302,1048578933,1962942900,-2098635004,-1270972414]},{"sector":5,"data":[91554081,-352046872,1607021314,-2096401335,19121214,1040385140,2011767732,-1270972161,292880673,600063619,-972393216,-1979645114,99156806,572694786,-1591504221,-1801248220,22448675,1963129472,843574018,573022436,-148655965,-1172064730,-930405858,19724673,1659437942,-851463166,-385649887,243991129,515842992,105286434,175375673,599145987,-369986231,1166737890,596026114,-1560001141,1253974920,599695651,41205771,28913899,-2079422208,-1978889949,-771096234,1451952501,106203398,-402613527,-1073019564,115934068,-1675720446,106858787,-385459063,62390403,-1928917331,-1960621506,-853310962,-385649873,210436603,-1996207101,-1205631986,802008322,167859850,-1962248750,-1994161138,-349987274,81179,99095413,1958742789,28829955,-1996071287,-349987810,106858755,956716683,158598740,1224918659,-588647819,-1673624831,494207011,1946157373,106838296,1364398964,-1157623880,-919404543,-768409674,1493642728,599564635,158711819,-387508760,-1075314064,-370480921,597167755,-1130285597,1975520035,44689411,1963063683,14018819,1963129219,15001859,1963194755,15984899,1963260291,20179203,1963325827,22538499,-1962835735,-485341682,-1202629869,29032461,-1228328192,-388877569,1532561094,512442036,-620026986,567086196,186891425,-385649472,116851062,268439361,116857460,67112771,116855413,134221633,1048578677,1963003934,30074883,256050935,208961536,-1107273543,952050647]},{"sector":6,"data":[-1527514107,-402528536,-2101870090,-838880339,842118191,255180736,2048297766,23324731,-1192886807,29032455,-1228328192,-388877569,28313162,-383668062,280494346,113408,-4798157,870896178,-1576947706,-202825296,440320,855638459,855619273,102557906,-1331560016,14477601,-1157625672,-919404543,-768409674,-1341782552,565223937,-1207908887,29032466,-566326016,-1588570591,103358145,915087039,-829743425,-1053389992,-1918569698,1579277886,-1996488263,1344394558,-677128052,-1012836319,-751399650,839038497,96266450,-1331560016,-1199707359,29032457,-1228328192,-388877569,45090214,-350113630,768103,855638459,855619273,93382866,-1331559248,-1202590943,29032465,-1228328192,-388877569,61867386,-350113630,833595,855638459,855619273,90499282,-1331558992,-1994003679,-1927163618,-1994272458,-1205748426,29032462,112896,-768409674,565917325,-1341833752,565223942,-1600107340,1975519779,565223460,494256138,-1280474440,-1271935489,565223500,599932555,599787150,-400533877,-1343684587,565223652,599932555,599787150,273008166,1344392449,748760582,1958742784,-1195340281,567101696,79385351,-851528704,-109753567,78731355,-1102910765,-315409574,51797645,-1947008005,722619406,1342620619,-1912586056,243279552,-1272971241,1477889281,-1274625273,-855003083,118359585,891193638,-1557768177,632557367,-1665529424,119655686,116852419,268439363,-1665464204,-1207388154,-1022939187]},{"sector":7,"data":[800077236,235282893,512304647,643305273,-1274070109,-1171279835,567086768,-1912201533,639877126,-1911605343,378218200,632557365,567085488,-1581048057,1178280480,-2145946356,2210110,513870452,71711522,116064884,600049351,868417537,474844671,567099316,1575682675,598281867,-1104961089,-1494015458,1307247220,-1558038879,653730731,-1588583502,653730360,-930405452,596381321,-1983380648,-2128377330,1979788537,-1171854590,1068769822,41099725,243997675,515842987,-1942093022,205949731,276038969,598883843,-336431799,-1392065012,99287331,565642950,1264370433,1329748293,776229441,5462355,1113146699,1146241359,1398362926,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-373294080,172919595,1988824803,-1197149432,-373670656,-1021194965,-1188307778,-1527578611,-1170407240,567094249,54343539,1023767552,745865218,-1207948312,-373670656,1931595051,212256,37553524,-1105890048,-373347378,964907,12100851,736737853,32186829,1460061177,750735702,856002048,1015228150,1174631424,-964429845,-381776636,76162603,1195771272,3964966,-2142243979,91511869,1962950016,118376437]},{"sector":8,"data":[735852173,-218100295,1600018852,1381090055,512448342,378217366,243999672,1119101882,567083184,1005257331,179959947,572439040,567099316,736821875,664855602,-1238960350,572439075,-108935029,41287980,1068766699,41099725,243994091,515842992,857574178,-1207702592,1583284228,12802394,0,0,-16777216,16777215,0,-16777216,16777215,0,-16777216,-1,16777215,-16777216,16777215,0,168624128,0,603982336,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,1142969165,1444959055,1769173605,891317871,540028974,1126777640,1920561263,1952999273,943272224,959524145,1293955385,1869767529,1952870259,1919894304,1766596720,1936614755,1293968485,1919251553,543973737,1917853741,1919250543,1864399220,1766662246,1936683619,544499311,543976513,1751607666,1914729332,1919251301,543450486,106058576,-1899416745,-1191234623,11670062,109850573,1049177461,783822195,-855461358,2097581103,2067695917,305051693,801965234,764216972,764100233,-1307431240,-1943024378,-1993510650,-399675586,109840028,1049177453,109849963,1049177481,1743269255,-2130277369,2134804781,305051693,801966258,764741260,764624521,765855431,113641997,-953930257,2992902,-1392064768,-402650579,1049168969,434646423,3074048]},{"sector":9,"data":[1358971368,1912623336,123689224,-346530982,214205188,1448133625,1660991518,119415245,-1995935201,-1943167178,1580048646,12108632,47940,567136819,-2147359104,28836302,-1021194940,-1153171272,-768409599,-830463539,1140963329,-1262280243,1025625392,57999365,1025043448,91422722,-335544389,178947,-1191181896,11665408,-1007026250,1431393104,-1957558697,-1558279703,-1472821203,48293933,477415691,91614475,-352311576,28370947,-396752782,1594294533,-998046485,82573574,-111517945,1499268722,82532443,-116865917,1381191875,765664907,1979710339,2942981,2011694059,-1274055936,47961,-466476595,-116996989,-75296533,990606591,-402164543,-998047568,57866502,-1017619622,-2095118818,460653049,-1977220428,522308885,-1310145910,520494592,-1977219213,567083349,-1274024968,1959332610,361375241,1229398477,536408949,105928643,519736147,-1327920377,-1359807462,-651492491,1540066123,-1017161721,-921976781,102649716,-1958693857,33129431,567093365,-1977200609,5957637,520494680,-1258813837,567099968,1031808668,-1962773222,-821957695,-268274,1364531947,-1946179864,567106025,199950963,125093947,1979246651,1572965122,666419999,310016,-2134703691,292880382,1971373814,-1928913396,-1188190658,15204354,1460061183,765411012,393543435,4031270,638612728,124912954,21314086,1207501175,1609165639,110084871,-617402967,922194579,-141349459,-2094158538,91621882,-348667264]},{"sector":10,"data":[818053123,-1073004206,-620034955,-108840588,-2146601725,1965820540,-1237909755,585842989,1963391363,175931405,-16419540,1093514806,-108850965,-2146732791,1965820540,-1237909755,865288493,866642898,-4181038,-1020417738,-921972173,632562036,942014640,638219557,1946248504,1975794180,92939790,1946113000,1111967489,1457747273,-317994361,-2092092556,2992958,1149905781,640680966,1963017530,1008659202,184841520,50623698,-2132284620,-13785026,1111623797,1330596169,-4586517,-114599937,1610484456,-352095399,-1957588865,108822730,185431040,1225159881,-347650231,283860481,58050827,-2096501922,41287673,-16004813,1465210484,-919383802,766197379,-164793088,1963919172,41731080,-352160536,121959962,-166956019,1947076420,121959942,-1006078708,-2098724228,-402593022,65732986,1912611048,1594317063,82533981,-116734845,766197379,1912960256,-15406845,766183111,868417536,766222802,766314183,-1779957750,-2021107458,-2092749393,58015995,-33425176,-1192331831,-2021062131,1128476079,-1023285016,-164408490,-25114317,-1962379777,-1959946308,-165286945,141820614,763083972,418104204,1912607549,2571533,-1128003465,-1014223481,-1128003861,-1014223509,1979710339,-98282,-336002187,766223116,-1107296328,-164429823,-2096305160,57934075,-2097130264,1928856774,1976109830,-1667241214,1963064960,1364546089,-1202694394,801965312,1968766780,-1193768183,801965314,1945698795,1493655301,-998045973]},{"sector":11,"data":[845830,32201309,-68677937,-1017226241,-4632489,-222285057,1238497198,-2084348072,494207483,764624515,1024881919,192282623,766222672,764616447,-16454824,-349334754,-2134297830,108331006,55413286,942541291,772044085,-2096935542,1945699527,-921962451,-25159308,637891839,65733947,1963277102,1225386754,-947714700,-102503676,-25162638,41285887,52823822,108135037,-1977160398,113657613,-1023398491,2088819507,292880390,766478279,1128475936,766478278,-1494727904,-617390848,243847731,1149906341,1992374793,-1967052258,121960176,-1978370944,-2021127612,-2092749393,58015995,-33522456,-2131986994,1946159228,139212813,1277823091,-1965979128,-922023860,1156981876,208998151,268911862,-1977219468,32196357,-1350072232,-75283667,-402426560,-906100671,1157028981,410353671,343209482,-2012593014,1127067527,1967192963,2353155,-327823618,252134646,1156974709,41160711,-771093269,110037108,-889311831,48822389,1371755776,119428870,-617362549,766459533,1929075432,1493655301,-998046485,1573124358,805782774,-1977216395,-398372859,108264512,21334566,233568336,168135206,1191474368,737536833,1573082617,-1070345677,766314183,-617414640,537347318,-1977211787,121959941,-1475513075,1124299904,113737508,667053,235357430,113706613,667053,1156994283,645206023,-167408858,1963788100,-2134575601,-2143091596,113737700,667053,235357430,113706613,667053,-1960433429]},{"sector":12,"data":[1435182597,121959938,-166759155,74744006,2145812547,766314183,1156972554,108334599,766314183,-1108869110,1960512507,-1294847227,-1017818579,16778497,327679,1954039057,1701080677,1917132900,544370546,118370597,892616333,-1021263485,134219010,2097153,3145730,4653059,5373956,6160390,8323079,9895946,10878975,1869566995,1851878688,1634738297,1701667186,1936876916,1902465562,1701996917,1634738276,1701667186,544367988,1936943469,241659497,1635151433,543451500,1953068915,1225746531,1818326638,1797284969,1870100837,1344562290,1835102817,1919251557,1818326560,1847616885,1763734639,1818304622,1702326124,1634869348,459630446,1634885968,1702126957,1635131506,543520108,544501614,1869376609,291792247,1635151433,543451500,1634886000,1702126957,1632636530,543519602,1869771333,824516722,1049429774,-1048496808,-3997478,18415621,33580032,50362368,67145216,83927552,100708352,117491712,134276608,151060992,167844864,184631808,201415680,218204416,234991872,251783680,268576256,285369344,302164480,738383616,755167489,771956737,788748801,805541889,822337281,839130881,386164993,1868787273,1667592818,1329864820,1702240339,1869181810,420089198,1920103747,544501349,1652122987,1685217647,1685021472,622869093,1967331121,1852142194,1701519476,1634689657,1226859634,622869060,538972465,1701080931,1734438944,622869093,453643569,1920103747]},{"sector":13,"data":[544501349,542003011,1701080931,1734438944,622869093,554306865,1635151433,543451500,1652122987,1685217647,1685021472,1886593125,1718182757,224683369,1850285834,1768710518,1701519460,1634689657,1226859634,1886593092,1718182757,224683369,1850285322,1768710518,1868767332,1881171300,543516513,1667592307,1701406313,688524644,543449410,1830842991,1769173865,1260414830,1868724581,543453793,1768318276,1769236846,1176530543,224750697,1162550538,1746944601,1847620449,1646294127,544105829,1953721961,1701604449,805965156,1769235265,1663067510,543515759,1701273968,1953459744,1635148064,1650551913,1713399148,544042866,542003011,1769366884,168650083,1685013291,1634738277,1931502951,1768121712,1684367718,1935763488,1953459744,1701143072,1919950958,1918988389,168649829,1701728060,544370464,1701998445,1313817376,1685021472,1634738277,544433511,1635151465,543451500,544370534,1702259047,1701519470,1634689657,1663067250,224748655,1866678026,1881171300,543516513,1970365810,1702130533,623386724,1763715377,1869488243,1635131508,543451500,544370534,1702259047,1701519470,1634689657,1663067250,224748655,1866678538,1881171300,543516513,1667592307,1701406313,1936269412,1668180256,1769172591,1852142707,1769414772,1948280948,1931502952,1667591269,543450484,1701080931,1734438944,1225395557,1652122955,1685217647,541346080,1667592307,1701406313,1936269412,1668180256,1769172591,1852142707]},{"sector":14,"data":[1769414772,1948280948,1931502952,1667591269,543450484,1652122987,1685217647,2036427808,225736047,1851076618,1701601889,544175136,1634038371,1260414324,541219141,1818386804,1852383333,1936028192,1852138601,1701650548,2037542765,1344080397,1835102817,1919251557,1818326560,1847616885,1629516911,2003790956,168649829,1852785458,1969711462,544433522,1701519457,1634689657,1713398898,1629516399,1701868320,1768319331,1634476131,1635084142,221144423,1024068874,1113146699,2021153568,2036018267,1532852601,1919179564,979727977,1634753373,1717397620,1852140649,1566928225,1528847709,542983471,1145646939,1852730938,218762589,538984714,538998904,538976288,538976288,538976288,538976288,538976288,1667592275,1701406313,543236211,762279796,1953785196,1797288549,1868724581,543453793,1701080931,1242172718,2037981216,538976377,538976288,538976511,538976288,538976288,1884495904,1718182757,544433513,543516788,1701080931,1734438944,1868963941,1752440946,1751326821,1667330657,544367988,779380083,541264397,1919179552,979727977,1634753373,1717397620,1852140649,543518049,1701860128,1768319331,1948283749,1797285224,1868724581,543453793,1768318308,1769236846,1713401455,778398825,541919757,541404960,538976288,538976288,538976288,538976288,538976288,1701860128,1768319331,1948283749,544498024,1696624225,1851877486,543450467,1652122987,1685217647,544434464,1953721961,1701604449]},{"sector":15,"data":[168636004,790634554,1849312329,538996334,538976288,538976288,538976288,1394614304,1768121712,1936025958,1701344288,2036689696,1918988130,1852383332,1702065440,235539758,926846215,247562550,1163182853,1394626637,1163018568,1094983748,16724,0,0,0,0,0,28660565,-65536,-1,-1,0,0,47251456,47776469,-1023148102,-50075389,117403908,69273326,-5370710,-1794194420,1863293711,294064639,295244180,-1039007820,-737032431,301979921,305205730,-11791806,1460818450,-1894617326,402133631,422320164,-369093570,1326829]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[1497713663,538976322,0,0,32506976,640,1572889,31216199,1347616768,322,25448272,1380319232,366,26889028,1196621824,432,34100297,1263861760,564,29771347,1161953280,586,39865422,1330511872,630,45631043,1448280064,652,44193107,1095499776,718,48517698,1280311296,762,51403331,1280507904,806,54285657,1430781952,850,58610517,1347026944,872,21102764,10682368,388,22544504,12386304,366,26869919,0,432,31195265,9306112,498,34078861,11010048,542,36962470,9830400,454,38404216,9371648,608,41287835,3801088,696,42729625,11206656,718,48496914,14024704,762,51380467,16056320,806,54264042,13631488,850,58589287,1347616768,65011884,33619968,123732818,28639232,1829,7885382,3456,28639746,4984,341508946,1380319232,362807485,33619968,434176437,55705600,6676,10702672,2048,55706113,3196,196150108,1262747648,443547807,33619968,524288850,56688640,7865,18259,8256,55706113,9394,604045749,1179844608,891289750,33619968,965870418,28639232,14561,8475207,9712,28639745,10708,707461970,1414070272,763363470,33685504,806748597]},{"sector":2,"data":[55705600,12346,9262153,10944,28639745,11562,760087378,1263861760,846201000,33685504,881459637,55705600,13518,10898261,12384,28639745,12827,842990418,1161953280,986710136,33619968,1079837522,28639232,16314,9391182,16752,28639745,17595,1162543954,1330511872,1177551003,33619968,1258423122,56688640,19082,10049107,20944,28639745,22045,1453458258,1431502848,1372586137,33619968,1453458258,28639232,22045,3819075,19440,56558081,20420,1352205138,1095499776,1470103723,33619968,1532298066,28639232,23322,17977922,23536,55706113,24321,1593508277,1280311296,1606418646,33619968,1685390162,55836672,25899,15948355,26384,55706113,27618,1821311828,1280507904,1850736885,33619968,1931608914,55836672,29647,15357273,30096,55706113,31295,2060911444,1430781952,2090860752,33619968,-2125200558,55836672,33290,12734538,33776,61080065,34332,-2042494539,1482162176,61603943,100728832,62063029,55705600,953,62849876,56360960,965,64029535,56688640,971,7,100663442,111872,1375733248,100663299,218112,1543505408,100663299,221440,1593837056,3,0,0,281,537690192,-2147205092,1612710496,221261825,2527360,134983728,204474944]},{"sector":3,"data":[69213248,1077936256,155197448,1073750064,1075841344,808464392,-1868560272,537723009,805316240,1074269104,1074540560,-2147213284,239091712,806305824,1077936160,239083535,1882206256,1452318734,-1874850560,-1339031514,222300171,473959472,8389664,537608256,540019776,188760072,806109216,191901744,2855072,646975501,196096000,806567944,538722316,1073774596,1075843392,136327186,538001472,808456768,-1609469904,-2147483504,34804736,805306514,134234124,591398939,537665584,808461376,1075585036,537427972,1076897088,1077936134,71311363,536879152,1076897088,1077936133,54534148,203436080,1610645632,135282692,540018496,135479308,808453952,9580592,-16634880,16781311,-60416,85590018,-2147145664,65551,50331488,-2147149312,255853851,335544832,196607,672138522,991237,-10485758,436208383,85663749,50336016,-52224,46137352,-2027183065,851968,-15466459,-1073740545,218103808,-56576,327679,64,2359315,184549172,721567744,472514559,268435497,1073751040,524287,-13958848,285212927,1073742592,589823,-1540947264,34601,262161,150994740,654491648,8399781,67113216,-49152,46137352,-2144754393,1638400,-15466491,-1073737473,455543814,893146667,229058861,352321709,536872192,851967,992478400,657800233,24119,327701,218103616,671399936,893135675,6174503,100674304]},{"sector":4,"data":[-60416,281018402,-100392445,789063175,688531465,1057766667,706455565,1045866025,976501555,24373,393245,352321312,688439296,61669950,674170792,876557114,2241825,100670720,-49152,146800660,-1392361941,789030915,1060321832,573907252,2031616,-15466489,-1073735937,39594249,71304060,447350563,677190491,8203131,117445888,-57344,79691788,1073962025,1562073882,1376256,-12582905,-1073738497,440402692,727522139,419430492,-61952,1048825,-1995307296,-1810332642,-1961393898,38933,-15794157,167836159,503570432,379132046,385876122,-62720,917600,-1978530336,-1793555170,-1927833834,983040,1627389709,-536869376,6306049,285218560,6225919,98566158,-2095151086,-1776905448,35863,-15532017,100687615,956424192,94,-1258276096,134223617,2621439,98566158,-1608613358,-1558797800,41239,-16187377,100673535,302112768,251658384,-62976,393255,658047456,0,55705745,-16252905,234942463,302374912,413146754,396564130,385876129,-63232,917743,-1877867040,-703089378,-384376808,983040,-268435702,-536869376,15677697,251662592,16383999,48234504,-669527278,983040,-100663536,-536869376,16333057,201332480,6356991,98566158,-736970978,-484909545,60182,-15597545,234905343,503701504,399643318,383916247,234]},{"sector":5,"data":[405,537690192,-2147205092,1612710496,204484609,1610645632,135282692,540022880,135479308,808458336,-1870656208,-1339031514,171968523,473959472,8389664,537411648,540019008,155205632,805847072,141570096,11309216,646979597,196096000,806371336,538722316,1073774596,1075842624,2109455,537870400,808455744,-1609666512,218136976,2527296,134983728,204475712,69213248,1077936256,205529099,1074274352,1075841856,808464396,-1868559504,67960918,805316240,1074269104,1074540577,-2147213284,524304384,807419936,1077936160,524296224,1882206256,730898463,-1877996288,-1339031514,322963467,473959472,8389664,538001472,540021312,289423368,806502432,292565040,37024,320077952,37378,471862320,142607424,807747616,1073743424,1075839808,2109444,807747616,1073743168,1075840064,540028931,8421388,272630880,805781512,322964512,805781512,204484656,1610645632,135282692,808461120,68419712,185077824,807616520,-2144325584,1074552832,591398912,537665584,808461376,335577136,134234124,591398939,537665584,808461376,135282692,591398939,9580592,-16638976,16781311,-49152,85655554,67447168,65551,50331412,-2147149056,251921707,1073742336,196607,692061467,987141,-15466494,452985599,86720517,402656272,-60416,85590017,587205920,-44032,4194308,2228224,-15466460,1073748479,152766727,201989386]},{"sector":6,"data":[-15007745,-58369,891886633,13599,2359324,335544128,201670656,454754303,454892314,892017707,13599,196623,117440340,654426112,251658375,1409287168,458751,-2144927296,1638400,-12582907,-1073737473,220662790,673913518,893135783,452984877,335545600,1245183,655099840,723168781,1546233640,1012280629,2686976,-12582906,-1073733377,119669518,154077222,187238952,222235709,673847983,859712422,893006907,721420383,335545856,2293759,570625984,789063175,688531465,1057766667,706391821,2083104296,976501555,1045847861,1900544,-12582905,-1073736449,58458632,161219904,444402299,727522139,419430492,335546112,1114111,1073940160,2064161796,1560959753,32011,720919,234905684,302374912,395777674,513087629,251658373,1409289472,393312,1614348768,1245184,1582563345,-536868352,411570691,8593043,318770944,6181888,31457286,24121,2031637,201358912,503635968,837032134,8459940,536876288,8273920,81788940,-451360994,-1709791951,1245184,2115239967,-536868352,415636995,10760676,536875776,8262656,65011722,-451360994,42289,2162703,100695636,956424192,126,1543555840,117444355,-60416,29360134,5381,524311,234891092,302374912,396564098,513939617,385876128,1409288448,917543,-1877867040,-1961388522,-2044813544,983040,659816458,-536869376,2570497]},{"sector":7,"data":[201332480,6312960,98566158,-1659465198,-1458005993,37150,1179667,167796308,503570432,411636367,285212812,1409294080,524414,-1810365728,33822,2097169,134250068,402841600,9313945,234884864,16651264,31457286,33046,983055,100728340,369221632,251658394,335548416,393470,-29818400,0,55705846,458767,117440276,84000768,419430645,1409288192,1048815,-2112747808,-1558778859,-1575444201,40990,589849,268496724,302440448,384636304,416684009,11869920,167776000,15684608,31457286,61241,917529,268499220,302440448,379065737,411768705,8658580,251664128,16323584,98566158,-1709780206,-1726425065,36382,1048591,100727060,956424192,385876217,1409289216,917600,-1222769184,-568863726,-350821608,1114112,2119434271,-536868864,415636994,285212900,1409294336,524414,-954334496,58648,1114129,134241876,386064384,9836172,301995776,6181888,98566158,-770525666,-501688553,59926,0,0,0,0,-2147483229,537690192,1073758236,69206624,537026688,808452448,-2139091936,1074028544,408946704,134422576,35340316,808458336,-2146619344,805316240,1074269104,1074540554,-2147213284,138428416,805912608,1077936160,138420233,1882206256,-1399807992,-1878782720,-1339031514,557844491,473959472,8389664,538918976,540024896,524304392,807419936]},{"sector":8,"data":[527446064,8491168,646979597,196096000,806371336,538722316,1073774596,1075842624,2109455,537870400,808455744,-1609666512,218125968,2527296,134983728,204475712,69213248,1077936256,205529099,1074274352,1075841856,808464396,-1868559504,269287467,805316240,1074269104,1074540563,-2147213284,289423360,806502432,1077938208,306192401,1882206256,9478161,335577088,1074528787,641736732,37424,471862320,142607424,807747616,54542336,1075840320,805715972,1075839008,1073754149,104858688,1073954848,540028933,8421388,272630880,805781512,322964512,805781512,1610645552,135282692,808461120,68419712,185077824,807616520,808464432,207618176,1074266176,1075851299,-2144325596,1074533376,135989248,540025664,608182284,1074016304,135989264,808461120,1426063506,536870660,268444416,1507327,1050176,738201886,655360030,2896384,-52719,2031616,-16515037,1073747711,503320582,506200081,2560000,285223986,16777010,603990784,-61440,171966498,234880780,17829151,286920976,656281886,-13949171,739716351,1459617586,22044,2359345,687865604,202129408,503840767,203230215,269295373,437325825,504438289,723979559,388825087,-52692,597001,587210496,-40960,104857622,287178768,1977344,838870800,839974956,65535,2359339,587202336,201998336,-13893633,689711615,268901895,437325825,504438289]},{"sector":9,"data":[740756775,-13489129,721420543,1610621952,2293759,-15989184,-54273,120265771,17827614,286920976,656281886,388769549,-52692,786432,-9175039,436208127,790533,-9175038,436208127,1187845,-13631464,671089663,86736901,67450176,1572882,67108672,-2147145728,893388073,1639429,-109838322,-536866816,277418502,378804356,361437057,251658392,1879057664,458751,743637440,1507328,-9175037,-1073737985,291573765,661724794,7810157,67114752,-35840,96469006,1511080208,1294422302,22316,327733,754974480,689225728,52822781,86115458,136840743,169937290,210045831,455937321,731326500,842815206,876294956,4011322,83900160,-64512,364904494,637730089,570720771,671491845,-1979175673,-2029363447,688686347,605764877,707499816,741489750,976501555,8501,327731,721420064,689160192,52822588,86115458,136840743,169937290,210045831,455937321,731326500,858534630,893006907,855638077,1073743104,2818047,637670336,570720771,671491845,554273288,-2062842102,755837196,-1758976997,1009509929,993209394,1026898484,3604480,-15728634,-1073729793,53543445,87229490,120915508,154601526,188287544,234359856,673848159,737945893,842946204,875443007,2831663,100677376,-64512,364904494,839069954,872755972,906441990,940128008,806041866,722335756,623418395,-433325015,1060257366]},{"sector":10,"data":[791948851,11061,393269,754974528,689225728,53543580,87229490,120915508,154601526,188287544,234359856,673848159,842935077,875443007,2831663,100676864,-57344,348127276,822230569,855912963,889598981,923284999,956971017,-133418997,706436877,-1674894040,775110450,724905780,2031616,-15728633,-1073735937,58458633,119735360,192612958,458955389,6051421,134221568,2556928,31457286,33298,458787,452984580,51101696,86180990,123405947,157288572,190712412,224201792,520093821,1073743616,1507327,2080508352,587481091,2064276999,1528462603,1546345755,2031616,-14680057,-1073735937,58458633,119735360,192612958,458955389,6039901,184555264,6320128,98566158,-2062513646,-1760127720,36119,786445,67133552,57344,218107648,6320128,31457286,24633,1114135,234905204,268820480,411570819,395712147,218103948,1879052800,262238,224,1245199,100687476,956424192,251658334,1879056640,393342,2117665248,0,28639459,327695,117440368,117555200,251658261,67110400,458751,355795392,983040,-15728634,-1073740033,10497,134223616,2584576,98566158,-2112708592,-1575444201,41750,589839,100673392,302112768,251658384,1879050752,393255,658047456,983040,2121269279,-536869376,10760449,536874752,8286208,31457286,42289,917529]},{"sector":11,"data":[268500592,302440448,411308169,394335892,9966987,251663104,16674816,65011722,-1726444016,39446,983059,167835908,268689408,379132046,251658394,67112960,393465,-113704480,983040,-16515065,-1073740033,2366209,973078528,251875841,1879049472,458751,-184090176,983040,-16515066,-1073740033,16069889,100667136,-61440,29360134,64553,458765,83885936,57344,117444352,-64512,29360134,53019,2031635,167804528,822337536,415633572,318767332,1879056384,655486,-1523514400,-451361008,1638400,-277872632,-536866816,312479750,413210498,363009698,419430636,1879050496,1048815,-1257240864,-703098862,-384376808,60693,655375,100724592,956424192,419430639,1879051776,1048825,-1995307296,-1810332656,-1961393898,38933,983063,234944884,268820480,399708814,379132120,251658394,-61440,393470,-113704480,1507328,1617952780,-536867328,313987077,417208276,15406819,301995776,6189056,98566158,-770525680,-501688553,59926,1179671,234905092,268820480,399643318,383916247,234,0,0,0,-2147483357,537690192,1073758236,69206624,537026688,808452448,-1870656208,-1339031514,171968523,473959472,8389664,537411648,540019008,155205632,805847072,141570096,8491168,646979597,196096000,806371336,538722316,1073774596,1075842624,2109455]},{"sector":12,"data":[537870400,808455744,-1609535440,218125968,2527296,134983728,204475712,69213248,1077936256,205529099,1074274352,1075841856,808464396,-1868559504,269287467,805316240,1074269104,1074540563,-2147213284,289423360,806502432,1077938208,306192401,1882206256,9478161,335577088,9568787,1074540544,135989248,540025664,608182284,537669680,-2147205092,624959496,1077936176,537214979,104858688,536879152,3155264,1074020416,54534150,808453440,-2139091936,1074028544,121636880,1074536496,121636883,808464432,503316626,218103555,1946157312,131071,202376474,1946157568,131071,522192154,335553280,1507327,1050176,738201886,655360030,2896384,-52719,3211264,-15466460,1073752319,-62452,201793031,520948765,268505101,504437265,220667409,-54489,841750316,470417407,520093705,1610621696,1507327,1050176,738201886,655360030,2896384,-52719,3014656,-14680028,1073751551,-62453,704642859,503785756,220138759,286261520,287183130,655173406,841750316,65535,2359342,637534048,202063872,-13893633,723266559,218570247,17829151,286920976,656281886,388769549,-52692,1507328,-9175037,-1073737985,291573765,661724794,7810157,67114752,-35840,96469006,1511080208,1294422302,22316,327735,788528916,689291264,52822781,86115458,120063527,160041005,193399391,220793989,673454909]},{"sector":13,"data":[1445604247,858534460,893006907,889192481,536872192,2949119,637670592,570720771,671491845,-1979175673,-2029379319,688686347,605760781,-433350872,741489705,976501555,15669,327733,754974528,34914304,75629350,103220514,137168680,169937290,210045831,455937321,697772068,842804198,876294956,4011322,100677376,-60416,364904494,839069954,872755972,906441990,940128008,806041866,722335756,623418395,-433324247,1060257366,791948851,11061,393269,754974496,34914304,70386481,104072499,137758517,171444535,204475193,727649784,455420060,842934570,875443007,2831663,100676864,-48128,348127276,839069954,872755972,906441990,940128008,806041866,1594750988,623418409,1043016219,775110450,724905780,2293760,-15466489,-1073734913,75367179,108725539,142346075,173803872,205523806,8195421,117446912,-57344,113246224,1528439556,1546214683,1577533443,1638400,-12582905,-1073737473,438502406,727522139,121635676,251658334,1946159104,393255,-2112749088,1638400,-109838322,-536866816,277418502,378804356,361437057,318767256,1946160896,655609,-1911553056,-1709795048,983040,-109838320,-536869376,16333057,285218560,6190080,98566158,-2012052720,-1776905448,35863,1245199,100687476,956424192,94,-1258278144,100667137,-60416,29360134,5429,327695,117440352,117555200]},{"sector":14,"data":[251658261,335546112,458751,605749696,0,55705691,393231,117440276,889307136,251658485,1610614016,458751,-184090176,983040,-15466489,-1073740033,13572865,251662592,16348160,48234504,-669527278,1507328,1584660498,-536867328,313921541,416749522,15341282,0,385,1074561104,-2147213300,1612710496,-2145374207,135468032,408977436,221261872,2527360,134983728,204474944,69213248,1077936256,155197448,1073750064,1075841344,808464392,-1868560272,537723052,805316240,1074269104,1074540560,-2147213284,239091712,806305824,1077936160,239083535,1882206256,-2121228274,-1874850560,-1339031514,222300171,473959472,8389664,537608256,540019776,188760072,806109216,191901744,5673120,646972429,196096000,807485448,538722316,1073774596,1075846976,2109472,538984512,808460096,-1608552400,218114960,2527248,134983728,204477248,69213248,1077936256,306192401,1074274352,1075843392,808464402,-1868557968,8388608,-1845357804,204472320,69209152,1075841152,104869925,54542336,805584928,1075839008,88092709,71319552,805519392,8396848,1082131552,121643037,134422576,121667612,808464432,8421388,272630880,807616520,335577136,135282692,591398923,808464432,207618176,1074266176,203436067,807682080,8400944,4197396,1074273032,203436067,807682080,9580592,-16594944,16781311,-1,84738050]},{"sector":15,"data":[537205632,-16646129,50331647,1074072832,202376475,335550464,131071,251921691,1879057664,458751,743637440,851968,-15466461,1073743103,318767104,1610621952,720895,-15990208,891237887,2424832,-15466460,1073749247,152766728,201989386,-15007745,-58369,905969451,475411743,318767190,-64768,720895,-2045115456,-1691840217,1245184,-252,-1073739009,663689731,10299538,83891968,-60416,96469006,722250537,1012279083,11573,327701,218103616,688177152,724241447,2962748,83891456,-57344,79691788,1009330956,758458155,2424832,-15466490,-1073734401,119669516,154077222,187238952,859769917,893006907,1445604191,620757054,1073743360,1900543,570625216,789063175,688531465,1057766667,976501555,707354421,15915,393253,486539040,51167232,136709922,170395951,205327145,876294975,694105402,2763582,117448448,-60416,163577878,-1677443069,2064131077,1560959753,2081258763,23638,458792,536870720,201932800,1024273709,1532697149,660430107,656948027,1616914727,895245355,12079,458792,536870688,201932800,1024273709,1532697149,660430107,656948027,1549543719,895508523,12079,1900611,989855552,51527680,604323904,1583220516,153495048,671754794,690555688,224354060,2065312555,2105351035,674904615,2116624930,2088512382,876362803,1060453950,1124073535,536878336]},{"sector":16,"data":[3866623,1073943104,606340416,140402183,705242662,673712682,204024075,722296671,2071665195,662535451,573061690,2088511778,863927851,1043610684,1061107006,1507328,1627389707,-536867328,378147333,411899799,8724117,218107648,6356991,31457286,24633,-15663081,234905343,302374912,395712136,512956556,251658371,-60672,393310,1580794336,983040,2130706207,-536869376,10760449,536874752,8323071,31457286,42289,-14614513,100695807,956424192,126,1627424512,100667139,-40960,29360134,44805,393233,150994708,84066304,1386927,134223616,2621439,98566158,-1558805998,-1575444201,40990,-16187377,100673535,302112768,251658384,-62976,393255,658047456,1638400,-16777458,-536866816,361304582,394335896,513022091,318767236,-61696,655614,-1709833248,-1910597352,0,55705846,393231,117440352,84000768,285212879,335545856,589823,-821755200,62761,-16252903,268496895,302440448,384570754,413210531,10493602,151001344,15728639,115343376,-317353966,-703076074,-1256267752,983040,-268435702,-536869376,15677697,234887424,16383999,115343376,-1743419118,-1961393898,-2078370792,1507328,-100663537,-536867328,382931461,416815002,9313945,268439296,16383999,31457286,63801,-15990761,234905855,302374912,401282772,518199518,285212855,-57600]},{"sector":17,"data":[524414,-468188448,50718,-14680047,134250239,402841600,13049573,301995776,6225919,98566158,-367603182,-501688553,46622,0,0,0,381,537690192,-2147205092,1612710496,204484609,1610645632,135282692,540022880,135479308,808458336,-1870656208,-1339031514,171968523,473959472,8389664,537411648,540019008,155205632,805847072,141570096,11309216,646979597,196096000,806371336,538722316,1073774596,1075842624,2109455,537870400,808455744,-1609666512,218136976,2527296,134983728,204475712,69213248,1077936256,205529099,1074274352,1075841856,808464396,-1868559504,67960918,805316240,1074269104,1074540577,-2147213284,524304384,807419936,1077936160,524296224,1882206256,730898463,-1877996288,-1339031514,322963467,473959472,8389664,538001472,540021312,289423368,806502432,292565040,37024,320077952,37378,471862320,8389696,1076445248,71311363,537280560,658522112,1075840064,88092675,-2146688976,73400448,1074270272,203436039,1074271040,-2144325625,1074028544,591398928,8400944,272630804,1074268936,808464419,8400944,4197472,807616520,807682080,335577136,134234124,591398939,608182320,9580592,-16628736,16781311,-1,84738050,537205520,-16646132,33554431,1074072832,-15204337,50331647,67439872,327157004,-56576,720895,1376832,352332844,2031616]}],[{"sector":1,"data":[-220,1073747711,-62458,722803221,422379519,891237676,5643350,50336000,-1,46137352,2032957973,1114112,-252,-1073739521,744101122,452984921,335545600,1245183,655099840,-2128964569,606831656,758463574,1769472,-14680059,-1073736961,656870407,679549588,725363076,2962724,83892992,-49152,130023442,-1809373428,-2077720294,1009460265,11573,393269,754974484,689225728,53150456,86639650,136710023,170395951,205327145,463219519,859723297,893006907,444737375,8726666,100676352,-57344,331350058,721567273,704913923,638027525,671690504,1024141578,-1674887412,993206555,1597323828,-1977974233,34088,393267,721420096,722714624,53150270,86639650,136710023,170395951,205327145,463219007,876294945,660550970,680139394,486539397,335546112,1376255,1073940672,-1442372860,1528462635,2066242843,23638,458783,385875744,50970624,86180928,679217400,458955389,695936861,520093788,1073743616,1507327,1073940928,-133881084,2099898374,1562073882,1546353448,1507328,1627389707,-536867328,378147333,411899799,8724117,218107648,6356991,31457286,24633,-15663081,234905343,302374912,395712136,512956556,251658371,-60672,393310,1580794336,983040,2130706207,-536869376,10760449,536874752,8323071,31457286,42289,-14614513,100695807,956424192,126]},{"sector":2,"data":[-1258245888,83889921,-60416,29360134,5417,458771,184549140,33800192,159123635,285212827,1610614528,589823,2080899776,5382,-16252905,234891263,302374912,396564098,513939617,251658400,-63232,393255,-1877868064,1638400,587202318,-536866816,747180550,394335896,513022091,318767236,-61696,655394,-1709833248,-1910597352,1245184,-217,-1073739009,446244611,9316506,687870720,-1,62914570,-1977974233,34088,19857408,1246034,-217,-1073739009,664410627,9316505,687870720,-1,62914570,-1876437990,46888,327695,117440276,687980544,318767349,335546112,720895,2080506816,-1123427064,1114112,-10485753,-1073739521,115148802,419430645,-63488,1048815,-2112747808,-1558778836,-1575444201,40990,-16187367,268496895,302440448,384642192,416684009,11869920,167776000,15728639,31457286,61241,-15859687,268499455,302440448,379071625,411768705,8658580,251664128,16383999,98566158,-1709780206,-1726425065,36382,-15728625,100727295,956424192,385876217,-62464,917600,-737016352,-568857834,-1222712552,1114112,2130706207,-536868864,518264834,285212870,-57344,524414,-451411232,50974,-15597545,234905343,302374912,401217234,518133975,182,0,0,0,0,-2147483288,537690192,8405020,339738644]},{"sector":3,"data":[536961152,39862272,1619002400,23076866,540028976,-2146156544,2097760,536961088,39878660,805396512,808464432,647004173,196096000,805978120,538722316,1073774596,1075841088,2109449,537477184,808454208,-1610059728,218136976,2527264,134983728,204476480,69213248,1077936256,255860750,1073750064,1075842880,808464398,-1868558224,1074593878,805316240,1074269104,1074540557,-2147213284,188760064,806109216,1077938208,205529099,1882206256,730898443,-1877996288,-1339031514,322963467,473959472,8389664,538001472,540021312,289423368,806502432,292565040,37024,320077952,37378,4197424,1074273032,203436067,807682080,471862320,142607424,807747616,1310848,1073954880,71311365,540018240,54542336,1075840576,805715972,536879152,-2144328384,1073746944,104858688,1073954848,2109445,1074020416,54534149,808453440,-2146688976,73400448,1074270272,203436039,1074271040,808464391,37424,-64900,-16711665,50331647,-2147152640,202376489,-65024,131071,322962701,-56576,720895,1376832,352332844,1835008,-15466460,1073746943,-54523,355802933,422319386,203164716,2031616,-14680028,1073747711,-62458,905969451,437597471,739847189,2694185,603987712,-49152,104857622,218103595,523632639,354030901,724310316,11036,-16580585,251658239,436584448,680798081,360262788,385876090,-64512]},{"sector":4,"data":[983039,-1709570624,-1909941977,1511348524,983040,-15728603,-1073740033,2904833,83898624,-60416,314572840,822238761,855912963,889598981,923284999,956971017,-519294965,590031643,741555286,758459956,3080192,-14680059,-1073731841,37497105,70386481,104072499,137758517,171444535,204475193,724245473,875311907,2962734,83898112,-49152,297795622,839069954,872755972,906441990,940128008,806041866,723247372,1009460009,775171123,11573,393263,654311188,689029120,35783672,103023905,136709925,170395951,205327145,724179775,859723303,893006907,754974815,536872448,2424831,1042878656,553787907,621159429,789063175,688531465,1057766667,1579887131,976501555,24373,393261,620756800,51429376,86049314,119866916,154077222,187238952,457116733,727591210,876294974,6239546,117449472,-60416,197132314,-66781949,1527347976,2097896714,1074813964,2086043163,58930,458773,218103584,436518912,693967707,4195164,117445888,-49152,79691788,1562073882,1073962027,1507328,1584660497,-536867328,310582789,378738824,9181078,318770944,6190080,31457286,24121,-16056297,234905855,302374912,411377290,395777685,251658381,-62208,393312,1614348768,0,28639319,-16449523,83886079,57344,100667136,-1,29360134,5380,-16252905,234891263,302374912]},{"sector":5,"data":[413146754,396564130,251658401,-63232,393255,-1877868064,983040,671088394,-536869376,2570497,-1929379840,218321408,-64256,327679,224,-16383985,117440511,67223552,385876213,-63488,917743,-2112748064,-1575444450,-1592286442,1507328,-268435703,-536867328,397745669,383785174,9442025,167776000,15728639,31457286,61241,1179671,234905204,503701504,399643318,383916247,385876202,-62464,983039,-1222769184,-568863726,-350821608,0,0,0,281,537690192,-2147205092,1612710496,221261825,2527360,134983728,204474944,69213248,1077936256,155197448,1073750064,1075841344,808464392,-1868560272,537723009,805316240,1074269104,1074540560,-2147213284,239091712,806305824,1077936160,239083535,1882206256,1452318736,-1874850560,-1339031514,222300171,473959472,8389664,537608256,540019776,188760072,806109216,191901744,2855072,646975501,196096000,806567944,538722316,1073774596,1075843392,136327186,538001472,808456768,-1609469904,-2147483504,34804736,805306514,134234124,591398939,537665584,808461376,1075585036,537427972,1076897088,1077936134,71311363,536879152,1076897088,1077936133,54534148,203436080,1610645632,135282692,540018496,135479308,808453952,9580592,-16690944,587206143,-1,4194308,1245184,-13369308,1073744639,-54526,2694185,83894528]},{"sector":6,"data":[-60416,180355096,655121449,723225869,758463574,-2060937945,-1977968853,2031616,-14680059,-1073735937,205269257,462228775,657274155,730146965,9050775,83894016,-49152,163577878,-1928517876,1009462043,-1792594635,-1758886616,35354,393265,687865620,689094656,69337980,136710044,170395951,205327145,442371391,461842306,1459103786,876294974,6239546,100675840,-57344,314572840,570637865,638032900,671690504,1024141578,1577926412,1076331034,589834779,993214038,1597323828,3080192,-12582906,-1073731841,69337873,136710044,170395951,205327145,442371391,457189250,723724330,876294974,6239546,117445888,-60416,79691788,1562073882,589840423,1245184,-14680057,-1073739009,442247427,6101851,117445376,-49152,62914570,1528454187,23835,2359296,983477,-13369338,-536869121,1387265,100667136,-49152,31457286,5417,2359296,983890,-13369338,-536869121,16067329,100667136,-49152,31457286,62761,0,0,0,0,281,537690192,-2147205092,1612710496,221261825,2527360,134983728,204474944,69213248,1077936256,155197448,1073750064,1075841344,808464392,-1868560272,537723009,805316240,1074269104,1074540560,-2147213284,239091712,806305824,1077936160,239083535,1882206256,1452318736,-1874850560,-1339031514,222300171,473959472,8389664,537608256]},{"sector":7,"data":[540019776,188760072,806109216,191901744,2855072,646975501,196096000,806567944,538722316,1073774596,1075843392,136327186,538001472,808456768,-1609469904,-2147483504,34804736,805306514,134234124,591398939,537665584,808461376,1075585036,537427972,1076897088,1077936134,71311363,536879152,1076897088,1077936133,54534148,203436080,1610645632,135282692,540018496,135479308,808453952,9580592,-16679680,587206143,-1,4194308,1245184,-13369308,1073744639,-54526,2694185,620760832,-36864,29360134,11347,327713,419430164,688570368,220662876,1445665677,657274172,730146965,9050775,83894016,-57344,163577878,655113257,723225869,-1792594635,-1758755544,35354,327711,385875776,201965568,462228775,893135659,680863533,446114181,822083722,335545856,2686975,2083066560,-1677450749,789063175,688531465,1057766667,-2112201203,706447143,1045887016,976501555,24373,393265,687865632,689094656,69337918,136710044,170395951,205327145,442371391,457189250,1445144618,876294974,6239546,100675328,-49152,297795622,-1677450749,789063175,688531465,1057766667,-2112201203,706428967,1043014440,976501555,24373,458781,352321296,67682304,159057955,190646875,457183357,6302590,117445888,-64512,79691788,1562073882,589840423,1245184,-14680057,-1073739009,442247427,6101851]},{"sector":8,"data":[117445376,-49152,62914570,1528454187,23835,2359296,983477,-13369338,-536869121,1387265,100667136,-49152,31457286,5417,2359296,983890,-13369338,-536869121,16067329,100667136,-49152,31457286,62761,0,281,537690192,-2147205092,1612710496,221261825,2527360,134983728,204474944,69213248,1077936256,155197448,1073750064,1075841344,808464392,-1868560272,537723009,805316240,1074269104,1074540560,-2147213284,239091712,806305824,1077936160,239083535,1882206256,1452318736,-1874850560,-1339031514,222300171,473959472,8389664,537608256,540019776,188760072,806109216,191901744,2855072,646975501,196096000,806567944,538722316,1073774596,1075843392,136327186,538001472,808456768,-1609469904,-2147483504,34804736,805306514,134234124,591398939,537665584,808461376,1075585036,537427972,1076897088,1077936134,71311363,536879152,1076897088,1077936133,54534148,203436080,1610645632,135282692,540018496,135479308,808453952,9580592,-16735744,587206143,-1,4194308,1245184,-13369308,1073744639,-54526,2694185,83890432,-60416,46137352,590030632,1245184,-14680059,-1073739009,677128451,2304807,83890944,-49152,46137354,589899560,23595,393239,251658004,688242688,69338026,725624988,385876094,1073743360,983039,570623424,2116656132,2083209256]},{"sector":9,"data":[1507328,-14680058,-1073737985,58468613,681313314,8268608,603979776,251770112,335546112,458751,-584515136,983040,-15466490,-1073740033,8148481,603979776,251875840,335546112,458751,2083062208,983040,-15466490,-1073740033,14505473,0,0,0,0,281,537690192,-2147205092,1612710496,221261825,2527360,134983728,204474944,69213248,1077936256,155197448,1073750064,1075841344,808464392,-1868560272,537723009,805316240,1074269104,1074540560,-2147213284,239091712,806305824,1077936160,239083535,1882206256,1452318736,-1874850560,-1339031514,222300171,473959472,8389664,537608256,540019776,188760072,806109216,191901744,2855072,646975501,196096000,806567944,538722316,1073774596,1075843392,136327186,538001472,808456768,-1609469904,-2147483504,34804736,805306514,134234124,591398939,537665584,808461376,1075585036,537427972,1076897088,1077936134,71311363,536879152,1076897088,1077936133,54534148,203436080,1610645632,135282692,540018496,135479308,808453952,9580592,-16711424,587206143,-1,4194308,1245184,-13369308,1073744639,-54526,2694185,83892480,-61440,113246224,1075489293,975723291,1563122729,1114112,-16515067,-1073739521,723986434,318767139,536872192,720895,1546191808,590030632,1245184,-12582907,-1073739009,690432002,6040355,100673792]},{"sector":10,"data":[-61440,247463968,-1677450749,654845447,688531465,1024205579,2065391642,707275559,1599503659,1507328,-16515066,-1073737985,61483269,681313314,8268608,100669184,-49152,96469006,-1677450749,1076395561,31787,393239,251658016,688242688,69337980,725624988,486539390,268437248,1376255,-50132800,-1425605628,-133435126,1579712027,58930,4456448,983477,-16515065,-1073740033,14493953,100667648,-61440,46137352,-1005724375,983040,-16515066,-1073740033,8148481,83889920,-61440,29360134,31830,4456448,983890,-16515065,-1073740033,8136961,100667648,-61440,46137352,-301106135,983040,-16515066,-1073740033,14505473,83889920,-61440,29360134,56662,0,0,0,0,381,537690192,-2147205092,1612710496,204484609,1610645632,135282692,540022880,135479308,808458336,-1870656208,-1339031514,171968523,473959472,8389664,537411648,540019008,155205632,805847072,141570096,11309216,646979597,196096000,806371336,538722316,1073774596,1075842624,2109455,537870400,808455744,-1609666512,218136976,2527296,134983728,204475712,69213248,1077936256,205529099,1074274352,1075841856,808464396,-1868559504,67960918,805316240,1074269104,1074540577,-2147213284,524304384,807419936,1077936160,524296224,1882206256,730898463,-1877996288,-1339031514,322963467]},{"sector":11,"data":[473959472,8389664,538001472,540021312,289423368,806502432,292565040,37024,320077952,37378,471862320,8389696,1076510784,71311363,537280560,675299328,1075840064,88092675,-2146688976,73400448,1074270272,203436039,1074271040,-2144325625,1074028544,591398928,8400944,272630804,1074268936,808464419,8400944,4197472,807616520,807682080,335577136,134234124,591398939,608182320,9580592,-16628736,16781311,-1,84738050,537205520,-16646132,33554431,1074072832,-15204337,50331647,67439872,327157004,-56576,720895,1376832,352332844,2031616,-220,1073747711,-62458,722803221,422379519,891237676,5643350,50336000,-1,46137352,2032957973,1114112,-252,-1073739521,744101122,452984921,335545600,1245183,655099840,-2111337958,606831912,758463574,1769472,-14680059,-1073736961,438766599,679618442,725363077,2962724,83892992,-49152,130023442,-1977997556,-2060942809,1009460265,11573,393269,754974484,689225728,53150456,86639650,136710023,170395951,205327145,463219519,859723297,893006907,662772319,8661140,100676352,-57344,331350058,721567273,704913923,638027525,671690504,1024141578,-1674887412,993206555,1597323828,-1809350374,33832,393267,721420096,722714624,53150270,86639650,136710023,170395951,205327145,463219007,876294945]},{"sector":12,"data":[442447162,680798081,486539396,335546112,1376255,1073940672,-1442372860,1528462635,2066242843,23638,458783,385875744,50970624,86180928,679217400,458955389,695936861,520093788,1073743616,1507327,1073940928,-133881084,2099898374,1562073882,1546353448,1507328,1627389707,-536867328,378147333,411899799,8724117,218107648,6356991,31457286,24633,-15663081,234905343,302374912,395712136,512956556,251658371,-60672,393310,1580794336,983040,2130706207,-536869376,10760449,536874752,8323071,31457286,42289,-14614513,100695807,956424192,126,-1258245888,83889921,-60416,29360134,5417,458771,184549140,33800192,159123635,285212827,1610614528,589823,2080899776,5382,-16252905,234891263,302374912,396564098,513939617,251658400,-63232,393255,-1877868064,1638400,587202318,-536866816,747180550,394335896,513022091,318767236,-61696,655394,-1709833248,-1910597352,1245184,-216,-1073739009,444737283,8726666,704647936,-1,62914570,-2128964569,33832,19857408,1246034,-216,-1073739009,445654787,12003540,704647936,-1,62914570,-1725457894,36392,327695,117440276,687980544,318767349,335546112,720895,2080506816,-1123427064,1114112,-10485753,-1073739521,115148802,419430645,-63488,1048815,-2112747808,-1558778836]},{"sector":13,"data":[-1575444201,40990,-16187367,268496895,302440448,384642192,416684009,11869920,167776000,15728639,31457286,61241,-15859687,268499455,302440448,379071625,411768705,8658580,251664128,16383999,98566158,-1709780206,-1726425065,36382,-15728625,100727295,956424192,385876217,-62464,917600,-737016352,-568857834,-1222712552,1114112,2130706207,-536868864,518264834,285212870,-57344,524414,-451411232,50974,-15597545,234905343,302374912,401217234,518133975,182,0,0,0,0,-2147483229,537690192,1073758236,69206624,537026688,808452448,-2139091936,1074028544,408946704,134422576,35340316,808458336,-2146619344,805316240,1074269104,1074540554,-2147213284,138428416,805912608,1077936160,138420233,1882206256,-1399807992,-1878782720,-1339031514,557844491,473959472,8389664,538918976,540024896,524304392,807419936,527446064,8491168,646979597,196096000,806371336,538722316,1073774596,1075842624,2109455,537870400,808455744,-1609666512,218125968,2527296,134983728,204475712,69213248,1077936256,205529099,1074274352,1075841856,808464396,-1868559504,269287467,805316240,1074269104,1074540563,-2147213284,289423360,806502432,1077938208,306192401,1882206256,9478161,335577088,1074528787,641736732,37424,471862320,142607424,807747616,54542336,1075840320,805715972]},{"sector":14,"data":[1075839008,1073754149,104858688,1073954848,540028933,8421388,272630880,805781512,322964512,805781512,1610645552,135282692,808461120,68419712,185077824,807616520,808464432,207618176,1074266176,1075851299,-2144325596,1074533376,135989248,540025664,608182284,1074016304,135989264,808461120,1191182482,637533955,335553280,1900543,-15988672,-2113925633,287178768,1977344,838870800,839974956,65535,2359339,587202324,201998336,521011199,268505101,504437265,220667409,-54489,841750316,475463679,520093782,1610621696,1507327,1050176,738201886,655360030,2896384,-52719,3014656,-14680028,1073751551,-62453,704642859,503785756,220138759,286261520,287183130,655173406,841750316,65535,2359342,637534048,202063872,-13893633,723266559,218570247,17829151,286920976,656281886,388769549,-52692,786432,-255,436208127,790533,-254,436208127,1187845,-13369320,671089663,86736901,67450176,1572882,67108672,-2147145728,893388073,1508357,-253,-1073737985,291573765,661724794,7810157,67114752,-1,96469006,1511080208,1294422302,22316,327733,754974484,689225728,52822781,86115458,136840743,169937290,210045831,455937321,731326500,842815206,876294956,4011322,83899136,-57344,331350058,637680681,570720771,671491845,554273288,-2062842102]},{"sector":15,"data":[755837196,-1758976997,741533227,976501555,15669,327731,721420096,34848768,75629350,103220514,160041000,193399329,220793989,673454893,736504215,858534460,893006907,889192509,335545856,2949119,822219968,855912963,889598981,923284999,956971017,-133418997,706436877,-1674894040,1060257366,791948851,11061,393269,754974528,689225728,53543580,87229490,120915508,154601526,188287544,234359856,673848159,842935077,875443007,2831663,100676864,-57344,348127276,822230569,855912963,889598981,923284999,956971017,-133418997,706436877,-1674894040,775110450,724905780,2031616,-15466489,-1073735937,58458633,119735360,192612958,458955389,6051421,117448448,-49152,163577878,1073970178,1577526020,2097904394,1562073882,23595,458783,385875744,34193408,71304060,173934371,444402555,693967707,385876060,-62720,917600,-1978530336,-1793555184,-1927833834,851968,1627389708,-536869888,251658240,-62208,393312,1614348768,1507328,1593835281,-536867328,310579205,378738824,9181078,301993216,6225919,14680068,983040,1593835283,-536869376,6174977,553651968,8323071,31457286,32313,10682368,983477,-251,-1073740033,1378049,100667136,-60416,31457286,41,-16252905,234891263,268820480,394400416,379721889,251658403,-63232,393255,-1877868064]},{"sector":16,"data":[983040,671088394,-536869376,2570497,520097536,8323071,31457286,42033,-14680049,100695807,822206464,419430565,-61952,1048830,-1995307296,-1810332656,-1961393898,38933,-15794157,167837439,268689408,379132046,154,1375798528,83889923,-1,29360134,62727,393231,117440276,687980544,218104060,-63744,327679,224,-14745581,167804671,822337536,415633572,318767332,-57344,655486,-1523514400,-451361008,1638400,-268435704,-536866816,312479750,413210498,363009698,419430636,-63232,1048815,-1257240864,-703098862,-384376808,60693,-16121841,100724735,956424192,419430639,-61952,1048825,-1995307296,-1810332656,-1961393898,38933,-15794153,234945023,268820480,399708814,379132120,251658394,-61440,393470,-113704480,1507328,1627389708,-536867328,313987077,417208276,15406819,301995776,6225919,98566158,-770525680,-501688553,59926,0,0,0,0,409,1074561104,-2147213300,1612710496,-2145374207,135468032,408977436,221261872,2527360,134983728,204474944,69213248,1077936256,155197448,1073750064,1075841344,808464392,-1868559760,135069911,805316240,1074269104,1074540566,-2147213284,339755008,806699040,1077936160,339746837,1882206256,-1399807978,-1878782720,-1339031514,557844491,473959472,8389664,538918976,540024896]},{"sector":17,"data":[524304392,807419936,561000496,8491168,646979597,196096000,806371336,538722316,1073774596,1075842624,2109455,537870400,808455744,-1609535440,218125968,2527296,134983728,204475712,69213248,1077936256,205529099,1074274352,1075841856,808464396,-1868558992,269287467,805316240,1074269104,1074540563,-2147213284,289423360,806502432,1077938208,306192401,1882206256,9478163,335577088,9568787,8400896,4197472,807616520,1075842080,808464420,202637440,453513280,807616520,135282692,591398939,473957424,807682080,205524016,142607392,807747616,1073743424,1075839808,2109444,807747616,1073743168,1075840064,540028931,73400448,538787968,540018496,-2145646589,808453952,9580592,-16666112,16781311,-60416,85590018,-2147145696,131090,67108628,268769792,222299432,787461,-15466472,218104319,2164741,-15466491,-1073735425,205531402,469241135,724248362,875311932,1445803310,788529245,335545856,2555903,553783744,587473411,621159429,1594369543,688531465,1057761035,1043067175,976501555,1532378421,2949120,-15466489,-1073732353,44706064,83690491,111937020,150144939,175835548,526126205,766389473,887501487,251658490,268444928,458751,743637440,851968,-15466461,1073743103,469762048,335553536,1310719,-15989440,-58625,738197275,523632639,385876021,335547136,917600,-1978530336,-1793555170]}],[{"sector":1,"data":[-1927833834,851968,1611923468,-536869888,251658240,335547648,393312,1614348768,1507328,1578369041,-536867328,310582789,378738824,9181078,301993216,6165504,14680068,983040,1578369043,-536869376,6174977,553651968,8262656,31457286,32313,1310735,100726548,771874816,251658375,335549696,393463,-2144468512,983040,-149684202,-536869376,16201985,234887424,16323584,115343376,-2078373614,-2129226728,-1743418601,983040,-116129776,-536869376,16333057,-1879048192,318878976,335546112,720895,336790464,2086050606,1114112,-15466490,-1073739521,699603714,251658261,335552256,393342,-1540292128,983040,2115239968,-536869376,10825985,134223616,2561024,98566158,-2112708578,-1575444201,41750,589839,100673300,302112768,251658384,335546880,393255,658047456,1245184,-116129777,-536868352,411966979,10098329,-704643072,285430272,335545856,589823,2082144960,62761,458771,184549140,319012864,1455238900,318767325,335552256,655486,-971111456,-1540234216,1245184,2115239968,-536868352,415702531,10826213,134224128,15668224,115343376,-2112708578,-1575444201,-334126314,1638400,-283901943,-536866816,512758278,416683957,367597280,251658477,335546880,393455,-281476640,1507328,-116129777,-536867328,311303685,416815059,10098329,201332480,6296576,98566158,-736970978]},{"sector":2,"data":[-484909545,60182,1179671,234905108,503701504,399643318,383916247,234,0,0,0,0,385,1074561104,-2147213300,1612710496,-2145374207,135468032,408977436,221261872,2527360,134983728,204474944,69213248,1077936256,155197448,1073750064,1075841344,808464392,-1868560272,537723052,805316240,1074269104,1074540560,-2147213284,239091712,806305824,1077936160,239083535,1882206256,-2121228274,-1874850560,-1339031514,222300171,473959472,8389664,537608256,540019776,188760072,806109216,191901744,5673120,646972429,196096000,807485448,538722316,1073774596,1075846976,2109472,538984512,808460096,-1608552400,218114960,2527248,134983728,204477248,69213248,1077936256,306192401,1074274352,1075843392,808464402,-1868557968,8388608,-1845357804,204472320,69209152,1075841152,104869925,54542336,805584928,1075839008,88092709,71319552,805519392,8396848,1082131552,121643037,134422576,121667612,808464432,8421388,272630880,807616520,335577136,135282692,591398923,808464432,207618176,1074266176,203436067,807682080,8400944,4197396,1074273032,203436067,807682080,9580592,-16590592,16781311,-40960,84738050,537205632,65548,33554196,537205504,-16646129,50331647,1074072832,252708123,335550464,196607,461374733,984069,-9437147,-1073740033,2904833,587205888]},{"sector":3,"data":[-60416,4194308,1245184,-10485724,1073744639,-62462,3481397,603989248,-60416,138412060,168368905,-15988195,219942399,469761818,-13893633,891237887,1245184,-253,-1073739009,663099907,9513115,67113728,-1,62914570,-1658351846,37416,327705,285212436,688308224,220925052,891759452,3954221,83891456,-49152,79691788,722216745,758463531,1376256,-14680059,-1073738497,690686980,891759420,620757037,335545856,1900543,570625216,789063175,688531465,1057766667,993208875,1597323828,15958,393255,520093504,51232768,127665186,154077222,187238952,859769917,893006907,724183391,654311486,536872448,2031615,570625472,638032900,671690504,1024141578,993214220,1597323828,707477033,1769472,-15466489,-1073736961,71303943,136578460,173738363,8194909,117450752,-49152,155189279,221064460,1528446269,1566382939,674970407,1613309735,1549544288,3092277,117450752,-57344,155189279,221064460,1528446269,1566382939,674970407,1546200871,1616915292,3092277,486556416,-49152,306184250,71319555,1577526051,640026718,170535433,688597032,1600064553,439036685,2098953083,976889725,690102824,2083225214,1010578300,893271604,16191,1900611,989855520,51527680,587481152,1583220515,153495048,671754794,690555688,224354060,2065312555,2105351035,674904615,2083070498]},{"sector":4,"data":[2122197884,876362803,1060453950,385876031,-62720,917600,-1978530336,-1927833834,-2061593320,983040,1627389709,-536869376,6306049,285218560,6225919,98566158,-1776908270,-1827107817,33566,-15532017,100687615,956424192,251658334,335552256,393342,-1540292128,983040,2115239968,-536869376,10825985,553651968,8262656,31457286,32313,7864320,1114977,-15466490,-1073739521,699335938,385875989,-63488,917543,-2112748064,-1592286442,-1608605160,983040,671088393,-536869376,9441793,167776000,2621439,31457286,10041,-15859687,268500735,302440448,379065737,411768705,8658580,251663104,16711679,65011722,-1726440938,36382,15138816,1114962,-15466490,-1073739521,701433090,419430645,-63488,1048815,-2112747808,-1558778859,-1575444201,40990,-16187367,268496895,302440448,384636304,416684009,11869920,167776000,15728639,31457286,61241,-15859687,268499455,302440448,379065737,411768705,8658580,251664128,16383999,98566158,-1709780206,-1726425065,36382,-15728625,100727295,956424192,385876217,-62464,917600,-737016352,-568857834,-1222712552,1114112,2115239967,-536868864,518264834,285212870,335552512,524414,-451411232,50974,-15597545,234905343,302374912,401217234,518133975,182,0,0,1073742198,537690192,268779548,-1877196624]},{"sector":5,"data":[87032012,440447040,805335440,537231364,-1877262160,1613758607,134553602,-1877524304,1613758677,186658817,67637256,-1333787264,512760128,408956928,134422576,-2147123172,-1877393232,1613758477,808464408,613449741,196096000,805978120,538722316,1073774596,1075841088,2109449,537477184,808454208,9543728,-1874850560,-1339031516,222300171,473959472,8389664,537608256,540019776,205537280,806043680,-1851772880,537722880,805315728,1074269104,1074540560,-2147213284,239091712,806305824,1077936160,239083535,-1607454672,218103953,2396176,134983728,204477248,69213248,1077936256,306192401,1073750064,1075843648,808464401,37280,613419021,196096000,806764552,538722316,1073774596,1075844160,2109461,538263616,808457280,9543728,335577088,9568787,537669632,579878940,134950912,-2147219440,135006016,805306513,134422576,121667612,9504780,808464384,67109010,409728,537083968,540017728,1073743168,1075840064,-1842335741,39714816,1245183,-255,671089663,85606405,134552336,-16646126,67108863,1074079744,454034714,794629,-232,889192959,1015813,-253,-1073740033,8533249,67112704,-1,29360134,36917,327699,184549148,688111616,1446783779,285212846,1610614016,589823,1009320640,23595,327695,117440384,855752704,486539308,469763584,1376255,570624192,1057435396,1043037225]},{"sector":6,"data":[775169843,44886,393243,318766944,50839552,120521762,725494079,874984316,385876014,-2147482112,983039,570623424,1057435396,775169843,2818048,-14942201,-1073732865,66126351,127665216,201132458,447417516,660413275,695937150,847063900,16275174,117452544,-49152,297795622,1074000130,-1442341884,-1408500471,1528474380,2116508955,2099870504,-1372642517,-130961616,58930,458799,654311200,34717696,71304177,162138012,212601853,458955435,662578781,729622651,816721699,855126447,922747110,-2147481856,3080191,-251521600,-1677443069,-435574265,-1408172789,1528474385,1008622875,2116435487,2099804967,590175276,-1372619730,-130961616,1245184,-248,-536868097,411177475,10688162,150998784,-1,31457286,36882,-16056301,167796991,503570432,378147461,251658391,-62208,393312,1614348768,983040,1627389722,-536869376,6301697,234885888,-1,65011722,-1961391854,33046,-15663081,234905343,503701504,394793603,378738828,251658390,-60672,393310,1580794336,983040,1593835292,-536869376,6167041,251662080,-1,31457286,39446,-15466481,117440511,771874816,251658375,-60160,458751,-2144468512,0,56557781,458781,352321404,84459520,144180891,228985504,428808365,10957702,117447936,-32768,146800660,-1744397563,-1509122040,-1894208238,-1489795559]},{"sector":7,"data":[983040,-1577058550,-536869376,10565889,419434240,10616831,31457286,41269,-15990765,184549375,503570432,378606222,285212829,-61696,524452,-1810758944,38167,-15728625,100705535,956424192,251658404,-58624,393380,-1541733920,1507328,-238,-536867073,310648325,413669266,10360473,369102592,10878975,31457286,42297,-15269873,100705791,453107712,165,1375808256,117447939,-33792,146800660,-821641979,-66396920,-182914291,-298585063,1900544,-8388601,-1073736449,113050888,215812303,418583292,871635445,318767342,-63488,655599,-1608645664,-334126825,1507328,-268435703,-536867328,397745669,383785174,15537641,167776000,15728639,31457286,61241,-15138801,100724735,889315328,285212911,-62720,589823,-1927871776,38168,-15990761,251658239,503701504,399774391,383981790,318767339,-61952,655609,-2078407712,-1743416296,1376256,-100663537,-536867840,311303684,416815059,251658393,-61440,393465,-113704480,983040,-100663525,-536869376,16325377,301995776,-1,98566158,-770525666,-501688553,59926,-15335409,100726783,956424192,251658487,-59648,393463,-149224992,0,0,0,0,385,1074561104,-2147213300,1612710496,-2145374207,135468032,408977436,221261872,2527360,134983728,204474944,69213248]},{"sector":8,"data":[1077936256,155197448,1073750064,1075841344,808464392,-1868560272,537723052,805316240,1074269104,1074540560,-2147213284,239091712,806305824,1077936160,239083535,1882206256,-2121228274,-1874850560,-1339031514,222300171,473959472,8389664,537608256,540019776,188760072,806109216,191901744,5673120,646972429,196096000,807485448,538722316,1073774596,1075846976,2109472,538984512,808460096,-1608552400,218114960,2527248,134983728,204477248,69213248,1077936256,306192401,1074274352,1075843392,808464402,-1868557968,8388608,-1845357804,204472320,69209152,1075841152,104869925,54542336,805584928,1075839008,88092709,71319552,805519392,8396848,1082131680,121643037,134422576,121667612,808464432,8421388,272631008,807616520,335577136,135282692,591398923,808464432,216006784,1074266176,203436067,807682080,8400944,4197396,1074273032,203436067,807682080,9580592,-16593920,16781311,-1,84738050,537205632,-16646129,50331647,1074072832,202376475,335550464,131071,251921691,1879057664,458751,743637440,851968,-15466461,1073743103,318767104,-536861696,720895,-15990208,891237887,2424832,-15466460,1073749247,152766728,201989386,-15007745,-58369,905969451,475411743,318767190,-64768,720895,-2045115456,-2077715417,1245184,-252,-1073739009,663689731,9316505,83891456,-60416]},{"sector":9,"data":[79691788,657140492,758463574,1376256,-4194299,-1073738497,690686980,893135655,352321581,536872192,851967,722207936,657144873,11573,393255,520093460,51232768,136709922,170395951,205327145,732637503,876294954,1449080122,654311486,-1073740288,2031615,570625472,638032900,671690504,1024141578,707346188,993213995,1597323828,2555904,-14680058,-1073733889,69337869,136710044,170395951,205327145,725494079,876294954,6239546,117448448,-60416,163577878,-1677443069,2064131077,1560959753,1544322315,31830,458792,536870848,201932800,1024273709,1532697149,660430107,656948027,1616914727,895245355,12079,458792,536870688,201932800,1024273709,1532697149,660430107,656948027,1549543719,895508523,12079,1900611,989855680,51527680,587481152,1583220515,153495048,671754794,690555688,224354060,2065312555,2105351035,674904615,2116624930,2088512382,876362803,1060453950,1124073535,536878336,3866623,1073943104,589497408,140402183,705242662,673712682,204024075,722296671,2071665195,662535451,573061690,2088511778,863927851,1043610684,1061107006,1507328,1627389707,-536867328,378147333,411899799,8724117,218107648,6356991,31457286,24633,-15663081,234905343,302374912,395712136,512956556,251658371,-60672,393310,1580794336,983040,2130706207,-536869376,10760449,536874752]},{"sector":10,"data":[8323071,31457286,42289,-14614513,100695807,956424192,126,-1258257152,100667137,-60416,29360134,5,327695,117440276,687980544,385875989,-63488,917543,-2112748064,-1592286442,-1608605160,983040,671088393,-536869376,9441793,167776000,2621439,31457286,10041,-15859687,268500735,302440448,379065737,411768705,8658580,251663104,16711679,65011722,-1726440938,36382,15990784,983890,-15466490,-1073740033,13567233,83889920,-60416,29360134,62761,-16252903,268496895,302440448,384570754,413210531,10493602,151001344,15728639,115343376,-317353966,-703076074,-1256267752,983040,-268435702,-536869376,15677697,234887424,16383999,115343376,-1743419118,-1961393898,-2078370792,1507328,-100663537,-536867328,382931461,416815002,9313945,268439296,16383999,31457286,63801,-15990761,234905855,302374912,401282772,518199518,285212855,-57600,524414,-468188448,50718,-14680047,134250239,402841600,13049573,301995776,6225919,98566158,-367603182,-501688553,46622,0,0,0,303,537690192,-2147205092,1612710496,204484609,1610645632,135282692,540022880,135479308,808458336,-1870656208,-1339031514,171968523,473959472,8389664,537411648,540019008,155205632,805847072,141570096,8491168,646979597,196096000,806371336]},{"sector":11,"data":[538722316,1073774596,1075842624,2109455,537870400,808455744,-1609666512,218125968,2527296,134983728,204475712,69213248,1077936256,205529099,1074274352,1075841856,808464396,-1868559504,269287467,805316240,1074269104,1074540563,-2147213284,289423360,806502432,1077938208,306192401,1882206256,9478161,335577088,9568787,1074540544,135989248,540025664,608182284,537669680,-2147205092,624959496,409648,537083968,540017728,624959488,344112,537149504,808452928,-2139091936,1074028544,121636880,1074536496,121636883,808464432,1258291346,218103554,335544576,131071,260048154,1610612992,196607,461374746,802821,-15466494,436208127,991237,-15466472,671089407,86708229,33558336,-40960,85590018,268770080,196623,117440276,654426112,285212836,536871680,589823,-1540947264,34603,-14352369,117440511,1392623616,218103854,-56576,327679,64,2359315,184549152,721567744,472514559,268435497,1073751040,524287,-13958848,285212927,1073742592,589823,-1540947264,34601,262159,117440276,654426112,285212837,536871936,589823,-1524170048,32811,262161,150994752,654491648,8399269,83893504,-60416,146800660,-1475533044,2066230043,2100001833,1012280629,1245184,-14680059,-1073739009,691742723,2569532,83890944,-49152,62914570,1009466152,10037,393261]},{"sector":12,"data":[620756756,51429376,136709922,170395951,205327145,464325951,693839914,861744120,893006907,4085343,100670720,-57344,146800660,-1392361943,789030915,1060321832,573907252,1900544,-12582906,-1073736449,37628680,128451501,859449391,891368511,352321570,335546112,851967,1544291520,2115715088,43561,458773,218103584,688177152,440402780,6101851,117445376,-49152,62914570,1528446979,23835,-15859687,268499455,302440448,411311753,394335892,9966987,251663104,16383999,65011722,-1726444002,39446,-16056297,234905855,302374912,411377290,395777685,251658381,-62208,393312,1614348768,1507328,1593835281,-536867328,512233989,378738819,9181078,318770944,6225919,31457286,24121,3866624,1507765,671088392,-536867328,511840773,379721888,10557347,150998784,2621439,31457286,36882,-16121841,100673535,956424192,39,1375768832,134223619,15728639,98566158,-1608613358,-1558797800,41239,-16187369,234942463,302374912,397745808,383785174,251658473,-62976,393455,-281476640,1114112,-100663537,-536868864,399708674,251658456,-61440,393465,-113704480,1507328,1627389708,-536867328,313990661,417208276,15406819,301995776,6225919,98566158,-770525666,-501688553,59926,0,0,0,428,537690192,-2147205092,1085280261]},{"sector":13,"data":[-1878892516,87032039,574664708,-1315962272,537210880,1612398768,5279746,537026608,1085292549,-1878958054,87031917,423669888,210764128,23080960,-2146619344,805316240,1074269104,1074540554,-2147213284,138428416,805912608,1077936160,138420233,1882206256,-1399807992,-1876947712,-1339031514,272631819,473959472,8389664,537804864,540020544,255868928,806240288,242233392,8491168,646987789,196096000,806174728,538722316,1073774596,1075841856,136327180,537608256,808455232,-1609863120,218125968,2527236,134983728,204480832,69213248,1077936256,541073439,1073750064,1075847232,808464415,-1868554384,269287467,805316240,1074269104,1074540563,-2147213284,289423360,806502432,1077938208,306192401,1882206256,9478161,335577088,9568787,537669632,-2147205092,1073743424,1075839808,1075851268,1077936133,54534148,203436080,1610645632,135282692,540018496,135479308,808453952,-2146684880,73400448,1074270272,-2144325597,1074009088,134940688,808461120,8400944,4197472,807616520,1075842080,808464420,202637440,453509184,807616520,1075842080,70266916,453513280,807616520,37424,-65185,-16711665,50331647,-2147145728,306185513,-65024,262143,672138503,86581253,184555268,6356991,98566158,-1760130542,-1793553129,34078,-15925233,100688127,956424192,251658336,-58880,393312,1613300192,1507328,1593835281,-536867328]},{"sector":14,"data":[378016261,411834262,8593043,318770944,6225919,31457286,24121,-14942193,100687615,117563392,251658334,-57600,393342,-1540292128,983040,2130706208,-536869376,10825985,553651968,8323071,31457286,32313,-14548977,100695807,687988736,419430526,-63488,1048615,-2112747808,-1592286442,-1608605160,34606,-16187375,134227967,302178304,8400528,167776000,2621439,31457286,10041,-15138801,100673535,671211520,419430439,-61952,1048610,-1995307296,-2129225707,-1810330857,33822,-15794157,184549375,369352704,513349786,251658382,-61440,393250,574161376,983040,587202331,-536869376,2238465,100663296,111872,1375778816,587206403,-1,31457286,61224,-16318449,117440511,671203328,251658489,-63488,393255,-334167584,1507328,671088393,-536867328,384636165,416684009,11869920,234884352,2293759,14680068,1114112,587202319,-536868864,399708674,385876184,-62464,917600,-1222769184,-568863726,-350821608,1114112,2130706207,-536868864,415636994,285212900,-57344,524414,-954334496,58648,-15597545,234905343,503701504,399643318,383916247,234,0,0,637,8421456,205523984,1619002400,23076866,134422576,408977436,221261872,2527360,134983728,204474944,69213248,1077936256,155197448,1073750064,1075841344]},{"sector":15,"data":[808464392,-1868559760,135070169,805316240,1074269104,1074540566,-2147213284,339755008,806699040,1077936160,339746837,1882206256,-1366253548,-1876947711,-1339031514,272631819,473959472,8389664,537804864,540020544,255868928,806240288,242233392,25399456,646987789,196096000,806174728,538722316,1073774596,1075841856,136327180,537608256,808455232,-1609732048,218192016,2527236,134983728,204480832,69213248,1077936256,541073439,1073750064,1075847232,808464415,-1868554384,269287725,805316240,1074269104,1074540563,-2147213284,289423360,806502432,1077938208,306192401,1882206256,43032593,-1870655999,-1339031514,725616651,473959472,8389664,539770944,540028224,742408200,808271904,728772656,14127264,646987790,196096000,808337416,538722316,1073774596,1075851072,136327216,539967552,808464448,-1607569360,234925200,2527264,134983728,204484928,69213248,1077936256,859840562,1074274352,1075851840,808464435,-1868549776,269353089,805316240,1074269104,1074540596,-2147213284,893403136,808861728,1077938208,910172213,1882206256,1452318772,-1878520320,-1339031514,926943243,473959472,8389664,540557376,540031296,943734792,809058336,930099248,2855072,646972430,196096000,809123848,538722316,1073774596,1075854144,136327228,540753984,808467520,-1606782928,-2147483504,34803712,805306514,537673740,537427972,1076897088,1077936134,71311363]},{"sector":16,"data":[536879152,1076897088,1077936133,54534148,52441136,1082137608,808464391,1074036748,134940688,808461120,4197424,1074273032,203436067,807682080,9580592,-16631808,16780543,-61440,103350273,33557520,-61440,103350273,402663944,-61440,100859915,268764288,104859141,101130246,1074071568,168297993,101416965,537201668,252183821,268444928,458751,743637440,1441792,-15728605,1073745407,738202883,890568748,33280,2359318,234880784,352534528,422325274,203371797,1245184,-15728637,1073744639,746198274,1407276,67113728,-61440,37748746,741104149,5465,327701,218103568,201637888,1445399851,2962748,100672768,-61440,213909532,638001667,671690504,1024141578,705511180,993214038,1597323828,3211264,-15728633,1073752319,41812492,286284816,-166063748,559620378,656563490,-517462236,792735528,825260848,355611005,251658290,268446464,393459,-214367776,983040,-200277970,-536869376,16005377,872419072,15863808,31457286,62009,3801103,100725008,956424192,318767345,268439808,655454,-1944648736,-2095148264,983040,1578106899,-536869376,6174977,822087424,16257024,31457286,63545,851983,100687888,956424192,251658336,268449536,393466,-96927264,1507328,-284164088,-536867328,377623045,413210531,10493602,150998784,15667200,31457286,36882]},{"sector":17,"data":[655375,100673296,956424192,251658279,268440576,393463,-2027028000,983040,-149946347,-536869376,8400385,369102592,16191488,31457286,63289,917525,201390352,302309376,411113097,8658580,251663104,16322560,65011722,-1726440938,36382,1048591,100727056,956424192,249,1375778304,83889923,-61440,29360134,65285,393231,117440272,84000768,251658495,268436224,458751,-15007296,983040,-15728636,-1073740033,16718593,285217024,6164480,48234504,-1944614894,983040,-133169102,-536869376,8789505,838864640,16257024,31457286,36638,720919,234905616,302374912,395777674,513087629,251658373,268439040,393470,-1961885216,1048576,-32505840,-536869120,16660737,983040,-32505804,-536869376,16660737,-687865856,386094081,268436224,983039,-1105590848,-2010671077,-1574197976,1507328,-15728636,-1073737985,467933701,681387910,11217833,117446144,-61440,54525965,521903643,-786423856,251658272,268436736,458751,655163840,1114112,-15728634,-1073739521,231671042,520093738,268446720,1442035,-669906464,-1676346093,-417356011,-1775840224,-449732818,2031616,-217055187,-536865280,330764809,362484988,551952294,781526738,13971884,301994752,6164480,65011722,-501688553,46622,3080207,100725776,503439360,251658439,268447744,393460,-971111968]}],[{"sector":1,"data":[983040,-133169102,-536869376,8721921,855641856,16257024,31457286,56854,3473425,134279696,302178304,10821289,905974016,15863808,48234504,-1541494766,983040,-99614664,-536869376,12457217,956305152,16388096,31457286,48405,524315,302051088,319283200,531305962,747775640,830877420,587202788,268437760,1704175,-401404960,-384398059,-535243241,-1759529698,-315846362,-483291346,983040,-284164086,-536869376,15677697,989860096,15798272,48234504,-1961297130,1114112,-250609604,-536868864,418059778,251658378,268439296,393465,-753794592,1114112,-149946348,-536868864,535696386,285212845,268440832,524535,-585891104,47135,0,0,0,0,637,8421456,205523984,1619002400,23076866,134422576,408977436,221261872,2527360,134983728,204474944,69213248,1077936256,155197448,1073750064,1075841344,808464392,-1868559760,135070169,805316240,1074269104,1074540566,-2147213284,339755008,806699040,1077936160,339746837,1882206256,-1366253548,-1876947711,-1339031514,272631819,473959472,8389664,537804864,540020544,255868928,806240288,242233392,25399456,646987789,196096000,806174728,538722316,1073774596,1075841856,136327180,537608256,808455232,-1609732048,218192016,2527236,134983728,204480832,69213248,1077936256,541073439,1073750064,1075847232,808464415]},{"sector":2,"data":[-1868554384,269287725,805316240,1074269104,1074540563,-2147213284,289423360,806502432,1077938208,306192401,1882206256,43032593,-1870655999,-1339031514,725616651,473959472,8389664,539770944,540028224,742408200,808271904,728772656,14127264,646987790,196096000,808337416,538722316,1073774596,1075851072,136327216,539967552,808464448,-1607569360,234925200,2527264,134983728,204484928,69213248,1077936256,859840562,1074274352,1075851840,808464435,-1868549776,269353089,805316240,1074269104,1074540596,-2147213284,893403136,808861728,1077938208,910172213,1882206256,1452318772,-1878520320,-1339031514,926943243,473959472,8389664,540557376,540031296,943734792,809058336,930099248,2855072,646972430,196096000,809123848,538722316,1073774596,1075854144,136327228,540753984,808467520,-1606782928,-2147483504,34803712,805306514,537673740,537427972,1076897088,1077936134,71311363,536879152,1076897088,1077936133,54534148,52441136,1082137608,808464391,1074036748,134940688,808461120,4197424,1074273032,203436067,807682080,9580592,-16624384,16780543,-61440,84738049,33558400,-61440,103350274,-2147087072,1572906,201326352,-2147089664,84935940,101072902,268830496,155190536,84543494,67505024,220202252,985093,-15728603,-1073740033,2904833,587208192,-61440,54525965,741081109,3478784,369098882,268444672]},{"sector":3,"data":[917503,437584704,353971244,794421,50336512,-61440,37748746,741112341,5497,262163,184549136,352468992,1496067162,419430421,268436736,1114111,992544448,1024207618,643180827,11573,393269,754974480,34914304,70386481,104072499,137758517,171444535,204475193,456071717,673326888,1449143073,876557098,6239546,117454592,-61440,239075374,268598786,2081493084,452336145,572611361,606544477,685844519,743849046,590163006,792735533,825260848,12669,2818063,100725520,956424192,251658483,268447232,393460,-197590560,983040,-233832396,-536869376,15874305,973082368,15798272,31457286,61753,1114131,167796240,386129920,512956556,251658371,268440320,393310,1580794336,983040,-133169103,-536869376,16267521,218107648,6295552,31457286,24633,3604495,100727312,956424192,385876218,268437504,917743,-2112748064,-1592286442,-1608605160,983040,-284164087,-536869376,9441793,167776000,2560000,31457286,10041,1310735,100726544,771874816,251658375,268440832,393463,-2144468512,983040,-149946346,-536869376,16201985,234886400,16322560,81788940,-2129229550,-2078370792,1245184,-116391921,-536868352,412751363,9313945,268439296,16322560,31457286,63801,11337728,1114962,-15728634,-1073739521,687801602,285212693,268436224,589823]},{"sector":4,"data":[-15924544,65307,262161,150994704,218284032,16718847,285217024,6164480,48234504,-1944614894,983040,-133169102,-536869376,8789505,838864640,16257024,31457286,36638,720919,234905616,302374912,395777674,513087629,251658373,268439040,393470,-1961885216,1048576,-32505840,-536869120,16660737,983040,-32505804,-536869376,16660737,-1191182336,520311809,268437248,1507327,-1642396096,533733147,622907680,-1658444408,734997286,2555904,-15728635,-1073733889,81265421,111085031,145164285,178260460,444730273,679815075,16329717,738205440,15929344,165675030,-49031150,-1491756012,-736041185,-1624336858,58673,2949151,369160976,302637056,352064439,530978203,651305190,833367701,318767317,268440064,655454,-686357536,-1239490024,983040,-200277969,-536869376,13049345,805310208,15994880,31457286,50718,3276815,100726800,369221632,251658373,268448512,393464,-568983072,1114112,-233832395,-536868864,514396674,285212837,268449280,524530,-1475214624,42014,3670031,100727312,352444416,251658430,268450048,393466,-1122696736,1769472,-284164088,-536866304,367661831,647503787,787229842,14954886,151003904,15667200,199229466,-1927944173,-703076074,-1256267752,-1859741921,-1892750036,58161,655375,100724496,956424192,285212911,268450560,524529,-82443552]},{"sector":5,"data":[35608,3932177,134279440,369287168,9050347,251662080,16322560,31457286,54034,1310737,134280976,335732736,11345902,352325888,16191488,48234504,-1205871340,0,0,0,637,8421456,205523984,1619002400,23076866,134422576,408977436,221261872,2527360,134983728,204474944,69213248,1077936256,155197448,1073750064,1075841344,808464392,-1868559760,135070169,805316240,1074269104,1074540566,-2147213284,339755008,806699040,1077936160,339746837,1882206256,-1366253548,-1876947711,-1339031514,272631819,473959472,8389664,537804864,540020544,255868928,806240288,242233392,25399456,646987789,196096000,806174728,538722316,1073774596,1075841856,136327180,537608256,808455232,-1609732048,218192016,2527236,134983728,204480832,69213248,1077936256,541073439,1073750064,1075847232,808464415,-1868554384,269287725,805316240,1074269104,1074540563,-2147213284,289423360,806502432,1077938208,306192401,1882206256,43032593,-1870655999,-1339031514,725616651,473959472,8389664,539770944,540028224,742408200,808271904,728772656,14127264,646987790,196096000,808337416,538722316,1073774596,1075851072,136327216,539967552,808464448,-1607569360,234925200,2527264,134983728,204484928,69213248,1077936256,859840562,1074274352,1075851840,808464435,-1868549776,269353089,805316240,1074269104,1074540596]},{"sector":6,"data":[-2147213284,893403136,808861728,1077938208,910172213,1882206256,1452318772,-1878520320,-1339031514,926943243,473959472,8389664,540557376,540031296,943734792,809058336,930099248,2855072,646972430,196096000,809123848,538722316,1073774596,1075854144,136327228,540753984,808467520,-1606782928,-2147483504,34803712,805306514,537673740,537427972,1076897088,1077936134,71311363,536879152,1076897088,1077936133,54534148,52441136,1082137608,808464391,1074036748,134940688,808461120,4197424,1074273032,203436067,807682080,9580592,-16624384,16780543,-61440,84738049,33558400,-61440,103350274,-2147087072,1572906,201326352,-2147089664,84935940,101072902,268830496,155190536,84543494,67505024,220202252,985093,-15728603,-1073740033,2904833,587208192,-61440,54525965,741081109,3478784,369098882,268444672,917503,437584704,353971244,794421,50336512,-61440,37748746,741112341,5497,262163,184549136,352468992,1496067162,419430421,268436736,1114111,992544448,1024207618,643194893,11573,393269,754974480,34914304,70386481,104072499,137758517,171444535,204475193,456071717,673326888,1445538593,876557098,6239546,117454592,-61440,239075374,268598786,2081493084,452336145,572611361,606544477,685844519,743849046,590163006,792735533,825260848,12669,2818063]},{"sector":7,"data":[100725520,956424192,251658483,268447232,393460,-197590560,983040,-233832396,-536869376,15874305,973082368,15798272,31457286,61753,1114131,167796240,386129920,512956556,251658371,268440320,393310,1580794336,983040,-133169103,-536869376,16267521,218107648,6295552,31457286,24633,3604495,100727312,956424192,385876218,268437504,917743,-2112748064,-1592286442,-1608605160,983040,-284164087,-536869376,9441793,167776000,2560000,31457286,10041,1310735,100726544,771874816,251658375,268440832,393463,-2144468512,983040,-149946346,-536869376,16201985,234886400,16322560,81788940,-2129229550,-2078370792,1245184,-116391921,-536868352,412751363,9313945,268439296,16322560,31457286,63801,11337728,1114962,-15728634,-1073739521,687801602,285212693,268436224,589823,-15924544,65307,262161,150994704,218284032,16718847,285217024,6164480,48234504,-1944614894,983040,-133169102,-536869376,8789505,838864640,16257024,31457286,36638,720919,234905616,302374912,395777674,513087629,251658373,268439040,393470,-1961885216,1048576,-32505840,-536869120,16660737,983040,-32505804,-536869376,16660737,-1157627904,520311809,268437248,1507327,-1642396096,533733147,622907680,-1658444408,734997286,2686976,-15728635,-1073733377,76940046]},{"sector":8,"data":[111085031,145164188,178260460,444730273,662969251,737486996,520093925,268446720,1442035,-669906464,-1676346093,-417356011,-1775840224,-449732818,2031616,-217055187,-536865280,330764809,362484988,551952294,781526738,13971884,301994752,6164480,65011722,-501688553,46622,3080207,100725776,503439360,251658439,268447744,393460,-971111968,983040,-133169102,-536869376,8721921,855641856,16257024,31457286,56854,3473425,134279696,302178304,10821289,905974016,15863808,48234504,-1541494766,983040,-99614664,-536869376,12457217,956305152,16388096,31457286,48405,524315,302051088,319283200,531305962,747775640,830877420,587202788,268437760,1704175,-401404960,-384398059,-535243241,-1759529698,-315846362,-483291346,983040,-284164086,-536869376,15677697,989860096,15798272,48234504,-1961297130,1114112,-250609604,-536868864,418059778,251658378,268439296,393465,-753794592,1114112,-149946348,-536868864,535696386,285212845,268440832,524535,-585891104,47135,0,0,637,8421456,205523984,1619002400,23076866,134422576,408977436,221261872,2527360,134983728,204474944,69213248,1077936256,155197448,1073750064,1075841344,808464392,-1868560272,135070169,805316240,1074269104,1074540566,-2147213284,339755008,806699040,1077936160,339746837,1882206256]},{"sector":9,"data":[-1366253548,-1876947711,-1339031514,272631819,473959472,8389664,537804864,540020544,255868928,806240288,242233392,25399456,646987789,196096000,806174728,538722316,1073774596,1075841856,136327180,537608256,808455232,-1609732048,218192016,2527236,134983728,204480832,69213248,1077936256,541073439,1073750064,1075847232,808464415,-1868554384,269287725,805316240,1074269104,1074540563,-2147213284,289423360,806502432,1077938208,306192401,1882206256,43032593,-1870655999,-1339031514,725616651,473959472,8389664,539770944,540028224,742408200,808271904,745549872,14127264,646987790,196096000,808337416,538722316,1073774596,1075851072,136327216,539967552,808464448,-1607503824,234925200,2527264,134983728,204484928,69213248,1077936256,859840562,1074274352,1075851840,808464435,-1868549776,269353089,805316240,1074269104,1074540596,-2147213284,893403136,808861728,1077938208,910172213,1882206256,1452318772,-1878520320,-1339031514,926943243,473959472,8389664,540557376,540031296,943734792,809058336,930099248,2855072,646972430,196096000,809123848,538722316,1073774596,1075854144,136327228,540753984,808467520,-1606782928,-2147483504,34803712,805306514,537673740,537427972,1076897088,1077936134,71311363,536879152,1076897088,1077936133,54534148,52441136,1082137608,808464391,1074036748,134940688,808461120,4197424,1074273032]},{"sector":10,"data":[203436067,807682080,9580592,-16633344,16780543,-61440,86573057,33557512,-61440,86573057,402663968,-61440,100859915,268764288,104859141,101130246,1074071568,168297993,101416965,537201668,252183821,268444928,458751,743637440,1441792,-15728605,1073745407,738202883,890568748,33280,2359318,234880784,352534528,422325274,203371797,1245184,-15728637,1073744639,746198274,1407276,67113728,-61440,37748746,741104149,5465,327701,218103568,201637888,1445661991,2962748,100672768,-61440,213909532,638001667,671690504,1024141578,705511180,993214038,1597323828,2818048,-15728633,1073750783,41812490,286284816,-166063748,559620378,673340706,1076832481,813379631,3243313,721424128,15929344,31457286,62265,3014671,100725776,956424192,251658484,268448768,393458,-231144992,983040,-250609606,-536869376,15808769,285217536,6164480,65011722,-1827107817,33566,1245199,100687376,956424192,251658334,268448000,393464,-130481696,983040,1611661325,-536869376,6306049,922750720,16388096,31457286,64057,524311,234942224,302374912,396564098,513939617,251658400,268437760,393455,-1877868064,983040,-284164086,-536869376,15677697,335548160,16191488,31457286,34606,1376271,100726544,771874816,251658368,268441088,393463]},{"sector":11,"data":[-147258912,1376256,-116391922,-536867840,378081796,513022081,318767236,268439296,655609,-1709833248,-1910597352,983040,-116391920,-536869376,16333057,-1744830464,386093568,268436224,983039,-15071808,-14156005,-13893848,1507328,-15728636,-1073737985,469703173,687810559,16722943,285217024,6164480,48234504,-1944614894,983040,-133169102,-536869376,8789505,838864640,16257024,31457286,36638,720919,234905616,302374912,395777674,513087629,251658373,268438016,393255,658047456,983040,-116391922,-536869376,9113601,-1124073472,386094081,268436224,983039,-417724992,-1624780773,-1490319832,1507328,-15728636,-1073737985,468064773,682371025,10890127,117447680,-61440,88080403,622566939,-1658444408,734997286,3339570,738205440,15929344,165675030,-49031150,-1491756012,-736041185,-1624336858,58673,2949151,369160976,302637056,352064439,530978203,651305190,833367701,318767317,268440064,655454,-686357536,-1239490024,983040,-200277969,-536869376,13049345,805310208,15994880,31457286,50718,3276815,100726800,369221632,251658373,268448512,393464,-568983072,1114112,-233832395,-536868864,514396674,285212837,268449280,524530,-1475214624,42014,3670031,100727312,352444416,251658430,268450048,393466,-1122696736,1769472,-284164088,-536866304,367661831]},{"sector":12,"data":[647503787,787229842,14954886,151003904,15667200,199229466,-1927944173,-703076074,-1256267752,-1859741921,-1892750036,58161,655375,100724496,956424192,285212911,268450560,524529,-82443552,35608,3932177,134279440,369287168,9050347,251662080,16322560,31457286,54034,1310737,134280976,335732736,11345902,352325888,16191488,48234504,-1205871340,0,0,0,0,637,8421456,205523984,1619002400,23076866,134422576,408977436,221261872,2527360,134983728,204474944,69213248,1077936256,155197448,1073750064,1075841344,808464392,-1868559760,135070169,805316240,1074269104,1074540566,-2147213284,339755008,806699040,1077936160,339746837,1882206256,-1366253548,-1876947711,-1339031514,272631819,473959472,8389664,537804864,540020544,255868928,806240288,242233392,25399456,646987789,196096000,806174728,538722316,1073774596,1075841856,136327180,537608256,808455232,-1609732048,218192016,2527236,134983728,204480832,69213248,1077936256,541073439,1073750064,1075847232,808464415,-1868554384,269287725,805316240,1074269104,1074540563,-2147213284,289423360,806502432,1077938208,306192401,1882206256,43032593,-1870655999,-1339031514,725616651,473959472,8389664,539770944,540028224,742408200,808271904,728772656,14127264,646987790,196096000,808337416,538722316,1073774596]},{"sector":13,"data":[1075851072,136327216,539967552,808464448,-1607569360,234925200,2527264,134983728,204484928,69213248,1077936256,859840562,1074274352,1075851840,808464435,-1868549776,269353089,805316240,1074269104,1074540596,-2147213284,893403136,808861728,1077938208,910172213,1882206256,1452318772,-1878520320,-1339031514,926943243,473959472,8389664,540557376,540031296,943734792,809058336,930099248,2855072,646972430,196096000,809123848,538722316,1073774596,1075854144,136327228,540753984,808467520,-1606782928,-2147483504,34803712,805306514,537673740,537427972,1076897088,1077936134,71311363,536879152,1076897088,1077936133,54534148,52441136,1082137608,808464391,1074036748,134940688,808461120,4197424,1074273032,203436067,807682080,9580592,-16632064,402664191,-61440,100859915,268764288,104859141,101130246,1074071568,168297993,101416965,537201668,252183821,268444928,458751,743637440,1441792,-15728605,1073745407,738202883,890568748,33280,2359318,234880784,352534528,422325274,203371797,1638400,-15728637,1073746175,194251524,353141004,2032938106,419430421,268436480,1114111,-1727331264,211422219,741104149,5465,327697,150994704,688046080,2962736,100672768,-61440,213909532,570631938,553986820,1023946503,688531465,1060312361,1597323828,4194304,-15728633,1073756159,41812497,286284816]},{"sector":14,"data":[-166063748,559620378,656563490,-517462236,742272040,774710061,1076832294,544944175,857832753,708129595,1446794805,983040,-217055189,-536869376,15939841,771755776,15994880,31457286,62521,3407887,100725264,956424192,251658482,268450304,393457,-247922208,1245184,1578106897,-536868352,411834115,8593043,318770944,6164480,31457286,24121,3211279,100726800,956424192,251658488,268438784,393312,1614348768,983040,-99614665,-536869376,16398593,134223616,15667200,98566158,-1558805998,-1575444201,40990,589839,100724496,302112768,251658384,268438016,393255,658047456,983040,-149946348,-536869376,8859137,352325376,16191488,31457286,32814,1441807,100726544,956424192,352321783,268439040,786681,-1995307808,-1810333418,33822,983059,167835920,369352704,513349786,251658382,268439552,393465,-113704480,0,55705782,327695,117440272,84000768,251658495,268436992,458751,-16449088,983040,-15728637,-1073740033,16718593,67112704,-61440,29360134,65307,1114129,134241808,302178304,9181064,838864640,16257024,31457286,34334,3276815,100726800,503439360,385876111,268438272,917600,-1978530336,-1927833834,-2061593320,983040,-32505842,-536869376,9113601,268439552,16650240,31457287,65081,872419072,16650240]},{"sector":15,"data":[31457286,65081,31588352,1770324,-15728637,-1073736961,446827783,665000843,731916418,10573563,67115776,-61440,132120594,-1977950195,-1876432613,-349457112,54870,458783,385875728,453394432,-803267682,550576159,639993893,-819255651,218103851,268436736,327679,192,393229,83885840,49152,738205440,15929344,165675030,-49031150,-1491756012,-736041185,-1624336858,58673,2949151,369160976,302637056,352064439,530978203,651305190,833367701,318767317,268440064,655454,-686357536,-1239490024,983040,-200277969,-536869376,13049345,805310208,15994880,31457286,50718,3276815,100726800,369221632,251658373,268448512,393464,-568983072,1114112,-233832395,-536868864,514396674,285212837,268449280,524530,-1475214624,42014,3670031,100727312,352444416,251658430,268450048,393466,-1122696736,1769472,-284164088,-536866304,367661831,647503787,787229842,14954886,151003904,15667200,199229466,-1927944173,-703076074,-1256267752,-1859741921,-1892750036,58161,655375,100724496,956424192,285212911,268450560,524529,-82443552,35608,3932177,134279440,369287168,9050347,251662080,16322560,31457286,54034,1310737,134280976,335732736,11345902,352325888,16191488,48234504,-1205871340,0,0,70,-2139062192,809320448,1075585036]},{"sector":16,"data":[624951811,805306514,1075840048,1074016291,608182284,537669680,-2147205092,1073743424,1075839808,1075851268,1077936133,54534148,-1842335696,31850496,3014655,-16728003,-1073732353,1996450832,1778346751,1811895807,1560239103,1677680127,1711236351,1728015871,1593793279,268435711,415245568,524287,741540160,570425568,402662144,1703935,-9238720,2113895795,2125656105,-261048848,-1427080775,11464827,587213568,-65344,171966498,729022323,-260101121,-1141866823,2008412272,-260457744,-1359971414,1739976808,50672,2359339,587202328,436879360,454761215,723331867,2104695923,-265716452,-1259307343,2042163312,-260331024,822083757,12592128,2686975,454691904,454892314,1932132137,-260082916,-1259307336,2008936560,-260460048,-1376748631,1740632168,50416,327729,687865624,218906624,1075449182,458955546,724056616,1551051613,2103213427,2125459497,-261049360,-1477412426,11268219,83900160,-65344,239075374,437083661,1562057307,674899995,1932083241,-260082852,-1276084554,2008543344,-260460560,-1410303065,1739780200,49904,393286,1040187160,51593216,637993762,136775687,168372233,-267711959,205327371,437091853,2065373792,657139483,724052520,1601383293,2105310579,1890644009,-260458512,-1393525848,4980736,-16728058,1073759231,52560661,134686215,671680551,170461705,202108939,2114784317,444275213,656112923,707274539,694167848]},{"sector":17,"data":[2138267507,-261047056,-1326417998,2074669177,-261575440,-1007654978,0,61079590,-2145189872,134217472,1879130112,49648,-2147090416,134217472,1879130112,49392,13172736,1245621,-16728003,-1073739009,1895786499,16738303,587207936,-59392,79691788,544940153,544276265,1376256,-16728029,-1073738497,2065725700,1895790368,352321568,402662400,851967,544801984,-14081925,8304,-1071382507,218103552,2030354432,1998617376,2126079,83891456,-59392,79691788,544940153,544276265,1376256,-16728059,-1073738497,2065725700,1895790368,419430432,402654720,1114111,2114651840,544866061,-14081925,8304,-1073348583,285212416,184991744,2046758270,1998617376,2126079,0,0,1142969165,1444959055,1769173605,891317871,540028974,1126777640,1920561263,1952999273,943272224,959524145,1293955385,1869767529,1952870259,1919894304,1766596720,1936614755,1293968485,1919251553,543973737,1917853741,1919250543,1864399220,1766662246,1936683619,544499311,543976513,1751607666,1914729332,1919251301,543450486,26]}],[{"sector":1,"data":[25975373,14,4063264,30212095,128,25362448,30,1]},{"sector":2,"data":[1179864142,4410965,1142969165,1444959055,1769173605,891317871,540028974,1126777640,1920561263,1952999273,943272224,959524145,1293955385,1869767529,1952870259,1919894304,1766596720,1936614755,1293968485,1919251553,543973737,1917853741,1919250543,1864399220,1766662246,1936683619,544499311,543976513,1751607666,1914729332,1919251301,543450486,0,0,0,0,0,33423371,268435456,186646784,0,1048832,729089,510,16781312,47136,12517632,16828417,-721420030,54272,0,13893845,4140801,0,0,0,0,0,-256,255,0,-256,255,0,-256,-1,255,-256,255,0,2573,167772160,4269056,542330289,542330692,1936876886,544108393,808463925,692267040,2037411651,1751607666,959520884,825045304,540096825,1919117645,1718580079,1866670196,1277194354,1852138345,543450483,1702125901,1818323314,1344285984,1701867378,544830578,1293969007,1869767529,1952870259,1819033888,1734963744,544437352,1702061426,1684371058,7930144,983218,688,0,1431257856,1498567758,1398362926,11665427,-2135948720,91493628,154074926,1928870912,503762689,-1202708906,-661782528,-469332136,-502886655,-637090303,113639681,-973078053,122118,1431458131,-1560586410,-922877471,477394296]},{"sector":3,"data":[125094142,343197950,-1962933827,31236805,31067776,7596034,1105934706,31604420,1912629480,1364414510,-1207558574,801968679,1499078407,343038043,31538816,-1610255359,803930587,-1610383128,669712859,-33432670,-1610490618,1048576475,1946223069,31170582,1381061456,666371614,120573202,1532582431,1608086104,1499094366,-515997605,141885953,74825738,32247435,-1982920929,-1996361698,-1996362218,855763982,1044283593,477364482,918902302,1418527202,102650632,649615190,1596968210,1528760158,334176094,33429133,1443241555,304527447,1583296461,1918574343,-338130172,31171079,31262462,-291435150,-266958079,38387201,-1023409688,868823895,37546194,1726546803,314999553,1946238080,22407427,-1961587898,378077772,243859942,113705448,131562,1912739304,1175227232,1074039622,-368705216,-365002495,1912667137,-368695000,244011265,378208744,369295846,-779943446,-401700608,-434730751,31516673,-950457742,125446,-266958080,32416001,1963082811,72629001,-771023500,872616564,-1377679802,31131334,14870797,14674265,-1996204917,-1962807274,1284180564,27322380,210496370,1448560198,38046289,116843570,1946288602,-599883740,108396289,-379625895,104464551,2020934108,112985,-635010991,116850177,1963065818,11593733,1418420850,105679620,1408054096,1460018769,304658518,1600008141,1532567303,-1167691176,12125001,1364414465,1448543774,-854447688,123690543]},{"sector":4,"data":[1482381599,116804466,1946288602,10283013,1290280683,1963015168,1166747156,57254680,440765222,-1593611357,1436746224,20506627,56581721,1229342260,1946220931,-11081469,31065846,-167283710,16898566,-336065675,31171086,-346071463,-620313082,1610154241,1963408579,1032005142,1460696064,-1960423088,46629645,-1426866126,-1017161639,1254589265,1192069926,87565895,-2144988300,91488573,-351942781,667386627,-335942686,1963015181,-336050428,2110006789,-1017513983,31532682,1946483840,31236128,-2147121114,16899134,-953806220,55640389,56462374,32245447,1542127621,-334591161,55688705,-1001367802,637657662,-1988213365,-1960437692,-1996455803,-257877436,71600385,1392992088,1963261056,113672968,-352315207,-2095281382,50457646,32247435,41405243,-880082197,1192069414,1531332167,32247433,32245379,-1012600061,1364454707,1448543774,-854447944,123690543,1918589215,38386207,12186251,1381061377,1448543774,-854447688,123690543,1532582431,65733234,-1023288414,55688784,1094782091,16316801,-1185854090,-1527578376,-118914727,55163392,-108924277,578158848,16824657,508711251,-1202301178,801968681,520576862,1918589274,1503982368,16836993,1364448235,1460018770,304724054,1600008141,1499078407,-217943461,-1094494044,503710281,872319751,33601984,-1410078255,-1205971449,801968684,-1014079969,-148440949,-2147482555,1465266036,-1190475901,-1977221112,1948269573,1191479302]},{"sector":5,"data":[854843974,1594132672,112990,1444861579,649615110,1596968210,1931435527,9103619,-1175922549,505246208,112785494,1932512513,1979136789,-1931965423,1975598017,-971022839,1090640646,526276075,105993047,31604420,1633535014,1091537702,-1086110911,243859588,-1048379264,1959332862,126494221,1128727944,16352073,1493693301,-257859749,8561409,8394381,-1124054343,1444806668,-1202497786,801968683,1577541467,505115167,-1202256298,801968679,526255967,-2094650254,762642237,-381828058,20840240,518026240,1398212182,-854446664,123689775,373104478,-959679488,1090640646,113690091,-348061221,1397801933,548951814,1915735314,651899711,381164938,1915735314,1166747187,1569400327,38387465,33474433,1962950019,-25328888,-352160512,1964849425,-29017848,-336002187,82805515,495575787,-117553783,1482360671,47299,1101256846,36235266,-1212540302,264405769,-355341615,-355341615,-1995324797,-402530794,65732694,-167567896,-2147362298,116789621,1952448986,28239882,243271026,1343226330,650130182,184560801,-1912113984,1224784064,1476862413,31065846,-1156221936,1051983876,-2092228147,-160104197,378220980,65733086,-1605585672,567083488,102637062,857671454,-1094110254,210370688,-1107146305,-1527578495,520140223,-2029893186,-2029894394,-2029893882,-1996339962,855786806,-2083376183,147262,-1947712395,1158055690,1191610114,1158055682,1161201922,-683769598,1962987776,16050200]},{"sector":6,"data":[31067776,-635010944,113700609,-1207959072,233504769,-717324144,91555072,37619398,37724929,116831723,1954546138,12708099,37699203,-1925547008,1442971198,38248784,38077993,38090379,-1957114229,-217954506,-29454940,28925441,178944,45482162,37822094,-402609474,243270154,-351796774,33129233,243271541,-352058918,-636583931,116793345,1963459034,-637077912,1634993153,33439373,37633664,856521728,-652309523,512630272,-343211813,8290366,1040937984,637552266,1195705736,-1960841493,-959892489,378339332,1320419838,141697485,-636583688,501956609,-1191181384,45809665,-1241468416,1092521727,9747970,-972977688,33677318,-1022943239,19707934,-1191181893,-4849664,12452018,1092521472,23652354,1946234429,-169132029,856081183,-854281024,1975519791,-1271943136,773967157,722572,152996142,521018880,-1342173766,-853167057,-336060639,178205,-1157627463,11665410,512688054,-1614937535,18671616,31459014,-1022887600,106058576,-1899416745,-1191234623,11670062,109850573,1049166055,783810789,-855461358,-284783569,-314668800,305051648,801965234,16713356,16596617,-1307431240,-1943024378,-1996430586,-402595522,109839849,1049166047,109838557,1049166075,-722992903,-217674746,-247559936,305051648,801966258,17237644,17120905,18351815,113641997,-953941663,72966,520537856,-402650623,1049167820,434635017,3074048,1358971368,1912623336]},{"sector":7,"data":[123689224,-346530982,214205188,1448133625,1660991518,119415245,-1995935201,-1946087114,1577128710,12108632,47940,567136819,-2147359104,28836302,-1021194940,-1153171272,-768409599,-830463539,1140963329,-1262280243,1025625392,57999365,1025043448,91422722,-335544389,178947,-1191181896,11665408,-1007026250,1431393104,-1957558697,354322921,439781377,46589953,477415691,91614475,-352311576,28370947,-396752782,1594294533,-998046485,82573574,-111517945,1499268722,82532443,-116865917,1381191875,18161291,1979710339,2942981,2011694059,-1274055936,47961,-466476595,-116996989,-75296533,990606591,-402164543,-998047568,57866502,-1017619622,-2095118818,460653049,-1977220428,522308885,-1310145910,520494592,-1977219213,567083349,-1274024968,1959332610,361375241,1229398477,536408949,105928643,519736147,-1327920377,-1359807462,-651492491,1540066123,-1017161721,-921976781,102649716,-1958693857,33129431,567093365,-1977200609,5957637,520494680,-1258813837,567099968,1031808668,-1962773222,-821957695,-268274,1364531947,-1946179864,567106025,199950963,125093947,1979246651,1572965122,666419999,310016,-2134703691,292880382,1971373814,-1928913396,-1191110594,15204354,1460061183,17907396,393543435,4031270,638612728,124912954,21314086,1207501175,1609165639,110084871,-617414373,922194579,-141360865,-2097078474,91621882,-348667264,818053123,-1073004206]},{"sector":8,"data":[-620034955,-108840588,-2146601725,1965820540,674692869,585842945,1963391363,175931405,-16419540,1090594870,-108850965,-2146732791,1965820540,674692869,865288449,866642898,-4181038,-1023337674,-921972173,632562036,942014640,638219557,1946248504,1975794180,92939790,1946113000,1111967489,1457747273,-317994361,-2092092556,73022,1149905781,640680966,1963017530,1008659202,184841520,50623698,-2132284620,-16704962,1111623797,1330596169,-4586517,-114599937,1610484456,-352095399,-1957588891,108822730,185431040,1225159881,-347650231,283860481,58050827,-2096501922,41287673,-16004813,1465203828,-919383802,18693763,-166497024,1963919172,41731080,-352167192,24832000,552076267,1493660160,1583177479,-998046485,1048836362,1962934557,-385650171,113770286,285,-1580059709,113705245,655647,1493086184,18974600,1090224963,-119012491,1976172033,168671470,18974601,-387431613,1398194945,-919341517,1979711104,163351304,-337671423,46593573,-1128003468,-1014234899,322771179,1024291328,142016551,16366788,116114316,14531780,-75250804,-2146011649,58064894,-1559434247,-4718307,114175,-336005581,16483084,1424491380,80118528,184972024,-352160311,-25125729,1378448641,1460031829,83933264,-12832819,-1962314408,84064472,32190413,1594192889,116087047,-402209661,1516044300,248447467,1543502824,1347928926,855637945,-139529536,1599621585,33260483]},{"sector":9,"data":[1048780149,1962868997,-49898,-1588589707,520028445,-346554107,85917444,857402113,-98103,-1977219468,166396749,1966422062,1300901380,80184067,-131238919,427084043,1962933888,87762437,992871403,-352160507,91506953,-352008317,208861667,-117440896,118358645,41747238,-315488654,1192069670,18286278,-617364736,425088,-2016997003,757072161,-2017049789,1126170913,1560323816,-768353485,18288264,973685898,706639553,-152007999,1954547524,172263956,18974600,1090224963,2095580021,1976499712,142377196,940405760,141756492,-1979167702,139234001,611633419,252134646,1156975733,108269575,1191545382,-2007498261,1124147591,1967192963,4319235,-596260354,-2147007242,-167110539,1149899892,562530314,-75283711,-402426560,-822214621,1157033077,141889287,268911862,216728180,141873674,18548367,-126498050,1426064104,1460031939,-880081122,1049484083,1961361697,1594192635,82532615,-116996989,1156996547,309669895,1342540326,-61151167,-1977219469,-128974523,-1977217557,1958742533,-348043516,1442393077,328131,83885825,2017792256,1684956532,1159750757,1919906418,238101792,-952201977,549552909,328387,603980041,872415744,1258291968,1442841600,1644168704,-2097150208,-1694496768,-1291843072,-1040187648,1867780864,1634541679,1881176430,1835102817,1919251557,1699879539,1919513969,1881171045,1835102817,1919251557,1936289056,1735289203,1986939150,1684630625,1769435936]},{"sector":10,"data":[258499444,1635151433,543451500,2004444523,610562671,1634885968,1702126957,1635131506,543520108,544501614,1629515369,2003790956,1914725477,1701277281,1918980123,1952804193,1981837925,1702194273,1953459744,1819042080,1684371311,1918980123,1952804193,1981837925,1702194273,1953459744,1819042080,1684371311,1986939153,1684630625,1918988320,1952804193,1343124069,1702064737,1920091424,622883439,-1928917455,-2129794242,-1023345983,100664831,1572865,2883586,4128771,4981036,7340333,9503022,1668172055,1701999215,1142977635,1981829967,1769173605,168652399,540091670,1701997665,544826465,1953721961,1701604449,269094244,1701603654,1953459744,1970234912,168649838,1634683943,1663071076,1953396079,1932360050,1768121712,543385958,1868983913,1952542066,778989417,168626701,1397509668,1129207110,1683708704,1702259058,1885035834,1567126625,1701603686,1701667182,218762589,538997770,1769104475,1564108150,1952542811,1768316264,1634624876,538994029,1701860128,1768319331,1948283749,1713399144,543517801,1953394531,1768843617,1663068014,1953396079,1932360050,1768121712,224618854,-1307586038,-1342170336,1868983913,1952542066,778989417,118360589,250232461,19186049,-1308616253,-1342138624,255,65280,1566244864,725499004,2243389,537315118,-67108848,319719726,113716752,4117,671532846,771751952,270075591,-953286656,1527821318,113716829,1014763702,-1207515346]},{"sector":11,"data":[774585872,280626887,-504874179,-1206684924,643039231,975576459,-1207733489,-379912190,-1993473757,1393566262,512578903,-164753366,537927942,-391363723,1014105457,1946473960,84338743,-164751243,537927942,-1645738635,774302468,270599926,1310618689,-2010244117,1966947335,243281414,1124143137,1929730792,-2010207035,-1091878137,914959950,-970059753,-1993474041,638592542,915217803,-2144464854,913583932,574390318,-164755340,17834246,-1977199499,-466484921,319174958,772961040,-787475551,54739936,529213144,-352286488,113716841,69653,-1977196309,-466484921,65065280,260712152,-921965262,1396903796,-400585946,1935343814,-498908351,113716978,200725,-1977207573,-466484921,65065280,126494424,-523115470,651690816,-315486326,259311883,-1960422589,6154271,1124823899,787669571,269813447,1599930372,244002395,-1590816749,-1959915499,772806454,270079627,454986286,1355020304,-1459123418,91553794,319225646,1015033360,-1457949440,158662657,352765742,-352321008,61886478,-1628897356,65755136,1476468200,1438906819,1334453841,200094216,-1928497975,954730863,-402099454,-152961010,772205561,271068809,-1017292296,8290342,1157854208,-1018824981,554598446,-957870064,776631039,270608000,-1590800145,-970256348,570818862,-1959897072,772809782,1962949760,2088775206,158677759,352765742,-352319216,1065559583,639202304,67575,-953281931,34608390,-402003200,-336068458]},{"sector":12,"data":[183236877,-1274826672,256255,1472460888,75467558,423528750,92808720,23431206,681651792,1166616080,20731906,-1993995659,-1993997227,1525352013,108331580,72714534,121393387,138209396,104653940,-2010773899,1055589461,259327036,270704942,1166616128,1569465860,640412422,637826441,1342590348,38270502,-1341885439,638184196,33703926,45090164,1476435432,38270502,-402426864,-1017184148,-1123629522,642777104,-1073018997,1397758069,-953264302,152048902,-1325419520,-10754045,1482381919,65733355,-1450170389,309592576,352765742,-402653168,-2094136934,152048958,11079541,772437024,269813447,-1159200768,1048587776,1963004093,1048784399,1962938389,113716743,593941,1448133464,168069678,1008366784,772633914,97408,-970062219,166395908,1929555688,-347716095,-1017618721,-796241322,-402355666,208798363,208977930,771755240,32179336,-387234234,1019436634,1007448960,1011184225,608270202,1396567007,1049450246,-92270417,-1929087996,772844094,393483576,240275792,-1973046265,-17470,-1174403655,567148543,777541978,771841419,1124287886,645934147,1527209943,1915763907,2000239624,-131060732,1355020739,643256915,637960075,-1073085046,-4979595,-953284117,152048902,-1325419520,-28317693,1482381919,1381322947,771928662,-119012214,-398691839,-164692115,135274758,1027345780,-2144985227,1962934654,773057393,270599926,1007580176,638219578,32384,-347710347]},{"sector":13,"data":[1178216028,169702656,1179808960,638839621,1962952250,-1976678843,975586564,980746310,-1477753530,554104366,259276816,38270758,125042720,8290342,639792128,1050615,977016948,-2144990859,1962934398,1007610637,638022912,973110912,-336002188,914959878,1593315364,-1017619110,777410384,270679691,168069678,-401378112,611647583,-1123629522,777912592,1593836742,777928683,1593836742,17299238,775058688,269813447,703266818,-1976674728,1958742532,3008542,417860468,1191342849,-347715770,463613673,80096784,-1993455872,1578112830,11098207,1342796802,95485876,1492990184,-1924049981,-1190087650,976093193,1124365319,1497495778,-391330981,410255394,1962955752,116796950,1948258337,116797165,1950421025,116084233,-134091783,-1007107250,222056787,3943796,171714932,-2144983692,1912734333,651899678,-2096931446,-2144992061,225706041,-1977169613,975586057,-503024639,1494039800,1364443995,453428782,-2144460784,-552591066,913580092,846465340,829697084,209002556,1965046912,1176547335,518766650,41779238,857174529,1300899529,1959332611,244491,20588099,-119404684,1532567612,463613635,116796944,1963003937,243281414,975179809,-1914180672,990915118,1007318237,-117213905,-336064789,1966029835,243281414,-130019295,1398152899,507413294,661979152,1381047888,856053079,-1193373962,567108352,-619979892,1516199175,1951932249,914959913,-1993469924,772808222,270284427]},{"sector":14,"data":[505318958,3965712,70914164,1144653938,-117213439,1178994155,1543039979,1740840798,264483334,-20480,-1,-1,4457851,22806528,28705280,1112670646,-1064507253,234885125,303903,787971,244039822,-108331002,-34108593,-1202674445,-883949516,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704,78708751,-789068149,-628299565,74698795,-768878452,-268181293,-947135858,-388771593,-802438516,-1064565645,-522989013,-1030817789,1322289836,1187548077,-31145334,91598908,-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094,-1031072797,-1064385789,-2080863315,292880383,-501415642,16417267,-2129234704,-351272766,1086360796,-276578162,486614544,-339702200,-1950118942,-1962932162,50334262,33948144,1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602,482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,357488,10682520,73531566,2492,0,0,0,0,0,0,0,0,0,671154176,19994475,2054,538990147,538976288,541937475,0,0,671154176,20191083,716,1145128274,538985805,542397233,0,0,671154176,20256619,452,1347635524,542720332,543119699,0,0,671154176,20322155,11186]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[-1,92258387,1329792439,538976334,8224]}],[{"sector":1,"data":[]},{"sector":2,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-65536,-1,-1,-1,65535,83886080,85722382,88868148,774832127,774778414,-53714,-65536,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-65536,-1,-1,65535,-1,-1,-1,1392508928,-702640813,1200565764,1200369164,-875865330,1929802529,1929802502,1929802502,1929802502,1929802502,1325822726,1929802514,1929802502,1929802502,1343107334,1448563027,81141389,771752127,-1943126135,788267599,-16482429,-2094117259,1979647615,935669319,1476803780,1979711293,-31995,1448556148,-1929377607,1955400317,1587999498,1976116063,1166747166]},{"sector":3,"data":[1200172550,784370692,637945737,772294027,-1945614455,1200172736,637922058,-1091879484,209699886,38111782,1930706072,-1950350576,-1795215632,141690255,-352311320,2287647,209699886,187613235,158601799,306655534,-343932915,30179331,54888742,1532583774,1398000472,1606692446,1560227340,-13739260,-121436065,319211715,1711756551,-33223161,327684,0,-58656000,1010070957,-402230000,-346685382,1929657362,844125734,1492159460,-13699581,1342600596,-1959332725,91359300,-335544795,68867,138709302,785342040,109260543,-1140850760,-1007156992,-197229778,58064644,1396173816,1448563281,521012766,-200373458,181921796,-922018446,-336067723,378154518,777127894,131466950,-555184120,-2010228223,117954070,1516199455,516119385,1048587782,1946226216,236916276,922693127,-1993472780,-402328546,-1892809577,1913030406,88205330,-1957556878,7923923,-133926310,784539399,109524735,-200896722,520616196,512437955,-75299596,-1207601665,-1007091711,1344193528,240603475,244511,1966894,503524869,-472840946,830462267,108863117,-1962933319,637831991,1128465801,-203274425,-1962275352,1959332620,-213498364,168290469,-922022773,1178993780,-336026125,1499461889,-1021355941,-2118626480,-119895123,1482371021,195]},{"sector":4,"data":[0,0,0,0,0,0,-469042432,-58687628,1349874961,91554364,1357449392,1963015173,-384913403,71042375,279971189,1006976745,-1341819630,87419144,91558204,753471152,1964260357,-384782331,591136035,145753461,1006981865,-1341819614,88729870,91563068,1089015984,1966095365,67076126,145753461,-2147130391,91554559,1508445872,117407749,279971189,1476743145,-986775762,-13722617,1342686494,-1676692397,-987824338,-710791673,645934599,1535051733,1929579240,113651214,-1342175272,-1528262640,772467457,197396166,-1528262656,1355765763,285456467,281926450,1354979419,-1959898543,772079118,131475082,973441574,1360295108,72190758,-503847886,394585,-471664637,-2096829447,1526204103,-389851047,1381172145,-617426381,57999784,1426101225,1048587856,1946159064,-1192260857,569053440,772866744,131481216,-1340705784,1048587777,1947076566,772059148,131481216,-352160752,860888671,-1596420416,136578183,91496280,-346203911,1048587883,1946160068,857624612,-2584896,772048694,201840032,58976384,782033970,130359039,-1895590424,520390406,101396056,281873346,1964052541,28594441,-855242823,-953263856,770566,-14424064,44588376,777001332,131612288,-1207602176,99292160,840171960,-401551909,-128385275,333994842,49923]},{"sector":5,"data":[0,0,0,0,0,0,1460011008,12079187,47899,235526847,1007734023,-133991141,1492713963,-1022927013,-2168749,-1959915662,-1979056866,1975519939,32241923,-389850120,393412552,-1928964525,772397622,-1912447861,881536707,121932326,-1017422329,1964025856,10086659,174891566,-1342130096,-12832819,-352160424,1048588012,1946159064,860888609,-1948741952,67110343,8168442,8259212,-844943621,109850119,525862863,-164702741,1074424838,1461594740,-1900006576,-1959855400,-1995978434,771783742,130891401,-885093586,2118027527,1049177600,1492846543,-857006241,1347755526,-1202564781,79106352,-1070395187,-1980049266,-1946125266,-83853818,-852588242,109850119,1499072463,526211163,1948297223,1048587867,1946159064,860888596,-86470976,17579657,17696396,-350267141,62346109,-700547026,343148551,-2144468297,235394622,112659060,-700547026,527765511,508711248,817386758,856739089,-86470976,17575561,17696396,520576507,1532516698,980713640,-666992594,343146503,-1070378978,-1980049266,-1946087362,-83815930,518725464,860903198,-86470976,-784430290,272533767,1049308673,1049167827,1492844818,12787551,0,917504,0,0,0,0,1048587776,1946160047,28899589,-970013952,17542918,1448235347,235282007,839323167,-710922524,787516167,133792906,91602954,1929265640,448024687,2142306736]},{"sector":6,"data":[196089485,645017549,578098748,-1237417938,443875595,-1069645010,309598475,113716824,1051586,-1006189010,145752331,777521131,197396166,-694014464,244002311,-108854028,1361409279,-1979351832,477256153,-669087698,1960512007,-57939946,-1993470350,-1945391810,1049177799,65735595,133808179,1516134175,-970040487,765702,1448170435,772152919,195772043,-1959868530,839626046,-710922524,787516167,131695754,131572270,225706920,771817657,131481226,1929144552,1949345804,-38148091,-336067726,-104844541,1583292167,12802905,-1677721600,1347637586,781979572,130359039,-1021408978,-1677478900,-987824338,378088967,1532497093,-1013097895,1347637916,-1959918924,772588318,214242955,520040092,1532495813,1354997082,-1672077742,915218190,1153828220,-695533311,45095604,1587359693,-1017619937,1444827728,-1927344484,-972719050,-1962933948,-1340427050,-1657811710,1482301278,195,521011200,-200373458,-425212,1860708724,186937860,773878985,131475082,131506734,788233448,131475080,1124502574,1049177613,-1574040255,-104657595,1381061571,102651734,1929363432,1595869053,1532582494,1364414552,609551954,1049243376,12127557,785527553,222375620,520040092,123537349,1482381658,1381061583,102651734,1929349096,1595868997,1532582494,105992280,841068629,243937005,-1003614907,-1676852946,-987824338,1493654791,1364447064,509040210,-11081722,520557682,1499094623,781998171,130359039]},{"sector":7,"data":[1093583918,520605453,1499094623,-13739941,1275577646,1292800768,1242594560,1779482880,1796281856,1129728,269355008,19,-192153088,-734623442,785812484,80885385,-1945841480,-1948873010,236911584,2143563295,1166681612,1474572814,-1190719994,331284485,141864718,-102611129,367746823,1610058503,671532590,352256270,671532590,-336003058,-98568191,81043758,-768177362,-1948873212,650378208,638811588,184831371,773420233,84807227,921373815,307200814,1532609288,-2094113959,-1022750129,654755374,-1993473522,772107790,83105419,1962932867,-404162331,-388664584,-629998353,1929223912,117228501,118380369,235834158,915226885,1049429262,-1510800032,856119647,777212370,91098761,-1962933570,1099638494,-49916,776078964,90211465,1854179630,1128678917,1541857859,1959922521,777081741,90181259,-1154517943,46006274,777081600,90212235,1962934077,33129235,1128468084,1619475246,-385649403,-303890596,1128487769,41208075,1532614626,240603398,244002311,-1925118706,-1929027530,-217772482,123297701,-1151924653,1049427970,118363292,34247,-2050555903,2,562569,83244685,346439309,1854376750,-49915,-2054613388,1448149004,79531351,571648,1583326451,650609497,-589151421,-396687521,1465255522,-1928917498,-1929044938,772092990,84807307,-1510749949,915275571,-1959918260,-1996157426,-498710980,1583286266,1448170320,1480494423,244002309,1460012286]},{"sector":8,"data":[-1341714863,1504375807,-466483361,131440686,-1976635253,168294788,-402426432,-2010187238,1950959365,1375089484,571735,89669261,-108754386,1962884103,1975519789,150897433,-397335437,510851593,-1040265589,1935276242,-2071319019,976096809,1191932933,1499461858,1191544878,1499399147,-24951231,-503155936,1499357110,-970041253,17704710,1048587971,1946160679,1048784426,1946158446,25946139,1460020338,-200373458,19392516,141756255,788529081,83103369,654755374,784531470,202526595,1189671659,1333865986,-343932910,2110007027,227223059,1963129219,1300964931,-2083419390,762642425,-197722322,243871236,-521665292,410147322,-200393938,-402295804,393411463,1928774120,-2094087423,-1022881201,-200373970,1333997060,784533266,83103369,307200814,-1004092662,45683581,227091968,788177640,83103371,-4652173,1300834047,-425214,784531828,118640515,2110006979,244002323,-1993997056,53346893,-2096820722,-922549567,1343064358,-1959897517,-1157300210,-922025982,-1959916172,637862023,1124221321,787735107,84807307,38373670,-922008765,46010996,-2071253504,-1993997042,1128464961,-236829114,-1017619618,307200814,-2094087417,-1022750129,82458253,-1916586869,-1962612170,-1916599692,-1962612170,-1916599180,-1962612170,1354958452,-1047833005,-1946165016,1959332620,178955,594804795,-119389373,-1946171928,1959332620,-1153022451,3866624,1128473716,-919340830,1532952371,-1178338984,-1293418495]},{"sector":9,"data":[48989183,-217844989,1150172299,1482382850,-919354376,1532952371,1355020376,240584273,244002311,1049429358,-2054482778,-12779518,225743103,-1862271427,-1115484299,1962934298,650609416,-336010014,123730177,784554073,237452928,-134056704,1048587971,1946226215,1333997063,-1007089134,-1023409688,1444875806,787778554,81016457,-1993419124,-1207643594,-829684528,-527706482,2143563515,-1674146548,8701716,637534208,-1995291253,1442841220,308365,239438630,1178993801,272993062,-396491639,915211122,-1937042276,915210248,-2071259994,-264437758,772764671,1200001,1166616192,2615299,-29551893,125145343,1868939,-2097129752,-689822010,915091194,-1590819630,-695335724,1593565323,516159775,-1202302640,-1959854081,-1106940402,959315970,1946513028,-2071384571,1178993934,-1959857950,-402328562,141819549,788529081,83103369,525883742,195,0,1364414464,102651734,311200593,243871232,1348014901,118359633,820363,235834158,179973,243612462,1191474181,787866183,84819595,-1993410261,118699838,-1923721127,-787178442,-387460633,-33292747,1049177694,-1909583045,-1959919035,546081597,515148544,-1948676608,243871432,-920448199,-655817867,1364414464,512579414,53347660,773011230,322379267,185043758,-1457883968,158695424,-1590769525,-347073739,2147427646,-1590769525,-347073739,244002410,-2094132427,1259838,-2081881227,1359251968,-1929377607,772102174,91490106]},{"sector":10,"data":[-336010685,-1947979208,-145619892,101014241,784894720,322506299,724439414,-1961674482,6940865,957254446,856025875,6154432,957229358,-1527514093,-341056935,-1947979209,-145619892,101014241,784894720,322506299,724440182,-1961674482,-2147480127,771763944,322506379,-1070397973,771760872,322506281,-991170301,993430318,1015623187,38046766,1532583519,1595869016,1482381662,-1959897405,51590966,-2071384330,-1017248436,65535,0,2490368,774832127,774778414,-53714,0,0,0,0,0,0,-65498,774778414,774778414,65535,0,0,0,0,0,2490368,774832127,774778414,-53714,0,0,0,0,0,0,-65498,774778414,774778414,65535,0,0,0,0,0,2490368,774832127,774778414,-53714,0,0,0,0,0,0,-65498,774778414,774778414,65535,0,0,0,0,0,0,1191116800,542395983,8224,0,0,0,538976288,538976288,0,0,0,482221203,488381688,491920686,495918436,504110504,508567095,512106100,7904,522715136,526262092,529801090,534519743,534519772,534519772,534519772,534519772,8156]},{"sector":11,"data":[472062911,475733065,7297,42,851979,2752531,0,0,0,0,1397753374,1448563281,345775757,-987363570,-1960442761,-1960443313,-1993471913,588654102,772437458,361367239,-186056672,126559753,1946157349,-1014803621,784347914,773164195,773166755,773167267,773200035,773200547,773201059,773168291,773168803,773201571,773202083,773202595,773197475,369886919,-953286614,706090502,1204233728,1375730434,-1929373511,-1426911617,650347353,1542092106,180585299,639011630,1200301590,-115454,-1960440203,-1071441337,-953809291,-64953,1244054403,-2091129995,1481706179,19841323,1930828294,109129223,268441116,1976116049,155314435,370581806,1962945085,1028713218,57868303,1023483625,57999375,1023484649,57999376,1023514857,57868321,1023609065,57999393,1023610089,57999394,1023633641,57999395,1023977961,57868329,1023469289,41222185,-953804053,-2146827705,772335337,361498311,-953286656,605427206,-8656640,362193198,371106606,-1743353042,378088981,-12773856,-2096204289,158728186,38258470,-2081849332,633506560,-1185869825,-523042812,14844249,100871920,74651166,268485249,371106606,538347822,103493142,108205594,268495489,724457842,1914051606,74661970,268485249,1081590075,-1932974,79253775,1508037376,1935327747,12747012,14844176,726814960,-2130283583,1913651434,1975526152,1976705813,1213749777]},{"sector":12,"data":[-268187605,369542958,-385875946,1482358485,-919867133,788450537,362153671,-953221121,-15362042,1204233983,-343929854,1049308899,-16574954,-1197080786,-1959898347,638985750,1023559563,41222139,-1960421141,992873543,1964354566,1364598325,-1531044082,75468053,-218101575,526277030,-953802635,-261561,362848558,239569190,363766062,575113510,363897134,608667942,-1590814485,-12773988,772765183,1024827041,108396543,38258470,52854792,-769439201,-1813314956,369542958,1526730774,788409577,773168289,773201571,773168801,857088163,581119680,1049308694,-947186144,1360002853,-754973511,-410953248,53407744,1930829318,13074692,514010640,1049177622,-1959913952,1393960470,38243110,1979710525,2139825751,633834276,-1185869825,-523042812,15171929,1191388912,-2130414814,772800711,371211835,41169527,992872939,1997938182,773288999,371328711,-1557200897,-1993468386,773201982,371465865,-1590817045,-1071442398,-953809291,-2146696633,1959928650,520300037,777754347,371201675,371106094,1979711293,-359672,2145977205,103493120,108205594,268495489,724466034,1914051606,74662002,268485249,1618460987,-1932974,79253775,1508037376,1935327747,12747012,14844176,726814960,-2130283583,1913651434,1975526152,1976705845,1213749809,-268187605,371368238,175423523,369542958,-385871594,-953221887,588649990,113716736,136716,235325230,-385873130,1482357993,-919867133]},{"sector":13,"data":[788324585,588653217,-1206618688,-1557200897,-1557260900,-953805410,-2146696633,1409074409,605981486,1204233750,1535118338,788313321,370556555,-13697277,-1089095515,1398216419,605981486,-1298059754,1200170517,-1264505328,1200170517,-1230950894,1200170517,1204233754,637534236,1984455,1204233728,637534240,-50182201,-1230950657,1975526165,113716745,1054230,-953280533,571872774,413216256,1191257622,637956898,2377601,784554768,371594891,113716819,5664,570869550,771751958,370949771,-14301301,79253775,1507906304,-268376191,436601646,-2130414826,772800711,773200547,370949769,38243110,1962933821,-180968,-1394015372,1200301568,1958748954,1204233744,-335544830,1200301579,1975526170,9562371,612338470,-14301301,79253775,1507906304,-268376191,575079206,-947846029,992874496,1914051646,778728766,370804283,1635071346,511150374,543132710,440896294,729006395,440911654,-1993998336,959323207,1930829830,547565060,1191257622,641102626,2377601,640609040,201476039,723970944,1200170689,1334388250,243871260,19273248,108208719,608665894,-1071443968,-953284748,-15326714,520300287,1959928650,-13047549,371237166,-936644605,574522158,125108246,369542958,1526730774,788210921,361512579,1947628040,1204233741,780143106,361367239,-251461598,115984683,1174703099,1049308745,976098700,1947569797,1204233744,-1199567870,-1557266424,-420932212,-1993455622]},{"sector":14,"data":[-2095739842,57936127,788191465,370017991,-953286656,588649990,113716736,2430476,-1946500887,592004612,772699593,773166754,370542279,-1427570650,776554234,773166755,370542279,-1696006105,1174703098,-1750978999,113716757,2561558,-1946515223,592004612,772699593,773167266,370542279,1927872552,776554234,773167267,370542279,1659437097,1174703098,-1717424567,113716757,2692630,-1946529559,1967736324,-1700647410,113716757,71190,1190804713,-1700581815,113716757,2299414,201770798,-385875434,76282405,-1574024890,-953281125,588649990,113716736,136716,58050851,1190791401,235339566,58018070,1190788329,235339566,-953267946,35001862,-101979904,1229325451,-1574039947,-953281124,51779078,-103290624,-1557247674,-953281124,68556294,-104339200,1229325451,362652206,369542958,-385874922,76282293,242567494,362717742,369542958,-385874666,1229388193,362717998,369542958,-385874410,76282257,-1574024890,-953281121,102110726,-109057792,1229325451,-1574039947,-953281120,118887942,-110368512,-1557247674,-953281120,135665158,113716736,5538,-1946594071,776553988,773169570,370542279,-953286648,1417734,-113514240,-1572961490,343279637,38258470,-953253878,555059718,737215232,-115349047,771754168,362939947,427018299,-1090056698,53351844,773169726,362941953,-1190681357,-85393408,235295224,363118343,-1572994258,-204961003,19793828,1494589958]},{"sector":15,"data":[-953235413,152442374,-120067840,1229325451,-1574039947,-953281108,169219590,-121378560,-1557247674,-953281108,588649990,113716736,726540,-1946637079,776553988,773172642,370542279,-953286621,185994246,-124524288,1229325451,-1574039947,-953281106,202774022,-125835008,-1557247674,-953281106,219551238,-126883584,1229325451,363831854,369542958,-385872618,76281949,242567494,363897390,369542958,-385872362,1229387849,363897646,369542958,771755798,1209375393,362455854,242597923,788529080,773168291,-384459101,-1590757343,-1071442532,-1590815883,-1071442530,-4715659,-1667027201,-1633473003,-133961451,1229325451,363962926,369542958,771755798,1209375393,362455854,242597923,788529080,773168291,-384459101,-1590757415,-1071442532,-1590815883,-1071442530,-4715659,-1667027201,-1633473003,-138680043,1229325451,-1574039947,-953281102,303437318,-139990784,-1557247674,-953281102,320214534,-141039360,1229325451,364093998,369542958,-385871082,76281733,242567494,364159534,369542958,-385870826,1229387633,364159790,369542958,-385870570,76281697,-1574024890,-953281099,353768966,-145757952,1229325451,-1574039947,-953281098,370546182,-147068672,-953267898,102111238,-1230819840,113716757,2168342,787948777,370673351,76218374,-1574024890,-1590815305,-953281098,555095558,-150476544,-953235157,722867718,-151262976,240584274,370196231,771752890,638979745,124912955,1194030154]},{"sector":16,"data":[653585223,-802482805,192137787,235798830,737215254,773909449,370021889,-903089661,369926446,370582318,123669995,1204233818,729811458,1594092489,-1494656505,1048784630,1965102614,-101193725,1516199513,123231065,49951,0,0,0,594027273,603268027,8288,0,541148997,538976288,1260440327,1095189793,538982432,550175008,1195712875,875634753,-888987616,1159826208,824197447,52448564,562766059,541344588,538976288,-1423897855,1313819937,538976335,556466208,1195581739,538976321,721428512,18950945,805372161,-16699344,-1,538980400,808460320,808464432,808464432,-13619152,-1,-15597569,-1,-14614529,-1,-1,-1,50331647,-805174782,-16592688,-1,-791621424,-791621424,-791621424,-791621424,-3092272,-1,-1,-1,-1,-1,-1,-1,16777215,134217728,-16775160,-1,0,0,0,0,134217728,134744072,-63480,-1,-16250872,-1,-1,-1,251658239,135138830,-15857656,-1,235800584,-1,-1,-1,150994943,134744072,-16250872,-1,134744072,134744072,134744072,134744072,503842824,-397205746,108201398,1527170536,-1940172821,773876238,638353348,-1559214709,15212654,-1104252391,210451134,1963063683,41192228,1049431179]},{"sector":17,"data":[-13754272,1176662549,-498645178,36169973,-1269622926,-1575957233,-346355755,-1202565052,-4849652,1510171880,784347992,638353348,638469513,638602636,-2146613880,2492222,-2127689611,16978511,154010859,-1202253241,1049493503,-1993474048,1166618117,536436482,-1070397757,-1591295858,-1557266244,-1960442237,771800590,109383305,225820939,772195000,-1945730141,-2052903224,-953746938,-1996440570,244065798,653983934,8130187,-921794258,243871239,-1960441907,771784206,130748041,-821130962,244000263,-1993473776,638046478,17960587,-754022098,244000263,-1993473984,638043406,4329099,-955348690,-953746937,419446790,244065800,133890114,209699886,639658145,-1592900215,-1993990038,536416325,1313817539,538976288,-1957277408,210436724,1963522435,240584212,20876551,-213498333,1963417510,-128360956,-396796221,-1007091077,541148997,538976288,541148997,538976312,541148997,538981425,541148997,541930545,541344588,538976288,1330532173,538976288,541148995,538976288,-396996265,695337626,-1962773365,150569740,1179000693,590364301,1459619769,240211462,571655,1582933747,427056903,-502741117,121536746,57999654,1578429433,1313759065,-117309720,132744131,243915255,1593319532,1371758425,41192278,-108983157,544669702,1996618115,1284198683,-425214,101807193,-1928917417,1090846782,123708915,-1007134370,1314281822,-397521330,-111279689,1381060803,41192278,-1157627975]}]],[[{"sector":1,"data":[76283903,292864011,-2130555765,1996490489,81174,1418396532,235833604,-32077563,1499094532,1589901400,-1202562726,-4849656,1510037736,-389809832,208863247,985579094,-402492277,-111279773,1381060803,102651479,118365966,-1189057375,-503906291,544214669,-1048328189,-386299128,460455989,1463126855,-1929371463,-217589442,1972068260,2144514,133774989,133735667,1516199455,12802137,0,100663296,101713427,1342703118,1448235347,118359639,-1561852534,146362597,-791530752,1107391456,-1957103134,990182926,-1190955318,-108789761,-1996196353,-1962607082,-2096820722,242614265,84809353,108319243,84805319,1048772609,1962935566,9169155,83771011,-385649408,512426120,146343166,-1892250368,-791530716,185037792,1258517723,1178997763,-1031015966,84807307,85735053,543692427,-1823253754,-850787656,-2091150545,125108223,1150041225,1378937602,-355341615,-355341615,-2091197949,344526818,50486409,-1031580976,-773140209,-773139990,1943208938,518740483,544085563,-2095614118,-1226701626,543692425,543825545,-1173820424,-1014230420,133820139,1499094623,516118619,521032019,855638715,-388877623,1532560130,770847,0,16781313,1364414496,1955288658,1447446018,-1342175047,1979988000,-102611453,76021936,-1607038626,-1576104923,178213,-1191181637,-768475135,631125645,-1142358090,1499094530,1170430043,538984775,1159733280,824197447,1159744820,824197447,1159733300]},{"sector":2,"data":[941637959,2105376,1364414551,41192278,1946696835,387180556,113641331,-352246265,1447446115,118378758,-1929377607,-217778626,1577540004,635911821,240518743,571655,123643635,-398822049,896787438,280171188,-75493171,-1204980720,-8388600,85160961,-511705080,167346191,-109049740,84112387,-134021112,118359582,146405255,128250624,32241695,1532583673,12803928,0,0,-16777216,16777215,0,-16777216,16777215,0,-16777216,-1,16777215,-16777216,16777215,0,168624128,0,603982336,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,1142969165,1444959055,1769173605,891317871,540028974,1126777640,1920561263,1952999273,943272224,959524145,1293955385,1869767529,1952870259,1919894304,1766596720,1936614755,1293968485,1919251553,543973737,1917853741,1919250543,1864399220,1766662246,1936683619,544499311,543976513,1751607666,1914729332,1919251301,543450486,106058576,-1899416745,-1191234623,11670062,109850573,1049175701,783820435,-855461358,-1660515281,-1690400474,305051686,801965234,648873612,648756873,-1307431240,-1943024378,-1993961210,-400126146,109839849,1049175693,109848203,1049175721,-135780697,-1593406459,-1623291610,305051686,801966258,649397900,649281161,650512071]},{"sector":3,"data":[113641997,-953932017,2542342,-855193856,-402650586,1049167484,434644663,3074048,1358971368,1912623336,123689224,-346530982,214205188,1448133625,1660991518,119415245,-1995935201,-1943617738,1579598086,12108632,47940,567136819,-2147359104,28836302,-1021194940,-1153171272,-768409599,-830463539,1140963329,-1262280243,1025625392,57999365,1025043448,91422722,-335544389,178947,-1191181896,11665408,-1007026250,1431393104,-1957558697,-1021408791,-935950298,46589990,477415691,91614475,-352311576,28370947,-396752782,1594294533,-998046485,82573574,-111517945,1499268722,82532443,-116865917,1381191875,650321547,1979710339,2942981,2011694059,-1274055936,47961,-466476595,-116996989,-75296533,990606591,-402164543,-998047568,57866502,-1017619622,-2095118818,460653049,-1977220428,522308885,-1310145910,520494592,-1977219213,567083349,-1274024968,1959332610,361375241,1229398477,536408949,105928643,519736147,-1327920377,-1359807462,-651492491,1540066123,-1017161721,-921976781,102649716,-1958693857,33129431,567093365,-1977200609,5957637,520494680,-1258813837,567099968,1031808668,-1962773222,-821957695,-268274,1364531947,-1946179864,567106025,199950963,125093947,1979246651,1572965122,666419999,310016,-2134703691,292880382,1971373814,-1928913396,-1188641218,15204354,1460061183,650067652,393543435,4031270,638612728,124912954,21314086,1207501175]},{"sector":4,"data":[1609165639,110084871,-617404727,922194579,-141351219,-2094609098,91621882,-348667264,818053123,-1073004206,-620034955,-108840588,-2146601725,1965820540,-701038843,585842982,1963391363,175931405,-16419540,1093064246,-108850965,-2146732791,1965820540,-701038843,865288486,866642898,-4181038,-1020868298,-921972173,632562036,942014640,638219557,1946248504,1975794180,92939790,1946113000,1111967489,1457747273,-317994361,-2092092556,2542398,1149905781,640680966,1963017530,1008659202,184841520,50623698,-2132284620,-14235586,1111623797,1330596169,-4586517,-114599937,1610484456,-352095399,-1957588891,108822730,185431040,1225159881,-347650231,283860481,58050827,-2096501922,41287673,-16004813,1465203828,-919383802,650854019,-166497024,1963919172,41731080,-352167192,24832000,552076267,1493660160,1583177479,-998046485,1048836362,1962944203,-385650171,113770286,9931,-1580059709,113714891,665293,1493086184,651134856,1090224963,-119012491,1976172033,168671470,651134857,-387431613,1398194945,-919341517,1979711104,-1212380408,-337671386,46593573,-1128003468,-1014225253,322771179,1024291328,142016551,648527044,116114316,646692036,-75250804,-2146011649,58064894,-1559434247,-4708661,114175,-336005581,16483084,1424491380,80118528,184972024,-352160311,-25125729,1378448641,1460031829,83933264,-12832819,-1962314408,84064472,32190413,1594192889]},{"sector":5,"data":[116087047,-402209661,1516044300,248447467,1543502824,1347928926,855637945,-139529536,1599621585,33260483,1048780149,1962878643,-49898,-1588589707,520038091,-346544461,-1289814268,857402150,-98103,-1977219468,166396749,1966422062,1300901380,80184067,-131238919,427084043,1962933888,87762437,992871403,-352160507,91506953,-352008317,208861667,-117440896,118358645,41747238,-315488654,1192069670,650446534,-617364736,425088,-2016997003,757081807,-2017049789,1126180559,1560323816,-768353485,650448520,973685898,706639553,-152007999,1954547524,172263956,651134856,1090224963,2095580021,1976499712,142377196,940405760,141756492,-1979167702,139234001,611633419,252134646,1156975733,108269575,1191545382,-2007498261,1126616967,1967192963,4319235,-596260354,-2147007242,-167110539,1149899892,-813201398,-75283674,-402426560,-822214621,1157033077,141889287,268911862,216728180,141873674,650708623,-126498050,1426064104,1460031939,-880081122,1049484083,1961371343,1594192635,82532615,-116996989,1156996547,309669895,1342540326,-61151167,-1977219469,-128974523,-1977217557,1958742533,-348043516,1442393077,328131,83885825,2017792256,1684956532,1159750757,1919906418,238101792,-1589736185,549552941,328387,83885825,1632636416,543519602,1869771333,824516722,1049429774,-1048367675,100647709,66560,131088,524324,786509,1226244202,1919902574]},{"sector":6,"data":[1952671090,1397703712,1919252000,1852795251,623643149,1868767281,1881171300,543516513,1986622052,1663070821,1869508193,1700929652,1768843552,1818323316,1684372073,537332237,544173908,2037277037,1685021472,1634738277,544433511,1667592307,1701406313,118099300,1986939185,1684630625,1853453088,544760180,1142976111,1280332617,1395546433,1663062873,543515759,1701273968,1769104416,225600886,118359818,770064013,11714945,195,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-16777216,255,0,0,0,0,0,0,0,0,0,65280,16711680,1526726656,1044151389,574307627,771751936,782894791,-1993474048,774845454,792077961,943098158,-1993409489,774806798,782173895,-953286656,3060230,113716736,11939,1862715182,777870127,795936455,-953271172,1043297030,113716779,993865589,1448563281,1107296185,157345964,-1993410187,1580169230,244002390,-617402504,1965177984,181663234,-1959758373,540884228,540872564,1024095293,91503881]},{"sector":7,"data":[1963539773,1023723034,1459522374,503727697,128250631,-1219600807,251604735,1179201400,1589739337,-1267335414,-396797345,326306016,1409286072,639470374,57872186,1526727352,771826665,783038089,-1923786925,774812702,782960374,-1404865248,1913221352,148170812,99104628,773354761,782960374,-402295520,652937372,-1425607122,510935342,773581646,1027344264,-2144467339,19835662,156887107,783074675,-347928696,-1993453890,774807862,771753926,783294089,-1927443674,774812726,1949252736,1015033398,772305954,782960374,643069185,838944650,104410852,309538461,782082350,1128521937,-1960388605,8972319,-953259541,19832582,643885824,838944650,-523157276,-1977165821,200094223,1125086409,529213011,1526794472,1128481139,-953224478,53387014,641002240,838944650,-523157276,-1977165821,-773574137,-670875424,839879206,1959332845,642990863,1575493515,192109312,-220052669,-1626945746,1560282158,-1959896225,774806798,774807457,782317195,-1558803666,512372270,-1007145307,126559824,1962934953,117386757,-2144457059,427098172,1962934697,113716745,143007,-1336930581,-385895421,-346554241,16705539,-2144418984,137276174,1912617960,645934628,1358376619,783196462,19842603,1479453702,-1372157138,1015033390,-402033664,-336068400,300677396,-1626945746,1342179630,-4979792,1476409064,1364575224,139430438,-921965262,1871514996,55437321,250087539,-101260800,-1993472277,-131157458]},{"sector":8,"data":[650337625,32384,-347798668,-104643082,-1960421437,-1993472897,640590654,-2010774136,776995173,640594593,1476543881,175440188,72714534,105744678,37509867,-1993996683,1357579349,-395049156,-462157764,108332604,72714278,71057131,-1590816907,641740460,637814153,-351904372,1971922475,1301030404,-165261306,1946223175,-352014332,1207313929,91488770,283640496,-165259263,1947206215,14673923,-970013857,3111430,126559824,410370059,1465013072,-1626945746,-1275066066,-402411265,1516240731,820729947,1946419369,113716754,11935,772065512,782188163,-1457949431,393480192,-1626945746,-402653138,-2094136487,154050366,65733237,-1450152725,309624832,-1626945746,-402653138,-2094137044,154050366,11097205,772961344,782173895,-236453888,1048784384,1963536031,33597757,-953281932,3055366,89974784,-1623293138,645204270,1946189993,113716754,11935,772067048,782188163,-1458604791,175382528,-1626945746,-402653138,-2144468614,19888702,-2094133387,3055422,-953284747,154050310,1354979328,76164694,443858954,225786428,24936494,772175104,-352320314,106555401,1178993011,1482612715,-1974315325,76164816,1913013992,1958742540,845836,-352024530,-347716095,-1017226520,208896060,1165123900,1098349116,1038868260,-1923676589,-2144376258,74712314,795164301,1947547694,1381060631,1706297102,-4472182,375295,-838860870,1482250785,22907694,54890030,-2144582845]},{"sector":9,"data":[123721510,777044827,782962304,645934720,788344491,725353610,758909556,-2144467083,36612878,190534,1364247384,-919382446,777245235,-1073085302,-1981267340,842625536,-773288988,-388902430,745668714,-1047799157,-774774063,1912626664,-773664481,5564625,-754772366,1273546771,51212800,13730773,1912619496,-1142209021,-1876497573,116797019,1946300075,-137234678,29524946,637587843,637958027,3933322,28313461,216793012,113716880,601759,-4979792,1593664232,-1017620134,116797084,1963077291,-1648124670,-1007156624,809288697,960235634,808191095,-1007041544,1465013072,109021990,168135206,-1274776128,1011674111,1195341059,-1274705370,1088747017,-1977157629,-167398395,-134004508,1191545382,764094023,1929392872,63406866,-243939074,-1626945746,-1275066322,638905343,-1325439606,361440770,-953283605,154050310,-1325419520,-52828157,1482381919,1381322947,771928662,-1595407222,-398691836,-164692374,137276166,1027345780,-2144985227,1962934654,773057370,782960374,1007580176,638219578,32384,-347716235,1178216005,169702656,1178301632,638839621,1962952250,-1976678866,975586564,594870342,-1477753530,268957478,1008235520,638154042,32384,250285429,125108284,8290342,-117214150,-1993472277,-131158474,1482512990,993430979,1015229999,-352160513,1347558927,12066574,-841577672,526014497,861032899,76164809,1014284298,977174574,259260463,1963064192,1949973508]},{"sector":10,"data":[1949187120,1007479596,1009153069,1008890927,-400657362,510852784,-1164902220,-487129078,292934155,242401539,-1108654447,-336013174,-336050683,-1047791359,1354979674,1398166097,-8001450,289732142,58023425,771817960,794625735,-953286656,3104518,113716736,12129,1661388590,771751983,792331974,-402541823,1567817583,794665774,1601493770,1929339624,1604529744,1960512047,-402476206,1098055507,794927918,913693450,-1442384338,997524014,-1590260946,-8617938,-969902804,774831940,782894791,-2144468992,36612622,873368366,646655535,-1959907530,-382781386,283703487,778007295,170877859,777483739,170876321,776959460,782894838,1007186945,1967355660,784347650,782960374,1007449092,67662860,1009742348,-1976862952,1604398800,1977879087,787515937,170877345,-1978173980,1671507656,1977879087,1541966349,-1325419426,-86120440,1583026411,61931444,788189928,782173895,-970063863,3095046,-1017620134,-1976674736,-1073068540,-1976633227,537722436,427061308,494166332,611675452,1149906510,1008733438,1007055984,-351636383,243281427,-352047445,243281414,771829418,16663750,1354979422,-1959897517,-2144424930,1601513535,126542898,1946258920,1965571149,1925512708,1965636677,1926036998,1008956477,772568354,1128662152,1912638440,-401609939,124977691,1174702126,772246083,1128662152,-2010200853,1153838596,130416641,1190365952,771825640,782317193,-1959915285,774811702,771753158]},{"sector":11,"data":[782173895,-4980727,1532888240,1492779752,1448300739,-1407284434,1007127086,1126266146,1912614888,1153838610,-208994303,14608454,-1590261458,772860718,783300235,312878,-1626945746,-1275066066,1577693439,-104732581,-1957641384,14477319,574366836,-58716811,773748002,1128662152,-387388605,124977531,1174702126,772246083,1128662152,-335948309,80096773,-1017579520,777410384,783040139,168069678,-401378112,611647583,2047264302,777912623,1593836742,777928683,1593836742,17299238,775058688,782173895,703266818,-1976674728,1958742532,3008542,417860468,1191342849,-347715770,-1516097815,80096814,-1993455872,1580114238,11098207,1342796802,95485876,1492720360,-1924049981,-1188073698,976093193,1124365319,1497495778,-391330981,410255394,1962955752,116796950,1948266155,116797165,1950428843,116084233,-134091783,-1007107250,222056787,3943796,171714932,-2144983692,1912734333,651899678,-2096931446,-2144992061,225706041,-1977169613,975586057,-503024639,1494039800,1364443995,-1526282706,-2144460754,-550589658,913580092,846465340,829697084,209002556,1965046912,1176547335,518766650,41779238,857174529,1300899529,1959332611,244491,20588099,-119404684,1532567612,-1516097853,116796974,1963011755,243281414,975187627,-1914180672,992916526,1007318237,-117213905,-336064789,1966029835,243281414,-130011477,1398152899,-1472298194,661979182,1381047888,856053079,-1193373962]},{"sector":12,"data":[567108352,-619979892,1516199175,1951932249,914959913,-1993462106,774809630,782644875,-1474392530,3965742,70914164,1144653938,-117213439,1178994155,1543039979,1120083806,16842810,16792138,33569363,985006081,15029,-1241509372,37401914,1028542275,1313817344,1778400570,50331706,981285492,14982,139265,984955574,8651008,-1254443520,-2080309190,985006080,-1845478731,16842810,15011,16792219,-1405443326,58,-1241513856,3847482,32769,984955574,0,0,65536,277186,987118284,988035808,1329790984,538976334,8224,538976288,538976288,0,0,65536,508757504,1975854678,-1928917486,859455294,-388877367,1994978425,-49676,-2144451980,20638270,4012661,772305920,988415686,786885376,985022080,773485828,988481278,-348225490,142475578,-368654802,199950394,-352309784,113651206,-402638102,-1175718863,-365002706,141819962,-348225490,175439930,-1106852050,-117440454,1593311723,-1022928097,1364598359,1049479475,-986826137,-398804426,-12717059,776893695,988429952,1028027649,141819904,-368654802,-420806598,-335086034,1048587834,1963145910,14936070,781198059,985022080,-402230015,350945530,1048587920,1963211446,1239045,-970062101,3860998,-336352024,526277037,-2144418977,37415998,115869045,-402396416,1472397388,860968478,-1891725879,918892090,-2098709830,-49677,-2144456844]},{"sector":13,"data":[20638270,4007797,772306176,985022080,772305921,988415686,786361088,987760383,985309486,987931438,-336375576,526277068,509068127,-919383722,983056013,-1170815698,-214439878,1962934077,1048587837,1963014890,15669,-2144466827,20624958,-970061708,3860998,-13705493,775611398,775600801,988036739,772175105,-348461405,-391959036,-218634182,1582939883,1472421663,-986819042,-2143634890,343146556,987250317,1946172588,-341005820,113716984,539350,-1017176226,985309486,-331448274,208994874,987931438,-536412370,-1877808326,-331448274,158663482,988193582,-469303506,49978,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1195704320,538976321,1129062432,538976324,1342185504,1465012563,236848726,856100383,-1927564096,859626046,1007734235,-2146994917,20785678,313797355,281874611,1947270016,705593351,418054461,365805748,41910310,-1274186247,-1474966205,-2147126015,37562894,1026178688,-1926794240,-801301962,1916611134,147227401,1026178768,118420971,987250317,-218101575,-704198748,-134215622,536412651,1516199431,-1017619623,-16250872,-1,134744072,134744072,134744072,134744072,503842824,-397205746,108201398,1527170536,-1940172821,773876238,638353348,-1559214709,15212654,-1104252391,210451134,1963063683,41192228,1049431179]},{"sector":14,"data":[]},{"sector":15,"data":[1313818367,538976340,0,0,385941505,100663296,1291852800,16777254,1095189760,538976288,111904,0,13568,50331904,270930432,8,1,0,0,0,2113929216,-2122209919,-2122212931,126,2113929216,-9217,-6205,126,0,-16880640,947715838,16,0,2084048896,272137470,0,0,-415482856,404285415,60,0,-8504296,404258559,60,0,402653184,1588284,0,-256,-402653185,-1588285,-1,255,1715208192,1013334594,0,-256,-1715208193,-1013334595,-1,503316735,2016549390,-858993460,120,1006632960,1717986918,410916924,24,1056964608,808468275,-261083088,224,2130706432,1667465059,-412654749,49382,0,1020991512,417021159,24,-1065353216,-17239840,-1059000072,128,100794368,-29483506,101588542,2,402653184,404258364,406617624,0,1711276032,1717986918,1711302246,102,2130706432,2078006235,454761243,27,-964952064,-965986208,205024454,31942,0,0,-16843264,254,402653184,404258364,406617624,126,402653184,404258364,404232216,24,402653184,404232216,1014896664,24,0,202899456,1576190,0,0,1613758464,3170558]},{"sector":16,"data":[0,-1073741824,16695488,0,0,1814560768,2649342,0,0,943198208,-16876420,0,0,2097085952,272119932,0,0,0,0,0,402653184,406600764,402659352,24,1717960704,9318,0,0,0,1828613228,1828613228,108,2081953792,2093007558,-964295162,1579132,0,214352384,-966774760,134,939524096,1983409260,-858993444,118,808452096,24624,0,0,201326592,808464408,405811248,12,805306368,202116120,403442700,48,0,1013317632,6700287,0,0,404226048,1579134,0,0,0,404226048,12312,0,0,254,0,0,0,402653184,24,0,201720320,-1067438056,128,939524096,-691616148,1824966358,56,402653184,404256824,404232216,126,2080374784,403441350,-960470992,254,2080374784,1007027910,-972683770,124,201326592,-865321956,202116350,30,-33554432,-54476608,-972683770,124,939524096,-54476704,-960051514,124,-33554432,201721542,808464408,48,2080374784,2093401798,-960051514,124,2080374784,2126956230,201721350,120,0,1579008,404226048,0,0,1579008,404226048,48]},{"sector":17,"data":[0,806882310,202911840,6,0,8257536,32256,0,0,202911840,806882310,96,2080374784,403490502,402659352,24,0,-557398404,-1059266850,124,268435456,-960074696,-960051458,198,-67108864,2087085670,1717986918,252,1006632960,-1061109146,1724039360,60,-134217728,1717986924,1818650214,248,-33554432,2020106854,1717723240,254,-33554432,2020106854,1616928872,240,1006632960,-1061109146,1724303070,58,-973078528,-20527418,-960051514,198,1006632960,404232216,404232216,60,503316480,202116108,-858993652,120,-436207616,2020370022,1717988472,230,-268435456,1616928864,1717723232,254,-973078528,-687931666,-960051514,198,-973078528,-553715994,-960051506,198,2080374784,-960051514,-960051514,124,-67108864,2087085670,1616928864,240,2080374784,-960051514,-556349754,920700,-67108864,2087085670,1717986924,230,2080374784,945866438,-960100852,124,2113929216,404249214,404232216,60,-973078528,-960051514,-960051514,124,-973078528,-960051514,946652870,16,-973078528,-691616058,-285288746,108,-973078528,947678406,-965968840,198,1711276032,1013343846,404232216,60,-33554432,403474118,-960339920,254,1006632960,808464432,808464432,60]}],[{"sector":1,"data":[0,1893777536,101588024,2,1006632960,202116108,202116108,60,1815613440,198,0,0,0,0,0,16711680,405798912,12,0,0,0,209190912,-858993540,118,-536870912,1819828320,1717986918,124,0,-964952064,-960446272,124,469762048,1815874572,-858993460,118,0,-964952064,-960446210,124,469762048,2016424502,808464432,120,0,-864681984,-858993460,2026638460,-536870912,1986814048,1717986918,230,402653184,406323224,404232216,60,100663296,101580806,101058054,1013343750,-536870912,1818648672,1718384760,230,939524096,404232216,404232216,60,0,-18087936,-690563370,198,0,1725693952,1717986918,102,0,-964952064,-960051514,124,0,1725693952,1717986918,-262119300,0,-864681984,-858993460,504106108,0,1994129408,1616928870,240,0,-964952064,-972277664,124,268435456,821833776,909127728,28,0,-859045888,-858993460,118,0,-960102400,1824966342,56,0,-960102400,-19474730,108,0,1824915456,1815623736,198,0,-960102400,-960051514,-133429634,0,-855769088,-966774760,254,234881024,1880627224,404232216,14]},{"sector":2,"data":[402653184,404232216,404232216,24,1879048192,236460056,404232216,112,-596246528,0,0,0,0,1815613440,-20527418,0,1006632960,-1061109146,1724039360,7346236,-872415232,-859045888,-858993460,118,403439616,-964952016,-960446210,124,940572672,209191020,-858993540,118,-872415232,209190912,-858993540,118,811597824,209190936,-858993540,118,1815609344,209190968,-858993540,118,0,-964952064,-960446272,7346300,940572672,-964951956,-960446210,124,-973078528,-964952064,-960446210,124,811597824,-964952040,-960446210,124,1711276032,406323200,404232216,60,1008205824,406323302,404232216,60,811597824,406323224,404232216,60,12976128,-965986288,-960037178,198,946616320,-965986288,-960051458,198,1575936,1751279358,1717725304,254,0,921436160,-656900554,110,1040187392,-20132756,-858993460,206,940572672,-964951956,-960051514,124,-973078528,-964952064,-960051514,124,811597824,-964952040,-960051514,124,2016411648,-859045684,-858993460,118,811597824,-859045864,-858993460,118,-973078528,-960102400,-960051514,2014054014,12976128,-960051588,-960051514,124,12976128,-960051514,-960051514,124,404226048,-1061108100,410830528,24]},{"sector":3,"data":[1815609344,1626366052,-429891488,252,1711276032,2115517542,404258328,24,-856162304,-859506484,-858993442,198,453902336,2115508248,-669509608,112,806879232,209191008,-858993540,118,403439616,406323248,404232216,60,806879232,-964951968,-960051514,124,806879232,-859045792,-858993460,118,1979711488,1725694172,1717986918,102,14448128,-17373498,-960049442,198,1006632960,4090988,126,0,939524096,3697772,124,0,805306368,808452144,-960053152,124,0,-33554432,-1061109568,0,0,-33554432,101058054,0,-530579456,409757282,-2032377808,4069388,-530579456,409757282,-1697749456,394815,402653184,404226072,1010580504,24,0,1815478272,3566808,0,0,1826095104,14183478,0,289673472,289673540,289673540,289673540,1437226308,1437226410,1437226410,1437226410,-579347030,-579347081,-579347081,-579347081,404232311,404232216,404232216,404232216,404232216,404232216,404232440,404232216,404232216,418912280,404232440,404232216,909522456,909522486,909522678,909522486,54,0,909522686,909522486,54,418906112,404232440,404232216,909522456,116799030,909522678,909522486,909522486,909522486,909522486,909522486,54,117309440,909522678,909522486]},{"sector":4,"data":[909522486,116799030,254,0,909522432,909522486,254,0,404232192,418912280,248,0,0,0,404232440,404232216,404232216,404232216,31,0,404232192,404232216,255,0,0,0,404232447,404232216,404232216,404232216,404232223,404232216,24,0,255,0,404232192,404232216,404232447,404232216,404232216,404690968,404232223,404232216,909522456,909522486,909522487,909522486,909522486,808924726,63,0,0,809435136,909522487,909522486,909522486,16201270,255,0,0,16711680,909522679,909522486,909522486,808924726,909522487,909522486,54,16711680,255,0,909522432,16201270,909522679,909522486,404232246,16717848,255,0,909522432,909522486,255,0,0,16711680,404232447,404232216,24,0,909522687,909522486,909522486,909522486,63,0,404232192,404690968,31,0,0,404684800,404232223,404232216,24,0,909522495,909522486,909522486,909522486,909522687,909522486,404232246,419371032,404232447,404232216,404232216,404232216,248,0,0,0,404232223,404232216,-232,-1,-1,-1]},{"sector":5,"data":[255,0,-1,-1,-252645121,-252645136,-252645136,-252645136,252645360,252645135,252645135,252645135,-241,-1,0,0,0,-596246528,-589768488,118,2013265920,-657666868,-960051508,204,-33554432,-1061108026,-1061109568,192,0,1828585472,1819044972,108,-33554432,405823686,-966774760,254,0,-662831104,-656877352,112,0,1717960704,1717986918,-1067425668,0,417101312,404232216,24,2113929216,1717976088,406611558,126,939524096,-20527508,1824966342,56,939524096,-960051604,1819044972,238,503316480,1040980016,1717986918,60,0,-612499456,8313819,0,0,-612497917,1618932699,192,469762048,2086690864,811622496,28,0,-960051588,-960051514,198,0,65024,-33554178,0,0,2115508224,6168,126,0,101455920,3151884,126,0,1613764620,792624,126,234881024,404232987,404232216,404232216,404232216,404232216,-656926696,28888,0,1572864,1572990,0,0,-596246528,14448128,0,1815609344,14444,0,0,0,0,6168,0,0,0,24,0,202309632,202116108,1013738732,28]},{"sector":6,"data":[913047552,909522486,0,0,1715208192,2117212172,0,0,0,2122219008,2122219134,0,0,0,0,0,527872,65536,0,0,0,0,-2119859842,-2120630911,126,-8519680,-1006632997,8323047,0,-16880640,947715838,16,268435456,2097052728,4152,0,-415482856,404285415,60,1008205824,2130706302,3938328,0,402653184,1588284,-16777216,-1,-1010571265,-25,255,1715208192,1013334594,-16777216,-1,-1111647805,-15463,255,840568350,-858993544,120,1715208192,406611558,1579134,0,809448255,-261083088,224,1669267456,1667457919,-1058609305,0,1020991512,417021159,24,-1065353216,-117507872,8437984,0,1041106434,101596926,2,1008205824,404232318,1588350,0,1717986918,1711302246,102,-612433920,461102043,1776411,2080374784,1815634118,946652870,8177164,0,0,16711422,0,410926104,1014896664,32280,1008205824,404232318,1579032,0,404232216,1014896664,24,0,217975832,24,0,1613758464,3170558,0,0,-1061109760,254,0,1814560768,2649342,0,268435456,2088515640,65278,0,2097085952]},{"sector":7,"data":[272119932,0,0,0,0,0,1010580504,402659352,24,610690662,0,0,0,1828613228,1828613228,108,-964945896,108839106,410830470,24,-960364544,1714427916,198,1815609344,-596232084,7785676,404226048,12312,0,0,403439616,808464432,792624,0,202119216,403442700,48,0,1023360102,102,0,404226048,1579134,0,0,0,806885400,0,0,254,0,0,0,1579008,0,403441154,-2134876112,0,1815609344,-959002938,3697862,0,410531864,404232216,126,-964952064,806882310,16696928,0,101107324,-972683716,124,470548480,-20157380,1969164,0,-1061109506,-972683524,124,1614282752,-956514112,8177350,0,201770750,808464408,48,-964952064,-964901178,8177350,0,-960051588,201721470,120,402653184,24,6168,0,1579008,404226048,48,403439616,1623220272,792624,0,2113929216,8257536,0,811597824,201722904,6303768,0,214353532,402659352,24,-964952064,-555819322,8175836,0,-965986288,-960037178,198,1727791104,1719428710,16541286,0,-1061001668,1724039360,60]},{"sector":8,"data":[1828192256,1717986918,16280678,0,1751279358,1717725304,254,1727922176,1752721506,15753312,0,-1061001668,1724309184,58,-960102400,-956381498,13027014,0,404232252,404232216,60,203292672,202116108,7916748,0,1819043558,1718381688,230,1626341376,1616928864,16672354,0,-687935802,-960051514,198,-423231488,-824246538,13027014,0,-960051588,-960051514,124,1727791104,1618765414,15753312,0,-960051588,-556349754,3708,1727791104,1820092006,15099494,0,1623639676,-960099272,124,2122186752,404232282,3938328,0,-960051514,-960051514,124,-960102400,-960051514,1063020,0,-960051514,1828640470,108,-960102400,2084076742,13027014,0,1717986918,404232252,60,-956432384,1613764748,16697026,0,808464444,808464432,60,-1065353216,473460960,132622,0,202116156,202116108,268435516,13003832,0,0,0,0,0,16711680,792624,0,0,0,2013265920,-859014132,118,1625292800,1718384736,8152678,0,2080374784,-960446266,124,203161600,-865321972,7785676,0,2080374784,-960430394,124,907804672,813445170,7876656,0,1979711488,2093796556,7916556,1625292800,1719037024]},{"sector":9,"data":[15099494,0,939530264,404232216,60,101056512,101060096,1717962246,60,1717592288,1718384748,230,406323200,404232216,3938328,0,-335544320,-690563330,214,0,1718017024,6710886,0,2080374784,-960051514,124,0,1718017024,1616936038,240,1979711488,2093796556,1969164,0,1719065600,15753312,0,2080374784,-971214650,124,806354944,808516656,1848880,0,-872415232,-858993460,118,0,-960051712,1063020,0,-973078528,-19474746,108,0,946652672,13003832,0,-973078528,2126956230,7867398,0,416087552,16672304,0,404232206,404232304,14,404226048,404232216,1579032,0,404232304,404232206,112,56438,0,0,0,940572672,-20527508,0,1715208192,-1061109566,205285058,120,-872415028,-858993460,118,806882304,-20546560,8177344,268435456,2013293624,-859014132,118,12976128,2081191936,7785676,1610612736,2013272112,-859014132,118,946616320,2081191936,7785676,0,2080374784,-960446266,7867516,1815613440,-20546560,8177344,0,2080374982,-960430394,124,405823488,-20546560,8177344,0,939524198,404232216,60,1715214336,404240384,3938328,1610612736]},{"sector":10,"data":[939530288,404232216,60,940572870,-20527508,13027014,946616320,-965986288,-960037178,201326790,1727922200,1752721506,16672354,0,-335544320,-656640458,110,1816002560,-855716660,13552844,268435456,2080402488,-960051514,124,12976128,-960070656,8177350,1610612736,2080380976,-960051514,124,-864538624,-858993664,7785676,1610612736,-872409040,-858993460,118,12976128,-960051712,201752262,12976248,-960051588,-960051514,124,-960102202,-960051514,8177350,402653184,-1060733928,410830528,24,1684813824,1616965728,16574048,0,406611558,410916990,24,1718025216,1868980860,15951462,234881024,404232219,404232318,28888,806882304,2081191936,7785676,201326592,939536408,404232216,60,806882304,-960070656,8177350,201326592,-872402920,-858993460,118,-596246528,1718017024,6710886,14448128,-17373498,-960049442,198,1819032576,8257598,0,939524096,3697772,124,0,808452096,1613770752,8177350,0,0,-1061109506,0,0,117309440,1542,1610612736,1818649568,-1016188904,2034694,1675649024,907701350,104847982,6,402659352,1010580504,24,0,1826122806,54,0,1826095104,14183478,285212672,289673540,289673540,289673540,1437226308,1437226410,1437226410]},{"sector":11,"data":[-576039510,-579347081,-579347081,-579347081,404232311,404232216,404232216,404232216,404232216,418912280,404232216,404232216,418912280,404232440,907548696,909522486,922105398,909522486,54,0,909522686,3552822,0,418912504,404232216,909522456,116799030,909522678,909522486,909522486,909522486,909522486,54,117309440,909522678,909522486,909522486,16647926,0,909522432,909522486,254,402653184,404232216,16259320,0,0,0,404232440,404232216,404232216,2037784,0,404232192,404232216,255,0,0,419364864,404232216,404232216,404232216,404232223,1579032,0,16711680,0,404232192,404232216,404232447,404232216,404232216,404690975,404232216,909522456,909522486,909522487,909522486,909522486,4141111,0,0,809435136,909522487,909522486,909522486,16711927,0,0,16711680,909522679,909522486,909522486,909586487,909522486,54,16711680,255,905969664,909522486,922157303,909522486,404232246,16717848,255,905969664,909522486,16725558,0,0,16711680,404232447,1579032,0,922681344,909522486,909522486,909522486,63,402653184,404232216,2037791,0,0,404684800,404232223,1579032]},{"sector":12,"data":[910098432,909522486,909522486,909522486,909522687,406206006,404232216,419371263,404232216,404232216,404232216,248,0,0,404684800,404232216,-232,-1,-1,16777215,0,-65536,-1,-252645121,-252645136,-252645136,267448560,252645135,252645135,252645135,-241,-1,0,0,0,-656640512,7789784,0,-858993544,-960049960,204,-956432384,-1061109562,12632256,0,-33554432,1819044972,108,-956432384,806891616,16696928,0,2113929216,-656877352,112,0,1717986816,1618765414,192,-596246528,404232216,24,410910720,1717986876,8263740,0,-960074696,1824966398,56,1815609344,1824966342,15625324,0,202911774,1717986878,60,0,-606372352,126,0,-612497917,1618932699,192,807272448,1618894944,1978464,0,-960070656,-960051514,198,-33554432,16646144,65024,0,2115508224,6168,126,405798912,403441164,8257584,0,1613764620,792624,126,454757888,404232216,404232216,404232216,404232216,1893259288,0,0,8257560,24,0,-596246528,14448128,0,946629688,0,0,0,0,6168,0,0,1572864]},{"sector":13,"data":[202309632,202116108,1013771276,28,909522540,13878,0,1715208192,2117212172,0,0,0,2122219134,32382,0,0,0,134217728,8,1,0,-1518240256,-2120630911,-604012930,-1588225,-16880514,272137470,2084048896,272137470,947664896,282525438,2084048952,276627198,402653240,1588284,-402653440,-1588285,1715208447,1013334594,-1715208448,-1013334595,252121087,-858993539,1717976184,2115517542,1060323096,-261083088,2137227232,-429431965,1020991680,-616765465,-119504872,-2132739842,1041105408,34488062,2117867520,1014896664,1717986840,1711302246,-606372096,454761339,1013005824,-2042861978,124,2122219008,2117867520,406617624,2117867775,404232216,404232192,406617624,202899456,1576190,1613758464,3170558,-1073741824,16695488,1713635328,2385663,1008205824,16777086,-65536,1588350,0,0,1010571264,402659352,610690560,0,-26448896,1819082348,1614682112,410781244,-859439104,-966381544,946616320,1993137270,806885376,0,806882304,202911792,202911744,806882316,1013317632,6700287,404226048,1579134,0,404226048,48,126,0,404226048,403441152,-2134876112,-965986304,946652886,406329344,2115508248,113671168,-26857444,113671168,2093352508,1815878656,504168140,-1061093888,2093352700,-1067436032]},{"sector":14,"data":[2093401852,214367744,808464408,-960070656,2093401724,-960070656,2014054014,404226048,404226048,404226048,404226048,403441200,101455920,2113929216,8257536,405823488,1613764620,214334464,402659352,-557417472,2025905886,-965986304,-960051458,1718025216,-60397956,-1067041792,1013366976,1718417408,-127113626,1751318016,-27105160,1751318016,-262117256,-1067041792,979816128,-960051712,-960051458,404241408,1008211992,202120704,2026687500,1818682880,-429495176,1616965632,-26844576,-17906176,-960047362,-152648192,-960049442,-960070656,2093401798,1718025216,-262119300,-960070656,2093926086,1718025230,-429495172,812006400,1013320728,1518239232,1008211992,-960051712,2093401798,-960051712,946652870,-960051712,1828640470,1824966144,-960074696,1717986816,1008212028,-1933115904,-26856936,808467456,1009791024,811646976,33950744,202128384,1007422476,1815613440,198,0,0,202911999,0,2013265920,1993112588,2086723584,-597268890,2080374784,2093400262,2081168384,1993133260,2080374784,2093022918,1617312768,-262119176,1979711488,209505484,1818288376,-429496714,939530240,1008211992,100664832,1717962246,1717624892,-429098900,404240384,1008211992,-335544320,-690563330,-603979776,1717986918,2080374784,2093401798,-603979776,1618765414,1979711728,209505484,-603979746,-262119306,2113929216,-66683712,-63950848,473313328,-872415232,1993133260,-973078528]},{"sector":15,"data":[946652870,-973078528,1828640470,-973078528,-965986196,-973078528,108971718,2113929468,2117212236,404229632,236460144,404232192,404232216,404254720,1880627214,14448128,0,940572672,-20527508,-1060733952,209503936,-872362888,1993133260,2081950720,2093022918,2021817344,1993112588,2013316608,1993112588,2014851072,1993112588,2016423936,1993112588,2113929216,209633472,2088926264,2093022918,2080425472,2093022918,2081959936,2093022918,939550208,1008211992,948075520,1008211992,1585152,1008212024,1815660032,-960037178,2087467008,-960037178,-30402560,-20907840,2113929216,2128117272,-865321472,-825438978,2088926208,2093401798,2080425472,2093401798,2081959936,2093401798,8681472,1993133260,-869244928,1993133260,-973027840,108971718,1815660284,946652870,-973027840,2093401798,2115508224,410960064,1684813848,-60399376,1013343744,410916990,-858982376,-959461638,404426439,1893210172,2016417792,1993112588,1575936,1008212024,2081950720,2093401798,-869263360,1993133260,14448128,1717987036,14448128,-824248602,1819032576,8257598,1819031552,8126520,402659328,1046687768,0,12632318,0,395006,1827037952,-865717378,1827037967,-546687366,402659334,406600728,1714618368,3368652,1724645376,13395507,579346944,579347080,1437226376,1437226410,2011002794,2011002845,404232413,404232216,404232216,404289560,-132638696,404289560,909522456]},{"sector":16,"data":[909571638,54,909573632,-134217674,404289560,-164219368,909571590,909522486,909522486,-33554378,909571590,-164219338,65030,909522432,65078,-132638720,63512,0,404289536,404232216,7960,404232192,65304,0,404291328,404232216,404234008,24,65280,404232192,404291352,521672728,404234008,909522456,909522742,926299702,16176,1056964608,909522736,-147442122,65280,-16777216,909571840,926299702,909522736,-16777162,65280,-147442176,909571840,-15198154,65280,909522432,65334,-16777216,404291328,24,909573888,909522486,16182,521672704,7960,520093696,404234008,24,909524736,909522486,909573942,-15198154,404291352,404232216,63512,0,404233984,-232,-1,255,-256,-252645121,-252645136,252645360,252645135,-241,255,1979711488,1994180828,-859015168,-859386664,-1060700672,-1061109568,-33554432,1819044972,1623653888,-20553680,2113929216,1893259480,1711276032,2087085670,-596246336,404232216,1008238080,406611558,-965986178,946652926,-965986304,-294884154,202903040,1013343806,2113929216,8313819,2114717184,1618926555,1613766336,506486910,-964952064,-960051514,16646144,16646398,2115508224,2113935384,202911744,2113941528,806882304,2113932312,454757888,404232216,404232216,-656926696,1572976]},{"sector":17,"data":[1572990,-596246528,14448128,1819031552,56,0,6168,0,24,202116864,1013771276,909536284,13878,403470336,31792,1006632960,3947580,0,0,-2130699264,16777292,1095189760,538976288,217632,0,2517248,50331904,270930432,8,1,0,0,0,2113929216,-2122209919,-2122212931,126,2113929216,-9217,-6205,126,0,-16880640,947715838,16,0,2084048896,272137470,0,0,-415482856,404285415,60,0,-8504296,404258559,60,0,402653184,1588284,0,-256,-402653185,-1588285,-1,255,1715208192,1013334594,0,-256,-1715208193,-1013334595,-1,503316735,2016549390,-858993460,120,1006632960,1717986918,410916924,24,1056964608,808468275,-261083088,224,2130706432,1667465059,-412654749,49382,0,1020991512,417021159,24,-1065353216,-17239840,-1059000072,128,100794368,-29483506,101588542,2,402653184,404258364,406617624,0,1711276032,1717986918,1711302246,102,2130706432,2078006235,454761243,27,-964952064,-965986208,205024454,31942,0,0,-16843264,254,402653184,404258364,406617624,126,402653184,404258364,404232216]}],[{"sector":1,"data":[24,402653184,404232216,1014896664,24,0,202899456,1576190,0,0,1613758464,3170558,0,0,-1073741824,16695488,0,0,1814560768,2649342,0,0,943198208,-16876420,0,0,2097085952,272119932,0,0,0,0,0,402653184,406600764,402659352,24,1717960704,9318,0,0,0,1828613228,1828613228,108,2081953792,2093007558,-964295162,1579132,0,214352384,-966774760,134,939524096,1983409260,-858993444,118,808452096,24624,0,0,201326592,808464408,405811248,12,805306368,202116120,403442700,48,0,1013317632,6700287,0,0,404226048,1579134,0,0,0,404226048,12312,0,0,254,0,0,0,402653184,24,0,201720320,-1067438056,128,939524096,-691616148,1824966358,56,402653184,404256824,404232216,126,2080374784,403441350,-960470992,254,2080374784,1007027910,-972683770,124,201326592,-865321956,202116350,30,-33554432,-54476608,-972683770,124,939524096,-54476704,-960051514,124,-33554432,201721542,808464408,48,2080374784,2093401798,-960051514]},{"sector":2,"data":[124,2080374784,2126956230,201721350,120,0,1579008,404226048,0,0,1579008,404226048,48,0,806882310,202911840,6,0,8257536,32256,0,0,202911840,806882310,96,2080374784,403490502,402659352,24,0,-557398404,-1059266850,124,268435456,-960074696,-960051458,198,-67108864,2087085670,1717986918,252,1006632960,-1061109146,1724039360,60,-134217728,1717986924,1818650214,248,-33554432,2020106854,1717723240,254,-33554432,2020106854,1616928872,240,1006632960,-1061109146,1724303070,58,-973078528,-20527418,-960051514,198,1006632960,404232216,404232216,60,503316480,202116108,-858993652,120,-436207616,2020370022,1717988472,230,-268435456,1616928864,1717723232,254,-973078528,-687931666,-960051514,198,-973078528,-553715994,-960051506,198,2080374784,-960051514,-960051514,124,-67108864,2087085670,1616928864,240,2080374784,-960051514,-556349754,920700,-67108864,2087085670,1717986924,230,2080374784,945866438,-960100852,124,2113929216,404249214,404232216,60,-973078528,-960051514,-960051514,124,-973078528,-960051514,946652870,16,-973078528,-691616058,-285288746,108,-973078528,947678406,-965968840]},{"sector":3,"data":[198,1711276032,1013343846,404232216,60,-33554432,403474118,-960339920,254,1006632960,808464432,808464432,60,0,1893777536,101588024,2,1006632960,202116108,202116108,60,1815613440,198,0,0,0,0,0,16711680,405798912,12,0,0,0,209190912,-858993540,118,-536870912,1819828320,1717986918,124,0,-964952064,-960446272,124,469762048,1815874572,-858993460,118,0,-964952064,-960446210,124,469762048,2016424502,808464432,120,0,-864681984,-858993460,2026638460,-536870912,1986814048,1717986918,230,402653184,406323224,404232216,60,100663296,101580806,101058054,1013343750,-536870912,1818648672,1718384760,230,939524096,404232216,404232216,60,0,-18087936,-690563370,198,0,1725693952,1717986918,102,0,-964952064,-960051514,124,0,1725693952,1717986918,-262119300,0,-864681984,-858993460,504106108,0,1994129408,1616928870,240,0,-964952064,-972277664,124,268435456,821833776,909127728,28,0,-859045888,-858993460,118,0,-960102400,1824966342,56,0,-960102400,-19474730,108,0,1824915456,1815623736]},{"sector":4,"data":[198,0,-960102400,-960051514,-133429634,0,-855769088,-966774760,254,234881024,1880627224,404232216,14,402653184,404232216,404232216,24,1879048192,236460056,404232216,112,-596246528,0,0,0,0,1815613440,-20527418,0,1006632960,-1061109146,1724039360,7346236,-872415232,-859045888,-858993460,118,403439616,-964952016,-960446210,124,940572672,209191020,-858993540,118,-872415232,209190912,-858993540,118,811597824,209190936,-858993540,118,1815609344,209190968,-858993540,118,0,-964952064,-960446272,7346300,940572672,-964951956,-960446210,124,-973078528,-964952064,-960446210,124,811597824,-964952040,-960446210,124,1711276032,406323200,404232216,60,1008205824,406323302,404232216,60,811597824,406323224,404232216,60,12976128,-965986288,-960037178,198,946616320,-965986288,-960037178,198,1575936,1751279358,1717725304,254,0,921436160,-656900554,110,1040187392,-20132756,-858993460,206,940572672,-964951956,-960051514,124,-973078528,-964952064,-960051514,124,811597824,-964952040,-960051514,124,2016411648,-859045684,-858993460,118,811597824,-859045864,-858993460,118,-973078528,-960102400,-960051514]},{"sector":5,"data":[2014054014,12976128,-960051588,-960051514,124,12976128,-960051514,-960051514,124,0,-830734336,-957942050,124,1815609344,1626366052,-429891488,252,2080636928,-690565426,-421079338,16508,0,1824915456,-965986248,0,453902336,2115508248,-669509608,112,806879232,209191008,-858993540,118,403439616,406323248,404232216,60,806879232,-964951968,-960051514,124,806879232,-859045792,-858993460,118,1979711488,1725694172,1717986918,102,14448128,-17373498,-960049442,198,1006632960,4090988,126,0,939524096,3697772,124,0,805306368,808452144,-960053152,124,2080374784,-1297436030,2088938154,0,0,-33554432,101058054,0,-530579456,409757282,-2032377808,4069388,-530579456,409757282,-1697749456,394815,402653184,404226072,1010580504,24,0,1815478272,3566808,0,0,1826095104,14183478,0,289673472,289673540,289673540,289673540,1437226308,1437226410,1437226410,1437226410,-579347030,-579347081,-579347081,-579347081,404232311,404232216,404232216,404232216,404232216,404232216,404232440,404232216,281042968,-960074696,-960051458,198,281443328,-960074696,-960051458,198,268831744,-960074696,-960051458,198,2080374784,-1566401918,2088934050]},{"sector":6,"data":[0,909522432,116799030,909522678,909522486,909522486,909522486,909522486,909522486,54,117309440,909522678,909522486,909522486,116799030,254,0,402653184,-1060733928,410830528,24,0,406611558,410916990,24,0,0,404232440,404232216,404232216,404232216,31,0,404232192,404232216,255,0,0,0,404232447,404232216,404232216,404232216,404232223,404232216,24,0,255,0,404232192,404232216,404232447,404232216,1979711512,209191132,-858993540,118,14448128,-960074696,-960051458,198,909522432,808924726,63,0,0,809435136,909522487,909522486,909522486,16201270,255,0,0,16711680,909522679,909522486,909522486,808924726,909522487,909522486,54,16711680,255,0,909522432,16201270,909522679,909522486,54,-964901376,2093401798,198,872415232,1040591896,1717986918,60,-134217728,-161061268,1818650214,248,7092224,1751279358,1717725304,254,12976128,1751279358,1717725304,254,1585152,1751279358,1717725304,254,0,406323200,404232216,60,1575936,404232252,404232216,60,6700032,404232252,404232216,60,6684672,404232252,404232216]},{"sector":7,"data":[60,404232192,404232216,248,0,0,0,404232223,404232216,-232,-1,-1,-1,255,0,-1,-1,404226303,1579032,404232192,6168,1585152,404232252,404232216,60,-256,-1,0,0,3151872,-960051588,-960051514,124,2013265920,-657666868,-960051508,204,7092224,-960051588,-960051514,124,1585152,-960051588,-960051514,124,1979711488,-964951844,-960051514,124,14448128,-960051588,-960051514,124,0,1717960704,1717986918,-1067425668,-536870912,1719427168,1717986918,-262119300,-268435456,1717992544,1618765414,240,3151872,-960051514,-960051514,124,7092224,-960051514,-960051514,124,1585152,-960051514,-960051514,124,403439616,-960102352,-960051514,-133429634,1575936,1717986918,404232252,60,16711680,0,0,0,403439616,48,0,0,0,0,254,0,0,2115508224,6168,126,0,0,0,-16711936,819986432,418133602,-1697749456,394815,2130706432,2078006235,454761243,27,-964952064,-965986208,205024454,31942,0,1572864,1572990,0,0,0,0,7867416,1815609344,14444]},{"sector":8,"data":[0,12976128,0,0,0,0,0,24,0,941096960,1008211992,0,0,108789760,2080769596,0,0,1715208192,2117212172,0,0,0,2122219008,2122219134,0,0,0,0,0,527872,65536,0,0,0,0,-2119859842,-2120630911,126,-8519680,-1006632997,8323047,0,-16880640,947715838,16,268435456,2097052728,4152,0,-415482856,404285415,60,1008205824,2130706302,3938328,0,402653184,1588284,-16777216,-1,-1010571265,-25,255,1715208192,1013334594,-16777216,-1,-1111647805,-15463,255,840568350,-858993544,120,1715208192,406611558,1579134,0,809448255,-261083088,224,1669267456,1667457919,-1058609305,0,1020991512,417021159,24,-1065353216,-117507872,8437984,0,1041106434,101596926,2,1008205824,404232318,1588350,0,1717986918,1711302246,102,-612433920,461102043,1776411,2080374784,1815634118,946652870,8177164,0,0,16711422,0,410926104,1014896664,32280,1008205824,404232318,1579032,0,404232216,1014896664,24,0,217975832,24,0,1613758464,3170558]},{"sector":9,"data":[0,0,-1061109760,254,0,1814560768,2649342,0,268435456,2088515640,65278,0,2097085952,272119932,0,0,0,0,0,1010580504,402659352,24,610690662,0,0,0,1828613228,1828613228,108,-964945896,108839106,410830470,24,-960364544,1714427916,198,1815609344,-596232084,7785676,404226048,12312,0,0,403439616,808464432,792624,0,202119216,403442700,48,0,1023360102,102,0,404226048,1579134,0,0,0,806885400,0,0,254,0,0,0,1579008,0,403441154,-2134876112,0,1815609344,-959002938,3697862,0,410531864,404232216,126,-964952064,806882310,16696928,0,101107324,-972683716,124,470548480,-20157380,1969164,0,-1061109506,-972683524,124,1614282752,-956514112,8177350,0,201770750,808464408,48,-964952064,-964901178,8177350,0,-960051588,201721470,120,402653184,24,6168,0,1579008,404226048,48,403439616,1623220272,792624,0,2113929216,8257536,0,811597824,201722904,6303768,0,214353532,402659352,24,-964952064]},{"sector":10,"data":[-555819322,8175836,0,-965986288,-960037178,198,1727791104,1719428710,16541286,0,-1061001668,1724039360,60,1828192256,1717986918,16280678,0,1751279358,1717725304,254,1727922176,1752721506,15753312,0,-1061001668,1724309184,58,-960102400,-956381498,13027014,0,404232252,404232216,60,203292672,202116108,7916748,0,1819043558,1718381688,230,1626341376,1616928864,16672354,0,-687935802,-960051514,198,-423231488,-824246538,13027014,0,-960051588,-960051514,124,1727791104,1618765414,15753312,0,-960051588,-556349754,3708,1727791104,1820092006,15099494,0,1623639676,-960099272,124,2122186752,404232282,3938328,0,-960051514,-960051514,124,-960102400,-960051514,1063020,0,-960051514,1828640470,108,-960102400,2084076742,13027014,0,1717986918,404232252,60,-956432384,1613764748,16697026,0,808464444,808464432,60,-1065353216,473460960,132622,0,202116156,202116108,268435516,13003832,0,0,0,0,0,16711680,792624,0,0,0,2013265920,-859014132,118,1625292800,1718384736,8152678,0,2080374784,-960446266,124,203161600,-865321972,7785676]},{"sector":11,"data":[0,2080374784,-960430394,124,907804672,813445170,7876656,0,1979711488,2093796556,7916556,1625292800,1719037024,15099494,0,939530264,404232216,60,101056512,101060096,1717962246,60,1717592288,1718384748,230,406323200,404232216,3938328,0,-335544320,-690563330,214,0,1718017024,6710886,0,2080374784,-960051514,124,0,1718017024,1616936038,240,1979711488,2093796556,1969164,0,1719065600,15753312,0,2080374784,-971214650,124,806354944,808516656,1848880,0,-872415232,-858993460,118,0,-960051712,1063020,0,-973078528,-19474746,108,0,946652672,13003832,0,-973078528,2126956230,7867398,0,416087552,16672304,0,404232206,404232304,14,404226048,404232216,1579032,0,404232304,404232206,112,56438,0,0,0,940572672,-20527508,0,1715208192,-1061109566,205285058,120,-872415028,-858993460,118,806882304,-20546560,8177344,268435456,2013293624,-859014132,118,12976128,2081191936,7785676,1610612736,2013272112,-859014132,118,946616320,2081191936,7785676,0,2080374784,-960446266,7867516,1815613440,-20546560,8177344,0,2080374982]},{"sector":12,"data":[-960430394,124,405823488,-20546560,8177344,0,939524198,404232216,60,1715214336,404240384,3938328,1610612736,939530288,404232216,60,940572870,-20527508,13027014,946616320,-965986288,-960037178,201326790,1727922200,1752721506,16672354,0,-335544320,-656640458,110,1816002560,-855716660,13552844,268435456,2080402488,-960051514,124,12976128,-960070656,8177350,1610612736,2080380976,-960051514,124,-864538624,-858993664,7785676,1610612736,-872409040,-858993460,118,12976128,-960051712,201752262,12976248,-960051588,-960051514,124,-960102202,-960051514,8177350,0,2080374784,-420028722,124,1684813824,1616965728,16574048,67108864,-691089796,-421079338,16508,0,943221958,50796,234881024,404232219,404232318,28888,806882304,2081191936,7785676,201326592,939536408,404232216,60,806882304,-960070656,8177350,201326592,-872402920,-858993460,118,-596246528,1718017024,6710886,14448128,-17373498,-960049442,198,1819032576,8257598,0,939524096,3697772,124,0,808452096,1613770752,8177350,0,-1430633416,1152035506,56,0,117309440,1542,1610612736,1818649568,-1016188904,2034694,1675649024,907701350,104847982,6,402659352,1010580504,24]},{"sector":13,"data":[0,1826122806,54,0,1826095104,14183478,285212672,289673540,289673540,289673540,1437226308,1437226410,1437226410,-576039510,-579347081,-579347081,-579347081,404232311,404232216,404232216,404232216,404232216,418912280,404232216,-1067438056,-965986288,-960037178,939524294,940623468,-20527508,13027014,101455872,-965986288,-960037178,198,1144520704,-1566399846,3687578,909522432,116799030,909522678,909522486,909522486,909522486,909522486,54,117309440,909522678,909522486,909522486,16647926,0,402653184,-1060733928,410830528,24,1717960704,410916924,1579134,0,0,404232440,404232216,404232216,2037784,0,404232192,404232216,255,0,0,419364864,404232216,404232216,404232216,404232223,1579032,0,16711680,0,404232192,404232216,404232447,1579032,-596246528,2081191936,7785676,14448128,-965986288,-960037178,905969862,909522486,4141111,0,0,809435136,909522487,909522486,909522486,16711927,0,0,16711680,909522679,909522486,909522486,909586487,909522486,54,16711680,255,905969664,909522486,922157303,909522486,54,2093350912,2093401798,198,406061056,1715340844,3958374,0,1717988600,1818650358,939524344,1727922284,1752721506]},{"sector":14,"data":[16672354,12976128,1751279358,1717725304,805306622,1727922200,1752721506,16672354,0,939524096,404232216,201326652,406585368,404232216,3938328,6700032,404232252,404232216,60,406585446,404232216,3938328,404232192,404232216,248,0,0,404684800,404232216,-232,-1,-1,16777215,0,-65536,-1,402653439,1579032,404226048,805312536,406585368,404232216,3938328,-256,-1,0,402653184,-964952016,-960051514,8177350,0,-858993544,-960049960,939524300,-964951956,-960051514,8177350,1585152,-960051588,-960051514,124,-596246528,-960070656,8177350,14448128,-960051588,-960051514,124,0,1717986816,1618765414,192,2086691040,1717986918,15753340,1626341376,1717986940,15753340,3151872,-960051514,-960051514,939524220,-960102292,-960051514,8177350,1585152,-960051514,-960051514,124,806882304,-960051712,201752262,1576184,1717986918,404232252,60,255,0,0,403439616,48,0,0,0,16646144,0,0,2115508224,6168,126,0,0,16711680,819986687,418133603,1071279670,1542,-612433920,461102043,1776411,2080374784,1815634118,946652870,8177164,0,8257560,24]},{"sector":15,"data":[0,0,7867416,946629688,0,0,12976128,0,0,0,0,1572864,0,941096960,1008211992,0,0,204999800,30732,0,1715208192,2117212172,0,0,0,2122219134,32382,0,0,0,134217728,8,1,0,-1518240256,-2120630911,-604012930,-1588225,-16880514,272137470,2084048896,272137470,947664896,282525438,2084048952,276627198,402653240,1588284,-402653440,-1588285,1715208447,1013334594,-1715208448,-1013334595,252121087,-858993539,1717976184,2115517542,1060323096,-261083088,2137227232,-429431965,1020991680,-616765465,-119504872,-2132739842,1041105408,34488062,2117867520,1014896664,1717986840,1711302246,-606372096,454761339,1013005824,-2042861978,124,2122219008,2117867520,406617624,2117867775,404232216,404232192,406617624,202899456,1576190,1613758464,3170558,-1073741824,16695488,1713635328,2385663,1008205824,16777086,-65536,1588350,0,0,1010571264,402659352,610690560,0,-26448896,1819082348,1614682112,410781244,-859439104,-966381544,946616320,1993137270,806885376,0,806882304,202911792,202911744,806882316,1013317632,6700287,404226048,1579134,0,404226048,48,126,0,404226048,403441152,-2134876112]},{"sector":16,"data":[-965986304,946652886,406329344,2115508248,113671168,-26857444,113671168,2093352508,1815878656,504168140,-1061093888,2093352700,-1067436032,2093401852,214367744,808464408,-960070656,2093401724,-960070656,2014054014,404226048,404226048,404226048,404226048,403441200,101455920,2113929216,8257536,405823488,1613764620,214334464,402659352,-557417472,2025905886,-965986304,-960051458,1718025216,-60397956,-1067041792,1013366976,1718417408,-127113626,1751318016,-27105160,1751318016,-262117256,-1067041792,979816128,-960051712,-960051458,404241408,1008211992,202120704,2026687500,1818682880,-429495176,1616965632,-26844576,-17906176,-960047362,-152648192,-960049442,-960070656,2093401798,1718025216,-262119300,-960070656,2093926086,1718025230,-429495172,812006400,1013320728,1518239232,1008211992,-960051712,2093401798,-960051712,946652870,-960051712,1828640470,1824966144,-960074696,1717986816,1008212028,-1933115904,-26856936,808467456,1009791024,811646976,33950744,202128384,1007422476,1815613440,198,0,0,202911999,0,2013265920,1993112588,2086723584,-597268890,2080374784,2093400262,2081168384,1993133260,2080374784,2093022918,1617312768,-262119176,1979711488,209505484,1818288376,-429496714,939530240,1008211992,100664832,1717962246,1717624892,-429098900,404240384,1008211992,-335544320,-690563330,-603979776,1717986918,2080374784,2093401798]},{"sector":17,"data":[-603979776,1618765414,1979711728,209505484,-603979746,-262119306,2113929216,-66683712,-63950848,473313328,-872415232,1993133260,-973078528,946652870,-973078528,1828640470,-973078528,-965986196,-973078528,108971718,2113929468,2117212236,404229632,236460144,404232192,404232216,404254720,1880627214,14448128,0,940572672,-20527508,-1060733952,209503936,-872362888,1993133260,2081950720,2093022918,2021817344,1993112588,2013316608,1993112588,2014851072,1993112588,2016423936,1993112588,2113929216,209633472,2088926264,2093022918,2080425472,2093022918,2081959936,2093022918,939550208,1008211992,948075520,1008211992,1585152,1008212024,1815660032,-960037178,2087467008,-960037178,-30402560,-20907840,2113929216,-24052206,-865321472,-825438978,2088926208,2093401798,2080425472,2093401798,2081959936,2093401798,8681472,1993133260,-869244928,1993133260,-973027840,108971718,1815660284,946652870,-973027840,2093401798,2080505856,2095503054,1684813952,-60399376,-831768064,-1200822570,1824915456,13003832,404426240,1893210172,2016417792,1993112588,1575936,1008212024,2081950720,2093401798,-869263360,1993133260,14448128,1717987036,14448128,-824248602,1819032576,8257598,1819031552,8126520,402659328,1046687768,-1182695936,-2119845467,126,395006,1827037952,-865717378,1827037967,-546687366,402659334,406600728,1714618368,3368652,1724645376,13395507]}],[{"sector":1,"data":[579346944,579347080,1437226376,1437226410,2011002794,2011002845,404232413,404232216,404232216,404289560,945827864,-956381588,948075520,-956381588,940316672,-956381588,-1652457984,-2120375903,-164219266,909571590,909522486,909522486,-33554378,909571590,-164219338,65030,2115508224,410960064,1013343768,410916990,24,404289536,404232216,7960,404232192,65304,0,404291328,404232216,404234008,24,65280,404232192,404291352,2094822936,2126937606,953972224,-956381588,926299648,16176,1056964608,909522736,-147442122,65280,-16777216,909571840,926299702,909522736,-16777162,65280,-147442176,909571840,2093350966,-964901178,209596416,2026687612,1718417408,-127113482,-25003008,-20906816,-33503744,-20906816,-31969280,-20906816,939524096,1008211992,1008208896,1008211992,1010973696,1008211992,1006659072,1008211992,404232192,63512,0,404233984,-232,-1,255,-256,404232447,404226048,1008218136,1008211992,-256,255,945827840,946652780,-859015168,-859386664,948075520,946652780,939920384,946652780,2094822912,2093401798,953972224,946652780,1711276032,2087085670,2086723776,1618765414,2086727920,-262112154,-969926656,2093401798,8551424,2093401798,-969908224,2093401798,-969926656,108971718,1712852220,1008221286,65280,0,806882304]},{"sector":2,"data":[0,126,2115508224,2113935384,0,16711680,-466427393,1596651066,-606371962,454761339,1013005824,-2042861978,1572988,1572990,0,202899456,1819031608,56,12976128,0,0,24,406329344,15384,940341248,30732,403470336,31792,1006632960,3947580,0,0,-1258284032,16777330,1095189760,538976288,218144,0,5020928,50331904,270930432,8,1,0,0,0,2113929216,-2122209919,-2122212931,126,2113929216,-9217,-6205,126,0,-16880640,947715838,16,0,2084048896,272137470,0,0,-415482856,404285415,60,0,-8504296,404258559,60,0,402653184,1588284,0,-256,-402653185,-1588285,-1,255,1715208192,1013334594,0,-256,-1715208193,-1013334595,-1,503316735,2016549390,-858993460,120,1006632960,1717986918,410916924,24,1040187392,808468022,-261083088,224,2113929216,1717993062,-294754714,49388,0,1020991512,417021159,24,-1065353216,-17239840,-1059000072,128,100794368,-29483506,101588542,2,402653184,404258364,406617624,0,1711276032,1717986918,1711302246,102,2130706432,2078006235,454761243,27,-964952064,-965986208]},{"sector":3,"data":[205024454,31942,0,0,-16843264,254,402653184,404258364,406617624,126,402653184,404258364,404232216,24,402653184,404232216,1014896664,24,0,202899456,1576190,0,0,1613758464,3170556,0,0,-1073741824,16695488,0,0,1814560768,2649342,0,0,943198208,-16876420,0,0,2097085952,272119932,0,0,0,0,0,402653184,406600764,402659352,24,-960102400,17606,0,0,0,1828613228,1828613228,108,2081953792,2093007558,-964295162,1579132,0,214352384,-966774760,134,939524096,1983409260,-858993444,118,808452096,24624,0,0,201326592,808464408,405811248,12,805306368,202116120,403442700,48,0,1013317632,6700287,0,0,404226048,1579134,0,0,0,404226048,12312,0,0,254,0,0,0,402653184,24,0,201720320,-1067438056,128,939524096,-691616148,1824966358,56,402653184,404256824,404232216,126,2080374784,403441350,-960470992,254,2080374784,1007027910,-972683770,124,201326592,-865321956,202116350,30,-33554432,-54476608]},{"sector":4,"data":[-972683770,124,939524096,-54476704,-960051514,124,-33554432,403441350,808464432,48,2080374784,2093401798,-960051514,124,2080374784,2126956230,201721350,120,0,1579008,404226048,0,0,1579008,404226048,48,0,806882310,202911840,6,0,8257536,32256,0,0,202911840,806882310,96,2080374784,403490502,402659352,24,0,-557398404,-1059266850,124,268435456,-960074696,-960051458,198,-67108864,2087085670,1717986918,252,1006632960,-1061109146,1724039360,60,-134217728,1717986924,1818650214,248,-33554432,2020106854,1717723240,254,-33554432,2020106854,1616928872,240,1006632960,-1061109146,1724303070,58,-973078528,-20527418,-960051514,198,1006632960,404232216,404232216,60,503316480,202116108,-858993652,120,-436207616,2020370022,1717988472,230,-268435456,1616928864,1717723232,254,-973078528,-687931666,-960051514,198,-973078528,-553715994,-960051506,198,2080374784,-960051514,-960051514,124,-67108864,2087085670,1616928864,240,2080374784,-960051514,-556349754,920700,-67108864,2087085670,1717986924,246,2080374784,945866438,-960100852,124,2113929216,404249214,404232216,60,-973078528,-960051514]},{"sector":5,"data":[-960051514,124,-973078528,-960051514,946652870,16,-973078528,-691616058,-285288746,108,-973078528,947678406,-965968840,198,1711276032,1013343846,404232216,60,-33554432,403474118,-960339920,254,1006632960,808464432,808464432,60,0,1893777536,101588024,2,1006632960,202116108,202116108,60,1815613440,198,0,0,0,0,0,16711680,405811200,0,0,0,0,209190912,-858993540,118,-536870912,1819828320,1717986918,124,0,-964952064,-960446272,124,469762048,1815874572,-858993460,118,0,-964952064,-960446210,124,469762048,2016424502,808464432,120,0,-864681984,-858993460,2026638460,-536870912,1986814048,1717986918,230,402653184,406323224,404232216,60,100663296,101580806,101058054,1013343750,-536870912,1818648672,1718384760,230,939524096,404232216,404232216,60,0,-18087936,-690563370,198,0,1725693952,1717986918,102,0,-964952064,-960051514,124,0,1725693952,1717986918,-262119300,0,-864681984,-858993460,504106108,0,1994129408,1616928870,240,0,-964952064,-972277664,124,268435456,821833776,909127728,28,0,-859045888]},{"sector":6,"data":[-858993460,118,0,-859045888,2026687692,48,0,-960102400,-19474730,108,0,1824915456,1815623736,198,0,-960102400,-960051514,-133429634,0,-855769088,-966774760,254,234881024,1880627224,404232216,14,402653184,1579032,404232216,24,1879048192,236460056,404232216,112,1979711488,220,0,0,0,1815613440,-20527418,0,1006632960,-1061109146,1724039360,2080771132,-872415232,-859045888,-858993460,118,403439616,-964952016,-960446210,124,940572672,209191020,-858993540,118,-872415232,209190912,-858993540,118,-864550912,-859045768,-858993460,118,403439616,-964952016,-960446272,124,0,-964952064,-960446272,2014058620,939524096,404495898,408451128,60,-973078528,-964952064,-960446210,124,7091712,-960051588,-960051514,124,905969664,-964951956,-960051514,124,1008205824,406323302,404232216,60,3151872,403474174,-960339920,254,281411584,-960074696,-960051458,198,1575936,-1061001668,1724039360,60,1613764608,1617362432,1717723256,254,-167772160,1616928876,1717723232,254,-436207616,1616928876,1616928864,240,940572672,-964951956,-960051514,124,-973078528,-964952064,-960051514,124,-300220416,1616928864]},{"sector":7,"data":[1717723232,254,-300220416,1616928864,1616928864,240,3151872,1623639676,-960099272,124,201326592,-964952040,-972277664,124,12976128,-960051588,-960051514,124,12976128,-960051514,-960051514,124,3958272,408583806,404232216,60,3697664,-63950832,909127728,28,-268435456,1886940260,1717756128,254,0,-973078528,-965986196,0,1811939328,-964952008,-960446272,124,806879232,209191008,-858993540,118,403439616,406323248,404232216,60,806879232,-964951968,-960051514,124,806879232,-859045792,-858993460,118,268435456,-960074696,-960051458,506468550,0,209190912,-858993540,506468470,3697664,411879166,-960339920,254,1811939328,-855769032,-966774760,254,-33554432,2020106854,1717723240,506468606,0,-964952064,-960446210,1012936828,0,0,0,0,403439616,-855769040,-966774760,254,3958272,-1061001668,1724039360,60,0,-964952064,-972277664,2014058620,0,1815478272,3566808,0,0,913047552,7091739,0,289673472,289673540,289673540,289673540,1437226308,1437226410,1437226410,1437226410,-579347030,-579347081,-579347081,-579347081,404232311,404232216,404232216,404232216,404232216,404232216,404232440,404232216,3151896,-965986288]},{"sector":8,"data":[-960037178,198,7092224,-965986288,-960037178,198,3697664,1751279358,1717725304,254,2080374784,945866438,-960100852,2014058620,909522432,116799030,909522678,909522486,909522486,909522486,909522486,909522486,54,117309440,909522678,909522486,909522486,116799030,254,0,1579008,403474174,-960339920,254,402653184,-855769064,-966774760,254,0,0,404232440,404232216,404232216,404232216,31,0,404232192,404232216,255,0,0,0,404232447,404232216,404232216,404232216,404232223,404232216,24,0,255,0,404232192,404232216,404232447,404232216,8177176,-965986288,-960037178,198,-973078528,209191036,-858993540,118,909522432,808924726,63,0,0,809435136,909522487,909522486,909522486,16201270,255,0,0,16711680,909522679,909522486,909522486,808924726,909522487,909522486,54,16711680,255,0,909522432,16201270,909522679,909522486,54,2093350912,2093401798,198,201326592,1007451660,-858993556,118,-134217728,-161061268,1818650214,248,3697664,1717988600,1818650214,248,27648,1751279358,1717725304,254,3697664,1007422492,-858993556,118,3697664,-17373498]},{"sector":9,"data":[-960049442,198,1575936,404232252,404232216,60,6700032,404232252,404232216,60,1711276032,-964952004,-960446210,124,404232192,404232216,248,0,0,0,404232223,404232216,-232,-1,-1,-1,255,0,-1,-1,2113929471,404249214,404232216,2014058556,946616320,-960051712,-960051514,124,-256,-1,0,0,1575936,-960051588,-960051514,124,2013265920,-657666868,-960051508,204,7092224,-960051588,-960051514,124,1575936,-17373498,-960049442,198,403439616,1725694000,1717986918,102,1811939328,1725694008,1717986918,102,3697664,1623246460,-972682184,124,1811939328,-964952008,-972277664,124,3151872,1717987068,1717988476,246,3151872,-960051514,-960051514,124,403439616,1994129456,1616928870,240,7091712,-960051514,-960051514,124,403439616,-960102352,-960051514,-133429634,1575936,1717986918,404232252,60,268435456,821833776,909127728,2014058524,403439616,48,0,0,0,0,126,0,1815478272,216,0,0,0,0,0,1012936704,946601984,0,0,0,2093350912,0,0,0,-964952064,-965986208]},{"sector":10,"data":[205024454,31942,0,1579008,404226174,0,0,0,0,2014058496,1815609344,14444,0,0,1819017216,0,0,0,404226048,0,0,0,905969664,-859045780,-858993460,118,3697664,1717987068,1717988476,246,1811939328,1994129464,1616928870,240,0,2088532992,2088533116,0,0,0,0,0,527872,65536,0,0,0,2113929216,-2122209919,-2122212931,126,-604013056,-406585345,8323071,0,-16880640,947715838,16,268435456,2097052728,4152,0,-415482856,404285415,60,1008205824,2130706302,3938328,0,402653184,1588284,-16777216,-1,-1010571265,-25,255,1715208192,1013334594,-16777216,-1,-1111647805,-15463,503316735,2016549390,-858993460,120,1717976064,406611558,1579134,1040187392,808468022,-261083088,224,2120646144,1717986918,-1058214290,0,1020991512,417021159,24,-253706112,-252117256,8437984,100794368,-29483506,101588542,2,2117867520,2115508248,6204,1711276032,1717986918,1711302246,102,-606372096,454786011,1776411,-964952064,-965986208,205024454,31942,0,-33554432,16711422,402653184,404258364,406617624,126]},{"sector":11,"data":[2117867520,404232216,1579032,402653184,404232216,1014896664,24,0,217975832,24,0,1613758464,3170558,0,0,-1061109760,254,0,1814560768,2649342,0,268435456,2088515640,65278,0,2097085952,272119932,0,0,0,0,402653184,406600764,402659352,24,1153877702,0,0,0,1828613228,1828613228,402653292,-1027179496,101088448,410830470,24,214352384,-966774760,134,1819031552,-857967048,7785676,808452096,24624,0,0,806882304,808464432,792624,805306368,202116120,403442700,48,0,1023360102,102,0,404226048,1579134,0,0,0,806885400,0,0,254,0,0,0,1579008,0,201720320,-1067438056,128,-965986304,-958998842,3697862,402653184,404256824,404232216,126,113671168,1613764620,16697024,2080374784,1007027910,-972683770,124,1008471040,218025068,1969164,-33554432,-54476608,-972683770,124,-1067436032,-960037696,8177350,-33554432,201721542,808464408,48,-960070656,-960070458,8177350,2080374784,2126956230,201721350,120,402653184,24,6168,0,1579008,404226048,48,201719808,811610136]},{"sector":12,"data":[396312,0,8257536,32256,0,811597824,201722904,6303768,2080374784,403490502,402659352,24,-964952064,-589373754,8175836,268435456,-960074696,-960051458,198,1718025216,1717992550,16541286,1006632960,-1061109146,1724039360,60,1718417408,1717986918,16280678,-33554432,2020106854,1717723752,254,1650916864,1617459304,15753312,1006632960,-1061109146,1724303070,58,-960051712,-960037178,13027014,1006632960,404232216,404232216,60,202120704,-871625716,7916748,-436207616,2020370022,1717988472,230,1616965632,1616928864,16672354,-973078528,-687931666,-960051514,198,-152648192,-959521026,13027014,2080374784,-960051514,-960051514,124,1718025216,1616936038,15753312,2080374784,-960051514,-556349754,920700,1718025216,1718385766,15099494,2080374784,945866438,-960100852,124,1518239232,404232216,3938328,-973078528,-960051514,-960051514,124,-960051712,-960051514,1063020,-973078528,-691616058,-285288746,108,1824966144,2084059260,13026924,1711276032,1013343846,404232216,60,-2033779200,1613764620,16697026,1006632960,808464432,808464432,60,-1065353216,473460960,132622,1006632960,202116108,202116108,268435516,13003832,0,0,0,0,0,822018048,6192]},{"sector":13,"data":[209190912,-858993540,118,1616961536,1717988472,8152678,0,-964952064,-960446272,124,202120192,-859018180,7785676,0,-964952064,-960446210,124,842406912,808482864,7876656,0,-864681984,2093796556,7916556,1616961536,1717991020,15099494,402653184,406323224,404232216,60,394752,101058062,1717962246,-536870852,1818648672,1718384760,230,404240384,404232216,3938328,0,-18087936,-690563370,198,0,1717987036,6710886,0,-964952064,-960051514,124,0,1717987036,1616936038,240,-864681984,2093796556,1969164,0,1617327836,15753312,0,-964952064,-972277664,124,808456192,808464636,1848880,0,-859045888,-858993460,118,0,1717986918,1588326,0,-960102400,-19474730,108,0,943221958,13003832,0,-960102400,2126956230,16256006,0,806931710,16696928,234881024,1880627224,404232216,14,404232192,404226072,1579032,1879048192,236460056,404232216,112,14448128,0,0,0,1815613440,-20527418,0,-1033487360,-1027555136,101465190,-872415108,-859045888,-858993460,118,3151884,-1057044868,8177344,940572672,209191020,-858993540,118,52224,-864285576,7785676,-864550912,-859045768,-858993460]},{"sector":14,"data":[118,3151884,-1061108100,8177344,0,1715208192,1013342304,3933708,504903680,2016942108,3938520,-973078528,-964952064,-960446210,124,2080402486,-960051514,8177350,905969664,-964951956,-960051514,124,6700056,404232248,3938328,403439616,210173440,-1033883624,254,940572870,-20527508,13027014,403439616,-1033487360,1724039360,60,-33529808,1618502246,16672352,-167772160,1616928876,1717723232,254,1616964614,1616928864,15753312,940572672,-964951956,-960051514,124,50688,-960051588,8177350,7395328,1616929008,1717723232,254,1616964638,1616928864,15753312,1575936,1623639676,-960099272,124,1575936,945866364,8177164,12976128,-960051588,-960051514,124,-960102202,-960051514,8177350,406611456,408583806,404232216,1811939388,806355000,808516656,1848880,2013265920,808991792,917696624,126,0,406611456,26172,1811939328,-964952008,-960446272,124,6303768,-864285576,7785676,403439616,406323248,404232216,60,6303768,-960051588,8177350,806879232,-859045792,-858993460,118,1815613440,-956381498,214877894,6,209190912,-858993540,396406,-33538970,806882438,16695904,1811939328,-855769032,-966774760,254,1650916864,1651013736,419325538,28,-964952064,-960446210,1841276]},{"sector":15,"data":[0,0,402653184,-855769040,-966774760,1811939582,1715208248,-1061109566,3958466,0,-964952064,-972277664,7870588,0,1826122806,54,0,1826095104,14183478,285212672,289673540,289673540,289673540,1437226308,1437226410,1437226410,-576039510,-579347081,-579347081,-579347081,404232311,404232216,404232216,404232216,404232216,418912280,404232216,1575960,-965986288,-960037178,939524294,940572780,-20527508,13027014,3697664,1751279358,1717725304,254,-960070656,101464160,410830534,909522544,116799030,909522678,909522486,909522486,909522486,909522486,54,117309440,909522678,909522486,909522486,16647926,0,272109568,403474174,-1027448784,254,272109568,806931710,16696928,0,0,404232440,404232216,404232216,2037784,0,404232192,404232216,255,0,0,419364864,404232216,404232216,404232216,404232223,1579032,0,16711680,0,404232192,404232216,404232447,-971499496,940572796,-20527508,13027014,-872415232,209191032,-858993540,905969782,909522486,4141111,0,0,809435136,909522487,909522486,909522486,16711927,0,0,16711680,909522679,909522486,909522486,909586487,909522486,54,16711680,255,905969664,909522486,922157303,909522486]},{"sector":16,"data":[54,2093350912,2093401798,198,2122189824,-865321972,7785676,-134217728,-161061268,1818650358,-872414984,1828192376,1717986918,16280678,7077888,1751279358,1717725304,254,204242136,-859018180,7785676,3697664,-17373498,-960049442,201326790,406585368,404232216,3938328,6700032,404232252,404232216,60,3697664,-1057044868,8177344,404232192,404232216,248,0,0,404684800,404232216,-232,-1,-1,16777215,0,-65536,-1,2113929471,404249214,404232216,943197244,-960087956,-960051514,8177350,-256,-1,0,402653184,-964952016,-960051514,8177350,2013265920,-657666868,-960051508,939524300,-964951956,-960051514,8177350,3151872,-17373498,-960049442,198,3151872,1717987036,6710886,1811939328,1725694008,1717986918,1811939430,-964952008,205021382,8177158,1811939328,-964952008,-972277664,201326716,1727791128,1820092006,15099494,3151872,-960051514,-960051514,124,3151884,1617327836,15753312,7091712,-960051514,-960051514,124,3151884,-960051514,201752262,1576184,1717986918,404232252,60,808456192,808464636,203175472,403439672,48,0,0,0,8257536,0,1815478272,216,0,0,0,0,808452096,946602012]},{"sector":17,"data":[0,0,31942,0,0,-964952064,-965986208,-835162938,31942,402653184,8257560,6168,0,0,0,7346200,946629688,0,0,1819017216,0,0,0,6168,0,0,1811939328,-859045672,-858993460,1811939446,1727791160,1820092006,15099494,1811939328,1994129464,1616928870,240,2080374784,2088533116,31868,0,0,0,134217728,8,1,0,-1518240256,-2120630911,-604012930,-1588225,-16880514,272137470,2084048896,272137470,947664896,282525438,940576824,276627068,402653240,1588284,-402653440,-1588285,1715208447,1013334594,-1715208448,-1013334595,252121087,-858993539,1717976184,2115517542,1060323096,-261083088,2137227232,-429431965,1020991680,-616765465,-119504872,-2132739842,1041105408,34488062,2117867520,1014896664,1717986840,1711302246,-606372096,454761339,946028032,-868717460,120,2122219008,2117867520,406617624,2117867775,404232216,404232192,406617624,202899456,1576190,1613758464,3170558,-1073741824,16695488,1713635328,2385663,1008205824,16777086,-65536,1588350,0,0,2021142528,805318704,1819044864,0,-26448896,1819082348,-1065603072,821562488,-859439104,-966381544,946616320,1993137270,-1067425792,0,1613764608,405823584,405823488]}],[{"sector":1,"data":[1613764632,1013317632,6700287,808452096,3158268,0,808452096,96,252,0,808452096,403441152,-2134876112,-960070656,2093401814,812658688,-63950800,214726656,-53714888,214726656,2026638392,1815878656,504168140,-121570304,2026638348,-1067436032,2026687736,214760448,808464408,-859015168,2026687608,-859015168,1880624252,808452096,808452096,808452096,808452096,1613764704,405823680,-67108864,16515072,405823488,1613764620,214726656,805318680,-557417472,2025905886,-864538624,-858981172,1718025216,-60397956,-1067041792,1013366976,1718417408,-127113626,1751318016,-27105160,1751318016,-262117256,-1067041792,1046924992,-858993664,-858993412,808482816,2016423984,202120704,2026687500,1818682880,-429495176,1616965632,-26844576,-17906176,-960047362,-152648192,-960049442,-965986304,946652870,1718025216,-262119300,-859015168,477682892,1718025216,-429495172,1624012800,2026641456,817167360,2016423984,-858993664,-53687092,-858993664,813223116,-960051712,-957415722,1824966144,-965986248,-858993664,2016424056,-1933115904,-26856936,1616934912,2019582048,811646976,33950744,404256768,2014844952,1815613440,198,0,0,405811455,0,2013265920,1993112588,1616961536,-597268868,2013265920,2026684620,202120192,1993133180,2013265920,2025913548,1617704960,-262119184,1979711488,209505484,1818288376,-429496714,1879060480]},{"sector":2,"data":[2016423984,201329664,-859042804,1717624952,-429098900,808480768,2016423984,-872415232,-958988546,-134217728,-858993460,2013265920,2026687692,-603979776,1618765414,1979711728,209505484,-603979746,-262117770,2080374784,-133400384,2083524608,406073392,-872415232,1993133260,-872415232,813223116,-973078528,1828650710,-973078528,-965986196,-872415232,209505484,-67108616,-60542824,808459264,472920288,404232192,404232216,808509440,-533712868,14448128,0,1143476224,-25001342,-1067041792,205285056,-872362952,1993133260,2016417792,2025913548,2021947392,1993112588,2013318144,2127330316,818688000,1993133260,2016417792,2026684620,2013265920,2026684620,1010184216,-596627400,2013318144,2025913548,2093770240,2093401798,-865730560,2026687608,1887989760,2016423984,-31978496,-27250676,1815660032,-960037178,2081950720,2093400262,-65532928,-60786592,-1059533824,-20922176,-1059533824,2025898176,13400064,2026687608,2013318144,2026687692,-1059260928,-20922176,-1059260928,2025898176,2115505152,-66683712,1041763328,2080783456,-964901376,2093401798,-973027840,2093401798,-59192320,808464432,813222912,506474748,2020368384,2128633968,1824915456,13003832,1010591232,1013342310,2014841856,2127330316,941100032,1008211992,403439616,2026687608,806879232,2127350988,-965986304,416728830,2013265934,1993112588,-29596145,-27256820,3958272,2117078142,-1061093888,-20922120,2013265948]},{"sector":3,"data":[2025913548,28,0,1575936,2117078142,2084333056,2093400262,2080374784,-133400384,1714618424,3368652,1724645376,13395507,579346944,579347080,1437226376,1437226410,-612901974,-612901906,404232430,404232216,404232216,404289560,2081950744,-960037178,2088926208,-960037178,-25637888,-20907840,1624012800,2026641456,-164219344,909571590,909522486,909522486,-33554378,909571590,-164219338,65030,-956426240,-20566004,1572864,2083526780,0,404289536,404232216,7960,404232192,65304,0,404291328,404232216,404234008,24,65280,404232192,404291352,2088551960,-960037178,2021182464,1993112588,926299648,16176,1056964608,909522736,-147442122,65280,-16777216,909571840,926299702,909522736,-16777162,65280,-147442176,909571840,1010958390,1111254630,205392896,1993133180,1717992448,2087085814,-59192320,-60397978,-67056640,-60786592,107386368,2126956158,-434625536,-959521034,2016417792,2016423984,2021947392,2016423984,2021182464,2025913548,404232192,63512,0,404233984,-232,-1,255,-256,404258559,538449944,-702017480,2093401798,-256,255,2081950720,2093401798,-864550912,-1057436424,2088926400,2093401798,-434631680,-959521034,-602403840,-960051482,-600021504,-960051482,2117626880,-66176800,2084072448,2080651328,-65532928,-858194746,-971502592]},{"sector":4,"data":[2093401798,-835708928,-1061101328,-959683072,2093401798,-971502592,205416134,-958526344,806894694,813182976,406335536,1575966,0,0,60,13395456,0,0,268435456,7395356,0,8177152,0,946224128,-868717460,1579128,404226174,0,67108864,1819031580,56,26112,0,6144,0,13395456,1993133260,-59713536,-858194746,-831465472,-1061101352,1006632960,3947580,0,0,-385868800,16777368,1095189760,538976288,220192,0,7524608,50331904,270930432,8,1,0,0,0,2113929216,-2122209919,-2122212931,126,2113929216,-9217,-6205,126,0,-16880640,947715838,16,0,2084048896,272137470,0,0,-415482856,404285415,60,0,-8504296,404258559,60,0,402653184,1588284,0,-256,-402653185,-1588285,-1,255,1715208192,1013334594,0,-256,-1715208193,-1013334595,-1,503316735,2016549390,-858993460,120,1006632960,1717986918,410916924,24,1056964608,808468275,-261083088,224,2130706432,1667465059,-412654749,49382,0,1020991512,417021159,24,-1065353216,-17239840,-1059000072,128,100794368,-29483506,101588542,2,402653184]},{"sector":5,"data":[404258364,406617624,0,1711276032,1717986918,1711302246,102,2130706432,2078006235,454761243,27,-964952064,-965986208,205024454,31942,0,0,-16843264,254,402653184,404258364,406617624,126,402653184,404258364,404232216,24,402653184,404232216,1014896664,24,0,202899456,1576190,0,0,1613758464,3170558,0,0,-1073741824,16695488,0,0,1814560768,2649342,0,0,943198208,-16876420,0,0,2097085952,272119932,0,0,0,0,0,402653184,406600764,402659352,24,1717960704,9318,0,0,0,1828613228,1828613228,108,2081953792,2093007558,-964295162,1579132,0,214352384,-966774760,134,939524096,1983409260,-858993444,118,808452096,24624,0,0,201326592,808464408,405811248,12,805306368,202116120,403442700,48,0,1013317632,6700287,0,0,404226048,1579134,0,0,0,404226048,12312,0,0,254,0,0,0,402653184,24,0,201720320,-1067438056,128,939524096,-691616148,1824966358,56,402653184,404256824,404232216,126,2080374784]},{"sector":6,"data":[403441350,-960470992,254,2080374784,1007027910,-972683770,124,201326592,-865321956,202116350,30,-33554432,-54476608,-972683770,124,939524096,-54476704,-960051514,124,-33554432,201721542,808464408,48,2080374784,2093401798,-960051514,124,2080374784,2126956230,201721350,120,0,1579008,404226048,0,0,1579008,404226048,48,0,806882310,202911840,6,0,8257536,32256,0,0,202911840,806882310,96,2080374784,403490502,402659352,24,0,-557398404,-1059266850,124,268435456,-960074696,-960051458,198,-67108864,2087085670,1717986918,252,1006632960,-1061109146,1724039360,60,-134217728,1717986924,1818650214,248,-33554432,2020106854,1717723240,254,-33554432,2020106854,1616928872,240,1006632960,-1061109146,1724303070,58,-973078528,-20527418,-960051514,198,1006632960,404232216,404232216,60,503316480,202116108,-858993652,120,-436207616,2020370022,1717988472,230,-268435456,1616928864,1717723232,254,-973078528,-687931666,-960051514,198,-973078528,-553715994,-960051506,198,2080374784,-960051514,-960051514,124,-67108864,2087085670,1616928864,240,2080374784,-960051514,-556349754,920700,-67108864]},{"sector":7,"data":[2087085670,1717986924,230,2080374784,945866438,-960100852,124,2113929216,404249214,404232216,60,-973078528,-960051514,-960051514,124,-973078528,-960051514,946652870,16,-973078528,-691616058,-285288746,108,-973078528,947678406,-965968840,198,1711276032,1013343846,404232216,60,-33554432,403474118,-960339920,254,1006632960,808464432,808464432,60,0,1893777536,101588024,2,1006632960,202116108,202116108,60,1815613440,198,0,0,0,0,0,16711680,405798912,12,0,0,0,209190912,-858993540,118,-536870912,1819828320,1717986918,124,0,-964952064,-960446272,124,469762048,1815874572,-858993460,118,0,-964952064,-960446210,124,469762048,2016424502,808464432,120,0,-864681984,-858993460,2026638460,-536870912,1986814048,1717986918,230,402653184,406323224,404232216,60,100663296,101580806,101058054,1013343750,-536870912,1818648672,1718384760,230,939524096,404232216,404232216,60,0,-18087936,-690563370,198,0,1725693952,1717986918,102,0,-964952064,-960051514,124,0,1725693952,1717986918,-262119300,0,-864681984,-858993460,504106108]},{"sector":8,"data":[1994129408,1616928870,240,0,-964952064,-972277664,124,268435456,821833776,909127728,28,0,-859045888,-858993460,118,0,-960102400,1824966342,56,0,-960102400,-19474730,108,0,1824915456,1815623736,198,0,-960102400,-960051514,-133429634,0,-855769088,-966774760,254,234881024,1880627224,404232216,14,402653184,404232216,404232216,24,1879048192,236460056,404232216,112,-596246528,0,0,0,0,1815613440,-20527418,0,1006632960,-1061109146,1724039360,7346236,-872415232,-859045888,-858993460,118,403439616,-964952016,-960446210,124,940572672,209191020,-858993540,118,1979711488,209191132,-858993540,118,811597824,209190936,-858993540,118,281042944,-960074696,-960051458,198,0,-964952064,-960446272,7346300,940572672,-964951956,-960446210,124,7092224,1751279358,1717725304,254,811597824,-964952040,-960446210,124,1575936,404232252,404232216,60,7092224,-960051588,-960051514,124,811597824,406323224,404232216,60,14448128,-960074696,-960051458,198,-965986304,-960074696,-960051458,198,1575936,1751279358,1717725304,254,268831744,-960074696,-960051458,198,1585152]},{"sector":9,"data":[1751279358,1717725304,254,940572672,-964951956,-960051514,124,1979711488,-964951844,-960051514,124,811597824,-964952040,-960051514,124,3151872,-960051514,-960051514,124,811597824,-859045864,-858993460,118,1585152,404232252,404232216,60,14448128,-960051588,-960051514,124,12976128,-960051514,-960051514,124,404226048,-1061108100,410830528,24,1815609344,1626366052,-429891488,252,1585152,-960051514,-960051514,124,-856162304,-859506484,-858993442,198,3151872,-960051588,-960051514,124,806879232,209191008,-858993540,118,403439616,406323248,404232216,60,806879232,-964951968,-960051514,124,806879232,-859045792,-858993460,118,1979711488,1725694172,1717986918,102,14448128,-17373498,-960049442,198,1006632960,4090988,126,0,939524096,3697772,124,0,805306368,808452144,-960053152,124,1585152,-960051588,-960051514,124,0,-33554432,101058054,0,-530579456,409757282,-2032377808,4069388,-530579456,409757282,-1697749456,394815,402653184,404226072,1010580504,24,0,1815478272,3566808,0,0,1826095104,14183478,0,289673472,289673540,289673540,289673540,1437226308,1437226410,1437226410,1437226410,-579347030]},{"sector":10,"data":[-579347081,-579347081,-579347081,404232311,404232216,404232216,404232216,404232216,404232216,404232440,404232216,404232216,418912280,404232440,404232216,909522456,909522486,909522678,909522486,54,0,909522686,909522486,54,418906112,404232440,404232216,909522456,116799030,909522678,909522486,909522486,909522486,909522486,909522486,54,117309440,909522678,909522486,909522486,116799030,254,0,909522432,909522486,254,0,404232192,418912280,248,0,0,0,404232440,404232216,404232216,404232216,31,0,404232192,404232216,255,0,0,0,404232447,404232216,404232216,404232216,404232223,404232216,24,0,255,0,404232192,404232216,404232447,404232216,404232216,404690968,404232223,404232216,909522456,909522486,909522487,909522486,909522486,808924726,63,0,0,809435136,909522487,909522486,909522486,16201270,255,0,0,16711680,909522679,909522486,909522486,808924726,909522487,909522486,54,16711680,255,0,909522432,16201270,909522679,909522486,404232246,16717848,255,0,909522432,909522486,255,0,0,16711680,404232447,404232216,24]},{"sector":11,"data":[0,909522687,909522486,909522486,909522486,63,0,404232192,404690968,31,0,0,404684800,404232223,404232216,24,0,909522495,909522486,909522486,909522486,909522687,909522486,404232246,419371032,404232447,404232216,404232216,404232216,248,0,0,0,404232223,404232216,-232,-1,-1,-1,255,0,-1,-1,-252645121,-252645136,-252645136,-252645136,252645360,252645135,252645135,252645135,-241,-1,0,0,0,-596246528,-589768488,118,2013265920,-657666868,-960051508,204,-33554432,-1061108026,-1061109568,192,0,1828585472,1819044972,108,-33554432,405823686,-966774760,254,0,-662831104,-656877352,112,0,1717960704,1717986918,-1067425668,0,417101312,404232216,24,2113929216,1717976088,406611558,126,939524096,-20527508,1824966342,56,939524096,-960051604,1819044972,238,503316480,1040980016,1717986918,60,0,-612499456,8313819,0,0,-612497917,1618932699,192,469762048,2086690864,811622496,28,0,-960051588,-960051514,198,0,65024,-33554178,0,0,2115508224,6168,126]},{"sector":12,"data":[101455920,3151884,126,0,1613764620,792624,126,234881024,404232987,404232216,404232216,404232216,404232216,-656926696,28888,0,1572864,1572990,0,0,-596246528,14448128,0,1815609344,14444,0,0,0,0,6168,0,0,0,24,0,202309632,202116108,1013738732,28,913047552,909522486,0,0,1715208192,2117212172,0,0,0,2122219008,2122219134,0,0,0,0,0,527872,65536,0,0,0,0,-2119859842,-2120630911,126,-8519680,-1006632997,8323047,0,-16880640,947715838,16,268435456,2097052728,4152,0,-415482856,404285415,60,1008205824,2130706302,3938328,0,402653184,1588284,-16777216,-1,-1010571265,-25,255,1715208192,1013334594,-16777216,-1,-1111647805,-15463,255,840568350,-858993544,120,1715208192,406611558,1579134,0,809448255,-261083088,224,1669267456,1667457919,-1058609305,0,1020991512,417021159,24,-1065353216,-117507872,8437984,0,1041106434,101596926,2,1008205824,404232318,1588350,0,1717986918,1711302246,102,-612433920]},{"sector":13,"data":[461102043,1776411,2080374784,1815634118,946652870,8177164,0,0,16711422,0,410926104,1014896664,32280,1008205824,404232318,1579032,0,404232216,1014896664,24,0,217975832,24,0,1613758464,3170558,0,0,-1061109760,254,0,1814560768,2649342,0,268435456,2088515640,65278,0,2097085952,272119932,0,0,0,0,0,1010580504,402659352,24,610690662,0,0,0,1828613228,1828613228,108,-964945896,108839106,410830470,24,-960364544,1714427916,198,1815609344,-596232084,7785676,404226048,12312,0,0,403439616,808464432,792624,0,202119216,403442700,48,0,1023360102,102,0,404226048,1579134,0,0,0,806885400,0,0,254,0,0,0,1579008,0,403441154,-2134876112,0,1815609344,-959002938,3697862,0,410531864,404232216,126,-964952064,806882310,16696928,0,101107324,-972683716,124,470548480,-20157380,1969164,0,-1061109506,-972683524,124,1614282752,-956514112,8177350,0,201770750,808464408,48,-964952064,-964901178,8177350]},{"sector":14,"data":[0,-960051588,201721470,120,402653184,24,6168,0,1579008,404226048,48,403439616,1623220272,792624,0,2113929216,8257536,0,811597824,201722904,6303768,0,214353532,402659352,24,-964952064,-555819322,8175836,0,-965986288,-960037178,198,1727791104,1719428710,16541286,0,-1061001668,1724039360,60,1828192256,1717986918,16280678,0,1751279358,1717725304,254,1727922176,1752721506,15753312,0,-1061001668,1724309184,58,-960102400,-956381498,13027014,0,404232252,404232216,60,203292672,202116108,7916748,0,1819043558,1718381688,230,1626341376,1616928864,16672354,0,-687935802,-960051514,198,-423231488,-824246538,13027014,0,-960051588,-960051514,124,1727791104,1618765414,15753312,0,-960051588,-556349754,3708,1727791104,1820092006,15099494,0,1623639676,-960099272,124,2122186752,404232282,3938328,0,-960051514,-960051514,124,-960102400,-960051514,1063020,0,-960051514,1828640470,108,-960102400,2084076742,13027014,0,1717986918,404232252,60,-956432384,1613764748,16697026,0,808464444,808464432,60,-1065353216,473460960,132622,0,202116156]},{"sector":15,"data":[202116108,268435516,13003832,0,0,0,0,0,16711680,792624,0,0,0,2013265920,-859014132,118,1625292800,1718384736,8152678,0,2080374784,-960446266,124,203161600,-865321972,7785676,0,2080374784,-960430394,124,907804672,813445170,7876656,0,1979711488,2093796556,7916556,1625292800,1719037024,15099494,0,939530264,404232216,60,101056512,101060096,1717962246,60,1717592288,1718384748,230,406323200,404232216,3938328,0,-335544320,-690563330,214,0,1718017024,6710886,0,2080374784,-960051514,124,0,1718017024,1616936038,240,1979711488,2093796556,1969164,0,1719065600,15753312,0,2080374784,-971214650,124,806354944,808516656,1848880,0,-872415232,-858993460,118,0,-960051712,1063020,0,-973078528,-19474746,108,0,946652672,13003832,0,-973078528,2126956230,7867398,0,416087552,16672304,0,404232206,404232304,14,404226048,404232216,1579032,0,404232304,404232206,112,56438,0,0,0,940572672,-20527508,0,1715208192,-1061109566,205285058,120,-872415028,-858993460,118]},{"sector":16,"data":[806882304,-20546560,8177344,268435456,2013293624,-859014132,118,-596246528,2081191936,7785676,1610612736,2013272112,-859014132,805306486,940621920,-20527508,13027014,0,2080374784,-960446266,7867516,1815613440,-20546560,8177344,7092224,1751279358,1717725304,254,405823488,-20546560,8177344,1575936,404232252,404232216,939524156,-964951956,-960051514,8177350,1610612736,939530288,404232216,1979711548,940572892,-20527508,13027014,-965986304,-965986288,-960037178,201326790,1727922200,1752721506,16672354,101455872,-965986288,-960037178,805306566,1727922200,1752721506,16672354,268435456,2080402488,-960051514,124,-596246528,-960070656,8177350,1610612736,2080380976,-960051514,402653308,-960102352,-960051514,8177350,1610612736,-872409040,-858993460,805306486,406585368,404232216,3938328,14448128,-960051588,-960051514,124,-960102202,-960051514,8177350,402653184,-1060733928,410830528,24,1684813824,1616965728,16574048,1585152,-960051514,-960051514,124,1718025216,1868980860,15951462,1575936,-960051588,-960051514,124,806882304,2081191936,7785676,201326592,939536408,404232216,60,806882304,-960070656,8177350,201326592,-872402920,-858993460,118,-596246528,1718017024,6710886,14448128,-17373498,-960049442,198,1819032576,8257598]},{"sector":17,"data":[0,939524096,3697772,124,0,808452096,1613770752,8177350,1585152,-960051588,-960051514,124,0,117309440,1542,1610612736,1818649568,-1016188904,2034694,1675649024,907701350,104847982,6,402659352,1010580504,24,0,1826122806,54,0,1826095104,14183478,285212672,289673540,289673540,289673540,1437226308,1437226410,1437226410,-576039510,-579347081,-579347081,-579347081,404232311,404232216,404232216,404232216,404232216,418912280,404232216,404232216,418912280,404232440,907548696,909522486,922105398,909522486,54,0,909522686,3552822,0,418912504,404232216,909522456,116799030,909522678,909522486,909522486,909522486,909522486,54,117309440,909522678,909522486,909522486,16647926,0,909522432,909522486,254,402653184,404232216,16259320,0,0,0,404232440,404232216,404232216,2037784,0,404232192,404232216,255,0,0,419364864,404232216,404232216,404232216,404232223,1579032,0,16711680,0,404232192,404232216,404232447,404232216,404232216,404690975,404232216,909522456,909522486,909522487,909522486,909522486,4141111,0,0,809435136,909522487,909522486,909522486,16711927]}],[{"sector":1,"data":[16711680,909522679,909522486,909522486,909586487,909522486,54,16711680,255,905969664,909522486,922157303,909522486,404232246,16717848,255,905969664,909522486,16725558,0,0,16711680,404232447,1579032,0,922681344,909522486,909522486,909522486,63,402653184,404232216,2037791,0,0,404684800,404232223,1579032,0,910098432,909522486,909522486,909522486,909522687,406206006,404232216,419371263,404232216,404232216,404232216,248,0,0,404684800,404232216,-232,-1,-1,16777215,0,-65536,-1,-252645121,-252645136,-252645136,267448560,252645135,252645135,252645135,-241,-1,0,0,0,-656640512,7789784,0,-858993544,-960049960,204,-956432384,-1061109562,12632256,0,-33554432,1819044972,108,-956432384,806891616,16696928,0,2113929216,-656877352,112,0,1717986816,1618765414,192,-596246528,404232216,24,410910720,1717986876,8263740,0,-960074696,1824966398,56,1815609344,1824966342,15625324,0,202911774,1717986878,60,0,-606372352,126,0,-612497917,1618932699,192,807272448,1618894944,1978464,0,-960070656,-960051514]},{"sector":2,"data":[198,-33554432,16646144,65024,0,2115508224,6168,126,405798912,403441164,8257584,0,1613764620,792624,126,454757888,404232216,404232216,404232216,404232216,1893259288,0,0,8257560,24,0,-596246528,14448128,0,946629688,0,0,0,0,6168,0,0,1572864,0,202309632,202116108,1013771276,28,909522540,13878,0,1715208192,2117212172,0,0,0,2122219134,32382,0,0,0,134217728,8,1,0,-1518240256,-2120630911,-604012930,-1588225,-16880514,272137470,2084048896,272137470,947664896,282525438,2084048952,276627198,402653240,1588284,-402653440,-1588285,1715208447,1013334594,-1715208448,-1013334595,252121087,-858993539,1717976184,2115517542,1060323096,-261083088,2137227232,-429431965,1020991680,-616765465,-119504872,-2132739842,1041105408,34488062,2117867520,1014896664,1717986840,1711302246,-606372096,454761339,1013005824,-2042861978,124,2122219008,2117867520,406617624,2117867775,404232216,404232192,406617624,202899456,1576190,1613758464,3170558,-1073741824,16695488,1713635328,2385663,1008205824,16777086,-65536,1588350,0,0,1010571264,402659352,610690560]},{"sector":3,"data":[-26448896,1819082348,1614682112,410781244,-859439104,-966381544,946616320,1993137270,806885376,0,806882304,202911792,202911744,806882316,1013317632,6700287,404226048,1579134,0,404226048,48,126,0,404226048,403441152,-2134876112,-965986304,946652886,406329344,2115508248,113671168,-26857444,113671168,2093352508,1815878656,504168140,-1061093888,2093352700,-1067436032,2093401852,214367744,808464408,-960070656,2093401724,-960070656,2014054014,404226048,404226048,404226048,404226048,403441200,101455920,2113929216,8257536,405823488,1613764620,214334464,402659352,-557417472,2025905886,-965986304,-960051458,1718025216,-60397956,-1067041792,1013366976,1718417408,-127113626,1751318016,-27105160,1751318016,-262117256,-1067041792,979816128,-960051712,-960051458,404241408,1008211992,202120704,2026687500,1818682880,-429495176,1616965632,-26844576,-17906176,-960047362,-152648192,-960049442,-960070656,2093401798,1718025216,-262119300,-960070656,2093926086,1718025230,-429495172,812006400,1013320728,1518239232,1008211992,-960051712,2093401798,-960051712,946652870,-960051712,1828640470,1824966144,-960074696,1717986816,1008212028,-1933115904,-26856936,808467456,1009791024,811646976,33950744,202128384,1007422476,1815613440,198,0,0,202911999,0,2013265920,1993112588,2086723584,-597268890]},{"sector":4,"data":[2080374784,2093400262,2081168384,1993133260,2080374784,2093022918,1617312768,-262119176,1979711488,209505484,1818288376,-429496714,939530240,1008211992,100664832,1717962246,1717624892,-429098900,404240384,1008211992,-335544320,-690563330,-603979776,1717986918,2080374784,2093401798,-603979776,1618765414,1979711728,209505484,-603979746,-262119306,2113929216,-66683712,-63950848,473313328,-872415232,1993133260,-973078528,946652870,-973078528,1828640470,-973078528,-965986196,-973078528,108971718,2113929468,2117212236,404229632,236460144,404232192,404232216,404254720,1880627214,14448128,0,940572672,-20527508,-1060733952,209503936,-872362888,1993133260,2081950720,2093022918,2021817344,1993112588,2027714048,1993112588,2014851072,1993112588,945827840,-956381588,2113929216,209633472,2088926264,2093022918,-25003008,-20907840,2081959936,2093022918,1008208896,1008211992,948075520,946652780,1585152,1008212024,953972224,-956381588,948075520,-956381588,-30402560,-20907840,942694400,-956381588,-31969280,-20907840,2088926208,2093401798,2094822912,2093401798,2081959936,2093401798,-971502592,2093401798,-869244928,1993133260,1008218112,1008211992,953972224,946652780,-973027840,2093401798,2115508224,410960064,1684813848,-60399376,-971493376,2093401798,-858982400,-959461638,941100231,946652780,2016417792,1993112588,1575936,1008212024,2081950720,2093401798]},{"sector":5,"data":[-869263360,1993133260,14448128,1717987036,14448128,-824248602,1819032576,8257598,1819031552,8126520,402659328,1046687768,941109248,946652780,0,395006,1827037952,-865717378,1827037967,-546687366,402659334,406600728,1714618368,3368652,1724645376,13395507,579346944,579347080,1437226376,1437226410,2011002794,2011002845,404232413,404232216,404232216,404289560,-132638696,404289560,909522456,909571638,54,909573632,-134217674,404289560,-164219368,909571590,909522486,909522486,-33554378,909571590,-164219338,65030,909522432,65078,-132638720,63512,0,404289536,404232216,7960,404232192,65304,0,404291328,404232216,404234008,24,65280,404232192,404291352,521672728,404234008,909522456,909522742,926299702,16176,1056964608,909522736,-147442122,65280,-16777216,909571840,926299702,909522736,-16777162,65280,-147442176,909571840,-15198154,65280,909522432,65334,-16777216,404291328,24,909573888,909522486,16182,521672704,7960,520093696,404234008,24,909524736,909522486,909573942,-15198154,404291352,404232216,63512,0,404233984,-232,-1,255,-256,-252645121,-252645136,252645360,252645135,-241,255,1979711488,1994180828,-859015168,-859386664,-1060700672,-1061109568]},{"sector":6,"data":[-33554432,1819044972,1623653888,-20553680,2113929216,1893259480,1711276032,2087085670,-596246336,404232216,1008238080,406611558,-965986178,946652926,-965986304,-294884154,202903040,1013343806,2113929216,8313819,2114717184,1618926555,1613766336,506486910,-964952064,-960051514,16646144,16646398,2115508224,2113935384,202911744,2113941528,806882304,2113932312,454757888,404232216,404232216,-656926696,1572976,1572990,-596246528,14448128,1819031552,56,0,6168,0,24,202116864,1013771276,909536284,13878,403470336,31792,1006632960,3947580,0,0,486546432,16777407,1095189760,538976288,220960,0,10028288,50331904,270930432,8,1,0,0,0,2113929216,-2122209919,-2122212931,126,2113929216,-9217,-6205,126,0,-16880640,947715838,16,0,2084048896,272137470,0,0,-415482856,404285415,60,0,-8504296,404258559,60,0,402653184,1588284,0,-256,-402653185,-1588285,-1,255,1715208192,1013334594,0,-256,-1715208193,-1013334595,-1,503316735,2016549390,-858993460,120,1006632960,1717986918,410916924,24,1056964608,808468275,-261083088,224,2130706432,1667465059,-412654749,49382]},{"sector":7,"data":[0,1020991512,417021159,24,-1065353216,-17239840,-1059000072,128,100794368,-29483506,101588542,2,402653184,404258364,406617624,0,1711276032,1717986918,1711302246,102,2130706432,2078006235,454761243,27,-964952064,-965986208,205024454,31942,0,0,-16843264,254,402653184,404258364,406617624,126,402653184,404258364,404232216,24,402653184,404232216,1014896664,24,0,202899456,1576190,0,0,1613758464,3170558,0,0,-1073741824,16695488,0,0,1814560768,2649342,0,0,943198208,-16876420,0,0,2097085952,272119932,0,0,0,0,0,402653184,406600764,402659352,24,1717960704,9318,0,0,0,1828613228,1828613228,108,2081953792,2093007558,-964295162,1579132,0,214352384,-966774760,134,939524096,1983409260,-858993444,118,808452096,24624,0,0,201326592,808464408,405811248,12,805306368,202116120,403442700,48,0,1013317632,6700287,0,0,404226048,1579134,0,0,0,404226048,12312,0,0,254,0,0,0,402653184,24]},{"sector":8,"data":[0,201720320,-1067438056,128,939524096,-691616148,1824966358,56,402653184,404256824,404232216,126,2080374784,403441350,-960470992,254,2080374784,1007027910,-972683770,124,201326592,-865321956,202116350,30,-33554432,-54476608,-972683770,124,939524096,-54476704,-960051514,124,-33554432,201721542,808464408,48,2080374784,2093401798,-960051514,124,2080374784,2126956230,201721350,120,0,1579008,404226048,0,0,1579008,404226048,48,0,806882310,202911840,6,0,8257536,32256,0,0,202911840,806882310,96,2080374784,403490502,402659352,24,0,-557398404,-1059266850,124,268435456,-960074696,-960051458,198,-67108864,2087085670,1717986918,252,1006632960,-1061109146,1724039360,60,-134217728,1717986924,1818650214,248,-33554432,2020106854,1717723240,254,-33554432,2020106854,1616928872,240,1006632960,-1061109146,1724303070,58,-973078528,-20527418,-960051514,198,1006632960,404232216,404232216,60,503316480,202116108,-858993652,120,-436207616,2020370022,1717988472,230,-268435456,1616928864,1717723232,254,-973078528,-687931666,-960051514,198,-973078528,-553715994,-960051506,198]},{"sector":9,"data":[2080374784,-960051514,-960051514,124,-67108864,2087085670,1616928864,240,2080374784,-960051514,-556349754,920700,-67108864,2087085670,1717986924,230,2080374784,945866438,-960100852,124,2113929216,404249214,404232216,60,-973078528,-960051514,-960051514,124,-973078528,-960051514,946652870,16,-973078528,-691616058,-285288746,108,-973078528,947678406,-965968840,198,1711276032,1013343846,404232216,60,-33554432,403474118,-960339920,254,1006632960,808464432,808464432,60,0,1893777536,101588024,2,1006632960,202116108,202116108,60,1815613440,198,0,0,0,0,0,16711680,405798912,12,0,0,0,209190912,-858993540,118,-536870912,1819828320,1717986918,124,0,-964952064,-960446272,124,469762048,1815874572,-858993460,118,0,-964952064,-960446210,124,469762048,2016424502,808464432,120,0,-864681984,-858993460,2026638460,-536870912,1986814048,1717986918,230,402653184,406323224,404232216,60,100663296,101580806,101058054,1013343750,-536870912,1818648672,1718384760,230,939524096,404232216,404232216,60,0,-18087936,-690563370,198,0,1725693952,1717986918,102]},{"sector":10,"data":[0,-964952064,-960051514,124,0,1725693952,1717986918,-262119300,0,-864681984,-858993460,504106108,0,1994129408,1616928870,240,0,-964952064,-972277664,124,268435456,821833776,909127728,28,0,-859045888,-858993460,118,0,-960102400,1824966342,56,0,-960102400,-19474730,108,0,1824915456,1815623736,198,0,-960102400,-960051514,-133429634,0,-855769088,-966774760,254,234881024,1880627224,404232216,14,402653184,404232216,404232216,24,1879048192,236460056,404232216,112,-596246528,0,0,0,0,1815613440,-20527418,0,1006632960,-1061109146,1724039360,7346236,-872415232,-859045888,-858993460,118,403439616,-964952016,-960446210,124,940572672,209191020,-858993540,118,-965986304,-965986288,-960037178,198,811597824,209190936,-858993540,118,0,-606348417,454761339,27,0,-964952064,-960446272,7346300,940572672,-964951956,-960446210,124,-973078528,-964952064,-960446210,124,811597824,-964952040,-960446210,124,1711276032,406323200,404232216,60,1008205824,406323302,404232216,60,0,0,0,-16711936,101455872,-965986288,-960037178,198]},{"sector":11,"data":[-964952064,-965986208,205024454,31942,1575936,1751279358,1717725304,254,1585152,1751279358,1717725304,254,7092224,1751279358,1717725304,254,940572672,-964951956,-960051514,124,12976128,1751279358,1717725304,254,6684672,404232252,404232216,60,2016411648,-859045684,-858993460,118,811597824,-859045864,-858993460,118,0,-964901376,2093401798,198,7092224,-960051588,-960051514,124,12976128,-960051514,-960051514,124,404226048,-1061108100,410830528,24,1815609344,1626366052,-429891488,252,1585152,-960051514,-960051514,124,7092224,-960051514,-960051514,124,453902336,2115508248,-669509608,112,404226048,1579032,404232192,6168,403439616,48,0,0,806879232,-964951968,-960051514,124,806879232,-859045792,-858993460,118,12976128,0,0,0,0,0,0,7867416,108789760,2080769596,0,0,16711680,0,0,0,6700032,404232252,404232216,60,0,-33554432,-1061109568,0,0,-33554432,101058054,0,-530579456,409757282,-2032377808,4069388,-530579456,409757282,-1697749456,394815,819986432,418133730,-1697749456,394815,0,1815478272,3566808]},{"sector":12,"data":[0,1826095104,14183478,0,289673472,289673540,289673540,289673540,1437226308,1437226410,1437226410,1437226410,-579347030,-579347081,-579347081,-579347081,404232311,404232216,404232216,404232216,404232216,404232216,404232440,404232216,404232216,418912280,404232440,404232216,909522456,909522486,909522678,909522486,54,0,909522686,909522486,54,418906112,404232440,404232216,909522456,116799030,909522678,909522486,909522486,909522486,909522486,909522486,54,117309440,909522678,909522486,909522486,116799030,254,0,909522432,909522486,254,0,404232192,418912280,248,0,0,0,404232440,404232216,404232216,404232216,31,0,404232192,404232216,255,0,0,0,404232447,404232216,404232216,404232216,404232223,404232216,24,0,255,0,404232192,404232216,404232447,404232216,404232216,404690968,404232223,404232216,909522456,909522486,909522487,909522486,909522486,808924726,63,0,0,809435136,909522487,909522486,909522486,16201270,255,0,0,16711680,909522679,909522486,909522486,808924726,909522487,909522486,54,16711680,255,0,909522432,16201270,909522679,909522486]},{"sector":13,"data":[404232246,16717848,255,0,909522432,909522486,255,0,0,16711680,404232447,404232216,24,0,909522687,909522486,909522486,909522486,63,0,404232192,404690968,31,0,0,404684800,404232223,404232216,24,0,909522495,909522486,909522486,909522486,909522687,909522486,404232246,419371032,404232447,404232216,404232216,404232216,248,0,0,0,404232223,404232216,-232,-1,-1,-1,255,0,-1,-1,-252645121,-252645136,-252645136,-252645136,252645360,252645135,252645135,252645135,-241,-1,0,0,0,-596246528,-589768488,118,2013265920,-657666868,-960051508,204,-33554432,-1061108026,-1061109568,192,0,1828585472,1819044972,108,-33554432,405823686,-966774760,254,0,-662831104,-656877352,112,0,1717960704,1717986918,-1067425668,0,417101312,404232216,24,2113929216,1717976088,406611558,126,939524096,-20527508,1824966342,56,939524096,-960051604,1819044972,238,503316480,1040980016,1717986918,60,0,-612499456,8313819,0,0,-612497917,1618932699,192,469762048,2086690864,811622496,28]},{"sector":14,"data":[0,-960051588,-960051514,198,0,65024,-33554178,0,0,2115508224,6168,126,0,101455920,3151884,126,0,1613764620,792624,126,234881024,404232987,404232216,404232216,404232216,404232216,-656926696,28888,0,1572864,1572990,0,0,-596246528,14448128,0,1815609344,14444,0,0,0,0,6168,0,0,0,24,0,202309632,202116108,1013738732,28,913047552,909522486,0,0,1715208192,2117212172,0,0,0,2122219008,2122219134,0,0,0,0,0,527872,65536,0,0,0,0,-2119859842,-2120630911,126,-8519680,-1006632997,8323047,0,-16880640,947715838,16,268435456,2097052728,4152,0,-415482856,404285415,60,1008205824,2130706302,3938328,0,402653184,1588284,-16777216,-1,-1010571265,-25,255,1715208192,1013334594,-16777216,-1,-1111647805,-15463,255,840568350,-858993544,120,1715208192,406611558,1579134,0,809448255,-261083088,224,1669267456,1667457919,-1058609305,0,1020991512,417021159,24,-1065353216,-117507872]},{"sector":15,"data":[8437984,0,1041106434,101596926,2,1008205824,404232318,1588350,0,1717986918,1711302246,102,-612433920,461102043,1776411,2080374784,1815634118,946652870,8177164,0,0,16711422,0,410926104,1014896664,32280,1008205824,404232318,1579032,0,404232216,1014896664,24,0,217975832,24,0,1613758464,3170558,0,0,-1061109760,254,0,1814560768,2649342,0,268435456,2088515640,65278,0,2097085952,272119932,0,0,0,0,0,1010580504,402659352,24,610690662,0,0,0,1828613228,1828613228,108,-964945896,108839106,410830470,24,-960364544,1714427916,198,1815609344,-596232084,7785676,404226048,12312,0,0,403439616,808464432,792624,0,202119216,403442700,48,0,1023360102,102,0,404226048,1579134,0,0,0,806885400,0,0,254,0,0,0,1579008,0,403441154,-2134876112,0,1815609344,-959002938,3697862,0,410531864,404232216,126,-964952064,806882310,16696928,0,101107324,-972683716,124,470548480,-20157380,1969164]},{"sector":16,"data":[-1061109506,-972683524,124,1614282752,-956514112,8177350,0,201770750,808464408,48,-964952064,-964901178,8177350,0,-960051588,201721470,120,402653184,24,6168,0,1579008,404226048,48,403439616,1623220272,792624,0,2113929216,8257536,0,811597824,201722904,6303768,0,214353532,402659352,24,-964952064,-555819322,8175836,0,-965986288,-960037178,198,1727791104,1719428710,16541286,0,-1061001668,1724039360,60,1828192256,1717986918,16280678,0,1751279358,1717725304,254,1727922176,1752721506,15753312,0,-1061001668,1724309184,58,-960102400,-956381498,13027014,0,404232252,404232216,60,203292672,202116108,7916748,0,1819043558,1718381688,230,1626341376,1616928864,16672354,0,-687935802,-960051514,198,-423231488,-824246538,13027014,0,-960051588,-960051514,124,1727791104,1618765414,15753312,0,-960051588,-556349754,3708,1727791104,1820092006,15099494,0,1623639676,-960099272,124,2122186752,404232282,3938328,0,-960051514,-960051514,124,-960102400,-960051514,1063020,0,-960051514,1828640470,108,-960102400,2084076742,13027014,0,1717986918,404232252]},{"sector":17,"data":[60,-956432384,1613764748,16697026,0,808464444,808464432,60,-1065353216,473460960,132622,0,202116156,202116108,268435516,13003832,0,0,0,0,0,16711680,792624,0,0,0,2013265920,-859014132,118,1625292800,1718384736,8152678,0,2080374784,-960446266,124,203161600,-865321972,7785676,0,2080374784,-960430394,124,907804672,813445170,7876656,0,1979711488,2093796556,7916556,1625292800,1719037024,15099494,0,939530264,404232216,60,101056512,101060096,1717962246,60,1717592288,1718384748,230,406323200,404232216,3938328,0,-335544320,-690563330,214,0,1718017024,6710886,0,2080374784,-960051514,124,0,1718017024,1616936038,240,1979711488,2093796556,1969164,0,1719065600,15753312,0,2080374784,-971214650,124,806354944,808516656,1848880,0,-872415232,-858993460,118,0,-960051712,1063020,0,-973078528,-19474746,108,0,946652672,13003832,0,-973078528,2126956230,7867398,0,416087552,16672304,0,404232206,404232304,14,404226048,404232216,1579032,0,404232304,404232206,112,56438]}],[{"sector":1,"data":[0,0,0,940572672,-20527508,0,1715208192,-1061109566,205285058,120,-872415028,-858993460,118,806882304,-20546560,8177344,268435456,2013293624,-859014132,939524214,940623468,-20527508,13027014,1610612736,2013272112,-859014132,118,-612433920,461102043,1776411,0,2080374784,-960446266,7867516,1815613440,-20546560,8177344,0,2080374982,-960430394,124,405823488,-20546560,8177344,0,939524198,404232216,60,1715214336,404240384,3938328,0,0,0,419365119,940574220,-20527508,13027014,-964952064,-965986208,205024454,201358534,1727922200,1752721506,16672354,1585152,1751279358,1717725304,939524350,1727922284,1752721506,16672354,268435456,2080402488,-960051514,124,1727922374,1752721506,16672354,6684672,404232252,404232216,60,-864538624,-858993664,7785676,1610612736,-872409040,-858993460,118,0,-960070458,13008070,7092224,-960051588,-960051514,124,-960102202,-960051514,8177350,402653184,-1060733928,410830528,24,1684813824,1616965728,16574048,1585152,-960051514,-960051514,939524220,-960102292,-960051514,8177350,234881024,404232219,404232318,28888,404232192,24,404232216,403439616,48,0,0,806882304,-960070656,8177350]},{"sector":2,"data":[201326592,-872402920,-858993460,118,198,0,0,0,0,0,7867416,204999800,30732,0,16711680,0,0,1006632960,406585446,404232216,3938328,0,0,-1061109506,0,0,117309440,1542,1610612736,1818649568,-1016188904,2034694,1675649024,907701350,104847982,819986438,418133731,1071279670,1542,0,1826122806,54,0,1826095104,14183478,285212672,289673540,289673540,289673540,1437226308,1437226410,1437226410,-576039510,-579347081,-579347081,-579347081,404232311,404232216,404232216,404232216,404232216,418912280,404232216,404232216,418912280,404232440,907548696,909522486,922105398,909522486,54,0,909522686,3552822,0,418912504,404232216,909522456,116799030,909522678,909522486,909522486,909522486,909522486,54,117309440,909522678,909522486,909522486,16647926,0,909522432,909522486,254,402653184,404232216,16259320,0,0,0,404232440,404232216,404232216,2037784,0,404232192,404232216,255,0,0,419364864,404232216,404232216,404232216,404232223,1579032,0,16711680,0,404232192,404232216,404232447,404232216,404232216,404690975,404232216,909522456,909522486]},{"sector":3,"data":[909522487,909522486,909522486,4141111,0,0,809435136,909522487,909522486,909522486,16711927,0,0,16711680,909522679,909522486,909522486,909586487,909522486,54,16711680,255,905969664,909522486,922157303,909522486,404232246,16717848,255,905969664,909522486,16725558,0,0,16711680,404232447,1579032,0,922681344,909522486,909522486,909522486,63,402653184,404232216,2037791,0,0,404684800,404232223,1579032,0,910098432,909522486,909522486,909522486,909522687,406206006,404232216,419371263,404232216,404232216,404232216,248,0,0,404684800,404232216,-232,-1,-1,16777215,0,-65536,-1,-252645121,-252645136,-252645136,267448560,252645135,252645135,252645135,-241,-1,0,0,0,-656640512,7789784,0,-858993544,-960049960,204,-956432384,-1061109562,12632256,0,-33554432,1819044972,108,-956432384,806891616,16696928,0,2113929216,-656877352,112,0,1717986816,1618765414,192,-596246528,404232216,24,410910720,1717986876,8263740,0,-960074696,1824966398,56,1815609344,1824966342,15625324,0,202911774,1717986878,60]},{"sector":4,"data":[0,-606372352,126,0,-612497917,1618932699,192,807272448,1618894944,1978464,0,-960070656,-960051514,198,-33554432,16646144,65024,0,2115508224,6168,126,405798912,403441164,8257584,0,1613764620,792624,126,454757888,404232216,404232216,404232216,404232216,1893259288,0,0,8257560,24,0,-596246528,14448128,0,946629688,0,0,0,0,6168,0,0,1572864,0,202309632,202116108,1013771276,28,909522540,13878,0,1715208192,2117212172,0,0,0,2122219134,32382,0,0,0,134217728,8,1,0,-1518240256,-2120630911,-604012930,-1588225,-16880514,272137470,2084048896,272137470,947664896,282525438,2084048952,276627198,402653240,1588284,-402653440,-1588285,1715208447,1013334594,-1715208448,-1013334595,252121087,-858993539,1717976184,2115517542,1060323096,-261083088,2137227232,-429431965,1020991680,-616765465,-119504872,-2132739842,1041105408,34488062,2117867520,1014896664,1717986840,1711302246,-606372096,454761339,1013005824,-2042861978,124,2122219008,2117867520,406617624,2117867775,404232216,404232192,406617624,202899456,1576190,1613758464,3170558,-1073741824]},{"sector":5,"data":[16695488,1713635328,2385663,1008205824,16777086,-65536,1588350,0,0,1010571264,402659352,610690560,0,-26448896,1819082348,1614682112,410781244,-859439104,-966381544,946616320,1993137270,806885376,0,806882304,202911792,202911744,806882316,1013317632,6700287,404226048,1579134,0,404226048,48,126,0,404226048,403441152,-2134876112,-965986304,946652886,406329344,2115508248,113671168,-26857444,113671168,2093352508,1815878656,504168140,-1061093888,2093352700,-1067436032,2093401852,214367744,808464408,-960070656,2093401724,-960070656,2014054014,404226048,404226048,404226048,404226048,403441200,101455920,2113929216,8257536,405823488,1613764620,214334464,402659352,-557417472,2025905886,-965986304,-960051458,1718025216,-60397956,-1067041792,1013366976,1718417408,-127113626,1751318016,-27105160,1751318016,-262117256,-1067041792,979816128,-960051712,-960051458,404241408,1008211992,202120704,2026687500,1818682880,-429495176,1616965632,-26844576,-17906176,-960047362,-152648192,-960049442,-960070656,2093401798,1718025216,-262119300,-960070656,2093926086,1718025230,-429495172,812006400,1013320728,1518239232,1008211992,-960051712,2093401798,-960051712,946652870,-960051712,1828640470,1824966144,-960074696,1717986816,1008212028,-1933115904,-26856936,808467456,1009791024,811646976]},{"sector":6,"data":[33950744,202128384,1007422476,1815613440,198,0,0,202911999,0,2013265920,1993112588,2086723584,-597268890,2080374784,2093400262,2081168384,1993133260,2080374784,2093022918,1617312768,-262119176,1979711488,209505484,1818288376,-429496714,939530240,1008211992,100664832,1717962246,1717624892,-429098900,404240384,1008211992,-335544320,-690563330,-603979776,1717986918,2080374784,2093401798,-603979776,1618765414,1979711728,209505484,-603979746,-262119306,2113929216,-66683712,-63950848,473313328,-872415232,1993133260,-973078528,946652870,-973078528,1828640470,-973078528,-965986196,-973078528,108971718,2113929468,2117212236,404229632,236460144,404232192,404232216,404254720,1880627214,14448128,0,940572672,-20527508,-1060733952,209503936,-872362888,1993133260,2081950720,2093022918,2021817344,1993112588,948075520,-956381588,2014851072,1993112588,-606372096,454761339,2113929216,209633472,2088926264,2093022918,2080425472,2093022918,2081959936,2093022918,939550208,1008211992,948075520,1008211992,0,16711680,940316927,-956381588,1013005824,-2042861978,-30402436,-20907840,-31969280,-20906816,-29083648,-20906816,2088926208,2093401798,-33503744,-20906816,1006659072,1008211992,8681472,1993133260,-869244928,1993133260,2093350912,-964901178,948075520,946652780,-973027840,2093401798,2115508224,410960064,1684813848]},{"sector":7,"data":[-60399376,-969908224,2093401798,8551424,2093401798,404426240,1893210172,404232192,404226048,806882328,0,2081950720,2093401798,-869263360,1993133260,12976128,0,0,202899456,940341368,30732,65280,0,1015119360,1008211992,0,12632318,0,395006,1827037952,-865717378,1827037967,-546687366,1681056006,1596651066,1714618498,3368652,1724645376,13395507,579346944,579347080,1437226376,1437226410,2011002794,2011002845,404232413,404232216,404232216,404289560,-132638696,404289560,909522456,909571638,54,909573632,-134217674,404289560,-164219368,909571590,909522486,909522486,-33554378,909571590,-164219338,65030,909522432,65078,-132638720,63512,0,404289536,404232216,7960,404232192,65304,0,404291328,404232216,404234008,24,65280,404232192,404291352,521672728,404234008,909522456,909522742,926299702,16176,1056964608,909522736,-147442122,65280,-16777216,909571840,926299702,909522736,-16777162,65280,-147442176,909571840,-15198154,65280,909522432,65334,-16777216,404291328,24,909573888,909522486,16182,521672704,7960,520093696,404234008,24,909524736,909522486,909573942,-15198154,404291352,404232216,63512,0,404233984,-232,-1,255]},{"sector":8,"data":[-256,-252645121,-252645136,252645360,252645135,-241,255,1979711488,1994180828,-859015168,-859386664,-1060700672,-1061109568,-33554432,1819044972,1623653888,-20553680,2113929216,1893259480,1711276032,2087085670,-596246336,404232216,1008238080,406611558,-965986178,946652926,-965986304,-294884154,202903040,1013343806,2113929216,8313819,2114717184,1618926555,1613766336,506486910,-964952064,-960051514,16646144,16646398,2115508224,2113935384,202911744,2113941528,806882304,2113932312,454757888,404232216,404232216,-656926696,1572976,1572990,-596246528,14448128,1819031552,56,0,6168,0,24,202116864,1013771276,909536284,13878,403470336,31792,1006632960,3947580,0,0,1358961664,16777445,1095189760,538976288,221472,0,12531968,50331904,270930432,8,1,0,0,0,2113929216,-2122209919,-2122212931,126,2113929216,-9217,-6205,126,0,-16880640,947715838,16,0,2084048896,272137470,0,0,-415482856,404285415,60,0,-8504296,404258559,60,0,402653184,1588284,0,-256,-402653185,-1588285,-1,255,1715208192,1013334594,0,-256,-1715208193,-1013334595,-1,503316735,2016549390,-858993460]},{"sector":9,"data":[120,1006632960,1717986918,410916924,24,1056964608,808468275,-261083088,224,2130706432,1667465059,-412654749,49382,0,1020991512,417021159,24,-1065353216,-17239840,-1059000072,128,100794368,-29483506,101588542,2,402653184,404258364,406617624,0,1711276032,1717986918,1711302246,102,2130706432,2078006235,454761243,27,-964952064,-965986208,205024454,31942,0,0,-16843264,254,402653184,404258364,406617624,126,402653184,404258364,404232216,24,402653184,404232216,1014896664,24,0,202899456,1576190,0,0,1613758464,3170558,0,0,-1073741824,16695488,0,0,1814560768,2649342,0,0,943198208,-16876420,0,0,2097085952,272119932,0,0,0,0,0,402653184,406600764,402659352,24,1717960704,9318,0,0,0,1828613228,1828613228,108,2081953792,2093007558,-964295162,1579132,0,214352384,-966774760,134,939524096,1983409260,-858993444,118,808452096,24624,0,0,201326592,808464408,405811248,12,805306368,202116120,403442700,48,0,1013317632,6700287,0,0,404226048,1579134]},{"sector":10,"data":[0,0,0,404226048,12312,0,0,254,0,0,0,402653184,24,0,201720320,-1067438056,128,939524096,-691616148,1824966358,56,402653184,404256824,404232216,126,2080374784,403441350,-960470992,254,2080374784,1007027910,-972683770,124,201326592,-865321956,202116350,30,-33554432,-54476608,-972683770,124,939524096,-54476704,-960051514,124,-33554432,201721542,808464408,48,2080374784,2093401798,-960051514,124,2080374784,2126956230,201721350,120,0,1579008,404226048,0,0,1579008,404226048,48,0,806882310,202911840,6,0,8257536,32256,0,0,202911840,806882310,96,2080374784,403490502,402659352,24,0,-557398404,-1059266850,124,268435456,-960074696,-960051458,198,-67108864,2087085670,1717986918,252,1006632960,-1061109146,1724039360,60,-134217728,1717986924,1818650214,248,-33554432,2020106854,1717723240,254,-33554432,2020106854,1616928872,240,1006632960,-1061109146,1724303070,58,-973078528,-20527418,-960051514,198,1006632960,404232216,404232216,60,503316480,202116108,-858993652,120,-436207616,2020370022,1717988472]},{"sector":11,"data":[230,-268435456,1616928864,1717723232,254,-973078528,-687931666,-960051514,198,-973078528,-553715994,-960051506,198,2080374784,-960051514,-960051514,124,-67108864,2087085670,1616928864,240,2080374784,-960051514,-556349754,920700,-67108864,2087085670,1717986924,230,2080374784,945866438,-960100852,124,2113929216,404249214,404232216,60,-973078528,-960051514,-960051514,124,-973078528,-960051514,946652870,16,-973078528,-691616058,-285288746,108,-973078528,947678406,-965968840,198,1711276032,1013343846,404232216,60,-33554432,403474118,-960339920,254,1006632960,808464432,808464432,60,0,1893777536,101588024,2,1006632960,202116108,202116108,60,1815613440,198,0,0,0,0,0,16711680,405798912,12,0,0,0,209190912,-858993540,118,-536870912,1819828320,1717986918,124,0,-964952064,-960446272,124,469762048,1815874572,-858993460,118,0,-964952064,-960446210,124,469762048,2016424502,808464432,120,0,-864681984,-858993460,2026638460,-536870912,1986814048,1717986918,230,402653184,406323224,404232216,60,100663296,101580806,101058054,1013343750,-536870912,1818648672,1718384760]},{"sector":12,"data":[230,939524096,404232216,404232216,60,0,-18087936,-690563370,198,0,1725693952,1717986918,102,0,-964952064,-960051514,124,0,1725693952,1717986918,-262119300,0,-864681984,-858993460,504106108,0,1994129408,1616928870,240,0,-964952064,-972277664,124,268435456,821833776,909127728,28,0,-859045888,-858993460,118,0,-960102400,1824966342,56,0,-960102400,-19474730,108,0,1824915456,1815623736,198,0,-960102400,-960051514,-133429634,0,-855769088,-966774760,254,234881024,1880627224,404232216,14,402653184,404232216,404232216,24,1879048192,236460056,404232216,112,-596246528,0,0,0,0,1815613440,-20527418,0,1006632960,-1061109146,1724039360,7346236,-872415232,-859045888,-858993460,118,403439616,-964952016,-960446210,124,940572672,209191020,-858993540,118,-872415232,209190912,-858993540,118,811597824,209190936,-858993540,118,1815609344,209190968,-858993540,118,0,-964952064,-960446272,7346300,940572672,-964951956,-960446210,124,-973078528,-964952064,-960446210,124,811597824,-964952040,-960446210,124,1711276032,406323200,404232216]},{"sector":13,"data":[60,1008205824,406323302,404232216,60,811597824,406323224,404232216,60,12976128,-965986288,-960037178,198,946616320,-965986288,-960037178,198,1575936,1751279358,1717725304,254,0,921436160,-656900554,110,1040187392,-20132756,-858993460,206,940572672,-964951956,-960051514,124,-973078528,-964952064,-960051514,124,811597824,-964952040,-960051514,124,2016411648,-859045684,-858993460,118,811597824,-859045864,-858993460,118,-973078528,-960102400,-960051514,2014054014,12976128,-960051588,-960051514,124,12976128,-960051514,-960051514,124,0,-964952064,-957950258,124,1815609344,1626366052,-429891488,252,2080636928,-690565426,-421079338,16508,-856162304,-859506484,-858993442,198,453902336,2115508248,-669509608,112,806879232,209191008,-858993540,118,403439616,406323248,404232216,60,806879232,-964951968,-960051514,124,806879232,-859045792,-858993460,118,1979711488,1725694172,1717986918,102,14448128,-17373498,-960049442,198,1006632960,4090988,126,0,939524096,3697772,124,0,805306368,808452144,-960053152,124,0,-33554432,-1061109568,0,0,-33554432,101058054,0,-530579456,409757282,-2032377808]},{"sector":14,"data":[4069388,-530579456,409757282,-1697749456,394815,402653184,404226072,1010580504,24,0,1815478272,3566808,0,0,-964901376,2093401798,198,289673472,289673540,289673540,289673540,1437226308,1437226410,1437226410,1437226410,-579347030,-579347081,-579347081,-579347081,404232311,404232216,404232216,404232216,404232216,404232216,404232440,404232216,404232216,418912280,404232440,404232216,909522456,909522486,909522678,909522486,54,0,909522686,909522486,54,418906112,404232440,404232216,909522456,116799030,909522678,909522486,909522486,909522486,909522486,909522486,54,117309440,909522678,909522486,909522486,116799030,254,0,909522432,909522486,254,0,404232192,418912280,248,0,0,0,404232440,404232216,404232216,404232216,31,0,404232192,404232216,255,0,0,0,404232447,404232216,404232216,404232216,404232223,404232216,24,0,255,0,404232192,404232216,404232447,404232216,404232216,404690968,404232223,404232216,909522456,909522486,909522487,909522486,909522486,808924726,63,0,0,809435136,909522487,909522486,909522486,16201270,255,0,0,16711680,909522679]},{"sector":15,"data":[909522486,909522486,808924726,909522487,909522486,54,16711680,255,0,909522432,16201270,909522679,909522486,404232246,16717848,255,0,909522432,909522486,255,0,0,16711680,404232447,404232216,24,0,909522687,909522486,909522486,909522486,63,0,404232192,404690968,31,0,0,404684800,404232223,404232216,24,0,909522495,909522486,909522486,909522486,909522687,909522486,404232246,419371032,404232447,404232216,404232216,404232216,248,0,0,0,404232223,404232216,-232,-1,-1,-1,255,0,-1,-1,-252645121,-252645136,-252645136,-252645136,252645360,252645135,252645135,252645135,-241,-1,0,0,0,-596246528,-589768488,118,2013265920,-657666868,-960051508,204,-33554432,-1061108026,-1061109568,192,0,1828585472,1819044972,108,-33554432,405823686,-966774760,254,0,-662831104,-656877352,112,0,1717960704,1717986918,-1067425668,0,417101312,404232216,24,2113929216,1717976088,406611558,126,939524096,-20527508,1824966342,56,939524096,-960051604,1819044972,238,503316480,1040980016,1717986918]},{"sector":16,"data":[60,0,-612499456,8313819,0,0,-612497917,1618932699,192,469762048,2086690864,811622496,28,0,-960051588,-960051514,198,0,65024,-33554178,0,0,2115508224,6168,126,0,101455920,3151884,126,0,1613764620,792624,126,234881024,404232987,404232216,404232216,404232216,404232216,-656926696,28888,0,1572864,1572990,0,0,-596246528,14448128,0,1815609344,14444,0,0,0,0,6168,0,0,0,24,0,202309632,202116108,1013738732,28,913047552,909522486,0,0,1715208192,2117212172,0,0,0,2122219008,2122219134,0,0,0,0,0,527872,65536,0,0,0,0,-2119859842,-2120630911,126,-8519680,-1006632997,8323047,0,-16880640,947715838,16,268435456,2097052728,4152,0,-415482856,404285415,60,1008205824,2130706302,3938328,0,402653184,1588284,-16777216,-1,-1010571265,-25,255,1715208192,1013334594,-16777216,-1,-1111647805,-15463,255,840568350,-858993544,120,1715208192,406611558,1579134]},{"sector":17,"data":[0,809448255,-261083088,224,1669267456,1667457919,-1058609305,0,1020991512,417021159,24,-1065353216,-117507872,8437984,0,1041106434,101596926,2,1008205824,404232318,1588350,0,1717986918,1711302246,102,-612433920,461102043,1776411,2080374784,1815634118,946652870,8177164,0,0,16711422,0,410926104,1014896664,32280,1008205824,404232318,1579032,0,404232216,1014896664,24,0,217975832,24,0,1613758464,3170558,0,0,-1061109760,254,0,1814560768,2649342,0,268435456,2088515640,65278,0,2097085952,272119932,0,0,0,0,0,1010580504,402659352,24,610690662,0,0,0,1828613228,1828613228,108,-964945896,108839106,410830470,24,-960364544,1714427916,198,1815609344,-596232084,7785676,404226048,12312,0,0,403439616,808464432,792624,0,202119216,403442700,48,0,1023360102,102,0,404226048,1579134,0,0,0,806885400,0,0,254,0,0,0,1579008,0,403441154,-2134876112,0,1815609344,-959002938,3697862,0,410531864]}],[{"sector":1,"data":[404232216,126,-964952064,806882310,16696928,0,101107324,-972683716,124,470548480,-20157380,1969164,0,-1061109506,-972683524,124,1614282752,-956514112,8177350,0,201770750,808464408,48,-964952064,-964901178,8177350,0,-960051588,201721470,120,402653184,24,6168,0,1579008,404226048,48,403439616,1623220272,792624,0,2113929216,8257536,0,811597824,201722904,6303768,0,214353532,402659352,24,-964952064,-555819322,8175836,0,-965986288,-960037178,198,1727791104,1719428710,16541286,0,-1061001668,1724039360,60,1828192256,1717986918,16280678,0,1751279358,1717725304,254,1727922176,1752721506,15753312,0,-1061001668,1724309184,58,-960102400,-956381498,13027014,0,404232252,404232216,60,203292672,202116108,7916748,0,1819043558,1718381688,230,1626341376,1616928864,16672354,0,-687935802,-960051514,198,-423231488,-824246538,13027014,0,-960051588,-960051514,124,1727791104,1618765414,15753312,0,-960051588,-556349754,3708,1727791104,1820092006,15099494,0,1623639676,-960099272,124,2122186752,404232282,3938328,0,-960051514,-960051514,124]},{"sector":2,"data":[-960102400,-960051514,1063020,0,-960051514,1828640470,108,-960102400,2084076742,13027014,0,1717986918,404232252,60,-956432384,1613764748,16697026,0,808464444,808464432,60,-1065353216,473460960,132622,0,202116156,202116108,268435516,13003832,0,0,0,0,0,16711680,792624,0,0,0,2013265920,-859014132,118,1625292800,1718384736,8152678,0,2080374784,-960446266,124,203161600,-865321972,7785676,0,2080374784,-960430394,124,907804672,813445170,7876656,0,1979711488,2093796556,7916556,1625292800,1719037024,15099494,0,939530264,404232216,60,101056512,101060096,1717962246,60,1717592288,1718384748,230,406323200,404232216,3938328,0,-335544320,-690563330,214,0,1718017024,6710886,0,2080374784,-960051514,124,0,1718017024,1616936038,240,1979711488,2093796556,1969164,0,1719065600,15753312,0,2080374784,-971214650,124,806354944,808516656,1848880,0,-872415232,-858993460,118,0,-960051712,1063020,0,-973078528,-19474746,108,0,946652672,13003832,0,-973078528,2126956230,7867398,0,416087552]},{"sector":3,"data":[16672304,0,404232206,404232304,14,404226048,404232216,1579032,0,404232304,404232206,112,56438,0,0,0,940572672,-20527508,0,1715208192,-1061109566,205285058,120,-872415028,-858993460,118,806882304,-20546560,8177344,268435456,2013293624,-859014132,118,12976128,2081191936,7785676,1610612736,2013272112,-859014132,118,946616320,2081191936,7785676,0,2080374784,-960446266,7867516,1815613440,-20546560,8177344,0,2080374982,-960430394,124,405823488,-20546560,8177344,0,939524198,404232216,60,1715214336,404240384,3938328,1610612736,939530288,404232216,60,940572870,-20527508,13027014,946616320,-965986288,-960037178,201326790,1727922200,1752721506,16672354,0,-335544320,-656640458,110,1816002560,-855716660,13552844,268435456,2080402488,-960051514,124,12976128,-960070656,8177350,1610612736,2080380976,-960051514,124,-864538624,-858993664,7785676,1610612736,-872409040,-858993460,118,12976128,-960051712,201752262,12976248,-960051588,-960051514,124,-960102202,-960051514,8177350,0,2080374784,-420028722,124,1684813824,1616965728,16574048,67108864,-691089796,-421079338,16508,1718025216,1868980860,15951462,234881024]},{"sector":4,"data":[404232219,404232318,28888,806882304,2081191936,7785676,201326592,939536408,404232216,60,806882304,-960070656,8177350,201326592,-872402920,-858993460,118,-596246528,1718017024,6710886,14448128,-17373498,-960049442,198,1819032576,8257598,0,939524096,3697772,124,0,808452096,1613770752,8177350,0,0,-1061109506,0,0,117309440,1542,1610612736,1818649568,-1016188904,2034694,1675649024,907701350,104847982,6,402659352,1010580504,24,0,1826122806,54,0,2093350912,2093401798,285212870,289673540,289673540,289673540,1437226308,1437226410,1437226410,-576039510,-579347081,-579347081,-579347081,404232311,404232216,404232216,404232216,404232216,418912280,404232216,404232216,418912280,404232440,907548696,909522486,922105398,909522486,54,0,909522686,3552822,0,418912504,404232216,909522456,116799030,909522678,909522486,909522486,909522486,909522486,54,117309440,909522678,909522486,909522486,16647926,0,909522432,909522486,254,402653184,404232216,16259320,0,0,0,404232440,404232216,404232216,2037784,0,404232192,404232216,255,0,0,419364864,404232216,404232216,404232216,404232223]},{"sector":5,"data":[1579032,0,16711680,0,404232192,404232216,404232447,404232216,404232216,404690975,404232216,909522456,909522486,909522487,909522486,909522486,4141111,0,0,809435136,909522487,909522486,909522486,16711927,0,0,16711680,909522679,909522486,909522486,909586487,909522486,54,16711680,255,905969664,909522486,922157303,909522486,404232246,16717848,255,905969664,909522486,16725558,0,0,16711680,404232447,1579032,0,922681344,909522486,909522486,909522486,63,402653184,404232216,2037791,0,0,404684800,404232223,1579032,0,910098432,909522486,909522486,909522486,909522687,406206006,404232216,419371263,404232216,404232216,404232216,248,0,0,404684800,404232216,-232,-1,-1,16777215,0,-65536,-1,-252645121,-252645136,-252645136,267448560,252645135,252645135,252645135,-241,-1,0,0,0,-656640512,7789784,0,-858993544,-960049960,204,-956432384,-1061109562,12632256,0,-33554432,1819044972,108,-956432384,806891616,16696928,0,2113929216,-656877352,112,0,1717986816,1618765414,192,-596246528,404232216,24,410910720]},{"sector":6,"data":[1717986876,8263740,0,-960074696,1824966398,56,1815609344,1824966342,15625324,0,202911774,1717986878,60,0,-606372352,126,0,-612497917,1618932699,192,807272448,1618894944,1978464,0,-960070656,-960051514,198,-33554432,16646144,65024,0,2115508224,6168,126,405798912,403441164,8257584,0,1613764620,792624,126,454757888,404232216,404232216,404232216,404232216,1893259288,0,0,8257560,24,0,-596246528,14448128,0,946629688,0,0,0,0,6168,0,0,1572864,0,202309632,202116108,1013771276,28,909522540,13878,0,1715208192,2117212172,0,0,0,2122219134,32382,0,0,0,134217728,8,1,0,-1518240256,-2120630911,-604012930,-1588225,-16880514,272137470,2084048896,272137470,947664896,282525438,2084048952,276627198,402653240,1588284,-402653440,-1588285,1715208447,1013334594,-1715208448,-1013334595,252121087,-858993539,1717976184,2115517542,1060323096,-261083088,2137227232,-429431965,1020991680,-616765465,-119504872,-2132739842,1041105408,34488062,2117867520,1014896664,1717986840,1711302246,-606372096,454761339,1013005824,-2042861978]},{"sector":7,"data":[124,2122219008,2117867520,406617624,2117867775,404232216,404232192,406617624,202899456,1576190,1613758464,3170558,-1073741824,16695488,1713635328,2385663,1008205824,16777086,-65536,1588350,0,0,1010571264,402659352,610690560,0,-26448896,1819082348,1614682112,410781244,-859439104,-966381544,946616320,1993137270,806885376,0,806882304,202911792,202911744,806882316,1013317632,6700287,404226048,1579134,0,404226048,48,126,0,404226048,403441152,-2134876112,-965986304,946652886,406329344,2115508248,113671168,-26857444,113671168,2093352508,1815878656,504168140,-1061093888,2093352700,-1067436032,2093401852,214367744,808464408,-960070656,2093401724,-960070656,2014054014,404226048,404226048,404226048,404226048,403441200,101455920,2113929216,8257536,405823488,1613764620,214334464,402659352,-557417472,2025905886,-965986304,-960051458,1718025216,-60397956,-1067041792,1013366976,1718417408,-127113626,1751318016,-27105160,1751318016,-262117256,-1067041792,979816128,-960051712,-960051458,404241408,1008211992,202120704,2026687500,1818682880,-429495176,1616965632,-26844576,-17906176,-960047362,-152648192,-960049442,-960070656,2093401798,1718025216,-262119300,-960070656,2093926086,1718025230,-429495172,812006400,1013320728,1518239232,1008211992,-960051712,2093401798]},{"sector":8,"data":[-960051712,946652870,-960051712,1828640470,1824966144,-960074696,1717986816,1008212028,-1933115904,-26856936,808467456,1009791024,811646976,33950744,202128384,1007422476,1815613440,198,0,0,202911999,0,2013265920,1993112588,2086723584,-597268890,2080374784,2093400262,2081168384,1993133260,2080374784,2093022918,1617312768,-262119176,1979711488,209505484,1818288376,-429496714,939530240,1008211992,100664832,1717962246,1717624892,-429098900,404240384,1008211992,-335544320,-690563330,-603979776,1717986918,2080374784,2093401798,-603979776,1618765414,1979711728,209505484,-603979746,-262119306,2113929216,-66683712,-63950848,473313328,-872415232,1993133260,-973078528,946652870,-973078528,1828640470,-973078528,-965986196,-973078528,108971718,2113929468,2117212236,404229632,236460144,404232192,404232216,404254720,1880627214,14448128,0,940572672,-20527508,-1060733952,209503936,-872362888,1993133260,2081950720,2093022918,2021817344,1993112588,2013316608,1993112588,2014851072,1993112588,2016423936,1993112588,2113929216,209633472,2088926264,2093022918,2080425472,2093022918,2081959936,2093022918,939550208,1008211992,948075520,1008211992,1585152,1008212024,1815660032,-960037178,2087467008,-960037178,-30402560,-20907840,2113929216,-24052206,-865321472,-825438978,2088926208,2093401798,2080425472,2093401798,2081959936,2093401798]},{"sector":9,"data":[8681472,1993133260,-869244928,1993133260,-973027840,108971718,1815660284,946652870,-973027840,2093401798,2080505856,2095503054,1684813952,-60399376,-831768064,-1200822570,-858982400,-959461638,404426439,1893210172,2016417792,1993112588,1575936,1008212024,2081950720,2093401798,-869263360,1993133260,14448128,1717987036,14448128,-824248602,1819032576,8257598,1819031552,8126520,402659328,1046687768,0,12632318,0,395006,1827037952,-865717378,1827037967,-546687366,402659334,406600728,1714618368,3368652,2093350912,-964901178,579346944,579347080,1437226376,1437226410,2011002794,2011002845,404232413,404232216,404232216,404289560,-132638696,404289560,909522456,909571638,54,909573632,-134217674,404289560,-164219368,909571590,909522486,909522486,-33554378,909571590,-164219338,65030,909522432,65078,-132638720,63512,0,404289536,404232216,7960,404232192,65304,0,404291328,404232216,404234008,24,65280,404232192,404291352,521672728,404234008,909522456,909522742,926299702,16176,1056964608,909522736,-147442122,65280,-16777216,909571840,926299702,909522736,-16777162,65280,-147442176,909571840,-15198154,65280,909522432,65334,-16777216,404291328,24,909573888,909522486,16182,521672704,7960,520093696,404234008]},{"sector":10,"data":[24,909524736,909522486,909573942,-15198154,404291352,404232216,63512,0,404233984,-232,-1,255,-256,-252645121,-252645136,252645360,252645135,-241,255,1979711488,1994180828,-859015168,-859386664,-1060700672,-1061109568,-33554432,1819044972,1623653888,-20553680,2113929216,1893259480,1711276032,2087085670,-596246336,404232216,1008238080,406611558,-965986178,946652926,-965986304,-294884154,202903040,1013343806,2113929216,8313819,2114717184,1618926555,1613766336,506486910,-964952064,-960051514,16646144,16646398,2115508224,2113935384,202911744,2113941528,806882304,2113932312,454757888,404232216,404232216,-656926696,1572976,1572990,-596246528,14448128,1819031552,56,0,6168,0,24,202116864,1013771276,909536284,13878,403470336,31792,1006632960,3947580,0,0,1292504320,1869767529,1952870259,760433952,542330692,539578920,1095189792,1936278560,2036427888,1852786208,1766203508,168650092,1142969165,1444959055,1769173605,891317871,540028974,1126777640,1920561263,1952999273,943272224,959524145,1293955385,1869767529,1952870259,1919894304,1766596720,1936614755,1293968485,1919251553,543973737,1917853741,1919250543,1864399220,1766662246,1936683619,544499311,543976513,1751607666,1914729332,1919251301,543450486,16711706,909522679]},{"sector":11,"data":[]},{"sector":12,"data":[-1,4235264,1297615710,1482184787,12376,113,5505024,0,0,16777216,0,0,0,0,0,0,371099950,109850112,1405812760,516238878,2139095062,1204228098,1979777027,55542021,1528791043,-58655797,168916291,-1341950528,272420736,118359669,-822041925,788475642,-1609433054,41747020,45417109,51184341,-1607793803,-1591173019,-1583831912,-1578589754,65774108,1368428688,102651734,119471260,173022990,-2144373532,124915964,-1279249576,-1670321280,540967930,91553792,7792722,385814106,1048576020,1946157100,-1070376951,-768376397,1347964395,-466434934,-125050671,-2101507240,2046757632,725516344,309592064,1397774166,30271569,1493172541,1583306843,-401729675,1048576042,1946157099,-397193194,20775403,1951947520,868233994,-343755822,249036546,1316607,1583292167,34917209,20854527,-402207913,1048576111,1946157100,-1262287102,1024839048,57818112,725352632,1023424262,208797760,3489411,-972720896,16787718,544522251,855900345,691962075,57933824,989872315,1929393438,891194116,734724864,35121347,1717956,637664440,514000007,650677248,-1560132473,-1022951392,-65517,1397310550,-1070397877,-1910062962,-1090492922,-1262616558,375041,128381948,15213684,-1003616767,-1107185602,96010676,-1493959680,619224071,385814017,108265492,2885318,113689344,-1023344596,1955134592]},{"sector":13,"data":[-2013495286,-13759884,771759662,-822069855,82609146,22931552,1183444107,407276306,1628456585,505347886,1436307456,1183575179,205949186,425603,1951946845,-1201604087,-303562751,-998022911,52994,1016181754,990278976,1946307094,641630241,443810048,1048613043,1946157097,999469841,1912615702,112649,838870690,-1070349349,648084163,1958742528,637978123,28835840,-1009044992,-1816936397,1048836803,1946222641,3532813,208977931,3212999,28835841,-1009044992,-1070366029,1048836803,1946157105,5105677,208977931,3212999,28835840,-1009044992,-1070366029,1048640195,1962999847,990299685,1048773376,1946157103,9037831,242597899,-402652744,251527484,-311099333,117377771,28835887,-1009044992,-1070366029,1048640195,1946157095,792625972,863240192,3868358,5367811,3096195,185103617,857109696,185068480,-1207011904,-169345023,990838272,-337742592,789511946,112640,-1279009998,-1010814078,725516334,74711040,-889192008,-872451352,725516334,74711040,-889192008,-872441112,1048587904,1946157101,178184,-352276504,772152871,57935488,1956654600,7873795,2089676939,-1900006640,-1064417064,309568,1957164028,520568833,-1950098638,871467984,109971199,-1960443586,648021022,-1610084725,71270438,-16054155,-74758027,-2144975637,1047855423,38243110,71762726,846382651,-1039939957,38222630,992356466,141951607,-1960389117,-701824393,38243110]},{"sector":14,"data":[71762726,-970210773,-805109130,67618342,41287435,-1014760565,195682822,638678271,83398,17155622,41257254,72714534,49927,-1469782960,-352029695,-396303360,829751434,1692848304,1962967528,1304616,1625564020,-534639436,1506921600,-864016413,-1188893950,860946444,-469701687,-519985052,-220112392,1374378179,-541802485,-575405451,1962953192,-422465468,4253796,-997573771,937976038,858944768,243936969,98762798,-350035127,-419450869,2156644,367729525,-352320839,-1469979648,-336038896,-1469979648,-487033584,112878,-1010814013,15452467,35939556,1036253408,276037633,45618034,-8218104,-469045248,233509748,-351796808,134264835,16745114,112880,-1010814013,-1275068099,1913418754,-1466768376,-350063614,-454807012,184362130,-352261180,865265152,-469701687,973218962,1979113668,112644,-1010814013,-1275068099,1913287684,-1469717494,-350063356,-454807012,184231013,-352261180,862316032,-469701687,973349989,1979113668,112644,-1010814013,-1168975733,1525432224,989856037,-1207667261,-1664942079,192983291,-1342016037,549081616,190508607,-402426405,772669450,1316607,-1023409736,-1207558560,-661782464,10630911,10761983,10751628,10618567,-1943141233,-1174390506,-1863500032,-91189104,378416884,110035001,110035108,520552610,549109810,-1016992193,-541802485,-575405451,1962941416,-423327210,1239140,-997585547,166225126,-1207667456,868417537]},{"sector":15,"data":[-919354432,1692664043,-119537116,-1262482493,-1274907169,1829085,-997583243,317220070,-1341295360,-396040449,74776585,-1023409736,868466739,-469701687,-536730524,-1072970760,-542110092,15458534,35939556,283840117,-521740880,1692664043,74777124,-1023409736,197378099,1960685760,1390391298,-301782598,112730,-1262482493,-1274907169,2156765,468196213,-1340705536,-396040495,225771538,1625736330,1962936808,112644,-1010814013,15452467,35939556,784595168,3940095,-1023409736,1008664366,-90389760,235008488,1316607,242597899,3016446,3030656,870807042,28885952,-1061895424,1914031609,520300064,637977475,1414545281,-2144988299,1967915647,1200236044,1954588675,112644,-1010814013,-1152139213,-1014039552,1346273574,1967935232,151424542,1048651279,-67043331,1726222709,188485412,113706613,25165879,1526727096,604223683,1914031609,1977879049,46396933,-1061931147,1914031609,1200236089,1963108357,2139170344,1947858946,2139170336,1948514306,2139170328,1948645378,2139170320,1946811394,2139170312,1963719682,-390057207,28900734,-1070349568,151424707,-1346914289,-50540297,-50529028,992410876,-67045370,-50529028,1979514108,-90167796,1964975104,112644,-1010814013,252249742,-139479112,-50529072,-50529028,104539900,-50593544,-50529028,242613500,16424998,188489508,28836980,-1070349568,-18237,-2144943986,-67105218,-1608110987,725352458,708576372]},{"sector":16,"data":[12066933,650153726,16001,309670228,172326,1949316669,808598789,28836981,-1070349568,16769987,516173552,-2128213979,1967282751,2139170336,1968130306,2139104792,292901636,-400651482,1008634367,1040616448,112640,-1010814013,1443241553,-268388265,12507278,-1090056480,146344062,-1493987328,1946157496,47107,520576607,1344324441,1229736264,-524201136,1396961280,1095508051,106307138,-1070378665,235440830,1053044255,129566854,1973875456,1599684609,-1021354489,200983272,856061120,840368064,67156228,112721,70391551,628408331,200976104,857633984,840368064,1958742788,-90839024,158711819,-1193680295,-1073020927,-1070376509,-1070376509,512476153,-75298127,-1206881025,-470351862,-1014900597,-1394079277,-1204294912,801981232,427130940,3939977,4064908,-2012575813,-1169029553,162799663,-346414643,164870933,176683905,2095610483,1975520000,180585221,-919343381,-2012852342,-1979699954,-109050033,-2012973825,-1962922482,-25099657,175440948,178470528,-1107069696,1334510712,248392452,70434567,1049208051,1602945042,1960512264,230314542,-855002080,-1979534303,1959922199,1126288645,1048638955,1946157102,-852708851,773229089,818577408,783425997,-1017503283,-115390278,1200313283,70532354,1048578677,1962936995,75020291,-16502109,-624731369,317190,822018309,1745290251,384005,889926399,872742919,889127173,-603485941,396549,17512191,1963352839]},{"sector":17,"data":[956235782,872933643,317188,17512962,-1425640185,1023344646,1963393291,436998,688602879,-1274631416,1090453510,872874251,317188,17515264,-687590393,1174470660,872874251,317188,1477134594,-687590392,1224867844,872976651,317188,-1207220735,1040583943,1392443398,872874251,17131525,17520127,1661353479,1493106694,872856075,317188,17521663,-1173965817,16711686,-1572864,233893888,3616,0,16711680,538976288,538976288,538976288,1895825184,1633905780,1684104051,1952514149,808662644,1970040880,1936719987,1885863986,1952671094,1627414898,829580643,3158065,1752395636,6382185,1702066551,1819636736,2046849129,1953066597,1952514152,1952514097,1952514098,1752170547,1885957225,1935868019,1634074739,1885893747,1835165952,842347831,1819632128,1667853676,7102834,-16747423,3473459,3407922,3604534,3735608,822095921,842072113,3354880,822096689,875626546,3485952,822097457,1397817088,102650449,-1672128937,1053040398,-1977221098,-620101027,-75493772,-1207599600,199983107,132890675,-1006624536,218109502,-1993998080,-15858875,1560286230,520576862,1482381658,526023,-53804981,-1090443288,110013440,-401735362,-930286198,1040616966,100738561,19308546,648023046,-1609562623,-1173769209,567090552,567095476,108200764,-383878726,12058809,1009765699,-1173981824,-1427562839,1354773248,626564253,4059136,518241008]}]],[[{"sector":1,"data":[-1763114123,70248448,1929478205,-1610168827,988348170,-1437352188,-182130674,200759016,-1172998976,1048584323,1962936994,654755339,162791424,99295693,1929165800,108718174,-402216728,1827144389,-1606516734,192151562,184605416,-1274776366,-400438007,1048638811,1946157100,527284741,-890752533,4209923,-1912190349,637615622,-1610342773,135170854,1065363104,637826305,-2096871677,-236845373,542226951,745914379,-1273030726,-1172189943,162799520,-1070390835,-1006628189,637539902,772621704,272001,267091967,2623174,551139841,567085492,-1090500888,1877584506,-1944140812,557365704,-787496573,-773205527,65655273,167787969,2951282,1050877706,-661732607,-1064386509,-1951657537,15630839,1338936224,-1527513778,113713148,318,-1070335293,-1128349554,6666240,-1559984346,-930349022,38045478,-83876701,1448543939,-1209511087,-385649663,-1070399346,-1591295858,-1830289342,639333632,-402620767,309657737,17735974,1962967272,1048651273,-1073741386,1119487347,-396039394,1550975094,177616523,-1064384372,-150990663,178128353,-1996434816,-2013261180,-1191177068,113704961,-62818,365791156,-1912602440,-1073694528,4367142,8299302,17736486,-1237417690,1977614337,-1230821884,8435713,-398491463,-272960015,1499199517,-1022927010,-2145515846,-16080834,-768408971,1038871545,57982976,-1008730051,1894131120,-1073057308,145228916,-1007091340]},{"sector":2,"data":[1,37632,1,-2147445824,0,0,0,0,106151987,-1811509714,-2049270,639601446,1950488459,1468737115,1959922436,650808147,721831819,1347618497,84207809,-389943296,115982594,-1995793757,-1962238962,-1945463242,-1178562872,-503906288,-2146787835,1149829330,341084178,-956300871,-32858618,-846744322,1961101845,123426829,-1700544461,178037514,1532502251,1204233735,637534212,235292553,-1774810361,-1643722998,-1258488822,-1206530681,1527185409,1381172931,1962947048,-2049245,639601446,1950488459,1468737047,1959922436,-11737073,177868427,-1667168541,-187701238,-1022928038,1329804080,1363234893,777082710,177356484,-1190206274,-201588728,1583307174,1396988611,1380926240,-51380144,-1911619138,-1089533690,146374668,1973875456,-1912145379,637615622,-1610334581,135170854,1031808672,-2096598012,-169736505,650377991,16860614,38127398,-953794944,16778309,-326894841,-1962469872,1153902324,637534212,638221449,804039,1153902080,637534222,410823,1153902208,653262856,33555655,38061862,1465253888,11069454,118906463,75270438,172279590,-953810944,329714756,239897638,105170726,-953810944,2116,2145914455,151424512,-2147434737,-1189894210,-1477246720,-2135335051,16824382,519300328,329760519,855703737,380367808,1153902087,1593835524,2089363031,1153902090,637534220,935111,1153902080,638822150,638078092,33555655]},{"sector":3,"data":[38061862,12124160,1364592130,2156558,638017113,803969,637825794,-502381313,-998023192,109970960,-970587842,-1022950395,9977483,-1259271703,365820040,-1070398861,1916534845,1006680067,195,-67108864,373212190,1975854592,35842066,91507570,-176869572,35055694,-109822094,1228310830,512503312,-13758389,1007700238,-1272155089,-1172369911,567091378,1228326190,32434192,-780920974,158674748,909848142,-982183863,-1261401530,-350106366,-1396498460,273523502,1912720360,1019770058,1010005050,-386828995,-445513284,-143511492,-210290372,808243763,-389020776,796000680,809250164,960274802,-489579145,-489563509,-754720047,213508331,-1090056704,-2048390492,1946513921,-152917501,378406,788529082,273483399,58017852,1006687977,-385649330,1295777942,1094466676,1396447348,-303496331,1967733760,19196163,58016572,-385810711,-1590755515,537725604,1040167712,175402607,1866318846,-385649562,-2010185939,-385179106,508952849,-1279320306,-1092930806,-2144990556,796196669,1916877996,2002402310,639634434,125109562,343195658,1139010375,1031808583,638612735,1962950016,-806664205,-1323398866,-2129925366,1997222143,187744010,1579138027,520143081,-19928738,8452737,-957807754,1976699902,-20977405,109981190,-1993998018,127928342,-400570182,772145351,20842126,-1610047194,12773383,-400569414,-2098659149,1090159360,-1897331850,-1993452802,-1174392042,-1662509073,866201088]},{"sector":4,"data":[10414080,-400553286,-1319501681,786617098,3348105,-1590798869,537725604,1037775392,175402607,1866318846,-385649562,-2010186159,-351625186,-1532940746,538971402,1866324786,-32869274,1852784067,854131572,512241406,401279651,1933638275,-31201021,1006491880,-385649726,-1993408999,771765526,1007701409,1007121421,-385649654,-1021313557,992935935,1930591286,171748370,222038132,540804212,-1993423880,-116229066,521019075,567085492,179946271,-137219328,1958743025,-236432891,-1031775489,-855460816,-1912159455,637615622,-1610084725,69110566,650130336,637798342,637618056,637683593,-2096871543,-337508669,102664486,12781472,-1946157056,-1995249898,236120358,494386199,-1202599630,365811712,-160730535,1718878914,1946222208,1374587489,-1915223624,-854350026,-162631147,-2146187002,116803445,1946293193,439782720,604277268,1963015293,38570795,-1979431798,-773271327,-773271335,63239897,1946502283,1447118850,67172737,-108983950,57884672,1592807656,-167262589,1971386692,-838968892,-1040277123,1913715072,109971077,-1960443586,648021022,-1610084725,20938790,-2128213899,67109503,-1014823052,-336731642,130426372,378406660,646648551,12784361]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1229457933,978142541,1397703712,1397577760,1769096224,745694582,1919243808,1852795251,925774368,539828280,825178416,825831225,1297615373,1884495955,1718182757,1952539497,544108393,1936876886,544108393,221261362,1886339850,1734963833,824210536,758659129,825833777,1667845408,1869836146,1126200422,779121263,220465677,1634226954,544698212,541933906,1634953572]},{"sector":10,"data":[1684368482,168633390,1314013527,977751625,1634226976,544698212,541933906,1634953572,543517794,544501614,1886418291,1702130287,1852776548,1768453152,2037588083,1835365491,168633390,1314013527,977751625,1634226976,544698212,541933906,1763734377,1937055854,1851859045,1633886308,544483182,1679844706,1650553705,778331500,1158286628,1380930130,1229463610,776815949,542333267,1970365810,1936028265,1397703712,808334112,1919885360,1734961184,779249000,1158286628,1380930130,1849761850,1954039072,1701080677,1699553380,2037542765,1851870496,1919248225,544434464,1701997665,544826465,1953721961,1701604449,220474980,1381123338,540693071,1162692936,1498623565,1701978195,1919513969,1629516645,808984686,758528120,1702060386,1634541668,1852401763,220474981,1381123338,540693071,1629515598,1818845558,1701601889,1954047264,1701080677,1701650532,2037542765,1935767328,1970234912,607020142,1380256269,978472786,1634620704,543517794,1663070068,1920233071,1092643951,1814048818,560295529,1158286628,1380930130,1146495034,541807433,1869440365,1629518194,1668246636,1919906913,1919705376,2036621669,1936615712,1819042164,607020133,537332237,538976288,1297621024,1917067347,1919252073,1953459744,1936615712,1819042164,221144165,604638474,539232781,1702131813,1684366446,1835363616,544830063,1684955496,544433516,1767994977,1818386796,220474981,1852394762,1836412265,1095583776,2053731104]},{"sector":11,"data":[1702043749,1869881460,776676384,1225395492,1635021678,1684368492,808599840,1851877408,1919249508,1836412448,544367970,220474916,1936607498,1819042164,1696621669,1919251576,543973742,540029505,1684955496,779249004,1460276516,1229869633,540690254,543516756,1751607624,1835355424,544830063,1634038337,544434464,1986096757,1634494817,778398818,220465677,1380013834,1196312910,1750343738,843128933,1766596656,1998611822,1629516641,1634038380,1696627044,1818386798,221144165,168633354,1314013527,977751625,1986939168,1684630625,1918988320,1952804193,1763734117,1919905383,540697701,906628388,1210075956,543713129,1869440333,1092647282,543253874,1629516649,1818845558,1701601889,218762542,1750344714,1881174889,1919381362,1763732833,1752440947,1919950949,1919250543,1864399220,1766662246,1936683619,544499311,1886547779,1952543343,778989417,0,0,42965,44049,55836704,56885248,12058624,41466626,1048835634,1962934304,672565765,378194688,-1295318999,872362912,512438006,-1959878652,782239758,1963016064,1996697104,1200303620,1945647876,855149316,113476562,-947132958,-695477622,38409865,203,-1070335488,-1604213970,-1604082898,69110574,244002464,-2094096376,10510654,-2144464011,225771839,72825646,-1993463177,-341810914,1048784411,1962975331,1065365019,773158148,-1604116855,1631486766,141820064,1665041198,745865376,-502873213,915091133]},{"sector":12,"data":[-167010207,-2094118795,10511166,-771009676,-1959900299,782263094,-1604241783,71616302,720044032,1630964526,1049308832,-1959878557,-1039990204,38111534,-2026978677,-1037368252,71665966,17155630,-970062731,-970062843,-1959919100,-1197448938,-617480191,-341789749,866235138,-875525184,54061306,-225746573,24936494,777811200,772015302,294019,-970050700,-1959919356,-1014300068,71566126,71207726,244002464,-2144428024,276103485,39160622,359977019,72680238,192205627,-502872189,112869,-2016683214,1418407671,1426271748,1418276356,96873988,-1279792380,-1291654238,-876596309,46721274,-628417165,25133102,773354751,771835902,-1962780789,116048346,-1207245887,-1278541823,-1291654238,-1950338132,-386217008,393413274,-2144413045,1946157439,1342057994,112641,-1278485710,-1291654230,-876596318,41478394,-225760909,-1959870414,782238750,-1610084725,37716014,-1057095052,-502873213,1418407667,2089430532,-1193768447,-1278541823,-876596318,1139299834,-1947038974,1940042707,2088775221,-1414332415,992881781,1719075924,28837746,1574646272,-571977013,-318023167,-1959913356,-1037368252,72649006,71696686,38152494,-1070342933,-1959867555,782238782,-1610084725,71139374,-947713676,-1275731450,-1947997279,1141059266,1166618114,1149971970,784476932,772031881,771818950,83398,72649006,-397239061,190448000,-1960545043,1143680706,1178283524,1947760388,1177103882,1174482436,772139778]},{"sector":13,"data":[67126982,72649006,201289705,773092607,772031883,184828931,772044013,990135811,-385648944,-326958921,-1962469872,1962880732,1961691908,1183526413,1140928004,1187393028,-1959918592,19792965,-13761468,-1959918988,-1993473467,-30539196,-30539451,-1993998012,-1993997193,-953808265,3143,239585062,777519104,-1056816085,-930412840,67101057,654049317,637945737,1476939657,-1962485567,-1998392,-67099389,638028070,1442992009,-208973225,19654670,-2090967206,788140228,771837438,771837182,721699979,1418276546,772764676,771904515,771904905,-385596023,-969998680,-1578564603,1572877310,240277195,-84098328,1583020683,-1598832629,-30479500,-30539451,-326958780,-1962469872,2005477084,2139694596,650720010,638341001,638472073,637947785,772296585,-1056684917,-930412840,67101057,654049317,-1993996407,1465254479,-401673333,1583284381,-99564413,38046510,38111022,38045998,71600942,71665454,71600430,21823022,21888558,-379725941,-1959854842,-1959919036,-805108652,-276037837,69110574,244002464,777429000,1963016064,2005610012,1976974082,199985926,773027327,990148355,-1962510864,1978469371,113476357,-1017194014,786074464,-1610342853,992879218,2006976030,371928603,-1031036924,112841267,200406784,772371922,1963081600,-1007066877,-3934111,38950,-326412805,1393749123,-1983892654,1183447622,-163149320,-1996190938,-1960379322,1317601868,-473428994,73174337]},{"sector":14,"data":[1912632808,-230258334,-1980475767,1552808030,6613002,1183407474,-262764050,-772383095,1590820462,776631036,-1609949441,1962934589,25356354,236912430,81312,1586181493,1960512504,1342057988,-161576191,74767115,22019630,28859226,-92372224,1208251392,-1946526070,-2134155803,125085691,-352130176,-2002275582,-957613474,-1960379818,-1960443273,-1960442753,1960512287,133574191,776958978,-1190901877,-503905280,-686045653,1177240690,-27911172,-30526350,-1959919289,-503905721,-686569981,-1017185288,280676235,65206016,13796294,-259261813,335312387,-8126850,1913091856,-251755553,-1481385354,-1514993941,-1498217749,-1865487367,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42783,8421376,-2147483648,-1515716608,0,0,8388659,-1845493760,65535,-28160,-1845491712,65535,-28160,0,-805306368,8978176,0,-1073741824,134283008,-1946353665,1451946566,-296842252,787510922,-1504311673,1477871150,243740326,-2043763132,-1146730954,1555998312,117386918,510961268,777146704,-1508624641,775421742,771913727,772044799,-13748993,-13761932]},{"sector":15,"data":[254674036,-1508628991,251727662,-1962872856,17772254,15132679,-2088763463,1996553854,-61982456,1317733235,-1202381060,-880017280,855651258,-1077702922,788178344,-1506138487,1008110638,243871398,-661739970,-1510749557,-1064370381,-1901719874,-204829733,772083621,4622765,-136166075,-896806002,-201590901,-1488196955,-67436544,-67372037,-67372037,-67372037,1273691131,1560281255,-774993121,-61986327,1585651060,19792126,782652982,-1504176512,1040264704,-2144426428,10896918,-2080414231,1962999390,1048784609,1946199668,-1503872201,71798574,38244142,-1157132498,-1892768152,-1892809657,-1892810169,110046727,1532667412,1453534808,378023590,-1993431464,782648350,-1505347960,1947139886,-1959869530,-1959918521,-1959919025,1468608023,260648452,38242606,195,0,16776960,10420224,16776960,-812449792,6144,0,0,0,0,0,-16777216,255,-16777069,255,147,0,0,0,-83886080,-2081649835,1348866796,1449546086,861099878,-96040512,-1980217719,1713829446,-1989800821,-781779890,-2112881554,-2079391547,1552744593,13428740,12288527,-1980266650,1569585246,12380170,11764239,267804297,-388898815,23757327,-13740202,1604323870,81246,9929999,-1047606989,-1050228596,1354240224,1714354854,-1531562241,-2023332058,13317,-1553584640,519808182,-1956193906,-781779890,1744043241,-1872255642]},{"sector":16,"data":[-204353178,-1872255641,-94869985,109536814,1730585782,3449702,788201472,-1609687297,251658557,-1962918779,-619972514,-30538636,1586168143,1960512502,1342057988,1600543489,1499881062,28858470,-92372224,1208251392,-1946526070,-1278517787,-2146899033,57976827,-2013074560,-1075053986,-1956239622,-1960443265,1960512287,1065365038,776566018,1203179366,-524196348,-953457142,996556402,774992577,771835902,1203179366,-524196350,-133994998,1724120056,1724364559,1712385985,1711597505,-1956186109,-1056741689,-1032858,-529137648,116107187,48997811,-67524941,-326412861,-435441584,-469701856,1965074464,969444418,997524550,2097315457,-2130217819,-1517944194,280702325,17772032,262451222,17612832,-356507121,566923,-611400818,571473444,-1499862336,-1070399488,-1064380274,1489984856,788475485,-1989761866,-1989741962,118419070,33601894,996540416,74906702,-61961370,915231078,1049470138,-1956207412,-50662842,-389978453,1049471504,-1956207404,1722543686,-1441732415,-846744328,1499921173,694556018,-2079327154,-781779279,1308714721,1308714738,850258926,786205439,-1491951734,16700649,-394090583,477364654,-1180183106,236847742,-1088483833,-1527536488,1049177631,113745920,-1528168296,1072170766,-1172387071,-1031593672,-253590769,184554145,855995840,1827342335,620760837,-802422800,-1593513279,-1036320450,-1031077258,292929547,3574574,-1895920736,-1912521210,-352240098,1041664800,-1912136191]},{"sector":17,"data":[651176922,20846217,12501646,788433824,-1610609013,-201535957,-410826844,653757438,-1610336633,101616422,-204592224,1049175716,-1008164858,-947708160,-253263089,1455813,-1945207671,1153896516,1476460547,11003918,1232404235,35556910,20881824,526023,-1590820789,724475910,782238726,-1610611197,782237741,-1196726365,-617395711,959328205,2007721758,16744728,772962208,-1419305333,-850787656,-31953,216531828,1600019712,1499078407,13326427,12474112,244002464,-1590776985,-661741566,20848270,-1201691405,-953442304,-388896559,-388896559,-668220532,-1610440402,113694862,-1996423125,-1912521186,1370307,1195659,-1610440402,1455813,-1995539319,-809299900,1962953192,650152991,648492195,1084705187,-1506761946,1096264,-1557732617,-2010732982,-1012511722,-1557741428,280602263,652343040,648323747,-1532750200,-2086365179,-1557790510,-1993956174,-1012616170,-872434200,874652,-1667411728,-268392104,195,0,0,0,672565765,378194688,-1295318999,872362912,512438006,-1959878652,782239758,1963016064,1996697104,1200303620,1945647876,855149316,113476562,-947132958,-695477622,38409865,203,-1070335488,-1604213970,-1604082898,69110574,244002464,-2094096376,10510654,-2144464011,225771839,72825646,-1993463177,-341810914,1048784411,1962975331,1065365019,773158148,-1604116855,1631486766,141820064,1665041198,745865376,-502873213,915091133]}],[{"sector":1,"data":[]},{"sector":2,"data":[1361144297,-506410358,-847188686,786813443,24981026,1678674222,91576578,15153642,646459120,508559971,-1900008624,1898348760,525893380,520040092,-2144468707,50488126,777068149,40111755,-41882158,-1207536383,166432256,66945168,817365877,317413728,-1070916016,116840590,528483441,-2147060648,1145340108,-2134575409,-346490764,-1024065372,-167711999,15401410,15717098,646459120,508559971,-1900008624,1898348760,525893380,520040092,-2144468599,33710910,-990504587,1393653120,-2144413045,-2147344193,-1976695436,1526866087,-154188732,-126615100,-1070916016,116840590,528483441,-1274776488,1491463167,-58676245,-1274841855,1347669888,35502930,-1976641021,16547863,62132084,280237261,41169064,-346386252,-855526386,-990488044,1955640448,1527362562,-816069750,0,1342177280,1347244609,1347244609,1347244609,1347244609,1347244609,1347244609,1347244609,1347244609,1347244609,1347244609,1347244609,1347244609,1347244609,1347244609,1347244609,5067329,102629376,1347573335,47187,-1004093298,-2096811970,2138374399,110137488,-1273712560,1478610229,18685577,18810508,-1273515952,1478610229,25763465,25888396,-1090453314,1723400288,-66646527,-100162317,805750566,-1946090747,667080,87204646,-1160212741,-1336934141,-853167084,2126141473,397430785,567092660,109981272,1236533292,-970055219,654311686,1958354702,808445960,419874350,113639683,1543439202,1600019032]},{"sector":3,"data":[415440647,404232216,0,0,16711680,0,255,0,0,0,-65536,4194448,0,0,0,0,0,0,0,0,0,0,0,0,-16777216,0,0,0,-1070923774,1906360462,129671683,1007140002,-1274579663,114177,842797291,45352821,-352320834,-1106988027,-1564278781,1342572475,-1912602440,-58042176,-796258524,653707518,-410385552,-661988557,12550950,1081344004,-2094602543,263868,-953809035,17041028,-385953536,1460076176,809419814,18463493,170319619,663234087,-2010723586,-402170096,1018822767,791144458,-402068294,334180129,-1124073281,1267420051,1024362754,142653958,120524008,1508378307,16548095,-2094644876,340030,-192926348,643237631,87047876,18463571,639705638,1599807880,652660999,67550339,638022913,67536071,-19857408,-1174401304,-957871556,150518318,120504552,-1004120125,1392848958,18463569,-1962833370,-1014931489,1605959803,-2010711552,-1269234609,-1948200960,-1985675280,-1593534204,-1325094652,-1056655100,-788215548,1204233732,-352261373,1204233782,-344718590,1204233774,-344653566,1204233766,-344718846,1204233758,-344653310,1204233750,-344719102,1204233742,-344653054,1204233734,-68485118,-919354533,-2094612082,340030,-1910091916,637874694,35397252,-338672780,35505025,4161574,113641589]},{"sector":4,"data":[-349108293,-2144956376,141885759,129697478,-1877284046,37716006,113641589,-348977221,-2144956404,91554623,129697478,149731892,-349311768,150518278,-1020402456,0,11733604,41844798,1041527808,537034368,-1975644812,808190022,88090358,1044764674,738215562,-1291685072,1093072639,1171784197,4622910,-670945236,808210627,88155894,-1973888886,36711620,1392952280,365805748,-1977217422,646447975,-1977220253,183173735,-1896873800,646588096,-58654722,-2140244484,84108094,95683957,-2138019093,151216958,1048577908,1963197283,-352013307,1048612951,1963066211,-352144379,1048612939,1963000675,-671952,105220902,-2130735384,75388411,451610292,1968569216,1031874067,209006897,58556710,74790193,48957108,350945716,1665040528,208994307,149618868,-67338096,-21757323,53094024,12781403,0,129826827,268435575,186646784,1996488704,84934656,729092,7800742,16842753,-1493169376,16807687,536936704,128450571,65655,186646785,1996990720,1049088,729091,7800751,16842755,-1342174432,67139335,536936704,129040395,268763255,186646784,1996993280,16778752,729089,7798784,167776257,-1174402272,16807687,536936704,129695755,131191,186646785,1996995584,16777472,729089,7798784,33558529,2848,16807680,537133072,11,268501111,186647296,1996488704,1048832,729091,7800895,17113346]},{"sector":5,"data":[2848,16807680,537067536,11,268501111,186648576,1997029632,52494592,729091,7798784,83890177,2848,16807680,537067536,11,268566647,186648064,1996488704,1048832,729094,7798784,33591297,2848,16807680,537002128,11,-1878982537,186647040,1996488704,9437440,729089,7800888,16781313,2848,16807680,537068688,11,-1878982537,186646784,1996995840,1048576,538976257,538976288,1694507040,536883511,808597809,538968112,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,537397256,1140858912,39168,65539,67120,2,131073,1584,0,131080,1584,1,65539,1584,255,65540,1584,255,65541,67131,255,65542,1584,255,65543,67142,255,65544,67153,255,65545,1584,255,65546,1584,255,65547,394844,255,65548,1584,255,65549,67230,49663,65551,132777,255,65552,67263]},{"sector":6,"data":[255,65553,67274,255,65554,67285,255,65555,67120,255,65556,1584,255,65557,1584,255,65558,1584,255,65559,1584,255,65560,67296,255,65561,1584,255,65562,1584,255,65563,1584,255,65564,132843,255,65565,67329,255,65566,67340,255,65567,67351,255,65568,67362,255,65569,1584,255,65570,132909,255,65571,1584,255,65572,1584,255,65573,1584,255,65574,67395,255,65575,1584,255,65576,1584,255,65577,1584,255,65578,1584,255,65579,1584,255,65580,67461,255,65581,1584,255,65582,1584,255,65583,1584,255,65584,67406,255,65585,67417,255,65586,1584,255,65587,67428,255,65588,67439,255,65589,67450,255,65590,1584,255,65591,1584,255,65592,1584,255,65593,67472,255,65594,67483,255,65595]},{"sector":7,"data":[1584,255,65596,1584,255,65597,1584,255,65598,1584,255,65599,1584,255,65600,1584,255,65601,1584,255,65602,1584,255,65603,1584,255,65604,1584,255,65605,1584,255,65606,1584,255,65607,1584,255,65608,1584,255,65609,1584,255,65836,1584,255,0,263454766,281870512,-2147281758,1685399803,51658368,-2145160192,33756222,1048583284,1946485524,339640341,242484739,51658368,-2146995193,285414462,113641333,-352320748,339640362,477364483,51658368,-2146077693,67310654,1048579700,1947337492,339640327,125113091,51644102,-1275008255,51683328,1743458509,1968241536,339640418,594804739,51658368,-2145618942,84087870,1048581492,1946551060,339640334,125044483,51658368,-972589807,33756166,1048586987,1946223380,339640348,359924483,51658368,-2146536444,302191678,1048577908,1964180244,335988231,15401731,346030260,-1022309117,197199558,306085888,57941251,-1275030295,-855592945,2080848912,188260631,1592328118,114670852,-1174243703,1458047248,19196198,-1900019528,1048651456,-1437270016,313796213,11997363,281925622,1962999680,188260631,719912886,114670852,-1174243703,585632016,15788326]},{"sector":8,"data":[-2145366552,2130772607,521018907,-1240778591,67627263,-1996040771,280625782,637528073,13429023,738346890,38242305,739395466,306677762,740444042,575113217,-2147436567,704844350,-1477901452,-1341148160,1007734016,-1592299001,-4846804,-1123827480,1988691669,152091138,-383403800,12058758,650153664,16001,561359445,280171188,-8384307,-1592363776,-4846804,-1123839768,1988691669,152091138,-349861656,531949655,12079134,-2133291280,-33554882,-970062219,822853638,1200234328,104476162,444337088,-1591800290,-4846804,-1123855128,1988691669,152091138,522538216,1200233195,-2013199358,1200226887,-2013133806,1200230983,-2013199326,116073031,-1056520658,-930348789,1048631438,1963002817,9300227,11538356,346165453,-855591933,322863120,1786063619,51527296,-1592756963,-4846840,-1123879704,1988691614,-1592857854,-4846852,-1123883800,1988691614,336494594,146342147,339640320,57999619,-1275067207,51683328,-1169092403,-1024980780,-1158094300,-1159198496,-1194292700,567108899,81241,3999092,1020818688,-972720895,17547526,113640939,-2147415103,17547582,283706228,50174,0,0,0,543516756,1162104653,1836016416,1684955501,757935392,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,-1272107731,47934,2131032963,1126288645,12842731]},{"sector":9,"data":[0,0,-16777216,16777215,0,-16777216,16777215,0,-16777216,-1,16777215,0,-16777216,16777215,0,168624128,0,603982336,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,1142969165,1444959055,1769173605,891317871,540028974,1126777640,1920561263,1952999273,943272224,959524145,1293955385,1869767529,1952870259,1919894304,1766596720,1936614755,1293968485,1919251553,543973737,1917853741,1919250543,1864399220,1766662246,1936683619,544499311,543976513,1751607666,1914729332,1919251301,543450486,106058576,-1899416745,-1191234623,11670062,109850573,1049169673,783814407,-855461358,285641775,255756559,305051663,801965234,253822604,253705865,-1307431240,-1943024378,-1995504378,-401669314,109842935,1049169665,109842175,1049169693,99094299,352750610,322865423,305051663,801966258,254346892,254230153,255723207,113641997,-953938041,1000198,1158072064,-402650609,1049169192,-2014834901,792627473,1697807,-402641176,-397344703,141688912,1510432601,82532443,-116603773,508973251,-849149768,520560161,914950258,109842231,1482559289,1140897987,855638203,-2145268270,-830471706,1140963329,-1195171379,29049856,-841862400,30310433,-851181128,817152801,87892429,-133991168]},{"sector":10,"data":[37558507,-1157270784,65798143,-1207958853,12124161,-1241468416,1355020799,-397060346,242352149,-117440896,520488052,521011947,1599993739,1455642631,871773011,-98103,-1131739019,-544534741,-956946965,-1006078974,-1945169988,1025043395,225574931,1996498749,465355784,-339506161,-4406266,-2084336626,376831995,1979711104,216791299,-1206959197,29229055,-118082816,-75297557,-402426880,-964493228,108197892,41273611,-2137219093,695534078,105993554,12079191,1009765637,158685439,45668491,-349188859,91486465,-346486945,113541894,1560284392,-821957798,-268274,1472421467,-18096,-1359822798,1481232887,-75250849,-2095221503,-15784130,-12773772,1342928383,-15776863,1477388062,520029419,451612455,-25114317,637957375,-352105078,892874249,-1976695691,-947715251,762575108,1959332856,-98279,992347508,772008709,41223483,1950943723,80184069,1928979435,-98292,235042296,2097358343,839283202,227157741,1023854151,1354956815,1465209171,-376745466,255532681,255866504,201245928,186873033,-402295315,65732655,1912715752,250108431,173999873,-402426670,82510950,-116996989,1594295531,141752666,-2091165347,82510532,-116865917,1381191875,255532683,1979710339,2942981,2011694059,-1274055936,47961,-466476595,-116996989,-75296533,990606591,-402164543,-998047568,57866502,-1017619622,-2095118818,460653049,-1977220428,522308885,-1310145910,520494592]},{"sector":11,"data":[-1977219213,567083349,-1274024968,1959332610,361375241,1229398477,536408949,105928643,519736147,-1327920377,-1359807462,-651492491,1540066123,-1017161721,-921976781,102649716,-1958693857,33129431,567093365,-1977200609,5957637,520494680,-1258813837,567099968,1031808668,-1962773222,-821957695,-268274,1364531947,-1946179864,567106025,199950963,125093947,1979246651,1572965122,666419999,310016,-2134703691,292880382,1971373814,-1928913396,-1190183362,15204354,1460061183,255278788,393543435,4031270,638612728,124912954,21314086,1207501175,1609165639,110084871,-617410751,922194579,-141357243,-2096151242,91621882,-348667264,818053123,-1073004206,-620034955,-108840588,-2146601725,1965820540,1312227077,585842959,1963391363,175931405,-16419540,1091522102,-108850965,-2146732791,1965820540,1312227077,865288463,866642898,-4181038,-1022410442,-921972173,632562036,942014640,638219557,1946248504,1975794180,92939790,1946113000,1111967489,1457747273,-317994361,-2092092556,1000254,1149905781,640680966,1963017530,1008659202,184841520,50623698,-2132284620,-15777730,1111623797,1330596169,-4586517,-114599937,1610484456,-352095399,-1957588865,108822730,185431040,1225159881,-347650231,283860481,58050827,-2096501922,41287673,-16004813,1465210484,-919383802,256065155,-164793088,1963919172,41731080,-352236312,121959962,-166956019,1947076420,121959942,-1006078708]},{"sector":12,"data":[1525154428,-402593023,65732690,1912611048,1594317063,82533981,-116734845,256065155,1912960256,-15406845,256050887,868417536,256090578,256181959,-1779957750,-2021107458,-2092757177,58015995,-33500952,-1192331831,-2021062131,1128468295,-1023360792,2088819507,292880390,256346055,1128475936,256346054,-1494727904,-617390848,243847731,1149898557,1992374793,-1967052258,121960176,-1978370944,-2021127612,-2092757177,58015995,-33522456,-2131986994,1946159228,139212813,1277823091,-1965979128,-922023860,1156981876,208998151,268911862,-1977219468,32196357,1200064600,-75283697,-402426560,-906100671,1157028981,410353671,343209482,-2012593014,1125074823,1967192963,2353155,-327823618,252134646,1156974709,41160711,-771093269,110037108,-889319615,48822389,1371755776,119428870,-617362549,256327309,1929151208,1493655301,-998046485,1573124358,805782774,-1977216395,-398372859,108264808,21334566,233568336,168135206,1191474368,737536833,1573082617,-1070345677,256181959,-617414640,537347318,-1977211787,121959941,-1475513075,1124299904,113737508,659269,235357430,113706613,659269,1156994283,645206023,-167408858,1963788100,-2134575601,-2143091596,113737700,659269,235357430,113706613,659269,-1960433429,1435182597,121959938,-166759155,74744006,2145812547,256181959,1156972554,108334599,256181959,-437780470,1960512508,-1294847227,-1017818579,-2145496495,142000378]},{"sector":13,"data":[254067338,48958644,520544906,567138187,184188959,-401443592,192150676,-494221174,-511041075,-1274876936,1510240768,-2096829607,-1007090492,654312959,10223617,11534338,12517379,15007748,17104901,18415622,19333127,20512776,21757961,23527434,25362443,26804236,27262989,28835855,30408720,31588369,34078738,36175891,37224468,39125013,41746454,44892183,47382552,49283097,52101146,53870619,56426524,58851357,60358956,62128429,65995054,71106863,73793840,76284209,81264946,84082995,86704436,89456949,95682870,1668172055,1701999215,1142977635,1981829967,1769173605,168652399,1986939154,1684630625,1853187616,1869182051,688524654,1967983117,1931506803,1768121712,1126201702,741428559,1297040160,1126181938,540233039,1126199919,221531471,168633098,1769170258,1953391972,1919905824,1852795252,543584032,1162104653,1634692128,224683364,168630026,1701604425,543973735,1769366884,1847616867,224750945,168628490,1852404304,544367988,1869771365,352980338,1347160589,976299348,1952805664,1919903264,221263904,168629770,626282572,1931491889,1713402981,824210031,168636979,1342835998,1953393010,1814065765,1936027241,1919250464,1668180256,1702043752,520752500,1850280461,1768710518,1633820772,1914725493,543519841,1667592307,1701406313,420089188,1329793549,976299341,741483808,623653669,891628596,221652268,825231882]},{"sector":14,"data":[892613426,959985462,1141509403,1870209135,1702043765,1752440933,824516709,1495801919,539577903,1414548507,540684581,1869768050,1684370549,544175136,625823555,168639026,1414548501,540684581,544501614,1869768050,1684370549,220793357,540091658,1920230770,1852776569,1918988320,1701604449,1919950956,1702129257,1769218162,1865246061,168653941,537529635,538976288,1634620704,543517794,1931505524,1952868712,1919120160,544105829,168636709,1986939155,1684630625,1918988320,1952804193,168653413,1225395488,1818326638,1847616617,1700949365,1718558834,1918988320,1952804193,225669733,168635146,542393678,976368688,1634620704,543517794,1679847284,1701978223,1936029041,543450484,1835888483,224685665,168637194,1768320585,1702127982,1952805408,1847622002,1931506799,1869639797,1684370546,544108320,2004116846,543912559,1852404336,225600884,168634634,1818845510,543519349,1629515636,1936024419,1868767347,1881171300,543516513,1953394534,1818846752,537529701,1631980045,1920298089,1869881445,1667457312,544437093,1769366884,540697955,168636709,1141509422,1667855973,1919885413,1685021472,1634738277,1830839655,1769173865,1713399662,544042866,1953394534,1818846752,503975269,1866861069,1713402990,543517801,1953394531,1937010277,1986947360,1684630625,220858893,1701990410,1970235766,544828531,1885696624,1684370017,1685021472,1634738277,1914725735,1634496613,224683363,168634378]},{"sector":15,"data":[1769235265,1663067510,543515759,1701273968,1919903264,1986356256,543515497,1763717413,841293939,219810317,1986348042,543515497,1847603493,1881175151,1634755954,224683378,1866669578,1734960750,1936028277,1937339168,544040308,1769366884,779314531,168626701,1769099326,1919251566,1919905824,538983028,538976288,1162104653,1414548512,1564105582,1329814304,1664963404,1281040477,1397050953,542993469,1413829211,1916623186,1359613277,1769104723,1881173089,980709999,538976288,1293951008,541410383,1833783107,542980699,1430340187,1566719300,1095785248,1498696018,542994493,1413563483,1566850369,1414748960,1933398095,1381703773,1498567749,224227901,1698966538,1701013878,1635013408,980645236,538976288,1146047776,1683693637,1667855973,1528847717,1096045359,1565742420,1378421261,1919509605,544498533,1852404336,1735289204,1330454586,1277183300,1533957200,1128095034,1533889871,168647994,1701990479,1701994864,1685021472,1634738277,540697959,1162104653,1986356256,543515497,1344294979,1095779666,675104082,2038004008,774778459,1528834397,1986622052,1532836453,1752457584,1818846813,1835101797,168634725,1818579758,544498533,1701080931,1734438944,538983013,1162104653,1986356256,543515497,1394626627,1128614981,2037988692,722079097,1919313234,543716197,1701080931,1734438944,1293957733,541410383,1769366884,1126196579,1163010128,1397051974,755633480,1701080899,1734438944,1953701989]},{"sector":16,"data":[1937077345,1293951034,541410383,1769366884,1126196579,794501200,1413567571,224219989,1766089226,1634496627,1869422713,540697956,538976288,1146047776,1683693637,1819308905,1630370145,1953522020,1532850789,224226860,538976266,538976288,538976288,538976288,538976288,1162104653,1313817376,542980699,1280263003,1566784851,1229740832,1028867406,168648046,1886999601,1952542053,1914725225,979727457,538976288,1162104653,1313817376,542980699,1413567067,544357701,1095517508,1566850393,118360589,389299853,109625729,393155,-1342169556,-1124065536,-905961472,-285204224,184558080,503325441,889201665,1711285505,-2063587839,-1711266047,-1358944255,-536860415,-16766463,587213569,570436610,939535618,1191194114,1241526018,1308635138,1426075906,1577071106,-2013252862,-1912589310,-1795148542,-1040173566,-620742910,335558658,654326019,771766787,1224751875,1375747075,1509965059,1509965315,1610628867,1644183555,1694515459,1795179011,1895842563,1962951683,2046838019,2113947139,-2097133821,-1660925949,-1560262397,824512515,1685021472,1634738277,980641127,537922061,1685021472,1634738277,622880103,671747377,1330448909,622871876,1868767281,1881171300,543516513,1668183398,1852795252,1836016416,1952803952,168649829,1124732191,1701999221,1663071342,543515759,1701273968,1952805664,1735289204,168639091,538976278,757084453,540157216,1701080931,1734438944,436866405,1868767264,1881171300]},{"sector":17,"data":[543516513,544501614,1885696624,1684370017,221514253,1685013258,1634738277,1864394087,1634887024,1852795252,1953459744,1886745376,1953656688,1864393829,1752440942,1679848297,1667855973,571084133,1867385357,1685021472,1634738277,1746953575,1646293857,544105829,1701602675,1684370531,1142426125,1667855973,1919230053,544370546,1769108836,622880622,403311921,1701080899,1734438944,1869488229,1919950964,1918988389,168649829,1124732212,1701999221,1797289070,1868724581,543453793,1936027492,1953459744,1886745376,1953656688,1768453152,1868767347,1881171300,224749409,168632842,1869771333,1969496178,1735289202,1634038304,1718558820,1852794400,1768300660,168650092,1426722087,1818386798,1869881445,1919250464,1836216166,1717924384,1752393074,1701867296,1769234802,168652399,420089090,1951599117,1937077345,1919903264,1986356256,543515497,221917477,757928458,757935405,757935405,757935405,757935405,757935366,118099245,757935405,168430893,1701734732,824524147,1124862477,1836412015,624784238,755633457,1632766477,1629513076,1679844462,2036427877,1937075488,1700929652,1701868320,1768319331,1948279909,1952802671,225600872,1632766218,624780660,168430897,1634493764,824524153,221252109,1853179402,1869182051,1869488238,1970479220,1919905904,543450484,1948282479,544434536,1886220131,1919251573,622865696,470420785,1699875341,1919513969,1713398885,544501359,544501614,1684107116]}],[{"sector":1,"data":[168649829,1091177788,776557390,542333267,1953723757,543515168,1953721961,1701604449,1869881444,1919250464,1836216166,1902473760,1953719669,1713398885,1952673397,225341289,168629770,1685414210,1952543264,1701978213,1919513969,168649829,1952797194,624785778,503975217,1634885968,1702126957,1868963954,1952542066,1953459744,1919902496,1952671090,1913391629,1952999273,1953722221,184564000,1952867692,1953722221,50343968,151023438,1768320585,1702127982,1701577984,100693094,1751607666,1208549492,2003071585,6648417,1701990409,1701994864,1929838692,1970561396,1879572595,1634755954,117466482,1701602675,134247523,1919313266,6845285,1769109277,1864394100,1868963942,1713402990,543517801,1679847284,1667855973,1929969765,1667591269,6579572,1937339143,7169396,1049429774,-1048502847,29557857,-16711675,285213951,1702131781,1684366446,1920091424,622883439,-1928917455,-2094913730,46342337,-16711675,234882303,1936875856,1917132901,544370546,118370597,575356557,-1021460093,1928172008,-485038021,-401565208,1048586895,1979646763,312862723,1048595636,1962935083,-352210940,1648263198,276168451,-1158916888,78708832,-1031669037,833880087,65732784,-839929624,49953,0,0,0,168297995,117703180,1448498694,1448498774,1448498774,1448498774,1448498774,1448498774,1448498774,1448498774,1448498774,1448498774,1448498774,1448498774,1448498774,1448498774]},{"sector":2,"data":[1448498774,1448498774,117768534,-2147365144,1962812797,-1974380764,-1061214907,129629218,1504637440,1460827231,642091601,-64831297,-234879047,1969183150,-1240419825,-955857152,-402258142,418054511,-1124073281,1267420051,2081327362,179616263,-972045080,207622,24766659,-31097472,1364665460,-1088076406,-1174658368,-1359871993,309616473,1166692695,583057190,506364,1599713010,548540277,113705654,101130951,-352249112,48920,-1957981251,243860043,-1262876804,258992138,53151430,619234048,628981761,1462007038,625314385,-64812609,-234880071,1952405934,-1974380782,163522117,62520355,1504637440,-1307609761,-955795920,203605766,12969995,12523755,1267973376,-1996338293,-1173914610,451414708,721864207,-389873661,2105540815,611647013,1166692695,583057189,506364,1599713010,1364660852,-1088010870,-1174658368,-1359871993,259350361,28709042,583468743,1894254087,-1088886016,-1816330240,38505291,125570697,-401951558,113643205,-1023409365,-2147452184,1962812797,-1974380764,-1061214907,129629218,1504637440,1460827231,642091601,-64831297,-234879047,1969183150,-1239371249,-955857149,-402258142,418054171,-1124073281,1267420051,2081327362,179616263,-972132120,207622,-1900006461,278996672,181347332,279127746,-1979665404,-1273967162,47618,281870519,243990964,281879239,-1070397757,118365108,-1155348033,281870336,410327868,-2138009456,1946166909,8775939,19744246]},{"sector":3,"data":[1170636660,2045509157,-1900019528,1048651456,-1437270016,313800821,281874611,1947270016,16744493,1170609269,12059685,5499056,1299570746,19285446,1170622443,12059941,4188344,964026426,36062662,1048589291,1979253546,-851201008,1006707733,-972655360,-335665851,-1342130148,973084904,-972786208,-1207884475,183023616,1977629184,642106884,516097794,780851342,1437597696,1392509090,2525787,3049472,12787456,0,136,0,65280,0,57778176,-1576556894,824969127,-1272601182,631415552,-1979711297,-2145017826,225792251,631840392,632161990,-351095809,-2063892464,512232309,113649065,-1275124305,-1996783601,-1652030092,-1287191805,306085888,343211779,51527296,-1291553482,-2146833614,939725374,817037941,1946221440,59098640,-2008605949,1191379869,632030918,-582555393,631514760,1392509115,-1524725241,652464165,67682179,-972720896,202758,631651977,51777279,-10550600,-1962732026,-1107093986,119407386,-855428929,-385649887,-75497223,-352160765,48863,52083840,-2146798592,537074364,-347733132,83788783,-1101641089,-1132462080,1967915802,-1132444146,1968177946,-1132444154,1582564122,-1499461259,486946823,1445491715,-2147483458,1342380732,-2142892427,1375935164,-2142894475,1308826300,-2146863778,17278526,65733237,-956335639,-14309370,631651971,-385649408,448659744,839037955,-1979141696,-802838250,-1963273526,-1457616134,302942757]},{"sector":4,"data":[306085891,74811395,99352501,-377230030,-2094346960,2467390,-370605195,1577236480,-1962736706,-1960466930,-855435746,-1173851359,-353892044,-2144736501,-14307778,-1732638603,198961160,1048579563,1979655599,145013254,-2146710296,-14308290,-1329985931,197126152,-2147441687,-16574402,-1578564748,-1505852672,57999397,-1107259415,1392902144,-1912586056,-1575056448,2026079013,-972584410,2469894,125174588,640004258,1526925254,-1508966649,-1979665371,-402455676,1048576283,1962943917,1048790536,1962943910,-1338081052,376700965,1085821702,-1950315008,-2094685666,-1331660605,126363173,1048577883,1962878381,-1371635671,141950757,-402089798,233507637,632241792,-1173981697,652740772,-1405190133,108396325,-402083654,-571995367,2091008,12524779,1267973376,-1996334197,-972669666,-1174404025,-85456768,721864202,-389873661,2088042623,-1148153712,-164429280,-2097151809,243204863,3768358,-830274700,1206833416,-422449685,-100564037,71812646,1571094277,1965583656,-2060944088,-1792504536,-1524064984,1204233768,-352261373,1204233782,-344718590,1204233774,-344653566,1204233766,-344718846,1204233758,-344653310,1204233750,-344719102,1204233742,-344653054,1204233734,-68485118,-1070903101,-1004093298,-2096811970,74711295,65781819,1476460349,-1575580733,-2145923803,-58676764,-2146274304,-14308034,-1933964428,171960328,632096454,1460061183,861033296,-1966895397,-2146981858,-872544285,706231939,-385649408]},{"sector":5,"data":[1048576150,1979655592,155236876,-385216280,-471269140,406752000,-2110878934,24870963,-1341819620,-1876563159,419527552,2071987828,91560705,350978224,24871056,-1341819619,-1878398064,-2080277632,11534965,1962949712,185901328,-1024917578,113950183,-352160119,186687758,-1293353034,113950183,1476556425,809403174,326434821,2087977020,651749352,87164558,545753126,644737794,87164558,545753126,-1872631038,809403174,1249116165,839290406,-1539407867,376723525,545768998,346095618,-385894901,-893524127,41322758,-2144979221,139455,346099829,-385894901,-893524151,41322758,547430123,-385894901,-893524167,41322758,346099435,-385894901,-893524183,41322758,-402062150,1532627233,-1022927016,0,0,0,8,0,100663296,861032535,-1967092032,-2146981874,-906098719,-55123504,1048823506,1946167832,406752102,24870954,-1341491943,-1291401726,787181575,24871056,-1341491940,-1291401727,518743303,24871056,-1341491941,-1291401726,250307079,24871056,-1341688547,-1291401725,-2094632441,340030,-397343371,643422176,87164558,2098629158,583062017,651168470,24974984,646996459,87047811,643003392,87164558,2098629158,-1539407871,158619717,-2010720734,-352223978,584513086,-2132094250,141885690,129173190,-1876104403,1963063936,-1291401720,535520519,49971344,113641589,-345897037,-92237806,-972262141,1913107206,113640939,1512900531]},{"sector":6,"data":[-1022927016,-1957981251,-2144726978,1968505211,-1325354995,1762051840,-380987642,2071986326,225793793,28385456,107546311,-2081863009,24870912,-1341295272,-956124864,-1559860986,-1871582390,1493269376,1622150517,113705905,1252460137,-2138022165,1968832891,-1316966387,1762051844,-347428090,2072023115,225794817,95527088,107546311,954944176,24871056,-1341295268,-955862592,-1257871098,-1876563126,1560378240,-525333131,113706929,1253705321,-2138041621,1969095035,-1869574133,113707185,1254033001,705969803,-2080277632,113642101,-1217525841,-1875121408,-2097054848,113642613,208603055,-352209144,2072023081,175473921,128911046,-352012429,2072023065,158696961,128911046,-352077971,-1358510583,403465479,1049297591,2071996946,175453441,128976582,-352275147,2072023096,175453697,128976582,-352209610,2072023080,209008641,128976582,-1258091464,-1877546237,922844032,34342517,166396597,45416972,706348742,373197823,-2147437782,1966080379,-1324956135,67908103,1048576435,1966409648,-1979267235,-347449594,2072023125,880094977,109708999,67914327,1048576435,1979656730,-1341733369,11875591,128990848,-2144371658,940027966,113715327,129042058,129042118,-1877218510,706100867,-1961659136,-2144726978,1968505211,-972813303,839364870,1048576435,1979646763,-1965935814,-2146981866,-889321502,1168260736,840660479,-855329600,83933204,349044659,242598910,-401951558,267060777,-466483989,451417293]},{"sector":7,"data":[147372797,-1023010584,604481696,-792134137,-1947979040,515912432,-1132210034,520094720,12524149,1267973376,-1996338293,-1173996274,-353892224,721864197,317390851,129042118,-1341733327,113653511,-399702093,12844470,47110,512481422,-75431818,980807680,-930328546,-396830578,1344263420,772092577,1476603555,84226209,-1557266144,-125107412,53387566,915128462,1049165940,109838452,-611450762,-67100487,-1202674189,-661782528,807322968,549683461,12781313,201340040,-256,-1,-1,-1,-1,-1,-16773889,-1,-1,-1,-1,-1,16777215,0,0,1275068416,512,0,0,0,0,0,0,1792,0,268435456,0,1124073472,1342197327,1275088466,3232848,844386380,1414548480,1329791027,1124086093,3296591,860704579,1297040128,2752564,774057503,774647335,775302705,775958075,776613445,84094540,17106181,-16711423,-852295496,504793121,-1207913938,567096065,-1962658328,-399281378,-745865142,-851639624,-1557433823,-661967381,-851181384,-384399071,-150244819,1946190018,5826565,-390461717,65136649,770383499,567099060,1939934443,115516211,-402040646,378143691,28847646,-1021194957,-1107293511,1656696396,1359420974,1284200278,-1962136830,-202142916,1499357094,92931189,-964490517,29852418,11591650,-1020399454]},{"sector":8,"data":[1026783649,91553925,-352314648,8797463,-1360525963,1024322305,91553924,-352188184,40101891,1964936131,17299251,-1939376896,773104584,1559238285,772937353,-1274019653,-1323184822,736809732,-17702,-1031547861,736809808,-1992851750,-1959913954,-1204586730,567098624,-308076430,3729453,65538930,7858178,-352258584,3467267,770514571,567099060,1287259883,50718729,1555699179,50194440,199757291,-402296064,65732626,-1023358488,770641547,863311499,-1023216408,1023600616,326434845,-1240766303,-514070273,-1996012611,12190326,1025305354,91553811,-351699782,1457426,20776308,-1174047488,65735144,-401991494,-1581055321,78720534,-930357037,770514571,303482142,-851463122,1601314593,1026431139,1467219968,-1962753560,-1959924962,506337294,772937413,-851180616,-392421599,1939669662,40822840,1962955581,770154758,1023415045,91553819,-351705926,1916187,-1935600779,-385894901,1136517325,41322759,-351665990,158382595,-352177432,1938352906,170179078,-1023269144,770641547,-239448655,36431917,1755387507,-385894901,1136517273,41322759,-401997638,854262275,53165696,-2144635393,2993214,-2136928139,-385894901,582869109,41322759,1755385579,-385894901,582869093,41322759,-402016070,-389873059,512426515,1200305013,770941702,770641547,-239449423,29878317,-1175966349,1719553,213517685,1025239818,91553819,-351659846,192192785,518586294,121880032]},{"sector":9,"data":[-1174243703,-1998059008,-2145654015,-16569538,1956713589,-385894901,582868993,41322759,-402016070,-960298503,2993158,1929278952,4253704,-335596056,22997050,1962941757,192979219,-756482122,121880031,-1174243703,485165568,1962942269,170965509,373101291,1023767552,91553793,-351672134,169392643,-1023336728,770250379,841009795,-350319626,1140963373,-389865011,243990863,1789996527,-399642182,91422989,-352283160,770941205,-1593294941,-308071565,159955462,-402558744,-1950154751,-1322389746,766360171,1929438440,7137285,-1346482453,-2096329939,367198918,1151424081,-385894901,213770049,41322759,-1947707042,-2096329984,367198918,1352750673,-385894901,213770021,41322759,1877498206,440304384,208994350,-1556909151,-1799747837,17557513,53165696,-1592494593,-4846756,-1109460760,1988691746,163101186,-1023348504,1023436776,440205338,-1173261056,1357384180,721864192,1793654531,-1876628481,1946162749,81157,-390461323,3532809,1554059755,-385894901,1136516789,41322759,-1022754630,-402022214,-1375993687,91619132,-351675206,436666122,138519342,-402019142,-404619119,721864387,-2031615997,512475904,1504980508,-1950146099,-1204950242,567100428,-415331901,-821841875,891598854,512303565,109850083,-1022939675,-485047010,623163437,-1021369907,-1204638278,567092516,129507011,-17563,-1174405190,230621189,639749422,-2097056315,309592124,19795083,-2094141170,-239140154]},{"sector":10,"data":[80184109,-1021336333,0,0,-1107287367,1552680496,197559044,1405352160,1465274961,93059723,-1962779253,1300956277,141920774,-1962322550,585632381,1516134367,12802905,0,0,0,505949728,-1976683696,-30191586,-1341934385,-1021915899,0,0,0,0,0,0,131070,8912896,536871048,234881024,16777216,-2013261824,-2013231104,-1275033600,-855592934,1979661359,1879492101,378273587,378095002,113455987,-1912586056,230699968,589692976,889196550,225706032,1089830,201314085,279127746,-1262287104,-1174228931,567102209,213440651,-1174162108,567096201,-851528548,-1312580319,-2103169,865025664,-2095614719,1345558334,113707125,1251018587,113708779,1250428763,113706731,1264256859,-401963846,-1312555267,-5248897,865025664,-1592494847,-2002635879,1426507571,-956264185,-2012786682,-955847885,1527205894,175684171,-1006710552,-2098700367,-1155173377,1504968704,490545613,-1173785344,-1226306892,-1878201346,1962942269,180402694,-956389144,207622,48835,12502670,117342976,-2094657153,262332,117310580,-964480133,-1008014590,-1912602434,48838,2131033731,-1132255729,2114061320,-2084438526,-320142650,856052675,650350299,87047811,639988736,87164558,1167867520,-1978763876,640909070,-771654240,-352115480,2132707853,-2020989389,48955936,37486768,-2143550348,113707381,1254426514,1016080619]},{"sector":11,"data":[1006924801,-955681495,134713862,-1877480629,74711868,141922364,127010503,116083571,127010503,1527204699,1963378627,-1085966797,512294912,-617401470,506108595,-472824408,893691903,900085094,902051253,904738285,905721325,935278269,941176696,963656013,992098826,113720243,1258358663,126682823,1220149252,-39327734,-401976134,1622867361,-40114166,-2130832152,-13406146,1659373173,-24123138,863569607,113704960,1258369907,-369571352,113706534,8729465,-386008088,401209530,2030487302,-402619341,-1410794004,101247480,863569607,-571998074,2047264765,-956300987,71661574,-2111927552,-1791063245,37849925,-398099293,-538314622,2030487301,-402653133,1944649140,97577464,863700678,-25565184,1167736449,393562861,863714944,-1290765311,-2029598783,-968168185,3374854,-2121240341,-230319554,-2145946294,36928318,-1028452228,126289607,113658610,-352177281,1048678481,1257719194,1048582005,2080584571,-943475952,-150501626,2131150410,854262835,-1707179632,1967848517,2067693590,259327027,113755315,1258030983,863962822,-1961628922,-1991927282,-1173996274,-1830287232,721864444,1048576003,1979646763,-1928935647,-1174403833,2062027336,173325052,-1157860120,1860700780,-33167108,-401939270,266992741,-2111927547,-1539407821,1886738501,-2147481409,58034233,-2130665495,1190921849,1099631733,107586306,705707657,2038516715,1967590150,40995600,108279433,-1994388352,-349563842,108626228]},{"sector":12,"data":[259344161,-1979553397,-1331560378,306088199,-2128680150,1194329721,1099631733,109748994,706100873,2038500331,1967603462,406751492,147292970,988517867,705693383,280952840,24739840,-1996196609,-1087761346,2038431768,74776321,705838729,-2147475265,1962869113,373197060,2670378,-16680576,1049166964,-1813501416,72673781,864165515,-2147481409,1968570745,-1610168824,216761381,24739984,-972720881,1344643078,-2146908285,1962869113,40995592,312607882,147292931,-16680576,1049166964,1558719000,-302651188,-1962668567,-1087143394,964689928,-2126154616,1201735289,1904937589,-1576760830,803930898,-1324975743,-2130217913,1203373689,2038436981,125130241,631244486,-972690556,1344643078,2038500843,1967603462,406751494,-2097091798,-1226110777,-389283096,-1276514917,-75503613,862994048,-1324583425,-1360505985,113662971,-1962855537,1462993438,-16680576,-1192688779,24739840,-955091701,674469638,-1861826816,-402649037,-1595282758,24739840,-955091700,1345558278,-1861826816,-402649037,-1997935881,24739840,-955091699,674469638,-1861826816,-402649037,1911286665,24739984,-955091698,1345558278,-1861826816,-402649037,1508633542,24739984,-955157231,1345558278,-1861826816,-402653133,1105980164,862994048,-2128448001,1250427513,113707893,2634647,-352317254,-1761163511,-1174384589,-397279200,-346358922,24739861,-1291356912,1096232,1353909739,-402644806,-1092037936,1048600570,1979646763,-2111927475]},{"sector":13,"data":[147292979,-16680576,2038448244,108272897,704739712,1233786485,302942209,147292931,-2013181558,-402451698,518771570,862994048,-1962117633,378077777,333984665,-1173623813,-622327092,721864441,2145976323,-1966525694,-1962708722,28591857,-242555694,-1607350656,914884520,914884538,786958268,39643594,863569607,-1700724736,126329669,126682823,1940062213,-1707179725,1967853893,2131150356,28508211,129631942,-1140406735,921383175,-1707179632,1967855173,2131150356,45285683,129631942,-1140406734,451621383,-1707179632,1967856453,2131150353,78840371,129631942,-1140406733,-1173998841,1122503240,173325049,-1158071064,921176684,-890312455,-1410807501,-1048573958,-1173472720,-401835001,-457508165,-115611638,-369859096,-1897397822,1883144441,175505203,-1092059215,-1895381255,512426291,-947702910,-2009497592,-1997995147,108626176,242567073,-1996336757,-969697002,-13401850,2038525419,1950855430,108626183,812992442,862994048,-972261889,-13401850,-1996336757,-2144102634,1963983225,1896269322,280635443,-972494080,1345548550,-402644806,803993909,-1845069439,-1978829497,-2019425727,-2147039693,468451123,-2113504895,-2130217913,1199375993,1099566453,863937026,864028358,-2097091585,1894320327,-2126610177,1131806515,862994048,-1322355201,-116397985,12272499,-849759232,1916193,-1262876299,-129767414,1032850667,108331039,-401948486,113702965,-352320725,181189148,-956815128,207622,-2138042389]},{"sector":14,"data":[3371326,512362356,-1243073679,-2143387440,192282419,864493194,863911562,-369610008,113639594,-947042904,289774086,-101062581,1167722183,-253211882,-1710831623,-397731003,113703399,-392542808,113703391,-385940693,113703211,-963426904,-1673159674,863702666,864421574,-2045888511,-2142863565,20153918,113707381,1257063834,-2138034453,36931134,113707381,1257391514,-2138038549,53708350,113707381,1257719194,-2138042645,70485566,113706613,1258046874,-17203480,-348944890,-400954444,-919353249,-2131172888,238694593,108790641,-387112984,15461473,195,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-16777216,0,1014783323,993864510,34,1004340935,-1979973632,-952381426,3920390,-452540672,-956301253,3921414,1812383488,-950183108,2084335110,1879492412,-953467332,1027371526,1465012539,-18090,-1259819967,-1980140281,1581020430,1963887446,-2133118148,41230908,-620047370,76230517,1948269885,1025522959,154995316,1023767613,427100477,1178404038,1364655755,119408198,1493673203,-4764066,1014304511]},{"sector":15,"data":[2135508553,-16097598,1516222069,121235545,-4713613,-1960422401,255469085,45613939,216619776,-550074111,1431786299,1005002381,1004406518,-1405192928,1913111784,120449079,1592275572,-166300409,540794374,-119011979,-165483770,1094442502,-347202700,1007126552,-2147125955,20700686,129034307,-2001942157,-1007992057,-734623410,509499,1004740233,-1927443674,-2143557834,829697852,1948400768,-569969145,1349845307,21465638,104457266,292764624,-784609119,54739936,529213144,-352288536,-771307674,-352321221,1200236126,1088696833,-670834479,839879206,1959332845,642990863,-152559733,1064524544,-220052669,1003620039,871038979,21465638,-784276430,651690976,-466483318,54583505,260712152,-921965262,1396903796,-400585946,1935343700,-498908406,-771307534,1560282171,244013919,-761185328,-734622917,-703165637,-669087173,1355020347,-1459123418,74776578,1003489023,1962949760,108824,113707125,146386,-1336930581,-385895421,-346554161,21751811,243319640,-402113570,527564853,1004414592,-509521673,29764411,1480318726,1004615307,1946172544,19130377,-116134920,113709291,605138,-1274826672,9300223,1438906456,1334453841,200094216,-1928497975,-622327441,-402099453,-152961011,-1996100615,-130292434,650337625,32384,-347798668,-2134686218,272358926,1929365736,-567902142,-1588531397,-970245151,1004471809,-516519080,3964987,2088772469,141900543,1003620039,518717449]},{"sector":16,"data":[4162342,-148498316,1962934535,-771307759,-352320965,9693193,-116528136,-1336931605,-385895421,-128450557,-1960421437,1049166975,-2010760234,1703421445,-442413055,1166616123,20731906,-1993995659,-1993997227,1508574797,108331580,72714534,121393131,138209396,104653940,-2010773899,1038812245,242549820,1077665697,71665958,106794022,-1993987093,-1943665547,642778717,16926710,78644340,-165279253,1946288711,-402477051,643301585,268584950,-1545075852,-960274688,3962630,126559824,393592843,1465013072,1003620039,-4980727,1625818032,1532649471,-1458050216,276038656,1003620039,1273495552,-767655165,41224507,1324024811,-2147440240,113709172,15314,-2097088536,154915390,11090037,-955222976,3920390,12773376,1003634307,-1457294071,276038144,1003620039,-1377304576,-767655165,242551099,1948254377,-771307767,-402653125,1048576494,1963015287,-767655155,108331067,1003620039,-1017642999,76174928,410304522,192231996,97408,80086389,-402003200,24315062,-487897530,1455642718,-1966044590,77916164,-1073083534,199756660,-352024576,-347716095,-1017226518,208896060,963797308,897022524,837541668,-1923676589,943482686,1343714325,119427665,-1031117388,-1174405189,-4587515,1512164863,1569413209,54889985,-2144582845,123721510,-2142190757,-2143560178,1004414592,1006930685,1007252523,-2147060435,37477902,190534,1364247384,-919382446,-1974218189,1958742532,18278466]},{"sector":17,"data":[-466470542,-489559925,-118959663,-1960021504,-775844902,-388902430,527565035,-774774063,1912660712,332595990,14280904,-721220238,-402599549,57802959,1539107654,1526772969,1004406518,-150309886,-2083325999,-779943486,2005607936,76162566,125108284,-4980304,1174444777,1006930470,1180595200,1004406518,639530368,1912818747,637957942,1912689723,1278944814,1915254535,1413162553,-350193915,1278944817,2132311043,1413162502,638614529,2131184699,639335434,2131055675,-2095846654,-922875450,113751669,408530,-4980304,28326891,-349926874,-167136204,-268222236,1174702630,55327526,992347765,-495713964,-33175933,-940739128,121360902,-1274957824,-955585537,154915334,-1274826752,-47585025,1482250846,116825283,1963080670,-1648124670,-1007156624,809288697,960235634,808191095,-1007041544,1465013072,109021990,168135206,-1274776128,1011543039,1195275523,-1274705370,1088747017,-1977157629,-167398395,-134004508,1191545382,764094023,1929392360,63406865,-243939074,1003620039,-4980728,-1977216021,45154149,-350909658,-771307766,-1275066053,-402411265,1516240035,1354979419,-1302965675,-402355710,980550278,-151129624,138141190,1027345780,-2144985483,1962934654,-166532242,272358918,977014388,-2144990603,1962934398,1525368410,4602406,-1073079179,1162236020,975573739,1131741254,1157925446,4602406,1162230133,116829163,1950366686,1207379471,1946165250,2122327559,578027520,268957478]}],[{"sector":1,"data":[1008235520,638154042,32384,250285429,125108284,8290342,-117214150,914949611,1593326561,-1017619110,-1957276848,-2143559906,1467295807,126542898,1946235624,1965571143,1925512708,1965636671,1926036998,1008759863,-2012515038,-398244348,678559810,-1142419989,-2012843263,-1975302652,1174702087,-2000164029,21284356,509440,-398003317,914948299,233520084,1004746379,-956300090,154915334,-1325419520,-396665340,-1017578609,-402158768,561250507,209003068,1965227136,1174702107,-370457789,1929471464,1174702086,-2012771773,-347912700,82573784,-134216506,1464910680,-549549226,168069691,-401509184,544538711,1014433478,80109057,971726592,312926,133637727,762642433,1003620039,636157954,76174936,460636170,1946168040,17623051,1179058803,-353679801,-969156446,-1991835644,1580979262,11098207,1342796802,95485876,1492842216,-1924049981,-1187222498,121241609,-498924428,1532576249,552119491,-401181696,343212113,1004406518,-152144864,1094442502,-347207308,32241926,-121417992,1011962819,1009611789,1009349632,639988746,33717632,-617406862,56461862,637846403,1946171776,650720013,641927562,74711354,222099682,1405311833,-670644655,645931067,1021262814,1010201632,1009939465,1009873964,-2146667232,125116476,977674416,639560640,16940416,-919398542,55413286,192203019,1124074427,1946237478,1022943751,-1017423584,-163850078,20700678,243271029,975191006,-1913984064]},{"sector":2,"data":[993781550,1007318237,-117213905,-336065045,1966029834,-569475067,-1007140805,-2091690466,3922750,508568949,1431786065,-1896467706,1660991710,-611573299,1560795915,525949535,-1994034088,-1992566474,-1959011554,-1908680394,-2093229282,276037692,141689914,1996571706,99350787,-336902586,526277624,195,16776704,65416,2,-1,-1,-1,-1,-1,-1,973113344,129,34952,0,0,136,-2004318208,1191921404,1194346273,1195329343,1203390385,1202800545,1201751994,1199720338,8931197,540737793,538976288,2105376,-968442621,38195014,1235110274,-800604149,-280502457,239599175,-1471728056,1179097159,4677191,642260226,1233257032,-1475982946,1179097159,1950834247,4688199,944254722,72,-515450877,38201926,1235110274,-1471728089,1179097159,21454407,1179076108,1179076167,1179076167,1179076167,1179076167,1179076167,1233257031,18846,-1840844027,-1538876602,38186310,1235110274,38204165,658970695,4666951,-217776128,407306822,910632775,-1996357049,4649798,2097152,-1236563200,536936518,1267400704,16795838,-1962934240,4776011,8193,1223707531,2097408,-45380864,196680,-383319808,270532938,-1421112576,537985097,1267400720,285231601,-1962930144,4853067,8193,1242647435,2097408,709593856,536936522,1267400704,19002,-1962934240,21528139,1146437954]},{"sector":3,"data":[536870973,1267400704,1342326974,1414091329,1342192985,4018753,8192,1222658955,1413563393,15681,-1962934240,21557323,1347376211,536870973,1267400704,1375815933,1498567749,-2046820291,1267400705,1342327059,1095779666,4015442,1346720336,-2147483587,1267400704,1392658718,1128614981,1392524628,4017221,32768,1227443083,1279607810,1162084413,1029259596,8388608,877366016,1095893321,4015444,32768,1229736843,1313426433,4019013,32768,1228884875,1280262914,1397640533,1329791037,4019020,8208,1232227211,1414548481,4012593,8208,1232227211,1414548481,268451121,-1962934240,21590603,844386380,268451130,-1962934240,21590603,844386380,537919549,1267400704,1275152754,976442448,537919549,1267400704,1275152754,1026774096,2097152,1632340736,536870984,1267400704,18548,-1962934112,4735307,8193,1213877131,50332416,6474,2839040,844300288,33554432,709587741,215823,-1993670400,843,1255874053,508223518,1965116165,1266229579,33554435,558593313,215929,-1756032000,1248548170,1464496471,-2057811297,1252218954,1498058329,1851411111,1252743754,1531609691,-1956885840,1253399626,1565168733,-1084339526,1249336906,1581937758,215676,1501825536,1264288843,-2109011326,1619217160,1264747339,-2041885306,-2121970865,1266910539,67108867,910844213,1698122339,1248278602,50331651,793400622,1529891415,842]},{"sector":4,"data":[1254431494,491456540,1501842291,1264288843,21720345,7681,65470464,16842752,30,255744,1426129152,1,4,22348033,536870912,33554432,672137728,251658240,80,1241710594,25,11090,3298048,196608,-1861287424,1251694154,33554435,944399158,215655,-318700544,1257374282,72021763,19196,1267400704,788744618,4281427,1096045359,1395589204,1431585108,83,1267400704,788613546,50331711,185991168,-871609657,1255214410,290117134,-2012198060,1251020618,21692690,-234730771,1257702218,88800260,285625199,1259734859,323689224,672418592,1261442379,390805526,1175997247,843,1255874056,508223518,1965116165,1266229579,491458346,-1688843405,842,768,1251020551,508205910,-534885669,1258626634,558593313,215929,1731724288,1248015946,558593313,215929,-988084480,1258822730,-2075430115,1535396697,1264986443,810249497,822096128,838874414,872428288,905983232,939538176,822098176,842072113,3485952,822098225,3288633,841890097,875692107,3158784,872427572,808845368,3160064,822097465,822095921,822096435,855650357,905982000,822095920,3158066,808465458,808989696,909705264,822095920,808464953,1107313152,3159127,808998722,877609728,1329791024,1124085816,4539471,1162104643,1162297680,1297040128,1297040128,1329791025,1124086349,3362127,877481795]},{"sector":5,"data":[1313817344,5260032,1447362629,1275088453,1414548480,1347158065,1275081300,3363920,827609164,3289905,844386380,3289905,861163596,3289905,827609164,1275080760,942822480,1347158064,808989524,1291865344,4936257,1330532173,1308642816,4542031,1146028111,1179582532,1313800262,1342197760,1375751762,1178948096,1178948096,1213416786,1392530176,1162035536,21504,-2013265665,-2013231104,-2013230849,-2013265920,-2013230849,-2013265920,-2013230849,-2013265920,-2013230849,-2013265920,-2013230849,-2013265920,-2013230849,-2013265920,-2013230849,-2013265920,-2013230849,-2013265920,-2013230849,-2013265920,-2013230849,-2013265920,-2013230849,-2013265920,-2013230849,-2013265920,-2013230849,-2013265920,-2013230849,-2013265920,-2013230849,-2013265920,-2013230849,-973078528,4562694,1963018552,-1626946041,967966533,238731774,-327268949,-1626945853,12451909,973124096,2101715734,-1623293927,309657669,1228475019,-972720890,-12214522,-1023523258,-943463957,1011195910,378228746,-1159182944,780884198,2122335640,125046016,32384,-968031884,-1962934202,-2147077586,1946747006,8290310,-16288480,1158033926,155053547,-955157248,-263872506,842465034,-1660514554,-1877677305,1962935101,-1610168568,-351779771,-1610168570,-972481467,207622,839814083,2081327366,-1741780217,8290373,-2146995187,1946157182,1187400961,113704960,179586464,53151430,1946600960,-1161599163,719850416,-1338080794,1946236427,-1341718778]},{"sector":6,"data":[-1259345141,-855592884,1946600993,1048602181,1979663731,252438787,53165696,-385649409,-1070395647,103444400,-523156108,-1526730613,1400524082,1306284534,1428507992,1328698426,1543853711,1370969901,1323847609,1443188703,1320572338,1450004341,1024397288,561315840,-1962509951,-2129759159,1234175609,2038499188,1967756806,1946600972,113665861,-342669912,-49832,113642613,-963426904,-12225786,4016107,-2094959360,1946158713,108626203,91571964,1167328966,246868223,1165231814,-1543059859,569071685,1962934333,24739865,-972720802,-12213754,1165231814,-1475951005,99324485,2129134571,239397374,1171130055,28395123,2114320768,12773635,1165180544,-385649664,1048576184,1962869547,11462915,-66684543,-2146536122,1969095033,-1576614320,1240203077,108626320,343230219,-2046723712,2038433396,896894209,1168246470,-1875973121,554072449,-2146142905,1949630841,24739846,-971344586,-12213754,-2121264149,1194329721,2038434677,91565825,1168246470,166220287,1048598798,1979646763,15641,2038502517,1967586310,-1811495419,-437715131,-373162483,-12714142,-2145290753,-12217282,113641333,-342735448,-1610168565,-972367803,207622,1165166278,-12785153,-369251096,113704758,-379107980,-1310192278,108626189,242502027,-1878623871,-2130217911,1234568825,113641589,-345553548,-12742640,-972589569,-12225786,1927807979,221833725,1024294888,125108226,1165231814,1027140457,41222144,-12766741]},{"sector":7,"data":[-972261889,-1840928762,1165166278,1025567743,410320896,1165231814,24739945,-2147060602,1971650937,-1576614390,65797957,-369284888,904400110,146701,113641333,-346143372,-49871,113642613,-963492440,-12225786,4006123,-971475712,1581609990,889289088,2038433396,175453697,1168246470,-402396161,-1410728731,217245708,1962934845,1946600967,854287429,1962934333,1026288386,209059839,1168639686,1929823890,451673925,1962934333,1946600978,2038457413,175451905,1168246470,-402396161,1743387809,212789260,1979711293,1929823751,351010629,1962934333,1946600972,113665861,-335592022,-58988541,-401849879,4000904,-385649664,78774422,1168316040,-398083395,1048640567,1962886559,8448259,-972267544,1480958982,-1307811864,15617,-1303237003,-1558804476,1169866053,1526468328,1168064128,-2129037825,1195312761,2038434677,91522049,1168770758,203876607,350995198,1979711293,-1475951092,113676613,-335592077,-66852861,202565714,83525722,1048579700,1962886515,725516295,-1586167805,53165696,-2146798081,91555066,1165231814,20244839,1962934333,108626225,242502027,-1878623871,-2130217911,1234568825,113646709,-966310540,4822534,1234175686,-1962490368,113639497,-376617560,2038628606,494206982,503413120,113645429,-965851788,4907014,1255868102,84329984,-605487029,24739840,-2147060650,1963917689,2030487098,113639499,-973059211,4681478,1197934278,1476838912,113639495]},{"sector":8,"data":[-973060273,4822534,1234175686,-1962490368,113639497,-966441612,-1874483194,1023448553,225837055,1168639686,1929823882,-2081816763,108626176,359941967,1476819329,-2129759161,1198458489,2038499188,1967613702,-1610168563,-972478395,207622,2038455019,225779969,1168115399,113641768,-352320725,15687,2038447989,964034305,1266222790,1963378176,113639499,-973060241,4679430,1196951238,1325843968,113639495,-973059690,4820998,1233848006,1946600960,113665349,-342866520,-89921533,-401970711,2038434480,108279297,939620736,113641333,-345750156,-49882,113642613,-963623512,-12225786,4003307,-2146601728,1979646329,1946600967,65758277,-369466136,1911032362,24739850,-972196575,-1740265466,1165231814,23849319,1325824385,-2130021305,1196951161,-118946956,70877184,-555154572,1099650560,1167631106,-955715709,927321606,1174849350,-402390969,4000300,-2140769024,1635058745,37849942,-2092590941,113707247,-2147399866,1168443079,166199296,15626,109257845,-16628360,-2092598778,38105350,1165047435,-2142931267,1964900729,38898454,-351907191,-12742642,-2096794113,65734895,1039778024,125108223,53165696,-1883540224,-347760634,-1610168565,-972478395,207622,53165696,-951945729,21448198,-1526282494,-973078459,4601606,113491,-398092384,-396687012,4000144,-1962314496,2007171649,-1877873869,1979711293,1980155656,-352321211,-111155197,1168639686,-1744400487]},{"sector":9,"data":[-955520187,675651590,721864201,113639427,-345553548,108626274,125060975,1728477569,1025144135,276103168,1167408777,1168639686,1946601111,65759045,-335995672,15674,2038505845,1950976774,108626190,125061520,-1777960575,-972262071,-1773819898,1165231814,1024781159,209059839,1168639686,1929823894,65797957,-369565464,-303560538,108626696,-2146142976,1964900729,-1526282482,-973078203,1850045446,1023451369,1265958912,-1962509951,-2129759159,1234175609,2038499188,1967756806,146204726,503413120,113644149,-966310540,-12210938,1168639686,-1877283946,1979711293,1929823761,113704773,-956349011,-1773819898,1927807979,1028713464,209059839,1168639686,1929823894,1072430917,1325824385,-2129300409,1196951161,2038500980,1950838534,108626183,225789799,1168115399,113641768,-352320725,24739862,-955419359,675651590,721864201,65732611,-369614616,113706982,1174357454,-2096617496,1962935929,24739854,-972524258,1850045446,1023462377,225837055,1168639686,1929823898,-1175847099,108626176,242502027,-1878623871,-2130217911,1234568825,113646709,-973059690,4820998,1233848006,-1475951104,113678917,-379107980,3997832,-2089978624,1946158713,108626279,242501522,2097576321,-2130217913,1199703673,117311349,1122715047,108626320,359941967,1476819329,-2129759161,1198458489,2038499188,1967613702,-1610168563,-972478395,207622,2038503659,1950855430,108626193,175392698,-1593411199,-402426809]},{"sector":10,"data":[1575548757,1946600967,384527173,553744768,113708405,153634208,53151430,-402396416,-68552907,-1777940986,113639497,-973059696,4819718,-109051471,-2140177146,4551486,1048602741,1979646763,501764449,15623,2038638197,544473094,-1845069439,-2129759161,1199375993,2038499188,1967620614,-1492713980,116320325,803979774,1979711293,-1489076185,125043269,1168588416,-972262144,-1941592058,1165166278,-955520001,-1874485242,721864202,65732611,1509339368,113675499,-379107980,-1243085202,24739846,-2147060694,1964835193,1946600967,988503365,1375828352,2038434932,108286721,1241610624,113641333,-345553548,-49887,113641333,-335592077,146709,113708405,153634208,53151430,-402396416,468317781,107145222,704739712,2038433396,209001729,1165231814,-1475951011,1256951621,1375828352,2038434932,108286721,1241610624,113642613,-963689048,1732604934,-12768021,-955091457,675651590,721864201,113639427,-335592077,146709,113708405,153634208,53151430,-402396416,-1276512787,100329477,721516928,113641333,-345553548,-49905,113641333,-335592077,-171186173,-402288151,113706456,1257063834,16873856,113714292,1257391514,33651072,113711220,1257719194,50428288,113708148,1258046874,67205504,113642613,-966310540,-1824151546,113728747,1259423130,83982720,2038439540,410256897,1167722183,2038450966,208930561,1167722183,2038450971,208996353,1165231814,-1475951001]},{"sector":11,"data":[652971333,302086528,113642613,-966310540,-1706711034,-12774165,-972261889,-1958369274,1165166278,-402396161,-202771155,-1744386300,-1157594811,-13415533,-955715709,-616182266,86435909,-1962509951,-2129759159,1234175609,2038499188,1967756806,-1777940969,113639497,-973059696,4819718,1165231814,76802408,1962934333,24739877,-971016705,1631941638,1171130055,113722903,17829,1167722183,113658625,-376486488,2038432873,628885761,285309312,113713023,1175930318,1168443079,113704960,1258374554,1165231814,-1475951008,1055493957,-1710831868,-968158907,822585350,57738950,155305521,24739926,-948800493,373660166,1896269387,113652227,-2144204888,1947468153,-1710831780,-968156347,855863558,128452294,24739891,-951684075,289774086,-1475951029,113651975,-969866383,-2146498239,1947599225,-1710831828,-968157627,839086342,128452294,24739890,-954829801,457546246,1896269387,113652483,-2144139352,1964507513,147292993,1171130055,113657375,-973059207,4945158,1198458566,1728497152,113639495,-973060264,4673286,1168443079,113639425,-966441612,-1689936890,1168639686,57928080,-947714325,70248456,57738950,108626176,762595273,-653887103,-970558393,17002758,-402228863,-2128972729,1207436921,113644404,-2130574479,1208419961,2038499188,1967658758,-1475951029,2038444295,561250561,128452294,24739890,-971607038,856139782,50428288,113642356,-2144073816,1963196793,1946600985]},{"sector":12,"data":[113665861,-963754584,-12211962,1167853254,49277339,113706731,141051296,1169047168,-385649620,113705101,1259423130,128452294,1896269361,2038444291,745801217,1167722183,113658646,-969800847,839362566,117537152,113710708,1260078490,57738950,-1475951053,2038444807,1265960961,1171130055,113722911,1231570846,1201145543,113647616,-973059207,4945158,1198458566,1728497152,113639495,-973060264,4673286,1168443079,-947716095,1946600968,113665349,-962902628,-1874483194,1392660713,-1610612549,1978156439,115890946,-1526282493,-956301243,-2126145530,43706368,1167722183,113658605,-2144270424,1946222969,-1710831821,-968166843,839362566,33651072,113713780,1257719194,128452294,24739891,-955157501,-62547450,-1475951030,2038445063,427099137,1171130055,113722967,17829,1165231814,-1677277588,-689333179,-1710831871,-968158907,822585350,57738950,24739889,-953388026,373660166,1896269387,113652227,-2144204888,1946616185,-1710831850,-968156347,855863558,128452294,24739891,-953060088,524668422,-1375287482,-951493049,1749523974,-1475950775,-954204089,4691974,-1526282464,-973078459,1648718854,1167853254,23325083,83982720,113643125,-949009036,289774086,22014283,302086528,113711733,1174357454,1168443079,113639424,-949336716,21338630,19917131,1979711293,-1475951091,113675077,-369146509,113705245,1182877134,1168049862,-2147438336,1165821177,1168064128,-398560000]},{"sector":13,"data":[-1040318011,1359038856,1395704192,-1979711301,18802881,-1526282405,-956301243,-2126145530,1172852992,15617,113640821,1509901727,113491,-102186614,-346465536,-1623293770,1903558469,1963063680,-1710831853,-951390907,1257046593,128452294,-1874793679,1963129216,-1710831853,-951389627,1257374273,128452294,-1876366542,1963194752,-1710831854,-951388347,1257701953,128452294,-955192525,-62547450,37865290,113658620,-952891480,1464192518,-1526282426,-973078459,1816491014,1167853254,-347018340,-1526282418,-956301243,-2126145530,12276480,-399593472,1398472808,-1342177093,6219810,12276571,-396578816,1398472788,-1342177093,4909147,12276571,-396513280,1398472768,-1342177093,3598379,7006299,-336571160,6481947,1962934077,-1610168562,-972478395,207622,-957287447,-12225786,-2081362967,4563006,378210164,-286767712,-472792106,1547216895,1548704828,512416563,-1014938159,1200113102,-788070908,1460857669,-2126131521,-234879801,-970567762,-346087419,1904984832,80094726,-947666176,-1085057272,915097038,12207512,-1525773568,-537335739,1168445065,1169038984,244014939,243877272,914949682,-12761704,-1976863489,-2008315114,-1944679919,22120523,1267668619,-1962782327,-1991536362,378209361,1367952269,-1476755194,-402426551,-960237527,1103529985,1103625985,-956266494,8913473,-2012986937,104974080,-276627456,-1525743864,49989,0,20700672,243271029,975191006,-1913984064]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[15686221,327704,9109536,47841279,-1619064832,8981834,30,219873281,148242569,223674902,232718473,157941897,534]},{"sector":17,"data":[-1,1998848,1163067433,1380275796,16799832,75,2048,-1993474048,771758622,1836684,773739467,1711813,-1744681078,58048523,-1341648407,-1987988477,1528759111,1296257227,168296526,843991383,1110323248,671305289,1313429258,774910001,55462210,1230441256,1380931406,1480928836,151651397,1162041413,1480928844,185205829,1096042824,776554563,72571219,1397557760,1480934467,1163412782,1376387076,1380533317,1480928820,117441605,777274702,71653445,1162741504,1329802836,203293517,1465140558,1096045387,1163412782,1141637124,809586008,776228685,55794003,1094846238,1480928846,117441605,776880450,72175427,1397558016,1229210962,1480928850,150996037,1381254477,1480928847,203359045,1129136713,1162363713,1398362926,1376462851,1380533317,1160654900,279896,776225798,71653445,1145308673,1313423918,1275527428,1160655692,17057112,1145393673,1160663625,279896,1364808457,1395537205,283481,1414746892,1447645764,1498623557,134218835,1448232026,1398362926,1510473988,777276742,72571219,1330907905,1146245968,1480928850,1093]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,817123667,1532568013,1946158397,-339725564,-1944168909,-1093103928,-1070399413,1958742956,54542342,-1946817552,1579106502,-1269823917,1478610258,113714938,4915293,1594788902,1527249664,-1945221239,28577871,16229609,0,0,0,0,-1192457387,1843920978,-88582641,1996443659,74907398,-2096740376,-259324220,159184395,4909142,-1962752893,1962281968,-137983174,-1012776,-1928848842,-397365690,-998042348,-773944572,448266211,-1371108088,348317776,-1929067389,-397365690,-998044594,1010237186,205842440,-1962752893,-443851066,-1957313699,178412,1443823592,67403395,1085804405,-1209511928,46433024,-1427521493,75399936,-1207274238,-397408170,-998047582,61335554,-166989685,2122544245,125108484,-1962886680,-2090341392,1946354814,75399942,-1206356731,-11531201,-401878986,-998047063,200313604,-1962639882,-396301370,-259325555,192280075,33848963,484967797,200313602,-399804938,-259324845,578156043,84180611,922688628,-1545074632,46433035,1024187368,175439873,138032895,-2096393752,-167050556,2122560885,-1351351036,185319400,-1196919360,-397408152,-998047734,1587342082,-1017256565,-1192457387,837287938,727078670,1460202486,-2096408088,-1958346044]},{"sector":5,"data":[-963967906,-670834479,-16040053,1600055669,-1017256565,-1192457387,99090488,-794733042,-62486261,-1982314867,1924726342,12118280,957076129,57867334,-16728087,1290337398,46433026,108380171,-369101384,1586168000,-1744336132,1086557008,-934900400,334293072,-1962490749,126549086,-1913615464,1183434818,-1962284038,130480734,-96010464,972965515,-277677498,-1963172213,1174509575,-62455812,1342180024,-1946257665,1191181406,-1744336132,342026320,-1962490749,126549086,671128,1941439869,-1207702776,-11532170,-35062154,79987474,1342180024,-11485141,1374223990,79987476,-60912816,-1963178241,-397371385,-998042588,-934900474,174647376,-1962752893,1065417822,-385649664,-794689738,-62506741,922684021,1273497662,46433034,-1956724693,1438866917,179891339,218556416,-1995714399,1189870662,66995851,-1995714554,-661914554,93849482,1183383555,198353402,1174651691,-163149318,-96040112,1397801731,-2095816216,1183516356,-62520330,-506231,-1070859658,-126419120,-2095803928,1069024964,1996443660,11266300,-1996176253,-1072955834,-79845763,-400067073,1183383856,1958743032,200843545,737693323,722194446,-1070903103,-126419120,-2095819288,-1070922044,-172489749,1575324671,-326412861,-402651976,-1202320280,-397407169,-998043026,-2081387774,-370670650,-62486272,1131724811,722195105,-969147322,1586182524,751209468,-1207465981,-1957688257,1346436166,-2095969304,1586169028,-1744336132,-62521024]},{"sector":6,"data":[-237941,1302395974,-1962440692,1319173214,721913868,-1207702592,-1956708365,1438866917,-1070338933,1443625960,1586183659,-1744336380,1086557008,108461904,-2095957528,-1073019196,1586174325,-1744336380,1988876427,3702790,1183517045,-804902140,-1959793909,126485598,198040,-1593555455,1178143698,-1961331964,1065354334,1393587200,-2097147160,-1073020220,-172447627,-1207702529,1566507003,-326412861,-1914126285,1586189835,-1744336380,-24907637,-1928430323,104530752,91425746,-352321096,1589652226,-1957313699,178412,-1593089048,1183386576,-1962087426,126549598,198040,-1946270207,1065418334,-1593347072,-667218990,-761141902,1943550731,-339506428,-1950340350,1438866917,112782475,187099136,-62485162,1354771280,1342962616,-2095861272,-1073019196,-88603020,13953535,1358841485,1342184632,504124600,-59310256,-2095863320,-1073018172,-1444347020,-25263360,-385649636,1554055328,-754667252,30551008,286019590,-1207152106,-11534310,-15969738,-1207152586,-11531296,1441332342,180650753,1920319499,1342179512,141571839,1342958264,-2096039448,-1073019196,1048598389,1963002867,200581456,200677003,206571009,206706193,200816383,-2096253976,-794623292,1975520011,-147963,922694635,922684408,922684498,922684496,1996426192,16181500,185255043,722892224,200843766,198182403,-351546717,-737784,-155319317,-59310081,-2095931416,-963968316,1575324510,-326412861,-402640200,-1923741144,-1202663354]},{"sector":7,"data":[-1202716666,-397407237,-998042988,1958742790,10283267,-1202667477,-397407237,-998042918,1958742788,8972547,1358710413,1342177976,1342962616,-2095938072,-1073019196,-1070894475,1379336016,1345781516,-59310324,-2096683544,104532164,745868368,206706235,1183655541,922702078,-14808072,-16003018,1793653878,180650770,209043467,957085857,74841670,65795627,-3394,1996482166,-59310104,-2095941656,1996424900,300607740,-1979530109,1352197446,1342962616,-2095952408,65733828,-1946158402,-443851066,-1957313699,178412,722034664,1996443840,142016266,-402360577,-998046046,138820360,1446717813,-1926990582,-11469242,-14807946,1996424822,300214276,185255043,-1962117696,1178143814,721712638,-1207702592,-443809802,-1957313699,571628,1460211688,106859350,1183528959,-397393912,-998043940,75399940,-1207536383,954793985,-96024830,334168065,-772120949,108956643,1239953919,46433040,-1946532097,1178141766,-1192919814,-1957689224,2013202014,52815874,184861827,-2095942464,2114061438,-477178,-1207830807,-253165564,-96024831,985137153,1586188288,41418502,-2096130072,-1073019708,-2048326795,106859264,-1979555957,1076729863,-1880600576,46433029,2088026123,-1962516853,2139095647,1886730753,-16359797,1877475959,46433038,1039943305,108920899,-369102408,1586168215,41418502,1074284171,236906576,-1962621821,2123103326,1547272200,1586174580,39815942,163712,2058882676,-947171320]},{"sector":8,"data":[-1175957440,79987469,1342733496,1074284171,229304400,-16464765,1183578694,-96061180,29232252,20965632,-369100360,1586168123,-1948003846,838796926,-2096982808,-1073020220,535364469,-94467327,-772126977,108956643,1183527423,4523272,228780112,-1962621821,1178141766,-1106871046,-85327881,143112192,-94467248,2123097041,-399376634,-998047225,1958742788,-96010432,956581515,796785222,1342738104,-772120949,108956643,-454544897,79987457,292864011,-1946532097,1178141766,-1202160390,-1561788411,-475648,-1107253015,-1561788413,143964160,-94467248,2123097041,-399376634,-998047313,1958742788,-96010445,956581515,931002950,1342741176,-772120949,108956643,-1930939905,79987457,527745035,-1946532097,1178141766,-1196917254,1273757688,-772120949,108956643,1065359755,-1106938577,1139539967,-369013,-472778170,-16351605,3926065,-1996307325,-1072957370,1586176372,-112817656,-1957476472,1183451230,1413974264,956581515,-1283655098,-1962933576,-1106711568,65798140,-1946157378,-1956684090,1438866917,112782475,111863808,16533191,3061760,74907472,-2096260120,1183384772,1958743038,-958887092,1191116807,-25755650,-2096328216,1183384260,146938,1996426615,9300222,184730755,-955812416,-954,1996431339,216721662,-352140157,702470,-1979947273,1183579206,-96010246,1912603197,3193068,74907472,-2097118232,1183384772,-58817788,1343845631,-2096350744,37552836,-15894784]},{"sector":9,"data":[954729590,46433024,125157387,16533191,-15668480,-1779956618,46433036,-919934838,-2114171383,34339966,2122385266,1913258236,-62470395,1183514624,1575324668,-326412861,-571949005,-1961432315,1191117918,-1744336380,-2013865845,1963198951,-339727612,73304843,1962950528,112866,-1957313699,-390056980,65734064,-1962653953,1183450206,1946630150,1573096435,-326412861,-402652488,1586169236,71761668,1966030720,73304840,1962950528,-339727596,73304870,956188298,-15567609,1191118406,106859268,1183319946,1975519998,73305060,453066624,-1948715072,1438866917,45673611,88795136,1342189240,-402360577,-998047300,74907396,-2096413208,-1073020220,-1779891339,74907392,-2097113624,-1073020220,-2048326795,6076416,74907472,-2096360472,-1073019708,1996452981,10872836,184730755,-9996864,-68680586,46433024,1517666315,1342189240,-402360577,-998044696,-28931836,947175435,1342189240,1090406027,198371408,184861827,-1959561792,1177288262,539908,-1070913409,-25755824,-2096384024,1177224388,54348030,-1206681856,283836417,-402360577,-998045010,539906,-1070862986,-1017256565,-1192457387,-1981284350,-28915964,1586167809,4161540,1191122036,-1744336380,11003984,-1996307325,-1072955834,1183573109,1575324670,-326412861,-402650952,1448543320,1342189240,-402360577,-998044852,-96040700,91537419,130472075,738142976,-773878794,-460878877,-129595128,410304523,74907472,-2096411160]},{"sector":10,"data":[20776132,-137815296,1207012313,-646646261,16416387,1586169460,772261626,1600046731,-1017256565,871140181,66513088,1342188216,-402360577,-998044948,1975520004,4175889,74907472,-2096440344,-1073019708,28837236,721611520,1438866880,45673611,63105024,-1744550262,1946165309,1024753420,91488265,1962937661,-28915938,1183514624,1025240062,-244056017,2080389693,4078858,2084431742,-941460480,130630,-443817749,-1957313699,178412,721648616,1996443840,175302660,-1996176253,250347078,-1963041141,1194853958,-16026113,1183579726,-28952316,1586227829,509694,-1017256565,-1192457387,1105723396,71731971,-335657335,-62485990,1726501016,46433279,141934603,-2130813301,259340863,-1946269953,126549598,184305288,-2460224,1183579726,-28952316,1586172018,-2012771586,1547500614,977011828,1191175541,-28931074,-1017256565,-1947432107,-75299746,-1207140582,567100424,255658355,855930112,-1207702592,-1017315327,1458342741,-1190889845,-1392771070,141869066,-796261708,-219471411,-502725954,-1017291027,116165461,1183466164,73304842,-1945741628,1914817985,-1207637246,127533055,1465303901,1387529758,-1269620275,1596050736,1008191363,-2096923134,314051527,-1093104126,146344197,-8127488,1360164095,-947693993,1587999498,158619999,-348273626,-339725335,112643,1583292167,817103043,37495245,550306419,-1962798401,721420854,16679415,-1107070448,-1896214528,1858372055,276036364]},{"sector":11,"data":[-135782634,1354773249,-1207666968,567102719,922674307,152315529,270960950,-1312388343,1222693636,151954230,915011331,-1014235134,-604512725,567102132,-2061595594,-66644471,-1190408001,-819262352,-1426866125,1005068054,-400615936,31982482,-1232126,-16144842,-16145354,-402021834,-397348286,314048738,-1193767422,-952762365,-1073147386,2078822414,66971649,1342242744,152180479,567095476,-1207335005,567096576,158539401,158664332,12066574,232700453,521544141,183242379,109981411,-1960441467,-989844426,-1945440762,920335322,183115519,521536883,906055145,183633605,62642828,520041984,521538282,159712910,739150630,-1909005568,654259137,1946172800,833836,-217487682,-1190431578,-1070366721,427142898,503768555,-141877497,-1408659777,-22244968,1208054976,385344170,310047,160343936,1140897983,175251917,1954595574,-1903198203,2034974729,183942887,-401934657,-155320158,183942922,-1023374616,-1091794091,-692122666,8251403,-1089800514,1961364214,1426320128,-155259765,183942922,-1107269912,-155251978,7137290,184596968,-2096401216,1962935422,71747333,263782655,375552,160335862,-1274776575,1126288702,132707042,71731968,567102644,183242379,45811683,-367067392,382017034,12061043,522308901,162545280,504198144,-989220448,-1274433002,522308901,1945582531,-1957736694,-597235,-1007490095,242480955,-1962610813,38079237,503313012,12840683,-1192457387]},{"sector":12,"data":[-397410052,1048773243,1946159542,-1240006908,16758793,40495184,-1017256565,-385875272,-1957036453,1926769628,-1205978358,-1962642935,870449123,-28972608,-1175047338,-466485182,-533549828,-192873502,-401771435,28901294,753422336,112642,110084958,45746618,-2028587008,-1909885943,638158086,2885262,162137740,-1181106125,-13402112,1974382322,-1991817221,-1190549442,-1359806465,-779365897,-1107295809,512622721,1017907589,1023112224,1022850057,175076365,1198224576,540847182,154986612,222094452,-1073062796,574380148,1547445364,-347995276,1103705060,1952201900,1948400890,-338623740,-775844909,-1462692887,-339053311,1017925121,170619917,1009218752,1018852386,1107522652,-919343893,1547480129,574421620,-788331404,-1047798805,-787224111,-764083800,521574379,161627785,-783821053,-2133392409,-500433182,-1532771189,64523017,906434299,1128480649,162019013,-1073042772,-2118190475,512636416,65735045,-1398095821,-76275652,-143390404,58002748,167804905,-352094784,-1992912775,1313030975,1948269740,1946762459,1947024599,1958742626,1948400734,1952201767,-454317565,-1404974797,-93037508,108274236,-1426891600,1555091947,-1426855471,581961331,1321593770,1947024556,1958742574,1948400682,1952201911,-320099837,-1404974797,-93037508,108274236,-1426891600,1555093995,-1426855471,581998195,869133226,521579200,1991,163194623,1441565525,159719054,-1047803597,-108271221,741772105,1962281728]},{"sector":13,"data":[650546704,16000,-234458112,1974355374,1083655674,-41157084,-989600303,-1084809450,-2048393207,-812949760,-133956213,161885833,-561117410,-481692109,993820947,-1996131261,1162150014,-1073042772,-303891851,369118857,-443851489,-1957313699,509040364,72780551,-1391788354,276087355,208967232,-1178586217,-1359806465,-336857205,-1956749418,46292453,-326413056,74907479,201313256,-1844153152,-1070335349,-218103879,1238497198,-1275067717,1596050752,-1034033781,-796196862,152307203,104412530,628295950,1342181125,61987025,-645076781,159719051,-1056715989,-661929074,567102132,605057624,245582064,780899593,369166612,-1950152428,-74323513,-1070394510,-1017256565,-397346701,-1957167080,1942183397,976903,-1711276104,-1017256565,32039986,-1969044736,1977879049,-2025947101,225575689,225649212,91365436,132842928,1980972176,-1156337662,-1730737732,-1022787677,-135543670,-1947432107,-620034978,1333789812,-443874818,-1957313699,-1151904020,1065552336,506033408,374791,1963029480,-1715457275,608183531,164668414,-1777741149,66759,-955988349,-65980,165033609,-1945874805,-390033704,1583284233,-1017256565,1090572009,-511640972,-285637634,2005660275,-1951532030,1946265854,-1053079486,-796191373,-1464995837,53769217,132546,1149892491,-1947800578,51148030,-28538375,-1991720661,50719493,-28508423,-628308341,-784608884,-1943665292,-1995842018,650314367,165938886,-115454,-24435340]},{"sector":14,"data":[-1464995837,-1947044863,-1053079298,-796148365,-1464995837,65172481,132546,1149892491,-1947800578,-1073018809,-661781388,-31058709,1946805262,-1931965423,1959214039,512632325,931858906,2005646571,-390057210,-969211798,19139956,-392675264,225706078,-385987074,91488284,-347189610,-1931965287,1958820817,-559733244,-1995994359,-1070398905,-1957575783,27852357,-936705164,-1170128567,992378879,1980358678,1978323204,63015925,51737286,-150113598,734143442,846022,-755562379,-445257007,-1017528269,501764434,1461220352,-259260789,1153954307,-1979711746,-695531913,-1991583957,1499004501,1347666778,1377751603,28856402,520507392,-2097147928,-92075836,1532633087,-771030412,-1957363517,106387180,556675,348076149,106334985,1208239755,1407715189,-349736448,1681296200,292833289,225769275,-1996340085,-397013946,1935540282,80118576,157613697,-771029901,-4716939,501979647,-1014769013,-1310994161,-1259613437,1914817864,76124905,-1996335991,856253494,1583286208,-1017256565,-1962127733,38550007,-964490124,1694400772,-101550839,-628408341,963779587,-1047604341,108394299,151920185,-1014815117,-774123249,-773074453,1979137003,-1579613431,-668268155,1253359758,225583565,74839867,151918217,-1962637422,-1957313583,-1948808212,-1898410786,75402176,-4603853,-1917914369,2123104117,-18170,-772296974,-24643285,-150714741,1946157510,-783703038,329642985,-1952123959,1576700915,-1957363517]},{"sector":15,"data":[-1948808212,108432350,-661848437,-1070350194,-218103879,-1949173842,-947190658,41157032,-372160092,-921459213,-208952077,-1017251189,-1947432107,-1898410793,75402176,-4603853,-139529473,-1953412655,12803578,1475119957,-1962467754,1988822142,-1948284154,216205390,1958742700,-119363069,-1426866126,1600045963,-1017256565,1475119957,-1962467754,652413006,2123094411,871860996,-139529536,-1949629479,108432382,1149937395,986264575,74972997,1229522036,-1047801353,-443850914,32097117,-1957363712,-1957275668,-1070398346,-1394920551,-76275652,-143390404,1949121616,1965767684,960277505,808198007,-472835214,-880028975,-472778101,-472788271,-654060847,-670836973,-352267645,758929628,-150506093,13796312,1600051959,-1957313699,-1286121748,139365121,855918219,184124370,-1952906891,300484222,-1957363711,2123061228,-1962467836,-1178586145,-1359806465,-1965426879,-74774970,944746226,855798789,1606913023,-1017256565,-1947432107,108432342,-1341890933,1958742783,663399468,1960852035,1010904308,-2134304230,-1056825119,-528072444,440156460,-511653606,79757856,1959017025,482351828,-225732353,-1957313699,73305068,126538635,292864010,440164652,1090782323,-1975318648,1975519751,-1017277713,-1947432107,-1931572265,-1950314792,2123040374,-1949857020,719521870,376897083,-1056717173,242481211,-251410549,1330575619,-56298499,-947187477,41157032,-372160092,-921459213,-208952077,-1017251189,-1947432107,-1898410793]},{"sector":16,"data":[75402176,1317789579,-1978277112,-527825338,116727,1235878516,-1410078255,-1426863853,1569979019,1317732547,71731978,-1962518901,509020286,177470471,-2095876928,242551545,175755787,-139842128,13796315,-141829385,198325138,-150833984,-235432975,80971666,1983462448,-1440283646,-1022639477,92856949,92712015,-1912650616,-952434364,1599664754,1575324510,-1957363517,73305068,567099060,16409065,-1209234603,72780623,-1957361429,-1957775380,448006230,-8379955,-1962511026,1317733462,-840463866,-96933599,-1947432107,1183515734,-851594234,-1962577375,126421086,16392681,-1259566251,1426451263,1085598859,-1962647925,-987887026,567084630,-1962577377,126422110,16383465,-1947432107,1317733462,1124186118,-337042995,-1957363463,73305068,-1962389877,28837462,-383660713,63958,0,0,1377850189,1412263541,543518057,1919052108,544830049,1866670125,1769109872,544499815,539583272,943208753,1766662188,1936683619,544499311,1886547779,168624145,1330795077,2112082,1635151433,543451500,1953068915,3041379,1635151433,543451500,1701603686,1701667182,1850277934,1717990771,1953391977,1835363616,779711087,1986939136,1684630625,1919252000,1852795251,1836412448,745694562,1919903264,544498029,1953723757,543515168,825306674,958410016,775502126,1701860096,1768319331,1696621669,2037544046,1935767328,1953459744,1970234912,1763730542,1752440942,1702240357,1869181810]},{"sector":17,"data":[1635000430,778398818,1970225920,1847616620,1713402991,543452777,543516788,1701603686,1413829408,777143638,776296517,1986939136,1684630625,1769104416,1931502966,1768121712,1919248742,1867776046,1634541679,1663072622,1634561391,1814062190,543518313,1634886000,1702126957,3044210,1936943437,543649385,1634886000,1702126957,1375743602,1768186213,1394632558,1163285573,1480928850,1768300613,3040620,1936876886,544108393,1818386804,1936269413,1919902496,1953527154,1750335534,1163075685,1380275796,1818846752,1852383333,1701344288,1701868320,1768319331,1881171045,543716449,1847620457,1629516911,1836016416,1769234800,543517794,1936876918,778989417,1701336064,1763730802,1869488243,1919905056,1886593125,543515489,1981836905,1769173605,1948282479,1701601889,2003136032,1953391904,1936025970,1918304302,1852404841,1163075687,1380275796,1163412782,1818846752,1849765477,1986947360,1684630625,1952542752,1869881448,1413829408,777143638,541415493,544432503,1667592307,1701406313,218115684,1919243786,1852795251,1650553888,1931502956,1701012341,1969648499,544828524,1633972341,6579572,543516756,1936876918,544108393,1851877475,1998611815,543976553,1701536116,1717986592,544498533,543516788,1954047342,1835627552,1870209125,1701978229,1918989427,1870209140,1931506293,1702130553,538968173,538976288,1702057248,1163076128,1380275796,574566176,1919903264,1818585120,168624240,1696624462]}],[{"sector":1,"data":[1769108590,1713402725,1684960623,544106784,1936876918,544108393,1818386804,1699938405,1948283764,1981834600,1769173605,1847619183,1700949365,1752440946,1293972577,1329868115,1701978195,1953656688,1869881459,1881170208,1919381362,221146465,1766064138,1634496627,1969430649,1852142194,1702240372,1869181810,1635000430,979725410,1163075616,1380275796,1919179552,979727977,1752457584,1681981533,1852121188,981037684,538976288,538976288,538976288,538976288,538976288,1163075616,1380275796,1919179552,979727977,1752457584,1768300637,1634624876,1847616877,7237166,1701602628,1696621940,2037544046,538976314,538976288,538976288,538976288,538976288,1448363347,1528844869,1986622052,1634744933,542992500,1701603686,1701667182,1162096416,1163150668,1362058016,1413826901,658781,1683693600,1702259058,1952542778,538991976,1884495904,1718182757,544433513,1633906540,1852795252,543584032,543516788,1448363347,1160663621,1713390936,778398825,1713381376,1852140649,543518049,538976288,1394614304,1768121712,1936025958,1701344288,1818846752,1835101797,1718558821,1701344288,1869770784,1835102823,538968110,1852714606,538976288,538976288,538976288,1667592275,1701406313,1752440947,1397563493,1397703725,1919252000,1852795251,544175136,1914725730,1919905893,543450484,1948282740,1881171304,1919381362,3042657,1143939104,1413827653,1919885381,541339424,1698963488,1702126956,1752440947]},{"sector":2,"data":[1702240357,1869181810,1635003758,543517794,1920233061,1868963961,1752440946,1886593125,1718182757,543450473,1735357040,778920306,790634496,1162433873,538976340,538976288,1210064928,1936024681,1701344288,1936026912,1701273971,1887007776,1818321769,1679849836,1819308905,1684371809,1920295968,543649385,1701602660,1852795252,6713120,538976288,538976288,538976288,538976288,1702240288,1869181810,1635003758,543517794,1920233061,167784057,1314013527,541544009,1866670125,1667331182,1870209140,1931506293,2004117103,543519329,1684956534,1713402479,1763734127,1919903342,1769234797,1629515375,1953853282,1701345056,1919248500,1929404704,1768121712,543385958,1735357040,544039282,1802661751,1769414771,1293969524,1329868115,1702240339,1869181810,775233646,1226845744,1936269428,1936683040,1818388851,1752440933,1291875425,1869767529,1952870259,1935763488,1953459744,1919252000,1701406313,1752637540,1701344357,1752440946,1919950949,1634887535,1769414765,1931504748,1701012341,1969648499,544828524,544109938,2030069353,1965061487,1948280179,1394632040,1163285573,1868767314,1851878765,1869881444,1634231072,543516526,543516788,1735357040,544039282,1936876918,544108393,1651340654,1629516389,1979737198,1769173605,1948282479,1701601889,1716068398,1970239776,1853190688,1701344288,1869770784,1835102823,1952866592,1663070821,1735287144,543649385,543516788,1936876918,544108393,1818386804]},{"sector":3,"data":[1852375141,760433952,542330692,1936876918,544108393,741355061,1970239776,2036428064,1936682016,1919885413,1919902496,1953527154,1952539680,1919885409,1953392928,1969516402,1931502947,1702130553,1852375149,1650553971,1953066089,779314537,1667845408,1869836146,1763734630,1869488243,1701978228,1852797043,1818388851,1868963941,1851859058,1869357177,1864397683,1633951858,1701273965,1919885356,1919903232,1936682016,1919885428,1919902496,1953527154,1679844453,778138721,1330511872,540689748,1448363347,1679839813,1667855973,1869488229,1869357172,1684366433,1867784238,1952669984,1952544361,1163075685,1380275796,1919252000,1852795251,1885696544,1769239151,536897390,538976288,1970239776,1937075488,1869357172,1948279905,1394632040,1163285573,1480928850,1701060677,1701013878,544106784,1920298873,1313817376,776423750,777214291,1413829376,1481786710,4325464,6029388,8454254,15270069,19267853,22741320,26083700,33948113,40895051,47841978,54133502,61866862,71107584,79955062,89916689,92471296,101647819,110822999,120194786,1905,126748557,2003,771754001,3014704,6029375,1448363347,1160663621,1140868440,1413827653,1431371845,5522761,1162433873,1162084436,1163150668,1481982208,1330397952,2378563,827150147,1297040128,1329791026,1124086605,3427663,5132099,5525580,827609164,1414548480,1347158066,1275081556,1308644435,1342196821]},{"sector":4,"data":[20050,145033377,145819820,146475190,147065024,147654856,148310226,148834523,168624128,1413829376,1481786710,88,248971264,34734080,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1127942420,1279870559,1313431365,20294,0,0,0,0,0,0,-2122252268,65921,0,0,0,0,0,34736556,67,0,0,3440,33691136,201919768,134679564,318707222,-16641523,0,0,0,0,8192,536870912,538976288,538976288,673720360,538976296,538976288,538976288,538976288,1210064928,269488144,269488144,269488144,-2079322096,-2071690108,-2071690108,269488260,269488144,-2122219135,16875905,16843009,16843009,16843009,16843009,269484289,269488144,-2105376126,33718914,33686018,33686018,33686018,33686018,269484546,2101264]},{"sector":5,"data":[0,0,0,0,0,1010565120,1196641614,15934,808466002,755633456,1635021600,1864395619,1718773110,225931116,196618,808466002,755633459,1953392928,1919248229,1986618400,543515753,807434594,150997517,808866304,168638768,1869488173,1852121204,1751610735,1634759456,1713399139,1696625263,1919514222,1701670511,168653934,218168320,16711690,762213746,1701669236,1920099616,2126447,911343618,221392944,1713384714,1952542572,543649385,1852403568,1869488244,1869357172,1684366433,16779789,808866304,168636720,1970151469,1881173100,1953393007,1629516389,1734964083,1852140910,658804,-654311425,-352267645,758929628,-150506093,13796312,1600051959,-1957313699,-1286121748,139365121,855918219,184124370,-1952906891,300484222,-1957363711,2123061228,-1962467836,-1178586145,-1359806465,-1965426879,-74774970,944746226,855798789,1606913023,-1017256565,-1947432107,108432342,-1341890933,1958742783,663399468,1960852035,1010904308,-2134304230,-1056825119,-528072444,440156460,-511653606,79757856,1959017025,482351828,-225732353,-1957313699,73305068,126538635,292864010,440164652,1090782323,-1975318648,1975519751,-1017277713,-1947432107,-1931572265,-1950314792,2123040374,-1949857020,719521870,376897083,-1056717173,242481211,-251410549,1330575619,-56298499,-947187477,41157032,-372160092,-921459213,-208952077,-1017251189,-1947432107,-1898410793]},{"sector":6,"data":[-1,12697683,1329791180,538976334,273752096,24117616,58065264,24118326,83231946,24118518,24117616,24117616,24117616,24117616,1581320730,107364870,1141263939,541591129,114969094,1376196427,543557456,123168774,1829196652,728630954,127168519,1929804657,-1586166120,6,150929671,84015108,-133725953,8915056,520157214,-132119304,116924674,587331618,-131856904,133702915,687902504,-1893056369,1619995424,756059948,-1892790129,1888431920,255,-256,-1,-1,512306943,-1943142223,-889146618,1381060694,102651223,-1256288941,48896,775915822,-66957428,75465518,776893951,-16351357,-986822795,104645687,-49832,-8190603,1463186687,571734,-1928692339,-1494021516,-920428706,-1960436107,-1993472443,-1064565689,105351470,138775334,138905902,-1993424756,99289671,-348273626,516239038,1334509745,38242834,1228440,-268177405,544674876,1343127492,-1912586056,8691928,41222204,521017520,312656126,620713994,199951284,-352314648,-343821298,771863554,11607749,1526941577,1599938311,1582848346,-1254715957,516173312,-13762383,-13761444,784533596,29361862,67161859,50722560,79,0,453513216,993013851,223490096,0,0,0,-16711681,-1,-1,16777215,-1,-1,-1,-256,-1,-1,-65281,-1,-1]},{"sector":7,"data":[-16711681,-1,-1,16777215,-1,-1,-1,-256,-1,-1,-65281,-1,-1,-16711681,-1,-1,16777215,-1,-1,-1,-256,-1,-1,-65281,-1,-1,-16711681,-1,-1,16777215,-1,-1,-1,-256,-1,134217727,12058624,1963801600,-1392065017,2112552961,1249118780,208996156,42933899,-1274551424,-1022309106,225773628,28130944,-17533952,-352211698,-1893823656,112898,281872820,28116734,973188512,1979821062,-1505853376,91488257,28118782,-1392064829,117309441,515113390,1006742432,1007907857,-2146470894,34215486,431228021,646579435,641206802,158466478,646499582,300417454,-1372157440,-1391031807,-1874949631,-855460862,-1415527664,1912880129,1946631177,-385175547,146079594,43007626,-1046277939,-1962298367,-1191014626,281870337,1340607152,-855395073,45371920,281923326,-1979596383,-1190546212,281870337,-855460774,149144336,518225,-119362983,872281833,-1073314112,1975519745,-1270972316,1316290561,1048634418,1963000259,-854543327,-1002536938,57999361,-402367768,326369373,29638272,-401836799,-620034997,382535147,1962952936,1128876320,1946172483,1977629707,-1002536951,41222401,243811145,512295348,233308597,1958742784,1975519908,-1071216636,512475905,126550453,28577534,1975519811]},{"sector":8,"data":[251544325,512295348,-1144847947,260704272,-921965262,3939700,-532935820,1048579189,1963000260,21445381,1194984427,50754561,198962137,-1063205925,1975519745,-1270972314,141819905,28647051,1475020682,1048576436,1963000259,281313283,1366562509,494256139,1048576180,1963000259,-854543344,-1002536938,125108225,-352088344,-350827262,-7608135,1048580980,1963000259,-1002536948,91554049,184775400,-1978894885,2139095623,57999361,-989640822,-2013220578,-857141945,-952205060,326369281,11607748,55047974,125043712,843120824,-384447013,113704098,-973078080,111622,1048576436,1963000259,281313283,276043469,1048576180,1963000259,281313283,-521464115,-1293699861,1191545382,-503312920,-72881161,-400617954,-820051966,1381061456,1426478934,43058887,-1198082048,-661782464,-33535583,-1415369012,1963408385,113716743,-1342176623,771777184,-1744662366,-661929981,777013131,-1593725533,78708814,521070803,-1778216029,1560283624,1516134151,-1017619623,-16668226,1952136228,9169155,91751623,512351027,149619121,209009468,28444414,855795944,-1022916160,309473340,242694460,738351336,-1274575312,15005194,1027392263,1060901748,574361460,658244724,80159349,-1314781770,104514305,158663089,28446462,91751623,35907779,80152456,-1393883722,-2097137733,1065354179,941978624,-1946913529,280691015,503530248,394920359,-896797134,24496395,1021378369,-955943653,-1023056636]},{"sector":9,"data":[-939748632,-150886138,658031365,117441652,378271970,263455149,45355213,-471134003,169229952,-2147126014,82516473,168955450,-1398742921,24087041,41217290,-986001922,-393608585,-838939258,28118665,646628587,28311980,-352211525,16758961,-4655381,28228352,1048618219,1963067926,-350637052,304515590,-1328742902,-2132350207,141885690,29624006,-8656640,1946286720,-9180925,29624006,-9705215,-1560171103,1911095727,28287487,-385765981,-919339160,28446342,1090599144,-1152186486,663355502,-2147236989,259325948,-227155910,553535371,134385414,1526894374,-371334589,-919339208,28118665,-1415569738,1947286529,1947352083,373194767,74777098,82516406,168965770,28055178,169229952,839152898,-1979388929,-1207791810,281871872,-1946223639,-1979601650,-1294078987,851508746,99808996,-1262276560,-13479165,1381699789,-420952438,28943359,-389903782,-1130102819,-1274624511,113707265,28770741,-1308708631,855829249,1019382473,1007188999,1009220621,-148668653,16894214,504722432,4241488,279042190,-3201792,-1560272883,525860880,281870516,121374955,243795061,-1125449306,377934387,1111622066,-1962914584,-60299257,-74769547,27725353,28575430,66554624,161528305,117231147,-1527576818,2615303,1912863360,-11040745,27727361,1048697347,26214823,-634714510,27727401,16730054,27854535,-1950153225,1124181790,28450307,26803073,251528818,-336920142]},{"sector":10,"data":[135316353,1977629891,1961101830,-1010814462,275906564,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65736,16908632,33816976,65280,14]},{"sector":11,"data":[0,0,0,0,1638400,65536,516161536,-1977220943,-1004138937,2134643583,401081717,1007151872,-401705633,57868456,226492429,988348672,-148051465,4030502,-2094659723,2098070141,112645,-970537991,-1275068091,605080847,-868840065,36562945,179831923,643285760,235029959,-947698176,-1207485436,863240192,29965955,-148079608,-2147366650,102855680,-1928913321,-1274427330,-841272549,268879632,637534218,539837942,117376117,123669008,-1425403743,-218100551,233735076,16874624,2088966005,292821259,-1205973169,-661782464,-1744796512,92874304,-121621729,243319647,-16709196,638194230,1962950016,2105746975,410324482,71666470,1979711145,1173825039,1946157316,-918650099,108857345,-385875528,501743871,-385649919,2088763636,108265729,-385663512,-1960443682,312676421,1654026,12064372,1009765805,-1207077377,802008336,213386867,13232384,-16024445,116852852,8389065,12079732,-1592734438,-75494894,-1320848889,-1914645757,-1190549474,121307139,-1014823052,-336076284,39291550,29890180,1334482292,336496643,306086666,108337418,-1576397408,116787732,1963198900,-1290619874,169123888,283840717,1024070305,91488281,1963672635,15919193,-402479640,1048576094,1962936857,2105746969,310253840,29965955,-1274315768,-853495022,419874320,-907477238,-918650112,477890561,1946631296,651899671,17057271,1124168704,168828553,-2146434120]},{"sector":12,"data":[281870835,162801280,-1070376706,179880952,-1272545280,110099977,-1007089134,168967811,-1207012327,-617475822,62394573,-841272815,915260176,263782860,-12812288,-1247784844,1979661321,1166681664,21248006,-1960428683,1144588357,640840963,490880,-2144982155,1963067005,1166747156,88357130,-1960436875,1144589381,-351111929,1166747145,155465998,-336066699,1946433546,231113721,-956716062,-16141050,1030595,1962884224,1946433545,231113479,-1007029534,116900856,4194761,508960372,-1912586056,8896216,-2094136182,420090430,-31193995,17564395,1579091080,-58655805,-2146798591,1081344252,137297710,-147959798,268552454,774599680,168967811,774075417,169229952,-2145684223,377227513,1613022602,242491452,1156105610,-1964471807,20834497,777570442,168308479,113651356,771820056,168304383,403097134,106233866,1381455390,240145233,-1676692449,168304383,116817700,1963133364,235294755,162971399,-402016862,225639662,162795136,-42014716,162801280,-967309317,-16141050,30160525,1929323240,24936454,-972590079,34215430,113640939,1476463126,1599756635,1560747870,-58655793,1006925082,772111874,168570623,108331068,-369557584,37486758,-1612119178,1364219136,1460018770,119427926,521075339,1081409852,1971321216,-59185109,1048796786,2081423817,24936535,-2142145279,17438782,1048577909,1946225175,303991560,1569269258,954988560,1969224064,-52238331,28847851]},{"sector":13,"data":[686553344,4030502,-2144987787,1963000189,-1274118137,334168585,162801280,638381053,1963015552,637579270,-134068856,123690587,1348033055,1183575179,621572618,1183449086,-2041030646,218688480,1183383553,1566398474,-466463793,-162395981,246635235,-1017383946,162793206,-1975749372,-922290428,1962934529,-922290424,1946189825,-662036954,-1912586056,1090008,-2130718939,91490299,1963981696,3149061,537723883,1090304,-1272986742,-1022309120,268435713,-256,-16766721,65791,-65520,2686975,17039359,-16773120,1358954495,50331392,1048577,-1,-65456,263,-256,-16756481,134655,20971536,2621640,34471961,-2147479552,1342228482,251664640,2,22938240,1638480,268435984,1577222144,419450881,135424,41943042,5243360,34734110,-2147479552,1342300162,318774784,16777218,13107520,1638440,33554961,-536707072,503336961,135936,20971776,2621640,16842777,-16773120,687865855,11008,1048577,-1,2818088,268435715,-256,721441023,66048,-65520,5308415,34406443,1073745920,671139841,234887424,1048578,13107840,1638480,268435984,1577222144,419450881,134400,20971536,2621640,34471961,-2147479552,1342228482,117446912,1,-1,2818128,527,1577222144,419450881,67328,-65536,5308415,16842777,-16773120,687865855]},{"sector":14,"data":[6400,1048577,-1,1638440,268435715,-256,419451135,66048,-65520,5308415,33816601,1073742848,671139841,83892480,131074,13107520,1638440,33554950,-939360256,419450880,516238848,2009399473,299165714,-986833293,855683358,222791872,-1945221239,1204228175,-1191182569,1200193795,-251139837,1085808398,-2134864384,117566,-970586508,402686982,-1775859162,281343488,1048579188,1962934726,-1022966267,1625817345,32172032,503455720,-1191234809,28524801,-113407450,91362765,29820614,605146369,1966095408,-1861826810,1018167298,-972392688,109318,28051142,-1898237145,7125979,27199431,-1157476468,130482340,1334576387,516238850,1204224177,-1945087730,1894322255,-843008784,2139104789,594934018,365773748,460652968,29953667,-164197119,506127,-1929299736,-1190139594,786956289,-1204622591,250130432,1977629185,-921795825,915210753,28905449,18081792,-390594376,-533069579,243470197,-1929117239,-1190136266,-85458937,856100352,857453760,-935424549,1007734025,-1200786149,281876992,1946745728,133922821,243342453,8389065,267794061,-402651207,915210441,213454500,12576768,2105553387,309594917,203783552,2105543796,108268326,203849088,243472757,-1928855095,-1190136266,-1763180537,1077316864,178447,-1979675416,362949189,641582090,-1576581750,1659568584,280171188,-75493171,-2141752304,292880895,29953667,-818508528]},{"sector":15,"data":[178447,-352297752,266436673,1946810752,66682885,243473269,-1925185079,-1190136266,1055391751,1513524480,506127,-352307992,-921795815,915218433,129568758,2353152,263534221,-402652487,516096025,780851342,1437597696,1392509090,2525787,3049472,1472405248,-1928917498,-2097034178,594804985,42991489,92937597,158662460,91489338,-351418493,230248934,-1918569728,1493290046,131656521,856081247,650153664,4198027,135170350,244000266,-1993473982,-100005362,1074186022,638374144,4329100,-1392461573,-12832819,-970062219,17438470,856081159,650153664,771800225,638192803,12455563,235833646,1975585546,240171021,168600366,-1557215092,653920782,12322503,-1943663215,-83837426,49927,0,0,-65536,65535,0,-65536,65535,0,-65536,-1,65535,-65536,65535,0,658688,0,606339082,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,1294214180,1329864787,1700143187,1869181810,775233646,673198128,1866672451,1769109872,544499815,825768241,960049453,1766662193,1936683619,544499311,1886547779,1667845152,1702063717,1632444516,1769104756,757099617,1869762592,1953654128,1718558841,1667845408,1869836146,1092645990,1914727532,1952999273,1701978227,1987208563]},{"sector":16,"data":[1344300133,1460032083,-1047606989,783875891,-855592430,109850159,-1993469168,-1206710722,45224494,-1943130163,773003270,320224905,-1307431240,774884612,321390220,641632558,305051667,801965746,201755694,1049177619,501748490,109850118,-1993469176,772998718,321128076,574523694,103278611,470191150,1049177619,783815450,-855068142,109850159,-1993469136,773008958,323028679,-970061299,605260294,1174849326,771751955,323487431,904396810,1049177606,434639666,3205120,1358971880,1912623848,123689224,-346530982,214205188,1448133625,1660991518,119415245,772436511,322582153,1007062062,-1017618925,-1153171272,-768409600,-427810355,30310401,-851181128,12108577,113476,567136819,-1207841152,567100417,-852446013,343329,-336067723,146712,-4520589,-1157370881,28835842,47360,-4849486,1397801977,106386769,787057490,322838153,1127647278,47769619,477415691,91614475,-352311576,28960771,-396752782,1594294534,-998046485,82573574,-111517945,1499268722,82532443,-116865917,1381191875,1042189102,-294125,753403253,-402396416,259194999,12278196,841075968,113542116,-2096043015,192217083,125092155,-2097106712,1928922820,1482381827,520494787,1963063683,637711387,567088522,-389903841,102629553,638022431,-855550582,267122721,-922025292,-1977218700,1193397525,-118262455,1347928863,-91532538,-645200098,-218359120,721647022,-880063527,1599604571]},{"sector":17,"data":[197145539,508523721,1085546246,-108800117,-852986623,642785057,1525155210,102651904,-133795041,-851296076,-2144953311,41228861,32227723,-68677937,1427827711,-5838767,-849745525,-352160991,1959279371,-118998265,-1047854475,-1195172003,79364135,-1023298304,1962933888,-2134444527,119409781,323042957,-402652487,113508095,1053044311,-16051398,-2094655628,1962410045,87696912,975570802,24576325,-347650055,-1022926871,1141280558,-1814351085,922168978,781390664,323499767,1980365443,935493637,-1031797781,188830256,184841664,-2093189925,242549753,738884736,-13760907,1091785014,-108845845,-2146536186,1965820540,922693126,-348056751,167346961,2088766581,108342282,1362558766,865288467,866315218,784348114,323237631,198325187,-1272875831,637579301,175449400,23410726,-1002830732,-1977217419,-11802619,1195835763,-478852798,197822294,1295348973,1178501934,745865235,67519626,1161438768,-352160511,1966095391,1959922436,-348912892,1048588007,1979650883,1229079048,-347123895,-17917,-386323625,1499463167,1743455091,-896839280,425088,-922022540,1229522548,32196423,185658206,1577285065,-108852757,855799295,1962871753,106386750,784937809,323370627,-166497024,1963919172,41731080,-352161304,25880576,585630699,1493660160,1583177479,-998046485,-2094073590,1263166,57804149,788474601,323356359,868417536,1184968402,113716755,660296,1493082600,1250396206]}],[{"sector":1,"data":[-75283693,-402426560,-906100214,230223221,-2021052918,1128469322,-1023280664,-164408490,-25114317,772371967,322092171,686546827,1946339062,-1127993847,-1014230250,322771691,1024356864,158793767,582796334,-339506157,-1127993849,-1014230266,1979710339,-98281,-336002187,1185099277,-18413,855638461,216791286,1946221443,5564419,-133904765,-922024334,-1695874443,33456284,1431447925,1347880529,-855310152,1493122095,-661976715,-855309640,-117314769,123667827,-2096698535,216532676,-346399488,-401682687,1583087611,-1185916989,-1070399489,-772296974,-1017161655,1963064195,1048784417,1962873646,-49895,776998261,773015201,321789695,772139864,321789695,-919397653,1962933888,1300899334,772401923,74790200,55413294,-117127293,200813939,-2145815351,91553790,-351978714,87764483,166396533,-2096794551,-471137081,-2146667783,1979252734,637996546,1912765699,653079046,776408458,322963142,-617364736,425088,-953281675,538135175,776160045,323651526,-1410841824,-617390848,-2010197453,-1978449906,-1053161148,-1054204042,1157034122,359956487,772424842,323651464,1090224963,2145911669,1976499712,142377195,940405760,141756492,-1979167702,139234001,628410635,252134646,1156975733,108269575,1191545382,777519595,323651464,1090224963,1139278709,1976172032,121960155,169440640,-1978305290,-2010248636,1125337735,1967192963,2418691,-344600834,252134646,1156974709,41160711]},{"sector":2,"data":[-771093013,-1892808332,-32291834,-386435638,-1017839614,509019729,868977415,1245613531,-78518253,123667826,-2096829607,-1007089980,121960029,638743856,1095763338,1945909480,1166681606,-336048127,92939789,74760202,-169131705,-1017775829,16778497,327679,1954039057,1701080677,1917132900,544370546,118370597,441990797,-1021263485,16778498,327679,1918980110,1159751027,1919906418,238101792,2084474119,499221274,393155,134217986,469764608,1850283776,1920102243,544498533,542330692,1936876918,225341289,1850284042,1768710518,1634738276,1701667186,544367988,824516653,118360589,446512781,-1018969725,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-16777216,0,255,2086492928,1026244156,771760699,452003527,788267008,451153545,-435763410,771751962,452527815,-953286656,1763846,113716736,1566251909,-2029598930,775715867,461964999,-953275586,1025215238,81913915,-4713613,-1960422401,255469085,45613939,602495744,914959873,1465064179,-81883819,116796954,1965038322,1911073859,-398691835]},{"sector":3,"data":[930350293,1963263720,116796952,1965038322,77457413,-164747541,1092284934,-347201932,126365211,108346684,-233930706,-398261990,-982317734,126365356,1321134915,-399079122,130428442,512306688,-1960437001,-80311011,1015033370,775320623,1948400768,116796936,1963006706,1200236116,786706945,451151417,-1590816141,-523167004,-670874813,-400585946,1777008776,-435763410,-352321254,1200236128,1088696833,-670834479,839879206,1959332845,642990863,-957866101,1098078976,-220052669,-435763410,-352320742,1200236084,1088696833,-670834479,839354918,1088475620,-1977165821,200094223,1125086409,529213011,1526750696,1128467315,-953224478,68871686,1532976384,-468808914,-425644518,915090970,-1959912728,773515798,451681930,642827256,44631947,772109568,451151615,3964974,27859317,772371712,451282631,250281986,-1274826672,10414335,-402396328,-1017642723,1364575225,139430438,-921965262,1871514996,37283849,250087539,-101260800,-1993472277,-132450002,650337625,32384,-347798668,784549366,452071040,-3741680,-2144449934,-283446746,-173986224,784739098,452134401,915091032,-2144462091,645201980,-8617938,772371770,451282631,535494665,4162342,-148498060,1962934535,113716754,137958,-1763178005,233568256,1342893049,-4979792,1476396008,643286008,772046731,451559049,637896742,1342268808,452567342,38111526,1963015256,1435051530,1300833796,1012591366,637957378]},{"sector":4,"data":[-352037495,1946631248,1946696936,1963343076,1434985990,1010756356,772764932,1075508129,71665958,106794022,-1993987093,-1943665547,642778701,16926710,78644340,-165279253,1946288711,-402477051,643301533,268584950,1827144564,784555776,462292678,-1960423424,1975520007,1381191704,113716823,596710,61931444,1610570728,-346530982,-352064766,11112487,772961282,451282631,-1696071680,1048784385,1963530982,536914191,-953283980,1762822,12249088,-1908506578,259326235,-432110802,125108250,-435763410,1476397338,777408707,-1073085302,977017460,-2144465547,1962934652,80096774,-402003200,24314542,-538229178,1455642718,785418834,-1679293302,168587778,-401836864,-2010251252,1174530820,1525214022,-2143501474,1631325299,2050770290,-551272073,106118635,-2143384233,83525659,1049429108,942545787,1343714325,118379089,-1031117388,-1174405189,-4587515,1512164863,-1959896999,-1909587619,1128465221,-685342676,-1017444513,141701180,74922300,-1007144916,1397801977,-1960421550,-1977219457,1975519749,-335563772,113716745,596710,61931444,1610502120,-1017619622,1448236368,-1976696142,33089540,1843936370,116797183,1946688242,1966947341,2122327583,1903493121,-164752405,270201350,977014388,-2144990603,1962934398,1558922844,4602406,-1073078923,1162236532,975573995,1165295686,76164678,1178216005,1178236160,782756677,452069110,638547008,537020407,638022656,32384,-148495756]},{"sector":5,"data":[1946161159,1966750744,2122327561,225771520,3935979,-2144991371,1949958270,116128003,-180975314,1516173338,1354979421,-1959897513,773518142,-1073085302,1609044852,774141184,462292678,-970039807,-346095612,-970039745,643760132,67575,-953273739,35317254,1479142144,76164694,510967818,1946168808,18409483,1179058803,-370457017,451715630,312878,1049177671,1600002792,33597784,-1269823116,-402280193,-1017578184,512577875,163126149,121253376,-498924428,1532576248,585673923,-401050624,376766547,-234424786,-311156710,-234424786,158613786,-116987058,1324876267,1405352131,1947024465,1946172461,1946827817,2105550373,510788098,-1977165005,-1014824099,964699652,856519680,160048841,20588099,-119405452,1532562748,777081795,451675846,645934624,1021254386,1010201632,1009939465,1009873964,-2146667232,125116476,977674416,639560640,16940416,-919398542,55413286,192203019,1124074427,1946237478,1022943751,-1017423584,451715630,-234424786,108331290,-233930706,-1069932518,781051883,-583329029,792463988,-336002187,200013838,108343100,-233930706,-1007140838,777213470,451886723,1344763136,1465012510,-164428203,12115598,-1943941789,131795931,1499094877,695490591,-315193042,512306714,-1959912721,773516598,451878542,1946172547,1912879632,21248520,-336002185,-347716091,1583085803,568705823,-318701312,569770273,16908288,388110336,34,571998208,788865559]},{"sector":6,"data":[1278148696,4927232,1380143919,1397638469,4545097,21295,0,0,11,268500992,2097408,65536,1945227496,-218699769,11790841,1049429774,-919395870,1189663283,113651449,771752389,29624006,1048587776,1946231342,8644867,724994350,-114825182,1979711293,113651208,-352312786,15840,-970054796,2240006,-1006189010,-970063871,115974,-972634578,1541931009,113651200,-352247249,1048653496,570368538,-970061707,16892934,-2127678997,35789374,772306210,29689542,773909249,572145281,141894164,-888748498,267059457,440303918,1948387362,113651439,-134151738,788493033,573521536,-117213951,-1007156757,503731793,-1959917794,1445079862,222068774,-347733132,-1977202953,765603332,80094754,914959872,240788011,540445983,39094562,-1207679860,45809674,112896,-4795854,787610600,573257355,755927598,210249250,1499334431,192203203,1124074427,1946237478,1022943751,-1017423584,451715630,-234424786,108331290,-233930706,-1069932518,781051883,-583329029,792463988,-336002187,200013838,108343100,-233930706,-1007140838,777213470,451886723,1344763136,1465012510,-164428203,12115598,-1943941789,131795931,1499094877,695490591,-315193042,512306714,-1959912721,773516598,451878542,1946172547,1912879632,21248520,-336002185,-347716091,1583085803,568705823,-318701312,569770273,16908288,388110336,34,571998208,788865559]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[10115661,41,12910624,94896127,128,80674832,30,1]},{"sector":10,"data":[567092916,17498315,1443490737,544436837,808726066,521012766,2112358158,-1207602376,567102464,62398215,773967157,1448615561,1510378542,889305174,-1993465395,777409566,1448478348,-1692496850,856100438,-1174457354,-1527578368,-1667490034,268379480,1486658896,452000896,1447666368,609151133,567103924,1250893449,1451099846,-1899459584,-390033704,-1207565962,567096612,1447698057,1447822988,623163399,-855435334,-1172066271,567083914,-1330066804,-754667176,-1932524568,-1694094392,-3144874,-1957258978,1243201474,-1414812676,1451598763,-1554611805,12080783,1451467521,-1554612317,-628205939,-2135244146,-853888000,434465,383115,1394544129,-661960632,509734,295918336,650968650,721421987,-754667048,503391979,263454728,-58715955,-971999960,122302982,1244858054,872859396,-402636726,-1101659368,-655884159,1556045314,8437248,540835910,1015085684,-2144897745,1967063420,1355987489,-1174273304,-51883810,1357560321,-1174276376,-253210378,1359133185,-385750296,-2118254302,687978496,1556029901,840796928,773753343,316860490,235447528,8437511,4030502,642199412,1947024768,1031808552,653489184,1946762624,789479661,1894252874,-1591800310,-2052896225,1451336534,-1555422815,2141410947,-930284458,-1064380274,-1127182598,-2131015159,5659710,113640820,-1174383012,1961380822,12969985,1946229992,1059892440,456920946,-523236489,-13724776,-352024169,79161796,-1205924322,1337599266]},{"sector":11,"data":[522308867,1347559107,1477887278,621000790,-986832435,-1202301930,567092481,-1021355432,1309079086,57999190,-1664155472,1243545390,1963080790,-1269608433,773967185,1453006395,24402011,113651407,-1258334642,773967117,1447954118,-10360576,-1958838226,678756426,1453039918,1250927406,-1942061010,292814922,-661731188,-1127182598,-1577367031,-1461106027,-1172369909,149637874,-1191216408,567102464,-1946109208,-86470968,163369102,417987402,14084351,1245232726,1577147112,-1085654850,-391358793,91423134,-341136214,1918975221,2004499462,-1428159486,376704316,74719804,-562747588,-1431510902,108268860,-160054214,-1212231445,7399510,-625323325,6154314,115917658,742162432,1346768245,1948269740,1946762491,-2141696265,-1178399428,820510724,-1174762749,686292996,59631619,-1982397614,1515322390,1049229867,1186615806,2353231,512503491,-1993453064,-1018037706,1375209100,1375354505,1443284675,985268305,602427983,1388534325,1513430504,1380634298,1513428456,1373670083,-388889423,190553,254067850,338137092,2133075776,1381024682,918162100,1512164682,548455256,98812842,-486541336,79807481,365299622,359466918,135923173,351340229,345637890,128321446,111021202,347409477,82121050,115870251,536613428,211355558,128334236,247072678,-8525743,-397337926,649789303,-9312175,-397331782,1052442475,-10098607,-380548422,117374815,512445067,1353992847,-1092083251,-33167328]},{"sector":12,"data":[-850657096,1448300577,76153011,712248636,58008124,-2147355776,460587515,1929393640,1965046806,21269010,175448124,76030128,1174488200,1178993131,1532940523,102679384,1660991574,-1993465395,777137718,1378885260,-1021376674,-2041555426,915091168,-561098192,775326510,-1073042350,-1002826892,-336067210,-1408570612,74899514,32238571,526276857,422480835,-1861826742,-402620330,1380975162,-1963040792,1951153156,-1860793560,28174422,79238002,26863616,727370379,-385649718,1480655358,-145663549,990737625,-351702070,79250953,24766464,-1956984181,1942094785,81157,-1017587341,1962809320,-1861318390,-5773226,-1962818839,-796152329,780911533,244009497,-1916843468,-2299818,-225716082,849360470,904147530,-266076161,-397322561,-1956708833,906212550,1244792354,-1073027850,-1957623948,-27072312,1508398681,820555006,1950964478,918981406,1244792452,-1471018380,-1327008505,-437540307,-1090516760,-521645738,1373039613,-922827125,839262774,750845514,-154599920,-930375464,-939269935,574014091,843723270,-389544988,-829686256,-835980661,1937718444,1931492356,-1439780862,11596514,521019050,-386026520,1495268798,-1925805770,512505430,-389851505,1347550935,18409554,1577121512,-1906574709,1505791707,-1021575621,55117682,-34012175,-213277631,-1326922844,1380995582,1593885928,-650422009,-480856130,736523010,1472956363,-1956731661,-350288181,-24254248,-397258671,1598750881,-886351609]},{"sector":13,"data":[-1403603010,1979572398,-645442620,-1951993001,1968922571,602427147,686311421,-46601987,-588534813,872205288,-388287534,477233183,1229377674,1912608488,283375890,-352198936,-2037519,-555219989,-127569153,738495171,1007710768,192148746,120348452,57805372,-1007349700,-386102296,225640419,1392509625,1543491304,-129820792,1006930627,1007055911,-117279710,1189120707,1947024556,1975794210,1965308421,126371554,-1142035645,-1008183625,-2114227201,1951840235,-61872121,1321402997,1454829185,1455410827,-53548975,-1174403642,-1897378966,-84809220,1912603880,-389809693,1149959200,1951611905,309532,1929332200,-2134537236,192231996,79251026,-13309952,-119901608,-1090221373,79235081,1974399488,-783923508,-2133226527,-1049281988,1243199487,1396955115,-2098707387,-1106812929,-880060745,-1950112525,-397797074,1381040030,1979436264,-402169883,106429446,1455359774,-62461871,-391462862,1594358788,1459980838,-1090052602,216551766,-1439780612,-1163214798,-320319566,-1184954373,12189698,9889792,-555163510,1927317246,-1963816439,-386997548,138150020,2134647156,758913140,222063476,540831348,145767028,-402624280,-538707121,145804267,-2147457816,192152313,-695549442,954791306,-1330189317,5236782,-109008405,1359705090,-422443855,651561561,-1018751608,1107291112,1455380289,119408209,855355368,-1296389440,-76945329,-947167481,57935652,-385918487,1055521638,-4003585,-202682545,-369116184]},{"sector":14,"data":[28638038,1472405965,119408210,-1437489473,-1163263824,887639998,1599735803,79253955,16352000,-472839052,57926353,1224854403,-804589589,76268377,-2091777373,126550982,-1560099965,1589268996,-83761073,-1077679902,548426070,1221181098,-1962929991,776610582,1927467437,1149971972,1958742814,548449028,854385322,-1094473024,1455376543,1242151761,1244726982,-1979665139,675951374,-397790962,-1008140380,-1964166406,977941262,1917464846,823036650,-7411638,-1157651224,-1561833550,1243718138,1347847075,-1555423327,-951036283,-11097594,381217023,1451558543,1451427471,1012312737,-385649153,-58656130,-2046659329,-661940028,-2020875311,1455373476,-997807535,-1430244694,1451955851,1376589449,-397442374,-1618216373,-1910617961,512437791,126506635,-1979613302,512303064,-1699065327,-1509493169,158728022,512360242,-1900391921,-98310065,-12326461,1962523624,1175751416,-25152374,1181316109,-2130877720,1618223358,-1840734273,-919402738,208930107,1090766723,1221197697,1139536498,1221197697,1330579317,1166749263,1455380478,-997807535,-1430244694,-1928913313,721513117,-1994945575,-1169031146,-1125626030,-116528903,1962501352,79254423,-56170496,-49944485,-1161619575,1475038196,1967585920,1364639734,-1157718296,-1863824414,-119412487,871971048,588680155,222080330,-58700940,-1085574131,549013705,-234418688,-1975552593,266436841,-754974280,1975748032,198707984,281409232,-801963403,-336005144,1273936588]},{"sector":15,"data":[1442846440,62476631,1376173824,-1527516533,-1168220327,-1444327574,588679676,-239418550,-1898058933,1447696646,-1409252929,1963801770,-2098232838,-1574529280,-1084358528,28835932,-1574843095,367544841,7126794,-852950600,1242210849,1946601155,904610134,1450444486,774826752,1450444486,113651275,-352233869,1946600992,113655126,-402499981,-730660845,1450444486,1929823805,99287126,1450444486,1342578236,1448235347,-1557217229,934565494,-2010242611,-1101630186,1609040001,9758720,2095588980,-1946979328,1782481110,24445261,775703114,-1993472651,-396986826,1625817150,-402295808,-361430930,-969605298,-1607598076,-1976674701,173437990,773289188,1448220297,1345751342,-1157165482,-919385449,-1557257779,76502648,1532582494,-1021376680,-112924500,-968488845,21850630,113644267,1006652778,1007252065,738555770,-12285920,1952136387,1948269819,1950039287,1950170355,1946762479,-1020510997,1963342382,1022915670,243319565,-402568657,161545933,1451139658,118365958,-1962910530,5421566,-1161583117,535382782,2118025463,-210436266,-1946230296,-2125040098,1967474751,41910501,-1957444776,-2125040098,1968719167,41910276,-960275643,1061826566,113640939,-1958720976,-397795538,1702164301,-386198040,1836382021,1378489993,-1185796957,2095579138,146363130,-92936192,1378096777,1378229897,-402652231,378141287,-924298712,-2003280902,1397488158,-1273048182,-31339251,-852314942,-1073078495,772961624,1244675712]},{"sector":16,"data":[-402295488,65733571,1929621224,413985027,567086516,1243587011,-402587462,175505235,-420883917,-11933694,1575549044,-2146601473,1061826622,-1699079820,-162207413,1244675712,-2123795392,1968128831,41910371,1314747725,16841345,104531573,57952799,-386248215,108264975,-385875272,-768408970,512477491,45110904,567100084,1979650024,33565958,-1996432765,-1555428586,1052002829,2095653325,1264499201,-369705752,-85330657,637978368,-956301238,4859910,14674176,1048597072,1950370352,-38147867,512484210,45635192,-1949158590,-1558065718,378096166,748898856,706120010,-1947038902,1107343608,-896806349,1532502477,252006483,-1311190784,-754667261,-1948777496,-2084074538,-1787621126,-150990663,1959922673,-1023197183,992905074,1996489222,222202240,188123466,-1957143990,266503130,-338492239,1381024515,1450841737,-1185514333,-166985744,-812973451,512447262,646600312,382028336,567105146,192028507,1244675712,990541120,-1962511160,1482357192,734563267,14582777,715245835,1244177226,-1555419999,1482312230,-788330380,-552870261,1397792117,1450712715,567099060,-1161602981,-1488118,1270004468,-2131428887,4861758,954790772,-51845118,915094130,1049315851,-25081331,108429311,-1082130498,915013631,1049186827,1991922185,-175380401,1323849818,-399150081,-2132279246,1260567292,669563627,-203822848,1448220299,1448097419,80098559,1124120576,76489165,1917523642,130152347,-1164610560]},{"sector":17,"data":[-1863627842,512442036,567105144,-1928949821,-1945698742,-1893823670,1453039946,-1019488114,-773258380,429993717,113651274,771771020,776639907,1250768639,734760016,-1909586237,-1957258490,281248728,724486284,56007430,-850742056,777520929,776641443,776642467,508208035,-85450994,-1590812677,1886541432,-1259108888,773967185,1250893449,421431598,512306762,-1014085093,168216358,637751040,790156,-1455504338,109850186,-1993455073,776610110,1451558540,-2093053650,109850198,-1993451903,777420606,1452213900,-1925281490,-1260680106,773967184,1252343492,1191545638,161689159,109850186,-1993455075,-1018556098,179969806,146763,-1095099532,343371,1589252980,539979,-2101736588,736587,-1497758860,-196351925,921874153,1451955849,910921402,1244675712,-385649344,-1064435579,-1157935384,57887498,871589353,1486995181,1006645224,-386304710,-930480020,1273168053,-1979685912,6220024,53926026,-1957262562,5433595,-1442820120,41352507,-186454133,-25047317,427120801,-1957256774,1396684018,33601873,2015267630,1495387478,1958742875,440183818,-1073085068,918749556,1242377865,184993590,-1023410102,-385890328,-143395151,-380930374,-269946134,-388461825,-472842262,-472849456,-1022696496,1397825219,-1140850759,634212900,525949787,1397825219,-1140850759,650990116,525949787,512440003,-745911762,567097012,1962934077,512306791,-1557262002,-1993469616,772887054,290596599,291021614]}],[{"sector":1,"data":[186026806,378091082,-1590277590,-1556723187,992889388,1930516502,922168887,-771026600,1950352244,104410667,712184142,290759470,672566070,648099402,922168906,-92073640,1073837056,1309016878,104410641,108400980,-380951878,1321467198,201372176,113684480,-385919409,-2065169561,-170071822,1912603066,309513,-386546200,378078278,602429102,-1860793354,521570634,-1827239094,555125066,520523338,557747018,651309898,-264501878,641470580,775687284,909903988,1044120692,-347667595,1961376998,1956265055,1962884185,1959541817,1959607381,1960983632,1960918092,1960852552,1023288388,-385649422,-1977220979,-31194811,829727804,762619452,695512636,628403260,561293884,-1977191957,-131858107,343167036,276060220,192188476,125081660,91541564,1111643627,54673986,121539066,151424087,92939863,643238818,-942930490,22457350,17688832,1448019654,42854400,-386815256,29029634,-1190563328,-337117180,57469172,1454249609,-1946859032,-1991601898,-1958076650,-1991601386,-951443178,5680134,520523264,557747018,92939850,242607164,25002022,-2094893791,38412550,-331607829,1048778613,1965115919,554074896,161546570,-1558059958,1995000329,1959607297,1976450082,587659025,1946681418,310127,1243680511,-868477973,62612085,554630912,637987658,838950282,-773598721,-1895877661,126559943,39815974,1243678343,1243553415,1243416206,1242644107,1243811467,637726595,-276623991]},{"sector":2,"data":[495527426,84078467,-1993998334,289310981,-1998518,-1998339,588155390,-1893823670,-850348982,16247073,-2125847134,4858638,1225192961,225771862,-350100230,1447600640,568786864,-1893823493,-850348982,1560983585,-849977926,-1070391775,113760398,330366988,921228,263879,244061115,-939917306,-1409250298,-1911649261,163323648,1499158602,1583177050,386336607,1242637963,1243821823,1243559679,1243690751,1243160206,-256644913,-151662616,-11120890,-1092025483,-35526146,-351878013,-326413013,167679,1428286301,777055371,1447626486,772175105,-430552928,631254561,1973173322,140935429,1566113535,287738158,378285642,-1943123427,776610574,1243813518,105520572,1431721758,1364347980,521556051,1243420302,1242637963,1243678351,1243547279,-16833192,-1991629917,508170534,-1139335673,857623049,-942108992,-1979675642,-1911649277,-50651392,567105972,1448977206,1595836726,243873366,-1992927647,911631126,1449473673,1732151606,512505430,-1942595991,-1940493562,-1898410296,-850283328,-1893824223,-1692497078,-850348970,1460125217,1454116491,-1006236957,80118588,133751460,1454247679,149488500,-272897793,-369829912,79293974,-224860160,-319619608,1455359758,-273881007,-1163214798,-1779871822,309743,1391623656,-402652487,-605490570,-296054030,521571267,-1860794038,555125578,-1827239606,523144010,-284563382,1966947456,-689420573,1251058674,1251153545,621201091,-790101942,-1076153345]},{"sector":3,"data":[-387426553,-1960872722,1464475438,-223090605,361324379,-2097003127,-2092759609,-495645701,-380897350,512357848,-880060756,129962723,-987357609,80184117,-12269916,536077004,1251022475,1243551369,1251153547,1243682441,1454245575,-320274431,842511613,773967296,1450514056,-154867540,-756546188,1324709366,-267851581,-397258671,669577801,-91529486,1495253134,125001,1957098305,-1943122205,777130782,1377121929,783082546,1330780067,772114982,777132451,1377502860,490637614,236865362,1336326687,535729128,-907296718,-1401564661,-380933446,780923360,2143242783,-268441514,1451169417,-1990819421,-1957263066,-1000961754,-396984514,118419021,1364639575,-1163214798,1340624698,-1612161042,-302585619,868417909,1085980617,25877299,326369338,-1040613055,-385650176,-2142829134,1962999677,1139141625,1962948992,-1948678175,65065411,1175717315,-1070344053,-1554602334,1134712641,-1979009961,1454482183,1454376646,-982271,-558628505,-608958741,-642514197,-1314667386,-1341718954,139847766,250446568,-376146681,-4915347,-1884028181,1454450312,-27875166,-967360250,39233030,-402278680,1166673238,1925200898,17155652,1463893632,604992770,-2147087336,5679166,17568117,119803371,1048596492,1962956456,-2007495678,99156293,-315430907,-402651975,225636437,1454444286,1454376576,-1307145982,82504022,-1175644184,988282882,-1977912592,1946369218,-1324941588,18999638,-1376976920,1951154493,1480670476]},{"sector":4,"data":[-941030540,-1324941820,-320739242,1480866945,45729652,-267917312,645982322,-1963501903,15854018,-2115186712,1968718908,-347716092,-1322876907,45741910,-270276608,117359730,378033840,-1528277326,1094561260,1032483916,-1368041407,1454442238,-16810263,-967359994,-11095802,-396973918,-1813510953,1061060612,125108311,1453801088,-2146142977,22455870,1048608884,1963218598,38633588,-1586566392,378230596,512382790,1048598182,1946179390,84264671,-1996339831,-1699740587,1463959168,-1342016512,21334250,1946483584,1977289280,-2129249530,-969509546,-391118075,1463944714,-1593752184,103503684,53302911,38111488,1463959168,-2146012160,292815611,-1731687616,678805819,-352238138,-33405559,63367437,1451306635,737133544,1247182614,115533898,1963063680,-1341718949,1454547542,-402413591,-1179784236,-1799421944,109570108,-523222412,-523181872,-396973918,82373555,-1505853436,745865302,-352080920,-1324956124,-1465713066,65923158,-167539224,1946222917,38111760,158515260,1074532132,-33471096,56027405,-33334807,-396974586,45738876,-291510272,1933638275,-345642773,61981323,369683155,119822001,-1662394158,108980224,-402413592,1048576862,1975539369,1464442930,779403274,-2147400440,-351796619,106883109,1464403654,-402396416,2112357972,53798915,1453932160,-1610058304,1158174537,-402396415,-437713307,-351947774,-352144378,-1996508158,-396974554,1290274344,-1455521789,393527382,-352124440]},{"sector":5,"data":[-1509505315,300482390,54192134,1464417920,-370576128,31982262,1225180678,552075351,-1455521789,-344670122,-402467352,-1360329195,1454442182,1453892342,-402454808,-1628765530,1454442182,1453892304,-402458904,-1662516586,826048746,1015090804,57953347,-2147324439,39235854,-33398807,-27835898,-346603002,1090977284,-339725481,-1324956155,-1465745322,-1125625770,40560642,-1595251992,-397388112,-2007498065,512382981,-620079450,-872536972,134341504,1048576349,1962956607,1044283416,292814935,1464024704,-2146994944,39273022,132712053,10807554,-2147334774,5718334,-1071371660,2071314492,604063114,-523199487,-523181872,604128522,-2001728497,1151402309,38111575,-33393507,27322629,-1069758684,1048589940,1962956610,-1472298934,1131677782,1453866624,-2143521760,810985534,1173763444,796131585,-1957215071,-1019504424,495592821,1300237822,501940737,604063114,1111392257,74711127,116107276,1453852170,1166541836,-1978794495,67056157,1151419359,-33060521,21362181,-33393663,19982597,1464024704,-1608682496,279467687,1340670836,134685697,1702888005,1048641025,1962956607,17623349,-956144256,604063114,1094615041,74711127,384534540,1463959168,202077184,1111392388,41222743,101319180,1166562984,1061060609,57933911,-1610578455,279467687,1048578932,1946179393,21350053,-804838260,-790572832,38078688,1463959168,-1976863744,-461372827,-1057193792,1703551093,132415490,-456071984]},{"sector":6,"data":[1166730448,-801627134,-790048536,-2134635800,146801253,1048576581,1963087682,21362303,1350136833,604128650,1488993472,-1073058190,1166675060,1963402242,-771509917,1166672493,201794562,21334160,1357581822,1463959168,-2147191552,-1979580083,-1069809083,1048604274,1946179395,-350739452,-804838392,-790572832,-1459221792,-1492776362,38111318,-1990769503,96863045,38111746,104646436,-1071379852,108281916,74809404,100533758,1463893632,-1977388032,-64749243,443910204,100826496,1166677109,872621057,-2002777086,234750277,-1996274293,-186121659,-99358462,1454239361,1455410827,-391255983,-1174403642,1843940202,-100931096,173450912,-352160320,147390175,1048576325,1946179390,1061060615,-344719273,1012311968,-1473874689,-2145225712,5718334,1170725236,-33518079,-27836154,609698566,-790573053,216060128,38111424,168240323,173451526,-2007586810,1151402565,54888791,1208403651,-1528299433,-1547684889,967006020,1463526231,-1554563677,-922855617,1464352384,-1342016512,1453826561,1463617222,1006930688,1008104492,1007842317,1007580219,1006924809,1174631712,-1041635349,1454423808,1453917894,-1341733184,1048576598,1962956607,1463722018,1463813642,101324149,276059976,167855498,1012353286,-972786212,-1008860859,-956363287,5679366,1463697024,-970558464,966853637,990251863,-972655273,106342150,-1459173693,334004310,49905666,234751860,1453917894,991857472,957254487,-1965935785,1019544259]},{"sector":7,"data":[-29199358,46369474,1946303681,-1966932424,1019544263,-30510078,46631618,1946303681,180551204,-31558163,1976109762,180551192,-2146405121,5679422,113642357,-29337943,-20251131,-1491695422,1312670550,-1307413179,25749506,-1962824216,1414544644,132773492,375295,-398676289,108265801,-796212994,76275691,1464352384,1024881664,292901971,738360448,113642357,-2097129655,-672595002,1213414910,1178451572,-2146601663,1968308860,63341319,-1444215630,141908796,1463748350,-21698234,-193700548,-260821444,-260822212,141897020,1463617278,-22943418,1464352384,1027109888,863327315,671251584,2088775029,1416964356,738411658,1011708464,-1572243705,117331623,-964470976,742162693,-2146863789,1968439932,63341315,-1174512151,-2067857388,10479676,-1482531212,1074200150,1061060695,158662743,-2097107480,1005126342,1963670782,993952528,57933911,-16936471,-346604794,1963801830,993952525,-327876521,1463551742,238867947,1048776053,1962956601,973536987,1019538263,-2083425009,5716286,117361269,-1276422343,1451306635,1463762560,-1190628352,-1696071676,-1189876760,1048576002,1946244774,-1509017359,-387419050,-1670190800,-2141763933,5717310,-621346188,1464079873,1463682814,1375581673,1487925825,-921976533,1053054659,-1329703297,-1396690090,115591307,1049208051,-1017227649,413663666,-1023540620,1453735552,940209152,1951835670,1273584132,-1508472577,78758742,192267579,-1031077199,1975663512]},{"sector":8,"data":[-1010172414,1947024512,1530691834,1017967988,1006924832,-370313975,113698012,-1965533519,-804838176,-790572832,1453892320,-388971382,-388962096,1454441992,1464338118,1225180673,-1597832105,1173771942,410321409,-117348992,880018236,745800764,16860662,87829364,636164212,544473916,410255932,16860662,71047028,1300239221,1300236033,1300235009,82520066,67194240,-22222397,-352321091,-1074973950,234772144,-388287929,58057807,184296425,-1978698277,671055932,-8387212,1175680290,1017955326,988115981,-1428523833,1454376702,45740267,16614144,78709364,-414455725,-385649829,-1031013390,1946221955,117353223,32200368,-1341718870,-1951732906,-396984018,378136532,-2120001921,-169875114,1243557515,-1957264449,-783666162,-387329559,378136001,-2052893053,-2029090474,6023254,-136040216,-11106554,-1007520257,918902302,1149916803,-1021354241,-2093562594,-1994412970,1347846966,-1572959401,-468653994,1453473417,-2026468513,1962281814,914968069,117331591,-1017620831,1454049022,1454049022,1454049022,1454049022,5892187,518248680,1451439813,535013864,-958154264,5677318,-1185830977,11534386,-1480611085,2341201,-1426906960,-1991158081,-396975554,1049362318,11818658,19191947,-1974032734,-773598781,-1161592349,-1994945732,-1990810602,-1084841410,1476350375,-1591309822,-1327234474,-1731974642,-1572959343,-475928490,1453602443,141882891,1958742700,-118773245,-961934928,783941637,-481761201]},{"sector":9,"data":[-13309757,119857290,-799627358,-789786388,616860396,1453892103,-321852208,646507728,-1144826199,1323845735,68872196,-790099221,855043071,8710336,-156619600,-11098618,-202891659,1462299646,-396976705,-396427246,984612878,1453178538,-1409284935,-1006837078,-1963010584,-19863344,48820362,-1966962176,-790048544,-790048536,190696,254067850,338137092,-1012259008,1023323624,-1008700150,-397908037,-1377303583,-1439911933,-1728144920,-527773557,-469095504,766510201,-1968513802,-390272060,749731912,1453891754,-2143517506,22455870,-1799486603,-268199876,-1012535293,-388962096,52750544,-348347202,-351853332,-1509505307,367526230,-1439911936,-346642272,-15865627,-956309528,22455814,15208683,-972100609,22455814,-385943832,749797291,-1455521622,-1482685610,866219094,-1442396453,96863062,104613723,1048577909,1946179241,1020299860,1012102657,1011840007,1006925315,-1962052346,-968223970,39234054,-1420803400,1929706112,-1439977469,1929837184,31621133,503525748,1152928279,-1449088183,1958742614,1946303497,-14358515,1571871235,-1960932950,733004630,-19339094,512487147,1119373835,62712664,-1203104482,-840218285,-1728210456,1451427331,-389641582,-1031078203,-385957655,-796197498,-1963097624,-2095709200,619113302,-16586745,850013360,-17110592,-337067982,-1439911682,866802608,-1442396453,-1511324842,-1325403672,-1070421460,-956378647,5678598,113640939,604067494,-29759225,1194526150]},{"sector":10,"data":[27519171,-205648012,-400037051,91488665,-347748930,-1463645627,-385649660,52691370,-1975131202,22276296,2062052075,-1106480127,1709720984,16443393,-1963010327,1963239618,25487619,620553704,1929657375,1169342196,1390960619,-1105955839,1038632167,1007100929,-1979353341,13297858,-1963022615,1963239618,168240186,-1207536192,-341097396,1963015191,1129887752,-347557717,1963146250,1414772748,-1437552469,-341177936,-57612166,57987132,-1207884311,-1330950322,-389830064,163511422,-1977670587,12839368,-402588952,-1031143313,1453932160,-401705981,162529369,-389903702,1021902944,1948297470,1946462216,-1979632636,4188368,279495306,1353712500,-1442205526,119849610,460587580,393478972,547930762,250088308,-1439911936,-1420536904,-464701,-391500624,682688498,1453826218,-1331023868,-1094473175,-930462598,-351805056,1151188558,-1480719381,-1455521724,427098966,272381988,-1031139980,158675772,1453801088,-352160767,-339135882,1950170150,1967078404,-352145148,1948072986,1950104588,1950235656,1964981252,-351948540,-771444474,1355320040,-906051074,1017907060,-336104412,607956217,1077676660,-346553483,-236213710,119849816,-622278518,-1442205441,-389823862,1185939467,-1455521622,-1031142570,-1979243325,-62527280,-489626928,-1039473968,1606668426,1453590215,-1031126738,-346970177,-2234365,-2130930456,56011070,113641588,-385788250,749796644,1453826218,-941029596,4122876,887620587,-1439911936]},{"sector":11,"data":[837302763,-402396416,749731879,-63772246,1102824363,-1157371060,518543425,-1439911936,-1012153461,-347323973,1480702723,-335801368,1279375596,1102579947,-1207702696,-1012180924,-397912133,1048576049,1946375849,1151843857,116786097,1979668134,-389939710,-1326842083,-2299652,-945148752,-2092154107,-389872953,750321614,-389829839,-796198009,65065368,-1559786536,-1031121244,1215806403,184543464,-352160576,-74323535,-397899845,37552089,104637554,27790451,1186465908,1387834177,1558817568,180601852,-2146011968,1095498246,1244675712,-1174047424,65751866,-347394374,-100237292,1048592715,1967147568,1263712773,783942635,-854739893,-576722655,11670670,-5242868,83886079,134263296,-20480,327679,524466,589744,1048752,-80,255,0,2573,167772160,-1308617728,-1342160604,1142969165,1444959055,1769173605,891317871,540028974,1126777640,1920561263,1952999273,943272224,959524145,1293955385,1869767529,1952870259,1919894304,1766596720,1936614755,1293968485,1919251553,543973737,1917853741,1919250543,1864399220,1766662246,1936683619,544499311,543976513,1751607666,1914729332,1919251301,543450486,106058576,-1899416745,-1191234623,11670062,109850573,1049175538,783820272,-855461358,-100234193,-130119387,305051685,801965234,638191244,638074505,-1307431240,-1943024378,-1994002938,-400167874,109842949,1049175530,109848040,1049175558,333981188]},{"sector":12,"data":[-33125358,-63010523,305051685,801966258,638715532,638598793,640616135,113641997,-953932168,2503686,906413824,-402650586,1049168801,1239950868,406751501,243394598,639385225,-1995339800,-400154562,786956313,4319232,5302353,1599670386,1482381831,-998046485,1355020556,12066390,505531747,141696775,640169609,640288396,-1195157410,12272640,-841862400,31883297,-1207841152,567100417,1140897987,855638459,-2145268270,28836302,-1021194940,567095476,1962935613,418117635,1929380413,-17659,45810667,112640,-1308622663,-100682240,1364414659,1376147285,512354699,914892332,-521656783,1959332610,1978469148,2549765,-1326971925,1510502913,117507560,-2096829601,-336001340,1516177156,1560703737,-346530983,147096324,1397801977,740199250,-294106,753403253,-402396416,259194999,12278196,841075968,113542116,-2096043015,192217083,125092155,-2097106712,1928922820,1482381827,520494787,1963063683,637711387,567088522,-389903841,102629553,638022431,-855550582,267122721,-922025292,-1977218700,1193397525,-118262455,1347928863,-91532538,-645200098,-218359120,721647022,-880063527,1599604571,197145539,508523721,1085546246,-108800117,-852986623,642785057,1525155210,102651904,-133795041,-851296076,-2144953311,41228861,32227723,-68677937,1427827711,-5838767,-849745525,-352160991,1959279371,-118998265,-1047854475,-1195172003,79364135,-1023298304,1962933888]},{"sector":13,"data":[-2134444527,119409781,640630413,-402652487,113508096,675202135,1962871590,1032005143,276101120,1912945190,1161438727,-117344511,-370456761,-1883044001,858141190,-141388837,-1826212298,641087223,1980365443,935493637,-1031797781,188830256,184841664,-2093386533,225772537,738884736,922682741,-348051905,117015330,2088766837,91565066,641677055,-2096043199,192219641,738884736,922682741,-1824446913,-1477717453,-1070345677,640825087,198325187,-1272875831,637579301,175449400,23410726,-1002830732,-1977217419,-11278331,1195835763,-478852798,197822294,1295217901,640958083,-1976863488,805570116,21314086,518718069,74788924,74764811,-404016125,640761472,1107850751,1330202946,-1174148273,727187455,-32839431,57891167,1368424427,2088815243,225705990,108316939,1195854153,-346160661,1976109840,166419971,1979709827,197735170,1431729407,860948055,876512201,762642470,252134646,2093222005,41216002,1156979435,208932103,235357430,1156974196,141888519,-402490172,15401602,-352224536,2156547,123275122,-346137249,180650756,876512249,91553830,350815090,872859647,-1023410138,883020339,906413862,-402650586,-2007433579,1126578311,1967192963,33089539,-294270466,-1995829832,1126578311,32041027,861099715,-2134297610,141950974,638893195,636215179,1946339062,-121846776,-339506139,1260824,658312562,-1006078208,-1943665476,-1006179389,-1943672644,-293949,-25160075]},{"sector":14,"data":[-117213697,883100907,-18394,855638461,216791286,1946221443,5564419,-133904765,-922024334,-1611988363,33456284,1431447925,1347880529,-855310152,1493122095,-661976715,-855309640,-117314769,123667827,-2096698535,216532676,-346399488,-401682687,1583087611,-1185916989,-1070399489,-772296974,-1017161655,1963064195,272532253,376766246,1979711293,882987019,270466854,82532390,638590719,-919397653,1962933888,1300899334,772401923,74790200,55413294,-117127293,200813939,-2145815351,91553790,-351978714,87764483,166396533,-2096794551,-471137081,-2146667783,1979252734,637996546,1912765699,653079046,-968422006,2502150,-2133118013,1962935932,948422417,1127030822,948422211,-398254042,861733030,-1999490085,-1977209330,-1053161148,-1054204298,1157034122,343179271,-2012593014,1126578311,1967192963,8185859,-327823618,556160,1278741876,705196808,-779483060,185093258,-165382967,1963919172,121959948,637957136,-347667062,-2021107711,-2092751304,58015995,-33537560,-153324087,1971324740,1962281496,172263956,641238920,1090224963,602407797,1976499712,121960172,-167217905,1947207492,168618754,-1895271214,-31051258,-386370102,-1017839614,509019729,868977415,943623643,-77928410,123667826,-2096829607,-1007089980,121960029,638743856,1095763338,1945911528,1166681606,-336048127,92939789,74760202,-169131705,-1017775829,869413725,906414016,855642150,121960155,639923488]},{"sector":15,"data":[1156973962,225774855,57966760,-947968957,170276358,121959936,-955878130,170276358,-162206976,1963984708,93005350,218580214,-990507147,1124365440,-947919744,170276358,121959936,-955878130,170276358,640215808,-1960442485,1156973141,259329287,1954596598,-427801852,906413951,-167769562,1963853636,906413830,-402650586,-619971651,-768408204,1431449010,393155,1006633231,1342177792,1660945152,2080375808,-1442817536,-637510912,251681792,1275092225,-889168383,218129409,2030068994,-352295422,2113955586,-452958205,1442867459,1850283780,1920102243,544498533,542330692,1936876918,225341289,824514058,1919705376,2036621669,1936615712,1819042164,168649829,540091676,1702132066,1986076787,1634494817,543517794,1679847023,225145705,1816211722,1633906540,1852795252,1767990816,543450476,1931506287,1768121712,1684367718,1718968864,544367974,544173940,1818324339,856296812,1936618834,1650803744,539780981,1919950945,1634887535,1702109293,1852404851,1851859047,1684349028,1852404841,1869881447,221146223,940182794,1430406468,1532698695,1986622052,1532836453,1752457584,1818846813,1835101797,1952129125,1718907749,761621609,1634886000,1702126957,1566405490,168626701,1528832064,1986622052,1532836453,1752457584,1818846813,1835101797,1394614373,1768121712,1936025958,1701344288,1818846752,1870209125,1635197045,1948284014,1702109295,221148275,539001354,1953719668,1701603686,1918988333]},{"sector":16,"data":[1952804193,544436837,538976288,1667592275,1701406313,1868767347,1851878765,1768697188,1763730798,1919903342,1769234797,1914728047,1769304421,543450482,168655202,548538640,1957691418,1713399144,543517801,544567161,1953390967,544175136,1953719668,218762542,1715553546,544367988,1969382724,1953701991,1937011297,2037653548,1059087728,544175136,1886611812,544825708,1768693857,1864397939,1701060710,1734833506,543649385,1835888483,1935961697,1862929710,1702064993,1701601901,538976288,1528840480,1919181921,1567847269,1868761613,1918988397,538976357,1126178848,1851879968,1629513063,1701995620,168653683,1886221668,548536481,1152385033,1634884384,1566926702,1852115469,275932532,136360448,541437952,1919181921,544437093,1936288859,168648052,1818846837,-1308616852,-1342174944,1634869318,543516526,1953720684,1869023757,548536336,1202716683,1631410976,1701995620,542995315,1684300123,1936942450,224228197,2019911690,548536349,1219493898,1818326560,540108149,1970037110,168637029,1970302569,-1308617100,-1342175200,1869619273,168653938,1634692246,-1308619420,-1342174944,1633361996,1701995620,542995315,1769104475,542991734,1919510107,1702065267,1919906915,1851465821,1700949365,168648050,1702260589,548536368,1303379977,1851879968,1629513063,1701995620,168653683,1701667182,548536341,1320157193,1634753312,1634625652,542991725,1735549275,1953720684,1862929757,1970304117,538976372]},{"sector":17,"data":[538976288,1869619279,1646294130,224752761,1919969802,1701143407,538976356,1344282656,1631410976,1701995620,542995315,1836412507,1567778146,1970342413,5993577,598194,168645040,1768383858,1919251571,538976288,1528844832,1768383858,1919251571,1930038621,1668440421,538976360,538976288,1634869331,543516526,1953720684,1953761805,1701011826,548536383,1420820488,1631410976,1701995620,542995315,1818326619,224224629,1634628874,1835365235,543517794,542449696,1851880027,224224615,1769109258,3368308,532658,1528846256,1919181921,1567847269,1919179552,1566930537,1768315680,1937011570,1869898597,1528847730,1651340654,224227941,1818344202,1633906540,1696621940,1851879544,543450468,1869440365,4553074,532658,541153456,1634739035,1567843687,1701054989,1869376609,1702125923,1886938400,1701080673,1701650532,2037542765,538976288,1146626080,1634229024,1701602414,1829375325,1696624737,1851879544,543450468,1869440365,1881176434,1936025441,538976288,1478500384,1281040461,1701273968,1348149341,1701273968,1750802525,1818521185,168648037,1886611812,544825708,1634760805,1684366446,1835363616,544830063,1952543859,538997621,168645464,1049429774,-1048498734,-3996332,101515269,117453824,134234112,151024896,167801856,201363456,218147328,234929152,251712768,268496640,285280512,318843904,335630080,251745536,543449410,1769366884,1847616867,946171233,1852727619]}]],[[{"sector":1,"data":[1864397935,544105840,1953720684,1986356256,543515497,223236688,1953383690,1847620197,543518049,1814062703,544502633,1769366884,541025635,520752386,1917848077,1634887535,1702109293,1852403058,1684370529,1919905312,1819042157,487198073,1635151433,543451500,1986622052,1886593125,1718182757,1952539497,225341289,1766200586,1663067500,1952540018,544108393,1869771365,470420850,1970499145,1667851878,1953391977,1634759456,1864394083,1768169582,168651635,1936278557,1919230059,544370546,1684104562,543649385,1986622052,824516709,1142753805,543912809,1869771365,1920409714,1852404841,1919164519,543520361,168636709,1769101094,1881171316,1702129522,1696625763,1919906418,1634038304,1735289188,1769104416,622880118,638192945,1953067607,1919950949,1667593327,1919230068,544370546,1953067639,543649385,1986622052,824516709,621349389,1159749169,1919906418,1920091418,1763734127,1480925294,1919885381,1480935456,1818846752,235539813,725519623,-1430159053,100647681,1380352,1441856,1507426,1572971,1638543,1704091,1769673,2097351,2162888,2228425,2293966,2359505,2425046,2490586,2556127,2621678,1160052977,1629504856,1210082414,1713395781,1936026729,1851876128,544501614,1998611810,1953786226,168652389,1163412748,1634082883,1920298089,1462249317,1953067561,1919230053,745697138,544173600,1953719652,1952542313,544108393,1768318308,224683374]},{"sector":2,"data":[1665208074,1936942435,1852138528,224683369,1632645386,2037672306,1920099616,1864397423,1869488242,1769497966,1852142707,1701650548,2037542765,1920099616,1679848047,1667593317,23356788,824509485,621030688,137504049,624570661,858071090,540091654,137504032,622866725,973737266,1026630919,538980901,540091656,1869771333,1918308978,1852404841,841293927,1646276901,1936028793,976299270,37564965,118370597,886718093,20627841,393155,1811949851,1795172864,2080386048,2063609344,2046832384,2030055936,-1509936384,-721406208,-402638848,302004480,771766785,1023425281,1358969857,1593851137,1879064065,-2097135871,-1795145727,-1560264447,-1157611007,-738180351,-352304127,-33536511,234899201,754993154,1275087618,1845513218,-2113909246,824508930,976299284,538980901,538981157,538981413,624571685,136315446,36775170,623915301,1718558769,1948279072,1818326127,540157216,542330181,1701273968,1634214003,1646290294,544105829,1869376609,1702125923,839519588,1864380709,543236198,1635020660,841293932,1397572896,1851877408,1936026724,1986095136,1700929637,1629515365,1668246636,1684370529,1209403917,1818521185,1919098981,1702125925,540876900,220213541,1867263242,1633904999,1634738284,622880103,1634541617,1684369520,544175136,1937336432,1818321769,1734438944,841293925,520752416,542330181,1685217640,1701994871,1718580015,1918990196,1634082917,1920298089,302648677,1684955464]},{"sector":3,"data":[1847616876,1713402991,1684960623,1226246669,1818326638,1713398889,1952673397,544108393,1701080931,1309739533,1919295599,1746953573,1818521185,168653669,1986089748,1699884901,1919906931,1919230053,225603442,1867781642,543973748,1701273968,2019893363,1684366691,168649829,1701987861,1634738277,544433511,1701017701,1684366437,1343293965,1835102817,1919251557,1920099616,168653423,1735347227,1818321769,1734430752,1970217061,1718558836,1851879968,168650087,2036879388,1633905011,1632641132,1864394087,1864397941,1634869350,224749422,1632836106,1629513078,543253874,1701997665,544826465,1965059689,168650099,1986089750,1918967909,1847615845,1763734639,1937055854,319425893,1701733703,543973746,542330181,1869771365,571084146,1936943437,543649385,1763734127,1818326638,1159750761,1881166669,1835102817,1919251557,1210190349,1818521185,824516709,1935763488,540157216,1701273968,1818304627,1633906540,224683380,1750082826,1667855225,1881173089,543516513,1025519909,1634879008,1931502957,1701668709,622883950,386534706,1684955464,622880108,1701060657,1869376609,1702125923,319425892,542330181,544501614,1953721961,1701604449,235539812,423529735,146899254,84001539,-65280,1158742020,1852142712,543450468,1869771333,824516722,1049429774,-1048364762,84067104,-65280,1343094788,1702064737,1920091424,622883439,-1928917455,-2093397442,1455627713,1364414551,-1956752814,56396548]},{"sector":4,"data":[-1979233141,2089486676,41191946,-402295669,1499131536,1583306843,-312612669,-392428173,-1013059968,1976191720,29943813,76164587,108350780,4581446,1396449771,-398064011,401277369,108348476,41805894,1094454763,-398064011,65732614,-1009922584,1912621800,8382488,-1996428056,1968323094,132684807,65772801,-352251928,17491971,2746563,2062031474,9693184,-402608920,125108434,15460508,-402396259,65732844,-1023350808,1481461061,811096152,521018880,-1204152134,567098624,-661968782,-851181384,-2128645599,1946190050,1141356569,309469645,242532362,567099060,-739768206,-133991167,-1258700001,-389865473,326420884,-402651975,91475125,-338871320,840337668,-402396334,-389821136,326420856,-402652487,91475097,-338878488,873891844,-402396334,-389821164,326420828,-402652487,91475069,-338885656,890669060,-402396334,-389821192,326420800,-402651975,91475041,-338892824,941000964,-402396334,1405340892,512443316,1741509170,-1017388022,1152668243,844248480,874416895,941001554,174574930,-1017423132,-397417798,-1161574066,1206407150,-88423479,-2130935729,112878452,-2080604080,314202996,-2063826864,515527540,-2047049648,716852084,-2030272432,918176628,-2013495216,1119501172,-1996718000,1320825716,-1979940784,1522150260,-1963163568,1723474804,-1946386352,1924799348,-1912831920,2126123892,-1896054704,-960885900,-229296,-1967520908,-925308592,-397371718,-389822254,91422379]},{"sector":5,"data":[-352319768,-8460285,-1085426493,1741509182,1081467914,1946221443,93005337,642923171,-1560132213,-1564847556,-928978864,1258604419,-1561795861,13560008,1946220931,6219791,-397365574,-2092316538,-320142137,-402650648,65732647,-1006686232,1741505204,410379274,1927828051,-1956947256,-1547490366,378099264,-893757886,-933959601,-850676541,1977879143,1176406300,1409464406,-469080115,-1014296715,-1957280605,-1168751074,803753942,-1977171000,899809861,93005394,-1017758045,-1070448460,-469080115,1186206325,1077700557,11798130,82568202,-469106252,-35788605,434641010,-851069952,1961101927,-22353915,-1162213653,-941037488,-1645739029,-1914125314,-1189907257,-1360527356,-402295862,82561844,1379276425,703071211,12108747,-1016607400,1279478849,1279413316,1212368961,1212303428,1480808513,1480742980,1346523219,1229211987,1396921157,1396986707,1497497600,1464094551,1112823633,1086717952,1086726575,1086726575,1086726660,1086726660,1086726447,1139089711,1138434508,1088037324,1088037295,1088037295,1088037380,1088037380,1088037167,1139089711,1085940172,1086988651,1086988719,1086988719,1086988804,1086988804,1086988591,1139089711,1138434508,1087513036,1087513007,1087513007,1087513092,1087513092,1087512879,1139089711,1138434508,1088233932,1088233903,1088233903,1088233988,1088233988,1088233775,1147543855,1092493420,1087251069,1087250863,1087250863,1087250948,1087250948,1087250735,1147805999,1092755560]},{"sector":6,"data":[1087775357,1087775151,1087775151,1087775236,1087775236,1087775023,1148068143,1088495716,1091969661,1091969455,1091969455,1091969540,1091969540,1091969327,1148330287,1089282144,1122050685,1122050521,1122050521,1122050521,1122050521,1122050521,1122050521,1122050521,1093018073,1093018073,1093018073,1093018073,1093018073,1093018073,1093018073,1093018073,1139089881,1139089881,1139089881,1139089881,1139089881,1139089881,1139089881,1139089881,1138434521,1138434521,1138434521,1138434521,1138434521,1138434521,1138434521,1138434521,1085940185,1085940075,1085940075,1085940075,1085940075,1085940075,1085940075,1085940075,1085940075,1085940075,1085940075,1085940075,1085940075,1085940075,1085940075,1085940075,1130897771,1130635928,1125065368,1124541080,1126310552,1129063064,1124803224,1124016792,1131094680,1130373784,1129587352,1129849496,1128014488,1126703768,1127752344,1126965912,8856,8479,8479,8479,1146233228,1146233348,1146888708,1146888708,1136534020,1136533935,1136533935,1136534020,1136534020,1132077533,1136534015,1138434541,1137320442,1146888829,1146888891,1146888891,1146888891,1146888891,1146888891,1146888891,1089872571,1092231805,1089544829,1146560835,1138696829,1138107005,1142760061,1131487869,1136534141,1136534216,1136534216,1136534236,1135747804,1136140925,1091183229,1091576445,1146233469,1146233135,1145446703,1145840253,1132929661,1133322877,1143349885,1143743101]},{"sector":7,"data":[1136534141,1136534247,1136534247,1136534247,1136534247,1136534247,1136534247,1136534247,1136534247,1136534254,1136534254,1136534254,1136534254,1136534254,1136534254,1136534254,1085940462,1085940075,1141973355,1141973340,1132339837,1131815423,1136534015,1136533802,1085940010,1085940075,1141645675,1141645660,1122640509,1122640632,1122312510,1123099261,8829,9579,9579,9565,1089021277,1088758148,1085940100,1147216235,8829,9140,9038,9140,8998,9140,8967,9140,1133716221,1134174872,1135420056,1124213400,1122902680,1122903299,1137845502,1137845536,1089545509,1128800939,1128800939,1128800579,1122902680,1122903286,1137845489,1137845518,1132602643,1085939824,1140269419,1139941488,1121132656,1090921085,8829,9605,1090135429,1144660605,1090658941,1145184893,1090396797,1144922749,8829,9620,1111762324,5719040,1380909115,1145110599,1145110596,1431502915,1112735810,1331167298,1380909138,1145979136,1094795520,1145127168,1296122112,1396785408,1279345408,1111687244,1279459415,1279459395,1279459396,1296236617,1296236611,4346704,1397771587,1296236631,1464008784,1094975556,1094975553,1162084435,1229193283,1397030998,1480982595,1174423619,1162170950,1329808896,5263437,1297040198,1128661072,1174424911,1297040201,1229324368,5066563,1347374662,1212368384,1095106643,1174426434,5526356,1296128070,1145849344]},{"sector":8,"data":[5517900,1279544390,1174422834,1196180556,1279655986,843992132,1145849344,1174423888,3228748,1514425414,1479689728,1174417741,1479691353,1174417744,1479691353,1414546944,1174425153,1096040784,1480982606,1128354388,1145438292,1414742853,1229324368,1414742862,1346764880,5064018,1381061446,1380319316,1313424462,1397096532,1162625347,1313424896,1174426697,1230195012,1313162752,1128661065,5784908,1145848390,1396852224,1174425684,1464026188,1414743552,1174427459,1465078867,1414743552,5656133,1162103878,1174427214,1163280723,1397900800,5394260,1145323846,1095106640,1174422596,1145323849,1431520768,5263938,1112888134,1397096530,5259861,1112888134,1397310976,5390933,1431521606,1296433218,5262421,1280658758,1296647680,1174424661,1381386564,1145438288,5396041,1447642182,1145438288,1174427209,1447642185,1229324370,5654852,1229018950,1229324372,1174422604,1174422604,5264467,5526342,1414744390,1229324368,1207981139,1224758348,5654852,1280658761,1129203968,1414416640,1313407055,1313407060,1163020544,1313472596,1241531714,1241531713,1128923201,1241537112,1241530958,1241531714,1313472578,1128923203,1095649792,1313472581,1514799169,4540928,4540234,1241532234,4541518,5000778,4541514,1241533514,4540238,4673098,5262666,5918282,4542026,4542538,5197898,5262922,5459530,5197386,1241534282,1347027027,1212238848,1145831494]},{"sector":9,"data":[1162608723,1162608705,1330380883,1275087683,1112753231,1146047488,1275090771,1313886031,1330380890,5918799,1347374924,1275086158,1162891087,1330596864,1330446416,4346710,1398165325,1330446423,1431109718,1162739788,1330511943,1330511952,1431240788,1330643028,1342195280,1342197839,1179145045,1398099968,1129447496,1129447500,1163001938,1375754832,1515081797,1346720256,1163001925,4542032,5260626,1179927890,1413829120,1280266752,1380930048,1212240640,1095958598,1129513042,4346689,1396786003,1213399127,1213399116,1414725714,1414725699,1414725700,1414725705,4346703,1397707859,1163133015,1459639379,5523777,1195918168,1095522304,1397030996,1396899898,1397948474,1396965434,1061093434,1145110591,1431118916,1329800268,1329800269,1394888781,1394885205,609370709,609634628,1381386564,1176782372,608576585,1143228742,1146244951,1381257248,1464083488,541348431,542266448,1331122468,1344291922,606098004,1146244951,1381257248,1497506848,1344292180,606098004,1415135828,1414537285,1277435986,608183364,1394889811,1277448276,1447970116,1128549412,1414734935,609635909,1464030291,1397244708,1396850980,1076117540,1414747172,1296128036,1076117540,826559524,1279544356,1277449266,1160924228,1346653220,1145840713,607274828,1313621068,1145840690,608183386,827152434,843864356,1414538328,1344556609,1312904257,1381259300,609502017,1162093632,1347703619,1129204004,609244243,1296388688]},{"sector":10,"data":[843864356,607211608,1414680915,1378107428,1313424462,1129522260,608521281,608183360,608455753,1397302336,1397302356,1076121684,608455716,1414734912,1313154128,1229202505,1126451539,609764684,1414090313,608455716,1414734912,1347703588,1414746660,1076122191,1447121700,1414734917,1176786771,608519506,608715608,1394889811,1227116628,1076118604,1414744356,1414744356,1279403088,1279861828,1396843588,1227116628,609244243,-14709249,-604037240,535559957,270103808,1965562229,427104281,135886128,1965037941,375469849,-736731691,1631524445,391843862,-132750952,1643910753,375519766,-1508482571,1638340193,427112470,655778201,1630475873,407177238,-669438928,-49735569,419244056,51793625,-1258153803,420614936,-803663342,1457526358,374792470,-451520796,1458116182,374794774,-317303060,1458247254,374794262,-266971410,1459164758,374796566,-216639758,1458837078,374797846,-132753673,1459230294,374799382,-485075203,1390483026,374530070,1008095970,-583132963,417402136,790159631,-452060959,417664024,739829038,-47179547,415170584,874058256,-1794828035,419247384,353932548,303307026,419246361,286834433,-46786286,412419864,102300983,303503509,420615705,404119963,-1257760494,415173400,454604074,303700242,375518233,672738360,1157634348,375508504,-334047028,1640961776,402421526,1998060659,-52226052,402420503,1914174582,-59566084,402420247,1981283442,-59500548]},{"sector":11,"data":[402420759,2132278397,-58779652,402423063,2081946750,-58976260,402423319,1964463904,-59435012,402422295,2065169531,-59172868,402419991,2014837872,-59107332,375496471,-1927799867,465836059,375517208,-1391042132,-52423071,402448663,-518521632,-52291588,375497751,-971611739,740301165,422320153,269902224,552474924,375495959,-1676250624,1848645217,423366678,-216450024,1643255393,375517974,-216636942,-1110763935,381534998,135871488,1637751100,423376918,-1357487698,1008735841,423372825,-48864775,1643845217,375499286,-166305365,1637554535,425952790,639001047,1630410337,375469590,353788222,-364635836,843312707,1984181828,-968613308,-901719488,-582954432,-700395968,1379997248,-834374076,-1035745725,709024835,-515713215,-247388606,1212215616,-448575421,457471555,491396938,1095375178,1480720472,5784320,1392531524,1346502736,4805376,1140869444,1397030995,5460736,1224758083,1129316432,11671107,1336934409,1162757206,1308622921,5397063,4407552,4542464,408503040,134263296,1447997440,1229213781,1280311296,23118,16718,20304,1590094,17301682,88752,1048754,-234749520,11665411,1068498955,-2146955507,218124288,11665417,-2135949216,1543503872,1811939328,11665417,196083723,22107648,1048832,729088,86358,4097,-100660448,16777547,536936720,33488904,11665445,749731848,67239680,134263296,110592]},{"sector":12,"data":[262655,524466,-16774736,-1308621823,-1342175232,33488906,11665412,45088776,67240192,134263296,831488,262655,524466,-16773712,-1308621823,-1342175232,33488910,21676800,0,33488911,21676800,0,33488912,21676800,0,33488913,21676800,0,33619976,11665460,330301448,130816,84653,335544320,268566272,134263296,1355776,262655,524466,-16771664,-1308621823,-1342175232,33488917,11665412,380633096,67239680,134263296,1552384,262655,524466,-16770896,-1308621823,-1342175232,33488921,11665412,447741960,67239680,134263296,1814528,-1207959041,330,1717829632,6709760,1644196450,423690352,1879093760,765953,86358,4097,-1493169376,33554769,536870928,1375207435,-1560215551,187696132,22149632,77791744,733188,86358,4099,-67106016,16777553,805569699,1375600651,-1560150015,187696132,22107648,1048832,729088,86528,67412738,33557296,16777554,537002512,1375993867,-1560150015,187696132,22152704,1048832,729088,86537,67412737,184552240,33554770,805373091,1364590603,-1878982655,186646528,22154496,77791744,733188,86543,33723137,285215536,16777554,805569699,1376976907,-1560215551,187696132,22156544,77791744,733188,86551,33723139,419433264,67109202,805438099,1377501195]},{"sector":13,"data":[-1559953407,187696132,22158592,77792768,733188,86559,4097,553650976,33554770,536870928,1378025483,196609,186646528,22107648,1048832,729088,86438,1,973081376,16777554,805569699,1379139595,-1828651007,187695618,22164736,43188736,733186,86586,67412737,1006635824,33554770,805569699,1379205131,-1828651007,187695618,22429184,77791744,733188,86582,67408641,1073744688,16777558,537134243,1447165963,-1560150015,186647556,22431232,77791488,729092,87620,67412738,-16768992,1298857985,2,-16768768,1300299777,3,-16768512,1302462465,2,-16768256,1303904257,2,-16768000,1305346049,2,-16767744,1306787841,1,-16767488,1307508737,2,-16767232,1308950529,2,-16766976,1310392321,1,-16766720,1311113217,1,-16766464,1311834113,6,-16765440,1318322177,1,-16765184,1319043073,1,-16764416,1325531137,2,-16764160,1326972929,2,-16763136,1319763969,1,-16762880,1320484865,2,-16762624,-1308454143,-1342175232,33488954,11665412,1001390088,67239680,134263296,3977216,262655,524466,-16761424,-1308621823,-1342175232,33488958,11665412,1068498952,67239680,134263296,4239360,262655,524466,-16760400,-1308621823,-1342175232,33488962]},{"sector":14,"data":[11665412,1135607816,67239680,134263296,4501504,262655,524466,-16759120,-1308621823,-1342175232,33488967,11665412,1219493896,130816,151243,1258291200,130816,151265,1275068416,130816,85751,1308622848,671219456,134263296,5943296,262655,524466,-16753744,-1308621823,-1342175232,33488988,11665412,1571815432,67239680,134263296,6205440,262655,524466,-16751440,-1308621823,-1342175232,33488997,11665412,1722810376,67239680,134263296,6795264,262655,524466,-16750416,-1308621823,-1342175232,33489001,11665412,28312908,11665409,-5242347,-1,-1,-1,65792,27918336,79757674,1112671628,-1064507253,234885125,303903,787971,244039822,-108331002,-34108593,-1202674445,-883949516,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704,78708751,-789068149,-628299565,74698795,-768878452,-268181293,-947135858,-388771593,-802438516,-1064565645,-522989013,-1030817789,1322289836,1187548077,-31145334,91598908,-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094,-1031072797,-1064385789,-2080863315,292880383,-501415642,16417267,-2129234704,-351272766,1086360796,-276578162,486614544,-339702200,-1950118942,-1962932162,50334262,33948144,1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602]},{"sector":15,"data":[482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,2913392,1254902465,1300187863,1301630346,1303072160,1304513974,1305955788,1307397602,1308839416,1310281230,1311723044,1313164858,1314606672,1316048486,1317490300,1318932114,1320373928,1321815742,1323257556,1324699370,1326141184,1327582998,1329024812,0,0,0,0,0,0,0,1396834304,1174425684,1464026188,1414743552,1174427459,1465078867,1414743552,5656133,1162103878,1174427214,1163280723,1397900800,5394260,1145323846,1095106640,1174422596,1145323849,1431520768,5263938,1112888134,1397096530,5259861,1112888134,1397310976,5390933,1431521606,1296433218,5262421,1280658758,1296647680,1174424661,1381386564,1145438288,5396041,1447642182,1145438288,1174427209,1447642185,1229324370,5654852,1229018950,1229324372,1174422604,1174422604,5264467,5526342,1414744390,1229324368,1207981139,1224758348,5654852,1280658761,1129203968,1414416640,1313407055,1313407060,1163020544,1313472596,1241531714,1241531713,1128923201,1241537112,1241530958,1241531714,1313472578,1128923203,1095649792,1313472581,1514799169,4540928,4540234,1241532234,4541518,5000778,4541514,1241533514,4540238,4673098,5262666,5918282,4542026,4542538,5197898,5262922,5459530,5197386,1241534282,1347027027,1212238848,1145831494]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[23222861,25,10551328,59834367,128,48234512,30,1]},{"sector":3,"data":[-397264405,-1017503796,1128348429,1279870276,1381060685,106386515,1393304324,486815496,1728522251,688646150,134969860,-1408633584,1627761418,571401,772384233,900734604,235343440,520537631,12320820,122218498,1931459048,-1337150458,1478610176,108314634,-385873992,12061050,-2145268425,91566074,780928710,-402190801,1048587650,1979660166,19707916,-1341941272,-850611200,-49887,1776813429,1024846599,41222145,37571563,-352160512,212368,1038811765,1344212510,53748152,-1959485178,79255792,82739968,-215056193,58007462,503363049,-1157226738,12124290,16890368,-385876033,520554230,-1557787278,-1645661021,802535936,1023999209,1903427587,1946158141,343410,236852597,1124120607,-852221510,-145853919,1946157505,1028451144,1098186754,-1155592674,12124290,17873408,-385876033,1914635946,-1260877023,505531710,1102323470,-852221510,426909473,-1861827034,-970522833,-13660154,87898347,-1206749952,-2014773233,768008,-1207402007,2078867466,505864,-1207405079,1877540876,1048585736,1962946447,-400617766,1038814684,-385872200,521013338,797982336,-1207536640,-1947729901,874626562,882970251,883277649,-1957714701,783309271,1957622525,-50689278,658409799,780516917,-218102343,8567716,-1174404935,1048576274,1979659956,918011653,-4258837,101378303,631478130,512630325,244004272,-812908542,-108933333,58068992,-787480647,-773729823,534893025,2030995785]},{"sector":4,"data":[918994738,797968118,-2128775681,-784939287,-775844887,-1911649815,-1949826254,-960331311,-1877571274,918993458,436586236,846675593,848955078,470206080,113704755,-955632610,-969771770,1929824054,-956301006,20082950,1762051840,-167772110,-13660154,113642869,-402574305,113640941,234894367,-1140388321,599261696,256227877,112730573,27322368,-1271752006,-954086134,-1674406394,1882162,-956199448,3304198,1829160704,-956301262,3305222,-1979267584,113639470,-1962921343,-1120758218,-13421975,1040228072,-947711095,1899923714,1898893618,7071794,125119548,1913192323,1316219875,1007489768,-972524225,-13467386,1007486696,1007056479,604141434,573279,-234876999,-2125498962,-1962931729,845914591,108314635,845743675,914963570,-472829290,1546239,848705163,1007472360,1007776781,1006924826,1174500667,-1774810802,-10491598,1325348073,-1022577944,845889155,1006138368,1983015710,314071794,13690880,-385935127,317324460,210888959,1963392899,-1979267579,775684398,591150452,725370484,758932596,12218228,1006678272,1008628272,-2128971975,1931057658,738308545,-774206672,65196514,-1729965613,-340996093,16351454,-770991756,-2134662028,19827262,378228596,-1012125069,780811904,-1170050047,179306497,918994775,846663307,132370219,58044146,1610083138,1048626092,1946234506,-8787936,846403075,-1975615293,292815150,-1946195224,724726558,-1157400614,-745865215,-11867709]},{"sector":5,"data":[-369145879,1048641351,1962947201,135522563,848695039,-1207957831,65536301,-85835776,-1171273309,-1444335671,1899922203,-797637838,900662982,-2096305407,53637438,113689202,-1962920529,187854110,1685723,512472436,-620023191,512428917,-538430861,1763609086,138209330,1049205365,512438907,-620023189,512428149,512307827,602419819,-1954450168,1127377694,-1995957784,-1959625410,993159446,1983015702,-21829373,846009995,845747771,372967798,58143339,-1946247191,724729102,-1993180402,-1993174514,-1590520818,-1073008017,653725044,-930401646,57987595,-1995841303,-1590521330,1049309815,-131386759,57932091,-1962291991,-399348450,1049167798,915092095,-829738377,-1958621397,-1841429506,2000587058,-1527513806,2132708348,2065578802,-1962117326,20091422,20085534,-1959625442,-1959629026,-1959624898,-1959619570,-214795466,32211876,1048637823,1946170799,2067696432,2100726578,1997441842,-53597390,-970545933,1049172485,512438903,507196013,225849961,845749763,845880875,1830717771,1830718258,120645682,846544521,846405257,1997441987,737250098,-91536945,-2019232771,-1958216457,1967032814,1931381042,1999538482,37602098,-1173981952,-1360449543,506109,-2080529687,20083006,-1779891340,171305213,891928398,-1392719565,259268668,192153916,125046076,57948988,-957551702,-1991376891,103978550,-1191149381,28966912,-16639,117573096,-1448891278,623097909,-855191622,1763609377,1977289522]},{"sector":6,"data":[1931381511,-46864334,-1962502680,2031520730,-10098638,846534283,846663307,846532139,-1457616047,-851463115,-930391519,209178939,-402646344,244055530,233517685,846532099,-1404112501,24451644,-1946580151,1177712438,846794379,-213791189,1049186212,512438903,1051997609,-2084363827,20083006,-639040650,623098108,-855189830,1763609377,1977289522,1931381511,-55252942,-1962535448,2031520730,-18487246,-385943832,481953335,-854936525,144435233,-2144133442,1114905148,-1979122456,11927372,54646667,1946579665,1926576900,3074054,-217585431,-1442139996,-1161434301,448018118,-930340403,-1064380274,-1912404552,33602768,139389179,-385874968,32046122,780911360,1049309815,-175426955,2030996294,-204657870,1049186212,599274103,256227877,-943513139,-13473530,1896269823,-402652878,113705265,12905,846282371,-385649663,1048837144,1962947177,520537846,-4521676,38529279,798033654,-1949797121,-1187875050,512425985,1085551909,512434637,1051997347,512434637,1051997477,1049305549,-2135018201,-1532648146,-1087102534,1454650533,1049305549,-2051132121,-1532648146,-1087068742,1454650401,1286873549,567132210,1381061456,521018966,-1153168200,2142830593,844151299,292692429,1150022283,1721911312,239373106,-349018206,-31870964,845587144,845612742,1516117840,-1017619623,1823757854,566100144,1579273524,1444856607,11562164,-852187714,-1021354463,1823757854,700317872,1579273525,1364247327]},{"sector":7,"data":[96360023,874626871,-2147483463,-13138626,113640821,-1409208693,74711100,-135577174,882970249,1482252126,1464934083,-1340174802,34507573,735022080,1607568335,-1161617575,521023469,-1258832920,-843042228,49953,-2097092887,20083006,-303496332,-1861814534,-327811281,846665355,845758083,990344448,1915916310,-91503871,846794379,58051115,-1962529559,-1959626986,-1993039074,-1271551218,992070975,1343780040,28954627,-851463168,15649,-972589736,19894534,-1958739477,585650632,-972720890,19894534,512479795,-620023191,-947186315,104579331,192295568,848313995,-819214197,-402652741,1161298917,-2145094401,19894590,96866677,21349901,46629642,46236505,1326246737,846794379,-55643395,1498040135,1705415,1049087787,-117230985,393543435,512447314,-678742877,-4597001,-1274957569,1528941890,990999130,-971147814,3117318,1554627,-1006968344,-1087381062,1040397345,11547809,10217898,798033654,-152930817,-13361402,1323950453,1899922181,58065202,-1946558487,187853086,-1961069093,-1959621106,724727614,-2118093063,1983301375,-1143852102,921174017,1124395779,-2147283480,3116862,-396950155,-1956706884,918993615,-1753953749,891625099,567099572,-1053088910,-141877387,-1992898881,-1959627458,724727566,-201571890,1049186212,113717879,78451,622758851,-851528651,1095713,1005068046,-1258311430,237096268,-166533089,199881707,1899922177,58065458,-956740631]},{"sector":8,"data":[20295174,113640939,-973064786,3416070,1963150568,-1976136739,77391922,847386155,847515275,-92155645,2071396606,847781515,43903058,-2045867174,-1976136910,1238248242,-399134017,-1101660071,244002575,1323840132,906190336,-896847230,-402472573,-1070464959,808041130,-386556952,712312288,-1962895384,1328711230,-1959850050,-1959624170,1228047374,847646209,371804737,108212876,848037575,-398327808,1541932004,-1023314941,-469797143,1252699141,-1195115550,1475018774,846282371,-385649150,113703060,-352242258,-1375287803,113639477,-402574304,880083605,847781515,847918731,-1962797592,-1959623106,-1338864626,-1359807478,1049172597,1049178758,243872394,117387916,1374171784,-401509371,-864812298,-385870664,512489754,99299976,847781515,26011723,846403209,846544521,1899922371,1400308274,845749899,141941515,846405259,845749897,845880971,141941515,845749899,845880969,845749899,-386403864,-864747182,512448339,-398249365,-141885114,1929809759,1967032626,1997441842,1926114098,-201572086,1049186212,-373083529,1048836048,1996632689,-388287498,378077466,512438936,-620023191,512428661,-75287949,1124168705,848830011,-1950154378,187853590,-1961986606,11817171,758277792,-805109758,372982360,74855064,848828043,-629877957,2112422775,-1957473545,-873968678,1967032576,1930856754,-1075291342,1610058496,938212139,846282371,-385649150,512489304,-620023191,512429173,-343723405]},{"sector":9,"data":[-1157400821,-1746403327,-1953008384,1799261175,-81049806,-1269823113,845586432,-396822389,-2084372275,36860222,501810034,-1777401865,1763609394,1977289522,1931381512,-68664526,6088950,378140555,914961011,24392309,2000042947,-386304974,378077790,915092098,-2014825867,6940672,481954484,-400437965,243925709,11875101,378263267,515781250,52946995,857542282,1049297077,-370593163,1,0,0,0,846403211,846544523,24500795,185497539,-1173719845,-960561151,1960459062,1997442031,-1328600270,-473953782,1118761479,-143271365,808827587,918560393,918685382,1931361066,-972721102,540459526,-1007478808,-1962933825,724727566,1358197966,-1573755232,-1957154203,-397258281,1499135947,-1405766977,917569409,540809843,171709811,222040436,154930548,1588857204,-997834740,-1442714709,-606074308,184515968,2105543796,57937407,-1331032656,96905738,53078016,808041042,1525855208,-398258973,1048576832,1962947172,-1077720156,113651342,-402573907,-1073086246,440201443,113640821,-1996474963,858948110,1947024585,540966919,24379444,-1774810802,789561138,-2147438104,3416126,222038389,-1991376523,-1993173450,-1959623666,187853086,-2146142757,3518014,29033845,-1962546432,1127379742,-386565656,1049231066,1049178758,378090122,512438920,-75287957,-2391295,-1946238488,-2045891633,-469824462,-2112996602,-1023315150,848039561,-1959883104,-1959621618,187860542]},{"sector":10,"data":[1974399743,-1949201430,-2112975905,-1883354830,-205506002,-1949660250,-1981516293,-1959621618,-2042721841,-1975612622,-1328600270,-2011788534,-544521678,-109793550,-2011788982,-1977710286,-1010814414,1017956659,-1408862954,-352218904,1947876356,1947024392,-348018172,1959332841,-114600184,1610567048,-1388412733,74711349,-1006678648,67063178,-902052871,1465265780,66554705,-1577516046,-1037356425,104579331,460534393,846661255,-835991413,91748155,-117182205,-1527561731,1583307260,-1161583373,1307062253,-206312975,-1187832129,-4587265,1118481663,-102757060,857544328,1118625908,-92992196,-2134660529,3050302,238755444,91370923,-1057046478,1460396995,-2142242557,1969166909,-1070446335,-1023402776,447762775,125094155,58044146,-1952562785,731863545,-396386609,1975713793,56073244,-8302599,91502278,1946828160,21349898,1170620685,1598097922,-1202535523,-471334885,-1195156748,-605487076,-1899459340,-1195340072,-795999483,-83754820,-369106968,113701649,-1962856561,-1103812802,-1515901312,-1170099036,567096485,87895667,-1960217344,-1271585506,-1960719042,-1103812802,-1515901307,883276452,567099828,891764363,-1523679042,1102750885,-95688400,891764363,-1523677762,1371776165,-24422825,855592074,-65621779,-1359863325,1464933749,-402290096,92799001,1341623128,1604645697,1224860505,-11731362,1591602006,1354979679,1023467557,1968701504,2041091,1017926595,1023112201,1022850058,1542681632,1918975171]},{"sector":11,"data":[2138717190,-1008786430,846282371,-385649663,1048834872,1962947177,806468342,-386931736,20775142,1024357376,91488256,-335607832,-16586527,622758851,-851528651,883276321,567099828,-1070445388,116793805,1962881665,805681891,1357884392,1493097448,-730591940,1023452648,141819905,1962934333,81373,1347900099,-1296346797,734497589,656835,845614730,-58658314,67269632,845390337,1599626073,-967785638,-13474810,976381344,1999790854,1694942727,132841522,845350442,1244816802,1048584308,1996501605,1959959,845692544,-1610058241,1705128550,-972690638,3302406,113640939,1476407908,-1169141053,501755933,1307070703,468211966,81152,3999604,-351702016,1745274598,99352370,845678278,-1017489408,-1974251182,-1335511856,112931,1499144653,50010,0,0,-65536,65535,0,-65536,65535,0,-65536,-1,65535,0,0,-65536,65535,0,658688,0,1092878346,1397600512,1397703712,1919243808,1852795251,808334624,1126703152,1886339881,1734963833,824210536,758200377,825833777,1667845408,1869836146,1126200422,544240239,1701013836,1684370286,1952533792,1634300517,539828332,1886351952,2037674597,543584032,1919117645,1718580079,1816207476,1769087084,1937008743,1936028192,1702261349,1397760100,861341266,868323017,305051903,801964210,287573644,287456905,-1307431240]},{"sector":12,"data":[-1943024382,-1995363322,-1206834626,78778926,109850573,1049170236,783814970,-855199214,537300015,507414801,222226449,287049356,286932617,288884364,288767625,-1945285400,-1995362298,-1206833602,145887790,109850573,1049170244,113709378,168628573,296093382,1644611364,-956301295,168911878,172943360,289816201,-1995726872,-401520066,1049169095,434639182,3074048,1358971368,1912623336,123689224,-346530982,214205188,1448133625,1660991518,119415245,-1995935201,-1945020874,1578194950,12108632,47940,567136819,-2147359104,28836302,-1021194940,-1153171272,-768409599,-830463539,1140963329,-1262280243,1025625392,57999365,1025043448,91422722,-335544389,178947,-1191181896,11665408,-1007026250,1431393104,-1957558697,1511950825,1597409297,48883729,594856203,91614475,-352309272,28960771,-396750990,1594294542,57987594,-351957272,113541892,117763065,1928944223,1532583176,-352140157,147096324,1397801977,1511951186,-294127,753403253,-402396416,259194999,12278196,841075968,113542116,-2096043015,192217083,125092155,-2097106712,1928922820,1482381827,520494787,1963063683,637711387,567088522,-389903841,102629553,638022431,-855550582,267122721,-922025292,-1977218700,1193397525,-118262455,1347928863,-91532538,-645200098,-218359120,721647022,-880063527,1599604571,197145539,508523721,1085546246,-108800117,-852986623,642785057,1525155210,102651904,-133795041]},{"sector":13,"data":[-851296076,-2144953311,41228861,32227723,-68677937,1427827711,-5838767,-849745525,-352160991,1959279371,-118998265,-1047854475,-1195172003,79364135,-1023298304,1962933888,-2134444527,119409781,291323533,-402652487,113508096,1446954071,1962871569,1032005143,276101120,1912945190,1161438727,-117344511,-370456761,-1883044001,856776710,-141388837,-1827576778,291780343,1980365443,935493637,-1031797781,188830256,184841664,-2093386533,225772537,738884736,922682741,-348057235,117015330,2088766837,91565066,292370175,-2096043199,192219641,738884736,922682741,-1824452243,-1477717453,-1070345677,291518207,198325187,-1272875831,637579301,175449400,23410726,-1002830732,-1977217419,-11278331,1195835763,-478852798,197822294,1295217901,291651203,-1976863488,805570116,21314086,518718069,74788924,74764811,-404016125,291454592,1107850751,1330202946,-1174148273,727187455,-32839431,57891167,1368424427,2088815243,225705990,108316939,1195854153,-346160661,1976109840,166419971,1979709827,197735170,1431729407,860948055,1648264137,762642449,252134646,2093222005,41216002,1156979435,208932103,235357430,1156974196,141888519,-402490172,15401602,-352224536,2156547,123275122,-346137249,180650756,1648264185,91553809,350815090,1644611583,-1023410159,1654772275,1678165777,-402650607,-2007433579,1125213831,1967192963,33089539,-294270466,-1995829832,1125213831,32041027]},{"sector":14,"data":[861099715,-2134297610,141950974,289848459,636215179,1946339062,717014024,-339506159,1260824,658312562,-1006078208,-1945028932,-1006179389,-1945036100,-293949,-25160075,-117213697,1654852843,-18415,855638461,216791286,1946221443,5564419,-133904765,-922024334,-1611988363,33456284,1431447925,1347880529,-855310152,1493122095,-661976715,-855309640,-117314769,123667827,-2096698535,216532676,-346399488,-401682687,1583087611,-1185916989,-1070399489,-772296974,-1017161655,1963064195,1111393053,376766225,1979711293,1654738955,1109327633,82532369,289545983,-919397653,1962933888,1300899334,772401923,74790200,55413294,-117127293,200813939,-2145815351,91553790,-351978714,87764483,166396533,-2096794551,-471137081,-2146667783,1979252734,637996546,1912765699,653079046,-968422006,1137670,-2133118013,1962935932,1720174353,1127030801,1720174147,-398254063,861733030,-1999490085,-1978573810,-1053161148,-1054204298,1157034122,343179271,-2012593014,1125213831,1967192963,8185859,-327823618,556160,1278741876,705196808,-779483060,185093258,-165382967,1963919172,121959948,637957136,-347667062,-2021107711,-2092756634,58015995,-33537560,-153324087,1971324740,1962281496,172263956,291932040,1090224963,602407797,1976499712,121960172,-167217905,1947207492,168618754,-1895271214,-32415738,-386370102,-1017839614,509019729,868977415,1715375579,-77928431,123667826,-2096829607]},{"sector":15,"data":[-1007089980,121960029,638743856,1095763338,1945911528,1166681606,-336048127,92939789,74760202,-169131705,-1017775829,869413725,1678165952,855642129,121960155,639923488,1156973962,225774855,57966760,-947968957,168911878,121959936,-955878130,168911878,-162206976,1963984708,93005350,218580214,-990507147,1124365440,-947919744,168911878,121959936,-955878130,168911878,640215808,-1960442485,1156973141,259329287,1954596598,-427801852,1678165887,-167769583,1963853636,1678165766,-402650607,-619971651,-768408204,1431449010,508711363,1992358528,616729096,-351489009,115509762,-841512161,-92266719,309655562,1945857256,-1966568949,-1977496094,49019105,74580148,82532698,-117128061,393155,738197771,1073742336,1392509696,1812016128,-318690048,872492544,-1476317439,-385798143,1426141441,-1526648318,738276098,1850283779,1920102243,544498533,542330692,1936876918,225341289,824514058,1919705376,2036621669,1936615712,1819042164,168649829,540091676,1702132066,1986076787,1634494817,543517794,1679847023,225145705,1951630346,1937011297,1818510624,539782761,1768693857,1865246062,1852139890,543450484,1954047348,1768187168,779251572,168626701,1229734981,1683693646,1702259058,1885035834,1567126625,1701603686,1701667182,1110399776,218762589,790634506,538976322,1869506377,544433522,761556581,1714251375,543517801,1381253928,693775180,1634231072,1952670066,779317861]},{"sector":16,"data":[1162480141,544500068,1701734764,548538530,1823473683,593849961,1883310605,1684956528,548536333,1538261014,1852402723,1096643429,1131874829,276394095,404795904,1935388672,1953653108,1701734764,1700473949,1768711278,744318318,1768714100,744187246,1701669236,222518643,1818575882,761623653,371241472,1935388672,1953653108,1701734764,1697405789,1768711278,1146971502,1162086925,673211502,1702257011,1818846752,2632037,860338,168641968,1702063689,619634,1450162,1768709040,1230857582,1282345485,242512745,404795904,1935388672,1953653108,1701734764,1697405789,1768711278,1281189230,1867319821,1860982,1581234,1953717168,1819570785,1566928489,1852136236,1852402788,1949064549,1852402799,168643941,1734430803,-1308613531,-1342171104,1635021659,1768715378,1532847470,1684956460,1701734764,168644701,1953068369,1752442912,544698226,2036430689,1634231072,1936025454,538976297,-1979052719,1819305298,1063609185,354464256,1935388672,1953653108,1701734764,1697405789,1768711278,1532847470,1532124479,1952738415,1567914085,1381253979,1851403084,1702131557,224228472,1634030346,963142514,371241472,1935388672,1953653108,1701734764,1697405789,1768711278,1532847470,1951620415,225736805,1918133258,1718840929,2650725,1319090,1869896624,1701734764,1683706973,1702259058,1885035834,1567126625,1701603686,1701667182,1918306829,644183145,388018688,593211392,1701734764,223829363]},{"sector":17,"data":[-1928917494,-2129052098,-1023163455,218105343,3407878,3276807,4915208,6619146,7667723,8847372,10027021,11141134,13303823,15138832,16515090,17170451,17629204,1226582529,1818326638,1679844457,1702259058,544370464,1701603686,1835101728,487198053,1701603654,1835101728,1970085989,1646294131,1886593125,1718182757,224683369,1766200074,1763730796,1163010163,1328366657,223956046,1766200586,1126196588,1952540018,544108393,1869771333,352980338,544173908,2037277037,1818846752,1864397669,225338736,1699877898,1696621665,1919906418,980314400,824510989,1126435341,1869508193,1684349044,773878889,541802818,1701603686,1701981485,1701667182,1818846752,520752485,1914728270,544042863,1679847017,1667592809,2037542772,1919903264,1818846752,403311973,1802725700,1819633184,1159736940,1937008996,1936682016,168636020,1953383693,1696627058,1919906418,1309280781,1713403749,224750697,1867385610,1868963956,224685685,-1928917494,-2128804290,-1023323199,218105343,3407893,3604502,4390935,5439512,6422553,8716314,11272219,11206684,11075613,11862046,13303839,13238304,13369377,1261326086,253771566,1701734732,1869575200,1852795936,319425895,543452741,1763731055,1953853550,1818846752,302648677,1919902273,1684349044,673215593,692989785,1294344255,544502645,1667592307,544826985,1953719652,1952542313,544108393,1701734764,1836412448,225600866]}],[{"sector":1,"data":[1867393546,1852121204,1751610735,1869574688,1869881453,1919249696,1948280167,1696621928,1919513710,1768300645,168650092,17435906,1866665738,1852404846,673211765,692989785,1851070783,1701601889,544175136,1852404336,1701650548,1734439795,34213221,621097253,841300529,1851867939,544501614,1735550317,539828325,1701080931,1734438944,1768759397,1952542067,168650851,1049429774,-1048502690,29557034,-16711675,285213951,1702131781,1684366446,1920091424,622883439,-1928917455,-2095084226,46342337,-16711675,234882303,1936875856,1917132901,544370546,118370597,531709581,-1021460093,1465012563,-1956752810,56396548,-1979233141,2089486676,41191946,-402295669,1600058193,1935366490,124931,2013379,-1191181893,11665408,921239478,283689971,-1677364238,-1645007640,-1308416061,-1342136832,196607,2621618,65456,16711680,1526726656,1044151389,574307627,771751936,539231943,-1993474048,773893646,548415113,-1305048786,-1993409504,773854990,538511047,-953286656,2108422,113716736,8221,-385431762,777870112,552273607,-953271172,1042345222,113716779,993861871,1448563281,1107296185,194242732,-1993410187,1579217422,244002390,-617406222,1965177984,181663234,-1959758373,540884228,540872564,1024095293,91503881,1963539773,1023723034,1459522374,503727697,128250631,-1219600807,251604735,1179197682,1589739337,-1267335414,-396797345,326306579,1409286072,639470374]},{"sector":2,"data":[57872186,1526727352,771826665,539375241,-1923786925,773860894,539297526,-1404865248,1913365480,185067580,954742644,773354763,539297526,-402295520,652937935,621213230,510935328,773581646,1027344264,-2144467339,18883854,194832451,783074675,-347928696,-1993453890,773856054,771753926,539631241,-1927443674,773860918,1949252736,1015033398,772305954,539297526,643069185,838944650,104410852,309534743,538419502,1128521937,-1960388605,8972319,-953259541,18880774,643885824,838944650,-523157276,-1977165821,200094223,1125086409,529213011,1526794472,1128481139,-953224478,52435206,641002240,838944650,-523157276,-1977165821,-773574137,-670875424,839879206,1959332845,642990863,1575493515,192109312,-220052669,419874606,1560282144,-1959896225,773854990,773855649,538654347,488016686,512372256,-1007149025,126559824,1962934953,117386757,-2144460777,427098172,1962934697,113716745,139289,-1336930581,-385895421,-346554144,23062531,-2144418984,136324366,1912617960,645934628,1358372901,539533614,19842603,1478501894,674663214,1015033376,-402033664,-336068303,300677396,419874606,1342179616,-4979792,1476433896,1364575224,139430438,-921965262,1871514996,74639369,250087539,-101260800,-1993472277,-132109266,650337625,32384,-347798668,784549366,539299456,-3741680,-2144449934,-283106010,681651792,784739104,539362817,915091032,-2144460760,645201980]},{"sector":3,"data":[-8617938,772371770,538511047,535494665,4162342,-148498060,1962934535,113716754,139289,-1763178005,233568256,1342893049,-4979792,1476396008,643286008,772046731,538787465,637896742,1342268808,539795758,38111526,1963015256,1435051530,1300833796,1012591366,637957378,-352037495,1946631248,1946696936,1963343076,1434985990,1010756356,772764932,1075848865,71665958,106794022,-1993987093,-1943665547,642778701,16926710,78644340,-165279253,1946288711,-402477051,643301697,268584950,283640692,784555777,552863430,-1960423424,1975520007,1381191704,113716823,598041,61931444,1610570728,-346530982,67152199,-953281932,2103558,106358784,423527214,812976416,1947205801,113716754,8217,771998440,538525315,-1457949431,393480192,419874606,-402653152,-2094136112,153098558,65733237,-1459583511,309624832,419874606,-402653152,-2094137018,153098558,11103861,772961344,538511047,199753728,1048784385,1963532313,16820567,-953281164,2103558,114550784,772232936,538525315,-1455590135,309592576,419874606,-402653152,-2094135623,153098558,-2136398219,772961280,538511047,736624640,1048784390,1963532313,536914191,-953283980,2103558,34465792,-197230546,259326240,423527214,125108256,419874606,1476397344,777408707,-1073085302,977017460,-2144465547,1962934652,80096774,-402003200,24315914,-538229178,1455642718,785418834,-135789430,168587783]},{"sector":4,"data":[-401836864,-2010251252,1174530820,1525214022,-2143501474,1631325299,2050770290,-551272073,106118635,-465662633,83525664,1049429108,942547167,1343714325,118379089,-1031117388,-1174405189,-4587515,1512164863,-1959896999,-1909587619,1128465221,-685342676,-1017444513,243281488,780148773,539305600,76164861,175385404,125119804,621707310,-398065120,-1017643006,1448235344,-768358093,76164691,1114947594,1912675560,-1947979207,-773664280,16640209,-628413326,-489569909,-253177391,-786468352,-388902430,376570087,-938224893,1912659688,-2083192051,-722992943,1174630912,-379864085,777715896,539297526,-150309886,-2083325999,-779943486,2005607936,76162566,125108284,-4980304,1174445801,1006930470,1180726272,621213230,511016992,55327526,108476018,22297382,992358002,678889292,992361074,544671060,992359147,410780492,992347775,276562260,122436390,477891199,89406246,350945919,-32913789,783644104,538511047,28311558,1038876596,-1977220688,-1271469276,1088747017,-1977159677,992364036,108331852,22297382,-964435340,1976106501,113716973,466969,-4980304,-953283605,153098502,-1274826752,-56694529,1482250846,-164717373,35661062,-1013120395,-134057827,1019476419,1007186480,738490169,-104597456,1381191875,2139825751,92939782,74825738,1290534836,1064633148,92939847,-453637708,653787968,95683978,54584566,92940024,-1960425657,3336237,-947711373,1976106499]},{"sector":5,"data":[113716977,532505,351010740,-10122714,-1960443216,772533013,538511047,-4980727,367526832,1532649468,1431356248,45241938,-402355666,1014105534,788387816,539297526,1007514632,639595837,97920,334197109,621213230,242487328,175454780,8290342,1180464384,975592683,494207046,1383383050,334185798,4602406,776357237,642057354,1962952250,-347781574,116797095,1950359589,1207379471,1946165250,2122327559,578027520,268957478,1008235520,638154042,32384,250285429,125108284,8290342,-117214150,-1993472277,-132110282,1482512990,1381060803,-396995754,777912490,550962887,-953286656,2152710,113716736,8411,1912647144,-677171688,1960512032,10545178,-1557238158,-620093223,-1813508748,778138112,169925539,777614811,548740747,1946352515,-677302750,1977879072,784894535,169925025,-1975683612,378220264,-75292453,-2046659327,773450729,550966923,551133486,544597002,-1590769526,-469098277,-393603467,1935997571,1824686340,-1268884729,-402149121,283900624,-4956581,-974650448,113716986,598041,-1017620134,548746893,-12811474,267059828,240144926,939571231,567137931,-1021355432,-919383471,168069678,775713984,548683392,-2146470912,74777083,812923452,745811516,758910187,792471156,775692916,-420995468,-1273072899,179998976,199423744,51475922,-1861324095,-1967264954,99350744,32241734,1522633721,1364247385,1448302162,788497896,17908982]},{"sector":6,"data":[-402426530,-953286399,2152198,113716736,8409,-620312786,771751968,551356103,-970063872,18920454,1877475763,777876223,169924515,-396397349,1349713762,551133998,1383389962,1407713971,776041215,169925539,775321051,539231990,775648514,538654347,754941056,1153839221,-953274625,2106374,243281408,771891236,548277899,-1339651282,915090976,-790028110,-15669002,-1557241998,-620093219,-1590798475,-469098281,-164737163,18883590,205260916,41239415,-164708302,69215494,205261940,201590900,406597490,-796251273,551133486,561374218,-1590759286,-469098277,-930474123,551395630,225829898,1583081610,145817524,-335982616,-1268884720,-402411265,-953222844,153098502,113651200,1509957812,1354979417,76164694,1975519814,1149906680,1008733438,1008301168,1008563297,1311012205,-29062610,1882988556,1631323764,334170740,621707310,116065312,604930094,-970063584,1577123396,1397801816,512437846,1065361446,845116712,-402158876,1299448273,74786876,1165149438,108341564,1030933758,574366580,-2010248075,-398244348,762445963,1877479403,772240130,1128662152,-2010249334,-347912700,76033732,21284398,509440,-398003317,-1993473693,-350217418,915090960,-970055638,-953286652,153098502,-1325419520,-396665340,-1017579404,777409360,539369099,574359434,-398253707,309461039,21284398,1190365952,771826408,538654345,-1959915285,773859894,771753158,538511047,-4980727]},{"sector":7,"data":[1532889520,1492661224,126570691,1946231016,1965177892,586973197,-2010243467,1128482308,-806819605,772240129,1128662152,-2010249334,-347912700,99350997,312878,1354979576,-1959897513,773858878,-1073085302,1609044852,774141184,552863430,-970039807,-346095612,-970039745,643760132,67575,-953273739,35657990,1479142144,76164694,510967818,1946168808,23914507,1179058803,-370457017,538944046,312878,1049177671,1600004123,33597784,-1269823116,-402280193,-1017579636,512577875,163127529,121253376,-498924428,1532576248,777146563,-1073085302,602421364,774664705,973175939,-148500876,1946161159,2088775198,393543681,1631330316,2050756978,1613499767,-4927350,1038616240,772271095,538511047,1482293257,585673923,-401050624,376766547,621213230,-311156704,621213230,158613792,-116987058,1324876267,1405352131,1947024465,1946172461,1946827817,2105550373,510788098,-1977165005,-1014824099,964699652,856519680,160048841,20588099,-119405452,1532562748,777081795,538904262,645934624,1021255717,1010201632,1009939465,1009873964,-2146667232,125116476,977674416,639560640,16940416,-919398542,55413286,192203019,1124074427,1946237478,1022943751,-1017423584,538944046,621213230,108331296,621707310,-1069932512,781051883,-583327698,792468084,1358500725,-12088786,1928976616,-402355707,-346490415,200013838,108343100,621707310,-1007140832,777213470,539115139,1344763136]},{"sector":8,"data":[1465012510,-164428203,12115598,-1943941789,131795931,1499094877,695490591,540444974,512306720,-1959911390,773857334,539106958,1946172547,1912879632,21248520,-336002185,-347716091,1583085803,503759647,113661527,855652229,-1076743223,-2118240570,-1340174848,-220207051,1962934333,-225749484,87851046,233309557,-402396416,-346161116,526343908,1464910599,-1090118058,-987351291,-1405689802,57933884,-1426527318,1600003847,-2128166056,-315163074,638940470,931479168,-1207601665,-907345919,-2063153626,300678967,-29458138,1966537014,113649160,-335595642,1110360832,771771201,2368548,-1372782592,83931661,765953,13345,4097,-1308620000,16777269,536870928,918552587,-1593769984,186648584,3588608,16777728,729089,13477,4096,-16777184,-1308607743,-1342175232,33685514,11665412,229638152,130816,77714,134217728,268566784,134263296,176128,262657,524466,-16771664,1,65536,-16771072,1,65536,-16769792,1,65536,-16769280,798818305,1,-16769024,799539201,2,16778496,800980994,-1308605439,-1342043904,-1308622578,-1341889536,14022,33947649,0,-922746880,16842806,-469616941,3600438,66048,923023068,11665444,-55574515,20382774,16943,-67108864,20382774,1261359,9175218,37892016,121811456,-20480,-1,-1,-1]},{"sector":9,"data":[0,23199744,50659840,1112671097,-1064507253,234885125,303903,787971,244039822,-108331002,-34108593,-1202674445,-883949516,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704,78708751,-789068149,-628299565,74698795,-768878452,-268181293,-947135858,-388771593,-802438516,-1064565645,-522989013,-1030817789,1322289836,1187548077,-31145334,91598908,-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094,-1031072797,-1064385789,-2080863315,292880383,-501415642,16417267,-2129234704,-351272766,1086360796,-276578162,486614544,-339702200,-1950118942,-1962932162,50334262,33948144,1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602,482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,554096,115160761,798363468,799813537,801255351,0,0,0,0,0,0,0,538509312,-953286656,2108422,113716736,8221,-385431762,777870112,552273607,-953271172,1042345222,113716779,993861871,1448563281,1107296185,194242732,-1993410187,1579217422,244002390,-617406222,1965177984,181663234,-1959758373,540884228,540872564,1024095293,91503881,1963539773,1023723034,1459522374,503727697,128250631,-1219600807,251604735,1179197682,1589739337,-1267335414,-396797345,326306579,1409286072,639470374]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[6183501,11534516,64,290390015,595264512,186515456,64,0,0,0,0,0,0,0,0,73216,170,614,687,186515521,2178,2182,2186,2190,2194,2198,2204,2684,2702,2765,2783,2993,92536867,3257,3273,186518786,186518790,186518794,186518798,186518802,186518806,186518810,186518814,186518818,186518822,186518826,186518830,186518834,186518838,186518842,186518846,186518850,186518854,186518858,186518862,186518866,186518870,186518874,186518878,186518882,186518886,186518890,186518894,186519470,186519790,186519809,186519822,186519831,186519838,186519866,186519871,186519929,186520334,186520399,186520412,186520419,186520448,186520489,186520504,186520524,186520544,186520564,186520595,186520605,186520614,186520624,186520631,186520655,186520676,186520707,186520732,186520765,186520782,186520799,186520810,186520834,186521095,186521560,186521947,186523295,186523339,186523402,186523518,186524505,186525615,186527278,186527333,186527822,186527924,186529238,186529281,3472,3474,186531471,186531507,186531861,186531869,186531962,186536518,186536562,186536578,186536583,186536600,186536617,186536634,186536651,186536668,186536685]},{"sector":14,"data":[186536702,186536719,186536736,186536778,186536783,186536963,186537057,186537088,186537357,186537409,186537890,186537976,186537990,186538020,3696,3713,3761,3766,3771,3776,3792,92537098,92537248,92537401,92537469,92537538,92539954,92540158,92540347,92540468,92540603,186538676,92541191,186539029,186539061,186539079,92547990,92548161,4401,4806,4898,5390,92550009,92553430,92553737,92557029,92557689,92558540,92558564,7360,8094,186540252,186540276,186540465,186540505,186540518,186540573,186540578,186540595,186540612,186540629,186540646,186540654,186540760]},{"sector":15,"data":[-1,5881856,1296368164,1482184781,144191576,1380141389,1179603791,1480925268,1145979216,1293960261,1380928837,1095573593,1162297678,942874706,1593991990,1879203586,1593990914,1593990914,1593990914,1593990914,155394,0,102669312,1381061456,-397060266,158531772,-402288710,-1779892017,-1324167936,-1931422970,767765451,-796194304,-1014051956,-1082130247,-410844922,-1194382338,-218348974,-1955601489,-253328393,638643843,15489,-2128155275,186516092,958850421,141691988,-402275910,1256915075,-268122330,1153902080,721420290,-754667010,63671534,15788275,18475091,-343684212,-1898213872,-1943078205,771773718,5449353,-883468549,378416890,-1959919531,-83864794,-503235240,-189528971,1599936205,1532582494,-1658910888,101107502,771823360,5447305,1426492462,817154816,-1557257779,171704407,54267251,91687282,1913322624,-104597502,-930327869,-491071346,-855002110,162814497,-953278003,-1543501818,387073,125123,1048784587,1929576535,1444856577,1381061456,-239460594,-855002107,11976225,449700914,28629643,259331789,449700914,-227224773,1946283651,854190860,-1273573916,1964428545,1532582646,-1021354408,777211934,5447365,214983,1086884993,-955234423,3655,870342,-887138213,12256855,650350320,-1491327,443892531,-1073285330,1962934808,-201279471,-661973299,1977745725,-201148411,1594300109,102650307,-919382186,-772286066,280936846]},{"sector":16,"data":[2146048,-1477194101,115868532,123625216,1354979615,-776938060,-997563162,-5218074,-1017617178,1381061456,102651734,516239100,1200226387,1930247170,-523134945,50346430,352268016,1394525486,30179328,117655433,1516134175,-883401895,-2135686224,870706169,-1698432832,186519781,43582403,46013783,2143573584,92939790,1762015790,-1743817982,-422449013,1788149550,1589654274,61915992,1204256948,-352321518,310346226,343212038,621135654,1170679296,638097410,280007,-1010814208,-2135686224,1198023,-2091859200,1963070079,-526307831,92874242,61915992,1204256948,-352321518,243,0,168632580,1380141389,1179603791,2017796180,1684955504,1293968485,1919905125,1632444537,1701273966,942874738,1444945974,1769173605,874540655,775107374,223884848,692267018,1886339872,1734963833,1293972584,1869767529,1952870259,1919894304,1634889584,1852795252,943272224,824192054,221264185,604638474,1983979552,1634494817,543517794,1634760805,1684366446,1835363616,544830063,539893806,539893806,539893806,539893806,538976288,1112219680,168626701,1886930212,1701080673,1701650532,2037542765,1919251232,1701013878,1853169779,1767994977,1818386796,220212837,604638474,1229725728,1296379725,1702240339,1869181810,539893870,539893806,539893806,539893806,539893806,539893806,539893806,774905888,537529648,1953453088,1696623713,1851879544,543450468,1869440365,1881176434]},{"sector":17,"data":[1936025441,773860896,773860896,773860896,538979872,807411744,538970637,1767994945,1818386796,2019893349,1684955504,1830839397,1919905125,1634738297,544433511,539893806,539893806,538976302,221257760,1411391498,1818326127,1851877408,1936026724,773860896,773860896,773860896,773860896,773860896,773860896,773860896,538976288,168636448,1665212448,1702259060,1851877408,1936026724,539893792,539893806,539893806,539893806,539893806,539893806,539893806,538976288,537529648,1734430752,1919295589,543518049,1835492723,544501349,773860896,773860896,773860896,773860896,773860896,538979872,1162760014,168632352,539232781,1953453088,1965059169,1919250544,1835363616,544830063,1767994977,1818386796,773857381,773860896,773860896,538979872,538976288,222448416,1277173770,1701278305,1428190323,1919250544,1835355424,544830063,1668246594,1986076779,1634494817,543517794,773860896,538976288,1260396576,537529666,1886410016,1830842981,1919905125,1953702009,1769239137,1629513582,1701995620,773878643,773860896,773860896,538979872,538976288,168632352,1159989773,942886221,1869488182,1852383348,1818326131,543450476,1852383277,1920102243,544498533,542330692,1936876918,778989417,168626701,1296909604,540424243,544501614,1953721961,1701604449,539828324,1970499177,1667851878,1953391977,1835363616,779711087,168626701,1701990436,1629516659,1797290350,1998616933]}],[{"sector":1,"data":[544105832,1684104562,774778489,220466442,1296909578,540424243,1986622032,1734700137,1864393829,1634887024,1852795252,1920099616,589329007,757102712,1698957837,1769235297,1702125942,1296909600,540424243,543452769,1953394499,1702194793,692267040,544370464,1866622322,673215599,673196354,1919885379,539574816,220471359,1296909578,976631859,1919833376,1987011429,1650553445,1881171308,1769367922,1701274988,1886330980,1952543333,544108393,1869771365,2015567986,539828344,1936028272,1313153139,542262612,1914728308,1869570661,168633460,860704069,1159738936,1885692792,1852795252,1920099616,589329007,757102712,1701998624,1159754611,1380275278,544175136,1868719474,220492911,1296909578,540424243,541150532,1717990754,1763734117,1869881459,1836261487,778857569,1681989664,1027874916,538996334,1634886000,1702126957,1851859058,1701978212,1953460066,168633390,860704069,540685880,541150532,1701080941,1953459744,1886745376,1953656688,539911269,1701990432,1159754611,1380275278,544175136,1868719474,607024239,225998968,1296909578,792082483,1684957527,544438127,1702129257,1667327602,1634082917,1920298089,538979941,860704069,1998599736,543976553,1634559346,1864396393,221144678,168633354,860704069,540685880,1650552405,1948280172,1953701999,544502369,1634233925,1684366190,1685015840,1767317605,2003788910,1969496179,1869881445,1935761952,1701650533,2037542765,1667326496]},{"sector":2,"data":[1768300651,221146220,168633354,860704069,540685880,1650552405,1948280172,1953701999,544502369,1634233925,1684366190,1685015840,1767317605,2003788910,1969496179,1869881445,1986947360,1684630625,1952542752,168632424,538976288,538976288,1667592307,1667851881,1869182049,1868963950,1296375922,909652813,604638510,0,0,0,2234,2468,2659,2868,2257,2265,-1155640474,-611450880,1929837696,-1965346032,48480732,-2136998098,1533419272,-117328693,-466421781,409929463,41222145,1048576436,1963071601,46432259,48413387,567085492,509019851,59357703,-1036091346,2054422808,-1055374175,2092892896,375043,-1174199320,162792272,1085284813,-926817230,82624516,-1087361011,1202324450,-1582644090,-388949946,79292625,68468480,-1593640984,-388949948,79292625,71810816,-1593645080,79239232,75153152,-1593648152,79239356,78495488,-2096967704,-15156674,-1163850380,81837848,-972878104,-1169686203,162792372,-2094128691,1603646,-2048380044,115917077,-1190848321,-1645740028,360638466,-1090066239,79234382,42919936,410558766,-402291521,1170604755,-340113407,-855002108,-888709343,208994364,410060486,168216064,1709917440,712311100,414989955,-1601761535,407019776,407111227,9798927,-1002536914,-2079391464,113639563,-973006735,603982342,37509867,113671029,-2147346319,18379278,414989955,773223681,415514240,-1592888319]},{"sector":3,"data":[104536130,91560004,410134144,168216318,1048593664,1946163314,1862727459,1962934552,179365950,243468146,-352249745,1864794930,113704472,-973006735,603982342,409929463,460587009,409937539,-90418946,-2065297488,-2048524112,1486684395,410074752,-134187775,1405876683,108331068,-384273504,20709559,116804981,1946228851,528718401,309460992,-1106839706,1048,-1710787328,8012,243279986,-2147346317,35156494,409929463,292880385,410074752,-401967870,175245862,409931395,47873,45373163,1013902329,-161123070,18379526,-2086997900,1912602655,116876818,268478,125042688,2058906,-2133364224,-48729306,410134144,1899921661,427098648,410140288,-2095942400,-31953114,263256732,11568358,15435238,113565,409929463,225705985,11598492,45122790,-341998106,-883165184,-336002636,-152307456,195431238,208863804,-661988557,-13704239,-888459113,116902905,71791,1348881269,-1956247977,1712878622,-1912280127,-1047828797,384352614,-1962745663,-1956239624,29619997,-2128382976,1712324579,-1912280127,-1047828797,216580454,-1056702683,-125107488,227239462,1717503992,-335953064,-662023176,-2065301072,-2048523600,116900699,71791,-1046870411,-1023410165,-1327986093,-1333467647,1535501826,189818563,-2095024650,91554047,-339178772,33522484,-1947400843,-2094339128,695534335,-1956188826,-2095125560,91554047,-336674422,16745236,-1047790731,-2096436241,158663423]},{"sector":4,"data":[1723960166,1483143407,-85198389,655361,65536100,31991568,1397803776,-1957277103,-422490383,872209202,-1937035566,-235467764,141941514,74825739,82518192,28520452,-2084402262,-545324306,254067338,1588211716,1482381658,842084547,909456435,1094268983,1162101570,124998,1364414667,-796132270,-1962931015,-2081696806,-1976692765,-1442032249,2097473923,1532582638,50008,0,116862714,71791,-2144466572,135812622,785344461,410074752,-1274841855,-1943089280,773349142,409020041,386006120,16787085,-1609586673,211426822,251658262,771792258,408362636,1493601326,136308760,1912652264,525363833,251707496,378299817,-1989863325,1779983654,-1956309160,1696098086,408499967,1463222117,1864796184,-553877499,748291956,-352303053,929602053,-1905983416,1696097046,409282187,1962998912,1866367005,376717317,1211175066,23324672,1896269358,-2094137320,18378510,-219675669,252124928,782831521,408884878,1629915950,-970010856,18379014,168216110,-2094128128,-31953114,-638877516,-849936456,62567,0,0,0,0,0,0,40501844,0,0,0,1716736102,116862545,2103407,8750351,1912686056,-668987526,268379494,1714290688,410256907,-1328012785,1718675072,369168174,778442920,-1340210929,-1071640808,68966,571441152,233499328,683147448,-671084800,1032243,-919378224,-1949228529,-1194226468]},{"sector":5,"data":[-661782520,81903974,13241993,283754854,13373064,13577864,-1912551240,-1327264816,-1200560640,-661782336,-527515506,1727588494,1483103065,118810819,1728019177,146297680,650153472,2958976,-388788995,-661977222,-1912581960,-1899983144,-1897886000,-427773720,-1071640720,-121498,571441151,242412224,254672896,417668609,265822223,-745613278,-1912602440,-1899983144,-1326936352,-2089753088,-31953114,1527182056,1354979430,1486639443,1343225637,-388789091,-661977314,6999179,1778385000,26624,6815850,1744857600,6946816,1358981715,6816362,1744857648,6946816,1712249192,1863222223,-144309992,35175942,1946157056,1862727435,1962942488,1501187,-1017619623,1714347956,415106807,2,95688308,-575380757,116876846,137406,74711040,1357579956,116876846,530622,91553792,1962954984,-422465475,-144298396,135839238,1962934272,3926021,-997578635,1714315494,415106807,8,652739957,-1340902144,778364671,-1106839706,2072,-402426624,-1007157231,520040018,190455394,-134056768,1371797955,1692715307,-85982684,50009,0,0,7340040,243281658,-853534634,16054817,1,771753448,262156031,788175952,409931395,-2124009920,-2145862130,-1342177280,-1333467633,-343546368,-1017602816,0,-256,255,0,0,0,0,116862464,71791,-1040835212,-2145881025,410256124,1946418304]},{"sector":6,"data":[184320019,-58716556,-351702005,777676290,411709183,-2124000666,65506,-222687488,-2096926201,-92075838,786592522,379785062,-646770735,252232950,771755141,-712885657,1979711503,772467656,-545113497,1979711503,1717200572,1716610643,106325586,1443790894,332202264,-13698404,1914210846,116796940,1963006038,-794808601,1583744783,1499880038,46816102,0,0,0,-1662219435,1971453056,6823461,116793088,522191995,-2144462732,68703758,1347145117,1183275164,33563910,1476806153,1714343773,412761731,-1660455936,788475485,1570576538,207,0,0,0,0,0,-1661337600,1955069056,-1996718060,-58706572,-2143062848,-2079371268,-1058471789,116862464,71791,11895823,1443790894,-845348328,-326413035,-2024235952,2426438,105253122,-1647354536,518818645,520093800,-2095536479,536741478,1714343773,415106807,256,1714322292,415106807,512,-13734027,-1676112354,643190886,1997029251,-533295831,-1956239856,-1989792249,-1956239868,1714291783,637813897,772294539,-1962392439,-1899066146,1736451782,1717476101,46832984,116862464,71791,1714300788,415106807,8192,1714296949,415106807,2048,1714294644,415106807,1024,-404225163,-13722115,-99054034,1862727470,1946157336,646131209,-386000785,862387662,650153664,27042662,-1842413778,24,0,0,0,1989804032]},{"sector":7,"data":[-402634702,1708064769,409937539,571646,258392206,1712873143,637854657,13246089,283885926,-870414298,1049110016,1586168015,13154324,1183563918,48988944,-1962440410,-343733178,126428674,-2096609653,-1993997589,-1223727609,76244964,48988964,-1962440410,-1553653690,1183520855,1503880476,608602904,408658789,1697138315,1696095651,408880839,-1989869368,-2095554274,1634075332,-1905959578,1696096022,409020043,1710989544,408362638,1493601893,646866200,-1905977253,-1021813458,0,1744830464,-1458634560,1399214694,-1912569670,47834,-759754906,81969510,207522662,82035046,140378982,1211078554,1717265920,525363802,1962934333,373195540,175505152,-1173395867,169393702,79168371,2124637440,512320792,1989810304,1694517298,918163302,1930041534,571438,862371982,33340379,82035046,-903968474,-339646976,512239120,-2010775348,-1207906498,-796000056,-152509557,-402396166,1617362621,-930347490,-1064380274,-1961328991,-971472866,18379014,-1578872747,-468536670,313762337,-1578762064,-2135940634,669544678,1492874497,1962934333,101694741,-1090492487,113641012,-969928011,772978182,20802027,-1122667264,884541126,115392256,313853638,-1241070052,1340866322,1962934845,117161245,-1090501959,-1014298844,-1090471192,113641336,-971238731,-15550970,54341099,-1122667264,968427326,125353728,313853638,-1241070052,334233362,-1190758467,-1413545906,-1257847290,113646610,-1946217802]},{"sector":8,"data":[6416579,281874356,-1206733662,281870339,-1291517766,318879751,-386264883,-76283774,313919034,104473460,-277540171,-1912586056,1913047000,-1342177280,-344922481,-436162560,8513649,1692860080,-1595657484,281875124,313696506,-1281318426,-1339955694,1567680000,1634082567,1381060815,179950131,82966272,-2147121104,1434988738,1482250753,1381060803,855640761,200406994,1376089280,1526722280,-2010070400,1499088661,50008,0,27813092,484974196,-424824832,1012982884,1006924671,-1341985920,-397370368,-1364197369,-1655151386,-919383613,44590308,-1017513248,-889191960,252059232,-1666707552,-100655896,1928904168,823171602,-1360527288,267951609,127995817,-1648140001,1358228473,1460018771,-322901930,1863222062,-1269620712,26631,1646198559,-1072997602,-2094135691,-552046810,-1896873800,1048651456,1127481321,1714296693,415106807,131072,-75429003,91611649,-839646792,123690518,-1017619681,1862727470,251674648,1358967173,-919383981,-1444357325,461508601,-617398016,268499329,129241719,1646198574,1975520030,2078822885,1543234297,1612613934,1499158558,116862659,4200559,3376399,861098320,-110171959,16351553,528944912,772256768,509746943,-378159093,1614709550,-2079391714,-1959919606,-400662514,-69011146,-1017620133,571422,-478095218,38243320,-1056669814,-406846232,50377476,784539587,411184895,520040092,627447942,-8388609,1862727470,1946157336,116796942]},{"sector":9,"data":[1946294387,878086,-822050816,-536801456,1476395433,164879,-872887303,0,376378991,376772207,386668166,376378991,376378991,376378991,91687996,-102168718,1720693760,1711677131,-326408608,147374438,134596748,98078208,-1064435704,417907046,352267879,1450053,123823616,1741383199,-1893907002,-1223727421,1729643526,340101478,491112039,1048822528,1946163268,1242467193,1712907032,1211545359,1718035992,-1255359985,0,1715499785,-1947278778,-484946418,-1223727592,639126582,-1173395865,46380,1929969664,-498702814,1376685038,1714938648,1345763087,1718035992,-1255359985,0,1711567625,-1121722,639124494,-1173395865,46380,1711931392,1728898753,343247206,491112039,-966278400,-1014489787,216711526,258369318,9778362,167772160,1730549363,884608870,149,-966326016,-16769723,-1021819898,491112039,-2135899254,-2090438426,1718028484,136594631,143360,134596748,265850368,-1553543136,862329049,-803074112,1725440015,1048357,101410304,571414749,17786584,1712899350,-853671665,369102616,989397,-1340549346,1718674944,-427773745,1854629488,18900992,16825367,-1912553288,17786584,1712899334,-854720241,100667160,989397,253286158,2480160,-576493840,-643733992,-803074280,-1912600392,757498072,-2135360256,1725468160,-668987565,268379494,1718026240,-478077301,191295488,-668856381,1183540839,-1956223228,1718026816,241088271]},{"sector":10,"data":[1744364416,85484672,1734043389,71732070,17786726,-1956223216,1734740038,1729626383,206962703,1577062247,1728080398,1729394431,276234086,1894121648,52070,0,64,0,0,0,0,0,0,0,0,0,4,0,0,0,0,16,0,0,0,0,0,0,0,0,65535,0,0,0,0,0,-65536,0,0,0,0,0,0,0,0,0,65536,262144,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16777216,1380141389,1179603791,538976340,538976288,538976288,860704069,874526264,540226350,538976288,538976288,3]},{"sector":11,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,385646748,87830133,104607860,1714300533,415114881,-257,1899921454,343146776,168216110,-2144451328,18399806,-970062219,603982342,788475549,-1023993706,-193658879,1899921454,-327941864,1912743144,-144298461,1621510]},{"sector":12,"data":[1962934400,116862481,71791,-970057099,603982342,378391275,82511802,134878861,-1191042072,-1192558591,168216110,-1667414784,-1776353490,45633560,-2144404992,-2145888754,-816307763,480189530,-774337709,83592163,788006515,474257407,1714342747,415114881,-257,1862727470,251658520,-100651388,1443790894,567115800,1863222062,1617322008,1049429774,179903210,16640000,424412813,-1293393562,113651200,-131858422,784595395,409929463,-2062614527,254673051,409937594,-1870459130,378285568,-1993467809,1746428198,-1927872004,251723814,111153064,-806815202,1784247024,-1066918064,1705578240,409147020,1697024357,391670296,1730579301,1318296088,-1905983416,1696097046,409282187,278534258,-402634703,611512725,1863222062,-970063592,1157630470,585635563,113651441,774111242,409937539,125549310,567085492,1864794926,119521048,-1458593521,1595313710,646655512,-104654751,1355020739,263256732,11568358,15435238,1724078237,310346579,773813510,1948158822,-1014929896,4096,495543846,572427054,654018073,1711562121,61915995,1204256948,-352321518,-561251086,1712317315,-1912279359,1266647262,1921322753,2005624320,-561289690,82559334,-427566194,-984211953,-661909900,-2079341045,-1957298091,1722640094,-2079342459,-1956249549,-306092312,-440310256,-1223727612,-368875824,16613734,251660800,1711279235,-1985149047,-1014823865,1238297350,2264079,-341464218,-566534460,623631]},{"sector":13,"data":[-2096658074,132842692,1713331856,1712211081,-1419329485,-997997576,516159750,1364349782,-1927344560,-1155847114,28975104,-1194773760,567110656,492047,1052039307,1492656589,1583045209,508609311,162799374,1478435277,195,0,0,0,0,0,515506176,517152467,518594281,518594281,514989801,514989746,514989746,514989746,518069938,65740513,-1668247408,-147959450,18378502,-2146208768,242422524,-860483738,-13736089,510283044,1499856896,788475549,1714298470,410664577,1048576,1499917428,520040093,28974694,774040320,2050916710,268435480,-338463744,1048784392,1946163320,-2144404791,1075336718,1499865549,-397161571,-1014300662,-397163685,-1017446398,866127697,786117568,410521227,-2140872306,1291845694,-2140927884,1509949502,-2090588555,318,56889461,1677722398,198203,-1587280781,56885251,1090519822,4096100,-931833344,-1017536241,-4566448,771863807,509746943,192200715,243492398,-133949250,-104114086,-1269761301,520039938,-1073013150,1714293364,415114883,-883361541,1358687225,646145582,-1191372610,801981184,594903100,102650451,-851242824,47151,512350350,109846114,-2090459548,35175950,1511983096,-104114085,52056,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]},{"sector":14,"data":[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]},{"sector":15,"data":[]},{"sector":16,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65535,37376,65535,37376,65535,33280,65535,37376,65535,35072,65535,37376,1023,61952,67174399,37376,65535,39424,65535,37376,65535,37376,4095,37387,-2147467265,37387,65535,37386,65535,37388,65535,13603328,65535,0,65535,0,65535,0,65535,0,65535,0,65535,0,65535,39424]},{"sector":17,"data":[65535,37376,65535,37376,65535,37376,65535,37376,65535,37376,65535,37376,65535,37376,65535,37376,65535,37376,65535,37376,65535,37376,65535,37376,65535,37376,65535,0,65535,0,65535,0,65535,0,65535,0,65535,0,0,0,4718736,36352,4718763,36352,4718799,36352,4718873,36352,4718892,36352,4718911,36352,4718938,36352,4718966,36352,4718993,36352,4719034,36352,4719054,36352,4719074,36352,4719094,36352,4719114,36352,4719146,36352,4719214,36352,4719255,36352,4719274,36352,0,0,4725910,60928,0,0,4729904,60928]}],[{"sector":1,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4727483,60928,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4718592,60928]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65535,37376,65535,37376,65535,39424,65535,37376,0,0,0,0,268435456,8192,0,-65536]},{"sector":5,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268435456,8192,0,0,0,0,0,0,4718763,60928,-268369936]},{"sector":6,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65536,0,0,0,131072,0,0,0,196608,0,0,0,262144,0,0,0,327680,0,0,0,393216,0,0,0,458752,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,513023636,516562583,533798768]},{"sector":7,"data":[551821528,561652024,571154881,513024582,0,0,0,0,0,0,0,0,0,0,4194304,64,0,0,0,0,0,0,0,1047552,0,0,589823,0,0,0,0,0,268435456,0,0,16515072,1,1073741824,0,0,168430090,-724249600,202116108,-656877568,-2105441401,-1970697472,100925952,-859257856,117768961,-825571840,-771108856,-703867894,-603006451,-670245361,75695239,75629697,76088459,67175562,67437571,80086023,80610506,81003530,81003530,81134603,6680]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16711680,-256,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2147483647,-8388609,-32769,2147483519,-8388609,-32769,2147483519,-8388609,-32769,2147483519,-8388609,-32769,2147483519]},{"sector":7,"data":[-8388609,-32769,2147483519,-8388609,-32769,2147483519,-8388609,-32769,2147483519,-8388609,-32769,2147483519,-8388609,-32769,2147483519,-8388609,-32769,2147483519,-8388609,-32769,2147483519,-8388609,-32769,127,0,0,0,-65536,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,255,257,-16777216,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089]},{"sector":8,"data":[-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,-16777089,127,0,0,258364774,1349184695,12609567,-161109745,135812614,-58707595,1713075286,8435792,12116110,-524196352,210810896,104556132,1483080092,-2140861580,-283617754,1844012906,243295501,1695553622,408299136,410451959,-2145618177,544530172,804599,1695314946,-1106839706,16408,-1711246080,4731692,79987706,-815375002,1211590810,79987456,-815375002,0,0,0,-326412954,34490103,1778742272,219080960,-1207959365,-1209401343,1711323154,-387151019,393350984,34490103,1778742272,216983809,-1207959109,-1209401343,1711323154,1724868189,-135492779,134726,40502644,-2096312343,1967655038,75399441,175255174,-1845199231,-385648850,484978295,1711567362,1791977053,1716741634,8436566,48670,258399118,-1050216777,837354726,1778412043,-1957337600,244716,-369098312,12063415,6946922,-326412954,-1207958341,-1209401343,1711323154,-135492779,134726,90834292,-1156816919,28835845,314042880,6947000,1432748138,1190653067,251658770,-1157376635,28835846,314042880,1432748216,1190653067,1946157582,-385390075,129698856,112640,-1206732822,-1957337600,1711827692,-1151965613,-1105330048,-611450880,-155775130,82231654,-1156932631,28835848,314042880,1432748216,158002315]},{"sector":9,"data":[-1157564695,28835849,314042880,1432748216,174779531,-1157569815,28835850,314042880,1432748216,191556747,-1157574935,28835851,314042880,1432748216,208333963,-1157580055,28835852,314042880,1432748216,225111179,-2097109271,1190593220,251658770,-1157422715,28835853,314042880,1432748216,241888395,1449546598,503349435,-1912602434,-1223727397,-423532810,-752873724,266013542,520747908,1533435494,-402471805,124914806,-998023834,-1144035836,28835854,314042880,1432748216,258665611,1449546598,503349435,-1912602434,-1223727397,-423532810,163506436,-1207955525,-1209401343,1778432018,1711303168,-1142125739,28835856,314042880,1432748216,297528459,112640,-1206732822,1716741632,8436566,48670,1725664848,1727444751,1728374465,77499238,1728053273,916163430,-2097151994,-348443413,-380107660,258345312,-2080481609,1731070187,89988235,-1996488701,525925982,1533435494,-1023299645,-352200959,369229569,-1946003710,1642352642,15401195,1642466316,15401195,-215744277,1642357222,58048680,-104638216,64491,0,0,116917648,93324688,115148176,115345123,93324688,93324688,93324688,166921616,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,140773476,140773476,93325412,93325866,93324688,93324688,93324688,93325846,93324688,93324688,93324688,93325888,93324688,93324688,93324688,93325856]},{"sector":10,"data":[93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93521296,173279818,93324688,93324688,93324688,177998431,186125017,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,190252432,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,94045675,93324793,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,93324688,104597027,110560892,93324688,93324688,101844482,107611734,93325745,163711416,93324978,93324688,93324688,93324688,93324688,93324688,1449546598,-1912600389,408849371,-1996168255,-1962880482,-339666850,-734099452,207522560,-1996168255,-1962878434,-339669922,-599881724,5290752,-953760882,4614,14203648,1988877198,-1222866424,786682112,54568959,-2096770583,-1201143098,1187730944,102002307,-1912549189,343313371,-2129633653,-50392986,-1962648439,1552485470,140413698,-1996307581]},{"sector":11,"data":[14204444,1602936462,-1040239873,951976675,1725861376,1988704139,-289315320,209094928,1533435494,-998023834,651126276,1312455,-1991901181,1927874678,113714693,262164,-1991839509,861079670,605874395,1542193523,-1991848213,861079670,604825819,-318671976,1404955483,22317650,-964430286,141986050,-202843341,-335449309,-1528079526,1418351187,-2081017343,1988690630,-388287736,1939350490,1532685569,-1991865621,1381173366,-402652741,24323014,-379888914,-1991835786,-1152186250,-1276641279,-285117661,-10163877,1418351187,-2081017343,1988690630,113416,1931713000,1532685825,1409239529,22317650,-964430286,141986050,-402652741,24322942,-379888913,-1991835858,1190594678,1946288144,-1066918373,-2124013824,1621518,520093760,1533435494,-998023834,-78289404,65665780,-21960193,654224873,1181431,158599168,-1991899633,-337049482,-23533058,302446374,1963458560,22931715,637947986,1185419,-1912538949,478824131,-478086262,821788728,-75493004,-1157204712,568918017,47873,1174477801,-1979156855,-1057259297,12288783,650634112,133308040,647008440,-2146962525,225707771,-2134842496,326385915,1971387264,637831960,-2096630877,1988690630,-1978995960,-207477244,1988707847,-1948284408,-494854074,-92077828,1949137924,284853023,964436340,2084633219,-1962576884,770385990,-349944181,13678632,1089198222,-1912547144,-1959138344,367729734,-2134383744,-445364485,-2146966656,-579599621]},{"sector":12,"data":[1946418048,-1152186664,-1014104056,-524167029,-626842108,82559232,-599881690,14202880,123459726,-1947432107,1586169974,275680012,-1879012546,1430711184,-410981237,-2143390713,91554815,-351517045,100630580,1183516021,-2144670960,91555583,-351779189,50298912,1183516021,-2145981690,91555071,-349944181,-1060143092,1010731046,-1962874104,69056,1576009999,-379955193,1476918678,73304410,1533435494,1586192486,47108,-1206732822,-47388416,302446374,252182528,1711357828,-121960880,-1966895616,512239132,-1975121634,-2130998756,-2010711837,1175002910,1426617993,-1977160565,-2146886114,108143867,-385873989,-411041552,16744455,-75480204,-2140244960,1769218555,1963196288,1183540742,-2144408820,108332543,273058662,-8379413,1711699206,-351779189,83853336,-1956247947,233514054,650170240,149700232,-1956249365,586907840,-2144989579,-1073144002,96148852,9627904,524189734,41403145,-2144988181,-955703490,-14349451,1711729631,269,-1071640704,1948449664,603684966,-75472524,639137056,153042560,638219456,153042560,-352160768,-14326266,-2139095041,108332031,205949286,-8373781,1711699205,-351254903,117407790,-1989802379,602605638,1962999680,1183409670,-2145850620,108332287,608602470,-813691413,1049110208,15403402,1572899174,-380082681,-2090992562,117639278,1711562377,1717462616,-1956616613,12059742,314042880,-538378056,1988708091,-64427768,302940966,-381287936]},{"sector":13,"data":[-2094597181,16781838,-71702202,100925952,235670271,-1,-1,-1,-1,-1,-1,1178878528,1179451208,-75490166,-1223134425,-1618334208,-75494964,638350591,1183361,-13760512,-385662809,-2094597254,67113486,-77207226,302940966,-381286400,-148440229,4614,-385649656,-2094596562,268440078,-79304378,302940966,-381280256,-2094597317,1073746446,-80615098,302940454,1174437888,1190864617,-1157073271,-611450872,-1055105397,512296163,1586168018,82559260,13909640,637587643,1181431,-1014104063,-345242763,12319756,274629892,-201522828,-79369876,141986118,-1912600389,475958235,-1996168255,-1962880482,-339665826,-734099452,13679360,302446374,-1912602368,1828943299,-1141109525,1585775616,-50236400,132738547,1988708091,-1151967736,-611450872,-1054843253,512296163,1586168018,82559264,13909640,-1912549189,116860635,65554,-345111691,12319756,274629892,-201522828,-87496338,141986118,146495070,-1948545536,-473882530,-769750780,543066880,-2012943423,-1157573570,-611450672,302446374,1962934528,216755971,67156988,1947229829,1878260993,-1946514967,-31780,-2093604236,477429567,335988518,1711277568,1717266014,79987549,-326412954,339148582,36628736,302446374,1946157824,45629697,273086208,41157632,-1959341833,117519927,1962933891,116860428,196626,54591860,-97457672,6968678,1432775403,1693122922,40523110]},{"sector":14,"data":[1432772331,1491796842,74077542,1432769259,1290470762,107631974,1432766187,1089144682,6968678,1432759019,619381098,40523110,1432755947,418055018,74077542,1432752875,216728938,107631974,1432749803,15402858,1399254155,179046,233504768,-611853433,-323547290,862344038,508978907,-1912569666,48862,-155775130,82231654,513575783,3984,-2097127935,1190593221,251658766,1728110469,-1229320346,6334,1736576782,753697537,1714220419,1716676176,1713921675,1714177675,1727815305,1711294089,1713397387,1713653387,1712376769,-1980217719,-527632802,-1050229876,-393473824,744393062,675711334,-2037684633,6404,-1735694745,1590,908651395,609717094,609651046,1468753462,1451845152,-1956235744,-1989796777,1714822230,1712871307,907564681,341281638,341215590,1468753462,1451845136,-1956235760,-1989800873,-1799746474,-1223727601,1451845330,47620,139888998,-1089509785,5776,1732404736,1478793,-1989738496,1593500,1718026240,104245385,-2090401792,407168,1516644352,-998025114,-1956223230,1639582,-1149212928,1487,1717073152,274642703,-1996035197,1716523102,343324431,82231654,1728333451,1126040713,138840899,503613799,1183531843,76113676,-50387682,1477199497,1589055334,-1956222978,40220,1586036736,-339646972,140413200,1533435494,1711457411,-1144035747,-611450800,-1157175320,-611450752,1399233003,-326936986,8436482,12508046,-1223727616]},{"sector":15,"data":[-423532810,-9770748,-1956229018,-1989739450,-1956246458,-1989740474,-1956247482,-1989741498,1483080774,-1962621565,214270949,1728005097,1793887061,12609569,258320655,408303290,461508358,-1173396224,119035446,754191,918163301,1929713750,-401609835,65749016,-2092391960,1566966468,1348915046,-2135403674,-1193767424,258342912,-1050230601,1718027488,419725451,1718026240,379109135,1728053248,-1397289114,6232,-1989719296,5784,684032768,-1467390361,1590,1483103078,1711457411,616858461,-1592809201,-815390969,1349145958,1432758507,585847146,1382700390,1432755435,384521066,1416254822,1432752363,183194986,1449809254,1432749291,-326412438,1449546598,8437278,12508814,-1223727616,-423532810,46498564,16613353,0,102654054,1354276879,-1143435776,-1014103784,-1912569671,12630753,862382734,-803205157,1725112847,-1050224501,1730549480,8717559,16777216,1718318336,404666127,258369282,509416631,1728053250,1018629990,137821,406225664,-771030782,1730547316,-1794848922,0,0,1560578407,542,-2116345841,1727004899,-880550141,1718035975,8723593,1711276032,219603137,-1184497657,1024,1722509052,1048581,-118038016,1734637803,1712556902,35788425,639535462,1718035970,8721547,-2130706432,1727004898,-1050229877,-1050277152,1718032104,1719796877,1677863587,33617767,1250234112,-2090376192,1586168328,773753104,273580290,1719730432]},{"sector":16,"data":[1711144720,337546086,378234393,1734607416,139691878,806783334,378234370,1734607420,206800742,873892198,537917442,-618524709,520593679,-104636058,1348923627,1382437734,-1609628130,-1912581960,8436696,-1061624946,1726516736,-2023309261,1711417862,1316274187,545482596,208044541,512491263,-478084562,1577648896,512452108,-1587150298,1734607394,1694730598,337546086,378234393,1734607408,139692390,873892710,1718051842,252466057,571463712,772208600,1962999810,-1592788735,1516642055,1483103078,1716676291,65409,1282605072,344811111,-92183025,524288,1348877942,537875302,-268425768,-1956223194,-268425984,344811111,-544512497,182698342,384549222,182632806,384483686,641913643,-1744504985,192151554,-210417085,1483103078,1724078694,1712120769,91676459,-338982042,-1014929685,4096,1727726438,728167171,1722906571,-722745037,535318630,-2090441472,1024062,12063604,-524196352,-1543074544,1718051855,268431779,-1017616896,1365659750,8436070,1734606848,-1929082010,-4,76113511,147597,1726734848,-1017616807,1365659750,8436070,1718026240,1082983563,1677721602,76113511,-883,1726735103,-1017616807,0,0,0,-336186538,29251076,51570688,209048075,79987850,79987910,-1017186304,80258176,1946462462,-930316283,-1470234364,-117279483,243907,-369098565,12063415,1144425814,1443228420,75773581,1359139816,527749643]},{"sector":17,"data":[-511457142,-2096766205,-69070650,91554984,-352085784,205846282,57999361,-117250584,1455644249,71579277,-1923742229,-402357194,-771030372,-1974393996,65110984,-964491805,-1459887600,-402098940,-1394081094,-402199805,1458045820,1582954499,-1017185853,1144425814,1443228420,75773581,184706024,1362523346,-511457142,-2096766205,-69070650,206340953,207913736,1948297359,206340868,1963501600,207913740,1946462455,206340868,1947248656,206340868,-1017185984,1144425814,1443228420,75773581,184686568,1361278162,309584,141885864,-402506264,116065071,-402456600,-964492583,-488058864,1499003111,1593426782,-164407613,-1101658901,-504889343,1959922433,-964377080,1593311236,-1017185853,263214672,872392168,1342893046,-401625002,29294497,1959922432,-964377078,-2067398652,-117439292,1455642718,71579277,-1923742229,-402357194,-771030628,-1185869708,-1847066620,40626178,-502217085,1593399797,861361859,1144425983,12970244,-13412522,72627853,1442888425,-1912655017,-385588170,1465254063,915275571,-1528232844,-1084795392,915210241,-1729559404,-1084795392,915210241,-1930885980,-1084795392,915210241,-2132212556,861361664,1144425983,10873092,-13412522,72627853,1442880233,-1912655017,-385588170,1465254031,915275571,-2065103756,-1084795392,915210241,2045445268,29316950,-1539928832,1450109700,114519,78919309,-1923718165,-385596362,-1923743603,-385592266,-1923743611,-352033738,915232382]}],[{"sector":1,"data":[2011890804,-1808364202,1450240772,77870733,-1923716629,-352013258,1716545122,503730769,11200519,-962742769,-961183740,-771030780,1686180468,-956367092,-2013265084,206340352,2062221824,-352067352,1716545141,503730769,8054791,-962742769,-961183740,-771030780,1686180980,-939589876,2628,-2130165624,67112012,-1847047957,1464068867,1365659750,119408210,184567784,-2129431342,-16839580,214214,-2130557816,33557580,1157046507,1946288140,38046213,258348267,1728990391,-527321585,-335544315,33965098,-761134524,1510471684,1483102566,-761242017,1364247300,134800470,-1929067514,-1190902730,350748676,147907584,-1929067258,-1190882250,82313219,1482251776,1946265795,11528195,-804206973,-1007492376,252076134,17593530,646120819,-134478386,67489286,1712944128,-16221055,1962934527,-1223727601,1711592198,-2096610167,-83505626,-150892568,265284,-479777931,-145660376,2100292,728105844,56617153,1499862387,1074545911,1715827968,96865851,-823645577,1711467264,205846361,57933856,-390003866,-639106645,206340865,239897345,-523042384,97453576,-1017027065,183091558,-2096119421,-645140255,-369098056,12063415,-1157626952,-1209401344,1342224402,239897425,-523042384,102813942,-1173420593,1929383028,1958350602,57868556,1493222120,1381024600,804087,1696166913,-1106839706,16777240,856519680,239373248,-1174368243,99287064,201339368,1482354180,-145600317,16780356]},{"sector":2,"data":[1717901684,415106807,65536,-1070396044,219038859,414843040,-402265344,-81526778,-1017619730,240946003,-795363825,616794629,1724078851,1716676177,509044310,-838404346,1946157317,-838404336,1946157573,-25237499,-335811605,243530472,-2096953906,-150860724,527428,1575491700,205846272,57933856,1723935590,-1956188021,-402273730,-1587150351,520553930,1583767398,1499880038,1716545219,1716676177,-145267114,1051716,635967604,205846272,57933856,1723935590,97138315,-386364570,646119865,1727792590,1717462623,1717134938,-1956199592,1284204036,1715561992,16777402,205846272,712311040,68058243,-1167715470,131072,1726075238,-804206399,-1061067032,104556049,158663900,-603535514,4,862372608,205846482,-445382528,1709298022,-1106839706,16777240,-338922496,205846484,359989504,68058243,-781841806,-1070378776,1491128678,71600486,205846467,-193724288,116876901,6334,-562823167,-2125404437,-100725660,116876901,6334,1517617153,861033318,15460571,1555500902,-1749676274,1149896168,1149955588,-1240470011,-1979326313,267257412,99653558,-301448054,-301382518,490624,1157039989,1946222604,344680216,395357,121932288,344680430,398941,172263936,1533434606,1157088088,1946222604,239373215,417734668,15401195,-435927926,-352261350,88377856,15407846,1149894891,-350558714,-1962874112,1074531908,15407334,1149894891,-350558712,-1979651328]},{"sector":3,"data":[451283268,15401195,1381221208,804087,-1979354108,216729664,-1962918680,-1240527268,-335155049,1405311834,205846354,74711552,552272010,-1962925848,-1240527268,-335157097,276093707,-2147134326,-1037373214,-2147396470,-1039994654,1388534618,243043159,-661277169,-620040699,-1240529292,-335155051,1354979935,1449546086,-1207543962,-1064435584,-130422532,-148642969,1946157505,-1540987131,-781807513,29489129,1728410624,-1872255706,-202780314,-1524210073,1711771751,1717462623,1724078169,1716938323,-256178601,1724091904,57071755,-1249767463,1716217344,-259299760,216580454,216777062,-2130298010,639070981,-2063272089,0,175374338,-1956223194,34100,-427753472,1449586688,13009254,1711276048,-1019517376,-1956237705,-406755592,104556044,393414017,83322662,133,1946157568,1718035978,8731787,-2130706432,1727004903,-998967493,1533433958,268428161,1315357451,1959922534,-784636382,-2056898190,1711764930,326431365,-2056911381,1712092658,1248260235,1727138662,1711532866,1181143603,1727015782,108261691,-103904410,133693931,1583767398,-339518618,1716545270,252073810,-1191535448,-1064435584,2064547878,1354244100,-1195340288,-393346880,71581325,1717953586,415106807,1,-2017851788,-527766524,15435748,-1050279701,216404192,15401195,15401188,-528088853,-528088860,1722509052,-1070373205,116876901,71870,141819904,-335281734,283165030,15401195,15401444,-528088853]},{"sector":4,"data":[-528088604,1049471846,-466484140,116876901,71870,108265472,-335248454,-2082152310,15401195,283165030,15404262,48496875,15401195,48554118,1727848582,1722508971,1717944371,415106807,1,62523508,-1050219516,15405280,65274091,15401195,65331334,-1419321210,73678477,1717953586,415106807,1,-2118515084,-527766524,15434212,-1050279701,216404192,15401195,15402212,-528088853,-528087836,1722509052,-1070373205,116876901,71870,141819904,-335280710,283165030,15401195,15402468,-528088853,-528087580,1049471846,-466484108,116876901,71870,108265472,-335248710,-2098929526,15401195,283165030,15404262,115605739,15401195,115662982,1727848582,1722508971,1717944371,415106807,1,129632372,-1050219516,15405280,132382955,15401195,132440198,-1419321210,76824205,1717953586,415106807,1,-1950742924,-527766524,15436772,-1050279701,-656011040,15401195,15451364,-528088853,-528038684,1722509052,-1070373205,116876901,71870,141819904,-335231302,283165030,15401195,15451876,-528088853,-528038172,1049471846,-466484060,116876901,71870,108265472,-335246918,-1981489014,15401195,283165030,15456486,-924581653,15401195,-924524410,1727848582,1722508971,1717944371,415106807,1,-893777804,-1050219516,15405280,-891027221,15401195,-890969978,-1419321210,78921357,1717953586,415106807,1]},{"sector":5,"data":[-1967520140,-527766524,15436516,-1050279701,-656011040,15401195,15453412,-528088853,-528036636,1722509052,-1070373205,116876901,71870,141819904,-335229254,283165030,15401195,15453924,-528088853,-528036124,-1070421146,113642726,-352320314,-436147456,-955857192,1717895172,415106807,65536,1049451124,-2128214908,16780365,-1329581210,-350689740,-469701888,-352261350,-455047680,-352261350,1725990400,869316367,-350559040,1711336192,1712382145,1727840779,1722508971,1420869683,15407334,451150059,15401195,451207302,15401195,-1419321210,128520093,1717200479,1432798040,-323547290,1746882666,-1458634560,97396355,116811259,1963006038,100433935,243467637,1778648526,-252778221,-2079333366,-2124021586,16777187,-718895104,-703166460,81830404,81858184,81864320,-499742657,-485586684,-484015356,258392068,1712879287,1711597249,-1956187389,-289315122,410421508,-1995447421,1694819614,265291462,1048798720,1946158300,-1240504810,1694816030,515051366,-949612591,318470,1711276032,265991695,1913123770,147030790,1724461926,-669076721,1711895300,81530505,81206920,-293107133,82747908,83462026,1728379298,73204875,-167772155,134534406,67437428,84189952,112594790,-922876703,-804912539,-113838577,-2000355836,839182374,-502922524,13926404,82720502,82388616,100852786,-729807644,115654656,81995266,-2012943454,1694820902,112594790,653725648,100861188]},{"sector":6,"data":[-324860699,-1240504828,1694818310,265291306,653750388,-1956248316,-490641720,-905222640,-972145818,1712879109,407287567,81838438,82576899,47718,1927806977,1695052538,408299136,1712122878,96865851,-1956248205,1711654414,-1956200053,-356423983,70711056,100689157,646582224,512427221,243991788,235537642,915014888,378143977,1566966998,1567018854,53094,0,0,1131676220,258367590,1718084791,117204361,117473384,41028924,627445168,255,1159004007,1316,1569416807,-2006501636,-2090394557,184421477,1728410816,17583491,-1017027065,-138211408,1979711426,-1342065627,-968979712,-935949563,113413,855638457,-838404142,1946159109,178691,207979367,280019966,206406503,-1023950079,91553729,-1696001872,-1223727616,62580991,1137141542,-402653174,-1956248642,-91527482,1725051750,3196919,309592064,47718,-144310270,4295,1711502336,1659431633,643331065,193422951,80213862,1946157056,1711386635,1265947147,1206583984,-972145818,-1341884923,255650565,97398458,-1341885696,640740102,193554023,1725401958,180983,192151552,1711493608,97140363,-386345752,1730544424,1711948681,637913761,1133078119,-1010814452,-146697,279970932,258365163,367591351,1049323011,1730545098,209402214,-1023995276,141885442,2072209190,846462986,820710064,1133209382,48883722,179307636,116859627,67022,145753205,-1023994133,158597122]},{"sector":7,"data":[1711464936,1726543751,-836336648,-1070399995,-140505149,1962885058,856731655,16116214,-4780186,637710312,-1223727513,-1276638085,1718035970,1730556927,247654,637534208,239322983,-144310272,16578,1715107072,862373515,-164403502,1348882790,1727549672,326367035,-1989777626,638645060,1284073063,1730548979,1711997286,1717069382,1718075651,1713638441,-338594471,15775863,862380174,1721132736,191285251,1711437001,1716545097,1712122049,1712122305,796129083,1724943206,1712120513,92341819,1734609523,-2062251162,0,-268377471,637651587,1418290791,1730547891,229734,1711276048,1715889728,-1015627461,627464294,4095,1435199079,-1989724420,191238210,637891839,53044839,1730566502,-1341230199,-147102199,-1070463113,-1989777626,-1012855029,-12598537,-1070464139,-1022316349,-146697,279970932,258361835,116916151,67022,112198772,-1779942933,244016641,1730545094,1930115942,-351948796,-837909722,1843921157,-1989728767,-1956246973,637913662,2072602215,46331660,-402230272,-85458574,-1010814218,-146697,279970932,258356459,1307115447,1049323009,1730545098,-401980533,527761723,97388279,393478145,180983,1005062516,-142121471,-2080980760,-33173978,-1329348558,-1023950070,74776575,921374896,-4780186,283361638,-1956193909,16967883,-901870746,-117217787,1133209382,15591434,1730549109,1711997798,96865849,-270005134,-159913984,-1329348558,196133642]},{"sector":8,"data":[-3999805,-1341885185,1715071760,1728034575,-1961827391,-880056615,1711324136,97140363,653853542,172198759,1962977000,1718035992,962988803,1912981006,11069455,-386431130,-1070402003,-1022709565,-138212432,1962934210,-351227900,150700837,-2021643917,1912669468,-2134887910,17112255,-880078731,98818867,-502217853,1351582715,-960297980,-16442233,-1329394256,-1023950068,74776575,720048304,1929968515,1703110446,-1350516980,1912669468,1729459482,1074548099,-617362549,-1014823453,-2080644592,-83603289,-960249806,334983,-1329394000,446808844,24461317,85631808,436616131,1718076165,408794895,82035046,-1008794778,258369318,1711829943,637855425,1929602663,1718035972,1724058507,-1223727531,-326932756,525363716,251707496,-1173396055,35149366,2011695987,-998021381,1717396996,-998021425,-380933628,60100,0,1144425814,1443228420,75773581,-242292655,259314187,-511457142,-2096766205,-69070650,-101600792,1455644249,71579277,-1923742229,1359250486,200370152,-1977715502,65110984,-964491805,-2114199024,-8450972,158664872,91489448,-2146677631,1582954752,915232451,1542128708,1412861270,1448405764,73676429,-1923723797,-352029642,915232326,1072366740,-1539928746,1446570756,78919309,-1923730965,-352041930,915232358,1609237588,1681296726,1448667908,74725005,-1923722773,-352021450,915232330,1139475620,-1271493290,1463610116,1365659750,119408210,200332264,621704402]},{"sector":9,"data":[1283522815,-1996161012,-1310127548,205846512,108266496,-385203062,258404516,1728990391,374150283,-335544314,1475384297,1365659750,119408210,200316904,-2129955630,50334796,-385661816,1157099640,1946288140,54823430,1727032297,239908623,1293192039,1544,121907948,-385661950,61524,0,635838699,638657685,641345166,653731522,644032099,657532700,613754005,613754692,1348871317,861103703,-265099009,116876901,6334,762576897,695521803,-2090411894,71043040,29295474,1724090880,15786881,-1050279936,778503147,607294463,1727528960,1483104091,1533475267,-1017616801,1449545830,1382437734,1432770406,-387151002,1717956576,415106807,65536,18646031,1144425830,1976699652,258369304,8953526,-1972961280,9051780,-2006515712,-689367995,-1098881280,135,-276492543,258369280,8820406,-2124021760,61666,-92051968,-1887170784,-92051968,1717793856,1953561219,-92182999,128,1672207,16417638,12092687,1728216296,-1632235674,136,-2098652442,-384113152,1726480532,1686202114,-10023874,494142632,141887656,1045201767,116066316,1045201767,1084755980,-2123954316,-2146681268,1283548928,16780343,854093547,258369282,8953526,1718026240,1732131981,136266888,512002151,138,206537063,602603776,1728187624,-1632235674,136,1015899751,76048190,-2071435489,35358,1333880576,1711341580,-1640339645,137,862323570]},{"sector":10,"data":[-1635227685,136,1727529195,1717528157,1717266010,-1017616802,1717397241,1717200479,1717462619,1449575256,1144425830,-2037881084,134,-2004433305,0,-1987656089,33554432,-2021210521,16777216,1583749350,1716938435,71579277,-2038003609,1728053248,8947398,1728053248,9012934,1728249856,8881862,1711341568,1449575262,1144425830,-2037881084,134,-2004433305,0,-1987656089,33554432,-2021210521,16777216,1724079718,915236438,-2006514620,34438,-2033817856,136,-2033817856,137,-2033817855,135,1712907777,1449575262,1466323046,-1922674330,1711555638,-1190666109,-503906288,1744341862,1044155750,126576231,244070,-18350080,1717134848,1717069407,1449575262,1466323046,-1922674330,1711555638,-1190666109,-503906288,1744341862,1044155750,1200318055,45704712,-402653184,1499857097,1483104102,1724079718,1716545110,1716610647,71579277,-2054766542,-1184496444,1,1711318248,1717528153,-1017223592,71042852,201532572,91397380,-336936984,-357308413,1007101123,52730884,-402296163,65792684,-1008033560,1348884070,1144425830,-1070373372,-2138666905,1728053248,8488584,-2006515712,33414,-2037881088,131,-2038003609,1728053248,8881800,-2006515712,34950,-2037881088,137,-2037815705,138,-739766352,-401624854,1483139797,1724079718,258369360,8816310,119799808,-150990657,-125081881,1740855398,8881862,1728053248]},{"sector":11,"data":[8947398,1728053248,9014920,1718026240,9078409,12779520,0,0,324604681,325325588,326046495,326767402,296489328,303829475,314315425,308810467,713763467,713763467,713763467,713763467,713761840,713761948,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763504,713763467,713763551,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,330705547,330175421,808857636,329656971,332081803,331617234,713763467,713763467,330705547,330181268,713763467,329656971,332081803,331617234,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713757493,713757573,713757505,713757584,713757517,713757595,713757045,713757107,713757162,713757219,713757350,713757383,713757418,713757295,713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467]},{"sector":12,"data":[713763467,713763467,713763467,713763467,713763467,713763467,713763467,713763467,586155018,586613972,588710923,589169878,592249857,592708611,593167365,593626119,594085062,594543818,595002574,595461255,595920003,596378753,596837506,597296267,597755017,598213770,-1475404206,1746882666,-1458634560,16841345,-628682637,-13704239,-2027429737,531173338,1717945178,415106807,1,1365652084,1227110,1731067904,-594734021,1946157097,1727259145,1356498777,-628680213,778560465,-561179393,-2030043095,257517274,-1017503831,1532025479,-1458578805,-1007068641,12609566,116876831,6334,57999361,535096095,25577,0,41275915,1397801977,12609566,1864794911,44621592,243467636,-400549777,203360063,861988354,6338779,1526796776,1355020376,1959922515,1979595813,-664250861,-1952379136,-2140927882,1969157180,-194714095,-784540877,1622673525,12642304,1482359019,-770980871,1084233589,-1066918395,-47964416,409929463,41156640,-132185588,88122051,-1066918320,646127360,-1461774225,-2096794622,538472206,520538856,-1830419956,1355020376,1711223379,-1106839706,16777240,1696167168,-1106839706,280,-1224575744,2080818816,1689780229,5564416,1084396260,9615365,1526745576,50008,0,0,0,257315664,47272,113698958,-1201142120,1843921028,1757643008,847710208,8763398,-2130681880,134244547,-402247033,-1458569331]},{"sector":13,"data":[-883401890,-889191960,-1185852592,-940179455,-1190955904,-397410240,-1014955976,-2029518744,89654834,-287177728,-1017619623,-1185852592,-940179455,-1190955904,-397410240,-789184492,6865793,103974688,67110232,1532620002,-1957575848,132219848,-1962678079,112856,-1017519917,0,0,0,-326937242,-1223727614,-1169004820,-628227968,1711276218,1725085455,-2147163455,1987334140,1955069056,-144283859,1621634,256,-2146208768,242737916,1927347328,-2084556279,-352252338,1516671048,-1962752893,-384472340,258466092,408335034,1912668160,-490641898,283818508,1410743142,1725658368,1712384705,-150674751,33558086,1718030196,415138551,4194304,24444928,8907003,-2091227398,1566966468,1379716966,295951,-1502260420,1085952614,-1223727616,-490641710,-1972940028,6042,216236800,1527577475,-2039129498,-2079370692,1718026274,415140481,134217728,1399193600,173968230,82035046,106824550,1711442152,-10557093,-2097715609,6334,4096,-11631601,176062822,61440,-12418545,-1971231129,6334,8192,1728001001,1716741712,1716938321,-1223727529,4638409,21415424,8436480,-2117890308,260047097,1711370887,442414863,-155775130,82035046,-1948384410,1222693313,272841063,22381071,407058791,21856783,1938646631,25880592,1317012595,-1578630911,75697921,21921792,-1922668768,1911036019,-2147192063,-402521778,-2096168568,1317011460,1718034433]},{"sector":14,"data":[420512395,1718026240,1729131403,410749798,-1333172633,224,-1198954905,232,1938515559,-1956223212,1718033531,14987401,1718026240,15513737,-524812288,-536867072,13993231,251717816,-2062555136,-1050279733,-960427834,-423533048,1938515728,-943626734,147308808,283623782,444304231,50415350,11240719,24558095,1731883781,409961207,2097152,1317012597,-161019903,1602434,74711552,268521088,402736886,-2090395788,1601418,-2140725248,1602466,1317076224,-1729617919,-506370557,1726086888,316926417,115191,-1519975308,-372141977,-1520015373,1190563943,527704065,134301430,-2090399628,1601442,1190584064,141824001,1938456679,33554456,1711494888,1717462623,1717266009,6720088,1074679427,-32610685,141878282,-1089575293,17714819,4638403,1404300034,-772105134,142129889,1190584203,41156865,-754721141,-167747352,1963065670,2147123469,1729263368,-169721236,-92206101,91687035,-498962841,4974837,-379888995,1718091636,415138551,2097152,276037632,125730919,1728673152,-1073447296,-1007091083,-2140683272,1930495102,2122344208,158732036,125730919,-117279488,1355020483,1183343076,-435680256,1354979425,1183236147,1482810880,1314744003,109799246,-469333657,-455047583,214206080,-2040404468,-2038373152,-420272956,4638305,214205185,-385942551,1741357057,410565251,251658240,1711304580,1716938327,1733387856,-1162408090,6264,82297190,1741130598]},{"sector":15,"data":[1951219584,1065379590,1715696986,1729151107,1337397094,-507419133,-259299836,1743848294,167870339,996544116,562171864,-566532608,950799,1741065062,1952071552,-125082095,1718074859,415140481,67108864,1499856896,1583765606,12803942,0,0,816067085,208982539,-972711518,-2080008442,-1007123226,-770980871,-1734196108,-2138708475,-2080008386,3944821,1048578421,1963918745,1009642278,-2145356542,17144126,-617408137,93920906,-13704239,1915756695,275153670,-2096829442,-973008818,-2063231226,-1007041544,-1912569670,-144284190,-2145862138,1946157056,-525539325,1510524035,1717462619,-362781093,12063230,-2130944373,141885691,-386640245,283836437,1963064192,-126448884,-1695263093,12061633,1724119491,508978768,-1912541000,1959922648,-242522624,384745830,-1056774463,-24968466,-1055231222,-1050276634,-511636247,-507444225,1727070978,536349835,1483103846,-135530045,0,0,0,-1475404208,1354276879,-1193767424,-393346880,-1912569672,-98309920,93783750,-1744386560,113704709,-385940071,233367563,13494272,266319336,531173281,508611416,-1912553288,1862727640,1946161176,-2079930547,113246232,-1912588104,1048651456,-536870890,-953809035,5638,1048651456,-536870786,-953809035,32262,1048651456,-536870642,-953809035,69126,1048651456,-536870474,-953809035,112134,1478428608,321731,-1023399192,257315686,573088,-963844466,1694033539]},{"sector":16,"data":[39619430,147046758,123505252,147571046,264438630,1533435553,257124035,15776672,1348920206,216580454,-1956223132,34076,-2124021760,-1048349,1717069567,1048357,-1023187456,1533452559,125123,1716545227,106391121,-1061618658,-1193767424,-1064435472,47206,116834304,1963071603,-1070373361,409929463,74711072,410689894,16826214,280559616,1718035968,12395649,-16777216,637534223,67724903,189,90588928,4096,266237257,571463712,1711742936,1717134943,1746846552,-2145451904,-553354458,124959,-1205972789,-661782336,409929463,1433665552,409929463,1299513408,411305671,-1207508992,-1064435656,373195046,1975517184,113714695,-536870890,2118025510,1975517184,113714695,-536870786,238977318,1975517185,113714695,-536870642,-1237417690,1975517185,113714695,-536870474,-1017635065,195,864170877,867578781,884093999,895759708,908932550,909588018,912406084,1010185917,1032142150,1050033787,1075265356,1110196403,1169638630,1183335977,1214335068,-326410138,-1240504580,1576829172,-293398153,1695841344,415383168,1729590273,1964310318,13040,1036738918,208994213,-2078456122,1187443435,-320110563,-2012952384,1187388486,-10124259,-1895820746,1187452998,-352321520,491177683,512475904,-473880931,274630920,1918662,-1170308251,74841880,-2145564986,1151428035,48808216,1695565449,-1055373663,1183384296,491177492,-75250944,-972655360,-343335610]},{"sector":17,"data":[48480621,1176385893,-972655848,-343466682,507077981,108206148,-2011347258,862343403,1779338230,378234373,-2090391662,1962914364,-152943095,-2061678906,-261606165,409470720,-392098047,91428058,-350891288,1015638006,1552508850,694485682,1696089118,414975743,1183434379,-388789484,1187386684,-2084372451,17130046,54270837,-29620618,-97772174,-927592602,1295811431,9885,-351505153,-1240504816,-1693566008,-972656090,-343204538,380364880,258362226,-1956187465,-2094558658,192282619,1233438311,9981,-165286913,175489223,1728242625,45571131,1187382898,501975581,1234471015,9981,1234995559,9982,-1176925338,-2065170431,491177494,1525203712,-1568534762,-1165990144,10142,-972589825,-377086650,258343057,-261557577,409470720,1721831169,663885451,-1223727513,-1956138436,-486362548,-1690420430,-1996197115,1678089022,478897767,189,-949525504,48388,458752,216777062,258369318,10302650,150994944,1725489735,-1956200397,1730647614,-150697626,1149855335,-24967945,1728607488,11666631,1728834316,-5110585,251618815,-1956177732,1694675548,407117313,-1304115353,-973078526,-1023402682,1085276340,-1021557111,-1170308251,108396312,-2145564986,1187402731,-1763144419,1716154901,-7551,-2140733440,2596538,108330752,-1927461178,-966315029,2596482,-91553792,-1056708671,-100465950,258344734,57081783,1713871422,2555326,62481920,-218103808,1738892903]}],[{"sector":1,"data":[491177616,-2090482944,-15156674,1187382901,1491828765,1913993448,-494836141,65535,-1631944601,-16777177,1187382901,1022070301,-1635596697,-16777177,-423497077,48414979,119468547,-155775130,-1707736218,-37788121,1711276070,953,1718088448,-1181718619,862322692,352970971,1918662,491177667,1187431300,1707312157,414981771,-972005751,-1023402682,1913964776,-1223727592,512452338,-1956173934,-1056787620,1586037483,491177488,258392832,1713784503,1711595713,1728034575,862386179,8415424,244016391,1317607612,-164403696,-1843491994,1015244583,58064819,-1946752186,-1989728570,-947689977,1149986562,-390004045,-1989728766,-947689977,-639482366,1918662,-231286077,1043795254,1912880183,491177479,8645007,117473384,-1061810330,-13736089,917849380,258342912,1713784503,1711595713,1728034575,862386179,357886144,258364907,1711568567,608614159,81838438,1727005542,1961410611,-348098027,-1223727558,-1050270138,258344160,57081783,-1070373128,1712660968,74888975,1186402150,-524196316,-268212732,-390057114,259134787,258345451,91358903,-971225464,-1023402682,0,932919180,947861610,958675092,965556572,974600603,981351016,125242428,-1914042254,-1275021289,1617349519,-323547290,-1061810330,352267879,3625029,-882809344,-509516187,1166632728,1170630416,-1195180003,-1064435584,-1223727513,-1050270083,1718027495,4568847,-1191705754,-661782288,1727411046,65721]},{"sector":2,"data":[1718090752,-14326099,1744830449,-220026010,915105381,-1956308876,639128590,109799015,-267967130,1730609151,1711769958,1711589251,-503003517,258369510,1713784247,1711595713,-1989674965,1718026365,612218639,82297190,-1223727513,57017413,520645368,12107366,1718026240,1737516965,-1872255642,12631654,1718026240,1737516965,-1872255642,15777382,1718026240,1737516965,-1872255642,1204184870,1730547964,16402375,951608832,1728053270,272992614,491112039,-1587100928,627443069,-4096,1166632551,1170630420,-1933377507,1725468392,1141290767,-1989777640,-966323131,-1023402683,-1912553288,15775960,1048821902,1946163268,1242467193,1712907032,1211545359,1718035992,-1255359985,0,1715499785,-1947278778,-484946418,-1223727592,639126582,-1173395865,46380,1929969664,-498702814,1376685038,1714938648,1345763087,1718035992,-1255359985,0,1711567625,-1121722,639124494,-1173395865,46380,1711931392,1728898753,343247206,491112039,-966278400,-1014489787,-1912553288,15775960,-1050230642,1730546922,884608870,149,376637952,258369318,9778362,150994944,491112039,1141309184,-966278376,-1014358715,16841089,-256367245,1723895296,653375247,344680039,181,-494836224,-4096,1435068007,1170630420,1740832797,-1961015866,-1071640637,1166632551,1170630416,-1195180003,-1064435584,-1223727513,-1050270083,1718027495,4568847,-50855066,650125583,126445159,80184166]},{"sector":3,"data":[650649871,126445159,80184166,651174159,126445159,80184166,651698447,126445159,80184166,650130278,126445159,80184166,-1989777626,-947689977,-266268924,-1989777626,-947689977,-132051196,-1989777626,-947689977,1170630404,-1195180003,-1064435584,-1223727513,-1050270091,1718027494,4568847,-51379354,-1389992345,1740645135,263005798,1718077475,588229926,644245456,-668790867,-1389992345,-1389992345,-1389992345,1743790863,263005798,-966264797,-1023402683,261136741,272992615,261267813,407210343,491112039,280544000,-1950315008,1048798673,1946685328,1048798514,1951403920,258368810,261109431,637536441,80176743,245,0,1718035968,83166407,0,1711276032,1709236806,261103241,252246915,-2097116540,-2079371013,146342019,-1223727616,-949541133,193796,4718592,80111398,1525,1181126144,258402274,1730606007,16057543,-1342177280,1730561547,16057543,-1241513984,1730561547,16057543,-1140850688,1730561547,16057543,-1040187392,1730561547,16057543,-939524096,1730561547,16057543,-838860800,1730561547,16057543,-738197504,1730561547,16057543,-637534208,1048798475,1953501074,1048798514,1951403922,258368810,261240503,637536441,80176743,245,0,1718035968,83166407,0,1711276032,1709236806,261232265,259062403,-2097116540,-2079371014,146342019,-1223727616,-949541134,193796,4718592,80111398,1525,1181126144]},{"sector":4,"data":[258402274,1730605751,16057543,-536870912,1730561547,16057543,-436207616,1730561547,16057543,-335544320,1730561547,16057543,-234881024,1730561547,16057543,-134217728,1730561547,16057543,-33554432,1730561547,16057543,67108864,1730561548,16057543,167772160,1170630412,12779549,0,1012087886,54279256,1187382898,837521181,-1061810330,-13736089,1009796388,568852480,-400626944,434831491,647700027,1187382902,233540381,-2096962623,1585972419,491177500,258392832,1713784503,1711595713,1728034575,-2140604413,258344704,1713665719,1711597249,71743247,1743782758,-1419268826,-1044854645,-475306239,-1693566161,-972655066,-341631674,-1389992153,1913607656,1722443551,-1972905845,654138244,-1436090368,1535413095,9982,-572347545,1918662,8415427,-1223727609,-1050270602,258344166,1711556279,644345859,1744341933,-1052922586,186021121,-1958578945,-2094621930,17130046,112853877,1996110592,491177478,1731128227,258386982,-633612106,644345715,-2071435348,2555227,-1389992192,1535412583,9982,-402652743,1968115187,491177686,1856160512,1912749061,491177478,-399381617,745672121,238757603,108406427,-1961015610,-2140659989,258344704,1713665719,1711597249,71743247,-386923674,74584040,1918662,227010755,15630863,1760725862,1745289456,-1592852200,1975568374,48480615,663920998,-1336132761,-914092286,1733195520,45108363,-1989686485,1694675036,407113217]},{"sector":5,"data":[-1223727513,-83644356,94060091,1049166963,1734608283,884608870,189,1734609664,-1123775642,0,216580454,258369318,8729786,150994944,-338173369,507209081,108402758,-2028124474,-880054037,-1843491994,1277912871,-779418957,1142307685,-972655080,-343401146,258369365,1739799735,45317251,1711961344,-1690388721,1015637765,2080597939,1734607539,616173414,189,124914432,737141319,-401609734,-1956181117,57127740,-402476164,23530514,1694675796,407115305,-401935384,1187383990,1019412509,1913812738,474400266,491177472,-972363008,-342811322,491177476,37536655,1187383154,-1427534051,208398336,10715663,1022528358,1717728256,258408075,1713665719,1711597249,71743247,1760559974,1728512128,1722623590,1718081675,-1956205274,1713870390,91602955,1960512358,1779338009,-768383483,473654887,1728607702,-700171418,1108636676,1718087394,1744706697,-29062810,491177476,-968824064,-341762746,-1223727558,-1050270138,258344160,57081783,8415480,512452103,1718036374,653460619,126445159,80184166,1149986407,1730544883,1711769958,-972765309,-1023402682,259457596,1788941426,273058053,1918662,-973031447,-376496826,20709552,258367860,1713784503,1711595713,1728034575,-2140604413,243992320,862324074,915105499,-1956239470,1730647574,-6407037,1730553204,-2090459255,1718026951,651822219,126445159,80184166,1149986407,1730544858,1711769958,1124386691,-1603939870]},{"sector":6,"data":[1183324348,491177500,1716251392,611759887,82231654,1186402150,-268212732,117473384,-1389992345,1742244710,-1951586714,1711630862,-1956195789,1730647614,-686015642,1718028405,81216571,-498988684,491177710,-1995969632,1187386454,1019412509,-972590590,-376496826,1856110736,182970373,8815119,2125926246,-406755804,-1223727612,57017414,8415480,-1956174329,94479111,1200318246,94610178,-1240504538,1730544719,2008485734,-423533049,1718035972,88585999,-386923674,1114770680,1918662,1443296869,393482264,141462357,112660326,-1989802591,-1549728698,138840325,1713367901,-1956200397,208070903,637903265,1711769959,-1593653373,1730545059,-2090465399,-1564278073,37487982,678705778,494272316,1038663731,8415244,-2123946489,1963816255,-2123946484,639,820577141,491177473,21490063,84243105,1183383562,491177488,20441344,252319976,1744908418,1711734912,611759887,82231654,1186402150,-268212732,109799206,637903267,38177639,637903779,159285351,105018368,-1610133398,-1011677798,258401270,-2123958089,2663879,184870912,-24418809,258369318,1712093111,637855425,-1223727513,57018951,258418416,-402042954,-2112943100,-1956249403,161736951,12288527,-150637919,193652952,638241256,159285351,102790144,1711755370,-1700725109,-154946811,-1223727389,-964598032,10405,118152936,1727499110,1730608779,2008485734,-423533049,1718035972,88585999,653263718,1337331559]},{"sector":7,"data":[195225604,1945602918,91398408,-351587352,702554,703125751,94478603,126445350,637903777,38242663,703334,503513088,1730545010,70993035,1200187174,-949541372,225445447,1204250406,-352321528,491177502,474400256,440320,1711990760,-2140604533,1491601152,91398410,-1022699544,108134972,-1893906746,258369515,1713659575,1711596481,71743247,1758987110,637993088,193685095,16351590,1979715584,491177478,1715399574,108382475,1918662,-2090454037,820511939,1714057728,-2090405749,619186115,1713271296,-471271285,478052352,1007645696,-972655616,-342418106,17098760,1105724395,34727937,1716676291,643262038,20676711,141703284,-1742911802,11135481,258369318,1711621047,637853889,-1223727513,57017171,-1056741694,15718,124977168,-121558170,-973045015,-106816186,1730575339,-402566261,1903298593,-222883994,258369318,-167427145,259375300,1711464641,663895691,-1220265113,-972590590,-108389050,1730563051,-2130488437,1916797178,491177479,971766165,1724973926,268419713,-1050279936,-1039987478,-1220265113,-972589566,-107799226,-1037362197,-1224473753,1712062509,638378177,-1223727513,57017171,14346434,1717528312,-1017485730,2012691302,1711322136,996602115,1711765495,11596075,728112619,-352210703,1711387670,996604163,1711765502,11598123,728106475,-1023299335,-477898357,-373201405,467887874,-1956223194,1718035975,1730545287,1711769958,1711589251,1711588995]},{"sector":8,"data":[-1947896503,638772171,638028391,637961831,1711769703,-498702777,491177710,20759296,1187382900,736821277,-1843575098,1946221696,-48174334,1727595366,-251435441,-1956229530,-339646759,-75274750,1711830016,1711533699,-1962676349,65242073,48873830,644245491,-1953470555,81355,-2090465163,-2090466362,1743979463,-1872255962,1382466556,1711691601,1048825995,1962935695,18399048,1049347982,-947714675,-1961981180,82805509,268232577,93273737,1032021542,-2081786624,-445381393,-947653918,-1961981180,1956734469,353797,1711276080,1711786115,353963,-503316464,-1223727370,-1559916794,243991949,-1052179061,-1054145823,350273894,130155366,1516656991,1364223683,-13433257,93273735,544538379,-1912530760,-1961980992,-507426555,-2114376958,-1961886489,1711639310,-1419329485,-85851421,1717133063,20759384,12616719,1187383154,-1041658083,-1223727616,-1050270138,258344160,57081783,8415480,1725641479,2530750,-2091424256,17130046,243994996,-1385748837,-1419255674,-1419263093,-1175199165,113704964,-64156,-12735129,-2046266113,-1951701024,1135306691,1048833762,1979647332,1678165774,-1157627899,45678846,1725557504,28927583,989855744,1931909902,-1956174269,1730580228,42947723,1727105894,639794254,-1224459929,1730550646,649534603,-1218672281,-1956174332,637712220,-1218672281,-347183610,-1989728548,637843268,-1219196569,-1209319162,-1993958495,1187387462,264437789,96478906,-972656128]},{"sector":9,"data":[-341566138,1946238051,-972328440,-342942394,-305534889,258364139,1713784503,1711595713,1728034575,-2140604413,12060416,-1989728764,-947689977,112594690,642254234,1711769959,-1593653373,1730545010,-2090465399,12059335,-1989728768,-947689977,47106,126445350,46629734,1918662,1996569795,16483140,-1100596617,1,90836619,-1841394842,1015244583,158662583,-956898746,-343597754,80176932,1728053431,45565127,1988689920,117400852,1187387580,166395933,-336771096,491177476,1185858447,1186481843,1187333824,1188054730,1188775643,-1071203825,108134405,-1541585210,154948843,1187382898,1256951581,-1061810330,-13736089,1182156068,988282880,-398988544,854261886,-1996131679,652940358,-352247064,22538277,1187389675,384499728,1946221184,491177478,-2146440290,108265723,-1675802938,1187382507,-2134704099,2592062,-1587136651,1183384989,-1223727616,-389978376,1854625040,407275784,-524196259,-133995004,16745318,-2140662924,669517568,663592965,-972011896,-352314042,663592970,-972011896,-1023402682,93986362,-1014360461,-470367309,-1082074997,1946232996,491177493,9759133,-1709357370,-973042199,-375186106,-620101498,258354293,1713784503,1711595713,7780111,1727005542,376763915,117473384,640064417,1963342183,-2123946286,29426302,119458165,-1322807904,1726084803,-1963411697,243798094,-947837043,-1679284059,16483076,1183524981,-524196314,4623120,94217062,1958742886]},{"sector":10,"data":[-1223727595,-389978384,-524196336,-268212732,117473384,258345963,-2123959369,2663878,77195264,246812611,-617413222,681885568,-2129890304,-503266365,491177715,-970986597,19440775,258344734,-947782729,870852773,-1279030524,-1997277501,1187385414,-2134704099,863240443,663559738,507124852,376636826,-1011629174,-661920778,681885568,-972590080,2663559,1187385835,1048616221,1963001242,491177482,-972756068,-1023402682,1918662,1725008835,-1961827647,1996635347,256013411,96480954,1746629121,637993088,1813416806,378103300,1451820482,-356424176,408324368,996542443,1963311638,491177521,1946237952,783945480,-352320064,918163243,-352320064,372991523,309659074,-1070155249,-1173421819,376878,1918662,1187384043,82551837,-1893906746,195,0,0,244011601,258344296,94060215,192084283,-1962147649,-1996121330,856005438,1718052050,-1121666545,0,1933723403,1003631362,990868691,-2115603719,367422,-103713524,1049167851,-97843813,-1017554184,-1957206447,1694853134,407125635,-1996065536,-351954162,-1223727583,1678089022,616173415,189,175311616,1928936263,201375726,1049225707,1600521627,1348911961,-967747994,355846,1242467173,1697964824,917966694,1730549832,750391142,181,460458240,1724287846,1712120001,526093,1718051840,12387465,1191182336,1177580618,-2133625527,17133118,1717900660,1278654223,244016408,132323406]},{"sector":11,"data":[91096774,1706552065,917966694,-1956308912,-484945394,1504176898,1483103846,1717593795,786623,1745783552,378234373,1734616978,616173414,189,124979968,1928936263,1715530733,1734670219,616173414,181,124914432,1928411974,1361636333,-1139897499,-315398632,-1442542745,192202299,-49851,1967780468,-402534929,1049165836,995689883,1722512121,-1989688479,-1956140484,1677896268,76244583,181,1718051840,12387465,1677721600,-1173395865,46388,1191903232,-613070522,-1010814106,-1956224922,1713869358,1748416271,1734626821,616173414,181,124914432,1945582414,1714809837,-69,244016639,1130764476,1149986622,-12779363,1056142591,-1656487065,-969193470,1967719796,1459736037,-100401525,1593837800,-1233914053,1052991846,-1655927961,734497538,1732133057,10306697,1734616547,-1257993370,0,-1989777564,48388,1734606848,884608870,181,1313803008,1725658441,1724104755,-1834916272,-1223727577,1779842002,1728738053,-7324541,-336067724,491177477,1483143555,1716872899,1381459542,252072038,15755424,18376711,-1956208369,1730646574,1018629990,2530653,258369280,-44321610,-2130706394,1946222590,-1956168081,-2097105548,1534394366,1539080551,9982,1333035007,1538524007,9982,309585,-1956223132,46340,-14352384,-1956174083,48404,-494862336,-1039465984,-1989777626,48388,1195769856,1507161417,-1821030077,265822223,-1592797150]},{"sector":12,"data":[1515742727,1583767398,1740856678,-44333882,-16777178,1724353382,1712120001,1359464579,620758201,1730608639,12391563,-2130706432,184680674,1718036162,12387465,1711276032,1048581,1967736576,-1460971046,1011962726,-1054706432,862324968,-1693545509,1648263974,57999621,1728054969,-1654848453,1946157094,1967735563,491177714,82573707,-121402522,-1017420199,1716610640,647733590,-1044862105,1722509057,-37816781,-1223727578,-2096795122,62391529,-1044307200,1743979241,-1872255642,1744029835,1720739748,1482253918,1399214275,1466323302,1001203303,254188294,1728055429,-1052922586,-972590079,-106750650,258366699,91360951,503638403,1711742726,2555327,243712,-373178077,1718088450,-1953470555,-1536691256,102666343,862324511,1648264155,443875589,1539080295,9981,-1190693633,1290272769,-2143073282,-395180293,243992555,1021847195,1187444990,1600520221,1533434214,1348911960,-1061744794,61668481,-1957356681,258345070,1712619191,17098689,258347078,1712342711,-346163197,141172282,100754719,1717901409,1597945615,-272538088,-1956223229,195844,-1050279936,-1972959040,523524,-1050279936,-1956247352,258369016,409011895,1727529830,1348911960,1466323814,-2079340277,238747783,829892251,-1841394842,-1389992153,644339851,-1223727443,1849589952,208928773,1929279976,1648264037,427032837,90324611,990737409,1915132678,491177484,1256978827,1912622824,-293900,-966325387,654131332]},{"sector":13,"data":[-335609856,-1060637146,-473888139,1547396866,124912279,-1977792826,1730145273,-46099320,1728053286,-29320055,1358954534,-659091610,-402652743,-497418949,1600583812,1483103078,1028875971,141950979,2080439853,263445,-659091610,1564246887,9885,-133991169,1727594987,50011,0,0,1319128662,1348882091,417382758,-1912581960,8435928,-1050222450,778508520,809833727,1711276110,1399243608,-1729603994,-949525504,26018371,-402603032,-236453582,-2123930623,17499259,1734611826,-1744682041,49080321,-402423320,82314121,23553028,1583743603,264461158,8435872,65593486,-878637312,1357402982,68544512,1724078950,474385232,1014352139,947242507,540969317,113730841,17504546,51052417,-8316301,544342784,570869605,1694564377,-1106345626,65560,96528384,-1996488514,1220418678,-1017616868,-335544391,1716545272,512452177,-1184496268,2,-1223727513,806148,-1073020928,1734609524,50644838,0,-2123962654,1048771,1717134848,1348911960,-949525423,1694498819,1679368865,71534951,96641382,-1989777564,-1010956733,246812416,-2142698086,19440828,1734608757,-352187517,-1010400965,1693245952,75202919,745668875,193161060,1048798468,251664504,1677723013,269189991,1048667749,6266,208928784,681655936,1678079233,134972263,-1017616807,1365659750,1466323558,15776262,1923203726,-2006490107,100995,-966302720,101251,862322688]},{"sector":14,"data":[-13408522,1691497318,994362983,1734606858,188433606,-949525249,-15975612,-966302465,-15844540,1153853284,-402649285,-2090466516,1081409528,1082952295,9981,1284007780,-1956181189,654196876,-373227520,-1989712894,1678523212,994347111,-966302706,17447748,-2147419519,71115382,1679651584,994869351,350945802,2072078180,1912670980,1048798475,1912608888,49670147,113738598,67158657,-9207025,1717528071,1717134938,1348911960,1466323558,105993574,414733926,1690340865,864339559,396,1049323008,-1956239470,-1960339922,1711630862,-2090347981,268408636,1711326596,-26778536,25953156,1348861952,-1802999964,101683,-966302720,26096516,1677721600,-2067306905,102195,0,1718051840,-1825340217,1,1728053248,43467915,1677912257,864323943,407,-1223727513,-1050241276,-1125645600,1718052064,-1724676983,1040187393,1149986407,191234261,1041003968,1149986407,191235285,1043100864,1149986407,1734607061,864323942,399,-1956223170,1678038340,-2071370137,103219,-2140707840,26096524,1728118784,664713856,1962934272,-2140707825,26096524,1677852672,17531751,281445222,-2062595774,-997982420,1717110532,1717528157,-1017616806,1365659750,-1207545242,-1064435472,1711276216,-1206853439,1734610064,864323942,397,-949590172,26293124,0,1717895168,1712880289,268435517,1712813056,1711634593,262149,-534386688,-1989777564,26293124,1734606848]},{"sector":15,"data":[-1791785786,1,1725336422,1021886515,-125606398,1680176383,327482983,405,-1989777564,26620804,1734606848,864848230,410,1711851139,-756301565,1717200391,-1017616807,-2067372188,103987,1724055552,1716610640,-1956228521,-966302514,26676100,1694498816,1052184422,-16050056,-1050257548,1734608103,1951219584,-2140707833,1165318719,1724353382,1074063553,1468753764,-2090376189,1962934655,-26778594,26676100,1734606848,-1741454199,1677721601,865372519,410,1678034563,1514111079,-1039987852,81838438,-336032922,1600543405,1483102566,1716938435,508651095,-829725178,-1131583897,104459,127930112,607554918,531107609,1728058553,-1872255501,1499864839,1583767398,1716741827,1347905110,-1956228527,-164403461,1677738169,927266407,695468298,-1036091291,561250584,-1240504476,1678653252,928811879,258434060,188175542,-326410138,1726035176,1977879137,-964467183,-121052666,1717066074,1717462623,-58670245,-102075261,1364389611,-1962349887,1713806094,996655155,647841044,175374336,-220053402,-18330,1515847679,1716545219,1734627921,864339814,396,0,-949590172,26227588,0,1734606848,864339814,404,0,-949590172,26751876,0,862322688,149602761,45670865,1692455680,994314343,652857615,76244583,149,-389978624,-1036294644,-506382732,178256,-789061421,1142974308,28839739,1692455680,994314343,-1192636145]},{"sector":16,"data":[-523042815,1677910209,994314343,1734629386,864323942,396,1107609219,83460929,-293364110,-160996336,-16106684,1734613364,25920394,1734606848,188433544,-2080479388,395,1511048835,1483102566,1716741827,-919378350,-1223727515,1696092190,381095782,1692932178,1697542912,515313510,1717901384,1243002639,5367832,1717902195,1277081359,258368792,407770807,1929395944,-4692472,-335544321,-661952977,83322662,133,1946288128,1715496457,-378355141,1097246443,996557670,638415834,-1660618905,0,-361496064,1533434470,-754751805,1959922534,-1019517430,996542838,-116952382,1720714731,-1007107189,753422438,-2090441472,1664574,-1830281100,20572160,-1962834712,-1050273722,-1014296352,1319331429,407291673,512557056,1483086156,1716545219,1716938323,-1956228777,-1090160586,258342912,-1050214473,-2124020505,1665735,-1598331392,-1191182336,1734606944,-1643869338,216580454,1975728998,-287161595,1717905131,426122889,264452966,1711276933,1734656051,1711769958,1124386691,-1956223132,-1050239484,-522056472,708741477,1600543003,1533435494,1724078182,1716676176,1048798551,251664504,1694536580,1052184422,-16050056,8815631,82297190,1065379684,1678210125,1514111079,-1956219787,-389978425,1718051844,56080143,1677902467,25133927,1715959040,1716676176,1711595713,1711596225,90624003,4095,216580454,216711526,103507557,1717901670,426120747,1942109030,1718052117]},{"sector":17,"data":[1787102407,25,1711276032,-1036294592,1516694386,1734629478,1952071552,1220674317,81838438,-369587354,1600585598,1483102822,1716545219,-2140843690,18399806,-2140849292,18400062,862335860,-1693545482,258369318,-1653275465,1694498854,1711680358,1360491033,1694500025,80176743,1665669,0,-499096064,-498705938,1583765972,1724078182,-1201254064,255,103507557,1734678886,-2063284378,6506,0,1862727525,251660312,1694510980,413023873,645268992,-1643213979,149537048,12630118,1717895168,426116651,-949590171,426411268,0,1080426496,1717169890,50008,0,1456625361,1489917684,1494505713,1502239041,1456559825,1456559825,1456559825,1456559825,1474189066,1730105450,1293221678,22176,1048626115,1963010209,-1575601393,-972066264,2662662,-1023409736,-1070362189,-1833698837,-202653645,681655936,-972459007,19439878,-1023409736,-1070361677,-1609565717,-1912569672,1708864480,246878054,-1050273672,1734608097,1951218048,-2140707831,-2062591431,1734607007,96643,1734611061,1979930937,-1956158455,-633666727,1734614387,257571200,1677753988,54627175,-373201344,1925710596,-507419024,1723591428,-1962612287,-507418943,1682980868,21072231,1367959396,1718051843,1426604487,1679835725,1103586919,538976268,1994009376,1303399222,25585508,82428262,1724515137,1678041537,1677822055,21088103,1734606848,1677941129,1103586919,8,1718051840]}]],[[{"sector":1,"data":[803271,-1207959552,-346357759,-1143764210,-771030863,-1329921164,264254208,-1609579615,-1912569672,-1223727392,-1050261046,1734608097,251744569,1677738629,2038523495,1112364296,881135392,1718051840,537688449,253763616,1677731461,21088103,1734606848,138528614,0,-949590172,3137,266862592,112640,-1592796365,-1145031741,-152371022,1399214182,1717916006,2013705999,-524196328,-2140707836,1869896248,947939172,1684567373,24675175,1682601216,-1223727513,1715667800,1711596481,-1821976573,2021877604,829751297,1734644582,1734609802,1734609032,1090734987,1208051556,-919378429,-1989777564,1718051851,1678003081,1267295847,1718051848,-351515767,1718052000,55097103,-507419071,-1056741884,947939172,1720350042,1717266009,1048822616,251734174,-402649212,-1073020870,820239,681445063,28835841,-1009044992,-1070366029,-1640070205,-2079391704,1156055055,264243968,-956298108,2661894,112640,-1279009998,-1010814078,681590400,428150529,116876544,2103407,623887,1863222117,-588767208,117401048,28843616,-1009044992,-1070366029,-1606516541,-2079391704,-2090532811,1990718,3245071,1694512104,509623939,176492289,264243968,855643012,185002944,159715264,646145280,-388032401,-10102637,-1205968882,-617480191,864203715,-1070349376,1862727525,251666456,-1207958652,-617480191,195,1655971598,-1014095411,-402619969,12061367,2215244,771751936,1253119,195]},{"sector":2,"data":[1157627904,1482181965,3168344,102651479,861032787,-1579643200,-1073020514,-1064425612,-1912602440,1359832,12121995,2472193,1973875708,244000280,775946258,1377932,319719726,1532582400,1600003847,-1205924157,599407872,1914817792,-1193768119,567100416,-1023983502,980680832,-1186723912,567083008,-12832654,45624437,1948228,-855636295,1025471009,443875334,1916547,-1961659099,-1912594162,521046977,-851528704,16824353,1052023019,-1514659379,1030213119,12092506,-1903004415,8645571,0,0,860704069,1931490872,1701012341,1969648499,544828524,1953721961,1701604449,168636004,1159989773,942886221,1665212470,1702259060,218762542,1296376842,909652813,1634617632,1986622563,168636005,1159989773,942886221,1850286134,1769235297,221144438,1886930186,1701080673,1701650532,2037542765,1952539680,1936269409,1634625824,1936024419,1818388851,1853169765,543975796,860704069,1763718712,1701978227,1952669997,1952544361,221144165,604638474,860704069,1763718712,1852383347,1953841440,1869422703,221144420,1700209674,1801811049,1886339872,1701015410,1919906675,1886745376,1953656688,544434464,1650552421,778331500,1461979661,1702127973,1866670187,1668248176,1869837157,1970479218,1919905904,1936269428,1936286752,1701601889,168636004,1768249124,543909236,1919971139,1936024431,544370547,1763734377,1667457390,1769173861,543517794,1769238133,1296375916,909652813]},{"sector":3,"data":[544434464,1630365042,1986622563,1684370529,218762542,1850287114,1768710518,1634738276,1701667186,544367988,1667592307,1701406313,168636004,1296587556,1567518529,544434464,1763733089,1818326638,1881171049,1835102817,1919251557,544108320,1936287860,1667329312,1701734760,218762542,1850287114,1717990771,1701405545,1830843502,1919905125,1868963961,1297424498,1864397634,1769349234,1635087474,1296572524,168635969,1344539149,543516513,1835102790,1631723621,1092642163,1701995620,1629516659,1937074788,778331508,1294207501,1768976481,1377855342,1936287589,544367988,1919181889,544437093,1969906785,1684370547,604638510,1702521171,543584032,1634760805,1684366446,1835363616,544830063,1819242352,1784963360,1702130549,168636004,1380013860,1196312910,1884233786,1852795252,1297044000,544370464,541933906,1702126948,1684370531,1953068832,544106856,1701273968,1634887200,221144429,604638474,1314013527,977751625,1296909600,540424243,1953721961,1701604449,1769414756,1970235508,543236212,541935948,540159539,1886220131,1651078241,1344300396,543516513,1835102790,218762597,1096229898,1313427026,1428175431,544367987,1667592307,1701406313,1634869348,1936025454,1702260512,1885432946,218762542,1096229898,1313427026,1461729863,1702127973,1866670187,1668248176,1869837157,1869488242,1852383348,1818326131,778331500,168626701,1296909604,540424243,544501614,1953721961,1701604449,539828324]},{"sector":4,"data":[1970499177,1667851878,1953391977,1835363616,779711087,168626701,1296909604,540424243,544501614,1953721961,1701604449,539828324,1868787305,1667592818,1329864820,1702240339,1869181810,168636014,1159989773,942886221,1869488182,1852383348,1818326131,543450476,1852383277,1920102243,544498533,1751343469,543518313,1701869940,218762542,1296376842,909652813,1953459744,1936615712,1819042164,757097573,1634628896,543517794,1931505524,1881175141,543516513,1835102822,1633820773,1629513075,1701995620,221148019,604638474,860704069,1629500984,1634038380,1763735908,1635021678,1684368492,218762542,1296376842,909652813,1953459744,1936615712,1819042164,757097573,1397577760,1851878688,1919248225,1953459744,1701998624,1953391987,218762542,1096229898,1313427026,1411398215,544434536,1936876918,544108393,1210082927,1296387401,1398362926,2036428064,1969316640,1663067507,1818652271,1937007465,1953068832,1296375912,909652813,168430894,1296909604,540424243,544501614,1953721961,1701604449,539828324,1701344367,2019893362,1684955504,1830839397,1919905125,1634541689,1701273966,1701060722,1952671092,221144165,604638474,1314013527,977751625,808469792,1634738224,1713399143,1701667186,1684300064,1936942450,1953459744,1667592736,1701670255,1684366446,168430894,1296909604,540424243,1986622052,1847620197,1763734639,1635021678,1684368492,604638510,860704069,1092630072,1986622563,168636005]},{"sector":5,"data":[1296909604,540424243,1667329609,1702259060,604638510,1634760773,1684366446,1835363616,544830063,1635017060,544434464,1667329641,1936942435,1701601897,1953396000,1159752809,942886221,1936269366,761623072,1769235297,1702125942,168636004,1296909604,540424243,1763734377,1967202414,1830842228,778396783,1428425229,1818386798,1869881445,1952669984,1952544361,1296375909,909652813,604638510,1650552405,1948280172,1701060719,1952669997,1952544361,1296375909,909652813,544432416,1933725013,1701994784,1768251936,1881171822,1769369458,543450468,1851853325,1919889252,1397572896,544434464,1852400994,1937055847,221144165,1851073546,1701601889,544175136,1667329136,1296375909,909652813,544106784,1869903169,1685024032,168636005,1768249124,543909236,1919971139,1936024431,544370547,1886418291,544502383,1696625513,1818386798,221144165,1700209674,1801811049,1886339872,1701015410,1919906675,1886745376,1953656688,544434464,1634953572,1684368482,604638510,1650552405,1948280172,1852121199,1701601889,1768249120,543909236,1919971139,1936024431,544370547,1886418291,225735279,1851073546,1701601889,544175136,1634953572,543517794,1953064279,1126198117,1869770863,1936942435,1931506287,1869639797,168653938,1768249124,543909236,1919971139,1936024431,544370547,544501614,1953721961,1701604449,168636004,1768249124,543909236,1919971139,1936024431,544370547,1763734377,1667457390,1769173861]},{"sector":6,"data":[543517794,1769238133,1296375916,909652813,544434464,1630365042,1986622563,1684370529,604638510,1852994900,1852776563,544370464,543581807,860704069,1696609848,1851879544,543450468,1869440365,1931508082,1869639797,221148274,1158286602,942886221,1331372086,545005646,541476431,1430331516,542986068,1329420123,545005646,1179598167,168648006,538970637,2082491983,1179012896,1092647968,156193877,1769235265,1702125942,1919885427,1937077024,1684956528,1296375923,909652813,1163412782,1986356256,543515497,1986622052,221016677,538976266,538976288,538976288,538976288,538976288,544370441,1667329136,1763734373,1852383348,1953849632,1869422703,221144420,1461723146,542003005,1179590780,1409878342,1936618101,544108320,1864397423,1461741158,1702127973,1868767339,1668248176,1869837157,1970479218,1919905904,168636020,1634620708,543517794,1948282740,544109173,860704069,1327511096,539828302,1953460848,1702126437,1869422692,1931502948,2004117103,543519329,1701997665,544826465,1852732786,778530409,168626701,1986939172,1684630625,1918988320,1952804193,757101157,1296376864,909652813,1953459744,1936615712,1819042164,757097573,1869770784,1952671092,1830839397,543515759,1952870259,1701994871,1919705376,2036621669,1853190688,1735289198,218762542,9226,0,0,0,862347366,-13408522,92606091,1694689729,407244425,1141803365,243885336,113711170]},{"sector":7,"data":[201328027,95096459,-486348351,-1482594799,-389978619,1285776652,243885336,243996750,-373226059,1712448258,1711649185,1695344833,1696090275,407506569,-2094621791,17130046,112722805,63474432,96535488,1923284996,-1928935931,113639463,1711351972,50017,102827536,1657,1862270976,1717989230,1869903201,1852783991,1718566263,-1958793370,-1878356726,-1744137206,34249994,67109632,83887104,512,0,0,0,1465012224,1877539870,-1052867839,343146762,180553462,-401574648,-1073023666,-239465355,19785989,-385800215,116785453,251726531,-1275064955,-182720508,384304564,10873333,180553462,-2090437630,17479486,773730421,-1912597087,1862727640,520093976,1082639,-1444937457,-2079391743,1371144198,14805257,-402587464,896791773,-385444934,1048772819,1963002553,-1006189037,28901130,-188487679,-1329980557,12183814,180043395,-1207012095,-1360527102,-1173982220,-1528232186,-1022953984,829686794,-402521928,27849881,-575011211,9300231,180174467,-1207077631,-2098724351,-1173195788,2045446016,-402521416,91485301,-351818054,-387698068,-997526423,20833330,-972720896,-16071674,1912603197,2042253324,-855002106,36526113,-1948200704,-2137682952,-855002102,-1002536927,125042698,-1274661702,-1205744375,719847936,1946265844,120437276,58000040,-1274587462,-2145268471,705598,28968820,-855002104,1516183329,1153090392,-855002104,-1158485215,162793881]},{"sector":8,"data":[-970579507,-970584827,638189893,604128710,-678692565,162799366,-773119539,-2034346413,375050,184577512,-2143914807,17482510,1912617192,-1215838417,-2097151734,242681083,180553462,-2145553150,34259726,-75296277,-166955256,67814150,243272309,-352056637,-1017422147,180555392,1475799816,-1899262970,1004221379,1963633551,-1614836979,1375491594,1582933747,1128467060,1963785091,32242150,-1017182216,-61844650,-919348853,1191545382,-126607300,-193722052,92939855,561253692,494144060,427040828,359926076,-885309113,1094510455,1513883250,537657975,-347732856,1583044824,195,0,0,186522382,186521276,186521351,186521351,186521351,186521351,186521351,186521351,186521351,186521351,186521351,186521351,186521420,186521501,186521615,186521699,186521120,186521745,186521910,186521969,186522024,186522227,186522285,186522150,186521797,186522291,186522128,186522297,0,0,0,0,0,0,0,0,0,0,0,16777216,84148994,151521030,2826,0,855040,989710,6416,320344593,1507348,352321536,6934]},{"sector":9,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,514,0,0,0,0,0,0,0,0,0,0,0,67239936,0,0,0,0,0,0,0,0,0,0,0,0,1026,0,0,0,0,0,0,0,0,0,0,0,134348800,0,0,0,0,0,0,0,0,0,0,0,0,-16773114,65280,0,0,0,0,0,0,0,0,0,0,0,17694720,1073676289,-939548672,-4096,0,-1006583808,-872364032,-738144256,-603924480,-2147426304,-2013232128,-1879012352,-1744792576,-469722112,-335484928,186519428]},{"sector":10,"data":[0,0,0,0,1325420111,1090537030,5198933,1296126534,-49851,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,1095586560,1094800466,1094910034,1296255043,16798032,0,0,3328,0,-256,-1572609,858845184,1347243843,-2146676415,1146810368,16767315,1953849840,956542575,-536606460,67411460,-553469181,755119618,-33302013,-2147143164,2030266375,-1979558651,1431458562,-1962533289,49133804,1586223246,-1950118398,-953808290,3655,1073742008,273123622,222807590,34387968,278897454,509138586,-1709870581,5644,12063090,650153712,-1560281439,116065727,-385642007,-471333997,49133648,12114062,-387412480,-286782445,214886411,200203752,170095808,-1273662016,191352128,1696036288,1762558310,8388632,32499968,243492453,-385345431,-140901915,1963662936,-2090441465,538492430,-1107230536,-13407638,-8318515,-2062587286,-58720243,109514547,113665280,-402584192,-2062608470,-1763180541,-1070373364,-1452928563,16777216,-2140862860,18379534,-1912447349,173968323,310363174,-397656856,1717895943,409536247,34846,24872207,-401733144,1717915379,409536247,34846,23561487,112660326,-1050278523,-1956246816,-339646760,-1023187446,1879049574,57016320,772130310,515247974,-1050271374,57019619]},{"sector":11,"data":[1048587971,1963003986,353798,-402652928,57019073,353987,-402652928,-1553589588,90572157,4095,216580454,92382054,1975520102,-2090441462,68708622,-402588439,1717913854,409536247,34846,-353827980,1069475840,116876901,-2011293591,-2062614528,-1410858791,-144284374,504916230,251658376,-402601851,1717897547,409536247,34846,12027151,1710709224,1762064230,8920600,-385649664,1961361573,730982474,116876901,-2011293591,-2062614528,-890765167,-1070373366,776999629,84975521,-1050279873,1090848488,-801416704,1717897587,409538179,-1955796220,-1014103458,638213771,269371335,-1616826880,1200170512,-1070373360,-1709511448,8067,1913046629,-2090532840,-31953114,1929836133,108266008,1913552997,-1603993064,-1570432864,37492849,-2140861835,1602110,216735092,141885756,168216165,267068416,1364122,1870794496,243492097,-1207887761,-661782528,577946,314140160,-1107296256,-1150938943,1,1763607910,772699160,-1205988213,-661779682,567085492,46564127,-488386202,116877027,-2011293591,-2062614528,-2090467056,1599806,1503266164,-1677721599,164096250,860315112,-1195340096,-1050279936,-357035808,-2023348720,1711297542,-1206350173,-1050279936,-877129504,-2023348719,1711301638,-1206349149,-1050279936,-1397223200,-2023348709,1711324166,-1206348125,-1050279936,-1866985248,-2023348720,1711352838,639146659,27002567,-953807728,105990,172943360,-1656071704,-1911873864]},{"sector":12,"data":[14727872,186562590,162846862,-1205919283,-661782528,579994,1929836032,762577176,-167665990,35156742,-944110731,515382785,-1260876277,522308873,413154944,-1173457663,-1205992975,-661779682,567085492,19642911,410074752,-2145160191,35156286,-2068181387,515382785,-1260876277,522308873,-150923590,18378502,-1174178816,-1205993213,-661779682,567085492,130036511,1516068639,-1201222821,-1,-400998168,1503267520,-1207959551,-471105536,-352031814,162445827,186562590,162846862,-350281267,102654177,-306274289,-1947824638,-1899524873,186564575,-1329608818,-588710897,-401939712,98762967,-352254744,49133814,-2140809074,-15163074,-161144204,18379526,-2140860300,1614142,-2140859788,35156750,1717897963,409538177,1024,-1606516635,108396312,-1610168731,-2144468968,34527294,-2094129035,17845822,-2144462732,17846846,-2140860300,18400062,-2140862348,18399806,-966456203,18400262,-1610168731,1048772632,1962935685,-2063153402,-402587643,2028471862,1048798476,1979652282,1048601900,1946228930,1048601910,1946228931,1648263982,208994565,243361381,1073748073,166395904,243492453,-351266711,1048784402,1946165360,-2123995894,1599758,251658242,1629423521,-1403563837,-76275652,-143390404,222087475,171711348,540809076,154932084,1010896756,1007055457,604141434,-341005601,-1430244639,1724078175,515382880,-1948742133,-1240486665,-1240504616,1728934047,-1657995417,3328]},{"sector":13,"data":[1295810918,1951289153,1027386427,81691919,242237056,-712700160,81848324,80642575,-2062560757,37553352,-1048441088,16727300,79333135,90874724,406889317,242222790,78965247,-1408973181,460668220,251964904,184851330,-1786441774,4144388,76449551,1678434497,774415011,273811142,-2013218815,-1073015347,833622901,-1975309848,-399462176,-536198366,1877541749,-2123995900,1599758,771752192,273811142,73197824,256392364,1023372676,252867664,258398390,225484726,754935655,852125,256916480,1694773125,414858883,629477375,75622404,69108239,-2062560757,247006232,78702592,68060431,414884709,1677988329,92618371,-41611520,132664835,-176025852,1959922435,-2147436539,1077746923,-1207602432,317390912,2004877373,1026314,-266006668,-1207702529,1717927936,409538179,-2052889568,63760645,1966947500,1899921450,-2062614514,-1075313740,-1383985405,265423619,1023649669,-2029059842,1681916832,-972711262,-15830778,1694735849,413154944,-1987768321,49185539,-1190119489,-1494024187,58361103,-1610168731,2078867992,1916698627,-2062614514,1017906024,1636110141,-1055732477,-661977376,251901672,184767362,1300565970,268451075,54952463,41337659,-16399477,-67099389,-1143262362,-1050279936,-1014954781,-1050271808,-2124020501,262083,-478059008,-1024,41080891,776520587,1074755235,1678305473,-972723037,-15830522,1711475177,1095580801,209015896,-837909660,-964491259]},{"sector":14,"data":[49604868,242433664,-511373568,1027386370,47875343,-390057114,-2112945438,-771030320,46826767,251662397,1023591298,-2029059840,-1050279236,1717832416,-972699997,-15830266,1694676457,414858883,-1585115137,1019170306,440592,-2062571789,-2124021100,1313820220,1686441797,113665534,-2097080125,-2014772026,1048798722,268374082,-1409125499,-2062598852,2011693676,1703022338,-1060964606,1569001471,1976699650,264243974,-1560128636,378081346,1407782980,2088855042,1297043199,1713730895,1443069057,256006213,-2130562171,1094977404,36341007,243361381,33560766,-964493312,35973385,1329365350,1968393541,113665292,-2097080126,266929350,1015113218,1414416719,1717898613,415108739,80118592,1711405545,1347370113,-2062597306,-970063388,17847302,-385563005,-2090532382,-15156674,30311695,251779560,184665986,-1048244270,264243969,1023523716,-2029060082,515572148,1222348299,-661929981,260359041,-1553660021,-1477896006,1048601857,268376224,1308726149,817880715,243984,158705395,-1610168731,-2014773224,-1074558207,79237171,262599424,1694592901,413140678,24176897,251752936,1023500163,276168707,251723325,167859074,1300565988,16395521,-1082074997,268374086,-2147401851,255721340,-402573435,-2112945773,-771030736,19563791,1413382190,175374608,-402647879,-2062614086,-528088808,-1090517319,-1359867834,17466383,273057672,1277078287,17361168,-8617626,1028869445,15893775,-1929197949]},{"sector":15,"data":[-384890338,-2124021601,1330839420,779369805,-8617626,1028473170,1015094132,661933391,1296120961,13010191,1309067054,-2097151728,-1008139322,46564096,249044621,-964466709,1008635138,777972495,273876678,63341313,1694541289,413220480,-1853550593,1027386368,9078031,817880715,243984,158705395,-1593391515,2145976600,-1074558208,79237171,1973875456,113665385,-352315231,1948159339,-1928140018,-351361506,1027386380,5145871,-347889432,1027386451,315442293,-1962483519,10086600,913691147,846381371,-1992313329,-8617983,-1961921235,8513736,-771026318,-1053094283,-947713422,67600386,418054537,1717944715,409538177,256,1717954795,409538177,256,-1017027041,1348883302,1723872102,179100467,-348883776,-1073042414,1483083125,-1050229877,-745860885,1009511416,1008497200,739800889,-620534224,12842854,1977614336,-1922668790,57056028,1724836824,1724091224,-1961825343,1533475283,860967875,-1073042240,-617401996,280613427,-1408898304,611631114,175259964,460801596,168050988,809241323,960237938,808193399,65140627,13796291,-103224429,-1017423469,1053054726,-218361940,-1022926929,-1036091291,-2062614248,-1070399458,92604039,93980358,1778829058,1694499333,406849223,-966459390,603982342,-1070373181,95527782,94872422,-1559906909,1714292139,272776835,-399018753,-2112941526,-1050279703,1714293480,272768651,264448870,1711331462,-2061584625,-1019517435,1077744755]},{"sector":16,"data":[-964555008,-1039104,243492453,-1558177687,862324101,-1223727397,184911110,1712551104,-1156915007,-1050279932,29036771,283895808,-1989800078,1711646494,-1559566143,-1846999637,2450944,1728053184,276152331,112660326,-1050278523,-1150940448,1,-1073732250,191299583,-396069696,-260960079,-1491170970,-389978619,95134474,92603947,-1050224393,191236832,1716221120,-4194267,-1072994561,-1150933388,1,1913684200,512321258,-1050278479,-1247606040,-1425669371,4209925,104536434,443745669,50703265,-1559907066,1717896581,409538179,1695017760,1762558822,1724056600,1699898960,876224139,2734182,-470417408,-1278178458,94019779,57074678,1728407234,1711276073,5873669,-2147129856,1711276036,524293,1476748800,1711276033,1516689547,113465446,96419456,1712879100,1397310904,1053044289,1713770681,125109563,243492453,117512382,-104811325,-2112940595,-1977221100,44565831,689167,243361381,6334,1707278337,2050916710,268435480,1695773696,-1106839706,536,1694987520,413533895,1354956864,1465274707,-1609628130,1717959324,415106807,512,1085825397,-840921600,633899794,255590415,-507424395,1691979270,921145,-1590803083,-1553723233,-1064435698,319193956,1074069760,-1616695808,871772944,16824831,-1146788109,12124159,-2094936750,393543675,-27292890,-611387853,1912822787,1015038730,-2081196710,-1656749244,520593679,1532583519,503759704,777082455]},{"sector":17,"data":[280116932,-1229054194,243984,262599676,1694501509,-1106345626,1048600,1600018688,1354958623,1894130864,15401195,826044900,427023,-2062601412,1717895178,415108737,131072,1381090136,253644883,253646760,-1172369751,-1310191491,-294144,3900431,-1174394695,-521662379,-49920,2851855,-1956185461,1717897797,-1088910685,12062873,-524196352,266975248,38111590,96065419,10807296,268435261,-402627707,378339471,1709707398,-294144,12074868,-524196352,-385446640,-1553584625,179900561,-1894347520,8775696,1962934077,-385446624,104541711,359993489,1048798766,1946161301,-1587139060,1717899413,-350713181,47125,283165030,638577080,1275496294,-1553570560,753408138,-1458610432,1515935775,45663065,253873469,-1962928510,1140898008,-2112937523,-1023999994,141901952,-851574600,-17631,-293949,12060020,-1021194946,-851180616,75632417,1958820608,-18429,1141029059,-2112937523,-1053097980,-4717708,105956351,47134,646043790,2147418116,-1589738706,-2062549232,-2094137334,-15686850,1737743,-1976636496,772842790,278994628,638028070,-1878898745,1204168336,-1070362620,116899982,1054831,-1587148428,1713772706,-167755613,18379526,-1587147148,191240326,637891776,4498278,-1017641185,-268369959,0,777016070,535043780,1161789734,1803882313,2139170304,255939330,-1207934587,801981184,-2062581700,280494166,774884675,535305865,-368669650]}],[{"sector":1,"data":[1048651295,1866661916,1475855,507412774,259026176,637537157,2113153,-2079362719,11796518,-400621778,33570079,1148175,38861697,623887,-398556882,1946223647,772322311,535305983,-1022928040,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1912602624,-670141425,168770574,-60791281,-389999923,197890,-1543504859,-1964505744,16574464,116876901,6334,208928769]},{"sector":2,"data":[1713311262,695219853,520488936,-402641432,-617414570,771753401,569620363,-2097080856,-203291965,-402641944,-1494744739,33024001,-402485528,854066137,-1017027068,91267408,-402071359,57869516,1023717352,-210313344,-1588542632,-524221072,88533000,-1712848013,-545243900,-1017580682,-536823728,1929683944,82438152,-2115501197,516118532,1963373032,-1073715128,-79789793,1966094687,-96567199,1517629279,1610038912,-2142014161,811595070,1048595573,2000117750,-163676091,276246879,1610104448,1913222961,-113344459,779236959,2047264558,-339214577,-144284379,1621510,1962934528,1048667403,-536864582,132845684,2047264558,784334607,259786439,-1021321216,1465275216,249044621,-2144405965,17845822,-2140859276,18399806,-2140861324,18400062,512558196,254676746,-1959903306,772712580,-1073020535,-964490892,125840898,1609034498,-1017619618,508711760,-1911873864,22317784,-1392327037,393527307,703125643,-1014911744,-2112945920,-667222007,434694519,535816960,-1017619622,45240915,-2130703384,989921515,1526036163,-1051475109,-2144466709,-31427929,1922500654,1724078880,12150353,771751937,1904342631,469762080,1731081332,544309750,1946288128,-2140721653,2126241,401277440,-2114558162,8305,773026836,-1313206425,8305,1694987011,1762558822,-1075707624,1707301222,415383168,1699443713,415448704,1698919425,414858883,775648767,273417975,846528527,-387972936,-620035354,378217588]},{"sector":3,"data":[-490666640,-268388344,-2147419519,12190579,46983296,175430411,990117933,-1192070206,-1553596417,-943515462,2530054,1048601856,1946228930,1048601983,1946228931,1048798583,1962875066,116862575,987212,-1587189899,512432314,-473889424,1942174472,113730825,-59206,-661958933,-1190597695,-164757488,-215977337,1717897844,409538177,512,1922007086,-498925024,-2116514843,-1056177981,-1184495381,4,1293715815,9883,1233438311,9978,82543615,113765090,272027,-2123995709,1599758,-352321535,1048602099,251730114,1694576260,415448704,612634369,116862465,4132940,1889623925,197893,-1190991679,-936705984,1711988929,-1690913009,572198,-150880536,1979709379,147060528,772437248,273563264,545525505,-2116515072,-402391101,-661914038,1728637889,-1653269367,1728053286,-42564410,-16777178,67110214,914997218,-1125570917,1644611328,1694499077,414858883,1696363775,-1055343967,79235304,786117376,273057672,514527022,71503948,1727062532,-768346573,771753657,1278649103,776827664,273056906,-524166349,1048798472,1962875066,67011333,686298742,46397185,-143690496,1946157507,113716743,73840,-339617653,478766856,2530677,-2067372288,2555254,-661913856,67093377,1123918312,-1985420730,-1188652266,-1100611581,3,1963232103,9885,478897998,2530677,1036200704,242548740,-320683125,1695080641,-350700893,1717945088,409538177]},{"sector":4,"data":[16384,-949619733,-15156730,-1947538433,-1190825954,-886374144,-164694477,-350195065,-164741515,337670791,-2140856715,18399806,1344527,-1019314075,-2079391464,-2144468982,17845822,1606927,1921513006,175444000,91233849,117376117,-2010249872,1176597404,-1950883261,512241374,-2084363918,17130046,258360948,647706295,91229835,-1056718461,-1070398743,820566835,-205261056,-1960806913,149668312,1964804455,9885,1988413031,9981,-2116514817,-402391101,88538294,-790494208,647706249,1381060803,-745810953,-1070344053,-1190597695,170786820,773878407,544380704,-1946951101,-136084520,-1017620134,861032784,309714,-857154765,97717247,-186514432,1499126411,-1957444776,-1042666536,-2144466709,18903695,149143875,-277686213,-1910586533,-2116340776,1974097215,-164403658,-1966525594,-781843857,-921999647,-1184496011,131072,-1395553434,1231476738,-620037771,-1050275467,-661912342,-2088779133,-1039957790,-1173820423,-661913472,536396291,1745231555,1713356800,6878771,-13432864,-507393397,-1486425342,862333045,-2116120842,16958,-1961134624,81904074,4197947,6819958,243474176,-1995958161,-132604394,133759467,508674847,-768345444,-2147100530,-1042576384,-2144466709,2126527,512444021,243990690,-108986208,-2062613757,-146735103,243749329,113705120,-65374,-50529028,10489479,-50529028,-50529028,-50529028,10624649,1977170779,-2134736629,-545243904,-661738890]},{"sector":5,"data":[-770975604,-2147154059,-336028416,536452354,147374937,1449525248,1399215974,1740649318,-129660570,1718070780,-1375976055,251658557,1711336069,1348911155,-419821556,-352261226,12215808,-335544319,15401195,1114038410,1742767852,1975127910,1718026488,1727810955,104556374,1718036340,173979407,1988978279,-472816116,-487390362,-1335990552,-73996800,1080449126,150504294,-1779848078,258369280,16281018,1365659750,-2090445210,-1083833658,4,16956006,862322688,-1070373157,-1956205060,183076552,-335055648,-925711070,1114036234,-445296794,-1070373124,-667195731,-781827469,258369507,1713243319,-863319757,-479730638,-796170705,1724973926,-92182966,256,-1167718798,255,1926245222,1715627539,-1922643317,1730179646,17239168,-136167322,1499881062,1240029286,-1070373121,-1201273109,1,1600543590,-1010213274,1448549894,1053044305,521015462,-1190090050,-201588728,1600018854,12781343,0,65555,59391,0,65536,-503381298,18743296,0,16,0,0,46924490,47186638,47448786,47710934,47973082,-269155618,109117440,17956864,146800653,2248,147849216,2264,281018368,0,282066944,61429,92340224,786956,79955136,80479432,0,0,81003728,81528024,54554642,7,1048576,0,2248,0,2264,0,80479432]},{"sector":6,"data":[81528024,118255634,1136,2097152,0,0,0,0,47055566,47055566,47055566,47055566,0,46924488,0,47973080,80479436,80479436,80479436,80479436,35446784,0,524288,79955136,80479432,81003728,81528024,57344,18743296,1048576,46269120,46531268,46793416,47055564,47317712,47579860,47842008,48104156,61311,0,65536,-276888890,0,0,30015489,17756143,0,524288,147849216,148375752,47579136,48104142,82899023,0,786432,48104156,47842008,47579860,47317712,47055820,46793416,82894926,0,786432,47973086,47710938,47448790,47186642,46924494,46662346,82894926,0,786432,47973086,47710938,47448790,47186642,46924494,46662346,51929154,0,262144,113772224,114820816,26495,18808832,1048576,46269120,46531268,46793416,47055564,47317712,47579860,47842008,48104156,57345,18743296,1048576,46269120,46531268,46793416,47055564,47317712,47579860,47842008,48104156,18800641,1548,3735552,46269120,46531268,46793416,47055564,47317712,47579860,47842008,48104156,1216,1220,1224,1228,1232,1236,1240,1244,2240,0,2248]},{"sector":7,"data":[0,2256,0,2264,0,4288,0,0,0,-269479728,983040,67305985,46137401,46400194,46662342,46924490,47186638,47448786,47710934,47973082,79692510,79953920,80216064,80478208,80740352,81002496,81264640,81526784,146800640,0,147324928,0,147849216,0,148373504,0,281018368,0,0,0,282066944,0,0,0,0,0,0,834273536,837956054,837038536,1415983635,1716545054,249870095,22931487,916668032,-2096597248,19714062,-402502424,191234334,1729787072,604257126,116854135,142544,-370670219,1712157442,1714215585,79987528,-1017354721,-18330,-1092026369,1724181248,1716676177,509044310,521032550,1912863619,-617388541,-71889050,283885926,41278219,862376951,-804849710,1962934572,-1223727564,1714856246,-1559316977,1717035830,1585801043,1729262596,-562227969,1929379884,-751081907,-1956248717,1734043347,1991708518,-337845758,-1223727567,1714855734,-1559316977,1713627958,1585801043,1729262596,-461564673,1929379884,-751081959,-1956248717,1734043347,917966694,-1956192798,-111450430,-1956243477,-1956223032,1827144774,-804910842,-1047828948,147096422,1600528376,1516658278,516118886,116858638,142544,384304500,1713171202,1962932355,-804849898,1946159148,34793475,751830775,57933828]},{"sector":8,"data":[-402506008,-1021377087,1449546086,186562590,862378126,-1223727424,1714855734,-1559316977,1728897846,138806118,-1223727513,536142390,1499881062,1716545219,105997907,365791412,477413387,117440616,413573926,47974,258342928,-1050228553,-1201272095,8,1717134855,-1017616805,1399214182,1465274726,1564394502,1036265014,1228796,-1187620930,-1494024187,499073397,912047616,1714976166,268435643,258352640,3016374,283165030,2924838,-1950143642,255237942,916655798,962994147,427101276,205783398,138684774,58134386,117851368,1499881055,1483103078,1727327171,1716741712,106387025,912342724,-1187617346,-201588728,-1153534554,647036896,-2094653557,-16777025,1713778548,76527375,1713824512,637854145,427915,75967270,-1223727616,-1014929704,983040,82035046,309350,-1092091904,1583286021,1533434214,1724078182,11724896,10912271,-851242824,-769750737,-737768404,-16731092,-1557343714,512306390,146025688,751967999,-927527066,162815459,520081803,-1073009454,213153908,520090251,-1073009454,-963941260,283165030,46695270,283296102,-1867418,1711276287,-2123965941,251,1711567361,1712375939,1711989185,996595971,1982650910,512321029,728116442,87025881,751832707,1721232130,-1623804145,-1240504778,-482958578,1728951317,-16361845,187486750,1728804032,917966694,1727589346,1727644513,-1202666655,801981184,257458236,-134217083,1724119491,1962932355]},{"sector":9,"data":[9103365,1189610475,1348911873,1382437734,1711691622,3581119,146433536,-402653184,-2124020907,268435691,-339646976,47114,-1993949042,119055902,1516658534,1483103078,1716545219,1465017939,-1530960378,1711276086,1210,52422656,15434086,1711337472,-1962611775,-1909038274,-2048057,1032529552,110963494,86304768,77398310,-1660869120,568852486,1717503749,1717266010,1617347416,-1207544730,-1064435712,365791412,413573926,-1223727609,-768383260,916438886,1718026240,72332815,-2079340277,1718026373,1731704591,72760166,1718028917,-499730673,-1871647758,1451976295,44034052,7176719,1399214182,-1083811994,13988,1711443176,1731752543,605825894,57017974,-617388349,469984871,-16423388,1711276035,-262107,-389978369,1725467402,-356424110,-15748080,1714213406,1958742874,1712515872,-356424110,-16075760,1714213406,1958742874,-998021620,-125310200,1634098278,-998021437,1550252296,1354981734,1716610642,-1223727530,1714855734,-1559316977,-1273896138,1451976458,-769720570,258369324,-270387529,917966694,258356900,916983478,179573219,106335079,751967999,-1223727513,1726997046,1515808350,1382466392,1096294,1877475328,-1017485824,-1167699354,16,1711321064,1382466394,268483174,1407713280,-1017485824,-1167699354,4096,1711313896,1382466394,15718,192806913,47718,803733506,1711926016,16777402,12380160,1724078694,4023890,2113929472,12215819]},{"sector":10,"data":[-402652672,166395996,47718,-1572863,-1017485824,1586194023,57042700,-144308130,-668244262,593891446,996567002,108137566,-119867546,1718037483,1712086667,-635214261,1725626214,1718082051,1728863787,140393318,862324342,166459867,1742468966,140378982,-144260103,-1956223014,1264979038,1725571942,57072375,728131546,1718029406,1913151035,-617388538,1713695737,1718082551,1711824387,57923643,1712647161,1718082295,1712086667,-635214261,1725626214,-1007101437,1382437222,1586194023,57042700,-1956247458,1716086475,593943287,-668244278,1926839142,996566798,913509470,1586194023,1730997000,206998374,1443063399,-785684984,1725533030,1718081579,1930190395,-645175787,1579902567,-751081972,65733235,-103117978,1727529451,-1017551270,1382437222,1586194023,-880056820,57035366,-755538230,1724523366,728158603,-801413421,1718029938,1980257851,-1956223176,787155038,1446733415,1728542216,140413798,-1956241173,728131545,-144307122,57042905,996542542,1712223176,996596107,1711503322,-335947125,1516697601,1724078438,1717003857,862371891,258369499,-486256714,258369336,1718042551,1946441531,-336403964,-1956223192,216730719,-1223727513,996566847,208995415,1200318055,57042696,-387838905,-121427098,1499881318,1600584131,1724078438,1716610640,1717003862,3579839,258369280,-486256714,258369303,1718040503,1711716111,930412347,1711348968,-287117173,916766566,1718026240,72332815]},{"sector":11,"data":[1718032355,1731704591,112660326,1962359654,12380178,-487552154,1600583918,1499881062,-104638362,1583767398,1483102566,1716545219,1716610643,-396925354,1718026472,1728863881,139364710,1183409767,-1530960380,-402653130,-1150942960,13983,-1240504729,1726153803,-1223727513,-1956223205,1718029379,1728594691,205925222,-387840905,1718045931,1946699307,1715696155,-930388397,1133209191,-1956223228,1718029406,-402104829,1533411405,1183540839,728131340,225905731,-2023351182,6023390,-336360602,-1989777659,1727531075,1717462623,1717266009,1727644504,1717134943,-1017616805,-1083811994,13988,1711299304,3582399,8316928,1724079974,-396925354,1718026292,1728863881,139364710,1183409767,-1614846460,-402653130,1600520284,1724079718,-1614846377,-402653130,-1083834337,13993,1711293416,1466352479,917094246,1718026240,-399001841,1600520195,1716545219,2139121491,477364228,-1223727513,258369310,1728202423,-1989732215,-26803645,1727530063,-1017616805,1717266169,1348911960,-1956228250,-1956223009,1718029382,1713092367,125099835,1127835239,1743746572,1136070502,512321282,38177127,1731234151,1728213897,1711556606,-1017616805,913114823,199819006,113754880,-50579859,-1023409688,1466324582,186564177,-1670810,1711276287,1711597249,913163905,-1083834368,-2134900736,-402652487,1717108742,-1017223585,102654054,-1911873864,1723895512,585680523,-947165696,1090528744,915270097,-2018232721,-844623880]},{"sector":12,"data":[1923682069,1713309445,520602465,1724080486,280712016,132878336,-1152167834,-1987051496,1714844039,-2012157759,-2009697401,-1992919385,1530294159,1455642726,1263749444,25640,16771072,1127428336,1095781711,81,0,0,0,16777216,0,16777458,0,242,0,0,0,-1627389952,3579702,916731556,-533286912,-611883972,917059264,0,0,0,917518032,0,0,0,918566624,0,0,0,919615216,0,0,0,920663808,0,0,0,921712400,0,0,0,922760992,0,0,0,923809584,0,0,0,924858176,0,0,0,925906768,0,0,0,926955360,0,0,0,928003952,0,0,0,929052544,0,0,0,930101136,0,0,0,931149728,0,0,0,932198320,0,0,0,933246912,0,0,0,934295504,0,0,0,935344096,0,0,0,936392688,0,0,0,937441280,0,0,0,938489872,0,0,0,939538464]},{"sector":13,"data":[940587056,0,0,0,941635648,0,0,0,942684240,0,0,0,943732832,0,0,0,944781424,0,0,0,945830016,0,0,0,946878608,0,0,0,947927200,0,0,0,948975792,0,0,0,950024384,0,0,0,951072976,0,0,0,952121568,0,0,0,953170160,0,0,0,954218752,0,0,0,955267344,0,0,0,956315936,0,0,0,957364528,0,0,0,958413120,0,0,0,959461712,0,0,0,960510304,0,0,0,961558896,0,0,0,962607488,0,0,0,963656080,0,0,0,964704672,0,0,0,965753264,0,0,0,966801856,0,0,0,967850448,0,0,0,968899040,0,0,0,969947632,0,0,0,970996224,0,0,0,972044816,0,0,0,973093408]},{"sector":14,"data":[974142000,0,0,0,975190592,0,0,0,976239184,0,0,0,977287776,0,0,0,978336368,0,0,0,979384960,0,0,0,980433552,0,0,0,981482144,0,0,0,982530736,0,0,0,983579328,0,0,0,984627920,0,0,0,985676512,0,0,0,986725104,0,0,0,987773696,0,0,0,988822288,0,0,0,989870880,0,0,0,990919472,0,0,0,991968064,0,0,0,993016656,0,0,0,994065248,0,0,0,995113840,0,0,0,996162432,0,0,0,997211024,0,0,0,998259616,0,0,0,999308208,0,0,0,1000356800,0,0,0,1001405392,0,0,0,1002453984,0,0,0,1003502576,0,0,0,1004551168,0,0,0,1005599760,0,0,0,1006648352]},{"sector":15,"data":[1007696944,0,0,0,1008745536,0,0,0,1009794128,0,0,0,1010842720,0,0,0,1011891312,0,0,0,1012939904,0,0,0,1013988496,0,0,0,1015037088,0,0,0,1016085680,0,0,0,1017134272,0,0,0,1018182864,0,0,0,1019231456,0,0,0,1020278441,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1399214182,1449546342,1503705190,-1150943232,0,1711339706,-1173298495,-1100611512,15604,251850984,771811714,1586194023,-1989778172,-1961295842,1711630878,10680,1726215680,-1011625845,-167404896,-1039964445,694617446,-1150943232,0,5290598,-2090467328,-1360524090,-1484648702,1718038016,1694785163,69110118,1773692441,771751968,1586194023,-1014929916,1586,512321125,817502476,-490641920,2669072,1711449576,295096,12281344,1711276032,22714,-964467200,39839756,5800463,-1956223186,1717896286,419962505,134264934,-1150943232,0,1096294,-2090467328,921177286,774992386,1586194023,-1989778172,1712919582]},{"sector":16,"data":[88248,12281344,1711276032,2234,-964467200,34596876,-1956223186,1717896286,420486793,1516658278,1483103078,509634243,-188848634,1711276092,772589187,1187472999,2663432,1718038016,-1022867839,771751936,2123064935,-276077052,681885286,57016320,-947820802,195,1711277254,-306659277,-524196350,-268212732,93984394,12826982,1474822144,-117217545,-260715778,-970414914,515375364,1723895307,728162187,1049192189,817833874,91267393,90969739,-10108373,639155206,201328071,38127398,1048772608,1946223970,1048601940,1946228930,1166616140,100754690,100735046,-1989868133,1696092182,1025004195,829685760,-1175047322,963051568,647853332,57933824,-1946951098,48873928,-966274509,654145156,1728053248,-25783159,1174405158,-503004541,80184297,407282021,1711638947,-4669389,1779338239,1727219973,-74750293,-1930022042,-423532858,-964598268,16688,309350,243990528,-503970454,-2014787445,-133994762,1725926246,-1989739221,-1087924674,862339376,1779338176,48349445,1722509043,862387083,1724288246,1711597249,1093715585,-1201274880,8,90836619,-930356746,1727415784,-1956186109,-47487265,-1707177626,1093713703,-18330,244056063,1727202666,-74750293,-1930022042,-423532858,-964598268,16688,833638,243990528,-503970454,65587339,-188848394,-1191182276,-68681723,-964467200,1727521292,1694856353,410297190,-1912449864,573144,-1912602440]},{"sector":17,"data":[413712320,-1519999642,414162982,414032422,-1090514754,-1520035664,-1608080026,-1574561609,520558773,1724080486,-397187504,443739373,-1989777618,1731070022,73304422,771757544,109667943,1717266168,1717945176,409538179,-236193532,1466323302,39108358,258393998,-1956185417,1716086472,-1663,225837056,260663078,283754854,1325950758,1718035974,71808527,283165030,1200318246,-1989728766,-1050279329,1730547915,637820808,125798503,281723238,1946221187,-1223727571,-108960006,65535,1730547062,-1050275959,1730547945,637947656,73369703,2139645734,-876517881,-1989728752,-1050279329,1711739082,-1017551265,1449546086,1731090278,139365222,-1956223186,1731069054,-399078554,124974306,1583767398,1724078438,1717462623,50009]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[0,0,0,0,1620836352,-386248602,-51902201,4319237,-1711209752,92547984,-402273304,1717897298,1728493327,916678168,973522694,251680774,627496992,4095,1946553190,1319331333,39106566,-2144943986,-50320090,-1654564762,39106755,1421394062,103802882,-1274980167,572306,-1207558424,518521450,134265094,280728244,101574656,-402291528,12125709,-1147489280,-51904440,92583941,-1190789912,-1833697280,-402589509,-306706965,99346434,-1275068231,5290898,-1207575832,-622329332,67156229,1488687796,97118208,-402522952,12125641,-1148013567,-1192754912,47109,-1190807320,-1699479552,-402605893,12060071,94889984,-1275068231,12630930,-1207593240,-1763179795,47365,-927231308,92661760,-1062153677,-1275068231,17873810,637892328,-2147006522,509634243,49133574,515430542,1707118091,415383168,-2095942400,17130046,1889602420,1812343557,815998469,-625416111,183026022,1048798758,1962872898,-1956239859,1712341534,-2045787349,1030095934,32768,104531575,108397957,112660326,-390003323,100869634,-389983952,16712962,-1962350399,182501832,-1559927133,109118824,201327976,-955586367,362246,93037324,2099153766,-1014929915,4194303,384549222,-1989805173,85480478,-1023213565,-1050226549,-1150939936,1,265897192,1711525250,91496073,1421366118,-1094676990,642384152,-1993993079,-1050279332,-2010771221,-970587044,647103812]},{"sector":10,"data":[-2147072826,125601830,-1201251482,3,-524173053,-670865908,2015267174,15777285,642766731,-1993982839,-1050279332,-2010771221,-970587044,647103812,-2147072826,125601830,-1911873864,1093713856,91791718,-1962932467,-1419313974,268436838,-152961024,-1091161242,-1050277090,-2124020506,4272326,1049323008,12125556,-513480688,53248527,1715548351,1812379407,-524196347,-930912756,1048601863,251730114,-2097069436,17130046,224790132,2048,806259494,264833873,637578116,561135232,-1803284736,778069504,246812518,-1050271374,1731071208,561152312,74711040,1978397922,-85438362,-1014929721,4096,12812646,-402652928,996595998,1918396099,-524196283,-259299828,268482662,-1150943232,1,1926763752,1718038061,780999817,1711276113,-74750377,268482918,-1142423552,1717528288,-1050229877,118295790,1722508808,80184161,1731074539,561152454,1694498816,1762558310,33554456,-345938432,1722508800,1048581,-2062595840,862388053,67156416,806234918,-492083631,-164403460,1712004798,1711597249,1093715585,-1956249600,1711633470,805357441,12124160,-531568624,35160591,-1077922970,12140848,-492083708,-164403460,1712004798,1711597249,1093715585,-1956249600,1711633470,805357441,243990528,-481753717,-1184476904,4096,13074790,-402653168,-2112888822,-497483310,129525480,1711276032,91758219,-1090256711,-2140847824,18399806,7963663,90324611,1887702785,-1223727616]},{"sector":11,"data":[1711631414,-2096306495,996542414,1552224198,915088896,-167030480,5342223,721551373,1716545230,1048585809,1946165618,258354734,561122998,216580454,-2127010002,8562,-186514316,1731073515,-1929082010,20782,1711408909,1717135019,1711729496,1717069401,353963,1308622864,-14305419,121464573,1962937344,20768798,-836036237,1382,-1419378686,268436838,1968046080,2975477,1711276544,268437309,-1467805952,1048585728,251666802,1711316612,258354784,561122998,216580454,-2127010002,8562,-186514060,1720745963,-972298160,12812646,1694498832,415383168,1711764481,50049,669515777,-1019517225,1181898854,216056166,1727040358,1048760,29058560,-402653184,779277853,-1956227226,12150523,-402653168,1600577230,1724091238,218951361,-164757497,270561924,-47905932,1722509055,80184161,1731085803,561152454,1694498816,1762558310,33554456,-345938432,4023808,1912606720,4023844,1929384192,2975260,1694502912,2047214438,1722508824,268435461,728130816,-350717434,1722508802,1048581,-2062595840,862387852,186564342,82231654,818315622,1711276097,-2123957365,1048771,268482816,1927167464,-2062595577,132906558,243492453,117708905,-1017027041,1862727525,1946159128,1699767864,409931395,-1900006640,1084319448,-1553570560,1717901474,-1206353245,-1050279936,-474476320,1084450325,49133568,-1956259698,-1055351242,1483081966,1696515065,410191606,857240577]},{"sector":12,"data":[-1193767232,-1050279936,-390590240,109536789,1717895236,521701027,1716545219,1048587859,1963003986,-995366843,12812646,1711276160,50049,-2140864511,18399806,-2124019852,16777411,-708777984,1925397350,12084770,1711276288,443,-725620736,1717899634,410656393,-1006188955,1533411608,1707300966,1762558310,33554456,-286525184,0,-119308205,638552358,637687689,637814664,1527080840,-404207165,-1966915073,82493652,81969554,-326479421,-1073422143,-805108499,1361290,-1672428711,-1655652301,11098268,-1206880896,-1655672832,11098268,-1660652432,-1660752904,1355503865,12256851,-104624400,-381779674,1967338495,-2144929737,1191175230,-2144981388,1392501822,-2144983436,1157620798,-2144985484,1124066366,-1897392524,15616,615517813,-1056928280,119866600,343296,-883401977,99154512,-1072956672,-760165544,587209960,-1340771136,2418754,208977955,1023422184,74711106,-1006633032,1405337651,3860560,1958749019,1692832517,-1017445968,703090771,-1071424768,-426572428,1526837344,911555,91537443,-466460444,-214845,-4632125,-1469782785,-1845829375,-1185823911,1692729343,-85982296,-1329374831,321550,-1023389659,15429862,1910767851,-344922429,-1979651328,-1015945532,1381061456,515444916,870003456,-389772590,-796196902,-989931005,783348706,-722933878,-1976585985,-3282717,1482381658,195,0,0,-1409525936,-1330921077,-1411151360,1605091979]},{"sector":13,"data":[-61815976,268428161,-1951677685,-1017599038,-1962570970,-1867304,-268425969,39160614,1716741827,-1050224501,-473884949,1727761154,1399243611,1725467494,-2129859647,-1056702493,-74775837,12802918,0,0,196479920,197266364,198052808,198839252,199625696,200412140,201198584,201985028,243666560,244453004,245239448,246025892,1717936143,-1877035249,258368783,261232311,-1175047322,-510786966,1711294648,-1055858495,-490667037,571651,76244782,5935221,1718051840,-2131426167,1677721602,-184236441,645,-1956172146,1518368004,1734606848,-234583706,1153853284,1183712754,109955810,1717833199,1677789347,17630918,-1012854802,12781318,0,0,0,772166502,255592134,-949604862,998918,1694498816,-1610168474,15,1533413120,106129091,1048798821,1963003808,1075758095,-1956239870,1717895519,262151817,-1017420281,-962501114,-838404347,1962936325,45835814,-402653184,-1989750331,1929759262,-2090441462,68708622,1711326697,-2123966461,251,778204673,515313510,-1050275681,-1956248349,1716086472,1030146819,65536,-144302733,16777411,1712026880,49655,192217089,-144301845,16777409,1712813312,-2123969653,16777155,-478059008,-65536,1724590950,-1989754581,1711655454,772073665,278857217,97390211,5695496,1702887611,-1106839706,280,856912896,1358299,-2071202253,-996538872,1174766635,1717957858,415106807]},{"sector":14,"data":[65536,-617409420,855638713,-2068443146,-996538832,1174766635,683275234,267793152,98600118,-2077506406,-203274747,862372615,702966,-2133423279,-24936246,-1962577400,149586134,332204212,-511699086,1959332415,238693904,-2045813488,-2010251248,-346222578,258368777,265369267,-2008612943,-33228404,-290158394,-1126016764,112594734,-524198640,-744273918,179922436,-1207959552,-1989737984,84167940,-152961024,702822,-1587150848,-1956248122,-356423984,478897936,328781,1039398656,-1911619328,-5242878,-2121767067,4052,96903526,1724943206,1729161921,72162443,-2097151995,-201915197,251723837,-1342176626,-2006489601,1040001,-1011883520,0,0,0,0,1650803748,1145333621,-256,1342578431,1465274707,238878904,1562425887,-2112937523,-661979119,-1186722632,700067841,-1272853155,1696714046,227686143,922707207,-1155592816,-478150320,509944,38258456,1204158464,1204158468,1204195845,12091398,22068036,855713977,788476918,691962726,-2079326371,146407434,520039936,48979241,1583311053,123231065,49951,0,0,1399214182,1726516230,-1928273727,1696279558,424846182,-1050230733,90574056,6494,1453549157,-1070373351,-1260876954,-1943941806,-524196160,-1023187452,583041894,1587766885,-1070373351,-1050220404,90572000,6890,1654875749,1533413145,1354979430,509040209,-1933538298,-1898410258,-1913156666,-65328066]},{"sector":15,"data":[1459650745,252525740,1006638468,260312842,253770752,1006635396,58986240,-454907392,378406,1153847391,-377421569,-638123903,1622470955,56107469,-12285711,1583292167,113465433,-1962467753,-6297346,12781407,0,-1609628064,872363496,787887040,1913566735,264833825,771824772,1939650063,1960512289,-2013909471,1946427506,19458053,-164752149,270561927,-473887627,-2116842744,-402587710,1229324680,-1956261515,186152990,-494661669,-1898738944,503538914,-1908211709,10511587,503538688,1682112515,212611,1009218816,-401902502,-477232958,52298596,-1209515264,1692569088,1677721762,204425,51784036,251618304,-494141437,-1082828228,-1191182405,567104000,268434307,637569156,-1895932021,503523011,2071068675,1048585795,1968832512,507209198,1802836088,-1956322418,1124074270,4096100,24402432,503391811,-1014235133,52298534,-339655936,4241414,-1989877618,1694503710,-1106345626,8388632,1708864256,410525319,56943502,1124074270,4096100,-392406528,1956446242,1709411866,410525321,52298596,-2090581248,318,132646260,266791680,-1017051231,862343270,-1553570624,1717829632,1677722787,566118,212035172,-1017616896,-1051307693,-4585245,787887103,249203851,343197963,973260419,1005614575,-1947438134,-2080470063,-471137553,1962932867,1993358136,46659393,-1961265920,-2050543910,69338,771934083,249281850,-897513868,535494911,771752378,249206151]},{"sector":16,"data":[74832443,16763521,-352316440,1961310881,-2116842743,-402587710,1499332612,-1072970917,-527558284,444004,-1989915392,1677722398,198185,51314532,1694886656,410525321,-966466674,1291845638,17221476,1677721600,202377,52308324,251618304,-966524925,1286,101107556,1677721600,134661990,0,-949591040,3078,-1912602624,113665250,1683619840,67271,-949747702,774,113665024,1677721605,394951,1717829632,526023,538987859,113731172,538968076,-527687648,528718531,963772416,-402602520,-320339906,116811008,1946294387,525113906,728956928,681641670,-1862565888,113647988,1694574753,410199680,-2123995651,1599758,-352321504,-2123995894,1599758,-1023410168,1364218630,-1956292778,1696490014,509871758,1745259621,109850142,-1993469789,638624030,-109047925,327421931,-352747520,4424975,24611622,55021094,-722739573,41910566,-2062577520,-2144993235,261096575,-1962924923,-1967115269,-1516097851,132368,-1989814269,639526430,652871110,-1912519225,1837901342,1695214339,1762558310,524312,1499356928,-1022928040,1397753374,11804430,117440616,1646198566,1584440094,1584537225,34143105,1713769075,409538177,4096,520575067,503887043,520093800,509746943,129286943,26654,1646198559,-1073012962,-1007091084,50168,0,0,0,0,0,0,1024,0,0,-1912411464]},{"sector":17,"data":[48937152,-1175022360,-1833697240,-402650949,-306645373,-159127550,-1275066183,1096594,-1191808280,1927809822,47606,414948020,-161355776,-401924424,12187233,-1148013568,1357381664,48937206,146725006,186562560,12566670,1722115682,127936165,94512738,1097314,1717700799,648373925,643960736,-1671295582,404130862,646524514,1727685146,369168174,778461696,136184079,-1071640734,29918054,-356507121,1598140,-1912594248,-1899983144,-1897886000,-1071640600,-121498,571441151,1658514112,254675742,1645223425,404131374,646655586,537879066,-668856360,50077]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[17740,0,262146,0,32800,5,3,0,0,0,4096,42,1336,0,113,0,196,3,268,0,0,0,288,298,0,0,309,333,1643,0,1644,0,75264,2,91690,52,0,0,0,0,0,0,0,0,0,0,0,0,50331676,6664,0,8261,1,2,0,4632,8192,8213,3,2,0,42,16384,4101,5,1,0,65536,131072,196608,262144,327680,1634683910,6899812,50397184,-469565439,18,0,106752,112128,323328,335360,335360,-436205824,323223815,23199751,118146305,17014528,527301,1157760456,805308174,176881921,17039399,6293772,51839487,459846,201392768,50341642,454249473,2013744647,50341639,252317697,-637422336,1577060098,324010247,49872903,118198785,17125632,463508,1409353337,117442323,307560709,54198279,655070721,402719744,1241522952,1359072512,-1325398270,324534534,130088967,118609922,17278464,460697,-1711209654,-436205557,26870277,15859719,654990081]},{"sector":4,"data":[469828096,-687463149,-1526724857,324796678,56164359,118201857,16826368,2558496,232784130,92406729,72482823,118611969,17097984,463392,536938027,-1107294445,325058822,17104935,3543844,40108431,78185589,17039399,5441572,34079204,459384,1677788870,83896083,1058220033,285253888,1845593601,-385874174,136839425,96337928,117860354,17225728,2560872,95158531,51380728,459839,1812006484,-385874157,321913094,57147399,118207233,17233152,463668,-1224670343,-1795160309,184025346,129171463,118700033,17305344,465400,989921970,-1325398261,322699525,134610951,119143425,16968192,461693,-1660878112,-67107065,94372098,51642375,655548417,1073807872,335562003,1627391757,230686978,144703495,118833153,34399744,458752,-2113863118,1392510733,239272195,182910983,118948609,17648640,463684,-1006563862,-1409284327,117702926,224788487,655967489,117572096,940513042,1979713295,352846088,221118471,655951873,1208025600,-837975021,-1124071665,428343565,6160391,655100161,-905903616,-1811258874,-1140848885,382402826,17039399,55052556,65078205,2557192,168558854,72483869,74843243,77399166,217448455,119065601,17636864,460748,-855571279,33564430,-1223553790,118413326,16913152,462158,1325466965,67118863,-804646911,-1392433664,117635073,34037504,462928,-805238757,-1224734956]},{"sector":5,"data":[412090636,242614279,118706177,17134080,462737,302056753,-1459615985,378667273,17170471,48695828,97584571,103548441,460338,-738130545,33564431,1611879425,654919944,335676928,-754006254,655287310,1141846799,-654309617,332726534,25100295,655136769,402720256,-519907574,-687487998,319162629,-922745082,135790852,133627911,118790145,17418240,463704,1493240197,1509951254,408486156,32768007,118299137,17188864,2560026,320602371,205848633,2559369,169607426,85983544,17104935,49088540,97191119,104531487,164954119,135486465,17698048,460318,-536805353,83896075,1510481921,-553455103,604370437,1798,232784133,157220871,655761409,1610678784,168433427,150996747,404750604,16908327,206246688,462223,-536736235,-2097150191,341901575,53411847,655237633,1677788160,1057634579,1846241290,-738195701,321126668,63438855,118400513,17555968,464871,1744896253,637536012,367526153,16908327,173871976,461711,671157468,1090520851,338231559,28770311,655157761,738263552,-738115576,33564420,1393142785,117758209,17035008,460204,-1409217064,-1157626109,397279499,165543943,117862145,17365760,2561456,321913090,250350728,41287687,118354177,17243392,463857,-1325265578,33564431,-1642908671,655351052,-1258225152,1930052614,1224738571,393543947,59834375,118388737,17352704,464248]},{"sector":6,"data":[939593276,-1459615981,330957062,16908327,109056828,461876,2080442291,520095508,389808395,227803144,117963777,16812800,2559037,301924866,258608971,16908327,7150080,2556065,436470018,28115063,16908327,2233136,458812,-134152054,33564441,-2129003519,62464]},{"sector":7,"data":[13312205,1465253889,397800,271944448,1174405130,-1070368140,1347420266,1783844944,406191872,-855638008,16798496,549749504,1618264075,321142155,344522752,675121979,-1996488685,-91538684,135794059,-507445248,607488778,-67108856,1622779379,-1107296256,2316,41146,373063680,-1206029312,-2,6967634,6948714,1375824464,1612762451,-2097151744,1515789508,-639483290,-1017225224,-839193607,16829216,-1957210624,1255485,993299200,1081406987,-850001814,16799776,147096320,460701707,-1100964708,2592,12722381,-1654587391,12656845,41156609,1956446669,1778412054,-849981440,16799264,281314048,57982987,-1676612616,173784672,550305792,65730,1610194273,550355806,65739,552097622,-1962934268,1255485,993299200,1433728523,-850001814,16799776,147096320,460701707,-1100964708,2699,12722381,-1654587391,12656845,41156609,1956446669,536897558,6946816,550327888,65623,185648259,-1676511808,180731488,550305792,65730,-335962783,1583347713,-887042621,1442840832,61073495,-1070399488,321404299,75956224,608013115,-956301293,-50428,-1072955393,6950004,1428213072,-2097151744,1583286468,-887042621,-1962934016,659509,-2079373824,205,141227571,1448498774,-16684458,530485,1394658560,-2097151744,-1073012540,11502607,361299968,2084,534691,16824576,1375469568,-1928033463,1452,210351631]},{"sector":8,"data":[-486539255,1032540460,2084,1921726979,1253445380,1722086154,1946700299,48873742,191276531,-511506358,1503982339,-502480253,-2125899308,41209,-843614464,16778016,1757426432,128,1347440720,-16749997,530485,1394658560,-2097151744,-1073012540,898321524,4900,378139395,321402251,-217907200,898303625,2084,227277451,2572,-1056718461,-201587991,1220555685,1620876483,719038,-1038037760,1627390208,-1054814819,1946157312,-1660826366,-1667490837,188464736,550305792,65730,550346081,65729,30212724,-164405091,12460237,550305793,65739,168836491,256311296,46980,-1663356160,192790112,550305792,65730,1620876641,758462,-1038037760,1627390208,16824733,1375469568,-1928033463,1452,210351631,-486539255,1921732975,1253445380,1119293194,-2084502776,1182076923,12853453,1936982017,-1765908324,-855638005,16826912,-1667407616,194690656,550305792,65730,1620876641,761534,-1038037760,1627390208,-1100964707,2995,12722381,-1654587391,1620892467,767934,-1038037760,1627390208,-2091301987,-1847456574,-108967591,160,-9402609,267124735,-977379172,-855638005,16826912,-1013096192,13312205,80216065,-930414592,16841089,-2096168960,319,76006283,909453,-1043232000,1342377186,216711428,1381061456,1794930061,23746048,1629539666,-2097151744,1499074756,-21079973,1358954495,1783779667,1778870784]},{"sector":9,"data":[23746048,550326353,65632,1511834755,1347967833,-1957539501,64940225,6946816,1397817706,1579208018,-2097151744,1499075780,537876571,-551415841,1375501707,-1400040309,251658245,151816630,-922025984,-1667490955,299941472,550305792,65730,550346081,65729,30212724,1718449309,4245495,-1957604783,1254461,943491840,1921726979,74646276,172668431,191276275,242485322,-217912895,1242261157,65110792,-2091277069,-824046398,-1957602982,1254453,859081472,2055942659,75170564,172668431,191276275,242485322,-217912895,1242261157,65110792,-2091277069,-824046398,-551547047,-908123633,1620876483,1188030,-1038037760,1627390208,-1054814819,1946157312,-1660826366,3088589,-1664942079,1438539932,-855637998,16826912,-845324032,16826656,-855477248,550345985,65583,-887042621,1778385152,-855053567,16829216,-2097124864,1946166332,-1957670092,18927043,989856000,1968920771,1620876324,1217726,-1038037760,1627390208,-1054814819,1946157312,-1660826366,-839503008,16825888,16824576,-108986368,160,961093494,232819996,-294322176,550326611,65539,-389969072,-492,-346334888,-1017579303,13312205,-396361727,584,-2089913759,1260605,1702100992,1962997891,655288581,-125632512,-385518335,12001,1963456643,-97851131,-125566977,-385518324,-1131,1963128963,491448581,-125632512,-385518323,-1266,1963915395,-90576635,-125566977]},{"sector":10,"data":[-385518333,212,1963325571,18868485,-125632512,-385518316,-842,550355960,65739,1252513,537758464,-402653165,456,863293963,6967377,1397752170,1579208018,-2097151744,1498944708,460701707,-1100964708,4972,12722381,-1654587391,12656845,41156609,1084031437,-842808862,16829216,-1957211392,1266749,-1960901888,-620015525,-2081028236,1681,1968922372,-561294568,136600619,-75371567,160,-16354469,1268773,25067520,-756732,1267749,-887042816,1459618048,325074315,1066074112,325330431,550305792,65739,37849446,637493081,4968,13312205,-957874175,-1946157062,1257525,-1675571968,-1962934016,1258549,-1675571968,-134217472,-1869573949,13312205,-2124021759,1476598909,-2090459787,1963004029,1279099670,-16777197,-2090463884,1711352909,18630087,-104597504,-887042621,-2097151744,-1923650324,-855366532,16813344,550330112,65667,323749319,-65536,-949551105,1476598853,324017547,-2124021760,1711341539,-1206887031,33,8659149,96927745,4940,0,8790221,-1923743743,-855366540,16813600,-998023680,-339478420,4,-887042816,-1677721344,127469055,550305792,65737,943555485,19,-1070397835,-1007028685,3266750,16824320,-1007157248,13312205,13107201,480313344,-1056964589,1161366752,-922258680,323233279,28835840,-922746880,195,13312205,-1007157247,13312205]},{"sector":11,"data":[-796196863,435950891,-490668032,-132840702,-1962934247,49938]},{"sector":12,"data":[0,0,0,0,-1,0,0,0,1734430815,1952794469,1702521171,1919181889,1767990816,543450476,1226862191,542397262,1684955496,1595958636,1684107084,1381984584,1836413797,1297506149,1124076810,1684829551,544483182,1801678700,1936607520,1668178292,1969365093,1919247974,1296916256,1381978695,1836413797,1297506149,1593838858,1701273936,1400137031,1097169513,544367716,1818845542,1864393829,1313415278,1746949203,1818521185,1298079845,1599227725,1886614867,1600417381,218778966,1970225920,661546092,1853169780,1801678700,1936607520,1668178292,1969365093,1919247974,1296916256,1398755911,1701868405,1449092206,854605,1869376577,1769234787,1713401455,1970039137,1277191538,1214538095,1850302313,1931506803,544235886,1634683999,1600735332,1953721929,1701015137,1953066569,1886220099,1702126956,1090522378,1668246636,1869182049,1634082926,1920298089,1297490021,1867259953,1766351969,1936607583,1281302644,1214538095,1850302313,1851880563,1850303843,1866691689,1701605485,218785140,1394614272,1953653108,538976288,1852132384,174617703,169869325,169869325,169869325,538968077,1918989395,538976372,1699487776,1752459118,536874250,587205898,541676357,1159929888,218781761,544165376,1953721929,1701015137,1952539680,1852383329,1112364320,854643,762212174,1869768026,1634493984,1595962215,1281647681,1214538095,1850302313,1851880563]},{"sector":13,"data":[1950967139,218787173,1682005760,1634684004,1600735332,1953721929,1701015137,1835365449,1684103712,1936607520,1886999668,1696800869,1763735649,1696800878,218789988,1682005760,1634684004,1600735332,1953721929,1701015137,1835365449,1852394528,1847620459,807433327,1684349728,854648,1936943437,1746953317,543449445,1702126948,1869182051,1096753262,1867277412,1766351969,1936607583,1668178292,1702119781,854637,1684291935,1684107084,1230989640,1635021678,1231381358,544040308,1684107084,1230989640,1635021678,543515502,1987011169,1095573605,1313431384,1348424787,1397049153,1953459744,1886745376,1953656688,589325413,175662181,1281294349,1214538095,1850302313,1851880563,1850303843,1866691689,1701605485,1847616884,1852383343,1851880563,1814062435,175403881,1281294349,1214538095,1850302313,1851880563,1850303843,1866691689,1701605485,1696621940,2037544046,544434464,1769152560,589325690,174682981,1281294349,1214538095,1850302313,1851880563,1850303843,1866691689,1701605485,1696621940,2037544046,544434464,1769152560,589325690,174679141,1281294349,1214538095,1850302313,1851880563,1850303843,1866691689,1701605485,1696621940,1769108590,1847620453,1931506799,1702130287,1696800868,1042311539,1684349728,854633,543450191,1702060355,1852383276,1851880563,1864394083,1819436406,589328481,543781733,1095050048,1701584984,1159929966,218781763,538976256,538976288,538976288,538976288]},{"sector":14,"data":[538976288,538976288,538976288,1768187171,1159938080,1814059073,589327973,173556549,1229520909,1701716035,1632641143,589325671,544760677,544503151,1914725999,1701277281,1224740106,1394623305,1953653108,543649385,544695662,1701273936,1667572512,1948265592,1701601889,1920234272,544498549,544501614,1953525093,854649,541280585,1969906785,1684370547,1936615712,1701978228,1869881443,1864380448,1701716082,1769152615,589325690,174682981,1229520909,1986994243,1818653285,1852405615,1769152615,1663067514,1953396079,1734438944,1696800869,218789987,1836008192,1702131056,1867260004,1766351969,1936607583,1297506164,1718960735,2053722975,1718558821,1595944992,1684107084,1230989640,1635021678,1231381358,1131702638,1819307375,174421093,1281294349,1214538095,1850302313,1851880563,1850303843,1866691689,1701605485,1411409268,1601203557,1147096406,1600222305,1634038337,1953853216,1851880563,1735289188,1090522378,1668246636,1869182049,1634082926,1920298089,1297490021,1867259953,1766351969,1936607583,1281302644,1214538095,1850302313,1851880563,1850303843,1866691689,1701605485,218785140,1819033856,1952539503,544108393,1818845542,543519349,1684107084,1230989640,544502638,1885433459,1867276064,1766351969,1936607583,1668178292,1768835429,1836008308,1952803952,854629,1869376577,1769234787,1713401455,1970039137,1277191538,1214538095,1850302313,1142977651,1919120229,1595961449,1684107084]},{"sector":15,"data":[1230989640,1635021678,1231381358,1131702638,1819307375,174421093,1631977485,1730178153,544698226,1684107084,1230989640,1635021678,543515502,1668506980,1718968864,1816207462,1633906540,1867277684,1766351969,1936607583,1668178292,1885424997,1970435155,854627,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1684107084,1230989640,1635021678,543515502,1819631974,1852776564,1734438944,1769414757]},{"sector":16,"data":[807430260,1414351136,1634683999,1600735332,1953721929,1885424991,2053722975,854629,1330795077,538982994,1684107084,1230989640,1635021678,543515502,1819631974,1852776564,1852796448,1936615725,1668178292,1634738277,218785127,1953449728,544104736,1953721961,1701015137,1734438944,1634082917,544500853,589327983,544760677,1293958462,1230985281,1599361870,1162297680,1852383315,1444962592,854605,1096040774,1380261964,978472786,1867259936,1766351969,1936607583,1668178292,1297506149,1953719620,544829298,1819042147,1998611557,543716457,542655045,1967333437,1297506162,1851869279,174419044,13,1949,0,1835776,1,1684107084,538995016,0,1440,0,0,0,0,0,4832,1,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,1684107084,1346005320,1232304488,1450144878,1713387064,1936484705,544175136,544235885,1937336432,1734438944,1970151525,1919246957,1145381664,1852383320,1881173876,543516513,1651340654,589328997,173556037,1866661901,1852075125,1881175079,1751348321,909661728,1380404557,218771744,1970225920,661546092,1634738292,543712116,1295398998,542263117,218784049,1684620288,1953459744,1852401184,1634738276]},{"sector":17,"data":[543712116,1953721961,1952675186,544108393,1212948529,1937331039,1769096031,1633905012,1850302316,218788969,1684620288,1953459744,1852401184,1634738276,543712116,1953721961,1952675186,544108393,1212948530,1937331039,1769096031,1633905012,1850302316,218788969,1970225920,661546092,1634738292,543712116,1295398998,542263117,854578,1819635523,1948741220,1952542752,1444964451,1296905784,840979015,854625,543451460,544501614,1684957542,1952542752,1763731555,1920234350,1769235317,857763439,1598573600,1601403219,1953067587,1818321769,1768835423,854644,543451460,544501614,1684957542,1952542752,1763731555,1920234350,1769235317,874540655,1598573600,1601403219,1953067587,1818321769,1768835423,854644,543451460,544501614,1684957542,1952542752,1763731555,1920234350,1769235317,891317871,1598573600,1601403219,1953067587,1818321769,1768835423,854644,543451460,544501614,1684957542,1952542752,1763731555,1920234350,1769235317,908095087,1598573600,1601403219,1953067587,1818321769,1768835423,854644,543451460,544501614,1684957542,1952542752,1763731555,1920234350,1769235317,924872303,1598573600,1601403219,1953067587,1818321769,1768835423,854644,543451460,544501614,1684957542,1952542752,1763731555,1920234350,1769235317,941649519,1598573600,1601403219,1953067587,1818321769,1768835423,854644,543451460,544501614,1684957542,1952542752,1763731555,1920234350]}],[{"sector":1,"data":[1769235317,958426735,1598573600,1601403219,1953067587,1818321769,1768835423,854644,543451460,544501614,1684957542,1952542752,1763731555,1920234350,1769235317,824209007,1212948528,1937331039,1769096031,1633905012,1850302316,218788969,1684620288,1953459744,1852401184,1634738276,543712116,1953721961,1952675186,544108393,1277178161,2035507016,1917017971,1667855465,1230990433,175401326,1766064141,1869488228,1768300660,1881171054,1751348321,1936615712,1668641396,1852795252,540160288,1398753356,1130328953,1769236850,1600938339,1953066569,1140854026,1847616617,1713402991,543452777,1668571504,1852383336,1970435187,1869182051,540614766,1398753356,1130328953,1769236850,1600938339,1953066569,1140854026,1847616617,1713402991,543452777,1668571504,1852383336,1970435187,1869182051,808525934,1598573600,1601403219,1953067587,1818321769,1768835423,854644,543451460,544501614,1684957542,1952542752,1763731555,1920234350,1769235317,824209007,1212948529,1937331039,1769096031,1633905012,1850302316,218788969,1684620288,1953459744,1852401184,1634738276,543712116,1953721961,1952675186,544108393,1277178417,2035507016,1917017971,1667855465,1230990433,175401326,1766064141,1869488228,1768300660,1881171054,1751348321,1936615712,1668641396,1852795252,540225824,1398753356,1130328953,1769236850,1600938339,1953066569,1140854026,1847616617,1713402991,543452777,1668571504,1852383336,1970435187]},{"sector":2,"data":[1869182051,875634798,1598573600,1601403219,1953067587,1818321769,1768835423,854644,543451460,544501614,1684957542,1952542752,1763731555,1920234350,1769235317,824209007,1212948533,1937331039,1769096031,1633905012,1850302316,218788969,1634683904,979978340,1919501856,1428190323,1881162317,543516513,589329257,743981381,1768453152,1936269427,1634628896,1885692771,1818386804,854629,1684107084,540698952,1869376577,1702125923,1986348127,1600480105,1096761923,543253874,1818845542,1869881459,1819042080,1952539503,540549221,1702132066,854643,1684107084,540698952,1802465096,1986348127,1600480105,1987208531,543515497,1818845542,1869881459,1869572128,1681989739,1936607588,1668178292,1702119781,854637,1684107084,540698952,1802465096,1986348127,1600480105,1987208531,543515497,1818845542,1869881459,1869572128,1700012139,1816622195,1818321519,1295398998,218787173,1634683904,979978340,1869563936,1698979691,1701013878,1919243103,1701013878,1767990816,1948283756,1869095023,1142975343,1196249935,1850302290,1851880563,1147102563,1667855973,854629,1684107084,540698952,1769173825,1147104871,1667855973,945184613,1632657206,544433511,1818845542,1852776563,1734438944,1970151525,1919246957,1095050016,854616,1684107084,540698952,1802465096,909661791,1734430815,1634082917,544435305,1881173615,543516513,1651340654,589328997,173556037,13]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[13312205,13107201,1465253888,209552211,-1675922432,-524394340,-855638005,16826912,-845324032,16826656,-855477248,1435213057,138578696,990701761,1252357,1527411456,-3580321,1261605,272796416,65597,1026126848,512,-1667489164,201965152,550305792,65730,550346081,65729,30212724,272811933,512,37339187,1111033205,-1675922428,1035886748,-855638004,16826912,-845324032,16826656,-855477248,1116445953,15624,-2096168944,203,167772221,-1115549952,50331648,4000834,251662336,45703,-17664,898367487,2576,1282732859,990397067,1148586054,-885322101,-242535052,1997030971,-1959622157,72255434,1979709827,1620876315,813246,-1038037760,1627390208,-1054814819,1946157312,-1660826366,1250496905,-1994659068,445187186,317396617,168826249,1518927872,1177716996,-1991375756,1031996502,2588,-1087343616,2092,1622786099,-218103808,6338987,-1396768768,-218103799,136356266,6946816,1428213072,-2097151744,736626884,855638016,1542998208,-1010213281,-1661408263,-1732353892,-855638004,16826912,-845324032,16826656,-855477248,-1070359295,550361323,65739,3272,50087367,-1962934272,659509,259343872,-356622180,-855638004,16826912,261972224,218500,1049316864,-461107385,1325400064,990922379,1937051719,-1962391925,207487960,-1962389621,207029201,460838971,-1100964708,3354,12722381,-1654587391]},{"sector":7,"data":[12656845,41156609,1000145357,-1675921455,1321099420,-855638003,16826912,-845324032,16826656,-855477248,-1053057791,-1667490954,226672224,550305792,65730,550346081,65729,30212724,1960393629,-1962444973,-9115145,1364262911,-1962391925,1620839502,901310,-1038037760,1627390208,138906525,-1676914805,233946720,550305792,65730,1482268001,192201019,443800123,1451872299,-1961628916,1178274887,-1995737588,116067398,17581963,126553158,1962932355,74483971,334038665,872415231,1342794432,1347440720,23724394,5447885,-998047743,264244000,177796,403031808,10,16777232,661525,336955648,-1996488694,531477,136356608,898301952,2576,-1056407925,1313213679,-1995944309,1317795917,-196245236,-1946661493,-195230759,216777035,990702017,-2125630257,65785,-1675922944,582901916,-855638002,16826912,-845324032,16826656,-855477248,-1182753535,2316,-1675922432,1136550044,-855638002,16826912,-845324032,16826656,-855477248,1300471041,-108330244,1301007163,-195195912,-645189004,1124920257,-1995643967,-651429795,2012503337,1620876315,948414,-1038037760,1627390208,-1054814819,1946157312,-1660826366,33312131,130792,188925440,71993600,-2146637375,593081,460717824,-1100964708,3750,12722381,-1654587391,12656845,41156609,-23264819,593025,1975127808,124977660,-1400044407,-2097151995,2037515515,50610934,1116426868]},{"sector":8,"data":[65045252,-150673277,734759896,83461064,1116233586,1725442826,-1962386807,658445,-2082895104,-343735325,1004271364,1997501656,-2083847415,-936704831,-668269333,176802563,138589967,-1240479741,-939324862,434887475,168562059,-1048379392,-52329725,-1989801335,-888993702,1518918451,202213642,-352321526,173705239,168562059,176750592,168566017,-617414656,140151142,-59393521,2105675520,-1946157058,-2062596554,-409,658593,268371200,-390004736,1975520012,1620876315,970174,-1038037760,1627390208,-1054814819,1946157312,-1660826366,530595,473795328,-1107296248,2092,634042,6338816,-1070399488,41157176,-964477439,-186498556,205005,-1014300671,12180275,-1090519039,3552,-1182774788,2316,-1828621056,1972307081,-108948735,160,96986999,2588,-1,-917979085,1620876483,987838,-1038037760,1627390208,-1054814819,1946157312,-1660826366,-839503008,16825888,1620876288,1003454,-1038037760,1627390208,-1054814819,1946157312,-1660826366,-1667483413,261209696,550305792,65730,550346081,65729,30212724,-1675891811,-725720932,-855638001,16826912,-845324032,16826656,-855477248,861969665,-1105146378,-855637760,16829216,1398232576,336956241,-2097151990,356191426,2584,480338038,687865864,660485,402991360,1778384906,540409600,-855638008,16799776,147096320,1416937483,1342270016,136328703,550305792,65620]},{"sector":9,"data":[185386115,-2126678848,661509,1048576,404029696,16777226,660501,471173376,-1560281080,2080,361467883,2580,169084291,-1962147840,470100930,1493172232,-1017225381,-1100964708,4122,12722381,-1654587391,12656845,41156609,1620902349,550368819,65726,13312205,861929473,2149824,1023411712,778,96930418,4924,0,196669,-1635447040,-1207959547,393220,-66,-1876898305,1929380096,1620876315,1292990,-1038037760,1627390208,-1054814819,1946157312,-1660826366,122520079,-1202323456,393220,9445581,1935540225,1620876315,1299902,-1038037760,1627390208,-1054814819,1946157312,-1660826366,119374351,-541589504,-2130706418,-949615044,125108487,67533952,-1202752508,5340,1711684737,1946224583,1620876315,1307070,-1038037760,1627390208,-1054814819,1946157312,-1660826366,2088777589,1946420230,1620876315,1321406,-1038037760,1627390208,-1054814819,1946157312,-1660826366,1418531701,1354302726,721420336,100976330,105679336,243713,-4325370,-838860801,16814112,-1675922688,1639866524,-855637996,16826912,-845324032,16826656,-855477248,-2112905983,1651,243798,550305798,65680,-1675922594,2092851356,-855637996,16826912,-845324032,16826656,-855477248,-2112905983,1603,2614968,104628480,1963017016,2088765301,1950876678,1059371087,1015087104,21182470,-1675922315,-1732353892,-855637996,16826912]},{"sector":10,"data":[-845324032,16826656,-855477248,729128193,67533952,-1675922360,-792829796,-855637996,16826912,-845324032,16826656,-855477248,125148417,105170790,-1198485501,7046,104628582,-2062600821,158,101088385,491107855,9471247,1418395648,361300486,4948,2550200,104628480,2122319752,-1667490956,352894560,550305792,65730,550346081,65729,30212724,-1635446883,1711276035,67533953,460588033,-1100964708,5440,12722381,-1654587391,12656845,41156609,261947853,226437,108822528,460616710,-1100964708,5496,12722381,-1654587391,12656845,41156609,261947853,216197,14215424,1958215680,1711276073,-1962525567,-1675922379,-1329700708,-855637995,16826912,-845324032,16826656,-855477248,-2062574335,218,101088385,491107855,-1667490956,367574624,550305792,65730,550346081,65729,30212724,-1350234211,-1962934272,-1996356012,1266709,1036040192,1015087104,-2146990074,-1675922306,549347484,-855637994,16826912,-845324032,16826656,-855477248,2054528257,108822886,1946419460,1620876315,1464766,-1038037760,1627390208,-1054814819,1946157312,-1660826366,2088785013,1953760774,1620876315,1479358,-1038037760,1627390208,-1054814819,1946157312,-1660826366,1418539125,361302022,4952,105690639,-1983249657,1268749,106204416,107985159,-903151616,33965254,105679337,105170435,-1095200761,1711276054,-1962525567,-1467674819]},{"sector":11,"data":[-2130706432,-1928984964,256969343,39557,105679616,1611499778,-2130706413,-1053948292,258343656,33413,108822784,37849394,-1921485479,-1996159404,1270805,1678114560,-1191182317,1717,80136747,1284106502,1153827078,-1919941370,-1992948140,1271829,113948928,-903151616,822494406,105679337,384022578,1015087104,-2013099514,646254401,-2147483647,17041020,18580751,2088828928,-1223752442,-2062613438,269,17188038,105170438,-2031532537,-1207959551,9161,104628582,460602763,-1100964708,5835,12722381,-1654587391,12656845,41156609,261947853,53381,108822784,176131334,-1675922351,62808220,-855637993,16826912,-845324032,16826656,-855477248,-2062574335,165,33967243,325062025,-1132396544,38150,48808192,-1675922330,1019109532,-855637993,16826912,-845324032,16826656,-855477248,1903533313,-1727611775,-1996488704,1951990337,1620876315,1537470,-1038037760,1627390208,-1054814819,1946157312,-1660826366,1418545013,361301254,4964,325322239,-1246167040,721420294,100976330,105679337,105170433,-1802661883,40198,1746241792,-1191182317,1738,-2067346901,38918,-1937118976,39174,605337600,1015087104,-2013099514,-1675922367,-1363255140,-855637993,16826912,-845324032,16826656,-855477248,1567988993,67533953,21137921,-1667490956,401063520,550305792,65730,550346081,65729,30212724,-2127137379,254215804]},{"sector":12,"data":[1946436279,1620876315,1581246,-1038037760,1627390208,-1054814819,1946157312,-1660826366,1153830773,-972685050,1174799940,688276678,1032020294,4924,-763097344,-402653183,1056,1252515,538282240,1023410195,160,-1667489677,408534624,550305792,65730,550346081,65729,30212724,27126173,45613056,-1191182336,8,10166477,898170881,4912,696,1358080,550305792,65691,322188681,6946816,550307946,65703,185123971,-1675594304,-1866571620,-855637992,16826912,-845324032,16826656,-855477248,1089051905,-1560281087,4900,-1559969661,4904,16819896,536919552,550305792,65680,-1667489677,416071264,550305792,65730,550346081,65729,30212724,16902557,898170880,4928,16801720,130858496,550305792,65680,-1667489677,420003424,550305792,65730,550346081,65729,30212724,13232541,898170880,4932,352323512,800177664,550305792,65680,-1667489677,424001120,550305792,65730,550346081,65729,30212724,9562525,898170880,4936,1252513,537758464,-402653165,-7584,1735709195,33000,1783648512,1778412032,550326273,65650,185648259,511006912,1620876377,1673406,-1038037760,1627390208,-1054814819,1946157312,-1660826366,-1102037525,940,7413965,1498939393,-1667490445,432324192,550305792,65730,550346081,65729,30212724]},{"sector":13,"data":[1074850717,550342114,65539,-2249240,1623455999,3268798,-843042048,16825888,-887042816,1023410432,176,-1220733326,1996488704,16417551,96930420,4920,-1,-887042621,-2097151744,-1923650324,-855366532,16813344,550330112,65667,474335078,565729282,-855638016,16811040,1169624832,324051740,-949616640,1476598853,273008486,565706752,-855638016,16811040,-2044670720,1442840832,69497997,9314509,-2090991615,565734596,-1107296256,1796,4268237,230621185,855638066,-841862154,16823072,336955648,1912602674,857467721,336956406,-1090518990,12813,11804877,361299969,12820,898313330,4912,10297549,550305793,65694,-225707893,2233,179108864,-1442483008,-1075054366,-1426906960,130005483,855638066,-841862154,16823072,336955648,1912602674,857467734,336956406,-1090518990,12807,11804877,361299969,12820,-4245134,-1207959503,538976288,1200162697,-1175287036,8,-1073042180,-492174476,838844151,-1561853952,1912602624,18671802,-1284374528,20968,-391320832,541,1946173315,-1961391326,14844354,-1040187648,-14349078,50331903,1203179472,2680836,-947716096,-119936250,-887042621,-402652928,89,-739766670,1912602624,583687,-1007157248,323495423,550305792,65739,-1946645664,1258549,-1658794752,-855637760,16817696,50944,-956301312,1088,1351155712,209225992]},{"sector":14,"data":[1065159,1778384898,550326272,65702,1627964547,-887042621,1442840832,-24424105,321926539,550305792,65699,-259319180,571900,-1494024192,898306420,4912,10756301,-428539903,-117314568,-1017225383,13312205,-144310271,1963171847,260138501,12780545,13312205,42663937,1704099,79856384,77791883,-2097151974,42665154,1703075,79856384,435688841,12189696,721420289,550355920,65739,-1957473961,1703997,-1042838784,-490666774,-2082501872,-754774045,-144254157,-2147482553,1465258356,-1190494323,8,1604776956,-1960545186,-1958769702,-8165673,-1048309761,-1962934272,-1998385,-1056964353,-947187473,50653121,-1580995591,6652,990699713,-1652420616,-2097152000,1065357551,255161668,1208043447,990175425,1395226055,283885906,990964417,1952144090,1203179276,81838339,-351250547,2010332012,281510763,-1014245497,1575733035,-339652013,283820304,1532680763,-947657868,-1056470256,-1051586328,-1036316438,-1961462438,-2117104833,16777185,284147968,-406730869,-336002300,284132316,1967406976,1203179299,-524204031,1975991044,1203179287,81838339,735753999,283820483,50651841,32241875,1599691769,-887042621,-1962934016,1705021,49920,539575080,2037411651,1751607666,1229791348,1397707331,542393935,1886547779,824192046,3160377,1684107084,26952,1684107084,1396336968,1130328953,1769236850,1600938339,1953066569,1767982624,29548]},{"sector":15,"data":[0,1275068416,1279345487,1330398976,4997442]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[246775,-1007221131,158662660,-164373709,-343932488,51002636,99091571,28885760,-617364736,12121651,1461961472,942894697,1867259958,1766351969,1986348064,543515497,1700145184,1869181810,774971502,10544,1634683914,1600735332,21120068,550305792,65730,550346081,65729,30212724,27126173,45613056,-1191182336,8,10166477,898170881,4912,696,1358080,550305792,65691,322188681,6946816,550307946,65703,185123971,-1675594304,-1866571620,-855637992,16826912,-845324032,16826656,-855477248,1089051905,-1560281087,4900,-1559969661,4904,16819896,536919552,550305792,65680,-1667489677,416071264,550305792,65730,550346081,65729,30212724,16902557,898170880,4928,16801720,130858496,550305792,65680,-1667489677,420003424,550305792,65730,550346081,65729,30212724,13232541,898170880,4932,352323512,800177664,550305792,65680,-1667489677,424001120,550305792,65730,550346081,65729,30212724,9562525,898170880,4936,1252513,537758464,-402653165,-7584,1735709195,33000,1783648512,1778412032,550326273,65650,185648259,511006912,1620876377,1673406,-1038037760,1627390208,-1054814819,1946157312,-1660826366,-1102037525,940,7413965,1498939393,-1667490445,432324192,550305792,65730,550346081,65729,30212724]},{"sector":6,"data":[17979981,24,4653088,51511295,128,45547536,30,1]},{"sector":7,"data":[1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331]},{"sector":8,"data":[0,1895872511,16888064,1208005120,1291956224,1292001792,1291946752,1291858176,1291978240,1292027904,1291858176,508711168,1398232326,188646190,225705984,1912653800,17491973,-1125579917,1946500096,778431234,267832,1398154868,322342225,244002304,-1959919609,1960458780,80118539,1532622050,8382814,68585518,1583044864,92147772,458542,1008668160,772240389,132807,-2094137344,16777790,-336067723,113716830,65538,255755054,91488256,-752943314,1206646784,113716988,2,125109308,-1021378770,1010100992,772240642,12525311,20720107,-13760651,-352269538,1963342878,520039943,334168271,125109052,-954269906,-402068736,1599799350,-402265096,1599799342,1511982941,508611417,-1202235898,-661782496,7812749,-1912594248,2101251520,-1336953856,-2140680960,1583349700,-1017635065,1048784540,1962934283,1343613698,548951582,-1915187712,-1275036362,-855527345,1478450791,1397801885,786117458,-1275019871,378220100,1741488315,1526711424,1438865499,184594945,548974592,-1948742144,-1962929866,855640350,-1581239342,-661782523,1552489609,156011275,-16627769,-1996035073,805634631,71812864,1204289535,-939524346,-63417,508581638,539015175,-947651701,-1414813174,1487645611,-745863329,1227932291,394856419,-349125757,-16267322,39619071,2089015947,141885190,-2097139707,-1595208250,-1275068229,1126288702,1963326339,-2118246666,-849169408,-1092907487,76218412]},{"sector":9,"data":[1946157117,-1262449146,522308937,-1258350104,771797041,857739,11280845,655538,50331568,620802560,12038144,-1574043648,-2094137300,2110,-611449740,652741611,49211397,-1394015373,1364657664,2990382,-1427586930,243281411,771817484,394951,-1993408513,771753006,853702,780742144,-953286656,-33553914,914960127,-421003254,777155076,788214,504198145,756977198,1854619136,82517764,74353446,1962933635,780742196,-2144468992,-33551322,1946433000,1854613013,780742150,-41746430,773223679,11913,-30480661,771755270,405129,-352138776,915091096,1599668234,-49913,-336067724,-164693759,33557510,57805685,-352042776,-4654844,90368255,748826315,117321216,-1070399475,892974,-1959870210,503317550,756977198,1178287616,41295625,-2144443669,67111950,1912744680,63498321,3050286,786270976,147075,637957374,-351910263,116796964,1962999820,1183393286,504818436,756977198,1183399424,-1959911676,771752990,796288,652774398,-402104695,-1993473494,771751982,132807,-2144403458,-83882970,-888875032,2925102,-402401048,1634861472,202276910,1528693248,2144286,-953231218,16779270,-685834496,113716736,8,-2143391201,963969084,756976430,650350080,-16482685,-890754187,1187390978,2078810122,915090946,773718020,2956942,-1993991029,-1993998242,747176559,38192934,-350224385,-4654844,645934847,-386072564]},{"sector":10,"data":[1472922716,2925102,-402432792,1918828836,243281472,503447564,548937307,785944064,526023,-11075583,771807006,526023,526319616,1015070578,783971584,2956939,-141835378,-947651189,768266,-336026381,-4654844,645934847,-386072564,785056768,-2147472222,578027772,1946287232,50102334,-58718092,-116689917,1206405099,-369593853,-2031550655,-370118141,-1960378567,1460017741,1577267688,1440772639,180847455,-218099271,96895908,-218101063,773254052,1453705,1912803816,633701314,371100462,1586046464,60483589,915091147,-1909587921,637545734,-32809845,1086488770,139737126,-964491916,653650701,638278795,-1962324853,1204233923,-335544574,1200170503,3147010,71812902,-953745409,-63929,138921766,1347944447,-1960828744,180847611,-1414812758,1599646635,-1962024119,818054099,-2095609562,-974442301,-1959867400,503328558,756977198,1446526464,-133991160,-2143416853,1962870398,231047941,536472555,1448543939,765537877,784371200,276107,512634398,76218413,104541727,578027520,-1960384373,-953810818,-64955,512634398,1015611437,2122327583,57942026,-134150936,1576600043,-1022927010,201782830,1517617664,201782830,58000384,1459659240,688324142,1048587776,1962999849,780742157,-953810905,-65466,-2144457237,33564990,-1993468811,771760942,2571915,8292646,40732966,-1959915029,771760958,2440841,590252334,652602112,-16628025,784556031]},{"sector":11,"data":[2702976,1447588864,-1959898281,503317558,756977198,41716480,691961902,292880640,656313134,495527424,41912614,-352166775,512437780,-1993998301,2139694621,512437762,1552482343,-970055934,10502,-1017225381,777410387,276107,39750438,8293158,1962933123,-31986,-1993991564,1569269311,505473794,756977198,524060928,38127398,267124735,512634398,1552482349,130491906,1579155455,1405311839,1586177618,1451959816,507194886,208928772,74397990,-1993993612,283838039,512634398,1468596269,82517764,72845606,71747366,-953745409,-63930,138856230,-746061825,1962933123,1468605956,-1017423352,196695582,-1105261056,-41222120,-217397373,-1021354330,1460031518,1049308766,-946995155,-4654965,92874495,71665958,105220390,38111526,-1190475901,-1527578607,-1190803837,-1527578614,-1175221473,-1527578613,784539480,409219,506164479,777082710,2963083,-1959862642,-2097150410,297339590,-2086341888,179897799,1604645632,768343,1599710451,-2134696098,57999420,-2141918215,1966735740,1175751174,-2142704826,209017916,3964998,-1191639435,938213375,240146182,1621767,-1440735048,-1414812757,1621931,1949187244,1958742539,1952201750,-252990958,-1409277761,125091850,57957436,1324673962,-1022927016,-2142088880,1709720002,-1959234819,765538001,-390033920,-1993408987,503317550,756977198,1317748224,1854619145,-2144985342,1948256894,1446716945,638350367,-2096992629]},{"sector":12,"data":[41222141,1526327522,1354979417,-1031777711,-48306111,-1590803342,-1064435667,-1946296088,780742337,773718020,2956942,156142398,40799038,2122327583,494149642,645806886,992349301,108341318,628505126,-1960440716,-41745810,-503155457,1499134428,1352450904,1448235347,772152919,2768515,773354496,-1912590943,848409792,784937920,2887306,71207726,120573184,1516134175,-1655153831,-1308203069,-1342173184,-1,-1308621501,-1342175232,-1,-1308621501,-1342175232,-1,-1308621501,-1342175232,-1,-1308621501,-1342175232,-1,-1308621501,-1342175232,-1,-1308621501,-1342175232,-1,-1308621501,-1342175232,-1,-1308621501,-1342175232,-1,-1308621501,-1342175232,-1,-1308621501,-1342175232,-1,-1308621501,-1342175232,-1,-1308621501,-1342175232,-1,-1308621501,-1342175232,-1,-1308621501,-1342175232,-1,-1308621501,-1342175232,-1,-1308621501,-1342175232,-1,-1308621501,-1342175232,-1,-1308621501,-1342175232,-1,-1308621501,-1342175232,-1,-1308621501,-1342175232,-1,-1308621501,-1342175232,-1,-1308621501,-1342175232,-1,-1308621501,-1342175232,-1,67,537010176,536926976,1547313152,11665428,548405325,-1308622278,-1342062080,183,0,16,1296367616,1482184781,1454168,1507506,1396786864,1162891092,176226382,234926592,765952]},{"sector":13,"data":[0,1,2816,33554432,0,16843702,16777277,-855391486,64946691,1003,256,63701975,-2063466496,64421888,3933142,917682,-150743120,1479475459,0,-150743296,1060045059,-930349056,109893774,-1064435322,1930997992,112652,-1273298712,-855592884,51767329,26424973,1508398706,-950963712,1292071430,1946601216,-402606333,1081213140,26099331,-402295808,879888356,-402513176,-1696071246,309250,-956065885,234246,-1794718208,113704707,-402652266,1760037176,-99782144,25695886,-83754820,20459263,1286865328,1397760461,1465274961,29040213,-16896,-854447432,577969967,-1560279624,113705879,915,60098246,-1777940737,-236453885,1599994120,1532582494,45663064,115028811,-74726514,-1064554547,-428608249,-495663349,-352316232,1364414662,1431787090,113438,20723397,-854447432,443752239,-1560279624,113705879,915,60098246,-1777940737,-1645740029,1599994120,1532582494,113754968,876,84070584,78708751,1990453459,1543897347,111196163,-1325396219,-1545022716,100729720,-1070398628,855638203,-150097728,50433062,984515,-388823887,56362497,-754750301,56009696,-150982472,84109862,78708751,100788435,100729692,1554056044,-2046426365,25731841,-1560272891,109248906,505414492,25566862,-1392508226,-1979307233,-1206095103,-1750925310,-1828272381,-973078525,-16542458,60163782,133621760]},{"sector":14,"data":[-2091848711,101950,2023835764,1812333315,67124483,103357053,548930396,984322,-388823887,58072715,506058795,585827164,-1560276808,113705879,915,60098246,-1777940737,-1377304573,-1912158457,-117440511,-1007156757,26099331,-61574144,-1912555592,56533464,-1207733597,28378784,-930354989,-13371853,-1912582728,1923163864,-205484541,12040357,1294850190,1577452288,57975555,-13371853,-1325175647,-1310665980,-1947675903,12040392,1956763790,-205484541,-1207899227,-661782345,-1912594248,56402368,893734,12040387,548984974,650153472,329415,-1935605577,128132609,56008960,631590,637759649,-1593831005,-1557789864,1587609611,2040735235,56664320,12428070,637554616,-1593803869,-1557789846,915210255,1049428371,850984979,637831680,1195771272,1303967714,-1094676992,-1993998336,637546294,2950855,1520500919,715335171,12040192,-1195130738,-661782345,-1912594248,1948158912,512304643,1923153925,650153475,2956937,-1912594248,57844160,12690214,12952358,13214502,13476646,14000934,13738790,-1912594248,57844160,14263078,-1945712701,-956301311,224774,1778829056,-973078525,233990,26085063,113704960,858,26424973,29701769,-1275035202,-1994273438,-1912502754,8503003,47005325,-218071111,857673380,-1911649847,-852062973,-1354855166,-1976137469,16824323,-1207712861,-844921598,-1576947709,45089718,-352077918,-2063419365,-1207712861]},{"sector":15,"data":[-844921598,-1576947709,45089718,-972834910,33799174,118411827,61816461,59389579,244044339,-1142422642,-1942583034,-1911650045,-49917,1048582773,1963328402,53405704,-404159629,54847490,-538377357,49539330,1962934333,11004163,1962934845,-1841397691,443875331,60098246,60269314,59967175,113639424,-402652266,-369556100,1048576709,1963328402,48687112,-1612119181,50128898,-1746336909,-1841397758,74711043,44296696,54331627,-385649408,915079744,-525335670,158663736,56231623,-336068607,-1942058047,-2013220861,-1724478203,59416835,-1946008439,1153827932,1153826822,1153830919,1153826824,112721929,60269312,59967175,113639425,-956365931,235014,-117113880,100812009,-683769825,41222403,1048601835,1946354647,-683769834,309593603,64437888,-385649404,112722095,-377230592,1048576364,1963328402,37414920,-202833037,64725249,1541947396,-385649918,117375485,-1070399092,839113633,-985756700,92882945,29689475,64462850,-1962700126,-1996256202,-385643978,1048641163,1946551186,440326,872361961,64725440,2080377405,65486085,213386878,27060480,17002147,-1962710522,-1207843522,92930047,29689475,57581826,1929544168,24963331,-1230896720,-1576882173,-677379145,59941379,59520651,59389577,59639495,686358528,-1841397506,108267011,-385874248,-677314868,59941379,64700045,914961803,28836746,63153024,-1576809053,-1057094730,-956057694]},{"sector":16,"data":[233478,-1140406784,1049427971,915080111,-768408694,59772555,1023724008,376700928,1979711293,-1942582517,-1976137469,-37099261,-385874248,243924596,1048576912,1946223575,-683769834,108266243,-385874248,817430108,-1976137472,-1994331389,-2096920010,-1435041287,-610156493,670979,-415430788,-352157949,833542,-1560234519,100729710,1049297770,96928197,109314047,-402521659,57803166,-369133591,1048641686,66323417,-1511520395,-1628833536,-1841397760,125042691,26099331,-1207536640,-236388346,-1841397507,125109763,1929423848,-1989809406,-1962702282,-2130454242,1946413307,-954995966,16879110,-1976136960,64462851,-385641822,1049361679,11535244,915211656,-1969159271,38045955,-972792692,-973076924,-972028092,-973076412,-1157625532,512294915,113705879,66451,60098246,-1777940737,-840433661,401340674,60098246,60269567,59967175,113639424,-402652266,251200180,113754911,19661719,60098246,-1828272129,-973078525,235014,-2130536472,822318910,-16354303,-352086266,-1202273297,1856176176,1778778371,-985756925,-2096789247,33670406,-402428255,-1017249630,57294465,58655719,-1207637000,-1007091693,-1577003800,1084359045,-2133292543,1152663787,567085232,1946157373,998666,263728501,-1272190208,-855003068,12777249,-1927514864,-1929297866,-1207876546,567107584,20985485,21249677,-218102599,-1203473242,-1588592623,1074004955,26228365,915211400,-1866988647,38045953]},{"sector":17,"data":[-972792692,-973011388,-972028092,-973076412,1476397380,-956065885,17011462,-1794718208,113704707,-402652266,-1007091252,25955979,-1979711301,1224836374,1048784355,2115502476,505862,975956985,108333143,-117438280,2139300075,91553542,-351419517,-2083812374,1334382017,-1999009018,1204226135,-1979711738,1019414855,1007055457,738359162,-488062176,-955682048,219142,14084352,244012806,-1070399033,-796141429,4030758,-1961200992,-92060961,-2095942655,-1960442641,46768901,38112038,-1962751069,80184315,41278178,-92063253,-1961790207,93005563,637755043,-1560132213,216728416,-1560098399,-878640290,56664834,2144262,1587658894,2040735235,535299840,1594126849,1594223367,1223424263,-1275067973,174574915,-1992460828,100891158,2144336,-1993949042,1476442902,-1928913401,-1962704586,-1274840554,-855527341,1977879143,11200535,1337196659,1741488816,141943818,2091115570,451672067,-1560277576,113705879,915,60098246,-1777940737,-1779957757,-1195116288,567096679,-1107293505,28902242,-1493959680,1085558133,-58693683,-1270582016,-2140680890,997523708,930431036,-849870408,16547943,243871093,79167943,1038219008,528417024,509083832,-918647545,-2140680959,259326204,29822523,-940045963,16996358,-1206195456,-1750925298,-1828272381,-973078525,-16542458,60163782,1763328,861127673,56664539,378225844,1741489018,58057738,-117314568,1364443995,60268882,-1962933829]}],[{"sector":1,"data":[-1979477234,-1979476682,-402418154,7541085,-1017423526,1443241552,2144343,-1064380274,-1107264065,1337196663,1741488304,1610597504,1478428510,-1307970365,-1342136320,255,2086492928,1026244156,771760699,233637575,788267008,232787593,-502872274,771751949,234161863,-953286656,910854,113716736,1566248572,2114373422,775715854,243271367,-953275586,1024360966,114878523,-4713613,-1960422401,255469085,45613939,602495744,914959873,1465060847,-148992683,116796941,1965034990,1760078915,-398691833,930350796,1963392488,116796952,1965034990,110422021,-164747541,1091431942,-347201932,126365211,108346684,-301039570,-398262003,-982317231,126365356,1321134915,-466187986,130428429,512306688,-1960440333,-147419875,1015033357,775320623,1948400768,116796936,1963003374,1200236116,786706945,232785465,-1590816141,-523170336,-670874813,-400585946,1777008776,-502872274,-352321267,1200236128,1088696833,-670834479,839879206,1959332845,642990863,-957866101,1098078976,-220052669,-502872274,-352320755,1200236084,1088696833,-670834479,839354918,1088475620,-1977165821,200094223,1125086409,529213011,1526750696,1128467315,-953224478,68018694,1532976384,-535917778,-492753395,915090957,-1959916060,772662806,233315978,642827256,44631947,772109568,232785663,3964974,27859317,772371712,232916679,250281986,-1274826672,10414335,-402396328,-1017642723,1364575225,139430438]},{"sector":2,"data":[-921965262,1871514996,53995529,250087539,-101260800,-1993472277,-133302994,650337625,32384,-347798668,784549366,233705088,-3741680,-2144449934,-284299738,-241095088,784739085,233768449,915091032,-2144465423,645201980,-8617938,772371770,232916679,535494665,4162342,-148498060,1962934535,113716754,134626,-1763178005,233568256,1342893049,-4979792,1476396008,643286008,772046731,233193097,637896742,1342268808,234201390,38111526,1963015256,1435051530,1300833796,1012591366,637957378,-352037495,1946631248,1946696936,1963343076,1434985990,1010756356,772764932,1074655137,71665958,106794022,-1993987093,-1943665547,642778701,16926710,78644340,-165279253,1946288711,-402477051,643301605,268584950,-1259863180,784555776,243599046,-1960423424,1975520007,1381191704,113716823,593378,61931444,1610570728,-346530982,67152153,-953281932,909830,43968512,-499219666,41224461,1491796971,-2147440240,-953281932,909830,17819648,-499219666,1081411853,1950351529,113716754,3554,771806440,232930947,-1456900855,359923968,-502872274,-402653171,-1947729144,1048784387,1963527650,536914191,-953283980,909830,24242176,-2059501522,259326222,-499219666,125108237,-502872274,1476397325,777408707,-1073085302,977017460,-2144465547,1962934652,80096774,-402003200,24314973,-538229178,1455642718,785418834,1256719498,168587780,-401836864,-2010251252]},{"sector":3,"data":[1174530820,1525214022,-2143501474,1631325299,2050767986,-551274377,106116331,2000588119,356003342,1364203380,-1274605998,-1144878491,96075775,-17920,1499079117,1569402456,1166945793,742605571,1607935616,1354980103,-301039570,-2144436211,-49418714,1006930478,1007318059,772240685,233705088,48776706,1354979328,861295185,1406284745,168069678,-398297920,963772553,-393485262,-774774063,1912629992,-1948611796,-773664319,6154449,-489611406,1424544209,51802624,-389540909,225574987,-779889405,4319232,-347733134,652958651,-164734064,34467334,-772339084,-1031548169,13730561,108497702,1006930470,-1341688576,-335563775,-953249780,151904774,-1274826752,-40441601,1482250846,-164717373,34467334,-1013120395,-134057827,1019476419,1007186480,738490169,-104597456,1381191875,2139825751,92939782,74825738,166461364,-502872274,-1275066099,-402411265,1516240208,1354979419,-1302965675,76164610,1912795368,-21567428,-301533650,225708045,527777084,25067558,-344886016,116796947,1947209198,1966750734,2122327562,1551171584,643623750,1962952250,1958742557,-347781550,1178215955,1178957056,1157925422,4602406,1162230389,-164714517,1074654726,-148500620,2097735,-2144991372,1946157182,133637666,410255376,158677564,8290342,-351439616,1962949646,2122327559,57948672,772205561,233911945,1566203640,1397801816,512437846,1065356783,845116712,-402158876,1299448208,74786876]},{"sector":4,"data":[1165149438,108341564,1030933758,574366580,-2010248075,-398244348,762445898,518524907,772240130,1128662152,-2010249334,-347912700,76033732,21284398,509440,-398003317,-1993473758,-351411146,915090960,-970060301,-953286652,151904774,-1325419520,-396665340,-1017578452,-402158768,611582240,225780284,1965227136,76033566,-347913402,29354216,-2010249357,-1975302652,76033543,-706002106,772140025,-134216506,1464910680,1049308758,-1976693265,1958742532,6285331,-970054539,17728774,80096862,1072389888,80096862,-148480256,1962934535,113716786,134626,1448618475,168069678,-400657216,192151597,1929469160,1195788034,787082054,772663458,1191183558,-465663698,1482645005,1946288297,-4960247,-2048391760,1405311227,2082377041,637198,1946630702,-119389436,-1017423551,-1976675760,1958742532,18081848,-2094125966,1949958524,133637646,510918672,24936494,202863872,1918975008,2004499473,-1973408755,-1325419312,-80287738,-953284629,151904774,-1017619968,2287788,1407719540,773223680,233703158,787313696,233703158,1309242433,-336001301,-1018234879,1364444152,762580284,695468092,628361788,41779238,857633282,1569335003,79921923,3768358,-919401100,1124698662,1946237478,1022943748,-1017423603,-970043053,537782278,-299466706,540860173,154941044,742142580,540815732,1015024757,-1341688544,-1069922784,-2144985365,1912668797,650720023,184765834,-1156877111,641925123]},{"sector":5,"data":[125043002,540866786,784554841,772663458,233703158,772175105,233705088,-339723744,-147943961,1960655629,1966029834,250345731,1007414264,772175151,233705088,516159552,-2094116010,912190,508569461,1431786065,-1896467706,1660991710,-611573299,1560795915,525949535,774468696,233387657,-350320338,915090957,-1909584407,-2096239842,276037692,141689914,1996571706,99350787,-336902586,526277624,542330307,542330692,1414742342,1313165391,1769231648,2037672300,542330144,542330692,1936876886,544108393,808463925,692267040,2037411651,1751607666,959520884,825045304,540096825,1919117645,1718580079,1866670196,1277194354,1852138345,543450483,1702125901,1818323314,1344285984,1701867378,544830578,1293969007,1869767529,1952870259,1819033888,1734963744,544437352,1702061426,1684371058,-1308038880,-1342174208,-1,11665412,-5242872,83886079,134263296,150974464,45056,-65536,65535,0,658688,0,1572874,4269234,542330288,542330692,1936876886,544108393,808463925,692267040,2037411651,1751607666,959520884,825045304,540096825,1919117645,1718580079,1866670196,1277194354,1852138345,543450483,1702125901,1818323314,1344285984,1701867378,544830578,1293969007,1869767529,1952870259,1819033888,1734963744,544437352,1702061426,1684371058,392992,1543504151,1879049728,-2147482880,-1929379328,-1627388928,-1308621568,-855636224,-469760000]},{"sector":6,"data":[134220032,436210689,1124076801,1610616321,2113933057,-1660940287,-754970367,-201321727,335549441,1073818626,-2147406590,-1862193662,-1056887038,117518338,1895903491,1850283779,1920102243,544498533,542330692,1936876918,225341289,1850282762,1768710518,1634738276,1701667186,225600884,1850281994,1768710518,2004033636,1751348329,1226115597,1718973294,1768122726,544501349,1869440365,168655218,1175063830,1330926401,542000464,1953721961,1701604449,503975268,1095109133,1347376211,1629507141,1634038380,1763735908,1635021678,1684368492,219810317,1869566986,1851878688,1919164537,543520361,1920233061,225666409,168634122,1701667155,1769104416,1931502966,1768121712,1684367718,1919905056,1752440933,1864396385,224748398,168629514,1635151433,543451500,1634886000,1702126957,738856306,1850280461,1768710518,1970151524,1919246957,543584032,1701603686,1919509551,1869898597,1696627058,1769108590,168653669,1124732192,1869508193,1702043764,544241012,1634760805,1684366446,1835363616,226062959,168632586,1634760773,1684366446,1835363616,544830063,544501614,1767994977,1818386796,571084133,1850280461,1768710518,1919164516,543520361,1667592307,1667851881,1869182049,824516718,221841933,1396786698,1162891092,1296375886,1852121171,544830068,1853189987,2019893364,1684366691,539911269,1702057248,2003133984,1696625253,1769108590,168653669,1124732196,1869508193,1937055860,1095114853,1347376211]},{"sector":7,"data":[1713393221,1679848047,1702259058,221324576,168633098,544173908,2037277037,1818846752,1768173413,1952671090,544830063,1920233061,225666409,168636170,1414742342,1313165391,1851876128,544501614,1763730786,1635021678,1684368492,1684960544,1142977125,1750299503,225209445,1698972426,1634038371,544433523,543516788,1970236769,1864397934,1769218150,1847616877,1701078373,1869881444,1701867296,1919295598,1702195557,2037150830,1702065440,1768300644,225666412,1851855882,1768169572,1952671090,1701409391,168636019,1177750029,1330926401,542000464,1986622052,1532705381,1567513917,1919179552,979727977,1564302171,542858606,1563307566,794501213,168648024,541657613,1769104416,540697974,1701860128,1768319331,1948283749,1746953576,543453793,1802725732,1769104416,2032166262,1998615919,544501345,1953718598,1852141679,544175136,1802661751,1953068832,168636008,1847599213,538976288,1394614304,1768121712,1936025958,1701344288,2019650848,1836412265,1836412448,544367970,1713399407,543517801,1633906540,1852795252,1631985779,1886352499,1914728037,1767994469,168653678,548537379,1773142026,1953046638,1768300659,1634624876,1663067501,1701340001,973737262,1479483424,538976288,1917001760,1702125925,1752440947,1768300645,1634624876,1663067501,1701340001,544106784,1634760805,1684366446,1835363616,779711087,118360589,408764045,68075905,328131,83885825,2017792256,1684956532,1159750757]},{"sector":8,"data":[1919906418,238101792,1883147527,549552924,328387,83885825,1632636416,543519602,1869771333,824516722,1049429774,-1048372076,1397801757,861341266,868323017,305051903,801964210,392824460,392707721,-1307431240,-1943024382,-1994952186,-1206423490,78778926,109850573,1049171842,783816576,-855199214,1711705135,1681819927,-7608297,392300172,392183433,394135180,394018441,-1929405976,-1994951162,-1206422466,145887790,109850573,1049171850,113710984,168630171,400819910,-1610168540,-956301289,169320966,-14489600,395067017,-402646552,1105723438,1357402368,1493725696,1532626783,-2096829608,-1007088444,-1205971376,567108352,1914636062,-1808365304,-1777955817,-1017618921,-1153171272,-768409600,-427810355,30310401,-851181128,12108577,113476,567136819,-1207841152,567100417,-852446013,343329,-336067723,146712,-4520589,-1157370881,28835842,47360,-4849486,105956345,367547735,-2146536960,1962475518,-350288380,-1960899070,123690487,1398195032,-919341517,1979711104,-1933800696,-337671401,46593573,-1128003468,-1014229136,322771179,1024291328,142016551,394050756,116114316,392215748,-75250804,-2146011649,58064894,-1559434247,-4712544,114175,-336005581,16483084,1424491380,80118528,184972024,-352160311,-25125729,1378448641,1460031829,83933264,-12832819,-1962314408,84064472,32190413,1594192889,116087047,-402209661,1516044300,248447467,1543502824]},{"sector":9,"data":[1347928926,855637945,-139529536,1599621585,33260483,1048780149,1962874760,-49898,-1588589707,520034208,-346548344,-2011234556,857402135,-98103,-1977219468,166396749,1966422062,1300901380,80184067,-131238919,427084043,1962933888,87762437,992871403,-352160507,91506953,-352008317,208861667,-117440896,118358645,41747238,-315488654,1192069670,395970246,1397801728,106386769,-1981183150,-2011719650,-401105610,-921960764,-318037132,803734901,-402396416,259129785,17754202,-771072249,1726481268,-2096829692,-336001340,1516177156,1560834809,-998024359,-2096829694,-1007089468,-1957538992,-2095605730,91619323,-352310040,7858179,1504972659,-855637829,-2082196959,-336001340,-294128,-1053095052,-1326971020,113541888,1510175481,516118619,-108847354,-1273268991,361375234,-1977671219,11659458,1931413022,1435117063,-132002559,45354987,158648587,-854226394,1967736609,-1021314829,1392922711,119470731,447797643,1974399740,1272523523,123456395,868441944,1959332800,520494671,-678739788,1963063683,522308904,92939856,1476418280,1931413022,1085601798,-1675506366,440238118,-1047854475,248447467,-335545368,-397322982,-376701018,1931595097,990636802,990344392,41285864,526238091,2603203,-1258289989,-25115903,-166628097,209027270,1049429790,45684635,-16717824,-1000929597,186094654,639071487,-134201981,975573108,638022149,1996571962,1195899137,123726315,-1643737149]},{"sector":10,"data":[-1814351081,-1573455982,922194711,-92072030,-2147125751,65746882,1378927232,1975520065,1960512260,66683705,2088766837,91565066,397096703,-2094863551,225773305,738884736,922682741,-348055637,167346960,2088766325,91565066,397096703,-768371903,-768366613,922730547,868423582,1959332818,-1339706335,624436736,942017141,74711397,242598970,-402290138,24379219,1229080391,-2024348811,1961692106,1048792371,1962940320,105155115,975581188,41222469,809246443,-771029899,872612980,1048635371,1979651997,1229079048,-347123895,-17917,-386323625,1499463178,2146108275,-896839280,425088,-922022540,1229522548,32196423,185658206,1577285065,-108852757,855799295,1962871753,106386774,-2083966127,1548350,1156984181,141889287,-402490172,451608908,218580214,1156975732,108269063,201802998,2093222005,22734850,1390936299,-402396416,124911648,1566508889,-2096829602,-2080830780,1548350,57804149,-939584279,1548294,-768359680,-954752863,169320966,-23730176,-1534621608,-75283689,-402426560,-906100528,230223477,-1534621430,-398245097,868417728,108822747,-955157248,538420359,-968670419,538420359,10938435,870003549,-1710323502,155486743,511099194,-259342038,-2147007242,1149899892,-1534621686,-75283689,-402426560,-822214532,2088823925,225705992,1929923640,139209224,1284166026,1959332616,121959972,-166955761,1947207492,92939782,1476520775,396658568,1090224963]},{"sector":11,"data":[1105724277,1976172032,121960156,169375104,-1978370826,-2021127612,-2092755036,58015995,-33545240,-152275506,1963919172,121959944,-352160752,1959922188,-1643737336,1976237591,190712,106021717,-1962467753,-1915014197,-401103810,91421826,-346486945,113541892,-161627143,1966081860,92939794,1760051536,637957117,1342260618,638446584,-1073085046,1095173236,-114559509,861782869,-943705134,269984262,-153406720,1965033284,92939812,218580214,-2136470155,608371572,-1576614017,-167769577,1963853636,-1576614138,-352318953,121960020,640054544,1156973963,259329287,1954596086,-461356284,-1576614017,-167769577,1963853636,-1576614138,-352318953,93005352,39160614,218580214,-956952715,1124365440,-947919232,169320966,121959936,-955878130,169320966,-52041728,91544331,766693939,1371755858,-92266926,-1979156800,-1274075966,-1979520244,-1960900894,522309079,-133498240,-1796730252,-1978960900,-840791352,-119436767,11797227,1499071602,-998046485,-792463100,247706119,-20480,-1,-1,11994104,27394048,512,1112670966,-1064507253,234885125,303903,787971,244039822,-108331002,-34108593,-1202674445,-883949516,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704,78708751,-789068149,-628299565,74698795,-768878452,-268181293,-947135858,-388771593,-802438516,-1064565645,-522989013,-1030817789,1322289836,1187548077,-31145334,91598908]},{"sector":12,"data":[-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094,-1031072797,-1064385789,-2080863315,292880383,-501415642,16417267,-2129234704,-351272766,1086360796,-276578162,486614544,-339702200,-1950118942,-1962932162,50334262,33948144,1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602,482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,2651248,46203397,46727877,47252173,47776469,63112122,83690473,116262513,212468769,247729326,261820309,294064495,295244180,297931188,299110855,300028377,306319921,307368524,309269079,402133647,422320164,0,0,0,0,0,0,0,1819017216,1734963744,544437352,1702061426,1684371058,-1308038880,-1342174208,-1,11665412,-5242872,83886079,134263296,150974464,45056,-65536,65535,0,658688,0,1572874,4269234,542330288,542330692,1936876886,544108393,808463925,692267040,2037411651,1751607666,959520884,825045304,540096825,1919117645,1718580079,1866670196,1277194354,1852138345,543450483,1702125901,1818323314,1344285984,1701867378,544830578,1293969007,1869767529,1952870259,1819033888,1734963744,544437352,1702061426,1684371058,392992,1543504151,1879049728,-2147482880,-1929379328,-1627388928,-1308621568,-855636224,-469760000]},{"sector":13,"data":[25713229,112,86048800,255000575,128,229572624,30,1]},{"sector":14,"data":[0,0,0,0,-1192457387,-773324794,28857972,45633536,1307070464,79987595,-2141780282,1750919169,58048522,-402440471,-1073059645,887686005,108461827,-402360577,-998020786,1975519748,52553987,1530543744,-385649664,1048576176,1946189864,10938627,-2145042816,-385649664,1048576156,1946179804,9627907,1533558400,-385649664,113639560,-402630480,-1073077411,-521600139,1440737282,1342197688,1342183608,1347469355,-2091544088,1187449028,-1962934022,-2017002914,-16687750,2122578502,-277739270,173836776,-400919360,113648493,-2147447988,25175614,-1628961419,-402199739,2145911554,641630305,57933952,-2147317015,5812286,-1075311500,1354771246,6134352,1048578401,1962967127,40757507,-380245016,1048576615,1962957626,675184654,125108352,-2145042816,-2146995200,5823550,1048584565,1962957672,-18406,1354771280,45633616,146296832,2145931264,214205287,-972936471,5812230,16402119,-94467328,1568311238,-96010495,150634115,-471273614,1975519835,33941763,-1736416864,655264320,1005398656,-2135787583,22767678,-2098658444,112640,1354771280,484986960,147096416,309706762,1358954424,1347469355,178256,768080,1048613867,1968540490,1262387239,544582283,16402119,-16520448,2122447430,1996602874,-94467285,-2071268469,-2021129990,-403994292,16402119,-94467328,-2071268469,-2021129990,1191151948,-92372486,-378142209,1347469355,-2091114520]},{"sector":15,"data":[-1073085244,1827210100,-393090303,1637884457,-1957911936,1530543744,-1200392959,-397410303,-998026947,1975519746,309349,1362094160,167953539,-1202227776,-397410298,-998026975,1975519746,1354771273,-2092464664,1183318724,-166285060,-259261330,964698785,2005623428,1552190214,-1609569397,1352171617,-2145241345,-2090118680,1183384772,1354771454,1342210232,-1728297334,-25755824,-2091582488,1048578244,1946255400,9038083,-1957937536,-1205175039,-397410303,-998027079,1975519746,309276,1353443408,167953539,-1207011904,-397410298,-998027107,1958742530,374872,1351608400,167953539,-1203079744,-397410299,-998029582,-62486526,1861621424,-1578071044,-2076606450,108497762,-1956871029,1637879787,-11495296,-394260938,-998020418,-28931836,1342178744,-1974419413,1352203334,-385976577,-998026136,624853000,1249182080,1342178744,-2091896600,-1073085756,1860713588,-62486453,1861621424,-1578071044,-2076603570,108497762,-1956871029,1637879787,-11495296,-393523658,-998020506,-28931836,-1728297334,-25755824,-2091463448,-337115964,1275512414,1048576139,1963023746,112687,1339549776,167953539,-1205766720,-397410300,-998027319,1975519746,440339,1337714768,167953539,-1207601728,602603521,1568816768,-2145749759,5978686,1048580981,1962967080,624853004,91553920,-352320840,1354771202,-2089795096,-1956773180,-1866244635,-1192457387,31981578,1187403377,113639678,-973045724,9128966,1568292480,-33262336]},{"sector":16,"data":[-947172346,64070,16271047,-1961694464,-1082066850,1946180986,-96024827,1191116801,-2144886536,1178199082,-2082180360,1946286718,24832259,1342197688,1342183608,1347469355,-2091780632,922683588,922702474,-1243065720,79987500,16271047,-1959924992,-1082066850,1962958202,-159481824,-1977977600,822409286,-8363358,-11265482,-397141962,-998036344,-163133948,-129564927,713041824,-129615388,1720240498,-25263874,-385649381,922681635,922702478,1575506572,79987500,1385314047,1385182975,-2094247960,922682564,922702498,1105744544,79987500,76237984,-2141019599,1385838335,1385707263,-2094257176,1187448004,-956301062,63558,-150982984,-661915546,-1735701344,-150947655,-1963947031,713263488,-96073244,-2080880897,1912928382,-92372005,-400788480,-1073066211,1048581493,1962969932,-1640562930,-1674117294,735766610,-2147171197,25175870,922686582,922702486,-974630252,79987499,100419270,1187382507,922682620,922704626,1183473016,-1202677508,-397410303,-998035284,-28932088,1785240,619250549,3227135,842865268,1025209344,477364275,1946170429,3489053,854072948,-16389845,-384994328,-739705089,-17176295,-385865752,-337051917,-17962724,-381629208,113704679,-16744361,-11292106,-397168586,-998036664,-443851260,-1957313699,571628,1450122216,16664262,1342197688,1342183608,1347469355,-2091887128,922683588,922702598,367547140,79987499,76237984,-2141019599,1385838335]},{"sector":17,"data":[1385707263,-2094333976,1187382468,1187447034,-1207959304,1727463470,-1596421128,-1181185204,-369688392,-2138378101,1174963081,-129564678,83394179,2122374514,57999610,-16675095,-11365834,-397242314,-998036804,104267524,70713171,716105811,-16464765,-11335114,-397211594,-998036832,-1573454076,-1607008430,714270802,-16464765,-11357642,-397234122,-998036860,238485252,204930899,712435795,-16464765,-11333066,-397209546,-998036888,-62470652,-231276796,2016870234,309341,1354771280,-2094049304,1183320260,457021694,-385649408,826081560,1025209344,1718878258,1962947389,9562371,1962947645,12773635,-383132440,28836088,1927827456,46433100,477478922,1342178488,-2092145432,-1073085756,112725621,1458065408,46433100,108314634,-385817880,1337458888,297291776,-1070903296,1161296,1326508112,-16202621,-11288010,-380387274,95944863,585650176,46433100,108314634,-385649688,1337458836,297291776,-1070903296,1161296,1323100240,-16202621,-11286986,-346831818,374892,1274013776,167953539,-401836864,-1073066631,-2031614604,-1201935612,-1202716593,726663185,297291968,-1545056256,147096398,1412577023,1412445951,-85445653,1958742603,157804549,1337471211,297291776,-1070903296,1161296,1316546640,-16202621,-11257290,-346802122,-566821112,-600375469,690939987,-402340733,1337471378,414732288,-1070903296,1273516112,147096398,1575324510,-326412861,-402645832,-967414548]}],[{"sector":1,"data":[-1207894970,-1202716593,726663192,-397389632,-998027738,372702984,339148627,686221395,-1610300285,822381388,-8363358,-11363786,-397240266,-998037296,-1305018620,-1338572974,683862098,-402340733,-1073072048,1340670837,-1957912574,-774337640,-155713565,4372570,-2141013936,-2136545200,-16333693,-11352522,-397229002,-998037360,-129579260,1187446784,-956301082,64070,15353543,-1205671168,1727463470,-1596421142,-1181185204,-369688392,-1199509365,1963295625,-96024827,1191116801,-360807446,-1204653308,1727463470,-1596421142,-1181185204,-369688392,-2138378101,1183351689,1958742756,-129564711,141820220,74712124,-1418394052,-337230081,-427916347,1965391617,1279164423,477429899,31882883,-1779891340,1279164417,57933963,-2097050647,1946221182,25356547,1394489087,1394358015,-2094536728,922682564,922704626,1183473016,-1202677512,-397410303,-998036264,-62486520,58006332,-1744740119,-1996476371,1187511878,-956301080,59974,1191117803,-360807446,-1960283388,783346270,-2144030730,1285615755,-1195796341,-1947601152,-1984397096,-629931901,-1947711745,1178205766,-1949338136,-2020939170,-1986494412,783870534,-362350848,1285609611,-1195796341,-1947601152,-1988064528,-465139581,192151868,125043772,57935420,-973024791,-16716730,-11322826,-397199306,-998037700,-330920700,922701846,922704626,-1108845192,147096371,468483712,-1159134347,-330920704,-1957912496,12106136,-930354697,-150982984,-939267482]},{"sector":2,"data":[-2086878847,2110711889,184861827,-9210432,-11323850,-397200330,-998037780,-231276796,2016870234,1525981277,-706195304,113541933,-1728297336,1802813451,1946157373,1785095,1558929780,-1595246849,1352174412,-2091791384,1172833476,5224502,1554512,1354771280,1342181560,-2092183064,113641668,-16688976,-11306442,-397182922,-998037876,787539972,922690027,922702890,-336899032,1412839167,1412708095,922739179,922702882,-672443360,-1205461784,-1202716593,726663192,-397389632,-998028410,-443851256,-1957313699,309484,1466574824,-28916138,5224448,1620048,1354771280,1264642128,-16202621,-11327946,-397204426,-998037984,-1957912572,1654796548,-1707671680,-1741226158,638249042,-16464765,-11357642,-397234122,-998038020,898295812,-1735701344,-472786805,1526118399,1342195896,1350591160,-2088900632,922683076,922702534,-773303612,79987493,172603624,-385649472,922681500,922702634,-1175956696,79987493,1525823231,1568159487,-1738869600,748873808,-2012822397,194575942,-385649216,20775041,1024095232,2004090907,-349879064,-62470286,1285554176,-259286901,-150947656,-1193767954,1727463470,-2131194884,92506553,1996436853,1978160892,79987536,-1204490264,-1202716593,726663191,297291968,2078822400,147096394,1400780543,1400649471,-2094711832,113640644,-16688976,2122579014,-1502477060,922685163,922702838,501765108,79987493,-1204977176,-1202716593,726663192,-397389632,-998028742]},{"sector":3,"data":[-1956684280,1438866917,1656286347,1759176704,1187403351,1187381502,1337458870,414732288,-1070903296,266883152,147096394,1395537663,1395406591,-2094739480,922682564,922702514,-1041739088,79987492,-2009568280,-521622458,-1404138936,-1040267222,-2136715640,58612473,-2147192087,2119871614,-1404647932,-1538880934,-944486776,44614,1988826603,65458606,-1035680011,-1018903040,-1270415617,-2085730561,2098703998,-1404663273,2142520888,-1367962659,-184293679,-2001451382,-638860732,1342178744,-2092482840,-1202715964,-1202716594,-397377438,-998015924,-231276794,-264831150,607578194,-972766077,-385811386,1187382129,1187381424,1187381490,1187447034,-1962934098,-422465930,1149957379,-1639544638,376750090,-20743040,1187385460,1183318448,-226590470,-2013039360,1191178822,-1367440466,-2133820393,1962979454,50260227,-1957165370,-25264128,-385649381,922681512,922702642,-907521232,79987491,1342197688,1342182840,-1202667477,-397410283,-998029082,-96040440,1183469720,-11495182,-10816970,-1973585866,1352182854,-1734064502,776071248,-2012429181,1183383110,-1337538902,-1371093248,1988820992,65458606,-1035695371,1974093368,-1015250928,-972393218,-1962823610,1183428166,-1957912332,72399256,-661919241,-150982984,-259281298,950683274,1969074560,-1371108602,-5749111,2122559046,-1233381458,-1957151104,-385649408,1187446607,2122318064,58006526,-2147434519,1962979454,8448259,11945670,1342197688,1342183352,-1202667477]},{"sector":4,"data":[-397410282,-998029262,976682760,943128403,586344531,-1929067389,1343665734,1525823231,1568159487,-2094042136,2122320068,74783670,469649094,1354122893,-150982984,-930371474,-1735701344,-150712133,-2117598229,1365089473,-2089188376,-1073019708,1187382901,1189806576,469663360,922697844,922702890,820728872,-1733671286,1642391632,-1576876925,113672290,-1204125597,-1202716593,726663190,364400832,-1545056256,147096391,1410742015,1410610943,-2094898200,2122319044,58006526,-2147377943,1962979454,26470659,15761024,-1964440715,1476838913,1183449483,-930375516,-1733671286,-397360853,-998029657,-1572435966,1396061951,1395930879,-2094915608,922682564,922704626,-190816904,-397371302,-998037240,-28932090,1342197688,1342183352,-1202667477,-397410281,-998029530,-28931576,1975520152,15460611,1946157373,1785102,-555154571,563079168,-1962862359,-422448010,-20757818,33310406,11421383,9038080,765478599,-1371108608,-1996486611,1337504326,1996443648,2996402,-1300824240,-2092510744,-2136930108,-2112451757,-163149485,-502135,1183577670,179935666,83490560,-161561552,653674239,1183516552,-101213774,-1003437440,1191179870,394798838,-1717549429,805632503,-631100,-2010712506,-1605989625,-2131101799,1589915842,394798838,1401042687,1400911615,-2094973976,1191118020,-1367440466,-1959822057,-422465930,-20743552,2122574965,58461358,-939565591,303174,95307403,1183383556,2603186,-1300824240]},{"sector":5,"data":[-385874760,113704794,-1207871312,-1202716593,726663191,364400832,468209664,147096390,1337469419,364400640,-1070903296,1095760,1174726736,-16202621,-11273674,-397150154,-998039356,690546692,-2130819448,1947991678,-58267389,16547456,-1628896395,-1371093248,1988820992,-2132356690,1979630458,-1505310915,1285554176,-259286901,-777093493,-1035760921,1354287243,-1947273468,3061976,-1952026889,-1316407048,-16091811,-396972426,-998028270,-1505296636,396787331,1191168124,-1367440466,-391152617,1337472000,397955072,-1070903296,1095760,1165027408,-16202621,-11297226,-346842058,5224477,1423440,1354771280,1342181560,-2092609048,922683588,922702898,300438576,79987488,-1205307928,-1202716593,726663192,-397389632,-998030034,-1956684280,1438866917,213445771,1674504192,-62470570,5224448,1620048,1354771280,1158211664,-16202621,-11321802,-397198282,-998039608,-1957912572,1654796548,-1707671680,-1741226158,531818578,-16464765,-11357642,-397234122,-998039644,791865348,58048522,-1610514967,-1952937140,-1846824,-1201998153,-1202716588,-397377438,-998017144,-969474298,-1003028654,527624274,-955988861,64070,16271047,3061760,-1946654985,-1957912360,12106136,-259266057,-2088126336,-16550912,1191180870,-125926408,-2461180,-11320778,-397197258,-998039756,-231276796,2016870234,-96040355,28856472,635981824,147096356,1023166088,-385649381,764936441,1183383600,-163133442]},{"sector":6,"data":[1187446784,-352321288,-129564925,83394179,1586178163,-164712200,-1954532177,-1957912336,12106136,-661919241,-2088126336,-2460672,1183577670,-163169794,1586220917,881298168,1183422592,3062008,-1946654985,-1957912360,12106136,-259266057,-2088140662,1022641800,1014985729,1014723588,1014461446,-9210875,-11328970,-397205450,-998039924,-231276796,2016870234,1525981277,1978159256,113541925,-1728297336,1467269131,1946157373,1785095,1223380340,-1594329345,1352174412,-2092340248,-437779260,5224493,1554512,1354771280,1342181560,-2092731928,113641668,-16688976,-11294154,-397170634,-998040020,647030788,922684907,922702910,-336899012,-1206005528,-1202716593,726663192,-397389632,-998030534,-443851256,-1957313699,440556,-966665240,-1207894458,-1202716593,726663192,-397389632,-998030570,-1506345208,-1539899566,500623442,-16464765,-11357642,-397234122,-998040120,-1957912572,1654796548,-1707671680,-1741226158,498264146,-16464765,-11365834,-397242314,-998040156,-1439236348,-1472790702,496429138,-972766077,-972948410,830497286,1386362623,1386231551,-2095218712,922682564,922702510,1911050924,79987485,66733766,1525823231,1568159487,1342178232,-1728297334,576645200,-2012691325,859635270,95960181,-1628942336,46433087,108314634,-385337368,922681505,922702894,770200620,79987485,1342197688,1342181816,-1202667477,-397410287,-998030774,628942856,602438123,1958805055,-28931490]},{"sector":7,"data":[1785240,826108276,1024095232,175374386,-350442264,7006298,1048597995,2097253196,112682,1060628560,167953539,-1206094400,-397410300,-998031575,1975519746,440334,1058793552,167953539,-402295616,535495944,1408120575,1407989503,-33815,-11283914,-397160394,-998040416,621078532,-1191295352,-1202716593,726663192,-397389632,-443858502,-1957313699,1095916,1449156584,15746758,16664262,1342197688,1342183608,1347469355,-2092853784,922683588,922702518,1441288884,79987484,76237984,-2141019599,1385838335,1385707263,-2095300632,922682564,922702514,837309104,79987484,1342177720,-2093055768,-1073085756,-68615308,309249,1047521360,167953539,-385649472,112722410,1592283136,46433086,57982986,721541609,-1075294016,46433076,-1594341752,-1952937140,-773944336,1354771427,1491253247,-1991998326,-919870422,380653649,-1946652938,1354771416,-1956857857,1383565800,2005198928,-1980086647,-770966442,91364981,1929396285,-768147689,-801702061,463661139,-402340733,1183327238,25750014,15877830,-2004136800,1187444294,1256915188,-1561049462,28871500,-756527104,46433085,477478922,1342178488,-2093103896,-1073085756,112725621,-1226289152,46433085,57982986,-1192081666,-397410299,-998031963,1958742530,1064167430,-17676800,664859718,-196724608,1183493746,-1957911818,401768064,1337467006,397955072,-1070903296,1095760,1078519888,-16202621,-11268554,-380367818,1048641379]},{"sector":8,"data":[1962969932,-1170800886,-1204355246,-972231854,-16650170,-11354570,-397231050,-998040856,-231276796,2016870234,-2147114915,-773304168,113541921,-1728166264,58048523,1023451369,242483201,1962941245,11331843,-384143128,2122317990,1517617392,-397361109,-998034574,-129595390,-1202667477,-1974468480,1352202310,1861621424,-2585608,-393519945,-998031096,-1341733368,1048576344,1963032615,1271982086,-1206312472,-1202716593,726663191,280514752,-1813491712,147096383,1403401983,1403270911,-1070907925,857270352,-2013084541,-1070860218,1183469648,-1336895240,-126945770,-1207969653,-1310160036,147096384,1487931078,-390796543,350945307,-14044184,-11285962,-397162442,-998041068,578349060,1575324510,-326412861,-402651464,-950641180,65094,1342197688,1342183608,1347469355,-2093015576,922683588,922702518,-571977036,79987481,76237984,-2141019599,1385838335,1385707263,-2095462424,922682564,922702514,-1175956816,79987481,-1607907352,-1952937140,-1846824,-1201998153,-1202716582,-397377438,-998018652,-969474298,-1003028654,428795986,721732739,1340625088,46433074,-1325644152,-59836906,-1081878389,1962969954,27846915,-1735701344,-472786805,1526118399,1342202040,1350591160,-2089721880,922683076,922702534,1239962308,79987481,1861621424,-1012740,-7641932,-1198824780,-1202716570,-397377438,-998018764,-902365432,-935919790,421455954,-1341864829,-59836906,-2020878197,1183419234,1476839162,1996423307]},{"sector":9,"data":[7583994,-2141013936,1896015952,-16333693,-11350474,-397226954,-998041364,-166285308,-259261330,1406809855,1406678783,-11485141,-11350474,-11350986,-7641932,-7642444,2095643254,281314081,-1979824503,1337522758,397955072,-1070903296,1292368,1037625424,-2146909053,9132094,2122552436,58064638,-2147426583,8397886,380643956,-1946390794,-28931088,-1956346823,-2071263627,854297436,-1735701344,-472786805,-2146387969,-385976577,468408175,1861621424,-1947169796,-2076574138,-697005214,-1735701344,-25755824,-2091579928,1183384772,604423934,-1073020800,922684021,922702866,1894470672,1347469355,-1728297334,-25755824,-2093047832,1337460932,330846208,-1070903296,899152,1027401808,-402078589,1048586136,1963032615,-1976107254,-2009661613,-1205998765,-1202716593,726663191,280514752,333991936,147096381,1403401983,1403270911,-2095590424,937952452,-1341733344,300613976,1406285567,1406154495,-2095596568,535299268,-443851232,-1957313699,440556,1448840168,16664263,5224448,1620048,1354771280,1019537488,-16202621,-11349450,-397225930,-998041724,-1957912572,1654796548,-1707671680,-1741226158,393144402,-16464765,-11357642,-397234122,-998041760,653191172,-1957937536,-1204978431,-397410303,-998032987,1975519746,309279,966256720,167953539,-1206815296,-397410298,-998033015,1975519746,34400515,1342178744,-2093385496,-1073085756,-236387468,374785,802744400,-2013084541,380697670]},{"sector":10,"data":[-1946390794,1555858416,57999499,-2097034775,9135292,-1132262795,1962969954,28895491,-1735701344,-472786805,1526118399,1342208440,1350591160,-2089887768,922683076,922702534,-1041739068,79987478,1861621424,-1012740,-7641932,-1198824780,-1202716545,-397377438,-998019412,-902365432,-935919790,378988626,-1341864829,-59836906,-1132203893,1962969954,1686407950,-96040565,-2145122618,-1340871935,-59836906,-2020878197,1183419234,604423930,113639552,-2147447976,8397886,1996425333,9222394,1996424939,9615610,-2141013936,1850402896,-16333693,-11348426,-397224906,-998042060,-166285308,-259261330,1406809855,1406678783,-11485141,-11348426,-11348938,-7641932,-7642444,-991364490,281314078,-1979824503,1337522758,397955072,-1070903296,1292368,992012368,-2146909053,9132094,2122548596,58064638,-2147429655,8397886,380643956,-1946390794,-28931088,-1956346823,-2071263627,854297436,-1735701344,-472786805,-2146387969,-385976577,468407479,1861621424,-1947169796,-2076574138,-697005214,-1735701344,-25755824,-2091758104,1183384772,604423934,-1073020800,922684021,922702866,1693144080,1342178744,-1974419413,1352203334,-385976577,-998032412,5224456,1292368,1354771280,1342180792,-2093317656,-571995964,-1908998364,-1942552749,356444243,-402340733,113647010,-402564944,636157996,1406285567,1406154495,922686187,922702798,149640140,1408120575,1407989503,-2095771672,1944585412,-443851235]},{"sector":11,"data":[-1957313699,1358060,1448665064,16664263,5224448,1620048,1354771280,974710864,-16202621,-11346378,-397222858,-998042408,-1305018620,-1338572974,348842066,-402340733,1183328372,-28915728,1187381248,1285554412,-129595253,16139974,1183468267,-1957911818,1342177720,-2093549336,-1073085756,79174773,-353873920,46433078,242597898,1342179000,-2093556504,-1073085756,1191052148,375020,919332944,167953539,-402230080,1174419603,-163119380,947922848,-1368197562,-1560787318,2122353484,58464492,-402495767,389822579,1558774652,836757506,-1192081784,-397410299,-998033505,1183422466,-1957912324,12106136,-259266057,-150982984,-268174234,-2087943029,-2088270805,380653632,-1947046154,1555562456,1379330187,-1996176253,380694086,-1947046154,1555858416,57999499,-2097029399,9135292,-1132262795,1962969954,30271747,1342178744,-2093564184,-1202715964,-1202716518,-397377438,-998020148,-231276794,-264831150,330754130,-16464765,380694134,-1947046154,1656225752,10533003,-2141013936,1805838416,-16202621,-11340234,-397216714,-998042740,-166285308,-661917074,-1956462717,-1962052352,1183444550,604423930,334168448,1861621424,-1948742670,-1987353977,113703494,-973045724,9132038,-2145108352,-16222976,-1380386186,-16323840,-1279722890,1656246272,1105744000,113541995,1392129791,1391998719,-2095895576,922682564,922702806,-1070902316,-97058992,-130613422,-294191278,1861621424,-2585614,-7642441]},{"sector":12,"data":[-1125582218,281314075,-1979824503,1337522758,397955072,-1070903296,1292368,941156432,-2146909053,9132094,2122548852,58064638,-2147411479,8397886,1183529588,-28952082,380636533,-1947046154,1552387032,-1605768309,-1181185204,-369688392,783872139,-60360960,-2071203837,-2077523060,1346405255,-385976577,569069983,1861621424,-1947169806,-2076574138,108366690,-1956871029,1285557995,-11495285,803798646,79987535,-956414327,8397830,343261195,1410479871,1410348799,-2095949848,-1142422332,9759002,-1728952694,-25755824,-2093254424,1183319236,5224692,1292368,1354771280,1342181304,-2093523480,113641668,-402564944,1183327696,-1841889296,-1875443885,303229011,-352009085,5224531,1423440,1354771280,1342181816,-2093535768,922683588,922702834,-303541264,79987473,-349857816,5224483,1423440,1354771280,1342181816,-2093546008,922683588,922702862,-974629876,79987473,-954586648,-65978,-16875901,-169278604,5224700,1620048,1354771280,919922768,1577632899,-1017256565,-1192457387,1978138642,1187403349,1337458942,414732288,-1070903296,-1343729584,147096374,1392391935,1392260863,-2096009240,1285555396,-1573845877,922714210,922702490,1508397720,79987473,-1957937536,-385649664,-571997513,1975519776,44296451,16139975,-1957912576,12106136,-259266057,-150982984,-268175770,-2088125312,-2145160192,-2138864452,-1132454795,1962902409,-1984135161,242550147,1409431295,1409300223]},{"sector":13,"data":[-2096036888,1191118020,-159480842,-960859644,-973016506,-956237242,63046,-150982984,-661916058,-1735701344,-150947655,-1963947031,-2004645504,-1073025466,1191054964,1962884338,1946500103,-96010749,-2081011969,1912927870,-92372789,-949652223,63046,1191117803,-159480842,-1605012732,-1181185204,-369688392,783872139,-161024256,-1132400637,1946190729,-2068021027,-696942461,-2088125312,-2133887745,92506556,922732660,922702818,1709724640,79987472,-1206335000,-1202716593,726663192,-397389632,-998034046,30402824,16416384,922684277,922702854,-1393994748,1354771201,-1735701344,-472786805,1526118399,-2095885848,922682564,922702534,434655940,79987472,1387411199,1387280127,-2096100376,922682564,922702594,-35106048,79987471,15746758,-1997388150,1187443782,1072234748,-231276799,2016870234,-230258083,1183469720,-397371140,-998042404,-28932088,1183330348,5224700,1554512,1354771280,1342182072,-2093684248,2122320068,58006526,-973013527,-1207897018,-397410300,-998036349,-163133694,501940224,-1560394102,922714210,922702826,-2048371736,79987471,-33499671,1191179334,-159480842,-385650172,1586168006,-164712202,-1954532177,-1957912336,12106136,-661919241,-2088140662,183387784,-1965853504,765001286,-930414543,-1728821622,-1082800069,-1147264,2122359412,-1670117906,32523974,16271047,-1957912576,12106136,-259266057,-150982984,-268175258,-2088452992,-972393088,25401220,-2088467258]},{"sector":14,"data":[-129564928,83394179,1586221938,-164712202,-1954532177,-1957912336,12106136,-268178953,-2088467258,-1752906112,113639811,-402564944,1337466472,364400640,-1070903296,1095760,871688272,-1979136893,1654849094,-2043216000,-2076770477,-14227117,32523974,15761024,-1192688779,-15143938,-11278794,-346823626,171376392,137822036,243984468,-2147171197,1964768894,-31463165,1593711081,-1017256565,-1192457387,1374158850,-28916142,5224448,1620048,1354771280,864872528,-16202621,-11319754,-397196234,-998044084,-1957912572,1654796548,-1707671680,-1741226158,238479442,-402340733,-1073078844,-2081881227,1354771200,-1735701344,-472786805,1526118399,-2096021016,922682564,922702534,166220484,79987470,1342178744,-2093983512,-1073085756,-488091020,1958742577,-1305018549,-1338572974,233236562,-16464765,-11318730,-397195210,-998044200,-231276796,2016870234,-2147114915,-1041739624,113541908,-1728166264,443858955,1946157373,1785098,1726484596,-401872115,116064283,-2011820568,1337523782,414732288,-1070903296,-1008185264,1575324466,-326412861,-402651976,1187402088,1337458942,414732288,-1070903296,-1545056176,147096370,1397634815,1397503743,-2096274456,233309380,-62486495,1342178744,-2093990168,-1202715964,-1202716484,-397377438,-998021812,-231276794,-264831150,221702226,-16464765,-11357642,-397234122,-998044376,361555972,-1946270072,868441573,1358620864,1527252679,146323456,-1202696101,-397410257]},{"sector":15,"data":[-998022002,138313734,661913691,1527383798,-970951616,8410886,1358954424,1347469355,178256,309328,1150871632,722257027,-1207702592,1438842881,347663499,1353377792,113661527,-968664231,-385814458,113640098,-973045728,-973015482,-1962934714,1285746758,112779,1354771280,720389770,-1070903068,1027467344,168346755,-385649216,1048577301,1968540490,1262387244,628468363,15877831,-228685056,-1991473270,-2114947445,-1325334554,-1998138615,-16713088,2122445382,1912733938,-230242336,1183514624,-754667022,-196703776,720389770,-1309635612,65458953,783873142,-228133120,-1196361589,66086646,-1199273224,-2071623678,-1182496125,-2054846462,-1165718909,-2009127934,-1971091835,704821892,12592612,-523116335,45845642,-1056707286,-2088270455,45909130,-2088139384,45974666,-2088073848,46040202,-2054668508,-2071297141,-467008834,-788479963,-1964977696,50511756,-1937405503,-1014723965,736373250,-401034798,-2054592590,-1786150002,-2071297136,-467008830,-1070870389,-2087811839,-2087676655,46236810,-768875478,-729091446,-1070931830,-2087811839,-2087676655,46171274,-768875478,-2087811839,-2087676655,46630026,1743263921,-1836742297,-1802139261,-964392317,-1947981310,29371344,293835397,-1199336299,1727463470,-1326412814,-261687624,1183510531,-1947981072,-754339336,-193068057,46499210,-225783253,-527772534,-2080260054,-1810791534,-2054519916,-467008828,-2080255445,-1810791534,-1258323052,-1258323052,48792466]},{"sector":16,"data":[79987529,-2087156599,-150982984,-259263898,1727445168,-1594883088,-1952937140,-1846824,-10815817,-394028876,-998028911,-1702590204,3061891,-1947048201,-155668264,-670830490,-2088138870,1022117512,1007186945,1006924804,-1203014394,1727463470,-1326412814,-261687624,-2067337213,-2145352783,8396862,-1132458636,1971356548,-159481844,-1979288320,1183380038,-155668226,-661917594,-150982984,-259263898,-2088454016,-33327744,117372486,-1196392416,-1947179274,3061976,-1947048201,-1753168144,1191116931,-226589710,-385649916,2122382840,695533566,1727409840,-1327985666,-261687624,1503719563,1493630555,-1316976549,-28931453,-1974410198,-397348794,-998047057,-263782908,947922848,57929798,-956476439,-352260026,-230228126,83000963,1659437938,-230257919,-523041615,-1946925431,247431384,-512424565,-1962113142,-1071258582,-773795584,-62486048,-1962047606,1174529066,-297351428,-164712447,-661915026,720389770,72399332,-259268105,1569306752,-385649408,1191051541,17820154,-1594865922,1178107943,-385649936,1183449409,-1957911824,1342177720,-1974419413,-466948026,1354771280,-2093339928,-1073084220,95998580,-890744832,46433067,-998981622,15877831,3061760,-1947048201,-263812368,1354359850,-1948125436,-956431368,6128773,1569031622,-2038053376,-2050555811,23943,1569293766,-1970944512,-2050621347,-956277365,6130821,-1983894784,-1990356859,-1990357371,-1990355835,-1990356347,-1990354811,-966944123,6133637]},{"sector":17,"data":[1571915206,1285574656,-369649525,-1476016637,-1880600483,79987551,-1605320661,-1181185204,-369687472,783861899,-228133120,-1048459261,-397320804,-998023314,-230228220,418545283,1558774643,375039,740681808,-2013084541,-1196361658,-1947179274,-164712232,-259262354,-2088271733,-956545399,-972951994,-2147419578,1962995326,-18290429,15615686,1342177720,-1974419413,-466948026,-59310256,-2093407512,-1073084220,1183504756,1357130480,-1728428406,43116624,-955988861,62022,-956410391,-352260026,-230228121,83000963,-1196401805,-1947179274,3061976,-1947048201,-1988064528,-330921853,141820220,74712124,-713750980,-150982984,-259263898,1727445168,-2131754000,-2138864452,-1132413068,1965065137,1532600504,1532561150,-2085518200,-1963821313,-466948026,8775760,-352009085,-263782756,947922848,1869869126,15877831,-155668480,-661917594,-150982984,-259263898,-2088140662,1022117512,1007186945,1006924804,-1204325114,1727463470,-1326412814,-261687624,-1132400637,1971356548,-1313046495,443883651,-27567712,-2007279354,-8146556,1183511158,1357130480,-2097145112,1191118020,-226589710,-945917436,62022,1593779689,1575324511,-326412861,-402648392,-1336521912,73856696,783865995,107411200,-2138378101,1352172465,-2092422424,20710084,803799924,-297351423,783810560,107411200,-1196363637,50620150,-295793680,-2086895418,-297337088,216956547,1187504242,-1207959314,1727463470,-1326413050,73856696,1586229251]}]],[[{"sector":1,"data":[-1467955474,1191116931,-293698578,-1914670583,-1336872890,73856696,783865995,107411200,-2138378101,1352172465,-2092500248,1187448004,-352321298,-294221023,-1947188598,3061960,-1962514697,-155668240,-268237722,-1997644149,-8151928,1183706694,-1511501584,46433117,2012104251,-155668272,-661978010,-150982984,-259324314,-2085519222,1290293400,46433094,1098170378,15615687,-295793920,1489158016,-1962511328,1183400131,-297336834,149847683,1996482418,1489156350,3061840,-1962514697,-155668280,-939326362,-2086092415,1566500945,-351878013,3061867,-1962514697,-155668240,-268237722,-2087404413,-2130152192,-1467772228,-1207142785,-1957691198,-2086140474,-1204032688,569049291,1342231736,-150982984,-930412954,1727445168,-2117598460,1367579841,-2091084312,-709360444,783831040,107411200,-1196373877,50620150,-1463713336,2011713923,79987548,1575324510,-326412861,-402646344,1448561068,-1958068608,-385649579,1048577124,1957333835,73066755,15222471,26929408,-1964607861,-930354110,705054346,72399844,-259267593,1861627568,-1947204860,-2004294050,1191140764,-330920474,1551558736,990037123,-864557498,1861627568,-1965520124,-467007930,-150712135,-1963947039,-1738690176,1159587920,167953539,-951749440,58950,-2132386165,542687935,-1014299020,-62486208,-2082060545,1913185918,-59310105,1347994296,705054346,72399332,-930356745,1861627568,-2117598460,1365092545,-2091111448,2011891396,705054346,72399332]},{"sector":2,"data":[-259268105,1861627568,-2081422588,6132924,-1132394379,2141740434,-558363530,-963948544,1348315141,-407354389,-1205474560,-1974468368,-467007930,-150712135,-1329034271,74380846,-1048459261,-397320804,-998024358,15841284,105286224,1354359850,-1948125436,-164712248,-939326354,1571340673,1530456145,-955988861,5967366,134661888,-1337718437,74380846,1183504523,-1176229370,-503905200,-2138378101,1076649393,-1201993054,1347443464,-2091034136,116851908,268458766,922690164,1183470664,-1176229370,-503905200,783337611,50622198,-1665039928,-605531811,79987546,705054346,-1192195100,726663169,-1202302784,-420019120,783341707,-1962643722,-2018377736,885123165,-16202621,2122573894,57804008,-1962758167,78768198,1183441107,-2133292054,9113279,-1082072716,1946520334,105286362,1354359850,-1948125436,-164712208,-268237714,-1962244214,1568965768,-1964351861,-2004153465,-1956805244,-2020939170,1059359500,1569096840,-1964351861,713755783,12592612,-523116335,-1962045558,-1056707286,1569162377,-1964351861,-2004152697,-1956804220,-2020939170,-2071426289,1586191754,277318378,-2009127797,-1956803708,-2020939170,-466973936,-788479963,-1964977696,59445647,-1937471039,-362902691,-1961523318,-768875478,1273501873,-1903916705,-1869313699,-362902691,-1961588854,-796138454,-2080260053,-1810801266,1586191760,327650026,736373387,-1963816238,719358676,-1903951424,-1869344419,-362902691,-1961719926,-768875478,1569620993,1569756177]},{"sector":3,"data":[-1964351861,-1316284025,1593108504,1569883273,1570018441,-1964351861,713758855,735087588,-1836842560,-1802235555,-362902691,-1961392246,-768875478,-729091446,-1070931830,1569883137,1570018321,705054346,72399332,-259268105,1861627568,-1947204860,-2020939170,-466973930,-2080255445,-1810801262,1285578132,-1957652341,727551108,1079871364,1076947024,-1996176253,-1201825660,-397410299,-998038041,1183422466,105286394,1354359850,-1948125436,-164712208,-268237714,-150982984,-125044122,1727445168,-1946680570,730041477,1082361733,-1937470640,-2021381283,-397393827,-998031248,-1702590204,105286237,-259267542,1861627568,-1191671036,-420019120,1503721475,1493630555,-1316648869,-2021291171,-28931747,1569097098,-1974410198,1348306309,-25755818,-2093832472,783288516,-1962643722,105286360,1354359850,-1948125436,-1316975888,-397371299,-998030661,1946237954,-50861821,15091399,105286144,1354359850,-1948125436,-164712208,-268237714,-957981045,6134912,-2082060545,1913448062,-431568932,1183449088,-1176229370,-503905200,783347851,50622198,-430011408,1571324102,-431554816,166100611,1183702130,783306988,-1962643722,105286360,-503847894,-2138378101,1352162737,-2092858648,1187448004,-385875738,1600060371,-1017256565,-1192457387,770179084,1337480773,414732288,-1070903296,1810387024,147096358,1568816768,-385649664,113639584,-1202562295,-1202683898,1347443464,-2091231768,111216324,-163149440,89852577,1183383619,-195115788]},{"sector":4,"data":[67602982,-28932032,1484013884,33048262,16533190,1191063787,-92372742,-1977320188,-1181156282,-369688392,783347851,66744054,-28931344,-2085518280,-2071274379,1183351703,-19665928,664861766,-62506880,1187382899,-974454534,16285312,922684021,922702710,149640052,1399994111,1399863039,-2097113112,65537220,6613080,113656043,-402617524,28845684,-689418240,46433058,477478922,1342178488,-2094872344,-1073085756,112725621,-1159180288,46433058,74760202,65781803,1342177720,-2092736024,-1956773180,868441573,1143400640,1413887743,1413756671,-2097137688,-1070922556,1570394192,-1022795520,-1912586056,1913047000,-1206766592,567096597,-1022639988,1085804404,-958886400,201332486,-850439240,59925,-1957298177,964844,-1924932632,1183448646,-94991112,16533191,-196688128,1187446784,-1006632714,-2144992162,376766527,-2141059386,1110900529,1077346132,-3741612,-385563517,1048576742,1963032614,-2088591352,-335657336,-28916220,73319424,-2012771802,-1073024442,-1008139403,104699906,-385649408,1010631161,-2142735360,8389694,2122320501,74776830,134104774,-2147205504,-2146798335,1962999422,-28916220,108461831,-16484609,28836934,1996443648,-193527812,-768257,1996487286,1354771448,1761657754,-6624503,-1863777210,1975519745,26863875,637814527,1033373578,1853096009,1005126526,1975520001,19785987,1946174013,4406591,199820149,4734209,1240007540,641630209,225771648]},{"sector":5,"data":[620643978,-2012279680,1223294534,-28931583,101351460,-269778046,-2144977280,-1964083968,-2145059258,-538245364,-2130817408,-2147408151,-377487770,-2068315873,-1866969085,10113025,-385261312,1048576271,1963032614,-2088591352,-335657336,71204898,175440256,16678528,1187382389,1048578046,1962967044,-25264118,-972786432,-1962410426,1191179846,67503094,-2142442734,25166910,2122320501,74776830,134104774,-2147205504,-2146798336,1962999422,-28916220,-2147108857,1048585707,1963032580,-25264118,-972786432,-2146959802,8389694,2122320501,74776830,134104774,509277368,112720,-59310256,-755969,1996485702,-126418950,-1705983957,157876419,1183541227,1568187388,-1544272245,1508596466,1342197688,-231681,1996485750,590145788,-351746941,1644611140,803944320,1946177085,5193101,183042933,5389823,-337050763,5455358,1463663732,-385649408,1497235196,-385649408,113704769,-13205406,-11255242,-397131722,-997982796,73319428,-2012771802,1044181574,1625883508,71761918,-135447,1589904454,126494212,-153580648,72775047,1586176372,71761668,-165279056,31468847,-1946401279,-1977220002,-661940217,1450543094,-972589820,847274502,1589921259,71761668,-1744336346,16789549,1586232390,126494212,-153580648,72775047,1586176116,71761668,-1744336346,-1996476371,1586230342,126494212,-153580648,72775047,113645173,-13402014,-11255242,-397131722,-997982960,-44177148,-150992200]},{"sector":6,"data":[1589965926,71761668,-1977169781,-1056729081,-1996476371,1586230342,71761668,104824870,887686005,1644611325,-1075104640,-1017256565,-1192457387,-1310195680,74907456,1343290040,1356875405,-1957378072,1183450718,1653049568,106859392,-1998502262,-1954520185,1183450718,1686604002,106859392,-1998371190,-1954519673,1438866917,548990091,1081010176,-1207666945,-1924132608,-397352890,1586189444,-532248058,-2141026424,-1979294069,-2021072570,1586200675,-498693626,-2140895352,-1979294069,-2021072058,-443842459,-1957313699,178412,1447046120,16664263,141986560,-956408181,545284736,-2080487681,1913192062,140413932,637826756,-2021129078,1586200674,74892296,21269030,-2140960888,-1006084469,-1977219978,-2021129660,1586200676,74892296,54823462,-2140829816,-1006084469,-1977219978,-2021129148,1586200678,74892296,88377894,-2140698744,-1006084469,-1977219978,-2021128636,1586200680,74892296,121932326,-2140567672,1575324510,-326412861,-402652488,-950648940,65094,-1962379637,-2134442402,-14647198,2122579526,-328070146,-1006084469,-1977219978,1653049348,140413824,637826756,-2013182838,-1954520185,1992558686,1149904388,1686603778,140413824,637826756,-2013051766,-1954519673,1992558686,1149904388,1720158212,140413824,637826756,-2012920694,-1954519161,1992558686,1149904388,1753712646,140413824,637826756,-2012789622,-1954518649,1992558686,1149904388,1787267080,140413824,637826756,-2012658550,-1954518137,1992558686]},{"sector":7,"data":[1149904388,1820821514,-443851136,-1957313699,1095916,1446958056,16139974,-1979955571,1452077638,-28930572,-1929886071,1187445334,2122321916,947126276,32917190,-16222465,-1070921098,629328,1183451497,-2010119164,1996488262,-126418950,1342177720,-16222465,1996425846,-227082252,-1705983957,157876419,-1957165370,142016256,722106111,161108160,-402036480,1183319777,-397371138,-998032946,-28932094,867736,457001332,-1740868608,-2064191349,1963218549,13363459,-1744419190,989868037,-385647162,2122318013,58011902,-1207913239,-1202716593,726663191,397955264,1676169216,147096351,-973017879,25909254,-2147414807,1946220158,75399188,-1979026432,805569606,-336574840,-263797244,-263812576,-152007784,72775044,1183457140,805672966,2093366016,-260145132,-972131280,25909254,-1997519222,-957743546,-263812608,-153580648,72775047,1654792052,1661388416,113652096,-1976729500,805570118,-8362590,-11272650,-346817482,1644611098,113652096,-1976729501,805570118,-8362846,-11264458,-397140938,-997983852,-1971787004,-1952907706,1971844824,527696982,-964664670,830497542,-2140928314,105286189,1705127940,-29950080,-63504557,-971314349,830497286,-2140993850,105286189,1688350724,506920832,473366356,-112793516,-972766077,-14614970,1996487286,112888,142016336,-16091393,1996485750,1354771442,1761657754,-163133943,-28931584,-2131736952,9132094,2095645557,-28931330,-443851112]},{"sector":8,"data":[-1957313699,1095916,-1925390360,1183448134,-195654414,-1979824499,1452079174,-62470406,75399183,-969509888,-16648634,1996424822,1354771208,1761610138,71731721,-113016,1996487286,112888,108461904,-16222465,1996485750,1354771442,1761657754,1476838921,1996423307,142016262,-1705983957,157876233,-2012941080,1352203846,-2093489688,1183318724,222140670,1027044352,1601437723,-135769960,46433079,259260732,-1728166262,938010704,167953539,-1200851520,-1202716593,726663191,397955264,2145931264,147096349,2122348779,292815094,294528,1183451252,-263813116,-353893397,-263812361,-1410838376,46433079,1023297160,168064001,-972589632,25909254,94399723,-2141019520,-2140993850,1525981229,-8362846,-11264458,-397140938,-997984264,-1605637372,1654816773,1661388416,-190829184,-2140888486,1411266303,1411135231,-2080909336,1187382468,1996431614,-126418950,1342177720,-16353537,1996425334,-227082252,-1705983957,157876419,16139974,-1996601718,1048637510,1962969944,-17110781,-1728166262,-1017256565,-1192457387,1911029762,5224507,1620048,1354771280,1342183608,-2095272472,922683588,922702554,1843942104,79987703,922687211,922705272,-1070900494,629328,-1226307223,-28932093,469663360,465101941,1575324416,-326412861,-402650952,113654560,-973042856,-972948410,-956237242,63558,-1957151104,-385649664,922681800,922705272,-1070900494,629328,1860700521,-28932093,867736]},{"sector":9,"data":[58595700,1023501289,2037645320,-972982039,25909254,-17283385,-2134774785,8397886,2122529140,208928772,16547456,1183516276,-129595132,956843659,225966150,16285315,113654132,-352220328,309788428,-401574145,-997984588,-96025084,-2088637695,1946158206,-58818548,-1962511360,1183384646,105286648,2012759609,-125926444,-3705600,-11267530,-346812362,608075978,125042816,-2145122618,-1190270208,1183514634,-137221128,-129594895,16533190,-1191676161,-1957687032,1644498502,1508397184,113541966,1048591339,1946189860,9824515,-2145122618,-125927167,225838055,-1962678087,-768870330,1451880951,-126418952,1343295160,84821643,-397377438,-998027744,-62470650,209125120,-351635713,-92372892,-955091711,63558,16533190,-2145122618,-96025088,608075776,1031078016,-386367871,-1976143101,765001286,-930414544,-150992200,-939263898,-504183,-397341066,-997984014,209125124,-401967361,-997984836,-62470652,604423680,-2081881984,641138686,607584084,-173873068,-385563517,457047666,-385649408,624819869,-385649408,809369408,1023966208,58654777,-2130741527,8397886,2122435445,1929636088,1644611268,113651840,-970096541,964715526,1411266303,1411135231,1183560683,1575324664,-326412861,-402648904,-1923729108,1183448134,-195654414,-1979824499,1452079174,-62470406,1476838927,1187381387,1944649968,142016257,722106111,161108160,-402036480,1183318389,-397371138,-998034334,-28932094]},{"sector":10,"data":[867736,457004148,-1740147712,-2064191349,1963153013,13035779,876669014,973259907,58524742,-1979664407,1352203846,-2093732376,1178206916,-385647098,1337458852,397955072,-1070903296,1554512,434956368,-385301373,113639642,-385774760,1183449338,-397371152,-998034438,-28932094,-153580648,55997831,1183456628,-28952572,1183454588,-28952570,1183452543,-661939984,1450543094,-1966902013,-1952911290,1971844824,561251158,-1560394102,1183481954,-2140954100,-2140928314,239503917,-8362590,-11272650,-346817482,205949465,-964664670,763388678,-1576122742,922714212,922702878,770200604,79987700,1183479531,-661939970,1450543094,-1575062525,1183481954,-2140954100,-2140928314,239503917,-8362590,-11272650,-346817482,205949465,-964664670,763388678,-1576122742,922714212,922702878,-504867812,79987699,553535174,-362753,28899446,1996443648,175570696,-755969,-1070861706,12819024,1187383657,1183449334,-263812866,-1957151104,-385649408,1183514243,-1956734722,868441573,931064000,1527318214,134661644,146278235,-397389733,-998028166,138313732,225771611,1342407864,1342279864,1627390106,1527291913,-1957313640,1751276,-1925756952,1183448134,-296317716,-1979824499,1452079174,-62470406,138840847,-1995811189,1451881030,71732212,-1947187575,1183385158,-260636698,-13964464,1996485750,112882,-260636848,-1673473,1996484214,1354771436,1761657754,-230228215,-1685761,1996484726]},{"sector":11,"data":[1354771430,1761610138,-228670455,4161574,113689973,-972268791,123406342,1348143288,1272244304,-1610300285,1183341320,-163133698,-25264128,-385650144,1183449505,199502590,-385649216,138215664,1026454528,578027533,1946164029,34334979,32917190,-16228668,-970586042,1589910279,138870536,-383285210,1187381758,-135724554,105286401,2011579961,31451395,-897281,1996482126,-428408848,-1705983957,157876233,553535174,-362753,28899446,1996443648,-428408848,-1149185,-1070863242,12819024,1996425577,-428408848,-1705983957,157876233,-1947056501,1183446102,-363427352,1589914603,1200236264,126363137,-1411329,28895350,1996443648,-428408848,-1149185,-1070863242,12819024,1191119209,-396442392,25133094,650867968,-973076538,-14614970,1996487286,112888,-260636848,1088833163,-294191280,736917247,-1013296960,-385259264,113639581,-1207477495,1347443464,-2092255768,144704708,-28932005,1195238442,1024619520,1450442827,1946176829,5193060,-18273676,138840832,-1995811189,1451881030,71732212,-1947187575,1183385158,-260636698,1354771280,1761610138,15001865,653418180,1962950528,14215427,-899329,1996482118,-428408848,-1705983957,157876233,1183571691,-431605498,-1427569801,-229703936,-337228033,-228670446,4161574,-1763114123,-230228224,-1685761,1996484726,-1968772122,-466944442,813230160,-2013084541,-466944442,286701648,1254156368,184861827,-1956088384,184878662]},{"sector":12,"data":[-431604992,2122341750,292881406,1342407864,1342279864,1627390106,-28916215,-92864736,-1191676161,-11534335,1996484726,-294191130,736917247,-1013296960,-1006016256,1183511134,126363390,653418180,83910,84297355,1178271754,-385648666,1191182201,-230227994,-1191218967,-1202715772,-1706032752,157351936,16154240,113645173,-1207477495,1347443464,-2092337688,144704708,-28932005,16154240,-1662450827,1575324669,-1957326653,1095916,1446266856,1342216376,1342185656,1350591160,-2092291096,1187448516,-402652938,79167954,619204608,46433037,16271046,16008902,15877831,15919360,-1990964575,1586231878,-164712206,-1954532177,-1957912336,12106136,-661919241,-2085519222,1022379656,-1207601888,65732640,1342192312,-1729083766,287946832,-62485168,1207363664,-1962359677,783348318,-2144030730,1285615755,-1195796341,65664768,-1699414032,96897923,-11500632,-1954309964,-2086926906,-92864688,-2088452992,-1202621056,1340801089,-1990963551,-1075054010,-346795871,1414308342,1386344939,-1578308780,-404007852,-346794335,1415094754,104717803,-385649408,121503574,1038382080,-462159772,1946187069,14368213,-12722316,-1581157376,-1209314214,1342185656,-1728821622,1342189829,1358710413,1343303352,100025995,-397377438,-998029488,-163184364,-768258,2122576454,2071135474,-1326293365,883947054,-1594848384,-1181185204,-369688392,-1199515509,1946190729,-129579302,287750145,-62485168,1168697424,-1962621821]},{"sector":13,"data":[783348318,-2144030730,1285615755,-1195796341,-1947601152,-1988064552,1038363267,57999365,1996435945,-11343613,1962934589,-22484733,1962934845,-14030589,1962935101,-14554877,1962935357,-24057597,-1191227159,-1202716593,726663180,146297024,-605532160,147096339,16285312,922684020,922702530,149639872,1402353407,1402222335,-2081518616,2122319044,91488504,-352321096,1589652226,-1017256565,-1192457387,1374158858,113661490,-968664231,-385812410,113639597,-973045728,-973013946,-956301754,-1342113210,-93915602,-1196369781,-1946654986,-1988064528,-163149693,141820220,74712124,1232406076,1727445168,-1326412808,-93915602,-2067337213,-2145352783,8396862,-1132458636,1971356548,-58818548,-1979288320,1183382086,-164712194,-661915034,1727445168,-2131719176,-2138864456,1191052149,537329404,-96010624,83525248,2122354034,544538622,1532575360,-1340506278,-26806738,-1196369781,-1946654986,1532600560,1532561150,-2085519224,-1594341634,1178107943,-385649672,1187446600,1911226616,1727409840,-1965519878,-466945978,-150712135,-957314079,543011200,-2131081474,1930951294,-164712371,-661915034,720914058,72399332,-259268105,1569292426,1022772872,1007186945,1006924804,-2133756666,1515936062,783331967,-1946523914,-129594664,1354359850,-1948125436,1532600560,1532561150,1571913864,1191095019,-2144886536,1945650744,-96025082,-962794752,-352257978,-96010659,83525248,783307123,-1946523914,-155668264,-259262362]},{"sector":14,"data":[-2088140662,1022772872,1007186945,1006924804,-1328122618,-127469896,783347851,66742006,-2068021008,-1049329533,-2085503872,-2135263968,1515936062,1503703935,1493630555,-1316714405,-22615165,664860742,-129615744,1187406707,783286522,-1946523914,-155668264,-259262362,-2088140662,1022772872,1007186945,1006924804,-1339132666,-127469896,783347851,66742006,-2068021008,427131011,-2085503872,-2146274016,1515936062,1503660927,1493630555,-1316714405,-96010621,83525248,1187424370,1005125882,-443851009,-1957313699,1358060,1462774760,-297351594,-62470656,-28916224,-263797248,-37951488,1342183352,-2096255512,-1195900220,548950018,1656246272,-236433280,113541957,16271046,16402118,32392902,15877831,-196688128,1105920000,1342192312,1571914890,1522028696,1183535121,-2141059598,1139730512,17876099,1586229830,-164712204,-1954532177,-1957912328,72399256,-661919241,1571914122,-17414520,1191180358,-193035276,-1956154601,783348830,-2144030730,1285615755,1354340491,-1947601148,-1988064552,-330921891,141820220,74712124,-831191492,33179334,-1326162293,883947054,-1594848384,-1181185204,-369687472,-1258295293,-963945062,1348315141,1570288895,-1677343093,-1132441507,1948278193,-10950397,-385867592,2122383189,57999610,-1207925271,-1202716593,726663183,45633728,1743278080,147096336,16285312,113710206,-2141056508,1390556927,1390425855,-2081743896,2122319044,343803640,302253767,922714384,922702566]},{"sector":15,"data":[32002788,79987691,217611904,113710206,-2118249980,1391081215,1390950143,-2081757208,2122319044,343806712,302253767,922714732,922702574,-840412436,79987690,302253767,703299682,15629952,1337467764,263737344,-1070903296,178256,266135632,-16202621,-11298250,-397174730,-997987684,-163149308,-1956684136,1438866917,381217931,778758144,1187468887,-973078290,-402591162,1337523202,414732288,-1070903296,-1679273904,147096335,1342300344,1342185656,1350591160,-2092683288,1285555908,-163149685,-2144977280,-16091904,-11316682,-346861514,1849097992,1815543635,-365762477,-955988861,61510,-956203031,63558,-1735701344,-150947655,-1947169815,58956420,58968196,58979972,-1987828604,1681781830,-1996131584,99351622,1694254791,-1957912576,-1012840,1996487798,-773944328,-155713565,2144346,1150111824,2042122241,1183535121,-2141059602,1104341072,17876099,1191112262,309490,111011920,-956119933,60486,985147627,-2071310336,1352172465,1342185656,1343329464,99501707,-397377438,-998030948,-297402098,-899330,2122574918,1349715180,-1326686581,883947054,-1594848384,-1181185204,-369688392,-2138384245,1183351689,1946565866,1946434568,1963015172,-329348146,-1342820688,-259293132,-1735701344,-150947655,-1192229911,-11534304,-2138859340,545501628,-2048162699,1342183352,-2096452120,1187447492,-352321300,3848232,-1316713904,-1202677667,-1202716640,-1957686877,1644555846,233328768]},{"sector":16,"data":[247759681,-17938943,1191178822,-327253012,-1958186217,783346782,-2144030730,1285615755,1354340491,65664772,-1732475920,125108317,1570421891,-1328319488,883947054,-1594848384,-1181185204,-369687472,548990979,-1258336256,-1132438120,1965055409,-7476340,664858694,971254400,1031008326,-1561311606,-1952937140,12105968,-125047049,-2087156341,-2084141821,-2081127165,-2078112509,-1946925431,-1948003874,995817151,-385649977,-947126715,-1980479957,1072298054,-226590466,-954958336,1645347846,1446444928,1412890451,-397744045,-2147171197,2114515582,67553044,-8332782,-11314634,-397191114,-997988304,-226590716,-954958320,1376912390,1580662657,1547108179,-401151917,-2147171197,2115564158,67553044,-8271342,-11312586,-397189066,-997988356,67553028,-8363502,-11311562,-397188042,-997988376,-163149308,-2138354526,8398398,-1729559692,1346410496,713041824,-1296543516,1656246289,-907521920,147096383,1399469823,1399338751,-2081967128,922682564,922702514,-1511501136,79987687,-2004867168,113703494,-16741544,-10816970,-1973585866,1352202822,-24425312,-397371200,-997987192,1183422472,5224702,1554512,1354771280,1342182840,-2096326168,2122516676,141827070,754861706,-1957912015,-1957151104,-1195871232,-1202716593,726663192,-397389632,-998044558,-1956684280,-1866244635,-1192457387,300417044,-1202301141,-397410300,-998046713,-230242814,-166285312,-259263890,-1956870969,-2067333120,35678,-1956608825]},{"sector":17,"data":[-2067333120,35682,-1956346681,1191051264,-226590478,-959284219,-973014458,-973013946,-352259514,-230228477,83000960,-1578564740,-230258176,-1327985768,883947054,-1594848384,-1181185204,-369688392,-1199515509,1946190729,1577502676,-2147483509,1963263102,1577502470,-1979711093,-1952910778,-164712232,-1954532177,-1957912328,12106136,-661919241,-2088259189,259323403,-1543551859,-963933344,-1956772309,-1601479517,1352174412,-1956890881,-2094789144,1654850756,-1957912437,-774337640,280494051,1547108224,612558987,-1559968637,1183484772,-96040718,-1965519976,-2004863865,1187443782,2122318332,57999612,-972974871,-1979582394,-1057031610,-369998200,1285554417,-1195796341,-1947601152,-230257936,-1327985768,883947054,66620288,-1984069378,57999491,-1342125591,-194054610,-2138318709,1183417228,-2021312016,-1959562109,730040197,-1991708602,380694086,100167414,1183419228,-1948742676,126479942,-2088270453,-1980742101,-1072955834,1586169972,-297366548,380635017,-1946652938,-1957912336,-1191670888,-269025096,-1326692727,-194054610,1577310347,-1937273876,-2071379837,1183484766,-661939982,-1342820688,-661946316,-1947443709,1216579463,-1956608887,1555365719,588048523,-1996176253,-1333042556,-126945770,1285615755,-661940085,-1207966767,-1258323952,2045283164,79987491,-1956346743,-1728952694,-2020943733,1183350836,-129564940,-2131605762,2097476222,-16324349,-1735701344,-561254261,-1081351215,783319056,-1946915082,12105944,-670830857]}],[{"sector":1,"data":[-2087942261,1005340297,-385649977,380633265,-1980207370,-661918138,1177274251,-2021046036,1586203484,-330920978,1585940800,-295793781,-1979759219,1451974791,-1155445,-393519945,-998038934,-295793916,-1956477047,1861621424,-1594848264,-1952937140,-1846824,-8384329,-393519948,-998038828,1686407428,-950998133,9133574,75399168,-955878139,25910790,-1957912576,-1947169896,-1948003874,1216352391,730554531,1082875398,1451973795,571271248,-1559968637,1285589858,-661940085,-1207966767,922714128,-2115466404,79987490,-947166045,63046,15877830,1861621424,-1948742670,965434551,158594678,-1963559287,1183380038,-230228236,99778176,1187503740,-1342177034,-194054634,-1081878389,1946192732,1354771217,-1728821622,296806480,-1996176253,380696134,-1946915082,-163148816,-1956740095,704005771,-1601479548,1352174412,-1956858625,-2094957080,-2071395132,380668770,-1946915082,-1957912336,-774337640,280494051,1555365760,569043083,-1996176253,-2088016764,1946220158,-166285295,-661916562,-1956855933,-385649664,2122383185,1802829828,1861621424,-2114941964,9134780,-1604553208,1352174412,1342701752,-2095041048,-1991768892,-1333044092,-194054634,-2071203701,-2080142498,-1991734436,-1601478524,1352174412,-1956858625,-2094991896,-2071395132,380668770,-1946915082,-1957912336,-774337640,280494051,1555365760,560130187,-1996176253,-1970576252,1587082310,1575324511,-326412861,-402650440,1448552184,16533190,1183452651,-661939972]},{"sector":2,"data":[-2144041080,-1963178242,1178076230,-957645572,-2147354042,1962998398,8775939,16402118,33310406,1191052267,71731964,2113685048,-1957912350,12106136,-259266057,-1728297334,783349899,-2144096778,1183434243,-164712200,58733741,-163149370,-1946657141,-1954313081,-2026244514,393380748,-2087549045,-2087418101,1586214005,-1836610568,-1803089021,-1968737149,-1952908218,864324336,-28931968,-2144041846,-2144107384,-1996601718,-964676476,-352191930,-1956684155,1438866917,347663499,641394688,397956695,-806858752,46433027,15877830,1861621424,-940536846,9133188,1585760000,-956301173,9134212,1652868864,-956301173,9135236,-230228480,418545280,95998588,2095599616,46433029,-957069688,-973013946,-973013434,-352259514,-230228477,401768064,-1964440708,-1957912576,-1963947112,-1952910778,-164712232,-1954532177,72399096,-133959945,1569308032,-1328385024,-194054610,-1195845493,65992448,-2021159976,-263812733,1569162635,-1544534485,1183550300,-1956731920,1569162635,-1956601016,1547108182,524347531,-1559968637,1285589858,-661940085,-1207966767,922714128,-1243051172,79987487,-1970576221,1183380038,-661939972,-2144041078,-956938616,-2147353018,1962999422,23193859,33179334,-17021302,-230258496,-1610564887,-1952937140,72399088,-125047049,-1728952694,783341707,-2144030730,1183434499,-2133292048,6130111,-1914109067,-164712448,-661916050,1569489291,-1947318647,-2020872098,1177247111,1183402222,-166285064]},{"sector":3,"data":[1183447662,-1948742676,-2021001146,1586203484,-297366548,1585940800,-262239349,1569163147,-329348280,-1956608119,-329348266,-1956857857,-2095154712,1586169028,1653049836,-166285173,-259261842,-1735701344,-472786805,-2146387969,-1956858625,-2095127576,-2071395132,1183484772,-661939982,-2144041078,-17414520,1191115334,-226590478,-385647337,1285619517,-259286901,1861627568,-1193767946,-285801392,-1081354237,783310220,-1946915082,12105944,-670830857,-2087942261,736904841,-129594937,1861621424,-297367046,1183570059,1552386552,-295793781,-1996405363,-1953800569,1183575646,1619495404,1586189963,1555562478,500230283,-1962621821,-2021003682,380668770,-1946521866,-1957912336,-774337640,280494051,1555365760,507177099,-1996176253,-343186300,-1957912491,-1326412904,-194054610,-1195837301,65992448,-1937404936,-2021315709,1554202755,-2021291125,-1956732029,-2087942773,1451974819,-1956890881,-2095223320,1654850756,-1957912437,-774337640,280494051,1547108224,501409931,-1559968637,1187482468,-956301064,63558,15877830,1861621424,-1948742670,965434551,158595190,-1963428215,1183380038,-230228234,418545280,1187503740,-1342177032,-160500202,-1081878389,1946192732,374802,-163149232,199774360,79987469,-1325906295,-160500202,1183576203,1585709560,-129594485,-1956871127,-1735701344,1555365712,483977355,-1996176253,-1333042556,-160500202,1285615755,-661940085,-1207966767,-1258323952,1172867932,79987485,-1956346743,16285315]},{"sector":4,"data":[380637556,-1946784010,1556055000,57933963,-1325444887,-160500202,-1132334965,134253410,1285577846,-1202677621,-397408256,-998040682,-2071377916,380668764,-1946784010,1585744880,1552155531,-2071377781,1285589856,-11495285,-393519948,-998040490,1652852996,-166285173,-259262866,-1735701344,-472786805,-2146387969,-1956858625,-2095266840,-2071395132,1183484772,1600035062,-1017256565,-1192457387,1508376582,-967420126,-352256954,-62486003,-1999074408,-25152377,1183513670,-62507004,1187441532,2122318330,1584660730,16402118,33310406,1191052267,71731964,2113685048,-62485787,-1594848360,-1181185204,-369687472,783349899,-2144097034,-2121541493,-930390649,-1393152336,-661946316,1569163577,-2071279501,1183350835,881101566,864323712,-28931456,-2144041848,33179334,1600040171,-1017256565,-1192457387,-974651390,1187403297,65732862,-2130819330,2097479294,-164712414,-661914002,-1735701344,-150947655,-1947169815,193172096,1971557504,-28931365,-1207702632,-1956708353,1438866917,45673611,562227200,-28916138,-33297664,2122382918,545064190,1861627568,-1596421122,-1181185204,-369688392,1183510667,-1988085756,-1193511549,48955393,-1956724693,1438866917,79228043,558032896,-28916138,-33297664,2122382918,847054078,1861627568,-1596421122,-1181185204,-369688392,-2138378101,1183351689,1958742780,1946238170,1946434774,1946565842,1946500302,112842,-1070923029,1575324510,-326412861,-402652488,-967434000,-352256442]},{"sector":5,"data":[-28901885,83787392,1285562749,-1195796341,-1947601152,-164712208,-268173714,939804298,1971554692,-1736143908,-402396285,-1956717423,1438866917,45673611,548333568,-28916138,-33297664,2122382918,510854398,1727409840,-1596421122,-1181185204,-369688392,-1199509365,1971356548,112862,-1070923029,1575324510,-326412861,-402652488,-967434128,-352256442,-28901885,83787392,783294845,-1946259722,-1957912360,12106136,-259266057,939804298,1971554688,-28931364,-1207702632,-1956708353,1438866917,45673611,539944960,-28916138,-33297664,2122382918,528291838,1861627568,-1596421122,-1181185204,-369687472,-1199509365,1962958217,-28931362,-1207702632,-1956708353,1438866917,45673611,535750656,-28916138,-33297664,2122382918,510859262,1727409840,-1596421122,-1181185204,-369687472,-1199509365,1946181001,112862,-1070923029,1575324510,-326412861,-402651464,-967434320,-973013434,-1342112698,-59836882,1285609611,1354340491,-1947601148,-1988064528,-96040867,141820220,74712124,58000956,-16890114,2122382406,-813950980,-1728166262,1575324510,-326412861,-402651464,-967434396,-973013434,-352256954,-28901882,-2130950402,2098723966,-164712397,-661914514,-1735701344,-150712135,-1963947031,-2007135872,20773446,71043188,104596596,1183502965,-28952572,1183500149,116103420,-1193612056,-1956708353,1438866917,112782475,520546304,-28916138,-96025088,-62470656,-1978864896,1183382598,-28901638,-2130950402]},{"sector":6,"data":[2098723966,-164712409,-661914514,-1735701344,-150712135,-2131719191,6130104,1183506036,-28952572,1183501685,116103418,-1193635608,-1956708353,-1866244635,-1192457387,-1444413436,-28930786,-2130950519,25175614,-2103441291,-28931965,1187382507,1996425214,108461828,-16222465,-1070921098,1996430928,1452953852,-1962317568,868441573,510585024,-2147219770,151438848,146280283,-1202696101,-397410288,-998034946,1527291910,-1604793694,1520589579,12314715,-2144977280,-968198912,56297478,1489649280,-2146995193,257477182,113642101,-972924152,25166854,1527318214,1527298048,280514640,-1209511936,113541937,1527318214,134661637,146276443,-1202696101,-397410288,-998035042,-1957313786,178412,-954340376,-2088567226,-2144977280,726693120,-1202696000,-1202716648,726663247,-2101849920,726670979,1452953792,-972461824,5966086,-1571239264,146299656,-1202696101,-397410288,-998035118,151438854,1520436571,1527292507,1348143288,1095760,825813072,-1962490749,868441573,495380672,1527318214,1532665864,-1201992798,1347443464,1342181560,-2093935128,161482436,-2088590757,-1957326653,1095916,1461541864,-74913706,1022903944,-385649153,2122318484,1265991688,16139975,-1957912576,12106136,-259266057,-150982984,-268175770,-2088452992,-972393088,25401220,-2088467258,-163119360,83263107,783340402,-1946652938,-1957912360,12106136,-259266057,-2088468282,-1340609664,-126945746,1285609611,-1195796341,-1947601152]},{"sector":7,"data":[-2071935248,1285554307,-259286901,1861627568,-1191670792,-285802312,380696579,-1962512650,1585941464,-2021291637,-166285181,-661977490,-1956739189,1208239619,-2087942775,-2088335930,1149536769,-1954183031,-773944445,-494433565,-2000093608,-964457851,-2097087930,8619965,1187382389,1285554682,-259286901,1861627568,-1191670792,-285802312,1183512579,-2054846214,-1937405053,-2021315709,1183400067,-28915716,-2071330816,-466974396,-1946925431,-1948003874,-145169785,1183446118,-230242320,1996423168,1183666418,1407734012,1354771252,-1963690241,-466945466,1347537195,691274216,1444543558,-62485506,-1979820405,-1987865979,-1954311019,-1987868795,1187511366,-16776962,1996485238,-62485008,873785424,-11485141,-2054491018,-466975867,1347537195,20169192,1444019270,-62485506,-1979820405,-1987867003,-2138861419,1963264638,-96025082,-2140804347,1962936958,-164712356,-661915538,-1735701344,-150947655,-1947169815,-1954311552,25400464,1444019270,-28931074,-1072967125,1187382900,820709114,1861627568,-1596421128,-1181185204,-369688392,-1199312757,1962967956,-1833402104,1988077699,-96025082,-972428540,-352191930,-684726269,-1735701344,783347851,-1946652938,12105976,-133959945,-1996863862,-964458107,25401221,74907478,-2095778328,-2054617916,1285587864,-259286901,1861627568,-1191670792,-285802312,-561252349,-1207966767,-2054455280,-2060745844,1346405255,-2095754264,-2054617916,-1095203942,1285574673,-1195796341,-1947601152,-164712248]},{"sector":8,"data":[-939263890,-2086092415,764995665,-1207647101,-1605365305,-1181185204,-369688392,783337611,66612982,-1665039928,2011713923,79987501,-1964506133,-1956684074,1438866917,247000203,447145984,1793611351,-163149574,58064700,-1610499607,-1952937140,-164712208,-125045138,-150712136,-956824594,6128773,1861621424,-1948742906,-1987355001,-1336047739,107935254,-2020878197,1174637406,-2054600700,-2050597492,-1979622010,-2004269948,-1956803707,-1948003874,-1990663545,1183511622,-2000093452,-966948219,22906245,1569490315,1569162539,-62486208,16664263,1149536768,-1981535607,1727525446,1372138484,-62485168,842066000,-1991998326,-768875478,435963433,1183579734,-27882500,1569883529,1570018697,-1980610933,-950169979,6131845,-1799519488,259129693,-1115486345,1946181010,-96025082,-1339299066,-160500178,1285609611,1354340491,-1947601148,-1799846928,141885533,1569896577,108429224,83510982,1187382507,1285554682,-259286901,1861627568,-1191670794,-285801392,1183512579,-1987737350,-1752840611,-11140771,1072170102,79987475,1570276745,1342178744,-2080835864,-1986526524,1285617734,-259286901,1861627568,-1191670794,-285801392,783874051,-127469824,-1195849589,65992448,-229733944,-2020877941,-2027191412,1346405255,1569490315,1569162539,2045268032,79987475,1570407817,1343342776,-1735701344,-150712135,-1329034263,-160500178,-1048459261,-397320792,-998036546,298956804,-1957912496,72399256,-930354697,1861627568,-2117598218]},{"sector":9,"data":[1365089473,-2094293528,65733828,-1965772568,1587082822,1575324511,-1957326653,-390056980,-1974069048,-1181219770,-369688392,783872139,107411200,-2067337213,-973044860,8619396,-2088336186,-2021341440,-973078397,8620420,-2088074042,-1954232832,-2067332989,33676,-2071347157,-2071362672,-2071362674,-2071362668,-2067364974,-1996389481,-1987864444,1350802052,-1476016501,468209795,79987499,-1974419413,-1181219770,-369688392,783861899,107411200,-1048459261,-397311076,-998036742,-1017291260,871140181,405989568,71731798,72399256,-259266057,-150982984,-268237210,1568965830,-2054896128,-2067398563,-956277370,6129540,-1987787264,-2067398563,-973054582,6130564,1569490119,-1070923776,1569752201,1569621129,1570014345,1569883273,1570276489,1570407561,1570211014,-1316698623,-1957691299,1571292614,713091152,721732739,1183469760,1354340356,-1947601148,3061960,50751223,-1665039928,1609060701,79987498,-1866244770,-1192457387,-1779957758,-967420137,8398598,16664262,721307274,-1947169820,-941108738,8392837,-159004928,-2013265830,-947305308,5825157,-28901888,150896256,-2135370126,-924299264,46433027,2037694474,16664262,1191052267,-2144886530,1946043960,-28931485,-2147097558,-1528279040,46433027,1131724810,721307274,-1594848284,1059347212,-1991998328,-405668213,1079709600,1491240329,710610080,12592612,-523116335,1527582346,-1056182998,277186880,-397388160,-998043466,-159020796,-1969231014]},{"sector":10,"data":[-13959586,1568325512,216776747,-352321096,1460061703,-253034368,-443850914,-1957313699,309484,-1206467608,1183418700,-27357956,1527318214,134661635,113639771,-973055217,22744070,67520138,1527685760,-16482687,-1978960384,112264518,101245138,1183472396,1527620100,-1543747957,1183537930,-2147048450,1350567608,1348143288,63432784,-1610169213,19159828,91488572,-352321096,5224487,1620048,1354771280,-140711856,-16202621,-11292106,-397168586,-997993892,1460061700,-1070923648,-1017256565,-1192457387,703070236,1287149078,-330921591,-940679540,61510,-957325685,-158774137,-2114959617,33615998,380694130,-1962643722,1585941464,-62486133,-957987191,-2147424186,1962935934,1958742788,108953606,-972786427,-1610487738,-1952937140,1149537008,736373385,-1957670455,736350686,-1208004416,380655842,-1962643722,1354771416,-1956857857,1378719208,764471376,-1980479863,2122380886,242549224,-1991998326,-768875478,435439145,2122577494,125108470,-1460371839,-954829185,67299910,-1727790408,1183535186,-162100236,-352067579,-364460268,-1380447571,1347590410,-1946925429,-1962543530,13796106,-1712828334,-96040659,554033361,-230258432,425600,1048579189,1962969932,-230260475,1285554426,-661940085,-1991997558,-259267542,737298059,200734674,17003730,1285616246,-661940085,-1991997558,-930356182,737298059,-1980631086,2122379846,57999592,-957200641,-956236218,61510,1191117803,-230257680]},{"sector":11,"data":[1928349241,20310275,16271046,-956807426,73074950,-1735701344,-2020943733,144869700,201770587,2122383707,1979777020,-45708789,-523106639,1527514632,-1560525174,1285577485,-1568668533,1183472398,1527751400,1348143288,1292368,674818128,-1593391997,19225364,-465139456,108314635,66616960,2122554997,1786052836,16271046,-956807426,56297734,1527252678,201770497,2122383707,1979777020,-45708789,-523106639,1527514632,-1560525174,1285577485,-1568668533,1183472398,1527751400,-1544796533,1183537930,-2147048466,1350567608,1348143288,24897616,-1593391997,19225364,-465139456,108314635,66616960,2122553973,997523684,33441478,-1595390210,-1952937140,-1964781096,-2026313658,57956578,-956367895,-16717754,380697670,-1962643722,-62485520,-1956608967,-504822926,1552190462,-969544821,-16712122,380697670,-1962643722,-62485520,-1956608967,1187439474,1183383784,-25263898,-385649408,380698285,-1962643722,-431584296,-1956739285,1575324510,-326412861,-1981235149,151438867,1183451227,1527685636,1350567608,1348143288,13363280,-2147040125,5967422,346032500,1006707803,-15567615,-11293130,-397169610,-997994640,-339727612,1527685138,1015031714,-972720632,142616326,1560281528,-326412861,-402651976,1287131952,-62486135,-956408180,39520518,1527252678,138840577,-1973743710,211946054,105286235,245530628,75399515,192282879,-1325054326,148951558,-1973744634,228721734,-62485669,-1956967773]},{"sector":12,"data":[111410758,-2147043200,1527298128,854085712,113541888,609948832,1946237953,112645,1586109931,-1996543482,-1201833281,-1202716593,726663192,-397389632,-997985282,-1950340344,1438866917,-1070338933,-15556632,1996425334,74907398,1342182328,-2094593560,-1017313084,-1192457387,-2115502064,-967420142,-1593836986,1183353676,-230242562,24701184,-2131474690,2097476734,-155668447,-661917082,1861627568,-2131719180,8624056,1183507060,1357130482,-2097054744,95945412,-1293398016,46433264,58048522,-972997911,-973013946,-352259002,-196674045,401899136,783294077,-1946915082,-230257960,1354359850,-1948125436,-1749516048,-579600291,33310406,16547456,15270773,1554433,-275716016,-972897149,-1979648954,-466947514,1183510667,-125069068,-1376375120,-661946316,-150712136,-2133326874,6130111,1465256052,-2096988440,1191052484,-193036044,-1194558441,-397410299,-997985993,-129595390,1727445168,-1327985678,-126945746,-2138312565,1183417223,-196688138,-33297664,2122380358,763172852,-1728821622,-2020943733,1183350836,-164712208,-661917586,720520842,72399332,-259268105,1569306752,-1966050304,1183379526,-92372742,-1340312321,-93391314,1183504523,-1176229134,-503905200,1183576203,-2021639690,-1975618467,-466947514,1354297483,-1947797756,-1417296136,783286369,-1946652938,-155668264,-670829978,-2088269941,1638499721,1638368710,-1467628032,-1202323103,-397410281,-998047305,-230228476,947922848,376697414,-1561180534]},{"sector":13,"data":[-662009012,-1086783702,-445358726,-369852792,1183514221,-1957911810,-443850914,-1957313699,702700,1443939304,16139975,-161576192,-1991473210,-163119360,16154241,-940674558,63046,-2130413941,-1325334554,-1947806967,-2138376610,-2021129990,1191151948,-159481354,-529399296,16271046,720914058,-754667036,-96040480,1727445168,-1326413052,-127470034,-1132400637,1962967959,15657219,-1963303285,-2004646780,-1953822073,-2071266722,-2021096571,1586203403,-2004579590,-771313277,-2037609760,1071743107,-2021080822,1586203404,-2021356806,226986115,-94467189,-2088139638,-1961982072,-1963303285,-2004645244,-1953820793,-2071266722,112296845,-1937055534,-511671413,-2000614849,-1953820537,-2071266722,-2021096564,-2071229679,-1802796146,1183417232,-27883012,-337110863,-94467288,-1961523320,-1946526069,-164954538,-2021080437,1586203412,-62485510,-2021079926,1586203411,-62485766,-1961719928,-2087549813,-2087414645,-1979955575,414318166,-1960268312,-2021066146,1586203417,-27882502,-1031014870,-1961326712,-1946526069,-997524410,-1961392248,-1963303285,-2021065658,1191086870,-125927176,-385649916,113704674,-967472310,-1433711866,704923274,-1070903068,-125638576,-1744518013,1575324510,-326412861,-402647368,1448546108,15877831,-228685056,-1991473210,-230228224,15892097,-2131856894,1964442750,13822211,-1744550262,783341707,-2144030730,1183510667,-1176229370,-503905200,-1132400637,1962958217,11462915,1568965770,-1970599262,-1570929276]},{"sector":14,"data":[-2071295221,112287112,-1937055534,-511681146,-1564407233,-2071295220,228744583,-1987802485,-1961975203,1569358986,-1970597982,-1319268988,-1964977658,-2141353076,-1056292895,-1970597726,-1570927484,-2071229679,-1802805874,1183407504,-61437446,-1545070415,-1961516505,721180299,-1564308490,1183550228,-1564177670,1183484691,-1961712902,1569883275,1570018443,-1980086647,414317654,-1574472216,1451985689,-1946801412,-1961319742,-1963309429,-1961385276,-1560656246,2122353430,58004996,-1979610391,-1057094586,-2130819448,1964442750,-28916220,-28931584,-336312696,-196674045,401899136,1187393917,1183514616,-661939980,-2144041078,-1326561656,-294717906,1183504523,-1176229370,-503905200,-1199509365,1946181001,-297366836,-2131212664,1979709566,19785987,-1961228602,453428736,1183449227,-1947981306,-164712208,-125044626,-150712136,-1963457562,-1319270267,216060422,-1961057791,-1960966458,-773944571,-494433565,-1563885992,-2054517985,-523084403,-1991996278,171958656,-1960795455,1569162634,-1970594398,-1570927483,95980321,82333696,46433261,-1963571576,-467007930,783347851,-1946652938,72399096,-133961993,-472785269,1491240843,-940947831,60486,1357674239,-1991998326,-919870422,783306833,-1946784010,-155668264,-670890394,1569162635,-2088270037,199774289,-397389275,1183393030,-61437446,736630961,-1960467930,721180299,-1564308490,1183550244,-1564177670,1183484707,-1960664326,-1280257,-2071270794,-466974396,1347537195,1569490315]},{"sector":15,"data":[1569162539,-397389504,1347560642,-1994080792,1451883078,-401034756,698492386,-61437045,-1031014870,-1953814366,-997524922,-1970591838,648215110,1241958027,113661323,-2136306869,1947665534,105286179,-259267542,71731798,-1327985768,883947054,-1191670912,-420019120,-1308632949,334192007,705054346,1458605028,-150712136,-2585626,-396252745,-997984864,-263813116,-1956684136,-1866244635,-1192457387,1441267714,-28916212,1527298049,-169324464,79987465,609948832,1963015169,1527298063,-605532080,79987465,16664262,-1728166262,-1017256565,871140181,203352256,-1560000885,1183537928,1527423750,-1559738741,1183472396,1527751182,-1576253814,1183537934,1527816970,1348143288,161015888,1560593539,-326412861,-402651464,1187384292,113705466,613128,1527711430,1527298303,-2147043248,1527298128,158918736,-1593391997,1183406864,-2146655748,-989968759,-1977156514,-2147114489,609948832,1946237953,134661938,-973075877,-10809594,1348143288,1350567608,1348143288,-2096546328,278988484,-62486181,-1988096863,1589968454,126494460,-1604651870,19159828,259326268,1348143288,151578704,-972766077,-1979647418,-1952908730,-1866244635,-1192457387,1239941258,-337095157,-28916224,151438849,112747099,146296960,-397389733,-998039418,1988544262,-1593802241,-2037818614,1187512184,-352321284,1990116373,1988558847,126494463,-231797,-2104951738,-1631256710,-2144927882,-512422593,-231797,-2100888506,-1962016902,1191181430]},{"sector":16,"data":[2055390972,-2037579521,279183226,201770843,-956301221,5967366,302434048,-1923556005,-1543538042,-2037544102,279183226,-96024997,1527816448,-1198826845,1347443464,-2096624152,1048773828,1962957576,-1957644262,1527645753,283640693,-1887389694,1527645753,401089397,-2095125758,-10811330,45618036,-11513856,-396687306,-998047110,-28916218,-96025088,-92372991,-1968540672,1587084870,-1017256565,1441316915,973522442,113639515,-973045720,8398086,1490814662,-2113485312,113639517,-973045722,5990406,1490880199,113662156,-972990241,22601734,1491142342,-871971269,113639512,-956213043,1482214918,-804862336,113706328,1528977617,1490224839,113728316,1531467989,1490486983,113728348,1567250649,-1575876960,113727707,-2147385256,-2141583673,113704960,-1957658532,-2141321529,113672268,-956268448,5972486,604424064,-956301221,-2141510138,671532943,-964679333,56306182,1343345336,1348152248,-2095293976,-675806012,817385489,1273516123,79987484,1343347896,1348154808,-2095301144,113706180,88892,1530791623,113704960,-1887413440,-1559099743,113662786,-1207870652,-1202712095,-397386939,-998040558,1208403716,-956300965,5982726,1275512576,-1584431013,1319309830,1342621275,-457703077,1371033617,-404205477,79987483,1532757703,113704960,23390,1533019847,111251328,1533190930,1533281990,300726273,1533392976,465365072,-955988861,22899206,1812383488,-956301219,-2141360634,302424463]},{"sector":17,"data":[-966954845,22901254,1343352760,1348301752,-2095345176,113640644,-972980148,25185542,-2142370106,1325844225,-956300928,8409350,1392953088,-956299136,8410374,688309760,113639808,-972980182,25176838,-2144598329,113704961,32814,-2144336185,113713024,32818,-390057021,113641600,-1610524452,-922842284,-1014996574,1843970099,1529591816,-1887304135,113642357,-1593746630,581144452,1529919616,-1887304135,113642357,-1593737176,245600132,1530247296,-1887304135,113642357,-1593737179,1319341956,1531295883,-1887304135,113640821,-1207870078,104422225,91590530,-2144991546,1533392897,-1887304135,-1813511307,1567864832,-1887304135,113640821,-1023321240,-1192457387,-236453884,-2147043321,496953424,-1593654141,1183416332,1527816702,-990099831,-970523554,211877895,1528472448,-1551148383,113662744,-972334314,5969670,1528563398,486983168,113643611,-967812322,22748934,1528825542,71732000,-1956968285,178456134,201770843,-973078181,5967366,-1576515958,113728271,1528191760,1348143288,86042704,-1017256565,-1192457387,1843920898,-28915961,1183514924,1527292926,1527383751,113704961,23308,1527645894,252102144,113770331,23312,1348143288,82110544,-16464765,2122448454,2114006526,1354771401,-1962518040,-1866244635,-1192457387,501743634,2122536455,1081417732,-637241,-129579009,1183449088,-259287034,-472785269,-11485141,-1973886281,713639044,1372138468,517007440,-1980610935]}],[{"sector":1,"data":[1347613782,738197432,-397389102,1183391520,9497082,721700491,-401296942,-355393822,-997533487,-695541110,1183446570,-262764050,721700491,-753618478,33532384,1182992500,1451426286,1183449328,-661940218,-1991997558,-259267542,1448132651,-1018113,-840372618,-62486242,-1946265975,-768872890,-770967817,1182992500,1451426300,1183449342,-661940218,-1215568943,-1070901022,1996445264,-59310082,-1994482712,1183578694,-137221124,1959922678,-96010493,1593460363,-1017256565,-1192457387,904396814,1187468806,-956169994,63558,-1744419190,-1070862197,74907472,-472785269,-491258032,502589528,-1979955575,1347616342,-1991998326,-919870422,-538423215,-230258403,1391744649,780368,-1996176253,-1956709818,1438866917,146336907,98494464,16271047,-96024830,1187446784,721944830,1996443840,-28931074,-768874287,319047171,1347552854,-1994523672,-443810746,-1957313699,440556,-2096781336,1962935422,-96024825,736821248,425603,1689842548,1347590400,-11485141,1743258742,-62486243,738088585,1996443840,1996444166,498526460,737822345,1996443840,6600710,726684313,1996443840,490530820,-68661166,105810717,-617879087,158520123,-1053096841,1191117682,-92371974,-955943324,6617670,-1946532213,1438866917,112782475,86435840,294531,1689795444,1347590400,-11485141,-202898314,105810716,-1056708143,-1996434813,1451883590,1354771454,1376155391,-386107649,1183391032,6569466,1187449974]},{"sector":2,"data":[-352295686,-96024827,1183514624,1575324666,-326412861,-402651464,-1070922544,108461904,74907472,-1994611224,1451883078,6600956,-11513191,1996487798,485681402,-1191295351,1385758820,-59310256,-386238721,-804577982,1191117684,-28931074,-1017256565,-1192457387,-2048393214,134661892,-1973084069,245498950,1527298139,565727312,333991936,1527685144,-1728166264,-1017256565,-1192457387,1508376578,134661892,-1973083301,245498950,1527298139,565727312,-404205568,113541911,609948832,1963015169,-28916218,-1610159358,1183341320,-28931330,1575324568,-326412861,-402652488,113706008,1141725960,1527449286,71731712,178405420,201770843,-955750821,-1319432698,-2147043240,430368848,-1207778173,-1202683898,1347443464,-2095498776,346031812,1006707803,-972655359,-352256442,-28916220,-28931583,1575324568,-326412861,-402635592,-950664260,52294,-1949540725,12977782,-867762432,214728323,113700466,-1927652599,245616198,-2147043237,424077392,-1207778173,-1202683898,1347443464,-2095523352,1183450820,-1136228348,12404422,1343354040,1354516109,-2095716888,113640644,-951166199,140184582,-1136227072,-1201992029,1347443464,-2095555096,346031300,1006707803,725185537,-901346880,-338934135,-901331192,1191116801,-330920500,373483600,990037123,410438726,-2134083957,1949232250,-331183392,1579933323,108432330,-689241976,1575324510,-326412861,-402652488,2122318588,1266434820,1510243968,113722751,1141725960]},{"sector":3,"data":[1527449286,71731712,178405420,201770843,-955750565,2119896582,-2147043185,410970192,-1207778173,-1202683898,1347443464,-2095574552,1048577732,1946193791,-28916218,-972756223,-1979646394,-1952907706,-1866244635,1475119957,75402070,1342850443,1569392011,72190722,-1962519157,1432291445,-2145701734,-1957208823,92866174,-1996333687,1435042893,141920518,-1986019277,-1990718395,1599998533,-1017256565,-2145036134,345686793,-1022787547,-2145018726,817152777,37495245,550306419,-1962311489,721420854,16679415,-1107070448,-1896214528,-1899724329,276036495,-135782634,1354773249,-1207666968,567102719,922674307,1415718537,1579583798,-1312388268,1222693636,1415357238,915011331,-1014235134,-604512725,567102132,-752972746,-66644396,-1185382721,-819228784,-1426866125,1005068054,-400615936,31982482,-1232126,-11209674,-11210186,-397086666,-397374242,-2135424798,-1193767415,-952762365,408182790,2078822516,66971649,1342242744,1415583487,567095476,-1202399837,567096576,1421942409,1422067340,12066574,1932966437,521544141,1469582987,109981411,-1960422189,-989844426,-1940415994,920335322,1469456127,521536883,906055145,1469974213,62642828,520041984,521557910,1423115918,739150630,-1909005568,654259137,1946172800,833836,-212552514,-1190431578,-1070366721,427142898,503768555,-141877497,-1403724609,-22244968,1208054976,385344170,310047,1423746944,1140897983,175251917,1954595574,-594575355]},{"sector":4,"data":[2034974804,1470283495,-396909889,-1564606302,1470283607,-1023374616,-1091794091,-1530963804,8251480,-1084775746,1961383844,1426320128,-1530991477,1470414679,-1107269912,-1530964060,7137367,184596968,-2096401216,1962935422,71747333,263782655,375552,1423738870,-1274776575,1126288702,132707042,71731968,567102644,1469582987,45811683,-1776353536,382017111,12080321,522308901,1425948288,504198144,-984285280,-1269497834,522308901,1945582531,-1957736694,-597235,-1007490095,242480955,-1962610813,38079237,503313012,12840683,-1192457387,-397410052,1048773243,1946178820,68615940,16758869,40495184,-1017256565,-385875272,-1957036453,1926769628,102644490,-1962642859,870449123,-28972608,-1175047338,-466485182,-533549828,-192873502,-401771435,28901294,753422336,112642,110084958,45765896,-719964160,-1909885868,643093254,2885262,1425540748,-1181106125,-13402112,1974382322,-1991817221,-1185614274,-1359806465,-779365897,-1107295809,512622721,1017926867,1023112224,1022850057,175076365,1198224576,540847182,154986612,222094452,-1073062796,574380148,1547445364,-347995276,1103705060,1952201900,1948400890,-338623740,-775844909,-1462692887,-339053311,1017925121,170619917,1009218752,1018852386,1107522652,-919343893,1547480129,574421620,-788331404,-1047798805,-787224111,-764083800,521574379,1425030793,-783821053,-2133392409,-500433182,-224148341,64523092,906434299,1128480649]},{"sector":5,"data":[1425422021,-1073042772,-2118190475,512636416,65754323,-1398095821,-76275652,-143390404,58002748,167804905,-352094784,-1992912775,1313030975,1948269740,1946762459,1947024599,1958742626,1948400734,1952201767,-454317565,-1404974797,-93037508,108274236,-1426891600,1555091947,-1426855471,581961331,1321593770,1947024556,1958742574,1948400682,1952201911,-320099837,-1404974797,-93037508,108274236,-1426891600,1555093995,-1426855471,581998195,869133226,521579200,1991,1426597631,1441565525,1423122062,-1047803597,-108271221,741772105,1962281728,650546704,16000,-234458112,1974355374,1083655674,-41157084,-989600303,-1084809450,-2048393207,-812949760,-133956213,1425288841,-561117410,-481692109,993820947,-1996131261,1162150014,-1073042772,-303891851,369118857,-443851489,-1957313699,509040364,72780551,-1386763074,276087355,208967232,-1178586217,-1359806465,-336857205,-1956749418,46292453,-326413056,74907479,201313256,-1844153152,-1070335349,-218103879,1238497198,-1275067717,1596050752,-1034033781,-796196862,1415710211,104412530,628315228,1342181125,61987025,-645076781,1423122059,-1056715989,-661929074,567102132,605057624,1554204912,780899668,369185890,-1950133150,-74323513,-1070394510,-1017256565,-397346701,-1957167080,1942183397,976903,-1711276104,-1017256565,32039986,-660421888,1977879124,-717324253,225575764,225649212,91365436,132842928,1980972176,-1156337662,-1730718454]},{"sector":6,"data":[-1017852509,-135543670,-2081649835,1448543468,726999230,-1877611521,-2096741130,-397014156,-998047270,24395778,147227463,1446524473,-947132813,-443850914,-1957313699,149717996,1988843095,121932294,-96040552,539870859,-754732715,-775386120,-775879712,1438647776,-151501175,1954743876,105182726,-2146732992,-1205860788,283770879,1157009409,-277544698,33967232,-284793728,1149878315,-1980200190,1157037182,1601506310,-343810421,61953312,-1014236205,-670833711,-2013862959,1963021760,687767878,-2130283435,1968517374,-92864717,-2096132632,-1073020220,117386613,-25078498,108352808,-346492232,1824034820,71600525,1586168969,38258680,130417152,-1878463743,10283094,-167590781,1963460164,-2116121831,-1319821077,-1946430717,65262019,-152841768,22397063,1015763060,-1962640341,-1992293308,-128021756,1208108939,184697993,1460895487,-16485121,1944648310,113541898,-335788407,1586204698,-595069190,259268692,1342177976,1347469355,165341267,-1962359677,1183450204,-351827964,29331479,1355254528,1342457485,-386238721,-998045130,-62486266,1962704441,-18093821,704923274,-1956684060,-1866244635,-2081649835,-1957297428,539821126,-754732715,-775386120,-775879712,1438647776,-1191295351,-397409792,-998044862,73304834,184829833,-2146470720,-1962408369,1204289118,-352190462,1586204695,105873412,-28931324,71797056,-939630965,66119,-1962647925,71601139,1204225929,1577058306,-1017256565,-2081649835]},{"sector":7,"data":[1448543468,721712779,105155327,37487396,1156990581,427100166,-343810421,61953312,-1014236205,-670833711,-2013862959,1946244544,721718055,1183384644,2126515196,1962889243,121932292,1676169368,113541897,1962690107,105676807,-16608,-1996209013,38061828,-947191808,-443850914,-1957313699,23378156,1476032488,108432214,-23165299,-1957127005,-1935472570,71732056,-950501213,5805574,-1811495168,-385875880,1015022204,-385649627,113705560,88216,-2002534357,1485087576,-1554476381,-1868343162,1485742936,-1554480477,-1969006466,-1576614056,-2147475368,1966080380,113722940,3168418,1015034859,-15895253,-950499322,5803526,-1876759808,1965046912,-2009169139,359989336,1485702911,117379051,166418558,1965898880,-1979252783,76170840,-169324392,46433031,-394936309,1486796886,124184656,-1962621821,-1640070160,209518680,1485440767,-145187167,1486791640,1965964416,-1878589661,-1202305448,-397387624,-998045892,-2081387772,5806142,113707645,88216,1485836031,1033372810,846463046,1946177085,6831413,1815945332,-955878144,39355910,-2042723584,91553880,1967930496,1015039489,-384076544,113705352,88198,113763307,1071238,113761259,546950,76207083,-1668904552,4537854,1195182708,1023767552,158662744,1485047551,-23296381,-1668904160,6499838,1979716925,18147587,781434883,2100602879,1485577867,-1801379957,-2096658088,39357446,-1878955543,1485965055,1484654279]},{"sector":8,"data":[179830784,2145931264,46433025,-1878961687,-352319304,117412080,117397634,1048795268,1962956944,-1710831863,-352321192,113741831,22682,1485833983,1486358215,1048772612,1963481222,8972547,-2036088789,-62486184,1486751289,-1633605772,-62486184,1485454979,-955681792,5807622,-1877808384,1486761603,1486790917,41795595,-1633435605,-1945730216,280494680,-1552384,46433024,1342192312,-2096902168,2122515140,578027772,1485454979,-1961528320,86899782,1486791424,41795595,-1633435605,-1878529192,1486751431,780337152,-1207674740,-397410288,-998047554,-14685950,-385871688,-1070858449,31647824,-1862325527,-352321096,-1224765197,-1175912804,-15079166,1485192835,-1962707968,-24424762,4030535,1031800180,-1946847963,1355164615,-303540706,113541891,1015084939,-385649664,1048837500,1962956948,-2145481895,105379416,-1202752480,1307312127,2080144608,2095480038,2096135398,2096135164,2096135408,2078571760,2081848336,2096135408,2096135382,2096135160,2094038256,1486241411,-2095877120,5805118,512430197,1207326848,-1217060858,-347732757,-1801351015,-1956684200,-1866244635,-2081649835,1448548588,168066691,117376116,1048795282,1946310790,-2042723577,376770648,1485577867,1468729227,-62486270,-2080483703,72911878,1048783595,1946179730,-1944155375,-1995994280,1187511366,-352321282,512462862,126572684,-62486119,-2080483703,39357446,1484668547,-1962052608,1175190598,-1962576642,48956486,-1599881173]},{"sector":9,"data":[-1674146984,-1841396904,712310872,16678531,2122523773,393546244,1177355462,-1946401141,-654836138,-150941053,-62486054,-939633015,129094,1187448299,-1929379592,-125048762,1459910399,-100609,-102171530,147096329,1485848195,1461810176,-2096519192,243991236,-936683368,-336310647,80121861,-1047837136,2143292233,-196179467,1485049483,76023178,125094155,58483004,1176513664,-8552377,-2081852160,5804606,-2002709387,-1912206504,-2096401320,1962997886,112645,-1070923029,45279312,1577239683,1575324511,-1957326653,283935724,2122536535,343146500,-1593835074,1183406220,-94466824,1485571715,9562370,1485192835,-1961396976,-1957131234,39291655,-1980217719,109312598,-352036724,512462869,126572684,-1979955575,1586296902,-1945730054,1048773208,1964005510,-129594611,1979336203,1446688788,2122516971,158662908,-1990835784,1586296902,-129594374,-1980082549,1451881030,972434420,1951961142,-1743877348,-1878070440,-893244,-2144931258,359923775,2127444806,-1863455984,-228670394,653412095,1962950528,-1640068109,-2080494760,5802558,-396949643,-998047458,1996445186,-126418950,-2097057816,1048774340,1946179722,65558279,46433025,-443850914,-1957313699,82609132,-1990685535,2122579526,108291844,1191476867,28312693,-1070988565,-2080618872,5804094,113706613,415896,16547456,1048776052,1962956952,-1744386298,-16776872,-10976202,-10971082,922682486,1996445852,1679228926,180650838]},{"sector":10,"data":[16547456,1048777332,1962956926,-1674117365,1712783192,46433110,1484668547,-2095942656,5806142,922684277,385833116,-998025622,-1945730302,113707096,22688,190351521,1951960582,-25755885,1449924351,184730755,-1207601984,48955393,-397361109,-443875064,-1957313699,1048794860,1962956950,-2145481937,38797144,1183452792,-13137148,704940039,-1878266908,74907475,-2080919576,1967129796,-1777926393,-1878660264,1486096127,-1866244770,-2081649835,1448542956,1486241411,-1958120192,-167050122,367739518,1484797695,1487025919,-2080933912,1967129796,-1777926396,1321634648,377405451,1484791435,2013417471,1487053019,134168459,-467008120,1048829163,1962956950,71731975,1486095873,-443850914,-1957313699,49054700,1988843095,-1774288120,1349845080,922688747,1589926016,126494212,434655384,79987703,-16485056,-10971642,-963967930,1958742862,-2145481955,38797144,1589957752,126494212,1484791435,134168459,-467008120,1048826603,1962956950,138840839,1486095873,-443850914,-1957313699,183272428,915101271,-1070901092,-1979955575,1048836678,1966102690,-1878640360,957510744,1951957510,-1710868218,-955878056,542679558,-1640068352,1642616408,46433030,737691273,75377656,1485454979,-2145880832,326446396,1487027843,-1408469712,-1645719400,46433278,-2080878849,811115070,-16053388,1048774526,1946179722,75399961,-16354304,1609103942,-1606515968,108265560,-386119937,1048772714,1962956938,-1612163290]},{"sector":11,"data":[46433278,294531,2122516852,57999610,-2097138200,5808190,2122516852,57999612,-16761368,1444870262,-2080451608,1048774340,1946179722,-1576614131,1459626072,-2080480792,1599996612,-1017256565,1485323907,-1207602176,65732651,1342185656,-2080503832,-1866267964,1342189752,-2080506904,1048773316,1964005536,-2076277993,108265560,-352298824,2025361412,-571977728,46433277,-1957326653,82609132,1988843095,-28915962,1015021569,-1961921238,-1957131234,-1945730241,-347733416,1015058504,-955878099,-442,-2130760890,897331260,2134457472,-1874970320,-2146732712,108343356,1487013575,76152880,-774927464,65130977,65130959,820609992,-2142832245,92024892,2117680256,-28931103,-125046793,-1996202357,1590070079,1575324511,-1957326653,49054700,1447607894,-352039286,-2142859262,175374396,-160101318,-352321096,-1070886909,1575324510,-1957326653,82609132,990142091,1918163486,151042053,1190603499,1954545672,176063304,857371648,-1194226743,567099905,1190611826,1962934794,105251598,2030589459,369145896,-1992889351,1183448662,-1194226692,567099906,319178243,226035798,-1946268021,12123222,-350106302,106335192,-1979167093,1119095366,91365837,1423746944,-199497219,-2081649835,1586170092,-635553020,-1207471532,-369555200,-2013858811,1948275932,1107474443,-779368141,-344841779,1423738870,-1955695488,119408214,1183432755,-62486018,-1957275652,-1980593158,1317795942,-1336614136,1974399498,13953098]},{"sector":12,"data":[1979754557,49054536,12246155,36191490,-2135293069,-1948112128,385518548,139365127,1946827948,1962621708,-186471911,-352312344,990752865,-402426373,-1331036136,-62456054,233366507,1591929600,-346690721,-373279931,1397812979,735021905,-1961827382,1085539422,225583565,201213441,1493595328,-91531173,147096515,162792563,-2013913365,1950373084,106859275,1964654464,216791043,469809401,1183516395,-62510082,1593337483,-215488161,185093771,-1962576439,-216274495,-1274653045,1931595072,-351685628,1975520228,-595069216,175390804,1065409163,-133991142,-1191587861,-907338752,1426497881,108250171,-654851029,-1070341633,-1957299477,73305068,74767115,33443712,-1017256565,1458342741,1448000343,1962950531,-1207493079,1944584197,855995649,619420096,-1543625664,1352881742,80189014,-964493311,-29047036,915013630,1317754452,-1898411004,649408,-443851169,-823540899,-93044480,-2080448128,-227283207,-66947189,-1459713107,1212314625,359907643,-268185461,1946265773,96600884,-141885438,-335657847,1962839014,-1980169460,-1054081460,-351958712,-17235195,-963903924,-779298164,91541819,1545505830,41912662,113649347,1023563362,628424702,-268173685,1946265773,1224641522,-1116487365,-268185461,1946265773,96601058,-141885438,-335657847,138906598,74760203,351000718,1645149734,-1945013162,1003982040,637891783,1448615566,-1125435509,856061835,7006400,225756731,1077936420,6219928]},{"sector":13,"data":[1308495220,1894654,1318454644,-1936069810,1003588824,637826241,-1957274461,38242567,-1013333965,-28996783,57934248,1095354411,2147465793,1578515238,-788236714,-1946847766,1925579713,1925317397,601028365,-389665854,141885452,-355347721,-1070340747,1364378457,1946164712,-24422632,-234622837,-16890681,108497407,-684992885,-27948726,-1017489064,-768389037,1347572254,1342177720,266870534,147096320,536869507,41179994,12833291,1458342741,2122516055,947191816,-1957403969,1183516246,125126660,1912624104,-1958155481,1213510198,-147123852,1149963636,205949186,3860566,-2093976738,-25099066,74667186,108384779,-1711276104,-628417045,-787496061,-754732581,-850873109,-1830194655,1418265737,-1305048830,130036564,-443851169,1317782365,972524300,208929356,-2130393469,1968485118,1072429554,470014603,-745850510,-147078770,507053685,645092444,-787496061,-773074469,1005310443,50951671,1423155673,-1064380373,567102132,-147124878,378078325,-2020453284,-1009677564,-1947432107,-1931572265,-1950314792,-1070398338,-218103879,-9073234,-1190756725,-1359806465,-114568713,1183579783,29816580,-1543343104,-202780343,-204926043,-1946973276,12803578,-1947432107,-1948349481,-24443274,-1064380276,-4603853,-139529473,75402193,27838347,1235485300,-1510741551,-1527527149,-91491445,-1957313699,-1948808212,-1898410786,74877888,856063627,-17984,-772296974,-1493960405,-1071970956,-1946157283,1576700915]},{"sector":14,"data":[-1957363517,-1932030996,-1950314792,-1070398338,-218103879,1238497198,1576700817,-1957363517,508975084,75401991,-1962510709,139365343,179047651,-1442614080,-1070401310,-1014256909,-443850914,-1957313699,-1286121748,45934848,-1947432107,507184222,293426394,2080439171,-595069428,91504724,-352321096,-1950338302,12803557,48955830,1990265014,1977879127,1980155656,-335544489,567120389,12779700,1458342741,183272279,-839498042,-2012985717,624752454,641469044,1187382900,216779768,-872790330,1157187270,1157121734,-1913366900,1183446598,108956658,1569392011,72190722,-1962519157,2106263669,1593791754,1476156914,-1995932021,39684357,-1996206711,1971914325,172330760,-164428686,-672659221,114414,1971914123,180650764,-443851169,-1957313699,250381292,1183667799,-1913091084,1183385670,105236222,71732034,-1996208759,38127365,1183678463,1996443656,770201350,113542129,1308618891,705394690,-14840896,-351827963,727158795,-504868672,79987694,1600046731,-1017256565,1458342741,-326951337,-196688374,71732173,1022707336,1007318053,-972655578,-338954682,-129579508,-146356533,-163133884,-229209020,-1980479859,2123100230,-1962571002,1300955741,106269444,-16222837,2123041397,-1912238582,1432290909,1576034047,371087356,176065311,1167000972,142510854,1569260937,72190210,-1996073591,1167001717,855929354,-402068490,29289966,-1996125440,-998044555,1583292170,-1017256565,1458342741,75402071]},{"sector":15,"data":[1569392011,72190722,-1962519157,2106263669,1461832970,-1996063093,39684357,-1996206711,1971914325,172330760,-164428686,-1545074453,114413,1971914123,-1956749556,12803557,1458342741,75402071,1569392011,72190722,-1962519157,1979648117,142510858,1569588622,567107334,-678683049,2123095950,-1895461880,2123040325,-1996125946,1300824669,106268932,-1895271031,74582597,149681715,-1091746328,92995585,1594652041,1575324510,-1957363517,73305068,-1945739380,38767623,-1962649716,12803557,1475119957,503611019,870288135,-17984,-146690318,105286361,-1359807605,1946499151,-1946209534,-443850809,-1957313699,-1932030996,-1950314792,-544537474,-485994869,105286165,-940056438,41156609,-372160086,-921457677,-91510029,12803475,-1962258805,1451951174,142510854,-66642345,1958742675,184124179,-771027339,766511737,-2082736214,-621346606,865269643,1958742994,-1812859134,-2020412937,1009779923,67270201,-1031034329,-495598837,-1404107384,1149764998,21270015,-227358917,-1956749480,12803557,185074690,-1957358065,82609132,1023690379,292880392,1469456011,1469586955,12060533,921303318,-1945527572,-227409920,1183385483,38243326,-1946401143,-768407994,1468598153,72256258,1963129219,1958742824,1849590564,494207062,-1272729517,-1943941835,-1990824442,1532391454,512504250,598744846,567092660,150569759,-1313333899,-2096133236,175309561,193768632,-1207733047,-896758613,-16776261,-1957194210]},{"sector":16,"data":[1452015174,1575324668,-326412861,-1955520883,771753657,125044536,-101129653,1234178027,-523124341,512614609,-670869640,1575324664,1352618179,-2135404002,-2082959863,5569598,2023821429,2048297815,81239,-1073008265,-326937995,-326413052,-1341995645,72780548,1157650057,1019805253,-1577945856,1183405680,1450090752,1560430217,-1638391974,-1546913448,378099600,1426478994,1397839447,2023997491,1467654999,1342177976,-1877540868,1499158615,123559774,-1638391974,-875825064,-1641087178,1381061463,1357132294,1342179512,385829608,-2095579361,1510409412,13327193,-1947432107,1586169414,-1948775670,192219230,-150714741,1575324643,-150992702,-1949791261,1727464518,-1949826294,-470350778,-443821821,574045,115600690,-757997359,12843746,-1947432107,1996424286,108461832,-16615425,-5445577,-1996202357,39291143,-1034033781,-1957363706,-1957276692,-1073018298,1317737845,105286408,-235417037,1183570059,-1947076860,-1959203885,140413896,-1962518901,-372177850,-355345455,-921970479,-201853835,1727525003,1183551754,65468168,990671569,125240918,1178273394,1308718596,1586942515,1575324507,2242,1408011093,185222795,-1961527872,1183516750,-137219322,71732209,-1031015945,1173082675,1586219147,106334984,-788248949,-774123031,198758890,-134974007,-137851917,-141489562,-788330394,1446710386,1913091846,71711499,1177224822,173415176,453264939,-621345194,-628893449,-443852032,574045,115600690]},{"sector":17,"data":[-657331503,12843746,-89061879,-795951053,-1954807620,1342656756,-1073939681,12125696,-358223359,1565,-1291338050,-2143518716,1015025268,-2095287040,-872542010,416149365,1284183179,-2081518846,-872542010,1015028340,-1091275776,1017906827,1443591168,-1275066437,1578159374,-18091797,-1157626433,28867584,332224258,856453983,1326697920,-1547768459,-1093407994,-21035326,1430094205,-1949862486,2080434933,1850277888,1768710518,1634738276,1953068146,544108393,1818386804,1917124709,544370546,1684107116,543649385,1919250543,1852404833,2037588071,1835365491,1936280832,1735289203,1701867296,1769234802,1931503470,1702130553,-1308566931,-1342102528,-1957320107,1381061612,102651734,-1229957866,314196966,695252992,-1157083509,-885325787,-4510852,2144025471,-420350172,-423327166,-1973296062,-436007712,105810785,1258341563,-119341707,1642513546,82559019,178320,520558429,1499094623,1575324507,1426064586,1364454539,509040210,-1957358074,20777030,-1962311936,1286866502,-1070390835,520558429,1499094623,1575324507,1426064586,1364454539,509040210,-1219160570,172395264,645863740,1183576202,2135964680,-1261401571,1381061378,102651734,281892118,520558429,1499094623,-339727525,45649924,118971648,1516134175,-443851943,445021,1408011093,1465274961,1427506718,-2146673013,1199512059,65782666,-1275023216,241076998,2136013696,-1949070794,-75493282,-1976795367,308186099,1586219914,-974419436]}],[{"sector":1,"data":[478873718,1364458378,509040210,-850061818,118971664,1516134175,-1070900391,-1198521109,391970818,1583292167,-1956947622,281697765,-326413056,1448235347,369499735,738142805,206998464,2136013440,239504250,1937709372,45412490,1448235347,369499735,1561382229,1595868951,1532582494,-1979156795,309773596,-1978630517,-1190546428,1364393985,509040210,-850061818,118971664,1516134175,1330010969,-92224770,-32541360,-2147437882,108337662,-352321096,45387809,1448235347,369499735,1561382229,1595868951,1532582494,1962999683,-1195365454,391970818,1583292167,-1956947622,281697765,11665896,1303379986,1968316499,1767124334,1277191533,1634886249,757102962,1886339872,1734963833,673215592,824191331,741881913,1667845408,1869836146,1126200422,292581999,775169280,620782640,1680879156,775169280,620782640,1680879156,775169280,620782640,1680879156,775169280,858088496,627322926,874840101,6565934,808334373,874840164,627322926,1680879155,620766501,1680879156,775103744,623207472,775169280,620782640,1680879156,808334117,2434404,808334373,858062948,627322926,620757029,1680879156,1413563904,538981937,1095106592,540160340,8224,1313558101,542005071,1413563904,538981937,1095106592,540160340,8224,1313558101,542005071,-1070335488,12374158,1358203772,-81833977,100712444,-234815303,102623909,-1094844416,-2147175673,242516028,1962949760,281445148,-277492738]},{"sector":2,"data":[344660173,-1962783605,281445358,443862014,1946172544,109821684,1946172588,129717771,-854674432,-253010416,96468715,2080422656,1459749304,1935610829,-843042036,-311079149,-351886402,113426131,-2122449217,1974097213,-353006649,31744,1635151433,543451500,1953653104,1869182057,1635000430,6646882,1869771333,1869357170,1852400737,1886330983,1952543333,543649385,1953724787,1291873637,1769173865,1864394606,1634887024,1735289204,1937339168,-865245836,604025345,-1437224959,-1900006406,2080423120,122745995,-50651312,-1190788929,-1510866688,400874,129940992,1015022771,-2146536320,477429820,-32455037,-839944757,-1961587944,-292879796,-32455037,-2145749813,-193724356,-1408857154,192151612,506710,281874100,-336532642,376830,-1199832901,-849935871,208887571,332251187,-1091734193,-739572061,-1090075970,1031896574,-948589995,15398283,1224736892,1818326638,1881171049,1769239137,1852795252,1650553888,1157653868,1919906418,1634692128,1735289188,1701867296,1769234802,1931503470,1702130553,1766654061,1852404595,1886330983,1952543333,543649385,1953724787,14445925,19136690,-89500240,-795951053,-1954807620,1342656756,-1073939681,12125696,-358223359,1565,-1291338050,-2143518716,1015025268,-2095287040,-872542010,416149365,1284183179,-2081518846,-872542010,1015028340,-1091275776,1017906827,1443591168,-1275066437,1578159374,-18091797,-1157626433,28867584,332224258,856453983]},{"sector":3,"data":[1326697920,-1547768459,-1093407994,-21035326,1430094205,-1949862486,2080434933,1850277888,1768710518,1634738276,1953068146,544108393,1818386804,1917124709,544370546,1684107116,543649385,1919250543,1852404833,2037588071,1835365491,1936280832,1735289203,1701867296,1769234802,1931503470,1702130553,-1308566419,-1342102528,872065621,-1127182656,-192185344,525338448,12582139,16824582,501917170,-1107296250,78841790,1954561152,3964942,-964486027,1976303120,-1961308689,38570772,-964432245,1959525904,3964954,-1950419852,3976198,-1151988876,246677511,-346156851,-1073812496,12255237,33667196,1595133271,-1070396301,1968116685,111394541,-1027681301,2113847046,-1437254271,-175388811,8126698,1986939136,1684630625,1918988320,1769236852,1948282479,1701601889,1920091392,1814065775,1768186223,1864394606,1634887024,1735289204,1937339168,7169396,1936943437,543649385,1919250543,1852404833,2037588071,1835365491,11665628,1437597988,-1070335318,12374158,1358203772,-81833977,100712444,-234815303,102623909,-1094844416,-2147175673,242516028,1962949760,281445148,-277492738,344660173,-1962783605,281445358,443862014,1946172544,109821684,1946172588,129717771,-854674432,-253010416,96468715,2080422656,1459749304,1935610829,-843042036,-311079149,-351886402,113426131,-2122449217,1974097213,-353006649,31744,1635151433,543451500,1953653104,1869182057,1635000430,6646882,1869771333]},{"sector":4,"data":[1869357170,1852400737,1886330983,1952543333,543649385,1953724787,1291873637,1769173865,1864394606,1634887024,1735289204,1937339168,-596810380,604025344,-1437224959,-1900006406,2080423120,122745995,-50651312,-1190788929,-1510866688,400874,129940992,1015022771,-2146536320,477429820,-32455037,-839944757,-1961587944,-292879796,-32455037,-2145749813,-193724356,-1408857154,192151612,506710,281874100,-336532642,376830,-1199832901,-849935871,208887571,332251187,-1091734193,-739572061,-1090075970,1031896574,-948589995,15398283,1224736892,1818326638,1881171049,1769239137,1852795252,1650553888,1157653868,1919906418,1634692128,1735289188,1701867296,1769234802,1931503470,1702130553,1766654061,1852404595,1886330983,1952543333,543649385,1953724787,14445925,19136690,-89500240,-795951053,-1954807620,1342656756,-1073939681,12125696,-358223359,1565,-1291338050,-2143518716,1015025268,-2095287040,-872542010,416149365,1284183179,-2081518846,-872542010,1015028340,-1091275776,1017906827,1443591168,-1275066437,1578159374,-18091797,-1157626433,28867584,332224258,856453983,1326697920,-1547768459,-1093407994,-21035326,1430094205,-1949862486,2080434933,1850277888,1768710518,1634738276,1953068146,544108393,1818386804,1917124709,544370546,1684107116,543649385,1919250543,1852404833,2037588071,1835365491,1936280832,1735289203,1701867296,1769234802,1931503470,1702130553,-1308566419,-1342102528]},{"sector":5,"data":[872065621,-1127182656,-192185344,525338448,12582139,16824582,501917170,-1107296250,78841790,1954561152,3964942,-964486027,1976303120,-1961308689,38570772,-964432245,1959525904,3964954,-1950419852,3976198,-1151988876,246677511,-346156851,-1073812496,12255237,33667196,1595133271,-1070396301,1968116685,111394541,-1027681301,2113847046,-1437254271,-175388811,8126698,1986939136,1684630625,1918988320,1769236852,1948282479,1701601889,1920091392,1814065775,1768186223,1864394606,1634887024,1735289204,1937339168,7169396,1936943437,543649385,1919250543,1852404833,2037588071,1835365491,11665628,1437597988,775169450,620782640,1680879155,620766501,1680879156,775103744,623207472,790769152,979196764,725499004,2898749,2105344,1663394597,841819392,628306478,627254627,925775661,825042291,825306673,775169395,757425200,1933061688,808334117,2434404,627254528,825042275,825306673,775169395,757425200,1933061688,808334117,2434404,808333605,627254628,775169379,874865712,627322926,1680879155,620766501,627254627,775169379,941974576,1663369315,1663394597,808334373,1664623972,774972672,824534064,6565934,1263424768,1314344782,1426063392,1330531150,2117207,1380986624,1160708169,788550744,4673356,788549935,1413567571,788550485,1294925887,973099586,-1308557732,-1342175169,1061109550,-2141061120,11665416,-5242724,-1308622081,-1342167040]},{"sector":6,"data":[255,-953286656,1185542,-1993409536,772934158,302778055,-953286656,1187590,113716736,4624,1929836776,-18413,495658579,1930377766,178179,19130715,423004462,1431786258,304160397,403109422,1131749394,126412972,-320324494,-399019002,410322717,403109422,91562002,-351882008,116796966,1950421528,468405790,1007126574,772175165,303566464,-2115484927,-1396346105,1124567086,776912619,302921353,509486,488540462,495658514,304166541,792494126,-2144455052,141828668,403109422,1416954130,21465638,959374386,1930562054,178335250,1138807058,651690819,-1998053493,778693376,302778055,1626013697,21465638,-784276430,651690976,-315486326,259311883,-1960422589,13035551,1128362843,787669571,302778055,887816195,21465638,-784276430,651690976,-466483318,54583505,260712152,-921965262,1396903796,-400585946,1935343709,-498908405,113716978,266764,777740125,302648971,302817582,238455598,378220050,-1976692208,-133033442,-1960423229,174343,-13761163,772934150,1962949760,108825,-953284235,34737158,1343154944,-4979792,1476435688,501744619,-104638463,642864579,839405450,1959332845,158305549,1929621736,976904,-335939870,780742150,1509429791,-2144943267,1946157182,-152353533,-2144419003,269621262,1929365224,645934666,1357845016,303800622,19842603,1477581062,456559406,1015033362,774272256,989822080,-953284235,152177670]},{"sector":7,"data":[639625984,1946173315,133637657,309657601,201770798,-352321006,9889801,-116528136,-1336931605,-385895421,-128450557,-1960421437,-1993472897,638718014,-2010774136,776995173,638721953,1476543881,175440188,72714534,105744678,37509867,-1993996683,1357579349,-395049156,-462157764,108332604,72714278,71057131,-1590816907,641733145,637814153,-351904372,1971922475,1301030404,-165261306,1946223175,-352014332,1207313929,91488770,-873987408,-165259264,1947206215,10151939,-970013857,1233158,126559824,410370059,1465013072,201770798,-1275066094,-402411265,1516240731,434853979,1947205801,113716754,4620,771954664,302792323,-352160503,-1874924797,1954545833,113716754,4620,771814888,302792323,-1457097463,309608448,201770798,-402653166,-2094137158,152177726,11079541,772437024,302778055,82313216,1048587778,1963004625,1048784399,1962938892,113716743,594444,1448133464,168069678,1008366784,772633914,97408,-970062219,166395908,1929684968,-347716095,-1017618721,-796241322,-402355666,208798868,208977930,771755240,32179336,-387234234,1019436634,1007448960,1010594401,607680378,1395977183,1049450246,942543564,1343714325,118379089,-1031117388,-1174405189,-4587515,1512164863,-1959896999,-1909587619,1128465221,-685342676,-1017444513,243281488,780145176,303572608,76164861,175385404,125119804,403603502,-398065134,-1017643006,1448235344,-768358093]},{"sector":8,"data":[76164691,1114947594,1912675560,-1947979207,-773664280,16640209,-628413326,-489569909,-253177391,-786468352,-388902430,376570087,-938224893,1912659688,-2083192051,-722992943,1174630912,-379864085,777715896,303564534,-150309886,-2083325999,-779943486,2005607936,76162566,125108284,-4980304,1174445801,1006930470,1180726272,403109422,511016978,55327526,108476018,22297382,992358002,678889292,992361074,544671060,992359147,410780492,992347775,276562260,122436390,477891199,89406246,350945919,-32913789,783644104,302778055,28311558,1038876596,-1977220688,-1271469276,1088747017,-1977159677,992364036,108331852,22297382,-964435340,1976106501,113716973,463372,-4980304,-953283605,152177670,-1274826752,-48371457,1482250846,-164717373,34740230,-1013120395,-134057827,1019476419,1007186480,738490169,-104597456,1381191875,2139825751,92939782,74825738,166461364,201770798,-1275066094,-402411265,1516240087,1354979419,-1302965675,76164610,1912776680,-31201220,403109422,225708050,527777084,25067558,-344886016,116796947,1947210264,1966750734,2122327562,1551171584,643623750,1962952250,1958742557,-347781550,1178215955,1178957056,1157925422,4602406,1162230389,-164714517,1074927622,-148500620,2097735,-2144991372,1946157182,133637666,410255376,158677564,8290342,-351439616,1962949646,2122327559,57948672,772205561,303773321,1566203640,1364247384]},{"sector":9,"data":[1448302162,1577102056,-1006188754,771751954,314967751,-953286656,1230854,11397120,-1557260174,-620096828,-1595401612,778990080,169002659,-401771301,1634861203,315138862,1500896010,-1575056594,50037522,-1590812044,-469101884,-930461835,315007278,1031136266,-1959860086,-2095921130,41222651,434891142,-1005155538,-962515438,1977879058,784894496,169003169,-1978239516,1694139368,-1031732109,1583023980,129040308,-335834392,-1268884720,-402411265,-953222265,152177670,1482250752,-1573483069,1015229970,-352160513,1347558927,12066574,-841577672,526014497,861032899,76164809,1014284298,-1589739474,259260434,1963064192,1949973508,1949187120,1007479596,1009153069,1008890927,-400657362,510852649,-1164902220,-487129078,292934155,242401539,-1108654447,-336013174,-336050683,-1047791359,-1396483750,1946165992,5498904,-164751755,538056710,-164696716,1091704838,-347207308,32241926,-121417992,1011962819,1009611789,1009349632,639988746,33717632,-617406862,56461862,637846403,1946171776,650720013,641927562,74711354,222099682,1405311833,113651281,773853714,303572608,1948269791,1946762294,1949056050,1965046833,540835852,548407157,-339723706,2105550366,393347330,-1977169613,-922025139,62589812,975586048,-502828031,1495284984,-1573993637,-164752878,17963014,-2144467339,538056718,-403980230,304164493,443866427,326446908,-1976676103,854130503,-1979354371,-47454204,-133239976]},{"sector":10,"data":[792464363,-2144467339,1074927630,1444856824,1048784467,1962938901,1360941095,106256210,-561056205,-849149768,198937633,1599932379,1478449498,-1993463436,772936502,303373961,322341678,512634386,1015222805,974156800,973632004,58130756,1174793209,-118756538,-1021354405,521012766,-393214194,520615832,-1308069429,-1342173952,-1,11665412,-5242872,83886079,134263296,150974464,134262784,-20480,65535,0,658688,0,1310730,4269234,542330288,542330692,1936876886,544108393,808463925,692267040,2037411651,1751607666,959520884,825045304,540096825,1919117645,1718580079,1866670196,1277194354,1852138345,543450483,1702125901,1818323314,1344285984,1701867378,544830578,1293969007,1869767529,1952870259,1819033888,1734963744,544437352,1702061426,1684371058,1381191712,-919382266,-13385330,-1307431240,-1943024384,-1994700794,-1206172098,45224494,109850573,1049172816,783817550,-855330286,1611041839,1581156635,305051675,801965746,457442956,457326217,-2145064550,1074170889,1044285723,1543932955,1514047771,621451803,109840768,1049172820,783817554,-855068142,1745259567,1715374363,2097596187,-972419813,605799942,461506247,113704960,662404,-2145123686,1812368393,1782483227,616864283,109840768,1049172848,434641774,3074048,1358971368,1912623336,123689224,-346530982,214205188,1448135673,1660991518,119415245,-1995935201,-1944357322]},{"sector":11,"data":[1578858502,12108632,47940,567136819,-2147359104,28836302,-1021194940,-1153171272,-768409599,-830463539,1140963329,-1262280243,1025625392,57999365,1025043448,91422722,-335544389,178947,-1191181896,11665408,-1007026250,1431766608,-2145548134,-2146536951,1962475518,-350288380,-1960901118,123690487,1398197080,-919341517,1979711104,1790755848,-339506149,46593573,-1128003468,-1014228146,322771179,1024291328,142016551,458931396,116114316,457096388,-75250804,-2146011649,58064894,-1559434247,-4711550,114175,-336005581,16483084,1424491380,80118528,184972024,-352160311,-25125729,1378448641,1460031829,83933264,-12832819,-1962314408,84064472,32190413,1594192889,116087047,-402209661,1516044300,248447467,1543502824,1347930974,855637945,-139529536,1599621585,33260483,1048780149,1962875750,-49898,-1588589707,520035202,-346547354,1713307396,857402139,-98103,-1977219468,166396749,1966422054,1300899332,80184067,-131369991,427084043,1962933888,87762437,992347115,-352160507,91506953,-352008317,175307235,-117440896,52822133,108135037,-1977160398,113657613,-1023403140,1431393104,-1957558697,2048821737,2134280219,495491611,-922023552,-318038924,652739957,-402396416,141689264,17164378,82534151,-116996989,1594295531,108198234,1482381661,-998046485,1355544840,512447059,-75293830,-402295297,65732652,1929410536,-1151749105,567083008,-997989326]},{"sector":12,"data":[283900166,1962933123,1958820619,11593735,-116996989,1532625778,102679384,33129247,45357941,-854226394,-1031135455,503362024,124985094,22383142,-336059955,184726543,638153929,567088522,-210417337,1472405496,-1957493168,-1962467590,-65359655,58044146,-1957963477,1476877259,-1070349473,1333053707,-1273035234,-2083026112,678756857,1344217549,-402290138,509083738,108207878,1111536888,647766477,1964653952,-339637502,-401682687,451674107,-1494724267,1508477951,41099725,-935654421,-398784652,-1962773000,-1021354559,-1157617736,28639236,-98109,-956952204,504132992,2101251335,178459,-1006698264,1053054726,-16049290,-2094655628,1962410045,87696912,975570802,24576325,-347650055,-1022926871,461375119,-1835803853,461649655,-2076772461,167412507,-1031797386,-2147226825,1095905474,74825739,963959563,1963194755,175931405,-16419540,1092324662,-108846357,-2146601722,1965820540,-1925775611,283853083,1963587971,175931403,-16419540,1092324662,-338545773,869413799,-2143879232,-768359653,561301771,11543988,1965373478,1698178570,973370369,638481860,1407714698,1191277567,1967735367,-897100061,863300875,-2109832371,729088027,67519626,1161438768,-352160511,1966095390,1959922436,-348912892,2134802663,141950747,1229537858,65752911,1476394938,183040299,1935237118,-1870664957,-2134209711,1946158716,1959332621,1195985158,1577184071,-922021653,-346160267,-425207,-919403915]},{"sector":13,"data":[1450508043,1359370069,1048824115,1962941314,121959981,-1006078705,1290273404,-166008063,1947010884,121959948,-167349234,1963722564,41731080,-352232728,5433344,552076267,1493660160,1583177479,-998046485,1048836362,1962941314,-385650171,113770260,7042,-1580059709,113712002,662404,1493079528,461801352,1090224963,-790101131,1976172032,168671470,461801353,-1058520253,-617364736,425088,-2016997003,757078918,-2017049789,1126177670,1560323816,-768353485,461115016,973685898,706639553,-152007999,1954547524,172263956,461801352,1090224963,2095580021,1976499712,142377196,940405760,141756492,-1979167702,139234001,611633419,252134646,1156975733,108269575,1191545382,-2007498261,1125877383,1967192963,4319235,-596260354,-2147007242,-167110539,1149899892,-2037938166,-75283685,-402426560,-822214621,1157033077,141889287,268911862,216728180,141873674,461375119,-126498050,1426064104,1460031939,-880081122,1049484083,-2098717818,1594192636,82532615,-116996989,1156996547,309669895,1342540326,-43456447,-1977219469,-128974523,-1977217557,1958742533,-348043516,1442393077,-768385597,113754163,1055620,1157028659,611655687,-167409114,1963788100,1954588685,2133082883,461637319,1156972554,108334599,461637319,1424687114,268911862,-1960434059,121959941,-166759155,74744004,2145681475,461637319,1156972554,108334599,461637319,686489610,637897510,-167619189,1963788100]},{"sector":14,"data":[-2134444529,-2143091596,113737702,662404,235357430,113706613,662404,201123304,855995611,1378726610,100647765,67584,131104,196660,524359,589920,655472,19660911,19726446,1226244250,1919902574,1952671090,1397703712,1919252000,1852795251,622201357,1818304561,1684104562,1852383353,1818326131,224683372,824515594,1954112032,1629516645,1818845558,1701601889,544108320,1802725732,1225984525,1818326638,1881171049,1835102817,1919251557,1493305869,5112320,1852785455,1969711462,544433522,1634213985,1679844466,543912809,544370534,543519605,1752459639,760433952,777211716,168626701,1229211143,168643411,1049429774,-1048501440,-3473208,67436549,83891200,100676352,117458944,184573696,570455552,1852727619,1176532079,1263749444,1953068832,1701716072,1919907700,1869357163,1684366433,1310198285,1768300655,543450488,1802725732,1919950963,1852142437,436866420,1869771333,1701978226,1852400737,1768300647,543450488,1802725732,1159334413,1919906418,1769109280,1735289204,2020173344,1679844453,225145705,1750346762,1634541669,1919251571,1869570592,1868767348,1746953572,1310749537,1646285903,544105829,1633972341,778331508,118360589,604847757,12435841,328139,83885825,2017792256,1684956532,1159750757,1919906418,238101792,-817984249,549552932,328395,83885825,1632636416,543519602,1869771333,824516722,1049429774,-1048369933,-1957311715]},{"sector":15,"data":[-1957275668,1166739582,93016074,-1962779253,1435173965,141921030,1067079007,1560903708,176065367,1569260937,72190210,-1996073591,-1969289099,205883844,172329304,-443850914,-1957311651,-1957275668,1166739582,93016074,-1962779253,1435173965,141921030,-1365617313,1560903710,176065367,1569260937,72190210,-1996073591,-1969289099,205883844,172329304,-443850914,-1957311651,-1957275668,1166739582,93016074,-1962779253,1435173965,141921030,1788499295,1560903709,176065367,-1945793456,1599604317,209619799,1569260937,72190210,-1996073591,-1969289099,205883844,172329304,-443850914,805751645,104083504,775836220,455127562,1397600256,1397703725,1919243808,1852795251,808334624,805707824,104083505,490623548,404795904,1766240256,543450488,1802725700,1952797472,1344303221,1919381362,102788449,875573552,1045576710,548536354,682622992,1866672451,1769109872,544499815,1919117645,1718580079,1866670196,539914354,859322673,824192288,3225913,808726534,1211893300,-1308609986,-1342169824,1397310534,1884233803,1852795252,805707891,104083510,826165308,1379672110,1701987134,543519841,542330692,1953653104,1869182057,1919885422,1735347232,1818321769,1397703712,1769096224,102786422,875573552,1044921350,1008741938,1699954258,1667309684,1702259060,1918988320,1769236852,102788719,875573552,1044921350,1008741939,1698971218,1702126956,1918988320,1769236852,1864396399,1867260018,1633904999]},{"sector":16,"data":[1329864812,1917067347,543520361,808529926,1211893300,539898942,1144934972,1819308905,1881176417,1769239137,1852795252,1718511904,1634562671,1852795252,825296416,1007039536,1917861458,544437093,1161709628,1379689331,1869881406,1769497888,1145446516,4936521,808988678,1379665460,1869103934,543519599,543518319,1948280431,1713399144,1869376623,1735289207,822476858,104083508,893274172,1379672110,1634222910,543516526,1920103779,544501349,1702390118,1768169572,1679846259,1702259058,909116928,1007039536,1967341138,1852142194,1768300660,543450488,1802725732,1769104416,540697974,1010714684,100679241,875573298,1044921350,1314013527,558321225,1045576736,1881173838,1769239137,1852795252,1918967923,1702043749,1667309684,1702259060,1679830304,543912809,1936269361,1953459744,1635021600,1650553970,1965057388,1936026734,805707891,104083505,1631474236,1918988320,1769236852,1763733103,1702043763,1667309684,1702259060,925959680,1007039536,1850031698,544367988,1768908899,540697955,1530808380,540955452,805699677,104083508,322848828,270578178,1917038592,1702125925,1397703712,1918980128,1769236852,1864396399,1867260018,1633904999,1329864812,1917067347,6649449,808464646,1211893300,539898174,1128157756,1952540018,1917853797,1918987625,1329864825,1632641107,1953068146,544108393,808529926,1211893300,539898430,1128157756,1952540018,2017796197,1684956532,1142973541,1344295759]},{"sector":17,"data":[1769239137,1852795252,842073600,1007039536,775110216,1045576736,1634038339,1277191540,1667852143,1142975585,1142969167,1702259058,539587368,1948282473,1159751016,1852142712,543450468,542330692,1953653072,1869182057,839254126,104083508,1346261564,1936942450,1044921376,1013150533,1948270162,1701978223,1852994932,544175136,1397310534,1884233803,1852795252,805699699,104083508,155076668,371241473,1917038592,1702125925,1769099296,2037539181,1397703712,1918980128,1769236852,100691567,875575344,1045576710,2032168772,1998615919,543716201,1965059956,1948280179,1830839656,1835628641,1629515125,1818845558,1701601889,2053731104,1868963941,543236210,1835627088,544830049,542330692,1953653072,1869182057,805707886,104083505,1631474236,1830839406,543517537,543516788,1953653104,1869182057,1667309678,1702259060,1497114656,1312567102,10496318,1388210,1008746416,1012612680,1562394195,942671360,1007039536,1866743378,1970239776,1936291616,1869881448,1702065440,1701344288,2019650848,1836412265,1635148064,1650551913,1931502956,543521385,544370534,1917853793,1918987625,1329864825,1632641107,1953068146,544108393,808529926,1379665460,1497114686,1312567102,7416126,3354290,1008746416,1012612680,1562394195,942671360,1007039536,1632648786,1953068146,544108393,1635013408,544437620,2035556384,538994032,1867915296,1701672300,1650543648,538995813,1954112077,538997605,1937330976]}],[{"sector":1,"data":[544040308,1934958624,543516513,808529926,1379665460,1228677182,1008746057,1782466888,153137664,1379708928,538984009,1228677152,1229539657,540952905,356261920,189379072,540979200,1228677152,1044990281,1008738336,1236402190,1051721736,1008738336,1229539657,805707838,104083505,540955196,1044990268,1229470752,-1308615106,-1342174944,1044992572,538976288,1229539644,1229539657,538976318,-1308617412,-1342174391,538976318,1229539644,538984009,932896,543154,538984112,1229536288,540952905,808529926,1379665460,1228677182,1008746057,507398472,153137664,1379708928,538984009,1228677152,1229539657,540952905,356261920,189379072,540979200,1228677152,1044990281,1008738336,1236402190,1051721736,1008738336,1229539657,805707838,104083505,540955196,1044990268,1229470752,-1308615106,-1342174944,1044992572,538976288,1229539644,1229539657,538976318,-1308617412,-1342174391,538976318,1229539644,538984009,932896,543154,538984112,1229536288,4081993,808726790,1379665460,1953453118,1679846497,543912809,1667330163,1936269413,1229470752,1380534601,1649221694,1936028793,540092448,1954112077,540876901,942944305,540423989,1702132066,100673907,875574577,1129462790,2019642686,1836412265,1634759456,1629513059,1818845558,1701601889,1919903264,1918988320,1769236852,1763733103,1211900019,1229539657,1293958738,1702132066,1009262707,1229539656,691950153,942736896,1007039536]},{"sector":2,"data":[1161708370,1919251566,1918988320,1769236852,1931505263,543521385,1293971049,1702132066,1919885427,1919250464,1953391971,543584032,1802725732,1634759456,673211747,1948264741,805707887,104083505,1044599356,1634038371,1629513076,1769099296,2037539181,1397703712,1918980128,1769236852,17919599,2174642,1008745136,1012612680,1397311817,6110793,808726534,1211893300,-1308616642,-1342171616,1634038339,1159751028,1852142712,543450468,542330692,1953653072,1869182057,822476910,104083512,1044599356,1702129221,1634738290,1953068146,544108393,1702521203,544106784,1954112077,1864397669,1701847154,1852138354,1718558836,1936286752,1886593131,543515489,539567400,102788980,875573552,1129462790,1701995326,543519841,1159753313,1852142712,543450468,542330692,1953653072,1869182057,-1308585618,-1342169554,1211899962,1228692286,1230195017,100687166,875574322,1045576710,1936028240,1211900019,1668498750,540955196,1663070068,1769238127,1013282158,100679251,875573552,1128807430,538976318,538976288,1634038339,1277191540,1667852143,1142975585,1142969167,1702259058,539587368,1948282473,1159751016,1852142712,543450468,542330692,1953653072,1869182057,805699694,103821363,1144934972,1444968050,1836412015,1632378981,543974754,2036485408,544433524,1937330976,544040308,1634948384,805725543,103821361,1010714684,540952905,-1018020832,189379072,540979200,1008738336,1229539657,1008738366]},{"sector":3,"data":[1236402190,1051721736,1228677152,1044990281,808529926,1211893296,1229536318,1008738366,-1308616110,-1342174391,538976318,1229536288,540952905,932896,543154,538984112,1229539644,805715529,103821361,1010714684,540952905,441596960,189379072,540979200,1008738336,1229539657,1008738366,1236402190,1051721736,1228677152,1044990281,808529926,1211893296,1229536318,1008738366,-1308616110,-1342174391,538976318,1229536288,540952905,932896,543154,538984112,1229539644,805715529,103821361,1010714684,540952905,441596960,189379072,540979200,1008738336,1229539657,1008738366,1236402190,1051721736,1228677152,1044990281,808529926,1211893296,1229536318,1008738366,-1308616110,-1342174391,538976318,1229536288,540952905,932896,543154,538984112,1229539644,100679241,808464433,1044921350,1044990268,1379672096,1236402203,1051721739,538976288,1229539644,538984009,-1308619204,-1342175159,1008738366,1229539657,825230910,1007038512,1228684872,538984009,1724988,739762,538984112,1228677152,1044990281,238821408,139047424,540979200,1229536288,104745289,808464688,1044921350,1044990268,1379672096,1236402202,1051721739,538976288,1229539644,538984009,-1308619204,-1342175159,1008738366,1229539657,825230910,1007038512,1228684872,538984009,1724988,739762,538984112,1228677152,1044990281,238821408,139047424,540979200,1229536288,104745289,808464688,1044921350]},{"sector":4,"data":[1044990268,1379672096,1236402202,1051721739,538976288,1229539644,538984009,-1308619204,-1342175159,1008738366,1229539657,825230910,1007038512,1228684872,538984009,1724988,739762,538984112,1228677152,1044990281,238821408,139047424,540979200,1229536288,4081993,875769862,1379665457,1987200062,1819235872,543518069,1700946252,1293951084,1702132066,1394614387,1702130553,1428168813,1701273971,875638790,1211893297,1229536318,1008738366,-1308603566,-1342174391,538976318,1229536288,540952905,932896,543154,538984112,1229539644,805715529,103887921,1010714684,540952905,441596960,189379072,540979200,1008738336,1229539657,1008738366,1236402190,1051721736,1228677152,1044990281,875638790,1211893297,1229536318,1008738366,-1308616110,-1342174391,538976318,1229536288,540952905,932896,543154,538984112,1229539644,805715529,103887921,1010714684,540952905,441596960,189379072,540979200,1008738336,1229539657,1008738366,1236402190,1051721736,1228677152,1044990281,875638790,1211893297,1229536318,1008738366,-1308616110,-1342174391,538976318,1229536288,540952905,932896,543154,538984112,1229539644,805715529,103887921,1010714684,540952905,441596960,189379072,540979200,1008738336,1229539657,1008738366,1236402190,1051721736,1228677152,1044990281,808519168,1007038772,1228684872,538984009,1790524,739762,538984112,1228677152,1044990281,238821408]},{"sector":5,"data":[139047424,540979200,1229536288,104745289,825504048,1044921350,1044990268,1379672096,1236402202,1051721739,538976288,1229539644,538984009,-1308619204,-1342175159,1008738366,1229539657,825230910,1007038772,1228684872,538984009,1724988,739762,538984112,1228677152,1044990281,238821408,139047424,540979200,1229536288,104745289,825504048,1044921350,1044990268,1379672096,1236402202,1051721739,538976288,1229539644,538984009,-1308619204,-1342175159,1008738366,1229539657,825230910,1007038772,1228684872,538984009,1724988,739762,538984112,1228677152,1044990281,238821408,139047424,540979200,1229536288,4081993,808923398,1379665460,1867791939,543973748,1702131781,1684366446,1397703712,1918980128,1769236852,1931505263,543521385,1008759657,1229539656,540955209,1954112077,673215333,1112350769,543519865,808525885,926234676,2036473910,695428468,942736896,1007039536,1295926098,1835628641,1931505013,1701011824,1635148064,1650551913,1713399148,1814065775,1667852143,1679846497,1702259058,544434464,1229539388,1045580105,2036485408,544433524,675170364,1229539644,2702921,808464902,1379665460,1850031683,544367988,1768386412,543973731,1986622052,1769152613,1763730810,1649221742,1936028793,544370464,1668441456,544501349,1679844975,543912809,1667330163,623386725,774778409,1530808380,1229539644,1564363091,875562496,1007039536,18366024,1712306,1952797616]},{"sector":6,"data":[1952661792,543520361,1953653072,1869182057,822476910,104083510,1161712188,1919251566,1701344288,1836412448,544367970,1948280431,1881171304,1769239137,1852795252,1970239776,1851881248,1869881460,1801547040,1667309669,1702259060,783417431,984612875,1044921376,1045642331,100687136,875574320,1044921350,548536341,1152385040,1952803941,1329864805,1632641107,1953068146,544108393,1277194863,1667852143,1142975585,1142969167,1702259058,808519168,1007039536,826164040,1008738350,1698971218,1702126956,1769099296,2037539181,1397703712,1918980128,1769236852,102788719,875573552,1128807430,539898430,1045576736,1701602628,1159751028,1852142712,543450468,542330692,1953653072,1869182057,822476910,104083506,1044596796,538979891,1144934972,1952803941,1867260005,1633904999,1329864812,1917067347,677738089,1763715443,1752440942,2017796197,1684956532,1142973541,1344295759,1769239137,1852795252,858850816,1007039536,876495688,1008738350,1698971218,1702126956,1852788256,1397703725,1918980128,1769236852,100691567,875574320,1044921350,548536581,1152385046,1952803941,1917853797,1918987625,1329864825,1632641107,1953068146,7237481,809054470,1211893300,1463698242,1229869633,539051854,1045581628,1635017028,544106784,543516788,1701602660,543450484,1835627088,544830049,542330692,1953653072,1869182057,1769414766,1646292076,1869357157,3044467,809054470,1211893300,1463698242,1229869633]},{"sector":7,"data":[539051854,1045581628,1635017028,544106784,543516788,1701602660,543450484,1835627088,544830049,542330692,1953653072,1869182057,1769414766,1646292076,1869357157,539915379,808529926,1379665460,1634228030,1919950964,1918987625,1634738297,1953068146,544108393,2032168804,1998615919,544501345,1679847284,1952803941,1059991141,1044921376,1045642331,1379687712,839254078,104083506,1044599356,2032168772,1998615919,543716201,1663070068,1769238127,543520110,1046035496,1045314607,-1308545495,-1342172882,1211899967,1396464446,6103102,808726534,1211893300,-1308617410,-1342171616,1701602628,1159751028,1852142712,543450468,542330692,1953653072,1869182057,822476910,104083510,1128417340,1380013886,1196312910,1329340449,1631862354,1763729780,1752440942,1701060709,1702126956,2017796196,1684956532,1142973541,1344295759,1769239137,1852795252,1818851104,1700929644,1936682016,102772340,875573552,1129462790,544162878,544567161,1752394103,544175136,1953394531,1702194793,1497114656,1312567102,10103102,1126066,1008746416,1012612680,1562394195,825230848,1007039536,1392200,532658,1818576048,543519845,1768386380,543973731,542330692,1986622020,695412837,544106784,543516788,1702131781,1684366446,1397703712,1918980128,1769236852,100691567,875575601,1112030214,1096236611,1313427026,1008738631,1144934991,543257697,1629515369,1818584096,1684370533,1735347232,1818321769,1397703712]},{"sector":8,"data":[1769096224,1998611830,543976553,1814062434,779383663,825230880,1007039536,1463698258,544498024,1986622052,1868832869,1970239776,1851881248,1869881460,1818584096,-1369082779,523153920,541044736,1530808380,540955452,839254109,104083506,1094603324,2032166258,1931507055,543519349,1046035496,1045314607,-1308611799,-1342169554,1211899967,1396464446,6103102,808530438,1379665460,1953383742,1444967013,1836412015,1632378981,661415266,506376704,541044736,1530808380,155079484,186692096,6139904,808726534,1211893300,-1308619970,-1342171104,1701602628,1310745972,1143828079,1344295759,1769239137,1852795252,909182464,1007039536,1044595272,1314013527,558321225,1380924448,1952531518,1852383329,1701344288,1818584096,1684370533,1852788256,1397703725,1918980128,1769236852,1998614127,543976553,1814062434,779383663,825230880,1007039536,1463698258,544498024,762212174,542330692,1953653104,1869182057,1868832878,1970239776,1851881248,1869881460,1818584096,778400869,1008746286,1012612680,1562394195,4084284,808726534,1211893300,-1308576450,-1342171616,1886611780,544825708,1953653072,1869182057,1850286190,1836216166,1869182049,822476910,104083511,1044599356,543516756,1702131781,1684366446,1397703712,1918980128,1769236852,1663069807,1635020399,544435817,1768386380,543973731,542330692,1986622020,539915109,808529926,1379665460,1866743363,1970239776,1851881248,1869881460,1936286752]},{"sector":9,"data":[2036427888,1701344288,1735355424,1818321769,1769104416,1763730806,1919903342,1769234797,673214063,792615228,691949116,774778414,1010773550,1012612680,1562394195,825230848,1007039536,12729928,1188018,1936278704,2036427888,1735347232,1818321769,1397703712,1769096224,1226859894,1919903342,1769234797,100691567,875573296,1044921350,548536367,1135607829,1735287144,1967333477,1852142194,1766203508,543450488,1802725700,1769096224,100689270,808464944,1045576710,1766072352,538995571,1987200032,1293951008,1702132066,538976371,1701147206,1428168736,1701273971,808529926,1211893300,538984009,1008738336,1044990290,538976288,1229539644,538984009,1228677152,1044990281,538976288,1229539644,805715529,104083505,1044990012,538976288,1230126112,538984009,1228677152,1044990281,538976288,1229539644,538984009,1228677152,1044990281,808529926,1211893300,538984009,1008738336,1044990290,538976288,1229539644,538984009,1228677152,1044990281,538976288,1229539644,805715529,104083505,1044990012,538976288,1230126112,538984009,1228677152,1044990281,538976288,1229539644,538984009,1228677152,1044990281,808529926,1211893300,538984009,1008738336,1044990290,538976288,1229539644,538984009,1228677152,1044990281,538976288,1229539644,805715529,104083505,1044990012,538976288,1230126112,538984009,1228677152,1044990281,538976288,1229539644,538984009,1228677152,1044990281,808529926]},{"sector":10,"data":[1211893300,538984009,1008738336,1044990290,538976288,1229539644,538984009,1228677152,1044990281,538976288,1229539644,805715529,104083505,1044990012,538976288,1230126112,538984009,1228677152,1044990281,538976288,1229539644,538984009,1228677152,1044990281,825296384,1007039536,540952904,538976288,1229541948,538976318,1229536288,540952905,1008738336,1229539657,538976318,1229536288,104745289,875573552,1229470726,538976318,1379672096,540952905,1008738336,1229539657,538976318,1229536288,540952905,1008738336,1229539657,825230910,1007039536,540952904,538976288,1229541948,538976318,1229536288,540952905,1008738336,1229539657,538976318,1229536288,104745289,875573552,1229470726,538976318,1379672096,540952905,1008738336,1229539657,538976318,1229536288,540952905,1008738336,1229539657,825230910,1007039536,540952904,538976288,1229541948,538976318,1229536288,540952905,1008738336,1229539657,538976318,1229536288,104745289,875573552,1229470726,538976318,1379672096,540952905,1008738336,1229539657,538976318,1229536288,540952905,1008738336,1229539657,825230910,1007039536,540952904,538976288,1229541948,538976318,1229536288,540952905,1008738336,1229539657,538976318,1229536288,104745289,875573552,1229470726,538976318,1379672096,540952905,1008738336,1229539657,538976318,1229536288,540952905,1008738336,1229539657,805699646,103887922,540955196,1936278560]},{"sector":11,"data":[538976363,544633412,1649221664,1936028793,1176510496,543516018,1934958624,107308897,892612912,1229470726,538976318,1379672096,540952905,1008738336,1229539657,538976318,1229536288,540952905,1008738336,1229539657,825230910,1007039796,540952904,538976288,1229541948,538976318,1229536288,540952905,1008738336,1229539657,538976318,1229536288,104745289,892612912,1229470726,538976318,1379672096,540952905,1008738336,1229539657,538976318,1229536288,540952905,1008738336,1229539657,825230910,1007039796,540952904,538976288,1229541948,538976318,1229536288,540952905,1008738336,1229539657,538976318,1229536288,104745289,892612912,1229470726,538976318,1379672096,540952905,1008738336,1229539657,538976318,1229536288,540952905,1008738336,1229539657,825230910,1007039796,540952904,538976288,1229541948,538976318,1229536288,540952905,1008738336,1229539657,538976318,1229536288,104745289,892612912,1229470726,538976318,1379672096,540952905,1008738336,1229539657,538976318,1229536288,540952905,1008738336,1229539657,825230910,1007039796,540952904,538976288,1229541948,538976318,1229536288,540952905,1008738336,1229539657,538976318,1229536288,4081993,875639046,1211893301,538984009,1008738336,1044990290,538976288,1229539644,538984009,1228677152,1044990281,538976288,1229539644,805715529,104150065,1044990012,538976288,1230126112,538984009,1228677152,1044990281]},{"sector":12,"data":[538976288,1229539644,538984009,1228677152,1044990281,875638790,1211893301,538984009,1008738336,1044990290,538976288,1229539644,538984009,1228677152,1044990281,538976288,1229539644,805715529,104150065,1044990012,538976288,1230126112,538984009,1228677152,1044990281,538976288,1229539644,538984009,1228677152,1044990281,875638790,1211893301,538984009,1008738336,1044990290,538976288,1229539644,538984009,1228677152,1044990281,538976288,1229539644,805715529,104150065,1044990012,538976288,1230126112,538984009,1228677152,1044990281,538976288,1229539644,538984009,1228677152,1044990281,875638790,1211893301,538984009,1008738336,1044990290,538976288,1229539644,538984009,1228677152,1044990281,538976288,1229539644,805715529,104150065,1044990012,538976288,1230126112,538984009,1228677152,1044990281,538976288,1229539644,538984009,1228677152,1044990281,808584704,1007039536,824720978,2034388256,1025533300,875573536,909587768,1954112032,2716517,808530438,1379665460,1953383742,1176531557,1684371561,1936278560,1917067371,543520361,1651340622,673215077,1228680497,118434110,1519282,1044921520,1230191707,100687166,875573552,1044921350,548536339,1185939481,1684371561,1936278560,1917067371,543520361,1952543827,100692853,875574065,1044921350,1953724755,1998613861,543976553,544698222,1953719666,544502369,808595462,1379665460,1936607550,544502373,542330692]},{"sector":13,"data":[1953724787,1679846757,1701540713,543519860,1679847017,1702259058,540688672,808529926,1379665460,1701990462,1629516659,1797290350,1998616933,544105832,1684104562,539893881,1009655854,100679251,875574065,1044921350,1953724755,1998613861,543976553,544698222,1953719666,544502369,808660998,1379665460,1701990462,1629516659,1797290350,1998616933,544105832,1684104562,539893881,1009655854,100679251,875573554,1212365830,1769099326,2037539181,1397703712,1918980128,1769236852,1679847023,1952803941,102786149,808464688,1464024070,839254078,104083505,1044923196,1702131781,1684366446,1397703712,1918980128,1769236852,1679847023,1952803941,102786149,808464688,1464024070,805699646,104083504,1144932412,1702259058,1818584096,1684370533,825361920,1007039536,1346259011,1769239137,1852795252,1044986912,1684106528,1667309669,1702259060,825230880,1007038512,4085571,808530438,1128007220,1917861448,1918987625,1329864825,1632641107,1953068146,544108393,1634038371,543450484,808529926,1128007216,100679255,875573554,1212365830,1954039102,1701080677,1329864804,1632641107,1953068146,544108393,1634038371,543450484,808529926,1128007216,100679255,875573810,1212365830,1735347262,1818321769,1397703712,1769096224,1663067510,1952540018,539780197,1986622052,1701584997,1919251572,1751326835,1701277281,1919885412,1684300064,1463575653,839254078,104083505,1044923196,1881173838,1769239137]},{"sector":14,"data":[1852795252,1701060723,1701734758,805707876,103821361,4080444,808464646,1128007220,1867398728,1735355424,1818321769,1769104416,544433526,1768318308,543450478,808529926,1128007216,822476862,104083512,1044923196,1986622020,1701584997,1919251572,1634214003,1646290294,544105829,1851877475,543450471,1679848047,1952803941,1463575653,805699646,104083504,1144932412,1702259058,1684369952,1667592809,6579572,808530438,1128007220,1917861448,1918987625,1329864825,1632641107,1953068146,544108393,1634038371,744777076,1769104416,1814062454,1702130789,1663071090,1735287144,1864393829,1684086898,543450468,808529926,1128007216,100679255,875573554,1212365830,1852788286,1397703725,1918980128,1769236852,1679847023,1952803941,102786149,808464688,1464024070,805699646,104083504,1044923196,1713401678,1684371561,1936286752,1881174891,1702061426,539915374,808529926,1128007216,100679255,875573810,1212365830,1920091454,1914729071,1768186213,1713399662,1684371561,1936286752,102772331,808464688,1464024070,839254078,104083506,1044923196,1869771333,1920409714,1852404841,1768300647,543450488,1802725732,805707822,103821361,1045906236,808453632,1007039536,1045907523,1868787273,1667592818,1329864820,1702240339,1869181810,100675182,875573296,1212365830,1631796823,1953459822,1229211168,1998605139,543716457,2004116846,543912559,1684107116,3040357,808595974,1128007220,1867398728]},{"sector":15,"data":[1769099296,2037539181,1397703712,1918980128,1769236852,1948282479,1701060719,1702126956,805707822,103821361,1045906236,842139136,1007039536,1312704579,2017796207,1684956532,1142973541,1344295759,1769239137,1852795252,544175136,1701602660,539911540,808529926,1128007216,100679255,875573810,1212365830,1769099326,2037539181,1397703712,1918980128,1769236852,1629515375,1634038380,1696627044,1953720696,102772339,808464688,1464024070,839254078,104083506,1044923196,1702131781,1684366446,1397703712,1918980128,1769236852,1629515375,1634038380,1696627044,1953720696,102772339,808464688,1464024070,839254078,104083506,1044923196,1931505486,1701011824,544175136,1634038371,1629513076,1397703712,1918988320,1769236852,539913839,808529926,1128007216,100679255,875573810,1212365830,1902465598,1953719669,1814062181,1667852143,1679846497,1702259058,2053731104,2019893349,1684366691,1752440947,1634541669,1970104696,1986076781,1634494817,543517794,1667330163,1463561829,805707838,103821361,1045906236,842139136,1007039536,1379813443,1702195557,1684370547,1918988320,1769236852,1931505263,543521385,1701017701,544433253,543516788,1769496941,544044397,1767994977,1818386796,1886593125,778396513,540956476,808529926,1128007216,100679255,875573810,1212365830,544165438,1953653104,1869182057,1948283758,1701060719,1702126956,805707822,103821361,1045906236,842139136,1007039536,1413367875]},{"sector":16,"data":[1864394088,544828526,1918989427,1818386804,1634738277,1953068146,544108393,1142976111,1702259058,1763717408,1818304627,1684104562,1702043769,1667309684,1702259060,1045904430,825230880,1007038512,4085571,808595974,1128007220,1867398728,1918988320,1769236852,544435823,1830842228,543517537,1769235297,539911542,808529926,1128007216,100679255,875573810,1212365830,1918980158,1769236852,1931505263,1667591269,543450484,1044986920,1936269353,1953459744,1635021600,1650553970,539780460,1769235297,1881171318,1769239137,1852795252,1953459744,1634231072,1684367214,1045904430,842139136,1007039536,1128155203,1869508193,1919098996,1702125925,1954039072,1701080677,1329864804,1632641107,1953068146,544108393,1752459639,544503151,808529926,1128007220,1917861448,1918987625,1329864825,1632641107,1953068146,544108393,1679847023,543912809,1463561777,839254078,104083506,1044923196,543976513,1767994977,1818386796,1886593125,543515489,1948282473,1159751016,1852142712,543450468,542330692,1953653072,1869182057,805707886,104083505,1044923196,1629516649,1734964083,543450478,1814065012,1667852143,1679846497,1702259058,1463561843,839254078,104083506,1044923196,1852727619,1679848559,1952803941,2017796197,1684956532,1142973541,1344295759,1769239137,1852795252,1768453920,1814062444,1667852143,1679846497,1702259058,2019893363,779383657,4085564,808595974,1128007220,1816215112,1869357164]},{"sector":17,"data":[1633904999,1919164524,1936029289,1818584096,1684370533,544106784,543516788,1702131781,1684366446,1397703712,1918980128,1769236852,1009675887,100679255,875573810,1044593670,825230880,1007039536,1044990019,544434464,544501614,1751326817,1701013871,1817190446,1702060389,1953391904,1008759397,1044990281,1045904430,842139136,1007039536,1463699523,1229869633,539051854,543516756,1953653104,1869182057,1702043758,1667309684,1702259060,544434464,544501614,1918989427,1818386804,1463561829,839254078,104083506,1044923196,1819168544,1869488249,1953705326,1635021409,543517794,1953653104,1869182057,1696625518,1953720696,805707822,103821361,1045906236,842139136,1007039536,1329481795,544828526,1953653104,1869182057,1864397678,1917067374,543520361,1633886257,1700929646,1684106528,1667309669,1702259060,1045904430,842139136,1007039536,1295927363,1835628641,1847618933,1700949365,1718558834,1735347232,1818321769,1397703712,1769096224,544433526,1953721961,1701604449,1463561828,839254078,104083506,1044923196,1852727619,1663071343,1952540018,543236197,1869768058,2053731104,1634738277,1953068146,778989417,825230880,1007038512,4085571,808595974,1128007220,1917075016,543520361,1044990268,1919705376,2036621669,1818584096,1684370533,805707822,103821361,1045906236,842139136,1007039536,1044531267,1650552405,1948280172,1667309679,1936942435,1769096224,1008756086,1009663561,4085583]}],[{"sector":1,"data":[808661510,1128007220,1850293832,1768710518,1852121188,746156660,1701605408,543519585,1702129253,1228677234,775833929,4085564,808595974,1128007220,1631796808,1953459822,1818584096,543519845,1835627088,544830049,542330692,1953653072,1869182057,1852776558,1769104416,824206710,805707808,104083505,1044923196,1852139639,544104736,1702131781,1684366446,1397703712,1918980128,1769236852,1696624239,1953720696,1463561843,839254078,103821362,540951356,808529926,1128007220,1850293832,1768710518,1852121188,779711092,4085564,808595974,1128007220,1867923016,1701672300,1650551840,1679846501,544433519,544501614,1668571501,1463561832,839254078,104083506,1044923196,1852727619,1663071343,1952540018,1867260005,1633904999,1329864812,1917067347,543520361,1752459639,544503151,808529926,1128007220,1851866696,1954039072,1701080677,1329864804,1632641107,1953068146,544108393,1948282479,1663067496,1701999221,1679848558,1702259058,1045904430,842139136,1007039536,1312704579,1867260015,1633904999,1329864812,1917067347,677738089,1948264819,1701060719,1702126956,805707822,103821361,1045906236,842139136,1007039536,1346259011,1769239137,1852795252,1818587936,1702126437,1936269412,1953459744,1344299296,1634560370,1142978930,1344295759,1769239137,1852795252,825230880,1007038512,4085571,808595974,1128007220,1867398728,1852788256,1397703725,1918980128,1769236852,1948282479,1701060719]},{"sector":2,"data":[1702126956,805707822,103821361,1045906236,842139136,1007039536,1346259011,1769239137,1852795252,1818587936,1702126437,1936269412,1953459744,1310744864,1143828079,1344295759,1769239137,1852795252,825230880,1007038512,4085571,808595974,1211893296,1295925847,1634956133,1931502951,1852404340,1919230055,544370546,775833916,1701139232,1634035744,544367972,1176528495,1263749444,1397567043,1868963911,1919230066,544370546,1768318308,1769236846,100691567,875573810,1112030214,1850293847,1852990836,1696623713,1919906418,1377839616,1953459557,539631717,1230131200,1397703712,1163403264,542656846,1415070976,1397703712,1632903168,543517794,1129324544,542656815,1346904064,538989382,1448037888,541871173,1346576384,538987823,1852788224,1397703725,-2144998400,-2144952311,-2144880119,-2144870391,-2144858359,-2144847607,-2144817399,-2144808951,-2144791799,-2144769015,-2144750327,-2144737015,-2144721655,-2144679671,-2144637687,-2144523255,-2144505079,-2144485111,-2144443895,-2144428279,-2144387319,-2144377079,-2144357879,-2144254711,-2144163831,-2144060663,-2143984887,-2143962103,-2143940855,-2143918071,-2143903735,-2143880951,-2143863799,-2143839991,-2143820791,-2143810039,-2143794679,-2143774199,-2143735799,-2143717367,-2143701751,-2143662583,-2143643383,-2143602679,-2143583991,-2143563767,-2143548919,-2143511287,-2143495671,-2143455991,-2143439351,-2143423479,-2143309303,-2143206647,-2143092471,-2142989815,-2142980855,-2142960631,-2142945783]},{"sector":3,"data":[-2142914039,-2142894583,-2142881527,-2142868215,-2142862327,-2142850295,-2142837239,-2142823927,-2142805751,-2142794999,-2142783223,-2142768887,-2142762231,-2142740983,-2142728951,-2142717431,-2142705399,-2142693367,-2142684663,-2142673143,-2142658551,-2142643703,-2142628599,-2142613239,-2142598647,-2142575607,-2142553591,-2142541815,-2142519543,-2142506487,-2142484471,-2142458615,-2142431991,-2142412023,-2142393847,-2142377975,-2142361335,-2142346231,-2142330871,-2142315255,-2142300407,-2142287863,-2142276855,-2142264567,-2142236407,-2142226679,-2142215927,-2142187511,-2142173175,-2142154999,-2142141431,-2142124279,-2142103031,1079129097,1347569746,1616009298,1884448850,-2142078894,82,7614208,1074364416,1275113999,1415753728,1180648251,1598377033,1330007625,11665422,347078682,-2122219264,459009,1376434,-2141914448,344841,721074,9474224,34996224,151853058,118230028,-15329784,34737426,1778385151,1778384987,347,0,66048,0,131584,0,230400,0,1107558912,2013311488,110592,262656,7602354,676706480,1819047278,1848115241,694971509,539831040,-1308617693,-1342172416,32,-462101504,-462101388,7660660,0,1441792,598194,673720496,337960,1188018,84144,987314,689328,269488304,269488144,-2122219135,885121,1311154,269488304,-2112876528,-2105376126,-1308619646,-1342172158,269488144,-1308621536,-1342144256]},{"sector":4,"data":[196607,2752690,1014499504,1397575228,4079175,808866304,168636464,1953701933,543908705,1919252079,2003790950,50334221,808866304,168637232,1852383277,1701274996,1768169586,1701079414,544825888,658736,911343625,221851696,1847602442,1696625775,1735749486,1886593128,543515489,544370534,1769369189,1835954034,225734245,16515082,-16774643,1853190656,1835627565,1919230053,544370546,1375732224,842018870,539822605,1634692198,1735289204,1768910880,1847620718,1814066287,1701077359,658788,911343617,221327408,1847602442,543976565,1852403568,544367988,1769173857,1701670503,168653934,-1308567552,-1342175489,-1,-1,29346,43515904,309921792,1112674056,-1064507253,234885125,303903,787971,244039822,-108331002,-34108593,-1202674445,-883949516,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704,78708751,-789068149,-628299565,74698795,-768878452,-268181293,-947135858,-388771593,-802438516,-1064565645,-522989013,-1030817789,1322289836,1187548077,-31145334,91598908,-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094,-1031072797,-1064385789,-2080863315,292880383,-501415642,16417267,-2129234704,-351272766,1086360796,-276578162,486614544,-339702200,-1950118942,-1962932162,50334262,33948144,1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602]},{"sector":5,"data":[482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,10712176,819527932,843133674,967586235,946747730,943143003,914438115,910702190,1005403464,1080965620,1075265593,1065828266,1056718641,1052262086,1040662166,1033059827,1450268453,-1266060693,-1261325154,-1250839330,-1120684350,-1111769737,1922658963,-334335329,-334828530,-335352826,-335877122,-336401418,-336925714,-337450010,-337974306,-338498602,-339022898,-339547194,-340071490,-340595786,-341120082,-341644378,-342168674,-342692970,-343217266,-343741562,-344265858,-344790154,-345314450,-345838746,-346363042,-346887338,-347411634,-347935930,-348460226,-348984522,-349508818,-350033114,-350557410,-351081706,-351606002,-352130298,-352654594,-353178890,-353703186,-354227482,-354751778,-355276074,-355800370,-356324666,-356848962,-357373258,-357897554,-358421850,-358946146,-359470442,-359994738,-331158458,-331682754,-332207050,-332731346,-333255642,-333779938,-328930282,1933013677,-1953174280,35895,0,0,0,0,0,0,0,990037123,-864557498,1861627568,-1965520124,-467007930,-150712135,-1963947039,-1738690176,1159587920,167953539,-951749440,58950,-2132386165,542687935,-1014299020,-62486208,-2082060545,1913185918,-59310105,1347994296,705054346,72399332,-930356745,1861627568,-2117598460,1365092545,-2091111448,2011891396,705054346,72399332]},{"sector":6,"data":[25844301,78,24444960,166789119,128,159318032,30,1]},{"sector":7,"data":[0,0,0,0,-1192457387,-2014838780,1187468841,-1207959298,-1202706528,-397398720,-998046480,665624580,20709668,-1598548619,-397389785,-998046506,112644,679929936,-972897149,1647132934,1345138872,1345142968,1061742672,-955857789,-2127696378,759341312,-953290589,3009030,-1961104640,-13768162,-1959925242,-13767114,-1909592570,640544774,-2021129078,516173142,-2144981522,-613085889,770317963,770311935,760645574,-367097075,-368640211,1451738669,-1070923731,-1557271389,652750312,37021700,759695047,113716566,11588,759563975,113704960,666512714,779749063,-1598542506,1085820967,1038635053,79987460,-1207912727,104409825,695545312,770311879,-4718292,28856320,922701824,2045259242,113541896,770311935,770326145,-495058640,-1645625301,711309313,758777401,-397405836,-998032610,711263490,973486912,-955878099,36562950,713996288,760219193,-397405836,-998032642,713950466,1342585664,-955878099,19785734,716683264,769132089,-397405836,-998032674,716637442,-670680256,-955484883,19785734,-335100160,-1593835219,2057512872,664844334,-1847046064,79987459,664813187,-955878144,19374086,-1606515968,57999399,-2080423703,-14180290,-14803340,-1204913610,1347420162,664811263,-2096979480,28838596,-35106816,46433062,1342186424,-2093006360,2091057860,2115406126,627357742,1375731898,2340944,1060825168,-2096708477,3008574,113731198]},{"sector":8,"data":[1476537664,1344774328,1345142968,-2093134360,-1600125756,-62486489,511033354,759170759,113727491,77122,1344774328,1345142968,-2093143576,117310660,-303562636,-28931826,16547456,113712757,1476603200,759301831,-1598554112,1085820967,-1552339,79987516,7606014,16678531,-4702347,28856320,179851264,233328640,113541895,770457219,-402295808,65739989,-401111064,-1073084897,1048775284,2114006504,47114243,168169192,-402426688,-672660103,2117533443,2083979054,2340910,1047980112,-1962490749,-1956708794,1438866917,146336907,651487232,721831563,-402345518,1183399534,-27883012,-1996208501,1187510342,-1962934022,1174666310,-95022088,-1017256565,-1477918669,-1173960922,-970478041,2604038,665716422,-1358510592,113639463,-956029008,1546105094,-1291401430,-953514713,-1373129466,-1224292566,-970270681,2603270,710674119,113704960,76382,710936263,113716536,718744162,711198406,8173570,711309392,952297552,-1207647101,-1202716541,-397399451,-998033178,711329026,950724688,-955988861,2786566,-2029598976,-956301014,1311410438,-1962490067,-970270934,36343046,1342211768,1344966328,-2093449240,-1883765564,-1900523520,-1545056214,46433080,1344966405,-2093455384,113706180,10926,716179143,113704961,769010354,716441287,113650391,-1207817546,-1202716526,-397399369,-998033348,10270724,716683344,945875024,84067459,-397399368,-998033372,-670644476,-956301270]},{"sector":9,"data":[2808326,-603535616,-953295318,-685056506,-536426966,-1615331030,-508014592,-102215638,79987511,718735046,939968000,113639469,-956289735,2963974,-1547687168,1017326910,1309066797,113639469,-1560269489,1419980112,760390445,769001158,-687421952,-660406227,769434413,-1020405085,871140181,623962304,185222795,947129414,-1962260853,262343766,286689579,218547755,113642283,-973067506,2822918,722732742,352765456,113649707,-973001962,539694854,759432903,116064257,759432903,1183514624,759210756,-1559869813,113651010,-1979699898,1201801286,1208403757,-1205138131,-1202706528,-397398720,-998047690,1438866692,79228043,615835648,-2130819385,-62470352,1586168108,-28933122,509698,-61931776,16547459,113765503,122,-1017256565,1595064986,2124071687,-1022927086,1595082394,-1957313785,-1957275668,1166738558,93016074,-1962779253,1435173965,141921030,999970143,1560764193,108956503,1569260937,72190210,-1996073591,-1070397323,205883807,172329304,-443850914,-1957313699,1226988,-970707480,-973013946,-1207898554,-1202716417,-1202716671,-397410294,-998046724,758167558,982313040,-1593654141,816000310,-28915923,113704960,1392520512,-1543616885,1183657286,759866350,1345138872,1344774328,1345142968,1342203832,-2093415960,1187383492,1048576246,1971529633,9955587,759170759,1183534080,759604222,1345138872,1344774328,1345142968,1342203832,-2093428248,-1566504764,-129595097]},{"sector":10,"data":[16402119,1343139840,1358448269,-2143600152,1962998910,16758824,112720,899152,56813648,-1207516029,-1202716417,-1202716671,-397410290,-998046896,-62470650,-293699583,-1207012096,-1924128440,-397349306,-998033972,-129594108,-297366192,-28930736,16758864,112720,2930768,138143824,-15940477,2122448454,2097217790,-14227197,-1017256565,-1192457387,401080336,113661475,-1202574015,-1202705104,-1202706528,-397398720,-998033146,758161670,-1590789981,1990404002,1981727790,2139301422,57999429,637624297,-1991948405,1187510854,-1342177028,1183666186,2145931514,16758842,112720,702544,44492880,-1928936317,-1202652602,-1202716417,-1202716671,-397410281,-998047035,-1408841976,-956301273,2965510,664844424,759216208,1423440,920709200,-1593391997,-768923744,602409649,-96040646,201086601,-401574718,-768926212,266865329,-96065222,-1912842727,-1202652602,-1202716417,-1202716671,-397410258,-998047123,511043592,58048523,-956252183,103628806,664844339,759216208,938534992,-1610300285,-466999385,270921867,-28931840,136693387,-263812864,16678531,1183516789,-62518278,1005069429,-401952481,1183398314,-195655182,1358055053,1342242744,1342177720,1342190776,-2097018648,2122516676,544473342,15761027,-4715148,28856320,985157632,-1203442944,-1202716417,-1202716671,938147895,200951435,913701958,1358954424,-2095177496,1183384260,-128546314,225755659,1342242744,1342177720]},{"sector":11,"data":[-352307528,505341966,1342242744,1342177720,1342191032,-2097057816,-1956772156,1438866917,146336907,561571840,1342242744,1342177720,1342180024,-2097066008,113706692,1107307840,1345138872,1344774328,1345142968,1342203832,-2093582872,-1566504764,-129595097,16402119,1343139840,1358448269,-1590106648,1183393702,-28915716,246415360,-62485168,953215056,1358710413,1342242744,1342177720,1342182840,-2097075992,1183647940,-4697864,28856320,381177856,317214720,1575324417,-326412861,-402648904,1048584426,1963065465,2030487140,113639424,-969593535,1731018758,1345138872,1344774328,1345142968,-2093561368,1048774340,1946168624,-1572961476,896794663,-1980479859,1452080198,571646,-59310256,702486,808910672,922413101,-1207253885,-1202716664,-1924128431,-397347770,-998034610,1958742790,7970822,-950342760,2965510,758167616,664844368,759216208,6797392,898164816,-1610038141,-466999391,-940423543,2965510,758167622,664844368,759216208,6797392,895805520,-1610038141,-466999392,-2081405303,1962996350,4210092,113682290,-352255879,1575324576,-1957326653,-390056980,1183522834,759210756,-1559869813,113716546,11588,759563974,138840576,-1204992094,-1202706528,-397398720,-997983394,1438866692,-1070338933,-1960845848,262343238,287214635,218547755,113642283,-973067506,19600134,722732742,352765617,113642027,-972412138,539694854,-1560000885,1183526208,759341830,759432903]},{"sector":12,"data":[113639425,-1979699898,1201801286,1208403757,-1205138131,-1202706528,-397398720,-997983498,1438866692,-1070338933,-1960872472,289211462,-1954908928,262343238,287214635,218547755,113642283,-973067506,19600134,722732742,352765456,113641515,-972543210,539694854,-1559476597,1183460672,759669256,1344774328,1345138872,1345142968,-2080725528,-1465841980,723165991,-1557317983,113650460,-972346600,2824454,723388102,520537602,113676331,-973067488,170598662,723650246,71732000,-1959968605,1117980230,1141294893,-973077971,2967046,-1576515958,113716551,722283848,1344774328,1345142968,-2080753176,-1017314108,871140181,515434688,1023690379,192151568,1962945597,14608643,-1962891287,262343238,287214635,218547755,113642283,-973067506,19600134,722732742,352765456,113641515,-972543210,539694854,-1559476597,512502554,113650460,-972346600,2824454,723388102,520537602,113685291,-972674272,103489798,723650246,239504176,-1976745821,1201801286,664844333,758167632,759216208,-105846704,-1593391997,631449512,758554923,-970250333,187376390,723781318,688309760,113640235,-972018902,2829062,724305606,755418634,1183522859,759210756,-1559869813,113716546,208196,759563974,138840576,-953333854,221071366,664844331,759216208,-112924592,-385563517,1183514779,722445066,722542220,722273990,235324939,113639467,-973001965,-1859447802,722798278,369542665,113641771]},{"sector":13,"data":[-1960826089,446893126,471764011,403097131,113642283,-973067495,36380166,723453638,537314832,113641515,-972543199,539697670,-1559345525,1183460672,759669256,1344774328,1345138872,1345142968,-2080844312,-1465841980,723886887,-1557317983,113650471,-972346589,2827270,724108998,705086979,585741099,1438866943,-1070338933,-1961024024,255657030,-385649664,1183514868,722445066,722542220,722273990,235324939,113639467,-973001965,-1289022458,722798278,369542662,113641003,-1959777513,1084427334,138840621,-1204992094,-1202706528,-1202705104,-397398720,-997984174,665362694,-1591010653,480455990,403097131,113642283,-973067495,36380166,723453638,537314832,113641515,-972543199,539697670,-1559345525,512502565,113650471,-972346589,2827270,724108998,705086979,113685291,-972674261,103492614,724371142,273058608,-1976745821,1201801286,664844333,758167632,759216208,-136779696,-1593391997,815998888,758554923,-970247517,187379206,724502214,872859136,113640491,-972018891,2831878,725026502,939968010,1183522859,759210756,-1559869813,113716546,273732,759563974,138840576,-953333854,221071366,664844331,759216208,-143857584,1560593539,-326412861,-337067981,71731995,1946160957,11856131,-1559607669,512502543,113650449,-972346611,2821638,722667206,335988225,113685291,-972674283,103486982,722929350,205949744,-1943332189,-970253282,187373574,723060422]},{"sector":14,"data":[503760384,113639979,-972018913,137043974,723584710,570869256,1183522859,723886862,723984012,723715782,604423691,113639467,-972870871,-1289016826,724240070,738641414,113641003,-1959777491,815992902,840862763,772195883,113642283,-973067473,69940230,724895430,906413584,113639467,-972412105,539703302,-1560000885,1183526208,759341830,759432903,113639428,-1979699898,1201801286,1208403757,-1205138131,-1202706528,-397398720,-997984654,1438866692,-1070338933,-1961168408,262343238,287214635,218547755,113642283,-973067506,19600134,722732742,352765601,113640235,-972870890,539694854,-1559476597,512502554,113650460,-972346600,2824454,723388102,520537602,113643563,-972543200,137044230,723650246,239504160,-1943329373,-970250466,187376390,723781318,688309760,113640235,-961336534,103492358,724305606,755418630,1183526955,759210756,-1559869813,113716546,208196,759563974,138840576,-953333854,221071366,664844331,759216208,-172955568,1560593539,-326412861,803782707,172395290,1946164285,4078870,1161630068,-1962118144,262342726,287214635,-1960187093,1084426822,1191626285,-1598488787,817385511,1085820973,2011713581,113542133,-1557682015,916531983,722576173,722273990,235324939,113639467,-973001965,271258630,722798278,369542664,113641515,-1960826089,446893126,471764011,403097131,113642283,-973067495,36380166,723453638,537314993,113642027]},{"sector":15,"data":[-972412127,539697670,-1559345525,512502565,113650471,-972346589,2827270,724108998,705086979,113643563,-972477653,153824262,724371142,723165472,816044684,840337707,772195883,113642283,-973067473,69940230,724895430,906413747,113641003,-972674249,539703302,-1560000885,1183526208,759341830,759432903,113639428,-973066938,-13809914,759695047,-1598543091,1085820967,-2081927123,79987700,-1957313699,-390056980,1183521026,722445064,722542220,722273990,235324939,113639467,-973001965,-1322576890,722798278,369542666,113642027,-1960826089,446892614,471764011,403097131,113642283,-973067495,36380166,723453638,537314832,113641771,-972477663,539697670,-1560000885,1183526208,759341830,759432903,113639426,-973066938,-13809914,759695047,-1598543091,1085820967,-269987795,79987699,-1957313699,14989548,-971477528,1378697478,1345138872,1344774328,1345142968,-2094113304,815859396,1720092973,779658239,-1557683551,-2033766794,9240420,-10182972,-1559786714,1048784358,1962946028,16758802,112720,702544,-133765040,-2096708477,3008574,1048783742,1962946028,16758820,112720,768080,-135862192,-1207516029,-1202716417,-1202716671,-397410292,-997984300,1090962950,-1598541779,1085820967,-1746382803,79987501,664813184,-2146994941,673685822,113641331,-352255880,2013709829,-1070923776,-1984018807,-2033730490,67174262,-8878455,770442809,12066420,1347590404]},{"sector":16,"data":[1347469355,1342179512,-2096353816,-1073018172,28846452,120252672,1342183608,-9009523,2865232,-1136226992,16758864,112720,1030224,-96737200,-955333501,67157062,12469959,1988544256,-956235521,16742534,-331447552,477364269,-1727987528,12079186,1347590404,1342179512,-2096378392,-1073018172,-1628756620,1342183864,-9009523,2865232,-1136226992,16758864,112720,1030224,-102766512,-955333501,83934278,12469959,1988544256,-956169985,16742534,-331447552,494141485,-1727921992,12079186,1347590405,1342179512,-2096401944,-1073018172,1105798772,1751295,1988529488,733499647,1183666176,-4697924,28856320,263737344,-2098704384,247759865,770457219,-1206749952,-1202716417,-1202716671,-397410294,-997984644,-1136212218,1187448576,-1593835330,1882009208,-1311626496,773908484,-9009527,-8874359,770457219,1377399808,117487696,-1202695527,-397410296,-998044938,1958742794,-20518618,1342184888,-9009523,1816656,-1136226992,16758864,112720,1030224,-116922288,-955333501,2960902,1981727744,1200301614,1468737058,-1591612636,-801427848,532156275,-11382784,-385913674,-998046288,1822344198,126559999,39291686,-9664887,-9529719,1979711293,779657682,-1590823773,1212690038,-1003621725,640545310,-2037839989,-2033713302,65384,770457219,-1206749952,-1202716417,-1202716671,-397410294,-997984864,779657478,78762539,-1993518616,1451867206,1790377918,1756823551]},{"sector":17,"data":[-289412865,721732739,1444658246,1988528574,2023131647,-331447297,427032621,1996443730,-1133051970,1342179512,-2096493080,-1073018172,-571922828,1947901,1988529488,481841407,1183666176,-4697924,28856320,263737344,518541312,247759864,770457219,-385649664,-4717525,28856320,179851264,367546368,113542133,-1006364951,654272670,134315907,1508442996,1200301571,1787167491,-2037825281,-2033713378,65308,652759814,79987694,-1984149879,-1631273386,-1960378520,-768933049,-1880619855,1988528428,2023131647,1755235583,2139105023,2004177672,159350822,-2089781949,3009598,1347558516,-4294913,146324598,1407733760,180650761,58048523,-385642007,-425591520,1787181357,-1207602177,65732636,-1996470856,-1191219066,-1924136930,1358919302,-9390337,1354516109,1342242744,1342177720,1342181304,-2080944920,-4714812,28856320,179851264,1307070464,113542132,-2096938519,3009598,498606965,-2037559296,-1202651274,-1924136933,-1202668474,-1202716417,-1202716671,-397410289,-997984499,1787202318,-2037825281,-2033713374,65312,-1962781719,973020806,1929323142,49867011,1344363192,-14383475,646375504,-1006320509,654254238,764938122,373096514,-385649152,-1073544903,-1476448621,1187452650,-1962925126,654254238,721635211,-402345518,17116030,13796096,-2037690286,-1769210080,78774050,1378576872,571472,139782224,185255043,-385649216,568918314,-1169766404,-1631322073,-1960378592,-768933049]}],[{"sector":1,"data":[1072170161,66859,1375785603,579242832,-1311626241,724363268,-1631301550,-14221536,333971831,180650760,57982987,-269335,-56650,-385933130,-998046414,-2037559292,-397344988,-998038060,13428996,616187591,547275776,1200301823,-1311626493,719644676,-2097151739,1347551442,-14514549,1709822507,-1169766401,-1224802264,-1224736990,-337051872,79987460,612797776,-1914154753,79987493,-14639420,55020326,78762539,86681064,-763166719,-1957670400,-1946214266,-1308679530,714139652,-1631301550,-14221536,552141175,-1169766401,-286719959,-1169766402,-1631322074,-420872416,-1169766402,-219480019,632964807,-940840192,2865734,364045547,368121571,374085347,383981283,383981169,381753059,383981283,383981283,383981283,383063753,383981283,383522531,-14639420,55020326,78762539,-1993728536,1451867206,-331447362,510984237,-1917159681,-1924088762,1358898310,1342242744,1342177720,1342181560,-2081189400,-2037707580,-1769210080,-2037776606,-1769341070,-1631256716,-1960378510,20972359,-989891450,654254238,1967406976,1086491464,-9533815,-9664825,803930112,-9140597,-9533895,548941683,-1224781824,-1224736914,-1511456916,113541889,-9658684,638028582,-1996335221,-1979749242,-1946194282,973021830,2013228678,547275975,1200301823,-2046738429,-2037645534,-2043019414,58130210,-369254167,-1224802142,-1224736918,-622264472,79987690,-1984149879,-1631273386,-1960378520,-768933049,1139279025]},{"sector":2,"data":[1988528425,2023131647,1790377983,1756823551,56158463,1342489731,1354778253,-2094793752,-1224801084,-1224736918,703135592,79987461,2055638352,-504868609,79987491,770457219,-15109120,-34634,-35146,1996471926,1755235516,2013210367,-58267391,-8747379,1988529488,1183666431,1183666368,-4697924,28856320,263737344,820531200,247759861,-9920828,55020326,1787167040,1755235583,1065363199,-385649574,1392966621,-2081807128,1183384772,-1101624900,-9920828,55020326,78762539,-1993830936,-1979746682,-34666,-38218,-385914698,-998047070,1183666180,1172852928,79987491,-9783553,-9914625,-2096860184,-1924135740,1358920326,-2094847000,1048773828,1946168812,2025258787,1991704575,-1099497473,-994281729,654272670,-402556929,-998046426,1958742794,-118036185,-8747379,1988529488,1183666431,1183666368,-4697924,28856320,263737344,1894273024,247759860,-443826133,-1957313699,1226988,1443910120,770195075,-385647358,1589903539,1207379460,1954545668,-28915910,1988820992,73319678,172001830,-1162616,2122579526,-360969986,16139974,-1928825089,-1202655674,-1202716417,-1202716671,-397410287,-997986167,-999363830,-1977220002,1033374279,393543681,86847137,-11534271,-1929352650,-397349306,-998038348,-1004147962,-1977220002,60295751,86846982,-1588592576,1090858286,922701824,1183645804,-1914154770,147096356,-1928825089,-1202655674,-1202716417,-1202716671,-397410287,-997986267]},{"sector":3,"data":[73319434,172460582,772145560,-443851219,-1957313699,1620204,-1206942232,-1202716417,-1202716671,-397410294,-997986468,1090962950,-1598528979,1085820967,535318573,79987493,-1993891167,1187508806,-1207959312,-1202706528,-1202705088,-397410286,-998038630,664838406,179425835,-1993941528,1451882566,-330921478,-940681591,2966022,1074185984,-1195311059,-1202705104,-1202706528,-1202705088,-397410283,-998038474,-1405189368,846528551,724381857,-402345518,1178281630,992179704,511048278,-1993527135,1187506758,-1006632728,-1977161634,-1315334137,645720074,301483521,1183709782,-4697864,28856320,314068992,-622309376,147096558,1357661837,1342242744,1342177720,1342182328,-2081504024,1017186500,-230282459,78762539,-1993982488,1451883590,1074186238,-951582675,-13811194,664844543,759216208,607709264,-1593523069,-768923742,333972657,-196703962,-1946790263,1452014662,-162121218,91689842,1995720249,-196703476,-1980344693,1451883590,-62484994,16758864,112720,1357904,-296490928,-1017256565,-1192457387,736624658,1187468814,-970066192,3012102,7223039,-386894081,-998038808,73319428,21465894,201213577,-15698496,-16747978,-840372106,79987490,-2097108247,1963523710,1882652422,-1947669760,-1991705018,1183516230,106334980,-1996486651,1451882054,-62470152,1187446785,-352321286,-1950340286,-293699344,-1207599840,48955393,-972308437,2122327924,91488494,16533191,-58817792,-1957268480]},{"sector":4,"data":[1451951174,525574,-1980348791,1187510358,-352321286,-96010463,-2081011969,2097740414,-161561384,-2012771802,2134699590,28879733,-5707008,2122578502,326961402,-1024373,1992618054,-163119114,-2012968410,-1947931897,130478174,2017361920,259260416,-755969,1996485238,780542,-1207516029,-1956762122,1438866917,213445771,220522496,-96024746,1048587766,1962934392,11659523,959313057,460522566,771112576,-385649664,922681503,-155713422,-907522003,79987489,-1962897687,1183384646,105301768,1183383596,-163133448,1589903360,1065363190,638022912,98176,1191118196,-2081690634,-1962740154,-1030949306,-1979955575,1589968470,1065559804,-2092010239,-352127418,-94467311,-990230785,1191179894,76162806,1589905288,1065363190,-1947831040,1191180894,509690,-151355775,-1960937939,1065417310,-972851922,1586167815,-2012771590,1547498566,977011828,1191121525,-92864518,1345189560,-2095131672,99288260,-335917313,-443851065,-1957313699,1095916,1443643880,-587577657,-603535831,1187446825,-1006567436,-2094660514,1963458943,-196688123,-2094661585,1962934655,-196688123,-1960443856,1183383879,771006968,1945650745,-193036018,963969279,737429191,-1959597312,1183447110,-263796750,-1064566740,-129615040,1187448693,-352308748,105286424,-262224832,1963408166,-196688121,99287090,871646919,-196703488,-970112861,-13809914,1344774328,1345138872,1345142968,-2082001432,-1465841980,-62486233,-1993525599]},{"sector":5,"data":[1187511878,-352321290,-161576173,-990492929,1191181430,76162812,702318472,654073540,1962950528,-161575964,-956938497,2743431,1593460363,-1017256565,-1192457387,1609039880,1183536651,139889414,602408113,-28931805,-1962260853,78711894,-1994189336,1183578694,-129595132,958512545,91554886,280263,75399936,-1590463232,104407485,578093174,1207990945,-1191426423,1861681158,-1948742660,-2026306490,91500672,-335788289,-96010448,2057382891,-62486272,1187455979,-352321284,-62456061,956332705,293469254,-150993224,-661914514,956581515,1966112903,8036836,1979467321,6569267,-1070916747,-4698032,45633536,1152929792,2078822400,180650981,-352321096,440417,-1946390793,71732184,813729673,7997183,959309473,292814406,-150993224,-661914514,33179275,-349142393,770089261,1979598393,440342,-1946390793,-2105212944,-96040144,-2071688888,-1206916304,1861681158,-1948742660,-2029913530,1183527044,7775224,-1956724693,1438866917,515435659,171763712,-1983894698,1183448134,-28915974,1090962944,-1598528979,1085820967,-605532115,79987487,-1993891167,1187506758,-352321288,-129564925,956332705,981334086,-150993224,-661915538,814006147,-972786688,-1207828922,1861681158,-1947169800,-2076579258,-780849024,813859979,813990915,1174524459,-61468166,16678528,78691188,-96039600,561047632,1342242744,1342177720,1342192568,-2081843224,-4716860,28856320,179851264,-2048372736]},{"sector":6,"data":[113542121,-397361109,-998047529,-96075518,-1191422447,-1202716417,-1202716671,-397410294,-997987996,-25264122,-1203342336,-1202716417,-1202716671,-397410244,-997988020,16758790,112720,702544,-382015408,-1207516029,-397410303,-998047605,-96075518,-1191422447,-1202716417,-1202716671,-397410294,-997988072,-96040186,-1979951477,1183442006,-431568926,1187446784,-855637784,-840798661,631780920,-1962349437,523881948,1555578317,1183666209,-840412948,214205213,16678528,1102579060,-1207702784,1183383622,-330920456,-96039600,112720,-126419120,-2081436696,1996425412,-28931350,1592283288,79987458,1575324510,-326412861,-402642760,-1070921546,-1980086647,-4655034,28856320,1069043712,-2048372736,113542120,1342242744,1342177720,1342193848,-2081917976,1187448516,-352321292,440342,-1946915081,-2071491624,-28931792,578142219,-1577826561,1178140794,-385647372,2122514647,-646643708,-150993224,-661916562,813860747,112777195,-194054400,-1081878389,1946169472,-163133489,112721920,-194054400,-1081878389,1963470976,75399953,-1207601920,65732636,-1996470856,2122577478,611647734,-150993224,-661916562,813729675,-498693816,14698183,1996443648,-104535840,-1996176253,99351622,16533191,-28931328,78762539,-1994422808,1451880518,-631862798,-942127479,56390,14567111,1849412864,909692376,-326949464,-841184504,1036853049,1344366264,1357137549,-2095284248,1183648964,1183666404,1996443888]},{"sector":7,"data":[-59310090,1342177720,1342181304,-2081596696,468257988,-196687873,384499712,-150993224,-661916562,813991819,201213577,-13535808,2057434182,-196724480,-1964440708,440320,-1946915081,-2134932520,-478871504,294531,112773749,-194054400,-2020878197,-924110718,738084491,-129629742,-1308994031,517269508,-1980742007,1451881046,-666465830,14436039,-565786880,1003290624,953014382,-2094684106,-594867988,-853591603,561035325,-465138352,466544720,-1928543101,-1924078522,-1202655162,726663230,28856512,263737344,-1461170176,214205420,-1325438743,1183666180,2145931512,-129594594,-1980082549,1183439446,-599341096,1187446784,-855637794,-841454021,631780920,-1962349437,523881948,2058894797,1183666209,1843941604,214205211,1342242744,1342177720,1342180024,-2082050072,1183647428,1183666404,28856568,1035489280,1776832512,-129594387,-1946528117,1438866917,683207819,107014144,-263796906,1187446784,-1962934028,1183385158,-532232222,1589903404,126559968,-498693816,65029831,-530660352,1074236198,-1577695607,1178152422,-1341884922,704834305,-62486336,723860641,1183385158,-58818306,-1996131328,116126790,-1979824501,1187508294,-352321294,440378,-1947046153,-2134932520,678756400,-150993224,-661917074,813873035,1945138745,-260667133,-150993224,-661917074,814004107,1945400889,-193558269,-1577957633,1178140794,-2134999822,1946221694,770089243,1994540601,-28931284,1005995523,561378374,-1979824501]},{"sector":8,"data":[434893894,959309473,292807238,66995851,1178334790,-1962510864,1183448646,-263812112,78762539,-1994580504,1451882566,-631862790,-942127479,56390,14567111,1849412864,909692376,-326949464,-841184504,1036853049,1344373944,1357137549,-2095441944,1183648964,1183666404,28856568,1119375360,635981824,147096556,294528,1183537012,-1311626252,482404356,-1980217719,1451883094,-666465830,14436039,-565786880,1003290624,953014382,-2094684106,-594867988,-853591603,563001405,-465138352,431679568,-1928543101,-1924078522,-1202653114,-1202716671,-397410237,-997987384,-443851256,50013,-2147483648,0,1,0,1397310550,1444945995,3354163,0,0,0,0,59921,0,1229215232,775113555,16810035,1073807361,-33423360,524294,1,1448412224,-1205991849,567096601,-1191177537,521011205,-215684930,-1089112666,-1960443860,-388955835,-148444975,1946418949,65748993,755237048,119473152,-1017291169,1397903696,1465275732,-326433250,-1206981501,-661780641,1950253308,410255360,66209479,-196688040,1183645696,1183666418,-941076238,79987481,780023551,779892479,1342186424,-2095347736,-1070922044,52357200,520611211,1532845663,1482250843,-1957326641,-1279249428,1575324544,-326412853,1048794966,1962942872,1124120602,-2143539251,280498549,-1993355965,-1943954914,-14574586,-1591633914,1583292824,-1017256565,1458342741,-1822121]},{"sector":9,"data":[-1960732130,-1956749357,1438866917,1465314443,1451950516,-1709244668,1221735201,-209059212,-443851169,-1957313699,-1269344532,-1709244670,1221735201,-209059212,-443851169,-1957313699,-1269344532,-1709244669,1221735201,-209059212,-443851169,-1957313699,-1269344532,-1709244668,1221735201,-209059212,-443851169,-1957313699,-1269344532,-1709244667,1221735201,-209059212,-443851169,-1957313699,-1269344532,-1709244666,1221735201,-209059212,-443851169,-1957313699,-1269344532,-1709244665,198325025,-1979550272,-1956749325,1438866917,1465314443,520030388,-768400998,41271307,1583346570,-1017256565,1458342741,-16206761,186751518,-1161655360,41222144,1583346570,-1017256565,1458342741,-1962298281,520029270,-1073012326,12239499,-1979550464,-1956749325,1438866917,1465314443,1451952820,-1709244668,1221735201,-209059212,-443851169,-1957313699,-1269344532,74877707,563748607,1950929459,1609796098,1575324510,-326412861,213145430,-16492917,-1826514402,-1979550645,-1956749328,1438866917,1465314443,1451953588,-1709244668,1221735201,-209059212,-443851169,-1957313699,-1269344532,72780558,563748607,-1031028725,1962934458,1609796098,1575324510,-326412861,246699862,-16492917,-1960732130,-1950348333,47810,-209059211,-443851169,-1957313699,-1269344532,72780559,-16359797,857840158,41175250,1583346570,-1017256565,1458342741,-1961839529,520029270,1267933594,-1970142348,-1956749326,1438866917,1465314443,1451954612,-1709244668,1221735201]},{"sector":10,"data":[-209059212,-443851169,817152861,-1079828019,889239585,512303565,109846955,521019821,-1171980104,567103276,243998486,786638234,566036110,741772070,-1677277952,869960741,520042203,91432344,1307123478,113587713,-628349536,905970619,630726399,109977366,-1960435267,-486527986,868322870,1031808767,-1188269056,-1631715316,1957098273,2147465483,-1359822797,-437577355,520560134,-960497781,-1852265439,1958805164,-492156927,-1155590409,-1484783612,-1195433530,567100416,-1024062862,-2147126144,1075955343,-1092126389,-1530976860,10676261,-1088052034,-1964497498,-1957313792,664321772,-400058177,-1497497475,631815973,-352291608,-326413053,-1088051010,1726490024,631815680,-400185153,-1175977876,1958742784,75399947,-955943680,16712774,-1157623879,-2013921275,1946231238,-851528700,-220052703,-1962932248,1286865990,243999181,132326810,-16776517,505780254,564860613,-853213000,1048583969,1946165736,-375382515,-367606495,-853167071,1002643233,1326085111,-485651633,-338558986,-147078158,-276623757,184912644,-227278267,-286581249,-1957363517,16562412,41674832,569261699,-16485376,-1205735914,-397410049,-443874711,45663069,630581504,735873881,990540504,1914826782,-1864956,-373279775,861283711,4372982,-1392712654,-69017550,1951790208,-5314547,1342177720,-1207816984,-1017249791,569509519,939524794,1948368662,-1123643863,109979169,109838380,-1070390814,-2147436135,-1359806669,1207661998]},{"sector":11,"data":[-532772537,-18143,-772296974,29348235,8502784,566042254,1948269740,1946762491,1947024631,1958742639,-1404156053,-395042756,-462157508,1551109436,1484046346,611590716,57957436,870640450,1017921993,1023046748,50623522,-1949045807,334090689,1963043025,1308748746,1947024556,1958742571,1948400679,1952201914,-320126461,-1404974797,-93037508,74719804,-605302525,-372129397,27840787,-1746152843,1049173782,-687660582,65524039,-18710313,-997465557,-1960715101,385549272,1065956871,918897475,-1431559712,-92946422,906002878,566042254,-1070398485,540847274,154991476,222099316,2145977205,1975519744,-1871058173,1128237366,1017925187,1021015072,1020752905,174224397,1012823232,1009218594,-1442614180,-919345941,1547480129,574421620,1555039860,-773084429,-372155216,108243699,-341171536,1017925317,170816525,1009415360,1018655778,-1442614180,-919343893,1547480129,574421620,1555039860,-638866701,-372155216,-1770804493,-341171536,-1430244403,130490134,654245888,-1957355022,512644588,-919395907,-376716917,-1958086261,184560694,-1911524106,1048585926,1946157056,1169093126,1174042030,-31178601,-439222901,521585923,638807,1593869800,-41169013,780793859,119415262,-164372850,-2129403063,1950563132,8292613,-1431550651,-92946422,1317662178,1562318336,-1017256565,1458342741,-1962467753,-1061288874,-1036276443,-1774186380,865537140,-17984,-141840654,1603726315,1575324510,1426064066]},{"sector":12,"data":[-11015029,-873986954,1958743039,-91516396,-4603853,-139529473,45828561,-851397632,-443850975,180829,100913291,896673092,624821817,251995507,-657371136,-388824143,512481676,-886365763,-1014054653,1253365899,1918378445,1223697424,-1792721245,625225355,625219073,-372798525,326247115,-443826125,-126631075,1632336,1575324504,-402164797,-4718578,-443835905,-466435235,-1023409688,169984674,-2145159708,52543294,574360946,540806515,95421810,1016072171,-1342015981,569686803,-1214015273,-997539039,-1957300245,82609132,180246103,-335598814,1157009429,192185094,31123542,1073923203,-2092498572,909707462,-428661982,1600046987,-1017256565,-2081649835,1448544492,-1979287925,-1986525372,-963904954,-1323169235,-1946627325,65065416,98619841,1183392426,105182968,-167349117,1950352964,105676811,-18400,-1878978327,17188086,1283518325,1686110726,-1070862586,-1962785655,-58816008,201737462,-561291403,571140993,-70057039,-472792181,-472786941,581601270,-2126088959,1948390142,452886790,-13404894,-370607498,46433039,762691595,570951423,571670145,-591919499,-1878725849,-1993441096,76088388,-940024181,33555015,-352254010,-396980216,-998047588,105182722,-1961265912,183206366,-754732766,-775713797,-774372381,-1433930013,1349779746,2083208331,71600900,-1962636992,1200355422,1149847554,2130643714,1962891027,-92864764,-2096466968,1183385284,-1877283844,-151363957,539084423]},{"sector":13,"data":[45617012,-1070903296,-397193136,-998045222,73173768,-2012985718,-1877480697,-1962933825,1183666375,1996443652,171370746,-1996045181,2117729350,-385649412,1183514347,1592011268,1575324511,-1957326653,49054700,71732054,-1323169235,-1946627325,65065416,98619841,1183392426,33601790,188934224,-1962752893,1200161886,1958742788,105873423,-27358456,149447,-1877480702,-2147197301,-1962670513,-1992229306,1586168903,38258686,1586167809,-1946973436,126420036,149447,-443851264,-1957313699,82609132,1988843095,-1962988796,52692548,1182073404,134628598,-561309323,571140993,-70057039,-472792181,-472786941,581601270,-1960348671,71576324,201082505,1343979200,-1979419393,1352140612,-2096536600,1178273476,-2146994948,-1088420276,1150025727,-956004092,580,1600046987,-1017256565,-1192457387,2011693412,-1957275654,-2037578122,-2036072802,138840871,-1960347997,1789068358,-2147039449,-956301273,2588166,41740544,1948597376,39381251,662832839,-1070923775,-1557695837,2091067246,661693223,-1557693789,1822631800,661168935,-953715549,539462662,24936448,1178367280,663488199,871039024,1965767808,1913061133,2013710119,-352321497,1015058466,-2096270048,2585150,117380469,267069304,661128959,1015024107,-3050195,1176990726,1352139914,-2096630296,-1073020220,-1202263947,-397400184,-998045850,-2081387772,2590782,117378173,-2002704524,-1546062041,1015031688,-14453458,1176992262,662878294]},{"sector":14,"data":[121432144,-1962621821,-2109832208,175964199,662832839,251592705,76162938,4603288,1312633460,1026913280,544473192,1962961981,1879492358,-2097151449,2584638,1015022965,1174500684,1962949760,25749787,661653191,-471138303,661653191,-605356016,661653191,-739573752,-1986526070,1040096390,175374405,1946175293,5782789,117377397,-2038225042,-1960771940,771660934,356319331,-385649152,-1073544940,-1476448621,512438762,529213302,-1993900383,1980138247,1776878119,117411841,113715068,10088,1342180024,-2097053720,1374225092,146313217,-1863259392,661391103,661522175,662322819,-955681536,19366918,-1878529280,662963911,117374976,113715066,272258,661667459,-385649400,-1070923640,-1993903965,104463430,661923720,-1993897823,1048837190,1946167156,-2012821751,-352321497,780374034,-1593497720,-1073010808,-1070923139,-2094561117,36140550,1342181560,-2097086488,985137860,-806858752,46433027,16547459,1048781428,1946167156,-62485739,-1560279763,-1073010808,-1070923139,-349730653,113741831,10120,662056579,1095684,12511312,-385694589,280559391,-13637376,-397361109,719913442,28872959,-1863062784,-23283969,-385697304,1048837913,1946167152,1321634563,-2142765429,91488317,1965374848,734497781,1444827334,-2096894488,-141883708,1946172544,-42145533,662584963,-1957071616,-165189090,1948255815,-18353,831933931,832319666,832319900,816984486,832975270,832975270]},{"sector":15,"data":[818294938,832975052,831271334,816722342,832975270,1048785286,1946167168,2118026003,276103207,661266059,537282550,82556789,-1868960954,1579646625,1575324511,-1957326653,418153452,2122536535,74713604,662439679,661667459,-2096663550,271020094,512431733,126560118,-1996335221,1451883590,1980138494,720045095,662453891,-1961790464,-1960348130,-62486265,16664263,-1878070528,662052491,-1986459765,1451883590,1980138494,1048773159,1946167144,-62485747,1962821131,71731973,-1070923029,-1960342877,-2094561738,2587710,2122525301,612172030,168066691,80090997,1183532589,-27882500,-763111177,-1982138624,1451883590,-129579010,99287041,16271047,-398029568,1996486795,1996445444,-59310082,-2096474648,1048774852,1946167162,1005082401,46433033,662834827,1317652523,-1878660108,1177552070,189383051,-1980399680,244053070,92940142,-922024824,1631324020,746587004,-2142812640,1962999677,2084471785,343212071,187134625,1948743686,-125926645,-1207601920,48955393,-397361109,-998047054,-1956684286,-1866244635,-2081649835,1448546540,294531,29234292,662085888,-1929886071,109312606,-385734794,1048772753,1963992944,1981713175,-1962439897,1183384151,-94991880,662046339,-1877611772,662052491,1183385483,-129594884,-2080743796,36140550,661667459,-1962052336,1175189574,-1206618630,166404900,16547459,733481333,-129595101,-1946526068,1452013638,-230258182,737433225,2050374134,-1961069529]},{"sector":16,"data":[-349732338,1589940238,-230227982,4161574,994448756,-351240498,-1002008339,1191178846,1065363186,-1946979072,724011070,1950254078,125108263,18802775,1443021955,-362753,1877538934,113541889,661929603,1460106240,-2097085464,1599996612,-1017256565,-2081649835,1990264044,-28931801,1728347779,2122516084,74794756,48955824,1183367210,2050917372,108331047,662832839,2122317830,225706236,662847107,-955878144,19366406,1849097984,-2110324953,74907431,663107327,-100609,-2094838250,2122320580,309592316,661143171,-16026368,-14186954,-2094837738,1048773316,1946167144,-2109832430,192217127,663107327,592713471,-2096970621,136803846,663357127,1923153920,2013661991,-15502297,385875574,-998038698,1958742786,112645,-1070923029,17360976,-1017256565,1458342741,662716035,-1959824128,-14194146,242745935,-1962654070,-2012741833,-337368572,-11300853,-1343749002,79987703,-16288448,-349732858,117411845,1566451582,-1957326653,49054700,1048794711,1962944384,74877769,1115616779,922686955,922691434,2011703180,79987703,-16485056,-1960345594,-1073000762,512431742,1342121834,-1596229630,1066084236,92801023,-588520406,662716035,-1962445568,100729926,1600006014,-1017256565,-2081649835,1448542956,-2096597365,2588734,485183605,661272319,637820612,1352140682,-2080957976,1967129796,-2147025148,71761703,189712011,-1961003840,-14194146,-730332593,637820612,512427914,1066084202]},{"sector":17,"data":[92801023,-756292566,662716035,-1962445568,100730950,1600006014,-1017256565,-2081649835,1448545004,663107211,1183432747,-96040452,663502467,957904176,1948744198,1812347154,956724263,1965523974,-1945712890,-1962926041,1445431358,-2096761368,1183384260,737684472,1048773758,1962944372,758939672,1048777589,1966090124,1352182796,-2080465432,1325335236,-1942060040,192163879,125763339,661929603,-2095483904,1946158206,-96010490,-2097127448,2591294,1191118452,7006460,661929603,1462138112,-2080464920,2122515140,158597124,16416387,904397685,-1975614720,158597159,16547459,1038615413,-126419200,-739748322,113542142,661929603,-955419648,539462662,1642616576,46433278,-443850914,1048822621,1946167154,2865157,548930539,132665344,46433278,817402051,-68661248,46433277,663371395,-2095614704,2584126,1488455284,-1878725888,1342208184,-2080514584,-1866267964,-2081649835,1448543468,-955877749,130630,1965702272,1981713167,-2092987609,36140550,-1874269370,1965898880,-28915962,726073343,809271551,1015035260,959479609,1965521470,809271307,113706613,3155852,-1952971638,-773729841,-774962207,-2084043807,-108318487,809271366,1015022972,-1948156359,-268960186,1586231435,-1958770428,-1956684090,-1866244635,-2081649835,-1101659412,1317675826,-1878856956,3964998,205130356,28898933,-1878791424,-1956724693,-1866244635,-2081649835,1586169068,-1004651772,-1207602655,720046336,542455]}],[{"sector":1,"data":[-2092403584,1946159742,-1949748454,1107409105,1265770957,34227959,51279104,1444087366,-1205307128,-335997440,-27883210,-1946401143,1107474641,1174610381,139858694,1317735801,-61436930,-851312456,-1948718303,1317733974,172395016,567100084,-1484782222,-369286714,-1957301221,149717996,990142091,1914815518,151042055,-200939015,566659062,-1207208928,-919387646,567136651,-2013861006,1954554310,106335086,-1070397666,-1979824503,1476197446,-1946514602,-127497742,-485994869,-234180524,-397773394,-1472397100,-2092403200,-594869524,1023541434,57868840,721453242,-1949004830,-1962469638,1017907278,990671882,-1441172229,602469602,-1335760128,1979398925,1632259,-16076630,-471073722,-352317976,-346071326,860220245,372107712,-1957604528,-473289777,73304848,567099572,1174474098,1958743038,1482381574,-2084308341,74647748,518719924,566659062,-1962183616,1065354846,-133991142,-1191637781,116071424,738084491,1720450118,-379625736,1317794599,1976109832,-373191931,1452012315,-851397626,-1274776799,199551753,-153061952,1075955335,-628422028,1964654464,-806619133,469809401,-1587951125,-1002757648,-1003813261,-503326473,-85213133,-1947432107,-620034978,1333789812,-443874818,-1957313699,-1151904020,1065558840,506033408,374791,1963029480,-1715457275,608183531,590914558,-1776076125,66759,-955988349,-65980,591279753,-1945874805,-390033704,1583284233,-1017256565,1090572009,-511640972,-285637634]},{"sector":2,"data":[2005660275,-1951532030,1946265854,-1053079486,-796191373,-1464995837,53769217,132546,1149892491,-1947800578,51148030,-28538375,-1991720661,50719493,-28508423,-628308341,-784608884,-1943665292,-1994176994,650314367,592185030,-115454,-24435340,-1464995837,-1947044863,-1053079298,-796148365,-1464995837,65172481,132546,1149892491,-1947800578,-1073018809,-661781388,-31058709,1948470286,-1931965423,1959214039,512632325,931865410,2005646571,-390057210,-969211798,19139956,-392675264,225706078,-385987074,91488284,-347189610,-1931965287,1958820817,1185097220,-1995994333,-1070398905,-1957575783,27852357,-936705164,-1170128567,992378879,1982023702,1978323204,63015925,51737286,-150113598,734143442,846022,-755562379,-445257007,-1017528269,501764434,1461220352,-259260789,1153954307,-1979711746,-695531913,-1991583957,1499004501,1347666778,1377751603,28856402,520507392,-2097147928,-92075836,1532633087,-771030412,-1957363517,106387180,556675,1153382517,106335013,1208239755,1407715189,-349736448,-1808364728,292833317,225769275,-1996340085,-397013946,1935540282,80118576,630521473,-771029901,-4716939,501979647,-1014769013,-1310994161,-1259613437,1914817864,76124905,-1996335991,858100790,1583286208,-1017256565,-1962127733,38550007,-964490124,-1795260156,-101550811,-628408341,963779587,-1047604341,108394299,624827961,-1014815117,-774123249,-773074453,1979137003,-1579613431]},{"sector":3,"data":[-668261955,1253359758,225583565,74839867,624825993,-1962637422,-1957313583,-1948808212,108432350,-661848437,-1070350194,-218103879,-1949173842,-947190658,41157032,-372160092,-921459213,-208952077,-1017251189,-1947432107,-1898410793,75402176,-4603853,-139529473,-1953412655,12803578,1475119957,-1962467754,652413006,2123094411,871860996,-139529536,-1949629479,108432382,1149937395,986264575,74972997,1229522036,-1047801353,-443850914,-1957313699,-1957275668,1015022710,-2147126240,74778940,-1863062714,1347469355,-7542698,1342358659,209971286,-1962359677,-1900063016,142052647,-1515911394,-1201756763,1600006030,-1957313699,82609132,1988843095,140413700,-972652661,-2092552188,2113930878,105810711,1946172800,1191545349,816841451,-498727800,105810415,-2097150778,2080376446,893222932,99291004,80122000,1015041584,-17337287,73304836,1966161792,140413705,-352172033,1183551503,-11517948,-840432522,79987710,-443850914,50013,1458342741,-385830057,-1957362870,73305068,566500923,-75296387,-166953984,1075955335,28837236,855829248,1575324608,-1957363517,-1006218260,-953808290,855638279,-1956968512,147480037,-326413056,1589904979,650130182,1527187336,-899816053,-1957363708,1575324652,1426066122,106163339,-1005959541,-1993996706,-1956968697,113925605,-326413056,-899816053,-1957363710,1317740268,274631434,-1274259771,857853248,-443867200,838237,1458342741,183272279,-839498042]},{"sector":4,"data":[-2012985717,624752454,641469044,1187382900,216779768,-872790330,1157187270,1157121734,-1913366900,1183446598,108956658,1569392011,72190722,-1962519157,2106263669,1593791754,1476156914,-1995932021,39684357,-1996206711,1971914325,172330760,-164428686,703072491,114414,1971914123,180650764,-443851169,-1957313699,250381292,1183667799,-1913091084,1183385670,105236222,71732034,-1996208759,38127365,1183678463,1996443656,2145933062,113542128,1308618891,705394690,-14840896,-351827963,727158795,870863040,79987694,1600046731,-1017256565,1458342741,-326951337,-196688374,71732173,1022707336,1007318053,-972655578,-338954682,-129579508,-146356533,-163133884,-229209020,-1980479859,2123100230,-1962571002,1300955741,106269444,-16222837,2123041397,-1912238582,1432290909,1576034047,371087356,176065311,1167000972,142510854,1569260937,72190210,-1996073591,1167001717,855929354,-402068490,29289792,-1996125440,-998044555,1583292170,-1017256565,1458342741,75402071,1569392011,72190722,-1962519157,2106263669,1461832970,-1996063093,39684357,-1996206711,1971914325,172330760,-164428686,-169342741,114412,1971914123,-1956749556,12803557,1458342741,75402071,1569392011,72190722,-1962519157,1979648117,142510858,1569588622,567107334,-678683049,2123095950,-1895461880,2123040325,-1996125946,1300824669,106268932,-1895271031,74582597,149681715,-1091790872,92995585,1594652041,1575324510]},{"sector":5,"data":[-1957363517,509040364,-1962647922,1183712886,176065288,-217297269,1583292324,-1017256565,-1947432107,1603011678,-1945662458,1468793423,1575324420,-1957363517,-1948808212,-1898410786,108432320,-1962639733,139365319,-29676829,-963963274,-130301693,-947188109,-117182205,-201502898,283901092,27838347,1235485300,-1510741551,-1527527149,-91491445,-1957313699,-1932030996,-1950314792,-544537474,-485994869,105286165,-940056438,41156609,-372160086,-921457677,-91510029,12803475,-1962258805,1451951174,142510854,-66642345,1958742675,184124179,-771027339,766511737,-2082736214,-621346606,865269643,1958742994,-1812859134,-2020412937,1009779923,67270201,-1031034329,-495598837,-1404107384,1149764998,21270015,-227358917,-1956749480,12803557,-316010614,-1143764157,1085538306,12788173,-1947432107,900990022,-1031003699,-443825269,-1957313699,71732204,106349854,567092660,-1950338273,12803557,115600690,-757997359,12843746,-1947432107,126551134,-1962780789,-471333298,73305087,1468598153,1575324418,1218,115600690,-657331503,-1144784158,130491214,1204243998,-951440894,1252918343,-737785913,138921801,1522748032,123714138,-466953586,8465744,-400261469,512485328,-472832898,610307979,-1994098501,1340605519,16627967,-365172656,86277793,-397410203,-35067343,1043713510,1036854451,615751760,1478800802,-1255262771,1049230372,914957442,-838654844,612765321,-1994092893,858034198,1977289673]},{"sector":6,"data":[-1945712831,-402650588,243794058,915088512,113648772,-402643792,235536568,116860032,-56178,-1040775563,57940034,-1590638208,512435350,780805272,902636720,-853232850,512344893,1961370764,-2146531070,-2109830364,104320292,969745558,-2146530531,1488972580,-349124224,818511910,393584216,-537404425,-1962878077,1960250323,281640978,1971374070,-167384310,57966791,-1994339968,-1994090946,-1021011938,-1627217176,-1949748400,44951769,-125059726,1912776424,-1949070401,-773336593,-774516525,-791424537,335348693,13992154,-741218351,-133966384,-2147429501,-730595115,-919366677,612896393,613025479,1491664878,-2147257086,384336077,868823553,46328027,1011773300,1010857028,-2144111547,2397246,725376884,758908020,-347187339,-1841397724,376700964,43706438,725372494,758910068,960235636,809239927,1489174898,-588762133,46760447,-402199804,-914292781,-1912158450,1174405156,-1627262232,30468176,1963116022,-1841397750,57999396,1480640896,-150833762,29751003,-444592780,-1982123137,-1994094050,-1960538594,-1975647237,-1908538588,281409060,1043006581,-8313712,58589498,-2130625857,2113840895,-22626557,-1962587160,-2094759362,119834686,-914357386,-1070215928,-840878643,614870583,-841401651,615595577,116800973,1967203506,-499659486,-853722675,615595577,116800973,1947215025,-1341227003,-2142174940,1829273829,-1950131961,-853245378,861395001,-1414812736,-267524726,-2141213825,868417993]},{"sector":7,"data":[-1947235329,-1948808225,24832199,-1073071758,251595125,-236247926,1342270440,1476412648,-746336253,13992704,-33499261,318341313,1374217842,-2131004671,1052311269,2029980480,887638027,-2131301632,-1070399027,-1074295978,-1416485732,-1416254573,-1416451178,775408990,1472406684,-1031056555,-402649368,-805109749,1490555736,324593683,-773664264,-774516269,-2141666345,753615049,818511960,-1638339278,-847242635,-136579200,14386143,-687090805,-914353548,-2134378992,99289717,1954596854,550076419,613826185,613949065,7989443,-919383905,-2065114741,-1950912000,8251640,-1957643662,-1943603257,-1946645724,-138179606,186944550,-1952352814,1927087064,-133998437,1929433987,-846009384,969794103,1043975453,1036854449,615581430,-2147126256,19181582,-2132443055,1493658888,2147466179,1912614632,-855932649,-2131593460,-472841523,-472792317,-670833711,-454302856,7792835,725354868,758908276,206439284,-112278529,6482115,808253812,154989682,288097918,168094834,613156410,-466426755,860767939,30245056,-973683719,-2131528408,-2145091570,-973672469,-2131790576,-973729587,-388074239,-579600348,-361484740,-764268500,-831059652,-973731660,-16354032,-1272673786,-1308128,841254918,909886436,594748550,-1824620372,276037668,-294379460,-361494212,-428602820,-495710916,108159292,41384508,851664676,-60374080,-1,1073676287,-858993459,-858993460,-994164741,17090340,-1950338256,548618448]},{"sector":8,"data":[-770981113,-511702155,-2129955825,1962871033,617987594,-608302869,-1107039452,28976353,-1070397696,-661911869,-1073954674,-1185471304,-1510801404,105679710,2131190912,76226739,184697867,-796195772,1946567691,2043218853,-147999998,-255723567,1959917439,902648741,-853219010,-375369667,619422244,775277912,969745643,-1070215932,-851691571,-1090571459,-1968429889,-930370056,-145944390,1303417314,-939268874,-1699686637,-939268106,-377357805,-545189132,-145288381,616087263,-1157482520,-849394210,-852518084,969791796,-853219522,-402196931,192168228,1172880199,798702797,1472805581,-851691571,619261493,-1750254131,-1834117715,-1850895443,1073670529,-141829641,216252467,-623776815,-556671535,-186458928,60479105,-787224301,-977282797,1095972,1397866546,1347835218,-690887472,-758000175,-791620655,-690887472,-758000175,-791620655,1508184665,324661523,-787260951,349770585,-773533696,-774516266,-791424558,805591504,1337844394,-47140791,-2080592141,-994176319,-1207138268,1532624897,49927,0,1073913856,0,-939524096,16389,0,1074330112,0,-1673527296,16396,0,1074774864,0,-198967296,16402,-2147483648,1075222678,0,-1094967296,16409,-910228480,1077186075,-856841984,-742253618,-1247920050,-1381487760,1080663493,451225085,-350662770,-1781055357,-1929048509,1084141353,-2115156832,-2105438446,-1495973703,524943311,1087619704]},{"sector":9,"data":[-2132177696,-1816508471,1433092520,-141739737,1115480176,-1644568946,-1434522629,-478788783,791278284,1143374212,-858993459,-858993460,-687194117,171798691,1073259479,-1924145349,-2095944041,1697398773,391701017,1072812471,457671715,-1480217529,1773551598,-1123700884,1072399927,-444972356,-692087595,-822263833,1997636705,1071950796,-1001528997,-426404674,995311561,348996725,1068473022,1161401530,-810475859,-490324076,825998012,1064995681,-1317093031,-1156416429,-1926283425,-2053980666,1061485333,-1522931291,-1468011993,-459194582,1182557372,1045814736,1411632134,-1845525641,423247233,1126523770,1017954353,1199716561,-50284393,448478167,2046757703,1205385989,1599594487,4637569,661978891,-271464565,-271454255,468311,-799807116,-790590752,48287968,65286852,-1690513960,-918893265,-1009718437,1458342741,-1948568745,113642070,-402578284,113639464,989865108,91424374,-1992242816,-1956749555,1438866917,1465314443,1586221619,452618,-443851169,-1929591971,-1950314792,1988822606,138840836,-1090236927,-397073150,727578715,1979909238,620412678,1971916169,71665922,-1962517111,-1957313593,-61384980,-1064380276,-1090226547,-1523178220,-1523145418,348038454,2028492069,482303484,-1396143323,-1527541352,213887633,-1979764187,39160093,-956019319,622593605,1583335307,-1017256565,-2081649835,1448543468,-1979418997,-661940220,593463286,-1744342015,-352313339,76189700,6634904,-1975120524,-661940220]},{"sector":10,"data":[593463286,-1963756284,-125069308,1177420998,-1986526070,-947127226,2123039880,2088781564,-327876353,-443850914,-1957313699,49054700,1988843095,-1878529276,1949187200,1015039494,1190491392,16743552,199962740,1952791680,1161592843,-2142894476,-260767684,-1957771637,-1878856712,809271374,1015085684,1308718382,1191545414,-1073085304,1600058997,-1017256565,-2081649835,1586168556,121228548,-1340720947,-667300571,-25282099,1720335821,141729535,-1962933832,-1866244635,-443826133,-1957313699,149717996,2122536535,510918660,-402098433,-997985824,106859266,-74768501,119468171,-1515870811,-443850914,1996473181,-238884856,-1929198461,-259262338,-1515911402,1586210213,-853570810,-839367111,1036853045,-443850914,-1957313699,149717996,1048598103,1946166582,664183089,-1946401143,759137240,28837493,-1878791424,-259276757,-2096728573,2113931390,112645,-1070923029,770201168,79987459,1586186731,108527364,-16484353,939459191,-2080490520,1183385796,1183535356,-2091892728,2113931390,112645,-1070923029,-1979949429,1065613382,-1207601875,48955393,1174650923,105251832,-245700528,-1962490749,1586169462,759137276,80086133,2122532397,159252488,-2013182838,80102916,623949870,910065744,-1071972059,1174657271,1355154184,-2081399832,-259324732,687747,80085876,1586185797,106925052,1949319040,-60912825,1208108939,-15992693,-654899331,80148619,-8174035,-1961788316,1689885127,16381696,-1714975996]},{"sector":11,"data":[-91489801,184517446,-947187332,702873,67172855,-140916853,1190824953,67159947,1577469579,1575324511,-1957326653,49054700,624297670,175570689,-16222465,1996424822,-21043196,-956414327,2438662,-1017256565,-2081649835,-967439124,-2147420602,2438718,-1767819660,-129595097,1065605259,-1207601875,48955393,-259276757,-1593412093,1178150200,55407880,-196703802,1191172235,805816052,-957063541,954925063,-16490869,2013202039,41418500,-437766145,147096572,1358448265,1200347275,138806018,759137104,28837493,-1878791424,1174650923,367546374,113542128,-1962510709,1065613406,-972786387,-2092552956,2130707071,112657,2112378448,79987457,1177552070,1586169579,41354232,556675,28851838,-396996608,-998047392,772064772,-128021690,163715,1200301693,1004074754,58591302,-1995946357,1448085574,-2097071128,1996424388,3192840,1105745488,113542131,1577469579,-1017256565,-2081649835,113640172,-16702154,1996425334,74907398,-1979780632,113704518,-1962924746,-1866244635,-2081649835,-1957297428,2013201502,74972934,-16615425,-66394057,-1559706493,-661969002,1208108939,-2094712669,108342591,-352321096,-1070886909,-1996077565,-11272634,-397408138,-997986508,-1776383226,41388839,943077710,-1341817563,-1878791423,983744554,943098149,-50429147,-963967108,2097694265,175570711,-16222465,1996424822,-29169660,1577632899,-1017256565,624574080,-1961659392,-2142830986,1962999676]},{"sector":12,"data":[-25785863,1204215435,1996423422,108461832,-402360577,-997982414,-443851258,-1957313699,142509036,-2096728987,1967458430,209125137,-16091393,1996424822,-54073340,2122524651,309683720,-16091393,1996424822,-33495036,1560724611,1996460227,175570700,-16353537,132646006,147096575,-1957313699,1988843244,108954372,1444312064,-2081566232,1346372292,105286486,-397359613,-997985876,-1017291258,567095476,41091644,1606361293,37128967,-2114508032,1913651454,268484099,-2116579590,-80552252,-1041756557,1354773466,-1193459480,567102719,-72575,1143376182,646526501,-963959488,-523041615,1050883656,37158693,110048768,-150788804,145033,-567557236,1253366775,-1942609459,371309854,1757412359,853588263,-1070346453,521579251,383319016,-598546401,869974504,-566820883,-600375519,-633929951,-1326913503,-643635120,-956300360,-836419066,1105743912,-591140646,1342242744,625088255,0,0,0,1296388941,168113976,779576935,1464282670,27066426,29229436,106956359,113641090,28051044,-1189157935,-645003448,278396718,1321934592,1027029071,504760845,1342199480,4045722,347610624,-1650831360,503316541,1920267787,521062030,654114611,1946172800,375141,-218090562,-1190431578,-1070432257,-411783438,-4632341,-215961473,-1977200722,1959922197,-1178586312,-544505857,726642418,-1949332485,-997502725,1392509371,374429446,1037736528,-997523456,1392509371,3718926]},{"sector":13,"data":[179031,-1706027437,15834,113647451,-352321532,-2095083393,5182,-472169867,1358161,861535970,5809088,5783257,1358161,-2124808478,1056987174,1480491279,1963147008,1480514834,347689216,1509876224,1476851520,1958264576,-1564462334,233504772,288798,6947690,4032154,71204864,544473088,1326723,-401967872,343090060,-100663624,235956931,503463528,-1711267224,15794,1326723,-402295552,384499832,278144,1779397888,-295170553,510139915,1035115008,887619584,322091008,855955688,41920,-1610612061,-1013448700,1326723,-401574656,1048576136,1946157060,-387720443,-3988649,-1711253962,15825,71205059,41156608,245490651,1090304,104513587,57933828,-1545413733,144900108,10732288,35031296,196723456,892647424,-855630145,495534113,-2097003124,-203291449,-1106505030,2126449563,71204875,158597120,-1106801990,-2101409963,521018887,-1188744008,567083016,-1946426816,1075957206,567138187,196723487,624211968,503324351,567088581,-947699681,-1007361532,1511040,71204866,57933824,-1023226752,1511040,1137689348,1431312875,-1961038717,1993972716,37402624,-1994373497,508756550,-1962516795,1932002311,-1983609122,283838534,-326937264,-638809316,-610598794,508820450,-1912125256,-1967115304,-13499834,1963050998,1946265610,30375942,-1476360983,-385649662,-940178951,-1475578620,-2146929660,-471333681,-153490686,175442119,108267688]},{"sector":14,"data":[-385298560,512361148,-880803834,-52199232,-1021127690,527696296,138840912,1023927424,91554298,-343929768,138840846,1023621157,1968701696,-1694419966,-644095269,101253230,1528758280,1562166403,1975517097,1354979330,920423251,906250123,1527138185,46433112,1443026921,1465012563,-1962647925,-738786738,-511652470,-789983176,-154414103,1366606023,-2130159989,-167649038,544587970,18924279,-1024049291,-167217904,376768706,-2138033173,242488058,1947531904,-1876497655,17875703,-411033739,272010047,305543936,-402426624,-964428110,272009484,-153511168,32062683,63174145,1240138612,139889552,31519361,1958789878,281212681,-352094975,-619999180,-1125644684,-1876235520,1062539,931387,-1159134347,63668224,-604513893,272010028,238435072,-402426624,-293339542,272009484,214169088,-208974475,200337027,-619154186,-788510146,-387198485,786104439,-472842166,-880745519,-1959990525,989859894,1946160694,214663202,-1678255717,752613337,-1946756709,989859894,1962937910,-31922173,-1995641213,-1962930122,-226424746,-1024065056,-150243904,1963008194,281212441,1189806965,-2134209904,-994439199,2044908368,214169329,-494670731,-1948069881,-741110838,63108810,267068533,-775171696,-136733749,246775,-2134641804,1187382476,-644153342,1516175462,-379692199,-31130004,1593901544,1583044954,-2130841111,33556494,139365201,54059393,1946745219,284787469,-511702924,821658416,-940158091]},{"sector":15,"data":[-2145618752,915095527,909836304,57999378,-2080546328,914951366,-644153328,-1958945802,-2125395890,-2130444063,-1996421951,-1343748018,5302272,954303321,1946745216,284786696,-243260300,-1043758840,139364614,-352286232,139365165,20504961,16841089,2011693940,2156544,-864020245,-488924352,-774321703,-656553511,373218715,101358336,609812502,-45291011,-1693286693,-149270901,1954545601,424080926,-552307328,2128286318,2122554130,192151578,1077864833,-619033087,868422254,307136969,-1995157879,1317606990,441354520,-1957631509,-1071314874,32800769,1476444221,65536883,-50796288,1967178998,1087144028,1364612894,-488924333,1048827788,1946157076,1446939396,139365120,-444540533,-657620985,-2134842496,158646515,-2143755904,1992623305,-1981184502,2123175038,310282518,-1693038906,-971551095,-3466938,1499140702,-1692442786,1457885,369494683,1394524928,-990475341,-1288145660,46462602,-2001522315,729120936,-990475853,-1289456383,1963042945,-1467763938,-1290242812,1963501700,-1467632878,-1291029232,1965074566,-1467501818,-1207929536,-661780664,184549537,1962934790,1286902533,1536369101,7935,-1546692577,1009057798,71205119,141819904,-1694491997,1715929,-1023407453,-1023408479,104513587,192151556,373218715,379624192,188687360,620759046,144908287,2474752,71204876,527695872,171891099,244030208,-444596214,-1547629581,-644153318,-654304722,786013180,-1950154742,1358957070]},{"sector":16,"data":[183756160,187074789,-840411904,110058772,1726480394,2474752,71204876,678690816,171891099,244030208,-444596214,-1547629581,-644153318,-620750290,-1694492130,667353,-1962927455,-1023402986,659083,-203063215,646505738,-397082613,-1956834488,-388789310,915079193,909836304,57999374,-2080696856,914951406,110034960,-1950154742,151000590,134219790,-167769074,103713489,-1026719744,171959680,-1965951283,-150989010,1960837057,-1779854887,1352399870,-1957290411,142001644,209716362,-1991356736,-389019530,-388962096,405065974,-997841396,76127152,113491,-1678040853,-1573013424,-1678047509,1546827856,-1957290411,142001644,1988709966,1392781576,1481956147,678806587,620839051,-650301189,-1979222736,-264502720,1082857074,-16833279,1961024317,21007115,1960894269,-1878735357,1562336859,210554712,208538708,210373840,208669782,209849552,208014412,209980624,207883338,205917392,209063004,205786320,208931930,209456336,207752264,205655248,208800856,244911312,506334850,243080745,243863160,228069010,228724338,242355628,242355652,232263118,241700432,233049689,238554668,350686788,382147056,362944827,402332230,499849635,242359429,500439720,500899205,522525442,521215756,521543431,522198811,594939506,582755230,242361064,242355826,535498354,553722948,462032498,242359778,508759666,512695965,514465443,512695930,512695971,512695951,513154703]},{"sector":17,"data":[512695958,513613489,512695930,256450198,248516284,247467712,248516284,248385216,255200974,247205582,248516284,276369193,248516311,248975083,248516311,248385269,255200974,250285774,248516341,301469419,248516311,249958123,247926512,248385254,255200974,248975054,248516311,100929269,50414144,1797,0,-1073676288,256,0,1073741824,768,0,1073790976,-64896,-1,1073741823,0,-32896,32639,0,-32784,-1,32751,0,0,256,0,32768,-1316356096,-1561004438,-95952,1402863616,-683490715,56755,740491264,-1849594981,-31222,1686372352,-214697506,46340,0,0,98304,-1036713984,-626908824,117007,-1963065344,2018233627,119962,-256114688,992566295,47274,-140967936,-1702560817,-91616,2041315328,402117071,-20110,196608,-665158700,-1888920514,8388613,752307511,-690695944,12,1712839891,-2101691410,8388626,1582862795,-184121717,20,-2031812605,84017440,629881,1717764224,-1301247793,1034553,-90832896,218023750,1303735,-1848967040,-2037686696,1373446,262144,-821535950,-1504664375,65533,-708128306,-789534645,2,-500463201,-1672850776,5,1431323237,-1863325233,6,615336848,-1539054106,5,-2096103421,1326077496,258146,-1259929600]}]],[[{"sector":1,"data":[1368419614,388688,607846400,-1876927635,437328,1267728384,-437902163,369731,131072,-200992616,-227277060,5,350334216,-325370540,14,-1012703313,-34547638,20,2003763202,277559419,711335,-396558336,-1316840581,1220611,-2088894464,-132847863,1488685,196608,-1030129916,-1687070750,65534,-164540516,-560898507,8388612,2062175114,-1294743059,8,487139529,-1966808017,8388618,1991966722,39534192,364204,-278921088,533768499,564228,-1147797504,-186618749,639071,197591168,197921750,508890066,-974353578,1313736310,-955877751,1589676292,-942711521,-871640565,-83110389,1461585488,1397838422,1426254979,-1946358645,-976778285,1195840638,-1946268277,-792473383,65242051,-13712431,-1911843929,183176774,-1014047860,-745798421,1183630222,-1957172478,-1059484973,-477953301,1300973318,-1476448514,1358695286,1448549894,374559058,-1930654891,-976778278,227218558,-2147301501,-814536511,-745815410,1358635243,1448549894,374559058,-1930654891,-54489384,-947137653,1192525509,-2130817653,-976210711,-578107952,-786439293,-1476448541,-1031075882,1223422091,-259276749,-1912572413,149619270,-805058933,-259276149,1201145226,-1070387989,1979969675,38178304,-963966741,-1031024637,93057163,317409095,1195849099,-963965205,-1912580469,-259325370,-268189045,-1206616439,-661780664,1443527,-305127424,-305074736,-578097712,-166796413,141820353]},{"sector":2,"data":[647495470,11331848,14477395,-1898410917,272010176,-2080470272,1049169135,1206583446,856981129,122208192,-946937970,-1979705693,-789851939,-789851925,249791467,1946272246,-1744884217,1827342390,1912621288,-1774810820,79820288,1049166964,-1007288170,-2147257336,-1040841997,773551106,135698431,1062539,931387,199754613,216957941,1062537,-13749525,-351791465,-185014229,1445507,-1960711423,-1962930122,-2133488898,-225829662,-704452912,-97782222,933435,-184451080,17754307,46433117,1582979419,1483103,525833,787976,646631670,-864026618,1071939778,-789134326,1517194,534773673,1476556039,-128783921,-477898357,-1476448762,-645199802,772203395,139372543,-1946160152,989859894,1962937910,-193402877,-1995641213,-1023406026,-477898357,-1476448762,-645199786,772203395,140421119,442871,-1259797643,292284689,134660599,-243194764,-1040776701,292881923,-2130380415,113706868,12,995644611,-1586793020,1183383564,-1040727278,208932864,67158519,-739703947,280684816,67158519,-1712782475,260958479,-338633334,772727683,140945407,-338633334,772727683,141993983,-338633334,772727683,143042559,442871,451484789,82935825,442871,28840053,290777344,1946599926,-373279995,243470666,-1019215850,-343932742,8436254,-768402965,-351740229,-2016267499,150911991,-768406293,-351732037,-1143852283,1166674110,-790573045,189008608,65065368,175452888]},{"sector":3,"data":[-1962257358,1149962317,671034888,-695535733,-2013244952,-2084369835,67114510,-141884693,1445507,-1103238399,-231601882,-394271104,1963458587,243516170,-1107034090,-353695438,1445507,155106820,1445507,-1774286079,782577152,782577317,782577317,217023397,-1022562685,9846411,208992059,-1515870811,-276585051,216957708,185005763,-982249472,-1049045454,-963934485,79290251,2007495424,-336557308,-336360565,2093034375,-2030598392,-137886734,1037629400,796786755,1972064853,113928,41539122,361487863,-1962783349,2106262621,2028800774,71952643,-2097026429,-612171559,14648064,1426295017,-701345454,-1377268836,-1951543157,-661934648,-2013908051,1962281966,251560816,-318039428,-897383564,-1947563263,-1949594671,-2084555816,-445181714,695358324,2080833155,-1073048269,-864025740,-1966831103,-695560734,-846532214,-544543862,-997525366,-293346254,1947301640,-773467864,-774778414,1188090323,434893685,-973615481,57933887,-786379389,-774123032,-774188578,-1946885411,-1946711090,-3803144,-2096925633,1486684621,335749752,318917651,2081621084,-787451130,-774123041,-774188583,-2096925731,-1958739507,58583536,1276843051,73145090,1929804827,-134860006,-137103401,-137168943,-703334947,-569127405,-259260909,-1962760983,-192915216,-1695985536,-24488702,55767602,575684801,-1948568582,-1949594645,1958742788,185961228,-150571822,-1947694110,76240330,276086795,184702347,-150375214,331875298]},{"sector":4,"data":[13992922,184697995,-1961921344,1959922453,65206025,-2082860088,190316757,-919383871,-1073019765,1435177076,1959922436,65206025,-2081811496,1149960401,1958742786,39160592,158650891,-670833929,-779884013,71600896,259309579,-771025525,-487126668,-367798269,1476448643,860930827,184847323,-150309696,-402454939,-746337773,38046464,276086795,184833419,-150375214,333972450,13861834,184829067,-1961855808,-771030443,-487126668,-904665085,-1962880125,361432644,158650891,-402398473,-746337773,-2116711680,1480589285,860931339,1149981421,1958742786,107345674,-636237821,-1962879613,-1073019836,1435177076,1959922436,65206025,-2082860088,1149960405,39160582,158650891,-939269385,-712779245,-919383808,184829067,-150309696,-670890395,-779884013,105155328,184833419,-150375214,332923874,13730794,-150584181,-989657499,1566167315,-779355509,-661927029,1958742872,30245635,23193950,851516409,1448236530,113673047,-1190738045,-201523196,1583348903,-1377268836,-1951545205,-796152360,-141847891,-1526687553,866493861,192060927,-657331503,-640558127,1430642641,1719945,1459636968,1705671,1088946176,1021859584,954750720,-2147369728,-741219887,-758001455,-1732369806,106183424,1144720501,990344452,41222748,208866363,-1056194037,-1005927669,-393485262,1532614539,1021927007,-1640592639,1006580480,191001558,990148050,-146704400,-1756146954,-175379149,184588449,-150702912,1358072807]},{"sector":5,"data":[184588961,-150571840,334496743,10265066,141869067,-402397193,-1845439869,1709707,466824027,-585409586,-1779950755,1939050898,235097875,504561816,101908634,370344092,-311230306,237719491,505086104,102432922,235077788,504561818,-1038942052,9967243,-1328944139,1979648772,284066591,208980222,-645137525,-712258933,-370414285,-1962334530,1476433470,-70653603,-16726025,-293397643,-527788280,-74791030,-376775286,-225784182,-729115241,-1070407542,13105045,1315337600,-757996079,-741223983,-940058671,-277577728,-720677909,-854930933,-921965686,243483764,-803209194,-803507480,-2129693976,2004877561,-165187043,578027975,1347949803,443737296,-389018389,1347949682,41084112,-947909397,14123777,12518515,-315406720,-896805493,-1410737782,761856,1567811792,-1569462064,180619925,-2132374846,-427816988,-318007816,243523700,-803209194,-803507480,-2129693976,1996751101,-164859363,661915846,1347949803,527623376,-389018389,1347950962,41084112,-315420181,319342208,333255629,-1090227203,860258304,-338545939,199807047,-2092862227,536876558,460515536,259188944,-2147418751,745676151,1946272502,1477765927,1927598160,-804459745,1478062824,1927598160,856812290,29524973,-585904877,74710291,1182793919,-1761569119,1300829577,73238786,1476806025,-2132508579,-2130025080,2101346558,33456408,-1995931968,1170606197,-1094516725,1625819430,174426362,370049987,195037184,-790048768]},{"sector":6,"data":[1927860456,1927860238,154320418,-1996864792,-792524187,-2096467224,536876558,1971373302,155893480,-1996870936,-2084369819,536876558,1954596086,652930004,653822893,-774862163,-805231424,-1950054712,989859894,1962938934,-316610557,-1995651453,-2147479498,-164462390,561315644,863240252,738878600,1149868159,192186376,-1996008312,-1070398084,-1996209016,76087876,174360771,-1237319496,-2131066878,-15999883,-830416779,-1999377663,-92272028,185365888,-1207405057,-830423039,-2084574463,33560078,1083735852,-790113976,2043808466,-156505097,125108929,-661929933,-167733015,309658049,-1979360117,1686767428,-1260334838,-371666433,1686765697,10938634,-385839383,-24444712,1062539,-1979038581,-922088628,1284161909,138709770,2097184829,-8307233,2131025278,-2046335862,-790572832,-1948724767,39062292,-164440566,184900747,930349908,1445507,185502240,-789983232,1927925993,1927925804,16417074,1998353024,29619717,-796256908,352437123,-802029568,-796194439,-25107759,-1827244801,-1413248085,1927925955,2028210934,183561181,-336824092,370050005,243935232,-372244469,-372184624,-372238222,-1959906958,-2146871266,-66420508,156672302,-1413248085,-372193557,-990509710,786658688,157032075,176219264,-1413248281,156934446,-156636245,-898334524,243525099,-147849194,-8256040,2097158205,344690999,-1979558901,-1949955390,1552614484,1958742534,30048259,-623776815,-897580173,-2030706175,174361317]},{"sector":7,"data":[-1971264384,-1963226425,854756062,-14292526,-661929933,-1946201879,272010238,305543936,-402426624,-964433074,272009484,654214912,652774317,651201453,650677165,-1946253395,-773467688,-774778414,-773467693,-774778414,-773467693,-774778414,-2134146861,-1996006264,1418265932,23890179,-905196277,-427756406,175409280,881391154,-780147584,-773271064,1038668264,259262463,1946157117,67054877,-2012724087,-1195177100,45498368,1971387264,1976110063,30310635,-75438357,185300352,-1207470647,28753921,243521259,755105814,747308031,-1962781557,1552614476,-783794170,-774712859,198431185,-1980532261,39094572,-1996206967,-164493732,-1040800021,856257794,-1414812736,18475435,1963049462,22317885,-1962713973,1284113732,-773206009,-774123048,-773205798,-774123048,-773205798,-774123048,-1951690022,-1031033917,175934123,-1199511680,-418742288,-374619894,1552548055,-2132574198,-385815063,183042255,-1952453887,272010238,189565440,-243939062,-1962259318,-41875348,-545455104,-66978431,76209278,167859339,-2147257152,-1024065078,-2091748345,536876558,-805303392,-790048536,-801475864,-164597016,963904706,1946927862,56396596,-1979366261,-511703220,146965375,352375683,-780140544,-2144962304,-2126151711,2080637181,-799806692,-338267167,1927860232,1927401476,56396748,-1979366261,-511703220,-773205889,-774123048,-773205798,-774123048,-773205798,-774123048,-1951690022,-1031033917,96832427,-523172865]},{"sector":8,"data":[-523116335,-1056251695,-2146808694,-519405343,-276577365,370049798,1552558080,-2132574198,724618,-372184624,343075280,494070224,772366014,782577317,179121829,-773084189,74639824,-394929398,-351705410,1960512230,-2081035297,805312014,67093889,-846471689,-1979399805,-427816332,122980992,-1962582901,1149961068,-773140479,-773991973,-1409883432,-1951677045,-1031033917,646376363,200838061,858879231,-1948414995,1030355,1062539,1193531,-873987211,214336488,1062537,1284032818,-2133882101,41517285,1820909559,39446794,1062539,1193531,-1545075851,214336488,1062537,76136499,-1996340087,1149830212,138725126,1686683649,-2013154294,1455623012,1062539,34292982,1156986997,779419915,-2096608117,712970233,-1962644341,344655484,-402498421,-620035542,1686771829,2044987914,1960507140,2025992964,-1031053559,-768359509,243529707,-1174339562,-303333376,-393499354,-125063898,1031062795,-745809101,-1962926152,989859894,1962938934,-401283069,-1995651453,838864950,189565129,-444543093,-2096334464,-175898633,29721599,-2013210749,-16053652,-1796667788,-13047551,-315359861,-385871827,-397016697,-1956708344,-1014256702,915129259,1156972560,1098187275,17515766,1284190837,536445704,1821062015,108825348,1552618635,24963074,561376523,168453258,-2096334364,-226230285,29524991,855692163,-1022986045,-628370893,1960446915,370050038,12255488,-1009634432,-796152538,-661934810]},{"sector":9,"data":[-393499354,-125063898,-1022638837,1064616459,-1962917960,989859894,1962938934,-413865981,-1995651453,838864950,189565129,-444543093,-402425472,1820852369,1979648778,1978469135,-1946449141,870003690,2108882,-385822999,-396951950,-1835597810,-1014256801,-1413117013,-1012153717,1062539,34292982,1156992885,896860427,-2096608117,1098858489,-1962644341,344655484,-402498421,1686765754,2044987914,3401731,460900147,931387,-471334027,216957926,1062537,872362947,-1948414995,199617493,201001981,-352160262,370050011,12517632,-135992448,-136972329,-170199085,-2097097853,-679280427,915129088,1284177936,1073316616,1821057149,108825348,1552618635,5302274,-955531213,-1022638837,125092363,-402636872,-943521769,-1073674172,1149830281,71600386,-972667767,-352253116,-775343127,-774647326,1926746581,-772480510,-773991969,64672219,138709441,1552487561,74221826,-1022985079,-377241549,1239021375,729047420,2101410179,821658459,-754248834,41211147,-678756084,-276037837,-377233525,-772812496,-774123043,-805145638,-772611376,-773991953,-790965797,1958742996,370049830,116793344,1963196427,185005609,829753344,-534593014,192146640,-1031552973,332927745,-1007152152,-466484816,-276037837,-678699125,116836331,1963458571,172291818,-338070144,172291810,-337873536,-1946252337,989859894,1962938934,-443488253,-1995651453,-2030038986,-1933538050,-1899852070,-1515870760,-1933538139,-1899852070]},{"sector":10,"data":[-2085804328,-142145297,-427756406,175409280,847242368,2147433974,4001652,757429248,1149845503,192186376,1073789123,2088829622,1971322886,74222573,184708107,-2132576980,-555023922,184970379,1812661356,1965820674,-1073629177,-890568266,1445507,-1980943568,40667436,-1996198775,-437582228,1963050998,-1515870945,2147465381,-1951668726,989859894,1962937910,-453187581,-1995641213,-1023406026,-1414807501,-2147436373,2147465387,-1951668726,989859894,1962937910,-455546877,-1995641213,-1023406026,1963116534,-1413467213,-1414812757,1062539,931387,-1209531531,216957924,1062537,-1946252349,-1962930122,-16447420,175409727,176219776,192711398,-998899958,-1515870811,149849003,931387,-2081946763,216957924,1062537,272010179,174358528,915129215,1954545680,650346506,697261,-1023408477,-1962932575,-1581011970,-24444916,915129259,-24444912,-1324552317,138775055,-936767708,-754563701,172853992,41535754,1141102839,1024356360,192757760,2126512445,138709263,-1207338557,1153843200,-236256501,-960495176,-352253116,113384,-768408853,1443575,41164800,1149958023,174426634,1552603955,-790376437,190647011,-13704240,839423655,172390624,-2029749824,-1948285193,1161496644,2132442120,309535,-2096707965,-201521465,158530727,113643127,-348127219,218547776,971702528,853702,-969741568,1090522374,116796395,1947205643,2021663986,-152704032,268438278,-461314700,-338069376]},{"sector":11,"data":[185005776,-680259584,-461316046,-340036480,1959922652,272010004,238435072,-402426624,-293346462,272009484,915129088,1149960208,-775649782,-1157159744,-684848866,-1023406686,1062539,604652682,-1948568704,190614227,-13704239,-1157056857,485165506,-351678789,165329687,-423947541,-1156715767,149621234,-351703365,159038211,1062539,1193531,-270007435,214336482,1062537,1049359243,-1523711984,-1523669714,-1523669714,-389831378,74706417,-303961766,-964429941,271989516,-402096384,-947654730,-2081428724,1049169135,-138215408,1947992257,-1898410981,-305928000,-379976589,112848307,-1962636544,478784285,-169720250,-307500861,-379976589,915139995,909836304,57999378,-2082309656,914951366,-661913584,-142098290,-1007722008,29409783,2129137780,1510241261,-1930596631,-389902630,-1072959670,915084404,909836304,57999374,-2082319896,914951406,1438842896,1064587,9846409,113765683,162,-293341301,138775308,-1559739349,361431200,-1962783349,1166738525,-1962509050,1122699381,105134992,309798258,1912888379,990607134,393347660,339412087,-1142419086,-1606515968,460587008,1962969064,-2095780904,41022,-1947726476,10545152,1962963944,-1962873916,2106263668,-527788278,-2084205744,772537573,646578338,-461373427,1963043067,-35356667,-864025621,1963108354,1961691913,-1075544031,-864025621,1963239488,1961691913,-18579424,-864025621,220628993,-370330880,228651625,1963108352]},{"sector":12,"data":[-1075544059,-864025621,892992,91570344,-335616896,30179548,-990455829,-2096335488,41022,65537396,-1007686912,-774774063,-791555119,10489599,24307153,-1576613949,-1023409920,1276843051,73145090,1158038555,272010179,2942976,1943851203,1926287392,761874,460656808,-990508565,-789940990,-1961856292,155107070,-1947347224,370049527,-1023377152,-1458944885,-562756736,4898646,673223,138709760,106728264,-1962652533,27787860,-784332940,-774254101,-1980182054,-75298747,-117214466,-1202570773,-470306699,56088765,-1123847190,-745799681,-168312781,-573446141,-1047800949,335148535,-1948397080,-138310701,1492159477,-578030089,-1048328053,-773975295,-1982213669,1300825693,38127364,96927744,-141885440,-1774286497,-322312192,-402634050,1308617939,-1007187192,9092951,-1523669714,-1523669714,-1523669714,1593871038,-336774461,-1899393962,172788697,645980544,-2146806389,-784695070,1443251573,2043218519,520494600,-2013821177,31817930,973203072,170423797,-1949665299,-1048508340,-1960427521,-1031731115,-902086657,-964488843,113738502,125151229,-1492879961,-56163979,-1945674145,-1009152319,-402620737,1448602834,7520083,-1980970520,-402614722,777972776,-396389971,1049226399,1448149142,-402623810,-2090931180,-397013818,552140630,-497459476,1591643113,-35105962,-964469013,-1850921460,-74754213,1374449384,7519830,9846409,1592523496,-964472487,1925076492,-338237440,468211294]},{"sector":13,"data":[-337254145,-371041954,-1017120885,1062539,1442848488,1062539,1193531,1407714165,214336479,1062537,1064587,-331552674,167689155,-1006674456,1064587,1150023563,217023242,-1962927640,-1962930122,989859894,1962937910,-550705149,-1995641213,-1023406026,9846409,-1326746904,159825408,1946076904,-1074296010,-202899382,-1833019669,-23271415,9846409,-1091875864,-1880618630,-348264194,-24422562,-402025794,1049230978,1223164054,1038638827,1342288107,1656485771,-18552822,9846409,1491804904,158646282,-402022722,619249242,915129323,31981584,-759446784,-20912118,-1980266665,-402614722,-141825297,-1774286497,-353245184,-1962392065,1049347063,-141885424,-2096479093,434638063,272009984,272009984,238435072,-402426624,-293347722,272009484,-1957248256,5947383,-1947513368,-1084793090,1139277926,140348395,542151,162184704,2013134568,139329284,2059293507,-36116471,9846409,-1947565336,1398758391,1526753768,-619986893,-796182156,-2135817095,280615927,-472823552,-782763149,6733787,-1951683669,-1047811133,-1413313621,-1107273025,1049165926,1239941270,1610058730,9846409,-1008052504,1064587,1150023563,217023242,-1962927640,-1962930122,989859894,1962937910,-573511677,-1995641213,-1023406026,4898647,1458219496,-402016578,1049230674,417857686,233332458,138805226,515635083,-38475765,9846409,-1947602200,1049190391,-504889194,50153]},{"sector":14,"data":[0,0,236847104,889370655,512303565,109847730,314188980,620935205,599269837,-1994273483,-1943751138,-1171998714,599270650,522308901,1380982467,774177464,615651013,1482301901,1381024543,-1447906,-1240021714,623097892,1511989709,788475480,781198518,615530205,244049,777649890,615515894,-402361216,785374522,615657215,0,0,0,10747904,21757952,-1325308928,1377850189,1412263541,543518057,1919052108,544830049,1866670125,1769109872,544499815,539583272,943208753,1766662188,1936683619,544499311,1886547779,1663369233,1663369274,539828282,3826469,766640200,11534346,538988361,1291853856,1397703763,1107296288,1342195200,1644190464,0,131328,1162096384,4674882,788546607,1196380752,5062994,788549679,1396788291,1497778515,4402944,4669231,852146,-80,-1308621569,-1342175232,-1,11665412,-5242872,11534344,-5242872,16777215,0,168624128,0,335546880,1092923904,1397600256,1397703712,1919243808,1852795251,808334624,1126703152,1886339881,1734963833,824210536,758200377,825833777,1667845408,1869836146,1126200422,544240239,1701013836,1684370286,1952533792,1634300517,539828332,1886351952,2037674597,543584032,1919117645,1718580079,1816207476,1769087084,1937008743,1936028192,1702261349,1397760100,861341266,868323017,305051903,801964210,11273868,11157129]},{"sector":15,"data":[-1307431240,-1943024382,-1996442618,-1207913922,78778926,109850573,1049166020,783810754,-855199214,-1475965905,-1505851136,307468800,109840223,1049165988,109838498,1049166016,1956249790,-1945673966,-1996441594,-1207912898,145887790,109850573,1049166028,113705162,168624353,19531462,-435763420,-956301312,167831558,274438656,109840223,1049166032,781844686,-1945673966,-1996434426,-402599362,786956313,4319232,5302353,1599670386,1482381831,-998046485,1355544844,12066390,505531747,141696775,14300809,14419596,-1195157410,12272640,-841862400,31883297,-1207841152,567100417,1140897987,855638459,-2145268270,28836302,-1021194940,567095476,1962935613,418117635,1929380413,-17659,45810667,112640,-1308622663,-100682240,1460031683,49060437,242354015,-117440896,520488052,520487659,1599993739,1456166919,871773011,-98103,-1128003467,-1014234930,-956946965,-1006078974,-1946111300,1025043395,225574931,1996498749,-1094925304,-339506176,-1564687354,-2084336640,376831995,1979711104,216791299,-1207900509,29229055,-118082816,-75297557,-402426880,-964493228,108197892,41273611,-2137219093,695534078,105993554,12079191,1009765637,158685439,45668491,-349188859,91486465,-346486945,113541894,1560284392,-821957798,-268274,1472945755,-18096,-1359822798,1481232887,-75250849,-2095221503,-16725442,-12773772,1342928383,-16718175,1476446750,520029419,451608778]},{"sector":16,"data":[-25114317,637957375,-352105078,892872201,-1977219979,-947715251,729020676,1959332856,-98279,992347508,637790981,41223483,1950943723,80184069,1928979435,-98294,637564408,1912765699,653079046,-968422006,57350,1364414659,1376147285,512354699,914882782,-325451549,185032450,186414281,-402295315,65732646,1912713448,99113480,-346093823,113541892,117763065,1928944223,1532583174,-2096829608,-872871740,-1957538992,-2097095138,91619323,-352310040,7858179,1504972659,-855637829,-2082196959,-336001340,-294128,-1053095052,-1326971020,113541888,1510175481,516118619,-108847354,-1273268991,361375234,-1977671219,11659458,1931413022,1435117063,-132002559,45354987,158648587,-854226394,1967736609,-1021314829,1392922711,119470731,447797643,1974399740,1272523523,123456395,868441944,1959332800,520494671,-678739788,1963063683,522308904,92939856,1476418280,1931413022,1085601798,-1675506366,440238118,-1047854475,248447467,-335545368,-397322982,-376701018,1931595097,990636802,990344392,41285864,526238091,2603203,-1258289989,-25115903,-166628097,209027270,1049429790,45678817,-16717824,-1000929597,184605246,639071487,-134201981,975573108,638022149,1996571962,1195899137,123726315,-469332029,-1814351104,-399050862,922194688,-92077848,-2147125751,65746882,1378927232,1975520065,1960512260,66683705,2088766837,91565066,15808255,-2094863551,225773305]},{"sector":17,"data":[738884736,922682741,-348061455,167346960,2088766325,91565066,15808255,-768371903,-768366613,922730547,868417764,1959332818,-1339706335,624436736,942017141,74711397,242598970,-402290138,24379219,1229080391,-2024348811,1961692106,1048792371,1962934502,105155115,975581188,41222469,809246443,-771029899,872612980,1048635371,1979646179,1229079048,-347123895,-17917,-386323625,1499463178,2146108275,-896839280,425088,-922022540,1229522548,32196423,185658206,1577285065,-108852757,855799295,1962871753,106386774,-2083966127,58942,1156984181,141889287,-402490172,451608908,218580214,1156975732,108269063,201802998,2093222005,22734850,1390936299,-402396416,124911648,1566508889,-2096829602,-2080830780,58942,57804149,-939584279,58886,-768359680,-956242271,167831558,-23730176,-360216488,-75283712,-402426560,-906100528,230223477,-360216310,-398245120,868417728,108822747,-955157248,536930951,-968670419,536930951,10938435,870003549,-535918382,155486720,511099194,-259342038,-2147007242,1149899892,-360216566,-75283712,-402426560,-822214532,2088823925,225705992,1929923640,139209224,1284166026,1959332616,121959972,-166955761,1947207492,92939782,1476520775,15370120,1090224963,1105724277,1976172032,121960156,169375104,-1978370826,-2021127612,-2092760854,58015995,-33545240,-152275506,1963919172,121959944,-352160752,1959922188,-469332216]}],[{"sector":1,"data":[1976237568,190712,106021717,-1962467753,-1915014197,-402593218,91421826,-346486945,113541892,-161627143,1966081860,92939794,1760051536,637957117,1342260618,638446584,-1073085046,1095173236,-114559509,861782869,-943705134,268494854,-153406720,1965033284,92939812,218580214,-2136470155,608371572,-402208897,-167769600,1963853636,-402209018,-352318976,121960020,640054544,1156973963,259329287,1954596086,-461356284,-402208897,-167769600,1963853636,-402209018,-352318976,93005352,39160614,218580214,-956952715,1124365440,-947919232,167831558,121959936,-955878130,167831558,-52041728,91544331,766693939,-3975854,20119557,167824384,184606720,201383680,218171904,234960128,251746048,268531968,285315584,302100736,318887168,335672832,352456960,369242624,386025984,402809088,419596544,436377344,453159680,469942016,486719232,503497216,520276736,537057024,553838848,570621440,587398912,604177920,620956672,637734912,654512896,671291392,755178752,939728640,956507392,990062848,1006841088,1023623424,1057181184,1073964800,1090755840,1107547136,1124340480,1141133824,1157927168,1174718208,738511616,755304961,772097537,788883969,805679873,386276865,1868787273,1667592818,1329864820,1702240339,1869181810,34213230,539888141,1684291872,1936942450,538976288,1835093536,-1308067995,-1342174688,1702521171,538976288,1411391520,543518841,539888141]},{"sector":2,"data":[757935392,757935405,538976288,-1308614368,-1342175187,538976288,757935392,539831597,538976288,757935405,168635693,1210064933,1818521185,538976357,1159733280,1310741325,543518049,538976288,2053722912,538976357,539298317,757935392,757935405,538976288,-1308603104,-1342175187,538976288,757935392,539831597,470420768,824516640,538976288,841293856,538976288,540222752,538976288,168637477,-1308611294,-1342173152,538980645,540157216,538976288,540222752,321325581,304132608,824553472,548536322,632291342,168632370,540091684,1702132066,1869881459,543973748,1986948963,1769238117,1818324591,1835363616,226062959,824516106,1954112032,1629516645,1818845558,1701601889,544175136,1143821133,168645455,540091684,1735549292,544502629,1667594341,1650553973,1881171308,1919381362,1931504993,224754281,824515338,1954112032,1948283749,1818326127,1397572896,1835363616,226062959,824515082,1954112032,1713402725,543516018,542330181,1869440365,168655218,540091691,1702132066,1869881459,543973748,1953394531,1869965161,1696625525,1852142712,543450468,1869440365,168655218,1953384721,1970434661,1444967536,1869898597,1377239154,1126190415,1970105711,1633905006,1852795252,1701986592,1142358113,1126191951,1970105711,1633905006,1852795252,1701986592,1224933473,1292238927,1397703763,2035485696,1835365491,1952531488,1393492065,1702130553,1917853805,1634887535,1393885293,1702130553]},{"sector":3,"data":[1698963565,1701013878,1769096224,7497078,1936607512,1819042164,1142973541,1667855973,1917067365,1919252073,824509440,621412410,757086769,976364832,1430391040,1380271686,117456211,1162627398,100678995,1396851526,1393033277,1262698836,134233427,1230390596,4015427,1397115141,1225326653,1096045390,4017228,1296189703,5196098,1296189703,5459780,1852785431,1953391990,1634627433,1699553388,2037542765,168639008,1886410000,1293972069,1919905125,221913209,1867783178,543973748,1163019808,540680261,824516640,538976288,540157216,540609037,1835093536,-1308487067,-1342173152,1702521171,544106784,1768121668,543973741,538976288,1767055392,1763730810,1699225710,973737336,766640164,548405261,538976288,-1308621280,-1342171859,52437024,221098496,168669184,1953453122,1646292065,1936028793,1635148064,1650551913,1948280172,1919950959,1634887535,673215341,1986948931,1769238117,1818324591,1886410027,539587173,622862394,622862385,1107954994,1735549260,544502629,1667594341,1650553973,1881171308,1919381362,1931504993,543521385,-1308596422,-1342170848,538980645,168636965,1918979138,1953719655,1635148064,1650551913,1965057388,1919250544,1835363616,544830063,1668246626,792338539,337687040,824553472,841293856,1413024269,1830842223,543712117,1830839919,1919905125,1919295609,1701668705,1952543854,997093225,1296387360,541273888,1852727651,1646294127,1868832869,168650094]},{"sector":4,"data":[1398362887,5064020,1953453122,1646292065,1936028793,1635148064,1650551913,1948280172,1919950959,1634887535,975205229,548536430,632291351,622862385,1057623346,1886611780,1937334636,1701344288,1869439264,544501365,1965057647,543450483,543452769,1701147238,1835363616,544830063,2032168553,544372079,1953724787,221146469,654970122,541934925,1380986715,1095911247,545005645,1111835695,2082490197,1279471392,1230197569,224221510,1275727114,1345265696,1380405074,1864387905,1345265778,1142956064,1819308905,544438625,1952543859,1864397685,1919950950,1634887535,1663071085,1701999221,2037150830,1634692128,543450468,1830841961,1919905125,168636025,790634606,1430406468,1919885383,541339424,538976288,1886611780,1937334636,1635021600,544437620,1881171567,1919381362,745762145,1953392928,1634628197,1919164524,1919252073,1629498483,1864393838,1919248500,17500685,1253554,1718512048,1634562671,1852795252,-871756498,1127161888,1397965132,542721609,790655599,1126178883,1936941420,1701406313,1919950963,1634887535,1646293869,1701650553,2037542765,1634956576,539911527,1953720652,1752440947,1769152613,1864394106,1510608230,320909824,1919987712,1634887535,539784045,1987015280,1936024681,1931501856,1634561397,1864399218,1701650534,2037542765,544106784,744846197,1684955424,1936288800,168653684,548536378,1823473683,1701278305,1830843507,1919905125,1818370169,543908719,1767994977]},{"sector":5,"data":[1818386796,168636005,1049429774,-1048508252,-3471427,688979973,704660480,721439744,738219008,771773184,788555776,805344256,822124288,838903552,855682048,872461568,889239296,906023680,922811392,973151488,1040271872,-1878949632,184648449,1414742348,1447645764,184565061,766640257,11534346,402661378,538976288,540091680,538976288,540157216,538976288,168637221,540091695,1702132066,1986076787,1634494817,543517794,1953394531,1869965161,1696625525,1852142712,543450468,1869440365,168655218,1937330958,544040308,1667331155,184578923,1176513837,543516018,134229293,1735357008,7168370,1986938124,1852797545,1953391981,1631847680,520118644,1646276901,1936028793,1635148064,1650551913,1478518124,1830835021,1919905125,738856313,548536485,917504011,543312692,1751607624,1835355424,544830063,1634038337,1635148064,1650551913,168650092,-1308614108,-1342174432,1751607624,1835355424,544830063,1634038337,544106784,224752501,1716234,729266,760434096,542330692,1769170290,1953391972,544106784,1751607624,1835355424,544830063,1634038337,641337869,186692096,1397600256,1397703725,1936028192,1852138601,1852383348,1297044000,1769174304,1210083182,543713129,1869440333,1092647282,224486770,1380320522,17733,1049429774,-1048506266,30081486,-16711675,285213951,1702131781,1684366446,1920091424,622883439,-1928917455,-2095957698,46866625,-16711675,234882303]},{"sector":6,"data":[1936875856,1917132901,544370546,118370597,308100749,-887242365,1475119957,142510934,1342850443,1569392011,72190722,-1962519157,1432291445,1593942938,-1957208825,92867198,-1996333687,1435042893,141920518,-1983608161,-1990718395,1599998533,-883038837,1475119957,142510934,1342850443,1569392011,72190722,-1962519157,1432291445,1594102426,-1957208825,92867198,-1996333687,1435042893,141920518,-1983608161,-1990718395,1599998533,-883038837,1475119957,142510934,1342850443,1569392011,72190722,-1962519157,1432291445,1594019482,-1957208825,-1940911490,106793989,-1957208232,92867710,-1996333687,1435042893,141920518,-1983608161,-1990718395,1599998533,-883038837,11665758,-5242722,-1308622081,-1342167040,255,65280,1566244864,725499004,2243389,-953286656,1270534,243871232,-1993468947,773058342,334575241,243871484,-953281706,1267718,113716736,4971,1543948078,771751955,338167495,-953262757,2081696262,113716796,725488684,772196142,1362836756,-1185523886,-1404960769,1963693032,243871481,1449006129,823036718,-2133118188,41230908,-620047370,76230773,1948269885,1025522959,154995316,1023767613,443877693,1178404038,1364655755,119408198,1493673203,-4764066,823066414,1229342996,173982079,1605662207,333994330,-1206684917,643039231,975576459,-1207733489,-379912190,-1993473757,1393780022,512578903,-164752531,538141702,-391363723,1014107043,1946879976,188278839]},{"sector":7,"data":[-164751243,538141702,-806877835,774302474,325322486,1310618689,-2010244117,1966947335,243281414,1124143972,1930140904,-2010207035,-1091878137,914959950,-970058918,-1993474041,638806302,915217803,-2144464019,913583932,574390318,-164755340,18048006,-1977199499,-466484921,1443248430,772961043,-787261791,54739936,529213144,-352286488,113716841,70488,-1977196309,-466484921,65065280,260712152,-921965262,1396903796,-400585946,1935343880,-498908351,113716978,201560,-1977207573,-466484921,65065280,126494424,-523115470,651690816,-315486326,259311883,-1960422589,6154271,1124823899,787669571,324536007,1599930372,244002395,-1590815914,-1959914664,773020214,324802187,1579059758,1355020307,-1459123418,91553794,1443299118,1015033363,-1457949440,158662657,1476839214,-352321005,61886478,-521601100,65755136,1476485096,243281603,-402123932,611450939,1680244782,777058067,722692001,100740806,777524069,325531275,3964974,837290356,351008769,772926457,324536007,-1336934391,-385895421,-128450409,642864579,839405450,1959332845,158305549,1929671400,976904,-335939870,780742150,1509430123,-2144943267,1946157182,-152353533,-2144419003,269706254,1929365224,645934666,1357845348,325558574,19842603,1477666054,1731627822,1015033363,774272256,989822080,-953284235,152262662,639625984,1946173315,133637657,309657601,1476839214,-352321005,9889801,-116528136]},{"sector":8,"data":[-1336931605,-385895421,-128450557,-1960421437,-1993472897,638803006,-2010774136,776995173,638806945,1476543881,175440188,72714534,105744678,37509867,-1993996683,1357579349,-395049156,-462157764,108332604,72714278,71057131,-1590816907,641733477,637814153,-351904372,1971922475,1301030404,-165261306,1946223175,-352014332,1207313929,91488770,1105724080,-165259263,1947206215,17885187,-970013857,1323782,126559824,410370059,1465013072,1476839214,-1275066093,-402411265,1516240731,1206605915,1946419369,113716754,4952,772167400,324550275,-1456442103,309596160,1476839214,-402653165,-2094136382,152262718,11082101,773288968,324536007,-790102016,1048784388,1963529048,-385619198,11075717,772961408,324536007,1189609472,1048784385,1963529048,1073785198,-953281932,1267718,17557504,1480491822,1467287827,1946222761,113716757,4952,-402205720,-2094135466,152262718,11091317,772961282,324536007,-1175977984,1048784390,1963529048,8431910,-953281932,1267718,103540736,1480491822,259328275,1948254377,113716746,4952,771886568,338902656,772764929,324550275,772240640,324536007,-1017642999,-1976674736,1958742532,1966750746,2088775181,108331009,312878,182979051,1174500104,1591733062,1381417816,-1976643446,133687300,-1073083278,216534132,76033536,1178993131,1583016171,1937784003,1918974988,2004499525,-337697727,1460032317,337854093,1946483328]},{"sector":9,"data":[507415812,356003348,1364203380,-1274605998,-1144878491,96075775,-17920,1499079117,1569402456,1166945793,742605571,1607935616,1354980103,1678671918,-2144436205,-49060826,1006930478,1007318059,772240685,325324416,48776706,1354979328,861295185,1406284745,168069678,-398297920,963772700,-393485262,-774774063,1912667624,-1948611796,-773664319,15788241,-489611406,-404172335,51802624,-389540909,225575134,-779889405,13953024,-347733134,-1192666181,-164734208,34825222,-772339084,-1031548169,13730561,108497702,1006930470,-1341688576,-369118207,642121886,3933322,776364148,325322486,639530368,1912818747,637957942,1912689723,1278944814,1915254535,1413162554,-350193915,1278944818,2132311043,1413162502,638614529,2131184699,639400970,2131055675,-2095781118,-922875450,-953240203,101931014,-1274957824,-1338119169,613033473,162805483,54584566,76162800,1278944838,637957379,1946244155,96895970,-311047938,1476839214,-1342175469,-335563775,113716747,594776,-4979792,1593614056,-1017620134,116797084,1963070308,-1648124670,-1007156624,809288697,960235634,808191095,-1007041544,1465013072,109021990,168135206,-1274776128,1011674111,1195341059,-1274705370,1088747017,-1977157629,-167398395,-134004508,1191545382,764094023,1929392872,63406866,-243939074,1476839214,-1275066349,638905343,-1325439606,361440770,-953283605,152262662,-1325419520,-65673213,1482381919,1381322947]},{"sector":10,"data":[771928662,-1092090742,-398691835,-164692521,135488518,1027345780,-2144985227,1962934654,773057393,325322486,1007580176,638219578,32384,-347710347,1178216028,169702656,1179808960,638839621,1962952250,-1976678843,975586564,980746310,-1477753530,1678177838,259276819,38270758,125042720,8290342,639792128,1050615,977016948,-2144990859,1962934398,1007610637,638022912,973110912,-336002188,914959878,1593316199,-1017619110,1448235344,-1427614125,-953262592,1316358,113716736,5144,436651822,-402653164,410124461,337027886,443865866,1912643816,413347438,1960512020,9693197,-1557241486,-620096486,-1959896715,-2095844322,578028283,337027374,1198908426,-1590769526,-469101544,-393593483,437685038,33260308,-377093515,-1959912981,773068310,169089185,-1977584156,446770888,1977879060,-2081912298,74671354,124568193,-4956581,-790100048,1527835642,-1325419426,-87693309,1476839214,1509951763,-1916577703,773059638,1962884227,504359682,521031762,-1959264072,1478610390,1371742042,784937810,-1073085302,-2144453516,1307454,-75493516,1006925057,1009808442,-349408210,1949121548,1949252646,1949187106,-35198946,11804274,703121,-770972937,-1056763531,1183911538,-661996053,1174793208,-117314568,1499120011,1381060803,-396995754,-164692091,1577128260,31982453,113716737,5142,403097390,771751956,337249991,-953286656,1317894,113651200,-1291774989,-9443327]},{"sector":11,"data":[-1557242510,-620096490,1659395956,777024255,169089187,-1286441765,-11278334,-1557249678,-620096486,-164743563,34824966,-1959904395,-2146215370,1965883260,-12270032,113716782,4963,1661894702,-1959919085,773057806,334440075,-248083666,-154081005,1929318632,480456287,1977289236,379661911,1977879060,116797007,1946227555,1997290504,839021891,116797120,1946424164,1946958860,1913390088,1998076975,785418795,169089185,-1977518620,446770928,1977879060,784894487,169090209,-1978829340,-1268884504,-402083585,283900239,-4956581,1156055984,113716985,594776,-217659858,1499070483,1448133464,1174702638,-126500854,-29062610,1882988556,1631328628,1832656244,776873077,217990282,1953512480,1952529414,773057290,325324416,772205316,325258880,1153838593,1482555646,1448300739,1696500526,675250195,-466460811,-773322870,1011708929,-33262296,1011184324,-33131223,1950184140,1965177891,76033548,-1947712698,-349343232,40888335,-2010249357,-1975302652,76033543,-991214778,772048942,83142,-1962932282,1676166899,914959873,283841370,1765182254,80096787,113716736,594776,78708660,1961384798,1354979576,-1959897517,-1978440418,1965177863,803750689,772960768,83142,-398003317,-1993473758,-351053258,915090960,-970058903,-953286652,152262662,-1325419520,-396665335,-1017579469,-402158768,611582240,225780284,1965227136,76033566,-347913402,30402792,-2010249357,-1975302652]},{"sector":12,"data":[76033543,-706002106,772140025,-134216506,1464910680,1049308758,-1976691867,1958742532,6285331,-970054539,18100998,80096862,1072389888,80096862,-148480256,1962934535,113716786,136024,1448618475,168069678,-400657216,192151597,1929473256,1195788034,787082054,773021346,1191183558,1514047790,1482645011,1946288297,-4960247,-1930951248,1405311223,673090897,637204,1946630702,-119389436,-1017423551,-1976675760,1958742532,19130424,-2094125966,1949958524,133637646,510918672,24936494,202863872,1918975008,2004499473,-1973408755,-1325419312,-146937850,-953284629,152262662,-1017619968,2287788,1407719540,773223680,325322486,787313696,325322486,1309242433,-336001301,-1018234879,1364444152,762580284,695468092,628361788,41779238,857633282,1569335003,79921923,3768358,-919401100,1124698662,1946237478,1022943748,-1017423603,-970043053,538140166,1680244782,540860179,154941044,742142580,540815732,1015024757,-1341688544,-1069922784,-2144985365,1912668797,650720023,184765834,-1156877111,641925123,125043002,540866786,784554841,773021346,325322486,772175105,325324416,-339723744,1831767527,1960655635,1966029850,777058579,-385923190,91421144,-773323638,250304761,1007414264,772175151,325324416,516159552,-2094116010,1270078,508569461,1431786065,-1896467706,1660991710,-611573299,1560795915,525949535,774468696,325006985,1629391150,915090963,-1909583009]},{"sector":13,"data":[-2095881954,276037692,141689914,1996571706,99350787,-336902586,526277624,235282115,-1878585825,133361640,220908319,532658,1296367792,1482184781,536883288,623386624,1714499125,536881483,775234856,692807217,623386624,1714499125,536881483,775234856,692807217,623386624,1714499125,536881483,775234856,692807217,-1107296256,989855781,1229348675,1230980428,1515144782,436253184,1355776,25264513,-1308621055,-1342171904,123675108,-1308621501,-1342174464,13280,33691136,201919768,134679564,318707222,-16641523,724434944,724434944,1,0,258,0,514,0,900,0,4326402,7864498,432,-1308621822,-1342147584,1848124066,694971509,1970153472,2714732,589311275,11665428,548405267,0,697969050,697969050,10650,0,-1308617216,-1342174944,673720360,-1308621528,-1342172640,-1308622520,-1342173424,-1342174588,269488144,-2129653744,-2122219135,-1308619391,-1342172159,269488144,-2105405424,-2105376126,45219852,279969812,537923600,11665413,816840833,808595505,808726579,808857653,808988727,825241913,87175473,2016491085,-1308615048,-1342171392,-1308622448,-1342172928,-4,-16777217,67,322043904,11665424,95420446,1095639857,590415182,88493641,1313415985,68,1257984,2385536,2033705088,608387523,922792448,728084480,87044144,218149376,686141440]},{"sector":14,"data":[123666432,11665414,1152385100,603979813,1678046464,-1761130495,2063597633,2932289,0,473993216,134263296,1010610176,1196641614,15934,808466002,755633456,1635021600,1864395619,1718773110,225931116,196618,808466002,755633459,1953392928,1919248229,1986618400,543515753,807434594,150997517,808866304,168638768,1869488173,1852121204,1751610735,1634759456,1713399139,1696625263,1919514222,1701670511,168653934,218168320,16711690,762213746,1701669236,1920099616,2126447,911343618,221392944,1713384714,1952542572,543649385,1852403568,1869488244,1869357172,1684366433,16779789,808866304,168636720,1970151469,1881173100,1953393007,1629516389,1734964083,1852140910,658804,540672253,1213481293,539822605,1634692198,1735289204,1768910893,1696625774,1919906418,1694507066,1986947328,1684630625,1711278605,1852138496,1634562671,658796,1768161383,1701079414,544825888,658736,1986986088,1818653285,168654703,1962961152,1919247470,2003790950,1778387469,1701734656,1952670072,1795164685,1701737728,1634497901,224683380,7077898,1635086707,1914725746,225734511,7143434,1845496333,1635021568,1864395619,1718773110,225931116,7274506,1667331187,1853169771,1718773092,225931116,7340042,1819310181,1953063785,1730181484,1919250021,1684370529,-1392506355,201306625,-20480,-1,-1,-1,20112,26869760,177014784,1112672726]},{"sector":15,"data":[-1064507253,234885125,303903,787971,244039822,-108331002,-34108593,-1202674445,-883949516,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704,78708751,-789068149,-628299565,74698795,-768878452,-268181293,-947135858,-388771593,-802438516,-1064565645,-522989013,-1030817789,1322289836,1187548077,-31145334,91598908,-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094,-1031072797,-1064385789,-2080863315,292880383,-501415642,16417267,-2129234704,-351272766,1086360796,-276578162,486614544,-339702200,-1950118942,-1962932162,50334262,33948144,1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602,482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,2389104,2010972649,2015721458,2026207282,-2003994090,-1995077423,85787927,88409379,-1752423052,1333303250,1335709587,1342853108,1351766123,1357533364,1434210757,1546017764,-1685152886,1100651410,1318820662,0,0,0,0,0,0,0,641335296,186692096,1397600256,1397703725,1936028192,1852138601,1852383348,1297044000,1769174304,1210083182,543713129,1869440333,1092647282,224486770,1380320522,17733,1049429774,-1048506266,30081486,-16711675,285213951,1702131781,1684366446,1920091424,622883439,-1928917455,-2095957698,46866625,-16711675,234882303]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[538303465,1920100685,908096111,544028206,4724762,0,0,0,0,0,0,0,0,0,2013265920,1129339962,1128354388,1143886411,1342196805,1095914563,1146243907,19525,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33554432,8192,0,133632,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2113929216,131091,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,-1661337600,-419000530]},{"sector":2,"data":[116862465,-2147483347,-58716299,-2144504767,477369340,1950022784,922693131,782041575,18886399,771917288,19728071,384532608,771914216,19728071,183222272,771911144,19728071,-164716544,537048838,-1310191243,772568322,19728071,2011693056,784001794,32704199,-1557266432,-1993473583,771871518,30740105,-686388946,914959873,-1993473573,771873070,31276681,-551646162,109850113,-1590820383,-1557265945,-50658845,781987764,18882303,688294958,512306689,-1909587669,771877150,32048782,755431214,1967128577,9890051,1929578728,243346954,268435757,-402587415,326305579,755431214,1962950657,243346951,268435757,-402593559,292750545,755925294,772800513,19730049,-756480000,150333440,-2127687565,77070,243346960,134218029,-164745493,134395654,-1545075339,-401216758,275974768,755925294,772800513,19730049,216729600,1930103528,243346951,134218029,1929843944,116797112,1963459255,243346951,268435757,-806848021,772371201,19730049,1810567168,1929731816,116862482,4194605,-2127684491,77070,-397087984,275973181,755925294,772800513,19730049,1072367616,1929932776,243346960,134218029,755925294,-351272959,164227114,-147973773,-2147406586,772240640,19730049,-2127689728,77070,-401806576,124979835,755925294,772276225,32718467,773092352,32710283,781991604,18882303,-217659602,771751937,19728119,158599168,755431214,1962999809]},{"sector":3,"data":[512634368,-1959919319,-1274991850,-13722598,-1274994658,-13722611,771825694,771871137,30613131,-720467154,378220033,-1959919145,771873070,31143563,-583103698,512634369,-1909587489,-100540154,755431214,1963982849,116862505,1073742125,-953281675,77062,7399424,-2081649835,1576928870,771797199,19728071,1541931008,-13709568,-1660820682,755418926,-1677721599,538902318,1139317761,110046720,-1957363227,-1590800148,19202533,107380992,1175060478,-815966202,116797008,1950352055,377600021,-1065078835,1392905332,605996078,134096385,229902171,520040092,-1017642720,-1676823472,538902318,116796929,1950352055,377665563,-1065078835,1392906868,605996078,1065362945,637760512,123408382,508609368,771752120,603537025,393347840,1048828046,1962934460,-1103199479,41222144,12060139,1009765638,-1017634817,777395718,31399566,-684291282,24936449,-1977322182,208529412,426918204,360143420,1543666816,2088765044,645213954,755925294,-352059391,-1268258019,-13722599,67182622,1547468865,1015022964,772240687,19730049,-169344000,776434176,19728119,997524480,-383873490,915090945,-1976696331,-33362922,-1673022270,538902318,771796993,32849547,-385446354,87696897,2109280628,1974399488,1170613773,-1993450241,-134089410,1593377259,113444639,-1909565922,771874590,30881419,1979661440,243346956,33554733,-351845238,1006930434,-1274383104,-13722599,-33480674,-398457664]},{"sector":4,"data":[1047658612,-383873490,915090945,-1976696331,-33362922,-1673022270,538902318,771796993,32849547,-385446354,87696897,2109280628,1974399488,1170613773,-1993450241,-134089410,1593377259,113444639,-1909567145,-1929254650,-1191052994,-1336934218,1487598336,20685358,34054702,134661934,777796098,32835271,1599668746,1394524935,-796245972,781988532,18882303,225771324,-1574041718,1090781932,1929433832,13232387,-385897240,-2094134575,194622,1200315765,11880461,1090801546,-953228809,788723718,16417537,1468745077,-754339582,-2082277398,930414842,-133773522,1023461890,729260032,-133773522,1023436034,527895360,-133773522,1023429378,326567328,-133773522,1023422978,125240016,-133773522,-1962927870,959316551,1912780038,-308072876,71797250,-1573994242,1200292591,-257741306,113716738,-64849,772491147,771945635,49678023,1200291840,267795725,-2127689866,194062,1048653440,67118073,1200294259,-224186864,-1962415358,-1557262009,-336067854,123468033,1347821251,-1909566893,-1962809058,-1270797096,-1914646528,50509878,772049904,1023604899,812974079,-113344210,1912801827,1141487652,-1170150528,781975552,18882303,302039799,-1023998347,158629888,755925294,-351797247,32241667,1482382073,-1916592290,-1207878890,79250177,-13722624,1912676382,8775939,-131167442,11331586,20649613,-1187249992,781975556,18882303,-661960334,49848622,32482094,-251214034,-1275068415]},{"sector":5,"data":[309568,32446093,-383873490,-13722623,1912676382,1975597858,243281438,-1272970759,11974976,33101453,520040092,124911904,58048827,786986317,33097414,-1673612288,538902318,16614145,1102319476,20649613,520040092,-336002784,991333678,1023588353,520040092,527565088,32744238,1068816523,-1929378631,-1677594858,538902318,1003975169,-385649471,-1007091890,1364414494,11974738,67495415,13796096,-1976675760,-2147402986,481575146,520040092,11796768,-661921289,1510013827,-150178728,-1161655309,-1229258752,1525937920,525884249,1446940099,512634369,-1959919137,-1191061706,-1527578551,-383873490,-1625912063,-1675971583,538902318,1444318465,440577,755431214,1946189825,281641731,781995700,18882303,-1746336909,116862464,8388909,-164754828,268547078,350947956,-1274612178,208932865,781995956,18882303,-638881166,1912708584,32368879,-1607538062,27787700,-1573985675,-1590820358,-1557265995,-1590820357,-1557265993,-1590820355,-1557265991,-1590820353,-1557265989,-1909587455,-1929254650,-1342089666,1048587776,1966735703,46629635,4831575,1968811762,737773339,787975119,32849547,755431214,1946419201,155094276,-123407614,318537923,1448155252,-812906921,-225720434,181681805,1489404,1594336755,508713310,-1919934706,-1677011946,538902318,-1017503999]},{"sector":6,"data":[512634368,378339817,448004511,520040092,1377698080,-551645650,378220033,297009623,1023378152,-116886528,786968299,774499072,32054926,27276941,755431214,1946288129,130450179,-1475656566,-388008687,-630063023,1912633576,21424341,516104026,512634450,-1959919137,-1274947818,-12982254,57933884,774499321,32054926,27276941,755431214,1946288129,130450179,-1475656566,-389122799,-915275763,1912616168,16967876,1455628122,772165975,32849537,427098634,21708429,771754937,32048782,158705395,755925806,-335986687,1493694465,1472421471,-402097011,-1017184130,105994070,116796958,1963983284,1048653377,34210293,1049442423,915210582,-2144468674,973166398,-947712395,1547534338,1031800180,1191277871,771755449,32048782,-383873490,1973875457,243478025,-113245907,536347115,1583307015,105994179,-1274612178,393547777,-385446354,-1119974143,899329,-1359860048,132646261,-134092032,-1017161465,777474640,-402504310,-796260777,21334574,-1979298072,92942048,-1241102616,-1908503296,893005324,992875380,772371717,1963087162,116128003,-352092787,1516239080,606389080,1347245092,1413958985,1296649544,-1909587880,-1929254626,771858486,19728119,57934336,1443350147,-180450514,571649,-970545933,-1186517499,-1527578621,378406,189041246,33202734,773211275,-1962804317,-1557260220,1149960701,-6083044,507808513,33661742,773473419,-134051933,646000323,-16842451]},{"sector":7,"data":[42443054,-2127688469,-16700122,1566974,4002674,-402164736,158466209,-2127641608,77070,784595201,771861665,32319223,-315164882,-1946645758,-1298059558,1048653313,50340857,-1590819726,3998126,-402164736,1701970740,53349099,-1962741186,47815,512437843,-1557265741,-1993473743,-1191103722,-1993474047,-402574066,1918566793,503524924,1200226995,104345099,762642938,773212043,33228345,1200300917,104410648,427098621,773605259,33490489,1200295797,104410654,91554305,-132495477,784595395,45301387,-385446354,146689,-146970254,-1419480065,1273557131,146692,-146974350,2002023679,5367882,994463090,-387615248,37553202,1027633664,997523447,954741111,1177842176,-864686021,-62535898,333971456,146692,-146988686,1998353663,-264550894,-1993996683,-420741563,1912606440,-1415189750,-146896594,-104597503,-1959897405,990032694,639726583,1962949763,1144595985,637956862,1979860025,46564129,958793195,-2095614972,-605355322,915091115,53346995,990033206,1577285367,-111229960,512634563,-1959919137,-1274947818,116862529,8388909,984875636,520040092,803733792,-1909538048,771877150,32048782,27211405,22429325,-218090823,1444318628,-1676430335,538902318,1962949633,321541,-1007041544,1364414620,-1674791854,538902318,-1312716031,-1310666238,786486019,-1274936413,-13722582,-2130632674,-1962427159,-754339391,-771509792,199939042,94580418,1532582402]},{"sector":8,"data":[516136280,1448235347,-164735657,-2147405818,-1943137420,771832094,20389513,19996301,-335544391,378220037,-1909587663,771877150,-855446368,-1660259803,1583308280,526080346,-335962685,109981428,-1909587479,771877150,33097414,116862592,8388909,-2144467340,268564750,771800552,-1157500511,-470351690,-2097150971,-896859950,-1959866229,-1207831778,781992448,18882303,1877672563,-251199698,-241095167,104541697,124912111,-251214034,-402653183,1085538391,33101453,-1677674823,538902318,994341377,775976385,33097462,772502848,33105536,5826591,12163563,47616,-216102098,1107343361,520040092,393347360,79249588,-283734784,-13722623,1912676382,1975597830,-104597502,116797123,1954546169,1364598302,8436048,34027149,-383873490,-402355711,76022423,1492574790,-1021354407,-1929369415,771917630,33097462,-1190693504,1049428136,-1590820345,724435447,990032646,772306881,33099392,784894784,45299339,-1959877389,721549070,1460565198,-1287746770,782562050,32980617,-1358000801,1959734018,-218058748,50090,0,0,1394475008,777410385,32054926,276472622,12240779,512372224,11993839,-1959857161,772831774,276962873,-1993472140,-351239650,104541738,594677892,103493200,-1892806524,772834310,772833443,772832417,772831907,276698761,-1323398354,772991746,276698761,276865838,277127982,-1323398354,1048784386,1946161280,116862566,-2147482890]},{"sector":9,"data":[-13747595,772833294,276446859,53407697,-1173325250,-947191808,-1962888728,116862465,69754,78709876,-14292781,2057514511,267861264,662111348,2112600043,-2146500818,2057383440,653733392,2145911275,771853056,772831907,276446851,2002679031,781380354,772831905,772832419,772833441,277087785,1962934333,116862545,-2147482890,-2127688331,-149915074,1999795215,772467517,276446851,1999009015,780348977,771887226,-1223656799,512372224,-470351121,2114323246,100871696,1593311988,526080351,113716931,-61310,-100665416,-4657685,-403965441,777146704,49100535,992934539,1946332934,-1961135553,992889288,1963110158,1104120593,-317834450,772240130,49102339,-796187925,45065006,-266992850,378088962,-953286351,78598,178432,890145070,-51910655,-1017620134,777474387,45162123,276472622,-147916661,194054,-785746560,-1158151185,-947191808,-1946187288,116862465,69754,78709876,-14292781,267861263,852850,1532583920,784829379,32188151,-1946197528,518974209,807829550,-2127659263,522451262,773026563,603537025,661783326,675184686,41157889,1200299499,11880461,1090801546,1191436791,13796107,1946221187,243281414,528482608,1918975171,2004499462,-1021301758,-1899459334,-1900006440,1690303680,-550073088,-1079663342,915210428,2088964893,41221890,15377829,-1660944640,369442128,12068213,1977105152,1976056617,1978678053,1036028961,443875328]},{"sector":10,"data":[4053132,773027072,45551232,1024191296,108336646,-1222213586,-1655128318,-16776982,37119,65535,65535,65535,65535,0,1829008,520040092,183178018,1042576,520040092,-1892805850,-401394170,-1664417791,508776698,706659630,772246291,322045575,-986839159,-1961677282,109522439,126423860,-1655153889,788136131,5772,2525486,-425216,-13762444,-67108818,327759501,-1191084147,-1494024188,-1977215115,60311301,-1909027336,-217861869,641562022,-1004126837,-1912894691,-1508671946,-1185468811,-1494024189,-1928563617,-1324121034,1957098243,-1927681278,-1928102090,-1319696769,1604776707,915213684,61936516,57976563,638184441,637826955,-133595253,1364414659,509040210,-1899459578,632852696,-1994273483,-1944903138,-401398778,762511225,321533577,321652364,321797769,321914508,-852154696,639535393,671517715,-11016173,-1064563854,321652283,-336067723,520616193,1499094623,516118619,-2087706866,-15522754,378344052,632820536,-1927164635,-1206696938,567092518,220513055,1818575882,1869182053,1920216430,1768645473,1931503470,2004117103,543519329,1852400994,1852383335,1818326131,778331500,220465677,1850280458,1818326131,1769234796,1663069807,1819307375,778400869,220465677,1851867914,544501614,1953721961,778857569,1816207392,1684104562,1701978233,1701079411,539784302,1965060719,1869507438,1931505271,1970561396,168636019,1141509412,1952803941]},{"sector":11,"data":[1920213093,1768645473,1931503470,2004117103,543519329,1953723757,543515168,1953721961,1701604449,1700929636,1701998438,1752461088,1344303717,1867784259,544435311,1735357040,1936548210,604638510,1850280461,1768710518,1634738276,1701667186,678585716,1931487603,1768121712,1684367718,604638510,1750338061,1868963941,2003790956,543649385,1986622052,1629516645,1931502962,1869639797,1684370546,1698964538,1819631974,1768300660,544433516,1702257011,1847864932,1713401454,1936026729,1986097952,607020133,1917061645,543520361,539828289,1380013860,1196312910,1428168737,1667592814,1768843119,543450490,542330692,542395977,795358514,543700530,1684955496,779249004,1867718688,1864394093,1919248500,1381192736,1919945229,1634887535,1830843245,1646295393,1986095205,1919230053,1769234802,1819042147,1752637561,543517801,1701602660,1852795252,1634890797,1852402531,1869815911,1635218534,1763730802,1701978227,1701079411,220296302,2037535754,1936615712,1819042164,543649385,1381124429,1881166415,1919381362,1646292321,1919903333,1870209125,1864397429,1919248500,1936028192,1852138601,1919950964,1634887535,221148013,9226,0,0,0,-2147483648,-1224736768,-1224736746,-16777194,0,0,0,0,0,0,0,0,-1879048192,646811792,723404824,-622309184,244067841,-2127691287,125246,772436640,6045312,-351635969]},{"sector":12,"data":[1048587903,1962868828,1914080568,-855002092,67758113,-1142357133,-941089280,-420995293,94431234,-1224280530,359927810,343086733,567085492,1929574888,-1089041143,-855002092,-617362655,-1548170957,-2129211905,1968526841,1959869188,870003490,-2246455,-108980531,74798421,259313979,-273102541,-65614337,-839286277,-1928759893,-1273693930,-886977271,-113344210,1912799267,47140,1048828046,1962934460,-1103199479,41222144,12062699,1009765638,772175359,45551232,512634400,298648041,-1325350875,1038668550,57999360,771752376,-401171293,-1310194039,-1645700092,192126214,357045901,567085492,788488937,771928993,45417987,45196078,1929442792,1048653547,83895289,15207795,-1928104964,-1273641706,-1205744375,-1557200897,-1557261532,-164752600,-2147305722,-1041710476,790007045,623097882,565715405,773967157,19007116,538872110,-99185407,622966786,317202893,890878204,-1993465395,772988702,316737164,314316429,-853206600,1048653345,50340857,800597618,773967157,320675465,520522798,-485061357,623884306,884220365,-1993465395,771826718,19269260,346232461,567085492,-113344210,1912864803,-849169393,650350113,2885262,567101876,-1323922642,369307138,53346997,-2096974570,78712770,12118739,-1205744335,12268294,-2145268480,74581499,82559883,567095476,-1557208954,-2010242055,-1023334338,-113344210,1912930339,1048653321,-1610612247,-622263438,1476442112,-1574034995]},{"sector":13,"data":[45618854,773967192,-1206474846,29054979,1914817792,1476507657,567115955,-1796668557,512437760,53346993,771929374,45424131,-1324366973,1139528452,-385446354,244000257,-1907818452,503523009,1219756035,1701978573,1236582542,-1064558131,1923088445,47960,922737550,-1943142266,773235222,379856521,-1391555538,244067862,-1943136591,-1206471410,-1909568768,-402527970,695337035,-385446354,-1457615615,-98448106,-1575580114,646655510,1492850340,12259186,970690048,1946191366,32241667,512634617,-1197735447,12015619,-1491170770,-1205744362,-1976674303,-854153698,-104620767,1464946883,109981190,-1910111767,637545502,2885262,-13909973,-478150727,648999440,1979663673,63407094,-336013429,1594358017,784554073,32048782,1209540237,-1324366973,-1259613436,-1205744310,-135725057,-17655,567102132,1253311603,-809295411,1448235347,772152919,380110534,1048653312,83895289,-970057870,-15292666,-849870152,772436513,773236642,380112512,-17536,567104180,1962933123,1468737036,-65073410,-337955845,-1904547015,-1960379198,-1031077553,1975597888,650153513,550322049,-913563531,443859259,-1929374791,-1962868682,1957098494,571682,16987789,-1493959029,-1030864012,126494460,292837948,896879932,1459824194,-1951077629,-335986494,116796971,1954551464,645934620,1115625128,56034086,-2094611826,1963458943,2139170312,1950569224,-339725430,-104844541,-2127651760,2357566,773091845]},{"sector":14,"data":[380059264,-1207143681,12015619,-1491170770,-1658729194,1595869016,1532582494,512634563,-2118254103,-11761152,1122173109,-24428624,-1968246020,58064716,-402580759,779223340,762588988,904406499,-1407159805,1966750793,243281434,-478144870,1011461141,1007842351,1020818464,1020556301,-372214775,-454491910,-1392975104,1949383753,1021256721,1008432213,1012757588,-383159216,-164757282,1612093958,-2144413323,18258446,-2144427541,1481278,-2144417419,1075223054,1912651752,12118465,-1707179986,-1284177898,-1710325714,-108847082,-1381469692,1038081829,-1619701183,-539023955,1968067645,82412438,1912639464,8972689,-1710819794,-2089459690,-1710325714,2028146710,-1981265492,-479104510,776580188,379258566,1949121536,1949252641,1948269582,1947024397,1946762249,-380507387,1307115351,1010201088,-381323985,1088683851,809257388,960248434,-30525833,773233414,379272832,-483821821,1011461140,1020294191,1020228640,1019966477,-339250167,116797141,1977620122,-853953524,-398392287,24314392,283362297,540821932,222099572,154989684,-1007095692,-1909537799,771877150,32048782,-1979678273,11927373,-1325650205,1974399535,1344660263,283641226,1481915638,-1974463628,-167385083,1968722748,243281633,-351796553,2812121,-756349838,-1007041544,-1258257985,-11695616,800069603,300134130,92934005,1022744296,787445076,45551232,226542352,21334560,1631330316,2050765938,2105553015,510930178,-402504310]},{"sector":15,"data":[577962102,-402653000,-1993473918,771930247,45551232,1108096,1972177643,8185859,-471137166,-1007041544,1023456798,980746239,1166672052,740297729,104410721,712185500,-1023487862,246995594,1914817860,-1192195577,567100431,567095988,242548540,771901323,45418043,-1557265294,-25165131,-1979223040,1141881054,-1021369907,242495292,175382588,108268860,41158972,-1007041544,21334608,1630281740,12048522,-1017584687,-1185722030,12255235,-402355712,594739150,695349308,628570428,180077451,-1947994368,738495192,50377776,-572373288,-1410857846,-2096466945,91488507,-336018549,1499199745,378389338,162796908,448340429,47872,-1195408594,594870018,-1199076562,15618,568854900,-1491694336,-1929057515,1377145366,364385933,567085492,773967194,364906238,-503135357,1397801931,-1185459631,12189699,113716736,538973607,363413133,-150992197,818053363,-1169222264,3997696,-503155712,1499095022,113465435,-852155208,109850145,-1993468256,118922782,511383181,-853203784,773767969,379461317,-853203784,-1329389791,1342623488,-396929455,1094513707,1513900402,686310775,742421009,1342223424,-855244360,1979661359,-1977197813,973144711,1395160536,567104180,1194993240,639399713,-1307156540,-154599848,651690978,4409335,638088256,4409335,-117345104,1482251871,49927,0,1866664461,1769109872,544499815,539575080,926431537,960049453,1126178864,1920233061]},{"sector":16,"data":[1344302177,1953393007,1718571808,1918990196,1226845285,539911022,604637709,1916996109,1702125925,1851859059,1634560288,1864394087,1752440934,2037588069,1835365491,1701994784,168636001,1141509412,1981829967,1769173605,1830841967,544502645,840983906,1864380462,1768431730,1919248487,604638510,1750338061,1229791333,1380930130,1836016416,1684955501,1851876128,544501614,1919250543,543519841,1629515375,1952804384,1802661751,1769104416,221144438,168633354,543516756,1381124429,1881166415,1701015410,1998615411,1931506529,1701012341,1969648499,168636012,1409944868,1293968744,1330795081,1919950930,1936024431,1635197043,1853169779,1667462515,1718842213,221146229,168633354,1986622020,544743525,1970234148,1847616620,1646294127,1919950949,1936024431,778331507,1646529037,1735289189,1869770784,1936942435,221144165,1917133834,544370546,1684104562,543649385,1953724787,1629515109,1935762802,604638510,1869771333,1920409714,1852404841,1752440935,1229791333,1380930130,1634560288,1713399143,778398825,1159989773,1919906418,1769109280,1735289204,1937339168,544040308,1634038369,168636019,1920091428,1948283503,1801675122,543649385,543516788,1381124429,1763725903,1701273965,1818846752,168636005,1920099620,539914863,1819635523,1869488228,1886330996,1948282469,1293968744,1330795081,1835606098,543516513,1701603686,604638510,1869771365,1226845810,1718973294,1768122726,544501349,1667330163]},{"sector":17,"data":[1868963941,1752440946,1229791333,1380930130,1634560288,1713399143,778398825,1696860685,1919906418,1866670126,543452277,544501614,1936682083,1752440933,1229791333,1380930130,1634560288,1713399143,778398825,1696860685,1919906418,1850286126,1717990771,1852138345,1701650548,2037542765,544175136,1684104562,1819042080,1937339168,544040308,1868983913,604638510,1869771365,1411395186,1646290280,544501615,1952671091,1713402479,1948283503,544434536,1986622052,1762266469,1852383347,1886220131,1651078241,1998611820,543716457,543516788,1381124429,1663062607,1634561391,221144174,1919230986,779251570,1936607520,1768318581,1852139875,1886593140,543515489,544370534,543516788,1381124429,1663062607,1920233071,1713400943,778398825,1696860685,1919906418,1750343726,543519333,543519329,1696624494,1769108590,1629516645,1818845558,1701601889,544106784,543516788,1953460082,1919509536,1869898597,168655218,1948280431,1679844712,1702259058,1142956078,1952803941,1852776549,1919885413,1919905056,1768300645,544433516,1836020326,1701344288,1869574688,1768169588,1952671090,779711087,220465677,1818846730,1852383333,1701344288,1869574688,1768169588,1952671090,544830063,1948280431,1746953576,543453793,1986622052,168636005,1920099620,539914863,1852727619,1965061231,1952539760,1752440933,1229791333,1380930130,1852793632,1819243124,1818846752,168636005,1920099620,539914863,1919248468,1818304613]}],[{"sector":1,"data":[1684104562,1936269433,1293967648,1330795081,1868767314,1869771886,1711934828,543517801,544503138,1998615657,1847620449,1814066287,1952539503,1763730533,1752440942,1634476133,840987763,1701847093,1852138354,1718558836,1701344288,1633946125,1629512052,778134898,544491808,544432488,544698222,1852138850,1818584096,1684370533,1684955424,1869770784,1936942435,224882281,1818851082,1868767340,1852404846,221144437,1919230986,779251570,1952531488,1635197025,1868963955,543452789,1629515369,1818846752,1752440933,220230753,1886413066,1936875877,544175136,1629513058,1380535584,542265170,1953394531,543977330,1701603686,1631789102,1953459822,1852793632,1970170228,168636005,36,0,0,0,0,0,0,0,788268574,603917964,-14774738,109981219,-970054657,2358022,386319918,-970063836,2358278,1968197693,243281422,-2143280123,-2010234429,-1608254434,11796608,640983854,-1154283848,567083008,1912994688,-2034005242,-1273828384,-2044605136,52313540,-8386699,-1342016251,-106746337,116796963,1967137797,-66642395,-2118176848,-11695616,333643957,259370738,-1977217565,1021256709,-118524594,-402618391,-970063221,1093079046,84342318,141901860,521934477,567085492,-113344210,1929510947,1159105808,113651231,-1274731525,-350106359,9562196,603758638,84342318,125124644,1929537768,-401478910,41091755,-164748565,1076102406]},{"sector":2,"data":[-588578187,84342318,645218340,-14774738,-1508471517,-855002081,384563233,84342318,225787940,-14774738,-854160093,-855002081,1877539105,1048784384,1946166287,109981200,1236542479,-953278003,2363142,1048784384,1946166293,109981200,1236542485,-953278003,2364678,-73388544,646589987,520561687,891009219,-1943133747,774113286,604380809,-852155464,109850145,-1993464820,237242910,-1055486689,622573605,378347981,599270856,-1021194971,138314542,343146532,102155566,622573604,-986832435,-1205597674,567092515,243281603,-813685746,235831342,1355776036,1465012563,-74754730,-1152386813,-201906416,-1031018357,-1107296070,-108855296,-1962379772,82740209,-1157626695,-201916406,-2010070400,12209941,-1946951168,47813,12504715,48384,-487914781,1516199517,-1017619623,0,0,0,0,8454144,0,0,0,2029977600,1229806650,1380930130,1262567982,1547335680,1381124429,607015503,2013275172,1229806650,1380930130,1279870510,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1380535552,1095979599,1279870550,39,0,0,0,10496,0,0,0,980942848,1380535644,1095979599,1229336150,1229783116,1397903186,1229346369]},{"sector":3,"data":[1380535628,542265170,1279870496,0,1163087201,1179208787,1381187926,1296650831,1161909061,80,0,0,0,0,8503040,1300889781,-1340873729,-475074001,-2146732787,-210423491,84836398,784564260,603922062,842435374,244002342,-970054092,2520326,1236016355,376713020,1094508324,1513943666,-1993413001,774255158,640945801,-2127641608,-2128203202,-1274252032,69324057,12142145,-102765824,1604464323,1134702118,1369583142,-425578970,-22925786,645934623,785327109,603922062,84342318,242565156,536221325,567085492,538646157,-1607589427,-588765601,-1928891641,-383816682,1407713919,-385453304,1961427575,116796930,1971332110,52095221,552081037,-605492110,116796943,1971332110,175630561,-2144466061,69466942,954848373,270788610,-14774738,1595313443,1124186150,-855629383,-385649887,-164756907,-2145120762,12103797,1931595069,38004995,640590638,773753646,47398,-1207959366,567099906,-147921038,774275382,646125195,990036611,785806018,640556683,567099060,555685517,229930098,-986832435,774116150,646254219,537315118,771751974,639764167,-986841088,-400148962,378343565,1198661678,235337262,1114996772,646291758,-2128152786,79253542,-740109568,-1931343128,-1898970150,254105818,785908480,604053129,52333614,-1985925596,547565094,244002342,1189619335,773229840,-385453280,1894318435,116796929,1971332110,96725237]},{"sector":4,"data":[-269946766,512634370,378348543,28845663,47427,45621709,-1927164611,1914747158,782446289,382021158,-1959909834,-400129234,378340862,-1217257396,567086516,646553902,639673134,570869550,771751974,774277025,774286243,604899062,781677952,604970638,891194158,112935,-1928346392,1931488790,14805251,-1590819407,-388815231,777111691,603915918,654392973,-1962931271,1504113651,-1014817420,786948640,648744703,-2094133644,19275782,571900718,-1477771226,-1962877719,-1557259705,-1909578065,-1927020770,-1205410282,12141313,-1927164672,1931657494,9824515,652613261,-851639880,-1055486687,-385649886,-1557266301,-1590811088,770188975,547433996,212020774,580988455,245575206,-852839385,243871265,-1993464027,-1272502506,773967148,657002121,807308078,2734374,655103629,567099572,583079565,41206075,1051998187,378347981,41099969,378350571,28845798,2603331,378347981,426910401,-401697048,292684467,113651395,772023291,604899062,-352160384,113651214,772088827,604899062,773027200,603922062,-166294190,-855002081,162814497,15213005,784595204,603922062,643765901,-1186790984,567083008,567099828,565787828,-1927164672,1914747158,785943480,774276001,647300611,649306926,-14774738,-1247728093,104541734,74852019,649306414,-1291441874,653733414,-930404735,567099572,552081037,-1053092238,-2094132619,2536254,1052036981,378347981,57876767,788489961]},{"sector":5,"data":[603922062,643765901,-851640136,-1189704415,-370576864,1428094258,646029614,-1976636110,-148467698,868781025,1927926208,-102023165,603824942,646160686,-1794768082,47654,-1877046738,-150948058,16417779,1077936500,-1909528437,-1927020770,-1205444842,567100160,-2144458894,270796046,-851640136,-1961201119,1107474648,-768358093,158474701,989879016,726628072,-851528472,-434729695,1124120614,661791181,84836398,12066852,1914817853,-1193768166,-919387646,567136819,686295410,1994930944,-1259853027,-2094936770,309592317,1595312686,1089110054,567097012,-583334798,-336067726,526252289,12276675,244002304,149103613,-657331503,-119350319,1946221443,-1017430015,84342318,24461348,116797123,1963992069,20352263,1108007,84342318,125116452,653670029,-1023409688,1397753374,-1590799023,-147970425,-1155104474,-201916384,-1959868277,774111518,604178062,-1909526901,-1960575202,1375439861,-218100807,125065638,-501169277,638315502,652543942,-400930933,1499267079,520575067,1364401859,1431721810,37611659,778596864,774257313,645998327,641508142,-653855186,846561318,-1962934086,65589701,5236933,-973666421,158597121,-388823887,-351328381,2588932,268379632,37611659,1026060800,594743287,12240619,63277824,13796288,-1962926872,-941061369,1023410183,124911618,1945632131,1571154690,1499094878,784539483,641467907,-1962880381,266568664,-788527943,-489106966,100871930]},{"sector":6,"data":[-661772744,-854739773,113716769,-55635,-637090002,771751974,651953863,-953286656,2547206,113716736,9952,-502872274,771751974,652478151,-986841088,-1088154826,1021837312,779252225,774250657,774273443,774251169,-1087997021,11796481,647012398,-1794753746,-1962772698,18213112,-1590801550,-1557256672,-1590811011,-1557256670,1552754303,244002324,1284056707,1049308690,12396181,244002304,-387438971,-1994493440,38258479,-1590820864,1200170528,580988420,105351462,1191756675,-337649083,-1860793081,12577056,-1993438418,244002342,-1259854201,-1981124096,38258479,-1590820864,1200170528,580988420,105351462,1191756675,786424389,647315075,772240898,645990087,-1959919616,-1188680162,12189696,1107343360,-628416051,552081037,1810563699,1946157117,16483079,1609237108,773753646,775992358,603922062,-1929363271,-853123306,382021153,-225762285,-787329909,-773729823,381780961,775995779,-786005599,1089045472,567099572,552081037,535495283,567099060,555685517,334168691,-14774738,1595313443,1124186150,-855629383,-104597471,-1348391229,129165350,1377718723,-14774738,-434729693,1124186150,-855637831,-1928826335,-1272519146,1512164673,516118815,512634450,-1923996673,-1272973802,1512164617,567085492,516104026,1364414550,516238930,1200301622,104541707,1282745985,772622218,646972986,1200308853,104541710,947201678,772818826,646776378,1200303733,239534870,-2063189202]},{"sector":7,"data":[-1960741594,-1557260217,1200301713,-1818022372,440896294,646685486,322356526,38045988,116127834,-2078896806,1532623137,-1021354408,-1288795858,116796966,1971332110,-1590799771,-147970431,1512477990,-1959868277,-1272566242,1914817856,1975597901,116797001,1971332110,-1590799807,992880309,1982247686,-1281282556,103362086,-147970381,1512472870,-1959868277,-1272566242,1914817856,1975597849,1048784405,1946166963,785943563,649528835,-1175725938,-1909537800,-1927020770,-1272973802,-1927164663,-1272911850,-115225335,1364414659,509040210,-65073658,809017902,-113344210,1912799267,-843042005,1961101866,512372259,-343920584,1124120385,-851179080,-149851615,1963983042,943099195,50378800,837495501,-1191182407,567139328,-108846222,-1105300225,28901375,1914818031,-97516,-1976692876,741357598,637581121,1954545910,32241667,1595869177,1532582494,-1006896040,6044280,255755054,276037668,252087854,-850807772,113716769,9231,356418350,276037668,352751150,-850807772,113716769,9237,1963378222,850657318,1595312686,1089110054,-12836403,-51838091,38243073,646030126,647471918,113234,771752120,646002423,640328494,138906202,646816302,772163467,-1977184605,-1057094585,647012910,772622219,-785996893,787010024,774283171,651765376,-1549717889,267795750,-2144467338,-2144937714,-113344210,1929642019,189762353,-1525774034,273623846,-2029090514,47142,772753290,52863395]},{"sector":8,"data":[-1557264825,-939317627,-2096199378,273124134,646554414,1334521067,243871243,1328228005,243871249,1200301703,-1583141361,105317158,646292270,-1993422845,-1960410354,-1557262009,1200301705,983772678,47654,788529080,646002423,649437998,-2128152786,309542,-1557206829,-953276745,2569478,512437760,-1993464191,774321950,645996035,-2128739538,309542,1219816403,494019021,605004590,788529083,605101705,567101620,-1993470349,-1272704738,1931595080,13625603,605397806,319211310,771751972,605109889,-378404544,352751150,1049308708,-1959910381,-786005234,-773729823,381780961,-218058671,1074092202,47616,-2127104210,16417574,1027604852,58130434,771752632,774280611,605238981,773080205,-1322893661,-2086588925,306481446,53403859,774258182,774258851,-2010751072,-1590820540,53356163,774280454,645998327,-150990663,104541937,1064772625,-947666804,-754667249,784794607,641074887,-1557266432,-2127681992,522451262,773747203,-1272541024,653733376,53356195,-2094619386,-92077870,772174848,645205632,-1916536704,-115257578,18255299,-1262225120,773967117,774277537,774250659,639764167,-1590820864,-1557256569,-164747605,-2145120762,-1909582219,774115102,657792651,-402652743,378340981,158539822,-83442130,-1092025309,772124930,-752451167,784894952,603915918,653672077,1015083915,1361277952,-218100807,477387174,-501169277,251604706,242493099,537297710,-2094137050]},{"sector":9,"data":[2499094,753638635,773474187,648224395,494191419,-1625412818,2009283366,116796943,1967137797,-250180345,-75503582,-335848728,38922499,567086516,-1392064722,788528934,651822791,-953286656,2546694,113716736,9950,-536426706,771751974,652347079,-953286656,2548742,-1549718016,-744280538,47654,651403566,-653855186,125075494,-763117565,-1962284288,65589720,13796291,-2127104210,378088998,959325865,1948691718,-1381814692,15654,-1590814604,994584193,772765634,648875775,-2129263826,378088998,-164747607,-2145120762,-1909577099,774115102,657923723,771752633,774286753,646841859,639673134,570869550,-402653146,378340673,158539822,-83442130,-1964440541,915090945,-1959909719,-1960364258,116796928,1971332825,772059410,651364087,91553793,-351273179,1038668546,678690816,649175854,1912691688,117386780,-1590810969,959325855,1931912966,251604488,686368467,-703164929,20441377,567086516,646553902,639673134,570869550,771751974,774277025,774286243,604899062,773223808,604970638,891194158,112935,-1929073432,1931488790,113651209,-385604613,95486197,646029614,-930354989,1961181056,4161574,-1014816396,787604000,648744703,-2094133644,19275782,571900718,-1410662362,571414157,771801321,604964494,-1909523573,-1927020770,-1188644554,-1527578592,567086516,235337262,376799268,253660718,512437796,28911413,81717248,544413325,-970061453]},{"sector":10,"data":[69466886,771784937,657923723,-1456043218,116796966,1971332825,268417044,-754518226,1946157350,-754667260,-352319008,-18427,11862153,-1928426962,-1381945818,100871718,-1557256562,-953276896,2499078,45699328,-2120143360,959334438,1931913478,112899,1493464040,-1590815886,19801761,774250502,639768195,-338238976,1930857740,113651232,-352050181,-104597502,-2144404245,-1087973082,772798392,651757302,-1207733120,959381495,1965469958,243281414,775956185,604899062,778401152,-400108639,28901472,512634368,-1959910385,-400083682,41091941,772163563,603915918,655376013,-964430965,1423620,1963435763,116796976,1950361305,-1909586398,774115078,657800843,-1959919440,-215580402,28903338,512437760,-907532491,-1928957181,-349988330,32241667,760464377,11993090,-1877046738,786691878,648349187,771805827,774250659,639768201,1394525019,1448563281,253660718,-626840028,-1161327834,-1976696832,-1222209506,787740416,651828875,-601999058,772240422,651959945,992881387,1915151366,724455459,774300678,652478095,652387118,652124462,651862830,-535394002,512437798,317400887,-535394002,-492622298,-459067866,512437798,-2094127305,2548286,-164730252,-2144937722,-13747083,-1171856882,-1590820864,-388946214,-637140178,13166630,-147979893,19323398,-787975168,-773271064,636015080,-1557262337,-146987302,1996780559,-373822677,-13762417,-1171856882,-1590820864,-1073535270]},{"sector":11,"data":[-402599293,25886862,651862830,-633437394,1836381990,-1897201033,651862318,652124974,652386606,-469358290,15654,-164732811,-2144937722,-2127688331,-148448706,2000843791,772467533,651837059,2000057591,780348993,771892954,-1222190431,512372224,-470342000,-536476882,13796134,-1526332626,13796134,639673134,571902254,1600059430,526080346,113716931,-55588,-100665416,-1191580437,-420741121,777146704,646002423,992934539,1948691718,-1961135561,992889288,1965468942,1104120593,-2129773778,772240166,646004227,-1557259541,53356205,774278662,774250659,639764167,45678592,22276096,-1017620134,-1909586402,774110982,603922062,657145485,-1191182152,-1410138108,84342318,1081442340,-1925381960,-853088746,-1959431647,2734552,-1909571660,774115102,657790603,477241805,410173755,657145485,892767022,782607655,657798795,-1189493117,-1510801405,567099060,516103943,512634374,-1909578753,774110982,604309238,-1206356864,12141313,1125551360,1914817830,-1925073795,-853130474,-1200362719,12141313,1125551360,1914817830,1363053832,-849955802,1124186145,-1929379655,-853123306,1128172833,-849955802,1023588385,641930893,645013965,12114059,47426,-855631942,1108774177,112934,567099572,-849936200,1459730465,1051992525,28844493,2210115,641930893,1049436621,378349151,1454646865,520561101,1124186307,-1929379655,-853130474,1023588385,641930893,846340557,12114059]},{"sector":12,"data":[47426,-855631686,202804513,178471,567099572,-849936200,1459730465,1051992525,28844493,2210115,641930893,1405297101,1465274961,-13754795,774250550,639776511,771784680,640032393,673090606,243871270,-1959909844,-484037618,238759506,91629098,705596206,243871270,690890276,774253582,740712352,378220097,-164747744,-2144963322,-4649868,512634623,512566271,634201632,782052466,640157313,-1590816768,19801642,774250502,639768195,-123213056,570855214,110046758,1562322464,1499094623,-107101349,1364257515,-1311208365,65786628,1540918979,1494213507,1364443992,1431787090,512306718,-1943132634,774252574,639897225,-1174139720,-784662400,-1607588494,1093412447,538348334,116796966,1954555509,-18164,-14774738,538873123,1915145510,536386826,1516134237,-1648141479,646459129,-269802473,0,0,0,982253568,65535,-2147483648,0,36864,1381124429,908087887,536956206,1702257011,1634738276,1953068146,1936617321,26,4325376,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,541934153,1146241352,1162627398,1348031520,0,0,1348221560,1314148929,777404755,4999494,521012766,-393151492,712246747,410322088,494207656,1097406093,-402277912]},{"sector":13,"data":[108135698,-398839133,550306108,1141905037,-351951384,583925,520614123,-809239556,1099437709,-1929014808,-1204084970,567092515,199163368,-1928432192,-381450730,378339531,-991345877,-1898411264,1049492675,-1075309790,641633536,12118035,18890381,-1929334296,-401416386,1049428138,-1545071843,-1137275648,1687314,1962977000,-482964027,3129106,1962973928,-97088071,2211586,1962970856,608076717,745864979,322451085,-402643521,-1703608197,323237517,-402643265,-1904934801,321009293,-402643521,915210359,650056486,7202816,18888333,-402644545,915210339,431952607,5892096,320681613,-402640961,-1014103985,2924838,292864011,1086361160,18758438,-1912179456,-850807616,-1262252511,1914817865,-568947448,78440515,-13702717,-1996125402,1166747141,38111490,-1070397757,-405684082,992405457,637826357,117595451,856095427,-54489408,-405674031,-16614269,-1515912588,-1158036729,146014336,275911629,209052682,2130770560,1343655187,72935489,-1929213463,-398357738,-185924530,1997077120,1192659186,1124517434,512589882,-1974257012,-1271250154,1528024328,-469051022,378197365,954743363,106925315,-29736032,977511104,104496932,-697157049,-1271248992,980198144,567093940,980946569,980891272,980817544,567094452,980758152,980684424,112778035,-1960719053,1975520195,-852446204,-1547401695,113654394,1023425129,91358208,979963520,-4458239,-843008769,169505301,-2095680028]},{"sector":14,"data":[292880379,38242854,74775612,91486524,979963520,805750530,-1006632902,-63295426,855769273,-945032256,3814406,67155970,-1556467549,109918826,983775884,939968314,-973078470,-2143665402,624575392,-661979009,883024849,2089257274,-18374,-1556461406,113654332,-956286396,20595974,-972690688,3819526,977475210,977548938,977604235,976232132,-855506504,-1928695021,-398357738,1474888486,23652353,378342003,401097126,21555459,-1959119711,1010731000,-31942,-1993997196,971507269,1208415746,796196666,979961590,-1977060350,-1237695722,178432,976232075,-855506504,-1917816301,915210879,-1185858884,-201588720,58022310,-167640088,20605190,1049306484,-16041410,-1960436364,-1977220531,378143093,512440899,28850736,1930677506,-9180925,-1962813464,188366910,640054527,-1576974966,-1960428988,1168310853,939982650,943620922,57875002,-1912655639,-398338282,-1545010574,977510400,977510976,104496932,225655367,976488067,973505288,-471267782,1245089278,-50384070,-218086727,1849592740,-1942581958,3193146,-953768717,-855638010,29878304,977409674,-4668674,1008848182,-135367425,199489505,990279122,1916430854,977445088,-727564028,-736719558,47418,567098548,1933194915,-1959204094,-1959119330,507144718,976363150,1085592115,-65068595,-1053091470,512431477,1051998774,326246861,1106712205,-1023291928,-1946358896,-1271253474,-1927164610,-398326250,-320142918]},{"sector":15,"data":[643256913,33472385,1400220245,855752383,1041664466,1075218746,1636443706,1961101828,25830968,225706044,863338556,977798902,-30640897,1099572934,1946237956,1946434597,1946565665,1946500125,1208415753,259325754,-1023534357,1084424589,964699706,-116558848,602415851,-1913097728,977183489,-2129606781,1929510655,-2136806654,-478739970,1996618368,-121468194,-1017554337,976653142,1099572794,1636443654,-1061149435,-992951088,-523116335,121735718,1996637243,2038441502,443811076,90278438,977265792,192348516,104958502,1144667940,-117213692,1593311723,-1978169149,-2009127738,-1047854777,1200111396,-1967027708,-1061149210,-992951088,-523116335,1200211338,-1957182718,641348670,637685129,-1993992823,12059741,1778778370,805699898,872842042,-1017182150,1209540237,-1324327027,-1930702076,-1949105206,98208706,992872160,1929380358,-268425968,-268377215,259310395,-350174589,622235106,7399490,-1962677255,-960235326,3817990,1111103117,-1929355800,-398259178,12058710,-970863348,70962182,986515142,-870937344,-854936518,-1274170847,-1306407678,-855460854,-851541983,729022522,-398799200,1093456415,1117963634,-853953478,378163233,246692418,431235533,1348084173,567086772,1107704408,-1012632262,-855002032,-1966909407,1965046788,-135576061,-66642237,243981107,-511508352,8502911,1912797568,-402355634,76075471,1950301254,-957160953,82513156,1156252851,-402619970,796065733,729100092]},{"sector":16,"data":[1094598285,-1879046471,-1494023027,-259320716,1094991501,-1879047495,41199347,45288939,28508907,1998601344,-1290933498,-1928729856,-398255338,-1192493182,-14302326,1345307392,1314148929,21807,0,0,1881173838,1769239137,1852795252,1869881459,1986097952,168636005,1141509412,543912809,1953653072,1869182057,1632903278,543517794,1702257011,168636018,1159989773,1919906418,1634038304,1735289188,1918986272,1768169572,221145971,1867392010,1953705326,1633971809,539780210,1936943469,744975977,544370464,543449442,1953653104,1869182057,1635000430,778398818,1411648013,1830842223,544829025,1702131813,1684366446,1918988320,1769236852,779316847,170134029,1667462483,1718842213,221146229,1917133834,544370546,1701012321,1852404595,1635000423,1952802674,1818846752,168636005,1953451556,1869505824,543713141,1869440365,221149554,1750344714,1634738277,1953068146,544108393,1868983913,1952542066,544108393,1836020326,1970239776,1634214002,1679844466,1702259058,539587368,544432488,1852138850,1634038304,168636004,1699613197,539784312,543516788,1701603686,1380012064,1095978580,1229336150,1769414732,1646292076,1920409701,1702130793,1869881454,1713398048,1886416748,1768169593,539913075,1701597216,224752481,1936615690,544502373,1868963937,1952542066,543450484,1802725732,1702130789,1684955424,1887007776,1752440933,1634607205,1864394093,1752440934,1768169573,1952803699]},{"sector":17,"data":[1679844724,1702259058,604638510,1952540759,1769104416,541025654,220465217,1684095498,1953525536,560885609,1126435341,1869508193,1853169780,1684107116,1936028192,1852138601,1701060724,1769235820,1949134447,1801675122,543649385,1952870259,1701994871,1444945966,1869898597,1864397682,1701650546,2037542765,1986095136,1700929637,1629515365,1919251564,221144165,1631790090,1953459822,1819178272,778330479,1698963488,1769235820,1949134447,1801675122,543649385,1952870259,1701994871,544434464,544501614,1769170290,1953391972,544370464,1629516649,1718182944,1701995878,1981838446,1769173605,221146735,1698964490,1769235820,1949134447,1801675122,543649385,1952870259,1701994871,1835364896,1684371055,1869768224,1701650541,2037542765,604638510,1699875341,1685221219,1852383347,1836216166,1869182049,1650532462,544503151,543518319,1830842991,543519343,1802725732,168636019,1229785613,1380930130,1919179552,979727977,774774875,542989614,1563504475,1412389664,1986622052,1697471333,1769108590,1532851045,774778400,168648029,1381124429,1528844879,224220463,1380535562,542265170,1095774043,1565414482,168626701,1919164448,979727977,538976288,1394614304,1768121712,1936025958,1701344288,1769104416,1713399158,1998615151,1751345512,1970239776,1851881248,1869881460,1986097952,1852383333,1836216166,1869182049,168636014,825172000,538976288,538976288,1394614304,1936029281,1819176736,1752440953]}],[{"sector":1,"data":[1634476133,1953719668,1936286752,1852383339,1836216166,1869182049,1680351342,544433519,544501614,1801675106,225473824,538976266,538976288,538976288,538976288,1986359920,1937076073,1718511904,1634562671,1852795252,168635945,1412374560,1986622052,538976357,1277173792,1935958383,1701344288,1818584096,1869182053,1920216430,1768645473,1881171822,1919381362,1713401185,1948283503,1931502952,1768121712,1684367718,1769104416,221144438,757080074,1920233061,544433513,538976288,1667592275,1701406313,1634541683,1970104696,1970151533,1919246957,543584032,1920233061,544433513,1948282473,1679844712,1952803941,762212201,1667330676,1735289195,538970637,538976288,538976288,538976288,1818846752,168636005,1429151776,538976288,538976288,1428168736,1634692206,1948283748,1679844712,1952803941,762212201,1667330676,1735289195,1869770784,1835102823,537529646,1095773984,542004306,538976288,1632837664,544433526,1685217640,1936286752,1634738283,1953068146,544108393,1868983913,1952542066,544108393,1629515636,1869375008,544829552,1802725732,1702130789,168430894,1381124429,539775567,1162104405,1163150668,1851858988,1314201700,1297239878,1126192193,1920561263,1952999273,692267040,943272224,959524151,1126183225,1920233061,1344302177,1953393007,1718571808,1918990196,168635493,778268233,2361869,1920100685,1394635375,1801675124,1919503648,544370546,1667331155,1766662251,1919906418]},{"sector":2,"data":[1635013408,1293970275,1869771369,1951604850,543908705,1920100685,1394635375,1801675124,1919503648,544370546,1667331155,1766662251,1919906418,1635013408,1293970275,1869771369,1951604850,543908705,1920100685,1394635375,1801675124,1919503648,544370546,1667331155,1766662251,1919906418,1635013408,1293970275,1869771369,1951604850,543908705,1920100685,1394635375,1801675124,1919503648,544370546,1667331155,1766662251,1919906418,1635013408,1293970275,1869771369,1951604850,543908705,1920100685,1394635375,1801675124,1919503648,544370546,1667331155,1766662251,1919906418,1635013408,1293970275,1869771369,1951604850,543908705,1920100685,1394635375,1801675124,1919503648,544370546,1667331155,1766662251,1919906418,1635013408,1293970275,1869771369,1951604850,543908705,1852383487,1836216166,1869182049,1650532462,544503151,543518319,1830842991,543519343,1802725732,168636019,1229785613,1380930130,1919179552,979727977,774774875,542989614,1563504475,1412389664,1986622052,1697471333,1769108590,1532851045,774778400,168648029,1381124429,1528844879,224220463,1380535562,542265170,1095774043,1565414482,168626701,1919164448,979727977,538976288,1394614304,1768121712,1936025958,1701344288,1769104416,1713399158,1998615151,1751345512,1970239776,1851881248,1869881460,1986097952,1852383333,1836216166,1869182049,168636014,825172000,538976288,538976288,1394614304,1936029281,1819176736,1752440953]},{"sector":3,"data":[-1,13305856,251723990,19596567,17105205,18284872,18284823,22217043,18284823,18284823,21168407,1385176555,824202820,3158574,65538,16385,129024,65537,-351797248,1094795774,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,0,0,0,65535,0,0,0,771751936,11280009,-1375302610,1347865344,1431786065,777192990,11280069,-1961734261,1200231511,646589954,-1002831861,213782391,-268199936,2143612931,-14742002,-352079836,516238858,1204224172,-1275068398,-1274877055,516238849,1200160940,520575747,1499094877,-976527784,-973034466,-352252345,-1407269406,306693888,1334575159,-1194005740,-773127424,250150706,-352161280,-1212748858,-1326191871,1002699016,1929395990,63081462,1057373121,-1947437312,1242467009,1944113920,-2147436541,-1031026549,3614455,1259,1347551248,-1101639341,-506396486,772573486,148679,1979648512,-1205957856,1552494080,1149840900,1418276358,1153904136,771751946,772570249,-351386484,1153904158,771751940,772177033,-1962392436,771799070,772430985,772555913,-1274129271,-1340145909,-169291520,1482381662,-338705574,-1869574141,20987292,-401733260,-13697040,1342223406]},{"sector":4,"data":[146035283,-1340145874,1522699008,1482408507,-1070341003,-878865997]},{"sector":5,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-65481,485031935,857624576,785944256,-100373855,771777699,-1559991135,1478426726,1781464878,-970039292,-16725498,-1206482130,-359680,229903988,-1340145874,772453376,11542271,50017,0,0,0,0,0,0,0,0,0,0,0,1073872896,16777216,1,1130,0,-256,236847359,-855002081,-1178394847,-768409590,-1072958985,-397277836,-2141519887,45363394,-1933368883,-1945834994,-66786290,567095476,-291250042,33570052,4000370,1024160259,477234688,-384435782,645988652,-134283260,722630,1980155659,-972419818,605452294,11286213,773211274,377751040,-401189446,1959133072,540847122,154991476,742193012,132903796,-385800727,1017905396,1022718989,1022456842,1007514656,1007252489,1006990380,-1394117376,-596328438,-663483076,-730592708,-277602244,-344716996,-411816900,-948687044,2121412668,2054633788,50325582,-482443218,1853293316,-2144440716,33874750,-75296140,-2124451324,1937768699,512306777,2078999775,924748078,378220032,112198879,8452993,-92206987,577904640,-1057037359]},{"sector":6,"data":[16841601,-92206987,309477376,-1057037359,33618817,-1057093516,67173249,-1574024843,992870474,1946171166,512306742,465174583,-20781034,803940843,1912798083,16482602,774141700,3620491,-271383119,-768359541,-770967561,-97844108,-1993416957,771767582,81987326,-1157680919,-1981278834,-373279746,-5242347,-452557266,1975519748,1161604330,1698432116,-970061451,318982,1023346921,1006924865,785413473,81659590,-17307391,-559931634,1975519748,55633925,-922874645,166200693,-402396412,41093148,1048621035,1962935524,29223171,-1190862943,-503905280,3618551,-1593819229,95486013,-768352045,3618551,24433163,82223936,989856261,1912618758,1023854377,855642112,33601746,3618551,24433163,82223936,989856261,1912618758,29353993,-384455494,1086259020,4169984,3802667,3935882,103542066,-85852094,82183723,1023410619,594677742,1023410875,460464092,1023411387,326254520,1023412411,192053104,1023414459,57868000,855646395,-1946945582,1944703432,-1056751359,855638789,926349266,1959922432,109527041,512098370,1951268921,958282252,999453952,1962951174,378124940,-1577231384,1592263903,379173629,-1577234456,1390936119,380549885,-1594014744,-466485191,-1157806872,904402636,4039165,-1157809944,703076078,-264339203,1198784516,50332088,50348550,-150673914,50345766,318865926,83985430,-763166705,1095936,-661917193,-634664308,21494657]},{"sector":7,"data":[-930347661,-1912518907,-1946799168,342800894,111473660,1342708664,248192774,-1177406713,750714881,-402540800,-1086193531,-1070395282,-66977607,1858055155,112912,-133839066,1170614015,1726545666,-953794048,637534213,148934,4329099,1359733577,-402652743,1497497677,28964322,273596160,1107312872,82185867,-1089543351,-1185869714,786956289,-497466880,771862773,11280069,772622216,82316939,772689801,82448011,-955232375,73929287,-334591186,340756740,116943081,1381047895,-123475885,525949531,868419423,808234203,154931058,-1818752137,-150992198,-338164766,-2134683924,17096254,378212213,1169425510,-58693683,-336366462,-264339390,997523460,12064395,1962932867,-15879156,-1275023330,-1340145910,-247561472,125173508,83050115,-1340574465,-182023445,-249641980,126428676,38258470,-970551152,512754759,74061509,-12724084,990148095,-1207601982,567092505,-768359649,12173963,-1090056702,-400682898,-1021315024,-370606286,365738751,118377586,-1106219329,196673580,-1493959680,-947832203,-964624364,1639514132,1973875456,-465666005,611582468,-1391429186,3606075,2143165045,104574224,276103229,82052806,3653376,-1190102594,-1527578604,1172882424,197392891,1344501211,-1207545006,567096601,74063497,74188428,-1207669062,567092505,82314951,1527186654,1354979418,-851246920,1971338287,-1202518508,801981200,11542153,11667084,-128448677,-1017579069,1946148072]},{"sector":8,"data":[351844870,-1275024663,-1340145912,1975520000,-2134641135,1589249652,9824533,-384512070,-1397096305,277781,-2065104013,81896192,81724985,-542964874,-552170748,-16141308,184594462,-1174047296,1709905246,12064393,11542155,11667086,11929228,83035788,82910857,-2146464986,292875257,1978333568,2005607997,1200498177,-337736957,2139170523,1972408322,2139104809,578129924,-1070335093,-173881974,132356,512350211,-970587980,-953751035,32178501,55413798,683280363,-96278507,1296417785,1482184781,118370392,-1089727810,-424083070,-1096486142,-1916858689,5355780,1740154099,-1088303819,-1229062134,571658,141862643,-401313606,-1007027704,-1266679623,-2140680896,175374588,-511509376,346077938,1186260459,-58693683,-2131266430,-311099140,863125564,509083832,275693319,1741551499,1962998912,-1381106472,41205771,-796133150,-1174643573,-2126381053,-1392246589,-1116355781,1975663533,-1259347272,-2140680895,-143359236,1962998912,-2113484888,-1996488703,-1274969058,-2140680894,-143359236,1962998912,-1161655408,-1073015601,1860764533,363641599,58055435,-134257431,1978663107,309519,507110355,74843359,81731209,81731211,79283083,-1444162816,208928783,79254339,-1981558016,1527045918,1741505460,1954741376,16548087,-58715276,-2146732922,108168700,-384455494,686423829,1712753151,-388287740,113769937,77595880,1945988584,-51910651,1048626169,1962935524,4170007,3614455]},{"sector":9,"data":[-150732615,-553239567,-972721148,33874950,50168,1380974592,1712753454,-850938876,1961101927,-2097381352,1515908724,-58719568,-2146995060,41389564,-335999824,1482356739,1371734387,-146800455,-1947038735,1364416976,17155979,1238946048,-388906749,-388896559,-1023163508,25429547,79239282,-739276032,736822253,1912701998,16613638,-385649904,1532559558,-1957434061,-773944382,-654093845,-494808181,229711871,-770970669,-1958542988,-2082960437,125175033,1481239179,-1957641685,-1207671274,1481655296,-850242736,173759079,1131312612,1354825304,1499000290,-469086120,1460014452,526319243,-2079945170,-1912280319,-218004450,1978469285,1358452772,378220188,1219757158,-469080115,-58716044,-2131856254,108302076,212884058,1486734329,378220227,12059750,-850242748,173759079,1478260196,1961101904,-335596796,-1946799358,-341445683,-2097381192,-998014604,-2146899194,-764116228,-1341995901,-1544816382,512475186,-41877116,108204032,67173761,61867635,201376641,134268289,-611398261,860969821,16613833,-1962445248,1073790413,1397869867,1073789266,-372126165,41078075,-16069237,102631540,1610058582,737937183,-1260745751,378220100,1481639014,-850242736,173759079,-2146732828,-277576964,-117264296,1492648683,-998045837,-706086650,195425024,1511683309,1381188187,991953081,-1962772787,1979648717,-336186620,-335596618,1566268082,1978469208,11135235,1372140368,-1672457480,1712753454,-850873340]},{"sector":10,"data":[1961101927,-2097381359,-58659212,1510438030,-116608934,1486684907,-2096860326,1354958020,378220114,1202979942,-469080115,-58713996,1525576834,-2147307430,125078780,2005793920,-116609022,1526203371,-2096860328,784532676,25431691,1912864829,268451081,-1070398349,61867755,201376129,460717834,12179854,1995520832,-164412925,-372126165,-851750317,-846527882,-1895886615,1073789377,57866555,725810995,-336997937,-1672415005,1712753454,-850873340,1961101927,-2097381359,-58659212,1510438030,-116608934,1486684907,1342177475,378220114,1169425510,-58693683,1525838978,50008,118358016,-1089506370,-424083070,-1096486142,-1916858468,5355780,1048683763,83887342,-1006236558,637578270,118507403,315426539,-523041103,-761014133,-31519218,-972754938,33874950,84175544,78708751,-896735021,-1185889789,-503906288,-1996389725,1476494358,81729163,-67058953,112265333,-1039932717,569049715,248649355,82722433,74646784,201386625,-1036316814,113707895,1256,-133895517,363641539,250972136,12843295,50331648,318865926,1359053846,-150990663,-16098831,520490100,-1064372341,-1510737269,-661732360,-152309109,1397774166,102650449,-2103369970,-2078897407,67120385,-1191126397,-235470832,-225716082,-947650933,6273344,67063,100078708,158597122,16940419,629343093,180847613,520611554,1482381658,1388535391,1917078849,543520361,1629516649,1634890784,1634559332,1864395634]},{"sector":11,"data":[1766662246,1936683619,544499311,1886547779,1952543343,778989417,1936287828,1869770784,1835102823,544434464,543516788,1886351984,2037674597,543584032,1919117645,1718580079,1866670196,1919905906,1869182049,1397567086,1296126509,1447645764,2117,0,0,375062528]},{"sector":12,"data":[]},{"sector":13,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1145913682,1702259058,2017796154,1684955504,1293968485,1919905125,1632444537,1701273966,1869488242,1919950964,1852142437,604638580,1145913682,1702259058,2017796154,1684955504,1293968485,1919905125,1951604857,1937077345,1869116192,1696625527,1919906418,1378093581,1917078849,979727977,544165408,1702131813,1684366446,1835363616,544830063,1767994977,1818386796,604638565,1145913682,1702259058,2017796154,1684956532,1293968485,1919905125,1632444537,1701273966,1869488242,1919950964,1852142437,604638580,1145913682,1702259058,1631723578,2017796196,1684956532,1293968485,1919905125,1632444537,1701273966,1868767346,1869771886,1751326828,225339745,1095902218,1769096269,540697974,1869771333,1852383346,1954047264,1701080677,1701650532,2037542765,1819042080,1952539503,225341289,1095902218,1769096269,540697974,1635151433,543451500,1634886000,1702126957,604638578,1145913682,1702259058,1850286138,1717990771,1701405545,1830843502,1919905125,604638585,1145913682,1702259058,793321530,1919230031,544370546,1701012321,1852404595,1919164519,543520361,1869440365,168655218,1296126500,1986622020]},{"sector":14,"data":[1226848869,1919902574,1952671090,1397703712,1919252000,1852795251,1378093581,1917078849,979727977,1668172064,1634757999,1818388852,1634738277,1701667186,1936876916,1702043706,1919906915,2053731104,1684086885,1953723754,168649829,1292504356,1869767529,1952870259,1296126496,1986622020,1702240357,1869181810,775102574,1981822512,1970565737,1679846497,543912809,168639041,538976292,1936278560,1769152619,540697978,168651556,538976288,1952671059,1931506287,979729001,1646273568,1936028793,538970637,1816207392,1633906540,1852795252,1768846624,606091892,1667592992,1936879476,538970637,1766072352,1952671090,544830063,1920233061,980641129,168633376,36]},{"sector":15,"data":[10508877,22,13631520,55771135,128,41091088,30,1]},{"sector":16,"data":[0,-1869611008,503939560,-1305048266,100773893,117727464,1912612024,918894088,-1897396834,1810374402,-1869561079,638148072,187909515,505115840,-1960421626,1958742789,192233475,-402444056,58000769,1594179560,1072176903,-1869561079,906572264,721632929,-388879397,736625302,-1869561079,906567144,-1157415263,-1959329793,-402441194,333972094,-1869561079,-1962342936,1552811604,720538380,-397009216,62391265,-1003916800,-1992948097,906337854,94373516,20808486,-471334027,-1205922299,801968641,1444814686,-1226260438,-120032509,-873980066,-1075264760,781225992,269964,-108847338,-1962117887,1173738,1912624872,-117314808,565707635,145025024,-1909580093,-1962933218,147162101,1284183179,71600898,520516747,142665923,-1943105392,369099806,33129247,-2094657931,1946170237,-387282169,32178188,-1207733255,1676148769,-1125596408,4778239,1428100803,2105746974,896794675,8251479,-399609251,611452207,-1945473655,1166609477,39684356,-1995944567,1149961813,-1996125948,-1590295428,1166607164,166459406,-352312136,2209796,-1017307143,639508246,3374467,-396938380,1935474743,-1960151764,174864693,-980671627,1963748409,780875292,1815675708,-1961724658,772114692,-1996488543,914959876,-336068608,57932033,520102328,-1831171133,198085521,52720882,1942492115,200444678,-2095548943,-645725718,1444875776,863341350,114518,1577327848,856157021,565724918,-389809920,-1869609074]},{"sector":17,"data":[508647174,863863590,237794304,1972053535,71628595,527761407,-184424061,-1590290061,-1959393840,-1962553826,63515601,734532563,64481535,520102328,-402170023,-1866266794,122218640,-1962779509,118883404,-2029797697,-1105260839,1015024133,2080732160,1225188132,-352226301,-2091493391,-1431565114,-92946422,-975599778,300091004,729662793,-160039157,1226847,118286585,88443843,521067148,721712267,1962281929,175913743,1413154421,1090614540,-303352693,1569446542,-386375889,-2084370718,1962947452,1050752572,793020675,54305078,-399424375,678560018,-1959568247,-628358580,2143559438,1002474502,990148087,-1995541310,1468597879,-1982165496,1150036860,-119894483,-1665642301,102950921,96345870,3964938,125765500,-352226301,-999887884,-16054660,992408180,175451973,827165478,-902051037,-1004140940,-420795523,17155878,1381191680,-1960421858,-167040139,526257781,-2147388413,-126615492,-164932066,-1640068810,109852165,-1910110816,1443245381,369309160,302102559,123678669,1532632926,1979648856,-342955262,650377373,238253451,73174303,-167037045,2084255604,-1943243510,205798336,-2127157899,67320382,906589533,990067873,326438468,394859659,41262,-1993472887,-1962934218,-1949570062,-348877858,-15419,-1,-1,-545259521,-536880129,-1207976193,478134271,536806399,-24443106,-1979683864,-253394712,-256572812,50348520,521049792,-1097561298,108512515,729085451]}],[{"sector":1,"data":[-1979692056,-253460256,158721290,795708198,1949264955,1632269,-1048166336,-120339829,1959069042,-1193940181,116981792,-1007187169,-461315958,1022370831,839021936,-790048576,-1964453656,48812232,717488833,1150010340,-2147440382,45089396,-461315958,1895596272,254018677,-527826932,1961944192,1157022465,-109838076,516104368,184059478,721450239,-1394922798,-746530814,-1071496704,521074037,-2146826818,561774652,1547306356,50689027,-269811340,123718283,-2091493626,-1494020922,1491891550,-119633064,1979654851,-115384825,-1023409224,-1106460029,1015024133,1951890432,24380165,1150022891,1942108929,-336592124,1036135401,208797714,-958756013,1082720256,1539320577,1418317827,56395777,503383238,-1950340345,80184318,783002539,132863,172334,-2083877973,-963965719,-1527570594,520542347,-1031027720,1376578179,780371,-2056037797,616061016,1355020544,-1962277442,21793790,2080390272,990606653,17003767,-251461299,-147067925,-251459979,-504627573,-661856373,-1527529330,2143624791,1962871558,861767944,-349471291,-966844428,1971912709,24979713,-963920917,727435051,-208944189,184960139,158663748,80147339,583680,-1229434685,58124297,96359254,22842122,2080390272,50623507,-2131563533,-143327176,16865419,-437583524,247684699,650152991,-1926013557,-166995081,2084121204,956658987,91499844,-349473595,1166747373,725911851,759532326,237847689,651899679,-2093785721]},{"sector":2,"data":[-1023408513,164804688,100865000,-1919090909,898303100,1651832355,712350877,906914955,54275643,1959009397,1821058570,775632431,242549566,993445260,1963302958,909850117,898303390,-359982988,-1962775509,74193897,1821052018,-1947522298,-400881556,-24443277,-1326762613,855917619,1278411356,106181384,-1056193781,-1191591413,123535393,1049308867,-14483456,905906548,429870,-1207637248,-1007091676,1460033054,911299408,94254789,-1202463949,801968662,-1203342757,801968660,-347929740,918784749,2367118,69259,994302860,504395211,753457550,940492032,-425216,-2145389451,1509949502,-611579020,204291,-337932733,512636627,149422896,1482381568,526255967,839814083,876528640,-1359807488,650314100,-47674,-219479325,1602956995,-2094611702,276037693,861768486,1006628584,74783836,-1021682549,-1977170951,1149764677,1166747166,440699147,861768486,-1979724056,-1062003620,38046403,1883041828,-617384075,303478867,1918578637,303347820,712257485,4031270,-1960434572,1144717893,639333634,993215883,309670724,793086758,1966031931,1166747145,826555185,-347929740,313283,106307072,521556823,94256836,1492682728,526255967,856031014,548950235,1479527698,975573874,1124299781,-986255381,-972706250,-1014235388,-1398720829,1397801733,1465274961,-402252203,915079602,-1070463566,1929155816,-975598519,-1590294921,1144587068,909866289,956513953,846540612,620905611]},{"sector":3,"data":[1883046128,1023767552,578093056,187397317,-1898482186,108512729,-1640593098,512505349,1877476768,-1205922050,801968641,1676193003,520616193,1516134237,-1017619623,-1960406896,-478083747,57966720,637571049,187915659,-385649189,870842500,777395713,-1962510395,303347912,58011597,187397317,-2090437386,175506169,1963194755,6285315,-922003477,-1960437131,1552485725,1569400333,257722639,345335,-402426752,887816316,291343142,638672009,-1995219573,1157043036,1954545669,6481925,-1960437013,1552485213,49906443,2088961652,141885493,1656007,895256832,-349473595,-400597364,-1950154566,-1993994916,1552616797,1569269263,291277583,291342630,638803083,638803337,345591,-402295680,300613652,638278795,638279049,1656263,1569269248,-1202601163,801968428,1448330073,-1960899042,780528,-402002498,1579089925,-1392579749,24494090,-854674237,16050960,-2147483648,125112572,58048522,785383344,155135743,-873025560,-873017368,-873007128,-873003032,-872997912,-872980504,-872965400,-872904472,-872888088,-872565784,-872572952,-872560920,-872527896,-872500760,-2147370928,-1017632051,-2130593712,-1017632051,977490753,1413894944,1919705376,2036621669,544106784,224752501,1297219594,1394621006,1277187142,1713392451,1684825449,1869488243,221257844,1397882890,1394620995,1847612486,1763734639,1179852910,1768693844,168653939,1634226944,540697970,1702129225,1818324594,1920099616]},{"sector":4,"data":[168653423,134217728,1312768,0,2388,2392,2396,2400,2404,2408,2412,2416,2420,2424,2428,2432,2436,2440,2636,1426194432,681994,8388864,1946844928,1177486090,4992768,4410927,0,175377023,4140801,16843009,-16777216,255,0,0,521011200,168304267,-1107039357,1552484869,-957152511,-1958281468,-1207301618,76087296,-964442485,-1544035822,-896794624,-752106612,-787495293,-772877858,65982958,800610034,-1994273483,-1945551074,-1207353082,1136272687,-1272853239,639749458,50529990,213842687,9486090,-218095943,1048782501,1962934340,2009409103,75268890,-1203407612,1001979920,98694912,251985926,-774319872,-773271064,1204233960,637534234,1578915724,477561126,476024358,1735,113770495,-65534,263879,-953810928,134235142,1458569984,444580902,72190758,637959565,1479,356894502,-953810944,5957,-499398781,-617350166,-1275066951,1126288702,-1201997342,567095552,-850656840,512790561,1912647912,-850217972,1048585761,1946222596,-16664570,-1593786904,-1073020884,-1064434060,567101876,-1274982936,-843042288,1979661359,-16599034,-1207919128,-617395454,-1950118394,-1943024133,-955578432,62391924,8710399,-880015865,172326,4047659,-1207732720,-617410560,-523116335,-523116335,-1962880125,178335432,1228298,84272887]},{"sector":5,"data":[13796106,134611758,13796106,108516155,-1053095307,146278006,3991553,788466104,176621254,3205121,-2029599186,-1906835446,16825552,-385985559,175309502,401139338,381694720,197380944,807424,84934912,1213407237,4543041,855638715,-19778615,50102478,-192272777,-2010242443,772558094,206505670,113651248,503385168,1258721070,312844,1228290862,1090614796,376767036,1292289582,772669708,206243471,113716801,206703689,-25158165,1008235522,773092617,206374598,-1892807167,1091324678,1225180974,235688460,1194757407,-466464756,1476613352,317195891,55306240,-2025947090,24445194,1291827395,-1195171379,-617391872,119655686,855638715,-1023297847,-1275035202,-1910387358,47579,1049429774,12192328,914957824,1105726537,-49909,-1612119179,15616,163056501,-2116384000,1946845179,9299971,176398630,-2128704730,1912307978,-402098934,12058775,-2128491188,1963613947,1048585791,1946225288,113649171,637602440,168298041,-1557789581,1374358024,637534648,176621254,106307073,344609111,4319314,123689306,344465246,-2029599194,770375690,174193537,-2144986251,17467710,-970535308,17467654,168180006,637825802,-351663453,1694204172,-1207536630,82313219,-11867904,1980316867,-1928744958,772656926,-402475817,12844682,151193857,151586313,-930341367,750311566,113409,-1241513799,-1107250433,854065152,19873026,-348126348,12787701]},{"sector":6,"data":[0,-16777216,16777215,0,-16777216,16777215,0,-16777216,-1,16777215,-16777216,16777215,0,168624128,0,603982336,1303445569,1329864787,1700143187,1869181810,775233646,673198128,1866672451,1769109872,544499815,825768241,960049453,1766662193,1936683619,544499311,1886547779,1667845152,1702063717,1632444516,1769104756,757099617,1869762592,1953654128,1718558841,1667845408,1869836146,1092645990,1914727532,1952999273,1701978227,1987208563,1344300133,1460032083,-1047606989,783875891,-855592430,109850159,-1993470459,-1207041218,45224494,-1943130163,772672774,235617929,-1307431240,774884612,236783244,457083182,305051662,801965746,17206318,1049177614,-907538945,109850119,-1993470467,772668222,236521100,389974318,138995726,285641774,1049177614,783814159,-855068142,109850159,-1993470427,772678462,238421703,-970061299,604929798,990299950,771751950,238880455,1021837322,1049177607,434638375,3205120,1358971880,1912623848,123689224,-346530982,214205188,1448133625,1660991518,119415245,772436511,237975177,822512686,-1017618930,-1153171272,-768409600,-427810355,30310401,-851181128,12108577,113476,567136819,-1207841152,567100417,-852446013,343329,-336067723,146712,-4520589,-1157370881,28835842,47360,-4849486,1397801977,106386769,787057490,238231177,943097902,47769614,477415691]},{"sector":7,"data":[91614475,-352311576,28960771,-396752782,1594294534,-998046485,82573574,-111517945,1499268722,82532443,-116865917,1381191875,857639726,-294130,753403253,-402396416,259194999,12278196,841075968,113542116,-2096043015,192217083,125092155,-2097106712,1928922820,1482381827,520494787,1963063683,637711387,567088522,-389903841,102629553,638022431,-855550582,267122721,-922025292,-1977218700,1193397525,-118262455,1347928863,-91532538,-645200098,-218359120,721647022,-880063527,1599604571,197145539,508523721,1085546246,-108800117,-852986623,642785057,1525155210,102651904,-133795041,-851296076,-2144953311,41228861,32227723,-68677937,1427827711,-5838767,-849745525,-352160991,1959279371,-118998265,-1047854475,-1195172003,79364135,-1023298304,1962933888,-2134444527,119409781,238435981,-402652487,113508095,1053044311,-16052689,-2094655628,1962410045,87696912,975570802,24576325,-347650055,-1022926871,956731182,-1814351090,922168978,781389373,238892791,1980365443,935493637,-1031797781,188830256,184841664,-2093189925,242549753,738884736,-13760907,1091454518,-108845845,-2146536186,1965820540,922693126,-348058042,167346961,2088766581,108342282,1178009390,865288462,866315218,784348114,238630655,198325187,-1272875831,637579301,175449400,23410726,-1002830732,-1977217419,-11802619,1195835763,-478852798,197822294,1295348973,993952558,745865230,67519626]},{"sector":8,"data":[1161438768,-352160511,1966095391,1959922436,-348912892,1048588007,1979649592,1229079048,-347123895,-17917,-386323625,1499463167,1743455091,-896839280,425088,-922022540,1229522548,32196423,185658206,1577285065,-108852757,855799295,1962871753,106386750,784937809,238763651,-166497024,1963919172,41731080,-352161304,25880576,585630699,1493660160,1583177479,-998046485,-2094073590,932670,57804149,788474601,238749383,868417536,1000419026,113716750,659005,1493082600,1065846830,-75283698,-402426560,-906100214,230223221,-2021052918,1128468031,-1023280664,-164408490,-25114317,772371967,237485195,686546827,1946339062,-1127993847,-1014231541,322771691,1024356864,158793767,398246958,-339506162,-1127993849,-1014231557,1979710339,-98281,-336002187,1000549901,-18418,855638461,216791286,1946221443,5564419,-133904765,-922024334,-1695874443,33456284,1431447925,1347880529,-855310152,1493122095,-661976715,-855309640,-117314769,123667827,-2096698535,216532676,-346399488,-401682687,1583087611,-1185916989,-1070399489,-772296974,-1017161655,1963064195,1048784417,1962872355,-49895,776998261,772684705,237182719,772139864,237182719,-919397653,1962933888,1300899334,772401923,74790200,55413294,-117127293,200813939,-2145815351,91553790,-351978714,87764483,166396533,-2096794551,-471137081,-2146667783,1979252734,637996546,1912765699,653079046,776408458]},{"sector":9,"data":[238356166,-617364736,425088,-953281675,537804679,776160045,239044550,-1410841824,-617390848,-2010197453,-1978780402,-1053161148,-1054204042,1157034122,359956487,772424842,239044488,1090224963,2145911669,1976499712,142377195,940405760,141756492,-1979167702,139234001,628410635,252134646,1156975733,108269575,1191545382,777519595,239044488,1090224963,1139278709,1976172032,121960155,169440640,-1978305290,-2010248636,1125007239,1967192963,2418691,-344600834,252134646,1156974709,41160711,-771093013,-1892808332,-32622330,-386435638,-1017839614,509019729,868977415,1061064155,-78518258,123667826,-2096829607,-1007089980,121960029,638743856,1095763338,1945909480,1166681606,-336048127,92939789,74760202,-169131705,-1017775829,134219263,2097153,3407874,4653065,5374252,9699629,11534638,16318767,20774915,1668172055,1701999215,1142977635,1981829967,1769173605,168652399,540091670,1701997665,544826465,1953721961,1701604449,235539812,1763717413,1635021678,1684368492,1229261325,1635021678,544435308,1701603686,1634235181,1735289202,1684955424,1668246560,1735289195,1885430560,1818845793,1701409897,1852776563,1970239776,1634214002,1679844466,778793833,168626701,1095258911,1528841554,1933198895,1701011824,794501213,1869363788,1567845219,168626701,790634572,1886599750,543515489,1816207392,1633906540,544433524,1701603686,1634759456,673211747,1646292585]},{"sector":10,"data":[1936028793,1868963881,1768300658,1932354924,1769103720,1763731310,1919903342,1769234797,221146735,538986250,1815759919,1936417647,1394614304,544437349,543516788,1651340654,1864397413,1768300646,544433516,1952540788,1851876128,543515168,1801678700,1629512805,1852776564,1769218149,221144429,1213410058,541413953,1852727651,1646294127,1852383333,1818326131,543450476,1701080693,1329864818,1162367827,221137996,-1928917494,-2129310402,-1023307839,33555713,524296,1638399,1936607507,1768318581,1852139875,1701650548,2037542765,1954039057,1701080677,1917132900,544370546,118370597,383860365,-1019690621,83887362,1310721,2359299,3080198,5242889,6946815,1869566995,1851878688,1634738297,1701667186,1936876916,1986939150,1684630625,1769435936,610820980,1634885968,1702126957,1635131506,543520108,544501614,1629515369,2003790956,1914725477,1701277281,1918980124,1952804193,1713402469,1634562671,1869488244,1868767348,1667592818,1632636532,543519602,1869771333,824516722,1049429774,-1048504547,885194898,-1761562103,16756736,-16777216,0,113716736,6081,243871484,-953280588,1553926,113716736,6089,-1173960914,-402653161,326305178,1409286072,639470374,57872186,1526727352,771826665,398669449,-1923786925,773311262,398591734,-1404865248,1913006824,93251644,-1075300492,773354757,398591734,-402295520,652936534,-1039731154,510935319,773581646]},{"sector":11,"data":[1027344264,-2144467339,18334222,101967939,783074675,-347928696,-1993453890,773306422,771753926,398925449,-1927443674,773311286,1949252736,1015033398,772305954,398591734,643069185,838944650,104410852,309532596,397713710,1128521937,-1960388605,8972319,-953259541,18331142,643885824,838944650,-523157276,-1977165821,200094223,1125086409,529213011,1526777576,1128481139,-953224478,51885574,641002240,838944650,-523157276,-1977165821,-773574137,-670875424,839879206,1959332845,642990863,1575493515,192109312,-220052669,-1241069778,1560282135,-1959896225,773305358,773306017,397948555,-1172927698,512372247,-1007151172,126559824,1962934953,117386757,-2144462924,427098172,1962934697,113716745,137142,-1336930581,-385895421,-346554210,18737155,-1007041704,-1977200299,-315488177,225757451,-402034803,141755255,-503312664,116128246,-919697106,1566177303,2122327747,57933824,1173809989,243281603,-401598526,1249050566,-1037664210,777056023,722978209,100740806,777525187,398800523,3964974,-2144459147,1966800764,113716745,595894,-2094653461,427032639,17299238,772961536,397805255,166395906,-134179096,-335999509,61886474,65601460,-1007134720,2139825751,1049177604,-2010769478,1703421445,-1590800383,-1993992247,1012400709,638219521,637818249,-351908471,1963080794,1435051526,1011936004,1021867015,1021604872,637957382,-352037496,1963211838,-1012847089,-1993981929]},{"sector":12,"data":[-1943665595,736822877,74811686,105745446,1207314000,74711298,166397104,38270502,-1341819902,11855874,1207314008,57937922,1593869288,113651395,1342183509,185043750,1343780288,777474643,397805255,-4980727,1541931952,1532649471,-352130216,-1874924797,1954545833,113716754,6070,771817192,397819523,-1457097463,309608448,-1241069778,-402653161,-2094137149,152548926,11079541,772437024,397805255,-488112128,1048587777,1963006037,1048784399,1962940342,113716743,595894,1448133464,168069678,1008366784,772633914,97408,-970062219,166395908,1929597160,-347716095,-1017618721,-796241322,-402355666,208798525,208977930,771755240,32179336,-387234234,1019436634,1007448960,1011184225,608270202,1396567007,1049450246,-92268464,-1929087996,773344062,393483576,240275792,-1973046265,-17470,-1174403655,567148543,777541978,771841419,1124287886,645934147,1527209943,-2144448317,-2145926642,-1037664210,-1976632041,1948990468,1965898762,243281415,1174542274,1476395752,1381060803,868823894,-1976675374,1958742532,15853634,-466470542,-489559925,-756493871,-1960021504,-775844902,-388902430,527564997,-774774063,1912650984,332595990,11790536,-721220238,-402599549,57802921,1539042118,1526762985,-1039731154,175374871,-755510793,-2097036669,-1960443695,-1977219465,1962949636,-1274957817,-1871385601,76162630,1618214972,116796998,1971328962,1278944798,2000056835,1413162502]},{"sector":13,"data":[640578049,1996966971,641364520,1996837947,640871200,2080590907,637959960,2080461883,1278944784,2081062663,1413162524,-352157947,164004628,-1250572034,-1241069778,-1342175721,-335563775,637644818,199959690,-1241069778,-1342174953,-385895421,1516174678,-1664919463,-1039731154,41222679,1889387421,-104597502,1915763907,2000239624,-131060732,1355020739,643256915,637960075,-1073085046,-4979595,-953284117,152548870,-1325419520,-49223677,1482381919,1381322947,771928662,1927808138,-398691839,-164692411,135774726,1027345780,-2144985227,1962934654,773057393,398591734,1007580176,638219578,32384,-347710347,1178216028,169702656,1179808960,638839621,1962952250,-1976678843,975586564,980746310,-1477753530,-1039731154,259276823,38270758,125042720,8290342,639792128,1050615,977016948,-2144990859,1962934398,1007610637,638022912,973110912,-336002188,914959878,1593317317,-1017619110,2287788,1407719540,773223680,398591734,787313696,398591734,1309242433,-336001301,-1018234879,1364444152,762580284,695468092,628361788,41779238,857633282,1569335003,79921923,3768358,-919401100,1124698662,1946237478,1022943748,-1017423603,-970043053,538426374,-1037664210,540860183,154941044,742142580,540815732,1015024757,-1341688544,-1069922784,-2144985365,1912668797,650720023,184765834,-1156877111,641925123,125043002,540866786,784554841,773307554,398591734,772175105,398593664]},{"sector":14,"data":[-339723744,-886141465,1960655639,1966029834,250345731,1007414264,772175151,398593664,516159552,-2094116010,1556286,508569461,1431786065,-1896467706,1660991710,-611573299,1560795915,525949535,774468696,398276233,-1088517842,915090967,-1909581891,-2095595746,276037692,141689914,1996571706,99350787,-336902586,526277624,-50331453,647016966,-51793920,1883099391,218103808,1986610186,543515753,1919252079,2003790950,1247757,544567129,1953723757,1986095136,1752440933,1768300645,1461740908,843140681,942878256,1852383286,1701344288,1869574688,1718558836,1970239776,1868701810,1679848559,1702259058,1869875725,1853190688,1852397344,1937207140,544106784,1634233925,1684366190,1685015840,1493831013,460224846,994918400,1027488851,1380663101,289489234,486542080,419440384,721428992,520099328,167781376,301994496,-402646016,246546219,11910999,-234418682,-782301266,787057633,-909924609,218149376,16887808,251703808,-20480,1114111,65539,-1,11665422,-860880888,11665409,-2135949301,11665409,78643221,-871512448,1280658957,538976288,-1308619232,-1342167296,196607,590002,33554352,8448,7680,7680,8448,8448,8448,8448,8448,7680,8448,8448,8448,7680,8448,8448,-256,4523519,36634802,3081136,327936,1056946,202181808,202181645,-1879048179]},{"sector":15,"data":[251592704,151040512,25210880,570470912,9482240,-16777216,16777471,11665418,246415417,197888,721074,244912,327936,786610,37040,392960,29819058,102576,2883762,50331568,-33508864,-20476,-2147450880,-1908324966,1166053185,1229538629,-1869640119,-1722838382,1498764623,-1667523943,1100979869,-1521135799,-1465407835,-1398035799,-1330663763,-1263291727,-1195919691,-1128547655,-1061175619,-993803583,-926431547,-859059511,-791687475,-724315439,-656943403,-589571367,-522199331,-454827295,-387455259,-320083223,-252711187,-185339151,-117967115,-50595079,-2130706691,1167753216,-1891529151,1162167680,-1907799735,-1835888497,1431279951,-1701226155,-1633837925,1330200991,-1499093675,-1431721817,-1364349781,-1296977745,-1229605709,-1162233673,-1094861637,-1027489601,-960117565,-892745529,-825373493,-758001457,-690629421,-623257385,-555885349,-488513313,-421141277,-353769241,-286397205,-219025169,-151653133,-84281097,-16909061,16783103,65280,772669984,1532768034,1014774365,993864510,-1308549332,-1342170880,33619969,100992003,168364039,235736075,303108111,370480147,437852183,505224219,572596255,639968291,707340327,774712363,842084399,909456435,976828471,1044200507,1111572543,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,1583176795,1111580767,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,2122153083,1163215743]},{"sector":16,"data":[1094795585,1162167619,1095321929,1094796609,1431261007,1431263573,606348324,1330200868,-1504817579,-1431748697,572632235,-1296977886,-1229605709,-1162233673,-1094861637,-1027489601,-960117565,-892745529,-825373493,-758001457,-690629421,-623257385,-555885349,-497819425,-421141277,-353769241,-286397205,-219025169,-151653133,-84281097,-16909061,-1308556801,-1342172672,24346684,511716555,179288915,1540824846,1231647,721074,-939522640,-928659290,530958501,522067740,505356062,639573535,704643072,33554450,11264,2436096,3342514,34434224,1023455744,-20480,65535,589568,590002,542068400,1162690894,538976288,1333863936,-889126909,11665427,28311566,50267143,50463496,67240712,83952641,117375747,117507079,134546695,151323649,168100871,184878087,201392905,218170375,251724809,268567304,285344515,302121741,1342309128,537002764,553779722,1409417738,1459553281,1375798019,838992897,1426260745,1459815180,1392575241,604046349,637862913,654377985,1510016001,-16645107,335544319,335677195,352388356,385812229,385942788,402785291,419497220,436338949,453117707,469894155,486803202,520029189,536806405,553583629,553779722,570556938,838993675,587399945,604046343,-16448511,335480077,387323156,454695192,522067228,-534634721,654356992,17018881,218149376,267694080,2228224,131072,50,33095684,17170432]},{"sector":17,"data":[768,264241153,2228224,137,9175041,131072,0,99352581,52495850,51708734,1660944524,1769430074,808608110,909652782,256,-164233216,-16572410,-13235083,-855418826,540966952,930414595,696508,-1879048192,26,24,38,35,32,27,14,20,6,0,-521665557,788475392,65736802,771806952,275132159,-857209877,788475392,65736810,771801832,275656447,-1192754197,788475392,65736818,771796712,276180735,-1528298517,788475392,65736826,771791592,276705023,-1308562481,-1342174208,-620327122,110046736,600641757,771783144,282799871,-553218258,110046736,617418977,771778024,283062015,1541941453,1072220928,-969999872,205062,-410267506,-1906958597,-1948610878,669567939,554630656,-2045342205,-2077848827,-1997763835,-224329658,92578565,-1559891807,1532495238,1600019033,-821616803,112480339,1662975790,-1017423855,0,128,-65392,1359355548,-986818730,772892470,292241092,-67107655,125085683,123297375,1405328671,785419344,772834979,277358217,-795948916,-1274568516,520039941,-1073016477,-1590816908,-795996026,-2010739922,-346335216,-854608693,1946631184,-1327222266,-1273967358,-843042299,314097168,-1392763122,158606396,129699508,-351220480,-34866190,112,6,131106,3276800,4,17170937,50331648,1,2232256]}],[{"sector":1,"data":[786544,1,1358954496,1052299,-883294494,11665720,1555038227,1314213699,777605716,206788947,872460800,28684288,-1392377850,67108874,2863,766213,199296512,-486080512,16777228,65574,437,36,771763200,973090048,131072,3317,-1308607700,-1342174464,843123213,1632116784,1635214450,1159751026,1919906418,908331533,87439045,-402164539,-986279792,-989514186,1374160756,700077830,-476387326,1364789087,1947876524,-1943083003,772111902,92020361,-611398772,47122174,911261747,637725345,1479492923,-544530682,-796147661,504291304,909559094,246409221,-2034968693,155093814,13104899,-400984960,-91547833,276086794,57934652,1607461663,910083126,77719813,-1392866465,141829180,246679475,-202698547,11206379,982706,-80,-1,-1,-1,2945,24117248,54198678,1112671035,-1064507253,234885125,303903,787971,244039822,-108331002,-34108593,-1202674445,-883949516,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704,78708751,-789068149,-628299565,74698795,-768878452,-268181293,-947135858,-388771593,-802438516,-1064565645,-522989013,-1030817789,1322289836,1187548077,-31145334,91598908,-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094,-1031072797,-1064385789,-2080863315,292880383,-501415642,16417267,-2129234704,-351272766]},{"sector":2,"data":[1086360796,-276578162,486614544,-339702200,-1950118942,-1962932162,50334262,33948144,1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602,482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,1012848,169216530,169740826,170265122,170789418,171313714,171838010,172362306,3147,0,0,0,0,0,0,0,544567129,1953723757,1986095136,1752440933,1768300645,1461740908,843140681,942878256,1852383286,1701344288,1869574688,1718558836,1970239776,1868701810,1679848559,1702259058,1869875725,1853190688,1852397344,1937207140,544106784,1634233925,1684366190,1685015840,1493831013,460224846,994918400,1027488851,1380663101,289489234,486542080,419440384,721428992,520099328,167781376,301994496,-402646016,246546219,11910999,-234418682,-782301266,787057633,-909924609,218149376,16887808,251703808,-20480,1114111,65539,-1,11665422,-860880888,11665409,-2135949301,11665409,78643221,-871512448,1280658957,538976288,-1308619232,-1342167296,196607,590002,33554352,8448,7680,7680,8448,8448,8448,8448,8448,7680,8448,8448,8448,7680,8448,8448,-256,4523519,36634802,3081136,327936,1056946,202181808,202181645,-1879048179]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[-1,10668032,1297285293,1096045121,1108300353,-603923436,-603912448,33610752,-603923455,33610752,922803201,-301928958,56320,256,0,0,0,265879551,4543,0,0,0,0,0,4194320,0,-1,4574,0,65792,65536,-1879047936,0,781,0,0,0,0,71566404,0,-1993474048,771792414,10487436,1364219595,508909394,-986819834,-1962893794,1468731983,38242836,304515630,2009348608,1293839,66061208,243254512,620699406,183174064,-1642150610,306693888,-2118909952,28574443,-1642150610,55019776,1562314587,1482250847,-655635618,-67035159,1915287939,-1845049353,-956301312,37894,-1777940736,-973078528,16809478,7353995,1157058118,1962934536,-1845035238,138737408,74711044,9701119,34096375,-16485376,-1962895866,-646625740,8259270,7774208,7808650,7708843,3352202,-1582578434,-1599405928,646578296,-1599405957,45351034,8208000,839611648,2084471012,41156608,-1179925250,512426084,-75300728,-1592232960,-503906166,-466422793,-1593799006,-503906164,-466422793,-1593798750,-2136799914,89694464,-1107262813,213450880,-1582959872,-768409542,-150990663,1959922673,-1582612479,-768409548,-770969097,-1421868684,-1325386079,-1410804988,10362565,739409795,2042105714,-930305280,306694059,-303497172]},{"sector":6,"data":[306694142,-437714904,38538750,40829532,42926727,47121085,52101882,53674798,68420428,516228337,1204224158,-385875950,61931196,654223849,646579594,-1002831351,180285559,-268199934,620752899,8259270,179890177,8259270,-23926528,8259270,178841601,-972463640,32262,-956399639,16809478,-401959448,113641806,-973078411,32262,-956405783,16807174,-2080481303,-1838021895,21334566,-1971911876,393347644,-922826498,8259270,7840257,-972399128,32262,-1560397847,837353590,66683902,-1960441230,-1734147771,-31266560,-956344343,16809478,-972409368,16807942,7353995,1157058118,1962934536,139232004,1177848580,113700725,-385875842,113704436,-973012866,30726,7353995,1686326854,881589000,-956926650,32262,-2080517143,-1401814279,21334566,-1535704772,-385844318,-1070334528,-2080523287,242352889,21334566,108462396,-385844574,-571867736,12642814,21334822,58048523,-1308780567,-1948200188,-1962919394,1004022771,2080388638,975079904,2114373120,-2142240512,13118,378212469,263454788,3940095,2054471691,-338489621,4855435,1741509044,1786110986,3677835,-472708687,-150957919,-91515165,-150732615,465972193,-678979881,1004664664,1913419735,2009479940,-1950340346,724822992,-136897594,1959922675,-259309567,-150991175,-1868459039,-1875498752,736229120,-1949398077,50359862,138725360,770179073,247890696,113701858,-385875842]},{"sector":7,"data":[-1990656788,-973063626,32262,-806810448,14215676,21334822,-523041615,3808907,-670829685,3415611,512428150,-1014300620,512345643,113639482,1342242942,3358336,-1961790208,-1275050986,1008664335,1975520000,9365779,378268627,1370751050,-469080115,2129330804,3677835,-472708687,-150957919,-91515165,-150732615,465972193,-678979881,65140568,-136899642,1958743027,-1175418035,-1868496882,-1875508992,-1948125440,1849068494,200278784,-1994754624,-1996459978,-956272074,-939524348,-64956,17319111,247890688,-2013361335,-1996459458,41716021,-64313,17319111,247890688,113698786,-385875842,-1990657012,-973063626,32262,-269939536,1166747387,89563906,71666470,-385525597,64492,776994816,10096383,-2144465547,32318,-13759628,1476434438,36634414,-435441659,-352261344,606135296,786920958,8259326,-1673624786,141819904,-434065157,128903200,10002734,-1700581638,113651200,-352321410,37062,227606528,0,0,0,0,-65536,-1,-1,-1,98303999,103220699,98240188,102565405,98240029,102565405,98240029,102565339,98240029,98239963,98240029,1499,0,0,0,0,0,2114373166,-1024065280,-1675790976,520040186,-970062502,32262,1526727370,1583292167,1515936605,-471115687,1381060859,1448432467,1392909911,-594875253,521076530,7683712]},{"sector":8,"data":[-2082966528,36926,-75247244,-787581163,2124939235,116713477,-351949336,94955710,-404178453,-390796538,-1351482279,31732304,1929414662,-2012862188,-2010197760,-2012872448,-1976643328,-1943088896,-1763158016,-1358498300,343146757,95434378,95489675,95755915,-402279519,1265762523,95356662,-1978633214,-1962559690,-1610237938,31983034,-164335102,67481350,915018612,243991995,29033916,96379136,1912646376,442925850,356959998,113651200,1526726782,1583292167,1515936605,-372287399,266927909,-14685947,1912849640,69200117,-1961605493,1451954766,241077008,-1677572466,1511981050,-2096532731,-2013193650,1475024230,-31824253,1394374,-159391104,17149702,915018868,243991984,512427441,-1281292875,46262277,116797810,1946289583,-1221162480,-1207006459,96116741,1912800744,-1358498278,376701957,96155274,96210571,-1593835077,-1863842370,-402427134,1625883786,-997568257,1285809202,367548416,-385649916,238747782,745865320,6952507,-1588582795,100728908,1048772748,1929314444,-1945753324,-1943088896,-1945763584,-1976643328,-2010197760,1542150144,5022032,9045505,9059971,689206015,-788493818,16812590,-788493818,-788493266,1476429870,-1320643758,870372105,-1899263022,2123039302,31707392,1141047390,106173188,509017906,1175912277,1579113728,-395218342,-1007156203,1979711363,-339478268,-940078209,67652,6817479,113770495,-65430,1347637586,-2147366528,-1415544630]},{"sector":9,"data":[235058181,1813940999,-353280,1929730590,301760529,113642612,-2080438866,-997586748,1049347065,243990636,-372177492,1149960631,106203908,-11184610,1560299030,1532501854,175331929,17319111,62646272,1284097017,173312268,-33004413,6819465,6952585,-1962702616,162615027,906225363,-930414484,-1962785138,-201588610,8292773,1381090296,-571939790,-32410878,52684998,-922827522,1499132021,-1023391256,95133776,100787250,1048772746,1929314442,-1979307756,-1976643328,-1979318016,-2010197760,-1943088896,1499092992,208987146,1912609256,-386661866,-1360330015,1912650472,-389612022,-922877227,-1007116171,1347506774,-466434934,95102710,-914160972,-2134212607,-1912578421,-90439098,89792255,-998044557,-960198136,-16404986,-494877703,1364809855,8293200,-2096992792,1165295614,6819387,372970101,208994410,6817479,113770495,-65430,17319111,508580096,1381455190,-1962785138,-788157426,71601129,-1224321909,1175912193,1566530048,1498947422,-1561851789,147096322,1284097017,173312268,-33004413,50492648,-33182658,36694214,-1804219138,1476427401,-128034215,1381060803,-1957355946,-788157426,71601129,-1912187765,2123039302,-52736,1560299030,1499094559,-955616424,67652,-117289752,36432067,95174283,-134185471,26667203,-523171981,-352303615,1745763139,991065344,1962961430,1745274636,-939524352,-16750074,1217614591,-523040335,-880029133,-1962785138,-472842114]},{"sector":10,"data":[50355713,1410532420,1442952966,385832222,526188614,41048670,1153942520,-402652920,-1007091227,1459650187,1593915368,238764914,309657704,6952507,113708149,-65432,6948551,1347551231,1465210398,38178386,95161995,1150020049,106203908,385810871,1599733830,1478450781,-352160935,140805037,-389611778,1040384313,-922876500,2122951029,-2134640640,-92241950,173437712,1012036800,-1957791872,-466481538,-1320030069,1323750153,1929249625,-2114286788,-1962868761,1071875033,762632971,90086714,-1254480009,561448302,1405149568,1855818321,-1440839675,1587382789,-1424062459,-754339579,-1407284765,-128231163,-960235069,372486,1946286979,-1358004171,646578437,-483785301,-533019394,-527826314,914932778,243860912,512296369,1347487157,-466434934,-523040591,1476768675,-389611943,-1073086323,-466470028,95106806,359972874,95358592,-1221163006,-1207006971,96117253,1793650690,1961101824,-1358004200,914883589,243860923,145819068,-466434934,-1096556333,915129093,132841584,-24955765,991065343,-193655732,1963611195,138737647,-394985471,321731,-1007026549,7485067,67650807,-1962249216,-24968588,-336497153,2034139153,175374336,17319159,-1107069696,-1664876545,95041082,908726390,-822213206,1929495936,1086423279,-1013060885,7347851,1204243267,-1962934008,-176864481,6817479,113770495,-65430,10225351,1472397312,7353915,770184052,-2013361408,-1996459970,1015612021]},{"sector":11,"data":[-16628537,1472421887,7484987,300421748,-2013361408,-1996459458,41716021,-64313,-1957444769,1950810748,478891790,1950555529,2139704087,-1950131454,-109820100,1883146575,38127360,-1017380865,7487113,234931035,1816038151,173837056,-2020933838,-466483874,-754405040,852003808,71601151,503731339,385832278,1583153222,1480815135,-1962128245,243862100,378077288,-914358166,-2134212607,118358964,7085707,1309066832,-6552308,1912953374,-2134681598,-109833732,-855591856,251549715,74714190,-487894952,-997997430,113768706,-65432,6948551,-689176577,17319159,-149654272,133188,1860701556,-1676738561,-2096795136,-1006827420,17319111,1364247296,1431524178,102651734,199761678,1595868928,1532714334,-1017620134,7353995,-1142403514,1177848831,113768309,156,3711427,-523040335,7216779,9440907,7347849,-16627769,71813119,1204224000,-956301306,67655,-1014760565,585320718,2139692425,138921730,1435172865,-1982856444,1435173975,13796102,-1962518647,247694331,96984802,1049231359,516227186,-1959919458,-1996463090,-1959915953,-1996462578,1575555151,-1024001037,-2146798464,259261180,1946418304,788175882,89530111,771752650,8208000,1343452160,109981190,-1608122270,539230331,8167982,-2144446457,31806,1465308020,-954266082,-16750586,1778829311,989855488,1996503046,11134981,115868651,1583292160,1392509642,1347768913,950069387,9562112]},{"sector":12,"data":[-980741518,1912608232,939932171,-352160256,8251623,1573096027,-1017423526,1679178320,-402164722,41091137,-1070349474,3679882,-670834479,1059438987,100878336,922091576,-989983131,180412800,988807884,1913546294,1714825741,1975909902,1086423282,710471147,-1023395834,1392508928,106386001,-90437452,89530111,-511701646,1695451199,-2000224754,118384182,1532582495,378012786,12783204,244294400,1946352768,2091016,-352318488,452616,317195122,1392952064,512427790,-90439572,89530111,-1664940197,915080734,-74776468,209057595,-1931965360,-1950139453,527718623,244334208,-2029620222,236914423,-919449337,-1892775378,-1007158258,125108225,123315699,-775709409,-654095391,1917049131,-336998140,1503982571,-5653,-1,508624895,1396465892,-1070381963,396417166,-1462700540,775386380,8259270,1048587777,1946157179,1048784399,1946157212,-434065401,-38868960,1209466670,1453403648,1285814789,1486958080,5153541,2114373166,1478426624,237961006,113651215,771817598,8076928,-402426880,-13697668,1342195734,-1900006626,1453403864,1285814789,1486958080,5153541,252354862,771777699,-1559294815,1478426726,2114373166,-13762560,-351335890,-1869574141,20987292,-401733260,-13699336,1342193710,146035283,1008664366,1522699008,1482408507,-1070341003,-878865997,-1959898544,-1275049450,174574919,-2145880860,-294354180,-1431283110,1955396736,-1912831993,-1146092937,-133960711]},{"sector":13,"data":[24336474,12145091,-1947076800,1506839538,-947170989,55175377,-773271103,-1930898968,734200771,1912627206,309541,-304877685,774630147,242352224,268500353,4001907,-385649904,-998047533,-105140220,1532586731,-1957434061,-773944382,-654093845,-494808181,229711871,-770970669,-1958542988,-2082960437,125175033,1481239179,-1957641685,-1207940586,1481655296,-850242736,173759079,1131443684,1354825304,1499000290,-469086120,1460014452,526319243,1611042350,-1912280320,-67084258,-318003725,-128441227,-1959879600,-1275049450,174574920,-2146405148,-294354180,1955527808,-1336255994,-1648100933,-1959869608,-1207940586,1381188608,1532651469,544597002,-469086120,-13433740,-164429077,-201536117,-2135430235,58032892,-2080408343,149620420,1954741376,46433230,-335959376,-1950338401,-2130681826,1929642237,-2130464762,-1911815997,1398496731,1073789266,-372126165,41078075,-16069237,102631540,1610058582,737937183,-1260745751,378220100,1481637962,-850242736,173759079,-2146732828,-277576964,-106254248,1492648683,-998046093,619444484,-318003725,1532631668,-1185787070,-851763200,-846527882,74841866,-1209272781,-1276379341,-133905277,-1959879600,-1275049450,174574920,-2146339612,-294354180,1955527808,-1336255993,49019323,1354979485,378220114,1169424458,-58693683,1525838978,50008]},{"sector":14,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65536,-1,1448169472,1717855073,1987343217,-421207071,-151718927,639902497]},{"sector":15,"data":[909390641,-1499159647,-1229671503,1716913477,1970561381,16868722,1817134081,1146244435,521018959,567085492,179946271,-137219328,1958743025,-236432891,-1031775489,-855460816,244106017,244056166,-1258551972,-2044605136,333358048,1912801853,100678917,-1111882126,12577053,-852159560,1444841761,1476824069,891074565,512303565,109839618,918881540,-1682308962,-6690785,-1408076603,-76275652,-143390404,-210490308,417925099,10676481,1947024556,1946828021,1948269809,1946762253,1949056009,1962949637,-1073042201,222092404,171759732,540857460,154988404,742189940,792520564,809289588,960249202,-397526665,-2144468012,18080318,-75425673,661782656,536935297,-1993465481,771765278,3808905,-2144462869,34857534,-75428489,125247488,907970862,-352130304,117321223,-1712647198,-400756550,-986775813,-956260834,3399,935879,273648640,67553070,-385875968,212659116,1969306656,116796951,1963070435,243281615,771888099,3344070,-10884863,158692668,403097134,1290338324,1970879743,113651209,-385870825,1883045695,-970059915,1316358,-400640582,753532567,1969372415,113651343,-1409286019,158674236,2080818734,350814208,1965767935,113651209,-385810308,1810497287,-2145448193,1316926,-326414732,-2135816434,332204212,-164478862,-2135766389,337231441,-1190011201,-201588728,299809700,28901558,33667072,332265810,-1105497510,-557902823,571665,1973875708,-1159361784]},{"sector":16,"data":[518594340,-1023518209,-443824414,337002112,-385649408,-326434515,-2135816434,332204212,-164462990,-2135766389,299809617,28901558,33667072,1913900537,29277031,1358955705,300058506,-1189877313,-218365916,58022318,-2097100823,-404614973,337067648,-1153666048,213451006,2407936,316292737,158619050,-1191084357,633208836,-561542656,176104465,-1089243712,-2020994071,-1957621278,-1359807282,-385649319,-1014824828,-18947568,-1998431806,337067648,-1300532224,-855067520,846426643,-1295348746,-558149248,-1191135727,28835841,-839298558,1517443603,-1191067973,-1974403068,-1089346937,146346996,-1359807488,-2093255591,-354283325,-1191067973,-1082130428,1946489314,281248519,468448482,-1962802760,-1978539889,-1156456521,-839314978,-2130152941,1427364926,-21662550,-1646110270,-443873045,-383876678,-443810303,567104180,-1960655997,197624827,-1189867842,-201588728,652178598,-75292732,-1595378177,-1073086413,837289333,-402396414,57869137,-1577201687,983760948,533510656,-1577271576,-1041760204,536001276,3358336,-1174178816,-1461182499,537377532,-1577278744,-1511522160,538426108,-1577281816,-1712848840,539212540,-1157854488,-2065162191,3580412,-1157855256,2028478547,96516860,-853208136,-177346271,-400727622,-1007027097,-350385990,-1266633994,1913900296,1959922411,1071743207,90050184,91109000,243920178,-896925640,-2093685943,58068985,-1308618823,-1269673599,1913900296,1071743004,-477932709,1586464895]},{"sector":17,"data":[1857521669,1005400581,1979725838,940476676,-1023518208,-1579752871,12124216,199358210,-1952877102,3449304,-150732615,-1544292383,-628359024,-489561391,-489561391,7083523,33538689,109119603,33554540,512426219,162594872,503571411,512295020,247005294,9478400,-670834185,6561417,78758795,100919507,913440870,1048693388,83891166,516166258,958791838,141955159,273103654,552279155,-388823375,1381226635,1532629709,-749730127,1490041824,-667219341,1824130674,-16520929,-617364488,1915759788,1997093903,-1164732405,-487129078,-320088061,1048625998,1962999859,1242991375,-851069952,-2097381273,938210164,4472451,-1959758593,-1275050986,1008664330,-465665280,125173523,333856387,-1340574465,-400127253,-467745773,126428691,38258470,-970551152,512754759,252319429,-12724084,990148095,-1207601982,567092505,1381024543,431490643,-1994273483,-1945171426,-1173419002,431492965,-1205744347,567096585,252583561,252708492,1482316551,12079299,1009765699,102004096,1125169235,512307149,109838396,123404350,-104597416,118408024,-1088691778,1689849816,-1985678592,-1107277762,498670661,-140184832,1946157511,29852419,7093897,1946138344,501463558,-1275009047,1008664328,1975520000,-2134641135,364512884,13822238,-383990342,280625356,8404253,-1041693837,333488896,3409465,883098486,3449088,1946161065,-1039089,989859845,1981014022,1060099,-1593822045,262733878]}],[{"sector":1,"data":[621179904,268828656,3580672,3413643,520030644,-1073020868,364512629,-1988629730,-1962916842,-1912587234,-1946141178,-1946140154,-1995184634,638837790,-109047925,-2146339605,1031138041,24611622,55021094,-605299061,41910566,695570576,75464742,-1960675952,-1967115269,334013125,50332165,1075743192,96871936,1170679530,638561025,-352105076,-28645368,-350336582,-22616051,1945973480,-29693943,-1998060565,1170471417,1482181965,-1204791208,567096679,-1107293505,146348699,1957098240,476232200,-101095704,-2147436093,1741504692,1946221696,-2097381366,-1799687455,-1260000484,-2140680890,-143359236,1962998912,1916812525,1476442163,-557906146,-839415023,16547943,-1375938443,1958742957,-1946623486,-61043760,1107297209,67158913,1975729069,-1036276291,-270354315,1741504948,1954741376,16548087,113748085,94,6299273,1741505204,1954741376,16548087,-1031040907,186435002,-385649216,280690542,150700829,1676215155,16482815,-1157401086,79233536,-2132552960,18080318,512296565,183173172,3415609,512296050,512426036,512294964,-1014300614,-754973511,1026539,1396904052,-754973511,874416611,975079680,1135893248,-58693683,-2131266430,326369532,1955003520,-2047049717,280626802,-16979683,-1979772951,-1593816554,262733878,621179904,268828656,3580672,-386049048,74709991,-100864024,1397772995,1321096785,786551040,-953283447,580,544603914,4464267,73173294]},{"sector":2,"data":[105154862,139757870,172279598,-1993474048,-1943139204,518721092,71616302,-1993474048,-1943140740,512428100,-1993473980,-1993471396,-1993470908,196349524,3940095,1593174225,1515739993,-970039101,-16747514,1144947502,208994048,1142328110,772453376,3940095,1297335137,1146376769,1702259058,2017796154,1684955504,1293968485,1919905125,1632444537,1701273966,1869488242,1919950964,1852142437,604638580,1380011347,1769096276,540697974,1634760773,1684366446,1835355424,544830063,1952543827,1931506549,1937207144,1920099616,168653423,1095586596,1917080658,979727977,544165408,1702131813,1684366446,1835363616,544830063,1767994977,1818386796,604638565,1380011347,1769096276,540697974,1635151433,543451500,1634886000,1702126957,604638578,1380011347,1769096276,540697974,1970499145,1667851878,1953391977,1835363616,226062959,1297294346,1146376769,1702259058,793321530,1919230031,544370546,1701012321,1852404595,1633886311,543516771,1869440365,168655218,1095586596,1917080658,979727977,544165408,1685217640,1769104416,544433526,1931505263,1702130553,604638573,1380011347,1769096276,540697974,544173908,2037277037,1954112032,1881174885,1948283493,1801675122,544108320,1685217640,1769104416,168650102,1393167652,1414676813,1986622020,1226848869,1919902574,1952671090,1397703712,1919252000,1852795251,1394870797,1414676813,1986622020,1159740005,1852142712,543450468,1869440333,1293973874]},{"sector":3,"data":[1734438497,1847620197,1881175151,1702061426,168653934,1393167652,1414676813,1986622020,1159740005,1919906418,544106784,1702131813,1684366446,1835363616,544830063,1869376609,1769234787,168652399,1095586596,1917080658,979727977,1684095520,1954039072,1701080677,1699553380,2037542765,1851870496,1919248225,1852793632,1819243124,1634231072,168652393,1095586596,1917080658,979727977,1668172064,1634757999,1818388852,1768169573,1881172851,1769239137,1852795252,1952801824,1702126437,168636004,1380013860,1196312910,1394614330,1414676813,1986622020,1769414757,1847618668,1663071343,1801676136,1919903264,1668180256,1634757999,1818388852,1768169573,1881172851,1769239137,1852795252,168636019,538976288,538976288,1631854624,1663066484,1970434671,1869182064,1634541678,1701978233,1953265011,604638510,1380011347,1769096276,540697974,1869771333,1701978226,1852400737,1768169575,539913075,1936674848,1818388851,1769349221,1635087474,1684086892,1936028260,1735289203,1869770784,1835363426,604638510,1380011347,1769096276,540697974,544501582,1970237029,1830840423,1919905125,1869881465,1634692128,1919164516,1919252073,220465677,1667845386,1869836146,1394635878,1414676813,1986622020,1766072421,1126198131,1701340001,1919252000,1852795251,825111328,604638515,538976288,1751343427,1769152613,540697978,1763724068,2017796206,1684955504,1293968485,1919905125,541795449,1159753321,1852142712,543450468]},{"sector":4,"data":[1869440333,220494194,538976266,1869566496,1868963949,539238514,1667330676,1864397675,539238502,1952671091,544436847,1751343461,537529636,1293951008,1835626089,1663069557,1701340001,2053731104,1769414757,1646292076,1260658789,168626701,1768444964,1919950963,1634887535,1936269421,1701344288,1869770784,1953654128,1718558841,1667845408,1869836146,1126200422,1869640303,1769234802,3042927,0,671154176,7870315,13,1314213699,542724692,542333267,0,0,671154176,7935851,17069,541148997,538976288,543119699,0,0,671154176,9049963,4107,1297239878,538989633,541937475,0,0,671154176,9377643,33087,1113146699,538976288,541937475,0,0,671154176,11540331,14986,1113146699,1146241359,542333267,0,0,671154176,12523371,34697,1179864142,541281877,541415493,0,0,671154176,14751595,7052,1431586131,538976336,541415493,0,0,671154176,15210347,73860,1431586131,538976336,541675081,0,0,671154176,19994475,2054,538990147,538976288,541937475,0,0,671154176,20191083,716,1145128274,538985805,542397233,0,0,671154176,20256619,452,1347635524,542720332,543119699,0,0,671154176,20322155,11186]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[537007081,1498619949,539828307,1818850389,544830569,36890]},{"sector":9,"data":[0,0,0,0,0,2025324544,984362,-388823887,-1056712308,-1064511346,-1996413021,-1140540378,1018823444,-853887996,37349409,448279666,712554763,889241985,237578354,577897660,79431297,1911033856,-401116669,309462164,1913016296,139257869,-1779955598,-1207733751,-397407479,1029180142,141888265,-1207955992,65732608,-1275067976,-1021194932,-1577057376,530710808,2990592,2037389,860029368,1914817993,-851332092,755404065,1958886144,-338654460,860796135,18397897,74588621,567099828,13895414,-1105628159,-708902853,-390057472,-212795028,1555103140,-1359855271,1676363772,-852294216,978809377,1962934550,19374417,-1591295858,-1064435668,1912675304,509025857,-1962467578,-390057225,-2091843276,91426025,-350265511,-1074724055,-1186528998,-1977221109,1946429957,1021932038,1189442848,1508893255,14008158,-971004685,-16699898,119412459,-1107241537,1031799066,1174566236,-390057401,-1527578388,855692730,-850479927,-2146471135,-16699842,19793606,-372018176,12058773,14006845,698556877,-385649919,1068761221,19472011,79433355,-853212998,995717665,-972720959,-16700154,19611267,1343452671,-919389004,-855566150,19637025,620804696,-930400654,512442548,567083307,-1053089678,-2145683975,-16700098,12104821,689867607,1914817793,-1962823672,-855561442,-1264781279,723422014,-1658729215,-1958824804,-855561954,561224993,-919384396,-855566150]},{"sector":10,"data":[-1274777055,-1205744319,45809689,-1228328192,-1107250433,-957874176,872203032,792104447,3467265,-1359854672,-1185999243,-1494024185,-377288076,1239021319,-504628949,32241735,1460061177,-24443106,-234815303,-2130283090,-150929175,-1022926887,520508958,-617390505,-571949006,66126847,3965145,-219479436,526306187,392685763,196346995,12072939,-2044605136,83901892,113640820,2013200384,51658002,675089778,-972720893,6,-1207637000,1928986369,-1094110452,99090561,-1342017024,119456512,39009933,1023454184,91488256,-352270616,2000584823,594871554,-1923721442,-1962919106,-1593672906,-661781891,1558764339,526343680,13770377,13895366,-402199807,1000472709,1646690304,1048576258,1962934484,1627848198,-33232126,-402499834,3997784,-400657152,1048576097,1962934484,-737739260,4384768,1979711293,65796099,-352298264,-49909,1357383028,-134092032,-22369085,1140555971,330827382,434895115,-311050230,-2144941058,1952251517,1170613771,-970564353,-1006764027,914998264,521012170,1541984819,-400620003,-1597833177,44171899,68723200,77742092,238080,-1759605309,-1260966394,12843266,151585281,151587081,-2126610167,1963094786,19707936,-1191181893,-4849664,12452018,388229120,1946234685,-169132029,-850657096,199803681,-402099712,57802999,-1023366680,113641246,-973012007,17029638,13909632,-1103792895,12517435,1610659849,12460493,311049,-218102599]},{"sector":11,"data":[-1207536218,-336000237,993430805,738494976,107072,8732301,13766283,988521715,-853999432,-1564410335,1000472577,990806016,1002323968,151043840,-849346376,151035937,104480812,108331010,-116716616,27266283,-1572860928,-2052980677,594737152,506364,3882637,13778435,8271501,179938547,-2059498240,-767687936,-935949056,-1012600064,138890,-851179336,998689,263718517,887879937,-1090517826,12060928,1914817888,69110307,1980928,-1927908343,-1996238026,-1945908682,-1929130978,-1207711690,-335999982,82573313,-989928398,35556035,1141487616,477241805,302039799,915215988,914949075,512492490,915211212,230163400,32241932,-1912814600,-1174127562,129564731,-850480128,-1957268959,1168316996,474254082,-1174255709,-608239557,12183555,-2051391630,506112,567103156,1149973362,38380314,-1558428533,-2051407285,65781504,1912641256,-1958759396,-1190929634,12190208,1914817829,54428428,91555109,-352276232,18778652,5367808,246944626,993430796,-769750272,2222080,28836722,1008300544,-1961724672,-1274815714,-1960719042,-1274811618,-350106306,-10229501,-902395453,-870413309,-803305469,-935949053,96528387,297272946,96004109,28574323,1141422275,410132941,1962934333,283899907,13909632,-1207602175,65735434,-116717384,1023457475,745677261,-1962571482,1107474648,-768358093,-1993989683,-1993997755,-768408491,-851312456,1459664929,-1993989683,-1993996723]},{"sector":12,"data":[48957525,-1195179596,512442880,243991515,378209257,567084007,-1958608712,-1962677474,-1962673906,-855378154,-1139897567,-618755324,620804611,-549551279,175439875,64818745,243991667,-108854307,-1274644992,-350106305,-121621757,-1053096846,-111606668,100750315,377684967,50332649,-1105819184,-586798844,-551648509,727252995,-350319672,-281115901,175439875,65867321,243991667,1068762093,494019021,427147579,66520577,66655875,-1982856448,688177174,-2096894714,257822,283689976,-401772032,141689005,1912660200,26077187,4096195,57933824,-1979672855,-1929379298,-1207790314,567109888,-471330957,1947876356,-117328891,-336068117,-1506374282,-1354855166,571650,-2086210564,578094329,553614464,1015028853,-2145946336,1965031804,41713681,-2146732768,1965032316,47365,-108851733,-2146929405,1966538620,-2086210814,57999609,-1926435848,1325575742,-1342175047,-1359741664,843532284,915253952,914948774,512492490,915211212,113640392,-1207434288,-335999984,-1597769727,144834563,1221120,136842,73984030,-1898410408,-1950338112,-1995968490,-1157461226,512297216,512492177,113705619,66191,-1207582488,-1111291124,-175437568,1946172544,-449019899,-386398603,1173030364,-1190918465,-201588725,-31361626,-1962681842,474254325,-1962788445,1000545860,444367618,-33262334,-402401530,434832816,1912631016,-386561264,158467258,1912971240,-339725564,185055236,-1588235527,-1952249872]},{"sector":13,"data":[-1861826814,-955711486,16944902,-390057216,963773769,-1960786557,185055477,1946172544,-449019899,-336067723,66830114,-218100807,1979026342,-653328877,474254083,-1962787421,1067654724,65796098,-352036376,185055235,-1976126269,-855637482,-1545472223,512295503,966853201,991333122,3926018,38864385,-1962787423,-402505962,100728877,1168179793,1192659714,2091010,-1593684573,378208841,317194827,1292239616,1359362818,-1207536126,-336000249,-1950091263,-150843618,16417779,-1019215500,1912634344,516234872,1204226085,520094237,65347211,567099060,66395787,567099060,-1207944262,567098624,-1174152285,12058757,-1558065859,451412971,-618755075,-851528701,-350319839,-851528701,571937,-851639624,65381153,-1207954758,567098626,-402393693,129499290,-1592364533,101385199,101385197,101385183,58000349,-352130056,512541587,146408073,64659456,-402401118,343015447,-1174149725,-643825646,64528899,1912604392,66429699,1124186307,378128691,567083655,1048580722,1946158040,-2028565751,1090566146,199958989,1006782952,-133991166,1928921579,-2026453726,-2134297854,62,-695531660,-348389192,1341754124,-1172204869,12058642,1931595116,35186694,-1007091276,-1958608200,855893278,-841862199,1107474465,66395787,-768358093,12198349,-1106343131,1959406340,-450983153,-851397629,990212641,-117345087,378215282,243991742,-903150400,512429940,1085539317,91365837,24428859]},{"sector":14,"data":[82363385,4384768,-519140413,-485061885,-450983165,1459730435,1051992525,243999181,378209265,512426995,28836853,-1272853161,-1172189890,28835848,506179,314188237,1124186112,-855636039,512410401,-1027997694,140556550,-851178056,4096033,410320640,43325069,-848756552,-401902815,440140118,-336002187,32241665,-399739911,297402575,-854477820,1962949665,1144425744,-1690399484,768258,-341511172,1860761601,571648,44449421,1923412988,-919171743,-851538682,1685764,-2136673284,-133770434,-2135948171,-1070464277,-2147162462,62,915213940,1049428631,398001385,-1527514112,243910963,-1027931509,-1860269820,-1895381246,-1275068158,40364033,1048576115,1962934272,35555853,-1793684224,1761720322,-1581047347,549127887,65271552,1208404230,922210867,-930412855,-167324511,50777638,50777094,114401736,-768360149,512416563,-201914677,1997534781,-1355379450,-1929057534,-134039754,704690371,12067277,52546860,-1983314990,-1996318954,-1023239922,-919350733,-58667266,-1977714942,1008367092,236352514,63702671,-2011920338,-972829162,805556230,-935948991,33325059,803734903,-1157515776,154992642,-1157401333,-58720255,1090614540,1963850880,839430658,254535908,652741235,-1207602417,65732609,-1023409992,1493219411,-855188685,861603617,50121,0,0,0,567095988,-854785864,512501281,520488999,136650377,136650437,637683595,856173475]},{"sector":15,"data":[71797440,-1557741314,1200293929,832775686,138906120,137601574,638404491,1023947939,326242294,537329190,113714696,-522207,587646758,1224734472,137208614,-1190574197,-503906272,722373414,-2081294584,24379642,-257743296,256346887,4096038,141819904,642507826,136650377,137339686,137077030,-150986567,-157145359,1048585735,1962936352,799090184,-56416760,289901319,133341990,-268007642,100869639,-1557788688,642254862,-1022888797,137772685,133707401,-1962925896,-1918569528,-1962344394,65065470,66096070,-402117826,1265762382,915275403,548997174,-1583025408,104531952,359925746,2062090164,-1592888832,-224196624,42705671,1793647666,-1960807936,-972556234,1153885444,-25100262,175442176,2129024,1153827957,-4922080,-1023391512,1946172544,-449019885,537202292,1005619968,-117214521,-387251221,-352161032,-234422487,133341447,133432891,915216503,-1952249600,-387698174,74645521,133304063,-963967886,129547894,1455684095,4096085,141885440,-1140850759,216728203,42929803,42669707,43064971,-33553760,16548040,634193013,-466483989,1566058189,62440286,-1949748480,244011001,-235534295,1946221696,851508740,10698980,133996808,-1979543645,-1593298162,-1952249807,-1861826814,-401932286,762445877,243869163,1877477376,1008890368,-402295297,32178333,1008104184,-402295297,32178628,-16092424,-1962408954,-502792178,-1207733291,-1916535033,-2029876450,1381454287]},{"sector":16,"data":[-1595657645,-922877950,16000,-1962118144,-1962766050,-1962766578,1426230038,1566057933,-998045582,112648,1515917803,369188697,117310091,-1008596993,-1006696520,134493835,1913001704,-1960217555,1979137223,518781187,64437888,1209037824,134481467,251528308,-1070398505,-1995969544,856163902,48974016,-1950105549,-402127818,426903007,134495803,914950517,-1070397438,1175186424,994623539,1980249142,57866722,1912634856,10086511,915106418,378210306,-454555640,-1956810235,-1962407882,-402127338,1349649879,134493835,-857157069,843411973,-389218588,799145613,-12681208,175439879,42665473,134153982,103352811,113640075,838862847,-389218588,113704553,100665342,-1014047860,136650437,35473351,-1899983872,-1070397480,-12777101,-133990913,-1007091221,134493835,50856097,87419120,914950005,-336066552,909854219,-311031756,-16271111,-1959329853,-1925775614,-1892221182,136945922,-1593667677,1172834308,42705664,42800777,-18291662,-1591381251,1048774664,1946159120,135308042,184557197,-400930935,-1952251872,-1927902974,-18599422,-36181812,42927759,42796687,42665615,-957815758,1212728317,136908427,100917751,-763164658,-257834240,42705671,42796743,113704960,66191,43058887,-466482944,1945999592,16771331,312721459,135701000,-1559760735,512559124,512297046,-404223977,-385650176,-12779295,-1959037441,512432711,312674322,512463624,126421015,-1995959135]},{"sector":17,"data":[379585095,71796744,346275891,135701000,-1929002109,990445574,-1995999549,-133687522,-369557013,3997847,-385649664,512426126,-343734249,1443269893,2009283336,-1559786625,1200293906,135570178,-1576777846,512296982,-1057093609,133563962,117311347,-336066538,-1564462503,312543254,15624,-259310988,135005895,-56557567,42967815,43058887,-722990336,-1861826813,-955711486,16944902,201770752,-1962934008,1962884295,306088199,49018888,317425899,1074271393,135136827,117376883,-336066540,32241921,-1207733255,57868039,-1006692375,1023939233,208928768,67027944,1929909254,99303937,856167585,42705874,42800777,1860756530,-1977569028,-167242226,2002401,-2133327095,141944127,1200209971,189237274,991577995,1946682374,18016515,1977958272,17492227,1965965184,16967939,269174774,117376116,-1952380912,135897858,-1560113759,512296987,113707000,67596,-1559757663,113705615,66187,42796743,113704960,184550033,1929230824,137792325,102140680,52815880,915093618,-768407548,1912806120,540966957,192151560,135005895,-790102015,840690434,-942866716,16943878,-71047168,17313697,839027462,-389218588,2087910325,1929219816,22079607,-1962407775,-1995966434,113711687,66191,43058887,429984000,42705672,-1559749727,-466484595,-2098672386,-2096467205,528446,1541931892,-1589808639,-1885140996,-1962490110,-956301054,168198,201770763,-955514872]}]],[[{"sector":1,"data":[526854,-1949748480,243945465,-421001165,-611580165,516277134,1204226085,-1946156515,131632832,-1070389525,1946173312,1207322654,91492363,1965965184,-2084556014,117317827,-75429866,57871104,-100749079,1173029490,3999347,1031141632,1074271393,135413379,990278912,-351793658,688274180,-2095156472,16943878,117376115,-466484595,135669384,135530239,-1912941336,-351731682,-104844541,1726546802,1936225278,15622,-1956612615,-2096623050,729022718,135005895,-56557567,42967815,43058887,-1662514432,-1895381247,-956301054,17304582,-1861826816,-1962344446,1979661511,-104844539,1049175531,-947189742,-1543719960,378077835,-1070398835,-2012736349,-402123226,512621157,57805056,-1006764823,-850217978,650720033,639717258,-1592369212,1049298948,378144776,-148504573,1073759047,-148498572,-2147466425,942018421,638219543,1967736633,2139694596,1489208137,-1022894878,-402124639,-1952187312,-1927902974,-390057214,57932297,-973014039,17309446,151002765,136126089,1946173312,-448823196,1207324276,1215565835,1949187968,42705219,-1593304669,463667853,440896264,-1543762968,378077835,-1070398835,1928971496,134783267,151002765,859457417,-1293399872,-1592691975,-1952249831,136028418,1912769955,-106960893,250282611,136126091,-2128559229,1980432635,779286675,698466355,520551944,520501256,-133663224,136251078,857205505,-1962507328,101777666,1726481037,2002425,-385650167,1383268194]},{"sector":2,"data":[135280267,42940159,43071231,-1559757663,113705615,184550033,135005895,954728449,-1861841152,-1895395582,1019710210,-133990913,279126251,-77666296,-1996321885,855805206,-115873600,512560242,113641728,-385808353,113770254,2064,2002371,-2130801909,532542,-397012364,158466152,-405668213,-16041589,418078456,-33296431,-956876405,141819905,-271454255,-271454255,268429185,2002371,-24422901,136330880,-401574912,-422510544,344584963,134088390,-786306303,66257902,-1947217417,-787647684,-773664286,-2082287134,82513895,-268376191,1015675403,995345246,1913129526,204880653,721909512,-385349066,1048576150,1946159102,-1892221112,42705154,134168192,722236416,-1559744762,113640075,-1962932225,50868510,721956638,-1893844008,-1996197118,-1274900706,-130291457,17313697,-1274901754,-131077889,42927759,134088390,868649728,-1966568759,1357132484,-1556024949,113705611,653,-133437358,799084403,-1962540792,-16333310,-85458681,1918393079,-1547401705,212011018,201752840,1930166280,201770759,-117440760,50011,33555713,524303,2162687,1986939163,1684630625,1769104416,1931502966,1768121712,1633904998,1852795252,1954039057,1701080677,1917132900,544370546,118370597,411057805,-1019166333,67110146,1048577,2097154,3604489,5308415,1869566995,1851878688,1634738297,1701667186,1936876916,1902465562,1701996917,1634738276,1701667186,544367988]},{"sector":3,"data":[1936943469,476540521,1634885968,1702126957,1868963954,1952542066,1953459744,1919902496,1952671090,1918980110,1159751027,1919906418,238101792,-1002533625,1975616280,393155,402659590,1140927488,-1912525568,-1442763264,-436130048,687866112,168636161,1819635523,1869488228,1868767348,1126201712,1095585103,1127105614,1864387919,544175214,1735549300,1679848549,225145705,1866681610,1936025968,760433952,542330692,1953724787,1713401189,1936026729,1684955424,1836016416,1684955501,1953392928,1919971941,1919251557,544175136,1768169569,2032167795,1931507055,1768121712,221149542,520752394,542333267,1769104475,976315766,1634753373,542992500,1986622052,221917797,1057623306,1683693600,1702259058,1532836401,1752457584,1884495965,1718182757,544433513,543516788,1633906540,1852795252,543584032,543516788,1953724787,1713401189,1936026729,1175063854,1919164448,845510249,538976314,538976288,1884495904,1718182757,544433513,543516788,1986622052,1752440933,1768300645,544433516,543519329,1646292852,1868767333,1684367728,779056160,1226246669,1919902574,1952671090,1397703712,1919252000,1852795251,118360589,423444109,23052673,393155,469763847,1090521088,1711278336,1996491264,-1879045376,-1426060288,-905963008,1867393024,1869574688,1868963949,2037588082,1835365491,544108320,1953719652,1952542313,544108393,1802725732,1227360781,1818326638,1881171049,543716449,1394635375,1702130553]},{"sector":4,"data":[1768300653,544433516,544501614,1853189990,336203108,1953724755,1948282213,1936613746,1920099686,168649829,544165404,1953724787,1864396133,1701060718,1819631974,1919164532,224753257,1631788554,1953459822,1701868320,2036754787,1717920800,1953264993,1769104416,168650102,1769101090,1713399156,1970039137,539780466,1802725732,1702130789,1970173216,1818386803,352980325,1970499145,1667851878,1953391977,1835363616,226062959,-1928917494,-2128961218,-1023343935,100664831,1572877,3145742,5046287,6946832,9043986,11403283,1851867931,544501614,1629499685,1952804384,1802661751,1769104416,168650102,1936607520,544502373,1953724787,1679846757,543912809,1679847017,1702259058,221324576,1850286090,1953654131,1918989344,544499047,1802725732,544106784,1986622052,824516709,1310919181,1629516911,543517794,1394634612,1948275545,824516719,1818846752,2037588069,1835365491,1126631949,1869508193,824516724,1394630944,1414742613,1864393829,1396777074,1313294675,1679844453,1702259058,1395722765,1668445551,1634738277,1629513844,1948279918,1701278305,1919164532,543520361,1852727651,1646294127,1752440933,1634934885,168650093,1049429774,-1048503384,-3997442,285278213,553649152,1936028240,1851859059,1701519481,1869881465,1852793632,1970170228,539893861,221126702,-1928917494,-2095273154,1354969281,1460032083,-1047606989,783875891,-855592430,-922317777,-952203006,305051650,801964722]},{"sector":5,"data":[47253132,47136393,-1307431240,-1943024380,-1996300026,-1207771330,112333358,109850573,1049166533,-1847065917,-1056535301,-1086420734,-586773502,-616658686,-67639294,47515276,47398537,-1307431240,-1943024376,-1996297978,-956111042,218301958,1325843978,113714179,779,51185351,703070218,-348222979,-30808062,49233545,-1979767320,-402459842,1049231187,367526647,2811904,-134201880,123668338,-346530982,180650756,1448133625,1660991518,119415245,-1995935201,-1945960650,1577255174,12108632,47940,567136819,-2147359104,28836302,-1021194940,-1153171272,-768409599,-830463539,1140963329,1354965453,1465209171,-376745466,50536073,50869896,184733672,186873033,-402295315,65732655,1912715752,250108431,173999873,-402426670,82511068,-116996989,1594295531,141752666,-2091165347,82510532,-116865917,1381191875,50536075,1979710339,2942981,2011694059,-1274055936,47961,-466476595,-116996989,-75296533,990606591,-402164543,-998047568,57866502,-1017619622,-2095118818,460653049,-1977220428,522308885,-1310145910,520494592,-1977219213,567083349,-1274024968,1959332610,361375241,1229398477,536408949,105928643,519736147,-1327920377,-1359807462,-651492491,1540066123,-1017161721,-921976781,102649716,-1958693857,33129431,567093365,-1977200609,5957637,520494680,-1258813837,567099968,1031808668,-1962773222,-821957695,-268274,1364531947,-1946179864,567106025,199950963]},{"sector":6,"data":[125093947,1979246651,1572965122,666419999,310016,-2134703691,292880382,1971373814,-1928913396,-1190984130,15204354,1460061183,50282180,393543435,4031270,638612728,124912954,21314086,1207501175,1609165639,110084871,-617413879,922194579,-141360371,-2096952010,91621882,-348667264,818053123,-1073004206,-620034955,-108840588,-2146601725,1965820540,372702981,585842947,1963391363,175931405,-16419540,1090721334,-108850965,-2146732791,1965820540,372702981,865288451,866642898,-4181038,-1023211210,-921972173,632562036,942014640,638219557,1946248504,1975794180,92939790,1946113000,1111967489,1457747273,-317994361,-2092092556,199486,1149905781,640680966,1963017530,1008659202,184841520,50623698,-2132284620,-16578498,1111623797,1330596169,-4586517,-114599937,1610484456,-352095399,-1957588891,108822730,185431040,1225159881,-347650231,283860481,58050827,-2096501922,41287673,-16004813,1465203828,-919383802,51068547,-166497024,1963919172,41731080,-352166936,24897536,552076267,1493660160,1583177479,-998046485,1048836362,1962935051,-385650171,113770286,779,-1580059709,113705739,656141,1493086184,51349384,1090224963,-102235275,1976172033,168671470,51349385,-370654397,1398194945,-919341517,1979711104,-339965176,-337671422,46593573,-1128003468,-1014234417,322771179,1024291328,142016551,47955140,116114316,46120132,-75250804,-2146011649]},{"sector":7,"data":[58064894,-1559434247,-4717813,114175,-336005581,16483084,1424491380,80118528,184972024,-352160311,-25125729,1378448641,1460031829,83933264,-12832819,-1962314408,84064472,32190413,1594192889,116087047,-402209661,1516044300,248447467,1543502824,1347928926,855637945,-139529536,1599621585,33260483,1048780149,1962869479,-49898,-1588589707,520028939,-346553625,-417399036,857402114,-98103,-1977219468,166396749,1966422062,1300901380,80184067,-131238919,427084043,1962933888,87762437,992871403,-352160507,91506953,-352008317,208861667,-117440896,118358645,41747238,-315488654,1192069670,50661062,868454400,108822747,-955157248,537071495,-968670419,537071495,10938435,870003549,84838610,155486723,511099194,-259342038,-2147007242,1149899892,260540426,-75283709,-402426560,-822214532,2088823925,225705992,1929923640,139209224,1284166026,1959332616,121959972,-166955761,1947207492,92939782,1476520775,51349384,1090224963,1105724277,1976172032,121960156,169375104,-1978370826,-2021127612,-2092760305,58015995,-33545240,-152275506,1963919172,121959944,-352160752,1959922188,151424776,1976237571,190712,106021717,-1962467753,-1915014197,-402452674,91421555,-346486945,113541892,-161627143,1966081860,92939794,1508393296,637957116,1342260618,638446584,-1073085046,1095173236,-114559509,1381090133,-1057325026,-1031141258,213126948,-494271765]},{"sector":8,"data":[-678748410,-2145443379,1962412794,-65083374,-930477197,567141002,-336010870,1912648706,-346465788,79987460,50169,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65280,1566244864,725499004,2243389,923191086,-67108829,705595694,113716771,9004,1057408814,771751971,590350023,-953286656,1529071110,113716829,1014768584,-905525458,774585891,600573639,921189181,-1206684923,643039231,975576459,-1207733489,-379912190,-1993473757,1394817334,512578903,-164748479,539179014,-391363723,1014105542,1946495720,89909303,-164751243,539179014,-219675275,774302468,590874358,1310618689,-2010244117,1966947335,243281414,1124148024,1929752552,-2010207035,-1091878137,914959950,-970054866,-1993474041,639843614,915217803,-2144459967,913583932,574390318,-164755340,19085318,-1977199499,-466484921,705050926,772961059,-786224479,54739936,529213144,-352286488,113716841,74540,-1977196309,-466484921,65065280,260712152,-921965262,1396903796,-400585946,1935343814,-498908351,113716978,205612,-1977207573,-466484921]},{"sector":9,"data":[65065280,126494424,-523115470,651690816,-315486326,259311883,-1960422589,6154271,1124823899,787669571,590087879,1599930372,244002395,-1590811862,-1959910612,774057526,590354059,840862254,1355020323,-1459123418,91553794,705101614,1015033379,-1457949440,158662657,738641710,-352320989,61886478,-1628897356,65755136,1476468200,1438906819,1334453841,200094216,-1928497975,1239943535,-402099454,-152961010,772205561,591343241,-1017292296,8290342,1157854208,-1018824981,940474414,-957870045,776631039,590882432,-1590800145,-970251461,956694830,-1959897053,774060854,1962949760,2088775206,158677759,738641710,-352319197,1065559583,639202304,67575,-953281931,35859462,-402003200,-336068458,183236877,-1274826672,256255,1472460888,75467558,809404718,92808739,23431206,1067527760,1166616099,20731906,-1993995659,-1993997227,1525352013,108331580,72714534,121393387,138209396,104653940,-2010773899,1055589461,259327036,590979374,1166616128,1569465860,640412422,637826441,1342590348,38270502,-1341885439,638184196,33703926,45090164,1476442088,38270502,-402426864,-1017184122,-821639634,642777123,-1073018997,1397758069,-953264302,153299974,-1325419520,-10754045,1482381919,65733355,-1450163733,359923968,738641710,-402653149,786956715,1048784386,1963533100,33597734,-953281932,2305030,26339328,742294318,259328291,1948254377,113716746,9004]},{"sector":10,"data":[771797480,600784512,772764929,590102147,772240640,590087879,-1017642999,-1976674736,1958742532,1966750746,2088775181,108331009,312878,-370669077,1174500098,1591733062,1381417816,-1976643446,47638532,-1073083278,216534132,76033536,1178993131,1583016171,1937784003,1918974988,2004499516,-337697736,1460032308,599867021,1947547694,1381060631,1706297102,-4472182,375295,-838860870,1482250785,22907694,54890030,-2144582845,123721510,809288539,960235634,808191095,-1007041544,1465013072,109021990,168135206,-1274776128,772402175,590087879,-4980727,1055392688,1532649470,1431356248,45241938,-402355666,1014104636,788494056,590874358,1007514632,639595837,97920,334197109,939980334,242487331,175454780,8290342,1180464384,975592683,494207046,1383383050,334185798,4602406,776357237,642057354,1962952250,-347781574,116797095,1950360376,1207379471,1946165250,2122327559,578027520,268957478,1008235520,638154042,32384,250285429,125108284,8290342,-117214150,-1993472277,-131908810,1482512990,1448562883,960400174,76164643,326418442,1962958824,113651236,1577133007,312878,1581247327,312878,133637727,846528513,738641710,-352320989,777410601,-1073085302,770186868,-401902592,41091420,1179076167,-1573983765,-970054862,776404996,590233225,-1453826210,158597632,-1325419440,-47716347,1364443992,600186509,771754425,74712890,1106829891]},{"sector":11,"data":[1354980185,76164690,947175434,1912673256,2088971820,242498049,268957478,773747712,97408,537663349,292708668,225933884,-796237780,112263092,-335750936,113716743,598828,-1396484006,1946165992,5498904,-164751755,539179014,-164696716,1092827142,-347207308,32241926,-121417992,1011962819,1009611789,1009349632,639988746,33717632,-617406862,56461862,637846403,1946171776,650720013,641927562,74711354,222099682,1405311833,113651281,773858098,590882432,1948269791,1946762294,1949056050,1965046833,540835852,548407157,-339723706,2105550366,393347330,-1977169613,-922025139,62589812,975586048,-502828031,1495284984,-1573993637,-164748494,19085318,-2144467339,539179022,-403980230,591474317,175430971,58011452,-133239815,792464363,-2144467339,1076049934,1444856824,1048784467,1962943285,1360941095,106256210,-561056205,-849149768,198937633,1599932379,1478449498,-1993463436,774058806,590683785,859212590,512634403,1015227189,974156800,973632004,58130756,1174793209,-118756538,-1021354405,0,0,0,6044225,1230780993,1498623567,977338451,1146309980,1395544911,1090540377,1112103994,1330201165,1297040174,1547321600,1145913929,1127109455,1090538831,23610,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1330184192]},{"sector":12,"data":[1398362926,1547321600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1329877837,1498623571,196691,1547321600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1666988607,1634561391,1663984750,28015,-16777216,1124073727,1347636559,17221,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1459617792,16777218,1627545858,40501506,16973824,1979873024,2,41877504,788595318,63]},{"sector":13,"data":[0,0,0,0,0,0,1308622848,1095639119,538985805,538976288,538976288,1174413344,842093633,1176510496,909202497,2105376,0,0,-16777216,16777215,0,-16777216,16777215,0,-16777216,-1,16777215,0,0,0,-16777216,16777215,0,168624128,0,603982336,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,1142969165,1444959055,1769173605,891317871,540028974,1126777640,1920561263,1952999273,943272224,959524145,1293955385,1869767529,1952870259,1919894304,1766596720,1936614755,1293968485,1919251553,543973737,1917853741,1919250543,1864399220,1766662246,1936683619,544499311,543976513,1751607666,1914729332,1919251301,543450486,11,268500992,1394606339,21337,65792,0,0,0,0,0,0,0,1291845632,1397703763,1394614304,1330205529,538976288,1498619936,65363,134217728,1061109504,1061109567,1061109567]},{"sector":14,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1022033920,1146310032,775246671,134348848,131073,-128908542,1114120,65540,0,8388608,41,542068224,1162690894,538976288,827605318,538976306,-1900006406,2080423120,2025522966,935671296,1393972766,-1183039809,-201588725,-971045212,-1961886139,-2005133298,1200224589,1040697090,332266364,-1070368398,2081621561,243992692,243891219,278952992,371652476,470156156,504763260,235275132,13796220,-1988341597,-1552133610,378109001,548961355,287766272,186551164,1220739964,100791287,377715785,-1157596085,378209536,1352760402,9627772,28319090,1912646888,-1174697194,-423755765,1973875581,545230090,-218100807,-1105693530,1609072030,-843042048,-1893769706,38047492,1482168781,-1947669672,1212684871,2081234570,-470286542,2085160451,2085295635,-1190723397,1380974595,3860561,28366962,1493193960,-1150134182,-2097151739,503513298,-488473589,2081762954,2082739850,2085166731,-360952927,7340032,1958742700,-1156664279,281870343,373027563,426998808,2081961719,378061566,-768377777,2082092791,2082805384,-126071389,-1262224957,1293323010,-771313284,1328941798,-2033546372,605457129,624331388,-1022112388,1867385357,2035494254,1835365491,1936286752,1919885419,1936286752,1919230059,225603442]},{"sector":15,"data":[1885688330,1701011820,1684955424,1701998624,1629516659,1797290350,1998616933,544105832,1684104562,658809,538988361,538976288,1297307987,1397703763,1394614304,21337,83995221,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50331648,0,12,0,2,0,3072,0,0,0,16777216,-149948416,15]},{"sector":16,"data":[]},{"sector":17,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1588589707,520028939,-346553625,-417399036,857402114,-98103,-1977219468,166396749,1966422062,1300901380,80184067,-131238919,427084043,1962933888,87762437,992871403,-352160507,91506953,-352008317,208861667,-117440896,118358645,41747238,-315488654,1192069670,50661062,868454400,108822747,-955157248,537071495,-968670419,537071495,10938435,870003549,84838610,155486723,511099194,-259342038,-2147007242,1149899892,260540426,-75283709,-402426560,-822214532,2088823925,225705992,1929923640,139209224,1284166026,1959332616,121959972,-166955761,1947207492,92939782,1476520775,51349384,1090224963,1105724277,1976172032,121960156,169375104,-1978370826,-2021127612,-2092760305,58015995,-33545240,-152275506,1963919172,121959944,-352160752,1959922188,151424776,1976237571,190712,106021717,-1962467753,-1915014197,-402452674,91421555,-346486945,113541892,-161627143,1966081860,92939794,1508393296,637957116,1342260618,638446584,-1073085046,1095173236,-114559509,1381090133,-1057325026,-1031141258,213126948,-494271765]}],[{"sector":1,"data":[]},{"sector":2,"data":[6576717,28,5701664,60227583,128,53542928,30,1]},{"sector":3,"data":[-1325268992,2037411651,1751607666,1126703220,959520809,825046840,540031289,1953391939,543973746,1852403536,1867718772,1635218534,539780466,778268233,1936020000,1701998452,1768300659,544433516,1667852407,1634213992,1646290294,544105829,1701602660,778331508,168626701,1162104405,1163150668,1683708704,1702259058,1885035834,1567126625,1768315741,1634624876,542991725,1229729627,2082493523,1279340320,1528847692,542393391,1143939196,224219983,537529610,1229729568,538989651,1953720652,1752440947,1701060709,1702126956,1768300644,544433516,1767994977,1818386796,1869881445,543515168,1868785010,1701995894,168636004,1093607456,538987596,1684952352,1952803941,1629516645,1931504748,1768121712,1684367718,1818846752,1998615397,1869116521,1881175157,1886220146,1735289204,537529646,1413754656,538976288,1936028501,1819176736,1752440953,1701060709,1769235820,1949134447,1801675122,543649385,1701603686,537529646,1329868576,538976339,1936028501,1819176736,1752440953,1397563493,1397703725,1919509536,1869898597,221149554,1229785610,1380930130,1314201644,1162626372,539772244,543452769,1330007637,1413565778,1886339872,1734963833,673215592,824191299,758593593,825833777,1852130080,1818325620,1768902688,1394635886,2004117103,744845921,1850280461,220474979,1851867914,544501614,1919250543,543519841,1931505263,1768121712,1684367718,1769104416,673211766,221129080,544491786,544825709]},{"sector":4,"data":[1629513058,1952804384,1802661751,1769104416,221144438,168633354,1852727619,1864397935,1634887024,1864394100,543236206,1396856147,1919164500,778401385,220465677,1394614304,1668440421,1735289192,1818584096,1869182053,1920216430,1768645473,1713399662,778398825,221130286,39980324,2564274,220466608,1919501322,1869898597,540703090,1175063844,543517801,1667592275,1667851881,1869182049,540701550,1225395492,1818326638,1881171049,1835102817,1919251557,1701868320,1768319331,1769234787,779316847,220465677,1851867914,544501614,1667592307,544826985,1752461154,1413754656,1684955424,1329868576,220474963,1986939146,1684630625,1769104416,1629513078,1865376878,1634738290,607021172,538970637,1698963488,1769235820,1949134447,1801675122,543649385,1701603686,1953459744,1970234912,607020142,1143933453,1635197012,1886593139,1718182757,778331497,1667580448,1702065505,1701344288,1763730802,1869488243,1818584096,761623653,1667330676,1735289195,1818846752,1868963941,1752440946,1679848297,1702259058,168632364,543516788,1162104405,1163150668,1836016416,1684955501,1851876128,544501614,1953394531,1702194793,604638510,538970637,1698963488,1769235820,1949134447,1801675122,543649385,1701603686,1852793632,1852399988,538976371,1679831072,1952803941,1713398885,1936026729,537529646,1327505440,1752440934,744846191,538976288,1768300592,544433516,1702257000,1819042080,1970037536,1919251571]},{"sector":5,"data":[1986076787,1634494817,744844386,27331085,1122482,1713385648,1936026729,1986095136,1869815909,1663067501,1953723756,544436837,1767994977,1818386796,168635493,548536359,816840721,1818846752,1746957157,543520353,1663070062,1953723756,544436837,1767994977,1818386796,220474981,538970634,1397563424,1397703725,1919509536,1869898597,1663072626,1635020399,544435817,807411744,1818584096,1684370533,1818846752,221148005,538976266,543575840,1936681076,538979429,540024864,1701603686,1634541683,1700929657,1667592736,1919252079,221144165,220465674,220465674,538970634,539109922,1768189545,1702125923,1869815923,1663067501,1953723756,544436837,1948280431,1713399144,543517801,543519329,1767994977,1818386796,168636005,707404320,1852383266,1633904996,544433524,1663070062,1953723756,544436837,1948280431,1713399144,543517801,543519329,1767994977,1818386796,220474981,538970634,573188642,1684957472,1952539497,1948283749,1713399144,1953722985,1970037536,1919251571,543584032,543516788,1701603686,538970637,538976288,544434464,1986096757,1634494817,543517794,543452769,1852727651,1646294127,1701978213,1702260579,224683378,538976266,538976288,1752459639,1701344288,1145984288,1413827653,1868767301,1851878765,1428434532,1735289203,1701344288,1818584096,1869182053,1920216430,1768645473,1713399662,778398825,604637709,1852404565,1752440935,1397563493,1397703725,1919509536]},{"sector":6,"data":[1869898597,221149554,220465674,1936607498,1768318581,1953391971,1835363616,544830063,1914728308,543449445,1769238117,1679844722,1667592809,2037542772,604638510,1696624462,1769108590,1713402725,1684960623,604638510,1936287828,1818846752,1633886309,1953459822,543515168,1869903201,1769234797,1819042147,1701978233,1702260579,543450482,1633903970,224752501,1953459722,1819042080,543584032,543516788,1937075299,1936876916,1701994784,1635148064,1650551913,221144428,1850680330,1931508076,543518063,1948280431,1663067496,1953723756,544436837,544370534,1936287860,1818846752,1918967909,1986076773,1634494817,778398818,544162848,544567161,1953390967,1869875725,1667592736,1919252079,1768453152,1768300659,1998611820,543716457,2037149295,1701344288,1635148064,1650551913,1663067500,1953723756,1064530533,794372128,606087502,1701736270,543584032,543516788,1937075299,1936876916,1919903264,1768453152,1768300659,1629513068,1629513074,1818845558,1701601889,1409944878,1713399144,543517801,1852727651,1646294127,1701978213,1702260579,778331506,1701990432,1629516659,1797290350,1948285285,1868767343,1852404846,221144437,1816208394,1718558828,1701344288,1970037536,1919251571,1868963955,1752440946,1713402729,543517801,543519329,1767994977,1818386796,1428172389,1818584174,543519845,1311725864,220479273,1951605770,1769239137,1663068014,1953723756,1763734117,1853169779,1767994977,1818386796]},{"sector":7,"data":[1411395173,544434536,1701603686,1851876128,544501614,1914725730,1987011429,1684370021,1769409037,1948280948,1428186472,1279607886,541414469,1835888483,778333793,1917853728,544437093,544829025,544826731,1663070068,1769238127,778401134,539232781,1684952352,1952803941,1495801957,1059671599,538976292,1344282656,1935762796,2037653605,1948280176,1713399144,1953722985,1634231072,1952670066,1713402469,606106223,1850280461,1768710518,1768300644,1634624876,1663067501,1634885992,1919251555,604638510,541133325,1701603686,1701667182,1953068832,1752440936,1713402977,1953722985,1634231072,1952670066,1629516389,1634038380,1696627044,1953720696,168636019,1936028240,1851859059,1701519481,1851859065,1752440932,1914728037,2037656933,1948280176,1713399144,1953722985,1634231072,1952670066,221147749,168633354,543516756,1701603686,1701667182,1919705376,2036621669,1769497888,779318387,1886999584,543236197,1717987684,1852142181,1768300660,1634624876,221144429,1701990410,1176531827,1869881397,1887003168,544437089,1936287860,1818846752,168636005,1850286116,1768710518,1768300644,1634624876,539911533,1936028240,1851859059,1701519481,1851859065,1752440932,1914728037,2037656933,1713399152,1852140649,778399073,91950372,5120178,220466608,1818838538,2036473957,1936941424,221144165,168633354,1701603654,1668641568,1936942435,1819047270,1853169785,1701602660,778331508,220465677,1970225930]},{"sector":8,"data":[1847616620,1931506799,1701012341,1969648499,544828524,1701080693,1702126956,1701344288,1818846752,168636005,1342836004,1936942450,1948270880,1650532463,544502383,1377858159,544175136,1920230770,52699257,268533896,-2088615807,-2021227132,187105792,67843843,2097482567,194053643,705405196,-905966666,197787659,34330881,436407285,206177292,151807496,-1542714240,213520396,1074581536,-75494172,220102924,-2096288894,1367608639,224888077,-2029161338,-1752691328,230107661,1701603654,1953459744,1970234912,3040366,1752457552,1953459744,1970234912,3040366,1746956110,1818521185,1814066021,745825893,1668180256,1935762802,1229332581,1028867404,1818326560,1763730805,1329799278,1195984462,1398362926,1766195246,1629513068,1936024419,1701060723,1684367726,1850277934,1768710518,1634213988,1701602414,1850277934,1768710518,1667309668,1936942435,1685021472,1157639781,1919906418,544765984,1802401064,1853321070,1426075177,1869507438,1696624247,1919906418,1631715374,1868767332,1851878765,1634738276,1684370291,544175136,1802725732,1631715374,1684086884,1936028260,1634541683,1864395634,1919164530,543520361,544501614,1684104562,1493184121,1629517167,1835365492,1684370544,544175136,1953067639,1869881445,1881170208,1702129522,1684370531,1936286752,1953785195,1375743589,1702195557,1684370547,1667592992,544370548,544501614,1853189990,1140862564,1864384845,1920099702,1864396405,1886330990]},{"sector":9,"data":[1952543333,778989417,1953775872,1953525093,544175136,541150532,1869767521,908096371,1646283572,1684960623,779711073,1684360448,1948279145,543518841,544501614,1853189990,1107308132,1126196321,1864385362,1768169582,1914727283,778330469,1852785408,1819243124,544367980,1818845542,778400373,1701139200,1886330987,1952543333,544108393,1818845542,3040357,1914728270,1869640549,543519598,1953459752,1634038304,1663072612,1768189551,1852795252,1107308073,1914725473,1702195557,3044467,1852534357,544110447,1768187245,2037653601,3040624,1952671059,1847620207,1713402991,1684960623,1917845550,1702129257,1970217074,1718558836,1885433888,3043941,1953067607,1634082917,779381877,1634030080,1634082916,779381877,1634620672,543517794,1914728308,543449445,1952671091,3043951,1986622020,1853169765,1767994977,1818386796,1952522341,1768453152,1769218163,3040621,548537211,229638193,538968074,1701602628,979658100,548536333,229638160,-1308622326,-1342173184,54525954,385921536,239054848,-1308622048,-1342174464,-1308622389,-1342162432,-1342173441,-1342154240,538976298,538976288,186654762,1174450688,978890752,92,757474595,858927408,926299444,1111570744,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,783417390,548405279,590225696,656811300,774777128,774778158,858927408,926299444,774781240,774778414,1128415552,1195787588,1263159624,1330531660]},{"sector":10,"data":[1397903696,1465275732,777673048,1600007726,1128415584,1195787588,1263159624,1330531660,1397903696,1465275732,2069518680,2138996014,11665505,2024800292,1129339962,1128354388,1143886411,1002565,20119730,-1895877712,1424327,-854162248,197168175,235631815,1343317176,28858118,505334528,532291342,939571214,857678285,-1993452581,-401733082,-1679286509,1028092441,1114898433,1914713832,5826621,1912652008,116862517,536874569,-147969675,936198,772961344,239666935,309624832,54531725,-352245528,116862481,-2147479991,-1662515851,-402396416,378339582,250087439,1048784385,1946160706,382021130,465047104,-1272853211,-886977267,136220206,-526373362,94514702,1023588368,268768909,745677261,269853486,-1174404935,-1159200768,512634389,79236616,1528204544,365094928,1530823470,141819920,-401490968,250286412,1225687342,-1920991218,-402450410,-2094137179,1054014,-1959915404,-1274014434,773967166,269813447,-389873664,-286785387,-1023315200,-133751832,116862659,268439113,216532084,132694799,121890816,-1023400216,116862544,69193,-2118642316,-2077242090,101479616,516173395,-31060405,-1274586361,1478610189,229920963,-147971635,17713414,-1206160384,801969794,309641348,-1003597050,638470942,1946173312,268314115,-1017641125,1225193262,1947205646,13559812,-6231869,-402573336,516161471,136220206,-855002098,784539425,235406990,250429069,1186529456,1336865280]},{"sector":11,"data":[322865454,2105550350,930372863,1543882534,1170679338,640298498,280006,-1909567820,-1928460258,-1190204138,567083031,287613230,490635566,1929576462,681651716,1336094225,772270862,240060103,-389873664,1433540361,2016316206,113716750,4121,1048632718,1977942016,18868271,1048586866,1962278913,185005603,477435904,1913913064,117386775,446763033,15616,-622327180,772108817,266798847,16000,-2096466944,992871109,1913549870,378389431,921175580,646000383,-8450487,2016316206,-2132963826,-452984770,-1024974219,-2145553920,-167771842,116790900,1964507147,329377807,-1259861390,243346948,8392265,16000,-2096466944,992871109,1913549870,116862660,67112521,378341236,-555219597,116862718,8392265,378341237,-823654804,378389502,-957872612,646000382,-8450487,2016316206,-2132963826,-452984770,1390949237,-2144439808,-167771842,116795252,1964507147,322037792,-2127684750,-2146547442,5171200,378347634,-2031613937,116797182,1971326536,4096017,175374336,771933571,242495035,-147934350,-2146547450,-1928891136,-402232298,1455685213,508626519,-1074384121,179896321,1957098240,32241667,1594317305,773768030,233309894,65398784,-402209234,-2144466419,537770558,378348148,585631759,303468030,-31725560,1225193262,1963458574,531425285,536347506,-1021314621,923191086,771751951,239666935,158599168,135206541,-335679256,-1961456349,-35133432,1914667496]},{"sector":12,"data":[378360024,-622327793,-538420995,1952005152,1968061447,-1021314873,1912639720,7137468,1929461224,443949,-147921664,936198,-1927777016,-402069482,1139342761,-1919258081,-402125034,1223228829,785246979,255264511,480364267,504793856,244002304,-617410975,-355398173,-607004463,-619972382,775946612,-401608029,175243580,173086349,-117611288,378389279,1525156466,-1021314563,777410310,235406990,771752098,-1106234206,179896321,893291776,1587868432,784533343,239666935,863307776,-1929361944,-402088682,378404133,518525004,515434749,1354957171,135206541,1492979944,108273724,1912627688,378389249,-18347832,516221948,512634451,-1959916024,772749086,255428490,-1007149221,12472918,571648,273432205,-2142264077,58007613,788065103,273417926,-678738113,-1180029264,-1527578621,540901455,-347143307,1962556408,984631041,606124202,-1017226581,1921006675,1048587789,1979846174,530638868,-1923937045,772759838,775707607,1542980468,-68421181,-1909586402,772671518,235406990,271857293,322865966,2105550350,91512063,1543882278,571719,783328499,244138,11576563,1124120746,250418829,309535181,1946157629,78861065,1527884264,520611819,520602616,-1959869447,-1592790514,-1943142374,772800798,242622094,-108799181,-385649408,-125108003,1762063918,1349812238,653733456,-1557262825,-1993470314,-401696746,-1957159721,1959922449,-622116861,1946286467,-970047473,1047046]},{"sector":13,"data":[1929455336,12773638,1358954424,244752686,-1743353042,480897038,771852632,268635777,-1557262336,2112557055,-133959727,784829264,772708003,244844231,-768409600,1478263528,27857291,-787975168,-773139990,-2115317270,185597922,1074033874,788493289,-2096103517,91554297,-351273032,-970047476,1047046,1912649448,116862549,69631,268411694,-523171724,-523116335,-804527919,-1590799792,-1959915882,-401696746,1482300455,-2127687415,1049358,-6214128,-391257585,443685999,1912609256,47893,771752377,-401677920,108142008,567086516,-1007041544,1381061456,268542254,2013670190,47630,771753145,240197259,-201856045,1048784464,1946160719,-1834799593,113716750,3732,240099630,1931112936,485185547,1694892846,47630,243835694,-1978234578,-470329330,2013659950,-120025586,1482381658,1381061571,104541783,1416826868,-164693877,-2146539258,776998516,236398327,1478195944,552276363,-133959727,-1949158576,459925703,-1458468008,141819905,-355341615,-355341615,268427905,460640779,-96567250,175374351,158711819,-100219346,-348127217,-1511307096,-134091783,1532582495,109981379,1049431560,548408778,-218101575,113716906,538971578,-469317842,774778381,233178823,12463662,-1119974144,571661,1049470195,62459334,782562048,230491846,48703,-1962926943,503324182,136220206,-903967474,571661,1225687342,-402587634,-1591798282,773718040,235413134,231939725]},{"sector":14,"data":[521553896,503322273,136220206,-601977586,383641613,761887,376702632,108266152,-469318098,78137357,-970060684,1393419526,27788523,27787381,-970062220,1376642566,108273832,-418986450,446775565,15616,317199220,772698892,230295239,-2127680982,936206,-1909580284,-1928460258,-1190283466,-303562703,-1221161725,354674701,-1909538017,772671518,-1173349983,512557056,79234232,243346944,16780873,773148136,-1173362783,512557056,79234267,243346944,16780873,-1927989784,-402352362,-1916536535,-402262250,-2127627999,2131642662,113651455,771755496,235413134,1049308759,96865811,45637376,85364029,773967120,-1190128221,12189696,232253440,136220206,309518,274405005,-401743896,-1830286401,497102336,199157776,-164733582,806379270,-164742539,-2146410746,-1830276492,-399674868,678563071,771786728,239668865,-1729625984,-1925942784,-402125034,-13698911,1947211534,116796966,1971326536,4712478,270377262,520502062,1024488464,74776576,274440494,497233480,-392500464,-147980220,-2146547450,-1928891136,-402232298,-2094073759,1054014,-1959915404,-1274014434,773967166,269813447,784531456,239666935,24379904,243347139,33558089,924224850,-131078142,-147930278,936198,-1023314686,1227260206,1392377614,39917197,1526207720,126740675,-1170309074,1249124365,1225193262,1963458574,1048653368,707399098,378348660,-286783778,428402935,-1924131214,-402125034]},{"sector":15,"data":[-396822559,1497111270,1312575092,-1007099787,378389497,-890763424,426043639,-2146005565,-138418170,-953236488,997126,116862464,134221385,378348149,-1494743090,423684343,-1924084110,-402125034,-396822631,1497111198,1312556660,-1007103883,1929516008,41150521,4001907,-117279744,1041665475,-143398902,915260408,834211255,31909888,230110861,-1928127256,-1190270154,-706215910,-348746495,319547405,-370621717,71362563,501745779,69396484,-1943092231,772798470,267796105,-1909524597,-1928460258,772861246,266929862,772115220,772796067,266995399,-953286656,1044998,646000128,-536932349,777389655,235406990,270614157,274740877,-218100295,1594318500,440699174,1621110352,639634448,772490376,638607777,773211273,638608289,773342345,638608801,773604489,638609313,1478378633,1913209064,117386798,-1590816782,959320044,1980756486,-10295037,2015268398,512437774,-1590816790,126423022,-16627769,109260543,771887082,235413134,50788142,1965031440,251539011,1450446825,-1962752125,-49915,-1914109067,15616,-1557264780,-1595207698,51282222,773849104,266931966,1166749812,46629634,267428654,-301531346,-291426801,-8591089,-301531346,-291426801,104541711,125112304,52855086,-371196144,-1229324446,1595313408,186050576,777389655,235406990,270614157,274740877,-218100295,1594318502,-1243020428,1832816126,113651216,776605673,235406990,-147978869,1049350]},{"sector":16,"data":[-376081120,-1909522581,772798470,267796107,2015268398,41230,440764710,-368654546,771751951,267918990,-163673298,57927695,771964648,235413134,806259502,378220048,-2031611854,11974922,274667149,1594279470,-1461182448,-854739958,1360432417,-175904758,1015071736,-972852448,-498720764,508675061,244002386,-1959915472,-401591786,-1909585331,-1190262754,378339510,1441271903,-854739958,2222113,275584653,-851246920,1024357153,208928770,-402345133,-346355034,32242144,1495227128,-1928978749,772813878,271466123,-218101575,-1439780700,-218102855,-1442795356,-389865721,24313875,253136323,-184293368,135206541,-118162200,772153027,235413134,134647342,1444318478,-186128375,271859341,196681904,-1918176512,-1341112514,833792,-164713741,-2146547706,-1410828171,-2139917824,1970552828,1208415790,1718976526,272578189,271859341,-1409283911,1685332028,1928855016,-1408308385,393489980,745799740,1928850920,-270357937,1949187244,1946172422,-1186862309,1049427971,1017909308,-401771520,812840910,-1393302870,678756412,271857293,230506125,-218101575,-968979036,243981,133735667,-4668641,520616447,47299,-1021376519,62128311,-896855859,11997105,-779418956,378343629,719849905,365226228,378393714,518523373,-13309452,1465012563,62128311,-1993469747,856562454,-1275021313,378220034,281873947,382533812,1208415790,695566350,729025852,1349781564,745802044,427039548]},{"sector":17,"data":[729071626,1930231683,-2054672865,1508380735,-30521600,-351397114,1516239296,-1195156647,1610088448,-1017423526,-854718536,178973456,-2131397184,276057084,1951267968,1073512471,1610147445,-1017423526,-596181237,251539023,-2048192997,1930231683,-1115672881,1946161215,-30521594,-384951546,-1219428497,771929088,236656267,-1151856435,28901376,-854936576,1364247312,777133651,235413134,275584653,12139700,1931595008,78861065,1527296488,-661918997,567099060,-1286403725,144762884,-1259345061,-132002547,1499144026,378389336,518523506,1364247539,-1909566946,-1928460258,-1273991914,1512164673,-1017620193,-1122086064,-2094137344,937790,-1590814860,-1993470385,772706862,244582087,2011693056,-351571182,1705061976,-1161493746,-1557266432,-1993470328,772704790,-1190207072,-1909587967,-1156681186,-488112128,1369517588,-754601714,784894952,242353806,637534399,1946172800,512634396,915213832,1464930356,-218100807,1952014246,549946123,-347741726,300677513,243835182,268149550,243966254,268280622,1482366968,329902275,268149038,243835694,268280110,243966766,1914605102,47886,771752377,-401677920,57808100,-117314568,-854739812,784571681,-1274129504,653733376,-147976623,990900774,225910356,1144718706,-1996064996,1149836884,47644,-233927890,9562127,773473417,242622094,-1962934085,116797176,1954549353,33129261,1961362804,-1207702784,-1957625857,653733575,-991425001,25778194]}],[{"sector":1,"data":[51282222,-502267888,113716946,4074,-271465480,-1557202941,-108851201,-1207601919,116068351,620772072,-147976193,17825542,-6083072,-787975153,-773795360,1356911072,-1962934086,309979335,771819864,268635777,-1590816768,-2082336769,-368654546,-134217713,773739459,267521791,2015268398,512437774,126554090,-368671954,1528758799,-149516861,-245372923,1227260206,788496142,233309894,512634368,777457160,236142219,1593836998,136220206,1023588366,268768909,-1557257779,12128277,47616,772149480,235413134,-1929378631,-401581290,-119011816,-120854525,270377262,1912870888,116797004,1966084191,116796969,1954549855,80472097,954735730,-401116667,1760098496,243346944,8392265,386858798,-400657392,-1590757231,992874525,1947213574,15632,-1590819723,776474715,-351265373,-124852053,1225193262,1946419214,-15299321,-257169404,1225193262,1962967054,1813417223,-258217978,356418350,276037648,354323246,-851528688,113716769,4117,1364414659,777389655,235413134,134647342,-1220637426,3258637,-1426906960,-469317842,774778381,233178823,915222062,1049432116,146345405,-1918569728,-1190279618,-1527578621,275095854,1729530670,-903967472,571661,1225687342,-402587634,-1590817746,512561251,-2048389677,1637953036,-601977584,220325901,274767918,108266152,-469318098,78137357,-970062220,1393419526,108265896,-435763666,547901965,-970062220,1091430150,275489070]},{"sector":2,"data":[234233485,772555752,-1928304223,-401735906,686296287,-1221161727,193193997,233518733,1577811176,1532583687,1364247384,1443241559,136220206,109981198,1049431560,548409396,-218100807,915091114,1049432110,146346036,3964928,1015029108,-1543277522,1015084002,1174500654,-1929378887,-2146419650,57933884,1593369252,1499406087,-1590770856,-1557262311,12193815,-568423168,309507,1225687342,-402587634,-1590817966,12193761,18779392,309508,1225687342,-402587634,-1590817990,12193763,941526272,309508,1225687342,-402587634,-1590818014,12193765,1881050368,309508,1225687342,-402587634,378342154,-18349128,-953236498,1054982,30795776,787917032,-401597023,1030881780,1594291758,443887632,1594291758,309624848,1912776936,51767309,-13760398,-401598202,-1590820833,992874525,1947213574,15632,-1590819723,776474715,-351265373,-159717190,512634563,-1909584376,-1928460282,772861246,266929862,772115220,772796067,267519687,-2127691776,-15727834,646000351,-1073803261,1049450071,915214369,230232160,1587868416,15198303,-2127689357,1049358,772139840,267519743,50788142,1965031440,251539007,1366560745,-1962752125,-49915,4029812,772174848,-351277405,243347144,536875011,-384893394,-1959889905,-947715515,-257741310,117386767,-1590816786,-1511321618,-301531346,-291426801,104541711,125112304,52855086,-337641712,11975052,274667149,1459808232,557747542]},{"sector":3,"data":[1614187792,899344,1600038643,1049433973,-970059667,1242556678,-147978869,1049350,-341412576,774237056,268633847,829702144,-230784210,343146511,-486080722,113651215,774507962,239668865,451609600,-452526290,113716751,707399098,1225687342,-352059378,117386757,1354960865,1448236883,512634398,12258934,788040448,241764086,1343517824,388429614,238675982,-149845160,1962934210,-785913044,1358431215,-1962934086,237103303,-1458468008,141819905,-355341615,-355341615,268427905,268419831,-336002188,1579153409,1482383194,1537289923,463678992,1570844176,530787856,1048784400,1962938461,1537289735,99305488,274571566,497233480,-1909538032,772671518,235406990,52855086,-1149239536,-470351690,-2097150971,-896859950,-1993420661,772812814,271718025,-1191071512,378339510,-1108864929,116796929,1948258399,646000137,2147422211,-164736533,1074814726,-147977355,1049350,-348097408,116796958,1971327071,557747556,1614187792,899344,-2127649549,1049358,-1927222400,-1928322754,-1190109130,-1494024179,-2127689356,-15727834,772336511,274663158,774796672,772808097,270468667,4006004,772044032,1209015201,270377774,-150948165,263651,-1962880381,-372208694,-335937700,1355020289,509038931,-1909565946,-1928460282,-1190204098,11534406,-1924157710,722398470,1355254776,134647342,-331444978,8435984,-218276688,46629806,1049177852,-2144989138,1950023293,512577281,-81063827]},{"sector":4,"data":[995680139,-1960872509,512634568,1049431560,915214061,1179193453,1973875527,123664393,1532583711,-335953064,509039093,-102214138,875990523,512634384,-1909584376,-1190262778,1049427979,1031802594,-2145356737,376777277,1996749187,112901,-377285653,66126595,244217,1973870827,1174596361,-120069561,1593377259,1499406087,509039043,12473862,109981184,196677128,-499217152,1031808526,1176073258,-2144974521,561266493,708673574,-108849547,-1190824189,334168065,50588035,-1174862863,-555024381,-351701594,-498645502,32241877,520576761,-1329374881,776123392,269819531,158540237,-402345133,-346357646,508675050,775926866,269819531,158540237,-402345133,-346357670,1495227116,1377718723,-1959903052,-854584034,1393128225,1072170163,-320120064,-1017569446,-947170309,180493965,95672110,669573258,57826048,-389086800,-1959919608,-384955866,-1892750956,1477316870,1532516440,1600019033,772218717,236005119,-820082642,1381061386,-75475114,-1928432382,772456990,-1914664233,-351606754,66813974,-75436684,-1928825596,-2046111714,-1929057312,-1106581474,942538752,773485607,1948925824,63144709,-997527317,-957873996,-1130156537,-501314293,1602956810,4122625,178263693,-387305240,343018442,1007497704,1007514689,-1927252910,-402125034,-521410023,-817987538,141821194,170298158,-386733810,1516134393,-121414823,1499094623,378389339,-219674609,-1909580055,-1962014690,94628083,378389279]},{"sector":5,"data":[-555219397,-2127641623,2131650342,113651455,503320169,-518616530,-1262289394,1008848178,-385649153,1200292142,1369648642,71797262,-1573994242,-1590817197,-315486639,1393461806,-1948125426,-775932984,1073967849,-1557202453,1200295521,1419980297,138906126,240558638,772163467,772691875,240715463,1200291840,-163756019,772175375,241766016,787296896,240324234,1191436791,1537420811,378088974,-771027363,-2127688332,-2146539762,243281408,780144233,236863104,839611140,256346852,241148718,1200293867,1604529679,1604398606,243936782,-315486634,-796139017,1461060398,-1590799858,95489617,-768349997,-1590769525,-235467180,784466778,772694947,241505929,-1590764749,-1959915941,772693270,241370667,771807875,240328330,-1557203977,-2094133260,34599942,240230702,-388824143,100871760,-1557262730,-782758286,100871912,-1557262734,-1590817160,724438549,-1156679674,-470351864,-335100114,-2080375025,91554042,-324850104,-1021315057,784539641,240074371,779973632,244451015,-953286656,955398,1403006464,786706958,240199415,-150990661,788040691,236269195,2016291630,915090958,-1909584305,856586270,1945054171,8382723,-739719541,775057927,772704419,243930761,-1976636110,772690702,-401677920,1601309261,240361518,19850290,772706822,244586115,64523264,-338129209,512503488,-1007153548,2015268398,786117390,241505931,1661897518,785001230,243799689,-1979267282,771751950,-401677920]},{"sector":6,"data":[393349637,-147930741,-1156689626,-201916400,2013659950,1956851214,-389810162,-1007026720,201756206,512634382,-1998057972,-1023315197,-1979678273,11927373,1929493480,-1871713533,-790100597,1949252609,1916877925,2002402339,989626399,-947709323,48857858,249602606,249668142,-517046226,-1557249778,518721261,567089588,-1574027004,-1574039840,-2144465183,1091494190,250454574,-301545938,629815822,1929481704,48695,-274429906,1229342478,2001010307,-400192917,-328072842,431243243,1090789837,249602606,249668142,-517046226,-1574026994,-970060051,974056966,-284768722,1203002382,136220206,-264860402,378154510,-1023537439,-1909579315,1913523230,21882915,-970056078,921094,-402504216,192020728,1966030208,-481736949,-1207047417,-1007157248,-1207909144,-1007157247,-119011957,1413758208,1703554677,16312322,-147921294,936198,772764960,239668865,-947699712,48857858,-1909540373,-1173485538,162792151,-1058332211,1968129085,38112040,1006680808,-391023277,-1401814850,1225193262,1967128590,243347157,536874569,-2096904317,2129200105,1229733375,1166747765,9299970,1951683389,-1954419966,-1947729083,-385649920,-2127626378,936206,80184080,-385554045,1094582097,-385649588,1166802782,6154242,57953340,-385920535,57868382,788482537,239668865,-947714048,65635075,788473065,235413134,238977070,175440142,50009741,567085492,-1313208341,-855002110,467911457,-16713343,1031804279]},{"sector":7,"data":[-2146667488,125054013,1946762624,1204025346,-102503607,148170947,-806821754,-1008695800,1948318848,754745366,-58715788,-2146667507,125045244,1949301888,-121374462,1443241667,-970043049,17698310,249602094,245015086,-1694054866,-970049010,1544461318,-360656758,776451136,235413134,245184141,57876941,771788009,235406990,250429069,637552313,1743259018,92808712,-1259019705,-317289157,1931595022,-1929334714,-1190204098,-1359871930,-1956859825,-286686769,-1359807218,643254268,1968979328,1290290945,-2144968960,460676157,-8552410,1191277882,378406,-1909572684,-1928460258,-854659818,774140449,250545862,776451164,235413134,250623629,-518616530,-842858994,-1274514911,-1709798085,1495387406,520576607,48835,637536441,3933578,775695732,-2010246540,1175380612,653058631,1965964672,32196353,48711,637535161,3933578,-2010248844,1175382660,-1007623609,162812190,136220206,-1961456370,-1927164670,-401674954,162791497,43587213,915218893,146345705,540835840,-498201483,113651448,-1188426014,915210241,-391377182,-85852116,635973296,-365523712,243982,1763500,179370722,-1342172184,976909,-1396498599,24444988,190659,1381037547,45404298,1482301901,-2118181181,-11695616,635694386,-1359859792,-2144985227,208955453,1211990054,-2144991628,225787709,3479181,162799374,-115400243,-1007149117,-1962831384,1341719547,-148434757,-1947694093,47810,-2097151810]},{"sector":8,"data":[141952249,-293342837,309508,-150992197,818053363,-1169222264,-147980288,936198,1024095233,91553792,1946221955,-1948196333,47813,12504715,48384,-806681885,1227260206,-369164530,803733827,537380353,-74714997,1839214160,38111246,1476740488,772195203,242237059,-2096925438,163120875,99144448,45680572,47616,125165371,1225687342,-402587634,-963903650,-1014767733,1048784387,1963003504,65766147,1883145006,57999886,621003651,45678623,1977563904,243346951,16780873,-1946210840,786402246,242237059,-2096925439,-2094136381,34500670,-1014824075,375043,254142675,178432,125165371,1225687342,-402587634,-1662386438,8972288,-1960835130,1358662640,242130990,1476543880,-388823631,-1174388955,-1014824960,178435,-1946234392,-1176532026,-388825077,537216966,1862727214,410321166,1627736006,1912605757,797959,1879394246,1962934333,833539,771752633,239668865,-1746403072,809167870,875770417,943142453,1128415545,1397114180,309585,-388833069,-1928338304,774917406,786466519,-1017423401,252088110,1364414478,1431721810,254213934,1600019726,1482381658,244068035,-1943138808,-1592914914,-1557266430,78712341,905709197,-754970875,100871912,-1557262840,112725622,47923,-75488819,-1962642939,-1274745917,-2044605136,497233632,512634382,378342920,448008469,-2144460339,51256894,-466480270,225585869,1946221696,243281416,-343929238,-603932651]},{"sector":9,"data":[-838860871,-2096401887,108331001,1779335214,465059854,773967157,239208076,1075743022,891598862,-1943133747,772687366,239345289,136220206,-1240036082,622573620,378347981,599274718,-1927164635,-1205333482,567092516,567096500,1260292398,109850126,12062285,353799480,1914817809,547368480,1839345169,580922894,1856122385,648031758,1872899601,362884622,1889742353,124942,-1205972797,-2127691776,924990,-1910017533,-1136753704,158662656,12467843,-352160512,369145877,242364365,175374396,108298300,1225687854,1478426894,512372419,-1006760223,-851179080,-150179295,1963983042,12777254,774993280,241829622,775058560,772726944,-1928383582,772748086,235413134,-855441224,775910186,772726944,-1929252702,-402535658,-1007034155,34739853,-102707992,116797123,1950355050,-285100003,567132302,-1064561550,1961820477,788476429,249634442,50394662,-1909538443,856585758,-509595941,112910,-2012821714,771751950,243926727,-2127691776,943886,44296193,-2127652494,-15833306,-157882114,-1007121038,1464947486,2091069014,-1834930674,378220046,-1976693100,839799582,787740671,243015307,2115909934,772240398,243146377,992881899,1913554438,724455461,772703750,243664527,243573550,243310894,243049262,-2112452306,786117390,242622094,-1993468693,772702742,772703395,856589987,512634587,-2094133642,951358,-164731276,-2146539258,-13747339,772703246,-787579743,100871912]},{"sector":10,"data":[-768405892,-1962886424,116862465,69244,-388953996,-388896559,-14292783,2091068943,267861262,678888564,-2115389205,251604480,-1590817148,-147976580,-401729754,25886851,243049262,2084471598,1651832590,-1830092169,243048750,243311406,243573038,-2046416594,1975520014,116797014,1971326569,1048653325,267849340,1131886708,-2094134549,-150045634,930557044,2083423022,-1590820338,-13496708,1394510382,786691854,243402243,771805827,241370627,-134163837,1532583774,-953236705,-15827450,-542465,-1192367111,-335937537,1381060839,1362556718,788171534,242878011,460474228,776587403,242880059,-812969611,238759489,124980817,1363018542,774564622,268633847,57937920,771760872,772700835,240584195,243835694,-1979267282,-1191182322,-1607598078,-286781727,1482250752,1364414659,12014930,1444842030,787188494,242622094,771752123,242882187,1461060398,244002318,776539743,242880057,45681523,1048784384,1996557919,112899,-2011789010,113716750,3722,249667630,771821544,241112579,786789709,268641921,1516105727,-1017619623,1208415790,846561294,382534068,11798132,-185919795,1208415790,511016974,567083444,141885500,567083444,11591818,1208415790,108363790,41163580,-1007041544,-1909567458,-2146559714,2130735398,1208909870,12091406,785944064,-1559347039,-1590820756,1856179778,-820029440,-2144448482,-2146547698,-1912602440,1084305112,7119630,239247662,-1275040093]},{"sector":11,"data":[1478610189,1405876255,1465274961,243871317,1397755532,773739089,241633015,410255488,-1877046226,512306702,-1909584242,-1928460258,-1190229986,99352575,-2011788498,1915079950,-132145906,1566267738,1516134237,-1648141479,34028831,-147973772,943878,-117214207,45343467,1928522216,1532582619,1520692056,1347967833,508711251,1408804587,1465274961,1364414549,-147972526,-2146539770,773813248,244326028,-1910601426,113716750,69260,136220206,-2011263730,-18162,-1959917333,-1190229994,650969089,530391922,1482381658,773026889,243795587,377695745,771755658,240197123,1599974379,1532582494,-1289773629,-227743741,1499132018,-1779738533,209027240,225599804,158825020,99344164,824114990,615891726,312242,-80,-1,2101575,22282240,512,1112671104,-1064507253,234885125,303903,787971,244039822,-108331002,-34108593,-1202674445,-883949516,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704,78708751,-789068149,-628299565,74698795,-768878452,-268181293,-947135858,-388771593,-802438516,-1064565645,-522989013,-1030817789,1322289836,1187548077,-31145334,91598908,-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094,-1031072797,-1064385789,-2080863315,292880383,-501415642,16417267,-2129234704,-351272766,1086360796,-276578162,486614544,-339702200,-1950118942,-1962932162,50334262,33948144]},{"sector":12,"data":[1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602,482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,95344,4147,0,0,0,0,0,0,0,267521791,2015268398,512437774,126554090,-368671954,1528758799,-149516861,-245372923,1227260206,788496142,233309894,512634368,777457160,236142219,1593836998,136220206,1023588366,268768909,-1557257779,12128277,47616,772149480,235413134,-1929378631,-401581290,-119011816,-120854525,270377262,1912870888,116797004,1966084191,116796969,1954549855,80472097,954735730,-401116667,1760098496,243346944,8392265,386858798,-400657392,-1590757231,992874525,1947213574,15632,-1590819723,776474715,-351265373,-124852053,1225193262,1946419214,-15299321,-257169404,1225193262,1962967054,1813417223,-258217978,356418350,276037648,354323246,-851528688,113716769,4117,1364414659,777389655,235413134,134647342,-1220637426,3258637,-1426906960,-469317842,774778381,233178823,915222062,1049432116,146345405,-1918569728,-1190279618,-1527578621,275095854,1729530670,-903967472,571661,1225687342,-402587634,-1590817746,512561251,-2048389677,1637953036,-601977584,220325901,274767918,108266152,-469318098,78137357,-970062220,1393419526,108265896,-435763666,547901965,-970062220,1091430150,275489070]},{"sector":13,"data":[218215401,1886339850,1734963833,673215592,824191299,758593593,809056561,1698897952,1634890862,1867522156,544501353,1952870227,1701994871,1850286124,438316643,0,255,0,0,0,0,0,0,0,36864,0,1056964608,0,0,0,0,0,-65536,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,978386944,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1677656064,1701999221,778007662,7104870,1057030143,0,1,61440,0,0,-57652848,-1273066501,748653826,-2094559999,-478142525,-1306621456,1406874370,-13308789,6030880,8404621,-1220076150,-1959163904,49905867,1068501362,1974399740,-1201870078,12268294,-2145268480,74581499]},{"sector":14,"data":[82559883,567095476,1856226438,100678913,3999091,-1928695038,-400142570,1625889543,-1547685111,-1599995540,438036509,8468109,1914709480,1812395792,1946288129,1816035632,1946288129,-2078896856,450488358,-1928776983,-399797738,686365391,790007049,449177638,-1928782103,-400137194,350821051,23896329,1946681513,2013112638,378391413,44641977,-1929088000,-399329514,1072175771,-1610156528,141820189,-2146696528,497026568,-148933400,33647622,-402230016,-722922965,355133448,-1610035479,3932252,-922837132,67190946,38445633,1913669096,269478042,23862923,-33569801,116811893,1963007392,-150948767,1946288323,-1962822654,-1610436066,-393215680,244332906,-66646497,1022135291,1010594817,1010332674,-147557370,93190,-1188268798,-768403377,839987384,281891327,419070809,-360054154,-1224343368,-1177449721,281870336,12190388,-855591168,-385619184,378341443,-521657109,-852839399,-1965454559,-1962887998,-1312388368,199283461,-1125416464,-754339577,-1980560413,-401265866,243273570,-1610474080,1090781504,782636685,-400826392,141892756,1931400680,-21108467,661788301,-384198936,1822492655,167815425,1048701813,51642734,512365682,11993408,1141487683,108143053,-1845443849,378147701,-1023540928,567095988,242614076,-1863770354,605457918,425060391,118404843,24612348,-1191099969,-1527578609,1849590062,1912864769,32220163,1096007,521053427,1048641712,267714893,380633718]},{"sector":15,"data":[-2130613598,84286,-352161264,21864892,1979711805,1272482806,23469705,-639680,117827955,-754732800,1109298152,-3934463,-1311214095,871092996,-386664494,-470348156,-1207784797,653721632,-1083047607,21116663,-1559334936,1151336802,1073787905,-150903645,-1191099866,-235470816,-1962841949,-1325223394,-1930702076,-1982331960,50506782,1912777246,-1373730520,21143810,23209719,-670832429,512300914,1688273584,1109849857,65590017,990278360,1912603166,1561758986,410380327,-1962488087,721595414,-54512678,-13385074,-218101575,1967866539,-1878585613,497026806,-2147126271,-2145542130,-1591920408,1874002286,1912806973,1027584777,41026344,512257715,-1070398817,-1560108893,-1499266398,-1532805118,44867842,-402478941,292750974,175441724,109473456,1060897439,-1393955468,-1623293698,292896514,43976390,-1928664209,-400063210,1407784947,21406206,855810211,44213184,-1962760541,-956215538,16950278,44867840,-402478941,-747502030,16859809,1929553414,-1475968756,-955252734,173574,-1610154240,-153034238,-16684538,870843253,23896329,1962935465,-542141,1946161321,47619,23465611,-1979710273,-1224648930,-1407283457,871772930,991725504,-1962773220,1946500034,1194690818,-470359993,-2116056052,-1911553849,-335596577,-1877012760,-1560190303,-1070398812,-1560107357,1369506466,44081921,-1560105311,-1545076056,-385649915,1822555969,567553,116858485,2097516,109975924,872153774]},{"sector":16,"data":[21144063,653781201,-930414238,-1410088909,-1593765143,2091057481,24290049,44959374,25076220,669579403,-1866140153,-990508939,-384338943,-970587936,-947191803,-388823631,682956429,-384232472,-990510900,639071264,638604682,1464866184,-1190101619,-1332740091,-1426850816,145250399,-990495883,641430788,-1474667125,638612752,639389067,1964920075,1977289478,-2096108763,510788347,21831227,279451767,117380725,-990510730,640382242,-347732538,549778981,1424695413,24643327,1965212918,96871957,108390468,142445911,354104973,-218102855,116875172,131436,-186120588,375515161,24252159,24393355,24381059,1962818336,-1877015017,-1174501545,-1510801392,280057695,-1410088909,-1877012897,25036419,2081357600,-401902591,57808475,-369160471,-1070334862,24249915,1049298804,-2010775180,-1547685115,1990394232,-1375302143,-1946209534,-1996404466,-1962839538,101771463,1971963126,46462529,145240948,279457653,-71691403,1980170239,1166747137,1158358556,-350587874,-476665,24643327,23856887,158662660,-1960394101,770185821,1913585413,549946113,1990309346,2013661953,-400133119,1990268327,-787051263,398387240,-1929283423,-399970282,-1073014860,116853620,262508,568918900,404131073,359262249,25167559,113704962,378,24118983,1721827328,24945409,-401033752,661853583,723785357,-401259800,-193849912,1497166452,1312560500,1362890356,378398325,686303667,-74913515]},{"sector":17,"data":[-1962892823,-402554850,-146996025,-1959889665,68806851,-1560104799,-1064435032,1049231155,1688273574,44344065,1929600488,-2145481975,-542719,367543275,1975520006,-1957106942,76409040,23856887,125042692,1946157117,184871916,-1947830848,-508478,-12776844,1023767807,292945917,442317606,117428085,-2094661254,1946172029,70182917,116857323,524652,568856949,1916699396,343146497,24643327,-16489240,-16678906,1946254350,-13571837,-1592487192,101384568,175440246,696391309,-384536856,1990326990,-787051263,378988584,-1929283423,-399970282,116856460,262508,378347124,116860689,-2147483284,378340469,1021848238,388425748,183042933,-90904318,-1928946712,-399913706,113710119,131452,25443981,855663545,24552384,-201586930,25338795,-1576907613,-1555561826,-2002582884,10545409,699602573,-384567576,887620175,-386829804,2071070523,-166360538,1937082820,1963246838,281343721,145286261,279502965,-1960434571,187046997,276110933,24919683,-16354302,-352225786,8907205,24919683,-379620350,-1960443758,-1276634531,1024291335,1081475069,-385876040,954925852,23856887,-1703673854,-1927860504,-399814378,378344323,1088946764,2084471560,-2106326527,-452606426,-2097091607,98878,-202833035,1276546304,136439810,38405773,781850253,-384464920,-1960378532,-186115491,15618,-79884428,-2096663041,98878,1105791348,-280321,-16600088,-150899194,33647622]}],[{"sector":1,"data":[-402230272,820516547,-14227181,442338086,1023590120,292945915,-1962402328,-15043896,-402557434,166266981,379447551,707401357,638776040,-337312314,378398825,-150912351,-150903770,541631457,541726345,709301901,-1609234456,1681654123,-320337037,-385649899,1805844166,335669249,393499708,713496205,638759656,652543430,-1206231669,703135740,-1927288062,-399861994,1688277659,-136186111,637616678,639387017,-400665207,117377005,1048772982,1946157442,-1643723259,-1997996286,-25237230,24907519,1990274932,-535393023,345434154,716052109,23856887,74743808,655431309,-401453336,57939256,-1913083415,-399899882,468259391,-390056962,1659371875,24551685,720639629,-1877712920,23856887,1467285508,23740032,-402426624,1184957423,44081921,-1274984288,24945408,-1499217869,44212994,-1560105823,243991208,113705295,66212,1912624616,21143880,44434945,109120627,268436136,44435143,117374976,-522059104,24915587,-1581156607,-1465711954,-1547685118,-1566375258,22126850,-1593663325,-1532821150,1370114,378341234,-1528288501,-854739951,550342689,48976564,1364416436,1431787090,1951595648,1812395787,1954545665,8579331,21012510,44048013,-1946157127,-1623293743,208956930,44045963,44306059,44441285,1968700544,-617181943,650991143,915212267,-849991725,526276901,1182006268,125110076,43990656,-1959103425,542024648,541603465,-1560108383,-1600053174,541893378]},{"sector":2,"data":[350500493,76208947,208994108,973167755,-1929022264,-320142476,542121609,665327245,-1961674776,1599994305,1532582494,-1957539645,989941014,756511440,309460994,23340791,21693955,-1560227197,378077856,1482293922,104551363,1349780124,-1331570549,44606210,44435143,1688272896,44344065,1023581345,393543679,43925120,-401574912,199819183,-1643723009,-4718590,-971148545,171526,43779783,-1014235137,208977931,-385904920,74645222,43785865,507233115,444006733,23856887,326434820,-1588584877,-472841556,-661779854,520587608,-1013922981,-351222656,-1591847951,-472841556,-661780366,520588176,-998194341,-1577850096,-208993620,108193489,-1960394610,-998194428,1358293776,106387025,1912614632,756975910,-1375302123,1049333762,915210612,280565011,-1510736896,24260227,-1995999743,-1342081986,133736960,1482251871,-1588113213,-406912648,1928870659,457084176,-1572960491,291629085,497172105,-1017618440,1465274707,520488478,-1915188228,-1178586305,-1343029232,28575093,-1929335831,179899519,-218058752,236352686,2139983903,353287697,-1879046727,1651877619,-1265623290,189265440,-2147126256,712257087,-1191086195,1017905162,-397970912,-153091977,126500980,1047789628,913449020,997516604,1946182376,46956589,1207317739,578096651,855721866,1948269769,1008775430,991130926,-2146470439,2139951308,-1189040126,-1359806455,-2135683980,-864016149,-2147226872,-990509876,-167414752,-361494332]},{"sector":3,"data":[-1475655798,-166759160,175379140,773476235,21827131,520606839,1532583519,235295171,2117925895,1631327863,2050753650,1086262898,-1878085361,-219336048,-1017575506,-101990342,1546592814,2084199771,1026244156,1364405307,109971026,-617413968,244044339,-1014300312,-151065112,1098227908,1031080104,1946797814,163902981,-200658060,-501169277,281474785,-122153612,164034303,-38264460,46593791,-4712076,-166401025,225706694,-150996552,125045190,-335545672,130036482,-1017423526,1465274704,21864710,-405669749,-288231285,110030851,-1315962196,1946265604,76228114,1038668622,41029622,-1993932876,642731781,1313735819,1024458533,41029623,-1993932876,995053317,131495415,1482251871,1364414659,106387026,21831307,-1408856509,-164365310,78774067,621054758,1178996735,1175751462,182637382,92874466,-2010757305,-343718091,-1579059454,512426319,-338624190,-930356233,-784283765,1992829928,-205507836,1583286187,1482381658,1381061571,244047755,-886374067,-1958670734,-398242864,-1036255875,-1014236960,-1017423526,-1957539501,-2083550241,242352873,-796179647,-44046261,-119487941,1499120523,-768359589,44828302,113660,23465611,-398249757,4062529,1962402048,-508635,-113437068,199849471,-1947896622,-388330557,-796132120,-655632245,-745815413,-998981621,-770978069,12191093,-1152324864,243990529,1155727718,-50337725,-520095171,-1959168521,-105361413,-8591105,-122150796,-9115393]},{"sector":4,"data":[-74770316,-411577,1962887912,-477171,1962885864,47109,-393016853,-661914484,-385876040,-1158939516,-1946157126,-1157536242,484638721,-55580605,-520093635,1024554231,91553784,1979709757,-389903383,-487850916,-1161623794,46137340,-389903616,209059575,-661915509,-402653000,-303301568,-1828717128,-495599045,1381061571,-2110354602,-2000909567,-31999,-524352651,1979059199,-1375302107,-947679230,2144288,21571319,208926779,25738377,4030502,1072366196,-1070464588,110001643,-2087714128,548937927,1747384064,1928870657,-2036561134,-66721791,1946154813,-2038134309,-1979763967,184649916,-1962117898,-402553212,57932651,642051065,1946172800,-389575749,-990446502,-352160496,1962281778,-2037085411,-2070660351,638809345,639260043,771849600,-1808069004,41222534,-2135682581,199999538,-343679349,-2070463738,1592751361,-1017423526,401131403,1381061628,1431766614,272493707,-1959299838,-2097053154,-75430205,712179910,440765222,25593737,25462665,25724871,-208928769,1980169091,116294419,-2076504458,1752433028,25592891,1626074997,38551181,872154894,4372928,1349889778,495833995,1560233926,-402489660,529338729,42876544,-972655361,-352256185,-1947038925,-402553188,4061979,1025864704,544538615,-1930902645,-400985350,-130155388,1024095487,91553791,1979710781,-2110355193,32241665,123690489,1532582494,1364414659,118359639,-2111927300,116097793,-1070393993,-2103190733]},{"sector":5,"data":[38576897,38551181,-218086727,-1994265686,-1929280994,-1191031746,-1070399422,-1047810318,721437369,-1923305272,87752573,-136305272,1594350347,-1017619623,1465012563,-150912351,-1962843098,1166747336,1435182620,1569400350,-386795750,-125108116,678756107,21827211,29018923,1960262400,1692943122,15866,994184309,-503024425,-133633040,-146995477,-101419777,1516225163,-473736359,1364414516,-1960421546,-24438155,1946286467,-1958328041,-97654562,1962932029,-1948283915,-100996922,-354222453,-4661365,-101783297,1532583519,860996440,365575113,-1017577472,497026806,-1928891391,-399806698,-2117924277,93758,-1977060861,-33472482,1141422275,-1073012275,1084234101,-1925118975,-400252138,12061788,-1272853236,1008848129,-1007454963,-66707883,24002177,812778240,718127155,678749194,20979338,-1203568457,567100425,-1023993230,1131745280,67190944,343843393,343815821,50379000,820718285,-117440583,-841219912,-2094960095,477429753,-117440578,-839974472,-2096008671,208994302,20979338,-165281609,57966592,-117314568,-61006073,980993019,23855196,92307456,1397052463,538976340,134218092,1345259136,1314148929,23863328,41943552,538987055,538976288,67109228,1429144192,538976288,497033248,41943041,538988591,538976288,131436,1278149248,538976288,8224,0,538976288,538976288,19391232,-50190350,671613735,86512900,939927585,675415848,153637128]},{"sector":6,"data":[2047486051,678234920,-14121460,1400504320,1392539233,1229210197,538976338,1056800,0,0,0,16776960,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1229783040,1380930130,1294874144,1634934785,543450486,1953653104,1869182057,1733486,0,0,0,0,0,0,0,0,0,65536,128,1547321600,1414676816,1447121742,1279870510,334008320,-385649916,1290273531,-385649916,378340083,954740474,-989411832,378355989,753413976,145942536,1249128306,-378388164,-445162948,739624354,-1260877247,-1977496295,-1261204744,-1272853234,1344392473,246732682,978854349,-339577405,-1290367715,133294121,-402480407,378340718,-454545561,43378951,-385523224,378339983,12064197,-1558065859,-495839930,-1910581109,857031198,33602002,567099316,-881656801,-948584133,356648590,-941935620,-854231034,2016840992,-1187017451,-1494024183,915254645,2139952517,1227021,-1619679501,155683366,-1753467588,209682470,-1928759807,-399539946,-1796536457,360201869,119473694,1119483443,111473408,512593951,1200297336,365142562,1007437706,1007711233,-1949272832,1200170567,675777330,-1976285303,1200098119,189253130,155684096,-1960818525,-1137889721,-754339577,-1966044192]},{"sector":7,"data":[11808071,-523041359,1460326411,-1172928212,726108693,196149428,-796139309,-1272297590,-754601728,-1982854176,-1927955434,-399460074,-1163851480,183494677,1743265968,364683526,-401904408,512427763,12129606,512630380,12195138,-851463166,1938824993,-19404541,-1962654232,85301278,-1019543040,-907476108,-1039743234,243957781,11867587,356648590,363476621,854072459,-385649916,117374623,1955403202,-1595022846,512366019,-1019603516,74588276,365108872,11993268,-1994372957,-1927263714,1009754134,-1929087999,-399511530,378341528,1558720809,1393986822,365142065,108265788,378339508,2112369040,253136136,104982578,1913047016,1009611833,-2144766895,18203454,1094454132,113641333,-343927358,1982868516,-1023001896,1221752597,-1029537780,-1022966251,233505045,661788301,-385480984,149487799,149612798,-327813006,-1610173296,2133071298,915268854,109974856,-1946413758,51747902,-1174928400,-1494024186,-1029697420,8332565,1125551424,134146096,512374251,-477948478,-1948003969,-401233217,-1301150213,38636326,185961254,639136978,-150708853,93190,-1207470720,332202753,-947711630,-19338488,-32128506,1947583246,-1970345190,541631428,-1560088600,378085450,378347596,-1511509472,-1927091449,-399352042,-1461189273,99280901,-1191570574,-1064435648,113714832,305397874,-16776982,266912767,-385649919,1223164169,-956796415,-2146057722,-1274721560,365076486,-453607644,109965451,1575498529]},{"sector":8,"data":[27977730,57982987,-1979558936,-1240088042,-1072264960,-1106852075,-1962933995,-1961508842,-401228274,1218642544,633768480,1252196415,616663584,541893439,541988489,858527373,-402188312,1165100323,356523716,364777099,364910219,-855506504,-1978109165,541631428,-1560136728,378085450,378347596,-370658784,863562502,364815296,638959779,33439361,309635669,884479629,-352019736,-1290367650,76671017,378361323,-1998048388,29277956,-402651975,-445512509,71666214,443809852,326436156,38112038,24480294,365041290,-1995063645,-401227754,-947715499,-2083200496,1425470,1122567028,365076735,365077056,104496932,57873859,-1006698007,45227659,-338492239,-670840692,-745815157,621207557,-494800896,-1036259328,-1014823564,-2115376352,990306499,1912603166,1561758986,67495975,-1995838471,857031198,356557760,-1039743293,-1963360235,-1240088042,-855067648,174486035,-2141030940,1568538874,1980299904,-2012696062,-2011839722,-1927953386,1393903646,365041290,-1258743928,1528024328,417863794,106925313,1075167904,605405858,-1023001985,-119770603,-997577749,-954185565,-14661114,1276545535,538348832,96659506,605405856,365142655,1964360866,-501838584,58320942,106349561,365041290,2005006976,-18129,369080569,611455949,1996684672,66879519,54331252,-352160768,-268388333,-1608073074,-29556738,-79952269,82510452,1877721139,-1064386509,-2147466817,-2146057666,1186923380,-773336832]},{"sector":9,"data":[499394279,-1022639988,-2094604684,2113932415,126559959,1997537341,1250175951,343317,-1977170306,1077674567,-2076524937,-1200220855,239569446,-1333919684,-1401471172,755469094,-2071396350,-1977215670,-2008546745,638929284,-2012330102,-1927983996,120792582,1319355230,1250200352,1218658325,-1979665376,1075136900,-1977595229,-1558885244,-1029693364,-602501867,81193010,24611011,-1996485656,-1047854521,1200111396,-1047870716,-1071257974,-792407872,-773795388,-1010464032,-617393328,356916871,74767115,567099060,1405311067,365076561,622873251,-1556086657,378347592,-1981271829,2081852676,38660147,1929547496,-1290367734,37873705,641068025,-1073018997,104476020,661984706,75467558,29280129,637535417,1006912906,1007121408,-402426875,-947716079,653058576,184967051,-121801253,1371757401,1166681682,629810692,1971307766,1695976736,1946238004,1578536233,1946434612,1930857761,1946500148,1813417241,1946565684,541631249,1252246666,-2011788000,67037236,-991423253,2048298241,1031808564,-1929087872,-399212266,-1960443469,-1960440763,1285754453,1310099744,-773140192,1976699864,67124489,1269892211,332267,13796098,-788526407,-489106966,-1555189254,243802184,378347594,-1444399977,1300964867,1971987970,-19208191,-1977595741,4138433,-1977594717,-1556142906,378347594,-2048379740,1300964867,1971987974,-21567483,-1977595741,4138433,-1977594717,-1556142906,378347594,1642607780,1166747139,541631240]},{"sector":10,"data":[172329766,-1927263581,-399199978,1499071308,195,0,0,0,-65536,-1,-1,-1,-1,-1,-1,255,0,1392523821,1077838674,796196893,378395443,12066080,-1994273480,-1591918562,1117986080,489791517,326434620,-1608694110,1151474987,489529373,57945660,-1591917150,1532632384,1329352899,1336935030,496961066,-527824010,199762096,1976368640,12802297,0,-1572961490,1769275421,410132540,-1626931666,-1269673955,-841971198,777542177,497041024,-1020169085,-378271940,-445380036,208932156,-663418820,-1624342482,-713883363,-1626946002,-78643171,382534324,1963239675,1963698180,-1108649742,121393744,-768404620,-855591853,-990487785,772174849,497034880,-346531075,1049046706,-2010243678,-2027010299,-350379458,-1957277534,76164850,1946172486,-9377787,1482617835,229658819,-1325439512,-10426358,11846488,456988365,1007186945,184841219,-1273924160,1947651329,-855591930,871688982,15464896,861098179,-855526181,-399150058,178257872,1947417820,1947221003,1912618263,-437579148,382534068,322763380,11854197,-253028659,-1610156498,-848035555,-1607040978,-974454243,1537139594,-1923890344,857691446,-7411493,-617406605,1392467081,525276813,1526685416,-159912967,18718726,914363508,-352182880,1947221212,1912618478,-1073026700,128978037,-385959448,-898433157,222151659,-2143652836,527699708,-428072900]},{"sector":11,"data":[1930623875,1124108513,-2080466456,158663163,1142328658,-15865825,194702170,1268151515,2145913008,-400510722,145817210,-335645208,-16390012,1552431240,-1964799233,2746372,-1017388022,538976288,134744096,1577060360,658787,1193287680,1229739077,1109411150,1162233429,538976338,1918974976,2004499462,-1021301758,-253229942,1965047039,-185907709,-387938621,-997851130,-1023409688,33864017,-1059956656,1007625296,67270153,-399506425,-838926846,1498999669,1381191875,-326937257,-1075016952,63307782,703232,-201862605,805618310,-1979479985,1975520194,1191414511,91488316,-335688216,147096564,1532649309,1397801816,280580689,1926314791,65517579,-385894680,485228467,-1072958985,548603765,-352314904,-400510198,-1662517230,-1959742465,583874,1526698728,-1017619623,-919383728,1965095808,655375621,-398602990,1036849667,-854458268,301992509,-1979194419,-43718461,1482292194,37059,0,0,0,0,1397751808,541500246,76214923,1950366790,1946172429,-46864379,1532948715,613073752,-243997686,1960852038,1006930668,1177646080,12049546,1915808640,167477287,-472833417,541499275,678715964,712275772,745824572,846492732,1031038012,1064596028,1182035004,-398413744,-2040988442,-52369212,-1511268218,-20911981,-392977685,-1662255441,1946172563,-53942269,-1923968277,-75283689,-402427390,-346358469,-1192717329,-1813386242,602415283,-22157057,-1974280469]},{"sector":12,"data":[738243780,-1813982928,541628299,1526649832,1364249323,-1923676590,-400273386,1223228679,-400461059,477298056,-1912862962,-1188781506,-391380991,-508625357,915273977,1594302293,-1017620134,-335937780,1448236017,711464589,-386084120,812842328,401142388,-1276284162,1950628932,1012183816,-352160684,76170975,292692028,-68618379,-401968387,1094516203,-1014969739,-121402848,-1017423266,-1560184159,1689788488,-2144930048,1293847297,-201897215,24118843,1889739382,-159337983,-1609162542,773229853,2050917161,74711297,693638797,-2130798616,-2145542130,1364414659,-1893823150,36956162,1290278797,-401755908,-1977156697,413666117,378343796,145238177,378340468,820521131,638315516,639387019,-400665205,548470240,654024168,-401062517,548405273,654021096,-401193589,548405397,-386169368,1499134850,-1950132133,1144949456,490905885,1946157373,146718,548614772,-1979694104,-77535033,1189621939,-389576192,1206451030,-1288770816,3663904,1206437770,-399461381,-947257312,-386187800,367722542,-1979700760,-80680761,166211763,-389576192,250149670,-1031027968,-1325277147,-387394811,-1950154633,2041282,-1023381784,162644619,1342564563,6569216,1680671602,-399461632,-1950154665,-1962167856,-1243032638,1174861344,158597405,-400510829,-342623522,190952724,-1341884992,1007348492,-1257868788,738358384,-400510196,1168113699,-88283107,-534396277,-754601721,-399461400,-980811761,1023060456,-1341819872]},{"sector":13,"data":[-90118035,671171,-393017997,-392955242,-1580991337,116851052,-2140143252,417872244,-2147440133,378341236,-119003375,829946,378343540,78194329,-1929087744,-400117226,816446179,-1928301568,-1457072618,74776592,653137549,-1006973208,76158093,1914715206,1966029899,512577269,1105728642,-1961004544,33522495,1207309950,141918212,-1073019513,149674100,74777989,-823458551,-386225432,-1528235373,734956538,-1341688118,-100341728,378403298,2095589527,32242170,1381090296,-292858537,294784,2139958900,89098758,266535093,-398064502,87751583,-519996019,-1928891149,-175436193,-292824341,-1476114550,-1962576768,48955975,-796192533,540804234,742133110,792463732,-175438476,-1962677255,1599994050,1405311322,509040209,236914182,-544736249,1207318413,125044747,-218100807,-1189024860,1017905160,-1442614240,2005792994,540835848,783289716,-1409044054,57942076,-1325866326,1166912000,1595869183,-1017423522,1916865037,1870209125,1970479221,2032166258,1998615919,544501345,1679847284,1752440943,222262121,543574282,539783027,1936028272,995696755,2037276960,1852401780,1818566759,1663067507,1701015137,221148012,1310736138,223936520,1936607498,544502373,1802725732,544175136,1969382770,543452265,1679847017,1702259058,1630552096,1628048698,1881171054,1936942450,1414415648,1998606917,544105832,1684104562,168636025,218106381,1126178826,1230263617,555765327,1409944865,544434536]},{"sector":14,"data":[1702130785,1937010797,544175136,1868785010,544367990,543976545,543516788,1701603686,1869357171,1629516915,1919251558,168648992,1836216166,539784289,1970500449,1735289197,1970239776,543520295,544501614,1852138850,1769174304,1948280686,1293968744,1330795081,1868767314,1851878765,168636004,1936287828,1952804128,543453032,1852727651,1730180207,1634886005,1701147758,1836016416,1952803952,1701978213,1702260579,1864399218,1870209126,1713402485,1936026729,218762542,1701336074,1634038560,761815922,1935763568,1936269413,1717662496,1847605861,1768453231,1763731310,1818304627,1701995892,1852776548,1701344288,1936286752,168636011,544567129,1819044215,543515168,1836020336,1684370544,1634165024,1646292585,1919903333,1751326821,1701277281,1918967923,1920409701,1702130793,1869881454,1701344288,1936286752,168636011,1224739341,1818326638,1864393833,1853169778,1667592307,1701406313,1919164516,778401385,1459620365,1735290738,1397703712,1919252000,1852795251,658734,1852727619,1881175151,1701015410,1847620467,1870099557,1679846258,1702259058,658734,1635151433,543451500,1769238639,1932029551,168635945,1413563904,1818851104,1700929644,1701998624,1987208563,221144165,1867644938,1679848559,1667592809,2037542772,1818851104,1700929644,1701998624,1987208563,221144165,1095106570,1769414740,1646292076,1701978213,1667329136,221144165,1867644938,1679848559,1667592809,2037542772,1818851104]},{"sector":15,"data":[1700929644,1885696544,1701011820,168636004,1835619072,1952541813,544108393,2037149295,658734,1852727619,1881175151,1701015410,1629516659,1952804384,1802661751,1431511084,743723842,544370464,1701998197,1852272483,1684372073,1936286752,168636011,1953451520,1869505824,543713141,1869440365,221149554,1867382794,1952669984,544108393,1701536116,168636014,1851867904,544501614,1684104562,1937339168,544040308,1634038369,543584032,1802725732,658734,1869771333,826286194,1702043764,1919906915,843063331,1999847543,1663052904,543515759,1752642624,779367744,1912605197,1768186213,1996515182,1769236850,536897390,1953067639,1919954277,1667593327,1646264436,1965057121,594831726,1869488128,1701978228,7955553,1684103712,1836016416,1684955501,1633951744,1696620916,1919906418,1633820672,1701978212,1936029041,1953702004,1952675186,6648437,1684103712,1701147424,1965031531,1869507438,1830841975,1634296933,1702043648,1919906915,1953459744,1970234912,536896622,1881173870,1919250529,1920409600,543519849,1819631974,1914699892,543449445,1819631974,1730150516,1919250021,1713400929,1970039137,1577084274,1920091424,168653423,1008738304,1045580100,536879136,1331051552,538984012,1635271936,1701734765,809508964,1869750372,1696625775,1769108590,168653669,1818838528,1713402725,1684960623,544106784,543516788,1953460082,809508922,658788,1684174163,1667592809,1769107316,1713402725]},{"sector":16,"data":[1684960623,544106784,543516788,1953460082,809508922,658788,1699940877,1751347809,543649385,1802725732,221130286,809500682,1931486564,1668440421,744777064,1931489568,1768186485,1952671090,544830063,1853189990,538979940,860192,627322944,1634038560,1701340018,1075850340,1931502641,1768186485,1952671090,1701409391,1868963955,778333813,1867382797,1818846752,1864397669,1970479218,1919509602,1869898597,1936025970,1970234912,1713398894,1948283503,1914725736,779382639,218106381,1126181386,1701015137,1684368492,544825888,1919251317,168634912,1460276480,1768647777,1948280686,1679844712,1667592809,2037542772,1701999648,1869881445,1668246560,543519841,543976545,1701603686,774778483,218106381,1701331722,1852402531,1868963943,1768300658,1713399148,1835491698,1635020389,1852795252,221130286,1698955274,1769235820,1663068014,1936945010,1802398060,1713398885,778398825,1325402637,544828526,543961408,1702132066,1918967923,1701978213,1702260579,1818386802,658789,1853190740,1702125923,544370464,1701602628,1948280180,544434536,1701603686,1174413375,543517801,1701602660,778331508,1174407693,543517801,1702521203,1970435104,1952539502,221144165,1633091594,1852403314,538976615,543516756,1954047342,1702130464,1920409712,1936028777,1634231072,1936025454,544175136,1802725732,658734,1818838538,1713402725,1684960623,809508922,658788,543436864,1701603686,1701978227]},{"sector":17,"data":[1702260579,778331506,218106381,1701859082,1769234802,1663069807,1819307375,1684370533,658734,1766197773,1752394094,1835364896,1684957537,1864397413,1702043750,1751347809,1700341792,1867394931,1769296175,541010292,1852262656,1852404335,1752440935,1931506537,1768186485,1952671090,779711087,1342179853,1953393010,544503151,1819044215,543515168,1953391987,544175136,827609164,218762542,1699872778,1919906931,1629516645,1936286752,1919230059,1684370273,544825888,543516788,1297239878,1663063105,1634561391,1864393838,1701978226,1970435187,1920300131,1646290021,1752440953,1163010149,1163284291,1661603154,1634561391,221144174,1426722058,1380927054,542392653,1986622052,1528838757,224217647,1179538698,1095586383,1919164500,979727977,1429166880,794501213,1528847692,1397052463,1528847700,224219183,1179538698,1095586383,1345265748,1314148929,1278171936,218762589,1679826954,1702259058,538976314,1667592275,1701406313,1752440947,1919164517,543520361,1965059956,1919903342,779379053,538970637,538987055,538976288,1919243808,1701406313,1752440947,1948284001,1830839656,1869771369,1768300658,544433516,1701996385,1769414757,1948280948,1931502952,1702130553,1852383341,1836216166,1869182049,537529710,538976288,538976288,1852776480,1701344288,1936286752,168636011,1429151776,538976288,1428168736,1919903342,1937006957,1953068832,1953853288,1769174304,1293969262,1330795081,1768300626]}],[{"sector":1,"data":[779314540,538970637,538987567,538976288,1936280608,1629516660,1713400940,543517801,543452769,1701996900,1919906915,1634607225,544433517,1853189990,1864379492,1998597234,544105832,1684370293,1953068832,1752440936,537529701,538976288,538976288,1345265696,1314148929,1769435936,745038708,1936286752,2036427888,1969430643,1852142194,1634738292,1953068146,544108393,1818386804,221148005,790634506,1414743380,538976288,1886611780,1937334636,1718511904,1634562671,1852795252,1953849888,1701798944,1869488243,1920409716,543519849,1851877475,544433511,1679847284,778793833,538970637,538988591,538976288,1852134176,1864397668,1970304117,1701650548,1734439795,1948283749,1919950959,1702129257,1868767346,1667591790,543450484,1277194100,774984784,538970637,1380012079,538988116,1936020000,1701998452,1768169587,1881172851,1769239137,1852795252,1650553888,779314540,1292503565,1330795081,1428171858,1279607886,742741061,1684955424,1179538720,1095586383,1866670164,1769109872,544499815,539575080,926431537,960049453,1698897969,1634890862,1867522156,544501353,1952870227,1701994871,1225395500,221143918,1632632842,1077766260,224162864,1934950410,543649385,1986622052,809508965,168639073,1918978048,1766072420,1344301939,1769239137,1852795252,1650545696,1914725740,1869902693,1769234802,221146735,1867382794,1918986272,1919164516,1936029289,1970234912,221144174,168624138,1702063689]},{"sector":2,"data":[1948284018,1679844712,543912809,1953394531,1768843617,1948280686,1713399144,543517801,1414676816,1447121742,1279870510,1851853325,2037653604,1948280176,1814062440,1702130789,1718558834,1634235424,1768169588,1679846259,1702259058,658734,1952540759,1769104416,541025654,1157630017,1919906418,1634038304,1735289188,1701344288,1818846752,168636005,1668172032,1634757999,1818388852,1768300645,1981834604,1769173605,589327983,658734,1633094157,1852403314,538976615,1953653072,1869182057,1998615406,543519333,1702257011,1919295588,824208751,2020173344,1679844453,745239401,1953849888,1768453152,2037588083,1835365491,1935763488,1681014816,658734,1633094157,1852403314,538976615,1953653072,1869182057,1998615406,543519333,1702257011,1919295588,1075866991,1713398833,1684371561,1936286752,539784043,544503138,1936287860,1937339168,544040308,544432488,778318400,218106381,1701336074,1986097952,1763730533,1919903342,1769234797,1763733103,1852383347,1886220131,1651078241,1998611820,543716457,1702390118,1768169572,1075866483,221144112,1936019978,1634889588,1852795252,544434464,544501614,1936945008,1701601897,1919164475,543520361,543436864,1931506537,1886415211,221144165,168625930,1342835968,1769239137,1852795252,1718511904,1634562671,1852795252,1935767328,1986097952,1646290021,1229791353,1380930130,1949384736,218112044,1684819722,1918988320,1769236852,1763733103,1919903342]},{"sector":3,"data":[1769234797,1713401455,1713402479,1684371561,1936286752,539172971,543437120,1028408360,1751265856,168639017,1326058752,1869182064,540701550,538988832,1361059901,745826677,1801548832,1869488229,1952669984,778989417,536873485,538976288,538976288,538980640,1377837117,1869902693,1948280178,1881171304,1769239137,1852795252,1868963955,1768300658,543450488,1802725732,221131040,658698,538976288,540090400,809508909,1025515620,1699880992,1919906931,1634738277,1953068146,1936617321,1919903264,1701736224,1818587936,1702126437,1768300644,543450488,1802725732,537529646,538976288,538976288,538984736,1377837117,1869902693,1881171314,1769239137,1852795252,1868963955,1818304626,1768300652,543450488,1802725732,168636019,1459620365,1751345512,1953525536,1064202089,545056,1142958634,543912809,1869771365,1109926002,542330697,1701080931,1647394848,1629497704,2036539508,1684957548,1075868261,745043762,1769104416,1075864950,778592819,1325402637,1634887024,1852795252,1836016416,1952803952,221144165,1225395466,1919251310,543236212,542330692,1953460066,1936286752,1852383339,1769104416,1092642166,1684955424,1701998624,1159754611,1380275278,544175136,1868719474,774796399,1207971374,543453793,1802725700,1918980128,1769236852,1411411567,1701601889,1936286752,2036427888,658734,1986622020,539172965,1751265344,1935763488,1680949280,1819894560,1701080681,539784050,543437376]},{"sector":4,"data":[1684104552,1075850355,1931502643,1869898597,673215346,1836020326,1949581344,168635945,1330201088,1632895059,6646882,1750338061,1868963941,2003790956,543649385,1818386804,1936269413,1869768224,1919164525,543520361,1751266368,2036539436,1684957548,1075868261,539780145,1684104552,1681014816,1702043692,1919906915,1681080352,658746,538970637,538976288,538976288,538976288,1867784224,1600938356,1702521203,538976288,1394614304,1953653108,1918988383,1769236852,538996335,1684948256,1918988383,1769236852,168652399,1411391520,543518841,538976288,2034376736,544433524,1699946528,1919906915,538976371,1819886368,1634027552,1699946596,1919906915,1126178848,1210084473,543449445,1952671059,538997359,1377837088,220425317,757935370,757935405,757935405,757932064,757935405,757935405,757935405,539831597,757935392,757935405,757935405,757935405,757080109,757935405,757935405,757935405,539831597,757935392,757935405,221064493,1329856522,540422483,1397703680,2110001,1162302792,1157636128,1313166424,1866596420,538997871,538976256,2105376,1647394848,1075855208,1063805490,1073750048,843084337,859840609,2105452,1081225536,1075868210,538997299,826286080,658796,1635151433,543451500,1953460066,1667592736,543453807,1852270963,1920300129,168636005,0,0,1699875341,1919906931,1948283749,1931502952,1702130553,1918967917,1864393061,1870209126]},{"sector":5,"data":[1679848053,543912809,1965062498,1735289203,1701344288,1634560288,1713399143,543517801,1634038371,224683380,544825866,543516788,1381124429,1663062607,1634561391,221144174,537529610,1461723168,1229869633,555763534,538976289,538976288,1380013856,1196312910,220274976,1409944842,544434536,1835888483,543452769,1970235507,1646290028,1937055845,1864393829,544828526,1914728308,1987011429,1713402469,544042866,543516788,1684106857,1953654134,544501349,543519605,168650351,543516788,1297239878,1663063105,1634561391,1864393838,1752440946,1163010149,1163284291,1868767314,1851878765,538979940,544828993,1701344367,1937055858,1718558821,1701344288,1179538720,1095586383,1661603156,1634561391,1830839406,1663072609,1702065505,1970239776,544175136,1702063980,1952539680,538976609,1701603654,1869422707,1768319332,1931502693,1701015145,1701344288,1380535584,542265170,1734438249,1711934821,543517801,544432503,1634038371,543450484,544825709,1814062434,779383663,168626701,1918985555,1852401763,1768169575,1713400691,1293972079,1330795081,1835606098,778397537,220465677,1179538698,1095586383,1650532436,1702130287,168636004,1292504356,1330795081,1835606098,543516513,1701603686,1953459744,1970234912,221144174,168633354,1684366670,1397703712,1919252000,1852795251,2016293408,544370464,1751607656,168653413,1141509412,1702259058,606107680,1819635555,1869488228,1700929652,1869770784]},{"sector":6,"data":[1936942435,221144165,168633354,543449410,1952671091,1646293615,1735289189,1887003168,1702064993,168636004,1409944868,1293968744,1330795081,1835606098,543516513,1701603686,1970234912,1746953326,1763734369,1852793710,1953720691,225734245,1718511882,1634562671,1852795252,1950949422,1851876128,544501614,1965057378,778331507,220465677,1851867914,1819043171,1646290021,1937055865,221147749,168633354,543516756,1381124429,1763725903,1701273965,1818846752,1634213989,1700929651,1981836901,1684630625,1684370529,604638510,1750338061,1634476133,1411675251,1881171304,1919904114,1769218084,1948280173,1293968744,1330795081,1919885394,1380927008,542392653,1835888483,543452769,544432503,1684370293,1935767328,544497952,1480218712,1852776536,793595168,1496269892,168635993,1091177764,2032166258,1931507055,543519349,544567161,1953390967,544175136,1633972341,1948280180,1931502952,1702130553,1918967917,1864393061,1870209126,1679848053,1702259058,673216544,692989785,170139711,1937066509,1751326836,1768645477,1948280686,544434536,1701669236,1310728238,1751326831,1701277281,1920409715,1702130793,1869881454,1936286752,218771051,1409944868,1931502952,1702130553,1918967917,1864393061,1919164518,543520361,1634214008,1700929651,1914728037,1769300581,221148268,1493830922,1830843759,1847621985,543450469,1914728308,1635021669,1948284018,1931502952,1702130553,168636013,1409944868,1931502952]},{"sector":7,"data":[1702130553,1918967917,1864393061,1919164518,543520361,1634214008,1700929651,1981836901,1718186597,224683369,544175114,1701996385,1769414757,1948280948,1293968744,1330795081,1835606098,543516513,1701603686,604638510,1750338061,2037588069,1835365491,1701994784,1868832865,1847620453,1629516911,1701147239,1953068832,1752440936,1292504421,1330795081,1835606098,543516513,1701603686,604638510,1716062733,1970239776,1936291616,1869881448,1702065440,1701344288,1935764512,1768300660,1629513068,1852383347,1633904996,224683380,1868718346,539780470,1936028272,776740979,543574304,544567161,1752394103,544175136,543519605,543516788,1869181552,1711934834,543517801,1763734369,1667851374,1684370529,1868718368,539780470,1936028272,777003123,1701990432,1159754611,168641363,1663070068,1701015137,1314201708,1297239878,221140033,168633354,1650552405,1948280172,1768300655,1948279918,1293968744,1330795081,1868767314,1869771886,1768300652,539911532,2032166473,1998615919,544501345,1931505524,1668440421,1868963944,1752440946,1292504421,1330795081,1835606098,543516513,1701603686,1919448096,1751610735,1701344288,1953391904,543519337,1685217640,1769104416,221013366,1701998602,1495298931,1919885356,1701998624,1310749555,544175136,1668178275,1948281957,1428186472,1380927054,542392653,1835888483,778333793,220465677,1920091402,1914729071,1768186213,1814062958,1667852143,1931504737,1869898597]},{"sector":8,"data":[220471410,1920091402,1998615151,1769236850,1814062958,1667852143,1931504737,1869898597,220471410,1094533386,1953656674,1028792364,1920230738,1226845305,1852262717,224752239,168633354,1970479169,1667592307,543450484,1381124429,1713394255,543517801,1918989427,1735289204,544497952,1952671091,2015392367,2021161080,1746958456,1646293857,544105829,1853189990,220474980,1701336074,1937077024,1952671088,1293968485,1330795081,1768300626,1763730796,1852383347,1768710518,1126182500,1769238127,1852405102,1702043751,1751347809,604638510,1750338061,1768300645,1763730796,543236211,1801675106,1948282997,543236207,1701998445,1667592736,544501349,1381124429,1763725903,1701273965,1818846752,170143333,1866729997,1970239776,1851881248,1869881460,1702065440,1768453152,1768300659,1713399148,1965060719,1919903342,1953784173,543649385,1663070831,1769238127,543520110,1918985587,1852401763,168640359,1936028240,542711923,1965059956,1948280179,544434536,1701603686,1919885356,1948274208,1701519471,1931505765,1668440421,1735289192,604638510,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1291845632,1330795081,1176510546,1229802569,1380930130,1094852640,1380535627,1095979599,1279870550]},{"sector":9,"data":[1297889912,1330795081,1229336146,76,0,1163087201,1179208787,1381187926,1296650831,1161909061,80,16776960,0,0,0,0,0,167772160,1111839245,1145850197,807673888,808464432,607006768,-1625388754,776012860,775749794,775351714,775445922,775470242,775492770,1020464780,335988270,-974634691,16547840,-2144464012,-2143470322,946280077,-752972242,-855002052,89384993,1074185774,57869629,-1275031831,773967117,1027606214,116796930,1963015485,89974908,-2144449934,540884238,1912639464,243281634,-402113219,1634861632,961549965,1044284206,276234301,950081165,1023866414,74743869,955848333,-752972242,-855002052,-854739935,113651233,771833152,-1019395936,930813581,1077837870,410321725,916526733,1023866414,208994877,1023866414,74719293,925439629,-752972242,-855002052,-1961456351,-855002058,-854739935,1084239393,777044797,1020468878,887101069,567085492,283689816,116796931,1946434877,24635423,-164750733,20790534,-1590791307,-1557250765,-1590805364,-1557250763,283851918,1026138414,1015849774,1026269486,1015980846,-1625388242,112956,772308712,1020468878,-754545106,-1556181700,915091004,-964608865,817430554,782562048,775728033,1014892091,-2094128524,3975998,-2094131339,37535550,-1590816910,-1557250879,992885931,1950121478,14739715,1018011950,-2147075282,787641660,775729057,1015154235,-1590761611]},{"sector":10,"data":[992885937,1966900230,-1281282340,104541756,-780845946,1017356590,-1945749202,784758076,775726497,1015940665,-1959871627,775724830,1020993161,-585200594,-1549717956,-1935462852,-1516163524,-1901908420,1048784444,1979858111,244002323,11812031,1018863662,125225019,65783947,771752377,-147030367,100740833,-1461175077,-352161017,516238927,-1590805285,-1557250905,-1590805364,-1557250903,-2094121842,37535550,-1959914634,-1271087346,-1163907584,1992833852,-339203305,112899,1014931758,19849719,-398664954,208799587,-752972242,109981244,-1007141677,1023866414,225706557,-752972242,-2028565188,-855002053,784595233,1020468878,965744269,567085492,-854851144,1947941921,1021256719,1007055948,-351570864,132905182,1024360494,-1661402819,916330125,567085492,-1909537891,-1925393634,-1271426538,773967113,1027409654,-1927580288,-1271390954,-1205744375,567086081,812915516,1312612132,1497115252,378392693,162805406,-1959910963,-2126733514,-1929363258,1821054044,512306706,-1590805289,-1557250942,501955745,1074185774,378339901,162805406,-1909579315,-1925393634,-1271432426,-115225335,512437955,1200307415,-1935462908,105351996,1015980846,771752377,1020993221,1913026280,784348113,1017185851,1200096117,512437781,126565591,1015849774,771901323,-1187213661,-986841087,775740190,1027409654,772568192,1014898179,1913011944,-402265191,-1838020948,1023866414,259293245,992919603,1966907654,357009411,772237544]},{"sector":11,"data":[1017196163,377695745,771767457,1020731019,772326275,1020731017,-385649587,-30474389,1950136078,780873284,724450434,775731246,-1321420639,-1914645757,-670886820,-685864658,-2103366084,21489724,-1014816398,1967996936,251539188,292830391,-2110878930,774581820,-1959904072,-348334306,-104597284,1048784579,1979661613,-1590770943,11812141,772233448,775424931,-1975702111,-402606908,-1557264567,-1590806520,1814904111,6569223,1680671602,120842240,941073198,1026662702,652738740,346238471,832646712,-1262187971,119007232,940679982,-1929348120,-1271414762,-1927164663,-1271409386,773967113,1027409654,-1023314684,1027055918,-286785356,195243526,933310008,-1262187971,115337216,940090158,1027186990,1023896621,57802852,-402627539,-1557264695,-1590806505,11812155,772193512,775427235,-1975698527,-402606908,-1557264723,300431377,-887714560,-855002057,-719942367,-855002057,-1607548127,-1574036156,-1574029293,-1590806506,-1073013438,37566580,775124736,941045503,288816942,922693176,37500948,-1892806284,775426310,940836495,386305838,772795192,941033103,335974190,110046776,1354971153,-710726061,71797564,1015849774,772163467,-1187213661,-986841087,-398664930,1064436847,1020633390,1015849774,-1912158418,-1191182276,-986841087,775740190,1027409654,772568192,1014898179,1912882920,-402265322,259130548,1023866414,57966653,1527086312,1539569752,-1195116200,12268294,-2145268480,74581499]},{"sector":12,"data":[82559883,567095476,507371654,-2146994941,41223679,-1557258320,-1007141567,1023866414,393494589,1023866414,1282671165,-2012839122,-2094137028,3967510,771803369,1027411584,47441984,-752972242,-385649860,-953286304,4001286,2090937856,312684092,312553021,31320125,-1625388242,112956,1912844008,34269266,753599090,235339566,278998589,104410685,2071149838,302972718,1048784445,1979792658,-854870930,1946172449,201373701,-1175772723,1026138414,1015849774,1026269486,1015980846,-402652743,124912483,1929486568,1387653902,923408013,567085492,782887770,1027409654,774468612,1027417728,866201339,-1935462851,899755580,-1901908419,112956,1912810216,23586827,-2144467342,71122190,771833065,1027411584,645934594,788217149,1015692931,776238336,1015551627,-1726596306,775451964,1020468878,976361101,567085492,-854851144,1947941921,1021256714,1007973465,-1913817778,-1271489002,773967113,1027606214,-1923355902,-1271489002,773967113,775719073,775720099,775719585,-1187213661,-1394081791,-402165246,947060969,-1924003093,-1271461354,1512164617,-2012839122,-2094137028,3967510,-1978234066,372977212,-1083032419,-2011788498,372977212,-1284359013,1074185774,-1007090883,1015587118,1026138926,1027842862,1015718190,1026269998,1027973934,772021736,775771041,775647139,775771553,775647651,775772065,775648163,775772576,-1925483102,-1271184874,773967113,1017069195,1558401,1979661696]},{"sector":13,"data":[-1005155064,-855002053,-15299295,-855002053,201439265,456925645,-551283340,393500988,-948613572,916330125,567085492,788485609,1027411584,-1916536575,-1271489002,-132002551,36524995,512437760,-470336361,-1727659218,13796156,1015849774,-1911125714,784554812,1017067147,1023426189,771755705,1027409654,1174631696,-1494005433,-1007156619,-2144418823,-79872730,755418926,788528957,1017067147,-1557265269,1149975849,732114434,80118589,1024736909,-218098247,778728870,1017067147,773670027,-1958924893,-1557259964,1149975855,832777755,561808189,-2096728832,1912741756,2090937922,-9836484,1015980334,1914782777,-1935593975,524564796,-2144458377,71122190,773801099,-1958923357,-1557257916,1149975861,933441063,591694653,1027187502,774194315,-130204765,1455684035,-1777940946,850657340,1477166,1089110077,-12836403,-739703947,114176,1094615342,-2096889795,2021654750,510982166,1094615342,1912799293,146297627,512372292,-343917312,1528941888,20712050,-2144467339,272448782,772493195,1016663689,-2012313298,113716796,15498,772818987,1015287433,185550731,-1274907146,105317120,1015194414,-1993422845,-1958969330,-1557263033,-783270788,787010024,1480396963,-1979665080,-146734001,189203425,771805827,775723939,1016927881,771901323,-1975746909,-1057094585,-1557266252,1082866839,-2036126192,1048653372,52378945,-1590813838,-147964777,775715878,1016661507,184603267,772175058,1016467072]},{"sector":14,"data":[401340544,920983181,567085492,921704077,567085492,1074185774,1593378109,1381061571,508909398,-1843492562,512503356,-1993458540,775720974,1015944843,1159104814,378220093,-1993458548,775766806,742195360,116796993,1954561174,-18164,-752972242,-1944154820,1915079996,536386826,1516134237,-1648141479,1023866414,58001469,-1192432647,-2031616000,199520768,-133991232,1599987179,1532582494,1364429803,1431787090,512306718,-1943126894,775722014,1016073865,-1911125202,378089020,-1959903931,775719958,1027806857,1023451182,-164740820,-2143513082,-4649868,512634623,512572627,650984588,-123925902,1583308063,-1017423526,116797085,1963474237,-320079613,-402652744,-462290927,57982987,1574824952,1499094623,512486235,-752972242,-485061316,15674,378340468,162806531,-941088307,1393986816,-855002051,588680481,-855002053,201439265,456925645,-551282572,309608764,175395388,-512407236,-134217288,-1070396437,-970061845,71122950,-1924096775,-1271489002,1478610185,113450909,1364598359,1053044304,-986825509,775740214,1014906371,2114882350,1957098300,633441055,154992671,1024489216,192020484,-133959677,250136619,786592512,1027475199,526276952,1455621983,-2091841961,109912302,-1909572385,1446826758,196737163,1587999488,184879988,1022704896,-335942282,123336705,1388535391,-1143852205,-201916406,806216330,-1017488592,1381061456,129586519,1134636544,378220093,-953270971,540889862]},{"sector":15,"data":[113716768,538983765,1460061998,-1927274435,-1153607362,-201906416,-1031018357,-242494925,-1190859133,180027396,-2131495168,361246914,198325071,184841664,-502369043,868584428,869174226,-336776202,1516199392,-1017619623,1297889912,1330795081,1229336146,76,0,0,0,0,0,0,0,0,0,0,0,0,461485851,-1155817031,-507700287,469876507,-1021566527,1640307777,478267164,-887312385,-506651455,486657820,-738201135,1641356609,495048477,-618815015,-505602623,503439133,-484564511,1642405441,511829790,-350314007,-504553791,520220446,-216063503,1643454273,528611103,-81812999,-503504959,537001759,52437505,1644503106,545392416,201323017,-502456126,553783072,320938513,1645551938,562173729,455189017,-501407294,570564385,589439521,1646600770,-907486,723690025,-500358462,587345698,857940529,1878991682,595736355,992194559,-499309630,604127011,-14409151,1648698447,612517668,1275064905,-498260798,620908324,1394942545,1649803250,629298981,1529193049,-228776510,637689855,1663443553,1650796098,646080294,1797694057,-496163134,654470950,1931948031,1651844930,662861607,2066195065,-268490814,671252263,-2080378239,1652893762,679642920,16773769]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[30169677,31,13238304,75497471,128,61276176,30,1]},{"sector":3,"data":[1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331]},{"sector":4,"data":[0,0,0,-1,0,0,-1,0,0,-1,-1,0,-1,0,218103808,10,655360,-1325383388,1142969165,1444959055,1769173605,891317871,540028974,1126777640,1920561263,1952999273,943272224,959524145,1293955385,1869767529,1952870259,1919894304,1766596720,1936614755,1293968485,1919251553,543973737,1917853741,1919250543,1864399220,1766662246,1936683619,544499311,543976513,1751607666,1914729332,1919251301,543450486,11665528,1555038217,11665409,1102053456,220218,5243058,1547322032,11665411,1555038448,11665409,1102053386,220218,5308594,37372336,138392064,1060024320,278335,1376434,540592,1061105328,-1308621761,-1342171904,11822,1547321600,11665416,1118830657,220218,5308594,37372592,503362048,977448960,273966,1966258,2992,16777216,0,11,131072,184549376,0,768,0,639631376,536916480,17018880,-905924096,1397796869,861341266,868323017,305051903,801964210,657036,540297,-1307431240,-1943024382,-1996484090,-1207955394,78778926,109850573,1049165858,783810592,-855199214,101092399,71207168,240445440,132748,16009,1967756,1851017,-1945214232,-1996483066,-1207954370,145887790,109850573,1049165866,113705000,168624187,8652486,1074186020,-956301312]},{"sector":5,"data":[167789062,233564160,2899593,-402646552,1105723438,1357402368,1493725696,1532626783,-2096829608,-1007088444,-1205971376,567108352,1914636062,875989256,906398720,-1017618944,-1153171272,-768409600,-427810355,30310401,-851181128,12108577,113476,567136819,-1207841152,567100417,-852446013,343329,-336067723,146712,-4520589,-1157370881,28835842,47360,-4849486,105956345,367547735,-2146536960,1962475518,-350288380,-1960899070,123690487,1398195032,-919341517,1979711104,750553864,-337671424,46593573,-1128003468,-1014235120,322771179,1024291328,142016551,1883332,116114316,48324,-75250804,-2146011649,58064894,-1559434247,-4718528,114175,-336005581,16483084,1424491380,80118528,184972024,-352160311,-25125729,1378448641,1460031829,83933264,-12832819,-1962314408,84064472,32190413,1594192889,116087047,-402209661,1516044300,248447467,1543502824,1347928926,855637945,-139529536,1599621585,33260483,1048780149,1962868776,-49898,-1588589707,520028224,-346554328,673120004,857402112,-98103,-1977219468,166396749,1966422062,1300901380,80184067,-131238919,427084043,1962933888,87762437,992871403,-352160507,91506953,-352008317,208861667,-117440896,118358645,41747238,-315488654,1192069670,3802822,1397801728,106386769,-1981183150,-2013251554,-402637514,-921960764,-318037132,803734901,-402396416,259129785,17754202,-771072249]},{"sector":6,"data":[1726481268,-2096829692,-336001340,1516177156,1560834809,-998024359,-2096829694,-1007089468,-1957538992,-2097137634,91619323,-352310040,7858179,1504972659,-855637829,-2082196959,-336001340,-294128,-1053095052,-1326971020,113541888,1510175481,516118619,-108847354,-1273268991,361375234,-1977671219,11659458,1931413022,1435117063,-132002559,45354987,158648587,-854226394,1967736609,-1021314829,1392922711,119470731,447797643,1974399740,1272523523,123456395,868441944,1959332800,520494671,-678739788,1963063683,522308904,92939856,1476418280,1931413022,1085601798,-1675506366,440238118,-1047854475,248447467,-335545368,-397322982,-376701018,1931595097,990636802,990344392,41285864,526238091,2603203,-1258289989,-25115903,-166628097,209027270,1049429790,45678651,-16717824,-1000929597,184562750,639071487,-134201981,975573108,638022149,1996571962,1195899137,123726315,1040617411,-1814351104,1110898578,922194688,-92078014,-2147125751,65746882,1378927232,1975520065,1960512260,66683705,2088766837,91565066,4929279,-2094863551,225773305,738884736,922682741,-348061621,167346960,2088766325,91565066,4929279,-768371903,-768366613,922730547,868417598,1959332818,-1339706335,624436736,942017141,74711397,242598970,-402290138,24379219,1229080391,-2024348811,1961692106,1048792371,1962934336,105155115,975581188,41222469,809246443,-771029899,872612980,1048635371]},{"sector":7,"data":[1979646013,1229079048,-347123895,-17917,-386323625,1499463178,2146108275,-896839280,425088,-922022540,1229522548,32196423,185658206,1577285065,-108852757,855799295,1962871753,106386774,-2083966127,16446,1156984181,141889287,-402490172,451608908,218580214,1156975732,108269063,201802998,2093222005,22734850,1390936299,-402396416,124911648,1566508889,-2096829602,-2080830780,16446,57804149,-939584279,16390,-768359680,-956284767,167789062,-23730176,1149732952,-75283712,-402426560,-906100528,230223477,1149733130,-398245120,868417728,108822747,-955157248,536888455,-968670419,536888455,10938435,870003549,974031058,155486720,511099194,-259342038,-2147007242,1149899892,1149732874,-75283712,-402426560,-822214532,2088823925,225705992,1929923640,139209224,1284166026,1959332616,121959972,-166955761,1947207492,92939782,1476520775,4491144,1090224963,1105724277,1976172032,121960156,169375104,-1978370826,-2021127612,-2092761020,58015995,-33545240,-152275506,1963919172,121959944,-352160752,1959922188,1040617224,1976237568,190712,106021717,-1962467753,-1915014197,-402635714,91421826,-346486945,113541892,-161627143,1966081860,92939794,1760051536,637957117,1342260618,638446584,-1073085046,1095173236,-114559509,861782869,-943705134,268452358,-153406720,1965033284,92939812,218580214,-2136470155,608371572,1107740543,-167769600,1963853636]},{"sector":8,"data":[1107740422,-352318976,121960020,640054544,1156973963,259329287,1954596086,-461356284,1107740543,-167769600,1963853636,1107740422,-352318976,93005352,39160614,218580214,-956952715,1124365440,-947919232,167789062,121959936,-955878130,167789062,-52041728,91544331,766693939,1371755858,-92266926,-1979156800,-1274075966,-1979520244,-1960900894,522309079,-133498240,-1796730252,-1978960900,-840791352,-119436767,11797227,1499071602,-998046485,-3933948,19988485,33604608,50386944,67168768,83950080,100749056,117535232,134315520,151095552,167879680,184659712,201443328,218227200,235013120,251793664,268575488,285356288,302137600,318918144,335698688,352481536,369266944,386051072,402836480,419617024,436398848,453182208,486736384,503517696,520295168,537073152,553851392,570628864,587408128,604187648,738408704,755197441,771991809,788787457,805575937,822369025,839161089,855949313,872741377,889530369,906324481,923118081,939913217,956704513,386288641,1868787273,1667592818,1329864820,1702240339,1869181810,352980334,1970499145,1667851878,1953391977,1835363616,226062959,1850282762,1768710518,1634738276,1701667186,225600884,1866749962,622883685,1886593073,1718182757,543236217,1701603686,1835101728,1862929765,1768169586,1952671090,544830063,1701667182,544108320,543516788,1735549300,168653925,1025525288,1818846752,1142959205,1679834400]},{"sector":9,"data":[1667592809,2037542772,1344683817,1936942450,2037276960,2036689696,544175136,1768383842,1868767342,1852406128,1768300647,1932027244,1632636713,1948280948,1814065007,224882287,1850281482,1768710518,1634738276,168650868,1851867934,544501614,1718773104,544043631,2036539489,1667853411,1886348064,235539833,1635151433,543451500,1702125924,1427900941,1818386798,1869881445,1701995296,543519841,1701996900,1919906915,487198073,1635151433,543451500,1986622052,1886593125,1718182757,1952539497,225341289,1631790346,1953459822,1329813536,1713396048,544042866,1701978209,1987208563,1679844453,1667855973,269094245,1701012289,1679848307,1701408357,168632420,1869566997,1851878688,1886331001,1713401445,1936026729,1192299021,1919250021,1713400929,1970039137,168650098,1634226963,1735289202,1869182496,1769234796,168652399,1668238352,1769349227,1952541807,225341289,1632636938,1847617652,1713402991,1684960623,1226377741,1718973294,1768122726,544501349,1802725732,1634759456,168650083,1818838563,1633886309,1953459822,543515168,1768976227,1864393829,544175214,1702065257,168650348,1986939166,1684630625,1836412448,544367970,1881171567,1835102817,1919251557,587861363,1852727619,1478521967,1498435395,544175136,1701978209,1987208563,1679844453,1667855973,269094245,1701603654,1953459744,1970234912,168649838,1818838549,1919098981,1769234789,1696624239,1919906418,1377503757,1768186213,1931503470]},{"sector":10,"data":[1668445551,1768300645,1932027244,774778409,218237453,824513290,1818838560,695412837,1886348064,224683369,541459466,621158468,221390129,824510218,221390172,824509450,621480461,540157233,1311725864,621559593,841309233,794372128,272574798,1635151433,543451500,1953068915,168650851,1986939184,1684630625,1952534560,1847602280,1629516911,1679846508,1667592809,1769107316,1714385765,1936026729,1886348064,224683369,1866679818,1936025968,1818846752,673215333,1701017701,1746957424,1701078121,1851859054,2037588068,1835365491,1818846752,539587429,543452769,1701996900,1919906915,1920213113,779314533,168626701,1329813579,1931499856,1668445551,1683693669,1769239397,1769234798,542994031,541142875,1294934140,794501213,1633958468,542991732,1565536091,1395612448,1160731424,1528847709,542987823,1565994843,168626701,1931485231,1668445551,538976357,538976288,1667592275,1701406313,1752440947,1768300645,1932027244,1869881385,1886348064,168636025,1679827009,1769239397,1769234798,538996335,1667592275,1701406313,1752440947,1869357157,1769234787,1629515375,1865376878,1634607218,1864394093,1701716070,1768300663,779314540,540871181,759246624,186692108,1866706944,1936025968,1818846752,1998615397,543716457,543516788,1751347809,543520361,1920234593,1953849961,1702043749,168635508,-1308610770,-1342173408,1936027492,544483182,1851877475,1948280167,1629513064,1769108596,1702131042]},{"sector":11,"data":[1024068910,1294934048,548536356,1135607819,1701408879,1768300659,544433516,1752459639,1701344288,1668440352,1702259048,1953784096,1969383794,1931502964,221017189,3092746,991410,1920300208,1864397678,1948280422,1629513064,1768448882,1629513078,1769108596,1702131042,1158286638,1143939104,1952539706,538976357,1126178848,1701408879,1768300659,544433516,1851877475,543450471,1864396399,1717641330,544367988,543516788,1667592307,1701406313,1633951844,221144436,538985226,7163951,729266,1869762736,1937010797,1970239776,1717920288,543519343,1634038371,1735289204,1667327264,1701060712,1852404851,1869182049,1768300654,221144428,538986762,3756847,729266,1886340016,544433513,1701996900,1919906915,544433513,543452769,1684174195,1667592809,1769107316,1696625509,1885692792,1835343988,544830576,1936027247,973737262,1160716320,548536383,1135607819,1701408879,1851859059,1970479225,1919509602,1869898597,1936025970,1986338860,1763733093,1835343974,779711600,539494925,810954528,186692096,1700179968,1768319346,1696625509,543712097,544695662,1701603686,990514478,1462706208,548536350,1353711627,1886220146,2032169844,1948284271,1919950959,544437093,1701519457,1700929657,1701998438,1886348064,1735289209,235539758,759074055,1388413191,84001543,-65280,1158742020,1852142712,543450468,1869771333,824516722,1049429774,-1048375676,84067104,-65280,1343094788]},{"sector":12,"data":[1702064737,1920091424,622883439,-1928917455,-2096191426,12787137,0,549146624,-1094480384,1049428097,2142847868,648344320,16981644,367582094,-402164751,-380046488,-396885841,1282544312,16662144,-385649664,-1732444001,1208909828,12058884,170905015,-1205308224,802010882,1979711293,-1224296418,512307149,116851363,-2147482973,129502580,-1558279241,15958274,-399520384,1659371646,249620487,-1912594245,-389837093,915213698,378340383,1418265247,73174018,17188038,-1324923706,151536838,151602374,537543878,-1560273992,113705993,66565,67569350,134661887,1793589252,1048587791,1963003598,295692291,-1912594245,-389837093,-1612181757,-1558279410,1960512258,-1224230907,1286877133,-855573088,-49887711,-655687168,71634560,1158578178,-706215676,72804357,71632630,-402295548,-236257015,71960310,-385649376,645922958,-2130901947,17057038,-402280472,116786276,1963197509,-1472295619,511085826,44777088,-1341885184,-1341985793,222423132,71960310,-402426864,117309570,904397563,1158578178,645955588,-386988987,-981269115,-7804885,1048622827,1946157819,-82903501,1241970178,58000388,-1929369880,-402479042,116788505,1947206730,5761027,44570253,71634560,1158578304,1189613572,736985861,1477314243,73336377,109977716,-165280673,268437510,1604392052,73114372,237862,-1593548893,100729957,-1022950311,-1929249345,1048583798,1962935035,-335564796,-396578814]},{"sector":13,"data":[-1094513505,-37813763,212854785,-1863839885,-972721656,65732612,-352320058,-79790063,175439874,-967837557,1170627589,-154992639,134497542,116794741,1946223688,1685534,-956036701,263430,117884416,113704708,-402652152,645926381,-2130836408,-268155354,-1559983711,-2019490737,72459012,-1593510936,104399973,443745367,178424,-956036701,263430,134661632,113639428,-385940473,1705053651,1460025604,-164728316,134497798,512431220,-1947729085,88598538,-167463960,134497798,703072117,-351374848,1126075162,175171587,1929401832,1191638542,125108484,54730379,-167092760,134497542,317195124,15254277,1174861314,359925764,71700096,-3098367,1912739560,11200546,-352189976,1359907809,1175355396,15204868,-401837566,512426132,468190019,-1023350006,71700096,1175355396,-1813511932,-2122681855,-16492738,-1960741105,-402371826,1769079251,-402626584,1634862257,71698166,-1947438078,-402439394,1374357986,-385888071,1232208307,-402634776,-35126882,1174861315,796133380,84174241,104402943,-596442023,84174241,104399168,276563033,721705377,-1190894330,-503906288,-1007957877,1912888552,-389551348,91422532,1929662696,1342620416,-1912317023,73769408,72943161,988284787,-345738748,1158084331,1584726532,443942,1604386816,61023748,73113856,50618275,-1559993082,-1557789605,1705050113,1493575940,1493580036,-955878652,284934,50044928,369190,356944446]},{"sector":14,"data":[565798,637766048,637538722,1181382,899386,-1088522611,-1527578605,-385836311,116785295,1946223686,1174861334,393544196,71698166,639137028,1734,639036161,1734,638511872,1734,637987587,1734,75735298,631590,637830561,-1593832541,-1557789561,-1985937395,262350340,59351040,1155622,302433830,230242816,76267008,-218098753,73376164,238374,637816225,-402651485,1537278763,27469316,50044928,369190,637829792,-352319326,1192132616,-790101756,-1022928885,76232333,-1191116358,12255232,-16640,-848559944,-1559662047,117375811,149619815,71765632,195422209,1329497027,242548740,72433283,-2146994224,-150714842,243271147,-1022884794,688147873,-2096869114,282398,1068768963,54730379,73078411,73733635,-768353650,1914642893,1958820623,1175355397,-1544027644,149619789,71765632,189655042,1158084291,695468292,71640704,-850479874,443784225,44383872,-972590079,16841990,1048579307,1963000061,-49887739,-342032384,-850414588,116835105,1946223685,50248201,71306891,1840907243,-4855804,243271539,-352058299,-1526282732,1390936322,1158084096,-764141564,71640704,116835323,1946223685,52410889,71437963,-712310037,1946125032,1158578183,652936196,356972094,1041134608,773750400,243271540,-350223291,1160151045,116842244,1948255301,1160151233,-154928380,17058310,116791157,1963459658,1241970192,276103684]},{"sector":15,"data":[71960310,-351242992,1959955,-370469518,1912611560,-387323122,124911658,71634560,-2147095776,-553368282,-2113472829,57942020,-117314568,-2062644285,-15844604,-117214464,-1007156757,-1929376327,-1090221258,-1527578048,69154445,33363597,-1946004343,1153827932,1153827078,1153830919,1153826824,915210249,378340394,1418265152,73174018,33965254,268911814,541894,607430,69154445,50019968,-352160768,2209797,582484971,67740416,67438279,113639426,-956365817,17041414,1342803176,-1560274248,113705993,1029,67569350,134661887,1927806980,-796239863,598762932,225583565,2130706749,15624,-336066956,-10163964,-162348039,33834246,1840907636,-1962743036,-853887787,-2134681055,174654,113642101,-967048534,174854,71894774,-167283455,134498822,-1464203916,-166728958,268715270,1085932916,-1929123069,1001659990,141763021,71765632,155576352,520494787,59457152,-972393216,1543736070,59508422,59357696,567098292,1347601183,73875075,-400788224,-919339698,-1961901693,-754667071,73507816,-1560280315,-523041691,-2147195997,-150714842,956589473,1912887558,72982824,73729579,-150990663,1326856673,-2146994684,134497806,192220651,72418873,243271030,-351796154,1175355397,1515718660,244011459,243860571,78709855,54585555,17065222,1912888070,72589582,73074219,1503855990,-955847932,284934,516118784,-2147017210,17057806,72720678]},{"sector":16,"data":[1477367950,1594243366,-396069884,276037431,-851541970,1517617422,-838416850,1391132942,526070,644051984,64759434,337464,1049445494,915211145,-2144993261,232510,-5241739,1555038955,-402237720,-31063559,-402400250,477234419,958847116,1963220742,243279368,-348126139,18779765,-375592192,1743454343,1049454827,-1410858103,104589312,637658856,64753406,-2144960021,-1090239194,1174861350,91557892,1912745192,69986366,1048591474,1946157056,4096007,460653312,35556134,74311684,-400620002,-400620426,-2144993142,-284932570,-1946136344,104408792,175375455,73358,-369146391,-165218378,134498822,-2014837900,116794880,1963983943,116795114,1971323975,244066018,-1591344033,-1557789611,-1591344037,-1557789609,520553561,71894774,-402426879,650378729,43976447,-14285451,-1023237882,1241970214,460653572,1158084134,326385668,-1173797912,1001653245,1515659725,567098036,-1022807064,-549552090,141885443,-297893850,326369283,-1190584344,915210253,1049428544,-1527578605,-1022816280,1191638566,276070404,958847116,1946440966,237906,73376550,72720678,-1914120050,134673920,1265897472,-2010740186,86390787,-1926072832,-1929165506,637539126,55066240,-1341885184,-1341985793,82176092,-2012807642,651725827,73336377,512624244,-1091895295,-352302104,1161727278,81782787,-2012283354,-2136216829,62,1048577908,1963130880,1501187,958847116,1946443526,18779654]},{"sector":17,"data":[646900480,71896704,378389252,1135869971,567083184,28328884,-840965757,1575535393,1195278344,175439875,54986438,1208403548,1169817603,-851725309,-2146929887,537151246,-402241816,650315832,71960310,-1927711472,-1929249474,637539126,64765568,-1341885184,-1341985793,70903900,116795075,1963983946,520494639,-1090388546,1055392253,-401640700,91357215,-352320314,378371,1048580587,1963000796,1341688586,-967047738,520094021,-128560957,1239942282,1174696708,1022683974,1007710785,-1978894502,977011012,1180173685,-117249210,516118622,899334,1259149,37764749,-165239565,268716550,2145911669,1048585729,1946158047,116794926,1950352455,322342155,-549548800,18999299,-1190690840,915210253,1049428959,-1527578605,-1574567760,1776812064,642181895,65945216,-401050624,-165281609,1074022150,915213172,1049427987,-387448256,640084736,71763702,102659136,1357855,-956036701,263430,117884416,113704708,-402652152,938018059,512501493,297273891,631449088,1811986442,-1191181637,314179584,1162753,-838860865,638546465,-402390365,-2144993257,268715534,102632683,1192132639,-253230076,520560388,1048585923,1962935263,1048585736,1946158062,-1193768149,567100416,8438519,520494708,-1560275272,113705993,1029,67569350,134661887,-1863843836,-188946172,503717571,109979142,1824456963,1162752,11545012,-1105255987,1824457710,196691712,-108790784,-1408470016]}],[{"sector":1,"data":[58015548,-1442714809,133163849,-1912597569,-1107229922,-398065556,520553233,11599043,40822871,106158475,1599473438,1642594480,1599801090,662034747,-108812557,-352160768,-1205926370,161677332,84330244,-973078524,-16513274,67634886,67758080,-1007405591,-1927346658,-1929109706,-1996358378,1552679508,105170436,121947649,138724880,155502080,708218112,1075219716,39094530,-972792692,-972945852,-972028092,-973076412,-1929377468,637804342,64765568,-1207601920,65732638,-1560272968,113705993,132101,67569350,134661887,2062024708,-1262280957,512435776,-1960442878,-1962646762,-855636466,990409249,1962935814,-398595309,243271034,-402127801,-1796733556,92727299,-49887706,102630400,1292319,-956036701,263430,117884416,113704708,-402652152,243270475,528483399,-117095960,-1336429373,151948033,186026752,-1021195008,73875075,-16484864,-1274779890,-1021194946,567099828,113651395,-1275064627,1161785,57811405,-402611223,963772577,642915846,16981646,567095220,-1275035462,1512164634,440607,567103156,-336002190,113651207,-134148403,520494748,448058251,-1658904115,-345541881,1377699371,52334118,-852511743,8436257,567089844,280567642,-850480128,102669345,-1261204705,522308890,980617117,-972769304,67173638,71763702,-1207274112,243269642,-351271865,1292291,-1559814650,113705993,1029,67569350,134661887,1827143684,-2115500286,1355020548]},{"sector":2,"data":[-1269673645,378152502,567083687,1946221443,132904963,1192132646,1526300676,-1017619623,1110968054,-2090175104,171838,1048798069,1962934945,-1522630564,1433731074,16975502,-1107272513,699663102,567083184,-1090244632,1555956288,-756529664,-1927346688,-1090248906,2089353792,73174018,410822,268911814,541894,607430,-1560275016,113705993,66565,67569350,134661887,-1293418492,-1946369279,8436191,727166706,1607437307,-1336911933,-1382400,-12822449,-341179532,-1431549695,1962949697,1472421881,-4260778,-1977157377,2811909,1195836531,11596779,1326150830,1974361264,1314805507,-2080840725,58064894,638118905,-1962933050,1593327814,1444856671,74137219,1343321344,-849149768,914957857,-1943665559,1476684574,1765197094,3965700,70914420,1144653938,-117213439,-964491541,-118822142,1472405342,-2085828301,813107961,1929968003,1965046804,505868,-268189397,-352319303,-348018174,1965046805,768261,-108851989,1342534920,1487548080,-890551894,1604976816,-854674237,243279393,-1023278007,119414278,1225192998,225707012,-1274980422,639749435,71902848,-1022943237,1225192998,91521028,-852623176,116794913,1946289225,378152493,-889323259,654293736,637707936,17106490,-165277324,33835270,112854900,-851725311,-1173886175,1001652486,-165273139,67389702,1471809396,-851725311,116794913,1946682441,27965959,567098292,1048585923,1979712516,116794899,1963197514]},{"sector":3,"data":[1048585739,1962934949,124931,59357891,567098292,-1491695066,-1942582014,-850938877,66959905,567098292,-1274836550,-1088303814,-2031615095,251537150,-2144992252,263230,1405345655,-1591324079,29033481,244000256,-1977220091,637798198,67638922,1944274920,1532582400,1364414659,161556050,178948,84839206,915023364,-1977220089,-402388970,7594788,1482381658,1397753539,-1677255087,-1151749114,567083008,113649159,637796605,71763702,639792385,71763702,639792386,71763702,639792388,71763702,641955080,71763702,-348097248,16771198,-352285976,16246902,-352288024,146798,414719861,161687040,113714692,1029,117884454,-970522876,264198,-335582488,5892170,1424508395,1346431744,69154445,44570253,-1946004343,1153827932,1153827078,1153830919,1153826824,548929545,161687040,113714692,66565,117884454,-970522876,264198,1493115624,-385871128,-1528172726,113649391,-1660944131,123231065,87947459,1026257920,729022468,1946165053,2112811,557656948,1026257920,729022467,1946157629,4275499,1379731572,-114920448,230211051,-1205736704,485163022,-352317512,1095703,297276139,-1207047424,149618706,-352315464,1619971,67740454,84330278,637534212,67569350,113649407,-402652152,113507995,-1090052528,-1108868440,44613372,-217973313,899492,-1090221122,-1527578048,69154445,33363597,-1946004343,1153827932,1153827078,1153830919]},{"sector":4,"data":[1153826824,915210249,378340394,1418265152,73174018,33965254,268911814,541894,607430,-79790042,343212034,69875341,17188038,637542584,67438279,250281985,69154445,637542328,67438279,-1557790718,-970587127,-16513274,134661670,82313220,-1022928642,35556134,520494596,653968872,170073742,622234406,-87496694,102679327,113444639,-1207493040,-1557790684,-953809911,263430,113649152,654246919,67634886,-37623808,-706214056,-2144418817,2207550,781989749,248061695,1081344316,1014235196,-1912594247,1505857241,37509465,54267252,-970585740,83950854,787331561,565118718,-49887706,-68614912,2144749,-1047602802,643389785,16582342,-302651131,3997903,-1173720064,243269643,-343915976,160819254,-402022424,378145044,915210501,333971719,8841225,16662144,-352160768,939980412,259358786,-402062616,378145042,-889322842,-151247128,-2143143930,-92053900,-2095287261,393479162,-954860925,263430,49971968,364512117,152471808,-1993807100,-956036842,17040646,-82408704,523668803,39094532,-972792692,-973076924,-972028092,-973076412,-973076156,264198,67569350,-54138625,16582342,32241924,32031736,-163351789,-2143143930,243282037,1031815736,141885441,-1174403898,485163029,1962935101,312840,-352312390,146703,-796195723,80086763,244224,116787947,1950368312,637443,1048585451,1962934526,132442160,1110968054]},{"sector":5,"data":[-401377920,-35127260,57010176,1110968054,-402426496,11534647,44777101,-1912966168,-1929204938,-217888706,116835236,1954546762,95965225,67740416,67438279,113639424,-973011960,-16513274,-1191446296,161677338,134661636,-353894396,-1161602821,243269653,-1015004616,670794014,776500548,972764869,973175936,648875125,-1924923230,-1421830082,1049429227,-2144976744,88352574,861086581,1124264923,3976362,1105787253,141712129,940474406,166396226,637535930,1110969984,-2125337728,1967403003,918892104,2088778243,209009153,-6150483,-398553789,82553664,1088962189,792625190,594871620,-337956013,-1398127870,-109772740,1526789096,-2144991118,37894158,112855531,243279360,-343915976,15788035,503759647,939980295,343146818,1049428144,2045264024,-1741255175,-46232256,1959937,1110968054,-1340836862,-398553856,-111220672,1088960141,38616717,117441256,-108790589,-1408928768,-152352342,-46232125,-46756607,956757505,91489346,-352296728,-180492264,1015025778,-2146536448,108354620,97408,770179956,1295944960,1295420674,956757506,91490370,-352307992,-183375848,1015025778,-2146536448,108354620,97408,31982452,11584256,-119084969,-1958131361,1547272409,1103497332,1103518721,-389873662,259258617,1928649448,312837,96863211,-1962218752,96882680,21349980,1465107200,1547468886,-2092236427,58671099,-117314568,-1017421986,1149189761,376783978,1116997318]},{"sector":6,"data":[15263745,16647878,-49887743,-369623040,-75431719,-1959902099,1949974334,12445955,25002022,-971803309,21139974,71962240,113651232,-383763940,-2144993103,1967194493,113651226,-165660144,134498822,645924212,-2131295158,17058318,637571305,1291943296,-970057355,540677638,71960310,-2147126271,-33273306,71962240,644934408,1342274944,-970059147,540678406,71962240,1158578192,1475020804,25002022,-971868859,21140230,319211054,243277882,-352058294,2105550398,443897345,520537646,1421090874,3940813,28846453,-2145268434,-2147202802,243277291,780141642,975308486,-351212768,3467278,71962240,113651202,-1021298130,67700423,113705260,1029,67569350,134661887,1055391748,155091449,1946237188,151453446,-1007686908,1929393384,940474380,243286082,-343915976,1235299877,129772858,-523041615,-1976633806,54151958,-742261054,787886816,978065034,-6045181,-1262225408,1361169706,774616146,977866379,1261865518,378154554,567097932,-1073063590,-133859847,567094196,-167305533,21116934,116789621,1963082296,1423882,1110969984,-1972311168,-1929206250,-402564554,243270814,-167508919,21116934,915212661,-1947729237,-1924076796,-1270835178,1914817851,-1508472307,-1422488318,74770434,512571883,378355864,-135789826,-1743352574,-851725248,-2145619423,196158,378148212,915210918,1273496235,957251588,-253230014,-1173820671,243269639,-159366600,-2143143930]},{"sector":7,"data":[1676345972,71894774,-1928825855,-1274980586,-1977496261,-1929205994,-402543306,243270678,-167246775,37894150,915212661,65536908,-1925911804,-1270814698,1931595067,4777987,1110968054,-1977584256,-1929205994,-402420682,1048576994,1946174010,899342,1111111309,64962189,-151201048,-2143143930,-1847060107,939980290,259358786,71894774,-1928825855,-1274894314,-1021194949,1088960141,-167757080,-2143143930,149424757,-401175296,8644672,1448606915,92993631,1945520104,-347650300,-1375686412,-1336996236,141864540,-1371885489,-504692108,1600018255,-237639485,1962949760,772064777,312902,1015040235,1178826076,-402355464,963835404,1968979072,506378,1110969984,-2145326208,460664380,-402355642,309523952,1949187200,1547468805,129632372,940474368,1392017474,59315853,567098292,1388574810,44504714,1021889278,1015044854,-2146929664,141900348,-402651962,686489643,-1275067194,1914817851,1543816715,-388592826,-622067889,567097780,117311090,-521468924,-2147480902,-2143143922,-851725117,-352161247,-400650897,974556480,21555266,1111113344,-352160512,699663963,1111111309,16975502,-1342149441,119655680,930414652,-1962899480,994204694,1967282710,974556451,-851856318,-32542175,-1274805242,-970863301,4340230,179964139,940474368,99319874,1111035520,-972166392,4340230,-2147356184,138557710,1023457475,50075277,963781069,12114059,-148779708,1946190018,213405736,67740416]},{"sector":8,"data":[67438279,113639424,-973077496,-16513274,1492538088,16582342,940474372,1944682562,-851528474,-1185889503,915210253,1049444922,216547913,498605819,-385894912,-2136090588,41230588,-1557790540,-2136128936,41230588,-1557790540,-1927331238,-1929109706,-1992144618,1552679508,105170436,121947649,138724880,155502080,309248,-956036701,17040646,117884416,113704708,-402586616,1554249141,1751106,-956036701,263430,134661632,-1628962812,1696708853,1113331341,-855637319,1113366817,1113065019,104532084,41173594,-1017604629,-219612277,-1961069581,-271456009,1946172544,230249993,-201684224,80109220,21284398,-1189418240,-259325939,-1527514485,-1394019445,3965167,80086901,21284444,119456512,-167740952,17058054,952070516,-402608063,-779357316,-398346049,-784600204,-1195483790,1094238017,-2080617911,1198850297,1962998403,1241970207,125116420,71960310,-1173720060,243269640,-343915976,1192132613,569065476,71960310,-167283424,67389958,1031803764,-2147060644,1969028989,571912,1110969984,-1408701568,1225029038,-1012077750,-1984014506,1094237955,567107764,1933654207,59358979,44613207,-1270761281,-1105080992,57885112,1594009790,1912678376,1225687045,182976772,-2147126016,17058062,-1497145761,-2134703756,1962999676,-202652927,52334110,7126529,-297890490,768259,-1021336333,1011089568,-1610255072,48955653,-1499316180,-1572862974,-56491352,54895106,-1610524766]},{"sector":9,"data":[540820479,94373237,738388737,44540480,44435000,243271029,67175497,59351616,-1576804958,-1432222723,431276801,-1057087027,-1023343198,567101364,512427715,-1014103805,172326,-1560199123,-1022950317,237088952,1528203610,-345118716,-1559995487,1503724629,20987140,-1202707597,161677314,84330244,-973078524,264198,67569350,-203036417,-49887656,1541997568,72852452,1930428221,1095949,539877879,72065794,113706731,-3144629,521019075,-1171971144,567087031,-1274625249,-853233611,512306721,-1943138615,118409990,-1273033186,-1172000731,567091548,1448592159,-1509526106,-336067723,1600059649,-1306704189,-1342173952,1118635719,243859456,646529847,914965305,-1979956421,-951934962,4366854,-1257847040,-956301246,4367878,1913046784,-950183101,2084795398,1980155708,-953467325,1027831814,139061307,-4713613,-1960422401,255469085,45613939,216619776,-1355380479,1431786306,1119297165,1118701302,-1405192928,1913181416,138274871,1860711028,-166300408,541240838,149423477,-165483768,1094888966,-347202700,1007126552,-2147125955,21147150,147843139,-2001942157,-1007992057,-1539929778,509506,1119035017,-1927443674,-2143111370,829697852,1948400768,-1375275513,1349845314,21465638,104457266,292766368,-784162655,54739936,529213144,-352288536,-1576614042,-352321214,1200236126,1088696833,-670834479,839879206,1959332845,642990863,-1142415477,1064524544,-220052669,1117914823]},{"sector":10,"data":[871038979,21465638,-784276430,651690976,-466483318,54583505,260712152,-921965262,1396903796,-400585946,1935343700,-498908406,-1576613902,1560282178,244013919,-1566489952,-1539929278,-1508471998,-1474393534,1355020354,-1459123418,74776578,1117783807,1962949760,108824,113707125,148130,-1336930581,-385895421,-346554220,17885187,-1007041704,-1977200299,-315488177,225757451,-402034803,141755198,-503312920,99351030,1119170185,-1017292296,8290342,1157854208,-1018824981,1118703232,-3610608,645939826,1357857454,725791137,-1358560826,915101762,1015038641,-2145159936,1966800764,-1576614136,-352319166,1065559582,639136768,67575,113709429,148130,-1813509653,233568256,1342893049,-4979792,1476396008,643286008,-1996193909,641902142,-2010774136,-1588592283,-1993981259,1012400709,638219521,637818249,-351908471,1963080793,1435051526,1011870468,1021867015,1021604872,637957382,-352037496,1963211837,1118806286,1166616128,1569465860,640412422,637826441,1342594444,38270502,-1341885439,638184196,33703926,45090164,1476460264,38270502,-402426864,-1017184048,1132136134,-1960423424,1975520007,1381191703,-1576614057,-1275066046,-402411265,1516240736,753621083,1947205801,-1576614128,-402653118,1048773295,1963541154,134261015,113710452,17058,-2096910616,155361854,65733237,-1450154261,276070400,1117914823,417857536,-1572961535,1349847362,1950351529,-1576614128,-402653118]},{"sector":11,"data":[1048772835,1963541154,16820539,113709940,17058,-402349080,1048773915,1963541154,33597731,113709172,17058,-2096854040,155361854,11079285,-955681760,4366854,23586816,1132150400,-2096270079,4366910,113706613,606882,1448133464,-1073085302,977016948,2088766325,91553793,-352320314,98822153,1178993011,1482613483,-1974315325,-402355504,192021969,192200714,-2013262872,1174530820,1525345094,-2143501474,1631325299,2050769522,-551272841,106117867,1832815959,83525699,1049429108,356008808,1364203380,-1274601902,-1144878491,96075775,-17920,1499079117,22907736,1124287886,645934147,1527209943,243290307,-2139077970,-45961690,725353610,758909300,243271285,1174553262,1476395752,1381060803,868823894,76174290,1114947594,1912637160,-1947979207,-773664280,6875345,-628413326,-489569909,1541984721,-786468352,-388902430,376569938,-938224893,1912621544,-2083192051,1072169169,1174630912,-346309397,-161771483,37924358,-772339084,-1031548169,13730561,108497702,1006930470,-1341688576,-335563775,113741835,606882,-4979792,1593672680,-1017620134,-1375275364,41222722,1889387421,-104597502,1915763907,2000239624,-131060732,1355020739,643256915,637960075,-1073085046,-4979595,113707243,606882,61931444,1610432488,-1017619622,1448236368,76153522,1912896744,-21305286,1118701302,1007514632,639530301,97920,317419125,1118701302,1007580176,638219578]},{"sector":12,"data":[32384,-347710859,1178216026,169637120,1179677888,638774085,1962952250,76170819,1178216005,1178170624,-156505275,1078111750,-148500620,2097735,-2144991372,1946157182,133637666,410255376,158677564,8290342,-351439616,1962949646,2122327559,57948672,-1996100615,-129846986,1482512990,1381060803,-396995754,-950140772,4415494,1644611328,-956301245,4416518,10610688,1621300850,1960512067,9824280,1654875506,1960512067,9037836,1688426866,1977289283,1042189138,50037571,1621172084,1977879107,-1580692926,-469089438,-393594507,1130632843,1963064195,-337017342,1612090134,1130537283,527819786,1688324234,1977879107,-2081912298,74671354,124568193,-4956581,233310128,1527770108,-1325419426,-66918397,1117914823,1499070473,915260248,1015235390,-352160513,1347558927,12066590,-841577672,526014497,861032899,168069833,-2143587136,4406590,-75493516,1006925057,1009808442,-349408210,1949121548,1949252646,1949187106,-29235170,11804274,703121,-770972937,-1056763531,1183911538,-661995541,1174793208,-117314568,1499120011,1381060803,-396995754,1157037960,1969094929,15329283,1130366663,113704960,17250,1130628807,113704960,17254,1128072902,-402541823,1400045431,172187811,-397052709,1198718827,172188323,-1287031589,-10622974,1688418674,1977289283,-1392052689,880083522,1118058123,754941056,1153837685,113716991,17069,1118637696,923699970,958827331]},{"sector":13,"data":[993430339,-118298301,1929323240,1130799960,1366678282,172187809,-162892316,21146886,205260916,41238391,116834354,1946436270,1946958860,1913390088,1998076972,-1580168664,-469089438,-259383435,172188833,-1978239516,1130799560,225829898,1583081610,145817524,-335894552,-1268884721,-402411265,113769116,606882,1128072902,1482250752,-1974054717,-1073068540,1149958517,1008733438,1008235632,1008432225,1310750061,217990282,1953512480,1952529414,-2146374903,71478798,243271147,-972995923,1577123396,1464910680,-1354855594,168069698,-401509184,544538711,1132136134,80109057,971726592,312926,133637727,762642433,1117914823,636157954,76174936,460636170,1946168040,22800395,1179058803,-353679801,-968709982,-1991835644,1581425726,11098207,1342796802,95485876,1492773864,-1924049981,-1186762210,121241609,-498924428,1532576249,-1974316861,1958742532,18343989,2088970866,225720833,268957478,-2145553408,1962934652,1008733207,1007776353,739080058,-1261401504,-402214657,116128160,1117914823,1482293257,552119491,-401181696,343212113,1118701302,-152144864,1094888966,-347207308,32241926,-121417992,1011962819,1009611789,1009349632,639988746,33717632,-617406862,56461862,637846403,1946171776,650720013,641927562,74711354,222099682,1405311833,-1475951023,645931074,1021264558,1010201632,1009939465,1009873964,-2146667232,125116476,977674416,639560640,16940416,-919398542]},{"sector":14,"data":[55413286,192203019,1124074427,1946237478,1022943751,-1017423584,-163403614,21147142,243271029,975192750,-1913984064,994228014,1008301277,-116230865,-12088752,1929076456,-402355707,-346490025,183236621,91565884,1118703232,516159552,1048793942,1962951339,1360941093,106256210,-561056205,-849149768,198937633,1599932379,1478449498,914957684,512311977,915096235,512639657,1015235243,974156800,973632004,58130756,1174793209,-118756538,-1021354405,1140655815,652935168,1962934333,-49379045,-80311997,-388330685,1048636828,1962934526,939980324,108298306,5564665,1049448939,915096577,-768392197,1140657803,1039532520,-998899713,-1807843080,863240514,1116946048,-2144570368,21140030,-1202707084,161677347,84330244,-973078524,264198,67569350,-381425409,-33110440,113639680,-1023344387,-1307950653,-1342173440,1142969165,1444959055,1769173605,891317871,540028974,1126777640,1920561263,1952999273,943272224,959524145,1293955385,1869767529,1952870259,1919894304,1766596720,1936614755,1293968485,1919251553,543973737,1917853741,1919250543,1864399220,1766662246,1936683619,544499311,543976513,1751607666,1914729332,1919251301,543450486,11665528,531628486,522067740,505356062,203365919,-738151936,-20480,11665410,-5242840,0,255,2086492928,1026244156,1253947,8388786,4422832,102768640,989921348,1142161921,922960925,1631868228,33554500]},{"sector":15,"data":[1143406594,16794662,788529666,4466244,16711680,0,16711680,0,33554688,642018560,1093601092,4534016,788548911,1395589200,5648128,22319,1962934288,21243460,17455,2097152000,21243460,50347823,255,117440512,-1308590849,-1342170880,-1,-1,12783311,22806528,512,1112671337,-1064507253,234885125,303903,787971,244039822,-108331002,-34108593,-1202674445,-883949516,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704,78708751,-789068149,-628299565,74698795,-768878452,-268181293,-947135858,-388771593,-802438516,-1064565645,-522989013,-1030817789,1322289836,1187548077,-31145334,91598908,-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094,-1031072797,-1064385789,-2080863315,292880383,-501415642,16417267,-2129234704,-351272766,1086360796,-276578162,486614544,-339702200,-1950118942,-1962932162,50334262,33948144,1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602,482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,357488,460790529,765664199,11724,0,0,0,0,0,0,0,71763702,-1207274112,243269642,-351271865,1292291,-1559814650,113705993,1029,67569350,134661887,1827143684,-2115500286,1355020548]},{"sector":16,"data":[]},{"sector":17,"data":[873449,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,757926413,1919896864,757932133,1852394496,1970151525,1919246957,8250,50331648,0,0,0,161024,66304,82176,0,0,369442048,87887732,-2146798517,460605692,1596915502,-13722622,771907358,40181385,1728482350,-1157165566,1020199523,-2028964592,-2143321894,-663364985,911611,181387315,248346048,-1442662393,1364414671,1431787090,788268574,16979593,85888046,236916225,738653703,1601504258,-1106944536,243990823,-922025432,-890764428,674663170]}],[{"sector":1,"data":[663012866,113708289,19333400,1912701928,406752040,672041729,-485183486,1957622276,54445080,19381761,36179595,227026503,-1331367097,1340713485,739147777,1053033474,-953810685,218104133,-1006551575,1191248702,8436039,738653769,58001410,-1962873111,-1409213898,863289354,678695996,359998524,1958742700,1947483174,1948924955,1915829325,1983462404,-1779914123,-1395072509,192200714,-143322052,18495113,-2147427351,-217961434,18364043,36179595,1017912803,1979441172,739147798,914949122,243859736,1460011560,-840431858,-385392896,-1957298004,-1962862538,184690718,1260352731,1948269740,1946762486,188960498,1259304155,1947483308,770222601,1592844803,-379677205,-1957232791,-1962862538,738338846,199264816,1273722075,1947483308,1948269797,1946762482,1959591662,1960512276,1017924565,1021342752,1021080585,-339250156,189678572,1270838491,1948269740,1946762425,1947483317,-706172239,-337059326,406227878,673090305,1960512258,1017924376,-1442417644,-503137304,406227440,673089793,1977289474,740720645,229702402,-1949332566,721486654,65635279,21858342,1599938311,1532582494,915129176,820511000,-1960713472,1359026230,1493189352,-117238158,403571015,672016641,440305922,739147777,-1007088638,1631372280,2050754162,1596195447,-1396100157,326372668,259268668,192153916,125058364,57939004,1323887425,-706171709,1239452415,121539366,1044063745,762511625,326479447,1364594147]},{"sector":2,"data":[-4527956,1509548462,637826398,1593851264,642848116,17370763,-1070411989,-1359827214,-339441063,63175116,915129329,-167050987,909848180,611582223,-486465048,855082768,-2018577728,990672119,1946226486,221678351,1004530433,1946226486,17819651,18167433,915144131,-167050987,401086580,-401640960,175243282,-1073085302,-398002827,914948333,-1006894827,17905211,990672121,1963003190,322341636,-1007137279,-1949748394,184620342,992113910,1946226486,861099804,11331803,179046883,-1442155328,-1946688957,-352252618,1540066284,1472421471,-1958653610,989925182,436277566,18063835,-1053046997,-1007234096,-1861520383,-1527529173,17645195,-1527527285,17907259,-2133602059,91489275,1929247616,-1070442722,18026123,-1359818965,1049300084,243990797,-819265261,1049210610,-966852335,-1996423355,-1996419266,1493243198,-1950130338,-402582218,-620036058,451091316,-1370928212,1596257396,192037180,125262396,620709170,216233055,915129089,-672464627,17763979,108252715,18026123,1002688043,1963004726,221678340,263504641,-997584691,480502834,507414529,-855395327,588155152,521570305,62178049,18759306,378015949,914882847,378011936,113639713,-1023409886,19021440,-1273990144,507415043,705744129,-2013191626,-1274994634,507415042,540445185,555125249,521570305,-1022309119,281870772,1946762435,112914,175317052,108270652,41162044,-1178353154,773981960,-852885217,1371794738]},{"sector":3,"data":[1509920744,838934944,1942039524,537853450,470156033,-1560907007,-1880620767,1364640767,1375714024,645138748,460529724,393481532,326371900,259265596,192156988,1588643978,-1979660568,-398457663,1498939583,548455262,-503269656,-1191973893,281873927,-2147435581,17905291,17774139,243993974,-836042477,-1962931480,-1962865354,721489678,1348461518,1954596854,2145878089,980729866,427088651,-768359541,37893879,225825291,1153324625,6285314,104589406,854082393,-389838080,984612921,-1325439000,355875616,-1342016255,-10819522,-620033813,317195124,179061504,-2147125824,65765583,1493124072,-1329356318,-12916723,904465072,855640831,922169042,-1073018903,-402426798,72941553,-14751440,-1392567320,-126500854,-1979534141,841076176,1947024612,522619442,985988609,1912675366,-1269738714,507415043,1494273281,985857627,1963006998,-1274170868,-1306407678,-855460854,-18599391,-2013191674,-1023336666,-956288536,141318,705087232,-2147483646,-66966490,-1900006626,388399320,-400589052,1048641032,1946157335,70838275,-402298648,-118816626,16987845,1174480831,852003500,2147058669,2142831478,243869184,232980773,1947024556,-119363069,621685030,-1021374975,135989773,216598022,168036667,154864730,1852901675,1950433859,1081440115,1010646591,1330795323,1263030343,1364281677,154929467,158927164,211355998,161287329,212863395,158927289,162728599,208145090,170855146,172034597]},{"sector":4,"data":[184486508,193727290,206768879,-1190613825,-1296367610,16547848,-1094776459,1751304,-234301253,65130926,1344798681,1476424936,-1946293272,-402578674,-1017578082,18169475,1358459904,-1593633816,363004177,1228691457,262211956,18195201,-369359128,1048773406,1946157610,705625875,708217602,-1467184638,-387108351,17628553,708217795,674642690,990540290,1946232118,671547155,662997506,-41228287,27821192,36308735,-4265789,-1950090379,989997622,1946298422,-3545083,-389811733,-76152893,113091,739147857,-504888830,1049320195,506004010,108134952,36191803,1049166966,831324712,19215931,-2071327629,-2054684377,1195770151,1049226987,-397344475,-991363940,61532163,-1950274728,66972104,36322947,-400985088,915144528,994968104,1963076150,674662816,-1467184638,64547073,708247491,-9312254,-393352359,915080052,914948650,914948389,-1142357464,-15013885,36320907,1249179147,19367050,1946387176,708217836,1962281730,-2071310791,1894252839,-399543293,-370409740,36320907,19215931,-2071322508,1491599655,-402295805,-387186953,1962865384,708217613,662997506,54650881,-389812620,-58719415,-1960676352,989997622,1946232118,909854232,292815141,19366968,-396954763,996081343,1996630582,518570997,16547843,915142516,909836842,-311164635,624311110,954627073,1963009924,708193267,-372339966,447807186,-1593705751,295895309,17801985,18155207,-1195180032]},{"sector":5,"data":[45827084,58702080,-855493958,-2146995679,16922686,-1205987980,-661782464,520127648,41271306,-466478928,-16629085,-402505202,28311848,-369350936,915144185,-1957297899,989926710,1963004214,255232784,355895553,909860353,292815125,-100276138,-1962858561,-402511330,141884105,355875678,-1009814271,708247390,14870530,1476461032,36310667,132368427,-36247471,-1007033767,18169475,-1020431104,36568705,-1974585994,-1979637746,1359028526,-402652743,548469589,-1174704152,1256718337,243816955,780665120,267059489,-402614296,1371470540,-63444990,-402510402,-327155183,1022916095,1012823067,1008366605,1018262536,1021866544,-2115733703,1929523966,1174702302,-335861784,-1093760042,-836042195,904118323,132720375,749525131,65286704,-1947082045,17932760,-1962863197,32080843,-397339274,-1587939068,104530197,74711311,65794274,855190248,922702016,1810366751,103438586,-466484961,-1259812725,456939521,-1581045131,161677575,1088996097,-36706051,36447872,-65476099,19216127,-386060568,110099901,645923109,-1006829012,-402577473,243923222,243860008,113705253,554,19523665,36308623,-121247549,-335561752,675185627,108265474,-385896472,-856950660,36451968,18325505,36439602,-1957625432,1946231566,49119239,-315489673,1509558760,-1900006626,388399320,-164724988,16919558,243271028,528483351,739147971,116785666,1963000364,708217706,2147386114,915106419]},{"sector":6,"data":[-2071461334,367526183,708217850,-1467709950,-1467733503,914966017,909836842,242614824,36177663,19215931,117376118,-1073086171,-397363596,-1957103268,989997622,1946298422,-2071310312,-706215641,1489537785,27821058,27823240,1975593542,-930375454,-1962892567,-2097010634,57835518,-1946555159,-2097076938,91521022,624331078,708197121,1309373442,19369098,19434632,-2071400469,117375271,-1981283800,-1467709191,705101569,-118298622,-385869080,12187910,708217600,674642690,-1977060606,1174513796,-339213416,708217840,674642690,-1978371326,-402577532,-2071398064,-347733592,1948269804,-1022804990,-2135414579,-1271935722,169987339,-1259244352,-1272853240,1975519999,-855067642,-1023364063,-124589999,16352089,548407166,-486992920,-123934215,1378811904,1397639493,1280065876,1430400768,1514754886,1211039813,1330926409,788552018,1294925896,1330791233,1294925907,4140800,1397639471,5526085,1163284271,1381258066,4541257,521011712,817104654,87892429,-1173982208,-991356959,8502785,-1090283032,-1628959171,-1082887165,-1763176896,-1084460029,-1897394616,-1084460029,-2031612398,-1086032893,2129137190,-1083345917,1994919471,-1083870205,1860701746,-1083804669,1726484026,-1084328957,1592266269,-396397309,1027343182,1776878452,54781953,-1996267800,772690974,263196288,781839106,263196288,781314817,263196288,780790560,263196288,-1149113536,126489349,1958742595,-796241142,567083700,-1326453925]},{"sector":7,"data":[19851520,-1341226962,1609107471,243281663,-384823376,-164692138,17805318,12062069,1026542920,57952256,1442875113,1024349345,57868545,-1191116360,-377356289,-1053094384,-1047854474,738627152,-850807808,235976737,-1560213597,195232009,17670913,-1560211037,56295695,18064323,1940113548,41394946,-1593672285,2074280199,18063618,17237547,-1207795805,-880016763,235931278,109520634,-2027552580,-1560232418,512295519,-1157954975,1458049753,243281410,1577324464,367724302,-1442693888,1964151738,-1341721078,91488783,-351092294,116797032,1948258224,113649158,788463895,263194358,637957184,18286278,35973120,-521601397,-401087500,1027342874,317208693,-388396286,1239941287,393067008,-164746382,135245830,1948190238,-390057464,-890702005,116797175,1947209648,-390057464,-1159200227,11542519,-340129557,30140434,116785584,1963200432,-850611196,320244513,281182977,1398220749,1911031178,1191545076,1542813003,1464948319,10086483,1582915419,-1014284829,33931523,378217984,723910923,721488150,1342994114,1476435432,19276402,1442908934,-1946711215,1049306827,-1527578359,1504362546,849671006,-1993954624,-134149826,1448543939,-24443106,1947024556,1965308992,222080057,607926132,708578420,826017908,960236402,-970586249,-347659259,-202446819,1111260340,1018434164,208948284,1195130548,347342452,-1066052548,-341130102,1590660027,-836040865,-1946711101,-202774325,643242354]},{"sector":8,"data":[17370763,-1070411989,-1359827214,643823499,-1993956109,-1023342274,509040209,1049304838,1043005715,-131399411,-8291214,1987182850,17763979,17894971,237730163,-114622195,915106166,-148176621,17905211,-812969354,1095761547,-222285232,1333090478,17907337,17774219,17761793,17776267,237751947,100729101,1330512141,-56298499,989926305,1963004166,221678354,288786689,252066561,-1996196607,-1593766090,104530191,41222417,363053107,1595930625,-1950131874,-1996419786,16847158,-1593766650,104530189,-1133117167,18038411,914880395,243990799,-836042479,1313855991,1201992701,1049230406,915079441,909836557,-1804205807,-1957691765,721489678,-222285105,289311150,-1266554111,-1172189943,162797560,1187193293,1946762412,1948269819,1455640311,4030502,-391378572,1957622432,1489198835,-1394920509,171716652,-880078989,-620504317,-620504829,-338164840,851660522,121015232,154548993,-386698239,1035007413,-386610200,909836299,-495714039,-336232216,-1073042198,1656019060,427064380,1044146100,1823740788,225721404,339506356,607913844,-1968436107,615534816,1492423656,-1914125174,131001332,1763733057,1836016494,1769234800,543517794,1263750980,1763735909,1818304627,1684104562,1852383353,1818326131,778331500,1631782692,1953459822,1634231072,543516526,1397118274,776297033,1397703716,544826699,1953721961,1701604449,1227107940,1818326638,1830839401,1869767521,1717920800,1953066601]},{"sector":9,"data":[778989417,1768178980,1663071092,1634561391,1814062190,1936027241,1701978156,1819042147,1397563507,1397703725,1836016416,1684955501,1629498483,1663067246,1952540018,1830843237,1869767521,168636019,1329859085,1497713491,1378835232,1397639493,1280065876,794501213,1397118274,1027955273,1702521203,794501213,1380139341,542987087,1229467483,1380930643,168648025,794501152,1163087433,2082493522,1448029984,1414746693,1162561874,1834688605,1869767521,1701667182,1702124349,1566405752,168626701,1378820128,1397639493,1280065876,538976288,1953721929,1936485473,1847615776,1663072101,544829551,1142974063,1701540719,168636025,1110384672,1230194261,1933395290,543521385,1937007955,2053731104,1718558821,1836016416,1684955501,1936287776,2037542772,1718968864,779248998,538970637,1128353071,542330706,538976288,1766072352,1634496627,1629516665,1142975596,1701540719,1634541689,1936683619,537529646,1229467424,1380930643,538976345,1142956064,1819308905,544438625,543976545,1835888483,1935961697,1869902624,543450482,1830841961,1919905125,168636025,1227825184,1380275022,538976340,538976288,1667592275,1701406313,1752440947,1847620705,1948284773,544503909,544567161,1701869940,544434464,1702063721,1684370546,544106784,543452271,1954047348,537529646,1448029984,1414746693,1162561874,1394614304,1768121712,1936025958,1634235424,1701716084,1702109303,1864397944,2003985782,1702127986,1819222131]},{"sector":10,"data":[1702109284,221148280,1830821898,1869767521,1701667182,538976288,1701860128,1768319331,1629516645,1835101728,1868963941,543236210,1919115629,1870209135,1919098997,1702125925,537529646,2019914784,538976372,538976288,1394614304,1768121712,1936025958,1836016416,1684955501,1870209139,1635197045,1948284014,1701978223,1685221219,218762542,542135562,543452769,1314344772,1381122336,542332751,1633903986,1663069292,1634561391,997418094,1129530656,1701602080,544436833,1835888483,543452769,1701734764,927342651,1936286752,2036427888,1661603187,1634561391,1746953326,1869902697,540768626,726944833,1663055686,1918985580,1868767347,1851878765,1768431716,1919906931,1176517497,1702043704,1751347809,1663071077,1634561391,168649838,1953720680,997814895,540624416,1701602675,544437347,1868767329,1851878765,2036473956,1836412448,997352802,1414283552,808535595,1701602080,544436833,1919115629,1701060719,1768843622,1852795252,168636019,1750338061,1868963941,2003790956,543649385,543519329,1701670771,1701868320,1818323299,1685021472,1763734373,1866735726,2036689779,1667329312,1679847282,1852401253,1869182057,221934446,542385162,538976288,1835888451,543452769,1634755955,1869898098,538979954,1869376577,1830843255,1769237621,543517808,1835888483,1935961697,544106784,1634541665,779055715,824445453,540615725,1952530976,1881172067,1835102817,1919251557,538979955,1769304389,1701601654]},{"sector":11,"data":[1948284014,824516719,540615981,1646292585,1751348321,1869770784,1835102823,168636019,538978852,1394614304,1868721529,1701978220,1667329136,1646290021,1986338937,1954116197,1735289192,1819239968,1769434988,1830840174,1869767521,1835101728,1852776549,1836016416,1684955501,1852402720,168636005,1850279680,1717990771,1852138345,1701650548,2037542765,544175136,1919906931,1634541669,779055715,1702057248,1701344288,1397703712,542721355,1835888483,543452769,1752459639,1701344288,1430400800,1514754886,1930038597,1668573559,1869881448,1668180256,1935762802,1986076773,1634494817,543517794,1869440365,607025522,1850279680,1920102243,544498533,542330692,1936876918,611217257,-349959667,-351081706,-351606002,-352130298,-352654594,-353178890,-353703186,-354227482,-354751778,-355276074,-355800370,-356324666,-356848962,-357373258,-357897554,-358421850,-358946146,-359470442,-359994738,-331158458,-331682754,-332207050,-332731346,-333255642,-333779938,-328930282,1933013677,-1953174280,35895,0,0,0,0,0,0,0,990037123,-864557498,1861627568,-1965520124,-467007930,-150712135,-1963947039,-1738690176,1159587920,167953539,-951749440,58950,-2132386165,542687935,-1014299020,-62486208,-2082060545,1913185918,-59310105,1347994296,705054346,72399332,-930356745,1861627568,-2117598460,1365092545,-2091111448,2011891396,705054346,72399332]},{"sector":12,"data":[131106,0,1703936,258019100,269487880,314970377,306581953,146936573,319099652,319361798,320541458,321458978,208407417,233573588,272564600,278335595,84083008,270094336,0,101169152,20971520,1342178563,4139,-1207959552,1543,84083008,271732736,0,101169152,71303168,1342177539,4121,-1207959552,1543,16974912,271273984,0,101169152,71303168,1342177539,4146,-1207959552,1543,-1777336000,270094368,16780808,185401344,20971520,1344312850,268963870,512,3600,-1777204928,270684192,16780808,185401344,20971520,1344312848,134746155,0,1544,-1777204928,272388128,2056,101187584,71303168,1344311824,235409433,256,2829,-1844313024,270422048,33558536,235929600,71303168,1344311826,235409442,256,2829,-1844444096,271274016,2056,101187584,71303168,1344311826,134746172,0,1544,2056,16780808,33558536,0,0,0,-2081649835,509036268,4098862,253159424,-1946204536,1190595166,1962934534,57096197,1187382388,495517951,773480331,-1995552885,1166606917,1200303620,138774800,-1976638414,1183385927,1200238332,-12174846,-147975819,131911,2105738868,58001422,771919593,16992247,-163613696,1950353989,-1900006599,646588096,-864025584,2139106864,208930562,41910318,-1341819889]},{"sector":13,"data":[-270237695,270940198,638809092,68167304,17530240,-1286403980,-854412237,-2094114032,93246,1173780597,1920236554,440403,263459021,1012601037,857371910,650153664,771820705,637627555,771821217,-167678301,1965034053,1095726,17516022,1173751668,24461322,281891656,-1900006565,211887808,1889742337,245442049,1923296769,172357121,-1206160288,-850198511,-1070376176,-1591295858,-1557266164,-1591344780,-1557266162,1187381622,1173815227,376717322,-2144468304,1965753983,-2000093694,-1269580986,-852446446,844323600,1200238308,1527827714,-4489600,1465065588,857407672,-1928915237,281918590,456940383,1183452277,1946369254,-1153025531,-1269578379,1527827727,38222382,1946157240,24701187,-1976647538,-922876345,75801126,55047982,1165295618,-49658378,-2144453516,1947797119,1048784437,1946157420,286308386,-1210371501,16824584,378220117,-359988884,1846971182,868388353,1561382354,1393290075,839979704,281892315,216619869,771928065,318930816,-2144438668,1996882559,172357144,-949390334,-268430779,1846560199,239454202,-454492152,2139106816,309664006,159350830,839283726,-350637376,-352144573,-2144432104,1964902015,-351883259,-2144432066,1965164159,-1294257648,287488034,1561382229,669713072,2139106960,108342022,733134898,-2144465173,859571839,-385649472,1018298530,599316618,281892113,-1979469731,288405752,-1945055915,1837699653,1317756176,239962620,1963522435,1048784408]},{"sector":14,"data":[1946157420,1822502496,272992513,24027438,-351124087,251233104,-1959910283,-1996394466,-1590816675,1166606706,-943682030,5189,276791334,-953256834,70725,-108845077,774010128,24387211,772824457,-1996392799,-1064431035,1328583,2139104768,91520528,18105799,173968128,773480331,16992247,-402426880,-997520281,-443850977,445021,-2081649835,1317603052,-9008900,-2080749940,57936121,855687913,549648064,-1024054156,-1961724912,1284047692,-1978889724,1284047468,-352024318,38570803,-1979626359,1283982412,105679619,-1996206967,-1024063932,-1978043376,1283982924,55347975,-1979364215,40667660,-1996272503,38045700,1946731254,-804484314,166580457,38570764,-305075760,-1962783735,-372243380,1275719120,105679620,-305075760,-167359479,410271938,751840464,1825582288,23908353,-805147440,1825571436,74240003,1946272502,46331403,1283460980,233539591,1946338038,105170440,121947903,79886079,1153827956,-18219261,251233026,149488500,870484482,549779154,132711285,281343489,-8162700,-1976208383,1149765700,121932297,-1979169656,1149765188,88377863,-1979300728,1149764676,38046213,-1979431800,1149763908,39094275,-2013178744,23062804,-2012658550,1149897284,155486216,-2012789622,1149896772,121931782,-2012920694,1149896260,88377347,-2013117302,1149764676,39094275,-2013178744,19392788,1946288003,21269060,1149895816,21268482,-2012986230,1149895236,54822917]},{"sector":15,"data":[-2012855158,1149895748,88377351,-2012724086,1149896260,121931786,-2012461942,1418201156,173312009,-2012523384,-555152300,38046208,1149895816,21268483,-2012920694,1149895236,54822918,-2012789622,1149895748,88377352,-2012658550,1149896260,121931787,-2012396406,1418201156,173312009,-2012523384,1418202196,9955597,1964033270,9431299,1946288003,205818441,-1978841976,1149766212,138709516,-1978973048,1149765444,105155082,-1979104120,1149764932,71600648,-1979235192,1149764164,21268998,-1979366264,71600132,-2013047672,1418199636,-350975999,1149931586,205817867,-2012658550,1149897540,172263432,-2012789622,1149897028,138708998,-2012920694,1149896516,105154563,-2013117302,1149896004,71600129,-2013047672,1418199636,-166426623,225708228,76207755,67692752,-1946688954,1086650098,45161588,1825713362,40686081,-771527470,1825571948,107794437,-804819760,-990507932,-167021567,259261124,-2012394368,-990507541,-972524542,-956363452,-151057340,74712260,-16366394,-286665590,284787456,-420936844,871008768,549844690,1273692789,1947256310,105155354,-1979235191,1149764932,38046470,-2012986231,1418264916,-1957041406,76087876,-1996143477,1149960772,71600391,-2012593014,1149961796,121932043,-2012330870,1418266948,206866698,-166833015,678695109,-1995619189,1149963844,205818122,-1996012405,1149962820,138709253,-1996340085,76219972,-1996209015,39094548,1946732022,-1176139244,-695533552]},{"sector":16,"data":[-389020534,-498727928,-1963815945,1086715628,751836532,-805212976,1825571436,74240003,-804625200,1691356004,224710668,-166828848,192152005,1946338806,256671759,-166859896,141820613,-15842106,-15973178,1946469878,121947652,-153777409,611614914,-251697536,-2131081590,1946222462,-8486901,-804162288,-96072984,-1946399093,1174669526,-225707038,-1017256565,-1979038326,-1073018011,820708212,1085298064,-88813430,281926451,57989899,-1971271040,12079298,1477496090,-972555392,1946225477,189122052,172328964,1561027978,-1957363517,887915500,503732054,-1052868562,57933832,771922153,146867910,1049308673,92995584,-1948236151,1183384133,172329694,-1965209976,1183321157,239438812,-1948629367,1183387717,306547672,-1948891511,1183388741,-1960997940,-733574905,-2013116534,1200280390,-817461244,-1995290741,1190645830,1962934996,37087491,-1962868806,1300956741,209008654,1715081076,973763854,91360326,1988808842,-11106292,-1946257784,1603148407,785527568,-2147330934,41355002,1988684241,871533565,239504064,1354359287,870446848,206473929,-125058813,1317718323,-1948873974,-2001926026,1191116134,-1392382979,47152768,-58715531,-2146601872,141821948,-469098320,1890845300,1375495816,-796174818,-1946517879,-466429362,1988878838,-698446120,-796069885,2123219086,-1952123926,-661726642,-2081786227,1946210430,-733546695,846462992,1465893515,651183758,184440203,1008956626,-167414496,443844546]},{"sector":17,"data":[1355579019,-700019117,-1327997301,-630786381,-1910056957,-396862713,1317796454,-813793062,-2146339582,1970338942,-164211189,-85834220,-632386722,989742730,427163462,1317754449,854165214,-1947139091,-852828594,351726898,1593565766,-813793191,-1979157502,1983577206,-385649155,-2007826256,1190591862,1786020061,-1064382324,-1159307635,79233040,-839732224,-60388848,79283338,1357697536,263505034,38767158,920805005,-1992947831,78709327,281932724,-1902116680,2123057344,92808954,-1929016794,-969480610,844627975,-2133526816,-2009722908,414712167,1200109299,-1190717949,280625156,-351220480,-826634180,251770883,243951,-58815761,78765962,-1070403630,-1192237174,-1064394752,-92370104,637896742,-1070398070,854035183,-2133526813,28315620,402897135,1317755887,-1610565414,2123088014,5224698,-487062620,-92369925,-28901817,1230577502,1592329076,-813793026,-2144701438,1946221950,-582552028,-1944882048,-1916760368,280684126,-1175211008,281870340,-826668053,243715,112879,113651439,520095937,-1956749561,181034469,-326413056,1443425411,-1959911849,-1962934210,239962909,1183385483,71797500,-1963309432,1183320645,1353732603,-661921290,-150581622,139365089,-259276541,1317716875,-1964902642,-1056763826,-1963422887,-503969210,-1963047287,1312427598,1998287366,273582600,1913146938,1354319889,-1964902656,55118926,66585537,2122382832,628359930,-2131015946,-13494156,280626611,-839863296]}]],[[{"sector":1,"data":[-111245296,95617463,281932212,-826669077,17152003,-1610565393,-1064380274,-1946268021,-1948283962,-1964166447,-1527575474,-74724725,1354428555,1929263872,64681730,-486931470,-92372770,-165972990,1954609990,-1979337970,280689022,-839797760,-1173886192,95945678,536669952,-443851169,838237,1458342741,2123046487,-1964166646,45547853,24158510,1914080046,251232257,-939648140,23896366,1846971182,284786689,-405795979,24420654,1981188910,1958742785,-336557308,288405515,-1961833131,-1030988299,-1979626102,-503969722,-628166653,-1064382324,-217678197,1583292324,445021,-2081649835,1465257708,512634398,-1959919614,-1962934210,71797277,-1962981752,1183320645,138840830,-150575370,2139098725,141889540,242409681,175300817,241106768,-905197429,-1070397579,-957755253,-195655424,-1947056503,1353715277,1317724662,-1964902646,-1056764850,-1961996917,-1610565392,1183766670,-226587660,-167360886,-129594911,33244870,50298496,1187399796,1190528251,276070654,78905138,-1275064134,-2012164624,132904542,-1207710022,-2131820539,1946353534,-28903903,-1978633088,-805373058,-239860557,-855633734,-1978930416,-855704730,-826669904,-1957236989,-561252274,-315436661,-217559414,-1949660252,1355187187,-27333406,-1149895858,50298496,1190534004,242516222,2122974387,1096438,281932212,-826669077,309251,-195654673,535971467,-443851169,838237,-2081649835,1465260780,512634398,-1959919614,-1962934210]},{"sector":2,"data":[71797277,-1962981752,1183320645,239963134,-162484143,240028385,1317724663,1505821456,1992685707,172395014,1183441398,-79247624,-8486911,-965512190,-167445690,1954610758,179003,-1275066182,-2012164624,-796068002,1586348174,-1190087954,-223084280,1586303181,17349094,-1070395187,-1981397367,1183377478,-314128662,-1175210753,281870600,50298496,1190537332,326402302,-17084790,16956361,-239802414,-855635782,-1173361904,1317667780,-1261830405,-1327181311,-1202196734,-1064394752,-1946661237,852593631,206473965,-896817933,-947651701,1609359952,1979404030,-8486737,-164858878,1954610758,-1979534561,146470782,-839797760,-1898935280,-295793216,146404276,1096193,132845773,-1207712582,535760642,-443851169,838237,871140181,142016448,1342600959,-228530162,313949,-1959897258,-402653122,-397346466,-1101332108,280559680,785527552,1963082810,478424597,-2077355916,175374716,259318794,107231790,-964490892,-538820078,-1946157126,-883007550,-1477853133,-326413056,1443032195,1049308759,333971456,-28931591,-2096728437,-529329922,-150990152,-2114941978,-1962917690,509020286,1423623,-1410088909,1418407519,-28931325,1946453038,1686384138,-2130414591,-142606134,1946165442,1951442951,1087013635,-1996261912,1418341909,1955212805,39160070,-1996073333,1183516757,1418342142,72714247,-2013207832,1435043173,1418407430,173377800,173312558,772560264,-2012523382,-4584107,240486911,205818670]},{"sector":3,"data":[-1995422327,-997516683,-443851169,313949,-889191960,512437790,1207304192,376701706,-661733325,73602699,-2147171709,537158926,-301701728,62392299,-855526640,1438850832,1465314443,-1962516853,440335,41338939,260688011,-1959915549,-1929379786,2139952756,-217637374,1566465957,1426064074,1465314443,-1962516853,440335,41338939,260688011,-1959915549,-1929379778,2005735037,-217637374,1566465957,1426064074,-899814261,-1308229628,175996953,-1207143422,-1064435648,-2078897626,1405287936,281874356,132287067,870593219,1965271250,-1472154602,1343255616,-854582600,1085954064,1960512000,-1022315518,-1959911741,-167772130,1946356295,-1900006633,1662421976,79856388,73737857,1705050079,132902404,839910328,521194971,-326412861,1049308759,-13500416,-1979156854,45353558,495653069,133111,-919387275,-1977171570,-2147186922,-2144992798,-33257690,2122522805,510918662,-150712949,132678,-315489676,470435318,2139098228,108342019,-2029092826,28573956,136712397,-352024810,72715091,33965815,839021568,39160310,1988806963,173443592,-1979296375,38243041,-242555146,-523124221,-2046404981,1426721877,-1172212724,1996423169,175570696,240210002,-16222465,1347553910,1223167569,-150280191,21555214,113925471,-326413056,-1959897258,-2147483586,1946158461,-156178368,1586183563,73218570,1317745523,1950394374,268941354,-544599859,1988886322,-484669176,3532848,-854583880,839325200]},{"sector":4,"data":[108956644,-1968454006,-1047876667,-485037141,-339725564,1954588690,-1158630152,281870360,-1995934069,1606716188,113925470,448287488,1511050512,112844678,1962871300,-758281726,853150435,-1957313537,777475820,16011,-1946799640,173968189,1912888634,-1872631037,-1979167093,1967171833,1954588724,872068139,185257435,639726811,37488523,91363959,1930034304,64666131,-1158564628,281870360,-1341931334,686550560,-351272776,105745185,1317783523,1371726598,-854587464,-388003312,-1201733765,881463312,-1979552630,281871436,-899850657,-1957363706,861361900,108432320,1929641603,309282,-259266825,23119489,772308619,361305227,39094830,-1962781304,1166542406,1606716163,80371038,-326413056,707165,-1070347317,-326412853,-899825613,-1957363708,1572877292,1426064074,-899814261,-1957363706,113925612,-326413056,182877,-1459584840,74776704,-8396159,201293605,4703184,0,0,15335441,289934779,38142595,4450,548,1630,141688832,294130063,188420469,580,878194987,41952580,1376736,268501012,68093198,983040,32440800,1007631360,1039089120,2039015,67044320,2082438144,2147450848,65011743,67075072,2145418271,998895,1006633440,1007616495,484916704,50462976,33619972,101123075,185207048,252579084,540030006,942940280,824192048,1868767286,7499628,540030006,892543096,824192048,1868767286,7499628]},{"sector":5,"data":[540030006,942940280,1830825008,1668247151,1836020328,875954277,544743472,741356851,1852796192,1919443823,6647151,1458342741,1586175575,621251338,37584898,855995520,14215616,-1979426934,1744175943,1039544843,41812318,1200281334,512634371,1185021954,-1899459584,106874072,784268171,1620224,2139989235,4636184,-1510797135,-1100316787,246480998,-1081235981,-2101477188,-217730816,-1044410972,8896000,-1527574607,-2147445058,510984954,323470886,1204233730,645922586,18106310,1783088934,-970588160,-1107224761,-165543746,-1430382731,49971200,-725744779,1204233728,637623820,454051783,-1899459584,-775975464,1489152,-1909545741,-2013265378,-2013248234,771769398,269963,12114699,1977125376,-839207927,-1193342448,512270336,144900145,-1547685120,-997523434,1566465823,1426065098,-326898549,109981200,-1591345150,-1073020920,1183394933,-230242320,1183383562,647410934,4458040,1622672245,-196703891,384845453,-16750000,-1962883425,-1557727162,-443875320,-1957313699,109981420,1183514626,1048585736,1963065413,1958748935,1030147,959270,313949,1458342741,109981271,-930349054,1988876430,914957830,-422510574,-422451503,267437697,1141306918,74776320,8439425,79298355,-1935281408,1608027856,46816606,-326413056,1443032195,-1909580201,-1962933730,512427590,1317732364,169249544,828160,659081,159367995,-902101892,-2020408449,438208970,404130048,-1950143744]},{"sector":6,"data":[734104536,-1036805694,-930364885,1840777,68586286,1959922432,382961463,-12153569,1343619178,-1610678166,-1073020718,1178076533,-385649409,1347421025,1745079912,1610548175,-18880478,13279231,773773963,138894,-1909567149,-402652666,1532562212,2144025429,31582467,1973897,2100873,-1589388917,-523173862,-523116335,-125050671,-523116335,413267971,-775386368,-773271064,-2131229720,915083233,-422510576,-592671954,-2134519025,-2135947295,-880023342,33984046,63945216,826179622,57933824,-1912598342,-2097149922,192282621,507413286,57999360,637605865,1973899,540445478,653185280,1851011,-385649664,-527826809,1964046979,-775933373,167932869,1926025412,745818390,-276958421,540410662,186181632,-947714808,-388043952,84413198,1237332551,-215280780,52875645,-2097143754,-940879673,134936040,37611781,-976109518,-1005976973,343067856,724071497,653229555,2110979,-2096822034,-521449273,1191512302,1950990386,2113088273,906176213,-947716064,-288625840,15271176,-2082436606,997527802,-976109518,-1005976973,376620240,732263497,653229555,2110979,134910440,1355252485,-2014781717,1325729802,1950990386,2113088396,906176209,-947716064,851962704,1942344128,-792458750,1226076868,-215242380,52883325,-301981642,-947714808,-287249584,844039432,-1837872704,-713166037,540410662,1355252480,-92025877,-301173744,-925891320,-136178830,-402557207,84412966,91408592]},{"sector":7,"data":[1760163298,980699393,-1946177465,-773205543,1961480681,284853015,65537397,-301864182,-498662136,-2134144261,376702945,-478148431,-758437369,284853216,-471333515,-301864183,686359816,504269057,538872064,446776064,-775386368,-773795360,-1948200480,-773795336,-2131229728,915083233,-422510576,266126977,4458230,-2130414081,771754694,-841798517,-1962927967,-773271096,65589736,132219128,-388857680,-1909535861,-1174404602,-2144992305,12606,280626036,136220160,-163072,-2094639499,7742,-92057995,-402295536,32180574,-2083419154,146671586,-772658432,-2115579418,-788160058,-773205527,1354449385,149356288,150668037,150668037,150668037,150668037,150668037,150668037,150668037,-486866171,-1872303138,505318182,915088896,-288292832,473858854,712310784,1964046979,150792197,-772931093,134378445,326387973,726714243,653295091,2110979,-679229232,-338040064,-92041176,-402295536,32180434,1942868462,1225066498,-947711116,2113088336,906176240,-1060110304,-352264317,-1909563943,-402652666,-1959917449,184550430,521696475,13541375,23724138,1745079912,1610548175,-16750046,520148639,-443851169,313949,-2081649835,1465254636,512634398,2126774274,306086662,1769275392,669439,800511,1074105126,637536931,-1996335733,-1946153962,1166747334,1380993028,-68556786,788223,-1960393074,1346896965,105220902,-401715128,251657171,-963772406,641072934,1208370571]},{"sector":8,"data":[-1058533808,202309627,650546688,-14273025,-401735051,110099375,110034956,-1964441590,512437761,-620036092,521549172,1795114637,1783633408,-761266432,1975520000,-12175355,1726546804,1750093825,-815266866,576716547,-87037946,-895484153,-1909580288,100663838,33984046,118941696,5290247,38112038,857574182,116320466,145814155,782418218,790530048,1166747136,1160455686,2663170,73239334,723960715,2401029,-2147039256,41222139,512283638,-1960443856,-410844547,-1895921913,-1174403066,1048576975,1946157105,1096195,607030101,772704768,-1595067904,-382009297,102893431,-2081882064,-1947653376,-1157617650,1448542215,581755018,-2081217596,91558138,-351852056,136769025,1355252485,1600055522,150831943,-846507146,-773205687,-1947610647,674139097,-2085857792,-2091448346,91558138,-351864344,136769025,-85833979,1465437067,-947652469,527715664,-427578281,284852999,-672660107,-301864186,1191512102,-880018718,1355252575,1608611149,3186782,2625163,-1979709509,-215765792,-92027870,-402295536,32179882,84420334,-498022525,-1909563928,-402652666,-1959917981,184550430,521696475,13541375,23724138,1745079912,1610548175,-16750046,520148639,-443851169,313949,-2081649835,1465254636,512634398,-1909587966,-16776698,-16774090,771754550,269963,1031068427,1183653654,369126143,-16750000,184603295,939881920,57999174,1342339049,63203408,-16527512,585638495]},{"sector":9,"data":[-895483911,-2093081088,771753598,138894,636170612,106838416,506997108,427032625,-1291843398,-839863294,975079440,-1979534592,-33550786,-351220284,63224330,646578864,-386990066,-1959918280,184550430,521696475,13541375,23724138,1745077352,1610548175,-1909580254,-1006632418,-1064563074,779470603,-1064384372,-1995422071,-255914938,243173648,-787986805,-773795360,284689888,-2096478583,67111982,667267,138856196,1354301441,827648,663179,-1175924173,571902212,705595392,705212416,3056321,3088008,105220902,38087462,637544611,637814155,512427307,-670892022,-402643805,-75496312,-167611137,807307475,173443840,-1995944309,637543950,637683083,1776819595,722372612,705595904,722348544,755927040,132218880,2887304,1049358987,1586364450,512437772,-620036092,-628353164,1778412063,63203328,-16527512,-1610669473,-1910636342,109981402,1448411138,780871255,-1977221084,838872078,378152685,-1977221073,838872606,116795135,1954545709,-466441209,-326448941,-740019540,-1966798136,2011905004,371336711,1491796016,-2144943582,12606,280627316,76605440,-809892629,-1910051325,637536262,726074632,150832107,-783474314,-772943379,-466440979,-989148973,-167056246,1676150133,-301864188,1191512102,786855245,132750,806783526,-466441216,-989148973,-2144943582,12606,280627316,70838272,-809892629,-1910051325,637536262,1598489864,1355252574,33984046]},{"sector":10,"data":[906176000,-14286810,1946167310,-13375229,109981277,-722993150,512437763,-620036092,1042221684,425603,485173620,1946574393,506996281,276037681,-1291843398,1049241090,-239861702,585830605,-1207712582,200216322,-15239973,1778437791,1744923136,-815266876,576716547,-1610678166,-1893334826,637536774,788111,-1956749537,214588901,-326413056,1443425411,-1959911849,184550430,371160283,-28930785,1343619178,-1610678166,-1073020718,1178076533,-385649410,1994916426,-1909580042,-973077986,-2147419834,268453182,1187382389,1187446777,1183514879,105265934,225907570,990922379,158468166,132711287,-12139006,512634369,1354301442,105286400,-2146935157,1946222462,172360456,207487816,-388877493,-225770908,1354322259,239504128,-2146410869,1946222462,172360456,207487816,-388877493,-91553212,-242560118,-91595943,1183575690,63998736,-131855274,-2146975101,-802424606,-355341615,1451879121,565756,-1064380274,16744064,-890698892,117946368,-930365141,376622394,-919403401,-712370453,705217152,281379025,-896866006,-846854421,-376779478,273582929,-2146677245,146081761,-846534358,-1291329152,1508102911,33048262,16350848,1187383156,-2014837512,-1957210622,1183386182,-109149958,-16354304,-806815626,-61437182,76240726,1929969024,-846838271,-846806829,-671693022,-163766234,84420311,527714887,1946286723,-749818613,-2092258624,-176881158,583062444,651425475,-738845408,1594165286]},{"sector":11,"data":[-95486114,-947713932,1355187024,1583329259,1962430206,-2137855230,1946220926,46262275,973128169,1998090957,-339135740,-2133489128,-785772350,-1048523386,-1966265848,-2046366742,-1966265651,-152055575,1317753303,132218896,-338493517,-129579431,-109150207,-972590080,-402327482,1465254346,-1995815285,2122381894,108265721,-386369793,1451950610,-1957210372,-41877692,1308717832,-925643386,-417149562,539416566,651687485,1246700808,-92068492,-1961855999,-749797564,629679816,-92059057,-1963952895,583586564,651425475,-738845408,1594165286,-95486114,-276625292,1357808464,1583327467,1962430206,-2138313982,1946220926,33417219,69110574,1960512256,6954759,14065663,-1956749537,214588901,-326413056,503901315,35556910,-62470400,1187381724,1048577273,1948385350,-62470382,1187381592,1048577785,1948975174,859237122,240144576,-1191955480,240123905,-956077592,65094,2147108551,-25755902,251426559,-16565272,1996487286,1827147516,-62455820,1979272958,-443867164,-145568931,-805086495,-511652982,-773074681,65786347,-754994221,79283179,775431680,1081344049,-1174392133,-223084528,-1591340851,-12779506,-1275021825,-1257999089,637580312,-1157476470,-1993998277,1334388231,-1175211006,281870340,-1174402885,-256638960,-2010771251,-1023392994,236882726,63879680,-1070406774,251705839,1979710339,1620227,-280959606,61923722,-301420305,309699,825112614,-1155959808,280625202,-839666688]},{"sector":12,"data":[638104336,4406922,-1275064134,-1022308879,855887546,-280956992,-1192295504,-1007681784,-239840432,-125171533,280629453,-1017619712,503730515,35556910,826179584,1081344000,-1174404421,-256638968,512233677,-661913542,851165326,1096192,-1275000647,-1156526606,146341947,-839732223,-1983892720,38242567,-972798072,-1258354873,17349107,132845773,-1207710022,535756805,-1017423609,1408011093,-1909580207,-2147483106,12606,2122982004,-1278214652,-1158564860,281870352,-33272182,-771639351,-1274891289,572145,451612877,-33266038,-1174097716,-1158741042,1317667780,-1261830652,-1327181311,1495265026,46292315,-1909580288,-2147483106,12606,45293684,3817098,-1275066182,-1945055759,-1145008424,-206307278,-1174337351,281870352,-826667285,309251,63224559,-284228936,49951,-16711681,-63901456,-65536,-858984208,58596,0,-65536,-1,-1141964801,-1141982226,-1437221906,-1437226411,579381845,579347080,8840,0,-859045888,-858993460,16764108,16711935,1724645631,1724684595,865704243,865717350,-1061106586,-1061093440,1098973120,336073762,-100908766,-1613764621,100892223,1613764620,-1623227968,-101455921,1623228156,101455920,33027,0,-65536,-1,-1141964801,-1141982226,-1437221906,-1437226411,579381845,579347080,8840,0,-859045888,-858993460,-13108,-65536,1724645376,1724684595,865704243,865717350]},{"sector":13,"data":[-2004300698,-2004287608,1098973064,336073762,-100908766,-1613764621,100892223,1613764620,-1623227968,-101455921,1623228156,101455920,33027,524288,8,0,0,1044266524,28,1044266558,134217790,1048526364,2076,478092330,42,572662300,28,572662334,134217790,574693908,2068,471604224,0,8323072,-1957363712,109981420,1183514626,178464264,105286400,828198,313949,787254101,132750,637945483,1560285347,1426064074,-1909527413,-1962933754,-1557789114,-899874794,-1957363710,181034476,-326413056,707165,810963524,-1862074366,295047574,-1862139904,618140482,1380188160,1978454,-1956773888,214588901,-326413056,503901315,35556910,-62470400,1187381724,1048577273,1948385350,-62470382,1187381592,1048577785,1948975174,859237122,240144576,-1191955480,240123905,-956077592,65094,2147108551,-25755902,251426559,-16565272,1996487286,1827147516,-62455820,1979272958,-443867164,-145568931,-805086495,-511652982,-773074681,65786347,-754994221,79283179,775431680,1081344049,-1174392133,-223084528,-1591340851,-12779506,-1275021825,-1257999089,637580312,-1157476470,-1993998277,1334388231,-1175211006,281870340,-1174402885,-256638960,-2010771251,-1023392994,236882726,63879680,-1070406774,251705839,1979710339,1620227,-280959606,61923722,-301420305,309699,825112614,-1155959808,280625202,-839666688]},{"sector":14,"data":[]},{"sector":15,"data":[776030021,793333321,776030038,222907977,707406346,707406378,707406378,707406378,1461723178,1229869633,538986318,707406378,707406378,707406378,707406378,707406378,1750338061,1713402729,543517801,544825709,1953394531,544106849,1701734764,1769414771,1830840436,543519343,1851877492,909455904,1751321101,1667330657,1936876916,1867718702,1696621933,1869900132,1998615410,543976553,1853190772,1702125923,544370464,1768714355,1946815860,1702061416,1852402720,539915109,2032166473,1629517167,1847616882,1931506799,543519349,1952802935,544367976,1920298873,1684343309,1919906921,1851876128,1851877408,543517796,1735290732,1852402720,539784037,1953069157,2003791392,1953068832,1953853288,1634929165,1735289206,1701344288,1818846752,168636005,1867385357,540697972,543516756,1953064037,1998615151,1751345512,544434464,1870032489,543450475,1948285282,168650088,1293950985,1329868115,775233619,1145380912,1663063113,1634561391,1663067246,1646292577,1937055845,168649829,1948262409,1684349039,1948284009,544434536,1701603686,705301806,707406378,707406378,707406378,539634218,1414483488,706748485,707406378,707406378,707406378,707406378,707406378,168634922,1919252037,1768453241,1965057902,1869881456,1701344288,1919510048,1814066291,544499301,1635086707,1646290290,1801675122,168653925,1918986339,1702126433,1936269426,1852793632,1701079411,543450482,1868767329,1852140909]},{"sector":16,"data":[168636020,707406378,707406378,707406378,707406378,707406378,707406378,707406378,707406378,707406378,707406378,707406378,220867114,1634949898,1953719670,1566930017,1668483597,1852138866,1701080941,1948269856,225736805,1936028170,1953852527,544108393,1869357117,1930038647,1953653108,1025536117,1818846752,1851878757,1919248225,1768294925,1634559340,1701273966,1685024114,540876901,1918986355,168649829,1953656691,544826731,1634607165,168650093,1937072496,540876901,1634953572,1684368482,2019887629,1667853424,1702065257,1952671084,544108393,1768169533,1818386803,168649829,1885435763,1937076077,540876901,1634953572,1684368482,1634994701,1768713075,1025537139,1936286752,1701601889,1930038628,1668573559,1735289192,1679834400,1650553705,224683372,1919965962,1634887535,1635021677,1919251570,1661603165,1701999221,1868788846,544370540,1666129981,225337701,1818846730,1851878757,1919248225,1696611616,1818386798,168649829,1835888483,543452769,1852121149,1701601889,1728712036,1886744434,220216608,168655626,1869770761,1835102823,220216608,226167050,1868761354,1851878765,540876900,1296912195,222580289,1769212170,543517812,1866670141,1851878765,1917853796,1953525103,1745422861,544238693,1951604797,1937011297,1701344288,760433952,542330692,1835888483,543452769,1836020336,1998615664,1701995880,1970239776,1851876128,1887007776,1851859045,1397563513,1397703725,1836016416]},{"sector":17,"data":[1684955501,1584225838,544167021,1970562418,1948282482,1397563503,1397703725,1701335840,1713400940,544042866,543516788,1835888483,543452769,1701734764,1584225850,539898221,1701869908,1769497888,846028404,1917853742,544437093,1163152965,1834888786,1699900766,1702125932,1867784292,1583573360,538976365,1867325474,1864394098,1866670190,1851878765,1917853796,1953525103,612246048,2117677617,1879640589,1702065505,1679834400,1650553705,224683372,226298122,1919944970,1634887535,540876909,2064189965,1661536781,1634561391,1025533038,1229210912,824516692,1946749453,1701606505,1159740704,1869900132,151653746,1886152040,1394621728,1953653108,1397563507,1397703725,1768178976,745697140,1948279072,544503909,1953064037,2032169583,1663071599,1965059681,1948280179,1919098991,1702125925,1684955424,1685024032,544826985,1954047348,1818846752,539915109,1702127169,1870209138,1751326837,1702063983,1768178976,745697140,1970239776,1851876128,1701868320,2036754787,1701344288,1818846752,1870209125,1635197045,1948284014,1870078063,1998613362,543716457,1629515369,1634296864,543649644,779644770,1834904926,1634493778,543450484,1768976212,544038499,539107360,1701998413,544108320,1953064005,572551791,858858622,168656432,1969319945,1025533299,1936286752,1701601889,151653732,1818323300,1025533807,151653664,151653755,1953068041,1025533292,1818838560,1869881445,1768178976,151653748,1718511881]}],[{"sector":1,"data":[540876911,1702129221,1752440946,1634607205,1864394093,1752440934,1768300645,1948280172,1684349039,539915369,1931505492,1953653108,760433952,542330692,1953064005,1998615151,1869116521,1864397941,1768842608,1629513582,1818846752,1881156709,1936942450,1414415648,221139525,1879640330,1886220146,540876916,1701603654,544175136,1953064037,151653695,1918988297,1952804193,1025536613,221324576,226298122,226298122,1919944970,1634887535,540876909,2064189965,1661536781,1634561391,1025533038,1094865184,541280595,168636709,1953068041,1025533292,760433952,542330692,1935753809,168649577,1818585097,540876912,1918989395,1293972340,1329868115,1112612947,1667855201,543236140,1735357040,1835884914,543649385,1769369189,1835954034,544501349,544567161,544104803,543519605,1663070068,1952540018,1830825061,1718183023,1914711161,539782773,543452769,1969382756,1919950951,1634887535,539915117,1702127169,1870209138,1751326837,1702063983,760433952,542330692,1935753809,539779945,544567161,544104803,1667592307,544826985,543516788,1701603686,1970239776,1851881248,1869881460,1919907616,1769414763,1763731572,543236206,1818323300,1646290799,1580103791,1382899309,1952541797,1411408997,1667854447,538996062,1293951520,543519343,1293971055,1329868115,1112612947,1667855201,612246048,2117153585,1879640589,1702065505,1679834400,1650553705,224683372,1768163594,1735355489,220216608,226167050]},{"sector":2,"data":[1946749194,1701606505,1293958432,1329868115,1112612947,1667855201,1818838560,151653733,1718511881,540876911,1702129221,1752440946,1634607205,1864394093,543236198,1935753809,1881170793,1919381362,539913569,1931505492,1953653108,1953068832,1953853288,1701867296,1735289198,1881170208,1919381362,539782497,1936028272,1313153139,777143636,151587341,1836020336,1025537136,1631736096,543385971,1701603654,151653695,1918988297,1952804193,1025536613,221324576,226298122,226298122,1919355146,544241007,168632381,168655625,1953068041,1025533292,1936278560,1951735915,1953066089,225666409,1701316874,1025536108,1936278560,2036427888,1919950963,1634887535,1953046637,544435557,544567161,544104803,1869572195,1948280179,1634541679,1701273966,1970239776,1768169586,779316083,1970231584,1851876128,1936482592,1751326831,1702063983,544175136,1852141679,1701344288,1767984416,1919361134,544241007,1629516399,1730181486,1886744434,1970239776,2036428064,1986095136,1684086885,778331492,1879640589,1919381362,1025535329,151653664,151653755,1836016393,1684955501,1679834400,1667986281,544829551,168636709,1769212169,543517812,1766072381,1126198131,226062447,1879640330,1702065505,1696611616,1818386798,168649829,1768163593,1735355489,220216608,2064189706,151587341,1819568500,540876901,1802725700,1886339872,151653753,1718511881,540876911,1702129221,1752440946,1869815909,1701016181,1684955424]},{"sector":3,"data":[1936024608,1634625908,1852795252,1769104416,779314550,151587341,1836020336,1025537136,1918980128,1952804193,544436837,539893806,151653678,1717920777,1953264993,1629502752,979509306,151587341,1634886000,1702126957,540876914,168636709,226298121,1745422602,544238693,1700012093,1919905901,1818849889,1701585017,1936029281,760433952,542330692,1818585171,1869881452,1886348064,1752440953,1868767333,1852142702,1864397684,543236198,1886350438,1679849840,543912809,1629515636,1752461166,1713402469,1886416748,1768169593,539913075,1702127169,1870209138,1751326837,1702063983,1936278560,1866670187,539785584,1768169569,1735355489,2020565536,1735750432,1953719655,1634738291,1701667186,1936876916,1684955424,1769435936,1701340020,1870209139,1633886325,1768235118,1919248500,1667457312,544501861,1914729071,1634496613,1580098915,1382899309,1952541797,1411408997,1667854447,538996062,1293951520,543519343,1142976111,543912809,2037411651,612246048,2117219121,2097744397,1879640589,1919381362,1025535329,151653664,151653755,1836016393,1684955501,1646279968,1969972065,824516720,151587341,1819568500,540876901,1801675074,1176531061,1684371561,1936278560,151653739,1969319945,1025533299,1634624800,1684368482,151587341,1818323300,1025533807,151653664,168655625,1769212169,543517812,1631723581,1886743395,2020165152,1142973541,225145705,1762199818,544171630,1850023997,544367988,543516788]},{"sector":4,"data":[1920298867,1629513059,1679844462,1769239397,1769234798,1679847023,1702259058,168636019,1919944969,1953525103,1344290080,1835102817,1919251557,539893875,221126702,1678313738,1969317477,1025537132,1547330336,539635242,790641249,151653747,1918988297,1952804193,1025536613,540091680,151587341,151653757,1818585097,540876912,1886217556,1918988911,544828521,1986094444,1293972325,1329868115,1750278227,543976549,1663070068,544829551,1701603686,1919295603,1864396143,1679844718,543912809,1629515636,1752461166,539914853,1702127169,1870209138,1751326837,1702063983,1667318304,544241003,1702390086,1766072420,539782003,1768169569,1735355489,2020565536,1735750432,1953719655,1634738291,1701667186,1936876916,1684955424,1769435936,1701340020,1870209139,1633886325,1768235118,1919248500,1667457312,544501861,1914729071,1634496613,1580098915,1382899309,1952541797,1411408997,1667854447,538996062,1293951520,543519343,1109421679,1969972065,1766203504,543450488,1802725700,612246048,2117284657,2097744397,1879640589,1919381362,1025535329,151653664,151653755,1836016393,1684955501,1914715424,1869902693,622880114,151653681,1953068041,1025533292,1936020000,1701998452,2020165152,1142973541,225145705,1879640330,1702065505,1696611616,1818386798,168649829,1768163593,1735355489,220216608,2064189706,151587341,1819568500,540876901,1953719634,543519343,1702390086,1766072420,168651635,1852377353]},{"sector":5,"data":[1025535846,1953383712,1948283493,1931502952,1668445551,1851859045,1701060708,1852404851,1869182049,1919164526,1936029289,151653678,1869770761,544501869,1632641085,1701667186,1936876916,773860896,168635936,1634732297,1701667186,544367988,824516669,151587341,151653757,1818585097,540876912,1886217556,1918988911,544828521,1986094444,1293972325,1329868115,1750278227,543976549,1914728308,1869902693,1713399154,1936026729,1634235424,1702305908,1646290290,1701536609,1886724196,1715544110,544367988,544567161,1869572195,1377854835,1869902693,1176528242,1684371561,1936278560,1629498475,1634296864,543649644,544763746,1734833523,1937011557,1918988320,1952804193,544436837,543452769,1953068915,1936025699,1970239776,1851876128,1953064224,544367976,1701012321,1864397936,1701978226,1667329136,1834888805,1699900766,1702125932,1867784292,1583573360,538976365,1867325474,1864394098,1699881070,1919906931,1766203493,543450488,1802725700,612246048,2117350193,2097744397,1879640589,1919381362,1025535329,151653664,151653755,1836016393,1684955501,1713388832,1634562671,824516724,225521440,1946749194,1701606505,1361067296,1801677173,1919895072,225730925,1879640330,1702065505,1696611616,1818386798,168649829,1768163593,1735355489,220216608,2064189706,151587341,1819568500,540876901,1667855697,1866866795,1952542066,151587341,1868983913,1159740704,1919251566,1701344288,1769104416,1948280182]},{"sector":6,"data":[1970348143,543908713,1836216166,221148257,1879640330,1886220146,540876916,1634885968,1702126957,773878642,773860896,151587341,1634100580,544500853,979443773,151587341,1634886000,1702126957,540876914,168636709,226298121,1745422602,544238693,1700012093,1919905901,1818849889,1701585017,1936029281,760433952,542330692,1818585171,1869881452,1701998624,1701994864,1679843616,543912809,1629515636,1885692771,1397563508,1397703725,1818846752,539915109,1702127169,1870209138,1751326837,1702063983,1769296160,1176529763,1634562671,1629498484,1634296864,543649644,544763746,1734833523,1937011557,1918988320,1952804193,544436837,543452769,1953068915,1936025699,1970239776,1851876128,1953064224,544367976,1701012321,1864397936,1701978226,1667329136,1834888805,1699900766,1702125932,1867784292,1583573360,538976365,1867325474,1864394098,1968250990,543908713,1836216134,572552289,858858622,168656438,1668483337,1852138866,1701080941,1948269856,225736805,1627982090,1635021932,540876898,1650552421,224683372,1627982090,1936028780,540876899,1650552421,224683372,1661536522,1701606004,1025532787,1634624800,1684368482,151587341,1986359920,544501349,1852121149,1701601889,151653732,151653757,1735357040,544039282,168632381,168655625,1868761353,1851878765,540876900,1836216166,622883937,151653681,1953068041,1025533292,1919895072,225730925,1879640330,1702065505,1696611616,1818386798]},{"sector":7,"data":[168649829,1768163593,1735355489,220216608,2064189706,151587341,1819568500,540876901,1836216134,168653921,1852377353,1025535846,1953383712,1948283493,1679844712,1702259058,544175136,1836216166,221148257,1879640330,1886220146,540876916,1634885968,1702126957,773878642,773860896,151587341,1634100580,544500853,979443773,151587341,1634886000,1702126957,540876914,168636709,226298121,1745422602,544238693,1700012093,1919905901,1818849889,1701585017,1936029281,760433952,542330692,1818585171,1869881452,1701998624,1701994864,1679843616,543912809,1629515636,1885692771,1397563508,1397703725,1818846752,539915109,1702127169,1870209138,1751326837,1702063983,1919895072,745824621,1679843616,1869373801,1868701799,1970479224,1936025447,1881174900,1835102817,1919251557,1851859059,2004033636,1751348329,2032169829,1663071599,1696624225,1701344361,1667309682,1953523043,544370464,1819305330,778396513,1834904926,1634493778,543450484,1768976212,544038499,539107360,1701998413,544108320,1836216134,572552289,858858622,168656437,168656137,1869770761,1835102823,220216608,226167050,1661536522,1634561391,1025533038,1684960544,1952803941,824516709,151587341,1819568500,540876901,1701080661,1702126956,151587341,1886152040,1377844512,1987011429,544436837,1701602660,543450484,1701603686,1834888819,1096248670,1313427026,1226848839,1870209126,1679848053,543912809,1713402729,543976565]},{"sector":8,"data":[1763734127,1870209126,1918967925,1937055845,543649385,1802723700,1635218208,1852403824,1965042791,1735289203,1768453152,1919950963,1634887535,1953046637,1830841701,1914730849,1701080677,1869815922,1679844717,1952803941,1713398885,1936026729,1919841568,1987011429,1650553445,1580098924,1382899309,1952541797,1344300133,1701015410,1701999972,538996062,1377837600,1869902693,1735289202,1818575904,1684370533,1818838560,572552037,892422526,168656437,1634732297,543519605,1852121149,1701601889,151653732,1634296841,543649644,168632381,226167049,1946749194,1701606505,1428176160,1818584174,224752741,1762199818,544171630,1096228925,1313427026,1411391815,544434536,1769235297,1830841967,1663072609,1702065505,1701344288,1919250464,1701732717,1814066286,544437103,1931503215,543518063,1701602660,543450484,1701603686,538979955,1936028240,826679411,1919903264,1919905056,1852383333,1836216166,1869182049,168636014,1919944969,1953525103,1344290080,1835102817,1919251557,539893875,221126702,1678313738,1969317477,1025537132,1229729568,168645715,1634732297,1701667186,544367988,824516669,151587341,151653757,1919120137,1835951461,543515759,1702109245,168653944,1818298633,1650553972,1696611616,1818386798,168649829,1818298633,1668506996,1696611616,1818386798,168649829,1952647433,1936026738,540876899,1650552421,224683372,1879640330,1702258034,1025537134,1634624800,1684368482,2097744397]},{"sector":9,"data":[2097744397,226298381,1819239178,1025536623,2064256288,1929972237,1667591269,1852795252,220216608,226167050,1769212170,543517812,1631723581,543385971,1702194242,1711868429,1734701679,1853190002,540876900,2064189965,151587341,1702060386,1646279968,1801675116,151587341,1751607656,1751607660,540876916,1734963810,1752659048,224752745,1929971978,1667591269,1852795252,1646279968,1751607666,1768454004,168650100,1818298633,544502373,1919033405,1952999273,224683378,1829308682,1651863141,1025536609,1634492960,168651619,1701644553,1025537390,1634492960,168651619,1768163593,1818386803,1025533029,1768453920,168650100,1667303689,1701602659,1869898098,540876914,1851881827,151587341,1818323300,1025533807,1634492960,168651619,1969359113,1852798068,1646279968,1801675116,151587341,1986358373,1919906913,1998601504,1702127976,151587341,1819568500,1918984805,1646279968,1801675116,151587341,1869767539,1633840236,540876914,1734963810,1752659048,224752745,1644759306,1701081711,1025536882,1634492960,168651619,1919158537,1650816617,1025538159,1634492960,168651619,1919158537,1768257129,544108387,1818370109,225141601,1661536522,1869836917,540876914,1667329122,151653739,151653757,1801675106,1970238055,1025533038,151653664,151653755,1935761929,540876901,1734963810,1752659048,224752745,1745422602,1818781545,1952999273,1646279968,224753004,1929971978,1667591269,1852795252,1646279968]},{"sector":10,"data":[1801675116,151587341,1919249505,540876916,1734963810,1752659048,224752745,1829308682,1651863141,1025536609,1768453920,168650100,1701644553,1025537390,1769103904,2004117607,1702127976,151587341,1634953572,1684368482,1646279968,1751607666,1768454004,168650100,1667303689,1701602659,1869898098,540876914,1734963810,1752659048,224752745,1678313738,1869373801,540876903,1734963810,1752659048,224752745,1644759306,1869902965,540876910,1953065079,151653733,1701602569,1869898102,540876914,1953065079,151653733,1953068041,1633838444,540876914,1953065079,151653733,1919120137,1651272815,1025536609,1634492960,168651619,1868695817,1919247474,540876915,1734963810,1752659048,224752745,1678313738,1702259058,544763746,1919033405,1952999273,1953065079,151653733,1769104393,1667851638,1025535599,1769103904,2004117607,1702127976,151587341,1936880995,1025536623,1769103904,1651796071,1801675116,2097744397,2097744397,1929972237,1667591269,1852795252,220216608,226167050,1769212170,543517812,1666129981,225337701,1868957962,1919378802,1684960623,220216608,226167050,1644759306,543519585,1818370109,225141601,1745422602,1818781545,1952999273,1646279968,1751607666,1768454004,168650100,1702037769,1952671084,544108393,1919033405,1952999273,1953065079,151653733,1701601545,1025537138,1769103904,2004117607,1702127976,151587341,1970169197,544366946,1818370109,225141601,1829308682,544566885]},{"sector":11,"data":[1818370109,225141601,1678313738,1650553705,543450476,1752637501,224752745,1627982090,1818583907,1952543333,1025536623,1769103904,2004117607,1702127976,151587341,1818323300,1025533807,1634492960,168651619,1969359113,1852798068,1646279968,1801675116,151587341,1986358373,1919906913,1998601504,1702127976,151587341,1819568500,1918984805,1646279968,1801675116,151587341,1869767539,1633840236,540876914,1734963810,1752659048,224752745,1644759306,1701081711,1025536882,1634492960,168651619,1919158537,1650816617,1025538159,1634492960,168651619,1919158537,1768257129,544108387,1818370109,225141601,1661536522,1869836917,540876914,1667329122,151653739,151653757,1801675106,1970238055,1025533038,151653664,151653755,1935761929,540876901,1734963810,1752659048,224752745,1745422602,1818781545,1952999273,1646279968,224753004,1929971978,1667591269,1852795252,1646279968,1801675116,151587341,1919249505,540876916,1953065079,151653733,1852140809,1918984821,1663057184,225337721,1829308682,544566885,2036539453,168652385,1768163593,1818386803,1025533029,1635345184,151653742,1667457289,1919249509,1919906913,1663057184,225337721,1678313738,1869373801,540876903,1851881827,151587341,1953789282,1025535599,1769103904,2004117607,1702127976,151587341,1986358373,1919906913,1998601504,1702127976,151587341,1819568500,1918984805,1998601504,1702127976,151587341,1869767539,1633840236,540876914]},{"sector":12,"data":[1667329122,151653739,1919902217,1936876900,1646279968,1801675116,151587341,1986622052,2020565605,1646279968,1751607666,1768454004,168650100,1919158537,1768257129,544108387,1919033405,1952999273,1953065079,151653733,1920295689,544370547,1919033405,1952999273,1851881827,2097744397,2097744397,1929972237,1667591269,1852795252,220216608,226167050,1769212170,543517812,1867325501,1751347054,1701670770,1126183469,1919904879,151653747,1701998438,1970238055,1025533038,151653664,151653755,1935761929,540876901,1667329122,151653739,1734961161,1734962280,1025537128,1768453920,168650100,1702037769,1952671084,544108393,1752637501,224752745,1627982090,1953654124,1646279968,1801675116,151587341,1970169197,544366946,1818370109,225141601,1829308682,544566885,1818370109,225141601,1678313738,1650553705,543450476,1752637501,224752745,1627982090,1818583907,1952543333,1025536623,1768453920,168650100,1768163593,1735355489,1646279968,1801675116,151587341,1953789282,1025535599,1768453920,168650100,1818560777,1952544357,1025536623,1634492960,168651619,1769212169,1650814068,1025536609,1768453920,168650100,1668483337,1819045746,544366946,1752637501,224752745,1644759306,1701081711,1025536882,1634492960,168651619,1919158537,1650816617,1025538159,1634492960,168651619,1919158537,1768257129,544108387,1818370109,225141601,226298122,1633814794,1919380323,1684960623,220216608,226167050]},{"sector":13,"data":[1644759306,543519585,1752637501,224752745,1745422602,1818781545,1952999273,1646279968,1801675116,151587341,1701602675,1869182051,540876910,1667329122,151653739,1701601545,1025537138,1768453920,168650100,1701644553,1633842542,540876914,1953065079,151653733,1852140809,540876917,1953065079,151653733,1936286729,1701601889,540876900,1953065079,151653733,1667457289,1919249509,1919906913,1646279968,1801675116,151587341,1818323300,1025533807,1768453920,168650100,1969359113,1852798068,1646279968,1801675116,151587341,1986358373,1919906913,1998601504,1702127976,151587341,1819568500,1918984805,1646279968,1801675116,151587341,1869767539,1633840236,540876914,1667329122,151653739,1919902217,1936876900,1646279968,1801675116,151587341,1986622052,2020565605,1998601504,1702127976,151587341,1986622052,1868786021,540876910,1953065079,151653733,151653757,151653757,1701602675,1869182051,540876910,2064189965,1946749453,1701606505,1293958432,1668247151,1836020328,540290405,1869377347,168653682,1919903241,1869768549,543452789,168632381,168655625,1633814793,1025533299,1634492960,168651619,1768425737,1768712295,544499815,1919033405,1952999273,1953065079,151653733,1818587913,1769235301,1025535599,1769103904,2004117607,1702127976,151587341,1919249505,540876916,1667329122,151653739,1852140809,1918984821,1646279968,1801675116,151587341,1970169197,1646279968,1801675116,151587341]},{"sector":14,"data":[1634953572,1684368482,1998601504,1702127976,151587341,1701012321,1634887020,544370548,1919033405,1952999273,1953065079,151653733,1634296841,543649644,1818370109,225141601,1644759306,1869902965,540876910,1667329122,151653739,1701602569,1869898102,540876914,1953065079,151653733,1953068041,1633838444,540876914,1667329122,151653739,1919120137,1651272815,1025536609,1769103904,2004117607,1702127976,151587341,1685221218,544436837,1818370109,225141601,1678313738,1702259058,544763746,1818370109,225141601,1678313738,1702259058,1852793705,1646279968,1801675116,151587341,1936880995,1025536623,1634492960,168651619,168656137,1667326473,1869768555,543452789,168632381,168655625,1633814793,1025533299,1769103904,2004117607,1702127976,151587341,1751607656,1751607660,540876916,1734963810,1818391656,225141601,1929971978,1667591269,1852795252,1646279968,1751607666,1634493044,168651619,1818298633,544502373,1919033405,1952999273,1953065079,151653733,1852140809,1918984821,1646279968,1751607666,1768454004,168650100,1701644553,1025537390,1768453920,168650100,1768163593,1818386803,1025533029,1768453920,168650100,1667303689,1701602659,1869898098,540876914,1734963810,1818391656,225141601,1678313738,1869373801,540876903,1734963810,1752659048,224752745,1644759306,1869902965,540876910,1953065079,151653733,1701602569,1869898102,540876914,1953065079,151653733,1953068041,1633838444]},{"sector":15,"data":[540876914,1953065079,151653733,1919120137,1651272815,1025536609,1634492960,168651619,1868695817,1919247474,540876915,1667329122,151653739,1769104393,1868719478,540876920,1734963810,1752659048,224752745,1678313738,1702259058,1852793705,1646279968,1751607666,1768454004,168650100,1969424649,1919906674,1646279968,1801675116,2097744397,2097744397,1929972237,1667591269,1852795252,220216608,226167050,1769212170,543517812,1699881021,1936876918,151653733,1701998438,1970238055,1025533038,151653664,151653755,1935761929,540876901,1953065079,151653733,1734961161,1734962280,1025537128,1634492960,168651619,1702037769,1952671084,544108393,1818370109,225141601,1627982090,1953654124,1998601504,1702127976,151587341,1970169197,544366946,1752637501,224752745,1829308682,544566885,1752637501,224752745,1678313738,1650553705,543450476,1818370109,225141601,1627982090,1818583907,1952543333,1025536623,1634492960,168651619,1768163593,1735355489,1998601504,1702127976,151587341,1953789282,1025535599,1634492960,168651619,1818560777,1952544357,1025536623,1768453920,168650100,1769212169,1650814068,1025536609,1634492960,168651619,1668483337,1819045746,544366946,1818370109,225141601,1644759306,1701081711,1025536882,1768453920,168650100,1919158537,1650816617,1025538159,1768453920,168650100,1919158537,1768257129,544108387,1752637501,224752745,226298122,1633814794,1919380323,1684960623]},{"sector":16,"data":[220216608,226167050,1644759306,543519585,1818370109,225141601,1745422602,1818781545,1952999273,1998601504,1702127976,151587341,1701602675,1869182051,540876910,1953065079,151653733,1701601545,1025537138,1634492960,168651619,1701644553,1633842542,540876914,1667329122,151653739,1852140809,540876917,1667329122,151653739,1936286729,1701601889,540876900,1667329122,151653739,1667457289,1919249509,1919906913,1998601504,1702127976,151587341,1818323300,1025533807,1634492960,168651619,1969359113,1852798068,1998601504,1702127976,151587341,1986358373,1919906913,1646279968,1801675116,151587341,1819568500,1918984805,1998601504,1702127976,151587341,1869767539,1633840236,540876914,1953065079,151653733,1919902217,1936876900,1646279968,1801675116,151587341,1986622052,2020565605,1646279968,1801675116,151587341,1986622052,1868786021,540876910,1667329122,151653739,151653757,151653757,1701602675,1869182051,540876910,2064189965,1946749453,1701606505,1210072352,1344304239,225144425,1868957962,1919378802,1684960623,220216608,226167050,1644759306,543519585,1818370109,225141601,1745422602,1818781545,1952999273,1646279968,1751607666,1768454004,168650100,1702037769,1952671084,544108393,1919033405,1952999273,1953065079,151653733,1701601545,1025537138,1769103904,1836345447,1852139361,168649076,1701644553,1633842542,540876914,1667329122,151653739,1852140809,540876917,1667329122]},{"sector":17,"data":[151653739,1936286729,1701601889,540876900,1953065079,151653733,1667457289,1919249509,1919906913,1830829344,1852139361,168649076,1768163593,1735355489,1646279968,1801675116,151587341,1953789282,1025535599,1769103904,2004117607,1702127976,151587341,1986358373,1919906913,1998601504,1702127976,151587341,1819568500,1918984805,1646279968,1751607666,1768454004,168650100,1668483337,1819045746,544366946,1919033405,1952999273,1953065079,151653733,1919902217,1936876900,1646279968,1801675116,151587341,1986622052,2020565605,1646279968,1801675116,151587341,1986622052,1868786021,540876910,1667329122,151653739,1920295689,544370547,1818370109,225141601,226298122,1633814794,1919380323,1684960623,220216608,226167050,1644759306,543519585,1919033405,1952999273,1953065079,151653733,1734961161,1734962280,1025537128,1769103904,1836345447,1852139361,168649076,1702037769,1952671084,544108393,1634541629,1953391975,151653729,1701601545,1025537138,1769103904,2004117607,1702127976,151587341,1970169197,544366946,1919033405,1952999273,1953065079,151653733,1852140809,540876917,1734963810,1752659048,224752745,1678313738,1650553705,543450476,1919033405,1952999273,1953065079,151653733,1667457289,1919249509,1919906913,1646279968,1751607666,1768454004,168650100,1768163593,1735355489,1646279968,1751607666,1768454004,168650100,1969359113,1852798068,1830829344,1852139361,168649076,1818560777]}],[{"sector":1,"data":[1952544357,1025536623,1768453920,168650100,1769212169,1650814068,1025536609,1734438176,1635020389,151587341,1869767539,1633840236,540876914,1667329122,151653739,1919902217,1936876900,1646279968,1801675116,151587341,1986622052,2020565605,1646279968,1751607666,1768454004,168650100,1919158537,1768257129,544108387,1919033405,1952999273,1953065079,151653733,1920295689,544370547,1919033405,1952999273,224683378,226298122,226298122,1702037770,1952671084,544108393,168632381,168655625,1953068041,1025533292,1701659936,1684824434,1953055520,151653753,1701998438,1970238055,1025533038,151653664,151653755,1935761929,540876901,1667329122,151653739,1734961161,1734962280,1025537128,1634492960,168651619,1702037769,1952671084,544108393,1919033405,1952999273,1953065079,151653733,1701601545,1025537138,1701996320,168652389,1701644553,1633842542,540876914,1667329122,151653739,1852140809,540876917,1667329122,151653739,1936286729,1701601889,540876900,1953065079,151653733,1667457289,1919249509,1919906913,1730166048,1852138866,151587341,1818323300,1025533807,1634492960,168651619,1969359113,1852798068,1646279968,1751607666,1768454004,168650100,1818560777,1952544357,1025536623,1768453920,168650100,1769212169,1650814068,1025536609,1769103904,2004117607,1702127976,151587341,1869767539,1633840236,540876914,1734963810,1752659048,224752745,1644759306,1701081711,1025536882,1634492960]},{"sector":2,"data":[168651619,1919158537,1650816617,1025538159,1634492960,168651619,1919158537,1768257129,544108387,1818370109,225141601,1661536522,1869836917,540876914,1667329122,151653739,151653757,1801675106,1970238055,1025533038,151653664,151653755,1935761929,540876901,1734963810,1752659048,224752745,1745422602,1818781545,1952999273,1646279968,1751607666,1701996404,168652389,1702037769,1952671084,544108393,1919361085,225338725,1627982090,1953654124,1646279968,1751607666,1768454004,168650100,1701644553,1633842542,540876914,1734963810,1752659048,224752745,1829308682,544566885,1919033405,1952999273,1953065079,151653733,1936286729,1701601889,540876900,1734963810,1752659048,224752745,1627982090,1818583907,1952543333,1025536623,1769103904,2004117607,1702127976,151587341,1818323300,1025533807,1769103904,2004117607,1702127976,151587341,1953789282,1025535599,1701996320,168652389,1818560777,1952544357,1025536623,1768453920,168650100,1769212169,1650814068,1025536609,1701996320,168652389,1668483337,1819045746,544366946,1818370109,225141601,1644759306,1701081711,1025536882,1634492960,168651619,1919158537,1650816617,1025538159,1769103904,2004117607,1702127976,151587341,1986622052,1868786021,540876910,1734963810,1752659048,224752745,1661536522,1869836917,540876914,1734963810,2036561000,168652385,168656137,168656137,1818587913,1769235301,1025535599,151653664,151653755,1819568500]},{"sector":3,"data":[540876901,1903326548,1936289653,151653733,1701998438,1970238055,1025533038,151653664,151653755,1935761929,540876901,1667329122,151653739,1734961161,1734962280,1025537128,1769103904,2004117607,1702127976,151587341,1701602675,1869182051,540876910,1734963810,1752659048,224752745,1627982090,1953654124,1646279968,1751607666,1684370036,151587341,1970169197,544366946,1919033405,1952999273,1953065079,151653733,1852140809,540876917,1667329122,151653739,1936286729,1701601889,540876900,1953065079,151653733,1667457289,1919249509,1919906913,1998601504,1702127976,151587341,1818323300,1025533807,1634492960,168651619,1969359113,1852798068,1646279968,1801675116,151587341,1986358373,1919906913,1998601504,1702127976,151587341,1819568500,1918984805,1646279968,1801675116,151587341,1869767539,1633840236,540876914,1734963810,1752659048,224752745,1644759306,1701081711,1025536882,1634492960,168651619,1919158537,1650816617,1025538159,1634492960,168651619,1919158537,1768257129,544108387,1818370109,225141601,1661536522,1869836917,540876914,1667329122,151653739,151653757,1801675106,1970238055,1025533038,151653664,151653755,1935761929,540876901,1734963810,1752659048,224752745,1745422602,1818781545,1952999273,1646279968,1751607666,1970037364,151653733,1818587913,1769235301,1025535599,1634492960,168651619,1818298633,544502373,1919033405,1952999273,1953065079,151653733,1852140809]},{"sector":4,"data":[1918984821,1646279968,1751607666,1635345268,151653742,1852140809,540876917,1734963810,2036561000,168652385,1768163593,1818386803,1025533029,1769103904,1668573287,225337721,1627982090,1818583907,1952543333,1025536623,1769103904,1668573287,225337721,1678313738,1869373801,540876903,1734963810,2036561000,168652385,1969359113,1852798068,1646279968,1751607666,1768454004,168650100,1818560777,1952544357,1025536623,1768453920,168650100,1769212169,1650814068,1025536609,1768453920,168650100,1668483337,1819045746,544366946,1818370109,225141601,1644759306,1701081711,1025536882,1634492960,168651619,1919158537,1650816617,1025538159,1769103904,2004117607,1702127976,151587341,1986622052,1868786021,540876910,1734963810,1752659048,224752745,1661536522,1869836917,540876914,1851881827,2097744397,2097744397,226298381,1628048650,1668248435,1769234793,544435823,168632381,151653755,1869837153,1952541027,544108393,168632381,168655625,1869770761,1835102823,1159740704,223627588,2019887370,1936614772,544108393,1481908285,151653716,151653757,1869837153,1952541027,544108393,168632381,168655625,1869770761,1835102823,1361067296,1230192962,1915691075,220229237,2019887370,1936614772,544108393,1094852669,151653715,2097810813,1729759757,1752659048,224752745,1644759306,1869902965,540876910,1953065079,151653733,1701602569,1869898102,540876914,1953065079,151653733,1953068041,1633838444]},{"sector":5,"data":[-1557217140,1441269599,294512657,-849870664,1638084129,1476573191,-1557257779,1424492387,8436497,105351718,-907541956,278194449,123707694,381403278,-850742271,1048587809,1963001694,113651214,-1879045789,1577502254,781189127,124061382,28872704,512437848,567084897,777520056,123936395,567148338,1762051886,771784711,-1912119391,113649344,645857408,8390342,113714688,8388738,8692518,-2046376410,-2144468480,17259838,-2029599194,108331008,-2029599194,-970063616,17259782,-1064384372,1461095214,512634375,1740310357,1258338311,1694942766,-846200569,113651233,-1879046299,-1590791054,-1064433825,8429606,477495100,1715372078,108265735,-402581784,350748962,113649156,-1191247744,567102464,1629391662,2145615879,-849870408,1476638753,567139123,-1036091354,57998848,771766248,124323527,118358208,-1173919813,-1590820736,-661780641,-850722632,-385650143,431685358,2549767,-210452469,-306530581,1763334,-1871396853,-1590762005,-1064433825,-1275035461,773967178,123602630,162841345,567090958,382534068,-466483596,-185919795,-854851144,-1871823839,1007449232,1955631225,-1193547006,-1195180031,784531456,124075648,-821988095,-1325495831,52995,0,0,0,15616,-13761164,-1677545170,-1323368658,1958742786,117321221,1036976810,225690112,-1255211218,113651202,-352320854,-1039778317,-1202655625,801969664,1968734120,1946303720,1048587999,1996554922]},{"sector":6,"data":[-120198398,-410321102,521019087,-1323907794,624146434,-1021369907,773787166,45422277,-853207624,12787489,-1899459584,2142290904,-1248992266,-268238474,-1964166461,1973258955,-1382399,141871371,-394699638,-119341088,-620080189,-1657124748,276103540,-655832066,2034535167,24479112,854317874,1956481619,-3807231,1381750411,-4331437,2034535003,-872525738,1493152488,-2005310326,-997557948,24487302,2036631646,2034534494,-1729569998,-628335617,-389822837,881721231,-1178400994,-645267441,-134252568,-2147453116,-220068235,-1007026253,-420953096,-385649665,-2046951291,-1920335500,1441268085,2035058943,7816391,1850001152,1153892352,-956301200,29252,7619782,7685318,7750854,-2013952170,-1933538065,-1898410278,5290434,-1901792260,-1950314790,-1923653891,881676412,179099275,1325102528,1995586382,1006930446,1007121466,1308849244,-1404637205,1095173512,-143278070,1973258335,-1651879167,-320339596,1418222334,-1010567047,24427904,-1975684607,-402557539,1552613068,-159403911,1991085539,-2014838015,2035059445,1418392967,2035058809,24479114,1149826439,-1997174919,-134122091,24419722,-22681518,2035583066,1960512195,-389284312,1552613015,-387019911,1418395268,2000996217,1153925120,-973078406,-1962902460,2035583221,24415742,-7542589,-739573581,24419722,1912732544,-1966342639,-402557547,1552612955,1973258361,-1966868479,-2147388275,242352633,24485258,-1963051032,-2054653628,868417909]},{"sector":7,"data":[1954908864,-628309247,-389822581,119471659,90015939,-972732930,857736773,114002633,-1927346402,-175437955,648344572,853447,1837468611,1397605121,1397703725,1701335840,-973050772,-16681851,23823815,-2050555904,361,24085958,1887815193,-2050621439,-965738127,94853,24348102,1871038000,-2050615039,-955645584,91013,1703266048,-956301311,92037,1030400,-1645684341,2000996349,1153925120,-973078406,-503284668,1971701483,1426456577,780994318,367527222,-1973614594,-402557539,1283718516,12796023,503316480,800595726,773967157,96411273,-1557217140,1421477313,623884294,62398925,-1898237109,-1174697021,802017365,259382027,-217659858,-953286393,16983814,772598528,133373576,654755630,520093699,772677315,52903555,102135040,79188823,-1898237109,788237251,133373578,1599811533,-986833145,-1207582954,567092527,88326943,72614854,77137100,61277415,84280575,85001483,55641393,1951008061,1258503439,71116404,774796363,96415487,1997340291,508646390,-55187371,133381773,-13703471,1560689300,-816096993,658408238,-680263677,-352317208,1048784395,1946157863,2615498,1389346867,52928814,1962934077,113174,-489563509,1958905155,200796930,665005762,868440579,1392176091,1979841411,284918559,-1590814089,28967719,74730240,-101981487,141869701,-1037839625,-1017455821,-335544389,1426722297,1818386798,1869881445,1634692128,1397563492]},{"sector":8,"data":[1397703725,1701335840,539782252,1920230738,2032672889,1059679791,1426722084,1818386798,1869881445,1634692128,1868767332,1851878765,1868770916,1864900717,1868832882,1635218291,2019896944,539765093,1920230738,2032672889,1059679791,36,0,0,0,0,32768,488704,498176,538968064,538976288,538976288,32,0,0,0,0,0,536870912,538976288,538976288,8224]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,168624128,1919117645,1718580079,1378361460,1329864745,1700143187,1869181810,775233646,1293951024,1329868115,1750278227,611085413,1866664461,1769109872,544499815,539583272,1919117645,1718580079,1866670196,824209522,774977849,1819033888,1734963744,544437352,1702061426,1684371058,604638510,1711719982,12058887,-855590974,-1205964267,12042754,359798221,-1212022088,1914031362,-1039878132,91362765,1946353536,113651212,-402651290,-1008205599,-205264896,-661731188,-239284082,1604398599,-1145008633,1253310742,-1590812211,1805846367,1864272903,1931381767,43760135,-853204040,44546593,-853203784,-285677279,1528204078,1503735303,-1959867641,772234006,84367777,785055808,-888055391,1427540782,1470180871,1358809863,2042188062,-1899983872,16367320,-218037825,1478449572,777455299,123012750,1463716654,-222285049,82805678,1694877222,96872007,-970569864,123692293,654051011,-1912591199,-1950338112,-17928,942059250,-503155707,63407095,1426492462,1049177607,-1022949545,-1205924322,567096627,45162121,-1281113972,45726210,-853199944,516103969,364388110,-1994273483,-1945979618,45589440,-1207774278,567092501,508609311,235517010,291158559]},{"sector":14,"data":[162800077,-2001068274,1512164625,-540846049,-1056919033,-285233145,391324250,2048942592,134195201,45613628,-7650734,96505064,521011216,304127,787971,-1950285938,-1962932722,-1946202119,-1527513609,-13322160,-1932832768,1222151363,-1898410241,1032128,1114041,-1359741008,-135296185,-1689730165,-1962626782,-789068033,-628299565,1943076651,735611908,-528493614,-628166653,582403979,582796021,-131939648,-5455218,-1387343734,-1975072629,-31145249,-803950532,-339760397,1974615046,-1033877907,1946265855,20102833,-1960837362,-67107810,-455159245,-1961630944,-1392417598,-2080834677,638673075,-1958655,16417267,-2129234704,268485375,-1064510229,-1064394944,537980803,-350180304,-1014242625,-150454645,16714448,100790275,-47382526,-1907296752,48064,-695271430,-1946425461,-53563,-1153387473,-4653054,-896794602,482007694,-1341324811,1348479487,-9739423,1713398885,543517801,544434687,1920102243,1953562485,327700,469696528,822093312,-16761856,282329159,397416279,1880619519,-1810323944,469761796,481303606,-1676731185,1646375454,-901923039,55]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[23747149,462,127008800,1018169234,128,939786256,30,1]}],[{"sector":1,"data":[-1557217140,1911031419,296347665,-849870664,2107846177,1476573190,-1557257779,-2135226753,1200236032,1946303494,318302214,638628329,772229002,638612898,771901323,637957539,772032395,-385452125,-1869600960,108765486,414957710,-850742271,1048587809,1963001466,113651214,-1879046017,2047264302,781189126,109119174,28872704,512437848,567084669,777520056,108994187,567148338,-2063153362,771784710,-1912177759,113649344,645857408,8390342,113714688,8388738,8692518,-2046376410,-2144468480,17201470,-2029599194,108331008,-2029599194,-970063616,17201414,-1064384372,1930857262,512634374,-2084895119,1258338310,-2130262482,-846200570,113651233,-1879046527,-1590791054,-1064434053,8429606,477495100,-2109833170,108265734,-402581784,350748962,113649156,-1191247744,567102464,2099153710,2145615878,-849870408,1476638753,567139123,-1036091354,57998848,771766248,109381319,118358208,-1173978181,-1590820736,-661780869,-850722632,-385650143,901447406,2549766,-210452469,163231467,1763334,-1871396853,-1590762005,-1064434053,-1275035205,773967178,108660422,162841345,567090958,382534068,-466483596,-185919795,-854851144,-1871823839,1007449232,1955631225,-1193547006,-1195180031,784531456,109133440,-821988095,-1325495831,52995,0,0,0,15616,-13761164,-1677603538,-853606610,1958742785,117321221,1036976582,225690112,-785449170,113651201,-352321082]},{"sector":2,"data":[-1039778317,-1202655625,801969664,1968734120,1946303720,1048587999,1996554694,-120198398,-410321102,521019087,-854145746,624146433,-1021369907,773787166,30480069,-853207624,12787489,-1899459584,2142290904,-1248992266,-268238474,-1964166461,1973258955,-1382399,141871371,-394699638,-119341088,-620080189,-1657124748,276103540,-655832066,2034535167,24479112,854317874,1956481619,-3807231,1381750411,-4331437,2034535003,-872525738,1493152488,-2005310326,-997557948,24487302,2036631646,2034534494,-1729569998,-628335617,-389822837,881721231,-1178400994,-645267441,-134252568,-2147453116,-220068235,-1007026253,-420953096,-385649665,-2046951291,-1920335500,1441268085,2035058943,7816391,1850001152,1153892352,-956301200,29252,7619782,7685318,7750854,-2013952170,-1933538065,-1898410278,5290434,-1901792260,-1950314790,-1923653891,881676412,179099275,1325102528,1995586382,1006930446,1007121466,1308849244,-1404637205,1095173512,-143278070,1973258335,-1651879167,-320339596,1418222334,-1010567047,24427904,-1975684607,-402557539,1552613068,-159403911,1991085539,-2014838015,2035059445,1418392967,2035058809,24479114,1149826439,-1997174919,-134122091,24419722,-22681518,2035583066,1960512195,-389284312,1552613015,-387019911,1418395268,2000996217,1153925120,-973078406,-1962902460,2035583221,24415742,-7542589,-739573581,24419722,1912732544,-1966342639,-402557547,1552612955,1973258361]},{"sector":3,"data":[-1966868479,-2147388275,242352633,24485258,-1963051032,-2054653628,868417909,1954908864,-628309247,-389822581,119471659,90015939,-972732930,857736773,114002633,-1927346402,-175437955,648344572,853447,1837468611,1397605121,1397703725,1701335840,-973050772,-16681851,23823815,-2050555904,361,24085958,1887815193,-2050621439,-965738127,94853,24348102,1871038000,-2050615039,-955645584,91013,1703266048,-956301311,92037,1030400,-1645684341,2000996349,1153925120,-973078406,-503284668,1971701483,1426456577,780994318,367526994,-1973614594,-402557539,1283718516,12796023,503316480,800595726,773967157,81469065,-1557217140,1891239133,623884293,62398925,-1898237109,-1174697021,802017365,259382027,252102190,-953286393,16925446,772598528,118431368,1124517678,520093698,772677315,37961347,102135040,79188823,-1898237109,788237251,118431370,1599811533,-986833145,-1207641322,567092527,73384735,57672418,62194664,46334979,69338139,70059047,40698957,1951008061,1258503439,71116404,774796363,81473279,1997340291,508646390,-55187371,118439565,-13703471,1560630932,-816096993,1128170286,-680263678,-352317208,1048784395,1946157635,2615498,1389346867,37986606,1962934077,113174,-489563509,1958905155,200796930,1134767810,868440578,1392176091,1979841411,284918559,-1590814089,28967491,74730240,-101981487,141869701,-1037839625]},{"sector":4,"data":[-1017455821,-335544389,1426722297,1818386798,1869881445,1634692128,1397563492,1397703725,1701335840,539782252,1920230738,2032672889,1059679791,1426722084,1818386798,1869881445,1634692128,1868767332,1851878765,1868770916,1864900717,1868832882,1635218291,2019896944,539765093,1920230738,2032672889,1059679791,36,0,0,0,0,32768,430336,439808,538968064,538976288,538976288,32,0,0,0,0,0,536870912,538976288,538976288,-1275060192,168669449,1919117645,1718580079,1378361460,1329864745,1700143187,1869181810,775233646,1293951024,1329868115,1750278227,611085413,1866664461,1769109872,544499815,539583272,1919117645,1718580079,1866670196,824209522,774977849,1819033888,1734963744,544437352,1702061426,1684371058,604638510,-2113485266,12058886,-855590974,-1205964267,12042754,359798221,-1212022088,1914031362,-1039878132,91362765,1946353536,113651212,-402651518,-1008205599,-205264896,-661731188,230477966,2074160647,-1145008634,1253310744,-1590812211,-2019359109,-1960932346,-1893823482,28817926,-853204040,29604385,-853203784,-285677279,1997966126,1973497350,-1959867642,772175638,84309409,785055808,-888113759,1897302830,1939942918,1358809862,2042188062,-1899983872,16367320,-218037825,1478449572,777455299,108070542,1933478702,-222285050,82805678,1694877222,96872007,-970569864]},{"sector":5,"data":[123692293,654051011,-1912591199,-1950338112,-17928,942059250,-503155707,63407095,1896254510,1049177606,-1022949773,-1205924322,567096627,30219913,-811351924,30784001,-853199944,516103969,364388110,-1994273483,-1946037986,30647232,-1207832646,567092501,508936991,-1202301178,129911301,1580190976,1562314591,-326412853,1448543774,-1207542133,113134085,-1943024384,1590070210,1562314591,-326412853,1448543774,1183732304,173968136,-1207538037,180242949,1513082112,123690584,1439391007,102689931,95966807,769610,1600008141,-883089657,518818645,1347835654,138841682,-1207538037,29248005,1513082112,123690584,1439391007,102689931,1586189911,1241888774,-855636802,123690543,1439391007,106386974,-1102445128,801964032,526278407,508939101,-1207543978,46025221,120573184,1562336863,1465261771,1241888774,-855637058,1583286063,1444858655,95946327,376394,1594306509,516628318,-1207543978,146688517,120573184,-887136673,518818645,-1957275898,95946334,638538,-1031000115,1600046987,-883089657,-1269686704,-1172369911,567087222,521013684,-854547270,1478449697,-1957363517,2062320620,1187468887,-16776966,1996425334,-1682269690,1183387077,-162100748,108380683,-375799765,1589904302,1200301574,1191912964,-952732410,130630,-1993949141,637910919,96307081,-980973274,-1941533435,1392922646,-1783795046,-62470372,1187446787,721420794,-1975088704,-343390583,106873982,-1046494170]},{"sector":6,"data":[1207313925,930353167,33441479,106873856,-1048081626,-1752488443,-1993996861,637910407,96442249,1347572486,1351370381,1358710413,-986834278,106873869,-980973274,-944706811,65094,-16222465,1589905014,-1208015354,-14285377,-1929003593,-1924101050,-1705968570,231026202,637951684,96569227,-1013478618,-2008643323,-1953868151,1183710334,1996443788,108461832,-624897,1996485750,-401713154,-259325222,16664263,1979058944,106873940,-977304794,209649669,-1986412501,1988754558,45148658,1183432747,-2008643190,-980418778,-1941533435,794991184,-125104699,9192390,637951684,96450559,-1112015066,790731269,1589906885,-2021054970,-1993996867,-351944809,106873887,-1215826394,343147013,653549252,269436918,1589906037,-2013321722,-164952657,58062347,-1979751447,1988754558,106874098,-1946925429,-1993935274,637911431,96704393,71797542,105319206,1183517557,1200170740,1468605956,-2008642810,1955218955,-2007055313,357010214,391613222,653549252,638928777,-1005103223,1183549534,-162100236,357009702,391612710,275218470,12839422,637951684,96307083,-1081668826,640119813,96313284,424119078,457640742,1589909621,-1614535162,1183516093,-162100236,424118566,458721574,2122544619,259260666,737435332,1200170688,1200170519,-998708459,-1960442274,637910407,96438027,-1004138636,637910431,639190923,-350529653,106873867,71797542,106400550,-1987557751,1586268758,-2005482106,1959068651]},{"sector":7,"data":[256177941,-160169728,-1937213815,1586399838,-2007055226,-1946925429,-1993935274,-1993992889,-2144987305,-989982617,-1960442274,637910407,96442251,653549252,638928777,-1005103223,-2144930722,637603919,269436918,-1511455883,106873856,-1282932954,-11336187,1996486262,-1941533196,-129594032,773495376,1589906885,1200105204,1736451595,-2144928495,653988199,-284072064,291995686,106874079,-1115190490,-2029312507,175375807,-1113603034,1333798405,1996427281,108461832,637951684,96450559,-1112015066,-159973627,-1695254785,479563193,-1962516796,1452012614,-2021054730,-1993996893,-1006262889,-2144930722,1963002751,1333798415,1589905425,-2013321722,1928005045,653549252,-149854336,1589930219,-2013321722,-14285393,637907335,94865291,-1450767578,-1961724667,1452012614,-2021054730,-1993996889,-351950441,-1614535149,1183516075,-162100236,491227430,525830438,-1962516796,1452012614,-2021054730,-1993996885,-1006260841,-1070861218,524781862,491227430,290422822,1736451586,1183575825,-162100236,-443850914,313949,-2115204267,1459656940,241091670,637545400,96841719,-1030962429,-1929374715,-1946195778,503781104,364501646,-1532628480,-1736537313,-2087291253,1946159230,-1923721363,119446134,-1189970293,-1070333953,-772296974,-24643285,-1510807087,-1527592685,1988845406,-1706899962,2055226972,24468632,-1084860594,1921853206,-1176990566,-1070333953,-772296974,-24643285,-1510807087,-1527592685,1183670110,381178010,-2037559296]},{"sector":8,"data":[-1873739928,1843324942,-946583927,2118,-2037575445,-1873739928,374007822,-1996307325,2122552390,1802764436,-1986494839,2122552950,57933972,-1006572055,-1960441250,-1070985401,-8548726,-1056182998,256346406,291995686,1736451838,-2144928239,738070631,1200170688,1200170519,-1923938795,1343653446,-986357862,173982733,256374310,-385649392,-1070923639,457672998,424118566,524781862,491227430,-2097114647,1962972286,-2038530037,-1207601874,48955393,-125059029,1107721859,-16050564,-2030696587,1947271037,112645,-1070923029,820770955,906395267,-2030687620,1947271037,105286435,-1923624821,-796096898,-4603762,-222284801,1238497198,1120994143,1984100995,114435,9731715,736691060,1979649023,-14358269,-1946248983,654278278,-1962063991,-1993965498,1183517511,-2074702974,424118566,458721574,-1207017788,-148504533,-1962555985,343444976,-9914739,-234875463,2122556581,-1071971948,1600051447,-899816053,-1957363698,-1058242068,-2091493632,1962939518,30730499,-1928038657,1358919302,-986712166,205949197,-1005693303,-2144990114,-150620249,-1215826394,108331269,-385875528,1589904096,-2013911540,1946420663,-1705834999,231056317,1996482283,209125134,-1928038657,-1924134842,-1202678202,-1706033151,231026760,-8616311,1962934845,242679574,-15960321,1996425846,-1737031928,244741887,-1006393880,-165278626,33929095,-2033750924,65402,-8616249,2124480512,-1461137027,-1588760063,-388924034,-1996488411]},{"sector":9,"data":[-1090567034,-960523318,2089716627,205949951,957240971,958035204,359989844,-1962391925,87624278,1429801845,-955878142,33520262,180781824,1091225475,-2042904181,-847839420,-8614263,-8733053,-385649408,1187512118,-1929379834,119446134,-1189839221,-1070333953,-772296974,-24643285,-1510807087,-1527592685,1352287885,-986750310,2089191693,-2131719169,1969003130,2089221892,2092338175,381638655,-1703768793,-1064380276,872415161,-139529536,-2013713455,-219557378,-221703259,1183670180,-2037690232,1174667132,-1070903276,912759376,-13955643,-8485177,-1232404479,-1098645640,1946222462,-1706652388,1488976,1250331984,244338943,-1955921944,2122762224,-352321281,1250331919,244338943,-2095879192,-259325244,678819339,-9912704,-1927449554,1358915718,1351108237,-1041756528,79987473,91537419,-351910145,114435,-1569390837,-8733047,-8866167,425603,1183532916,172362504,1589906804,1200301576,1468737049,-1005851877,-1960440738,-1960442809,-2037840297,-1769341114,-1631256760,-165216442,1947209543,-1715459323,-1014299413,1183433356,-2041149052,-351908097,-1715459311,-1987819895,-2037807530,-1769341114,2122579784,897449990,-1945743733,-973127522,-134265162,16781124,1959072885,256177685,-1996065520,1586267254,-922007162,-1232476801,-1634926778,-1634795704,1317666624,242679558,-1710459137,231054266,-1988082039,-1039433130,116789365,1946254718,-368272891,-1070920251,1589934315,273058688,-1961732469,519080955]},{"sector":10,"data":[280615566,-1532628480,242679583,-15960321,1996425846,1219952392,1186398207,240322303,-16756760,1996456566,918788736,1589906885,1736451712,1589968401,-2013321716,1589904817,1736451712,-2144930031,-323225,1996426870,175570700,101218047,-2039021741,730101503,-1684385600,-384002664,1600060698,-899816053,-1957363696,172395500,1946961419,173982801,357010214,391613222,637951684,638928777,-1005103223,1183517278,139889414,357009702,391612710,256346918,-388822863,-1979711195,-993449240,-1960442274,-461369529,650644478,-1005629559,-2144990626,-369225625,1183514794,273025806,1589923956,1200301582,1191912985,639267867,639190923,-1004841077,-1993996706,-1993992889,-2144987305,-335671193,106873878,-1961998709,-1993994154,-1993992889,-2144987305,-1006563249,1183518302,139889414,424118566,458721574,1589924587,1200301586,1191912964,-1207601914,48955393,19251243,719882752,106874057,256346918,201254016,1334388424,308200463,71797542,106400550,637951684,638928777,-1005103223,1183519326,139889414,71797030,106400038,1100381,-2081649835,-1000995092,-2144989602,-150620249,637951684,269436918,1996430197,242679568,-15960321,1392904822,-1785071718,241091612,-1315963098,172395269,1946961419,173982822,-1962522997,958793814,745871687,458701094,1589913205,1207379462,1946222607,-1715459323,-1960441621,-1960438457,1589909335,1200170506,1468605977,12773659,424119078,458722086,-1979955575]},{"sector":11,"data":[1586298454,-59324934,1959068651,105286421,956847755,-227207868,1964463161,-1000936467,1183518302,139889414,71776550,958799477,410322519,637951684,638928779,-1005103221,-1993994658,-1993997241,1793787479,71797542,106400550,-1979955575,1586298454,-59324934,1959068651,105286421,956847755,-227207868,1964463161,-59340307,-1895932276,1589967454,1200301574,1468737045,-60898281,357009702,391612710,637951684,-1324398709,636015368,-393609215,1589954858,1200301820,-18579441,-1993947125,1589907279,130426374,241091584,306708262,1575324510,-1879044918,11668998,1437597720,1465314443,-851246920,1971338287,1125169172,-1993461811,773754910,512886412,-352321096,1606431490,1575324510,-326412853,229922646,772167307,512761599,1451952820,520039942,1583292048,-899816053,-1957363710,-1269344532,-1977496295,-1958673200,76023414,973391430,1543816774,-1262289338,1596050759,1575324510,1426064074,1465314443,-852492104,1608790561,1575324510,-326412853,503732054,-1070463202,-1962518901,-17926,1336865532,-1272707642,-970863351,378339333,567083094,1583286047,-899816053,-1957363710,106387180,-1205924322,567096592,-1944155858,784370718,-1172402525,280502162,522308901,-1956749561,1439391205,1465314443,-1959911930,773753878,512630414,-853208904,1594302241,1575324510,-84115253,-13761164,857639982,-1957310501,106387180,108956446,-1962391922,1586367094,-849300468,47137,119525585,-443851169]},{"sector":12,"data":[576093,1458342741,-1205991849,802008448,360038654,377323814,225727317,-844266568,1975778863,-352210940,851456514,1594302436,1575324510,-326412853,-1004644522,1992625278,105810696,-147072629,66918007,1324942321,1944834383,-372136959,1330516707,216770035,-471215620,-777653502,-1543408661,1583292412,-899816053,-1957363702,106387180,-1070359522,1486658896,1971323049,1879095365,-1661231792,11115864,1362982000,-997471949,1946157861,734563076,1721525984,67108968,1721591296,1717069468,11101853,1962935296,-519880695,309337,-519892501,571481,-1197667861,65732608,520094392,-1956749561,1439391205,1465314443,378347014,12107552,-1205744328,-772472832,33260496,113640821,520159627,-1956749561,1439391205,1465314443,1049435654,119406982,-1151007048,96075775,-841774336,-972393695,99846,25888454,1594302209,1575324510,-326412853,503732054,-1952390094,1594302209,1575324510,-1940521781,875542749,516282510,394985863,1241695107,1191545382,24625722,518032087,531422606,24625722,-507233577,1574801127,-326412861,503732054,-1912177013,1988823110,207523338,-402650951,544735159,2123045237,147292934,-2096466293,62458054,-6166528,1996488888,-1206815737,65798143,-1157627464,-611437521,-1906833869,1583286047,-899816053,-1957363704,106387180,108956446,-2096609650,1988823239,207523338,-1190607229,1625817091,1964668927,108956435,-1190496629,1357381640,47359,292816759]},{"sector":13,"data":[-335544392,112643,-1909182533,1476801499,1594302350,1575324510,1426065610,1465314443,512433670,-1946382760,1183712894,175541000,-1190371698,-1070399477,125085427,1212678775,532886336,-1956749561,147480037,-326413056,503732054,-1906827637,108956668,-2096609650,1988823239,207523338,-1190607229,-1070399485,326608627,2123042677,175540998,-218101575,1996977318,1078478850,119522099,-443851169,576093,800595536,-1948742092,-1745968441,61888543,-326412849,503732054,-661731188,-1205709382,567092516,1583286047,-883038837,1458342741,-1205991849,-617409269,1225150091,-75419699,192261549,1946157117,374790,-1198510869,1586185225,1914817798,283541535,45614452,-1206392064,567100424,-1073019790,62391668,-1207440640,48955393,119521331,-443851169,182877,1458342741,857605719,2406619,529740749,-1956749561,13327845,-1957363712,106387180,1476573214,-1557257779,62399217,113496,1387536845,-343727667,532948484,-1977171828,1190756367,-109041548,-2144504742,125062649,1950677376,639757058,134315907,-2128205707,1146292351,-2144460683,2289726,-30536332,1478684686,250283867,771787241,586155774,-2091887866,-2128211773,1330448511,-2128188811,1398082175,-2144968075,1967459455,654019419,-788312181,-773729823,-52309535,1287180427,196080207,1958906825,1031874111,-327857849,41779494,-462076588,75333926,-596293565,108888358,-730510048,326992166,-864725472,357927462,392530470]},{"sector":14,"data":[407210534,-701878090,-970267094,283899442,52871310,-1908407481,-12916288,-768360397,-264339410,57933858,1342620803,777520056,586227339,525869517,-1956749561,1439391205,1465314443,12066310,1915735297,-18599418,-1207733056,119472129,-443851169,-1957311651,106387180,135695646,138840858,-1961227357,161678918,16889882,41037773,119521331,-443851169,313949,511,1426063360,1465314443,-1607590394,-1976687543,-165393626,57934788,520342656,-1956749561,1439391205,1465314443,-1607590394,-466475958,1583286047,-883038837,1458342741,236848727,889829407,512303565,-1064557492,-1172025693,163062986,522308901,-1956749561,1439391205,1465314443,-1959911930,774130710,609099406,-853210696,1594302241,1575324510,-13722421,1344556062,875542558,1067505806,-617393311,1228832814,41283620,-2136423426,-532937100,-1006763404,608805422,1243514926,-1207543004,-1064435648,386826278,-1608089600,772210711,522472354,53080,3997696,772109386,622014207,-143275765,503731195,-1909182536,-1581216040,512432638,-1014949380,-1019543041,1363753586,1465275730,445130377,445257356,-527755490,-401698734,28604828,108271309,382592050,-466422549,244324045,-1904617496,-1961194986,1595574310,1499094366,-1201993953,-13743616,1428493102,1465314443,800595462,773967157,622009993,352750638,622311973,800595726,522308901,-1956749561,1439391205,1465314443,-986833402,-1205529834,567092527,1583286047]},{"sector":15,"data":[-883038837,1458342741,-1155660201,-826671379,377534714,-306499635,-87115266,12069069,-841272511,1594302229,1575324510,-1308140853,-1342171904,637248302,-48330450,243871269,-1993464321,-1205468906,-617395455,-880032882,802018187,-1022639988,-1960423820,-140300793,1200301605,-106746366,1200301605,-207409660,1200301605,-173855226,-1895877851,-73322809,512437797,-1959909891,774242062,637605515,785405374,636690175,209043467,-148993234,109981221,-1393875463,-326412861,503732054,-230784978,259326245,855638968,-1178104065,-13709227,-1876562402,-329455602,-661929330,1889503782,147060225,129501556,113408,536826344,-1956749561,1439391205,1465314443,244325894,-1897123352,651725762,24158090,1963508726,1258469445,-1014047949,1438251915,187682256,-1205307968,-1993474046,774237758,636487308,-946929869,785405369,636362495,1946157373,1975520028,113651206,855713266,-17766208,158711819,-1007281429,-351177456,-401698776,-1030820910,-2144937845,402747535,418103347,-1075310960,-1950183701,-1484773672,653197680,24153984,112648,1583286047,-883038837,1458342741,-1877080489,-10754034,561299467,1946157373,1182840850,-1073008691,12063604,-1473262314,856323455,1594302400,1575324510,112843,-1275005973,1008848176,855995138,-883947840,-1959514177,721420854,16679415,-1107070448,-1896214528,-1631288873,309590975,-401727722,-1070396951,-672657840,1291827210,-963960371,-523041615,715339336]},{"sector":16,"data":[1747762024,-2095608778,-1992884508,-21494681,-1992929025,-789116313,1737045584,1737045510,646526472,-150771674,145033,-567557236,1253366775,-1942609459,375940638,1321204743,-1079985813,-1070346453,521579251,1783500427,-771816733,-957870448,-608003575,-315421243,1323830928,-14739968,-9926858,-9927370,-1704426698,231070989,-68678064,-1590770944,-661772161,905970616,1747453639,240134471,235487464,906637800,1783643777,125163222,-13217704,-1200991210,240124159,1747457791,-1207946193,567096576,1750212233,1750337164,12066574,676182565,521544141,1784811147,109981411,-1960417178,-989844426,-1939184634,920335322,1784684287,521536883,906561257,1785202373,62642828,520041984,521562720,1751516814,739150630,-1908481280,654259137,1946172800,899380,-211270466,-1190431578,-1070366721,561360626,503768555,-141877497,-1318555713,1093446660,-523104910,1093446802,-1039530638,384756650,310047,1752147840,1140897983,175251917,1954595574,1871675397,2034974824,1785511655,-395678529,1824391354,1785511786,-889146904,871140181,1427827657,28961931,1427303168,1465314443,-352255815,-326413048,28923734,-922070783,-658629003,1859698542,-1107263000,1824483948,7923818,1783643777,74831574,1784026879,-1083544386,1676175980,1785511424,-395678529,244318298,185084136,1477539008,1968235530,108954379,-955943680,16713286,1476399336,125166602,-1274657141,1596050764,-1949606562,-479567346]},{"sector":17,"data":[178951,1784684287,1377223966,620804200,-2145443379,6852670,-1608643212,382036113,632580242,-1021369907,242480955,-1962610813,38079237,503313012,1438904043,-326898549,106859268,1751981627,12060018,-148182263,-2147481018,2122532980,443809804,-779368141,-851312200,-146050527,134214,1174605429,173413128,12068985,921434390,-1979820407,-779355066,-851311944,138806049,2030720531,-28407027,-1191422325,567099904,1452005611,172919560,-1274263926,1914817858,1873248261,1609170280,-326413048,119428695,-1962508661,-544536458,-485863797,-1073042420,-492174476,-205507848,1589873578,1575324511,147581387,-326413056,28530518,-1962258805,-768407994,1963653507,2123077889,222292232,-326413056,755385995,-883097568,-326412912,-167354741,40408967,1200424308,-1962742816,1439391171,1448602763,1753691787,1249179147,425603,1996440692,-401698810,-998045669,-336033022,-1875574992,135129102,990037123,-1960804665,1027178524,-11069067,-1873607050,135391246,184992899,-1962379840,1086784260,1183845099,3965766,-1070871691,-443850914,-1584346275,-469079656,393543600,1783643777,158717654,-17581,1783764735,-854870949,-889146335,-352209408,-1593264638,-469079656,113707125,-38504,1048647403,-690591152,-1152185995,385875967,-1839502766,11805133,-326412853,1443163267,-790098288,106859273,1468729227,-771347710,-736748695,-62486167,-1912711543,-1873740730,134735886,-1962752893,1979059184]}],[{"sector":1,"data":[-339727612,-700546254,695468137,-401698730,-998045103,1958742786,-62488292,1451429392,1183645950,244338940,-2096638744,-259325244,17843399,1590070016,-883038837,-326412912,-852839338,-1948611807,-852708111,-1979665375,-1047899962,1355123280,-852839344,1490696993,389810292,-745864075,11849355,-1974418806,-377401146,-1873737796,179431438,-2096315261,1946158718,106859272,-1996335223,-883073529,-326413056,108956503,-544536802,-4603853,1101984511,1183504887,-218395896,87576494,-13434252,-1956657269,1439391205,-695473013,-1962379637,-5241250,745848842,1126664876,-193667014,440156460,-511653606,79757856,752911937,437926977,551649481,1090830594,-730545094,-14893030,1576176536,-326412853,-1962516853,738978771,1931099233,-2009005052,126501639,-277495798,1439391122,-326898549,-678734304,280561430,-1916783872,-1410080642,-1408731509,343195658,-930350965,-511704656,-1310666233,149934851,-403972029,184972939,-1962641930,-1402365386,1962999589,914968071,1105947034,-930350965,-511704656,-1310666233,586142467,-545923005,-1543551859,632056218,91554047,-335592307,-1946645736,-2147372856,-523106335,-271383631,1960854306,-10188575,-1710848106,1593477993,-883038837,-326413056,99301812,-1259566251,106335035,1055465933,-326413051,1451965108,1931595014,1064433,-1819087755,1011025802,1007318016,1006924863,-1292798678,-335965693,1751556565,-326412853,106335063,503873163,-849955833,-18260191]},{"sector":2,"data":[-326413052,-1274653045,-383660735,1426064625,1586228363,-851528698,82569505,-326413056,99310519,-1209234603,106335036,-1979167093,1931595239,5258506,-1274448391,-1962546415,126421598,1426374889,-1340150645,106335055,-1957361173,1320165100,-1274390901,-1272853201,1008848154,-1962511026,1317733974,-840922616,1352618017,-628178292,448058251,-1638391347,-2098651304,-326413052,-1207544181,567100160,1586169202,-384857848,1426064493,1586228363,1459664902,175251917,-1995809141,140413711,1391007625,-326413052,-1962518901,1035208774,91365837,-1995809141,71035143,-326413056,99303348,-1259566251,106859328,-2129899893,-697675714,-16484906,510284310,-855091515,91365153,-1995546997,67889415,-326413056,-1962518901,28837966,-383660733,1426064377,1586228363,172919558,-1207413109,567105281,1426318569,1451945099,-852052986,-49887,113707125,1468512,-1957293333,1149831286,39618820,-1996075895,-1070375404,1426115421,1451945099,246696454,11805133,-1995940213,1572877063,-326412853,861099607,138841087,293453835,106335047,-621291273,-1996488675,1451821126,205949702,293453835,173443911,-621291273,-1996488675,1451822150,1975520010,172919573,856180363,-1947076654,105286616,-745803273,-661964565,-1962258805,1183516758,-773074682,-773140007,1977289688,-1947076620,208074736,172395409,-788273417,1446710386,1913091848,105265926,860750198,1968150226,-136644857,14320600,1566531163,1426065610]},{"sector":3,"data":[1183575179,206473992,1317783563,-1962314486,-503904698,576093,-1948125357,105286616,51144439,105286616,-754720265,147479899,-326413056,-13412525,185091723,1192328640,-150579573,500889560,1183383552,106334472,185353867,-1961853504,-654898602,1956599,205949184,185226889,-1961331264,1183517262,-137219320,105286641,-1031015945,2035274291,-1958155453,172919768,-1962387829,-338622906,-355345967,-619980591,-235408267,1727514763,1727500556,1926300426,139868940,192022391,1980122683,172370694,722228763,1444611654,125390600,-654845193,1593891459,147479899,-470994432,-773795578,-872750382,-326413056,106859347,-16091393,2013202550,238550786,-1979813144,126419543,113925467,-326413056,1183536723,1975520012,172919573,856180363,-1947076654,105286616,-745803273,-930400021,-1962254709,1183516758,-773205754,-773140005,1976110040,-1946945548,208074736,172395409,-788273417,1446710386,1913091848,105265926,860750198,1532925650,576093,-326413056,205949779,360038411,-1962258805,-768407482,1183576567,-1947076858,-338545726,-1949791419,1451952734,105286408,-607000111,-657331503,-193607413,-930352137,-1861458185,51013367,990671569,125241430,1178274674,721843718,1444612678,105261836,-150448613,-2082932774,1566245082,838863050,-788077587,-489106966,1426115578,-54989685,-401715200,1048772842,1946184094,-1675690236,16758889,-672657840,1575324416,178379,1459000297,1119483443]},{"sector":4,"data":[-52153856,-488623444,1442087163,-401731724,28901313,-401715200,28836014,1439391232,-1910575989,644376070,2891403,-1070349426,-13371853,201326521,638481627,16000,-234458112,1974355630,1086819322,-1958281692,-1176055298,921174025,-963948538,-1559875352,503736455,-812966137,-164374389,652429663,993395851,1969767430,1465274640,-1184348993,-1477246970,1952013919,1065952773,-1431551165,-92946422,-1993942302,-883089649,-326413056,119428950,-1106880885,1001220724,1074820290,-1760791402,-4603853,-1951468801,-1762923529,-443851169,182877,1475119957,235304703,201313000,-1843366720,-1070335349,-218103879,1238497198,-2130705733,-697675714,-16484906,-1268100586,1596050752,-899816053,1912602626,-1950338283,1942707685,451432696,-466462720,-883038837,250087283,-18432,1575324569,-387697973,-1563754495,-469079957,1048584821,1912825960,1931623436,1914715148,-351948796,1980972038,-1156337662,-1730713184,-1016569693,-135543670,-326413056,-661858421,2123088014,-1178586362,-1359806465,-1857433097,-883033461,-326413056,119428695,-485863797,-1948677338,-141883778,-1359822797,-888940041,1988886155,-1968770296,-919339196,2013218106,1225028612,-1949173943,-1956684095,1439391205,1448602763,856061579,-617375296,1948269740,1946762491,758927607,725353588,1017905525,740259641,-786730448,-1949117981,-772109365,-774712861,64147939,64426969,13796312,1012456683,125145901,-763111177,1591408384,1439391071]},{"sector":5,"data":[-326898549,-1084860662,1586194868,41910534,225907406,1065420402,91465216,-2098610133,864073729,1375855034,41418576,244332543,-1174590744,-21254528,-1185852417,-507825280,-1957604607,2013202014,-1992818942,1451882054,-401698568,1166671015,865681418,-1178457150,-120389630,-1037319629,738084489,-1873784110,-74717170,334906883,1183447126,-61437446,16547459,1182869885,-2127331078,31587414,1074414987,-1728052039,-770967049,1182862453,-2091810566,-16647082,1308622414,-2116949238,129108549,-1190509173,-140967932,1976699897,172329760,-1728027463,-770967049,1166740853,26261770,200931225,-1106872878,82536984,1781710480,1812622721,1367390215,1375732154,-59310256,-1862633729,-93722610,-1207024247,28987776,-1924115968,-1873741242,61466638,17319367,-16520448,1166739525,140348174,3793873,1308619132,140348168,1166795729,-1996477682,280495685,1347590414,-231681,244382326,-1980096792,1018692677,1347590400,722342073,-1924049957,-1873675698,56223758,1183404114,-128546314,-119009648,38111737,-1728037704,1996443730,-159973384,-1326969200,-1207596550,1844904301,239403786,771638787,129590218,-137221376,206932465,1066439,1590135552,1575324511,-700546101,158662766,115871376,-704184576,1469107054,1774630998,-401698736,-997984935,200313602,-385649162,1015021709,-385649408,62390405,-11120640,-1872111562,-187832306,-1207516029,1385762320,63341392,-401698730,-998047045,-1873784318]},{"sector":6,"data":[-100931570,-1989553501,728355862,64982015,4161758,126490996,-1952921461,-1752697128,91554920,1965947264,-8173818,-1948353533,-2132933665,326369343,1342178232,-633929901,-401698711,-997985169,-1962415354,-966141410,512425991,1065380314,1086331649,1583994531,1435552607,-326898549,-1957275900,2088961654,58524424,-2097107479,2114521212,10807555,50887811,2088962430,58525960,-1962901015,-947844484,-8321172,394135490,50887811,1552617845,-1948004088,90845831,216727559,-1953460080,-472840100,1781827467,-134461815,1962935239,-62456061,-2096464757,-947173649,-150901319,-1916236823,-645201595,734147481,178626,-1036781357,-1023163861,100419075,129564676,-101213952,-134457813,142377946,991065347,142347860,2088966773,343671300,-352321096,969050897,-193196476,2088961653,-327417596,1600045099,-883038837,-326412912,1461120131,108432214,-1169063752,1347551233,-1727839091,-1037319629,-754974023,734147576,1347590594,-1494741360,-364475912,-1947445623,-472840098,1781579659,79283851,-101213952,125161995,34111107,-1958280834,-956102074,-1862515063,-31332338,-1728037704,1347571794,-1728046920,1840861266,-137983231,172360681,93964035,-763163068,-1873784320,-128980978,1183565963,-1713730804,-753680125,244338770,-1946665752,239504328,60414603,1389564865,-401698736,-930351063,-1961867637,-1056728614,100913939,370371026,1174497748,-329903638,-1991228275,1183578182,1183401992,205949942]},{"sector":7,"data":[-2081274231,6936126,1183652212,244338926,-2080485144,-1073020220,1853950324,-2096230166,-1962873762,1452010054,-1956684052,-1949606427,1183517774,139889414,1460305547,-1812199650,326418442,1963653507,2043808526,-1439846390,-763110409,-1948584192,-768371977,41205771,-141299209,-746089743,960245764,654574198,197299114,-1998424637,-2035527931,-12285947,989938829,1492284103,-443851169,1392560989,12144902,1276020484,-1706012310,231070659,1275498331,-628336278,57982987,-1950131449,-270865983,-84678400,-326413056,106859347,-16091393,2013202550,238550786,-1980275992,126419543,113925467,-162049792,1946223175,13822051,76283531,57934248,1095354411,74943297,1282733579,158584323,-256196557,-349117441,637998655,1030376609,376709120,998244538,-788106544,-336038422,150635298,-489611918,-1958165877,1942029264,-138398974,1388454866,1509961448,-92074637,-1207601936,-487915504,-1961104391,72821712,-1996208247,2005600383,344541706,-940440766,-1979711996,1499400823,-154104893,1946419783,2005617167,-700756476,1463354738,1110864894,-561229485,78759566,58058963,-166723400,1946419783,-1949957366,728262174,-1950118205,-850742056,1918589217,-155022576,1946419783,1468615172,32241918,-1957182471,2000357495,-1962707702,1034749559,141885438,-31129973,-219418621,-141865137,1426113375,-327029621,1448542422,17464963,2122523253,377356552,-35123568,780568927,343551,-1645673611,670978]},{"sector":8,"data":[113713524,752456,1342374840,1279044250,-129595092,343261195,-974517094,440333,-1962771479,-1543557498,-588547256,-1191676161,-1706032381,743193690,-15436033,1996427894,242679568,-13597043,-163148464,773495376,1183649221,-1766305642,-2037559258,-11469008,1996425846,2078728,926784080,-2033775163,130862,17464963,1048775284,1946909512,13363459,2068332163,-1005685493,-165278114,1946292039,-351227900,-1574916094,1048808898,1963686728,241091598,256374310,-1341885436,-1341986032,-1916558816,2068332163,-1005685493,-165278114,1948258119,-351227900,-1574916094,1048808900,1963686728,241091598,256374310,-1341885439,-1341986032,-1916427744,2068332163,-1207602165,65743977,-1550432627,1996451564,746109176,1354771280,1279122586,-126419156,1345094328,1342177720,1279122586,-126419156,1345096888,1342177976,1279122586,5945388,-126419120,-1792548198,-28931812,1962934845,-126419186,1279061146,374828,-1006546967,-1977217442,-467005625,-2131081591,-2133263770,277725758,28837237,721611520,634976192,1174994946,-1019313926,91558029,-352321096,-138401022,271832,-2131081719,277726270,28837237,721611520,634976192,1174994976,-985759494,91558029,-352321096,-138401022,75224,-1912977911,-11495866,1671039606,-1004759630,1183452766,1194862330,-385649393,-467009355,-13859191,637159051,-2037841914,-1232339158,113704750,-26642,-2037515658,-1873739984,-217716722,-1962621821,1962871800]},{"sector":9,"data":[-297893832,561315735,1352025741,-1746002294,-472776918,539408383,1342180024,1342197688,619187856,-336557221,-1773761201,1253594960,244338688,-346255128,241091820,256346918,-1996487131,-2037646266,1183448874,1200301810,197143055,654257286,-1106294903,1183514625,-62508046,1392906868,-986266726,343342861,-1710065921,231028516,1963196035,-10032893,-1980465527,-53578,1996425846,-1283745272,1996430485,1022139128,-2037699508,1600061230,-899816053,-1957363696,887915500,1017140823,-1964758406,712653326,1220619245,-800683704,550651590,33441479,140413696,-1618222127,792209064,1586177652,-1948004088,-1960400745,-28406798,1082841483,-1996911617,-1958620605,-2133226502,1962999673,-28407317,1221609099,2130593339,-800683230,-867792568,-1979824597,1988873798,-1960791810,2056113742,-234416430,-834237526,-1963047423,-467006906,1183510667,-488692,1467627574,140413782,-1916631158,440400,1589615184,1183521941,1183402192,943128524,21335418,1183667792,1996443858,105313996,-1207602175,65732609,1342179000,-1789260134,941525788,71797370,-32750078,-62486336,33900426,1183320646,1166889978,-1974054658,-466944954,-96040368,-864616624,621168267,726663169,112742592,630870016,1577960825,1575324511,1426065610,-326898549,-1604954366,1183349306,306613246,1946161469,192771938,-1204062784,-1930887164,243172096,-1960217852,-472838562,648585099,-661849205,1988870286,-18160,-1359822797,-114568713]},{"sector":10,"data":[-372113785,-921459214,116106482,-972005749,28835847,-2091717888,1929645694,241077237,-1916616832,-1341885152,-1341986032,-1031305184,-2082477171,1929645694,-28931367,-1974410198,1346373702,-15829249,-401734026,-1024721320,1946161725,1326530,373144948,1035170816,57999387,-335579415,-1956684119,248143333,-326413056,1024214667,1349779463,1946159165,998717,37572468,-2127661823,18549374,2122519156,208935690,151682691,2122516084,108334346,-768884693,783824619,1996443770,142016266,-976371558,112653,783870187,-1070903174,-973039024,-303362619,1350184632,-352321096,2049882351,-783377840,-638906939,707165,-2081649835,1448544492,1342177720,1279366554,-1948742868,1183388743,239504378,460636171,1962934589,21424387,1962936381,15591683,1962936893,15788291,-1207902743,-1202716671,-1706023000,479540080,1342177720,-1791773286,178204,867539536,314055829,-1248178176,-1206086349,-1706033130,743195029,1358448265,-1705983957,479550721,-940024181,1044385863,1198023,-94467328,704923530,-1947169820,1200289886,-1946645755,1200290398,-1191695611,-1202685394,12205450,1397772800,-128021673,704923530,1355164644,1342522765,705054602,1086729188,745125968,1488976,1354771280,-1009870256,783814085,-1248178054,-1207056957,726694446,10113216,-955398714,17684486,1292288,-331940016,860658286,347610261,-1330098176,1285181478,-1206086349,-1202716651,-1706023204,479540044,-352321096]},{"sector":11,"data":[2049882222,-779118000,-253030971,1342177720,1279366554,-1948742868,1183388743,122063610,-1991711702,1183513670,-1981535738,783875654,1996443770,-59310082,-16091393,-241563530,185451977,-1196067648,-1706033130,743194847,2122558187,292885004,1342178488,1342190776,1347469355,-984724070,-667484403,1591536397,1575324511,1426066122,-326898549,-1705617644,479535846,259309579,-788111733,-994081821,57999360,-1962769943,-422508938,12893315,-385649664,-2067332685,101858,12879047,1119354881,107935488,-2054489973,-466971413,-1963309431,-1986728571,-2050492346,38150,-1804565049,-947191808,1351933445,-976821606,96963341,-1705995192,231065314,-570046581,1318736020,-1962031663,-1807219257,-783377840,-1070920251,490183248,1319115925,-773576082,-196704024,1183323180,-196703492,1183323140,-129594370,-772127189,-96075032,754075272,-45709309,82986634,-12154877,1343884984,1358710413,1342185656,1342179000,-1789224038,415192860,-1898410966,-17984,-1359822797,1598673399,-1963569527,-466944954,1183512715,-263812610,731496843,-1946627646,-819204018,-936646191,-1937125629,1183485618,-1981535491,1183510086,-330921473,-772913621,-297401368,-2071377848,246976830,-2071310310,-466973006,1048873552,414732433,-4698070,112742655,244994048,-1206086310,-1974461938,713994884,-2071310108,1077973310,708360272,-18352,440400,1510906448,246946965,-2071310310,-466973006,1048873552,198033,709277776]},{"sector":12,"data":[-18352,440400,1510906448,1048779925,1946163378,-294191335,-327745705,-1192200449,-1202716671,-1873805285,-1813190642,246947819,1183469594,1357130493,1358710410,1358907018,1358841482,1342179000,1156058768,112793,490183248,-1075241835,-1237417216,58065176,-1962887703,-472840610,-1914531841,-1477901452,108432128,1654777553,-494630507,702605,-1962512649,-892894728,773175443,723371088,-14266176,-1207586889,-1873805311,-1875515378,1343884984,-1900903286,243983402,-316003772,-1974419197,714161796,1346388196,1345195960,1358954424,1342179000,-1789260134,773175324,639485008,95651723,17158699,1389499136,112720,-401698736,246976491,-2071310310,-466973006,709103242,-1056707286,1048873552,98839185,-1202716669,-1202704881,-1202651137,-1706033146,479549966,-443850914,182877,-2081649835,-2091512596,1619518,-706149516,106859264,-1081875503,1962934468,11921667,-150977864,-259324306,-1806334838,1183441962,1468304122,-129594988,-781300064,-163149592,1183323180,-163149060,1183323140,-129594370,-772127189,-96075032,754206344,-45709309,83117706,-12154877,1343884984,1358710413,1342185656,-1705983957,479550107,-1794734905,-2067333120,38000,2105556611,-1961921533,-1797388858,112720,-1250387376,1048776133,1946385792,4372504,-1962512649,-557415952,-493201772,1443743174,-976138598,4372493,-1962512649,1220968944,-493201772,1443743174,-976138598,108432141,-2067274031,101858]},{"sector":13,"data":[12879047,-1956773888,46816741,-326413056,1466363011,239504214,460636171,1962934589,29616387,1962935613,28567811,1962936125,23980291,-1207852055,-1706033133,743195029,-1946532215,105351896,1334502442,736963076,1183400129,-1826963458,-1064380276,872415161,-139529536,1317620177,-28931076,-946059639,63558,41861435,-1072971381,1183531646,-62505986,1183515518,-1706653188,-1946650997,-775386146,-1636135447,-1826965619,-1510865130,-1952185997,1452013686,-1706128484,-1826964352,-1962773216,-247773482,1988751996,-1672050184,972965515,427620422,-962824565,-1207919038,-1957691372,453352518,1285181587,-350448333,-59340025,10371782,1342182328,1352550029,-1791800166,1095708,-1851606960,860658256,1048583317,1962972120,1947739,2068887632,-1814513584,-401698736,-997988965,-184105466,-658571117,-1898410861,-17984,-1359822797,-2092314121,745675257,-1812920634,860012288,-1936467778,-17960,-1359822797,-114568713,-24651381,-218103879,-880062546,-1510807087,-1527592685,1342181560,1351866552,-1791790950,112668,867539536,45620373,-1248178176,-1206086349,-1706033130,479540149,1342181816,1342177720,1342243000,1342177720,-1791759718,1161244,-1851606960,4241488,1047435856,512437324,112301976,-1564482605,-1128821359,-1898410866,-17984,-1359822797,-114568713,-372113785,-921459214,28878066,-1960121600,-660403130,-2081166579,1964379262,309265,4438096,1354771280,1313708624,922684869]},{"sector":14,"data":[-543552040,-349418432,-1956684079,181034469,-326413056,1460202627,-28915882,1048772608,1946195968,35055875,1342440632,1279044250,-62486228,141934603,-974517094,33483021,-1191414017,-1706032124,743193690,450772611,-385646848,1048772982,1979487226,982950159,983041547,516163188,451623574,-1812324725,-472783919,1104322500,-786461914,-991702557,-2092838241,-1977219389,808294407,-96040704,450770687,452827728,1183387077,2143292408,19458307,1095760,-1814513584,2013264,50698832,1996426693,5880056,-1826965424,6994000,50698832,1996426693,5814520,-1851606960,16824400,50698832,1996426693,5945592,-1905215408,4241488,50698832,1048579525,1965395568,1916698696,1098186894,-1735495264,-401698736,-997989377,4603138,1279068788,-385649408,636158088,2105411318,-1206291455,-1202716645,-11497872,731139638,1347440832,-2125424048,99290565,-1905260858,1816036096,158662669,1340608144,1958742730,-1900502773,1024327717,1635059200,-1097961281,-661876318,-4603762,-222284801,735180718,-771848199,329642729,-1952124215,112327262,-1564482605,-1128821359,-1176990578,-1070333953,-772296974,-24643285,-1510807087,-1527592685,1996450795,506104,-1905215408,4241488,50698832,1187450309,-352321026,-59310204,1351512248,-1705983957,743194076,-1191414017,-1202705288,-1706033151,743194076,-1191414017,-1202705278,-1706033150,743194076,-1191414017,-1202705268,-1706033149,743194076,1342228664]},{"sector":15,"data":[-1694730497,479537122,1962934589,-1851607005,-401715170,2122514478,443810046,737965823,1996443840,506104,67869264,116067781,-1744828729,1996423169,1022139132,1600007244,-883038837,-2081649835,1448542956,915130667,300650070,2126829963,25830918,2055347908,1090553894,-992375994,-2144991618,-462094279,-1906952567,-1946268023,-2110339874,12985978,-1956684288,80371173,-1812291328,1023419437,58064902,50399465,-13724736,-11968345,-1701578186,479588376,1351866552,-1812316541,-1592625668,101399190,158612120,-1959094623,-348481514,-98661602,-773598829,-761281309,529212993,-472783919,1104316299,1104451467,1375733253,2013264,825936,922684869,412783610,-384002576,922681509,412783610,-1206086160,-2091871838,-57411010,-1767828875,-1744434374,-1593215942,378223254,518732440,-1812324725,-472783919,1104322500,-786461914,-1948003869,-1958620537,88200343,1347551238,-352255816,-97058909,-266823021,1891114133,1048793230,1979487226,982950162,983041547,-1767831180,-1743353030,-1960907974,-778831330,-991702557,641847967,-472834165,-2020875311,-1752481326,101007828,-1202695680,1474887744,-917999873,1850283080,1850306121,-884380087,-1814559034,436651520,113639571,-973041246,9334790,922690795,412783610,236754416,-335624472,-96566507,359924115,1033108129,-495714269,-266823088,1048779925,1979683834,112868,-266823088,-401728363,1439431715,-326898549,-90089976,-49773,1709769589]},{"sector":16,"data":[1958742785,2178376,574432628,-2091551744,-57411010,166265716,982950145,983041547,-35060875,982950144,983045771,-1207889431,1344157346,-32708594,506898104,65539664,-97058818,-266823021,434707605,-96566527,-1149960169,-1812318465,-1779427174,1072172572,16968191,-1812318465,-1779427174,-96566500,1383399315,1358579341,-1812316541,-1592625668,101399190,158612120,-1959094623,-348481514,-98661602,-773598829,-761281309,529212993,-472783919,1104316299,1104451467,1375733253,178256,825936,1183452613,808294650,-28931840,1187448299,-2097151746,2113994366,-25263310,-1960018678,-1734083002,-1309635689,-2115579130,-2138129210,141819964,-401713634,82574674,-82188274,-1812318465,-1779427174,-1207309540,1344143658,-46602226,183236139,503393464,736628304,909854461,-260276814,512442859,-472804358,-1614486575,-1960427054,-773598945,-762868765,-728265919,394561,-401715118,-38208258,412766463,723293680,-1207243786,1344143662,-51845106,-1305068730,-1980728195,-1956710282,1439391205,-326898549,113726984,36438,2055347908,509478,-16222465,-459667850,-1994615330,-1070859194,142016336,1342600959,-1694730497,479586740,-1751644473,1187446784,-1107293442,1187483324,-1962931464,80148558,1086751488,-1497827102,240131638,-1191412248,-1705967619,479588376,-401734421,1048837657,1979683834,-443851019,313949,-2081649835,1448542956,-1207404801,-1706033151,479572077,2123040542,-18168]},{"sector":17,"data":[-1359822797,-1991650825,-242483634,-2146935157,1952251768,-2520309,1988886086,1543554568,-2096734581,611647551,451034755,-1878559488,-508172274,-2053500437,-1977838250,-33476594,704720902,-1950284819,126420574,1342181560,66995851,-11532218,-401698761,-997990781,704560902,-1064380276,-1190627701,-1070333953,-772296974,-645138133,-4587897,1336865535,-372126837,-921459214,1600038130,-899816053,-1957363708,1894548460,1048794711,1962941154,15001859,2145914512,-1706653242,-946055543,1090118,-1996360955,1451857478,-1706652776,-1996362491,1451856454,1097620,-996116853,-1960405410,-1639544569,58048523,-1006594583,-148467106,1971322887,8972547,1352943245,1342177720,-1783599718,2123192092,-1898935132,-17984,-1359822797,1598673399,2055270795,91511971,1554268870,1095750,-1539142320,-1636368560,-1192751472,113542109,-21014953,-1535734487,-1064380276,872415161,-139529536,-1946604591,-1174501415,-1359806465,-775189681,329642729,1587868361,1354771295,1352943245,-1729622384,79987681,1352943245,-1863840112,46433248,2140554883,2140292739,-385649585,1988755277,8645024,1558711952,-1639544352,1352943245,1342177720,-1783599718,-1535210212,-1064382324,872415161,-139529536,1317620177,-2131653728,1952228218,-1605959929,1554268870,1342181560,-1918863733,-11492286,244358774,-2082664728,-21035324,-1535734487,-1064380276,872415161,-139529536,-1946604591,-1174501415,-1359806465,-775189681,329642729,-1918569783]}],[{"sector":1,"data":[-1873763258,-537270258,1577239683,1575324511,-326412853,2122536535,141819916,-1710459137,479571764,-1943401793,-1950314792,-4650378,-222284801,735180718,-771848199,329642729,-5967159,1996425334,-1746399738,-1962467587,1988823166,-18166,-1359822797,-114568713,-24651381,-218103879,-880062546,-1510807087,-1527592685,-899850402,-1957363704,-387153428,-1957275903,1175129158,-385649394,12058980,697978882,-1559378453,378108546,-1039435132,-1070922379,-956193815,9961478,242679552,235697919,-2080590616,9961534,-2033720203,65180,-31947123,-58290864,-2037559042,-1924071776,1358863494,-13244402,-1090748789,1183645697,-1070903042,-1601794736,244338942,-2082524696,-1073019196,-1070902156,-1601794736,244338942,-2082474264,1183646916,-1070903042,-1601794736,244338942,-2082534936,-2037840188,-1072955746,-2037766028,144899744,-1270969555,-1274624134,-1205993350,-11522842,-1191272778,-1873805231,1233119246,1049227403,-24937804,-1987283965,-1232470914,-24904040,-385649663,-2037514432,-11469158,-8747978,-1703247306,479583972,-2076770480,-2110324870,-25755782,1340608144,180650975,-1862371585,-562042866,-16595837,-8747978,-1703247306,231074683,556675,2122524276,242483210,-2146804085,108265535,-1157653933,-2037572459,1343684120,-17004915,-1224781802,1995177628,451034755,-1921747968,385751174,-58290864,-1202710786,1344181134,-16353537,-1694589770,231041521,-2037557781,-1705968104,479571764,1342178232]},{"sector":2,"data":[1342200760,1342183864,-1779747174,176063260,-1961987072,1065355870,1392931840,-1782906982,774551580,26890270,-1206086240,-1705967620,479567860,-31947123,834162710,726670849,-1936043840,-1207057041,1599995905,-899816053,-1957363702,-499219476,812908570,-1900542217,678691328,-16091393,1996425334,1354771206,450770687,-33363954,450758343,1488519164,-1070903105,-848979376,367726021,-16091393,1996425334,112646,-214960,-639103408,113925629,-326413056,511398072,108461904,-6363122,182877,-326412912,755517067,456982573,58619648,-13724736,-2142168153,7230014,1048776052,1946163378,-804862202,721420692,10283456,-1798306105,28835841,9496832,-1798306105,45613057,8710400,-1798306105,79167489,-948311296,26529798,243712,113733355,103632,-352320072,-804862109,-1207959148,1491795974,1850883712,-2096270336,1618494,113706612,103632,-352319560,105286207,954983466,1354191026,1355763907,1357205722,1359958256,1360285972,1360285972,1360285972,1360285972,1360285972,1360285972,1354191006,1355763907,1357205722,1358647536,313949,-2081649835,1996424428,-18426,552078928,-62486273,-1207404801,240189439,-1996549400,1183514182,1038363388,997523455,1040074378,863305727,1342850698,1091075715,146277756,721611520,-28407104,-1056707286,108954448,-1207600063,48955400,1317716011,65874684,1687834817,-1961061064,113925605,-326413056,1460464771,964694]},{"sector":3,"data":[5486672,-350315952,1183390869,2109737980,-339727612,964724,3520592,-350315952,1183390869,2092960766,1352290536,-1994615319,-1072957370,29285244,-92370176,1996431083,1095926,-350315952,-125100907,1979481659,-1983476982,1988754046,1177480180,2146989627,-25755872,-396322218,-661971819,-472783919,1104322500,38243110,-2081012087,2097217150,-92370499,-336300407,-1956684152,1439391205,-326898549,964616,3520592,-350315952,1183390869,2109737982,10348803,-380593584,1183390869,105286650,2113553977,9038083,1358853887,-1779933030,-774337764,-991702557,641847967,-1996339317,-1072957370,-1202689156,-1706033136,479587102,201082505,-1202422080,-1202716658,-11534253,916126838,-14903829,-2089264074,1979513982,982950162,983041547,-1767831180,-1743353030,-1960973510,-472777634,-1614486575,-1960427054,-773598945,-762868765,-728265919,394561,616058962,211439616,-1962031872,-2069690810,1575324417,1426064074,-326898549,-1202301166,-1202716669,-1706033052,479587102,1962940477,1376175621,113705326,38096,1342181048,1342191032,-1779753318,-62486244,58572811,1342497257,-1710852353,479586400,-472786805,-1614486575,-1960427054,1183384135,1069043964,513429504,-1994615317,1996487238,4241660,-350315952,1183390869,-92864524,1342191288,-1779753318,-28932068,-1030520,918090870,513429504,-2011392533,1183381062,1354771448,720782986,1183469796,-401714946,1048837522,1962940594,-92864676]},{"sector":4,"data":[1342192056,-1779753318,-28932068,-1191938305,-1706033095,479587102,-2131343736,1946222206,-25264107,-1206946944,-1974468588,-466946490,-28931504,2122325739,225785086,1342182584,1342188984,-352304712,1357835,4307024,3455056,803737168,-92864515,1342191544,-1779753318,-28932068,-1191938305,-1706033097,479587102,-1963571576,-466944442,1183510667,-1191670794,1464860673,-68678058,964860,240539472,-1963134488,1183383110,-92864526,1342191800,-1779753318,-28932068,-1191938305,-1706033096,479587102,-1191819640,-1974468603,-466946490,-28931504,-1142419888,-92864516,1342192824,-1779753318,-28932068,-1191938305,-1706033092,479587102,-1191819640,-1974468602,-466946490,-28931504,-1947726256,-92864516,1342193080,-1779753318,-28932068,-1191938305,-1706033091,479587102,-1191819640,-1974468601,-466946490,-28931504,1541934672,-92864516,1342192312,-1779753318,-28932068,-1191938305,-1706033094,479587102,-1963571576,1178138694,-1977125386,1178136646,-1205897730,-11534306,1287189622,513429504,1344050667,-1191545089,-1706033076,479587102,515378667,1183469568,1357130486,1358841482,-67311602,414334595,-1977715712,-466944442,213446795,1448497152,-68884466,1342181560,720782986,-346664732,-25264077,-1206880972,-1202716652,-1202716627,240123969,-2130984472,1965948542,833545,3455056,213387243,767053824,1183469568,1357130494,-73340914,721307274,-1963947036,-125045178,1342180792,-401713577,1048837002]},{"sector":5,"data":[1946163378,1030154,240539472,-1191478808,-1974468605,-466946490,-28931504,1743261264,-193527813,1342183864,-1779753318,-163149796,-1191545089,-1706033127,479587102,-1191295352,-1974468604,-466946490,-28931504,937954896,-193527813,1342199224,-1779753318,-163149796,-1191545089,-1706033067,479587102,-1191295352,-1974468579,-466946490,-28931504,132648528,-193527813,1342192568,-1779753318,-163149796,-1191545089,-1706033093,479587102,-2080487800,1618494,263721589,1183469568,1357130486,1358841482,-86972402,720782986,-1963947036,-125043130,1342184632,-401713322,1183513274,-1981535502,280555078,-11120640,-401674634,297335462,-11120640,-401674634,314112666,1465274368,-91166706,1342182328,-401713322,1996487302,4962554,-350315952,1183325333,-193527810,1342196664,-1779753318,-163149796,1342180024,720782986,1183469796,-401714946,1996487254,5093626,-350315952,1183325333,-193527810,1342197176,-1779753318,-163149796,1342180280,720782986,1183469796,-401714946,1996487206,5028090,-350315952,1183325333,-193527810,1342196920,-1779753318,-163149796,1342183352,720782986,1183469796,-401714946,1996487158,5552378,-350315952,1183325333,-193527810,1342198968,-1779753318,-163149796,1342183864,720782986,1183469796,-401714946,1996487110,6273274,-350315952,1183325333,-193527810,1342201784,-1779753318,-163149796,1342183608,720782986,1183469796,-401714946,1996487062,4110586,-350315952,1183325333]},{"sector":6,"data":[-193527810,1342193336,-1779753318,-163149796,1342184120,720782986,1183469796,-401714946,1996487014,6404346,-350315952,1183325333,-193527810,1342202296,-1779753318,-163149796,1342184376,720782986,1183469796,-401714946,1048639798,1946185298,-801209588,91488404,-984616294,108461837,-98310130,-443850914,182877,2105411318,-1878559743,1328015374,-778435093,-1710373590,231070457,-326412853,-2096960381,8078910,1048778367,1946163380,243822,91797584,1451334224,1609243797,2054948551,-2069757953,-28931839,5498894,2054962819,-1591771906,994088954,1946256390,-1745182443,-401715136,-1070859659,674142800,-401728363,1048838030,2113895036,2084471759,460717434,956400801,326434374,251557631,737823976,781865152,236754216,-1946196504,1439391205,-326898549,50575364,1017813584,1183394892,1975520252,-368272889,1827343813,-1191414017,-1706032381,743193690,-1191414017,726674552,-593866560,-13874115,-2101805962,45633580,-593866752,-13874115,-1766261642,28856364,-593866752,-1205056451,-11534030,-493159306,-1994615513,20840006,1023898624,175374338,113708779,-99716,113706731,-165252,-1694730497,743193836,-883038837,-2081649835,1183516908,1183399944,964858,3520592,-350315952,1183390869,1996443902,-396322054,-661971819,-472783919,1104322500,38243110,1358448265,1342181560,-1779753318,-62486244,1023833855,309723132,188389025,1949997062,982950153,983045771,1586175467]},{"sector":7,"data":[-773598724,-761281309,529212993,-472783919,1104316299,1104451467,1375733253,2406480,825936,-443871803,313949,-2081649835,1448568044,-1928825089,240179782,-1593875992,-466972332,-1856893302,-1054085846,1183402056,-1471756640,-1505310944,1317732353,-1962284122,-649950479,1101546120,2055270795,-277544743,-1952035191,53321798,2126592768,-1605989600,-1996487891,-1054106042,-1331935607,-1672574176,380140173,-1951731193,1174510662,-1602843738,-1979453821,-467006906,1183512715,-1673098996,-1857014017,1464877120,1353205389,105313878,-1207602175,65732609,1342179000,-1789260134,1344178972,71797393,67913218,-1538881534,33900426,1183320646,1183536034,1464877212,715409034,1183469796,-1957277534,19203654,-1070903296,440400,2032507472,1599999429,-899816053,-1957363704,49054700,-2003742048,1183579718,1195282,2037850484,208977931,1946161213,1129826,267064948,-344242527,242679674,235960063,-1191291416,1810563073,964380321,-210563514,17188598,1183516276,-1745181938,721307274,1183469796,1996443656,108461838,-21698546,1185010155,239483259,-1070922638,1183528427,-1745181938,1342177720,1278727834,-1196102868,726700358,1704612032,-351418931,1260966,339595380,1033663488,-1754005482,1946164029,-1953436792,248143333,-326413056,1024214667,1249116167,1946159165,998711,37570932,-2094500607,1946749566,176063245,-2130217957,18549374,-1070922123,921424427,1351698104,-16091393,-1063647114]},{"sector":8,"data":[-1207056947,-387252223,1351698104,-1705983957,231065088,1186524651,28856465,-1192236288,-1705995962,231067982,-899819029,-1957363702,149717996,28857943,-1785049088,-1960031167,340233176,-1946532215,-1073017274,87892852,-385649408,121438518,-385649408,138215805,-385649408,171770084,-385649408,-739704538,-670644480,-956301043,7032326,112640,679786576,863017552,28843157,-1248178176,-1206086349,-1706033150,479540149,1342181816,-1791773286,1292316,1100323408,1183394892,-1070903048,1560386128,330833045,-543535104,-1960031168,1204287582,-950300656,4679,1208059041,-1952974173,1200290398,-1947981308,-128021520,-1962588278,-94467080,721766282,-1857636104,1525004368,1375731898,-1957211312,1200289886,736373252,1166889158,1200246789,736373254,-1202700090,-1202684608,-11534317,-6817226,-1701316042,231064526,-1853618490,1913046790,-1207959151,-1202679482,-1706033151,231065088,-385875528,1048772762,1962961742,1309067056,-956300949,9531910,2084471552,343211898,1351698104,729447585,1351698950,-1705983957,231065466,1351698104,-976121958,-1857636339,-779118000,-1192555067,-1559476597,-1326772776,1342177720,1279366554,-1948742868,1183388743,122063610,1183441962,105286396,-1191295351,-11497146,1996488310,175570940,-1710721281,231066097,58048523,-1191217687,-1706033133,743194847,-1577096727,2091094346,-10425990,-443850914,707165,-326412912,21163137,949891,-1092025484,112640]},{"sector":9,"data":[688830544,863017552,28843157,-1248178176,-1206086349,-1706033150,479540149,1342182328,1279366554,-1064924884,-1965519874,-467007929,704925578,-1983829011,-2130788730,51953214,922695284,-1070884866,-1002009264,-1098478768,1346914558,-1782881382,-1002009316,-14790634,-1919423434,385795206,-1069114800,-998040427,-997815028,-1746099202,1342182328,-1746127105,-21055745,-1783028070,-1031370468,1161470,-1028194480,-1095303170,-1188652290,-2037834603,314113730,-1224781824,-1224737086,647691966,-954427975,17684486,-2096305408,1963265662,205949702,-1207052125,-443875327,707165,-2081649835,45614316,-1432727550,-1993585604,-1072956346,211421045,-351418902,-59310247,1342309048,1279023770,-59310292,1345130680,-1705983957,743194076,-1191414017,-1202705128,-1706033151,743194076,-1559738741,1183553516,-1744919802,1342278840,-1694730497,479537122,-113015,-325387146,-2094248900,1963064958,112645,-1070923029,-899816053,-1957363708,-1997766164,2122536704,57933838,-1207914263,-11534335,-1703052234,479540080,1342177720,-1791773286,1226780,867539536,45620373,-1248178176,-1206086349,-11534316,-1701737930,479540044,1342181816,1279366554,2055637292,-1965519873,-467007929,704925578,-1983829011,-1073776506,-661902046,-4603762,-222284801,1238497198,-1903605431,922746748,-1070884866,-1002009264,2022083408,1354836991,-1782881382,-1002009316,582504470,-1924129235,385842822,-1069114800,-998040427,1161228,2122747216]},{"sector":10,"data":[1285181695,-954428109,17684486,-2096305408,1963265662,205949702,-1207052125,-1956708351,181034469,-326413056,-1207505789,-1706032381,743193770,200951433,-1710590528,231074316,-1712734165,-92864768,1342374840,1279023770,-92864724,1345130680,-1705983957,743194076,-1191545089,-1202705128,-1706033151,743194076,-1191545089,-1202705278,-1706033150,743194076,-1559607669,1183553534,-1853185274,556675,146277748,-1207702744,2091067426,31373437,-92864688,-1792548198,-28931812,-1694861569,743193836,1040074379,292814849,1946157629,1195269,1187451252,-352320004,-62470395,1183514626,-955782148,326726,-443812629,445021,-2081649835,2122533612,57933838,-1207893527,-1202716671,-1706022848,479540080,1342177720,-1791773286,1292316,867539536,45620373,-1248178176,-2095278797,9696830,1522009460,-1207702744,1344156416,505964728,-1169781424,1184518166,-2095278656,297274564,1183666176,1285181626,-1206086349,-1706033129,743195029,-1950857591,105351896,1334502442,736963076,-1236891199,-1746258177,-1924087765,-11486650,1671083638,-1206086213,-1924136937,-1705985466,479540044,1342183608,-1906034945,-1791800166,1226780,679000144,860658256,364387477,-1785049088,-1993585599,-661931962,705054602,72321764,-1054085846,-4831607,729411126,1183666368,1996443834,-1151100234,364387477,1183666176,1285181626,-1206086349,-11534314,-1701607882,479540044,232261319,216727553,84835971,1183516277,232301324]},{"sector":11,"data":[-1962933832,181034469,-326413056,11463809,62412375,-1432727549,-1993585604,201282694,-1710590528,231074316,-1779843029,457607682,-1560280795,1183552502,2045682488,-1556724085,1589942250,2013210162,1354771211,1354647181,1347469355,-975879014,-1673083123,1988821000,-1673068644,549339846,-6523253,1120312390,1988829374,-1673068644,683557574,-10975545,548929536,1030432,379485837,-2085883385,520050822,1354450573,640835268,639334399,723089407,244338880,-948950296,16734342,1485736704,1090644991,2055270795,-143384418,-10973559,2099181955,2013228,-2037792469,1988886354,-1946580068,-1914056248,2072886898,385320862,1940255239,-2037668863,1174536018,1485177244,-1669952513,-962836737,-1960788414,1186962550,-1099789005,-1064380276,872415161,-139529536,-2013713455,-219557378,-221703259,860274596,-4597620,-222284801,1238497198,-1952690687,1191156854,-1102920036,-1669952727,12468934,723416831,-2037559104,726728538,-1706012480,231068996,144459463,-1669952768,-962836737,553605762,-6523253,-2100913082,-1960771750,1191156854,1518519964,1183656191,1996443835,544669474,1342177720,1156058768,1485227887,-1962934017,-335587186,-242532095,547256960,-1903560844,-108789928,-1204978402,-1054146530,-11368823,-1952680309,-775386119,1521651177,-1636069889,118945671,24356338,1384549284,-1673133569,-10975743,-6523253,-2100913082,-1960771750,1186962550,1521650995,-1898410753,-17984,-1359822797,-114568713]},{"sector":12,"data":[-372113785,-921459214,1186964722,-1176990669,-1070333953,-772296974,-1672609463,-6523253,-2100913082,-1960181926,-2100913034,-1929314470,-2036089274,1518767507,-1906007041,-11225345,1342374840,1279023770,1421279020,756070655,1354771280,1279122586,1421279020,756594943,112720,1037867600,-1224790964,-2101805228,45633580,-593866752,-1205056451,-11533776,-1694542666,479537122,-4438391,-1694542666,743193836,1035749003,309592065,1946157629,1260805,-2033773452,393046,-2033776917,196438,-11106677,-2033776405,327510,1600058091,-899816053,1435500596,-326898549,-1274624154,-953710470,956474886,-1706652416,-1729622448,1958742788,112652,-1706652336,-1444409776,1575324423,-326412853,-949556093,-1837452282,-1509505241,-1929361918,240163398,184838888,-1207143232,-1924136957,240163398,-1962443800,-942973467,-1669680122,309287,1354771280,124184590,-1274624053,-1205352838,726663170,-401715008,-942995628,2088416262,374825,1354771280,121825294,-1274624053,-1205360518,726663174,-401715008,-942995664,-1166363642,505895,1354771280,119465998,-326412853,1460464771,2117503830,-754798211,31884270,-150992200,-1946645530,-1953248635,-1986802539,1451883590,-964326402,-929723501,-196703853,-1946790263,-1948003874,-1988254841,29096518,-773969152,-1551397917,-129595011,2058618567,1996433398,-59310082,-193527982,-1696067952,1975520019,9496835,2105556611,-385649405,2124480646,-773271171,75240]},{"sector":13,"data":[-150977863,-1797388831,1354771280,-976394854,-2143386867,1685389949,-780304735,636015080,19726337,-1948715264,702704,-661920009,-1946401141,-2026242474,1081447370,-1815308487,1183529589,-129615366,1119359614,99022592,-1202678562,-1706033151,231065735,-780304735,636015080,19726337,-1176963328,-503906238,1351933445,-1705983957,231066981,-443850914,-1957311651,149717996,2105450838,-388896559,-1191182043,-503906294,-2071203701,-1802791990,1183421388,-27883012,-1815706485,-1815571317,-1980217719,1996487254,-59310082,1872384082,-15874654,1996488310,-92864516,737703679,-1063628608,-1962031711,-1317175754,-2081500414,1119355366,99022592,-1957653282,-1846818,-1703042121,231066981,2105556611,-1589938942,-388924034,19261649,77056,-259270409,-150992200,-1948742682,1452014662,-897107458,957838739,1972620439,4372497,-570038537,-1070903148,-848979376,-1956770363,1439391205,-326898549,2124502536,-773271171,75240,-150992199,-1947169823,-1953248636,-1986802540,1451883590,-964391938,-929789037,-129594989,-371063,1996488310,-1706011908,231055983,-100609,1996487798,-126418950,1342177720,-979255142,2117503757,-754798211,31884270,-150977864,-1797388826,-773944496,-1548222493,-848979331,1048776133,1963097472,2105450811,-388896559,754975013,-654901247,179892363,-1947797760,-62485544,972969611,1972619911,-862504681,-1206815341,-420020158,1351933445,-1705983957,231066981,1575324510,-326412853]},{"sector":14,"data":[1459940483,2105450838,-388896559,-1191182043,-503906294,-2020878197,-1752460342,1183421388,-27883012,-1070903214,1872384080,-15874654,1996488310,1354771452,112720,-1581213104,915082693,45186430,-427561261,702465,-125049097,-1815562753,-1815693825,-1815300609,-1815431681,-978270822,-773944563,-1551398429,2105450877,-388896559,-1191182043,-503906238,1351933445,-1705983957,231066981,2105556611,-1589938942,-388924034,19261649,77056,-259270409,-150992200,-1948742682,1452014662,-897107458,957838739,1972620439,4372497,-570038537,-1070903148,-848979376,1599999429,-883038837,-2081649835,-1588197140,-388924034,19261649,702720,-259268105,-1815444341,-1815309173,-1979955575,-2071200170,-1802791994,1183421384,-94991880,-100609,1347615862,-979210342,2117503757,-754798211,31884270,-150977864,-1797388826,-773944496,-1548222493,-848979331,1048776133,1963097472,2105450811,-388896559,754975013,-654901247,179892363,-1947797760,-62485544,972969611,1972619911,-862504681,-1206815341,-420020158,1351933445,-1705983957,231066981,1575324510,-326412853,24964225,84260950,1017813584,-2037830580,-1072955772,211421813,722322922,13691328,-24856833,1342506424,1279023770,-2038002388,12079358,-401715199,2124482862,-773271171,75240,-150992199,-1012767,-7091020,-7091532,-7092044,-1919695180,-1924097466,-1705994682,231026202,-24856833,-24738163,1354771280,1279122586,-2068381908,-1706652162]},{"sector":15,"data":[112720,1037867600,-1224790964,2025389700,45633580,-593866752,-13874115,-1191279434,-1202705278,-1706033149,743194076,-24856833,1345096888,1342178488,1279122586,105286444,-1198625629,-11533662,-1694595914,479537122,1033389705,125108225,26494663,-955913472,37958,-24856833,1279061146,-1807316180,1575324510,1426064074,-326898549,-1957275788,-1073017274,20783220,1031762944,175374341,1962936125,9431299,1183516395,232301324,-385875528,28836336,922701824,1889172148,-1206086349,-1706033151,479540149,1342177976,-1791773286,1423388,867539536,280501397,-1070903296,16758864,1354771280,-1791759718,1161244,112720,5224528,112720,871012944,28843157,-1332064256,-1205056447,-1706033135,743194847,2122553067,292885772,1342178488,44447487,1347469355,-984724070,-667484403,-2082673907,1946225790,-9377533,9586375,1161216,-1706652336,6666320,1047435856,922692684,1183682156,-862302054,-1961060932,-2138149858,1949958527,1226762,485537872,503380713,-1174697209,-1070333953,-772296974,-1873901239,2097412483,1226762,487635024,-1962878231,-2138149858,1962935167,244339479,-2084430360,-1073020220,314061172,-927444992,12183836,-1953466741,-2138149858,1952251768,-1807315479,244339536,-2084387096,1183384772,1975520142,-1807288804,-955354096,26108422,-1840855296,-1964441599,1644611328,-352321394,-1904311312,-9997054,-1701942218,231026530,-1952954743,1815479280,-2012968306]},{"sector":16,"data":[80120902,-8617984,-955419300,9331206,-1840855296,753598465,1351894669,-1905510657,1625820816,79987650,193873545,-1193511744,-11534318,-1070887306,-401698736,-1706021711,479540044,-1952948597,-1970377674,8948806,314054123,1996443648,1354771342,-1897394544,1285181484,-2095278797,1946194558,1648263974,527761550,-978217062,-1773762291,2113929533,1226770,519354448,860658256,1187454101,-1962934126,1600033350,-899816053,-1957363702,653034476,-1751493033,-1995586127,-1399130554,186422719,-385649216,2124481073,-773271171,75240,-150992199,-1947169823,-1953248636,-1986802540,1451883590,-964391938,-929789037,-263812717,200431241,-1206880830,-1202716669,-1706031752,479549057,-1962547735,37554246,-385649408,71107028,-385649664,113706450,668105396,-100609,1996487798,-260636686,1347469355,112720,-401698736,20797910,-385649664,512427434,-338592386,-477893679,-991702783,-1070859146,-91977434,-1551398651,2105450877,-388896559,-1191182043,-503906294,-1070868341,-1815574647,-1815705719,-165224821,33929095,1392908916,-887041,261812342,-15874648,727121526,-1706012480,231027199,2105411318,-16026360,1996488310,-401698564,1996445313,-59310082,1347469355,-722989424,-25755855,737965823,-1588571968,-388924034,19261649,-40218624,-1592932997,-388924034,19261649,4372736,-259268105,-1796963129,-570097664,-1070903148,-930637232,915082693,45186430,-427561261,702465,-661920009]},{"sector":17,"data":[-1815834752,4372484,-570038537,-1070903148,-848979376,1048776133,1946320256,79751427,-1953246047,965989910,1955842566,78702851,-1815341511,-1477901452,2115930884,-773074563,31687659,-150869117,-941370917,8233863,2105450752,-388896559,754975013,-654901247,179892363,-1947797760,-1983894568,-1986803577,-7092601,1996488310,1448104188,-981729894,2105450765,-388896559,754975013,-654901247,-150977863,-940536863,9757828,-1797389056,1354771280,-976713830,2105450765,-388896559,754975013,-654901247,179892363,-1947797760,-997228328,1119356051,99022592,726701278,1704612032,-384973363,113705990,669285044,216534672,-364476147,-1962674711,19728454,474368,-387382410,-1816132864,-1599602898,-159480977,235634177,184851944,-385649216,1187447758,-944263944,64070,31868615,12445952,2123040542,-18170,-1359822797,-1991650825,2122573902,259981814,-1878624513,-1099896818,184730755,-1961134656,1979967606,-8617978,-972065700,1191140356,-396456984,-972652917,2122514433,141886216,-1161874760,116064256,-1162199880,1183383552,-94991880,-1317175647,636015365,1183383553,-950866970,-1027475386,-1778759993,-431569124,1105920000,-738703673,-96024634,1877540864,-129579009,1187461542,-352321286,-129579040,1187498883,-352321286,-129579052,1187476185,-351418886,-798035000,1869542254,2087673455,-1804629905,-364460177,1187446785,-1593835284,-388924034,19261649,702720,-661921289,-1815443573]}],[{"sector":1,"data":[-1815308405,-1979955575,1589968470,-2020923652,-1960442457,-1996117609,1451880518,-1308910862,1183518149,-230290448,501810037,-398030079,-1996077565,1586289734,-360807458,-385649403,1183514888,-330941962,-35060868,-262224896,491227942,525830950,-1996262237,637761046,538003446,-840367243,-330891520,17333891,2122516084,343212808,-1906164093,-15895552,1996480118,-1705834788,231027896,721420735,-25755649,-231681,1996485238,108462064,-1280257,1996486262,-127991834,1038763657,2020933638,-1954708831,-1988262890,1451876934,-529101852,-16032789,29253493,-1815437056,-1815341429,1977763385,-464111353,-164953483,2105556611,-1592560382,378246100,1178178518,956790242,41280598,-166988245,1996427380,-495517724,-1705983957,231056625,1589966987,-2020923678,-1960442439,-1996113001,1451876934,-498693148,1977894411,-529102435,57999115,-1979753239,1956770942,1981188867,-263812861,200431241,-385649470,-1070858513,-1560054109,104399732,192166472,-624897,2073753206,-2095278669,1946544766,2105450801,-388896559,-1191182043,-503906238,-1132203893,1962972290,-2105227495,-1207959148,726663194,-11513664,1351906996,-1660989360,1187484778,-1593835282,-388924034,57868712,-1107260183,1988727754,-498677792,1187484614,-1953216294,-8130946,-1592560383,378246100,104436694,108368842,-1815341511,1962875764,-1959461118,39095044,1376121349,-1649239472,482610629,-259552986,-2143386875,359924605,-2072949,939459191]},{"sector":2,"data":[-1941877,939459191,-1786172774,-629735652,-1705983957,231066981,-2096445821,-2096439226,-2096438714,1195563590,-780304735,75240,-1972123845,-1578205559,-388924034,19261649,4372736,-661921289,-1803370621,-1708624896,231059863,527810571,-780304735,636015080,1119420417,98694912,-1202678712,726663200,-1063628608,-1710373427,479576072,-780304735,636015080,179896321,-1948125440,-860356648,-893911149,-1289577837,-1073017403,915096180,45186430,-427561261,702465,-661920009,-1815834752,-2143386876,611648125,-1953246047,965989910,1972619782,-870958825,-1206815341,-970260479,-150992199,-2133292063,76792975,-443850914,313949,-2081649835,1448546540,-978217062,-96040691,58048523,-1962894359,1174603334,-196703992,-73728213,-1592932943,-388924034,19261649,702720,-661921289,-1815443573,-1815308405,-1979955575,1589968470,-2020923652,-1960442457,-1996117609,1451882054,141986808,1589907947,1200301814,1468737053,-163149537,-1946659191,1175189062,993359096,812907134,653680324,538003446,508024948,-1705834922,231027896,66078345,537183984,-193578170,1586217074,509684,-1980596599,216729718,-1980596599,1586169974,509448,-443850914,313949,-2115204267,-1207889172,-1706032124,743193770,-17922423,141934603,-974517094,8579341,-17910017,1342440632,1279023770,-259617492,12079358,-401715199,-1224737018,-2037514514,726728432,-593866560,-13874115,-1191252298,-1202705288,-1706033151]},{"sector":3,"data":[743194076,-17910017,1345094328,1342177976,1279122586,-289997012,747419902,243792,1037867600,381168716,-1224781821,-493158674,-1994615513,-1224737210,-325386514,-2094248900,1963064958,112645,-1070923029,-883038837,-2081649835,1962937982,112707,667334736,863017552,28843157,-1248178176,-1206086349,-1706033150,479540149,1342182584,-1791773286,1161244,1354771280,1342243000,-1705983957,479540202,232261319,887816193,84835971,1183516789,232301324,2122524395,544538894,336363139,79171957,922701824,-1070922982,1301958736,-1207057074,-1706033151,743194847,1560281528,1426066122,-326898549,1715372806,393547277,224802559,1342182328,-1779753318,-96040676,16664263,-1593054464,1183386982,-28915718,-828309503,-28955793,201082505,-15369024,-1705969034,231024494,-244087,-1705969034,479586528,1349503160,-1705983957,231066981,-981971302,1575324429,-326412861,17624193,450903683,-2096139264,12552766,664406132,-384002645,1048772913,1963855206,1714880279,1292301,-350315952,1183390869,-96024578,199950336,-1995610463,1187511878,-2097151494,2080439934,1875812633,-1980086741,-1072957370,1996426364,44538622,-1073017403,1048779391,1962940596,14674179,1342178232,1342535864,-1789492838,13625628,-100609,1996488310,661560056,-1706029627,479586400,-1946401143,-773598760,-762868765,-728265919,-192509631,-157906434,-190921474,1200301822,-28931838,322929446,-1706026635,231015079]},{"sector":4,"data":[259309579,1345575608,1345579704,-1782964838,-8852708,448331382,513429504,-1994615317,-1072955834,-2037562242,1343684344,-50430333,-1767828875,-1744434374,-1593215942,378223254,501955224,-771858805,-991702557,641847967,-472834165,-2020875311,-1752481326,101007828,-1706012160,479571314,-2033842709,-2147418376,16709822,-1866988172,-1207702753,-1873793943,622651406,57982987,-1946268440,1439391205,-327029621,1448542560,-15698177,-1164308874,-1995586149,-1979764602,201274006,-1710524990,231074316,-385874504,2122515133,57999366,-16664087,1996427382,209125134,-1928694017,-1924097466,1358900870,-986834278,-1702982387,-13322611,-1064382324,872415161,-139529536,-2013713455,-219557378,-221703259,172395428,1946961419,58244906,-13322611,-1064380276,872415161,-139529536,-1946604591,-1174501415,-1359806465,-775189681,329642729,-5967159,244320374,-2085239064,-1232272700,119471924,-1190625653,-1070333953,-772296974,-645138133,-4587897,1336865535,-372126837,-921459214,-2037537550,-1202651442,-1924127076,1358902406,1342200760,-986162278,884903181,-1898935041,-17984,-1359822797,-2092314121,242631417,-13859129,113770495,354411,-2037575189,-1873739980,-1241126898,-1996307325,-2080428922,16723134,1589921652,1207903758,-297893870,544538519,-20019571,-299988400,-771806569,649592803,505888,4962384,-401698736,317398887,-20019571,1798766416,4962408,-401698736,-2037833519,2062155424,241091585]},{"sector":5,"data":[-1213759450,-2037516539,-1202651486,-1924136944,1358902406,971509392,113542070,-166989685,-2037575308,1448148686,1342196920,-1763176816,-1207702752,-125108223,1946419075,750684617,716605951,33522687,1743324020,850853886,817299455,-1064923649,-1706027266,231028063,-13590844,-21461365,222791974,256346918,-1903509462,-315949385,569098507,-13453569,-13584641,142016286,-986357862,815711245,1204233983,637534221,-1341175925,1200170518,172395279,1946961419,173982731,189237798,49004798,-1631321680,-2010710224,-2144990393,654119271,538005376,638475972,95651839,1996444422,175570700,1347469355,-13453569,-13584641,1793592976,815711395,650128383,639321993,-1961277559,1175128646,-1006078964,-2144990626,-1005579953,654258334,-284072064,291995686,276234235,-15829249,1996426358,-1705834998,479566993,185222795,192220230,638475972,95797123,-1961724672,1175128646,-1004702708,-165279138,1946423623,815711251,1333798655,1589905425,-2013321714,350946741,-15698177,1996426870,175570700,-1705983957,231055808,1577058744,1575324511,1426066634,-327029621,1448542432,-15960321,1996425846,108461832,-13334899,579243344,446320895,-1928477394,-1543555962,-1098159280,79232800,-1432727548,-1960031172,1979059184,-368272878,-1070920251,-14631287,-13453687,1442887145,1342440632,1279023770,1773688364,62410796,-593866752,1445743677,1345091768,-1705983957,743194076,746764374,112720,1037867600]},{"sector":6,"data":[-1202312116,-1202705268,-1706033150,743194076,1342405304,669162070,20782229,1447064832,1352287885,1342203320,1342178232,1279132570,612797740,1183666431,-1070903142,912759376,1996426693,175570700,-16222465,-2037578122,-1202651356,240123905,-1946405656,-1090262024,-1705639931,743193836,1963196291,-12654333,-14631287,-13453687,1963065219,112645,-1070923029,-443850914,576093,-2081649835,1183543020,1958742798,81178,669582197,343297,384369525,474369,-2098658443,-1199904000,-1202716671,-1706022922,479540080,1342177720,-1791773286,178204,867539536,314055829,-1248178176,-1206086349,-1202716653,-1202716671,-1202716660,-1706033151,479540202,1342182584,1279366554,-96040660,1200281739,-1964758522,-316013489,1183433003,1345781650,1354771307,1351894669,-1701677313,479574883,1342182584,1351894669,-1791800166,112668,-2097104663,1963003006,1292532,-1807315632,6666320,1047435856,2122329164,427098260,414465667,-1207077888,-1202716669,-1706031752,479549057,-2098610133,6076416,-1807315632,-401698736,-998002405,1958742788,1423536,1100323408,1183394892,-1965519878,-467007929,704925578,1086401517,-1191295351,-1202716651,-11526486,647691894,-1994615367,381221958,1996443648,-25755652,-1783028070,-1952060644,-660403130,-10098419,302808707,79171957,922701824,-1070922882,1301958736,-15874738,-1710368714,743194847,-1946205463,181034469,-326413056,1443425411,-780304735,636015080]},{"sector":7,"data":[179896321,-1948125440,-964391952,-929789037,-129594989,-1946528119,-1953248636,-1986802540,1451883590,-128006914,424119078,457640742,-625470860,1085820979,496652340,-1206086214,468385797,-362753,1996486774,-59310082,-1317175647,636015364,240123905,1577059816,-883038837,-2115204267,1459675884,-1815699114,-1815603573,-14645623,-14510455,2105423499,-288161103,-1962809725,-1948003874,-1988254841,-794692026,-770274413,-62486125,-1140959607,-567607295,-2020875311,1183415715,175570928,-16222465,1996426870,646352140,1183666431,446320874,-1928477394,-1202680762,-1924127076,1358898822,1342200760,-986162278,108954381,-1926663168,1358898822,-1202667477,-1873793943,-483268594,-14383479,1962935357,612812552,-352320001,616465165,108331775,-14383417,-1098711039,1946287908,612797191,44493311,385369741,175570768,-1710721281,479571314,1358448269,-1782906982,646352156,244338943,-2085585176,-125107516,326434571,1351370381,1751856895,1342197176,1793592976,-1207702757,-259325951,1946418819,-394360368,-14371191,1946353283,33456901,1996463989,209125134,-986766950,-330921715,-1157495,1996425846,242679560,-1710459137,479564873,-1980610935,1589965910,-1879103992,1392903603,-1149185,1996483702,209125134,-1595404656,-330921057,1961772555,175570754,-16222465,1996484214,-1589208340,19205573,512133376,-329333505,289901350,-1903428828,-506331362,-1056185903,289900838,-1769214172,-494665954,-754667263]},{"sector":8,"data":[650251234,-1005500535,-14284706,-1593461361,-388924034,19261649,702720,-661921289,-1947056501,-2021002154,-1752591418,1586205640,-2013911544,1946289591,1381172745,838834768,915082693,45186430,-427561261,1226753,1354771280,-472785269,2107869067,1119375432,-1947797760,213385176,1354771349,-1667608496,-1962031748,-1317175754,-2081500414,179831270,-1947797760,-997228328,1048773779,1946320256,15067395,-1953246047,965989910,1955842566,14018819,-1815341511,-857144460,-62485760,972969611,1979654278,580270455,-1200523777,-970260479,314112139,-1070903296,-773878960,-1551397917,-1202698115,-403242942,-1207969653,-1070885620,-1706012592,231046300,2105423499,-288161103,-1207835005,-970260479,179894411,-1947732224,-997228328,-561314669,-2020875311,1589935523,-2026297848,1567884725,-150977864,-1797388825,-18352,-930637232,1240141253,972441227,561836102,-780304735,636015080,19726337,-1176963328,-503906238,1351933445,1358954424,-976713830,2105450765,-388896559,754975013,-654901247,-150977863,-1797388831,1354771280,-976394854,2117503757,-754798211,31884270,-1962385724,-1947741698,645768069,95782713,1119359604,99022592,-1202678562,-1705967617,231065735,-780304735,636015080,1119420417,98694912,726701278,1704612032,-1207056947,1599995905,-899816053,1435500554,-326898549,-1202301078,-1706032121,743193770,194397833,-1710721600,231074316,-16682519,129537654,1520062468,-13874116,-1766287754]},{"sector":9,"data":[62410877,-593866752,-13874115,2025363062,-1070903252,1037867600,1996434508,746764438,112720,1037867600,1996434508,747419798,178256,1037867600,280505420,1996443652,669162134,1183390869,146942,266929013,306086657,175439877,85212803,-385649408,1996423414,-1740206698,6666320,243792,1040423504,-1766314932,1183666301,28856472,1738166272,-1207057098,-1873773162,-1402083314,-1207778173,240156054,-1962643224,-1090810920,-661881450,-4603762,-222284801,735180718,-771848199,329642729,-5967159,-7091146,-7091658,235213878,184771816,-385649216,922681478,922719180,244356042,-2143075096,76792846,-1815333121,-1815464193,-1815595265,-1815726337,-1705983957,231046141,612204192,1963080706,-1815436978,-1815341429,-1814821319,372835957,494179286,-1814677761,-1814808833,-18346352,-701038782,-734593133,112787,-85455280,-837910526,922682515,922719190,922719188,922719186,28873680,-40218624,-1710373509,479576072,-1701415169,743193836,-443850914,-1957311651,116163564,185484939,1025733824,57999361,1023578345,57999362,1023571689,57999365,1023571945,57999367,-385810711,381157621,922701952,530218376,-1205056449,-1588592620,129072510,19261651,530206720,-1205056449,-2091909099,-24225730,28837237,721611520,530206912,-1205056449,-1202716671,-1706022606,479540080,1342177720,-1791773286,178204,867539536,314055829,-1248178176,-1206086349,-1202716653,-1202716671]},{"sector":10,"data":[-1202716660,-1706033151,479540202,1342182584,-1791718502,1423388,881564240,1048779925,1946163378,-2145994671,1423440,112720,885037648,381164693,-1070903296,887331408,397941909,28856320,-476426240,-1206086348,-1202716648,-1706033150,479540451,1342183864,1342178232,-1791695974,1751068,309328,887331408,113712277,1298,85198535,330825728,-543535104,-1205056448,-1729560575,205949697,1946157373,146698,1240007541,-1192695039,-1706000362,743194569,-1191295351,-1706033131,743194569,201082505,-955943744,-66490,964528289,192282182,965630113,58063942,-1711223575,231045198,-1543747957,1586204248,-2011264514,-773598851,1116179427,1150782208,-1832082688,-1831987575,2105556611,-15436541,-7091146,-1198273994,-1706033151,479561757,-16742423,-7091146,-1701590474,479561940,-1815333121,-1815464193,1347469355,-1786172774,-868810980,-902365293,-935919725,-969474157,-1993696621,2124422293,1006773373,-1588890366,378246090,104436684,108368852,-1814686151,922695796,922719190,-728067116,-14903928,-7088586,731108406,-1706012480,479562026,-1814677761,-1814808833,-1814939905,-1815070977,-1786172774,-837910500,243270803,-1610312764,-2145092226,-1191557496,-1706033132,743194569,-523040847,721047178,1975598061,-20453117,612204192,453065856,-2082801710,129040866,2124538579,192881789,2115406288,335988605,-385875707,113770145,1298,85198535,-1830223872,302434302,-385875707]},{"sector":11,"data":[1183579785,232301324,-2080472855,1964117118,309265,339148624,1354771204,1313708624,922684869,1575554520,1575324670,1426066122,-326898549,140428308,-1215826394,91489285,-1058422741,-230257408,1183535126,173443848,1376115973,-1384998320,1183521941,173443848,1376115973,2107029584,1922715678,-1004759635,-1960441762,-1325025401,636015365,1183383553,-2020923664,-551287369,2105415307,-355268687,-1325276541,199414533,-2021054782,2122515895,611647494,384976525,2107029584,-401715170,-1073020718,2124485236,-754470531,75240,1978680891,-8853245,638082756,94865291,-1449686234,-15275259,1996484214,918788844,1589906885,1200301804,1468737053,-330921697,200169097,-2067006,1996425846,925145608,28839365,1575324416,1426065098,-326898549,1586189826,4161542,381158773,727640837,-1873588032,-1486231538,-1962621821,1317752560,990243590,1309504753,-1952971638,-1752697128,-277542808,-1946257783,-1744336162,-2013865845,1946708119,85637125,1586177003,21481214,105286400,-1946270071,1174531056,-1952971638,-1752697128,-210433944,-1946257783,-443851066,182877,-2081649835,-1940520212,1992687198,1589921290,105316102,940018214,343277380,16743552,28896117,175540480,-1911791988,200015454,-1945471351,1586367582,1589652478,-899816053,1435500552,-326898549,-1957275902,113642110,-26642,1996424822,244340488,-2086113304,-259324220,-1745994112,-2096073473,7267902,244320629,185907176,-1982630720]},{"sector":12,"data":[-963903882,-443850914,445021,-326412912,1443294339,-1873756117,-1123751922,1342177720,-68678000,-2143386692,125109373,-790098288,-2095846623,58556478,1048775797,1962936048,-1318348283,-2136928827,-28931715,2105542343,-625475583,-591900524,47749,-1070903214,44341840,1048779925,1962936048,-25263300,-1205766909,-1202678566,12225611,-1202695680,-1706033151,479527588,1351932600,-1165675592,183180437,1351932600,-1165476936,1347551232,1342177720,-1794988902,-25263332,-2093320957,75335742,922694516,922719180,-728067126,-14903928,-7091146,731105846,-1706012480,479562026,-1815333121,-1815464193,-1815595265,-1815726337,-1786172774,1850712092,1183369470,-62470406,-1797343226,2090645584,1376634298,437172304,440400,1354771280,721045130,1319129316,2895214,654751824,1354771280,2107848447,2107848447,-977023334,-704198899,-956301164,26548742,403097344,-1610612587,-466981298,1220079755,1354256532,231062145,246960210,1183469594,1357130492,1356088461,721045130,-1202302748,726695318,-2136911680,-28952195,28837237,721611520,1356396480,964526241,91618886,-352321096,-138401022,-828747560,-1207056957,-1202716669,-1706033134,479587102,1962940477,-2113485050,-1879048044,499378190,-1815333121,-1815464193,-1815595265,-1815726337,-1125642608,-1005682665,645923219,-1577222786,1178172800,-2095745538,25005118,1048777844,1946320268,-1942060275,108266365,1342177720,922682603,-1550156404,-2095278819]},{"sector":13,"data":[1946418814,-25263335,-1590463230,378246100,104436694,645239754,-1815341511,1048780917,1962936048,2114385433,309659773,-1815333121,-1815464193,-353890672,-1005682629,922682515,922719180,922719178,922719176,-1070885946,2080217680,62393797,179851264,196628480,916082688,1578931691,-883038837,-2081649835,1448544492,-1873756117,-1163597810,1342177720,-1679290736,-2143386694,125109373,1894256272,-2093028577,58556478,1048786805,1962936048,-1318348240,-895414843,-870937709,-737789549,958297491,1972622870,-768147688,-801701997,-701038701,-734593133,-1329227117,-1516040763,2105581949,-939637111,41779206,-1797605376,-2009352112,1375731898,1354771280,-1794988902,-264338660,1014300678,67010179,-625467019,1270370452,47756,28856402,-1533390848,-1206086398,-1202678566,-1782938317,-1207244004,-1202678566,12223964,-1202695680,-1706033151,479527588,67010179,1048802677,1946451336,-868810898,-902365293,-1999332717,922688661,922719180,-1070885942,714756176,-14903927,-7091146,-7091658,-7092170,-1701591498,479562026,-1953248607,965987350,1972622342,-703186642,-1591183981,378246086,104436680,108368848,-1814948295,922686836,922719190,922719188,922719186,714773456,-2095278711,454718,-895398795,-870937709,-737789549,956724627,1955845654,-736181191,-2013911405,1963984311,-1705834963,479561940,-1814677761,-1814808833,1347469355,-1786172774,-701038820,-734593133,-768147565,-801701997,-1993696621]},{"sector":14,"data":[1187388565,1335887612,769927790,-388956154,1183318572,-1797342982,2090645584,1376634298,437172304,440400,1354771280,721045130,394724,1850646608,741205034,112742400,-1070903257,-1556676784,-1556676739,-1009870211,113708485,38102,-1793456441,113704961,38168,711872160,-1963947036,-125043642,1351895224,-1165930312,1347554757,1343884984,-733704873,-96040368,-956046294,-1766304176,-1070903171,2105581904,1979598393,112645,-1070923029,-1588537097,1178172800,-1207601666,48955393,-654852053,-1009870256,62393797,314068992,513429504,1025283563,108331032,-1803417913,1182793728,1183450364,-773575942,-129594912,721176202,-129629212,1850674826,-1053037270,1325335410,-62485768,-259267542,1351950520,-1166238536,1347554757,1343884984,721045130,1355154404,-1957642197,-972818362,1850646608,741205034,112742400,28856359,922701824,922713509,-828736091,-955398717,9754630,1543948032,-956300907,9787910,1850646528,-259267542,-1946401142,-1802848008,-2125416368,1376634298,437172304,-96040368,-956046294,-733704880,-129594544,1448134403,1350407864,1342177720,964526241,91618886,-352321096,-138401022,-2136911656,-28952195,28837237,721611520,1356396480,-977023334,243725,1226832,-350315952,406658197,-955878144,9749510,-401698816,922687913,922719180,922719178,922719176,244356038,-15490328,-7091146,-7091658,-7092170,731104822,-40218432,-15874693,-7088586]},{"sector":15,"data":[-7089098,-7089610,-1198272458,-1706033151,231046141,-1815867776,-837910527,243270035,-1593672322,1178172800,-1207536386,-347078655,-1942552828,497261181,2122521749,628425726,116407939,-165776128,142441990,922687349,922719180,244356042,-2143827736,76792846,-1815212416,243716,702544,833616,-348743088,1600003221,-883038837,-2081649835,-950663444,335366,1354771200,-1880617328,112822,-401698736,516208262,-165243958,33929095,211421300,-384973334,1048773054,1963228544,-401698811,-2136925369,-28931715,2105542343,-625475581,1270370452,47756,-1070903214,44341840,-625468267,867717268,479574661,-1070903214,44341840,1048779925,1962936048,-25263321,-1207143166,-1202678566,12224571,-1207244032,-1202678566,12223964,-1202695680,-1706033151,479527588,116407939,-15698688,-7091146,731105846,496652480,-1608739448,-922849713,-956676472,-1207501754,-1202678562,-977634148,-1202695667,-1202710002,726663174,1183469760,1357130490,762203808,-1202716628,726673158,1347440832,-977023334,-704198899,-956301164,26548742,403097344,-1207959403,-1705995042,231064894,711872160,-1192195100,-1202678712,-977632944,-1202695667,-1974461938,-466944954,-867922608,-96040368,1448141866,1350407864,-1588543445,1178172800,-1207601666,48955393,-654852053,2105581904,1979598393,112645,-1070923029,-1705977609,231064526,1342178232,1342182072,-1779753318,1588508,113706613,38018,1994919568]},{"sector":16,"data":[-1005682665,645923219,-1577222786,1178172800,-2096204290,25005118,1048776052,1946385804,112646,-16454832,-1703048138,479534499,1342178232,1342180024,1342180792,-1779747174,-903953380,-2020923757,187041191,1946528135,-1208015343,-14285399,-1710905417,231026465,-1070922773,-1815698535,-1815603575,1575324510,-326412853,1459940483,-1304525994,91488280,-981971302,-2143386867,309593213,-1552056159,-2002683404,2023793533,-1552053087,113753928,97664,512351019,-472810104,-2020875311,-1752498110,-861732796,-837383790,-868810862,-902365293,1354771347,-1786322278,108954396,-1005358080,647219742,99663747,101151744,-401698733,113718589,294272,2105419392,-197229571,359990137,1351932600,-1165675592,1347558549,1342177720,-1794988902,1354771228,408001104,1335893141,-2000093586,1187445830,2122515454,57999366,-1207915799,-1202678562,-977634148,-1202695667,-1202710002,726663171,1183469760,1357130492,762203808,-1202716628,726673158,922702016,922713507,-828736093,-955398717,9754118,436651776,-956300907,9771014,-1797343232,-985753008,-1765863995,661700221,-1064380276,872415161,-139529536,-2013713455,-219557378,-221703259,-1807173468,-2125416368,1376634298,437172304,-28931504,726721578,1183469760,1357130492,1349406368,1344756920,1347469355,-1009870256,243273157,-352021564,-1807173580,-2125416368,1376634298,437172304,-28931504,726721578,1183469760,1357130492,1349406368,1344756920,-1202667477]},{"sector":17,"data":[1347485695,-977023334,437172237,-1806387120,2144336,1354771280,-1789224038,243740,497261136,2122521749,158662662,1351895224,-976138598,582924301,899152,112720,-401698736,1599999011,-899816053,-1957363710,116163564,106873942,-1484289242,-1752488443,1183385001,-27883012,-973447540,65797238,-1944226619,1959136216,289732121,-151948286,1963004228,-1983894549,1586297974,-94466306,1988693227,-27357956,-1191551346,-1956773887,80371173,-326413056,1443294339,185222795,225709126,-15960321,496634486,-350448235,142016267,-1710852353,479565268,-1979955575,-1039401386,28837237,-1943016704,1992686174,289732348,-166497278,1963004228,-1983894771,1586297974,-94466306,1156976875,91555857,-350391099,112860,-1956715029,147480037,-326413056,2105556611,-2096663549,75333694,1996426357,108461832,-14489586,1996427499,175570700,-16222465,-401734026,-899809433,516161544,-1960406070,-788154489,636015080,1439367169,-326898549,727078668,244338880,-1196311064,-1873805311,-1313544178,2105556611,-1878559484,378136590,1048777707,1963163008,-264338676,91553798,-978228326,2105581837,-939637111,92110854,-1797605376,-2009352112,1375731898,112720,44341840,-625468267,-591900524,47749,28856402,-1533390848,-1206086398,-1202678566,12225611,-1202695680,-1706033151,479527588,116407939,-2095352576,1963196030,-1797605355,-2060208048,1377605050,112720,44341840,2122521749,980747262]}],[{"sector":1,"data":[2106080899,-13405180,-7091146,-1701590474,479561940,-1815333121,-1815464193,1347469355,-1786172774,-868810980,-902365293,-935919725,-969474157,-1993696621,1187388565,1335887612,769927790,-388956154,-1191557496,-1202678562,-977634148,-1202695667,-1202710002,726663174,1183469760,98839290,-1605369850,-466981298,1342188589,1344734904,-11485141,-8543434,-1703042250,231064526,-1797912889,113704960,103706,-1793587513,1319108608,-1947981202,-62485776,1220081803,1354256532,231062145,246960210,-1923657702,-1974414268,-466945466,1448134403,1350407864,-1588543445,1178172800,-1207601666,48955393,-654852053,2105581904,1979598393,112645,-1070923029,-1705977609,231064526,1342178232,1342182072,-1779753318,1588508,113706613,38018,-1963178242,-466945466,1183441105,1850712312,-259267542,-1946401142,-129594376,-969160957,-963966862,-1991719125,1048836166,1946163936,-62485951,-259267542,66616971,-96040194,1183434243,-1070903050,1319130960,769927790,-1706033108,231025210,711872160,-196703772,771127039,1464860716,-1695254785,479569866,1183457771,-1947981060,-96040208,726713859,1183535296,1355154424,711872160,983191780,-1878145750,299100174,-1815333121,-1815464193,-1815595265,-1815726337,-857207152,-868810997,-902365293,-935919725,-969474157,1354771347,-981729894,-1005682675,645923219,-1577222786,1178172800,-2094828034,25005118,1048781428,1946320268,-1942060261,343147389,2106343043,-2096270332]},{"sector":2,"data":[92113982,28837492,82530304,2106341119,-1793219686,-25263332,-2095483901,1963130494,-1814781645,-1814686069,-1815476679,372844149,544576460,116407939,-166103808,142441990,922686069,922719180,244356042,-2144348952,76792846,1342178232,1342180024,1342202552,-1779747174,-1956684260,1439391205,-326898549,-1604954296,1183356278,306613244,460636171,1946161213,1129771,306008436,1025602560,578027539,1946164029,-1592399095,-381654190,1586168064,239503888,126365956,83910,-385875528,1048772844,2080402258,1800577288,1980646969,-373282043,1183514840,1800708878,1342177720,1278727834,-1596593364,-466971272,721178250,1220619245,-1136228024,1800552067,-1581417472,1178168146,-961186034,-1977565626,822349382,-943765880,196166,-787587445,-1948003869,946558623,-1960283089,-472838562,-1752439855,-225744042,-1946268021,-29324583,1133050251,-91536962,2038487435,-344653570,-1946268023,1178188870,723222014,1183448646,-25785416,1317740720,-1099264584,-1426979050,28853899,1190592070,242483462,-1559345525,1183476564,-96040954,1187382507,922683130,1183487348,1357130492,1074284170,-1102672560,-1133052080,721045130,244994276,-384002726,1600061198,-899816053,-1957363698,205949932,1962938173,-1788168178,-783377840,28839365,721611520,-899835456,-1957363702,82609132,28857943,-1785049088,-1960031167,340233176,-1946270071,-1073017274,20786036,-385649408,54329645,-385649408,87884044,-385649408]},{"sector":3,"data":[138215701,-385649408,171770069,-385649408,-974585640,112640,-1271464112,863017594,28843157,-1248178176,-1206086349,-1706033150,479540149,1342182072,-1791773286,1423388,1100323408,1183394892,-942109700,-1787228089,1198023,-27358464,704923530,-1947169820,1200290910,-1946645755,1200291422,-1191695611,-1202678422,12227642,1397772800,-60912809,704923530,1355164644,1342457229,705054602,1086729188,745125968,1354771280,-828747696,-1207056957,-1705994902,231064501,1342182328,1860974335,-1791800166,1357852,-1305018544,860658298,1048779925,1951204644,608076551,108349701,232261319,28835858,-1201476864,-1705994902,231068047,1790505195,1183469717,1357130246,1208436362,175570768,-1710721281,231066097,1790498027,1996443797,1354771210,-976371558,-1950094579,-660403130,-2084836595,1964117118,309265,607584080,1354771205,1313708624,922684869,-543552040,-349418432,-1956684135,181034469,-326413056,-1207636861,-1706032381,743193770,201082505,-1710524992,231074316,-385874248,1183449431,1860346374,86247111,1996423245,50575612,1012570704,1996434508,746109180,1354771280,1279122586,-59310292,1345094328,1342177720,1279122586,-59310292,1345096888,1342177976,1279122586,138840876,1946157373,146725,54339700,-385649408,121438355,-385649408,154992824,-385649408,171770059,-385649408,113705164,-38062,113712875,550005590,1800931015,113704964,556559194,1801193159,113704965]},{"sector":4,"data":[93010,-1559476597,1183543020,2058527498,1800668871,546963456,-1206086371,-11533024,-493159306,-1994615513,1996488262,1022139132,2122525772,57934334,-2097118231,7033918,1386314876,1409694059,-1955365013,-781495266,-1948003869,-345286521,1443284840,-954162069,57366534,1510393600,-954152853,74144774,1577502464,-954127253,90923014,1376175872,-385875349,113770366,550005590,1800931015,113704964,547646298,1801193159,1575550979,1443284991,-383716245,113770306,554986326,1800931015,113704963,552889178,95989227,1575324416,1426065610,-326898549,142016260,1358710413,1566734,-113015,-11531658,1996487798,1625820678,1575324670,1426065098,-326898549,138840836,1023410477,58064933,50364905,-13724736,-946251097,499187270,33310407,12577024,-1325513017,-62470372,-1293352958,-28915968,1187454152,-385873924,1187446949,-350476546,-28915727,-789897684,1090406087,-943068387,483851846,1187500011,-954379010,261190,1187479019,-350472450,-28915726,-336913328,-2130819385,-941298915,489487942,1187503595,-350450434,-28915754,-806675032,1090406087,-624366819,-191305832,26794648,-627516775,-627505000,-627516776,26806424,379129753,26794649,496556697,815344025,697903513,697903513,697903513,932788121,697908889,1167672729,-627487591,1402526360,-2087134567,1946158718,106859272,-1979955573,-28931321,-899816053,-1957363708,82609132,1342374840,1279044250,-62486228]},{"sector":5,"data":[192266251,-974517094,440333,-956260375,1157964806,-59310336,1342374840,1279023770,-59310292,1345091768,-1705983957,743194076,-1191414017,-1202705278,-1706033151,743194076,-1191414017,-1202705268,-1706033150,743194076,1800799943,113713524,748376,1801062087,113713564,682844,1800537799,113704961,745107180,2058487495,113716329,27476,1342536376,-1694730497,479537122,-113015,-325387146,-2094248900,1963064958,1411287822,-773598869,1485278179,-1207702677,-443875323,-1957311651,116163564,-1988447071,113770054,541227700,1342374840,1279044250,-96040660,192266251,-974517094,112653,-1207910935,-1706033151,479537336,86247111,1996423241,50575610,1012570704,1996434508,746109178,1354771280,1279122586,-92864724,1345094328,1342177720,1279122586,-92864724,1345096888,1342177976,1279122586,1443284780,-954184597,7034886,1510393600,-954176405,23813126,1376175872,-1979711125,714599966,-1948003841,-1558174073,113733356,745110194,1800668871,-189267968,1996443653,669162234,1183390869,-92864516,1279061146,-28931284,729461923,-1197846336,-2095278808,1946287230,-11933437,1800674955,-472783919,1800963979,-883038837,-2081649835,113706220,690387636,1342374840,1279044250,-62486228,175489035,-974517094,-373282035,1996423325,50575612,1012570704,113716300,4719908,-1191414017,726674552,-593866560,-13874115,-2101805962,28856364,-593866752,-13874115,-1934033802,45633580]},{"sector":6,"data":[-593866752,-953398211,1147885062,1476839201,-956300949,1483430406,1543948065,-956301205,23810566,-335100160,-1960023698,-1297938874,1409730426,-1207959445,-11532690,-493159306,-1994615513,1996488262,1022139132,2122525772,57934334,-1946195223,-781495266,-1948003869,-1955899257,46816741,-326413056,1467411587,142508118,-972786419,-1088550842,-661900482,-4603762,-222284801,1238497198,-2087563639,1962870398,1354771227,-1740206768,1801631824,108461904,-975879014,1975520013,40691971,9848519,173968128,1946173312,1850646568,-259267542,1317786507,1942895510,-1948677355,-1962833158,-1539077895,-1948677311,3768570,1317660533,-1773761642,-1600895351,-466981298,764560939,1178271754,-1607895404,-466981298,764560939,1183383562,-1773786226,-1953741175,548443766,-1920184693,118924410,1183558386,-1807351412,1031638177,947126275,1946158653,1850646579,170779690,-1807336704,1319135602,769927790,1183383562,-1807340660,-1907979968,-1332447605,-1907455200,379878029,-1951731193,1089179206,2106343043,-1207601914,48955393,1119469611,-1947601152,-2101378088,-1317732204,-1198360833,-1957678274,1116574838,244338852,-2087902488,1988822724,-1804205166,547635910,1083328139,-1953217023,1191154806,-1539127660,-1807316192,93734537,1178271750,-1959823724,101029446,-1941534464,-1986771413,1988857414,736005012,-930376098,2056120785,1656196516,-234416533,-1543408731,26101387,1988858950,-1807286380,547635910,-1986771317,1319147078]},{"sector":7,"data":[971254382,510891590,730613385,1183421510,-1804170354,1317740720,-1535472242,-1426979050,26101387,2122421830,1948441098,172395270,-1602625373,-466981297,104548424,259494842,26232519,1354771200,-1793247334,-955913444,36934,414334595,724136960,429543616,-1206086332,-1706033151,479544352,-1924087765,-1924100538,-1705997242,479541376,-1869711617,912123918,9848519,1850646528,-1072962518,1183480692,-1946645752,246978166,-963948518,-1605311446,1346924111,-1734065526,-1080404144,-2095278754,1618494,1048594036,1980594887,2059837503,-930356182,-503855477,2059903056,-930356182,1215188896,-1705975305,479544331,712689312,-1916236828,-503905980,2059903056,-930356182,1215188896,-1705975305,479544338,1850646598,-264510422,1988726898,-1870756970,-1207340032,-1706033151,479534391,-443850914,445021,-1964209323,706926622,105286399,1090785060,584746888,414465667,-1207077888,-1202716669,-1706031752,479549057,1344461496,1342178744,1358954424,-49420274,414465667,-1207077888,-1202716669,-1706031752,479549057,182877,2044737279,1342180792,1358954424,-52041714,-326412853,17493121,-426092969,186422562,-385649472,-2033844023,-970916096,553582982,-15960321,1996425846,108461832,-16611699,-58290864,446320894,-1928477394,-1929445186,-1178562864,-1070333953,-772296974,-91322295,717327102,-24737308,1850646782,116000314,-358612106,1004808710,1996422790,1850646580,116000314,-358612106,-1981535738]},{"sector":8,"data":[738130054,-1979777402,-1946225018,-1325465930,-158430432,12226046,-234416385,-158954582,-24772098,-91845890,116040446,-1705983957,479534391,1343884984,-1202667477,-1924136958,1358889094,-16861441,1342183864,-1789260134,437172252,152017488,28843157,932859904,1578931485,1575324511,1426065610,-326898549,-967420144,-972947898,-956040122,64070,2105949827,-1603961344,-466981297,-788527571,-1093629208,-373326360,-230242435,1187479172,-1954642448,1183513166,-1979414274,92863558,-1963827573,126418502,-1947181429,-62520638,126353924,117327488,1963784579,-28916217,-62456319,-2096707965,1182992071,1182992114,994117360,2088601102,-95516227,-443850914,-1957311651,2028766188,-1070901673,-1987033463,113741382,93926,-1550561629,79271056,-1770091264,-1945703490,-775909680,329642729,-945491255,8226310,243712,1816656,-350315952,472718485,2106106624,92061707,2113930301,-2012821754,-1962934147,-780302306,-1948003869,-1962917241,-1560263529,378114764,1187418830,-504807022,-62485759,-1543612789,378109314,1183546756,-27882500,-1987164535,1347588182,378947213,-1384998320,381623445,2107031079,-1064380276,872415161,-139529536,-2013713455,-219557378,-221703259,-60898140,-1993949141,637909895,96044937,105351462,71797030,172460326,138905894,239569190,206014758,273139494,-1993998080,-1993993657,637907847,95782793,-1316517594,-2021054971,-1993996881,637905287,94865289,-1383626458]},{"sector":9,"data":[-2021054971,-1993996885,637903239,94341001,-1517844186,-2021054971,-2144991837,-33179737,-1213759450,-2144928507,-150620249,-1215332314,-1993994235,637925511,100042633,-91780826,-1933341947,98371010,381177938,-1706025433,479571314,654073540,99256263,-4653057,-2021054721,-1993996818,637922439,95915904,-2016991712,1520,-1993949141,637924487,99780489,59408003,-1343683724,-1957493248,96636099,1347552713,-721042549,-1957670395,98108867,244338770,187746280,-385649216,1589903498,-1887426820,-1962408521,96636099,1347552713,506401464,-1929868464,-1178562856,-1070333953,-772296974,2140819785,185451875,-1957399360,1452014662,97060350,515395666,-1957683665,-1898410760,-17984,-1359822797,1363792375,-983335014,1958742797,-62485718,100554379,1347552713,506406072,-1929868464,-1178562856,-1070333953,-772296974,2140819785,185451875,-955943488,297542,-1946394940,-1993962938,-33175673,2122355270,1971280530,-2003679606,764974662,-1873805248,2136139790,193611401,-1193249600,-1706031620,231074601,-1979955575,-1039401386,211421813,-1710373398,231036612,-150993224,-1954707922,-62485520,-1979820405,-1988236668,-1988236140,-1988196732,-8484716,-1954707962,1175162438,-385649264,1589968311,-62485618,-1182299866,-1752619515,-1310128709,-1773761027,-401698736,1183480642,-1840871274,-1954708831,-1988262890,1451883590,-2031612162,-1941518596,-1941009920,-980918644,233569398,949110410,-32738300,-1179335231]},{"sector":10,"data":[198740997,-1980926522,1586297974,-2007068930,-1970516344,-1832607039,-1567439454,-878539318,-1949922419,-727450026,-703166061,-1815436397,-1815341431,-1550204885,378115024,-962358318,-938047085,-1949922413,-1415315882,-1391031939,2108138365,2108233353,2105419392,243903,702544,-350315952,170728597,2105582336,2080375101,212229,113706622,359808,2105419392,2116452605,28900221,-1768271872,-1206086371,-1202716669,-1706033048,479587102,1033127561,125108249,2105419392,-2147095585,545095182,1342178232,1342203832,-1779753318,-1807316708,1962940733,2116452359,99348349,2105413248,243728,6928464,-350315952,1183390869,1588628,243271541,-351765122,2116452357,62453629,1941458944,513429504,-1994615317,423466054,-2146994944,-25329882,243271147,-1207861889,-1202716669,-1706033035,479587102,1033127561,125108248,2105413248,-2147095680,2138930726,1342178232,1342207160,-1779753318,-1807316708,1962964541,1476839176,-335544690,1476839174,721420430,2108007360,-1870814301,2127161358,-948246877,7267846,-1956684288,1439391205,-326898549,588691462,-675374512,1048776133,1963294080,-1942060276,91554941,-344240968,-1797605373,437172304,89954896,-107340651,-1206086397,-1924130290,-1705968570,479549538,50153088,83707530,-12154877,2105556611,704935172,-1341985856,-96040935,1343884984,1358710413,1342185656,721045130,-1684385564,-1206086310,-1924130290,-1705968570,479549538,100484736,-1191227650]},{"sector":11,"data":[-1924130290,-1202652090,726663200,-1684385600,-2095278758,41779262,1048783477,453056690,47773632,-2003505914,50658630,-1191229816,-1924130290,-1202652090,-1202716640,-1706033127,479550107,2105556611,-2094369531,18395710,-654852069,-1796405758,-16955768,-12154688,1343884984,1358710413,1342185656,1342183864,-1789224038,-2143386852,91554941,-350044488,574273539,899152,112720,-655880624,-1304525835,91488280,-981971302,1575324429,-326412853,1460595843,1354771286,1877479056,112796,-401698736,2122554470,74711046,-21764082,-780304735,636015080,179896321,-1981679872,-661917114,-1815300097,-1815431169,-1815562241,-1815693313,-124131314,16664263,2105450752,27846865,-994085774,-129579117,1187484750,-946544906,-1807158202,201225867,-2096007690,92110910,-459666827,-2146581205,-23867866,208991755,1963064963,-2143386846,460588413,-1962865280,126613598,-244087,1318778486,-15874607,1318777974,-2096249391,1182993095,1183007480,1183007478,-1589230860,-388924034,989856037,-1985711162,1048837750,1963163008,-1942060275,108266365,85853895,1599995904,-899816053,243269634,-1207861890,-1202716669,-1202716665,-1706033144,479587126,115869383,-2083848191,1463358,244323444,174713320,-955550528,1463302,-1740400128,113708485,67312,1031635105,208928770,1946157885,343310,367726708,-1947726192,-1877742624,-460003314,244321515,-337025816,-401698811,113761815,1776,-7673842]},{"sector":12,"data":[-1202300981,1347420161,-1793568358,-1085620452,-1937926466,-1178562856,-1070333953,-772296974,-24643285,-1510807087,-1527592685,-1815333121,-1815464193,-1873756117,-604772338,-1552288607,512458112,512325792,-472810104,-2020875311,-1752498110,-861732796,-837383790,-903953262,-1081923949,1946158576,-1873607161,464775182,2105556611,-15567613,-7091146,731105846,496652480,-350448248,-903953349,2106106259,-326682330,103642117,-1999332781,922688661,922719180,-1070885942,714756176,-14903927,-7091146,-7091658,-7092170,-1701591498,479562026,-1085784445,-1206553341,-1705995192,231063449,578142219,-1085798713,451608578,-1085784445,-1206684410,-1705995126,231063449,108380171,-1085798713,1218510853,2106368959,493853264,1600003221,243915,1816656,2106106192,1342184453,-1779747174,243740,7649360,1480491856,91488398,-352291144,7845891,-348743088,62397589,1975013376,116805632,1954577790,1619973,431490027,916082688,-1206086165,-1202716669,-162529176,545095174,414713204,-1207702784,-1706033127,479587126,1342178232,1342203832,2105411318,-1207602160,65732632,1342183864,-1779747174,243740,7583824,2114385744,1946222717,1619973,431490027,916082688,-1206086165,-1202716669,-162529175,142441990,414713204,-1207702784,-1706033127,479587126,-2143386677,74777725,-30808050,-1873756117,-1723799538,1342177720,937954960,2116452505,62455421,129519616,163074048,916082688,236754411]},{"sector":13,"data":[-1694562584,231025361,-326412853,1461906563,2047254870,-2080487799,35173950,116787061,1946254718,-868318364,1568473101,16533191,2105450752,27846865,-893497486,-126449261,-990085493,-2013911524,1963001271,-1887427060,637601207,95915904,-128021756,-1960435772,-788154489,636015080,1174994945,-401713154,-964492823,-129596662,2124498698,636014973,-952434687,2122956147,2114385660,57999741,-2097054999,1619518,1894318964,-62470399,2124480512,-1461137027,-385649919,-994115245,-96024685,2122945482,-196687882,1187484906,-946541582,-1796411322,-303151417,-330905708,2122945758,-398014486,1187484784,-946583322,-1803361210,-941457783,-1807163322,-555858233,-25785452,1946224118,434638343,-31096823,-990224757,-2013911521,1946420663,10545411,-1862502657,-1744246770,-151626101,812909063,-1963696501,1357130247,-1963827573,1586188295,1342671600,-1964089717,-1717940217,-15874696,-493163402,-1962031674,662763102,114429,-152412533,913572871,-941072757,-16776953,-493164938,-1962031674,1065608286,-166300672,142441990,1996427125,2144486,1354771280,-976371558,-497120499,-1090836608,1996423169,-779117856,20778437,-137815296,-980007,-1885675914,1024312785,-920977407,-250881545,-2096445565,-2096432570,-2096433594,-2092764090,-2092764602,-2092765114,-2092765626,-2092766138,-2096436666,-2092767162,-2092767674,-2092768186,-2096438714,-2092769210,-12394938,2124545094,636014973,1178271745,-385649924,1988755190]},{"sector":14,"data":[-2143386626,91555197,-986989158,775848717,963903514,414596739,-1707969280,231045198,2105411318,722039809,-401715008,401341043,2058632833,175450492,-1705983957,479582856,-459667989,-955398869,1715718,-25263360,-138405119,-1956684072,1439391205,-326898549,-1202301168,1861681162,-1948742906,-1953248633,-1986802537,1451883590,-60898050,-1215826394,58000389,1375825385,-401698736,1183409889,-128546314,359973387,2105411318,-385649407,1996423506,-401698810,1206490061,-60898303,-1213759450,-165217531,33929095,-2031549579,-96024832,2124480512,-1461137027,-1082625535,2122945482,-263796750,1988858822,-62485510,972969611,960853253,1081410133,1963064963,-1815437018,-1815341429,-1814821319,372840821,326472662,-1953247071,965988886,1972618758,-938067706,-1961528173,2013262430,-1959264510,2013261918,-1707606270,231027199,-2096445565,-2096434618,1175121990,-780304735,75240,-1720465861,-990218615,-2144928674,268810127,-728083706,-15874765,1996488310,1354771452,-890761584,-25755690,-1694730497,479566674,2105411318,-998411263,647219742,637814667,-1962518645,702664,1861737099,-990868730,647219892,1963215929,1547249166,721974534,244338880,-996836888,647222302,637814667,-1962518645,702664,1861737099,-990868730,647219892,1963215929,1547249167,-1207339770,-1873805311,-1790384114,-150977864,-259324306,1351933445,-976821606,96897805,-1705995192,231065314,-443850914,182877,-2081649835]},{"sector":15,"data":[1419773164,-2000093548,1187446342,1436549372,-45709164,-2003544160,247004998,1183666202,548950268,-1070903296,1520147024,-443868011,-1957311651,140413932,-2012854646,1569899655,1426064586,1586228363,-997750266,1575234194,1426064074,1586228363,-897086970,1575234189,1426064074,-326898549,-2091493616,75333694,1575551861,10270722,-1962252553,440560,50882295,-360412176,-325809283,-163149443,-990357879,-1977158050,-28932089,2112390282,1183441962,-377189636,-96040579,235566847,721395944,-230258204,414334595,-385649408,1589903788,-2020923658,20776391,-385649408,37552332,1024619520,661913603,1946158141,343401,-1947663499,138840832,1962034745,14608643,2059878016,-385648883,79167694,-1960252653,1178142790,-2146339342,226150206,-390593162,-1206588654,267064706,2059878016,-1207601651,65737434,-1995082568,-56495034,-33158377,-385649385,1183514819,-230278904,-1595341964,-385765376,1183514781,-230278904,1048580469,1980594887,320911365,-1397174805,-2134316267,226150206,314049910,-1195578605,-1209330274,956843659,292942406,2059878016,-1207601651,-1544875204,-350893896,-952205154,91622778,-351064392,364558482,1183550955,-230278904,1048580981,1980594887,315406342,-1191216919,1927877990,-952205057,108399994,-384647496,1488519013,-10491627,-384444744,1048641369,1980594887,318158854,-1191228183,1189680528,-1950340353,5945544,-1946523913,-60947496,402405060,1946695718,-193527983]},{"sector":16,"data":[712689312,-1949791260,-503841722,2059903056,-930356182,-134592885,431509729,244338688,-1591385880,101390332,578033662,956843659,74838598,48955824,-930365398,-150971720,-661915034,-990093821,639106102,246941832,1183469594,98839292,-1974468605,-466945466,-28931504,1183469720,1357130246,1183473643,-1947981306,-96040208,1183512715,-263812612,1343884984,1475376895,1342200760,1589615190,246946965,1183535130,1464877296,-1728166262,-1080404400,-1206086306,-1957684722,1077997638,985159504,-1705619456,479551167,1343884984,99632779,1464860675,1342201272,1589615190,1600003221,-899816053,-1957363706,116163564,1048794711,1963097472,178181,28836843,-96040704,17202816,2122319476,209000966,-1979031925,-2021128122,132879044,-1979031925,-2003647353,-1070859194,490183248,2122325141,477436422,-1962248449,1183451742,-897087480,1357130381,956057226,477431878,820707760,17202816,1996428917,142016266,-1979031925,-2026371002,-462122300,350952112,-16091393,1586169974,138840586,-1916106952,414247540,240182314,737996008,176065526,447748331,1448545515,-2059876725,695505604,-467003216,-823652784,909854460,494108038,1946711611,952536052,1972226693,-1974052903,948816517,1972552837,-352210743,-25785899,1342177720,-1793247334,440348,-1962383625,10270936,-1962252553,-360674320,-326071427,-1956684163,113925605,-326413056,1460071555,142016342,-1207535873,240123930,-1979785240,1451883590]},{"sector":17,"data":[-1815436802,-1815341429,1979467321,-27903715,116791413,1946320254,-1814781674,-1814686069,1979467321,-27903739,28837236,721611520,-96040512,1316274187,654073540,95913974,641954817,95913974,-2093255420,58556478,1392905333,-1705983957,479561757,1996426219,-59310082,-1786194790,-25755876,737965823,-1706012480,479562026,-100609,-1070859146,-401698736,-1482567255,-1458140291,-62506627,1446577525,-1588890370,378240427,1178172845,956659196,980745814,2105417355,-338491727,-788405373,-1948003869,1452014662,-1484289538,-1449686659,2105450621,20725796,-621293029,-754851197,2105450978,-804536540,2105415305,-1415500821,-1391031427,-62506627,1446578549,721712638,-1207702592,19202049,-754536192,2114882528,-1075740547,2124661003,142016381,199757456,-2143386736,74777469,-86185970,-150992200,-259323802,-1946401141,-2071331242,-1802923062,1589941196,-2020923652,-1960442378,-1996097385,-1986804092,647219348,100304779,-787980661,-1551398429,4372605,-1962383625,1317390328,-956301164,9757829,-1797389056,-60912816,-88604890,-930637307,1589906885,-2013911300,1946224055,-2013911510,1963197879,-2013911518,1946289591,-92372198,102003712,-927662253,-961216621,838834835,-1937764923,-1207659580,1727463434,-2114942200,-7092538,1996488310,41222140,-401722113,1996483511,-59310082,-16616193,142016308,-981729894,2018417165,1119358405,140965632,-570036085,-1070903148,-848979376,-963965499,1351895045]}]],[[{"sector":1,"data":[-1705983957,231066981,85853895,1599995904,-899816053,-1957363708,82609132,1183324336,-28931844,2106343043,-972655359,-352190906,-1942060277,74777725,33310406,1347469355,-100669426,-1974410198,240188998,-2080601112,41779262,28841077,240144384,721020136,1183469796,-401714948,-443810704,-1957311651,49054700,1996445271,-957870582,-28931847,1023952523,1114898445,1962942525,10152195,1946232125,19348777,-1696005260,-28931584,725673002,-2043217966,-27883395,-1979025665,1357130434,1342177720,-65083378,1183480299,65284862,1216185862,-1665607189,174520064,112253067,67004150,-323485736,-357040259,-1547855235,1048776133,1963097472,112701,-1962260949,702704,-125049097,-150992200,-661976474,-1815444085,-1815308917,-1815443655,-1757865867,309695436,-2054569941,-2054581304,-561278010,-2021006383,1996455331,-28931574,240182314,1593618152,1575324511,1426065098,-326898549,-2091493610,75333694,-1070922379,-2097058583,41779262,45614453,-1207702784,1183383553,108954106,359924225,50757249,-2129759230,33556094,1048826997,1946188294,-28915763,1048772608,1946189190,-129579071,-164954112,1979348537,17361155,100157067,1183415785,-125924362,2112407425,100157067,1183415786,-263796750,1586205642,705137398,138820580,-1058471052,990218752,58067526,83932905,1178271748,-385649910,2122383531,1963066118,-228684956,-16615425,-1547855305,1048776133,1963097472,-262239408,1468729227]},{"sector":2,"data":[-1194816766,-970260479,-1996485957,1451878990,-1947994132,-1950250024,-2026247082,695571402,-1815308487,28844917,-1983501568,179891782,-295241984,-1070868341,-1815574647,-1815705719,-772907381,-1551398429,108953981,175374848,-25755818,-74586098,1048777707,1946188294,1996445196,112894,1843924560,2018417402,-167047739,28837237,-1207702784,-1706033148,479534499,-352321096,-163151565,-947847012,1182859420,-2097111822,1175121990,1996125753,-15275773,116934275,-1577171201,1178172806,-385649666,1988755164,-23926276,1593603721,1575324511,1442842314,2105423499,-288161103,1442965123,2062028374,1357130487,-145561586,-780304735,636015080,-1202716671,726663181,-401715008,116850040,1946451326,309253,28836843,-1550168064,1578931485,-2091493429,75333694,1048774516,1963163008,-1270971622,57999384,-1207913751,-1202716669,-1706031752,479549057,-1593793815,-388924034,19261649,702720,-661921289,-1815437372,-1215826394,57934853,-1593802007,-388924034,19261649,-1948125440,-860553232,-894107757,-927662189,-961216621,838834835,915082693,45186430,-427561261,702465,-661920009,-1815834752,-2143386876,1098187389,-1953246047,965989910,1972619782,-870958796,-1590790765,378246096,104436690,561353670,-1815603655,28842869,-1178195200,-503906238,-2050492277,103536,1351895045,-976821606,-882942451,-326412912,13167745,-15436033,1996427894,242679568,-12941683,-62485168,773495376,1183649221]},{"sector":3,"data":[-1195880288,-2037559265,-11468998,1996425846,2078728,926784080,-2033775163,196408,425603,1589917044,1207313934,242483471,-12941683,112720,572438608,116790251,1947237758,981896470,28856575,1773686784,244338732,-1985491224,-1946208122,1040136326,1199308801,2130707005,-1270972094,1948750458,-28915949,1183645697,1996443808,-1302095350,99294357,16664263,-1605989120,981896528,-401714945,-2037841877,2122579768,192151806,-16091393,2073692278,-2095278669,50280638,28837237,-1962611968,-1946208122,281697765,-326413056,1460989059,-327775402,1357923981,-1878624513,1974331406,-1962621821,1962871800,142016273,5158999,-401698736,-259268647,29230059,67011328,2122961524,-327775758,1946287747,50234131,-24965516,-385649404,95944836,21883136,284182262,1190589557,2020868592,-957581685,-6820346,-11485141,244319862,-2089433368,-125107004,913637131,-1745994112,-14650113,512362614,-13985810,-1207966767,179839014,1337479168,244338688,-1948391704,-15537168,-1202255754,-1873805233,-548149234,29289963,67011328,2122951028,-327775758,1946287747,50234131,-24965516,-385649660,79232892,13232384,-1962377589,113699958,-26642,244319862,-2089528600,1183384260,1958743026,-297893835,510984087,-299988393,-771806569,649592803,702496,5945424,-401698736,-259269265,-11070485,-1201119178,-1873805222,-556013554,29289707,67011328,1988734068,-226589716,-1962642432]},{"sector":4,"data":[-10294330,1183647350,-140881682,-1995586257,1451883590,1958874110,-60898231,-1215826394,1047789829,-1215826394,913638405,-1349517530,-11316731,1183647350,1183666420,-1070903048,810064464,37555653,-15239936,1996488310,-159973380,-755969,1996487286,-401698568,28861179,-1956684288,80371173,-326413056,18803841,1996445271,309788436,-15698177,-2037576074,-1924071632,-1705970618,231026202,1352025741,1344260280,-13597043,175570768,-1207404801,-1706033121,231028541,-13582707,-1064382324,-1190365557,-1070333953,-772296974,-1493960405,-1071970956,201326365,-1927645760,-1202678202,-1202708642,-1202716670,-1873805243,-597301234,-336443767,75926871,112742655,1996443648,-401698804,-998018216,1958742790,-230242553,954925057,425603,-2030696587,1946287897,814124326,1996443903,276233996,-2096204033,-1232261908,-57934076,364447510,-1532628480,-790098288,-945165402,193094,2058632833,527706002,32669315,2122516084,326435570,33179335,-1773761280,175570768,-1783471206,-955913444,64070,1039287947,57999361,1023460841,376766466,1352025741,235697919,-1979893016,20836934,-385649408,2122514602,192151802,-16091393,2073692278,-2095278669,1963127422,-230242555,2122514433,57934322,-16744215,-2037576586,1343684322,-986722918,241091597,222792486,-17856887,189238054,-17987959,256346662,-1903434710,-870121743,-2037792501,1048706801,663911092,-1501559436,-2130772239,-16845914,-17652096]},{"sector":5,"data":[1200301822,1468737049,-75069157,-40465922,209125374,-18708851,1996443670,-159973384,-100609,-1070859146,-401698736,-1072997119,1187448181,-1962932750,535556678,-15436033,1996427894,242679568,-15960321,1996425846,250088968,-230258432,1593784297,1575324511,1426067658,-327029621,1448542434,1687045830,-15567105,1996427382,209125134,1352025741,1351632525,-986834278,747015437,-927444737,1183666207,1996443798,108461832,1342185400,-986235494,207537165,461341478,2131852288,2139170312,1929248793,-1807300857,535559680,424119078,-2137766263,-2037841436,-1072955618,1183518068,512109460,46432511,731137673,679905728,646351359,-1804170241,-349595050,-2037838395,-1769341146,-1039401176,-288292235,-14252405,-14121461,-167050123,1988746869,646351764,679873535,-1710918145,231074316,-14371189,1358841485,1350566072,1352025741,-2132275568,113542001,-15992693,-2037574796,1464925996,1342197944,2062028432,-336557093,114179,1946418819,-1937864245,-14371191,1963064963,50234117,1187383157,2028536462,-1975087871,-1773761200,-401698736,-998018809,615942916,-1840869889,1354771280,-1878362369,1888544782,-1962490749,1962871800,747015443,-1202237185,-1873805231,-618928114,502001803,-1928694017,-1705998266,231026679,-1995422071,1589908054,-2013321712,29230511,67011328,2122953588,615942540,33457151,-24966028,-972590078,-385577402,-1232404225,1183711012,1996443900,683081620,649527295,-25755649]},{"sector":6,"data":[-924316016,180650864,-15992693,-2037574796,1464925996,1342198456,-1427632496,-336557094,114179,1946418819,-1937864251,-14371191,1963064963,50234117,1187383157,-1461123442,615942912,713461247,1996443903,683081724,649527295,-1837694977,2011696784,180650864,-15992693,-2037574796,1464925996,1342198712,1390939792,-336557094,114179,1946418819,-1937864252,-14371191,1963064963,50234285,-2037667724,1178205994,-1927514884,1358900358,1344043704,1342177976,1342195640,-1729622384,612796888,-2088506369,16722622,703136628,579243519,-2037559041,-11469024,244383350,-2089826072,-1224800572,-1224736990,1996488480,-401698670,-998019031,-1907979770,146840,71116148,1024816128,91488262,1962959933,-1837695197,115871376,46433135,-1862371585,1862002702,-16595837,-55114,-1694554442,231074683,1687060096,1048648821,663911092,1719665780,1996488330,175570826,-1125642608,79987567,2122322411,192218766,-1878362369,1856890894,-1962752893,1593779334,1575324511,1426067146,-327029621,1448542454,16664263,343342848,-15567105,1996427382,-1740206834,-1773761200,773495376,-2037576251,-1202651336,-1924128810,-11495354,1996425846,2078728,926784080,1589906885,209095442,942015626,-385649657,2123170096,-1898935144,-17984,-1359822797,-114568713,91530995,-14827493,-1807316481,58048523,-1929342487,1358892166,1342179000,-1878231297,1852237838,184992899,-1925221184,1358903430,-1710590209,479572579]},{"sector":7,"data":[-15436033,1996427894,242679568,-15960321,1996425846,1354771208,115927054,-16087415,33441479,175570688,-1710721281,479572859,2122536171,125108230,-14579978,-1926925311,-11495354,1996426358,242679568,-1926435709,-1946219338,-1190717700,-1510866923,-401698652,518758823,-16087353,451608577,-13072755,526301264,178256,4569168,-401698736,-2037786937,2122579722,57934078,-1962888471,1040124550,242483201,1946157629,10610947,-16087353,-2037579775,-11469000,1671039606,-1927506510,1358903430,235697919,-1980235032,1040124550,1853161473,-15436033,1996427894,242679568,-15960321,1996425846,1354771208,102819854,-2037560085,-11469000,1671039606,-14903886,1996428406,276234002,-15829249,1996426358,142016266,235304703,-1980145944,1040124550,510984193,-15436033,1996427894,242679568,-11485141,1996425846,-401715192,-2037778773,1996488458,142016266,-1783399526,176589596,-1956684033,281697765,-326413056,185484939,1025144000,57999361,1023474665,57999365,1023470569,57999367,-352286743,1292415,2105450832,-388823887,1342177573,1279205274,1357868,2105450832,-388823631,1342177573,1279205274,1423404,2105450832,-388822863,1342177573,1279205274,112684,692631632,863017552,28843157,-1248178176,-1206086349,-1706033150,479540149,1342182072,-1791773286,1292316,881564240,347610261,-1952821248,-1206086348,-1706033131,479540363,-385875528,2122514567,-193658612,1342182584]},{"sector":8,"data":[1279248794,75052,-523041359,2105413259,199221632,2105451457,1342182328,1279248794,75052,-523041615,2105413259,200270208,2105451457,1342182840,1279248794,75052,-919934838,-2139259231,-938737948,2105413257,1183555307,232301324,2122553067,292885004,1342178488,116799231,1347469355,-984724070,-667484403,1088395789,1944661068,181034495,-326413056,-1207767933,-1706032378,743193770,201213577,-1710787136,231074316,1996443627,50772222,1012570704,1996434508,746109182,1354771280,1279122586,-25755860,1345094328,1342177720,1279122586,-25755860,1345096888,1342177976,1279122586,116570156,-25755824,-1792548198,-25755876,1279061146,1575324460,-326412853,1443556483,-780304735,636015080,179896321,-1948125440,-897086504,-862483565,-62486125,201217673,-385649214,1589903616,-2013911300,1946420663,15919363,2105556611,-2096204797,75333694,1048789109,1946195870,-60898247,-1484289242,-1752488443,1183385001,-94991880,-973709684,233568374,34686198,1283458164,1959067921,198741021,-1980926522,1586296950,-161575174,2124508139,-773271171,75240,-150992199,-1948742687,-1953249657,-1986803561,1451882566,1958874106,-128007155,424119078,458722086,1589906411,1200301820,1468737028,-129595130,-1929750903,1992685150,-989598728,-661908108,-1552628213,34686198,1156975220,74780687,17910912,1000695,-337611775,-25755766,-1946388737,1452014662,99747326,-1298509742,-1005730403,-1993933730]},{"sector":9,"data":[-1593446265,-388924034,19261649,4372736,1208345079,-1070903148,-848979376,-1956770363,1439391205,-326898549,1183536646,138808070,1589923700,-2013911546,1963197879,-2020923836,-1960442457,-1996117609,1451883590,-94466818,-335776059,291799047,494192126,-972302196,1988752245,-27357956,-990224754,-953809314,389255,650128128,99911561,-225998554,-443851259,313949,-2081649835,1448544492,-780304735,636015080,179896321,-1948125440,-897086504,-862483565,-62486125,-1694607735,479575944,628408331,-780304735,636015080,179896321,-1948125440,-927465512,-961020013,-25755757,251426559,-352296472,-25755894,251426559,-1577108248,-388924034,19261649,4372736,1208345079,548950164,-1070903296,-843015600,1187450309,-1593835270,-388924034,577896872,-1953216322,727120510,1704612032,-2096249395,-1589165370,-388924034,989856037,-1981320249,1600060030,-883038837,-2081649835,-1000995092,-2094660002,389311,1183546228,205916938,1589906804,1200301578,1468737049,-1005851877,-1960442274,-1960442809,1183385175,-27883012,-973447540,183237750,-1961540469,-259319980,-661857650,880068107,17908982,1156981364,477433871,-32414592,637951684,99651583,-1961278325,690363220,637923975,99915545,1000695,734098433,-1024747072,-1929611639,1586429534,-443851014,576093,-2081649835,-1957296404,1175127622,-1000508408,-2094660002,389311,-1960422796,637904775,95000459,-1979955575,1586298454,-59324934]},{"sector":10,"data":[1156983787,578027793,34686198,1686117492,1589968401,-1879103994,1149961712,458525465,-226023130,-1759959547,1959069172,198741021,-1982892602,1586297974,-94466306,1575324510,1426064586,-326898549,-1202301180,1727463434,-1948742906,-1953248633,-1986802537,1451883590,-2143386626,125043581,2105556611,-15960828,1996488310,1474825980,-2089817089,41779262,28855925,105261824,179892363,-1947797760,-62485512,972969611,1972619909,-862635725,-1204980333,1727463434,-1948742906,-1953249659,965986453,1972618887,-929613545,-1206815341,-420020158,1351895045,-1705983957,231066981,-150992200,-661977498,-1815562241,-1815693313,-100609,-401671050,1119419986,107411200,1351895045,-1705983957,231066981,-443850914,182877,-2115204267,1459747052,981911382,-16776706,1996428406,276234002,-1928431873,1358892678,-23165299,773495376,2122517957,92143624,-350231368,536131587,-1912977783,1358839430,-1912965377,1358892678,-16091393,532154486,1033523200,-955398857,129094,-15825267,794991184,-2037838395,-259260766,-15811968,-955484836,16660614,-1568211200,-955847682,33437830,241091584,256374310,-1925155824,385813126,343342928,-1710065921,479571314,-29835645,-1928563712,1358891654,-1782906982,-1961039076,-956390730,16715138,-15825267,-1157653936,-1232397163,-2100887902,-2091057395,1962935934,16705795,-22890869,-15826291,-1955893597,1889732678,172395371,-1200917853,-1706032124,743193770,-29587831]},{"sector":11,"data":[192266251,-974517094,374797,-16560151,-1191297866,-1706032124,743193690,-29575425,1345087928,1342178232,1279122586,1018625836,746109182,1354771280,1279122586,1018625836,746764542,112720,1037867600,-1224790964,-1934033348,45633580,-593866752,-1205056451,-11532404,-1694614346,479537122,1039681161,57933825,-16708887,-1912692042,1358892678,-22772083,-401698736,-998022613,1018625798,1954975230,1706578175,62410752,60444672,-1960031170,-1912692042,1358865538,-9140595,1354771280,-986290278,-1565095155,-1534947842,244338942,-2090584344,-2037579068,1183448740,1018625804,1022139134,1589914700,1207313934,58003471,-1929332247,385814150,1954975056,-1873799425,1457055758,561299467,-15810931,-9128307,-1064382324,872415161,-139529536,-2013713455,-219557378,-221703259,1954975140,1996443903,242679568,-15810931,-1064382324,872415161,-139529536,-1047836207,119459979,-1190363509,-1070333953,-772296974,1372203849,-1783323750,1958742812,209125177,-986750310,-1601795827,-1948742658,947915894,-16485028,-1946247034,67018886,-2037838778,-347013578,981911330,-16775682,-1694614346,743193836,-2033757717,-356,1751844551,350945285,-1928562945,1358892678,1088949904,79987556,-23296375,-23282045,-1927777280,1358839430,1751856895,1342198968,-85455216,981895630,-955847682,33438342,985563904,58000382,-2080509719,33438398,-1098708364,1946353210,21489923,638475972,269436918,1392932724]},{"sector":12,"data":[-986766950,713459981,748063230,343343102,-15567105,1996427382,-1807115762,1996430485,276233996,-1710328065,231026637,638475972,269567990,1996432244,309788436,-30624001,-30755073,-1181068538,-14903923,1996428406,-1689085422,-488039275,343342848,-15567105,-119626,-120138,1996427382,-1668179442,-957801323,209125120,-32995699,-845524970,-1005730513,-1960440226,-2037838521,-1960378859,-2037839033,-1977156077,-467005625,-32010613,-1056191454,-32012663,-31873408,413565182,-1960378626,-1960437433,-2037834921,-1769341407,-2037514717,-1924071666,1358862982,-986712166,780568845,815172094,-1924115714,1358892678,-30767475,847678800,-1070903042,810064464,37555653,-14846720,-118602,-119114,-119626,-120138,-117578,-1862389066,1380575246,-1928562945,385747078,-159973552,-755969,1996488310,1354771452,-18346352,1975520077,981911302,-2097150466,1963128958,981911302,-2097150466,50215614,-1098709132,1963261498,112645,-2037709589,1600060986,-899816053,-1957363696,49054700,755385995,121438210,52262656,-13724736,-942970201,482934342,1187456491,-350283010,-28915938,401284912,654198471,1309731612,1674268363,1674273739,1439392715,-1949606709,-443810234,182877,-2115204267,1459701996,-1199126698,-2097150466,8054334,-1162341516,381177895,496652341,-1206086214,-672595963,343342848,-15567105,1996427382,-1165587186,-2037559042,-1705967746,231026202,-21330291,1183666198]},{"sector":13,"data":[-1873799552,1405675534,544522251,-21315955,-1937738099,-1178562864,-1070333953,-772296974,-24643285,-1510807087,-1527592685,-14645619,537442384,-1165587120,1996443902,142016266,1342185400,-986235494,545688845,1996443903,-1302095350,-1098179435,-1232339076,1183710904,-1873799552,1474881550,-15992693,29230453,-1927615744,1358897286,-370667945,179851518,1505251328,244338688,-1949647128,67011568,-1098265484,-1232470148,-24904008,-955878140,33470598,175570688,-1710721281,479572859,-21461365,-443850914,1100381,612204192,453065736,-2082801710,61932002,2124538579,200746109,2115406288,-1957311619,1827439596,185484939,1024947392,57999361,1023483625,57999365,1023479273,2087976967,28865771,922701824,1889172148,-1206086349,-1706033151,479540149,1342177976,-1791773286,1226780,867539536,330833045,28856320,213405696,28856320,-358985728,-1927506637,-1202677690,-11525686,-9736650,-9735626,-1200918474,-1706033121,231028541,1342182584,1352156813,-1791800166,1423388,567851088,860658256,28843157,12118272,17596035,330888309,1183666176,1706578072,1855606784,-2144580546,1962973310,-1270971623,225706008,1342178232,1342535864,-1789492838,-373282020,1555562626,1183666176,244338840,-2090936600,-1073019708,381202548,-1785049088,-1993585599,-661941178,705054602,72321764,-1054085846,-28931776,1342183096,1344168120,-1694599425,479574310,-1198111095,-11534313,1996461686,-1188652290]},{"sector":14,"data":[-1511318379,-1559476597,1709772248,209617919,-1206815470,-11534332,721915958,-1706012480,231034445,232273663,1279319962,-12392148,-899816053,1435500554,-326898549,-1957275872,1175130694,-1928170476,1343680070,-15436033,-1197862282,-351419084,744275743,-1930529139,-1178562856,-1070333953,-772296974,-24643285,-1510807087,-1527592685,1344994488,384714381,350752336,306612996,1947485707,308200462,256374310,-1341885439,-1341985934,722772526,185747083,242488390,638738116,34555894,1756365940,783287019,-1960110686,1175130694,-1005685740,-165277090,1946423111,-344739836,-1573998590,1183525654,340134674,1589907060,1207313938,74719247,48980400,396504752,-1424047061,126494333,-1205127262,726674255,-14266176,-1207570249,240123905,-1006385432,645770014,99780491,-191395034,-498693883,-1947969911,969051331,1971169030,-1458161402,-1003326339,645768990,832702346,726251563,1354771280,-256377050,112645,-2065166768,-1491155965,-2020923779,-1960442382,17167511,1444012614,728217828,-461963440,-1193117953,240123905,-1962713368,1175130694,-1591642860,-388924034,19261649,702720,-661921289,-1815705717,-1815570549,-1981397367,535554134,-15436033,563745398,-1995586257,1451877958,-2143386648,125109117,-1986804061,-1953249258,1175184966,-1088326168,1988963418,-1898410770,-17984,-1359822797,-114568713,-372113785,-921459214,283878642,384714381,-394854576,-1696172289,231027896,1345031352,384714381]},{"sector":15,"data":[-1796731312,-394854654,-1673473,1996427382,-364475122,-28930736,-1558472112,1183387077,732936444,-327745712,-1192593665,240123905,-1207786776,726674375,1996443840,112892,-1863840176,241091586,-1215826394,712312837,-1014279418,-922369396,-1957670395,97846723,-1014280110,1376114949,99094096,1958742787,241091593,-1215332314,-323483643,1183535147,274107150,1376110853,216534608,739227650,241091664,-675807450,-1208015355,28837333,-401715200,666370607,1589923884,-1208015346,-14285349,-1207576137,240123905,-1207822616,-1001378753,-1070920098,-1208015280,28837295,-401715200,1471676927,1589923884,-2020923890,-768932429,318767365,-1202695470,240123905,721543912,932860096,-1977838307,-467007930,1183510667,-1963422968,1183386182,209125344,-625453232,381177898,-1705619456,479549966,-15960321,1166925942,-222801919,381177898,-1705619456,479549966,-15960321,1166925942,179851266,381177899,-1705619456,479549966,-15960321,1166925942,582504451,381177899,-1705619456,479549966,-15960321,1166925942,985157636,381177899,-1705619456,479549966,-15960321,1166925942,1387810821,381177899,-1705619456,479549966,-15960321,1166925942,1790464006,381177899,-1705619456,479549966,-15960321,1166925942,-2101850105,381177899,-1705619456,479549966,-15960321,1166925942,-1699196920,381177899,-1705619456,479549966,-15960321,1166925942,-1296543735,381177899,-1705619456,479549966,-15960321,1166925942]},{"sector":16,"data":[-893890550,381177899,-1705619456,479549966,-15960321,1166925942,-491237365,381177899,-1705619456,479549966,-15960321,1166925942,-88584180,381177899,-1705619456,479549966,-15960321,1166925942,314069005,381177900,-1705619456,479549966,-15960321,1166925942,716722190,381177900,-1705619456,479549966,-15960321,1166925942,1119375375,381177900,-1705619456,479549966,1342177720,-1793247334,-1956684260,281697765,-326413056,1988843095,108971018,-1977219093,1191479301,1031808582,-1980533504,1183581822,175540488,1015024107,-972458976,-2142887932,-227213252,1577744009,113925471,-326413056,1460333699,-1946211498,-8188810,-972653565,726543364,702719,-11513191,1996425846,-401698808,1183407615,-94991880,244319153,-1956788504,1586231374,-773729798,331875283,-61961766,-1946263927,1451952198,465644298,-62486061,-1963043191,805633094,1196295304,-1946663285,1183447638,173443336,-1703554549,-1770668021,-1980334455,2122517622,242483206,80086251,1015041568,-1980271328,1183517814,1600012300,-899816053,-1957363704,1223459820,1589925463,126494226,4205976,-1950857591,29280382,-1169781504,-1200160944,-1964503408,79987547,197543561,726300096,1996443840,1996443840,1996443838,-401698630,1347574857,1122504336,173982812,638028070,721573769,1996443840,1996443840,1996443838,-401698628,1347574821,518524560,106873948,638028070,-352168055,-432110808,561315950,2058632843,2058618567,1756896768]},{"sector":17,"data":[922701865,1438148704,244338688,-1950041880,-1270969872,67011450,1843987317,-931231233,-2084407671,1946207870,106873900,647610411,-1993996407,1589903959,126428682,39291174,-15698177,1689783926,-1706025428,479571314,-2081832917,-163148544,1996443670,309788436,-1783795046,655802140,-1929808243,-1178562856,-1070333953,-772296974,-24643285,-1510807087,-1527592685,1358317197,1342179512,1355433613,854068880,1975520177,-2081060052,2126780654,-2146637042,108277308,-2010774390,-2142877947,-277544900,-1945207159,1988694086,652184516,-352319546,276234000,-1207011585,1344154724,-1783795046,112668,-443850914,1100381,-326412912,1460202627,-28915882,-155320320,1803206407,-1896331577,105286507,158663737,1586181631,-348651528,46564205,-2096969853,-16582586,2122579526,-579073282,1074268833,179950123,-1980631296,-1962407402,-1650190,-963967370,1349220869,1349219512,-1790047334,1802805532,-523040079,-1954807771,-1318357482,-2115841275,184803554,2014219202,534872939,-2071346933,1183542158,2055506182,-159086229,-1258336249,781872014,1578931524,1575324511,1426064074,-326898549,1183471108,-1947981306,1183667952,1183666428,-2137370370,-14904008,-401671050,1996488507,142016266,-1790702694,1354771228,-1793247334,437172252,2059837520,-930356182,722093707,720500690,-945794844,-1949791366,-768931770,-466947593,135051344,207522640,1443133439,-1789260134,205949724,503318021,207522640,-16615425,74972983]}],[{"sector":1,"data":[-1705983957,479544401,1342177720,-1793247334,-443851236,576093,-2081649835,1448545516,414334595,-1603046400,-466978106,1183576203,-1981352178,-945752506,-1947981190,273058808,1183442935,172395512,1183442679,205949946,1183442935,1354771452,-1793247334,105286172,-1924078550,-1924074426,-1705968058,479541376,250902271,738093800,429543616,-14903996,546965622,-1927506620,1343682118,-1790690150,112668,490183248,1600003221,-899816053,-1957363700,216826860,-962570665,-1947981190,172395504,1183442679,2059903222,-125049814,-150190453,-129594905,-150583669,-96040474,-150452597,-62486041,-1705983957,479534391,1342184376,1358186125,1358841485,-1791459174,-193528036,-35002354,-1705983957,479544345,1342177720,-1790697318,-163148516,1016746006,-2095278780,-2096957882,-2096957370,-2096956818,-1929184146,1343682118,-1790690150,-163119332,-506113,1325398606,-163148292,1016746006,-1206086332,-1706033151,479534391,-443850914,576093,-2081649835,1448550636,414334595,-385649408,129499952,1183666176,1183666416,-2137370370,-14904008,-401670538,-1070858909,1142528592,28843157,546983936,-1608739516,-466978106,-1947318647,1727466054,-297401362,-1594734967,-466978105,-1947449719,1727466566,-196703764,-150583669,1177284198,-163149330,-150452597,1183444070,1354771448,-1793247334,-62470372,-164954111,-370901365,1996423387,-51900674,-196703236,1183434243,-230257686,2059800202,-1056707286,-361300144,-1790702694]},{"sector":2,"data":[-230257892,1090274859,1357399689,-1695910145,479544338,-1963571573,712689166,1354836973,-1695910145,479544331,66471563,-1991705530,-11475386,312142454,-1961061052,-970197946,1183578251,-972125454,65874554,-947171135,2059865738,1346945283,-1790702694,-394854628,243976075,-315983161,1346945283,-1790700902,-163149028,2059800202,-1054085846,-1966634160,58377998,-1706014527,479544331,-1947830529,-955348281,65874554,-1706014527,479544338,74839563,50087555,1963064963,-62456061,1963196035,-62456061,2059903046,-784276438,1992702952,-15275773,-1074104695,-164954111,-16690455,-401674122,1183579143,-1983511564,1183573062,-1983435790,-11475386,194700406,-14903996,1996482166,1142069988,1183521941,-1983446026,-11474874,194700406,-14903996,1996482678,1142069988,1183521941,-1983501324,1996483142,-955348250,65874554,-1706014527,479544331,-1947830529,243984966,-315983161,1346945283,-1790700902,-394854628,-1964358005,712689422,1220609005,1141611088,1996430485,-364475416,2059865738,-1056707286,312102984,186422596,-385649418,1183514782,-1983511564,1183575110,1221012466,1357792905,-1695779073,479544331,-1149185,312142966,-1961061052,-956041658,-498693824,-327745712,-1790702694,-495517924,-1695779073,479544338,737429131,-532248122,-1964083457,712689422,1220609005,1141611088,1996430485,-532247570,2059865738,-1056707286,312102984,-14903996,1183572598,-955348256,65874554,-1706014527,479544331]},{"sector":3,"data":[-1948092673,243982406,-315983161,1346945283,-1790700902,46629660,1963064963,-24951039,1191277827,2059903046,-784276438,1992702952,-23074557,-1979941239,1048640118,1946185298,1354771212,1350565816,-1790693734,-196703460,-1012920,-1705577866,479544331,1458992895,-1790700902,-227082468,-1963702645,712689422,1354826733,-1790702694,-159973604,-1963702645,712689422,1354826733,-1790700902,112668,490183248,1600003221,-899816053,-1957363704,216826860,2059837526,-930356182,-149928309,172370913,200689289,-955941440,63046,-159725920,-1955705306,-160024080,1988690806,2059903222,-930356182,-149797237,138816481,200820361,-955941440,63558,-159725664,-1955705050,-126469648,1988690806,2059837688,-930356182,-150190453,172360673,200951433,-955941440,64070,-159725920,-1955705306,-92915216,1988690806,2059903226,-930356182,-150059381,138806241,201082505,-955941440,64582,-159725664,-1955705050,-59360784,1988690806,1354771452,-1790699110,112668,1142987344,1183456405,1357130246,1358186125,1358841485,-1791459174,-193528036,-111024114,385238669,1144822352,-1956766571,248143333,-326413056,-1609765757,1183348832,2019664116,-1594538360,1183348834,2019795190,-1594407288,1183348836,2019926264,-1594276216,1183348838,2020057338,-1963243896,1183321670,205949693,-1963178360,1183320646,138840831,738084488,932860096,-14904035,1183649910,1183666428,1183469812,1357130246,-1789117798,112668]},{"sector":4,"data":[490183248,-443868011,838237,-2081649835,-1070922516,490183248,-1070916459,1142528592,28843157,546983936,723293508,-4697920,781865087,-1977838268,653659206,1183349447,138840830,2059871990,-2080618872,1946158718,-28377594,-1963176194,653659718,-1974437178,-466944442,1141611088,1183456405,-970525174,1183469690,1357130492,-1790700902,112668,490183248,-443868011,707165,-326412912,1459809411,-1946801322,1175128134,-14519286,2123040334,105810700,1589908459,947922440,638481408,-544538486,126410243,2144222022,207522793,-1962934074,-1956684090,147480037,-326413056,-1979519869,93849158,1183383565,448371198,-2080770304,1451835842,-28931330,1575324568,1426064074,-326898549,727078658,108956662,-553394549,1962950528,-25786107,-561309205,126541571,-401715048,1586233267,1174439944,2098527875,-1948652572,1988886110,50696,-443850914,313949,-2081649835,-1923737876,-11473850,-401733514,1187512233,-1962934038,1317733974,-2131653654,1962994810,-1948677359,3703026,28838005,-363951872,-242541077,-1947450742,955419609,721712128,1105914816,2081749379,-363951664,1577058744,-899816053,-1957363708,351044588,243172183,-1202424576,-1202716671,-1706022192,479540080,1342177720,-1791773286,1292316,867539536,45620373,-1248178176,-1206086349,-1202716656,-1202716671,-1202716652,-1706033151,479540202,1342181560,1279366554,-942109908,798036039,-1793964089,-2090472676,1963396734,1095723]},{"sector":5,"data":[-330920624,1357904,1047435856,2123181132,-1898935060,-17984,-1359822797,-1958096393,-1333279015,887816338,84835971,1183516789,232301324,2122524395,544538894,319585923,79171957,834162688,-1070903296,244338768,-11764760,-1710368714,743194847,1593835960,-899816053,-1957363702,82609132,16533191,67418112,1017813584,1183394892,1975520254,-401698806,-1070864377,-16737815,79232630,1520062468,-13874116,1773731446,-1070903252,1037867600,1996434508,746109182,112720,1037867600,1996434508,746764542,178256,1037867600,1996434508,747419902,243792,1037867600,-1866978228,1996443660,669162238,20782229,-1204980480,-1202679120,240160204,201214440,-955812672,130118,1048779755,1946163380,243732,91797584,1451334224,99294357,16533191,-25755904,1279061146,-62485716,-883038837,-2081649835,1448544492,-1710852353,479586640,-939637111,64582,1988886315,-14029830,1166870134,1620725761,-1961060888,-773944336,-991702557,641847967,-24954997,-2096794605,58004734,1207715583,2097053243,-125924910,-1946519927,1600060486,-899816053,-1957363710,209125356,-1710590209,479587102,185222793,-12419392,-63109002,-1592625665,101399190,158612120,-1959094623,-348481514,173968157,-472783919,1104322500,-786461914,-1948003869,-1958620537,88200343,1347551238,235304703,-335760664,140413702,1560283078,1426065610,-327029621,1448542466,-16873785,1996423169,175570700,-16742771]},{"sector":6,"data":[16824400,2112360016,176063487,-2141096678,16711870,113662580,-1929342288,-1090584386,-796095028,-4603762,-222284801,735180718,-771848199,329642729,245691081,201205736,-955419200,16711302,8832512,552272127,-1919766337,-1929445194,-1178562856,-1070333953,-772296974,-24643285,-1510807087,-1527592685,-1928825089,1358889094,-1710852353,743194076,-16873845,-443850914,576093,-2115204267,-16710932,-2037576586,-1202651394,-11534080,60426870,-2144580546,16711358,2122524788,242555398,-16873843,-24736432,-401714946,-2037515211,1343684350,-1779727718,-28931812,125812747,1187451883,-258,1996425334,-25755898,-1779747174,1575324444,1426065610,-326898549,-950642930,63558,556675,2122516094,108986374,-369099592,2122514617,242552328,-1207404801,-1706033133,479587102,1586171883,-773598968,-761281309,1200301633,-163149566,-796999669,-380593584,1183390869,-196687874,2123038720,-59339782,-561303061,-472783919,1104322500,-2092987610,91493375,1964310403,-129564905,1964244867,1996445199,2062028294,-230258177,981450763,-1946925313,1178205766,-13140492,1183577718,-1706016524,479586400,-561254261,-472783919,1104322500,637945483,1946306361,1978678020,-129594463,-1962056541,2122909766,-59340294,2122910187,-59340294,1593786857,1575324511,1426064586,-326898549,-950642926,-1466,235306627,1996426869,1292294,-350315952,65739925,-1996077429,-1072957882,-18283649,1352290304]},{"sector":7,"data":[-1994615319,1187511366,-1962933768,1988886142,8776180,1969291139,1526629171,1048803445,1979452774,105286420,-1962056029,1688468038,1816036109,-1159135219,-159973632,-1694992641,479586528,-504065,1256979534,1964310403,1816036165,1047855117,1141658,1975519744,2042123829,513429504,1025283563,645201944,1423446,2068887632,16824400,99094096,-191211779,-1206086241,1344174928,1347469355,1313446486,1191116800,-62485512,2146977337,-159973548,-1694992641,479586400,-1947056503,-773598760,-762868765,-728265919,-297367231,-990882167,-1960382882,2005607999,335512322,-8190604,-16550636,-8127930,-385649645,240582450,-2080446232,879678,1048815732,1962675558,-25261663,1593079433,1575324511,1426064074,-326898549,224829700,-939637111,-66230778,964863,-1293414832,1715373054,74714637,224659199,957179553,209059398,957179041,1970261510,8513795,224804483,-15698674,-1207081418,-1706033133,479587102,-15898973,-1207081418,-1202716576,-1705967618,479587126,-1552953695,1183518052,224830462,1962937917,330846223,513429504,-1994615317,82574918,224661247,1342202040,-1780063078,-62486244,629063691,-472786805,-1614486575,-953794094,5898823,1358853887,-100609,235758646,1344289000,-1779966822,1575324444,-326412853,-2096698237,235759166,922697845,330829158,513429504,-1994615317,-1072955834,330835325,1687834624,-1994615322,-1072955834,-55048833,-8655873,-1207081418,-11534317]},{"sector":8,"data":[916127350,-954427925,64070,1721830379,-28931827,33179335,-25755904,-83302386,-1980086781,-1072956346,1178142068,-1207600122,1055653887,704267915,444139078,1342181048,224802559,-56104946,201213577,-954171456,982598,1996429803,108462078,529524750,-16365943,-1705968010,479586400,-1946270071,-443810234,182877,1875785471,-12457970,-326412853,-2096960381,1963853438,-28915961,652947240,-1207535873,-1202716656,-1202685290,240123928,-2131042328,8033854,1187448692,-344287490,-28915963,-927453270,1996443759,-401698562,-443827834,182877,224804483,-2095483634,1619006,-1964440715,243712,91797584,1451334224,2079005845,224659143,246939648,922701824,-401732250,1722022897,2143292173,-1270971622,225706008,1342178232,1342535864,-1789492838,1711720220,-2097148403,235759166,117380980,512429412,-472838810,-1614486575,-1960427054,1721958983,1714880269,1021840909,-401698561,-927436923,1688293487,-838456563,244338799,-1195397656,726691784,244338880,-876314648,-2081649835,1448543980,184960651,326371398,-16091393,1996425334,1619974,82316880,721611767,-1946645568,503219191,498604925,-1983501568,1586231878,-1960792054,-1923614130,-234414536,1979932586,1590135802,1575324511,1426065098,-327029621,1448542416,185747083,1025537216,57999376,1023488489,57999377,1023658729,1064566803,1962941245,62777603,-2097079831,235759166,922689909,330829158,513429504,-1994615317]},{"sector":9,"data":[-1072955834,240126078,-369549848,-1070922183,-16370455,235759158,1090063848,-2096748311,879166,-401733772,-672587817,1715372800,225709581,949891,-401733771,-1008075122,242679552,-42342386,201213577,-2095415872,1619006,-1410792587,243712,91797584,1451334224,-1679221611,-25263360,-385649394,1586167978,-773598722,-762868765,-728265919,847677761,882280959,849265919,1065559807,-385649645,-1070989151,-1567513950,-14250548,448266871,513429504,-1994615317,-1072956346,-860333954,2122535053,309722364,188389025,1949997062,982950153,983045771,1586175467,-773598724,-761281309,529212993,-472783919,1104316299,1104451467,1375733253,1357904,-1729622448,-868318987,242483341,-144250866,108380171,-385875528,1586169149,-773598722,-761281309,1200301633,-28931838,-1543616885,240127334,-1862444312,1839458318,1349503160,786960016,-1949439044,-472777122,-1614486575,-1960427054,1183384135,-191213314,-14903905,364445302,513429504,-1994615317,-1072956346,1354253694,2122535035,309722364,188389025,1949997062,982950153,983045771,1586175467,-773598724,-761281309,529212993,-472783919,1104316299,1104451467,1375733253,16824400,-387445168,-2095780876,1619006,62393716,2025345024,-2120593403,-14903978,1538850422,513429504,-1994615317,423492678,-1207077888,-1202716669,-1202716581,199950360,1342178232,1342200760,1342183864,-1779747174,-871971300,113639565,-16739934,448331382,513429504]},{"sector":10,"data":[-1994615317,-1072956346,-860339330,2122535053,309722364,188389025,1949997062,982950153,983045771,1586175467,-773598724,-761281309,529212993,-472783919,1104316299,1104451467,1375733253,1357904,1088949840,-58817548,-2146271744,9292862,-401732748,-1072957944,-1612119179,-25755650,1342201016,-1779753318,-62486244,58703883,-1929323799,-2091865018,1979513982,982950162,983041547,-1767831180,-1743353030,-1960973510,-472777634,-1614486575,-1960427054,-773598945,-762868765,-728265919,394561,1085821010,-401715200,2122380239,58014381,-1929344535,-2091864506,1979513982,982950162,983041547,-1767831180,-1743353030,-1960973510,-472777634,-1614486575,-1960427054,-773598945,-762868765,-728265919,394561,1085821010,-401715200,1048834947,1946158824,2105450805,-388896559,-1191182043,-503906294,-1258295157,-1258318900,-1258318902,-1258318904,-2037541946,-1924071618,-1873763258,559671310,-12679542,1654653931,-1404663697,984434374,-341031283,981911360,-2089852161,452670,2124494708,-773271171,75240,-150992199,-1012767,-7091020,-7091532,-7092044,-1919695180,1358904966,1352943245,182980240,1049005345,981895679,985071615,1349819135,1609105408,242679805,-99227634,201213577,-1926398528,726707270,240144576,-1191466520,-1974461938,-467006906,138840656,-1404662448,1947728,1354771280,-1789260134,-47912676,251559555,1187451253,-1207959126,1183395624,-1470198618,-1962898711,-472777122,-2020875311]},{"sector":11,"data":[-1752481326,-2037825068,-1769341134,-1631256780,-2094596302,91558719,-352321096,-1983894782,-1960400314,1183384135,2143292414,-53155581,1095760,-350315952,1183390869,2143292414,799717381,2122557675,309722366,188389025,1949997062,982950153,983045771,1586175467,-773598722,-761281309,529212993,-472783919,1104316299,1104451467,-1996487163,1451861574,310281128,-15436517,1996427382,-1502150744,1342183608,-235542514,-2080609815,1946200702,-1304526041,544538648,1353533069,-5736705,-401693066,1078000306,-13203831,1538016966,1120333963,317414827,1353467533,-5736705,-401693066,-2037777774,1048837942,1962940594,14608643,11173507,1190541940,443810054,2059878016,-1207601651,65737238,-1995296072,-956352378,50281606,1048597227,1980594887,302561285,616039403,948341010,1015465727,954925567,17188598,1048582772,1980594887,310818821,548930539,948341013,1015465727,418055167,2059878016,-1207601651,65737336,-1995107656,-956352378,83836038,186121377,1947729414,5945368,-1962383625,173933528,402405060,-12810614,1946171430,951516997,2059837695,-930356182,-150321525,-945794847,-1947981190,138841032,726721015,1385844928,-1593835307,101390332,376707070,-150971720,-661976986,-1005953533,-1978139594,654261382,1183449224,-1947981304,172395248,1183578251,75014,-13465975,-1996208755,-1191235450,-11527666,1459564726,1353467533,-13191425,-13453569,-1789260134,437172252,914787152]},{"sector":12,"data":[96928767,1448083460,-13203829,1412285699,431509504,914762496,-1070903041,1510906448,246946965,-1298051046,1088475416,-1224780208,-11075792,-51530,738144950,-1873784640,1768089614,1593490921,1575324511,1426067146,-1197347701,-1906662514,-1559738741,-899838280,-1957363708,854361068,1183536727,16923916,-1377238156,172395267,1962941245,61008131,154996087,-385649408,222102424,1024322304,57999629,1996721129,17382765,-2115435659,-800668157,-62470400,1183514624,31752200,-2115090807,17959550,116852852,234917560,2122389109,1946224650,176063247,-2096532472,1954482814,54847747,134905473,-2095811583,1946684030,176063246,-147688065,9353222,-953518834,880134,826457856,-1932495219,-373256488,456983193,-385649407,624755476,1032745473,58130728,-352122903,609262212,-461373440,225354511,-1900542217,779356160,-1926149441,-661860234,-4603762,-222284801,735180718,-2015785991,-17922,-1957712142,-219557429,-221703259,-62470236,116850689,67145400,2122538356,695468284,-1926145345,-661860234,-4603762,-222284801,735180718,-2015785991,-17922,-1957712142,-219557429,-221703259,827244452,-1932495219,-1178562856,-1070333953,-772296974,-645138133,-4587897,1336865535,-372126837,-921459214,1187489010,-150994436,9353222,-2091355134,1946221694,828030761,-1932495219,-1178562856,-1070333953,-772296974,-645138133,-4587897,1336865535,-372126837,-921459214,1421845746,-797536975]},{"sector":13,"data":[-1064380276,872415161,-139529536,-1946604591,-1174501415,-1359806465,-775189681,329642729,-1952124215,1899825734,1983017985,18671875,1963008573,12445955,-873921674,2112768,-1125579915,8338688,557676660,-385649407,-806813545,-28915968,334049628,-28915967,199831904,-28915967,65614180,-28915967,-68603544,-28915968,-202821268,-28915968,-337038992,-28915968,-471256716,-28915968,-605474440,-28915968,-739692164,-28915968,-873909888,-28915968,-1008127612,-28915968,-1142345336,1863221248,1187450893,-382628610,243269806,-955249297,831848006,-2147442199,269315854,-1661057337,9759025,225382016,-28915952,-2014760542,1863221248,1187450893,-349067522,1863221371,1187450893,-349065474,-28915857,1760244158,1946231613,19152335,759020916,1033794561,-1502346962,1963028541,-13506301,-1997650294,1094513222,1513882748,1996426878,718838282,-998047744,-230258686,15943366,-1980610931,619445830,1023504941,-797507575,781434883,316385279,300683748,301732340,302780932,303829524,304878116,-1926145345,-661860234,-4603762,-222284801,735180718,-2015785991,-17922,-1957712142,-219557429,-221703259,-797536860,-1174503797,-1070333953,-772296974,-645138133,-4587897,1336865535,-372126837,-921459214,2123212018,-1898935088,-17984,-1359822797,-1991650825,-108793778,-1204257512,-1054146536,1979838603,1891587824,-797537011,-1064380276,872415161,-139529536,-1946604591,-1174501415,-1359806465]},{"sector":14,"data":[-775189681,329642729,1587868361,-1194166962,-1924136941,-1705979834,743194188,-1728052808,1996428523,209125134,-16091393,1996425334,769694214,1600003221,-899816053,-1957363702,49054700,-1710852353,743195029,-1946270071,273124312,-1559079029,378116086,1183553528,-955807482,266408007,-988657721,1575324429,1426064074,-327029621,1183514882,1958742798,81179,1206453109,343297,568918901,474371,-1243020427,11331840,1342182584,-1745733889,1279205274,112684,-1438743728,91488402,-349528392,713603075,863017552,28843157,-1248178176,-1206086349,-1706033150,479540149,1342183608,-1791773286,1685532,867539536,347610261,-1952821248,-1206086348,-1202716656,-1202716671,-1202716649,-1706033151,479540202,1342181816,1342177720,1342243000,-1705983957,479540202,1342182840,1342177720,1342182584,-1705983957,479540202,1342182072,1342177720,1342194360,-1705983957,479540202,1342182328,-17373170,-385875528,2122515053,-193658612,1342181816,-16873843,16824400,1047435856,-1098896308,1962999550,-1270971614,225706008,1342178232,1342535864,-1789492838,1161244,1088395856,-1070912436,-1207816983,-1924136944,1358888582,1342183352,1279159962,-21069780,427098366,414465667,-1207077888,-1202716669,-1706031752,479549057,-352317256,1358019,1070176848,-224187316,-8853097,420249219,-1175911564,-2098721279,-1304526066,57999384,-956194839,23165958,2097596160,-2097151903,9611838,-1632107148,-1207702742]},{"sector":15,"data":[815999624,112666,1100323408,-661967796,-1709934593,479537417,1342184888,1279366554,263737388,-1070903296,-1706012592,479541838,1342181560,1279366554,263737388,-1070903296,-1706012592,479541838,1342184120,1279366554,263737388,-1070903296,-1706012592,479541838,1342181816,1279366554,263737388,-1070903296,-1706012592,479541838,1342184376,1279366554,263737388,-1070903296,-1706012592,479541838,1342182072,1279366554,263737388,-1070903296,-1706012592,479541838,1342184632,1279366554,263737388,-1070903296,-1706012592,479541838,1342182328,1279366554,263737388,-1070903296,-1706012592,479541838,1342182584,1279366554,263737388,-1070903296,-1706012592,479541838,1342185144,1279366554,263737388,-1070903296,-1706012592,479541838,1342182840,1279366554,263737388,-1070903296,-1706012592,479541838,1342177720,1279366554,263737388,-1070903296,-1706012592,479541838,1342177976,1279366554,263737388,-1070903296,-1706012592,479541838,1342183608,1279366554,263737388,-1070903296,-1706012592,479541838,1342183864,1279366554,263737388,-1070903296,-1706012592,479541838,1635583687,28835841,-543535104,-382972864,2122579382,57939980,-1191334423,-11534332,721998902,-1873784640,925034510,232273663,1183570155,232301324,-1946317335,181034469,-326413056,949891,501810036,-2146125823,-1539899568,1059035768,397945932,922701824,530223894,-1205056449,-11534312,-1701466570,743194399,1342183864,-1783482625,1279205274]},{"sector":16,"data":[1488940,-63504560,1059035799,28847180,951603200,1889161265,-1206086349,-1706033151,479540149,1342177976,-1791773286,1882140,867539536,280501397,28856320,-4698112,28856320,-358985728,-1206086349,-1202716655,-1202716671,726663173,-358985536,-1206086349,-1202716654,-1202716671,726663173,-358985536,-1206086349,-1202716653,-1202716671,726663173,-358985536,-1206086349,-1706033129,479540363,1342183608,-1791718502,1554460,881564240,431496341,-1952821248,-1206086348,-1706033130,479540363,414334595,-385649408,347603114,330846336,381177856,-1063628800,-1206086348,726663188,-476426048,-1206086348,-1202716651,-1706033151,479540451,2122546923,1148520206,17596035,347632245,-912633728,-1557377985,414742692,-912633856,-1557377985,397972910,-912633856,-1557377985,431526678,-912633856,-1557377985,381195698,-912633856,-1557377985,887855100,84835971,1183516789,232301324,2122524395,544538894,470580867,79171957,951603200,-1070903296,244338768,-13275160,-1710368714,743194847,1560281528,1426066122,2122574987,57933838,-1207924759,-2091909119,9611838,-1632107148,-1207702742,-1706022264,479540080,1342177720,-1791773286,178204,867539536,381164693,-1248178176,-1206086349,-1202716656,-1202716671,-1202716649,-1706033151,479540202,1342181816,1342177720,1342204344,-1705983957,479540202,1342182072,1342177720,1342182072,-1705983957,479540202,1342182328,1342177720,1342193848,-1705983957,479540202]},{"sector":17,"data":[2122527979,141886734,-1559476597,652938712,17727107,2122522741,292886028,1342178488,1342191544,1347469355,-1578627440,-667484364,1088395789,28847180,181034240,-326413056,-1961300861,-1073017274,20781684,-385649408,87883920,-385649408,121438336,-385649408,1911226530,1342177720,-1834336637,-1207602176,65743542,1344967864,-1791790950,112668,867539536,431496341,-1248178176,-1206086349,-1706033150,479540149,1342182328,1342177720,1342183352,1342177720,-1791759718,1357852,112720,16758864,1354771280,-1791759718,1488924,112720,1357904,1354771280,-1791759718,112668,1183540971,232301324,2122576875,292886796,1342178488,135673599,1347469355,-706212208,-667484365,1088395789,-773116852,17596035,330877813,1183666176,397955304,1855606784,-2144580546,1962993790,-1270971468,225706008,1342178232,1342535864,-1789492838,1292316,1088395856,-1070912436,-899816053,1048772618,1946163936,-1975614691,376701119,1342182328,-11485141,1354718774,-1706012592,479568163,330830827,-1070903296,-835256496,1347440751,1055395408,-1957311506,317490156,1996445271,-380593656,1183390869,-1946211332,1156316790,-772120949,-991702557,641847967,-472834165,-2020875311,-1752481326,101007828,-1202695680,240123914,-2132488472,1965420158,-280589802,3157400,1963345467,-1983476982,1988753534,1198517246,2113699387,142016352,1342260621,-1779933030,-1947170020,-773598754,-761281309,1065559617,-1948486340]}],[{"sector":1,"data":[-773598754,-761281309,2005608001,1572361730,513429504,-1994615317,-1072956858,1183694206,2122535150,57998586,-1577095703,101399190,58014360,-1577098775,378223254,1961441944,-125924865,-1191283063,1600061439,-899816053,-1957363708,183271916,-125384959,-1207959298,-1706031096,743193770,200951433,-1878362688,-837162994,-1813397461,-92864767,1342703800,1279023770,142016300,235304703,-1979781144,-1072955834,1018708863,1687834624,-1994615322,-1072956346,1609106303,3979265,-429614512,1183390869,2143292414,21817603,-16222465,-1264911242,-1961060890,-472777634,-1614486575,1183531474,1200170750,-25755902,1342181560,737834751,-401715008,1996482301,5880062,-92864688,1342177720,-420747250,-1191282945,-11534248,45677174,-401715200,1996482265,5945598,-92864688,1342178232,-423106546,67520138,-158955472,-91846402,-75053314,1996423422,-91845126,129519870,-593866752,-13874115,2025388662,79188012,-593866752,-13874115,-2101806474,95965228,-593866752,-13874115,-1934034314,112742444,-593866752,-1205056451,-11531784,-493159818,1025283367,2004156417,737834751,1996443840,1095934,-135786928,-92864538,1342177720,-1191282945,240123993,-1645080,45677174,1996443648,5814526,-739766704,-92864538,1342178232,-1191282945,240123994,-957955608,637467270,-17398134,-17070456,-17004858,-25755904,1342201272,-17135987,-2103816170,1344050667,-1779747174,-125384932,-16776706,-325387658]},{"sector":2,"data":[-1876145092,1523050510,-17267061,-899816053,-1957363708,518816748,1187468887,721423100,702912,384335501,1470886407,2123040542,-18170,-1359822797,1598673399,736513673,-25785345,994509291,1216210558,-2147066229,-227203783,-1744748150,-293343093,2130053936,184452069,-1958223747,65262046,-394296355,-1949076224,65262046,-397948963,1996423169,-401713656,-1072955956,-1070875531,-1979941239,166461046,-1979941239,28900982,-1956684288,80371173,-326413056,-1207505789,-1706031610,743193770,201213577,-1878493760,-875698162,-16664087,112787062,1520062470,-2094248900,9611838,113733236,3147798,-375855090,200951433,-385646656,238879097,-385649408,-661978767,-472783919,1104322500,38243110,200951433,-385646656,-1202716327,-11534320,-1070858634,-823652784,-92864540,1342181304,-1191282945,240123905,-1786648,448330358,1996443648,178430,-1427632560,1975520228,18868536,135661255,1996423234,745126142,1354771280,1279122586,-25755860,1345087928,1342177720,1279122586,-25755860,1345087928,1342177976,1279122586,-25755860,1345094328,1342178488,1279122586,-25755860,1345091768,1342178232,1279122586,-25755860,1345096888,1342178744,1279122586,135444524,-25755824,-1792548198,81180,-1494678668,-1438743808,1366622354,1342182328,-1780063078,-62486244,58703883,1342213353,-1780063078,-96040676,2139013131,-771989877,-991702557,641847967,-2097002615,235759166,1721828724,-15865075]},{"sector":3,"data":[-1207081418,-1706033133,479587102,-59310256,-1780042598,-25755876,-11485141,280558198,-401715200,1996481638,112894,-92864688,1342181304,-464197618,-1191282945,-11534334,448330358,-401715200,-1070865342,-1239115184,-1073013611,649596277,1085820982,496652342,-14903878,-325386634,-1205056452,726691784,244338880,-1867681816,1481893902,-883038837,-2115204267,1459687148,-196688042,163053569,-1432727544,-1993585604,-1072957370,244320373,-372643096,-401734733,1183442894,1358078,-429614512,1183390869,1975520246,59566339,-1834336637,-2092076032,2113994366,-27358447,-472783919,1104322500,339706662,1048779380,1962940596,56944899,1342178232,1342535864,-1789492838,55896348,148113095,1586167866,-773598722,-761281309,2013210177,-420046334,250289301,148113095,1996423219,-429614346,1183390869,2126515198,-161576011,-472783919,1104322500,38242598,-2087798109,235759166,922685301,330829158,513429504,-350448149,224829699,-244087,163117174,1520062472,-13874116,280559222,1996443648,1354771448,-495720434,-1191282945,-11534315,28899446,-401715200,1996481121,6076670,-126419120,1342177976,-498079730,-1191282945,-1706033061,479587102,1946163517,112645,-1070923029,-2087193949,1946219646,-25755879,1342184120,-1191676161,240123908,199367912,-384600640,1996423802,-1915963144,309328,1037867600,1996434508,7387390,-126419120,1342178232,-504109042,225314503,1996423168,746109176]},{"sector":4,"data":[374864,1037867600,1996434508,746764536,440400,1037867600,1996434508,747419896,505936,1037867600,-793236404,1996443656,669162232,20782229,-385649664,1996423694,-226062856,12079358,62410753,60444672,-2144580546,16708286,-1098038412,-796066062,-4603762,-222284801,1238497198,-229734071,293521675,-1165954677,1965096690,-922007291,1317663359,-227111950,-17595706,-226063104,-1706027266,479587202,-335919479,-96024827,1996488702,7387390,-92864688,-1779747174,826457884,-17647987,-1064380276,872415161,-139529536,-201774127,453342374,-57920,225820683,-1191282945,-1202716559,-347013122,-92372166,-2093386498,880190,179843700,-2037559296,-11469070,-1710395850,10928,-1928936317,385806982,-343762352,1183390869,-25755654,1342206392,-1694861569,479587126,-1191676161,-11534335,364445302,-401715200,1996480858,1354771448,-1191282945,240123920,-2012696,79231094,1996443648,1751294,937954896,-126418975,1351470264,1342182584,1342178488,1279132570,-196688084,1996423168,178424,-25755824,1342201016,-519247858,-1191282945,-2091909029,9957950,414713204,-1207702784,-1706033127,479587126,-1913096449,1358885510,1342243000,1342177720,1279132570,-25755860,-17660275,1441271376,1975520250,-40638205,-1834336637,-2091813888,235759166,-1070922635,28836843,-837907712,-1983370385,1996485198,-59310084,48762449,-526757884,-14903832,125432398,15877831,-15865088]},{"sector":5,"data":[1996487798,-420999438,-230258429,-231681,1996486262,-404972814,199957653,-231681,-1264912778,-1206086170,726691784,244338880,732541928,614092992,186422710,-1207077440,-1202702810,-1706019264,479574557,-1694992641,743193836,1994919568,-1956684204,1439391205,-326898549,118274052,1017813584,1183394892,1975520252,-401698808,166315539,-59310334,1342639288,1279023770,-1900371668,201213577,-385646656,-1202716189,-11534321,-1070859146,1122504272,-25755681,1342204600,-1191414017,240123905,-2150168,1807285878,1996443648,178428,518524496,-25755681,1342205112,-1191414017,240123907,-2159384,79232630,513429504,1025283563,91553797,-352321096,-1547687166,1996454052,7256318,-350315952,423435413,-1207601920,48955393,-1365000149,-25755755,1342205368,-1779753318,1654044,28837237,721611520,-1827232832,-1191282945,-1706033041,479587102,1962940733,112645,-1070923029,-6966621,2025389686,513429504,1025283563,91553816,-352321096,-1547687166,1996462076,746109180,309328,1037867600,1996434508,746764540,374864,1037867600,1996434508,747419900,440400,1037867600,347614284,1996443659,669162236,20782229,-385649664,1996423379,1354771452,-1191282945,240123919,-2173464,28900470,1996443648,6994174,-1008202160,-59310114,1342177976,-1191282945,240124011,-2182680,62454902,1996443648,7125246,-1612181936,-25755682,1342178488,2024029827,-1207601920,65732614]},{"sector":6,"data":[1342178744,-1779747174,-25755876,1342205368,-1827258749,-1207601920,65732632,1342183864,-1779747174,-25755876,1342205624,-1783742845,-1207601920,65732632,1342183864,-1779747174,-25755876,1342205880,-1783480701,-1207601920,65732632,1342183864,-1779747174,-25755876,1342208184,-1745076605,-1207602176,65732632,1342183864,-1779747174,-59310308,1279061146,-401698772,-443854263,-1957311651,49054700,-505092082,201213577,1025867456,544473102,-1834350905,-661979135,-472783919,1104322500,339706662,-401734027,82573766,-135927794,-883038837,-1947432107,-1073017274,37556596,1031107584,1970536453,1946158909,-1201018017,-1202716671,-1706022284,479540080,1342177720,-1791773286,178204,867539536,1048779925,1946163378,-2146322390,178256,112720,885037648,297278613,-1070903296,887331408,314055829,28856320,-476426240,-1206086348,-1202683887,-1706033151,743194399,1350570424,1279248794,-1745837268,-352321096,205949704,-351414109,181034483,-326413056,-1207636861,-1706032637,743193770,201082505,-1878559296,-1021712370,1996447723,33798396,1012570704,1996434508,746109180,1354771280,1279122586,-59310292,1345094328,1342177720,1279122586,217233452,-59310256,-1792548198,-28931812,-1694730497,743193836,33455747,1048778613,1946195952,-1442396404,234881170,-336023064,82316804,1575324416,-1442396213,234881170,-873020696,-1834350905,-401735679,1439430327,-326898549,-2091493620,2113931390,142016349]},{"sector":7,"data":[-1779871590,-62486244,16664263,114176,-336167285,1983596033,-13139972,-1705637770,479586400,-1946663287,-773598760,-761281309,1066083905,1947467651,352289541,1183517045,-96040456,-1946269953,994639430,-982186426,2122958475,-193558026,-4717589,-1956684033,80371173,-326413056,-955978621,879110,65539584,1860871136,1098825739,-472786805,-2020875311,-1752481326,1183400404,-27883012,654073540,1964261251,1200301604,1860870914,427737099,224921287,1522008065,230182958,28856320,949637120,-352321380,1745274636,-956301299,-59839994,-401698561,-443854847,-1957311651,116163564,224804483,-15764210,-1207081418,-1706033133,479587102,1721828331,-28931827,1048494091,1860843263,-1780025702,-96040676,780058635,1342182584,-1780063078,-62486244,511623179,-472786805,-1614486575,1183531474,1200170746,-25755902,-1694730497,479585972,1048777963,1946163380,243725,91797584,1451334224,985144469,230182946,28856320,949637120,-1207959396,726691784,244338880,-5996568,235759158,-941681944,878598,-401698816,-443855019,-1957311651,82609132,225052359,113704961,3432,-1989161311,1048837702,1963855206,1714880274,1292301,-350315952,1183390869,-1593185284,1183386982,-28377092,16547459,1996432766,-25755652,-30939122,-1198627165,-1202704740,-1202716659,-1706033151,39992,-286781808,-954537138,879110,-1270971648,225706008,1342178232,1342535864,-1789492838,1575324444]},{"sector":8,"data":[-326412853,-955847549,879110,1875812608,-28931768,224804483,-15567602,-1207081418,-1706033133,479587102,-335788407,224829705,-244087,2122579534,1451098364,-231681,-1701943754,479586400,-375159,922745974,-526741914,-2095278616,2097217150,-28915961,233504768,-231681,-401670538,1183448449,-59310082,-362753,-593822090,-1206086169,726691784,244338880,-1868342296,1312811022,1048777963,1946163380,243725,91797584,1451334224,985144469,230182946,28856320,949637120,-1962934116,1439391205,1048833163,1962937708,1678165821,-939524339,-66230778,964863,-152564144,-214822,-1611359664,113712277,68972,224804483,-955875584,235759110,1715372800,208932365,224659199,-828307733,224699247,1349503160,-1173800264,1347554757,1343884984,-15960321,1996425846,108461832,1345267896,1342433208,1347469355,451415696,1875425433,224698704,1875772971,-401698736,922721730,-401732250,-899818189,-1957363704,82609132,1344476856,-555217264,2068625580,437172304,89954896,1150950549,-1206086397,-1924130290,-1705968570,479549538,50153088,-1191227650,-1924130290,-1202652090,726663200,-1684385600,-954428070,878598,1778829056,-1207959539,-1706026482,479529231,1344430776,1342180792,1342177720,10238106,-532774144,1433665562,1342178232,-1605320661,-466981297,1319129160,-773576082,240142568,-1191257880,-1605369853,-466981298,1346955473,711872416,-1605351196,-466981298,-1479894448]},{"sector":9,"data":[1488460949,-1070903105,-401698736,-927425933,28856431,244338688,-342202648,243736,1354771280,711872416,-1605351196,-466981298,-2031612336,-401698562,-443855723,-2091463843,1761342,-694545292,-1189309021,-1957597240,-401698576,-972315206,-927462933,244338799,1587916264,1875425483,1354771280,1978142352,1875425441,-401698736,-1382374059,-887319129,2105411318,-2129300223,2088416318,-2096270295,35173950,-401733260,65798052,-889192008,-2081649835,1761342,2122530420,947194122,2105411318,-1205242623,-2091860136,29329982,-654852069,-401698736,-927426121,1048793199,453079034,1356396480,-1528295792,9103769,-1793117286,8579356,450903683,-15567872,1996425846,108461832,-1784422246,1975520028,1748927337,125108237,225066627,-2143259648,1947929214,176062727,527761778,224921287,113704960,3434,1344420536,1342180792,1342177720,10238106,-2127566080,24185470,1048779125,1946160488,-2048389599,-2145653765,1964706430,1944587782,-1206916133,-11505720,1996425846,-401698808,-899833641,-1957363706,2122405612,1963065608,1876271142,994632746,460655174,711972000,972065764,259394678,956515469,124980294,-617551858,-2097102871,1761342,-1645673611,1876271104,994632746,1484196422,711972768,172374500,-727691657,205928815,-694139278,205928815,-927449481,1996443759,175570700,-1979156737,-467007930,-401698736,-1072980852,1048802420,1962962938,1875425389,112720,-401698736,1488492675]},{"sector":10,"data":[-1070903105,-401698736,1391171703,-15960321,1996425846,105286152,-1705974742,479568900,980729867,-1081459069,-1707903744,4626,712294410,1354717368,1342177720,1088949904,1875425432,-927417365,1996443759,175570700,-1979156737,-467007930,-401698736,1566481428,-1711273782,34268,10967450,1000000256,-1711275896,42841,-1941202229,516161536,-165243958,33929095,1503266165,-889192281,9511578,-1487300096,1439367168,-327029621,1448542648,-28670265,1187446784,-1962934018,1175129670,-2096729072,1962936446,106859289,1991,556675,1586169460,509448,-369098824,1183514820,205916938,230176884,-26282240,-184291189,28634753,519995019,209125206,235566847,-16367896,1996426358,-1645736438,172394752,-2096343415,189205958,-1982040638,1183579774,1250331134,-28377090,142016286,-15698177,1922698870,-954427987,260678,16678531,230182012,-26282240,-2104627061,-2037776820,2123103816,-95515650,-28789109,-351775093,64588554,-2012968230,-2143205881,-243990468,201094793,-1962314497,141986777,1096548550,-28791165,-797356275,-1979810167,1586231886,-95515898,-645197943,-972523893,-2037710848,1600061002,-899816053,-1957363700,49054700,105286486,1963476491,-1715459323,1586243307,108447230,1959068651,256177941,-160169728,-1945733495,1586366558,106874110,357010214,391613222,1575324510,1426064586,-326898549,-1957275900,2139096670,125123073,33441479,-955913472,65094]},{"sector":11,"data":[-74774754,872415161,-139529536,-242529839,2013458051,-1949594868,1547206873,2035155828,1979059190,114181,-167044373,-164952451,317440043,16678531,-24966540,-1207601918,48955395,1600046731,-899816053,-1957363710,175570924,-7608306,-1962260991,1065355870,-16550564,1996425798,108461832,175570718,91023374,445021,-2081649835,-1957296404,130418270,2105712896,2105808523,-1979955575,-1039401386,1586177652,-1961915896,1589905014,255338236,83760756,-1182299354,-1752488443,1183385019,-27883012,-495599093,-1946401141,-1956708778,80371173,-326413056,1460595843,239504214,1964000779,209125137,1358055053,-7018482,-1995553143,1183518806,273025806,1589906292,-2013911538,1963001271,-373282043,2122514632,192217094,638475972,95913974,-2081786620,-956101562,63558,1183432747,-196703754,-1207140725,1464860764,2908314,79987456,1015083147,-955812608,129094,80097003,276233984,-15829249,1996486262,-401713164,1183383676,-162100748,190579910,722105794,209619392,-335907191,1207864157,16285315,2122953076,-92894964,-1962254709,1452012614,-1995994634,-544538025,1962950528,140413708,1200209963,-351827710,276234021,-15829249,1996486262,209125364,2287630,-1979955575,1586232918,-1995994872,-1039465897,45614452,-1207702784,1599995905,-899816053,-1957363700,283935724,185091723,225708614,638082756,639190923,-350529653,207537163,71797542,106400550,-1980742007,-1039404458]},{"sector":12,"data":[-1070922379,-1921782887,1343681606,108461854,63760398,1589907947,1200301808,1468737045,-263812841,-1947052407,1175187526,-1924827918,1343681606,-887041,146337910,244338688,187809256,-1927449152,1343683654,-1947187573,134607446,-1202695680,-1873805309,832628750,276086795,653287108,1001463,732394497,-1377068608,-1947187573,-443813290,707165,-2115204267,1459667180,209125206,-16091393,1996425334,-401698810,1996453366,175570700,-16222465,-2037578122,-1924071614,240167494,-1912870680,-1929428290,-1178562864,-1070333953,-772296974,-800159415,-1165954677,1952251713,-800653560,-12418362,-797537444,-1926818113,-1929428302,-1178562856,-1070333953,-772296974,-24643285,-1510807087,-1527592685,30295751,-800667904,-1098186752,1988886336,-830569560,-954633216,52806,-12417395,440400,-733573808,-2053727664,216727552,1356088973,3020442,46433024,-166989685,-24958604,-1591446510,1183414964,-1274624046,-1205993350,1448091144,1342199480,10000026,-1946645760,-1264332218,-1090262150,-8191999,-2096794623,-1720384769,57996811,-1929345303,-1924074938,1343663174,-54073330,-1981135221,1183562054,-1220113940,719931018,-1152480284,-1056191454,733693577,-1018787392,-2134817143,-2130789018,-1946239898,1452011078,-985232912,734484105,-884569664,1355368073,380389005,209125200,-16091393,1996425334,-797507834,1638042,1975520000,209125148,-16091393,1996425334,-1993696762,-1070916459,-12534135,-341281143]},{"sector":13,"data":[-800653492,58062347,-1979776279,-1979760450,1996466294,175570700,-16222465,714737270,-14903927,1996426358,172395274,84694667,1347552754,-85455216,173982825,-259552986,318669573,-1070922636,28836843,-1956684288,147480037,-326413056,1464921219,106873942,-943750362,57934341,637585129,95389579,-1282997466,-385649659,1183645879,105912030,-1384998317,-1866523499,-512324299,-1064380276,872415161,-139529536,-2013713455,-219557378,-221703259,-562131548,-1064382324,872415161,-139529536,1317620177,-947280,1120317510,1988844766,655802288,-1931578739,-1178562856,-1070333953,-772296974,-24643285,-1510807087,-1527592685,1353860749,1342179000,1356744333,3023258,113541888,201213577,-1003326016,-2144991650,-284837977,-1070902522,-1866969008,-1070903243,1985911376,1996423168,108461832,637951684,94484479,-1615331546,1340608005,-1956684035,80371173,-326413056,1443556483,-1962522997,134547542,-62486272,-1946265975,1451952710,-129595124,-1929750903,1992685150,-2146309370,326369340,-1979031868,126363140,172425030,1983633548,-1981254916,1586234998,-161575416,654073540,1946173312,173982784,638207743,-1959917626,1452014662,105286142,-2096605559,-989594554,300615286,1946172544,173982739,-2010774390,1191134727,1004047370,-395117450,-1945733495,1586366558,173982966,509478,1177273227,-443851016,576093,-2081649835,1448545004,-1962260853,134548566,-62486272,-1929488759,1992686174,-1004213498]},{"sector":14,"data":[76155486,1174898726,-351648001,3964950,1183520372,-27882500,1930053177,540835851,-2142839435,-445305284,-1945733495,1586366558,-62485510,972969611,477301318,-1727379925,-1980348791,1589966934,-1950340598,-74713522,1183558386,172360182,-351895868,1031808519,1191670830,4030502,2122969973,138841094,66864771,-2144936053,1031012415,-1945745665,1992685150,-1004213498,76155486,1174898726,-351648001,3964950,1183520372,-27882500,1930053177,540835851,-2142839435,-445305284,-1945733495,1586366558,-62485514,972969611,477301318,-1727379925,-1980348791,1589966934,-1950340598,-74713522,1183558386,172360182,-443850914,576093,-2081649835,-1923739412,1343681094,142016286,-18552818,175570718,384976525,820514384,-263812610,425603,783821684,1996443648,744528392,-998047744,-28931836,359972875,2139150475,225771521,66090635,80087670,21284398,-443851264,445021,-1192457387,1344175510,-16222465,28837494,-107327488,622630317,-523173887,637951684,-2146349173,-1056178719,289900838,289928742,-166497278,-2139259386,-165279883,1963331399,112645,-1070923029,-788528859,106874080,290425638,201187712,1200170689,80370961,-326413056,637951684,99256263,-1070858241,-1558706525,-899868668,-1957363708,82609132,-919906729,-1961853301,132845174,92800138,-2143205562,-193658820,-1995407735,1317604982,-2126850,130420806,274631456,-972011777,1182998535,1996423934,-488108532]},{"sector":15,"data":[205914615,-2146673013,58022975,-1962129665,1988825214,-28407028,76154859,1195771272,3964993,2122970229,209094928,-2080485751,1946159230,105286447,427673659,1183433003,-1327526916,-61961440,-1426979042,33310347,1174535750,276234000,-16091393,-401733514,116064272,-972005749,1599995911,-899816053,-1957363700,317490156,-1949750442,-2011123471,1116272706,-108838416,-1980728314,-1070928306,-1996601720,1183708742,1183535349,1347590408,-1705983957,53924,1358775949,-1727641973,-1070903214,-760964528,1183645696,-1924131079,1343680838,505541304,1996430928,-1069114870,-998040427,-443851248,445021,-2081649835,1448542956,2123040542,-18166,-1359822797,-1991650825,-1957233074,1988823678,-18164,-1359822797,-114568713,-372113785,-921459214,-1956731662,1979973238,537183756,536954054,721831563,53345862,1996443648,38046984,713333328,-998047744,108956422,-972267893,1577123649,1575324511,1426065610,-326898549,1187468806,-1006632708,1183451742,121120262,-1073082251,942016116,108331335,-369098824,1187446982,-956301058,64070,-1979031868,942016070,168850695,637957312,1963018040,-28931322,-1006591511,-1977218466,171808775,1039037440,-378273779,1946165309,6176024,2122528884,309592316,16533191,-28931328,-335919479,-62470395,1183514625,1178290184,-2091089922,1946221694,172425032,-989968641,-2144990626,-1451941825,112783339,-869337344,-992441587,638440502,1979594883,2021861045]},{"sector":16,"data":[-1367998718,638213828,1828814720,-2144991372,1967980927,130426525,1204168205,1894320641,-92371969,-385649408,1183580007,-16126982,1191181894,-12261110,1575324510,1426065610,-326898549,-1957275894,-604568482,918873041,-1960405094,-804912384,-770274547,-129595123,1392137865,4503632,4241488,-622326192,-28931586,2113946429,-28915963,1183514691,-62486018,729726987,-1962516853,1452013638,-28406790,-74716719,119468171,-220557794,-1543408731,-28931297,17188353,-654837690,-1946401279,1183448646,4472316,1152917629,-28955904,-1946794359,548406878,-1946792309,-234414341,-163148886,33310209,1586169414,509446,-443850914,311901,-2081649835,1448545516,16533191,231776512,231872139,-1980217719,113769046,30882,-150993224,-1962030034,-734608168,948119053,638023167,-16615293,1996429684,-126418950,1342194872,1342193848,-32249842,201213577,-1206026816,1344154810,504229048,-92864688,-1694992641,479576134,-955464573,65094,972965515,780008518,-1979955669,1586230342,-129594372,-1946528117,-372116402,2068889485,119468171,-220557794,-1543408731,-196703457,33310209,1586231366,1351075580,79167611,1354256532,244338811,-1954109976,2126838862,1031808760,637957130,1963801984,-347651836,-125924880,-1980086644,-242484146,2023890571,-472785929,-1751499068,-13530842,1996487286,4503800,4241488,1659375184,-28931587,58507275,-1996451351,1589967990,-129564680,168281638]},{"sector":17,"data":[-1955028290,-150667492,-991702565,-6841802,1183579206,8988412,-1943204673,-1178562856,-1070333953,-772296974,-28407479,721437880,-1037329983,1183447249,29426678,2122579014,394133750,-1325900092,-162624736,-1426916469,32917131,-654837690,-637439,1996487286,755808504,1996443678,536255230,1183514624,-129629698,653811396,-1962080314,244055158,1441495202,-1946257917,1174535750,2062066168,2023886475,-1054088751,91735611,-335776119,-993096749,49019006,-2144975039,-126612163,-1929871735,-242484666,-2144936053,74779199,-129564858,2023884543,-1946223127,-774113319,-1707162397,831071895,68041025,-1980991596,729326094,-521645888,233480457,1586760355,1575324511,232038851,232130059,922684788,922684886,244321748,732885480,232170432,-1022503773,-2081649835,1187384044,1187389692,1187389694,1187389688,1048781050,1946226138,-633437421,208929293,232406659,-1207602172,48955393,1183432747,-398556170,242419469,233315979,232818570,-369342840,1048772923,1963396584,-1816289226,-2130950520,2123611710,619250549,-1816223743,-2130819448,2123611966,350815093,-1816158207,-2131212664,2123612222,82379637,-1816092671,-2130641943,2088416318,-972655319,-346620858,2114385531,125043069,2105556611,-2091420411,7338558,2122526836,108331254,1358710470,1048795883,1946160488,-62470645,-28916152,12446019,225066627,-958303232,-968295354,-380436922,1048772779,1946163936,-1975614701,208928959,16154243]}],[{"sector":1,"data":[1187382900,485184764,838616774,-2136926485,146813,54339188,1025995776,-394985468,1409042118,1024318113,175243265,1979712061,277783,1187393140,1575702270,855393990,1187439339,-588555780,1308509894,705551520,15738340,-388823887,1183334660,232562936,820711204,232275587,-972655359,-347079610,-666991832,108331533,1140606662,1187388395,-593476354,-129595379,91573564,-345054560,232300549,1183334660,-58818310,-2146798253,1951334014,-62470652,-62485967,-1971706206,664993350,-129594758,-1971705694,698546758,705087098,113705082,527848,-1017256565,-2081649835,-950662932,64070,-1962028895,-1995582954,1451883590,2062066174,1945781817,-60898259,557809702,1187475061,-352321288,-129564925,-375041,1586232390,-59339784,939821606,1970939527,133923594,-4660354,-1001460737,-2144928674,1014309183,-2131206517,544876223,-1082128524,1962965542,-129579227,283836416,1475903105,-2916607,1191180358,-62455814,654073540,1967144832,-96039961,1325338603,-61931526,-375041,2028600390,-443851009,-1957311651,283935724,-1550600031,244349672,-1983319576,-1072955834,-504822915,933120,683151221,-129595089,-1191551348,-639029458,-27358464,-472783919,1104322500,38243110,201213577,-385647168,-1202716492,-1706033136,479587102,201082505,1026981056,309723132,188389025,1949997062,982950153,983045771,1586178795,-773598724,-761281309,529212993,-472783919,1104316299,1104451467]},{"sector":2,"data":[-352319995,799717387,-1930410359,-628297122,-1980217719,1996487254,1030398,-350315952,1183390869,2126515196,-246474,-1767828875,-1744434374,-1593215942,378223254,720059032,-771989877,-991702557,641847967,-472834165,-2020875311,-1752481326,101007828,-1207178496,1183395002,-228684560,1183439500,-162100748,-1430777109,-129595089,-1191551348,1183395002,-161575692,-624897,1996485750,-126418950,506243256,-768147632,-801702131,-1069114867,-443868011,1048822621,1962937704,1782481671,74711053,803979307,2049326720,-2131397296,1316628286,1048580213,1965062696,691962087,276045946,1048633067,1967421991,675184855,-286571654,-1023409736,-2115204267,1459658988,-62470314,113704961,30882,425603,112729460,-869337344,-992441587,638440502,1979660419,2021860898,460717826,-1207807767,787939334,-661975604,232011460,-16726234,1086793471,-2080375038,904254,1709716341,1975520255,108954391,-1004112896,638440478,1979596675,2139301404,360054530,232005316,-33044698,1204233983,-385876222,-18219512,2058920193,-1946663287,-440434472,141843597,-956807425,1552803463,-1074241909,-1215484822,-661877274,-4603762,-222284801,735180718,-771848199,329642729,-1918569783,726728262,-424128320,-2070261619,-2097151954,-1073019196,1790458484,-1202708948,1344156258,-10320243,1184518166,-2095278656,113708228,69070,1345465528,-10320243,-1172465072,113712277,3534,16533191,23783680,425603]},{"sector":3,"data":[-1125579916,2062071808,22984784,-768147632,-801702131,-25755891,3054746,180650752,57982987,-956222231,33513606,440320,231485175,918870155,-1070920236,37783846,-2097116890,16736446,-152501387,2062071808,-1204355248,231776659,231872139,1375821317,-25755824,3054746,180650752,57982987,-1593782039,104436664,208894696,2062026369,-2033778338,65376,-62593010,200951433,-9339712,1586231878,-801716998,947922445,653292554,1947023488,440554,231485175,918870155,1183518164,19307002,1343301120,1354771202,-150993224,-1962030034,-734608168,1895769613,822027778,-1694599425,10762,-1207384957,-11502872,-7096266,-15871434,-15871946,-1667563914,-2097151954,-1073018172,1072388468,16402119,-94467328,2062032387,231749316,-1962898906,-2010711458,-96010496,1593474689,-1193116671,787939334,-661975604,232011460,731101345,75474,38801702,-1191247639,787939334,-661975604,232011460,-16726234,1086793471,-254,-560267658,-2097151955,512426692,-2017035592,-402616858,1183577978,-1956684036,46816741,-326413056,1443032195,1452001579,-1948677362,574128370,1317619573,207522814,126468491,-1946269953,1317736022,-1948677122,574128370,1317623413,-1947104258,2021658206,628456961,-1962254709,-1962440250,1191118942,-28931074,1191118729,240552958,-335655285,1157202745,1317610364,207522814,-63545,-955621749,-1946157305,130484318,1586233343,-16267514,-339727361]},{"sector":4,"data":[-2048179929,2101672323,-1712635435,2101672323,-645185075,947974795,-1980664450,1586232910,-1983804666,112647,1575324510,1426066122,-326898549,-1604954268,1183355920,306613154,628408331,1946161213,1129754,-102169739,1195264,322768244,1024750592,57999387,-1207926039,1491664897,2023923970,-1929227543,-11490234,-957870474,-1404662283,-1505325744,-28930736,-1605989040,-1438216880,-320336304,1958743038,-1538865202,1183514624,-1471772256,967460491,679454790,1084245547,-1952692599,1988863070,-775386208,-1128296983,-1401778797,-1510865122,-1952185997,1174510662,-1538915928,-962306421,9682055,233309895,-401735673,2129200778,2023924223,1930315321,-1404662444,242679632,-1913304856,-1924092858,-1924094394,-1924071866,-1924095930,240167494,201223912,-1959889728,-1958631858,-1401257743,-1980271584,1988864078,519121918,-1961855233,-1404858887,-1705619434,8182,-972005749,585695232,274631679,-385873978,-1566441703,239483256,250151794,-1404647681,-1387885280,242679632,-1913332504,-1924092858,-1924094394,-1924071866,-1924095930,240167494,201196264,-385649216,1183514906,-1606014038,-1996470523,-259282874,11289286,-2086121729,2084874366,4438052,-139966933,-1673098792,-1331136885,-1672574176,-1401254403,-1426979050,-1673098244,1174526199,108954536,-1962511360,-358412730,108954381,-1341885440,-1341986047,-1639544804,705185418,-1963947036,-125066682,-1811007745,1342260621,-1404662442,-1502150832,1342179000,-1789260134]},{"sector":5,"data":[-28931300,1218856491,-6535543,-1953231306,-956062138,-1957277632,-989616570,1342198573,-1969457409,-466969018,1510906448,922688661,1183552526,1355219966,-1438217386,1395508483,-4698112,112742655,244994048,-1977838246,-466967994,922744971,1166906382,-1957277695,-1970008546,-467008441,61228547,-1974452025,-467008185,1342719491,-1952680193,19203654,-1070903296,-1308214960,-1341885416,-1341986047,1357130246,233311888,-37230285,-1811007745,715277962,-1974451996,-467007418,-1404662448,-18352,440400,1510906448,-1561781099,-1956684035,248143333,-326413056,1465183363,75400022,-1591315456,-1992290838,144814150,-1337575020,1183384445,-1811373648,-1811675645,-1582545271,1178171554,-351439188,-1337538808,-1566507008,-1404663432,-1951369589,32222334,2113354566,-1203335891,585651792,-1203335693,-1270444720,-28930736,-1371108016,-1236890288,1223167568,1958743036,-365524521,-1300854515,1988692459,-368654414,1593835277,1575324511,1426064066,-326898549,-1588177068,1183421448,-365001808,125632525,-1811675645,-1592923485,100897800,1183421444,-365524052,-969191923,1988690814,-1401517140,-340754805,-147108351,1183657340,-396996424,1183707813,1183666360,1183666356,1183666430,1183666350,-401715018,-1072956469,915003252,1988693482,-1995838542,113750646,-61974,-443850914,-1957313699,205949932,1962936125,11987203,1962936381,15722755,1946223165,15984899,1024083595,913571849,1946164029,18955595,574452596]},{"sector":6,"data":[1031500801,1467220262,1946232893,-1811629989,175570768,-1873756117,-2044336114,722368255,26890432,-384002723,1190592693,1946288136,-14686203,28837867,-1930932224,-365001730,125173517,-768884693,-1207919895,-1588554748,103484906,-1873767414,-2136152050,-1207926551,-1202678780,518782975,1351877816,-352321096,-1811630059,112720,-1811675605,79169771,77680788,-1202698092,-1873805311,2137778190,113724907,-61974,232275587,-402295550,132906673,1342177720,-2080497944,-15865282,79171956,-358526828,168176397,244338836,-1199553048,-1202678780,-1873805311,2108811278,-1191228951,726701060,244338880,-1199725848,1642659841,181034495,-326413056,1459940483,178262,1100323408,-661967796,-1995159669,1183579718,1958742798,81195,-1259797643,212225,367592309,474369,99156853,539905,-1024916619,670976,1172898677,11659521,-940319256,7053830,178176,773371984,863017552,45620373,-1248178176,-1206086349,-1706033135,479540149,1342182328,-1791773286,1226780,867539536,347610261,-1248178176,-1206086349,-1706033131,743195029,-1946401143,273139672,1204242253,-1207057134,-1202678780,-977648722,1397772813,1342177720,-1974419413,-467007673,704991114,1220619245,105351760,1334502442,1354836740,1350258872,1342182840,1347469355,-2098721136,805750650,-1207959148,-1202678780,-1873805311,2090985486,-1807612218,112646,-2097055255,7053886,113715573,93090,-1808791865,-1070923776]},{"sector":7,"data":[-471331248,1975520246,178185,936811088,364391500,-543535104,-1205056448,-1873767420,246611948,-343413528,1040631743,-352321254,172395447,1912676669,19152303,641534582,1023767553,-1602944728,738096895,26890432,-1206086307,-1706033131,743195029,16955472,175570768,1347469355,-1791340902,1423388,1088395856,1877552204,122063615,-259267542,-1979519357,-125106618,-1811630001,-11118768,1996425846,-401698808,-1072988197,1206453109,910066687,57933972,-1191232023,-1706033131,743194847,1351877816,1996445271,142016266,-1326969200,-14620289,1024214667,309592081,1946161725,1260926,339571316,-377785344,1048837894,1962937804,-838416612,-1207959283,-1202703828,-1706020296,479574557,231605959,-471269376,-871432194,-802258163,109250061,-1207528520,240123905,-1191849752,-1202678780,787939334,-259322420,232005316,71338790,-1811413461,1354771280,-1041756528,-1811629956,1354771280,-1595404656,-23271038,53274638,251565545,-385666840,113770126,396776,780302,1593737705,1575324511,1426066122,-326898549,-2091493522,904766,1048643701,44633548,1048779388,1962940596,48687363,1342178232,1342535864,-1789492838,47638812,231489155,-1200980992,787939334,-259322420,232005316,647235745,-16498551,-2096247802,101568518,-1816646013,-1811630074,-1811373744,726718711,244338880,-394517528,-1070862023,115871312,1958743029,-1811630065,1354771280,-186118512,41871745,231476991,231747203]},{"sector":8,"data":[-1207532794,28837523,-401715200,1709831389,-871971070,-956301299,9680902,-254220256,93567137,-1873804962,-1618876402,-1995583325,185455126,-1878493744,-1638602738,-1593693207,378211792,-33223214,-1751473377,-1751378295,-1559375711,378080724,109252054,-2096755248,110344238,1342506424,1279044250,-1471772372,141934603,401084048,32237982,-1196919041,-1706031867,743193690,-1196919041,726674590,-593866560,-13874115,-390551434,28856365,-593866752,-13874115,-222779274,62410797,-593866752,-13874115,-55007114,45633581,-593866752,-13874115,-1934055306,79188012,-593866752,-2094248899,1618494,-1410792587,225615872,1183441962,1947110048,65874445,-1992277823,1939905606,-1947981299,1963887352,1086391053,-1438217920,319145771,-1177408768,-235470828,-1952561527,-940571657,42566,714884746,-1740207644,-1985984886,1183553094,-1606014052,-1919662455,1183428678,-1434567790,-963951501,1727514411,-1404663404,-1158993480,1347554757,-5474561,-947153290,-11475926,-963929994,-1705974742,479572390,-1986896245,39291143,1979973259,-1840872546,-1505296636,346455683,2122954620,-1703507538,-1705983957,479590158,-1994772319,-660495290,-1572435699,1343058616,-1599572225,-467006094,225681488,632199760,1183525964,232301474,-1549515125,1048779312,1946163378,225681514,1183441962,66620334,1187487358,-1979711322,1183423558,-1605989742,-1953216887,1357808629,967460491,1014214214,1141572747,-1205636094,-977605765]},{"sector":9,"data":[-11513331,1183487094,1357130414,-1953335553,1357130439,-16616193,-1312122316,2122914965,-1635908690,-16464253,2122556998,-1132718938,-946176375,1719814,-633437440,527762445,1635518151,113704961,24957,1342177976,1279366554,-2585812,1033507959,-14903975,-325408650,-399750084,113766030,-62004,233309895,1599995912,-883038837,233309895,-401735680,-942932759,17688582,-555217408,113757180,134632,-53221362,-402208821,234881805,-872625944,233309895,-401735676,-942932803,84797446,-1293414912,113757180,3546,232523463,113704960,3550,-326412853,-1961956221,-559740858,205949709,-1962026333,-593294778,209617677,-2096729087,1963068542,-234436819,-1711275763,479541890,-940423543,16970822,469124807,-129579264,1187446785,-1929379590,-1705971130,479541472,-401733397,-401671095,-443809900,576093,-2081649835,1448543980,16664263,1446937344,729677846,-1082547522,378239392,1317738070,105286398,158663736,-467008118,-335655287,80118545,1090832259,-444806597,-1577169271,1600028080,-899816053,-1957363710,1089242092,1187468887,-2097151746,1463870,-1598155138,108956537,374740619,-1946268021,1963211463,-28407528,-771858805,-2132553245,427401919,1187451255,-352301060,80118572,2110405441,-1948718112,-472777122,-2020940847,1183349154,1981365440,1998797835,-62470393,99287120,1375487687,-27358464,-472783919,2040643456,-1962576640,1995177030,381830797,-58817712]},{"sector":10,"data":[-1592625668,101399190,158612120,-1959094623,-348481514,-60912867,-472783919,1104322500,-786461914,-1948003869,-1958620537,88200343,1347551238,-1783795046,-1035563748,32239755,3964998,1988754037,702714,1586189904,-773598722,-1584952605,1357130361,2797722,113541888,381830797,-343762352,1600003221,-899816053,-1957363710,149717996,1048794711,1979651798,1635426566,-2145986909,7230014,1187448692,-350856450,-28915963,1187387032,1988821244,2123056894,-62485762,-1974410198,92950532,946117200,-964485995,46629634,-2130950402,1914698878,-1304525856,1031012376,1342180536,1342181304,946117200,263724181,28856320,-879079424,-1206086344,-1202716656,-1706033151,479541451,1342181816,1342177720,-1791439974,2047264540,-352321439,383164678,1583446691,1575324511,1508380363,1371839231,-2069692416,1958742785,513429510,-889192365,-1947432107,133629534,393510912,1342179319,2139099509,192035842,1510113152,28837239,721611520,46816704,-326413056,2122536535,91619078,-1796620245,-1304526079,91488280,-1790704486,2059188252,108461904,-1790050406,1958742812,1379828703,91488278,-1159197040,2059188379,-329402288,1376634298,112720,1331534416,113712277,71250,-1559869813,244346592,-1087955992,1623090680,-1190715784,-1510866912,2050970,2059188224,1354771280,-1779326566,1975520028,527735303,-2064973824,-1705983957,479590158,374881923,-1205701632,-1202685252,1344174246,-1790706022,1958742812]},{"sector":11,"data":[-1308178672,721420568,-442871616,-350448317,-1576947698,-962430265,-1308178566,-1711276008,8052,-17700850,414334595,-965053440,543555334,1711867590,-66664928,113647717,-970955267,543555078,1711212230,-133773792,113647717,-970955271,543554054,1710950086,443936,113647718,-970955263,543557126,1711736518,134661664,113647718,-970955255,543556102,1711474374,67552800,113647718,-970955259,543559430,1712326342,285656608,113647718,-350198254,1710800663,511205566,2144519,113681906,-970955268,543554822,414334595,-1207077888,-1202716669,-1202716668,199950341,1342178232,1342178488,1342179000,-1779747174,243740,5158992,108461904,-58267634,-348743088,28843157,1566531072,1426064074,-326898549,-2091493544,1464382,552141685,243714,309328,-350315952,87891093,-1207602176,48955393,1183432747,-1236890114,62410774,1320701952,513429504,1025283563,309723132,188389025,1949997062,982950153,983045771,62401003,1320701952,513429504,-1961060885,-773598760,-761281309,529212993,-472783919,1104316299,1104451467,1375733253,-1384998320,1183653013,-336557130,809271307,1015022972,1174830649,1962949760,-294221328,715954774,-998047744,-129595134,91602955,33048263,-295793920,-1003485242,641928734,-472834165,-2020875311,-1752481326,101007828,-230258432,-1913366903,1183430214,-990868498,49017470,76170823,1946499110,-226588169,-1980479860,-544477578,4161574]},{"sector":12,"data":[1187448693,-352301066,304006220,529212995,-472783919,1104316299,1104451467,-1996487163,1451881030,-1236890124,2126835851,1191373810,637831750,-143391432,-1930264951,1988752454,652184558,1962950528,-163133689,99287120,1375094471,374776064,-1471772344,16402119,-1471771904,-1951775095,1183427142,2092960752,-773795506,-1404663328,-947783541,-1593476701,-1304000135,95176331,1183414690,-1947169872,92993102,-796138454,16678531,-771029900,2122536053,74776830,1249169931,-1968021877,-129615865,2122530930,393478394,-2080614775,1962998398,-260144314,-1203735041,1183383553,-1953174534,1065398366,-2096662759,376786937,1015077611,-2146798055,91693884,-347014781,1375306733,-276576652,-1301380348,-1334934780,82739972,2029014783,-2088244301,1962999422,-260144369,-1207339521,1183383553,-12785154,-1016189,1586171764,-773598736,-1601729821,-337368455,2108727555,-1030519,-1706031498,479546879,1592805003,1575324511,1426064074,-326898549,-1705617660,479546866,1040074377,913702911,-125045205,1350220984,1308596822,-1073013611,-1128784780,-401715078,-1072956494,-1080029068,2101125754,2122972811,-59340290,-2092556565,-226684674,-1128739093,1996443770,1308596990,-1073013611,-1080031628,2101125754,1593722507,1575324511,-326412853,1466625155,-98723242,-1073013611,-1070922379,-1207874583,-1202716669,-1706033065,479587102,194528905,-1087930944,1988988390,-1898410854,-17984,-1359822797,-114568713,-372113785,-921459214]},{"sector":13,"data":[-1197366030,-1773762182,1183667691,-2091903334,1979488382,982950162,983041547,-1767831180,-1743353030,-1960973510,-472803234,-1614486575,-1960427054,-773598945,-762868765,-728265919,394561,1922715730,-1927506515,-796091778,-4603762,-222284801,1238497198,-1953083767,2055247478,125066393,-963229953,-1956865470,-1161849226,-1703768791,-1064380276,872415161,-139529536,-2013713455,-219557378,-221703259,-1706652252,-169829808,-1073013611,1183649141,-1097183078,186422595,-955878208,1464326,1810370048,-1763176957,2108728318,2058886795,-1914271802,2059188224,921177680,1860215804,-1099407169,119432696,-234872647,212389,-1128781964,62410874,-6664192,186422605,-1709804352,8011,1350220984,-1705983957,479588769,2061466,-533266688,1223167598,1174849530,-1207959105,1599995905,-883038837,451165827,-1710525440,9388,451151559,-1697972224,4436,-1988460893,-998604778,645561886,-872478778,-2081649835,-2091488532,1620030,1048781941,1946163936,-1084704739,-401698736,-1072994121,-1464332162,-1229434828,496652340,-384002630,-401735476,1048838069,1946163384,11462915,11065498,-1270971648,91488405,2469018,-2081944064,243967,6600784,-83888,-348743088,1187454101,-2089852264,452670,2124493940,-773271171,75240,-150992199,-1012767,-7091020,-7091532,-7092044,-1919695180,-1924097466,-1873766842,-692656114,-1986378099,28874822,614092800,186422710,-954632768,580382214]},{"sector":14,"data":[908507136,910211152,-1172465072,113712277,16750574,-1701284097,479574783,2108700415,-113907698,1342177720,-1790010470,112668,-230122928,2023365781,721420326,1201295552,-2097151959,-1956773180,1439391205,-326898549,-1202301182,-1202716658,-1706033099,479587102,201213577,-955744832,8078854,-15996160,1352334966,-1558407703,-322995386,2101394984,-1064380276,872415161,-139529536,-2013713455,-219557378,-221703259,686604196,-4597620,-222284801,1238497198,2101395841,2019298953,-443850914,-1957311651,451707884,1187468887,-956301058,64582,16271047,-96024832,1048772608,2130712150,9955587,-948329793,2040656966,-1544403257,-940078215,2040655430,-1544796473,-364460167,1187477921,-1954962456,-1961470450,-96075327,1998142848,-228685036,-14016630,1207885059,-28865794,-336306549,423395376,1015028086,-1961593053,529198174,-586940630,-1963177986,1586232391,-1961694226,529197150,-586940630,-1963440130,1586231367,-2096658198,1182991559,1182991604,-964492046,-297368828,-330923260,-364477692,-398032124,-946478588,64070,374750851,-385646848,-1564540776,-398014599,1187477923,-1954962966,-297351177,1187477923,-948330000,2040787526,-1577826617,1443793785,29461270,1031862854,-1961593063,529197150,-586940630,33456000,1586182261,-2144277526,427170108,1998797952,-295793900,-14016630,2139151619,443875836,-336568693,-228685038,-14016630,2139151619,108331512,-957063541,-947716089,-398032124]},{"sector":15,"data":[-364477692,80118532,82724483,82855555,82986627,83117699,1600034018,-883038837,-2081649835,1448554220,374736583,-164954112,-1915584885,1448137798,-1790050406,1958742812,-733573836,-404222384,1958743030,1446939432,-754798314,-2000253977,-1971740539,-2054629562,1183480226,1006707924,-137815295,-1551005479,1443299193,-24951274,-1984398320,-401670538,1600060980,-883038837,-2081649835,244322540,243211496,251507944,201006824,721778112,26864064,-236450160,577149571,28835840,781864960,723293480,246960320,-1197846502,-1709402794,479529396,1342247608,1342273976,1279487130,437172268,-96039600,1482857040,1183653013,28856570,-1499836416,-1709402787,41153,-1784107878,243740,6535248,-350315952,1183390869,2109737982,201770760,-352321512,-263811757,-25263280,-1592625668,101399190,158612120,-1959094623,-348481514,-27358435,-472783919,1104322500,-786461914,-1948003869,-1958620537,88200343,1347551238,1342180024,937954960,-263811675,715954768,-998047744,403481346,1342178232,1342209464,-1779753318,-28931812,1467793419,1357923981,-50430333,-1767828875,-1744434374,-1593215942,378223254,501955224,-771858805,-991702557,641847967,-472834165,-2020875311,-1752481326,101007828,-1202695680,-1873805302,-1529812978,1357923981,2796698,46433024,194339491,-955875392,429220358,243712,6207568,-350315952,423435413,-955878144,1618950,243712,5683280,-350315952,406658197]},{"sector":16,"data":[-1207339776,-1706033151,479590906,1342178232,1342179256,-1779753318,539932,113708405,71252,10974874,-1878660352,-819599346,-1793365862,488675868,28843157,1575324416,-326412853,-956109693,-8785402,1860215295,251545225,-2097041176,-25562562,512439676,-472805784,-526326831,-1601750930,237270137,-1946900760,-779196386,-1964781085,712614023,-401714972,-1070861101,674142800,1134173333,-2097151912,-8785346,1048820093,1979546098,1860215072,1962821177,1827147288,-25755660,-190453746,-1705983957,479537198,5784474,1575324416,-326412853,1459940483,-28915882,1048772608,2113934934,2040577572,-1962508661,-1961470442,76217934,-952376278,1317602677,-2096436226,994116806,-336364086,-28931095,-443850914,182877,-2081649835,1448544492,1860187903,-5380082,-1946532215,-773598760,-1547730717,91553913,-349644616,685946883,-1084821365,-661903106,1988870286,-18170,-1359822797,-114568713,-372113785,-921459214,-1084316430,-661903106,872415161,-139529536,1317620177,106335228,1015025643,-1961921504,-1963291687,1174505476,3964993,1988750453,-61961730,1191172491,108956668,-1960836666,1191181406,671205116,-772120949,-1964781085,712614535,-129594908,-237941,179436614,805630454,1586168200,-62455812,-151501173,818184433,1586176392,-62455812,-1105198650,-678743220,-335786357,-1948677366,-2012968198,-2143205887,-243990468,-1979812215,-645137330,-1946401025,12977782,-60912855,1577058502]},{"sector":17,"data":[1575324511,1426064074,-326898549,50575440,1017813584,1183394892,1975520176,-401698809,2062257262,-1196394753,-1706032381,743193690,1353860749,-19863538,-1548597619,1996460706,746109104,1354771280,1279122586,-1334378708,1345094328,1342177976,1279122586,-1334378708,1345099448,1342177720,1279122586,369145900,-1334378672,-1792548198,-28931812,1946157373,146695,250284660,2045904583,116129790,2045904583,1996488701,1022139056,-443863988,-1957311651,116163564,1187468887,-1962934020,-472840098,-1082072111,1962965411,685291525,-491256853,-1947170008,1317733974,-1962218500,-1963291687,1174505476,3964993,1988751733,-61961730,1191172491,108956668,-1960836666,1191181406,536987388,-787980661,-1964781085,712614535,-96040476,-237941,179436614,805630454,1586168200,-62455812,-151370101,818184433,1586176392,-62455812,-1105198650,-678743220,-335786357,-1948677366,-2012968198,-2143205887,-243990468,-1979812215,-645137330,-1946401025,12977782,-60912864,-956545281,1586176000,-773598968,-1564507933,125245817,-1493285177,-1960645848,-472840098,-2020940847,1183349154,1981365498,1998797835,-28915961,99297462,-922859833,-25785560,-1962518901,183237710,-91498101,25691274,1015038278,-1980664576,1317666422,140413948,-472783919,2040629130,184174216,-1961528128,-62455847,-972654965,1586176000,-62455812,8925188,-1946394997,12977782,-1956684288,80371173,-326413056,8842369,1996445271,-934900472]}],[{"sector":1,"data":[-1645736368,-1830641410,243983402,-315976992,103530795,-1991763790,-956334458,-954171322,116294,-339325301,-1963881719,1116260162,-242531968,13073024,1317662581,2122746822,208383,629063995,-8485237,-1996487891,738163846,2055637441,-1960791809,-1912636786,118915194,-2037667086,1174536058,2125892550,65963007,705316490,-1963422748,-2037838778,922746746,1077973726,1183668048,-162115456,1946224198,112645,112722923,244994048,-1961061030,-1970086370,1174537287,-2013133812,1200276550,172360197,1405240968,-8747381,-1973989312,-466959290,-1035564464,1183536720,75014,1354771280,1342179000,-924316016,-1956684264,147480037,-326413056,-1610421117,1183355616,306613246,1946161725,192509729,1024226496,1651769360,1946161469,-1592792298,2062227030,-15829249,-401731466,28900740,-1586763008,1178146390,-151817458,1946224198,239504134,-1970378589,-466944442,138840656,242679632,235304703,-335632664,374776273,1913538105,-339727612,239504181,-1198626653,-1706033151,743192534,-726092565,-1070903150,-401698736,-1494520717,1946161981,1326544,373136500,1033335808,-2005663717,-443838229,969309,-1947432107,121441350,1028289536,930349064,1946160957,16923977,2122524789,225708298,453672579,2122385268,1963006730,734014214,-1204360238,-11496748,1996425846,-401698808,28863598,-1192695040,726700756,244338880,-345727512,-1831552787,112720,-726077461,244338834,-344991768,181034457]},{"sector":2,"data":[-326413056,1460202627,112726,1100323408,-661967796,-1995159669,1183578694,1958742798,343331,-118946955,474368,-2115435659,539905,-253164683,670976,719913845,14149889,232261319,113704961,27556,1342177720,1344836280,-1791790950,112668,867539536,45620373,-1248178176,-1206086349,-1706033135,479540149,1342182328,1279366554,-129595092,1354771280,-1789066854,1292316,1088395856,1586179148,273139704,1204248848,-15874798,242147382,-1543890200,1586204264,71797498,-259267542,-1963434357,-125106873,-1963303285,-131398329,1351799992,-1168087624,1347554757,1586190163,71797496,-970202070,88444240,105351760,-970202070,922701888,330863266,922701824,922717800,244354664,-966701080,110301702,-1828714809,-726138879,28856466,244338688,-1201444376,-1696006143,205949696,-351414109,-1539406862,812974187,1805911751,113704961,37632,2045918851,-1206618881,-1588555052,103512562,726700760,244338880,-1201362968,-1873767724,1857284110,1351799992,-1427632496,-1196364946,-1706033151,743195029,1200347275,-96040684,705119882,-62486044,-1996077430,-726073786,1996443794,-59310082,-16091393,244320374,191289064,-385649216,330891125,-543535104,-382972864,-660471959,2045944722,1593794793,1575324511,-1879045430,-2081649835,-1957296404,1451951686,-62486264,-1929488759,1992686174,-989598724,-661906060,108316171,17908982,1988751732,-27357956,-1946526066,-27882554,1575324510]},{"sector":3,"data":[1426064586,-326898549,727078660,209634505,-973316468,317393014,939887142,168850692,1091335360,-628308341,1312507718,-1981187066,1586235510,-60912118,-1945338231,1317604934,105286654,326420539,638082756,1589905290,121120268,28837236,721611520,-1956684096,181034469,-326413056,176079959,642187755,1962950016,176065017,101467788,142016343,-1710852353,479571314,147479903,-326413056,1460857987,964694,4831312,-350315952,1183390869,-129579020,-29491202,-385649153,-63110963,-385649153,-1706032955,479586640,-940423543,128582,2097152317,11528451,-1995946357,1586294342,-160003088,1458861823,-1779933030,-774337764,-991702557,641847967,-1996339317,2122578502,108265478,1357904,1996424939,1947898,-350315952,-125100907,1979514755,982950162,983041547,-1767831180,-1743353030,-1961039046,-773598753,-761281309,529212993,-472783919,1104316299,1104451467,-1996487163,1451883590,-11513090,1996484726,4372718,-1427632560,1975520254,-193528045,-387933610,2122521749,225705990,1324502783,-227132602,1676215167,-125924865,1593210505,1575324511,1426064586,-326898549,-1000974574,-1977219490,-297367545,393527306,654067336,-2013182070,-1977156282,1183318599,-12138754,-972494080,-969999290,-1207894714,-1202716658,-1706033079,479587102,-940554615,-68538,1962933821,-246523,-1070922123,14936473,-1695516929,479586640,-1091418487,2123038721,-1957434374,-773598753,-761281309,529212993]},{"sector":4,"data":[-472783919,1104316299,1104451467,1375733253,-62485168,62410774,-401715200,-1072955931,1996432245,1358072,-350315952,1183390869,-92370444,-2080999799,1962865790,-193035363,-347376132,1983596181,-1671182,-1705578378,479586400,-472786805,-1614486575,-1960427054,1183384135,498618616,513429504,-1961060885,-50363400,2062091124,982950399,983041547,1860764533,982950399,983045771,2122547691,309722356,188389025,1949997062,982950153,983045771,1586175467,-773598732,-761281309,529212993,-472783919,1104316299,1104451467,1577059845,1575324511,1426064586,-326898549,964620,4831312,-350315952,1183390869,2109737974,964641,4831312,6338640,-348743088,246946965,1236815872,513429504,-1994615317,1253635654,1687834624,-1994615322,-1072956858,-1712782465,1687834624,-1994615322,-1072955834,-1981217921,1357824,-429614512,1183390869,2126515196,1947769,-429614512,1183390869,2126515188,1996430953,-343762424,1183390869,-60912648,-472783919,1104322500,38242598,108461854,-1779727718,-129595108,-772514165,-991702557,641847967,-16627831,1996488310,-424371460,1996430485,-193527810,-1780042598,-94467300,-472783919,1104322500,654198411,-16627831,1996486262,-424371462,-443868011,313949,-2081649835,1448544492,-1962508661,1174531063,-1952971638,-1752697128,-210433944,1031863947,727413760,-1744532791,-2013865845,1963485335,1958742546,64588558,-95975203,-108838586,-1948091389,-129070594]},{"sector":5,"data":[1120334219,1183645946,-1070903046,2095582800,142016508,1358579341,-22026226,116127627,1946172544,76170765,-153580648,141072263,-24383884,2122943979,-1956684282,80371173,-326413056,1460726915,106873942,509478,1342181048,1342196152,-1779753318,-263812836,-17545529,-115201,-18283659,-246528,-152501387,1352290304,-1994615319,29291078,-25261312,-1962896151,-472779682,-1614486575,-1960427054,-773598945,-762868765,-728265919,394561,-1980217719,1347615318,-15960321,1522010742,-401715200,-1072956599,1996446837,1947900,-350315952,-125100907,-16222465,-8190346,-1592625668,101399190,158612120,-1959094623,-348481514,-773879012,-991702557,641847967,-472834165,-2020875311,-1752481326,101007828,240144896,-304408,1996425334,401455110,-401715170,994507595,1166013046,1458599679,-1779933030,-774337764,-991702557,641847967,-1996339317,-1202652090,-1706033132,479587102,1039419017,57999356,-1577109271,101399190,58014360,-1577112343,378223254,1072249496,-25261569,1593210505,1575324511,1426065610,-326898549,-1957275902,2126775886,-27358196,-351766843,637831687,1195771272,189383051,-1980598848,1586235510,-27357686,-1945338231,1317604934,-1956684282,181034469,-326413056,1464528003,-1035563690,142016336,-1207535873,-1873805282,-1765480434,1184410,1183422464,-1136212040,2123038720,-1958155334,920454105,-1950201974,1346386137,-1958671243,920454105,12746624,1586423157,-1963357258]},{"sector":6,"data":[1589953091,1094198974,-2095483568,92019199,-340099447,-1035745737,-1018968530,-1136212224,65732608,-1950595329,1178187846,-1998916,630897782,-2097151982,1183384260,-1068070466,-919863509,-977903988,-1544831370,12338887,173982720,263831595,-218395904,-1136229461,-1923938786,1343668806,-1783795046,-1956684260,147480037,-326413056,11725953,1183536727,340134674,-1679228043,308200448,4161574,-1880554635,303208960,222035968,-2081881219,852541184,-11487603,-1064380276,872415161,-139529536,-2013713455,-219557378,-221703259,401588132,-11487603,-4597620,-222284801,735180718,-2015785991,-17922,-1957712142,-219557429,-221703259,861061028,-11487603,-4597620,-222284801,735180718,-2015785991,-17922,-1957712142,-219557429,-221703259,854767780,1350995280,496652543,723293626,82110912,185747083,58004550,-1006325271,-2144988578,57999423,100967913,309893715,-998047744,276233988,-1710328065,479583972,276234064,-1710328065,4673,721863811,630870208,-2097151982,1183384260,-396981786,1375752197,209125200,235566847,-989973784,1183573598,1200170502,243837,6010960,-350315952,1183390869,1654270,1589906037,1333798630,149619831,652631748,-76060800,556675,1290339199,142016260,1342181560,-1779753318,-28931812,1014939659,1979710525,982950162,983041547,-1767831180,-1743353030,-1960973510,-472777122,-1614486575,-1960427054,-773598945,-762868765,-728265919,394561]},{"sector":7,"data":[-1980086647,149683286,1183432747,-96040452,200951435,58063942,-1006577431,-2144929186,57999423,-1962881815,1452009030,5244392,1392922706,-42342386,-1947842933,1342564438,-1706012160,479583972,-506231,1891108982,513429504,-1994615317,-1072955834,-1830222977,-246528,-1767828875,-1744434374,-1593215942,378223254,501955224,-771858805,-991702557,641847967,-472834165,-2020875311,-1752481326,101007828,-96040704,1392268937,-555443632,-2037834603,1988886350,-2081422344,1132272382,66602635,1452009030,5309928,-239579054,-1706025449,479571314,66602635,1452009030,5441000,1996443730,-92864516,-1783795046,-429997028,106119309,401913936,1922715678,-14903891,1790445686,513429504,-1994615317,-1072955834,-63095682,-1592625665,101399190,158612120,-1959094623,-348481514,-27358435,-472783919,1104322500,-786461914,-1948003869,-1958620537,88200343,1183383558,-61437446,-1070921493,-1979955575,1183578694,-62518278,1589914996,1065363194,-1926990848,1343679046,213406470,-401715200,1183710217,-1399172886,-2097151958,1589904068,1200170726,-1005982866,-953751970,28231,-1207404801,-1706033045,479587102,201213577,1027374784,309723132,188389025,1949997062,982950153,983045771,1586175467,-773598722,-761281309,529212993,-472783919,1104316299,1104451467,-1996487163,1451883078,722004988,-62486080,-1946532215,1175190086,-1003653892,-2144929186,611582015,384452237,-1202518448,240123916,-1912900376]},{"sector":8,"data":[-1705973178,10924,-1006451581,-1993939362,166424647,652631748,7358407,142016256,1342205112,-1779753318,-28931812,1014939659,1979710525,982950162,983041547,-1767831180,-1743353030,-1960973510,-472777122,-1614486575,-1960427054,-773598945,-762868765,-728265919,394561,-1980086647,149683286,1183432747,-96040452,200951435,762641478,653942468,1946173312,-364475100,1392922646,1342180536,-85989362,1357530765,2796698,46433024,652631748,-344832119,-429997047,1917306662,1996423168,309256,-350315952,1183390869,343550,1589905525,1333798630,1996423799,7190536,-350315952,1183390869,1654270,1589905525,1333798630,1996423544,7256072,-350315952,1183390869,1654270,1589905525,1333798630,1996423800,7321608,-350315952,1183390869,1654270,1589905525,1333798630,1996424312,7911432,-350315952,1183390869,1588734,1589905525,1333798630,1996423543,7452680,-350315952,1183390869,2143292414,11659523,1979710525,982950162,983041547,-1767831180,-1743353030,-1960973510,-472777122,-1614486575,-1960427054,-773598945,-762868765,-728265919,394561,-1980086647,1187511382,-1006632714,-2144929186,510918719,384452237,-1202498992,240123916,-1913009944,-1705973178,10924,-1996307325,1190655558,1947205878,-337596412,-994039294,-2010716578,1183478855,1200105206,-146371979,-2010771676,636188231,1229466,1354771200,1189274,46433024,-1981397367,1589962838,2139301606,91553914]},{"sector":9,"data":[-1784665446,112668,-443850914,1100381,-2081649835,1448542956,2105411318,-1878690815,663480334,451034755,-385649408,1996423312,209125134,-16091393,-1900541834,-11526509,-15016394,-401734026,-1072956885,904463221,243713,6010960,1685584,-348743088,-1197400939,-28931718,-1082074997,1952222693,-28901624,-1914271802,-27358372,-1926160705,-1936857417,-1178562856,-1070333953,-772296974,-24643285,-1510807087,-1527592685,-15829249,-424145802,-1706025331,479571314,-1993730376,1586235462,-1205957878,-427309446,1419378829,-1560281071,378108542,1347582592,-15829249,1085803638,-401715200,1587214489,-1560281071,378108542,33913472,-11513344,1996425846,3520520,2062028368,175570936,-1710721281,479583972,516210942,-2010744194,1204168199,1996431361,142016266,-1780554598,-990868708,645561886,218251462,11065498,112640,-1239115184,-1073013611,649596277,1085820982,496652342,-1877174854,-439031794,2108700415,82316944,1354771424,-1778970982,112668,1318820432,28843157,1218072576,-2095278606,9811006,-1399192204,721420325,1201295552,-2097151959,1599996612,-899816053,-1957363702,-1058242068,-2091493631,1570878,2124503413,-773271171,75240,-150992199,-1948742687,-1953248633,-1986802537,-1979826042,-989969770,654196894,99663747,-1558023168,378115072,516199426,-14248960,637905335,94877695,-236918770,-1986809693,-342642154,-1547687152,-1331457102,-955847789,1570822,-1817140992]},{"sector":10,"data":[-1817049589,988349301,-1817140991,-1817045365,1375733765,1860701776,1149667827,1184270847,1975651327,-1817140931,-1817045365,1375733765,-1194288560,-1073013611,115934069,37158657,3604372,-1305018476,-1338572909,1149668755,-2037559042,-1873739960,-1136465906,11552454,-2037566997,1343684164,-12142849,-12273921,-1783795046,37158684,3604372,-1305018476,-1338572909,-1337553517,1216777552,244338943,1455164392,-1927809345,-1929493322,-1178562856,-1070333953,-772296974,-645138133,-4587897,1336865535,-372126837,-921459214,1449043186,-1917813107,-1929493322,-1178562864,-1070333953,-772296974,-645138133,-4587897,1336865535,-372126837,-921459214,-1201756942,-1202716669,-1202716581,-1706033128,479587126,-1851652410,2105450752,-388896559,-1191182043,-503906294,-1258295157,-1258318900,-1258318902,-1258318904,-2037541946,-1924071606,1358907526,1843924624,1149668795,-1924131074,1358908038,5251482,-2095781120,1619006,62393716,2025345024,-2120593403,1578931542,1575324511,-326412853,30993537,1996445271,309788436,-15698177,1183649398,1183666328,244338838,-1917116440,1358903430,1344398520,1352156813,-16091393,532154486,244338688,-1950079256,1451953734,525584,-795193262,186422712,-385649216,79167751,-1432727548,-1993585604,-1072958394,244321141,-1200174616,1508442118,-193528062,1342440632,1279023770,948342060,1861002239,379078285,-2105111216,240129790,-765208,-2037517194,726728322,-593866560,-13874115]},{"sector":11,"data":[2025387126,28856364,-593866752,-13874115,-2101808010,45633580,-593866752,-13874115,-1934035850,62410796,-593866752,-1205056451,-11528488,-493161354,-1994615513,20837958,-10128128,-2037517194,-1202651608,726663248,60444864,-1926476738,-1912723266,-1929477450,-1178562864,-1070333953,-772296974,-1493960405,-1071970956,201326365,-1926859584,1358833798,2935962,46433024,1352156813,1342177720,-268834802,1352156813,-30898547,401083984,-1807300621,199950337,49708675,1187448181,-16775788,1709831286,67418113,1017813584,1183394892,1975520242,-17372925,67418192,1012570704,1183657036,-1957685512,1451953734,525584,62410834,-1332064256,-971205203,-1929315514,1343682630,505543864,-595161776,-1706027266,479576134,-1928543101,-1543578490,1183543020,274107150,1375733765,1726484048,-62486032,201217673,-972589616,16679558,-2037575189,1343684226,-100609,1922759798,-14903891,-2037517706,726728322,-593866560,-13874115,2025386614,28856364,-593866752,-13874115,-2101808522,45633580,-593866752,-13874115,-1934036362,62410796,-593866752,-1205056451,-11528384,-493161866,-1994615513,20837958,-8817408,-2037517706,-1202651608,726663258,60444864,-1926476738,-1912723266,-1929477450,-1178562864,-1070333953,-772296974,-1493960405,-1071970956,201326365,-1925548864,1358833798,2935962,46433024,16285312,1187383413,1187393272,1183645945,-1070903048,-1729622448,683573486,225706238,-30898547]},{"sector":12,"data":[-129594032,-1024979376,-1807300624,199950337,49708675,1187448181,-16775788,-325389706,-1960031172,1600033862,-899816053,113704976,710441652,1342179512,-1705983957,27757,-326412853,949891,28855413,1488474112,1889161258,-1206086349,-1706033151,479540149,1342177976,-1791773286,1292316,867539536,280501397,28856320,1337479168,28856320,-358985728,-1206086349,-11534316,-1704006602,479540044,2122527979,141886734,-1559476597,652938712,17727107,2122522741,292885260,1342178488,1342191032,1347469355,283643536,-667484200,1088395789,28847180,181034240,-326413056,949891,28855413,1488474112,1889161258,-1206086349,-1706033151,479540149,1342177976,-1791773286,1357852,867539536,297278613,28856320,1337479168,28856320,-358985728,-1206086349,-11534315,-1704006602,479540044,2122527979,141886734,-1559476597,652938712,17727107,2122522741,292885516,1342178488,1342194872,1347469355,-2132275568,-667484201,1088395789,28847180,181034240,-326413056,949891,28849781,246960128,1889161263,-1206086349,-1706033151,479540149,1342177976,-1791773286,1095708,112720,16758864,112720,871012944,216734869,84835971,1183516277,232301324,1560281528,1426066122,-327029621,-1202323090,-1706032381,743193770,-17004919,141934603,-1075310960,16378226,-16992513,1342374840,1279023770,-55115988,745126142,1354771280,1279122586,-55115988,746109182,112720,1037867600]},{"sector":13,"data":[-1224790964,-2101805316,45633580,-593866752,-1205056451,-11528302,-1694565194,479537122,-16873847,-16992513,-16742771,16824400,1354771280,1279132570,-55115988,1022139134,-1098699700,1946287870,8513795,1342178232,1342200760,1342183608,-1779747174,-1576614372,-2033778543,1868758674,115883651,-1590135808,-388924034,19261649,702720,-259268105,-1815300865,-1815431937,-1815563009,-1815694081,-23820659,-91845296,244338942,-1917452312,-1979804538,-1912696186,385810566,-1610507696,113712277,71674,-16742771,-1224781802,563805842,-956301232,1571334,-443851264,-1957311651,82609132,1048794711,1946163378,402432310,402523659,414716021,244338709,-1552762136,378083324,-56551426,-33158377,722760727,-65092362,-18409,-1962242887,-2119437573,1578440902,1575324511,-326412853,1460595843,402432342,402523659,1183478644,-62486518,939935370,1702362182,705447562,-163149340,705185418,-1057092538,-196703848,1727421104,-1963422966,1177159238,-1732182518,-1963833719,1174467142,-126448644,-2012461430,1183514182,-28952568,1988829047,-161575948,503570179,109975548,-5236738,-1957179765,1605038843,1174455947,1523024894,1978814207,-1956684085,147480037,-326413056,1460202627,176063318,-385649408,1048772765,1962940594,105286199,-259267542,-1961736566,376897528,1343506058,1712169047,-1705619304,479551167,18120320,-1847000203,376897280,1342177720,2144343,2112575056,687747,1183461492]},{"sector":14,"data":[1357130246,1358579341,1358841485,-1791459174,112668,-129594032,-62485168,947952208,1183521941,-96060932,1187382389,1183455750,-1947981296,239504112,1448605835,1342260621,51136139,28856518,1183469568,1357130246,14018458,-2094798080,1618494,1996430453,340167190,-1974410198,-1202711994,-1974468576,-467007930,1589615184,1600003221,-899816053,-1957363694,49054700,184960651,578095174,638213828,95666051,-972655360,-350159290,173982758,-1245740250,393478149,771638982,1589908971,1207313926,-546041839,289928742,-957778684,-1976828346,-466944442,-899816053,-1957363704,82609132,1183471191,-1947981300,172395248,1150154891,-62486269,1343125247,2144343,105286224,-1705974742,479551167,1476163327,1476163327,-32380914,186121377,1947729414,-161828838,-661976474,402398723,402523790,638076554,57999416,-2097099031,1618494,1183481460,725456904,1024553984,1517551661,2059878016,-1201375731,267063984,2059878016,-1207601651,65737364,-1995100488,-1974403514,653659206,-1974437178,653658694,726694599,1385844928,-1593835307,101390332,2037651454,1727421104,-1965520118,-467006394,918870019,1183455228,8922632,1048600555,1980594887,312653829,1018738155,-1196365035,-1410656950,705054346,-1963947036,-125105594,-1995684214,1996487750,-1202237426,1448083547,-1788952678,242679580,1090274955,1183471440,1448122376,-1788952678,242679580,1090274955,-1202237376,1448083549,-1788952678,-1956684260]},{"sector":15,"data":[181034469,-326413056,1444080771,185091723,125110854,65947335,-1001985280,61868126,191362598,-1996487931,-2144932282,1980042111,-230257360,1392922646,-1569136,-263812680,711872160,-1947169820,1174662726,-1925168912,-1053044404,-963966090,770721323,1183383601,-297366546,105265992,1183518335,1178288366,-1207600122,48955393,-1956724693,113925605,-326413056,1466625155,2996310,84307703,1183411110,-2143386626,1148453757,-15829249,1996426358,142016266,1352156813,1352025741,-370667888,4372657,-1962512649,-1740206608,2107029584,-25755824,-1806269302,-1937054678,-315976620,1212727595,-1151100336,535501973,-1937926465,-1950314792,-4587914,-222284801,735180718,-771848199,329642729,-2086341943,1619518,1119359605,107935488,1351895045,-1862371585,1161291790,-443850914,707165,-2081649835,1448547564,-150992200,-661975962,-1815443573,-1815308405,-1979955575,1589968470,-2013911300,1946224055,-2013911544,1946420663,-373282043,1048773615,1946385792,702708,-1962121481,-964195368,-929592429,-129594989,-1191553399,1727463490,-1948742900,-1986729849,1183576646,1129746,1206453109,-385649149,-1073020016,272435828,-385649408,1223361391,654073540,95782795,60418368,949891,1996427380,-59310082,-1878100225,596895758,-1070922773,-196703847,200693385,504329410,1376810751,-1863026945,-1218385906,1586170603,1544013328,83910,-385875528,1187447639,-2097147374,1621054,1424556916,276726783]},{"sector":16,"data":[-1961658881,-472839074,-1797879865,113704961,71680,1586221803,-941371124,9754247,-60898304,638469771,95782713,552141683,1958743039,1347618314,384306832,721677091,1183422912,-162100748,15746759,310280960,1376613395,175570768,-39196658,1064615947,319964871,-25755904,-231681,1996486262,233311988,1038363388,175374379,1962945853,21293315,1996429803,-59310082,-624897,-1070861194,-401698736,1187455914,-1207959056,1727463490,-1797389044,207522640,-2020875311,1178303907,-1962707442,-1873801658,1328146446,15761027,1048787316,1963097472,112690,-1962129877,702704,-661920009,-1946401141,-2026242474,393581514,-1815308487,1119359349,99022592,726701278,244338880,-1957762328,-472839074,-1946386748,-1993994682,-1996096891,-159538297,142441990,-544512139,-255884506,1567883269,-1946663285,1178204758,956659188,1299510870,2105556611,-1204456190,1177223169,702732,-259268105,-1929623925,-897304126,958231955,1972620436,-129594601,972707467,1972618884,-929810165,-2147125869,76792972,-362753,1996486774,-59310082,12913562,-25755904,-231681,1996486262,-1621845260,1996423168,-59310082,-624897,1996485750,-588771828,-60898052,-1215826394,57999877,-1962880279,1452012614,-129615370,1446577525,-1206291206,384499713,-100609,1996487798,-193527818,451415696,-21042909,1183432747,-297367060,2105411318,-1200851966,1177223169,702732,-259268105,-1946663285,-2076575146]},{"sector":17,"data":[494244806,-1815571399,1183520629,-27882500,-1815444423,-1808200843,91591628,15484615,112640,-1190377941,-503906294,1183576203,-162100236,-1815706567,-1808196235,393581512,-1946401141,-2076574122,192254922,-1815309255,1187448181,-2097151762,1946217598,-25755887,-231681,1996487286,-401698568,2122524709,292815086,-100609,1996487798,-193527818,-18346352,-25755727,-231681,1996486262,-1993696524,179838101,208074496,1589964939,-196703236,653678219,100042633,-124286682,-964392699,-929789549,-129594477,972707467,141947974,1979078201,-48436989,-1815835520,-48961276,-887041,1996488310,242679804,-1974419413,-467007418,105286480,1342177573,-787718517,239504355,2107868985,28837237,721611520,-401715008,-605485704,209095676,1183573713,-1551595250,-695941251,-385875564,306052294,-385649408,322829513,-385649408,339606716,-385649408,457047225,-385649408,-1544946582,-1956684036,248143333,-326413056,-956109693,130630,402669187,-1710656256,9328,1702150155,402669187,-2096663296,6370366,1048793461,1946195158,104760095,410321018,1342182072,-11485141,1351935030,240144464,-939816472,65094,-1797767549,-2094763008,7996990,314056053,-1070903296,641138512,112789,1354771280,-401715120,1187511134,-956301058,1572870,-28931328,-883038837,-2081649835,-1202316052,1727463434,-1948742900,-1953248633,-1986802537,1451883590,-60898050,-1215826394,141820165,-1215826394]}],[{"sector":1,"data":[91489285,1927921707,-60898300,-1215826394,1668550661,2105556611,-15502077,-7091146,-1198273994,-1706033151,479561757,1996427243,-59310082,1347469355,-1786172774,-25755876,-1191414017,1727463434,-2585844,-7092041,-1701591369,479562026,-150977864,-259322778,-1803371389,84964352,-1202678712,726663200,244338880,-1202991640,1727463490,-1963947252,-23833468,-431585088,-1806531445,-1947974007,490541638,-385649152,-1073479830,-1476448621,1048806840,1946385792,-2143386866,359990397,-1751236989,-15830016,1996488310,-401698564,-1226236877,702467,-1962121481,-927465512,-961020013,-25755757,-1862502657,451209230,-2096916247,58556478,1048776308,1963228544,-1640070377,276037783,-100609,1996487798,-401698802,518724880,-150992200,-661975962,-1815562241,-1815693313,-15829249,1996488310,-401698564,1183390779,-363427352,-100609,1347615862,753405584,-20387490,-689434992,-20911778,402130631,1048772609,1946385792,-2143386866,393544829,-1751236989,-15698944,1996488310,242679804,-1444409712,-1205933284,1727463434,-2585844,-7092041,-7092553,1996426870,-59310082,-722989424,-1817140453,-1817045367,58049035,-1946261015,1452014662,-1811897346,-1811802487,384583309,-1305018544,-1338572909,-401698669,1183691138,-1706027284,479567873,-974647664,-29824531,414989955,-385649664,1996488238,-971859444,602472448,-2143386626,242484093,2105556611,-2095614716,9936446,1996427380,-59310082,-1878100225]},{"sector":2,"data":[471001102,179838699,208074496,-1207969653,-1207987256,1996460998,-25755890,-1862502657,457041934,-1981266295,-1039406506,-14806924,-11399050,244377718,-374275608,1586232774,509456,-1191330327,-1202716669,-1202716654,199950361,1342178232,1342182072,1342183608,-1779747174,-533266660,899193,112720,-1674012080,-1947664384,-1136753667,57933848,-2080538135,58556478,1048776308,1963228544,-1640070377,276037783,-100609,1996487798,-401698802,518724464,-150992200,-661975962,-1815562241,-1815693313,-15829249,1996488310,-401698564,1183390363,-363427352,729137675,286424707,736691060,-461963267,-1978894593,-466950586,142016336,-15829249,1996424822,-59310082,170584078,-2080568855,1964774014,-396442611,289901350,-385875675,2122514797,259265042,336756355,2122516852,57941266,-2097099543,1964249726,-396442580,289928742,-1002540031,-14222242,-1006243697,-1960384418,-1960437433,1589910359,-2027346180,421922290,-351931241,310281020,-1005816547,-165222306,1946227015,-993203404,-165222306,1963004231,-60898264,-259522778,-396442619,424119078,458722086,654073540,99780353,-191426266,-396442619,293044262,-2143386879,57934461,-1577295383,378246100,104436694,57971658,972837353,1955843094,-62330621,-1953247071,965988886,1955841542,-63379197,-1815603655,803799924,112892,-1190377941,-503906238,1351895045,-1873756117,1207822350,-2080631319,75333694,1996432244,-361299996,-1964476673]},{"sector":3,"data":[-466950586,138840656,108461904,-100609,-401671050,-337050177,-461963269,-1411329,1183508598,1357130470,1342719626,-16353537,1996488310,-1511518468,-70719225,-2122284514,-2122284672,-2122284672,-2122284672,-2122284672,-2122284672,-2122284672,-2122284672,-2080407168,-2101312523,-2122284043,-2107669688,-2083487048,-2091023421,-2081061889,1593543145,-899816053,-1957363698,-1226014228,-2091493632,1946160766,21031171,377505421,309788496,-1710196993,479571314,-1937736051,-1178562864,-1070333953,-772296974,-397506231,705316490,1384548836,205949695,-11499895,1075083007,-1224781760,1996488530,276234002,1347469355,-207427570,726721578,-401715008,-2037648408,101056336,1317439744,343343103,1387724624,-2142859777,-394854576,556675,28837236,-2096239872,1946158718,1751045,-1070923029,1510906448,1996430485,112660,1387724624,1320615935,1387724799,243967,142016336,721843967,-401715008,1183052387,-2033777432,65406,711872160,-398054428,1979723837,1850646572,1177281578,3157480,-11106679,-11237751,-8472949,-1903484752,2056126292,-234416512,1418103722,2122711551,172395263,-259267542,-1962129782,343343096,65554059,1346388167,-2142859946,1850646608,1177281578,3157480,1354771280,-1789260134,105221404,1319130704,65284718,3091911,-401713584,28897615,48032000,-15567105,1996427382,-401698802,1183390065,-296318484,1886765579,-8485177,1319108608,1038363246,611713070,-1996476883]},{"sector":4,"data":[-1979756922,-1946201978,-1325433162,1351519008,-2139451905,-1426979050,-11499893,-8485375,705316490,-1012764,28841078,-1923723264,-1605337018,-466981298,1342189357,-1705983957,479549966,1342177720,1850646614,-788143062,240537855,737199848,39119296,384845453,-294191280,-1863551233,-1395595250,738084489,-294191114,-336824577,1552074254,-12143617,-42314,-1862313802,-1491474418,-10975607,-10840439,309641739,-10969404,289928742,-959024127,553606274,1988744427,-1949750296,-1961169962,-2143107343,-225754848,-10714486,1116270987,-242531968,545276614,-478590399,-1981262199,-1946190194,2122776561,-2143107329,1850646560,1177281578,3550718,971654793,2130673286,2122746140,-1012737,-956334458,-1960804286,-33098,-956334458,-350191550,-329333712,289928742,-1961987071,-33098,-956334458,-339705790,2125892364,2122776575,-2143107329,2125892547,2122776575,-2143107329,172395204,-2037783510,1183514448,1384548620,-1992277761,-43898,-11529098,-1912647498,-11501498,738164406,244994240,-1961061030,67075718,-1979755898,-43386,-43850,1090474166,1354170192,-1863840001,343343087,-11106677,-11517888,-44874,1996427894,-294191344,250377983,720426984,-1070903068,501747280,1451658225,394751,-11762039,1343518463,-11487489,1357923981,-2080475393,1946159230,112645,2122517995,91488262,-352314696,1354771202,-1789260134,-28931300,-11106813,-11893111,-11749633,-11487489]},{"sector":5,"data":[1342178565,-11487489,-284039154,-1206618369,-11534334,-44874,-45898,-44874,1996488310,108461832,240173099,-1947239704,100616838,1183383558,1850646760,1177281578,3026408,-8485239,58703883,-163863,2030009998,2122746662,-2037825281,-1232339122,548470654,-11628917,-2139451907,-1426979050,1317440508,30996479,-1962967418,-467006906,1183510667,-488472,1448547446,1350583949,711872160,-398054428,1342189101,-1705983957,479549966,1319130711,707734638,-48698908,-443850914,1100381,-2081649835,-2091515156,1618494,-890698891,402432256,402523659,1521492596,-1962514698,138840792,-670833622,402405060,-804370806,205916896,1962948646,14346499,818819,2122524788,292814862,2059878016,-1207601651,1022038662,-350936904,-952205257,91622778,-351114568,352630827,2122524395,292814862,2059878016,-1207601651,350950008,-350940488,-952205297,91622778,-351118152,351713283,-1963047287,-467007418,1996484747,2059837694,-150909811,1183469793,-953747962,-1070903174,-716006832,-56557568,-33158377,-1336445929,107411034,503568523,109975548,1183455230,182505486,-2010772410,-2093225216,1946160254,175570711,705185418,198116,105286224,-1202658262,367722512,-1979025665,-467007418,1342178053,705054346,548950244,-1070903296,1589615184,-1956766571,181034469,-326413056,1464003715,-1001994410,1187446785,-1207959350,414785568,-864121600,-1410201834,818562691,2105556611,-1207601917]},{"sector":6,"data":[65732656,-1996478280,1183565382,306580240,1183462261,-1947981300,239504112,1996486795,-1923721452,-11482042,-1070872970,1510906448,1448549525,63325835,1448102087,-321001458,-1846951893,274646017,142573606,-970165248,-1087448762,146341902,-1033991168,-1961855291,3703001,9047156,1204568968,200901441,1586425212,-897676862,-1077391735,-919928827,-977117556,-645197706,1946171520,-2013230580,1095224387,2080962947,-1033990419,-1983218039,1183696974,1589924073,2013210128,2013210139,1354771225,13804698,274646016,192413478,225967910,1357661837,1358317197,-1873756117,1224009742,383403661,-1194288560,1183390869,205949694,-259267542,-1961998710,-968455176,-1996487379,1166918214,-1069119227,1343518463,-783905450,-1032388784,17450742,28837236,-1005327616,-1960439714,19206471,-1207602176,48955418,-1705983957,479549966,638607044,621889419,1183383553,343343038,1342260621,-1065943210,-1032388778,621430411,-11534335,-1070875018,1357385296,-25755668,-4294913,1448547446,-45029362,2105556611,-161188605,1946225222,309788424,-351242497,507413284,1333067781,85853895,1996423169,108461832,-1806813441,2112360080,273058066,1376933513,142016336,-1207535873,-1202710002,-1202716670,726663175,110776512,-16777010,1996425334,309788422,-1877969153,-1579554802,1419399250,-1207959393,1599995905,-899816053,-1957363696,1693221868,1187468887,-1610612574,-466981298,1979712573,273703,1084114569,-775804007]},{"sector":7,"data":[-1673098760,-1197312373,1317740576,-1535472228,-1410201834,-778287477,-1572470304,185616011,1031082566,705447562,-1963947036,-125104570,1460958975,-1538880170,1850646608,70116394,-1070903296,1510906448,1448549525,711872160,768017380,1448083461,-356390898,-1175863253,142016256,-16353537,1996427894,-1454994160,-1605989040,-401698736,1183555620,307661584,1375733765,-1194288560,1183390869,205949694,-259267542,-1961998710,88444408,-6535543,1448088694,1353270925,711872160,601572,172422736,-1207602175,334168065,638607044,621889419,91488257,-352314696,1354771202,-1789260134,274646044,289901350,-1996488411,1996463686,21335316,1996445264,1319130780,769927790,-1957691383,19204678,1996443648,1354771358,-358488050,-100609,1996463734,240539412,-1191468568,1599995905,-899816053,-1957363696,317490156,1048794711,1946451328,-1957578744,-351418950,-1923434490,-1995586118,1451882054,205949944,326418443,1929380157,22341891,1996489277,16771331,-2097067543,58556478,1048785524,1946451328,702507,-1961728265,-927465512,-961020013,142016403,-1878624513,232646670,209043467,452216519,-28915929,183183162,1022641863,-28915929,1183459163,-1947981298,273058544,1996486795,1354771220,-11118768,1996425846,108461832,-1913233665,1183383876,343343090,1347469355,-227082409,-16091393,1996425334,-161546490,-1996340083,1996484678,1354771220,1996445520,175570928,-16222465,1593771638,88444406]},{"sector":8,"data":[-1161591,-11529098,1996485238,-18188,1354771280,-1789260134,343342876,-1149185,1996484726,-18178,1354771280,-1789260134,-2143386852,57934717,721455849,-11513664,1996425334,437172230,178256,505936,1354771280,13502106,-2090145024,58556478,1048776308,1963228544,-1640070377,276037783,-16222465,-1070922122,-401698736,518721432,-150992200,-661974426,-1815562241,-1815693313,-11485141,1996425334,-401698810,1183387331,-61437446,494191115,722761471,-1974447936,-467005370,239503952,175570768,-16222465,1593771638,-1956684042,281697765,-1957326848,1626113004,1183667799,28856482,1838829568,-2145610320,1950458494,-1568767994,721712450,-1921848384,-796089730,-4603762,-222284801,1238497198,-1946268023,-1585807119,-16288676,1120337478,1988844706,701939710,-1935510899,-1178562856,-1070333953,-772296974,-24643285,-1510807087,-1527592685,-1924087765,-1705991610,11980,-1207647101,-1202688280,-1924104191,-1705991610,11763,-1996045181,20815942,-138405120,-1956684072,1439391205,-326898549,-1923721376,-1202674618,-1706033151,479572077,-1935376755,-1178562864,-1070333953,-772296974,-1571911351,2055270795,125066403,-962443521,-1956862910,-692084106,-1535996631,-1064380276,872415161,-139529536,-2013713455,-219557378,-221703259,1860745380,-2147436464,-1538880176,780442192,-998047744,-1605990138,452985149,1591277504,1575324511,-326412853,1465838723,-399048874,769563246,-998047744,108954370]},{"sector":9,"data":[-1922206720,-1202674618,-1706033151,479572077,-1935376755,-1178562864,-1070333953,-772296974,-1571911351,2055270795,125066403,-962443521,-1956862910,-692084106,-1535996631,-1064380276,872415161,-139529536,-2013713455,-219557378,-221703259,1354771364,1352943245,3067034,79987456,1352943245,3002522,46433024,-443850914,182877,-2081649835,-1957294356,1175127622,721777928,1777048000,-1962522997,1183385686,-61437446,16664263,1010729728,1266548881,-1954727775,92092950,1183383554,-128546314,92092577,1183383558,-195655182,-1858324853,-989966709,1183577694,121185800,1589907061,126559986,-1979955575,267124302,150357635,150095491,2110667585,-1948718098,1452014150,-443851012,313949,-2081649835,1183646444,1996443902,175570694,-16222465,-1704007626,11939,185255043,-1962052160,1178142278,-1207601666,48955393,-443826133,445021,-2081649835,1183646444,1996443902,175570694,-16222465,-1704007626,11932,185255043,-1962052160,1178142278,-1207601666,48955393,-443826133,445021,-2081649835,1448551660,-1858322813,-1591902720,61968700,-1873747757,1478879246,-1988282205,192756246,721778114,57600448,2123101739,1312222202,61988491,503571411,110001464,-14254790,-14285193,244319351,190334184,-2066954,-8570314,-1870841802,1479796750,1988739115,53668350,1010187078,-1960477295,-754732546,553957607,-401698736,516184003,-1993966280,-1993997247,-1960442287,-1039465407,-1142172043]},{"sector":10,"data":[-100727,1996425334,100448262,602410576,1010729983,108331153,-385875528,1187447528,-2097151746,9518142,-164944258,-989954421,645740574,637956351,-1207668481,240132356,-2080443928,994511046,2089892926,-25261598,637951684,638076811,-1005955189,645740574,-1993996407,1187447383,-2097151490,26295358,-1014286978,134595212,-163149568,-1946659191,1234254862,-1929490943,1992684638,-61029130,8882982,-1752488415,76095746,-2096999287,-371062586,-940286322,65094,-1858322813,-385646848,1187447099,-956235524,62534,14698183,-196703488,737560201,-1946211338,503576158,110001464,-1004110534,1082983519,-297367275,-1947187572,2013210328,939468290,-41621490,653156036,-1993996407,1586168407,941491190,973508221,1606690429,1089873412,712314895,66477707,-1904396258,645741062,-1929093180,1183391040,-330920726,-14231413,-14286217,1072172599,-362887939,1586190315,941491188,973508221,1606690429,490835204,-1931065719,-661919674,41418534,238550822,-990046744,-1993939362,1468605959,-195130622,2100829699,2100954766,73384998,-1994833523,1183638086,651725796,637695999,-401721345,1589968102,126428898,39291174,-2094938493,-8314425,58532096,-1946213143,516218998,-1960411848,-1960442816,-998242736,-599357151,-992061815,-14230434,-14286217,-1477964233,-597768964,638028070,-2096998519,-2096565178,-16195514,1017249350,-28952175,-722926723,106874110,108527398,74972966,-59185138]},{"sector":11,"data":[637951684,637814665,637949833,638220287,235436031,-990092824,-1993996706,-1993996217,-14284201,-14283145,-401732489,1589967946,1200170502,1468605964,-1208015346,-14285407,235249591,-990105112,-1993996706,637902727,94476169,-1514668250,-1208015355,-401734237,1589967894,-2021054970,-1993996893,637904279,95008767,-1481113818,-68678139,106874107,-1484289754,-1752619515,-14285399,637906359,95139839,-69146610,637951684,95127433,-1382577882,-1208015355,-14285377,235257271,-990132760,-1993996706,637910407,96442249,-1011351770,-1208015355,-401734207,1589967786,-2021054970,-1993996863,637911959,100186111,-155713754,-1880617467,106874107,-158889690,-1752619515,922682872,922713402,244350264,-380306200,1600060690,-899816053,-1957363708,116163564,142016342,-1207535873,240125436,-1946428952,106874096,138906406,173509414,1183524331,-62518278,1996433268,-92864516,1344341176,-72030194,1589964939,-2020923654,-1960435456,-1994325353,1451883078,1979059196,-25785903,-1956723061,80371173,-326413056,1443425411,1589954859,1200301574,1468737032,-96040694,-1929619831,1992685662,1090907130,553694405,-972302196,1988752757,-60912390,-1980211570,-1047790002,1575324510,1426064586,-326898549,-2143386876,91554941,10997914,-903953408,-2013911405,1946420663,240322054,235695848,200865768,-385649216,1486946533,2106237838,-1550561631,-1868464754,2106631060,-1550562143,-1902019182,2106893204,-1988253768]},{"sector":12,"data":[1586297926,-903953154,126494355,654073540,516163464,-1977183276,-60898297,21465126,-1815470396,-1215826394,74712069,116113450,-401714426,1589968695,1200105212,-736181246,-2013911405,1946420663,-339727868,240322054,-989914392,-2010710946,2125988679,-1202708867,240123953,200971752,-1207601728,1324023809,-1815333121,-1815464193,-23926770,-344670197,2105556611,-1590332158,378246100,104436694,108368842,-1815341511,516170356,-165243948,67483527,1392903796,194373646,-1814677761,-1814808833,-27858930,-1351303157,240173099,-1946605848,1439391205,-326898549,240539464,200841448,-385649216,2123170224,2105458368,414779158,-1532628480,511540920,3258448,1072172624,2106237434,-1584506717,1319337358,2106630548,-1584099165,1285782930,2106892692,-1198223709,1183415719,-195130126,653418180,1183319946,1200236222,-1136228351,38242854,654198408,-2013050998,1183578182,-967406652,-1988263261,-1954708458,-2036086714,-1102672515,-163148464,-401698736,1183422241,-61437446,58049035,-1962861591,-727451066,-703166061,-1815436397,-1815341431,-1988252765,-1552044778,378109351,1183481257,-1545327874,1589940540,-2020923654,-1960442439,-1996113001,1451866182,240322234,200918504,-385649216,1589903572,-1203336198,649746059,96044937,-1147696858,-11336187,243114806,-1559787288,378115014,1996461000,-92864516,2107979519,125036558,-1986801501,-1970023914,-995953082,-1916099950,-1567439454,1048808907,1946320256,8579331]},{"sector":13,"data":[951862922,2054471238,1354516109,1358317197,1726484112,-96040554,201086601,-1956416318,-727451066,-703166061,2108400531,2108495497,720914058,-1858296860,653942468,96044939,-1147696346,-1203336955,112875145,468192851,1958743033,-163149267,-1567439454,1589939659,-1203336198,649746059,96044937,-1147696858,-11336187,243115318,-1559832344,378115024,28873682,-401715200,1600059231,-883038837,-2081649835,1448545004,184960651,108333126,-375799765,1996423356,108461832,12249102,-1979955575,-1039401386,-1612119180,553957376,-401698736,1183404263,-94991880,-797654517,737697476,-2021054784,-1993989886,-1960771449,-62486077,-989964663,1586297982,-126433802,-970586133,-947716091,8686881,-1931834335,2009545665,-161575187,-1929609591,1589968454,1200301574,1191912968,-1961855734,1452013638,1200170746,1468605960,638905098,-1962123324,1452013638,-2021054726,-1993989888,-1004469609,1183516254,-94991368,206014758,240617766,-1979955575,-953745834,69703,-1946401141,1600061014,-899816053,-1957363708,317490156,-1070901673,-1980348791,1589965894,1194927622,640120082,1081217,-385650175,565706914,1744250368,1191388688,1468737036,-196703986,653678217,-384808961,-1960443770,-1960441785,1183386199,-229209616,-2144975125,192151613,-1943943293,1004113088,-1896910082,2122968670,-28930820,-1946663285,-130287018,1589907314,-2020923664,-1960435456,-350158185,-62485563,-1979820405,1451881542,106874102,307232550]},{"sector":14,"data":[200296075,678752838,200558219,544601670,-1947187573,1183445590,-27883012,-1994275712,1451882566,-58800902,-974233972,-1813251978,-1946925429,1600058966,-899816053,-1957363708,116163564,-25785514,-16222465,-401734026,1183448638,-61437446,225821195,240173099,-1961741848,1979059184,-25785889,-1946532213,-1956709290,80371173,-326413056,722791555,-297367104,-1981004151,1183447622,-1815436808,-1815341429,-1980479863,116848214,1946320254,-1814781687,-1814686069,1183516395,-162100236,-1980742007,-2103315882,-2078897283,-1001657475,-2094597026,33933247,-2094656396,84264895,-1014297484,1183433356,-296318484,-165273621,67483527,1392905076,123070478,-352321096,-62485648,-1979820405,1451882566,-60898054,-1182299354,-1752488443,1183385019,-27883012,729072139,654073540,95913974,-1948355583,1452012614,1977105398,-27903739,1183567732,-229209104,-2022320069,1979602489,-1950422142,1175186502,-16222994,1996484214,-1952846868,1175189574,-16222982,1996487286,730459128,1575324608,-326412853,1443425411,185222795,225709126,-15960321,496634486,-350448235,142016267,-1710852353,479565268,-1979955575,-1039401386,-1070922635,28910571,-128021504,-335776059,494191876,289732161,-1980337144,1586297974,-128020738,-1946530167,-443851071,576093,-2081649835,-1957295892,1175128646,-15895540,1996426358,-1793222134,199957653,-16222465,-728103306,-1994615403,1451883590,1975651326,-339727612,-60898250,289901094]},{"sector":15,"data":[20709924,-1958555109,-128021302,-335776059,494191882,34686198,-163511948,1946685764,-59340304,-1895932276,1317664862,1589742586,-899816053,-1957363704,149717996,106873942,-1993949141,-1993997753,172395271,1963738635,-339727612,173982795,-1484289242,-1752488443,1183385001,-27883012,1586284843,-59324936,1156979435,292815121,106873921,-1961278325,19274580,1460741639,494191874,-972302196,1988747381,-27357956,-1980211570,-1047791026,1575324510,1426065610,-326898549,-2103355898,-2078897283,-62486147,-1929488759,1992686174,-955585540,-16389500,-1179335169,198740997,-1980729914,1586297974,-94466306,402785991,-1070923776,-1558706525,178460676,403219224,1575324510,-326412853,1443425411,184960651,74778694,1391181867,637951684,99270531,638022911,99256203,-1960427285,637904775,95000459,-1979955575,-919863722,-973578612,183237750,34686198,-985595532,-661906060,-260717045,-1929611639,1586429534,-95516168,1589952907,-2021054970,-1956772374,80371173,-326413056,1460071555,205949782,1947092491,242679565,-1710459137,479565085,1996426219,108461832,-1785342822,-62486244,201217673,721778114,1995151808,-973447540,65797238,-165841723,1963069764,289732116,737244168,1988729280,-27357956,-335913330,-59340463,-1895932276,2122578526,931004426,-1945481589,1992686174,289732348,722367496,1988729280,-27357956,-335913330,494191906,34686198,1988748148,-27357956,1241144974,-813709045]},{"sector":16,"data":[-1962258807,1452014662,-1996231682,1599998542,-899816053,-1957363702,149717996,1996445271,142016266,-20060146,1913013817,-1715459315,-1994914653,-384301546,44105904,105265432,144777842,169249560,138819864,1446581877,-1592691446,101390340,141826054,-1994915167,434895430,638082756,94865291,-1449686234,402957061,403052169,16402119,402956544,403052171,-1979955575,1183579734,402825990,-1962391925,144902742,169249048,-128021480,-335776059,494191875,34686198,1988753268,-27357956,-1929879922,-95515681,1586239723,-59324936,-165841723,1946292548,-59340297,-1895932276,-1047791522,105265473,1317658743,-62485510,-369207669,1600061254,-899816053,-1957363706,149717996,2122536535,1031667718,638082756,94341003,-1583903962,-96040699,-1174645111,2123038721,-128021498,-335907131,198741002,-989301562,994123124,-1980597041,1586297462,-128020740,-335655287,-1983894776,1183448134,-96039942,1593595531,1575324511,1426065098,-326898549,-2091493624,2113930878,140428371,-1618506970,-1752488443,1183384993,-61437446,653942468,-1324267637,636015363,1183383553,108956670,1586284683,-92879368,-818213141,1959071869,289732125,1090614280,-972302196,1988750453,-60912390,-1980211570,149683790,1183432747,-96040452,-1946532213,1600060502,-899816053,-1957363706,116163564,105286486,1963476491,173982736,-1279294682,1467219973,-352321096,106873940,424119078,458722086,-1979955575,1586298454,-59324934]},{"sector":17,"data":[1157043947,1946222607,-1715459323,1149961963,391416597,-628166517,-972302196,1156977780,-562819057,-1996488264,1586297974,-94466306,1988692971,-27357956,737828494,-443851072,576093,-2081649835,-1957296916,1175128134,-1005882102,-2094658466,373695,1589906805,1207313928,58003473,-1962901015,1175128134,-1005423606,-2144991138,637800783,639190923,-350529653,207537163,71797542,106400550,-1979955575,1988886102,-1005458682,-1960379298,-1960438457,1183389527,-27883012,201082507,947191366,654073540,269436918,-2144985484,-1006104241,-14283682,184923527,101545206,-25755821,1459386111,-9902066,654073540,1001463,733246465,-1158964800,1575324510,1426066122,-326898549,105286404,1963476491,173982731,-1245740250,225771525,637951684,68241398,-2132212875,105286400,1946699275,106873874,291995686,1200301819,1468737049,-1004999909,-1960441250,-1960442809,199951959,654073540,638928779,-1994958965,1451883590,1958874110,-60898236,256374310,640316432,135350262,-2144984204,-990441113,-14284194,-1006258801,-165217186,1946423623,209125132,101349119,1793592915,-60898049,256374566,-1401683712,-342245333,1575324594,1426065610,-326898549,-1957275898,1988823134,-1983894778,76151366,1200162697,239504130,1947223563,241091597,424119078,458722086,1589906411,1200301578,1468737028,-62486266,-1946265975,1988823166,-95515898,1589907947,1200301820,1468737045,-62486249,-1946265975,1175190598]}],[{"sector":1,"data":[-1003391746,-165217186,1963986759,-1960427241,-1960437433,83958615,637687057,17909750,83821172,654073540,1001463,733705217,-1041524288,-1946530167,-1956684095,214588901,-326413056,-955716477,335366,106873856,138906406,173509414,1589911787,-2020923652,-1960435456,-1994325353,1451882566,-1873606918,1200351246,-1946663285,1183447638,-27883012,-696925685,721837764,-1993958976,637911431,96704393,71797030,106400038,1200170649,1468605964,1200170510,1468605960,-2021054966,-1993996865,-1727677049,-1551398618,-1752619515,-1993996891,637902727,94476169,-2021054823,-1993996885,637906327,94865289,-1449686746,-2021054971,-1993996879,637906823,95782793,-1282963162,-1360523771,106874105,-1213759450,-2144928251,-49956953,-1215332314,-2144992251,-150620249,-1215332314,-2144989179,537245583,-1030962293,1376115973,655800400,1922715678,-1004759635,-4716962,-2021054721,-1993996818,637922439,99649479,-1070923776,-192444122,-2021054971,-1993996814,637925511,100042633,-91780826,1200170501,1204233746,-1962868720,80371173,-326413056,1460464771,140428374,-1215826394,91488773,1810481195,140428290,-1215332314,2122514949,745865222,-780304735,636015080,179896321,-1948125440,138841048,-2026257780,813011914,-1815308487,-661968267,-255884506,544473093,-1215826394,-1200357115,-1070902522,-14266288,-14285193,-401734537,28836668,34662656,638082756,95913974,-1584040959,-388924034,19261649,702720]},{"sector":2,"data":[-661921289,-1945614709,-897107518,956724627,1955843223,140413780,-255884506,1232338949,-224767226,-2097151805,41779262,2124495733,-773271171,75240,-150994643,-1192195112,-420020214,1183570059,173443848,-1815443655,-1757866123,292918220,-150977864,-1807219226,1354771280,-2132275568,140428327,71797542,106400550,-1979955575,-804520362,1589917812,1207314172,779423759,-973709684,-661848970,158647819,-166366011,1947209540,-59340303,-1895932276,1589966430,-1949922552,-1993933226,-1993997241,1589904983,-2020923896,-1960442465,-1996119657,1451882566,-193033222,-150947607,16781124,1959070069,256177685,-1980730352,1586297974,-161575170,654073540,269436918,1589906036,-1949922312,384564822,653811396,17846144,654073540,638928779,-1005103221,-1993934754,-1993992889,1589909335,1200301816,1468737049,-62486245,201217673,-1941277502,1992684638,-150279172,16781124,1959070069,256177685,-1980730352,1586297974,-195129602,654073540,269436918,1589908084,-1949922312,-1993933226,-1993991865,233511767,737697476,1200170688,1200170523,1200301593,1468737053,-129595105,-1946528119,1175189574,-1003850502,-2144929698,654119271,1001463,-385649663,-1960378504,-1960438457,1183389527,-27883012,-973709684,552205430,175570943,235435775,-16761368,1996425846,-672657912,140428289,-1551398106,-1752488443,-1993996891,637911431,96704393,57983499,738064361,1200170688,1200170502,-34936572,-443850914,445021]},{"sector":3,"data":[-2081649835,1448546028,637951684,638076811,-1995810933,1451882054,1958874104,-96024760,1183514880,-128545802,-1979955575,12189270,-228684799,-151226683,1963986756,312835,-501102973,-59340302,-1895932276,1589965406,-2020923658,-1960435456,-1994325353,1451882054,1975651320,106874045,647610411,95127433,-1382577882,-2021054971,-1993996889,637905303,95520649,-728083706,1578931592,1575324511,1426064586,-326898549,105286408,1946699275,106873869,424119078,458722086,1589919467,1200301578,1468737028,-1003361530,-1960379298,-1960438457,1183389527,-94991880,256374310,-15502064,1996426358,142016266,101086975,489462355,1183514624,-94991368,-1979955575,-1039401386,1589908852,1207379708,1946222607,-1983894598,1183447622,-993924104,-2144991650,652153191,-49191040,-899816053,-1957363704,82609132,1589926891,1200301574,1468737045,-62486249,654202505,269436918,-165274507,1963004231,276234032,-15829249,1996426358,-1705834998,7468,1996430315,242679568,-16222465,1589905014,2013210118,2013210139,-1444409831,-62485505,-1979820405,1451820614,105286408,1946699275,106873877,256374566,-1837891328,1183432747,-62486018,-443835925,838237,-2081649835,1448555756,637951684,638076811,-1995810933,1451873350,1975651286,74967299,-1982577013,1451880518,566526194,-1981528439,1183573590,-599356972,735991433,-498693696,-991934839,-2144931746,57933887,-1962744087,1452008518,2174438,662094651]},{"sector":4,"data":[-1949022581,1183438422,-564753956,-1947974005,1183442518,-296318484,-1030962293,-1996480251,1451883590,-1003885570,-1960389538,639697031,553817995,-1982052727,-1039409578,1183519348,-62486052,-2130815351,1183392196,-296318484,198985355,58056262,-1006469399,-2144928674,57999423,100842217,-401698733,1183417655,-363427352,1517666827,-1962516796,1452014662,1194927870,639071492,1963349817,-263812335,653416075,637814665,-385460343,-1960443748,-1960442809,1183385175,-631862824,-976068980,65788022,-1961528123,1452014662,356792830,1413083765,-1980926697,1586288758,-765554982,1589925867,-62485528,654202507,1964590905,1463363094,-1961855717,1452011590,1200170738,1468605977,641985307,639190923,-1994696821,1451874374,-799109926,-338135355,359974147,-1946401141,1144651350,972190997,-311093420,-1931970935,1586420318,-664877872,-1947187573,-1993936298,-1993992889,1589909335,1200301820,1468737049,-196703973,200693385,-1943243582,1992674910,-989598732,1157043572,1946222607,-193558026,-1896456564,1589956190,-263812108,653416075,638928777,-1961404535,1175183430,-1004178206,1183572062,-27882500,491206950,958797429,276111191,-1947187573,-1993936298,-1993990841,1558912855,637951684,94341003,-1583903962,-532248315,-1931323767,1992674398,-1961628704,1452014662,491010558,1413023093,-989236193,-661906060,-411711989,-1931446647,1586422366,197561292,91546182,-337617212,106874023,-1947187573,-1993936298,637902727]},{"sector":5,"data":[94476169,-1947187573,1183445590,-497645088,-1962516796,1452014662,-2026297602,393545123,-1516816090,-1961855739,1452011590,-2021054734,-1993996893,-1962564201,1452014662,-2026297602,393545149,-1080608474,-1961855739,1452011590,-2021054734,-1993996867,-1962557545,1452014662,-2026297602,393545206,-124307162,-1961855739,1452011590,-2021054734,-1993996810,-1593444201,378246086,1178178504,957511164,225836630,-1947187573,-962334122,-938047085,-1815043693,-1814948213,1979467321,-27903726,1183518069,-229209104,-1986801501,-996945386,1183576158,-27882500,-259261557,-1176859106,-1510866928,1589911460,130426620,-599356672,1960723979,-263814312,-465138911,971396747,57929798,-1006593303,-1960389538,639697031,553817995,-1982577015,-1039411626,-2132212875,-733574400,-1980742007,-998182314,-465139423,-337226103,-62487700,-330921183,971921035,57932870,-990044695,-236331938,-733574148,-1982441845,1451882566,-731986694,8882982,-1752488415,1183392002,-698971692,578077195,651452100,553682827,43485990,-599357151,115234441,-401698733,1183530633,-564753444,1589957867,650128376,553813897,8882470,-733574367,1960199691,-61871869,637951684,1198023,1200301568,1191912968,722629898,1200170688,1200170510,1204233740,-352255984,1200301694,1468737032,-1005458678,-1004140962,-1960440737,639697031,553817995,637951684,638338953,638474121,638345156,553682827,42404646,-992709343,-1960442274,-1960440761,1183387223]},{"sector":6,"data":[-229209616,-1994275712,1451877446,-2096829466,-1960710074,1452008518,-263833114,1589905779,1065363184,-1947699968,1589964870,1194010118,565811468,653915904,1578125193,1575324511,1426064586,-326898549,172395268,1946961419,173982761,-943750362,510918917,-943750362,510984965,637951684,96976771,-1005358079,-2094658978,67487679,1183516788,139889414,1183516395,206998282,-1979955575,-443810218,576093,-2081649835,1448547564,1183432747,-129594886,-1954708831,-344095722,-60898254,-1215826394,443875845,-1215826394,309592325,-362753,1392965750,-8919026,-1980217719,1589967446,-2020923652,-1960442439,-1996113001,1451883590,1975651326,-129594428,1962558987,16443651,-1954708831,-1988262890,1451883590,-327250946,-336431477,-60898285,-1182299354,-1752488443,1183385019,-27883012,201082507,58064454,-1006583063,-165217186,17151879,2124535668,-773271171,75240,-150992199,-1948742687,-1030947770,-1815443655,-1757870475,-1250651188,2105556611,-1585548030,-388924034,19261649,77056,179951863,-1948125440,-62485544,-2026257780,1567986634,-1815308487,915101557,45186430,-427561261,112641,1183434283,702704,1183442679,702702,-1947179273,-295793672,-1815443573,-1815308405,-1815444087,-1815308919,-1815705717,-1815570549,-1815706231,-1815571063,-472785269,2107869067,-772776309,-1551398429,-25755779,251426559,-1191944472,-1276575743,-373282048,1996423342,-126418950,235304703,-1980400920,1187509318]},{"sector":7,"data":[-1593835274,-388924034,57868712,-1107260695,1988727754,-263796754,2123076550,-129594378,972707467,962032900,1383400020,-165274428,17151879,-165263244,67483527,-8175499,-1591315199,378246090,104436684,427135956,-1814686151,-794750091,-770274413,-972670573,956724627,1955842070,-295793899,-16615425,-262239433,-16615425,-401698761,-964460027,-297368822,-263814390,2124498698,636014973,-952434687,2122942323,-196703242,-443850914,182877,-2081649835,-2103373588,-2078897283,-1001723011,-1960381346,639697031,553817995,-1980217719,1392966230,854068880,-129594565,-1980082549,1451881542,1975651318,-60898090,-1182299354,-1752488443,1183385019,-229209616,244339462,-1959065368,1452011590,-62486030,201217673,-1005751102,-1960379298,-1960441785,-1075115433,-883038837,-2081649835,-2103376660,-2078897283,722791293,-401715008,1589968230,-2020923652,-1960442439,-1996113001,1451883590,1975651326,1575324642,-326412853,1443425411,185222795,74779718,1122746411,-1006632519,-1960442274,637902727,94476171,-1979955575,1586298454,-59324936,1156975339,24381457,494191937,1983633548,1005548810,-361427898,-1929611639,1586429534,-95516168,-1956724341,147480037,-326413056,-1962611581,1175128646,-1003064308,-165279138,1963462983,-1873607124,2111957006,-1979955575,1347616342,-16222465,-401734026,1996488655,108461832,-100609,-1070859146,1541934672,1575324656,-16774966,-7092170,-7092682,-7091146,244566582]},{"sector":8,"data":[-23832,-7092170,-7092682,-7091146,244566582,-1543556376,1439399331,-326898549,-2003151354,186422719,-1590725440,-388924034,19261649,702720,-259268105,-1815563009,-1815694081,-1815300865,-1815431937,1358710413,1358579341,-246945778,2124488171,-773271171,75240,-150992199,-992441375,647219871,99649419,-1946532215,-1956709818,1439391205,-326898549,2124502546,-773271171,75240,-150992199,-1948742687,-1953248633,-1986802537,1451883590,-1081566466,-1073013611,-1360460939,-60898304,-1484289242,-1752488443,1183385001,-94991880,-974233972,132905078,-552508288,-1944226619,1975913432,-126449165,-1896194420,2124541534,-773271171,75240,-150992199,-1948742687,-1953249657,-1986803561,1451880518,1958874098,-262224883,424119078,458722086,1589906411,1200301820,1468737028,-196703994,-1930013047,1992683102,-1962218508,1418401092,-1896838377,198741210,-165907258,1963986756,289732106,-2147191807,-148893364,16781124,-1070868108,-1982141543,1586295926,-1002443786,-1960379298,637904775,95000459,-1980217719,1586297430,-126433810,1149966571,75025,-523041359,-2146349941,-1056186399,-988724087,-661906060,-495598069,-1929873783,1586428510,-443851026,-1957311651,149717996,106873942,-255884506,1819541509,-259552474,-28931835,-1484289242,-1752488443,1183385001,-61437446,-973578612,736885366,34686198,1156981365,477364497,637951684,99651583,-1961278325,690363220,637923975,99915545,-32414592]},{"sector":9,"data":[-1944226619,1975913432,-92894769,-1896063348,1589966942,-28931322,-259573466,-1207602171,48955393,-1956724693,80371173,-1957326848,-945793300,-1947981190,140413936,1074874250,1586226935,38242566,-1979162997,-467004601,-1947797688,1200162398,140413702,-166574198,-1954888154,1200162398,-1304526076,259260440,-1979162997,653660231,1586199238,-1962480890,71601139,1577552200,313949,-2081649835,1448544492,-2096603509,2130712191,2059903009,-259267542,1074874250,1586226935,38242566,-1979162997,-467004601,-370739384,1200226560,-1947981297,222792432,-293343189,373787394,1385760515,-137983152,1372138470,791976528,1183383552,81402,1187448183,-1610612230,-466978105,1586229387,289901064,1166932107,-1947797759,1200162398,140413698,1474435,-1746336907,411009792,-1605667840,-466971718,-1946663287,-956096953,1945650747,323455545,1194058794,-96064738,2130200123,-1819500503,-125049814,1209026442,444057403,705841034,-952418076,1183518838,507980792,1586226935,38242566,1586185963,340232968,-1957670247,-96064761,-919910328,-828747695,-1996488657,1451883590,140413950,-1726593141,1996443730,-59310082,3198106,-1597469952,-466978105,-1047799669,1586226167,38207750,712689568,-1949791260,-503842234,50749067,1586168391,105351430,-1979162997,653660743,-1958184250,1200162398,-1304526076,276037656,-1979162997,653660231,-1958708538,116065886,1150022539,126437380,-443850914,313949,-2081649835]},{"sector":10,"data":[-1957288724,2139293790,57933872,721635817,932860096,-14904035,1183647862,-401714966,1048837738,1962940594,41478403,-1928825089,240187462,-2080507928,1946158718,-96040067,-1948367223,1183448646,-129594398,-1948498295,1183448134,-1304525856,1584660504,-1962385781,1200228959,-953747963,32541562,1979833974,140413922,-1979031669,653657159,-259294522,31225345,179888246,1183666176,1183666404,-2137370378,-14904008,-1332021642,721420500,429543616,-1206086332,-1706033151,479544352,383534733,1144822352,1183521941,-565802502,1089226379,-1948105079,1183447110,-62485540,-2082453879,1618494,179857012,1183666176,1183666404,-2137370378,-14904008,-1332021642,-1207959340,-1706033151,479544345,-1705983957,479544352,-1962385781,1200228959,-953747963,32541562,1979833974,140413922,-1979031669,653657159,-259294522,31225345,1183572086,-565823006,1183648381,-1706027300,479544380,1089226379,-1948367223,1183445062,-364475422,-1948498295,1183444550,-1304525856,57999384,-1962888471,1178198598,-385647394,1586167975,174033672,-167426166,-1954887898,-562691600,-1948092927,1602947166,71797258,2059806454,1979838603,-529137188,-2096603509,1946163327,1354771264,-1790699110,112668,1142987344,179838101,1183666176,1183666404,-2137370378,-14904008,-1332021642,-1929379628,1343675462,-1790690150,-599326948,-2076929,1325391430,1354771426,-1790697318,112668,1142528592,196615317,1183666176,1183666404,-2137370378]},{"sector":11,"data":[-14904008,-1332021642,-1929379628,1343675462,-1790690150,-263812324,-1948367223,-1992229306,1183572550,-599356936,-1979955573,1048830022,1962940594,18344195,-1962385781,1200228959,-953747963,32541562,1979833974,140413922,-1979031669,653657159,-259294522,31225345,28893302,429543424,723293508,546984128,-1206086332,-1924136950,-1924078522,-1705970106,479541376,-1695123713,54448,971130507,58515014,-1929332503,1343675462,-1790690150,11266332,-1979162997,-1057091257,-1963768184,-1057091513,-1963833720,33820743,-1963702648,1183378502,175636469,1358055053,-1736935264,702544,1520147024,1183456405,-414807828,-1997519222,1183574342,-263833108,1191052149,-364475671,1183367422,-297366810,1183367422,140413928,-1928693761,-1605310906,1352169593,1342180280,-1789224038,-263812580,-1946990968,1200228446,-2000617968,1200288326,-2013133808,1200288838,-2000093677,2013263174,-230257398,2021171280,179851416,-1684385792,-1206086310,-1706033151,479534391,1575324510,1426064586,-326898549,108954372,-1962249216,1200228446,-337368559,140413705,705906570,1183402212,273124092,1183441962,-1304525826,57999384,-1962865431,1200228959,-62521083,-1962385781,1200228959,-28966652,-1705983957,479544345,1342177720,-1790697318,108954396,-2139786240,226150206,1085801846,-1207702766,-1605364518,-466978106,1183565963,1356986366,712689568,-1949791260,-503841722,1354771280,13980314,2059837440,-930356182,-134330741,-945794847]},{"sector":12,"data":[-1947981190,-62485560,-1705975305,479544331,712689312,-1949791260,-503841210,2059903056,-930356182,1090274955,1356986176,-1790700902,11266332,2059878016,-1207601651,65737294,1343547576,712689312,-1949791260,-503841210,2059903056,-930356182,-134461813,-1070903071,-716006832,-962592768,-1947981190,-28931128,-1605312009,-466978105,1183565963,-503887620,1141611088,-962585451,-1947981190,-28931128,-1605312009,-466978105,1183565963,-2088113156,1946158718,140413720,-1979025409,-467005369,1200246848,1357130253,-345634144,140413719,-1979025409,-467005369,1200246848,1222912531,1712037968,179851416,-1080406016,-1961061026,80371173,-326413056,-1962742653,2139294302,1198850096,185091723,721583552,-28931648,184960651,721583552,373787072,1006519947,58066502,-1996077429,-2091707321,453057151,1356396480,-86710258,-1962254709,1200225862,440911636,1204224001,-1962934244,113925605,-326413056,-1979425141,-467009209,1997030971,55020040,1997030971,-339727612,73304953,-467007606,414320171,1997162043,38242839,994108458,209062470,1879719555,-1207601919,1391132673,-1979425141,736373255,991474182,-982316474,704792458,172375012,1200274294,138820353,45614453,-1976833280,-467008697,138820424,62391669,-1961104640,1183516254,38222088,79168886,-1962153216,1194920006,-1196656890,-1034092539,-1957363704,49054700,-2053482921,991728982,1914179606,990279437,1914179078,112645,-1070923029,-2080487799]},{"sector":13,"data":[1946158718,1451596323,-259318635,2122578571,91554054,-352320328,105286403,331744153,403612631,403707529,1593722507,1575324511,1426064074,-326898549,1586189864,813662984,721777664,63891904,-2096603509,1946163327,108953869,108332032,-385875528,1996424120,-230257400,602410576,-1304525832,846463000,712689568,-1947169820,-140905402,-196703746,-1711782261,1183448823,2059837688,-259267542,-1712175477,1183448823,-163148814,-1979779175,2122446406,1963065606,-1816485816,-259267542,721968779,1200223302,168216350,-1610612624,-466971764,1183667792,-1014279950,1342181381,-1543606552,20803594,-1961462528,-1935669154,273102995,1194853751,-955878638,7342598,140413696,949479584,393678919,1913800504,-1744396270,1997621048,323434506,28837238,721611520,-364475968,714312864,-1163898652,1183666323,-1014279950,1342181381,-1979837720,2122572870,192151786,963644065,309650502,-2080434711,1946346622,-461470967,-385649661,2122448625,1963196422,1354771214,-25499634,192266251,-1191251479,240123905,-1946260504,20833350,1025340416,1970536450,1946157885,277884,-2081881227,343296,-2132212875,-20649727,737691275,1183446086,140413932,1177225099,146924,-1410792587,407357438,931856385,51791755,-330945594,721421101,734956498,1229581390,1183445495,-1816485648,1334502442,736963089,507980737,-261687480,-1947187575,1177093191,1996444656,-339727376,142016275,1358954424,-352321096,142016263]},{"sector":14,"data":[1342177720,-169341360,-28514039,-1979162997,-1057091257,-1963112824,1183322183,306678524,-1963047288,1183380550,1354771455,-1793247334,-1304526052,57999384,-1962899735,1602947166,88574474,14304904,1174469958,140413951,-1979031669,1183319111,-62521128,-1963047424,653720902,-1992262969,1183505990,-953747713,1183402106,-62485790,2059806454,-599357120,-151107958,1216005670,-1193261431,-1706033151,479544345,-1705983957,479544352,1342177720,1357792909,1358579341,-1791459174,-92864740,13938842,-599356160,1016746006,-350448316,-62456293,-16228725,1183648375,2023772412,-1202677640,-1706033151,479550107,1342177720,-1793247334,1451596316,1183390869,-396981786,-1789491814,142620,989911683,125298774,1178332786,-1477914,-401733514,1206454969,-129594627,-1946335608,1200228446,-62486512,-2012067958,1200291398,-2000093677,-1070858426,490183248,1048779925,1962940594,8841475,-1962385781,1200228959,-666466299,16598528,1586233158,174033672,-2012985462,1174460998,-28966660,-151173494,1081788198,-1965144439,653721414,-1991738681,1183507014,-970524932,1183400058,-28931364,2059806454,-532248248,1342177720,-1790699110,1354771228,-1790697318,112668,-297366192,-96039600,947952208,1996430485,-726623494,1183645696,-1706027300,479544380,1191058411,140413948,-1928693761,-1605305274,1352169592,1342177720,-1789224038,112668,490183248,-2053497707,-1994615466,1451877958,1451596520,36510869,14320384]},{"sector":15,"data":[2011715131,1005482503,-378345914,235435775,-385230360,-1956709310,80371173,-326413056,1347469355,106859344,1345222655,1610567760,46816546,-326413056,-1962385781,1200162374,80370986,-326413056,18148481,1586189911,813662982,-385649664,-2033778195,65262,-1189076808,-1098055635,118947584,-2038191118,727383790,932860096,-1961061091,1200227934,-1947981300,175636464,222792278,-2037559224,-1974403328,-467005881,414334595,-137815295,734069721,2139312326,91488306,-352321096,1554435,1510906448,1586175125,710904582,-661849205,-4603762,-222284801,1238497198,-17920375,-1979294069,-467006393,1200287883,-1983501554,1006567046,-1996196152,-1963004234,-467006393,-16871797,-1056708143,-17920373,-1054086703,-17660279,-1979025409,721351302,1200247012,-11515891,-4707721,2139312383,91488306,-352321096,1554435,1510906448,1586175125,206014982,2059806454,-192509624,2109737982,-192493818,-1610612482,-466978105,1200277643,-503887859,-158955192,239569662,2059806454,-17267063,-166901878,-1988442330,-2080441722,1618494,-1041693835,1354771200,-17791347,-58290864,-2137370370,-14904008,-1694568266,54448,-1705983957,479544345,1342177720,-1790697318,106859292,-1979031669,653657415,-259294521,-17385983,-17123839,-1962516853,1200228959,-970525180,32541562,33486006,-67402,-2130774394,226150206,-2037556106,1343684340,-1790690150,1816604,-259617456,-2037559042,-1705967876,479541376]},{"sector":16,"data":[-17778945,13938842,-122224896,-155779074,1141611262,-1224794987,-1224737036,312147702,723293508,-2037559104,-1924071696,1358888070,-1791459174,-256442596,-726623490,28835840,932859904,1578931485,1575324511,1426064074,1586228363,813662984,1393521920,235304703,-142616,-401733514,-899809829,-1957363708,351044588,106859350,3178371,-1310129292,-1304526079,91488280,-1192751533,108462077,1342177720,-154671090,721843967,-401715008,1048835773,1962940594,17426691,-1979294069,653659207,-1991738682,-1072959930,1187448189,-1979711250,653659463,-1991738681,1200287814,-970525170,-230258310,-166770806,1081788198,-1946925431,1200228959,-953747963,32541562,1979838582,106859508,-1979031669,653657159,-259294522,32404993,-1070861706,-330920624,-28930736,947952208,1996430485,-726623508,-1070923776,1142528592,28843157,546983936,-2145610428,226150206,-945787017,-1947981190,1850712264,1088550728,1962165819,-227082474,-1695254785,479544331,-1149185,312145014,-14903996,1996485238,1141611248,1996430485,-260636690,-1790700902,-230257892,1458604872,-1695254785,479544331,-260636842,-1790700902,-294191332,-1695516929,479544331,-1149185,312145014,-350448316,-297366159,1016746006,-350448316,2019598437,-1594472824,1183348833,2019729655,-1594341752,1183348835,2019860729,-1594210680,1183348837,2019991803,-1594079608,1183348839,106859517,-32681986,1207832391,175636238,201704331,1183666176,1200247030]},{"sector":17,"data":[1357130302,-1789117798,106859292,-32684034,1342050127,-401714418,1996487723,106859270,1392801791,-67770354,721837707,-401715193,-1956710733,46816741,-326413056,-955883893,77895,20727751,977782528,-899874816,-1957363710,49054700,475958102,2901959,407276288,-1994762613,1468604999,172395300,-1976678519,1200100422,273058317,414334595,-137815295,-2000606503,1183452999,-1304526066,-920977128,-1054156297,-1978775672,1200099910,373721868,-1962260599,256150259,1284170794,736963085,-955807295,67655,1558711891,-28931589,1204280971,-956301292,5703,-2012396406,1149899079,323454991,-2012330870,36442695,-955234424,6215,1722311,474466048,1204224001,-956301280,75847,3164103,843564800,-11337727,-401732490,-561251549,149447,108954368,-1962314241,1194001991,105285892,-16220541,1200293493,138840326,-1961075061,969313079,108136006,-1979759475,1183516230,105261832,184829833,-1962378048,1194982982,-955941884,1095,-1995946357,-208992697,-1996077941,1183529031,-28952312,1149961847,105351428,1342181560,-11485141,2013202039,1347440686,-1960681473,1204231262,-939524300,-51641,20596679,1011336960,1204158464,1204224062,-973078490,-973061817,-973062073,1577074503,-899816053,-1957363688,82609132,-1979294069,-922874553,-1963112824,1183321927,206015231,-1963178360,1183321671,1354771454,-1793247334,106859292,-1928693761,-1202652090,-1974468576,-466993593]}],[{"sector":1,"data":[1520147024,28843157,932859904,-1961061091,1204225630,-1962933972,46816741,-326413056,-1962742653,1204226654,-2097151960,1979659903,71797509,1200292843,-28931786,17319563,1183579718,71776766,1200304503,990315268,662109766,1342181816,-11485141,2013265526,206015022,1346429994,705513354,138806244,843549520,1342588451,-1205706753,-443875327,445021,-2081649835,1946158718,140413705,-1557248117,1586171352,746554120,-1961331456,1200162374,-401714382,1996487067,140413704,235304959,1560752872,1426064586,-326898549,-1957275902,2139293790,57933868,-2097115159,1946159231,75465581,1394242560,-113383410,-1962385781,251855951,159303739,1354771283,166202960,1354771201,-1793247334,-1946211556,199952502,240173099,-60696,-1958280636,105266119,76226675,2097300537,1962890772,71600898,990004227,-663419324,-352321096,138725333,2122907648,112894,490183248,1586175125,478118664,1393783808,1392801791,-120985586,721968779,-401715193,1600058247,-899816053,-1957363708,82609132,-2096734581,1946168447,8448259,-2012395638,1200291142,-12154865,414334595,-138405119,205980376,-1963178360,36441671,-2080487800,1962944639,1354771250,-1793247334,106859292,-1928693761,-1202652090,-1974468576,-466993593,1520147024,28843157,932859904,-1961061091,1204225630,-956301016,1095,411591,1095680,1354771280,779616080,-11513776,1996431967,1354771206,99739662,-899816053,-1957363710]},{"sector":2,"data":[116163564,235566847,-1980230936,1586232902,71772938,1183385387,142509050,-1962050048,1178273862,-1961722118,233568838,-150714485,138820568,1183515517,-62486264,-1962254709,121241158,1200293746,-338102524,-92372207,-1961984768,1178336326,-1962705158,1183447622,-58817540,-1958251520,1183517278,71762428,-1705983957,479534391,-1962248449,2013203038,-28931324,240125739,-1192076568,-1706033151,479534391,-955621749,67655,149447,108954368,1392997376,-401721345,-443810291,445021,-2081649835,1996424428,1558711816,-28931593,-1962385781,1183385159,108954620,-1961984512,1177288262,1178290428,-351306234,-62485750,1178327287,-1962705658,1174472262,721713660,-1961956416,1178205766,1208188156,1183515627,1575324668,1426064586,-326898549,108954374,-385649408,1996423335,-51900920,-28931594,58048523,-16738583,1996425334,2145914374,-62486017,-1962385781,1183385159,-62485510,-1207548023,726663184,2013221056,779616006,-11513776,1586176607,71797512,1178273539,-1962377476,1194982470,-1960477180,1177093191,-58817540,-1962508800,1177110535,1996444668,746554364,-138405119,-401714984,770440812,-2096603509,1962945663,1183535908,71773178,1354771280,-59643890,-1962379521,1200293982,71772934,112720,1558711888,1575324668,1426064586,1996483723,1290276358,1958743030,108461843,-1962516853,1356396295,1342177720,-32053234,182877,-1275051,-401734026,-1072957913,1996427380,106859270]},{"sector":3,"data":[28850175,-401715200,-899809804,-1957363710,106859500,1560692619,1426064074,-326898549,-1957275900,2139293790,1098186800,993544075,58066502,-1962522997,944212976,1929791035,105286403,1409173129,-1662513578,142510851,1342182072,1358954424,779485014,-1070903216,576585552,-25806010,1988748918,-1956684036,80371173,-326413056,-1962742653,2139295326,91488300,1525268523,138840835,1946288189,33635613,37555316,1026454530,846464000,1183455467,-1746361844,-1576384886,1183488006,-1819500020,-1576384886,1586205626,205949454,-1975564408,1200097862,241077056,-2012854646,1586184519,71797518,705515402,-1967051795,60294670,-28931647,17188598,-1276574860,642222848,1946157373,146695,552288116,1342184888,-11485141,1586232950,779616014,-11513776,1996431967,-25755890,46786574,-955359605,9799,1605507,1204247412,1392508952,240173099,-336936472,1489013,1354771280,241077072,1345222655,1610567760,1882146,1354771280,-1946257665,2013204062,1347440686,186802175,-1196722752,726663186,1996443840,241077246,-1976666113,-466993337,1078430288,-339727536,1620105,1354771280,241077072,-13731841,1996426358,1610567690,-18814686,-15829249,-401733514,-1072959355,28837492,36432128,-2096210293,1946166911,142508326,527761920,1342183352,-11485141,2013265526,209125166,1342863103,-1960681473,1204227678,-1979711450,-467006393,1980515899,-24057597,990791562,57871430,-1963031063]},{"sector":4,"data":[994577735,58067526,-1963034135,-467005625,414334595,-137815295,1002505177,58133062,-1963040279,-467006137,1997162043,256346757,1997162043,-8722173,1023952523,276038144,1963065661,12314883,1946288957,-10294985,-1961992565,1334445127,736963085,172360641,1409173129,-206182386,2147370555,-12392189,-1961986305,1586232902,105327374,-1964503472,-13702660,235828991,1005818600,58719814,-1191239703,726663190,-1957670720,2013204062,1347440686,-1205706753,726663186,1996443840,241077246,-13731841,1996426358,1610567690,242679586,-1946270069,1194004062,-401715194,1996487737,241077006,-401721345,330889693,-1070903296,-25755824,-15835509,1996435063,175570700,576716624,-955359605,9799,-86039,-401731978,1178333971,-385646594,1586232992,642238222,1190526979,611582982,134629110,381161845,-1070903296,2013220944,1347440686,-14524417,1996426870,-622326018,-26285572,134629110,481830004,-1070903296,-25755824,-15835509,1347432055,576716624,1114947595,-955359605,75335,481835243,-1070903296,-25755824,-15835509,1347432055,576716624,175423499,-955359605,140871,381162731,-1070903296,1586188368,779616014,-11513776,1996431967,-28931314,722361995,240125511,-1191488280,726663186,1996443840,241077246,-13731841,1996426358,1610567690,241077026,-1979824501,1347631175,649230,-1946300439,181034469,-326413056,1443032195,-2096603509,1962945663,105286468,1979991865]},{"sector":5,"data":[38258439,334168064,-1962522997,71576563,1979860027,38046467,1392658313,-235018226,-1946270071,1195051102,1208516358,-1070923143,-955889783,72775,17319879,-443851264,313949,-2115204267,1459687148,173968214,2916227,1911096180,138840835,1946231357,-385649095,222102273,-385649408,540868939,-385649408,557646021,-384601087,1996423953,-18422,1996436715,112650,1996434667,173968138,-654899317,-11329301,-14881993,1586170486,105351946,1996483819,175570698,-244717554,722099851,240125511,-1980107288,-1946226042,2139294302,292814906,1342183096,1347469355,1345222655,1610567760,105314082,225706496,-16091393,251589302,-335860504,173968181,3833731,314059892,-1070903296,-222888112,779616254,222792272,1194058794,-226098428,-1070903042,576716624,-1962254709,-1979780474,1996437575,-226063606,173968382,1342588715,-103553010,-150827031,67110470,1586176373,981435146,-954698752,1244230,1342183096,1347469355,1345222655,1610567760,-955258078,1375302,722106111,-401715008,1190657655,1946288134,175570704,-16097653,-401734025,1105853077,-59310334,-1957642197,2013203038,779616006,222792272,1191437354,71772934,1354771280,-1960681473,-208991650,-1996077941,300496967,1292290,1354771280,-16353281,-1974456713,-467006137,721831683,726664263,1610567872,32434466,411383,-385649406,1586168292,1014989578,-385649664,-208993832,20610179,-654852069,188368777]},{"sector":6,"data":[-1207601984,65732634,1342183864,1347469355,1345222655,-1078006960,-661885952,-4603762,-222284801,1238497198,-17396087,2081683843,26667267,-1710721281,10968,-2013084541,-1634993594,-2021064970,-2017039360,-956273663,-68986,173968383,-1996077173,-1098647482,1946222326,-158955233,1816830,-125399728,-1224781570,2013265654,1354771246,1610567760,8644898,972965515,75298886,82559019,1090012811,-17398135,972572299,1962866310,-125385177,465043710,-2037559296,-11469064,-1946224970,2013203038,1354771246,1610567760,-121733086,410321150,-17645949,-385647360,1183449230,1811981050,1812006598,-35395328,-17267062,-660975464,-2097151958,-930413884,-1728428406,259377211,-17645949,-1962377984,-1979779450,-939593082,16708742,-16454912,-1946225530,-2130774882,7078079,-208986764,-17268086,-660975464,-2097151958,-561315132,-2020947829,999844864,-2133560127,7078079,-2037708939,1995046646,-28931075,-17398215,938017660,-158924801,-158954498,-13047298,1811941062,1029958400,57999651,1040006121,57999652,1040001257,57999654,1039990761,57999656,1039990761,57999735,-2080485911,1981810814,142508341,779288832,235566847,1223588584,201213577,-2095088448,1575998,922685300,-401729524,-1072960992,1458111349,-158939138,-385875714,1600061034,-899816053,-1957363706,106859500,2916227,-426102411,186422562,724071872,932860096,-1961061091,1204225630,1392508954,-260904946,1342177720]},{"sector":7,"data":[-1793247334,108461852,240173099,1576786664,1426064074,-326898549,-950642936,129606,-2096734581,1962945663,585538057,-1073013611,1183516276,18934266,-2096734581,1962942591,-401714404,1586233228,541574918,1204224001,-939524300,-51641,16402119,1095235072,1394177025,708790154,1200247012,12079168,1200246788,1357130305,-134617074,-2096734581,1962882175,-1946973419,1200161860,876907318,-956151927,64070,2139298795,225771318,1354771283,-79566834,16402119,106859264,-13219897,-1995994113,865729606,-1178457150,-120389630,-1037319629,200820361,-955940928,129094,1605507,-11329163,-401671050,1187509209,-2097151748,2113993854,106859360,1150022539,877103362,-2080426007,2113993854,-58815514,-100725,1996424822,-1427632392,-125948941,1351718072,-1791287142,1958742812,-1774810330,-1852524399,954243664,-25092971,108265984,16973441,2122909813,-25785860,1187489259,184549626,-336625921,106859450,-13350969,-19207681,-443850914,182877,-2115204267,-2097108756,1946160766,11856131,1342182072,1342177720,1279205274,112684,711506000,863017552,28843157,-1248178176,-1206086349,-1706033150,479540149,1342182840,-1791773286,1095708,112720,833616,112720,871012944,314055829,-1952821248,-14904012,-7091146,-7091658,-7092170,-1919695306,-1924097466,-1873766330,1522460686,1342181816,1279366554,1518766380,-1965519873,-467007929,704925578,-1983829011,-1912645498]},{"sector":8,"data":[726702662,-2037559104,-11468964,-1694541642,479574883,1342181816,-10713459,860658256,1324031125,84835971,1183516789,232301324,2122531051,578093326,353140355,79171957,1337479168,-1070903296,244338768,-8748312,-1710368714,743194847,2122520811,309657868,118390403,314051701,-912633856,-1557377985,28874654,1575324416,1426066122,-326898549,-1202301080,-1706032123,743193770,201213577,-1878493760,368633870,-16701463,96009846,1520062468,-13874116,-1766261130,-1070903171,1037867600,1996434508,746109182,112720,1037867600,1996434508,746764542,178256,1037867600,1996434508,747419902,243792,1037867600,314059852,1996443672,669162238,20782229,-385649664,1048772800,1946195870,-903953388,-2013911405,1946289591,-401698808,-1511451266,-2143386880,527697021,-1099065665,-661864630,-4603762,-222284801,735180718,-771848199,329642729,-5967159,1183710838,1706578072,-1070903296,1040423504,-1766314932,1183666301,28856472,244338688,-1201566488,-1706001002,11468,-1207778173,-1706001002,34010,-74721141,-1937926466,-1178562856,-1070333953,-772296974,-24643285,-1510807087,-1527592685,-1815333121,-1815464193,-1705983957,33790,-1815333121,-1815464193,-1786194790,112668,-1908368816,1996423168,1022139134,1600007244,-883038837,-2081649835,1448550636,949891,2122540149,1584726028,1357006477,2886810,46433024,1357006477,2858138,46433024,-2082060663,1962935934,-1579644147]},{"sector":9,"data":[1194945558,-385649406,1183515182,348083942,519080812,637191,-2090949134,1962936958,19458307,-1088405885,-1957530367,1200350814,-532248314,1074284427,1183542507,-754339570,5244392,-1946925431,95489606,254142675,1183401984,239504370,-1996480731,1183576134,-754208500,-297367064,-1324595573,636015365,1183383615,-364474900,-337230199,540967838,359989951,-1947836789,1183386183,138906592,-28931776,-351910005,-430011629,1074284427,-1948236151,1183385159,172461054,-1946401143,-1181097914,-101253110,-140906357,818053369,-16097653,394791494,-285752949,719343242,817987784,-16097653,260573766,-16097653,731908678,-1962440513,-1181090234,-101253110,-140906357,818053369,-16097653,394791494,-285752949,721309322,817987784,-16097653,260573766,-16097653,731908678,-1962440513,-1181090746,-101253110,-140906357,818053369,-16097653,394791494,-285752949,721178250,817987784,-16097653,260573766,556675,-555154571,822539776,1014235583,-972530037,-1960835769,1200350814,179935492,-1946552576,-101213712,-1959738752,1191118942,-1961392120,-1947273279,1334503006,-2134365692,1586180289,138870536,1575686024,-1947836789,-24968073,185629964,-1107069450,1586167820,88589832,-2096108703,57937150,-1962086781,1204160606,-963940347,702873,-125044233,159317771,67651327,-351827920,140413705,-972536065,-963960825,702873,-1031734793,140413744,-2012723457,140413719,-1610070273,126402349]},{"sector":10,"data":[-1947836789,-1181154745,-101253110,-140906357,818053369,-16228725,394790982,-285752949,-1964614005,-936770993,-1959739008,1191118942,-1206941688,48955393,1600045099,-899816053,-1957363702,1894548460,1183536727,-1773762298,-125106402,872415161,-139529536,1317620177,1850646676,-388897750,-1054086703,-939637111,38982,711872160,1958743012,-1840871141,-1953479031,548444278,-1919922549,118921850,1183558386,-1740242544,-1705983957,479534391,1343884984,1347469355,1352287885,-1191282945,-1706033151,479549966,721307274,-1192195100,1448090126,-11485141,1996461686,112788,1510906448,246946965,1183535130,1355154324,-1924087765,-1605330362,-466981298,738084395,-1202678714,-1706033151,479549966,414334595,-2142800896,226150206,-1070907274,1142528592,28843157,546983936,723293508,-4697920,781865087,723293508,-945794880,1222912634,1141611088,-962585451,1311176314,-945794962,1222912634,1142069840,28843157,932859904,1578931485,1575324511,-1207958838,-1202716669,-1706033061,479587102,1946163517,292264513,-1073086464,99297140,2847898,726571520,-1073020928,-524750219,446320686,-1711276001,11086,-143343605,2847898,243712,6010960,1620048,-348743088,1439374485,-327029621,1448542474,16664262,1141658,1958742528,25291011,1135770,591104,-1980086647,1589967958,126494458,1975520152,23456003,1962937661,22931715,1946169149,3816711,2146135156,-1946532097,-1977157026]},{"sector":11,"data":[-1705994233,10968,-2013084541,1033436742,1098121282,1946175293,5520687,-1566959756,-1877174856,2097932302,-1705983957,10567,-352140157,243778,309328,440400,-348743088,803937429,1342178232,1342178488,-352320072,243947,6600784,1620048,1191173867,-28931334,4668824,1413287796,-972393472,-16712122,1508506182,-94452481,-1744336346,718838352,-998047744,4734210,1279080052,1023898624,628359245,1187501547,-1929359368,385808006,-125926576,-1591708164,101399190,393493144,-1959094623,-348481514,-129579221,-605355952,1375225543,-1948980480,-472778658,-1614486575,-1960427054,-773598945,-762868765,-728265919,394561,1922715730,-1927506515,-1946225018,1174531056,1962949760,-160003590,-990230785,233568894,960331814,-1977217665,1174702085,1031808583,-1980924624,1183644286,-160003588,130473611,243712,5158992,-158954160,-1706027266,479587202,-348743088,719920277,-1956684033,-1194631707,1344179686,1142938,-1706012160,479571314,1351476920,2112360080,2058920788,-2017011573,-1207923226,-1706004638,7903,-2091493429,7996990,1048655220,696023732,1320693109,12079162,28856324,-1163898880,736373395,-1709657646,12448,-1819537782,-645141206,-754202325,614092882,-1877174843,-1517426674,244379787,-1957643032,-1445422344,-954007552,91539077,2475418,1814470912,1814431487,276152331,2044737279,1342180792,-1705983957,39992,1630799559,1599995905,-326412853]},{"sector":12,"data":[-2096960381,1963068030,105286429,-1946270071,138906584,1946830603,571405,1354771280,-11513776,1183516767,414622474,-1745994112,235173375,-939571480,1619462,178176,-899816053,1439367174,1996483723,-401698810,-883093838,2033818,343296,1220023421,446320671,-956301281,18397190,-401698816,1439398614,-326898549,209617154,57934082,-1962870807,758975046,-385649408,607977669,1024816129,1031012645,1946232381,19414372,-2048326795,13822208,2379930,8332544,1040074377,91488327,1962956861,-28931322,-2095531357,1192802878,-1377238156,172410624,-1511456676,609262080,2133131264,-28931840,1946176317,2833669,1183516277,414884862,414858883,-385649589,1187446912,-352289782,609262201,2133131264,-28931840,1946175549,2702597,1183516277,414884862,414858883,-950569656,8260166,1352290539,620757028,1183383679,5258750,1245513076,-1962511104,-1163657658,-1170308328,779440152,1611286215,-1708659968,9296,-1996456155,1480457798,1023767552,108331020,-1543616885,1048778938,1968707770,172410629,1996423460,175570700,-16222465,731514486,-1961061058,147480037,-326413056,2138266,1174849280,-956301121,24924678,-1274624256,234881173,251569640,-1694655256,479573914,-73406450,-941093232,1975520124,-401698811,62421374,2126008320,513429504,1025283563,292880408,1342177720,-1159991368,1347554757,-1790767206,-401698788,-1073017755,244319605,-1703326232,8392]},{"sector":13,"data":[2160282,1975520000,1107740498,-954123776,17414,1174849280,-954103040,18438,-868318976,1965153426,-834764522,1962934418,-871971058,-954123630,9620998,-2128811264,244501566,-2129365726,9621054,-955484928,-1953313786,-838416607,-1711275886,9604,5005722,-1274624256,-956300907,8147462,149425664,-1752909571,991992400,-1073013611,-2068313228,546984087,-350448326,-320336380,872859644,-352321183,-1957326628,82609132,-1751120185,113704960,38818,-1748760889,113704960,38854,-1748498745,113721344,1610651594,-1748236601,113733632,2013304782,-1747974457,113736704,2113968082,-1747712313,113737472,2080413654,-1747450169,113732608,1174443994,-1747188025,113706496,50370526,-1746925881,113705728,38882,-1750858041,113770495,1073715110,-1750595897,113713151,268408746,-1750333753,113707007,67082158,-1750071609,113705471,16750514,-1749809465,113705087,4167606,-1749547321,113705471,285185978,-1749285177,113717503,-125855810,-1749023033,113768575,-58746942,2059419264,-2096204286,9752638,1048577908,1946185298,1488937,-62485168,-28930736,947952208,113712277,38884,-1308866933,-1964977392,-919929234,-1307786997,498607595,1183666176,1183666428,-2137370370,-954428104,-6822906,-28931328,-523039567,721186442,-1547629623,-1598515226,-1706025321,479590464,-883038837,-2081649835,1448548076,-1751120185,113704968,563106,-1906295165,-955484671,427884102]},{"sector":14,"data":[-1594210617,-1590957287,378239064,134576218,-1706012160,479574224,208977931,1090406087,-96024807,183179616,16664263,-96024807,1187453216,-1090514696,1183553476,-230258178,-939886965,-1750798778,-1962929990,-228685044,-1053620341,1586169225,-138310674,-2096657968,1182991047,-964492558,-297368830,-613070334,1342184888,1358317197,1358710413,-1791459174,-469317860,-1962934121,212991046,1854595283,197733110,-1559819071,-1598515226,-1706025321,479590464,-443850914,-1957311651,317490156,113727063,563104,-1750989113,1187446792,-1090514692,1187485636,-1105673994,1187453152,-1164466958,210436112,-1946788213,-1983827193,-228685051,-789069429,-947714167,-163151102,46564098,49432195,-1193577142,-1924136931,-1924072890,-1705968058,479541376,-1746663737,1183514624,-754142722,-93418784,-1056192214,-425520372,-1751074665,1083854878,1578931704,1575324511,2058265035,2058360459,2044986937,372835957,259291622,-1900542217,259328000,415106758,-150082814,9353222,-957254396,18398726,-326412853,1460464771,-1136753834,57933848,-1962895127,1175127622,-385649400,1589903501,1207313926,57937935,-956268311,18398214,172395264,-1559472501,378108590,-1014269264,1487127180,1511426424,-401698696,1621348457,-28915826,2124480512,-1461137027,-1958579711,-780304874,31622122,-1080897346,1187484900,-948296970,-1806764986,-1946268021,-1962637051,126612574,-1980342645,46564103,-2092775549,-2096957882,1094906950,-1036271221]},{"sector":15,"data":[1317657974,2106368510,244421283,1593692648,1575324511,1426065610,-327029621,1448542748,414989955,-385649408,-401734757,-2033714068,65074,-780304735,1929488616,19196163,-33388857,-2033740572,-1831797248,-33651001,-2033740544,-1794310660,-33913145,-2033740570,-1797194248,-34175289,-2033740860,-1797849612,-34437433,-2033740722,2049113584,-34699577,-2033740694,-1804141076,-34961721,-2033740720,-1807024664,-33513845,-1635041397,1066008066,1342181560,1464909867,-33775989,1347434495,-23164080,-1960837123,-939656546,-1962934009,-939657058,-1962934265,-2130839906,-1634993369,130547188,-1635057664,931921392,-34431349,280508297,-1070903296,-1635035568,939523564,-1957670832,-135522,-358708449,17287165,-392262912,509949,42369792,-2038217986,-2096955904,1123942022,-33782141,-91847870,-2038217987,-2092761608,184415878,-34306429,-226065662,-2038217987,-2096955920,1123937926,-34830717,-360283326,-2038217987,-12386840,-1577176442,-388924034,989856037,1929261702,-13571837,-1852688641,-1793219686,1354771228,-1373463984,-467009536,-1375626672,116785152,1946320254,112658,580538448,704643246,26890468,-1610612562,-467003202,1912602941,146795,1575551863,212225,116874869,16809342,-2037553548,1343684132,-1751763201,-1751894273,1944587920,75926865,-11528450,-8889802,-1871161290,1365305358,-33257843,-2037559274,1343684132,506306232,8818000,-1706027265,479576134,-1928280957,1358889094]},{"sector":16,"data":[-1705983957,24223,276152331,2105556611,-385649660,-1095237229,26274082,2045130495,2044999423,-1751763201,-1751894273,-16742771,310807888,244338942,-1085643800,-1232260352,-661848320,-4603762,-222284801,735180718,-2015785991,-17922,-1957712142,-219557429,-221703259,-1338572892,-1372127366,1513553786,1479999352,-1702457992,-2037559042,-1873740270,1243277326,-23413107,-16730483,-1064382324,872415161,-139529536,-1946604591,-1174501415,-1359806465,-775189681,329642729,-5967159,-8788426,-8788938,-6842826,-1869114314,1256318990,-2037559214,-1924071884,1358828166,-907538800,377916745,-11528450,-6842826,-1869114314,1347741710,-32078195,26890262,-1927506528,385810566,881233232,563761406,-385875888,922746630,922712550,922712548,922720150,-2037540972,-1924071782,1358828166,2045251216,2114385737,1946222717,-1103200219,91554072,-349346120,758036483,-1702458032,-1617276674,-1996488610,201200774,-385649216,1048837818,1946385804,-1942060255,443811453,414465667,-385649408,62455458,2025345024,-2120593403,-384002730,113770130,101986,415121024,-955550463,-1837452282,243751,113707499,663255732,1342177720,-23427443,1819122256,1676214272,574273790,899152,112720,-1674012080,113704960,6332,415106758,-1956684288,1439391205,1448602763,415106758,855817984,-1064380276,-1190758773,-1070333953,-772296974,-645138133,-4587897,1336865535,-372126837,-921459214,-401693454]},{"sector":17,"data":[1600060072,182877,-2115204267,1459672300,-1136753834,57999384,-1090263319,683553536,-1898410900,-17984,-1359822797,-114568713,-372113785,-921459214,-1935563534,-28931715,33980032,683150199,-401715092,-1612054659,-28931325,1946157373,146727,-2081881227,212226,1273561973,277761,87888500,-385649408,104661604,-385649408,-957677268,83787395,1048774517,1946516864,-1942060103,74776957,65781803,-1996488264,-1705994170,44562,1183441962,10270874,-1952944393,440560,60452599,105286384,2112455736,1183482997,-393988088,-385649027,-2071265416,-466977304,-1979710203,-316012466,58179899,251618281,-1191642648,1861681158,-1193768038,1861681308,-1947169896,-1954682240,-1552028528,378108388,516192742,-1960412700,637924999,100177803,-1986554717,244815382,-387352,-8788426,-8788938,-6842826,-1919445962,1358900870,1351894669,1642598032,780569927,-1070903041,-1136226992,1850646608,674096170,1671057408,-2095278661,26107966,1187448694,-348969322,-1404662504,922701846,922712154,244349016,-1924282904,1183427654,1814609814,-1064380276,872415161,-139529536,1317620177,-1136226924,-14790634,1048614518,1946228926,37218563,-382527304,1048773172,1963294080,-23926525,67010179,-1070922635,28836843,-1740207872,-150977864,-259286930,939935370,1989432708,-26285821,-1806203848,1709769591,702718,-1952944393,-897086504,-862483565,2045027219,2045122185,2105556611,-2096204797]}]],[[{"sector":1,"data":[75333694,1048781429,1946195870,-432603365,-466157703,4372601,-1952944393,1320681432,-401698668,703313904,-150992200,-661940114,-1815562241,-1815693313,-150977864,-661940114,-1806780417,2045130495,2044999423,283643536,-1751866441,-1751771511,58049035,-1577195543,134584212,-1706012160,479574224,58048523,-1577200663,378239064,104429658,158701460,-1751771591,-1108802699,1407717117,-1106852105,683606808,-1898410900,-17984,-1359822797,-1991650825,1183683662,-11528532,-6842826,-1869114314,1283778574,379340429,1513553744,1479999352,-401698696,1183665266,-1924131172,1343663174,-382522184,1048772868,1963294080,-43849469,50232963,-1070922635,28836843,-1740207872,-150977864,-259286930,939935370,1989471108,-46208765,-1796373448,904463223,-873984259,702710,-1952944393,-897086504,-862483565,2045027219,2045122185,-150977864,-661940114,-1796948093,-14978048,-8788426,-1199971274,1861681218,-2585704,-1869290313,-1207965682,-1070922773,-1751866471,-1751771511,-137238514,-1939068737,-1178562856,-1070333953,-772296974,-1806792375,-1906295165,-955812351,858166854,1183652075,-11528532,-8889802,-1871161290,1269098510,-1985198451,-1801349562,-1777988713,-1927580521,1343659078,-1751763201,-1751894273,-2081943920,-1673097909,-13859191,-2033776917,744161068,750190366,1996431103,-1103200106,57999640,-1191327255,1344156426,93603467,1344171048,-1782561126,281314076,1349265592,1342180792,1342177720,10238106]},{"sector":2,"data":[-1956684288,80371173,-1957326848,243172332,-1203931904,-1202716670,-1706024894,479540080,1342177976,-1791773286,1161244,506247248,860658256,314055829,1589137408,1285181470,-1206086349,-1202716670,-1706021768,743194188,1560281528,-1207956790,-1706032895,743193770,194217123,-1206684224,726677332,-1202696000,-1706033135,479544436,922684907,28873604,1520062465,-2094248900,26444862,-884948965,-2081649835,1048773868,1946163706,243740,91797584,1451334224,62397589,2025345024,-2120593403,-350448298,-100219065,-1207959271,-1706033151,479537336,-1994772319,-291439546,-28931945,-1746008378,432060468,-2076770480,669162131,1183456405,-1745968386,-1543747957,-1070917072,683186768,113712277,6650,-883038837,-2081649835,-56556820,-28931815,621168267,1174601729,-66715386,436117785,-66700480,235434777,251618792,-1962926872,-443810234,182877,-2081649835,1946158718,105286406,1561984163,-1879047478,1810098190,-873984368,1178501995,796131519,1350220984,2108700415,-1790050406,1958742812,2059188236,1354771280,-1779326566,112668,1318820432,28843157,1218072576,-2095278606,9811006,-1399192204,-1207959515,-1706020940,7962,1358954424,2705306,46433024,-326412853,721874051,1183535296,725630982,-1706012215,479588594,200951433,-2096073280,8147518,-401734540,-1070858379,-14750823,-2103772554,-1994615311,1451883590,-60898050,50087555,653936267,1183516553,1575324668,1426064074]},{"sector":3,"data":[-326898549,106873858,-28865754,-1946270071,138808259,1996427380,-242312450,1996430485,-244016386,-443868011,313949,-2081649835,1183515372,75014,84297219,240123908,-1979792920,-1072955834,-661975436,-788528859,96666592,126418948,-1946263925,1200162374,-1950119166,80371173,-326413056,-1962742653,1183385158,-401714946,-443810114,313949,-2081649835,1183515372,-28931834,126605451,1575324480,1426064586,-899825621,-1957363708,49054700,-16091393,-401733514,1996488635,108461834,-9115634,201213577,-15108928,1586169462,-1959264504,-1707606056,10884,-1962490749,49020486,-443826133,445021,-326412853,-2096960381,1963067006,138840846,240181457,-1929507352,-12194854,723124230,1183535296,-774755576,1389548000,-252536240,1183390869,4097022,91554842,-342781789,4096781,108332314,-1543616885,2122551972,74776830,-32249842,-1694599425,479588738,-899816053,1565851652,-2097150774,68812862,922694012,-1902472816,-14903823,-1701736394,479588724,436223619,-15567611,-1701665738,479588750,-1834731777,-1779338086,444188,-889191654,-326412853,1460071555,138840918,101048529,-62486272,134629110,119412084,-1190363509,-1070333953,-772296974,1107222912,-2080616959,1946159742,-62487804,276726530,-1957858048,82514558,1066081675,1065557387,-1980402432,-1063644546,-1993585571,-1070858682,-25755824,100419211,-1706033148,231074842,74825739,2146156587,-1961730421,-28931297]},{"sector":4,"data":[-661977207,-141869173,-955988349,66117,604391050,38045887,-1995553141,-62485756,53274833,-167558008,1946682950,138840875,-1962654583,1457770968,503738509,209619719,872415161,-139529536,-2013713455,-219557378,-221703259,116088484,-1995684213,2122515524,292814858,1073892480,704863370,-1948003841,1082722886,1590070020,1575324511,1426067146,-1063588725,-1960031139,126420574,-1812461881,-899874816,-1957363710,82609132,512448087,-472835582,1183572945,139889414,-1783199863,-1783064695,436346507,2092992454,1043791616,1354771325,209125203,240144464,-1946241304,-1323695050,-1964584190,712881284,-1299412252,736963197,339393,519849609,209619719,872415161,-139529536,-1991685679,1183579726,2127051772,-28931571,2108851202,-2071460604,512458164,-472835580,-2013338671,512458165,77601282,-2000093670,-9507193,1578762758,1575324511,1426066122,-326898549,-1705617662,743202240,-1543616887,1586199870,725090058,77680832,7537946,142016336,738096895,240144576,-1946280216,-1323695050,-1998138622,-964839540,75348356,-2003568480,75347588,-1199273979,67567485,-1962467814,-4650882,-222284801,30537646,1586755598,1575324511,1426065098,922741899,-1070891714,37158736,436647962,1354771280,1342177976,1342178488,-37623794,436477579,-472783919,2109048830,436346507,2092992454,34012932,46816538,-326413056,1459940483,-28915882,1048772608,2113935874,-1783185621,-1946257781,1451952198]},{"sector":5,"data":[1963276554,39139598,-11138699,244975222,-2094248865,994444487,2082079286,-25785890,-443850914,445021,-2081649835,1448543468,16664263,37651200,1031667738,-1953122625,1183579766,173443848,544539961,1963087161,108954395,-2146995200,-25378652,-1937766933,1442938048,-1710852353,743202523,1174718339,436352571,1988742268,-1956684034,147480037,-435763456,-948152195,8150022,1577502464,-1207959428,-1706000922,743202371,-435763253,-1199810435,-1706000922,743202439,2086405831,-727645840,198036,-948150621,8151046,1644611328,-889192324,2112227015,-424117160,-2019929987,-953398178,2021415942,-1086152445,-948150621,1937530886,-1743871735,-1560278779,113736802,8354916,93851297,1721958403,1745274748,-1593740676,1789099106,1812383612,-1593741188,403019790,2087625472,2087716551,1721827455,2087887740,2087978695,1252067337,2088149883,2088240839,245433204,1508760,-948143453,159153158,-1744264960,-948142429,159154182,-1788305150,-948141405,175932422,-2046376186,-956300932,8161286,-1979267328,-1207959428,-1706000922,743202371,-435763253,-1199810435,-1706000922,743202439,2086405831,-761200631,2086577044,2086667975,-257882103,2086839161,2086930119,1721828216,2087101333,2087192263,-593428106,460180,-948147549,2004642822,-1797480191,-1560279035,113736814,8354928,93641889,1923285001,1946601340,-1593561220,252024028,2088149760,2088240839,-593427428,1050004,-948143453,1937538054]},{"sector":6,"data":[-1797480183,-1560276475,113736830,2849920,93641889,-2103246814,-2079930500,-1593824644,587568348,2089198336,2089289415,-593427414,2360724,-948139357,763137030,-1797480192,-1560271611,113736846,24280208,-1552122207,113736850,24149140,93641889,-1767702490,-1744386180,-1593693316,-1700561790,-1677277316,-1593693572,-1633452922,-1610168452,-1593431428,-1566344054,-1543059588,-1593609092,537236700,2091295488,2091386567,-593428104,329108,-948131165,159165446,-1827102462,-948130141,1954328582,-1797480191,-1560272635,113736882,91520180,-1550928223,113736886,31928,2092566215,-424148992,1134186621,-886289314,-2081649835,1187382508,1319108860,-28931986,33375942,50284230,-1962510593,939460702,1358710413,1342177976,1279412378,1575324460,1426064586,-326898549,1187468912,-2097151490,879166,1048774517,1946160488,-1743871670,-2147477499,1178333388,-1710721786,231033579,-1593730071,403019790,105265920,245438839,1901976,1913013819,106859278,-472783919,-1783193601,-1207863319,-1202702680,-1873791302,-1272059890,-1962842135,2426438,-268419600,183042932,124157953,-1798135537,1946568249,-1744264952,1963345465,-401698808,-202827495,-1827102464,1946568249,-1788305144,1963345465,-401698808,-605480311,2045812992,1946568249,2068488456,1963345465,-499219652,460587034,1184410,1958742528,745125906,1344163870,-1705983957,231042956,-2097108503,1619006,-1612119179,243712,91797584,-401698736]},{"sector":7,"data":[-1880535037,-1788436224,1946568249,-1086152440,1963345465,-1807300786,1048801122,1946158824,2105450804,-388896559,-1191182043,-503906294,-1258295157,-1258318900,-1258318902,-1258318904,1183683526,1183666326,446320892,-1928477394,1183422022,1354771348,-1804140720,5251482,-1590564096,637899996,105265920,245435252,1574296,1963345467,1256954375,350948805,965654177,125109830,11984026,-955913472,65094,16678531,1586185333,-1064831482,376701308,414465667,-1204587520,-1202716669,-1873803912,1330505742,44115179,105265434,1586175091,-773598970,-1232630813,-1198027883,-1874425451,194139785,-16550718,-1956736930,80371173,-326413056,1461513347,108954454,-1961987469,1932330566,-96040704,-335788407,105286417,-1946401143,-293106984,-1981535634,1048836678,1962940594,24111363,-1873756117,362276878,-772127093,-1981754912,-661918650,2109114250,2059806454,-1963964791,-159533177,-1988442330,-962530746,-1947981190,-1199076664,-503887747,-1963702647,-159532665,-1988442330,465106502,1183666176,1183666414,244338942,-13594136,-1332023690,721420500,244338880,-1204020504,-1873805311,1008265230,384845453,-401698736,1183530026,-62506502,1317738868,1224862716,-242493045,1861125258,1861060408,1317663093,723512316,-94991370,-1946399093,-293324606,-1962445458,-126449202,-2092505877,-176327682,1187506667,-1962934024,-523109818,1183441105,-1965519898,712882567,-1215329564,1005398653,-385648703,1183514753,-773795334]},{"sector":8,"data":[-465139232,-947783541,-1190822473,-364476035,1223968395,-1947711863,1586231414,-1082067204,1114899580,-1594853633,-466978105,-963917685,1174659575,-955348238,-772986246,1354826729,1256722064,-394854597,712689568,-1949791260,65140678,243987014,-315983161,-1056708143,-401698736,-1958331600,126544478,227206186,-1054085846,-1569208773,-493943,-401733514,28835857,244338688,1578381544,1575324511,1426064586,-326898549,-1304526076,57999384,-2147446807,226150206,-2048326793,1354771200,115871376,1354771220,-521662832,112698,-401698736,465058526,1183666176,1183666428,244338942,-13685272,-1332020106,721420500,-945794880,1222912634,-401698736,-962577759,1311176314,-1605351314,-466978105,244338760,725259240,-945794880,-773576070,244338912,-1606779672,653687494,1346924110,712689568,1356911076,1843924624,112698,-401698736,-443870327,182877,1350257848,-146806770,1350257848,1344533688,240173099,-1577588504,245570050,2068625560,590788688,1354771280,-1171859272,1347554757,-148183026,1350257848,1344487096,-1202667477,-977659195,240144909,-1191767064,-1202685108,726672250,-457682752,231062055,-401715118,1287190268,1723355259,-1070903261,1963767888,1375731898,-437776816,2068625654,589740112,1354771280,-1171912264,1347554757,-154212338,1350257848,1344503992,-1202667477,-977655555,240144909,-1191790616,240155468,-1191723800,-1202685108,726672384,800608448,231062135,-401715118,1287190168]},{"sector":9,"data":[-401715077,1287190429,-1967632261,28856355,-994553856,231062102,-401715118,1287190136,-88584069,-1070903260,182980176,2068625655,622770256,1354771280,-1161670472,1347551232,-162338802,1350257848,1344603320,-1202667477,12222366,240144896,-1191822360,-1202685108,726672756,-1950854976,47820,-401715118,1287190052,817385595,-1070903259,-2060208048,1377605050,233311824,2068625654,625391696,1354771280,-1163936328,1347558549,-168368114,1351932600,1344625848,-1202667477,-977642563,240144909,-1191845912,-1202678566,726672744,1555583168,47704,-401715118,1287189960,515395707,-1070903260,1525157456,2068625654,630241360,1354771280,-1171397960,1347554757,-173873138,1350257848,1344643768,-1202667477,-977654291,240144909,-1191867416,-1202685108,-1202707020,-1202716669,-977654280,240144909,-1191873560,-1202685108,-1202707008,-1202716664,-977654257,240144909,-1191879704,-1202685108,726672852,-1665642304,47785,-401715118,1287189828,-401715077,1287190089,-491237253,28856357,767053824,479574581,-401715118,1287189796,-1632087941,-1070903261,-1226305968,2068625653,597997648,1354771280,-1169295176,1347554757,-184621042,-1558576479,1287176002,-1397206917,-1070903261,1308866640,1376634298,-504885680,436380148,-1199879517,-1202685108,726672310,246960320,231062094,-401715118,44168388,-1744264422,1350257848,1344521400,-1202667477,-977646055,240144909,-1577801752,1755519490,2068625557,600750160,1354771280]},{"sector":10,"data":[-1169283912,1347554757,-192223218,1350257848,1344527032,-1202667477,-977646033,240144909,-1191939096,240155468,-1191872280,-1202685108,726672358,-1346875200,479574714,-401715118,-625413036,-401715052,-625413067,-189247340,-1070903261,-555217328,436380148,-1198203741,-1202678566,726672378,179851456,231062129,-401715118,-625413088,12079252,-1070903260,1999616080,1376634298,166202960,-1797605132,604551248,1354771280,-1167769928,1347551232,-202184690,1351932600,1344540856,-1202667477,-977635926,240144909,-1191978008,-1202678566,726672444,-138915648,231062227,-401715118,-625413180,616059028,-1070903260,1696249936,1375731898,-1377300912,-1797605133,-1293414832,-1797605132,608745552,1354771280,-1167800136,1347551232,-208738290,1351932600,1344561336,-1202667477,12215450,240144896,-1192003608,-1202678566,726672504,146297024,47717,-401715118,-625413280,-1866968940,-1070903260,1693890640,1375731898,1239944784,-1797605133,614250576,112720,1697429584,1375731898,837291600,-1797605133,921177680,-1797605132,615692368,178256,1699788880,1375731898,300420688,-1797605133,384306768,-1797605132,617134160,1354771280,-1161641800,1347551232,-218961906,1351932600,1344591032,1342178488,-1161537608,1347551232,-220534770,1351932600,-203429874,1351932600,1344594616,1342177720,-1168718664,1347554757,-222631922,1351932600,1344600760,240173099,-1192014616,-1202678566,726672670,1354256576,47810,-401715118]},{"sector":11,"data":[-625413484,79188116,-1070903259,2141108304,1375731898,2112360016,2068625650,628406352,1354771280,-1161000008,1347551232,-228136946,1351932600,1344614584,-1202667477,-1782938317,240144924,-1192079384,-1202678566,726672710,-1111994176,479574687,-401715118,-625413576,1555583124,-1070903259,1539160144,1376634298,568856144,-1797605134,627619920,1354771280,-1168614216,1347551232,-234166258,1351932600,1344544440,240173099,-1192059672,-1202678566,726672784,-591900480,47749,-401715118,-625413660,-1564979052,-1070903259,-2009352112,1375731898,-840430000,-1797605135,632600656,243792,-1941194672,1375731898,-1243083184,-1797605135,633387088,571472,-1859995568,1375731898,-1645736368,2068625649,634697808,1354771280,-1163289416,1347551232,-242817010,1351932600,-225712114,1351932600,1344660152,1342177720,-1170920008,1347558549,-244914162,1351932600,1344666808,-1202667477,12236438,240144896,-1192144920,-1202678566,726672912,-401715008,-625413663,381178004,28856358,1371033600,47718,-401715118,-625413848,716722324,129519654,246960128,47719,-401715118,-625413872,1052266644,129519654,-860336128,47719,-401715118,-625413896,1488474260,-1070903258,1755560016,1375731898,-504885680,-1797605136,597604432,1354771280,-244062194,1351932600,1344513208,-1202667477,-977646088,240144909,-1578058776,1721965058,-1797605227,598521936,1354771280,-1169292360,1347554757,-258021362,-1558576479,-625444368]},{"sector":12,"data":[-1229434732,-1070903261,1309587536,1376634298,-2115498416,436380144,-1198206301,-1202678566,726672324,431509696,231062094,-401715118,44167268,-1827101926,1351932600,1344523960,-1202667477,-977646044,240144909,-1578088472,-1230824958,-1797605234,601536592,1354771280,-1169281096,1347554757,-265623538,1351932600,-248518642,1351932600,1344530104,-1202667477,-1782924625,240144924,-1192227864,240160198,-1192235800,-1202680378,726673004,-401715008,44167317,-1798003942,1351468728,1344698040,-1202667477,-1782916714,240144924,-1192241176,-1202680378,726673022,-2118627136,479574745,-401715118,-960958528,515395725,-1070903260,1390939728,-1916356368,635615312,112720,892188752,1377605050,-1712845232,-1916356369,646232144,1354771280,-1160139848,1347558549,-276633586,1351468728,1344511672,240173099,-1192225560,-1202680378,726672292,-122138432,231062093,-401715118,-960958628,-1397206899,-1070903261,1308866640,1376634298,1172835920,-1916356369,599177296,1354771280,-1169289544,1347554757,-282138610,1351468728,1344521400,-1202667477,-977646055,240144909,-1192290328,-1202680378,726672334,616059072,231062094,-401715118,-960958720,-625454963,-1070903261,1311750224,1376634298,-370667952,-1916356370,-286781872,-1916356369,602323024,1354771280,-1162170440,1347558549,-288692210,1350257848,1347469355,1340608080,-1797605136,1354771280,-401715120,-401674174,1439428759,-326898549,2114385410,125108605,16664263,-2094142720]},{"sector":13,"data":[92110910,1048781173,1946254732,-1942060274,125043325,2106343043,-1207601917,48955393,1183432747,-955913218,130630,-1946270069,1439391205,-326898549,-532774140,225706010,1354717368,-977299046,2143292173,112645,-1070923029,-2080487799,8080958,-1073018507,28837236,721611520,-62486080,1351932600,-1168718664,1347554757,1342177720,-274143218,1351932600,-1163936328,1347558549,251426559,-1947232792,1439391205,-326898549,2124502554,-773271171,75240,-150992199,-1947169823,-1953248636,-1986802540,1451883590,-964391938,-929789037,-431584877,-1863821687,-1402935282,-939899255,60486,1299496971,1183432747,-263812626,-1981135223,1183577158,-398062618,28837236,721611520,-129594944,-2081012087,25002046,1048776308,1946320256,-2143386873,1819608445,654073540,95913866,20710436,-638072549,-336834935,-1315464617,1183387077,1958743026,112645,-1070923029,-1980217719,2122577478,91554290,-352321096,-1983894782,2122574406,91488498,-352321096,-1983894782,1183444550,-394854412,-1673473,1996488310,-1864328452,20774912,-137815296,-263288359,1351932600,-1166996808,1347554757,250246911,-1192323608,-1202678566,12215614,-11513344,-401673098,-625414526,-1430761324,231062133,1996443730,1877479156,-1797605138,1690875984,1375731898,-193527984,-295901170,1351932600,-1167811912,1347551232,250902271,-1192343064,-1202678566,12215596,-11513344,-401673098,-625414602,146296980,47717,1996443730]},{"sector":14,"data":[602410742,-1797605138,1693890640,1375731898,-126419120,-300881906,1351932600,-1167779144,1347551232,250246911,-1192362520,-1202678566,12239959,-11513344,-401674634,-625414678,-1061662572,47810,1996443730,-672657680,-1998057747,-2143386875,58000509,-1207914775,1347420161,57534478,1351932600,-1165210696,1347551232,1342177720,-307435506,1351932600,-1161670472,1347551232,1342177720,-308746226,1031635105,292814849,1946157629,212277,87899252,-346393600,-1797605265,-2049132464,1375731898,1354771280,-311629810,1351932600,-1165675592,1347558549,1342177720,-312940530,-625457429,1001934996,47752,-625420821,1270370452,47756,-1070903214,937954896,-1797605139,-2060208048,1377605050,-339727536,-1797605174,-1859995568,-352321350,1354771366,1342177720,46000142,1350257848,-1163289416,1347551232,1342177720,-318969842,1351932600,-1167765320,1347551232,250377983,250407400,-1191382808,-1782931523,-11513316,236642870,-1192456472,-1202678566,12242059,-1202695680,240123905,-1192443416,12242059,-1588571648,61963646,19261651,-401715200,-625415069,-340242284,231062090,28856402,-401715200,-1956713322,1439391205,-326898549,2114385414,359924093,2105556611,-1710328571,37137,91602955,-352321096,-1983894782,1287191110,1354256507,47810,1996443730,1474825978,2068625644,2141108304,1375731898,-92864688,-331028466,1350257848,-1161000008,1347551232,251295487,-1192480280,-1202685108,-977654257]},{"sector":15,"data":[-1605348851,19168638,-920977092,240245239,-1192487448,-1202685108,12233116,-1588571648,19234174,-401715200,1287187454,-122138501,231062061,28856402,-401715200,1287187434,867717243,479574661,-1070903214,-672657840,-532773909,1366556698,-1081459069,-1203080192,-1202685108,-977656104,726684173,-401715008,1287187382,-457682821,231062055,-1070903214,-1545073072,2068625643,638171216,1376634298,1354771280,-342824946,1350257848,-1171718728,1347554757,-1242972117,133667328,1183387077,2143292412,11266307,224804483,-2096335858,7327294,28837237,721611520,-28931648,1350257848,-1171790664,1347554757,251428483,1586173556,-773598724,-761281309,1065559617,-1207602157,48955393,240173099,-1192547864,-1202685108,12219660,-2091888128,453115518,1356396480,-351213554,1350257848,-1171912264,1347554757,251428483,28837236,721611520,-401715008,1287187186,-38252421,231062056,2122534994,-1071971842,240179447,-1192568344,-1202685108,-977656104,-1202695667,240123905,250267112,-1191523096,-1782931523,-11513316,236642870,-1192596760,12242059,-1588571648,61963646,19261651,-401715200,1287187027,-340242309,231062090,28856402,-401715200,-443815290,-960967843,-1766305651,479574745,1048793170,453089170,1356396480,-362223602,1351468728,-1160150600,1347558549,-1752025345,-363534322,-326412853,1351932600,-1160513608,1347554757,1342177720,-365107186,1351932600,-1166041416,1347551232,235435775,-1192613400]},{"sector":16,"data":[-1202678566,12223964,-11513344,-401734026,-625415658,1001934996,47752,1996443730,65539590,-1797605142,-1941194672,1375731898,108461904,-370087922,1351932600,-1164893512,1347551232,235304703,1575607784,1426064586,-326898549,549344770,-1070901760,1591450192,-1937757108,1174502592,2085027459,-25785876,1351932600,-1166594120,1347554757,1342177720,-375068658,2105556611,-1206619135,-1202678566,12223964,-1202695680,240123905,-2081846808,41779262,-625470348,1001934996,47752,28856402,-401715200,-625415826,-1665642348,47785,28856402,-401715200,1048832346,1946516864,-1797605356,-1859995568,1375731898,112720,1072172624,1189613289,-1797605127,-863258544,1375731898,112720,669519440,-1797605143,-1034897328,1375731898,112720,333975120,-1797605143,1539160144,1376634298,112720,-1569200,-1797605144,1482471504,1375731898,112720,-337113520,-1797605144,892188752,1377605050,112720,-672657840,-1797605144,-1231636400,1375731898,112720,-1008202160,2068625640,771274832,1376634298,1354771280,-391059442,1350257848,-1171386440,1347554757,240173099,-1192714776,-1202685108,12222366,726684160,-401715008,1287186570,867717243,479574661,-1070903214,2011696720,-1614956312,1377605050,-499712176,552078874,-863258392,1375731898,2105450832,-388824143,1342177573,-402003954,1575324510,-326412853,1443818627,-780304735,636015080,179896321,-1948125440,-897283088,-862680173,-62486125]},{"sector":17,"data":[-2080483703,75333694,1048778612,1946385792,-60898288,-1215826394,91554821,-352321096,-1983894782,-1072957370,1996443508,-59310082,-1815563009,-1815694081,-981860710,-163149811,91565372,-352321096,-1983894782,2122379846,91565046,-352321096,-1983894782,1589965894,-2020923652,958793139,1929753991,112645,-1070923029,-335919479,-1983894773,1183445574,-196703750,1351932600,-1167699528,1347551232,250902271,-1192783384,-1202678566,12216078,-2142219776,1948317310,-92372207,-2096401408,1946220670,112645,-1070923029,1743261264,-1797605145,1741469776,1375731898,-92864688,-413865970,1351932600,-1167547464,1347551232,250771199,1592213992,-883038837,-2081649835,-2141839636,7178814,-1561787531,584686081,1183383552,-448361756,1021462152,1947103750,23324931,367296128,1525220210,243713,8108112,-401698736,1183436664,2143292414,9693443,1979710525,982950162,983041547,-1767831180,-1743353030,-1960973510,-472777122,-1614486575,-1960427054,-773598945,-762868765,-728265919,394561,-1980086647,1589967958,126494458,3157400,719670922,1975598061,-465139130,-259267542,-235533647,-930356182,38242854,3157400,729137467,179422859,-997527050,-930356182,55020070,3157400,326484283,92241958,-385649559,113705185,6706,-1979655959,805627206,-957987192,-1976637626,-466951098,-388823887,1183330308,-465138968,805572388,-957790584,-956241338,580382214,586390016,-92078080,1914009349]}],[{"sector":1,"data":[81157,1183649395,244338918,1034208232,427032578,439486151,1187381248,1187392746,1183645931,-1001384218,-347880930,-364460527,-347683284,-431584000,516182038,-1960426954,-773598945,-762868765,-728265919,394561,-509980590,-1207057053,-1202716669,-1924136837,1343678022,-1645736304,244338894,-942781464,-6820346,-953619712,1716742,243712,8108112,-401698736,-1072968168,62394750,2075676672,-55029760,244338943,1590565864,-883038837,439500419,-955288419,1716742,112640,-401698736,1439422936,1048833163,1956452914,108954410,-15633408,-2095435250,1716798,-401729153,334233546,439486207,439500419,721974529,244338880,1574544360,1426064074,1048833163,1963097472,105286420,1912603709,408844,243271543,-352027266,2116452357,-899810435,-1957363710,105286636,1568509091,1426064074,1183575179,2106368774,-1092088240,-1797342977,1354771280,-976879462,-1807173619,1354771280,-976879462,-2143386867,410321533,1351950520,-1705983957,231065088,1351912120,-1705983957,231065088,2105556611,-1207143163,726691784,10113216,-2096249402,1761342,1048777588,1963294080,-1084704756,1354771280,-976879462,1354771213,-1374512560,-467009536,1620048,-1331062192,1048772608,1963097472,112662,312102992,704643246,414732516,-1449504768,-1593835344,104693132,57767680,-13724736,-350309721,-1807173529,-1967644437,-1206129772,384537822,450903683,-2096335872,92110910,1488455029,-1207702593]},{"sector":2,"data":[-1202678496,-1706033151,231065088,-1070909717,312102992,704643246,28856548,-1449504768,-352321360,-2143386849,91555197,-344995656,112849,515955435,509812362,513875545,509484648,2105556611,-2093255419,75336766,1048776308,1946163936,-1942060261,343213437,1350257848,1343884984,1944587920,-401698586,317449302,1351932600,1343884984,1609043600,-401698586,922739959,230193632,28856320,949637120,1560281244,1426064074,-1935545205,-768917379,-1996065033,192777238,-16484910,1568508934,1426064074,-326898549,116807170,1963031934,15067395,1031635105,259784705,2113929789,212234,71113332,-2093648896,92110910,1048792949,1946163936,-28915903,1458241542,1031638177,108265473,1342177720,1220045547,-1717940076,185451967,-1207601984,-336920573,414465667,-385649408,62390480,2025345024,244338693,-382280984,1187446976,-352320002,2117503765,-2081500803,-963968538,-972824367,-1996487675,1996488262,1256722174,2106368511,1946157629,212259,87889012,1025405952,259260422,2106341119,-38279154,1220050155,-1206129772,384537738,-342565192,-532774127,376700954,2105556611,-1206946555,-1705984168,231063449,-864698357,548973803,-1717940075,185451967,-341871424,-1975614533,343212223,450903683,-1204587520,-1705984168,231063449,645185547,1354717368,-1081459069,-138405119,10113240,-1207056954,-2091880504,24115774,-654852069,-973039024,-1956770363,1439391205,1183575179,-1945763066,-768915331]},{"sector":3,"data":[-1996065033,192777238,-2093976110,92110910,1048778613,1946163936,-1945712888,-352320131,-1945712870,-352320387,-2143386862,91554429,-352319816,243715,1568509091,1426064074,-326898549,116807170,1963031934,15067395,1031635105,259784705,2113929789,212234,71113332,-2093648896,92110910,1048792949,1946163936,-28915903,1458241542,1031638177,108265473,1342177720,1220045547,-1717940076,185451967,-1207601984,-336920573,414465667,-385649408,62390419,2025345024,244338693,-382381336,1187446915,-352320002,2117503765,-2081500803,-963968538,-972824367,-1996487675,1996488262,451415806,2106368511,1946157629,212259,87889012,1025405952,259260422,2106341119,-63969266,1220034539,-1206129772,384537738,-342565192,-532774127,376700954,2105556611,-1206946555,-1705984168,231063449,-864698357,548973803,-1717940075,185451967,-341871424,2129137339,-443851011,-1957311651,149717996,411383,-1973980156,1074006086,1023297160,1011577409,-1924696230,-1924071866,-1705969594,231026679,-1980086647,-1039401898,-269941899,2105450752,-388896559,1342177573,720914058,-1264955164,-167771983,75333126,28837237,-1207702784,240123908,-369391384,2122383554,1946224904,142508806,-149588727,33556038,-401733772,-1477837179,-152564224,10545660,1031638177,1853095937,1946157629,212246,71124084,1029927936,745799685,1946158653,-2139231410,-75661786,-780304735,636015080,1119420417,98694912,-11496226]},{"sector":4,"data":[1996425334,-843015674,1491799493,2105556611,-2144177147,75333134,645976811,-1577353858,-388924034,19261649,4372736,1208345079,-2134119532,75333134,-1070864917,1048779499,1963294080,142016272,-11485141,530187894,-351419092,112655,142016336,-1710852353,46141,-899816053,-2091515900,18396734,28837237,721611520,-2114942016,-1369154498,-2129824459,-1788584386,-1207601892,48955393,-972308437,-1957311650,116163564,1183536727,33570060,-773258379,-385649152,255657085,-385649408,37552356,1028027393,57999633,1023636201,57999634,1023682281,57999639,-385644055,1048772804,1946160626,1256954384,983174597,-955398834,913926,105286400,1963476491,10676483,439224007,-1712783359,2114385408,1349779837,2105556611,-2093124348,1947929214,176062727,812974363,10997914,-1005682688,1048773779,1963097472,-1814781672,-1814686069,-1815476679,372837237,91591628,-1815212416,-1485399548,1324023808,-16091393,-401733514,1122762216,-16091393,1996425334,740268550,854265285,2047215303,1183449089,-1746361848,-1576450422,1183488006,-1819500024,-1576450422,2122421178,1963065868,101107462,-2097151878,18396734,28837749,-1108764416,138840579,-1963047288,1183320390,1782481916,125108237,224935555,-1204521984,-1974439992,-466944442,-62485936,209125200,1342850698,-976621158,1975520013,209617345,-1166736895,1345759416,1345764024,-1259860336,-2119439467,2088416318,-15305431,1996426870,175570700]},{"sector":5,"data":[-16222465,244319862,-341795352,2114385549,57999741,-2097019415,9762366,-558359180,1183469716,1357130494,1358710410,-1978894593,-1706030522,231066097,-2097035799,9779262,548930932,-1965364331,-466944954,1183510667,1475906558,209125206,11865754,-96040704,930463755,1351895224,1996445271,172395020,-1705974742,231066097,200951433,-2095287104,58559550,1220023668,-1717940076,185451967,-1207402816,240123907,-2080863000,1962998398,-1797343171,-28931504,-1974410198,-11469754,1183452278,-241545206,-1995586103,-1072956858,1048779892,1946320268,-1797343211,-1080452528,-1073017403,45615230,-401715200,2122577993,1148518650,2105556611,-1203931902,-1974430582,-466944442,-62485936,209125200,1342850698,-976621158,-96040691,477413387,2106343043,-1206553594,-1705995126,231063449,142524427,1342179000,-134223858,16416387,1048790133,1963097472,-1793017795,-28931504,-1974410198,-11469754,1183452278,-241545206,-1995586103,-1072956858,1048779892,1946516876,-1793017835,-1080452528,-1073017403,95946878,-401715200,2122577845,930414842,2105556611,-1204783867,-1974439992,-466944442,-62485936,209125200,1342850698,-976621158,-96040691,259309579,2106343043,-1207405564,240123908,-2080933656,1962998398,-532774069,1148452890,2105556611,-1203931899,-1974419624,-466944442,-62485936,209125200,1342850698,-976621158,-96040691,477413387,2106343043,-1206553595,-1705984168,231063449,142524427,1342178744,-148379634]},{"sector":6,"data":[818817,-385649662,-1935606384,1357130387,1351858848,-974814054,-42014451,721307274,1183469796,1996443900,172395020,753769040,1709772229,-1641833731,113642949,-14653956,1048776310,1946163770,-268388347,-1070923029,1342850571,-1159197040,-46208546,17333891,28837237,721611520,440050624,2105411318,-1871743999,-344725490,393527307,9507226,1958742784,-401698809,216789445,115871376,-1878660116,-285218802,440024707,-385649664,1048837368,1962940594,2019860486,-1956250462,-1063056826,239504269,-2095434589,1618494,-706149515,1683792380,1683887755,-1994770781,-954583018,-1369154554,1577502517,-384002716,1048706232,696023732,244361589,-336545816,105286567,1946699275,-56694525,687747,-1779891340,-1304525828,393478168,186267297,1947875334,439787790,439883403,-1989911389,-966500842,543554566,1039953897,57999873,1039939049,57999874,1039944681,57999875,1039934953,58000224,1039901417,58000384,1039938537,58003729,-369394711,1600060476,-899816053,-1957363702,49054700,240173099,-702232,-954582010,26106886,142016256,-1962510593,126486622,-1974410198,-1706032825,743187886,-113015,-1206240242,240123905,-940238616,7996934,-28931328,-899816053,-1957363708,1442756844,374864,1354771280,1961365136,112842,-401698736,-979711459,1342177311,-2098721136,437172426,1850646608,-1605311446,-1873777073,810149902,1343884984,1347469355,1575489168,437172277,112720]},{"sector":7,"data":[-401698736,246951598,244338714,-1206780952,726669838,244338880,-1204524312,-1873798642,815654926,-975300966,108954381,-1710656256,41018,-194189298,182877,-2081649835,2122515692,779354118,1342179000,1349289144,1349289656,-1410855280,374799,-28930736,-62485168,-401698736,112725914,1996443648,-59310082,112725227,922701824,922709124,244345990,-1961926168,46816741,-326413056,1460989059,1354771286,-199235570,414334595,-11373312,1183647350,244338938,-1607518232,1183348832,2019664112,-1594800504,1183348834,2019795186,-1594669432,1183348836,2019926260,-1594538360,1183348838,2020057334,-571768,1183647350,1183666426,112742640,244338688,-348992536,106859373,704989066,1458605028,1342457738,1342654346,1342588810,14053786,1816576,-297366192,-28930736,-401698736,1996426978,-726623506,-24444928,106859335,-167491702,1081787942,-945795008,-136041862,244338919,-1961211672,1200227934,-970525178,208250,2059903056,-403184598,-401698736,119413300,439369355,872415161,-139529536,1317620177,106859500,705054602,72321764,-1054085846,-1998008000,1183578182,-1037329940,1177090257,-129594632,-259267542,-12284589,1354771280,1342185656,1342182840,-1830285680,108461876,1354771286,439367423,1358954424,1342182840,-907538800,108461871,65816203,-1070903098,2144336,1423440,-401698736,28849249,-401715200,1600058065,-899816053,-1957363710,1044284396,309592090,252477059]},{"sector":8,"data":[113708149,6718,-1728052808,1996438763,209125134,-16091393,1996425334,-1407254778,209617810,-16157425,-401731978,-655622561,-1906557309,-2116979712,58854526,113756789,36444,-228792306,-899825941,-1957363702,205949932,1912604477,539920,255657334,-1207536384,-342294527,242679571,-15960321,1996425846,108461832,-1834606849,707165,-2081649835,1996424428,209125134,-16091393,1996425334,337575686,-62486150,-2080483703,1963920510,1354771249,-233838578,-1978769781,-467008185,71797328,122128976,105351760,112720,440400,-706241968,28835840,-401715200,1183576549,-27882500,-899816053,-1957363702,485262316,205949783,1946158909,539956,255670132,1026716672,57999873,1023486441,57999875,-16702999,-11530634,1996425846,108461832,2085887743,-1981397367,1089071190,241076993,-660404341,2084471565,57999457,-2097090583,6389054,-437714060,1354771200,-244062194,414334595,-1961200640,1200229982,1357130245,1342457738,1342654346,1342588810,14099354,241076992,1183660031,347623660,1855606784,-1926476738,-796070786,-4603762,-222284801,1238497198,-1947971959,1200229982,-1964758522,-316013489,-388906709,-1947580792,731505734,687395266,1048832582,1962940594,1183470360,1222912746,1354771280,1342185656,1342179256,1994919568,242679602,719996554,-1070903068,-330920624,-18352,505936,-401698736,1048784296,1962940594,242679580,719996554,-465173532,1354771280]},{"sector":9,"data":[1342185656,1342179256,921177744,242679602,719996554,-1070903068,-401698736,28848095,-401715200,28897429,1072404736,-15829249,1996426358,142016266,-16353537,-1988340706,1451877958,242679784,1342309048,-16091393,1996425334,1411317510,-431584900,-941074807,7996934,-431584512,1609062027,-899816053,-1957363702,1626113004,1024214667,57999367,1023457769,57933839,-2097102615,6388798,-1578564747,1354771200,-266344434,722368255,-1202696000,-1202716581,-1873805306,831776782,-1207011585,726663169,1586188480,705137166,-912633628,187452479,-1207601984,65732696,1342185656,1342179000,1726484112,242679601,1342177976,-1202667477,-1202716579,-1873805306,827320334,-1978769781,1357130247,1352681101,705054602,72321764,-1054085846,1855606848,-13874114,79171190,-1070903296,-1605989040,-18352,440400,-401698736,28847204,-401715200,28897157,585865472,-1207011585,726663169,244338880,-13716760,1996426870,175570700,-16222465,520029814,-443837516,707165,-2115204267,1459686124,205949782,1946160957,16923942,-169278603,242679552,-15960321,1996425846,108461832,-1745477889,-17398135,-17262967,-2097057047,1618494,1048828788,1962959228,12577027,240173099,-1947268888,126488158,1183441962,-2037559044,-1202651398,-1706032896,743194222,-1978769781,-467007929,704925578,1086401517,-1912977783,-1929446722,-1178562864,-1070333953,-772296974,-95540407,1317617985,2110327806,-28915963]},{"sector":10,"data":[244318208,990642152,410324550,722368255,-1957670720,-2104623498,-1202651398,-1202651137,384499713,722368255,-1957670720,-2104623498,-1202651398,-1202651137,-1873805306,726853646,-1978769781,-467008185,71797328,122128976,105351760,112720,112742480,1838829568,-1207959334,240123905,-1192341272,-375848959,1586167963,-1925710066,1358887558,1342243000,1279159962,241077036,-17121651,-1064382324,872415161,-139529536,474954193,-588709006,172395518,1962966845,-19797757,138222199,1025995264,58130441,1040106217,57999373,1040104169,233504795,1963006781,-22157053,155000695,-385649407,1048837795,1946163380,243850,91797584,-401698736,2062100247,19086847,675144818,-385648895,759037567,1037529601,58130734,-335645975,-1956684083,181034469,-326413056,1461382275,205949782,1946223165,-385649046,121438433,-9997056,-11530634,1996425846,108461832,-31135730,-1981397367,1586227286,1446480654,1357530765,1342182584,1279159962,-360805076,-1064382324,872415161,-139529536,1317620177,1364285182,1279305882,-431584468,-370649461,1586167984,-1707606258,743194847,-1728052808,-2130665495,19401342,1996428917,209125134,-16091393,1996425334,-1142419962,8579581,2131394179,2122385268,1912668170,-1270971626,-931921896,1342178232,1342535864,954732176,-2084967642,1914702462,241077185,1183660031,347623658,1855606784,-1926476738,-796071298,-4603762,-222284801,1238497198,-1946268023,172395225]},{"sector":11,"data":[-1833924728,705316551,1032579840,57999872,1040152041,57999873,1040147433,57868802,1040151529,58130947,-369140247,1600061288,-899816053,-1957363702,205949932,1963000381,172395327,1946164029,1023899447,812908553,154997995,1026126849,611582235,1912677181,19414277,1048779382,1946163380,243725,91797584,-401698736,28845451,334207232,-15829249,1996426358,142016266,235304703,1576849896,1426066122,-326898549,1856001556,971254414,57804870,721468905,-401715008,1183575049,-1911649528,2145747089,-1924087549,-1202656186,-1706033132,743194222,-787974517,-87653914,-1204486279,726663172,1183666368,-4697876,112742655,244338688,-2094488600,1946158718,724893463,-1202696000,-1202709952,-1202651137,-1873805306,679929870,-787980661,-88634397,-1908998279,1070176913,1178283084,-2146339576,226150206,1488455030,-1206588653,267064818,2059878016,-1207601651,65737546,1343612088,-167492470,91932198,-1974468604,653657412,-1202685241,-1706033146,54610,1342177720,-346822642,1575324510,1426064586,-326898549,142016258,1279248794,-28931796,-2146941301,1174634468,232301318,-16222465,530187894,-13874113,-1070858634,-152564144,108462078,240173099,-1946227480,80371173,-326413056,205949782,1946223165,-385649121,121438449,-385649408,138215606,-385649408,255656131,-385649408,837484745,1024083595,829686029,155022455,1024226304,628359181,1946164029,-149492960,33556550,922682996]},{"sector":12,"data":[82540638,-1817299201,1279319962,112684,-1226190293,-339727616,-1905352457,-259267542,-1852950785,-1852950785,1279248794,1220936492,-151530965,921177682,-2954241,-7238090,-1701736906,743194569,-1949160640,-1905352504,-661920726,-201866869,457038571,1035367425,-1250688735,1946231357,19283410,675130228,-339184639,-1908998248,241077137,-1242875905,-1852950785,1279248794,-1911649492,2145747089,-660356861,242679565,-1873756117,702933006,-1946195223,939462238,1342177720,-35133426,1040145129,-1116470783,1946288957,268778936,1223230325,269368831,1593772777,707165,-1275051,-1785067402,1345080385,1345847480,1944587920,142016293,-1710852353,743194188,313949,-2081649835,1183515372,439395078,-1710721281,743195029,1200347275,-28931820,1354771280,1072172688,-27358427,-1961867381,-1398599081,-1374254702,273139602,1204234862,-1961061102,80371173,-326413056,-16585597,-1785067914,-1993585599,-661914042,-1961867381,1419973207,1444317564,105286524,1204225929,-953459184,479531591,-899816053,-1957363710,49054188,-2125048063,16713854,1187448182,-16711928,-1785066378,-1993585599,-661914042,-1961867381,-157085097,-132740713,205949847,1183451017,-1981535736,1996430407,-24736500,12079358,1855606785,-1926476738,-1929445698,-1178562864,-1070333953,-772296974,1980255803,141986580,-16874810,209125120,-16873843,-337113520,176063486,-1961921536,1204289118,-953294832,479531591,1586171371,273139710]},{"sector":13,"data":[1204236466,1578931474,1575324511,1426065610,-326898549,108461826,1279366554,-28931796,1200347275,307727120,-1986808669,-1953253866,126420550,-300922937,306693932,-443868011,182877,-957576363,24766470,-1559607669,1183551886,2019468040,-1559869813,113677230,1560317550,1426065098,-326898549,1996445186,1100323336,1183394892,-1905352450,-259267542,-472785269,-1979824501,-1954940281,-29914664,-1953599994,1468731463,2045420306,2045515401,756041671,306693938,-1956766571,80371173,-533266688,1356175982,1048645061,696023732,-1070910091,-219673008,-1916356377,437172304,-401698736,28889098,244338688,-1700450840,231071254,1344443576,1342180792,1342177720,10238106,724757248,-401715008,-1070861644,-1226305968,2114385639,410255741,2105556611,722105604,1083855040,-352321394,-1485399540,99287040,-987049574,112653,-1964503472,-1957311513,-1304525844,443809816,439631491,-955026177,-15059962,-18177,-1070137520,-401698675,1996476815,908001030,46816538,-1957363712,351044588,1988843095,310283028,33179334,946753184,-385650171,1335886302,21313646,-739703950,1392967169,38111854,1183369470,54889212,1183369470,21334774,1183441962,-1996125452,-11472314,76215414,1996443800,-401698800,1183454422,-1981535492,-11472826,1149957238,-11495423,244322422,-1978352152,-466946490,-1161591,-1974406538,1352139332,-1878100225,346351630,-1018113,1149955702,-11495421,244321910,-1978363416]},{"sector":14,"data":[-2000617979,1166736966,-2000617983,1183512646,-28952324,1183466099,-1981535490,-11473850,1996485750,-129594640,71600720,1996443800,-401698800,2122519482,477364234,-1280257,1996484214,54889200,-1974410198,1352140100,-1878100225,328787982,955795082,1266087494,720782986,-330921500,-1980217718,92991046,-294191280,1358841482,-1964214529,1352140356,-1878100225,325642254,818819,1183456628,1357130492,-1964083457,-11533755,1149955190,-11495417,244321910,-2095888920,1962936446,10742019,142016286,-51900784,-330921698,58048523,-1979674391,-467008955,-316011126,70107435,-297367296,2071904267,971785867,108260934,-1980873077,2122574918,393478150,721176202,-28407068,-1054085846,-773044693,-28966680,-1963299192,-467009211,-1963964791,1317731910,65874682,-230258239,1996443720,2144496,276234064,1676152464,-227082477,-1018113,1996425334,276234220,333975184,-230257901,1357661699,-1192200449,-11534304,244322422,-1877788184,349366286,-443850914,1100381,-2081649835,1448543468,-2096728437,6388286,1149921908,1088694786,1309575744,1005398638,-1973848127,-467008700,1326352960,2009152366,54823499,-125049814,-1996340086,1078001222,-244087,1149959798,1088694785,-59310256,1703059543,922701976,244343162,-1978520088,1088694788,-11055040,1166933110,-2103422975,-11495323,-1872659914,303097870,-443850914,182877,-1964209323,-14022050,1183507409,-771444474,138808032,1732216712]},{"sector":15,"data":[445021,-2081649835,-1974074644,-14022050,-2020940847,1183344447,-1947981058,106859504,-388823887,-1996484827,140413703,254133899,1577552128,-899816053,-1957363706,140413676,-472776918,-1996077429,1567047303,1426064586,1586162827,-771806712,105286627,1727301513,313949,1475119957,105286486,-1954904385,-1190715664,-1510866937,1684801223,1599995905,182877,-2081649835,1946224254,1816036153,141820004,964332193,712247878,2055734983,1183514882,2055906058,-1962520833,1451951686,2056037128,2056132233,-1834762197,2056299386,1684801223,-899874815,-1957363706,49054700,16664263,-401698816,1183431029,1668069630,1354771280,1342309816,-100609,-10196426,-1872467914,487712782,244338770,-1207548696,726688620,45633728,1996443650,1781989374,1748434788,-401698716,1347558639,585633424,1575324422,-326412853,1668038275,-1206225664,726688620,1996443840,175570700,-16222465,1347421814,-85455216,147479813,-326413056,-1207767933,-11509344,1996426870,175570700,-16222465,244319862,1377607400,-401698736,1183385041,-1912158210,-1962933919,181034469,-326413056,-1593643901,1183409242,105286654,-1956357469,-443810234,182877,240173099,-872423704,-2081649835,1448542956,-1962510709,1962871612,1962891026,74776322,-16222977,1576994420,721677072,1600035264,-899816053,-1957363710,242679788,-15960321,1996425846,108461832,-15835509,-899870625,-1957363702,142016492,721843967,1347440832,-16228725]},{"sector":16,"data":[-899870625,1453391876,-1957311644,49054700,1988843095,1446939398,1979595620,1480491783,1114898532,1683504771,-954698496,23353350,1962871552,146298638,727076864,240144576,-2080403480,6576190,113712244,25688,1683371657,242546187,505942,-1070901424,-401715120,244383596,-1960715288,-1956684089,46816741,-326413056,-16585597,1996425846,108461832,-975472230,-28931827,1962934589,-401698806,45662217,-1962677504,-443810234,445021,1475119957,1152837718,1630813827,-1878690816,-1217599474,1630668487,1048772608,1946182764,106859308,-2034304117,-1190715782,-1510866937,1684801223,1048641536,16808584,1048651122,16939656,1453399415,-351827612,-1912158442,-16777119,244319862,187836904,721712576,-1957565504,2139162206,1947209218,520049428,-1072995236,1996459893,1612644102,1975520100,1816036228,594870372,1652964995,-2095287040,6515774,1048778101,1962959264,1883144974,125173348,1684291203,-955878400,23170566,112640,-899850402,-1957363710,116163564,1048794711,1979606128,1681818375,91488356,-345926984,1638048003,-1577302391,1183408776,1668194810,-1946270071,1988885086,172264444,957109387,1870072919,1194919282,-1956089078,1988886110,172264442,957109387,125242455,1194945906,-1956089334,1065613918,-1593477888,126444630,-1962516853,-74712506,119468171,-234879047,1652996261,13428816,-1553706335,1586193492,41910534,57934725,-16732439,922682487,-828742426,-1962031857]},{"sector":17,"data":[1200293470,1692836612,-1946199063,1988886110,172264444,957109387,779553879,1194919282,-1960348918,1183516254,-1946448898,-1190715664,-1510866937,1348693176,-16748056,-401734026,1996424182,80734214,1586190315,176129020,-2130217473,2147421311,1586174580,-62485754,-259261557,129566494,-1197084160,-397385312,770375738,-1878624513,579397646,561365003,1685077635,-2096400898,6579262,-1070922635,1586172651,-1090811130,119431570,-234879047,112805,-443850914,182877,-387151019,1586184876,1683136772,1963083577,1376175878,-10382748,-955812593,1636958791,1199773419,-1014297086,956360197,141886023,101041035,38242560,1564637672,1426064066,-326898549,727078664,-96024577,1187512319,973078524,1952738366,-2009169605,1912668282,-2009169613,1996554874,1816037675,842957668,544538977,2055749249,410321154,2055880321,276103451,-1954901855,-1988455914,1451883078,114684,1534459659,-605548912,-2009691212,-1828814494,-2092141471,23147070,2088968053,91560708,-352321096,-1950340350,1962871800,172264204,-1995680629,1451883078,1652996348,-13834160,-1066074357,1183521259,-61436934,1997296697,956658200,293014084,1348693176,-1946219032,-2124190154,1969328894,-1956684067,1439391205,-326898549,-1957275902,-1956359650,1194921030,-1959299838,1194920518,-1959824124,-768931769,2117728395,-2094828280,1947011710,105351965,-1962523133,735677391,-1949070391,-1989914082,1468597831,112648,-2034749717,-1070903198]}],[{"sector":1,"data":[209125200,-16091393,1996425334,-401698810,1347557367,19654670,1386344587,1683268452,1636697799,-963969023,-443850914,576093,-2081649835,-1957296916,1183451254,-2132530676,1183384004,108954622,-955681536,16972870,787214347,818816,1187449460,184615420,518782582,1683234443,-2063433855,-1995737853,113706103,90510,1187458539,-1996257796,1996425846,175570940,-796146037,17612843,520048722,-1072995960,62393717,2025345024,244338693,1578589928,-899816053,-1957363704,49054700,-1942582442,108953965,1165296128,945911968,1969515270,1837867017,1684670008,-1952421260,1684709997,-1570670432,512451691,2139186258,1963065346,1684578575,1684674187,-1996077175,1156253783,360052235,1636843139,-350980864,1837867020,-1604031838,1805803896,-1912158364,-1879047839,-1288443890,1824059403,-1070903197,108461904,1781989206,1748434788,-401698716,1347557075,518158,1575324510,1426064074,-326898549,341740290,1963999107,-339727612,1074194535,-1961599349,1183384647,-16282626,1975520007,-28931322,-2097002615,-1962015673,15074755,1963214649,96701192,1200160774,-28931324,-1956359517,306613208,1183516553,38242576,-1995553141,1183515719,206998282,-1996077175,1183516759,139889414,-1995815031,-1477964713,112703,-899816053,-1957363696,49054700,-15698177,1996426870,175570700,-16222465,244319862,1377184488,1592266320,-28931585,1636697799,-443875327,838237,-2081649835,-1957297428,1187448950]},{"sector":2,"data":[-1979711234,1144522310,941389318,393675844,939804298,259393348,1996833848,38074122,57966592,-1946257783,-167045516,1183569269,-443851010,442973,-2081649835,1448545516,-1962510709,1418397252,-62486264,-1963043191,1183383110,-12154118,-2081012088,6393918,80152437,-1696006144,1514046208,108265572,1683635851,1319130091,-96061330,1335887987,-163170194,80152434,-2098659328,-1875443968,-96040351,-1974410198,-397347258,-125042858,628424459,1996429803,-96040204,-1974410198,-397347258,1183448894,1958743028,-1946645748,1183389765,1975520244,1962871773,-1975744190,1160444486,-62486520,720782986,1183320389,-96040195,1997030712,172308485,1283458167,1183457284,155531510,1161299319,-2147191029,-1958738868,1452014662,105155070,1577604233,1575324511,1426064074,-1957237621,-1700723594,-1676244115,105134445,1413023093,-1960741880,1418397252,1838850824,1838945929,-1550204885,378103020,-391944978,-367621788,9431396,16940161,-1589742334,101410024,762602730,-1962261365,103484500,370894056,244016362,-617913242,360174395,-1053096846,1153896307,721552130,1693098944,-345708381,172264274,-351513461,41714097,1131741700,191163553,1952771590,172264237,722228363,459598854,-1956319722,728000014,2010332123,990147093,-955288639,33948228,-291258325,1693229924,1149963755,206867210,-1989874525,1583672854,180829,1572875093,-956300598,23147014,-152564224,1652996346,1354771280,1342243512]},{"sector":3,"data":[1342184376,-1174404680,1347551515,-119009648,240144915,-872600344,1631207043,-2096401408,207783486,-1070916238,1048780011,1996579462,-2042723339,192151650,1683234443,302284673,-1193053183,1439367169,-326898549,1183667742,-498693658,-2034753301,1340624994,41714170,309657858,294017,-1962183935,1191174750,71600866,915081096,-25075064,-696950382,-958243189,1183645703,520048870,-1956747298,1439391205,2122574987,141819914,-1962522997,116066390,-1170330696,-2002576235,-1978234527,113925473,-326413056,-1559607669,-1072995956,113706612,90420,687747,1183516788,139889414,-1531443477,479574770,-1990124381,1566645782,1426065098,1448602763,-1962379637,909706878,695624326,761432225,103637638,247044352,66713344,633768944,-503906289,1465309323,1653389197,129566494,1604710912,1652990302,-899850402,12255236,-1157371035,28861684,-1873784064,-1217075186,1694546891,-189070357,-326412956,1392509369,1392932607,-401698735,190558637,-1207274048,1334509661,855827208,46816704,-326413056,-1207546229,65236382,-1553079624,243885298,-899848976,512425986,805266674,1693589131,-1962643457,-10161634,512428143,1879008498,-232879348,275775332,1693589131,-1961594881,-10161634,512432239,1879008498,-232879332,544210788,1693589131,-1960546305,-10161634,512436335,1879008498,-232879316,812646244,1693589131,-1959497729,-10161634,512440431,1879008498,-232879300,1081081700,-2081649835,1996430060]},{"sector":4,"data":[175570700,-16222465,1183647350,-1125625624,209125120,-16091393,1996425334,1850646534,1177281578,404974,-1605310255,-466981297,770459179,-388956154,166202960,-431585024,-899816053,-1957363704,15499756,-1923721471,-1705970106,743185521,-15698177,1996426870,175570700,1356744333,-1929354520,-1090583874,118908172,-234875975,-565801563,42372432,1183469823,1357130248,1342588554,-167694360,1947208262,243725,91797584,-401698736,-2037575325,-1202651390,-1782953947,-1706012132,743184163,-16742775,1358317197,1276942746,8817452,-1956684033,214588901,-326413056,1460071555,74877782,537282294,1183517812,-956004084,3142,80151787,1183514624,138709260,-1995815285,1183518020,306481416,621168267,-997588224,-1979497336,-478149026,39618575,-2020933846,-466982967,-955890551,1092,-947650933,-2093683960,745799741,-1875509474,276949006,990004617,427165252,711872160,404964,972834441,58065477,-1962785399,1149829701,71630598,-1929001085,-952428732,1015268727,506229760,244331775,-1995421976,1319173190,769927790,1183383558,-62506502,1183384438,105155580,1996244537,-62485754,-1962523511,147293182,1149964779,38087430,-788528123,71665896,-1929001085,-952428732,1600055415,-1034033781,-1957363702,418153452,1988843095,-230242806,140413696,1200161931,578259230,105155155,101049386,1149915136,98839044,-1873805306,306571278,-1979156737,-467007930,71731792,-401698736]},{"sector":5,"data":[1183520596,263432,-1963178359,-467008956,1586231435,172460552,1741260074,-1963047288,-922875065,-1946663288,-1948003873,-1989840249,1183577670,1574152,-369473911,649068761,-1947048202,650609656,1443397123,1697824343,330893086,1604710912,-196703394,-523116335,-1947711863,1485278168,-1962571419,-1989846393,1183522373,340101384,-150993992,-1274678170,-263812761,-1980080501,373656895,-939899255,8773,1852871,-262239488,163712,1166751604,-330921698,15353542,1191052267,-362902806,1577320234,-2012771604,-1073027002,1586173812,38222064,1200284789,-1964758526,-919934354,1166655755,-262239460,-467007606,1461732745,1358841482,1358448266,1709706896,1586190102,21465840,-1202658262,-1873805311,288483342,-1963958645,33816903,-16890368,78770758,-1946784045,254146118,-196704000,57982987,-1946216471,130546270,2088763392,1836318723,-1962385781,1183389767,-330905878,-1961760000,-74774434,-1961329269,1200166469,-330891752,939738250,-411898810,-350730357,-396457210,-1995028597,-661919674,1474435,1183575925,373787114,15484614,1586171115,373787626,-18200951,1149955142,1222912515,720129674,2009152493,-362902555,1460167,-1956684288,146955749,-326413056,1460202627,242649942,1024214667,359923727,1946386493,58867030,-2093123980,727151619,-1930847808,578587392,33179334,-1995946611,82574406,100419203,957826445,-546046906,-1946394997,-129595129,-395001845,71797334,-1974410198]},{"sector":6,"data":[1191115334,1996443898,41418744,1342178744,2112360080,1456073489,-1710590209,743187004,62433771,1552633856,38242850,726721578,1996443840,1313708554,-1880420923,1342178232,723672203,2013221056,-401698808,54391335,-385649664,-1202258059,-347078653,-1956684098,181034469,-1957326848,1988843244,939821578,494012486,939672714,359860294,939607178,225576518,939738250,91424326,-352321096,1589652226,445021,1458342741,-1978763637,76024902,-2012592502,1183449412,38045704,-2012854646,1566442308,1426066122,1448602763,-1962248565,1586169982,973572614,-1979550971,-1979414523,1161429575,-1979484670,1149764165,21465602,1929463098,21334531,-1979628408,1161429831,-1979484669,1149764421,-401713661,-1073020781,80089972,38061568,21284352,54838784,-339727616,112643,-899850402,-1957363706,-1957275668,2123040886,-401713658,-1073020829,1586171764,-1962570998,126419541,-352168055,-401713334,-1073020853,1586170484,-1962636534,-420806060,-1979031925,1980054020,-2012902910,38046215,1929528634,38111747,-1979562104,1161429316,-1979484671,1200095557,54823425,1929594170,54888963,1577273224,113925471,-326413056,108432214,1144521866,-1979156990,1144521540,-1207602687,48955393,1566490667,1426064074,-326898549,1988843010,38046214,-930356182,-936704886,-1979497334,-165019308,-503856597,-2080487799,7228478,1724973940,-28931074,1575324510,-1879047478,-2081649835,1465254636,672024202,1282673222]},{"sector":7,"data":[705449610,1148457038,1183509810,1704305166,1850615542,-2012193142,845518878,-775748609,772181728,-1158116498,1183468384,1850385160,1359371915,-974629038,1499094784,1704265470,1850752515,1963609854,32762087,-443851169,838237,1458342741,205949527,-161114718,-1972482522,512233054,-13474408,-523123965,1848510094,1988884619,139365130,1186598115,106859339,-402622488,1583284661,707165,1458342741,172395095,-161114718,-1972482522,512232542,-13474408,-523123965,1848510094,1989015691,112904,-1958000966,1038616158,24897536,-899850657,1289617416,1307659497,1292455409,1307659507,1307659546,1295207921,1298877764,1300450681,1302220169,1307659669,1303924209,1305955825,1307659571,-1957343759,283935724,1851655934,-1980479860,1317666398,-94991876,-1963557239,-1603955418,-46373482,646449781,646473110,837510551,192143418,-533018370,-1767762059,-1608324251,-533043817,-1057088650,91611194,-345663582,1612644112,-1792636314,-1775859611,-1759082395,-27358363,-472776910,1732151179,-1947056503,-1989741433,1049292870,1049126296,199779737,-196702720,1851657982,-1017256565,-493943,-10119882,-10118858,1996487798,1211564022,1478426478,1704566886,1704273546,-1224976757,-401698815,1586211619,-2082501890,-75493405,-802458613,-94501917,-1960867026,2123103310,-196702474,-227636395,-2091002881,7228478,501940853,-151107957,276070596,1048777707,1946185292,-28903646,460685312,-352314136,-1791557888]},{"sector":8,"data":[-1724448923,-59310235,-624897,-9549770,-1956226018,-1950090162,1317795454,805736188,-263812242,-960254989,7230214,1048579563,1946185299,1393491462,-402426514,-154468351,-9547002,117316469,520056414,113665632,-956471915,-43674106,-991424880,1578041002,-1951612050,-1948742947,-152917053,-662000445,1202373514,-1966868510,-578048772,-1977165686,-461373083,-1946416400,-303911997,-2132964413,642248935,254018954,-492124406,-1977170960,-2119433891,-788467485,-773074453,65786347,-1423471907,1204021474,-2095216090,-587001885,-1014358134,-1007623510,495593031,51372931,1394576093,-2128770522,-788467485,-773074453,65786347,281248733,-1442379176,1204017890,-1977165005,-1965227235,-203249145,1850384835,-410329717,-1950110733,-345093602,-1965192443,-1014347809,-85833814,-2132964413,263450855,-578091029,-1290803328,643123184,-1021180534,-393492726,1202374027,-1017253406,22907430,15786881,-338564143,-338564143,1252121859,-1960342930,-1413248040,1204019938,-2128770522,-788467485,-773074453,65786347,-1977644323,-404575549,648135619,-49810,520029301,-3447240,-10077138,-10054610,-10053586,-10072018,1432769582,117369995,1183542878,1851433734,922730547,922709596,-397382051,1183449213,1851564554,-1576515958,922709597,922709596,1996451421,6547462,1851657982,445021,-1947432107,920847950,-527824976,1732118151,-1145031856,-919404512,243978803,378170958,1347448399,1347637841,-270004592]},{"sector":9,"data":[1040617467,-1178586265,1347420161,-401698735,1317797765,-16456952,1566983198,1426064586,-11211637,244319862,1577036264,1426064074,1048636555,1946185098,503772962,1946157678,138840602,41205770,1720371454,1961101830,-1160970750,244318979,-5735704,1996425334,74907398,1716002559,1837776512,-150113280,40771078,-1878690816,-1465522162,442973,1851670144,-28216064,-2089918970,7232062,116867700,159262,1048787572,1912958561,-1975615437,208928877,-1191182406,869072933,544592395,1851852487,385286144,244018783,82013791,1704136331,1851537151,1851602687,-10753967,1851657982,1278148555,-2077294746,-326412954,209095510,-1979562870,-453639324,-1070344053,957891721,359993412,1392509368,1593790547,-771007736,1418278772,407667472,105810689,83301859,259260432,1392509368,140443472,427086347,-1961732983,266540108,1358954936,140443472,91542027,-1961470839,-899850556,-1957363704,1988843244,407172874,225705985,1962917939,1593790480,409240326,-2016857090,132321868,1347534899,856055551,374114249,-1070397469,1593790545,-899850746,-1957363706,49054700,117331798,648113758,-28931730,-1955717445,-167049098,119409012,364510091,-1952058624,-2147474169,1317735797,638487038,1848550254,-1207919639,1397974520,108461904,1720721151,1958742875,-138398751,40771078,-1911655424,644754950,5771,41766,1347441490,-401698736,-144966231,40771078,1510634496,1848510094,1476902]},{"sector":10,"data":[38242816,846089890,-1545547292,1200254544,1850712579,69470091,-1922149726,509999134,-1925739257,-1184529602,-1510801404,-1928693875,-1184527554,-1510801404,-1575336054,-1070373502,1847463563,1098231,243992436,31682096,1850516288,251577483,1583312478,-899816053,-1957363708,82609132,117331798,1520528990,-62486162,922730547,922709596,-1873777059,-49027058,-1978644854,-1036384170,-1031404942,-1978767734,-432404874,-427425166,1443024938,49555980,244320886,-1968821528,-1073083834,669582197,503772929,1946222702,1208403743,-16777106,1996427382,209125134,-16091393,1996425334,-2145452282,16836966,-166836598,-1972482522,-13496226,-523123965,1453586571,503773038,1965031534,209095464,1183498291,-1966525682,1347881550,1996443729,-11053552,-9549770,1499879454,1346241368,-404602770,105286239,1850615542,839409290,-775748609,-1947169824,997085206,-1977647673,-922875322,1850615542,839671434,-775748609,-134002464,-621285373,-385618947,1317666946,-470994420,-1948134922,109977305,520515118,1183498291,1364414474,-396929454,1583284356,1482381658,1279165215,192151662,805735966,-400619922,-65077140,1847461623,427040768,-15698177,1996426870,175570700,-16222465,520029814,703293056,209095568,1851145867,-15829249,1465258102,1850226431,1717313279,1850752515,-32618754,-462091698,1717575423,-401698564,251569471,922709598,922709596,1996451421,-401698564,1583348641,-899816053,1465253900]},{"sector":11,"data":[1583326451,-100414581,1950937603,-1007686910,1458342741,108954455,1946513921,-1871451353,1851564086,1562806838,-13217682,862870070,-1873784640,-1628575730,-594913191,-1873718448,-78387186,-919348429,-13381069,554601014,378156654,-225743328,-29957423,862871046,1381061568,1465274451,520042064,1499096664,1405104987,1347637841,911234902,1717313279,1130060122,-672990717,1612644150,251541094,1583312478,182877,-2081649835,1465255148,-1873756109,-1544886258,-1594079607,1178103375,-2013039094,1319111238,205928558,1183318902,172395020,-1978776022,1714031718,-773523952,-28931616,-166836598,-1972482522,-13496226,-523123965,2126835851,206473734,839929386,239504109,503989800,1848516238,-2093592234,7228478,907940468,1848647310,2114148182,-1510780418,526278489,1582933491,1345717046,172949102,-14690699,244382838,1604543464,1575324510,1426066634,-326898549,-1604889082,1178103375,-2013039094,1319111238,205928558,1183318902,172395020,-1978776022,1714031718,-773523952,-28931616,-1873756109,-1557993458,-1963178359,653659718,1586130510,67056144,-1948200509,1851171832,1848510094,108447006,705449610,-315486130,672024202,1183451718,-79263734,-2093590703,7228478,906367604,1848641166,1979930199,-1510780418,123690585,1499440627,1346241334,172949102,-1960847755,1049310961,-29987242,-9544186,1996426870,1415009808,1478426422,242679654,1443919615,-13216681,912677918,1850752515,-32618754]},{"sector":12,"data":[-680133810,1612644150,251541094,1996451422,-401698564,1583325820,-899816053,-1957363700,49054700,-1873756109,-1570314226,855525001,-1963685148,1177159750,106334732,-16099798,1996427382,209125134,1342863103,520042066,1381000840,-1862371585,-1573459954,-443852710,838237,871140181,244338880,1352803304,-192224206,705447562,1451888710,240527882,1577516598,276234094,1343125247,142016338,906393343,1720459007,1578040886,142016366,-16353537,244322910,1570891752,-1962929974,142785,-133959677,-202780163,57932965,-878426298,1458342741,-1898410921,105810880,-1962248565,-147126146,-372173710,-774789645,1183556851,105251592,-899850657,244318214,-335561496,-326412819,-987867306,2126777462,105810696,-611532660,74826555,259192635,-1510741551,-1527524911,1566465823,-1879045430,-7608306,-1957301525,-1940433172,-1950314792,2123040886,105810698,-1431565853,108314634,844101858,1583327936,445021,1458342741,2126782039,108446986,-1073042772,1595931253,147479902,-326413056,-987867306,2126776950,870288134,-17984,-146690318,-470053927,-1977177041,1631340325,2050754162,539755127,1919024256,2063368200,-327154825,2009348640,1225421319,-638907677,-352321095,-18173,1595916683,147479902,-326413056,108971095,-4603853,-1951468801,-789102399,80371039,-326413056,722486923,1586171462,173943560,2122572791,208928774,722230923,55250526,13796291,722226827,48434766,1174663671]},{"sector":13,"data":[214588682,-231801088,-164692121,-97583257,-30474393,36634471,103743336,170852200,-326412952,-1878624513,-923634,1930428477,1573161734,855638730,16313280,-2081649835,2122515692,1182007304,-1962385781,1183389767,1975520252,105286414,-350730359,-28931303,-1946401143,1200356446,-28931818,-311050229,-1996077429,1586173511,373802758,-1957494784,1200293982,-753946366,75240,1586172651,1636868358,-1961474167,1636869059,112720,266866256,106859264,-1995946357,-443870137,313949,1458342741,-2096603509,453052030,19218624,-753946368,-1946973216,-444595636,-1983837313,2013200967,108461848,1577059816,313949,1458342741,-351897973,75399973,1086331649,-1325399771,-1948200177,-444595636,-1983837313,1962869316,74907416,-1946167832,-167045516,1566496629,1426064578,-326898549,-1957275900,1149961846,-28931820,343261195,1636841017,1149962357,1636868886,1049306859,367747472,-1946263925,-29681537,1149963125,407341334,2106265323,376781078,1150023797,373655830,1328327,373606144,1599995904,-899816053,-1957363710,82609132,1586189911,142510854,-1995160181,1183388743,373656574,-2095691895,1962999422,1636868372,125171771,-1868315765,-1960121503,-345927626,-27358442,991459211,192219254,-1996077429,300619847,-1961462645,1144588358,-1946847978,1149830726,140413718,1329095,373802752,1599995904,-899816053,-1957363708,-1957275668,2123040886,21349894,378368,705119370,1166542148]},{"sector":14,"data":[105155075,-2012986326,1157038661,1946222594,57507850,40730626,-149624062,67109444,1308492660,38074115,57934336,1577209342,80371039,-326413056,175541078,33834122,1149765702,88377862,-2012854782,240518980,1577069032,445021,1458342741,-1962385781,38046707,-1950351323,-444594610,-1983837377,240321095,1577059816,313949,-2081649835,-1957296916,-1923742090,240188486,-1946200088,1418396740,138709254,-150317943,16777796,1157498484,155516424,34096266,1149828678,155486730,-1996536318,-1956771004,46816741,-326413056,425603,1996429428,1030150,-401698736,1586225432,40337414,410517471,1048776939,1946182032,1117297164,922692684,82338192,46816512,-326413056,1996432107,1030148,-401698736,1586225380,40337412,410517471,-1946164504,1200292958,71731478,294531,-1034037131,-1957363710,1988843244,1996445198,175570700,-16222465,28837494,-401715200,1566441477,1426066122,-1957237621,1157042294,1946222594,242679604,1342456973,-15960321,1149962870,33563906,452985149,1373239241,620905611,20775936,-137815296,1996444121,108461832,-706212208,-899850533,-1957363700,116163564,1988843095,142508816,504133119,-1878362369,-66197490,185091721,-1978960394,-467005882,205949520,1149913835,239469064,-1963047288,1174538564,-62486516,956188298,1064700484,956057226,930483012,705315978,-1963422748,1183448646,138841082,1006257667,-1962379577,-96064569,-1979169143]},{"sector":15,"data":[-466944442,-62485936,175570768,-16222465,244319862,1592802792,1575324511,1426066634,-326898549,209125124,-1928694017,240188486,184559848,-1977715520,-466944954,-45708720,-28931504,-12154288,138840656,108461904,-1679290736,1575324655,1426065610,-1957237621,2122516086,309657610,-1962385781,39291655,1418265737,112642,1586186475,138906122,34102923,-1962637305,1200228958,140413704,-2013116670,1586168388,155683338,34102923,1149763911,173968129,-1962326134,1191315550,54822915,172395350,1342179333,-401698730,1566502393,1426065098,-1957237621,-167046538,-1326906507,138709504,-1979169280,1174407492,138709510,-1978644992,1174407492,138840590,1997161528,11331843,940590730,58133060,-1979670039,1144522310,-385648885,1183449238,189020174,-1947663497,138840576,1317725226,65874444,172788417,141738299,1177207178,205948936,705709706,206473956,-1056707286,990530698,-1979157823,273033921,-1978907000,-467007930,705318538,-1967062035,-1053095092,-1047918478,-2012854742,1183451718,-1964758514,-316011954,1284161795,1925266187,717326856,1183321670,273058314,-1974410198,-1974464954,-1974465466,-1974465978,-1974466490,-1873803706,-188815346,248143198,117331200,-899846573,-1957363706,-401698580,-899813260,-1957363706,82609132,175541078,1443657471,1358710413,-24647666,510967819,-1928825089,-11469754,1996424822,112646,-1070903216,112720,-401698736,-1956718228,147480037,-326413056]},{"sector":16,"data":[175541078,34096266,1149765702,-331052518,34190079,1149765190,1446394139,-2145028764,6388798,1149902452,1357130266,1343964298,148727,-1593478080,48981395,-1873756117,-245962738,113925470,-326413056,1443032195,1683371659,561313291,1635532416,-1977322496,-467002812,457476688,38074192,91504640,-345664607,-339727608,1354771204,244338768,1592858600,-883038837,1458342741,185104011,-2092665610,453052030,19218624,-754011904,38570976,197125504,38046145,1683371577,1048585589,1946182012,440699422,-1974410198,-145745084,1073742404,-1818163852,721611621,244338880,1592837096,313949,-2081649835,1946158718,178181,28836843,-1827763456,14778725,-1547629696,-899848813,-1957363710,108954604,-149982208,6656774,-2145749632,-2140826610,116854251,-2147457645,645925748,-8428140,1038616182,46816546,-326413056,-1559869813,20803596,-1961200384,126486622,-1971718494,-140377785,38242937,-1971717982,-106822841,80371065,-326413056,1443163267,-1979025781,1143605318,-28932092,705054346,1183319364,138840828,-1979431800,1149765190,-28931579,-1979300864,1140915270,-28931577,-1977990144,1140915270,1446394139,-2145028764,6388798,1149902452,1357130266,1343964298,148727,-1593478080,48981395,-1873756117,-271128562,-1226305962,-443851014,445021,-2081649835,1996424428,175570700,1358710413,-59054066,494190603,721176202,1183469796,1183469821,1183469822,1996443903,108461832]},{"sector":17,"data":[-1763176816,1575324660,1426065610,-326898549,209125124,-1928694017,240188486,201080808,-1977781056,-466944954,-45708720,-28931504,-12154288,142016336,-1878624513,-184883186,-899816053,-1957363704,1988843244,1962281742,138709532,-1978907136,1174407492,205949450,1980384312,172395038,1980449848,205949462,-1974410198,-1974465978,-11532218,244319862,1592529128,707165,1458342741,185497227,-1976601354,1174406212,88377868,-1979038208,1144523846,-1976470010,1144523334,-1960217081,1183454300,172439564,1183456886,189216778,1183454838,1357130252,1342850698,1342719626,-1878624513,-340006898,181034334,-326413056,-1559738741,244344484,-1946738200,-617937330,-636237821,1721765513,1721900681,313949,1722025671,1439367168,1048833163,1946183332,-401698775,373028598,510813858,104531575,376596128,-1593418101,126445220,402802631,-873984495,112895,-1070923029,182877,-326412912,1459940483,108432214,1149959819,1006838818,-150506495,-2147483068,2122328949,376700932,-148605813,-2147483068,-24444300,956712587,-327867324,2106265579,38139684,91586560,1963359801,244340721,-1864728856,-629807090,192268091,148983,1459909760,1577493480,1575324511,1426064578,-326898549,-28916216,205949696,1963065405,33810691,1994982262,474370,138245492,-385649408,255656162,1024619520,57999617,1023509225,57999618,-352255255,242679561,-402229505,28836479,-1955075328,1183387206,1446445052]}],[{"sector":1,"data":[-756527004,1975520006,242679580,-1996023576,-1072956346,1996425845,-401698802,-756295185,-335776001,242679796,-521662832,-401698599,1178327511,-4492018,166202998,-1951143162,2013204062,59160596,725090128,-1873784640,-645797874,-1207011585,-1873805297,-644749298,1586204907,38270734,125140992,-768884693,-1962805015,1200295518,2041090,1946157885,277768,1776936564,176063487,-385649664,1200291680,1006838818,-385649407,-397148332,-1073019259,1586218613,575141390,-385649656,-1192493248,-15835509,-2017979273,939479043,1347469355,216534672,241077209,-81631360,1683359431,-1202520064,-1873805297,-653137906,-1559345525,166290518,175570943,-16222465,244319862,-1948806936,540871238,1024488448,57868581,1040147945,913703208,-1946198551,1200229982,1006838818,-1978436351,522453575,175440700,1354771283,-369223960,1586233028,575141390,-385649660,1333853880,-380435422,1586233109,38242830,54271780,468255604,575113983,20710180,266929013,-639020033,241077246,69355510,-2048326795,176062974,57934112,-1963033623,52699719,-579534532,604129162,1963146271,-26810109,1996476395,-401698802,244373623,1004039912,57937478,-110615,244321910,-1948788248,1333792350,-1612119006,-401698562,1586223077,575141390,-1580930300,1178166362,-385649650,1183579684,139889414,-1980217719,1183578710,263438,-96040368,-1974410198,-1873740986,-428218354,-1946401143,1200295518,271650,1979467323]},{"sector":2,"data":[-34674429,16547459,770245492,577208575,-13964805,-1978769781,522453575,57934652,-143383,-2135419785,939479043,29016107,-1873784320,-677517298,1040037865,57999873,1040141289,57999874,1040149225,-999030269,1963165245,-39851773,1963984189,-33363709,1963984445,-36706045,-1946318871,181034469,-326413056,1443163267,-2147060085,6388798,1149989492,2041090,1946157629,1029076761,410386433,245391083,1722262118,1722202198,28436560,-1202303253,-185899348,4974678,-1923726613,-1873740730,-181540850,-62485162,2144336,440400,-401698736,-1202260140,-1202690685,1347420166,723416319,244338880,-336172056,212239,71150708,1036219392,-1301020654,1575324510,1426064578,-326898549,-1957275890,-14809994,244326004,-1980584472,-1923680698,-1873740730,-187832306,721307274,36502598,720914056,-163169308,1187383671,1183384052,-1978602506,-466945978,1089881643,-1057036079,-1963702648,1174538308,440699124,69354742,146277748,-149951744,-2147483068,129500532,-1207702784,-125108220,-62485162,2144336,244340560,1459005416,720651914,-1973989148,69476932,-920977092,-397288969,1156972946,1836385314,1683373699,-14912256,-401730444,1183384319,1959148530,1958742869,330846292,1508397056,-1958024448,-1956358626,2425415,402668856,1207308149,309600002,604129162,1946237983,38046217,20717348,909713524,494232662,236221695,-1996310808,-969149882,-1073017740,-1202714508,-397410297]},{"sector":3,"data":[331284496,-396929536,1599995912,-1034033781,-1957363710,82609132,108432214,-62485162,-401698736,727118787,-1202696000,-11534276,244319350,1459228648,721307274,726681828,1052266688,1996443648,-401698812,-1956709896,79846885,-326413056,1460333699,108432214,1443135115,1358579341,2095582864,38074355,91521024,-352319816,309251,-151632247,1946427972,571397,1183515627,-28931594,52577526,92931189,1149899243,1006838818,-1979353854,65733701,-2013182582,117372998,-1923715501,-1202652602,-1202716640,-1873805306,-178329586,1354771286,38111824,1996443800,-401698562,-1202259600,726663169,1183469760,-11495176,244383350,1459182568,1342177976,-1974419413,1352139589,-1862371585,-112793586,309334,-159973552,1342177720,-1879042584,-417470450,-33012598,440699072,-443850914,311901,1458342741,1443526283,705185418,-1070903068,510984016,1358954424,-1878624513,-195958770,1866883,1048590708,1946188436,38074162,729055232,491031126,1317725226,65874440,-1070903103,474253904,-2091850710,1946158206,1226757,1183515627,244338694,1593361384,574045,-1947432107,1200293470,206114,182877,-2081649835,1448542956,721843851,-1962677249,1156981876,-143390686,606225546,1963015171,-339244284,1955284749,574944804,-1192659960,1600061439,-899816053,-1957363710,82609132,1988843095,-1946252534,1325336646,81160,-638072549,-1963176312,52699717,477413690,606225803,200092412]},{"sector":4,"data":[574982593,425603,-1202255244,-1873805297,-740431858,992247179,1589933566,1575324511,1426065098,-1957237621,1149962870,201073698,1149831238,108954402,1443263488,-2081943920,-899850510,-1957363706,82609132,74877782,16533191,-28915968,1686110208,1157036834,443813890,623002763,1183383553,578060540,574917377,-1996488411,1686175302,1962933538,58767380,-1959461040,1183579222,-1873784066,-750655474,1030230,-401698736,-1956719789,46292453,-326413056,108432214,-350718837,38046491,1027080229,225777664,604128394,1963015199,-339309820,376736521,-512362997,1566490667,1426064074,-326898549,1988843010,38046470,1027080229,846534656,-1962647925,2425415,402668856,1149903989,1008673794,-1977912061,522453575,309658428,1963226681,112645,1955269355,108411172,-1070862731,1575324510,1426064578,-326898549,1988843010,574917124,20710180,-963967883,1955269355,74856740,-1070863499,1575324510,1426064066,-326898549,-28915964,199976626,-1963041141,602603847,-1946269953,126549598,184305288,-1978567488,1178076742,-1947634180,1722953155,-663486040,-1744419190,-899816053,1435500546,-327029621,1448542464,-1961986421,-16054658,-24444299,209125206,142016343,-16742771,-401698736,-1073014337,2122534004,410255368,108328459,-401698730,-29626118,-16053644,-1873344908,-252909554,687747,244328564,-1743247128,8818000,244338943,-15186968,1996425846,8817930,1508397311,1996443650]},{"sector":5,"data":[1601739272,1600007244,-899816053,-1957363702,183272428,1988843095,-25786106,16533191,1174530816,1948269696,24936698,-1978043078,-1873766396,-303241202,1400160267,1352139914,-840429936,46564119,300678795,1949252992,1547534341,1166870133,-62486271,4030535,2122574453,661913852,956384397,57998406,-1946398977,126549086,-1997126008,130480198,244340224,-1961370136,1183513694,1577552120,1575324511,1426064074,-326898549,-1957275894,2123041398,-125925112,16664263,-96024832,1187446784,-956301060,63046,-955883893,-352321529,92843105,708679751,1024881664,1198784559,1946171965,4144403,1547503476,-348621824,-96024617,-789905407,-1728166774,-401698736,-1072960210,-1070922635,1586192875,17286918,792494080,1015022964,-1207601828,48955393,1183432747,-955716612,130630,-1980348673,1015085182,-2087029504,1962999422,-92372218,-2096335616,1946221694,-159481075,-1962445567,130483806,-14811135,-2001143690,-1873797529,-336074738,737691275,1590035399,1575324511,1426065098,1448602763,-1962379637,96863870,-1409029285,-2142829176,-143327172,1197278662,1577059782,80371039,-326413056,1443163267,-2096597365,1946158718,108461905,16824406,1615698512,-397005748,1183383646,-1873404162,-335222770,66864777,-25263120,185300224,-972589888,-12166140,1996487758,12080650,-62510335,1615698512,1444817996,-672657776,1975520235,112666,1996429291,12080650,1301958657,1445743712,184552936]},{"sector":6,"data":[736523712,-443851072,445021,-2081649835,1448542956,-1962641781,2105559038,74734591,720093227,1965899136,21334550,-968489848,334182916,1946172800,1191545355,-2142894968,-260743875,1180435654,-1207958330,1599995905,-1034033781,-1957363710,216826860,1988843095,75401990,16139975,1183667712,244338938,-1964149016,-466944954,721047178,-1983829011,1461648966,870846096,-196703765,2013152827,9431299,1183434499,-16520200,1325397574,-128021512,1968979840,-129564686,972965515,393672262,771245571,1344143363,510102712,-401698736,1183574665,-1956975624,1177285702,474614,1183576182,470526,1928742459,-129040411,-956801397,1325358087,-128021512,-13760570,1586231374,772261624,-1946661121,130480222,-129040594,-956801397,1325358087,-128021512,-12974138,1586231374,-2012902664,-1952191737,-1956684089,79846885,-326413056,1443425411,-955877749,130630,1183319178,1958742778,1966750784,108411161,1149899891,-1873766145,-355670002,108380171,-385875528,2122317983,-193713414,1073380992,2122378868,242491642,16678531,1187448948,-1996488450,-347732362,-25263177,1322349824,1949973632,775717067,1983452533,-2146405626,1966014332,80102922,80103004,-2135823616,91511868,1966029952,108411172,2088804979,259337983,1074153099,2009480000,-25395194,-2138213330,1950023548,312967,108461902,-1995180312,-12714938,-166169345,1947270214,1547468818,1743324021,792494335,1609106293,732097535]},{"sector":7,"data":[-443851072,182877,-326412912,141986646,33717377,-2129431295,24118396,1157041269,1963851784,112645,-1070923029,80371038,-1070902016,445021,-326412912,1460464771,242649942,1024214667,276037647,1947206973,112645,-1070923029,1240191531,-193032874,377096382,440583,-1956731406,-1084877732,2005760520,-1190715870,-1510866938,-401698722,-1070866520,-11512240,1962871414,-18398,509411152,2047393622,519337613,440583,-346118670,-1956684116,181034469,-326413056,-1710852353,743192579,2013255819,1030152,108461904,1347469355,149425808,46816717,-326413056,-2130514813,1801739326,-2129824426,1281646142,-1207601876,48955393,1183432747,108954622,185758720,-955353664,1801739270,1577502550,-349418396,108954392,-2095942400,1946222206,1543948044,-951951260,-1788584442,-28931300,-899816053,1435500546,1996483723,-401698810,-899822037,1435500546,-326898549,-1957275874,1187384950,1187384056,1157041130,1971322882,-2012958712,1183377990,1183667960,244338924,-1964342552,1183327300,105286640,-1995942261,1451883590,38074110,-953060351,18216006,720324234,-922817210,-1963833720,1183382854,-96024586,1183449152,-1964758289,-315953842,37601579,-1204718336,787152897,351553223,-297367039,-18069974,-230258488,-1996732790,1187509830,-1979703046,-466948538,720129674,1036069869,-814481406,1183432747,205949928,1946160957,33570094,1709769589,33635585,-555154571,33701120,-1092025483]},{"sector":8,"data":[33766658,-823590027,286801152,921240437,-1715459326,-167557655,1946223172,-314114552,-336638210,-330891770,-17936642,-1972481274,-466945978,-1923680117,-1605309370,-466983408,244340560,-152314904,1946223172,-1070901706,178278480,1464899686,-370667888,-1070901521,-230258096,-1605311446,1352164875,-401698729,2122575828,1467285736,1354771286,720389770,-1975784476,-466945978,727120011,-1605349184,1352164876,-401698729,-1974014036,-466947514,1354771280,-1738142304,244340560,-2081450008,1962993790,1183471130,1357130480,-1605320661,1352164881,719996554,244338916,-1863354392,-581048306,-939574551,23564294,244340224,-1966431768,-1465715130,1975519854,-1509505272,-352321426,1856544814,1978811960,-1509505272,-352321170,1856544798,1945126456,-1509505272,-352320658,1856544782,1995458104,-1509505238,1442841198,1342179768,-1326969200,343212015,-755969,-1955682762,735087558,-1873784128,-896407538,-939603223,74360326,-263812608,-378624862,909770427,225797210,-2047195509,91556422,-352321096,-1547687166,2122540944,57934056,-1963025687,-1465715130,-1505852562,57934958,-2080470295,6787134,1183450741,1856545520,946776224,58060870,184447721,-385649216,1178140267,-385648654,-466944413,2089416843,38073892,1444836353,-1974419413,-466948026,1712365648,-129594800,-401698736,727117428,-346599232,1183471139,1357130480,-1605320661,-466983408,-129594800,-401698736,-1604915628,-466981208,1354771280,-1738141280]},{"sector":9,"data":[-364475824,-1873746902,-298129394,711895200,28856548,1183469568,1222912754,544538448,-1205701377,-1873805311,-441915378,-1685879,1996428404,375028,-431584432,-645149045,-745813717,973010665,1952733750,-37623549,477429590,-2065166704,-1874951186,57999463,-1577210135,-1072992602,20779636,1024750592,494141442,1946157885,-40507088,1856519808,-1610159360,1178103464,-385649166,-2132148577,-1472298755,57999470,-1594001687,1178103464,-385648912,1760165511,1856545021,1978811960,-44177149,1945126456,-26089213,-2080550167,74360382,2122540917,1635057896,720389770,28856548,1183469568,1222912754,544538448,-1205701377,-1873805311,-454498290,1038501513,963969023,-1960950647,735677390,-1982624823,1451876934,343212004,-1191938305,1380974596,-1864206593,-927078386,-15436545,146338934,1996443648,-495517724,-1461186928,343211976,-1191938305,726663183,-1873784640,-929699826,1856374471,909705216,57959514,-1862483223,-934549490,-1477964144,-55186963,-443850914,707165,1458342741,-1962123637,172395507,-1994374007,1183522375,575113480,2391936,1204225397,-2097151708,1946158718,244339462,1592209896,576093,-2081649835,-1957295892,1200294494,-28931810,-96039597,-401698736,1586226743,138840842,-165787767,1946223175,-45708768,-259267542,-1979825011,1183512646,736373499,1037629382,544538626,-335657333,-62485939,-259267542,-1979825011,1183512646,736373498,1037629382,-529268734,-1962379521]},{"sector":10,"data":[2013203038,578289440,1342177720,737703679,244338880,-1981563416,1586169926,608667914,425603,-1873561996,-426186738,-1956729109,113925605,-326413056,-1962516853,-899867065,1435500546,509078667,176065287,-1962391926,-1426913714,113925471,-326413056,1443818627,-1962641781,1183393860,38074366,91521024,-350075765,910461699,-2131212663,6388798,-2048326795,876907264,1948271673,709150469,-1923743744,-1873741242,-447879154,738084491,1317677636,1005398780,-1962772799,-163149375,67257590,-1070979724,-1997322616,1187443270,1183449589,-196704010,-230257322,3061840,-126419120,1239944848,1444408295,1347469355,52315275,-11523516,1996486262,-401698568,1183508131,-96040714,-96039594,642026064,1996443800,-401698568,-1956714728,46292453,-326413056,1460726915,108432214,-1993587573,1150025286,-62486232,-1994505077,1157100102,1954545666,574917381,1149961195,-196703946,958416011,91421766,266977323,-28931583,-2010495958,1150023238,-62506700,1183531634,876886526,-661969034,-1963819381,25691206,1445741823,720782986,-1070903068,71731792,-11475926,244380790,-336938008,243725,91797584,-401698736,28893806,12380416,-129594026,-401698736,1183507519,-1947981062,1183469560,1925659638,876907297,1965048889,709164825,1354771286,28858192,726683648,244338880,-18418712,1183577678,-62506498,-125090698,1475509763,1342260621,737953419,-1873740218,-523245554,720782986,-1963422748]},{"sector":11,"data":[1183447622,-952416016,-1923736458,726663493,1183535296,1221012464,112720,-1070901424,-401698736,1586226852,-226587650,-2012985718,38073857,-972786684,1445856326,720782986,-1070903068,71731792,-11475926,244380790,-1444888,1157572676,-12654292,-443850914,311901,-2081649835,1448543468,-1962510709,1183391300,675580924,-113015,2123049036,-58850556,1342260621,-28931241,1208239659,-401698736,2122571825,57933828,-1962651905,1144587334,-1996261846,-397006268,1600060843,-1034033781,-1957363708,49054700,74877782,1210860683,201213577,721714624,-1961104448,1149894214,709135148,1946043961,-28931318,1445610633,-1191349528,-1956773887,46292453,-326413056,1443425411,1443133067,1358579341,-454553968,-62485790,1141105706,-28931798,1076642955,1006126729,74852420,602652715,-1980217717,1183525956,-129615362,1183519346,-61961480,-1054085846,709134656,-48633770,1577058744,-1034033781,-1957363710,1988843244,746357508,1443525632,-13873921,65547380,-1034068225,-1957363710,1988843244,675580676,1932280889,1962890759,-18290644,46292318,-326413056,74877782,2901191,712803072,-955681792,10820,-54663082,46292318,-326413056,1460333699,74877782,1445493899,1358579341,820514448,679250914,-1976796023,-466944954,1005995657,-1961527353,-163173433,1006126729,141699652,709134656,-59119530,-443850914,180829,-2081649835,-1957295380,1149961846,709110572,-1946270071,1143680580]},{"sector":12,"data":[-129595094,1635532416,1450406912,1358579341,-722989424,-129594399,41795595,1183367211,-62506246,1183449974,-96040708,201213579,721583552,-62486336,972965515,310179910,-1996863862,1183512134,-96040708,-1997126006,-1923679162,-1202652602,-2091909088,1946158206,608471813,1157042155,1954545666,574917381,1149961195,46956598,-401698736,-1956715612,79846885,-326413056,1460857987,108432214,-1993456501,1150023238,-129595096,-1993587573,1183579718,-28952074,-1595341963,-1995934208,1183579206,-1962284034,1183448646,-163148804,-230258360,972572299,74641990,-230258360,737298059,-1992229818,1143599174,507808552,-1979955709,1150022726,-230292706,-2080749943,1946158206,74907415,-755969,244379766,-1948400408,2123100254,116228,1090143883,-193527984,737691275,1346957894,-1494741360,-230257699,1982481465,-297366776,-336574933,-62485745,1999258681,185103623,1208251584,-1960164215,1149893702,216553004,-1956684037,79846885,-326413056,1443818627,503740043,-1878755585,-564860914,-1947056503,1183394884,507808764,-1979955709,1150022726,-62510284,-1947056597,1311451212,1992375292,-1950250238,1311449164,-229757956,41337147,1183433099,1183667958,244338936,-1965015320,-466945466,-1993718781,1996488262,-230257676,1358185987,-1862895873,-587208690,723534987,1284242502,-61985996,41337147,1178321291,-1962707214,1183445574,675545586,-13876223,1996424310,244338932,-1948462872,1144651334,-1962510804]},{"sector":13,"data":[1140978246,1357403690,-443851014,311901,-2081649835,1448545516,-1962510709,1183395396,675580920,-1946532215,1183394884,-129615362,208883316,-1980217717,1183579206,183191806,1090406027,-1946401143,1183447110,-96039946,-163169464,1183515510,-163149322,1090274859,-1946925431,1174609476,1996443900,-193528060,1390939792,-195130404,-972783989,116064257,-972792181,1599995911,-1034033781,-1957363708,351044588,1988843095,-163133682,1187446784,-956301072,130630,-230257322,-401698736,1183506231,65284852,994585156,58075204,-1993849717,1183578182,33701132,-1444347019,-385649151,138216558,-385649408,58065330,1023687913,57999366,1023459561,57999367,-385747479,1048577097,1946182012,813466436,-146901760,-2147483068,1149961588,-1962677470,1183397444,88378094,-125049814,1208239242,1538807632,1996443648,-401698578,1149948261,1357130246,6142039,-294191280,1390939792,350770897,-260144135,-1962511360,1149840452,843380270,-1959627775,1143680068,-330921686,959333515,141831236,112726,-59185072,112726,-401698736,-1974017266,-466949050,1354771280,2011696784,-28931102,67299737,20071670,-1873405067,-1066276850,1760038544,1975925696,843380230,-1207536636,854130689,-1070901759,-63903664,-1962522997,1183385686,-61437446,940065930,91487302,-349551477,172263966,1996244536,-129594618,-1978602680,-466945466,992625667,58075204,-1993849717,1149840452,244340270,-943748632,127046]},{"sector":14,"data":[973030121,1952733750,-12982013,1354771286,-1946429976,1451951686,-96040696,-1963174263,1178077252,-1976208644,1178077764,1443263228,-335888664,-96040405,1141105706,675560234,1149961078,742689064,973011689,1952733750,-17700605,946703264,292948036,-94967722,112726,-401698736,-655760269,1837867262,1913275448,-20059901,909751787,57959514,-1862352151,-1088952306,1944587920,-21632540,1354771286,1459311080,-1873756117,-504829938,-30251904,-1206618881,-11533433,1354771252,-401698736,1157021471,57999922,-70423,-2135419788,889147395,-768883061,1375981184,-401698736,-756433153,38046718,-388821071,721420581,44755410,20073600,-47029120,-1206618881,-11533434,1354771252,-401698736,2089008851,57933872,-939640087,1606,-16234809,138840959,-125054421,2147483521,2089485173,-1070901720,-88283056,-1960018807,1149830726,712784174,2117666935,-385649928,1183514115,-1981535500,-952374202,-1070922634,-947190037,1089226283,-383105911,1150025187,742668590,1418397302,36104492,-1959897973,501820484,-1070901758,-93525936,108461910,-2131033368,-385732020,727121521,1474842816,-1070901510,-85071792,32523975,1996445184,-72226810,36850816,1459460841,-397361109,-11077066,1474823798,-41293316,-16091393,1996425334,-401698810,1190640829,1946681352,23849219,1354771286,972688872,1969510966,-401698806,244366777,-941419032,127046,537558659,2122400882,1996553994,176063293]},{"sector":15,"data":[-1961396865,1144598084,1443460140,-397361109,552335987,-112269226,1283463915,727056946,1625837760,1183471354,-397371382,1150023395,776243500,36850816,1183526379,539914,-1645673611,19086592,-857144459,19152128,-1444347019,19217664,658315636,726627329,-263812672,-1946270071,2089492060,116264,-134425879,67110982,1187448692,-352321282,138868710,208929280,15746759,-163133696,350945281,959202443,208940612,1982743611,776243971,742689088,-133502890,1190639339,1963196424,138868677,208929280,15746759,-163133696,350945281,959202443,208940612,1932411963,776243971,742689096,-133044138,1149993707,742668590,518587252,138868735,57934336,1459559913,-369602584,-396951754,1190656127,1963065352,-10753789,15746759,-163133696,1323892737,-2065148161,1038347256,57999375,1039912937,57999618,1040092649,57999872,1039977705,57999873,737956329,-39851584,1963131453,-29431549,54336119,-385649406,4062299,-385649405,20839959,-385649405,-672399803,1963196477,-39458557,1963196733,-35198717,1963984189,-44439293,1964054589,-54269693,1964180285,-24450813,1600040427,-899816053,-1957363702,49054700,175541078,-14781185,1149962358,-1873788876,-680138738,510983966,-1569136,-28931625,-953662327,10820,2901191,776243456,425603,-1873410444,-622270450,1575324510,1426065098,-1957237621,1183516790,876906758,80371038,-326413056,1459809411,175541078]},{"sector":16,"data":[-1962508661,1183391300,675580926,1942436672,679250692,142016327,1476294399,149425808,1590135767,1575324511,1426065098,-326898549,242679556,-15960321,1996425846,108461832,-95754226,-1979955575,-443810218,707165,-326412912,1460595843,242649942,-1994505077,1183577670,998668,87888244,-1207602160,48955393,-768884693,-150938135,-2147483068,112723316,-1207702784,-125108220,1354771286,-1873782953,-627709938,-62485162,-401698736,-1923688121,-1202652090,1464860704,1911033488,1996431067,-401698570,1183373058,38046708,1946165029,81250,37582708,-1973521408,-466945466,1458718345,1354771280,-1963559169,-466947002,244340560,-2133153048,8033342,2062091125,477922303,-385649408,1157103473,1971322882,-9967357,491031126,1174660138,-1070903054,474253904,-1202658262,-1873805294,-551360498,-956348183,-352257466,-28931422,1312475274,-1979484428,-1054149554,-335919480,-28931442,-930421718,1995722298,-196179453,-1054085846,-454301487,-443850914,707165,-71042416,-1957313597,46292460,-1660500480,567083118,1912602808,-1660536825,1073837422,-326412861,567095220,1741823625,1741948556,-1274390901,-1960719078,-628422570,973176704,126488693,-1873784237,-696719346,-1072997542,1320421492,-402239861,-899809357,-1957363706,-397429524,-899809369,-987889662,-1268264426,522308890,-326412853,72780574,2139150987,326449665,1381173130,-401698736,1532679734,-4669429,-1206946561,1894269696,-1195373569]},{"sector":17,"data":[41222143,1562362251,-1275067710,69324057,-1957311679,106334956,244339282,1523975656,175423499,-2145334656,246702570,-899866163,-1957363710,1988843244,138840582,-2013208795,21284612,1955421242,612913155,-401698736,-1072966190,743967092,-1261401536,1579273543,313949,-2081649835,-1873411348,-6559730,-1946270071,2088765046,410335745,244331775,198549992,-14519104,-401698764,2088828804,359923714,-1274653045,-1960719045,-16092220,244383350,872377320,-443851072,182877,1458342741,74877783,503742091,687912967,1583292877,311901,1958742700,1949187094,1193642514,1950350464,1960851975,-1010224381,-471471287,1193642511,1950350464,553418757,-236786827,1438895243,1465314443,-1962641781,2139948638,571649,-469778968,1958742562,159354131,-402652231,333709230,1583334539,311901,1007241098,1022456895,871199776,1441524672,1452010635,-2133161212,1966735743,1393003024,244338770,1523898856,1958742875,1124120605,376578509,1962938405,73304851,774782849,-997521291,163712,-1070398860,180829,-326413056,1449192579,-1995684213,1187500614,-352321072,205979395,-2146673013,-176938945,108461907,1358579341,-152564080,-834237978,1131724811,16416387,1183666805,1996443810,1095686,-401698736,1183448515,-401698656,2122579460,427098272,108461854,-404222320,-1947169837,1086719582,-397213443,1183448913,-1602321504,-2095745792,1946160766,-373282043,1187447262,-956300806,2118]}],[{"sector":1,"data":[556675,1996432756,-401698804,-14752256,-14757258,244371062,-1949092632,1183437382,205949390,16533191,-1961694464,1065354846,-1207602134,48955393,1183432747,243172348,-15961088,1085804150,244338691,-4742424,1085803126,244338691,-2085120280,1946221694,243172158,-1925680128,-11492794,-1070920586,-401698736,-1072956149,1996431476,-1069118194,1920506448,1183394892,1958742992,-1572434675,-401698736,-1072956120,244375669,-1912787992,-11479994,132697718,-1572434434,1737013328,1095760,-401698736,-1072956217,-2098658443,-797015296,-159616000,1964029766,-58817760,-2091027200,1946160766,-733573801,-1069118128,-32249776,1215610891,-351373569,-1065451465,-2146274002,1946206590,-1048674249,-2147060434,1946206846,239504171,1963607609,-1069118188,108461904,1323830928,175570918,-351897857,175570695,1354778253,1282570394,-800683732,13663875,1183649140,244338850,201097192,-1870367296,-58529778,-972661109,244318215,-1728268056,108461904,-706212208,-797015044,506098688,-1878624513,-766449650,1946157885,175570716,957236875,91556422,-345499976,1747105795,1920506448,1183394892,1996431056,1746647046,244338718,-959335192,-2092827066,1946210430,-28931549,244338840,198342120,-1961528128,1183450718,38242558,1393194751,1282570394,-800683732,-2130819330,2119892606,112846,1575324510,1426066122,-326898549,205949700,1946160957,12970243,2105556611,-2093189884,9936446,2124494196,-773271171]},{"sector":2,"data":[75240,-150992199,-2585631,-7091017,-1584149833,-388924034,19261649,4372736,-661921289,-1806780417,-979397990,-1588794611,-388924034,19261649,702720,-661921289,-1815562241,-1815693313,-780304735,636015080,1119420417,-1948125440,1320681432,2105450900,-388896559,-1191182043,-503906294,-1207969653,-1207987252,-577072182,-1995586146,1451883590,-1588571394,-388924034,19261649,702720,-661921289,-1815300097,-1815431169,722368255,-1202696000,-1706033146,52742,-352321096,-1715459326,-899816053,-1957363702,149717996,16271047,33732608,1017813584,1183394892,1975520250,-368272888,-1528230459,2105450752,-388896559,-1191182043,-503906294,-2020878197,-1752460342,1183421388,-27883012,654073540,95913974,1378645256,97060176,-1014280110,1376113925,96701264,1347552729,13844890,1975520000,-129579259,1589903361,-1887426820,-16251465,45677174,1520062466,-13874116,-1632044426,-1070903252,1037867600,1996434508,747419898,112720,1037867600,1186475084,1996443674,-401698566,2122555903,158597368,654073540,95922048,-92864521,1279061146,1575324460,-326412853,185484939,1023898816,997457921,45626603,1454919680,244338729,-1196600088,-1706033134,743195029,1204279435,-947629040,479531591,1342177976,2078805648,1161389,-401698736,28880242,-2094470400,1946291326,209617909,-1206815471,-1202716668,726663257,-1706012480,231034445,1342177976,1279319962,1574169388,1426066122,-326898549]},{"sector":3,"data":[106873860,424119078,458722086,1996436459,175570700,-16222465,1996424822,-59310082,1342177720,518524560,-60898295,256374566,91488512,-342245333,1200301576,1468737045,-62486249,201217673,-1005030206,-165217186,1947209543,209125305,101349119,-1696068013,-1949897729,147480037,-326413056,1443556483,638082756,95913974,-385649660,-1960443617,-1996100473,-1960378810,-1996099961,-2002650042,-2021054851,-2136930836,-2021054851,-2144991762,-284837977,425603,-2002707851,-28952195,2122519157,57934844,-2097093911,1963261566,14280963,-1484289242,-2029312507,58000809,637586153,94341003,-1583903962,-129595131,-1929750903,1992685150,-2146964488,-973270684,-661906060,-210385397,-1929873783,1586428510,140428534,-1484289242,-1752488443,1183385001,-94991880,-336038203,291799051,291799287,494192123,-972302196,1988751221,-94466824,-990486898,-1070921634,-2021054823,-1993996885,637906327,94865289,-1449686746,1200301573,1468737028,-14357754,1996425846,1354771208,-92864688,-1191676161,-1873805311,131590158,653811396,638928779,-1994958965,1451882566,1958874106,-128007144,256374310,-3640304,1996425846,240322056,-335650584,-443851053,445021,-2081649835,1589904620,-2013911544,1946420663,10348803,-326661338,-28931835,-293106906,-62486267,-401714426,1589903501,2106106120,-326661850,2105581829,-293107418,-1484773883,-2081487433,1962935934,2106106120,1962821177,-2009169133,443876477,28857094]},{"sector":4,"data":[-401715200,1307311715,83787395,-2136914060,-62506627,1589919604,-1081924088,1946158513,-1208015308,-14285399,637904823,95533055,73918478,638082756,94865289,-1449686746,-1873607163,344582158,638082756,95127433,-1382577882,1575324421,1426065098,-326898549,1589925382,-1887427066,638584247,94341003,-1583903962,-62486267,-1929488759,1992686174,-2146964484,-975236764,-661906060,-210385397,-1929611639,1586429534,106874106,-326645978,654311173,99518407,-1956708353,80371173,-326413056,-1006048125,-165279138,67483527,-471268492,105286400,1946699275,106873866,289928742,-1961266144,1175127622,-385649656,1589903558,-2013911542,1963984311,12118275,-15960321,1996425846,108461832,-2098721136,105286420,1946699275,106873869,424119078,458722086,1589906411,1200301578,1468737028,-62486266,738088585,-96040512,-336050551,-60898287,357010214,391613222,-1979955575,1183579734,-28963844,1589920628,1207314172,695537679,-15960321,1996425846,108461832,1996444422,-126418950,1342177720,-1310191984,-62485746,-1979820405,1451882566,-60898054,256374566,-1452015360,-342245333,105286575,1963476491,173982731,-1213759450,149679877,637951684,538005376,-899816053,-1957363704,105286636,1946699275,106873866,291995686,-1005982753,-2144990626,268810127,-15960321,1996425846,108461832,-19535858,576093,-2081649835,-1000996116,-1960441250,1589906247,1194927622,-1207602421,48955393,1589952555]},{"sector":5,"data":[1334519306,106873867,958853259,91622223,-352321096,734014210,-28931642,896909323,638213828,-1005762677,958793310,91426119,-352321096,-994039038,-1960441250,1589906767,653298438,1980583737,112645,-1070923029,1183434283,1480492030,141885582,-134330741,-28931624,1593722507,-899816053,-1957363704,49054700,1589925463,1200301578,1468737049,106873883,458701094,108793215,424098086,28837235,721611520,173982912,424643366,460819238,-1962516796,2000234232,2131590171,1329145350,-1207601639,48955393,-953434069,-2080487799,9328702,-654899851,-1946270071,1600060998,-899816053,-1957363704,653034476,-1982183795,1452080198,209125374,-16091393,1996425334,-870383866,81298,1589914237,172395516,638342795,639453065,-1994434679,1451883590,173982974,491227942,525830950,-1995815287,686492758,-1946394940,1451951686,1200170504,1468605981,-62486241,-989964663,-1960442274,-1960436409,1183391575,139888902,654073540,639453067,1964984075,172395404,1963738635,105286408,-351775093,172395270,638342795,639453065,-1960880247,1452013382,1575324665,1426065610,-326898549,105286450,-1995942261,1451883334,-632911363,-337881463,-765541285,491227942,525830950,-1982708087,1996477526,-696844328,651321028,639596543,-14845953,1033030686,-713228287,651321028,639453067,-1994434677,1451871814,-700019760,651712139,639453065,-1004578935,1183569502,-799634482,491227430,525830438,651845316]},{"sector":6,"data":[639453067,1948206859,-596181130,-992315649,-14230946,-14278793,520035703,20812492,-1004634880,-1960388002,-1960436409,1183391575,-598308390,651845316,639453067,1964984075,-631323448,491227942,524749606,-1960431244,-1960436409,1183391575,-665417258,492815398,491227942,525830950,651845316,639453065,-1927325815,1183440454,-732525358,-1946209303,1175190342,-1962379779,1451951686,-1962480888,1452014406,1575324669,1426064586,-326898549,-2091493618,1997145726,175570701,235435775,-369175320,1183514754,173443848,-1979955575,1187511894,-1962933770,-783808954,81384,2123048306,-271495418,-1930015093,1992684126,494192124,1002539841,-1980336441,1586297974,-228684034,-990490999,-1960379298,-1960436409,1183391575,-94991880,-1993949141,-1993990329,1996430663,142016266,251033343,1392475368,-92864688,-1946650881,1177224774,-401714954,1347616617,-39655410,-443850914,445021,-2081649835,-1000990484,-1960440226,637902727,94471947,1183522933,139889414,-1618507482,-1752619515,1589904801,650128134,639584137,-383957111,1589903817,1207313926,58003473,637570025,639453067,-1994434677,1451883590,-364475906,-1930668407,1992681566,-1005327382,-1977219490,1556351815,1194862109,-989104629,1149967732,524552989,1988748661,-329347862,-1548658,1996427382,-25755890,-1862502657,83421198,-1980873079,-1039404970,1589909620,1200301802,1468737053,-295779297,491227430,525830438,1589909739,1200301802,1468737053]},{"sector":7,"data":[241091615,-1618507482,-1752619515,1486947745,-163149426,-1906833721,1589903360,2139104774,1182073099,1589924614,-1208015346,-14285407,-16408649,1023427102,779943937,638475972,94341003,-1583903962,106873861,491227430,525830438,-1961992508,1451951686,-2021054968,-1993996897,-385506921,1183514785,205916938,1183516788,206998282,1589906923,-2020923890,-1960442465,-1996119657,1451882566,-128006918,491227942,525830950,-1980610935,-1039403946,1589920372,1200236274,106873867,189216806,1392906613,-227082414,4333311,2097152317,-1004410094,-1977159074,1589906247,1194862086,-1961789685,1452012102,-129594892,-990226807,-1393823138,653811396,639453067,-1004578933,-1993996706,-1993990841,1589911383,105286648,638080651,639453065,-1004578935,-165280162,1947210055,1200301604,1468737053,-362888161,491227430,525830438,-1962516796,1452014662,1200170750,1468605981,-163149025,1586387107,-899816053,1435500556,1183575179,239471372,1589932149,-2020923888,187041191,1946528135,-1208015341,-14285399,-1710905417,231026465,997511179,638607044,94865291,-1449686234,140428293,491227430,525830438,-1961861436,1451952198,-2021054966,-1993996889,-1006261865,-2144991138,638062927,68243328,-16724759,1996427894,175570704,235435775,-385818392,2122514617,175439878,638344900,538003446,1589917556,1207313932,359989777,-15567105,1392906358,-16091393,-401733514,-1964441241,309788416,-15698177,1996426870,175570700]},{"sector":8,"data":[235435775,-352168984,207537266,291995686,274646239,-1484289242,-2029312507,309659049,-1962391925,-1993995690,637904775,95000457,-1004126997,637905823,639453067,1948206859,309788439,235960063,-1005811992,-1993994146,637905799,95262601,638607044,95133636,-1962391925,-1993995690,-1993990841,1589911383,650128136,639584137,-1004714103,-1960441762,187047239,326442823,-1961861436,1451952198,-2021054966,-1993996885,1560653207,1426067146,-326898549,173982728,-1484289242,-1752488443,1183385001,-94991880,653811396,639453067,-1994434677,1451883590,-2009168898,1869939837,1996434667,-59310082,-986766950,1976568589,-62485723,-1979820405,1451882566,-60898054,491227942,525830950,-1979955575,1183579734,-28963844,1589955701,1736451832,1589966609,1333798406,1589905425,1200301816,1468737053,106873887,491227430,525830438,-1946657084,1451951686,1200170504,1468605981,-15668449,1996426358,142016266,235304703,-1962590488,147480037,-326413056,-1006048125,-2144991650,638062927,68243328,638213828,34688896,638475972,94865291,-1450767578,-1960807163,1451951686,-2021054968,-1993996889,-1006261865,-1070922146,524781862,491227430,-2097105431,58556478,1183529589,206998282,-1979955575,183238230,654073540,34686966,1996429941,242679568,-100609,-401671050,1183383806,-27883012,-596258805,201082507,1098251846,-15698177,-401731978,1183384330,-94991880,964018699,638475972,94865291,-1449686234]},{"sector":9,"data":[106873861,491227430,525830438,-1961992508,1451951686,-2021054968,-1993996889,-351950441,-25755853,251426559,-352179736,-128006979,491227942,525830950,637951684,639453065,-1004578935,1183578206,139889414,491227430,525830438,-899816053,-1957363700,82609132,2106080899,-11963132,1996426358,-471331318,-62486271,-989964663,-2144928674,-990441113,-2144991650,-1006104241,-1960379298,-1960436409,1589911383,1200170502,1468605981,-60898273,-1962522997,-1993996202,-1993990841,384507735,-15698177,1996426870,175570700,-16222465,-401734026,-443874243,838237,-2081649835,-1000995092,1183517278,139889414,-1618527962,638350597,94476089,-1070922379,641657753,94341003,-1583903962,-62486267,-1929488759,1992686174,-989598724,-661906060,343197195,-1962522997,1144588374,971797789,-411754668,-628308341,-1929611639,1586429534,-443851014,576093,-2081649835,-1957296916,-1070922146,-1996339319,207537159,-1962391925,958794326,1963302791,-1757862388,91555233,-342245333,-1983894680,1183448646,106859516,638350987,94340235,-1584100570,-1995994875,-208993705,482611179,491227942,525830950,1418265737,184847106,829686340,638082756,-1005893750,1194862108,-1962248949,-1983738685,1451883590,138841086,638211723,1964853049,1463363269,-1950386913,1452014662,-443851010,707165,-2081649835,1996425452,175570700,-16222465,1183647350,-401714948,1183448906,-94991880,477413899,653811396,605112203,106874110]},{"sector":10,"data":[290425638,184672643,-128006975,289900838,201082507,410320454,637951684,639453067,-1004578933,-1993933730,-1993990841,418062167,637951684,639453067,-1004578933,-1993995682,637902727,94476169,-1946401141,-443810218,576093,-2081649835,-1000995092,-165280162,1963069767,-1715459323,-1960430613,-1960437433,1183390551,-27883012,-973447540,1157037174,108335119,135349494,1959069045,-1980765419,1586297974,-94466306,1452000907,-443851010,313949,-2081649835,-1000995092,-165280162,1963069767,-1715459323,-1960430613,-1960437433,1183390551,-27883012,-973447540,1157037174,108335119,68240630,1959069045,-1980765419,1586297974,-94466306,1452000907,-443851010,313949,-2081649835,-1000995092,-1960442274,637904775,94996235,-14281868,637905335,94877695,-986766950,1959791373,-1715459323,1589916395,-2020923898,-1960442457,-1996117609,1451883590,-94466818,-335776059,494191875,135349494,1988753268,-27357956,-1946526066,-27882554,1575324510,1426064586,1589963915,-1208015354,-14285399,-1710905417,231026465,91541515,-342245333,106873869,-1484289242,-1752488443,-899873367,-1957363708,149717996,638213828,94865291,-1450767578,-1960807163,1451951686,-2021054968,-1993996889,-1006261865,-1070922146,524781862,491227430,721471721,-96040512,-990361975,-1960441250,637904775,95000459,1996434411,108461832,-100609,520092790,-1072983348,1183523198,-27882500,-1980217719,1589967446,1200301820,1468737053]},{"sector":11,"data":[-62486241,201217673,-1949600318,1175189574,-1003653638,-1960441250,637904775,95000459,637951684,639453065,-1004578935,1183517278,139889414,-1484289754,-1752619515,669713833,653811396,639453067,-1004578933,-1993996706,-1993990841,1589911383,105286648,638080651,639453065,-1004578935,-1960442274,187047239,326442823,-1962254652,1451951686,-2021054968,-1993996885,-1962562153,147480037,-326413056,-1006310269,-1960441250,637904775,95000459,-1979955575,1996488278,108461832,520048722,20812492,-1003062016,-2144991650,-1006366385,-2144928674,-990178969,1183516254,-27882500,491227430,525830438,-1962254652,1451951686,-2021054968,-1993996889,-351950441,142016272,-16353537,1996488310,-1561850116,1575324416,1426065610,-326898549,209125128,235566847,-1979870744,1451883590,142016510,1376155391,-870383792,81298,1589927805,1333798406,1589904401,1736451836,1996487441,242679568,-401714426,1183385046,-94991880,645251595,-1961992508,1451951686,-2021054968,-1993996889,-1006261865,1183516254,-27882500,491227430,525830438,1589912555,105286648,638080651,639453065,-350267511,142016474,-16353537,1996488310,115871484,1575324416,1426066634,-326898549,-13767932,1996426358,106873866,491227942,525830950,-1979955575,1347616342,-1832116481,377405451,-1946401141,1183448662,139888902,637951684,135350262,1589954932,1207313926,225708049,291995686,173982967,290422822,106873864,491227942,525830950]},{"sector":12,"data":[638213828,639453065,-1004578935,1183516254,206998282,491227430,525830438,-899816053,-1957363704,207537388,291995686,1736451831,-2144929007,-2081484441,58556478,1048778357,1946451336,376897295,102004479,971509331,15854077,2106080899,-14912508,1996428918,309788436,-15698177,1996426870,108461836,-153884658,-1962881303,1175128134,-1002343414,-1960441762,-1960436409,1589911383,1200170508,1468605981,140428319,-1962129781,-1993994666,-1993990841,-165273769,1963462983,9824515,291995686,207537399,290422822,8775944,185616011,762647110,638869188,94865291,-1449686234,207537157,491227430,525830438,-1961599292,1451953222,-2021054962,-1993996889,-351950441,376897302,-15436033,1996427894,242679568,235697919,-990360856,-2144990114,637800783,639453067,1948206859,2013210267,2013210143,790731293,1178275269,998667536,-2123034026,638344900,-149854336,492815398,291995686,341755131,-1417180378,-2029312507,259261869,-1415592922,1200301573,1191912989,-15240161,1996428918,1692929556,341754883,-1417180890,-1752619515,-899873363,-1957363694,183272428,57975126,58070667,1963345465,139868426,28837237,721611520,-62486080,637951684,639453067,1964984075,112645,-1070923029,-989968759,-1960440226,637904775,95000459,-1980217719,1183578710,139889414,1979205177,-95012577,1589910133,1200301574,1468737053,241091615,-1484289754,-1752619515,988480937,-973709684,65796214,-1961003835]},{"sector":13,"data":[1451951686,491010312,1413083765,-1980926689,1586296950,-161575174,637951684,639453067,-1004578933,-1993934754,-1993990841,2122522455,762577150,638475972,94865291,-1450767578,722367749,-2021054784,-1993996883,-351949945,-129594608,653940363,95127433,-1382577882,-58817787,-1005423616,-1960442274,-1960436409,1956847447,1981188355,-2143386877,1383334781,185222795,175377478,638213828,538003446,1589919860,1207313926,594806801,289928742,-1961724924,1175128646,-1005947892,-2144990626,-335736473,-128007139,290422822,-1005327608,-165280162,1946423623,1606690313,1333798429,-1956772847,214588901,-326413056,11857025,-2033822121,721485663,-92894730,-422451503,-11237747,-9010551,-8875380,637951684,94341003,-1583903962,10742021,654073540,-1962195062,-422446474,-1698371887,942079862,292883271,-772114805,-1914252826,-1979746686,-335589754,-60898215,189237798,-772114805,-991505946,654276250,1980450616,-92894414,-422378831,-293473021,-24444790,-990228853,1333798428,-293404399,82805508,639485001,-1005893750,942079070,-479065273,-1946530167,-422446474,-2104629551,-2037776522,-661913780,-2144985148,-1946283673,-62485544,-1979820405,39291143,654073540,639453067,-1994434677,1451883590,1958874110,-60898254,189237798,-772114805,-991505946,654276250,1913341752,-13047549,-1946532097,-422446474,1183573713,1988266492,2022869503,-2084967425,1946221182,-92894433,-422378831,-293473021,1317732490]},{"sector":14,"data":[639419642,17911680,-502993277,-95516172,-443850914,313949,-2081649835,-11138324,1996427382,209125134,-16091393,1996425334,-401698810,1183576330,205916938,1589907317,-2020923890,-1960442465,-351952489,173982731,491227942,525830950,-1979955575,1586298454,-59324938,1589908459,1200236038,189020171,1686111349,1959132689,1004047389,-428538250,1963476539,-59340319,-1895932276,1589966430,1200301574,1468737053,-129595105,200955529,638416066,-1005893750,942078046,91491143,-352321096,633350914,1589903361,1334519302,-18776047,-1993948917,-1956769465,214588901,-326413056,1443294339,637951684,94865291,-1449686234,-62486267,201217673,721778128,569088448,-973447540,65797238,-1961003835,1141579076,-1980402401,1586297974,-94466306,1452000907,-443851010,313949,-2081649835,-1000995092,-1960441250,637904775,95000459,-1979955575,-804520362,1183518836,139889414,1979467321,-27903734,-1070922379,-1943147623,1992686174,105286652,956847755,91561284,1948210233,494191881,-972302196,1988749173,-27357956,-1946526066,-27882554,1575324510,1426065610,-326898549,1183536654,138808070,1589906804,1200301574,1468737049,-1005851877,-1960441250,-1960442809,1183385175,-27883012,-973971828,183237750,-1961540469,-259319980,-661857650,376751627,269436150,1283458165,1157042193,1946222607,-1715459105,1988747499,-27357956,-990749042,-1960441250,637904775,95000459,-1980217719,-1070859690,-1980348791]},{"sector":15,"data":[1992684614,-1000674316,-1960380322,-1960436409,1589911383,-2021054966,-1993996889,-351950441,198741023,-1005619770,-1960441250,637904775,95000459,1149961963,525634333,-628166517,-972302196,1589907317,-2020923894,-1960442457,-351950441,491031302,-1994435445,1451882566,-129594374,1962558987,-128007131,289928742,648967184,-284072064,-972302196,-1960408716,-1960436409,1149837143,525633821,1988735723,-161575692,-1947050354,1175127622,-1006078968,-2144991650,-192153,1996426358,552078858,173982974,-1417180890,-1752619515,-1956772435,147480037,-532774144,359923738,-1081459069,-1710328832,4626,92258314,1642598032,-536426623,-167772134,25001478,1989805940,-352321369,718379525,62393797,1723355136,431509504,244338688,-884231448,450889415,-1348861951,-1207959534,240123905,-167395352,25001478,1989805940,-352321369,718379525,62393797,1723355136,414732288,244338688,-884245784,451034755,-138405119,451060696,292864011,-4921330,1342178232,1342203320,-352315208,1558711823,243967,6666320,1685584,-401698736,1439386435,1183575179,450798342,182877,-1947432107,1175127622,-1206553592,-11496562,1996425334,2013190,825936,99290565,-1819408698,80370944,-326413056,9628801,1354771287,1189274,46433024,-1984543095,1589950550,1207314102,309608567,1342177720,1189274,46433024,-1984543095,1589950550,1200301750,1854310781,1354771455,-9402739,-1169781424,1854311760]},{"sector":16,"data":[-526757633,-1929379763,-1929416514,-1178562864,-1070333953,-772296974,-2037558967,1343684464,1196442,113541888,1575324511,-326412853,1443425411,-1705983957,4645,-1996307325,1451883590,-60898050,2001204774,-1710918592,4838,16402119,108954368,-1959756288,-963967370,-1694874111,4838,-1705983957,4645,-1996307325,1451883590,-60898050,2001204774,-1710918592,4838,-1697090226,4802,506227128,726670928,-1936043840,1577960815,-899816053,-1957363710,351044076,-1604954367,-2037858460,1183579892,1958742802,1064226,904463221,1129729,306011508,-385649408,322765096,1026913280,1265893403,-2097079319,1761342,312090996,-1744830446,-17660279,-1081459069,185168896,-1878690368,2134829070,-17660277,721570537,38136256,1184410,1183422464,239483902,-571931785,242679552,-16390130,-1711221783,4626,239483800,-1444347017,738142977,1174531062,1178322571,1444771598,1189274,46433024,-17135991,-17000823,-17129788,2001204774,1205630016,-17383799,-17254775,1174652811,630870030,-2097151982,-2037841212,-1769341190,-2037514500,1343684350,-17135989,1375752197,2013264,1760533072,-1098052155,-796066050,-4603762,-222284801,1238497198,-17658231,-17129788,1971290150,-1961004032,-24983823,-1098047234,-796066050,-4603762,-222284801,1238497198,-17658231,454196867,-1098045835,-796066050,1988870286,-18160,-1359822797,-114568713,-372113785,-921459214,28878066]},{"sector":17,"data":[22145280,-16859507,-1064382324,872415161,-139529536,-1903605295,1721827064,-1964758337,717186062,767634413,-2042953724,779550456,717186720,767634404,-2037841916,-2043937040,-2037776648,-1232339218,548470520,-17920373,-16860531,-2037667086,-2046689554,-1634992392,-586940680,-16873530,138840576,-259267542,-17529206,1166932107,-293172990,1647771646,-1923723073,1358888582,-17647873,-1878624513,-1224611826,-1084082433,-17660277,1077987075,-2037688752,-989593870,1342243373,1358954424,-1873756117,-1226971122,1343884984,-786910559,1086784480,-1224780208,-11075858,-1946225994,19203654,-1070903296,630870096,-384973447,-2033713380,65272,717186720,1678674660,736963263,212417,1721773174,736373439,208321,-17791351,-18053495,-17254773,-1903484752,-1165099284,118947582,-2037667086,-2046689556,-1232339208,-2100887816,-16711938,-1967168970,721351814,-1974451996,-467007418,-24736432,-4697858,-1070903041,-401698736,-1444301245,-1956684034,248143333,-1084704768,-779118000,1439370693,1048833163,1946206090,-1084704748,175570768,-1710721281,231067072,-352321096,1572875010,1426065098,1488514187,1996443839,175570700,-1979156737,-467007930,-906913200,-899871291,-1957363704,149717484,1589925377,130426376,243712,8370256,-401698736,1183401695,2109737980,9365763,-17135987,2122534934,309722364,188389025,1949997062,982950153,983045771,1586175467,-773598724,-761281309,529212993,-472783919]}],[{"sector":1,"data":[1104316299,1104451467,1375733253,16824400,-401698736,1187383585,-424148742,-2037559270,-1705967878,11498,184861827,-1204849472,726670057,-358985536,-2097151956,1183384772,1958743038,244338713,185251816,-15764288,1996425846,1996430856,-401698562,1589905563,1065362952,-1205046016,-1706018998,10990,-1996307325,-1072955834,-1873798796,176351246,259309579,-16091393,-14808970,244383350,-1006082328,-2144991138,192217151,-14789882,244319862,-16231704,1996425846,-401698808,-2037827143,-259260680,638082756,1560246400,-661973644,-17266945,638088843,-1956904762,654243998,1577058502,-899816053,-1957363706,250380780,-1705617663,4855,-17660279,-17525111,-1988446047,-1073809786,-1232237082,-661848326,-4603762,-222284801,735180718,-771848199,329642729,-1952124215,-2130774346,1560213946,-2030103948,-2100887818,-1956839686,-956369226,16710274,-17660277,-17525109,1375804165,-91845296,-401714946,62455388,1471696896,244338688,-1991947544,201259142,-1921679680,385809030,-121732272,309722366,188389025,1949997062,982950153,983045771,-1635049749,-472776968,-1614486575,-1960427054,-773598945,-762868765,-728265919,394561,244338770,-1928899864,-1929446722,-1178562864,-1070333953,-772296974,-158430903,-2131653634,1560213946,-2030103948,-2100887818,-1956839686,-956369226,16710274,-17385845,-1926157633,-1929446734,-1178562856,-1070333953,-772296974,-24643285,-1510807087,-1527592685,-17660277]},{"sector":2,"data":[-17525109,1375766277,-91845296,-1873799426,115730446,-17135987,112720,-401698736,-1098053166,-796066054,-4603762,-222284801,1238497198,-17396087,-1165954677,1952251641,-158925038,-92092674,-1232380674,-2100887818,-1962868998,-1946226042,100594838,1347551447,-17135987,244338710,-1207529752,-1202716669,-1873805198,1143859214,201213577,1030061760,309723132,188389025,1949997062,982950153,983045771,1586175467,-773598722,-761281309,529212993,-472783919,1104316299,1104451467,-1996487163,1451883078,-91845124,1380980478,-1191545089,-1706033140,231041263,-17135987,715954768,-998047744,-224476158,-2021054722,199950687,-17654076,1602733862,-1711276031,8247,-17654076,21465382,1636288294,637534209,990070727,108954368,-1609927680,-2010743492,-352227449,-2020989421,1017250159,1357130365,-984699750,2108728077,-443850914,182877,450903683,-1206553600,726712152,1704612032,-1207056947,-1705984168,231067982,-326412853,1354717368,-1163844680,1347558549,1343884984,-15960321,1996425846,108461832,1345210552,1342347960,1347469355,-977023334,147479821,-326413056,1460595843,1010729814,2055143450,2379930,266633216,-2080487799,1761854,1187473524,-1711275780,4626,-96040552,16008903,2092960512,-12154287,-1947056504,1988885630,630871796,-2097151982,1183384260,-128546314,653680324,1081559030,29295988,-1977881856,942076486,309687879,654198410,1970620216,734432009,-401715001]},{"sector":3,"data":[994506795,-1048642954,-1979941239,1996485750,175570700,-16222465,244319862,1586861032,1575324511,234883274,737642216,-401715008,1439430651,-327029621,1402601628,-1560281049,-1072989362,62405237,1706577920,244338688,1027756776,678756376,451020487,113704961,72416,1141658,1975519744,313498127,28835840,-401715200,283901028,-169099221,451020487,113704960,6880,451034755,-385649408,1805254885,167772177,-385649216,1671037145,-1996488686,-1072956858,-890698891,-754405120,1392104,-401734539,-1070858391,311925328,-998047744,437172226,-62485168,-401698736,246984467,1183666202,548950268,-1070903296,-401698736,244363576,-1871576856,1941170190,-1308998005,770233096,289210369,55277312,-13724736,-1196830553,-1202703630,-1873792568,277669902,-222797333,-55029710,-1192236239,1344155946,506618552,1686539600,-1873799425,378923022,-1207122813,-1924123918,-335584122,854767821,852539472,-222771989,-1397206990,-2068059342,-2069265239,-1817589847,-945187927,-945174615,-1666594903,-1096171863,-945176919,-945176919,-1196832855,-1202716671,-1782929410,-1873784292,-1727338482,2393498,-469317888,-1207959270,-1202667688,-1782931165,-1202695652,726669838,-1202696000,1347420161,1345087928,1342347960,1347469355,-977023334,-2079930611,-956300865,12552710,1575324416,-326412853,185484939,1023898816,1299447813,28853995,1119375360,244338720,-1198978840,-1873805311,-1991972850,1342177976,1005063824]},{"sector":4,"data":[1095817,1345781584,-401698692,297306309,922701824,244350262,-1198999320,-11534318,-1870810058,-2001999858,-352321096,205949704,-351414109,181034483,-326413056,96032343,451722752,2123040542,-219557622,-221703259,173968292,67651210,71796784,75381052,117720960,805652422,805717958,67520138,122128432,75381052,117917568,542662,-1944391233,-1950314792,-17933,-1359822797,-114568713,-24651381,-218103879,-880062546,-1510807087,-1527592685,-899850402,-1957363706,1793885164,312104535,167772178,-2095415360,1619006,703136629,243714,91797584,-401698736,434744114,33732610,1017813584,1183394892,1975520232,-368272888,32050629,-394854654,1345091768,1342177720,1279122586,-394854612,1345094328,-1705983957,743194076,2085619399,113718122,864320822,2108950215,-1934085198,1996443674,-401698584,20806715,-385649664,-13958732,1184410,1183422464,-336188434,630871581,-2097151982,1183384260,-329872918,652893892,1081559030,29295476,909854208,-578896034,-1980727671,-947132810,-1084357117,1352418953,1189274,46433024,-1981135223,-140841898,-1996488686,1451859526,-431568992,-268107776,-1740207871,-1952819575,1586292302,-1737046634,-1947574588,1194927620,-1912048262,1317639774,-2096370714,-2092859450,-277016327,1183703787,-1957685598,1451990598,14091680,244338770,-1929306392,-1001328058,-1977180578,1357130247,249984767,-1912714520,1989014142,-1898935134,-17984,-1359822797]},{"sector":5,"data":[-114568713,-24651381,-218103879,-880062546,-1510807087,-1527592685,-1924087765,-1705991610,11980,-1929067389,-1705991610,11728,184730755,-1922206528,1343660614,-1952561525,453353558,-1873784319,11397134,1358055053,647913156,-467007606,-428409008,-36050930,-1913487731,-796089738,-4603762,-222284801,735180718,-2015785991,-17922,-1957712142,-219557429,-221703259,1354771364,1352812173,3067034,79987456,1352812173,3002522,46433024,-1701021953,4759,-1711094653,19553,1354717368,-1705983957,231066981,1184410,2143291904,-1637956575,1673495334,376700929,2004122,1958742784,-1637956595,1673002790,515807745,1996423168,1022139112,1600007244,-883038837,-326412912,1459809411,108971094,-973185396,132844150,-2012902874,642139908,1962950016,175540723,-1911791988,2122972766,138841094,638213828,1577060294,1575324511,1426065610,-326898549,-2091493630,1946158718,105286451,-654845705,-989968759,1183517790,173443848,-771862901,-1946448919,-628220176,24356338,1183522724,205914622,-150452735,105251288,-443850914,707165,-2081649835,1448543980,17202816,1187452533,-1962931970,1451952198,525578,-1980086647,99351638,66995911,-25785600,1589907691,1065362952,-16550912,1191118918,1589923340,1065362956,-385649366,-167051081,-1326906507,126494208,1958742936,3030368,1060970868,-993299456,-1977218978,-661940217,1754761206,-1957465086,-1977218978,539858951,-2142311680]},{"sector":6,"data":[1963067006,112649,-369199479,-24969051,-1006013432,-2144991138,427098175,-1962129781,1379929686,-59310256,-1191545089,240123906,-335589912,-339727405,140428495,20938790,-654852069,1586217707,126494216,207537304,-1977169781,-661940217,-2013857397,1946314903,207522572,-1744336346,-352313299,207522567,-1744336346,-1116354757,-15972609,1021904966,-25785857,33980032,28837237,-1004213504,-2144990114,-227278785,638338815,1965965184,1996424942,-59310324,-1191545089,240123906,1593757160,1575324511,1426066122,-326898549,-1202301182,-1706022410,10990,-1996307325,-1072955834,119414388,1988884619,-18170,-1359822797,-114568713,-372113785,-921459214,116106482,-972661109,1599995911,-899816053,-1957363710,-1964211732,-950642944,33519750,106859264,-1952970870,-1752697128,158597736,-1979294069,-350213113,106859269,-2037905526,765001598,-1706033088,8833,1962934589,2022098697,-385875713,-2037579618,-11468934,1419380342,-2097151954,-2037840700,-1072955530,119419508,-1190756725,-1070333953,-772296974,2089716041,1992197119,-982187265,1963194755,-1947104320,2021656158,-1250599681,-8878393,1424687105,108461854,377505421,530553424,-1073020928,1988959604,-1962467712,-4651394,-222284801,735180718,-771848199,329642729,-1918569783,-796098434,-4603762,-222284801,1238497198,-1165954677,1952251775,2055637935,1058303,-8878455,-8878453,-443850914,182877,-2081649835,1448543468,-972530037]},{"sector":7,"data":[2122514439,57999366,-1207896855,-1202716669,-1873805185,982378510,201213577,510098624,1023964927,309723132,188389025,1949997062,982950153,983045771,1586175467,-773598722,-761281309,529212993,-472783919,1104316299,1104451467,1375733253,4372560,-689435056,140413948,4343750,1345995960,753572435,-998047744,142016260,-24713202,108380171,-972530037,1586167815,4161544,-491228811,-291876819,-2097151958,1183384260,1958743036,-401715191,-1072955812,-558352267,-291876819,-2097151958,1183384260,1958743036,-401715191,-1072955840,1253579893,-291876809,-2097151958,1183384260,1958743036,-401715162,-1072955868,119414132,-1946386805,-4650890,-222284801,735180718,-771848199,329642729,-1952124215,1065355358,-1088523008,-661877274,-208945010,872415161,-139529536,-2013713455,-219557378,-221703259,-1956684124,80371173,-326413056,-15567105,1183453302,1357130252,1342850698,1342719626,1342588554,-722989424,248143266,-326413056,-15436033,1183453814,1357130256,1343112842,1342981770,1342850698,-16222465,244319862,1570959592,1426067658,-1202262901,-1202710002,-1202701750,-1202716640,-1873805306,-1467029490,414334595,-1608158208,-466994614,1268838539,-1604956102,-1957676467,-972880314,112720,1816656,-706241968,636157952,708463264,-1192195100,-1605363186,-466994613,1302353488,1183535162,1355154182,1342179000,14377114,-899850752,-1957363710,149717996,2122536535,175374598,977813123,-385649664]},{"sector":8,"data":[113705134,80456,-1962467753,-4650882,-222284801,1238497198,79790175,-1963176312,1241907905,978100794,-466959990,1268838539,-1594324166,1183398477,-137942022,-28931610,414334595,-1607633920,-466994614,-1191688567,-977605847,-11513331,1996488310,1183537144,1355154424,251295487,-1543585048,378116098,887855108,1345997496,1038618256,-1981754985,-1705968058,231074601,-1986526557,194511894,-1206553392,-1202710002,-11519414,-6814666,-1869086154,-1423382514,721176202,451629284,439238275,504853504,142510855,872415161,-139529536,-1048360495,-401714940,-1070858579,-401698736,246966760,1252020250,1088694842,1268797504,1088694842,1996443712,-18424,440400,-401698736,1600038555,-899816053,-1957363708,105286636,1963476537,1208403836,-1207959494,-1202710002,-1202701750,726663200,244338880,-1582892056,101423106,1400150020,414334595,-1205308416,-977605765,-1605348851,-466994614,978034768,978100304,978165840,70713168,37158808,-186118504,-1205146627,-1202710002,-11519414,-6814666,-1869086154,-1432885234,-1744554241,-1744685313,-974423142,-955847923,18492934,112640,-401698736,44132652,67505048,-1207602024,48955393,-899825621,-1957363708,384599020,-13937065,637951684,639190923,-1994696821,1451882566,-59339782,1589907947,1200301816,1468737045,-129595113,-1946528119,1175189574,-1002736390,-165218210,1947209543,-364475103,1392922646,-986400614,-1012979,1996487286,-1511518472]},{"sector":9,"data":[1190134783,41875259,1589968523,1207379704,1946222607,-1715459151,2122954731,-59340290,1600046987,-899816053,-1957363708,2122536940,696123398,-16091393,-401733514,1174667112,516983558,209619719,872415161,-139529536,-788313647,1984100995,-339727612,112643,147479903,-326413056,1351846072,-16222465,244319862,-1559424024,113741390,36458,313949,-2081649835,-2002713364,-1979315309,-2093255533,9333310,1183659124,922702076,922717802,922719114,1996460936,782473734,-998047744,-28931830,141934603,965634721,74710086,-1907095809,-1905654073,1183514624,1575324670,1426064074,-326898549,-1588177148,101421960,846566282,-16353537,1996425334,175570700,-1710328065,11939,-1995783037,-1072956346,1586170485,138840838,74647353,-1907095809,-369342837,1586167945,138840838,915081097,908824142,2123075178,-1962611716,965627446,1098254454,59665057,-1953265658,1385400854,209125200,1443526399,2094746,141961472,-1593149951,1789103694,242679694,-14620658,-15992693,1586218356,509702,-58816256,-335645047,-58816214,-1577159031,100896362,378246024,1347589002,-15960321,1996425846,536254984,1183514624,1778778376,1589652366,1575324511,1426066122,-327029621,1448542346,-989429094,1849590541,259326010,-1796731248,1958742822,112646,-2097067287,7267390,1183662965,-1202710912,1344179686,-149559282,-1988446047,-1946191738,2142929136,141843711,-8878337,1551909574,-8866165]},{"sector":10,"data":[-1926641473,-661880718,-4603762,-222284801,735180718,-335640583,927643766,720280144,-998047744,1988528386,1958743039,-2142859863,-14790634,251623094,-1913209112,-796098434,-4603762,-222284801,1238497198,-1232473717,-2104819846,-2037842049,1547501436,792465524,1120275572,-1232380800,1120337786,-927006591,-2139714263,-1064380276,872415161,-139529536,-1946604591,-1174501415,-1359806465,-775189681,329642729,-1918569783,1358921350,1350583949,3036314,79987456,108314635,-8485177,-1070923776,-2142859952,785160784,-998047744,108954372,-1710918656,231059488,1342177720,1342182584,-41031666,1350583949,182980240,1958742826,1845937926,-16777158,-7108042,-1701607370,231074683,-1968979925,-1819761773,-8472833,1350583949,3067034,79987456,980303491,-138405119,-1956684072,46816741,-326413056,8973441,113727063,93924,1345800888,2813594,46433024,-8878455,1786036235,377505421,-1224794544,-401670280,2123232679,-1898935168,-17984,-1359822797,-1958096393,2092337649,2139261695,2122746111,1952201983,1949252624,-2143107572,2092338012,-2126330113,701021952,-1937738099,-1178562856,-1070333953,-772296974,-645138133,-4587897,1336865535,-372126837,-921459214,-1098668814,1946222456,-2142860019,-401698736,-1073011491,113729909,28388,-1988446047,-1946191226,-440434472,158620813,-8747265,-1914271802,2057210716,701022207,-1914259571,-1064380276,872415161,-139529536,-2013713455,-219557378]},{"sector":11,"data":[-221703259,-1914259292,-401698736,-1073011571,-1070921611,-401698736,512435329,-2017035592,1577094630,1575324511,802994379,521837136,850919424,446320688,-1207959521,-1706020768,7962,1345366200,2038426,820819968,521837136,1439367168,-356979573,-11526615,1996425334,243718,1669306960,-1073017403,-457691020,-11526615,1996425334,243718,1669306960,-1073017403,-256370572,-11526615,1996425334,243718,1669306960,-1073017403,28837237,721611520,80371136,-326413056,1443294339,142016286,721843967,-895856448,-1995586248,-1072956346,1183516029,-1958679800,1174666310,-96040696,126539915,-956414328,1996423175,142016266,-420999536,-62485639,-1962392063,1183451230,-1962440450,171737331,1015022964,1174631693,1988752363,1589373704,-899816053,-1957363706,82609132,185484939,1023898816,1853095941,297297899,922701824,244355464,-1199980312,-1873805310,2046617614,1342181816,1279366554,-62486228,1200281739,-1964758522,-316013489,-1992244949,297336390,922701824,1996460354,1088950014,-1857903617,1342182072,-1857931521,251557631,-1543557400,330862914,922701824,1996460354,484970238,112895,1183516907,232301324,-443812885,707165,-2081649835,28836588,-1432727551,-1993585604,-1072955834,211421045,-351418902,-25755845,1342243256,1279023770,138840876,-1953396573,1117980230,-25755759,1345101496,-1705983957,743194076,1345821880,-1862371585,1836443662,-1694599425,743193836,-899816053]},{"sector":12,"data":[-1957363708,239504364,125091851,1946158397,-1206064360,-1202716670,-1873796121,2027415566,1342177976,333975184,205949817,-1207052125,-899874815,-1957363702,49054700,1342243256,1279044250,-28931796,125157387,-974517094,-13636851,28900982,1520062465,-13874116,-1632043402,-1070903252,1037867600,-558355380,1996443703,-401698562,1996451055,1022139134,-443863988,-1957311651,82609132,-1979294069,-661940217,1754761206,-1962183678,126486110,2108824,1586169579,-1744336378,-1996472275,-619971514,-1073009804,456992638,-2145223424,1966735743,-28930788,-59310256,3088026,79987456,-1710852353,11651,-352140157,-18429,-899816053,-1957363710,-1930657300,508974848,209619719,872415161,-139529536,-1903605295,-1232208012,2123104126,-18164,-1359822797,-114568713,-372113785,-921459214,2122556658,1148518410,956712587,2147447942,16247043,-1710459137,231026530,-9009527,1988876427,1547206668,-348126347,-1983673598,-1946190714,2122499827,-2037710593,-2037776522,-2037645452,1174667132,172394764,2123040542,-18166,-1359822797,-1991650825,-1946191730,67073158,-2037825343,1183580026,2055616774,-1956872449,263617,-1946270071,-265615754,-1084820221,-1265814718,-661848194,872415161,-139529536,-2013713455,-219557378,-221703259,1153851044,1153850497,2122514562,1534328842,-2106290858,-1190494581,-1070333953,-772296974,-24643285,-1510807087,-1527592685,-2093159586,1946159742,1958120246,2109374719,158620927]},{"sector":13,"data":[-8486202,1955004252,1958120447,2125630975,-1962467585,-4650370,-222284801,735180718,-771848199,329642729,-1918569783,-1929412930,-1950314800,-4650890,-222284801,735180718,-771848199,329642729,1587868361,1575324511,1426065610,-326898549,-1957275780,116065910,1946172544,1015039494,-1980402656,548931190,-1705619456,11360,-1996176253,-1072985018,-661977740,503318470,108956423,872415161,-139529536,1317620177,-1874409594,-922025984,-242544524,-2147066229,1969028984,-1874409723,1996423169,751606278,-998047744,106859266,1968979840,2105450796,-388896559,-1191182043,-503906294,-1614489461,-1977183286,140413703,1204160392,2005744129,-1962467838,1424557694,106859265,1946173312,25133062,-1588169670,-388924034,19261649,702720,-259268105,-1815300865,-1815431937,-1815563009,-1815694081,-1928825089,-1705996730,231026202,-1953595765,2038433886,326393087,-2147066229,192151615,1191174027,142510990,-1956904506,1988857438,-349139704,106859412,973176704,-588709004,1183666944,-140881666,-1995586257,1451883078,1975651324,140413721,-1979287925,-972584956,-969277113,-967048633,-385874873,1586168012,41910278,503805276,-369390841,2124480676,-773271171,75240,-150992199,-1948742687,1452014150,-897107460,956724627,1955843223,-94452721,-158889178,-1752488443,434832888,-780304735,636015080,179896321,-1948125440,-964195368,-929592429,-2008643181,-7711095,1996487798,-11513094,1183647862,446320782]},{"sector":14,"data":[-1962031826,2139096670,1316225026,-1953597813,2021656670,192175359,1191173771,141986702,-1956904762,-1924135330,1183384135,1586190468,141986702,119419021,-343638389,-1962467832,1988822654,-18168,-1359822797,-114568713,-372113785,-921459214,-14768910,1183647862,-1706027372,8095,1735770123,1553235585,-1203669668,-1924136868,-1705994682,11360,-1996176253,1555599942,1183535104,-1706016622,11360,-1996176253,-1072983482,1586170229,55035400,-1959990528,2005731422,-1962467838,183210622,-1936425331,-1950314800,-4650890,-222284801,735180718,-771848199,329642729,-2086341943,1946194046,-1962467794,-4650882,-222284801,1238497198,-1954132343,140413937,1560246400,-645197452,-1954134273,12978294,-2040624292,1577058502,1575324511,-167770934,142441990,1048779381,1946385792,-2143386861,125109373,-1751236989,-1207601920,48955393,1439416363,-326898549,2106368260,-2080618871,58556478,1048774516,1963228544,-339727612,-58817734,-2096729087,1963129982,112645,-1070923029,201213577,-2095221312,41779262,2122520181,108266748,100433539,28837237,721611520,-28931648,-1946270069,-2083824155,58559550,1220022901,-1717940076,185451967,-1205242432,518717442,2105556611,-2095221502,108891198,-1967647115,-1717940076,185451967,-1207339584,-1873805307,1566500878,-326412853,1460202627,-10032298,1589904974,126494218,3091864,-375159,-259323322,-422451503,-1962524021,1183385682,-27883012,-1929609532]},{"sector":15,"data":[1992685662,638053126,76023178,-2144975289,-210436035,-1945733495,1586366558,-58816008,-335657332,173982744,638207743,1965375360,173968140,624918566,1191157109,173982730,-1006138842,1191118430,126363142,-713703414,-443850914,-1957311651,116163564,185484939,1023898816,1584660485,45638379,1119375360,244338720,-1200455448,-1873805310,1924982798,1342182328,-1276637552,1095794,1100323408,1183394892,-1965519876,-467007929,704925578,-1983829011,280558150,922701824,1996459614,-119009542,-28931593,1342181816,-100609,-401671562,1183578087,232301324,-1962933832,181034469,-326413056,10939521,-1705983957,743193770,-10713463,175489035,-974517094,178189,-1224780565,-1070858404,1012570704,1586179148,809467910,1187448181,506958854,-1207535873,1344157538,-10582387,-401715178,-997982549,1585876236,-1906400257,1345874616,-10701057,820514448,1518766438,1555496959,1022139135,-2037699508,-443809958,182877,-326412912,705054346,540132,171773810,1025537536,460587021,1946163773,108953622,-2146668000,2013136510,108953606,721712511,-1207702592,-899874815,-1957363710,82609132,1183536727,-754274040,697979104,-1962031637,126421598,184702857,722105808,38242752,-1947662455,41418496,2073704447,-1962031637,-1992292794,1187511878,-1962933764,1988823166,-1312388346,1356911370,-974444134,173968141,1468598153,1976568578,-25786092,-956053877,-259266351,989939085,-349998394,41418524]},{"sector":16,"data":[2073704447,-1962031637,994639430,-1962379578,-25785346,-1962415282,-62470146,2122514432,-1384840964,-1995932023,-141883786,-422376783,-349595050,1586171333,-1995994870,-963968425,-443850914,445021,-2115204267,1459654892,343342934,-15567105,1996427382,1829287950,-62485168,773495376,1183649221,414732446,146296864,1996443757,142016266,1342185400,-986235494,1829287949,440400,1887866192,-1768271617,-1962934139,1962281968,-1639543527,481343568,702544,5748816,-1759995312,-259325952,29230059,67011328,1988740980,33457146,113708148,745110196,-369473909,1183514991,-1940485238,-1988485469,-998629354,958795358,108337479,458701094,513875316,538348410,1200170618,1468605977,-2042197221,222791974,646465163,-1593096311,101415454,443906592,1352550029,1344241848,1342179768,1342196152,9902234,-96040704,1048811755,1962965536,507412744,1920991354,-28915961,820707360,2048933507,1913746688,507412744,1996750970,-28915961,418054145,-1954931039,762978326,-628948991,-1710575360,12694,-28931776,83787395,1183516791,-1673098754,1187448299,-1962933092,1988861054,-1907312386,240539472,-1543638040,-1072988876,-174450059,185451931,-1696172608,231074316,2058618567,95956073,9038080,711872160,1103662052,2100601153,-235417045,-1560278995,-1799843444,230182946,28856320,949637120,-2147483492,-25330138,1345998520,-1202667477,-1873805310,-1721374706,1345998520,711872160,1335906532]},{"sector":17,"data":[208238,-401698736,1320719406,28856378,244338688,-1198350104,-1202680378,-1873798642,1086318606,2011696784,978237502,-401698736,113735131,196,12977863,1911095296,-1956684033,281697765,1379335936,1345781646,-344221042,922684869,-560304768,-2097151955,1320682180,-1070903238,-401698736,246977097,28856346,244338688,-1198375704,726678094,-1873784640,-1817122802,1343884984,2095582864,2114879605,244318589,-1203837464,-1706033151,42608,2058618567,1439378537,-326898549,-950642896,63558,1024214667,57999872,1979831273,106555651,1946158909,16923914,-890698891,-1200035071,-1924122034,-1873742778,-1828329458,1345998520,1358186125,1342185656,-1873756117,-1792350194,1349322936,311420942,1343884984,-1914171760,114499,1349353656,1342185656,1349322936,3048602,113541888,-166989685,-323481484,-1202302947,-1706033065,39062,-8128373,-1982958589,1988749438,100631530,-8190604,235631876,-1191249176,-375848959,1335887339,-1576719250,113732982,-37496,-1901871061,1821156204,1836189383,113770495,-37516,-1553105245,-2036109956,1837409133,28856400,-401715200,1183385019,-430536220,1979710781,-359675,113750388,104338,1183432747,-263812622,728597153,-229230126,91366007,1945126457,-262239461,-1907345724,704678438,-401714972,-1072956541,113712501,38802,-1673473,1990255734,1357130349,-1752025345,220391438,-2080415511,-2097024954,-2097089962,2130768510,-2119336741]}],[{"sector":1,"data":[8450174,-1528049037,1342177720,-977578342,105286157,-1964095864,1183319878,172410860,37486592,2122336885,192028654,602832512,565708147,-2144212223,1915219582,-293699573,-1207602389,552272162,804159104,2122320754,91435246,-352246088,-293699569,-2146340300,1932914302,19445771,-1559607671,116079212,980158151,2122514432,57999370,-77591,45616758,1996443649,142016266,235304703,-369223448,113770169,14956,-1577144087,378236044,1183411342,-61437446,-1995946357,1183579718,19021066,32047989,-385649151,222102472,-385649408,456982772,-385649408,457047673,-385649407,557710961,-385649407,703266954,1821261443,2132966400,-1942060281,427032684,1836189383,113770495,-37516,-1901871061,1821156204,33048263,-125926656,-385649408,1187447750,-16776968,-9662922,-9663434,244814390,-1996218648,1451877446,-180762,-2065104012,-359677,2095645556,-32773885,1821261443,2143452160,-1942060281,-1183580052,1821126275,-1910603007,-1460993940,1821116035,-1911127295,-1662320532,711816864,737184740,-1912194624,1998418540,-1942603514,-954895764,129094,738149517,-1945753134,-1911154324,-9049748,1821261443,-385647360,176160619,1821130371,-385649408,1187512159,721420792,1821287360,-378762077,1990262607,1222912621,100782635,370240652,938044558,-28903425,57999872,-1862437655,1825892366,-1694667543,231033579,-134388503,234946118,417923956,-1908998145,-1942552724,-1841889428]},{"sector":2,"data":[1156058775,-465139453,1038505609,141950973,1979710083,-46667517,-1752023421,-953453568,9933318,1095680,-1957670247,1452008518,-2012871706,-1978264724,-1706012052,12084,-1989374813,-378761706,-1070858562,-1981921655,1183571014,-430535708,1820853763,1820988947,-1981790583,2090984022,2115406701,-532272275,199382555,-1591247662,378236284,1177251198,-497673248,377475595,272434556,-1592823040,378236284,1183411582,-497645088,513894635,538348410,1309575802,736963182,14320577,-2097151187,1183383770,-631862824,1927435833,956659496,561438790,-1948760437,1183439446,-497645088,-1955758943,963477014,645915222,1178185084,-350260256,1850646694,1077994538,1446761003,1997501154,-532268283,-1070921610,-1981659511,113762374,104338,-1901871061,1821156204,-1980610935,-2002653114,-770991763,-1986434948,1451873350,-1853054506,-942651767,53830,-772776309,-1870165021,64105324,1444142150,-497665058,91373687,2011186747,-262239431,-2020875311,-768906096,299648513,1183571542,-766080048,1821115905,1821251089,32523907,15881859,-1949022581,1446630998,2080866290,-263833169,1183558262,-497644576,2128500281,-42931965,1178142844,-385649956,2090990950,2115406701,-497665683,92219516,1927300665,1836884257,1836979851,2145277497,956660757,242474054,-1955756895,-1553103338,378104972,922709134,922709134,922709132,-401696878,1183383907,-430536220,1979710781,-359672,1458111349,1836884475,1836979851]},{"sector":3,"data":[1977632313,-497665784,-68615307,-428408836,-1192986881,1385758721,1978142288,-263812857,1039292041,91619327,1962932867,-263812328,-1980606837,1451877446,-1945730074,377684332,-352293746,-1908998365,-1942552724,-1841889428,-186118505,-465139456,1038505609,141950973,1979710083,-85464829,-1947974005,100918870,370371720,1446734986,-385646878,-1921188726,1927300667,-58660605,608011243,-385649407,641596498,-385649407,675151018,-385649407,1883110590,-385649407,1950219577,-385649407,2017328415,-385649407,1357511985,-461470724,-385649410,2122578706,57999334,-1946482199,1452014150,1821156348,1821251209,414465667,-385649408,62454377,2025345024,244338693,-376760856,1048836697,1962949228,-95426301,-1705983957,231062358,58048523,-376599,45616758,922701825,-1070908820,1860784208,33635835,-538377355,33701370,1709769589,33766907,-806812811,67124730,250198132,-1956684038,181034469,-326413056,1445653635,425603,1005126516,138840833,-1324722549,815831556,1183383552,-27883012,-1954931039,964304918,275971670,1178142071,-1207340292,-4521986,100919807,711816864,-754667036,64105440,1444150342,-129594882,-1577429367,378239518,1446607392,1998222074,-129615611,513872754,538348410,77178,-1996432765,1451882566,1820893690,1820989067,2097043001,956661543,544406598,-1955821407,57444886,-2089975290,1446707410,-385648902,141688981,1995982395,9169155,-1946401141,1183448662]},{"sector":4,"data":[-195655182,-1955821407,963414550,562033750,1178142076,-1592101902,-388924108,1177145899,-195683854,2113164857,-1983894776,1183446086,2048827890,2048923275,2100561451,83942019,-763166719,-297367296,972052105,326300758,1178142071,-1962117390,1452011078,-230258192,-764279,1996485750,-622326030,1975520012,-149498,-939586583,-9604602,1946601471,-1946157203,1452014662,-2012861442,-1978262676,83356012,1836203651,-2096466433,-9604034,115934069,1836228865,1836324491,2097829433,16247043,1178142847,-385649912,1923154157,1947634541,138819949,1446579061,721843466,-1226204736,1836622084,1836717707,1963476537,173422863,1856047733,1880525677,77326701,-1955759967,963475990,595331670,1178142079,-1591970296,378236280,1183411578,-396981786,-1955762527,-1989316586,1451876934,-1592398876,378236274,1183411572,-396981786,1183432747,-498693660,-1804545,1183572598,173443848,468076075,1347610710,71755790,-1981659511,-29498282,-2096597505,58064890,-2080497431,1979703934,-461470970,-12552961,1996481654,1836490978,-919870422,-401715119,1183384596,-195655182,1979711293,-359675,1183522164,173443848,-1989314397,-1955759594,1452008006,1835967460,1836062345,-1577108503,-146772600,730958886,173423570,1491665779,990410497,58132550,721506025,-2002544192,-1978234516,1836229484,1836324489,-1942552752,175570833,-1710721281,12492,-163149496,1232912395,-1986949983,1187503686,-1962934048,-422447498]},{"sector":5,"data":[1821427329,1089881739,-2472311,1996480630,1347590622,3133082,1912996096,1947603309,-162624659,-768932725,1820853761,1820988945,1224928899,1317662329,-1976107018,-2009661588,48762476,1975520011,-31069949,-1955761503,-1553107946,378105208,-1070895750,-1553108829,1347448174,-1942552752,175570833,-1710721281,12588,-401715118,1183384344,-464090654,1990217810,736373357,240144841,-1996291096,1451881030,-49676,-92076683,-1961003777,1451952198,1836622602,1836717705,-1948105077,1856234582,1880525165,47180141,-1957642197,1452008006,-2012871708,-1978264724,-11513236,-1704099786,10762,-1962359677,1452008006,-2012872220,-1978265236,-1976107156,-2009661588,1390939756,1975520010,-42604285,-1962391925,2023950934,2048297325,1836229485,1836324489,-342245333,-1547687011,-2002555766,1837670764,200689289,-1960870720,-2115579408,-1955819322,721718216,-2012872238,-1978265236,49185644,-1980860087,-2002651570,653738093,1183420812,-532232226,1451950080,173423072,92224636,1980253753,-2009169099,779893613,-1955756895,963479062,578554454,1178142079,-1592036856,378236292,1183411590,-531199522,-1955758943,-1553105386,378104968,922709130,922709130,-401707896,-1073018463,-991362187,-565801988,-1545578869,378105208,1923313018,1947634029,-1547687059,1856204144,1820893549,1820989067,-1981135223,1183575126,-531199010,2097829433,-15144701,1178142847,-385648888,-1070858482,-1982314871,1183438406,-498693660,-1804545]},{"sector":6,"data":[28893814,1347590400,25618446,-1980873079,-29495210,-2096597505,58064890,-2080677655,1979707006,-260144293,-1957333505,1452008006,-2012871708,-1978264724,240145004,185141480,-385649216,1183579179,-531199010,332809731,2024003670,2048297325,1836229485,1836324489,1889779755,1835967341,-1981528439,1347478086,-1728052808,-401715118,1183383832,-262764050,-1947318645,1183445078,-464090654,-11485141,-2087613386,-2097031610,-16721834,1996478582,825006806,-804585472,1048785781,2101046664,-2012807380,-2011264147,-1948003987,1177281094,-2012871702,-1870165652,-498693268,65296011,325879814,-1989375466,1451878982,-565802004,65033867,1444140614,173423576,58527103,1006569961,57870406,-65047,1996481654,1836490978,-919870422,-401715119,1183383684,-195655182,1979711293,-359675,1183526004,173443848,-1989314397,-1553106410,378105220,1183542662,-464090142,1820853763,1820988947,-1989313373,-378700266,1183579490,-464090142,1820853763,1820988947,-401715118,-1073018903,216597365,-1983894533,1183441990,138841058,-1559603573,378105220,-2002686586,-1978234004,1836884844,1836979849,1593668073,-899816053,-1957363706,283935724,1183536727,1342571274,1377209230,-62486130,-1577167223,100887938,1183419984,-162100748,1183432747,-129594886,-1947056503,1175127622,-1962314488,1451952710,20113676,-1946925429,1178203734,-1608551428,-466981298,1988884619,-129594382,972707467,1501497430,1178142076,-1991084282,1183576694]},{"sector":7,"data":[139889414,1962427961,13822211,1962563129,13297923,-1946925429,1178203734,-385649668,-2002714447,-1978234004,-2113535124,13796205,2048923195,-1696005261,990476032,1937382918,9431299,-1157628232,-1175846913,-60898304,705137190,605668,222103668,1180398592,-963965205,571801,-785647113,-234628361,-1946401025,1925659590,-60898256,-8421338,639398925,234782592,-2144987788,259329343,-1946401025,-2144928674,58001983,737953535,-129596426,-94993663,-196703488,972445323,57867334,-369146647,-164888785,33048195,16406147,654073540,167870336,1191158389,-1952584708,103545926,-768897456,-2002704149,-1978234004,-2113535124,13796205,2048923195,58068594,1006587369,1920605702,-12261117,-369098824,1600061249,-899816053,-1957363704,2028766188,1183536727,1342571274,1377209230,-62486130,-956410231,-1929316282,1183422022,1837277682,-1907358205,-1980479863,1187509846,-956301168,64070,-1873756117,1232005134,425603,1407779701,2100601089,1837237817,915085171,516189570,-1070952880,21006374,915136139,-2010739120,-1870755072,-369985909,1589903627,126494460,155051050,1024685056,57999373,1006679273,-1342016736,1174702112,-963956501,1778763051,146381056,737801984,-1982138415,1187484246,184549524,-1340899630,1472891680,119471755,-1956664590,-1807351358,1191178243,734432252,6948293,1850609290,-1053037270,1589913970,2139105020,477367807,-25198554,638940173,1963802496,-62456049]},{"sector":8,"data":[654073483,1963605888,-62456061,-1962933825,1452012614,-62506506,29295474,1962871552,-1946211476,96807878,243925098,-315986354,812892475,-466959990,80136331,-963951072,1778763051,1942043392,-990909669,-2144928674,175443263,25133094,-16550646,29359174,-9508608,1345998520,-1974419413,-466945978,-1924120512,-1605331386,-466981298,1354771280,283643536,-129565051,-1953085811,-196703248,972445323,192150598,940066442,57931846,-1979785239,1988726910,38726130,-1986640243,915141190,-427725234,1116537087,-1773236842,678871355,1850619531,16770689,-1986641267,1317899334,-1983829098,548441670,-1920053621,118920830,1183558386,-230293106,1183364016,-448362288,-2002696568,1586206278,509682,33179335,-369390848,2122514749,57999610,-956266519,64070,737953419,-1718726650,1820853763,1820988947,-1987557751,113150550,1095680,-11513191,1996458614,805345928,-771031040,92019839,1929382461,1095701,-11513191,1996458614,805345928,805568512,280499179,1347590400,-7702785,10127478,67108912,-1740470217,-1728048968,1183666258,-1399172984,1308622896,2097282691,-1804170844,9586375,-2080535808,1589927151,126494460,713836168,-754667036,671208,-1977218189,-740021753,-349174552,126494219,78767146,923068627,-1975057016,254053446,158534204,604473894,-349174769,-60898294,604473894,-2009660401,1183532805,79272338,-2080770304,58000378,-1006385277,-2144928674,91365439]},{"sector":9,"data":[-351827418,-1959874558,1116246646,-1840840749,-2080618753,2081460862,-1840855250,1320681472,-1070903238,-129594800,1077994538,-1773761200,1850646608,726721578,244338880,-24946968,1187510342,-1962933766,1452012614,-62506506,1183452019,-129615864,-1377238157,-226588162,9600643,-1847000203,-1840870656,734147481,178626,-1036781357,62505515,-1947601152,-1840870416,-268181295,-1985723763,2122576454,1115492498,721424568,1183420998,-1837724792,1317740720,-746943096,-1426979050,-1953333621,80147062,80102944,-947173856,309657,-92014089,-2096925437,-2092497978,-495185665,-1986888055,1320743542,-1070903238,-129594800,1077994538,-1773761200,1850646608,726721578,244338880,-24994072,1183512646,-129615864,915111027,-427725234,1116537087,-230258283,966149773,645067334,731268749,19788358,-1982269696,1586202694,-1960791822,-1946318770,-234414341,1183579306,30996360,2122576454,242548742,1183364016,-448362288,-2002696568,1320719942,-1070903238,-129594800,1077994538,-1773761200,1850646608,726721578,244338880,-25025816,1183512646,-129615864,28890226,244338688,1581594600,1575324511,1426065610,-327029621,1448542374,16664263,1850646528,-1072962518,-2037833612,-2037776548,1988886362,-1960791810,-1912644978,385835706,-1951731193,33512070,1320746566,-1070903238,45633616,1319129088,1357130350,-1705983957,56160,1345998520,1342177720,-1924087765,1358914182,711872160,1346914532,-1873756117,-2120882162]},{"sector":10,"data":[-1943435585,-1178562856,-1070333953,-772296974,1586399561,1354771455,-1578627440,978237508,309328,1354771280,1344898744,1358954424,-1873756117,-2124552178,-1927080257,-661864842,-4603762,-222284801,735180718,-771848199,329642729,-1918569783,-796082562,-4603762,-222284801,1238497198,-10580343,-2030046837,1120337758,-1232392770,-2030043298,1120337758,1996431550,794991110,-2037838395,-661913760,-2147060085,74800184,-10451201,-10445173,-1962510709,-1912643906,-1099199184,-661850233,-4603762,-222284801,735180718,-771848199,329642729,-1918569783,-796082562,-4603762,-222284801,1238497198,-10580343,-2030046837,1120337758,-1232396098,1120337758,1183645886,-1097183042,-1207056937,-1873805311,1136584718,-443850914,182877,1345998520,1342243512,1342273720,1347469355,-342890482,978237643,16955472,24688720,1354771280,2062028368,1320733675,45633594,465063937,-1070903295,-401715120,1439427429,-326898549,-950642936,130118,16664263,-125924608,-2080737653,1946221694,1354771257,-16222465,922682998,177892736,-2097151958,-12777276,-2096794113,343212026,1183577643,139889414,-1989375837,-1989375466,703331446,1751135883,-2101861397,922701933,922713396,922717778,922717776,-1667601024,-2097151954,-259323196,33441479,1962281728,489469970,1488475728,-1768271872,-1962934120,-1090262024,-8191999,-385649405,2122579837,158662908,16678531,1860764533,-125924865,-2080737655,141820415,-364255218]},{"sector":11,"data":[65781803,1577058744,1575324511,1426064586,-326898549,108954376,-1204653056,-1924122034,-1873740730,2109859854,1345998520,1358710413,1342185656,-1873756117,2145839118,1349322936,-45357042,1343884984,1239944848,-1908998354,-1942552724,-1841889428,-320336233,-129594896,1039816329,91619325,1962932867,-92864748,-1594329345,-466981514,-1841889456,-1914171753,1575324664,1426064074,-326898549,1996445186,-401698810,1183386453,-336557058,-96566510,309598099,820514390,244338688,-2096395032,-7079362,1586227061,-773598970,-761281309,-28931263,38242598,1342183352,-823652720,-443851244,182877,-326412912,-955978621,64582,-1812318465,-18346352,-28931830,-1812318465,-1494741360,178196,-401698736,1048777885,1979487226,-62470379,-55050239,244338943,-2095806232,-57411010,1048834164,1964413946,1488914,-401698736,1996428401,1390939902,-2093880321,1962998910,-27358438,-472783919,1104322500,647232161,1342326665,1256722064,-1961759980,-472777122,-1614486575,-953794094,-261561,-1946270069,1439391205,-1957237621,334169718,-96566384,309592211,1424494166,244338943,-2096451352,-7079362,1566500725,1426064074,-326898549,1354771202,-85455216,-1812291309,1358841481,-286781808,112659,-401698736,1996428261,-1360523522,-27358209,-472783919,1104322500,38258470,-443809797,-342832291,-1159197180,-96566273,-176816237,-149301,-401698736,-401730639,1439432677,2122574987,108331784,117866115]},{"sector":12,"data":[2122520692,108331784,302415491,2122517620,225772296,168197763,28837749,80370944,1572875008,-1207958326,-1202716669,-1873805305,242345998,-1204129629,-1202716669,-1873805294,241297422,-1204129117,-1202716669,-1873805302,240248846,-885361501,243856,505936,-401698736,104533567,729102960,1342178232,1342182072,753405584,1913010958,-1206356678,-1202716669,-1873805302,236578830,980682299,28837237,730909440,1435552704,-326898549,-1070901480,-1980742007,1183444550,-1832213506,965920931,561317446,-1202667477,1344157078,-1085226965,-661899882,-4603762,-222284801,1238497198,22210897,-96039536,1354771280,-1710852353,11908,184992899,721843392,24177088,-28915824,45613057,-1070903296,1996443728,705338106,-998047744,-163149560,-1980213623,1451881030,1354771444,1996443728,705338106,-998047744,-297366264,309328,-193035440,2131655680,-226590457,91421696,-352305224,-230257903,-1309387125,-772091638,1976172248,-1873788680,-466687986,1183437355,-195655182,58052619,-989901335,641847838,-472834165,-1614486575,-1977204270,1183319623,-398014468,1183645697,1996443880,-260636686,-1149185,-1667564938,-2097151954,-1073018172,334037876,-394361857,-385649408,1183579914,-230258200,16008903,-297366784,-1980737909,1451878982,-1005458452,1183509086,121120508,1325337716,-364445720,15236739,1183574389,-297391126,100782635,370250440,1589940938,-62485782,1963407398,-163148915,737695371]},{"sector":13,"data":[462604294,194169366,2098036690,-22484733,1929380669,-23009021,-362753,1996484726,734235630,-11473338,244380278,235605224,-939674904,3829254,-297366784,1961903627,-260636917,-1695648001,231074683,-36182002,16678531,1996426100,769563386,-998047744,112642,1575324511,1426064074,-326898549,-919906812,-973316468,48957046,-2142879344,1962999676,108431864,-1912054132,1317665886,1589742590,-899816053,1435500548,-326898549,-950642938,65094,425603,1988829566,29788934,2123103814,1991792392,-1202708934,-1924136956,-1873740730,-703862770,1592423758,1575324511,1426064586,-326898549,-2091493620,1979451518,33286403,1074153099,-1946925431,1988823166,-773879030,-1948003869,-1958620537,-1992174441,1451883590,-60898050,75467558,1979514755,29419779,-1767828619,-1744434374,-1593150406,378223254,501955224,-773878896,-991702557,641847967,-472834165,-2020875311,-1752481326,101007828,-129595136,1392137865,384306768,-163149313,108461910,-12851186,-92864682,-493825,1183708790,244338934,1456825576,507149496,243792,-163148464,-401698736,-544484015,-472783919,1104316299,1104451467,-1979955575,1589968470,2139301628,58063874,637607657,-788373621,-1948003869,-1958620537,-1992174441,1451883590,-60898050,75465510,1449948412,507150520,178256,-163148464,-401698736,-11086595,-401734026,-1202258247,1344158339,1342177720,1358317197,-488108400,-2051516716,-1202708934,-1924136958]},{"sector":14,"data":[-1873742266,-724572146,-773878954,-991702557,641847967,-16615425,-401673098,-11075911,-401734026,-1202258315,1344158344,-385875528,-1953496951,-773598753,-761281309,2139301441,326499330,188389025,1949997062,982950154,983045771,-1953486357,-773598753,-761281309,1602954817,-773598974,-761281309,529212993,-472783919,1104316299,1104451467,-1996487163,1451882566,-128006918,574586918,-2144991628,326574143,982169686,28856350,1183666176,244338934,-2871064,1996487286,-1159196936,-163149315,-92864682,1358460671,1358317197,317197968,-1934076204,-1202708934,-1924136958,-1873742266,-738203634,1962737539,-32118525,1577614985,1575324511,1426065098,-327029621,1448542342,-1710852353,231026530,-1953872247,108432344,1968978048,-1975058685,378816141,1996430928,-1971912954,2094746,-1971418368,596919238,-964002165,724473155,-1971418122,268500609,1988691829,41675142,1095824,-1773957808,-1332062640,-2097151958,1183647428,-1070903046,-1807315632,770480720,-998047744,1958742790,1614709514,-898297496,-1983780026,113739382,36436,-1832239485,-385647360,176095495,-1832370557,-385649408,1183645947,-1070903150,108461904,3048602,113541888,57982987,-1593777431,378245832,-2037804342,1451884414,-1941533312,309328,2094140240,-2130149616,16744126,-1207536900,334168127,2122746768,-2141811713,-86963535,-906045231,1346435189,-1578627440,-1982714913,-1979744634,-804552618,-2048326795,-1832345344,-1832249717]},{"sector":15,"data":[-1987950967,2123072598,-92894318,-1953490453,-1924103610,-1873770938,-759437298,730351243,-2109330990,-2088479207,2080408702,-2096726202,1946190462,-2008642242,2125922128,-1904803841,1468823295,3054746,180650752,594919435,8945283,-11133580,1996459638,-2008642676,1446761003,2091417476,-2109326587,1183555955,-6296696,1996459638,-344221044,1996426693,769563282,-998047744,1628610818,-946846071,35398,58703883,-956248343,-755008378,-92370111,-1953859957,-1946190690,39291655,-1979955575,1589968470,2139301628,57998082,1459656169,507154360,112720,-2008642224,-401698736,-24915455,-1592625668,101399190,158612120,-1959094623,-348481514,-773944548,-991702557,641847967,-472834165,-2020875311,-1752481326,101007828,-1941534464,1385059977,1458048592,-2008643077,-1904804009,1351382783,1351108237,-1360523632,-1850189871,-1202708934,-1924136959,-1873770426,-778311666,982759511,45633566,1183666176,244338824,1473349864,1354771286,-75503602,-8616317,1983596036,-385647216,1988755265,-92864630,333975184,-92864559,3006106,46433024,729137163,-1907081597,-14387968,-795212170,-2097151955,1996423876,-1807315706,767334992,-998047744,1975520004,112646,-1919938581,-1705995194,11728,721601667,-1956684096,46816741,-326413056,1460071555,-28915882,1187446784,-2096626180,1979647614,105301765,2123070720,-28406788,-973447540,250284150,105790352,-645197955,60293258,-645185032,1962948736]},{"sector":16,"data":[-94466324,-1979941239,-947126706,632934955,-1947076860,-1956684094,113925605,-326413056,1443032195,-787843445,247890406,-1996190864,2122579526,225705992,1979711293,105286408,1183384713,-28931074,1575324510,1426065098,-326898549,-2091493626,3841086,-2048326796,-1677277440,-956300998,69598790,-1174405192,247399461,-234414480,-28915797,1048772608,2113954066,1104330593,-989956469,926492189,-24950923,-1592625668,101399190,158612120,-1959094623,-348481514,-773944548,-991702557,641847967,-472834165,-2020875311,-1752481326,101007828,-1202695680,240189439,1358885608,1342177720,1156058710,80184319,305544006,-1985446815,1600061046,-883038837,-326412912,1443556483,84297355,-1873805303,182052878,-1946794359,-773598760,-762868765,-728265919,-129595071,-2080745847,1979512446,983212394,2080785977,982950207,983041547,922684788,922696344,2073705110,-1962031637,1346373190,-974444134,982950669,983045769,225824779,983172807,1183514624,8907254,105286544,983212864,983054079,982923007,-16091393,1996425334,536254982,1586167808,-1774795770,12985914,-993006848,1183578206,126428918,38258470,-953745412,-261049,-472786805,-2020875311,-1752481326,101007828,-62486272,1392400009,175570768,-16222465,-157677962,-1962934241,1992558174,12986108,1398146560,-34740210,112720,-159973552,-29497330,1593799657,-899816053,1435500550,-326898549,636934,-401698736,1183386079,-774337542]},{"sector":17,"data":[-1948003869,-1958620537,-1992174441,1451883590,-92371970,-1005226756,1183579230,126428678,38258470,-953745412,-261049,980289223,1183514625,1575324666,1426064074,-326898549,140413700,-997193493,-1960379298,-472841121,-2020875311,-1752481326,1183400404,-27883012,654073540,-66814077,1183571317,1200170502,1845937924,-1962933958,80371173,-326413056,1460726915,108461910,-10491890,200558217,-385647168,1183383745,106859504,-472783919,1104316299,1104451467,-1979955575,2123103830,-227111942,-1953476629,-773598753,-762868765,-728265919,-163149503,200824457,1444445942,33810446,2113929533,-401713650,1589968799,1200170742,-1006114046,-1993935266,1589903991,126559996,653680324,1996425097,-401713168,2122972985,-60898064,71797542,1023821449,930414588,-472786805,-2020875311,-1752481326,1183400404,-27883012,654073540,-16615541,-401734026,-125043019,58523403,-1191216919,2122973180,-227112454,-1987047189,1988754046,1845938162,-1962933958,1600058438,-899816053,1435500546,-326898549,-1957275898,-472839586,-2020875311,-1752481326,1183400404,-27883012,2123101739,-1004868858,-1960379298,-472841121,-2020875311,-1752481326,1183400404,-27883012,2113354566,-60898288,75465510,-1982302724,720108150,-92894832,654073540,-1962653813,-472840098,-1614486575,-1993981486,1589904455,138841084,71797030,980289223,1599995905,-899816053,1435500550,-326898549,-2091493626,2130708606,-215034,-2087688725,1962935934]}],[{"sector":1,"data":[138840838,-1953474069,-472840098,-2020875311,-1752481326,1183400404,-27883012,-1962933826,48957054,-147110256,1589914493,1602955004,-773598972,-762868765,-728265919,-62486207,-989964663,-2094597026,2097153151,-214824,-335907191,-92894966,654073540,1577338763,1575324511,1426064586,-326898549,142508810,-2091221504,2113930878,142016340,1208370827,1659375184,-96040449,1098825739,-472786805,-2020875311,-1752481326,67453396,-163149568,-990357879,-1960380834,-62486265,494845963,-472786805,-1614486575,-1960427054,1183384647,-161561346,-955807450,20606470,-215040,-899816053,1435500548,-326898549,1187468806,-1962934022,-472840610,-2020875311,-1752481326,1183400404,-27883012,654073540,294787,1988833148,1589921530,1602955004,-773598972,-762868765,-728265919,-62486207,-989964663,-2094597026,1979450495,-1983476772,65796726,1589652368,-899816053,1435500546,1183575179,-1832475890,-1962260853,-1130165162,-1105819268,138840956,-1954892125,413337158,-286781830,181034490,-326413056,1460333699,209617750,-385649156,1586168059,-773598964,-762868765,-728265919,-62486207,-1979820407,1451882054,142511096,-990218613,1183579230,121185802,2122538869,1282670598,1979645827,-1933341918,-163169854,1446577525,638874872,-1006352501,-1993935266,113706055,80494,-997185813,958856286,477364863,-15960321,244320886,200413416,-955877952,20606470,-60898304,41912614,654073540,-1996339317,-1662387594]},{"sector":2,"data":[-60898304,75465510,-2093058564,1946158718,-16809166,1996434804,-823652854,200313851,-1960807178,-773598754,-761281309,2139694657,209125122,48762454,1845938172,-1962933958,-1195840570,-1276379138,-62485616,-1979820405,1451882054,-60898056,73370406,-472783919,1104316299,1104451467,-1979955575,652869206,173968383,-472783919,1104316299,1104451467,-1979955575,2122579542,175374342,-1946394940,-1993996218,1589903943,1200301820,-1956684286,147480037,-326413056,-16222465,-55048586,-1070903041,-1394078128,80371198,-326413056,-16091393,1996425334,112646,-1796731312,113925630,-326413056,-16585597,1996425334,-18426,-420999600,-28931839,1962933821,175570702,-1394078128,1575324671,-1207957814,-443809794,445021,-326412912,-16585597,1996425334,-401698810,1183445841,2143292414,-215030,-899816053,-7340028,1996425334,-25755898,-105519090,-899816053,1435500548,-326898549,-2091493630,9958462,915090292,244021784,451639990,-992375920,645708862,1963800960,12773635,171540518,-1175911563,-834977536,-1310071950,-1239512320,-1137261446,9053820,1023297160,1010332733,1010070565,1006927482,-1960018306,645708854,1183318154,2083470590,2117745668,-1137276134,9053820,1023297160,1007449180,1007189536,1006924891,-16091811,1585100294,1575324511,406227915,-1240560774,-1957696646,-1136737063,964699772,642217021,1948596608,964699713,637959802,2122201472,-1948677323,645708862,2083469696]},{"sector":3,"data":[964699654,-1960608198,-1136751655,964699772,639071324,2116041088,964699665,638284891,1952266624,-834977531,243903858,1600027318,-883038837,-326412912,1459940483,176063318,-1002146305,1586236542,108447228,1200620523,637831750,460653880,4030502,28897653,108431616,-1912054132,2122972254,239504396,-1987029525,1586234998,-60912120,-1945338231,-1070920122,-1953480213,1992559198,947922438,-1947241216,1183402179,2092960766,-1933014233,1586429022,-1965454584,209634304,1946236966,-1900008694,1317665886,1225583614,1586423673,-28407300,1577058744,1575324511,1426066122,-326898549,-2091493612,1946158718,140428305,-2012771802,222097990,171705460,-55048331,22800895,1628610960,-375159,1996425846,108461832,-155588594,1354771280,1358954424,-150345714,1039419017,58064895,1023483369,326500348,188389025,1949997062,982950154,983045771,-1953489173,-472779682,-1614486575,-1960427054,-773598945,-762868765,-728265919,394561,-1979955575,1586232918,-59325434,3702822,-1014291595,-163149496,1652342795,1586284683,-1948610832,-1006597415,942016638,-1907985407,1317662814,-129579018,2122514432,58654970,-1962891799,-1991768506,1187508806,-1958620434,1586231422,639616238,2088058681,1979514755,982950180,983041547,-1767826572,-1743353030,-1875973318,-1418114672,-1980735858,1183577678,-1871123468,-773878896,-991702557,641847967,-472834165,-2020875311,-1752481326,101007828,-62486272,-1946265975,1992558174]},{"sector":4,"data":[947922684,-1960479488,1183445574,2092960758,-1933014215,-628166562,9099659,50880196,121120473,1586371444,-162625040,82724483,-92390585,1843987325,-125924865,-335544648,-730248946,-1980735858,-947128754,1593343625,1575324511,1426065098,-326898549,-1588177148,2980376,-1241105656,-2123795590,8001598,-2090764792,9619006,780229236,134248984,695867553,-8735226,-8602058,58506294,-1954759674,1383906838,134264912,536255056,414711808,922701946,-1130268136,-1105818756,147095676,922701906,-1667591482,-2097151954,-1073018172,113707380,134248984,-2138044693,142219526,-1745600893,-1590790912,-1297909066,406227837,-339178630,-992376051,645708862,1998600576,-834977531,243920754,-1047823690,2108818987,-344083805,406227771,-1240560774,-1961235590,-1136737063,964699772,638678816,1947023744,964699659,1090876426,-479015365,2058751625,918870411,-2144961348,74785336,2058749695,964303009,1937421830,2058789192,251414153,-1946425112,100924486,378240188,1347583166,729462433,240188486,-1979883288,-29491642,-1960741377,100924486,378240188,1347583166,729462433,240188486,1593138920,1575324511,-18229,-443850914,1435552605,-90051445,105265555,2122516084,594935046,33980035,113707381,104436,-946862101,9958406,-1897394688,-1812290562,1560281528,721421002,46816704,-326413056,1628585601,125568976,1577057464,-1593834806,101409044,846553366,1343713464,-974444134,1628742413]},{"sector":5,"data":[1628837513,276152843,1343713464,-974487398,1628742413,1628839564,-1956571999,-1553918442,378102040,413229338,436603745,-1951042463,100861510,378233112,103506202,1883070740,-1951301865,-782167522,-1578905117,-2021039848,-1752612398,1183531476,403046662,302448481,1628610913,46816584,264471296,-1191128445,-355401724,-85795887,-326412861,-1962516853,-454555562,1397273855,1918575053,-1064417267,512304704,-899874802,-1070399482,-1957299989,140413932,-401975669,1183776703,1397404684,-1956961843,846400582,-850179916,930241313,-1910614186,-1946209344,-1907749802,235834330,-628211200,-506333645,-506338863,1595909619,1183731806,-850807796,-1907861471,512304832,1564475406,855640266,1442376640,1183771787,-850807802,46816545,-326413056,856053387,46816704,-326413056,182877,-1947432107,-796195258,182877,-1275051,1996425334,-401698810,-1072996785,244323956,-1878704920,71624718,141869067,-1878499701,140896270,313949,1357679445,1105727120,1317754888,857006854,-1873784640,-4397042,1683371775,-1729622384,-1878660280,67954702,-401698732,-1873541869,6744078,182877,871140181,244338880,-1879025688,136112142,-622326128,108461828,-1878755585,1546381326,-1712845168,-401698736,-1034090490,-1957363708,105286636,-941076400,637978623,1577058158,1426064074,-11211637,-1276639626,-401698561,-899872801,1347551234,1745755903,304021451,-1957311640,49054700,1743658751,-1990114141,-2090777066]},{"sector":6,"data":[1962935934,-401698811,582746079,1996444513,520049670,2122541014,91488262,-1041756528,1575324671,-16776502,-10413010,-1587029474,101278092,-1983160012,-882820058,-1947432107,1084426822,138840673,-1559861622,-899849918,788463622,788490210,788490214,-1957337106,-994036756,190923806,-1962511141,-2027551162,46816519,178176,1426226921,-326898549,861361694,105810880,2123099875,-1995709688,1166608453,214401802,1586230242,-477174,-1949660263,1107474640,896672205,-2097149947,1183383762,-162100748,-1260235123,571711,494019021,-1207957443,410320926,-1962931272,-108928434,209015364,-2115744117,1949325049,2013190,-1962798359,1317794902,-430560266,-1981264357,1317665878,-195655170,-1175040375,-1202651122,1586184704,-195654902,-839496053,-848144095,-1260235123,1914817855,-263812668,515424267,-385649408,1451950543,-162624524,1004699277,594934870,1979600443,768030,-2115871093,1968325883,-463565925,811006849,-1528233100,-428438783,65568397,-779882410,-195655424,871779977,58543808,-1929278743,1174659654,2009545712,146359814,1468263168,268518902,629806964,-1962377589,624559694,2122909301,116127986,-502478973,1935669745,19523843,1073890699,1173809361,29032705,-1705816064,231074909,-905197429,146278005,20310272,-1980217719,1452014166,-28406788,453268779,12060237,173968194,1836196301,-1958759394,1300957790,-94991614,1452006030,522309112,1161516914,-162368254,1971323205]},{"sector":7,"data":[13232387,-1896194421,-128021565,1074236198,4057297,-1962511104,-338654264,28921910,1207379456,1962934018,178446,1979727933,6010886,1342223337,-329409967,190385605,185628096,-1207142958,-1645674488,2013184,-1912563735,-617350586,638028070,637687689,280519,-1957231104,868388600,1605104576,1468737031,214139658,2123046487,1429944050,-1207536892,-336002982,1300969024,1943091974,919243522,-1945993845,-1899983654,1371705048,1464990364,-661855791,1499442163,-1993996405,-2092743931,-186514233,1586190749,1334392562,-95515894,139430198,1918836728,147292934,1358861545,-1896200565,10561216,378217984,1347551234,-974339430,-1957668851,1183578710,-1706011912,231075010,-1956749480,113925605,178176,-1957346581,49054700,1451972438,12079626,1008848176,-2146733565,108137212,-348315464,12095492,567106109,1929266825,-25755696,-16222465,244319862,1358773480,1586183860,1478610430,-443851169,445021,-1192457387,79257928,108461824,244339024,1576868072,1426064074,1220078731,309601,1342600959,-401698735,-899809396,-1957363710,105286636,182877,-2081649835,1465255148,1847461623,192221184,-852151368,197168161,-385649213,-1070399291,-1073007667,-617351820,-1166540871,179861248,-1204564736,-1064428395,-1174876998,213385247,-952906496,64582,-855628616,654016819,-1207078394,869072934,1317618241,-61437442,838863038,672041709,1976109678,-1949398270,1311176385,-768389010]},{"sector":8,"data":[16547459,1183384437,-28951554,1183515507,-25757698,1483576995,-768360149,1838561015,62509195,-1194261760,869072903,243985714,-922063319,-829750667,-160542816,-768388895,16547459,1183384437,-62505988,1183515507,-59312132,1483577507,-1054086703,922210867,-796168808,-1962933063,-1573663290,28863882,-1910077440,-1956749459,868965861,-1979303744,-1575914387,-1969066610,-853430163,74727475,869122099,-326412853,174951072,-1607240512,-1073058418,-486125941,-148409061,7216646,-1205897968,869072897,-855637064,36956211,166461360,45616244,842255616,1838064320,-466431754,182877,1048596819,1962962320,-1895381440,-805175187,36500482,-1070464397,1929571456,-18599422,-33393214,1975975626,-1563492862,646475154,378039699,914910612,770207125,-972589824,-9597178,1307050987,-883205888,-967683757,7180038,1838169728,1410036736,1558711952,-1878604033,1499070573,-466433189,1838024438,-1608485633,104492427,393375122,1838417466,2023756151,-1828308383,973632109,2003670278,180682242,-1070349340,1349357474,484970128,1838195455,-326412861,939935371,1953335846,1635295802,1848184458,41273610,-503969615,922210867,-661951080,839403147,1837867748,1848118922,41273610,-503969615,922210867,-930386538,79221643,1563675904,1426064586,-2145457013,7178814,513885300,106874222,-1958457461,1613055575,2112768,-2001401995,300677302,513881744,1123694,1962938685,-1224755964,-617393344]},{"sector":9,"data":[-855635272,-645113037,1468907918,38767364,-922869877,1562325965,1426064586,1465314443,939528376,1953335846,106859280,1468731275,74943234,-855212149,1566465843,-1207958838,116850689,268463646,641206389,41184650,113980365,-1202652642,-661769169,1837899401,1476432104,116838539,1962896785,-2132768211,-523181598,405070032,-321852208,168223872,-1580201276,-662016628,-64685942,-405738544,-478093558,-1547499005,-1031115380,108265896,-402521928,44564546,28837492,3729410,108266664,-402521416,145227822,79169140,2418690,108269736,-402520648,1048576026,1946185103,-1874952177,141885549,1962828776,-24451069,-888725509,244338770,1514521320,-1950104950,-136672319,1349359142,1848118922,41273610,-235534159,-1955755102,-1742276669,243945581,-922063319,145818229,2023944694,-1017554335,104382515,158625162,364436275,-1959539456,-1957311549,106349804,-855632200,80370995,-326413056,-1207544124,869072919,313949,-1192457387,641204243,91516298,-855222645,46816563,-326413056,939528120,1953335846,139365128,-855222645,80370995,-326413056,846041504,105810916,113641443,-352227951,-1861827067,-899874707,244318210,-889151000,1847985863,244383743,-385880088,-997523441,-876311605,-889141784,3401931,891009227,512303565,109866644,599289494,-1994273483,-1938909154,510564870,-1910729288,-92030248,-853206088,-90850783,-853204040,516103969,1855198917,-853206088,-987881695]},{"sector":10,"data":[-1200711658,567092515,1386005279,800595536,-1579643340,378236564,283864726,508580508,-1909182536,1855496664,1855592075,1629488887,1964965890,-1655023612,-326412849,-2029894009,-815987626,-852155208,-1625388767,-1593406354,-1783095698,-1160212964,616102670,522308901,1855719110,-1475228416,-33262144,-1200710642,567096064,1855854216,28889650,-886977229,-1625897698,623163502,-1977671219,-1200710122,567096065,800595651,-1327985100,1855824387,800640799,-1943941835,1960315840,377534469,1439379405,1586228363,105840392,1334522492,1395188488,-401698735,-1907295564,10561216,378217984,1347551234,-974339430,1354773261,-974339430,1204247309,-2097151992,-907342653,313949,1632116365,1392510136,-401698736,1959526321,117789038,424673285,2,229638144,285212684,2426625,137552,0,789936,50405376,424673285,1050640,263716864,268435470,329473,134359888,8,329648,117510144,726663269,526338,128974848,33554437,328193,1055056,0,395192,50736640,424673281,16,129499136,201326598,66308,135277392,8,329656,50413568,424673285,16,129499136,1073741830,328449,1059664,0,395192,50413568,844103685,16,129499136,1073741830,66308,1055056,0,395192,50610176,726663169,16,129499136,1073741830,66308,1061456,0,395192]},{"sector":11,"data":[526336,919552,1050625,1050625,-1298137342,-1342174208,-2081649835,509036268,205425454,60483584,-1946204536,1190595166,1962934534,57096197,1187382388,495517951,773480331,-1995552885,1166606917,1200303620,138774800,-1976638414,1183385927,1200238332,-12174846,-1880554635,-1900006655,646588096,-864025584,2139106864,208930562,41910318,-1341819889,-270237695,270940198,638809092,68167304,17530240,-1286403980,-854412237,-2094114032,72254,1173780597,1920236554,440403,263459021,1012601037,857371910,650153664,771820705,637606563,771821217,-167699293,1965034053,1095726,17516022,1173751668,24461322,281891656,-1900006565,211887808,514010625,245442049,547565057,172357121,-1206160288,-850198511,-1070376176,-1591295858,-1557266164,-1591344862,-1557266162,1187381540,1173815227,376717322,-2144468304,1965753983,-2000093694,-1269580986,-852446446,844323600,1200238308,1963408386,860882463,650153664,68167306,268879398,-1202707708,281870339,646456920,123208720,-2141515571,1962916734,-1202236640,-617407744,2123171606,1594936764,1964719195,-431584756,91489084,1975207482,263476130,777720013,-1207810246,57933824,-1903139349,1200238272,650706438,-167476062,1962740293,2139106876,896801030,440304430,578027521,1393627320,146266930,1426129081,437685038,787122945,18617995,-768359794,1532825805,-1202517013,-617475822,1561382229,-1878922405,-1962254709,-147973537]},{"sector":12,"data":[66375,-471334028,532974338,1575324511,1426065098,-1070338933,-16222465,240125558,1576924648,1442841802,1049308759,-1326972916,-1914155007,247356161,964864,976146995,359989828,1948025902,2089037328,168457217,772764900,1946575930,314999561,-1159732670,-1031012353,868965983,11004352,-2081649835,1465254636,205425454,23455744,-1946270071,-24967562,-1193250034,-420020206,-964562805,2123038734,119428872,855643577,1605104576,55872302,788416139,175375492,23364654,-897514380,-1023967232,125042720,57954472,-398407037,361301129,89426478,108300846,-1962781303,1435043414,-28931320,122980910,-402369144,1703412198,106268933,139758382,772429193,-2012588918,-1976693675,1434979156,-17907,772691337,-1995684725,1971916869,1606716186,1575324510,-402651958,516620289,203328302,172488192,857109507,-1948741952,-2096864490,243270850,-1608514459,-336722843,268679175,281870771,-1957313761,-1957210388,260769374,989857464,-1962772792,-485520952,915090959,1955397644,41913620,-1510799586,-899850657,-1957363710,-1957210388,260769374,989857464,-1962772792,-485520952,1049308687,2106392588,41389332,-1510799586,-899850657,-1957363710,80371180,-326413056,445021,871140181,1574056896,1426066634,-899814261,-1308229622,175996953,-1207143422,-1064435648,-2078897626,1405287936,281874356,132287067,172329667,185296266,-385649472,-1202388771,281876992,880089660,-2147467080,1170606075]},{"sector":13,"data":[628359435,-972489856,1946422085,2144284,-972293248,1946225477,217808912,67847622,1170605940,1223360523,-1872893040,280171188,-768405299,1947270016,605146423,-2133851088,745865439,17515974,-2147479368,494144505,1946876288,83460120,-109046924,-972131323,-1207956667,-620101628,146277236,-1877349632,281874356,158664508,-973078088,-352253115,178183,118179270,-88813430,281926451,57989899,-1971271040,192774338,1344632064,280171188,-967307059,167840581,-971672065,-2147349691,-109048095,-2146864128,74712825,67847622,-1979038328,-1017312411,-768351182,376775592,1084768436,-1202712460,281874458,4242008,41212682,-1010626380,512437790,1207304204,393478922,-661733325,73602699,-2130394493,-553360090,73769215,-1207440402,-617476093,-1021374259,1475119957,205425454,-1962987008,1451886710,-855460854,-149058800,1962934791,-1899416765,378152641,-494926713,645932545,-1241643897,108954400,-1960938496,1190593613,1946157574,-152227326,1947994693,58687500,637957419,75959936,-855526399,369632784,1407911047,-150710901,132678,-164494732,855790985,141986505,-1995811190,-511048107,-167622774,66161382,-1948200510,1434846806,206899724,28975476,142016256,1376417535,-15838896,1996425334,1364218378,21555214,234966248,1593922024,445021,1458342741,1049308759,2105540620,1081344005,-1946288408,173968189,1929665850,105810739,712261800,-854587464,853510672,141986815]},{"sector":14,"data":[820190345,-1207945752,281874453,-466483434,-1979285877,-980767802,-1413379413,81991403,317440051,-126582616,414904500,-1961833216,478742646,1583334539,445021,270186579,-2040917811,67549663,41221898,-472724086,-13444598,-326412861,-1959897258,-402650050,1032584575,973758091,57803869,-1953472021,-108394418,880099496,729055400,-617350476,-620033331,-1960435340,1996635143,-2147126758,326306300,-335291718,414904756,-1173304064,548406208,-1205277714,569053184,-486126197,105810887,-1202601245,281874439,2078859146,280518399,-1976268272,1284113004,1594936580,113925470,-326413056,-1070377130,-2096728437,577963262,-150993736,-2114941978,-1962865978,-1959917442,773163284,-2013113206,1183515221,54888454,1583334539,313949,1575783253,1426066122,1599597707,707165,-1957311541,214588908,-876596480,871140181,80371136,-326413056,-899825613,-1957363710,113925612,-326413056,445021,1575783253,-1207958838,-2136408064,-2130414336,637501410,-804520065,195,875523754,1830888996,1797721125,757213219,1768449838,1717920877,1667391851,1360031328,1158829841,1410617875,1427527957,1326991639,1092505625,1142969119,1193428513,1243891747,1277578021,1479367212,1445937966,1311851056,829967666,863646329,897332347,931018365,964704383,2055942273,161840012,1528430592,992435483,1613309736,741563435,792014388,1032007042,822214656,855912963,889598981,923284999,956971017,628305931]},{"sector":15,"data":[594880372,611787382,2055807364,646806410,210726286,680618896,781397394,1872038292,27286,647505047,630923673,597632925,580987040,782445986,229011364,2055667712,31624,0,2072410757,68616192,777453568,141704843,2139299211,1634992146,1204231563,1392509202,1527013375,1366605835,18761719,-1962576896,98768975,1198023,243968,72214609,1975520089,374684457,-253617803,2114997561,407210792,561299467,-15051381,1256722509,-954799352,6213,186116178,1166650091,441813272,-351783704,1439391647,1465314443,1916701486,108432136,1958742700,-387698169,-185925594,1963369192,73173782,1946573883,126561806,-1996051736,199754844,-387257600,1583285913,182877,-919340514,244046222,-645200868,238764353,74777730,75501195,68816443,243862132,-1014954980,126419968,1438851067,-1957172085,-997587386,-1003586012,638147614,28575624,-466479411,1916701486,2129154056,-899850486,-1308018430,-1342105344,-2081649835,777454828,141704843,-1995809141,-1983892707,1183448646,138841084,185747337,-385649216,1173750009,57999138,855696361,591759552,-2011150968,1166550597,2013695260,38111498,-1996077687,329797,71665921,-16103993,574998271,340248065,508005121,611631115,208929192,857759627,890686921,267078995,856968589,230800338,382535438,-1957868747,407341341,1410221511,205899529,-1070397102,-165232498,268736006,495655540,1964656441,20834323]},{"sector":16,"data":[1170607733,1170673693,-955689458,155978821,-1996401176,464524357,-1173720901,-152563240,-1155289088,-658896268,15460369,1334517131,-1338514664,174111496,-401544006,1170604249,1170669598,-1342177264,174897942,-401534534,1170604229,162529313,-1173723973,1451822742,-61960962,-402607896,1183514748,-61436930,1575324511,-167770422,1962877509,-1075310867,574998268,-1960998144,-1073013177,27793780,1602947188,112928,-4584469,970667007,24446558,-1961439933,407866141,-1341493061,8382491,-1341492037,7858211,1622877923,-402083830,1689976941,-402018294,1824194661,-401166326,2105540701,141819940,-1341495109,5236757,12092651,608536624,-528080435,1912806973,-1073694687,1929057741,1977879065,1207313941,242487301,1757091248,241744394,-33553176,1388520525,901010256,-1014292019,126430811,38243374,1512420440,-853602786,516103969,-1273510610,522308901,558235331,1545520174,260711945,-854458184,1975597590,653276177,12060552,639028498,-265023608,-23281350,-1013112499,-2146208374,1703604454,46432285,2105546445,41222173,-461315022,518392335,-987919533,1065558623,1948211968,46462476,-990509195,604140552,306547191,-986833213,-1962380770,33325087,1204159605,-58719972,-16419582,99289183,17975239,1456152320,1334517131,858645272,44034240,1964135819,73173793,1963351099,2615305,-1070395019,-1959916053,1468739079,43509762,-402367351,-1017249141,12114739,-1961439915]},{"sector":17,"data":[871593427,-386929728,1703608158,-17528291,-13722428,1946840094,-18445781,-1664811324,1813970734,-18445814,-13722428,1946840094,-1662612973,1813970734,645758986,-1979485184,-469033899,-1022208629,1968176256,773740324,141704901,2129280,1397757044,-1962518959,516173365,-1394079396,1499334400,1595889755,788475641,-326956440,-326413054,509039440,516173318,-986838692,-33000898,-1977212859,-2031865337,1183392613,612204546,1359705344,-1956584362,7202869,520575326,1566071647,520040092,-1957361052,1364414700,509040210,516173318,-986838692,-1962380738,38177589,678814730,1965385016,593836067,-2010773132,323846151,637791040,1166542730,27453458,-1626118784,17974471,38177536,-31234680,520560717,1499094623,-2091034533,-1999699260,1307125061,1149828097,-2132768227,-532905756,1686695284,1961901076,358877187,-919371996,-484094586,323846181,1948924960,1966488580,645759004,637957376,1166542730,-791359460,-19607340,644163788,1300786155,1949842470,1948072998,2044987938,524630539,1170618997,334168094,1998208,2088966517,679346198,18761158,-954251896,4165,1590727,974514944,-394977467,35552640,1284180596,273516822,35538374,225786172,269700480,1954596086,325419012,1949842671,1952463880,1961101828,10152195,91554108,17843399,308644352,410340412,1965081846,46956549,-990508821,-2147257341,-2010718236,593856551,1946731766,616887836,1195120501,1413223282]}]],[[{"sector":1,"data":[1312558963,1245449076,-2128214156,-335546585,130348622,138151029,-461354892,1396929548,-930424694,-1341660800,-1310666239,854315523,150765823,-58715788,-2130283516,-352312125,348356874,-2130384128,503317699,-986346666,-570219916,520586334,638022747,-2013059200,-1916591259,1157497461,-402426872,-1916600307,1157497461,-402426871,-1664942073,-1660400386,1291754691,-2084332279,1547371715,-1962773246,-396967140,846593997,1392925835,1006627048,1952121948,-44046305,1166741109,-2016376046,-1036315579,-1070395788,772245806,-402499703,-672399419,-402236279,-1017184335,520040092,1461586528,1916716334,511541256,1443853570,1153906059,-1962933998,1963005556,526343696,1448550095,1347637586,1916716334,561872904,169047296,-2145684252,1685324284,1947270272,301760529,1532516980,1600019033,788475423,1972177516,73173762,1946573883,-12589011,-1070389131,990141579,158598748,-402158802,1552547653,-12982268,242532363,-16100517,-532915083,-1070442379,1347966187,782025982,174857983,1347992692,520040092,1055591020,-85409741,-1961396738,1547371612,772568070,-1073018997,-18348683,-386929666,-1072955661,1347946613,520040092,-930411924,1088716959,-1014768501,662713874,654849727,-997998197,1515805442,-820027554,-986818786,-1962380738,273008445,526319618,126496463,242532362,973259651,787641797,184508298,-617430053,-326412861,1443163267,1451870347,-1982123012,-164364706,158723338,264134627,-337956096]},{"sector":2,"data":[-520257448,229842037,1947072896,184123397,1187448693,-350224130,-2140163264,-227266567,1190648626,1946159356,-62458061,410271744,1912798592,217940007,-109043085,-2145553872,410466809,300669318,276089098,1960900992,553222155,213780084,33941760,-2144703816,276051965,-2144638024,141840125,-2144506440,158681853,16664263,-338916832,-2146586587,510926077,-41935952,-1340640255,251494408,548409460,1949957504,268271625,162531701,-661993334,-1962820887,1916878017,2002402328,835077,1631382763,2050760562,539761527,-352318274,1912683741,1998208016,-1103100916,1187446792,-352320258,-62457911,225771523,1965029760,-2094157560,-351994290,1207795895,-41911438,-1971948716,-1618333987,-109049809,839546336,-28915767,1407918080,1976109712,-62458100,1198784544,-352072061,1291681858,-41941644,-149260974,2161734,1190601076,1962935548,-62458086,393478147,-352072061,-62458098,125108227,553404151,-1325107968,-1978864896,-1618333987,1187448892,169869566,-2146994743,41243645,-186024015,821657600,-109047182,-1978828999,-62457895,-361496572,-420755150,208980234,1977678208,-943115692,536936006,1001443891,973082558,-2142932248,846611709,45765808,835072,879945786,1985871232,-1168199647,146669572,1927821824,1744666659,-164425610,146434224,1927821824,1912438803,-654963081,1879360770,1443485834,-1870730242,-401711733,1232469471,-402050373,125107671,150883969,-1153766624,-924317552]},{"sector":3,"data":[168719869,-1156549175,-1125644064,-2046266115,-28408885,-1155601656,-1394079496,856192253,-28408842,-1961956604,-1662514083,856061181,-28408842,-2144489470,510946811,-75486288,-1340640149,1794867242,800067700,1953495936,-2139115511,125054715,1187448811,-1977614082,-137983032,-62512176,-1946270197,180587216,1394111681,-922030798,-880147339,1381090814,1342221800,-1957438669,1579155229,-1017256565,1049308759,-806877070,-397389576,861536283,63108800,67895924,1946469110,-167244798,57936066,1602276480,-326412853,-14531082,1435194740,72760086,1996442996,6350852,-397227893,-1053097894,495652468,-768389038,1414615122,1515724799,855918219,146995152,-1962118144,-2083260456,313592035,-150987544,1947205826,268478732,548472693,183032971,71731968,1561740681,1342177986,1374499410,1347536382,1342179816,-14841005,-1017619937,-1947432107,27788358,34341492,-997818844,57942184,847301760,46292416,-326413056,182877,196608,469811600,3672960,17408,0,45052,3670912,873728,0,268455936,11668004,-1196425204,-896789132,1433326283,-1959859061,-971657698,-838925753,1975560209,-1900006637,643936448,84164224,-33393663,38242496,-852492104,512437793,-528083538,-899872887,-1957363708,-1873324308,5433358,244373643,989875176,-1946716968,-1326412806,-1958484298,1122371142,1122419850,51143140,244343270,-1962923032,138806234,-746338165,-401698816]},{"sector":4,"data":[-96796644,-264565641,-633665417,-935596169,1642392439,1642527780,-899850657,-98697212,-1064386509,1812382758,-71136252,-1957311713,-1900006420,75021248,637951490,-899872886,-1957363710,-1900006420,75021248,-1979163134,-2010773946,80370951,-326413056,1443025459,105286154,-855087478,113925399,-326413056,1443025459,105286154,-855087478,113925396,-326413056,-1373730002,268548117,-2147068278,1463427274,-1269206014,1344392473,-1268651392,-1272853234,-1188967143,-1036382208,12139381,25133056,-2127400445,1912801855,163074583,-19232188,-1977496125,47558,-167415206,359993542,-1975252808,-842793254,-1190497759,-1073020927,45679476,246700544,-1047846451,182877,28857803,-899835648,-1957363702,955024364,1988843095,1636868362,-1580054903,1183409242,1683399124,-1595914615,1183349396,1635557620,-1594341752,1183342973,71601622,-1949546871,-1587444194,1200185732,-1798528766,-1798433141,-1996208247,1688208983,138905749,-1987137375,1554118214,1578535780,-666465948,-941992311,6575622,1683529984,-940554615,6576134,-2079930624,721420385,-1798396992,1351928995,-1787999590,-230258404,1636841097,1636054665,-1962522997,-861730730,-837383788,541378452,113639424,-972981612,7987718,1683621575,2040135680,-2095278753,6678590,922682996,166421992,13794947,1996427636,18921682,-1070901680,1318735952,706516282,1635623616,1449229474,1342407096,-1791333734,545030940,-385649408,113705182,489579612]},{"sector":5,"data":[1683883719,-1070912436,-1982839159,1183436358,-599356962,59422806,980064848,1183521941,-631862312,-1989911389,-1956356586,-1868311994,-2044818591,71797601,-1559865461,378115276,1200329934,1636082434,-1576515702,1183552868,-1901026314,-1561049462,1183480468,1635558136,-1563015542,1183539581,1683661780,91537419,-1791408486,1176928284,244383124,-13968408,1251668598,-971205267,7987718,-1788905062,-532247780,-1956358493,1487138886,1556257380,1183521941,-800715826,-1796668556,-2113485310,1149895009,1357130244,1342522506,1074152586,1149915200,1088694791,2144336,1354771280,-1790284646,44034332,190938785,1952546822,1635688713,1635784331,1150095595,-401715196,-523170889,-349595056,1183387077,-799634994,544522763,704922762,1149915364,1149915141,1346387974,705119370,1380991204,-1697745153,479548180,1183432747,-599356962,1879836217,116809844,1954573854,71600729,-1963309432,1183319364,105155323,1183318532,121932540,1183367422,-96039427,-96039600,2046212176,1228380752,1183390869,1958743038,-349587419,1376634298,-96040368,-1974410198,-1974404282,-1974404026,-1705968314,479548570,-1982052727,1149951574,-2013058041,113690694,-1962896028,65738876,186023307,-1978829569,1161349190,-957254395,26567686,1850935038,1635518150,1033524737,-971205287,23166214,1683373699,1443263744,-1791326566,1543948060,-954388892,1281646086,1556257324,-879092587,-1457744398,74743808,175892494,-1790137702,-1341733092]},{"sector":6,"data":[-1711275890,479589024,1357006477,-1791287142,1958742812,-461470955,-2129693696,269411454,1996428405,1384946406,2088967317,57999392,-385814039,2089024990,57933856,-2114071063,33612926,2122388594,1996622308,-495025395,-1996000000,1317069430,2122408166,1963000548,-427917032,292880658,2056535680,-385649664,-401735514,-1612117507,-461471488,980746753,-1901052285,-1959562240,-1953583074,1194975814,958886948,578035783,958422923,443816007,-1901060469,1948403513,1924682513,-1070903293,-1706012592,479541838,2122407659,1963000548,-364447922,175376384,-387549441,-1073019003,1183663733,546984162,186422586,-13011504,1860757110,1975520007,-364447953,259262464,1342178232,1342535864,-1789492838,1444539164,1342243512,-1673473,1996483190,-1918571544,-1705975226,479541792,2129027,-404159627,-51320322,58898518,980064848,-1073013611,-823590027,545031166,-385649664,-1024852778,71600894,-1974410198,-1974467260,1077937732,121932368,1346429994,-3115265,-1281700234,-1591962285,101409150,192242048,-3115265,2073742966,-2096249365,7343166,116800628,1954573854,-25263307,-1959824384,1175182406,-1205373730,-977605765,-1974447603,-466945466,-79263152,-62485936,-45708720,-562626736,-1696827649,479548640,116788459,1946316318,-2096708091,1048772961,1962959236,-398556353,108265573,1709717247,1048775659,1946182032,-1875443935,56670305,1354771280,711033760,-1966044188,711033358,1388415981,978229840]},{"sector":7,"data":[113646741,-973053566,6390534,1635925632,721974272,1033523392,-2095278759,6678590,922682996,199976424,1636843139,-15567872,-1201565642,1448083745,1347469355,-1791340902,541362972,-443850914,445021,-1947432107,-2036267426,-1962440351,1636213699,1636056707,-15895552,-1201568714,-1706032248,479541866,182877,-1947432107,126551646,-2090760541,6390846,922684788,-1984405116,1788497923,1562154298,1426064074,-326898549,1636212994,1586171371,71732222,1946306361,-1995994359,-1072955834,1183575157,1575324670,1426064066,-1957237621,199951478,962692257,125047876,185889931,-1947109898,-1034068282,-1957363710,49054700,1988843095,106859268,991461259,721909239,-1962677258,1966675581,-1946651370,-1956684089,79846885,-326413056,1460071555,108432214,190938785,1969324038,45635111,-2103816192,186422636,-15108928,-1201568714,-11533437,-1070921612,520048720,28873932,21031168,1023558795,91488514,870957099,546985473,1025283386,74776577,-562769397,1636056715,704922762,605668,-1226243211,867584,456985204,-385649408,-857014125,1683365515,620906379,4012032,-166300392,1948189255,38242825,20717348,-1014298763,-335788407,513431309,-1994615449,-1072956346,1586207348,38270972,-1871413248,-1989912927,-1202652602,-1706033144,479541866,1683359431,-1202257920,-1957690496,939523166,-1946526069,-2133710073,1347551690,-1798562049,2129283,1048776565,1962959958,-92864760,-1791326566]},{"sector":8,"data":[545096476,-1989381120,38061884,1005126532,-2135402497,45633539,-1070903296,1375732154,-870383792,-2430060,-396077514,1183448721,138737658,158597632,-92864681,-335634456,-94467322,-1995028597,-1072956858,1166739061,-96040680,-1191545089,-1706029051,479541866,-847986677,-1694861569,479541894,-1789082982,-7410916,1962869876,108330760,-1791426406,-21305060,-443850914,182877,-2081649835,1448545004,-1961986421,121441350,-385649408,255656157,1026126848,57999618,1023444201,141820784,1946382653,9431311,-1901066553,-1070923776,14936473,-1559607669,-219443536,-1996209011,117374534,-661950893,-467007606,21465680,38242896,55020112,2144336,440400,1248631376,1688214677,-96040811,-40638378,201082505,-1962380096,138906328,1452631202,-1979396888,1688402502,-2076821099,-1928759967,-1706032060,479541216,-1790137702,-149361892,100665414,922685813,1996448854,7333898,57982987,1459582953,-1979889432,-11077050,1996426358,142016266,184973055,-1962249024,71797720,-351905909,-1798528761,-1798433141,-1980213623,1593833030,-1959990282,65738876,1461091723,1343227320,-1791333734,1958742812,1446939119,129521508,1788497920,-1709402822,479550658,1593776105,1575324511,1426066122,-326898549,-28915966,2122383360,1912677636,75399431,74842408,1122746411,-16353537,1072170102,-28931840,-327892981,1200347275,939533570,1964507197,38242837,54271780,-1202516875,-1706032250,479541866]},{"sector":9,"data":[1996425451,981900030,-1030087531,-1206086308,-443875327,311901,-2081649835,1187450092,-956301060,16711238,-17152313,106859264,-1962653813,1183385175,-162100748,-2011478134,-1057032890,-1946728824,-1956543458,1240143943,956712587,997521478,-1191676161,-1202712571,726663169,-1706012480,479541838,594857995,-1929087233,-1957628858,67500102,1183666176,1183666430,552095994,1958742784,-129594618,-1946401143,1200355422,-129595114,-1334460405,-1946401141,79846885,-326413056,1460071555,205949782,1946232125,19283223,-1259797643,19348736,675097204,-385649407,233504964,-1979031925,140413703,1979860792,-373282043,1586168109,705137162,-1947169820,434833502,-1979162997,173968135,1996638008,140413920,-467007606,1586229387,38242826,-265558998,-1979031925,1586168135,54999048,1586172791,21465610,1586231435,55020040,-347604949,173968156,-1962719350,1194854494,-1978895871,-467009209,1586231435,736029450,73305087,1183385483,2143763450,-1954384628,926484062,2028536703,106859519,1586182025,-1203795708,-1696006143,140413696,-1962719350,1194855006,-385649919,1200291671,-1947981311,140413944,1586175723,21465608,940203659,58065735,-1946207511,1200228446,-1947981311,173968376,704857994,-1946670108,126487134,-1946532216,1194854494,-1962248446,38243056,-347672533,140413718,1183319946,173968378,1996638008,-337368572,-1946801182,126551646,1006257801,1947172806,-18487037,956587659,-385646785]},{"sector":10,"data":[1586233051,-1958770428,931726942,1593794793,1575324511,1426066114,-326898549,-1957275902,2089486454,545030936,-350194432,38139668,175378432,54573143,980064848,2106268821,1979648790,105286632,1579173001,1575324511,1426064586,-326898549,-2125048054,16778366,2122387062,1963009796,1712168987,71731608,-2012985718,1631385670,2050763122,1853891959,887824632,621051521,-1610255103,-588552692,805600897,-2130218495,22676606,-1070869898,-1979636759,-466945978,-8128373,1460237951,-1788360550,-129595364,16533191,-2078373120,410487649,1183458027,-125069066,1979744061,-929409271,-2011392665,1183512134,-163170056,1191117685,376736764,443872779,1866883,1149956980,-163149796,-897818308,-964724164,553021056,2122568939,-1837891332,1683371775,-1946571544,1979059184,-2078373113,410487649,-1946257783,-167045516,512427893,2005623172,477922072,-385649408,1149894785,-163149796,175923516,109017660,553021056,1183454443,-125069066,1979744061,-929409271,-2011392665,1183512134,-163170056,1149981045,939533570,1965031485,376736515,268810326,112720,1354771280,978229840,-804578155,-1705628300,479541894,-1791327590,1975925532,-58817786,-1207601663,518717441,148727,1458861184,1343227576,-1791333734,971565852,57998966,-369139479,1600061144,-1034033781,-1957363710,-2078372884,105286497,1394493321,1560282344,1426064586,-326898549,-1957275898,-1202322314,-1202690685,1347420166,-1709280001,479549862]},{"sector":11,"data":[-62485162,1482857040,1048583317,1946195300,-11600381,-1962979586,-922812602,-1963112824,1174538564,-96040707,-62485162,1711054928,112742552,-1684385792,-1977838246,-466945466,1149958283,-1604890620,1352164864,1342179000,-1790243686,105155100,1346954282,1711382615,112742552,211439616,1578931531,1575324511,1426064066,-326898549,113661442,-1962837356,-1956543458,418060407,1866883,117313396,-1705611693,479549757,-1790137702,376736540,-462031349,1575324510,-326412853,1443032195,-1979287925,-467008956,76204171,1094830123,-1979497334,-165019308,-146750933,-28931615,1850490499,-788302848,1183579750,-443851010,182877,-2081649835,1448543468,-1962926401,82510966,1174406342,189777803,1593144768,1575324511,1426064066,-1957237621,1988822622,-2012968440,48139015,1586168391,38242310,-2013182838,-561315513,-1962719486,1200096862,-899850749,-1957363708,183272428,-1928825089,240187974,-2130722584,1931083134,1850646566,1345184810,-1998008064,1174468678,-62521094,711872416,1650148,1183377617,-79298314,-178688,1996425334,-96039674,4122704,-1946270071,80371173,-326413056,-1979257725,1183320134,207522810,-2013116670,1183513670,-79263738,-2013051134,-11272890,1183648374,166220026,-28931840,-899816053,-1957363704,418153452,1183667799,244338934,-1913225752,146729086,-1190717830,-1510866938,-1559869813,1183545870,2047910664,74907472,-1560225816,-1072989684,1187448693,-352320780,1275512625]},{"sector":12,"data":[-1962933874,-1921381346,146678399,-1190715782,-1510866938,857782355,1378634938,-401698736,1183445212,305594356,-357262726,146738629,-394883718,112789278,-1918504448,-1873742266,-164567026,1593067147,1575324511,1426065090,-326898549,-1957275900,-405731714,-1961048189,24011830,1450075198,1464909867,-1787642726,140413724,1468729227,71600386,-2147068791,-1954544820,-2146696122,-1958747008,-511638964,-1056194560,-1962785655,-1956684090,113401317,-326413056,1443032195,-150993224,-259324826,1704642177,-16353537,74776372,1593807080,-1034033781,-1957363708,854361068,1187468887,721424626,-129594944,-939637111,3079238,-1954936669,-947714434,11987218,132808323,1166889333,-398030584,1586175979,604474088,1932540991,604473872,1946762303,604473864,1963015231,-398032116,-396457208,1967065078,604474073,-767129537,74713148,326437692,1073743863,-396948108,1077937718,1078001188,-1191426559,1727463430,1704592874,-1949022583,-788034600,1836512,-1963178495,1010770949,1460499719,1074137576,33432640,636222534,-2083234165,1962803839,38243077,1166732779,1088694790,33432640,1207434310,1946222596,-59866364,-360807678,-16485367,-2089154554,92997831,-1996472539,-1072960954,809312372,-385649920,-411697354,-1979711048,-511704755,-1948200177,-1954935266,71795999,213438955,136771328,787834,-244223,-2137326474,-1559378454,1688435218,1975520110,-373282043,1688274294,2047517550,-1191950711,653721612]},{"sector":13,"data":[1183414792,787922,1852048897,64112267,-1988490746,-661924794,149447,509696,74907392,-397361109,-259260809,-1324333881,306497310,1586179148,276792070,-1962380288,-1023209401,1444824201,-1789331302,138709532,-1964095864,1183320388,-666449962,512425984,529234446,-1996339317,1187504198,-1962934054,-947714434,79358226,33834378,1183379014,105186018,-1964751224,1174537541,-481916714,-2012789502,1183704390,1996443874,-33429270,-1949022583,474466264,-1706033152,479549688,132808323,1166875509,-767129336,1182991595,1586170066,604474066,1932540991,604474097,-629243073,-138405119,75224,-1949284727,1200354398,201204746,1200214086,-797015286,1443591168,-1697351937,479549112,1325335531,-360807462,-1959496439,130536542,1854078976,1586171124,273139668,1204256458,-2145610478,-138476697,1962999813,21620995,33555959,887686005,112641,-1962855959,1183445574,-230227984,14436039,138775808,-338540919,-765555931,163715,1200293492,-263812862,184829835,91489863,-352321096,-1983894782,1183046726,1586170066,-1995994158,1183502406,1010771152,-1962053059,1059442758,4013312,-554975372,-2133565813,-1975516337,1200097351,155683354,-1961146488,126480454,-1980473717,41912583,-1982577013,2105739335,443875586,82476675,100075125,242549760,132808323,1183516788,-666435624,-4717589,-195130369,-956020855,-63929,-137077109,33555015,1183473268,98839267,1317666819,1005398757]},{"sector":14,"data":[-2146732607,-2080570521,644768774,1183466219,-2000093468,1191109190,-447807773,1357006477,1342178744,1345323448,-1979964184,-661925818,-1274001465,306693997,1204231317,-16776932,-1705978762,479549112,-1697614081,479549688,770328203,171769857,-385649152,-1073544499,-1476448621,-1024905926,178178,-1958747008,1191826526,390914,-385649376,1200292083,132415490,-2143761280,1334525924,14778626,-1983837248,-655818169,-732001536,2130929536,1586196715,172488436,-150244095,1971257349,-532218015,100097259,561348352,-1982577013,-661916090,136464327,-195130624,-2079093,1200218182,-263812346,-337230199,-329348327,-1982577013,1586177095,-431554572,-1981397365,-732001529,1586169737,-163148844,-1960556663,-330921533,1586171115,-532247564,-1981790465,1586169415,273139668,1204248612,-2095278830,1963256446,390978,1396470788,163203,-1732770444,-1207702681,-397383788,2105737829,125042690,49301191,-955454720,127046,-2133565813,-1962868145,1183577182,-1962440208,126473310,-150878999,1946681349,38764548,-730398975,16940419,1166739318,-339279102,1737668611,35383376,-1962827543,1204278366,-949961712,743182919,-954578946,603719,20465607,977782528,100073474,208997376,-1946919285,1191174214,105351648,67257846,1586169716,38764756,-195130623,-1962778741,1468730439,-732001522,-1994504311,1586176087,39816180,605046666,1950235711,18606339,-1946919285,1200292447,17950994,-942383477]},{"sector":15,"data":[2124681287,-1793964089,1676171036,-800683775,-1995946611,535554118,-1964482933,1010770951,-1978633424,1010770951,-1979157495,1010770951,-2096335615,-1962350522,133621854,-1965460161,-2009127929,138202694,188482676,133637237,510935040,1852049027,-732001534,-1989253983,-661964729,-1962932282,1077989446,100793892,1586196068,1852088788,-1960949879,1200214086,1712300064,642222488,102909895,608683776,1204224001,-1962933194,1200169031,843564852,1183514628,608190672,1678115326,391022,-2147191776,-2096889265,1946213502,-532247800,-337623297,-666465530,-1948760321,1200223326,-1957106938,1736496222,1204256515,-949177840,479531591,-1946919285,1200292447,240618252,-1982570869,1468603975,-195130592,-1979555957,1059328071,58015292,738125289,-732001344,-350074999,925447958,925548073,-953472213,-1339285206,-131248085,-2094288852,-2096303034,92997831,-1996472539,-1072960954,809314420,-385649920,-411698382,-1979711048,-511704755,-1948200177,-1954935266,71795999,1166791029,-632911614,-963917333,-443850914,311901,-2081649835,1586168556,138906116,1027358500,1200231282,1010770960,-1962249667,1183388743,1975520254,16758789,1183515627,1575324670,1426064066,-1957237621,1688274550,507808110,705315978,139234020,-1054085846,1075856521,33432640,1450075142,721712895,244338880,1580302568,311901,-2081649835,1448548588,2047745675,1183385483,-1948742664,1183384135,-1995994124,1720384070,62925556,-1873741242]},{"sector":16,"data":[243394574,200296073,721778112,26143168,2047745675,1183385483,-262239240,1183385483,-128021518,-1962653813,1200222814,-196703484,1183441105,-129629202,1342178821,65947275,394691,-96040112,-772520405,1083855072,-1591962283,1183414792,171346934,-2093225094,1569393863,604473858,1946238015,-1983673358,1586228806,621251562,87883839,-385649408,104661205,-385649408,121438423,1028879360,57999368,-2097096215,1183517894,-162594826,58048523,-167709463,1946225220,75269098,-15960833,1962930294,74776328,-2097017368,1962870396,-262239278,1284179851,65130758,394689,-1947449719,1183384132,-369194006,2122579837,1047789806,-1964089717,-2009127929,138209350,188482676,133639285,645152768,-150446965,-2147483065,727129204,28856512,1927827456,1975520009,-260636915,-1494741360,-18419,1552644331,138906114,1027358500,1200294005,239536908,1996427125,141885424,-402230017,1323893126,-260636673,31254614,-982204405,-48919,26871924,-350448282,-362902734,2130708471,-401698730,602607822,-1947574645,-398030585,15222519,-150440896,201386054,-61207,1152911476,1788497923,-1961061062,126479454,-1946223383,1600057414,-1017256565,-2081649835,1448545004,2047753859,-385649408,144769262,-96040582,2047489675,512440555,126581262,-788112245,-1948777501,1183385159,621120504,87883839,-385649408,104661132,-385649408,121438357,1028682752,57999368,-2097110295,1183517894,-95485958]},{"sector":17,"data":[58048523,-167731735,1963002436,39619349,-947175541,1023426341,-613089272,201377783,2089014644,158662404,-16222977,-907541388,41716480,-16352125,-4683659,-2087457793,1962870396,39619506,604522378,1966947391,206015240,1963869963,141885195,-402230017,-1813315432,2047751935,29550678,1962904043,-126419192,-1705983957,479553180,-2080409367,1979709566,-9443069,-16222977,-1070860170,1716230736,1592335509,1996445439,1927810808,-11278071,2047876747,-1996077173,-1072955834,726667636,-4697920,244338815,722453736,-1207702592,1599995905,-1017256565,-2115204267,-16711444,-2037578122,-1202651392,-1873805056,793045006,-1928825089,1358889094,-1878755585,214165518,-1034033781,-1957363706,15499756,238485249,8818042,12079359,1996443649,-401698812,1996426440,8817926,-1070903041,-401698736,-443863507,311901,-2115204267,1442909420,-1962641781,1200226908,1010770960,-1962576578,48960071,1183432747,206015480,-1995548789,1451883078,-1996190724,1962933830,-158954232,12079358,244338689,-1204897304,-1924136958,1358886534,-11485141,1996488310,-18184,-94437552,1039550089,645201921,1342177720,-17398131,108461904,-100609,1150023798,98619654,-11534330,-1072956834,-1070894475,28865003,1183535104,1356911094,-974411622,-192509683,1975520254,-368272889,-555020859,1342177720,-17398131,-189333680,-25755650,737703679,1593790656,1975520250,112655,-189333680,-337274114,-1293218363]}],[{"sector":1,"data":[-1962510593,-68450,-163149001,-11476783,244319860,-1207235096,-11534335,-1694567242,231074789,1577058744,-1034033781,-1957363708,183271916,-1957275903,1552614518,273123842,1044135716,1200293237,721611538,-129594944,-1962129525,1183387223,-61437446,-1962516853,105155391,972965513,443941445,-1924087765,1358887046,-771858805,104959459,-13303984,-1070860170,-1070917397,-125399728,1996443902,-13304058,1150023798,98619654,-11534330,1962932830,-125399800,-1070903042,-401698736,1600007329,-1034033781,-1957363708,270437356,138906490,1946830603,209125146,-16091393,1996425334,74907398,185098239,721712576,-15406144,1996426358,142016266,-16353537,244319350,1563186408,1426066114,-326898549,1187468816,-1962933770,-2109928378,-385649405,58065079,1023495401,58065414,1023487465,57803264,1023460585,57999618,-385816343,246939946,-1070903296,-11513776,2045250166,18409983,1342178744,722106111,1347440832,112782571,-1192170752,726663183,-303345472,235566847,-1996195864,-661914554,-1979549813,1010770948,-385649660,83296531,57999616,-1207891223,115933185,-65476607,-940292471,9325574,241076992,2129795,-1070920331,1347440720,2047751935,-1946218520,-375786426,79168427,512446464,2013231632,1996444420,1313708554,-1813443131,178176,1354771280,2047883007,-1791299174,212252,45645429,-401715200,28836811,-160175360,1952451142,768019,1354771280,-15960321,1996425846]},{"sector":2,"data":[-12916472,1342180024,-11485141,1996426358,108461834,-939579415,259654,1342178232,1683365515,1996437503,108461834,-402098433,-1072955768,45622901,172394752,-1645736368,-62486269,2005653643,39184642,1963163709,-15931133,1963163965,-13768445,-768884693,1023605481,58000259,1040140265,58000262,1040110057,58000263,1040111593,58000266,1040110825,58003470,-335632407,-1983894577,76282438,1023426341,125042694,1946159165,-2092962972,1963001982,19654915,-237941,295307383,-1994615450,1586230342,142082044,-1202667477,-1706033151,479553099,-237941,295307383,-1961061018,-930352034,-1996075383,83232862,-385649280,76153262,121388836,1525220212,142508289,57934592,-1207874583,1206452226,138840833,510967819,1962934589,12839171,1946157629,212234,-186055819,-943723776,652870,83343595,1702104064,100419211,1183383564,-2096829448,-1962084282,1603008606,604473858,1946238015,-60912658,-1978769525,1010770951,-1959693055,1603009630,521986,-1960479616,1603008606,604473858,1963473983,-128021737,-1207404545,-1202715837,726728703,-1706012480,479541838,-386107649,1307116832,325631,-385649344,1183579972,798204,-336050551,-126975228,-128021748,-1979555957,1010770951,-1947307007,2013263966,54769672,-18352,1354771280,978229840,1996430485,-1195840520,-11534332,-1070921098,1996443728,-401698806,-661976186,-400394241,1183448264,1975520250,-18421501,-1710328065]},{"sector":3,"data":[479553310,200558217,-385649216,-661913900,619251595,175570942,29550606,-1946925431,39816152,1073743863,95946100,-1207702784,1183383558,1354771440,2047883007,-1695516929,479554730,-369998199,-1070858852,-2081012087,1946220158,-159973584,-16091393,1996424822,-60912888,-1979555957,1059328071,192233020,-1946394997,1200292447,721611538,971526336,1958743036,112645,-1070923029,-2081405303,1946221182,-96040701,16416387,1172898677,-263796739,1996423168,-401698806,-1073018834,837354357,604277501,1963211839,325423,-2094435326,7999038,199762548,-263812617,259375115,-1207011585,-1873805310,-348657650,-2080570391,1979707518,-50665213,-16091393,1996424822,1354771208,184576488,-2095811136,1962995838,-52500221,-1863289089,95938574,-2080582679,1946218622,238485307,-401698694,512427455,126581262,-1947056503,126611550,1342178821,99763851,-1957691386,126612062,-1705975599,479548736,1342177720,-1695516929,231074789,-15829249,2129201782,-443851009,707165,-2081649835,1187448044,-2097151492,9325630,129508981,1996443648,142016266,-16353537,837289078,-62486021,410304523,-1791327590,-28931812,208977931,-1191282945,-1706033144,479541866,-1946401141,146955749,-326413056,-16585597,-1070922122,-397389744,1183448994,1958743038,204930828,108461946,1122504336,-28931094,-899816053,-1957363710,82609132,108954454,-2128907760,16778878,213390451,107411200,-293474165,906166464]},{"sector":4,"data":[-963937782,915087595,144800266,-62486150,76221163,1946568249,214336489,-244085,-1072956338,-1956713355,46816741,-326413056,1443294339,-1996196213,1187511414,-352321282,2122335785,208952570,804945536,2122319476,91568890,-335776119,-92372975,-2147060694,1967127166,-28915963,76152833,184174216,-2083621440,1946222206,-62485755,-963968277,1575324510,1426064066,-327029621,-1957297912,1150093430,-91846156,-2096763906,218036910,-17129845,-1979555957,1010770951,-1947438079,-1946223970,1183385671,39619582,201328631,28837493,21293312,-1912703233,1358888070,1342243000,1340608144,-58290905,-1499836162,-1994615445,-1224737722,-2098659590,1975520001,-27358413,620906379,4012032,-2094697208,1946221694,-58290913,-1706027266,479548981,-17002867,1343668483,519986827,-1707575297,479548872,16547459,2122516085,1534328838,17450230,1149961588,721611528,-125400640,240946174,1059325834,158662972,-150840181,1971322887,-122224816,-58290690,-1070903042,2101248080,175374433,1946437177,112645,-1070923029,1354771280,-1788344166,108954396,-16222976,-2036662666,-14904006,-2037514634,-2142175492,6389054,2122539636,1551106052,-352321096,205819225,-17135991,-2038233621,-1962082566,-1946223970,126485087,20725540,-1224741772,-2037514504,-11469060,1048581236,1946182013,75399947,-1207602176,48955393,-1957642197,-1946223970,126485087,138166052,-1635024011,1200357114,-8656632,-1873756117]},{"sector":5,"data":[625993742,33324675,-654852069,1575324510,1426065090,-1957237621,1552615542,521986,1443722304,1342177720,-397361109,988544601,-1962380033,2013200988,209190670,1927810704,39619392,201328631,2122522741,443875078,-2096604021,1946166911,1136153361,1996443651,1354771206,978229840,1566448789,1426064586,-326898549,73304834,-16228469,-1394073993,-28931587,1065408651,-1960872960,1602946142,947388168,73304912,-1962385525,1346384967,-1789549926,112668,-1070923029,-1034033781,-1957363710,183271916,1586189825,138906372,-17267063,204325771,-96040704,1854080235,1586171130,39816186,1059325834,-294387396,-1946526069,1183385671,73305086,-150839413,1950351367,-92864657,-1946192664,201655366,-62486272,1182991595,1586171132,39816188,1059325834,-294387396,-17254657,-17135987,-60912816,-1979555957,1010770951,-1962380024,1200356446,721611528,110776512,186422634,-1921026880,385809030,1446353488,-1903354731,-1056702726,1586188310,2013208318,1439210040,1592466581,-17254657,1342391480,-1791333734,-158955236,-49666,1586185076,-1204319484,-1924136958,1358887558,-17385729,244340310,-1962549784,578289624,1358954424,-1962647925,1610547807,1975520012,-122224871,-91845122,12079358,244338689,-348291096,-91830779,1996423422,-91845122,28856574,328880128,-1961060994,2013265502,58767380,-1959264432,-2133709885,1347552206,-1791340902,-443851236,180829,-2081649835,-1588198164,1183414796]},{"sector":6,"data":[-1960973314,-208929698,620905611,1284227072,-522092286,-1983837377,-1705835961,479549757,-1694599425,479553310,201082505,1590982080,-883038837,-326412912,1443163267,705119882,-28931612,-1962385781,105286199,1183515785,38046206,1342588045,-1957642197,-523108794,1924962896,-1956766571,80371173,-326413056,235435775,-16749848,1996425334,-1259860474,80371199,-326413056,-1979388797,-467007930,101048529,-28931840,1342177720,-1694599425,231074728,201082505,-1710656064,231074316,233553963,-231681,-401734026,1183580023,1575324668,1426064074,1996483723,283643398,112640,108461904,-974396006,46816525,-326413056,1459940483,106859350,1166753675,-62486270,-964429941,-2095584506,259260476,1342177720,-442878721,-955398677,-2097151996,1183515334,-61931524,-545931253,-443850914,182877,-2081649835,1448543468,-788105589,207522790,-964479229,3965702,28839796,889147392,-974396006,313101,112640,142016336,-974411622,200837901,-1710787073,231074316,1586175211,-1960867060,-523172282,2139740163,175570694,1996436991,1430297096,1600003221,-899816053,-1957363704,49054700,1586189911,-1958769908,-472840610,-16354933,175570740,-1710721281,479548736,1577731723,1575324511,1426065610,-326898549,1996430850,1446353416,-1992287083,1996488262,142016266,108461904,-11737074,-899816053,-1957363706,49054700,1988843095,207522568,1586184075,-1948004090,-14809511,1446353463,-1992287083]},{"sector":7,"data":[-969146810,-259325325,-972398965,-16711872,-1923937162,-11468988,-401734026,1600061292,-899816053,1435500552,1996483723,-401698808,-661915220,-16222209,2107639414,1357130337,250089104,80370977,-326413056,-1878362369,-108337138,2013255819,142016264,-1878624513,566552590,445021,-2081649835,1448543980,-2146941301,-1873772572,-110958578,1190654091,1954545672,142379830,108461911,-1789448038,2101248028,108265569,1497209431,-964485995,39619340,1183385483,-96040198,104611620,1190601333,1971257594,-1961235508,-11073412,815400566,-2145610409,6389054,-1705572748,479549757,-443850914,313949,-1275051,244319862,-1946617880,140479448,-1325250677,636015375,-899874815,-1957363710,82608620,1183536641,2145681416,-401698736,-259262256,-1962779509,4138247,1946158397,408903,121460084,1024226304,1584660488,1946159933,-1922372775,1183385158,1354771452,-17004915,-62485168,142016336,1347469355,-15966209,-2037577612,-1605304580,-466984579,-401698736,971710449,-16222977,2107639414,1357130337,-1788437350,-14226660,1996425332,1635622918,-1705974742,479553099,1962873835,54769672,108461904,1347469355,-1791340902,-443851236,313949,-2115204267,1442907884,-2147072373,-1873772572,-131667954,1552674955,621251330,87883839,1028420608,1366556678,1946158909,539916,188567156,-347507712,-96039592,-244087,-2037577612,-1202651398,-1873805056,540338190,1342177720,-17135987,-62485168]},{"sector":8,"data":[108461904,1347469355,-16622453,1183517791,-14488582,26871924,-350448282,-401713640,300613658,-1207405313,726664004,1347440832,-1791340902,-443851236,182877,-2081649835,1448542956,-955877749,65094,-1710721793,479553025,91537419,-335657333,214336286,-1946269953,1066074716,1059440523,408832,-940112267,-730497280,1593835448,1575324511,1426064074,-326898549,1996445186,-401698806,-259262644,-1710721793,479541894,-1207405313,726664192,1451970752,138840838,1318735954,1578931514,-899816053,-1957363706,49054700,108461910,367529616,-1948742665,-1705637769,479541894,1575324510,1426064074,-326898549,1996445186,-401698806,-259262732,-16222977,1996425334,-401698810,-1956758875,113925605,-326413056,1459940483,175570774,-840429936,-1947169802,-1202321284,-1873739777,-118233074,142016343,-1878624513,986179598,-1206618625,-11533440,1354771253,978229840,1600003221,-899816053,-1957363706,49054700,108461910,-1981280624,1458605046,1358954424,-1293414768,141885432,-1789313638,-443851236,182877,-2081649835,-11140372,244319862,-1946787864,138710000,1575324510,1426064074,-326898549,244340226,-2080743960,1946158718,108461873,971509392,-1948742666,1183385671,-1948742658,38046704,205512741,1071939585,-2130555765,197132513,38242753,1497209427,-1956766571,46816741,-326413056,1443032195,-1878493441,-168105970,1962930315,108461832,-1786880870,-443851236,313949,-2081649835,-11140372]},{"sector":9,"data":[244320374,-1946822680,141885424,1342391736,721843967,-1706012480,479541838,1575324510,1426064586,113765515,25734,-1807341952,205949949,-1553602397,1183540710,1684972298,-1962385781,39291655,-1989904733,-1973127146,2124547654,209617764,1086331649,1833605712,-401728363,1586167821,1685692424,1560496008,1426065610,-326898549,1992185360,-28915868,1048772608,1946182766,704940640,1149915364,1149915137,1149915138,548950019,230182912,1822052352,-1927506614,-397348282,669712610,721045130,1346914532,721110666,1319129316,-1924118418,726725190,837308608,-230257402,15525968,-2080487681,1962996350,-28931117,-949717853,6582790,-443851264,-1957311651,216826860,1684971862,-940030327,62534,1358317197,21751822,233566347,1358317197,25094158,1191178379,1962281972,956599075,-394983866,1709311687,1996423168,1354771444,-401606424,-1070920961,-1706012592,479546899,1575324510,1426064074,1183575179,1710138120,-1559869813,-899848720,1048772612,1962894818,1883145006,662044260,1684946563,-148868096,9717254,-2095549183,6682174,113643893,721510718,602427584,-502872317,-872415387,1458342741,-1610320245,100820086,1149789310,1685561352,-1593228152,1149854830,-401713662,-397016927,1149830245,1577356042,180829,1458342741,-1979418997,100796996,1140876414,-401713656,1015218364,721712384,1447422912,-1996211992,1149897284,65284616,243927620,-315988872,141803835,1207311499,225714178]},{"sector":10,"data":[40138400,-2006680058,1157498948,-165901559,1947206215,1685626893,705315882,-2006680058,-1014298556,46292318,-326413056,1459809411,74877782,1685077643,-11212714,-397015829,-947126402,1975520079,1577356277,1575324511,1426064066,-1957237621,1552615030,-1995994366,2088961092,527695874,1200347275,105154818,158711819,1149831051,-338130174,71601120,-1996487675,-955847932,721420292,-899850560,-1957363710,-1957275668,1552615030,960465666,242484348,1143719819,-1996225788,-1983411452,1291781188,-1961921274,126551132,1442989193,-7346162,478875883,704857994,65065444,394691,1599997065,182877,1475119957,108432214,-2096857461,74841855,367771691,1592266326,1443228671,-6887410,189777803,-1946913344,1566531076,1426064578,-326898549,-2091493600,-10100162,1709769589,1619969,1709319927,-964562805,1149985902,-330921726,1979711037,21686531,1709325955,-1925745408,-397347770,-125042973,294531,246941044,-166794494,1946223173,33863685,230163435,-398030590,-17021302,-230258488,50218634,-1057031098,1183475179,71576300,-32947198,-45709120,940131466,58195270,-1979649047,-467006652,-45184440,-1053037270,-504822921,-1996190976,1183708742,1996443892,-13834004,2122578059,91488260,-352190024,38139406,-1207602175,65733124,-1996356680,1149954118,-2000617976,1149956678,-2000093686,1183509062,-1981535491,1183507526,1996443890,-364475676,-465138864,-1070903232,-394854576,-1790284646]},{"sector":11,"data":[38139420,-1923386111,-397347770,1183384179,-49680,2122534004,292814852,1709325955,-1207601920,149619216,-352185928,34584579,-1964489079,1174597702,-2000617742,1183511110,-1981535491,1183507014,-532248078,-495517872,1183535168,726679778,1996443840,1248631528,2122521749,443809796,1342247608,1358186125,1709325955,-1207601920,48955394,-397361109,1599996882,-1034033781,-1957363710,-398556180,343146597,1709717247,1342247608,721712895,-1706012480,479541838,180829,-2081649835,1448549612,15615687,-499219712,58064741,-1207873303,653721624,-125082142,1684981633,1709325955,-1928366848,-397347770,1187511474,-369099030,92995876,-1913239927,240186438,-1963106072,-467006651,705252746,62991341,1212679237,-1964358007,33818693,-1963178360,-2000617791,1166802246,-297367292,1183647979,-401714956,1854143852,-227081746,-1996208757,-706089402,-364475648,1928218169,13887747,1358186125,-1996408088,-12717498,-385649153,1988821146,-330905612,1048773124,1962960354,38112052,1978549817,75399958,-167021568,1963000388,34650117,246958315,-163321086,1963000388,75400000,-1207602176,854262287,-352186952,38112045,1978549817,75399958,-167021568,1963000388,34715653,28841195,-166728958,1963000388,75399948,-1194560256,1183384067,-45708564,1183441962,-62485786,-1980611069,-11475898,1346430582,1088833163,1354771280,-1695779073,479545964,-2081536257,6677054,1183648117,-1008185100,-1928598533]},{"sector":12,"data":[240186438,-17003544,2122579270,57934068,1593778921,1575324511,1426064066,-326898549,727078662,73305087,1207312267,158598146,-1753071991,-352321096,74907456,65071118,216789131,1946172544,2117894156,1179058548,1963539584,154960111,2122913653,-335598594,-2142877951,-109772740,-1753071991,-335657333,-2113485048,-1962934121,-1956684089,46292453,-326413056,1459940483,-1946211498,529204318,67258358,-4717196,-14750721,-401734538,-259325058,1179058923,1946762368,3965161,1015080052,-1947241090,-1956684089,46292453,-326413056,1443032195,-1962647925,38270495,721712132,-14619712,-401734538,-259325118,-2142895637,-344716996,1946172544,2117894374,1149956213,1592011265,-1034033781,-1957363710,250381292,1996445271,333975046,-163149565,-1962516853,38073911,-1207602175,250281988,294531,230163829,-1207702784,1183383555,205949690,1183318532,-159478788,16008903,-2146505984,242483261,1954430336,1191134985,155025652,1183509877,-1981535734,1183511110,1996443900,-159973390,-755969,-795149706,-1977838262,1174467654,2117959932,-1975034763,-466944954,-227082416,-2091907702,-10100162,1156975476,91554050,-352317512,-96040189,1259117136,-1991828331,1187509886,-352321292,4030473,-12121740,1031861318,-1963821815,-466944954,1183469632,1357130250,-624897,1996485750,1255185146,1156979861,443810306,705447562,-1974451996,-467006906,1712234576,1996443800,1259117306,1156979861,544489474]},{"sector":13,"data":[294531,1183455860,1222912520,172395088,-1605311446,1352164877,-1694861569,479546124,1946172800,1461602087,-1789512294,-196703972,705185418,-196727836,1183469640,1357130250,-193527977,-1694861569,479546064,-443850914,705117,1475119957,108432214,1709717247,-1962379521,-1959264484,-1014299562,1318735954,-1961061062,1066074716,1946451001,734497550,67306564,-947190647,1577337993,113401183,1174861312,108265876,1685063367,-1070858242,1659392080,1354771202,-939892504,-26972154,1354771455,-939788824,-10100218,1601805055,113712277,26090,1709719171,-13929472,-1201280970,726667537,1184977088,-754470508,75240,512479371,112301126,-477893677,1388546817,978229840,645930133,-2134928314,2140423718,-1553602911,113731048,37958,-1789082982,-1957313764,351044588,-324970921,-62486171,621037195,1175129600,-28931834,-1962878231,931920990,-1996340085,76282950,1962821253,12970243,-1962888215,1178205766,-385649414,113705128,36296,1684944639,-1207798529,-1873805311,296085518,-1947318647,-1953125346,-330921721,1685077635,-955222786,-26972154,1354771455,1342177720,-2097055512,9291838,922697844,397960680,512446465,939494856,-768883829,1375849088,978229840,512433301,1066112428,1961655865,734497547,1174662214,-297367058,-152150389,1946223175,112645,243286763,-16673721,-1201280970,-11534063,1183515252,-2133709840,1347551690,-1791340902,-23468004,-159913970,-964439061]},{"sector":14,"data":[-1996190972,-1072956858,1055458164,-58817537,-385649664,-1070858467,-443850914,311901,-2081649835,1448543980,-1962510709,38139452,-1962052600,-472841123,-1996078707,720109126,-1878755841,832956430,-1946270071,126550620,-1946532215,1178141764,-1961921286,1143732806,-1996225788,-1995994364,1183515716,-1956684034,46816741,-326413056,1443556483,-150988616,-1956257242,1854180336,-129595036,1358317197,1685107967,-2080881176,1962997374,-499219671,1551106149,-150988616,-1956257242,1488749552,1282669924,1683391627,-1913108855,-11471290,-396076876,1889662998,-28931740,1685063367,243335166,-2097048505,6677054,28837237,-1207702784,-1957691390,939521630,74907475,-984724070,1193705485,1183579796,1685103614,1575324510,1426064066,-326898549,1048794636,1979672034,18278659,-1989811551,1793848390,705184906,1149915364,1149915145,1346387978,705381514,-1202700060,726663200,1822052544,-2095278774,7343166,116798580,1954573854,340036397,1947616267,-344213467,1376634298,272927312,-1974410198,-1974464188,-1974463932,-11529404,1962874484,1424005652,1153899669,-939524606,-16777212,1183577166,-196724474,414730102,-194578688,-964562805,1149985902,239340300,2011759477,138709759,-1974410198,-1974466236,1077938756,189041232,1346429994,-15829761,-1281749900,-14903981,1962872436,-344221172,1793658309,1176928511,414775188,107411200,-964562805,2088985710,494206466,1183384715,-163148296,41221968,-1946755608]},{"sector":15,"data":[1207367262,91504642,-1807348096,105286408,-2090474845,-10099650,-459207052,105265509,113706615,-39452,-402360577,-1956710308,79846885,-326413056,1460857987,1354771286,-1191679512,653721624,-259299870,1684981377,1709325955,-1928760064,-397347770,267122123,1183384715,-196702730,41221968,-1946784280,56462072,-472776918,-1996209781,397996102,1183666177,-1070903052,-70719408,-151748981,1946223173,-465665267,108396389,-1553603935,1048798692,1962960354,-260636905,721176202,1346914532,711872160,1183469796,518734077,-1963952385,-467006908,1149915208,98839048,-1974468605,-467007164,721568771,-397409212,1599995982,-1017256565,-940799147,-43749370,205949951,-949622621,6676998,1175355392,1183515028,75014,244048081,-511667130,-1547629571,1996461126,140413706,-467007606,38242896,21465680,321616,576093,-2081649835,1448546540,15877831,-502857984,1709351269,-150988615,-2114417695,-2140901689,-141277658,-1995815285,105236229,1170669568,-1996488700,1183708742,-401714956,871101669,-1928968705,-397347770,1183447201,-2109832194,158597271,93815457,1174470659,-230257666,1946043963,-28931325,-1913502071,240186438,-1946882072,1979059184,138840775,-1979169400,1157820998,-2012871672,1319111237,172308590,1166683766,-1964758518,-316012978,1300939051,1942043400,172329489,671499818,1183451205,172328966,1166674667,172304392,542150,-2012985718,1166674245,71696902,1166541572]},{"sector":16,"data":[1850712075,1980450104,1685692486,1980319032,105220664,-1974934486,-316013490,326615355,67420554,-1978972792,105196225,1166590206,-971183351,-1979709115,50595397,-1609874040,1161326159,-351767029,1850712067,-1928641144,-1706031035,479545907,-1705975599,231074601,-1995684471,-1039462827,1166679412,1357130248,1342784906,1342850442,1342915978,209059666,-1789717350,-2147095780,1083459086,1166655531,340101398,1879836217,116803444,1954573854,272993600,138775888,2046212176,1228380752,-1073013611,699938676,231062251,1166692434,1357130256,1343309194,1343374730,1343440266,-1789617510,340101404,186013065,-351373886,503772679,91488878,-1807348096,174948480,189660674,1709324031,1358954168,1697872,-1807350026,722105602,922702016,451438050,-1956684286,146955749,-326413056,1460857987,1620054,-1962383625,1858503152,1392967268,108954478,-385649410,1149894791,1357130248,1342784650,1342850186,1342915722,1342185656,1342178232,-1790284646,1703131164,138710352,833616,28856400,726683648,28856512,-560312320,-1927506635,-1706031036,479541216,-1996209013,1149896262,-1947981301,155486968,-150583765,768017368,1183383555,105155332,71711560,1149901686,1222912522,1166889032,195055871,1357130342,1342180536,-1790243686,105286172,33834026,-1057093308,-940423544,64582,-125049814,1074283658,1149917008,1222912522,71732048,50742827,-1202700089,-1202716640,-1706033149,479545964,1183384715]},{"sector":17,"data":[-196702730,1256722000,-15995918,1183710278,-401714956,1183576700,-62506746,-1427509902,-195130624,67258358,1183468404,-1947981070,172264184,-263812792,705184906,-297367068,-11055040,1166930038,-56602623,1357130341,1342180536,-1790284646,-260636900,1711382615,-1202658262,-1706033140,479546124,1475245823,-345636704,-230258116,-125049814,-1995946870,1464921670,1208632458,-196702896,142016336,-1963562008,-467006908,-1604890552,-466983425,833616,1259117136,1996430485,-23046162,1357130341,1342180536,-1790243686,-62456036,-1913501954,240186438,-1947088920,1178141766,-385648644,28901195,786976768,1286249202,1600003221,-1034033781,-1957363706,82609132,414733911,-500762880,-2114942107,-1956352314,2114126460,108804356,-8188553,-1962510849,-347142532,1476340482,1709324031,184552680,1591702720,1575324511,1426064066,-326898549,-1202301172,1727463448,-2114417916,-2090570041,1962804862,105220889,1913013817,108954385,1208382975,-351910263,105301765,1166737408,105265410,-1070907276,-241178544,-1807341952,108954615,-1961069314,-129595131,1358317197,-402229505,-259264170,67257590,1187455860,738196998,-236433216,105286642,-1207810679,-397410303,2122576229,309657094,-352321096,38073871,-2132642752,143934990,-1070867477,-443850914,311901,-2081649835,1448545516,1709325955,-1207601920,48955394,1183432747,1620212,1709319927,-2054424437,1183409262,-129593862,1890975568,-253695900,1157034123]}],[{"sector":1,"data":[158662914,962978977,1986388486,18462738,-129594032,1354771280,737556968,-953291840,-26972154,1354771455,1342177720,-2131175192,26494734,1342247352,1358448269,-386631937,1290335762,719851254,112878,-443850914,-1957313699,317490156,-164932009,-17152313,1620223,-1962645769,1887931352,-62486172,-2012854646,2122575430,242548484,1879473793,-2129825279,25101950,-21494153,11463167,1643019904,2122321010,108493550,552496768,1183454699,-1947981074,2147451896,-1705571978,479553480,-2131868024,-275495386,-150988616,-661978010,1684965259,-1913502071,240185414,-336625432,-28931537,-125049814,1988099971,-929409271,-2011392665,1183514182,-28952338,2122516853,779484922,1190819465,1357923981,-275847154,15761027,1183658356,-1326952208,-28931853,-478887926,-1183686340,-1250461124,553545344,243320043,957387846,-881591178,972834443,58194502,-1946519927,1600059974,-1034033781,-1957363708,317490156,414733911,73856768,-964562805,1187472494,-2097151760,1979647102,-83963,2122543083,1114963972,1358186125,-336717336,-263782646,1358186125,-2081538584,1946219646,-45708580,1963542072,138840808,-125049814,-1979955574,994635334,-1948878905,1174662726,1925659646,-263812148,1183459307,-1964758519,-316012212,1141096747,1183401988,-49680,1149962356,-263833338,1187502965,-335544592,-1956684076,113401317,-326413056,-1593512829,1183409634,-28915716,-12779520,-955943425,64582,-1807350026]},{"sector":2,"data":[-952994815,130630,2122525675,762642428,-150988616,1980103782,1183469668,1357130246,1342457482,-1790385510,1958742812,-62485755,1325338347,-28931076,1945912889,-18227,-1034033781,-1957363708,384599020,1988843095,1514046214,91488356,-1410744277,138709766,-2080749943,-26972098,-1202314892,-1706033151,479554690,326418443,-386238721,-1070860809,-1706012592,479546899,-2130662679,33817212,2088830836,1963066882,1174861324,91554452,-336335128,41714099,57868800,-2130531351,33751676,-1578564746,1849590530,57999460,-1962764311,1418397252,-62486264,-1963043191,-466944442,-12154288,-16390064,-2114697591,33620604,2088830836,1963066114,1174861367,812974740,-754045,1048774517,1979672034,-193035361,-1207601921,48955393,19251243,-1948200704,-2137766386,-1056178719,-2137766237,76826126,-1807350026,-2096073470,-26972098,602473333,112895,721800681,1347440832,-1790045286,1392967196,-25755794,-231681,-236391306,-129594883,1709325955,-954698241,6676998,-193035520,1024226560,125173758,1342177720,-2081475096,1979708542,1709351174,-1577826679,1178166754,-385649932,414711957,-194578688,1183570059,1887910392,-1959692956,961016958,1986388542,-1070901479,-178788272,1709850243,-1710525182,479551353,1709835975,-21495808,1183535359,-397393676,1709964125,16023171,1183517300,104546548,376661474,737441535,518541504,1601805045,113712277,26090,1048782571,1946314218,-365001953]},{"sector":3,"data":[91488357,-1788905062,-399048932,243813,1599511120,113712277,157162,-1807341952,-2095911941,40233534,2040138613,-954428065,6679046,-365001984,460653157,33717377,-1709935614,479546538,1852227414,129566494,1587933696,-2080448791,23456318,414716277,-194578688,1183570059,1887910392,-2096663196,57010750,2040138610,-954428065,6679046,-126419200,-386631937,-1072956767,-1070920843,-302585776,-17283385,-365001729,208798565,1852227414,129566494,1587933696,-1807350026,-2094369784,1962996862,-176560123,1048779499,1962960362,-399048941,243813,1599511120,113712277,91626,-1807341952,112891,-305600432,-1790137702,41713948,57934338,-151108887,76826118,-492755596,-196724379,1996430708,1354771444,-2081162008,1962996862,-243406843,28847339,-1880600576,-2094797843,1962866814,1709351404,1978943033,-365001974,561316197,737476328,1183535296,-397393676,645986793,-1694657466,479551353,1709835975,-521601024,-93263619,2088888555,1964054530,1620015,1709319927,-947783541,-358521746,81253,37556596,1029796864,175243267,1979712573,-402396318,113767595,26090,-1807350026,-2096270078,1962934908,1883145045,1316290148,-150988616,-1956257242,1854245880,-330921628,1357530765,1685108223,-1192550936,726663169,1996443840,988912362,54336661,-385649664,-1192690337,-44439056,1214636705,1354771280,-1192025880,-1706004890,479541472,1187485931,-2130706186,16843388,1048659829]},{"sector":4,"data":[17982958,2088845173,1963004420,-499219656,829751141,1631469184,-2094828544,-26972098,283706228,1849590781,57999460,738002665,2011713728,-502872084,-369098907,1187511543,-352321034,41714018,57934082,-2114188823,17958012,28312692,-1070988565,-10404190,1996424308,-256972550,57982987,-2114140439,308670014,-1593281535,1144612334,-1593281532,1144612336,-150506236,234945094,1190637684,1946681594,-297893624,1946227301,1883144970,58064484,-2080656919,6581822,922684789,330851816,1788497921,-2095278790,-26972098,-2048326796,-159481088,-954764288,6676998,1354771200,-128718768,1342177720,-370422296,1048705948,17982958,1810432884,41714171,57934082,-2114231831,17958012,113709173,26082,1342177720,-370433560,1048837159,1979672034,-502872314,-1962934171,-461309370,-1070903295,-114628528,1039681161,58064894,1358636521,-397361109,116848625,1963496518,-80025341,-369955096,2122578740,1534329078,1686519427,-385649408,116850300,1946260550,-26023677,1347469355,-1192125208,-397410303,414772026,-500762880,-1946645659,-1989906811,1183706182,-1241558806,1340630128,-399048727,18004069,-362902704,-1014286337,-897527253,-1706012158,479541838,-2114221335,16908924,-2132212876,74776571,-16222977,10094196,-1591962311,1144612338,-385649404,-190710264,71580005,-35060875,75268605,192217362,1710112385,57999634,-1946465559,222102596,1028551680,57999653,1023443177,1316225318]},{"sector":5,"data":[1963009853,9890051,1946232893,922701889,1038640610,-129594888,1979711037,243728,91797584,1451334224,149494933,-126418949,1709324031,-151587608,278152710,-186055820,1174861562,762644628,-369656344,1048836839,1946182790,75268374,91554086,-335544392,112643,-159193008,-151336215,143934982,-1058471051,-239212294,-2080720151,40231486,-492757902,726681701,2062045376,112880,-367466416,1342177720,-370642712,116849303,1946719302,75268366,125108519,1709325955,-2084408064,23454270,2028536694,1174861562,57934228,-2080739607,23365182,-1992245221,117369414,-1070895533,719867984,75268592,91554085,-335544392,112643,-168105904,15367811,116787828,1946719302,-248125437,-1790137702,-97654500,-443850914,182877,-326412912,1443687555,-1783888185,1183514624,-96040694,1358448269,652742288,-1913615385,-1873741754,-417601522,2122531307,645136390,1073890550,914956404,1552584136,-771806717,74514403,-1207404801,240123905,-1979731224,-1072957882,1552559733,-771806717,104893923,1183707275,244338936,-1947789336,1962281968,956599057,-1300953018,-1543879029,-963930708,-1070923029,1575324510,1426065098,-326898549,28857858,79187968,-1466281984,-1962031637,-954430480,-956301305,583,1575324510,-326412853,1443687555,-15960321,28838518,-401715200,1183448891,-129593864,-401698736,1183444542,-1706025226,479548981,-1946925431,1178142278,1208840948,-1946925431,1988822622]},{"sector":6,"data":[50696,-624897,1183516790,-1706016524,479548736,1593067147,-899816053,-1957363704,82609132,-28915882,1586167808,-348681466,151292677,-964428218,3965700,1586230133,-1960867066,-789053882,1586169737,-1591768314,1200186860,105286402,1583738019,-899816053,-1957363710,49054700,2122536535,141885446,1709967047,921370624,962981025,208995910,529258635,-1560131701,585852396,-351897973,-1961063675,-167050633,478876788,956712587,-311098809,1032583307,-1996339829,1599996487,-899816053,-1957363710,49054700,1849098070,142016356,1342177720,-28973042,-166989685,2122518644,108265478,-33397632,1283458283,-1956773630,80371173,-326413056,1443032195,1684944639,-1207404801,240123905,-1946283288,1962281968,108954384,-2147060736,-352189876,40140804,-443851011,313949,-2081649835,-11140372,-10195402,28837494,-401715200,-259260961,175437323,704791690,140772,-1070923029,1575324510,1426064074,1560281528,1426066122,-326898549,-1957275896,2123041398,38046472,1027080229,225773568,1996445526,2115213830,-1679221611,38046464,1027080229,91568128,-352321096,-1983894782,1150024774,-129595104,-1994505077,1153956422,-1979711460,-146958331,189166847,1024816320,410255486,-369013,92994118,-16283577,-545916850,-956670325,1290469383,16547459,2105598581,58031617,-1948652729,138816455,-919934838,704726410,-1983380508,-347661236,-58817614,-1950518016,138816455,-919934838,704726410]},{"sector":7,"data":[-1983380508,-947708852,-94467326,-956676353,-1477763065,425603,-1705638284,479549757,-443850914,445021,-2081649835,1448543468,-1962248565,1149962366,939533570,1946681405,268451102,1149963636,-62486242,33441479,1445915392,108461911,-571994480,1446046488,108461911,-1786876262,-1960514788,1178142278,-1961462530,1191181406,-2012771588,1191134981,-60912642,1962950528,378594,1593722507,1575324511,1426065098,-326898549,-1957275882,1149963894,67118338,1458980489,1358055053,-1789369702,880575260,-1962576896,65742916,-1946157128,-179926280,1183441962,-263796754,1183514624,54541580,1340670837,-385649148,37553878,-385649407,58066334,1023841513,410255366,1962936125,8775939,1962936381,9890051,1946160957,111667465,-385875272,1157039226,1946550274,408718106,-2147334261,1418428388,-753946366,31622122,-1039408429,1442989961,1348830136,148727,-1979353984,48969284,-467008336,38074192,91521024,-348765046,704950274,-1070903068,1504090704,-397009771,-253163840,38074113,192184320,2522243,28837236,721611520,-1645635136,343704326,-385649408,1962869199,59160596,724893520,-380612416,2088960442,57999380,-16664855,-2017979276,-2082084093,1979648638,645694243,-955812608,10308,727058411,-1628942144,-1070901747,201254992,3425479,25553152,956974731,58140228,990237929,-385649209,1347814861,-384993048,-11140757,-1070921098,38074192,125075456,705054346]},{"sector":8,"data":[-1207702556,-864026620,-1684385790,-384002726,909705543,57959514,-167690519,1952451142,20310275,-1962522997,1183385686,-27883012,2522243,2062091125,172422661,-385649407,1317012849,909705712,276063322,972921430,-1202316139,-1706033143,479551318,1611286262,-1746336908,-2036705792,-1709402822,479541890,57984571,-1979661335,-466944698,-1994111997,2122577990,343146742,721176202,-768915228,1094470795,1727525367,-129629714,972572299,360130116,99632839,880575232,-2147191808,-1089408946,-2115371009,209617152,661979651,1979219513,1513503010,-1710590620,479541784,-1788905062,343211804,1342406840,-1070910209,1375732154,972992489,74840190,284184192,1459617727,-386369793,1055591529,940131466,108265286,216721494,1149907179,-12175349,-397015438,585829500,148727,-1977912316,1178077252,-385649666,1149894841,-28952566,-1202321294,-397410303,2088963373,427032628,1948810297,343211796,1342406840,-1070910209,-260636848,-1791340902,112668,956444137,1969510966,-263290667,1962890753,1599511098,2023758997,155465825,-397008522,1149897844,1222912521,2014218824,1005398625,1454077633,37387395,28846451,-1608062208,1144545656,1445885707,-1978930200,-467006652,243941440,-315989640,-2106080965,981238614,735539714,978095040,-1056708143,1599511120,1776884885,38074367,58000384,-1593876503,1144548747,1443591688,1342177720,-385071384,-1952383156,172243053,1105789814,-13178369,1683633721]},{"sector":9,"data":[-1360460940,974690819,2040142997,-14903969,-2135419788,889147395,-1174404680,-1024917502,-330905602,2088960000,57999398,-2147253015,-1962741682,-1073018298,20788596,1026257920,947126274,1946157885,277803,255669620,-2093452288,1962994814,-18945789,-327745706,1342177720,-385435416,1191182032,-1774612,-538186674,-1980873077,-672404410,-135379317,-1946883112,1143670342,-1250524,-2135419788,889147395,-1962933576,-1706011952,479541838,1187492331,-2097151764,1962944124,50587907,49303168,185222795,1026716864,645136385,1946157629,212279,71117428,-2093714432,1962994814,-27072253,-327745706,1342177720,-385355032,1187511892,-352321044,-330905630,-605290497,-1992407925,-739513274,-146914165,-1946883112,-137221177,1183575670,-137721082,-1056706970,971654793,125249092,1210467467,1458194057,-387287297,-1544877511,213444694,1459496681,-16091393,1183450742,1357130248,-385013016,-11076553,1586169974,-1976041718,19137092,-920977092,-11413001,1200227958,1357130242,-384977432,-11076113,1996425334,105286154,-397351894,-588705293,1996445437,108461832,-384802328,-947126833,-1914056149,642026242,-11077909,1996425846,-1712845304,-1964381421,-466947002,1149847624,176063292,-948931328,81476,148727,-385649404,1150025111,-364476136,1149950091,105351174,1200146686,88377860,1200144638,121932293,1200146686,38243079,205513856,1071939585,-2130554997,197132513,38242753,1492687443]},{"sector":10,"data":[1149967509,1004830722,-2147300224,1284194276,14778626,-1983837248,-1705639356,479549688,-1946339607,1149831750,-196703682,726197290,175568850,1011124552,148727,-385649406,1150024983,-364476136,1149950091,-2000617980,1149895751,-2000093690,1149896263,122128391,1200146686,38243077,-1950351323,-511638961,-1056227330,1392658313,-1789331302,38046492,-2143427456,-2081749812,-16091393,1996425334,956340742,1317018773,1183515632,19086602,-2098658443,-385649152,540868749,1029010432,913572129,1946231357,10545437,148727,-385649404,451477741,38074365,58000384,-385818391,2122579036,125042934,1047854934,1459485161,-370247937,2122579318,175374582,1044679510,-380577545,-1957233182,-654840250,-44242608,351291079,-16640,112726,112650320,-2080627735,1962944124,-65345277,1354771286,-2080648983,1962944124,-66393853,642026326,1038936904,-613154524,1963009341,-8853245,1963009597,-71767805,1963009853,-9049853,1963010109,-71898877,542455,1448113420,-401967361,-1073018552,-907476108,176063483,-2126745056,16779902,-1175911565,1026616315,57999636,1039996905,57999637,1039961833,57999872,1039824873,57999873,1039827433,57999874,1039946217,57999875,737833449,-36378176,1963148861,-36247293,1094527607,-385649405,1111358825,-385649405,1128136107,-385649405,1144912337,-385649405,1161690536,-385649405,-940835399,1963149117,-39982845,1963149373,-43063037,1963149629]},{"sector":11,"data":[-45946621,1963151421,-102569725,1963984189,-111810301,1964054589,-79435517,1600034283,-899816053,-1957363702,82609132,74877782,-62485162,1482857040,-1923736427,-1202652090,-145752032,-2147483068,1149896052,-1341985994,1357130244,-1789224038,645694236,1444115456,-1974419413,-466944186,611647312,-397361109,-397016933,-1956773881,46292453,-326413056,1460333699,74877782,148727,1450603526,1358710413,-1789369702,38074140,812909568,-1996536182,-466945466,-1946794359,726148676,-159975470,1962932363,1354771224,-577089449,-14903951,1149966452,-137221336,736884342,-1977189237,-466944186,-8128469,-1090290431,1962868737,1354771224,-577089449,-14903951,1149966452,1992768292,1355254530,1342177720,-1787686502,-1956684260,46292453,-326413056,18672769,1988843095,38074124,91521024,-348765046,-2012958718,1962928710,291891244,-1979955575,1962933846,291104810,-1980873079,117370966,-1923715501,-1705971130,479549538,-1992407925,1187445318,1183449590,-213505291,-18315640,956712587,460792900,-18315638,-930356182,721831563,-768924604,1409544695,-128546524,-1962836247,1183385158,24504824,-1980217717,-2037774778,-466944280,-1963440639,1183320646,20572652,2915459,1586183028,-991702778,-1960382850,-460945151,-49666,-2037569676,1343684330,-18577781,-1946401277,1347616342,-1789540198,-457274596,-60898050,-12482010,-336968056,1996445208,-297366266,-62485168,-360280752,1183666430,115888362]},{"sector":12,"data":[38074128,108363776,82462406,2122321131,108396522,-2009709430,-2037519802,1343684330,-1789512294,-427390692,1011104766,1149962102,-427390660,-163149058,1183369470,1011124978,-17414654,-196704064,-1997781366,-1057033402,-2081077624,1946158206,1183667732,548950258,1183469568,1357130474,-1789224038,-330921444,-125049814,-163149226,-2037557424,-11469078,-1963006282,-466949562,1510906448,1183521941,675559686,2088977781,1064566836,-17414518,-230258488,71058434,-196704254,-1997781366,-1057033402,1458914952,1342394552,1358055053,-1962518901,1347565636,-1791340902,1183471132,1088695026,2040158032,-14903972,1191052870,138840812,1944864312,105286420,1982219321,-21698301,-18446649,954793984,1011124991,1174454526,-96039946,200953599,-385649472,-1432682882,1578931532,1575324511,1426066114,-326898549,-1957275888,1157040246,1946419202,1996445197,74907398,-385770776,1149960591,-196703964,294531,727058292,2045268160,1183667714,1654280438,-1977838248,-466945722,-1946270071,1174664262,1183402238,105286642,-1980479997,1183579206,-230292730,-2080749943,2097216638,-62470386,1183514624,1183402238,-1961038854,1178150468,1209299706,737822345,-1992229306,-1072956346,1187448189,-1962934020,1177287750,105286132,958940299,91486790,-335919477,675580683,1996244537,-62485754,-1960295287,1149893702,-196703452,1996244537,-230257810,1945912889,-28931482,-2012854742,727117894,-1974447936,-466945978,-263812528]},{"sector":13,"data":[1354771280,705054346,1134186724,-1977838245,1183379526,1183667959,548950262,1157058560,1954545666,910461445,78643947,-1705974742,479550107,720848522,1459129316,-28931497,-62485680,726714115,-1058516800,-1955402756,1178203206,-1956743430,1178202694,-1957268486,-654899642,720389768,1459129316,1464909867,720914058,1183469796,-28966394,1354771280,1531157072,1183456405,-112817936,-163148458,2144336,38074192,91521024,-348765046,704950274,-1684385564,1444713818,1464909867,-335776001,-196703340,1962690105,1709725188,-1192732933,28858107,-35106816,-1956684288,113401317,-326413056,1460595843,141986646,294531,727058292,-571977536,1183667712,1654280440,-1961061032,1183392836,-79262986,720651912,-1949791260,-503904698,-1980348925,-1072955834,1187448701,-352321282,642026268,1929266745,-196703724,-125049814,1210467467,-134753749,1183442935,-196703490,-125049814,724059275,-1997015086,1150024790,-28952280,1183522166,717916926,1002505197,57812548,-1946255831,1317731910,65874684,-1977291839,-466947002,1150023819,65533758,1183448646,675580914,2012366393,-62486003,1174660138,-1983435790,1183524932,-28952074,727062644,1183469760,1357130484,-1979824501,-1202707388,-397410303,-396952745,-1202259261,-397410303,1599995912,-1034033781,-1957363706,250381292,1988843095,645694214,-955943680,1094,1445493899,1358448269,-1789369702,38074140,1467286528,294531,2084126068,-1978697948]},{"sector":14,"data":[-466945210,54420727,-952425404,1183459703,-136041733,1284193892,-1983370458,-818154418,-1047853197,-349944695,612141315,1635532416,1443132416,-1946554392,608447175,-17217912,-79263552,112726,-1979664663,1177221958,-163149575,294531,2084116852,705984036,-196703772,-768882805,-134973705,1149891686,-2092766428,1946158206,-79263161,1693967402,608437054,947373883,720782986,-196703772,-768882805,-134973705,1149891686,1044679460,-194578616,-1947056503,1178149956,-1962510350,1143599686,2084470820,74711137,-110696362,1143719819,-62486236,720782986,-230258204,737953419,-227084334,-17213816,-78214974,737953419,-227084334,-29602678,-1998457151,1141045318,-2013133764,-1974011322,-466945978,1183469632,1357130489,-1789101670,2084470812,1014235233,294531,-1202315916,-1924136112,-1957627834,-812959676,-919873141,1347605387,-1791340902,-954602724,13380,720979594,-230258204,1346392150,112727,-104994736,294531,1153893748,1577058612,1575324511,1426064578,-1957237621,1183516278,675559684,2088961653,359989300,1354771286,-1946268696,1149830214,28857896,1038635008,-1034068226,-1957363708,116163564,74877782,-62485162,1482857040,1183456405,-136041729,1141063268,1183402020,880575482,-1960283136,994060356,527640132,1354771286,-1946288152,1157572676,-96060632,-1202320011,726663169,1055412416,1443425275,1342177720,1593696232,-1034033781,-1957363710,1988843244,880575236,-2094697472]},{"sector":15,"data":[1946167420,-1070901729,-37820336,-14138229,1144727628,1443722532,1358954424,-397361109,149682941,112726,-39917488,46292318,-326413056,1443294339,1443264139,1358710413,-1789369702,-12154340,1727521834,-96040700,1915241529,1149982219,-96064728,-16521136,1575324510,1426064578,-326898549,-1957275898,-1923742090,-1705969082,479549538,721241738,-1946645532,-403241914,-1993849853,-768868794,-403179529,1931887675,1149982225,1178290214,-1962707202,-397345210,1600061113,-1034033781,-1957363708,384598508,-1957275903,1187448438,-2130706184,16712830,2122516087,91430916,199868459,679250689,3439747,960956532,41363068,1962934059,162129964,-1980086647,1962933334,161343530,-1980479863,2122380886,209477892,2047114880,1854080639,350953476,2131000963,1183452790,-1705994236,479553480,71731608,2915459,-947182988,1589960913,651690996,1183385483,-49684,1174605428,-61436934,-1980742007,535556694,1183668054,1183666420,-2037559046,726728426,-1494724416,-360280824,-263812610,-990751092,-1977159586,-297367545,-1024373,-1977159610,-364476409,74657852,-327827446,15367808,1183450741,-364476178,1642757760,2122321020,109017834,552234624,2122322923,225869802,-1729476982,1741199952,1183325333,-364475670,1963214392,-396929524,1187511709,-352321032,2084128528,721581862,679229951,1206453108,-129594369,-443850914,311901,-2081649835,-1957296916,2088961142,427098174,-62485162,1482857040]},{"sector":16,"data":[1153899669,-1979711170,-466944442,1149847624,746357564,-15043584,1956260980,-14903823,1956260468,-954427919,11332,2770119,-1983894784,1149838404,675580198,1446265993,1342177720,-1705983957,479550585,1575324510,1426064066,-1957237621,-11138954,-1070922122,16758864,387152,80371038,-326413056,1460595843,175541078,16925942,-11134603,1996433012,112648,108461904,704923274,-2014818076,-2088899840,1962944124,-1070901751,142016336,1962926827,132769836,-1979955575,1962933846,131983402,-1980479863,1187509846,-1962934022,1183393348,-96039944,-1711782397,-120470997,-14747509,-523171722,66346692,126559960,-1946401277,1347616342,-1789533798,2126514972,21335304,-335919479,-125925117,972572299,-1048774074,-92864682,721975039,-9115200,-443850914,574045,-2081649835,-1957293332,2088963702,57933862,-956253207,3208262,806125187,1183519346,3091724,-388823631,537256147,-196738816,1342177976,-1727921992,-224767918,-1994615312,-1073009596,2122520181,1047855112,209125206,-402098433,1183516019,26929416,1342177976,737429131,-773795374,-1706011950,479588594,187319433,-15501888,1956260980,-954427919,11332,556675,1153942132,-956301266,9284,3163335,-196703486,-953006967,10308,2915459,1962878068,113895466,-1980742007,216789590,-2081399100,637726790,-63545,-768373,-1072958386,2089020021,208994348,556675,2045313909,-9639425,992363659]},{"sector":17,"data":[57871430,-1995684213,1144649286,728332082,95498820,-522983213,-1996480507,1962929734,843352874,737035779,-773795374,-1202695470,-1706033150,479588631,200558217,-385649216,-397344986,1183385167,-229209616,-785234805,-263847456,-1980479861,1183525444,843317742,1589906667,-263814160,130491906,1183580159,-296812562,-361381877,957105803,1031153220,-399870721,1317733903,65130764,-1983738936,1183448142,-1957605122,-27882559,1375732229,642026320,-787724757,1905938656,-1961061035,1144589382,-16353756,1157571652,205949736,1998996537,1149845510,-16520410,-11131324,1996426358,71731722,-11475926,954730614,1183667712,1654280440,-2095278760,1946158718,205949726,1998865465,-79263210,1693967402,608437054,1980515899,1033524742,-1206086311,-1956773887,214064613,-326413056,1460595843,209095510,556675,-14807948,899287158,1075615062,-1070923029,-1946663287,-1992282556,1174665798,809778168,1962883186,809798444,381483,1389499137,178256,-250111408,1183390869,1975520246,1996445199,74907402,-1962708248,1760232518,20006016,-1980348789,2122525764,125108232,-375097,-13308929,15215732,-230258427,519329417,-1962379521,1174665798,-11513102,1905981558,-1961061035,1589967486,105286386,-12482522,1090012811,-13745151,-857200012,-62486268,-1946265975,-472839586,-1946386748,-1993934266,112641,-443850914,705117,-2081649835,1448549612,-16222581,-1662505868,-96040700,-239991]}],[{"sector":1,"data":[-1863832972,-330921724,-2081532279,1962945660,14149891,-788111733,-327236381,-1996387546,-1072960954,-1024916619,-49920,1174617972,-61436934,899305554,1075615062,-1554807,1183574606,-398064662,-1946532349,1347615830,65685131,1347615302,724452491,1177283142,1905938664,-1961061035,1143597126,105286446,1174659281,-296317972,-1980610935,1183577174,642005254,1183521396,132594,-11382702,1150022262,105261862,-1705975599,479548785,-2094641921,1962928766,-28915902,871038976,-771864949,-330955808,-1980868981,1451877446,-463551258,-1995994330,-12718010,-1961790209,1178200646,-1962315024,1177284678,126428904,-1946269953,1144651334,1455781670,1358317197,-1789369702,645694236,1443984640,1342390456,1347469355,978229840,904600725,956712587,209069124,-2094772993,1946167420,676134659,958809227,57813060,-2094510849,1946166396,-112817648,1141105706,642005796,1291780982,105286436,1998865465,-112817636,1693967402,608437054,1913013819,75399948,1443263488,-1789313638,-1956684260,113401317,-326413056,1461120131,175541078,-399739649,1183384343,-27883012,-399870721,1183384331,-162100748,2915459,1586185844,-991702776,-1960381314,-230258431,1962934077,-62520525,1392400011,1996430928,1439209990,2122325141,259391236,-990740853,-1977156514,1183383361,-1962022140,1589965438,71731964,-12482522,-129594026,1482857040,1183456405,-112841989,-1947187576,1144588358,-385649116,1183449315,-136041744]},{"sector":2,"data":[1141063268,138820388,-790035593,138840832,-1994111957,-14750138,899286646,-1994615466,2122378310,292945668,148727,-1979353984,48969284,1183319216,-297367036,-2080815480,1979793020,-263812565,-930356182,737035915,-1963853870,-1040303028,1183375862,1011090168,1183318532,-112817414,1995891754,-110720784,-17217910,-79263552,704923274,1459129316,1358448269,1342185656,1520147031,1183456405,-1981535496,1079437894,-112817584,-11475926,1183450742,-364499974,1178290248,-1962707220,1464921158,-1789260134,138840860,1965573177,880575260,1444312064,1342394552,1358448269,-1962387829,1347565636,-1791340902,-1956684260,146955749,-326413056,141986646,294531,2088971892,443809836,-1708362497,479588724,-1708493569,479588724,2901191,709150464,1183514624,642005254,-1992287369,367732292,-1206618881,-11533440,-1161811148,1347551235,-1791340902,-1034068452,-1957363706,250380780,-1957275903,2088962678,108265510,3439747,1586170741,509448,-1561739221,745864960,-1996410136,-1979777914,-65898,619194996,-192509695,-157906434,746357758,-1960479744,-472831908,-1030825981,-2092987610,343212031,-17004917,-16869749,-2037790973,-1769341192,636223226,678756182,-17529203,-58290864,-2037559042,726728448,1256739008,8817920,-125400577,-90796802,-88670210,-122224642,1446353662,-1992287083,1006563974,125175366,-1996077429,-68986,-66890,520026294,-16222465,-1694567754,479548785,1577469579]},{"sector":3,"data":[1575324511,1426065098,-326898549,1988843010,75399950,-1928956672,1183448646,73304836,-1946220602,130418270,112640,1996444496,-13304052,1996431988,509411076,2522243,-11135883,1996426358,1354771206,16758864,-121051056,2088967403,376700972,209125206,-1962510593,126485598,-1202658262,-397410303,1962932903,1959980,-1995940213,39291143,-399870721,1586167823,-1995994870,-1956773289,214064613,-326413056,294531,-1070922379,-15930471,-1785068426,-1961060879,1572875202,1426064066,-327029621,1183514890,138808070,1586171764,105286410,-1995942261,1468603975,173968160,-1960949877,1183391831,139888902,54573139,980064848,-1070916459,-1957670832,939461214,-1205700609,-11468801,1183385182,-62470146,-12779520,-1962314497,1207306846,1500774658,-17135930,-25263105,-1962380033,1178205766,-1200458756,-1924136959,1358888070,-231681,1586232390,-13107446,-2037570953,-11469062,-1073019298,1996443508,54638602,-58290864,-2037755650,-466944262,-1070870389,1318735954,186422586,-340888112,-25263316,-953781248,16709254,-125385216,1996488702,55162890,-158954160,1183535358,-796178178,1347600427,-1791340902,1575324444,1426065098,1996483723,54835210,1354771280,1318735952,-1961061062,126421086,1979711293,-339727612,-1962439928,1194003038,106859300,-899872887,-1957363706,242679788,-15960321,-401733002,1996488401,142016270,235304703,1560282344,1426066122,-326898549,-1957275898,1065551966]},{"sector":4,"data":[-385649153,1586168039,645890826,-1961790208,130484318,1586233343,509702,13494528,-1928694017,-1705968570,479549538,721372810,-1980724252,1586231926,176065288,1210467723,87817099,92996214,1586169737,1048544010,-1958316543,1727479367,-96040454,-1962516853,-1962570757,994703950,-1962772799,142511041,41289019,126420363,-1962516853,-137221369,721914870,140413890,126601355,-151530965,1586219523,-351303418,140413759,1586182027,642222858,50749067,-95515897,-1053045245,2123042163,-96040182,52839723,-1962440250,-1962636301,994703950,-1962772799,141986753,41288763,126420107,-1962385781,173968183,-1962508661,-1996149818,2005476423,175570728,-1789313638,175570716,1342391224,-16228725,1354771255,978229840,1600003221,-899816053,-1957363706,283935212,1996445185,-401698804,-661931332,-1995946101,-1946223994,645891032,-2096729088,1962947711,140413705,-385873978,-1635057501,2139356922,1047789612,-399738881,-2037777085,-1769341188,-1634992386,2013265658,-47060950,-17660279,-17525111,-787849589,-222903069,9119486,-17005053,-16869749,-17398135,-17262967,-1224791829,1996488442,-226063094,-2037559042,-1924071684,1358889094,-397361109,-2037515167,-2037776640,-1769144586,-1224737032,-1224737032,899350262,1075615062,-17791351,1980122683,105286407,-17791351,-17254657,-17385729,142016286,-17778945,-1789562470,-443851236,576093,-326412912,1560692363,714,788529152,-1301775820]},{"sector":5,"data":[-1342171648,1377850189,1412263541,543518057,1919052108,544830049,1866670125,1769109872,544499815,539583272,809056561,1766662188,1936683619,544499311,1886547779,568066072,571342848,-1973878784,-1964565355,-1973871467,168631445,118358052,3411764,1051918337,458752,2,68484,17435653,65597,0,66436,17435668,131133,0,65668,17435683,1,19726851,1,19596291,1,19596547,10,85722626,61,479537866,11665588,179306508,1124678405,-603979776,117440579,512,256,302252544,1793,553915904,17531905,168166656,16792833,0,256,889258496,257,889324032,17007617,168171264,33570049,0,16811008,168175872,-1308599807,-1342175232,2097189,32,187631118,65623,23549,131076,193200128,134545409,3997962,1,58982400,135397377,58982666,136249345,3997962,2,655360,33816576,3999013,717881344,5381269,524466,432,0,637997824,16798730,6142976,33555712,-2080374784,83886347,1023478278,256,16777216,33554432,16851202,33554432,16851203,33554432,-2080300799,335544579,1023478278,5046784,852146,637998000,16798986,6233344,33555712,-2080374784,16777483,1023478278,256,16777216,33554432,-2080300797,218104067,-2080306682]},{"sector":6,"data":[419430659,1023478278,512,16777216,33554432,1241587969,134263296,101953536,5639466,1622343681,589824,2,68484,17435138,65597,0,1,19071234,1,19137794,66436,17435151,66436,17435164,131133,0,1,19006980,1,19007236,1,19005956,1,19006212,11665514,263192584,957232135,1174405120,100663402,512,1476397312,100861440,1793,520294144,1308625153,67438080,1793,520425216,257,738722560,17531905,168494336,16792833,0,17007616,168498176,33570049,0,16811008,168502016,-1308597759,-1342175232,1836020294,1867776058,118161466,4851770,1948188673,327680,2,4194305,17498628,7,18809363,68484,17433863,65597,0,66436,17433879,131133,0,65668,17433895,11665492,1152385032,1952803941,539893861,46,1543503872,872877568,318785294,8018688,33556224,-2080374784,83886347,1023478283,256,-2080374784,335544579,1023478283,512,-2080374784,587202816,151063051,33568768,151063810,33570048,-2029971708,436207616,16846084,251658240,16851458,33554432,16854279,33554432,2080451848,134263296,1632677888,1953391986,1835101728,1308637797,1679849317,1667592809,2037542772,1835101728,773860965,118489088,4984629]},{"sector":7,"data":[-2127233024,720896,9568259,68484,17435653,65597,0,66436,17435668,131133,0,65668,17435683,6815753,17432833,135,17629451,6160393,17433380,6226053,18875649,7536773,18155521,8126598,17761571,7930118,17761827,8061446,17762083,7865094,17762339,7701510,17762595,11665582,1152385032,1819308905,1327528289,1869182064,1308652398,979725665,1919898368,2036473972,1766064186,1634496627,1768431737,1852138596,1937339183,544040308,1701603686,1698955379,1852138355,1735289188,1685221152,1308652133,6647137,1702131781,1869181806,1631846510,1392534900,6650473,1802725700,1701081679,114,704643072,704653870,10798,872877568,16796942,9804032,33555968,-2080374784,83886347,1023478283,256,-2080374784,335544579,1023478283,512,-2080374784,587202816,16845323,50331648,16854530,50331648,16854532,50331648,-805229051,134263296,118206464,4524090,-1785135103,393216,0,68484,17433862,65597,0,66436,17433879,131133,0,65668,17433896,1179709,0,1,17106176,1245245,0,1,17106227,1310781,0,1,20250883,1830092861,218149376,50900992,4786492,-1785135103,393216,0,68484,17434119,65597,0,66436,17434136]},{"sector":8,"data":[131133,0,65668,17434153,1179709,0,1,19595524,1245245,0,1,17105203,1310781,0,1,20316675,1830092861,218149376,118206464,4720954,-1785135103,393216,0,68484,17434118,65597,0,66436,17434135,131133,0,65668,17434152,1179709,0,1,17040913,1245245,0,1,20250883,1310781,0,1,20251139,1830092861,251703808,1107275776,23610,84148224,5114664,-1055129599,393216,2,68484,17434626,65597,0,66436,17434638,131133,0,65668,17434650,2097285,18285059,2752645,18350851,3473541,18875395,11665498,1135607816,1768320623,1864396146,1698963566,1702126956,1852785408,1836214630,544108320,1819305298,6644577,1718513475,544043625,1293971055,1702065519,1701859104,1769234802,234909295,1376662535,-1459612928,134217932,512,17531904,168494336,16792833,0,17007616,168498176,33570049,0,16811008,168502016,34561,218370304,257,788660992,257,218366720,257,738657024,257,738722560,-1308581375,-1342175232,-1342171905,538968064,8224,271451664,66,231020988,131083,65536,50462832,65806,16842870,65802,117571703,459022]},{"sector":9,"data":[51642368,459028,118751232,65812,151126125,459022,152305664,193200396,218300417,3997962,1,58982400,219283457,3997962,2,8650752,220135425,65802,83951683,8519946,524466,1953060016,773875052,773860896,1375743520,1769304421,6579570,1886152008,2019906592,539893876,1632632878,1870099315,538993778,3022894,1769238607,1818324591,1057294336,13070,-988548608,33558285,117440512,402653184,117515265,402653184,117515267,402653184,-2029968379,536870912,83958791,16805888,117511945,771751936,-2080305655,67109131,1023478283,256,-2080374784,285212931,1023478283,512,-2080374784,503316736,-2080306677,721438976,16846603,16796928,16848387,16800512,16848389,16804096,16849415,16808448,16848385,503351296,-704574199,134263296,1632677888,543519605,1702127201,2019893362,1090548841,1851881060,778331491,1124085294,1634561391,544433262,773860896,773860896,773860896,1635013376,1886745714,1919501344,1869898597,773880178,1090530848,1768714352,1769234787,1394634351,1953656680,544503139,7955787,1735357008,544039282,1819568468,539893861,539893806,1632632878,1870099315,773874802,11808,255788039,55,231020782,131082,458752,52035584,459041,85590016,459041,119144448,459041,152961024,193200413,201916417,3997962,1,58982400,203030529]},{"sector":10,"data":[3997962,2,8650752,204144641,590090,50397248,590104,117506126,590104,83951708,590104,151257194,65817,16842873,65818,18546689,65796,18808963,18350359,524466,1852397488,544698212,1819568468,773857381,773860896,1342189088,1886220146,1699553396,1734439795,773857381,773860896,1869762560,1835102823,1718503712,1634562671,1852795252,1140862496,1969317477,1344304236,1835102817,1919251557,539893875,1766195246,1763732588,1852383342,1836216166,1869182049,1868963950,2433138,1836020336,1679848560,1869373801,134229607,940457733,1073741824,219006231,512,1792,771821056,1793,167978240,1793,168106496,1793,168112640,-1610611199,151457024,-1652488703,218631424,-1644165887,470352128,-1392507647,201797632,-1392507647,201863168,-1392507647,218705920,17531905,168495104,16792833,0,17007616,168499712,33570049,0,16811008,168504320,-2046818047,184615168,-2013263615,185008384,-1962931967,352518400,-1761605375,201654528,-1711273727,218306304,-1644164863,201657600,-1577055999,151332864,-1560278783,369564160,-1308537855,-1342175232,1954047316,1634879232,1667852400,1917845619,1852143205,1917853812,1634887535,2001936493,1751348329,1414283520,1111577643,1414283520,1129530667,1381253888,1397041996,1699217475,1411412076,7632997,1701079382,1867325551,1124099428,1702260335,1869182062]},{"sector":11,"data":[543973742,1869440333,1476426098,1293964109,1919905125,1112211577,1902465568,1701996917,1112211556,1902465568,1701996917,1112211556,1835617312,1375761513,1919251301,1394632054,1953656680,544503139,1937335627,101449728,3213866,18153472,265669,2,7,18285314,68484,17434371,65597,0,66436,17434383,131133,0,65668,17434395,1048585,17957120,11665652,1169162248,1919251566,1935757344,1919907699,151009892,1393110277,1124073472,84788518,512,1073742592,352387584,1006634501,302121984,1115751937,302253056,17531905,201464320,16792833,0,17007616,201595392,33570049,11665493,1320157197,1342207845,1919381362,1193307489,1886744434,1869762560,1835102823,1702119712,109,2297344,590002,33562800,1511213572,1744830464,101565768,512,17531904,168821504,33570049,0,16811008,168825088,16811009,168828672,16811009,168832256,16811009,168835840,2561,1208025088,15630,-985182976,-1308601331,-1342175232,196607,1179826,1112230320,1213551185,2048,824510976,16448,213910272,537669680,1073889284,1073889282,805576706,53480460,213910464,655110192,1341280228,1341280242,820258802,53480460,192,16777216,130024320,535826400,62915576,62915520,12583872,0,62915328,62915520,532677568,133173240,29361120]},{"sector":12,"data":[128,1089535871,4198400,-251691248,1074790464,4198400,268451856,1074790464,4198400,-251691248,-117440768,-1089994624,-4200193,134250728,-1075249217,-4200193,-385892376,-1075249217,-4200193,134250728,16318463,-8454144,268452080,2131755072,4255999,-1862316272,1334872136,-2008510209,-1862316144,2131755072,-16715521,8452351,-385892600,-2132213825,-4257792,1744875752,-1335330889,2008508416,1744875624,-2132213825,-63488,-251691016,1326448704,-2008510209,-1870116720,1083244367,-8450048,134250736,-1326907457,2008508416,1752676200,-1083703120,8448255,8,1073806463,1700659206,-2147205120,1077986393,1885265927,536887328,1075839040,-8445952,224,16580352,-1090518400,-1700724487,1090240384,-1080018010,-1885269768,-788545584,-1076822081,8442111,-251658480,0,553648158,-12582912,1073774464,1075839040,541073440,553140256,1075847232,4202528,536887328,-958333057,151040513,2011136,8448,2139160384,4210688,536887328,1075839040,4202744,536887328,1075839040,-8445952,-1308612640,-1342174976,553648158,-12582912,1073774464,1075839040,4202496,536887328,1075839040,4202496,536887328,669056895,151040512,-8409088,100679932,1090912320,21038847,-419475706,1090912577,4196095,100679686,1073676159,-16711937,8453887,-100679933,-1090912321,-21038848,419475705,-1090912578,-4196096,-100679687,-1073676160,-8453888]},{"sector":13,"data":[255,2130706432,4259071,-435732474,1074135104,4195840,100679686,1074135104,-8452608,-16826370,0,-65536,50364670,-1074135105,-4253192,-100679687,-1074135105,-4195841,-100679687,-1073676160,-8453888,255,1090322303,4195840,-159559418,1430667353,1079199352,1182552390,1074135104,-8452608,-16826370,-16777472,-1090322304,-4195841,159559417,-1430667354,-1079199353,-1182552391,-1074135105,8452607,16826369,469761919,-12601747,33562878,654442528,-1524362727,1388128178,605168933,2101925,33562626,469696319,46701,-16826624,1078563428,-10551040,-303671043,1481464411,-631591614,-312845331,1610481503,4259327,1234330625,1073676095,2162431,303638274,666019108,623203005,33562642,2147417919,-10485761,-303671043,1481464411,-631591614,-33595411,16777087,-16318464,402659552,579127073,71451684,570704418,572654658,-954121180,402659460,14745351,117440512,1630463,-453040360,1568290910,-71451941,-570704419,1574828989,945732315,-453040262,119013400,402710783,-954132480,1143218820,1109525570,606216708,-2067324604,655884312,945743103,-1160028806,-1109525571,-614605317,2050514618,-1427833049,53751566,0,218109952,789500416,820,402653184,-67105280,53751566,0,134223872,789517312,820,402653184,603981824,36974350,0,218107904,789462528,564,268435456,738200832]},{"sector":14,"data":[53751567,0,218109952,789533696,820,402653184,1476398336,53751566,0,218109952,789479424,820,402653184,2080378368,53751567,0,251664384,789556224,820,402653184,-603975936,53751567,0,251664384,789580800,820,402653184,872418560,53751568,0,234887168,789601792,820,402653184,-2013262592,53751568,0,234887168,789623296,820,402653184,-637530880,53751568,0,234887168,789644288,820,402653184,771755520,53751569,0,234887168,789678080,820,402653184,-1342173952,53751569,0,218109952,789443584,564,268435456,201329664,36974350,0,201330688,213910272,1074540592,202125314,62915376,825232576,836913036,53480588,16777408,130024320,66064352,62915520,50331840,62915520,133173184,29361120,128,284229407,1427449856,-2069228996,520355856,64767,-117473536,1863057504,-1435838721,2069196227,1627127663,-8453376,255,150011655,1159006208,1416762708,117964808,61695,-50389248,1997406264,1768617983,727935531,955776887,-14742016,16380,2147024704,138413056,41893890,1073875008,-8453632,16382,2147024704,4195328,41893890,1073872960,-8453632,16382,2147024704,4195328,33570818,1073872960,-8453632,254,1140653951,-11598624,81806308,2130968640]},{"sector":15,"data":[64767,-16777472,-1140719488,11598367,-98583526,-2131034177,-65024,254,1090322303,4195328,67129092,2130968640,64767,-16777472,-1090387840,-4195585,-83906310,-2131034177,-65024,-50364418,1359216704,1079637117,1148736836,1363427411,-8436612,-16777218,-1359282241,-1079637374,-1165514054,-1363492948,-17789,789807870,564,268435456,-1845491712,36974355,0,134221824,789815808,820,402653184,-1174403072,53751571,0,134223872,789828096,820,402653184,-369096704,53751571,0,134223872,789840384,820,402653184,436209664,53751572,0,134223872,789852672,820,402653184,1241516032,53751572,0,134223872,789864960,820,402653184,2046822400,53751572,0,134223872,789877248,820,402653184,-1442838528,53751572,0,134223872,789665792,820,402653184,1879050240,53751569,0,134223872,789698560,820,402653184,-268433408,53751569,0,134223872,789889536,820,402653184,1711278080,36974355,0,117444608,789804032,564,268435456,218105600,1477128710,2097152256,68011361,512,17531904,168297728,16792833,0,17007616,185078528,17007617,168305152,33570049,0,2560,738329088,15621,-1792357888,-1308214500,-1342173696,458753,117442304,458759]},{"sector":16,"data":[458759,117442304,117440512,117899271,117440519,460544,460544,7,460544,460544,117440519,458752,117440519,251723791,985097,202311439,251723791,0,117903104,983055,51318529,51315457,524296,251660295,458767,983055,3840,721679,-65529,238290701,68,231044685,131078,65536,67305544,459022,68485120,193200406,184811521,3997962,1,58982400,185860097,3997962,2,8650752,186908673,65802,33751040,13762863,524466,1954039216,1769172581,779316847,218115616,890123271,-1124073472,84788597,512,1792,738460416,17531905,168494080,16792833,0,17007616,168498176,33570049,0,16811008,168502272,257,738329344,-1308600319,-1342175232,121111816,65,231044829,131075,589824,16842808,459026,18087936,193200417,67829761,3997964,1,58982400,69009409,3997964,-1308607230,-1342173952,1835888451,543452769,1701734732,773860896,167780352,2629632,455082025,352367104,1224704,0,204539404,1048655,231068380,131078,458752,51380224,590093,16842832,590101,50397277,65806,18219008,8716568,84410459,193200408,151191553,3997962,1,58982400,152174593,3997962,2,8650752,153157633,6816010,524466]},{"sector":17,"data":[1920287664,1953391986,1919501344,1869898597,1763735922,1699938419,1751347809,1919903264,3022894,1918985555,1696622691,1919513710,1768169573,27507,3735808,721074,-268189520,471611407,104074296,-2040461726,744506976,943201328,-1072697316,3,-268189696,-65013745,-29361089,-25166209,-58720641,-130024385,-1072697313,3,1627373568,1220235392,1119306880,29065088,25166208,-8388224,-1308600065,-1342175232,-2031680,-458768,201261052,234861056,134262784,-20480,-2147385343,-2147352577,-2147385343,-2147385343,-2147385343,1638399,524466,1638320,524464,17825712,17301768,19398968,-1572568,77595823,281017504,-260042624,255,-15728896,-15728881,-12583105,-193,-50332417,-251659009,-251662081,255,872746496,33574922,-974551552,33555213,-2080374784,301990155,1023478279,512,16777216,16777216,16855297,16777216,1912680706,167817728,-1743736832,311071,917682,432,1342177408,1342177303,23,-1792863744,372919836,201372160,745123840,-99,11665414,548405258,2105376,503449088,22805,-1786380800,33555228,-2080374784,33554699,1023478290,512,-2080374784,251658496,167840274,16777216,1024465409,-905969664,1075615018,201372160,84586496,2104,-1437990912,334997,2,1,20054275,1,20054531,1,20054787,68484]}],[{"sector":1,"data":[17433888,131133,0,66436,17433866,1157693501,218149376,-217088,65537,153092096,598016,1397703806,1297362432,1766064208,1763732339,1920409715,761623657,1953460848,1702126437,1426075236,1869507438,1679847031,1702259058,544370464,1953066613,1917059118,543520361,544501614,1684104562,1224748665,1818326638,1663067241,1634561391,3040366,1635017028,1920099616,673215087,541282883,1818845542,774464613,1684095488,1902473760,1953719669,1920234272,1970561909,1814062450,1952935525,1392520808,543909221,1869771365,1426075250,1869507438,1830841975,1634296933,1887007776,1392520805,1869898597,1869488242,1868963956,778333813,1769099264,1919251566,1953853216,543584032,1701863792,1459629682,1702127986,1969317408,3044460,1684104530,1969317408,3044460,1701733703,543973746,1818845542,778400373,1986939136,1684630625,1936286752,1751326827,1701277281,1766326318,1852138596,1937330944,7169396,1751347777,6649449,1684104530,1819176736,1665204345,1936942435,1852138528,778331497,1851064320,1868785010,2053729895,1679844453,543912809,1869771365,11890,1986622020,1869488229,1701978228,779707489,1769096224,1679844726,544370543,544825709,1864394082,778986864,1750335488,1768169573,1763732339,1969627251,3042412,543516756,1701603686,544434464,1965059689,1646290291,1869815929,1852794221,1818566757,3040627,543516756,1701603686,1701798944,1948741235]},{"sector":2,"data":[1769497888,3044467,1635151433,543451500,1752457584,1750335534,1679848545,1702259058,1701798944,1948741235,1769497888,29811,543516756,1752457584,1937075488,1886593140,1718182757,543236217,1986622052,11877,1635151433,543451500,1752457584,1701868320,1768319331,1769234787,3042927,1869771333,1701978226,1852400737,1768300647,3040620,1701998165,1852272483,1684372073,1920099616,3043951,1869440338,1948280182,1998611816,1702127986,1869770784,1952671092,544108393,1836020326,1701344288,1936286752,11883,1869771333,1920409714,1852404841,1869881447,1701344288,1936024608,1634625908,1852795252,1818846752,11877,1952540756,544434464,543516788,1852797559,1768169575,3042163,1953724755,1763732837,1734702190,2037672306,1869182496,1702125932,1495281252,1931507055,1819635560,2019893348,3044457,1869771333,1886330994,1852403301,1768300647,3040620,1869771333,8562,1869771333,1701978226,1852400737,1768169575,1952671090,544830063,1970435187,1920300131,11877,544501582,1970237029,1830840423,1919905125,1327509113,1634887024,1852795252,1851876128,544501614,1663067490,1819307375,1684370533,46,1914728276,1835101797,543236197,1701603686,544370464,1701996900,1919906915,1948265593,543518841,2037149295,1701344288,1818846752,1835101797,1919885413,1919509536,1869898597,1847622002,778399073,1766195200,544502642,1701602675,1948284003,1881171304,1852142177]},{"sector":3,"data":[1768169588,1952671090,544830063,1948280431,1931502952,1768186485,1952671090,544830063,544567161,1953390967,544175136,1634038371,3040628,544567129,1702257000,1919905056,1752440933,1864396385,1713399150,543517801,1701602675,1684370531,1380974638,542395977,1969583473,1936269413,1819633184,11884,1313428048,1886593108,1701605231,1936269426,1937072672,11897,1868787273,1667592818,1329864820,1702240339,1869181810,1766195310,1663067500,1869508193,1700929652,1886348064,543450473,1763733364,1818588020,11878,1701603654,544434464,1953525093,11897,1936287828,1869762592,1835102823,1869760288,1227845749,544040308,544432488,1632641121,1870099315,3040370,1701602628,1735289204,1818846752,14949,2037411651,543649385,1701603686,1867317306,1735289206,1818846752,14949,1634624850,1735289197,1818846752,14949,1634624850,1735289197,1919501344,1869898597,3832178,1852404304,1735289204,1818846752,14949,2003134806,543649385,1701603686,452329530,455482127,457710391,461314913,463412107,466033585,467672020,1096227825,1313427026,8519,1918115886,1869881465,1634038304,1752440932,1679848297,543912809,1767991137,11886,1866735662,1953459744,2037543968,544175136,1684104562,1936286752,1734418539,778987873,539885568,1819305298,543515489,1936287860,1818846752,11877,1918115886,1752440953,1713402729,543517801,1679848047,1667592809,2037542772]},{"sector":4,"data":[1634165024,3042921,1800609838,1948282985,544434536,1701603686,544370464,1701996900,1919906915,1851859065,1868767332,1852404846,3040629,1800609838,1948282985,544434536,1701603686,1684955424,1852793632,1970170228,11877,1918115886,1752440953,1713402729,543517801,1767991137,11886,1631789102,1818583918,1701344288,1701867296,1769234802,3042927,1698963502,1702126956,1768453152,1953046643,3042661,1866735662,1953459744,1818584096,543519845,1936287860,1702127904,11885,1749229614,1701277281,1818587936,1702126437,1768300644,544433516,543518319,1629516897,1835627552,11877,1749229614,1701277281,1819042080,1818587936,1702126437,1768300644,544433516,1948284001,1931502952,543518049,1701669236,1967325230,1852142194,1634607220,3827053,544695630,1701667182,3022894,1701603654,1701667182,538979872,824508462,543584032,12837,824520231,1768300583,544433516,543519329,1869837153,1952541027,1998611557,979924073,1633091584,1852403314,1176510823,543517801,1377858409,543449445,2037149263,538968097,1026568518,1769235265,544435823,1768444704,1177252966,1866677561,1851878765,1917853796,1953525103,538968064,1026568518,1769235265,-1854706065,203469319,1750315008,729048681,1128085830,1634561391,1344300142,1886220146,536871028,-641450976,1734430781,2003780709,1159733358,1128096627,1701015137,1176510572,1699233081,1396780920,4802883,1176510464,1094529073]},{"sector":5,"data":[1869182051,538997614,1029927749,1668178243,469789797,1226842112,1919251310,1768169588,1952803699,1713399156,1679848047,1702259058,540688160,543452769,1936028272,1851859059,1701519481,1752637561,1914728037,2036621669,1397563392,1397703725,1701335840,2124908,1917877760,1919250543,1936025972,3026478,1699642880,774778487,1884257792,13135461,598194,1953383856,2113958501,778331201,1124085294,1853776232,774792551,2113929262,1701602628,774792564,538976302,1142956064,2113956965,2037411651,1702777344,1701081711,1157628018,1953069182,548536387,1102053384,1177252972,1216217140,7367781,1684949374,30821,2036681598,1918988130,1400766564,1819043176,1935753760,7562089,1836008318,1684955501,1350434931,1701015410,1701999972,1434321011,1735289203,1818576928,1098776688,1953853282,1701335840,27756,1818838654,1333657701,7234928,1853182590,3026478,1769099390,29806,1936933246,1634296687,774792564,1451098158,7824745,1701402238,1766203511,1126196588,1702129263,544437358,3753504,1918985555,778600035,11822,1987005822,774778469,548536505,1185939469,1132331063,779710575,732718,860338,3688112,1818575998,778400869,863790,663730,1818576048,2120569344,1701667182,3026478,1634222848,1701281390,1953775904,1969383794,779314548,1124085294,1634041458,1142973812,1667592809,2037542772,3026478,1699970560,1952671084,1819033888,1936016384]},{"sector":6,"data":[1701609061,1092645987,1157655660,1953069182,548536411,1102053388,1177252972,1333657652,1869182064,29550,1818838654,1766072421,1634496627,1884233849,1852795252,774778483,1132331008,1768320623,1952542066,778989417,11822,1869108094,1850286199,1836216166,1869182049,774778478,1165885440,1818386798,1632903269,1394633587,1886413175,29285,1936278654,2036427888,3026478,1819246147,779317871,11822,1701602643,2116056163,1869767489,1142977395,1667592809,1769107316,29541,1852396414,543517799,1701603654,1936280608,1149108340,543973749,1701603654,1936280608,29556,1819033982,1818838560,29541,1735357008,795697522,1818838654,1766596709,7566451,1869762686,1835102823,1936280608,2119303284,1767993445,1394635886,1701147235,1750278254,729048681,13638,1717916286,1752393074,548536593,1185939464,2113929269,1701147220,2021541120,1684955504,1701728032,1986350112,723545189,1886930176,543452769,1634878078,543712110,706748448,1886930176,543452769,1819033982,538976288,1126178848,728527476,2113929258,1819045699,1702064225,1634877984,543712110,2113940768,1886611780,7954796,1933671936,6908259,1699249664,2113929336,1953719634,543519343,2003134806,1129530656,1818838528,1140865637,1667592809,2037542772,100663354,337382684,1411128348,1751326831,1701277281,1953784096,1969383794,539780468,1701602675,1763734627,544040308,543452769,1936028272,1946157171]},{"sector":7,"data":[1394632040,1162035536,777142594,1701990432,1159754611,1380275278,1701345056,1868767342,1701605485,3040628,1919501312,1869898597,1411414386,6645106,707668480,544165376,1701603686,1852383347,1818587936,1702126437,1768169572,1952671090,779711087,1308622848,1768300655,544433516,1668571501,1768300648,1931502956,1768121712,1919248742,1392508974,1668440421,1699881064,1953265011,1868963955,23280242,860338,1325400240,544105840,1701603654,1886339840,1766203513,1291871596,543520367,1701603654,1852133888,543518049,1701603654,1634222848,543516526,1920234561,1953849961,1342206821,1953393010,1818838560,1140850789,1952803941,1766203493,1375757676,1835101797,1766072421,1952671090,7959151,1818575872,543519845,1701996868,1919906915,1124073593,1952540018,1766072421,1952671090,7959151,1818575872,543519845,1701603654,1852785440,1836214630,1869182049,1140850798,1952803941,1766072421,1952671090,544830063,1718513475,1634562665,1852795252,1885688320,1701011820,1818838560,1866670181,1919510126,1769234797,536899183,1634030120,1850679396,539588972,1885688320,1701011820,1766207781,3827052,1953060608,1766203496,3827052,1819230976,1394635375,1835362403,1392509029,1701147235,1766072430,1634496627,1867325561,1275094372,1377859439,1819243365,1869182069,1291845742,1969841253,1699881069,1970040691,1852795252,1734952960,1699881064,1970040691,1852795252,2019906560,538976372,1191182368]},{"sector":8,"data":[1752195442,7562089,1920287488,1953391986,1751339808,979725669,1124073504,1701999221,1293972590,979723375,1124073504,1768320623,1293970802,1702065519,1701859104,1769234802,1140878959,1952803941,1950949477,1174433125,543517801,1886611780,544825708,1769238607,7564911,1852785408,1836214630,1869182049,1392509038,544698216,1868983881,1952542066,7237481,1634030080,1735289188,1936278560,1850286187,3043174,1818838528,1767252069,1409316709,1769349231,1713403749,660958313,1868767347,1852142702,1937055860,1733304421,1864396885,1733304434,1864396356,538452082,421556847,1140850734,1213420367,776752197,4475222,1397703680,1279608915,1313418828,1140850761,1213420367,776752197,5265235,1297040128,1157627936,2114904,1413562880,1124073504,1347636559,1677738821,1835234159,1633824356,536871028,893011247,790639153,-33546173,1634030080,1735289188,1936278560,1850286187,1836216166,1869182049,539893870,3022894,1818838528,1377858405,979657061,1140855808,1667592809,1769107316,1377858405,979657061,1936933120,1634296687,1176528244,6646889,1634030336,543712114,1701603654,2003127808,1869762592,1835102823,1784827680,7627621,1684291840,1869762592,1835102823,1684291840,1869760288,1342206069,1919381362,1226861921,544040308,1886351952,1769239141,1342206821,1919381362,1193307489,1886744434,1869762592,1953654128,7562601,1935757312,1919907699,1174405220,1650814057,304132611]},{"sector":9,"data":[45056,1632509984,538994029,-1308619974,-1342173920,538968064,1920234561,188358688,220246528,45056,1701602643,1684370531,548536330,11534350,1310728192,1700949365,735858,860338,536871088,2053722912,975183973,548536331,11534349,1919501312,1869898597,751986,860338,536871088,1835093536,975183973,548536331,11534349,1394614272,543521385,735776,860338,536871088,1818838560,975205221,548536331,11534349,1936278528,-1308621205,-1342172640,538968064,1701667150,188358688,220246528,45056,1767055392,538994042,-1308619974,-1342173920,538968064,1767994945,188358764,220246528,45056,1766203424,544433516,-1308619974,-1342173920,538968064,1936877892,188358688,220246528,45056,1867382876,1818846752,1869480037,25966,1397968708,1280066888,1347176494,538968064,541806368,8224,1851867936,543974755,538968064,1886152008,8224,1986359888,7824745,1869366048,538994035,1699217408,1176531052,622883439,841288241,16448,1701336074,1763730802,1869488243,1818585120,1986076784,1634494817,543517794,544370534,1936287860,1886352416,3040105,1869771333,1919098994,1769234789,1948280686,544238949,1701603686,544108320,1986622052,977215589,120389632,538968109,544433497,538968096,544165408,8224,1701602628,622880116,16177,543519297,544567161,1701999987,1970239776,1851881248,1869881460,1886348064,1752440953]},{"sector":10,"data":[1702043749,1952671084,1713398885,1936026729,544175136,4141349,543519297,544567161,1701999987,1970239776,1851881248,1869881460,1987013920,1752440933,1702043749,1952671084,1713398885,1936026729,544175136,4141349,543519297,544567161,1701999987,1970239776,1851881248,1869881460,1635021600,622883954,1937055793,543649385,1629499941,1752440947,1852383333,1634301033,1768300652,4154732,5262676,1347241300,538968064,1801675074,8224,1684949280,538998885,538968064,1937335627,8224,1735357008,7168370,1061109536,1061109548,1397555200,1397703725,1701335840,1210084460,7367781,1835888451,543452769,1836020304,29808,1701603654,1851870496,1919248225,1665204224,1702259060,1935758368,1766596715,29811,1886611780,544825708,543516788,1970238055,1869881456,1886348064,1869881465,1752440876,1881173605,1936942450,775046688,1701990432,1159754611,1948271443,1633886319,1818583918,1699938350,1952671084,1668246560,1869182049,1869881454,1987013920,1869881445,1752440876,1881173605,1936942450,1414415648,539906629,1936028240,1397039219,1869881411,1851876128,778855779,1342832640,1936942450,2037276960,2036689696,544175136,1970562418,1948282482,1397563503,1397703725,1701335840,774794348,11822,7238994,1378702157,1380207937,4544073,1397310550,1146224715,1632436310,28265,1886611780,1937334636,1869770784,1835102823,1702127904,2032169837,1663071599,1663069793]},{"sector":11,"data":[1936682856,1869881445,1635021600,1629516914,1768714352,1769234787,544435823,543452769,1735357040,544039282,1970238055,2032169840,1663071599,1864396385,544105840,1679847284,1819308905,1864399201,1919248500,1869770784,1835102823,1702127904,3044205,1948282702,1701606505,1867382817,1852121204,1751610735,1701996064,1701650533,2037542765,544175136,544109938,1936944996,1819043176,168624174,1918989395,1293972340,1329868115,1750278227,778857573,168626701,1397968708,1280066888,1412389664,1701984859,1567513459,1528847709,224215599,1397703690,1279608915,794501196,1916427079,1851487077,542989661,1564618587,2573,1412374560,548537310,1404043272,1953653108,1397563507,1397703725,1701335840,1763732588,1702109294,1830843512,778396783,975183872,1534289266,538991982,1814053152,1702130789,1277698162,743252012,539576352,543452769,1651340654,1763734117,1667851374,1852404833,1668489319,1852138866,1936028192,1953852527,778989417,790634496,-1308594622,-1342175200,1918989395,1293972340,1329868115,1750278227,543976549,1852404597,1818370151,762012513,761556577,1953065079,1868767333,544370540,1701340019,3040621,1194270752,548536380,1404043272,1953653108,1397563507,1397703725,1701335840,1763732588,1919361134,1768452193,1830843235,778396783,1397703680,1346459475,1163412782,1397703680,1279608915,1380396620,1090519106,1851881060,6579555,1869490176,2712942,1414283520,1381253888]},{"sector":12,"data":[1392509004,1413892424,1174416128,1174405169,1174405170,1174405171,1174405172,1174405173,1174405174,1174405175,1174405176,1174405177,1174417457,1174417713,1224749617,1380275022,1140850772,1413827653,1207959621,4541775,1145980160,1195462656,1347756101,1195462656,1329864773,754994775,788540928,1886595072,694510433,1308625408,1696625775,1735749486,1919295592,1663067493,1702260335,1869182062,543973742,1869440365,1948285298,1970413679,1919950958,1634887535,1308634733,1696625775,1735749486,1919295592,1696621925,1852142712,543450468,1869440365,1948285298,1970413679,1919950958,1634887535,1207971437,544238693,1869771333,1409286258,1701995880,544434464,1881173870,1769366898,544437615,1886152040,544175136,1646292839,543908705,3043188,1851867904,544501614,1684957542,774972704,1768444938,1768300659,1830839660,544502645,1763730786,1752440942,1634934885,1679844717,1667592809,2037542772,544432416,1397968708,1280066888,1163412782,1191182382,1919250021,1159752801,1919906418,1769435936,1768448884,1948280686,1919950959,1634887535,1426075245,1818386798,1869881445,1853190688,1701868320,1768319331,1881171045,1919381362,3042657,1869762560,1835102823,1920091424,536900207,1851867904,7103843,1886339840,824516729,544175136,1291858469,543520367,1948266789,841293935,1818846720,1392538469,1953653108,540091680,1852404597,841293927,1145323776,774778368,1954112000,1811968869,1936027241]},{"sector":13,"data":[1869566976,1851878688,1635000441,544435059,1852732786,778530409,1869762560,1835102823,544434464,1818850419,1667309676,1702259060,1946157115,1986076783,543451503,1769172844,1679845230,744584289,1769304352,1752440948,1919950949,1634887535,1700929645,1701998438,1818584064,1852404837,1953046631,1869768224,1752440941,1665212517,1702259060,1935758368,1766596715,3044467,1818575872,1869182053,1917132910,7499634,1970231552,1851876128,544501614,1701602660,1629513076,1852796448,1886217517,1730181492,1886744434,1701055035,1702126956,1819042080,1702127904,1629516653,1730176110,1886744434,1852383347,1768453152,1919361139,544241007,1936877926,1493184116,1663071599,1869508193,1701060724,1702126956,1847615776,1697476207,2037674093,1919509536,1869898597,171669874,1701602660,1629513076,1713400940,1936026729,1684955424,1651864352,1919509549,1869898597,1936025970,544106784,1936287860,1919509536,1869898597,1713404274,1953722985,1157627950,1769236856,1159751534,1919906418,1970231552,1851876128,544501614,1953068401,760433952,542330692,1818585171,1769414764,1881172084,1919381362,544435553,1948282473,1092642152,1986622563,1632903269,1277193075,997487465,1769304330,1752440948,543519599,1735357040,1936548210,1919510048,3044467,1970231552,1701146144,1869881444,1986095136,1970413669,1380982894,777277001,994922307,1919903242,1919905056,1852383333,1836216166,1869182049,1830825070,543520367]},{"sector":14,"data":[543516788,1936880995,1948283503,1752440943,1917853797,544501353,1835888483,543452769,1948282479,1176528232,543517801,1970169197,1684955424,1701998624,1176531827,1275080241,1313425231,1634949888,1953719670,1566930017,1768295690,1634559340,1701273966,1685024114,1752382821,1684370017,1953697034,1970565729,1768308080,1634559340,1701273966,1527581298,1735357040,1936548210,1953653108,173896293,1869768461,171798645,218790669,1735357040,1030578546,175836426,1836016397,1684955501,1297040189,1145979213,1769213194,1030057076,1835888451,543452769,1836020304,218788976,2098006653,1768835328,1818323316,1952545385,544108393,1701603654,1920091424,1409315439,1701995880,1935767328,544104736,1869771365,1920409714,1852404841,1869881447,1701344288,1818846752,1329864805,1162367827,1227770956,540756302,1851877475,544433511,1701995895,1953459744,1986097952,1948279909,1768169583,1629514611,1752440948,1948283753,778399081,658688,1124089856,796487791,1919903058,544367972,1701080909,1970231552,1701994784,544106784,543516788,1684302189,1864394092,543236198,2037411683,543649385,1914729071,1685221221,1852404325,1635000423,1948281715,544498024,544567161,1953723757,1918984992,1864399218,1864397941,1633886322,1818583918,1866866734,1869422706,1763730802,1919903342,1769234797,539782767,1936682083,1752440933,1830843241,1634956133,1629513063,1881171054,1936942450,774981152,1397703680,1279608915]},{"sector":15,"data":[1325400140,1327527029,1699553382,2037542765,1701336064,1970236704,1679844723,1702259058,1852776562,1970239776,1868767346,1953853549,1763734117,1702240371,1869181810,824516718,1426063406,1869507438,167800439,538629,-1895825408,68982201,512,17531904,168105216,33570049,0,256,838927104,257,838992640,257,839058176,-1308172799,-1342175232,154076690,54,479574651,131073,589824,17956912,590094,34537525,590101,67240001,193200426,101842945,3997962,-1308609278,-1342173952,1143821133,1394627407,1819043176,760433920,542330692,1936876886,544108393,808463925,1886339840,1734963833,673215592,1293953347,1869767529,1952870259,1919894304,1634889584,1852795252,960049440,67960881,4664,-1060175872,269461,2,7340041,19923203,9175049,19924483,11730953,19924739,14221321,19924995,16449545,19925251,1,19923715,1,19923971,15666052,17895174,131133,0,15532932,18091804,16121865,19925763,18546697,19926019,20905993,19926275,11665604,1135607816,1801676136,1701344288,1970228512,1126196595,1634757999,1768057204,2037672300,1936280608,1392520820,1948280165,656434536,1953785159,543649385,1918989395,660890996,1851878688,543973749,544370534,1768693857,1864397939,1869414502,543519605,1986622052,544436837,1952540788,1701994784,1836016416]},{"sector":16,"data":[1769234800,543517794,1752459639,760433952,5459780,1936876918,544108393,741355061,1684955424,1801547040,1970479205,2032166258,544372079,1986622052,1763734117,1868759155,1952542829,1701601897,1766064174,1818386803,1867325541,6648693,543519573,1937076045,1849761893,2036430713,543574272,1920298873,1970236704,1679844723,1702259058,1936269426,1953459744,544108320,543516788,1953720684,1851858988,1870200932,1634214005,1881171318,1818390386,544435557,1852404597,1870209127,1830842997,1702065519,1868767276,1667331182,1870200948,1830842997,1702065519,1852143136,544370532,544370534,1965059681,1952539760,1679844453,1702259058,536882802,9,1091309312,529,-1308531072,-1342174208,479577380,399886,786610,-16777552,553647871,538976288,540876800,658688,168624251,570457344,658688,6094939,2427405,852146,1543503024,16777472,1577057280,33554944,1040186368,50332416,1946156032,1936029281,1702125940,67109888,1946156032,1701147235,1685024110,327781,-262139,1885434471,1935894888,100664832,1962933248,7632997,458759,1953759228,1970565729,524400,-262136,1701603686,1634623853,7497063,589833,1953759228,1886679649,1919381362,7564641,655370,1768357884,1634559340,1701273966,1685024114,720997,-262133,1735289203,1920230764,201352549,-67105792,1870099711,1701147252,218107136,1946156032,1702130553,1701999725]},{"sector":17,"data":[917605,-262130,1735357040,1936548210,1953653108,251687525,-67105024,1818585343,1048688,-262128,1819568500,1114213,-262127,1735357040,1936548210,301994496,1711275008,1768714360,1937008995,1667591269,1852795252,318771968,1744829440,1886744434,335549440,1895824384,1919381362,352349537,-67103488,1836016639,1684955501,369104384,2080373760,385881856,2113928192,402659328,1711275008,1818386798,419456101,-67102464,1936286975,1701601889,1704036,-262118,1936941424,1685221239,452991744,1946156032,1802793583,469793125,-67101696,1835101951,1900645,-262115,1702131813,1869181806,1966190,-262114,1702125924,520101632,1946156032,6650473,2097184,1768226812,1919904627,7497060,2162721,3932156,2228258,2490364,2293795,3145724,2359332,5570556,2424869,5308412,2490406,4521980,2555943,5439484,2621480,5046268,2687017,5111804,2752554,4456444,2818091,2359292,2883628,4259836,2949165,1818427388,7037793,3014702,1818427388,788555125,-67096832,1701996543,805334629,-67096576,1684370175,822096128,1677720576,7233913,3276850,1634598908,1953391975,3342433,-262093,2003792482,3407982,-262092,1953065079,3473509,-262091,1869377379,3539058,-262090,1702060386,922760960,1761606656,1818781545,1952999273,939538432,1644166144,1953654124,956315904,1946156032]}],[{"sector":1,"data":[1868849512,3801207,-262086,1970169197,989870848,1644166144,1818583907,1952543333,1006662255,-67093504,1634297087,6778732,3997757,1969422332,1852798068,1040203264,1946156032,1667591269,1852795252,1056980736,1660943360,1735091041,1853190002,4194404,-262080,1701998438,1970238055,1090544750,-67092224,1769104127,1651796071,1801675116,1107313152,1660943360,1751607666,1970037364,4391013,-262077,1734963810,1919382632,7234917,4456516,1919090684,1952999273,6579570,4522053,1919090684,1952999273,1851881827,1174423040,1660943360,1751607666,1734438260,1635020389,1191200512,1660943360,1751607666,1818589556,7827308,4718664,1919090684,1952999273,1953065079,4784229,-262071,1869837153,1952541027,1936617321,1241532928,1644166144,1668248435,1769234793,1258319471,-67089664,1919120383,1651272815,1275097697,-67089408,1953068287,1633838444,5046386,-262067,1986358373,1919906913,1308642816,1929378816,1819243365,1869182069,5177454,-262065,7827308,5242960,1701707772,1836411236,1358975232,1761606656,6842217,5374034,1702297596,1768454514,1392535655,-67087616,1920295935,1953391986,1869377379,5505138,-262060,1986622052,2020565605,1426085120,1677720576,1869836917,5636210,-262058,1885435763,1937076077,5701733,-262057,1701079414,1919509615,1476417536,1895824384,1886220146,5832820,-262055,1868983913,1509972480,1694497792]},{"sector":2,"data":[1969317477,1526756460,-67085568,1969320191,1543529843,-67085312,1919509759,1869898597,1560312178,-67085056,1918988543,1952804193,1577087589,-67084800,1701143295,6226032,-262049,1986622052,1868786021,6291566,-262048,1667592307,7102825,6357089,1868759036,1919247474,6422643,-262046,1918986355,1660970085,-67083520,1936289023,2036689780,1634493796,6553721,-262044,1668444006,1852796261,6619247,-262043,1953068915,1852401763,6684775,-262042,1802723700,1953720684,1728079616,1694497792,1952803941,1852793701,1836214630,1744857088,1929378816,1634496613,1868784995,1919510126,6881389,-262039,1936683619,1919509619,1701602675,1869182051,6946926,-262038,1701995115,1919513969,1795187813,-67081472,1936554239,1970365810,1684370025,1811966976,2030042112,1768715117,7629165,7143533,1818361852,1650553972,1845521920,1644166144,1936028780,7274595,-262033,1819440227,6517605,7340144,1752432636,1668575855,1895855221,-67079936,1869116415,1969452146,1685021556,7471205,-262030,1702061426,1952806514,7368037,7536755,1869479932,1667593077,1768320623,1946185074,-67079168,1919906815,1685221236,1962963557,-67078912,1936286975,2036427888,1684302184,1768320613,7562604,7733366,1701117948,1852138355,1735289188,1996519168,1644166144,1852138355,1735289188,2013296640,1895824384,1702258034,2030072942,-67077888,1634692351,7995492]},{"sector":3,"data":[-262022,7239026,8061051,1869479932,1768256373,7300718,8126588,1735000060,1701998446,2097184000,1929378816,1969512805,1952539760,1701996133,8257649,-262018,1684955508,2036689785,1918988130,8323172,-262017,1885435763,1802725732,-2147450880,1694497792,2037214581,792370688,792372788,792374836,792376884,792380980,792385332,792389172,792391988,792395572,792400180,792405300,792410932,792415284,792418868,792423220,792428596,792431412,792434484,792438324,792444468,792447540,792451124,792454708,792456756,792458804,792462388,792466228,792470068,792473652,792476468,792480564,792483380,792486196,792490292,792492340,792494388,792496436,792498484,792500532,792502580,792504628,792506676,792508724,792510772,792512820,792514868,792517940,792520756,792523828,792526388,792529204,792532788,792535860,792538932,792542004,792544820,792548916,792551988,792555316,792558132,792562740,792566068,792569396,792573492,792577844,792582196,792586804,792591156,792595764,792599860,792604212,792609332,792614196,792618804,792623668,792628276,792632372,792636212,792640052,792644404,792646964,792650292,792653108,792656948,792661812,792665652,792668980,792673076,792676916,792680244,792683060,792686644,792689716,792693812,792697908,792700724,792704820,792708404,792711988,792715316,792720180,792724276]},{"sector":4,"data":[792728372,792732212,792737332,792742708,792748852,792753204,792757812,792761652,792764980,792768308,792771892,792775732,792780596,792785204,792790068,792794164,792800564,792804916,792809012,792812596,792815412,792817972,792822068,792825396,792830772,792835892,792839732,-1308019660,-1340261376,-1308622464,-1342174976,479589028,1051459584,1117002901,1114053781,-221045611,7317,16842753,131071,65536,22014,0,1742077953,393222,0,1743650828,65537,0,1714946050,1703962,0,1743912966,589833,0,-2112618243,6422785,655538,-1791087696,-1308621796,-1342173184,2147483647,1636958208,680358,14811314,-1939762512,-1308621726,-1342119424,1668440466,11665412,-1833959200,6394465,0,-1790812160,-1790812132,167772188,-256,255,553647616,369144320,-86016,11665410,-22020074,-1308622081,-1342171648,196606,1441970,50331312,536916480,1839116288,1839071235,1114129,0,1843527685,353304591,134263296,11120640,16843008,1,-1325400064,288115742,352367104,14200832,130816,130816,603979776,287085920,201372160,33533952,151040512,110592,157588,485272,419748,288672,223144,92078,2425396,393249,621084724,302035456,110592,-33686019,2557,53018624,16776704,-33553632,87556351,83885568]},{"sector":5,"data":[-33553127,85459199,318766592,-33553128,236454911,65536,637538824,51576832,16776704,1056,301989888,37888,-237,-1308601345,-1342175232,274,27,-1076232192,-993732160,-1262242893,-1127695415,-1162162739,437983512,548469255,303234737,2759954,2097330,1275278768,1275296300,1275273516,1275341100,1275471404,1275585324,1275518508,1275552556,1275599404,1275601196,1275603500,1275603756,1275605804,1275606572,1275608876,1275611180,1275612972,1275614764,1275604012,1275377452,1275379244,1275382060,1275143724,1275353132,1275364396,1275375660,44,536870912,2697279,1532502016,-2113917603,-1999336816,-1749580334,-2071951381,-1802533234,-1852145255,-1599757166,-1984527435,-1915313709,-1948807970,-1780440360,-1545432093,-957704471,-717117753,-459433143,-330323995,-1168533267,1275113984,-2022658048,-2022641657,-2140108944,-2022667152,2013761392,-2022668432,-2022672377,117933936,252678128,-1896810737,134713072,129105962,716177440,771762734,16789038,1325400064,1124073547,1701015137,1493172332,1308652389,1375731823,2037544037,1868710144,29810,134348800,525824,55445506,117790983,1090979154,320670208,152242452,0,1275820032,1275682860,1275711788,1276424236,1275738412,1276472620,1276487724,1276503852,1276527404,1276531500,1276536620,1276542508,1276547628,1276552748,1276489772,1276582188,774789932,760938589,6106400,3026432,1308622848]},{"sector":6,"data":[41,10945792,1376434,1598250928,1162627398,1179535711,867663,1835186,-2130701136,16875905,11665415,-1917845483,70528872,167817728,153137152,673755136,86517800,304132608,21540864,252752384,176467968,269529088,269488144,-2122219248,226591105,335655424,269529088,269488144,-2105376126,819842,1311410,269488304,335888,8454322,16777136,0,34996224,151853058,118230028,-15329784,34737410,-1308615425,-1342172672,23124,5526352,5522512,28800,1774845953,1968400846,1852788078,1466266964,1750361189,1769096821,7627091,1181638986,1632461413,1919959410,1249468749,1967812213,1735737708,1332766035,1867412579,1667581046,-65536,3866654,7864410,11862167,15925460,19923217,23920974,2031615,5832762,9830519,13828276,17826034,21823791,536871276,0,676079692,10316,743178240,11665560,1018167310,1397575228,4079175,808866304,168636464,1953701933,543908705,1919252079,2003790950,50334221,808866304,168637232,1852383277,1701274996,1768169586,1701079414,544825888,658736,911343625,221851696,1847602442,1696625775,1735749486,1886593128,543515489,544370534,1769369189,1835954034,225734245,16515082,-16774643,1853190656,1835627565,1919230053,544370546,1375732224,842018870,539822605,1634692198,1735289204,1768910893,1931506798,1869639797,1847620722,1814066287,1701077359]},{"sector":7,"data":[658788,911343617,221327408,1847602442,543976565,1852403568,544367988,1769173857,1701670503,168653934,-256,11665633,-5241965,-1,-1,-1,0,422182912,1076432896,1112685341,-1064507253,234885125,303903,787971,244039822,-108331002,-34108593,-1202674445,-883949516,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704,78708751,-789068149,-628299565,74698795,-768878452,-268181293,-947135858,-388771593,-802438516,-1064565645,-522989013,-1030817789,1322289836,1187548077,-31145334,91598908,-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094,-1031072797,-1064385789,-2080863315,292880383,-501415642,16417267,-2129234704,-351272766,1086360796,-276578162,486614544,-339702200,-1950118942,-1962932162,50334262,33948144,1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602,482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,78935152,370939502,343413904,333648914,324277139,438770288,424286566,404691227,471145815,463215580,1027742598,1013398807,1011170399,999308346,990264086,988429050,976960218,973421087,970865130,1075658806,1071792144,1070153687,1068449724,1066418076,1062879111,1059667766,1058291485,1057111819,1052917497,1050099371,1031814790,1136411586,1134838698,1130972043,1117405925,1104888355]},{"sector":8,"data":[1100235191,1087848734,1086603471,1085161657,1199784017,1186940679,1184319147,1181173379,1175078425,1171539454,1165968843,1163478382,1162298704,1154434366,1152140482,1245332493,1243040298,1235700151,1226525068,1220823248,1215645883,1207650315,1204373461,1202276281,1307658137,1288064362,1271221256,1265453981,1260145496,1250380494,1343508567,1341673473,1339707374,1337806793,1332563847,1315196737,1407538226,1403802582,1401639834,1398887292,1395741518,1389122320,1385583285,1383027327,1377260087,1374638588,1371296215,1472944090,1469798314,1466652538,1463506762,1460360986,1457215210,1448760937,1445615161,1442469385,1429755205,1426478357,1423332581,1420186805,1417041029,1534088257,1524325218,1509120670,1502828974,1500076423,1496865092,1494767912,1492867337,1490573551,1484478639,1481922649,1477072946,1571117051,1567251861,1565416791,1561419077,1556634873,1552964765,1551588487,1550408818,1549229152,1542806540,1540381665,561586447,1633821130,1632133461,1628987681,1625841928,1624662239,1619091661,1615683702,1613586493,1611489310,1607753729,1605263299,1600216938,1598775124,1597595458,1593663240,1591041765,1589141190,1585471148,1582718571,1579572795,1575575026,1574395360,1683317857,1681351752,1679189030,1646682917,1642619381,1638687161,1635279263,1748394351,1744594959,1736665029,1733125986,1724212999,1720739492,1713989193,1807836638,1796434720,1792371438,1791191756,1788570286,1787390610,1782213248]},{"sector":9,"data":[1779067421,1776839161,1774610903,1769630133,1767598440,1761831237,1755015394,1872521305,1870950288,1868984183,1866428231,1856270057,1850633846,1840999907,1834839448,1824877904,1819831424,1816554587,1813081140,1927050053,1919382210,1917088329,1910862369,1907847642,1893298480,1877962841,1955886237,1951298657,1950118981,1946973235,1945334784,1943106530,1940026304,1938125714,1983193688,1977513452,1973253581,1971746199,1966830955,1963357476,1962243329,1958638825,2046720527,2044557799,2042722767,2040953268,2038725007,2034334064,2019195125,2001106989,1988196010,2107864688,2102558057,2096987398,2090106026,2075491340,2072673196,2069068664,2065136433,2062383866,2059238086,2057271976,2056092310,2140174901,2135326581,2130411302,2118155961,-2098102769,-2102820127,-2105965947,-2109504936,-2111208906,-2112912868,-2115272189,-2116451870,-2118417980,-2119597646,-2122022500,-2127724176,-2128576219,-2141945655,-2146205629,2146926599,2144894951,2142863304,-2066776147,-2076408657,-2081455065,-2090433663,-2092924079,-2096987369,-2009823117,-2016638941,-2023454863,-2030401763,-2034858292,-2037348703,-2039773578,-2041215393,-2043443638,-2045540823,-1969714473,-1975022965,-1980986849,-1984263729,-1988326999,-1993569983,-1996388069,-1997895434,-1999271712,-2001434434,-1916893029,-1922396751,-1925280423,-1929343722,-1931571991,-1933865774,-1935176527,-1938256739,-1945662397,-1949791263,-1954641013,-1962112204,-1868983974,-1878880116,-1880453133,-1884516394,-1888186469]},{"sector":10,"data":[-1892642997,-1897689342,-1899000102,-1907192166,-1911648723,-1808626179,-1818323998,-1823894676,-1831955663,-1837264191,-1843228075,-1846373881,-1849191967,-1851420228,-1852796518,-1854172795,-1746366096,-1754359938,-1756391586,-1759144143,-1761372404,-1764649246,-1768712523,-1770416506,-1773758864,-1777101278,-1778280950,-1779460616,-1786014296,-1801022100,-1710384611,-1712416259,-1714775594,-1745577985,-1676633061,-1681613868,-1684038732,-1685939314,-1689871532,-1695114437,-1697211674,-1699374393,-1701143898,-1705403804,-1621057652,-1625710787,-1630691607,-1635737939,-1640391095,-1642422736,-1554932618,-1556241588,-1562991872,-1574853972,-1593597605,-1608015824,-1610506210,-1505581462,-1512004079,-1514625595,-1518819963,-1521244813,-1527667438,-1531992880,-1536318322,-1539857312,-1446204971,-1451447911,-1455314594,-1459115740,-1462523670,-1465800515,-1468225391,-1470846869,-1483757606,-1491294355,-1494440172,-1379815941,-1388466762,-1392923356,-1408390124,-1411732499,-1419531404,-1422611630,-1425233132,-1326730862,-1333153633,-1335906188,-1277840205,-1280068665,-1283738706,-1304054965,-1305890250,-1220036698,-1227311359,-1237338543,-1154304577,-1168262535,-1176716781,-1202734984,-1211385881,-1115046159,-1128284947,-1135166350,-1150239854,-1028472134,-1030307162,-1032338810,-1034042775,-1036074425,-1041317366,-1044528686,-1045708364,-1046888030,-1048067696,-1050230406,-1055997614,-1065303872,-1077035011,-1084768397,-992754448,-1007958911,-904346680,-907294215,-916600366,-920467154,-930690905,-935737232]},{"sector":11,"data":[-937703380,-939866102,-942225431,-946354231,-948844670,-953628873,-959854853,-842021219,-845623875,-849556106,-852308673,-855061211,-857027341,-858207007,-870069123,-876229610,-893400156,-900674914,-903624129,-839791110,-778710611,-781856387,-785002163,-788147939,-792145683,-809119765,-836448392,-734866270,-765537251,-767700395,-770846171,-773991947,-665202235,-668280770,-671754232,-674310175,-681781346,-683354285,-686762215,-689907974,-691153194,-693250370,-698427801,-699607468,-701835715,-707406370,-712583750,-714287746,-720448184,-604447740,-605561873,-607462445,-614999116,-617358522,-630990038,-632890790,-634791374,-639444454,-642197043,-645277277,-647177858,-650061471,-652814037,-655894271,-657729316,-663889728,-599073709,-547234761,-553263328,-555753746,-559685969,-561783149,-563814797,-567681465,-574431781,-575808074,-577774184,-578953850,-475470920,-480320630,-483269812,-495328483,-497753501,-500506056,-506404335,-513678917,-521281269,-526720842,-531767180,-417536216,-432806280,-454629940,-465967945,-368581676,-378541654,-405739458,-409671750,-319821944,-339285009,-226563216,-228134283,-229707171,-231280059,-232852947,-234425835,-235998723,-237243931,-242617961,-245894802,-248254130,-252055283,-254676763,-256642884,-257822550,-259002216,-264572810,-268177383,-284692503,-171051517,-173673031,-176360047,-177539725,-181013151,-185535236,-187108124,-189401908,-191040344,-193399679]},{"sector":12,"data":[-194579345,-195759011,-198380480,-201067496,-202247174,-203688984,-205392946,-207096908,-212995236,-214568130,-216141018,-217713906,-219286794,-220859682,-222432570,-224005458,-225578346,-104662576,-112395844,-114230976,-116328160,-125831020,-128780180,-135989195,-144967750,-150210763,-152504574,-157092145,-159713650,-161679771,-162859437,-47121039,-51380964,-54330145,-60490621,-63898568,-69010401,-72680487,-75301990,-77137034,-79234218,-81331402,-92144996,-1572876,-8454208,-13172887,-19136787,-25231667,-31392155,-34079229,-36176409,617872815,664282410,675620907,946677887,20906981,17105184,13566186,5636276,2162747,524313,80610526,76022969,64095217,58327941,56492910,53805903,50922258,49218300,46858979,45679298,38142542,34472490,30802418,23003499,131006799,125634446,122488680,121308992,112133855,108201604,103024204,99943957,94963146,86508919,83952919,174197351,172690012,171969093,171248186,166529533,147458310,139200690,217974808,283577084,273879234,264441840,254414766,251072258,345969923,343217287,317395752,388044859,468655215,523246485,514662088,501882422,497294779,579542408,570106396,553984462,650520423,641738366,640034359,635971101,627451359,625812828,624633156,623453490,622273824,603202759,717892330,707340849,703080991,696265163,691415390,681650460,679553169]},{"sector":13,"data":[677455985,674703442,769207790,766651847,765406632,762326419,759901541,754527551,751774956,750070978,746859688,741026872,840248323,831533478,826028400,823013670,794046324,789393201,784609004,876687023,873280554,872428549,870724599,868299736,862139256,859910999,854995714,852374227,850997954,845427313,948320395,945305693,939472900,937637875,935868374,932394928,925644607,918763216,918107838,916403884,915224210,913847937,1026700807,979909741,976697923,974600743,970996218,1061044089,1047346844,1045904992,1044528715,1043349049,1037844007,1125925687,1123828492,1121534697,1119896269,1111048872,1106788894,1100104114,1087914288,1082802351,1079132268,1180976873,1174488631,1158563227,1150567667,1143424069,1130316668,1252279124,1248283272,1238518259,1228753246,1220364489,1217546411,1210140780,1200572434,1194411872,1192904486,1312769804,1296911872,1295600965,1294421296,1291865361,1290226935,1286163662,1282821261,1271876652,1269779383,1259621246,1255951096,1376406208,1369657837,1364808053,1362973005,1360875821,1355960589,1352683705,1347375244,1342525473,1340690425,1338593241,1334136739,1327583093,1321619211,1417434257,1410094119,1407865859,1405899741,1403737019,1399346062,1397379923,1394889537,1390498542,1388532428,1387352762,1381913236,1379684945,1378505267,1472680481,1470060467,1456101189,1444894276,1440437740,1532777898,1487428427,1603166120,1577541154]},{"sector":14,"data":[1563319798,1659657312,1614832238,1718509615,1698260407,1669555214,1783917215,1771923988,1760979333,1753442472,1738041340,1814259512,1810066427,1795255049,1860333338,1848340023,1841589722,1833594272,1829661986,1938517165,2068216659,2041084341,2034858326,-2130869775,-2068806366,-1904966571,-1818259983,-1819438187,-1821142148,-1831955702,-1833069882,-1836805451,-1838050694,-1839099287,-1855745567,-1867738807,-1773103447,-1778674128,-1782868518,-1787128445,-1793485534,-1801153309,-1806265237,-1807903666,-1814064075,-1815243819,-1816947780,-1698718976,-1699767628,-1702258010,-1703437697,-1705076122,-1747674629,-1643014223,-1644192248,-1646223891,-1647665709,-1653367369,-1654481558,-1661166247,-1673159548,-1682334780,-1683252300,-1685808242,-1687446660,-1579574429,-1581801008,-1619157037,-1620664463,-1621975205,-1623679165,-1625120979,-1628135683,-1629184276,-1539136418,-1551064171,-1559452813,-1393188153,-1408848715,-1360548104,-1378898440,-1381126727,-1316703860,-1318145669,-1322077890,-1329811176,-1331646288,-1333743472,-1336496015,-1339903943,-1344360468,-1349668941,-1351635068,-1352814746,-1354256556,-1254968004,-1256934115,-1259227904,-1260604187,-1264536378,-1268075390,-1313885765,-1197164336,-1204701065,-1212237789,-1214728285,-1217218683,-1221937338,-1223641309,-1229080822,-1240418732,-1242712582,-1248348718,-1250380405,-1252084377,-1253264039,-1168788153,-1171277240,-1171932630,-1173898729,-1175733767,-1177568801,-1179141686,-1180583504,-1184646782,-1188906667,-1124484871,-1133593386]},{"sector":15,"data":[-1142768565,-1148863578,-1048265892,-1052655248,-1060257519,-1076707139,-1084112958,-1085751463,-1086865600,-1021197258,-976502162,-918043209,-919680706,-922040027,-929380132,-941045776,-946944083,-949303437,-950679711,-951859380,-960182477,-963459408,-965425535,-968702383,-971323862,-973027827,-974469645,-864629599,-868823962,-888222755,-910505391,-821376603,-827732265,-850997930,-783953239,-800534441,-803614677,-811610190,-730082158,-733096860,-736111562,-740109304,-744238142,-747252852,-750267554,-699280592,-704195014,-707734041,-711535181,-715336327,-719923914,-723004161,-726084401,-671819765,-674834467,-679422048,-683026584,-686696663,-689711366,-693250356,-696265066,-640035224,-643835460,-647833223,-650978998,-655042293,-658646828,-661792603,-665790346,-668805063,-613295216,-616309926,-619324628,-623322370,-627385663,-632300925,-636233168,-559490570,-562176368,-566436272,-570434030,-572924436,-575414842,-577905248,-580395654,-582951596,-598418184,-602678208,-522985236,-528949084,-530980756,-533471162,-536944622,-540287001,-542777416,-545595502,-549986478,-552345817,-554901760,-557457707,-486678862,-489299223,-492182847,-495263090,-498802081,-502472148,-504962567,-507452973,-510336596,-513613446,-516431545,-519380701,-459938648,-463936405,-476978169,-479009919,-481500321,-484056263,-396238063,-404625427,-409606186,-411506807,-412883092,-415832247,-417863894,-433985781,-456333884,-346690604]},{"sector":16,"data":[-352720078,-362943766,-375002696,-378410610,-388634270,-333583314,-272699421,-278663257,-283513040,-288362778,-293212516,-297603495,-301797849,-315560545,-320082668,-324211535,-218829741,-234949925,-241307149,-257298082,-268111797,-153227268,-179964271,-191302349,-90768664,-112002639,-115082945,-131205041,-24840298,-29294988,-35127800,-37552687,-44696187,-49152718,-53281539,-56230726,-65864621,-69731337,-79168671,-17564886,-18481428,-22085953,1337721209,1333743539,1330138995,1326796581,1323847430,1318407841,1312968307,1520717300,1597462839,1659985632,1799252833,1794599700,1790339804,1784375914,1782278739,1780181555,1777101315,1772382670,1768778120,1760717049,1757505758,1755277498,1849126579,1844407810,1833397613,1822846253,1935176552,1921872716,1919054446,1915777593,1905684998,1902145911,1898279240,1896771863,1891332336,1888710813,1991341753,1988916896,1987802759,1986557555,1979151964,1968338411,1964143940,1960277252,1958048968,1954706601,2053010312,2036955705,2030270750,2109503635,2097446216,2082241615,2072345516,2054847126,-2133556992,-2137816897,-2140372859,2139127785,2132311905,2121891523,-2069658365,-2075556712,-2077850571,-2079554536,-2085649469,-2088336492,-2096069766,-2107276662,-2110422451,-2112585187,-2113764853,-2007268871,-2010150841,-2026731574,-2038331661,-1962047937,-1967617335,-1973843285,-1989768826,-1910075797,-1918464483,-1922396813,-1930392265,-1939960711,-1942909876,-1949398019]},{"sector":17,"data":[-1954116700,-1844999322,-1881632337,-1897623813,-1798335187,-1740924769,-1750100000,-1622238611,-1624924358,-1550147831,-1556176002,-1571708226,-1486708313,-1496209683,-1419467089,-1424839899,-1430017308,-1475106779,-1385845381,-1388270250,-1404720051,-1349866480,-1358123199,-1199132926,-1176979351,-1115702844,-1095713275,-1081753921,-552746463,-554967308,-556605728,-557261107,-559227204,-564732305,-569909687,-575087139,-579543675,-581378710,-588653311,-591209260,-596845410,-491789596,-499457394,-512302582,-517676717,-521805570,-528686949,-532225958,-537141231,-541138976,-447750245,-454171406,-460593949,-462101370,-468720620,-479927331,-481303724,-377429181,-380704389,-383850184,-387716883,-394467172,-395450249,-407181246,-417208424,97059923,208932006,243142283,237112951,300552708,-315560557,-322507495,-351147180,-252908802,-268242821,-282333389,-301797603,-193532449,-214502334,-123080249,-152963321,-156698955,-178260615,-64226249,-85460185,-93324619,-105907782,-121833062,-11665528,-27197842,-34341369,-57934394,582548600,-1009204314,-1004747798,-995834784,868402348,863056805,914305485,919484136,-852216148,1297173900,1280134388,1128530394,1128022848,1127498552,1129595818,1147814850,1160397868,1149650136,1167869456,1191855732,1223575912,1209682036,1240222342,1259097034,1290948110,1334464492,1349275826,1483102324,1481267288,1479432252,1477597216,1475762180,1473927144,1447712716,1445877308,1444042272]}],[{"sector":1,"data":[1442207236,1440372200,1438537164,1436702128,1434867092,1433032056,1431197020,1429361984,1427526948,1425691912,1490442468,1488607432,1486772396,1484937360,1492801848,1513773708,1527536082,1561353402,1564499310,2070175110,2056682200,-2064351920,-2064874256,-2065398552,-2065922848,-2066447144,-2066971440,-2067495736,-2038659456,-2039183752,-2039708048,-2040232344,-2040756640,-2041280936,-2041805232,-2042329528,-2042853824,-2043378120,-2043902416,-2044426712,-2044951008,-2045475304,-2045999600,-2046523896,-2047048192,-2047572488,-2048096784,-2048621080,-2049145376,-2049669672,-2050193968,-2050718264,-2051242560,-2051766856,-2052291152,-2052815448,-2053339744,-2053864040,-2054388336,-2054912632,-2055436928,-2055961224,-2056485520,-2057009816,-2057534112,-2058058408,-2058582704,-2059107000,-2059631296,-2060155592,-2060679888,-2061204184,-2061728480,-2062252776,-2062777072,-2063301368,-2063825664,-2033941256,-2034465088,-2034989384,-2035513680,-2036037976,-2036562272,-2037086568,-2037610864,-2038135160,-1542151154,-1541626856,-1535466464,-1488017582,-1475434444,16974091,11927760,4522068,2228273,44630753,40174223,37487175,32375340,26411456,21561735,105645745,95880737,92210582,85460279,75498750,72877163,61473719,57934721,114558719,126486563,240518981,193662159,182717253,282595800,267915413,262475741,254742358,251858704,247271133,364383881,362091935,356717928,314119483,308351662,304484930,396367813,391059341]},{"sector":2,"data":[383719228,375592612,373036634,487726379,485235961,480189649,460004392,453778263,429332938,545988774,517152670,506404529,498408908,568859998,586621197,580002511,-1456559830,-1456035534,-1455511238,-1454986942,-1454462646,-1453938350,-1453414054,-1452889758,-1452365462,-1451841166,-1451316870,-1450792574,-1450268278,620963148,686957657,682698989,675031125,666052536,659433299,657794879,642066162,729359768,721628000,696462053,804925502,800075710,793784177,784084744,770190899,765865426,758918524,873999645,852505584,831402458,823603561,936653042,923416367,920991490,906180249,891827551,998454409,991837002,977615506,972175894,965884366,947796251,943601775,1052327647,1038827032,1036008931,1030831516,1019821314,1011367069,1004026861,1117930184,1104691693,1083588879,1078607996,1066287053,-1429427512,-1428903216,-1428378920,-1427854624,-1427330328,-1426806032,-1426281736,-1425757440,1122020684,43899,0,0,0,0,0,2030239744,2109503635,2097446216,2082241615,2072345516,2054847126,-2133556992,-2137816897,-2140372859,2139127785,2132311905,2121891523,-2069658365,-2075556712,-2077850571,-2079554536,-2085649469,-2088336492,-2096069766,-2107276662,-2110422451,-2112585187,-2113764853,-2007268871,-2010150841,-2026731574,-2038331661,-1962047937,-1967617335,-1973843285,-1989768826,-1910075797,-1918464483,-1922396813,-1930392265,-1939960711,-1942909876,-1949398019]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[-385669911,-1008140090,12642560,-385659415,-1696002785,282061070,66520183,13500622,13500664,100139909,165217733,13500824,0,1443233792,777146711,3278478,876514094,-118322432,-1590810141,-935657424,-1047854473,-1957574613,-782806584,1940255721,1499440129,-1960901090,-851397417,-1053090015,1523872601,1606519641,113444702,1381062486,839290414,915090944,-91553740,775283704,989868193,-1962772536,1372072897,102680715,-1261008097,522308927,376619323,-1945756074,-1910569256,-202780224,-1543408731,1499340551,-111555861,-1047832230,-1022927265,-1007039495,-790590896,-789786388,619499756,-997796081,38046167,-792425896,-789786388,619499756,-997796081,-1023112745,1448235347,102651223,106269222,125143590,73239078,92113446,281413366,862090497,986221504,-1979288112,-1978610922,1978677976,-868840954,-1963423216,652670658,-2130154101,1946190053,179470,-506409334,67485955,-788337920,1036265184,-821313140,-1605363340,-403304245,-729758974,-975122176,51435830,-389467152,-128449702,1599938311,1532582494,1976699843,1173759508,225738760,-972622290,91554320,-352298776,16759006,14281721,-396996100,91424563,1499381811,281394883,-218100295,-155176027,17876486,1581252981,50009,0,1381040128,573490059,-1190078458,-523042803,-1014239229,-686912978,787010320,282267275,-268181001,650336602,187041163,192217669,-149892191,84988198,-54329328,872415162]},{"sector":6,"data":[-1172928037,-1105819391,-1138849535,-1071740671,-650722047,868823824,-5838602,1958886317,238759472,91423162,-1173452498,238759425,91619772,-1139898066,507194881,91423166,-1105295058,507194881,91619776,-1071740626,776028417,282267195,776192626,282140219,-2094091406,-16662978,784531829,29361919,-1140423890,-1004142079,62412605,-1070355712,-1130287445,103493121,-523173446,-523116335,-1063178581,103493121,850067902,-694145308,28355344,80184235,-1105294546,378220033,724435388,-788415978,785026026,28980875,-201392152,992887717,1912717342,-276603924,2139694596,-945738238,244002320,-148500273,-235469721,206014758,281649454,-787576018,1744250384,653391622,-1022474359,0,0,0,8388608,-287274496,-997790654,-289341878,-997790654,-477445302,-410369809,-2147433489,16983614,-1712845964,32172032,52823750,-770815,37556339,-1593149696,57938145,856743841,-1957245998,-185695248,-1795168559,-883032040,52838016,-401902591,-1243086748,637978113,37552387,-1593149696,57938149,856744865,52178,0,33667072,1426464451,-1275063619,644861188,1560303777,-1329389817,-1203509578,1122370867,1122419850,-527801884,1642464012,-500956999,104053246,1122419082,1122420106,-499908423,-423326978,1397801825,1862318086,281926451,1213266817,113640821,117506948,12802139,0,0,0,0,-33554432,-2147228922,17031998]},{"sector":7,"data":[1405288820,80341074,1532625779,276144579,-1341922141,-17650,167969978,-401573610,1464991484,-930347434,401129614,65453826,-1174400839,-386268224,-1963261196,504394278,-611394765,520238312,-1014767989,-1312214237,32565264,-1061502926,663365123,-289110290,1078183046,548467682,168473326,-334464746,1499422215,-20751526,1946411790,1381221121,512429744,79299556,2031487491,-24188912,-930328314,-617365362,280086835,855746024,62962368,65447818,-289110290,1078183046,-1061489950,-299847677,369756850,1508642937,-1017423353,81855700,512438012,-13758253,-1023097706,-204830122,-217882971,-193605890,-1329493053,1470868225,-1261794730,172403744,1007252672,-1442482945,99349474,-492125046,168671468,-217882965,-596259074,855830403,-947147840,650586975,-1006746231,1397751808,1424134,-2095529085,-1014823485,12812553,-1992080637,17112094,17883934,118547742,12802139,0,1392508928,1048587856,1962870992,1977879144,113716788,-61315,2131150638,788528912,276891335,-953221121,-15695098,-16466945,158598972,54329267,971703159,512306832,837488765,301760656,540814197,254027635,561447996,494142268,772268931,276662152,2131150638,788528912,276891335,-953221121,-15695098,777738495,88551167,-1900006453,-1475951144,1134767620,512503301,-1070398139,117102734,4202180,1193183534,109850117,1270547785,1075742981,1108249600,-1006958848,-1900006650,113520344]},{"sector":8,"data":[-1543895741,109839528,-1590819670,1084425543,1235299840,4367109,12781563,858927408,926299444,1111570744,1178944579,-1070391728,-2002724722,1007625220,1006990345,-117345277,-1017634827,771951290,276370954,1963501804,145288443,-1161561228,170787594,-334464746,-1329548718,-329585120,51034819,2031487534,-1303188464,-289393984,-993792934,637839414,-964610876,-58719168,-2125302000,-167493394,285509894,-964616844,-58718784,-2093056511,-58703674,-2093056509,-58703674,-2127137785,-167362322,1610909446,-964618892,-58719168,-2094894065,-58703674,-2128972784,-2147188498,158794748,1946113512,-1060732668,-775933436,65589736,1048626160,1946225112,-1178339070,1381040131,567094452,482067083,-103749626,45111642,567098804,-661976462,567099060,-1007034142,-1275068231,-1826501316,1464925379,-4603854,1101984511,1608120129,-1070349480,-315439734,51034704,276370954,62962412,-1975325096,-1968509728,1254162116,868476642,851806912,-1975324947,-1968509728,1254162116,868479970,851806912,629810925,-498646801,861127672,16824795,-1961879624,51432919,65131001,1405311993,12180275,269662209,281925515,-506332925,-1017382653,-2081649835,1397758188,856053585,-1144811813,-1960443396,1191912967,-114330622,-855571016,645133695,-1981133175,118941782,116162189,-1202256297,-1901395948,1958472262,-396492032,1595932454,2105550343,1594359554,-1957143719,12803557,13107520,16842832,-1207959552,1073741824]},{"sector":9,"data":[1342228481,65792,12058624,41943040,10485960,257,47104,-939360256,16818176,1,16777400,13107520,16908368,-1207959295,1073807360,1342228481,16843264,12058625,41943296,5243080,16843009,47104,1577242624,16818177,1,50331824,13107520,67174480,-1610612736,-2147287040,1342228482,262400,10485760,41943296,5243230,257,40960,1577222147,16797697,4,50331808,31457920,16842832,-1610612736,-2147287040,1342300162,262400,10485760,20972288,20971720,1032,40960,1364261888,509040210,-1900006650,71941848,785418924,1007710882,-117148141,-1392467991,281780782,284852397,12059509,-576508256,-1557222128,1623068889,-1557222140,-1404694409,-1573982172,-2067918727,-1057051644,281846318,-661731188,79347854,2031487491,-401821680,1940126171,-401690608,1973680595,133152272,-1206860097,243925007,-109047694,-2147257843,-503970327,-2086342653,96012487,-2086276352,1369768647,-1950250159,-886666543,41990416,-844959241,-1973790704,-1190081498,1048576200,1913589874,22984963,-828182025,520615952,1499094623,-1944140968,785944264,147850950,275947775,281928754,-804862418,62390280,-841272816,1997441808,-855526384,50641424,276370954,275979915,1374162096,1964936185,-401690608,-1021314744,-294912,1021850996,1073316861,-1940837001,-1948741952,-1899459337,277200832,1503982588,-226578179,46629806]},{"sector":10,"data":[1380432124,-1438469973,2067695918,113651216,-1023342120,0,0,67175168,132864,-1940695292,-1077899576,96012821,63224320,-1073932056,62458394,63879684,872221928,-1176816704,-994443259,-1484116477,1089407517,-1325997501,-1311034620,785297923,170043274,-498908945,-1017160714,-930326701,-1070350194,-1174403655,364839876,-52172790,-617413456,-827194447,447187502,1128328970,1533015778,102651843,-1064384372,-13379442,-2147481415,1080765,-498661772,1777072374,915101271,-2051403653,-64296944,1483890526,-1174445336,12066816,-2082959712,-947190785,70058878,-773720320,67077088,328574,-388986080,510850384,443924795,150963015,-2144466317,1080765,-252978316,-1258328600,-132002498,1676153835,-851528449,-1899459551,277199576,567099828,1595869177,-1944168509,-958886200,660486,-2054488269,-12840835,-2092496779,-227407617,-1073063957,1048638581,1946225172,45111060,-1273985606,1596050749,-661964174,169084614,-20322303,-8140917,755203587,12124164,-773720288,67077088,328574,516983584,-1902116680,-184817448,990474783,-402295359,-1494483230,-336065304,1048587937,1963002388,277199371,567099060,567099828,-1017176072,-930341289,-13379442,276661642,74760202,141950780,150963015,216788594,269226420,-840987821,-320120048,-1017176072,-1174004137,78644174,-1964227858,95439560,-1964227858,915100136,-2051403653,-84744176,1877672819,1916698768,880022288]},{"sector":11,"data":[-1174403656,1223623630,243985714,1049301206,-987885347,1343281430,-826650031,-1956974845,-200087345,-1053084814,1482239861,-404568834,-1876956385,-586249426,382021136,-506392359,-236396079,1975598067,-389020909,-1053035544,1051986549,-336059955,525883663,567099060,-1273985606,-115225279,63879769,1122895024,1257161098,1122895280,133088650,1455644447,-930347490,45144206,-1273985606,1914817853,1048597083,1964183666,-661971429,282922635,282662597,-506338863,66310376,-204740400,-1875907809,45668491,-1964166655,-1961830898,504421686,282662597,-1169010352,1525613508,-1494692213,-799516173,535683812,-994439244,1052045059,-1269161523,-132002495,-1017241849,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1169010688,-1561590844,-1061548755,799206403,64272909,221160172,-335294790,1510813858,-95885224,1323893619,839289857,1364676608,50386361,50666510,876513785,-1547621632,1599668272,-77993896,719913843,2047264257,104529936,91492579,276432582,14006785,85726723,281413366,50623746,990960918,-385649726,-320339711,-385649668,116785401,1946292422,-31660024,-353827981,1925118976,3586320,866513828,-1093103936,263783497,-1096420608,62456964,-1510759424,-1526421314,1048587941,1963000708,-174200819,-164374386,-1543495751,-164715021,34653702,-1959911563]},{"sector":12,"data":[772857102,282670789,2050916398,91554064,12187187,-202780352,-204353115,-1945741404,-1899983160,218480600,-1174922776,79298584,369765891,384307321,218479609,-1090400280,-1569552,1423863,-100417350,-67575832,-401805125,-860225076,-1573983229,-35123925,63617537,748826348,33351693,-1174402631,582943694,-120068083,-401792325,96010680,63224320,-401793601,498858181,29026317,-1190334274,-1048379347,121717006,-391842977,-1293354800,-389285641,-286722131,-53741068,-611532660,-661732466,1925183371,3586320,111539108,-1064386509,639845514,117737890,-386219032,-164694125,34653702,-1628960652,-385649667,-1070399197,1237303438,1030404,-2067814925,243972,-1079643228,-1515912024,-2076278738,225771779,-1896579352,-1174457408,-207355873,116797093,1963069638,244002335,-1003613987,772856126,276446848,855995649,1073789439,-1510741551,-1527524911,-18678046,-1929615896,-1178562872,-1048379347,-1086242546,-1527575312,-661774762,218480634,-1175001624,79298584,369765891,-152563591,96205815,10151949,-1608063950,-1027994325,-571937277,748692992,51034637,2031487534,-672600560,220053248,-1174403655,-957873212,220052471,-1090476056,163122466,63879680,-1141394200,-2115498718,217103872,871795176,-1961512503,-1161808930,663356352,-289110290,1078183046,-256117534,4909068,-1427611897,-79828745,1391883496,765472336,63224333,782249710,64272909,815804142,63879693,799026926]},{"sector":13,"data":[62962189,-128296722,-208672565,12241913,-1175211008,-850198504,12213008,-839404544,414892816,-1175211008,-850198507,414866192,-839404544,280675088,-1175211008,-850198519,280648464,-839404544,146457360,-1175211008,-850198523,146430736,-839404544,549110544,-1963871232,-1022308904,-1275057990,-841446671,49936,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1610612992,460809,0,0,0,0,167772160,356519952,776000801,276629191,-953221121,-15696122,113716991,-61311,-2096707794,1358954256,3292496,725420659,-1207143936,65737217,-1290665288,1477496112,-855637064,1397774352,1979717949,2833681,347604339,-1207702767,-617410286,12062925,101169409,1482363085,-1014666037,1642053660,1734964083,-15021,65281]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[21256781,37,21037088,95354879,128,73072656,30,1]}],[{"sector":1,"data":[-16777216,-1325378560,82837529,9961472,1048576,8,120,4,466223168,-16731648,1149153280,283471,26476722,218761136,-1308621623,-1342157107,62524859,438350336,1397600256,1397703725,1396790304,1465065547,1212372041,1394627141,1330663509,1856594,1581234,-1173505360,-994967549,-1162870706,539015693,1970231584,1919950962,1634887535,1633886317,1953459822,543515168,1885435763,543450480,544503151,1679847284,778793833,1701336096,1763730802,1869488243,1852121204,1751610735,1634759456,1864394083,538976366,549064122,1870209056,538997365,1802725732,1411391534,1931502952,1701868405,1684366446,1869770784,1835102823,1818851104,1700929644,1936028192,1953653108,539911269,544567129,1953723757,1701996064,1768169573,538995571,-1173505504,1931485216,1701011824,1869881376,2004033568,1751348329,1970216992,1713381492,544042866,1936287860,1885413408,1667853424,1869182049,1864379502,1818566770,2032166259,1830843759,544502645,543452773,543516788,230301728,538976442,1735357040,544039282,1868981602,1948280178,1852406130,1869881447,544171808,1801675106,544175136,543516788,1818585171,19345004,1908914,-1173505360,-994967549,-1162870706,244237,1253554,1701998768,1629516659,1797290350,1948285285,1701978223,1918989427,1752440948,1919950949,1634887535,774778477,-1308612562,-1342172384,63442362,1322103296,616345600,11665410,-1716518637,11534720]},{"sector":2,"data":[-1728053248,1431787008,913677052,57868750,-1207879447,-661782528,-1127182598,-1694824246,30292562,-1075248269,434432,-2147473245,2110,28841332,-1706012672,30291600,-385649832,199753890,859237121,-1868934976,1929498166,9496835,-1559289368,1390936836,58845199,3081926,112895,26208336,-689436301,-1327222267,-949097720,19462,315025408,-469100941,646449012,451477540,2466308,2361030,68151568,5119627,50601609,2819783,1048772608,1946157132,-390057209,-907345762,-402560024,149422913,50635023,74760203,247916624,407295,-1592881176,-397410264,-1070397703,124053584,614645811,2466304,3227267,-1202621440,129911301,187682048,1024226496,1081540609,2375296,-1271303168,823560973,1176436480,-1962232825,-16764650,101139998,1241888855,-855635778,-1950183889,-2050545928,355,1703266086,637534209,23561671,123666432,2373375,2438911,-1207471640,567102464,-883007651,1958743036,-1587352830,1358430284,2635519,503642856,990343943,1946167302,1352464757,14280787,-1588588173,-397410264,-396884286,1482362293,1532750749,158571864,2760328,-352311133,-1981263808,39839744,1477322472,184747169,1342469312,856548328,2466496,-1577045856,736690212,230484223,-402455389,484969965,788973058,-1070399488,2877520,266929011,16443647,614467699,3187200,-826756117,5284609,-1560259933,666370132,5677839,-1560083295,1438842956]},{"sector":3,"data":[-326898549,-61385210,2361030,206891016,2122516254,41156868,15205355,1583347729,-1034033781,-1957363710,82609132,-956541098,201335814,101466088,3999374,637540256,-1593835358,-1557790665,1594294275,1575324510,-326412861,-66392957,1930177512,7530755,-1946103106,1988753502,-18186,-397388258,1584531347,872302217,113600,1358853887,1944605520,-61437694,872040073,-25755712,-397389744,1183646306,309754,1996479283,1397757694,41281617,-1070389134,-100609,1996487798,1072189690,-25755902,1913482984,-25755887,1912795880,-126419191,-386500865,-443874566,-956513443,234890246,503397608,175827030,-397407118,-759299377,-397009408,1438843375,-1946358645,-538441634,-1957539568,-421001634,106858768,369318234,-779943912,73304832,-1995385624,519701598,1576587,235292302,871772959,530904063,1707659,855918222,-201378826,1586232228,71731974,-795944818,-1928956161,1342392326,1575324619,-67107134,-1912484168,50314944,-1191067713,-1527578613,637538209,-1593716829,-1557790714,-1070399028,30516006,1352908940,5415680,637555875,637654435,637655459,-1207837277,-1557790474,2025325011,-677173759,26785793,31171366,-1559787080,-970588074,118278,184562593,1946170630,117319211,832635342,-1834801664,254601261,-1777432282,378086957,244002196,378208309,-1993998285,640522766,764941961,-628294461,-1912579909,-485520422,109036557,-217942075,180585381,-54268437]},{"sector":4,"data":[1488706188,-1948611072,-1005591793,2009399935,-1510737402,180585467,-2134643733,16788030,115869045,-402396416,-1077739503,1458045138,2662656,-1107290904,-1077739310,1424490706,2662656,-1107295000,-54329134,-947201909,-1979705880,1108163,-1420546376,-1420800584,-1012219854,-872422168,-389000964,-388962096,166258896,609790464,190479,805618602,41302332,-54327548,2008942366,178957313,1341814208,119471299,-1409172546,1975519914,-389853190,-389283871,-389283861,1426063673,1455811723,71731718,567098804,-4717709,1575324671,1426065090,1590029451,-1949070586,1018430542,57876941,-1946157128,113401317,-326413056,-1962647867,-851331885,-1207733471,-443809793,311901,-1947432107,1451952206,173968134,-1274788214,1931595074,-17914,-1946157128,146955749,-348147456,-348081916,-326413056,503639171,-1996724599,1586233166,108956428,-989573493,-167049098,-4706700,1086729215,74841867,695451963,-1957669039,-1966568490,567148390,-1946138392,268436952,-164374386,727277400,14648264,292945675,2012281219,-1965651188,567148390,-352312088,-1957603535,-1001002,-838900086,1304609,-16394100,869830159,-2090903050,-545001239,1925835520,1925266181,1052033793,-1946607155,-1960838042,180510181,-326413056,-1274782069,-1960719042,46292453,1023455488,-1957362767,1586372332,72780550,843252152,522309101,-1034033781,-1610612732,205258788,109977717,396361789,10626560,3645696,238374]},{"sector":5,"data":[17221414,-1962934272,-385866202,121436890,384303986,104267520,155641856,838872296,2400484,2500235,1358609897,41093692,1664880363,-1336408203,614617096,-68753408,-386024216,-1571288701,-389873628,32046541,-695483648,860029368,-1272853047,-1021194943,-326413056,1443032195,-954333609,407558,-12139008,54427903,343211776,512425778,95944707,835146,-1030869043,1911289995,-1102445128,801964039,58048523,-1560238359,1190594106,1946161158,1354773260,855741928,-1863714624,52094976,-402229505,-1030881135,1038874763,50743031,-1961593856,184956958,-1207143205,213797381,-1909469952,653822914,1081558519,-133991424,-1960422165,-1072989627,363858037,-134205278,-1977203477,-335971235,1349881149,-919347573,1174702630,1975519809,-1178498057,1392902217,1996443984,29419775,16729798,50743031,-401968128,91423337,-351910263,7727235,-125058418,-1672444181,-1660770072,1594302296,1575324510,1426064578,1448209547,71759703,393543683,-150993474,328774,62784373,1241888768,1021849549,-1590564096,29034040,-137809152,328774,-4520075,974031871,1002636038,1980119558,-1547597054,-661977544,-1102445128,801964041,-963919220,-1957077409,46292453,106386944,-1102445128,801964040,-125058418,24556941,-1977162702,-1291750011,65271423,130190534,1438867039,1465314443,74907398,1912607720,1241888776,-855636802,1583286063,-1034033781,-1957363710,106387180,-1102445128,801964040]},{"sector":6,"data":[-125058418,-1977162702,-1291750011,-1914440065,50427573,1096176,-1960390093,1178303044,840070148,1149904612,-1914440071,50427573,-421379344,-1931834375,130452418,-443851169,180829,-2081649835,-1207565588,146688517,-1909469952,855149506,-2054543644,2142437749,-1248992266,-268238474,-956297031,65094,2001008422,427130880,294531,-1960440972,1178303044,-350260220,1157047816,1962950775,652489237,-159824758,1991609827,-1047807,-857539002,1586171883,1960512510,1241888776,-855634754,-443873489,180829,1475119957,1241888774,-855635778,-1950183889,107383544,637814410,23954825,-443851001,311901,1458342741,108432215,294528,45359732,-768409417,1085804749,-1329558016,512370200,-163577782,-1211593757,-1206089216,281872672,11993780,-855571782,138840848,4996424,1287127926,138840320,721439929,-372158008,-486485629,548950297,-1979664631,281870684,-1241467047,-2133751295,45351618,1552552141,22809090,2126774455,139365130,642849251,-1270413942,112905,62132429,-1023536947,281871028,1508368985,182708689,-1224138568,22841856,45355213,12255026,1594936601,1575324510,1392511682,106387026,-1912586056,1555392,637652666,1946683382,-1030879714,-502860250,1946631938,-1030879506,-2044280782,604168710,132395583,-134091783,1516134151,-1207516325,-1064435250,-1172371938,163055942,-970863323,188934,113444639,30324766,-1910062962,638360094,211293835,-853210696]},{"sector":7,"data":[-1022943455,-326413056,-65344381,15222471,-431569152,2122317828,527695876,1996472371,108461832,-90183600,1183415154,-1178586114,1996423172,1347506430,-344600,1996488310,93579268,1442930546,-397536794,3606059,-320284425,-330921725,-1192599927,295895502,-25755904,1128191,-1280257,1996483190,4777988,134557554,13796096,300303873,2122377302,494141444,2123171606,-1070376970,-218102599,146366379,-3001600,1460076150,2028491090,-28931078,75399324,-1962511104,1183574102,-443834906,442973,-2081649835,-955901716,59974,15222471,173968128,1121929,-955709976,63046,16008903,-229734144,-1896851831,-1962929914,1175128134,-385649402,12124336,142508928,-1962576640,-372177330,871255689,-218156096,1096082351,-1962741885,-1957474081,-1142894143,74580096,41337659,-796146805,-100444069,-2144989070,175374397,-100402645,-903091503,-74723861,-896837807,-1342969391,1499449611,-100407179,-410840718,-327251472,-947651701,-253263089,-1953483797,-506335666,548483,-2096738775,-1962932130,-506335666,16144003,-2081141247,-1962871210,-402648802,-398391214,512297053,1391001617,-193068545,16144003,703364747,1585645182,512425992,1317732371,-262763534,-1995949848,-1962929378,1183577686,525812,16831107,1444014150,75399402,373519360,-125924089,-263812265,-230257749,-196703317,-163148885,146366379,-3001600,1460014198,686313810,-385649671,-1070399275,-15960321]},{"sector":8,"data":[1342182198,-624897,283702390,-385649671,1183514813,105253640,-1293352075,-327253248,-1961921280,-402648802,-398391374,512296893,109969425,1183514641,105253640,-1897331851,-2147436544,556675,-1957488523,1586169414,1004271596,184972995,-1962773285,-388932669,2122517995,125042924,-135510389,-1947676200,-1950338104,-1342968706,494258443,-327275689,-2096726487,1593837662,-327283881,-330905761,-1988820992,-351777025,49251204,-1947146365,-329372705,-2096734679,-1946154914,120383683,-779888893,-163133696,1187446784,-1996488460,1451881038,119793904,1121929,-1661069079,294528,1451951733,-398029846,-443873379,705117,-2081649835,-956561684,234890246,503370430,-120461226,503317176,-1360506794,-385649673,1183384269,-62484998,79415603,-92864768,1397837846,1945632488,45345027,1996472371,-25755654,1358722815,1945618920,44034307,872185485,310208,385513215,-397193129,57931731,-1962768151,899939910,-62485760,-1962921053,-443811258,-1957313699,250381292,108462076,-402360577,45676635,108461824,1342469887,1928803560,-28931744,872040077,310217,385775359,-397192880,1232271239,1996472371,-59310082,1358591743,-567832,-1528234378,858944002,309696,1358853887,1072189521,30324983,4130347,4142847,3618559,97249360,-385976577,158466618,-385976577,1183514633,1575324670,1426064578,-326898549,118946824,-1174897011,-1070399480,1996445446,1347880452,-149297071]},{"sector":9,"data":[930219871,637897510,1946305803,1300964909,361440770,1253003,-1996107544,637539102,637947275,855922059,74907584,1259263,-397258416,57865955,-1946636053,46292453,-1962987008,-789851940,-789851925,-773795349,-773795360,1388549088,12309043,-1830553852,-1017455989,50544256,-1089833473,12060220,-855171506,1048626023,1979646723,104644104,-850525768,-1957313689,82609132,16533191,-28915964,-1070399488,-397389744,1174535015,-27913732,81539,-1592953856,378208307,1174470709,-27913732,-1946268021,1151466582,-7084032,-938224893,4732671,1172853329,-402165248,28570965,1317740779,-61436930,-402635103,-754712719,922732563,1381040896,1912611816,-180099043,1443234483,674692947,-118560768,-1030878094,643559563,1585208456,-443811833,-1957313699,-1976126228,-360708010,857853248,199489490,-150309422,106314721,1178272629,1575324420,-1107294526,-695533358,567099828,281874356,281928754,-1274869062,-1272853239,-1157680638,281876736,-854849608,-1957313759,1370348,1963214395,-1547685111,-397409532,-443875300,180829,95946327,573002,-1030869043,-1960380277,117533061,-1957313697,-1207543828,146688517,-1909469952,-1946645566,-1993997242,117533061,1575324511,-1207958846,567086080,-852295496,-15300575,855750658,567136818,855750851,50271882,-389865011,1426126353,-66655093,3999374,294528,-1070394508,100667577,101086975,-397324208,1913124135,30324748,4130347]},{"sector":10,"data":[280676659,-443873536,311901,116165461,-1900006404,-1191166714,-16383984,1342571638,-186101424,-1962473484,46292453,-326413056,-66693290,3348107,3477131,1359247103,7399506,-1956749561,46292453,-326413056,1443425411,-1074002345,-1070399487,-16776517,1461585014,-1326951600,373322484,-58815225,79413299,74907392,1397774086,1928633064,-28406998,-1979951477,-1996475122,-1962921194,1958874049,20874006,259260416,1996472371,-25755900,1358722815,117533672,-443851169,180829,-2081649835,-1191436564,-919404542,-16776770,1444808822,1357402193,-385649676,79167806,-1916194048,1996424310,1364596232,-197531568,669582195,108432129,1963226635,18671875,81539,-385649408,109969682,-970588099,1509949446,-1996370248,103539270,-654901185,3606019,-2080561432,118943971,-1947961715,637546766,855919753,1284056777,1284056582,1284056584,1284056586,-498169076,239896870,122162827,-1946268023,-1996012018,1317796942,72780550,58114363,1912638185,1994013447,8513795,639404326,503465097,196367184,1593777942,1543015420,-16048296,-1964440715,1364414464,-1960421806,1284187668,1149969922,-16882,1342732031,-396996015,1516173594,1918393177,1364414567,369514066,-193032953,-1178586281,-1410138108,571743,1996476979,1381434888,-212735919,1499094535,1014126683,-937700565,-99878517,19272308,287704668,1877542980,-1950249985,-8853030,2123171606,-1070376972,-218102599,146366379]},{"sector":11,"data":[-3001600,1460013174,283660626,-117314573,-1034033781,-1957363706,384599020,141986812,1963357707,12970243,-1996370248,103541318,-654901185,3606019,-2080635160,118943971,-1947437427,637546766,856312969,1284056777,1284056588,1284056590,1284056580,-363951354,139233574,122162827,-1946268023,-1996012018,1317796942,106334984,1735901499,-633666446,-1993973385,1149838876,75399170,1345156351,-1202564781,103481806,922681407,922681407,-397410249,1499070705,1397774427,-11120047,786958966,1499094779,829577307,-1269608418,-14739957,-125043618,186603611,723350783,-1949819949,1962544121,1543579152,1141974540,-1953109234,-337998911,32241817,1575324665,-1023407934,3217035,520031412,-880081082,1381091975,378211764,520028209,1499072326,-326412861,-1962654069,46292453,854129664,1060569072,926351104,137821952,6809603,-1962921055,1342190870,1951973899,-17654,1397772883,-1006710808,1352778748,121676544,-1560258911,1428031294,-1912581471,5022144,121511679,1285758813,1310624000,17729792,51808256,-1022943744,116165461,1208239755,-1591295858,-523173885,-523116335,856154321,1575324626,1426064066,-326898549,106385668,50880139,-1014102946,721831563,-1863842746,869305338,1959922687,-2147436270,-1410088909,-2118022070,-1911553855,-1947538495,870961611,128709568,-443852449,442973,78762891,-1070341421,-388839542,1371785355,-1312715950,-739585276,-1946940728,-1017554214,3217035]},{"sector":12,"data":[208982539,520031668,179570502,122035967,-850656840,-238032863,337352960,31654066,65968,1966258,89264,5177522,89264,38404274,17305520,251920648,168493323,570470912,-16666624,-16515072,-15728640,-16646144,-16252928,11665426,-1716518848,11534737,1437728769,11534465,28311611,67570436,184813579,202050058,1697712960,191708939,759108,521014001,32380556,32515721,365791412,-402459485,74650588,-872870988,-1102445128,801964040,-1996299101,-402463210,-962526683,-1064417279,237862,-1946031197,63122379,-1560164858,-1608121879,-308150272,-972648959,-937522431,656278273,-820116732,1241561089,535306701,222685200,-401307160,-895415546,248309761,-402535773,703075488,246736911,503435707,109970951,-1591344703,637993004,1441269641,113651213,100664041,119665384,-854851400,855750689,29300362,-1226300979,-117017582,-352300872,314370072,-1156395800,-1497759279,386857472,-83414340,-850722632,-1910567391,-1962807786,-1677594586,314501200,-1206981400,-768462079,777527757,48840320,-1658096129,1086015668,773967104,-1157354845,-795999256,-1008147573,-1910567388,-1962807786,-1274941402,109981257,567084074,-2091868936,16901134,-1592950296,-303562294,-834764781,57933825,-399704600,521014974,-401813528,15212901,331343893,-436076384,33660961,-1962063384,-1207844578,567103488,29755022,32185995,-850788168,1220578337,-308232050,10626561]},{"sector":13,"data":[-1054962944,1342224385,-1655168563,-1070398862,29630091,116797131,1950286562,117386767,-2094136656,620933182,451611507,-1341733074,-352321534,116796945,1963000555,113651209,-402652446,-13758874,-83709394,-164736994,16899846,-1070389899,1625610382,68626058,235922560,-166628321,57934788,1342426240,1632338,175331418,1476585634,788475423,-1574042954,-169344280,-820029428,106385747,-1564539106,1423620,1974465276,-276605124,-1561362174,-2115514108,855952583,974490587,14647550,48774690,410376763,973297034,1946433302,1166695183,-502921214,-485062654,116127746,-352132257,1594358208,113466201,856104700,78430144,-218095431,81837988,-218087239,-465648476,-1176816894,2142371856,-1977162702,-167676539,1991609826,854590209,1149904630,-1400403851,1149904388,1946396790,-2013066238,-788222585,-527972637,-1977221116,-2021100476,-1215822623,-2017065757,-788265758,1149970155,-872006790,-2012973823,-2096875722,-466484541,2034534950,1971665446,-166956031,1991609826,-17825023,128377542,-1996717885,-970058379,194054,49586478,-1002536146,41156609,1037025331,410370567,-418986450,1397751809,-879968116,1482408763,-970062222,-16652538,-1037107410,-1070444542,-368671186,1493122050,-353888140,1048587778,1962869484,284983309,-58718860,-402426624,-13760514,-402471378,508887757,-2044295122,124697863,-2096894589,976094149,-143327130,24575790,-981209973,1562362628,788475642,1562313406]},{"sector":14,"data":[788176079,46014207,-655819837,-68687097,-1911848728,2123103814,235768828,46301983,113716821,73736,117884462,2129133600,1586388245,-58815490,41205770,1166592254,191424513,844168143,-4855616,-2132769192,-1150022916,1946287232,133988528,-58676364,-2136574968,-1904998660,-970025749,-16586490,-386169621,57936189,-385909783,1183714069,1428098814,136218926,113651232,-385933305,-1990388570,334034502,1023135499,-148736767,1946157506,-10885092,772829852,49481414,549647872,-30538380,-1660751090,46816543,-13440768,-1940696837,1004244168,1527018947,-1261701032,1528941837,-1664353960,-1930654891,507918792,772174941,46800639,61906383,113651407,788464361,47066879,1930093544,33325080,-58718348,-352160764,133572108,772174976,45024966,788475647,-2143485230,1024750662,309597701,1947600445,1258437912,-13754764,855825966,-2094084160,33678350,-567345362,646131202,788333028,48115455,-562701557,197168208,-696952633,-1480653042,-1950338279,1736652508,-617349628,175302863,-165278605,108298247,-1358510546,-13697278,771937838,31852286,10156700,771751936,31854334,117321423,-90439194,154,251538944,785318374,31852286,10156700,771751936,31854334,117321423,-90439194,154,251538944,785318374,31852286,10156700,771751936,31854334,117321423,-90439194,154,251538944,785318374,31852286,10156700,771751936,31854334]},{"sector":15,"data":[117321423,-90439194,154,251538944,785318374,31852286,10156700,771751936,31854334,117321423,-90439194,154,251538944,785318374,31852286,10156700,771751936,31854334,117321423,-90439194,154,251538944,785318374,31852286,10156700,771751936,31854334,117321423,-90439194,154,251538944,785318374,31852286,10156700,771751936,31854334,117321423,-90439194,154,251538944,1355743718,-2043805264,167963398,1517639872,-502860242,1282686722,-1943078244,772224022,29034231,125108236,908495150,772205319,942049638,-1139339769,1776813744,-402427386,788135977,29034231,208994316,873893422,646655495,199952182,873893422,-1956237817,-1660471258,-351877586,784531458,29034231,208994316,1342578332,1431458131,183195478,102669414,-1609586673,251420774,69396511,-399310664,-2010186549,-1207656682,-768462079,788315880,49678022,-846678785,104541717,108266228,-167328210,1994981122,259123207,-83502872,1930286056,211347496,-401644824,788202953,-402521184,-1696069811,855750668,-1625912786,-59119612,-502872530,384368642,234874881,-834764754,57933825,-1205394968,31981593,18868238,-402484760,-2098717797,145221659,101119720,-1056534994,782312961,950218240,815867396,983772672,-1959917820,-1207844578,567103488,-233403346,116862465,786875,-1993472139,-352193498,-1989792250,771880486,32380558,-265909458,784347905]},{"sector":16,"data":[48367238,-617398492,-163676114,242614018,-1004631250,1977289473,512437765,-315489844,-1676768722,378154541,-872938781,-1899262724,-995938597,-147916287,201440006,772568320,32642702,-198800594,772532993,32642702,646669870,-386203146,132648230,1048587789,1946157518,636348419,-402563864,-1394081295,451471386,-402570776,12122725,-400438004,1290275714,78899214,772157928,771883682,-402521184,703071890,192669723,775094712,77534858,788224744,29034231,208994316,1516068447,123231065,183213343,-1592827546,520595727,-1195139738,567105536,70623790,-849870152,916598305,1958742532,1476638727,567139123,567095220,-33125330,512306689,12059132,773967185,33169033,1174558654,3467350,33923630,-402391873,-138542730,25618435,-402389057,29229460,27715588,771880424,29572736,101479935,503510975,1308669959,-1022924851,-2081649835,106104044,-852155208,-60913375,-1157740916,616042672,-1272853211,-1962888633,567084150,567089588,-61437104,-27357666,-853203784,123215649,1575324507,1426064066,-326898549,-1207545084,567096612,-1929617783,-1329922490,623163408,1451958733,-854674426,-1959021535,567084118,519853707,-1191289202,567092516,-1956968673,79846885,-821841920,-1607539662,1471808005,-397258750,-1195114575,-1959899136,-855508450,-1909586399,771866886,637810849,771763875,637811361,117452963,844628408,512372479,567084085,844628920,512372479,567084086]},{"sector":17,"data":[773501982,33298059,-31551954,522308865,-402393153,-54656914,8316931,-402390593,129892492,10414084,771812840,29572736,-1106741761,28836599,-1016607410,44569037,1019086452,886938372,-1090443544,118359868,-1900006626,3324376,-217780034,-842850396,1946331153,-423611638,71089904,-400237157,1019085073,-1070397945,851034254,82886400,-1022909197,100664761,-617412834,-398196552,-1031079569,-186498134,96060167,-1394920704,-164441974,-398196296,-498861737,505332722,4241415,146528398,-1425569024,-1425913973,-1425782901,-1207516385,-1064435648,144909997,-1557746432,648871946,117443747,119414467,-402387521,45678691,-1413051648,-978593652,-1413051596,-2085889908,376766462,1015278562,-989563649,-1946686668,-661869626,-18261,-4674645,-1021334529,-1090052578,653919245,-24955451,-2095090433,76219591,-1996126426,46564100,-1962752125,92743172,-964492151,46629634,-81798677,918892227,-964492561,1392952098,-1608088786,146341380,-123606987,-1014183796,108315451,-1609661650,123404548,116862659,66720,-919403148,-402640152,784531484,77596407,242483201,-1643710930,108266244,-402128711,31981591,1642382080,-2043748214,-2147181050,52755684,1642513418,203547843,-436147455,-423523807,-1979651264,-465508667,-344054751,-1021188608,-402209234,-469106431,-970062220,285337606,-386218776,-126615537,76212419,-386221848,-176942954,-1976676157,-1677596634,520040186,-1017642298]}]],[[{"sector":1,"data":[-1174400839,145755262,901051019,1150034381,140282122,567092660,-32324989,1913666752,-495931390,891074787,109846989,512295604,280625842,622639113,-2144460339,251781182,163059060,-1943941835,-1996310522,-1174227426,163055942,773967141,48367302,890615808,109846989,512295620,1757020866,622180362,381166029,-1943941835,-1996306426,-1174223330,381160100,-1205744347,567096609,46139020,46014089,-1207251270,567092513,-1207189574,567092515,-852155208,-871986143,-903968510,198621698,-853203784,891795489,109846989,512295632,-323353906,623360011,800596429,-1943941835,-1996300282,-1174217186,800590873,-1205744347,567096586,45876876,45751945,-852135496,-603550687,-635533054,-1170309118,913637377,-852153672,197168161,-1945078589,-1996303354,-1174220258,716704759,-1205744347,567096668,-1022639988,109842548,512295640,1757020886,626833420,-456973875,427553,-436147454,-2144419039,124478,-2094128523,123966,267059828,1912608744,43640852,-1796733582,-401968124,-970063038,188934,1392952313,606200912,-1338804989,-350165493,169927680,774337984,44506820,4161574,-1003611019,637709086,1962950528,365946888,-336065419,50653194,-502872530,1492713474,784533339,29179523,772240640,29179520,1448133631,-1014279418,-397298608,-1014041037,918824539,-1977221068,1971338240,12985864,-339735553,516173391,-1014824209,532948484,1962933123,1193944812,653423364,-1929099518]},{"sector":2,"data":[158598751,-1122106578,1976106497,1207379703,1971322885,2139170335,1968128800,2139170327,1965051426,46367503,169773358,109850144,-1070456820,1482557275,-852183869,109850145,-1993473367,1258465054,-1392079826,512306690,1387528875,-1943133747,771944710,49225353,-400968509,-1573980773,1202979334,129892530,-1930934782,-387398667,66568191,-1074002456,703071233,-61478660,-1574034972,736625152,44183040,27405826,283689730,66567680,-1090783256,501744641,-59971332,786707139,-1174272352,1380975111,-1006977816,-1187086290,41222145,784572900,28917376,-83659520,113484262,67552814,-538443774,60960511,-1900006654,715204288,104541696,661979836,2662694,-1173996754,639399170,771868321,47973947,-1591340683,992870852,1963121158,44051974,772598530,201458336,113651202,-385940988,-1022885983,71204910,58064642,-1006660376,-553191890,1098187777,281874356,108397372,41158460,1426467307,-1912586055,915023553,-25165692,-1241353448,248810008,2799879,-1287007958,318879856,-852685123,-1207476976,-1998058496,-855132940,-464469215,216042081,-2040404352,-94247200,551952560,-87860997,-318337234,1392923138,1465274704,-33134976,-315162834,-1006896126,-318337234,1499356930,1510431576,-13738721,-1023218378,-834764754,57933825,-1021744920,1929392701,2833673,733481074,850969344,431538944,1431356160,1854663819,1002998792,-2130217019,1939865853,1482553601,1347618499,-1070377135]},{"sector":3,"data":[-283196370,1606690306,1334519300,109022468,4030502,1027606133,275972098,-1120009426,653124097,-75292732,-102861313,1532516703,-970013945,274438,-851246920,1971338287,113651225,117376048,1125169235,-1943130163,772027142,70327945,784533339,70270592,-1274120705,520039941,112460849,824114990,1392952068,-1424047058,1065362946,-855476992,-1022928088,-415334354,192151553,12079952,-838913342,-1017619691,-415334354,192151553,12079952,-855525438,-1017619691,-1229958832,867714022,-1975327227,-465377596,216042081,-1184766461,-18734080,-1979305031,-1975327039,-1186797883,-18729984,1642513546,1824741465,587248144,431927296,440670662,441850445,442243673,-2081649835,1448281324,118359639,-1206396225,-1993998335,47109,38111526,637535672,-1207679607,-1993998335,-466483643,637658016,-1593293431,69534180,-773271296,1166616296,758691850,205883686,-1993946996,1460014661,860553912,-1949856001,-1943024161,1959201728,-28931055,-1191412087,-90439680,-1644404993,-947127413,123716492,272992550,308119846,-289470706,702487,-1207596762,-1993998335,45613637,1166616064,47108,105220390,637534904,-2146941559,113214,112729205,113408,-1946051864,1003457728,-2130283065,1947725563,-1173961211,1594359553,-443851938,1364247389,28875858,-1898237109,430422723,802015628,1482250909,1381191875,112646,-67108934,1962952936,-2144404948,175934,112727924,113408,-1946073368]},{"sector":4,"data":[1003130048,-2130283070,1947725563,178188,-83886150,1946164456,309263,861000243,250149833,-1072998144,-66664914,1510408215,1438865499,-326898549,1364414468,-402237614,-1993408636,773322782,402261644,-66664914,-1940848873,1489177536,1392913524,642928976,-1945870396,1586101830,512438012,118358476,-15095873,593165406,1505758146,1963416408,532948485,1594346731,1482381658,-1017256565,1996490301,-661957872,-1014897711,-1959913475,-788571385,248248779,400210695,1405337651,1465274961,-1014185933,-773598903,-773598768,-773598768,-773598768,366937040,-812908544,-405670349,-405678383,-405678383,-405678383,-337062191,51147520,5593,1912660456,-1942885585,1040395983,-164429335,-690886703,-690886703,-690886703,-690886703,1929429480,366543631,-1209532416,-1207340288,132841474,65781811,1593835960,1532582494,243478211,855900644,-2094087232,-83762138,868466739,-1070349376,508973507,-1003566197,773322782,402407040,-402426624,-164364692,-1940857202,1489177536,1392914292,1606690384,197168140,639268035,-1073018997,958796660,74711631,-269756413,1929388264,-1960901116,123427059,-350239706,-1157165367,182982638,503607808,534678279,1354979678,-972302196,1149968244,1195058692,1997959684,105155349,105331494,175573874,638076043,1929922363,-1017579263,41272891,-1195122885,-4587515,1391000575,113651454,-1023404036,855638968,113106,-29366022,-66664914,-1195180009,-768409596]},{"sector":5,"data":[-83885639,788409576,402392774,112771840,-70110464,788405480,402392774,54051584,4456626,234875056,50448545,-2097035770,1798718,1973622900,1912996635,460825371,460457475,460497232,665051345,-1918674940,317214755,100752136,-1023212505,1344076451,1526811112,69666305,916701955,-1628942309,-1605347327,19136991,1968701756,1626077187,-954515293,1785350,13953024,1017205362,-773271269,-773271064,268779752,100880384,950213430,100751387,1455359015,-1106829824,-38273024,-1071740161,14346241,-167771464,33677062,28836725,835072,-1560229912,-388949190,-388896559,21031121,-133945594,148105411,-1912114200,-1592051706,-13427910,-402649154,-392429408,1922893651,-81008634,-402134024,-504887481,-389809912,109971276,983636792,-1090571493,2045247506,120449024,-386196248,-1597830972,19136991,158597436,-1207959362,1575550972,-543112448,1006707713,-1106676735,-71827456,4909311,-543141693,1006707713,125065217,-402647618,-1007157192,-1207957830,567098624,-661968014,-768358093,-851311944,456958753,-768358093,-851312456,-768401887,456920715,456531598,567099316,-851528673,-1994472671,-1910817226,773535262,457055999,49951,0,1448235347,95946327,-1898237109,-1161196349,801970599,486409868,486284937,-1945893192,1959463873,642975273,-1945215036,1959463873,260777493,38734630,52825204,100992071,113476352,123464683,39830566,101044715,984320]},{"sector":6,"data":[-388896559,-388896559,1516134151,113466201,-100233698,872362780,898180854,41257254,71681830,-947715072,-561111546,-66977607,-987781645,-1944257482,1959660505,-984211918,-645132684,544525835,1275792523,-1189514238,-61472762,509519091,72125270,-201575227,-2095096156,-521468218,1959075678,868805378,-1414792000,-1022943317,-96566522,729022492,-1960904036,-1910703562,-990497826,197233724,72092623,1284182900,113672964,-2044328822,1174702085,-336207289,127737826,-1308456765,-1342044416,1,1073741824,1012087629,1262435646,-46055086,-1709040352,-1977503710,1461854754,1294084130,757214498,-2145214174,-16583874,1625818485,-1956844800,915100410,-167043067,1460021109,-1190715823,780533888,-2101731324,5171231,537200327,1599668224,520273415,91537418,77777150,440172576,-970586507,267065861,222079660,80085877,-536200182,-1341688333,36169738,915011123,-1957027835,-121492537,-1950250045,-2048372486,-85808638,-91503784,-1047793013,-1073025742,-2048326795,-1965346048,1992506076,947922438,855798797,-19887397,1381061578,281874356,281871284,537007752,1448827226,-2145516865,2099006,46072692,50775583,11993120,350748854,1963604994,34465795,-109836740,1098121276,58031932,1006674409,-385649400,222036122,171723124,456944500,-231051916,92806259,-389611961,1048576376,1962942467,1945844424,-939637052,-1047805973,129025016,-352227096,-402237516,118358560,-1090515783]},{"sector":7,"data":[-1359863793,-376708655,-13738233,-2011161690,22013957,-1094255009,1048583682,1946165255,520273411,-212742518,-1329375068,20178957,787024560,-792575,-1325437207,19130460,-1578914,860967760,34507465,-1341660384,17819680,1532623842,-13637288,276100618,-1979689752,1931492357,1946762247,4909082,537083520,-385649664,-16056529,686359413,1322254079,1476338409,-1328641457,129192736,87690979,1031800694,-32934903,-220049461,537009706,-889004502,-66592384,-1066115237,-503314456,-21369861,145772494,-1342135064,10479648,-1696003920,-385830912,-880083200,132894506,-352307480,-972967678,2097926,309654074,242547514,92843046,6481991,-956381186,-1326848542,1962621694,1187511811,-385964311,-251461625,-1662387966,11135230,91553852,-352279832,717982233,1226011855,-1957228428,-1359853570,-167283361,717947601,-379730993,1085341299,1593845992,-19404713,-371291554,385285883,1558781955,-384126722,154992252,540806516,-1336931981,256094,1430258776,-326898549,1364414466,503732050,-1946204536,-1927280610,1048641366,1946165255,171885603,92939808,620643976,641862784,521536904,-1275067975,-401807296,654198410,183174536,28909334,-398412800,119531514,1532582495,1575324504,121536707,91488288,-352316440,-195958768,-387285016,-378273699,-739768140,1048626151,1946165262,537829386,537790150,-399316224,-970001361,-16585722,382534068,-335100370,-344719358,-1477964876]},{"sector":8,"data":[113651431,-1258355988,773246208,49022662,1975519744,237406212,1048625952,1946165255,-5052412,-402082621,1355016062,2011696052,1488980711,-1308393021,-1342173184,629220737,41943200,596262528,-1207601919,869072928,-1975615293,91554083,-855629896,-1957313741,552371180,1428051798,-1064386509,-870398938,512306688,-1943133291,-1943824634,1959463873,1065362950,856192463,596616128,369164777,-528577273,-402357016,1400112460,-1759605970,16482595,-352160272,-1193594069,869101312,1213266817,112736629,13417732,-58691635,-1978567424,-771444281,597533664,-472645838,597630601,597532974,-1626995922,596353827,597362375,113714629,637150105,-1207920151,-617414635,-75287603,-971541504,19106310,597362375,113714545,628499353,596319881,1119385323,-841272576,16483123,113709684,629285787,597231303,512304519,1491805067,596975300,276791590,678776652,640561592,1948731193,1194927622,639202600,83952033,-1952251645,-1694054621,774213923,597231303,619390361,596313799,1303904256,640929024,1866677633,113711733,640689051,597231303,-1784601031,596353827,2123171606,62187744,-786199647,-773271064,1088999912,460588790,84112385,526188546,-443851169,1465303901,243998214,618865549,-164707954,18576390,-13431692,-1945938712,46367683,-1959869554,774081294,597366527,869122099,1583286047,106387139,-1928426722,-165354717,18576390,-2091842444,-1047657791,596315787,-1726546146]},{"sector":9,"data":[116793123,1946229620,-13433082,520304104,-1017225465,-352315720,-843042041,1554483,869126707,5290179,1387791339,869894912,-1020015150,-855637320,9955635,-661733236,-1761178066,11397155,-768358093,-13371853,-855633736,2144307,565720013,-399258368,28835987,-1020015360,-13370724,771804344,597505675,1465276240,50534632,5945598,-1623815378,1355952931,-396929454,32178949,-68677937,45633791,1479789824,-843041853,872062003,-1899983617,13416664,-1657369810,1448562723,50718807,1522073091,915090944,-768400481,1465274960,-352128280,-401682687,784596987,597106318,-1023403288,-661733236,-1761178066,911395,-768358093,-13371853,-855633736,-13370317,-1959856589,-786199794,-201679639,-821957723,-268274,268486339,1845506048,268484609,-1644154880,268483073,-838848512,167792129,33558016,167787522,-33550848,1,-326413056,1854625054,70903812,-443867299,180829,-2081649835,1465254636,314056198,12079104,-2496508,-1845064658,2126838822,197168132,-1669958457,787887098,647110286,-1929085244,12040509,245756924,1781959967,375078,50742411,-11467706,41221940,1342469375,1493300456,-502741373,75416807,33996173,-1006539544,-1114831746,-890764766,75416576,1857552819,12079105,-9312248,683509798,-1207717118,-1202716306,1625819136,-1115150593,32178729,-68677937,36354303,1583286047,-1034033781,-1957363708,250381292,503732054,2126838428]},{"sector":10,"data":[637645572,36224394,1342271160,-402128200,62127911,700287526,24033282,134395984,-989915416,-1114831746,-1561853406,75416576,33996173,234950120,106860039,644494989,637535673,50742411,642843718,-14273281,-14286220,-397409164,-2091318941,-471725882,-1845064146,74892582,-13421427,-67061831,32220659,-68677937,1594302463,1575324510,771753154,460588790,-1154255871,786956366,92874240,-402637637,-1993998299,11731525,1342271160,-402128712,-2010710385,45286525,1342271160,-402128712,-2010710401,113444221,-1845064146,1200498214,178333188,784533248,460588790,-1154255871,-1960443826,2877445,637549755,-402504309,11730977,75336230,1342271160,-402128200,45350463,92113446,1342271160,-402128200,113507887,-1845064146,1200498214,178464260,1455621888,-400685481,460587204,716765067,12079104,-32905208,-964429941,2799630,67287120,536738536,-1017225465,-2081649835,1465257708,-1779950074,104363008,1988953878,2799858,134264912,134076136,-1185472746,-201588729,208953255,1342188216,-402390856,267124159,-964429941,2799630,67418192,536719080,-1956749561,1438866917,1465314443,1586175494,512634378,1603151506,141986564,-1962639733,-836041138,530904060,-1956749561,146955749,-326413056,772167510,647104142,638213771,-1962653810,1988823166,105810692,-201535701,1583286180,-1034033781,-1207566328,-1064374272,-130121434,122701824,233505396,-1955659592,-2129211944]},{"sector":11,"data":[1950896379,-339725564,1863170068,-58714419,-1274907390,646458991,-1070388517,113754944,7026,1962917864,1946600984,-1070399205,401100880,-773271043,-773271064,1923301608,-2144419045,18576446,508904821,-848360008,113651222,-2140199276,208929532,-1809414098,-1200639194,382562062,78643892,-402582339,-2010250997,-1272539842,-1121538044,230162708,-2145989265,41222908,-253202508,-1017307392,1950253102,578093339,78913109,-1342106435,116796966,1950361237,-399986686,246939855,512372335,382543508,-2134680289,1799230,109973108,-1070392459,2145931270,-9246468,1950253251,242483227,-1895844376,857437446,-397408576,-2134639348,1799230,109972340,-1070392457,1407733766,1048626172,1946164084,1996918283,113259291,-51976112,1048587971,1946157496,1465274394,333979221,-1123322880,79167848,5629954,1562361867,-1017618849,1048587782,1963006836,109981198,-2128206190,92734,857205744,650153664,29245057,74637312,116113459,-1103199450,-1022951423,-1203863506,343146497,-3872688,508890484,-1207867203,82313730,1482497792,-1016083005,-921892352,-843970744,-1146093492,79301898,270578176,1397600256,1397703725,1396790304,1465065547,1212372041,1395085893,1347375136,542135597,1196380752,541933906,1347442003,760500815,253800960,180006912,309773,5031090,218806960,1495277754,544372079,762343280,1881174133,1919381362,1746955617,1646293857,544105829,1684107116,1629512805]},{"sector":12,"data":[2032165998,1830843759,1629518177,1986622563,543519841,1629516905,1870209139,1870078069,543452277,218806816,1847599290,1634562671,779709548,1750540320,2032168549,1746957679,543520353,1768843622,1684367475,1769174304,1948280686,544434536,762343280,1881174133,1919381362,539782497,1953069157,544500000,543452769,218806816,1881153722,1936942450,1920221984,541272940,1914728308,1920300133,1869881454,1701344288,1701335840,-902927252,639676928,180006912,313357,5033394,1344322736,1936942450,2037276960,2036689696,544175136,1970562418,1948282482,1397563503,1397703725,1701335840,538995820,1143821133,1394627407,1819043176,1935758368,2001936491,1751348329,-1207930267,129700609,36747520,100794554,719240533,281872142,45352797,839057594,-1273967105,974179592,1965744134,419478230,281871028,-5110092,-126606899,-193658052,-1308588861,-1342174208,-1,11665412,28312166,-1073598278,818284592,170973705,151728370,823135281,238102285,1376727360,829100081,3240465,521023662,764548747,520031412,1364657201,764677771,764821131,-98841813,804458121,804601481,378232665,229911954,70328063,-1090052602,-1070387802,764715435,764846507,-1430244693,765073035,-1154639711,-201915392,-18261,-873986133,65782532,-1668247408,521018965,723945518,805813552,-2096894589,976094149,-143327130,24575790,-981209973,1562362628,788475549,1562324386,-1070347363,-152333901]},{"sector":13,"data":[-1816936397,1397813483,11397202,91607563,-346530982,113542105,-770974485,1397755252,12380242,91602955,-346530982,113542081,1397802219,184651240,-2146863680,74818299,-1427416997,-352009085,182984621,-878879486,1709724496,1975520002,-1560575991,1482359925,-998011669,1351609092,41216083,175489035,1973615488,-380085499,-997982348,-8984316,41740368,74825739,-10294952,-385694589,1397817188,184718568,-2146798144,91595515,1240029275,79987711,872369129,-374230080,-1070334140,1038725555,-1070377217,-1497443789,166626093,-2096511357,309657404,1962949763,122946547,1929856059,121932779,-1017190677,-397322410,-620036035,-1497484940,166626093,-2096511357,443875132,1962949763,122960371,1089007218,-1194095872,-617480191,765200126,602410475,-1279249664,855960480,1503769536,1354980959,856274002,-1575026734,198871853,855799232,-1017619749,179589712,520082315,1482304930,122960323,478741621,1055403243,1461487872,-1962640245,518521420,121932544,721900681,164004802,1223,-1996194679,-966852020,-1996487100,1354958660,-1031056813,12309043,65271556,1526338504,113465435,508647254,-1174500601,-947716095,-12745975,-348060812,-2080928779,1476135367,163139926,-1527514112,-2090901927,-276624914,1508696585,-1022927265,-402237610,494010413,425088,861085045,-400783397,-396624034,28835891,-19189248,-349332466,-1279249654,855960482,128693184,-1094492577,-771019354,1015222644]},{"sector":14,"data":[957117695,-2096794604,-219477562,-117314568,-1106829629,-24433242,-2096511101,477429565,1946172547,-2080929017,-269809209,1962950019,121998324,-402177023,-538247165,1364678339,-141883618,-66468221,-67106375,1032037619,1509258751,113466975,1364612894,-1090056622,280571895,-1527514112,-138535162,1149980719,1958742788,33548313,100865138,370356211,1140928501,139727110,-1993502047,1149961284,1958742794,31451161,100865138,370356211,1140928501,240390412,-1993502047,-11007420,1512940062,526343769,-396967161,343080761,-16352128,1157502068,39619334,-1207675765,183173121,-1565278157,-1070398229,-1017205581,-15472554,2088767090,242483206,-1207546626,183173121,-1565278157,-1070398229,-1017206093,-17569706,266866290,108825088,-1207479157,48955393,-1017200589,1347572054,764548747,520031924,1515728290,1438867033,-326898549,-1024961000,-385649666,2088763694,57933830,989932521,58001244,1996560105,1347900988,-402239149,1150025273,-1983698169,2089486172,38570756,317248395,164004862,1223,-1996338039,1149830268,105170439,-23992320,1482381575,-655794593,1347900928,106058067,-947650933,-12745975,1032014452,-1958382336,1157826372,2010659591,-1993706437,-1020590244,721902987,121997784,2089547659,38570756,-1226255477,75270653,117591177,1482381658,-1930863009,123504896,134111976,1482381658,2112577119,1451840083,-396457490,-1996012405,162851398,-2036673653,184667696,-1990560576]},{"sector":15,"data":[371125334,-260666081,-955624311,3140,935111,105170688,1153892352,-1962934264,12315206,-1981548796,39094532,653153931,-1274784631,814127627,-1960902194,179629654,-835680614,-329872639,-387031413,478805417,-471278965,-346334468,861624840,-341789760,112657,183229234,-1565278157,-1070398229,-1956729933,1455644133,2062078091,-1961921795,1418396228,-1811535100,-1776936147,-1017186259,1364218630,512448342,109970481,109839411,109850020,512306591,-1960432227,-335970289,-109047436,641562090,637630347,-1962719346,651946974,-1878884479,640251280,-1878753408,-74767755,-980762573,86876578,-670892030,765599369,-368720346,21350182,-1943654266,15401805,1482251871,-2084370597,-13787842,1048774517,1962880415,-1336736216,-1591309589,-1658928083,126428717,38258470,-970551152,-946863033,-13787898,-1626945537,1543503661,1296417543,1482184781,1397567576,1397703725,1935758368,2001936491,1701867617,168636018,1768444938,1919950963,1634887535,1936269421,1702065440,1852383332,1852990836,2037148769,544825888,543516788,1143821133,1394627407,1819043176,1684955424,1869116192,543452277,544501614,1914725730,218787445,1836020326,1701344288,1836016416,1684955501,1852402720,218771045,8437284,1963080876,540912902,504132862,-88465650,-855002059,-872866015,-1192457387,567096679,-1107293505,146355698,236911616,531034911,113640821,-2080439549,1946224254,16236058,234977471,687978503]},{"sector":16,"data":[-2048384563,-1089964798,28836248,-400437975,-353894047,5302272,425603,132645749,-443811840,182877,413253683,436601600,152996608,16483072,100871540,-388956132,-388896559,-784275247,-773598749,-773598749,-136064541,923141080,1993882368,604423690,-1494613248,-1023374076,336902150,620760837,413401072,147765248,620760837,446955504,905100032,184562593,1962947846,764590851,-2096118909,512356579,-1274609636,-1994273438,-1996291810,1258307358,4005513,650350086,-1560280159,-1608122313,396492800,1067517696,50766592,-1962897992,1023416350,125239296,-1962934088,1023416862,125239758,-1962815816,-788521954,-773074453,65786347,1057369027,50897664,4130307,-1559805277,-2084372415,2878,113708661,51,3475143,1592459264,2361030,1128169477,57999104,-1962642455,-1962919154,-1979696874,-1963881770,-772984115,-774188567,198889961,-971672119,100672518,736899,991524095,1929382678,71493891,1023413665,141885439,857659,48956022,12305035,-1981548796,-1560267498,1472397363,1124517382,12058624,1009765699,-385649536,113639560,117375043,-851242824,1208388655,1176406279,95946503,573002,-1030869043,-1960380277,184640405,-1995017006,637546774,23430539,637548963,23561611,-352306269,-16206775,-2147006946,1047822587,1954675584,-796176327,520030644,-1073019066,-1993640872,-1157615338,-768408576,967042039,991332608,-2054609408,-1993997979,-1962842219]},{"sector":17,"data":[637546774,23303561,520031412,1594296134,-1064417085,237862,-523116335,-523116335,1925119171,24624897,-1107286040,-1145110158,2025473,-1711222081,9241762,-1694503240,9241695,-1090465090,503709782,54126599,503759623,92939783,1975519815,49251320,1006996006,-1342016420,-1431524772,-92946422,1465303815,-1593857304,-551288457,-1610594142,-551288389,1594032290,102679390,222080031,216533620,1324774400,65781810,532679246,1948269763,1950170130,1949056014,1950039050,1946762246,-1022739454,-51606699,-1034033781,-1957363708,-2064875028,106386944,567095220,-1979824500,-1769079714,371130236,-853887969,62463777,49906432,1048580213,1962999808,1182840895,-1073008691,1223177844,62476544,-850480128,1495822881,7465041,-1929056381,371104374,178957343,536507840,860029368,-1272853047,-1272853183,1914817871,1507388162,-1960922142,1586429014,-853887746,1594302241,1575324510,3532995,1946352003,40986,805572388,41302332,-1196816636,-1196741078,-1163198422,-2084372190,1203241967,1118874450,774551722,2799787,19053227,19054531,180727,-1634072971,-1023374076,-1929076070,-1957313792,82609132,1241888774,-855635778,-1950183889,1991609848,1095937,-148455373,-2147453116,-2094659723,1962965628,2143716102,1038869056,124911632,1803929382,637534209,10618250,1991609600,652489217,24479114,-470384717,-1960382461,161705540,1149969920,762736,1917094694,989859235,1929382662]}],[{"sector":1,"data":[762118,838864291,-2054543644,-1073086097,-1157230987,-1014104000,637568187,121636746,30057262,637535395,24216970,637553058,24348042,637553314,24282506,637553570,771835275,637647779,771966347,637648291,24151434,-1207515602,27787265,-970062220,-16664570,-1190738386,44564481,-970062219,-16664314,-1173961170,78118913,-970062220,-16664058,-553204178,-970063871,122886,2000980774,-1574041820,2425311,646458887,11076064,772568065,80479942,113651455,-1442904872,208929280,-804862418,-969998588,-16458746,1946419369,113651206,-1593899820,-1574043648,1448542691,-1929337153,11135028,1448566622,-1090161267,-1662517002,643784192,-1568914294,-1960443862,111376964,565760,645251083,1803914022,1024769,-2054609344,646578539,-456130560,-456071984,-1977162544,-1560185467,-1993998330,-141854140,-2018210474,442112,1577079528,-676033194,24624896,1577073384,464817494,29081345,1577070312,1602521894,4498177,1636076326,4629249,-2080567320,3902,1048578677,1962934280,-45160445,-117314568,1575324423,76162763,1195771272,-176832502,76162755,1174767662,1975519815,-1494563852,36100,-1307814247,-1342176359,-1,-1,-1,9240576,26476544,0,1112671636,-1064507253,234885125,303903,787971,244039822,-108331002,-34108593,-1202674445,-883949516,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704]},{"sector":2,"data":[78708751,-789068149,-628299565,74698795,-768878452,-268181293,-947135858,-388771593,-802438516,-1064565645,-522989013,-1030817789,1322289836,1187548077,-31145334,91598908,-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094,-1031072797,-1064385789,-2080863315,292880383,-501415642,16417267,-2129234704,-351272766,1086360796,-276578162,486614544,-339702200,-1950118942,-1962932162,50334262,33948144,1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602,482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,2192496,6946912,148308084,149752031,152832265,203426482,312414832,321327801,415569541,452205012,1368988511,1373852120,1415926789,1416713324,1417499768,1440896474,1462720297,22841,0,0,0,0,0,0,0,736899,991524095,1929382678,71493891,1023413665,141885439,857659,48956022,12305035,-1981548796,-1560267498,1472397363,1124517382,12058624,1009765699,-385649536,113639560,117375043,-851242824,1208388655,1176406279,95946503,573002,-1030869043,-1960380277,184640405,-1995017006,637546774,23430539,637548963,23561611,-352306269,-16206775,-2147006946,1047822587,1954675584,-796176327,520030644,-1073019066,-1993640872,-1157615338,-768408576,967042039,991332608,-2054609408,-1993997979,-1962842219]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[1261449783,1766072386,1769108595,1769239906,1142976111,543912809,1870225740,168653941,168626701,1263749444,168636704,1869154829,1937339182,1936525837,779317092,225671539,1953849610,1702389103,1633824355,1661603188,1634561391,1663984750,168652143,1718513507,1932420969,168653689,1853189987,779711092,225671539,1634166026,1601794862,1868958221,1952542066,1836016430,1701513741,1663984249,168652143,1652122987,1685217647,1937339182,1819150861,1853187699,2019896931,1930038629,1886745701,1702389038,1702038029,779122036,225013353,779510538,225275747,1634038282,778399076,225735473,1936286730,2036427888,1601794862,1734674957,1885548129,1745489247,1835363689,1601794862,1869416973,1663984996,168648559,1987339635,1697542757,168648568,1769172577,1601794862,1701054989,778532194,224360549,1818518794,1697541737,168648568,862809445,1697527352,168648568,1953718630,1852141679,1601725742,1684408845,778793833,224753765,1835363594,1601725742,1768753677,1919906418,1601135406,1634863629,1769104493,1932420470,168648569,1918986355,2019896933,1930038623,1953653101,779514468,224360819,1937339146,1601135406,1853164045,1701602660,1697539444,168648568,1868983925,1952542066,1836016430,1668811277,779710575,224360549,1936679946,779707755,224358243,825571338,1769352756,218762591,1141509386,541807433,218762546,1634165514,1601333038,1734543885,1852386913,1661603167,1982751079,168648553]},{"sector":7,"data":[1936944996,1819043176,1601135406,1868827149,1701344115,1697541228,168648568,1936944996,779116919,224360549,1634166026,1601333038,1734674957,1852386913,1695157599,1982751079,168648553,1835100005,779054703,224359015,1919248394,1919364707,1745489247,778269285,224356726,1852796170,1919364719,1829375327,779054703,224357993,1667330058,1735289195,1953721390,1919945229,779382377,224360549,1634170378,1601333038,1735789069,1769352801,1980370271,1869439335,1731096430,168648562,1852862561,1936028783,1954051118,1868827149,1818585203,1818766960,1678380383,1752396655,778857573,224357480,1768187146,1818766964,1745489247,779119717,224360549,1667592714,1919252079,1601725742,1651575309,1667855201,1600940078,1684343309,1663988841,168652143,1701736301,1633824377,1829375327,1919248499,1868770915,1896484191,1769169250,2019896931,218762591,1141509386,541807433,218762547,1919903498,1634495593,1600217646,842271245,1663971632,168648560,942682676,1601200942,842336781,1663971888,168648560,1701867617,1697539182,168648568,1769173857,1663987303,168648559,1920234593,1697538665,168648568,1801675106,1697542261,168648568,1684760675,1697540979,168648568,1886220131,1601725742,1768163853,1868786547,1663987821,168648559,1802725732,2037411683,1601135406,1919158797,1919252073,1601794862,1667631629,1601725742,1768294925,1697539182,168648568,1717662311,1818386804,1601135406,1919355405,1768452193]},{"sector":8,"data":[1663988579,168648559,1700946284,2019896940,1829375327,778400367,224358243,1651076618,1936026722,1600217646,1701972493,1852402797,1633824357,1913261407,1869902693,1697539442,168648568,1953656691,1601725742,1769409037,808608110,1597518638,2019887629,1768043109,2019896942,1695157599,1851879544,2019896932,1728712037,1752195442,779314025,224359024,1768909322,2019896942,1812598111,1663984739,168648560,1684107116,779643238,224358243,1769107466,1919251566,1601794862,1701972493,1701667937,1954051118,1701972493,1667329136,2019896933,1930038623,1953718901,1601725742,1920207373,1663984997,168648559,1852404336,2020173428,1836016430,168626701,842467853,541215536,1953719620,1952542313,544108393,1802725700,2036419616,225736047,218762506,1096045322,1347769426,1347769135,1414680400,168626701,1932423017,168653689,1868854125,2037591667,1661603187,1634561391,1663984750,168652143,1853189987,779711092,225671539,1634166026,1937339182,1868958221,1952542066,1836016430,1701513741,1663984249,168652143,1652122987,1685217647,1937339182,1819150861,1853187699,2019896931,1678380389,1819308905,1932425569,168653689,778135397,225013859,1835624458,1932422501,168653689,1701080941,1836016430,1702038029,1919252084,1702389038,1851853325,1932421491,168653689,1969382756,2019896935,1695157605,1852402788,1702389038,1835338253,909652845,1702389038,1634077197,1886352499,1697541733,168650104,1936286822]},{"sector":9,"data":[2019896939,1829375333,1697541477,168650104,1920100717,1663988335,168652143,1684889970,1702259058,1937339182,1752369677,778400353,224753765,1634562826,1919186034,2037591670,1930038643,1663988601,168652143,1701080693,1702126956,1702389038,1853164045,1836216166,1663988833,168652143,1886348152,2019896953,1678380389,1701540719,1868770937,1661603181,1768320623,2037591655,1628048755,1701803125,778265976,225730914,218762506,1162367754,1211059276,223366213,1678380298,1752396655,778857573,224684406,1936679946,1818585203,1852386924,1678380393,1752396655,778857573,225275747,1936679946,1818585203,2019896940,1678380389,1752396655,778857573,224555623,1936679946,1885435763,1702389038,1634732557,1852402531,1936469607,1879706996,1953393010,1702389038,1885407757,1953459824,1949201253,168653944,1936944996,1819043176,1886152750,1684343309,1747874921,168652908,1868785010,779249014,224753765,1936679946,1886152040,1886152750,1701317133,1697542252,168650104,1935762033,1747870569,168652908,168626701,1230192962,1145384771,1429165129,1229736276,168646996,1684343309,1663988841,168652143,1701736301,1633824377,1829375347,1919248499,1868770915,1896484205,1769169250,2019896931,1728712037,1818849903,1647206764,168653665,825242164,1768973102,842271245,1663973424,168651120,842019381,1768973102,1885407757,1684956528,1702389038,1935739405,1852270963,1836016430,1952516621,1651077748,1702389038]},{"sector":10,"data":[1633815053,1886743395,1702389038,1751321101,1802724459,1702389038,1868761613,1697542253,168650104,1802725732,1886220131,1836016430,1768163853,1868786547,1663990128,168652143,1986622052,1932423781,168653689,1697538918,168650104,1684957542,1702389038,1919355405,1635018337,1663986786,168652143,1885434471,1935894888,1836016430,1919355405,1768452193,1882092387,168652658,1700946284,2019896940,1829375333,778400367,225275747,1651076618,1936026722,1935761966,1701972493,1852402797,1633824357,1913261427,1869902693,1697539442,168650104,1953656691,1702389038,1769409037,808608110,909652782,168626701,1431505421,1162629200,1414415693,168643649,2019887629,1768043109,2019896942,1695157605,1851879544,2019896932,1779043685,778987887,224753765,1684237322,1768973102,1869351437,1768318049,1868770936,1879706989,1953393010,1932423781,168653689,1684104562,1949197677,168653944,1819305330,778396513,224753765,1651864330,1697543283,168650104,1701147252,1836016430,168626701,538976345,543113538,0,0,671154176,30807915,14942,1162367821,538985298,543117123,0,0,671154176,31790955,4444,1396785745,538985289,543119429,0,0,671154176,32118635,213222,1263749444,538976288,137502752,0,0,671154176,5995]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[19421773,1507359,32,61276159,-1378352952,20381696,30,78512129,279707648,283312128,303693824,321191936,321781760,322240512,323289088,324599808,64487424,18154343,27722039,32833847,34930999,37028151,39256375,41287991,71565623,99221815,108658999,142410039,151454007,154599735,311]},{"sector":15,"data":[]},{"sector":16,"data":[1344285984,1414416722,1769239840,2037672300,1293954336,1329864787,1700143187,1869181810,775233646,673198128,1866672451,1769109872,544499815,825768241,960049453,1766662193,1936683619,544499311,1886547779,1667845152,1702063717,1632444516,1769104756,757099617,1869762592,1953654128,1718558841,1667845408,1869836146,1092645990,1914727532,1952999273,1701978227,1987208563,438330469]},{"sector":17,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1213,0,0,0,16910858,36874,4363,0,0,0,0,0,0,16776960,-256,255,0,0,0,0,0,33554432,161808384,177343599,167905868,169478725,168624128,707398157,707406378,707406378,220465677,220464908,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1358430208,-846790472,1354979370,-846790216,784554026,79169222,772205567,79169222,-2168832,-30509710,772061702,79365886,-1136754642,125042692,-1139868114,777644804,78331520,1347515648,551947184,-460324373,1493050400,1444823669,-1405696722,-8617212,1964989952,117321267,-970062677,309766,-1157183954,788201476,79169270,1342600703,551952560,12183640,-1607577350,-1574042435,777520316]}],[{"sector":1,"data":[78319358,788492520,79169270,772109823,78655231,-11081521,-2144456846,305982,-30530443,772057862,79234814,8251643,113651450,1342178489,79536174,79471150,251539032,786957483,788475647,1227,0,0,0,0,0,-1190726098,745930500,-504866380,1319316998,512306694,-1993472432,772166158,106174089,1446414638,1049177606,-1943140776,772168222,106694284,116797123,1979647161,1560983563,1320820494,111601670,1048587971,1962935520,-2144419071,17099070,777058164,80942732,-718894802,-87520252,-1413689202,503773956,1381061461,521033558,-1946188312,990176030,1912931358,16509194,9955741,-1962851863,990176030,1929708574,-1187086096,192217092,79601744,79300152,-388074664,-2137258063,319550,1956500084,-1187086316,1668612100,79667280,79365688,-346524840,1007127234,1018786842,-972720883,319238,494209340,81727114,-151467648,-470994215,-31412189,1359273734,1493669352,-350915511,1963474066,-552665596,1914715140,-553189884,125626372,81987327,79365830,-1187086336,57999364,-385913623,216530969,1516134399,526211929,-1909523961,772068118,81077899,784554235,83771008,1343517696,512437843,1353975039,1527094248,113651288,-1023408898,-29458386,510984196,1370771539,772113384,83828361,-343684212,-397364208,1532495220,-33110482,-389873404,113639667,-1962932991,-1962613474,-1962606066,-1274755562,88860735]},{"sector":2,"data":[16509084,83967616,1476621312,1922903019,15651,512433780,-74775354,512358403,243991779,-936704766,118360035,-201581904,-11277910,-1209529168,10610694,83953350,-450982913,144631812,-973032216,319494,82118343,77725695,82027269,-402244120,197001307,3964945,1894264436,17221120,-695533563,-1677193240,-2147449624,327998,-342031500,91463130,-352317208,82158546,81790662,96659457,-385946391,118359484,-402319682,915080457,48760138,285982213,-1106971928,-152566489,98625540,-1090056509,1270747403,-1039234287,-53597436,-996039437,4205828,-1962621789,313072,1381172931,900998320,772041704,81331852,-685864658,152222212,632562864,1510234088,516097883,-986820016,-1341860074,-400182236,1482294340,-2144419041,327998,1408984949,1448563281,236848725,-1962471905,349238,85376516,-167478040,813007044,16770945,1980563331,835331,80232073,-1114904623,-141884114,-1962648344,-402307018,197002325,71690257,-402315330,233505865,80217799,915079423,988284242,17235460,1560747781,1499094878,-809487781,1979841664,788475397,-130284337,-2143482253,-385649408,-469042203,28312437,1975519951,-805326845,-1421967314,208928772,1426065848,1317268619,-815988474,104719410,-1207601664,-336920575,-1425605074,106429188,-971043298,321798,-125050671,84317695,236849010,81520671,-1226269665,788176381,78319358,1918830367,-326412870,-33134973]},{"sector":3,"data":[113692509,-402586391,-1957362503,72256748,285982301,270210699,-1070349320,82380486,77588481,285949568,326432768,-1962932040,1426382134,1988750475,915102980,-956758821,321798,-385431869,-1007157244,81804928,-1958841344,-402332386,113704579,-402586367,-1696070012,-536426754,113704964,-64283,-1559952223,197002467,-1003058927,312836,89142923,-1107089176,585631015,67954691,1048626168,1962935520,-1957313791,73305836,637996637,82577094,113649152,-1157626643,1005064459,-1946449151,975613170,-352160763,1031808521,1196454912,-2144931861,17099582,1060907637,-2144983435,359935549,4030502,1017962357,1023112255,183989294,-351439424,-1073042394,775685748,-974391435,641778563,1962950528,1048585904,1963001069,-383840763,45613209,247724288,-318323169,-75431676,1333072139,82591360,-968329984,17099782,-450983085,-39458812,83953350,94824449,-956449560,319494,82118343,77725695,82027269,915100507,1390937420,-386692350,915079747,1189610830,86490626,1526874344,-1962726936,-2081190917,909852870,91555012,-352320058,-1039234295,-53597436,-996039437,4205828,-1962621789,313072,1946173312,-326413046,1560567438,-2080437527,-16456386,197016693,3964945,552088692,17221373,-695533563,-1677410328,-2130889496,327998,-392362380,-622068505,-402099299,-588710723,-1546654724,113640677,-402586400,-1007156628,-351877594,-225771516,-1073042180,-45155467]},{"sector":4,"data":[1965702316,113649158,1006699755,637957439,82511558,104474113,-462093078,1048585980,1963001067,-1085913527,-1185479442,548405260,1605039100,687913046,1577128168,521013022,-1090614522,146343151,540847104,-492174476,83345144,1948269696,-1439780850,-1409285191,57942076,653845162,520095174,-1950152946,990168126,1912914494,571397,-1957313543,73305836,-1962471843,3965170,1959073141,4241665,-1073042772,-119402892,213393166,-1195116288,-1007091711,915087118,-2091514684,914964678,80086212,-64886784,83953350,-1041737216,-397239293,-1654981579,-1957670541,2088775410,57948673,-1271600296,7071769,344600144,-2145334656,246702570,-1275044632,5761049,192266810,-401689510,-1957167027,1510796246,1122504372,263739392,-1948873984,-2096839626,914964718,80086212,-2134640384,319550,-661974412,-956583192,17105158,-402410520,300678089,-1593514589,-475855612,-536427004,300417284,-389810175,32045682,-2144419072,1008958,1394483828,1713292590,1527250447,1959967,703078861,-1672274432,1713292590,-1659896305,149626715,-855636248,1239073,-1202564925,-768462078,-2010242611,1510263318,1381024600,775094968,80352906,1482301901,3976387,233312116,-1393104128,91497532,-352320536,-397163530,175374597,270220929,91704864,602468843,784554753,90447500,-1993466098,-1979360738,1089175768,-1557217230,-1993472680,772103182,90052233,1614186798,1049177605,-1943141022,855991814]},{"sector":5,"data":[1755524800,1789079045,768117765,-1557266416,163054956,773967172,89792139,-1023996302,141890048,-1207609158,267083008,1578535726,1486958085,922693125,-400620188,13369101,0,22,0,0,239009792,65536,-1672282112,-1959898544,-2096830698,175439866,-855505992,33667119,28848077,1512164708,-401755304,1537015811,777395907,81475269,279799,235566088,1141294623,1659374862,-1021354496,246651987,1358946024,378220114,-92076825,-1207274241,801964546,-855505736,1677768751,1482301901,1405311901,270206719,113642163,-401797564,116850729,-2147479993,243336820,33558087,239535863,108331520,270206663,-1017446400,-1156694110,113639432,102108740,239476360,-1014051956,239535815,113704960,69206,-397388258,1153169578,-617167602,105155332,239117102,1075773230,138709774,239117102,1075773230,526276622,49927,257359872,117321372,772670635,255735551,1010237230,922693135,-1664413894,-1425080786,46832900,0,0,-58720256,1008563488,1947825921,117321232,-1993470107,772761118,258475660,113651407,-822079643,1630469934,15,0,0,-1858174930,460652815,-532774866,326369284,-1709819090,772568335,78331520,-83593984,785359284,261500671,0,-2144468992,34574654,-2144459147,319550,992878196,1963968534,1048587799,1962935467,-469042417,-58718860,-1342015998,-813648896,-1003552978,1048587791]},{"sector":6,"data":[1963003793,1048587793,1946158304,1048784393,1962938266,-13709567,1020462,521075200,41103309,-30475541,772057862,79234814,788142568,80680645,-853200968,382021153,481821872,-1205744347,-986831595,-854630122,622311457,-1776892626,-1205744369,-986831611,-854617578,622114849,-1005140690,-1205744369,-986831580,-855320810,622442529,-1273576146,-81670908,-1869604403,62446219,-54794189,-75443321,-1203735295,-919376896,-1960836933,16890610,-1974470261,231709188,628228096,337546030,16483077,-2094130306,-16455874,-930409612,-518092498,378220036,1085801703,-1959801427,-1961956415,-1274770702,1489213,905114,-2094087424,319806,861083262,-1959900197,-1207638250,802008384,-519649490,1526726660,-398589768,12844097,1314017288,538976288,1275592736,540103760,2105376,1414548488,538976306,1275592992,540234832,35659808,1430325248,538976344,134225952,827150147,538976288,1329793024,538980941,73760,542003792,538976288,-353873228,-1927346437,118366839,-149859137,-2147482556,1465258356,-1190476157,-1494024184,58023519,-134091783,-1943656845,638468638,81600140,-617182938,-954266108,-16455930,-1123610881,-175435436,-401535809,183173133,-24955707,246969855,-1950090977,1192069877,-336067613,141818113,-401525313,468385822,60794611,1193118457,853570974,-1709274625,-417429233,-1861827068,-1007156977,227210635,-133962937,1945698795,-1861827065,384499727,60794611]},{"sector":7,"data":[1193118457,853636510,-937522689,-1861827057,-1007156721,-1710551624,20384050,-849084232,1291827233,8653,-50724864,240389772,1929325032,102087391,900999344,109846989,512296141,682624203,567092660,-1341553478,-852118481,-788100063,-820082428,-1271943164,-1339962075,-852118509,1007062049,975079695,255900175,632558512,363864525,567096756,258147980,258023049,-1341166918,-853167083,-1273515999,-1943941835,-1995466746,-1173383650,397414300,567092660,900994224,109846989,512298950,-893775932,-1273712625,-1339962075,-852118523,-1811510239,-1843492593,268286479,632554928,884220365,109846989,512296110,481297580,567096756,78775948,78651017,900995504,109846989,512296118,12059828,1009765816,-150572032,1962984643,92781074,632560816,498737613,-1273384944,-1205744347,848956174,-1207879927,648218236,20429074,304615049,50331832,990205446,-1558022463,-1064431064,-1912522824,666417624,-108269173,-56298499,-661733236,-1946077395,-1898970158,788475602,4646,0,0,2925052,141869067,-1262449146,119655753,1930065640,-337212924,-1906831811,-1195340072,801964288,175489034,1913195496,116385795,20718827,263718517,451672331,617416390,-1574916094,832710181,641573414,-1574549086,1638016597,426965030,-402182424,12060475,-2011050697,-2145186282,91565562,588187334,-398167505,243861490,914957807,-12835343,3945844,45351796,-2144570631,86428734]},{"sector":8,"data":[1072170357,236776194,651075871,-1306122963,-2131560948,-125107972,1963657656,9496581,1928921579,1941629698,-2139559166,2411838,518521717,17086469,-2130318104,1912986874,185972742,-402139672,-1591343670,-953801350,388332038,3964940,-400681356,-2095118402,-1343733562,2057381381,3964965,116124789,-401927496,95946662,95152129,-851541978,443875620,-1912602440,-1176816680,1051983877,-498916915,1444318201,822130693,12059627,-402199732,12060534,102878540,-883900365,-13703215,2080458661,151120129,1258432770,-1996330494,-1308451326,-1207870718,29032748,47360,11730870,-402652994,943524780,1073968129,1286927851,567132210,617430656,-1957268224,-1960390610,651338237,-1070415730,-234878535,-947171410,-930364117,963954955,-1064503413,12114062,650153472,290719431,-970579936,538007046,1309758655,1966750848,-108836607,-1190955512,-175439864,-175397645,-804862418,-336068316,1494153473,-1047602802,-1574035280,-605477339,-851542016,276103204,505860257,-1912602438,84059098,32241695,-1574915847,-1142348239,-851542016,276103204,505860257,-1912602438,79733466,32241695,-1574915847,-1679219139,-851542016,326434852,505860257,-1912602438,79536858,520404130,-117314568,1235361968,-2139493594,2411838,-794750859,12197414,-1562735104,-132184897,-1325858325,643146272,1048599275,1962943693,651206928,47646,-1096623474,-336060668,548468993,-349806174,1048598075,1962943693]},{"sector":9,"data":[55568387,-402586696,-128056291,1048585963,1946166477,-838416889,65732900,-134007576,1048580843,1946166477,-838416889,65732644,-134012696,163057011,-851542014,57933860,-1023026712,1048613008,1962943693,50587651,-821639428,915079204,-761190704,-1076326874,2088772906,292829697,567089588,-1023487862,-1331019516,-336025030,738494993,-1979222464,-123427632,347604203,1014167819,588226598,661914680,-141863254,567101364,-1201797517,367725332,1975519916,-947171589,996081291,637891783,-1440542816,1443752952,1203042187,1935548877,185907203,1085878898,768051968,-936696534,28902259,1017818112,1006924842,637957439,617547462,-121632255,216728181,642770914,623263369,-116647496,57876238,1325544681,623263369,1023725032,645201920,651050625,125118073,617481926,-2129794303,-2061054402,-972720858,2412038,243861621,914957807,1048585713,1963009230,623557143,-402586952,158532321,1946157629,203077632,31713785,617561728,-402426623,915210978,478815530,-1203704960,567100425,-1023988622,645206528,618020493,-849346376,-2028244447,2669054,-1968835588,1327697678,-76214984,675187015,-318323163,-919404507,-1169163893,109838593,918890209,12265183,-1972587488,231709188,57802752,-2147419415,19262782,-571931787,-66707968,617561728,-1274579967,628931098,12067277,170905015,-385649216,431227062,1090789837,-1205473630,802010884,635911817,-375144308,-415855835,-375316955]},{"sector":10,"data":[-1327985115,20310075,225822987,753402032,1976109825,-335995132,63015807,-2131194938,24379453,-1557788864,-1480645145,24936485,638088250,-1440354656,-206947664,2105550500,91512063,1543882278,-1899983801,674663384,-402608091,-1527578393,-919384396,-853170246,-1104645599,717170087,13756453,2092868851,516326181,1547534374,-347143308,-1993979913,-400218050,-213843785,-1089606748,-1070455385,-218087239,-10360406,113647367,-385800723,1465319160,-1273100715,-1272853159,1560747777,-335978913,1431787104,1397759494,-1193768110,567100416,8446593,-851528548,1532665121,1560747864,108289631,-116714568,-1158137877,378086698,512500497,280634131,16889891,1912681704,539917,113641588,-134208303,1048581099,1946232017,-788085237,297271588,32241931,-402426888,359793410,617561728,-402295551,82510149,-117440328,770245490,15870,1945633141,48293891,509019843,-1174500601,-1359871936,-377289099,1239021376,247662431,253135391,47139,-2010726258,-2147161578,19189822,1049448308,113648854,-972479274,2414342,-1898411002,219920576,-1207789080,-1813509374,243926786,-922082089,-315480204,-1088104258,-1957293740,-957283370,582483972,1310838117,1966750848,-108836607,-1190955512,-211943416,-1205926236,653656128,184878272,79864593,80126784,84018691,-1559952221,328931,1049857,-388896559,-388896559,-368748893,4650,-1906831621,784371416,774297763,-400108893,599262203]},{"sector":11,"data":[132168229,616047053,128825893,113648077,-1023335219,-1085254057,179053866,-1442614080,1487599851,-339517602,-850372607,-2096795089,199951044,1962936637,-2081494270,-1007091004,2092571316,-1172189915,12133674,-850480128,-1961397727,-47897034,252066476,-50760413,914966086,401089832,-1262225408,628931098,1337205197,74588621,-134216216,-1023409992,623394443,-64644418,-1073042772,-1195115915,567096616,588711564,588586633,-852152392,453413921,421431587,890484771,109846989,512303907,364389153,-1943941835,-1994183930,-1205655266,567096599,590284428,590159497,-852159304,654740513,622758179,889567267,109846989,512303903,481829661,-1943941835,-1994181882,237187358,616039943,-1994273483,-1943743970,119854086,623098051,-855121734,623163425,-855134790,130007841,772709376,128595711,-734593234,922693156,1019946194,773616898,128714494,386801422,-2145072196,35966270,887620468,-1337150464,-819868161,-1405190098,611647495,-1408827858,236916231,617331735,617430656,-402295806,116064271,-402586184,1286930097,567148464,683211471,382017061,567091989,623884319,420922654,522308899,505746360,589371077,-1205919283,-987880171,-853333738,397942561,382017061,567092013,622114847,622249246,522308899,505742776,589108933,-1205919283,-987880164,-853331690,-1006952671,636423819,636565131,636696201,636829325,503316666,754974904,-661782512,521306344,1962934333,300677123]},{"sector":12,"data":[208994108,41290044,512559536,-684848990,151045113,151585545,151587078,521033246,651441805,-822160845,29083955,217874432,-58718860,-1188793087,243868970,-1894897962,-2144937978,192220412,124983356,651822790,-972690687,2546182,-2147483207,41225724,-58717518,-1979353342,179188,244000629,243869171,12134102,283738880,651693705,915086934,-644995599,520094918,-637090210,28901414,-387698176,57869296,1593377204,2011743007,12110847,-1916760576,-1157627842,330827054,16824832,1912612328,96871947,-1057077468,-260694212,112726386,-16729600,1912606184,1019280902,250967564,-1021374969,-398489306,91357782,1134883836,49987,0,0,0,-1,0,0,-1,0,0,-1,-1,0,0,0,0,-1,0,218103808,10,655360,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,542330148,542330692,1936876886,544108393,808463925,692267040,2037411651,1751607666,959520884,825045304,540096825,1919117645,1718580079,1866670196,1277194354,1852138345,543450483,1702125901,1818323314,1344285984,1701867378,544830578,1293969007,1869767529,1952870259,1819033888,1734963744,544437352,1702061426,1684371058,1381191712,-919382266]},{"sector":13,"data":[-13385330,-1307431240,774884608,160040588,-2009167570,305051657,801964722,-1845064658,1049177609,783813008,-855330286,109850159,-1993471582,-1207328706,112333358,-1943130163,772376070,159661705,772257512,159516300,-2143385298,109850121,-1993471586,-402023362,-1943140322,772380166,160710281,-1307431240,774884616,162137740,-1472296658,113716745,168626631,268879406,-953277430,642054,113716736,657870,772623080,162283145,772691688,162545289,772729064,162807433,772739048,163069577,-402646552,1139277872,1390956800,1493725696,1532626783,-2096829608,-1007088444,-1205971376,567108352,1914636062,914959882,-1943139904,1577697798,12108632,47940,567136819,-2147359104,28836302,-1021194940,-1153171272,-768409599,-830463539,1140963329,-1262280243,1025625392,57999365,1025043448,91422722,-335544389,178947,-1191181896,11665408,-1007026250,1431766608,1912608232,-98290,100955384,235072287,1576504095,-1017641121,-164408490,-25114317,772371967,162315403,686546827,1946339062,-1127993847,-1014232688,322771691,1024356864,158793767,-1665350610,-339506167,-1127993849,-1014232704,1979710339,-98281,-336002187,-861721075,-18423,855638461,216791286,1946221443,5564419,-133904765,-922024334,-1695874443,33456284,1431447925,1347880529,-855310152,1493122095,-661976715,-855309640,-117314769,123667827,-2096698535,216532676,-346399488,-401682687,1583087611,-1185916989]},{"sector":14,"data":[-1070399489,-772296974,-1017161655,1963064195,1048784417,1962871208,-49895,776998261,772394145,162012927,772139864,162012927,-919397653,1962933888,1300899334,772401923,74790200,55413294,-117127293,200813939,-2145815351,91553790,-351978714,87764483,166396533,-2096794551,-471137081,-2146667783,1979252734,637996546,1912765699,653079046,776408458,163972806,1397801728,106386769,787057490,163847817,-919173074,-21436407,594856203,91614475,-352309272,29550595,-396750990,1594294543,57987594,-352072472,113541892,117763065,1928944223,1532583176,-352140157,147096324,1397801977,512437842,-75298364,-402295297,65732652,1929410536,-1151749105,567083008,-997989326,283900166,1962933123,1958820619,11593735,-116996989,1532625778,102679384,33129247,45357941,-854226394,-1031135455,503362024,124985094,22383142,-336059955,184726543,638153929,567088522,-210417337,1472405496,-1957493168,-1962467590,-65359655,58044146,-1957963477,1476877259,-1070349473,1333053707,-1273035234,-2083026112,678756857,1344217549,-402290138,509083738,108207878,1111536888,647766477,1964653952,-339637502,-401682687,451674107,-1494724267,1508477951,41099725,-935654421,-398784652,-1962773000,-1021354559,-1157617736,28639236,-98109,-956952204,504132992,-952201977,178441,-1006698520,-1003596026,185188414,639071487,-134201981,975573108,638022149,1996571962,1195899137,123726315]},{"sector":15,"data":[110046915,-617412150,-147942765,-1828073930,-835258578,167412489,-1031797386,-2147226825,1095905474,74825739,1014291211,1963194755,175931406,772175148,165099263,-2094732479,242550521,738884736,-13760907,1091163958,-108850709,-2146667255,1965820540,922693126,-1824454185,-1561603533,-1070345677,-902365394,-768359671,561301771,11543988,1965373478,1698178570,973370369,638481860,1273496970,1191277567,1967735367,-897100061,896855307,1048784461,1962936780,105155116,975581188,41222469,809246699,-771029899,872612980,-2144409621,-16135874,1111623797,1330596169,-4586517,-114599937,1610481640,-352095399,-1957588889,108822730,185431040,1225159881,-347650231,283860481,58050827,-2096501922,41287673,-16004813,1465204340,-919383802,-868318418,326434825,252134646,2093222005,20965378,1491599595,-402396416,124911650,1566508889,-2096829602,788073156,164380291,1912960256,-13965053,-871971026,-1023410167,-1590767053,-953284148,168414726,-22943744,-2021118376,-2092758576,58015995,-33498904,-1192397367,-1993471475,1124716679,13101123,-2133118013,1962935932,-2016989677,757074384,-970046653,537514119,11266115,870003549,243805906,1149897158,1992374793,-1967052257,121960176,-1978305408,-2010248636,1124716679,1967192963,8382467,-344600834,556160,1278741876,705196808,-779483060,185093258,-165317431,1963919172,121959948,637957136,-347667062,-2010228735,1124716679,1967192963]},{"sector":16,"data":[4450307,-613037570,-2147007242,-167110283,1149900148,-2021118454,-2092758576,58015995,-33544984,-152341042,1963919172,121959944,-352160752,1959922189,110046729,-889321014,48822133,1371755776,119428870,-617362549,164642445,1929151464,1493655301,-998046485,1573124358,805782774,-1977216395,-398372859,108264810,21334566,233568336,168135206,1191474368,737536833,1371756025,-92266926,-1979156800,-1274075966,-1979520244,-1960900894,522309079,-133498240,803738228,-1978960899,-840791352,-119436767,11797227,1499071602,-998046485,29620484,319684613,335558656,352339968,369119488,385898240,402680320,419459328,436244224,453023232,469804288,486584832,503367936,520148736,-16718848,318828799,1953067607,1919950949,1667593327,1919230068,208826226,1635151433,543451500,1953066613,1953451529,1634038304,1226209636,1818326638,1679844457,1667855973,1701978213,1936029041,1631849076,1696620916,1919906418,1986939169,1684630625,1986356256,543515497,1970365810,544502629,1634886000,1702126957,1393193842,543909221,1869771365,1850282610,1768710518,1701650532,543254884,1701869940,1667584784,544370548,544501614,1853189990,1917852260,1702129257,1970217074,1718558836,1885433888,1696625253,1919906418,1769101073,1713399156,1953264993,1920099616,1376809583,543449445,1819631974,1919230068,259157874,1701733703,543973746,1818845542,291861109,1702131781,1684366446,1920091424,622883439]},{"sector":17,"data":[-1928917455,-2129569986,-1023328063,67110146,1048579,1769478,3932169,5636095,1986939150,1684630625,1769435936,610820980,1634885968,1702126957,1635131506,543520108,544501614,1629515369,2003790956,1914725477,1701277281,1918980124,1952804193,1713402469,1634562671,1869488244,1868767348,1667592818,1632636532,543519602,1869771333,824516722,1049429774,-1048374628,100647802,398848,458840,524395,589945,655487,721042,786609,852174,917712,19661046,19726613,19792211,19857809,19923408,19988982,20054571,20120217,20185855,20251503,20317117,20382705,20448337,538313911,1869771365,1701978226,1852400737,1768300647,168650092,1766199588,1847616876,1713402991,1684960623,153356813,1175063053,543517801,1663047204,1701015137,543450476,1864399202,1634887024,611479412,168430882,543976513,1701603686,1633886323,1818583918,1646290021,1886331001,1952543333,539259503,1701603654,1819042080,1952539503,544108393,1818386804,1633820773,1919164516,543520361,221135109,1277764618,544502633,1886680431,1763734645,1869488243,1935745140,1852270963,1948279909,543236207,1769366884,168650083,1936020002,1852138601,1634738292,1864397938,1380982886,542395977,1953721961,1701604449,1091177828,1852404304,1629516660,2019914784,1768300660,1998611820,1701603688,1970239776,1701994784,1769174304,1864394606,1919248500,760433952,542330692,1835888483]}],[{"sector":1,"data":[1935961697,218762542,1380991242,542395977,977547099,1769366884,542991715,977416027,1702521203,794501213,1769224789,829647715,794501213,1769224781,846424931,794501213,1769224787,863202147,1107955037,538976288,794501152,1936800337,1566931561,1412389664,1532698717,1986622052,1532836453,1752457584,1818846813,1835101797,773872485,1566387758,1127176992,794501213,168648016,539560461,977547040,1769366884,538994019,1701860128,1768319331,1629516645,1769107488,1679848558,1667855973,168636005,790634552,1769159234,538994042,1394614304,544437349,543516788,1702129257,1818324594,1718968864,544367974,1702521203,1852383276,1954112032,221148005,538997002,1949979951,1936417641,538976305,1953063255,1752440947,1886593125,1718182757,543450473,1769496941,544044397,1651340654,1864397413,1818435686,543908719,1801677172,1868963955,1752440946,1919950949,1702129257,537529714,538976288,538976288,538976288,544175136,1629513058,1818845558,1701601889,1762266414,1294934048,1667855418,540177259,1884495904,1718182757,544433513,543516788,1769496941,544044397,1651340654,1864397413,1818435686,543908719,1801677172,1953046643,1801548832,1948283749,1919950959,544501353,537529697,538976288,538976288,538976288,1634231072,1952670066,221147749,538997514,1949979439,1936417641,538976307,1869376577,1702125923,1752440947,1668489317,1969513832,544367980,543516788,1667592307,1701406313]},{"sector":2,"data":[1970151524,1919246957,543584032,1668246627,1769218155,544435043,225603430,538976266,538976288,538976288,1646272544,1735091041,1853190002,1919950948,1769238121,221144942,538988810,1899647279,1702521203,538976288,1667592275,1701406313,1752440947,1634541669,1970104696,1970151533,1919246957,543584032,1701603686,1818304627,1702326124,1852383332,1701344288,1769107488,1897952366,1702192501,923405614,1412374560,538976288,538976288,1699880992,1702260589,1818304627,1768300652,544433516,1836020326,1701344288,1769107488,1897952366,1702192501,1661603118,1127161888,538976288,538976288,1631789088,1818583918,1919950963,1769238121,1864394606,1752440934,1919950949,1684366181,543649385,1701603686,1701667182,1684955424,1651864352,1970365811,225734245,538976266,538976288,538976288,1713381408,1852140649,1936026977,1762266414,1345265696,538976288,538976288,1681989664,1948283748,1881171304,1701012850,1735289188,1818846752,1835101797,1851859045,1970479204,1902474082,1953391989,1818846752,1835101797,1948283749,1752440943,1919950949,225734249,538976266,538976288,538976288,1897930784,1702192501,218762542,2035567370,1344300400,1414416722,1953068832,1953853288,1918988320,1952804193,544436837,1679847284,1819308905,1948285281,1663067496,1702129263,544437358,1948280431,1881171304,1953393010,1702195488,221144437,-1928917494,-2129454530,-1023057471,134219263,2097153,3407874,3342351]},{"sector":3,"data":[5373969,6553618,7798803,8585236,10289173,1668172055,1701999215,1142977635,1981829967,1769173605,168652399,571084034,1852727619,1965061231,1344300403,1414416722,1428172064,1310745971,1344296005,1414416722,1343556109,1414416722,1702195488,1763730805,1969627251,168651884,1230131222,1897944142,1702192501,544434464,1953525093,252317049,1701012289,1679848307,1701408357,487198052,1635151433,543451500,1986622052,1886593125,1718182757,1952539497,225341289,1917143818,1936879474,544108320,1953720684,1986356256,543515497,1768189545,1702125923,1634235424,1953046644,1634535949,1700929657,1717989152,1852402733,1344286309,1935762796,1751326821,543908709,221148265,-1928917494,-2129100738,-1023340607,83887615,1310742,3473431,4456472,5308441,6357018,168430884,824516640,544434464,1920103779,1819569765,1700929657,543649385,1852404336,224683380,538972682,1763717413,1852383347,1702195488,168650101,1818838544,1869488229,1868963956,224685685,1632637706,1634625652,1948280173,1814065007,224882287,1766201610,1847616876,1763734639,1380982894,542395977,1969583473,235539813,-1807839993,-1782480615,100647680,1769728,1310392324,543518049,1814062703,544502633,1769366884,1528849763,1565413968,118366266,439238285,-1020608125]},{"sector":4,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-16777216,0,255,2086492928,1026244156,771760699,443090631,788267008,442240649,1577502510,771751962,443614919,-953286656,1729030,113716736,1566251773,-16333010,775715866,453052103,-953275586,1025180422,110487611,-4713613,-1960422401,255469085,45613939,602495744,914959873,1465064043,1931382101,116796954,1965038186,636005443,-398691833,930350729,1963375336,116796952,1965038186,106031109,-164747541,1092250118,-347201932,126365211,108346684,1779335214,-398261990,-982317298,126365356,1321134915,1614186798,130428442,512306688,-1960437137,1932954909,1015033370,775320623,1948400768,116796936,1963006570,1200236116,786706945,442238521,-1590816141,-523167140,-670874813,-400585946,1777008776,1577502510,-352321254,1200236128,1088696833,-670834479,839879206,1959332845,642990863,-957866101,1098078976,-220052669,1577502510,-352320742,1200236084,1088696833,-670834479,839354918,1088475620,-1977165821,200094223,1125086409,529213011,1526750696,1128467315,-953224478,68836870,1532976384,1544457006,1587621402,915090970,-1959912864,773480982,442769034,642827256,44631947,772109568,442238719]},{"sector":5,"data":[3964974,27859317,772371712,442369735,250281986,-1274826672,10414335,-402396328,-1017642723,1364575225,139430438,-921965262,1871514996,61401097,250087539,-101260800,-1993472277,-132484818,650337625,32384,-347798668,784549366,443158144,-3741680,-2144449934,-283481562,1839279696,784739098,443221505,915091032,-2144462227,645201980,-8617938,772371770,442369735,535494665,4162342,-148498060,1962934535,113716754,137822,-1763178005,233568256,1342893049,-4979792,1476396008,643286008,772046731,442646153,637896742,1342268808,443654446,38111526,1963015256,1435051530,1300833796,1012591366,637957378,-352037495,1946631248,1946696936,1963343076,1434985990,1010756356,772764932,1075473313,71665958,106794022,-1993987093,-1943665547,642778701,16926710,78644340,-165279253,1946288711,-402477051,643301605,268584950,-1259863180,784555776,453379782,-1960423424,1975520007,1381191704,113716823,596574,61931444,1610570728,-346530982,-352064766,11112559,772961408,442369735,803733504,1048784385,1963530846,1073785175,-953281932,1728006,16050176,1581155118,1081411866,1946222761,113716757,6750,-402465560,-2094136481,152723006,11085429,772961282,442369735,-1024983040,1048784386,1963530846,536914191,-953283980,1728006,31647744,104759342,259326235,1581155118,125108250,1577502510,1476397338,777408707,-1073085302,977017460,-2144465547]},{"sector":6,"data":[1962934652,80096774,-402003200,24314906,-538229178,1455642718,785418834,132646026,168587780,-401836864,-2010251252,1174530820,1525214022,-2143501474,1631325299,2050770290,-551272073,106118635,-130118313,83525658,1049429108,942545651,1343714325,118379089,-1031117388,-1174405189,-4587515,1512164863,-1959896999,-1909587619,1128465221,-685342676,-1017444513,243281488,780147306,443164288,76164861,175385404,125119804,1779335214,-398065126,-1017643006,1448235344,-768358093,76164691,1114947594,1912664552,-1947979207,-773664280,13822161,-628413326,-489569909,-974597679,-786468352,-388902430,376570044,-938224893,1912648680,-2083192051,-1444413231,1174630912,-379864085,777715853,443156214,-150309886,-2083325999,-779943486,2005607936,76162566,125108284,-4980304,1183872235,1006930470,1180726272,1778841134,511016986,55327526,108476018,22297382,992358002,678889292,992361074,544671060,992359147,410780492,992347775,276562260,122436390,477891199,89406246,350945919,-32913789,783644104,442369735,28311558,317456308,-1977220688,772533028,442369735,61865993,636026804,1499094781,782025560,443156214,-1660783358,40934851,-1007041544,141701180,74922300,-1007144916,1397801977,-1960421550,-1977219457,1975519749,-335563772,113716745,596574,61931444,1610407912,-1017619622,1448236368,-1976696142,37545988,1172847730,116797182,1946688106,1966947341,2122327583]},{"sector":7,"data":[1903493121,-164752405,270166534,977014388,-2144990603,1962934398,1558922844,4602406,-1073078923,1162236532,975573995,1165295686,76164678,1178216005,1178236160,782756677,443156214,638547008,537020407,638022656,32384,-148495756,1946161159,1966750744,2122327561,225771520,3935979,-2144991371,1949958270,116128003,1832290606,1516173338,1354979421,-1959897513,773483326,-1073085302,1609044852,774141184,453379782,-970039807,-346095612,-970039745,643760132,67575,-953273739,35282438,1479142144,76164694,510967818,1946168808,22865931,1179058803,-370457017,442802734,312878,1049177671,1600002656,33597784,-1269823116,-402280193,-1017578552,512577875,163126013,121253376,-498924428,1532576248,777146563,-1073085302,333985908,774664705,973175939,-148500876,1946161159,2088775198,393543681,1631330316,2050756978,1613499767,-4927350,2045249200,772271099,442369735,1482293257,585673923,-401050624,376766547,1778841134,-311156710,1778841134,158613786,-116987058,1324876267,1405352131,1947024465,1946172461,1946827817,2105550373,510788098,-1977165005,-1014824099,964699652,856519680,160048841,20588099,-119405452,1532562748,777081795,442762950,645934624,1021254250,1010201632,1009939465,1009873964,-2146667232,125116476,977674416,639560640,16940416,-919398542,55413286,192203019,1124074427,1946237478,1022943751,-1017423584,442802734,1778841134,108331290]},{"sector":8,"data":[1779335214,-1069932518,781051883,-583329165,792463988,-336002187,200013838,108343100,1779335214,-1007140838,777213470,442973827,1344763136,1465012510,-164428203,12115598,-1943941789,131795931,1499094877,695490591,1698072878,512306714,-1959912857,773481782,442965646,1946172547,1912879632,21248520,-336002185,-347716091,1583085803,1543553823]},{"sector":9,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,202768384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2130673408,2488320,638779648,673586186,1076245542,1478904870,1881564198,-2010743770,50331686,-872414974,2528294,73729,647243468,4468481,32769,647309004,4337409,32769,648029900,5320449,32769,648750796,5451521,32769,649471692,5582593,32769,650192588,5058305,32769,647243468,5517057,32771,647243468,4402945,32771,647243468,5254913,0,647243468]},{"sector":10,"data":[4140801,16843008,512,16384,67240193,536870912,16777216,66305,16711680,16842752,260,65280,83951872,1,255,0,0,11,268435767,706740544,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-335544389,178947,-1191181896,11665408,-1007026250,1431766608,1912608232,-98290,100955384,235072287,1576504095,-1017641121,-164408490,-25114317,772371967,162315403,686546827,1946339062,-1127993847,-1014232688,322771691,1024356864,158793767,-1665350610,-339506167,-1127993849,-1014232704,1979710339,-98281,-336002187,-861721075,-18423,855638461,216791286,1946221443,5564419,-133904765,-922024334,-1695874443,33456284,1431447925,1347880529,-855310152,1493122095,-661976715,-855309640,-117314769,123667827,-2096698535,216532676,-346399488,-401682687,1583087611,-1185916989]},{"sector":11,"data":[]},{"sector":12,"data":[1346439693,1414483536,1412322117,168645720,1330514445,542328148,1428180559,1196312915,1347436832,1094928716,1313818964,1230446675,1293961300,1329868115,1163272275,1330205522,775233614,1024068912,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,168639805,1750338061,1679848297,1836409711,544501349,1987015280,1936024681,1886218528,1635021423,1763734638,1919903342,1769234797,1847619183,1763734639,1970037614,543450468,168652393,543516788,1919117645,1718580079,1397563508,1397703725,1702057248,544417650,1684632903,1851859045,1699881060,1701995878,543515502,1763734127,1852776558,1701734764,1699219981,221147244,1275727114,543911791,1869768820,543713141,543516788,1819045734,1852405615,1635000423,543517794,1663067759,1702129263,544437358,1679847284,1919251557,1701734765,1752631821,1701344357,1870209138,1629516405,1768714352,1769234787,1763733103,1852383347,1685417059,221144165,1091177738,1313166420,1313818964,1146045216,1162434117,1312890967,1313415236,541869396,1448034881,1095713349,1428178002,1397900627,724240909,724249387,724249387,724249387,724249387,724249387,724249387,724249387,724249387,724249387,724249387,220932907,1667584778,1852795252,540090483,543452769,1868767284,1767994478,1919098990,1667855465,1763732577,1919903342,1769234797,168652399,1970233953,1937055860,543649385]},{"sector":13,"data":[1702129225,1648435308,543520367,1918988098,1851859044,1866670180,1767269732,1998616421,224949353,760433930,542330692,774909493,724240909,724249387,724249387,724249387,724249387,724249387,724249387,724249387,724249387,724249387,724249387,220932907,1175063818,1763734127,1919903342,1769234797,1629515375,1953853282,1936615712,1819042164,543649385,1143821133,891310927,1629499438,1965057134,1735289203,1634208269,1635214450,1629513074,1847616622,1870099557,544435058,1752459639,760433952,542330692,741355061,1701147424,1701344288,1095062048,776293700,223631444,1818846730,168636005,1750338061,1868963941,2003790956,543649385,1768976244,1629516643,1679844722,1969451881,1684370291,544106784,1936287860,1818846752,168639077,774965773,1868710176,1109419382,1685217647,909652512,1684955424,1868710176,1109419382,1685217647,1970032672,1850286195,1818326131,1769234796,168652399,1344282656,1919381362,225668449,539898378,1869903169,541344067,1701602674,543519585,168636465,1092628019,1380930645,1160662613,168641880,1126182452,1449485423,225928553,539899146,1702060357,775299180,906628400,1631985710,1633842291,168651619,1193291319,1868001125,225667954,539899914,1970564940,758194291,540224818,1936876918,544108393,221261363,539900170,1768841549,1953719654,808520205,1632641070,1651797609,1752397170,808333856,825297421,1632641070,1868849522,775102584,822742325]},{"sector":14,"data":[1344286258,2001415491,1142975337,543912809,1701012289,1634887020,225603444,775106826,1634029600,1918134371,1126196581,1819307375,543519845,222906697,775172362,1818972192,224752745,775237898,1869762592,544826699,1937075280,909183501,1767055406,1768645988,840985443,168636462,539899697,1952870227,1162037549,942737933,1867718702,1635218534,1126196594,1970238049,225207667,775500042,1935758368,2001936491,1701867617,1851859058,1933647972,1751346809,1869508466,1226863477,168644399,539897906,1953391958,543257205,1818391888,1701344105,839519602,1461726769,1348760175,1701212773,1461744739,1179535696,1480928847,775233605,839519537,1461726770,1348760175,1701212773,1327527011,1667851878,775102565,839519536,1478503987,1701147220,225731918,822742282,1648435246,543520367,1918988098,942809188,1851858998,1648435300,543520367,1918988098,1817190500,1226863477,1635021678,1952541804,225341289,538976266,1869762592,1835102823,755633523,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,221064493,1124732170,1230263617,540692047,543516756,1702129225,1648435308,543520367,1918988098,1852383332,1818326131,1769234796,1881173615,1919381362,1948282209,225730920,538976266,538976288,1752375328,1701867625,1700929636,1701998438,2036419872,943272224,1702109241,544437363,1702131813,1684366446,1835363616]},{"sector":15,"data":[544830063,1629515369,538970637,538976288,1998594080,1948285281,544498024,544104803,1920102243,544501877,1702131813,1684366446,1835363616,779711087,168626701,1868981570,1965057394,1735289203,544104736,1987011137,1866604645,543453793,1953721961,1634495585,1852795252,1869770784,1835102823,1769107488,1948283503,1292504431,824211809,741947449,1801547040,1970479205,2032166258,1746957679,1852143201,1814066215,1701077359,1869815908,1635218534,1931502962,543712117,168653665,1380011347,1769096276,1864394102,1095901298,1769096269,1948280182,544498024,1936028533,1954047264,1701080677,1701650532,2037542765,1092624430,1919251558,1701344288,1648429581,543520367,1918988098,1634213988,1700929651,1763733093,1635021678,1684368492,1953439788,544367976,1952870259,1701994871,1769174304,168650606,1702131813,1684366446,1835363616,544830063,1965060969,1717985646,1702126437,168636004,775031309,1953841440,1145127791,1818587680,1702060389,221262112,757935370,757935405,757935405,757935405,757935405,168635693,1914728276,1092644469,1131377781,1914717249,1634036837,824206707,1868963888,1397563506,1397703725,1868767276,1667331182,1967202420,1701080948,1713400691,1629516399,1634732557,543712116,1701603686,1867391022,1952542752,1763731555,1701716083,1684366437,1919903264,1953841440,1145127791,775305267,168626701,1092628019,1380930645,1160662613,168641880,757935405,757935405,757935405]},{"sector":16,"data":[168635693,2032166473,1663071599,1948741217,1702065440,1970228512,1767994478,1699618926,1919907700,1867718763,1769239916,544435823,1330926913,776885586,742742085,168648992,1701863796,1769104429,1646290294,1969972065,1919950960,1634887535,1663052909,1635020399,2032170083,544372079,1684956534,1713402479,1629516399,1963593070,1634887536,221144420,873073930,1866670126,1767269732,168654693,757935405,757935405,221064493,1430340362,1313818964,1934958650,543649385,1936876918,1936617321,808334112,544175136,858861107,543584032,543516788,1701080899,2003134806,777405216,222648389,1818846730,1634541669,1633886329,543519605,1635017060,1936682016,1718165619,1970239776,2037588082,1835365491,1935763488,941646112,909652784,1835363616,226062959,1851878666,1919248225,1970481184,1629513827,1296375923,909652813,1163412782,1851858985,1701060708,1701013878,1769104416,1936876918,544370464,1735357040,1936548210,1752435213,1965061217,1696621939,1852142712,543450468,1869440365,539916658,1679847252,1919251557,1701734765,1768453920,1981835363,1769173605,2032168559,168654191,1702257000,2037653548,1126196592,1480928854,1952522309,1701344288,1836016416,1684955501,1869770784,779382893,168626701,1931505492,1953653108,1685013280,1701402213,1702240375,1869181810,857764718,1948266542,775102575,1931490097,1818584673,1965042809,1948280179,168650088,1127110211,1713392975,543517801,1818455657]},{"sector":17,"data":[1684366453,1953068832,1397563496,1397703725,808334624,1851858988,1229463652,776815949,542333267,1936876918,225341289,925774346,1919885367,1952541728,221147749,1409944842,1937055855,1752440933,1447239781,1297040174,1818846752,1852383333,1685417059,1998611557,543716457,1143821133,891310927,539766830,2037411683,225732896,1869768202,1752440941,1699946597,544241012,1802725732,1869881459,1701344288,1919509536,1869898597,1948285298,544498024,1953394531,1936615777,1970239776,1124732274,1480928854,1768300613,221144428,1409944842,544434536,1651470960,544040300,544432488,1852138850,2020173344,1763730533,1866670190,1767269732,1981839205,1769173605,857763439,775172398,1818313504,1292504428,1869767529,1952870259,1394623264,1869639797,1948284018,1701257327,1752440948,1981838185,1769173605,221146735,889851146,1631920174,543974771,221261366,757935370,757935405,757935405,1225395501,1919251566,1769235297,1226859894,1701273965,1631920243,543974771,540028470,1763734377,1836016494,1769234800,543517794,1752459639,1701344288,1329859085,1229471059,1629505607,1159750766,942886221,1868767286,1851878765,539915108,1953394499,544498529,1920298873,1852143136,544370532,544370534,168652385,1633972341,221144436,906628362,1631985710,1633842291,168651619,757935405,757935405,221064493,543574282,544567161,1702257000,1981833504,1769173605,1864396399,1766203494,543716454,1701733703]}],[{"sector":1,"data":[1769234802,1394634351,1702130553,1176531821,1651798881,225141601,1918985482,1919248748,1634235424,775102574,2032151600,1830843759,544502645,543519605,543516788,1145130828,542656838,1835888483,543452769,1868981602,168650098,1852732786,543649385,1953718598,1801675106,544370464,543516788,1953718598,1801675106,1936615712,1819042164,1869182049,1919950958,1634887535,1411395181,224751737,1701344266,1819239968,1769434988,221931374,1275727114,1178878287,1176524873,1480928834,218762565,225603338,1275727114,1178878287,1176524873,1397639490,776749396,222648389,1175063818,1763734127,1919903342,1769234797,1629515375,1953853282,1701344288,1095715872,1481197124,1836016416,1684955501,1702043692,1752440933,1702043749,1869182051,571084142,544567129,1701012850,543520361,543516788,1667321895,543450475,1701603686,1919902496,1953527154,1701650471,1734439795,1763713637,1749229678,1702129761,221519986,543584010,1919117645,1718580079,1397563508,1397703725,1952794400,1735289204,1635013408,1684370546,218762542,539899658,1466918215,1936421487,757926413,757935405,757935405,1225395501,1870209126,1634214005,1629513078,1919252000,1852795251,543584032,1466918215,1936421487,1129326624,1329940271,1696606547,1768714849,1948283493,225337704,841888010,1937055788,1752440933,1163075685,1380275796,1836016416,1684955501,544175136,1869636978,1981838450,1769173605,1847619183,1700949365,775168114]},{"sector":2,"data":[1948266800,1946815855,1193305448,777211717,541415493,1701603686,2035556398,1948280176,1713399144,1869376623,1735289207,218762554,1413829386,542262614,1397704007,1163412782,808334368,218762545,544162826,544501614,544109938,543516788,1953721961,1634495585,1852795252,1869770784,1835102823,1919903264,1868908320,1802661719,1850024051,1651336563,168650092,1852139639,760433952,542330692,1818585171,1632903276,1394633587,1886413175,1763734117,1667309683,1702259060,218762542,1702057226,1701344288,1668826400,1769174380,1411409270,1768649569,1864394606,1869182064,1752637550,1914728037,1768844917,1193305966,1868001125,225667954,1936606474,1818389861,1769414757,1461741684,1868852841,221148023,940182794,1867259950,544437620,758263089,1702240307,1869181810,775102574,755633456,757935405,757935405,757935405,757935405,757935405,757935405,1175063853,1763734127,1919903342,1769234797,1629515375,1953853282,1953451040,824210293,858599981,1919252000,1852795251,808334112,1702043692,1752440933,1930038629,1769235301,572550767,1970564940,758194291,540224818,1936876918,544108393,540094003,661548919,1953702004,578056801,544106784,1885431875,544367988,1862929715,1766662246,1936683619,544499311,1143821133,1193300815,1769239653,1394632558,1953653108,539911269,1936287828,1718511904,1634562671,1852795252,1936482592,1628048751,1768714352,1948283749,1867260015,544437620,758263089]},{"sector":3,"data":[1702240307,1869181810,775102574,168635952,775490061,1851870496,1936025193,755633524,757935405,757935405,168635693,1936876886,1936617321,808333600,1851858993,1634476132,544367988,1361077871,1953653109,1701081701,1293970275,1718185569,544502629,224752225,1836016394,1769234800,543517794,1752459639,760433952,542330692,774909493,543574304,544567161,1702257000,1981833504,1769173605,1696624239,1768714849,168653413,1851877492,808333600,1663052849,1635020399,2032170083,544372079,1684956534,1713402479,1629516399,1886724206,1684107879,168636005,808520205,1632641070,1651797609,1752397170,808333856,757926413,757935405,757935405,757935405,757935405,1716062733,1970239776,1986095136,1851859045,1095189792,1852796192,1919906921,1684955424,1851881248,1869881460,1853190688,1667845408,1869836146,1864397926,1510608242,1952870227,1767985184,1919054958,543716213,741355058,1970239776,1937075488,1701978228,1702260589,1701344288,1447380000,1027949385,776030021,223566163,1836016394,1684955501,1869768224,1870209133,1126199925,1229344335,1498623559,1768300627,539911532,1702127169,1701978226,1769369453,1948280686,168650088,1835888483,744779361,1970239776,2036428064,1986095136,1768169573,1667851878,2037673077,1953068832,1668489320,1852138866,1635218208,1852403824,1752637543,168652389,1852404597,1632903271,1394633587,1886413175,1763734117,1397563502,1397703725,1701335840,221146220]},{"sector":4,"data":[822742282,1344286257,1684107873,857765999,168637742,757935405,757935405,757935405,221064493,1919895050,1718511904,1634562671,1852795252,1868718368,1344304245,1684107873,1981839471,1769173605,857763439,539768110,543516019,543516788,1952671091,225341289,1867260426,544437620,758263089,1702240307,1869181810,775102574,1870078001,544483182,1918989427,1763713652,1749229678,1702129761,540221554,168650351,1919117645,1718580079,1397563508,1397703725,1952794400,1735289204,1635013408,1684370546,1750343726,1763734377,1919903342,1769234797,1629515375,225407852,1886413066,1936025964,544175136,1634885968,544763748,775237171,168626701,539898417,1261257552,543910263,1802725700,1667449120,1919249509,1919906913,757926413,757935405,757935405,757935405,757935405,757935405,757935405,168635693,1847619396,1814066287,543449455,1936876918,1936617321,543584032,1953264973,1718580073,1129324660,1769425709,1766072427,1092643699,1818583907,1952543333,168653423,1819435365,544367977,1851877492,808333856,1953392928,1752440943,1886724197,544367984,1869440365,1629518194,778134898,168626701,539898673,1667327312,1701991528,1866670181,1701605485,1226859892,1394624841,1818717801,1934962021,1444967013,1769173605,168652399,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,168635693,2032166473,1629517167,1965057394]},{"sector":5,"data":[1735289203,1701344288,1852404512,761621607,1919251317,1919252000,1852795251,543584032,1667327312,1701991528,1124732261,1819307375,543519845,541673801,1952539176,807430243,1752440881,1735749490,1633820776,543712116,740897585,1852793632,1952670068,1634029600,1918134371,168650085,544370534,1965059681,1952539760,168636005,1750338061,543519333,1847620457,1868767343,1952542829,1818845801,544830569,1651470960,544040300,1752459639,1701344288,1952804384,1802661751,1919252000,1852795251,218762542,775172362,1818972192,224752745,757935370,757935405,221064493,544162826,544501614,543519605,1768713040,1948280180,1634738287,1679846243,1667855973,1919164517,1919252073,168636019,1716062733,1970239776,1986095136,543236197,1261257552,543910263,1751343459,1852776549,1970239776,2037588082,1835365491,1851858988,1870209124,1633886325,225716078,1853190666,1881170208,1701536609,1919950948,1634887535,1679830125,1852776559,1718558821,1701344288,1819239968,1769434988,221931374,538976266,1934958634,1752440933,1330389093,1229341761,1868767320,1851878765,1869881444,1635021600,1948284018,1881171304,1919381362,221146465,538976266,1968316458,1397563502,1397703725,808334624,544106784,1986948963,1769238117,1818324591,1835363616,779711087,538970637,1377839648,1629515381,1919252000,1852795251,543584032,543516788,1735357040,544039282,1952540788,1935767328,1953459744,1667330080,543450475]},{"sector":6,"data":[1752459639,538970637,1344282656,1953066091,168636005,706748448,1936278560,1701601889,2037604640,1919443822,1970237039,1701978227,544433249,1948282479,1344300392,2001415491,1663069033,1701340001,218762542,1919895050,1718511904,1634562671,1852795252,1868718368,1948284021,1277191528,1178878287,1663064137,1634561391,539780206,543516019,543516788,1952671091,225341289,1868112394,1701978229,1986618723,1752440933,1344741477,1701536609,1768300644,1663067500,1970434671,539456624,1936942445,577070945,544106784,1885431875,544367988,1862929715,1766662246,1936683619,544499311,1143821133,1193300815,1769239653,1394632558,1953653108,221144165,822742282,1344286261,1699442546,1817190521,168653685,757935405,757935405,757935405,221064493,543574282,544567161,1702257000,1869770784,1835363426,1937055859,543649385,1702240353,1869181810,1718558830,1936675360,1718571877,1917853812,2036681583,1970032672,1695157619,1768714849,1948283493,544104808,741355061,1852793632,1952670068,1970239776,1702240370,1919902830,1919903264,544104736,1919381621,778396769,168626701,1265594960,1344305509,544437612,1763734377,1836016494,1769234800,543517794,1752459639,760433952,542330692,1953064005,1629516399,1361077358,1769169218,168636003,909183501,1767055406,1768645988,840985443,168636462,757935405,757935405,757935405,757935405,1716062733,1970239776,1701994784,1853190688,1735289198,760433952]},{"sector":7,"data":[542330692,540028469,1948282473,1746953576,543713129,1869440365,1629518194,744580466,1702065440,1752435213,1868963941,2003790956,543649385,1145130828,542656838,1835888483,543452769,1931505524,1953653108,1919894048,1684955500,1684624160,1667853157,775037035,168639024,538970637,1330389024,1229341761,1802707032,2019896882,218762597,1919895050,1718511904,1634562671,1852795252,1868718368,1948284021,1277191528,1178878287,1663064137,1634561391,539780206,543516019,543516788,1952671091,225341289,1868112394,1701978229,1986618723,1752440933,1344741477,1701536609,1768300644,1663067500,1970434671,539456624,1936942445,577070945,544106784,1885431875,544367988,1862929715,1766662246,1936683619,544499311,1143821133,1193300815,1769239653,1394632558,1953653108,221144165,822742282,1394617911,762603119,222643017,757935370,757935405,757935405,1460276525,544105832,1852404597,1968054375,1734692141,1867718753,1227715686,539772227,1684107116,544500000,1868981602,1814062450,1768186223,1864394606,1919248500,1919158797,1919252073,1327509107,1919248500,1702062455,1870209068,1634541685,1869357177,1679844723,543257697,1919906931,1763730533,2019893358,1684956532,168649829,1869440365,1646295410,1919164537,1919252073,1970479219,1629513827,1297293427,1146376769,1702259058,218762542,775434506,1718571808,1918990196,1631789157,1937076082,168651877,757935405,757935405,757935405,757935405]},{"sector":8,"data":[757935405,1393167661,2004117103,543519329,1869766979,1818588021,808334624,1936269361,1836016416,1769234800,543517794,1752459639,760433952,542330692,774909493,1716062733,1970239776,1986095136,1851859045,1918985504,1919248748,1919252000,1852795251,1868767276,1667331182,1867718772,1867281510,543385959,1970040659,1852795252,1711934835,1629516399,1886724206,1702125924,218762542,543574282,544567161,1953721961,1701604449,1229463652,1397572941,1395544908,539775833,1869440370,1948280182,168650088,1230390596,1211974979,1296387401,777210963,542333267,1835888483,543452769,1836020326,1970239776,1329799282,1195984462,1398362926,1952866592,168653413,1852732786,543649385,1143821133,891310927,1394618414,1886745701,218762542,544166922,543519605,1263750980,539777349,1684107116,544500000,1702127201,1870209138,1869357173,1394631777,2004117103,543519329,1869766979,1818588021,1953392928,1829375343,1919905125,168636025,959515149,1632903214,1394633587,1886413175,1629516389,1092641902,1668184435,1852797544,544437615,223293257,757935370,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,168635693,1701670739,1869770784,1835102823,1752440947,1881175137,1868984933,1629515122,1668184435,1852797544,544437615,1835888483,1667853941,1869182049,1629516654,168650098,1868787305,1952542829,1701601897,1953068832,1397563496,1397703725,1701335840,1411411052]},{"sector":9,"data":[543912801,1885435731,779249008,1919243296,1634625901,168635756,1819635045,1869182049,1869815918,1635218534,673211762,1751348595,544432416,1918987603,1836008308,1684955424,1869762592,1835888483,1970032672,1629497715,168649838,1987208563,1664053861,1852139884,1869815924,1635218534,673211762,1751348595,544432416,1819304268,543911529,543452769,1935764546,1629497716,168650098,1853453153,1869768803,1937076078,1836016416,1768846701,1769234787,544435823,1735357040,1936548210,1716068398,1970239776,1851876128,1965061159,1629513075,1628048750,1668184435,1852797544,544437615,1735357040,544039282,1752459639,1935758368,2001936491,1701867617,1663052914,1635020399,2032170083,544372079,1684956534,168653423,544370534,1701998445,1718511904,1634562671,1852795252,1919885356,1936286752,1701601889,1935758368,2001936491,1701867617,168636018,808585741,1700143150,1920300142,1968185441,1936288866,225600872,757935370,757935405,757935405,757935405,757935405,168635693,2032166473,1663071599,1948741217,1635021600,1444967538,1970564709,1344299378,1768710773,1919248499,1634541612,1931502955,543519349,1920298873,1852134944,1634891124,1968179725,1936288866,544367976,1701996900,1919906915,1936269433,1953068832,544106856,543516788,1936877926,808919156,1634231072,1952670066,544436837,1948280431,168650088,1213481296,1836016416,1684955501,544106784,1920298873,1414873376,1163412815,1094856259]},{"sector":10,"data":[1768300628,221144428,839519498,1461726769,1348760175,1701212773,1461744739,1179535696,1480928847,775233605,755633457,757935405,757935405,757935405,757935405,757935405,757935405,757935405,1393167661,543518063,1936876918,1936617321,543584032,543516788,1313427543,1160662854,1713390936,543517801,1818455657,1684366453,1953068832,1460276584,1348760175,1701212773,891319395,1629499694,1763730802,1836016494,1769234800,543517794,1752459639,760433952,542330692,774909493,1852785440,1952670068,1870203405,1981837941,1868852837,1868963954,1869422706,1763730802,1919903342,1769234797,221146735,839519498,1461726770,1348760175,1701212773,1327527011,1667851878,775102565,755633456,757935405,757935405,757935405,757935405,757935405,757935405,1393167661,543518063,1936876918,1936617321,543584032,1685221207,1718773072,544498533,1768318543,857761123,1629499438,1763730802,1836016494,1769234800,224750690,1953068810,1397563496,1397703725,808334624,1866670126,1667331182,1870209140,1981837941,1868852837,1868963954,1869422706,1763730802,1919903342,1769234797,221146735,839519498,1478503987,1701147220,225731918,757935370,757935405,757935405,1409944877,1937055855,1415061605,1315267954,1998615653,543716457,1143821133,1394627407,1819043176,1935758368,2001936491,1701867617,1931488370,1667591269,1752440948,1342836069,1702258034,1344304238,1919381362,1394634081,1668573559,1886330984]},{"sector":11,"data":[1852795252,544106784,543516788,1143821133,1394627407,1819043176,1986281760,1701015137,1678380388,1869373801,1868701799,1176514168,1830842991,543519343,1868983913,1952542066,544108393,1970233953,1886593140,1718182757,1735289209,1986289952,1701015137,1879706980,1701867378,1701409906,1931488371,1126196581,1953522024,941650533,543584032,543516788,1919117645,1718580079,1397563508,1397703725,1702057248,225650546,1769293578,1629513060,1377854574,1919247973,1701015141,218762542,1560285194,1426064074,-1909527413,-1962933754,-1557789114,-899874794,-1957363710,181034476,-326413056,707165,810963524,-1862074366,295047574,-1862139904,618140482,1380188160,1978454,-1956773888,214588901,-326413056,503901315,35556910,-62470400,1187381724,1048577273,1948385350,-62470382,1187381592,1048577785,1948975174,859237122,240144576,-1191955480,240123905,-956077592,65094,2147108551,-25755902,251426559,-16565272,1996487286,1827147516,-62455820,1979272958,-443867164,-145568931,-805086495,-511652982,-773074681,65786347,-754994221,79283179,775431680,1081344049,-1174392133,-223084528,-1591340851,-12779506,-1275021825,-1257999089,637580312,-1157476470,-1993998277,1334388231,-1175211006,281870340,-1174402885,-256638960,-2010771251,-1023392994,236882726,63879680,-1070406774,251705839,1979710339,1620227,-280959606,61923722,-301420305,309699,825112614,-1155959808,280625202,-839666688]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[1886152008,1919895072,760433952,542330692,1818585171,1868963948,1397563506,1397703725,1919243808,1852795251,808334624,757926413,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,168635693,1226902029,168640545,1143821133,1394627407,1819043176,1818576928,1850286192,225994084,1409944842,1702043759,543236197,1768976244,168639075,757074445,1970226208,761621602,1667853411,1752440939,1869881445,778266992,168626701,168653391,757074445,1701990432,1411412851,1948271169,1702043759,1952671084,1701344288,1886352416,2032165737,1998615919,745827937,1684955424,1701344288,1919950958,544437093,1163152965,168635986,1162545677,1095713369,1210074194,223366213,757935370,757935405,757935405,168635693,572530720,1852131104,1818325605,760433952,542330692,1818585171,1699422316,572552057,808536958,168656433,572530720,1987005728,1852140901,1699422324,572552057,808536958,168656434,572530720,1818576928,1699422320,572552057,808536958,168656441,572530720,1952661792,543520361,1802723668,1936280608,1699422324,572552057,808536958,168656435,572530720,1869762592,1835102823,1936280608,1699422324,572552057,808536958,168656436,572530720,1818838560,1766596709,1260418163,544438629,827031074,226374960,538976266,1766203426,1394632044,1667591269,1852795252,2036681504,2116165747,909128011,537529726,539107360,1701996868]},{"sector":16,"data":[1919906915,1918115961,1260414309,544438629,827031074,226375472,538976266,1917067298,543520361,1701602643,1869182051,1699422318,572552057,808536958,168656440,1329793549,1312902477,1210078020,223366213,757935370,757935405,757935405,168635693,1701603654,1936280608,1699553396,225670510,538976266,1766203426,1293968748,544566885,843677218,226374960,538976266,1884233762,1852795252,1699553395,572552558,808601982,168656434,572530720,1701402144,1699553399,572552558,808601982,168656435,572530720,1701991456,1699553381,572552558,808601982,168656436,572530720,1818576928,1699553392,572552558,825379198,168656432,1917848077,1634887535,1766596717,1293972595,1937075813,538970637,1176511008,543517801,1970169165,1233003040,2117152818,538970637,1327505952,1869182064,1293972334,544566885,843677218,226374192,538976266,1767252002,1293973349,544566885,843677218,226375984,538976266,1699225634,1293971564,544566885,843677218,226373681,1443499274,544695657,1701995347,1293971045,1937075813,538970637,1142956576,1819308905,1293973857,544566885,843677218,226375472,538976266,1767252002,1293973349,544566885,843677218,226375728,538976266,1699225634,1293971564,544566885,843677218,226373681,1342835978,1162039122,1163023684,1162354771,168644684,757935405,757935405,757935405,221064493,538976266,1631723554,543385971,1668248144,1920296037,572552037,808538750]},{"sector":17,"data":[168656432,572530720,1818838560,1766596709,1344304243,1701015410,1701999972,2116165747,825241938,537529726,539107360,1735357008,544039282,1953720652,1869762592,1969513827,544433522,827489826,226374192,538976266,1968316450,1852403310,1917853799,1634887535,572552045,808538750,168656435,572530720,1752452896,1293972069,1329868115,1750278227,543976549,1668248144,1920296037,572552037,808538750,168656436,1397557773,1397703725,1162367776,1109412940,1128878913,1162354771,168644684,757935405,757935405,757935405,757935405,757935405,757935405,538970637,1461723680,1868786789,1948280173,1397563503,1397703725,1701335840,572550252,808526974,168656432,572530720,1852132640,1629516661,1126196334,1634561391,544433262,824475170,226374448,538976266,1766072354,1735355489,2020557344,572552037,808526974,168656437,572530720,1818838560,1766596709,1629516915,1344300142,1919381362,1277193569,544502633,824475170,226374705,538976266,1766203426,1277191532,544502633,1919252047,2003134838,830349856,168656462,572530720,1869762592,1835102823,1936280608,1984897140,1769370213,572553061,959465854,168656441,572530720,2003781664,544175136,1986094412,1397563493,1397703725,1701335840,572550252,842081406,168656437,1398082061,541544009,1347175752,757926413,757935405,757935405,538970637,1377837600,1702195557,1852404851,1699225703,1142976620,1667592809,544828532,826834466]}],[{"sector":1,"data":[226373680,538976266,1934958626,543649385,1886152008,1953841696,1936617332,1216225824,2117218353,538970637,1428169248,1735289203,1818576928,1699553392,1126200686,1634561391,544433262,826834466,226374448,538976266,1866997794,1869881463,1634028576,1092644466,1953853282,760433952,542330692,1818585171,2116165740,875573576,222314622,554306826,222306642,1869762570,1969513827,225666418,1158286602,543712097,1948280431,1713399144,1869376623,1735289207,1886352416,544433001,1953394531,1936615777,1814061344,544502633,1881171567,1701015410,1701999972,168636019,1867778573,1701147424,1814061344,544502633,1881171567,1701015410,1701999972,168639091,757074445,1970226208,761621602,1667853411,1752440939,1869881445,778266992,168626701,168653391,757074445,1701990432,1411412851,1948271169,1702043759,1952671084,1701344288,1886352416,2032165737,1998615919,745827937,1684955424,1701344288,1919950958,225669989,538976266,1163152965,168635986,538970637,1109402144,1667855201,1869762592,1969513827,544433522,827489826,226373680,538976266,1766203426,1277191532,544502633,1668248144,1920296037,572552037,808538750,168656433,572530720,1869762592,1835102823,1936280608,1917853812,1684366191,1936028277,1383997984,2117218353,538970637,1377837600,1768844917,1344300910,1919381362,544435553,827489826,226374448,538976266,1951342626,544367976,1143821133,1394627407,1819043176,1869762592]},{"sector":2,"data":[1969513827,544433522,827489826,1082012720,218762560,1819231754,1769434988,1763731310,826679411,1818576928,1663574128,1702129263,1932358776,1769172581,1702259060,1868963881,1701650546,745764206,1836016416,1684955501,1679830131,1869373801,1868701799,745760120,1953525536,1936617321,1868767276,1851878765,1969365092,1852798068,1629498483,1830839406,1634956133,745760103,544106784,543976545,2003134838,1852383347,1685417059,543649385,543516788,1886152008,1852405536,544698212,1702065257,221144684,755633418,757935405,757935405,757935405,757935405,757935405,1380986157,1095911247,1229725773,1176523859,1162354737,757944396,757935405,757935405,757935405,221064493,554306826,1145589072,1295065377,1075921992,1766197773,1293968748,225799781,1493830922,1663071599,1965059681,1663067507,1634561391,544433262,1948282479,1176528232,543517801,1970169197,544175136,744776801,1701867296,1663052910,746156143,1818584096,744846437,1684955424,1634231072,543516526,543516788,1886351984,1769239141,1864397669,1919950950,1634887535,1953046637,544435557,543452769,1970238055,539915120,544567129,544104803,1869835361,1684300064,1818846752,1948283749,1919361135,1936749935,1684955424,1634231072,543516526,543516788,1701081711,1852383346,1768453920,1881172067,1919381362,1763732833,1936549236,1684955424,1869768480,544436341,543519329,1953720684,539911269,1629515337,1953064036,745434985]},{"sector":3,"data":[1970239776,1851876128,1769304352,1397563508,1397703725,1701335840,539782252,1914729071,1629515381,1869770784,1835102823,222314542,554306826,1094798672,1295065377,1075921217,1699613197,1866670199,1851878765,218762596,1684291850,543236211,544695662,1970238055,1919885424,1869770784,1835102823,1702127904,1869881453,1701344288,1920295712,1953391986,1931508076,1667591269,543450484,1970238055,168636016,1699875341,1702125932,1917853796,1684366191,1936028277,538970637,1092624928,1852400740,1851859047,1749229668,1768386145,1344300910,1919381362,1193307489,1886744434,2116165747,808464713,537529726,539107360,1768186945,1344300910,1919381362,1226861921,1936549236,544175136,1735357008,544039282,1970238023,572552048,808536446,1077968434,168626701,1396977953,222306643,2003127818,1869762592,1835102823,1784827680,544498533,1818323268,1109419887,168654959,1850280461,1768453152,1768169587,1735355489,2020565536,1870209068,1633886325,1751326830,1702063983,1701345056,1919248500,1970239776,1851881248,1869881460,1701995296,543519841,1701716065,1919950967,1634887535,1953046637,1864396133,543236210,544695662,1970238055,1394617968,1667591269,1768235124,1919248500,1869762592,1835102823,1702119712,1919885421,1869762592,1835102823,1869760288,539783285,543452769,1869572195,1948280179,1327523176,1969365067,1852798068,218762542,1881161994,1919381362,1763732833,544040308,1953394531,1936615777]},{"sector":4,"data":[1635021600,1965913202,1852383344,1970435187,1869182051,1713402734,1629516399,1869770784,1835102823,1950949422,1847620391,1948284015,1881171304,1919381362,1713401185,778398825,168626701,1919950913,1634887535,1919361133,544241007,1629516649,1819239200,1952671084,544108393,1881171567,1919381362,1763732833,1936549236,544106784,543516788,1735357040,544039282,1953720684,218762542,544166922,544499047,1886152008,544108320,1768169569,1735355489,2020565536,1953525536,745434985,1818587936,544498533,1629516905,1881171054,1936942450,774981152,168626701,1634493778,543450484,1668248144,1920296037,168653669,572530720,1684291872,543649385,543452769,1851877443,1735289191,1869762592,1835102823,1869760288,544436341,826900002,226373680,538976266,1681989666,1735289188,1869762592,1835102823,1702119712,1948283757,1917853807,1634887535,1917263981,1936749935,1233003040,2117218353,168640576,1344342541,559043396,1396985889,222306643,2003127818,1869762592,1835102823,1702119712,1919885421,2003127840,1869762592,1835102823,1869760288,168652917,1699940877,1952671084,1953064224,544367976,1735357008,544039282,1835365449,544370464,1735357008,544039282,1970238023,1629498480,1663067246,1936682856,1752440933,1263476837,1953849888,778989428,168626701,1919950913,1634887535,1953046637,1663069541,1635020399,544435817,1918989427,1886727540,1936615712,1668641396,1852795252,1868963955,543236210]},{"sector":5,"data":[1735357040,778920306,661932320,1869488243,1752440948,1919950949,1634887535,1768300653,221144428,1091177738,1869770784,1835102823,1869768480,1763733621,543236211,1819045731,1769235301,1864396399,1919950950,1634887535,1953046637,544435557,1948282473,1881171304,1919381362,1814064481,779383657,168640576,1344342541,559493956,860107041,222306641,1684291850,1869762592,1835102823,1634288672,543649644,225996610,1225395466,1752440942,1679848297,1869373801,1868701799,2032151672,1663071599,1948282465,543518841,1868983913,1952542066,544108393,1970233953,1752440948,1919950949,1634887535,1953046637,2032168293,1629517167,1629513074,1852400740,1495281255,1830843759,544502645,1701869940,1847615776,543518049,544370534,543516788,1735357040,544039282,1835365481,1684955424,1663066400,1634561391,1948279918,544498024,1918989427,1948283764,1881171304,1919381362,221146465,1376390410,1952541797,1344300133,1701015410,1701999972,538970637,1092624928,1852400740,1917853799,1634887535,1950949485,544435557,1344302964,1919381362,1193307489,1886744434,2116165747,842019145,218762622,544166922,544499047,1886152008,544108320,1768169569,1735355489,2020565536,1953525536,745434985,1818587936,544498533,1629516905,1881171054,1936942450,774981152,168640576,1344342541,558969668,977555489,222306641,1869762570,1835102823,1953059872,1109419372,168654959,2035550733,1629513072,1835101728,1868963941]},{"sector":6,"data":[1870209138,1881174645,1919381362,1763732833,544040308,1948282473,1344300392,1919381362,1411411297,1701606505,2020565536,1950949422,1851876128,1852793632,1852399988,544240928,840986484,1751326771,1667330657,1936876916,1852385312,1685417059,543649385,1851878498,1886593131,1936024417,1075850793,218762560,1146102026,555831859,1379091505,1146102049,1075925562,1866664461,1851878765,1109422948,168654959,2035550733,1948280176,1663067496,1634561391,1948279918,544498024,1918989427,1948283764,1881171304,1919381362,539782497,1818455657,1852400757,1851859047,1634738297,1701667186,1936876916,1950949422,1851876128,1852793632,1852399988,544240928,840986484,1663055157,1634885992,1919251555,1764237427,1970037614,1735289188,1634492960,1931504494,1701011824,221129075,1376390410,1634496613,1650550115,1344300396,1835102817,1919251557,755633523,757935405,757935405,757935405,757935405,757935405,1326058797,1797285230,543452777,1881171567,1835102817,1919251557,1970239776,1851876128,1701868320,2036754787,544434464,1701978209,1667329136,1818386789,1634738277,1701667186,544367988,1952540788,1818588192,1293972332,1329868115,1750278227,543976549,1679847284,1819308905,1629518177,1634296864,543649644,544763746,1852139639,1701344288,1869770784,1835102823,1635021600,779318386,168626701,544370502,1835104357,744844400,543582496,544567161,1953390967,760433952,542330692,1818585171,1869881452]},{"sector":7,"data":[1869770784,544501869,544567161,544370534,1768300641,1948280172,1886330991,1998614117,544105832,544567161,1918989427,1766662260,1936683619,544499311,1685221207,1870209068,1633886325,1937055854,1752440933,1868963941,2003790956,543649385,1918989427,544241012,1835888483,979660385,168626701,538976288,1919907616,824516708,168626701,1163153230,1750343738,1701978213,1667329136,1818386789,1634738277,1701667186,544367988,1953723757,543515168,2004116834,544105829,1851858993,775495780,1919244832,1851859055,808525924,1818851104,1869488236,1870078068,539913074,544370502,1751343461,1836412448,1818325605,1970239776,1952805664,1397563436,1397703725,1701335840,1998613612,543976553,1886611812,544825708,1768169569,1735355489,2020565536,218762542,1769166090,1293969262,543519343,1851877492,1701728032,1836008224,1684955501,757926413,757935405,757935405,757935405,757935405,757935405,757935405,1493830957,1663071599,1948282465,543518841,1830843233,544829025,1835888483,1935961697,544106784,543516788,1835888451,1935961697,2020565536,544432416,544567161,1701538156,1867784238,1702065440,1919905056,1752440933,1864396385,1663067502,1634561391,539780206,1634755955,1702125938,1667327264,1868767336,1851878765,1769414756,1629513844,1835365152,1819239273,673214063,539896123,1919248468,1970085989,1646294131,543236197,1667330163,1852776549,1667327264,1769152616,1864394084,1752440934]},{"sector":8,"data":[1702043749,1868786029,778989420,168626701,1634493778,543450484,1768976212,537529699,539107360,1768318276,1735289198,1701344288,1869762592,544501869,1818323268,1109419887,572553327,927223934,1077968471,168626701,1679835716,1819308905,544438625,1852139639,1869112096,543519599,1735357040,544039282,1835365481,1344342541,559366980,1175063872,543517801,1818323268,1109419887,168654959,1850280461,1768453152,1768169587,1735355489,2020565536,2037653548,1948280176,1847616872,543518049,1948280431,1713399144,543517801,544567161,1953390967,1701344288,1869770784,1835102823,544175136,1852141679,1750540334,2032168549,1663071599,1936682856,1752440933,1263476837,1953849888,745434996,1701344288,1869770784,1835102823,1818851104,1953701996,544502369,543452769,1852141679,1701344288,1818846752,168636005,1867778573,1952802592,1818576928,1852776560,1679843616,1869373801,1868701799,1886331000,1852795252,1702043692,1952671084,544500000,543452769,1936028272,826679411,222314542,554306826,1463239760,168640545,1768318276,1735289198,1701344288,1869762592,544501869,1818323268,1109419887,168654959,1868106253,1633886325,1701060718,1701734758,1701344288,1634296864,543649644,544763746,1952540788,760433952,542330692,1818585171,1768169580,1634496627,1998615417,544105832,544567161,1869572195,1948280179,1881171304,1919381362,1763732833,778921332,1970231584,1851876128,1701868320,2036754787]},{"sector":9,"data":[1701344288,1953068064,1864394092,1752440934,1768169573,1735355489,2020565536,2019893292,1851878512,1919906913,1852383353,1836216166,1869182049,1948265582,1881171304,1886220146,1701650548,1734439795,1629498469,1881171054,1835102817,1919251557,1752440947,1629516897,2003790956,1970239776,544175136,1852141679,1818846752,1998615397,1869116521,1965061237,1735289203,1679843616,1869373801,1868701799,168636024,1867778573,1952802592,1818576928,1852776560,1679843616,1869373801,1868701799,1886331000,1852795252,1702043692,1952671084,544500000,543452769,1936028272,826679411,222314542,554306826,1362576464,168640545,1684957527,1411413871,1701606505,2020557344,168626701,1701869908,544370464,1953064037,1701344288,1953068064,1864394092,1752440934,1768169573,1735355489,2020565536,1634235424,1870209140,1918967925,1701060709,1768843622,1076782958,218762560,1146102026,1075925559,1917848077,1634887535,1850286189,1836216166,1869182049,1866604654,218762616,543574282,544567161,1701538156,1870209068,1633886325,2037653614,1864394096,1684349042,1948284009,544503909,1952540788,1818851104,1885413484,1918985584,544497952,543516788,544239476,1948280431,1679844712,1869373801,1868701799,1077948024,168626701,927223841,222306643,1869762570,544501869,1936942413,543516513,225996610,1225395466,1870209126,1768693877,539780459,544567161,544104803,1701869940,544370464,1953064037,1881170208,1886220146]},{"sector":10,"data":[1868963956,1752440946,1702109285,1646294136,539916399,544370502,1835104357,744844400,1701344288,1936026912,1701273971,1176641580,543517801,1159753588,1064593764,1919950882,1953525103,1870209139,1869881461,1887007776,543236197,1701603686,1701667182,544106784,543516788,1954047348,2020565536,222314542,554306826,1412908112,168640545,1634100548,544500853,1634885968,1702126957,1109422962,168654959,1868106253,1633886325,1886593134,1718182757,543236217,1634100580,544500853,1634886000,1702126957,1931488370,543712117,1629516641,1818846752,1835101797,1948265573,544498024,1819044215,1886413088,544366949,1948282473,1344300392,1886220146,1768169588,1735355489,2020565536,1701345056,1702258030,1870209138,1751326837,1702063983,1701344288,1869770784,1835102823,1702127904,168636013,1750338061,543519333,543519329,544175988,1634886000,1702126957,2032169842,1663071599,1965059681,1948280179,1886330991,1713401445,1936026729,1919509536,1819566949,168636025,1143821133,1394627407,1819043176,1818851104,1970479212,1936025447,1752440948,1768300645,1931502956,1768121712,1684367718,544825888,543516788,1819045734,1852405615,1634738279,1701667186,1936876916,218762554,544166922,1734833523,544502629,538976288,538976288,538976288,538976288,1886999584,1752440933,1881174889,1835102817,1919251557,757926413,757935405,757935405,538976288,538976288,538976288,538976288,757932064,757935405]},{"sector":11,"data":[757935405,757935405,757935405,1409944877,1713399144,543517801,1701602675,1684370531,1752631821,2032168549,1931507055,1953653108,1701344288,1919945229,1634887535,538976365,538976288,538976288,538976288,538976288,538976288,538976288,168650277,1750338061,1634738277,1701667186,225600884,1702065418,1752440932,1634476133,168653939,1701669236,1701344288,1869770784,1835102823,1635191309,1937055859,538993765,538976288,538976288,538976288,538976288,538976288,538976288,1077963813,168626701,860114977,1344348499,559102532,860107041,222306643,1635013386,1886745714,1919501344,1869898597,1109424498,168654959,1868106253,1633886325,2037653614,1948280176,1881171304,543716449,1948282740,1679844712,1667592809,2037542772,1634235424,1868767348,1767994478,1948283758,1679844712,543257697,1701603686,1752440947,1919950949,1634887535,1937055853,221148005,1409944842,544434536,1701996900,1919906915,1769414777,1646292076,1836016485,1752440933,1969430629,1852142194,1768169588,1952671090,544830063,1852139639,1970239776,1869112096,543519599,543516788,1735357040,544039282,1835365481,222314542,554306826,1412645968,1144070433,555832371,1413104720,168640545,1819308097,1952539497,544108393,1919903827,1953850228,2036681504,2020557344,168626701,544567129,544104803,543450209,1663070831,1735287144,543236197,1919903859,1953850228,2036689696,1836016416,1634625890,1852795252,1919903264]},{"sector":12,"data":[1701344288,1869770784,1835102823,1750540334,2032168549,1663071599,1936682856,1752440933,1850024037,1701601889,1935758368,2001936491,1701867617,1868767346,1851878765,2032151652,1663071599,1965059681,1948280179,1931502952,1953656680,544503139,544826731,1651339107,1952542313,544108393,1830842228,543520367,1948282740,1881171304,1919381362,1763732833,1953046630,544434464,1852732786,778530409,1701336096,1869116192,1969452146,1701519476,1868832889,1847620453,1931506799,1953653108,1701344288,1869770784,1835102823,218762542,544166922,1634038371,1948280180,1931502952,1953656680,544503139,544826731,1651339107,1952542313,745434985,1701998624,1696625523,1701344361,1213407346,743720521,1381253920,1864379468,1279336562,1629498452,1629512814,1952803872,779249012,1952858400,2032169573,1663071599,1952540018,1953046629,1953046572,1818851104,1885413484,1918985584,2019913248,1869881460,1701344288,1869770784,1835102823,1835101728,1852383333,1701344288,1952661792,543520361,1802723668,1936280608,168636020,1330514445,540689748,1701670739,2036689696,1836016416,1634625890,1852795252,1918967923,1869488229,1986076788,1634494817,778398818,544162848,544501614,543519605,543516788,1819045734,1852405615,1868767335,1852400237,1869182049,221934446,1124732170,726422100,1124732227,726422100,1124732237,726422100,1124732233,726422100,1124732232,726422100,1124732251,726422100,1864900661,1752440942]},{"sector":13,"data":[1701519461,1684107385,1393167657,1413892424,1381253931,223161164,1229476618,1126913094,726422100,1393167689,1413892424,1381253931,222833484,1229476618,1126913094,726422100,1393167707,1413892424,1381253931,540355404,544108328,543516788,1887004011,220816481,1376390410,1952541797,1344300133,1701015410,1701999972,538970637,1092624928,1852400740,1917853799,1634887535,1950949485,544435557,1344302964,1919381362,1193307489,1886744434,2116165747,842019145,222314622,554306826,1429423184,1144070433,555832627,1429881936,168640545,1937072464,1715544165,544367988,1953069125,1701331744,1109420899,168654959,1716062733,1970239776,1818587936,544498533,1936287860,1701339936,1646291811,539785327,1852139639,1970239776,1769304352,1752440948,1919950949,1634887535,1397563501,1397703725,1869770784,1937010797,1970239776,544175136,1936028272,1851859059,1701519481,1869881465,1952805408,544109173,1293971316,1329868115,1750278227,778857573,543574304,544567161,661548900,1702043764,1952671084,745826592,1970239776,1952805408,544109173,1701670249,1952541028,544828517,1293971316,1329868115,1750278227,543976549,1852139639,1970239776,1769304352,1752440948,1919950949,1634887535,168636013,1632635405,1852404597,1936269415,1702065440,543978854,2032166505,1998615919,544501345,1914728308,543449445,1954047348,1634235424,1870209140,1881174645,1919381362,1679846753,1819308905,544438625,1702127201]},{"sector":14,"data":[1953046642,1852401184,1701344105,1970413683,1852403310,1646275687,1919903333,1870209125,1701978229,1852994932,544175136,1143821133,1394627407,1819043176,222314542,554306826,1446200400,1144070433,555832883,1446659152,168640545,1936941392,1685221239,2020557344,168626701,544567129,544104803,1701869940,1881170208,2004054881,543453807,1948282997,808591471,1634231072,1952670066,544436837,1668180264,1768191340,1646290798,1802396012,1634759456,695428451,1716068398,1970239776,1852793888,1998615591,544501345,1965059956,1629513075,1935765536,1919907699,1814047844,1702256997,1701344288,1935757344,1919907699,1868701796,1835343992,779711600,168626701,1634738241,1870099315,1881171058,1702129522,544437347,1919950945,1634887535,1953046637,1646292325,1768693881,1769236845,1629513582,1936024419,1869881459,1869116448,1998611827,1797287784,544698222,543516788,1936941424,1685221239,1715544110,544367988,544567161,1851877475,1629513063,1935765536,1919907699,1998597220,1702127986,544500000,1853321060,1684955424,1701145376,1953046640,544106784,1634934881,1881171302,1701011820,541138990,1818323300,1646290799,1998616687,543976553,1836020336,2032170096,1713403247,1948283503,1881171304,2004054881,543453807,1919252069,1769218169,2032166253,1965061487,1948280179,1881171304,1919381362,1763732833,778921332,168640576,1344342541,559559492,977555489,222306650,1986281738,1701015137,1967267940]},{"sector":15,"data":[1852798068,168626701,1886611780,1937334636,1869504800,1919248500,1634296864,543649644,544763746,1919248503,1870209125,1633886325,1886593134,1718182757,1684086905,1769236836,1818324591,1869770784,1953654128,779314537,168640576,1344342541,559757380,1091177792,1851881060,543450467,1818323268,1109419887,168654959,1850280461,1768453152,1768169587,1735355489,2020565536,1870209068,1633886325,1684086894,1699225700,1948282988,544503909,543452769,1667592307,544826985,1869440365,539785586,1701079414,1869422703,539780452,1702061426,1684371058,1869116192,1969452146,1701519476,539784057,543452769,1735357040,544039282,1953068915,1852401763,168636007,1867778573,1952802592,1818576928,1852776560,1679843616,1869373801,1868701799,1886331000,1852795252,1702043692,1952671084,544500000,543452769,1936028272,826679411,222314542,554306826,1362314320,1146102049,555831608,1429226576,1146102049,1075926338,1699219981,1411412076,544503909,225996610,1493830922,1663071599,1948282465,543518841,1948282997,892477551,1751326773,1667330657,1936876916,1852385312,1685417059,543649385,1851878498,1886593131,1936024417,1718558761,1818576928,1852383344,1836216166,1869182049,1868963950,1752440946,1919950949,1634887535,1919361133,544241007,1763734127,778921332,543574304,544567161,661548900,1635197044,1948284014,1937055855,1699225701,1948282988,745830501,1634036768,1948280182,1210082664,544238693]},{"sector":16,"data":[1954047316,2020565536,1886217504,221149556,1275727114,543518313,1634038338,168653675,757935405,757935405,221064493,544098570,543516788,1886152008,2019906592,1868701812,1881156728,1936942450,543649385,1163152965,1868832850,661549925,1852383348,1633904996,1629513076,1852402720,1919033445,778789221,168626701,1763733332,1667851374,543519841,1768693857,1646290286,1801545074,218762554,539828234,1701869908,1663066400,1952805473,694036512,1819239968,1702326124,2036473956,1701344288,1952803872,544367988,168636013,1767246349,1852405605,1752440935,1699225701,1411412076,225736805,757935370,757935405,757935405,757935405,757935405,168635693,544567129,544104803,1684104562,1768453152,1699225715,1948282988,544503909,1931508066,1667591269,1735289204,1701344288,1869770784,1835102823,1702127904,1919885421,1869768480,1629515893,1881171054,1936942450,543649385,1076769094,218762560,1146102026,1075925560,1866664461,1852143214,1852795252,1293970529,1919905125,1112219769,1902465568,1701996917,1866604644,218762616,1970231562,1851876128,1701868320,2036754787,544106784,1869375851,1702132066,1752440947,1768759397,1970104686,1835081837,1953396079,543584032,1869440365,1914730866,1769304421,543450482,1914728308,1948282485,544434536,1735357040,544039282,1852139639,1769174304,1948280686,543912801,1885435763,1735289200,1750343726,1701060709,1819631974,1635131508,543520108,824210281]},{"sector":17,"data":[221132850,1225395466,1701584998,1830843251,1919905125,1936269433,1635148064,1650551913,1998611820,544105832,544567161,1918989427,543236212,1735357040,745365874,760433952,542330692,1818585171,1769414764,1679846508,1819308905,1629518177,1936026912,1701273971,222314542,554306826,1396196432,168640545,542330200,1869440333,1260419442,1699881026,1919513969,1109419109,168654959,1868106253,1633886325,1886593134,1718182757,1852383353,1818848032,1954112111,1948283749,1830839656,1835626089,1629515125,1853189997,1718558836,1954047264,1701080677,1701650532,2037542765,1902473760,1701996917,1869881444,1853190688,1768453152,1919950963,1634887535,1752637549,1965059685,1735289203,1935766560,2004033643,1768976481,539912046,543516756,1634100580,544500853,1970037110,1936269413,1919253024,168636015,1716062733,1936026656,1701650547,2037542765,544434464,1767994977,1818386796,1752637541,2032168549,1931507055,1953653108,1881170208,1919381362,539782497,1143821133,1394627407,1819043176,1818851104,1768169580,1634496627,543236217,1936942445,778397537,168640576,1344342541,559167556,1477053760,1293964109,1919905125,1112219769,1835617312,1109423209,168654959,1868106253,1633886325,1886593134,1718182757,1852383353,1818848032,1954112111,1948283749,1830839656,1835628641,1629515125,1853189997,1718558836,1954047264,1701080677,1701650532,2037542765,1634235424,1633886324,1700929646,1702065440,2036473956]}],[{"sector":1,"data":[1701344288,1869770784,1835102823,1750343726,1864397673,1869182064,1868767342,1869771886,1948283756,1629513064,1853189997,1718558836,1835363616,544830063,1952540788,1851876128,543515168,1885435763,543450480,1948285282,1881171304,1919381362,539913569,543516756,1634100580,544500853,1970037110,1936269413,876098336,544108320,1953724787,544435557,1952540788,1986095136,1952522341,1634036768,1948284019,544434536,1751348589,1835363616,779711087,1752452896,1769435749,539780467,543516788,1634100580,544500853,1970037110,1936269413,1701344288,1953461280,1629514849,1853189997,1718558836,1954047264,1701080677,1701650532,2037542765,222314542,554306826,1429750864,1146102049,1075926584,1767246349,544171364,1701080909,1953517344,225341289,1409944842,544434536,1769238639,1914728047,1919251301,544433526,1869440365,1713404274,1931506287,1701147235,1768169582,1634496627,1852383353,1836216166,1869182049,1969496174,1735289202,1935766560,2004033643,1768976481,539912046,1635087189,544828524,543516788,1869440365,1914730866,1919251301,543450486,1411414370,544503909,1701080941,544434464,1970237029,539781223,544503138,544567161,544825709,1684366702,1919905056,1701650533,2037542765,543582496,544567161,543519329,1852732786,543649385,1195581537,1769349185,544171364,1885430881,779249012,168626701,1701602643,1948284003,544434536,1769238639,538996335,168650313,757935405,757935405]},{"sector":2,"data":[757935405,757935405,538979629,168635693,1954047316,538976288,538976288,538976288,538976288,543516756,1735357040,544039282,1936618866,544106784,1954047348,1685024032,1126182501,1769172591,225600868,538976266,538976288,538976288,538976288,538976288,1769174304,1948280686,544503909,1701080941,543582496,543516788,1735357040,544039282,1936027492,225716078,538976266,538976288,538976288,538976288,538976288,1701146144,1869881444,1936286752,2036427888,1634887456,1667852400,1226845811,1769414772,1931504748,1684366704,538970637,538976288,538976288,538976288,538976288,1768169504,1931504499,1886413175,778530409,2019906592,1869422708,1763730788,1752440947,1701060709,1819631974,537529716,538976288,538976288,538976288,538976288,1864376352,1869182064,168636014,1917258253,1768452193,538997603,538976288,538976288,1750343712,1919950949,1634887535,1970413677,1763734382,1919361134,1768452193,1830843235,778396783,1768444960,537529715,538976288,538976288,538976288,538976288,1864376352,1869182064,1936269422,1701146144,543450468,2037149295,543582496,544567161,543519329,1852732786,224882281,538976266,538976288,538976288,538976288,538976288,1126195488,1981825351,1868915817,1633968416,1919251568,222314542,554306826,1463305296,168640545,1986359888,544501349,1735357008,544039282,1953068883,1126197347,1801676136,2020557344,168626701,1852994900,1718558835]},{"sector":3,"data":[1635000422,1931504499,1886413175,543649385,1852139639,1701344288,1869770784,1835102823,544434464,1852732786,778530409,1701336864,1752440942,1663071081,1801676136,2020565536,544434464,1701602675,1684370531,1870209068,1970086005,1897952371,544500085,543516788,1735357040,544039282,1914728308,1920300133,1869881454,760433952,542330692,1818585171,1077948012,168626701,944001057,1344348504,559495236,944001057,1344348506,559429700,944001057,1344348505,559560772,1376390464,1919251301,1394632054,1953656680,544503139,1937335627,1701331744,1109420899,1936029807,168626701,1852994900,1718558835,1752440934,1886593125,1718182757,543450473,1919903859,1953850228,2036689696,1852383347,760433952,542330692,1818585171,1869815916,1634235424,1752440948,1919950949,1634887535,1633886317,1937055854,1752440933,543519599,1937335659,218762542,1818579722,1769235301,538994542,1946815776,544434536,538976288,1411391520,1936618101,1717989152,1701344288,1869116192,1969452146,1869881460,757926413,757935405,539831597,757932064,757935405,757935405,757935405,757935405,757935405,221064493,1414283530,1111577643,538976288,1735349280,1852402791,1700929639,1701148532,2004099182,1919950959,1634887535,221148013,1091177738,1160467532,538985299,1142956064,1819308905,1852406113,1752440935,1701716069,1881175160,1919381362,221146465,1124732170,726422100,541283141,1377837088,1920300133,1735289198]},{"sector":4,"data":[544175136,1143821133,1394627407,1819043176,1869768224,543236205,1735357040,778920306,168640576,1344342541,559563332,1111765281,222306646,1684291850,1869760288,1142976629,1869373801,1866604647,218762616,544098570,1936287860,1634296864,543649644,746090338,1970239776,1701868320,2036754787,1718511904,1634562671,1852795252,1868718368,1948284021,1847616872,1730180965,1886744434,1970239776,1701994784,1701995296,1852404833,1495281255,1830843759,544502645,1701869940,1847615776,543518049,544370534,543516788,1970238055,1495281264,1663071599,1629515361,544174956,1701869940,1818576928,1852383344,1836216166,1869182049,1868963950,1752440946,1919361125,745567599,1684955424,1881170208,2004054881,543453807,1814065012,1953066345,1667457312,544437093,1948282740,1730176360,1886744434,218762542,544166922,544499047,1886152008,544108320,1768169569,1735355489,2020565536,1953525536,745434985,1818587936,544498533,1629516905,1881171054,1936942450,774981152,168640576,1344342541,559170116,809783329,222306644,1953059850,1109419372,168654959,2035550733,1629513072,1835101728,1868963941,1752440946,1701716069,1919361143,779122031,1948270880,1701606505,544434464,1970365810,1684370025,1950949422,1851876128,1852793632,1852399988,544240928,840986484,1751326771,1667330657,1936876916,1852385312,1685417059,543649385,1851878498,1886593131,1936024417,1077947945,168626701,1111773217,1344348503]},{"sector":5,"data":[559362116,1342836032,2004054881,543453807,225996610,1493830922,1663071599,1948282465,543518841,1634738273,1870099315,1713398898,1948283503,1730176360,1886744434,544106784,543516788,1936941392,1685221239,2020565536,1950949422,1851876128,1852793632,1852399988,544240928,840986484,1751326768,1667330657,1936876916,1852385312,1685417059,543649385,1851878498,1886593131,1936024417,1226845737,1870209126,1868832885,544483182,1953390967,544175136,1818455657,543515765,1634738273,1870099315,539780210,1986094444,1752440933,1632641125,1870099315,1109419122,1696626799,2037674093,218762542,1881161994,2004054881,543453807,1953460848,1937007461,1730175264,1886744434,544825888,1768778092,1735289204,1667457312,544437093,1948282740,1702063976,1869117216,1869507360,1752440951,1634738277,1870099315,539911282,1702127169,1870209138,1751326837,1701277281,1881170208,2004054881,744780399,1769109280,1763730804,1868832884,1629515383,1797284974,544236901,1763734633,543236206,1701208435,1634496544,539911523,1768169537,1735355489,2020565536,1818851104,1919950956,1953525103,1970239776,1919903264,1701344288,1935765536,1919907699,1986338916,544830053,1701669236,1970239776,1702065440,1768453152,1919361139,779122031,168640576,1344342541,558969156,826560545,824254804,222306628,1935757322,1919907699,1766072420,1735355489,2020557344,168626701,544567129,1953723757,1887007776,1752440933,1634738277]},{"sector":6,"data":[1870099315,1646290034,1919903333,1870209125,1633886325,1937055854,1752440933,1881174889,1919381362,1763732833,544040308,1730179695,1886744434,222314542,554306826,1111575888,1295065377,1075921473,1884228109,1126198885,1634561391,168649838,1951599117,1937011297,1881170208,1919381362,1629515105,1629512814,1935745134,1768124275,1684370529,1818846752,1764237413,1752440934,543519333,1864397673,539583854,1679848047,1819308905,544438625,543516788,1953394531,1937010277,543584032,1919361121,779122031,168626701,1634493778,543450484,1668248144,1920296037,168653669,572530720,1701859104,1735289198,1818838560,572552037,858868094,168656433,572530720,1701859104,1735289198,1869762592,1835102823,1869760288,544436341,826900002,1082012466,218762560,1297096970,555828033,1128353073,168640545,2037411651,1836008224,1684955501,168626701,1768976195,1629516645,1869770784,1835102823,1702127904,1869881453,1701344288,1869768480,2032169077,1931507055,1768121712,539916646,1702127169,1870209138,1751326837,1702063983,1701344288,1886339872,1868767353,1851878765,1864379492,544105840,543516788,1970238055,1870209136,1635197045,1948284014,1868767343,1948285296,1881171304,1919381362,1763732833,544040308,539783028,543452769,1852139636,1701998624,1176531827,168635954,1699875341,1702125932,1917853796,1684366191,224752245,538976266,1866670114,1852406128,1917853799,1634887535,1950949485,544435557]},{"sector":7,"data":[543452769,1735357008,544039282,1970238023,572552048,825313662,1077968436,168626701,558057505,1124732224,544829551,1735357008,544039282,1835365449,218762611,1970231562,1701994784,544106784,543516788,1684302189,1864394092,1868767334,1852406128,543236199,1735357040,544039282,1835365481,544175136,1919361121,779122031,168626701,1663070036,1769238127,979727726,168626701,1142959665,1818391919,1818439013,543908713,543516788,1953719652,1952542313,544108393,1970238055,168636016,1344286258,1936942450,775046688,168626701,168653391,774965773,1987005728,1752440933,1702043749,1952671084,544108393,1936880995,1948283503,1752440943,1701060709,1852404851,1869182049,1919361134,544241007,224685665,538976266,1936028272,1313153139,777143636,775031309,1701990432,1176531827,168635954,168626701,1663070036,1701015137,1752440940,1868767333,1851878765,168639076,757074445,1701990432,1159754611,221135699,1376390410,1952541797,1344300133,1701015410,1701999972,538970637,1126179360,1769566319,1344300910,1919381362,1226861921,1936549236,1684955424,1869762592,1835102823,1869760288,544436341,826900002,1082012721,218762560,1297096970,555828289,1145130289,168640545,1701602628,1126196596,1634561391,168649838,1698957837,1702126956,1752440947,1702043749,1952671084,1730176101,1886744434,544370464,1735357040,544039282,1835365481,1869768224,543236205,1970238055,1109405296,1919903333]},{"sector":8,"data":[1701060709,1769235820,1629513582,1869768480,539783285,544567161,1953723757,1818584096,543519845,543976545,1763731055,1881174900,1919381362,1763732833,1936549236,218762542,1818579466,1684370529,1869762592,1969513827,168650098,572530720,1818575904,1852404837,1917853799,1634887535,1950949485,544435557,543452769,1735357008,544039282,1970238023,572552048,825313662,1077968438,168626701,1212436513,824254803,558975044,1141509440,1952803941,1950949477,1142975845,1869373801,1866604647,218762616,543574282,544567161,1953390967,544175136,1701602660,1948280180,1931502952,1667591269,543450484,1735357040,544039282,1835365481,544370464,1970238055,1663052912,1936682856,774971493,168626701,2032166473,1679848815,1869488239,1635197044,1948284014,1701060719,1702126956,1701344288,1818587936,1702126437,1919950948,1634887535,1953046637,1864396133,1919361138,745567599,1869112096,543519599,1864900658,1919950962,544437093,692278085,544175136,1668178275,1948281957,1679844712,1952803941,544108393,543452769,1970562418,1948282482,1752440943,1919950949,1634887535,1768693869,221148275,1376390410,1952541797,1344300133,1701015410,1701999972,538970637,1142956576,1952803941,543649385,1735357008,544039282,1835365449,1851859059,1917853796,1634887535,1917263981,1936749935,1233003040,2117480753,168640576,1344342541,558186829,1095577889,222306629,1869762570,1953654128,544433513,1835888451]},{"sector":9,"data":[224685665,1175063818,1629516399,1869770784,1835102823,1702127904,1948265581,544434536,1835888483,543452769,1667592307,1701406313,1752440947,1769218149,744844404,1701344288,1836016416,1684955501,1634235424,1953702004,1937011297,1701344288,1869770784,1835102823,1752440876,1953701989,1970565729,1768169584,1952671090,544830063,544370534,543516788,1735357040,544039282,1965059956,539780467,1629515361,1768714352,1769234787,1931505263,1953656680,544503139,746153323,1818576928,1702109296,539784312,1634738273,1870099315,539780210,543452769,1701344367,1919950962,1919250543,1936025972,218762542,1919895050,1730175264,1886744434,1953046572,1701868320,1768319331,1948283749,1948280168,1701606505,1699225644,1948282988,745830501,1684955424,1935765536,1919907699,1935745124,1852270963,1948279909,1752440943,1730180193,1886744434,218762542,1818579466,1684370529,1869762592,1969513827,225666418,538976266,1681989666,1735289188,1684955424,1634222880,1852401518,1917853799,1634887535,1917263981,1936749935,1233003040,2117087281,538970637,1126179360,1735287144,543649385,1735357008,544039282,1835365449,1869762592,1953654128,544433513,826900002,1082012720,218762560,1146102026,1075927354,1917848077,1634887535,1950949485,1344302437,1701867378,1701409906,1766072435,1735355489,2020557344,168626701,1948282441,544434536,1818323300,1646290799,539785327,544567161,544104803,1667592307,544826985]},{"sector":10,"data":[1868983913,1952542066,544108393,1970233953,1752440948,1702043749,1952671084,1881171045,1919381362,1763732833,778921332,1970231584,1851876128,1634231072,543516526,544829025,1629516399,1864395884,1752440934,1852383333,1836216166,1869182049,1768169582,1634496627,543450489,1948282473,544434536,1818323300,1646290799,539916399,544567129,1953723757,1668180256,1701082476,1847615776,543518049,544370534,543516788,1735357040,544039282,1835365481,1684955424,1663066400,1634561391,539780206,1818455657,1852400757,1851859047,1634738297,1701667186,1936876916,1752440876,1931506785,1953653108,1752440947,1919950949,1634887535,168636013,1699875341,1702125932,1917853796,1684366191,224752245,538976266,1681989666,1735289188,1684955424,1634222880,1852401518,1917853799,1634887535,1917263981,1936749935,1233003040,2117087281,168626701,1730178900,1210086501,544238693,1629515375,1634296864,543649644,544763746,1769238639,539782767,1701602675,1763734627,1851859060,1919950948,544437093,1076769094,218762560,1146102026,555833904,1380074545,168640545,1735357008,544039282,1970238023,1917853808,1919250543,1936025972,1634288672,543649644,225996610,1225395466,1752440942,1679848297,1869373801,1868701799,2032151672,1663071599,1663069793,1735287144,1752440933,1852383333,1836216166,1869182049,1650532462,544503151,543516788,1701602675,1684370531,1869768480,539914357,544567129,544104803,1851877475]},{"sector":11,"data":[1629513063,1864399214,1818304626,1718558828,1701344288,1718511904,1634562671,1852795252,1936286752,2036427888,1763730533,1752440942,1679848297,1869373801,1868701799,1495281272,1830843759,544502645,1818455657,543515765,1769218145,543517812,544370534,543516788,1970238055,168636016,1699875341,1702125932,1917853796,1684366191,224752245,538976266,1749229602,1768386145,1344300910,1919381362,1226861921,544040308,1886351952,1769239141,572552037,808536446,168656436,1867778573,1952802592,1818576928,1852776560,1679843616,1869373801,1868701799,1886331000,1852795252,1702043692,1952671084,544500000,543452769,1936028272,826679411,222314542,554306826,1178684752,1295065377,1075922497,1699875341,1701081711,1866670194,1851878765,218762596,1987005706,1948283749,1931502952,1667591269,543450484,1735357040,544039282,1835365481,544370464,1970238055,1919295600,1763732847,1663071092,1701999221,1814066286,1952539503,544108393,1948282740,1814062440,1952539503,544108393,544567161,1667592307,779708009,1952858400,1663070821,1936682856,543649385,1936287860,1836016416,1684955501,1937055788,1752440933,1918967909,544698226,1937335659,544175136,1702260589,544175136,543516788,544695662,1633906540,1852795252,1851858988,1752440932,1881173605,1936942450,1414415648,539906629,544567129,544104803,1869835361,1970234400,761621602,1667853411,1752440939,1701716069,1869357175,1769234787,221146735]},{"sector":12,"data":[1376390410,1952541797,1344300133,1701015410,1701999972,538970637,1377837600,1685221221,1852404325,1917853799,1634887535,1950949485,544435557,1629515369,1869762592,1835102823,1869760288,572551285,858868094,1077968435,168626701,559040545,1376390464,1685221221,1344303717,1919381362,1226861921,1936549236,1684955424,1869762592,1835102823,1869760288,225669237,1493830922,1629517167,1763730802,1752440942,1768759397,1701602404,543584032,1769369453,1948280686,1931502952,1667591269,543450484,1735357040,544039282,1835365481,544370464,1970238055,1869881456,1847615776,1814067045,1952539503,544108393,1948282473,1881171304,1919381362,1814064481,779383657,218762528,544166922,1953394531,1702194793,218762554,539828234,1651863364,1663919468,1801677164,1701344288,2003136032,1668246560,1869182049,168636014,1917782541,168626701,1293954336,543520367,543516788,1701602675,1869182051,1969430638,1919906674,544175136,543516788,544695662,1633906540,1852795252,1851858988,1752440932,1881173605,1936942450,1414415648,221139525,537529610,1397563424,1397703725,1701335840,1763732588,1919251310,1948283764,1881171304,1919381362,1763732833,544040308,1730179695,1886744434,544497952,543516788,225928558,538976266,1633906540,1852795252,218762542,1409944842,1633886319,1818583918,1701344288,1836016416,1684955501,218762554,539828234,1936028240,1397039219,168635971,1699875341,1702125932,1917853796]},{"sector":13,"data":[1684366191,224752245,538976266,1699880994,1701081711,1735289202,1869762592,1835102823,1702119712,1763734381,543236206,1735357008,544039282,1970238023,2116165744,858992969,222314622,554306826,1195920720,1295065377,555829064,1279806769,1297490209,555831112,1279806770,1297686817,1075924040,1699219981,1293971564,225799781,1493830922,1663071599,1965059681,1948280179,1663067496,1634561391,544433262,1948282479,1210082664,544238693,1970169197,544175136,1886611812,544825708,1763733089,2019910766,543584032,1886152008,1886352416,745759593,1718511904,1634562671,1852795252,544108320,543516788,1937335659,1970239776,1851876128,1702065440,1953068832,1397563496,1397703725,1701335840,539782252,1769169250,1802707043,1936485481,1919903264,1919907616,1735289195,1953068832,1397563496,1397703725,1701335840,539782252,1835888483,1935961697,1851858988,1919950948,1684366191,1936028277,222314542,554306826,1229081936,1295065377,555829570,1195724081,1297490209,555828038,1195724082,1297686817,1075922757,1850280461,544761188,1835888451,224685665,1326058762,1936614768,1701344288,1818576928,1769414768,2003788910,1684955424,1936286752,2036427888,1752440947,1397563493,1397703725,1701335840,1210084460,544238693,1701080649,1077948024,168626701,1112363041,824254794,558514765,1162686753,1445011784,558122573,1162687009,1495343432,558384461,1258949952,1868724581,543453793,1835888451,224685665]},{"sector":14,"data":[1326058762,1936614768,1701344288,1818576928,1769414768,2003788910,1684955424,1936286752,2036427888,543236211,1953720684,543584032,1919903859,1953850228,2036689696,1870209139,1633886325,1937055854,1769414757,1293969524,1329868115,1750278227,778857573,168640576,1344342541,558580301,1112355105,824254795,558449997,1179473441,841032005,558449997,1162696993,222306633,1701335818,1109421164,1667855201,1866670195,1851878765,218762596,1701859082,1948283758,1210082664,544238693,1684957559,1629517679,1679844462,1819308905,544438625,1768693857,1864397939,1869881446,1935894896,1919903264,1935761952,1931502441,1819044203,1870209139,1701716085,1948279909,1870078063,1998613362,543716457,1143821133,1394627407,1819043176,222314542,554306826,1279413584,1295065377,555830338,1246055729,1297490209,555828806,1246055730,1297686817,1075923525,1866664461,1851878765,1126200164,1634561391,168649838,1884228109,544435813,543516788,1886152008,1852405536,544698212,543452769,1886611812,1937334636,1814061344,544502633,1629513327,1293970540,1329868115,1750278227,543976549,1835888483,1935961697,1919361068,1701868911,2036473956,1852140832,1077948021,168626701,1112363041,824254797,558711373,1162686753,1445011787,558319181,1162687009,1495343435,558581069,1342836032,1701015410,1701999972,1866670195,1851878765,218762596,1701859082,1948283758,1210082664,544238693,1684957559,1629517679,1679844462]},{"sector":15,"data":[1819308905,544438625,1768693857,1864397939,1869881446,1935894896,1970239776,1851876128,1701147424,1919903264,1818585120,1852776560,760433952,542330692,1818585171,1635000428,779316083,168640576,1344342541,558776909,1112355105,824254798,558646605,1179473441,841032008,558646605,1162696993,222306636,1769166090,1210083182,544238693,1835888451,224685665,1326058762,1936614768,1701344288,1818576928,1769414768,2003788910,1684955424,1936286752,2036427888,543236211,1953720684,543584032,1768976244,1998615395,1751345512,1886938400,1852399980,2003789856,544175136,543519605,1143821133,1394627407,1819043176,1818576928,1077948016,168626701,1112363041,824254800,558907981,1162686753,1445011790,558515789,1162687009,1495343438,558777677,1091177792,1953853282,1701335840,1126198380,1634561391,168649838,1766066701,1634496627,1663071097,1920561263,1952999273,1684955424,1919252000,1852795251,1718511904,1634562671,1852795252,1868718368,1293972597,1329868115,1750278227,778857573,168640576,757926413,757935405,757935405,757935405,757935405,1162358061,1461735500,1329876553,826679383,1818576928,757935472,757935405,757935405,757935405,757935405,168635693,1869366056,1629513075,1327522926,1969365067,1852798068,1918967923,1868767333,1701995894,2036473956,1701344288,1836008224,1684955501,1953841696,1936617332,1886352416,220816233,554306826,1381647440,1144070433,555831898,1381647410]},{"sector":16,"data":[1146691873,555831898,1381647446,168640545,1801675074,1953841696,225341300,1141509386,1819308905,544438625,543516788,1986359920,1937076073,1818576928,1869881456,778266992,168640576,1344342541,559110724,1514418465,841032019,559110724,1514428705,1445011795,559110724,1258949952,544438629,1953789250,168652399,1766066701,1634496627,1629516665,1936288800,1718558836,1886352416,544433001,1952540788,1869116192,1752440951,1701519461,1629516665,1797284974,1663072613,1768058223,1769234798,544435823,544567161,544104803,543519605,1752459639,760433952,542330692,1818585171,1077948012,168626701,1514426401,824254804,559176260,1514418721,1495343444,559176260,1514427937,222306644,1684949258,1109424229,1869902965,218762606,1936278538,2036427888,1851859059,1684957472,1864398949,1699225702,1948282988,1667854447,168636019,1699875341,1702125932,1917853796,1684366191,1936028277,538970637,1126179360,1936682856,543649385,1835888451,543452769,1953789250,544435823,826900002,226375984,538976266,1934958626,543649385,1143821133,1394627407,1819043176,1818576928,2116165744,859124041,222314622,554306826,1431979088,1144070433,555832666,1431979058,1146691873,555832666,1431979094,168640545,1886152008,1953841696,225341300,1141509386,1819308905,544438625,1886152008,544108320,1143821133,1394627407,1819043176,1818576928,1077948016,168626701,757926413,757935405,757935405,757935405]},{"sector":17,"data":[1177365805,541412425,1414744396,540100128,1347175752,757935405,757935405,757935405,757935405,757935405,757935405,218762541,1295065354,555829320,1212697906,1297686817,1075923016,1766197773,1293968748,225799781,1493830922,1663071599,1965059681,1948280179,1663067496,1634561391,544433262,1948282479,544434536,1970169197,544175136,1920098659,1970217081,1667309684,1852795252,1852776563,1818846752,1629516645,1679844462,1667592809,1769107316,539784037,1948283503,1970348143,1293972585,1329868115,1750278227,778857573,544166944,1920098659,1970217081,1851859060,1952669984,544108393,1864396399,1864394094,1869422706,1713399154,1936026729,544370464,1768169569,1952671090,746156655,1818587936,544498533,543516788,1701603686,1919885427,1701344288,1919509536,1869898597,1646295410,1919903333,1870209125,1751326837,1702063983,1701344288,1836016416,1684955501,1077944366,168626701,1129132321,841032001,557925197,1129142561,222306625,1701859082,1866670190,1851878765,218762596,1635013386,544437362,1702043745,1952671084,1881171045,1919381362,1629515105,1629512814,1935745134,1768124275,1684370529,1818846752,1763716197,1752440934,543519333,1864397673,221144430,1292504330,1329868115,1750278227,543976549,1886611812,1937334636,1920099616,1830842991,1634956133,544433511,1948282473,1679844712,1869373801,1868701799,1411395192,1701257327,1699225716,1864396908,1752440942,543519589,1936942445]}],[{"sector":1,"data":[1936025441,1702043692,537529701,539107360,1701603654,1936280608,1699553396,1734439795,572552037,1296314750,168656459,1699875341,1702125932,1917853796,1684366191,224752245,538976266,1884233762,1852403301,1766203495,544433516,826900002,1082011955,218762560,1295065354,555827779,1111706930,1297686817,555827779,1212239184,1295065377,1075923009,1968310797,1866670190,1851878765,218762596,1936278538,2036427888,543236211,1818323300,1646290799,1763735663,1752637550,543712105,544567161,1701869940,1701344288,1835101728,1718558821,1701344288,1869770784,1835102823,1818846752,1752440933,1931506785,1953653108,1752440947,1919950949,1634887535,168636013,1699875341,1702125932,1917853796,1684366191,224752245,538976266,1951604770,1769239137,1344300910,1919381362,544435553,826900002,1082013492,218762560,1144070410,555831617,1363231794,1146691873,555831617,1363231824,168640545,544109906,1818323268,1109419887,168654959,1850280461,1768453152,1768169587,1735355489,2020565536,1870209068,1633886325,1953701998,544502369,1919950945,1634887535,2036473965,1887007776,543649385,543516788,1701667182,543584032,544437353,1735357040,544039282,1701603686,1684955424,1701344288,1751326830,1769172847,1948280686,1327523176,1969365067,1852798068,1716068398,1701344288,1818846752,1936269413,1953459744,544106784,543516788,1920103779,544501349,1701996900,1919906915,2032151673,1830843759,544502645]},{"sector":2,"data":[1667592816,543515749,543516788,1701603686,1701667182,1953068832,1953046632,1868767347,1701605485,1881171316,778597473,1970231584,1851876128,1702065440,1701344288,760433952,542330692,1701996900,1919906915,1769414777,1633903724,544433266,539897384,543452769,1948264750,1886593135,1718182757,1634738297,779315316,168626701,1701869908,2037276960,1918988320,1952804193,544436837,544370534,543516788,1735357040,544039282,1702127201,1752440946,1919950949,1634887535,1768300653,1634624876,539911533,544370502,1835104357,744844400,544175136,1852141679,1713398048,543517801,1701667182,1163141220,1143886931,1763722063,1766662254,1936683619,544499311,1685221207,1870209068,1870078069,543452277,1701869940,1701344288,1819239968,1769434988,221931374,537529610,538976288,1685221239,1936028704,1868836468,168636003,1699875341,1702125932,1917853796,1684366191,224752245,538976266,1951604770,1769239137,1344300910,1919381362,544435553,826900002,226375476,1409944842,1701257327,1699225716,1864396908,543236206,1818323300,1646290799,1864398959,1869182064,1931488366,1667591269,1953046644,1684955424,1701998624,1176531827,168635953,1397557773,1397703725,1701335840,1679846508,1819308905,544438625,1869771365,1701650546,1734439795,1763734373,1752440942,1768169573,1735355489,2020565536,1867784238,1952802592,1818576928,1852776560,1701344288,1830839667,1634956133,745760103,1701147424,537529632]},{"sector":3,"data":[539107360,1701603654,1936280608,1699553396,1734439795,572552037,1296314750,168656459,1866861069,1869422706,1763730802,1919903342,1769234797,1864396399,1397563502,1397703725,1836016416,1684955501,1851859059,1769414756,1633903724,745759858,1701147424,1701344288,1702057248,544417650,1684632903,1851859045,1699881060,1701995878,778396526,168640576,824248845,558056269,1129132577,1495343427,558056269,1342836032,1953393010,1836008224,1684955501,168626701,1852404304,1948283764,1931502952,1667591269,543450484,1954047348,1818846752,1919885413,1818846752,539915109,543516756,1852404304,1868767348,1851878765,1852776548,1998616940,1936421487,543582496,544567161,1702257000,1853190688,1230131232,1127109710,1629506895,1752440948,1868767333,1851878765,1919950948,1953525103,218762542,760433930,542330692,1818585171,1768169580,1634496627,1696625529,1919906418,1936026912,1701273971,1852383347,1701344288,1634296864,543649644,779644770,544166944,544499047,1886152008,544108320,1936025716,1701650533,1734439795,539784037,543516019,538970637,1176511008,543517801,1953720652,1936018720,1701273971,2116165747,1263354929,218762622,1818579466,1684370529,1869762592,1969513827,168650098,572530720,1769099296,1852404846,1766203495,544433516,826900002,226374707,1175063818,1830842991,543519343,1868983913,1952542066,544108393,1970233953,1380982900,777277001,743264067,1701147424,1701344288]},{"sector":4,"data":[1769099296,1948284014,1667854447,544106784,1885431875,544367988,539767857,1836008226,1684955501,539110515,1948280431,1428186472,661808499,1967595635,543515753,543452769,1701209426,1668179314,1077948005,168626701,1129132321,841032004,558121805,1129142561,222306628,1936933130,1634296687,1126196596,1634561391,168649838,1933642253,1768124275,1936028769,1819042080,1818846752,1746957157,1852405345,1752440935,1634934885,1696621933,1852142712,1852795251,1953068832,543236200,1735357040,778920306,1936607520,1684104564,543584032,1920298873,1635021600,1852404850,1752440935,1919950949,1634887535,1851859053,1752440932,1864396389,1768842608,1948280686,1713399144,744844393,760433952,542330692,1818585171,1868832876,1948283749,544434536,1869903201,1769234797,1819042147,1461726841,544105832,544567161,1869572195,1629513075,1818846752,1769414757,1948280948,1931502952,1768121712,1684367718,1954047264,1769172581,539782767,543516788,1735357040,544039282,1918989427,1998615412,543716457,543516788,1701603686,1634692128,778331492,168626701,544567129,544104803,1869835361,1702065440,1701344288,1936933152,1634296687,1663067508,1634561391,1948279918,1935745135,1768124275,543519841,1919950945,1634887535,1769414765,1629513844,1818587936,1702126437,1768300644,221144428,1493830922,1663071599,1629515361,544174956,1869837153,1952541027,1768300645,544433516,1752459639,544503151,1696624225]},{"sector":5,"data":[1852142712,1852795251,1953068832,543236200,1735357040,544039282,1701603686,218762542,1818579466,1684370529,1869762592,1969513827,168650098,572530720,1936933152,1634296687,1735289204,1818838560,1998615397,543716457,1917853793,1634887535,2116165741,892350793,222314622,554306826,1430537265,1144135969,555832644,1430537305,168640545,1869837121,1952541027,1766203493,1142973804,1869373801,1866604647,218762616,544098570,1936287860,1634296864,543649644,746090338,1970239776,1887007776,1752440933,2019893349,1936614772,678326121,1864378739,1752440934,1768300645,544433516,544567161,1953390967,544175136,1869837153,1952541027,1769414757,1948280948,1931502952,1667591269,543450484,1735357040,544039282,1701603686,1866866734,2019893362,1819307361,1142959205,1763722063,1752440947,2019893349,1936614772,544108393,544370534,543516788,1330464077,1129268270,1818846752,1835101797,168636005,1868106253,1633886325,1818304622,1629515635,1668248435,1702125929,1818846752,1998615397,1869116521,1629516917,2019893358,1936614772,544108393,1752459639,1881170208,1919381362,1713401185,744844393,544825888,1768978804,1629513582,1919250464,543453033,1953721961,543449445,1629513327,2019893358,1936614772,778989417,1953451552,1752440933,1696625761,2037540214,1818846752,1769414757,1970235508,1851859060,1954047264,1769172581,1998614127,543976553,1629513058,1668248435,1702125929,1769414756,1948280948]},{"sector":6,"data":[1931502952,1667591269,543450484,1735357040,544039282,1701603686,218762542,760433930,542330692,1818585171,1768169580,1634496627,1696625529,1919906418,1936026912,1701273971,1852383347,1701344288,1634296864,543649644,779644770,544166944,544499047,1886152008,544108320,1936025716,1701650533,1734439795,539784037,543516019,538970637,1176511008,543517801,1953720652,1936018720,1701273971,2116165747,1263354929,218762622,1818579466,1684370529,1869762592,1969513827,168650098,572530720,1936933152,1634296687,1735289204,1818838560,1998615397,543716457,1917853793,1634887535,2116165741,892350793,218762622,544166922,544499047,1886152008,544108320,1768169569,1735355489,2020565536,1953525536,745434985,1818587936,544498533,1629516905,1881171054,1936942450,774981152,168640576,824248845,559039556,1145319969,1495343442,559039556,1158286656,1852142712,1852795251,2020557344,168626701,1701869908,1701344288,1954047264,1769172581,1932029551,1718558761,1701344288,1818846752,2032169829,1998615919,544501345,1629515636,1668248435,1702125929,1866866734,2019893362,1819307361,1142959205,1763722063,1752440947,2019893349,1936614772,544108393,544370534,543516788,1330464077,1129268270,1818846752,1495281253,1663071599,1629515361,1668248435,1702125929,1819634976,1819306356,2019893349,1936614772,1936617321,1702043692,1634886000,1735289204,1701344288,1769414765,1629513844,1852404512,543517799]},{"sector":7,"data":[1667330163,2032672869,1663071599,1948282465,543518841,1948282997,959914095,1634231072,1952670066,695431781,1866997806,1702258039,2032151666,1663071599,1629515361,1668248435,1702125929,544104736,1702131813,1869181806,1769414766,1864394868,544828526,543518319,1735357040,544039282,1629516897,1835627552,168636005,1867778573,1936941344,1634296687,1629513076,1713400940,1936026729,1953068832,1953853288,544104736,1702131813,1869181806,1769414766,1629513844,1869770784,1835102823,1818846752,1948265573,543518841,1701847137,1685023090,1936615712,1684104564,543584032,1696624225,1852142712,1852795251,222314542,554306826,1412777009,1144135969,555832373,1412777049,168640545,1869837121,1952541027,1766203493,1142973804,1869373801,1866604647,218762616,544098570,1936287860,1634296864,543649644,746090338,1970239776,1887007776,1752440933,1919950949,1634887535,1768300653,1634624876,1864394093,1752440934,1919950949,1634887535,1870209133,1635197045,1948284014,1935745135,1768124275,543519841,1752459639,1818846752,1948283749,544498024,1702257000,1701344288,1954047264,1769172581,2032168559,1931507055,1768121712,1684367718,1631920174,1948280931,543518057,544567161,1852141679,1713398048,543517801,1752459639,1701344288,1954047264,1769172581,539782767,543516788,1735357040,544039282,1869903201,1769234797,1819042147,1953702009,1937011297,1953068832,1752440936,1768300645,1814062444,1701077359]},{"sector":8,"data":[168636004,1868106253,1633886325,1818304622,1629515635,1668248435,1702125929,1881170208,1919381362,1713401185,543517801,1752459639,1819042080,1818846752,1948283749,544498024,1847619428,1746957423,543520353,1696624225,1852142712,1852795251,218762542,760433930,542330692,1818585171,1768169580,1634496627,1696625529,1919906418,1936026912,1701273971,1852383347,1701344288,1634296864,543649644,779644770,544166944,544499047,1886152008,544108320,1936025716,1701650533,1734439795,539784037,543516019,538970637,1176511008,543517801,1953720652,1936018720,1701273971,2116165747,1263354929,218762622,1818579466,1684370529,1869762592,1969513827,168650098,572530720,1936933152,1634296687,1735289204,1818838560,1998615397,543716457,1917853793,1634887535,2116165741,892350793,218762622,544166922,544499047,1886152008,544108320,1768169569,1735355489,2020565536,1953525536,745434985,1818587936,544498533,1629516905,1881171054,1936942450,774981152,168640576,824248845,558970180,893661729,1495343441,558970180,1342836032,1919381362,1109421409,168654959,2035550733,1948280176,1713399144,1852140649,543518049,543452769,1752457584,543584032,543516788,1735357040,544039282,544567161,1953390967,544175136,1869837153,1952541027,1769414757,1948280948,1931502952,1667591269,543450484,1701603686,544370464,1701603686,1176514163,1696625263,1886216568,539780460,1701869940,1701344288,1819239968]},{"sector":9,"data":[1769434988,221931374,537529610,538976288,1663049760,1769430074,1919907694,1769430116,1919907694,2019896932,222314597,554306826,1162038577,1295130913,555828547,1162038617,168640545,1918985555,1126197347,1634561391,168649838,1766197773,544433262,1701603686,1852776563,1819042080,544370464,1953653104,543584032,543516788,1920103779,544501349,1802725732,1769104416,539780470,1701864804,1852400750,1852776551,1634236192,1870209140,1886593141,1718182757,168636025,1699875341,1702125932,1917853796,1684366191,224752245,538976266,1699946530,1751347809,543649385,544370534,1701603654,2116165747,959656265,222314622,554306826,1448035377,1144135969,555832911,1448035417,168640545,1918985555,1176528995,543517801,1818323268,1109419887,168654959,1850280461,1768453152,1768169587,1735355489,2020565536,1870209068,2037653621,1948280176,1847616872,543518049,1948280431,1713399144,543517801,544567161,1953390967,544175136,1684957542,1868111918,1633886325,1937055854,1397563493,1397703725,1818851104,1918985060,673215332,1919885354,539574048,1713401716,543452777,1919361121,544241007,1713399407,1936026729,1953068832,1769152616,1634494829,1634607218,544433517,1696625263,1852142712,1852795251,168636019,1699940877,1952671084,1701344288,1634030368,543712114,1769238085,1142973810,543912809,1667590243,1868701803,1869881464,1634038560,543712114,543516788,1769238117,1679844722,1702259058]},{"sector":10,"data":[1952543264,544367976,1851877492,1937074720,1752440948,1702043749,1952671084,1679844453,1667592809,2037542772,218762542,760433930,542330692,1818585171,1768169580,1634496627,1696625529,1919906418,1936026912,1701273971,1852383347,1701344288,1634296864,543649644,779644770,544166944,544499047,1886152008,544108320,1936025716,1701650533,1734439795,539784037,543516019,538970637,1176511008,543517801,1953720652,1936018720,1701273971,2116165747,1263354929,218762622,1818579466,1684370529,1869762592,1969513827,168650098,572530720,1634030368,1768448882,1713399662,1176531567,1936026729,1233003040,2117677873,168626701,1730178900,1210086501,544238693,1629515375,1634296864,543649644,544763746,1769238639,539782767,1701602675,1763734627,1851859060,1919950948,544437093,1076769094,218762560,1144070410,555831631,1364149298,1146691873,1075925327,1699940877,1751347809,1919895072,2020557344,168626701,1701869908,1701344288,1835101728,1718558821,1701344288,1818846752,1870209125,1635197045,1948284014,1768300655,539911278,544567129,544104803,543519605,1143821133,1998607183,1667525737,1935962721,539633696,1059091055,1869881385,1852401184,543236196,1970238055,1718558832,1818846752,1998615397,543716457,1768778099,544366956,1701667182,1919885427,1954047264,1769172581,779316847,1919895072,1635280160,1701605485,1869881388,1852401184,1818304612,1768300652,544433516,1752459639,773873952]},{"sector":11,"data":[542398548,1702131813,1869181806,1931488366,1768121712,706771302,1415074862,222314542,554306826,1397703729,1144135969,555832143,1397703769,168640545,1918985555,1159751779,1919513710,1766072421,1126198131,1801676136,2020557344,168626701,2032166473,1998615919,544501345,1931505524,1668440421,1851859048,1953391904,543519337,1802725732,1919903264,1713398048,543517801,1713402479,1936026729,1702043692,1952671084,1768453152,1751326835,543908709,779644770,168626701,2032166473,1998615919,544501345,1931505524,1668440421,1852776552,1948285292,1663067496,1701999221,2037150830,1936286752,2036427888,1679844453,1667592809,2037542772,1818435628,544366949,1936287860,1701339936,1646291811,1076787311,218762560,1314070794,168640545,1918985555,1277192291,544502633,1684957527,168654703,1766066701,1634496627,1629516665,1818846752,1919885413,1818846752,1713402725,1684960623,1769174304,1948280686,1394632040,1668440421,1868767336,1851878765,1495281252,1663071599,1914728033,539782773,1852404336,1629498484,1668248435,1702125929,1869422636,539780470,2037411683,1701060652,1702126956,1919885356,1852142112,543518049,544829025,1701603686,544106784,543516788,1953720684,1868111918,1633886325,1818304622,1931505523,1667591269,543236212,1701603686,544370464,1701603686,1851859059,1751326820,1701277281,1701344288,1953784096,1969383794,779314548,1970231584,1851876128,1701410336,1752440951,1868767333]},{"sector":12,"data":[1852142702,1864397684,543236198,1701602675,1684370531,1818846752,168636005,1699875341,1702125932,1917853796,1684366191,224752245,538976266,1699946530,1751347809,543649385,544370534,1701603654,2116165747,959656265,222314622,554306826,1178815793,1295130913,555828803,1178815833,168640545,2003134806,1818838560,1866670181,1852142702,1126200180,1634561391,168649838,1766066701,1634496627,1948283769,1663067496,1702129263,544437358,1948280431,1931502952,1667591269,543450484,1954047348,1818846752,1919885413,1852400160,544830049,1701603686,218762542,760433930,542330692,1818585171,1768169580,1634496627,1696625529,1919906418,1936026912,1701273971,1852383347,1701344288,1634296864,543649644,779644770,544166944,544499047,1886152008,544108320,1936025716,1701650533,1734439795,539784037,543516019,538970637,1176511008,543517801,1953720652,1936018720,1701273971,2116165747,1263354929,218762622,1818579466,1684370529,1869762592,1969513827,168650098,572530720,1701402144,1735289207,1818838560,1866670181,1852142702,572552052,875645310,1077968441,168626701,558781985,1443499328,544695657,1701603654,1852397344,225931108,1141509386,1819308905,544438625,543516788,1953394531,1937010277,543584032,543516788,1701602675,1684370531,2019914784,1768300660,1864394092,1768038514,2037539182,1818846752,168636005,1867778573,1919120160,543976559,1869768820,543713141,543516788,1701603686]},{"sector":13,"data":[544825888,1852404597,543236199,1937076077,168639077,757074445,544489760,543516788,544239476,1948280431,1998611816,1868852841,1663052919,1801677164,1701344288,1919907616,572552036,1884645200,1919885346,538970637,1733304864,573337156,544370464,1667853411,1752440939,1918967909,1937207154,218762542,1409944842,1668489327,1819045746,1919448096,1751610735,1713398048,543517801,1965062498,1735289203,1701344288,2036689696,1918988130,168639076,757074445,1701990432,1948283763,1344300392,541411137,539775061,1162297680,1464812576,1428171854,1379999824,743919442,544370464,1314344772,1381122336,168646479,1797267488,779319653,168626701,544567129,544104803,1953068915,1948280931,1931502952,1701147235,1768169582,1634496627,1700929657,1701148532,1396777070,541673795,543452769,1635280232,1768121700,543973741,1836216166,544437345,1965062498,1735289203,1836016416,1684955501,1852776563,1701344288,1936278560,2036427888,1852140832,1864379509,2036473970,1701998624,1852404595,960897127,218762542,544166922,1970562418,1948282482,1752440943,1768300645,1814062444,980710249,168626701,1176513824,544042866,543516788,2003134806,1852140832,1663052917,1936682856,1699881061,1919906931,1767252069,221149029,1326058762,218762610,539828234,1936028240,1397039219,168635971,1699875341,1702125932,1917853796,1684366191,224752245,538976266,1767252002,1852405605,1766203495,1126196588,1702129263]},{"sector":14,"data":[544437358,826900002,1082014004,218762560,1445603338,544695657,1701603654,1919111968,711877989,554306857,1296584022,168640545,1886611780,544825708,1970169165,168626701,544567129,544104803,543519605,1835888483,1935961697,544108320,1936287860,1852140832,1869881461,1769435936,543712116,2004116834,544105829,1701322849,1701077368,1634560355,1919885420,1129529632,1713391945,543517801,1886611812,779706732,168640576,1445005837,558843213,1091177792,1229538131,1836008224,1684955501,168626701,1953068883,1936025699,1701344288,1818846752,1768169573,1634496627,1919295609,1746955631,1684109413,1835623269,1948281953,1396777071,776554819,168640576,1445005837,558908749,1208618304,1126201445,1634561391,168649838,2001930765,1751348329,1948283749,1713399144,543517801,1886611812,544825708,1836020326,1129529632,1948272969,1701322863,1701077368,1634560355,1077948012,168626701,1767254568,1176532837,543517801,1701995347,690646629,1445005837,558778445,1443499328,544695657,1970169165,168626701,544567129,544104803,543519605,543516788,1835888483,1935961697,544108320,1936287860,1852140832,1869881461,544171040,543516788,1819045734,1852405615,168639079,538970637,1699881002,2002874980,1701344288,1919120160,778986853,168626701,539631648,1970562386,1948282482,1752440943,1768300645,1814062444,779383657,1970231584,1851876128,1936482592,1919950959,544437093,541283141,538970637]},{"sector":15,"data":[1869881376,1952805408,544109173,1948282740,1713399144,543517801,1953720684,222314542,554306826,1111903574,168640545,1953719634,543519343,2003134806,1836008224,1684955501,168626701,1970562386,544435826,1948282740,1713399144,543517801,1953720684,222314542,554306826,1212370225,1295130913,555829315,1212370265,168640545,1702260557,1836008224,1684955501,168626701,1702260557,1752440947,1702043749,1952671084,1713398885,543517801,1713402479,1936026729,1869768224,1852776557,1768169573,1952671090,544830063,1629515636,1919509536,1869898597,2032171378,1931507055,1768121712,221149542,1376390410,1952541797,1344300133,1701015410,1701999972,538970637,1293951520,1852405359,1766203495,544433516,826900002,1082014002,218762560,1144070410,555832902,1447445554,1146691873,1075926598,1867319821,1142973814,1869373801,1866604647,218762616,544098570,1936287860,1634296864,543649644,746090338,1970239776,1887007776,1752440933,1919164517,543520361,543452769,1701996900,1919906915,1870209145,1635197045,1948284014,1869422703,1948280182,1931502952,1667591269,543450484,1701603686,779056160,168626701,2032166473,1915188591,1869422693,1735289206,1819176736,1852776569,1768300645,539780460,544567161,544104803,1869835361,1701868320,2036754787,1847615776,1847621477,543518049,544370534,543516788,1701603686,1952866592,1948283493,1881171304,778597473,168626701,1143821133,1394627407,1819043176]},{"sector":16,"data":[1936286752,2036427888,1919230067,544370546,1936942445,1936025441,544106784,543516788,1818323300,1646290799,539916399,1730178900,1210086501,544238693,1948282479,1702061416,1936026912,1701273971,1931488371,220226917,538976266,1866670114,1629518192,1293968494,543520367,1936942413,1936025441,1233003040,2117285425,168626701,1634493778,543450484,1668248144,1920296037,537529701,539107360,1769369421,1176528750,1936026729,1233003040,2117677617,168626701,1730178900,1210086501,544238693,1629515375,1634296864,543649644,544763746,1769238639,539782767,1701602675,1763734627,1851859060,1919950948,544437093,1076769094,218762560,1144070410,555831878,1380336690,1146691873,1075925574,1867778573,2020557344,168626701,1701869908,1701344288,1769104416,1629513078,1679844462,1769239397,1769234798,1679847023,1667592809,2037542772,1970239776,1851881248,1869881460,1987013920,1752440933,1702043749,1952671084,1713398885,543517801,221146996,1225395466,1870209126,1701980021,1987013920,543649385,2037149295,1701736224,1818846752,2032151653,1663071599,1629515361,544174956,1667592307,544826985,1701716065,1634607223,1713399149,1948283503,1713399144,543517801,1702127201,1752440946,1634738277,1076783220,218762560,1987005706,225650533,1144070410,555831622,1363559474,1146691873,1075925318,1917192717,1109421423,168654959,1766590989,544437363,543516788,1701667182,539587368,1948280431,1713399144]},{"sector":17,"data":[543517801,1713402479,1936026729,1970239776,1851881248,1869881460,1987013920,1226845797,1752440934,543519333,543519329,1702258035,543973746,1701603686,1701667182,2032151667,1663071599,1931505249,1819243107,1752440940,1735749490,1752440936,1646292325,1937055865,543649385,543516788,1869771361,1701519479,221148025,1225395466,1870209126,1868832885,1953459744,1851881248,1869881460,1987013920,1752440933,543519589,1701603686,1881156723,1936942450,1129530656,544175136,1668178275,1948281957,1663067496,1634561391,1076782190,218762560,1295065354,555829571,1229147442,1297686817,1075923267,1866664461,1126201712,1634561391,168649838,1866664461,1936025968,1701736224,544370464,1701998445,1818846752,1763734373,1852776558,1768169573,1952671090,544830063,1629515636,1919509536,1869898597,2032171378,1931507055,1768121712,221149542,1376390410,1952541797,1344300133,1701015410,1701999972,538970637,1126179360,1769566319,1176528750,1936026729,1233003040,2117284145,168640576,824248845,559298884,960770593,1495343446,559298884,1124732224,544829551,1818323268,1109419887,168654959,2035550733,1948280176,1679844712,1702259058,1684955424,1936024608,1634625908,1852795252,1919509536,1869898597,2032171378,1998615919,544501345,1663070068,544829551,543516788,1701602675,1684370531,1818846752,695412837,779056160,168626701,2032166473,1915188591,1868767333,1852406128,1852776551,1864399212,1713399150]}]],[[{"sector":1,"data":[744844393,1970239776,1851876128,1936482592,1886593135,1718182757,543236217,544695662,1701667182,1919903264,1701344288,1818846752,1717641317,544367988,543516788,1752457584,218762542,760433930,542330692,1818585171,1768169580,1634496627,1696625529,1919906418,1936026912,1701273971,1852383347,1701344288,1634296864,543649644,779644770,544166944,544499047,1886152008,544108320,1936025716,1701650533,1734439795,539784037,543516019,538970637,1126179360,544829551,543452769,1702260557,1936018720,1701273971,2116165747,859189577,218762622,1818579466,1684370529,1869762592,1969513827,168650098,572530720,1886339872,1735289209,1818838560,572552037,825313662,168656435,1867778573,1952802592,1818576928,1852776560,1679843616,1869373801,1868701799,1886331000,1852795252,1702043692,1952671084,544500000,543452769,1936028272,826679411,222314542,554306826,1362707505,1144135969,555831609,1362707545,168640545,1836020294,2020557344,168626701,1953720652,1752440947,1634607205,1932027245,1718558761,1701344288,1818846752,1919885413,1818846752,2032169829,1998615919,544501345,1663070068,779710575,543574304,1919248500,1918967909,1702043749,1634887030,1768300652,1634624876,745760109,1970239776,1851876128,1919120160,543976559,1869768820,543713141,1835362420,544825888,1852404597,1752440935,1918967909,544698226,1937335659,218762542,543574282,544567161,1847619428,1998615663,544501345]},{"sector":2,"data":[1663070068,544829551,1936025716,1768300645,745760108,1701998624,1159754611,1948271443,1633886319,1818583918,1701344288,1836016416,1684955501,222314542,554306826,1379484721,1144135969,555831865,1379484761,168640545,1109421908,168654959,2035550733,1948280176,1679844712,1702259058,1684955424,1952542752,1718558824,1701344288,2003136032,1668246560,1869182049,1868963950,1752440946,1768300645,1864394092,1768300658,544433516,544567161,1953390967,544175136,2037411683,218762542,544166922,2037411683,1713398048,543517801,1752459639,1629515369,1919509536,1869898597,539785586,544567161,1953723757,1986619168,1953046629,1679843616,1701209705,1953391986,1818846752,1835101797,1411395173,543518841,543516788,544695662,1701603686,1701667182,1952866592,1948283493,1881171304,778597473,168640576,824248845,559044164,1447309857,1495343442,559044164,1124732224,1768320623,1864396146,1699881070,1667329136,1699553381,1734439795,218762597,1713389834,543517801,1752459639,1768453152,1634607219,1629513069,1634038380,1696627044,1953720696,1852383347,1701344288,1668246560,1869182049,1870209134,1886593141,1718182757,778331497,1869103904,543519599,1869881393,1851876128,543974755,543516788,1702260557,544370464,2037411651,1836016416,1684955501,1749229614,1702063983,1948267040,1701978223,1667329136,1752440933,1768300645,1763730796,1752440942,1701060709,1852404851,1869182049,1768169582,1952671090]},{"sector":3,"data":[544830063,1752459639,1701344288,1818846752,1870209125,1918967925,1869422693,1735289206,544370464,2037411683,778530409,168640576,824248845,558515021,1129132577,1495343434,558515021,1141509440,1952803941,1866670181,1851878765,218762596,1818575882,1936028773,1818587936,1702126437,1768300644,544433516,1679848047,1667592809,1769107316,221148005,1376390410,1952541797,1344300133,1701015410,1701999972,538970637,1142956576,1952803941,543649385,1701603654,1851859059,1766072420,1952671090,1701409391,2116165747,925970761,222314622,554306826,1430930481,1144135969,555832650,1430930521,168640545,1701602628,1176528244,543517801,1818323268,1109419887,168654959,1750338061,1679848297,1869373801,1868701799,1768169592,1634496627,1948283769,1847616872,677735777,1864378739,1752440934,1768300645,1864394092,1768300658,544433516,544567161,1701602675,1684370531,1919903264,1818584096,1869182053,1226845806,1870209126,1702043765,1952671084,1931502693,1919252069,1713400929,1936026729,1870209068,1633886325,1668489326,1819045746,1919448096,1751610735,1701344288,2036473965,1769174304,1948280686,1277191528,542393925,1330795073,1851859031,1230119012,542394439,1330795073,1701519447,221148025,1225395466,1870209126,1868832885,1953459744,1851881248,1869881460,1818584096,543519845,1936025716,1768300645,745760108,1701998624,1159754611,1948271443,1633886319,1818583918,1701344288,1836016416,1684955501]},{"sector":4,"data":[218762542,760433930,542330692,1818585171,1768169580,1634496627,1696625529,1919906418,1936026912,1701273971,1852383347,1701344288,1634296864,543649644,779644770,544166944,544499047,1886152008,544108320,1936025716,1701650533,1734439795,539784037,543516019,538970637,1176511008,543517801,1953720652,1936018720,1701273971,2116165747,1263354929,218762622,1818579466,1684370529,1869762592,1969513827,168650098,572530720,1818575904,1852404837,1766203495,544433516,543452769,1701996868,1919906915,544433513,826900002,226375473,1409944842,1701257327,1699225716,1864396908,543236206,1818323300,1646290799,1864398959,1869182064,1931488366,1667591269,1953046644,1684955424,1701998624,1176531827,1077947953,168626701,1245983009,841032018,559041092,1245993249,222306642,1818575882,543519845,225996610,1141509386,1819308905,544438625,543516788,1701667182,544370464,1701667182,1718558835,1818846752,2032169829,1931507055,1667591269,543450484,544370534,1701602660,1852795252,1716068398,1970239776,1818587936,1702126437,1702043748,1634887030,1768300652,745760108,1970239776,1851876128,1919120160,543976559,1869768820,543713141,1835362420,544825888,1852404597,1752440935,1162616933,1092637766,1464816210,1684955424,1195987488,1092637768,1464816210,2036689696,168636019,1716062733,1970239776,544171040,544501614,1953390967,544175136,1701602660,1948280180,1702061416,1818846752,539784037]},{"sector":5,"data":[1936028272,1397039219,1869881411,1851876128,543974755,543516788,1835888483,778333793,120392205,218762541,1295065354,555830083,1262701874,1297686817,1075923779,1699875341,1701667182,1836008224,1684955501,168626701,1634624850,544433517,1702043745,1952671084,1713398885,543517801,1679848047,1667592809,2037542772,544175136,543516788,1701667182,1970239776,1701868320,2036754787,218762542,1818579466,1684370529,1869762592,1969513827,168650098,572530720,1852133920,1852403041,1766203495,544433516,543452769,1701996868,1919906915,544433513,826900002,1082013235,218762560,1144070410,555832146,1397900338,1146691873,1075925842,1699875341,1701667182,1634288672,543649644,225996610,1225395466,1752440942,1679848297,1869373801,1868701799,2032151672,1948284271,543518841,543516788,544695662,1701667182,1919903264,1701344288,1818846752,1919885413,1919509536,1869898597,2032171378,1931507055,1667591269,778331508,168626701,1143821133,1394627407,1819043176,1936286752,2036427888,1919230067,544370546,1936942445,1936025441,544106784,543516788,1818323300,1646290799,539916399,1730178900,1210086501,544238693,1948282479,1702061416,1936026912,1701273971,1931488371,220226917,538976266,1766203426,1277191532,544502633,1936942413,1936025441,830349856,2118864196,168626701,1634493778,543450484,1668248144,1920296037,537529701,539107360,1634624850,1735289197,1818838560,1629516645,1142973550]},{"sector":6,"data":[1667592809,1769107316,572552037,858868094,168656438,1867778573,1952802592,1818576928,1852776560,1679843616,1869373801,1868701799,1886331000,1852795252,1702043692,1952671084,544500000,543452769,1936028272,826679411,222314542,554306826,1414677553,1144135969,555832402,1414677593,168640545,544695630,1701667150,2020557344,168626701,1701869908,1847615776,1847621477,543518049,544370534,543516788,1701602675,1684370531,1818846752,1919885413,1919509536,1869898597,539916658,544567129,544104803,1818455657,543515765,1830843233,544829025,941650785,1634231072,1952670066,544436837,1948282473,1847616872,778399073,1970231584,1851876128,1819239968,544698220,543516788,1701667182,1953068832,543236200,1769104752,1629512815,1629512814,2019893358,1936614772,544108393,1965057647,1869881456,1919448096,1663067493,1634885992,1919251555,168636019,1716062733,1970239776,1818587936,1702126437,1869422692,1948280178,544104808,543518319,1701603686,544370464,1701996900,1919906915,1914711161,1835101797,1752440933,1768300645,544502642,744844911,1869112096,543519599,543516788,1646283599,1869902965,1914711150,1835101797,1752440933,1702043749,1684959075,1701736224,1851858988,1868767332,1852404846,1965057397,1818850414,1970239776,1986095136,1701978213,1701667182,1818304612,1718558828,1701344288,1077948013,168626701,1129132321,841032012,558646093,1129142561,222306636,1634222858,543516526]},{"sector":7,"data":[1920234561,1953849961,1126200165,1634561391,168649838,1766066701,1634496627,1948283769,1629513064,1769108596,1702131042,1935745139,1852270963,1948279909,543236207,1701603686,1950425134,1651077748,1936028789,1668180256,1701082476,1684621344,745432420,1937330976,745366900,1668432160,1702259048,1851858988,1699881060,1328374881,779709550,1970231584,1851876128,1869112096,543519599,1936287860,1836016416,1684955501,544175136,1769173857,1864396391,1701978226,1702260589,1953784096,1969383794,779314548,168626701,1634493778,543450484,1668248144,1920296037,537529701,539107360,1634222880,1852401518,1766203495,1092642156,1769108596,1702131042,2116165747,925905225,222314622,554306826,1395934257,1144135969,555832116,1395934297,168640545,1851877443,1092642151,1769108596,1702131042,1766072435,1735355489,2020557344,168626701,1948282441,544434536,1818323300,1646290799,539785327,1629515361,2003792498,1684957472,1952539497,1629516645,1769108596,1702131042,1969430643,1852142194,544828532,1769173857,1684368999,544175136,543516788,1701602675,1684370531,1818846752,1428172389,1948280179,1428186472,1379999824,542592850,543452769,1314344772,1381122336,1797281615,544438629,1931505524,1667591269,1752440948,1952522341,1651077748,1936028789,1970239776,1851881248,1629498484,1881171054,1936942450,1701344288,1095783200,1094862147,1869881426,1936941344,544106345,1835362420,1919885356,1835364896]},{"sector":8,"data":[543520367,1835362420,1869768224,1752440941,1768300645,539911532,544567129,544104803,1869835361,1702065440,1701344288,1970236704,221144435,1292504330,1329868115,1750278227,543976549,1886611812,1937334636,1920099616,1830842991,1634956133,544433511,1948282473,1679844712,1869373801,1868701799,1411395192,1701257327,1699225716,1864396908,1752440942,543519589,1936942445,1936025441,1702043692,168632421,572530720,1818838560,1766596709,1293972595,1634956133,544433511,1144094242,226380621,1376390410,1952541797,1344300133,1701015410,1701999972,538970637,1126179360,1735287144,543649385,1701603654,1953775904,1969383794,544433524,826900002,226375472,1409944842,1701257327,1699225716,1864396908,543236206,1818323300,1646290799,1864398959,1869182064,1931488366,1667591269,1953046644,1684955424,1701998624,1176531827,1077947953,168626701,876884257,841032023,559363140,876894497,222306647,1818838538,1950425189,1651077748,1936028789,168626701,1629515329,2003792498,2019913248,1869881460,544104736,1920234593,1953849961,1701650533,544435809,1763734633,1935745139,1852270963,1948279909,1752440943,1768300645,539911532,543519573,543516788,1092636757,1464816210,1684955424,1464812576,1379999822,542592850,1937335659,544175136,1701602675,1948284003,1629513064,1769108596,1702131042,1870209139,1635197045,539784302,543452769,1936028272,1752440947,1347625061,1111835457,1948275265,1935745135]},{"sector":9,"data":[1852270963,1701344288,1919885421,1835364896,543520367,1835362420,1869768224,1752440941,1768300645,221144428,1393167626,1948284005,544434536,1920234593,1953849961,538976357,538976288,168652628,757935405,757935405,757935405,757935405,538979629,538976288,221064480,1684621322,544105828,538976288,538976288,538976288,538976288,1917853728,1852143205,543236212,1701603686,1869768224,1885413485,1918985584,543649385,168652393,538976288,538976288,538976288,538976288,538976288,538976288,1936288800,1864397684,1870209134,1931506293,1701147235,220212846,1393167626,1702130553,538976365,538976288,538976288,538976288,538976288,1802658125,1713398048,543517801,1629516641,1397563502,1397703725,1937339168,225273204,538976266,538976288,538976288,538976288,538976288,538976288,1768300576,1629513068,1881171054,1702258034,1763734638,1919295604,1629515119,1634037872,1735289202,538970637,538976288,538976288,538976288,538976288,538976288,1763713056,1768693870,544437363,2032168559,544372079,1701995379,221146725,1091177738,1768448882,538994038,538976288,538976288,538976288,538976288,1802658125,1713398048,543517801,1952540788,1935763488,1701143072,1751326830,1701277281,537529700,538976288,538976288,538976288,538976288,538976288,538976288,1668180339,1953046629,1935767328,1667326496,543450475,221147253,1376390410,761553253,2037149263,538976288,538976288]},{"sector":10,"data":[538976288,538976288,1986359888,544501349,1768300641,1713399148,544042866,1852400994,1751326823,1701277281,168636004,168626701,1634036803,1752440946,1629516649,1769108596,1702131042,538976288,225399840,757935370,757935405,757935405,757935405,757935405,538976301,757932064,1766328845,1852138596,538976288,538976288,538976288,538976288,1092624416,2003790956,1701344288,1818846752,1869881445,1886413088,544366949,1814064745,1937011561,538970637,538976288,538976288,538976288,538976288,538976288,1864376352,1870209134,1931506293,1701147235,168636014,2035485197,1835365491,538976288,538976288,538976288,538976288,1293951008,543912545,2037588065,1835365491,1818846752,1935745125,1914724640,1819633509,168653409,538976288,538976288,538976288,538976288,538976288,538976288,1818846752,1869815909,544500000,1819044215,1886413088,544366949,1814064745,1937011561,218762542,1668432138,1702259048,538976288,538976288,538976288,538976288,1951604768,1629515887,1768448882,1735289206,1713398048,778398825,168626701,1684104530,1819168557,538976377,538976288,538976288,538976288,1634222880,543516526,1768300641,221144428,1493830922,1663071599,1679847009,1819308905,1746958689,1701078121,1851859054,2037588068,1835365491,1818846752,1998615397,1869116521,1663071349,1735287144,543649385,543516788,1701603686,1629497203,1769108596,1702131042,2036473971,1769174304,1948280686]},{"sector":11,"data":[1176528232,543517801,1886611780,544825708,1769238607,544435823,1835888483,543452769,1948282479,1327523176,1869182064,1830843246,779447909,168640576,824248845,559105348,1162097185,1495343443,559105348,1124732224,1735287144,1950425189,1651077748,1936028789,1634288672,543649644,225996610,1393167626,1667591269,1752440948,1768300645,544502642,1769238639,1948282479,1751326831,1701277281,1701344288,1953784096,1969383794,544433524,1696622191,543712097,1701602675,1684370531,1818846752,1852776549,1952522341,1948279072,996502889,1818587936,544498533,543516788,1868785011,1864393838,1869182064,1869881454,1634231072,543516526,543516788,1920234593,1953849961,1864397669,1818304614,1768300652,544433516,1864397921,778396526,168640576,824248845,558777165,1129132577,1495343438,558777165,1124732224,1952540018,1766072421,1952671090,544830063,1835888451,224685665,1124732170,1952540018,1629516645,2003136032,1919509536,1869898597,1864399218,1752440942,1969430629,1852142194,1919164532,778401385,543574304,1768169569,1952671090,544830063,1931506537,1667591269,744777076,1768453152,1868767347,1851878765,1919098980,1702125925,543236211,1684174195,1667592809,2037542772,1953068832,544106856,1952540788,1919509536,1869898597,221149554,1376390410,1952541797,1344300133,1701015410,1701999972,538970637,1126179360,1952540018,543649385,1701996868,1919906915,544433513,826900002,1082012977]},{"sector":12,"data":[218762560,1144070410,555832391,1413956658,1146691873,1075926087,1699613197,1766072439,1952671090,544830063,1701667150,2020557344,168626701,1701869908,1701344288,1835101728,1870209125,1635197045,1948284014,1768366191,1948280182,1847616872,1679849317,1667592809,2037542772,222314542,554306826,1397179441,1144135969,555832135,1397179481,168640545,1634038339,1142973812,1667592809,2037542772,1634288672,543649644,225996610,1225395466,1752440942,1679848297,1869373801,1868701799,1948265592,543518841,543516788,1701667182,543584032,543516788,1701996900,1919906915,1870209145,1635197045,1948284014,1919098991,1702125925,1750343726,1701716069,1768169591,1952671090,544830063,1819044215,543515168,1970479201,1919509602,1869898597,1864399218,1752440934,1634738277,1953391986,1919509536,1869898597,1814067570,1702130537,1853169764,544367972,1701994832,1310749806,778399073,168626701,1143821133,1394627407,1819043176,1936286752,2036427888,1919230067,544370546,1936942445,1936025441,544106784,543516788,1818323300,1646290799,539916399,1730178900,1210086501,544238693,1948282479,1702061416,1936026912,1701273971,1931488371,220226917,538976266,1766203426,1277191532,544502633,1936942413,1936025441,830349856,2118864196,168626701,1634493778,543450484,1668248144,1920296037,537529701,539107360,1634038339,1735289204,1919501344,1869898597,1936025970,1233003040,2117415217,168626701,1730178900]},{"sector":13,"data":[1210086501,544238693,1629515375,1634296864,543649644,544763746,1769238639,539782767,1701602675,1763734627,1851859060,1919950948,544437093,1076769094,218762560,554306826,1346587953,1295130913,555831363,1346587993,168640545,1701602643,1092645987,1126198380,1634561391,168649838,1699940877,1952671084,1818304627,1768300652,544433516,1948282473,1663067496,1701999221,2037150830,1818587936,1702126437,1768169572,1952671090,779711087,168626701,1143821133,1394627407,1819043176,1936286752,2036427888,1919230067,544370546,1936942445,1936025441,544106784,543516788,1818323300,1646290799,539916399,1730178900,1210086501,544238693,1948282479,1702061416,1936026912,1701273971,1931488371,220226917,538976266,1766203426,1277191532,544502633,1936942413,1936025441,830349856,2118864196,168626701,1634493778,543450484,1668248144,1920296037,537529701,539107360,1701602643,1852404835,1816207463,1766203500,544433516,1629515369,1919501344,1869898597,572553586,875645310,1077968433,168626701,1145909537,841032001,557925453,1145919777,222306625,1936016394,1667591269,1816207476,1866670188,1851878765,218762596,1851867914,1936483683,1819042080,1818587936,1769235301,544435823,1701017701,1864397936,1763730798,1752440942,1969430629,1852142194,544828532,1701602675,1684370531,1919509536,1869898597,221149554,1292504330,1329868115,1750278227,543976549,1886611812,1937334636,1920099616,1830842991]},{"sector":14,"data":[1634956133,544433511,1948282473,1679844712,1869373801,1868701799,1411395192,1701257327,1699225716,1864396908,1752440942,543519589,1936942445,1936025441,1702043692,168632421,572530720,1818838560,1766596709,1293972595,1634956133,544433511,1144094242,226380621,1376390410,1952541797,1344300133,1701015410,1701999972,538970637,1394614816,1667591269,1735289204,1819033888,1818838560,1763734373,543236206,1701996868,1919906915,2116165753,825504073,222314622,554306826,1245793616,1295065377,555829825,1128549681,1295130913,555828036,1128549721,222306337,1769489674,1866670196,1851878765,218762596,1769296138,1293972340,1329868115,1750278227,543976549,543452769,1886611812,1937334636,1701344288,760433952,542330692,1835888483,543452769,1836020336,1076786288,218762560,1297096970,555828552,1162366257,1295065377,555829576,1229475122,1297686817,1075923272,1884228109,1852795252,1699553395,168654190,1868106253,1633886325,1937055854,1752440933,1868767333,1851878765,1864397668,1752440942,1884233829,1852795252,1701650547,1948284270,1769349231,1629517669,1663067246,1735287144,1886330981,1852795252,1935745139,1768124275,1684370529,1953068832,1768300648,544433516,543452769,1970238055,539915120,1835888451,1935961697,1701994784,1936482592,1919950959,1684633199,1713398885,1965060719,1735289203,1701344288,760433952,542330692,1818585171,1635000428,1932356467,1886413175,543649385,1952540006]},{"sector":15,"data":[543519349,543452769,544370534,1851877475,1735289191,1919120160,544105829,1869377379,1629516658,1830839406,1936024687,1702065440,1869881444,1936286752,2036427888,760433952,542330692,1818585171,168636012,1077947693,168626701,1095585825,824254795,558580045,1145909537,841032004,558122061,1145919777,222306628,1852785418,1836214630,1869182049,1866670190,1851878765,218762596,1701860106,1768319331,1998615397,1752458600,1293972069,1329868115,1750278227,543976549,1970235507,1881171052,1886220146,1870209140,1868963957,1868767346,1919510126,1769234797,1646292591,1919903333,1701060709,1769235820,1713399662,1936026729,1684955424,1885696544,1768120684,1713399662,1936026729,1953068832,1969496168,1667853424,543519841,1701667182,1411395187,1663067496,1634561391,1629512814,544174956,1819308129,544433513,1830842228,1702065519,1952669984,1936617321,1634235424,1852383348,1986817910,1869422693,1735289206,1684955424,1886348064,1735289209,1818846752,221148005,1376390410,1952541797,1344300133,1701015410,1701999972,537529715,539107360,1701602628,1735289204,1818838560,1629516645,1142973550,1667592809,1769107316,572552037,825313662,168656439,572530720,1886339872,1735289209,1818838560,572552037,825313662,168656435,572530720,1987005728,543649385,1701603654,2116165747,959590729,222314622,554306826,1397638224,1144070433,555832142,1397638194,1146691873,1075925838,1866664461,1919510126]},{"sector":16,"data":[1769234797,1142976111,1869373801,1866604647,218762616,544098570,1936287860,1634296864,543649644,746090338,1970239776,1851876128,1701868320,2036754787,1701345056,1919248500,760433952,542330692,1818585171,1752375404,1684829551,1869770784,544501869,544567161,544370534,1718513507,1634562665,1852795252,1717920288,543519343,1768300641,1763730796,1701060723,1702126956,1919885412,1885696544,1701011820,1864379492,1752637554,2032168549,1629517167,1881171314,1868984933,1852403058,1869422695,543519605,1769235297,544435823,1952540788,1986947360,1702259823,1886348064,1735289209,544370464,1769369453,1713399662,1936026729,218762542,1818579466,1684370529,1869762592,1969513827,225666418,538976266,1698963490,1769235820,1176528750,1936026729,1684955424,1919501344,1869898597,1936025970,1233003040,2117546289,538970637,1126179360,1769566319,1176528750,1936026729,1233003040,2117284145,538970637,1293951520,1852405359,1766203495,544433516,826900002,226375986,1409944842,1701257327,1699225716,1864396908,543236206,1818323300,1646290799,1864398959,1869182064,1931488366,1667591269,1953046644,1684955424,1701998624,1176531827,1077947953,168626701,1313099809,824254804,559173188,1313092129,1495343444,559173188,1124732224,1768320623,1864396146,1698963566,1702126956,1701331744,1109420899,168654959,1699940877,1952671084,1768453152,1751326835,543908709,544763746,1914728308,1768252261,1629513078]},{"sector":17,"data":[1936026912,1701273971,1717920288,543519343,544567161,1701602660,1629513076,1818846752,1919885413,1919509536,1869898597,1076787570,218762560,1146102026,555832654,1431192625,1144135969,555832654,1431192665,168640545,1718513475,544043625,1377857135,1634496613,1126196579,1801676136,2020557344,168626701,1701602643,1948284003,544434536,1667590243,1868701803,1869881464,1667592736,1702259045,1830838560,1634956133,1646290279,1919903333,1870209125,1701978229,1667329136,543236197,1701603686,544106784,543516788,1701667187,1919509536,1869898597,1646295410,1869422713,1735289206,544370464,2037411683,778530409,168640576,1344342541,559304260,1313091873,841032022,559304260,1313102113,222306646,1852785418,1836214630,544108320,1937076045,1884233829,1952543333,544108393,1667590211,1866604651,218762616,1818579722,544498533,1936287860,1701339936,1646291811,1948285039,1701978223,1986618723,543236197,1936942445,543516513,1852139639,1970239776,1919250464,1836216166,1830838560,1702065519,1952669984,544108393,1952540788,1986947360,1702259823,1869422707,1735289206,544370464,2037411683,543649385,1768300641,1076782444,218762560,1297096970,555830337,1279348017,1295065377,555828548,1162104114,1297686817,1075922244,1766197773,1142973804,1819308905,1327528289,1869182064,1126200174,1634561391,168649838,1766590989,544437363,1701603686,1852383347,1902474016,1668179317,2036473957,1835101728]}],[{"sector":1,"data":[1696607333,1852142712,1852795251,1633951788,539780468,1702521203,1919885356,1685221152,1864397413,1752440942,1768169573,539913075,1869835329,1852793632,1819243124,1752440947,1768169573,1634496627,1718558841,1684629536,544105828,543452769,1953724787,1713401189,1936026729,218762542,1818579466,1684370529,1869762592,1969513827,168650098,572530720,1634222880,1852401518,1752440935,1766203493,1142973804,1819308905,1327528289,1919247474,1233003040,2117219121,168640576,1344342541,559107140,1279537441,841032019,559107140,1279547681,222306643,1818838538,1766072421,1634496627,1884233849,1852795252,1766072435,1735355489,2020557344,168626701,1948282441,544434536,1818323300,1646290799,539785327,544567161,544104803,1851877475,1948280167,1864394088,1919247474,544106784,1667852407,1768300648,544433516,543519329,1953720684,539911269,544567129,544104803,1953720684,1818846752,1646293861,1634607225,539780461,1702131813,1869181806,1679830126,744846433,2053731104,1864379493,1919885426,544367972,1948282479,1679844712,778793833,1970231584,1851876128,1936482592,1886593135,1718182757,1752637561,1701344357,1870209138,1635197045,1948284014,1768169583,1634496627,1768300665,544433516,1752459639,1684629536,544105828,1931506287,1702130553,1768300653,1629513068,1769108596,1702131042,168636019,1699875341,1702125932,1917853796,1684366191,224752245,538976266,1749229602,1768386145,1948280686]},{"sector":2,"data":[1176528232,543517801,1886611780,544825708,1701081679,2116165746,842215753,218762622,544166922,544499047,1886152008,544108320,1768169569,1735355489,2020565536,1953525536,745434985,1818587936,544498533,1629516905,1881171054,1936942450,774981152,168640576,1344342541,559172676,1279537441,841032020,559172676,1279547681,222306644,1835093514,1866604645,218762616,1701860106,2036754787,1701344288,1887007776,1718558821,1818846752,1870209125,1635197045,1293972590,1329868115,1869881427,1936288800,2036473972,1887007776,543649385,1696624225,1852142712,1852795251,1868111918,1633886325,1937055854,1397563493,1397703725,1835101728,543649385,1986948963,1769238117,745762415,1668180256,1768191340,1998612334,1667525737,1935962721,539633696,543452769,1076767039,218762560,1146102026,555832652,1431061553,1144135969,555832652,1431061593,168640545,1886611780,544825708,1684302152,1395617381,1702130553,1766203501,544433516,1667590211,1866604651,218762616,1818579722,544498533,1936287860,1701339936,1646291811,1948285039,1768169583,1634496627,1768431737,1852138596,1684955424,1937339168,544040308,1701603686,1769414771,1970235508,1751326836,1768386145,1948280686,1919509864,1953784096,1969383794,779314548,168640576,1344342541,559303748,1279537441,841032022,559303748,1279547681,222306646,1936016394,1684956515,543649385,1701081679,1749229682,543908709,225996610,1393167626,1667591269]},{"sector":3,"data":[1752440948,1663071081,1801676136,2020565536,544175136,543519605,1702258034,543519602,1752198241,1952801377,1818321769,1685221152,539783781,1869881434,539771168,1931505524,544502383,1713404258,1852140649,543518049,543452769,1702131813,1869181806,1226845806,1869815910,1852404850,2036473959,1952539680,1948265573,1142973800,1701016421,1852400750,1917788263,544367972,1769238639,1679847023,1819308905,544438625,543516788,1953722221,1667592736,1819569765,1869422713,1768319332,1713398885,543517801,1936877926,1075850868,218762560,1146102026,555833164,1464615985,1144135969,555833164,1464616025,168640545,1953656659,544817696,1701667150,1953517344,225341289,1393167626,1667591269,1752440948,1864397673,1869182064,1869881454,1919906592,2036473972,1818846752,1835101797,1763716197,1818304622,1650550896,1667855461,1864395873,1919247474,1869768224,541139053,1512075124,222314542,554306826,1481393232,1144070433,555833420,1481393202,1146691873,1075927116,1867713037,1109423218,2017796217,1936614772,544108393,1769238607,168652399,1699940877,1952671084,1768453152,1886330995,1852795252,544175136,1953656691,1919510048,1646294131,1752440953,1768300645,1634624876,1696621933,1852142712,1852795251,1868965920,2019893362,1819307361,773860453,693393492,1851858988,1752440932,1646292581,1768300665,1634624876,539780461,1629515369,1634234476,1769235810,543973731,1701081711,1713384562,544042866]},{"sector":4,"data":[1869881409,1076779552,218762560,1146102026,555833676,1498170417,1144135969,555833676,1498170457,168640545,1953656659,544817696,1702125892,1953517344,225341289,1393167626,1667591269,1752440948,1864397673,1869182064,1869881454,1919906592,1768300660,544433516,1948285282,1679844712,543519841,2036689012,1919252256,1634476133,1830843507,1718183023,744777065,1635021600,1852404850,1769414759,1948280948,1864394088,1936024684,1768300660,1076782444,218762560,1146102026,555833932,1514947633,1144135969,555833932,1514947673,168640545,1953656659,544817696,1702521171,1953517344,225341289,1393167626,1667591269,1752440948,1864397673,1869182064,1869881454,1919906592,2036473972,1701344288,1818846752,1769152613,539780474,1836020326,1701344288,1634562848,1936026732,1869881460,1701344288,1918987296,1953719655,222314542,554306826,1531724880,1144070433,555834188,1531724850,1146691873,1075927884,1867713037,1109423218,1766072441,1917807475,544367972,1769238607,168652399,1699940877,1952671084,1768453152,1886330995,1852795252,544175136,1953656691,544825888,543516788,1701081711,1718558834,1701344288,1818846752,1864397669,1752440942,1768169573,1076783987,218762560,1297096970,555830593,1296125233,1295065377,555828804,1178881330,1297686817,1075922500,1699940877,1952671084,1919107360,544437103,1701996868,1919906915,544433513,1835888451,224685665,1124732170,1920233071,544435311,1952802935]},{"sector":5,"data":[544367976,1847620207,2032170095,1663071599,1931505249,1667591269,1768300660,544433516,1830841961,543519343,1851877492,1701736224,1919509536,1869898597,539916658,1634541633,1847618418,544503909,1948282740,1663067496,1634561391,1847616622,543518049,1768189545,1702125923,1752440947,1948284001,1663067496,1634561391,1763730542,1667309683,1702259060,218762542,1818579466,1684370529,1869762592,1969513827,168650098,572530720,1818579744,1769235301,1176528750,1936026729,1919107360,544437103,1701996868,1919906915,544433513,826900002,1082011700,218762560,1297096970,555829060,1195658545,1295130913,555829060,1195658585,1297096993,1075924545,1750272525,1226864495,1919903342,1769234797,1126198895,1634561391,168649838,1766066701,1634496627,1763734393,1919903342,1769234797,1864396399,1752440942,1702043749,1952671084,1713398885,543517801,1713402479,1936026729,1752440876,1768169573,1952671090,746156655,1684955424,1701344288,1936286752,168636011,1699875341,1702125932,1917853796,1684366191,224752245,538976266,1767252002,1852405605,1766203495,539780460,1701996868,1919906915,1629498489,1142973550,1702259058,1718503712,1634562671,1852795252,1233003040,2117087793,168640576,1344342541,559044932,1497641249,539042130,1497641505,1495343442,559044932,1393167680,544698216,1868983881,1952542066,544108393,1818323268,1109419887,168654959,1750338061,1679848297,1869373801,1868701799,1768169592]},{"sector":6,"data":[1634496627,1763734393,1919903342,1769234797,1864396399,1752440942,1969430629,1852142194,544828532,1701602675,1684370531,1936286752,1851859051,1953046628,1768169587,1952671090,1701409391,1851859059,1768300644,779314540,168640576,1344342541,558842189,1095577889,824254799,558384205,1145909793,1495343432,558384205,1158286656,1818386798,1632903269,1394633587,1886413175,1126199909,1634561391,168649838,1968441869,544435826,1864396399,1718558834,1635000422,1931504499,1886413175,543649385,543452769,1886611812,1937334636,1701344288,1952661792,543520361,1802723668,1936280608,1869881460,1701344288,1734963744,1864397928,1752440934,1919950949,1634887535,1768693869,539915379,1752459607,1935766560,2004033643,1768976481,1864394606,2032151662,1663071599,1746955873,543520353,1701998445,1634235424,1852776558,1919950949,1634887535,1886330989,1629515365,543236212,1701669236,1684955424,1769435936,543712116,1801675106,1684955424,1919903264,1646291060,1702327397,1881173605,1919381362,779316577,1830830368,543912545,1954047342,544175136,543516788,1835888483,543452769,1768189545,1702125923,1752440947,1948284001,543912801,1885435763,1735289200,544434464,221146735,1376390410,1952541797,1344300133,1701015410,1701999972,537529715,539107360,1852404565,1632903271,1394633587,1886413175,543649385,543452769,543516788,1769235265,1411409270,543912801,1953720652,1233003040,2117219633,538970637]},{"sector":7,"data":[1394614816,1668573559,1735289192,1952793120,1852138871,1869762592,1835102823,2116165747,942944585,222314622,554306826,1346456912,1295065377,555831361,1229212977,1295130913,555829572,1229213017,168640545,1886611780,544825708,1835888451,224685665,1124732170,1735287144,1948283749,1931502952,1701147235,1869422702,1629513060,1914725486,1819243365,1869182069,1937055854,1948279909,1768169583,1634496627,1397563513,1397703725,1701335840,221146220,1376390410,1952541797,1344300133,1701015410,1701999972,538970637,1126179360,1735287144,543649385,543516788,1701995347,1142976101,1819308905,572553569,892422526,1077968436,168626701,1480871969,824254804,559175748,1480864289,1495343444,559175748,1393167680,1701147235,1766072430,1634496627,1867325561,168650084,1750338061,1679848297,1869373801,1868701799,1768169592,1634496627,1948283769,1931502952,1701147235,1869422702,1864394084,1869182064,1629516654,1818845558,1701601889,544175136,745893753,1935761952,1864393829,1852383342,1836216166,1869182049,1919295598,1948282223,1981834600,1868915817,1769104416,544367990,543452769,1920298873,1918986272,1918990180,1394617957,1667591269,1752440948,1668489317,1852138866,1685024032,1870209125,1635197045,1948284014,1937055855,1869881445,1936286752,2036427888,760433952,542330692,1818585171,1629498476,1948279918,544105832,1869572195,1948280179,1327523176,1969365067,1852798068,1867784238,1701147424]},{"sector":8,"data":[1679843616,1819308905,1830844769,543515759,1868981602,2032166258,1663071599,1936682856,1953046629,1702043692,1952671084,544500000,543452769,1869572195,1948280179,1344300392,1769366898,1646294885,1869902965,168636014,1699875341,1702125932,1917853796,1684366191,224752245,538976266,1749229602,1768386145,1948280686,1394632040,1701147235,1766072430,1634496627,2116165753,875901257,222314622,554306826,1381516368,1146102049,555831895,1381516337,1144070433,555831895,1381516338,1144135969,555831895,1381516377,1146691873,1075925591,1917848077,1701410405,1967267959,1852798068,168626701,1886217556,1918988911,544828521,1919182194,544438113,543516788,1701995379,1763733093,1752440942,1768169573,1634496627,1869422713,1864394084,1868767346,544370540,1701340019,2032166253,1931507055,1667591269,778331508,1970231584,1851876128,1701998624,2003134838,544432416,2037277037,1953525536,1936617321,544432416,544567161,1701538156,1749229614,1702063983,1701344288,541806368,1953789282,1948282479,1868767343,1919510126,1870209133,1931506293,1667591269,1852795252,1919885356,1701344288,1851867936,543974755,1953789282,1948282479,1818435695,543519599,543516788,1818323300,1646290799,1998616687,1869116521,1830843509,1852402529,543236199,1851877475,1076782439,218762560,1297096970,555829828,1245990193,1295130913,555829828,1245990233,1297096993,1075921218,1866664461,1936879468,1836008224,1684955501]},{"sector":9,"data":[168626701,1851877443,544433511,543516788,1869377379,1668489330,1701668200,1702065440,1868963940,1397563506,1397703725,1701335840,221146220,1376390410,1952541797,1344300133,1701015410,1701999972,538970637,1126179360,1735287144,543649385,1869377347,572552050,808536446,1077968438,168626701,1464094753,824254801,558978884,1464087073,1495343441,558978884,1124732224,1919904879,1751339808,543518053,1818323268,1109419887,168654959,1850280461,1768453152,1768169587,1735355489,2020565536,1702043692,1952671084,1701344288,1819239200,1931506287,1835362403,1870209125,1635197045,1713402990,1293972079,1329868115,1750278227,543976549,543452769,1852139636,1869112096,543519599,543516788,1646283599,1869902965,168636014,1868106253,1633886325,1702043758,543236197,1869377379,1668489330,1701668200,1717920288,543519343,544567161,1869572195,1763730803,2036473972,1869112096,1852404591,1752440935,1917853797,1701410405,1969365111,1852798068,218762542,1818579466,1684370529,1869762592,1969513827,168650098,572530720,1634222880,1852401518,1866670183,1936879468,1233003040,2117480497,168626701,1730178900,1210086501,544238693,1629515375,1634296864,543649644,544763746,1769238639,539782767,1701602675,1763734627,1851859060,1919950948,544437093,221131078,1175063818,1763734127,1919903342,1769234797,1629515375,1953853282,1701995296,1852404833,1870209127,1864397429,1663069815,1919904879,1751348000]},{"sector":10,"data":[1936026981,1702043692,1752440933,1934958693,1931965029,1769293600,1629513060,1377854574,1919247973,1701015141,222314542,554306826,1415005264,1144070433,555832407,1415005234,1146691873,1075926103,1866664461,544370540,1701339987,1327523181,1869182064,218762606,1970231562,1851876128,1634231072,543516526,1869377379,1864397682,1701978226,1852994932,544175136,543516788,1634100580,544500853,1953785203,543649385,1931508066,1667591269,1735289204,1701736224,543584032,543516788,1869377379,1668489330,1701668200,1919950963,1684633199,1763730533,1752440942,1814066025,544502633,543452769,1852139636,1869112096,1852404591,1752440935,1263476837,1953849888,778989428,1970231584,1851876128,1701147424,1663066400,1919904879,1751348000,543518053,1868981602,2032166258,1663071599,1936682856,1953046629,544825888,1869572195,1735289203,1701344288,1701990432,2003134838,1953849888,778989428,168626701,1634493778,543450484,1668248144,1920296037,537529701,539107360,1851877443,1735289191,1819231008,544436847,826900002,1082013232,218762560,1297096970,555828808,1179143473,1295065377,555829832,1246252338,1297686817,1075923528,1767246349,1293973349,225799781,1493830922,1663071599,1965059681,1948280179,1663067496,1634561391,544433262,1948282479,544434536,1970169197,544175136,1886611812,544825708,1769152609,1701603182,1818846752,1768693861,539784307,544175988,1701603686,1936288800,539784052]},{"sector":11,"data":[1763734127,1919903342,1769234797,1864396399,1768300654,544433516,1948282473,1663067496,1701999221,1679848558,1667592809,2037542772,218762542,1970231562,1851876128,1936482592,1768169583,1634496627,543236217,1953720684,543584032,1970238055,1629516656,1881171054,1919381362,1763732833,1936549236,1684955424,1814061344,544502633,1713399407,1936026729,1684955424,1919509536,1869898597,1936025970,544497952,543516788,1701667187,1835627552,1077948005,168626701,1112363041,824254786,557990477,1145909537,841032011,558580813,1145919777,222306635,1852396298,543517799,1701603654,1936280608,1866670196,1851878765,218762596,1936278538,2036427888,543236211,1735289203,1679844716,1667592809,2037542772,1701999648,1851859045,1768300644,1814062444,544502633,544370534,543516788,1920103779,544501349,1986622052,168636005,1699875341,1702125932,1917853796,1684366191,224752245,538976266,1766072354,1634496627,1735289209,1277190432,544502633,1176528495,1936026729,544106784,1766072417,1952671090,544830063,826900002,1082014001,218762560,1297096970,555828034,1128418609,1295065377,555830340,1279544626,1297686817,1075924036,1967393293,1176530017,543517801,1953720652,1866670195,1851878765,218762596,1936278538,2036427888,2004099187,1768169583,1952671090,544830063,1701147252,1851859059,1768300644,1814062444,1937011561,1919903264,1701344288,1818587936,1702126437,1919164516,677738089,1763715443]},{"sector":12,"data":[1752440942,1768300645,1814062444,779383657,168626701,1634493778,543450484,1668248144,1920296037,537529701,539107360,1886611780,1769562476,1411409774,1176530807,543517801,1953720652,2116165747,825373001,222314622,554306826,1145195856,1295065377,555828290,1296321841,1295130913,555830596,1296321881,168640545,543976513,1701603654,1866670195,1851878765,218762596,1936280586,1696625524,2037540214,1818846752,1852776549,1701344288,1920295712,1953391986,1769104416,539780470,1998615393,543976549,1763734369,1919903342,1769234797,1629515375,1953853282,1701344288,1769104416,539780470,544437353,1701996900,1919906915,745760105,1684955424,1937008928,1818846752,221148005,1376390410,1952541797,1344300133,1701015410,1701999972,538970637,1142956576,1819308905,1852406113,543236199,1953720652,543584032,543976513,1701603654,2116165747,942747977,222314622,554306826,1161973072,1295065377,555828546,1313099057,1295130913,555830852,1313099097,168640545,1735357008,795697522,1701603654,1936280608,1126200180,1634561391,168649838,1766066701,1634496627,1629516665,1936288800,1718558836,1919509536,1869898597,1936025970,1684955424,1818846752,1629516645,1629512814,1936288800,1718558836,1869768480,544436341,543452769,1735357040,1936548210,218762542,1818579466,1684370529,1869762592,1969513827,168650098,572530720,1701402144,1735289207,1701344288,1818838560,1766596709,1629516915,1948279918]},{"sector":13,"data":[1344300392,1919381362,1277193569,544502633,826900002,1082012978,218762560,1297096970,555828802,1178750257,1295065377,555831108,1329876274,1297686817,1075924804,1917848077,1634887535,1766596717,1126200435,1634561391,168649838,1766066701,1634496627,1629516665,1936288800,1718558836,1869768480,544436341,543452769,1735357040,544039282,1835365481,1852383347,1701344288,1920295712,1953391986,1869768480,221147253,1376390410,1952541797,1344300133,1701015410,1701999972,538970637,1327505952,1768842608,1344300910,1919381362,1193307489,1886744434,2116165747,858927433,222314622,554306826,1212304720,1295065377,555829314,1095060785,1295130913,555827525,1095060825,1297490209,1075921222,1699875341,1852399984,1666392180,1852138866,1836008224,1684955501,168626701,1919182162,544438113,543516788,1701995379,539913829,543516756,1634755922,544501353,1701995347,1663069797,1634561391,1679844462,544433519,544501614,1633972341,1948280180,1814062440,544502633,1713399407,1936026729,1718165563,1970239776,1851881248,1869881460,1685091616,543519841,543516788,1953720684,1869881459,1869116192,1751326839,1701277281,1965042803,1948280179,1377854824,1701996133,1663068275,1634561391,1076782190,218762560,1295065354,555827781,1111838002,1297686817,1075921477,1699875341,1936028262,1866670184,1851878765,218762596,760433930,542330692,1818585171,1701978220,1684104562,1752440947,1768169573,1629514611]},{"sector":14,"data":[1965057134,1952539760,1948283749,1814062440,1937011561,544175136,2003789939,1634231072,1936025454,1668641568,1935745128,1818584096,1684370533,544370464,1953719666,1684370031,1818846752,1076786021,218762560,1295065354,555830088,1263029554,1297686817,1075923784,1918110221,1293968741,225799781,1493830922,1663071599,1965059681,1948280179,1663067496,1634561391,544433262,1948282479,544434536,1970169197,544175136,1886611812,544825708,1746956911,543515753,1684174195,1667592809,1769107316,1763734373,1752440942,1766072421,1952671090,544830063,1701147220,222314542,554306826,1128615217,1295130913,555828037,1128615257,168640545,1634760773,1327522926,1277191534,1818588773,1836008224,1684955501,168626701,1886611780,1937334636,1701344288,2019913248,1701585012,543974774,1931503215,1768186485,1952671090,1701409391,1868963955,1752440946,1702043749,1952671084,1679844453,1667592809,2037542772,544106784,543516788,1701996868,1919906915,1918115961,221144421,1376390410,1952541797,1344300133,1701015410,1701999972,538970637,1159733792,1851879544,1735289188,1919501344,1869898597,1936025970,1233003040,2117546545,168640576,824248845,558122317,1162687009,1495343428,558122317,1158286656,1851879544,1916936292,1751346785,1836008224,1684955501,168626701,1886611780,1937334636,1819042080,1986358304,544435301,1931503215,1768186485,1952671090,1701409391,1852383347,1701344288,1818587936,1702126437]},{"sector":15,"data":[1768169572,1952671090,544830063,1948282473,1142973800,1667592809,2037542772,1701991456,168636005,1699875341,1702125932,1917853796,1684366191,224752245,538976266,2017796130,1684955504,543649385,1701996868,1919906915,544433513,826900002,1082013490,218762560,1295065354,555828549,1162169650,1297686817,1075922245,2017790477,1684955504,1819033888,1836008224,1684955501,168626701,1886611780,1937334636,1819042080,1651864352,1701996900,1919906915,544433513,1629515369,1679846508,1667592809,1769107316,1763734373,1752440942,1766072421,1952671090,544830063,1701147220,218762542,1818579466,1684370529,1869762592,1969513827,168650098,572530720,1886930208,1768189537,1142974318,1667592809,1769107316,572552037,842090878,1077968439,168626701,1162686753,841032006,558253389,1162696993,222306630,1819230986,1936744812,1916936293,1751346785,1836008224,1684955501,168626701,1701079368,1818304627,1969430636,1852142194,544828532,1886611812,1702453612,1970479204,1919509602,1869898597,1936025970,544106784,543516788,1701602675,1684370531,1919509536,1869898597,1763735922,1752440942,1766072421,1952671090,544830063,1701147220,218762542,1818579466,1684370529,1869762592,1969513827,168650098,572530720,1819231008,1936744812,543649385,1701996868,1919906915,544433513,826900002,1082012209,218762560,757935370,757935405,757935405,757935405,757935405,1159736621,1380930130,1397050656,1162297683]},{"sector":16,"data":[540100128,1347175752,757935392,757935405,757935405,757935405,1750338061,1868963941,2003790956,543649385,543519329,1953722221,543584032,543516788,1830826310,1634956133,745760103,1953259808,1735749480,1869815912,1830839661,1634956133,544433511,544825709,1881171298,1701011820,1701716068,1914729057,1952541797,1176527973,1699225649,1948282988,1667854447,168636019,1869835329,1668180256,1701082476,1936269412,1818576928,1852776560,1836016416,544108397,1835888483,543452769,1953789282,779316847,168626701,909199649,222306611,1886339850,1851859065,1867325540,1293968758,1634956133,225666407,1175063818,1869376623,1735289207,1701994784,1986360096,1818325605,1701868320,1768319331,1397563491,1397703725,1701335840,1830841452,1634956133,544433511,544567161,544825709,1701012850,543520361,1852139639,1987013920,543649385,543452769,2037411683,543649385,1701603686,1851859059,1684086884,1701013878,1868718368,1746957429,1948284783,1634213999,1701602414,1701344288,168636013,1850280461,1768710518,1632641124,168650868,757935405,757935405,757935405,1632438797,1931502955,543519349,1952540788,1970239776,1701868320,1768319331,1948279909,1663067496,1701999215,1881175139,543716449,544370534,543516788,1701603686,544370464,1701996900,1919906915,1764237433,1970037614,1735289188,1701344288,1919902496,1952671090,1769104416,1814062454,1702130789,539896178,543516756,1752457584,544434464]},{"sector":17,"data":[543516788,1633906540,1852795252,543584032,543516788,1701603686,544370464,1701996900,1919906915,1852383353,1701344288,1919509536,1869898597,1948285298,778397042,1701336096,1953391904,543519337,1752457584,1937075488,1869488244,1700929652,1852795936,544367975,1851877492,540423712,1918986339,1702126433,539915122,544370502,1701998445,1718511904,1634562671,1852795252,1868718368,1881175157,1936225377,1702043692,1749229669,1702129761,741679218,1867981344,1852402546,1769414759,1142974580,1667592809,1769107316,573338469,544106784,543516788,1919251285,1193308967,1701079413,1684955424,1717916192,1852142181,221144419,1175063818,543517801,1142977135,1702259058,1701790752,1867391091,2017796212,225735529,757935370,757935405,757935405,757935405,757935405,757935405,757935405,1124732205,1801676136,544175136,1931502946,543519349,543516788,1986622052,1881156709,745043041,1684955424,1818846752,1835101797,1918967909,1868767333,1667592818,1428172404,1948280179,1713399144,543517801,1953720684,544175136,1701536109,1920299808,1752440933,1768300645,1763730796,1852776563,1701344288,1936286752,1852383339,1701344288,1701868320,1768319331,1679844453,1702259058,1918115886,1937055865,543649385,543516788,1919313234,543716197,1835888483,543452769,1948282479,1444963688,544695657,1970169197,544175136,1633972341,1948280180,1713399144,543517801,1953720684,218762542,1970231562,1986086944]}],[{"sector":1,"data":[1867325541,1948280178,544104808,543518287,1701603654,1818579744,1702126437,755633508,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,221064493,1701336842,1870209134,1634214005,1830839670,543519343,1851877492,1701736224,1818846752,1702043749,1952671084,1948279909,544498024,544567161,1953390967,544175136,2037411683,544370464,1702260589,1870209068,1970086005,1931506803,1768121712,1629518182,1936024608,1634625908,1852795252,1919509536,1869898597,757102962,1869488173,543236212,1701603686,1632444462,1931502955,543519349,544567161,1667592307,1701406313,1851859044,1769497888,1852404851,1768169575,1952671090,544830063,543452769,1952540788,1937008928,1952542752,1936269416,1919902496,1952671090,218762542,1667449098,544437093,1768842564,168649829,757935405,757935405,757935405,1493830957,1830843759,1746958689,543520353,1701409396,1937055844,543649385,1768300641,1948280172,544498024,544567161,1847619428,1746957423,543520353,1701012321,1914729331,1952999273,1869881459,1749229614,543908709,1752459639,1970239776,2037588082,1835365491,1835295008,1936289385,1952543348,1076785775,218762560,1144070410,555829837,1263354929,1144070433,555830349,1296909361,1144070433,555830861,1330463793,1144070433,555831373,1364018225,1144070433,555831885,1397572657,1144070433,555832397,1431127089,1144070433,555832909,1464681521,1144070433,555833421]},{"sector":2,"data":[1515013169,1144135969,555829837,1263354930,1144135969,555830349,1296909362,1144135969,555830861,1330463794,1144135969,555831373,1364018226,1144135969,555831885,1397572658,1144135969,555832397,1431127090,1144135969,555832909,1464681522,1144135969,555833421,1515013170,1146691873,555829837,1263354969,1146691873,555830349,1296909401,1146691873,555830861,1330463833,1146691873,555831373,1364018265,1146691873,555831885,1397572697,1146691873,555832397,1431127129,1146691873,555832909,1464681561,1146691873,555833421,1313686578,168640545,1701603654,1936280608,1699553396,1734439795,168653669,1866861069,2003790956,543649385,543519329,1702258035,543973746,1667592307,1667851881,760433952,542330692,1818585171,1701650540,1734439795,2032169829,1830843759,1914730849,1768252261,1629513078,1629512814,1667855972,1650532453,544503151,544698216,1746956148,1818521185,1752440933,221146469,1409944842,1176528232,543517801,1936027460,544483182,1936291909,755633524,757935405,757935405,757935405,757935405,757935405,1292504365,543517537,1701999987,1970239776,1701868320,1768319331,1948279909,1663067496,1701999215,1881175139,543716449,543452769,1701603686,1701667182,218762542,1667449098,544437093,1768842564,1864393829,1850286194,1768710518,1632641124,168650868,757935405,757935405,757935405,757935405,757935405,757935405,757935405,1493830957,1830843759,1746958689,543520353]},{"sector":3,"data":[1701409396,1852776548,1718558821,1701344288,1819239968,1769434988,221931374,537529610,539631648,1667592275,1769563753,1629513582,1852383342,1920102243,544498533,1752457584,1632444462,1931502955,543519349,1952540788,1970239776,538976288,538970637,1931485216,1768121712,1684367718,1701344288,1919902496,1952671090,1952542752,1868963944,1752440946,1768300645,1864394092,1768169586,1952671090,226062959,538976266,1764237344,1970037614,1735289188,1701344288,1919902496,1952671090,1769104416,1814062454,1702130789,539896178,543516756,1752457584,544434464,224749684,538976266,1869357088,1769234787,1864396399,1752440934,1768300645,1864394092,1768169586,1952671090,544830063,1948282473,1679844712,1667592809,2037542772,538970637,1948262432,778397042,168626701,706748448,1852133920,1852403041,543236199,1701603686,544370464,1701996900,1919906915,1869881465,1701736224,1634235424,1818304628,1684104562,2019893369,1937011561,538970637,1763713056,1752440942,1634934885,1679844717,1667592809,2037542772,218762542,538976266,1767317546,1852401780,1679843616,1667592809,2037542772,1919098924,1769234789,1629513582,2003136032,1919509536,1869898597,1998616946,543716457,224749684,538976266,1634934816,1847616877,543518049,1629516641,1919509536,1869898597,1948285298,544498024,1701997665,544826465,1936291941,221148020,537529610,539631648,1701602628,1735289204,1679843616,1667592809,2037542772]},{"sector":4,"data":[1634235424,1868767348,1767994478,1713402734,1936026729,1766203438,544502642,225800057,538976266,1970085920,1679848563,1952803941,1919885413,1987013920,1752440933,1768300645,779314540,168626701,706748448,1818575904,1852404837,543236199,1953067639,1919954277,1667593327,543450484,1914729071,761553253,2037149295,1818846752,1411395173,168655218,538976288,1634231072,1852401518,1752440935,1768300645,1931961708,1953784096,1969383794,544433524,1965062498,1735289203,1701344288,1634222880,224749422,538976266,1950425120,1651077748,1936028789,1836016416,1684955501,544108320,543516788,1701603654,1852140832,168636021,538970637,1411394080,1852406130,1869881447,1919250464,1836216166,1701867296,1769234802,544435823,1629515375,1769109280,1882023284,1702129522,1684370531,1936286752,168636011,538976288,1835356704,543520367,543516788,1953067639,1919954277,1667593327,1852795252,1869768224,1752440941,1768169573,221145971,537529610,539631648,1852404565,543236199,1701603686,1634235424,1870209140,1868832885,1953459744,1986095136,1667309669,1936942435,1734963744,544437352,221146996,538976266,1749229600,543908709,1752459639,1970239776,2037588082,1835365491,1835295008,1936289385,1952543348,221147759,537529610,539631648,1634038339,1735289204,1679843616,1667592809,2037542772,1953068832,543236200,1752457584,1634235424,544417652,544173940,1735290732,537529646,538976288,1143821133]},{"sector":5,"data":[1914721103,1735353189,1702521198,1634738291,544434292,1948282997,909516911,1634231072,1952670066,544436837,1668180264,1768191340,168650606,538976288,1701344288,1769104416,1629513078,1663067246,1852796015,1564105504,1411395113,1931508082,1768121712,1852406118,543236199,1919903859,544367988,1752457584,538970637,1713381408,1948283503,1679844712,1667592809,2037542772,218762542,1919895050,1919905056,1852383333,1836216166,1869182049,1650532462,544503151,1752457584,1931488371,1126196581,1953522024,891318885,1461854252,1768649327,1998612334,543716457,1701996868,1919906915,745760105,1852383266,1701344288,1702057248,544417650,1684632903,1851859045,1699881060,1701995878,778396526,168626701,1952540756,544434464,543516788,1852797527,1816535143,2037411951,1936278560,755633515,757935405,757935405,757935405,757935405,757935405,757935405,757935405,1698826765,1920299808,1870209125,1852383349,1953654131,1948279909,1663067496,1701999215,1679848547,543912809,1948282473,1679844712,1702259058,1750540334,2032168549,1763734895,1919251310,1752440948,1868767333,1667592818,1768169588,539782003,1143821133,1394627407,1819043176,1818851104,1868767340,1852404846,1998611829,543716457,543516788,1919250543,1869182049,168636014,1750338061,1142977633,1702259058,1701790752,1948741235,1769489696,168653939,757935405,757935405,757935405,757935405,757935405,757935405,1632438797,1931502955]},{"sector":6,"data":[543519349,544567161,1667592307,1701406313,1752440932,1868767333,1667592818,1919164532,543520361,1953785196,539914853,2032166473,1629517167,1965057394,1735289203,1847615776,1870099557,539782002,1701536109,1920299808,1870209125,1918967925,1868767333,1667591790,543450484,1763733364,1411395188,1965062514,1735289203,1701344288,1717916192,1752393074,1836016416,1684955501,544108320,543516788,2003134806,1852140832,1869881461,1919250976,543449445,543516788,1986622052,221148005,1141509386,1702259058,1953451552,1634030112,168655204,757935405,757935405,757935405,221064493,1701331722,1948281699,1679844712,1702259058,544175136,1931502946,543519349,1948280431,1713399144,1869376623,1735289207,218762554,706748426,1679835424,543912809,1763734377,1752440942,1919164517,778401385,168626701,539631648,543516756,1986622052,1868832869,1763734127,1818435699,1684370287,218762542,706748426,1701336096,1936286752,1936269419,1869770784,1819436400,1852383353,1953654131,1763730533,1752440942,1919164517,778401385,168626701,539631648,543516756,1802725732,544434464,1836216166,1702130785,168636004,1851066893,1868785010,2053729895,1142973541,543912809,1869771333,755633522,757935405,757935405,757935405,757935405,757935405,168635693,2032166473,1915188591,1937055845,543649385,1818632289,2037411951,1936286752,1663052907,1801676136,544175136,1931502946,543519349,1952540788,1970239776]},{"sector":7,"data":[543520295,1702063721,1684370546,1701344288,1919902496,1952671090,1936286752,1852383339,1701344288,1769104416,539780470,1952540788,544500000,1763734377,1919251310,543450484,1886351984,2037150309,1851858988,1752440932,1948284001,1679844712,1702259058,1869571104,1936269426,1869374240,778331507,168626701,1667590211,1869881451,1701147424,1634235424,1752440948,1768169573,1629514611,1948279918,1679844712,1702259058,1701994784,1836016416,1769234800,778398818,1919895072,1635280160,1701605485,1870209068,1634541685,1700929657,1953853472,1735289204,1746952480,761816937,1936614756,544830569,1802725732,1953392928,543236207,1986622052,1752440933,1864397921,544828526,1701012321,544437360,762802028,1936614756,544830569,1802725732,168636019,1750338061,1768169573,1830841203,1663072609,1635020399,1646292585,1931502689,1869898597,539915122,544567129,544104803,543519605,543516788,1145784387,1663060819,1634561391,1629512814,1752440948,1868767333,1851878765,1919950948,1953525103,544175136,543516019,1948280425,1701995880,1701994784,1684103712,1667592992,1936879476,544108320,543516788,1802725732,218762542,1920091402,1377858159,1768186213,1176528750,224750697,757935370,757935405,757935405,757935405,221064493,1801538826,1970479205,1948280178,1713399144,543517801,1936291941,1864397684,1752440942,1886593125,1718182757,543450473,1986622052,168636005,1917127181,544370546,1953067607]},{"sector":8,"data":[543649385,1948282740,1142973800,1769239397,1769234798,1176530543,224750697,757935370,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,168635693,1701536077,1920299808,1870209125,1852383349,1953654131,1948279909,1663067496,1701999215,1679848547,543912809,1948282473,1679844712,1702259058,1917788206,1953046572,1970234144,1646290028,1752440933,1948284001,1679844712,543912809,1679848297,1734438241,221144165,1409944842,1176528232,543517801,1763734377,1934958702,2036473957,1836012320,1701736293,1936475424,755633509,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,1493830957,1948284271,1684367730,544175136,543519605,1768300641,1864394092,543236206,2004116846,543912559,1952540788,1836020512,1701736293,1936483616,1936269413,1769174304,539912046,1965059924,1948280179,1713399144,744844393,1970239776,1937075488,1635197044,1965061225,1818850414,544500000,1629516649,1818845558,1701601889,218762542,1801540618,1752440933,1918312549,761623657,1953460816,1769235301,1864396399,1948280422,1142973800,225145705,757935370,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,1750338061,1768169573,2032167795,1629517167,1948280178,1852406130,1869881447,1702065440,2036428064,1986095136,1920409701,761623657,1953460848,1769235301,539913839,1936287828,1701998624,1953391990]},{"sector":9,"data":[1633951859,1713398132,544042866,1852400994,1920409703,1702130793,1869881454,1701344288,1936286752,1377840747,1987013989,1752440933,1920409701,761623657,1953460848,1769235301,539782767,1965060719,1629513075,1718182944,1701995878,1679848558,543912809,1752459639,544503151,1953067639,1919954277,1667593327,1852795252,218762542,1920091402,1663070831,1952540018,543649385,1702109281,1919905901,544830049,1701603686,544108320,1919164513,224753257,757935370,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,221064493,760433930,542330692,1818585171,1633886316,1953459822,1852401184,1752440932,1163141221,1864388685,1297358962,1635131472,1650551154,1629513068,2032165998,1746957679,543520353,1701409396,1869881444,1635021600,1629516914,1869770784,1835102823,1869768224,543236205,1953067639,1919954277,1667593327,543450484,1802725732,1700012078,1919905901,544830049,1701603686,1633886323,1953459822,543515168,1634038371,778331508,1970231584,1851876128,1953064224,544367976,1869440370,1948280182,1998611816,1702127986,1869770797,1952671092,544108393,1836020326,1701344288,1936286752,1864379499,1702043762,1752440948,1163141221,1864388685,1297358962,1635131472,1650551154,1763730796,1752440942,1430331493,1480937300,1110328133,1713394753,778398825,168626701,544370502,1701998445,1718511904,1634562671,1852795252,1868718368,1931506805,1769239653]},{"sector":10,"data":[1948280686,1702061416,1918989856,1818386793,539784037,224748915,538976266,1952797474,1735289204,1701344288,1296389152,1919885392,1347245088,1918981664,1818386793,1233003109,2117547569,168626701,1701998165,1852272483,1684372073,1920091424,168653423,757935405,757935405,757935405,757935405,168635693,1920230738,1752440953,1886330981,1952543333,778989417,543574304,544567161,1818850419,1701257324,543236212,1936942445,744843105,1769304352,1397563508,1397703725,1701335840,1629514860,1931502702,1953653108,544500000,1767991137,1629498478,1948279918,544105832,1920230770,1752440953,1919950949,1684366191,778400373,168626701,1634493778,543450484,1668248144,1920296037,168653669,572530720,1634222880,1852401518,1766203495,1092642156,1769108596,1702131042,2116165747,925905225,537529726,539107360,2037411651,543649385,1701603654,2116165747,858861897,537529726,539107360,1634760773,1852400750,1766072423,1952671090,1701409391,2116165747,926036297,537529726,539107360,1633972309,1735289204,1701344288,1936280608,572552052,909199742,1077968433,168626701,909199649,222306615,1952797450,1735289204,1701344288,1296389152,1919885392,1347245088,1918981664,1818386793,218762597,544098570,543516788,1668248176,544437093,1931503215,1953653108,543649385,543452769,1953068401,1735289204,1869770784,1835102823,1851859059,1397563492,1397703725,1701335840,539782252,1886217588,1918988911]},{"sector":11,"data":[1633820793,543712116,1701603686,1918967923,1919098981,1702125925,1851859044,1953701988,1684370031,544106784,1768169569,1952671090,544830063,1667592307,1701406313,1852383332,1701344288,1296389152,1919885392,1347245088,1918989856,1818386793,1763734373,1870209134,1092645493,1162826837,776160600,542392642,1701603686,218762542,1970231562,2036428064,1986095136,1869881445,1936028192,1948284005,1411409256,542133573,1411412591,1981829197,1634300513,543517794,221931113,537529610,1411394080,1679844712,543912809,544567161,1953390967,544175136,1953719666,543519343,1701602660,543450484,1701603686,1919295603,1763732847,1969627251,221146220,538976266,1701336096,1835365408,1634889584,1713404274,1936026729,2036428064,1702260512,1769109362,1679844724,1952803941,1713398885,1936026729,1970239776,1851881248,537529716,1948262432,1701978223,1919906931,168636005,538970637,1868111914,1953702005,1702130273,1397563492,1397703725,1701335840,1713400940,544042866,1920409697,761623657,1953460848,1702126437,1768169572,221145971,538976266,1970231584,1818851104,1869488236,1700929652,1818386720,1869881445,1635021600,1948284018,1881171304,1919381362,221146465,1460276490,544105832,544567161,1918989427,543236212,1735357040,745365874,760433952,542330692,1818585171,1768300652,544502642,1802465132,1868963955,1752440946,1768169573,1952671090,544830063,1667592307,1701406313,1852383332,1701344288]},{"sector":12,"data":[1296389152,1635131472,1650551154,1629513068,1948279918,544105832,1948282473,1411409256,1981829197,1634300513,778398818,543574304,1663071337,1948741217,1852401184,1752440932,1768169573,1952671090,1701409391,1293954163,1329868115,1750278227,543976549,1819044215,1702065440,1701344288,1919509536,1869898597,1629518194,1679844462,1702259058,1701345056,1948280178,1914725736,1768844917,1293969262,1329868115,1750278227,543976549,1931506537,1701998452,1226845796,1397563494,1397703725,1701335840,1663069292,1948741217,1701995296,543519841,543516788,1886217588,1918988911,1633820793,543712116,1701603686,544106784,544829025,1948280431,1702061416,1919509536,1869898597,1936025970,1953046572,1936286752,2036427888,1752440947,1701650533,1734439795,1159864421,1919906418,1701995296,1852404833,543236199,1886217588,1918988911,1768300665,1948280172,543236207,1986622052,220343909,1409944842,1881171304,1818390386,1830841701,1646295393,1752440933,2032170081,1629517167,1914725746,1768844917,1293969262,1329868115,1750278227,543976549,1836020326,1998610720,1702127986,1869770797,1952671092,1679844453,778793833,168626701,544567129,544104803,544830068,543516788,1819045734,1852405615,168639079,538970637,1699881002,1702260589,1701344288,1769109280,1882023284,1702129522,1869182051,1919295598,1948282223,1679844712,1936421737,218762542,706748426,1952797472,1701344288,1296389152,1919885392,1347245088]},{"sector":13,"data":[1918989856,1818386793,1869881445,1679843616,1667592809,2037542772,544108320,537529697,1679826976,543912809,1952540788,1853057312,1998615591,1702127986,1869770797,1952671092,221144165,1309281546,977622095,661932320,1700929651,1948284019,1702043759,1752440948,1635131493,1650551154,1948280172,543236207,1701996900,1919906915,1852776569,1701344288,1296126496,1769104416,539911542,1948280393,1377854824,1679838529,1702259058,1701798944,1948741235,1986095136,1852121189,1751610735,1835363616,746156655,1701868320,2036754787,1679843616,1701209705,1953391986,1919509536,1869898597,221149554,218762506,544166922,544499059,543516788,1347241300,1684955424,1347245088,1918989856,1818386793,221934437,822742282,1968250926,1293972585,1329868115,1750278227,778857573,168626701,1126182450,1936682856,1919885413,1701995296,543519841,1768169569,1952671090,544830063,544370534,543516788,1886217588,1918988911,1768300665,544433516,220212525,538976266,544370534,1835104357,744844400,1547330336,1886217588,1919885371,543582496,1763719780,1870209139,1377858165,1679838529,1702259058,1870209068,537529717,1868767264,543452277,1667592307,544826985,777796196,218762528,539898634,1948283969,1293968744,1329868115,1868767315,1851878765,1919950948,1953525103,1937055788,1752440933,1702043749,1868767348,1851878765,1869881444,1952805664,538970637,1667327264,1635131496,1650551154,221144428,537529610]},{"sector":14,"data":[1867784224,1952805664,1768453152,1635131507,1650551154,538994028,2035556384,168650096,757080096,757935405,757935405,757935405,757935405,539831597,757080096,221064493,538976266,1347241300,538976288,538976288,538976288,538976288,538976288,544499059,1347241300,1769104445,1547330934,1701996900,1919906915,537529721,1297358880,538976336,538976288,538976288,538976288,538976288,1702043680,1297358964,1919171920,979727977,1919509596,1869898597,168655218,538970637,1701860128,2036754787,1701344288,1919509536,1869898597,1948285298,544498024,544567161,1936681059,1919885413,1701995296,1684370529,544106784,1885697107,538970637,221131296,537529610,1330520096,540689748,543516756,1347241300,1684955424,1347245088,1918989856,1818386793,1633886309,1886593134,1718182757,1752440953,1634934885,220226925,538976266,1629516399,1718182944,1701995878,1679848558,1667592809,2037542772,218762542,538976266,1163153230,1950949434,1914729255,1836016485,1684956525,1948279909,544498024,544567161,544499059,1752461154,1918989856,1818386793,220230501,538976266,544698222,1948282739,544498024,1830842222,1702130785,1752637554,543712105,1735357040,544039282,544567161,1819044215,543515168,1852404597,168635495,1948262432,1981834600,1634300513,543517794,1965061225,544433523,1819044215,543515168,544499059,1920102243,1819566949,168636025,775162381,1701990432,1159754611,1380275278]},{"sector":15,"data":[218762542,539899146,1918989395,1397563508,1397703725,1701335840,1076784236,218762560,554306826,1162691633,1144135969,555828557,1162691673,168640545,1701603654,1851867936,544501614,1126196546,1701408879,1869881444,1937000736,543583333,1936942413,224749409,1493830922,1830843759,1746958689,543520353,1701409396,1869881444,1886348064,543236217,1701603686,544175136,1702065257,539911788,544567129,544104803,1752459621,1663070821,544829551,543516788,1701603686,544175136,1768169569,1919247974,544501349,1701996900,1919906915,1919885433,1701868320,2036754787,1679843616,1701209705,1953391986,1818846752,1835101797,168636005,1699875341,1702125932,1917853796,1684366191,224752245,538976266,1866670114,1852406128,1766203495,544433516,826900002,1082012465,218762560,1144070410,555829069,1196246066,1297686817,1075922756,1750338061,1766072421,1763732339,1967530099,1293970540,1634956133,168650087,1750338061,543519333,544825709,544501614,1696621922,1735749486,1768169576,1931504499,1701011824,544175136,2037411683,1701344288,1818846752,695412837,1936288800,543450484,1948282473,1679844712,1869373801,1868701799,1226845816,1870209126,1918967925,1868767333,1852406128,1869422695,1948280178,544104808,543518319,1701603686,1870209068,1633886325,1751326830,1702063983,544175136,1953394531,1702194793,1886348064,1735289209,1701344288,1818846752,1948283749,544498024,1819044215,1953064480]},{"sector":16,"data":[544108320,543516788,1802725732,1868111918,1633886325,1868767342,1948285296,1914725736,1767992677,1735289198,1818846752,1629516645,1919251558,1970239776,1936615712,544502373,1953459809,544367976,1802725732,544370464,1701602660,1629513076,1818846752,1919885413,1818846752,1948283749,1634541679,1914725739,778923887,168640576,824248845,558452036,1296314913,1495277897,558452036,1175063872,543517801,1953525061,1699553401,1734439795,218762597,1701336074,1818846752,1870209125,1702043765,1952671084,1948279909,1769349231,1663072101,1635020399,544435817,1763733358,1919903342,1769234797,1076784751,218762560,1144070410,555833677,1498235954,1146691873,1075927373,1917848077,1702129257,1699553394,1734439795,168653669,1716062733,1701344288,1769107488,1919251566,544434464,2037609826,544370464,543516788,1852404336,544367988,1969583473,1936269413,1819633184,1293954156,1329868115,1750278227,543976549,1886611812,1937334636,1830838560,1634956133,1713399143,1696625263,543712097,1701603686,1953459744,1769107488,1684370542,1868111918,1633886325,1920213102,1919950969,1769238121,1948280686,1713399144,543517801,1767991137,1931488366,544237931,1852404336,1735289204,1701344288,1818846752,1851859045,1868767332,1852404846,1881171317,1953393010,543649385,543516788,1953719666,543584032,543516788,1701603686,1864379507,1633886322,1818583918,1769107488,1852404846,1077948007,168626701,168626701]},{"sector":17,"data":[1229205793,1495343441,558969156,826552865,1344348497,558975300,1141509440,1702259058,1953451552,1634030112,1293973860,1634956133,168650087,1749223949,543908709,543516788,1986622052,1869881445,543515168,1701999987,543584032,543516788,1819045734,1852405615,168639079,538970637,541138986,1802725732,544434464,1948282473,1679844712,1702259058,218762542,706748426,1701336096,1769104416,1679844726,544370543,1663071081,1702063980,168636004,538970637,1750343722,1768169573,1763732339,1919950963,1919250543,1763735916,1919251310,543450484,1948282473,1679844712,1702259058,218762542,706748426,1701336096,1936286752,1936269419,1919903264,1953784173,1076782181,218762560,1144070410,555832137,1397310553,1144135969,555832137,1397310544,168640545,1953067587,1818321769,1920091424,1293972079,1634956133,168650087,1918110221,1752440953,1868963941,2003790956,979857001,168626701,1920230738,1752440953,1884233829,1952543333,225341289,757935370,757935405,757935405,757935405,757935405,1716062733,1970239776,1667592736,1702259045,543236196,1701733703,543973746,1818845510,543519349,1869771365,1914711154,2037544037,1701344288,1701867296,1769234802,539913839,1948280393,544434536,1936027492,544483182,1802661751,1868767276,1852404846,1914725749,1768186213,221144942,1124732170,1801676136,1970231584,1699618930,1919907700,1866670187,1667591790,1852795252,757926413,757935405,757935405]}],[{"sector":1,"data":[757935405,757935405,757935405,757935405,221064493,543574282,662007673,1965057394,1735289203,1847615776,1870099557,1663069042,1701736047,1869182051,1663052910,1801676136,544175136,1931502946,543519349,544567161,543519329,1818850419,1868767340,1667591790,543450484,543452769,1763734633,1870078067,1852402546,168636007,1866861069,1818304626,1953439852,544367976,1936942445,1936025441,1868767276,1852404846,1914725749,1768186213,221931374,1124732170,1801676136,1701344288,1869366816,544829552,1802725700,757926413,757935405,757935405,757935405,757935405,221064493,543574282,662007673,1965057394,1735289203,1713398048,1886416748,1768169593,539782003,1667590243,1869881451,543515168,1701999987,1634235424,1870209140,1702242165,1936615712,1702130277,1752440932,1868767333,1667592818,1768169588,1763732339,1752440942,1919164517,744846953,1634235424,1953046644,544434464,1702063721,1684370546,1869770784,1819436400,1629498489,1948279918,544498024,543516788,1986622052,1868832869,1763734127,1818435699,1684370287,218762542,1701331722,1948281699,1176528232,1634562671,1852404852,755633511,757935405,757935405,757935405,757935405,221064493,1701336074,1936286752,1634541675,1700929657,1835099168,1684367201,1919885356,1701344288,1936286752,1851859051,1752440932,1919164517,543520361,544825709,1763730786,1836016494,1769234800,778398818,1919895072,1635280160,1701605485,1870209068]},{"sector":2,"data":[1634541685,1700929657,1953853472,1735289204,1746952480,761816937,1936614756,544830569,1802725732,1953392928,543236207,1986622052,1752440933,1864397921,544828526,1701012321,544437360,762802028,1936614756,544830569,1802725732,168636019,1749223949,543908709,543516788,1986622020,755633509,757935405,757935405,757935405,168635693,544567129,544825709,1702257000,1881170208,1818390386,1998613861,543716457,1920298873,1918986272,1919164516,778401385,1801538848,1970479205,1763730802,1936269428,1869770784,1819436400,1868767353,1667591790,778331508,1852785440,1953265011,1970239776,1634214002,1635214450,1679844722,1836409711,1635020389,1852795252,1919903264,1919905056,1920213093,1818391919,1752378725,1769238383,1629513582,1667855972,1077948005,168626701,1327565325,558047521,1430532385,841032019,559109444,1430542625,824254803,559175236,1447309857,1495343444,559175236,1124732224,1634561391,1109419118,1869902965,168653678,1866861069,2003790956,543649385,543519329,1702258035,543973746,1835888483,543452769,1953789282,544435823,1952540788,2036428064,1886413088,544366949,1679847017,1869373801,1868701799,779314552,168626701,1109412687,1869902965,755633518,757935405,757935405,1749223949,1702063983,1701344288,541806368,1953789282,1948282479,1633886319,544830066,544503151,543516788,1835888483,543452769,1864397423,1634887024,1852795252,1701868320,1768319331,1763730533]},{"sector":3,"data":[1752440942,1679848297,1869373801,1868701799,168636024,1700334093,1967267955,1852798068,757926413,757935405,757935405,1749223949,1702063983,1701344288,1936021792,1953849888,544108404,2032166505,1998615919,544501345,1663070068,1769238127,543520110,1920098659,1735289209,1953853216,1701344288,1836016416,1684955501,544370464,1919250543,1869182049,1935745134,1701868320,1768319331,221144165,1124732170,1701015137,1967267948,1852798068,757926413,757935405,757935405,221064493,1869103882,543519599,543516788,1668178243,1646292069,1869902965,1869881454,1851876128,543974755,543516788,1835888483,543452769,1864397423,1634887024,1852795252,1701868320,1768319331,1763730533,1752440942,1679848297,1869373801,1868701799,1126182520,1936682856,543649385,543516788,1668178243,1646292069,1869902965,1818435694,1936028527,1701344288,1634296864,543649644,779644770,168626701,1109421902,1869902965,755633518,757935405,757935405,1749223949,1702063983,1701344288,544165408,1953789282,1763733103,1870209126,1868832885,1953459744,1851881248,1752440948,1868767333,1851878765,1919885412,1701867296,1769234802,1663069807,1769108065,1864393829,1629516917,1886593139,1718182757,778331497,168626701,1936682051,1967267941,1852798068,757926413,757935405,757935405,168635693,1936682051,1948283749,1679844712,1869373801,1868701799,1919885432,1769497888,1210086260,779119717,168626701,1634493778,543450484]},{"sector":4,"data":[1668248144,1920296037,537529701,539107360,1869572163,1735289203,1836008224,1684955501,1953841696,1936617332,1233003040,2117677105,168640576,1397557773,1397703725,1162367776,1210076236,542133317,1129271888,1381319749,539775813,1143821133,891310927,168636462,1226902029,556806193,1091177792,1852400740,1851859047,1749229668,1768386145,1344300910,1919381362,1193307489,1886744434,218762611,572539146,1970238055,1763713648,543236211,1701667182,1986619168,1948282469,543236207,1819045731,1769235301,1864396399,1919950950,1634887535,1953046637,779316581,1970231584,1851876128,1684300064,1847615776,1730180965,1886744434,544175136,1953459809,544367976,1735357040,544039282,1970238055,1852383344,1701344288,1869770784,1835102823,1936288800,1327509108,543515502,662007673,1629513078,1684366436,1730175264,1886744434,1870209068,1633886325,1684086894,1953439844,544367976,1735357040,544039282,1835365481,1851859059,1919361124,1936749935,544175136,221148265,1409944842,1684086895,543236196,544695662,1970238055,168639088,774965773,1701859104,1752440942,1919361125,544241007,1998614388,1751345512,1970239776,1851881248,1869881460,1684300064,1730175264,1886744434,839519534,1917198382,1948282223,1176528232,543517801,1970169197,1751326764,1702063983,2003127840,537529646,1750343712,1699618917,1917853815,1634887535,1649352813,1952671082,1634296864,543649644,544763746,1701867617,779317857]},{"sector":5,"data":[775096845,1818579744,544498533,543516788,1735357008,544039282,1970238023,1886330992,1852795252,1953849888,544108404,543452769,1869572195,1948280179,1327523176,537529675,1969365024,1852798068,537529646,1750343712,1681989733,1917263972,544241007,1818323300,1646290799,1629517935,1634037872,221148018,539898890,1701869908,1847615776,543518049,544370534,543516788,544695662,1970238055,1965564016,1869881456,540226080,1918986339,1702126433,774468466,775227917,543574304,544567161,1953390967,2037653548,1629513072,1818576928,1701650544,1734439795,1851859045,1634738276,1870099315,1713398898,1948283503,168650088,1730158624,1886744434,906628398,1749229614,1702063983,1701344288,541806368,1953789282,221146735,538976266,543516756,1701667182,543584032,543516788,1970238055,1885413488,1918985584,1852383347,1701344288,1869770784,1835102823,1936288800,1226845812,537529710,1919361056,1768452193,1830843235,744842351,1730175264,1886744434,1868785952,1885413486,1918985584,1701716083,1948284024,1953046639,1852383291,2019914784,537529716,1869422624,539780452,1629516905,1634037872,1763734386,1919033454,1701536609,221148020,218762506,1970231562,1851876128,1634231072,543516526,1886351984,1769239141,1864397669,1935745138,1852270963,1684300064,1869182057,543973742,1886351984,1769239141,168653669,544370534,543976545,1970238055,1696625520,1885692792,1752440948,1632444517,1730178665]},{"sector":6,"data":[1886744434,218762542,544166922,1851877475,1948280167,1881171304,1701867378,1701409906,1718558835,1730175264,1886744434,218762554,539898122,1701602643,1948284003,1730176360,1886744434,1835101728,1937055845,543649385,543516788,1869771361,1701519479,1864397689,537529714,543236128,1937076077,168636005,1176514098,544042866,543516788,1701603654,1852140832,1663052917,1936682856,1917853797,1919250543,1936025972,537529646,1750343712,1917853797,1634887535,1917263981,544241007,1886351952,1769239141,1679848293,1869373801,1868701799,1885413496,1918985584,168636019,1226845747,1870209126,1635197045,539784302,1851877475,1948280167,1948280168,1701606505,873073966,1716068398,1970239776,1851881248,1629498484,1864393828,1751326834,1701277281,1701344288,1818576928,1702109296,1629516920,1629512814,1935765536,1919907699,168636004,1126182453,1936682856,1752440933,1263476837,1953849888,778989428,168626701,1634493778,543450484,1768976212,537529699,539107360,1735357008,544039282,1970238023,1629516656,1344300142,1919381362,1226861921,1936549236,612246048,2117088305,168626701,1634493778,543450484,1668248144,1920296037,168653669,572530720,1701859104,1735289198,1869762592,1835102823,1869760288,544436341,826900002,226374450,538976266,1681989666,1735289188,1869762592,1835102823,1702119712,1948283757,1917853807,1634887535,1917263981,1936749935,1233003040,2117218353,168640576,1226902029]},{"sector":7,"data":[556937265,1091177792,1852400740,1917853799,1634887535,1950949485,544435557,1344302964,1919381362,1193307489,1886744434,218762611,544098570,543516788,1735357040,544039282,1953720684,1870209068,1633886325,1684086894,543236196,1735357040,544039282,1835365481,544175136,1919361121,779122031,1881162016,1919381362,1763732833,544040308,1953394531,1936615777,1635021600,1886745714,1718511904,1634562671,1852795252,1868718368,1629516917,1869770784,1835102823,1818846752,1461726821,544105832,544567161,1869572195,1948280179,1881171304,1919381362,1763732833,745366900,760433952,542330692,1818585171,1953701996,1937011297,1701344288,1869770784,1835102823,1667457312,1768190575,1948280686,1870209135,1763734133,1920234350,1769235317,779316847,168626701,1163153230,541139002,1735357040,544039282,1835365481,544434464,544501614,543516788,1735357040,544039282,1701603686,1937008928,778464357,543574304,544567161,543450209,1919950945,1634887535,1953046637,539782501,544567161,543450209,2037149295,1701344288,1869770784,1835102823,1936288800,544417652,1918989427,544241012,1953721961,1952675186,1936617321,1919903264,1634235424,1919950964,1634887535,1411395181,1881171304,1919381362,1763732833,1818588020,1701978214,1852399981,1852383347,1937008928,1919509536,1869898597,1864399218,1870209134,1746956917,543453793,1986622052,168636005,1867778573,1684300064,1881170208,1919381362,1763732833]},{"sector":8,"data":[980247924,168626701,1327509041,544105840,543516788,1970238055,1870209136,1635197045,1948284014,1684086895,543236196,544695662,1835365481,779056160,775031309,1869760032,1752440941,1766203493,1830839660,745893477,1869112096,543519599,779576654,538970637,1701336096,2003127840,1869762592,1835102823,1784827680,544498533,1818323300,1646290799,1629517935,1634037872,221148018,539898634,1701602643,1948284003,1344300392,1919381362,1226861921,544040308,1769238639,1646292591,1869902965,1851859054,1751326820,1702063983,1701344288,537529632,1263476768,1953849888,778989428,538970637,1701336096,1684291872,1869762592,1835102823,1634296864,543649644,544763746,1701867617,779317857,775162381,1886999584,543236197,1701667182,1919903264,1701344288,1869770784,1835102823,1702127904,1965564013,1869881456,540226080,1918986339,1702126433,774468466,775227917,544098592,543516788,1835888451,1935961697,2020565536,2037653548,1948280176,1847616872,543518049,1948280431,1881171304,1919381362,1713401185,224750697,538976266,1952540788,1853190688,1752440947,1919950949,1634887535,1629498477,1735290732,1953068832,1851859048,1684086905,1769236836,1818324591,1769435936,1701340020,537529715,1919885344,1918988320,1952804193,779317861,775293453,543574304,544567161,1953390967,1886593068,1718182757,543236217,1918989427,544241012,1701996900,1919906915,1629498489,1768714352,1769234787,168652399]},{"sector":9,"data":[1931485216,1953656680,544503139,746153323,1935765536,1919907699,1864379492,1684086898,1668178294,1881171045,1701867378,1701409906,1868963955,1752440946,168653673,1763713056,778921332,775358989,1869103904,543519599,543516788,1646283599,1869902965,168636014,168626701,1931505492,1768121712,1629518182,1869116192,1969452146,1701519476,1868767353,1852400237,1869182049,1852383342,1701344288,1886404896,1633905004,1852795252,1869108000,1969452146,1699422324,1868701817,168639096,774965773,1818579744,544498533,543516788,1819308097,1952539497,544108393,1919903827,1953850228,2036681504,2020565536,839519534,1917853742,544437093,543452769,1684828008,2003788832,1852776558,1718558821,1701344288,1819239968,1769434988,1797285742,980646245,1229476640,221008966,538976266,1280463939,1919885356,1414283552,1851858988,1752440932,1948282469,543518841,1701584993,1919251572,168632366,1293951008,1329868115,1750278227,543976549,1886611812,1937334636,1701344288,2036689696,1870209139,1919950965,1702064997,1226845796,1851465830,1566928495,538970637,1886413088,1936875877,544106784,543516788,1954047348,2020565536,1752440876,1752375397,1668575855,1797289077,1663072613,1768058223,1769234798,2032168559,168654191,1696604192,1919251566,1763730533,1853169779,1767994977,1818386796,1411395173,1629518194,1752461166,1663070821,1768058223,1769234798,221146735,1175063818,1696625263,1886216568,539780460]},{"sector":10,"data":[2032166505,1998615919,544501345,1965059956,1394632051,1413892424,1948276523,1869422703,1948280182,1766662255,1936683619,544499311,1685221207,1870209068,1870078069,543452277,1936028272,1213407347,542393929,543452769,1852139636,1887007776,779559013,760433952,542330692,1818585171,1870078060,543452277,1886611812,544825708,1179207763,542583636,1948282473,1948280168,544503909,544763746,543452769,1954047342,544175136,543516788,1735357040,544039282,1819568500,1852383333,1701344288,1952661792,543520361,1802723668,1936280608,168636020,1330514445,540689748,1701670739,2036689696,1836016416,1634625890,1852795252,1918967923,1869488229,1986076788,1634494817,778398818,544162848,544501614,543519605,543516788,1819045734,1852405615,1701519463,1868767353,1852400237,1869182049,221934446,1124732170,726422100,1124732227,726422100,1124732237,726422100,1124732233,726422100,1124732232,726422100,1124732251,726422100,1864900661,1752440942,1701519461,1684107385,1393167657,1413892424,1381253931,223161164,1229476618,1126913094,726422100,1393167689,1413892424,1381253931,222833484,1229476618,1126913094,726422100,1393167707,1413892424,1381253931,540355404,544108328,543516788,1887004011,220816481,1376390410,1952541797,1411408997,1667854447,538970637,1344283168,1919381362,1193307489,1886744434,1851859059,1917853796,1634887535,1950949485,544435557,824475170,226373684,1376390410]},{"sector":11,"data":[1952541797,1344300133,1701015410,1701999972,537529715,539107360,1852141647,543649385,1735357008,544039282,1970238023,572552048,842090878,168656435,572530720,1936278560,2036427888,543649385,543516788,1701603654,1936280608,1851859060,1752440932,1917853797,1634887535,1766596717,572552307,842090878,168656437,572530720,1635013408,1852404850,1917853799,1634887535,572552045,875645310,1077968439,168626701,808536353,222306612,1634222858,1852401518,1917853799,1634887535,1950949485,1344302437,1701867378,1701409906,218762611,1970231562,1851876128,1634231072,543516526,1919950945,1634887535,1953046637,1931963749,1869770784,1953654128,544433513,1629516399,1734964083,1684086894,1769236836,1818324591,1869770784,1953654128,544433513,1702127201,1870209138,1702242165,1684300064,1948279909,1881171304,1919381362,1763732833,778921332,168626701,1663070036,1735287144,1752440933,1919950949,1919250543,1936025972,543584032,1919950945,1634887535,1953046637,221932901,822742282,1884233774,1948282469,1730176360,1886744434,1634235424,1868767348,1767994478,1948283758,1881171304,1919381362,1763732833,778921332,775031309,1818579744,544498533,543516788,1735357040,544039282,1835365481,856296750,1917198382,1948282223,1176528232,543517801,1970169197,1751326764,1702063983,1869762592,1953654128,779314537,538970637,1701336096,1869762592,1835102823,1702119712,1917853805,1919250543,1936025972]},{"sector":12,"data":[1634296864,543649644,544763746,1701867617,779317857,775162381,543574304,544567161,1953390967,1751326764,1701277281,1701344288,1701868320,1768319331,1948279909,1701606505,1684955424,538970637,1869770784,1835102823,1818846752,168636005,1226845749,1870209126,1635197045,539784302,1851877475,1864394087,1886593138,1718182757,1851859065,1718558841,1701344288,168650099,1864376352,1869182064,540701550,1918989395,544241012,1701996868,1919906915,1092627577,1768714352,1769234787,1394634351,1953656680,225736035,538976266,746153291,1969311776,1092642163,1919251558,1769489696,1864379508,1632641138,1870099315,221144178,539899402,1629515604,1734964083,1919885422,1634231072,543516526,1635148897,1684366190,1869770784,1953654128,745760105,1869112096,543519599,224749684,538976266,1635148865,1684366190,1953849888,778989428,538970637,1701336096,1986281760,1701015137,1917853796,1919250543,1936025972,1634296864,543649644,544763746,1701867617,779317857,775358989,1701860128,2036754787,1701344288,1953525536,1936617321,1970239776,1851881248,1629498484,1663067246,1936682856,1752440933,1263476837,1953849888,544108404,168652660,1663049760,1702063980,1701344288,1986281760,1701015137,1917853796,1919250543,1936025972,1634296864,543649644,779644770,775424525,1869103904,543519599,543516788,1646283599,1869902965,168636014,168626701,1931505492,1768121712,1629518182,1869116192,1969452146]},{"sector":13,"data":[1701519476,1868767353,1852400237,1869182049,1852383342,1701344288,1886404896,1633905004,1852795252,1869108000,1969452146,1699422324,1868701817,168639096,774965773,1818579744,544498533,543516788,1819308097,1952539497,544108393,1919903827,1953850228,2036681504,2020565536,839519534,1917853742,544437093,543452769,1684828008,2003788832,1852776558,1718558821,1701344288,1819239968,1769434988,1797285742,980646245,1229476640,221008966,538976266,1280463939,1919885356,1414283552,1851858988,1752440932,1948282469,543518841,1701584993,1919251572,537529646,1397563424,1397703725,1701335840,1679846508,1819308905,544438625,543516788,1937335659,1970239776,1701998624,1684370291,1716068398,1869503264,224224622,538976266,1701867617,544436833,1948282473,1948280168,544503909,746090338,1701344288,1869116192,1969452146,1701519476,1868767353,1852400237,1869182049,1870209134,537529717,1852121120,1701995892,1936269412,1634628896,1818845558,1701601889,1918115886,1851859065,1701344367,1868767346,1852400237,1869182049,168636014,1866861069,2019893362,1819307361,1763716197,1870209126,1635197045,1948284014,1937055855,1213407333,726943305,1869881431,1987013920,1869881445,1667845408,1869836146,1461744742,744780399,1970239776,1970239264,1881171052,1936942450,1229476640,1629508678,1948279918,544105832,1701869940,539916064,1143821133,1394627407,1819043176,1970239264,1679844460,1819308905,1394637153]},{"sector":14,"data":[1413892424,1763727147,1752440942,1702109285,1646294136,1629517935,1847616622,544503909,1948282740,1881171304,1919381362,1948282209,1701606505,544106784,543516788,1769235265,1411409270,543912801,1953720652,218762542,1414483466,1394620997,543518063,544826731,1651339107,1952542313,1936617321,1701994784,1953459744,1635148064,1650551913,539911532,1847619396,1965061231,1948280179,1713399144,1869376623,1735289207,2036689696,1836016416,1634625890,1852795252,168639091,1413679629,1126911058,1413679629,1294683218,1413679629,1227574354,1413679629,1210797138,1413679629,1529564242,1413679629,892030034,1852778528,1701344288,2036689696,694444400,1213401613,726943305,1280463939,168643883,1179207763,1413688148,1227574354,1213401613,726943305,1280463939,168642603,1179207763,1413688148,1529564242,1213401613,726943305,1280463939,673199403,1948282479,1797285224,1634761061,168634724,1699875341,1702125932,1867784292,224618864,538976266,1917853730,1634887535,1917263981,1936749935,1684955424,1869762592,1835102823,1702119712,572552045,875635838,168656432,1699875341,1702125932,1917853796,1684366191,1936028277,538970637,1327505952,1768842608,1344300910,1919381362,1193307489,1886744434,2116165747,858927433,537529726,539107360,1886611780,1769562476,1948280686,1176528232,543517801,1953720652,1684955424,1701344288,1869762592,1835102823,1936280608,2116165748,892481865,537529726,539107360]},{"sector":15,"data":[1918989395,1735289204,1869762592,1835102823,2116165747,926167369,222314622,554306826,892350793,168640545,1869837121,1952541027,543649385,1701603654,1769414771,1629513844,1869762592,1835102823,168626701,544828993,1701603686,544106784,543516788,1701603686,1936288800,1633886324,1700929646,1852402720,543450475,1752459639,1881170208,1919381362,1931504993,1752440943,1864397921,1768842608,1948280686,1713399144,543517801,1869903201,1769234797,1819042147,1953702009,1937011297,1701344288,1869770784,1835102823,1766203438,544433516,543519329,1869837153,1952541027,1646290021,1752440953,544368997,1701603686,1701667182,1954047264,1769172581,779316847,1919895072,1635280160,1701605485,1870209068,1868767349,543452277,1802398060,1818846752,1948283749,544498024,1702257000,1701344288,1481911840,2019893332,1936614772,544108393,1752459639,760433952,542330692,1953064005,1931506287,1752440943,1998615649,544105832,544567161,1852141679,773873952,542398548,1701603686,1397563436,1397703725,1768178976,544370548,1869903201,1769234797,1819042147,1953702009,1937011297,1684955424,1701867296,1948283758,544498024,1701603686,218762542,1970231562,1851876128,1936482592,1935745135,1768124275,543519841,1701603686,1769414771,1970235508,2019893364,1936614772,1936617321,544175136,1919950945,1634887535,1768300653,539911532,1702129486,1634235424,1986338932,544830053,1701603686,1953068832,1953853288]},{"sector":16,"data":[544104736,1702131813,1869181806,1769414766,1646292076,1935745125,1768124275,1684370529,1953068832,1752440936,1702043749,1952671084,1881171045,1919381362,1713401185,778398825,168626701,1629515604,1668248435,1702125929,1713398048,543517801,1752459639,1881170208,1919381362,221932897,822742282,1699946542,1952671084,1701344288,1869770784,1835102823,1818846752,1752440933,2032170081,1998615919,544501345,1629515636,1668248435,1702125929,538970637,1818846752,1998615397,778597481,775031309,1869760032,1752440941,1766203493,1830839660,745893477,1869112096,543519599,1869837121,1952541027,168636005,1411391520,1092642152,1668248435,1702125929,1818838560,1768169573,1735355489,2020565536,1886413088,1936875877,856296750,2035556398,1948280176,1696621928,1852142712,1852795251,1718558835,1701344288,1818846752,1948283749,544498024,544567161,1953390967,225408032,538976266,1869837153,1952541027,1769414757,1948280948,1881171304,1919381362,539782497,1634755955,1769234802,1696622446,224944993,538976266,1702131813,1869181806,1769414766,1629513844,1634759456,539911523,1629515604,1668248435,1702125929,1819042080,1818846752,1998615397,1869116521,168653941,1629495328,2019893358,1936614772,544108393,1752459639,1881170208,1919381362,1713401185,744844393,1887007776,543236197,1769104752,1763730543,1702130542,168649825,1864376352,1851859046,1954047264,1769172581,221146735,539898890,1869572163]},{"sector":17,"data":[1948280179,1327523176,1969365067,1852798068,218762542,225595146,822742282,1699946542,1952671084,1713398048,543517801,1952540788,1935763488,1701344288,1954047264,1769172581,2032168559,1998615919,779382369,775031309,1869760032,1752440941,1766203493,1830839660,745893477,1869112096,543519599,1869837121,1952541027,168636005,1411391520,1092642152,1668248435,1702125929,1818838560,1768169573,1735355489,2020565536,1886413088,1936875877,856296750,2035556398,1948280176,1881171304,543716449,543452769,1735357040,544039282,1701603686,1701667182,543584032,543516788,1735357040,544039282,225800057,538976266,1953390967,544175136,1869837153,1952541027,1769414757,1948280948,544498024,1702131813,1869181806,168636014,1126182452,1936682856,1752440933,1263476837,1953849888,778989428,168626701,1163153230,1750540346,1629515365,1668248435,1769234793,1830840174,1769237621,543517808,1702131813,1869181806,539784046,544567161,544104803,1701869940,544240928,924872564,1751326777,1667330657,1936876916,544106784,543516788,1818323300,1646290799,539916399,1702326088,745694582,1970239776,1851876128,1819176736,1935745145,1768124275,543519841,1696624225,1852142712,1852795251,1953068832,1852776552,1919950949,1634887535,1952522349,1948279072,778399081,1919895072,1635280160,1701605485,1870209068,1633886325,544483182,1869837153,1952541027,1752440933,2019893349,1936614772,544108393,1415074862]}],[{"sector":1,"data":[1953068832,2004099176,1768169583,1919247974,544501349,1954047348,1768187181,1735289204,1869770784,1835102823,1952522355,1701344288,1835103008,1769218149,221144429,1376390410,1952541797,1411408997,1667854447,538970637,1092624928,1668248435,1702125929,1766203492,544433516,824475170,226374450,1376390410,1952541797,1344300133,1701015410,1701999972,538970637,1327505952,1768842608,1176528750,1936026729,1233003040,2117153585,168640576,1226902029,557135409,1107955008,1768645473,1428186990,1766203504,225666412,1225395466,1870209126,1634214005,1847616886,1919249781,544437615,1701603686,1869881459,1667326496,1886724203,1870209068,1633886325,1937055854,1752440933,1631723621,1886743395,2020165152,1142973541,543912809,1735357040,544039282,1835365481,544106784,543516788,1802725700,1769231648,1769236844,1730179941,1886744434,218762542,544166922,1801675106,544240928,1701603686,168639091,774965773,1869760032,1752440941,1766072421,1428188019,1768712564,1936025972,1869768480,539783285,1869572195,1948280179,1109419368,1969972065,1766203504,224683384,538976266,1802725700,1869770784,1835102823,1702127904,168636013,1411395122,1633820783,1965058915,1870209136,1696625269,1919513710,1634213989,1679844466,745239401,1869112096,543519599,543516788,1646283599,1869902965,168636014,1411391520,1633820783,1965058915,543236208,1684174195,1667592809,2037542772,544370464,1701602675,1684370531]},{"sector":2,"data":[1818846752,539784037,1948283503,1684086895,537529700,1768300576,544433516,1629515636,2019893358,1769239401,1931503470,1768186485,1952671090,746156655,1887007776,1752440933,1885413477,1886351984,1952541042,537529701,1634738208,1701667186,1936876916,2004033580,1751348329,539784037,543452769,1684826487,1685217635,1852383347,1701344288,1918980128,1952804193,225669733,538976266,746090338,1684955424,1701344288,1751326830,1702063983,1701344288,541806368,1953789282,221146735,539898634,1852139607,1701344288,1667326496,544241003,1713402729,1936289385,744777064,1701998624,1629516659,1797290350,1948285285,1701978223,1852994932,225408032,538976266,1143821133,1394627407,1819043176,218762542,1376390410,1952541797,1411408997,1667854447,537529715,539107360,1735357008,544039282,1970238023,1629516656,1344300142,1919381362,1226861921,1936549236,612246048,2117088305,538970637,1293951520,543519343,1109421679,1969972065,1766203504,543450488,1802725700,612246048,2117284657,168626701,1634493778,543450484,1668248144,1920296037,537529701,539107360,1953719634,1852404335,1631723623,1684368227,544232736,1701603654,2116165747,909521225,222314622,554306826,909128009,168640545,1851877443,1735289191,1819231008,225669743,1493830922,1663071599,1663069793,1936682856,1919295589,1629515119,1918989856,2037671273,543584032,1869377379,1868767346,1852400237,1869182049,1713402734,1679848047]},{"sector":3,"data":[1819308905,1852406113,1752440935,1397563493,1397703725,1701335840,1998613612,1868852841,1411395191,1847616872,1700949365,1718558834,1869112096,1936024425,1970239776,1986095136,1701060709,1684956528,1852776563,1701344288,1887007776,1718558821,1937339168,544040308,662007673,1965057394,1735289203,1684955424,2003789856,544500000,1931506537,1965061221,168636016,1867778573,1634231072,543516526,1869377379,1668489330,1701668200,168639091,774965773,1869760032,1752440941,1884233829,1852795252,1701650547,539784558,1869572195,1126196595,1919904879,168636019,1411391520,1126196584,1919904879,1751339808,543518053,1818323300,1646290799,1629517935,1634037872,221148018,539898378,1701602643,1948284003,1931502952,1835362403,1870209125,1635197045,1713402990,544042866,543516788,1953720684,856296750,1867784238,1701147424,1634236192,1752440948,1868767333,1936879468,1818851104,1869357164,1814063983,744844137,1869112096,543519599,543516788,1986359888,225928553,538976266,1953789282,221146735,539898890,1869572163,1948280179,1327523176,1969365067,1852798068,544175136,544499059,543516788,544695662,1869377379,1668489330,1701668200,218762542,1635139850,1650551913,1663067500,1919904879,1751348000,1936026981,1701994784,1717920800,1684369001,544106784,543516788,1397968708,1280066888,1229867310,1818846752,1092628069,1851881060,543450467,1919251317,1633886323,1684349038,1948284009,544434536]},{"sector":4,"data":[1701603686,1684955424,1717920800,543518313,1768253556,2003771506,1868767342,544370540,1701340019,779314541,168640576,1226902029,557069617,1124732224,1735287144,543649385,543516788,1701995347,1142976101,1819308905,168655201,1868106253,1633886325,1751326830,1702063983,1869768224,1702043757,1634887030,1668489324,1852138866,1685024032,1713402725,1679848047,1819308905,1852406113,1752440935,1397563493,1397703725,1701335840,1998613612,1868852841,1411395191,1897948520,1768710517,1864399220,1870209126,1931506293,1701147235,1701978222,1970040691,1852795252,1885692960,1935961701,544108320,543516788,1701869940,543584032,1953724787,2032168293,1915188591,1937055845,543649385,543452769,544698216,1763734633,1702043763,1886724212,218762542,544166922,1851877475,1931502951,1701147235,1869422702,980641124,168626701,1176514097,544042866,543516788,1769238607,544435823,1970169197,1751326764,1702063983,1936278560,2036427888,537529646,1750343712,1666392165,1852138866,1685015840,1768169573,1735355489,2020565536,1886413088,1936875877,839519534,1699946542,1952671084,1701344288,1936028192,1953852527,544108393,544567161,1953390967,1869768224,1752440941,1768693861,221148275,539898634,1931505492,1998611813,544498024,543516788,1701995379,1830841957,543515759,1802465132,1768693875,539780459,1869572195,1948280179,168650088,1344282656,1769366898,1646294885,1869902965,168636014,1126182452]},{"sector":5,"data":[1936682856,1752440933,1263476837,1953849888,544108404,1931505524,1948284005,1847616872,1931507557,1701147235,1869422702,1076782436,218762560,826876170,1075918640,1749223949,1768386145,1176528750,543517801,1920234561,1953849961,168653669,1766197773,544433516,1702257000,1986360096,1818325605,760433952,542330692,1701603686,1953784096,1969383794,544433524,1769173857,1684368999,544175136,1835362420,1750343726,543519589,1920234593,1953849961,1629516645,1629513074,1868963955,2003790956,168639091,1750338061,1629516649,1769108596,1702131042,1142956064,544433519,1936287860,757926413,757935405,757935405,757935405,757080096,757935405,757935405,1766328845,1852138596,538976288,538976288,1917853728,1852143205,1629516660,1818846752,1919295589,1629515119,1634037872,1735289202,544108320,1920298873,538970637,538976288,538976288,538976288,1668489248,1852138866,218762542,1937330954,544040308,538976288,538976288,1701071136,1718187118,544433513,1768300641,1629513068,543236211,1143821133,1931498319,1702130553,1768300653,221144428,1091177738,1768448882,538994038,538976288,1226842144,1667851374,1936028769,1701345056,543236206,1701603686,1935763488,1701143072,1869422702,1768319332,221144165,1376390410,761553253,2037149263,538976288,1344282656,1702258034,544437358,1768300641,1713399148,544042866,1852400994,1869422695,1768319332,221144165,1493830922,1663071599,1663069793]},{"sector":6,"data":[1735287144,1752440933,1952522341,1651077748,1936028789,543584032,1701603686,1852383347,1701344288,1818846752,1768693861,1629516915,1701716083,1684366437,218762542,1970231562,1851876128,1936286752,2036427888,1684629536,544105828,543452769,1953724787,1713401189,1936026729,1953068832,1953853288,1634231072,1852401518,1752440935,1768300645,661874028,1953784096,1969383794,544433524,1965062498,1735289203,1701344288,1818838560,1766072421,1634496627,1884233849,1852795252,1868767347,1851878765,1852776548,1701344288,1953517344,1936617321,1852140832,168636021,1330514445,540689748,1713399369,1936026729,1886413088,544366949,1948282473,1814062440,544502633,1836020326,1752461088,1679848037,1667592809,1769107316,1629516645,2032165998,1679848815,1948741231,1851881248,1869881460,1634231072,543516526,1768253556,1952522354,1651077748,1936028789,1634541612,1931502955,543519349,1701602643,1092645987,1936683619,1766072435,1952671090,1701409391,1936269427,1920300064,543450478,744908399,1684955424,1701344288,1920213102,1734418553,778987873,168626701,1663070036,1735287144,1752440933,1952522341,1651077748,1936028789,543584032,543518319,1701603686,218762554,539898122,1701602643,1948284003,1713399144,543517801,1936681079,1952522341,1651077748,1936028789,1970239776,1851881248,1869881460,1634231072,778397550,775031309,1869760032,1752440941,1766203493,1830839660,745893477,1869112096,543519599]},{"sector":7,"data":[1851877443,1092642151,1769108596,1702131042,168636019,1411391520,1126196584,1735287144,1950425189,1651077748,1936028789,1634296864,543649644,544763746,1701867617,779317857,775096845,1818579744,544498533,543516788,1919971425,1769107567,543519841,1920234593,1953849961,1713402725,544042866,543516788,1953720684,538970637,544825888,1852404597,1752440935,1918967909,544698226,1937335659,1684955424,1701344288,1095783200,1094862147,1864379474,543236210,1937076077,168636005,1394614304,1667591269,543450484,1920234593,1953849961,1746957157,543520353,1634541665,1847618418,544503909,1948282740,778921320,775162381,1869103904,543519599,543516788,1646283599,1869902965,168636014,168626701,1663070036,1735287144,1752440933,1952522341,1651077748,1936028789,1919903264,1919905056,1752440933,1864396385,1713399150,979725417,168626701,1394617905,1667591269,1752440948,1768300645,544433516,1936681079,1952522341,1651077748,1936028789,1970239776,1851881248,1869881460,538970637,1634231072,778397550,775031309,1869760032,1752440941,1766203493,1830839660,745893477,1869112096,543519599,1851877443,1092642151,1769108596,1702131042,168636019,1092624416,1634296864,543649644,544763746,1701867617,779317857,775096845,1818579744,544498533,543516788,1936877926,1886330996,1852795252,544175136,1851877475,1948280167,1629513064,1769108596,1702131042,537529715,1868963872,1634017394,1713399907]},{"sector":8,"data":[543517801,1701602675,1684370531,1701736224,544497952,1769218145,540763501,1701602675,1948284003,1931502952,1852793701,537529700,1886330912,1852795252,544175136,1851877475,1948280167,1629513064,1769108596,1702131042,1868963955,1818304626,1768300652,544433516,1864397921,778396526,775162381,1869103904,543519599,543516788,1646283599,1869902965,168636014,1394617909,1667591269,1752440948,1885413477,1886351984,1952541042,1952522341,1651077748,1936028789,1869768224,1752440941,1768693861,168653939,1646272544,1937055865,543649385,543516788,1869771361,1701519479,1629516665,1948279918,1394632040,1162035536,743588162,544370464,1869422689,778400629,538970637,1818579744,1702126437,1952522340,1651077748,1936028789,1986095136,543236197,1802658157,2019913248,1869881460,1701344288,168636013,1126182454,1936682856,1752440933,1263476837,1953849888,778989428,168626701,2032166473,1931507055,1667591269,543450484,543516788,1936877926,1886330996,1852795252,1749229612,1701277281,1818579744,1702126437,1766203492,544433516,543518287,1092645953,1835619360,2032151653,1998615919,543976553,1684366702,544175136,1701864818,1931506785,1936745844,1629500704,908092526,1953396000,1629514857,1948281964,1713399144,1936026729,1970239776,1818587936,1702126437,1634213988,1646290294,544105829,1768189805,1684367718,222314542,554306826,942682441,168640545,1851877443,1735289191,1852785440,1836214630]},{"sector":9,"data":[1869182049,1699553390,1734439795,168653669,1868106253,1633886325,1886593134,1718182757,1752637561,1701344357,1919885426,1953459744,760433952,542330692,1818585171,1769414764,1679846508,1819308905,1663072609,1768320623,1952542066,544108393,1936942445,1936025441,1701345056,1701060718,1769235820,1864394606,1701978226,1667329136,543649385,1701603686,1919885427,1701345056,1701847150,1919903346,1735289197,1970236704,1629513075,1869182051,1948283758,544498024,1702260589,544370464,2037411683,1818846752,221148005,1409944842,1663067496,1768320623,1952542066,544108393,1769238639,544435823,543519329,1713402721,1869376623,221934455,1409944842,544434536,1769238639,538996335,538976288,538976288,538976288,538976288,1886611780,1937334636,1830838560,1634956133,1646290279,1919903333,755633509,757935405,757935405,538979629,538976288,538976288,538976288,538976288,757935405,757935405,757935405,757935405,757935405,221064493,1852785418,1836214630,544108320,1701602628,538994036,538976288,538976288,1698963488,1769235820,1713399662,1936026729,168626701,1718513475,544043625,1377857135,1634496613,538994019,538976288,538976288,1885688352,1768120684,1713399662,1936026729,1953068832,1953439848,225600872,538976266,538976288,538976288,538976288,538976288,538976288,538976288,1768300576,544433516,1948280431,1931502952,543518049,1701667182,168626701,1718513475,544043625]},{"sector":10,"data":[1293971055,1702065519,1701859104,1769234802,538996335,1886339872,1735289209,544370464,1769369453,1713399662,1936026729,226058784,538976266,538976288,538976288,538976288,538976288,538976288,538976288,1937055776,543649385,1869422689,224752501,1409944842,1886593135,1718182757,1752637561,543712105,1936942445,1936025441,1970239776,1851881248,1869881460,1667592736,1702259045,1701345056,1701847150,1919903346,1735289197,1818846752,1886330981,1952543333,1936617321,218762554,539898122,1836020294,1701344288,1953517344,1936617321,1852140832,1663052917,1936682856,1866670181,1919510126,1769234797,221146735,539898378,1701602643,1948284003,1864394088,1869182064,2032169838,1998615919,779382369,775096845,1869103904,543519599,543516788,1646283599,1869902965,1077948014,168626701,808536353,222306617,1869103882,1852404591,1866670183,1851878765,1967267940,1852798068,218762611,1936674058,1768169588,1735355489,2020565536,1746957157,543520353,1629506383,1126196334,1701015137,1868767340,1851878765,1969365092,1852798068,1411395187,1327523176,1969365067,1852798068,1918984992,1936025970,1953853216,1701344288,1952669984,544108393,1667592307,1701406313,1852383332,1701344288,1634296864,543649644,779644770,1701336096,1851867936,543974755,1953789282,1663069807,1701015137,1948283756,1629513064,1869182051,1851859054,1818435684,1936028527,1701344288,1634296864,543649644,779644770,1752452896]},{"sector":11,"data":[1663070821,1634561391,1646290030,1869902965,1629516654,1814062450,1818583649,1629512805,1919902563,1735289188,544175136,543516788,1769235297,1948282479,544826728,1701536116,1868965920,2019893362,1819307361,1948265573,1210082664,544238693,1953789282,1679847023,1819308905,544438625,1886152008,1718511904,1634562671,1852795252,1919903264,1701344288,1634296864,543649644,695758690,218762542,544166922,1869572195,1629513075,1836016416,1684955501,1953849888,544108404,1965062498,1735289203,1830838560,1702065519,218762554,539828234,1667853379,1752440939,1868767333,1851878765,1969365092,1852798068,218762542,1409944842,1751326831,1702063983,1663066400,1634561391,1646290030,1869902965,2036473966,1769174304,1948280686,1797285224,1868724581,979661409,168626701,1344285984,1936942450,1111577632,544175136,1702260589,544175136,543516788,1835888483,543452769,1953789282,539782767,543452769,1852139636,538970637,1701998624,1159754611,1380275278,218762542,1819170058,544437093,1868767329,1851878765,1969365092,1852798068,1752461088,1948283493,544104808,1763724111,1702043763,1952671084,539780197,1936028272,1735289203,1414415648,1746948677,1948283745,1931502952,543518049,1701209701,1629516899,1751326835,1769172847,1948280686,1327523176,1969365067,1852798068,1917853742,1769173861,1159751534,1629504339,2036430700,1634214003,1752440947,1634934885,1696621933,1667589734,1935745140,1869112096]},{"sector":12,"data":[1852404591,1752440935,1631789157,1818583918,1953849888,778989428,168626701,1634493778,543450484,1768976212,537529699,539107360,1818323268,1109419887,1936029807,612246048,2117414961,168626701,1634493778,543450484,1668248144,1920296037,537529701,539107360,1852404565,1766072423,1735355489,2020557344,1953517344,1936617321,1233003040,2117284913,168640576,1226902029,556806449,1124732224,1936682856,543649385,1835888451,1935961697,168626701,544567129,1869572195,1663067507,1634561391,544433262,1836020326,1852140832,1763734389,1397563502,1397703725,1701335840,221146220,1409944842,1751326831,1702063983,1663066400,1634561391,1646290030,1937055865,543649385,1869422689,979727221,168626701,1126182449,1801677164,1701344288,1835101728,1718558821,1701344288,1852140832,1752440949,1663071329,1635020399,544435817,543516788,1835888483,543452769,225800057,538976266,1953390967,839519534,1816338478,543908713,543516788,1701667182,543584032,543516788,1835888483,778333793,168626701,1867778573,1869112096,543519599,1868767329,1851878765,2036473956,1769174304,1629513582,1936024419,1701519475,221934457,822742282,1917853742,544437093,542395457,1176531567,1948266545,1702043759,1952671084,1701344288,1852140832,1633820789,1952522354,1701344288,1886352416,538970637,543584032,1920298873,1919120160,778986853,775031309,1701990432,1948283763,1965057384,1919247470,1919902579,1814062181]},{"sector":13,"data":[1702130789,1752440946,1663071329,1701999215,1852797043,1948283748,1752440943,537529701,1701650464,2032170350,1998615919,544501345,1919903272,1635280160,1701605485,542515244,544370534,2003134806,168635945,1344286259,1936942450,1701344288,1684960544,1668510309,1684370031,1952803872,544367988,1952540788,1919902496,1886610802,1935961711,544175136,224749684,538976266,1835888483,543452769,544567161,1953390967,1868965920,2019893362,1819307361,1394617445,1919903264,1852396320,543517799,1701603654,538970637,1936280608,221129076,218762506,544166922,1869572195,1629513075,1836016416,1684955501,544825888,1852404597,1752440935,1701519461,1634689657,221930610,822742282,1917853742,544437093,542395457,1176531567,1948266545,1702043759,1952671084,1701344288,1852140832,1633820789,1952522354,1701344288,538970637,1886352416,543584032,1920298873,1919120160,778986853,775031309,1701990432,1948283763,1377854824,1414022985,1381122336,1864390479,1162616946,1092637766,1464816210,2036689696,544175136,1701602675,1948284003,168650088,1830821920,544566885,544567161,1953390967,856296750,1917853742,544437093,543516788,1092636757,1464816210,544370464,1314344772,1381122336,1797281615,1948285285,1702043759,1952671084,1701344288,538970637,1836016416,1684955501,1970239776,1851881248,168636020,1344286260,1936942450,1414415648,1948275269,1751326831,1702063983,1701344288,1836016416,1684955501]},{"sector":14,"data":[218762542,1818579466,1684370529,1886344224,168649577,572530720,1852132640,1629516661,1126196334,1634561391,544433262,824475170,226374448,1376390410,1952541797,1344300133,1701015410,1701999972,538970637,1461723680,1768649327,1998612334,543716457,1867325537,543519605,826900002,1082011701,218762560,826876170,1075917361,1866664461,1885432940,1735289203,1919501344,1869898597,1936025970,168626701,544567129,544104803,1819045731,1702064225,1679843616,1667592809,2037542772,1970239776,543520295,1634760805,1684366446,544106784,543516788,1701996868,1919906915,1918115961,539911525,1819045699,1769173089,1629513582,1919509536,1869898597,1746958706,1936024681,1937008928,1651864352,1701996900,1919906915,779314537,168626701,1663070036,1634495599,543519600,1768169569,1952671090,544830063,1965062498,1735289203,1830838560,1702065519,218762554,539828234,1667853379,1752440939,1768759397,544437614,1852270963,690825248,544175136,543516788,1952867692,543584032,224749684,538976266,1701996900,1919906915,1634607225,1763730797,1752440942,1920213093,221144421,218762506,544166922,1819045731,1702064225,1679843616,1667592809,2037542772,544825888,1852404597,1752440935,1701519461,1634689657,221930610,822742282,1699946542,1952671084,1701344288,1919509536,1869898597,1847622002,543518049,1948282473,1948280168,778397042,775031309,1869760032,1752440941,1918115941,1830839653,745893477]},{"sector":15,"data":[1869112096,543519599,1819045699,1702064225,1634877984,745038702,225603360,538976266,1936028272,1752440947,1229791333,542332238,1313294675,2036689696,690825248,218762542,1818579466,1684370529,1886344224,225665897,538976266,1766072354,1952671090,1701409391,2116165747,925970724,537529726,539107360,1802725700,1769096224,544433526,824475170,226375217,1376390410,1952541797,1344300133,1701015410,1701999972,538970637,1159733792,1851879544,1735289188,1919501344,1869898597,1936025970,1233003040,2117546545,168640576,1226902029,557003057,1124732224,1769566319,1176528750,1936026729,168626701,1948282441,1713399144,543517801,1953720684,1870209068,1633886325,1868767342,1864399216,1864394094,1869422706,1713399154,1936026729,1869768224,1852776557,1768169573,1952671090,544830063,1629515636,1752461166,1679848037,1667592809,2037542772,544370464,1629515636,1936286752,1411395179,1768169583,1634496627,1752440953,1869815909,1701016181,1919509536,1869898597,1629518194,1948279918,1679844712,1769239397,1769234798,1679847023,1667592809,2037542772,1701345056,1870209134,1869422709,1713399158,1936026729,1937055788,1752440933,1967399013,1176530017,543517801,1953720652,1769349235,221149029,1309281546,977622095,543574304,662007673,1965057398,543450483,543516788,1718513475,1634562665,1852795252,1836016416,1684955501,544175136,1852994932,1717989152,1852793632,1836214630,1869182049,1701650542]},{"sector":16,"data":[1734439795,1998615397,544105832,1852404597,1869422695,543519605,1919250543,1869182049,539784046,544567161,1819044215,1953459744,1701147424,1701344288,1852793632,1836214630,1869182049,1701650542,1734439795,1679848293,1919120229,1684365929,544106784,543516788,1668248176,1920296037,1646293861,2003790949,218762542,1414483466,1226848837,1768300646,544433516,1701867617,1763734113,1752440942,1866670181,1176533360,543517801,1818323300,1646290799,1713404015,544042866,1701344367,1768169586,1952671090,1701409391,1851859059,1870209124,1868832885,544483182,1953390967,544175136,2037411683,1701344288,1830825069,543517537,1701999987,1818579744,544498533,1869767489,1142977395,1667592809,1769107316,1763734373,1970544755,1684369010,1717989152,1851858988,1752440932,1948282469,1629518194,1852399975,218762542,544166922,2037411683,1818846752,1713402725,544042866,1701996900,1919906915,1869881465,1869504800,1919248500,544825888,1852404597,543236199,1937076077,168639077,774965773,1701990432,1629516659,1746953326,543452271,1853321060,1381253920,1851859020,1919164516,1948280673,1713399144,543517801,544567161,1953390967,538970637,544175136,2037411683,1953394464,1752440943,1768169573,1952671090,544830063,544567161,1953390967,544175136,2037411683,544175136,1948282473,168650088,1142956064,1667592809,2037542772,1701991456,168636005,1411391520,1126196584,1768320623,1293970802,1702065519]},{"sector":17,"data":[1701859104,1769234802,1679847023,1869373801,1868701799,1885413496,1918985584,168636019,1126182450,1936682856,1752440933,1700339813,1969365107,1852798068,218762542,1409944842,1868767343,1713404272,1936026729,544825888,1852404597,1752440935,1701519461,1634689657,221930610,822742282,1699946542,1952671084,1701344288,1818846752,1919885413,1818846752,2032169829,1998615919,544501345,1663070068,779710575,775031309,1869760032,1752440941,1766203493,1830839660,745893477,1869112096,543519599,2037411651,1919885356,1701998624,1176531827,168635960,1411391520,1126196584,544829551,1701603654,1634296864,543649644,544763746,1701867617,745763425,1936288800,1735289204,1667327264,1768300648,2032166252,168654191,1931485216,1667591269,778331508,775096845,544098592,543516788,1646292820,539785327,1701869940,1701344288,1952542752,1718558824,1701344288,1936024608,1634625908,1852795252,537529632,1768169504,1952671090,779711087,775162381,1869103904,543519599,543516788,1646283599,1869902965,168636014,1699875341,1702125932,1917853796,1684366191,1936028277,538970637,1394614816,1667591269,1735289204,1818838560,572552037,875645310,168656438,572530720,1936278560,2036427888,543649385,544175956,1701603654,1936280608,572552052,842090878,168656433,1866861069,1852383346,1836216166,1869182049,1852776558,1852793632,1819243124,1735289196,1701344288,1936286752,2036427888,543584032,1718513507]}],[{"sector":1,"data":[1634562665,1852795252,1634296864,543649644,1702391650,1752637555,1663069797,1769566319,1713399662,1936026729,1702043692,537529701,539107360,1851877443,1735289191,1852785440,1836214630,1869182049,1699553390,1734439795,572552037,808536446,1077968440,168626701,825313569,222306612,1886339850,1735289209,1869762592,1835102823,1702119712,168653677,1868106253,1633886325,1868767342,1629518192,1869770784,1835102823,1702127904,1852383341,1701344288,1869770784,1835102823,1936288800,1919295604,1864396143,1730176366,1886744434,544175136,1953459809,779249000,168626701,1663070036,544829551,1919950945,1634887535,1953046637,221932901,822742282,1884233774,1948282469,1730176360,1886744434,1634235424,1868767348,1767994478,1948283758,1763730792,544040308,544567161,1953390967,544175136,2037411683,839519534,1699946542,1952671084,1701344288,1702127904,168636013,1176514099,544042866,543516788,1701603654,1852140832,1663052917,1936682856,1866670181,221149552,539898890,1852141647,1701344288,1869768480,2032169077,1998615919,544501345,1663070068,544829551,543516788,1835365481,779056160,775227917,1701990432,1176531827,168635954,1868106253,1633886325,1818304622,1679847283,1768714357,1702125923,1881170208,1919381362,1763732833,544040308,1752459639,1629515369,1869768480,539914357,544370502,1835104357,744844400,1970239776,1734962464,1998615656,544501345,544175988,1953721961,1701015137]},{"sector":2,"data":[1718558835,1667845408,1869836146,1461744742,543453807,1752459639,1718182944,1701995878,1679848558,1836409711,1937010277,1634692128,778331492,168626701,1634493778,543450484,1768976212,537529699,539107360,1735357008,544039282,1970238023,1629516656,1344300142,1919381362,1226861921,1936549236,612246048,2117088305,168626701,1634493778,543450484,1668248144,1920296037,537529701,539107360,1852141647,543649385,1735357008,544039282,1970238023,572552048,842090878,1077968435,168626701,825313569,222306613,1701987082,1852404833,1766072423,1952671090,1701409391,218762611,1970231562,1701995296,543519841,1701996900,1919906915,544433513,1948282473,1713399144,543517801,1953720684,544108320,543516788,1920103779,544501349,1986622052,1629498469,1763730542,1752440942,1969430629,1852142194,1768169588,1952671090,544830063,1864394345,1763730798,1702043763,1952671084,539911269,1629513289,1919509536,1869898597,1763735922,1702043763,1952671084,539780197,543516788,544695662,1701996900,1919906915,1936269433,1684300064,1629512805,543236211,1684174195,1667592809,2037542772,1951342638,2003985768,744846185,1701344288,1919509536,1869898597,1763735922,1684086899,543450468,2032168820,544372079,1953460082,1919509536,1869898597,221149554,1409944842,1919098991,1702125925,1847615776,1679849317,1667592809,2037542772,218762554,539898122,1701602643,1948284003,1679844712,1702259058,1684955424]},{"sector":3,"data":[1886332960,1852795252,2037148769,1752440873,1768169573,1952671090,544830063,1919248503,537529701,1870209056,1635197045,1948284014,1847616872,1679849317,1667592809,2037542772,1701995296,1684370529,839519534,1917198382,1948282223,1176528232,543517801,1970169197,1751326764,1702063983,1701987104,543519841,1701996868,1919906915,168636025,1411391520,1126196584,1952540018,1766072421,1952671090,544830063,1818323300,1646290799,1629517935,1634037872,221148018,539898634,1701869908,1701344288,1835101728,1718558821,1701344288,2003136032,1919509536,1869898597,221149554,539898890,1869572163,1948280179,1327523176,1969365067,1852798068,218762542,1818579466,1684370529,1886344224,168649577,572530720,1919501344,1869898597,1936025970,612246048,2117546289,168626701,1634493778,543450484,1668248144,1920296037,168653669,572530720,1818579744,1769235301,1142974318,1667592809,1769107316,572552037,875645310,168656436,572530720,1818579744,1769235301,1142974318,1702259058,2116165747,892612937,222314622,554306826,909193545,168640545,1701602628,1735289204,1869762592,1835102823,1702119712,1629516653,1344300142,1919381362,1193307489,1886744434,218762611,1701336842,1870209134,1701060725,1702126956,1881170208,1919381362,1763732833,544040308,1836020326,1730175264,1886744434,1870209068,1701978229,1702260589,1937008928,1953068064,1629513068,1629512814,1881176430,1701867378,1701409906,1935745139]},{"sector":4,"data":[1768124275,1684370529,1953068832,1953046632,1750540334,2032168549,1679848815,1952803941,543236197,1970238055,2032151664,1830843759,544502645,1936877926,1701060724,1702126956,1819042080,543584032,544437353,1735357040,544039282,1835365481,168636019,1330514445,540689748,1919950913,1634887535,1953046637,1763732837,1869488243,1752440948,1919950949,1634887535,1768300653,1763730796,1818588020,1226845798,1870209126,1701060725,1702126956,1881170208,1919381362,1763732833,745366900,1970239776,1818584096,543519845,2037149295,1701344288,1869770784,1835102823,1936288800,544417652,1918989427,544241012,1953721961,1952675186,1936617321,1919903264,1634235424,1919950964,1634887535,1411395181,1881171304,1919381362,1713401185,543517801,1634559346,544435817,2032168559,544372079,1685217640,1769104416,1629513078,1998611566,543976553,1701867617,1763734113,1752440942,1768300645,1814062444,779383657,168626701,1679847252,1952803941,543236197,1735357040,544039282,1835365481,218762554,539898122,1852141647,1701344288,1869768480,1948282997,544498024,1953394531,1936615777,1701344288,1869770784,1835102823,1702127904,1870209133,537529717,1635196960,1948284014,1701060719,1702126956,839519534,1699946542,1952671084,1701344288,1702127904,2036473965,1769174304,1948280686,1629513064,2003792498,2036689696,1919885427,1830838560,1702065519,856296750,1917198382,1948282223,1176528232,543517801,1970169197]},{"sector":5,"data":[1751326764,1702063983,1818575904,543519845,544370472,1936028272,1162092659,221129036,538976266,543516756,1701602628,1226859892,544040308,1818323300,1646290799,1629517935,1634037872,221148018,539898890,1701602643,1948284003,1713399144,1953722985,1953525536,778989417,775227917,1869103904,543519599,543516788,1646283599,1869902965,168636014,168626701,1679847252,1952803941,543236197,1970238055,168639088,774965773,1818579744,544498533,543516788,1970238055,1870209136,1635197045,1948284014,1701060719,1702126956,839519534,1917198382,1948282223,1176528232,543517801,1970169197,1751326764,1702063983,1818575904,543519845,544370472,1936028272,1162092659,221129036,538976266,543516756,1701602628,1226859892,544040308,1818323300,1646290799,1629517935,1634037872,221148018,539898634,1869572163,1948280179,1327523176,1969365067,1852798068,218762542,1818579466,1684370529,1886344224,168649577,572530720,1869762592,1835102823,1869760288,544436341,543452769,1735357008,544039282,1835365449,2116165747,808726820,218762622,1818579466,1684370529,1869762592,1969513827,168650098,572530720,1701859104,1735289198,1869762592,1835102823,1869760288,544436341,826900002,226374450,1175063818,1763734127,1919903342,1769234797,1864396399,1868767342,1869771886,1852402796,1752440935,1768169573,1634496627,1718558841,1852793632,1836214630,1869182049,1768169582,1735355489,2020565536,1998615397]},{"sector":6,"data":[544105832,1701602660,1735289204,1818846752,539784037,224748915,538976266,1749229602,1768386145,1126197102,1768320623,1952542066,544108393,1936942413,1936025441,1233003040,2117611569,168640576,1226902029,557265201,1141509440,1952803941,543649385,1701603654,1851859059,1766072420,1952671090,1701409391,218762611,1970231562,1851876128,1818584096,543519845,1701603686,1851859059,1768169572,1952671090,1701409391,1852383347,1701344288,1818846752,1768693861,1998615667,544105832,544567161,543519329,1768843622,1684367475,1953068832,1752440936,539913573,1701015119,1713398048,543517801,1679848047,1667592809,2037542772,544434464,1701602660,744777076,544500000,1914729321,1987013989,1713398885,544042866,543516788,1802725732,1684955424,1851876128,544173600,1735290732,1646293605,1937055845,221144165,1124732170,1230263617,540692047,2032166473,1629517167,1684628323,1635020389,544828524,1701602660,1629513076,1818846752,1752440933,2032170081,1998615919,1702129249,1869881444,1701145376,2032151664,1830843759,1646295393,1650532453,1948280172,1701978223,1919906931,1953046629,1868111918,1633886325,1701978222,1919906931,543236197,1701603686,1953068832,1700995176,1767994482,544830574,2037149295,543582496,1864396654,1919248500,1818846752,1746957157,543520353,1852138850,1701995296,1684370529,544370464,1851877475,543450471,1948282479,1679844712,778793833,1919895072,1919905056,1852383333]},{"sector":7,"data":[1836216166,1869182049,1931488366,168650085,572530720,1936020000,1769107316,1142974318,1952803941,1176527973,1936026729,1233003040,2117416241,168626701,1163153230,1716068410,1970239776,543520295,1684370293,1701344288,1852785440,1836214630,1869182049,1868767342,1851878765,1869881444,1920300064,1718558830,1868767334,1919510126,1769234797,1830841967,1634956133,544433511,1852139639,1818584096,1852404837,1768300647,745760108,1970239776,1818851104,1869488236,1702043764,1818304613,1718558828,1701344288,1936026912,1701273971,1701060723,1769104243,543450466,1948282473,1881171304,1701015410,1701999972,1700929651,779579244,168626701,1679847252,1952803941,1852776549,1768300645,221930860,822742282,1699946542,1952671084,1701344288,1818846752,1870209125,1635197045,1948284014,1701060719,1702126956,839519534,1917198382,1948282223,1176528232,543517801,1970169197,1751326764,1702063983,1818575904,543519845,544370472,1936028272,1162092659,221129036,538976266,543516756,1701602628,1176528244,543517801,1718513475,1634562665,1852795252,1634296864,543649644,544763746,1819044215,1886413088,779247973,775096845,1869103904,543519599,543516788,544433497,1953789282,221146735,218762506,544166922,1701602660,1830839668,543519343,1851877492,1701736224,1818846752,168639077,774965773,1818579744,544498533,543516788,1701603686,1870209139,1635197045,1948284014,1701060719,1702126956,839519534]},{"sector":8,"data":[1917198382,1948282223,1176528232,543517801,1970169197,1751326764,1702063983,1818575904,543519845,544370472,1936028272,1162092659,221129036,538976266,1768169537,1735355489,2020565536,1818851104,1885413484,1918985584,1936288800,1735289204,1667327264,1768300648,2032166252,1931507055,1667591269,778331508,775096845,1869103904,543519599,543516788,1646283599,1869902965,1869881454,1852793632,1970170228,1701060709,1769235820,1948280686,1702063976,1818846752,221148005,538976266,1953459777,544367976,1718513507,1634562665,1852795252,1634296864,543649644,544763746,1819044215,1886413088,544366949,544370534,1751343461,1818846752,537529701,1870209056,1635197045,1948284014,1701060719,1702126956,873073966,1749229614,1702063983,1701344288,1936021792,1953849888,544108404,1663070068,1768320623,1696623986,543712097,1701602660,1852795252,218762542,1414483466,1226848837,1768300646,544433516,1701867617,1763734113,1752440942,1768693861,1713402995,544042866,1701344367,1768169586,1952671090,1701409391,1851859059,1870209124,1868832885,544483182,1953390967,544175136,1701602660,1948280180,745366888,1801547040,1970479205,1394632050,1667591269,1665212532,1936945010,1919501344,1869898597,1936025970,544434464,1852994932,1864393829,539780710,543452769,1852139636,2037543968,1634165024,221146729,218762506,544166922,1701602660,1629513076,1919509536,1869898597,221935986,822742282,1699946542]},{"sector":9,"data":[1952671084,1701344288,1919509536,1869898597,2032171378,1998615919,544501345,1679847284,1952803941,168636005,1109405234,1970479205,1948280178,1701995880,1701994784,544173600,1701603686,1919885427,1651864352,1701996900,1919906915,544433513,1948282473,168650088,1679826976,1667592809,2037542772,1718165563,1701344288,1629513074,539780466,1701602660,1864394100,1869422706,1948280182,778921320,775096845,1869760032,1752440941,1766203493,1830839660,745893477,1869112096,543519599,1701602628,673211764,1881174639,1936942450,1279607840,168635945,1411391520,1142973800,1952803941,1766072421,1952671090,544830063,1718513475,1634562665,1852795252,1634296864,543649644,544763746,1819044215,1886413088,779247973,775162381,1869103904,543519599,543516788,544433497,1953789282,221146735,1376390410,1952541797,1344300133,1701015410,1701999972,538970637,1394614816,1667591269,1735289204,1818838560,572552037,875645310,168656438,572530720,1818579744,1769235301,1176528750,1936026729,1919107360,544437103,1701996868,1919906915,544433513,826900002,226373684,1175063818,1763734127,1919903342,1769234797,1864396399,1868767342,1869771886,1852402796,1752440935,1768169573,1634496627,1718558841,1852793632,1836214630,1869182049,1768169582,1735355489,2020565536,1998615397,544105832,1701602660,1735289204,1818846752,539784037,224748915,538976266,1749229602,1768386145,1126197102,1768320623,1952542066]},{"sector":10,"data":[544108393,1936942413,1936025441,1233003040,2117611569,168640576,1226902029,557330737,1141509440,1819308905,1852406113,543236199,1953720652,543584032,543976513,1701603654,218762611,1970231562,1851876128,1936286752,2036427888,1814061344,544502633,1629513327,1713400940,1936026729,544108320,1919164513,543520361,1948282473,1713399144,543517801,1953720684,1852383276,1685417059,543649385,543976545,1953724787,1713401189,1936026729,1750343726,1814066025,544502633,1869835361,1852793632,1852399988,1684086899,1769236836,1818324591,1718511904,1634562671,1852795252,544108320,543516788,1986622052,1763716197,1679848308,1667592809,1769107316,539784037,543452769,544437353,1701603686,168636019,1867778573,1936286752,2036427888,1814061344,544502633,1629513327,1948281964,1713399144,1936026729,544108320,1919164513,979727977,168626701,1394617905,1667591269,1752440948,1919164517,543520361,544567161,1953390967,544175136,2003134838,839519534,1917198382,1948282223,1444963688,544695657,1970169197,1751326764,1702063983,1819033888,1818838560,221148005,1493830922,1663071599,1948282465,544105832,1701602675,1629516899,1718182944,1701995878,1679848558,1702259058,543582496,544567161,1953390967,544175136,2003134838,1937008928,1818846752,221148005,1376390410,1952541797,1344300133,1701015410,1701999972,538970637,1394614816,1667591269,1735289204,1769096224,544433526,826900002,1082012980]},{"sector":11,"data":[218762560,826876170,1075919153,1766066701,1634496627,1735289209,1277190432,544502633,1176528495,1936026729,544106784,1766072417,1952671090,226062959,1493830922,1663071599,1679847009,1819308905,1629518177,1852404512,543517799,1953720684,543584032,1701603686,1868963955,543236210,1701602675,1684370531,1769104416,1629513078,1679844462,1667592809,2037542772,544106784,543516788,1701603686,1936288800,1293954676,1329868115,1750278227,543976549,1886611812,1937334636,1701344288,1919501344,1869898597,1411414386,543516018,1948282479,1814062440,544499301,1701079411,543584032,543516788,1143821133,1394627407,1819043176,1852405536,997683044,544108320,543516788,1751607666,1763716212,1768169588,1634496627,1629516665,1936288800,1718558836,1818846752,1763734373,1752440942,1969430629,1852142194,1768169588,1952671090,779711087,168626701,1679847252,1819308905,1629518177,1852404512,543517799,1953720684,543584032,1701603686,168639091,774965773,1869760032,1752440941,1767252069,1830844261,745893477,1869112096,543519599,1735289171,1176528236,543517801,1953720652,839519534,1699946542,1952671084,1701344288,1769104416,1948280182,544498024,1953394531,1936615777,1701344288,1919509536,1869898597,168655218,2032148512,1998615919,779382369,775096845,1818579744,544498533,543516788,1701996900,1919906915,1752440953,1663071329,1635020399,544435817,543516788,1701603686,537529715,1870209056]},{"sector":12,"data":[1635197045,1948284014,1768693871,221148275,1376390410,1952541797,1411408997,1667854447,537529715,539107360,1701603654,1936280608,1984897140,1769370213,572553061,2119053694,538970637,1176511008,543517801,1953720652,1684955424,1869762592,1835102823,1936280608,2116165748,875639076,218762622,1818579466,1684370529,1869762592,1969513827,225666418,538976266,1699946530,1952671084,543649385,1986622020,572552037,875645310,168656437,572530720,1818579744,1769235301,1142974318,1667592809,1769107316,572552037,875645310,1077968436,168626701,842090785,222306608,1701402122,1735289207,1818838560,1142959205,1667592809,2037542772,1851858988,1917067364,543520361,1868983881,1952542066,225341289,1493830922,1663071599,1679847009,1819308905,1629518177,1953064036,1634627433,1852383340,1836216166,1869182049,1650532462,544503151,543516788,1920103779,544501349,1986622052,1679830117,1667592809,2037542772,1851858988,1768300644,779314540,168626701,1679847252,1819308905,1763735905,1919903342,1769234797,1864396399,543236206,1986622052,1851859045,1953046628,1768169587,1952671090,1701409391,1851859059,1768300644,980641132,168626701,1394617905,1667591269,1752440948,1919164517,744846953,1919509536,1869898597,539785586,543452769,1701603686,539587368,544567161,1953390967,538970637,1718511904,1634562671,1852795252,778989344,775031309,1869760032,1752440941,1884233829,1852795252,1701650547]},{"sector":13,"data":[539784558,1869572195,1394632051,544698216,1868983881,1952542066,778989417,775096845,1701336864,1870209134,1701980021,1852401184,1701344105,1701978212,2003134838,543649385,543516788,1868983913,1952542066,745434985,538970637,1869112096,543519599,543516788,1646283599,1869902965,168636014,1699875341,1702125932,1917853796,1684366191,1936028277,538970637,1394614816,1667591269,1735289204,1769096224,544433526,826900002,226374964,538976266,1699946530,1952671084,543649385,1701996868,1919906915,544433513,826900002,226374708,538976266,1699946530,1952671084,543649385,1701603654,2116165747,909390153,222314622,554306826,825373001,168640545,1886611780,1769562476,1411409774,1176530807,543517801,1953720652,218762611,1970231562,1851876128,1936286752,2036427888,1936288800,1864397684,1768300646,544433516,544370534,544175988,1717987684,1852142181,1768169588,1952671090,1701409391,1952522355,1701344288,1835103008,1769218149,1763730797,1752440942,1768300645,1814062444,779383657,168626701,1679847252,1819308905,1948285281,1814065015,1937011561,543584032,1701603686,168639091,774965773,1869760032,1752440941,1767252069,1830844261,745893477,1869112096,543519599,1818326340,1818838560,1766596709,779318387,775031309,1919895072,1667327264,1768693864,539784307,1701602675,1948284003,1679844712,1702259058,1634235424,1868767348,1767994478,1948283758,168650088,1679826976,1667592809]},{"sector":14,"data":[2037542772,1970239776,1851881248,1948786804,1869422703,1646290294,1702327397,1814064741,1937011561,1919950892,544437093,222445908,538976266,1965060719,1948280179,1830839656,1702065519,168635945,1394617907,1667591269,1752440948,1768169573,1952671090,544830063,1952540788,1852793632,1852399988,1752440947,1768300645,544433516,225800057,538976266,1953390967,1936286752,2036427888,1763730533,1634017390,1814063203,779383657,168626701,1634493778,543450484,1768976212,537529699,539107360,1701603654,1936280608,1851859060,1917853796,1634887535,1766596717,572552307,825304190,168656436,1699875341,1702125932,1917853796,1684366191,1936028277,538970637,1394614816,1667591269,1735289204,1919501344,1869898597,1936025970,1233003040,2117350449,538970637,1394614816,1667591269,1735289204,1769096224,544433526,826900002,1082012980,218762560,826876170,1075917618,1884228109,1852403301,1917853799,1634887535,1917263981,1936749935,168626701,544567129,544104803,1886611812,544825708,543516788,1953394531,1937010277,543584032,544829025,1970238055,1852383344,1701344288,1869770784,1835102823,1936288800,168636020,1867778573,1701867296,543236206,1970238055,2036473968,1769174304,1629513582,1970236704,221930867,537529610,1866735661,1701601909,1768710957,1948281699,1730176360,1886744434,1835101728,168636005,168626701,1864396628,544105840,1919361121,544241007,1965062498,1735289203,1701344288]},{"sector":15,"data":[2036689696,1918988130,168639076,774965773,1702057248,1701344288,1920098592,1797289839,544438629,1931505524,1667591269,1752440948,1919361125,544241007,544567161,1953390967,544175136,1852141679,839519534,1917853742,544437093,1163152965,168635986,1411391520,1847616872,543518049,1948280431,1730176360,1886744434,1970239776,1818587936,1702126437,1885413476,1918985584,1852383347,1701344288,1953068064,168650092,1646272544,1864397409,1752440934,1919950949,1634887535,1768693869,539915379,543516756,1970238055,544417648,1735357040,544039282,1835365481,1851859059,537529700,1919361056,1936749935,1701994784,1936286752,2036427888,221144165,218762506,1970231562,1851876128,1936286752,2036427888,1701344288,1852793632,1953391988,1718558835,1701344288,1869768480,1864396917,1814062446,1818588773,544240928,1701344296,1869768480,1948282997,544498024,1953394531,1936615777,1701344288,1920295712,1953391986,1679849836,1819308905,1684371809,1702127904,539587437,544370534,543976545,1970238055,1696625520,1885692792,1752440948,1632444517,1730178665,1886744434,218762542,544166922,1886611812,544825708,543516788,1953394531,1937010277,543584032,543516788,1970238055,1852776560,1701584997,543974774,221933685,537529610,1917853741,544437093,776164165,168626701,1634493778,543450484,1768976212,537529699,539107360,1735357008,544039282,1970238023,1629516656,1344300142,1919381362,1226861921]},{"sector":16,"data":[1936549236,612246048,2117088305,168640576,1226902029,557069873,1175063872,1634562671,1852404852,1816535143,2037411951,1936278560,168653675,1868106253,1633886325,1868963950,1952542066,1936286752,1646293867,1937055865,543649385,543516788,1836216134,1629516897,1361077358,1801677173,1919895072,544498029,1735357040,544039282,1835365481,1852383347,1701344288,1936278560,1951735915,1953066089,544433513,1970238055,1176514160,1634562671,1869357172,544435055,544370534,543449442,1952671091,544436847,1948282479,1679844712,996897641,1769296160,1176529763,1634562671,1868832884,661549925,168636020,1867778573,1919903264,544498029,1818632289,2037411951,1936286752,168639083,774965773,1869760032,1752440941,1766072421,1428188019,1768712564,1936025972,1869768480,539783285,1869572195,1948280179,1176528232,1634562671,1919885428,1769296160,168651619,1176510496,1634562671,1919950964,1634887535,1953046637,779316581,538970637,1679835424,1869373801,1868701799,1885413496,1918985584,168636019,1411395122,1868963951,1952542066,1769104416,1092642166,1684955424,1702065440,544173600,1953068915,1936025699,1751326764,1702063983,1701344288,223039264,538976266,1953789282,539782767,1948283503,543518841,543516788,1919971425,1769107567,543519841,1634886000,1702126957,1629516658,1931502702,1668573559,745760104,538970637,544106784,543516788,1634885968,1702126957,1646293874,539785327,543452769]},{"sector":17,"data":[1852139636,1869112096,543519599,543516788,1646283599,1869902965,168636014,1293954611,1329868115,1919950931,1953525103,1870209139,1868963957,543236210,1970040694,1814062445,1818583649,1919903264,1701344288,1936286752,1411395179,224751737,538976266,1634607201,1763730797,1870209126,1635197045,1948284014,1634476143,543974754,543516788,1802725732,1716068398,1970239776,1852793888,1998615591,225734241,538976266,1814065012,1818583649,1701344288,1936286752,1881156715,1936942450,1414415648,221139525,539898890,1936028240,542711923,2032166505,1998615919,544501345,1713401716,1634562671,1851859060,1701344367,1768169586,1864395635,1919950962,544437093,1718165582,538970637,1970239776,1851881248,1869881460,1952805408,544109173,1293971316,1329868115,1750278227,778857573,168626701,1634493778,543450484,1768976212,537529699,539107360,1735357008,544039282,1970238023,1629516656,1344300142,1919381362,1226861921,1936549236,612246048,2117088305,168626701,1634493778,543450484,1768976212,168653667,572530720,1919896864,1852776549,1919895072,544498029,824475170,226374963,538976266,1867325474,1864394098,1968250990,543908713,1836216134,572552289,858858622,1077968438,168626701,842090785,222306612,1769166090,1948280686,1126196584,1634561391,1344300142,1886220146,218762612,1701336074,1629513074,1931502962,1919252069,1998613601,544438625,1965059956,1948280179,1663067496,1634561391]}],[{"sector":1,"data":[1881171054,1886220146,1769414772,1970235508,1970348148,1769239657,1293969262,1329868115,1750278227,778857573,168626701,539631648,1936028240,1213407347,726943305,221133126,537529610,1176513056,544042866,543516788,1852399949,1869768480,539783285,1869572195,1948280179,1126196584,1634561391,1344300142,1886220146,1919950964,1634887535,537529709,1763713056,778921332,168626701,544567129,544104803,1869835361,1702065440,1663066400,1634561391,1814062190,543518313,1948282473,1377854824,1679847029,1869373801,1868701799,1869881464,1853190688,1881170208,1919381362,221146465,1175063818,1830842991,543519343,1868983913,1952542066,544108393,1293971055,1329868115,1868767315,1851878765,539784036,543516019,1885431875,544367988,539767857,1836008226,1684955501,539110515,1948282473,1428186472,661808499,1967595635,543515753,543452769,1701209426,1668179314,168636005,1699875341,1702125932,1867784292,224618864,538976266,1866997794,1869881463,1635013408,1344304242,1919381362,544435553,824475170,1082011954,218762560,826876170,1075917366,1766066701,1634496627,1735289209,1701344288,1869762592,1835102823,1936280608,218762612,1970231562,1851876128,1936286752,2036427888,1701344288,1869770784,1835102823,1936288800,1752440948,1663071329,1635020399,544435817,1970238055,1629516656,1881171054,1919381362,1763732833,1936549236,1716068398,1935766560,2004033643,1768976481,1763731310,1852776563]},{"sector":2,"data":[1919950892,1634887535,1663071085,1646292577,1768169573,1634496627,543450489,1948282473,1092642152,1986622563,1632903269,1277193075,779383657,168626701,1679847252,1819308905,1948285281,1881171304,1919381362,1814064481,980710249,168626701,1176513824,544042866,543516788,2003134806,1852140832,1663052917,1936682856,1917853797,1634887535,1766596717,221148275,1376390410,1952541797,1411408997,1667854447,537529715,539107360,1701603654,1936280608,1851859060,1917853796,1634887535,1766596717,572552307,825304190,168656436,572530720,2003781664,544175136,543519573,1701998413,1634235424,1850679406,1917853797,1634887535,2116165741,842150180,537529726,539107360,1735357008,544039282,1970238023,1629516656,1344300142,1919381362,1226861921,1936549236,612246048,2117088305,538970637,1344283168,1919381362,1277193569,544502633,1919252047,2003134838,1233003040,2117679408,168626701,1634493778,543450484,1668248144,1920296037,168653669,572530720,1936278560,2036427888,543649385,543516788,1701603654,1936280608,1851859060,1752440932,1917853797,1634887535,1766596717,572552307,842090878,168656437,572530720,1769166112,1411409774,543912801,1885435731,1735289200,1684955424,1701344288,1952661792,543520361,1802723668,1936280608,2116165748,842346825,222314622,554306826,892481865,168640545,1886611780,1769562476,1948280686,1176528232,543517801,1953720652,1684955424,1701344288,1869762592]},{"sector":3,"data":[1835102823,1936280608,218762612,1970231562,1851876128,1936286752,2036427888,1701344288,1818846752,1768693861,539784307,543516788,1735357040,544039282,1953720684,1919885356,1953456672,1768693864,544437363,1864397921,778396526,168626701,1679847252,1819308905,1948285281,1713399144,543517801,1953720684,218762554,539828234,1836020294,1701344288,1701402144,1701650551,539784558,1869572195,1394632051,1818717801,1766203493,1277191532,745829225,1635075104,1766203500,168650092,1277173792,1937011561,1919885356,1819033888,1818838560,221148005,218762506,544166922,1886611812,544825708,543516788,1735357040,544039282,1953720684,218762554,539828234,1836020294,1701344288,1701402144,1701650551,539784558,1869572195,1344300403,1919381362,1277193569,779383657,168626701,1867778573,1936286752,2036427888,1953456672,1752440936,1919950949,1634887535,1768693869,1629516915,1948279918,1713399144,543517801,1953720684,544497952,1701015151,218762554,539828234,1836020294,1701344288,1701402144,1701650551,539784558,1869572195,1344300403,1919381362,1177513313,543517801,1953720652,168636019,1699875341,1702125932,1867784292,224618864,538976266,1766203426,1277191532,544502633,1919252047,2003134838,830349856,168656462,572530720,1818838560,1766596709,1629516915,1344300142,1919381362,1277193569,544502633,824475170,226374705,538976266,1917853730,1634887535,1766596717,1327527027,1987208566]},{"sector":4,"data":[544695657,810122786,226375993,1376390410,1952541797,1344300133,1701015410,1701999972,537529715,539107360,1886611780,1769562476,1629513582,1936280608,1718558836,1819033888,1818838560,572552037,825313662,168656440,572530720,1936278560,2036427888,543649385,1766596705,1864397939,1766203494,544433516,1629515369,1919501344,1869898597,572553586,825313662,168656441,572530720,1936278560,2036427888,543649385,544175956,1701603654,1936280608,572552052,842090878,1077968433,168626701,842090785,222306614,1769296138,1852404852,1397563495,1397703725,1701335840,168651884,1750534669,2032168549,1897952623,544500085,1143821133,1394627407,1819043176,1870209068,1701978229,1702260589,544500000,1836020326,1835363616,779711087,1919501856,2032170099,1830843759,544502645,1953068401,2037276960,1869770784,1835102823,1870209139,1634214005,1914725750,1768844917,1763731310,1752440942,1665212517,1702259060,1935758368,1766596715,221148275,1409944842,1970348143,1293972585,1329868115,1750278227,980184165,168626701,1176513824,544042866,543516788,1701603654,1852140832,1663052917,1936682856,2017796197,221148265,218762506,544166922,1953068401,760433952,542330692,1818585171,1752637548,1948282469,1701995880,1701994784,1869770784,1835102823,1852383347,1701344288,1952661792,543520361,1802723668,1936280608,168639092,774965773,1769427744,543712116,1696624500,543712097,1735357040,544039282]},{"sector":5,"data":[543452769,1953068401,779381024,538970637,760433952,542330692,1818585171,1701978220,1702260589,1752440947,1919950949,1634887535,544417645,1701667182,1869768224,1752440941,1665212517,1702259060,538970637,1935758368,1766596715,221148275,539898378,1836020294,1701344288,1818838560,1701650533,539784558,1869572195,1159751027,779381112,168626701,1634493778,543450484,1768976212,537529699,539107360,544698184,1277194100,1702256997,760433952,542330692,1818585171,2116165740,892481828,218762622,1919895050,1718511904,1634562671,1852795252,544108320,1986094444,543649385,1143821133,1394627407,1819043176,1953068832,1953853288,1769304352,1852404852,1953046631,1702043692,537529701,539107360,1986094412,543649385,1143821133,1394627407,1819043176,1233003040,2117088817,538970637,1428169248,1735289203,1701344288,1836008224,1684955501,1869762592,544501869,826900002,1082012722,218762560,826876170,1075918642,2017790477,1684955504,543649385,1701996868,1919906915,225666409,1493830922,1663071599,1696624225,1851879544,1768235108,1919248500,1818587936,1702126437,1768169572,1952671090,1701409391,1919885427,1819042080,1919509536,1869898597,1936025970,544106784,543516788,1701996868,1919906915,1918115961,539780453,1931505524,1948280165,1931502952,1768186485,1952671090,1701409391,1634017395,1663068259,1635020399,779316841,168626701,1696624468,1851879544,543236196,1701996900,1919906915]},{"sector":6,"data":[1852776569,1701584997,543974774,1965062498,1735289203,1830838560,1702065519,218762554,539828234,1667853379,1752440939,1819287653,1931506549,544106345,539568936,1948282740,1814062440,544499301,1948280431,1679844712,1667592809,2037542772,538970637,1835101728,168636005,168626701,1696624468,1851879544,543236196,1701996900,1919906915,1852776569,1701584997,543974774,1965062498,1735289203,1701344288,2036689696,1918988130,168639076,774965773,1818579744,544498533,543516788,1701996900,1919906915,1634607225,1646290285,1937055865,543649385,543516788,1869771361,1701519479,221148025,539898378,1836020294,1701344288,1701991456,1701650533,539784558,1869572195,1159751027,1851879544,1850679396,1699487845,778855798,1970231584,1851876128,538970637,1936482592,1919950959,544437093,543516788,1398099024,1195987744,1701519438,724050041,168635945,168626701,1981837140,544695657,543976545,1684174195,1667592809,1769107316,1965060965,1919247470,1679843616,1667592809,2037542772,218762554,539898122,1701602643,1948284003,1679844712,1667592809,2037542772,1835101728,168636005,1176514098,544042866,543516788,1701147220,1852140832,1663052917,1936682856,2017796197,1684955504,1634877984,745038702,544370464,1936028272,1752440947,537529701,1396776992,1230128468,1797278547,673216869,221129002,218762506,544166922,2003134838,1819042080,1651864352,1701996900,1919906915,544433513,1948282473]},{"sector":7,"data":[1142973800,1667592809,2037542772,1701991456,168639077,757074445,1869760032,1752440941,1918115941,1830839653,745893477,1869112096,543519599,1634760773,1092641902,539782252,1881174639,1936942450,538970637,1381253920,1396779852,1230128468,673205075,221129002,1376390410,1952541797,1411408997,1667854447,538970637,1142956576,1667592809,1769107316,572552037,825304190,168656439,1699875341,1702125932,1917853796,1684366191,224752245,538976266,1866670114,1885432940,1735289203,1919501344,1869898597,1936025970,1233003040,2117218609,168640576,1226902029,557330993,1393167680,1667591269,1735289204,1852397344,1937207140,168626701,1998614356,543912559,1752459639,1998610720,1868852841,1970479223,1629513827,1752440947,1766072421,1952671090,544830063,1701147220,544370464,543516788,1769235265,1411409270,543912801,1953720652,1870209068,1970086005,1713402995,1953722985,1818587936,544498533,539915369,168626701,1931505492,1667591269,543236212,1684957559,221935471,537529610,1917853741,544437093,541213012,1663070831,1801677164,1701344288,1852405536,544698212,544567161,1953390967,218762542,1818579466,1684370529,1886344224,168649577,572530720,1818580768,1701670755,544175136,1143821133,1394627407,1819043176,612246048,2117087281,168640576,1226902029,557396529,1292504384,1852405359,1766203495,225666412,1225395466,1752440942,1768300645,1814062444,745829225,1970239776,1851876128]},{"sector":8,"data":[1987013920,1852776549,1919885413,1919905056,1768300645,544433516,1836020326,1701736224,1919509536,1869898597,1948285298,1851859055,1701344367,1768169586,1952671090,779711087,1701336864,1870209134,1869422709,1629513078,1818846752,1763716197,1936269428,1818584096,1684370533,1869768224,1752440941,1869815909,1701016181,1919509536,1869898597,539916658,2032166473,1881175407,1701209458,1768169586,1634496627,1735289209,1752440864,1869815909,1701016181,1919509536,1869898597,1629518194,1948279918,1679844712,1769239397,1769234798,1679847023,1667592809,2037542772,1701345056,1870209134,1869422709,1713399158,1936026729,1937055788,1752440933,1967399013,1176530017,543517801,1953720652,1769349235,221149029,1309281546,977622095,543574304,1701603686,1885413491,1918985584,544106784,543516788,1702260557,1818838560,1768169573,1735355489,2020565536,1869768224,1953439853,544367976,1701996900,1919906915,544433513,543452769,544567161,661548900,1635197044,1948284014,1869422703,1948280182,745366888,1801547040,1970479205,1394632050,1667591269,1665212532,1936945010,1919501344,1869898597,1936025970,544434464,1852994932,1864393829,539780710,543452769,1852139636,2037543968,1634165024,221146729,1309281546,977622095,543574304,662007673,1965057398,543450483,543516788,1718513475,1634562665,1852795252,1836016416,1684955501,544175136,1852994932,1717989152,1852793632,1836214630,1869182049,1701650542]},{"sector":9,"data":[1734439795,1998615397,544105832,1852404597,1869422695,543519605,1919250543,1869182049,539784046,544567161,1819044215,1953459744,1701147424,1701344288,1852793632,1836214630,1869182049,1701650542,1734439795,1679848293,1919120229,1684365929,544106784,543516788,1668248176,1920296037,1646293861,2003790949,218762542,544166922,1702260589,1713398048,543517801,1713402479,1936026729,1869768224,1852776557,1768169573,1952671090,544830063,1629515636,1752461166,1864397413,1752440942,1634934885,1679844717,1702259058,544825888,1852404597,543236199,1937076077,168639077,774965773,1634878496,1752440935,1768300645,1932027244,1852776489,1948282740,1679844712,1667592809,2037542772,1970239776,1851881248,1869881460,1987013920,1953046629,538970637,544175136,1948282473,1142973800,1667592809,2037542772,1701991456,168636005,1411391520,1293968744,1702065519,1701859104,1769234802,1126198895,1768320623,1952542066,544108393,1818323300,1646290799,1629517935,1634037872,221148018,539898378,1869572163,1948280179,1327523176,1969365067,1852798068,218762542,1409944842,1869422703,1629513078,1818846752,1919885413,1818846752,1713402725,544042866,543518319,1701996900,1919906915,1869881465,1869504800,1919248500,544108320,1768169569,1919247974,544501349,1986622052,2036473957,1769174304,1629513582,1970236704,221930867,822742282,1866997806,1679844460,544110447,543516788,542395457,544826731,543452769]},{"sector":10,"data":[1734439524,1701344288,1818846752,695412837,1953394464,1752440943,537529701,1768169504,1952671090,544830063,544567161,1953390967,544175136,1702260589,544500000,1763733364,1752440942,1766072421,1952671090,544830063,1701147220,537529646,1750343712,1867325541,543519605,1919250511,1869182049,1866670190,1919510126,1769234797,1679847023,1869373801,1868701799,1885413496,1918985584,168636019,1126182450,1936682856,1752440933,1263476837,1953849888,778989428,168626701,1867778573,1987013920,543236197,1701603686,544370464,1701603686,1919295603,1864396143,1814062446,1952539503,544108393,1629515636,1752461166,1646293605,1937055865,543649385,543516788,1652122987,1685217647,218762554,539898122,1701602643,1948284003,1713399144,677735529,2032150899,1998615919,544501345,1830842228,778401391,775031309,1869760032,1752440941,1766203493,1830839660,745893477,1869112096,543519599,1702260557,1919885356,1701998624,1176531827,168635959,1411391520,1293968744,543520367,1701603654,1634296864,543649644,544763746,1701867617,745763425,1936288800,1735289204,1667327264,1768300648,2032166252,168654191,1931485216,1667591269,778331508,775096845,1886999584,1752440933,1919164517,543520361,543452769,1701996900,1919906915,1752637561,543519333,544567161,1953390967,544175136,1702260589,538970637,1701344288,1818846752,168636005,1126182452,1936682856,1752440933,1263476837,1953849888,778989428]},{"sector":11,"data":[168626701,544567129,544104803,1702260589,1919905056,1752440933,1864396385,1713399150,543517801,1629516897,1835627552,1293954661,1329868115,1750278227,543976549,1819044215,1936286752,2036427888,1293967648,543520367,1818323300,1646290799,1713404015,1696625263,543712097,1701602675,1684370531,1818846752,168636005,1699875341,1702125932,1917853796,1684366191,224752245,538976266,1699946530,1952671084,543649385,1701603654,2116165747,909390153,218762622,1919895050,1718511904,1634562671,1852795252,544108320,1953394531,1819045746,543649385,543516788,1886611812,544825708,1663067759,1768320623,1952542066,544108393,1818323300,1646290799,1936029807,1701345056,1869422702,1735289206,1818846752,539784037,224748915,538976266,1749229602,1768386145,1126197102,1768320623,1952542066,544108393,1936942413,1936025441,1233003040,2117611569,168640576,1226902029,556872497,1326058816,1768842608,1176528750,1936026729,168626701,544567129,544104803,1852141679,1881170208,1919381362,1713401185,543517801,1629516399,1952539680,1768300641,1763730796,1752440942,1768300645,1814062444,779383657,1701859104,1735289198,1881170208,1919381362,1713401185,543517801,1918989427,1948283764,1881171304,1919381362,539913569,1852141647,543649385,1633951841,1713398132,543517801,1869837153,1952541027,1998611557,543716457,1919950945,1634887535,1953701997,1937011297,1701344288,1869770784,1835102823,1684955424]},{"sector":12,"data":[1953849632,1952542063,1818321769,1814067564,1935958383,1701344288,1818846752,168636005,1867778573,1701867296,543236206,1735357040,544039282,1701603686,544370464,1635017060,1818846752,2036473957,1769174304,1629513582,1970236704,221930867,537529610,1866735661,1701601909,1768710957,1948281699,1713399144,1852140649,778399073,168626701,1867778573,1701867296,543236206,1735357040,544039282,1701603686,544370464,1635017060,1818846752,2036473957,1769174304,1948280686,1797285224,1868724581,979661409,168626701,1344286257,1936942450,1111577632,544175136,1702260589,544175136,543516788,1701603686,1936288800,1869881460,1701344288,1734963744,1864397928,537529702,1752440864,1766072421,1952671090,544830063,1701147220,839519534,1934958638,1752440933,1918967909,544698226,1937335659,544175136,1701602675,1948284003,1713399144,543517801,544567161,1953390967,225408032,538976266,1852141679,856296750,1917853742,544437093,1163152965,1919885394,1919295532,1948282223,1176528232,543517801,1970169197,1751326764,1702063983,1701859104,168636014,1699875341,1702125932,1867784292,224618864,538976266,1866997794,1869881463,1635013408,1344304242,1919381362,544435553,824475170,226373938,1376390410,1952541797,1344300133,1701015410,1701999972,538970637,1092624928,1668248435,1769234793,1176528750,1936026729,1953068832,543236200,1735357008,544039282,826900002,1082012976,218762560,826876170]},{"sector":13,"data":[1075917363,1749223949,1768386145,1948280686,1176528232,543517801,1886611780,544825708,1701081679,218762610,1970231562,1851876128,1634231072,543516526,1952540791,1952801824,1768780389,544433518,543516788,1701081711,1718558834,1818846752,1763734373,1752440942,1768300645,1814062444,779383657,168626701,1663070036,1735287144,1752440933,1919885413,544367972,1998614121,1751345512,1818846752,1629516645,1814062450,1702130537,168639076,774965773,1869760032,1752440941,1884233829,1852795252,1701650547,539784558,1869572195,1176528243,543517801,1886611780,544825708,1769238607,779316847,538970637,1701336096,1818838560,1766072421,1634496627,1884233849,1852795252,1768169587,1735355489,2020565536,1886413088,1936875877,839519534,1699946542,1952671084,1701344288,1953525536,544108393,544567161,1953390967,856296750,1749229614,1702063983,1701344288,541806368,1953789282,221146735,1493830922,1663071599,1931505249,544502383,543452769,1886611812,544825708,1701603686,1852383347,1701344288,1819239968,1769434988,1998612334,980646241,168626701,1869572163,1948280179,544434536,1769238639,538996335,1931505492,225735279,757935370,757935405,757935405,757935405,539831597,757935392,757935405,1632504333,538994029,538976288,538976288,538976288,2034376736,1818846752,1835101797,1852383333,1886150944,1700946280,1633905012,1919885420,779248996,168626701,1702131781,1869181806,538976366]},{"sector":14,"data":[538976288,538976288,1696627010,1852142712,1852795251,1752440876,1646292581,1768300665,1634624876,221144429,1393167626,543521385,538976288,538976288,538976288,1109401632,1768300665,1931502956,744847977,1634562848,1936026732,1768300660,544433516,1814065012,1701278305,221148275,1141509386,543519841,538976288,538976288,538976288,1109401632,1634476153,1830843507,1718183023,1952539497,544108393,1702125924,1819222060,1953719652,538970637,538976288,538976288,538976288,538976288,1768300576,544433516,1936877926,168636020,1766066701,1917807475,544367972,538976288,538976288,2034376736,1701344288,1685221152,1948283493,544826728,543519329,1919906931,1864393829,1752440942,537529701,538976288,538976288,538976288,538976288,1679826976,778793833,168626701,543516756,1668506948,1768189541,1327523694,1919247474,1953525536,544108393,1702258034,1936028530,1701344288,1685221152,1293972069,1329868115,1937055827,1948283749,1869815919,1713402994,1936026729,1750540334,2032168549,1931507055,1667591269,1752440948,1864397673,1869182064,1293954158,1329868115,1750278227,543976549,1819044215,218762554,706748426,1986351648,1702064741,1701344288,1886150944,1700946280,1633905012,1768300652,1634624876,1864394093,1919247474,542777388,1092644724,218762542,706748426,1936280608,1919295604,1512074607,544175136,2036473921,1954047264,1769172581,221146735,537529610,1277176352,544502633]},{"sector":15,"data":[1836020326,1918987296,1953719655,544175136,1818324339,1953719660,218762542,706748426,1986351648,1702064741,1701344288,1952539680,1919885413,745694564,1936288800,1735289204,1701344288,1936682272,1701978228,1953391971,1818846752,168653669,538976288,1936877926,168636020,1868106253,1633886325,1818304622,1931505523,1667591269,1752440948,1766072421,1634496627,1766334585,1852138596,1937330991,544040308,1769238639,1948282479,1768169583,1634496627,1768431737,1852138596,1684955424,1937339168,544040308,1701603686,1769414771,1970235508,1751326836,1768386145,1948280686,1713399144,1936026729,1952522279,1651077748,1936028789,218762542,1818579466,1684370529,1886344224,168649577,572530720,1818838560,1850286181,1836216166,1869182049,2116165742,959525156,222314622,554306826,858992969,168640545,1919903058,1769104740,1344300910,1919381362,1226861921,1936549236,544106784,1917853793,1634887535,1917263981,225473903,1493830922,1663071599,1663069793,1735287144,1752440933,1919885413,544367972,1998614121,1751345512,1701344288,1869768480,1847619701,1936026977,1684955424,1869770784,1835102823,1702127904,1629516653,1634037872,1852383346,1701344288,1869770784,1835102823,1936288800,168636020,1867778573,1868919328,1919247474,544104736,1835365481,544106784,1919361121,544241007,1965062498,1735289203,1830838560,1702065519,218762554,539898122,1701602643,1948284003,1763730792,544040308,544567161]},{"sector":16,"data":[1953390967,544175136,1919903090,779248996,775031309,1869760032,1752440941,1766203493,1830839660,745893477,1869112096,543519599,1919903058,779248996,775096845,1970226208,761621602,1667853411,1752440939,1701716069,1869357175,1769234787,221146735,218762506,544166922,1919903090,544367972,1763733089,544040308,1629515369,1869768480,1646293109,1937055865,543649385,543516788,1652122987,1685217647,218762554,539898122,1701602643,1948284003,1763730792,544040308,544567161,1953390967,544175136,1919903090,779248996,775031309,1869760032,1752440941,1766203493,1830839660,745893477,1869112096,543519599,1919903058,779248996,775096845,1987005728,1752440933,1969430629,1919906674,544175136,543516788,544695662,1633906540,1852795252,873073966,1917853742,544437093,1163152965,168635986,1699875341,1702125932,1867784292,224618864,538976266,1917853730,1634887535,1917263981,1936749935,1684955424,1869762592,1835102823,1702119712,572552045,875635838,1077968432,168626701,858868001,222306612,1769099274,1852404846,1766203495,225666412,1493830922,1663071599,1881173601,1953393010,1818846752,1763734373,1397563502,1397703725,1701335840,1864395884,544828526,1836020326,1701344288,1818846752,1768693861,1629516915,1864393838,544828526,2032166505,1746957679,543520353,544109938,1313428048,1329802836,1952522317,1701344288,1836016416,1684955501,1869770784,779382893,1717912096,543519343]},{"sector":17,"data":[1918989427,1735289204,760433952,542330692,1818585171,1763716204,1870209126,1634214005,1629513078,1634038380,1847621988,1931506799,1953653108,1344300133,1414416722,1297040174,1870209068,1701716085,1948279909,2037653615,1948280176,1713399144,1869376623,1735289207,544497952,543516788,1835888483,543452769,1836020336,221934704,538976266,538976288,1852404336,218762612,543574282,544567161,543519329,1293971049,1329868115,1750278227,543976549,543452769,1953390967,544175136,543519605,543516788,1852404304,1868767348,1851878765,1646275684,1746957429,543520353,544501614,1701997665,544826465,1701869940,1919950948,544501353,1948284001,1663067496,1634561391,1881171054,1886220146,2032151668,1847620975,543450469,1897951092,544500085,1143821133,1394627407,1819043176,2037653548,1881171312,1953393010,1851858988,1752440932,1914728037,1635021669,1293972594,1329868115,1750278227,778857573,168626701,1881173844,1953393010,544106784,1143821133,1394627407,1819043176,218762554,539898122,1836020294,1701344288,1818846752,1768693861,539784307,1701602675,1864397923,1864394094,1869422706,1713399154,1936026729,839519534,1917198382,1948282223,1176528232,543517801,1970169197,1751326764,1702063983,1769099296,221148270,538976266,1143821133,1629508431,544433252,543516788,1701603686,1869881459,1701344288,1769107488,1897952366,1702192501,218762542,1414483466,1226848837,1752440934,1919950949]}],[{"sector":1,"data":[1702129257,1970348146,543520101,1713402729,745303157,760433952,542330692,1818585171,1768169580,1634496627,1629516665,1634296864,543649644,544763746,544370534,1751343461,1818846752,1752637541,543712105,544432503,544501614,1852404336,778331508,1970231584,1851876128,2037543968,1769107488,1852404846,1752440935,1768300645,1629513068,1852399975,1802706988,1881174121,1953393010,543649385,543516788,1701603686,1684955424,1852793632,1970170228,1919950949,1769238121,1948280686,1914725736,544502629,1948280431,1713399144,1936026729,1919885356,1851876128,543974755,1852404336,1735289204,1701344288,1886287136,1953393010,1713398885,1936026729,218762542,1414483466,1226848837,1870209126,1769414773,1646292076,1919950949,1769238121,1713399662,544042866,1143821133,1394627407,1819043176,1952870176,539782757,544567161,544104803,1768912481,2037653604,1735289200,1701344288,1769107488,1663071342,1634561391,1696621678,543712097,1701669236,1970239776,1702065440,760433952,542330692,1818585171,2036473964,1684300064,543649385,543516788,1852404336,1868767348,1851878765,1869881444,1970239776,1430331506,1480937300,1110328133,1713394753,778398825,1225395488,1870209126,1092645493,1162826837,776160600,542392642,1701603686,1852793632,1852399988,543236211,1936944996,1819043176,1836016416,1684955501,1700929580,1920299808,1752440933,1919950949,544501353,1835888483,543452769,1667592816,1936024677]},{"sector":2,"data":[779381024,1919895072,1919905056,1852383333,1836216166,1869182049,1650532462,544503151,543516788,1330926913,1128618053,1413562926,1818846752,1931488357,1126196581,1953522024,824210021,572533809,1953723715,2053729647,543649385,1920298841,1937330976,745366900,1852383266,1701344288,1702057248,544417650,1684632903,1851859045,1699881060,1701995878,778396526,168626701,544370502,1701998445,1718511904,1634562671,1852795252,1868718368,1344304245,1414416722,1297040174,1702043692,1752440933,1917853797,544501353,1768976244,1852383331,1634222880,1919251568,741617952,1866670624,1851878765,573338468,543584032,543516788,1919251285,1193308967,1701079413,1684955424,1717916192,1852142181,221144419,1376390410,1952541797,1344300133,1701015410,1701999972,538970637,1361060384,1953786229,543649385,1143821133,1394627407,1819043176,1233003040,2117481009,538970637,1394614816,1667591269,1735289204,1818838560,572552037,875645310,1077968438,168626701,858868001,222306613,1885688330,1953392993,543649385,543516788,1701995347,1142976101,1819308905,168655201,1666124301,1769169251,1818324591,2032171372,1830843759,1998616929,544501345,1914728308,1634886757,1870209143,1931506293,1701147235,1411395182,1377854824,1767993445,1394635886,1701147235,1868767342,1851878765,1868832868,1847620453,1965061231,1952539760,1752440933,1768693861,1864397939,1768300646,997418348,543582496,544567161,1953390967]},{"sector":3,"data":[544175136,1633972341,1948280180,1814062440,1937011561,544175136,2003789939,1634231072,1936025454,1937055788,1752440933,1699881061,1936028262,1868767336,1851878765,168636004,1867778573,1885696544,1953392993,1701344288,1919120160,544105829,1886611812,981033324,168626701,1176513824,544042866,543516788,2003134806,1852140832,1663052917,1936682856,1699881061,1852399984,1666392180,1852138866,1919885356,1701998624,168653683,1394614304,1413892424,775243307,168626701,1634493778,543450484,1668248144,1920296037,537529701,539107360,1633972309,1735289204,1701344288,1936280608,572552052,909199742,1077968433,168626701,858868001,222306614,1852133898,1852403041,1766203495,544433516,543452769,1701996868,1919906915,225666409,1493830922,1663071599,1663069793,1735287144,1752440933,1634607205,1864394093,543236198,1701603686,544370464,1701996900,1919906915,1935745145,1701146144,778331492,168626701,1163153230,1716068410,1634296864,543649644,1702391650,1885413491,1918985584,1919903264,1818846752,1713402725,544042866,1701344367,1768169586,1952671090,1701409391,1851859059,1870209124,1868832885,544483182,1953390967,544175136,1634624882,1948280173,745366888,1801547040,1970479205,1394632050,1667591269,1665212532,1936945010,1919501344,1869898597,1936025970,544434464,1852994932,1864393829,539780710,543452769,1852139636,2037543968,1634165024,221146729,1409944842,1701978223,1701667182]},{"sector":4,"data":[1713398048,543517801,1679848047,1667592809,2037542772,218762554,539898122,1701602643,1948284003,1713399144,543517801,1679848047,1667592809,2037542772,1970239776,1851881248,1869881460,1852142112,778399073,775031309,1869760032,1752440941,1766203493,1830839660,745893477,1869112096,543519599,1634624850,221144429,538976266,543516756,1634624850,1176528237,543517801,1818323300,1646290799,1629517935,1634037872,221148018,539898634,1701869908,1701344288,2003136032,1835101728,168636005,1126182452,1936682856,1752440933,1263476837,1953849888,778989428,168626701,544567129,544104803,1701602675,1830843491,543519343,1851877492,1701736224,1818846752,1869881445,1852142112,543518049,1629516897,1835627552,1293954661,1329868115,1750278227,543976549,1819044215,1936286752,2036427888,1377853728,1835101797,1768169573,1735355489,2020565536,1919903264,1667327264,1702043752,1952671084,1713398885,778398825,168626701,1634493778,543450484,1668248144,1920296037,168653669,572530720,1818579744,1769235301,1142974318,1667592809,1769107316,572552037,875645310,168656436,572530720,1818579744,1769235301,1176528750,1936026729,1233003040,2117481521,168640576,1226902029,557200945,1376390464,1869902693,1735289202,1667318304,543450475,1176531029,1936026729,168626701,544567129,544104803,1920230770,1702258025,1818846752,1948283749,544498024,544567161,1702257000,1667326496,543450475,1646293109]},{"sector":5,"data":[1937055865,543649385,543516788,1953719634,543519343,1702390086,1766072420,1881172851,1919381362,1763732833,544040308,1948282473,1142973800,543912809,1818850389,1701409897,1919361139,779122031,168626701,1914728276,1869902693,1948280178,1713399144,1936026729,1970239776,1667326496,543450475,221933685,822742282,1917198382,1948282223,1142973800,543912809,1818850389,1701409897,1919361139,745567599,1869112096,543519599,543516788,1953719634,543519343,1702390086,537529700,1766072352,1881172851,1919381362,1763732833,778921332,538970637,1701336096,1936020000,1701998452,2020165152,1142973541,543912809,1818323300,1646290799,1629517935,1634037872,221148018,539898378,1914728276,1869902693,1629513074,1948281964,1713399144,1936026729,544108320,543516788,1801675106,1679847541,543912809,1679847017,1702259058,221004064,538976266,1869572195,1948280179,1327523176,1969365067,1852798068,537529646,1867784224,1936028192,1701998452,1818587936,1702126437,1768300644,544433516,1931506287,1768121712,1629518182,1718182944,1701995878,1679848558,1702259058,537529644,2037653536,1948280176,1629513064,1869770864,1634300528,1881171316,1835102817,1919251557,1931488371,1668573559,544433512,543452769,1684826487,1685217635,537529715,1852383264,1701344288,1918980128,1952804193,544436837,746090338,1684955424,1701344288,1751326830,1702063983,1701344288,541806368,1953789282,221146735,539898634]},{"sector":6,"data":[1852139607,1701344288,1818846752,1629516645,1914725746,1869902693,744777074,1701998624,1629516659,1797290350,1948285285,1701978223,1852994932,225408032,538976266,1143821133,1394627407,1819043176,218762542,1818579466,1684370529,1886344224,225665897,538976266,1867325474,1864394098,1699881070,1919906931,1766203493,543450488,1802725700,612246048,2117350193,538970637,1344283168,1919381362,1193307489,1886744434,1851859059,1917853796,1634887535,1950949485,544435557,824475170,226373684,1376390410,1952541797,1344300133,1701015410,1701999972,538970637,1109402144,1768645473,1428186990,1766203504,544433516,826900002,1082012982,218762560,826876170,1075918133,1699875341,1919906931,543649385,1701602628,543450484,1701603654,218762611,1668173578,1870209125,1701060725,1702126956,1713398048,744844393,1970239776,2036428064,543515168,1701601889,544175136,1868785010,544367990,539915369,544567129,544104803,1868785010,544367990,1701602660,543450484,1701603686,1769414771,1663068276,1635021413,2037673577,1819176736,1718165625,544173600,1701344367,1768300658,544433516,1702257000,1701143072,1919098990,1702125925,1919885412,1634231072,1684367214,544108320,543516788,1802725732,218762542,1430340362,1313818964,1983979578,543451503,1852732786,543649385,1897951855,1953786229,543649385,544829025,1735357040,1936548210,544370464,1852404597,1851859047,1868767353,1851878765,1864397668]},{"sector":7,"data":[1919248500,1869116448,1931502963,1768121712,1684367718,544106784,1936287860,1869770784,1969513827,1965057394,1818850414,1970239776,1936028192,1701998452,1701344288,1818584096,1684370533,1818846752,1919885413,1818846752,221148005,1309281546,977622095,543574304,543516788,1802725732,1970239776,1818584096,1684370533,1818846752,1713402725,544042866,1713402729,745303157,544370464,1948280425,1411409256,1864388685,1163141234,1981829197,1634300513,543517794,2032168553,544372079,1330926913,1128618053,1413562926,1818846752,1936269413,1952805664,544175136,543516788,541933906,1986622052,2032151653,1830843759,1746958689,543520353,1970238068,543517794,1868785010,1769104758,1679845230,1952803941,1713398885,1936026729,1850286126,1701344288,1869770784,1936942435,543584032,1953068401,1735289204,1869770784,1835102823,1851859059,1397563492,1397703725,1701335840,539782252,1886217588,1918988911,1768300665,544433516,543519329,1634038371,543450484,543452769,1919906931,1763730533,1752440942,1768169573,1952671090,544830063,1667592307,1701406313,1852383332,1701344288,1347245088,544370464,1347241300,1918989856,1818386793,1411395173,1702061416,1835365408,1634889584,1713404274,1936026729,2036428064,1702260512,1769109362,1679844724,1952803941,1713398885,1936026729,1634235424,1870209140,1635197045,1948284014,1701978223,1919906931,168636005,1866861069,1869422706,1763730802,1919903342,1769234797]},{"sector":8,"data":[1629515375,1953853282,1952805664,1735289204,1701344288,1981834611,1634300513,1936026722,1702043692,537529701,1394745376,1769239653,1948280686,1411409256,542133573,1411412591,1444958285,1634300513,577072226,909199742,168656439,1750338061,543519333,543519329,1702258035,543973746,1937334647,544175136,1953719666,543519343,1701603686,1752440947,2032170081,1679848815,1952803941,539911269,543516756,1819045734,1852405615,1751326823,544502369,1948283753,1701322863,2032169068,1713403247,1920296809,1970217061,1752440948,1634934885,1953719654,2036430624,544175136,1868785010,544367990,1920298873,1818846752,1679848293,1852141669,1735289188,544108320,1869639017,1851880562,1864394083,1752440934,1768300645,544433516,543452769,543516788,1970236769,1864397934,1768169574,1931504499,1701011824,1970239776,1986095136,168636005,1716062733,538976288,538976288,538976288,538976288,538976288,538976288,544162848,1936287860,757926413,538976288,538976288,538976288,538976288,538976288,538976288,757935392,757935405,1750338061,1768300645,544433516,543519329,1953067619,1818321769,538976300,1701990432,1126200179,726422100,726944833,541869380,1914728308,1635021669,168653938,1411412591,1864388685,1163141234,1763725389,1702043763,538976372,2032148512,544372079,1886220131,1919251573,1684955424,1702065440,1701344288,1869875725,1701344288,1296126496,1769104416,538994038,538976288]},{"sector":9,"data":[538976288,1684960544,1952803941,1868767333,1851878765,1952522340,1701344288,1836016416,1684955501,538970637,538976288,538976288,538976288,538976288,538976288,538976288,1869770784,779382893,168626701,543516756,1701603686,1918967923,1869488229,1769104238,1633905012,1428168812,1948280179,1428186472,1818584174,543519845,1735357040,544039282,1835365481,1919885356,538970637,538976288,538976288,538976288,538976288,538976288,538976288,1701998624,1394635635,1413892424,540624427,1814065012,1702256997,760433952,223563588,538976266,538976288,538976288,538976288,538976288,538976288,538976288,1818585171,1835606124,1768187245,1818588257,1629498489,1965057134,1948280179,168650088,538976288,538976288,538976288,538976288,538976288,538976288,1965039648,1818584174,543519845,1835888483,543452769,1948284001,1663067496,1634561391,168649838,538976288,538976288,538976288,538976288,538976288,538976288,1881153568,1886220146,168636020,1867778573,1936028192,1701998452,1713398048,543517801,1713402479,1936026729,544825888,1852404597,1752440935,1851072613,1701602660,1881171316,1919381362,1763732833,980247924,168626701,1176514097,544042866,543516788,1802725700,1769231648,1769236844,1730179941,1886744434,1751326764,1702063983,1701344288,1684952352,1952803941,537529701,1919950880,1634887535,1953046637,221146469,538976266,543516756,1701080661,1702126956,1634296864]},{"sector":10,"data":[543649644,544763746,1701867617,745763425,1701345056,2032166258,1663071599,1948282465,224751737,538976266,1634886000,1702126957,1629516658,1931502702,1668573559,779314536,839519520,1749229614,1702063983,1701344288,541806368,1953789282,221146735,1175063818,1830842991,543519343,1868983913,1952542066,544108393,1970233953,1752440948,1634738277,1701667186,1936876916,1684955424,1769435936,1701340020,1870209139,1633886325,1937055854,1931488357,221930853,538976266,1867325474,1864394098,1851072622,1701602660,572548468,858858622,168656439,1866861069,1869422706,1763730802,1919903342,1769234797,1864396399,1752440942,1853169765,1701602660,1663067508,1634561391,539780206,543516019,1885431875,544367988,539767857,1836008226,1684955501,539110515,1948282473,1428186472,661808499,1967595635,543515753,543452769,1701209426,1668179314,168636005,1699875341,1702125932,1867784292,224618864,538976266,1917853730,1634887535,1917263981,1936749935,1684955424,1869762592,1835102823,1702119712,572552045,875635838,168656432,1699875341,1702125932,1917853796,1684366191,1936028277,538970637,1394614816,1667591269,1735289204,1818838560,572552037,875645310,168656438,572530720,1818575904,1852404837,1766203495,544433516,543452769,1701996868,1919906915,544433513,826900002,226375473,538976266,1934958626,543649385,543516788,1835888451,543452769,1836020304,572552304,842090878,168656436]},{"sector":11,"data":[1866861069,1852383346,1836216166,1869182049,1852776558,1852793632,1819243124,1735289196,1701344288,1936286752,2036427888,543584032,1718513507,1634562665,1852795252,1634296864,543649644,1702391650,1752637555,1679847013,1952803941,543649385,1701603686,1931488371,168650085,572530720,1634222880,1852401518,1866670183,1919510126,1769234797,1293971055,1634956133,544433511,826900002,226375728,1175063818,1830842991,543519343,1868983913,1952542066,544108393,1970233953,1752440948,1297358949,1635131472,1650551154,539780460,543516019,1885431875,544367988,539767345,1953517346,2053729641,543649385,1920298841,1937330976,745366900,1852383266,1701344288,1702057248,544417650,1684632903,1851859045,1699881060,1701995878,778396526,168626701,1162104405,1163150668,1886339872,1734963833,673215592,824191331,758593593,825833777,1852130080,1818325620,1768902688,1394635886,2004117103,744845921,1668172064,222314542,554306826,942879049,168640545,1869767507,1852402796,1750343783,1735749490,1766596712,225670259,1393167626,543518063,1953720684,1918967923,1869357157,1919248238,1634235424,1752440942,544368997,1886611812,544825708,1634038369,544108320,1920298873,1919120160,778986853,1970231584,1851876128,1987013920,1864900709,1668489330,1819045746,1752440873,1735749490,1768693864,544437363,1713399407,1936026729,1768169516,1952671090,1701409391,1730161779,1886744434,1881156723,1919381362]},{"sector":12,"data":[1763732833,1936549236,1768169516,1735355489,2020565536,1953525536,1936617321,1851858988,1768300644,1663067500,1702129263,544437358,1864396393,1919247474,544175136,543516019,1701998445,1718511904,1634562671,1852795252,218762542,1702057226,1701344288,1195462688,1347756101,1684955424,1195462688,1329864773,1797279319,544438629,1981837172,544695657,543516788,1954047342,544370464,1986359920,1937076073,1852405536,544698212,1763731055,1919903342,1769234797,1763733103,1752440942,1768693861,539915379,2032166473,1746957679,543520353,1869422689,744846197,1970239776,1851876128,1768710944,1948281699,1948280168,1864396911,1868701810,1836020852,543584032,543516788,1869767539,1646292076,1948283489,1752440943,1769087077,544499815,1948280431,1814062440,779383657,168626701,543519573,543516788,1092636757,1464816210,1684955424,1464812576,1379999822,542592850,1937335659,544175136,1869767539,1948281964,1970238056,1629513831,1936288800,1852776564,1953046629,1629515109,543236212,1701669236,1868111918,1633886325,1818304622,1663070067,1801677164,1701344288,1920098592,544438127,1948282473,1931502952,1819243107,1633820780,1869881458,1701344288,1734963744,1864397928,1752440934,1768693861,539784307,1679848047,543646066,543516788,1869767539,1646292076,1965062255,1919885424,2003788832,1852383342,1701344288,1919120160,543976559,779247970,168626701,543519573,1280463939,1297041451,1869881413]},{"sector":13,"data":[1987013920,1869881445,1701344288,1734697504,1768844905,1864394606,543236198,1953720684,1934958638,1413685349,1160465490,1948271694,1869422703,1948280182,1752440943,1852121189,1718558820,1814061344,779383657,168626701,544567129,544104803,1936028272,543236211,1953785196,1797288549,1948285285,1869422703,1948280182,1752440943,1701716069,1763734648,544040308,1952540788,1734697504,544435817,1752459639,1634235424,1701585012,1919251572,218762542,1818579466,1684370529,1886344224,225665897,538976266,1766072354,1735355489,2020557344,572552037,808526974,168656437,572530720,1919111968,543976559,1936875842,612246048,2117284145,538970637,1461723680,1868786789,1948280173,1397563503,1397703725,1701335840,572550252,808526974,1077968432,168626701,858868001,222306617,1634030346,1768448882,1713399662,1176531567,1936026729,168626701,1948282441,1713399144,543517801,1953720684,1870209068,1633886325,1702043758,1751347809,1919903264,1818846752,1629516645,1752660334,543519333,1948282479,1931502952,1667591269,543450484,1986622052,168636005,1750534669,2032168549,1931507055,1668440421,1868963944,1768300658,745760108,1970239776,1851876128,1701868320,2036754787,1931501856,1818717801,1768300645,1634624876,1864394093,1937055858,1397563493,1397703725,1818851104,1918985060,1948283748,1886593135,1718182757,543236217,1953653104,1819632489,1931506273,1864397925,1768300646,544433516,1713384749]},{"sector":14,"data":[1696625263,1886216568,539780460,1481911850,1411395156,1713399144,1936026729,1701994784,1936288800,744777076,1869373728,1998612334,543716457,543516788,1701996900,1919906915,1634738297,539912308,1836020294,1768453152,1768693875,539784307,544567161,544104803,1718773104,544043631,1969710450,544366956,1701603686,1701867296,1769234802,779316847,168626701,1931505492,1668440421,1868963944,1768300658,980641132,168626701,1176514097,544042866,543516788,1701603654,1852140832,1663052917,1936682856,1699946597,1751347809,839519534,2035556398,1948280176,1847616872,543518049,1948280431,1713399144,543517801,544567161,1953390967,544175136,1918985587,1713399907,539783791,168653423,1965039648,1293968755,1329868115,1769414739,1633903724,544433266,1864378920,692002930,544175136,1918985587,1713399907,1629516399,1952805664,224816928,538976266,1701603686,1769414771,1931503732,1818848617,1847620193,1936026977,544370464,1702131813,1869181806,221148014,539898634,1869572163,1948280179,1327523176,1969365067,1852798068,222314542,554306826,808726857,168640545,1701602643,1852404835,1766203495,544433516,1869767489,1142977395,1667592809,1769107316,168653669,1868106253,1633886325,1702043758,1952671084,1818846752,1763734373,1869422702,1948280178,544104808,543518319,1701996900,1919906915,1952522361,1948279072,778399081,1668173600,1870209125,1702242165,1818587936,1702126437,1752440932]},{"sector":15,"data":[1768300645,544433516,1679847017,1701209705,1953391986,1919509536,1869898597,1936025970,1870209068,1633886325,1701847150,1919903346,1752440941,1634934885,1948280173,543912801,1629515375,1864395884,1752440934,1948282213,1952802671,544367976,1713384749,1696625263,1886216568,539780460,1701602660,1735289204,1818846752,1629516645,1936683619,1768169587,1952671090,1701409391,168636019,1867778573,1818587936,544498533,1701603686,1852383347,1919905056,1752440933,1864396385,1679844718,1667592809,2037542772,218762554,539898122,1836020294,1701344288,1953517344,1936617321,1852140832,1663052917,1936682856,1699946597,1952671084,1919107360,544437103,1701996868,1919906915,779314537,538970637,1830830368,543912545,1954047342,544175136,543516788,1835888483,543452769,1701667182,1684957472,1952539497,1948283749,544498024,224749684,538976266,1835888483,543452769,1629516649,1986622563,168636005,1142959666,1819308905,1696627041,543712097,1948280431,1679844712,1667592809,1769107316,2032169829,1998615919,544501345,1931505524,1667591269,537529716,1768300576,544433516,1836020326,1851858988,1752440932,1931505253,1667591269,1752440948,1768300645,544433516,544567161,1953390967,218762542,1409944842,1633886319,1818583918,1701344288,1818579744,544498533,1869767489,1142977395,1667592809,1769107316,1663071077,1634561391,221930606,537529610,1917198381,1948282223,1327523176,1869182064,1830843246]},{"sector":16,"data":[745893477,1869112096,543519599,1701602643,1092645987,1936683619,1766072435,1952671090,1701409391,168636019,1411391520,1830839656,543912545,1954047342,544175136,543516788,1835888483,543452769,1701667182,1936286752,1701867617,779317857,1819168544,1752440953,537529701,1702043680,1952671084,1713398885,1936026729,544106784,543516788,1920103779,544501349,1701996900,1919906915,1769414777,1646292076,1702043749,1952671084,221144165,1376390410,1952541797,1411408997,1667854447,537529715,539107360,1802725700,1769096224,544433526,824475170,226375217,538976266,1766203426,1394632044,1667591269,1852795252,612246048,2117611825,168626701,1634493778,543450484,1668248144,1920296037,168653669,572530720,1818579744,1769235301,1142974318,1667592809,1769107316,572552037,875645310,168656436,572530720,1818579744,1769235301,1176528750,1936026729,1233003040,2117481521,168640576,1226902029,556872753,1393167680,1667591269,1735289204,1819033888,1818838560,1763734373,543236206,1701996868,1919906915,218762617,1970231562,1851876128,1818587936,544498533,543976545,1701603686,1969430643,1852142194,544828532,1886611812,1702453612,1852383332,1701344288,1818846752,1768693861,221148275,1409944842,1702043759,1952671084,1819042080,1818846752,1763734373,1752440942,1768300645,1814062444,980710249,168626701,539828256,1836020294,1701344288,1818838560,1701650533,539784558,1869572195,1394632051]},{"sector":17,"data":[1667591269,1816207476,1864379500,1919950962,225669989,538976266,1381253920,1280518988,541610817,774450984,168626701,1867778573,1851876128,543974755,543976545,1701602675,1869182051,221934446,537529610,1917198381,1948282223,1176528232,543517801,1970169197,1751326764,1702063983,1936016416,1667591269,1816207476,1864379500,1919950962,225669989,538976266,1280463939,1128350251,1095521099,673204307,221129052,1376390410,1952541797,1411408997,1667854447,538970637,1176511008,543517801,1701602643,1869182051,2116165742,942747940,222314622,554306826,842281289,168640545,1701602643,1852404835,1851859047,1631789156,1818583918,543649385,1970169165,218762611,1970231562,1869112096,543519599,1835888483,1935961697,544106784,1143821133,1394627407,1819043176,1869768224,1701650541,544437614,1633906540,543450484,1948282473,1830839656,544566885,544366946,1948284001,1948280168,1864396911,1870209126,1931506293,1701147235,1461726830,544105832,544567161,1701602675,1948284003,1830839656,544566885,745693538,1970239776,1801547040,1953046629,1952669984,778401385,168626701,1931505492,1667591269,1752440948,1701650533,1646294382,1646293601,1937055865,543649385,1869422689,979727221,168626701,1126182176,1801677164,1701344288,1852140832,1634607221,2032166253,1998615919,779382369,168626701,1867778573,1818587936,544498533,543516788,1970169197,1918984736,544825888,1852404597,1752440935]}]],[[{"sector":1,"data":[1701519461,1634689657,221930610,537529610,1917853741,544437093,542395457,1176531567,221130801,1326058762,543515502,543516788,1970169197,1918984736,544434464,1769235297,539780470,544567161,544104803,543519605,543516788,1869771361,1701519479,1864397689,543236210,1937076077,1869881445,1701410336,1768169591,1919247974,544501349,1970169197,1851859059,1751326820,1702063983,1836016416,1684955501,168636019,1699875341,1702125932,1867784292,224618864,538976266,1699553314,544437614,543452769,1835888451,1935961697,612246048,2117283889,168626701,1634493778,543450484,1668248144,1920296037,537529701,539107360,1869572163,1735289203,1836008224,1684955501,2116165747,808530249,222314622,554306826,825635145,168640545,1633972309,1735289204,1701344288,1936280608,168653684,1397557773,1397703725,1701335840,1663069292,1914728033,1634038373,1752440932,1768169573,1629514611,1965057134,1952539760,1752440933,1768693861,544437363,1931505524,544698216,1851877475,544433511,1751348595,544432416,1701602660,543450484,1914729071,1869902693,543450482,1701603686,168636019,1867778573,1717924384,1752393074,1701344288,1936288800,221934452,537529610,1917198381,1948282223,1444963688,544695657,1970169197,1751326764,1702063983,1717916192,1752393074,1919885356,1701998624,1176531827,168635957,1699875341,1702125932,1917853796,1684366191,224752245,538976266,1699880994,1852399984,1735289204]},{"sector":2,"data":[1701344288,1919111968,544105829,1886611780,544825708,826900002,1082012979,218762560,826876170,1075917620,1934952973,543649385,1818323268,1109419887,1327528047,1869182064,168653678,1868106253,1633886325,1702043758,1952671084,1953525536,1936617321,1936286752,2036427888,1763730533,543236206,1818323300,1646290799,1948285039,1768366191,1629513078,1836016416,1684955501,544370464,1919250543,1869182049,1684086894,1769236836,1818324591,1718511904,1634562671,1852795252,1849761838,1701344367,1635197042,1869881465,1701868320,2036754787,1718511904,1634562671,1852795252,544434464,1948285282,1852403833,1852383335,1948279072,544503909,779644770,168626701,1667590211,1866604651,745760120,1953517344,544108393,1953789250,745762415,1684955424,1936280608,1866604660,225666424,757935370,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,1867778573,1818587936,544498533,1818323300,1646290799,1864398959,1869182064,1646293870,1937055865,543649385,1869422689,979727221,168626701,1126182176,1801677164,1701344288,1953525536,544108393,544567161,1953390967,544175136,1701602675,221148259,218762506,544166922,1701602675,1679848547,1869373801,1868701799,1886331000,1852795252,2036473971,1769174304,1948280686,1797285224,1868724581,979661409,168626701,1344286257,1936942450,1111577632,544175136,1702260589,544175136,543516788,1769238639]},{"sector":3,"data":[2032168559,1998615919,779382369,775031309,544166944,1701602675,1948284003,544434536,1769238639,538996335,544162848,1936287860,538970637,757935392,757935405,757935405,757935405,757935405,538979629,757935392,757935405,538970637,1663058208,1801676136,2020565536,538976288,538976288,538976288,1701990432,1948283763,1394632040,1162035536,542261570,1931505524,1667591269,537529716,538976288,538976288,538976288,538976288,538976288,538976288,1919885344,1701602080,1763734113,168636020,538970637,544096544,1769238639,1646292591,1869902965,538976366,538976288,1701990432,1948283763,1428186472,1379999824,542592850,1142977135,223237967,538976266,538976288,538976288,538976288,538976288,538976288,538976288,1330795073,1701519447,221148025,537529610,1849761824,1702127904,1852383341,1814061344,544502633,544763746,1917853728,544437093,543516788,1092636757,1464816210,544370464,1314344772,538970637,538976288,538976288,538976288,538976288,538976288,538976288,1381122336,1797281615,779319653,745688864,1970239776,1851876128,1701998624,168653683,538976288,538976288,538976288,538976288,538976288,538976288,1948262432,1713399144,1953722985,1952803872,544367988,1948280431,1763730792,544040308,225800057,538976266,538976288,538976288,538976288,538976288,538976288,538976288,1953390967,1752440891,1702043749,1952671084,544108393,1936880995,1998615151]},{"sector":4,"data":[225209449,538976266,538976288,538976288,538976288,538976288,538976288,538976288,1702260589,544175136,543516788,1936877926,1953046644,1948282213,225730920,538976266,538976288,538976288,538976288,538976288,538976288,538976288,1918989427,1998615412,543716457,1952540788,1952803872,779249012,168626701,1954047316,2020557344,168653669,757935405,757935405,168635693,1948280393,1948280168,544503909,544763746,1701997665,544826465,1953394531,1936615777,2019914784,1948265588,1948280168,544503909,1629516649,1836020853,1667855457,2037148769,1818587936,1702126437,1851859044,1851859044,1701716089,1702109303,2032170104,1948284271,543518841,1819305330,1936024417,779381024,543574304,544567161,661548900,1635197044,1948284014,1701978223,1667329136,1818304613,1718558828,1701344288,2019914784,2032151668,1663071599,1763733089,1919251310,1851859060,1701060708,1702126956,2019914784,168636020,1867778573,1887007776,1852383333,1836216166,1869182049,1852383342,1679843616,1869373801,1868701799,168639096,774965773,1701990432,1411412851,1864385089,1818435698,543908713,1830842228,543520367,1948282740,1629513064,543253874,1919248503,1870209125,1635197045,1948284014,537529711,2037653536,1763730800,1919903342,1769234797,221146735,539898378,1701869908,1701344288,1886413088,1919971186,1702125929,1718511904,1634562671,1852795252,1937055788,543649385,543516788,1262698818,1128353875]},{"sector":5,"data":[537529669,1701519392,1869881465,1919902496,1952671090,1936289056,1701536116,168636019,1126182451,1936682856,1752440933,1263476837,1953849888,544108404,1629515636,1885692771,1752440948,1852383333,1836216166,1869182049,1851859054,1633886308,226062962,538976266,544503151,543516788,1835888483,778333793,168626701,1867778573,1936615712,544502373,1953785196,544436837,1948282473,1948280168,980711525,168626701,1428172337,1948280179,1629513064,2003792498,2036689696,1919885427,1768710944,1948281699,1869619311,1769236851,1948282479,1763730792,1919251310,1852795252,538970637,1768910880,1998615662,1701995880,1970239776,1851881248,1869881460,1936615712,544502373,1954047348,839519534,2035556398,1948280176,1948280168,745830501,1769174304,1109419886,1397441345,1162035536,544175136,1920102243,544498533,1953720685,1936026465,218762542,1818579466,1684370529,1886344224,168649577,572530720,1634288672,543649644,1702391618,2116165747,892350756,218762622,1818579466,1684370529,1869762592,1969513827,168650098,572530720,1869103904,1852404591,1866670183,1851878765,1967267940,1852798068,2116165747,959459657,222314622,554306826,875835721,168640545,1701602643,1852404835,1766072423,1952671090,1701409391,218762611,1701336842,1870209134,1702043765,1952671084,1679843616,1667592809,2037542772,544106784,543516788,1701996868,1919906915,1918115961,539780453,543516788,1634038369,544175136]},{"sector":6,"data":[543516788,1751607666,1718558836,1701344288,1919501344,1869898597,1411414386,543516018,1886611812,1937334636,1814061344,544502633,1713399407,1936026729,1852793632,1852399988,1763730533,1752440942,1679848545,1667592809,2037542772,218762542,544166922,1701602675,1629516899,1919509536,1869898597,1646295410,1937055865,543649385,1869422689,979727221,168626701,1126182176,1801677164,1701344288,1835101728,1718558821,1701344288,1919509536,1869898597,1763735922,1752440942,1768169573,1952671090,226062959,538976266,1701147252,218762542,1409944842,1702043759,1952671084,1679843616,1667592809,2037542772,544825888,1852404597,1752440935,1701519461,1634689657,221930610,822742282,1934958638,1752440933,1347756133,1381122336,1629509455,1142973550,542005071,1330795073,1701519447,1948283769,1869422703,1948280182,1752440943,537529701,1919950880,1869182565,1864397685,1701716082,1679848568,1667592809,2037542772,839519534,1917853742,544437093,1163152965,168635986,1699875341,1702125932,1867784292,224618864,538976266,1766072354,1952671090,1701409391,2116165747,925970724,218762622,1818579466,1684370529,1869762592,1969513827,168650098,572530720,1886930208,1768189537,1142974318,1667592809,1769107316,572552037,842090878,1077968439,168626701,875645217,222306613,1818579722,1769235301,1142974318,1702259058,218762611,1701336074,1818846752,1768693861,1679848563,1819308905,544438625,543516788]},{"sector":7,"data":[1701996900,1919906915,544433513,543452769,1701603686,1868767347,1767994478,543450478,1948282479,1663067496,1701999221,2037150830,1818587936,1702126437,1919164516,778401385,1970231584,1851876128,1818587936,544498533,1768169569,1919247974,544501349,1986622052,1869881445,1701410336,1953046647,1868767347,1852142702,221148020,1409944842,1702043759,1952671084,1679843616,1702259058,544825888,1852404597,543236199,1937076077,168639077,757074445,1768702752,1948281699,1679844712,1702259058,1952803872,779249012,168626701,168653391,757074445,1970226208,761621602,1667853411,1752440939,1969430629,1852142194,1919164532,543520361,1953785196,1948283493,1634213999,1293968758,1329868115,537529683,1750278176,543976549,1701995890,1948279905,1679844712,543912809,543452769,1633972341,1948280180,1814062440,1937011561,544175136,2003789939,538970637,1634231072,1936025454,1668641568,1935745128,1818584096,1684370533,544370464,1953719666,1684370031,1818846752,221148005,218762506,544166922,1701602675,1629516899,1769104416,1646290294,1937055865,543649385,543516788,1652122987,1685217647,218762554,539828234,1936028240,1851859059,1869095012,1679844460,544110447,1280463939,1684955424,1701998624,1948283763,1814062440,1702130789,1752440946,168653921,1663049760,1701999215,1852797043,1948283748,1752440943,1919164517,543520361,1919903272,1635280160,1701605485,1413685292,1126911058,168635945]},{"sector":8,"data":[1917782541,168626701,1344286257,1936942450,1111577632,544175136,1702260589,544175136,543516788,1634038369,1936288800,1735289204,1701344288,1769104416,168650102,1814044704,1702130789,221148018,539898378,1701602643,1948284003,1679844712,1702259058,1970239776,1851881248,1937055860,543649385,543516788,1413891404,1381122336,1864390479,537529714,1230118944,542394439,1330795073,1701519447,221148025,539898634,1936028240,1313153139,777143636,168626701,1634493778,543450484,1768976212,537529699,539107360,1802725700,1769096224,544433526,824475170,1082013233,218762560,826876170,1075918388,1699940877,1952671084,543649385,1701603654,218762611,1717912074,543519343,544567161,544104803,1718773104,544043631,1953722221,1818846752,1886330981,1952543333,1936617321,544106784,543516788,1701603686,1936288800,2032151668,1830843759,544502645,1936877926,1702043764,1952671084,1713398048,778398825,168626701,1163153230,1866735674,544483182,1936028272,1313153139,542262612,1701604981,2032169843,1998615919,544501345,1864396660,544105840,543516788,1701602675,1684370531,1818846752,168636005,1699940877,1952671084,543649385,1767055457,1701603182,1818838560,755633509,757935405,757935405,757935405,757935405,757935405,168635693,1931505492,1667591269,543236212,1701603686,544825888,1852404597,543236199,1937076077,168639077,757074445,1768702752,1948281699,1713399144,1852140649]},{"sector":9,"data":[778399073,168626701,1867778573,1818587936,544498533,1768300641,1646290284,1937055865,543649385,543516788,1652122987,1685217647,218762554,539898122,1936028240,1096032371,1869881410,1987013920,1869881445,1701344288,1936288800,1718558836,1818846752,221148005,539898378,1701602643,1948284003,1713399144,543517801,1881176418,1936942450,543649385,543516788,1092636757,1464816210,544370464,1314344772,1381122336,168646479,1797267488,779319653,168626701,1701602643,1852404835,1816207463,1766203500,225666412,757935370,757935405,757935405,757935405,757935405,1867778573,1818587936,544498533,543976545,1701603686,168639091,757074445,1869760032,1752440941,1766203493,1830839660,745893477,1869112096,543519599,1701602643,1092645987,539782252,1881174639,1936942450,538970637,1381253920,1280518988,541610817,774450984,168626701,1702131781,1852400750,543236199,1701602643,1869182051,755633518,757935405,757935405,757935405,757935405,757935405,1867778573,1818587936,544498533,1936617315,1953850213,543520361,1701603686,2036473971,1769174304,1629513582,1970236704,221930867,822742282,1816338478,543908713,543516788,1936877926,1768300660,221144428,539898378,1936028240,1851859059,1869095012,1679844460,544110447,1179207763,1629498452,1663067246,1801677164,1701344288,1935764512,1768300660,1763730796,1752440942,537529701,1634869280,778397550,168626701,1867778573,1818587936]},{"sector":10,"data":[544498533,1936617315,1953850213,543520361,1701603686,2036473971,1769174304,1948280686,1797285224,1868724581,979661409,168626701,1344286257,1936942450,1111577632,544175136,1702260589,544175136,543516788,1953720684,543584032,1701603686,168636019,1394617906,1667591269,1752440948,1768300645,544502642,1701603686,856296750,1917853742,544437093,543452769,1684828008,2003788832,1213407342,542393929,543452769,1936028272,1752440947,1347756133,1381122336,1864390479,537529714,1329864736,1092636247,1464816210,2036689696,1869881459,1818587936,544498533,543516788,1768186977,1852795252,1713400929,1936026729,1970239776,1851881248,168636020,1699940877,1952671084,543649385,1668181838,1702063727,1769239907,1176528246,1936026729,757926413,757935405,757935405,757935405,757935405,757935405,757935405,757935405,1409944877,1702043759,1952671084,1852796448,1936617315,1953850213,543520361,1701603686,2036473971,1769174304,1629513582,1970236704,221930867,822742282,1816338478,543908713,543516788,1936877926,1768300660,221144428,539898378,1936028240,1851859059,1869095012,1679844460,544110447,1280463939,1851858988,1752440932,1663069797,1801677164,1667327264,1953439848,544367976,1701603686,538970637,1970239776,1851881248,168636020,1750338061,1681989733,1869422692,1763730788,1851859059,1935762720,1701519481,1634689657,1830839410,1869116517,1869881444,1818587936,544498533,1668181870]},{"sector":11,"data":[1702063727,1769239907,1713399158,1936026729,1850286126,1684291872,1685024032,2032151653,1965061487,1948280179,1629513064,2003792498,2036689696,1869881459,1987013920,1752440933,1735749490,1752440936,1768693861,1864397939,1768300646,745760108,1684955424,1701344288,1919950958,544437093,543516788,1128353875,1380008517,544175136,1701602675,1948284003,1713399144,1936026729,1970239776,1851881248,168636020,1867778573,1702065440,1701344288,1684291872,1685015840,1869881445,1818587936,544498533,544175988,1668181870,1702063727,1769239907,1713399158,1936026729,218762554,539898122,1701602643,1948284003,1713399144,1953722985,1818846752,168636005,1344286258,1936942450,1229476640,1177244742,1869881400,1920300064,1852776558,1684291872,1685024032,168636005,572530720,574899265,1886413088,1936875877,544106784,543516788,1952543859,1646293877,221147745,539898634,543519573,543516788,1869771361,1701519479,1948283769,1869422703,1948280182,1752440943,1702043749,1684959075,1818846752,1870209125,1635197045,168653934,1948262432,1702043759,1952671084,873073966,1917853742,544437093,543516788,1128353875,1380008517,218762542,1409944842,1970544751,1864396402,1092642406,1830839396,979723375,168626701,1344285984,1936942450,1229476640,1177244742,168635960,572530720,577004609,544434464,1814065006,1701277295,1768169586,1634496627,543450489,1948282473,1931502952,1970561396,1633820787,168636018]},{"sector":12,"data":[1631783437,1818583918,543649385,1699946593,1952671084,544108393,1092644457,1293968484,224748655,757935370,757935405,757935405,757935405,757935405,757935405,757935405,757935405,168635693,1663070036,1701015137,543236204,1701602675,1869182051,1852383342,1684291872,1685024032,2036473957,1769174304,1629513582,1970236704,221930867,537529610,1917853741,544437093,543452769,1684828008,2003788832,1413685358,539774034,543452769,1667853411,1752440939,1768300645,221144428,218762506,544166922,1668178275,1629514853,1818587936,1769235301,1763733103,1681989742,1869422692,1646290276,1937055865,543649385,543516788,1652122987,1685217647,218762554,539898122,1092642377,1830839396,543515759,1847620457,1629516911,1634038380,1864399204,1881156718,1936942450,1229476640,1177244742,168635960,572530720,574899265,1886413088,1936875877,544106784,543516788,1952543859,1646293877,221147745,539898378,543519573,543516788,1869771361,1701519479,1948283769,1869422703,1948280182,1752440943,1768300645,221144428,539898634,1936028240,1752440947,1347625061,1111835457,221139521,1376390410,1952541797,1411408997,1667854447,537529715,539107360,1701603654,1936280608,1984897140,1769370213,572553061,2119053694,538970637,1176511008,543517801,1701602643,1869182051,2116165742,942747940,218762622,1818579466,1684370529,1869762592,1969513827,225666418,538976266,1699946530,1952671084,543649385]},{"sector":13,"data":[1701996868,1919906915,544433513,826900002,226374708,538976266,1699946530,1952671084,543649385,1986622020,572552037,875645310,1077968437,168626701,875645217,222306615,1635013386,1852404850,1917853799,1634887535,168653677,1868106253,1633886325,1953701998,544502369,1919950945,1634887535,1919885421,1853190688,1663066400,1634561391,1713398894,544042866,1752459621,1948283493,1881171304,1919381362,1814064481,544502633,1948283503,1713399144,543517801,1953720684,218762542,1869760010,1752440941,1917853797,1634887535,1766596717,168653939,757935405,757935405,757935405,757935405,757935405,1409944877,1953701999,544502369,1919950945,1634887535,1919295597,1948282223,1881171304,1919381362,1814064481,544502633,1965062498,1735289203,1830838560,1702065519,218762554,539828234,1651863364,1663919468,1801677164,1701344288,1869770784,1835102823,1702127904,168636013,168626701,1931505492,1953653108,1881170208,1919381362,1713401185,544042866,543516788,1735357040,544039282,1953720684,544825888,1852404597,1752440935,1701519461,1634689657,221930610,822742282,1884233774,1948282469,1730176360,1886744434,1634235424,1868767348,1767994478,1948283758,1881171304,1919381362,1763732833,778921332,775031309,1818579744,544498533,543516788,1735357040,544039282,1835365481,856296750,1917853742,544437093,1163152965,1919885394,1919295532,1948282223,1176528232,543517801,1970169197,1751326764]},{"sector":14,"data":[1702063983,1701859104,168636014,168626701,1914728276,1629515381,1869770784,1835102823,1869768224,1397563501,1397703725,1836008224,1684955501,1869762592,544501869,1948282473,1293968744,544106849,1970238055,168639088,774965773,1869760032,1752440941,1919950949,1634887535,1768693869,539784307,1869572195,1948280179,1293968744,544106849,1970238055,168636016,1126182450,1936682856,1752440933,1866670181,1851878765,1917853796,1953525103,1869770784,1835102823,1702127904,168636013,1495277600,1948284271,1869639013,1769103730,1814067564,1702256997,760433952,542330692,1818585171,168636012,1411395123,543518841,543516788,1701667182,543584032,543516788,1735357040,544039282,1701603686,544370464,543516788,1835888483,543452769,1701667182,537529644,1818304544,543649391,1752459639,2037276960,1769435936,1701340020,1919885427,1918988320,1952804193,544436837,544567161,1953390967,1852776492,1701344288,538970637,1836016416,1684955501,1852402720,168636005,1344286260,1936942450,1414415648,221139525,1409944842,1701978223,1852994932,544175136,1143821133,1394627407,1819043176,1701345056,1870209134,1634214005,1713399158,1936289385,543450472,1852404597,1752440935,1919950949,1634887535,168639085,774965773,1886999584,1696610917,225732984,539898378,1936028240,1313153139,777143636,168626701,1836020294,1701344288,1818838560,1766596709,168653939,757935405,757935405,757935405,757935405]},{"sector":15,"data":[168635693,1931505492,1953653108,1881170208,1919381362,1713401185,544042866,543516788,1701603686,1936288800,2036473972,1769174304,1629513582,1970236704,221930867,537529610,1866735661,1701601909,1768710957,1948281699,1881171304,1919381362,1713401185,543517801,1629516399,1935745134,1768124275,1684370529,1818846752,168636005,168626701,1931505492,1953653108,1881170208,1919381362,1713401185,544042866,543516788,1701603686,1936288800,2036473972,1769174304,1948280686,1797285224,1868724581,979661409,168626701,1394617905,1667591269,1752440948,1919950949,1634887535,1768300653,1864394092,1851859058,1936941344,1634296687,543450484,1635017060,1818846752,168636005,1344286258,1936942450,1414415648,1864389189,1713384562,544042866,543516788,1701603654,1852140832,1663052917,1936682856,1884233829,221146725,218762506,1769166090,1948280686,1377854824,1126198901,1634561391,168649838,757935405,757935405,757935405,757935405,757935405,1225395501,1752440934,1919950949,1634887535,1870209133,1635197045,1948284014,1970413679,1936269422,1953459744,1936286752,2036427888,539780197,544567161,544104803,543519605,543516788,544109906,1835888483,543452769,1931505524,1953653108,779381024,168626701,1931505492,1953653108,1881170208,1919381362,1646292321,1937055865,543649385,543516788,544109906,1835888483,979660385,168626701,1176514097,544042866,543516788,1701603654,1852140832,1663052917]},{"sector":16,"data":[1936682856,1968316517,168636014,1411391520,1377854824,1679847029,1869373801,1868701799,1885413496,1918985584,168636019,1411395122,543518841,543516788,1752457584,543584032,543516788,1735357040,544039282,1701603686,1818304556,543649391,1752459639,2037276960,538970637,1769435936,1701340020,1919885427,1918988320,1952804193,544436837,544567161,1953390967,1852383276,1701344288,1836008224,1684955501,1868701811,168636024,1495277600,1663071599,1864396385,544105840,1633951841,1713398132,543517801,1948284001,1931502952,543518049,1701669236,1970239776,1635021600,1830843506,225735535,538976266,1735357040,1936548210,544825888,1768978804,1629513582,1634759456,1629513059,1948279918,1679844712,761361505,1701603686,1952542752,1717641320,225600884,538976266,543516788,1735357040,544039282,1701603686,1701667182,856296750,1749229614,1702063983,1701344288,541806368,1953789282,221146735,1376390410,1952541797,1411408997,1667854447,538970637,1210065440,1948284783,1951604847,544502369,1735357008,1936548210,612246048,2117153329,168626701,1634493778,543450484,1668248144,1920296037,168653669,572530720,1936933152,1634296687,1735289204,1818838560,1998615397,543716457,1917853793,1634887535,2116165741,892350793,537529726,539107360,1768186945,1344300910,1919381362,1226861921,1936549236,544175136,1735357008,544039282,1970238023,572552048,808536446,168656434,572530720,1701859104]},{"sector":17,"data":[1735289198,1869762592,1835102823,1869760288,544436341,826900002,226374450,538976266,1884233762,1852403301,1766203495,544433516,826900002,226373939,1175063818,1830842991,543519343,1868983913,1952542066,544108393,1293971055,1329868115,1868767315,1851878765,539784036,543516019,1885431875,544367988,539767857,1836008226,1684955501,539110515,1948282473,1428186472,661808499,1967595635,543515753,543452769,1701209426,1668179314,1077948005,168626701,909199649,222306608,1634028554,1735289206,760433952,542330692,1818585171,218762604,1970231562,1851876128,1634036768,1293968758,1329868115,1750278227,543976549,1886217588,1918988911,544828521,1818847351,1870209125,1870078069,1998613362,543716457,543516788,1143821133,1663062863,1634561391,1881171054,1886220146,1851859060,1701978212,1852994932,544175136,1629516905,1852399975,1701345056,1870209134,1701980021,1852401184,1701344105,168636004,1867778573,1835365408,1634889584,2037148018,1634036768,1293968758,1329868115,1750278227,980184165,168626701,1344285984,1936942450,1229476640,1177244742,168635961,538970637,544362272,168626701,1176513824,544042866,543516788,1852399949,1869768480,539783285,1869572195,1948280179,1126196584,1634561391,1344300142,1886220146,1919950964,1634887535,537529709,1953046560,221146469,218762506,544166922,1970562418,1948282482,1397563503,1397703725,1701335840,1713400940,544042866,543516788]}],[{"sector":1,"data":[1835888483,543452769,1836020336,221934704,822742282,2035556398,540697968,1953069157,775031309,1701990432,1159754611,1380275278,218762542,1818579466,1684370529,1886344224,168649577,572530720,2003781664,544175136,1986094412,1397563493,1397703725,1701335840,572550252,842081406,168656437,1699875341,1702125932,1917853796,1684366191,224752245,538976266,1968250914,1769239657,1293969262,1329868115,1750278227,543976549,826900002,1082013234,218762560,826876170,1075917365,1934952973,543649385,1802723668,1635210016,1852403824,1851859047,1752440932,1665212517,1702259060,1935758368,1766596715,168653939,1750534669,2032168549,1663071599,1936682856,1850024037,1701601889,1935758368,2001936491,1701867617,2032151666,1663071599,1746955873,543520353,1702258035,543973746,1735357040,1936548210,1853190688,1735289198,544497952,543518319,1701669236,1684955424,1769435936,543712116,2004116834,544105829,1835362420,1750540334,1411411557,543912801,1885435731,544367984,1696625513,1818386798,539780197,1751343461,1869770784,1835102823,1970239776,1853190688,544434464,1701078113,1869881444,1701344288,1952661792,543520361,1802723668,1936280608,1869881460,1701344288,1734963744,1864397928,1752440934,1919950949,1634887535,1768693869,539915379,544567129,544104803,1953068915,1713399907,544042866,1143821133,1394627407,1819043176,544175136,544829025,1735357040,544039282,1953720684,1763730533]},{"sector":2,"data":[1752440942,1665212517,1702259060,1935758368,1766596715,539784307,1931506287,1668573559,1700929640,1701148532,1919950958,1634887535,221148013,1409944842,1970544751,1864396402,1635000430,1931504499,1886413175,543649385,543452769,1886611812,544825708,543516788,1769235265,1411409270,543912801,1953720652,218762554,539828234,1836020294,1701344288,1953517344,1936617321,1852140832,1663052917,1936682856,1850024037,1701601889,1935758368,2001936491,1701867617,168636018,1092624416,1918987552,1885413483,1918985584,1701716083,1948284024,1752440943,1868767333,1851878765,1634607204,539911533,543516756,1769235265,220226934,538976266,1802723668,1936280608,1885413492,1918985584,1869881459,1701344288,1734963744,1864397928,1752440934,1919950949,1634887535,1768693869,221148275,1409944842,1701995880,1701994784,1870099488,2036430624,1869881459,1635021600,1881175154,1919381362,544435553,1852139639,1935766560,2004033643,1768976481,1763731310,1852776563,1868111918,1633886325,168639086,538970637,1951604778,544502369,543516788,1735357040,544039282,543452769,1886611812,544825708,221148265,537529610,1394616864,1953653108,1701344288,1869770784,1835102823,1684955424,1635021600,1852383353,760433952,542330692,1818585171,1495281260,168654191,538976288,1751607661,1937055860,1752440933,1763734377,1870209126,1635197045,1684370542,544175136,1918989427,1702043764,1634887030,537529708,1881153568]},{"sector":3,"data":[1919381362,544435553,1293971049,1329868115,1750278227,543976549,1868981602,1965057394,1735289203,1701344288,168636013,1330514445,540689748,544567129,1970235507,1847616620,1914729583,857763445,540030770,1819635045,1919906913,1869770784,1835102823,1769414771,1411410036,543912801,1885435731,779249008,1769166112,1948280686,544040296,1752459639,1935758368,2001936491,1701867617,1634541682,1768169593,1852793715,1952671086,1970239776,1869768224,1870209133,1830842997,1718511969,1701667186,1684955424,1969316640,1679844723,543257697,1646292852,1869357157,221148275,1409944842,1953701999,544502369,1919950945,1634887535,1851859053,1768169572,1634496627,1953046649,218762554,539828234,1918989395,1752440948,1919950949,1634887535,1969889389,1629516915,1870209139,1818304629,1937334647,779052064,538970637,1701336096,1869770784,1835102823,1852405536,544698212,1701867617,779317857,760433952,542330692,1818585171,537529708,1969299488,1634561908,1633905012,544828524,1935959137,544500000,1948282740,1092642152,1986622563,1632903269,1277193075,779383657,168626701,1867778573,1635021600,1629516914,1869770784,1835102823,1684955424,1635021600,1852383353,760433952,542330692,1818585171,168639084,757074445,1819232288,1868832868,1948282487,1394632040,1413892424,2036689696,1684955424,1970234400,761621602,1667853411,1752440939,1919950949,1634887535,537529709,1768300576,1634624876,1864394093]},{"sector":4,"data":[1935745138,1768124275,1684370529,1818846752,168636005,1917782541,168626701,1394617632,1667591269,1752440948,1919950949,1634887535,1634607213,1629513069,1881171054,1936942450,1229476640,1160467526,1380275278,537529646,1397563424,1397703725,1701335840,1629514860,544433252,543516788,1735357040,544039282,1948282740,1092642152,1986622563,1632903269,1277193075,779383657,168626701,1867778573,1769435936,543712116,1629515636,1953046638,1763732837,1752440942,1665212517,1702259060,1935758368,1766596715,221934707,537529610,1866735661,1701601909,1768710957,1763732323,1847620468,778399073,168626701,168653391,757074445,1702057248,1701344288,1920098592,1797289839,544438629,1931505524,1667591269,1953046644,1634607219,539780461,543452769,1852139636,537529632,1919950880,544437093,1163152965,168635986,1411391520,1881171304,1919381362,1998613857,1868852841,1885413495,1918985584,168636019,168626701,1914728276,1920300133,1869881454,760433952,542330692,1818585171,1919295596,1629515119,1869770784,1835102823,218762554,539828234,1936028240,1413685363,1160465490,221135699,1309281546,977622095,2037268768,1869770784,1835102823,1852383347,1701344288,1952661792,543520361,1802723668,1936280608,1970086004,1646294131,1818435685,1684370287,1717920288,543519343,544567161,1953068401,760433952,542330692,1818585171,168636012,1699875341,1702125932,1867784292,1935894896,538970637,1210065440]},{"sector":5,"data":[1948284783,1934958703,1867325541,1948280178,544104808,543518287,1735357008,544039282,824475170,226374194,538976266,1917853730,1634887535,1766596717,1327527027,1987208566,544695657,810122786,226375993,1376390410,1952541797,1344300133,1701015410,1701999972,537529715,539107360,544698184,1428189044,1293968755,543519343,1851877492,1701728032,1869762592,1835102823,612246048,2117218865,538970637,1394614816,1668573559,1735289192,1952793120,1852138871,1869762592,1835102823,2116165747,942944585,537529726,539107360,1918989395,1735289204,1869762592,1835102823,2116165747,926167369,537529726,539107360,1953068369,1735289204,760433952,542330692,1818585171,2116165740,909259081,222314622,554306826,942944585,168640545,1953068883,1852401763,1698832487,1701148532,1917853806,1634887535,168653677,1868106253,1633886325,2004033646,1751348329,1869768224,1397563501,1397703725,1701335840,1948281964,1851859055,1919950969,1634887535,1852383341,1701344288,1952661792,543520361,1802723668,1936280608,1864379508,2004033650,1751348329,1952801312,1852138871,1869770784,1835102823,168636019,1867778573,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,1866735648,1768453152,755633523,538976301,538976288,538976288,538976288,538976288,538976288,538976288,538976288,757080096,757935405,168635693,1953068883,1948280931,1397563503,1397703725,1701335840]},{"sector":6,"data":[1713400940,544042866,538976353,538976288,1936028240,1413685363,1160465490,221135699,1869770762,1835102823,168626701,1953068883,1948280931,543236207,1735357040,544039282,1836020326,538976288,538976288,538976288,1869572163,1763730803,1919295604,1948282223,220226920,760433930,542330692,1818585171,538976364,538976288,538976288,538976288,538976288,538976288,1952661792,543520361,1802723668,1936280608,168636020,2001930765,1751348329,544175136,1953459809,544367976,1735357040,544039282,538976288,538976288,1866997792,1679844460,544110447,543516788,542395457,226059627,544825866,1818458467,543649385,1869768820,543713141,543516788,538976288,538976288,538976288,1768453920,2032166252,1914729839,1634037861,1818518900,1879707001,1919381362,544435553,538976288,538976288,538976288,538976288,538976288,538976288,1881153568,1936942450,1111577632,1953396000,2032168041,1663071599,224750959,538976266,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,544175136,543516788,1735357040,544039282,544567161,1953390967,218762542,1769427722,543712116,2004116834,544105829,544175988,1735357040,1936548210,538976288,538976288,1701990432,1092645747,1412125772,221135425,1393167626,1668573559,1869881448,1701344288,2019913248,1919950964,1634887535,538976365,538976288,1344282656,1936942450,1414283552,1129530667,218762542,1769427722]},{"sector":7,"data":[543712116,1948282740,1881171304,1769366898,544437615,538976288,538976288,538976288,1701990432,1394635635,1413892424,1414283563,1129530667,1879706926,1919381362,221146465,1124732170,1701602169,1919448096,1751610735,1701344288,1869770784,1835102823,538976371,538976288,1210064928,543452271,1853321060,1701344288,1229476640,1797280838,168655205,1801675106,1685217655,538976371,538976288,538976288,538976288,538976288,538976288,538976288,543452769,543516788,542395457,544826731,1818847351,537529701,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,2032148512,1914729839,1634037861,1818518900,1919950969,544437093,222445908,538976266,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,1953396000,2032168041,1663071599,543518063,1948282740,168650088,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,1735357040,544039282,544567161,1953390967,218762542,1702057226,544104736,1819308129,1952539497,544108393,1919903859,1953850228,538976288,538976288,1701990432,1126200179,726422100,1953785196,221016677,2036689674,1970239776,1717920800,1684369001,1868111918,1633886325,1919098990,1702125925,538976288,1414283552,1952803883,745694580,1752435213,543519589,1919903859,1953850228,2036689696,1836016416,1634625890,1852795252,538976371,1919885344,1229476640]},{"sector":8,"data":[1814778950,1702130789,168636018,1948282473,1092642152,1344300132,1919381362,1679846753,1869373801,1868701799,168636024,1699875341,1702125932,1867784292,224618864,538976266,1866997794,1869881463,1702057248,1919896864,1752440933,1327525473,1344300398,1919381362,572550497,842081406,168656434,1699875341,1702125932,1917853796,1684366191,1936028277,538970637,1210065440,1948284783,1934958703,1867325541,1948280178,544104808,543518287,1735357008,544039282,824475170,226374194,538976266,1934958626,543649385,1802723668,1635210016,1852403824,1851859047,1752440932,1665212517,1702259060,1935758368,1766596715,572552307,892422526,168656434,572530720,1635013408,1852404850,1917853799,1634887535,572552045,875645310,168656439,572530720,1769296160,1852404852,1397563495,1397703725,1701335840,572550252,842090878,1077968438,168626701,875645217,222306617,1701402122,1735289207,1818838560,1866670181,1852142702,168653684,1868106253,1633886325,1769349230,1948284773,1663067496,1702129263,544437358,1629513327,1818846752,1852383333,1129529632,673204553,1918986339,1702126433,1864378738,1701322866,1701077368,1634560355,1848123500,1919249781,539583337,1836216166,221148257,1309281546,977622095,1701336096,1701402144,1766203511,1126196588,1702129263,544437358,1835888483,543452769,1847620457,1629516911,1684349038,1852404841,1869881447,221146223,1409944842,1769349231,1948284773,1663067496]},{"sector":9,"data":[1702129263,544437358,1629513327,1818846752,168639077,774965773,1818579744,544498533,543516788,1701603686,1970239776,1851881248,1869881460,1701410336,168636023,1176514098,544042866,543516788,1701603654,1852140832,1663052917,1936682856,1767252069,1176532837,543517801,1953394499,1937010277,537529644,1919885344,1701998624,1176531827,168635961,168626701,1931505492,1819243107,1752440940,1735749490,543236200,1701603686,544825888,1852404597,543236199,1937076077,168639077,757074445,544489760,543516788,544239476,1948280431,1998611816,1868852841,1663052919,1801677164,1701344288,1919907616,572552036,1884645200,1919885346,538970637,1733304864,539127364,1948283503,1629513064,2003792498,168636019,168626701,1931505492,1819243107,1752440940,1735749490,543236200,1701603686,544825888,1852404597,1752440935,1701519461,1634689657,221930610,537529610,1917853741,544437093,543516788,1162297680,743462176,1195462688,1329864773,539774551,1092636757,1464816210,1919885356,1464812576,1379999822,223825746,538976266,1937335659,218762542,1409944842,2004033647,1751348329,1701344288,1919120160,544105829,1886611812,544825708,2004116834,544105829,1229148993,1851859017,1701322852,1701077368,1634560355,168639084,757074445,1869760032,1752440941,1766072421,1634496627,1701650553,539784558,1869572195,1696621939,1701344361,1396777074,541673795,1210085999,539785317,168653423,1881153568]},{"sector":10,"data":[1936942450,775505440,168626701,1867778573,1936286752,2036427888,1701344288,1818846752,1768693861,221934707,537529610,1917198381,1948282223,1444963688,544695657,1970169197,1751326764,1702063983,1936020000,1701998452,1701402144,1864379511,1919950962,544437093,776164165,168640576,1226902029,556807473,1460276544,1768649327,1998612334,543716457,1867325537,224752501,1409944842,1830839656,1702065519,1768910880,1919251566,1936286752,2036427888,1864393829,1870209134,1931506293,1701147235,1869422702,544433526,2032169825,1914729839,543976559,543516788,1937076077,1667309669,1936945010,1970239776,1701060722,539913075,1881173844,1868984933,1629515122,1935766560,2036473963,1769174304,1629513582,1970236704,539780467,544567161,1852403568,1869881460,1634236192,1870209140,1635197045,1629516910,1948279918,544105832,1667853411,1679830123,1818391919,1818439013,745235305,544370464,1734439524,1750343726,543519589,1836213620,1701650547,1948282465,1713399144,1869376623,1735289207,218762554,1919243274,538976365,538976288,538976288,1952661792,225341289,757935370,538976301,538976288,538976288,757935392,221064493,1768902666,538997870,538976288,538976288,1987005728,1752440933,1869422693,543519605,1852403568,544367988,1629515636,1701868320,1768319331,1819287651,224748385,538976266,538976288,538976288,538976288,544108320,1920298873,1919120160,544105829,1931508066,1768188268]},{"sector":11,"data":[1948280686,1830839656,1702065519,218762542,1768702730,538995555,538976288,538976288,1701990432,1629516659,1914725486,1634036837,1948280179,1814062440,544499301,1937076077,1969365093,1852798068,537529646,538976288,538976288,538976288,572530720,1667853379,1763713643,1768714349,1948283749,544498024,544567161,1936877926,1869619316,544501353,1998614388,225730920,538976266,538976288,538976288,538976288,1970239776,1851881248,1851859060,1752440932,1881173605,1936942450,1701344288,1970236704,1646290291,1869902965,168636014,1866729997,1701601909,1768710957,538995555,1968250912,1818977129,1919950969,544437093,543516788,1952867692,1970236704,1646290291,1869902965,2004099182,543515497,168652393,538976288,538976288,538976288,538976288,1667462515,1769173861,539913839,1970226210,761621602,1667853411,1763713643,1768714349,1948283749,544498024,225800057,538976266,538976288,538976288,538976288,1919510048,1881175155,1953393007,544175136,1952540791,1970239776,1851881248,1851859060,1752440932,1881173605,1936942450,538970637,538976288,538976288,538976288,1752440864,1869422693,543519605,1953789282,1948282479,1701013879,1885434400,2037146729,218762542,1634878474,538976359,538976288,538976288,1987005728,1752440933,1869422693,543519605,1852403568,544367988,1948282740,1864394088,1667590754,1870209140,537529717,538976288,538976288,538976288,1998594080,745827937]},{"sector":12,"data":[1701998624,1629516659,1746953326,543452271,1853321060,1701344288,1717922848,1869422708,224752501,538976266,538976288,538976288,538976288,1953849888,544108404,543452769,1684630643,1752440933,1869422693,543519605,1629515636,1752461166,168653413,538976288,538976288,538976288,538976288,1633906540,1852795252,1851858988,1752440932,1914728037,1634036837,1948280179,1830839656,1702065519,1953849888,778989428,538970637,538976288,538976288,538976288,1866866720,2019893362,1819307361,2032151653,1663071599,1830841953,543520367,1768300641,1646290284,1919164537,1768384353,168650606,538976288,538976288,538976288,538976288,544437353,1701603686,1701667182,544175136,1768169569,1919247974,544501349,1701996900,1919906915,1634607225,1076782445,218762560,826876170,555823925,222306632,1769166090,1210083182,225471589,1443499274,1769432425,1210083182,544238693,1768976212,168653667,757935405,757935405,757935405,757935405,221064493,1970231562,1851876128,1702065440,1701344288,1819239968,1769434988,1948280686,1668489327,1819045746,1919905056,1699225701,1763733612,1919903342,1769234797,1763733103,544175214,2003134838,218762554,538976266,1411394080,1344300392,541411137,1629507669,1344300142,541411137,1314344772,2036689696,218762611,538976266,1411394080,1629513064,2003792498,2036689696,218762611,538976266,1411394080,1931502952,1819243107,1633820780,1869881458,1701344288]},{"sector":13,"data":[1734963744,1864397928,1752440934,1768169573,1735355489,2020565536,168626701,1886152008,1936286752,2036427888,1701978227,1702125932,1869881444,1935894896,544106784,1768169569,1919247974,544501349,1869377379,168636018,1867778573,1701410336,543236215,1634493810,543450484,1768976244,168639075,757074445,1701990432,1411412851,1948271169,1702043759,1952671084,1701344288,1886352416,2032165737,1998615919,745827937,1684955424,1701344288,1919950958,225669989,538976266,1163152965,1495281234,1663071599,1629515361,544174956,1667853411,1752440939,1869881445,543385968,1701667182,218762542,1409944842,1869422703,1948280182,1752440943,1919950949,1869182565,1948283765,1667854447,218762554,539828234,1936028240,1213407347,726943305,776094036,168626701,1867778573,1869374240,1629513075,1818576928,1769414768,2003788910,218762554,539828234,1936028240,1397039219,1864379459,1919950962,544437093,541213012,1931505524,1667591269,1752440948,1263476837,1953849888,544108404,224685665,538976266,1852139636,1701998624,1159754611,1380275278,1868111918,1633886325,1818304622,1663070067,1801677164,1701344288,541806368,1953789282,221146735,1191841034,1769239653,1226860398,1635021678,1210086510,225471589,757935370,757935405,757935405,757935405,757935405,1409944877,1701257327,1852383348,1851880563,1699225716,1864396908,543236206,1970169197,1868767276,1851878765,1679830116,1869373801,1868701799]},{"sector":14,"data":[1862929784,1869182064,1864379502,1851859058,1701994784,1718558817,1701344288,760433952,542330692,1818585171,1769414764,2003788910,218762554,539828234,1818579744,544498533,543516788,1835365481,1684955424,1701998624,1176531827,168635953,168626701,1730178900,1763734629,1635021678,1210086510,544238693,1629515375,1634296864,543649644,544763746,1629516399,1936026912,1701273971,1768163853,1634496627,543450489,2032168559,544372079,1701995379,221933157,537529610,1917853741,544437093,541213012,1931505524,1667591269,1752440948,1699225701,1646293100,1869902965,1629498478,1948279918,544105832,1936028272,826679411,538970637,544370464,1163152965,1495281234,1663071599,1629515361,544174956,1667853411,1752440939,1699225701,1646293100,1869902965,168636014,1934952973,543649385,543516788,1886152008,1684949280,168654949,757935405,757935405,757935405,757935405,757935405,1867778573,1701410336,1851859063,1684957472,1864398949,1699225702,1948282988,1667854447,168639091,757074445,1869760032,1752440941,1699225701,1830842476,745893477,1869112096,543519599,1701080649,168636024,168626701,1981837140,544695657,543516788,1886152008,1684957472,1713404005,544042866,1699225697,1998614636,1868852841,168639095,757074445,1701990432,1411412851,1948271169,1702043759,1952671084,1701344288,1684949280,1646295141,1869902965,1851859054,1752440932,1881173605,1936942450,538970637,1414415648]},{"sector":15,"data":[539906629,544567129,544104803,1869835361,1768710944,1948281699,1226859880,2019910766,1953849888,778989428,168626701,1867778573,1987013920,1869881445,1701344288,1701998624,1970235766,1699225715,1646293100,1869902965,168639086,1344285984,1936942450,1229476640,1412125766,221135425,218762506,1919896842,1852776549,1818576928,755633520,757935405,757935405,221064493,1919895050,1919905056,1852383333,1836216166,1869182049,1650532462,544503151,1143821133,1394627407,1819043176,1818576928,1663052912,1936682856,1752440933,1934958693,543649385,1886152008,1836016416,1684955501,1869768224,1752440941,1699225701,1830842476,779447909,168640576,1260456461,168640545,1652122955,1685217647,1818576928,218762608,544166922,543516019,1869881441,979593584,168626701,1142959392,1818391919,1818439013,543908713,543516788,1768976244,168636003,1917782541,168626701,1344285984,1936942450,1111577632,544175136,1701602675,1948284003,1948280168,1667854447,1970239776,1851881248,1629498484,1948279918,544105832,1936028272,1313153139,777143636,168626701,572530720,1852131104,1818325605,760433952,542330692,1818585171,1699422316,572552057,808536958,168656433,572530720,1987005728,1852140901,1699422324,572552057,808536958,168656434,572530720,1818576928,1699422320,572552057,808536958,168656441,572530720,1952661792,543520361,1802723668,1936280608,1699422324,572552057,808536958,168656435]},{"sector":16,"data":[572530720,1869762592,1835102823,1936280608,1699422324,572552057,808536958,168656436,572530720,1818838560,1766596709,1260418163,544438629,827031074,226374960,538976266,1766203426,1394632044,1667591269,1852795252,2036681504,2116165747,909128011,537529726,539107360,1701996868,1919906915,1918115961,1260414309,544438629,827031074,226375472,538976266,1917067298,543520361,1701602643,1869182051,1699422318,572552057,808536958,1077968440,168626701,808536865,222306609,1852131082,1818325605,760433952,542330692,1818585171,1699422316,168653689,1934952973,1752440933,1868963941,2003790956,543649385,1937335659,1701345056,1870078062,1852402546,1769414759,1293969524,1329868115,1750278227,980184165,168626701,1936028240,1752440947,1797288809,538999141,1867784224,757926413,757935405,757935405,757935405,538976288,168635693,1163152965,538976338,538976288,538976288,1631789088,544830066,544503151,1868767329,1851878765,1919885412,1701867296,1769234802,221146735,1158286602,538985299,538976288,538976288,538976288,1851867936,543974755,543516788,1920103779,544501349,1835888483,543452769,168653423,538976288,538976288,538976288,538976288,1886330912,1952543333,778989417,168626701,538980678,538976288,538976288,538976288,1766072352,1634496627,1699225721,1763733612,1919903342,1769234797,1864396399,1752440942,537529701,538976288,538976288,538976288,538976288]},{"sector":17,"data":[1818587936,1702126437,1918967908,539779429,1835888483,744779361,544370464,1818323300,168650607,538976288,538976288,538976288,538976288,1868701728,1886331000,1852795252,218762542,540231178,538997359,538976288,538976288,1361059872,544500085,1143821133,1394627407,1819043176,1684955424,544171808,1948282740,168650088,726944833,538981446,538976288,538976288,1397563424,1397703725,1836016416,1684955501,1869770784,779382893,168626701,1179207763,893791060,538976288,538976288,1699880992,2002874980,1701344288,1919120160,778986853,1970357536,1818326633,544501349,1948282740,168650088,538976288,538976288,538976288,538976288,1699880992,1852399984,1666392180,1852138866,1836016416,1684955501,1950949422,1701798944,1869488243,537529716,538976288,538976288,538976288,538976288,1685091616,543519841,543516788,1953720684,543584032,1701603686,168636019,1213401613,726943305,538982726,538976288,538976288,1702256979,760433952,542330692,1818585171,1852383340,1835363616,544830063,543452769,1948282727,537529711,538976288,538976288,538976288,538976288,1701344288,760433952,542330692,1835888483,543452769,1836020336,1076786288,218762560,827007242,1075917360,1867319821,1701668214,1260418158,225671525,1426722058,1948280179,1713399144,1869376623,1735289207,2036689696,1869881459,1987013920,1918967909,1684960623,1701344288,760433952,542330692,1818585171,1769414764]}],[{"sector":1,"data":[2003788910,218762554,1701990410,1948283763,544434536,544826731,1867784224,757926413,757935405,757935405,757935405,757080096,1175063853,538980401,538976288,538976288,538976288,1701602643,1948284003,1830839656,544566885,544366946,1948284001,1948280168,1864396911,1862929766,1279336562,538976340,538976288,538976288,543516788,1684957559,221149039,1409944842,538985025,538976288,538976288,538976288,1702260557,544175136,543516788,1954047342,1701994784,1718558817,1701344288,760433952,542330692,1818585171,537529708,538976288,538976288,538976288,538976288,1684957559,1864398703,1768169586,1735355489,2020565536,218762542,1229476618,1412125766,538985025,538976288,1867325472,1948280182,1752440943,1919950949,1869182565,1629516661,543253874,1948280431,1293968744,1329868115,537529683,538976288,538976288,538976288,538976288,1818585171,1769414764,2003788910,544370464,1818323300,1646290799,221149295,1208618250,541412687,538976288,538976288,538976288,1702260557,544175136,543516788,1768383842,1852403310,1718558823,1814061344,543518313,168653423,538976288,538976288,538976288,538976288,1814061344,779383657,168626701,541347397,538976288,538976288,538976288,1987005728,1869881445,1701344288,1684956448,543584032,1768693857,1864394094,543236210,1953720684,218762542,1381253898,1330129740,538985805,538976288,1867325472,1948280182,1752440943,1700929637]},{"sector":2,"data":[1852729703,543649385,1629513327,1936288800,168636020,1413679629,1160465490,538985550,538976288,1293951008,543520367,1948282740,1696621928,1864393838,543236198,1953720684,218762542,1195462666,1347756101,538976288,538976288,1666392096,1819045746,544175136,543516788,1986359920,1937076073,1852405536,544698212,168650351,538976288,538976288,538976288,538976288,1718511904,1634562671,1852795252,218762542,1195462666,1329864773,538988119,538976288,1666392096,1819045746,544175136,543516788,1954047342,1852405536,544698212,168650351,538976288,538976288,538976288,538976288,1718511904,1634562671,1852795252,218762542,542135562,1330795073,1919885399,538976288,1666392096,1819045746,544240928,543452769,1853321060,544106784,1768693857,221017203,1464812554,1379999822,542592850,538976288,1768693792,1646290286,1768693881,221144430,1275727114,1702130789,1701519474,538976377,538976288,1702260557,544175136,543516788,1954047342,1702127904,1852383341,1814061344,225735529,538976266,538976288,538976288,538976288,1752440864,1646294113,1852401509,1769414771,1948280948,544498024,1953785196,1076785765,218762560,827007242,1075917616,1665206797,1702259060,1935758368,1766596715,1260418163,225671525,1493830922,1830843759,544502645,1852994932,544108320,1802723700,1635218208,1852403824,1700929639,1701998438,1970239776,1851876128,1702065440,1701344288,1819239968,1769434988]},{"sector":3,"data":[1797285742,980646245,168626701,1936028240,1752440947,1797288809,538999141,538976288,1867784224,757926413,757935405,757935405,757935405,538976288,538976288,168635693,1179207763,1313155924,542262612,538976288,538976288,1951604768,544502369,1919950945,1634887535,1851859053,1684086884,1953046628,544175136,224749684,538976266,538976288,538976288,538976288,538976288,1092624416,1986622563,1632903269,1277193075,544502633,1752459639,544503151,1986094444,224882281,538976266,538976288,538976288,538976288,538976288,1293951008,1329868115,1750278227,778857573,168626701,1280463939,1129530667,538976288,538976288,538976288,1866932256,544175136,1143821133,1394627407,1819043176,1869768224,543236205,1735357040,778920306,168626701,1684827976,2003788832,1752440942,1279336549,538976340,1866932256,544175136,1953459809,544367976,1735357040,544039282,1663072610,1768711033,168650606,544826731,543452769,1701864818,1684370529,538999148,1752440864,1735749490,1752440936,1919950949,1634887535,221148013,1701998602,1411412851,1965048385,1818850414,1970239776,1868761613,1948280173,1752440943,1919950949,1634887535,2030701933,1998615919,779382369,168626701,726944833,541213012,538976288,538976288,538976288,2001936416,1751348329,1952801312,1852138871,1870099488,1869770784,1835102823,168636019,1279330829,1397042004,538976323,538976288,538976288,538976288,1948282695]},{"sector":4,"data":[1752440943,1701716069,1881175160,1919381362,221146465,1393167626,1413892424,1414283563,1129530667,538976288,538976288,544163616,1948282740,1881171304,1769366898,544437615,1735357040,778920306,168626701,1684827976,2003788832,538976366,538976288,538976288,2034442272,543517795,1801675106,1685217655,1752440947,1735749490,1752440936,1919950949,1634887535,221148013,1229476618,1093358662,1412125772,168641089,1413679629,1814776914,1702130789,538979442,538976288,538976288,1953068883,1948280931,543236207,1735357040,778920306,1970231584,1851876128,1701995296,224752737,1414283530,1952803883,745694580,538976288,538976288,1948262432,1702061416,1886413088,1633905004,1852795252,1869116192,1969452146,1701519476,1393167737,1413892424,1952803883,745694580,538976288,538976288,1836016416,1634625890,1852795252,1852383347,1701344288,1684291872,1869762592,1835102823,1279330829,1413688148,1814776914,1702130789,538979442,538976288,1818323300,1646290799,221149295,1229476618,1126913094,726422100,1953785196,221016677,544370442,1179207763,1279339348,1701587796,1919251572,168640576,1260456461,557068337,1342836032,1919381362,1277193569,544502633,1937335627,168626701,543519573,543516788,1819045734,1852405615,1701519463,1998615417,544105832,1802661751,543649385,1948282473,1881171304,1919381362,1814064481,980710249,168626701,1936028240,1752440947,1797288809,538999141,538976288]},{"sector":5,"data":[538976288,168652628,757935405,757935405,757935405,538979629,538976288,538976288,168635693,538980934,538976288,538976288,538976288,538976288,538976288,2037411651,1869770784,1835102823,1852383347,1701344288,1869770784,1835102823,1936288800,537529716,538976288,538976288,538976288,538976288,538976288,1646272544,1937055865,543649385,543516788,2037411651,1836016416,1684955501,218762542,1279607818,538976288,538976288,538976288,538976288,538976288,1818575904,543519845,543516788,1701602675,1684370531,1869770784,1835102823,1702127904,1919885421,538970637,538976288,538976288,538976288,538976288,538976288,1919361056,779122031,168626701,1716062733,1935766560,2004033643,1768976481,1763731310,1852776563,1870209068,1633886325,1937055854,1752440933,1868963941,2003790956,543649385,1937335659,218762554,1701990410,1948283763,544434536,544826731,538976288,538976288,225399840,757935370,757935405,757935405,539831597,538976288,538976288,221064480,1229476618,1160467526,1380275278,538976288,538976288,538976288,1684291872,1701344288,1818587936,1702126437,1919950948,1634887535,1953046637,1948282213,1752440943,537529701,538976288,538976288,538976288,538976288,538976288,1092624416,1986622563,1632903269,1277193075,544502633,1752459639,544503151,1953068915,1852401763,537529703,538976288,538976288,538976288,538976288,538976288,1948262432,1752440943]},{"sector":6,"data":[1919950949,1634887535,168636013,1213401613,726943305,1280463939,1414415659,538989125,538976288,1681989664,1752440932,1702043749,1952671084,1881171045,1919381362,1763732833,544040308,1948282740,168650088,538976288,538976288,538976288,538976288,538976288,538976288,1769235265,1411409270,543912801,1953720652,1953068832,1953853288,1769435936,1768448884,168650606,538976288,538976288,538976288,538976288,538976288,538976288,1948282740,1881171304,1919381362,539913569,1852139607,1970239776,1769435936,543712116,168652660,538976288,538976288,538976288,538976288,538976288,538976288,539784297,543516788,1735357040,544039282,1869903201,1769234797,1819042147,1886331001,225668709,538976266,538976288,538976288,538976288,538976288,538976288,1701344288,1818846752,1886593125,1718182757,543450473,1948282473,1344300392,1701867378,1701409906,537529715,538976288,538976288,538976288,538976288,538976288,1679826976,1869373801,1868701799,1077948024,168626701,808536865,222306613,1818838538,1766596709,1260418163,225671525,1426722058,1948280179,1713399144,1869376623,1735289207,2036689696,1752637555,1998614117,1768649327,1763731310,1752440942,1768300645,1814062444,980710249,168626701,1936028240,1752440947,1797288809,538999141,538976288,168652628,757935405,757935405,757935405,538979629,538976288,168635693,538981702,538976288,538976288,538976288,538976288]},{"sector":7,"data":[1633972309,1948280180,1142973800,1667592809,2037542772,1701991456,1851859045,1768300644,168650092,538976288,538976288,538976288,538976288,538976288,1953720684,893788206,544434464,1769304421,1701601654,1948284014,1752440943,1699881061,1936028262,537529704,538976288,538976288,538976288,538976288,1663049760,1634561391,1864393838,1752440942,1767252069,1830844261,779447909,168626701,1280463939,540362283,538976288,538976288,538976288,1633972309,1948280180,1713399144,543517801,1953720684,1919903264,1701344288,1920295712,1953391986,538970637,538976288,538976288,538976288,538976288,1768169504,1952671090,779711087,168626701,538982214,538976288,538976288,538976288,538976288,1702260557,1701344288,1818587936,1702126437,1768300644,1864394092,1768300658,544433516,1836020326,538970637,538976288,538976288,538976288,538976288,1852776480,1768169573,1952671090,544830063,1629515636,1752461166,539914853,1763718982,537529715,538976288,538976288,538976288,538976288,1696604192,1986622833,1852140641,1869881460,1701344288,1987005728,1868767333,1851878765,168636004,944114189,538976288,538976288,538976288,538976288,1866670112,1948285296,1931502952,1667591269,543450484,1701603686,544370464,1701603686,537529715,538976288,538976288,538976288,538976288,1713381408,544042866,543518319,1701996900,1919906915,1869881465,1869504800,1919248500,944119854,225667360]},{"sector":8,"data":[538976266,538976288,538976288,538976288,538976288,1970365728,1818326633,544501349,1948282740,1126196584,544829551,1835888483,778333793,168626701,538982726,538976288,538976288,538976288,538976288,1886611780,544825708,543516788,1953394531,1937010277,543584032,1768300641,539911532,168638790,538976288,538976288,538976288,538976288,538976288,1696625513,1986622833,1852140641,1869881460,1701344288,1701402144,1766203511,1126196588,1702129263,544437358,538970637,538976288,538976288,538976288,538976288,1868767264,1851878765,168636004,1162086925,538976332,538976288,538976288,538976288,1698963488,1702126956,1701344288,1818587936,1702126437,1768300644,1864394092,1768300658,779314540,168626701,1750534669,1981836901,1769432425,1948280686,168650088,1953394531,1937010277,543584032,1768300641,539780460,1879706912,1936942450,1768453152,1701519475,538976377,1411391520,755633519,757935405,757935405,757935405,539831597,757080096,1175063853,538976313,538976288,538976288,538976288,1394614304,1668573559,1700929640,1701148532,1396777070,541673795,543452769,1635280232,1768121700,225206637,538976266,538976288,538976288,538976288,538976288,1936286752,2036427888,218762542,1225395466,1635000422,1931504499,1886413175,543649385,1864397673,2032151662,1663071599,1965059681,1948280179,1713399144,1869376623,1735289207,2036689696,168639091,1917848077,544437093]},{"sector":9,"data":[1936287860,2036689696,538976288,1867784224,757926413,757935405,757935405,757935405,538976288,757932064,1213401613,726943305,1163152965,538976338,538976288,1681989664,1752440932,1919950949,1634887535,1869881453,1701344288,1952661792,543520361,1802723668,538970637,538976288,538976288,538976288,538976288,1766596640,1998615667,1869116521,1931506805,1668573559,1735289192,544175136,224749684,538976266,538976288,538976288,538976288,538976288,1869770784,1835102823,222314542,554306826,909128011,168640545,1701603654,1818579744,1769235301,1260416623,225671525,1426722058,1948280179,1713399144,1869376623,1735289207,2036689696,1869881459,1818587936,544498533,1835365481,1852383347,1701344288,1818846752,1768693861,221934707,1342835978,1936942450,1768453152,1701519475,538976377,1867784224,757926413,757935405,757935405,757935405,538976288,221064480,1229476618,1177244742,538976312,538976288,538976288,1852994900,1684291872,1685024032,1852776549,544370464,778462831,1970231584,1851876128,1920300064,537529710,538976288,538976288,538976288,538976288,1681989664,1869422692,1864394084,1869881454,1818587936,544498533,1668181870,1702063727,1769239907,168650102,538976288,538976288,538976288,538976288,1763713056,1936549236,1869768224,1752440941,1768300645,1814062444,779383657,1701336864,1681989742,1869422692,168650084,538976288,538976288,538976288,538976288]},{"sector":10,"data":[1763713056,1852776563,1752440876,1870078053,572548210,574899265,544434464,1886611812,1702453612,1852383332,1701344288,538970637,538976288,538976288,538976288,538976288,2003790880,1915581029,1952999273,1919902496,544367982,1948280431,1293968744,1329868115,1750278227,543976549,538970637,538976288,538976288,538976288,538976288,1852405536,779579236,168626701,1179207763,1347758932,1381122336,538990415,1092624416,1948279908,1881171304,1769366898,544437615,1701603686,544106784,543516788,1701603686,538970637,538976288,538976288,538976288,538976288,1936288800,1869881460,1701344288,1818587936,1769235301,221146735,1393167626,1413892424,1464812587,1379999822,542592850,1681989664,1752440932,1701716069,1713403000,543517801,1948282473,1713399144,543517801,1953720684,225408032,538976266,538976288,538976288,538976288,538976288,543516788,1701602675,1869182051,168636014,1213401613,726943305,1162297680,542135584,538976288,1684291872,1818846752,1763734373,1752440942,1919950949,1869182565,1998615413,1868852841,225650551,538976266,538976288,538976288,538976288,538976288,1701603686,1936288800,1869881460,1701344288,1818587936,1769235301,221146735,1393167626,1413892424,1195462699,1329864773,538988119,1681989664,1768300644,544433516,1948282473,1847616872,544503909,1684957559,1931966319,1818846752,537529701,538976288,538976288,538976288,538976288,1768693792]},{"sector":11,"data":[1948284019,1752440943,1702043749,1952671084,778989417,168626701,1280463939,538980139,538976288,538976288,1394614304,1667591269,1818304628,1768300652,544433516,1948282473,1814062440,779383657,168626701,1280463939,538991659,538976288,538976288,1126178848,1701015137,1752440940,1768300645,1931502956,1667591269,1852795252,544106784,224749684,538976266,538976288,538976288,538976288,538976288,1953720684,218762542,544098570,543450177,1701080941,1879706924,1936942450,1768453152,1701519475,538976377,1867784224,757926413,757935405,757935405,757935405,538976288,221064480,1229476618,1395348550,1162035536,542261570,538976288,1701602643,1948284003,1730176360,1886744434,543584032,1701603686,1700929651,1701148532,1752440942,537529701,538976288,538976288,538976288,538976288,1919950880,1869182565,2037150581,1818587936,1702126437,1768300644,1629513068,1948279918,1663067496,1869836917,168636018,1347619341,1111835457,538989121,538976288,538976288,1684291872,1701344288,1818846752,1952522341,1701344288,1920295712,544370547,1633906540,1852795252,225408032,538976266,538976288,538976288,538976288,538976288,543516788,1701602675,1869182051,1077948014,168626701,808536865,222306615,1919501322,1869898597,1411414386,543516018,1937335627,168626701,543519573,543516788,1819045734,1852405615,1701519463,1998615417,544105832,1802661751,543649385,1948282473,1142973800]},{"sector":12,"data":[1667592809,2037542772,1701991456,168639077,1917848077,544437093,1936287860,2036689696,538976288,225399840,757935370,757935405,757935405,539831597,538976288,168635693,1092636757,1464816210,544370464,538976288,1293951008,543520367,543516788,1936880995,1965060719,1919885424,2003788832,1869881454,1701344288,1329859085,1092636247,1464816210,538976288,538976288,2019913248,1768169588,1952671090,779711087,168626701,1280463939,1414742315,1397314117,707272779,1142956073,1819308905,1629518177,1679846508,1667592809,1769107316,1763734373,1752440942,1920213093,221144421,1292504330,1398099529,690825248,538976288,538976288,1766334496,1948280164,1931502952,1768186485,1952671090,1701409391,1852383347,1701344288,538970637,538976288,538976288,538976288,538976288,1818587936,1702126437,1768169572,1952671090,779711087,168626701,1398099024,690694176,538976288,538976288,1142956064,1819308905,1864399201,1814062446,1818588773,543584032,1684174195,1667592809,1769107316,168653669,538976288,538976288,538976288,538976288,1763713056,1752440942,1702043749,1952671084,1679844453,1667592809,2037542772,218762542,1414742282,1397314117,707272779,538976297,538976288,1886611780,544825708,543976545,1684174195,1667592809,1769107316,1763734373,1752440942,537529701,538976288,538976288,538976288,538976288,1702043680,1952671084,1679844453,1667592809,2037542772,222314542,554306826]},{"sector":13,"data":[942682443,168640545,1986622020,1699946597,1952671084,544108393,1937335627,168626701,543519573,543516788,1819045734,1852405615,1701519463,1948283769,1702043759,1952671084,1679843616,1702259058,544106784,543516788,1701603686,1936288800,168639092,1917848077,544437093,1936287860,2036689696,1411391520,755633519,757935405,757935405,757935405,538976301,168635693,1128353875,1380008517,538976288,538976288,1936278560,2036427888,1701344288,1919509536,1869898597,1936025970,544108320,224749684,538976266,538976288,538976288,538976288,1702043680,1952671084,1679844453,1702259058,218762542,1381253898,1919167308,543520361,538976288,1867325472,1948280182,1663067496,1869836917,1869881458,1701344288,1769104416,221013366,1952803850,544367988,538976288,538976288,1701978144,1948279905,1679844712,1702259058,1851858988,1768169572,1634496627,1953046649,537529715,538976288,538976288,538976288,538976288,1701996900,1919906915,779314537,1768444960,1752375411,1668575855,1797289077,1763735909,537529715,538976288,538976288,538976288,538976288,1769304421,1701601654,1948284014,1702043759,1952671084,543649385,543516788,1986622052,537529701,538976288,538976288,538976288,538976288,1953785196,1629516389,1881171054,1936942450,543649385,543516788,1128353875,1380008517,218762542,1414415626,538989125,538976288,538976288,1699880992,1948279905,1663067496,1701999221,2037150830]},{"sector":14,"data":[1818587936,1702126437,1919164516,224753257,538976266,538976288,538976288,538976288,1851858976,1768169572,1634496627,1953046649,1868767347,1852142702,221148020,1175063818,538976309,538976288,538976288,538976288,1633972309,1948280180,1142973800,1667592809,2037542772,1701991456,1851859045,1768300644,168650092,538976288,538976288,538976288,538976288,1936288800,1176514164,1936269365,1970365728,1818326633,544501349,1948282740,1377854824,1701996133,168650867,538976288,538976288,538976288,538976288,1836016416,1684955501,544108320,543516788,2003134806,1852140832,168636021,1413679629,1177242706,538976309,538976288,1428168736,1952539760,1752440933,1768300645,1814062444,544502633,544370534,543516788,1920103779,225734245,538976266,538976288,538976288,538976288,1768169504,1952671090,779711087,168640576,1260456461,557396017,1208618304,544238693,1937335627,168626701,543519573,543516788,1819045734,1852405615,1701519463,1998615417,544105832,2003134838,543649385,1886152008,2019914784,168639092,1917848077,544437093,1936287860,2036689696,1411391520,755633519,757935405,757935405,757935405,538976301,168635693,1163152965,538976338,538976288,538976288,1918976800,1864399218,1629516917,1836016416,1684955501,544370464,1919250543,1869182049,1919885422,538970637,538976288,538976288,538976288,1679826976,1819308905,1948285281,1931502952,1667591269,543450484]},{"sector":15,"data":[1768976244,168636003,1397033485,538976323,538976288,538976288,1126178848,1702063980,1701344288,1920295712,1953391986,1818576928,1769414768,2003788910,218762542,540100106,538976288,538976288,538976288,1766072352,1634496627,1852383353,1836216166,1869182049,1852776558,2003789856,544175136,543519605,1886152008,218762542,1111577610,538976288,538976288,538976288,1867325472,1948280182,1752440943,1701716069,1210086520,544238693,1953789282,540765807,1752459639,1629515369,538970637,538976288,538976288,538976288,1948262432,1667854447,1869422636,1948280182,1752440943,1701716069,1948284024,1667854447,1953068064,221144428,1393167626,1413892424,1111577643,538976288,538976288,1702260557,544175136,543516788,1986359920,1937076073,1818576928,1969365104,1852798068,225603360,538976266,538976288,538976288,538976288,1919950880,1869182565,1914729333,1952541797,1948279909,1667854447,1953068064,221144428,1342835978,541411137,538988629,538976288,538976288,1869767507,1948281964,1752440943,1919950949,1869182565,1998615413,1868852841,1718558839,538970637,538976288,538976288,538976288,1763713056,1919903342,1769234797,221146735,1342835978,541411137,1314344772,538976288,538976288,1869767507,1948281964,1752440943,1701716069,1998615672,1868852841,1718558839,538970637,538976288,538976288,538976288,1763713056,1919903342,1769234797,221146735,1426722058,1379999824,542592850]},{"sector":16,"data":[538997359,538976288,1869767507,1965059180,1851859056,1868832868,1763733111,543236206,1953720684,1141509420,542005071,1330795073,538976343,538976288,1701734764,544825888,1701734764,222314542,554306826,222306626,760433930,542330692,1818585171,1631723628,1935894899,168626701,1143821133,1394627407,1819043176,1935753760,544433001,1819310181,1936615777,1701344288,1935761952,544433001,1965057647,1735289203,760433952,542330692,1818585171,1629498476,1634887456,1667852400,1696623713,1919514222,1701670511,1948284014,544498024,1886152040,1870209139,1919885429,1768841575,1629513082,1998611566,543912559,1752459639,1818846752,1629516645,1679844462,1667592809,1769107316,221148005,1409944842,544434536,1886152008,1718511904,1634562671,1852795252,1936941344,1936026997,1970239776,1701994784,1835099680,1634298985,1769414770,1646291060,1667855201,760433952,542330692,1668181859,1937010789,1668641568,1935745128,1818846752,539784037,1701996900,1919906915,745760105,1684955424,1952542752,539915112,2032166473,1629517167,1847616882,1948284773,1397563503,1397703725,1768300588,544502642,543516019,1953653072,539767072,760433954,542330692,1684960582,1852140897,1936482676,1763713580,1752440942,1934958693,1931965029,1769293600,1629513060,1377854574,1919247973,1701015141,218762542,544166922,543516019,1869881441,979593584,168626701,1142959392,1818391919,1818439013,543908713,543516788]},{"sector":17,"data":[1768976244,168636003,1917782541,168626701,1344285984,1936942450,1111577632,544175136,1701602675,1948284003,1948280168,1667854447,1851858988,1752440932,1881173605,1936942450,1414415648,221139525,1409944842,1713399144,1869376623,1735289207,1886352416,544433001,544499047,544567161,1918989427,543450484,1852404597,1397563495,1397703725,1701335840,221932652,537529610,539107360,1668048215,543518063,1293971316,1329868115,1750278227,543976549,824475170,226373680,538976266,1699553314,544437614,543452769,1835888451,1935961697,612246048,2117283889,538970637,1142956576,1869373801,1866604647,544433528,824475170,226374960,538976266,1766203426,1277191532,544502633,543452769,1735357008,544039282,1953720652,612246048,2117349681,538970637,1176511008,543517801,1953720652,1702252320,1701410418,2116165751,226381361,538976266,1917853730,1634887535,1766596717,1327527027,1987208566,544695657,810122786,226375993,538976266,1866997794,1869881463,1634028576,1293968758,1329868115,1750278227,543976549,824475170,226374962,1409944842,1702043759,1953701989,1647145061,1953705337,1763733605,1920234350,1769235317,544435823,544370534,544698216,1663070068,1819307375,543519845,1635000417,1679846259,1919120229,1684365929,544106784,1869881441,744712560,1869112096,543519599,543516788,1634493810,543450484,1668248176,1920296037,1952522341,1701344288,1953456672,544042868,1948280431]}],[{"sector":1,"data":[1948280168,1667854447,222314542,554306826,808464676,168640545,1668048215,543518063,1293971316,1329868115,1750278227,225209445,1292504330,1329868115,1750278227,543976549,1886152040,1870209139,1702043765,1752440933,1919885413,1768841575,1769234810,1864396399,1870209126,1713402485,1936026729,1684955424,1869770784,1835102823,1952522355,1730175264,1668178284,168636005,538970637,1917788202,1768841575,1176528250,1936026729,1634879264,1667852400,2037148769,538970637,1868111904,1633886325,1634017390,2037148019,1701147424,1701345056,2032166258,544372079,1701603686,1918967923,1869357157,1702125923,1851859044,537529700,1931485216,1763730789,1919903342,1769234797,1629515375,1953853282,1701344288,168636013,538970637,1917788202,1768841575,1344300410,1919381362,544435553,1885434439,1633905000,226061420,538976266,1970231584,1851876128,1735552800,2053729889,1919950949,1634887535,1763734381,544175214,1970238055,1948283760,544498024,1701536109,1701344288,538970637,1919950880,1634887535,1696625517,1701409633,1869881458,1852401184,1851859044,1937055844,168636005,538970637,1867980842,1998613362,543716457,1701603654,1851859059,1917853796,1634887535,1193309037,1752195442,1818321769,168655212,538976288,1953721929,543449445,1948280431,1852403833,1868767335,1851878765,1629516644,1881171054,1835102817,1919251557,1952522355,1701344288,1836016416,1684955501,538970637,1919950880,1953525103]},{"sector":2,"data":[1870209068,1633886325,1751326830,1702063983,1836016416,1684955501,1919295603,1830841711,1937075813,1684955424,1701868320,2036754787,538970637,1886330912,1852795252,1852383347,1634296864,543649644,1702391650,168636019,168626701,1852139607,1970239776,1919510048,1931506803,1953653108,760433952,542330692,1818585171,2032151660,1931507055,1629513061,1852405536,544698212,1752459639,1814061344,544502633,1948280431,1713399144,1936026729,544108320,543516788,1920103779,544501349,1986622052,1851859045,543236196,1953720684,543584032,1735357040,1936548210,1635148064,1650551913,1948280172,1870209135,1176514165,1830842991,543519343,1868983913,1952542066,544108393,1970233953,1752440948,543519589,1953720684,1931488371,572548453,1701603654,1936280608,1851859060,1917853796,1634887535,1766596717,573469811,168626701,543516756,1953653104,1718558835,1701344288,760433952,542330692,1818585171,1769414764,2003788910,1668180256,1701082476,1701344288,1819239968,1769434988,221931374,537529610,1411394080,1948280168,1701606505,1918984736,1936286752,2036427888,1752440947,1634607205,1293968749,1329868115,1750278227,543976549,168653921,538976288,543516788,544239476,2032166511,544372079,1701995379,221146725,537529610,1411394080,1830839656,544566885,544366946,1953720684,1752440947,1634607205,544433517,1948280431,1629513064,1818845558,1701601889,538970637,1701650464,779318638,1701336864]},{"sector":3,"data":[1870209134,1702043765,1952671084,1830838560,745893477,544500000,1886611812,1937334636,1814061344,225735529,538976266,543584032,1835888483,1935961697,1970239776,1851876128,1869112096,543519599,1836020326,218762542,706748426,1769096224,1814062454,1702130789,1763734386,1667851374,543519841,1667852407,1919164520,1936029289,1701994784,1920295712,1953391986,168655212,538976288,1767994977,1818386796,168636005,538970637,1750343722,1769414757,2003788910,1953068064,1679844716,1819308905,544438625,543516788,1701667182,543584032,543516788,1920103779,225734245,538976266,1919509536,1869898597,539785586,1970238055,1634607216,539780461,543516788,1701996868,1919906915,1918115961,539780453,1948283503,168650088,538976288,1769235265,1411409270,543912801,1953720652,218762542,706748426,1701336096,1818587936,1769235301,1663069807,1869836917,1752375410,544438127,1952540791,544434464,1701602675,1684370531,544106784,224749684,538976266,1936288800,168636020,538970637,1666392106,1819045746,1918984736,1701585011,1870209140,1869422709,1881171318,544502369,1629513327,1936288800,1852383348,1981837172,225928553,538976266,1701345056,1752440942,1752637541,543517807,1953720684,1853057312,1981838375,1651077993,1629513068,1852776564,221144419,537529610,1411394080,1931502952,1970561396,1633820787,1768169586,1634496627,1830843257,1634956133,544433511,543452769,543516788,1920103779]},{"sector":4,"data":[544501349,538970637,1769218080,1629513069,1752440948,1868701797,1836020852,543584032,543516788,1701995379,221146725,1493830922,1663071599,1663069793,1936682856,1919295589,1629515119,1918989856,2037671273,543584032,1869377379,1868767346,1852400237,1869182049,1629516654,1931502702,1701147235,1869422702,544433508,544370534,1886611812,1769562476,1293969262,1329868115,1750278227,543976549,1684957559,779319151,168626701,1634493778,543450484,1668248144,1920296037,168653669,572530720,1634222880,1852401518,1866670183,1936879468,1233003040,2117480497,538970637,1126179360,1735287144,543649385,543516788,1701995347,1142976101,1819308905,572553569,892422526,168656436,1699613197,1948284024,1667854447,537529658,539107360,1869767507,1109421164,544436833,824475170,1082012465,218762560,824451338,1075917617,1666386445,1819045746,1918976544,218762611,1836012298,1918967909,544432485,1948280431,1293968744,1329868115,1750278227,543976549,1684957559,1629517679,1679844462,1869373801,1868701799,544433528,1953394531,544106849,1869767539,1646292076,544436833,544567161,544104803,543519605,1981837172,544695657,1954047348,1634235424,1701978228,1919513969,1830843237,543519343,1851877492,1701344288,1635148064,1650551913,1931502956,1701011824,218762542,544166922,1869767539,538995820,538976288,538976288,544162848,1936287860,757926413,757935405,539831597,538976288,538976288]},{"sector":5,"data":[757932064,757935405,1275727149,543518313,1814067554,543518313,538976288,1126178848,1801677164,1701736224,543584032,543516788,1869767539,1629514860,2003792498,168636019,538976288,538976288,538976288,538976288,538976288,539783759,1936028272,1752440947,1347756133,1381122336,1864390479,1329864818,1092636247,1464816210,538970637,538976288,538976288,538976288,538976288,1701519392,168636025,1866664461,1852404846,1937076085,538999148,538976288,1867522080,544501353,1864396660,1864394094,1752440934,1668489317,1819045746,1920098592,225671023,538976266,538976288,538976288,538976288,538976288,1684955424,1819240480,1868832868,1948282487,1830839656,1702065519,1953849888,225341300,538976266,538976288,538976288,538976288,538976288,1953396000,1948281961,1763730792,1919903342,1769234797,2032168559,1998615919,225734241,538976266,538976288,538976288,538976288,538976288,1836016416,1763734373,544175214,2003134838,1917788206,1869094956,1679844460,225343343,538976266,538976288,538976288,538976288,538976288,1701344288,542135584,1330795073,1919885399,1464812576,1379999822,542592850,779707755,168626701,1667855697,544828523,538976288,538976288,538976288,1734439492,1701344288,1919120160,543976559,544763746,1864396917,1868832882,1948282487,168650088,538976288,538976288,538976288,538976288,538976288,1869767539,1646292076,1948283489,1752440943,1869619301]},{"sector":6,"data":[1769236851,2032168559,168654191,538976288,538976288,538976288,538976288,538976288,1953390967,1750343726,1702043749,1869182051,1718558830,1701344288,2019914784,1919885428,538970637,538976288,538976288,538976288,538976288,1768693792,1948284019,544498024,1701670755,1852383347,1981837172,544695657,1701864804,225666158,538976266,538976288,538976288,538976288,538976288,544108320,543516788,1769172848,1852795252,543584032,543516788,1869767539,1646292076,221149295,538976266,538976288,538976288,538976288,538976288,1919895072,1635280160,1701605485,1718165548,1970239776,1987013920,1752440933,1668489317,1819045746,538970637,538976288,538976288,538976288,538976288,1868701728,1634214008,1635214956,1868832889,1948282487,1931502952,1819243107,1633820780,168635506,538976288,538976288,538976288,538976288,538976288,543516788,1954047348,1818322976,2036430694,1919448096,1751610735,1713398048,224750697,538976266,538976288,538976288,538976288,538976288,544370464,1953720684,1886413088,1936875877,1868111918,1633886325,1818304622,1881173875,1936942450,1701344288,538970637,538976288,538976288,538976288,538976288,1095770144,1142965575,542005071,1344303727,541411137,1797279829,221149541,1309281546,544503909,1768976244,168639075,572530720,1852132640,1629516661,1126196334,1634561391,544433262,824475170,1082012464,218762560,824451338,1075917616,1699547661]},{"sector":7,"data":[544437614,543452769,1835888451,1935961697,168626701,1835888451,1935961697,1885696544,1702061426,1629516910,1869182051,1948283758,544498024,544567161,544104803,1819043188,760433952,542330692,1818585171,1869881452,1918984992,1864399218,539915381,1143821133,1394627407,1819043176,1936288800,1663071092,1634561391,544433262,1830841961,1937075813,1750343726,1701650533,544437614,2037539190,1885692960,1768189541,1864394606,1752637550,1701344357,1752440946,1702043749,1952671084,1293968485,1329868115,1750278227,543976549,1684957559,538998639,1679848297,1819308905,1852406113,1768169575,1952671090,1701409391,1851859059,1768300644,544433516,1730179695,1886744434,1851859059,1919950948,1634887535,1953046637,779316581,168626701,1701602643,1852404835,1699553383,225670510,757935370,757935405,757935405,757935405,1699940877,1952671084,543649385,543516788,1970169197,544434464,543516788,1936877926,1953702004,1763733605,1751326830,1769172847,1629513582,1836016416,1684955501,1868111918,1633886325,1818304622,1931505523,1667591269,543236212,1970169197,980382752,168626701,539631648,543515987,544437353,1835888483,1935961697,218762542,706748426,1952794400,1818576928,1852776560,1701344288,1818587936,1702126437,1701650532,1646294382,1919950969,1769173861,1948280686,1176528232,1701519409,168636025,1750534669,2032168549,1998615919,544501345,1663070068,1702063980,1830838560,544566885]},{"sector":8,"data":[1752459639,544503151,1869572195,1735289203,1663066400,1634561391,539780206,1936028272,1397039219,168635971,1749223949,1769172847,1126197102,1634561391,225666158,757935370,757935405,757935405,757935405,168635693,1701670739,1836016416,1684955501,1701847155,1919903346,1635000429,544435059,1701996900,2037150819,1953439803,1936876904,1902473760,1701996917,1919905056,1852383333,1836216166,1869182049,1310731886,1634541679,1919251572,1768453920,1830840419,544566885,1663070831,1634561391,2032165998,1998615919,544501345,1965059956,539780467,544567161,1819045734,1948284783,1931502952,543518049,1668248176,1920296037,1713388133,1953722985,1818587936,544498533,543516788,1970169197,1684955424,1701344288,1751326830,1702063983,1701344288,1836016416,1684955501,218762542,1836012298,1868767333,1851878765,1634607204,544433517,1702257000,1836675872,1936486242,1684955424,1952803872,1936876916,2019913248,1869881460,1701344288,1851859053,1869815908,1769235821,544433517,1835888483,543452769,1701667182,1918967923,1768169573,1684368749,218762542,1701336842,1870209134,1702043765,1752440933,538997609,1950949408,1634037024,168653678,757935405,757935405,757935405,757935405,538976301,757935392,757935405,1141509421,1701670249,1868767332,1851878765,538976356,538976288,543516756,1835888483,543452769,1847620457,1629516911,1818845558,1701601889,225730848,538976266,538976288,538976288]},{"sector":9,"data":[538976288,538976288,1752440864,1948283753,778399081,1970231584,1734962464,1847620712,543450469,1931505524,1667591269,537529716,538976288,538976288,538976288,538976288,538976288,1701670771,1852401780,1700929639,1701998438,1970239776,1851876128,1702065440,1701344288,538970637,538976288,538976288,538976288,538976288,1663049760,1634561391,539780206,1763734127,1768759412,544499815,544501614,1629513058,1818845558,537529645,538976288,538976288,538976288,538976288,538976288,1701601889,1919903264,1701344288,1935766560,1870209131,1918967925,1969430629,1852142194,226061428,538976266,538976288,538976288,538976288,538976288,1701847072,1919903346,1735289197,218762542,1918979338,538976363,538976288,538976288,538976288,1750343712,1868767333,1851878765,1936269412,1952669984,778401385,1702057248,1868963940,537529714,538976288,538976288,538976288,538976288,538976288,1868767329,1851878765,1752440932,1948284001,1936618101,1713398048,1970561381,1696621938,1701344361,537529714,538976288,538976288,538976288,538976288,538976288,1864396399,1718558834,168636006,1699416589,1868767353,1852400237,1869182049,538976366,1495277600,1663071599,1965059681,1948280179,544434536,1629516641,1869116192,1969452146,1869881460,538970637,538976288,538976288,538976288,538976288,1663049760,1936682856,1752440933,1868767333,1851878765,1769414756,1970235508,1768300660,225735538]},{"sector":10,"data":[538976266,538976288,538976288,538976288,538976288,1768169504,1634496627,1735289209,1701344288,1852140832,168636021,1816463885,1936746860,673215337,690892334,538976288,1092624416,1634296864,543649644,544763746,1819044215,1886413088,544366949,1852139639,1701344288,538970637,538976288,538976288,538976288,538976288,1663049760,1634561391,1763730542,1751326835,1852142447,1701978156,1936029041,1735289204,538970637,538976288,538976288,538976288,538976288,1763713056,1919903342,1769234797,1847619183,1701078373,1869881444,1918984992,1864399218,1948284021,168650088,538976288,538976288,538976288,538976288,538976288,1836016416,1684955501,218762542,1818579466,1684370529,1869762592,1969513827,225666418,538976266,1699946530,1952671084,543649385,543452769,1668178243,1852402789,1699553383,544437614,826900002,226374196,538976266,1749229602,1769172847,1126197102,1634561391,544433262,826900002,226373681,1309281546,544503909,1768976244,168639075,572530720,1634288672,543649644,1702391618,2116165747,892350756,222314622,554306826,892350756,168640545,1818323268,1109419887,1936029807,168626701,1953721929,543449445,1914725999,1835363685,1769104738,1948280686,1696621928,1952670072,1918988320,1952804193,544436837,543452769,1701344367,1852383346,1836216166,1869182049,1701716078,1684366437,544175136,1920098659,1970217081,1868767348,1851878765,1713402724,544042866]},{"sector":11,"data":[543516788,1835888483,761556577,1701734764,1870209068,1633886325,1768300654,1864395884,1679848565,1869373801,1868701799,544433528,1667852407,1768169576,1634496627,1818304633,1752440940,1886330981,1852795252,1411395187,1701995880,1701994784,1986360096,1818325605,2036430624,1869881459,1701868320,2036754787,1718511904,1634562671,1852795252,544106784,1818323300,1646290799,1936029807,218762542,1701336074,1819239968,1769434988,1629513582,1948280178,1948280168,1936027769,543584032,1769238639,544435823,544567161,1819044215,1701147424,218762554,1953060618,1752440936,538997609,538976288,538976288,1868111904,1633886325,755633518,757935405,757935405,538976288,538976288,538976288,757935405,221064493,1701331722,1646291811,538998895,538976288,538976288,1699946528,1952671084,544432416,2037277037,543584032,543516788,1702391650,1935745139,1970239776,538970637,538976288,538976288,538976288,538976288,1814044704,778398569,1931493664,1667591269,543450484,1667590243,1868701803,1868767352,1767994478,168653678,538976288,538976288,538976288,538976288,538976288,544104736,168635992,1766590989,1646294131,538998895,538976288,538976288,1394614304,1667591269,1852776564,1919295589,1948282223,1814062440,544502633,1663067759,1667854184,221148005,538976266,538976288,538976288,538976288,538976288,1868111904,1633886325,1937055854,1752440933,1668489317,1819045746,1918984736]},{"sector":12,"data":[1869881459,1701147424,538970637,538976288,538976288,538976288,538976288,1663049760,1667854184,1948283749,544498024,1852142177,1981838375,1651077993,221144428,1326058762,1869182064,1969365102,1852798068,538976288,538976288,1701602643,1864397923,1713399150,544042866,543516788,1970238055,1718558832,1634562848,168651884,538976288,538976288,538976288,538976288,538976288,1970237984,1646290030,1869902965,539915118,544567129,544104803,2037149295,1818587936,225731429,538976266,538976288,538976288,538976288,538976288,1852776480,1886330981,1852795252,544497952,1769218145,539911533,543516756,1701602675,1684370531,538970637,538976288,538976288,538976288,538976288,1864376352,1869182064,1969365102,1852798068,1852793632,1852399988,543236211,779382628,168626701,1954047316,2020565536,538976288,538976288,538976288,1886999584,1702109285,1763734648,543236206,544763746,1752459639,1663066400,1869836917,1852383346,779381024,168626701,1702127169,1870209138,1970479221,2037149808,1701344288,1718511904,1634562671,1852795252,1870209068,1751326837,1702063983,1701344288,541806368,1953789282,1948282479,1633886319,544830066,544503151,543516788,1835888483,778333793,168626701,1663070036,1702063980,1679843616,1869373801,1868701799,1769414776,1970235508,1633886324,1769566834,1864394606,1948284021,1663067496,1634561391,221930606,539828234,1936028240,1397039219,1919885379]},{"sector":13,"data":[1869112096,543519599,543516788,1668178243,1646292069,1869902965,168636014,1868106253,1633886325,1818304622,1730178931,1210086501,544238693,1948282479,1679844712,1869373801,1868701799,2036473976,1869112096,1852404591,1752440935,1699225701,1646293100,1869902965,168636014,1699875341,1702125932,1917853796,1684366191,1936028277,538970637,1428169248,1735289203,1634288672,543649644,544763714,1769238607,544435823,826900002,226374452,538976266,1666392098,1819045746,543649385,1869768788,543713141,1953720652,2116165747,942879049,537529726,539107360,1869572163,1735289203,1836008224,1684955501,1953841696,1936617332,1233003040,2117677105,168626701,1954047310,1886352416,221930345,538976266,1766203426,1277191532,544502633,543452769,1735357008,544039282,1953720652,612246048,2117349681,168640576,606145037,557068593,1175063872,543517801,1953720652,1684955424,1869762592,1835102823,1936280608,218762612,760433930,542330692,1818585171,1919950956,1684633199,1948283749,1646292855,1667855201,1852402464,1864397668,1768693862,980644979,168626701,539631648,1768693825,1864397939,1768169574,1952671090,1701409391,1851859059,1768300644,225666412,537529610,1092626976,1936288800,1718558836,1869770784,1835102823,1702127904,1629516653,1730176110,1886744434,218762611,760433930,542330692,1818585171,1818304620,1864396659,1919247974,1870209139,1702043765,1634887030,1635197036,1948283769]},{"sector":14,"data":[1769349231,1948284773,1702061416,1936288800,1646293876,1937055865,543649385,1835888483,1935961697,544108320,543516788,2003134806,1852140832,1629498485,1868963955,2003790956,168639091,1867778573,1701410336,538976375,538976288,538976288,538976288,1126178848,1936682856,755633509,757935405,538979629,538976288,538976288,538976288,538976288,757935405,168635693,2037149263,1919509536,1869898597,1936025970,1684955424,538976288,1852396320,543517799,1701603654,1936280608,1711934836,1936026729,544108320,1768169569,168651635,1766066701,1952671090,1701409391,1851859059,1768300644,544433516,1142956064,543973749,1701603654,1936280608,168653684,1948282479,1679847287,1936421737,168626701,1701603654,1852383347,1931501856,1667591269,543450484,538976288,1819033888,1818838560,168653669,1986622052,1851859045,1768300644,168650092,1868983913,1952542066,225341289,1326058762,544828526,1970238055,1629516656,538993774,538976288,538976288,1735357008,544039282,1953720652,1919945229,1634887535,1953046637,225668453,1191841034,1886744434,1881156723,1919381362,538996065,538976288,538976288,1735357008,795697522,1701603654,1936280608,168653684,1835365481,1679830131,1667592809,1769107316,221016933,1684955402,1818846752,168653669,1867778573,1701410336,543236215,1953653104,1819632489,1814065761,745829225,1869112096,543519599,1713402985,544042866,543516788,2003134806,1852140832]},{"sector":15,"data":[1210068597,543519333,543519329,1701670771,1735750432,1953719655,1936617321,1919903264,1701345056,1869881454,1701410336,1634017399,1814063203,980710249,168626701,543519573,538976288,538976288,538976288,538976288,538976288,225399840,757935370,538976288,538976288,538976288,538976288,538976288,757932064,1767049741,1701603182,1818838560,1766596709,538997875,538976288,1176510496,543452777,1768300641,1763730796,543236206,1701996900,1919906915,168636025,1967393293,1176530017,543517801,1953720652,538976371,538976288,1126178848,544829551,1830842991,543520367,1768300641,1713399148,544042866,224751215,538976266,538976288,538976288,538976288,538976288,538976288,1768169504,1952671090,544830063,1679848047,543912809,1629515636,1752461166,221147749,1091177738,1176530028,1936026729,538976288,538976288,538976288,538976288,1886220099,543519329,1868983913,1952542066,544108393,1970233953,1768300660,779314540,168626701,1735357008,544039282,1953720652,538976288,538976288,538976288,1635013408,1629516914,1869770784,1835102823,1684955424,225337632,538976266,538976288,538976288,538976288,538976288,538976288,1935745056,1768124275,1684370529,1818846752,168636005,1917848077,1634887535,1766207341,1277191532,1937011561,538976288,1126178848,1952540018,543236197,544695662,1735357040,544039282,1835365481,538970637,538976288,538976288,538976288,538976288]},{"sector":16,"data":[538976288,1646272544,1868767353,1852406128,1852383335,1836216166,1869182049,1919295598,1948282223,168650088,538976288,538976288,538976288,538976288,538976288,538976288,1818846752,1768693861,221148275,1309281546,544503909,1768976244,168639075,572530720,1818838560,1766596709,1327527027,1987208566,544695657,1311866402,222314622,554306826,555830833,555830834,1075924569,1766197773,1277191532,544502633,1919252047,2003134838,168626701,543516756,1701603686,1936288800,1919950964,1684633199,1629516645,1852793632,1768842614,544501349,544825719,1679847284,1819308905,1629518177,1998611566,543912559,1752459639,1970239776,1768169586,1679846259,1702259058,1679830131,1667592809,1769107316,539784037,543452769,1701603686,1411395187,1713399144,543517801,1953720684,1936286752,2036427888,543236211,1953720684,543584032,1701996900,1919906915,544433513,1818321704,543450476,543516788,1701996868,1919906915,1918115961,539583845,544370534,1702043745,1952671084,1679844453,543912809,1986622052,1629498469,1629512814,1936288800,1718558836,1818846752,1713402725,1629516399,1818587936,1702126437,1768169572,1952671090,779711087,1818579744,544498533,1768169569,1919247974,544501349,1802725732,1769104416,1948280182,1769349231,1763735397,1679848308,1667592809,2037542772,1701999648,1931492197,1667591269,543236212,1717987684,1852142181,1768169588,1952671090,544830063,1981837172,544695657]},{"sector":17,"data":[544437353,1701603686,168636019,1750338061,1701650533,544437614,1948284001,1948280168,1864396911,1752440934,1768300645,1814062444,544502633,1684957559,1663072111,1635020399,1663069801,1634561391,544433262,544567161,543519605,1852139639,1919907616,1735289195,1953068832,1768169576,745761651,1919509536,1869898597,1936025970,1851858988,1768300644,779314540,1970231584,1851876128,1702065440,1701344288,1818846752,1768693861,1948284019,1869422703,539780470,2037411683,1701060652,1702126956,1886330924,539782757,1852404336,1914711156,1835101797,1663052901,1735287144,1752440933,1952522341,1651077748,1936028789,744910624,1684955424,1701410336,1752440951,1868767333,1852142702,1864397684,1768300646,779314540,1970231584,1851876128,1936482592,1919098991,1702125925,1701060652,1702126956,1851858988,1701978212,1701667182,1919509536,1869898597,1936025970,1750343726,1868767333,1851878765,1919950948,1953525103,544434464,1767994977,1818386796,1919295589,1948282223,1713399144,543517801,1953720684,544432416,1819043191,218762542,1409944842,1713399144,1869376623,1735289207,1886352416,544433001,1667327348,1870209128,1752440949,1633820773,1935894899,543584032,1852404597,1752440935,1768300645,1814062444,980710249,168626701,572530720,1936278560,1917067371,1936029289,612246048,2117480753,538970637,1142956576,1667592809,1769107316,572552037,825304190,168656439,572530720,1818838560,1699946597]}],[{"sector":1,"data":[1952671084,544108393,824475170,226375729,538976266,1766203426,1226859884,1919903342,1769234797,572550767,825304190,168656441,1699875341,1702125932,1917853796,1684366191,1936028277,168626701,572530720,1886339872,1735289209,1818838560,572552037,825313662,168656435,572530720,1818575904,1852404837,1766203495,544433516,826900002,226375473,538976266,1867325474,1735289206,1818838560,572552037,842090878,168656441,572530720,1769099296,1852404846,1766203495,544433516,826900002,226374707,538976266,1699880994,1768776046,1176528750,1936026729,1684955424,1919501344,1869898597,1936025970,1233003040,2117481265,538970637,1394614816,1668440421,1735289192,1919903264,1818838560,572552037,858868094,168656441,572530720,1701402144,1735289207,1818838560,1866670181,1852142702,572552052,875645310,168656441,572530720,1701402144,1735289207,1818838560,1142959205,1667592809,2037542772,1851858988,1917067364,543520361,1868983881,1952542066,544108393,826900002,226373682,218762506,2019905034,1869881460,979593584,538970637,1142956576,543912809,1986622020,572552037,825304190,1077968438,168626701,825304097,222306614,1936278538,1917067371,1936029289,168626701,1852139607,1970239776,1635021600,1293972594,1329868115,1750278227,745303141,1701344288,1818846752,1768693861,1679848563,1819308905,544438625,543516788,1701996900,1919906915,544433513,543452769,1701603686,1852776563]},{"sector":2,"data":[1701344288,1936286752,1752440939,1663071329,1635020399,544435817,543516788,1835888483,543452769,1701603686,1868963955,1397563506,1397703725,1701335840,539913324,1998614356,543912559,1752459639,1752461088,1679848037,1667592809,1769107316,1629516645,1713398894,1936026729,544108320,1953459809,544367976,1986622052,2032151653,1847620975,543450469,1931505524,1667591269,1752440948,1919164517,543520361,1953785196,539914853,1948280393,1701995880,1701994784,1986360096,1818325605,1919509536,1869898597,1936025970,544108320,543516788,544695662,1986622052,1293954149,1329868115,1750278227,543976549,1886611812,1937334636,572547360,1684104530,543649385,1802725700,1718503712,1634562671,1852795252,1701650466,1734439795,168636005,1699875341,1702125932,1917853796,1684366191,224752245,538976266,1699946530,1952671084,543649385,1986622020,572552037,875645310,168656437,1699613197,1948284024,1667854447,537529658,539107360,1701996868,1919906915,544433513,824475170,1082013489,218762560,824451338,1075918641,1766066701,1952671090,1701409391,218762611,544098570,543516788,1701603686,1936288800,2032151668,1679848815,1819308905,1679849825,1667592809,1769107316,1948283749,1870078063,1998613362,543716457,543516788,1701603686,1752440947,1663072613,1635020399,221146729,1393167626,1667591269,1735289204,1919501344,1869898597,1936025970,757926413,757935405,757935405,757935405,757935405]},{"sector":3,"data":[221064493,1701336074,1920295712,1953391986,1919509536,1869898597,1763735922,1752440947,1702043749,1952671084,1679844453,1667592809,2037542772,544106784,543516788,1701996868,1919906915,1918115961,539911525,544567129,544104803,1701602675,1864397923,544828526,543518319,1701996900,1919906915,1952522361,1948279072,543518057,1696624233,543712097,1701996868,1919906915,1918115961,1998611813,1868852841,168636023,2017790477,1684955504,543649385,1701996868,1919906915,225666409,757935370,757935405,757935405,757935405,757935405,168635693,1852139607,1970239776,1635021600,1293972594,1329868115,1750278227,745303141,1701344288,1919501344,1869898597,1411414386,543516018,1886611812,1937334636,1819176736,1752440953,1768300645,544502642,1702258028,1718558828,1919509536,1869898597,1936025970,544108320,543516788,1920103779,544501349,1986622052,168636005,541133325,1937075312,1734964000,724050030,1869881385,1701344288,1717922848,1718558836,1679843616,1667592809,2037542772,1835101728,1852383333,1633904996,544433524,1952540788,1701736224,544370464,1701998445,1651864352,1701996900,1919906915,544433513,1936291941,1713402740,1948283503,544498024,1701996900,1919906915,1226845817,1870209126,1702043765,1952671084,1679843616,1667592809,2037542772,1868785952,1752440942,1763734625,1970037614,544433508,1819287649,1931506549,745432937,760433952,542330692,1818585171,1768169580,1634496627]},{"sector":4,"data":[1763734393,1931506548,1768186485,1952671090,1701409391,1411395187,544434536,1663071081,1701604449,1696735332,1851879544,1735289188,1752440866,1768169573,1952671090,779711087,1701336864,1870209134,2019893365,1684955504,1679843616,1667592809,2037542772,1752440876,1819287653,1931506549,544106345,1851877475,544433511,1629515636,1852402976,1931506549,544106345,774450472,168626701,544567129,544104803,1869835361,1702065440,1701344288,1836016416,1684955501,1852776563,1701344288,1701991456,1701650533,1948284270,1868767343,1869771886,1752440940,1835081829,1953396079,543584032,1701996900,1919906915,1852383353,1836216166,1869182049,1768169582,1634496627,778331513,1970231584,1851876128,1886938400,543452769,1696624225,1919513710,1919033445,1751346785,1818306592,1970479212,1919509602,1869898597,1936025970,544106784,543516788,1701602675,1684370531,1919509536,1869898597,740915570,1931501856,1818717801,1701584997,543974774,1948280431,1646290280,1668178290,1864379496,1818304626,1768169580,1952671090,1701409391,1852383347,1701344288,1701999648,168636005,1866664461,1885432940,1735289203,1919501344,1869898597,1936025970,757926413,757935405,757935405,757935405,757935405,757935405,1868106253,1633886325,1663180910,1634495599,577074032,1701344288,1919509536,1869898597,1948285298,1768431727,1629513060,1663072622,1701999221,2037150830,1936286752,2036427888,1931502693,1768186485,1952671090]},{"sector":5,"data":[1701409391,1411395187,1830839656,1937075817,1734964000,757604462,1751326761,1701277281,1869881459,1881170208,544437612,1852270963,690694176,1750540334,2032168549,1931507055,1953653108,760433952,542330692,1818585171,1763716204,1768169588,1634496627,1948283769,1679844712,1667592809,1769107316,1763734373,1752440942,1869750373,1679848559,1667592809,2037542772,218762542,1818579466,1684370529,1869762592,1969513827,225666418,538976266,1699946530,1952671084,543649385,1701996868,1919906915,544433513,826900002,226374708,538976266,2017796130,1684955504,543649385,1701996868,1919906915,544433513,826900002,226375474,538976266,1866670114,1885432940,1735289203,1919501344,1869898597,1936025970,1233003040,2117218609,168626701,1954047310,1886352416,540697449,1766203426,1394632044,1667591269,1852795252,612246048,2117611825,168640576,168626701,825304097,222306616,1818838538,1699946597,1952671084,225341289,1107954954,1919903333,1870209125,1633886325,1870078062,1998613362,543716457,1768300641,1763730796,1752440942,1768300645,1814062444,745829225,1970239776,1937075488,1702043764,1952671084,779381024,760433952,542330692,1818585171,1852383340,1633904996,544433524,1952540788,1713398048,543517801,1931506537,1667591269,543450484,1746958690,1818781545,1952999273,543649385,544437353,1701667182,544106784,543516788,1953720684,218762542,1953060618,544106856,1768169569,1952671090]},{"sector":6,"data":[746156655,1970239776,1851876128,1818587936,544498533,1701998445,1634235424,1852776558,1768300645,1629513068,543236212,1701669236,1750343726,1763734377,1633886323,1684368492,2019893792,1684956532,577203817,1701344288,1818587936,1769235301,539913839,544370502,1835104357,744844400,1970239776,1851876128,1818587936,544498533,1702258035,543973746,1701603686,1851859059,1868767332,1948285296,544040296,1629515636,1752461166,1679848037,1667592809,2037542772,1868111918,1633886325,1702043758,1952671084,1818846752,1948283749,544498024,979726945,168626701,539631648,1663069769,1702063727,1769239907,1864394102,1919247474,168626701,539631648,1952539475,1701995892,1752440932,1735749490,1953853288,1701344288,1919509536,1869898597,168655218,538970637,1850286122,1919905056,1752440933,1864396385,1679844718,1667592809,2037542772,168626701,544567129,544104803,1635216481,1663071097,1701015137,543236204,1701602675,1869182051,1919885422,1819042080,1818587936,1769235301,779316847,168626701,1634493778,543450484,1768976212,537529699,539107360,1918985555,1852401763,1868963943,1766203506,544433516,826900002,226375987,1376390410,1952541797,1344300133,1701015410,1701999972,537529715,539107360,1701602643,1852404835,1766203495,544433516,826900002,226375220,538976266,1699946530,1952671084,543649385,1869767489,1142977395,1667592809,1769107316,572552037,875645310,168656432,572530720]},{"sector":7,"data":[1818579744,1769235301,1092642670,1176530028,1936026729,544106784,1766072417,1952671090,544830063,826900002,226373940,1309281546,544503909,1768976244,572537443,1818838560,1850286181,1836216166,1869182049,2116165742,959525156,222314622,554306826,959525156,168640545,1701603654,1718503712,1634562671,1852795252,168626701,544567129,544104803,1953394531,543977330,544698216,1143821133,1394627407,1819043176,1936286752,2036427888,1852383347,1836216166,1869182049,1650532462,544503151,1701603686,2036473971,1769174304,1948280686,1176528232,543517801,1886611780,544825708,1769238607,544435823,1835888483,543452769,1948282479,1327523176,1869182064,1830843246,779447909,1701336864,1870209134,1953702005,544502369,1143821133,1394627407,1819043176,1752440876,1768300645,1814062444,544502633,1886611812,1937334636,1819042080,1701344288,1818846752,1763734373,1752440942,1969430629,1852142194,1768169588,1952671090,544830063,1701017701,1746957424,1701078121,1851859054,2037588068,1835365491,1818846752,539915109,543516756,1701603686,1918967923,1768693861,1684370547,1886150944,1700946280,1633905012,544828524,1847621986,543518049,1836020326,1948270880,777658479,1970231584,1851876128,544171040,543516788,1819045734,1852405615,168639079,538970637,1749229610,1701277281,1701344288,1887007776,1718558821,1818846752,1768169573,1634496627,996435321,1919903264,1635280160,1701605485,1870209068]},{"sector":8,"data":[537529717,1663049760,1679847009,1819308905,1864399201,544828526,1701603686,1752440947,1696625761,1998611566,543716457,1415074862,218762542,706748426,1936278560,2036427888,1684629536,544105828,543452769,1953724787,1713401189,1936026729,218762542,706748426,1919898400,1818304628,1650550896,1667855461,2037148769,544825888,1701603686,1701667182,544370464,1696627042,1852142712,1852795251,537529644,1646272544,1633951865,539780468,1931508066,744847977,544370464,1948285282,1864394088,1919247474,1701344288,1818846752,1629516645,168650098,538976288,1667329136,1864393829,1752440942,1768169573,221145971,537529610,1377839648,1919252069,1948280179,1629513064,1634234476,1769235810,543973731,1847620207,1919249781,1818321769,1685221152,1948283493,544498024,538970637,1397563424,1397703725,1701335840,1965059180,544433523,1931505524,544502383,1713404258,1852140649,543518049,543452769,1702131813,1869181806,168632430,538976288,1646293615,1633951865,221144436,1376390410,1952541797,1344300133,1701015410,1701999972,538970637,1444946464,1769432425,1176528750,744844393,1919501344,1869898597,539785586,543452769,1986622020,1850286181,1836216166,1869182049,2116165742,808595785,218762622,2019905034,1869881460,979593584,538970637,1344283168,1919381362,1277193569,544502633,1919252047,2003134838,1233003040,2117679408,168640576,1226902029,557398320,1342836032,1919381362,1277193569]},{"sector":9,"data":[544502633,1919252047,2003134838,168626701,543516756,1735357040,544039282,1953720684,1869770784,1701079414,543236211,1986948963,1701408357,1998615662,1948285281,1768169583,1634496627,1851859065,1919361124,544241007,1735357040,544039282,1835365481,1869815923,1701344288,1701980025,1935762720,1869881465,1668246560,543519841,543452769,1918989427,1411395188,1814062440,544502633,1952540788,760433952,542330692,1818585171,1768169580,1634496627,1998615417,544105832,544567161,1936877926,1937055860,1752440933,1919950949,1634887535,1768693869,1763734643,1633886323,1684368492,1701344288,1632444960,539127401,1970238055,1411395184,1881171304,1919381362,1814064481,544502633,1869835361,1836016416,1998615397,543716457,1919361121,544241007,1819042147,572548197,1802725700,1769231648,1769236844,539128677,1952540788,1852793632,1852399988,1851859059,1936941344,1836348015,544501349,1881171567,1919381362,1763732833,1936549236,1634235424,1970413684,1397563502,1397703725,1836016416,1684955501,168636019,1750338061,1701650533,544437614,1948284001,1948280168,1864396911,1752440934,1919950949,1634887535,1768693869,1998615667,1868852841,1868767351,1767994478,1868767342,1851878765,1713402724,1998615151,1768649327,1998612334,543716457,1735357040,544039282,1835365481,1851859059,1919361124,1936749935,1868111918,1633886325,1684086894,1679830116,1952803941,1864379493,1851877234,744847977,1684955424]},{"sector":10,"data":[1685024032,544826985,1970238055,1629516656,1881171054,1919381362,544435553,1948282473,1814062440,544502633,1965062498,1735289203,1836016416,1684955501,1852776563,1701344288,1818838560,1701650533,221148526,1376390410,1952541797,1344300133,1701015410,1701999972,537529715,539107360,1886611780,1769562476,1948280686,1344300392,1919381362,1277193569,544502633,826900002,226374198,538976266,1884233762,1852403301,1917853799,1634887535,1917263981,1936749935,1233003040,2117284401,168626701,1954047310,1886352416,221930345,538976266,1917853730,1634887535,1917263981,1936749935,1684955424,1869762592,1835102823,1702119712,572552045,875635838,1077968432,168626701,558781473,1091177792,1986622563,1632903269,1277193075,544502633,1919252047,2003134838,168626701,1852139607,1935766560,2004033643,1768976481,1763731310,1970544755,1684369010,745434912,1701344288,1952661792,543520361,1802723668,1936280608,1768169588,1634496627,1629516665,1936288800,1718558836,1701344288,1869770784,1835102823,1870209139,1953702005,1702130273,1495281252,1965061487,1948280179,1092642152,1986622563,1632903269,1277193075,544502633,1830842228,543520367,1836020326,1701736224,1869770784,1835102823,544175136,1953459809,779249000,1919895072,1635280160,1701605485,1870209068,1633886325,1869029486,1869768224,1870209133,1679848053,1650553953,543519585,1735357040,544039282,2032168820,544372079,1701998707,1752392801]},{"sector":11,"data":[745825637,1684955424,1701344288,1869881454,1970239776,1702109298,1696625784,1869900132,1998597234,1869116521,1746957429,1852405345,1869881447,1769304352,1852776564,1919950949,1634887535,1851859053,1953701988,544502369,1953459809,779249000,168626701,1852139607,1970239776,1769304352,543236212,1735357040,745365874,544500000,1679848297,1952803941,1713398885,544042866,543516788,1769235265,1411409270,543912801,1953720652,218762542,1430340362,1313818964,1868111930,1752375413,1684829551,1953459744,1853190688,926036768,1835343920,1952541813,1881174639,1919381362,544435553,1752459639,1935758368,2001936491,1701867617,1970544754,1684369010,778989344,1769166112,1948280686,544040296,1752459639,1935758368,2001936491,1701867617,1634541682,1768169593,1852793715,1952671086,1970239776,1869768224,1870209133,1830842997,1718511969,1701667186,1684955424,1969316640,1679844723,543257697,1646292852,1869357157,221148275,1376390410,1952541797,1344300133,1701015410,1701999972,537529715,539107360,1852404565,1632903271,1394633587,1886413175,543649385,543452769,543516788,1769235265,1411409270,543912801,1953720652,1233003040,2117219633,538970637,1394614816,1668573559,1735289192,1952793120,1852138871,1869762592,1835102823,2116165747,942944585,222314622,554306826,808726820,168640545,1735357008,544039282,1970238023,1629516656,1344300142,1919381362,1226861921,1936549236,168626701,1730289729]},{"sector":12,"data":[1886744434,1936269346,1847615776,543518049,1702259047,1869881454,1663066400,1701604463,1869182051,1718558830,1869770784,1835102823,1702127904,539915117,1970238023,1663071088,1629515361,544174956,1953394531,544106849,1701344367,1919950962,1634887535,1919361133,1936749935,218762542,572539146,1735357040,544039282,1835365481,1868767266,1767994478,1931506542,1953653108,1763733621,1920234350,1769235317,544435823,544370534,1919950945,1634887535,1226845805,544417652,544501614,543516788,1735357040,544039282,1701603686,218762542,1869760266,544436341,544104803,1679844706,1769239401,1769301870,1684367475,1869768224,1919950957,1634887535,1953046637,544435557,1696627042,1701344361,543236210,1717987684,1852142181,1667833972,673214063,1948282740,1814062440,544499301,1948280431,1730176360,1886744434,1835101728,1852383333,1634887456,1667852400,1869422707,539583844,1646293615,1919033465,1701536609,673215348,1920103795,1684960623,543649385,543516788,1970238055,1634607216,1763730797,1702109294,1830843512,694510703,218762542,1970231562,1851876128,1684300064,1869768480,544436341,543452769,1735357040,544039282,1835365481,1869881459,1684955424,1818584096,543519845,1835362420,1869768224,1752440941,1919950949,1634887535,1768693869,539784307,1998615393,543976549,1663071073,1735287144,1752440933,544368997,1886351984,1769239141,539915109,544567129,544104803,1869835361,1886348064]},{"sector":13,"data":[1919950969,1634887535,1953046637,544435557,1730178932,1886744434,168636019,1750338061,1919950949,1634887535,1768693869,1663071347,1936026991,1953068832,1752440936,1868963941,2003790956,543649385,1735357040,544039282,1835365481,1919885427,1768841575,543450490,1730181474,1886744434,218762542,1229016330,1380393038,223368527,1124732170,1936682856,1752440933,168653673,1735357040,544039282,1835365481,538976288,538976288,168652628,757935405,757935405,757935405,538976288,538976288,168635693,1835888451,543452769,1836020304,538997872,538976288,543519573,543516788,1143821133,1663062863,1634561391,1881171054,1886220146,168636020,1682246157,1919906921,538976288,538976288,538976288,1682251808,1713402985,1936026729,1668641568,1935745128,1952539168,1881172067,1919381362,779316577,168626701,1143821133,1361072975,1769169218,538976355,538976288,1663070036,1952540018,1830825061,1718183023,1919885433,1853190688,1970239776,2003771506,537529710,538976288,538976288,538976288,538976288,1881153568,1919381362,779316577,168626701,1263749444,1230263584,1230260556,1193300805,1347768146,168626701,1869572163,1948280179,225667432,1869770762,1835102823,1702127904,538976365,538976288,225399840,757935370,757935405,757935405,538976301,538976288,221064480,1936278538,1866670187,538999152,538976288,538976288,1886339872,1752440953,1768300645,544433516,1629515375,1936286752]},{"sector":14,"data":[1869881451,1869504800,1919248500,538970637,538976288,538976288,538976288,538976288,1768169504,221145971,1107954954,1969972065,1766203504,543450488,1802725700,1293951008,543517537,1801675106,1663070325,1701408879,1718558835,1818846752,1864397669,1870209134,1746956917,224686689,538976266,538976288,538976288,538976288,538976288,1769104416,221144438,1376390410,1869902693,1176528242,1684371561,1936278560,1377837163,1869902693,1713399154,1936026729,1634235424,1702305908,1646290290,1701536609,1886724196,218762542,1769296138,1176529763,1634562671,538976372,538976288,1919895072,544498029,1768169569,1948281715,1667309679,1953523043,760433952,542330692,1701603686,168636019,1866861069,1952542066,538976288,538976288,538976288,1866866720,1952542066,1679843616,543912809,1629515636,1885692771,1397563508,1397703725,1818846752,221148005,1426722058,1818584174,543519845,538976288,538976288,1377837088,1869902693,1679844722,1952803941,1713398885,1936026729,218762542,1818579466,1684370529,1869762592,1969513827,980641138,538970637,1109402144,1768645473,1428186990,1766203504,544433516,826900002,226374966,538976266,1866670114,1852406128,1766203495,544433516,826900002,226374449,538976266,1866866722,1952542066,1735289204,1869366816,544829552,1802725700,2116165747,875966793,537529726,539107360,1953719634,1852404335,1631723623,1684368227,544232736,1701603654,2116165747]},{"sector":15,"data":[909521225,537529726,539107360,1953719634,1852404335,1698963559,1702126956,1766203492,544433516,826900002,226374965,538976266,1934958626,543649385,543516788,1835888451,543452769,1836020304,572552304,842090878,168656436,1866861069,1869422706,1763730802,1919903342,1769234797,1864396399,1397563502,1397703725,1768178976,745697140,1701147424,1701344288,1702057248,544417650,1684632903,1851859045,1699881060,1701995878,778396526,1919895072,1919905056,1852383333,1836216166,1869182049,1650532462,544503151,1143821133,1361072975,1769169218,1931488355,1948280165,1864394088,1852402798,1397563493,1397703725,1631736096,543385971,1886152008,218762542,2019905034,1869881460,979593584,538970637,1210065440,1948284783,1951604847,544502369,1735357008,1936548210,612246048,2117153329,168640576,606145037,556872241,1208618304,1948284783,1951604847,544502369,1735357008,1936548210,168626701,1143821133,1394627407,1819043176,1717989152,544436837,1702258035,543973746,1937334647,544175136,1918989427,543236212,1735357040,980246898,168626701,539631648,1836020294,1701344288,1818846752,1768693861,539784307,1869572195,1629513075,1869770784,1835102823,1818846752,1919885413,1713398048,224750697,538976266,1936941344,1634296687,543450484,1752459639,779381024,1970231584,1851876128,1936482592,1702043759,1952671084,1701344288,1869770784,1835102823,1818846752,537529701,1629495328,539780206]},{"sector":16,"data":[1836020326,1701344288,1818838560,1701650533,539784558,1869572195,1327523187,778986864,1701336864,1870209134,1970348149,1948284009,168650088,538976288,1735357040,745365874,1970239776,1818851104,1701978220,1852994932,544175136,1143821133,1394627407,1819043176,218762542,706748426,1869760032,1752440941,1766203493,1830839660,745893477,1869112096,543519599,778990930,1970231584,1887007776,1752440933,1634607205,1864394093,537529702,1948262432,1881171304,1919381362,1713401185,543517801,543452769,544829025,1634886000,1702126957,1629516658,1931502702,1668573559,544433512,1948282473,168650088,538976288,1818323300,1646290799,539785327,543452769,1852139636,1701998624,1159754611,1380275278,1750540334,2032168549,1897952623,544500085,224749684,538976266,1869770784,1835102823,1870209068,1769414773,1914727532,1920300133,1869881454,760433952,542330692,1818585171,168636012,538970637,1917198378,1948282223,1881171304,1919381362,1814064481,745829225,1869112096,543519599,1919950945,1634887535,1953046637,539913573,1936287828,225667360,538976266,1701344288,1935762720,1953719657,2036430624,544175136,1918989427,1919950964,1634887535,2032169837,1965061487,1713399155,1970365810,1819569765,1919885433,538970637,1919950880,1634887535,1763734381,1768169582,1919247974,544501349,1701996900,1919906915,779314537,1701336864,1870209134,1970348149,1948284009,168650088,538976288,1735357040]},{"sector":17,"data":[745365874,1970239776,1818851104,1701978220,1852994932,544175136,1143821133,1394627407,1819043176,218762542,706748426,1869760032,1752440941,1632444517,1730178665,1886744434,1751326764,1702063983,1836008224,1684955501,1869762592,779382893,1970231584,1887007776,1752440933,537529701,1847599136,543518049,1948280431,1881171304,1919381362,1713401185,543517801,543452769,544829025,1634886000,1702126957,1629516658,1931502702,1668573559,225666408,538976266,544108320,543516788,1835888483,543452769,1701734764,1851858988,1752440932,1881173605,1936942450,1414415648,539906629,1852139607,1970239776,1769304352,537529716,1948262432,1881171304,1919381362,539782497,544567161,1953723757,1887007776,1480925285,1948275785,1701978223,1852994932,544175136,1143821133,168645455,538976288,1818585171,168636012,1716062733,1970239776,538976288,538976288,538976288,538976288,538976288,538976288,538976288,1635013408,1763734642,2036473972,1769174304,168650606,757935405,538979629,538976288,538976288,538976288,538976288,538976288,538976288,757080096,757935405,757935405,757935405,757935405,1934952973,1752440933,1919950949,1634887535,1919295597,1702195557,2037150830,538976288,538976288,1701336096,1869770784,1835102823,1936288800,218762612,1869499146,1752440951,1634738277,538994804,538976288,538976288,538976288,538976288,538976288,543516756,544109906,1835888483,543452769]}],[{"sector":1,"data":[1948283503,168650088,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,1713381408,543517801,1953720684,168626701,1847619396,1797289071,544698222,543516788,1752457584,538976288,538976288,538976288,1411391520,1713399144,543517801,1953720684,168626701,1953390935,544175136,1886217588,1918988911,544828521,1986094444,538976357,538976288,1411391520,1126196584,1634561391,1344300142,1886220146,1292504436,1329868115,1750278227,543976549,538976288,538976288,538976288,538976288,538976288,1919950880,1634887535,1953046637,1763732837,1752440942,537529701,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,1632444448,1730178665,1886744434,168626701,1699875341,1702125932,1917853796,1684366191,224752245,538976266,1951604770,1769239137,1344300910,1919381362,544435553,826900002,226375476,1309281546,544503909,1768976244,168639075,572530720,2003781664,544175136,543519573,1701998413,1634235424,1850679406,1917853797,1634887535,2116165741,842150180,222314622,554306826,842150180,168640545,544698184,1428189044,1293968755,543519343,1851877492,1701728032,1869762592,1835102823,168626701,544567129,544104803,1918989427,1702043764,1634887030,1919950956,1634887535,1629516653,1830839406,543520367,1836020326,1701736224,544175136,1953459809,779249000,1919895072,1635280160,1701605485,1870209068,1633886325]},{"sector":2,"data":[1869029486,1869768224,1870209133,1679848053,1650553953,543519585,1735357040,544039282,2032168820,544372079,1701998707,1752392801,745825637,1684955424,1701344288,1869881454,1970239776,1702109298,1696625784,1869900132,1998597234,1869116521,1746957429,1852405345,1869881447,1769304352,1852776564,1919950949,1634887535,1851859053,1953701988,544502369,1953459809,779249000,168626701,1852139607,1970239776,1869112096,543519599,543516788,1650552389,1411409260,543912801,1885435731,544367984,1835888483,744779361,1667327264,1919950952,1634887535,1870209133,1953702005,544502369,1629516649,1684366436,544175136,543516788,1769235265,1411409270,543912801,1953720652,1868111918,1937055861,1752440933,1665212517,1702259060,1935758368,1766596715,1948284019,1869422703,1713399158,544042866,543518319,1735357040,544039282,1629515636,1752461166,221147749,1460276490,544105832,544567161,1953068401,1881170208,1919381362,539782497,1763734633,1701060723,1702126956,1919295588,1948282223,1092642152,1986622563,1632903269,1277193075,779383657,168626701,1414873411,978210633,1970231584,1869116192,543452277,544501614,544109938,808923699,1970103584,1869898092,1919950962,1634887535,1998615405,543716457,1802723668,1635210016,1919250544,1920300064,543450478,539913839,1852404565,1752440935,1998613861,543716457,1802723668,1635210016,1919250544,2036428064,1936286752,1852731235,544498533,544567161]},{"sector":3,"data":[1836020326,1970239776,1634541682,1919315561,543518049,543452769,1937072483,1633951845,1948279156,1700929647,1936682016,168636020,1699875341,1702125932,1917853796,1684366191,1936028277,538970637,1428169248,1735289203,1935758368,2001936491,1768976481,1629513582,1948279918,1092642152,1986622563,1632903269,1277193075,544502633,826900002,226374197,538976266,2001936418,1751348329,543649385,2004116802,544105829,1735357008,1936548210,1233003040,2117612593,168626701,1954047310,1886352416,221930345,538976266,1933647906,1768124275,1684370529,1818838560,572552037,842081406,1077968435,168626701,842081313,222306611,1936933130,1634296687,543450484,1701603654,218762611,543574282,544567161,1702257000,1931501856,1864397925,1768300646,544433516,1952540788,1970239776,1952870176,1965059685,1998611827,543716457,1634738273,1667855474,1918987381,1869770784,1835102823,1870209068,1633886325,1634934894,1948280182,543518057,1629518178,1668248435,1769234793,1713399662,1936026729,1953068832,1752440936,1919950949,1634887535,1411395181,745432424,1701345056,1870209134,1751326837,1702063983,1713398048,744844393,1701344288,1869770784,1835102823,1635021600,544437362,543452769,1869903201,1769234797,1819042147,1869357177,544433249,543516788,1701603686,218762542,1919895050,1635280160,1701605485,1870209068,1868767349,543452277,1869837153,1952541027,1818304613,1412309100,1713394776,1936026729]},{"sector":4,"data":[1953068832,1870209128,1948283509,544503909,1953064037,539914863,1852139604,1752637484,1986358885,2032169573,1864398191,1701733744,1851859044,1412309113,1713394776,744844393,760433952,542330692,1818585171,1870078060,543452277,1869903201,1769234797,1819042147,1953702009,544502369,1920298873,2019914784,1684349044,1919906921,1684955424,1634692128,1752440932,1412309093,1713394776,778398825,168626701,544567129,544104803,1869835361,1936941344,1634296687,1713399156,1936026729,1953068832,1953853288,544104736,1702131813,1869181806,1769414766,1629513844,1869770784,1835102823,1818846752,1310731877,543519855,1952540788,1702257952,1713404274,543517801,1752459639,544503151,1696624225,1852142712,1852795251,1818851104,1700929644,1936941344,1634296687,543450484,1752459639,1701344288,1818587936,1702126437,1919950948,1634887535,1768300653,221144428,1460276490,544105832,1869837153,1952541027,543649385,1953265005,1701605481,1954047264,1769172581,745762415,1970239776,1851876128,1887007776,1886724197,544175136,1663056183,1634885992,1919251555,1852383347,1701344288,1634296864,543649644,779644770,2003781664,1919252069,1870209068,1633886325,1852776558,1629518188,1668248435,1702125929,544104736,1702131813,1869181806,1769414766,1864394868,1881171310,1919381362,1629515105,543236212,1701669236,1866866734,2019893362,1819307361,2032151653,1663071599,1948741217,1936941344,1634296687,1948280180]},{"sector":5,"data":[1696621928,1852142712,1852795251,1481911840,1769414740,1948280948,1679847287,1701209705,1953391986,2019914784,1684349044,1919906921,1952522355,1701344288,1835103008,1769218149,221144429,1493830922,1663071599,1629515361,544174956,1668178275,1948281957,1629513064,1668248435,1769234793,1646292591,1702327397,1629515365,1818846752,1851859045,543236196,1735357040,778920306,168626701,1919248468,1634541669,1700929657,1835627552,1998615397,544105832,544567161,1684366702,544175136,543519605,1629515361,1634038380,1629518180,1668248435,1702125929,1768300644,1998611820,543716457,1768169569,1919247974,544501349,1735357040,778920306,1970231584,1851876128,1702065440,1701344288,1853182496,1836016416,1684955501,544175136,1948282724,779315560,168626701,1634493778,543450484,1668248144,1920296037,168653669,572530720,1936933152,1634296687,1735289204,1818838560,1998615397,543716457,1917853793,1634887535,2116165741,892350793,537529726,539107360,1918989395,1735289204,1869762592,1835102823,2116165747,926167369,218762622,2019905034,1869881460,979593584,538970637,1210065440,1948284783,1699487855,543520353,1143821133,1394627407,1819043176,612246048,2117415473,168640576,606145037,557134385,1208618304,1948284783,1699487855,543520353,1143821133,1394627407,1819043176,168626701,1919248468,1918967909,2004099173,1635197039,1948283769,1701585007,543520353,1143821133,1394627407,1819043176]},{"sector":6,"data":[1684955424,1987013920,1869881445,1701344288,760433952,542330692,1835888483,543452769,1836020336,539915376,544567129,544104803,1948282724,1713399144,1869376623,1735289207,218762554,706748426,1634028576,1293968758,1329868115,1750278227,543976549,1886217588,1918988911,746155113,1919907616,1852776555,1701344288,760433952,223563588,538976266,1836016416,1684955501,1852402720,1752637541,543517801,1143821133,1394627407,1819043176,544434464,1818850419,1970413676,1852403310,537529703,1763713056,1701650542,2037542765,1851858988,1701978212,1852994932,544175136,1143821133,1394627407,1819043176,1701345056,1870209134,1918967925,537529701,1713381408,1936289385,778331496,168626701,539631648,1953068369,760433952,542330692,1818585171,1851859052,1701978212,1702260589,544500000,1836020326,1835363616,779711087,168626701,1634493778,543450484,1668248144,1920296037,168653669,572530720,1769166112,1948280686,1126196584,1634561391,1344300142,1886220146,2116165748,875704649,537529726,539107360,1953068369,1735289204,760433952,542330692,1818585171,2116165740,909259081,218762622,1634227210,544417652,1713402985,1948283503,1293968744,1329868115,1750278227,543976549,1769169218,539915107,1869572163,1428186483,1735289203,1818576928,1919295600,1948282223,1210082664,544238693,1970169197,544175136,1918985580,1869422702,1629513074,1953853282,1701344288,1818576928,2037588080,1835365491]},{"sector":7,"data":[222314542,554306826,808464722,168640545,1769169218,1917853795,1684366191,1936028277,168626701,1852404565,1752440935,1867325541,224752501,538976266,1867980834,1852402546,1769414759,1629513844,1970228512,572548467,892422526,168656432,1867319821,1735289206,538970637,1394614816,1667591269,1735289204,1852397344,1937207140,1233003040,2117612081,168626701,1852404565,1699553383,544437614,543452769,1835888451,1935961697,538970637,1394614816,1667591269,1735289204,1684955424,1851867936,1768711523,1293969262,1937075813,1233003040,2117219377,538970637,1126179360,1936682856,543649385,1835888451,1935961697,1233003040,2117087537,538970637,1428169248,1735289203,1634288672,543649644,544763714,1769238607,544435823,826900002,226374452,538976266,1666392098,1819045746,543649385,1869768788,543713141,1953720652,2116165747,942879049,537529726,539107360,1869572163,1735289203,1836008224,1684955501,1953841696,1936617332,1233003040,2117677105,168640576,1377896973,556871729,1175063872,543517801,1953720652,1869762592,1969513827,225666418,1409944842,1713399144,1869376623,1735289207,1701994784,1869770784,1969513827,544433522,544567161,543519605,1852139639,1919907616,1735289195,544106784,543516788,1701603686,1936288800,168639092,1766066701,1634496627,1735289209,1818838560,1766596709,225670259,757935370,757935405,757935405,757935405,757935405,168635693,572530720,1936278560]},{"sector":8,"data":[2036427888,543649385,1766596705,1864397939,1766203494,544433516,1629515369,1919501344,1869898597,572553586,825313662,168656441,572530720,1936278560,2036427888,543649385,544175956,1701603654,1936280608,572552052,842090878,168656433,572530720,1936278560,2036427888,543649385,1766596705,1864397939,1816207462,1766203500,544433516,826900002,226375729,538976266,1766072354,1634496627,1735289209,1701344288,1818838560,1766596709,1629516915,1948279918,1344300392,1919381362,1277193569,544502633,826900002,226374962,538976266,1699946530,1952671084,543649385,1684957527,544438127,826900002,226375730,538976266,1884626978,1769234788,1948280686,1277191528,1937011561,1233003040,2117154353,168626701,1802661719,543649385,1752459639,1701344288,1919501344,1869898597,1411414386,224748914,757935370,757935405,757935405,757935405,757935405,757935405,757935405,757935405,538970637,1394614816,1667591269,1735289204,1769096224,544433526,826900002,226374964,538976266,1767252002,1852405605,1766203495,539780460,1701996868,1919906915,1629498489,1142973550,1702259058,1718503712,1634562671,1852795252,1233003040,2117087793,538970637,1394614816,1667591269,1735289204,1919501344,1869898597,1936025970,1233003040,2117350449,538970637,1159733792,1851879544,1735289188,1919501344,1869898597,1936025970,1233003040,2117546545,538970637,1126179360,1634495599,1852404592,1766072423,1952671090]},{"sector":9,"data":[1701409391,2116165747,842084681,537529726,539107360,1851877443,1735289191,1701344288,1818838560,1766072421,1634496627,1917788281,544367972,826900002,226374195,538976266,1699946530,1952671084,543649385,1701603654,2116165747,909390153,537529726,539107360,1701602643,1852404835,1766203495,544433516,1869767489,1142977395,1667592809,1769107316,572552037,875645310,168656432,572530720,1818579744,1769235301,1092642670,1176530028,1936026729,544106784,1766072417,1952671090,544830063,826900002,226373940,538976266,1699946530,1751347809,543649385,544370534,1701603654,2116165747,959656265,218762622,1919899402,1735289195,1953068832,1766203496,544433516,543452769,1701996868,1919906915,225666409,757935370,757935405,757935405,757935405,757935405,757935405,757935405,757935405,221064493,538976266,1917001762,1769234789,1142974318,1667592809,1769107316,572552037,825313662,168656437,572530720,1886339872,1735289209,1818838560,572552037,825313662,168656435,572530720,1987005728,543649385,1701603654,2116165747,959590729,537529726,539107360,1701602628,1735289204,1818838560,1629516645,1142973550,1667592809,1769107316,572552037,825313662,168656439,572530720,1936020000,1769107316,1142974318,1952803941,1176527973,1936026729,1233003040,2117416241,538970637,1377837600,1835101797,543649385,1701603654,1851859059,1766072420,1952671090,1701409391,2116165747,909324617]},{"sector":10,"data":[537529726,539107360,2003134806,543649385,1701603654,1852785440,1953391988,2116165747,959721801,537529726,539107360,2003134806,543649385,1701603654,1766072364,1952671090,746156655,1684955424,1769096224,1226859894,1919903342,1769234797,572550767,842090878,168656432,572530720,1634222880,1852401518,1766203495,1092642156,1769108596,1702131042,2116165747,925905225,537529726,539107360,1852404304,1735289204,1818838560,572552037,858868094,168656436,572530720,1936933152,1634296687,1735289204,1818838560,1998615397,543716457,1917853793,1634887535,2116165741,892350793,537529726,539107360,1852141647,543649385,1701603654,2116165747,825438537,222314622,554306826,842019154,168640545,1735357008,544039282,1953720652,1869762592,1969513827,225666418,1409944842,1713399144,1869376623,1735289207,1701994784,1869770784,1969513827,544433522,544567161,543519605,1852139639,1919907616,1735289195,544106784,543516788,1735357040,544039282,1953720684,218762554,1936278538,2036427888,543649385,543516788,1735357008,544039282,1953720652,757926413,757935405,757935405,757935405,757935405,757935405,757935405,537529645,539107360,1886611780,1769562476,1948280686,1344300392,1919381362,1277193569,544502633,826900002,226374198,538976266,1766072354,1634496627,1735289209,1701344288,1818838560,1766596709,1629516915,1948279918,1344300392,1919381362,1277193569,544502633,826900002]},{"sector":11,"data":[226374962,538976266,1699946530,1952671084,543649385,1684957527,544438127,826900002,226375730,1124732170,1952540018,543649385,543452769,1701602628,1735289204,1869760288,225669237,757935370,757935405,757935405,757935405,757935405,757935405,757935405,537529645,539107360,1852141647,543649385,1735357008,544039282,1970238023,572552048,842090878,168656435,572530720,1684291872,543649385,543452769,1851877443,1735289191,1869762592,1835102823,1869760288,544436341,826900002,226373680,538976266,1698963490,1769235820,1344300910,1919381362,1226861921,1936549236,1684955424,1869762592,1835102823,1869760288,544436341,826900002,226375217,1124732170,1735287144,543649385,543516788,1953394499,1937010277,543584032,1917263969,225473903,757935370,757935405,757935405,757935405,757935405,757935405,757935405,757935405,537529645,539107360,1768186945,1344300910,1919381362,1226861921,1936549236,544175136,1735357008,544039282,1970238023,572552048,808536446,168656434,572530720,1886339872,1735289209,1869762592,1835102823,1702119712,572552045,825313662,168656436,572530720,1818575904,1852404837,1917853799,1634887535,1950949485,544435557,543452769,1735357008,544039282,1970238023,572552048,825313662,168656438,572530720,1634222880,1852401518,1917853799,1634887535,1950949485,1344302437,1701867378,1701409906,2116165747,875573577,537529726,539107360,1919903058]},{"sector":12,"data":[1769104740,1344300910,1919381362,1226861921,1936549236,544106784,1917853793,1634887535,1917263981,544241007,826900002,226374451,1426722058,1735289203,1919896864,1752440933,1327525473,1344300398,1919381362,168652129,757935405,757935405,757935405,757935405,757935405,757935405,221064493,538976266,1934958626,543649385,1802723668,1635210016,1852403824,1851859047,1752440932,1665212517,1702259060,1935758368,1766596715,572552307,892422526,168656434,572530720,1769427744,1768448884,1109419886,1702327397,1344302693,1919381362,577989985,875645310,1077968440,168626701,808538657,222306611,1853182474,1735289198,1869762592,1835102823,218762611,1701336074,1819239968,1769434988,1629513582,1881171314,1701015410,1701999972,1870209139,1937055861,1752637541,1998614117,1768649327,1998612334,543716457,1735357040,1936548210,218762554,538976266,1951604770,1769239137,1344300910,1919381362,544435553,826900002,226375476,538976266,1934958626,543649385,1802723668,1635210016,1852403824,1851859047,1752440932,1665212517,1702259060,1935758368,1766596715,572552307,892422526,168656434,572530720,1769427744,1768448884,1109419886,1702327397,1344302693,1919381362,544435553,826900002,1082013748,218762560,827465994,1075917872,1951336973,544367976,1143821133,1394627407,1819043176,1869762592,1969513827,225666418,1409944842,1713399144,1869376623,1735289207,1701994784,1836020512,1684086885]},{"sector":13,"data":[1769236836,1818324591,1869770784,1969513827,544433522,544567161,543519605,1752459639,760433952,542330692,1818585171,168639084,538970637,1428169248,1735289203,1701344288,1836008224,1684955501,1869762592,544501869,826900002,226374706,538976266,1699487778,1852405345,1397563495,1397703725,1701335840,572550252,909199742,168656432,572530720,1634222880,1852401518,1866670183,1936879468,1233003040,2117480497,538970637,1126179360,1735287144,543649385,543516788,1701995347,1142976101,1819308905,572553569,892422526,168656436,572530720,1885688352,1953392993,543649385,543516788,1701995347,1142976101,1819308905,572553569,858868094,168656437,572530720,1634222880,1852401518,1866670183,1919510126,1769234797,1293971055,1634956133,544433511,826900002,226375728,538976266,1968250914,1769239657,1293969262,1329868115,1750278227,543976549,826900002,1082013234,218762560,558965002,1124732224,1634561391,544433262,1886152008,168626701,1869572163,1629513075,1886352416,1948279657,1701585007,544109153,1970233953,1752440948,1868767333,1851878765,1864397668,1752440942,1830843489,779447909,168626701,1162627398,1397312544,1162682452,223565134,538976266,1766203426,1293968748,544566885,843677218,226374960,538976266,1884233762,1852795252,1699553395,572552558,808601982,168656434,572530720,1701402144,1699553399,572552558,808601982,168656435,572530720,1701991456,1699553381]},{"sector":14,"data":[572552558,808601982,168656436,572530720,1818576928,1699553392,572552558,825379198,168656432,1380977165,1095911247,1229725773,1293964371,1398099525,538970637,1176511008,543517801,1970169165,1233003040,2117152818,538970637,1327505952,1869182064,1293972334,544566885,843677218,226374192,538976266,1767252002,1293973349,544566885,843677218,226375984,538976266,1699225634,1293971564,544566885,843677218,226373681,1443499274,542590281,1163019091,1293962821,1398099525,538970637,1142956576,1819308905,1293973857,544566885,843677218,226375472,538976266,1767252002,1293973349,544566885,843677218,226375728,538976266,1699225634,1293971564,544566885,843677218,1082011697,218762560,843653386,1075917104,1766197773,1293968748,544566885,1835888451,1935961697,168626701,1869572163,1629513075,1886352416,1948279657,1701585007,544109153,1970233953,1752440948,1663071329,1634561391,221144174,537529610,539107360,544695630,1835888451,543452769,1297120802,226378049,538976266,1884233762,1126198885,1634561391,572548206,1095585918,168656450,572530720,1886339872,1866670201,1851878765,2116165732,1128353104,537529726,539107360,1701602628,1126196596,1634561391,572548206,1095585918,168656452,572530720,1869762592,1953654128,544433513,1835888451,543452769,1297120802,226379073,538976266,1699880994,1701081711,1866670194,1851878765,2116165732,1178684752,537529726,539107360]},{"sector":15,"data":[544109906,1835888451,543452769,1297120802,226379841,538976266,2017796130,1126200425,1634561391,572548206,1095585918,1077968458,168626701,808601889,222306610,1953517322,1936617321,1852132640,1866670197,1851878765,168653668,1749223949,1702063983,1948279072,1667854447,544175136,1918985580,1650532462,544503151,1952540788,1836016416,1684955501,218762542,538976266,1866670114,1919510126,1769234797,1126198895,1634561391,572548206,1145919870,168656452,572530720,1818838560,1766072421,1634496627,1884233849,1852795252,1866670195,1851878765,2116165732,1162104153,537529726,539107360,1701602643,1092645987,1936683619,1766072435,1952671090,1701409391,1866670195,1851878765,2116165732,1178881369,537529726,539107360,2003789907,1718503712,1634562671,1852795252,1836008224,1684955501,1501438496,2118599757,538970637,1159733792,1818386798,1632903269,1394633587,1886413175,1126199909,1634561391,572548206,1145919870,168656456,572530720,1936278560,2036427888,1836008224,1684955501,1501438496,2118730829,538970637,1126179360,1919904879,1866670195,1851878765,2116165732,1245990233,222314622,554306826,858796617,168640545,2003134806,1852132640,1866670197,1851878765,168653668,1749223949,1702063983,1948279072,1667854447,544175136,1918985580,1650532462,544503151,1952540788,1836016416,1684955501,218762542,538976266,1767055394,1701603182,1818838560,1766596709,1126200435,1634561391,572548206]},{"sector":16,"data":[1145919870,168656459,572530720,1635075104,1766203500,1277191532,1937011561,1836008224,1684955501,1501438496,2118927437,538970637,1092624928,1176530028,1936026729,1836008224,1684955501,1501438496,2118992973,538970637,1344283168,1919381362,1177513313,543517801,1953720652,1866670195,1851878765,2116165732,1313099097,537529726,539107360,1735357008,544039282,1953720652,1836008224,1684955501,1501438496,2119124045,538970637,1377837600,1767993445,1394635886,1701147235,1866670190,1851878765,2116165732,1095060825,537529726,539107360,1919313234,543716197,1835888451,543452769,1297710626,1082016325,218762560,1869762570,1835102823,1936280608,544417652,808601889,222306617,1701402122,1699553399,1126200686,1634561391,225666158,1124732170,1936682856,543236197,1768976244,1869881443,1634036768,1629515378,1953853282,1634235424,1868767348,1851878765,168636004,538970637,1394614816,1818717801,1766203493,1277191532,544502633,1835888451,543452769,1297710626,226380612,538976266,1967398946,1176530017,543517801,1953720652,1866670195,1851878765,2116165732,1279544665,537529726,539107360,543976513,1701603654,1866670195,1851878765,2116165732,1296321881,537529726,539107360,1735357008,795697522,1701603654,1936280608,1126200180,1634561391,572548206,1145919870,168656462,572530720,1869762592,1835102823,1936280608,1866670196,1851878765,2116165732,1329876313,537529726,539107360,1634755922]},{"sector":17,"data":[544501353,1701995347,1126198885,1634561391,572548206,1162697086,1077968449,168626701,808601889,222306612,1701991434,1699553381,1126200686,1634561391,225666158,1124732170,1936682856,543236197,1768976244,1869881443,1634036768,1629515378,1953853282,1634235424,1868767348,1851878765,168636004,538970637,1159733792,1851879544,1850679396,1699487845,543974774,1835888451,543452769,1297710626,226378565,538976266,2017796130,1684955504,1634877984,543712110,1835888451,543452769,1297710626,226378821,538976266,2017796130,1684955504,1819033888,1836008224,1684955501,1501438496,2118468941,538970637,1126179360,1634495599,543519600,1851880002,1126197347,1634561391,572548206,1162697086,1077968454,168626701,1701603654,1936280608,544417652,808601889,222306613,1818838538,1699553381,1126200686,1634561391,225666158,1124732170,1936682856,543236197,1768976244,1869881443,1634036768,1629515378,1953853282,1634235424,1868767348,1851878765,168636004,538970637,1327505952,544105840,1835888451,543452769,1295089186,226378051,538976266,1968316450,1866670190,1851878765,2116165732,1111706929,537529726,539107360,1852404304,1866670196,1851878765,2116165732,1128484145,537529726,539107360,1869837121,1952541027,1866670181,1851878765,2116165732,1145261361,537529726,539107360,1918985555,1126197347,1634561391,572548206,1129132414,168656453,572530720,1701402144,1766203511,1126196588,1702129263]}],[{"sector":1,"data":[544437358,1835888451,543452769,1295089186,226379331,538976266,1867325474,1126196598,1634561391,572548206,1129132414,168656456,572530720,1886339872,1866670201,1851878765,2116165732,1229147441,537529726,539107360,1701602628,1126196596,1634561391,572548206,1129132414,168656458,572530720,1852133920,543518049,1835888451,543452769,1295089186,226380611,538976266,1749229602,1701277281,1953775904,1969383794,544433524,1835888451,543452769,1295089186,226380867,538976266,1917001762,1702125925,1919501344,1869898597,1126201714,1634561391,572548206,1129132414,168656462,572530720,1818579744,544498533,543976513,1835888451,543452769,1295089186,226381891,538976266,1698963490,1701602675,1092645987,1126198380,1634561391,572548206,1145909630,168656449,572530720,1769489696,1866670196,1851878765,2116165732,1128549681,222314622,554306826,925905481,168640545,1886611780,544825708,1970169165,1836008224,1684955501,218762611,1869103882,543519599,1869881441,543385968,1814065012,1852989797,1868718368,1948284021,544498024,1835888483,778333793,168626701,572530720,1129529632,1126189385,1634561391,572548206,1162696318,168656463,572530720,2019903520,1836008224,1684955501,1451106848,2119189837,168640576,1767246349,1394636645,1701147235,225650542,843653386,1075918896,1767246349,1293973349,544566885,1835888451,1935961697,168626701,1869572163,1629513075,1886352416,1948279657]},{"sector":2,"data":[1701585007,544109153,1970233953,1752440948,1663071329,1634561391,221144174,537529610,539107360,1634755922,544501353,1701995347,1126198885,1634561391,572548206,1162697086,168656449,572530720,1936020000,1701998452,1701402144,1866670199,1851878765,2116165732,1111903574,222314622,554306826,808530505,168640545,1886152008,1852132640,218762613,1869103882,543519599,1869881441,543385968,1814065012,1852989797,1868718368,1948284021,544498024,1835888483,778333793,168626701,572530720,1684949280,1126201445,1634561391,572548206,1112363134,168656457,572530720,2036681504,1918988130,1866670180,1851878765,2116165732,1245859152,537529726,539107360,1818585171,1631723628,1935894899,1836008224,1684955501,1350443552,2118861389,538970637,1126179360,1634561391,544433262,1835888451,543452769,1297120802,226380866,538976266,1917853730,1684366191,1936028277,1836008224,1684955501,1350443552,2118992461,538970637,1428169248,1735289203,1818576928,1866670192,1851878765,2116165732,1312968016,537529726,539107360,1970233921,1750278260,543976549,1835888451,543452769,1297120802,1082019906,218762560,826810634,555824688,1344348501,559307332,1514418465,841032022,559307332,1514428705,1445011798,559307347,1426722112,1735289203,1818576928,218762608,760433930,542330692,1818585171,1699225708,1881174124,1769369458,544433508,1970348129,543908713,544825719,1730178932,1763734629,1919903342]},{"sector":3,"data":[1769234797,1629515375,1953853282,1935761952,1293968233,1329868115,1750278227,543976549,1818848115,539784044,1970169197,1663052915,1634561391,745759854,1634296864,543649644,1702391650,1851859059,1886330980,1852795252,1629498483,1881171054,1701015410,1701999972,1495281267,1663071599,1730178657,1897952357,1801677173,1818576928,1868963952,1869422706,1763734643,1936549236,1936286752,2036427888,1763730533,1397563502,1397703725,1701335840,1646292076,1919950969,1769173861,1948280686,1176528232,1701519409,1428172409,1948280179,1210082664,544238693,1970169197,544175136,544499047,1768186977,1852795252,1763732577,1919903342,1769234797,1629515375,1953853282,1886352416,544433001,1751348595,544432416,1143821133,1394627407,1819043176,1869770784,1969513827,779314546,168626701,1948282441,1210082664,544238693,1684957559,539785071,1143821133,1394627407,1819043176,1936286752,2036427888,1752440947,1869881445,1935894896,1970239776,1851876128,1869112096,543519599,1629515369,1718182944,1701995878,1663071342,1919904879,218762542,544166922,1869572195,1629513075,1818576928,1869881456,979593584,168626701,1866735661,1701601909,1768710957,1948281699,1948280168,1667854447,218762542,225595146,822742282,1917853742,544437093,541213012,1769238133,1752440940,1869881445,543385968,544567161,1953390967,544434464,1701602675,1684370531,839519534,1917853742,544437093,1163152965,168635986,1866861069]},{"sector":4,"data":[1869422706,1763730802,1919903342,1769234797,1629515375,1953853282,1818576928,1663052912,1936682856,1852776549,1718558821,1701344288,1819239968,1769434988,1948280686,1667854447,1700929651,980905836,168626701,572530720,1902465568,1953719669,543649385,1886152008,1919501344,1819566949,2116165753,808464712,537529726,539107360,1852404565,1699225703,1109422188,1869902965,572552046,808536190,168656434,572530720,1769166112,1210083182,544238693,1970169165,1836008224,1684955501,2116165747,858796360,537529726,539107360,544698184,1277194100,1852989797,1868710176,1293972597,1329868115,1750278227,543976549,826834466,226374704,1309281546,544503909,1768976244,168639075,572530720,1902465568,1953719669,543649385,1886152008,1919501344,1819566949,2116165753,808464712,222314622,554306826,808464712,168640545,1970365778,1769239397,1210083182,544238693,1701996868,2037150819,168626701,544567129,544104803,544499047,1886152008,544108320,1835365481,1397563507,1397703725,1701335840,1679846508,1819308905,544438625,1881176418,1936942450,543649385,221131078,1409944842,1701257327,1699225716,1864396908,543236206,1970169197,1868767276,1851878765,1864379492,1768169586,1735355489,2020565536,1953525536,980316009,168626701,1394617905,1667591269,1752440948,1953046629,2032168293,1998615919,544501345,1886152008,778989344,775031309,1701990432,1176531827,168635953,1210064928,544238693]},{"sector":5,"data":[1886611812,1937334636,1998610720,1868852841,1769414775,1763731572,1919903342,1769234797,1629515375,1953853282,538970637,1701344288,1702127904,1870209133,1702043765,1952671084,221144165,1409944842,1701257327,543236212,1668506980,1953524082,544108393,1629513327,1634296864,543649644,980971362,168626701,1226845472,1752440942,1768169573,1735355489,2020565536,1751326764,1702063983,1701344288,1818576928,1969365104,1852798068,218762542,225595146,822742282,1699946542,1952671084,1701344288,1818576928,1969365104,1852798068,839519534,1917853742,544437093,1864380742,1313153138,777143636,168626701,1954047310,1886352416,221930345,538976266,1934958626,543649385,1886152008,1953841696,1936617332,1216225824,2117218353,168640576,1210124813,556937265,1426722112,1735289203,1818576928,1967267952,1852798068,218762611,1818576906,1768169584,1634496627,1629516665,2003792416,543584032,1835888483,543452769,1953789282,544435823,1948284001,1646290280,1869902959,1718558829,1667327264,1699225704,1998614636,1868852841,168636023,1867778573,538976288,538976288,538976288,538976288,538976288,538976288,538976288,1869103904,543519599,1936287860,1953849888,225341300,539831562,538976288,538976288,538976288,538976288,538976288,538976288,538976288,757935405,757935405,757935405,757935405,168635693,1936682051,1752440933,1969430629,1852142194,538976372,538976288,538976288,1126178848]},{"sector":6,"data":[1702063980,1699219981,1998614636,1868852841,218762615,1952797194,544109173,1948282740,1881171304,1769366898,544437615,1768976244,538976355,1801675074,168626701,543515987,1768693857,1864397939,1397563494,1397703725,1701335840,538995820,1226842144,2019910766,1699219981,1948282988,1667854447,218762611,1701139210,1814061344,544502633,1293969007,1329868115,1750278227,543976549,538976288,1937335627,1752369677,1668575855,1797289077,225671525,1191841034,1210086501,544238693,1965059695,1735289203,1818576928,538976368,538976288,1699225632,168652908,168626701,1954047310,1886352416,540697449,1934958626,543649385,1886152008,1852132640,1866670197,1851878765,572552036,808536190,1077968435,168626701,808536097,222306611,1769166090,1210083182,544238693,1970169165,1836008224,1684955501,218762611,1701336074,1819239968,1769434988,1814062958,544502633,1668506980,1700948338,1868767347,1851878765,1864397668,1752440942,1699225701,1830842476,980774501,168626701,1701080649,755633528,757935405,1917848077,1684633199,1629516645,1936288800,1718558836,760433952,542330692,1818585171,1869881452,1935894896,218762542,2036681482,1918988130,755633508,757935405,221064493,1936280586,1797288820,745765221,2036689696,1836016416,1634625890,1852795252,1851859059,1752375396,1668575855,1797289077,544438629,544567161,543519605,1752459639,760433952,542330692,1818585171,168636012,1866664461]},{"sector":7,"data":[1851878765,168653668,757935405,757935405,2017790477,1767992432,1629516654,1293970540,1329868115,1750278227,543976549,1835888483,1935961697,1750343726,1763734377,1919903342,1769234797,1763733103,1919885427,1768841575,543450490,1868784481,1852400754,1869881447,1701344288,1852140832,1763734389,1752637550,543712105,543516788,1835888483,1935961697,1886413088,779247973,1868113952,1633886325,1701257326,1752440948,1634934885,1763730797,1919903342,1769234797,1646292591,1702043769,1952671084,543649385,1868767329,1851878765,1851859044,1919950948,1769173861,1176528750,221129009,1342835978,1701015410,1701999972,755633523,757935405,757935405,1342836013,1769369458,544433508,1885697139,762929709,1885697139,1936615712,1668641396,1852795252,1868963955,1701847154,1919903346,1735289197,1935766560,1763734379,1397563502,1397703725,1701335840,221146220,1393167626,1819043176,1935753760,225665897,757935370,757935405,757935405,1342836013,1769369458,544433508,1763733089,1869771886,1952675172,544108393,1965059956,1735289203,760433952,542330692,1818585171,168636012,1934952973,543649385,1886152008,757926413,757935405,757935405,1917848077,1684633199,1629516645,1852383342,1685025396,1769235317,1948282479,1397563503,1397703725,1701335840,1210084460,779119717,1768444960,1936269427,1701344288,1718511904,1634562671,1852795252,1970239776,1701994784,1769174304,1914726254,1952999273,2003791392]},{"sector":8,"data":[218762542,1868710154,1394635893,1819043176,757926413,757935405,757935405,1141509421,1819308905,544438625,2037411683,1751607666,1851859060,1702240356,1869181810,1852383342,1836216166,1869182049,1650532462,544503151,1143821133,1394627407,1819043176,218762542,2019905034,1869881460,979593584,1210065440,1948284783,1699487855,544109153,1970233921,1397563508,1397703725,1701335840,572550252,808536190,1077968436,168626701,808536097,222306612,2003781642,544175136,1918985548,1648435310,544503151,1143821133,1394627407,1819043176,168626701,1819045702,1852405615,1918967911,1702043749,1634887030,1635197036,1948283769,1701585007,544109153,1701998445,1868718368,1293972597,1329868115,1750278227,980184165,168626701,2032166473,1998615919,544501345,538976288,538976288,538976288,538976288,538976288,1428168736,168650099,757935405,757935405,539831597,538976288,538976288,538976288,538976288,538976288,757080096,168635693,1953721929,544501345,1886152008,538976288,538976288,538976288,538976288,538976288,1411391520,1176528232,1701519409,218762617,544096522,1920233065,1668637807,1852795252,544175136,1143821133,1394627407,1819043176,538976288,543516756,1818585171,1631723628,1935894899,1836016416,1684955501,538970637,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,544108320,543516788,1886152008,1852140832,218762613,1702122250]},{"sector":9,"data":[2036477296,1702130477,1852383344,1970435187,1869182051,538997614,538976288,538976288,543516756,1668248144,1920296037,1663071077,1634561391,168649838,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,1864376352,1752440942,1699225701,1830842476,1081437797,218762560,1919896842,1852383333,1836216166,1869182049,757932142,1915582496,544433765,1836020326,1869770784,1835102823,1702127904,1851859053,1919361124,544241007,1210069318,225471589,554306826,959590692,168640545,1701998413,544108320,1835888451,543452769,1836020304,168653936,1868106253,1633886325,1953701998,544502369,1919950945,1634887535,2036473965,1887007776,543649385,543516788,1667332197,1919950964,1634887535,1768300653,1634624876,1629513069,1948279918,544105832,1936028272,1735289203,1414415648,539906629,1948280393,1713399144,543517801,1847620457,1763734639,1752440942,1969430629,1852142194,1768169588,1952671090,746156655,1970239776,1937075488,1919950964,1684366181,1752440933,1768300645,1634624876,1998611821,543716457,544437353,1886220131,1702126956,1952542752,1495281256,1663071599,1965059681,1948280179,1293968744,1329868115,1768169555,1952671090,544830063,1684826487,1685217635,774381683,1851858990,690888804,544175136,1667592307,544826985,1752457584,168636019,2035550733,1629513072,1881176430,1835102817,1919251557,1868963955,1752440946,1919950949,1634887535,1717641325]},{"sector":10,"data":[544367988,543516788,1735357040,544039282,1701667182,1866866734,2019893362,1819307361,1948265573,1969299567,1634561908,1633905012,544828524,1852141679,1713398048,543517801,1852139639,1970239776,1635021600,2032170098,544372079,1954047348,1768187168,745697140,1887007776,1752440933,1634607205,1864394093,1870209126,1948283509,544503909,1953064037,1931965039,1869770784,1835102823,1818846752,1868963941,2003790956,1646290021,1752440953,1634607205,1864394093,1870209126,1948283509,544503909,1701603686,218762542,1919895050,1919905056,1852383333,1836216166,1869182049,1852776558,760433952,542330692,1835888483,1935961697,1684955424,1818851104,1918985060,539784036,543516019,543516788,1919251285,1193308967,1701079413,1684955424,1717916192,1852142181,1076782435,218762560,824451338,1075916851,1867319821,1864394098,1682251886,1919906921,168626701,1852139607,1970239776,1769304352,1682251892,1919906921,1870209068,1769414773,1914727532,1920300133,1869881454,760433952,542330692,1818585171,168636012,1868106253,1633886325,1886593134,1718182757,1752440953,1868963941,2003790956,543649385,1634886000,1702126957,1851859058,2004033636,1751348329,221934437,1527385354,1769104475,1564108150,1952542811,1768315752,1634624876,1566401901,1110399776,794501213,1528847687,542984239,1330523995,224217416,789187850,538976322,538976288,1869376577,1948283767,1965057384,1864394099,1869422694,1751347054]},{"sector":11,"data":[1701670770,1919120160,544105829,1752459639,168648992,538976288,538976288,1819239200,1730179695,1752195442,544433001,1685217635,789187886,538976327,538976288,1987015248,1936024681,1701344288,1935762976,1953719668,1685091616,543519841,1629513327,1095189280,1919120160,778986853,1211042317,538976288,1142956064,1819308905,544438625,543516788,1769496941,544044397,1651340654,1864397413,1768693862,544433518,1936945008,1701601897,538970637,538976288,1713381408,2032169583,544372079,1701995379,221146725,1330523914,538986824,1816207392,1937207148,1701344288,1702065440,543584032,1668489313,1852138866,1953068832,1953853288,1734961184,1852386664,1936614772,226063465,538976266,538976288,1970479136,1919905904,168636020,1866861069,1852383346,1836216166,1869182049,1650532462,544503151,1852404597,1397563495,1397703725,1768178976,745697140,1701147424,1701344288,1702057248,544417650,1684632903,1851859045,1699881060,1701995878,778396526,168640576,606145037,556872497,1292504384,543519343,1293971055,1329868115,1112612947,1667855201,168626701,1852139607,1970239776,1769304352,1397563508,1397703725,1631736096,744712563,1970239776,1818851104,1701978220,1852994932,544175136,1143821133,1394627407,1819043176,218762542,1970231562,1851876128,1701868320,2036754787,1701344288,1819239968,1769434988,1881171822,1835102817,1919251557,1684955424,1769435936,1701340020,168639091,794495501]},{"sector":12,"data":[1528847682,1229210927,1565675348,1194285856,794501213,1528847688,1564885581,1311726368,1565083727,794516256,1565414738,538970637,1683693600,1702259058,1885035834,1567126625,1701603686,1701667182,168626701,1110379021,538976288,538976288,538976288,538976288,1869376577,1948283767,1965057384,1864394099,1869422694,1751347054,1701670770,1919120160,544105829,1752459639,168648992,538976288,538976288,538976288,538976288,1868767264,544370540,1885434471,1935894888,1918984992,168636004,1229210927,542265172,538976288,538976288,1951604768,1937011297,760433952,542330692,1953064005,221147759,541536010,538976288,538976288,538976288,1344282656,1769369458,544433508,543516788,1953718630,544502629,1633972341,1864394100,543236198,222381891,538976266,538976288,538976288,538976288,1931485216,1701147235,168636014,538986543,538976288,538976288,538976288,1766072352,1634496627,1948283769,1830839656,1835628641,1847618933,1700949365,1718558834,1852402720,168653669,538976288,538976288,538976288,538976288,1869619232,1651078003,1713399148,2032169583,544372079,1701995379,221146725,1112354570,538976326,538976288,538976288,1126178848,1702260335,544437362,543516788,1818850658,1852386676,1853187616,1869182051,1293972334,740566091,538970637,538976288,538976288,538976288,538976288,608455501,1447239724,1629498451,1126196334,1948271702,1263345775,1178750291,1293954084]},{"sector":13,"data":[1112360011,220996678,538976266,538976288,538976288,538976288,1126178848,1112363862,1629498438,1126196334,1112364612,1914711110,1701868389,1986622563,779709541,1311705613,541673551,538976288,538976288,538976288,1869376577,1948283767,1965057384,1864394099,543236198,1701995379,1998614117,543716457,1751607656,537529645,538976288,538976288,538976288,538976288,1953392928,1769172581,1931508084,1869639797,221148274,1431449354,538976334,538976288,538976288,1377837088,544435829,1919950945,1634887535,1768300653,1763730796,1112612974,1667855201,1717920288,224752239,538976266,538976288,538976288,538976288,1679826976,1819308905,1852406113,1953046631,1527385390,1986622052,1532836453,1752457584,1818846813,1835101797,537529701,538976288,538976288,538976288,538976288,1701860128,1768319331,1948283749,1881171304,1919381362,1713401185,543517801,1814065012,543449455,1914729071,221146741,1175063818,1763734127,1919903342,1769234797,1629515375,1953853282,1769174304,1293969262,1329868115,1112612947,1667855201,1702043692,1752440933,1852776549,1701734764,760433952,542330692,1935753809,1210082153,779119717,168640576,606145037,556938033,1292504384,543519343,1142976111,543912809,2037411651,168626701,544567129,544104803,1667592307,544826985,543516788,1819045734,1852405615,1634738279,1701667186,1936876916,1684955424,1769435936,1701340020,168639091,1683687949,1702259058]},{"sector":14,"data":[1528838705,1986622052,1564095077,794501213,1528847665,224220719,1678380298,1702259058,538982961,1701860128,1768319331,1948283749,1931502952,1668445551,1919164517,778401385,1919158797,845510249,538976314,1667592275,1701406313,1752440947,1701060709,1852404851,1869182049,1919164526,778401385,825166349,538976288,1126178848,1701408879,1852776563,1948285292,1713399144,1953722985,1684632352,1718558821,1701344288,1936286752,168636011,538990127,538976288,1919243808,1701406313,1752440947,1948284001,1663067496,544829551,1663071081,1701999215,221148259,1409944842,1948280168,1679847287,1936421737,1937075488,1700929652,1701344288,1835103008,2037653605,221144432,1970231562,2036428064,1701868320,2036754787,1701344288,1835103008,1919164517,543520361,544370534,1986622052,1629499749,1679844462,1702259058,168635954,1699875341,1702125932,1917853796,1684366191,224752245,538976266,1866670114,1852406128,1766203495,544433516,826900002,226374449,1175063818,1830842991,543519343,1868983913,1952542066,544108393,1970233953,1752440948,1634738277,1701667186,1936876916,1684955424,1769435936,1701340020,1931488371,1948280165,1428186472,661808499,1967595635,543515753,543452769,1701209426,1668179314,1077948005,168626701,858858529,222306611,1919896842,1852776549,1667318304,544241003,1702390086,1766072420,168651635,1868106253,1633886325,1886593134,1718182757,1752440953,1868963941,2003790956]},{"sector":15,"data":[543649385,1634886000,1702126957,1629516658,1931502702,1668573559,980641128,168626701,1920298867,1679844707,1769239397,1769234798,1680698991,1702259058,794501178,1528847699,542985519,1564553051,1177508640,1769167674,1566401914,538970637,1143954208,1952539706,1412389733,1835627578,542989669,1531719515,1919179578,979727977,1634753373,1818060916,1768318831,1566401900,168626701,1920298867,538994019,538976288,538976288,538976288,1667592275,1701406313,1752440947,1768300645,745760108,1769104416,539780470,1679848047,1667592809,2037542772,538970637,538976288,538976288,538976288,538976288,1869881376,1667326496,1886724203,1678380334,1769239397,1769234798,1680698991,1702259058,1394614330,1768121712,1936025958,1701344288,1769104416,1948280182,1634934895,1646290294,1969972065,537529712,538976288,538976288,538976288,538976288,1663049760,1701408879,1852776563,221146996,542322442,538976288,538976288,538976288,538976288,1667318304,1965060971,1868767344,1852142702,1864397684,1970479206,1919509602,1869898597,1936025970,789187886,538976333,538976288,538976288,538976288,1109401632,1936417633,544240928,2037149295,1818846752,1948283749,544498024,1702257000,1634231072,1684367214,538970637,538976288,538976288,538976288,538976288,1769152544,543515502,543516788,1953718636,1667326496,779122027,1093601805,538976288,538976288,538976288,538976288,1681989664,1646293860]},{"sector":16,"data":[1969972065,1768300656,544433516,1629515636,2019893358,1769239401,1646290798,1969972065,537529712,538976288,538976288,538976288,538976288,1679826976,778793833,1177487885,1769167674,542991738,538976288,538976288,1884495904,1718182757,544433513,543516788,1702521203,1852383276,1818848032,1954112111,539784037,1948280431,168650088,538976288,538976288,538976288,538976288,538976288,1802725732,544175136,1713399138,1634562671,1684370548,789187886,1633958468,538994036,538976288,538976288,1109401632,1936417633,544240928,2037149295,1701344288,1818846752,1663071077,1735287144,1931502693,1701015145,538970637,538976288,538976288,538976288,538976288,1752440864,1886593125,1718182757,543450473,1702125924,789187886,1769224788,538994029,538976288,538976288,1109401632,1936417633,544240928,2037149295,1701344288,1818846752,1663071077,1735287144,1931502693,1701015145,538970637,538976288,538976288,538976288,538976288,1752440864,1886593125,1718182757,543450473,1701669236,789187886,1530551116,1986622052,1532836453,1752457584,1735355485,1701603686,168648029,538976288,538976288,538976288,538976288,538976288,1634038339,544433524,1869357153,1852121191,544830068,1914728308,1919902565,1633820772,1886743395,538970637,538976288,538976288,538976288,538976288,1886330912,1952543333,778989417,168626701,1634493778,543450484,1668248144,1920296037,537529701,539107360]},{"sector":17,"data":[1801675074,543649385,1176531029,1936026729,1233003040,2117416497,168626701,544370502,1701998445,1718511904,1634562671,1852795252,1868718368,1948284021,1881171304,1835102817,1919251557,1851859059,2004033636,1751348329,539784037,543516019,543516788,1919251285,1193308967,1701079413,1684955424,1717916192,1852142181,1076782435,218762560,824451338,1075917875,1867319821,1864394098,1699881070,1919906931,1766203493,543450488,1802725700,168626701,544567129,544104803,1667592307,544826985,543516788,1819045734,1852405615,1634738279,1701667186,1936876916,1684955424,1769435936,1701340020,168639091,1919158797,828733033,1919164474,845510249,1634753338,1717266548,1852140649,1566928225,794501213,1528847699,542986287,977416027,1702125924,168632413,1528832032,1681539375,1566930017,1160731424,1835627578,1528847717,1949977647,1566928233,1294949152,794501213,1528847694,224216111,1678380298,1702259058,538982961,538976288,538976288,1667592275,1701406313,1752440947,1919164517,543520361,1919248503,1752440933,1633820773,1886743395,538970637,538976288,538976288,538976288,1713381408,1936026729,1701994784,1869902624,778331506,1919158797,845510249,538976314,538976288,1394614304,1768121712,1936025958,1701344288,1936024608,1634625908,1852795252,1769104416,221144438,1952542730,1768315752,1634624876,542991725,1884495904,1718182757,544433513,543516788,1633906540,1852795252,1684955424]}],[{"sector":1,"data":[544370479,1701603686,539587368,168652660,538976288,538976288,538976288,538976288,1936028192,1701998452,789187886,538976339,538976288,538976288,538976288,1953719634,1936028271,1818846752,1763734373,1818304622,1768169580,1952671090,1701409391,1852383347,538970637,538976288,538976288,538976288,1948262432,1881171304,778597473,1345260045,538976288,538976288,538976288,1344282656,1886220146,1646293876,1919903333,1701978213,1919906931,543649385,1684104562,1819176749,1768300665,225666412,538976266,538976288,538976288,538976288,1919885344,1818846752,1663071077,1735287144,1931502693,1701015145,1701344288,1935764512,1633820788,1886743395,789187886,538976322,538976288,538976288,538976288,1953719634,1936028271,1819176736,1768300665,544433516,1952540788,1634231072,1684367214,544108320,168653423,538976288,538976288,538976288,538976288,1717920288,543519343,543516788,1667592307,1701406313,1633951844,221144436,541142794,538976288,538976288,538976288,1699880992,1919906931,1864397669,544828526,1701603686,1752440947,1663071329,1735287144,1864393829,1919885422,538970637,538976288,538976288,538976288,1629495328,1919251558,1701344288,1701868320,1768319331,1679844453,778400865,1160710669,538976288,538976288,538976288,1377837088,1869902693,544433522,2037149295,1818846752,1814066021,544502625,1851877475,543450471,1819435365,225600873,538976266,538976288]},{"sector":2,"data":[538976288,538976288,1752440864,1948282465,1931502952,1768121712,1684367718,1835627552,168636005,538987567,538976288,538976288,538976288,1936020000,1701998452,1852776563,1713404268,1936026729,1935764512,1751326836,1701277281,1634476132,225600884,538976266,538976288,538976288,538976288,1752440864,1948282465,1931502952,1768121712,1684367718,1835627552,168636005,538987823,538976288,538976288,538976288,1936020000,1701998452,1852776563,1713404268,1936026729,1634231072,1684367214,1852404512,1948280163,1814062440,225735521,538976266,538976288,538976288,538976288,1633820704,1886743395,789187886,538976334,538976288,538976288,538976288,1953719634,1936028271,1819176736,1768300665,544433516,1952540788,544173600,1735290732,1696625253,1953720696,225341216,538976266,538976288,538976288,538976288,1752440864,1701060709,1852404851,1869182049,1768169582,221145971,541339402,538976288,538976288,538976288,1766072352,1634496627,1646293881,1969972065,1768300656,544433516,1952540788,1952541984,168650851,538976288,538976288,538976288,538976288,1701868320,1768319331,1769234787,779316847,168626701,1634493778,543450484,1668248144,1920296037,537529701,539107360,1953719634,1852404335,1631723623,1684368227,544232736,1701603654,2116165747,909521225,218762622,1919895050,1919905056,1852383333,1836216166,1869182049,1650532462,544503151,543516788,1634886000,1702126957]},{"sector":3,"data":[1629516658,1931502702,1668573559,745760104,1701147424,1701344288,1702057248,544417650,1684632903,1851859045,1699881060,1701995878,778396526,168640576,606145037,557134641,1292504384,543519343,1176530543,1634562671,1766072436,168651635,1868106253,1633886325,1886593134,1718182757,1752440953,1868963941,2003790956,543649385,1634886000,1702126957,1629516658,1931502702,1668573559,980641128,168626701,1986622052,1528838757,979064367,1700946284,542989676,1565601627,1429166880,794501213,1769159238,542991738,541208411,1395597436,1678380381,1702259058,794501178,1815763798,1818583649,1528847709,542986543,1565863771,1412389664,1634890810,544435043,1933200943,1869898597,224228210,538976266,541208411,1395597436,1678380381,1702259058,794501178,1815763798,1818583649,1528847709,542986543,1565863771,825187104,794501213,1528847668,2082488879,1565732640,1919158797,979727977,1362058016,794501213,1528847701,542978351,1563701083,942627616,794501213,545005634,224219951,789187850,1815763798,1818583649,1394614365,1768121712,1936025958,1701344288,1819244064,543518069,1700946284,168636012,538988847,538976288,538976288,1718773072,1936552559,1897947424,1801677173,1919903264,779379053,1429146125,538976288,538976288,1699749920,1919903346,1629516653,1853169774,1684959075,1869182057,543973742,1836216166,221148257,977678090,1702521203,538976288,1701860128,1768319331,1948283749]},{"sector":4,"data":[1931502952,543521385,1948280431,1713399144,1886416748,1768169593,1948281715,1868963951,1952542066,537529644,538976288,538976288,1763713056,1768628334,2036494188,544433524,1668641576,1935745128,808858400,842473516,824192048,539767342,875834929,168635945,538985007,538976288,538976288,1869376577,1702125923,1886593139,543515489,1948282479,1713399144,1634562671,1684370548,1936286752,1868963947,2037588082,1835365491,538970637,538976288,538976288,1768300576,779314540,1395591693,538976288,538976288,1866670112,1936025968,1937339168,544040308,1701603686,1869881459,1701344288,1919903264,1953784173,1679844453,778793833,1412368909,1634890810,544435043,1884495904,1718182757,544433513,543516788,1651340654,1864397413,1920213094,1936417633,1919250464,1936286752,1769152619,221144420,978202378,1952671091,544436847,1701860128,1768319331,1948283749,1847616872,1700949365,1718558834,1667592992,1936879476,1919250464,1634890784,221145955,540094218,538976288,538976288,1919895072,1937006957,1931501856,1818717801,1769152613,1864394084,543236198,1886350438,1679849840,778793833,875497997,538976288,538976288,1866866720,1952542066,543236211,892481077,1668180269,909320296,1713392432,1886416748,1768169593,1763732339,224469102,538976266,538976288,538976288,1734961184,1701064040,1953067886,1919164537,778401385,942606861,538976288,538976288,1866866720,1952542066,1768235123]},{"sector":5,"data":[544499815,1952671091,544436847,544367984,1667330676,168636011,1699875341,1702125932,1917853796,1684366191,224752245,538976266,1866866722,1952542066,1735289204,1869366816,544829552,1802725700,2116165747,875966793,218762622,1919895050,1919905056,1852383333,1836216166,1869182049,1650532462,544503151,543516788,1634886000,1702126957,1629516658,1931502702,1668573559,745760104,1701147424,1701344288,1702057248,544417650,1684632903,1851859045,1699881060,1701995878,778396526,168640576,606145037,557200177,1292504384,543519343,1361079919,1801677173,1919895072,225730925,1225395466,1752440934,1768169573,1746955123,1629516641,1634038380,1646295396,544105829,1836216166,1702130785,1851859044,1701716068,544433253,1646292852,1868963941,1952542066,543450484,1767991137,1361063022,1801677173,1919895072,544498029,1830843241,543712117,1953718630,1948283493,544104808,1836216134,221148257,1493830922,1663071599,1931505249,1768121712,1948285286,1713399144,1869376623,1735289207,1918988320,1952804193,544436837,543452769,1953068915,1936025699,218762554,1769104394,540697974,1532374875,1650551866,1566403685,1429166880,794501213,545005634,224219951,789187850,1815763798,1818583649,1277173853,1818583649,1752440947,1768169573,1629514611,1886593139,1718182757,778331497,1429146125,538976288,538976288,1699749920,1919903346,1629516653,1853169774,1684959075,1869182057,543973742,1836216166]},{"sector":6,"data":[221148257,541208330,538976288,538976288,1819033888,1952539503,1931506533,1701011824,544108320,543516788,1836216166,1702130785,1768169572,1713400691,1931506287,1702130553,537529709,538976288,538976288,1713381408,1936026729,789187886,538976339,538976288,1126178848,1701408879,2037588083,1835365491,1818846752,1948283749,1752440943,1868963941,1952542066,543450484,1802725732,218762542,1818579466,1684370529,1869762592,1969513827,168650098,572530720,1919895072,1953784173,543649385,1886350406,1142978928,1936421737,1233003040,2117350961,168626701,544370502,1701998445,1718511904,1634562671,1852795252,1868718368,1948284021,1881171304,1835102817,1919251557,1851859059,2004033636,1751348329,539784037,543516019,543516788,1919251285,1193308967,1701079413,1684955424,1717916192,1852142181,1076782435,218762560,824451338,1075918643,1867319821,1864394098,1851072622,1701602660,168650100,1868106253,1633886325,1886593134,1718182757,1752440953,1868963941,2003790956,543649385,1634886000,1702126957,1629516658,1931502702,1668573559,980641128,168626701,1919179611,979727977,1634753373,1717397620,1852140649,1566928225,1278171936,1565807433,1143954208,545005652,1397703727,794501213,1565281345,168626701,1397312559,1277173844,1937011561,1701344288,1818584096,1684370533,1818846752,1629516645,1818845558,1701601889,544175136,1914725730,1987011429,1684370021,789187886,538989636,1934958624]},{"sector":7,"data":[1864397669,544828526,543516788,1701602660,1852795252,1634890797,1852402531,1768300647,221144428,1329868554,538976339,1936028501,1819176736,1752440953,1397563493,1397703725,1919509536,1869898597,221149554,1279340298,538976332,1701080661,1702126956,1818304627,1886593132,1718182757,543450473,1701603686,1769414771,1970235508,1919950964,1953525103,778530409,168626701,1634493778,543450484,1668248144,1920296037,537529701,539107360,1953719634,1852404335,1698963559,1702126956,1766203492,544433516,826900002,226374965,1175063818,1830842991,543519343,1868983913,1952542066,544108393,1970233953,1752440948,1634738277,1701667186,1936876916,1684955424,1769435936,1701340020,1931488371,1948280165,1428186472,661808499,1967595635,543515753,543452769,1701209426,1668179314,168636005,1866861069,1869422706,1763730802,1919903342,1769234797,1629515375,1953853282,1701344288,1347245088,1918989856,1818386793,1931488357,1126196581,1953522024,824210021,572533810,1769238607,1769630061,1495295854,544372079,1953724755,573336933,544106784,543516788,1919251285,1193308967,1701079413,1684955424,1717916192,1852142181,221144419,1426722058,1279607886,541414469,539583272,2037411651,1751607666,959520884,825046840,741423417,1852130080,1818325620,1768902688,1394635886,2004117103,744845921,1668172064,222314542,168430858,1868106253,1633886325,1886593134,1718182757,1752440953,1868963941,2003790956]},{"sector":8,"data":[151116,3801088,4718662,78,1953064037,1886152750,0,0,4587520,23199744,48431104,57868288,234881024,301203456,0,0,1172963328,301203456,309198848,332660736,346292224,369426432,384434176,404160512,413204480,442957824,460849152,467730432,477495296,481296384,488767488,493092864,506462208,515571712,532086784,545980416,558825472,562561024,567279616,573636608,585105408,591921152,595329024,602144768,607846400,610467840,635109376,650444800,676265984,706019328,736755712,777322496,830341120,858652672,886177792,910688256,925040640,939524096,958922752,971177984,979042304,1001127936,1012072448,1021378560,1028587520,1031340032,1035272192,1040646144,1043660800,1048903680,1052377088,1057030144,1066139648,1068826624,1075773440,1081212928,1086455808,1097334784,1101791232,1107427328,1116471296,1120796672,1124335616,1132789760,1146552320,1155334144,1160708096,1172963328,959250432,1744844337,828862510,825830656,959250487,754987568,3420217,942684461,809053440,959250487,754989360,3354937,942945069,1714318592,1697541376,1932422400,1865313536,1747873024,926035200,841809973,754988599,3684146,959918637,942812416,841809972,754988600,3684402,959984173,959589632,841809969,754987065,3223603,875574061,808660224,858587187,754988594,3617331,892547885,858991872,858587190]},{"sector":9,"data":[754988851,892942649,960048384,754987577,859388217,960048384,1157642297,777275716,5066563,1414087749,1667444224,755003491,876165433,808594688,754988848,875638834,909257984,841809968,3486256,842019373,841809972,3617328,892351021,841809969,3355952,892351021,841809975,3225136,909128237,841809972,3290416,909128237,841809976,3159856,925905453,841809969,3290928,909128237,841809975,3553072,808595757,925969664,841809969,754987828,3421490,875835949,875703552,841809973,754989365,3158322,959459885,808594688,754988343,3552050,909128237,1882089472,9319,16777216,50332160,83887104,117442048,150996992,150997248,150997248,184551936,218106880,251661824,285216768,318771712,352326656,385881600,419436544,452991488,486546432,536878336,553656576,587211264,738208768,754985984,788540928,822095872,855650816,872428544,905983232,939538176,973093120,1006648064,1040203008,1073757952,1107312896,1124090368,1157645312,151012608,1885696548,1701011820,1412695155,889480552,73754708,1702057269,1750349572,1161299301,73950049,1970231608,960051460,960037939,956576825,73754708,1702057273,1819033862,57898863,91515969,1869771329,1631716471,1107913571,1852401509,1735289198,1851867910,107767139,1851877443,1124689255,1634885992,1919251555,1701331717,1124494179,1936682856,1816331621,91382117,1667853379]},{"sector":10,"data":[1816332651,1868722281,107246177,1869377347,1124561778,1634561391,1124623470,1634561391,108225646,1886220099,1124626785,1819307375,140866661,1886220099,1919251573,1886339844,1866664313,1769109872,192178279,1886547779,1952543343,74346345,1819440195,1920287495,1953391986,1953841923,1397703683,1818575875,1818575878,107312229,1818323268,1141139311,125006441,1886611780,75063660,1853321028,1769096198,74671478,1414087749,1768178950,57831284,90467909,1702129221,1917126002,57831282,73626437,1953069125,1818838532,1766196325,1174758510,1684960623,1952794375,1735289204,1347176451,1818576900,1866990704,1224959341,1225159534,1919251310,1850281332,1852990836,1869182049,141320558,1652122955,1685217647,2036681476,1347159155,1275343188,74740577,1952867660,1852394500,1867254117,1668441463,73757537,1701536077,1852132612,1699546485,158561646,1919117645,1718580079,1867318388,1292395894,1835365999,74739301,1701667150,1953451523,1819168516,1884226681,1325887077,1869182064,1342468974,90531681,1953718608,1632633957,1342466164,74335335,1884645200,1634488325,1342530915,1936942450,1769099269,1342600302,1953393010,1699874419,1952540016,1734955525,1392800872,107312737,1701995347,1392930405,1819243107,1666386284,1819045746,107441769,1918985555,1392928867,1667591269,1699940468,1952671084,1393124453,1667591269,1852795252,1952797443,1768444677,1392997478,1953653108,1392862309,1936748404]},{"sector":11,"data":[1769427718,57172852,73556308,1954047316,1701336067,1701336068,1750336622,1409971049,1701077362,1802658157,1884620147,57828720,90534741,1852404565,1767244903,1459910501,91513192,1819240535,1767310437,1459906676,140800623,1685221207,1918989395,1970231555,1868718341,1627809142,1936024419,1667303027,1852795252,1952669960,1952544361,1734411621,158230881,1701996385,1852140901,1818297204,1818298220,1684104562,1818297465,1627615091,1627874414,1752461166,1627615845,1627617646,1627940210,1667331188,174351720,1702130785,1769238637,1628006254,1818845558,1701601889,1918984707,1918984708,1700922483,1644588645,1919903333,1700923749,1852729703,90664553,1869374818,1700923255,1701148532,1818363246,107703905,1851878498,1644524395,1801678700,1869570569,1918987627,1644393323,1644525679,1936029807,1953849862,57569140,107897187,1668178275,1661365349,1869508193,1633879156,1661363571,1735287144,1751320421,1701277281,1751320420,1701277281,1751320947,1667330657,175269236,1918986339,1702126433,1661301618,1801676136,1869112070,90534767,1936681059,1818428773,90923881,1936682083,1868760421,108162924,1869377379,1661367154,1836412015,1868762222,1852400237,1869182049,1661432686,1634561391,1661494382,1634561391,141780078,1886220131,1919251573,1852793609,1952671086,1661494373,1635020399,141782633,1953394531,1937010277,1852793608,1970170228,1868760165,1661434224,1769566319,1661560686,1920561263]},{"sector":12,"data":[1952999273,1919902471,1952671090,1919902473,1952671090,1661368684,1952540018,1969424229,1852142194,1969423988,1919906674,1952801800,1702126437,1701054052,1701013878,1634296838,157773676,1717987684,1852142181,1768163700,1952671090,191786857,1701996900,1919906915,158557545,1701996900,1919906915,1768163193,1918985075,1768162404,1678207859,1819308905,1678276961,1819308905,141785441,1969450852,1953391981,1701798916,1868825715,1678077559,1702259058,1768187140,1684342644,1852404841,1684342375,1919906921,1717986566,108290917,1752459621,1694724709,1694852206,1919251566,1953391879,1684370021,1953391878,191197801,1769369189,1835954034,91516517,1869771365,2019886962,1685417059,2019887205,1953850213,1695048805,1953720696,73887337,1953069157,1818846724,1768294501,1634624876,1711629677,1936026729,1852401156,1768293732,108295026,1886350438,1711896944,1869376623,1735289207,1919903235,1869768196,1634207853,1635214450,1745053042,1745122145,73758305,1886152040,1919248388,1768426341,1768712295,1702127719,1852377444,1685417059,191327849,1868983913,1952542066,107900777,1702063721,1761899634,74413166,1835365481,2036689667,2036689672,1918988130,1701512292,1795781497,1953724773,1701539698,2036689674,1869771891,74671467,1953718636,1634036741,1812227446,108291685,1953785196,1812230757,90533481,1701734764,1768686707,1812231283,107241839,1684107116,1812423781,1952539503,1829004389,90532705]},{"sector":13,"data":[1668571501,1634535272,1701340020,1634535283,1970104696,1634534253,1701643897,2037542765,1852140804,1701643637,125007214,1768845165,175271796,1869508461,1869768803,1829070189,1702065519,1987013892,1131284325,1735287144,1148061541,1667855973,1148061029,141259625,1936278638,2036427888,1766223365,1846043758,1953785159,90664553,1818577006,1231947632,1919251310,1265502580,1868724581,90468961,1701859182,1332610158,1845851253,1752457552,1917873670,91516521,1986089838,1433273957,1735289203,1835101700,1634600293,90465645,1702258030,1701708658,1701708919,1845720184,1845916783,1700949365,1668221042,1920103779,1862493285,1862690158,1852402798,1852769381,1862564204,158229872,1919250543,1852404833,1886324327,1852795252,1953525511,1936617321,1752461061,1862496869,1879340149,108294753,1953718640,1879336037,90731617,1667590512,1819280741,90530657,1852403568,1869612916,1702129257,1869613170,1769236851,1879600751,1769173871,90532962,1936028272,1919944819,1869182565,1879733109,1769366898,1819506031,1919944057,125070953,1852404336,108160372,1852404336,1879602036,1919381362,192114017,1668183408,1952544116,74346345,1684104562,1650815494,158625647,1868785010,2053729895,1701971557,1701016932,1734701578,1702130537,124020082,1634493810,124020084,1701602674,107311969,1634559346,1913024105,1987013989,1701971557,1952540016,1885696519,1701011820,1885696523,1701011820,1953391981,1952805382]},{"sector":14,"data":[107901557,1769366898,1912960869,1952999273,1986097924,1634927973,107242870,1769365875,1929799534,1701147235,1702037102,1751347809,1634038536,1701340018,1702037875,1751347809,124218985,1952671091,57569129,107308403,1701602675,1929933923,1667591269,157574516,1936614771,1986622569,1702036325,1702037620,1852404852,1929737063,1701015145,2053731076,1869809765,1635218534,1929799026,1701011824,1886586739,1634296677,1886586988,1718182757,1930257257,1768121712,1633904998,1852795252,1701868297,1768319331,1929733221,1953653108,1635021575,1684370546,1635021576,1852404850,1953695079,74214505,1886352499,1920234246,124218985,1769108595,208889710,1684174195,1667592809,2037542772,1651864327,1952671082,1668641540,1970472808,1919905904,1970472052,1930061170,1869771381,1701080693,2037581412,1835365491,1937339143,1936549236,1650553859,1918989318,74736999,1954047348,1634235396,1752433524,1752433765,1946447205,74343784,1936287860,1835627524,1869874533,107178352,1768976244,1946776419,1701077362,1802658157,1634890762,1634559332,74673010,1701869940,1668183305,1735287144,1963353189,1970366830,1853162853,57436532,73757557,1684370293,1769174277,1980196718,1769173605,1996779119,57962081,74670455,1852139639,1701345029,1996776818,107768937,1684957559,1996781423,107508841,1752459639,1996975721,1869116521,1996780661,90468975,1685221239,1920402803,56980585,74805113,1920298873,-993737725]},{"sector":15,"data":[7209172,2490476,-2140405748,1179676,1474603,1736751,-2146009076,2228260,-2146926494,4620365,-2147418068,3276856,3571790,-2142535661,4063300,4358205,-2145681249,6979646,-2134638516,5636196,-2143354796,6193405,-2137194404,6455422,-2136375071,-2144010136,-2139914094,7766048,-2147352460,13795328,9830568,-2140929920,9568404,9044108,-2132246308,-2131230576,-2146991956,10649656,-2144862052,-2138963808,10911778,-2147123063,11403448,11698275,11960380,-2142732069,12714188,-2138898240,13271221,-2135031608,-2130739112,-2140340016,-2146074540,30540392,19005856,-2141126432,15335680,-2144075544,15630403,15892548,16154749,16679138,-2136145668,-2137620282,-2145976060,18743584,17957140,-2137849584,-2131459851,18481436,-2133819232,-2145025896,22970378,19530076,21397758,20578628,20316472,-2133294959,21135602,-2136866496,-2134540084,22446174,-2136080052,22151508,-2131066714,22708375,-2141552412,23232691,26640486,25297284,24248696,-2138046096,24543462,-2132049684,25035136,-2134277980,-2141880125,25821588,26378369,-2136669808,-2135981880,26902708,27164721,-2145550305,27656656,28475506,-2140733012,-2146565712,30048259,-2143223368,-2142174788,29753800,-2138111548,-2136309551,30310568,-2144894764,37388399,31064608,32931941,31588848,32145527,-2141453848,32407674,-2136899401,-2144140812,35029005,33423872,-2142207958]},{"sector":16,"data":[33948176,34504927,-2135948788,-2141159242,-2132147692,35553520,-2139160036,-2145157092,-2140274140,37093944,-2138439124,36831796,-2135260969,-2139783086,37912601,-2140601792,40271918,38666836,-2140470708,38961228,-2143846223,39715424,-2141650340,-2142666743,-2143616412,-2145746777,47842012,43647644,-2143681932,41550460,-2144960482,42336908,-2132475260,42631390,-2137751399,-2133261680,43385496,-2135326514,-2145877923,47317720,45220544,44696236,-2133688181,-2138766672,45514875,46039189,-2137128260,-2141224766,46531280,47087834,-2133916980,-2141749116,47611974,-2145091478,-2146140044,52822856,48628472,49446956,49152752,-2134867855,49709097,-2143911888,51249952,50463496,50757643,-2138668868,-2142633204,52330565,51774232,-2133491648,-2141519076,-2134802208,-2145320156,54952019,53609280,-2146303184,53903375,54427766,-2139618500,-2134933418,-2140142780,-2146336764,65143792,60687304,56492924,-2135424168,-2138635428,57573623,57017192,-2131853061,-2131164308,58097853,-2130967692,58360041,-2131525386,-2144205952,59376528,-2132606072,59670765,-2135195506,60162968,-2133622630,-2138242148,63340765,61211564,61505741,-2132311940,62260156,-2136800332,62554315,-2134212430,-2138569792,-2138307644,-2142797653,63833040,-2143125447,64881632,-2131688488,-2131819556,-2147057508,65437817,65962029,-2140666900,-2139062193,32784,1332740348,-65573462,-1934669642]},{"sector":17,"data":[418942822,192955914,-539412364,323914771,-784693223,1208026111,-260013360,-387007790,666809201,1716305176,-812705541,117351321,94474498,1517048344,-570444392,236195342,1950164777,-1060296526,880708429,-1210547124,792867782,-532680186,772614240,-2108671854,-1065401200,540299968,-1809631067,66289838,1217372010,961222426,942957354,-544691441,547701779,1180111482,1838078598,1930714716,1192692570,-349037347,-1430257559,-167624710,-377568711,-736957678,-1577293565,294708507,648426823,-594251127,-238433052,317281939,1536680424,12896583,974961373,1827365839,1192300685,31405108,-1059771082,-106880027,974839181,-774544072,545498019,-533104595,-162349303,-348722966,-511687128,-1076819899,-1014114246,-450848008,-1903038941,241730738,462245908,-560419341,1675432063,1506232439,168244290,-108181976,936232406,-1928970694,-556718638,1032106823,-650503780,-989384386,-2118586241,-1660003063,675013661,-1544806170,-579281256,476383011,-2011344954,1348057812,731992983,847834798,949384227,195182407,-586152807,56823027,-676681470,893756021,-1533641612,967360822,1970756873,-422764487,805050075,406578595,969425127,18909425,-915071004,-571332731,-74002625,1762521459,-1937771592,622962099,1790053960,-1223231256,1612411471,-125756204,-31710846,1869360776,1956998656,1128268461,413075184,-2119824627,1026843434,-251321720,-788499982,-607066038,-1982607535,-889703208,-1958348231,-2036098130]}]],[[{"sector":1,"data":[-1747751843,877883693,464750128,-994425670,2144993461,1694058024,1775063300,301812129,-1804406782,471698862,317319730,-1383121429,1161835698,-1245392868,-1092216953,-580212089,840719730,106981611,-1907992598,1870853262,2026774228,1956428346,876782967,-337626769,2115196002,1573317797,-383918842,-233075376,-253351934,-1724778800,-1161690116,-767837683,-1674110303,229733872,-847169578,1195877163,1186642444,-1942369778,-1458488418,782348916,1079460519,521601990,387608705,424921415,-1767975773,-949968585,1212366394,506997145,148018564,-113677797,961156706,1310133241,-1994696425,1210452069,-806943516,42972177,-2106284774,1970900494,-1854567308,-1423468872,-1370969819,536975785,-1883991585,-788498544,487629867,1014592404,-1665483922,-1479526075,1685860905,-1661808171,1141156233,2124575945,-1870310166,1291059985,-1852847214,581245111,1521198714,1830832215,-1998198872,-454612903,487480620,-1809486236,-1876715232,1178378003,-737133358,-1540631280,-881626096,-1394892629,909428109,-1958892663,965378172,-1534240634,230261628,-1368127679,1366704272,-1158552371,1871833326,-800587517,-964377726,1225718888,325487780,-441301001,1571908809,-2072874998,-457524306,2133468872,1417918481,564646101,-221176925,1953174172,-1805632777,744305393,294684028,328229385,-1500291849,-1694938102,-1896004034,1645051508,429071974,-2115404684,518539069,1305050633,1719781650,1132219471,-742807717,-192876279,-1371610809,1111397934]},{"sector":2,"data":[-1367078712,1124259712,1143439056,-1509225056,828582529,200587049,-409438680,-778737144,-867050520,-1544648355,-1168616293,1614395972,-2013961493,65113449,-1313975785,-1623474115,-1868230198,1006374162,-897463739,977123922,-370515911,1881402130,-330728156,416924813,-1975940480,470824802,-1557444335,244753363,-1302101074,-956077170,-1775356574,-388749996,-1581520054,1216355265,-1512532998,1614602287,-318444712,-757229537,203660080,277686118,-1596301187,283007039,-1988876836,1851810051,252158532,-1313825310,287295298,895002939,-116683441,1310339206,531957823,-1853759848,-526161124,1315072485,300781571,1891559099,1556916359,-1386877777,62103595,-1461647552,-456096506,983183765,-1737095135,1236025831,-1160584512,963255101,-1559727691,-1168584550,1614395972,-2013961493,65113449,-1313975785,-1623474115,-1868230198,1006374162,-897463739,977123922,-387293127,1212329211,-1924071888,1871740972,1565447371,-1546411221,-1850863978,37204526,-929115065,-2003743268,-1499946232,-1056870109,1035637268,-362792646,1256929000,92462227,-458822254,1383321649,-9862060,956373501,1884013811,-1132600678,1854090851,-633710450,-1136893926,460601190,1483969565,2114992926,-888942061,-581085246,47990829,-979446713,-486441175,660129538,-324797592,1633948527,-1561213812,1411099663,-1038357753,-1850833893,221015072,-515861304,381047804,-488417240,103511335,2141319593,1224984112,-1558781497,852499443,460623139,692792071]},{"sector":3,"data":[-1848604533,439636829,-1092174959,-861370512,1441574748,1403005869,-519618559,-796588376,1988798317,-1758861679,2119586348,-990346208,1196905460,543023808,-1319857376,-1620164597,-269742662,658548104,-2087177914,-1189330958,2011693316,75883330,1521165838,-1650636713,-1029171983,-1939984067,-637062813,766510655,238911520,-1603248920,1809171585,-1280840886,9773758,-803523782,858168380,-257721072,-373940118,538217987,117587080,732779795,1074074784,18477123,-1779665503,-1755669967,893727238,-124797260,-2075784680,1466057492,1829283666,234940072,1477473172,1194890682,-850273448,484804779,-1413233979,641356457,-1885973691,1825624537,-1229624477,-712966740,-111579797,967365845,-1557903030,1694559641,-1808933112,-1414300637,1971606441,1989987467,1358862418,1121579661,-1170552009,-1977333355,2129582670,-1625836612,53831837,616313270,-1924071724,927128050,-1782957365,655121741,1959702815,1945550963,-885570879,752814181,1129638634,2123280980,-2098740093,-896110716,-715538927,985835988,-724210374,-969227607,40865498,1202520861,-357545921,501306602,-498674660,-609787557,897705952,469332865,1403628467,931405188,-971196953,-1627816881,1119437111,837015411,-505937476,390874951,986127532,979837476,770772410,-2080866378,983403173,1036285044,862180900,-1414543885,839482413,-1541681316,23749150,-1021565599,-1142176221,-853540444,-80666367,349064868,-691783503,2086417507,1194575524,-2143820088]},{"sector":4,"data":[1581300282,-2089434764,1875940752,1244460384,307087815,295317961,-1156652337,773242907,139233174,964011488,1160566194,1961497130,2040543078,265132154,643955816,1288144238,-1372856055,-681212946,-515297013,-1995423254,709778509,-1159165553,1286357146,-266391614,9245744,77605653,2125087491,1080648209,1529133776,877838528,690532640,-1585021876,574439476,-760404410,-465486298,-1630169975,1607251868,277261862,740362111,1441585474,-1428920928,406826923,-114818611,-1681636530,-1306258531,857522919,-1287741884,388359220,826053212,-5837461,-1412835425,-460467832,1209000156,-1812887151,-1527051945,14853178,-1284201106,-1959171429,1242779313,1490066083,484268474,-1284213296,-1901577798,1305261924,514976138,-1671178719,806545665,904336141,1562533149,-1317679076,-826161286,-370657560,-1948972923,1636704800,226500758,-1896963109,47856232,589315328,-1300000466,-956076658,264304740,-581085302,353625094,1951306047,1388363903,-324788172,1036035716,-502848736,1964585783,130118698,2089045988,-1548315828,-1172206108,-1607746272,1094779157,84704501,1124745763,-285841056,-31222905,-1584332282,141698821,1967081475,-1644310051,758219764,-2145355870,133857588,1861533895,302647175,-1770495032,1723463875,303139127,-1516373896,2103934836,1092013344,141699041,-1608562685,-1711136975,-505134662,1865177410,737002567,1778482080,1974294431,-1551170882,-997414428,17890793,-2002298462,472028991,-1415388581]},{"sector":5,"data":[-850534722,-1756570412,-23714518,42901537,-291043752,-499434617,2120045609,-796118726,-1097756682,-1607741184,-1963405602,412986711,-596221242,1871742588,-1001624480,997950382,55585250,1338775715,1575690049,1091602799,-1552216830,864469721,14665799,2010617192,-1979084205,2091697311,-970976580,-706250654,880832452,9168970,1217339159,-918725356,-1063184045,-129606531,1144233094,-308012087,-504795508,-1785157346,1498118103,-498088700,-1160364202,-970976545,-1996589982,-1607741184,521601297,-800784000,-845657478,955869199,1940659600,-1576972639,584932695,16990025,-1081946040,328024002,1082075429,641349565,1758835264,-579173351,887415558,699540497,1180466638,2038728440,-539755132,-799546233,529366831,-375740639,2055526314,468767119,269788395,87244497,1840756395,1415384115,9928878,8281664,1157751763,1712076241,-936790905,-65405080,1096452614,-122333800,-127225507,-532816561,476776236,1753240552,196884031,-1373228077,289994515,-2089990099,-1173196208,121635366,386227424,-1935055789,1263528657,1672531995,-788463972,-2047955413,1948462532,1224168271,-998803851,-1524989262,-278072972,-1935854967,954573683,-1590962908,653368733,1084021825,-289795571,57643496,-2100279295,1757840579,-1538715908,-149723508,-907693497,173912428,-1367051664,-924534085,293546534,-715881544,-1558075440,-1661808357,-143365358,-241934278,2083282226,152146053,-149712798,178688860,1050343756,1955528006]},{"sector":6,"data":[1717702014,1947833118,1031924092,153020487,307087742,1332117961,1531149388,164870567,1207206129,783171297,-935182698,-2136046584,521601377,684753748,-1739972934,-1879686708,1175066872,-2046356348,1199036309,695488209,-1740150584,739100547,-1585868724,-259810838,-1132938593,1109591308,-122469622,154794115,2004230749,-1163373884,425948412,1879764385,266471181,154079032,2008419933,1824346820,271828712,55452029,1196933835,1388607478,826673056,1048747672,136505665,1957642528,1138860167,21930265,2118145954,1419733506,1951465622,1297613391,-1056719439,555669551,630862294,-2145729437,711649570,-867408220,259814597,-973540573,-614971932,1295025901,-1382375777,-763948424,921235130,1144508994,67353338,1602375091,1662853040,-940341223,787731936,-2115440738,196178966,-1910121144,1140066076,-684212197,270185031,-126345663,2002626950,-1052169611,1533574314,-918071444,-586644764,-1606328333,1163387405,867238449,-959690707,-197706767,149395486,-498647190,716846340,-1323652055,-905765027,601709911,1058345764,480319908,234727457,-1622542072,1874872115,1277671918,-1047540175,-130022231,637216248,-1785592524,-1981206318,-1886033914,-200905968,825446812,-344014196,257964708,51377187,584095172,1411323650,1951490191,-601647748,1020271579,2092973571,661032053,-736092569,1967088070,1646858220,-693727923,1107275674,90274986,1953979817,459874616,22904226,-1046062718,-1911564241,2042924209]},{"sector":7,"data":[-585440541,1060314915,-765918046,1948462532,527448214,7277777,-937533985,2030322024,-1524964637,852680053,-95211199,-1039033791,-791638246,-208038769,-33129420,-1015770389,452782108,-1894824816,1404198786,1562990912,1227519351,1753000641,1196911707,142795977,1096807389,1474432416,-1325256379,-867685069,926675398,-409461004,1195338248,-1170930462,447490346,52387249,-348104758,-720945151,772446245,877387913,1020271579,-125764334,1204558059,1062141085,-1390306205,-129062441,1723743481,-1504859095,1744863150,1098373013,1013057209,-795927838,-1701539888,510009858,-1215891304,2033395267,-679903057,-1172272993,1573465168,-1870039945,1116245606,-1603056625,1910514902,-1557924765,954014434,1095185158,88741636,-290575463,707184783,171133055,-710927959,519628938,302835783,518032833,641191378,-523182802,597264617,1873807055,-787500288,1829861874,-1731314211,-1001920480,562569013,-1105514189,20244587,-1763161412,-720945152,-1567948248,-1320348552,-239074371,-745754354,803666647,-2011511645,-1819316625,828778122,-1811464550,-1777916239,1621563527,2017720100,-2136025982,521601189,1561645193,424888621,-1756219232,-309847308,1180338213,-359765013,2120675403,807303400,-309037780,-1208190621,-2048150775,-636897151,1131927445,-225961500,-2022275905,-934867736,-1173216704,1128268012,-1962748688,-1935039328,1091097041,659635116,-347436285,-2057788229,-582010976,-1980765062,807333975,-1129220820,-340588105]},{"sector":8,"data":[548962693,-962516111,-1413809970,-1557713729,2084316567,1769745039,-1783699689,2087159763,1148867151,1875966181,-1435931072,1251050711,-385774360,1364371983,-2122616307,719443013,1913475410,-1112420997,1368116483,983183830,-1761349263,-615149220,2034607620,-1557017349,-857723662,1423438554,930500556,304234632,921235130,1721070474,-1004815577,-217570783,-1707816684,1848004890,602697859,-1862138114,-980483424,668405797,687950524,-51887942,1512970618,-1397854829,-1625492555,2004250810,-938631996,-476886535,-1850846159,1323449243,-779296506,479873520,-60291488,689937819,-802522062,1885136946,-506522205,1079501318,1581252855,673186686,-1459339078,-1445408116,-286805107,-269686128,-947819896,1529634153,1683743291,-2069157603,-778702694,670146045,-1982975737,-1808402168,-1250394386,-961583627,-1790147953,-1304332329,1389117981,1150319224,324490018,2061673354,730900014,-947179501,587533564,-397802176,-1891630969,676146370,1343446292,-1321442618,589565938,34012899,-587030383,-962575282,-9350302,-800587517,450925698,-1542983645,1079468548,54591758,-1068243727,-1844975198,1398982228,-864078735,-1594121911,1692548027,1388363903,2006982708,131235871,954737117,1057522256,1575609217,283105541,-1374115872,-266372733,9245744,-1364907243,446298318,-1323681770,1208026111,-1169030704,-255937761,143463472,-2102645719,-1607782140,-1438449487,686818942,-1780203078,-594241487,317923149,-18317720,102627534]},{"sector":9,"data":[-59063242,-1366649758,691152344,2139936682,890863492,-1061126284,1409299538,993757102,505893602,-544391998,-1540492235,-377568555,-1631409906,-1601109498,1769252098,-720945152,-792397463,1235561994,1485314387,-1049182065,726339780,1102754051,-13523484,-800587517,1572491777,-364691453,758524300,-251700660,-348567183,-2106296355,-266364648,9245744,1432746004,-585275169,1204675028,1271668861,1625309034,1376786985,-1558216475,-1526263820,-843995349,-870286009,-929208245,2116029728,2062741889,1560893728,996855348,-1301805335,-1875179249,-46130624,704219137,-1366020960,490047363,1513325556,-1944427802,-1063043241,150495545,-494012031,266657807,-505922352,1945561162,860413777,948008976,955269183,-387007918,-1320320139,-1251294609,-2138963992,1245800612,-1020835984,1761324586,970225015,430239656,822615457,-1231974450,267674403,1314493327,-526174234,-623839882,-2043887244,133288249,-1071992460,-1803879944,983183854,-1453790076,-1628524805,555764903,3997966,-211579284,279926227,-3663036,1755611265,1327515713,-1733634655,2103306430,1078470601,1034440272,17035064,-1803366328,-1167159584,538987655,-469735366,-1717670824,-1999132023,-1446684895,1784856245,540403893,1208025999,1904378576,-984306418,-598253833,181761170,-387044849,1414303998,796656382,-1835814239,-1485814842,27753596,-25942581,2120105985,-365002436,553935983,228599744,874320016,16953857,705527978,-1425754961,-70587458]},{"sector":10,"data":[1390984875,-232746245,705628795,1132863064,-816770476,-1992824658,107479839,1629887143,210247703,84737095,1241858083,-1584917527,-221169402,431218998,-984700765,-289759350,-736362263,660619840,1511850512,1341629862,810151435,219876053,-165091450,151081331,-2145358716,84967456,-1527033261,-1813725682,-1038215925,-1561970672,-1004596478,1496321488,1409352864,32095956,-1742407811,139383107,1366509639,84687873,235553315,713031860,568170394,1637014551,271717381,-2136458885,1083236484,84967486,-1527033261,-1813725682,38606091,-385569792,1820639247,1965129760,268612151,114299872,-1710356280,121088,-1711062827,1575534251,1977603453,-539656731,-914544268,-2062086139,2039540228,-1794669251,558042924,-416806486,-997559081,1656323244,-775104753,-1742006029,-656390169,-1994181533,-771718436,-387007982,7112921,1887561568,-1833692162,1890182728,-1837367042,430910281,-519014592,1105002821,-1174172990,280469899,1494154473,-1809677533,498656071,159761176,-1941360698,-1025887039,648826239,-281488795,1639545924,-1611603195,-516159401,-1300175550,-92004552,1140277688,142794345,1081340803,-341800659,595981065,1997189860,-581983212,500251512,1881469568,-1735813621,6704250,2010617264,-132959906,344884232,-1854127057,953289474,1041901362,1890000971,-1582367864,-1408281909,-398061700,1265252717,-118978015,2002585873,260624757,940712672,1292025168,-92647880,593038910,-2140069245,-1142207775]},{"sector":11,"data":[1284548270,-1406206380,-1361267331,1607199450,1723760144,-1011811953,-409459943,1389944903,1468799634,1203414792,-2012014308,-769393565,540362180,-94614036,2036301741,2058681526,-1011060250,895552280,24966234,-170879528,-1072741883,107537039,-1494340456,474104054,-654280190,1087570177,438312987,1433600168,-1358176905,-1125205062,-289686865,549007237,-1594883422,655315613,-1510825808,895805569,-98818751,-1814523410,-1928056592,-1005704952,-253507297,1959380145,505533092,-260794619,-1146198846,1751267002,-2097078249,-259585147,1200792733,-259568843,1234363395,63600733,671778744,336521742,1574182224,-2028261113,-1870456076,592093552,-1945182991,-477838751,822828051,-980782017,1431391529,1865945635,967360911,1470099459,-2098643960,1304831891,-703586467,1106211050,-1174847228,-792455520,-1023835019,1948640384,1000503144,-347413503,576103611,-335520643,1660253242,181903255,4088395,-722908948,-1615841631,-1727435821,-1642208093,-1214149791,276819732,1221067132,-746348311,-1069043883,-2017808730,1202864173,-2119287071,-347408928,297247163,-1055805890,-196943544,1383121991,-2091724229,1129815833,-392289150,1054241336,621504586,-2081509845,-1253490278,-863111053,195461916,1931681745,-1859968761,-862301086,-149714074,1942350920,-445461477,1288349219,-1921239965,-142533428,-1567169720,-486318723,-877722909,-1778777764,-868124713,537067076,1207206633,-939323191,-1450917231,382572597,1485958695,-1121742585]},{"sector":12,"data":[1757845652,1578570232,-226469362,1568522767,-1779777277,1510241744,956399903,45234037,-804003824,235456518,30998682,54580480,-390157414,-539656867,-713169547,2099868895,386926025,-1863711611,126172537,1125067925,671722017,-764028953,-2139003038,1094805668,-1142194632,1204638116,-691265411,-1551460167,-1129591019,1109591308,2119699978,1669210114,972587896,193851395,-998986079,1473029244,546753351,1417307116,-1894212333,-213908447,-1372879517,900177646,813954077,-69847627,877838528,590914848,118486115,2124471463,518580755,1738206759,634458956,1949393808,337441457,-1154398990,-1997958994,-2000653063,-1447302326,-91317565,1043241537,-193895854,-1710971012,-667103089,-1142207944,1204672928,-993189763,-385885770,994053625,-1844970991,116442776,-336676334,2101857729,521653536,-812895959,998772200,-1707290481,-1819287848,828672439,-1501308979,540599587,391354094,1060103931,-2061015741,-1642544132,-977867381,-411611720,988378609,838954338,421797120,-732559787,1931274734,860413777,-2130792432,-38239272,1241057293,-2038418047,1005626155,-722787712,1813940457,-1992825232,903890796,636649501,-825041547,1222594931,-474606797,-735823643,1893761406,-757238363,108925499,94474498,-60100127,-1744307864,-1662903235,1516561030,-411702374,-1592154971,-678615898,2062565415,958176125,291234445,2050314489,977346097,1643695979,98738219,-118824128,-2075784680,1400315156,237052027,1811954945]},{"sector":13,"data":[-1595309952,219189261,-1439104940,-679088453,1593269725,-144843433,-1864591550,1350041937,-1828214450,1383682264,439547072,2106495648,640769655,-636434109,-77022062,-1939269046,231317026,-1982246766,-15646302,-800587517,-286228350,286103738,2077361144,-2010792956,703350362,47958087,2013669664,1982970319,-390422544,110181572,1070011187,-188308855,-458872949,1095672113,2125463776,-1129726997,111724099,1472454833,813184212,504296917,1702704396,1594721031,-1584091042,704870420,2000550830,311198324,708194581,1609917552,715550089,-346657694,-65187642,491787406,1185512441,1345902080,1041919747,-1139207347,-386808617,117367640,94474498,870041568,-1162105212,1195621873,-1888548804,1938710976,1160010746,795263577,-694041434,-548854743,-725807424,1537467808,-746288529,-74004841,-1614491021,-2109510744,-1065372605,540299968,-915035223,-1693161159,-1306258531,1880999135,-289795511,1136515560,-419349369,418942918,344213002,1495360966,2143197423,1032684349,-822556922,-3350433,-1763489769,1852698257,1761399238,575644248,1788522748,2021901999,-265023754,-1844536284,1228449736,755478427,-1396528861,-323360421,-370701261,-626112565,736540010,119268003,-13101478,1755611265,1766045440,1495352779,448764143,119267860,2022724584,-1457727223,311288191,-2083035708,691569302,329077604,-441537246,1610281846,559709655,2020441776,117367621,44077314,-1273226531,-182486141,337404174,-239420498]},{"sector":14,"data":[1007117757,1206073856,1934678473,-394862052,695518710,-1375461696,-277169477,-1584091042,-2031586284,403111160,1233797095,674755080,878807417,1098367706,-1433823581,-1712264606,1974568065,-2013179126,-146172013,-1369420603,736176135,1023853216,312235039,1796690696,1830257487,-1172309895,134338971,65538416,1292305508,-2139067392,-855531414,779411285,-1158681922,-269828366,-457304902,-1039431550,1011381634,-897334626,-1868494954,1939080405,-370230549,1344909853,828335178,1469262646,-1620572093,-1741611238,-786748273,-1097444578,-1793359840,2036888528,-682200723,-817072671,-1852740375,-719992500,526201139,-501447803,-2145058034,1747702429,-1421410280,-244793317,-1228623961,2120152019,554458445,-1445181023,75278902,-1785421865,-75908194,1323282087,-1091507622,2036591904,1044196182,1016200485,613865985,503406816,971533996,1648106160,-90521841,-769928426,-208000296,-1421267724,-1926391905,1801027023,-859335704,857651549,1967120668,-637413336,1422206102,-872180069,-293373765,319355201,530408371,-107707775,-1541526081,-655002581,1454459221,1846132592,827877558,1212647118,-1877192125,-841483139,668674734,2120108969,1715697507,-1124452666,-1956534712,-1968453169,-1907619478,835484515,-1155372150,792719594,-610736651,1667124757,1635337594,1531893047,913580031,367477228,29798409,-672790587,-1494759786,-956540757,203308017,-1347063965,-860544632,-1346030227,-1336808706,1257333645,-1540724150,1547217880]},{"sector":15,"data":[528188286,-2036746661,1561701934,-503835463,-409457866,779368704,-1372907048,698071790,-2101059453,1216055960,-1503883507,-1986886878,733053953,-137291546,-1333518055,-606764431,1282753878,-846399024,-1483882065,-1344748500,-1888580071,499862875,-351750295,-342317491,-1686450639,-966759910,-366905073,-1938102207,-1206088694,2002626902,921509492,1885478390,1057765448,-2005712072,-669995328,-678051219,-748392376,-1367215873,-1141871821,-1511533214,869457269,-284752032,82903811,1175066744,-1047976059,-1142207988,241350561,-1980143616,1663065265,1982930829,114324708,862145683,-1134708373,211498851,-2113935351,-1170956160,-2078247397,1506175824,713453463,70840831,447809385,194823378,-2076186664,1849906966,696744912,1114481137,1050253766,1607183154,829169550,-451844468,-864557700,880700754,-1171799773,1856105792,1199322211,1953979689,1153095926,-1662464008,401021070,838880840,131947863,-1140439754,-389023644,-417821028,877972039,-1351957851,-222094393,-1079350846,-2115157481,-370230638,657043741,-465272890,-1036269712,-865936526,-2092289573,62288933,931712795,-2131997219,-201049980,50508289,1077313702,22033728,1960793509,-68501970,1960793464,97090857,75831056,-1593338134,-1811622512,-1799689357,-624933022,-59106657,-206907866,902073585,-984128222,1656665513,-620133640,-1425649887,1585420912,456393961,-2138964024,-1459591004,393508701,2006990609,-845617120,745947677,2010643796,279352156]},{"sector":16,"data":[-970563568,1722062540,939540999,71319663,-387935294,1409617472,1263269829,-285505810,1927277200,1511903817,1511589940,1881161939,335725172,17840864,604300482,-334429111,-1073674211,-373385046,1575534102,2097533565,-364763191,-147713802,-1484738391,-652009396,-669467063,-1593621166,-2144855040,1107786372,-1507168256,-1354712529,-390196038,-1813725585,-2002317148,249390880,1275529090,1627529248,-1593577400,-2144330496,-2111768700,17308944,-1097291072,-139653399,551360339,1955781719,71142018,1743371532,1843981832,-2138988604,1145137316,-947293924,800582788,-537614392,550246511,473153121,204764637,-654085488,-1937771592,974700609,-342429233,838793727,1568080425,1517731960,-947284904,1998819248,1762360781,-1065389003,540299968,115184544,-1126169680,1069193980,1534173697,-2114328548,693950262,2023533624,-253014240,81449109,416614208,632533257,-780068439,45234037,-804003824,235456518,30998682,54580480,-390157414,-539656867,-713169547,2099868895,386926025,-1863711611,126172537,1125067925,671722017,-1904945177,82238424,-1464505782,-1917751066,-1505926978,1754159787,-314042613,1668440733,-1421930704,582396677,2105852561,430208470,-1535643008,-70763005,-831085397,-1216346447,1811967800,-176355720,1366710503,-579311410,-2005551581,-1662517196,-883031372,-113846571,-1382355327,748697962,1974870877,1202883981,1491395585,-141427438,1747441241,-1676008795,-614006645,-1646707638,498475869]},{"sector":17,"data":[513438612,673830457,-1443992566,1570597809,-113854941,-436916340,1789762200,1630313529,-1590081575,-644975389,-1883307818,-747553968,-1762879744,-843599474,836222954,1943296565,593308752,1736471990,-1746924281,-918682644,-1002771608,17835952,109111196,-705060227,-647939118,-475973305,408445597,1674854860,1892548764,1839137124,979366952,1835812794,666903027,1669427988,-1884240838,429660674,2024955650,-1239196259,-498433419,880812151,1667469699,-1328661881,805100504,-1484341085,1977747772,-690385292,-1675116511,-1285619061,-1019574429,1131646642,-1331566138,-795040788,90356465,-1342512063,1677207141,236210529,-1866618485,-1644132592,1077950080,-939077516,11142664,-144845540,-1360073918,-299126789,1268906926,-2144843538,1411852476,686606723,2053155132,1229983001,-1598341561,58204646,-1711216844,-266577312,-1951281408,2015487648,580297601,968147013,-1211170794,292802733,-1496118144,1307974016,-1743901392,-1648963840,-2112785456,1674758,-1069174065,55589044,1100467518,564478412,1629261139,-559872676,469437584,-2087156946,-1497140928,1753330564,1040433267,-1834963996,1316453774,-1102222308,1034668300,-998486923,-486887720,-409403435,-838825965,1996726384,-431838136,14861369,8035379,2023012047,276025541,2054459065,-2133976832,-1459094772,-83099441,1485925915,10249106,1191343822,1839137032,-793905368,-1153546423,1620072100,614228910,66379988,-481174978,103535205,-1853070952,-1702595636]}],[{"sector":1,"data":[-1627264355,720971885,-1609246741,167012550,1625503797,-1852576798,2003684170,-1740480520,1100757191,1098557222,2108946153,-962491573,-1255297158,176021983,1910643811,-375547388,-2065717497,-387820843,-800914675,-1039904643,1158144145,147381972,1078952003,975183899,73663336,234902787,-1577341334,2102916981,1475843543,-140128131,1581257764,1101665044,504690404,205369428,-1557878650,668097951,1414031632,-166133531,769657571,864029710,576576236,-478149007,1736457351,1524640985,-1627314148,334086766,715400328,470581362,-1244725202,-2011961038,958138148,-1033827612,2080050400,1939080285,-1980253461,889784487,-83083208,-1126710016,606125128,1728110804,-1597303592,2004717202,-1820724925,-641079625,-476155060,855672227,1916578031,1064594197,1720457479,-1105358720,1040437362,-1864150566,27286443,2110800643,-1816001456,-1682249504,1879572953,1677977609,5048068,1786806380,1439498656,-1104251681,-222629910,-1158681922,-2098938348,-2101212280,-1640216459,-1765112894,-711941881,-344747004,400694458,5124992,-1742275803,474912534,1191440706,-651198197,1566236706,1601906,788609741,-1820522792,-1588917428,218375110,-325631972,399064579,619237890,-799170653,30414055,628679068,194782715,112305227,-2126989440,730651439,1505408128,559222257,-49110957,1743348352,-482331196,792819079,-1345645352,1187782749,443584253,788610087,-2139289896,-1869188041,837427302,-532413490,212885250,1079444219]},{"sector":2,"data":[-465501060,537410812,-1159176049,134338971,65538416,1292305508,-2139067392,-855531414,779411285,-1158681922,-269828366,-457304902,-1039431550,1011381634,-897334626,-1868494954,1939080405,1648737003,601964914,369902030,906420142,578633114,1894837193,585565150,754325952,961184430,-126689803,232944015,-2121308596,108585444,-788692867,-1153546423,-175591519,-2100027362,1722210569,121543217,788628883,-1372905768,953230238,549984644,1667668637,2044764953,1040408634,-1498514479,-997404381,-1002879459,-1658796007,425944730,947511459,1839137116,-396430296,1570743076,-1278945328,829868615,-461271090,-81430303,-1348338943,553521801,543658226,1288357864,-1871196638,1527772690,-1756840786,-2087450639,-438096583,946278694,18750336,1098349983,-285598683,814848141,-1667955741,-630783823,1040399564,-2136065087,-1620442525,-398422188,31038394,-402034680,117728259,-2140405683,27290240,1960793549,-269828562,-356584774,-1105937681,193495780,1215660738,-2084397508,-1593338166,-1811622512,465234803,44113457,-2011577588,1206343731,842540737,1468094211,-1603227931,785022214,-1471689594,-214858944,1662155828,-1904697190,-664338312,-999495566,-1078554758,-784767482,-225371144,1657153427,-1627322201,625022834,-2031158756,-257407028,281782561,10363678,-1172507111,2101207620,-1415125129,-1660778146,-603004687,-49092492,1407757953,-52150015,-2078242738,-556514041,-2143090488,538656847,57162272,1426261092]},{"sector":3,"data":[-1368781312,-143285765,-1781039785,-797091849,337967013,320101952,-152813142,-1336664556,-1467610051,1570743076,-1810593837,1017474122,280896063,109111252,464757629,-793918010,1255231068,-2143799996,514190643,-2012497300,944639297,1373257219,799030253,-2069892091,1394023768,237052027,1811954945,-1595309952,219189261,-1439104940,-679088453,1593269725,-144843433,-1864591550,1350041937,-1828214450,1383682264,439547072,2106495648,560350071,-1167942574,694214719,508563482,-1313748967,-556226877,-299388891,1618102161,-226484939,2021895694,491704451,-1608839444,2004717202,1216682077,1625753968,1886189131,242295517,238609827,503637848,-1601473889,2004717202,-2108507071,516757651,1997577346,-1157181381,-1609277522,1077135012,1997577298,2114543160,-881469504,-1743481630,351561926,670109412,-459445744,465226752,-399375376,690537836,349211697,-1988681561,-514555080,16141120,-266618164,-957664765,1393186849,-942851184,408373325,1888362188,-1911636862,-643365100,-660159567,801480414,185904703,2001791586,103431974,-469678417,-1811653347,-373625997,-946924062,-713816158,60617425,1728110660,1958982105,522962166,-1506037632,-527134802,1098524442,2097600559,1077353627,121635173,1002924257,1814885058,-254577359,532993990,-1370626760,-635000517,931262963,-2131637803,215093815,-2028892732,2000075502,1150295748,1945117475,-1856772068,-1751934297,-1681475797,-1010419699,212260960,1398261620,-1373238649]},{"sector":4,"data":[634928005,121990358,-968550382,1646860848,692882997,-1173173567,283105685,-1945091718,1942798735,-1389355136,-680279377,2048969812,1735381141,82395516,121582146,-1893216719,906483986,-1041675528,1670205496,1919945363,1048620676,-2128668927,1609196355,1015408690,1109591308,-1768405238,-93127084,-1714434921,1376707235,-184270662,-819731831,2004225757,1393466564,414519779,-1306189875,-1490330354,-1812410690,-1988834175,1866022315,-738736488,-1818687125,1658536675,908877225,245154935,1572296773,370843580,-381020709,616477547,-13798432,-476860609,649444464,325318871,667686985,174559214,595780672,1560929760,1073804544,539619395,1306692252,1061791022,-800587517,2119094146,-1764256121,-237673798,-274918853,-1365561888,-1082532708,965251014,-1489606627,-815027216,-1847868068,-404269747,-1448847132,-2106552679,-788111959,-1806928818,-1930850916,16706257,-64979248,-360783223,-248969362,1720507016,131699343,1221629230,-2061560064,-1713038173,-1160030735,2093646123,-835610008,1985313813,-1825052985,-2017056973,1436226707,-1517618823,1073769844,-1784485309,2144695857,-1449458696,901356118,1605721420,-2056576002,-22828279,-1584332282,25134085,2105420086,-1351022382,-1923785573,1677507736,1569260336,1073794304,-728569277,-572227398,-397782670,1092909305,124973063,696883688,-762509572,1860440370,-1279724976,-988642481,983183829,-1869639792,-1484042282,-5570033,499437547,2089027666,-473525428,568149728]},{"sector":5,"data":[8571909,1908036151,2125087488,-1587670779,-758316756,-1229945564,129361059,283365420,71378098,57843775,74496619,-1406233008,1472872828,-201283520,1652787615,2088042391,1337898505,1694915205,1486054101,1220949583,-240964634,1670779941,-41665228,1647632852,740903268,-481623486,-1430209231,410178546,354345167,-1264267052,1307627989,263362554,1560885632,1073776128,1057871111,64229951,1131860333,1247946330,1947213095,-2009832692,-1521305818,786356426,-1812854697,-1776367421,-1818241235,1886060631,10866837,-1547694270,-452548468,1716221649,-986685658,1582056932,-2053623426,2036890778,-577924722,1136202062,1053680330,1410812684,-938515770,-1306189921,-527820385,1143758084,1110656722,731978908,1073805216,783526543,1887210204,1439634843,-143045163,-412427705,293155276,-1452133293,-1934629097,837386342,1948318873,-2039671419,-406508497,-573009182,862130386,1488472056,1255243864,1285864427,-689818749,-1001963737,-1970961029,-193784485,1077909733,-2075657119,-778720255,-1200082443,-556268292,-1879522432,-592141304,-763236121,414602516,-1875987524,-472710140,197113354,1079468714,1128267854,1163735281,-2031651023,68585774,-809954154,-238478493,-435720060,694588727,1781677613,-1522927384,1124130932,-2142667606,-1684138050,-1583676424,-2079699005,757537987,2101340159,351504495,-1968624439,-1322977048,1071746553,1625307509,1376786985,-2122766281,-1726841660,1942801431,-292364125,-1818687097,834474467]},{"sector":6,"data":[1489125528,-518946923,-255420908,-529218301,-2106899568,-1694948781,606096958,-1115640140,-364691456,-1046793784,-491438003,1495434216,1150955878,-244801370,-1423360376,417025697,1255997542,-853534231,1596800707,1734018371,529651615,272907400,750952270,1219427232,1111709599,53797908,-1164276665,-1574116847,12927063,-705674432,926523438,-2120244142,1097376896,707368291,-958947329,-1885662669,571721155,-1807198391,267571669,1277806821,554876028,225895053,152121406,-1421118883,295303176,-1064337846,2121567933,1426530334,20226091,-173404350,355054948,826815445,1845173401,-132784789,-2075784680,-1634689772,1994558777,911663471,827812962,585727694,1899840026,-411751065,-392063247,1944346868,1469307785,-866486915,-579492599,-1672154415,-1917772456,-1498998301,-92647891,657777684,2091468831,-1199651388,617523707,-558959552,-1299953917,294047273,-1252216139,-1311705050,-2138063679,42562807,-1338933728,538191814,838358913,318200373,1868003872,330543370,963034210,1956977346,54591617,1468368106,1645474669,2002537657,-122335918,1207456975,1510482909,-1506315694,46601011,1875677047,264689731,-1470569009,-1666860252,2044513430,-1064319297,132156901,-795511608,-1438449481,1656118909,1829537398,-1964090827,-1136398647,958568218,-1507659182,1898722310,2116439346,1984926443,574654519,-429733358,833500713,1917795994,-1170881507,1099975439,-194568956,1253360410,859201913,-764684924,1118252705]},{"sector":7,"data":[19349591,2029535553,518083389,-1775270215,706926950,385012069,2003684242,-203770325,-1479504655,-1297824733,-1508245530,-1715060097,-244755561,1041935011,448540991,1281597759,974823372,1575564205,-1636010889,1295924913,-1501062888,428034072,1874537112,-1184711016,-1986974146,2028250027,1661900436,391618544,-367908277,1065952628,1765802243,-1870513036,780673005,1210658672,6105491,1581252757,-1727045763,-1467275476,181488910,1175066744,341513860,-918339649,1006417961,1565083970,-1320651657,-247167927,-28888161,-1684508727,319934485,-50009040,-998141737,8093870,444489280,-2001840000,1356873808,-2087844604,-1826627297,-2006692893,1949423535,1683105457,-434128136,2088678652,-1198972979,1891667720,-795516857,1581252920,-357345411,-2122724925,-643789905,-1364325964,1868141193,-2117900062,-2096172536,621810426,-1736434828,1283358855,-423014708,-990830402,1682783902,-770863432,2088544048,625229959,-1673340791,1341657357,657498283,1805488622,203616685,-537553050,217859951,172106501,1244452132,-459015287,-1941887942,-1064365360,67178318,272153654,725943207,1073869728,-871251825,-252478850,-792871914,-237632916,657753144,-2098851555,-1317365719,1959592892,-862700396,1285906749,15090124,1657000568,-139231902,-998771129,-54876078,-1592171660,-805298195,-2131550082,-778702606,1309771251,-1987675020,1323606513,806616488,-1026032414,1413788333,434366405,180846964,1596827189,8349222,2138318187]},{"sector":8,"data":[725974119,1670172374,349308721,633093344,695488145,1186608320,446638108,-217546208,-1882713023,-1386743215,1478236829,-2106267389,-467434109,1244971037,-1095551000,973116706,-188445647,119730193,-1367275294,-359649693,1879714204,632951309,-247381759,-777732582,1795384865,-695005766,-1547057369,1227280902,-1549055525,601692898,413110283,-870868718,33061169,-717993003,-1004903924,-1503474834,-71722434,-2123136602,-1673591687,-1913028695,-1089923359,-1782307844,-1538099241,594224015,1261868660,-2049006442,1816929934,-2023322575,731576499,-1032676752,-583382153,-1549836406,460453281,1642143457,725943138,385925024,1432376351,213477753,1157039457,-440003815,-1941021374,1107081626,-1324303876,829868743,1106711502,1110324664,-1059621155,-1571280369,-2091891944,537424633,1671703365,1831901944,1098898968,-1421263956,241889443,-1287628990,-1441797887,-592570862,752371719,-708517677,-228933525,2012628983,-1163373884,1483240700,1688368019,289337764,-1047764482,-609358486,1809171532,698107066,-942135009,1178811962,-1991538133,-1307345860,-1552934679,234481692,1040209683,-1387465629,-851399720,381579510,-64490049,47365630,1644636188,-823733099,-1386771720,1724258461,1046618583,79297601,2127970576,-1536126229,342607917,-104331610,622493752,-539391628,494946833,2053293592,104593672,-494069345,529022991,-1586482572,836190212,450892954,1413772325,434366405,180846964,1596827189,8349222,2138318187]},{"sector":9,"data":[]},{"sector":10,"data":[32135757,18,12124192,47251455,128,34013200,30,1]},{"sector":11,"data":[301992704,4,536940048,96993291,268435456,186647556,240896,86049024,729089,943,17445121,-1291842784,33554435,536939057,97189899,268500992,186647042,315648,-2146435072,139265,65538,65536,196608,2,16711680,262144,786434,16711680,327680,2,16711680,393216,2,16711680,524288,1507329,16711681,589824,2228225,16711682,655360,3670017,16711681,720896,2,16711680,786432,2,16711680,851968,1,16711680,0,2,65536,0,4390914,131073,917504,2,16711680,19660800,1,16711680,26214400,1,33488896,26279936,1,33488896,983040,1,16711680,0,0,0,-16777216,16777215,0,-16777216,16777215,0,-16777216,-1,16777215,-16777216,16777215,0,168624128,0,603982336,1303445569,1329864787,1700143187,1869181810,775233646,673198128,1866672451,1769109872,544499815,825768241,960049453,1766662193,1936683619,544499311,1886547779,1667845152,1702063717,1632444516,1769104756,757099617,1869762592,1953654128,1718558841,1667845408,1869836146,1092645990,1914727532,1952999273,1701978227,1987208563,2015388773,201372160,36941824,989921536,38011138,16973824,1342329344]},{"sector":12,"data":[2,38928384,788595280,-1308614849,-1342134784,255,2086492928,1026244156,926267,10158258,4272,0,220215873,235539722,184594944,4304896,1936876886,808333856,-1308619984,-1342174976,53411887,-1006587392,68333568,11665410,1102053421,220218,9437362,1279870640,808464453,1128616496,11665419,1102053481,978845754,137064448,268481024,1397796864,861341266,868323017,305051903,801964210,19990156,19873417,-1307431240,-1943024382,-1996408570,-1207879874,78778926,109850573,1049166153,783810887,-855199214,755403823,725518593,175499265,19465868,19349129,21300876,21184137,-1945467928,-1996407546,-1207878850,145887790,109850573,1049166161,113705295,168624482,27985606,1728497444,-956301311,167864582,168617984,22232713,-402646552,1105723438,1357402368,1493725696,1532626783,-2096829608,-1007088444,-1205971376,567108352,1914636062,1530300680,1560710145,-1017618943,-1153171272,-768409600,-427810355,30310401,-851181128,12108577,113476,567136819,-1207841152,567100417,-852446013,343329,-336067723,146712,-4520589,-1157370881,28835842,47360,-4849486,1397801977,106386769,-1981183150,-2013176034,-402561994,-922025239,-318037132,803734901,-402396416,259129785,17754202,-771072249,-1897397388,-2096829691,-336001340,1516177156,1560834809,-998024359,-2096829694,-1007089468,-1957538992,-2097062114,91619323,-352310040]},{"sector":13,"data":[7858179,1504972659,-855637829,-2082196959,-336001340,-294128,-1053095052,-1326971020,113541888,1510175481,516118619,-108847354,-1273268991,361375234,-1977671219,11659458,1931413022,1435117063,-132002559,45354987,158648587,-854226394,1967736609,-1021314829,1392922711,119470731,447797643,1974399740,1272523523,123456395,868441944,1959332800,520494671,-678739788,1963063683,522308904,92939856,1476418280,1931413022,1085601798,-1675506366,440238118,-1047854475,248447467,-335545368,-397322982,-376701018,1931595097,990636802,990344392,41285864,526238091,2603203,-1258289989,-25115903,-166628097,209027270,1049429790,45678946,-16717824,-1000929597,184638270,639071487,-134201981,975573108,638022149,1996571962,1195899137,123726315,1694928835,-1814351103,1765210002,922194689,-92077719,-2147125751,65746882,1378927232,1975520065,1960512260,66683705,2088766837,91565066,24262399,-2094863551,225773305,738884736,922682741,-348061326,167346960,2088766325,91565066,24262399,-768371903,-768366613,922730547,868417893,1959332818,-1339706335,624436736,942017141,74711397,242598970,-402290138,24379219,1229080391,-2024348811,1961692106,1048792371,1962934631,105155115,975581188,41222469,809246443,-771029899,872612980,1048635371,1979646308,1229079048,-347123895,-17917,-386323625,1499463178,2146108275,-896839280,425088,-922022540,1229522548,32196423]},{"sector":14,"data":[185658206,1577285065,-108852757,855799295,1962871753,106386774,-2083966127,91966,1156984181,141889287,-402490172,451609204,218580214,1156975732,108269063,201802998,2093222005,42133506,2062024939,-402396415,124911648,1566508889,-2096829602,-2080830780,91966,57804149,-939584279,91910,-768359680,-956209247,167864582,-23730176,1804044376,-75283711,-402426560,-906100232,230223477,1804044554,-398245119,1455620584,871773011,-98103,-1131739019,-544538285,-956946965,-1006078974,-1946077252,1025043395,225574931,1996498749,1136444424,-339506175,666682374,-2084336639,376831995,1979711104,216791299,-1207867485,29229055,-118082816,-75297557,-402426880,-964493228,108197892,41273611,-2137219093,695534078,105993554,12079191,1009765637,158685439,45668491,-349188859,91486465,-346486945,113541894,1560284392,-821957798,-268274,1472421467,-18096,-1359822798,1481232887,-75250849,-2095221503,-16691394,-12773772,1342928383,-16685151,1476480798,520029419,451608911,-25114317,637957375,-352105078,892874249,-1976695691,-947715251,762575108,1959332856,-98279,992347508,772008709,41223483,1950943723,80184069,1928979435,-98292,235042296,2097358343,839283202,227157741,1627833927,868417537,108822747,-955157248,536963975,-968670419,536963975,10938435,870003549,1628342482,155486721,511099194,-259342038,-2147007242,1149899892,1804044298]},{"sector":15,"data":[-75283711,-402426560,-822214532,2088823925,225705992,1929923640,139209224,1284166026,1959332616,121959972,-166955761,1947207492,92939782,1476520775,23824264,1090224963,1105724277,1976172032,121960156,169375104,-1978370826,-2021127612,-2092760725,58015995,-33545240,-152275506,1963919172,121959944,-352160752,1959922188,1694928648,1976237569,190712,106021717,-1962467753,-1915014197,-402560194,91421530,-346486945,113541892,-161627143,1966081860,92939794,1088962896,637957116,1342260618,638446584,-1073085046,1095173236,-114559509,861782869,-943705134,268527878,-153406720,1965033284,92939812,218580214,-2136470155,608371572,1762051967,-167769599,1963853636,1762051846,-352318975,121960020,640054544,1156973963,259329287,1954596086,-461356284,1762051967,-167769599,1963853636,1762051846,-352318975,93005352,39160614,218580214,-956952715,1124365440,-947919232,167864582,121959936,-955878130,167864582,-71440384,91544331,766693939,1371755858,-92266926,-1979156800,-1274075966,-1979520244,-1960900894,522309079,-133498240,1827148404,-1978960901,-840791352,-119436767,11797227,1499071602,-998046485,-3933948,34799621,50351104,67132160,83920640,100704768,134265600,151050752,167833344,184616960,201410048,218195968,234982144,251759104,738302976,755085313,771877889,788662529,-1878910975,-1862115327,302175745,1766197773,1847616876,1713402991,1684960623]},{"sector":16,"data":[221186573,1851867914,544501614,1329808722,542262614,1092644449,1195987795,543450446,1394635375,1414742613,1679844453,1702259058,220072461,1986939146,1684630625,1769104416,1864394102,1768300658,1847616876,224750945,168631306,1314013527,541544009,1768169517,1952671090,544830063,1819047270,220334605,1851867914,544501614,1329808722,542262614,1701716065,1919907700,1919164523,224753257,168630282,1713385765,677735529,1914710387,1987011429,1684370021,219941389,540091658,622880367,2036473906,544433524,1868785010,1701995894,1091177828,1917848077,544437093,544829025,544826731,1646292852,1852401509,1667592736,1919252079,1718558841,1701344288,1768294925,1932027244,1852776489,1769104416,622880118,218762545,168633610,1852727619,1914729583,543449445,1701603686,1819042080,1952539503,544108393,1818386804,638192997,1631783437,1953459822,1769109280,1713399156,543517801,1869376609,1769234787,1948282479,1701601889,218237453,1850283274,1717990771,1701405545,1830843502,1919905125,386534777,1868787273,1667592818,1329864820,1702240339,1869181810,1057623406,1868784978,1936876918,1634038304,1818386788,1852383333,1836216166,1869182049,1919295598,1629515119,1684103712,544370464,1701209444,1986622563,1768169573,221145971,537529610,1329808722,542262614,1769104475,1564108150,1952542811,1768316264,1634624876,168650093,1128616466,1380275791,1769104416,221930870,1258949898,1936617283]},{"sector":17,"data":[544500853,1920298873,1702057248,544417650,1684632903,1851859045,1699881060,1701995878,543515502,1868981602,1965057394,1735289203,1701344288,1128616480,1380275791,1836016416,1684955501,2030701870,543516756,1920103779,544501349,1701996900,1919906915,1953702009,1952675186,543519349,1819044215,543515168,1953719652,1702457202,168636004,543976513,1701603686,1769414771,1646292076,1819287653,1684366177,544106784,543516788,1953460082,1919509536,1869898597,221149554,1701986570,1970239776,1920299808,1495801957,1059671599,1750361632,1852121189,1701996916,1769104416,1998611830,543976553,1914725730,1852793701,1970435187,1684370531,1678380332,1667592809,2037542772,1920234272,1970561909,544433522,1819044215,543515168,1953719652,1702457202,168636004,543519297,544567161,1701999987,794372128,541010254,1049429774,-1048507151,29557647,-16711675,285213951,1702131781,1684366446,1920091424,622883439,-1928917455,-2096069314,46342337,-16711675,234882303,1936875856,1917132901,544370546,118370597,279527053,-1021460093,1364414494,-1957210542,47866,93051534,2080477245,637978117,1569390849,74812162,-1979298421,1435109493,175999753,-2131362840,16852542,92865141,1499094623,-1021355941,0,113704960,619,1578011132,1611056898,-956301310,160518,1678165760,-956301310,1526921734,-66664611,-952337406,1040383494,444203,-398770941,326304999,1409286072,639470374]}],[{"sector":1,"data":[57872186,1526727352,-1996419863,1392667958,512578903,116785781,1965032044,1927851070,-399019515,846464219,1963265256,1812395542,91561986,-352016664,1812395554,460603650,-2011632818,1966947335,1812889605,-398262014,-915208866,1124567212,-1991326741,-972922314,512294919,-1960443279,1966509341,792494082,1015034228,-167283678,16935942,-1977200523,-466484921,39716409,1587614067,1138807042,651690819,-2132271221,-949556480,16932870,643754752,838944650,-523157276,-1977165821,200094223,1125086409,529213011,1526774760,1128480627,113767138,197216,-1977207829,-466484921,65065280,126494424,-523115470,651690816,-315486326,259311883,-1960422589,5564447,1124758363,-940383677,67264518,1532976384,39718539,-1962778463,-1962778058,-1979554794,-134060514,-1960423229,174343,117376117,1015022174,-1458014976,141885441,39847623,250281986,-1274826672,9758975,-402396328,-1017642736,1364575225,139430438,-921965262,1871514996,36300809,233310323,-101260800,780731883,1509425779,-2144943267,1946157182,-152353533,243319621,-401603988,1114832840,40642176,1872842991,29764354,1476553990,40842891,1962949760,-8617949,-955747014,151150598,639560448,1946173315,133637656,292880385,39847623,166395906,-134179864,-335999509,61886474,65601460,-1007134720,2139825751,1681819908,92808706,23431206,41132368,38111526,1963015256,1435051530,1300833796,1012525830,637957378]},{"sector":2,"data":[-352037495,1946631247,1946696936,1963343076,1434985990,1010690820,-1592888060,641729133,637814153,-351904372,1971922475,1569465860,-165261306,1946223175,-352014332,1207313929,91488770,-1427635536,-165259264,1947206215,8185859,113689439,1342178051,185043750,1343714752,-950578605,151150598,-1325419520,-10426365,1482381919,65733355,-1450165013,326369536,39847623,-1779957760,34465793,39861891,-1457294071,276038144,39847623,2112356352,1614709505,242551042,1948254377,1611056905,-402653182,1048576166,1963000579,1614709517,108331010,39847623,-1017642999,76174928,410304522,192231996,97408,80086389,-402003200,24314566,-487897530,1455642718,-1966044590,45410308,-1073083534,199756660,-352024576,-347716095,-1017226518,208896060,963797308,897022524,837541668,-1923676589,939717950,1343714325,119427665,-1031117388,-1174405189,-4587515,1512164863,1569413209,54889985,-2144582845,123721510,809288539,960235634,808191095,-1007041544,1465013072,109021990,168135206,-1274776128,-955716609,151150598,-1325419520,-27990013,1482381919,1381322947,-1979534762,35710980,2078816882,1812395775,225708034,510999868,25067558,-345082624,1812395538,242487298,175454780,8290342,1180333312,975592171,477429830,1349828618,317408582,4602406,-1975106699,975586564,963969094,-1410644666,40634102,638547008,537020407,638022656,32384,-148495756,1946161159,1966750744]},{"sector":3,"data":[2122327561,225771520,3935979,-2144991371,1949958270,99350787,40842889,1566203640,1464910680,1832815446,168069634,-401509184,544538711,50529990,80109057,971726592,312926,133637727,762642433,39847623,636157954,76174936,460636170,1946168040,21817355,1179058803,-353679801,-972921182,-1991835644,1577214526,11098207,1342796802,95485876,1492995560,-1924049981,-1190987234,121241609,-498924428,1532576249,-1974316861,1958742532,17360949,2088970866,225720833,268957478,-2145553408,1962934652,1008733207,1007776353,739080058,-1261401504,-402214657,116129026,39847623,1482293257,552119491,-401181696,343212113,40634102,-152144864,1090677766,-347207308,32241926,-121417992,1011962819,1009611789,1009349632,639988746,33717632,-617406862,56461862,637846403,1946171776,650720013,641927562,74711354,222099682,1405311833,1711720017,645931010,1021248108,1010201632,1009939465,1009873964,-2146667232,125116476,977674416,639560640,16940416,-919398542,55413286,192203019,1124074427,1946237478,1022943751,-1017423584,-167614814,16935942,243271029,975176300,-1913984064,990016814,1007318237,-117213905,-336065045,1966029834,1812889605,-1007140862,-2091690466,158014,508568949,1431786065,-1896467706,1660991710,-611573299,1560795915,525949535,-1994034088,-1996331210,-1962776290,-1912445130,-2096994018,276037692,141689914,1996571706,99350787,-336902586,526277624]},{"sector":4,"data":[1357722563,-1912602440,1476861656,-973066264,348422,-2147453720,-16428738,1474828148,1363050497,225771269,-2147346712,-16428738,1709704052,77242370,567102644,1655972045,512303565,243991704,-645004136,-1929346626,-1190866626,-1527578496,6037130,47184,119462030,125016,16482499,431229301,-895344179,-32969981,-903968565,79923715,97231425,-1576679262,-389872695,333971460,-102186240,-1928563731,-402580970,113703130,-1006697135,12079134,517508608,915232775,1049429201,-919403984,113693235,-402652009,-12715780,1024881919,91553792,-352317208,6219779,89210496,-352160513,-2117918750,1291998270,-401640190,113639545,-956365487,301574,1048591339,1963328082,1444842003,-1999897086,-2147235298,512246211,569050571,38944384,-352160507,636952,47646,-559687026,14596608,536366568,89196230,113689599,1040123217,141885442,-402626886,518780982,1308624070,540835918,915012213,-1172438971,-628228096,-1174348125,401080542,-1161617416,266862838,-163675656,1946234624,-167313658,-1007883520,-2147464984,-16428738,2129135220,124928,-1190285117,512362592,-1006763062,77272717,567100596,243976499,-1381956441,1390540548,78160208,-235532111,-1023190437,168154387,-1546317056,378078405,-1966930745,-33306082,-1274433341,1931595076,6732301,-956849688,-16428794,-1023990549,225710592,-402620742,113702798,-335608495,12777233,-1173654400,2078802010,1359398647]},{"sector":5,"data":[-1597767931,-1046346296,-1053389564,-1928913404,-1272221634,1914817888,-1054963177,1881029124,-1173654485,1340604506,1359398647,283901701,89196230,113663,12242315,-312285183,-1272729405,-1994273483,-1945843426,-887191101,-1927041020,505400854,632561422,-1340137011,-852118492,-853636831,-1983673340,-1341862114,-602501852,521018912,567092660,113689375,-1207958189,802010886,1963064195,1392952844,129564421,-841272393,-504839377,78047487,-1023409688,89341568,-1207405057,29079303,-1020277504,11670566,-1917845494,-1962895850,914952309,2106262447,-1321301742,-1338602749,-1288271611,-1304524029,-1254192891,-157947901,1364414659,-957872558,14411776,60427835,243868542,243991452,568853402,-1944686080,-1777466431,-1950249469,721656846,50567694,-352085482,452823,1532582407,1397801816,1465274961,-1994521003,-1945779170,-971077181,-1039234811,-1105819387,96385797,-838860871,119495205,1516134237,-1017619623,96480905,989879528,2114165262,-1676768989,-1710322941,1894403,-1047783822,60165635,244040078,237699996,369296282,-672463974,-1023409688,1381061456,106255959,-1004631778,-1983673339,-1996110306,-1996111346,-1190805994,512622591,650970558,1560747866,1499094878,1354979419,-1014279599,855642299,-1930168366,-1898445885,1524272067,1354979417,-1202564781,512491519,-768408152,-1700531209,94937347,855642299,-135006254,-1560045018,1499071382,-54306725,861294928,3965129,-108851596,-1408666613]},{"sector":6,"data":[74719292,-303349334,1577059782,-2134681511,460587068,1929386472,540835859,2088766837,125116417,536954054,1176503494,-1008669882,508581406,1048585735,1358890425,11540340,567108532,-1190738394,-1993933051,-1945781706,-1130158376,-1960421371,-1912226762,915089118,1015219642,974222336,973632004,58130756,-2096698375,-353697082,526276856,-1308507453,-1342173696,512578128,468200304,572415,-201862605,-670841972,-489569394,1482349195,12079299,517508608,512579591,1048652656,267781556,-873985934,529213183,-1957685781,-1661414928,411824131,-1325108323,-2132028668,-1957163033,-1023038962,47184,119462030,1881050456,-1270972117,1913648645,-7018488,-350779098,-1957539804,-1661414928,9170947,621376413,78708751,132899539,-2114977755,185597922,1509984706,146326360,-1205744372,567086080,-1036091197,-126550013,63047366,-1928454655,-402611690,525923380,788519912,1006881440,504002305,-1912581957,303835,-1202666721,-661782528,-1957165282,-1610245610,-1767766633,63610885,93851275,728768141,12079299,517508608,378230791,-1751120486,93757957,-1962685792,-1929013234,-131370978,96480905,1945977832,-388955387,-389808836,-1595342928,50885373,-1777402159,-1007454971,95690299,-75495562,-117279497,650377411,840457610,-1269608193,639749458,-1927643196,1381697149,-150979656,1526203363,-1977695400,-33306090,-852314942,1962884129,38243159,94937894,1334504754,-1993981692,-150626802]},{"sector":7,"data":[-1432148255,189238021,94675750,638670731,94770825,637958027,93992585,638537611,93851273,638418827,95829641,-1270970074,141527557,-1758558170,157256453,-1575057114,82517765,31779103,244040643,-645004136,-1107259416,1049428097,-919403502,1946762412,1965046788,1022749442,-385649395,1101660606,1948269740,1946762248,1963801604,1344210673,1448235347,1049429591,1031799826,-2146601942,141836093,1946172800,-286570736,68304525,5117581,-336410648,68337448,973176192,2105549941,510984194,17700493,-1913475096,-1962934250,-1206547718,567108899,1946157373,-804862459,1594294533,1532582494,378456,1556005711,1950256384,2144517,-2118212365,-2146530816,65876480,780750577,1015022496,-1978763940,141950788,60819143,32243711,-1606515890,158662403,1962949760,-347159807,1049446109,1017906549,1007711245,-1928760018,-2096794562,32180679,-1007948886,-1202655949,-661782528,-1202190562,567097088,1949301376,-17372925,63637190,-855194020,-370648061,-801210114,57999621,1459685353,-19273647,1049190233,591987472,-1608944439,87688139,1166675829,-1995803137,-1962732994,-352120770,-487895284,567089588,-352082782,1460462457,51527307,989822336,-972720801,17024774,-1429894329,63440582,-853953535,61121057,63575690,567086772,-1258464536,-1915385017,-855388618,-952205279,378339587,74712011,68294285,306088791,378371,567098292,1599866310,67357344,97034816,6690445]},{"sector":8,"data":[-790100365,9890050,51525259,1950256454,687978501,512565709,2139096436,427106305,1962950528,-1203863532,225706245,378347270,971505766,-346531599,-51779527,-386031640,158532114,15341197,-352154904,-48109487,378341747,2095579310,-1924928766,-2147216866,1966735743,40843530,-1461189259,-402396413,788201517,80549573,632562864,-986832435,-1341863658,-853167069,-2145448415,17158206,-991427724,113651200,-385874790,-1916536947,-1274711018,1008848143,-1927645697,-1929022154,-1190915522,1340604427,-80942853,5117581,-336548888,1501208,567086516,1945948392,-1172927223,-258545664,-672660501,113755129,66998,91504269,-1559214709,-1398602320,306547461,-1559907677,-165280338,1975523653,1166747142,101444379,-55318441,189106982,-1667037345,1958742789,-1675719881,-57612283,2028482162,-402296064,468385948,688237217,419802118,1929752110,-1547685112,-1365047892,94150917,-402278749,512359255,-907344484,91494029,567087284,1048587971,1946158024,623163412,-1021917906,237096195,-854160097,-851725309,-1542026719,-854674429,453952289,-13758820,773904950,63256319,-1019805906,37538563,521012853,-1006649624,-1643213873,94150917,-150994387,-1543109663,-1982524667,-1962557418,-838431024,-1596247291,434635722,1950256633,-1667120379,-86644731,95829635,-400067327,41155546,-165225677,1975523653,1569269254,102492955,-756526249,-1993974789,123669341,442337574,-745862933,-402278751]},{"sector":9,"data":[-1667106090,-542203,-1577398808,775488938,158664110,95159865,-1398733961,1173759493,125157401,442859558,102034367,-74454953,289745190,325916966,90538790,638017471,638600489,689073433,419802118,-1593463250,-1866267210,47184,119462030,94937432,280744499,-1946945792,856004622,-1545472046,-1014234216,-1064385789,728768141,-1929827864,-1593455098,549127586,-137219328,-1143852061,-201916400,60294659,-1014227376,-1270824189,-1910387358,35032027,-801431808,509092978,1881050375,-118429653,-661914741,-1176115784,-13434872,1951116275,1120046087,-269761906,-111672597,1377767107,63510154,567086772,-292886438,113508272,95432329,95563401,95688331,-1996119901,-352083410,94413571,95424001,95563281,-402652488,507246995,309593504,1992440640,-1576614138,-2080375037,-16539074,1048831349,1979646882,-1866266672,-2097135896,-16539586,-1427622284,-1811480577,94544133,93587001,251597174,378340756,434634866,-1610168338,-2080375037,-16539586,1105727092,94150912,95684155,-1058340233,780732099,780731824,619185586,-1341259271,-1305603835,-97982459,117381746,-1667168868,-1274660091,-955877883,-16539642,-1606515713,-696910077,915260167,83756379,2117680256,805619206,-1259082930,-2128491222,34061545,49677046,49677046,181522678,1815513330,1829668869,-852708347,49205281,46727881,47567049,47567049,181784777,1781958897,1798211589,95461637,-1593479005,1923286450]},{"sector":10,"data":[94413061,-1929023837,-1190833098,-1527578592,94111487,-1895877693,-955920890,33922054,94150912,60829321,-1593899544,378209226,243991974,-903150172,110025523,82314702,-1928367369,-1962898922,-1996123082,-402412234,229960988,1189618125,-1928891399,-402605546,-540807924,-1056919033,-20473,-1,5971,24772608,37488552,1112670904,-1064507253,234885125,303903,787971,244039822,-108331002,-34108593,-1202674445,-883949516,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704,78708751,-789068149,-628299565,74698795,-768878452,-268181293,-947135858,-388771593,-802438516,-1064565645,-522989013,-1030817789,1322289836,1187548077,-31145334,91598908,-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094,-1031072797,-1064385789,-2080863315,292880383,-501415642,16417267,-2129234704,-351272766,1086360796,-276578162,486614544,-339702200,-1950118942,-1962932162,50334262,33948144,1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602,482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,1340528,1048581,2490395,3932209,282329159,397416279,409999353,76814502,473308159,483335344,565321372,0,0,0,0,0,0,0,181731328,1781958897,1798211589,95461637,-1593479005,1923286450]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[1866670144,1769109872,544499815,539575080,809056561,960049453,1766662193,1936683619,544499311,1886547779,1092624430,1914727532,1952999273,1701978227,1987208563,221144165,1411399690,544434536,1948283753,1142973800,1730171727,1919250021,1746955361,544238693,1701603686,1226842158,1868767348,1767994478,1629516654,1769103904,220227173,1679835146,1919120229,1769238633,1864396399,1634017382,1663068259,1634561391,1931502702,1869639797,1684370546,544825888,543516788,542330692,1886152040,1836016416,1684955501,220209198,1411399690,543518841,1347175752,1953068832,1869488232,1735549216,1852140917,1948283764,1768169583,1634496627,1752440953,1702109285,1763734648,1752440942,1713402729,778398825,541067789,1701734732,1700929651,1852729703,543649385,1752459639,1629503520,1663067506,1701670255,745763950,1684955424,1701994784,1852270880,1684370031,544825888,1347175752,1074400558,1768444960,1768300659,1830839660,1646295393,1869422693,1768319332,1948279909,1684086895,1701716068,1868767351,1851878765,539915108,543574304,543516788,1347175752,1836016416,1684955501,1835101741,1074400613,1919903264,1936269421,544175136,1965057378,744777075,2037276960,2003136032,1836016416,1684955501,1752375411,1684829551,1886745376,1953656688,1701344288,541011744,1634886000,1702126957,168636018,1699618880,1868767351,1851878765,1931506532,1819635560,1953701988,544502369,1948282473,1713399144,1953722985]},{"sector":14,"data":[1819239200,778988917,1849761824,2019893369,543257204,1701734764,1701716083,1684366437,541067789,544370534,1868767329,1851878765,1701060708,1769104243,1869182064,1752375406,1684829551,543515168,1667592816,1684366437,544825888,1953065079,1886593125,778396513,1866670112,1851878765,168653668,1970085952,1646294131,1684086885,543450468,1629515369,1634234476,1769235810,543973731,1701081711,168636018,1162891329,538985550,1819033888,544438127,1735357040,1936548210,544175136,1852141679,1952539680,1768300641,544433516,1931505257,1768121712,1684367718,1919509536,1869898597,1936025970,544432416,220227177,538976266,538976288,1752440864,1998616933,543519333,1948282473,1663067496,1701999221,1679848558,1667592809,2037542772,1091177774,1195987795,538976334,1768187218,1952671090,1701978227,1936029041,1713402740,1679848047,543912809,1919250543,1869182049,1864397678,1852776558,1919164517,543520361,1629515636,1718182944,1701995878,220230766,538976266,538976288,1919164448,778401385,1413548557,1112101460,1142956064,1819308905,544438625,1663070831,1735287144,1713402725,543517801,1920234593,1953849961,221148005,1128350218,542135627,1631723552,544435043,1864396917,1864394094,1869422706,1713399154,1936026729,1869768224,1852776557,1768169573,1948281715,1851859055,1701344367,168636018,1095062082,538976331,1952797472,1919885427,1701602080,544436833,1702131813,1684366446,1381253920]},{"sector":15,"data":[541272908,1667590243,1735289195,1124732206,541871169,538976288,1819042115,1852776563,1633820773,543712116,1735357040,544039282,1836020326,1869504800,1919248500,1124732206,538976324,538976288,1886611780,1937334636,1701344288,1835101728,1718558821,544370464,1851877475,544433511,543516788,1920103779,544501349,1701996900,1919906915,168636025,1346586691,538976288,1936278560,2036427888,1919885427,1952805664,1752440947,1667309669,1702259060,1685021472,1634738277,1847616871,1700949365,168636018,1229211715,538976338,1936278560,2036427888,1752440947,1634607205,1864394093,1919885414,1634231072,1936025454,1701344288,1920295712,1953391986,1919509536,1869898597,221149554,1263026954,541807428,1749229600,1936417637,1679843616,543912809,543452769,1886611812,1937334636,1931501856,1970561396,1701978227,1953656688,1124732206,538989388,538976288,1634036803,1948283762,1931502952,1701147235,168636014,1296912195,541347393,1635013408,544437362,1701716065,1852383351,1851880563,1864394083,1752440934,1397563493,1397703725,1836016416,1684955501,1953392928,1919971941,1919251557,1124732206,542133583,538976288,1886220099,1936028257,1701344288,1852793632,1953391988,1718558835,1870099488,1818846752,1864397669,1702043762,1864397684,1768300646,779314540,1329793549,538990928,1126178848,1701408879,1852776563,1919885413,1919905056,1768300645,544433516,1629515636,1752461166,1814065765,1952539503]},{"sector":16,"data":[778989417,1413679629,538990932,1126178848,1735287144,1948283749,1948280168,1768780389,543973742,1769366884,1965057379,543450483,1663070068,1920233071,2032168047,544372079,1953724787,221146469,1413563402,538976325,1766072352,1634496627,1864397689,1702043762,1948283764,1679844712,778400865,1162086925,541545794,1377837088,544435829,1969382724,1629498471,1869770784,1835102823,1936028704,1735289204,1684955424,1768187168,1735289204,1869575200,168636012,541869380,538976288,1818575904,1936028773,1701736224,544370464,1701998445,1818846752,221148005,1380533258,538976288,1766072352,1634496627,1629516665,1936288800,1718558836,1818846752,1629516645,1931502702,1768186485,1952671090,1701409391,1852383347,1679843616,1667592809,2037542772,1141509422,1129009993,542133583,1886220099,1936028257,1701344288,1852793632,1953391988,1718558835,1870099488,1869375008,544829552,1802725732,168636019,1263749444,1498435395,1886339872,544433513,543516788,1953394531,1937010277,543584032,543518319,1886350438,1679849840,543912809,1629515636,1752461166,221147749,1397703690,542721355,1682251808,544437353,1835888483,543452769,1701734764,1914711155,1818321765,1293972332,1329868115,1868767315,1851878765,539784036,543452769,1634038371,544433524,1919115629,221148015,1397703690,1279608915,1951604812,1937011297,760433952,542330692,1818585171,168636012,1330135877,538976288,1936278560,2036427888]},{"sector":17,"data":[1701650547,1734439795,539784037,1948283503,1936618101,1836016416,1684955501,1751344416,1735289199,544108320,1864397423,221144678,1229210890,538976340,1951604768,1937011297,760433952,542330692,1953064005,539783791,1667852407,1919098984,1702125925,1851859059,1751326820,1701277281,1396777075,541673795,1701603686,168636019,1229734981,538976334,1635013408,544437362,1768711237,1629498478,1852402720,1919888741,1953391977,1948279909,544503909,1953064037,221147759,1296909578,540424243,1968447520,544435826,1864396399,1718558834,1296375910,909652813,1886938400,1701080673,1701650532,2037542765,1886745376,1953656688,1158286638,1163084114,538976288,1701602628,544433524,543518319,1830842991,543519343,1701603686,168636019,843405381,542001474,1852785440,1953654134,1160650867,673203544,1667594341,1650553973,539583852,1701603686,1869881459,1852400160,544830049,1836216166,221148257,1230521610,538976340,1968250912,544437353,543516788,1296912195,776228417,541937475,1735357040,544039282,1836016424,1684955501,1953392928,1919971941,1919251557,168635945,1095784517,538985550,1886930208,1935961697,1701736224,544370464,1701998445,1836016416,1936028272,543450483,1701603686,168636019,1414742342,1313165391,1667580960,1935762802,1948283749,1629513064,1853189997,1718558836,1835627552,1701716069,1684366437,544175136,1852141679,1701996064,1852142961,544828532,1684370293,1818846752]}],[{"sector":1,"data":[220230501,538976266,538976288,1851858976,1768169572,1952671090,1701409391,168636019,538985286,538976288,1836008224,1701994864,2004099187,1768300655,544433516,1931506287,544437349,1713399407,1936026729,1851858988,1768169572,1634496627,1948283769,1679844712,1701209705,1668179314,220230501,538976266,538976288,1700929568,1701148532,1752440942,221146469,1229211146,538987347,1866670112,1734960750,1936028277,1746952480,543453793,1802725732,1919903264,1702065440,1953068832,1397563496,1397703725,1175063854,541347401,538976288,1918985555,1936025699,1919903264,1948279072,544503909,1769108595,1763731310,543236206,1701603686,544370464,1701603686,168636019,542265158,538976288,1853182496,543236211,1667592307,1701406313,1868767332,1851878765,1868963940,1634017394,1713399907,543517801,1629515369,1952805664,543584032,1701603686,168636019,1297239878,538989633,1919895072,1937006957,1679843616,543912809,544370534,543519605,1752459639,760433952,777211716,1330055693,538988372,1142956064,1667592809,1293972340,1329868115,1869881427,1814061344,1818583649,543450476,1701734764,544106784,1633820769,543712116,1735357040,778920306,1380387341,1096042049,1159744578,1818386798,1293972325,1329868115,1869881427,1936286752,2036427888,544104736,1702131813,1684366446,1634231072,1952670066,1931506277,1763734629,1919361134,1768452193,1830843235,778396783,1380387341,1229475905,1277186883]},{"sector":2,"data":[1935958383,1881170208,1919381362,1948282209,544498024,544104803,1852404336,1919361140,1768452193,221148003,1279608842,538976336,1917853728,1684633199,1210086245,544238693,1868983913,1952542066,544108393,544370534,1143821133,1663062863,1634561391,779314286,1179191821,538976288,1344282656,1868984933,544435570,1684959075,1869182057,543973742,1668248176,1769173861,1763731310,1633820782,543712116,1735357040,1936548210,1242172718,542001487,538976288,1852403530,543236211,1802725732,1769104416,1948280182,543236207,1701996900,1919906915,1852776569,1869504800,1919248500,1769104416,221144438,1497713418,538976322,1866670112,1734960750,1936028277,1797284128,1868724581,543453793,544370534,1886593121,1718182757,1814061929,1969712737,778397537,1095502349,541869378,1126178848,1952540018,539784037,1851877475,745760103,544370464,1701602660,544433524,543516788,1970040694,1814062445,1818583649,543584032,1768169569,221145971,541608970,538976288,1867259936,544433249,1919950945,1634887535,1852383341,1948282740,1965057384,1919250544,1835363616,544830063,1634038369,1275727150,1178878287,538990665,1684107084,543236211,1735357040,544039282,1987011169,1752440933,1768300645,544502642,541799478,1830839919,1919905125,1629498489,1914725486,544435829,543516788,1735357040,778920306,1330383373,1229472833,1277184071,1935958383,1881170208,1919381362,1763732833,544175214,543516788]},{"sector":3,"data":[1701867637,1701650546,2037542765,1701994784,168636001,538985549,538976288,1701987104,1936028769,1679843616,1667592809,2037542772,1292504366,538987845,538976288,1886611780,1937334636,1701344288,1869439264,544501365,1965057647,543450483,543452769,1701147238,1835363616,544830063,2032168553,544372079,1953724787,221146469,1380535562,542265170,1699880992,1685221219,1852383347,1836216166,1869182049,1650532462,544503151,543518319,1830842991,543519343,1802725732,168636019,1229212493,538976338,1701987104,1936028769,1679843616,1667592809,2037542772,1292504366,541410383,538976288,1718513475,1920296809,1629516645,1937339168,544040308,1769366884,221144419,1380928778,538976325,1766072352,1634496627,1864397689,1970304117,1852776564,1668489317,1852138866,544497952,1769218145,221144429,1397509642,1129207110,1867259936,544433249,1853189987,762933876,1667592307,1667851881,1718511904,1634562671,1852795252,1342836014,541611073,538976288,1886611780,1937334636,544370464,1937007987,1931501856,1668440421,1634738280,1713399924,1696625263,1969448312,1818386804,1768300645,779314540,1095764493,541414229,1394614304,1701868405,544433262,1668248176,1769173861,1864394606,543236198,1668571490,1768300648,1629513068,1679844462,1819308905,544438625,1701650529,1734439795,168636005,1313428048,538976340,1769099296,544437358,1702109281,1713403000,543517801,1818847351,1870209125,1918967925]},{"sector":4,"data":[1937055845,543649385,1701344367,1397563506,1397703725,1836016416,1684955501,168636019,1297044048,538989648,1634222880,1936025454,1701344288,760433952,542330692,1835888483,543452769,1836020336,221148272,1094865162,541280595,1951604768,1937011297,1701344288,760433952,542330692,1935753809,1881170793,1919381362,1768779105,1696622446,1919514222,1701670511,221148270,541348362,538976288,1699880992,1702260589,543236211,1701996900,1919906915,168636025,1329808722,542262614,1667584544,1919252079,1701978227,1650549857,1763730796,1919903342,1769234797,1713401455,544042866,1633820769,1919885412,1717920800,1769235301,1679844726,778793833,1163004429,538976333,1377837088,1919902565,1663071076,1701670255,544437358,1835364904,1936421473,1852383273,1952539168,1713399907,1936026729,544370464,1179537219,1395541833,221139801,1313165834,538976288,1699880992,1701667182,543236211,1701603686,544370464,1701603686,168636019,1095648594,538985805,1852133920,1936026977,1713398048,543517801,1713402479,1936026729,1376390446,1095520325,538985795,1819305298,1936024417,1818846752,221148005,1397051914,1163022164,1699880992,1919906931,1713402725,1936026729,1634235424,1702305908,1646290290,1701536609,1886724196,544825888,1852404597,1752440935,1094852709,1347767107,1836016416,1684955501,1376390446,1380533325,538976288,1869440338,544433526,1768169569,1952671090,779711087,1163069965,538976340]},{"sector":5,"data":[1142956064,1819308905,745765217,1952805664,1864379507,1701978226,1702260589,1397563507,1397703725,1986946336,1852797545,1953391981,1918989856,1818386793,221148005,1413829386,542262614,1699946528,1948283764,1981834600,1769173605,1847619183,1700949365,1752440946,1293972577,1329868115,1701978195,1953656688,1869881459,1881170208,1919381362,221146465,1095258890,538985810,1850286112,1818326131,1713402732,761621609,1918986355,543649385,543452769,1801678700,543649385,1634754915,1768712546,1936025972,544108320,1920298873,1918986272,1768169572,221145971,1229476618,538989638,1750278176,1937008233,1701344288,1936683040,1869182057,1718558830,1885696544,1701011820,1701601889,1918988320,1952804193,544436837,1646292585,1751348321,1818846752,221148005,1380930314,538976340,1867718688,544437362,1970302569,168636020,1396856147,538976340,1936933152,1634296687,544433524,1634738273,1998612596,543716457,1919164513,543520361,1953785196,221147749,1398362890,538976288,1866670112,1936025968,760433952,542330692,1953724787,1713401189,1936026729,1684955424,1836016416,1684955501,1953392928,1919971941,1919251557,544175136,1768169569,2032167795,220231023,538976266,538976288,1886593056,1718182757,168636025,1162692948,538976288,1936278560,2036427888,1919885427,1952805664,1752440947,2037588069,1835365491,1835627552,168636005,1162170964,538976288,1634879264,1667852400,2037148769,1936286752]},{"sector":6,"data":[2036427888,1752440947,1768169573,1952671090,544830063,1970435187,1920300131,1718558821,1679843616,1702259058,544370464,1752457584,1409944878,541413465,538976288,1886611780,1937334636,1701344288,1852793632,1953391988,1718558835,1948279072,544503909,1701603686,1426722094,1279607886,541414469,1868784978,1936876918,1818846752,1998615397,1751345512,1986095136,1700929637,1679847013,1952803941,221144165,1179538698,1095586383,1699881044,1919906931,1629516645,1936286752,1919230059,1684370273,544825888,543516788,1297239878,1663063105,1634561391,1864393838,1701978226,1970435187,1920300131,1646290021,1752440953,168632421,538976288,538976288,1128616480,1380275791,1836016416,1684955501,1443499310,538989125,538976288,1886611780,1937334636,1701344288,760433952,542330692,1936876918,778989417,1163266573,1497778514,1411391520,1936485477,760433952,542330692,1952802935,544367976,1981837172,1718186597,1752440953,2032170081,544372079,1701603686,1918967923,1920409701,1702130793,1868767342,1667592818,544828532,538970637,538976288,1948262432,543236207,1802725732,1443499310,538987599,538976288,1886611780,1937334636,1679843616,543912809,1970040694,1814062445,1818583649,1684955424,1919251232,543973737,1651340654,221147749,1329813514,538990928,1866670112,1936025968,1818846752,673215333,1701017701,1746957424,1701078121,1851859054,2037588068,1835365491,1818846752,539587429,543452769]},{"sector":7,"data":[1701996900,1919906915,1920213113,779314533,-1189475827,-850198504,12213008,-839404544,414892816,-1175211008,-850198507,414866192,-839404544,280675088,-1175211008,-850198519,280648464,-839404544,146457360,-1175211008,-850198523,146430736,-839404544,549110544,-1963871232,-1022308904,-1275057990,-841446671,49936,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1610612992,460809,0,0,0,0,167772160,356519952,776000801,276629191,-953221121,-15696122,113716991,-61311,-2096707794,1358954256,3292496,725420659,-1207143936,65737217,-1290665288,1477496112,-855637064,1397774352,1979717949,2833681,347604339,-1207702767,-617410286,12062925,101169409,1482363085,-1014666037,1642053660,1734964083,-15021,65281]},{"sector":8,"data":[13720141,393239,14745632,51314687,938412032,1194,30,44040193,78971456,88014848,53739520,95289920,95552064,576]},{"sector":9,"data":[0,0,0,0,871140181,115009728,108432214,17071747,937952629,-1960908032,1065353820,-2146601681,1967063423,1107975,166445099,-402492161,-998047178,-1017291262,-1511473101,61388806,16037968,443738192,-1023097725,-1192457387,-1914175320,-396994810,-259325821,326497803,1342417080,1342270648,-2095427608,45614276,-1201345792,-397409368,-998047321,1552320770,57993471,-2037783510,334233434,-10832129,-10701057,-10582387,15132752,-1928936317,1358913158,9234518,-1962621821,33522680,-8136076,-1206422270,-1202715736,-397409908,-998041096,937973252,46433033,-396975893,-998045394,1589652226,1575324511,-326412861,-402616136,79169020,1756909568,-873967614,79987489,276152331,1342338232,1342338744,-2096502296,686490820,-9402739,42121296,42448976,456058960,-2147040125,16740542,-1070922635,-1816655125,-2037559294,-806617232,-1017256565,-1192457387,-1511522302,-1957275899,1996424822,10532868,401102416,113541913,410304523,1031863947,1443657024,-402360577,-997982254,-1206523132,283836417,-167485813,1947207239,-339727612,178179,-443850914,-1957313699,178412,1443190760,-2096859509,1962935934,61388813,501765712,79987481,1048804075,1962934934,61388818,27703376,419883088,-16464765,-1207790074,1448084392,-2095515672,117376196,1183515286,994592776,1963103750,61388871,32290896,416999504,-402340733,1183324262,1958742782,1977629700]},{"sector":10,"data":[408479747,61476607,179310200,61349515,61343487,250283912,1342417080,1342180024,-2096431640,113706180,662,1575324510,-326412861,-402645832,1187447992,-1958477582,1200227422,1183422471,-465138188,-230257328,416868432,-2096839549,1946218622,112645,1190531819,74809578,149667883,48908022,-370411916,-1017256565,-1192457387,1911029764,-1957275900,1692927094,200838142,-1206684161,-1202715736,-397409940,-998041552,178180,-1477935381,-253209087,46433024,1978160727,79987456,326483979,1342417080,1342306488,-2095577112,62391492,1448471296,-2097091096,-1073020220,-1732767883,-396996606,-998042062,1975520004,1354771231,1342349240,44218454,44415056,44939344,1354771280,-2095230488,317394628,-1202667477,1448084153,1354771286,-2095235608,1183386308,-49668,-1070884236,-443850914,-1957313699,10795244,1459864552,74877782,-10582387,108461904,-2080504344,20776132,-2142604032,553606846,-2037520780,-125042850,-1975057941,-661940219,80971766,-957123576,-2037579771,-397344930,-998047701,1585876226,-396996353,-998042218,1552320772,1975520255,112645,-1098708501,2097217372,1589652387,1575324511,-326412861,1374208051,1988843011,-1978799356,-397371388,-998047532,1174702082,1962949760,-1017291026,-1192457387,770179076,-1957275901,-13958026,-472785013,35569539,-1960217600,-472823841,35567615,355264598,1023722627,-920977407,1317657079,1959332860,112645,2122516715,-864222980]},{"sector":11,"data":[1600045099,-1017256565,1458342741,1085808215,-1596420608,169803908,-1342016064,45916696,-1153168200,2142830594,-1105818365,1914817794,-1103196912,108888066,-1962511103,-1130229691,-854608894,45916176,-1017291169,1458342741,45614679,-17563,-1962932807,-1090052397,567083730,641582151,12066187,-1547490559,-947715376,-767653630,-737768446,1583286018,-2143501475,199950962,108159292,41384508,1405345572,1053034071,-662043950,506199858,-1977220400,1532954369,817103043,37495245,550306419,-1962787649,721420854,16679415,-1107070448,-1896214528,516194775,276036365,-135782634,1354773249,-1207666968,567102719,922674307,48113289,-635008714,-1312388350,1222693636,47751990,915011331,-1014235134,-604512725,567102132,1327402038,-66644477,-1190718785,-819262176,-1426866125,1005068054,-400615936,31982482,-1232126,-16551882,-16552394,-402428874,-397346090,1018691810,-1193767422,-952762365,537058310,2078822406,66971649,1342242744,47978239,567095476,-1207742045,567096576,54337161,54462092,12066574,87996965,521544141,103419531,109981411,-1960443057,-989844426,-1945752570,920335322,103292671,521536883,906055145,103810757,62642828,520041984,521537064,55510670,739150630,-1909005568,654259137,1946172800,833836,-217894722,-1190431578,-1070366721,427142898,503768555,-141877497,-1409066817,-22244968,1208054976,385344170,310047,56141696,1140897983,175251917]},{"sector":12,"data":[1954595574,1485799429,2034974723,104120039,-402246465,884867234,104120070,-1023374616,-1091794091,314509074,8251399,-1090112322,1961362998,1426320128,918482059,104251142,-1107269912,918488630,7137286,184596968,-2096401216,1962935422,71747333,263782655,375552,56133622,-1274776575,1126288702,132707042,71731968,567102644,103419531,45811683,673120000,382017030,12059453,522308901,58343040,504198144,-989627488,-1274840042,522308901,1945582531,-1957736694,-597235,-1007490095,242480955,-1962610813,38079237,503313012,12840683,-1192457387,-397410052,1048773243,1946157952,-2145976572,16758787,40495184,-1017256565,-385875272,-1957036453,1926769628,-2111948022,-1962642941,870449123,-28972608,-1175047338,-466485182,-533549828,-192873502,-401771435,28901294,753422336,112642,110084958,45745028,1360410624,-1909885949,637751046,2885262,57935500,-1181106125,-13402112,1974382322,-1991817221,-1190956482,-1359806465,-779365897,-1107295809,512622721,1017905999,1023112224,1022850057,175076365,1198224576,540847182,154986612,222094452,-1073062796,574380148,1547445364,-347995276,1103705060,1952201900,1948400890,-338623740,-775844909,-1462692887,-339053311,1017925121,170619917,1009218752,1018852386,1107522652,-919343893,1547480129,574421620,-788331404,-1047798805,-787224111,-764083800,521574379,57425545,-783821053,-2133392409,-500433182,1856226443,64523011]},{"sector":13,"data":[906434299,1128480649,57816773,-1073042772,-2118190475,512636416,65733455,-1398095821,-76275652,-143390404,58002748,167804905,-352094784,-1992912775,1313030975,1948269740,1946762459,1947024599,1958742626,1948400734,1952201767,-454317565,-1404974797,-93037508,108274236,-1426891600,1555091947,-1426855471,581961331,1321593770,1947024556,1958742574,1948400682,1952201911,-320099837,-1404974797,-93037508,108274236,-1426891600,1555093995,-1426855471,581998195,869133226,521579200,1991,58992383,1441565525,55516814,-1047803597,-108271221,741772105,1962281728,650546704,16000,-234458112,1974355374,1083655674,-41157084,-989600303,-1084809450,-2048393207,-812949760,-133956213,57683593,-561117410,-481692109,993820947,-1996131261,1162150014,-1073042772,-303891851,369118857,-443851489,-1957313699,509040364,72780551,-1392099138,276087355,208967232,-1178586217,-1359806465,-336857205,-1956749418,46292453,-326413056,74907479,201313256,-1844153152,-1070335349,-218103879,1238497198,-1275067717,1596050752,-1034033781,-796196862,48104963,104412530,628294360,1342181125,61987025,-645076781,55516811,-1056715989,-661929074,567102132,605057624,-660387600,780899586,369165022,-1950154018,-74323513,-1070394510,-1017256565,-397346701,-1957167080,1942183397,976903,-1711276104,-1017256565,32039986,1419952896,1977879043,1363050531,225575683,225649212,91365436,132842928,1980972176]},{"sector":14,"data":[-1156337662,-1730739322,-1023194717,-135543670,-2081649835,1448546540,-1090226549,1157038079,58032902,-167733271,1950352964,9365763,116320342,-1962752893,-2116121608,-1325162261,-1946430717,65262019,-1948003880,-1996209017,-396952506,-998046688,121932290,1776832664,46433031,1400684555,16547459,-1699196812,1183666179,1709723890,79987470,-1980479859,-661914042,1560182656,-1665658764,1183666179,166220018,79987470,1325335531,702718,-25755824,-386107649,-998043888,-230257402,418834512,184730755,-1090292544,1153892351,-947191802,-443850914,-1957313699,82609132,-1598138793,-335598845,1157009429,192185094,104786006,1073923203,-2092498572,909707462,-428669768,1600046987,-1017256565,-2081649835,-397016340,-259324278,276100619,108461910,-402360577,-998046726,-1878791418,-1956724693,-1866244635,-2081649835,1448544492,-1962641781,1183517310,140965638,-1979824503,2122579014,108265478,556675,-1070922123,-1878979607,201737718,-544512651,60877697,-70057039,-472792181,-472786941,71337974,-145984255,33553478,1996431477,1166694140,-397371385,-998045340,-129595130,1962934077,-137221187,-974584202,1308594176,-1978959870,-14841084,-351827963,-1973972980,-397371388,-998047374,105248260,1184068896,-151236865,1963460165,-2116056256,-1325162261,-1946430717,65262019,-152841768,17055879,636181620,2013416959,-1962636789,-2012872931,-1878201593,-1744532905,19720272,-167459709,1965033029,1325352531]},{"sector":15,"data":[-58817540,-2092338176,1946157693,38112207,469517867,62989257,1183448134,-11120390,262596661,-1962490749,84015686,1177153539,38087164,1996475371,1166694140,-397371385,-998045532,-129595130,1962934077,-62510845,738084491,887749702,1600033023,-1017256565,-2081649835,-1957297428,-963967882,-1325162451,-1946627325,65065416,98619841,1183384640,105182974,-167349117,1950352964,-18425,-1879013143,33965302,1283458676,-303357946,17190016,-2130813301,1157036839,578096134,-343810421,61932448,-1014236205,-670833711,-2013862959,1963000896,-672639479,46433025,1149961707,-1962637052,2013265502,74776322,-1744354166,119597136,-1996045181,-1073020348,-12778124,-2095483393,1946157692,-350179323,280006659,-955890680,580,-1862304023,-1962783489,-1979384036,1592011271,-1017256565,-2081649835,1448544492,-1979287925,-1986525372,-963904954,-1325162451,-1946627325,65065416,98619841,1183384640,105182968,-167349117,1950352964,105676811,-18400,-1878978327,17188086,1283518325,1686110726,-1070862586,-1962785655,-58816008,201737462,-561291403,60877697,-70057039,-472792181,-472786941,71337974,-2126088959,1946396926,-1325498106,-13404925,-1947665802,46433036,762691595,60688127,61406849,548931189,-1878725881,-1995759432,76088388,-940024181,33555015,-352254010,-396980216,-998047542,105182722,-1961265912,-1595178530,-754732797,-775713797,-774372381,1082652387,1349779716,2083208331]},{"sector":16,"data":[71600900,-1962636992,1200355422,1149847554,2130643714,1962891027,-92864764,-2096707608,1183385284,-1877283844,-151363957,537090183,45617012,-1070903296,-397193136,-998046804,73173768,-2012985718,-1877480697,-1962933825,1183666375,1996443652,109766906,-1996045181,2117729350,-385649412,1183514347,1592011268,1575324511,-1957326653,1988843244,105182724,-165841789,1946682948,74776343,-2096655896,1686110916,-1070860538,1149830281,38045956,-1866244770,-2081649835,-1957297428,-1607662522,-754732797,-775386120,-775879712,71304672,-1191295351,-397409792,-998045848,73304834,184829833,-2146470720,-1962408369,1204289118,-352190462,1586204695,105873412,-28931324,71797056,-939630965,66119,-1962647925,71601139,1204225929,1577058306,-1017256565,-2081649835,1448545004,-1962379637,126486110,6372760,1916610676,1024160768,343146615,-840318933,-13922304,33310406,-1979711047,535559254,-972881473,-352125882,163549423,-1862997247,182263,-813613195,-410845182,-8342786,1586169414,4161542,-922012044,126497396,2833816,1648220788,1024685056,359989364,11126667,-2129758784,-348127025,-947154734,1958740137,-339137787,-813592378,-1075085312,-1979951480,-1531380146,-11055103,-1343749002,113541890,200951433,-385647168,1183514478,105154812,60688127,-1607612789,-754732797,-775386120,-775879712,71304672,720914057,-128021568,-1986525304,1204224580,721420292,-1996191296,1183450180,121932026]},{"sector":17,"data":[1600046731,-1017256565,-2081649835,-1957296916,117376118,-25099362,141886376,553535175,-1878201593,61931137,1187456117,-167042818,1963722308,-2116121831,-1325162261,-1946430717,65262019,-152841768,17055879,-1070922636,-963955221,-1325162451,-1946627325,65065416,98619841,1183384640,-28931076,-1996209015,-60912892,-1996357448,1149829703,17286658,33967232,1577058744,-1017256565,-2081649835,-2091515156,1946158206,108953947,125043624,-1341751679,-1955171069,1200227934,-397371385,-998045310,1958742786,105286500,-1325162451,-1946627325,65065416,98619841,1183384640,108462078,-2097132568,1586168516,509694,149447,106859264,-1070861429,1200161929,-1876235516,-2130289013,119538815,2139162484,1963663364,122128920,669536408,46433033,158646283,-402229505,-998047736,-443851262,-1957313699,82609132,1988843095,-1962988796,52692548,1182073404,134628598,-561309323,60877697,-70057039,-472792181,-472786941,71337974,-1960348671,71576324,201082505,1343979200,-1979419393,1352140612,-2096924696,1178273476,-2146994948,-1088420276,1150025727,-956004092,580,1600046987,-1017256565,-2081649835,-1101659412,243991456,1156973752,376800006,1149878315,105154562,-1996209015,121947652,-339309569,-963932148,990430851,735802817,-443851072,-1957313699,73305068,55975483,12060274,200014089,567099060,-2017065614,-385875112,-1957300270,82609132,990142091,1912821278,151042053,1190603499]}],[{"sector":1,"data":[1954545672,176063304,857371648,-1194226743,567099905,1190611826,1962934794,105251598,2030589459,369145896,-1992889351,1183448662,-1194226692,567099906,319178243,226035798,-1946268021,12123222,-350106302,106335192,-1979167093,1119095366,91365837,56141696,-143922691,-2081649835,-13499156,-1946255736,-930412986,16533190,1971323049,1073785104,116787061,1971324091,-62470652,72780672,-955645148,567098804,37556851,-150375168,1946222785,10610947,-148641287,633441171,3998976,-1274448635,-1205744322,-387247872,33375942,-851181384,-2134706655,1317012596,1190543612,57950460,-1962879511,11077190,-1457687550,158597123,1085589811,-1075240499,-851528704,72780577,-851246920,-1872237791,-2130950410,-1477901451,174336,-1612119179,-18176,45666699,-148779710,-11104807,567099316,359972875,452951680,-638120075,45666699,857853250,-851397431,-1949748447,1107343569,1760240077,-45693296,139365120,-1996446488,1190529102,125173758,33965815,-2147257088,1452015329,-851659772,-385649887,-158075299,1979711046,105314055,812974082,567099060,604391050,-28964349,-1274784117,1914817853,1190564826,343212541,17319671,-2146601984,1451950537,1124186116,-1083039283,1090275062,1451965813,1124120580,-1047846451,19253554,-1325239296,105314064,57933832,992004480,1912821278,-851528694,402700321,184468969,-914293682,1485801473,-1950119165,851664357,-1579357239,-789118133,-919355101]},{"sector":2,"data":[58032296,-1023293056,-2081649835,1586168556,1444821764,-117018109,-351731528,-1950338212,1440942158,56133622,-1957792510,1451952206,-851463162,-1274776799,-163648759,-2147264377,-1484769420,1459290968,-225706921,-930350453,229909987,1963605120,1485799429,984351747,1008301252,-2146994918,33773711,92800491,-1947475385,1606560711,-179050146,1946286467,171737095,-420746380,56133622,-1206356928,567100416,2147063,1452083573,-851462913,-1328254431,-970134774,-1929314490,1068826454,-1015930419,427081739,17333891,-4645004,-1194226689,567099905,-2147483207,1946877822,-1962037241,-1762982314,-351906165,-8486764,-337939190,-1957363522,149717996,990142091,1912821278,151042055,-187438599,56133622,-1207208928,-919387646,567136651,-2013861006,1954546520,106335086,-1070397666,-1979824503,1476197446,-1946514602,-127497742,-485994869,-234180524,-397773394,-1472397100,-2092403200,-594869524,1023541434,57868840,721453242,-1949004830,-1962469638,1017907278,990671882,-1441172229,602469602,-1335760128,1979398925,1632259,-16076630,-471073722,-352317976,-346071326,860220245,-272504384,-1957604528,-473289777,73304848,567099572,1174474098,1958743038,1482381574,-2084308341,74647748,518719924,56133622,-1962183616,1065354846,-133991142,-1191637781,116071424,738084491,1720450118,-379625736,1317794805,1976109832,-373191931,1452012521,-851397626,-1274776799,199551753,-153061952,1073961095,-628422028]},{"sector":3,"data":[1964654464,-806619133,469809401,-1587951125,-1002765438,-1003813261,-503326473,-85213133,-1947432107,-620034978,1333789812,-443874818,-1957313699,-1151904020,1065551036,506033408,374791,1963029480,-1715457275,608183531,79471614,-1778073949,66759,-955988349,-65980,79836809,-1945874805,-390033704,1583284233,-1017256565,1090572009,-511640972,-285637634,2005660275,-1951532030,1946265854,-1053079486,-796191373,-1464995837,53769217,132546,1149892491,-1947800578,51148030,-28538375,-1991720661,50719493,-28508423,-628308341,-784608884,-1943665292,-1996174818,650314367,80742086,-115454,-24435340,-1464995837,-1947044863,-1053079298,-796148365,-1464995837,65172481,132546,1149892491,-1947800578,-1073018809,-661781388,-31058709,1946472462,-1931965423,1959214039,512632325,931857606,2005646571,-390057210,-969211798,19139956,-392675264,225706078,-385987074,91488284,-347189610,-1931965287,1958820817,-895277564,-1995994364,-1070398905,-1957575783,27852357,-936705164,-1170128567,992378879,1980025878,1978323204,63015925,51737286,-150113598,734143442,846022,-755562379,-445257007,-1017528269,501764434,1461220352,-259260789,1153954307,-1979711746,-695531913,-1991583957,1499004501,1347666778,1377751603,28856402,520507392,-2097147928,-92075836,1532633087,-771030412,-1957363517,106387180,556675,-557893515,106334978,1208239755,1407715189,-349736448,775326536,292833283]},{"sector":4,"data":[225769275,-1996340085,-397013946,1935540282,80118576,53411457,-771029901,-4716939,501979647,-1014769013,-1310994161,-1259613437,1914817864,76124905,-1996335991,855846454,1583286208,-1017256565,-1962127733,38550007,-964490124,788431108,-101550845,-628408341,963779587,-1047604341,108394299,47717945,-1014815117,-774123249,-773074453,1979137003,-1579613431,-668269745,1253359758,225583565,74839867,47715977,-1962637422,-1957313583,-1948808212,-1898410786,75402176,-4603853,-1917914369,2123104117,-18170,-772296974,-24643285,-150714741,1946157510,-783703038,329642985,-1952123959,1576700915,-1957363517,-1948808212,108432350,-661848437,-1070350194,-218103879,-1949173842,-947190658,41157032,-372160092,-921459213,-208952077,-1017251189,-1947432107,-1931572265,-1950314792,2123039862,-1178586362,-1359806465,-114568713,91530995,-14827493,-1946973185,12803578,-1947432107,-1898410793,75402176,-4603853,-139529473,-1953412655,12803578,1475119957,-1962467754,1988822142,-1948284154,216205390,1958742700,-119363069,-1426866126,1600045963,-1017256565,1475119957,-1962467754,652413006,2123094411,871860996,-139529536,-1949629479,108432382,1149937395,986264575,74972997,1229522036,-1047801353,-443850914,-1957313699,-1286121748,139365121,855918219,184124370,-1952906891,770246270,-1957363710,82609132,915101271,-167050384,2122532468,1081344004,-402360577,-997982390,-336033022,-964456444,3965698]},{"sector":5,"data":[889137780,-2080426520,-952433980,478932094,1966946688,1996445669,1676169988,113542143,-696926197,1099766923,-1878791423,1600045099,-1017256565,-1947432107,507184222,293405526,2080439171,1485305356,91504643,-352321096,-1950338302,12803557,48955830,-727643978,1977879045,-737753336,-335544571,567120389,12779700,-2081649835,1448543468,-1962379637,2122515582,679411718,954974251,-237967274,-1996307325,1967193158,75381005,96922228,71731968,1183457003,1191545084,-294385092,1946570495,38600681,478925432,126485759,-806624214,-443850914,-1957313699,116163564,1996445271,-26941436,-1962752893,108462072,-2081085976,-259325244,1460041471,1342177720,-402360577,-997986258,-96040696,1443264255,-2081060376,2117665988,721778170,-1878725696,1593835448,1575324511,-1957326653,73829100,-1979296117,567085126,-1017256565,1458342741,75402071,1569392011,72190722,-1962519157,2106263669,1461832970,-1996063093,39684357,-1996206711,1971914325,172330760,-164428686,2011695339,114414,1971914123,-1956749556,12803557,1475119957,503611019,870288135,-17984,-146690318,105286361,-1359807605,1946499151,-1946209534,-443850809,-1957313699,119429100,855932555,-17984,-146690318,1183469529,-1359807226,1946499143,-339725564,-54031614,1575324511,-1957363517,-1948808212,-1898410786,108432320,-1962639733,139365319,27791075,1235485300,-1510741551,-1527527149,-91491445,1317782365,71731978,-1962518901]},{"sector":6,"data":[509020286,177470471,-2095876928,242551545,175755787,-139842128,13796315,-141829385,198325138,-150833984,-235432975,80971666,1983462448,-1440283646,-1022639477,92856949,92712015,-1912650616,-952434364,1599664754,1575324510,-1957363517,116163564,1988843095,1354771208,-402360577,-998046110,1975520004,9484323,1944606288,79987462,1342559928,-65345450,-16464765,-397015946,-997983216,-1872434428,-402229505,-997982916,-96040702,1064681483,-396996885,-997983086,66620162,-12219650,-62486120,1946169149,6044942,977078644,-972786688,-12100603,-396950410,-997983220,1354771204,99674198,184861827,1444181184,-386238721,-998047724,-96040700,-1300905973,1577059526,1575324511,-1957326653,49054700,1988843095,108956420,-335645047,1015058444,-1978960837,1174767620,3964999,96923765,3964928,960889204,74776182,49006219,1600045099,-1017256565,-2081649835,1448547052,1983510059,-1593412346,1183384432,108954374,-1960217600,1183385158,-1877742602,-2081005941,-16583098,-70195145,1073923203,1586229251,4162550,-25098636,-529104897,-1996269919,-1072955834,1586171764,1472168190,91553795,1979600639,-25263119,-1962380288,235273798,-2081422592,1946160766,242679566,-2080667160,50660036,1190134528,-2114685303,1988100094,1225180947,-956299517,167990278,-18432,-1878948631,80492171,80479943,1183514640,984564,1357792905,-2080881688,1183384260,1975520240,-294191327,-2080885784]},{"sector":7,"data":[-125107516,360054539,55117511,113704972,525140,80492169,2123085803,-868840976,140413700,-1980072311,96963391,-266076145,-1946532215,-125105570,2122530697,762576902,-1996077429,502003270,-1957642197,939521630,-91559849,1342489731,-2080564760,-1958738748,-163150856,-161576190,1962950531,-25263141,725513216,-659009344,-396931067,-997983648,-269987836,79987708,1183512715,1191545086,1317795371,1488748798,108265475,56132746,-5242133,1179059592,1317661666,378622,378439,243172167,-971869184,-968425211,-12124155,-396947850,-997983724,-1946801404,-1958278018,926483550,2000254068,-972721150,1179066373,33932171,-163149568,1979919595,1354771442,-631157,-504867017,79987705,-59709360,-1962621821,-163150856,-161576190,1946173315,537249285,1586185799,4162550,939469940,-2080762392,1183384260,1036387314,-1166671747,55117511,113704967,656212,-16228725,-153556937,-385694589,96927363,207522573,126404235,1593067147,1575324511,37059,0,0,-1957363712,75400172,-2095877119,1946158206,1225180941,-1207953917,-369557505,1465313861,1586223244,-754667254,-1547500565,1183516134,99132168,99229324,915080990,-1085930008,28837364,-1205744343,79636737,1428278534,1048583686,2097349457,378285601,-1993466010,-1088461786,898301998,1748404526,41257759,1781958958,512503327,-423944340,75399941,-1341754368,-339135740,-121622014,-854870960,113727521]},{"sector":8,"data":[66424,-1274653045,1344392523,817123487,54272461,561863512,1712754222,646655519,784277348,512634368,-1959911572,-1994429898,-1959918987,-1994430410,529767989,58197703,1560739840,74604127,567102900,15302889,-1913877675,-11532218,1996424822,21555204,-1017256565,-1192457387,-2048393076,-1957275674,2122516086,276103684,-16091393,-397014922,-998047178,18475270,-1924087765,1358918790,1358579341,1358186125,-16091393,-1679292298,214205436,-1207470784,-185991169,1555599360,-396996608,-997983512,-1191671036,1448083503,-2080711704,1183384772,1975520252,1979648777,-335639791,-16019443,2117666164,-1962707204,783875198,-396931072,-997983606,1958742788,-92864743,-9140595,1996445264,-26286076,-1995914109,-1930823610,-396980224,-997984210,328962,-182785968,-1962752893,1979649016,-193528051,-2081097240,2062090948,347640063,1465274374,-2080921624,-397409084,-997984416,1225180932,-16777213,-2037515658,1464926068,-402360577,-997982696,-129595128,55131779,-1205111550,-1202715111,1464860718,-2080755736,-397409084,-997984408,-92864764,-9140595,1996445520,-35198972,-1995914109,-396887994,-997985138,-193528062,-2081126936,1183515332,-1956684040,-1866244635,871140181,-448599872,57685759,-16222465,1996424822,321540,-1017256565,-1192457387,635961562,-1923721243,-1946212218,175570936,-16222465,1996424822,-25106428,-1995914109,1090485382,1048785525,1963066185,106859307,-2037905526,792526630]},{"sector":9,"data":[1547443828,-1073079692,2139096692,276052481,1342578360,-2080915480,-259325244,141948427,-8616309,-1879012375,1342209976,-2142859946,-148576176,-1962490749,-12138768,-1878201600,1950039168,-2012968437,-2142812667,-260767684,1325401542,-8733047,-14121331,-1634994037,1065418618,-2146405284,192163647,1342579640,-164960169,-16464765,-396949898,-997984736,175570692,1460172543,-402360577,-997982762,2089191688,-2005581569,55131779,-2138999550,57999420,-1946191383,-1073002810,1877581173,1600033023,-1017256565,104205963,-503381277,-939524168,369314054,-419174144,-1947432107,12059734,1914817859,105313807,-167152638,74711489,-116588360,15127017,-1275051,1996424822,1354771204,-2097150488,-1017313596,-2081649835,1448567020,-1928825205,-125067194,294531,-1070918539,431509584,-102215680,113542135,-1992235990,1183450182,-2009070588,96880389,96880442,1187399516,1183467505,-163149820,-1913094519,-1924079034,-397348794,-997984294,-1605989116,-169809840,1073923203,-1948236151,-16054658,-969203851,-259325314,-222369706,-1962752893,1979649016,1225180937,-352318461,2122944542,-529123066,113707646,2229065,199999531,1352681101,-180426665,1577370755,1575324511,-1957326653,72780780,567099828,15074793,0,0,0,0,1377850189,1412263541,543518057,1919052108,544830049,1866670125,1769109872,544499815,539583272,943208753,1766662188,1936683619,544499311,1886547779]},{"sector":10,"data":[1380057105,4931909,1280065859,4473600,1346586691,1145586432,1124094537,1124094796,5853263,1498698819,1413563392,1162084421,1229193292,1128595538,1157648200,1163084114,1230521600,1329987668,1330053202,1224757076,1212940358,1095715840,1195984964,1145897032,1145785600,1342198345,4740161,1398096208,1380974661,1414548815,4477440,5064018,5129554,1095648594,1375749453,1380533325,1413829376,1229476608,1409307718,4541769,1162893652,1380275712,1380275712,5850697,5001046,1987015248,1936024681,1818585120,1852383344,1836216166,1869182049,1868963950,1397563506,1397703725,1836016416,1684955501,168439411,1347175752,1868782368,1851878765,168451428,1868767264,1851878765,539828324,1886611812,1937334636,1818585120,1852383344,1836216166,1869182049,1852776558,1634235424,1868767348,1851878765,667236,1886152008,1818846752,1868767333,543452277,544501614,1713399138,1684960623,2606,1869771333,1701978226,1852400737,1701322855,1713401964,778398825,1175060490,1830842991,543519343,1868983913,1952542066,544108393,1629515375,1701868320,1768319331,1868767331,1851878765,1948265572,543518841,1347175752,1836016416,1684955501,1835101741,667237,1294806317,761623151,11565,1886152008,1953459744,1635148064,1650551913,1713399148,1948283503,544434536,1835888483,778333793,4325386,5046344,5570640,6226011,6881380,7471214,8061046,8781953,9371786]},{"sector":11,"data":[9765010,10551454,11272359,12124338,12583100,13304004,13959377,14680283,15270117,240,1213419332,777014341,5262408,1329856626,1279608915,1279798864,1095762000,1140869204,1162367823,1210994764,1912623180,0,1162891329,788546638,1664024639,1297040128,1145979213,1297040128,1145979213,1297040174,4140800,20505,14,0,0,0,0,0,0,1591,572,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48103424,1180648251,1598377033,1330007625,0,0,0,0,0,0,1310720,25264513,1,0,0,0,0,58064896,4391484,0,0,236978176,369098752,219677186,202116105,370542599,302846719,6094594,92,2336,67872,0,16908288,0,33685504,0,58982400,0,67239936]},{"sector":12,"data":[33554433,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1080,0,0,0,0,8192,536870912,538976288,538976288,673720360,538976296,538976288,538976288,538976288,1210064928,269488144,269488144,269488144,-2079322096,-2071690108,-2071690108,269488260,269488144,-2122219135,16875905,16843009,16843009,16843009,16843009,269484289,269488144,-2105376126,33718914,33686018,33686018,33686018,33686018,269484546,2101264,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6094847,1180648251,1598377033,1330007625,0,0,37750196,37750212,0,0,0,0,0,0,0,0,1836016430,2019896832,1095762021,1543522388,0,0,0,0,2762,1296972860,1044268883]},{"sector":13,"data":[911343616,221261872,1931488522,1801675124,1702260512,1869375090,658807,911343619,221458480,1763716362,1734702190,1679848037,1684633193,2036473957,168636448,1375734016,959459382,539822605,544501614,1970237029,1931503719,1701011824,1919903264,1986946336,1852797545,1953391981,-67106291,658688,1970405631,1769221486,1696621933,1919906418,131104,808466002,755633458,1869375008,1852404833,1869619303,544501353,544501614,1684107116,168649829,1375731968,825241654,539822605,1819047278,1768910880,1919251566,1936941344,1835951977,225734245,-65526,-1958277889,926483550,2000254068,-972721150,1179066373,33932171,-163149568,1979919595,1354771442,-631157,-504867017,79987705,-59709360,-1962621821,-163150856,-161576190,1946173315,537249285,1586185799,4162550,939469940,-2080762392,1183384260,1036387314,-1166671747,55117511,113704967,656212,-16228725,-153556937,-385694589,96927363,207522573,126404235,1593067147,1575324511,37059,0,0,-1957363712,75400172,-2095877119,1946158206,1225180941,-1207953917,-369557505,1465313861,1586223244,-754667254,-1547500565,1183516134,99132168,99229324,915080990,-1085930008,28837364,-1205744343,79636737,1428278534,1048583686,2097349457,378285601,-1993466010,-1088461786,898301998,1748404526,41257759,1781958958,512503327,-423944340,75399941,-1341754368,-339135740,-121622014,-854870960,113727521]},{"sector":14,"data":[]},{"sector":15,"data":[151116,3801088,33882478,78,1935762033,1747870569,28780,0,4587520,100794368,286654464,354418688,862453760,929562624,0,0,-17170432,929562625,955056128,995033088,1041956864,1107886080,1149239296,1175846912,1206386688,1259536384,1311244288,1349189632,1362624512,1384906752,1408565248,1486487552,1554055168,1607860224,1734737920,1804009472,1862598656,1877147648,1900347392,1916862464,1932591104,1960574976,2030960640,2057175040,2143485952,-2120548352,-2097414144,-2073493504,-2049310720,-2032271360,-2006319104,-1983119360,-1972436992,-1921056768,-1900937216,-1881997312,-1854603264,-1817116672,-1804992512,-1759248384,-1741357056,-1694760960,-1664352256,-1646395392,-1614217216,-1603338240,-1575616512,-1532362752,-1501364224,-1494351872,-1474232320,-1453981696,-1430913024,-1367474176,-1338769408,-1325268992,-1289224192,-1271660544,-1182531584,-1145176064,-1081540608,-1052049408,-1017249792,-980942848,-944570368,-907935744,-872480768,-850395136,-832241664,-810614784,-795017216,-767361024,-740032512,-707067904,-669515776,-658833408,-609288192,-550305792,-484179968,-412680192,-342753280,-295960576,-252903424,-196411392,-151257088,-132710400,-89915392,33947648,60948481,102367233,122683393,141230081,176029697,195100673,220200961,243531777,266862593,288096257,315359233,328138753,355074049,370802689,395182081,429588481,459407361,486866945,531824641,549126145]},{"sector":16,"data":[590217217,625672193,683999233,725024769,755826689,773390337,814874625,848035841,887422977,901382145,938409985,970522625,992215041,1018494977,1055850497,1092616193,1132986369,1188102145,1212284929,1235025921,1257177089,1269891073,1294532609,1327955969,1343225857,1380384769,1413283841,1445134337,1476067329,1493041153,1519124481,1551040513,1577320449,1603141633,1636171777,1660485633,1693188097,1722351617,1747124225,1800273921,1816657921,1839857665,1848836097,1861812225,1878917121,1931542529,1942749185,1959526401,1976631297,1993801729,2015625217,2042429441,2064056321,2085617665,2100494337,2119696385,2135293953,-2142633983,-2103640063,-2068578303,-2022572031,-1999634431,-1985675263,-1967194111,-1946877951,-1931411455,-1911291903,-1889533951,-1868365823,-1838940159,-1821376511,-1791033343,-1535639551,-1527316479,-1498152959,-1483341823,-1458044927,-1446707199,-1428750335,-1409941503,-1385955327,-1377042431,-1344405503,-1325989887,-1318911999,-1307574271,-1298857983,-1291976703,-1287258111,-1271660543,-1261699071,-1241776127,-1225195519,-1210449919,-1205927935,-1194196991,-1182334975,-1173815295,-1150091263,-1143209983,-1137573887,-1131020287,-1119485951,-1111752703,-1106640895,-1097531391,-1092222975,-1081343999,-1074921471,-1055916031,-1051066367,-1047265279,-1039532031,-1036320767,-1026490367,-1013448703,-1001521151,-994115583,-988938239,-986316799,-972029951,-969211903,-963706879,-959709183,-955187199,-936312831,-931135487,-918880255]},{"sector":17,"data":[-914227199,-903741439,-891682815,-878313471,-874184703,-860946431,-853737471,-844824575,-838402047,-820707327,-816578559,-809107455,-803733503,-800129023,-796196863,-790495231,-778633215,-769523711,-766640127,-762904575,-759955455,-751894527,-742064127,-737542143,-728694783,-722534399,-714604543,-708313087,-704184319,-695795711,-691929087,-685309951,-673644543,-666501119,-658505727,-654114815,-650772479,-643170303,-638189567,-632881151,-629014527,-621150207,-616955903,-610402303,-606928895,-598540287,-584515583,-580911103,-574029823,-562429951,-556793855,-545980415,-539492351,-535363583,-530251775,-525402111,-519372799,-504758271,-499843071,-493813759,-485228543,-470482943,-465043455,-451346431,-441909247,-433848319,-422903807,-411435007,-405798911,-401145855,-395509759,-391446527,-387973119,-384303103,-375914495,-366804991,-341704703,-336265215,-331677695,-326696959,-318111743,-312279039,-295108607,-280035327,-266469375,-253100031,-246284287,-242483199,-238616575,-235339775,-232980479,-230752255,-221446143,-217710591,-208601087,-202440703,-199819263,-197197823,-193265663,-186712063,-182976511,-176947199,-164954111,-154533887,-144572415,-135528447,-132120575,-121634815,-118358015,-114950143,-112263167,-103677951,-101187583,-92733439,-84148223,-80478207,-69140479,-66191359,-61538303,-57606143,-50069503,-44630015,-38600703,-35323903,-32702463,-28180479,-19857407,-17170431]}],[{"sector":1,"data":[778567681,3237744,960051501,959250485,3684665,960051501,1663959094,7365475,1852404565,1818576999,1853444976,7889268,1935762033,1702389038,1969630720,1751330414,1667330657,779249012,7628147,7041838,7037998,7042606,7039022,7038510,6583854,1935829806,771781731,1667593330,1814954100,771777137,778922348,7238510,1903781218,1279328354,5456201,1313166917,1330380884,4997443,1096177986,1227096140,1431061326,1392526660,4473921,1297368403,1124093253,1279477060,1953384704,1224750648,1919251566,1953527154,1195987712,4997454,1296912195,608456257,1953384704,5781048,1702129225,1886745202,1426086004,1313166917,1430323284,1308643156,1124095813,5525071,1397312588,1163001940,5068110,1145130828,1447121664,1162084421,1163150668,1380273408,1426081095,1157648979,5523780,1330925389,1279393874,4473167,1447121730,1212350533,5392708,1229212493,1297219666,5392708,1162627398,1279459411,4543311,4607813,1162105413,1380253782,609633604,1162429952,1174422604,1095060553,5395540,1162170950,1162627398,1413826304,1414877184,1347307776,2380885,1413697353,1330184268,608982083,1129270272,1129270272,1314193483,1262702412,1179601920,1163086848,1397882964,1308644421,4541761,1313165391,1347436800,4476485,1095649602,1325422930,1431327829,1095893076,1297040462,1128481024,5460805,1701867310,1953259886,1397051904,1392530501,4932933]},{"sector":2,"data":[1414091351,1396768837,1162166784,1279459408,1313407059,609830219,1347307776,1414876928,1347307776,1275090005,5526345,5850443,1280067915,1129270272,4543553,1280463683,1342197321,1275089743,5459792,1668312878,771779951,1718510960,1095520256,1297088601,1342197825,1414416719,1163022336,5522771,1413829456,1230131200,1275089998,1313428048,2049835092,771782000,1769107564,7697518,1314213715,1347616836,1414725699,4932425,4342100,1886746158,1459644786,5523777,1413761367,1230438472,1464812622,1230198016,1124091726,1279480393,1329791045,5394252,1463898692,1734815232,1882062968,7890535,1162758476,1229017088,1342198862,1413827649,1342195028,1498435395,1380143872,5129541,1464158550,1396850944,1313297152,1129529600,1380467456,1413546020,1329791054,1230176339,1096024142,1145241678,1124092994,4673107,1414416707,1313620736,1680736327,1717924961,1413563392,1157637189,1275088984,1174423375,1224759369,1375753294,1329876545,1163544909,1145983488,1381061376,1836330496,1230241894,2377037,4476749,1397641027,1162084436,1380011075,1312882757,1162084441,1313144902,1330792790,1313144910,1330792790,1174414414,1413697109,5132105,1279608915,1431502924,1329791042,1798176845,7763045,1717725998,1936154988,1313165312,1819291136,6715745,1634496558,7759225,1920234286,6711145,1230132307,1949171783,1919249769,1230241894,5391693,1325420111,603997766,1413567571]},{"sector":3,"data":[603997001,1095653700,4409677,1296912195,1140870735,4281409,1145128274,1397051904,1163022164,1178944512,5525065,1279673668,1140868942,1314080325,1162084423,1279411270,1178944512,5395539,5065028,1229210962,1380253773,4543297,1431257676,1426080846,1314213698,1162608708,1347354708,1313818964,1396785664,1163001925,1213399117,1145393729,1096045312,4409684,1346459475,1348031488,1313407045,1162298708,1330380882,1392527182,1279741513,1329856581,1162625621,1381257984,4673097,1280065859,1396850944,1414876239,1212350533,5130561,1275088708,5263183,1230261845,1313144908,1480917060,1174426697,1191203407,1112888143,1413829120,5132885,1330925383,1162368000,1279590478,1157645651,1229280076,1313144902,4606276,771769929,1869049455,1314214400,1279611648,5522245,1163084099,5458176,1162169427,1414725712,1392529487,1163154265,1381236813,1409306191,1179012946,1852143360,1213661284,4541513,4476481,5656901,5262665,5525326,1476416079,1308643919,5527621,1346720851,5198848,1095060547,1163067474,1380319303,1162346565,1325409368,2380867,1414745673,1129054290,608523073,1094931712,2377043,1413891404,1230110756,609503303,1313164288,1381256192,2379081,1230132306,1291854925,2376777,4806211,5461571,5002819,4478531,608979789,1229671680,1263337508,1291854931,2376779,1296321357,2377282,1297304397,2377282,1296324163,1124091458]},{"sector":4,"data":[1112363862,1162870854,1342196549,4541263,1128353875,1392518213,2380372,4997462,1230132307,2377550,1397899606,1442858821,1414550081,1096155218,1381257298,1380253732,1380253772,1380253778,5394258,1701736238,1375761010,1297437509,1919221829,1851877490,2019896932,960048384,754988857,3551545,925972781,809053440,959250482,754988080,3289401,825309485,809053440,959250488,754988848,3747897,858863917,875769088,778895417,778895462,778895461,778895478,778895475,778895474,778895460,778895471,841810024,754988343,3553074,943141421,926035200,841809977,754988088,3553330,943206957,942812416,841809977,754987321,3160370,842609197,959589632,841809971,754988089,3553586,943272493,808660224,858587185,754988080,3354675,909128493,808660224,858587191,754989104,3354931,875639597,842214656,858587184,754987570,3355187,892482349,842214656,858587190,754988850,3748403,825439021,858991872,858587186,754987827,3420979,926102317,960048384,754989369,825241650,3222784,808464941,841809970,808594688,754987824,841809971,3420208,754988077,892350514,3484928,808464941,908918838,808594688,754988848,841809975,3682352,754989101,959459378,3747072,3158317,825242157,841809968,3223856,3223853,825242157,825032754,841809970,3354928,3354925,825242157,825032756,841809972,3551536]},{"sector":5,"data":[3551533,825242157,825032759,825032760,858587191,841809973,3618608,3618605,858796589,858587193,841809977,3682608,825242157,825032761,841809977,3158576,3158573,3420717,842019373,841809972,841809973,3486256,3551789,842019373,841809974,3617328,3617325,842019373,841809977,841809977,3158832,3158829,858796589,858587187,841809971,3486512,858796589,858587191,841809975,3683120,3683117,875573805,875364400,841809968,3159344,3159341,892351021,892141617,841809969,3290416,3290413,3355949,892351021,841809971,3421488,3421485,892351021,892141621,841809973,3552560,3552557,3618093,892351021,841809975,3683632,3683629,892351021,892141625,908918841,841809969,3225136,909128237,908918834,841809970,3356208,3356205,3421741,909128237,908918836,841809975,3618352,3683885,909128237,841809976,3749424,3749421,3159853,925905453,925696048,841809969,3225392,3290925,925905453,841809970,3356464,3356461,925905453,925696052,925696052,841809973,3487536,3553069,925905453,825032758,754989361,3158066,875573805,808594688,841809974,754988848,3682354,959459885,825371904,841809968,754987825,3552050,926102061,875703552,841809971,754988084,3486770,859124269,892480768,841809972,754989365,3159602,825635373,909257984]},{"sector":6,"data":[825032754,754987570,3355185,875704621,842083584,825032757,754988594,3617329,942813485,892415232,825032756,754988341,3552561,926232877,892415232,825032760,754987062,3225137,842412333,909192448,825032755,754988086,3487281,909521197,909192448,825032759,754987063,3225393,842477869,925969664,825032755,754988087,3487537,909586733,925969664,825032759,754989111,3749681,808988973,942746880,825032753,754987576,3356721,876097837,942746880,825032757,754988600,3618865,943206701,942746880,825032761,754987321,3291441,859386157,959524096,825032756,754988345,3619121,943272237,1196641536,1919895135,1701080649,1433291128,1291871603,1415530323,1415934073,1632399215,6645618,1735405160,36,65536,196610,458756,589832,720906,917516,1114127,1245202,1572884,1638425,1638425,1638425,1638425,1638425,1638425,1638425,1638425,1638425,1638425,1638425,1638425,1638425,1769497,1835035,1835036,1900572,2031646,2097183,2228257,2293795,2424868,2490405,2555943,2687016,2752553,2883627,2883628,2949164,3080238,3211312,3342386,3473460,3538998,3670071,3735608,3801146,3866682,3997756,4128830,4259904,4325441,4390978,4522051,4653126,4784200,4915274,5046348,5177422]},{"sector":7,"data":[5374033,5505106,5636181,5767255,6029403,6094940,6160477,6160478,6226014,6291551,6357088,6422625,6488162,6553699,6619236,6684774,6815847,6881385,7012458,7077995,7209069,7340143,7471217,7602291,7733365,7864439,7995513,8061051,8192124,8192125,8257662,8257662,8323198,8388735,8454273,8585346,8650883,8716421,8847494,8913032,8913032,8978568,9109642,9175180,9240716,9371790,9437328,9568401,9568402,9568402,9699475,9765013,9830549,9961623,10027161,10092698,10158235,10158235,10158235,10289308,10420382,10551456,10616994,10748067,10813604,10879141,10944679,11075752,11075753,11075753,11075753,11141289,11141290,11206826,11272363,11337901,11468974,11534511,11600049,11731122,11862196,11993270,12124344,12255418,12386492,12517566,12648640,12714178,12714178,12714178,12714178,12845251,12976325,13107399,13238473,13369547,13500621,13631695,13762769,13893843,14024917,14155991,14287065,14418139,14549213,14680287,14811361,14942435,15073509,15139047,15204584,15270121,15335658,15401195,15466732,15532269,15597806,15663343,15794416,15859954,15925491,15991028,16056565,16122102,16253175,16253176,16253176,16253176]},{"sector":8,"data":[16384249,16449786,16515323,16646397,16777471,16843008,16908545,16974082,17039619,17105156,17170694,17236231,17301768,17367305,17432842,17498379,17629452,17694990,17760527,17826064,17957137,18022675,18088212,18219285,18284823,18350360,18481433,18612507,18743581,18809119,18940192,19005730,19136803,19202341,19267878,19333415,19464488,19595562,19726636,19857710,19923248,20054321,20185395,20316469,20447543,20578617,20709691,20840765,20971839,21102913,21233987,21365061,21496135,21627209,21758283,21889357,22020431,22151505,22282579,22413653,22544727,22675801,22806875,22937949,23069023,23200097,23331171,23462245,23593319,23724393,23855467,23921005,1497637896,1229799758,1394870083,1230258516,808518467,808583984,892470064,842203957,1429472304,906192243,906178612,923749172,959854393,875770163,858928696,923026481,73754708,1970231607,1631926277,957376611,892743732,943010870,875704628,71578934,1701336121,1934964996,1111558245,1431064403,1090930004,1397048131,1346438739,1145980240,1129529605,1091062089,1953522020,74674789,1869835329,1953251587,2037268739,1920090373,1090877793,2003792498,1936933130,1835951977,158625381,1920234561,1953849961,1950419557,1651077748,1936028789,1396785667,1396785668,1094845765,105072979,1230192962,1107706179]},{"sector":9,"data":[1380011593,1279395161,88359247,1447121730,1631716421,1107979107,1735091041,1853190002,1631716708,157510003,1768383810,1852403310,1765934695,2037539182,1869562375,1851876716,1634877960,1701340014,1916930675,1886085477,1953393007,1701986827,1869638497,1937010281,1279345412,1094911052,1124418899,1313423688,1145586437,1124356681,69489224,1414416707,1380532998,88427587,1095060547,1279460434,1124419406,1163087692,1397506819,1280262917,1124291151,1124486479,1330466127,1329792334,72635214,1196315459,1381188358,105793868,1296324163,1124484674,1112363862,1631782470,1818583918,1885422340,1749223027,1701277281,1634222857,1952670066,1124758117,1634885992,1919251555,1749222771,107701093,1869572163,1124492659,1918985580,1816331635,158032745,1885957187,1918988130,1866663012,1124427108,1936024687,1819230981,1124561519,1634561391,1124951150,1634757999,1768057204,2037672300,1836008200,1702131056,1866664050,1852142702,1124627316,1769238127,174421358,1986948931,1769239141,1124820846,1869640303,1769234802,1124363887,124547700,1920103747,57962085,72630596,1096040772,1413563397,1141318725,1095516997,1141065042,1141327429,2037663301,1141073264,1141067081,1141265231,1279415631,1380189253,1141135169,123827297,1768121668,141320557,1818453316,1936028257,1717912583,1936027241,1818575878,174421093,1702126916,1852403058,1141273445,1667855973,1766065765,1735355489,1718174731,1701995878,1936024430]},{"sector":10,"data":[1936278536,1701601889,1766066035,1634496627,1766066297,1769171318,1141272175,1818391919,1866728549,1141206647,1937203570,1769096198,57894262,71386949,1163086917,1145980163,1145980165,1158104649,1380537934,1158172239,1380537934,52710991,88493893,1396789829,1380255045,106317124,1162105413,1157833814,1157844050,1157976658,1380930130,1230521604,1631913044,1158047843,1701344361,1850017650,1701601889,1850016883,1157985124,1919251566,1920091397,1157853807,1157981043,1953391990,1702249734,125006958,1835104325,124087408,1667594309,90535029,1953069125,1229325683,138693701,1162627398,1381258305,1279870469,1174623045,1174950479,1178944850,138759241,1129207110,1313818964,1818838532,1766196325,1174627438,1174958703,1952673397,158232425,1668183366,1852795252,1162281843,1330054484,71456083,1330925383,1634879240,1667852400,1632110451,1701602414,1699218546,1208512620,1969451621,74671468,1751607624,1263421702,86268229,1431326281,1313408596,609506640,1414416647,1380271941,1129269510,153373780,1701670217,1952541028,1850279269,158885220,1768189513,1702125923,1850278771,1850279539,1953654131,1953384711,1919248229,1953384717,1634628197,1852795252,1258515553,1258576197,139217993,1652122955,1685217647,2036681476,1699415923,1919907705,1699416164,1919907705,1275491172,1163084099,1162609956,52712518,72238412,1162758476,1397312516,1330381652,1330382403,1163149635,1129270276,1330381899]},{"sector":11,"data":[1275348814,105926479,1230131276,1275352142,137450576,1952797260,1936618101,1163086852,1414268500,609044818,1717914628,1766589812,108292199,1768778060,1275360116,73756265,1801678668,1735347207,1818321769,2003782661,1275687525,1919252335,1702060387,1195592964,1229784129,1292182596,1380533323,1145785607,608584269,1397443847,608584269,1801538820,1632438117,1970104696,1766656365,1936683619,91514479,1701080909,1867318387,1292199286,1936029295,1937067270,119825257,1816361293,74675041,1162690894,1480936964,1632502868,1308910957,108296293,1651340622,1325625957,1325680198,105792848,1230262351,1325813327,1431327829,1817118804,1952806505,1325623668,1325688174,91121008,1852141647,1884227699,1952543333,1326019183,1634887024,1936879476,1953517320,1634627433,1968113260,1953853556,1229017093,1342657614,1413827649,1342457172,55264581,72238416,1497451600,1095585796,1330644304,72633929,1162563408,1163022342,89408851,1313428048,1397752916,1342395461,1342526549,1702130529,1952534532,1699743848,1852797810,1342532705,1937334636,1936674824,1869182057,1917846894,91452261,1852404304,1917847156,1937010281,1869762569,1969513827,1342924146,1919381362,1768779105,1342728046,1919381362,108227937,1396785745,1359364937,1769169218,1968245347,1114334057,1128878913,1769296138,1631742819,107178355,1145979218,1376341327,1329876545,1163544909,1095062020,1163003204,55396676,122504530,1280132434]},{"sector":12,"data":[121982537,1414743378,105206351,1431520594,1376142669,1381323845,1230112334,609503303,1145917957,1375949385,1376011342,106186067,1230132306,1375937613,1376013909,157573477,1113810258,1701209717,1699874418,1701016932,1717916169,1852142181,1376150883,1634037861,1699874676,1701672307,1699874675,1852994932,1766983027,108292199,1163019091,1392791109,55264581,105334099,1162626387,1392923715,1163018568,1213400388,105663557,1196312915,1392854348,1346717004,1095783174,103040323,1413567571,1392788297,89146708,1128879187,1414726731,1392857167,1195987540,1381257990,122113609,1230132307,52709198,71456083,1933727059,1398362886,72172884,1702256979,1919111942,107898213,1918985555,1392732259,1392928101,1667591269,1699940980,1852142961,1818323316,1952797443,1952797444,1750271347,108291689,1735289171,1393124716,1768121712,1936025958,1635013385,1701668212,1393194094,1702125940,1953391981,1951598451,1937077345,1951597605,1392930917,1852404340,1968375911,1852141683,1392931684,1668573559,2035484264,2019652718,1397052420,1213465684,1409633861,608521545,1296651269,1409569349,54874201,56779092,73754708,1852139604,1768444932,1767113843,1409705325,1818716015,1918109797,1768976481,1409640302,1936618101,1886999556,1112868453,1145984335,1094931718,103040339,1330400853,1426410307,1279874126,1230198021,1426802510,1886745454,1953656688,1426416741,1919250544,1702057219,1769166085,1443260270]},{"sector":13,"data":[1414550081,1096157010,1381257298,1096156708,1195725650,1095194115,1162434052,1633027415,90466668,1970037078,1633027685,1936029036,1918981640,1818386793,1700136805,1869181810,1767244910,1443395429,1886872937,74740335,1414086999,1313167108,1213662532,88427593,1413761367,1230440008,1464812622,1230132997,1459963220,1702127969,1701336836,1767310958,2003788910,1919899396,1867974756,1951622258,1476620897,1493389903,1493398373,1627747695,1953853282,1868718341,1627809142,1936024419,1667303539,1635150196,1627809140,1986622563,1684080485,1702129761,1684080498,1936028260,1717634419,91383156,1767991137,1734412654,1835361650,57962085,158100577,1869376609,1702125923,1818298212,1702326124,1818297956,1937207148,1919705351,2036621669,1936482564,1818297967,1937334647,1869439238,57962101,90467937,1818717793,1851852645,1701344367,1851851634,1885407097,1918985584,1918960499,1918960741,1627939173,1836410738,208957029,1969713761,1953391981,1953720684,1735549193,1852140917,1628074868,1752459634,1769235821,1918960995,158949746,1634890337,1835101817,1918961253,1937334642,1936941318,141453161,1769173857,1684368999,1936941323,1835951977,1937010277,1936941322,1634296687,140797300,1635021921,1684367459,1953784073,1953525093,1628071013,1835365492,1852404848,1952516455,1651077748,174421109,1920234593,1953849961,1628054885,1769108596,1702131042,1969294707,1634561908,1633905012,158952556,1767994977]},{"sector":14,"data":[1818386796,1633815141,1919380323,1684960623,1667326475,1869768555,627338869,1667588615,1702065505,1701143044,1700922990,1701998438,1734697477,1644785257,1852401509,1735289198,1734697478,91450985,1852400994,1700922983,1919251572,1952801287,1852138871,1852400134,58290785,74738018,1937008994,1634492933,1644522350,1801678700,1919902214,124937572,1685221218,170226277,1953787746,1869770095,1644504439,1684960623,2020565507,1634886152,1952803683,1919027315,1751346785,1644852069,1801545074,1852403568,1919028084,1886085477,1953393007,1969358451,1919247974,1953849862,74346356,1702132066,1954112005,1661236069,107768929,1819042147,1661428837,1768713313,1661298542,1936485473,1851876099,1851876102,141848430,1953522019,1684370037,1969316614,107242867,1851877475,1661429095,1735287144,1661428837,1735287144,1661563749,1634885992,1919251555,1634231050,1952670066,91452005,1667590243,1751320683,1768645477,1661364078,1936682856,1751319909,107311983,1668442467,1661363564,1937072492,1818429029,1936875877,1768710917,1661299555,1702063980,1685021444,1868760421,108162924,1869377379,1661347186,1919904879,1868760691,1852667244,1819239175,627993973,1819239176,1936616821,1868761893,1852400237,1869182049,1868760942,1851878765,1868761188,1851878765,1661891428,1634561391,1953719406,1735289202,1868760612,1935764845,1836016391,1953391981,1836016398,1768846701,1769234787,225668719,1886220131,1651078241]},{"sector":15,"data":[1953066089,1868761721,1952542829,1701601897,1836016392,1952803952,1868761189,1953853549,1661563493,1768189551,1852795252,1852793610,1769236836,125005423,1936617315,141849449,1936617315,1953390964,1852793612,1851880563,1835101812,1868761445,1635021678,125006958,1953394531,175008097,1953394531,1768843617,1661495150,1635020399,141782633,1953394531,1937010277,1852793608,1970170228,1868760933,1869771886,1868760940,1919252078,1868761204,1919252078,1661629300,1685221231,1952542313,1868761957,1768190575,1702125934,1868760179,1661434224,1701999215,1661564003,1701999215,2037150819,1919902477,1886610802,1768189551,1661429614,1953396079,1661366885,1952540018,1919092581,1702125925,1969424228,1852142194,1969424756,1852142194,108620916,1936880995,1678013039,157381729,1969382756,1852401511,1701055335,1918987363,1869182049,1701055342,1918987363,1986622561,1701054309,1918987363,1701054565,1918987363,1678271589,1634493285,125003122,1634100580,108293237,1768318308,1678206318,1852401253,1678402661,1852401253,1869182057,1701054318,1701147239,1701054067,1702126956,1885692934,157576805,1701864804,1852400750,1701054311,1701996915,1701056612,1852404851,1869182049,1734439022,1678320997,1919251557,1701734765,1952801802,1768780389,107242862,1769366884,1678140771,1869373801,1768163687,1919247974,158625381,1701669220,1869181806,1768163950,1936614765,627994473,1835623435,1769172581,1684369007,1835623434]},{"sector":16,"data":[1769172581,158559855,1701996900,1869182051,1768164206,1952671090,1701409391,1768163699,1952671090,142176879,1634953572,1936026722,1936286724,1768163179,1634496627,1768163705,1634496627,140797305,1886611812,1937334636,1668244493,1852140917,1769234804,1678012015,108225903,1651863396,1678009708,124680047,2002874980,90664553,1986622052,1919157861,1919252073,1853449223,1667853665,1667327236,1684341864,1694921833,1667589734,1768228468,1919248500,1701602567,1953391981,1701602571,1953391981,1701667182,1701602568,1953391981,1852114803,1701601889,1852114788,1701601889,1852115059,1936682083,1695245413,1970234222,1919251566,1695179877,1970234222,1919251566,1852113779,1852114788,1701995892,1852114532,1701996916,1953391879,1936025970,1986946315,1852797545,1953391981,1970365706,1818326633,91516517,1869771365,1919223410,1936879474,1702257925,1695183982,2037540214,1852401780,2019886951,1819307361,2019886949,1684366691,2019887731,1953850213,1701601889,1702388999,1702131043,1702389000,1702131043,2019887460,1953850213,141455209,1936291941,1735289204,1886938377,1936942450,1695179877,1701998712,1869181811,2019887982,1936028272,1852795251,2019887909,1936028272,1852795251,2019887921,1936028272,1852795251,2019888690,1936028272,1852795251,1953720684,1886938383,1936942450,1819176809,829715305,1886938383,1936942450,1819176809,846492521,1886938379,1936942450,1936617321,1954047240,1701080677,1634076004]},{"sector":17,"data":[90534764,1818585446,1768295268,2003070053,1752458345,1768293413,1711629676,610626665,1818846728,1835101797,1768294501,1970169196,1712006509,1852140649,1700949365,1711613298,1936026729,1818846729,1701868389,1711547491,74214505,1684957542,1919510021,1711633523,1684371561,1819239945,1769434988,1711761262,1869376623,1711502199,1711960687,1734701679,1853190002,1868958564,1919378802,1684960623,1868956709,1711697266,1634562671,1868959092,1952542066,1769108595,153380718,1836216166,1702130785,1868957540,1819635058,1868957025,157576821,1902473830,1668179317,1919288441,1711828335,1952673397,158232425,1668183398,1852795252,1701251187,1634887022,1728669044,1919250021,1684370529,1852139273,1952543333,1728672613,1919250021,1919906913,1952802563,1634887432,1667852400,1634207859,1768711278,1745381230,2003071585,56980065,74670440,1702257000,1818585092,1701315696,1745577330,1684109413,1835623269,1745448033,1818781545,1952999273,1734961163,1734962280,1684370536,1701079306,1718187118,175269225,1852138601,1768319348,1762095973,1734700140,1762356321,1937075308,1952543348,1761964901,1701273965,1835886859,1634296933,2037146996,1668180231,1701082476,1668180233,1768191340,1762158446,1701995374,90534753,1701080681,1852376696,628647268,1684957448,1952539497,1852377445,1633904996,174351732,1768189545,1769234787,1762355054,1919903342,1769234797,1761963631,1953853550,1936615686,141849189,1702063721]}],[{"sector":1,"data":[1684370546,1936615687,1937011301,1936615686,124085353,1702129257,141714791,1702129257,1936876903,1953392905,1769172581,1762163060,1919251566,74211694,1869901417,1702127876,1953039725,141782373,1937338218,1801677172,2036689667,2036689672,1918988130,1701512292,1795650425,1870100837,1795712114,1870100837,91448434,1700946284,1634469996,1635084142,1812292967,1701278305,1918987271,1953719655,1935764484,1701578612,1852400737,1701577831,1812362342,1952935525,1701578600,1752459118,1701578277,1919251572,1952803851,1920099700,1701277281,1952803847,1936876916,1986358277,1812294757,1952999273,1852402692,1768686949,74671470,1953720684,1953065991,1818325605,1634692100,1869350244,141320547,1633906540,1852795252,1735355399,1818321769,1852795908,1869349991,1812295791,1919252335,2003790857,1633907301,1829004659,73753697,1701536109,1851878660,1634534777,124281716,1668571501,140797288,1668571501,1735289192,2019650823,1836412265,2036428035,1634036997,1829139310,1919905125,1701643385,1829074286,1937075813,1952804108,1836016481,1684955501,1768754291,1936288876,1852793701,1829270372,1634562921,124281716,1936943469,174550633,1936943469,1819043184,1829004389,90530927,1701080941,1869416051,1701606756,1852796167,1919906921,1852796170,1919443823,73756015,1701998445,1936682244,1869415796,73757557,1702260589,1987013896,1852140901,1869415796,141780342,1953265005,1701605481,1937075461,1829004137]},{"sector":2,"data":[74740597,1684095598,1631809031,1953459822,1749249543,1701277281,1698983431,1701013878,1967418890,1667853424,73757793,1145980270,1682533899,1769238117,1919248742,1816751624,1634166124,1332610412,72238416,1953845102,1917873674,1684366191,124088949,1631736174,123955571,1853444974,108552564,1769166190,1845782382,90533217,1701667182,1701709939,1769234791,1845978486,1870099557,1845717874,1845786469,125073509,2054057838,57635429,74739566,1702129518,1953459717,1845916517,1700949365,1970145138,1919246957,1970145139,1769104749,1668220259,141718883,1969447791,1684370034,1667460874,1701999221,107307886,1969447791,1862693746,1986098275,1718552165,1952805734,1717989127,628385139,1768779527,1684370548,1668181764,1852769125,1852769381,1862564204,107898224,1852141679,1862886501,1634887024,1735289204,1701867273,1769234802,1862954607,1634887024,1852795252,1886324851,1952543333,1862890095,1634887024,1936879476,1953525510,141455209,1769238639,1818324591,1953525511,1936617321,1752461061,1862890085,1919248500,1702062455,1953853190,125072752,1937012079,140862569,1919252079,2003790950,1734438916,1634731365,158557543,1634886000,1702126957,1634733426,1701667186,1819436404,175403881,1634886000,1702126957,1879798642,1852142177,1936025716,1879470949,1953067617,1634731129,1879471218,1702064993,1634731108,1879664756,1852339297,610626913,1952542727,1852990836,1969319941,1879270771,1879273061]},{"sector":3,"data":[1879667301,1868984933,1684368754,1919250438,157577065,1836213616,1702130793,1752172644,1667855225,1879403617,1818589289,1634496517,1879860579,1701011820,1684828008,91452005,1852403568,1869612916,1702129257,1869612146,1879602290,1953067887,141455209,1936945008,1701601897,1701998599,1701078371,1701998600,1701078371,1919945060,1684366181,157773417,1667592816,1869181801,1919944046,125006693,1936028272,140797299,1986359920,1937076073,1701998602,1970235766,91843699,1852404336,1919944564,1702129257,1919944306,1937010281,1869770761,1969513827,1879729522,1701015410,1701999972,1919945075,1936024431,124020083,1735357040,191717746,1735357040,1835884914,140996201,1735357040,1936548210,1869770758,125071469,1987015280,140862569,1987015280,1936024681,1702195467,1768711541,628386157,1869967625,1769234804,1913089647,1634296929,1913025390,1868852833,1634862445,73754478,1684104562,1634038279,1735289188,1634038277,1913090916,1768252261,1913021814,1852138341,1701971828,1852140643,1701972261,1852272483,107313769,1868785010,1913414770,1919902565,1836412516,124937570,1868785010,259220594,1868785010,1635148914,1650551154,254895468,1868785010,1635148914,1650551154,154297708,1952671090,1818717793,1701972325,1701995878,140862318,1701209458,1684370034,1717924358,175338085,1768383858,1919251571,1913283685,1952541797,1634627433,1701972076,1769234796,1913087350,1767992677,1913025390,1918987621]},{"sector":4,"data":[1701971563,1702260589,1852142086,124087649,1819305330,191193953,1819305330,1835361121,242511461,1919968626,1852142437,1769234804,1913155183,1769304421,140797298,1970365810,1936028265,1936028170,1953852527,124677993,1953719666,108294753,1970496882,1913021805,1920300133,1701972078,1852994932,1913087077,1920300133,1912959854,1952999273,1970237959,1701734772,2003792387,1853190659,1853190663,1735289198,1853190660,1634927731,1929667949,90535521,1702257011,1668482660,1852138866,1634038534,141058930,1918985587,1936025699,1634038537,1768448882,1929799534,1852793701,1702037348,1684959075,1702037363,1852140903,1702037108,1952671084,1818587912,1702126437,1702037860,1953067886,157644393,1634755955,1702125938,1702038116,1852142961,1818323316,1952805635,1952805636,1702037363,1634887030,1752368748,1684370017,1852404485,1929799011,1818717801,1769145445,1929864570,1819042157,1929933413,2004117103,73757281,1701670771,1970238213,1930060910,1668445551,1818846821,1886586213,107307873,1667330163,1929868133,1768121712,1929931873,1768121712,157509990,1667592307,1701406313,1886587236,1718182757,125003113,1667592307,91842153,1667331187,1953695083,108294753,1918989427,1930372468,1953653108,1919905635,1634625892,1929930100,1953653108,107441769,1918989427,1929999220,1702125940,1953391981,1635021582,1701668212,1818391662,174809967,1952543859,1852140901,1929802612,1769234804,1953695331,1937077345]},{"sector":5,"data":[1702130436,1953695088,74214505,1886352499,1869902599,1701273970,1869902598,107242866,1769108595,1929865070,1852404340,1930503271,1852404340,1886938471,1936942450,611217257,1920234258,1701277289,1701998712,1869181811,304361838,1769108595,2019911534,1936028272,1852795251,1929847858,1852404340,1930392423,1852404340,1918989927,1818386793,1929978981,1668641396,1701999988,1920234250,1970561909,208889202,1684174195,1667592809,2037542772,1651864330,1953853298,157642345,1935832435,1885958755,1970473588,1919120226,1937010793,1651864330,1970365811,158625381,1935832435,1852404340,1970472039,1929799779,1768318581,1970473080,2020173414,1929868133,1869639797,1929999474,1869639797,1684370546,1886745352,1953656688,1970472051,1929995634,1701868405,1684366446,1937077000,1684956528,2037581427,1819239021,1836675848,1768714082,2037581411,2019652718,1937339142,91055476,1818386804,1702103909,1852403058,1852404833,1702104679,2019914867,1936028272,1852795251,2019914756,1752433780,1946447457,57958760,73754740,1835362420,1701344260,1752434030,90534501,1936025716,1752433765,1946450277,125004136,1869768820,73951093,1701669236,1835627527,1953853285,1835627525,1946382949,1946513263,1667854447,1886352390,125002601,1919971188,153450351,1684107892,1918987621,1920206955,1768712545,1946707822,1886413170,124218985,1734963828,74605927,1702195828,1870099459,1887007748,1853164389,1767994977,1818386796]},{"sector":6,"data":[1853163877,1851877475,107242855,1902734965,1963287925,1937009006,1819178246,91452261,1769238133,1886717292,57828720,73757557,1684370293,1702065412,1937048690,1963291493,1735289203,1970500871,2037148769,1818326533,1980064873,1702194273,1818326534,141780341,1769103734,1701601889,1918989833,1818386793,1980507237,1634300513,1818586210,208958313,1769103734,1701601889,1701667182,1918989833,1818386793,1980134245,1718186597,1702233977,1869181810,1702234222,1869181810,1980068718,1868915817,1701410308,1769343095,1869641573,1996780658,57962081,57893239,75063671,1852139639,1701345032,1702258030,1752630642,124088933,1952802935,91383144,1667852407,1752630632,90532969,1953065079,1752630629,140866415,1684826487,1685217635,1818851076,1769408108,2003788910,1852405511,1937207140,1953068804,1769408104,1852401780,1953068807,1953853288,1919907588,1920402788,107312233,1953067639,1996976997,1953786226,2030268005,2030335343,74610031,1869768058,-842151931,-922370867,-1144140339,20054508,4849832,1179700,-2144796656,3309676,1703968,1998922,-2140045224,-2144403420,-2131296216,-2139029460,-2131165136,-2145812346,3801160,4620328,-2142830528,-2141454268,-2145156916,7503890,6422640,-2142240684,6160480,-2133917604,-2137358137,6717527,7241766,-2141847444,-2132311848,10911860,9568404,8781968,-2132672384,-2139225980,9076911,9339091,-2135064374,-2143780782,-2144141160]},{"sector":7,"data":[10616996,-2136670048,-2139324265,-2144567286,14549248,11927740,-2144730956,12222475,-2143977374,14024920,-2143551292,13238476,-2135588727,-2136473392,-2133393196,-2139127573,-2146696996,16678949,15073516,15368268,-2139651933,15859956,-2140438424,16384252,-2138078999,-2140831715,17695024,17432844,-2141945820,18251878,-2143944428,19824752,19005740,-2132147936,19300494,19562680,-2132770576,-2135719818,23494657,20578660,23232533,21365076,-2131951292,21659830,22184011,-2141191856,-2135326490,-2142699176,-2130968228,-2131230368,-2146205611,26640386,-2146434708,26345876,25559432,24772992,25067679,-2137292586,-2132475516,-2146598685,-2138570356,-2133196400,-2143649571,27164777,-2140274276,28737633,28443060,-2134048344,28180912,-2134933317,-2143190899,30572593,29229516,29524007,30048429,-2136866360,-2136178527,-2147024432,30834760,32145525,31326688,-2131984235,31850984,-2134146853,-2144632726,42336972,32899624,36077594,33423880,33980419,-2141584892,-2143584063,-2146958836,35258912,-2139291116,-2133851624,35553447,-2134474560,-2132540892,-2144436007,38929028,-2139094480,37093944,-2146860936,37880388,-2133523904,-2132246286,-2134310328,38666832,-2141290243,40534172,39715424,-2131033508,-2145484677,-2143092124,-2138635672,41058335,-2135293328,41320509,42106949,41812608,-2134671122,-2131394363,46825495,-2145910132,43123368,43417606,44466431]},{"sector":8,"data":[43909796,44204271,-2136047446,-2141486892,44958384,-2144173826,-2145254732,45744832,46039067,-2138013565,-2131492156,-2133982520,-2147450671,57803744,49939264,49414900,48104160,-2143322050,48628460,48922782,-2138734416,-2137980176,-2140897150,-2147155208,51806287,51512084,-2136734972,50987788,-2131656582,-2137455856,-2134605664,52592692,-2146499812,-2138438880,53641297,53084972,-2131328867,-2136407248,53903510,54427712,-2135162052,-2133688095,57017200,-2144337080,-2145647796,-2138832048,55968604,56262846,-2133032737,-2138373280,-2131098780,57573547,-2146565268,-2142338951,59146244,-2140208264,-2135686276,-2143157376,-2142436476,62292071,59900820,-2143747184,-2140962723,60949424,60687264,-2134736674,61767857,61473708,-2137489225,-2137816910,-2143878220,62554221,64389234,63308756,-2137783356,63865075,-2141256756,64127116,-2134343514,64651334,64913491,-2141618030,65668092,-2146171928,66748438,66192376,66486317,-2142994399,-2146336653,32800,-1837628625,-1849679709,-1953347127,1692433136,345231934,985608327,-783640202,695634225,1289563425,-452228301,-1846106064,296844186,837360096,-1385519972,-1959572259,235791627,1730393327,-1024976416,-1075546717,1847169650,1486643690,1524619276,-792839372,1652596621,-1135517312,-1821207312,813021166,-2147078962,404186499,2027228228,352450627,548536366,1871759414,339922688,-887477977,-502508681,-1646508349,28244740]},{"sector":9,"data":[1547080606,-2010987100,-1964320492,813707922,-74320216,1255743659,-981454383,-361843419,844668001,-1958540286,925502668,-2140420238,-569728153,1509057304,761225488,-815642870,-421161146,-760146682,-1284892744,1061651921,-1952571645,711547393,1436488851,-347489122,-1363790497,1655979602,-78873856,2072565927,-1025883304,1550063532,-1842917474,-1352161968,-1695580910,1218763989,2030164591,-1997439360,-148640511,-1320207530,-1901005296,693667253,1335778476,1520887079,-114991409,899673811,-2078315623,193727465,-942073716,2109394868,-2068478072,1612011236,-1638133585,653469519,1946559785,998462105,28155991,-1681009266,1629837298,2119473289,-1801730325,-1761253760,-1814554550,-1071994386,-277016049,-1631321192,2013328309,-142815341,-1901057327,-1029012299,-1424828898,1415669000,-274275123,1934346139,-1959330697,-504147894,-476982568,-624690811,-1538597529,-576051771,-1338457132,-1811086822,252731740,-535830053,-1089096168,660692178,2057731393,1985126672,565376172,1449228670,-1072667845,1649544857,-361865837,223911009,784991745,-1274574800,81843192,-939345836,1092803456,-1038744644,-1691058782,808336779,1671057761,-2033655196,-19825186,-742471657,-1672476611,-1440365148,952358109,515663024,1668628434,-768360267,-1675607965,-187945725,-1539678367,1777642518,1986122111,-1459089275,1133136185,1642753789,-670279524,-1845580368,521520801,1890824634,336786444,-443120384,-351721178,-502508681,305222080,352747263]},{"sector":10,"data":[197471003,-1127009344,193735840,199564578,1288317251,-296340398,-2050680410,-1586750246,1102458772,545407636,2138283619,168528654,2077650386,-1685228174,1635803776,-479021477,-769780474,-1600962863,652584689,-287951063,-2050680410,1199909344,-596857618,1814445315,1300908473,411874752,-957710764,-1355693875,208030907,1435388833,-348772058,-83799177,-463586394,-1539386818,-1048107315,-1174312262,-1365340792,-2054207313,-821574653,1296217338,-476978629,122477997,-771493139,435065698,-1949466427,-387326198,-301496144,62682284,1493970749,-1387175664,2046403841,-2068528510,-1194151648,-863976167,1379554913,1069842632,834669509,-752407956,251724873,1903768259,-760149373,554058902,-1587029257,1142296586,707579695,415395783,-1728025180,-1822273010,1826227158,-1473228664,-1198402851,-634266353,-1134272669,-826213936,-907540436,1739967864,651437989,142934068,-417914357,-807725674,-468975812,1210831633,-235155270,356567721,-1544390650,-2131354862,2107596894,-503228381,15973711,-1093233800,2031226720,313891055,-1404385103,711060769,357992112,-1769064609,1845030886,-408841194,648393155,633353513,1764934291,561336607,2084306033,-835960441,456883212,-1205414559,1262239750,1054713843,1681942123,-366951421,886121419,406601743,160612384,1043665169,80246123,-938923197,1485251244,-1431249337,1328473772,-1862692057,1293621598,20103413,1369202658,1091647698,1167370621,1684892478,1178353670,1235088521]},{"sector":11,"data":[103235609,-1853278945,-1338882904,627137935,-1395030827,567585578,1686008299,14104471,2122909640,1077493876,-421808476,1681956531,985252867,1317033979,1835744780,202467940,-1392761940,598535203,-1423266617,1901793659,-1690860173,56918251,-1431192636,590182748,350438122,-1863865095,972095513,-159043120,-1066493307,1634730644,1190551283,-2070601222,2105841023,-1786805099,1617909125,1123543452,-10743749,1887257422,-303019257,1074194590,-1443151556,1674414017,-1872216348,-1422474742,-1979997686,39641010,1983561561,-1016756321,247428256,1800595648,-1006410624,1178194462,-1276718226,659243102,-628880348,-2024861536,-422370975,526476680,1532322149,-94990122,-251651616,-1440879353,1509152039,20062383,-312471582,895474521,292218042,-333206516,-1392761940,1431891747,-1415318186,2086959217,1686170587,1394459651,1061178679,725936080,-139658924,-503238112,218262542,-1095339046,1784996971,564923409,-1433554762,-1026933054,443199914,-929068069,-2132075535,516162404,630182354,618861089,927014761,-676464310,-503238112,392405107,192234683,-1226413253,279004886,-448806198,141244001,-1442124815,469485786,-14115701,1686170395,-1413495805,-1276748995,56901726,-1802016060,2109170538,523362988,-1903671192,-1276750936,558009820,-1786936171,-2070577276,-1442124934,-1220954914,-1155328489,-2146668419,-2014084232,-217736439,488642396,984662831,-1792959985,183204740,2072304298,-939458789,-1588361209,-2100315992]},{"sector":12,"data":[1674418038,-2039988508,1482494550,301946453,33320939,1731984594,-1551887174,1189433351,-735563819,1509650119,-801217852,1344082321,61884074,-428105788,-1389891328,605995132,-197271565,-1390171062,-2018497951,-1029012299,861231129,-423941767,-572730639,-761131521,1995979924,650486836,2125202872,808363027,1281568914,308851448,318017862,995098890,1849824176,-423452029,428721094,-1605547907,247819103,855692947,-1572059230,1053952570,740696194,-1567405936,99914054,-852882234,-268373022,22843641,1076717834,1796451353,403724778,1372602084,1949767985,102959422,646696756,526984321,879194945,367269897,553177259,-1999618461,2902085,-1858723331,-1842360182,1548126252,638243431,807230460,1921094476,-637244522,-1824090374,-936312618,-387044559,-1861928948,-1527619070,1342634192,639798372,-192336858,208180049,-1386784688,17142280,-1262321031,838942864,1925842254,2039695520,1648395294,412489815,-878617209,-852882228,-335100832,480827972,106971562,-1575220908,-1071028027,-1139200972,1281581150,-969161032,823813322,82374187,1495452276,-2026501644,1176132032,1648625544,1310871948,620286138,108932748,455232501,-122052442,451946227,-1566846850,807520037,436814870,-1897764333,1908369474,453048137,-1747596654,1010066129,188257425,673442063,26281328,622078868,-773224202,1170813977,17339130,-2144658844,-122060776,-1809612342,104377688,1628792348,582251184,-1454337976,-871658485]},{"sector":13,"data":[483559187,1916872384,-795470701,-2092666098,1790299805,-2126170905,-1040861746,86935603,1356025294,-509563600,-1745502203,1686950034,99099533,1304489536,-1961969143,-401982974,1222476940,-1132436900,513842644,-1199063095,-1831025825,15925887,-837974608,-493452768,1145735827,-1136037231,824792878,-318659512,-1524958037,-308798747,127471503,-430996352,667061028,1211752851,928820641,-1234976273,736626728,254622018,566600860,-26213880,-532569600,2031166474,-519980909,188246259,-2097448211,907523555,441614956,1634217152,-1822272946,1010565358,1632809319,1210233950,-1802299131,-1899978173,488813721,-173729002,672466603,1323713936,1602288548,-1566256022,-815679997,-200464633,1888093913,-1338748370,747135070,-1202726169,541843200,235079129,975772419,2047083785,1411934227,-784249532,-843238304,-1858052700,540233936,-342792637,-777427200,1102496352,-1872604498,991625936,337918135,-1944059119,83059304,843195185,-1482840227,1672819437,1743645456,-2126316695,1622520344,-1802425131,-1821181919,105942292,-1467194199,1351663806,830606404,231508897,1360644434,-465993603,1649553096,1006666896,573065406,-803716858,-452860219,-305368080,-1754155767,-1451117832,2052213962,1246375360,-2002771935,1130562585,1410897943,39039613,351553578,321980968,1099949162,154175316,-979084144,-855531484,-2002771831,1130562585,1663932439,1460484136,1925473794,-526773101,1094816279,-972541424,338702214,1596073572]},{"sector":14,"data":[2109739641,-1811205453,2097584512,1828785637,1774838610,404181535,61884074,-428105788,-1389891328,605995132,-197271565,-1390171062,-2018497951,-1029012299,861231129,-423941767,-572730639,-761131521,1995979924,154444852,-404660580,1497454648,162387918,-1068989950,984165530,796520587,-1848834619,-293569285,-1825385212,-1279693987,-845401328,168031202,409230258,877669600,-1767008892,-1601057339,704792082,-1533504413,792595415,162387834,-1068989950,-1296466834,504398799,1648450088,1706870486,721889794,615051563,-1839916916,679701727,-2041314171,-1719246965,-1811161857,409233807,-1574591390,-842611154,-692443539,-1932591055,-297788984,956502504,-1920076042,-342190965,-1981251745,-124267084,-2128461061,-295102567,1178207208,1971888402,657856237,762237637,371407459,-970022363,-1804874298,-2106940264,-205298016,-342486233,-2122000789,1471427648,1718813657,1735629290,-1821195322,-673146348,-1865717229,-918468453,-1179896319,1951577097,-1935396629,185260612,756630765,874640648,578192223,-2139606240,-2074323301,-627441446,-2069007027,420501808,950630866,-2127365097,-2028437406,1410897943,-381138323,173771552,46488242,1654963138,1548800038,604052185,-1311334540,-854760353,-902752879,-1015197108,2042666444,470268051,-1045401999,-2020856661,1165843574,-1848296712,-495762989,2118061562,-2108413805,865758336,1479552932,-1247637162,-1523164496,-2131845514,1629782467,-1076864752,-1574470265,-1163383850,2107937232]},{"sector":15,"data":[1334462777,-267972680,811380103,-735857564,243192196,-797678411,-2084636580,-895164593,-1868554219,1960849488,677912408,-1164211048,-1954343854,-83652328,-667220311,-2010317966,-330975735,1273664315,-1397671832,381189945,903413949,-1339423847,2001714149,948453962,795908273,-883203667,-1473188357,412620750,-441299628,403564067,-1601395505,1090129950,-447740772,-1908249588,193642641,715279597,-251614063,-2131108313,1609255228,1015613232,310235127,1491798187,-316560310,-2035275167,-565439146,-1124503990,2134357876,-1514903357,-1927463409,-415093463,-745797085,1166575837,1169109200,-2122776091,-783460219,872990816,-1915699653,1380764317,-1532788720,923869552,-115730606,-717567715,216088964,898360120,1458250999,193201937,1363687822,384929807,-981481369,-232787303,-1073484141,-1681489080,2000639627,1636323681,-1404756086,-972956991,1441837288,1640413734,1266588241,-701693156,-1698616198,1559317374,2060856579,903249234,-68581130,510166344,-1780005676,1432477983,1269023384,-993488911,174687493,409081899,-859496173,-166028442,260824651,690414872,171515914,1901203744,1627656038,1264495195,-312988402,797772291,1681276870,-883467438,-2122168602,-1813349243,-1521369362,176386553,1228515720,133972874,352412216,-262138329,-133541050,-949325357,-1184094616,1749781065,680872295,-1414502393,296827674,352762376,-1951518755,-2122776284,827086981,1901147648,1301976709,1102818165,1320501972,-1624513536]},{"sector":16,"data":[-1854623103,1407048581,658525495,1075431740,-1664329960,97984741,1812784509,-2123202488,1186622793,-1614543952,-251599237,-1065571033,-537713634,-1404373955,711044387,-2068478032,1478083242,695808853,-755898693,234872284,1016386210,-1540065544,-1611235077,-653907944,1355812114,1600369201,-831093386,-242515508,1380764237,-2056093680,-1165371168,1742125200,1639272050,239302672,2110644792,-2066400567,-486350527,1125405326,-1723515676,1727078386,-1526954116,-490371595,1103237638,-293719893,-1022319678,1502297620,-2045266813,-1380944025,1074571301,-1111987080,744560102,851450660,-811440163,684258415,1444449316,-1718396222,-1905762461,1451799711,1313140097,385765753,1099061525,-1402514770,1281394785,1227958663,-1567620246,-876004212,-1108291710,2089149945,187616969,-1254703050,-607566203,-1202738522,202394892,-1371463101,1238320685,167979043,-1255807495,-1676493188,-187945725,-1821181799,477142804,-446622587,1016645029,-1266907887,-74334792,1367623103,345757312,-111522022,1013929048,-979100635,-1607226329,85050952,893917402,415343463,604826966,1474028058,-787665095,1633891168,779111770,394800176,-141872229,-1046304897,-1026527611,1800584257,-426338897,128528506,929899050,652550754,962608425,1376854026,1190193241,648329749,-416117949,750444837,728525830,1677879881,-33179592,352750494,681857553,-1907583825,2061932033,1211759692,-763885589,675780230,1805966029,-146195456,302997694,30201722]},{"sector":17,"data":[-214085662,-1029028641,-1424828870,1247312648,-2053824084,-1684916397,756903870,-621748275,-817682131,1263166343,-388641200,1310277675,48053741,200852678,1918113932,-1910385291,730643441,539446587,1386566660,56135778,-1450186059,521484361,-676165546,1318908728,-690534651,-699988658,1191529992,1112711892,-358415833,-1257997976,1369506343,1314657013,-1662251509,689443757,-436133691,437736023,97370853,731058451,-1869739095,-834453808,1021588331,531515807,227120466,-1048907269,1353499200,-2146900475,1363587736,1089184866,-29170697,1353456899,1020671337,-629639103,-1618450270,-97970376,-1613332332,-1274599400,-584704567,-1529836445,-966062900,1069293614,-1735085117,-1425069660,-1670686396,-849424775,-182290004,352717402,-951742424,-1538313177,-1038044440,-935145637,-1554510408,1026153741,2008512684,-1835865784,138327086,-1563097211,345207340,-84225898,-942856746,1079571636,-700112923,2100629633,1757593712,-2056780155,185209204,1973408794,1499000719,429936669,1216504385,609721224,906365562,414101366,-32883908,199645920,1431042586,5057422,65758548,176026073,648339212,1212573909,1616642250,2131998402,-1269615098,2024565714,-1159159012,-751677232,-889178271,-1014250424,-1086336836,-1094483430,-659433837,-523046189,889644634,-848018183,159912097,1628727743,1694578529,-1314633567,-474958649,-690507984,-1537451490,1054615493,948520368,1410869256,-2099416981,-1646526221,199451277,1703752749]}],[{"sector":1,"data":[-903749233,-2023009716,1112711892,330026329,504702485,1817988306,-155942455,1019800789,380851971,1763378544,1300905735,-1236169099,-2013318261,1950648133,1756733579,-484287820,-1569946093,-1954082028,649976015,-1659320454,652567779,-173986519,1518484532,-82978900,1086421745,89173186,1669335270,1342583475,2002285766,1781064938,1062612457,450937478,1074581527,1093746737,-901212566,-787485557,1348367461,1913269257,-1583999853,-1246896799,405327414,-1954648748,466335233,892792097,1618019886,-1836394186,-674844198,130384570,488103127,1283992744,454362680,-1157405348,1661542821,1868723379,1985769567,941666976,1583431985,1271628577,-2103142252,-336407033,895937806,1034183266,1841341095,329678259,-1928657246,-1530453586,855529716,654428744,-1761586610,-1546487801,-1468615649,-1337566561,2074067971,670105830,515931309,1038086948,598493940,-1339399763,-1434143353,1431837122,-1154909901,-590155290,-1576140835,-130247470,883176566,261067787,-739330529,347009291,-708149743,1386724293,2009662739,1870094776,-295925632,1112076799,-1841580799,-454924561,819248880,571148473,31853329,-125304440,81821657,-2090294054,-1182517219,1217798336,-2041893168,-1852010963,432624036,407457856,643151439,2007706921,-1105363306,-561260210,-1694268460,96308532,490617724,-279553198,2949264,-983676911,28346645,-228766665,2007706921,15990984,343663007,107489110,93614521,-1637098500,1857365317,-535232263]},{"sector":2,"data":[1445884674,1857365317,-639526930,1532160162,-64164010,1653874235,-733647437,159306116,-1312614500,-1778369812,-995811970,-1542869732,-1262225525,1532108218,26275670,-2125397826,1603917053,-1450498396,1412205579,13151189,-2138898232,304368437,413175604,-1093732625,-738585912,1532126456,9498454,-1840185298,708841784,325813314,18875168,785711320,-124286914,-1100017840,-858075180,-1380539192,-368893729,-1968620032,-396890981,-1392547195,-2062778164,-1288873535,1382343691,-1863362981,-419376640,-1540425111,12531758,-1976778298,838890191,1778399232,1262755735,-1224267524,-311989537,1532126310,-1198461098,601985064,353106504,12152373,-1300100327,-937990565,-1380539192,-16768801,-762186496,371373102,-224615150,620769792,-898363392,1750961288,99943976,190453621,-1843208275,-2139310118,2131165192,708841960,-211057598,1881211680,-191805870,579603240,-555649786,757674675,13137835,-1401421712,7982458,-267976679,-1829902592,-1344926245,-1210412510,-1207074692,-2055029242,2125038597,6553700,-301934576,-177131055,1966174244,210006305,336714343,840784204,2007706921,1089798344,-373066745,-1878371790,1304806072,419469657,603685387,-469193312,135216820,699583237,-931681491,-320989348,1604442692,-22342238,104881843,-1766334398,-1433624488,-711584743,906028219,-1220214000,-1894850155,1122640553,890571747,838922858,-1050606313,-318269417,115900893,757690996,1556641707,1343151127,-1449245372]},{"sector":3,"data":[580534372,1794995514,389153010,-584620283,1072497717,-1843220522,1266137050,-2146505488,1996006659,-2146125290,-444987877,-1764409018,510173767,1093695616,571614337,1805937186,-146195456,302997694,30201722,-214085662,-1029028641,-1424828870,1247312648,-2053824084,-1684916397,756903870,-621748275,-817682131,1112171399,548537480,1049924028,-1606173155,-1487313911,848444141,-508312697,54796757,-97769952,2060896761,-16766940,20054066,1573913515,1609560224,47216930,170471936,-603907808,-1510962900,17435119,-16717764,20054066,1959789483,2044791896,1790821251,956341735,570630200,-385834352,1569987966,1786776576,-720571200,1479363416,-855465840,558171711,-1722219964,1125763340,988077025,-1996044288,208176408,793467093,-254595952,1075073636,-1158544846,1329544236,137197993,-1702041462,-469303123,-1760689927,-800728607,1686120612,-1848578560,1493727919,-1658368477,-2146683904,1588225289,-901207471,483003935,-2144820166,-689045404,-695492626,-1932436434,-130481926,214433992,-1418280222,7642841,1217482622,46661713,29954577,-2068425413,-1826684795,1597636836,1108829575,-385834352,1569987966,1499728128,1074392230,258286753,-359633017,738304656,432667852,1138352451,18432135,1630630770,1195963954,1363710273,-1072969728,623648774,1956567702,-2065636352,1638425,1633929529,-599599572,-2008905204,-815841274,190945075,838873748,1164933376,-448094336,1682449092,490738770,-1951218897]},{"sector":4,"data":[395313568,-1417803743,-511111017,5326993,1970961814,43291092,-1329342595,537127120,946119982,-1050933061,5326993,-1060633656,-1510257541,8717554,-2146680287,-786530292,-866575182,853280901,421530153,219707648,371378945,275598139,54527649,1366751397,-534763148,-639527154,-1146826683,1206222082,797737422,1993551028,-2095865852,123768084,-856211831,1515184641,1228701945,-394543385,1514625173,258037186,-2074801813,1722462258,-847817742,-1145461277,-1522197506,-319784664,25118825,-192370681,-1541859572,-40751055,1075917159,-2070652152,1625562352,-1994273352,760860846,-902986663,755988546,-2059026592,922553306,1119623018,2082394660,324147771,-597132864,-1762884867,102901956,-1254595467,1231695460,556496193,832701390,1075398931,207364642,-238174105,150111533,266964304,-1546067709,-49590456,-553377205,1149798580,-844488958,545071780,628819320,-160075193,412876975,1006660516,1623127881,-679865841,1340211660,1155527485,-700792150,2064165650,564939352,928220565,1874762642,-540201699,690871024,1669844803,1583366474,715978069,-73781044,1970416460,612080013,-817649117,1095394183,570494816,-1134262271,-791025983,1692086264,1242070785,510697300,-592957438,-151663106,1107298953,28681298,-1291181088,-1460286110,1107311311,-130243502,379860086,-1038815232,922121123,-641788570,-933534109,1889498201,1436025374,-865334117,-961380565,-2054901300,-765124352,440106014,-222134958]},{"sector":5,"data":[-736383569,-692187551,-2048975000,-1300279848,2042088646,1342718183,-515970675,489757035,849351970,2143403012,-1244870990,-285176551,-1842740483,164430554,-1391400568,-433745919,915864843,1758242917,-532134399,2082361925,441588283,941358085,-829030046,2037406146,-1070251801,-448651086,-528090204,303435779,-398686773,180472065,-2145915245,1767849996,-887974265,7642840,-1877286172,-1780939456,-522912488,22553541,-205697054,-694978560,302997694,-90247303,-703506907,1129878960,1633010394,-1725256692,-203582276,1852762488,1775339263,997989962,1113281050,-1577328156,454362760,-1339608281,93978285,-1563827705,-1041939477,-645705656,-201571740,1162041953,834036682,-24049396,-1962475632,2105691758,1827065298,997990098,1110790682,-1477186588,1216098269,705954384,-2146991037,1967073932,-210154013,-1543241446,880212028,2126528420,-1566081041,1065250496,1520788341,540353670,-135395408,422345466,1668628400,-2063311963,-1877339648,2079785816,51789309,1446704755,1495807528,-1912592349,1984224722,1071660713,-774652041,981912928,674637910,2630489,315413134,1783037972,655874706,-377593805,-623011954,-758483868,671580718,-1928057798,436840899,-642515446,1109459085,26305807,-1567562183,-1221899079,50231710,1017413476,-1540065544,-1735193815,-948015532,-1033886645,1801385891,-2133920850,1095934224,367453186,740148070,-1895136367,-1313965603,-1644133116,176488564,957381008,2107805130,1346785831]},{"sector":6,"data":[1183498505,-1614543952,-251599237,-1065571033,-537713634,-1404373955,711044387,-2068478032,1478083242,695808853,-755898693,234872284,1016386210,-1540065544,448013765,373630128,-595763644,75342993,-1278360864,1232646068,375628309,535986598,57297327,191659189,-405267375,-413568783,-1774974912,-950649952,-556047763,2041452159,627376592,-480813144,2032032864,-1932721712,-398687873,-1473956604,-1235003553,1088936382,1342075183,-1539178438,-1461911115,-1258314468,377455154,24420058,57297315,392847035,1066474503,986677899,1708324353,574753409,1042483642,-358465838,-1610489022,1992408268,1841152899,-1922817624,1017130281,1992408092,2126365571,956341735,1523720248,-210571136,-1006642176,1956540349,1893820162,1044440921,1758500596,-435847994,-319484401,1497260852,63994286,627409299,-896846924,-1928989950,-833394791,882646144,1386229097,1209425247,-1928989950,-1649971047,-80201472,2122321513,929092079,800305471,-1530183088,-1817110892,1512165905,-867491837,1814887191,1080292043,-1975451845,-1291815260,1144676930,157564971,1711243897,1283365261,1212547432,1649559008,-635839854,538442294,-147910253,69739497,334873312,1232646068,375628309,535986598,57297327,1262047419,99106047,-132934495,10299315,-2141564178,-2053449746,10348481,-1069576164,-620661602,-133253724,235149962,-1795686574,-878375891,-419390041,2089245266,-855438011,-436346814,-1754569727,-721405361,-436177244,-1324469818]},{"sector":7,"data":[1012608179,1115228136,1990511312,238153221,657241009,686751901,-610000117,-1514406267,1143253655,1026053191,808414861,-212304099,2019262670,-1528490185,-1330870309,2069999848,615159717,693389124,1088915834,-988983794,1227975161,920263116,1578113018,-1056316606,1764223621,1703709014,2127038362,239608253,766570965,22038596,696225485,1446748186,-782078521,2033139745,-2047499012,87457525,8766657,1929409694,1221238627,1666670368,567393974,10299200,-1863129155,1018431396,614389563,-1981546456,1077454076,-683120521,86516954,-116157279,-284444855,237954496,2030512164,-1530212286,-50887205,1214263252,-2131620272,1615346354,791620814,1797180619,673503916,278983428,1377487170,1486627100,-2089164532,-1985448499,-398720758,-365738493,1079726668,-742516366,1352907860,-617870258,-2064168389,824597137,555706474,-1583942406,-1932109959,802854782,1561436453,-1605004527,-1365881992,-1184457348,976961767,802504777,-720579544,-1326934480,-1631278435,-1636040076,-1627137903,1522684979,2036881403,160108090,1222421978,-1620704944,1937783209,486782187,1136384759,1484050633,1332139342,1379926074,-294436773,798753163,-545846224,655355242,996266305,-398665387,29477121,-234755000,-663779995,-1406128081,305027053,-1636040172,-1878796143,1282884044,-740430056,1640004337,1781988699,-1932399082,-1969255941,-2044968893,1622805346,1642298823,1781988699,-1307558890,978295878,206137600,499879939,1824097336]},{"sector":8,"data":[-1090292578,1010886537,-1533529025,-739802954,-1646785661,1220705189,-1256713299,-40890572,475024250,1998414584,1723900523,1633705664,-1416282543,1436256297,1505188963,-1809825561,-264658794,-722584892,-1995832483,752266484,1942876883,-377847602,-428654547,-1365236971,-1027556224,1448671916,-2138944257,-411445320,766063424,1793487680,1838556588,1727621398,1027663801,482381428,1736206840,892547364,-1049267618,302024004,213749786,977675626,-2137362778,-1999724161,-1399739818,-567807744,1228701945,120610795,-805880695,145429117,-1404413717,711060769,357992112,1850400332,-1217086215,1757642551,1041212852,824806685,-33435320,1787144327,869626263,620280006,-254601076,51210630,-1285931804,-186629314,-1754644336,-62176225,-120776948,381969085,-1813825506,-939213623,-59501584,482861316,345467506,-621394544,-1049518960,-466072038,1728237310,303875857,1428407563,-588991619,-1901862655,-1064750279,-482862562,1390208147,-1074975972,146848201,-301350749,-526773101,-174338004,-875848755,-699705107,47083182,2114113149,1732051375,917715968,-1247931209,9341430,1996808266,-532871968,1858616584,-684578306,-473816614,1128533646,-1626041466,-1704389008,-317983672,1832901726,-862059120,26837087,-254587456,28890131,1129503781,256226351,16519552,654329741,1026106989,225394272,1603841439,334505107,940798057,-1482095108,1768554879,650465077,944241594,-50338114,-726998016,-2137036078,-1813849442]},{"sector":9,"data":[-38109859,35554535,1023461238,10953136,2134024507,-307522028,-1204571076,264434446,8338177,1313061949,-706837760,-1106734366,1395822043,696700544,-1646514208,625314495,2084800758,-1732994304,-260000092,742826000,-1048290131,-833443615,669050227,17809613,-1080701699,1545933808,-606634670,-1669314761,-633610051,132423079,-2142290687,-1864216674,-1059471784,258802286,-39252288,-239102516,1834996040,-2132078394,146848019,1116358989,458100240,-1922527139,-1679199587,-564915216,-1070504958,49323599,1211214134,668205521,-858337402,-253396692,326158611,2030181942,-1096642246,-1321213743,-726719020,1778515955,-1068550807,1240555342,-462921980,1792201898,1587118239,65959426,-1064964004,-1847406515,-707674462,634695999,-797521,-1806928383,-1101491998,-1371295525,8277248,1380772419,346259508,255071345,1739490605,-1677000356,1814552785,-2048063048,537536806,842631761,-700088416,1562797953,-1357462384,73152513,-403266799,-2069489936,24636956,652246078,340966526,1530059607,-255747712,9365267,1395846526,-1535729792,-2023202857,1474494812,293617467,2064875735,-1838804096,899841493,1997406904,327171899,-619544477,-630163776,-677078796,-1928790770,-1289579798,-2066463379,1744994001,-29355073,-1945392757,696699986,-1005522912,218214166,901802396,-63273659,163107844,1393389806,-1777070142,1875900117,-520139584,225476390,-2134919393,-523357003,2084425525,-623411886,1912762402,-1408302536]},{"sector":10,"data":[-635404077,319058074,1740676499,1232149059,-1612988744,824780275,-49582775,1343628154,-209708896,1801408556,-1716795955,-211255233,-820081275,-2136237696,334552473,-234243989,790254172,-326405196,-686558093,876380415,66622217,631193795,-72735291,1728187727,876380183,54064649,1704673475,1711808,1800576158,-789531473,163069700,-620676874,-1600167121,1392295838,584734484,793247934,27731712,-1486554509,-311715564,-719192903,2013948192,-1413504046,1478712637,-1118838271,-1820851981,257998550,-1628473070,290858490,1486205142,1438833219,715918433,-577454951,1860794611,-779681938,2082359913,1649547835,2041697939,-589834361,-1286563049,-1247516377,2043199320,-2021890355,-1069624646,-2077062441,869644,1079878789,643158161,2052468009,1692644667,1329295283,977405618,2088382239,-1286041346,-1815765038,-2049670550,-173731339,485874079,1728686477,550912563,1648470682,-1765246001,167027021,-1694449896,-1082437532,-1448610195,-2054792833,1412776364,-2002860670,454496626,-2094909930,-1343191075,758438379,-1532360350,-644074,116777510,893496453,-1631223212,1207963531,2014618302,-1855393279,-1389869955,-2001350444,1485875750,1607061939,-1198511393,2029559708,1120120690,-1432739626,1842307649,-2011812518,468698296,-1244603355,-1867897208,-1445547176,686459505,-1598679814,646493648,-1286041430,-1114827566,952534287,-1905954058,331635304,1496074325,322370541,-1281995912,-1709124030,-815644246,1369386855]},{"sector":11,"data":[-564033075,1805752755,542461200,-306419791,-1974951927,-724125552,78714394,1446335189,1435030906,1973482885,1635866134,-721110050,-763009490,1064982068,-1273560866,-1999986103,1267551898,-1666486754,1836823340,-2143868634,166504025,1696899392,189942794,729119510,233489697,1786927115,1032521129,481480990,1477168475,94988930,600718731,344012305,-366865806,-1017126078,-1709124030,-815644246,116769383,893496453,-1631223212,-391884876,1680061487,-1323951434,1649595652,319665297,848444137,86582917,664747403,117057770,-888241855,-2001350640,1485875750,-1855663693,1462510356,-956296366,168136004,-1516199544,1477168540,94988930,664747403,33171690,1015843762,-2054791204,1412776364,-1801534078,645234528,-1039995561,379237660,1389692081,1366955531,-1023243731,-1592169795,1431113835,-1519931104,159458077,960686883,1875977890,157429044,739681450,324647159,1145331169,-592084988,646493648,-1291283798,-1847197999,-2028190424,391255927,1782044954,345451298,-41861557,1648433681,-1819982385,-1892380096,416946592,-416456320,395612580,1647129800,379890185,122221612,-1376793385,-1581675641,1431113835,-1486404317,-663253871,1020091089,-1875260639,-1535213664,1596990661,1013374345,325317953,-1741349044,897134321,150305868,1036184210,-1338866539,-1431298417,-1119365005,1072826303,174944483,1028056442,1835513219,1006660516,1623127881,-679865841,1340211660,1155527485,-700792150,2064165650,564939352]},{"sector":12,"data":[928220565,1874762642,-540201699,690871024,1669844803,1945977674,-2125436697,504369661,581873350,-1145370819,-2138932670,314705372,-1258674287,-452800697,1936917264,-1896105099,-1141508345,130794139,2124365260,-841090349,1451250937,-825369262,1860010169,1080556006,-539185808,-700719976,-883986706,2025285131,713266256,1845535376,506464367,-22341691,1148744631,-327059312,-183002376,-218981445,459715968,314708893,-135082531,-428992254,-461319940,1018804571,-567471726,-78631404,102763049,1094839014,-1085450260,-2059962389,1039142860,2133398431,700430683,-1012127536,1383121789,1589557595,-592636840,961059295,657946571,-571865357,37372641,51414324,2001763955,-613123569,2020849662,-2122452924,-1751385876,-103948806,1724973943,239267355,-442778795,-1213578862,1349418611,-589517536,1694650270,-1199193413,537569538,1088939526,-1093633184,-572740161,941546568,975584891,2121512958,1506783324,1082850182,2087958388,756441278,-392634404,1039046195,350104863,-1863667668,1869480098,-274659400,-338690488,-2074986633,-1904494577,-1141549267,1133703835,-300194207,-572357006,-523636019,-1078371375,190505014,141526135,683432756,-1535012796,-1692696536,-139427099,-89442799,-1797992995,-1324883071,-1375754170,-1734877220,-1100917189,-1385836319,1855118556,-1682234108,1720149491,-364480329,-261187263,1241936801,1845535376,671631726,-137110149,-1449411595,517505906,-92804108,1241107933,-2040985631,1233165307]},{"sector":13,"data":[649705819,-287933936,239717487,467787234,1849786866,-1022123536,5326937,132527927,733673296,1379388666,1034684218,-1208036472,1889760115,-150096906,1855570738,546694374,-539218558,-717317989,976732859,-505587187,1854085929,1845535376,-1084534930,-19029314,762672055,-138379328,-856022111,528759351,-507616810,2011892004,-2047728585,-103948886,759226505,-524414498,1249425224,1221951568,-2076770223,2139076462,-2040954957,2003524074,-1082547721,-371401555,1641428808,1244719038,616151387,2011905768,-2086983881,1182316470,369189369,1212746223,-1567560178,269119232,-1749285009,-1167993249,806626449,1872929015,976713707,-872281883,-2094539721,-454660431,-1380532067,144694492,-2072573163,1376602478,1915347421,1363697027,-1534839040,1022239003,-583996497,-1592944565,-340840209,-387392464,-108635848,1538777446,740800953,1861146165,1427067471,-108138386,-505548157,621223209,922767688,2142751365,-1400912796,2015524291,1087964010,1855518039,-352143243,271507248,1861129780,1166091337,-18553234,-567466160,154974481,-1518045429,-1868689736,141492386,-329183768,1641447249,901261759,1595005315,-692493866,229849176,-8334094,666483035,-300544616,104484718,683432898,-585440954,-2023413279,1075106366,24043789,-1819656756,-449327878,2067795332,1727862145,1125293339,-233982998,1543389433,-1641760327,930581255,218230311,672456365,-505587136,1782780457,176624787,-552178226,-257869474,1465344783]},{"sector":14,"data":[-578609647,1094558173,-1739912895,2137440773,-1049393066,1114037695,-351869358,-898268041,-505572838,-83790994,1243790427,-1148894832,114026178,2009587098,-1447328479,2097756738,-1751991717,1999321648,106052178,1509378509,-511077232,149903092,571795688,326033885,-559063102,546580241,-423445547,1530627108,549228986,-1511106964,-986288117,1145760366,2007734256,48577106,1509378333,-1068648048,299773436,-1793072938,936100539,-1134839805,718293282,1944182114,-1379860109,1222461661,-361831111,-1295797680,697809499,-1155179592,35462569,1509378435,39958928,599546757,1444982956,271453167,-505572799,-1627162862,-1744048362,-1209000802,1350443893,-1447320192,-1602018238,1479439799,-1168385983,887150225,-1720344812,222860555,985840533,-1222082268,1097488760,-2072548602,-184300727,2032319579,-585491528,-2083615276,-1799726124,1452695598,-1530223122,-723676659,-473910642,1691778386,1062231598,985840453,-1222769946,-1585686152,582769581,1695097929,-1037581637,1974957064,-2017428189,290119085,1848451132,-1581490966,1222487465,1293914856,1114037543,-1609614619,-1574716325,-1149943688,54184898,-1980731715,-1773486020,-1533146897,-361851634,-1604257466,-1532694954,1539573358,-802580550,-1447299740,-1559923939,-1873152183,-1459521607,-1020412837,2005612656,481859461,-1980731747,1539895332,679420604,1383549755,2005345335,-1802323365,-300509664,465095589,594917216,226326690,1114037543,1779026917,1114563037,2025278478]},{"sector":15,"data":[1130395993,-863668437,-279575186,74751496,1189768889,-1410744068,1381126775,1974951426,-2135925714,-598575157,-765459657,778360445,-1251129262,1390199483,-1134864894,977842732,1944182114,-1212936894,-1057143688,-1447336600,1086427931,1263131949,-1215689324,1213345397,-1511074213,-98957127,-2050180529,705154251,1919869405,-559031167,1831886614,-423445611,-579728558,-1057877023,678803436,376496198,1956947182,1974939673,1751146030,1856617333,-1817836247,1914811374,1457045651,-395310097,-1027889861,-981391413,1848556635,-1149950640,1100097474,1256009121,-1410916332,-598584713,-1168408061,356264343,-1210786502,-374324935,288549694,-770656047,1852760541,-567427580,366748689,-1175425483,-1389984882,-1740697122,-723705315,-1543362143,740652471,2011948976,204946002,-1766171751,-769011487,593761857,755909032,1491474142,-1027930826,1610859044,907533869,1997233120,-2027466876,-1799726218,-345223122,609374839,-1168393084,992007313,-892552283,565442631,1309026589,-1037190053,1283071048,160366674,480498296,-1273297704,1805938151,-146195456,302997694,30201722,-214085662,-1029028641,-1424828870,1247312648,-2053824084,-1684916397,756903870,-621748275,-817682131,1330275207,-1167208518,-1627023590,-701208867,-724537989,-335657794,-608983503,-224033170,-1573521625,-1663639522,-465290100,756933217,-1480772211,-329710519,1640076749,1507002926,2046178028,-1498556851,-1495150157,-412707253,1729176629,-2010328926,1267358018]},{"sector":16,"data":[2060891266,751787585,-1402361051,2064221684,1224377563,273600290,740919340,1522619854,789986667,1783207271,557673434,746270505,-1291283746,-2010365729,-1513902990,1030445761,-1754845407,1809476245,-1351474883,605367931,-524720367,1496977497,-1266512997,1592490966,-707647025,1115346612,1526095418,1729176725,274268347,1805212124,2077668482,785341956,-692791838,1591493242,606953462,-2069010671,-1257467643,358369688,-1159744602,-697140746,-759978323,-1292412394,-1960793650,-939332291,1936074113,1507002926,1014740461,1772852644,1233450156,-446761378,-1150873308,-435136032,-1040874407,-683840678,841994078,2060891349,-161552830,287595870,-1295991193,-1873195232,-1498556787,1497422259,187594256,-1235595318,1145622426,-1838813195,1032527977,59835902,302684533,2060891349,143721890,1185407034,1507022571,-1173288215,-730064391,557689750,193473712,1263192236,-279325866,1113882942,1963634393,1809476105,-2076040899,1580090558,-1638577318,548536512,-1181722158,-1280922282,1217187281,1379563339,-811944358,-1751887800,1976206792,-380042167,1381410894,1513800405,2043648694,2055744544,1922925227,1733122989,-1994092378,-877927022,373412391,-533584774,-1391020112,1842852774,1262954363,-379989162,2139723780,-1193017153,-1863047671,-1952670139,1523270253,2127534774,1855843541,1733122861,449397424,-1841273855,-1456469581,-297956576,-1844923091,-1640665675,1974622133,896382358,1075436190,1525026905,613763762,363685649]},{"sector":17,"data":[762552758,-1117303461,-1991313766,1507022379,-800949777,-2117598518,2031248957,1032527977,146091495,896382366,1689228446,-630547989,-1846198933,-352136056,-1454468478,-834827488,-582456997,1030478442,-775332300,1809476157,-875029443,810223394,71940499,-1241454247,-1423600430,-1561023383,1975754173,-173250133,1753064619,455215940,-1164180352,1842291272,-1802193403,-1280922218,1142339805,1914133560,-692792046,1150712699,1240389170,373412388,-759797125,-1261098345,-2122351914,-1044037276,-1382673289,1507832742,4295960,-845999012,-380042167,1196088290,1507022411,-1861878551,-1142904305,-749294692,860285785,1116220640,-1624970919,-279378871,1531632506,1507022475,1098444781,1840608440,1217306165,740919340,1215980494,-530919646,371886124,-715483550,-562309452,-1826578361,2084791297,1785819907,-281187366,35851048,-869627960,71927270,44559193,1715044808,-1386868183,-1931889754,1525040830,2060891349,-2010372289,-1711821797,-1291283894,-1635409959,1529705385,480536397,-575370840,2010090120,-749327607,1337190489,1896896960,-1260602265,-1640150137,329897330,-1213813290,906029492,1193638664,1586266574,752095725,1619899629,-146896633,1340211660,1015085402,2076108617,1196987880,1633010266,1426680591,-1431293308,2001990246,-1180310579,1159462587,-260495195,1229482476,1641479433,-1572716217,-625907672,-1392831648,-2055041342,-1865199548,-786658167,-1244675604,1329261945,341590616,445073781,-1695030672,-1784406944]}]],[[{"sector":1,"data":[1344439979,526984321,-1060772798,1819857095,-1530883980,-1629672008,-739890147,1525081344,-1556883791,-2094978586,-1050972011,1906733400,-2140601065,1571625757,-1452075307,1547366415,-1610092012,-1202769873,935376057,1940706829,1132119958,85407740,1123810741,1669357444,1456156129,-2065956653,-172919115,-52291423,2052201758,1399860675,1938069196,-1151848578,-1977917414,290674251,883822064,-217032272,-2122364751,-934055899,-1044611042,1538502885,-1787624628,-2091858070,1212497466,-1050341678,-740433291,-102232848,1612378757,1447790363,233836883,1236657071,-1040907252,-1573179320,-1781954423,-805103664,606902295,27719084,1672853689,-558543960,545526836,1656057476,-760275768,-2116664045,-754307355,1523309568,1263980209,237632324,1779008784,-1704012345,1589888642,1879264499,-429673070,127859381,1351439495,1991615620,1349042111,407498891,1111967775,1774682990,221293927,497771982,-777102014,-2052185929,772031314,-1346524331,1538508422,-1636826292,523330997,250547971,557588797,-463917795,1616789519,1549992801,110646967,380314972,424946504,-1535213664,-1255406559,-701448277,-1729589043,-313047374,13852699,-1151708469,2057368152,1954916364,1616787459,412245747,-1386868191,979571883,-649382366,-228229015,1196186029,-822361152,558375877,-463983245,-1735405920,27661660,1706390678,-637526223,-2028712962,-1389935880,576758105,13891765,1588405451,-998218383,-1869429845,-695397212,1910041262,358365884]},{"sector":2,"data":[-862518874,-1276746827,537553310,1672836260,396276710,1702914350,-1431447917,59842649,1976665116,-594841311,1240422549,-1956967924,-781435306,1743388224,604084278,-184849699,1351632930,260836265,256741044,1391464361,-508470581,-1435951930,-2140545461,1479368978,-1604697678,-1541156583,1135265351,730403972,-805078698,-1573742569,-627259981,630522976,726144683,-800575916,-1014806278,698893994,-240200173,1812587312,-2140546346,-1403619054,1079878789,-416493423,1923630746,-312627813,-1859121509,13874221,1596824868,-2002435781,680953993,-1439664048,-227405758,129128621,-779815893,1903730805,13873687,1546513956,988474318,494844292,-874438830,409253304,-1945381347,-1635386904,956940468,-583444885,368699404,906086176,1750670026,-1987013945,-1892380047,-1532650592,1228669035,257998583,-858293742,1028645377,-1438326797,316029634,1484458155,-1792955318,-1841867899,493862555,-253768403,1126772186,1248036815,1482459206,-1536277973,-2031079378,-32898235,1109889424,-2063506816,-1458704826,-1406134199,-1333381907,643123953,-300534231,-119986447,196622593,867569645,-426004620,1180233608,2074783906,-1155690520,-994354180,-1351322851,-276240741,-1030075048,-1880691799,1856075451,1182470383,1235764219,-204646470,598505284,1326798590,-1678702475,391156706,-1889962014,1363388176,-318464143,-1981375697,-1172001746,1349757616,-999363631,479547651,654327771,-1585643209,-1771125002,-251614063,-2131108313,1609255228]},{"sector":3,"data":[1015613232,310235127,1491798187,-316560310,-2035275167,-565439146,-1124503990,2134357876,-1514903357,-1927463409,-353038551,-1037047257,1221104012,441590913,519196975,1140776242,30755033,1273168405,-1166730210,-2071979107,1088975545,742962467,1903751947,1390769110,1234605024,-613283583,773972038,1858224036,-228382312,-884379479,2126622244,956902997,277730428,-2144194857,-424906120,-1574714203,-597948593,312305084,-1523666345,1336026052,-1126409209,1383308645,-1876795352,1820071099,369840805,-1453793553,-1574595782,-395254276,1268337629,-452942955,1236097510,762667982,-1574602302,1220113710,-1497801940,-1816524667,398762533,-577211566,1235120203,1855818600,-902865874,-1749364255,1177261874,1221446401,201295009,-892975183,-576577195,655739899,1605657682,1788583056,-865089023,665310131,1390745390,-1389845446,-2075995172,-778942115,966593378,717189177,-975318383,-734643743,-1696623613,956492176,-847934262,-2143956270,-537189346,1032390448,-251599253,-268853721,492918178,-2074801813,1445309501,-1446852080,-548550245,-426340809,376305903,-1008229996,1159964081,401978237,-929985486,1378124104,-220506316,-104046049,466780687,129135936,2074015197,1485843199,1359966903,-181264011,1855748889,-167383438,-4539945,270593113,1849500077,1901380578,1495671826,-1921830985,-1094689330,1597503450,267421684,31860150,1582830468,-1226488909,2027408818,200312660,409543716,1351355305,1496296457,-1739984735]},{"sector":4,"data":[1773364000,1747743590,499155540,1995847788,-1758814389,1253219332,-1513476122,-1708185663,361567379,-703096133,602243730,-1102473125,237758390,84483387,77015559,-1806978404,906175616,-1093658166,1846733520,11309462,-102881295,-347521920,-1996017569,2110781244,-351753454,564939352,-1339399699,1276466822,-110212386,934769852,-1268202625,490606501,-451991155,385160117,-465025503,697450532,1047178010,-1621506237,-2066416863,-1294917904,-1432653051,1330147310,-1127942655,-1687324223,-584305877,332536675,912686016,-443380289,-2055786029,-318681272,1072487064,170847420,-1574714203,-597948593,312305084,-1878344361,-1729297921,-1405096742,-1788126335,-1027876278,332532225,912686016,-1674866499,1059670582,1090239301,-451253480,-716673128,-1024733695,702656862,1547845650,287327422,-2144885542,-1601104662,873746849,-1239082225,183460518,-737937520,1887341642,-765447199,605978677,120643579,-429179511,-1641549568,1436741625,158014817,-1405254571,-904899035,-912545342,-1908940979,-118495594,-1584130451,-1515076633,-1660701659,1178739617,-2059303698,392556102,101350692,-110869962,-536860637,-2075807793,833172205,1392529736,1365376779,1190298305,971102467,2027101888,-822033034,-1626039891,-1764923946,1276692846,-410852832,703038591,6834225,406394790,693234263,567608609,-1402196819,1346810448,190634505,625671572,-753262556,-1172177434,-774693172,-311701920,790417714,963836008,-1202746807,1376688130]},{"sector":5,"data":[1578023736,-406519413,602210871,-1762860416,2106796744,-775221914,474757985,959385168,1334462905,1638663608,-1644891887,58481736,1569321242,-1046284398,474153098,1624330527,1896647874,-1583329816,120918353,270826887,1657300480,-714664602,-1848803955,-1802404814,602734876,607806248,1679883124,136422691,1723622144,1950677962,-1835919580,1832091698,589408093,762939688,1588600834,-433313778,-766544245,-1821218188,2126614548,-241666777,1301075207,1675000880,-706430524,584381233,-167204021,-1026944938,-1446872516,-165781041,-3661828,773324173,1744148344,887061675,526480713,-430677659,1889223469,-444856053,-1465822394,1988284344,61884058,-428105788,-1389891328,605995132,-197271565,-1390171062,-2018497951,-1029012299,861231129,-423941767,-572730639,-761131521,1995979924,-2140494796,67475958,177309265,1492388661,-905964357,-1006366653,598313844,-1224933336,-1230742403,-297350523,557601585,-658095983,-180289630,160067873,-132512973,989384948,-2046490068,-475887890,1557793086,-265828956,1796000949,-448539677,1770323934,-939057454,-541882758,1283125648,176249426,84106529,-1859163652,522228339,1186109620,582262612,1359403294,-373094134,489543221,1008775756,-220299716,1355867685,797838249,-1951031596,-1268475323,592535292,151190088,307910568,-2025486529,1468817988,751876840,-1777282380,-21618899,1910821024,1078666869,-1420999644,1325415826,1380764241,-1338457219,-241991203,1726690288]},{"sector":6,"data":[957872450,1341849890,-127284812,-1857641796,1495860212,47532177,848330042,-921972719,1696679016,-1136600165,-1280252479,835260630,1223303709,724631754,-1821182631,-1662936556,726146904,-1066519902,-751656715,-1217931929,-83811783,1696893769,558037833,477258193,-2060017365,249691618,1538063268,-380152298,1122673161,318969059,-1539452366,281039183,-1313978023,-171795864,2139980162,-2097905339,-333044806,755194383,-1249248724,1857124424,1227138207,677928220,876434968,25690430,454442477,491849402,1310681349,-795844014,-1878291661,-1980333336,685910050,1053968488,-1854702698,-1383111547,-345897974,-1214324669,-1866735549,182109380,376064277,1205972747,-1620724402,206748423,2029537073,-1862000681,533596803,-1269237943,636673662,-1454321434,-1070625269,-1490693332,445248226,1292947527,-1865369022,1883772701,-1501734228,-440053941,-326199808,-1308052414,1296613298,404181527,1211181479,1906902609,1077350901,365381835,586007450,-1827626499,1689202992,215095741,-1622643039,836772205,-1624923444,695505728,214742464,2049956203,292110124,1231536152,1646019442,702430851,1548492810,1954521186,1882663436,116226168,-2048236055,1698718721,-708062627,260571402,1286220820,-300545198,-398718298,848487192,-1563275648,681616923,-1951707704,-1962622641,582109430,-1271952245,556108588,1166898160,-2002239230,659522683,568721090,-1043014326,1100576326,-2119023394,-1929082600,29737224,908133321,1141965992]},{"sector":7,"data":[1832996151,-73392093,269830340,659522683,669384386,1625976493,-375688541,240919275,256908372,-6440855,-2044181088,-754669335,388231040,1947889745,-1837990383,1893708636,1610146953,1540859100,-601319238,-931464538,127206295,-943521004,932786796,463628415,1309909158,1569504259,-798375867,1238038853,-1031942286,-3304665,1542932921,-601319238,-931464538,127206295,-943521004,854736492,488780818,675651839,799598982,1594138022,748135580,2032327927,-1795432644,-1447357051,-235894654,-1984163877,305201765,-2096031223,-874378102,-1575344900,-73357797,445426583,-1440505153,-1541887738,1152911144,-294686978,-292155310,-1021113690,560650470,1627482810,-787536528,-2077882358,-401532342,-1867778755,-377884535,284193057,-539165559,55747804,1934042491,593865417,1340211544,2013328317,1623119507,-277278193,1445329566,-1783572975,-1025883304,-1408474795,-1799579350,-377949219,-2030080402,508193233,1377450876,-1854791396,-1918270533,-1939018239,-913067032,718491160,1267340435,-1244166595,179183750,651881681,-863843431,-608553300,1905137220,-1538153915,1240029522,1807997185,1788808110,-1260923544,-1743418107,186025537,-635385833,-1256075782,2056656105,1513363157,-628954182,1513543623,-172902688,959451809,-789173155,325973608,1800399436,-1556309699,-819173364,-172911015,-1376348211,1753066589,1460571204,690384223,-1854791398,-524378437,-1466967364,-1190710048,-828230734,996222031,1380756044,904681794]},{"sector":8,"data":[-1216832351,-676165546,379940409,-774489201,-778278053,873116724,1782442886,761731742,1963686358,510107176,551196275,443381443,1204791887,251850102,-205887687,-787194680,-178332509,1390887328,-1952553668,485308954,-338326810,688604062,199969073,-945013775,1882734472,895463577,-720899688,2083540364,-359528203,-2064302654,1703915570,-303606687,1459602974,-34783862,-1753731561,2091608053,1967731935,1634017121,1127081556,237269147,1044833659,-2056691028,-503228381,15973711,-1093233800,2031226720,637181679,-1328148138,-633120619,207705538,-1130812756,2029247892,-9539863,1248448902,440106014,-448646062,-2147059933,1594669819,-1597575278,-769773422,1629771202,-1974889168,-1482731445,-1642777343,1125738895,-564014823,181511362,28622512,-811558729,824597201,-1755370318,26188506,-1884446339,206582805,129694538,824829842,-989762231,211367399,-1920707032,463521503,619393939,1526014585,-1010565089,758919811,774973018,281456424,-1601399241,973239415,-1592417180,255855856,1321122921,1600997843,-1269882740,1279675412,673352622,94202926,1636882422,-800474688,-648254113,-584602192,1479507582,-1384305897,1477281116,-2122733220,-1941940091,-82316431,265124593,1221948547,730619692,1549843960,1924527789,1918973204,352773797,-1491074463,-146198231,-1302856439,207987773,1632453735,1600372858,-1546690351,-1921577968,1447145944,-98661239,1543495895,-1935602451,1643098344,2122149208,-405691904]},{"sector":9,"data":[20765306,-782745500,887580887,-535349655,323384010,1227958535,-523630332,2063605767,-837236152,-171795832,480654464,1695618749,353462629,-809396120,-480477543,1140533903,-1373890928,-627940782,-1859169261,17274987,1258742405,1188116524,-1074645478,1093094728,330130019,-1343520232,494756815,2014007507,-1224520177,199282560,-132179166,705051145,1534405452,-1975379429,-1501863428,-1152294496,-1427949901,62428716,1886600848,-677112554,1265405023,-919991092,-1350183834,-1173624051,-611940015,1964381821,-1939876536,1630573137,-2054964399,1657031933,-1892412888,-1533520727,-1915725580,-621992256,-1392154726,1388735015,-551681993,-2032713110,746246901,158356334,1326671035,684874328,1889756076,-1858930431,1042884285,819393259,-2004834403,-1844358862,1104863021,454755269,48086467,1241377520,-105568299,1629752181,-449947632,1110255910,1892526718,-939147297,1891649642,-1238322503,137951474,1671615977,-120195570,1756540966,1548800186,1703174885,-1117773634,1524643460,-239856698,-2090914744,-563496966,1086600914,-2010357309,-451924724,-1777036430,-267544112,93809683,-1259370980,-1765579717,1718665288,151196739,-1571462023,1519328355,-363456004,439564691,-464737781,-585291581,-261407447,-1712039536,116969636,1885939488,-1389333970,-532759309,-2049671124,1885862165,537674832,-1743293864,287659800,-35839463,139467940,690378026,-1061081307,514565443,553374162,-79312540,-2103117240,-7286993,2076731158]},{"sector":10,"data":[1594116433,-1881501565,1044925658,1498518704,-1881501565,1090266,1655863230,-1484458687,-58046726,1943307804,44335521,-396799689,-1650247964,270863628,-560398208,-1812041788,1017222676,-864563822,1123728582,57938746,1142104859,1492413187,-2105212092,-968610820,-225721059,-10080391,-1595879742,-1601472921,798773601,-962056144,1748986318,2128422885,-1273772454,2076775408,1997995575,-1254423803,-1185848838,99160059,-485015214,362983993,-827838256,1410897943,-1623955613,537358516,752936572,1607551019,773355395,814881730,-1340378984,-1193672643,790013091,-229106747,-1475577184,939750533,1576231006,607782468,1163143272,-1035468275,-1739286154,-614932572,-796387456,-1842923277,-1812041738,1854195450,-811494909,-1289637669,449518313,1812586518,1363685865,-643064823,-863868738,915831729,1216381628,587808266,210419969,1756707905,-1158757992,1938304252,-1911151462,-533898896,-1750009082,-1532439663,1851005068,-1815425302,660569693,1832081524,545430126,769196830,157494640,-351569702,315816764,2097800023,809145037,-536310850,957054591,-1533504461,-1644657302,532964310,-666093412,-555902417,-1457074395,312581775,-1102620579,-2064281936,1401288056,461091999,-124842823,-411905569,2052489097,1156828599,-166635881,1649284438,1672952276,1206221572,1962954303,438908689,2098335680,-1006397201,15971742,2093978488,-1339371017,-1434143346,316022466,1634011307,-1494954668,1271372783,922515315,-212841845]},{"sector":11,"data":[-1831675679,-981139888,-1600108059,200694625,390468044,15942207,-2075801642,-632317375,1963477305,-1597491681,-1160313208,23771779,1015482109,-979100490,-1627486174,839891059,-470777753,379099382,-415570499,-205471088,-857495396,-1743247463,894618751,2040029782,-1870439986,585167923,754627841,-1935539943,-427459026,1905241345,-2041101269,141968851,12738388,-1236867746,159331644,2033254661,-528717742,1204633614,-329105014,95829128,-1358088762,-730593419,657851153,287630824,-1719195290,-1872513742,417395763,1582196052,341533024,43290924,382503906,-1350019563,-333293552,-1743258951,103790086,62418518,-531549296,1315263512,-984782242,347587288,-639197236,1484796562,71940564,-513701287,-1151668793,802721172,1953324848,-39756456,208555148,-1669629561,2146333294,-1138599311,-1370918591,-440265549,593045558,398787880,1800673432,-840374430,-1685600046,-1864350873,-1530365616,-379703946,1700010152,363232591,1848883995,-646596805,345207341,1005697950,998819756,903815862,537194904,257557232,-2089235302,-1742289174,-1679262914,-696089547,448973328,1634011371,-1446852066,-593370195,-1476571081,-1258670274,-1687228591,959117059,554954907,-683278194,151861504,14043321,2096075640,-182182208,-1006397265,-1092125794,1971606921,274081196,1486205174,-1509283005,2083988847,-1688519970,1521803711,245335890,-1550412602,-992813669,1896887582,123696449,-2128541840,-2002751480,700946220,-516142547]},{"sector":12,"data":[741912421,-2113369560,124812489,672706337,-2097326568,-2012609549,-1939385648,541221945,-1182541978,-867726775,1712159603,-1737552346,-1402916380,-204619324,1505979067,-56917111,513115676,650545523,1042884126,743191019,-1798591435,1616796850,177099105,-1072709910,758800178,918299226,-2074028110,-2010349509,742022962,1236871212,-1022053458,-2033421618,571182337,410752780,-1569995115,-309618175,649285134,-1020550571,79366250,199024421,-1127825316,-35604232,1099709955,-1719649305,723276301,185255603,607717099,-313124724,1236894471,-623622518,-124824423,-2061432909,1471130646,-279862727,-1462024971,-1737147182,1451997753,-778261673,-760678616,-932964750,753045866,1150596811,13805787,-1837169933,1126965155,61884074,-428105788,-1389891328,605995132,-197271565,-1390171062,-2018497951,-1029012299,861231129,-423941767,-572730639,-761131521,1995979924,1793041460,-2108281602,1495032448,215095568,376573136,350108740,539567845,363521283,1005552670,1026170069,-1820860919,1908568476,1392283017,-1738402245,783539833,-1134545070,861934785,1689859648,367512899,-154784862,1654006057,-980021352,-222154234,1344807121,1077106783,-1350710991,1228506423,-623622518,-1416735591,1100637234,-48444310,1014927016,1007326260,-1695254268,-1589929851,235894814,-999292657,1233515536,-612148992,175120893,675812919,1624357657,-39536190,-1674278237,-1170433659,499935811,121409488,1883178887,-2047602492,1612116296]},{"sector":13,"data":[399699943,545068545,1863280309,1655486801,-763440532,45819984,1112472108,643669708,-1990254295,1228695261,1675000977,-106914876,-829831252,962236520,2026674895,1690183810,-1030074988,-904866245,1129847234,1484458027,1695034179,-103394207,-321046364,-603925893,1453305947,-1823244804,956488503,-1803776822,-1337570615,2074067971,670105830,515931309,1038086948,598493940,-1339399763,-1434143353,1431837122,-1154909901,-590155290,-1576140835,-130247470,681849974,-1590990617,-1040174784,1616787619,-79088760,-1787035577,-834616931,2043277293,214705404,-427478230,2060288776,1999960135,1367082092,1288370640,-464962478,-52430403,-1964522556,1278298952,-1755713732,1588599593,422611552,-316158560,-1350019556,1839519771,1217767757,1227273194,-2091263836,1830947514,-1570332708,-1065106685,1023684956,-348237279,1299347504,537160064,1174944974,1963695092,782563257,26103042,1304573768,930087822,1300909506,-1522886507,-1188772570,-375976090,1715311370,-1993807858,-1703054665,235802504,562618750,177343209,-1803090509,1205697167,-1080081627,1493457992,1846644724,-807216221,1624668836,535115513,-2055485069,690421247,-289083635,-232513869,-241682977,1509119270,-262401137,-944965244,-213829751,-697523676,-2035223024,-1327623850,-569289082,274106032,-1381383478,-1147066626,-630642434,1027426269,-1875345225,39116806,-783882885,1025117159,-1439104865,-1399767452,-567807744,1228701945,120610795,-805880695,145429117]},{"sector":14,"data":[-1404413717,711060769,357992112,1850400332,-1217086215,1757642551,1041212852,757697821,-286476637,27461642,216706958,2007220812,540241731,1279296610,648302150,-1356335733,1929422787,1086430549,88843202,454362854,335780217,-1480370408,-1371000535,118731629,-1936041552,633678668,190041258,1479540372,1616783895,1282823777,1078818811,-906596805,2015840133,-1257485963,93223522,343045578,-1217240779,191848118,-1577547812,667264092,-1454513631,1483328892,1449209160,929911709,-121297211,-1000089955,1287675291,-1741299730,34410481,-1461218436,598530372,-1408474707,1415687459,748813270,-1712792612,61521933,480481919,-1846931227,670105772,1015085534,811592521,-147027705,-1424851505,1247341320,1642930604,1451667498,1256082453,1958541678,-1015072841,262517864,697113918,-546310129,-1383389557,-518388987,-116259192,-863893469,915831729,-894860104,242111052,155036274,66090974,562585947,-1743246495,-709782470,-2039673572,-1400601312,1897662286,-960027814,372713926,-562456478,-1919657033,1160785880,1724910616,730789523,-477276348,-2027329915,-591735402,2042719908,1220207746,-75725375,1578216888,833334583,1696934988,-1777595239,1228312665,-537180539,-1385936024,2064539153,-600311797,1288324427,1649826642,649360280,821070124,1499443863,431759370,1641132467,-160754773,1274594176,1380764229,-892033482,129205412,1447564404,-166072902,1370705774,-708714239,-383678367,-1708849400,1232063553]},{"sector":15,"data":[956806078,477110653,1091363238,-24369905,568094723,-1407180664,441601274,1725794655,2126530876,-207787518,1729269593,-1140211705,-2000179975,-1392917983,-1405187897,-427595422,-1395047351,207727907,-1339938900,-904898938,1196956098,1806348466,-1177431171,-1220582985,1267591907,2071248252,66879707,480506488,1380607704,605978677,120643579,-429179511,-1641549568,1436741625,158014817,-1405254571,-904899035,-912545342,-1908940979,-118495594,-1584130451,-1515076633,848214823,673364357,881026752,-1821199201,-1680244204,-130302193,838796050,-2069620688,-826075981,-1854760459,149292475,211419555,-976126254,-1108243864,1619679723,-312932572,-1923786503,1702918537,1734463755,840155249,-461879884,-1065625731,772015481,-1285459200,102901944,-1977655690,-2049084095,1224427891,2126094392,833180219,-2000969144,-1562628800,-1718290855,2043199467,1140776426,779801301,-1257924624,-1442370929,1239283020,-892642960,-371395252,-1687134608,858362437,-1050313001,279753313,2000524282,-1185262875,633709819,-679678038,84603520,1634926638,405321907,-1703447980,-544892172,-304667050,600155164,-1437831830,999851341,-584670560,543880905,-1237829572,-1877048808,1727078313,-1332121841,1119913467,1506298367,-979055725,331344931,-1820799814,-852025484,-2035259885,1867322710,-1072881647,-227016322,1277632419,7054484,-1091090116,2048003936,-503198505,-537707185,985836100,145429206,-1404413829,1401263393,-1097100745,-852681361]},{"sector":16,"data":[769323231,-2016459991,88623715,-1185848889,113653499,-1258218442,1228532988,-220969334,1552386417,-727304622,1507370186,571128451,1721752685,-2084371550,70343872,2136088893,-723811495,-1244555449,88796412,659513367,1679192658,1211230706,-289132549,-584835405,1156828423,-1792955175,-1000647803,-1955593400,-1899358714,494935920,-663494829,-355003670,-1399718279,-567807744,1228701945,120610795,-805880695,145429117,-1404413717,711060769,357992112,1850400332,-1217086215,1757642551,1041212852,254381341,624681185,219172108,272184494,1915721305,579554030,-913823719,485355286,-1450301532,53605593,-2050452955,787964569,-1029526556,-316158688,566600732,1360916664,-1108128024,-1012743599,-1466125177,420554211,-1577198302,1667406904,-1489342742,-1139574188,-1469033233,669901232,1154037802,2142718022,405229160,-1813841256,-2027329899,1918364573,-435831919,-1711168760,-780217844,-242587451,347319997,-1249393726,-650113434,-59625578,352729145,1616818203,-585148831,1578216726,-1322925019,194102684,1912608557,1555841796,-1815909529,173105536,-1943190574,-1339608108,-703571554,598315793,1267533096,-1737121900,726341286,-834662803,51507203,236754469,104531595,-1339668938,2017834154,861648245,4717385,-1620441486,739870848,-906616141,1119545496,1204541578,1938145698,38271817,1687563493,-661189612,-1872311934,808414441,-780986812,1182511473,1288357318,-727304622,-344415030,1980688178,1760017026]},{"sector":17,"data":[-367830708,-1536253626,-1269850082,545693839,-1040714875,-342761912,-1744524965,822360754,-768211964,-463432117,443103300,1417621707,1091338611,1963322636,-1298607922,-175844313,-1566557288,-2043366078,-1703054633,235802504,255921323,741949512,-560854574,-767594266,1731332917,1343209985,-800597465,-1555791564,105976593,-1320740315,954223718,-1909709247,2030228096,1508675902,1216326275,36570204,1553072743,-188020813,1498368133,604682883,1833456427,-1462163593,-354357120,-200227664,-846068860,-299001568,603784039,-2146978856,146313470,97387612,516712999,-834559266,328009140,1011542348,-2080125436,-1269850082,356887183,1153252760,-415443582,-265788108,269367315,-1524397239,258390308,-1861555817,-1434232329,-737506966,-916644910,-1741395210,-1990235740,1228695261,-862277732,-58682504,-593499648,-419734583,-836493645,2031321103,-649797645,1642930604,-333206516,-2070601300,1293244132,-1157500561,-1676459778,-1613215267,-1302883621,-667546895,-1358497549,-2025056153,-1137087554,-820572607,1488161104,1129896263,-1408474723,247568938,-1003653845,-645899414,-1550680318,-1798545634,1006660516,1623127881,-679865841,1340211660,1155527485,-700792150,2064165650,564939352,928220565,1874762642,-540201699,690871024,1669844803,-949663926,-1757407096,-1723126120,1077162444,2127736013,1380764369,-23629016,-1469033245,-562485260,1633877582,-64895505,901911731,928181914,1925299296,-1253184419,741096188,576352742]}],[{"sector":1,"data":[-1280679492,-170999020,-1148095847,-1559697915,-770926079,-1245654658,-931724340,-1138599383,-1075110033,264271239,1646844207,-2114972314,-1928031374,-1456294487,-295692746,2006681730,-2136418009,401662192,1208959244,-1275556012,1123727111,1399723232,1235430497,-879535672,-2091266140,1830947514,-1570332708,-1618754813,2047369912,-1406688190,-1745621567,142146046,132896351,1745740572,-1182498702,-868069686,690380190,-347145214,-1705319887,66081613,-1214273134,-649792563,-1396431956,-925197782,47935049,-1457678860,1547392995,132135428,-1802360445,-1996005235,30209854,-111521822,-414630784,-1779926082,-1034270888,1796170069,847533321,-228152656,-473073837,-21251675,681919771,1777135737,2020260169,249024213,-1575434872,134913348,144439938,-2146923746,-905842835,846758979,774420659,-2038026032,1142137680,242773763,-1382981038,-824870806,-1589180969,50253371,-960212798,429714593,326784123,1660874684,-1822235807,-2027329899,-449647715,-871664093,872629777,-1388810466,-1237885423,743191019,1928009253,544008859,1092577605,-1094557487,296564847,-1531436962,818261243,-412468043,922060139,820865906,-1625961816,128510318,1762602883,1549151002,1873003104,-133886344,-506615963,-127434639,756699712,-468268456,-1362734197,1398782070,-692181401,1092048819,-613965792,-1056347462,-1937730413,-1932904189,690336626,303022106,60354429,-206201148,-812419072,718403452,-2068476240,-702627158,1695066898,-456305567]},{"sector":2,"data":[-946081882,-59280565,1347062582,-757538317,-1030845549,-1474729801,1712341347,1385100947,1289916770,-12861521,-243492712,-1973818296,-864360607,-2099427143,-2142173965,-438697779,-1674113135,464488534,-1392794408,-2128858939,-907944007,-833220928,1449238752,214698858,1920284458,-1926437204,-328544991,-1768682698,122433963,399207456,-1675854151,-294853376,454362634,1633705648,262912849,1449873386,-1953930802,255200290,-435518651,1385100947,818261082,2120515868,-452944868,101379692,1916910357,407491756,-628074920,-39552587,645726375,267207498,282358915,-1533232748,1835672517,-2058507700,-1566557288,-154542810,943464554,70364218,1045569853,1920479467,74022989,138202656,495973446,1070944624,-2147275100,1704157843,1235816038,1500727473,782526359,-493794815,1071694124,-2147275100,143811219,-1464399949,97180110,-1337368553,504366572,-1795247920,-1715458550,-1145081761,791102465,-666533454,802960130,916756724,1725794783,-1612428996,82942005,1151919971,-1121735463,564923489,1532200341,-278491674,-309928349,2063929792,2000373733,930184449,264247849,-1729135342,-1247886333,-1820851981,-772309809,-1248939990,516074116,145429206,-850108059,-1678792988,2004044743,1250637564,-656280752,519999698,1145240285,-939390307,840913286,-389347899,-687437648,1074017757,291851318,1111595820,-281041764,-632338514,1078012740,646692802,151587541,-796244711,1078802424,1131914178,-1181307685,-1589409207]},{"sector":3,"data":[1116719853,-1897210512,-300946662,1367467216,669877602,2027974918,665283559,-874145768,-794576194,-1552271460,-71058810,1411398068,1232839000,511220929,-907421127,825697990,347322441,-1158295869,-1049713444,-1071086983,-1623948442,576352692,-1402245188,-22007611,-456630547,-144533235,-2137799889,96162145,-2021586714,1152075255,-1439856553,-1691582722,-281821099,-1547542319,-1539371942,878123148,-1837976417,537362389,1928886126,925502576,281132128,-2025476260,1555417570,-483441838,202833214,1923167530,722224818,970608538,347319881,-636762686,-823010793,-1854760491,66265755,1600687370,-1008046488,1142313208,-2074289404,-2024376251,-1076219208,51463826,199632137,1497424143,-388317680,911867056,270666664,-1691550159,690414932,1278315269,525934599,1023420295,-682099782,158152331,404031162,-1264634657,-1928031374,-1456294487,509924914,-1732656670,841507651,-654307002,-1802247631,1999637403,-1152564159,1087696019,1484091512,1115293794,1624669604,10216688,-1673459502,-376631176,-1900382945,1881275817,345703452,1966091163,1217023306,-585184198,1384123369,957246043,-1526963922,1509696485,1216331907,26673756,-181943002,1216314777,-527302052,1061321648,-2123721787,-1802243449,956409472,-262369334,690295684,303022106,60354429,-206201148,-812419072,718403452,-2068476240,-702627158,1695066898,-456305567,-946081882,-59280565,1347062582,-757538317,-663679086,1586389844,-687437728,1829974162]},{"sector":4,"data":[1200245049,1115205257,-209721353,698224403,818228257,1550237171,2042719908,1723869314,-1264634749,-1138599311,-1248763281,542484022,2114873013,507463636,386222618,-1529911712,-574542636,1021368588,414595128,-1450172798,-161475011,550769141,178527687,1020772398,-24806623,666079379,100616343,860349818,-1137713021,1478747430,-1118838271,-1820851981,257998550,-1628473070,290858490,1486205142,1438833219,715918433,-577454951,1860794611,-779681938,2082359913,340924987,-314886073,-966363041,-456095498,-1118280127,-463594549,-2037261141,-1573773999,391255843,1379956760,-1442593685,-1027660421,20340475,1485319280,1220578285,-1740022511,-836105004,281132232,1154056496,2142718022,807724392,1216219111,883539096,2116750356,1652586945,-1829125348,-1618983473,1380764229,993576769,1638226185,-617533169,-2064269817,-2018454868,-655517544,1072488476,-1844358734,1121640237,1686067305,1529095074,827503807,1116380977,190041226,-949331703,1259735139,-2113367771,-1770278452,1973403446,1945143912,457420071,1132050,-678285849,833296937,-350147508,1728475696,-1355759609,39747725,1290439232,209479890,737379017,-1987619004,1636260599,-1878837205,208695074,800482091,1967464449,1043622182,1135420580,-1743303578,694625580,1278323501,1370636076,-550661615,-1101380902,-1849326474,-233699778,-976288269,1818031260,-1313746594,-1138599311,-1361644260,287701955,-35839463,-589983070,-85975836,1141780268,748240652]},{"sector":5,"data":[554080407,-785753406,-337125355,-943290790,438354594,389900125,1823741723,-979084180,1282239011,810240170,-2059124361,-1613648277,905700454,488381968,511842390,1500676240,-376631132,-413133251,53388335,562569584,2132159150,-1005537279,-2062883056,754337951,1544539841,1777347668,231640066,1508675910,182967959,537763461,1182339921,129226384,-1198457260,-443395064,-1537261928,810240042,-2059124361,-1613648277,905700454,488381968,511842390,1500676240,-376631132,-413133251,53388335,562569584,1061890478,1644747904,696611592,-702885273,-769658784,-1878392553,1863280221,139583313,1384803072,671090895,183544047,2222651,749039630,-1912438544,-1188786694,-375976090,-1978363126,1501028919,728175247,605991910,889274336,300611918,2064149302,137053016,894785771,-284769089,-588772872,-1837628890,-2002903133,14043253,2096075640,-182182208,-1006397265,-1092125794,1971606921,274081196,1486205174,-1509283005,2083988847,-1688519970,1521803711,245335890,-1902471994,-133004426,-932024960,1236894599,2126268298,-505192582,1729321561,1006907780,1515790648,-1734842605,340970623,395862614,1448540408,2111953284,1443368623,-338066346,1260643634,-1559697915,-1242460415,-1547520785,-946727140,492704033,-1240533168,268678613,1335503628,-217892646,-993996056,274543534,-1821233575,-1247179500,-2061850318,1375418776,326958140,1166144108,-1885403176,-191281528,483148429,1771743485,2041973164,65839680]},{"sector":6,"data":[595866957,-1119356340,1338969958,-1928323265,-2112306637,141269510,-1728800442,-487098204,311384439,-1090964380,-2076861592,-1708479427,1528554207,2013705600,299599506,-1071994610,-277016049,-1631321192,2013328309,-142815341,-1901057327,-1029012299,-1424828898,1415669000,-274275123,1934346139,-1959330697,-504147894,-342764840,1094823996,1504578832,-897977584,1192514124,-1440217484,1983678215,480821385,36113217,-630918749,272855202,1323848001,844217627,1214489945,1600348828,-1732927980,1460936358,-766985784,-2055112255,-2010327226,1558232185,-1519293020,1516046735,-48317406,-392531625,-73243008,-1533260970,818261032,-262219023,-2122726926,233719429,-1808866897,-1736379629,884310199,1524737946,1780071458,-134033733,-712718334,-235926692,1949201415,-2120580038,-780346244,-31216584,559682902,-688583385,1510512738,-2135861541,-1864224295,-645070418,908725430,-1567259972,-1430863317,415642094,1840000,1677843591,-256247742,1330166149,-993792163,-793128931,1165964770,-595820446,-232795780,-1025866064,-2104064086,1649864173,-1691582824,-219431596,-2447184,1238705803,-1943781351,344967430,-2007610747,1463027375,264249201,1839982,-1206918666,-1059590911,340971143,2040029782,-2145274914,-2087598994,143896586,835128857,-1402731623,1578216746,-966936521,1321100759,-482262654,-1171856064,436949964,-2128841397,-446813005,208696056,1677247274,-1293226353,-1350019574,-276146672,77089545,31219675,-515434808]},{"sector":7,"data":[-1473199927,1391690461,636956227,263000770,1691737475,-1802495212,-38449792,911363274,-1530211162,-809391082,-488142630,1657344874,45819984,1112406588,-1882186292,126289724,140687488,-2136718726,-17972948,453359760,202646667,1638983901,-780217764,1112414917,559783628,-401709387,-1023173049,1656266627,-1539147256,1932561272,-2146702857,1519402635,-1464399949,909235932,677986153,377576724,1713448829,345189967,-289099886,-232513869,-241682977,899650343,1946677656,-696496346,-518994845,-1691825796,-1405254603,1971623201,-2070601300,-1792955275,-1431293308,-1467383957,-1971257490,653189165,854048477,1591487797,-803355445,-792275783,-1602915956,-545461240,-1030075084,1401230645,1893927007,-902429588,1953393691,-2120580038,1006660516,1623127881,-679865841,1340211660,1155527485,-700792150,2064165650,564939352,928220565,1874762642,-540201699,690871024,1669844803,-899854518,822208359,1768554863,1321226037,-317982718,120891918,-2117881159,1516331300,115167563,422345291,-254327052,-1508493161,83645587,-1098895392,918022864,27911236,-1052245369,125060997,1915607335,-711584621,-133978472,1640557766,350532945,-1172629987,1645790976,-1965453055,-539653562,709663081,1041546038,420808331,168031170,-1896442906,1863266308,-758643980,-407972243,1808367838,-97068499,-297680399,1040493356,-65594092,-1623959784,-627936588,1908413619,46406507,1810096669,372829688,-3242575,-1929269731,-429073795]},{"sector":8,"data":[-584610516,-1939285654,774666913,-1705693570,352723849,-1668457189,274271864,2141497242,-899590261,1722884325,-303595479,-1030694515,684223395,281229318,1707314956,-871218486,769655123,-1030694515,684223395,281229318,969707020,-1973850807,464206432,1183130035,206606551,747414641,1673074635,971896939,-1319499959,202663125,-1252952789,-1533249796,2130518469,-241666777,1799284774,-401677775,-1392927156,2134608327,-211731711,1125158745,-1986867993,725833907,492922120,1634011243,847566117,-2051700816,1220827987,-1465026813,-713114803,1332619556,-534371223,627704485,976729613,-391166436,-1928048468,1049167712,-503198473,-2131142065,-1092138692,1486219387,1438800455,158011233,-1338866603,1408394922,-1511797385,469679033,2032706885,1214901488,170639340,808432049,-398869668,-1950476128,-1912495352,1748986166,1026107109,-1095888633,-138862535,-2017454300,-1027302194,1446586766,-2062968734,741738482,-994560448,687737091,1464085294,1649817987,-1233385320,-2000296240,-2145855738,-1449979434,-1979242461,366053899,-1276184608,284738068,1812883193,1903001688,-86897272,-150371371,-1827547430,942154665,-897073129,-1847388719,1992733034,-619965276,-2012113903,-289066485,998569565,-1451819835,-2025859531,-1585643225,814629262,2080243908,-48799132,1045581002,-1405357621,1094158791,919698675,1634011243,317838932,91085824,-667511727,1751378652,-793102266,894596612,-81518976,-1996017441,15100733,-107075599]},{"sector":9,"data":[1633002223,1426680605,632044932,-1026944938,1305058217,-1769064481,1845030886,-408841194,665170371,487579057,368979109,267355166,-1465716680,949077730,337626308,1278290821,-1282116036,404270806,-1284469696,-982456542,1578918404,-1263882144,743864389,779584351,-961237173,-1086969108,1219155086,1727077451,-949762467,1967377001,783510159,-1898985760,-225995565,-835917881,-1840931984,-631706107,1446976510,-899037341,700908104,787911513,-745619658,-1888116844,-483478772,-525016271,1183178076,-779656489,-59400332,798773601,-626511824,1449253623,980861727,1227566124,-1144954901,-423288922,667751686,1611144429,99147550,2057243537,-475065262,-97076699,-297680399,1040493356,-65594092,-1623959784,-2070908236,-1010625357,51157445,411837558,1083737173,-1942391096,-1390087224,1159552529,-1928666153,-1652765778,-964460028,-1975072127,168776652,-1529052629,-1061396375,-76831806,1808176408,-1255183738,-1963213980,-136309295,-1038830634,1204785862,399207456,-1675854151,-22017533,415884056,1453110793,1527820168,-2128806806,-1675854236,-661845501,-1755566033,1052002824,-1626041486,61249653,742611162,202158697,1650024000,-2035429502,1523557569,571286457,139328035,-1140322685,-895404351,-885108148,-945013775,-213829751,1798754684,1415669000,1241558,2130791132,887595922,-535024312,-1399723504,-567807744,1228701945,120610795,-805880695,145429117,-1404413717,711060769,357992112,1850400332,-1217086215]},{"sector":10,"data":[1757642551,1041212852,1026133277,361479962,-1329684320,-1838972826,175070971,-1978363022,185781753,-1044105145,1596008942,1013374345,1807672649,-1957895631,605991910,1724712925,1595162940,-853128654,141234017,-350396059,207709448,-2070601300,1806348338,1856539007,1125812991,309777549,-1433411840,-169843086,-1907725565,-1097589524,-1923840048,1049167712,-503198473,-2131142065,-1092138692,1486219387,1438800455,158011233,-1338866603,1408394922,-1511797385,469679033,2032706885,1231678704,-1331989831,-2110002333,-798063231,-1587106035,-904576310,1498138222,1805894292,3231923,-160193598,742659699,-979084108,-1642988509,1660874748,389407329,-1647271070,1711374311,-1010518877,-1768942501,-562456478,928132787,348240992,-1707003040,-1388783025,-1388880367,743190955,1571649236,1722309066,-1185849009,579549691,-1216564212,1428165560,1807952802,749959005,1928914270,251859312,932847,-1094055708,441621532,1915481134,-281815892,-1211997999,115795351,-316158699,1573626908,-1590340882,134918770,560596666,1183467833,1419369172,1999637403,-1152564159,1087696019,1484091512,1115293794,1624669604,10216688,-1673459502,-376631176,-1900382945,1881275817,345703452,1966091163,1133137226,1035717786,1409970209,258347407,1881275649,345703452,1033389456,-831109443,45819984,677414733,-2021263744,1985061108,-2047096316,554359037,177503545,-1643003858,-979075103,1325184544,1323446763,1410592771,2026674927,1025471635]},{"sector":11,"data":[1640834626,1695050525,715918433,-193667174,308964718,98884608,-1180462465,-1923840016,1049167712,-503198473,-2131142065,-1092138692,1486219387,1438800455,158011233,-1338866603,1408394922,-1511797385,469679033,2032706885,1214901488,656661615,-636810662,705435197,-2067242302,1240713280,824788987,-222754999,1323848097,1887617011,825306232,1783335643,990860236,1220085207,83067613,63799377,-316158685,-1067709668,-1419002174,-275949756,1647826522,-572440255,1732122480,811136208,1389266093,-1738385829,-2091307912,26281419,2030642077,1607418724,-381238784,-1138599255,1491861018,834691995,-1177505453,-194985038,162213976,-699915381,-79039654,1227958599,-1038830674,926270439,1189813211,-1011568684,1967408290,623018562,377276096,1968007794,844138667,1639168472,-1626645328,-396826573,54810740,1142475115,-928220669,-632707311,62553013,1078835001,-1147165758,1649585701,-1506364015,-861265067,1519396505,343148467,60985447,1556120515,557646897,1616265554,244511408,-623947337,-806888054,-1559613851,-407679552,-726829358,-1214056845,1180397432,2018827602,-1719246328,-1167749644,399703004,-1613810175,873743296,1542300879,1189996456,804845592,-1567656716,1612162342,384414579,-1135788422,-209888446,1216610227,436553748,533492297,655741487,-1903965022,1834260593,352750462,1170905520,686329502,121905615,1883178887,-2047602492,649325128,1506780233,1523899267,1296495665,-2037316603,694763369]},{"sector":12,"data":[-548515770,-1045629624,593420385,-1629434813,-198190005,971675282,-1064962821,-2061061005,-1267482465,1540313638,-1310318916,-1706226527,1211750991,-156738603,-796625154,1980692659,-346436988,952615298,573844172,-1340799261,-767112551,-1538416948,-222221161,1045570045,1299525739,-1925013935,1461332262,-1889962014,1792201746,-1793294177,1807678796,-800202191,-1000089988,-1652506723,-1561331280,-502147476,-1026944938,725833753,715927049,1237899930,552448367,-995164659,67595817,411978391,1770197890,303022106,60354429,-206201148,-812419072,718403452,-2068476240,-702627158,1695066898,-456305567,-946081882,-59280565,1347062582,-757538317,-2072094830,-1874585997,1150748200,-964307891,202646056,858795998,-1780109076,-1169192375,-234138676,1486228676,1639100888,1630573248,652266073,-1157402560,692986724,-1616177906,1380958379,11404512,889385031,-1342831332,-439721509,1405921829,415625739,-960046579,-1289698744,-1953657954,1483484378,1239429337,-1243733219,-2039272596,-2070647863,279353381,1346930114,54808716,-388461205,-687437648,-1139963860,42453446,1720041800,1161581288,-447040853,347339809,11664578,-2035977761,305679414,959056966,-894081845,-1499962040,109634839,-961208008,819533974,806898144,-906560344,-1533504405,-289099969,-450617677,-500077762,-696483764,1980232058,-1701886264,-174884660,-215416456,-697523676,207707409,-1340726100,1468315015,153830232,-1708479288,1299342047,457830622]},{"sector":13,"data":[138942459,-1683691044,-638858931,1597608824,1237098037,-862302230,-1343777928,1237112218,630788026,-2018482669,-1405254475,207727907,-2070601300,725833815,-122182134,384818560,-520165721,-388186615,-469331822,1102900469,-737624033,1021602622,895433537,-2027921727,-1983977717,1564694707,-2078983839,371502199,357992112,521824845,-377782365,1252160283,-272618187,-1550682112,2075420713,1185563584,-1614543952,-251599237,-1065571033,-537713634,-1404373955,711044387,-2068478032,1478083242,695808853,-755898693,234872284,1016386210,-1540065544,518649308,1105945220,-378662847,-735031130,573387569,1081151563,-1253561557,-1821240998,765822740,-1988522218,49741955,960947580,1185563428,-1614543952,-251599237,-1065571033,-537713634,-1404373955,711044387,-2068478032,1478083242,695808853,-755898693,234872284,1016386210,-1540065544,-654670979,694665814,134170673,-484791772,277013616,-375111566,505857737,-1960826586,-1416272846,-1019816417,748072970,-1314255480,1932357841,-1427750652,1941565075,-1146941155,-662806176,2146354393,-1931989280,-1699762016,-443923798,19806934,146627303,-1491786517,-2050656767,-785298600,1863092268,-2070662303,607754485,-351312163,387143265,1638674328,900693293,739922510,-1775187519,364314208,1153913883,-1547558734,1285206043,-429844031,1916638122,1193491174,1851900278,1624654162,-1742367260,1485155647,-1175955381,-1387296183,1675009528,-105376828,2122958764,-1695552028,327317708]},{"sector":14,"data":[-1679262914,-1338866635,-1861003642,137053016,1806348462,1856538744,-716010507,-680218177,2130889070,-484662382,1805948108,-146195456,302997694,30201722,-214085662,-1029028641,-1424828870,1247312648,-2053824084,-1684916397,756903870,-621748275,-817682131,1296720775,-2107503231,833927968,1089997363,1217022393,-1992700372,-173770619,472958380,350018019,1064305681,419955647,1577648947,1629045057,-1029543049,-1634409522,61249717,330965648,-1054399894,247474657,183430257,-1122991608,-1132351286,598585533,-1145349434,1228501846,-1072385106,661128306,956344196,683193287,2065761570,822239637,31834362,1669693817,-1812267647,-303142355,2143493755,363232737,1981120792,-1801216360,1299031192,759731625,-723811495,906455111,1832135802,948884425,1493518755,1187693442,639618218,-952524068,2078344297,1509893202,1210217872,1410869320,216674171,1926843456,931796115,-1889962014,274756368,-1247947922,919698675,737871979,1202759178,47045768,-728872341,1244052691,-2036988048,1215629424,-1820852010,515931375,-1733298908,2074002435,1435090663,632059268,-1326051242,725833877,628073994,987659319,-507536549,-2041423180,449121951,1314073413,683193328,1737820962,13747248,-1453356092,1919768800,-1578763885,1891369628,722945104,202400209,-1627736760,701990405,1790789937,-1007755415,334743406,2038990620,-2046466200,1258327773,-1010540473,1515162343,218846156,-2042819653,1175632641,1237461516,-451071304]},{"sector":15,"data":[-877039122,-204993352,1578216740,-839557617,-1187615611,-1973877687,-1331485344,459331763,-1830741933,307650864,-326057651,86784627,1169482360,785661304,722212477,1288353121,-727304622,1446552778,442527587,-546739647,-905333009,1610574402,1551044386,-1568608055,-2138769831,1142921066,-316867509,-351661558,525479490,-789434133,668470990,-1062532823,99380603,-349231904,1211698738,1111216118,-1960605404,896207088,-895640576,-885108148,-945013775,-1106435704,-853108113,715918433,2099437210,146768091,1783047530,-1068550807,1065830926,894594658,-81518976,-1996017441,15100733,-107075599,1633002223,1426680605,632044932,-1026944938,1305058217,-1769064481,1845030886,-408841194,665170371,-906595364,321067843,163883056,-853523868,18672935,-303607607,-1912495470,693302258,1158145344,-1755519360,-1547547636,143729936,-1264634749,-1626041486,-2023079993,169162849,-1247274186,-2082160434,189681287,1667401741,-1461403426,1990784627,-1555005165,-1333020063,1497372316,1760660617,-824971289,1656947454,1091541016,-270053175,50253523,808520648,-1169192285,218846156,-1937323817,-1657705466,839615537,738399268,296586819,1452545374,-1632433613,291119081,777650708,-804638716,2133926289,-751858549,-1328881139,-1688936125,2098236789,-368428400,1141039938,-784239292,934068832,588894485,1833515304,1633782361,-228583759,1732273345,-533765815,903694360,-1067214080,22616137,-970218859,-1111049522,1658075042]},{"sector":16,"data":[-2129128090,-1741453268,1837131874,877790585,-444123818,1654700736,-224561569,63028320,118889876,361624646,2103276173,-821193567,-2095573797,165707465,-887106826,-423959526,-1212469044,-1819599936,820841464,1920953983,347331218,1544276162,-480311274,202392033,781752183,-1929738677,280937036,-518663894,-984088395,208864913,-1822027699,693276406,-214907604,699885501,1616818203,-1608961910,485304269,464488534,-1406688040,-48484155,159929009,571614347,1074038024,-2002236373,1113903557,958521338,1479376712,-160192284,1557551049,132464791,1296073797,1144132113,-299052976,1493453113,37314698,-1277099215,-1274919744,1598834724,-1912478750,2114911726,-1805034763,1210788904,-38053332,705480229,-550410549,-1672112002,88985590,2123237891,1378762556,917868898,-1440524890,-1876518452,1946661722,-1567594732,-1065106685,1023684956,1447121441,-1829588896,-1616679211,-809822795,358402718,1738244167,-595394353,-1994312490,96622488,-1160425782,1456766606,1760234991,-1884660790,-749728767,-1213427394,1115332443,-203872544,-2040395528,-1415711591,-1459807115,85925827,-191787266,-324873148,578647566,-1211545649,-1100002424,1777368950,-1560246014,-2091307447,-1539114267,127518079,-882207896,1595610374,1399661174,490572692,1117671888,235802504,562618750,-711914775,1234390118,-1224232034,-396118872,151689868,2127694883,-1601416494,-342770019,-1060928935,-1719187780,-1198048063,757459295,961835732,-1064962821]},{"sector":17,"data":[1546492531,-851638032,-1726463389,-79072379,-451991225,-412119110,-340174284,1905165278,1164465304,1630211270,-1517448141,1234910361,-444376786,2091139834,-1695915818,444939427,924602956,-1889962014,-216176878,1913818969,-1889930243,-415074544,-1471567805,327012119,-343232410,358704392,-1026944810,1415701823,1897135062,651484859,-36471173,71724600,1938574036,1940878219,-1337525633,2074067971,670105830,515931309,1038086948,598493940,-1339399763,-1434143353,1431837122,-1154909901,-590155290,-1576140835,-130247470,681849974,555027139,-1035980478,1166511621,314820480,510684546,1474502454,385793,1103619783,458378442,532559943,-1040019811,1130455582,1735462509,-698260848,1019558154,-1389350604,1049326548,398771400,831227412,993999948,602214923,298584950,534693632,619119255,-2076482528,168828526,-874506799,-1892559766,1342711174,-2048094079,-1178542840,393136841,512026074,-342223856,406767184,-2076040812,1109514775,31654482,571514528,1507304604,258040202,-1027567527,63028228,269884820,-1176239433,185209497,-1972841154,1260057072,819583056,532924328,-1727724135,-1407954194,1117663429,335846596,1216162572,526712930,-779433201,-1429807083,-1023192116,561568069,-133528719,-114217348,-300048871,-1973992405,818228246,801072287,1614163716,-2062590111,857948102,1757789635,-1963986806,-1713712058,-1738175148,-533019335,321735188,541344075,1882143744,1272086457,384262294,-1249504135]}],[{"sector":1,"data":[986003864,1767118048,1932577573,1284127883,-1003536302,605991918,2013278158,1604060008,-1633640605,-425988161,1129886601,-682335891,-2137312515,-1837628965,1146297763,7054394,-1091090116,2048003936,-503198505,-537707185,985836100,145429206,-1404413829,1401263393,-1097100745,-852681361,769323231,-2016459991,-62436765,1325099286,469963956,863507331,967088276,1941875086,-249934708,-1973815479,1715070817,527015770,1100179026,1805894208,956712086,826027066,115914176,-451248347,-621770136,-2117554582,820898706,1692853416,-59651635,1927272983,-1450371949,94974645,-160223061,-393987422,1086976176,-653464414,808164340,-1613935243,-1891136951,-1737152642,1329800945,-1282808165,-1025883304,570338729,84719797,-82274849,44974952,-1140642195,554926832,123768308,-856211831,1515184641,1228701945,-394543385,1514625173,258037186,-2074801813,1722462258,-847817742,-1145461277,-1522197506,-319784664,259999849,-1501526346,-774652139,1764954209,115573402,-895897579,736970818,-2055110085,-718024594,-1061379994,779985602,-814017966,1885806856,-626184112,896252427,352773637,-1821185773,-160326892,-181654832,-1463809674,-2145234719,-2052914649,-1051812032,807146808,1718703321,-1661947483,1686604129,321088790,-213983478,465375170,1548253814,474795135,1493453297,-1419288182,299505584,-1798624192,808441997,1530768176,2060672493,-1409214164,1464125483,284627075,880372575,-1857744631,-903274481,1405921862]},{"sector":2,"data":[-2053292543,-842354741,-44342864,-1811150286,-35806078,-1972853340,-1406925327,537751258,-2104214382,-1476534876,1092225025,-1688956782,-2103135041,1630586156,900431283,999851309,-1830089306,307650864,-275726003,287381398,-291433122,2066434575,1492392242,-79533228,-94931133,-408462011,-711822809,-1259618449,728526062,999335295,-718888794,1212291525,1516306890,-1698925247,-928872444,-55268480,1867706084,-265239124,1981833185,-759964824,1517413186,829602850,1402722888,1725272362,-112684212,-688471636,1220084199,1147262705,1496305365,-1692398160,-1394372278,-1431729726,1770057055,132217095,1224392665,-568406982,142817954,1557171773,2138994940,1447154344,-1846366112,-461153981,-952515365,-1920335255,533490215,-1708622995,921421241,1594490882,325390328,-608218029,788856833,-865955852,983752222,1218684034,-444857789,2027859783,-1802368703,-1996005235,30209854,-111521822,-414630784,-1779926082,-1034270888,1796170069,847533321,-228152656,-473073837,-21251675,681919771,1777135737,-323457719,-1134545110,727478977,-1961952696,-660700920,-297368279,1176674953,1377471048,427247164,527009132,-1855827378,2027859893,-954271935,-1207036941,-1973864540,-859693471,-2028409060,1427675159,-1976111970,1578216852,-1285131989,-637245072,1763705980,41736708,1602434192,-2142553665,1804601061,-764221449,-892033482,-1873154652,-435778693,-1289746847,-878996261,600143410,-2029538322,-1878599644,-1058862014,2107914066]},{"sector":3,"data":[-669092469,1238983059,-1448256585,-805620472,2145467912,279248131,703447693,-2093151269,-1840191340,939952176,704056879,-362785226,-2146133100,-444789691,-1826376179,1805925060,-146195456,302997694,30201722,-214085662,-1029028641,-1424828870,1247312648,-2053824084,-1684916397,756903870,-621748275,-817682131,1330275207,-1094326600,-724987436,-292520303,85005556,1550648029,-525875375,-652705768,506693676,-1616412947,1552065756,1916827556,681780603,1828773149,1077726909,2077947190,118358970,-1306065532,-2012952222,-1960385512,411831209,965534425,1429083588,-1270967776,1830984227,667264028,1178695596,31848548,1131961721,-1363378128,630530492,235885584,-2112623240,-1895136744,-1966641086,734892681,333661210,1095904260,1184391702,-577442883,-1565040176,-595368256,-922457824,537245936,-355924887,-2007573409,1501960367,1465802890,634130526,1000305305,-1166427728,477508050,974567947,-1350019382,-1899647474,76209576,-1911907080,158471701,1356966080,89039397,898304583,367232047,1987853474,-320465013,549529424,-664968800,-1937748064,-435853219,2065372422,1081590690,-1538595856,1316138090,285868519,1879769535,937787615,-852303817,1393096909,-1911234441,66637197,2121491374,1855364864,1609320559,675865740,-1483647976,-2133872038,1087291580,-1688966777,1037048971,-32579129,2072565427,2141464019,2078302678,-33818580,-1872555740,2005785923,257005813,-360150940,-154227521,953318280,57180087]},{"sector":4,"data":[-9041891,-1755334839,202663092,-1134545110,-465142847,721735474,1487442218,1594268923,971000064,-480822871,50669877,802721034,273822512,894592390,36584598,43817747,-54909291,681208086,-1811227361,-504977892,-150399813,1212917249,4705986,584715081,134336272,-922113767,-1406622500,724512965,1231358127,-1006615706,-44016078,-448618080,-985076762,1965846744,-582477600,1671102517,-1138599383,-627842502,-355844868,-2108038334,286459341,195636115,2129760398,1504413564,1424630175,217675163,179202625,1415098681,19130733,1926951404,180331665,85413229,715970588,-2054032330,-1491206194,-248837591,307506346,-1187132663,-1632433477,599342872,-119326449,1448613911,1756589715,296472054,1147679250,-1586128379,1491878199,259987157,170522382,1101721899,-888597932,180074813,1058578099,957293497,404224227,764630616,-307243418,371008034,-157544188,-14627115,704056847,1492134666,152196161,-1145487925,413053706,253999423,402187065,-1823057896,-305043923,446889629,1491878349,488570433,-1353035026,-585993523,674774600,-250736862,2087246460,-726698473,303123776,-766491598,-614056557,2102562363,2062016983,1498321056,1702230509,828899563,-826062610,-1174143368,517089043,-1968383188,-1006598834,1956115717,385737734,370391579,1748815944,1607967772,1150673564,-593566364,56198621,1304447214,-871629643,1623665164,1271572868,283638890,-2126386602,1104393162,1520926016,1898018067]},{"sector":5,"data":[-1652328063,-1610360409,-1063091282,-107072638,-299907879,-430500782,849496689,1852755826,-142496574,-635019228,115738110,1368188949,-800512886,-1533261304,-1734007611,1262165670,-1707821707,19390631,1080295804,711745397,368553762,-1665061982,1023210155,-1660166847,-1608081138,874461023,1196985671,-1121276676,2143545702,257150138,811865615,814929933,1628591713,-422043389,-1788075981,732059013,-1077761597,1779689518,1060998882,1753235972,-1818226639,2018545824,1783183824,-960359245,-1032204398,390600301,-1653493488,1084658347,-2102609157,815207042,-1195395575,543035821,1299031224,1833538985,-1669623719,-863147636,315687217,1753184224,-1754942206,9736660,-1956346794,-892314128,-303079902,-1533279735,969452795,-1065684729,-83588387,-1416554368,-1370068973,-1802415059,557924610,-389533118,282728316,-1693775211,736184122,-1370932961,343148467,730156902,-2082481004,-2051524274,1868059843,1870812355,1870835904,-1082529855,420471324,-414831931,-1972118436,-1177645740,1886929044,140662901,-979090822,331344931,-1820799814,-852025484,-2035259885,1867322710,-1072881647,-902232679,-909869428,61883978,-428105788,-1389891328,605995132,-197271565,-1390171062,-2018497951,-1029012299,861231129,-423941767,-572730639,-761131521,1995979924,-1193761740,448932588,-1473236945,1912921050,-1282534253,1670347756,780700153,824904233,1507337036,1365370263,-2042286188,-1227915026,-1397390876,-1810185710,727585197,-159740140]},{"sector":6,"data":[-2108041117,-1112651505,1715305624,-376207492,1857214261,-1343824205,293254478,1691027462,1136754883,2075613047,1712489495,-1199417853,814968835,1140481862,-1775207547,-661228933,418421296,-1547517764,-820884361,2072331082,-1187165398,1293461577,1616776312,-1497673375,564487945,-1422099703,-632440515,1495992326,-1327872985,393940321,258347652,-1207886795,1914738761,1460982463,-608996174,-2067679596,-909344553,113322732,208439022,557146411,-1959036091,-1471563459,209210648,-1396531508,1726508560,330744512,-832681390,1399770970,-1449236105,1183154553,-1641703186,-333083244,1920685714,1951906715,168031186,1261493645,1799170365,-312875303,871198410,1632593621,1949763670,1533108275,-348215031,-156489767,-1367984155,-322327319,-301547222,722234502,690369889,1701466907,1616265554,-493751632,880303917,2089778562,-701240897,196443564,120096128,-369645385,338184216,1436521565,119649707,1034182008,1120749501,267784072,-897494673,933515520,-353521318,-1808504769,-952204963,50114483,-771747704,-83593647,-1153435874,1174488065,666088593,1211197843,-1173110827,-325879604,-2138699920,-951230401,1094477517,1675000838,-721633596,-1983977717,-1924704077,137053016,1451667630,-1431280109,759362667,-156631305,1116130231,138328065,-1907242625,-638886695,-2074868666,-1071978017,-277016049,-1631321192,2013328309,-142815341,-1901057327,-1029012299,-1424828898,1415669000,-274275123,1934346139,-1959330697,-504147894]},{"sector":7,"data":[-141438248,259622684,1819930763,600155292,313662919,1045187679,-1403366708,1595027653,808477782,1726027905,-997135035,857780792,-1271779420,-298485691,925527085,1187542640,345189071,329155211,1078662773,272881598,-1438901279,-1631935165,854315128,1982590182,-158898560,-1746861458,-1922513411,1530342316,571202734,1204812295,-1608722316,-1475508180,-797407464,1446335214,-519959317,-927900949,1756564083,1613003625,1013495746,1026127720,-231443093,-463950498,-798613446,-1193674798,-684620021,1630573296,-1268491695,-2017042548,-1042642858,157538206,1103285566,-804188095,-1529061545,-710793275,-985128821,398886356,1178790874,1730371665,-1213314667,974028637,180074956,-859082356,797779971,1879163517,-520209717,84525675,1599517446,2076771309,-700009278,1712832533,675844282,1599868194,-141424717,1738724224,-363447511,1784403793,-12327962,-1567928216,1542300892,1842431145,260938667,-2010860916,-313968193,168994158,439834587,-1985467618,-1209490807,-346673879,2077648095,-1820239746,-1023080201,-2114196692,337905887,1454573073,-972690081,-2058373481,514624872,-358785598,-2002771903,-864128715,-1296223186,329057916,1542932793,307918766,-312898766,-1386751795,-2075846391,64587665,582229521,2015779587,507023944,-1434710092,856895040,466717435,600128856,308655598,453096655,-1437619652,623135453,-1021245454,864871491,-2126362858,1046732818,-1209363598,-112555694,-1579053053,486688498,-1533504309]},{"sector":8,"data":[-2085874053,-1925932285,-894234192,-676518748,270666704,297577221,-391786110,725673168,-1491332777,-355061207,-1041515218,1578773784,423890573,-1798093377,-1195723362,1942544829,878358538,-1443174979,1753235972,-1281355727,1380764265,-1738369520,990058087,735772962,-2126820182,-620649847,-1170036181,241509411,-1422584791,1432453218,71611679,1649583444,-1898587501,-1426249511,991100976,-17067304,-1450371949,547959477,-552652053,173024250,-2114548954,21585956,942988965,1722894250,-158652918,97706137,-1075991530,-1924517540,241618209,-1024775975,2024034763,1920479467,23691341,102655928,1857364317,659207843,33563018,1060861710,-383804452,1005196861,-1460231324,-838598524,798632182,-1526765606,-1434232359,1649568850,662625170,183605365,-149017254,279930829,-1553675658,605991910,-268423461,-1116993584,2055372430,-394543361,847525275,-2068478032,-904898921,178992578,-1668761690,1643372461,-706595067,-1350603206,1326506597,1665205037,538883046,-862269543,-957709448,2067699750,-2076861464,-1792955331,282493572,-1791114550,-61123707,-59274426,1543311466,-271454730,2080700782,-1489090843,-1399762382,-567807744,1228701945,120610795,-805880695,145429117,-1404413717,711060769,357992112,1850400332,-1217086215,1757642551,1041212852,220826909,-1324729554,218324659,274846155,51564849,252318064,1961838897,1915423956,29107563,556090212,-795705034,-1533237112,2108957125,344644943,-1058468536]},{"sector":9,"data":[-990072505,1200261058,190041186,462432276,54748881,1097085211,428902542,-259364667,1649859577,-1078966376,-1868725983,445702599,1094785776,1512692583,693550114,1471997199,1223168337,1488447501,552474358,-1089108492,2011905764,-271137913,1115299826,-2089623670,-880802708,-1755760835,165160556,722118913,-1610167683,-164887790,1639697426,222855194,-295998135,313544152,1239231747,-610247578,624238593,1639673781,206077978,-1722450249,78152050,-1533488000,-1784066707,-1873187511,-435778693,455083617,-936611243,-1733292959,-1810666905,1905911186,-1402514783,1868338123,-1090388890,-1368162319,-1812040446,1863280277,-1683940015,2126720365,-633961727,-1631572406,-546246745,1241462656,-1224231990,-959410520,-1075734874,1301135616,1331697445,1874392915,1241465536,-235188854,-1983402949,-1392927172,1898416327,277830131,2110744386,-2018482669,-1338866507,-904898938,715926466,484630426,-621748435,-1627486582,1320705491,-1550682107,-1798559969,1006660516,1623127881,-679865841,1340211660,1155527485,-700792150,2064165650,564939352,928220565,1874762642,-540201699,690871024,1669844803,-605994678,463527178,-156860587,176408818,510795742,-1853202338,-966118430,1200245049,-677479248,-127692933,-1209187982,1672200625,808560635,-766987791,-295597479,-2098491587,-1414498418,99815963,-2059061280,-783627875,1389158421,1024592693,-199190395,260699524,-1865438073,1025601009,-156492958,409483237,1220589288,1481590797]},{"sector":10,"data":[1920702096,1946989723,103039053,1168909476,-1495491035,857408493,-729807764,-896952956,-577446989,895902624,-1826975744,-1730832876,2077957798,1068898844,-560673876,1633705694,60371286,404419044,155192400,576352527,-344047172,1633726141,1827593051,-313091918,344952325,2094822800,1349543839,-1821195765,-1247179500,372746546,-1042145692,-2008966983,1411059503,623449889,1122185931,-1054053468,2125682633,-1074209024,973199289,1378468095,1050166588,-1066040102,-696409022,-1411256224,138484320,285380403,771630013,-1217300268,-2078274128,142722841,-1118138146,-906760815,477879294,-77354239,1542689202,1871964840,-1210675102,921295705,-1846910890,345203371,-1644687993,-1614519338,515106355,-851970780,104938598,-1000089988,-1392920557,857835719,-649843482,1642930604,-1792955380,-1968164220,1634011371,-1792955380,1431852932,1019526965,-729350290,2080021311,-708856497,-921889463,-1217660185,-993304865,1836276767,-545880842,1712573751,1629326000,1005442900,86212827,944235899,-804339699,894594786,-81518976,-1996017441,15100733,-107075599,1633002223,1426680605,632044932,-1026944938,1305058217,-1769064481,1845030886,-408841194,665170371,1519169640,-1273395008,806918087,1389266093,-2146987934,-1677688374,-563946722,-522239475,38133928,-735039154,1969784629,256802880,107983213,1425043361,662774384,1658099736,347316881,375144640,1640541436,800381014,-2062128460,-342912563,366078526,323733984]},{"sector":11,"data":[1854259618,-1079374384,-1180245293,-978554808,383514160,-15308048,1630115673,-421139147,979571974,192165676,576352523,-1418903108,1342458929,193346859,-649859389,363252880,-1199111069,-360531690,-783662842,-1252138731,1551333474,-1978011648,-1596126573,1759501497,1387366262,1185741476,859880213,-901962570,-1402252724,-913952571,-1209522363,-2028509057,2047664860,1221288028,-1097749542,-1764457259,-621696043,-1767564688,-498533820,-1604108053,-2089686735,279612682,1874985103,338275869,1140567702,-278043017,-908738852,-1537459796,1835672517,-984765876,-1330116711,1645241966,-708394229,1237992712,-793195406,-869130583,1620253726,426655770,-634158649,-1553026745,918110132,-86570696,1205666376,-38531193,442542865,-1892480959,120091906,-38498476,-1855804655,1021974271,-953747706,1241463297,1409790898,-979052380,1325138468,149041643,515106355,-842556128,155270246,1307852191,-1406418278,847549729,290883248,-699113123,1861030907,1343351543,1811562463,1706023863,967708642,994245558,2026674799,-2120556649,-1693911684,-347044811,912352520,-1079637397,-337650071,-536475607,-447740659,8338247,-450449347,-503228381,15973711,-1093233800,2031226720,637181679,-1328148138,-633120619,207705538,-1130812756,2029247892,-9539863,1248448902,440106014,-1120061358,1199260575,1485160866,-401581748,1228114096,1026115579,123301007,1270093588,-1638590324,-1821191194,-1215852524,-281264726,-1928684320,1215985179]},{"sector":12,"data":[-921665956,1930237240,-517981776,1284281299,1821354011,-647154646,-126803479,1423975491,-457126347,1313769347,-986894287,694596901,-2098487929,-1049713444,-1071086983,-1623948442,1932357812,-487384573,217351139,1143681530,1709739351,998206892,-151650276,-2092626051,-447948790,1405925926,847971599,-1843329512,952369395,-1540153166,-2010361061,-688684752,224268717,1163864938,695701637,-1738369503,-457126347,-1118926973,1332147425,-71741087,1255940400,279939158,-320947617,543928833,-86172189,-1413787295,170469179,906002219,773743693,-1588034175,705481803,476331831,-836633362,908794962,-275877490,774380738,188400236,-2023428718,-1974912550,-1713712058,806067028,1296318839,-722693189,2020636736,-2027911669,-347133276,-1535149264,-1964637650,2056166974,671119994,-1827536197,1320785040,188295607,-1720420046,1098330347,-1816441532,2017514732,217543536,1414008641,241570191,1881275774,1272080145,-118071146,-2061833805,-1548730984,-2105383823,1374679072,1294599286,-669070270,1102231633,2004357185,776597928,182158169,1067751508,-1276197649,-235528162,-318687219,891227521,-586878568,-1000089988,-537659120,598530372,-904898818,282468034,-702627126,-1468183275,154103509,-1225151187,1773668841,-1932885243,-1668908933,-842664448,1805966340,-146195456,302997694,30201722,-214085662,-1029028641,-1424828870,1247312648,-2053824084,-1684916397,756903870,-621748275,-817682131,1128948615,-847414396,270791705]},{"sector":13,"data":[1624322523,740732098,1146647688,-1543658471,-1232629100,476342574,1816333392,176386497,1859837107,1485857362,-380519107,-536576025,-2071091271,-1970994708,483965318,-907448176,-1155914042,873978755,-2137149199,-682577616,244450107,-1002948323,254400193,514234597,1913368183,-435831919,-1711168760,1335510790,296564954,-1415956642,1815890993,-2033425881,472059910,279156535,-1903703838,-1138599279,-1210661606,1446523272,1725072470,-1625144685,1194598199,311406766,-268981584,-1161907808,84890572,102249099,15962657,548550852,1394320435,-2127525844,296605427,-713683618,-926768465,1187119167,-620451607,-2074738658,-57996919,196633180,86584889,1130650027,960870312,347278409,125218497,1966742564,849547247,-812840325,-502365735,2017834066,-136905342,1502809440,-269608953,-577959213,1211750745,33053521,-249533518,-987100044,1633705482,553367889,249657319,1507954802,2005693364,1105268862,-804166029,611030876,1187696958,1419369172,1147539855,-1518067699,-422125110,-628087207,-591984717,-741128239,1162858449,1212506135,-1947348557,1036003482,-115589827,-1333042456,-1954700254,1777347634,1261538306,-1377866154,1508610374,1760484227,1985031586,-1963697916,-669070310,-1433427271,-1333024226,-979054814,1325145636,1323446763,-665927457,-1000089988,-722242285,316042274,725833821,1431862024,1390984501,-1766827044,86892758,-1717308808,-1601484798,1298720032,573860134,11309354,-102881295,-347521920]},{"sector":14,"data":[-1996017569,2110781244,-351753454,564939352,-1339399699,1276466822,-110212386,934769852,-1268202625,490606501,-1759434355,-930298511,219192600,-1418659671,15826244,-1740304425,664899628,-979278271,1963053966,-1996556386,-1075821669,605344327,246579435,-1937141717,451100513,516743904,1137524262,-1368794741,-1448033526,-998239990,1455785479,1348635785,-12864656,-257864380,-871639028,-1585632756,-1081572300,31493893,-1926252378,835816083,-1370081908,-2002765624,304384777,1513229602,1510421777,27199673,973702644,430309744,2133912569,-813930076,52714097,84961300,1585592984,716184416,795771970,-82073991,663040235,1770046191,-987469956,1120828679,-8113882,1828481162,-100204509,1832160356,-1555859227,129976554,-1391007868,-100983898,-1771407381,1033035080,-117570043,1027566431,-1983818553,700367623,-491214054,-1962009402,64063745,353246984,96374632,1723188213,1854731279,1177723435,-1234800304,-358516072,-1535124307,271598187,1153986967,-258002746,1778513903,434708428,-1387175615,-1734009599,-1726653229,1351626814,-2099402704,-968610829,-1302703824,-1979055117,-1802400536,1809472796,-2098624382,1607596674,-794094174,1224818768,1129467082,411820846,422328944,80943367,533842469,-1607647108,2133879619,-297368155,579415142,848476718,-1368798078,-315737334,415885324,-1990798504,-1244241012,346191479,-1735522543,1801123554,609464706,-197061100,75827262,-40398252,-1909475162,-1038031464]},{"sector":15,"data":[-1550680318,106602016,-368000894,-251614063,-2131108313,1609255228,1015613232,310235127,1491798187,-316560310,-2035275167,-565439146,-1124503990,2134357876,-1514903357,-1927463409,2055026985,-1172790969,205803728,-1306709451,129049810,-1263402476,396449163,-146263767,53301136,-1149673407,-1858068544,-1945392757,1660863428,347316880,-1714041405,1270321522,-1020654388,-1350135468,-618840766,1980113584,722224722,576333153,1471887036,421800295,-1202390770,1553130788,-978573148,595672624,437735959,928149199,-926892960,1693555508,1122672858,1637896301,-289662378,537017221,-2007584077,363138735,-1033886503,-2086984532,-413213151,-1900307429,1709142022,-832792371,-499711703,-733891127,1419893380,1743536781,-1541663594,1835672517,-1639601588,-1337389425,976887821,-1058862025,-1014686819,1508610418,1087050628,1813141712,124523120,-196728876,1966091163,1284132170,-238338478,-1983402949,2096351542,141244113,-699113115,1862209777,-902233545,-706837620,-1919643127,1049167712,-503198473,-2131142065,-1092138692,1486219387,1438800455,158011233,-1338866603,1408394922,-1511797385,469679033,2032706885,1214901488,-1528160043,51451082,401376822,1237916056,-620542952,-620551477,-1537455338,128525253,1039051709,539420303,-1774213960,-1337485214,928132787,-826229664,1455465035,1621576874,-1528034236,-1034545012,2017834058,1308013222,-1779461951,1498317387,1380764197,-892033482,-2091266140,-1267477285,1158280557,-165804840]},{"sector":16,"data":[-12142417,-1650229027,631599011,995249178,-1276197841,-51567586,-846729980,-314491802,57678562,1041892059,-1706195846,145443778,-232824475,2070653616,-1262967344,-78213730,-2106009333,-281698507,1659391036,-1991192681,1967478963,598531716,-699113027,923538171,287635990,2013480632,-1229413486,1478731108,-1118838271,-1820851981,257998550,-1628473070,290858490,1486205142,1438833219,715918433,-577454951,1860794611,-779681938,2082359913,1095899707,-569754642,-2006950178,1385058364,546345826,528211127,-1321841460,-1973815991,-859693471,1533144860,-650220608,-501886646,-1342748495,-1736098458,-343739360,-691828775,-377763737,1857214213,1591269043,110630659,-2099998640,-1283139093,56512723,1342609431,-343747440,-346467623,-1962856596,1109918668,-327859814,-722162446,-423264233,1294046209,1258826022,-131118031,1887109989,-10035326,1092413378,-127944593,-1451390197,571203711,-226686206,-577735937,-82394006,521600567,1854243266,1919879632,-1450371949,531182261,-1583507083,442510115,-642310080,1112406719,551427788,-23602505,-1100005120,-1533479841,-578199703,-95732634,-696478644,-753679261,187972736,-105379334,1798705642,564947720,-344226667,230008330,-1146594528,-52681709,-1882572543,648288314,-2143989174,-537189346,1032390448,-251599253,-268853721,492918178,-2074801813,1445309501,-1446852080,-548550245,-426340809,376305903,-1008229996,-534338127,-1396532498,-185290971,-636730280,1137516132]},{"sector":17,"data":[-1750820716,-82558105,830423057,1133163313,-2144770307,1550188938,932900518,-1027556256,538123427,1444702966,1544597384,-727304622,-696539958,-386075040,1533714274,-1551835745,-1519410275,995249178,-1276197841,-51567586,-846729980,-314491802,57678562,1041892059,-1706195846,145443778,-232824475,2070653616,-1262967344,-313094754,1119677541,-212501745,1175490393,1151920051,-1121735463,581700705,-1381383494,1997751027,1636883120,2063835320,-528595163,-1458638346,303022106,60354429,-206201148,-812419072,718403452,-2068476240,-702627158,1695066898,-456305567,-946081882,-59280565,1347062582,-757538317,-657648238,288442452,85210137,1628767974,493553971,1227958551,-153059607,1980318709,1812521073,-2054590206,369840668,1264097378,1220085143,66290397,1348400138,808441139,1795795760,-1575676131,-703085525,1136661683,-1798624160,808441997,2112466480,421550452,412653546,-1900706731,366054027,1300926947,380016757,2039316921,104499556,-1104256747,612421077,1891598519,-1405977733,-1245820629,-1699734685,-1396555743,1551150117,-978556252,424011568,826294595,2103296512,1660984235,352773074,-745654431,1839503508,1217767757,-137646859,935507719,-2050956532,-1284618055,-668694777,205688838,765313251,2021203036,1276426947,-1663058108,1972074660,-987308258,499960358,-1822256302,-246706156,-1983402949,-1276753102,-738843618,605991910,-318440211,1013370247,-696515007,1964229731,1814173427,-1327623722]}],[{"sector":1,"data":[1561417350,615255137,1451667642,207707409,1642930604,-1577462188,-625969197,2113575826,1539220816,-438944079,-1212799964,-239937712,37076783,-1687634183,-1395030987,-237004246,-740293112,-1550682109,1971850681,2013320776,-1065554029,-1342888930,-1631321192,-1983977605,-1401584555,-166701531,1129878960,1873152555,-562284763,-1080337606,1381676257,-972120185,-1820614764,1228091096,1713430173,238811605,-1929311630,-1901950575,1717789843,-1735103549,230284452,-1309446696,440647857,-2033842933,69496916,-1676086761,350969954,-1499949692,-327410922,-438948500,-871664093,-1288623604,1757787489,1841164682,207719001,-233362328,1178822169,-1900974845,-2040765418,1847888841,-2122178871,1434783114,-826201182,-459816998,-1296877076,814376803,118895750,795918726,-1699429734,1095235819,163200848,-208533755,-653411968,235866793,105924306,-438652907,694568225,1594921088,-711432760,-790810486,742027288,404980026,-2032371956,-1271952309,616655966,1923269216,-259364747,-483450509,-331843826,745016363,85568769,1599691012,-889597788,-1506389428,614779604,-2043098964,-1295892303,1216665159,41215424,582254442,1474049548,-582479508,-1046592054,2116970695,373112582,1380857346,1922647356,696446235,-1458507749,-119191503,-1000089955,-521194315,-418632433,1094477517,-1612657409,-853130691,141237601,622748005,-69839775,1869831078,-1064489207,-1837300656,-1679245661,123768212,-856211831,1515184641,1228701945,-394543385]},{"sector":2,"data":[1514625173,258037186,-2074801813,1722462258,-847817742,-1145461277,-1522197506,-319784664,-2046539415,-2076038636,1717638241,-180632059,-1418387566,-2146923762,-2090012819,1090815272,1507901287,-316158704,-758644168,-656876443,2042719828,1902232194,-396407656,-2107489262,-1569040645,600155292,1087733215,177995911,1173695630,1284248428,-285481153,2005130933,-152681998,81831803,1025902136,-1880200260,208668780,-1527234996,1619679669,-1386495967,-343783734,1458257444,-989575662,1176797694,-121716695,2101925580,576368086,-1399113028,-301034399,91124864,1885539985,166997798,1380856098,-1738385829,-661984679,1187706206,776788098,1215968563,318035280,-1569057210,-644609124,1464085465,-971844989,1081561019,971037778,-1375471539,-546307234,1703423104,721678491,-743296978,-1017624248,-1267735502,-1491243070,837498409,-281264820,455710553,-1973395792,463477040,-433999268,366054131,-1736087581,1735335590,-1854753363,83067557,-1510676927,99715688,768105094,-1364954786,1392010242,-728561224,1762881701,-80355126,1889899763,-587596518,1211214258,710122458,241583505,-1479726872,-2029566935,1656258567,-1539147256,-80573569,146313406,-1739281828,331343524,-1820799814,-1240207177,-241683169,1509103876,-906161521,-197271589,1271044685,1634011307,-904866283,170619586,180205478,1400605531,-1775276307,968928662,-1550680827,1418145977,-1996005235,30209854,-111521822,-414630784,-1779926082,-1034270888,1796170069]},{"sector":3,"data":[847533321,-228152656,-473073837,-21251675,681919771,1777135737,-1742974648,537682019,-586546236,1666522016,-463675230,-1459007135,-191435767,-1265890216,411872407,1493425896,-1974879994,714333006,1309409813,1119382799,-2058351138,-1224882753,448562644,-910195308,825632454,-1973815479,-2100617120,-795686950,-2055126385,579415139,-1999257553,-1844815217,191873064,1781140684,-1567291125,-1967996373,1371323884,1350814816,-753283023,-1111339892,-435842025,2144471563,-400126883,-765632080,1135798522,833328788,-508150452,1110800395,-2091253994,-319998540,-1807407928,722212381,-1937004957,1445342424,-1559384184,2038159733,1820688761,-73114508,-164575828,-266972453,-15314326,901022553,617147629,371037253,-1495127284,-1327779573,-1138599271,1708625206,115795437,1926344981,-1247931245,639084184,1629061986,1641506937,2021756241,-451255283,1405891108,730635275,-1121590402,909514518,2030658581,1953269121,600155228,-1437831830,127518029,1718530232,-1022664176,1158206918,-864925238,229232824,1920479403,74022989,138202656,1383129414,-701663580,-507126044,-729310363,98621476,1235791815,-597689167,-93277396,1874820,906622453,-348270017,-644407435,-9502529,1232045184,1409790898,-979052380,1325142564,1289892331,-944965230,-213041783,2031259481,-1889930435,899629328,-301665896,-500077762,-1661355511,-2076861560,-1792955273,-2035273084,-1326051242,1561417350,564923489,-1338866539,1401271687,1300751963]},{"sector":4,"data":[264095710,-2065833242,166812472,-822290882,691492036,-1196088031,-444857967,-1052150969,123768244,-856211831,1515184641,1228701945,-394543385,1514625173,258037186,-2074801813,1722462258,-847817742,-1145461277,-1522197506,-319784664,2120960361,613533020,1179834181,25690448,-1103824915,-842664240,1793028632,-1717848894,-1361871279,1139411892,1009388560,-1834632771,1211181527,-1173110996,-1751942964,-185466692,1724729155,-487767748,-620531686,2050890242,-1030075004,432171580,-1392752808,335387178,1388212147,-1864345971,-1550680826,-1438411745,-1006391226,15104927,2091722737,-215736640,1257520607,1638736812,-1249398742,432188036,2033407320,-236537047,-2237230,-1798135283,880212028,1899822756,1689385733,-1528869053,396367306,-2069024744,-1822272818,-1607843858,-1241045184,1350809560,1644494775,1342476862,-1597877835,88998469,344656455,178041896,941495694,-1560139987,1751483784,-508047283,370393912,746759352,386937029,841727749,-1296470225,-2092580913,735086602,545478468,1433210891,238394366,1658223954,-1955759208,2131441016,-560673876,-1040174626,-699934044,-1061404540,-974211134,2118061457,-1906956141,-2007546837,1405921837,1226780930,-1285937150,591811118,21307625,1871020409,438471645,1344732542,-1052245331,789535109,1515542576,2118237218,99422955,1871721952,1948464896,925502676,1232057206,453292438,-1061612672,-689673633,877833756,144204374,209409696,-2015590633,1285104051,-2089408726]},{"sector":5,"data":[-299826806,-785742592,-1168187115,1579923908,831025951,763589097,595880483,800155720,648856244,2070010393,1365352614,-147409989,-1804875494,-1499978355,1783703574,1649635023,-2144169339,63223901,-1689992182,-1288662400,-1972845199,-1277645328,96977684,-1478720853,-1601428281,3239447,638693826,747381984,576352732,-1280435780,1495384596,762581850,589928281,85348887,404031206,412653539,907138132,371004644,-953079284,1431842863,1102848602,1814287949,734555426,-390045312,371408560,-84069200,173711692,-1626041486,430348405,2029159877,-197409852,-1061594792,1971265554,1357076262,1790635788,-1577681649,-967046923,-979051265,1282239011,-1715122774,1857075207,190976102,148227779,1917438533,1422571724,533469834,2026888343,50255625,445314158,-510255156,2139348972,-1813379844,-243556588,-1983402949,1724737342,-611301060,605991910,-1276750903,1048780830,165818731,1675001052,-208072508,1798705465,1129872136,1634011179,-1792955380,-1968164220,1634011371,-1792955380,1431852932,1019526965,-729350290,1996102457,1970369446,-1822688476,1856563446,-1155104043,1593227901,-1679558112,-1239174033,-1983402759,396949885,-1282846513,-1341242024,1712543366,-160716112,-1291915875,1768849552,-1550680311,-1438410721,-1006391226,15104927,2091722737,-215736640,1257520607,1638736812,-1249398742,432188036,2033407320,-236537047,-2237230,-1798135283,880212028,-1332016220,1619397035,1288363421,-431549358,665352276]},{"sector":6,"data":[1082499842,356045213,-1532426212,-1093897502,-1194209544,-500342405,-943391613,1702762710,953261376,1164254229,-742764805,-273572768,146092990,-145636412,-497968865,-1095721824,-340212488,-1062894464,808576322,-215803141,324287530,-2017439359,1481562739,-1759977577,467748114,-984508264,694554916,-1719301497,427164428,363252880,811719449,-704448624,-242587595,-1134889027,-1596943931,-820463548,157505211,-124946810,168989953,-68124152,355662736,-238670942,1399224133,311865354,-967122914,-1682953725,2025872834,-1363762008,-136247823,59893025,2079488929,2077874627,-775016351,1997087189,217989617,173237960,-675375440,-843548537,1391337825,-1738402239,-936583927,-860873888,-1389337210,-1031477810,1477172291,-970218795,-1999262987,833305975,1178321796,-1443166724,2017526789,1182031228,-1273046963,1449340272,-702828664,-1014702635,196628539,134894327,-60888960,1006366878,987103783,-1024585150,611420513,12521822,-2064196575,-1138720126,-892744130,1405925967,1848972545,2105065904,422738888,648856212,504546745,2017834210,1645658498,-79338088,1641265742,459298928,199027889,-2084630494,-1864558542,-1027556328,1512682264,-1036338142,399297373,1961024647,631265368,-627940782,-79305285,1641265742,-1029632410,1789428569,259338315,2002621334,1500844025,-872734305,2034230323,-326665114,1935094994,-931467403,-462707479,1581167731,-1398911543,-1125410188,1295380261,-490912175,588072332,-1799739926]},{"sector":7,"data":[-1582179407,71905769,1918995033,-508194149,-627623689,-382623645,1043170161,-1423070870,-633900457,202593889,-742575891,-576180144,-1921279015,1305130340,380016757,-1768521287,218804801,840550462,104772786,323367208,-335224630,-2134375688,1010995438,-2063264765,1445661289,-1218134724,-957955422,-544753726,1580216146,1925456158,-1450371949,933835445,-501324778,1100528065,453980040,689381716,-483210459,1964992786,641285272,-595577664,369266483,1539580901,1825766568,-1169867694,1653829519,241591699,1236355497,-132824438,-1000089955,1807617433,-783424975,-1000089988,132169116,1041932951,149041515,1145693747,-1792955175,-2018495868,-1338866507,-2035279217,1633489238,284284500,-1678414108,-378548142,1939578316,1805605112,1593227901,-1679558112,-1239174033,-1983402759,396949885,-1282846513,-1341242024,1712543366,-160716112,-1291915875,1030652048,-1941279988,-1211272835,-1529146918,1228669035,257998583,-858293742,1028645377,-1438326797,316029634,1484458155,-1792955318,-1841867899,493862555,-253768403,1126772186,1248036815,-1008358842,1484191979,753078981,-1304144229,-639532730,465249370,-1093986939,-1719297507,-1536299792,1851608962,1161022882,-224003325,1043595559,-1504090021,1954521192,652225720,1025951367,2047394146,-834749236,-698360629,1916609774,-320027669,1025830550,-1544212267,2123644350,552203587,41228535,2014494831,-1627361778,33519599,-1098888439,1414999764,-124856125,1580673497,1407630025]},{"sector":8,"data":[1382884090,-906049819,2039525311,-1138346597,1556278309,-398426166,430009779,998016246,2141175247,791221924,-176993947,-683093103,-1678998226,-1861748230,1224687355,-815864532,903210538,1892489797,1602196413,1732244000,-2029655585,1547360587,740285177,936971239,588247797,-1862369802,-1648510887,295947461,-1980086205,-1816276869,-232759425,-371235009,-647259899,1825201355,-1168350219,-345001449,-330883356,-1340015109,1251130770,-908731161,1117227990,2096975350,-1610758013,-433478529,-416100514,-1458494485,1686090598,1019795423,-1567581491,1036607055,337452659,1674674686,-133451699,-1416219540,-821498561,-555670604,-2075047811,1189657966,244267499,-764148598,-1118518987,576683923,-1017151379,-1037523871,1357430148,488534934,-1918756333,-916542866,915517375,-1327419456,694228178,-1844282833,-1564253234,-1272111302,-90444635,40637433,554507262,-148236474,-424906079,1143224892,-1572941232,-1298666919,1306848111,1828195248,1192789300,1954864715,-1493067341,401327599,-1678989902,1813248506,219938306,-986887135,1507607279,1602252238,-2040962621,-1346385410,899381648,-690324954,1193360692,-1856054303,2041913579,-1601628467,90284046,-184645130,-480156930,-576417566,-1712642437,-1249253297,-1373923509,899381596,-166574559,-866565535,1783395448,-1447414390,-1070179026,-760159953,-1281928172,828871947,572707297,318083462,781669583,-266903397,-1675597352,-1199187541,14392499,-1279097153,1009702669,1747753165]},{"sector":9,"data":[-1242215302,1115318444,-1112095857,-1011300829,-1105193560,642132180,1972597279,1705941996,-718888385,-1183949778,-731060623,-649377648,-1665943419,-2034302757,-686967870,-1731380178,1283090476,1756149237,-1014021510,1143061942,-1067459581,1069337095,-1077884474,-576619161,-1945693149,-1908556777,-2009976189,1292008854,-526243931,1074080185,3517577,2004329180,513818153,243302391,749985600,-980152440,1811717125,-1173749920,-2131408711,16655995,1357062009,-317964276,-1337345765,-117707775,-1066605055,8899014,-1186791326,56660850,130064350,-830315830,-1213123202,1557988457,-567884380,837504764,-208056350,1913818969,1579057399,-1392940920,-819951417,-853083490,141234017,891183461,581700705,-1381383494,2011374078,909865468,-309095685,1706008942,1786666978,-780340475,-1291228362,-1087023784,-1072885534,-1837626824,-997843805,7054394,-1091090116,2048003936,-503198505,-537707185,985836100,145429206,-1404413829,1401263393,-1097100745,-852681361,769323231,-2016459991,-2008593821,88502588,156090606,345207482,460463247,1280073490,1515375678,305186220,811882079,-518487760,-1863498394,548550852,841983027,897074612,711732718,460484663,1236906769,1464551562,1717332023,-91949387,-1847081403,1303002139,361478853,-1760302063,-542753870,508632041,1913608640,1454875793,-2109889910,1950873202,959512027,1000766785,-1878659983,-451991049,295014586,-1298721812,-371218885,-1501736677,99381563,254408592]},{"sector":10,"data":[-704988427,-1760302063,-542753870,2102467561,2063899553,-901946367,1625143885,167151754,-753018421,-440339345,1820784133,-1878660079,372713975,-1884770581,-1849844640,1224685277,-2143452467,618995378,363163153,-469738173,960093573,-1413369417,-384932255,746257079,-941689320,42446086,-164220713,1614889218,-424715694,2140393,-535359399,2108063750,1444424954,1921975789,-1133630061,75187429,-376509211,-312935753,1125560519,1541776604,-1884774227,-1849844640,1291794141,-1337503730,-1529068778,-1599448105,1488166052,-1909915652,-2089966439,-1417673166,-566743811,-73098187,1750128045,2125224270,1279759487,-1715390766,-698170361,1508707082,-99150628,-577753478,1357390975,-2076031466,754501009,-1974912556,-808123832,1596096607,1898018129,349837296,15537997,-1825910970,-776966563,-824759060,-793073617,387466576,640942523,232268776,-2137315344,-656146738,1962390539,386039299,-125067756,1142341797,1236893497,1454070637,-291863235,899924590,519507887,573065408,-337460469,-1066519902,704096245,-538192331,596520220,1784404050,-1792283418,66359572,1941270288,1592688267,791710304,1298662006,2131304917,1611384637,722211876,-262273823,-1930904840,1765650587,-1331345728,168495634,-533780014,-262269817,-1930904840,1765650587,1968032509,-664563526,410889305,-1565497772,459849576,-1095720794,211848356,-1530404565,-205365289,469975300,-2105998947,-224636929,-358196000,-2113606479,1116400512,53673594]},{"sector":11,"data":[-452581304,377794792,1515178545,-1549700131,-256221992,-1223974072,1996906639,-1765068810,2089225326,-587241799,-1440365148,1544246220,-1296251200,2063899972,-2026426112,1808644216,-1946940947,908251021,-1262353794,-539682166,-1593697559,1953631236,1725769701,1618052649,471904819,816443014,-2010773778,-1430576889,606321218,-989720987,771115009,-39318949,-1524490070,-1642818774,460500182,1616182097,-1317591552,654178085,1783831337,745427557,-2084225592,277033075,-1472848290,1263676994,-2050595434,-869477304,-553110814,-1572857284,221760322,-532264328,1362611153,-2091263836,1435228816,282410568,-560398208,600344819,-2097873028,221878485,965448872,398377805,-439009270,700418050,-1493433665,-1533528854,-289083585,-450617677,-1120141073,1509150992,-1623125873,82942005,-772309810,-251106506,1634011307,-904866283,174801346,-331038810,1409150939,-1214812179,-344984253,532990814,-160599204,903837316,-720899688,2083540364,899352821,149639300,-903978651,-626021950,-1258637449,-730927279,-1899358711,494935920,-596385965,603806665,1340211544,2013328317,1623119507,-277278193,1445329566,-1783572975,-1025883304,-1408474795,-1799579350,-377949219,-2030080402,508193233,1377450876,-461355244,41248209,272712007,929147405,1962977158,67494735,-1413054383,-1461117284,-1529085657,2017206725,152086542,-2056201250,195107516,78285695,-625576190,1384363920,16758672,1034596385,-1661159943,-1734646942,279465589]},{"sector":12,"data":[-1209155319,-1430168824,16758544,1034596385,-1661159943,639798794,-907853078,-1670101144,-1970053022,1405905483,-1954807551,-165497870,-80962565,-1473226508,1169425037,-1899679368,1308600886,891914138,2073584342,-266943891,-30571414,-661333069,920888041,-859055349,-1439618548,1790576615,1752547337,-673517430,43115864,-1341520909,1716348312,-128770737,-1094565695,-173761510,-164575828,-266972453,-15314326,2093673817,997638484,-1734887561,132601368,1757784545,1759178890,271631788,1920685784,-209541743,-438564349,1365331814,185225869,-779433201,1370808597,-488507560,-1848344993,-1707064559,-1493826107,1166539112,-844657273,648866577,-279617083,-595406785,-1414503447,797035577,-2019020752,1973392427,1830725272,937809453,-655931847,1715472058,66273832,275418122,-2007622418,735709871,639781937,-907853078,1718962024,1019478083,799797603,824839256,-499039830,1464085477,992560782,-706724778,-733148007,1363724165,-266207400,519215445,1483557167,-981285136,578065594,810602576,1651150076,828380291,-894836225,2039379277,-2090312754,430019843,-1975183095,-63942448,808348300,-722403560,1672816101,98017741,-1625344482,-2079958003,1696863586,-251717632,1159849428,738446947,2128115956,407450950,-1591356655,-1660921327,-1932492577,-1584618430,1348203849,-1444806863,-949335094,-735247854,520544888,-1857712751,734267405,1494237505,-1230091813,1519188128,1399046344,1950677293,-1810063083,-2063493999]},{"sector":13,"data":[698235716,845867830,41784968,6628429,285817226,-2022629003,-1533222247,1723147717,238060585,355326377,-251187541,-288137744,-462617624,-1772808052,1002669261,-1247540655,504739418,-1017466365,1298190721,609244950,-267057548,1142341845,1606421282,-1667968114,511596459,1240332069,154407953,1784631468,-1885630618,-1339938918,1569002907,-1222609773,1835672517,-984765876,-1330116711,1645241966,-708394229,1237992712,-793195406,-1731912023,1532144191,551314287,-1157022514,-1275157249,28733467,-2114845020,229680566,678396960,28725261,-2131622236,229680596,1232045088,621261786,-1234117794,760480568,-604052849,18635626,-10269783,348169472,-701257328,-618663840,13047406,-55474838,1265490783,691372131,182484844,1391226187,-1335863743,1850053106,1837083299,18635704,-20506966,-558455808,69468359,-355042652,229672411,2082717472,-372421319,-1699039970,1208183969,148883503,-1695234468,-1450263931,1826731773,1537738352,-1845299169,-1978369061,639618074,1003364830,1767117896,-1090041551,2026682899,-1392964478,-109213241,1355749288,1163441033,-1338866571,1401238939,-1253053349,-2068783173,122384387,-281335049,673354458,-1604840600,701355198,303022106,60354429,-206201148,-812419072,718403452,-2068476240,-702627158,1695066898,-456305567,-946081882,-59280565,1347062582,-757538317,552063632,1731146372,1580267138,-1074657841,2105613893,1204924332,-1587306336,1764974801,-1295099515,-1127182330]},{"sector":14,"data":[968344256,799773017,-2002718479,-1691298554,1400918979,-326811097,197549808,1472127193,80782312,-436493094,87919230,25660933,-1973301232,-873854453,-1747115741,192827679,-234112973,-2136197565,325488084,1823361804,-901245293,1681369483,1286251773,447638354,236542216,-1946502932,-205904139,1357407434,-670327107,-325421631,-1406622514,-302452789,796456494,-198641003,-188800161,1714022481,-1322216837,349355906,2043176790,-2021890379,-932718948,-224807558,-783762145,-728330151,1271410473,-1846129555,-1206602846,335719939,-65884635,-522930556,-1726640716,312653514,-776567556,-1847703515,722056098,-1020321430,2074523301,-1671835320,-650182180,-1279654914,2137848223,740893152,-370127928,1774299501,-1624233190,1935046636,-57725441,-1233837308,633679777,-1543133258,1556655208,796093355,1282231240,-1626041354,-594701189,613734682,405301449,552311893,19073400,1577113398,-1188001184,-1530895925,892140155,138346085,-519575678,690378154,-331336183,-2112993277,-1717168640,536608222,1390147155,-16322538,-737715008,199341821,-511769736,-1017182208,-581791106,574851197,1664055542,1609624581,-380505045,2161841,1344273993,-518258970,-198641003,-199512043,-656986724,1387503610,-2055161968,2109736444,279632207,-58359625,-49610464,-2096813786,250444736,469419689,-1182779493,202573347,-1331652533,-1815177555,-1943229457,2103211655,-1659242427,1678287229,-335163554,194952544,1032486629,1599732482]},{"sector":15,"data":[1094815650,1289789539,-114776959,-1741635379,-1062904734,-635998179,1814956165,92012937,827103478,-317987282,2091143746,25783534,-1839050130,1965522447,419754392,311384563,793834491,1712562590,149654192,1798725989,-659053046,-1082692705,-536475551,-1837627965,143989923,14043253,2096075640,-182182208,-1006397265,-1092125794,1971606921,274081196,1486205174,-1509283005,2083988847,-1688519970,1521803711,245335890,-945843002,-283631474,1479575596,-1228775332,-1974912749,1388925259,320884897,199341757,373437816,-1442109441,-1233714684,-2085121830,-122187694,139737130,-1463793248,475156705,-1987046256,1474341056,1826271046,-473659117,1380716563,-1738385829,1608780552,-1223190123,-546842148,1149616546,732042600,1898745537,1828345781,1833515476,-312374695,-1050998601,-4779862,753218059,-1128481498,1353499328,352773797,-776016104,732075385,-705008701,195653115,187250040,-2047497089,-1061392314,-300040510,-2041101269,1405922005,-586542079,-68124063,862254736,258966825,-1473236945,1432648135,-1295897694,1487980426,-458859296,-830637907,-962214112,761879062,-1411762090,181649041,1768396976,-2120552827,-722568059,-1692537982,-1251701381,-864402742,-879426989,1612746375,1975863474,1589659556,993822816,-1350019364,347338264,-1115380544,1015604113,41740320,1143713345,1507297879,-1557438326,372698455,-1307570965,-641077307,-598527527,911956102,857780928,353187,1169476230,746542712,1798431347]},{"sector":16,"data":[1915645987,287266932,-788047733,2095633674,-503082747,-532419590,1236898803,-623622518,-1952754535,1618022194,-1004483364,-1433565417,-1835758832,-1586390555,-1054049710,1354258377,1224931469,1887433151,83682953,-58776795,1230176263,1242457837,116431805,-855783937,-1080327945,-2137586690,-2074068000,-1111944926,-146921178,-1889962014,-1699775470,-1500088116,16536723,-311973148,311384563,-1686103184,829144643,-432863006,-1395047351,432192034,1485391704,-1291244733,137053016,1806348462,-580351875,1262673903,-2039194760,662885742,-1116807206,-1203861353,149806054,829144813,1786666978,584381189,1125242476,-2070601300,-1708479271,2138810365,455124140,2131228288,-786586734,-1399723504,-567807744,1228701945,120610795,-805880695,145429117,-1404413717,711060769,357992112,1850400332,-1217086215,1757642551,1041212852,153718045,2118068708,-637529836,346267563,1469808920,742692487,-1974879943,-1964087221,120012960,-2085103434,-1543850160,1969046405,1376241923,-750922882,-1034845805,579486624,-1560139903,1021775489,405229212,-1864172648,-1072385118,-103981504,2105250137,-92432691,1179916332,-1138599295,-2035192296,-1276551211,-1323244208,-1232656026,1350809560,1474034359,-315268823,1375324652,1179787081,-519175856,-242587451,-1973868283,1602298464,254744610,1130762169,1649711154,368545800,-1111348318,497457269,-179504311,-1006615569,-1848042474,199663648,1135791760,1358627565,1641103673,1828877462,-259364699]},{"sector":17,"data":[-1129222534,-671081341,-159821688,650486986,-1613441094,-1878601804,-2001201330,142549396,-1206432256,-1089170296,1897660548,-519798592,1116309627,-1728803011,1806481060,-782508396,-1691665312,-698927581,-1493793381,1973392483,-834781300,-1802979305,134141987,1033004762,138478597,129778268,723041072,31098100,-348214919,1935181081,-2024372003,-1033872192,-171557961,722259019,1221222887,22268962,92940302,-519748762,-924048905,-1139444125,1640086588,-242587563,-564637262,20870160,672059919,11417604,-1868919314,612626592,814350437,-648480071,878064722,-238944099,2032782853,-1269201535,1305099556,44472437,-814035427,-1206877599,1628338309,1944531574,28614612,-785996705,1759846592,1415784013,620926097,-1125021080,1003968593,-1593989986,908197130,-1112529280,1600364640,345334225,-469371759,1175528116,648355586,1080477410,-1146167855,1217055328,-889597702,1444172364,-1503881118,2105060836,-1513676594,-1917580090,-316950102,-661563816,421948597,-1501863462,-1152294496,452409011,-1735103543,-1454543452,-1279768171,219608864,1091355340,-1579517832,776583432,354064217,258384166,-1106121013,-12975777,947327680,-342273016,-296390096,20393751,1610398155,926390234,1932462849,-2146762241,-699358167,-1198526880,83650137,-1526661141,-979090752,1325183520,1138897387,79452688,829112033,-208318494,1678937945,-944965322,-111922551,545834924,330406095,-1433554842,1163401666,-1338866571,-904898938]}],[{"sector":1,"data":[1129847234,-1330771925,-931632214,1369993038,-117488061,784306499,1765238618,-539318508,-2003321490,-605636546,-1091761939,1608659307,-217748866,-697556268,564937489,-1395030891,-1476552150,-1532199045,847256352,479579910,1006694373,-1683965507,123768212,-856211831,1515184641,1228701945,-394543385,1514625173,258037186,-2074801813,1722462258,-847817742,-1145461277,-1522197506,-319784664,475089001,258966949,1616815294,317144764,1854259528,-946130736,-1202730391,1140586226,1805310923,27927307,199430804,-1488858848,1445331929,-977238186,6060294,1493213085,-292011238,-1675476336,-1272855132,313031289,1059385347,1633852596,1579086915,1631834332,-210021132,-1002899093,959024834,160981590,-899295743,263786351,-669994776,-1350019364,-862812644,-48168621,193361323,1960434115,-400794024,-1959753040,-1144420178,730781187,1703237444,44472341,-861794533,1915653254,254777495,1641128291,-1046318216,1490054789,1578216780,-1894447815,336049635,-1061409780,779142177,1704227667,211860227,1548147274,1230455561,385702071,-584087785,-1406194438,588140897,833328788,1541028940,-414790995,168031186,-446928755,-1029523685,-2075793424,1464118097,-951947899,-913789301,-1898576965,143811154,-440265549,-1016388297,-1271959058,-765247289,2086274787,1448825557,-1267735378,421964994,-1501863462,-1152294496,452409011,-1735103543,-1454543452,-1279768171,219608864,1091355340,-1579517832,-246892280,-185442282,1233486047]},{"sector":2,"data":[446126382,-856021483,1620253726,426655770,684425671,653776930,74051783,1971327643,1300909386,708417669,-1684599817,-19077760,-1689522897,-1752858469,-444530759,1414007520,1915808665,-548868779,-59800448,-1288905633,-9108866,182473344,1435522120,-1539560296,1022023290,885007929,-1892426624,-90991101,-136813834,1777387302,1035384839,553431497,351800065,193004879,1542689070,-1684739416,-1160411628,1768828815,2142488342,-870675724,568206879,340278222,1211197780,1501028887,-813952369,-2106012518,300611852,2064149302,137053016,1806348462,-579303297,-154592513,1706023863,967708642,994245558,2026674799,-2120556649,-1693911684,-347044811,912352520,-1079637397,-337650071,-536475607,-1837170039,-1637159005,553685111,22553557,-205697054,-694978560,302997694,-90247303,-703506907,1129878960,1633010394,-1725256692,-203582276,1852762488,1775339263,997989962,1786728986,-2111400553,-837000576,-1011862146,-100389830,-1822272978,2041232851,-1577041698,1771260128,2015140705,1197564650,-1743418092,-2121596250,-2035987166,1924476268,-435831919,-56852216,1954963819,-288356264,-1923660757,1405926127,1700142351,401360586,-1672144744,-2040435716,-1587718028,1757752826,-486936438,694605202,-648426875,-1821630413,-1331711222,-603978295,810603405,-1674276691,1616795307,-669368473,-586492994,-1908973152,-1533504301,-1784066707,-1655082168,-221359123,477110528,-2086365004,1725794783,2080784700,-1094425642,-418654980]},{"sector":3,"data":[-1395047256,432192034,-1030075048,670477737,-655368742,12058946,-1550680826,1377682104,605978677,120643579,-429179511,-1641549568,1436741625,158014817,-1405254571,-904899035,-912545342,-1908940979,-118495594,-1584130451,-1515076633,1987312929,-835690219,1434908373,1469110801,34214738,908919795,-1974912749,2028206659,-1560122131,-543342459,-633067687,712016573,-167160776,952198744,-1536943083,-350813419,321378316,254199433,723276540,1983663153,1941772214,929109366,2122437518,-420010722,506945440,515646010,912377254,1302989419,-98885596,160981718,1955788253,1507371853,-875642736,1142339801,1678147361,-783690230,1094823734,-488542851,1464085357,1677562765,-1148450030,-1318598973,1605923209,-1602744214,-1974888961,-1575466168,814478937,1483735362,782528098,-965066182,1714491385,-1397061764,1576243407,459488545,-1116861778,521331937,-1917727671,775161303,1728912187,521320355,-1582183351,-1116861906,260692961,1756112804,396001867,-1283027683,521331921,1162054217,2097325720,-1280304746,-1716480805,-2078198906,1832936625,-1580257197,-1575634968,-570964437,1250306406,2117161025,-1635398224,-863722020,168991025,-1771987957,-1520082596,1874600538,-2076862923,-1855827250,1436956341,-2083724762,859265244,-519753464,579103459,-1716181019,-701652623,1827354894,1442019079,129230921,1122065957,638181431,-1023556097,284203815,-251687532,659357980,708417717,465596406,871831551,-9567522,56495864]},{"sector":4,"data":[277015936,-186235256,-1081695080,2026682899,-696457837,866108515,605991910,1509125576,-1453059441,-1984472333,385041719,299265058,-1408474787,207744289,-2070601300,1451667506,258039057,-1213855125,-561150248,924758774,596113112,1737665151,-920685001,797063016,1767694949,-711290990,-1891941956,-2106012518,829111827,1786666978,-1574636795,-418326932,-2072689320,1451667506,207707409,1640834732,1198380628,-1261978003,-1644546220,1635236646,-536475639,-902229975,1358166926,123768116,-856211831,1515184641,1228701945,-395919641,1514625173,258037186,-2074801813,1722462258,-1640187408,-850932913,-913077277,1061876452,1381676257,-972120185,704086676,1288026139,608698901,-1153219004,-1691332400,-1825940030,245335828,-1282899236,1786780606,163111418,855762891,-904695710,-118749984,-293550078,1006396306,-515943825,1758374661,-570405452,-613914800,-1133115672,-1423087280,-1928442831,1527428801,-1194262116,-1746157514,104282752,-266637608,-606026212,63843589,1612438680,381733749,-1047709372,-528081994,2009226178,-1423604716,1943537382,-1045701371,-1232995906,45649424,297940600,274268375,560759591,286557029,35818482,451510134,558641579,-1107589787,-2059044878,-2105949745,-497264618,-712875397,1677837301,-379619006,1278323482,-41759182,-1573127714,-1126111294,774638529,1102134641,548546591,-1828821209,-2144770347,1040468915,394277522,162213912,1751082854,805780546,1821220659,1330150232,-496582822]},{"sector":5,"data":[33333220,-638111536,-30425160,2065188865,392092908,565313790,-1285089272,-1533479809,1668741180,-1072834729,327166799,571203763,-1890993661,1304095984,679855685,-2140324601,-1452605714,1278323518,-1228829426,-1031775478,24625755,-424669748,1094892299,-1742371660,-1028517722,-276925465,1904779645,813990265,133407436,-1980953560,1511844317,921101499,765065585,-170556830,-703376701,-884828062,-461637877,-1610380306,-2107456327,1080316222,-1399730610,281154739,1821220659,-10039504,420951529,84889674,-17923987,-1421956758,-1925624783,1527428801,-1034173824,231473527,-1156847952,-2068561598,279353589,-553794894,-1046332423,410070600,1502908320,-1531768048,818228331,-471397244,-650965925,1380776639,1580956702,1287715186,1677827288,-1220863166,-1019271624,1461381557,256939547,1730385711,-1592164293,1106343436,-1731887196,596968614,696741232,-1434898217,-1973864540,225365089,115102384,-1206657518,-1036617726,-631386095,-173798126,-1271872084,-1400291323,865075765,812420511,-1128736265,-2067730897,-1076284660,1144034288,252258316,-1319439196,171078297,-803921143,-1458582118,-1738385861,760819471,-1816932071,1658223314,-1832428904,815813935,821621416,1177569300,-525715057,1989999588,202602038,1926394605,-1428934354,1405887048,1426983938,960549254,-747894863,991827004,1157727583,679537480,-266658391,1848513797,-861560320,-1389902481,-1136866710,1191312582,-354445161,-1271930667,937878865,-167385094]},{"sector":6,"data":[1941681057,869103232,-896056895,-1274909074,-1451088349,694612255,-665390976,-2019878115,1967368858,-971200872,755358688,-517119552,115769403,197870296,-1270791493,-1499941474,-1044611056,-584111093,346199023,-1221383668,1790345080,1631669687,-1413132966,1875483167,-295935753,1979913316,-1088719759,1389700770,-1738369483,-244119998,-333871443,1781005791,-452897844,983770603,1283093046,997989970,751437674,-1733075064,1791823615,616973645,1540293066,-1698743456,-861253718,1889731411,-527007123,-1645177296,1812165568,-789675463,1512467856,-570338356,-1769643938,385740311,-435863785,559962376,746759364,-860540731,-1785742845,475741810,-1624010750,-147821427,800897241,951173358,1475049636,-163771188,-11981202,-591878071,729317586,-210303124,1509247317,1858888074,-598560755,333320710,1835011768,-631426937,-878441198,996182617,-1307521845,-1562378814,-1126111294,69995457,361600056,-1189697896,-229542016,1674266542,-418610048,856447971,1626849241,1012046936,104508277,389544734,-1471545371,1090110648,481695036,-421427525,-1286041430,-593968364,-1197121509,1661899013,-679383696,-258592728,57917597,18686316,462963556,1981271137,174687108,1117282902,2079787979,59502308,-154879584,-104288965,199262060,-1251325661,2118215545,-778208017,774638433,-376685199,1971800600,-1892868167,-1743417868,-2135353690,-1359851145,-2140943545,-471397244,-650965925,1482749887,1966887580,503730859,-2062075909]},{"sector":7,"data":[-2028694530,264375967,-1089447532,49820007,1301705097,593044139,479668288,256120477,-127206365,-1819274634,-904158863,-1330782207,255319269,-855614411,-1967693048,1722884109,-1204713687,1884012854,-971234805,-1375478816,-517119664,115769403,37372632,909150152,-315713341,500303369,-1271872212,-1063091406,-1270736482,-47300991,-1573127714,939845824,-856520812,1730151763,1641552447,2020717551,755365983,1550367692,-1664756088,508710122,795491196,121935577,-518024332,-179809829,-376944240,269115812,1499905915,-5989616,831258440,-1232992436,-593957952,189977916,1939366422,963412763,565362765,-1341296948,302397387,246944734,746876256,1938304176,-2110166013,1838207214,1405901350,1616829953,-1961964927,-1144247035,-189046936,-2030032552,-1280536302,856736276,812420511,-369137969,-1024509153,1986137938,-249566849,-260036250,1931335766,-1432713445,1405903425,1836081934,381168007,-1047709372,-530179658,2009226178,-1341273087,-1861904763,-2022875122,316300592,-1406884851,-451071803,-1608775450,-598560536,-75122997,746866111,1390547120,-1738369483,-244119998,-333871443,-702284321,-1507645887,1345225873,-1295221001,-28756191,1645674385,-612757864,-704848639,1649835346,-2095374952,28775532,-293292156,1629198339,-2072635444,-1774622333,-233924510,1343096051,1848203380,-45950107,1270981343,939797619,-1738175084,-1669263194,-2040435716,1241462651,-56473974,-500044978,-1626447524,1712573751,1637715888]},{"sector":8,"data":[1336465236,69646517,-1197239681,438904275,2098335680,-1006397201,15971742,2093978488,-1339371017,-1434143346,316022466,1634011307,-1494954668,1271372783,922515315,-212841845,-1831675679,-1464802346,749876214,1914658440,-2006950370,-800723666,1382880836,2014529084,1649585833,2078490259,-489105997,-1068432918,-1562379120,-1089246168,-973825896,694560033,-1028743547,1730746361,1577875627,1980008544,-1350019428,-1973859834,1551901280,1949820182,-211631909,-1272758268,2017834210,1654034562,-854652520,-1031396614,1980139212,-1295987362,871893793,-1695183583,84523704,-1972658427,-1847388719,940984202,-1025179004,1491814671,-1243209217,337572505,-602133627,1011127869,854306619,1346052837,-2109915023,2052230778,-1994048298,-1474457230,1052549176,639875630,962203628,-733574583,-1907058214,-1704709461,129235015,885106871,448133373,1033397576,602228413,-1127690536,778729409,-2112874622,-1070708159,-1200591088,837377800,662617929,670144629,-1741299821,-2026885391,329358927,-1249398682,-1884278140,-699113059,1860243711,-304898305,-882978450,-624877884,1807660723,-1374690767,1123792441,-1583452357,-1884264941,-1408474691,1431865122,-425482187,995490783,101286107,-1079799176,1185563504,-1614543952,-251599237,-1065571033,-537713634,-1404373955,711044387,-2068478032,1478083242,695808853,-755898693,234872284,1016386210,-1540065544,-2053563177,-1585642663,-1044630379,1724985616,1985289039,-494801250,-966455575,862006028]},{"sector":9,"data":[1990498452,1420343391,1027092744,2014044598,-15318475,1390147095,1382739990,1191575318,152338698,136058168,1910678697,-1396390856,-978556078,-1989865424,1583634046,-1620741153,168528766,-2057878357,217447015,1511465766,159582397,-388494765,-1280423495,1859896084,1417918224,2146529057,1864480109,1864475910,-1686988299,130862043,777012434,-1601817295,-1322767569,329282898,138233366,-1350019446,-356142833,722258955,635806307,-2144770379,1130497418,569893125,1399245036,-254693110,1578216834,1353705237,1120550180,22269066,-2039270123,1139720971,-1496543015,564290325,-1350019387,-353018864,1236895492,-866496630,-1050932397,-1209703043,-1371833290,927368449,-2122173343,1551133829,-978573148,-917653200,-1661210534,-1941205183,1427859737,-1327876238,1789993901,-1271706408,1078851522,1719116738,-1841959315,1211181527,710122458,1097232787,-1726272274,-259909500,289584625,-1285778830,1160393774,-411133675,83642040,-18710749,-120762887,-3777528,352456440,533473831,568345197,-620522430,1988321748,-1441955774,1985073585,-1755742382,2087673070,822607046,1937764799,690086007,954236782,1805210632,179666224,336199959,-1545724256,394854924,-1314255402,1383485905,-128609694,-1000089955,1509107097,-1623125873,804362293,-205677092,1108381529,-1986868121,2051496115,1163401666,-1338866571,432179868,-2055912104,-2014946477,1791221325,956149117,-1124313525,1860153033,1049139133,-304355656,1807674632,2120213041]},{"sector":10,"data":[-722270870,299265058,-1792955325,715970948,2074607002,547662975,40599579,206038397,148914514,-1723813058,7054351,-1091090116,2048003936,-503198505,-537707185,985836100,145429206,-1404413829,1401263393,-1097100745,-852681361,769323231,-2016459991,558778979,1730234506,-1406119824,-41180581,-830417405,281132232,-1821190023,-1695202834,1103207685,414331664,-1448595204,2038501642,1394286722,150462744,353815588,1888250532,-1959647032,1683105557,-1039277900,1093124428,-1330536416,-2134375688,814948540,675860553,-147900868,-179818199,2106594499,-393500167,1121104859,1633877731,1053326060,1786662835,-331941278,-4681484,830183576,347305032,1598868931,241599939,457029057,1548253814,1464085358,1183512967,1419369172,1033409924,-2086397762,-848172052,-804710464,-1594361161,97111011,987496522,-661556621,-1867053133,-509712771,1040769151,-261992525,520417471,2142480217,1007563499,-1605070660,-268287992,15273344,-763886959,-1256159581,1289814392,-2143956345,-537189346,1032390448,-251599253,-268853721,492918178,-2074801813,1445309501,-1446852080,-548550245,-426340809,376305903,-1008229996,-1239046735,198541848,-2055110085,-1593920953,-1928723516,-1831183000,1075349552,-759964696,-1871518910,992689240,1854243202,-1158783763,1829118508,-1549901809,2074384532,1596819489,-419491722,-63758810,175189916,1900122662,-426816195,690363942,-1738369516,1624654680,-1560059412,189386606,-1972845171,-1962544656]},{"sector":11,"data":[337792049,-494787507,-469001350,796632156,412620778,-1909954476,366054099,-1928037405,-1456294487,-161458629,1460364024,-1547138598,-952015107,-1811246441,-1828008703,1863280225,2071539612,476370591,-1457489543,-1730932672,331337636,-2089235270,1985362904,1156828631,-282874663,-1472899752,-555948381,1193634307,-1066820595,1007177525,-741079551,881249920,1190825993,-1614543952,-251599237,-1065571033,-537713634,-1404373955,711044387,-2068478032,1478083242,695808853,-755898693,234872284,1016386210,-1540065544,-1917591233,-1595879934,-1819781023,224728181,-871634909,-2043280623,-647105324,-1183768087,-1637199544,218265616,2097260457,1080289452,1233482087,2049185163,-1885076880,1576731214,1212356933,83034874,463588672,1200245177,-751297618,-1097295137,608025485,652623662,-1444492002,-1915222047,-459761409,1298993263,-102791107,-163148151,-1314442892,825360155,1159841224,-1702418074,176668568,407484876,-1095724870,1212515765,799055997,1980515376,-1927273478,-1350019364,-1277628145,-347684844,-1154475502,602509169,1444689675,-1207455864,-1973863772,1821930081,-99073821,-1969168178,595180336,-1541654773,818261243,-1825624882,-551999802,-825376094,-83652352,448737961,-746756224,-1242596528,-431839217,652607031,1783831337,-499166619,-539419188,1927664234,-1037183983,-513894790,-860215595,-1676812514,406515561,-1350705197,2143545812,-82904833,-2032948897,1007563499,-1605070660,-616822521,1761518748,-2135196583]},{"sector":12,"data":[-1216802290,-788772551,695728562,-161425870,-1034719745,-967002097,-81871135,283788269,-29255,953725950,1380053746,1390478720,-306107282,-1506359042,-504968802,-302309698,-1190073789,-16777331,-445550411,10846948,-1402428350,-201396799,-1656910431,2079852142,-1475365393,-13113790,-1042941185,177379271,-821493356,598076806,-62470019,40730804,-716823173,-253029354,1139207427,264248041,-1729135342,-1247886333,-1820851981,-772309809,-1248939990,516074116,145429206,-850108059,-1678792988,2004044743,1250637564,-656280752,1793167570,-1032516981,219177467,-193950551,454968408,1738790981,-1037965980,1643896382,-1935078128,1146680432,-986811370,690436891,-1912649679,-1085382319,2100377023,1215985179,1288470364,-705138883,-42296800,-393500167,1121104859,1633877731,-769538581,890196940,353271601,-737789032,-371626508,-1380421343,-434151919,1783831337,-1403366811,-2081362495,62659818,-1353492396,1132269806,-2083718505,354693007,-1664155352,1040666800,764661362,-1636888730,-1824728609,-769005640,1539845524,1691787166,544831772,-234602327,-1482890418,-1739306422,247627684,-1276246886,-1194056674,1866395145,1640834714,1401230649,-845752229,2063812280,775243557,-1865843456,61884154,-428105788,-1389891328,605995132,-197271565,-1390171062,-2018497951,-1029012299,861231129,-423941767,-572730639,-761131521,1995979924,490185780,829458760,-2146956641,-2023535507,-1020738910,602257101,633503048,679265984]},{"sector":13,"data":[833945890,143335054,-332306304,-1086169880,-441004605,-232838874,-721658262,-647105339,-9362967,-1074450383,-748922909,1288564695,-1629665697,-216066158,694030099,1278339902,-54143940,-463448520,196662284,833978783,102963598,-1382895595,-518037999,-56439342,1913805994,-275742215,1317161877,1338647897,-1868313158,786488371,-959183234,411853880,558744150,-358429366,607797852,-875727376,819419590,1906908466,-1047271416,422524887,697779303,-1680193487,1385310803,903814860,-1667993553,-520149190,317629734,-1081042029,-231159636,-2142092814,1107306785,-1282104091,1942992647,825176031,-836378154,-1053430929,177379271,-875888236,-843483700,1028164169,1675009528,176908996,-318113675,-241682977,1874810376,-1670813183,907143929,-1396176533,1971623201,-560321876,-306830908,1848018029,627704631,970604358,245464361,264247977,-1729135342,-1247886333,-1820851981,-772309809,-1248939990,516074116,145429206,-850108059,-1678792988,2004044743,1250637564,-656280752,-1174499118,-949420216,50690006,1093437706,114951621,1976674113,1536005283,-1292464236,363252826,885539003,45362938,1146750691,-979100522,-1493321438,-245493978,1485887230,1061997635,-1424348698,556551217,669332203,1235252689,-1958540264,925502668,1231303027,1143710978,-343308457,608732762,186621707,22842778,2083426336,-722456708,608698471,-1097904259,5743526,1333601352,230669967,-1974912698,-1499949758,-316724969,-523306472]},{"sector":14,"data":[1075349664,-1473242935,-1876907554,796687406,-1805396752,1299031192,-112683607,-202522196,722102779,-1531609296,-2047859190,-1827937843,1683412173,-1262563300,405346196,-1626957344,-880748987,-645885588,1283094518,-1257324875,1827564396,1073902706,-776779591,-937235731,1595461818,-1333034427,1657992743,-1981815919,1094477533,-204605681,564975940,-699112979,1882395647,-444792162,2080100678,-814543368,-762885032,605978677,120643579,-429179511,-1641549568,1436741625,158014817,-1405254571,-904899035,-912545342,-1908940979,-118495594,-1584130451,-1515076633,-157033177,-1046641161,-1978556351,119495233,-851409851,-1695178068,-1827020783,50661876,734326282,1194340160,1646546967,-51688963,841106009,170175349,1036989808,1349543777,1970383920,-1053866494,1149547256,1213655908,1074066178,1856218934,-1928640049,1028803786,-1078517907,-1097295137,608025485,652623662,1555023646,-839919629,-582590644,521638558,1712264179,1645612329,-1951827560,-1045663496,-611379512,54837471,677920630,378875984,553333828,371063906,466541596,-906882135,1464085486,1497561223,1543991988,1556142067,706110972,1758045262,913992195,-1198459668,600155356,-1437831830,2066762569,-269662341,-2130743306,-21103256,1784381409,-1866712050,1074307156,1628589578,695413107,-1045663150,-1628964115,-255889217,-1080105190,-1078517907,-687919140,2037980260,104900896,11079904,-444792214,-72007098,1280510840,-1542481440,1228669035,257998583]},{"sector":15,"data":[-858293742,1028645377,-1438326797,316029634,1484458155,-1792955318,-1841867899,493862555,-253768403,1126772186,1248036815,-1357540798,1314397658,95259430,-241483516,1696888177,1664906753,1321378439,1859846277,-964334397,-1447221531,-598118234,824839188,-4813348,810559592,876877461,-60677893,1119773,-1148346662,925770813,-179818199,-545346160,-94213506,-1862996938,-1734803528,1404771963,1786703692,-331941278,-4681484,830183576,347305032,1598868931,241599939,457029057,1548253814,1464085358,1183512967,1419369172,2066795420,-304674183,-1018623497,16678818,-67736699,-504978300,127530455,709385758,539296848,-1839969784,-67739498,1894730835,987536532,-1705328385,655850343,-29696877,-874307405,4851145,788571268,600155194,-797699842,-241666777,1338025254,-780340367,-938906826,-560321876,-1066551612,-1781595082,-1371287523,-1836450814,123768212,-856211831,1515184641,1228701945,-394543385,1514625173,258037186,-2074801813,1722462258,-847817742,-1145461277,-1522197506,-319784664,1959479657,-1841677934,-568470993,1820688770,-1323624501,525504228,-598088457,-1660612332,-1723485941,-1389398429,1122831159,-1894476942,363391218,81495974,319755235,1361127312,-464568338,-1408429085,1645625682,1137904280,211387885,1880651267,-1910232006,-192175026,815822727,-480077395,-980337546,2079361640,-1365396552,-1192300448,-494492405,1308779136,-1397316452,-779145019,1734367344,1703332964,97962858]},{"sector":16,"data":[-664140807,-864129452,-1793967169,1657088930,1909346962,2119249914,1421974853,-23300705,-1724525501,-761192718,-1343771558,-1035951712,-290361772,929483602,-419274144,1179271138,-1300312438,-2066332358,-592935871,1011127869,854306619,-160226331,-1529284251,1860578434,1187689910,2028766958,600155216,-1437831830,783519303,-1881923710,-328348550,1294813187,-1847608013,-1031857730,514396160,-664102667,-1705340922,599751527,-2063650180,877797632,-168402794,-1082167010,-2071889663,908164400,1308262546,-1808527358,-656703395,-158530954,349217935,-324885375,549803523,-902233714,1936884364,598041730,1340211544,2013328317,1623119507,-277278193,1445329566,-1783572975,-1025883304,-1408474795,-1799579350,-377949219,-2030080402,508193233,1377450876,720156738,-1182667733,-88980302,1074066178,1856218934,-1928640049,1028803786,-1651305628,1598868975,-1835082426,334700311,438920719,1011626411,956089812,858809430,-770627406,203600942,227624229,-1088894914,-1920645881,1169482374,-1533509768,-1784066707,129209929,1313771703,-819088009,-469499396,-28148761,-874307405,4851145,-511442724,681911252,1283478599,1193634308,1383267443,1377649403,605978677,120643579,-429179511,-1641549568,1436741625,158014817,-1405254571,-904899035,-912545342,-1908940979,-118495594,-1584130451,-1515076633,-1686962911,1495262111,705434844,336048420,102328343,1382969560,1934847541,1708561149,114994480,842574913,1146750691,-979100522]},{"sector":17,"data":[-217075422,2108622611,1485895375,1061997635,-1424348698,556551217,753218283,19085624,-2122747512,1726891653,1411418412,-259364699,-1462290959,-925373739,-368395335,-333282869,-1064221694,-1096769291,1320852181,-1346699419,-1145470651,-722756972,-1988954774,1858176260,-1296383378,-159037216,54989449,-2120383786,-1718374810,-777261441,-445747616,452305441,1101159613,1268863010,736945714,-1895551317,949110784,-1072319458,1540188767,950311060,1553490518,-939989082,67467222,1208402496,-179927615,1153006197,1117865090,600155292,-1437831830,258395463,-1526787985,-1614042072,928063725,1869518054,1167684395,198000998,1916881387,-1878421871,-1777529237,-1291770919,-1712001300,1780317291,-656615464,-2130384668,-1553493646,-781265701,169246049,-15679442,-953956956,-860220481,1610322808,1712573751,-2051700816,1224498003,35881115,1363600763,822351420,-1831519719,1614998068,894586014,-81518976,-1996017441,15100733,-107075599,1633002223,1426680605,632044932,-1026944938,1305058217,-1769064481,1845030886,-408841194,564507075,1244027196,388419,-965855036,-198203159,1885844847,497627216,424218889,-1537440522,1780361157,-1810570398,-427752113,1424175014,335791300,-1499941474,-27104738,-658396140,-1377327306,392816576,280107488,-1350019367,1783214351,-54143748,633515114,-1585592640,2019063024,296597618,694558558,1701466907,818618194,2015526011,-2130358508,1713758614,-1850423487,-516749778,618763841]}],[{"sector":1,"data":[1007234106,-758698749,-801201052,1972409427,-1136914770,228611216,61227210,497259135,601170392,1340211544,2013328317,1623119507,-277278193,1445329566,-1783572975,-1025883304,-1408474795,-1799579350,-377949219,-2030080402,508193233,1377450876,1651777407,420501788,47722706,824821579,-326209464,6897599,-1952249145,1754330867,1121104859,-482859037,-334551418,-978556078,-1398861008,747476171,1410897943,779125315,-1151854036,1580267854,1456111968,907784072,1624346069,622292596,1075436247,1102183900,-292078456,560832256,1269740028,197356718,-1207862085,-1098891335,-403306541,-348247561,943475761,807054934,1147592984,1006207618,1149616546,1107306296,-242587499,-1017629496,-546752740,516688678,-157261766,1351103176,-2133950,648929793,1578288826,390010736,26306011,1597210765,1285254307,1258858926,1474184731,-1539425660,-1945392757,-32000451,270643712,815636787,-1939585961,690415008,1701466907,812334418,-1468176521,-929725644,163008583,730510588,-1544129744,1224378574,1616789521,-1689991062,1166119670,375981272,1186807162,59870744,-2124606392,-535074081,336075588,91291817,480506488,-1846931328,670105772,1015085534,811592521,-147027705,-1424851505,1247341320,1642930604,1451667498,1256082453,1958541678,-1015072841,262517864,697113918,-1998780659,579589127,-43586281,613393654,1094822750,-1564630913,-1287404346,1386518676,-2022997988,539015636,-1674705446,504731142,1229002453]},{"sector":2,"data":[650562015,1234264609,-1836635802,702014914,808409114,-291787472,-2091432917,1278323501,-1045659092,-2134342939,-1115385394,754584729,-575608715,-1138599215,-967407029,811136108,-640141397,675860553,1417225476,1530176664,-1844358862,718987053,1894942525,562569514,89023075,-2003697337,-26308212,1072452049,206668179,303762241,482818417,1677101142,-1768811473,-1718278709,-1292500212,1901654617,-2015812774,1675192923,-1805928606,1650708958,1449222238,2011577931,2068065052,2114543920,8267155,906063683,956883138,1330899932,274268255,-1076194678,-1192740533,1671675352,-2034172573,1291853876,1086421601,1906636833,1823774590,-979084180,694607143,-2113608576,870947969,-604300797,63494831,-591055858,174709257,1283348267,24292406,639314823,-1769345995,-1529084517,1835672517,-1438209460,88848844,-171888188,-1261488637,420609318,-100653021,-310053227,-877909852,1896222240,1501088096,-1925619440,33031483,948357302,-1651662530,-380934523,1215658774,487941730,1926461506,-140831597,-1889962014,-1695587822,-728532788,-241683041,-142807804,141244113,-1408474779,207727907,1639785388,334616148,-629491859,-1210057596,1406944986,-1550680828,438426397,-1923840256,1049167712,-503198473,-2131142065,-1092138692,1486219387,1438800455,158011233,-1338866603,1408394922,-1511797385,469679033,2032706885,1214901488,-2010724367,-1821229508,1992793876,1268664008,1098288906,-1535011969,640031774,1984404285,1268664008]},{"sector":3,"data":[1098288906,1284281215,-860197080,-910796460,-1022570038,142668262,223052614,1457647648,-1887610743,1498729658,-775239242,-1293434100,-1683539200,-1990832458,-348230312,-614051535,860105511,2137871,-713673870,-1205840222,-986966364,-1291144656,571184647,-884262397,1410894948,-1398872210,-242587483,-1574845138,-1937206567,-771854703,-1824527279,1091326337,1880234763,-1811138518,2005623876,1636797174,-2012570372,-665319326,953059731,-1287146270,-1801160679,-1406379594,-1256234808,-1013788782,-870395510,-883500230,-591784677,462157478,168030994,871848370,593158584,1258849241,-265577996,158866178,1090525110,-1705318450,-939329414,1973113988,1171216890,468567494,1391337243,-1281453982,-2050768108,-1282122896,-1127690568,532595392,1578216760,-1247537095,1918995033,1260844433,1578149208,-388441844,253893040,-979067889,-1644632794,-1681628202,1675000999,-106651964,596166572,-2028338696,1712553423,274106032,-700792118,448973328,-1213854997,-1153853048,-433597226,2124987645,71352461,2022492803,10261017,1215629565,-1820852010,515931375,-1733298908,2074002435,1435090663,632059268,-1326051242,725833877,628073994,987659319,-507536549,-2024645964,-1798959457,1826619792,-2146956562,1120563314,1696867258,1260792071,-474188170,-1514454845,2084866092,-1943918468,56709638,-1547542492,-1319991661,-979100589,51379747,1123174639,-211861258,-1403449581,-328130696,774975871,-1658398085,-264720483,-434033456,351477542]},{"sector":4,"data":[-1499966067,395462426,-338296142,-2103078542,960496883,-1809029832,2005623876,1143705334,-579368617,2072258918,-1392725493,-838459704,1482793184,-2071603718,2017833994,409664931,841665732,354093203,-1975072207,134960076,1220136058,-1393113646,673425711,545421569,-1830642404,2021148084,1823004054,213024150,-266529630,742445273,-1879869560,-537314038,1656768706,-1335861732,1342908333,744943302,-1437327223,762204748,-1875062205,-770273091,-1114620718,1169465988,-1191637233,-230158411,-1115624382,-670316253,1346644810,-1533476880,1636456756,826315058,-2120552710,-1830205563,289053659,-1064872312,1485162950,-1669143761,1780729252,1202343021,-770742611,1949727887,-584670191,1497600326,65526659,465455085,-22869958,2097601424,-1539422491,1478743329,-1118838271,-1820851981,257998550,-1628473070,290858490,1486205142,1438833219,715918433,-577454951,1860794611,-779681938,2082359913,894573115,126363271,1927261396,-945875821,362186452,-8197090,1184891431,1667407008,364113627,1924295958,-114277452,-1526632260,1886949510,1017922731,711384391,-446375124,-211712408,2051411607,-1668445807,-986965422,1549333040,1260643770,352773637,1291581976,-1924826325,-1660576372,1143692481,-1423080617,1303852643,1745424449,1689366923,-522650855,1862367291,381741313,-1174457532,-1973850807,1712677985,1142303759,629961734,-781727508,-2042253469,366054126,-1240703518,-1046321357,1665025669,541140837,-443215712,-779066798]},{"sector":5,"data":[1178913132,1753200456,-920652120,545695936,948538757,1241914389,-1153093086,-1337506309,1141198590,1814823985,484951113,-651994511,1246936204,1452682331,-636538780,1640589257,1720674501,1705733405,1860012685,-1924826285,-2055112311,-1711592359,296579292,629457388,-124433158,79432961,545262555,1303213031,1677818941,-1169348030,-1561907971,-1913232669,704089997,-1284880079,-1589198828,1726338939,-793703869,-1355796433,1097977991,-2007579167,-1411773777,-847443613,1524592278,-1013518287,-1728740204,723263142,-1650074494,-431655226,-101706490,-242587451,-1255815736,-209376922,-1178751183,-532775803,-1495410920,-1999854897,-2109865565,-332650482,1449868713,-786842941,238014685,-1035973193,-1704058973,-1077327741,-901240298,-88620544,2107908873,1768118155,1649560778,-1506364015,1715806549,-494754468,-2114265064,-1547077733,473978602,-909975028,1509378425,319197573,1605424024,-2006180992,418022243,1918163161,1648915807,483527275,334127318,-1735091258,331330980,-1820799814,-1741349088,-931788815,-862286010,-277572744,-2106012518,-1475248065,-1000089988,385070355,316042274,725833739,-2035241464,-1026944938,1564694553,598477921,-699113027,-364457231,1862542360,-1672683769,-2013392418,-341582360,1669389128,-1550680318,-719223110,-503228381,15973711,-1093233800,2031226720,637181679,-1328148138,-633120619,207705538,-1130812756,2029247892,-9539863,1248448902,440106014,1341029714,1616815129,1626146696,159598015]},{"sector":6,"data":[-337379119,227624362,-718882088,1748986246,506013413,-2123716405,1654453285,-1839013023,-2144770535,783547026,1588606034,654805088,-2010361251,919717230,-79088724,732042567,-1777029183,72102315,790119676,405300839,-458739495,-1857705237,649779213,-488996651,-1806495717,-1499982459,-1920878314,982082681,-1531308794,1177723435,-1590763440,-1119346999,545423958,1462475804,2109861799,-1859512145,711767466,2009283129,170125058,-1443960434,-1288480652,2009179749,-632803031,-1859497061,1352096243,-1131002412,1128274661,1206221830,-1458646658,303022106,60354429,-206201148,-812419072,718403452,-2068476240,-702627158,1695066898,-456305567,-946081882,-59280565,1347062582,-757538317,-1710882927,87921254,-612482812,-979051465,2096866599,-333572714,36175746,-1667217760,-163225246,-617862656,-1788287644,1926548871,-1734838750,-292298110,-909962061,-1796509087,-1743311731,-1224911336,957411439,1952502081,-451804562,1643154024,217213989,1666190448,-1318572244,-603147599,-978536796,-1291144656,571184647,306592259,-399285002,-1012738127,-1972877961,757149425,-1326917236,-1275700383,-1651208835,1115718148,-1974889129,632505667,-584967919,-660364547,-1576917121,907444760,1884610596,-913823719,367914774,955892510,281284629,321368497,1757770140,-248355185,-1301534391,-1064281767,-1624937665,-1575647451,-1233807299,724997805,-313673355,-433768938,-1285286650,-1032755218,112412596,854169360,906289239,778834928]},{"sector":7,"data":[-828538112,-252365643,-1459056379,-1275794634,-1953657954,1060517594,616932572,-2144770543,-1342750067,361155786,1616814179,-638166175,-1391196225,-636133871,1444709293,748419858,1672789725,696724961,1509378353,-864263798,1634660203,-1076234661,-1146146368,-1723490483,2097301009,626334724,-640062795,1954999856,-1022659465,810603437,1308047275,-547052479,1696863627,1045520640,769888642,-1920626340,1211181479,710122458,783538834,208781650,-851411600,-153361221,862978265,-1035270517,-1402219832,-745008186,461397936,-2090629012,-656860950,1969189460,359031368,-458980198,1847250732,1586717266,837504764,-211989278,1678937945,515106307,-432284380,-182182221,1013370151,146808641,-1000194348,432183885,153830232,-1792955387,-2035273084,-1328148138,-686795130,-1137355432,-563225788,-548883786,-429598109,-55288577,1140303325,82407156,-867055233,438223007,938599424,264247849,-1729135342,-1247886333,-1820851981,-772309809,-1248939990,516074116,145429206,-850108059,-1678792988,2004044743,1250637564,-656280752,1918669778,133995391,571203735,1705195532,404201905,745805636,-347489994,1694747829,675848625,515964732,-68943846,-2075793421,1723975232,1924221351,-949587107,-800722847,-679039696,-1119276759,-155680974,-1579056833,-867791223,-656146743,-1930685442,-1505005748,-954271921,-1002171920,1019661254,-40695500,134001095,-434266568,1383866150,818261012,-1150918257,802721172,-1828502480,-1932489987]},{"sector":8,"data":[218005137,92601142,-298908271,-1973992405,1636456745,-155680974,-1562279617,-1914859819,281132040,770953309,-242587451,1658208200,-291550056,1054969661,-912037943,-1150533513,-779480294,-713366763,-914085530,-19340290,-877910014,233369235,1883399063,218233351,-242587499,-866584653,919365344,-2112611749,-1493471360,2023627936,1428415848,-2021185178,1383003770,-2010332111,808441869,-2133415888,-2105968185,366062274,457951456,880193996,-1811735765,1299031192,-1773562455,-145807693,438237195,1745292078,-303098169,884370432,453436194,-733464223,1086571308,802963353,1791244768,-593934186,1492397266,2088768120,948402331,1364271341,-911459932,-20775533,497675283,-758619050,1509134690,331960973,-2074830533,1871690277,1217798225,-1856197165,-896138860,586728646,-1386800920,-1910205944,-210517713,2083676625,241767463,185759083,-1303934391,837504764,1290276578,1757346206,1971598747,-543544660,-1783112844,479584008,2013278158,1536951144,-48464914,-1526729468,1228669035,257998583,-858293742,1028645377,-1438326797,316029634,1484458155,-1792955318,-1841867899,493862555,-253768403,1126772186,1248036815,401061965,-888930611,110167536,-659402468,298617808,-890927353,1622039887,177024283,-18398911,131133440,-823675080,-1920923509,-1857106558,-945245981,1715552742,-1533504389,-138044962,1022412574,-936300236,-138044967,-1611610338,2053333604,-292867235,585142077,-1752331895,325613708,-656163272]},{"sector":9,"data":[1335624702,252965646,-701158978,-1337485214,858807475,457402034,2015298500,-1140754306,-1376715536,2776593,371362737,-1317940877,1234565601,-1913303926,1843249694,178854586,1038359339,268029018,-1314746142,-2032478579,621213949,261955900,-592220288,2142449614,-1066829600,939254348,-1192487938,799810724,-326421579,1197340895,-1795487803,270166937,-1418386500,-1810328548,555172385,-1854785726,302681541,-1609798179,-444078305,-1921694774,-1553053431,1023350939,1112682047,1455018072,-208700437,568718019,1954858682,63525303,-1174605572,-1582208439,1856572270,-1874594772,-254232440,537358484,681473094,-1424348834,258497025,933320976,432638184,137954368,-852194421,69171748,-471415840,1486850534,-1414525371,-660115238,-1179526947,1477376077,1349660747,176509026,-2056757488,1288325385,1645611858,-69055336,519594895,-312988390,1113836486,1449230360,1551792237,481265750,-1499966066,-474073069,-334233896,-2093188458,-323841761,1143688808,585665879,-1677110324,2146201951,1700140033,-1860181047,1315499186,1933704960,-1575629210,-1026963925,-1016297807,1218556261,-1157691864,701366634,-1919638559,514234453,-1176900835,-1307523256,-1134545120,1520681664,-421192445,1152059915,740393815,-658165137,242003152,-1248763310,592815670,-297703863,-2070340820,629661969,-2127242537,-1142685660,1081590690,694629935,499933727,-1256140328,1141548097,-860205158,-591207908,-552917024,-118812564,-1116732864,270647798]},{"sector":10,"data":[131574975,671602367,536911143,1937785476,-898561141,2023232837,-1103621272,25128673,1450977230,-845346520,1281805601,-1182401566,688721916,-248329446,-403279602,-1239986440,-22346359,-1553012336,1749538011,746206727,163107884,554189031,-597401135,-1388993455,1190819542,-653079342,-911459630,600155281,-241346052,1999020120,891267378,173137850,1371006608,-1533496288,-289116360,-417325389,-35660777,277830131,-399007399,1075431816,-1962395388,617428107,-536600710,1151920067,-417092391,137053016,1293276833,1877378170,-660111458,1795618268,-1587966902,-913774537,956579865,881560328,528098509,600170500,1340211544,2013328317,1623119507,-277278193,1445329566,-1783572975,-1025883304,-1408474795,-1799579350,-377949219,-2030080402,508193233,1377450876,193704720,957047514,-254232344,1343025404,1932995084,572068133,48448234,-871758861,1500500706,-1974889171,-1321728185,-2062323476,923255535,521898728,-2062352190,831344876,-426816195,1240532262,1636456951,1892598302,1221250752,1230538177,-2029209467,-864003222,-783666545,-1231625707,-1174605803,-1973877687,-1694244511,-2062727692,1588608152,-1152294560,18627222,354435684,-217954302,176655877,1575097809,-97756169,105924146,-653622419,-1060747825,1078060743,1948549571,-55413345,168528629,-1635775607,-1204747913,1142048771,1493202889,1828537114,1567758366,381692385,-1918887868,-1785401340,374245961,-335214399,1379235035,564112747,-224795150]},{"sector":11,"data":[1330178335,869731675,123912258,344647735,280163716,-1376641742,-2057831592,-2069562911,1663966646,1769896167,1708054029,1069314508,1733003060,1724813866,-914283376,-1813608585,986410029,1635306585,-427329591,-2073272941,1538509989,-1898465467,302218344,68273797,-482183133,436772639,373379660,-1614683444,1448111940,14503086,1105961646,-951647140,985055936,-1277848044,-1702822750,62392509,1886600848,574292753,539297011,691174243,174295840,-968503335,1105643456,612483904,1652260449,-656258941,1609016258,633106792,616932380,22268978,-171690942,1928009270,-546744431,1635784916,-523399343,1908623048,918299226,-255093100,20318193,-616960762,874461023,-1884287419,-1465143118,1875158010,-244627318,-2000180165,938984761,1675001087,-523920956,1929383183,-193729397,-201468141,-697556268,564982545,-701070187,-2072359659,2141089766,1198543654,1372159748,515944911,-2114125798,-1072027337,-277016049,-1631321192,2013328309,-142815341,-1901057327,-1029012299,-1424828898,1415669000,-274275123,1934346139,-1959330697,-504147894,-1533947176,-20094145,99666691,1595672209,283943477,320519020,1555799700,442185408,-813465068,-1595866628,1052760079,205805684,1953109612,454416006,337953114,958358786,675842633,1136886781,1205668371,833769452,258802993,-1002171944,1023192003,66781492,-217165924,336793363,1278299015,438234119,-51554259,1102089174,1315499186,-2057878485,1278315387,-1303385081]},{"sector":12,"data":[2045962329,-2090854483,-1664034715,279939158,1405925983,671283969,-57422932,1102089174,1315499186,1933704960,-1575629210,-575749333,-2032595842,-1874697269,1962872144,267781076,1067719693,2023252630,-438915721,-935191517,-209527424,1754073603,-1734904052,296561196,1595346014,-1316264546,483940513,1780729252,1336560749,1896821355,550296672,1818952644,-62404079,-2138667175,-1988927425,-559630029,267813721,-2061883123,1153252760,1735622774,-599342174,1235433629,-2029669456,-410488191,-2062310371,-23901971,-769241264,-1849054150,1780729252,-1825934489,1863280173,819130193,-800763760,-1146557863,2039446786,-1551835777,-1427568448,1671413806,654125017,185781490,1380747849,2011330344,2115014489,-850933308,-1395047181,1415695654,-762773546,2080510830,1698383589,-1399762382,-567807744,1228701945,120610795,-805880695,145429117,-1404413717,711060769,357992112,1850400332,-1217086215,1757642551,1041212852,489262365,1183128983,110630892,205935286,448361259,-381618657,-1735089405,1704687012,652623854,-190531552,442600025,1786977740,-185846150,1457305744,-988237944,1282239011,-1742387798,40468538,984040585,1790521623,-60954019,-1075905318,1230876511,-1528942686,-1345462411,270615244,-1970940747,-862286028,-2137345507,-877906268,-640993595,-1019219777,1812549746,806041065,-561022341,1916884740,948238145,-1974885542,1325201987,249704939,-1071088679,-73690998,605991910,-268423461,-1116993584,2055372430]},{"sector":13,"data":[-2072330497,1824692813,-1026944810,-1509250251,-45876041,-1500302152,-502929696,-1200852140,490783491,-1310212430,1599066319,61884154,-428105788,-1389891328,605995132,-197271565,-1390171062,-2018497951,-1029012299,861231129,-423941767,-572730639,-761131521,1995979924,-1910004684,-1061193255,-1308590471,-1786002656,223355898,1916953495,-1737815662,1113836294,-8826736,20200576,-403493925,-968850363,1218930369,1134805586,1823427310,-794007117,1150627976,-1340351988,-638427042,1200245049,-1021060271,1443894083,-74125872,-1139928285,337763201,-2143925172,-651767568,-124275845,993816846,406146252,-1973857628,2019834720,-615401624,-729252123,-791124733,-1350019428,-1739235824,1404437414,503683052,449949516,448490624,366053907,-1281174303,-931741676,-1179970235,1190406975,-970056800,-200286076,-950454761,576362893,-1952631108,1751964088,-1090450862,1988139758,-892211000,1405913666,1683372299,-1831334608,307650864,-551484575,2021692202,1471546216,1452003047,-803491960,1663098437,-1033608352,-1682720425,1099195981,1523493508,1809610051,-1033886619,633619363,-1407954354,-269471547,1187706206,26314040,115738043,416291349,1479553007,-1138599339,-105157096,-2050609514,-1821220765,-1247179500,2048305458,1813211256,33551037,703997134,-312453578,665182609,-2143643403,1149829737,2120072868,11700326,440407761,-1760253659,-345363254,212145833,-1392949085,-1473651775,810240010,-1062882179,-620522430,778586068]},{"sector":14,"data":[1027540606,1315575318,438942504,1009555589,-952515573,-1937112471,-1538416992,596859253,-850949559,1432506214,-1403271389,164757659,268436022,-1173025111,1889646223,-167729904,787878389,-1070667190,181952915,-1323361226,-1805790113,-1553064561,340808630,-1984285305,600155141,1501029015,-881454961,1409566425,903864196,1812459928,2050902694,-1030075004,-904866196,178998210,1140635558,-2106541827,89358491,-1079799176,1179306404,-1614543952,-251599237,-1065571033,-537713634,-1404373955,711044387,-2068478032,1478083242,695808853,-755898693,234872284,1016386210,-1540065544,720156895,808393410,1260913476,-1735122147,-385227612,-426820114,-1537729754,-1738385864,565424199,848534913,421584408,-2071580606,-1567231451,-1872575189,-157762086,-1202429162,1122673871,-1346984733,1494163302,-721673825,-1678977642,-1334578004,404230858,-1720968727,2000929182,930839106,-1351595777,1204752998,564202555,1100123777,1720546113,2075469181,473778986,696529644,1531329030,1353738022,-1633759011,483573716,1508235563,-1805522968,-768522207,1898850376,-1230712916,1743348911,1108996023,589103939,-667708627,1340632616,-379623601,-286518002,-469895636,1667254312,1548783780,1235180003,1523474029,853438415,973482372,1730566982,-790802256,-876898,-651485998,-34165724,-1874712349,1351656547,-1621499044,-45905335,-41604762,17493548,1613119864,-107848863,-610466555,285947776,911363274,-1530211162,-161474966,31068661]},{"sector":15,"data":[227253965,-495685093,1712661645,841551627,1114303446,-1690485503,1892549631,1104834830,-1982570952,569229887,-223332131,666088593,-1423939181,1215911984,-1512788624,1609552290,-1953074544,1863957575,159818851,-291961595,812334418,-2072470660,-49547276,-1358026458,515108548,-841514464,1027685478,1086522168,-1885626177,1712562590,-2068478032,2106568754,-2730911,-2238957,-601582828,1255409220,5132172,-399519504,1478747430,-1118838271,-1820851981,257998550,-1628473070,290858490,1486205142,1438833219,715918433,-577454951,1860794611,-779681938,2082359913,525474363,2146694391,33354368,344408420,1563822181,1271531917,918576219,-2112611749,33345411,-765484831,1641150972,1504719120,-2004888919,-2077051879,1351656547,652582489,2059543849,-127692933,-1743250914,-376883751,-510706194,-993736642,-1490557256,-2143291720,220604042,-1595844241,1039067401,-1002839921,808579056,-1433312522,1036129459,421056133,-1927203879,630456802,-1269656946,1387034693,-328094346,853724204,286919188,-514136412,-224791056,-1718357473,-396806293,656239591,-2038156800,-732240220,-633767274,213928391,963185313,-1633307754,1237827295,564202688,-1131005527,-1092641099,213928391,828967585,-1973858488,-1197004960,-511623178,-594618974,1563822181,1757743501,699658634,-1635767962,-19340386,2056711187,1093174076,1315499186,-1990769621,694568307,-476144000,671284952,-963392596,-664435888,-33448752,1516585856,-853885918]},{"sector":16,"data":[863024662,-1926423706,926957834,1599132669,-892210992,1405913670,-1695216113,-1003400466,-670201812,-1473236945,2043117782,-1430093191,-824175151,-1311985835,455816310,-1533504509,-1784066707,-1873213623,-435778693,-249559455,-699909822,-2138667175,2142480167,-1715193376,1799279324,1716473648,-755973889,-2091276143,1749538011,746206727,-741774028,194720906,393762864,-630092248,-732022719,82132873,-1440518670,1276811724,2007381586,186689842,-1887798480,-1370442788,64300708,-2138954723,-600617989,1507763281,828981634,1325198921,149041643,1675000877,-911949884,-1991192761,-633120589,1129847234,-699113123,-573172737,89275391,2013395896,-38165614,-1399762382,-567807744,1228701945,120610795,-805880695,145429117,-1404413717,711060769,357992112,1850400332,-1217086215,1757642551,1041212852,841583901,-1928709138,858795992,-1293375657,209479813,-91207660,-1105589703,583378076,333647793,681883655,-1187986004,-1560579127,-821655615,-851286871,1616789729,381742003,-1331685308,-1203140184,-191468363,1137904216,844849632,2045560517,-1533504477,-1784066707,1708585288,-1812315184,-248804076,-2000180165,1912762402,-241683169,62406404,-54968125,-1461198042,564975940,1451667630,715976465,1043649690,1189913198,89419995,1133267668,876380411,1858248459,511718738,819985188,1799194887,670105830,-1561331298,1797087573,1032082697,274081196,-1683373366,937381321,-270100850,-1810469384,-1312561247,-407755867]},{"sector":17,"data":[133995511,571203735,917256204,1760342577,-631614898,-659422746,504669392,219144319,-101325054,549626611,1404264547,205815972,1588599770,1756128864,1343684084,-1533276243,-412474427,-1985879567,-817537401,642184937,1071078171,825315716,231701192,-587513088,1941970811,1658773897,583396449,190041234,-1954101345,460733270,880204056,732042535,-869617725,-744551597,1014666988,-1305397620,726558956,-729393340,-2060884463,1444209103,921487717,1760342577,1107230798,365848179,549923746,920869089,-791104927,2130908324,-821742115,692569059,1278298888,-849422301,401360586,1722489240,-895312058,-480468971,-2030036322,2017834226,-1077429585,811103294,-329082449,121001576,-334740384,-661549404,-2074748751,2009612440,-775841843,1383839929,1884884282,1920943396,694557074,-109410425,-501733097,-335133674,1410897943,-1134346133,1432469948,1743817320,-1762040875,1669711406,345207392,850766221,816514473,1057280240,67027645,907690396,1576292742,1496205673,227491735,1683365161,2056205513,-1562501428,676349475,-29163333,-1037245551,-367963889,143660781,1799180927,-787943118,1096255727,-196736841,292883355,-1374625885,1058514049,-729563003,-1559135676,-2108040632,1430731355,-1741409639,1624669348,675486605,-1783353606,-1470419640,1534715,-620522423,250167236,185759083,1162709577,1675009528,855488964,-780340399,1795713846,-728094036,-348662220,-1941268733,103272688,511718866,819985188]}],[{"sector":1,"data":[1799194887,670105830,-1561331298,1797087573,1032082697,274081196,-1683373366,937381321,-270100850,-1810469384,-1312561247,-38919003,-1993546232,772624416,195664776,675565708,1616821273,-882779801,-2112580822,61249733,-1914103625,244550921,353768451,-117361604,1387144491,-1738402293,-1234379762,1278617140,1481641016,-1011651500,-1528451008,1673484934,940429203,-517353983,1614741671,494982128,-533447502,1769531439,-412459072,-139992591,831201321,348860236,1163867744,-899529593,944518662,1415073804,-888745744,698672560,-2040021158,8336001,940796024,-1595866692,515944783,786105370,147910656,1407966265,2097241935,272679843,619052798,-2060884463,109863673,875330104,117065161,906409006,1342978124,-772778920,-996598585,-82420572,948864583,-1013252896,1380764309,2011354911,1678937945,-789577474,-696496346,-498277715,-2121922576,-1376155085,438231765,-819463932,-1335487619,1468323227,-1024832168,-703474118,2053876400,-656230704,-885562110,1917003369,1136454805,1914456003,1015026535,667382068,-2009751607,-522704911,2097286415,-1991192697,-565749581,-1340960848,1401279899,-1928164774,571789042,-1749187364,-2134165879,-1240910788,2026674767,124811906,-1557692282,538883046,2013329287,-820051352,-853083490,-2066406047,981970994,1129847234,-699113059,-984766473,935941311,1831016139,1778561464,1681868325,36575804,-798608439,49582478,447316508,2098335680,-1006397201,15971742,2093978488]},{"sector":2,"data":[-1339371017,-1434143346,316022466,1634011307,-1494954668,1271372783,922515315,-212841845,-1848452895,2032236707,-1945500749,-956238910,-358932541,1889037388,1457037336,-986059117,201275383,1677835301,-1769116864,-909736762,227148167,-482449019,819564389,1043986149,956340093,-1067081787,1704974351,1339625152,-382738254,327207742,-412707990,-298845196,-1416535470,-1737152642,-531683599,1677856015,1013370359,6200393,1898369264,2024486239,1935645827,2110781311,-1682938349,-1338866475,1468323227,-1328658600,-797283414,-196612682,212168394,1472908700,-668470862,34410464,1724745597,1555450172,1302388993,1675001010,-2133650492,1023489084,1307852063,1450164890,1271056912,1634011307,1401255182,1535432283,-385609547,-1715301958,-328864474,-300990020,80801792,-851992769,-2018482669,-1398160838,-524907046,-904526788,132151438,1151176258,1805936419,-146195456,302997694,30201722,-214085662,-1029028641,-1424828870,1247312648,-2053824084,-1684916397,756903870,-621748275,-817682131,1179280263,358023074,1540271546,-1735122156,1972207524,-2094990883,211710138,-666420148,-1830855209,161954568,-108557919,-1737142902,-579531354,-1165811463,1920440693,-851409720,-530662533,40222975,-2084330554,-1138599311,831227190,-1417337012,775039935,963401539,-112523741,366062330,1565592290,1819163020,1131337904,1503713374,-1143382932,555600225,289699397,230365335,-1851392634,925627649,-1392264961,1413550730,-307041382]},{"sector":3,"data":[1800156854,1448649176,-83722559,-637946292,1496074425,1496605066,-1856374291,1639651954,1597118665,-2007575089,363138735,-426327080,147964616,1813889129,17470032,-1786481637,1303699673,1863952481,-670345631,1649569347,347331218,-78217280,-347363753,-2095627231,742028854,-1235618791,651497474,1827564193,-2010370676,1378774104,-64056478,-500044978,81843535,1013370279,903814465,2131030424,-112188672,-697523473,1129877779,1492060203,1795697475,-560321876,-697378108,-1050987004,469602510,2097534336,1344185234,1619874951,-146896633,1340211660,1015085402,2076108617,1196987880,1633010266,1426680591,-1431293308,2001990246,-1180310579,1159462587,-260495195,-1370920468,-247254727,108966267,1566897682,815840167,-1192456051,1612743198,1296065721,654058349,2049230293,1470039327,-1471598295,1201689118,1656980115,-499738600,347330195,-1867561024,-2033394119,748419858,-100219614,-1571472447,381141547,2101371953,-1811691446,-1738369390,-1740280744,274313276,-1758408167,-395421452,-1382805226,1899388433,-648523448,382306344,504753647,356055491,-1324301296,-1560139855,1178913152,1753200456,-920652120,545695936,948538757,730784668,-875005884,-960878907,-1873192526,627785664,42411423,2022277610,-1888995955,1975455259,187097000,1094258892,1853120721,-623434473,1808941297,-303610195,-465498998,-164663105,1812502492,-1546228270,-252891636,-18554362,525138690,-1529045029,460041467,-1495483883,303795190]},{"sector":4,"data":[-1307966477,-1204553895,-970761503,-1474982463,33068492,-620446707,-417300469,1028500851,1113850236,-731756758,-475863188,-1920076190,824833935,-1973818551,-79206303,1317159489,-655464320,175233070,-1014595320,-1035430285,2125881376,1782915501,300979948,1496913734,1142475052,-1234908669,202391873,1927614509,1991596176,-2080306499,-387039207,-1035457012,1511521568,1392312593,-907377208,-1533504405,-1173110958,-90998580,-500077634,81843535,1013370279,-1638929847,1640834810,1695050511,-2078983839,-1248939982,-61123707,-9543357,-541841014,1853799161,-2003321554,436336675,-813970041,-807973360,1488161104,929127747,1492060331,1755854165,-1056993922,-320850414,-1899358715,1275121277,322770800,11309426,-102881295,-347521920,-1996017569,2110781244,-351753454,564939352,-1339399699,1276466822,-110212386,934769852,-1268202625,490606501,286140813,-949056261,2009309763,-382310592,-282125912,693571211,633550601,1445768053,-79509632,555027025,-851431102,1633800629,-1416531409,-2060070541,-251329045,1179082961,-1831849613,-36674000,693571275,527255601,717300152,-1981804488,-1981728562,1610485125,-1005577450,-600193853,-555658763,1798320462,-861264443,151912787,97231726,547160465,1097112026,-437973628,-901232993,-518663926,-1733175593,1167062614,1736568454,1803452723,-316292661,157487396,822164662,1468828543,437278976,203557727,278016827,-1406688039,1175625825,1143224844,1026053191,-141589848]},{"sector":5,"data":[833301801,573975628,743972556,753470600,151256101,329295387,1678145644,1152085000,-1970107049,-1118912826,-526359645,791760989,821644987,-897490850,1856812708,1889731467,-792842567,-303626550,-465498998,-83595073,-1914368151,1718836594,-522494696,-53885683,1066989061,1236877239,-1022053458,930856387,383916073,-969210300,580392940,1268185857,-1050932388,296607457,-1392833442,-2029582999,-1473200011,1694039772,-392654155,-64938679,1800706225,635665984,722224818,-1735083168,-978536796,-1011343568,-583144042,-894931200,167992588,1105121420,-1415741029,1124259024,-717075014,940370158,1075201554,600155164,-1437831830,129207879,114828423,-485735792,2024072640,582907371,1933041880,-1166729239,1670082447,-1529881216,569038460,-859166995,1653821981,-2091255919,175120887,1218672674,-444791177,1302346310,61884106,-428105788,-1389891328,605995132,-197271565,-1390171062,-2018497951,-1029012299,861231129,-423941767,-572730639,-761131521,1995979924,-1179278284,1457326779,287017974,2131299208,1119238912,-533459148,1245558063,63465107,-660301676,1768601499,-1038285924,-535916637,412017564,-1680289896,-345395529,1373736449,1315997639,1275905905,-615650201,-1065706976,1901377635,-1676419871,420725617,-982117381,836778629,-264754468,953027054,-41121311,476363657,1997304046,993824266,948859778,339698530,-1499970160,-859693794,-106626682,-1836826268,-57538573,426015568,-2061424572,165429194]},{"sector":6,"data":[732059098,1997140422,-586525850,462157398,151750673,-1237647233,-73124798,-1066795346,1232955487,1898579600,-293111671,-1313110896,1834377537,583741197,1106332446,-302800880,1133136277,-1522279259,886254744,28983120,-1265198867,-1870686318,-104017162,-98147057,-730974225,1500527059,-718838342,-1363698825,391965545,30062684,-442180634,-1863457187,-2106901171,449137373,1860064590,1571270872,1493127536,2013088163,-834554213,654978791,757671477,558641579,1564756864,-819950707,-620640290,259525568,565313614,-382796641,-1605006342,-1935101536,623853723,-1853222751,1974212351,701993541,1278315296,1645695492,-2055110004,1165732718,-2120643443,1626438029,-1546673613,771629845,629926488,369840814,1715705954,-970964245,541499325,1825132573,908952465,-1273761781,-1365897006,-1503225604,249411872,1219912872,1125828035,2108937578,964982925,911363274,-1530211162,-1144411079,1889387106,-378136698,540175118,-469499543,-1737753,129230921,2123409591,614144968,799027019,1216574000,360799508,1866148134,515108548,-1984824800,-426045530,1196995465,1806348466,-1195554865,-444987438,-2141765817,1220086205,-1820852010,515931375,-1733298908,2074002435,1435090663,632059268,-1326051242,725833877,628073994,987659319,-507536549,-2024645964,-1798959457,1543324048,1545127337,831007973,1165705660,79988877,-596567743,1178913253,1753200456,-183360283,-2117586315,344009757,-775815151,1107516942,848431665]},{"sector":7,"data":[872176768,-901658782,1060655692,-468604758,1178913248,1753200456,-77465688,1141198590,1814823985,86427209,1412339662,-1937206671,-771854703,-138154415,-2012570372,-665319326,953059731,1984541922,717052987,842561796,764547409,-1334060321,1141243901,1814823985,86427209,1416861390,-1937206671,-738300271,-118519843,562569514,659448419,-779427016,-976259058,694554916,-1386508416,-1030727175,-2073726113,1507827800,-1412902274,1686460228,-1539404139,-2087648056,-825165814,-978557614,1515827760,747476155,-1943889897,1150710318,-1844358862,953868077,492704173,1278323546,812334892,1210261849,1650215109,-1027556224,12328098,-2092763961,-1269647665,1659140165,-709792109,1902520835,-384288543,51744426,-512661974,-764138440,-1388802445,266527505,-1888137846,-886266142,-1750496108,115737987,-2082140139,-619770998,-1270210176,-645689529,1415435339,414993509,-665300848,-1321708946,-1714064148,1748670066,1757766032,-1207492721,-986966364,-2061466064,-1545565555,-307384082,-433768938,-893840122,1504841817,279939158,-292592296,1287680359,218232981,198902972,1944526976,2084392365,708994049,1737454913,387651389,2137812148,1116359097,22269066,-1918280707,744604592,271387784,1108057222,336255551,-1588053737,-292319684,57440181,1095579506,1309896764,958509568,1808270684,373412553,-855078227,462867861,1135539725,193613123,-846825463,-120200666,1462726701,408156020,957161818,-1973825208,787104096]},{"sector":8,"data":[-1676990812,177361068,-640109045,-2057130191,640555144,-710794795,1726471090,1359809504,-1735374652,1118925358,-617732024,1612758629,-449411907,1394288934,475161962,639395030,1727106964,2076437007,133179194,-1879769276,-1587648995,-265829699,-759198192,2124648802,-241666777,1509108007,-948301169,1094477517,-1615488539,82942005,1344471167,911315705,-1330771861,-166701434,324437680,1451667578,1431885584,-456868299,1693302171,-362553490,1539184010,-1143926955,305101641,-1893277576,-2089235302,-1742289174,1300527678,1245495962,1196956098,1806348466,-547609749,2073024609,2130913136,1478468498,1478743329,-1118838271,-1820851981,257998550,-1628473070,290858490,1486205142,1438833219,715918433,-577454951,1860794611,-779681938,2082359913,894573115,474602105,-384349795,1094840078,1701811315,1959005329,755781840,163957433,652565603,1702690857,-1068399155,1900987014,894176455,-1275157480,1631830036,438933337,1160785752,-1200486376,459149741,1507304536,37314698,-2045746749,-1930100296,1849956810,1074066386,-1754028234,-1010384222,-1151708508,933367021,545421673,-1754070175,523813538,681876703,472958380,559552641,-352096243,1104351539,1537458752,-1508165620,240214432,-1124138409,1973367888,-307944533,-887018964,134419463,1509164741,-1177215216,-1821940793,1211181479,710122458,129226384,-153591051,-695140753,-153607501,1092287599,1500334231,1255463811,-763301772,45819984,-10055891,818619881]},{"sector":9,"data":[341533821,516692618,-1693604898,97126573,-1320853481,654172140,-990956759,605991918,-1741316146,-253089807,-1461234942,564975940,-1408474643,-1431297497,797540203,-1964851237,50018157,-1371019952,443054418,-49596405,451494886,2098335680,-1006397201,15971742,2093978488,-1339371017,-1434143346,316022466,1634011307,-1494954668,1271372783,922515315,-212841845,-1831675679,-1462513957,176369938,-627594868,215918179,323490939,-2136039335,-600760142,950834652,104720895,-1688922080,-1538311849,-1458018012,1288342795,-444979118,-1602120153,713545907,1678675875,505865967,-1085338379,1196756657,-540468194,-130200372,-986939228,1541738544,1260643690,352773637,1517413648,-98649054,2023252694,-1652336269,-1804391444,940923747,274307274,-1571433551,136496939,604434353,-1367534060,1078513157,-1547567055,315754330,-2058056652,1378468039,-1002940876,-1599075837,1210261885,2086422725,940809478,-1397085929,-1810660734,1299031192,-1589078615,1493025196,214056374,-521813789,-264731884,552156937,2122002667,-1595586119,385297512,-16055865,-589355264,-1761469349,1062358266,-694290203,-1415592861,-1689318976,1488161254,1415660878,-752421162,2080568944,-777107483,-1458699826,303022106,60354429,-206201148,-812419072,718403452,-2068476240,-702627158,1695066898,-456305567,-946081882,-59280565,1347062582,-757538317,1343769233,-1978594647,1684477190,814375006,-1326915304,290534024,-622908014,1200245049,-777104963]},{"sector":10,"data":[1241917390,-1153093086,-2020129029,-58226423,-861264443,-1792734381,681123243,-283719288,-1442112275,1777804550,-871684385,-784254704,-1385270176,1293770257,1976122646,928024310,1649437759,-2114247409,1564652671,-290347960,-1156856980,-1179123332,-742490049,-135793145,831194409,1446526028,-518460320,-1575730330,375223814,730743554,1183733572,-1728770263,188290982,858393804,1941236577,538927744,600906144,-2107362911,2087226951,1230178528,-1799595516,2005623876,-1910403594,1187127569,-1777535855,826763493,-2130556572,-496215675,-482153946,-1378463580,1097075082,-1554179193,690415004,1325199903,1289892331,922876128,332216223,-1969442714,-324163134,-1010766513,1189444097,1480307260,-1337546173,2074067971,670105830,515931309,1038086948,598493940,-1339399763,-1434143353,1431837122,-1154909901,-590155290,-1576140835,-130247470,-442223498,-586499143,-1135844012,-1182787560,1929077195,479138963,-1284086663,-1877184932,652637250,757687839,1553490518,-1839890524,-1178541092,541733132,-1313662532,-658349871,-1538472617,-1044686092,1359278978,240897669,-1533504453,-1173111017,-174884660,-215416456,1544785753,886108836,2097311766,641875423,356082125,-2035273084,-1381383494,-307868180,377291368,2080592608,1903642597,-1071994610,-277016049,-1631321192,2013328309,-142815341,-1901057327,-1029012299,-1424828898,1415669000,-274275123,1934346139,-1959330697,-504147894,-1701588264,-169674981,-565804158,-1952192425,-2103785310]},{"sector":11,"data":[-784240179,228637537,289805044,1391362565,-293956766,-1734841354,-509593884,-2021017242,-348302756,-684962767,-1028488359,-1972845223,-2112573456,480680133,286329325,-1693775147,740496434,-960460914,777553353,-2124276798,-1557942171,-1344868024,-1871543357,-1038830686,1991186712,931196574,1142429648,-352903933,1281998888,613992854,1784517610,218895588,-1389342509,-1862464611,2074146085,-1123942525,-586812590,1712464587,684243723,-1941501396,-1599702091,-57996920,1475240284,1211181559,710122458,78883985,379017591,19015752,1026107195,1780311062,1351625966,76059231,379886828,-353517268,-368387527,-1327461870,337939323,737871121,1863258357,635787954,-568406870,-1365205597,1346540692,753851653,-1839247216,1608069000,2105245864,824825746,2011305800,2014482265,-1685117216,1488161254,1431865671,-1366182603,906270574,-263746358,-603690473,1006660516,1623127881,-679865841,1340211660,1155527485,-700792150,2064165650,564939352,928220565,1874762642,-540201699,690871024,1669844803,2035763530,-2104079294,-1760849791,1138975185,1980140811,757724946,624716471,-918551419,-779394204,2081165409,-43642791,-393694474,758727211,178062341,-640057948,-1339729313,489236197,575307415,-71613134,-457226427,272848096,-1664825790,1362267658,-550661615,-12768550,413270567,607524482,948859874,-1303158174,575293165,-71613134,-457226427,272848096,-1664825790,1362267658,-550661615,-12768550,413270567]},{"sector":12,"data":[607524482,948859874,693527138,1278290698,1700173356,194397898,-483717940,109906755,746231404,1827564037,-1775483754,-1020550571,-386094419,-1332340560,-1442095912,1777804550,-871684385,-784254704,1232041056,1261354926,-2127383377,-2090665031,-600868592,312671499,-109755414,1561880179,-988946213,-167379767,1068973976,-1284879943,-2112306668,1026242070,1871017247,800174440,631975984,-1908706401,-1028692990,-2106047052,-2032117835,-2056453410,-1183641408,-1096898858,270643712,-968503463,-141587003,-632803031,-1876274277,1378792280,1879863745,-1228062595,-1156221386,1361294575,-1772531384,1896263196,1501088096,-1925619440,33031483,948357302,-1651662530,-380934523,1215658774,487941730,1926461506,396039315,-1889962014,899641874,-366481000,-413990160,-1395047256,432192034,1631931992,335271508,-84447598,-1150233818,-1550682111,-1155401952,1185563584,-1614543952,-251599237,-1065571033,-537713634,-1404373955,711044387,-2068478032,1478083242,695808853,-755898693,234872284,1016386210,-1540065544,2002498691,-953504652,-1027556288,-1181241320,-1136162231,-276374397,1682215948,-1862895733,1150553272,-159937692,522602122,629413107,672769688,-283719288,-167435795,-1844358734,702209837,1642974252,1583268448,1532387680,909564475,353464878,-1199065887,-1248763283,592815670,1821465068,1243695107,1770052877,-1591307006,1366232934,63099689,-324911031,221820424,-850949411,-1870983066,-954801699,1219607297,-612148883]},{"sector":13,"data":[1974690260,-1572857439,951453932,1082842381,-1837628211,566409635,22553557,-205697054,-694978560,302997694,-90247303,-703506907,1129878960,1633010394,-1725256692,-203582276,1852762488,1775339263,997989962,242111002,-782364595,2054775651,-2010378703,-163780340,220800741,-412338057,640038582,7917349,140671184,754571352,1034699819,1074122886,140671184,754571352,1453495571,832369183,-999257551,331557318,1141796120,-1010531261,-1423103570,-416527311,-2111097162,1617536220,-1211973444,-556246860,-2117878772,-2119855758,366045722,-1141975071,-871684385,-784254704,393114720,433772325,-1308763072,1569950273,-1201671561,1265564439,197356718,-1207862085,-1098891335,-403306541,-451991049,1092527768,1614046422,-2122749641,-1561891707,-1913232669,-779449459,142271253,-960359245,1885456839,-604400549,1812730887,955174013,12554761,-1686063327,296579169,-1956831906,-1657075783,-521442966,85008907,1818031260,-1313746594,690415102,1278339902,-716213714,44958944,436320370,565313678,1549333623,-1777580921,1376898123,-827419083,792079994,-1176971160,-733574583,-2041275942,-2056021579,-367849045,-1536291515,138025240,1063192674,-1879832196,-1873037320,-1726954480,-1773448484,944039008,818616937,-1587981185,551332662,-988988210,1091363119,1329900550,-1728766295,1436274732,150411246,225718832,-26586848,-1538138751,1496370040,-592759135,-2141393361,664076905,-568406934,1436274732,150411246,-1066061264]},{"sector":14,"data":[-718916597,-1040349829,1380715016,-289083629,-450617677,-500077762,81843535,1013370279,146808641,-394576172,1468282267,153830232,-1792955192,366359940,967929677,-1568674010,618608493,87554721,1189444868,-1396853955,-1399770411,-567807744,1228701945,120610795,-805880695,145429117,-1404413717,711060769,357992112,1850400332,-1217086215,1757642551,1041212852,438930717,162340004,107662500,-962413291,537027268,1629795172,1689214224,-1892371788,1140331931,1227991346,-1038830664,1890938983,1579944897,-2058052356,20902920,575332022,-71613134,732042567,1718687684,1573487657,-446650259,666834770,1027744021,-1217560561,-1853060974,-976093586,1643154024,-2144770551,1640093062,-662319486,799328931,-241479810,1696888177,624915969,-584967919,-779443203,156885269,-612095642,1616408585,-986785040,2074194716,-1948287758,673425803,687452427,-283719288,-2007622419,-1763636561,1063229538,14164860,825954182,138120817,-332313834,-1864894971,-1972845215,-1281966607,-179519468,629367233,-584967919,-944201475,1242465309,-1153093086,-1575663621,1388102187,-578199741,1648901222,1136584203,1991516100,-849895512,965322605,653958735,-1339399731,1052936860,-1422474550,-1431261688,-1818085013,-360158349,-1661185570,-166563181,130557022,279930829,1753508983,311406073,620801918,-1679262914,-696089547,-1968114160,1458964715,1431867667,-1854620619,-1873103687,1487977233,-439399013,-364266260,2026674767,293617538]},{"sector":15,"data":[1943436456,-1099529608,899410043,564950404,-701135723,1197008656,-1381383558,-842182665,469618879,457775803,-1749165961,-104717944,899377342,-1431293308,-729253781,2013587127,1545380754,-1337546173,2074067971,670105830,515931309,1038086948,598493940,-1339399763,-1434143353,1431837122,-1154909901,-590155290,-1576140835,-130247470,-308005770,1645487054,1346660531,-1326951585,1725640584,-1533504261,387126634,-1026424793,1184946851,-1661166172,-1968348830,1405915718,-326818545,1617536220,-1211973444,1174365933,367498880,-2101269598,44472517,-449696971,-1847253716,-1949381877,176531468,352750350,576369939,-688034628,32414517,-2002236409,931190469,342587817,-893045231,549874251,642607333,-446934941,193639868,451271690,-278934440,1043655621,1852039588,1178764186,-1314896297,690415028,1278290714,436433709,1947388402,-1086838260,-1082114172,1310873892,-631732863,829458824,373379743,-1062910292,-1762235873,-1845729771,20529284,-2070890908,-147294283,-1066028343,320422934,-77680630,-465249725,1443601364,471903798,-447040896,694595872,-815763066,2137068707,1739023008,431670116,802217425,1095612174,-1253287327,-2139114581,1405107154,619241226,963456140,-733574583,-1772840486,-1770874411,-2090629109,-546502934,-927539418,1486651651,1175871026,812014995,-2103589220,1692074236,1344216131,-1547514170,1135278994,-726913005,1713448741,-1821191304,-497579500,277830007,-204637839,1678937945,515106307]},{"sector":16,"data":[-1632658144,1640834810,847566117,-1034252112,2051495961,-273831486,-1229417149,1882690062,1013851101,1189444356,284407864,11309546,-102881295,-347521920,-1996017569,2110781244,-351753454,564939352,-1339399699,1276466822,-110212386,934769852,-1268202625,490606501,1933126029,-1407662712,387191258,573373140,-633060350,1557144505,-77181586,-156985196,-151799752,-525790808,-815522148,2081428467,1658223186,-1395390312,136667848,-191805934,-776791768,571609185,516543782,1802691458,732091703,-1312634426,706614434,858865777,-1113531126,1385063587,-1738353030,1831572345,1315284060,-586534095,1688846240,-586480740,1464085301,1675440008,-1098322674,-2050907645,1186091116,882180432,-1228750660,-1974879889,-1713712058,-856520876,-700140157,103417354,-914150368,1427652633,286711172,-820590848,-702918034,1538063968,-759180258,-295676389,30594781,1819348781,-16828549,-1045634159,20367841,-1662974300,-2024535432,-2089828043,1162840813,31147969,-656261624,-117477386,-1907555776,-1822229760,-1458674075,2135470409,-1963212372,110951238,1873019111,539492810,108864737,974979552,671547852,-1834267196,-456784579,-1919649086,-471809755,-465496560,320249996,1496139833,2127465347,-1946476348,-4204189,1446439423,-1948717472,-1306475100,837504764,-211989278,1108381529,-1608187889,-2000179975,1768074302,-1983977597,725833907,224486664,-1338866571,1415669135,1830023638,334920375,1391467423,1198553999,-1550680318]},{"sector":17,"data":[-719197665,-503228381,15973711,-1093233800,2031226720,637181679,-1328148138,-633120619,207705538,-1130812756,2029247892,-9539863,1248448902,440106014,-2005715886,-626255675,-736685039,1533093574,-401142604,533839792,695714230,-1879488463,1654453237,1334503264,257150042,-449656007,-435860701,-1084222202,891323205,84228597,1143680667,701924951,1701466907,-1873196462,-1606262408,101325385,-1682415595,1221855095,579609640,2003981327,1833482627,1425900377,1505604186,911326611,-1555017746,-1924756919,1675009528,-423913276,-450617677,-500077762,-696504823,1444922467,-205441999,-697523493,432196112,-2072689320,-175198158,-1884278140,-699113115,-1217588239,-1810631302,1268972953,-1884660336,54620283,379835000,-2082260962,-1458646556,303022106,60354429,-206201148,-812419072,718403452,-2068476240,-702627158,1695066898,-456305567,-946081882,-59280565,1347062582,-757538317,-2111331696,-641851262,-449826769,-1189036443,860917807,423892667,151118557,2007966077,449405506,-1287976182,1789171860,-1467971835,605532011,945624066,-959886584,-1160832474,-1235659572,215075529,1014752963,-866098534,260782930,-296530932,1830163891,1135899314,1200355632,-1165579575,557871857,-2071932091,1617075388,1506887729,790716554,918589529,-859688538,-915080319,772209221,168891572,-1263387893,946698309,804863419,1080328511,913727339,824833823,1402722888,1719243562,537768009,1506518071,1859443587,613947200]}],[{"sector":1,"data":[196741336,15987403,-2138936112,646012180,-1276238907,2021754629,-1207052124,2024027970,1620276715,-1071234790,588579392,642737769,-1045685294,540535533,1813171211,-838836988,-2096719849,-1577053084,691407340,2126072113,-241666777,903866662,237498776,1418978104,-241683041,482838788,2076104978,-2076861464,1451667506,1129877779,1488128299,1153185109,-1310798391,-45258134,-596334606,-444857331,1963501836,2013320776,-1065554029,-1342888930,-1631321192,-1983977605,-1401584555,-166701531,1129878960,1873152555,-562284763,-1080337606,1381676257,-972120185,-31355500,-1084210804,16737793,199285030,-780986846,1182511473,1288357318,1158555986,-317794480,-1522646798,145294793,-826335175,-908382392,-1492416768,-2053629913,1727611786,-1243773911,838502326,-150527487,-1904800686,9277677,-987107485,-269448600,-1038830644,533500538,-368851736,-1661804724,246384726,-1499937362,-232414186,87161351,162123254,-1542382393,-166752541,1517366617,190299170,-133936079,419259317,1879572354,-1260211635,-313034683,-1652545178,-200315477,-638186654,1169482430,-1394903176,-519032635,1191159899,-1952533728,752520077,363297900,-1732170846,-978573148,298628400,167384982,480772101,1758637996,1192149117,167970247,1123770032,-1096789952,-896416845,-1506389428,2074397396,-168402922,-1924899809,-2070496256,1973703004,1227068249,-121811062,-1000089955,438426397,-500077762,-696495537,565560419,880993080,-37129828,2026674831]},{"sector":2,"data":[523762071,-853128654,282465633,-700792118,1052953104,-1338866571,1401279899,138996827,-1491669027,684326630,-532695232,-1243938423,82948695,-1378452399,-103151134,82949293,-693306890,1597506801,-853128654,581700705,-700726598,1163441425,-701135755,-1446852080,640148141,1385953134,-792330698,-257975403,632804552,-1550682109,1971901213,2013320776,-1065554029,-1342888930,-1631321192,-1983977605,-1401584555,-166701531,1129878960,1873152555,-562284763,-1080337606,1381676257,-972120185,-154036588,1009533148,-259995646,24088807,380178192,1725640516,274268415,-931788920,-203325114,-2086365036,-505747058,88653533,13205895,52750320,277896426,1318519405,347562850,-1499986544,-623479277,63204639,1076061371,1757805040,-386928502,1488983219,-79643016,504766574,-1972662265,-1277028911,1318609622,2103991068,235868343,-1380448647,-602055151,1029802585,-1240504759,737477090,-2007573449,-692121937,-636905374,1861996726,-1687306464,1464085486,911375495,-1530211162,1821530590,-385005565,1479584544,-688830343,885008107,-2139075198,1782655492,1095265757,-2093694938,786226288,-1949098542,1260071183,-1858701006,-612148757,-244037676,166503028,1227958582,-1173110931,-1149011764,-850975900,1631665254,1010405091,-944965222,-948881271,-106653156,1032439724,-1889930423,-858305008,1488161112,847541573,-1029010000,1162762265,598477921,-1408474707,1415691555,34798550,1356102455,1392483206,1018775885,-36876319]},{"sector":3,"data":[1880861046,628818772,-948881337,273816860,11309546,-102881295,-347521920,-1996017569,2110781244,-351753454,564939352,-1339399699,1276466822,-110212386,934769852,-1268202625,490606501,-2112018035,186787960,66294509,-1686022130,-871664061,-800569315,-1533504429,-311265056,1343005849,864077753,-1853584502,-1848634989,-1944879708,1964982348,1840490648,430085523,978374535,1723574436,1713598548,-2065483737,-603581469,1645611858,-1747384168,-1258191160,942426934,352717329,-1290728166,1578216760,-1731878368,-1219490650,-1715080742,-1826383502,402399913,1898237402,87688830,286590694,1153972659,1037337431,1723186627,-1819179991,-1533947887,-438948483,366405431,1351640763,-1576264354,498238403,-2041101141,1634514384,701964383,-1680193487,-141481389,-1832680615,558367596,1122005254,-1955027748,652156533,-859167035,1653821981,129192083,114828423,-1572662640,774660032,-1883964414,-610046447,-643507996,1386906457,-1872604564,-347144982,252437041,-456560356,1013370327,-847791543,574700646,-1241200783,653958767,1427857869,-2035273084,-1026944938,1293276780,1762138479,655597758,665420599,72604788,860349776,1586422664,601170186,1340211544,2013328317,1623119507,-277278193,1445329566,-1783572975,-1025883304,-1408474795,-1799579350,-377949219,-2030080402,508193233,1377450876,-388036800,-1646936400,875643073,1918919489,597365907,-133279844,-1456003514,-1491594301,-1671279604,-1652346575,244296416,-1989074187]},{"sector":4,"data":[170483331,1011626283,-886251205,191990932,-484637918,214698870,832582954,1633705694,-1979507877,-186640943,-1022053500,1716108739,-2006735780,-283635623,-1630752741,376220866,-1388837513,1896832529,347302473,825284546,942554799,120209471,-1460589781,562954530,-1134346140,12894318,-2063507824,379852652,-1869785043,396695968,-1767062976,1365367949,146745294,-1420473590,-669884317,110167550,27523172,266061490,1694699619,-1795425287,2119691162,518149400,828390938,427825167,-426648510,-1394624424,-780379079,-1434159859,-236540990,1490867216,-37612365,1562172087,1143024519,-1086815465,-501702283,-2120856342,-1993121327,-1374225592,-903233338,-1506389428,2107951828,-454008618,147980443,175676481,-1164970938,-2076686371,1124381215,1717932902,-1320572658,649325128,-1693150394,-159174613,-898856896,818641060,479951995,-1107191036,1867672594,-1272921812,-539253608,1013374345,1807649609,438231601,-841490428,-1019003802,1735531591,-1889930479,-858305008,1488161170,1695034179,-2078983839,-1969442766,1196956098,-1381383558,1859856098,-732918795,623172831,1212871451,49053915,530813560,1215629459,-1820852010,515931375,-1733298908,2074002435,1435090663,632059268,-1326051242,725833877,628073994,987659319,-507536549,-2024645964,-1798959457,-84450931,1829118508,1236891512,-62894454,-994262117,-2028704829,257150194,1922692366,1679920785,2042719808,994477441,1980116218,1457311609,1644605320,347336339]},{"sector":5,"data":[-478652224,-265924722,943192343,-1911336437,-951508168,-1059479780,1606474505,-934642328,-1416264620,-656860740,387325204,928504020,1585509858,-1046059680,353249655,-234641768,-117111447,-2063066074,254885892,1398878354,-1843445565,652565170,302987561,1810254701,1799471690,-1679117302,438943337,1501028951,2019037327,642748131,-500077634,-696495537,1210970490,-1914685362,2138184743,-1983977629,-716810061,598477921,1796170157,366409992,135884621,1034141289,-656328897,1702366084,-1018970900,-115040448,518190508,-1813825510,-862269468,939104120,-241683169,-914559740,-2076861656,-316560267,-2074797215,-711217102,-1901055356,1532200437,-183658002,927598619,991964643,-1845718666,-737920073,-2066444726,-771191069,-83376271,1805924868,-146195456,302997694,30201722,-214085662,-1029028641,-1424828870,1247312648,-2053824084,-1684916397,756903870,-621748275,-817682131,1263166343,-2103253652,-1296800736,-160577248,-1932801336,-1323191271,600155228,2209260,135315076,-13618734,-1466383074,-1031049805,860105511,1424748815,565570639,1220379648,-1743230716,-1741351813,-1955744856,-829877335,1135927864,-1433013968,-1743194585,1658223165,800509346,-1382270951,-935408624,1215161384,-501930426,1114303379,-1258581493,128610968,1228483835,-988010810,1405897249,628885761,-950007822,-751947253,-919285539,772209221,-2063057228,-1906883541,279684420,-1875924585,-907022898,571210873,-1308927485,-1380384848,507076113]},{"sector":6,"data":[380016821,1266200941,-1302300368,1638150944,828398794,210250766,-287032087,-2024324053,-1151669043,-1833248714,2088256948,-1280588322,-1379497107,1059020305,190041178,133321998,52562838,1577995066,-745700351,-132705456,-1388788296,406412817,-1454543452,-1946204011,-1544129744,170003208,-265752505,1783786514,145319190,-1878599644,1892549442,537768009,1410990418,-1553026673,760206555,-1517472598,-1817034855,-313411760,1032857578,-1031636735,-232354486,-1450369844,-2079026422,-1405357573,1752729799,-498299165,-500077762,-482862562,-1697651565,-107513652,-197320905,1925356109,1634011179,847533339,-2049598544,-2066195629,1790408355,-909800174,-2133130967,-1779170314,-1901862631,-1064750279,-482862562,929165955,264247849,-1729135342,-1247886333,-1820851981,-772309809,-1248939990,516074116,145429206,-850108059,-1678792988,2004044743,1250637564,-656280752,1386385618,-1245108154,828428641,858795790,1163129324,774570864,1985372464,-1559697851,2054560525,1382964296,1017680226,-2019491532,-501375432,-1983311618,-262622330,528877264,-1955104621,640041976,1067718709,2040029846,-1558072564,588877313,610342150,-435283492,366053987,-1276216349,-1128021228,1511637599,1700880568,537792486,210250912,953809015,-2055096042,-1743267495,296561196,356850526,1099326428,1635781441,-1612772522,1410870330,-1094499477,-910450032,-2068893672,856288306,1888225795,-1206638392,-217368055,-2054863385,1993803113,-130335724,738913547]},{"sector":7,"data":[1288342795,1658223186,-287285352,-1138734543,-776883431,2055432033,-1533314397,1469811810,688350500,-1680193487,-477025709,-907951700,279183670,351287427,1963668905,906572860,965309184,-691109789,-1280161513,-660319225,-1822853724,1200245027,1481533149,-723844204,-769119129,549530735,-860188748,672650958,-408373497,-1538192533,1099061726,-1085722263,-1737152642,34410481,-1276744848,1308501278,-1991192633,1162762419,648809569,-699112971,-1146543626,1983961691,2080605664,1886996453,1619874951,-146896633,1340211660,1015085402,2076108617,1196987880,1633010266,1426680591,-1431293308,2001990246,-1180310579,1159462587,-260495195,189360620,-1609038947,213146465,1149774871,1571871244,676482250,438998903,-1141829905,1366855708,333702260,757693967,1011626411,753728571,2005701835,814930061,213146465,-246454761,1578216868,485169721,532196438,-81674041,74657136,2026340453,84249053,-1928897381,-948288982,-800727879,-2133415888,-600064814,-986966364,-1230835664,-1773745451,1166347,-2121555203,1721781538,9369235,176527606,694690945,515646042,-2122797834,907736513,1378996986,-1735124201,-986963548,1220066352,-703130614,1784640012,-972715027,-59691338,1346777819,-1960793848,-2118426537,1199935859,-782519558,1081393760,1646032577,-1836399249,-64781006,261796186,824788750,1402722888,-867003862,353026947,1355827202,-1006261456,-1572947749,1629765953,-1818002928,1204428220,1549690557,-359279198]},{"sector":8,"data":[-1981112884,-2055572809,1012026394,-1405357701,-1421899321,1822620134,-1326051114,-2004915286,-1346359956,1206221319,565740415,22553557,-205697054,-694978560,302997694,-90247303,-703506907,1129878960,1633010394,-1725256692,-203582276,1852762488,1775339263,997989962,-1492102630,268637229,1040446434,-616281146,1701150754,-836105018,348241096,909810548,-1198459668,583378140,-1182564473,-1734804895,-596516997,1633854193,182501091,-1126680949,1253339682,-898040637,-2064589695,2146918754,-1689975360,-1672979092,365392206,907957922,662151410,-459794186,1157980220,845048987,626669937,242218593,646336324,-610002887,-1338980948,1991005949,1150724365,-605536232,-482159949,-1138599311,833350938,-1402454964,-1302300172,463745824,912314839,-487946427,964183476,-2074137186,-1495491035,268665556,436966641,1518772107,1152112632,195003223,1367642492,1035701638,691482148,1278307133,-261956820,-1041080170,1214726244,-1061645117,274275426,-914763239,-1350019364,-1244095729,1974562166,-259364827,1468775929,-1927816346,1052516954,739681400,1220096197,1858849730,-1615128365,839119746,-1832361362,1113850117,-1418378454,808402367,112768601,1078802194,-1530210266,1790255301,-371626508,950694177,-1536706607,1900988037,732042695,768925379,1896793944,-1418692384,-1350084796,-1864706598,1901185858,-1025408115,90050989,-1356290888,-1178410607,1394338928,-2127525844,34791704,829596373,-1252471864,-360247926,-105240859]},{"sector":9,"data":[-125085162,1016599916,1633705648,-1249068207,-1382764559,-662204141,-542744596,-1196106880,1065418499,-603562790,571203839,824780557,1402722888,-867003862,-1901527780,640033406,-1735775789,-1734928076,1412155400,-301211362,1007326335,1165848838,753111546,-870449973,-175375646,1964976422,-1444573510,-1862922492,1460818542,1153252786,-2104733569,-1401077323,1054014114,1508936612,-1857654308,-618431671,169953236,1349366504,1095441993,-1892412835,352176800,1657940078,-726801519,948114551,245960432,1871703061,2106992721,-793110367,1916087354,1180710164,-1096787391,1769820630,-129674721,-1556550100,-933303224,-938347018,-1608611772,-1608909726,-939377053,1919168897,1511465867,-1619924730,-1824100086,-1170897132,1328211086,-568403477,291006626,-2136254832,749756156,1218656494,-168398663,-1135163375,1762945000,1500727345,-451702397,-1961219802,-945013775,1900178057,946406599,536581091,1712573751,1637715888,1118361428,36222981,-1096576385,1185563552,-1614543952,-251599237,-1065571033,-537713634,-1404373955,711044387,-2068478032,1478083242,695808853,-755898693,234872284,1016386210,-1540065544,-1046553546,1380850303,1608683874,1471391824,808537818,1855185657,-842918733,533490271,214715244,173602005,-2023746175,196526784,1578216888,1833529629,1801554521,-153801576,-595557756,168960523,-2132079089,-938781087,1505106216,252699357,1460348877,2036768800,-400539036,1515805068,2128150559,-979051429,1282239011]},{"sector":10,"data":[-1730851158,977780029,-1802415059,1854152706,1904525870,-1964820379,-1713008076,2049131645,258399559,1173246319,1914753194,-1741378939,-493388380,277830007,-545514686,-1030075084,894785561,-1208269636,-1837628747,-2021082461,123768148,-856211831,1515184641,1228701945,-394543385,1514625173,258037186,-2074801813,1722462258,-847817742,-1145461277,-1522197506,-319784664,552683625,1357414033,-1190455740,-784102839,424430612,-863354230,-577500333,2115985988,-1927968951,-423511032,814915672,-441430682,1183467925,1237112210,-1023149933,-214066880,864663386,438222987,-433336828,-1614490698,876380259,1025504777,-2072689164,-1172132642,290877378,-364029771,-55858238,2074663746,333353993,-2034825039,914995034,876380363,-1706052087,2055370956,-2138699920,-1276730585,-48133929,1711808,-1092095097,-1833914744,1478083306,258055491,-1401747349,1958525482,-41436439,534859058,-1972380728,-1713712058,-860188844,1620253726,856178970,-1122958705,-1470381021,691468790,-1250563274,10159137,-1145041454,-1642773176,1688465089,-2063582267,87626680,-1280161479,-660319225,1361298852,-1636489346,2089896380,331637718,1151920091,-569289065,290883248,-430677667,1847333617,-1794053387,20807835,-1079799171,447286961,2098335680,-1006397201,15971742,2093978488,-1339371017,-1434143346,316022466,1634011307,-1494954668,1271372783,922515315,-212841845,-1848452895,1492964778,-184220243,469972099,-1196172649,-190238936,-542625704]},{"sector":11,"data":[-1804890035,-1987926888,-1128086292,-999351470,605991918,829144776,-106821406,1798705642,1129901832,1634011179,-1527130540,2079120696,-1959291949,1372159745,227505127,1894648888,-1801744131,-1996005235,30209854,-111521822,-414630784,-1779926082,-1034270888,1796170069,847533321,-228152656,-473073837,-21251675,681919771,1777135737,-828568247,-318032836,-326667417,-550662476,-1879702054,-283765340,832701421,1075398931,386714635,-1821186640,-591821036,323208163,-405918970,808563279,-1975088517,-636922932,-8199584,-1169646781,-1600117887,1298568728,470010721,677909370,1313686612,1536189010,-1737152642,835729905,-1702496635,43303022,2096324976,141244113,-1509282817,221880758,2130859200,327766473,1719351694,1478743329,-1118838271,-1820851981,257998550,-1628473070,290858490,1486205142,1438833219,715918433,-577454951,1860794611,-779681938,2082359913,2102532667,286535143,-922178304,808427680,1351148848,337774093,-1372191983,370467915,824797047,568260936,-2088142583,1667381405,-1937121004,807831123,833824122,438920752,72102187,405990181,952554502,1849659481,1086269593,-2105354555,1986478369,229607510,-1083762777,753985317,-294974072,-436288570,-1776211674,252418146,-222203620,195171435,490445761,406520598,1159252338,-1378422456,-1371406718,-577543598,1675009528,941496004,-1345743901,-1820799846,-915334009,-1583460438,-1917819373,1478083242,1415660878,-2037321258,1396435611,116944466]},{"sector":12,"data":[530838136,-1861562628,670105772,1015085534,811592521,-147027705,-1424851505,1247341320,1642930604,1451667498,1256082453,1958541678,-1015072841,262517864,697113918,436151050,-1111379025,1148383835,60148049,782511866,-16753615,2030332,-2099895886,-955968326,-736407224,-1159157981,952481936,230545945,1088736832,-907022898,571210873,-1308927485,998506416,-586314962,473306153,1140990729,673425754,-1585627132,782533172,1211181367,1346455460,-1878607297,1505383180,831173759,-477917839,751092820,-978578350,-1087578832,-1088928294,-2091269754,-1027556176,-16287837,1512660963,2017377314,-1453639772,-999102815,2107740969,45384292,1595525474,526984372,-338256300,1479305228,-2132585843,1972580752,332558625,-830870826,97092191,-921155520,-1011314502,2123600348,1260787073,-1976807104,38337167,-1954528035,651928081,1277821693,1503821974,1800346133,-1650694027,-43465574,-1570491760,-630938371,-1386513582,1656571817,-1087204774,1377258824,690363671,1278315296,-1915623673,1349543811,257216529,1107592686,614690688,2007220832,-704437446,1785828270,63395052,202646584,-1745035538,1115741599,-704641783,1064103102,1211214322,-1563087489,1121104859,-788495133,568973677,436250993,1124099870,251661082,-1132999879,-913766908,-1806008103,-451942021,-276300614,-276333568,-253672704,1048316144,-2029059810,-266223421,1040480504,-2030039265,-1913331261,803715621,612055399,-1281582811,157390387,-869505178]},{"sector":13,"data":[-577616150,1119000435,1711917406,1919325712,-2074489140,-1539139547,-2066469527,-320496451,314715367,-1722167604,-1283182389,1260038451,1680810357,-442712700,-2074525032,1497536549,976472985,-1247931245,-16537960,1819207707,2113260466,766213559,1487748969,1612989407,149754713,-964527743,476918434,-986963548,-323590096,-977760012,848416005,-775846018,1506423136,202119696,-974922638,1672862281,-1865344257,-1805428400,-1499957857,-2055096042,-1830161082,1561130123,102112616,386947552,54837381,-1278141697,-1433326920,1507878581,293869328,588580362,-585127776,322569528,1057015108,-487351567,793661120,-1806266196,1297542042,526967319,1898018257,-652681078,-1441994536,57562306,-547749104,202399336,2025534272,730526794,-1287351209,40702696,2031828230,-1586162854,1422922224,965078543,956397640,1249217738,1478716784,-1118838271,-1820851981,257998550,-1628473070,290858490,1486205142,1438833219,715918433,-577454951,1860794611,-779681938,2082359913,1515330107,1196213978,-191805886,-692768984,202685058,617444907,474878049,1409795953,592151430,1639068096,-1539198528,-2135979813,51687953,-1977186764,1575546928,643173261,-1190597161,-1957852599,-945013775,-948881271,-106653156,579389356,-1991192649,1162762419,581700705,-1381383494,-1152823828,-1224027813,-902233554,909697422,-251614063,-2131108313,1609255228,1015613232,310235127,1491798187,-316560310,-2035275167,-565439146,-1124503990,2134357876]},{"sector":14,"data":[-1514903357,-1927463409,1668099369,-479165944,-1522911090,834673636,1623043262,-1253498862,861983073,-1235525209,336536425,1972510825,-1866852191,1477172408,-2024444480,-322568145,1865376712,1386535184,-1046290585,231763589,1725153194,1380764321,-289099980,-115073357,-241683105,-482865625,899634323,19394968,2007632376,1228695245,-1832081518,1163441033,-1338866571,432179868,-1034270888,725833753,-659053046,-2191994,-275000252,2121486018,929522279,-496652413,-696463027,19394938,1001654712,-649811737,1642930604,-1291228401,-1087023784,-1122257724,-603190789,1251410468,670054543,-2143956474,-537189346,1032390448,-251599253,-268853721,492918178,-2074801813,1445309501,-1446852080,-548550245,-426340809,376305903,-1008229996,-970742351,-1853608513,704766273,-343534445,-2145301455,88288887,-8255258,1808364039,-1744465772,885002406,617444891,474878049,1409795953,-1537440836,-1738353089,740734067,-392105847,911867056,270666664,-1691550159,289804884,953085188,-1762855451,1713981881,1810333737,1154691565,1216479875,-719380286,-1403090900,-1974879850,1005681485,1065994156,-1626177449,670144565,-1813825522,-1741316268,-529651727,-696461564,-910179229,1368586680,-938906826,-2070601300,-904898844,282488002,1450164938,1651461397,1097545581,-512863533,-823320515,1983953439,2130855904,-400776302,-1337546173,2074067971,670105830,515931309,1038086948,598493940,-1339399763,-1434143353,1431837122,-1154909901]},{"sector":15,"data":[-590155290,-1576140835,-130247470,-1230752650,722894773,1736261953,1191192455,725932623,-1204404159,22521988,-1023752586,-2113615518,2131299299,626353665,161209000,1135539837,907417181,-1496580065,-47895536,-20967146,-1257651971,965890376,-768634310,-2122129891,239037573,-469763836,-717684649,1455041529,2030658581,1064076673,-1855827442,-1468789022,-955282461,-1010550679,-1169192217,252400588,-1177785657,129108667,-1686072868,-1743259541,-686260712,-751681524,-779437216,694083861,1701466907,-1740293038,1293735737,345235164,1325145743,1340223979,1757346136,1032074651,-543544660,544094178,-1544390653,-994387171,7054394,-1091090116,2048003936,-503198505,-537707185,985836100,145429206,-1404413829,1401263393,-1097100745,-852681361,769323231,-2016459991,457525859,-626151269,-1491056634,-79154903,-1242663417,1145129027,-217115677,-1740271596,1493828262,784973968,1946388265,-531557420,247523623,-1376765649,-1088397807,1698400629,658773696,-2000679242,407492889,638167856,-1753757472,786941625,-1704230429,783354002,-515817174,-1157402403,421353847,1756873364,764645932,1163353186,1457326723,965905910,-733574583,-1890280998,-618804070,1866521274,-877887672,1988277477,275570635,-98102806,-1703186227,560734406,1799170471,-307200720,608312706,-1745936656,81463672,-1275185350,602224856,-2058678589,1884952437,1861870615,-7314862,-860220481,-520842376,-1392926170,-1137145657,-944965146,-1067107447]},{"sector":16,"data":[1025469519,-1030074892,-904866196,145443778,356082021,-27569275,953976354,784307523,-595587619,-902232935,1758365068,1179306372,-1614543952,-251599237,-1065571033,-537713634,-1404373955,711044387,-2068478032,1478083242,695808853,-755898693,234872284,1016386210,-1540065544,360078441,-1829028161,2137854768,-922356990,52539992,-1777922533,-1533504317,-430126982,825606031,2054560637,-864068536,1636777292,-137257973,1660817249,-1822235807,-1022053418,-1017164595,54748805,828646971,-1313797445,1819881519,-1350019510,-1693125873,541367157,1931571990,1885807002,-845012651,1509106111,-1963318881,1167803715,-1798623263,-1061419854,-937581630,-1255854713,786693734,-1844355791,1676707634,-2070383009,-1277783238,-57492888,1812745401,373230648,-711535563,-899659877,1695971006,-867537206,-1452577760,-1284880079,516080148,-1025977933,-1629665785,-2145708142,1077208898,1413919384,101375300,1296550933,-1020550635,-626215228,1888290242,-834607920,54320004,91739693,-626256814,-756566078,1506346483,1938623876,1839503508,1217767757,-1224232030,-2087133272,-1976168043,-1677000388,-1549601071,-858090498,1755569694,1098957638,1349329642,648180240,562055121,-985752973,198361044,-168402858,-901655023,507878280,1758364928,-24832005,2063778960,1745110821,33339901,1010522083,451494694,2098335680,-1006397201,15971742,2093978488,-1339371017,-1434143346,316022466,1634011307,-1494954668,1271372783,922515315,-212841845]},{"sector":17,"data":[-1865230111,2117370623,-1196166948,-2013191640,-933133904,1015570526,1330133484,1743219260,1103207813,928604180,268861009,-871679700,-2019752175,-146263767,1849629377,825606015,2054560637,-1082303416,-482390836,-824870690,-1494812721,-814832849,-1215362231,-58226183,1722623941,-1734703319,1035701694,-717345244,-737789032,-371626508,397963553,-1864296407,2017834066,-367688323,419665672,-775845898,912266337,227028187,2010842630,1232466488,1101159936,793421377,-1586155056,-1533504269,-1784066707,129217097,1203399999,-819809288,440504326,2071490111,2141519725,1014444939,-713539558,1829752782,629470399,-1229111912,-317520404,1160029193,169092344,1032568878,824183512,-1154945765,-667060477,1612980490,2119251801,831538801,-1550682109,-417319755,-1520139661,-503228381,15973711,-1093233800,2031226720,637181679,-1328148138,-633120619,207705538,-1130812756,2029247892,-9539863,1248448902,440106014,-670167214,-209544619,1754073603,-863305459,419955473,301796131,848433501,-1533504381,540325323,-1430424601,662189612,-1325924007,825327586,1431014073,454469272,-657613525,903081558,736938252,1169486433,1509382008,1891124148,218329901,-2029582951,-1705328523,-1061588208,-1456560442,-841307075,338241348,1503158934,-899295743,1492402264,-1260225448,-2021689275,743190859,-449672392,746201132,-1470228929,1444683836,-217075832,-1247179500,-1425168078,1777347634,-101677054,845763802,-168402730,1345581851]}]],[[{"sector":1,"data":[91640274,990355881,18345629,-1560248554,-91272645,1870484044,515108548,-2133340380,1509152017,-1285287281,605991910,-1092111365,1230549897,-1408474763,207732003,-2053824084,-1663149229,-776488803,-121740024,-527012422,-447741442,-528728505,261713199,1006660516,1623127881,-679865841,1340211660,1155527485,-700792150,2064165650,564939352,928220565,1874762642,-540201699,690871024,1669844803,1415792458,291173048,-1161225752,464269100,388107167,-1528211242,1020267217,-1533222249,1054811077,258078588,-10394882,1849883422,-2018444441,-13618689,1498588312,258040202,-2068741287,1035701518,355937828,-993842270,1835672517,-62412212,182098265,1075461355,1745132963,-1928690555,129230371,728295351,-347080020,-109282512,-2106138893,-318844998,814878725,1762959347,-306074561,-411214878,-5493912,189907182,1001668691,-381887749,-800545864,1206221570,786494771,1210004203,-1820852010,515931375,-1733298908,2074002435,1435090663,632059268,-1326051242,725833877,628073994,987659319,-507536549,-2024645964,-1798959457,-1653154154,579637568,-670208762,-663211985,-1849299450,-1146020597,-1854617163,-1574223740,1917863474,-645524333,146517919,2146177407,-358535119,1643607300,-1891769841,-1207097626,-1973857628,1494180193,243577219,608025485,-1575667922,-1245396181,509708889,1220144322,99844829,-2059044919,1224789661,1578216830,459955499,-250276332,-1948447312,1664816674,571500151,1649561147,-1506364015]},{"sector":2,"data":[1723146581,537763397,991895121,-1960604342,-813925584,-61219625,-1628051706,-1835546687,1358992394,1955174544,-306107250,-1946469662,-19103681,-874307405,4851145,690384287,-1644665569,-1614519338,887061622,432183885,-1137355432,-1070736572,-902233574,1683649164,22553509,-205697054,-694978560,302997694,-90247303,-703506907,1129878960,1633010394,-1725256692,-203582276,1852762488,1775339263,997989962,772493850,-661845445,-1755566033,205789257,203574048,-1134545110,-1529207104,-778226837,-928896160,1241911784,-1153093086,824788987,-1773341112,-32546313,451109218,-914666522,-1220000188,-990090881,-1978352700,743190859,1982917409,-1211006672,-964320153,2017834210,833330296,1469459532,-1752097490,-1810102245,2005623876,1143705334,1381795671,-892033482,-928237916,178569651,1776796451,-1954569135,-914588880,-9997969,-333199964,-860220481,527733624,1712573751,357992112,538013517,38715405,1044899152,-1288707976,-699916494,-275548160,605995132,60338165,-411328828,-2074768962,1445309557,-1783564784,170607448,925200294,1530584700,-1260273765,-1618521510,-1969961458,1812393308,-305424570,1221520432,1468033122,-1601412028,506013413,-1144523783,334724872,-201852913,-1512654413,276234012,522643199,1267340531,556551217,813052139,1740099969,-490306140,2021148084,1299031192,-12020311,-265538933,-863370647,1372351135,-2091284828,-730344229,1729167426,1997799556,129193940,709385758,-856029616]},{"sector":3,"data":[-540251489,-1054053980,-365171987,-217513951,-4998969,1997799556,476337876,-1457489543,-302834880,-1913349287,-1120036827,541359431,-1194383872,8716211,1456764692,2037980260,457222432,-1149422869,99647732,2123123307,2099853804,447286945,2098335680,-1006397201,15971742,2093978488,-1339371017,-1434143346,316022466,1634011307,-1494954668,1271372783,922515315,-212841845,-1831675679,-297285035,-598138941,803081236,537674800,488031357,757725127,-1155585609,-530490574,2045863584,39919746,227173833,-2001827586,-901703223,-1619045812,258078582,1365623778,-1645443129,-1295530756,-1145570436,227236617,522078101,-1779009614,-943440764,-1423103690,556551217,753218283,1680229920,-78552826,2010564528,1464085253,-1251440505,-290447346,-2084044232,-2067942646,-385479157,1227566248,2114762158,-1061853971,-751900491,2116997341,-605536232,-482159949,-1283157902,1707328020,-1282131097,1633705552,-1156862639,353781330,179275862,-1331587359,1275473902,371346427,1211703070,1636456785,-1369834527,192291813,-769321012,1630211142,-1189725988,-777338238,1829495317,-953055654,2004373648,-620953508,748740814,678975624,2102580740,-1747148330,-1422894988,66302493,-649940726,-292326744,-1027468109,-1799660970,-1285258832,371470968,879306365,1356008766,-1292129232,964183476,-1304187402,690414938,1701466907,845883474,40497196,-1301319537,299843905,-903936743,816553012,-1208255365,150516664,-418972602,-480198155]},{"sector":4,"data":[1241893323,-1937182976,-1425167998,-549045453,97706073,-930547682,287408171,342700682,814423401,-1921614213,618050494,544831772,-249741143,5738513,1679041346,-1774890278,-1128793244,1736252397,-1042342672,-633795932,169140790,1620480564,468581622,1219258237,1106440760,-499417006,61743139,1121732155,-1320603223,-1737152642,-1132583183,-1699770880,630421708,641875359,-718970419,-1901055356,1532200437,-1197630242,1695076791,2013557432,-618093614,450940771,845257917,14043167,2096075640,-182182208,-1006397265,-1092125794,1971606921,274081196,1486205174,-1509283005,2083988847,-1688519970,1521803711,245335890,1923060934,1071101581,1977297024,-1929185037,-1063287884,1839425631,-226138346,1167576440,966515328,-751947213,-627911971,1613034435,1808386617,2064194312,-303245952,1739523704,2067120303,2097221426,744927142,595407361,-1314073007,909706074,-1596308244,-1292783384,-1894476942,1809532537,-1228017761,-214440913,-721940717,-105222892,42204414,2108780030,1215985179,-859865764,180172108,2131677750,-1323877701,-2067570876,-1027277733,-632905329,-503853268,298147508,1327435391,1410606822,1801957174,1113344237,1651179170,606321378,652611429,-1425148642,989588441,-1079504873,-1363634022,1125763464,-1115190791,1693870659,-498964705,1408440085,433132823,830416931,1839789872,-279327650,-1572709224,-496866562,1696867258,505865743,745755388,814453449,-1724983487,503624488,1051979411,1733745987]},{"sector":5,"data":[1742109896,-861242424,1224282105,461724140,-579162515,1581810017,1444965605,-303245958,-1937319338,-2022384836,-618083086,-338234507,-146667764,-1291689685,-1368936490,221303990,1960524806,1368946079,-697069386,1107758315,39922679,1722799795,409623361,-1973557204,1042904638,1839411435,-693278954,400961562,352869305,-974334568,121859467,678875526,-979052295,1005693732,864667564,-1889930347,-1057784814,652259661,1058238591,641875423,1796170189,39937288,2137762480,-203485816,-1204480615,-1793653200,-2132281060,1287676827,1057480958,451494886,2098335680,-1006397201,15971742,2093978488,-1339371017,-1434143346,316022466,1634011307,-1494954668,1271372783,922515315,-212841845,-1831675679,-549699622,-104434072,-777857730,1317833576,-1326927335,2120105116,1378352325,-640416191,1989253577,-1014960482,962602227,141281738,-1803876069,-338751091,-545321235,749466919,1305378902,-1472851525,1512909882,-1199040979,656142276,-615960279,1744271678,-1960249790,2139844856,-304572264,-1007721573,579517800,-1623319298,896289996,-824271101,791331973,724477670,1346777762,-1402903810,-75559212,-1475340314,-1197958465,432638126,-2037778109,-1256314442,1716597401,1159806216,-1165525914,-40841300,-860215619,-156484449,-293269992,-452098987,2016952812,-1936982596,1219621710,1821595985,403536726,-1411642509,-657777912,2045866114,-1659365381,-1634704665,763307699,-799461284,-330951493,-1269163959,-267375270,1498368157]},{"sector":6,"data":[-1361690733,-1959379944,-999406415,1168868753,152031650,-1247504172,-1654551975,-2141794133,1815516982,2141198672,570541056,703210281,-2144169437,-468135586,-2090695750,1496175688,582258559,-215861236,-1537410300,1835672517,-850941364,702635110,1117506945,-1165649356,438854544,402821696,-540076158,1112386051,-1080343075,21569677,-418692852,607487983,1141794489,-628062653,1861552051,-2128574861,-630452660,-1283152879,1142191111,1924386779,260610685,212536846,1078464321,147991609,-1701882806,1083842764,77857170,-200710146,382491279,26361882,1533483428,1923707534,698967534,745296506,275648193,1075456099,329515410,325361639,-96005560,563643725,-278478387,1074940131,-1888648652,161767857,-31195869,1070973228,386018980,-1848762112,-262138113,18338335,-418349045,-2091307447,-1539114267,-306107287,-2000863245,428044403,-1861955008,-6717185,-2103753748,-1866014771,-1728803036,331347108,-1820799814,-1741332679,-667546895,-1358497549,-1461249177,564975940,-1408474643,-1431279069,227049323,-2024083233,56211477,1821331721,57690790,1418166509,-1996005235,30209854,-111521822,-414630784,-1779926082,-1034270888,1796170069,847533321,-228152656,-473073837,-21251675,681919771,1777135737,-1304622007,573094067,1684509963,1092088771,1801990928,1917699427,-666984816,191031347,-781883499,1748176993,1304781675,-2045471886,1647303609,1650654730,-620233892,560989441,252937053,-1416227597,335825969]},{"sector":7,"data":[-444456525,-546854823,1854259618,88158928,-2007546837,811733292,240178109,1622640877,-1528034236,-2074797940,996438163,1944313035,1271558551,44472405,-1202005995,1985395040,-1274276259,1427647610,509297563,1521576746,-299975646,-1652471764,176394644,208573104,-902728825,-1506389428,2091174612,-571580202,2047070934,1600585027,-1240226771,-2023687330,-700479152,-690191509,224461617,1508591929,1820847491,655485456,-1149438080,567824064,-1628061743,506054593,727478808,-2133607768,1925916607,445584531,837504764,-1997730078,1156828599,371502297,2020321968,-1072859160,-1837170238,1683667875,22553509,-205697054,-694978560,302997694,-90247303,-703506907,1129878960,1633010394,-1725256692,-203582276,1852762488,1775339263,997989962,1847284250,79839292,610779580,925443813,-1887736956,-1903560349,-351721146,-668775375,455710553,1734368944,-1833056732,-2050930442,1212576837,1143672522,600148567,-1437831830,129207879,114828423,-485735792,2141510848,-206128443,1796711617,-43805829,1371008547,-138613267,1236355424,1409790898,-979052380,662589731,150050933,-849875651,910244966,641875231,-350395955,543253768,1532200373,-282688282,823501158,2097315512,-834582811,502294503,1287141020,7054484,-1091090116,2048003936,-503198505,-537707185,985836100,145429206,-1404413829,1401263393,-1097100745,-852681361,769323231,-2016459991,574966371,1010530062,134934060,235635841,1090843458,1137336807]},{"sector":8,"data":[-679037953,1082453259,562496962,455115385,274846129,-1821190023,1106808596,-77076530,-787000333,-2052823113,-1010500409,1886844630,569179866,1011666175,740119148,1408446661,1507979287,1332588675,-1835082426,-779478249,1140777237,-1338981076,418819207,-458211304,507785263,-2007622538,336793519,850766221,-1054071383,-987501843,168999063,291846658,-175024432,407498913,1075922444,1369762978,-723811495,562716795,-940373760,997658290,802478399,186706431,1736407856,1206693645,-1021089185,-423029791,-687784726,-310315777,-1550680830,1254737086,-1006391226,15104927,2091722737,-215736640,1257520607,1638736812,-1249398742,432188036,2033407320,-236537047,-2237230,-1798135283,880212028,-239553116,-216922109,-1580384252,-339265394,-435842045,-1718714360,-1848359590,1766260884,1917996234,-1007701623,274580471,388262306,249091091,-299815864,-2054555233,745427500,-34590523,-1854744660,-2122761842,1182025093,722389576,696801092,-2077661687,-1868265150,1632849756,-1886090372,-213713563,-745469437,-1833285589,-318209998,1578216760,833334583,-350147508,-2127530448,-1536706607,1608566405,-1610038685,352869217,-235894168,-665785538,-693587808,598334853,-1803876341,1299031192,-1589078615,-487734868,-522421396,2144617748,1646209467,-1545724212,-487075068,-1886102060,-568406918,-826423514,1197294593,858334973,-1276197649,251011102,-206201387,1798754684,366410504,-114791859,1342309815,119621349,849460608]},{"sector":9,"data":[14043167,2096075640,-182182208,-1006397265,-1092125794,1971606921,274081196,1486205174,-1509283005,2083988847,-1688519970,1521803711,245335890,-1366256442,683193153,1332040728,149308785,420554115,-1543643870,-1269331308,101379628,345465877,847798366,764547409,1228528351,1121732490,-1893352689,991831782,-291428882,-1980144695,1300926343,380016885,1982860107,-2003641585,-26308212,-1972845103,1116386289,-694290411,1578943587,1675000947,299572676,2026674799,73184915,1509147126,-414445425,-1282829620,1635076440,371502092,324437680,725833873,715916553,972349082,-396326053,618401143,-1625575263,1447019746,2097319136,1958650770,-263435575,-146896633,313487053,30201722,-214085662,-1029028641,-703474118,-2068478032,1478083242,695808853,-763640133,1370021340,-408841194,547729859,1629548272,-1131363582,-1570500415,-1084546013,193627060,1652562058,472945280,-1529166714,1454801784,1649585692,991161233,-50621736,-1965440060,-1499957939,-857060606,739247750,1194291094,-2134330847,-1651666707,-259364667,1780729195,1202343021,1225811633,2024209826,-1421508300,215445303,1934140242,1253475161,-726470598,-868606359,1620253726,426655770,1217888711,-307733651,-1998419566,-1652359104,653774798,1162869447,685346490,2206461,-1866648831,-1493327287,-1790051713,648362648,153691845,1534583351,228181179,2021092286,-899762557,648290864,-944965122,-2147016312,-142815214,145438673,-350396059,1129886473]},{"sector":10,"data":[-1402271701,882887466,1639717689,-34791574,926820334,-444792132,-2135214521,1139207708,264248041,-1729135342,-1247886333,-1820851981,-772309809,-1248939990,516074116,145429206,-850108059,-1678792988,2004044743,1250637564,-656280752,503222482,683193262,1891784216,1661734587,277084843,1983326732,-1480335514,-1646051799,1086430685,-484596798,-661448330,917463892,-2010349373,345024560,-269443029,1647805604,1183129063,-661399237,917463892,1380764353,-994560487,999537091,-133295181,-978536796,-957473744,1500825168,-252765988,762317538,1577649011,-2140812058,-1798473529,1770358161,1616366362,-583466817,102030553,-1822272786,-735645296,-1397463362,-1414523356,-1682527922,-65367326,-500044978,-960333516,1287677839,-944965164,-213303671,-267350183,1053370320,149041515,-1574636627,1561515628,137053016,725833851,1129900808,-1330771925,-780440662,-668111192,-1897966526,678414420,-38976770,972141079,-578080304,-1652213086,-780340299,-251106506,-1314518293,-523878550,-1837169972,278011811,11309546,-102881295,-347521920,-1996017569,2110781244,-351753454,564939352,-1339399699,1276466822,-110212386,934769852,-1268202625,490606501,1208625549,2132808242,-2105354683,208191528,126378078,-1293412115,-816246751,-2016950715,-1855827378,2043219966,-496934388,-1291283870,1707655956,-1903070567,-1743263057,1274741026,-780986846,-740183695,-2007620944,1977555887,-1852531235,-1817179517,-435283704,1486651747,-1749775348]},{"sector":11,"data":[-694972756,-1066010437,205799473,546413036,134078632,-257870972,-1406134199,1463380475,-2117170825,300768908,-1343410988,-1901504360,-1114675138,1631395425,1205857365,-1676353544,-1523152505,1638217203,1518712096,-541831819,-238321132,-2000180165,436987857,855744317,515106387,49207844,-1392937369,1752729799,899671059,1443164568,911315705,-1406269077,1971623201,-2070601300,-1792955275,1431852932,-722944715,1123751479,769113945,-1967908046,527477584,1189444868,-234657672,894573890,-81518976,-1996017441,15100733,-107075599,1633002223,1426680605,632044932,-1026944938,1305058217,-1769064481,1845030886,-408841194,665170371,501446316,-1370621939,1100254465,-2023933855,-1764282106,1123680510,678695738,1540535340,1624321880,417973814,-2016074077,-2024700859,2128822919,548577378,-1815687218,-190539628,-117361604,1283373094,97115953,1951583701,1897146086,-1973861816,-265928864,-139371793,1410870522,-1134346133,-1094532932,-101119203,918299226,-1967305848,1536885134,109617318,26314040,238813070,-1921748730,1106959397,-788631983,-135054842,1067634432,-1838008538,-1038830840,749332202,1228134603,-1307964534,-1032702118,-485109334,-1296311686,-208941990,1322781379,-121544425,-463675276,-726312607,1675371908,-150828050,-1052210566,-1086699899,-1040174680,1228479934,-865975926,-1067709613,-234657672,260966994,946886864,160145163,825814210,1349565582,-1151282382,-458975084,800409916,153857433,-752178171]},{"sector":12,"data":[-123310678,-1981827420,1178363613,-782747505,-1710622484,-241683041,326162214,1724757819,1341278524,-1820799846,-862269468,2083226232,899385541,274110340,-700792118,516082192,-1026944810,725833753,-1431261688,-1462666389,-2064241298,716144563,-1695373806,-1956938168,1890275373,-1837301087,246528675,264247977,-1729135342,-1247886333,-1820851981,-772309809,-1248939990,516074116,145429206,-850108059,-1678792988,2004044743,1250637564,-656280752,2077856210,1244868120,2014856701,-348705164,1649544725,-1246040943,-550413245,668271817,808537678,-146165263,-513701287,1378792414,-2010332111,808441869,2076682288,734885938,89010491,-1972869714,-844470800,183639395,-2010353661,6059896,825961421,-2063219392,1825740396,-1949510100,-133512205,-1440357004,-1442229300,217461323,1637911506,-297383082,-711807696,1727040104,-932393534,-1355793217,1649561223,653365395,-1268334892,-1340726100,-1230418261,1183965851,837504764,2089963490,1019503574,1341262132,1712562590,-2068478032,-1248939982,-61123707,-2272190,-2145701375,-914422836,-1958556335,-36043583,-1694472924,14043219,2096075640,-182182208,-1006397265,-1092125794,1971606921,274081196,1486205174,-1509283005,2083988847,-1688519970,1521803711,245335890,1485673670,-789598403,388217378,-1895429542,-321824712,-1197864456,31431945,-1618953418,438222885,36632836,1915437819,-300482671,-234657672,-1654001085,150938061,1362560988,-1565894774,-1311063623,-1373810127]},{"sector":13,"data":[285590052,1085637220,1212654131,877301135,1097558937,-1777218332,1612975363,1260790572,-1821211072,107914384,23691437,1403921597,65826160,-368887992,-830100218,173882126,-1433458672,-1929038371,596501126,20396743,-1121064211,-1154979456,1236383489,131887147,722057188,1564151474,285559224,1342003955,346538755,-632802967,-1530209127,-1097006987,-167716717,718541301,-685330293,189006139,-734329204,-1154252451,394297252,1804811256,1616262825,1382093550,2074875403,-1007055494,45820015,677422950,499374976,40490079,-618221429,1468759972,-1454083211,-295676362,-1773566654,-1247845451,783214110,-242115199,-1833056672,-88038665,-628648884,1168763142,-1968372008,-1999263162,-113148243,-733711142,-1493426941,1661257184,1583638402,963392864,-2091291832,-1867366471,-1211667747,-401483096,-1680815397,-1014820947,617022382,186032268,-934698056,-1533953702,1141768343,-1585408945,233132084,826711596,1031094238,22553453,-205697054,-694978560,302997694,-1248268423,-351753454,365185624,1451667498,1256082453,-779681938,2082359913,1917983291,1073944295,-1937001919,602734882,103020816,2005276693,-1302397836,1715282261,1745317954,-228371432,1365336158,-106626643,2089124217,1129508385,36160812,-1928715289,1168622816,176934272,-1326913057,2064146273,-1725592172,-804331318,1158127888,1365363840,1229691058,-39309288,-895906347,1825186376,2088936533,31167623,1211763980,1399638562,-2046805340,-914087895]},{"sector":14,"data":[662679621,231840774,-1259950486,-218735627,-1060303449,-706700281,155258073,1194633153,-1135880,-613423856,-366590475,948503360,545683253,-1587264843,1441993165,1573944439,656698559,-2046799305,-234613196,-830051231,-2020472524,-1420147916,-249188935,1814326463,145810982,654328419,-1415398906,1864677820,-1974642428,-1873833804,174103538,71935809,1955220825,-1258061669,-2085812569,1937017000,-1146473148,-1220357734,222640877,2113938617,2107824849,-855690921,-1888973088,-289690694,1929096590,-300195886,1521751040,-769531843,-2019541010,-850971577,1324604757,1218968918,-2139572319,107449091,-1146379590,-2110284570,1522902572,2043160392,1343074381,373412457,647848531,-488505120,-203215331,1148417032,-547498628,-76686540,-1074687922,-471728088,-324713524,-401584242,-1962964762,-2013728850,617971243,5815853,1527598830,-786328569,-1428811571,239627246,963753951,226556710,-1202822831,-1017605044,960103611,1574247586,1833134286,1452494587,2130725085,491489192,155285674,1194624914,-236017016,-161753072,1875003074,-1204223798,2099006343,-1706833476,2002109475,1869449336,914662618,2013294815,806757715,-2020464147,-1415953612,-854995527,1402097403,-738123659,1714178726,153904815,1127516050,-843469926,-662791379,-295997112,566890240,-14881582,1148397721,-273773953,-165999119,-1213848931,-400818094,-712071869,1682107884,-502149727,1153219370,1643900311,-1536244447,-907788800,-321549243,-1587232011]},{"sector":15,"data":[-1427762995,1716220910,470988511,54585942,-1317762843,77184474,-786675162,-1146412514,2118340036,1534150872,1225654510,241428752,966020223,1574247586,-546019122,890628532,912593340,1044501034,-2140288445,-1840381162,345747976,130036457,-1150023442,886561741,1200062709,1439516468,1313338333,963753951,5816053,-1275670794,931775828,-345406868,1754140161,-581624433,-1078614813,-344726930,-33443716,-1131703591,1997451997,960103480,-1368768862,-549152017,-180784713,-16766785,474711912,-1555868545,1438917530,327776375,-635120258,469782382,2129203328,1897664267,-2023165247,-666422201,318500522,-927138490,-2133963453,1187542535,-321773184,111652893,-501231204,1224522667,-1783111928,-2133938907,-1309772281,-455043314,-841932490,-1154812399,-2042903362,1923661053,922850359,-1370269588,-1053942526,1369940944,-786650872,-1146363361,1870483196,-1186574374,-1694438213,-1670813001,-1573249790,1325185963,1493462909,-1867216307,-1678602161,-752870816,-1507032412,-1606206779,-1043726847,-1175625557,1127516050,-1380340902,-1124264440,-600320856,1792646912,-1413412542,-1834359112,-850971513,1123278165,-764821755,-2133586635,-769580537,-420602682,248585290,887598698,-1024058489,-1866835646,1946746112,-1502935105,533797962,-323245214,-662809779,-600356024,1678122496,-1843397470,-1998133232,-547547653,-157586846,1848254877,1245577332,1004053092,-420999001,2002086792,-1084644555,-429643153,319635690,-469126253,-70133566]},{"sector":16,"data":[-1587232133,-1428811571,2085186542,923392879,29409115,975012597,-994333790,-1948193466,-1839812311,1394536969,436732268,-1807380364,675915736,1133802240,1899532197,1377639623,-1998133232,-564324879,-763493598,-733123974,422971264,-2047833198,-914069298,-333211069,-2005043371,165375789,616155424,270168576,-1819319319,-786675034,-1146412514,2120958916,1867625692,-1253965620,-1570487557,564412120,-703541807,1114369706,-1801126554,-1308041476,543757723,920986015,-1480492352,1297679433,-2137295734,1669316611,-1453372504,-384765721,1100792699,-1888973298,-558126214,1325108638,976700049,-83681792,25111449,1069324046,-420999130,-1146423416,1875831229,-444085541,912593340,1044501034,-2140288445,-1840381054,345747976,137371625,-806533341,-1467051511,1215557290,1493462835,-1867216307,-1678602161,-1488900768,1297679433,1082619018,472359958,-1902950800,567820088,-1504257070,1894653060,-1573284788,-849521381,-306757464,1969966565,-1890448608,371609464,-531868725,1148397721,-1698977227,-165978158,-77184318,2040267648,1931250578,1931123896,-1366656956,456593903,-1255891466,-1459232578,-1806927705,441396571,568384185,-703541807,1282141866,1235746230,7397296,-769526157,-1509155129,517020746,-994333918,-746697918,1852758180,-1715520512,1223536936,-432785375,1561719176,-1217977634,128252653,1297679471,1334883466,1620832912,-1529634771,-978965374,27280186,-1078382642,-1233909512,563800784,-636432943,1315827370]},{"sector":17,"data":[-1464009370,2977359,486269468,-719619,1369247233,689167445,912593340,1044501034,-2140288445,614270679,691430673,450895826,-2120865819,1244049568,-1663338196,-1981035663,2017751992,300920458,-696349890,-1445248622,-1815146752,-1187113435,1244006625,572444956,1136966571,611106749,4775414,681178483,2057235387,-845060926,2002121489,-1215048836,-1382316819,621248724,-2094183770,-740246382,1437409690,847566556,1259517663,1795205467,1132491700,1295944869,1148394140,-1665422791,-315097904,-550206332,1433534612,-55745298,593443332,-2098152353,1745757459,-1163191670,-70411898,-539455148,1416757292,-384763079,-2115161753,-1888973298,-472034023,1858020641,-608758558,949030784,-669094859,1200070841,-1420147916,-1690718791,-1441678346,1912662236,-1055513165,-1555886898,1437409690,-1382164772,-78415365,-167657347,-1337227312,681146494,-1971370893,636612526,1195044151,1493462860,-1867216307,-1678602161,-752874912,-1507032412,1347304133,-910886143,-1236169659,-914036774,-853435837,-1679369131,-1838497947,-1594075620,241301251,-1215466857,1244019807,891277596,919435095,617971403,1090104632,1724986890,1486113912,124328901,474621500,-1368781103,-1388825369,-493857541,469814199,1480197254,-909315101,-1004299709,-2005371051,-1193578643,1222482570,1690727936,-1641485150,813236747,-1971370893,368177070,611106613,746731304,1213908390,1299826727,-746584400,-1507032412,541407941,-2014775039,-425608885,237391728]}],[{"sector":1,"data":[-1415934104,-308549957,-1104911877,243284279,1963806377,1517508421,1173358134,1235998868,688912644,451936438,-1807380364,-867588136,-824870912,-1953363505,785444888,1936984191,-1146472124,-619916644,-1236167946,-50310946,-1395269484,482857456,1946739228,714556531,-292500549,-795609381,5205652,-922667972,-1020387870,1880901571,-786346882,721293773,767868859,305295295,260099725,1216217101,998810947,-841932384,-1146428655,1875408060,110152411,-2046312196,2134194305,654799879,1148417160,-646490663,-763473085,-1143247542,855808,-769553805,492379884,-841932372,-1154810351,1875559615,722741723,-2046345096,1130381184,-830875483,-842931191,-1154810351,-551369537,-249176652,-520017729,148442784,756006772,-401547252,368806118,1952636765,843691487,503356891,83690778,-1065134022,-1697390500,2002110243,1871899000,933022427,-978965374,-936949670,498093433,-2103127072,986031660,-587095997,949358097,-1587265799,719458765,-1270563653,-1577912805,15260866,-500794759,74194884,1017264442,-1904781451,-562127971,1963144788,-1443492320,33585639,-209834979,-1806956350,1161601593,-1652000937,-1833894458,28343379,1170838765,268844172,1938351848,-1590069419,-285860944,-1065536732,622066433,-487735018,231808029,-1259950486,988624745,-1058105790,486734593,-135438036,-420999116,2002088840,-48848583,-592801358,-898236184,499556964,960152737,1574247586,-1087805234,927148655,1812447295,1163957437]},{"sector":2,"data":[83643720,1975016506,158723151,-29559445,-786686718,2002236702,-34205779,1861493933,-653361025,83696763,922877941,-1489310186,-27905289,-786686718,-732080876,-1375885741,2084038436,-422312000,-1415431606,-435171911,-661371408,-117159509,62269711,1211764124,1399638562,486591396,-278237098,1200040056,1439516468,458159069,-2078085386,1946269807,-1150031600,-1706833492,-290787805,2129895931,-303782701,-2127625993,-1233414386,-1573307772,-273782210,-42583398,1852655783,276431268,-1847630871,-1998172110,-564324879,-315134686,-825391228,569257600,-255932718,1127499655,-843469926,-1124231667,-524354135,1101150471,-2029983896,872095307,-1889006043,-488811247,1774179623,2120432338,-2002908336,774881140,-1998133232,-547547653,-42583454,-616347478,-1425293122,366340368,367189853,1297679471,1334883466,1620832912,-1529667576,-978965374,186664250,1666265741,1884180112,-1573284788,2002208060,2128318088,2091076056,562826160,1354493138,298701089,-1078252802,-161743932,939139566,-1822588889,-131066331,1121249576,1127499562,-843469926,-201925875,1222466595,-384766974,223262839,1782489657,463138734,-2021331529,97564957,-2015359234,1541158219,-1998172110,-1111807242,-153419383,-1179801614,-704183856,371528552,1955113163,-1439349645,-707552581,-1664427153,86556569,-321773090,-1284249824,-845060926,-1154810351,1178584255,105491197,-1174390089,-942530170,1137288383,1438917530,1216903287,-1865753745,146862637]},{"sector":3,"data":[847357494,-1598067631,1127516059,-1380340902,1858013467,-1650760478,953900032,2092857141,597349344,-101799194,1874834852,-447001814,558915456,-994129966,597312457,2021086660,-165973624,933634798,-1642069787,-1065220518,-547100400,-1700576332,2002109475,1876002936,-1215191846,1522204730,549954148,-1061477897,597336899,2021086660,-166001015,936421362,-148897589,-1570487627,492994521,1779290396,565503662,1121774903,1493462870,-1867216307,-1678602161,-1484704928,1297679433,1620669578,566611993,-1184083662,-840882436,-290793968,2116241515,-1217542947,-2033319881,-1953363660,1323331942,446839053,1758289365,2130398680,-287605080,950361344,-405902283,1946736911,-1439349645,-2117035333,-2022385041,48815218,1170865383,2023504863,471663208,1463099345,926141815,-1186732563,1929475182,-1884994564,-1555856269,1438917530,-1719043977,891973567,86040109,-1902974513,-101799256,297578918,-768985499,-901562815,28606573,1493453223,-1670084019,-855959648,687298708,-1573319218,2002208060,-1085956216,-753888662,-620015490,2066500198,957173402,1464155298,2072479863,673502590,394296759,-706146089,-488678123,381803329,615342675,-1505958893,449580760,-1807380364,-1203132456,1807997185,-1304049276,1137280246,1437409690,1804654300,-408628354,390129606,1486146592,1946742519,-1971829645,957476782,711966705,13245226,1170830526,-153059623,1754140401,-581570161,-1208344066,-1415239699,1825186424,2088936533,31167623]},{"sector":4,"data":[614270684,691430673,1551918546,1564132486,-517555473,1441993165,-288129929,762427359,801174189,-1392056468,-401594729,1433110758,1957115255,896645087,151056091,2067369491,-439213722,-401588521,-1426749210,-580272709,1211821367,697032781,160585393,1817386738,973986311,1825186376,-2143706029,642712158,-598388451,-587689258,-227016445,-127275357,-2126073192,1295737297,1611300899,-1288093637,2107924945,1410876520,1385057659,-493271748,-1533504365,22216907,-942734886,1640792133,405073233,841562386,1544519249,970622732,783535177,595673426,388338578,-926878240,-720723843,202681495,-345639573,-1967021565,-1029796587,816553140,1472874619,-313433638,1096218403,2097173166,-1932905212,-2060296334,1322151207,144310667,-158400093,-158079477,-882421106,-1329197505,1006409500,617980235,1921746348,-1033228544,-435860573,1003620875,158662706,1042861878,-241119726,-1062920898,1692383286,-2108783975,1948533057,-1954165618,1444413554,-763164691,1443095653,960080471,1010531554,-1747613123,-79917908,-1861881793,1489555364,1066607287,-1578735071,747646725,-1464891248,324199653,769721330,-1762617035,192941278,1795409035,1215428345,-2079340471,-1033382220,3307611,1122827,-1874422077,153063571,-2066764695,6615222,-1739992052,2060277528,-582851001,-1408119974,302021045,-1815802102,-1048062395,1499128231,-5972845,1264039824,-1524372240,1960736504,-1758590679,-396699423,1990941952,-1237534843,1649602207]},{"sector":5,"data":[-1358980461,-937115693,1879838729,-636013245,1356037400,-1832228236,857769266,806898029,1980820136,1213776590,1380764213,454453107,-1264420170,1623135494,-1355628356,-1096793971,1232180951,549897912,1770802278,275091693,2054348704,1613029775,-1806650430,1991656327,-1136541166,26867205,143524130,565354598,1649602272,2107724178,-1959581591,-2146919935,749239149,-1048740528,-930948495,-1333738620,-1415240531,56974363,1949540539,1885302626,-1298106788,1093744672,-1004294736,-2094940582,-2137764917,-1837628767,1643691939,612708929,1160242974,-792845693,-586497070,-316158560,-1762352100,1119231358,126214655,989116099,753195940,-1994325966,-389368695,-803679464,-1299041102,906589440,306063567,-1619513145,-962541810,-535289658,-79915386,-923491300,1246913624,-1347680568,-999067052,83392248,208158505,31305019,1212658331,-927952779,-1051761920,-923491108,1119023198,766754338,1116376188,-1091091890,264297234,-1260789485,-1845151465,485823761,-425423938,-1023975736,-1937999525,-784005504,779685985,1590224548,2036056823,25201788,2022190215,-381077036,-1530351472,247428299,1560340672,-1215990101,-291523012,60883026,1938606649,646263437,-1957769499,-1393606394,2016643116,806404540,1059107420,1923441525,175655057,-1422875037,-184755139,-307744680,162084671,-1274231259,1351637214,1751062551,438276494,-926768509,-1468628677,-1047459187,-2122747512,216942213,2057731495,-1538589620,-2019564165,-484683673]},{"sector":6,"data":[-1019593860,5851306,-92143541,-1921645025,1072857278,-2022137658,-200298397,744576435,-1864424475,995255478,26607666,513018861,-1330461913,428402975,1628461502,657842477,-932437545,-1269079808,694629910,-1778372041,1216187398,586104903,1150042201,245332096,-1501577014,66306810,1389398026,-2023769497,369113702,-1974879989,409849153,-2121363206,-2119023394,889227544,859849126,-1823051101,-1297141456,959992322,-2051185210,684258415,1410894884,-859379074,237577957,-1798658893,761337623,1271619620,203606789,1668628266,1497015398,440127213,354858235,-1459035364,-1560339144,724357158,-608978871,208941565,1585346859,307650912,802778060,1385311866,-259822385,336786444,621178624,-1393566439,1778998113,-929127101,-2132067288,166574693,-1036499067,5393962,1255407953,1615713164,548582495,-2060278466,669505063,1959298373,1606496576,1042330292,-1795463515,205490066,1588605994,-1907269280,-520185079,-1063091342,621075688,608037343,-2074797940,7311536,383415755,2145055452,1166690745,-1987942879,-728381048,-1694421607,-1292823837,-795748456,1998823825,1516314946,-533238962,42631650,596198651,-585002608,1294601448,1832028843,-2139553531,-198506502,611701124,1983973989,794302997,-1276616912,270643836,606315108,1924448091,2013454736,482124754,348818546,976861084,754189868,-77263736,-1522617233,1338638692,-656316599,-58517546,-1430033349,239107650,-642228158,-809262533,-931706039]},{"sector":7,"data":[1371322368,-818161280,1498008241,-728305663,490456067,-195452288,1744891151,2035322931,-463121816,1348190727,2097254401,487269289,1512151604,-116840133,-728305663,838886400,-630774783,-829958585,744782418,1494886706,-1073875455,1042827368,319809078,97835489,589695642,-2122125786,1932701594,194616980,1715964428,-1562573248,608249725,-733148063,-183554663,-241584231,-334491650,1288175990,260771547,1494886717,41946123,868647112,1917773397,-53292653,1235288891,1554727818,-306264384,1053912587,814915731,1290413702,16746390,180791101,64096779,411886647,-1922695338,-683619687,-1546487806,1368325148,261243545,-1063087245,-1669207956,-1140538630,-450076223,-256676825,-821988372,-1364081713,842748445,9496855,39974969,1085345881,15887698,-706940045,-123677499,269422155,54228716,-558556408,1985121917,584265700,76601745,-169932368,-1055743715,-73935396,-491930048,387464060,-1913298665,-1180855157,-1530334197,-2023769561,37767023,766794733,-4921927,-1726704782,-1089267849,406993898,-1576433536,1069260821,381718905,-594309050,1090230229,-1012748354,-398993082,-872157933,436405645,1083260427,-1816981415,-286504903,-1593980054,1754676923,455147203,-1929026272,301271699,639967263,-2102098723,302601344,2110177317,-1704005471,357320576,-968858176,1561121869,24927304,1533362276,-1591460579,1921086217,-2127552618,1081561019,189375620,-1021251694,62095508,-1609767556,933515302]},{"sector":8,"data":[1624361401,1938342339,66261512,573072905,992548733,1669832549,-262992296,1418145517,-91894642,2114846820,1150697496,-1693167572,-65240964,1970353655,-1022214616,490456195,113426574,1671395309,196713876,-1784362764,-409730160,306063383,1002734531,968920605,-893537288,-91890610,842748516,989959680,582263806,-1298515112,-719886081,1669812156,1055711746,-1821199951,-1719787081,-2130934764,1870565083,1189665205,-39598516,-898499730,1065271137,-1910644031,-1693894208,-2072719007,1694139900,-1831792384,-1298862350,1274512436,-387387920,1598753792,1923425112,2006520979,-356576489,-2145893829,362940808,2034219936,1175896209,-706964592,-1103037545,1187226287,333985753,-1916009491,186254085,1497403710,965980944,1794042952,-1147077173,-1016555970,538648830,-1819474587,521270538,-584702688,-2138917756,621939028,-1585592640,-2137362704,-1072346041,1304838245,1214057684,1677818972,492528960,1111236925,-1267474340,907148746,-400323196,-1487058152,1380098235,2009695524,1087005072,-444858043,1344708620,25618084,-309459278,-1246795648,-1457807328,320144931,-1770478356,-16619722,-1530238588,-2144763865,-893637148,-1326911409,1449235992,1181278071,-1276735286,602262572,122421680,986213665,-259050839,-1526877976,-2063520423,36850520,1696838831,-1772522680,-1634700698,-1878809088,1329132470,-38737680,19749284,843798661,1723182850,1500727461,-1871550826,-1837628158,1275207331,1939818913,-1698651501,-1840949500]},{"sector":9,"data":[29178660,-659273851,-584653492,239029090,-133915437,1377636982,1076287085,-972144821,-1598513488,-1019644168,-1169323348,-430061372,592504896,-217780199,1046676682,-1169323508,1476577476,1210190605,1751642251,1601235419,128496516,852777410,334181929,1274574625,628916282,-1826471011,1081163119,1110097862,-1910681491,53254607,-130410534,2088778315,574856485,-650678637,-684860063,703757857,1628103478,490436140,123220639,349851008,1834149051,-917987121,-100384743,-283692521,-1318153438,-128384462,17818742,-1866845681,998032824,-1968389268,-926631347,70039899,-31104494,288425468,-515523052,-1810416248,-1072541654,1973097497,-951129720,-514083997,1003903704,1107991837,-314371460,1130627333,-1722217786,-65258229,808441869,1583583795,-243002343,-45366204,576862200,1888291624,-1298234020,-1575231906,-1796463678,40407889,-1659031939,-1917761782,-264649061,-1529827860,-1662573627,348074072,3887845,-1274857439,-1326938601,1533128985,202784253,1081163051,77336665,1032552356,1122683452,1090655459,-1072475474,-1676960748,-2093536628,202808594,-519728768,420450789,-279368119,959027094,22821248,-881632312,-1861878167,2114877958,320416826,1671924746,1500727391,698850029,1011828785,-482153782,-736684524,84251793,-546400563,-2004578712,-1943761756,1600245510,-668730055,1583580099,1262160837,49709204,530813565,-1494344518,507159632,537316818,-1586736104,-1177033035,166713092,-771093725]},{"sector":10,"data":[-1917729171,-1931162248,1679545112,-1077922488,-2082217245,-1578561036,-1574493707,-1464826431,-769272835,-483064218,238124054,1093752852,1828216417,606152168,843785829,-1953299642,157684258,893513397,1094828795,1516331300,-2089363129,-542843711,-1910669674,963919712,1262189789,-31009375,351920194,436271515,-733637659,-333527419,-217940073,553114116,-1696465510,4905551,1685497032,9441070,1600256057,2118289946,637326658,-1619513196,-71120370,-1219948706,538926280,1832818945,2119012475,-1521794310,-1165789448,252318208,-700083259,1649593991,1278899091,-1737801303,501134343,-1120494195,2143233736,-393841151,-1533611856,-1896502236,898026648,1448639971,-60711702,128195734,-2037219583,1195002518,288425218,968874148,-1917565051,599060238,-1974889113,1628061769,677337244,-1585612952,-822067429,-1426909882,882423116,1602759871,-1711185250,-1442082459,1465405516,-1838016318,1738015312,926286614,-284258858,-530111564,1461231640,-987878961,1495806360,140468496,2134952545,-1932905215,1281379795,-818329437,988070562,-1394599904,-2145292265,-1396597907,-1296914373,1233684660,437490330,398702075,-30318572,119177153,-1431550464,-1744656305,-1982119410,-1564262486,-1473211967,-293405241,687895378,-1188174720,1962436513,-1744675240,955023957,1237951170,-383500263,41435850,-616427880,-1019223604,-1723416414,-2055102666,97924173,1508715477,752133340,352750542,1571880728,307383498,-1798658957,1410873623]},{"sector":11,"data":[1265983346,-1284652894,-13541356,-2137736352,-902233823,845116044,-829087091,-1241412786,-947891764,382010875,-739349748,-1454491039,-2134326754,803059140,966624325,2067892809,1764396188,-1456557914,-2023991180,354157380,1649602178,-2063148911,-828332811,577242668,-1594968831,-134921807,191547141,34476834,-980503358,433538753,216591936,-677701411,-1474488356,202278956,1210805328,-502982657,-1179370472,956366664,-419459382,1938138193,-1849580909,114994480,-2122727068,-603612266,-601438812,-1253946245,2022539586,876610756,1667245745,-1049501345,-1334966534,-1678474579,190593915,1611972956,1908538929,1532387747,-2054642383,627672325,1710251568,-1040126106,401350563,-1843965808,-1048146480,9801842,-1079799169,843145720,-85319539,756226348,1351096108,-39577276,1486651811,1456476517,89813636,1496934789,798543024,1624453680,1237516479,186845498,1899811338,-1645403948,1804644484,37716116,960947580,-1824089658,1160243058,-688447357,-1139194858,411590750,521165102,-1177374278,-1656518071,1688690175,-333228770,83972864,151731956,-534763161,-1687002870,214698998,-961380565,606201292,1378765825,114998577,-1843660021,-889388622,508187212,1344038099,-1422894988,471307069,-1586162822,811103472,926936488,1910579113,1260531075,-1872604658,-1454621973,309752129,-1274263854,548560048,1459069890,-1522308554,-1310466914,1631763375,-1976512943,-86015597,-1040028382,1032559540,1075303359,-443041854]},{"sector":12,"data":[1628767974,-1833056724,636068599,1070134828,557960960,1659897408,-86074031,-1766844986,-329696604,-1194425470,-793879802,-1938598760,551920674,-902233775,-1814322547,-1824089696,1160243042,-920457849,1026165864,690472359,-685094607,-1043189200,-1899580047,-1736250896,870157783,-1531425162,-244773013,455115394,-902477724,1611284553,644746041,-1961951320,1305166854,-603915134,-896168304,1611325519,1752042297,371064409,638243335,854624648,1923425234,-1744678766,-858045938,-1564262431,916014784,1518698911,188397869,-1277536342,-1392817991,1510378446,-1871571092,-902495593,-805065843,961061708,-805065779,864562299,22038736,-2017484954,738886469,328610005,714576746,-1600937977,1499541550,118616282,-1959652774,1343426851,2113719146,268461348,-979100419,-1359004127,-1967561261,-157713408,-117168092,-1326911425,1427701016,1381872772,-1912479213,596220425,-641788666,795895395,-230953478,1376859203,1164971049,-158400111,2108656907,-2049863775,-1533270676,-438425915,346301740,-960116468,-1388500468,-573329674,362951376,616597462,-326921205,-673652560,99893395,1018432401,-2077846207,-2105998886,1635802050,-1039495599,-1019309222,-260881983,-1044883262,-446011515,956901670,206202322,311476706,1652579266,1291802328,-1995832483,372762927,1633705594,-623439274,-1995791513,-1640562678,307400210,1486650198,1405985328,1629251081,-901243366,-784259327,1163551073,-1246533875,753408480,-2137721901,-902233557]},{"sector":13,"data":[1365158541,-1538185560,-1433308267,1034441054,-384220010,-117118916,-1326911425,1421034427,-1029547070,160478402,689420506,159747116,821070627,1498452118,1649561089,-1359008109,-1967561261,-157713408,-117168092,-1326911425,1444478232,-1802282302,1871016296,-1663477514,1320943115,80580860,381759808,822121030,-1250835970,-97405713,-1283150544,614766740,680872423,1074170675,23988555,-44342901,705459249,-593182940,-2122716839,1598773381,713858665,-570415068,1228491384,-893563510,675826520,-1937009895,1534809112,-1146659347,725902752,1216352173,-653842153,-1347305119,199786790,2020087586,156052099,99812020,-1040140412,-2078991197,-2021841227,-504921470,-2089700988,-891957750,2080502336,1279149797,961061836,-157713204,-1603858343,-468475760,-1063074817,797504611,382487478,1671025682,-156749805,1058501809,-2087617524,-1309876470,-1974912589,1618050626,1264122417,173739120,1332144607,2060017251,-736971070,227270274,-1603338019,349885886,1288332786,-1959576750,1124867590,-1680825166,808464192,662856342,18473169,1522685464,1624330643,1575865283,1546014625,-1406876252,111489769,60121457,781594832,-631676624,223350000,-1300226472,674223392,1715724500,-1724628245,1583562091,-1775175119,1285449571,1026166000,-1875207763,-1229494295,761342796,1315594176,-583144062,1562454531,1073904744,9849017,-716774020,1111794941,-834594203,1155161965,1150696772,-752031719,-1326911241,-1737832936,-1452189621]},{"sector":14,"data":[-221247451,973688902,352750350,1921100701,-977151335,453180165,1087806260,-1535077293,-1550680319,391697204,-1857644051,-775308888,270365281,-137513377,675885353,219214195,809503788,-1931200597,1305695256,1840537440,701964433,-1934325996,-71901228,1807716675,193483022,-851914230,-1049039365,608249665,666354272,-1533224616,-1372248123,-916561056,-916401797,454056312,928736720,-2122776187,-501781371,12948112,-578570302,-2053564334,-1491513746,-819940628,-141094334,-1756810967,-1605097827,-273355841,1149721801,-26809065,-652695319,-12047380,-769770101,-1257042127,29835466,1766204795,-737693530,-811314778,1641138617,252714354,-440510039,237316390,-1526652290,352749697,-2087584666,-1402365430,909112577,1105332585,-1846148946,737513882,2101612269,-1818836150,-2063506900,-1350713511,-400283624,1444449316,857467876,-425420652,1796000949,746205145,571158297,-1425245693,799076454,-2102579152,1477595900,-262793056,323201659,-1010193104,1150745908,1380116505,690415102,1708275977,-1140978870,-929694642,-1539424140,1356070349,350869848,-1547535786,-215922982,933534932,-1899349759,1771338224,1624332039,274299081,-1088368101,2101372009,16698698,1737438386,1153859653,1236889366,-379826550,1896260914,1501088096,-2066670832,-38128592,-368471643,1036754004,-2127691164,-328443515,-318620104,-90864888,1801617486,-703344118,-1921551749,-426376898,-1139472856,1167583774,-1380922240,-1298221785,845161473]},{"sector":15,"data":[-2055112311,1389240684,2080556800,-901691675,843130877,-407755891,-192854745,-1274074727,968430854,1498848141,-1192489447,1784157178,191622411,-486364637,-1822291957,1088540002,411590750,-1035987153,477542060,-1533504485,-2054130811,316282774,-1769668588,906171933,-1380919753,576010884,278397584,174637234,603806561,-670164630,-451100074,-1744664542,1107298825,698352075,-1057722491,-1974912539,-1025348530,806360560,-1921682783,-647855973,617856873,1180328289,842210195,1588778776,-1268098828,-83613485,1575815992,-1083043679,34197577,958998245,1074170803,-956387920,824731190,-1070496761,-1601695457,1717775116,-2084274780,70586641,1142312974,1228526652,-500415094,724340929,-1735544449,-267032990,1345118337,-2143442670,-2134473687,360840823,66847214,-565787742,-391842219,501096710,8082158,9242963,136104232,-1006673233,-1403600734,-2098556532,492994638,652599009,659292636,1109459101,1173313847,-1413706362,1959807469,1631652952,45615451,-895646264,1309829967,1321378435,-933099899,371340434,4766016,2045082113,-197106215,1184489239,-882674288,754708427,-2066730104,742063221,1444425497,-1236501823,40354402,163785957,1637900476,-2130036142,1319817469,51497995,-1840326651,-313433808,1228482878,-626965622,-1887330549,998458831,-637331811,-225258129,1627507272,832258906,-2137771167,-902233947,854815628,-835901555,520522574,205799436,1182041381,84855368,1202085375,1091023439]},{"sector":16,"data":[-1672215459,1093354515,538672758,1796219314,-788634315,-1722835107,-1822273010,-423435636,-401993529,949260684,352724998,1229300764,15483082,1350996600,198322195,-1326914340,969203809,369668996,394076712,-632803031,1914364351,178273961,546468705,-2108258266,274332908,-37000490,-1690387552,-878404593,-637447424,-1095555037,1854217703,252342892,1221252367,1012927040,1733910277,-966680456,-1261577543,25239781,2135418192,-803872203,1365671438,-910563676,367146367,2105413328,-400997226,503244098,-898366442,-2055131438,-593215892,-1599693979,-1279569567,-1835015370,585466056,1649561130,-1737777264,1057434659,-905866971,487434606,1994064091,-1531989750,1956763684,2027555134,279968011,-227311442,404752077,1216335447,386079347,1344492954,689415680,-1211968921,85222650,606201286,1378765825,-1046304817,1627014277,-1043954718,412633536,-2108883114,1224049571,-964339341,1268712721,17989780,1095165308,71115498,-1669122870,1195654600,274331296,-1601134489,-506516220,180707537,747160262,2039850007,-2063219330,-1811499962,-2087621431,-1843228150,442451770,1380764185,57929069,1365964314,1876493571,1351655571,22861912,-192370681,1061448727,-629433580,-87659732,1267558879,1650241546,34880105,2750283,-1837170494,-982980701,596455947,1160243122,840782214,214199470,1655760919,-1591398523,-2053564400,1391368004,1656025957,1935915909,1866759153,720121259,-1792181311,-2054347487,168144765]},{"sector":17,"data":[-803597050,-678275814,22675497,480481917,-1874421276,1938846611,1097128339,-819100514,-832515615,277188045,1229467480,57955007,-1784322489,964752289,864432840,1224428962,468551048,-1051854310,-1330139970,1826162091,-631777128,1448664249,-478007917,-576180205,1841178067,1966146296,1485361323,941533514,606784708,345207487,1238299012,-1166475003,-1067372334,1718071528,1117417921,-2006235019,693583620,956350208,-1713074486,956787092,-1293118500,390254368,-1326911433,1730165345,415864396,614754649,1558195928,-1112529262,1600364640,1647534289,-1094551864,-1959155404,-2113596980,-1780743940,1644170896,779274268,-525328254,25666780,977521023,-1546902505,-927353015,1332912957,1032046770,-7516152,159597959,-1304820783,611666011,88853344,1624356335,-851413822,-1246766085,-162702751,1590741359,1146128600,1808394764,-1801152364,656515645,-1423508096,-1839505088,28857412,99321141,-1946281469,1192893199,182133091,808440460,404163652,-1961086329,942442656,125174590,-1655946582,101355781,1494475573,424240398,-653387456,-1924831744,-1427168387,1801502092,27927307,1087006002,-1837301566,287559331,410615862,-1756781748,-1063087245,-1305984159,-882891685,350356811,1330148626,-1070999311,-1644776520,-449509878,-1898935570,1382105163,1189646726,-241450705,808435834,-425432743,499146160,7642784,1787924132,1421910659,1040493320,-755496186,46305394,-460404170,672391201,-463703086,125307065]}],[{"sector":1,"data":[1032046770,-503364600,164913617,1514323992,1633459856,1727242877,-421394576,975315657,193595565,-972719082,-1900798954,1510351817,762320748,-166067341,1617533203,-391842115,-1784408260,-1132591088,1588595203,391137485,-920505576,1295745387,1344829472,-674255568,1288355267,-1955394734,-968318962,-724630255,1174127288,-1876242970,-1073151586,-1380926689,109813502,1676613653,-1032140450,598548386,1043217803,-786320896,-720564127,-1111238705,91242954,359792679,1036010440,-400997226,1929324354,-677636973,-1626660295,646137263,-502969397,1040589544,1833476044,69885539,-578529706,-149794554,357066879,-1787930176,1392569416,171167233,808439985,415864624,1743824944,-1837996445,1570243152,769888329,-1726474452,-1182896507,-2001984629,-2137721975,1359544484,292126645,-117602800,442884615,976836424,-1101981652,-995040078,785953996,153691877,1110325559,-1293156066,289591072,1484060735,809894517,854143890,-985653422,1558352378,1731604374,9175081,-7451948,-403249839,248653907,-1179588493,95137969,-754292282,852656620,1615921261,-93077822,1179350595,405326043,-1038327212,342162103,551929349,-1837170452,1275207331,-587642717,330361060,-79129261,-71166976,695695330,1611309069,1596073537,297517551,1629765905,-1838018975,1553465936,2042719908,177446017,-211609378,676001297,202683593,-439212246,-485938906,-368358464,-2113746360,1865927654,1145194420,1175602770,-1347393789,-325976420]},{"sector":2,"data":[-1347305119,-1516403358,7487690,530838136,-1494344518,-1177836463,1935790537,-1403952797,986567198,-1529988052,-313433775,-1537607901,906078205,-1087977283,847287419,233143041,-915901695,1361461273,1163861412,1663324295,-785990901,394277522,-1134010600,-435446567,1229510929,-901232997,782245889,1216020542,-1928717366,827361500,-1270951249,117131299,804198481,1256851760,151123620,1346673600,2026350640,-954203196,1028820635,72223360,1564742344,-267057654,1351774959,-1669256441,2126850118,50703755,-193491958,1864895832,-1027584938,1200243126,98153352,-895645184,2080482880,-1237432603,-717153691,-972269324,-1833296107,1847323955,-297285115,98166662,701649156,1462500165,1218309654,417339213,63720326,1547392759,-74130432,-460976535,7815390,1122729342,814907428,-155627167,1224360257,1377786613,286686504,-733405409,-535312507,1236878065,1903577482,-217828256,-1876798166,1912612612,-1383134701,858891450,2027785994,1888711379,499140865,-1890492000,-1561604403,-914586175,-448695856,1496205729,-889351441,1460559950,-1024557568,746257079,-1670622184,-191709754,-521952660,475182892,1120893654,2696980,-1837301329,1706958755,962021658,1661348922,836603658,46926675,-1811211146,-1453793905,-205353324,1376582405,-1317786488,209977982,1158142599,-1584657789,1553108580,-746740163,1386518676,-2147078962,404186499,-1827799972,1427672228,1616812170,-1825918701,-2146237840,1199900985,832879343]},{"sector":3,"data":[-577828301,-1821191304,-526122898,-1473196018,-211551022,-1326925197,263016801,-1524302555,412653470,-526594985,1987561055,550747925,1630547616,590159195,903263192,1705220076,-2020336873,5705264,159744118,17121482,-1673009796,-1048292258,891784498,25906894,780481176,-384268240,-1704008634,-1665875326,1409706199,168031186,397997193,1638228777,171113819,808383652,1351124410,-1061390285,1311417026,-644783534,-546711681,1955338642,-1503922269,1221768096,-2076049206,956403973,348801254,-1324721265,75897051,-1349487928,216366336,-1443151508,1545955732,431024356,1887316876,-1785801219,2117648320,1145175016,-790797116,-1405737131,1484021949,-1473232847,274280644,-1326939880,-1811086822,1628725596,27545318,-1033872234,644668067,6197362,222815612,1091525818,-567898830,-2142951449,1683382732,-309600832,1995231240,-1682681604,-1273819101,26691769,1897829713,-99245288,808363054,-767027676,656646718,-1453764381,1232955493,886185655,1515809398,1928397087,-1559736250,-1099943409,1818011881,-1558654563,-1540425195,808398894,-1785506216,-249699454,925502580,48718942,1209869285,1508545322,-2010912493,1099800460,-1547542319,66257462,-1668024054,774307339,-1426788089,805675075,-1964064736,2057326314,109847248,1252049609,1963265285,407498913,584820784,1817357889,1417881856,645145778,108932840,2000731764,182466089,1635204960,373161307,1053032465,1501937992,-1630159315,810257044,742000773]},{"sector":4,"data":[815819013,540792237,168019136,-1529068552,-1837301664,1632771491,1211735238,-1813329858,287875877,-935556981,260059794,1915574542,597365907,-1837448523,-1356851838,449460480,-1539638270,-582436405,1102223576,-1698645984,-217962458,493033987,-1943918520,-1723036636,-1313741148,1190854974,26338593,499155262,828428707,-1337145556,821961645,1102996316,1923555904,597365907,-1837448523,-1886369151,1193638656,873343864,-450484786,19880138,57951520,-1056185747,-474993319,-1951698606,6628389,2031120155,6628497,760865308,-1693150350,2059580707,-1869184110,-902496108,808432155,1330166095,-1830745210,1622909905,62615323,-292212528,1331218028,-1013560903,202148501,-1564613012,1380205127,6628423,1533096082,-979051515,1894631462,983606430,2046971300,-1557197339,-1536292577,-840533473,42684105,36542852,1178780200,-505867695,515391588,801950597,1871914593,-1326931841,-1293088888,-1454514086,115737876,-2099539903,162083355,207686176,1846811395,-1937734972,-120583598,203566138,295368098,675832838,527004732,1628739893,-1854743578,279314596,1488007616,-1864888961,-920382384,-1305405335,52324195,-1457109866,7775452,1630831657,20772203,203590543,-1457718378,-262388892,1074577541,-1862349447,337949586,-1028083700,-1720116448,979576835,-370918612,90197706,1352143664,774297948,-759535566,-120538568,1127099450,621807266,-700106238,1446734212,710347107,-1298398057,1234656328,-596543464]},{"sector":5,"data":[696264612,-1576128380,-803270567,1078019691,152904061,989384890,-888659412,-1446944884,-1687726538,-1822272818,1337488996,1382961234,-570393600,1273371029,398408002,-1187339092,1074077001,-871634690,1597243665,1165992073,96896468,288162193,-987482506,1380738759,422103158,1629849102,672466568,819106377,1650697149,908666597,-175871161,542967333,-444857951,-1743267571,438941244,-389541307,-1240704253,-1791957172,621029448,-1338506393,-1481529414,10785066,-602534490,-1678376803,-87027219,1631623940,-435831983,314755329,-1777902431,-866507067,262774819,-1281323084,1142341867,523950908,14605056,-1387921241,146005539,2103032553,1260530947,3494414,87842826,2076299826,2136100402,-854895872,384583301,1577195844,-1668935584,1392567972,1485163787,-1174201986,1983252074,-907404267,-526805909,-1334222582,-209527384,-893549563,-1905503668,1256851927,-1893708542,-1544390656,1333234647,-425512000,-2132725207,-1989952413,190947360,-1847802974,641679492,2025872306,-116698560,-578748467,1342630017,-918129466,722224882,-1735083168,-686909532,4909577,24749286,-1873688193,323319648,-1607757039,799016750,-1538697168,390480758,1710048825,-1576312398,1074563777,-1949528381,1025611053,144949908,1365336158,-1308598770,929043489,679639401,837814761,-1216007795,-2073274055,15156015,741510006,1942833451,876626326,-2039040529,-1071623839,808464288,-1809086552,1601610904,2125448432,-972527544,1716701080]},{"sector":6,"data":[-893840122,-209120824,-1382976907,548122745,705481803,652593697,1799829033,19264900,29331518,-821222021,1699195516,220038085,825267055,-1467357009,1814965306,-2060440980,447285478,-1675938228,-760039508,84244929,1742767245,-162261226,-425396172,1854252477,103335026,-1330401002,1808394925,1990498452,-718186404,-223534599,-46856602,1158100241,-2054304379,-1634725252,109600862,1676008470,-44998297,1901611862,841594044,1477686479,1230845017,1410875417,-826239677,-324456916,521269353,-2075065313,-643853067,1053276461,1654952336,590950052,-2012609752,-1974879886,1894608969,-2069846882,29902959,-821222021,1699195516,-1176937217,1919013161,1879838749,415856195,-1117727950,-2030639834,1260822828,-2108767672,1717049888,-310214076,-1010114443,690414976,1049674533,-425440653,1611158272,1808390173,1695884821,-2007491917,2014856528,-702885249,841108070,1207679813,343947561,939923650,-1859826906,462253830,-1915112950,573064236,1508610446,1878400899,1233799609,597827140,43291092,884106272,-2063219280,-2115856516,-1570208700,1040255506,-1649335411,-1291744370,-673077455,561805569,-2122185702,-649723001,1376905271,1794946148,1093769124,438426397,6965305,530813565,191543893,-1768747493,-1366375966,802217427,-1599726641,556110654,60068340,1812780148,-1559747783,-1210984028,-964320153,623453925,2059580867,705987218,2130827072,-330611767,-2064350831,1021847156,889694582,-1306143859,-2006120950]},{"sector":7,"data":[135924682,1316667778,492760427,940370158,705447442,-640149188,-1067971684,293250209,-2079000693,-1206184458,1140561603,-555672292,-1067351570,600407972,203298054,-1445827348,1628053513,-586916807,-1661270884,34523140,956411774,-65961881,820723282,-1098865850,655198160,1301807776,-504299208,-2145660223,-638681047,482857224,-1092776932,-726499584,1175371909,247498196,-1819917500,1380935213,587712369,310397757,166529976,244245466,1289375300,1804028754,69596548,-314562011,1206221824,-1911726213,-1770858095,17445451,66261661,1671279370,1074716770,1489030649,-294792489,-716901268,-402627292,1635803824,460459858,1647122876,-2127556477,665082290,455109343,1178913107,1769977672,407115456,109490336,-884221740,116476109,-1965533033,-1844145294,1038211809,-1777647287,2013349008,-1947433262,1814039756,1545972075,436962469,-70191896,-2145853373,193242469,-91980023,-1089112509,-833976258,878735622,819075332,-1783713407,-1509908919,-1928684777,1479552984,983882827,-854895872,384583301,1577195844,386775392,-823907176,696280402,-1396513147,-1203759553,1410873623,2051778163,753111342,87177922,239037573,1553097298,-1457038277,1377640744,-738140160,-1006858678,-1572653477,1595525474,1003646388,411621895,-462648000,1585908756,-1308586431,1656538656,1990515436,1243146508,134442657,603525654,-821976312,14127837,1787924132,1415068073,274294379,1521679644,-1781778380,-1533230437,1991779525]},{"sector":8,"data":[1347571640,1805962050,1137278722,1653028683,-159099850,-393457236,1351660253,1714883652,917423168,-1916967601,583894648,-532504688,2121414007,1617500624,915615163,146454735,2114463145,130285756,-1916674148,283887480,754636892,2059490840,103965511,1464222350,-358479383,370467650,2061546051,1571820806,-1981694016,854180447,1419251439,298584929,-1139015098,-1680482043,633442036,1130627516,-2129703473,1855304077,1882053079,338245892,1713050934,-1124700688,-766994984,244890203,1537137474,-1326911409,1353083349,-1899123408,414469371,695714134,-1494313415,-206139389,-386904264,-125009488,-1688510032,763597084,1255279414,-1283134119,-1358958975,405552851,1496355795,1075399016,145592100,-2104569626,-1861827198,770398632,1561459255,179145489,-767580410,2063627008,-937343451,-1529389244,-1383394950,376078863,-1015046256,344048406,-920371360,-645905041,-370093160,1028803786,2059580899,570729858,-1693777585,-522394240,-2131474119,1248526588,-132622054,1389119335,1671715950,1790620129,296934657,-1935602528,-1864636184,-1878696873,-1261727462,238120646,-1473236945,-1962032675,-1223781846,1220096117,-804726290,1351630342,484886336,-1168389212,2007260312,57181292,774391839,1582855242,-1270732835,-24012035,-2071006164,1229268176,-1443769454,12468426,-1592158759,1102717536,1580753869,190210400,-1022502478,1613491245,760948413,163417494,848460448,2014856576,-348705164,822349333,38072561,-906058709]},{"sector":9,"data":[176394604,925791480,1376654827,995922530,682174300,15274785,628818047,946632007,1934761438,-1294662333,-429536422,-2116189985,-230024984,30083082,-1354249666,-1083072061,-1821202344,-622751212,1078541793,-1874301020,-2037221376,-982313416,753262118,-124764649,-329747450,1301037593,-1061324528,-1873541543,168002824,1669394393,-408108480,-1821243509,-622751212,1078541793,-616008284,-2037221376,-982313416,669884708,-838852654,679681419,262310225,1090959415,1034502804,-123818576,705442822,2041608398,343970388,825284546,1924381103,-926768557,741408831,1533103303,-1402482115,-821754423,176375247,-1690911347,26640532,-535246279,-150500762,1623756372,-647464933,302236918,434125372,-237785599,1655972029,1633705500,461552465,841438486,-675097379,-1179700944,-1571589453,-2089250623,-525033676,1959745048,544986783,-1177478752,1638983929,-744048815,-1217490062,-860540811,1827564300,-987216140,-1444207598,-318429149,-2113369314,1063880430,-1524316823,-1448562530,-121302774,-1173594544,526014416,353768451,-1625501667,1234286180,147700327,909771752,-1920921797,-1632433661,1288314156,1804028754,36042116,169928086,-2033027071,-841070954,-1444016364,1188750134,-1269892212,-532419802,54866824,-1601462021,-1203938463,492027907,1418316850,1400343451,-642542581,-914912143,-779815911,454056308,1721770075,691482190,-1494297037,-1134089961,295368098,839058697,1236889969,-1732617289,-912349860,-1593975390]},{"sector":10,"data":[1745168456,1330053709,774283462,-349768648,-1326915517,-767730847,-1103262915,747178707,6375481,514036349,-1698275044,-935442267,-1557797904,-2004152024,848480316,1504251520,345207341,-505749102,-1522513603,5916823,-1306801607,1164259375,-1751411609,96036649,20803585,724206457,571203644,168981522,-1608606463,-257833144,-1735124201,-686909532,88795657,1696615714,1206222080,-2072930184,-2020445002,-909845529,1644481128,607260642,-1239965556,-1537455242,1991779525,1347571640,15274793,-444792516,-1016693945,-1839979380,-606345337,1346784054,2031097635,6628497,1548441276,1546044836,-667893521,1444530348,-1506042886,-1542121932,472322642,-2016545166,-110726285,39313715,791088484,1359273116,403220869,839885425,60853284,1633360522,1145194586,-648114461,2002316976,1331914307,824813507,-1373819319,1917902495,1308676763,-2037219583,1243397863,1642949710,-1183727264,977449790,175370757,2005719474,-1926440819,588132132,-1942077568,752389495,108072072,96090960,-1735089250,1376676260,829727682,-1302317090,-523968223,1342972427,-214750452,-1531267255,-569756879,-1571867904,-781913661,-1456430987,-380170508,1089184265,1330164211,1903724588,-1369766344,466119788,403724720,1851290850,-1904601368,1553097298,-1457038277,1769552168,151041536,-1608365245,858675319,120186531,1924381150,-155016621,-1392672024,-314284321,-1007971788,-1533267009,-626973499,1955598850,811479640,-1267729491,63480894]},{"sector":11,"data":[1765147698,1730511927,19726377,206038395,1208131908,-914014510,-1601207925,1055512816,-1853566544,-661826595,1516122159,-2117901109,538272036,548582495,-238181314,1649593901,1504325011,-874108381,843091466,-1040174758,-2010321481,-609988017,193625523,-919695862,-998226577,-2060378701,1208678980,-775417789,-1741837392,15958749,-2037279526,-1066762775,173679002,-1844145294,-35005727,640223205,2013321360,1662886898,-1839055302,-2109619077,-1844770062,1342969501,957826577,-1608478375,2107953649,1641953431,1834110154,-922206725,-938683240,-1550034079,17437259,2097233685,1149604257,-2045089479,-33541848,-180198231,1288353124,1804028754,119928196,757085487,-1544390655,1976476346,1216065571,1664200388,1784747121,-1068550807,-1200376725,381694209,645727300,483824349,-929922712,266354847,-275441559,610105545,126400673,26338688,-1406845995,533907328,434636615,-1801166092,-1802672695,-1948876719,774673197,-687437776,1045619696,991381106,-1533249796,1991779525,1347571640,13769501,-1837629217,-1310384989,412783582,760822023,1624310713,1756540966,1946603706,307682199,-1286716758,906181186,1427644550,482865287,856736188,-1264634833,1994952818,-393344373,3234354,-194272318,-1227345832,-1338399723,-1176243970,1883867721,-1533120275,-1539842912,-1837629324,-1383090781,-535312632,-359601424,-2045235174,1813723782,-1274573788,-1403641677,-1043914824,-668752453,-1173533881,-2075850977,1649602273,1547394194]},{"sector":12,"data":[925411623,570446369,233143041,450348765,2038967384,1551279320,-992988840,-1135659346,-1777580866,-1456585578,1990519641,54810740,-2008960661,-1340352762,1478103129,-2138946458,-1429387673,-2087611322,854101514,-1877976742,-805103792,1427675159,15962756,1412890330,-613613692,342102550,1743160592,-1848219920,-2077819631,-2050930622,-1821239444,-622751212,1095319009,1984472504,-1550682112,-401849827,1042355705,-803393510,1549699116,1410928729,1498142334,-2001671957,2107955004,-2043506471,1856217907,1228496193,-628011638,-1667499285,15106228,739108218,1946591630,1922271868,1365323990,567639497,2021868726,-622054138,-1529398136,1696641828,1179084556,1891271388,1492412423,1715524362,1770785347,558213664,-42050983,-1828065119,-1711930052,-289487216,1413776785,-843542540,498923077,1817332938,-731916402,-1213930020,233143297,-237517091,-1176984358,306431816,-1232222792,-1427879166,-723682750,1409751234,-536768027,-626252485,1763580296,568682559,1642753573,-1399061748,543863702,1147624475,31559011,2060906824,1913369036,1974955667,-318667216,1808367870,1174839862,445103926,-396758127,-880408636,2003540372,-1066923949,216594291,543863702,-1922868197,-146275871,748221868,1620395400,1346818695,-1217490062,-339791755,51789200,-369094348,667302775,-1896443034,1553097298,-1457038277,-1458686168,2013330432,1109238770,-1594773923,1490823076,-2105355215,1790636540,2037483521,-297368191,1415146504,1400335257]},{"sector":13,"data":[833773576,858665083,-912245836,-662122136,1034632745,20016667,-861008624,-637205111,688331503,-1732617444,-1695940541,2101177289,54923542,-39577292,-1533504349,165088919,-854766870,19087562,-1907242625,660255346,214780377,-932003837,-1835144576,205811158,-919824065,-901167848,63223862,736571424,1197235470,-423528767,1380764381,-889123031,1990853410,-2029702872,-1692025872,2077885949,812536506,-1751118624,1795376152,740530377,1918384391,-2104665972,1847323793,-1178468303,-1801192028,244819096,1256851927,1085983757,-1837301609,-1089062778,-353320877,403546000,1150708748,-2037481191,-648345893,-1765973911,-1919577142,2079531166,1142514816,-1638590424,218309323,652562659,-1245502167,-2087552318,2034799472,233143040,1807584556,235879669,1641940905,-732864064,943230247,1575165088,181648978,1150414553,267327377,124796596,-1632784280,16819420,497275512,-777102014,-2052185929,-1537445038,1231898211,-217889768,342117334,526982930,-96136366,1624365457,88843202,1837107430,-1369611146,-1373587503,470038661,-861664851,-1925316246,1231234081,521471523,-533866082,1501457454,-1824123200,-1853520323,1365347329,2127756431,1380764369,-2073327797,-419027467,12001333,-293145992,951861228,1387172596,808437553,-1723921340,1142475052,-932003837,-912332160,-383572883,1147633679,1628800620,1724330492,-2054843948,1003952745,621534625,-1839050066,660355932,154609833,9535732,-1307011623,-845129151]},{"sector":14,"data":[670432003,1709142062,1060686486,-1067080639,1147155860,1543555506,228835936,1651728849,2066237765,1023453055,-1667307842,951963397,99673353,1070924177,-1735095402,-686909532,206236169,2122339512,441111552,-798222247,-2080325825,-1301900610,-1551760326,1258615939,-972713940,-1580389876,1689315462,1335503692,-733464102,-1928660129,2137117103,1389289635,14848098,-632174209,-805071417,-1607777179,133415449,-1868827494,-270040879,1731008976,1188152368,-1171123686,-438697931,-1459023983,-1258167795,18451684,-1564627793,-1368688844,1927687384,2090538131,-1859337502,436412274,208674174,1042943056,-1947311288,-801444605,1600233627,393061404,-79088744,1227958599,330177838,1780061396,7897172,-293145992,-323207188,1270434386,314302735,-369094330,1008775836,-1766497273,-2055014709,-1851096059,876877566,-60677893,907417117,-1533504485,165088919,-1106490646,12337242,-586291844,1492309958,25580196,-967833971,-82349196,1640004337,-2001554856,1212585111,-2010918726,174400657,1899067714,-1450199836,537299979,1338024742,-1499823917,26281456,274927581,1232171806,-1924046585,-393179898,773936226,690415102,-1028275419,746820218,8818922,-586291844,1492309958,1220098724,-647263034,-305842508,-2066275949,1919914922,-1190110884,-851089874,890346897,1043655557,219095817,-62375675,-1550682112,414198990,1383233685,1660432187,1771269620,-1064831327,192324546,-1922366516,-2070731788,363599830,-1035457975]},{"sector":15,"data":[2102993440,381190919,-1768521287,1009305611,-1584651160,746460096,949260628,-1249303388,176696565,1696867723,-1830545408,626155824,1064882327,-1302105343,-1041741357,-1652275855,-2111302397,-1821213495,-622751212,1095319009,-123450986,441084673,406479961,2121403541,1411879312,578732700,823793420,-1865535346,406423137,-2001434806,-706960173,1207678345,1351024386,-2002681801,1732273265,1633705544,235903569,-1661252534,1777808758,1762607281,1236906769,-1805955446,883495145,-1322004459,1484546257,-1608472783,-1547533726,-1825648650,-1435711110,-505566641,1995899704,-774652139,-1046232480,-895906403,-1447320253,-2120285384,411880434,-465409196,-1017396564,374262461,249613039,981339856,813041196,701993645,-14005967,-1201286226,-1846124441,1803631387,1617500568,-1815439683,-524106058,-290400488,-1046335610,966624406,2097182280,745540837,-851338521,-1355714717,1400026041,-924466526,1265894952,-1296276596,-895971532,-1920020968,-445381191,-1020974810,-1837448523,-1868943485,-902430486,2048612634,-609977906,-1681000993,51813778,-637529804,1165029,432590043,-1529745085,-1864636377,1612988759,1804619211,-2059060352,-208527034,-849622779,-998751510,-2050930498,353473093,-2001658635,-1855131546,1267600003,219339206,-623413084,-2028437406,-717580265,692530070,151088640,608941393,-1872551918,782511770,-1416463567,186771741,432621600,1223166016,1191226671,1449230403,1411712059,-398772581,690414972,70444039]},{"sector":16,"data":[-1396522820,1217748086,-379709400,-1672013656,1767513682,205976073,966802218,-2123642562,-1840949092,1675641646,28230479,965572749,178297940,-2059060384,1954957934,-152467303,1595926848,-825868147,1210823618,530471275,15484985,596182611,810591019,-833566291,1776139408,-1330433768,-1006636376,1227958759,330177838,1679398100,8405242,-274468232,1092782544,808363074,876204606,1131848766,-696970938,-2119267196,-178009962,-1553616664,1494245841,300256104,-1173770961,456980688,596454528,1549300990,1693549496,-2096124454,1924439860,-510520173,1228792282,-1539880640,-447741654,1759849485,-1591701180,521672530,530193513,-89181102,1321848294,1525809803,279143697,841927769,1689859714,548373569,1102859690,-1808817563,649379396,1955281640,1410894859,-589850527,-1433802535,-788411832,-1572353184,600155356,-1951385421,-1064870876,192132802,395550860,332558110,1077002357,-1135934652,1871934004,-983117618,1955297925,1342972427,-506331119,808489862,-1098344787,-788917679,-817386853,1094891432,1095210049,-1798092966,2013313408,1209443218,973296683,-125275100,-1179170347,-1945402545,1494622164,2018545680,-1861914416,-2046702840,407457936,1419488560,-2028327027,-2011598336,-1052239354,946502789,173260811,371184780,1291853401,-1898166358,53809565,-1184302838,1883867721,-1533120275,-1530780512,-1837301655,726144675,-800575916,-1014806278,1684098730,-482167422,101843765,-1269892212,-532419802,1865816200]},{"sector":17,"data":[-1207931951,-1967865150,1288313340,1804028754,19264900,-1349498331,233143040,354716460,1747195818,-515824515,2065965525,-837236152,368447371,1616813080,-1819913887,559255712,1168630822,-1073640827,219204025,-933095378,985238918,443144713,-804131445,-586517662,694677664,2013306368,1763812306,1948536855,-1830405877,1242365781,-922371333,671517518,-1858698488,1078395509,-396414929,-1726704679,-83761563,-1608478375,733597977,522076465,-1735111877,-686909532,38464009,-1373622961,-1546487808,-1321965337,-988663535,352718602,-339750328,202784144,-687437772,202408802,120931184,-1584395558,1548246300,-283946386,-2031226630,-321257327,-1912511920,-73374200,588534337,-1945392757,-695103964,824809334,-1373819319,76862483,-348083565,1372159745,-1547768116,247454827,-1866124631,-1601412060,1947420177,-946861768,8270593,-680123982,1627492246,-545766822,1540759627,-572385240,1484038397,390351628,-943332268,1222476830,1166898268,-919950091,884799093,-1693150350,-2050926469,-1510427577,827002048,1834227923,787888507,1312435876,2112042342,1427672164,-639584892,918814725,330845222,-969922715,-774018665,107611784,280309654,-117603994,1863721483,1172969289,-1533260938,-488757563,-743534911,1328948415,-1077517213,-392157534,5334192,1782642394,1885470029,-2021552321,520308369,-1945406474,-158079328,-1839050098,660355932,990455977,9928852,480481912,2088011502,1496093578,-901233150,929108993]}],[{"sector":1,"data":[211386435,-533261456,1830232587,384854137,468100117,-887462679,1528562533,-1961970497,1436070657,-1674122350,-1205549660,1380956278,-378400176,1359010304,967980180,-1914172195,-1816230896,762540588,1852902548,742052094,1449250310,-963602101,1196596157,1365330248,-1945735242,-458739648,-2142550596,301947745,294838866,1871004004,139467006,-1274857303,-1094283175,754500806,-1292285909,-1186191780,2097228104,400100837,746461336,-1374770837,-303425492,461091377,-843247066,-1985920106,560308048,-1061042626,803230287,768704181,548536462,589351622,285815969,-1531681710,1716658136,-401966340,522007120,-480795031,-1533504429,172702084,-867438928,802731020,407115456,1227566240,634599882,973280957,1588598134,-704370674,526046999,2123909970,-1533252820,-1837170193,466711686,1934574122,49096535,-201220151,673388809,-595067387,557843549,1947922682,704571212,-966030307,-427665345,-1567830842,25847102,320029594,1196564247,124068867,417204009,-1909668203,-1071100285,-1132423357,-1870744774,-2135481198,-377911252,-1238241119,-69554894,894610981,1410873623,-1212048531,1432548314,1275190310,-814931705,1962452781,-743151016,-430565336,1520860615,-1151325428,93357204,-1216013264,-2021670247,1728873541,-603290683,428664024,-1872842647,623686558,-42528868,1626446198,-2103862074,-901233973,1753031681,1954821703,875042324,-879204979,1468333645,1122722372,-187717247,-822031488,1715287956,1220461816]},{"sector":2,"data":[1299893699,-683226435,124936035,-2107195230,830786038,-2067213698,1262627573,1481640992,-909142443,-910573471,-1578671852,-1029553308,105794243,199673121,-889137354,755223920,415853347,551932494,-444923476,-795707066,-1894699637,636040703,-1982119410,1707098026,-960476154,499902142,-1508140751,-1591398496,974741789,1484796562,2123599958,-2055112255,808376134,740845080,-71485910,-1068939502,-48577578,-87985823,-796211953,-2122428110,-2114553973,-1821211166,1588458360,177370500,807884242,1108252674,2132187867,495011207,-1928699130,-80316237,-2066331814,1699621442,1891754393,872871180,370507800,13256778,-915692606,963410200,1392555849,2036058113,1962420124,1632777048,53351761,-1536912906,303997068,-1856423831,104466698,1989946203,-1938491595,-442228182,151073824,-847475119,-840736014,1564742177,-1686873016,540843378,1072497460,-1802382231,2142445570,-1050975872,-1268471314,879306275,1382290964,-916561078,828428667,-238212468,-967337847,-1255706490,49845034,-616427880,-263234658,-971460376,-897731819,-1744662458,-858045938,-1564262431,177445569,1325099423,54406820,-1536912906,303997068,-1856423831,104466698,1989946203,-1938491595,-442228182,2063664928,-95205659,927003944,332470567,1135828568,-515292438,-2010912493,1083023244,753776578,849940360,-1651782566,-159099708,405325935,1665166164,-2050930498,-1280225682,1674385208,-388872097,742041737,142254130,832106114,1457027295]},{"sector":3,"data":[26322429,-1138414603,1771005266,-1974367000,1074944460,-1168416352,-797391008,-880918044,1087028675,-1837629104,205659555,1237047784,284234679,-966239205,-1773367336,-2115157372,26322331,-1143924317,-1854491808,984178856,564247297,-1455586861,178297940,1846229344,251635750,-1035729269,-1476549447,1095209985,1237913946,-1272168423,1620462546,1338676622,962595552,1500016139,118889982,-2010772782,-768413559,-1821203165,122421652,1894149409,1624367519,1335577635,715309760,585959260,1108953545,208050579,1230014537,1557738192,-1146113565,1162634148,-1002386871,865358081,739349414,-127492016,639787664,-1299167574,-1802400764,-526299392,-525281512,-1543590608,-1362170421,643658921,1082932827,607284169,289804820,1439053571,1834128816,476206296,1908514508,185225882,1803668278,1302737176,-1539789552,-1872130054,1952717217,2133527572,1945891496,690427297,-825079759,165228076,-855622412,1823672971,1919450291,730707138,-831738733,-1503789307,51672011,1022025482,1172888766,-778858422,-972372640,-409331518,601461473,-1101437946,11149541,-2087925191,-1724604011,-1310441075,-679490231,-881616012,1175649897,937099281,819550339,-435815507,1943144971,465344048,-2138124116,389588515,1745258677,931383394,-1910204730,1485164947,-1106420149,-601432619,-2139104526,5385872,1255407800,249790092,1954834013,-367846641,-1762215859,2106677520,482803040,51463858,158660357,-1339775965,772574639,-360113868]},{"sector":4,"data":[1876558648,-1451194679,-2029966857,176375087,1105121420,-1350527845,-1550680832,2098736180,-1186397343,-808480398,1075271539,1810913986,-1937467859,-968847954,-612856375,121088376,26289471,-1672198966,726452225,586173045,-378580371,135354911,145982593,1836227611,-1836423847,-814907342,-1795446995,2130741888,-987192430,111949521,-1819640716,-987435647,20905664,-1733095011,-1693612971,-1872604594,-1761714829,417882715,1716348244,1650418511,754503813,1642809387,2072024307,-2037219584,303759952,256081552,-826035025,162141602,-997851131,2136157808,-1672199770,-1437744018,352762376,-661399197,685147989,-1533276323,-447741812,-925729209,-1667892608,-27570454,1183164774,-2119868056,-262760311,1311380849,-2092648863,-997520548,-2010321641,2117314831,-1535785656,5426759,-1837170447,2089163939,-759542245,-1948156528,-1046344863,-1948279658,3525322,1154747587,94708008,35952013,1094812238,92057828,-939345870,1671449729,541140837,1046016672,1380870408,1016238178,416493829,896953684,1772918764,-1326951715,-350040274,1111109184,-1199537540,1763188930,-854260189,-1548960520,-1925772208,1976238151,-220457254,1220116442,-1837170375,383153286,1118449700,-1355680899,1837152280,1678154353,205838686,1119531245,-2056367745,654415770,-1149798335,824008352,-1017421503,674200080,-1536591536,-1035170780,356630691,-637599193,-316158615,-1738865096,1227566240,-1331271274,1484040494,584220179,-626802144,-1280225682]},{"sector":5,"data":[-1837956808,1906029762,785720800,-1038743925,381306301,755194986,-1608944444,-1623939227,-91196748,-2030929918,399281132,-1452577612,594087717,257712148,576740928,-1837079463,416815664,-523169152,16524588,1821987995,-492073875,-2009894779,1502642330,1385011700,1510363206,-673683345,501301074,135907390,1053968616,-2092825467,559265487,38535460,-868211481,637000336,705447506,-1234919109,-493802994,1483928620,-1871570878,38535656,-1911938073,-1975874172,-2059036694,-628983864,-2002868925,-1342157245,-1992024875,770146825,-642507795,29014831,1469776930,-541876663,814241801,1859661973,-1184331406,1392571721,-406210304,-953078170,443679585,1767715218,-1709707247,-1184416365,382306344,-972689937,1143008312,338274081,784340096,-1566035854,97360448,1488197492,572699608,432628322,-1424645025,-1172220464,-362194481,44522017,734470375,-837141707,696261458,484727936,-1866423573,-1919290279,-2119384512,-1389350865,1120592263,9962104,-786845520,1544847458,7148041,417615726,-1791981360,-2140836311,1221245316,-1071628981,1858103955,-1303427250,3817990,-1563835750,48448234,-951646989,1898018258,-342754619,1795812185,-417682542,10944553,-1567864213,-317721511,998491653,1585941754,1243854098,796994789,-472698320,109906755,654767479,336057294,668274718,302639415,292020340,-1138753227,26513812,66302605,450158346,1684651804,647330370,688361677,2013308160,427067090,1780857870]},{"sector":6,"data":[1506458957,1633705474,-552815525,1278975768,1131958300,-761297836,1407722514,805649536,-1831258197,-201247267,-1542510183,1947377804,-1886108898,-1872388323,-1593825017,-2033027072,1585966188,-113145279,-1609466621,1092490340,159582349,898758224,956689285,2104151369,-1706459740,-527824819,173082137,306072326,40173822,-1598315725,590612089,1255731528,1119915406,924902748,1206222081,-952755349,725949128,481695998,-739343864,51651634,433794106,-1532819421,-536676042,1951138063,1378169547,-2144796643,-804726290,791789081,-2093833541,34914276,-1773448595,-1802269337,1611284618,-1417829058,1652339702,-989149858,1699621382,-1094765416,861991377,-1723500637,1117556277,-7263651,110912278,-1059388985,1309636619,-1641958912,11935973,-1290188160,-477356578,59645204,-266960713,2097585182,-626551261,-1533422521,-1130329904,684071227,1862736955,1038101760,-2033712584,-1533504389,-646409953,867350957,-1112529246,616662886,-926431648,428495889,-1035451804,-253776643,491305367,865399810,423345255,1132114094,2066755692,31309251,-448265593,696282962,-1773745531,85052427,1818031260,-1313746594,26514290,877801036,-1973395792,1219894064,-1632427838,462130571,3680535,-1919677613,580392748,1310935814,555041057,-816224587,-305805755,689380123,835406129,-1799330379,1690918965,-1653186718,352787421,1221609920,1198428970,80306754,-120578929,806392089,-2029920899,554067200,-30404543,-593208910]},{"sector":7,"data":[1146398229,783476834,1667280389,-93572770,42607027,1207066656,1741278281,834691010,120465071,-664997647,750434009,302620696,390001718,-1806268378,354654596,941593046,1933479939,1637223536,-1864303691,1941181646,1549304737,-572464369,1186109648,-539976812,342996402,1380898025,2130822400,1538544073,1548253814,1282721888,-164945063,1665645197,1161642583,221339684,663851134,1898018129,15925898,-1148481034,1303826784,534415270,1300908345,-1676680008,166986204,2630425,681119431,-725270337,868272005,1126183827,1735431014,-1978537402,-847443701,-1259412325,1175872804,1118447138,697993855,-1996388672,2042719832,-832270207,882472525,873877580,1963730409,1340498385,-706464400,1452321897,910165148,834810278,31834362,-969758343,-1832565723,1296613170,2054679,-1110368856,1150511479,-1614413627,1649561223,-1992758384,1212679592,1663499722,9736532,1080318319,-901221816,-783430144,316054388,-1275057673,-2037221375,339468183,838637467,1128556,1214547677,747512872,-450518356,-1272016367,168527873,774261458,1188172342,1959952396,235604498,54099971,1023424487,-955292252,651727174,828423600,-1112479569,-1275912026,-1327294441,825241473,-63374160,1477724754,-1577194993,-418692852,1220051439,953564200,-629092080,1912781761,-1376680876,889612018,395556087,1046627359,-928867440,1103594138,-209642304,-967996773,27490358,384687542,188102454,210423072,-1076257708,1179784983]},{"sector":8,"data":[-966584496,-2145879060,-2071946253,-1097735570,-1993936697,982357386,1317482312,30539858,-1247571331,560110477,557535937,1713572259,-1922003752,235133725,-511359737,-1751285304,-1890286523,281052849,-979067680,80880673,152674705,-228757632,226706807,595097985,599036238,-326030685,446216795,590647872,-377999327,-509305726,-564008338,-2053878713,1794935488,1623437313,-1541656823,1289596196,-2122751737,-877236347,1770274,-649674906,1381865782,-784471234,249664951,-366827121,-1821187262,-207911916,1321134861,411611368,396102508,-1219907708,-1609806658,102930583,178664308,-1802400536,312475960,1763384902,-1995562210,181735697,15175794,-1103850473,46959538,-368840586,-587099835,665129394,-783778860,-918502259,337916523,-1842071010,-1407723900,-1943734064,1902209084,1364184224,-209642304,-753041253,1304484745,1327354579,571203666,-579749373,917970102,-700156858,-120542185,-158233052,-473771912,-1549887423,9011348,-1103850415,46959538,-1452802698,-1270383278,1155274893,582194700,-1545387711,-1339644856,-1048090947,1138975012,1996918027,52562933,1076061371,2705395,-1796407168,415874612,1338039049,571203666,593804035,-1799664566,-1608492110,1477693721,-532434082,1594907418,1025618612,-844328630,-293549838,1020266713,-1987022274,496362752,-670126130,-170194476,-1443737057,-64778439,557515114,-710836927,1819162892,1496296585,1896411297,-2118639895,-1806434661,-150969472,2117808426]},{"sector":9,"data":[944564899,-1223454269,-1874182677,-247905410,383378,1751312592,704105858,2013287168,-2024503598,-1502488458,-518794515,-1899495005,878359277,991401585,633068961,922768046,-1546487807,-1848574360,-838828636,530880655,1089364600,1076975860,-636676027,-483031348,1235477271,-619104564,-244932592,-1289715079,-1953657954,775304922,1351770706,-593752092,-1920886524,-1876371336,341981207,2076088087,-528030044,-318015478,-318015435,62500657,12935377,1167502530,1219104897,1979926097,604674199,1017600,1092852166,1747493442,2145436186,1499005983,-901430182,2097188160,-1463966830,-1533505586,1258718923,721850661,1639690853,545800625,-1693125789,1819063511,600155228,1444428183,-1121645593,1092879126,-976861573,17645770,1176081901,-1153345788,845680032,-1033872294,-1678500418,-71149445,-477834138,1909590158,167446471,1146588299,364530016,-1198499136,77397257,391302142,567617024,-1539935708,1699527456,1614837511,545430126,-1340346600,-487583655,1200245049,660647013,1919950023,1548548151,35895906,11456589,968109943,-1491993573,-2131835319,-582936128,826278965,-1302317090,1925505313,-503261296,-74069424,-1862065589,1075401247,1996744942,-1661723298,1718877655,-2075809820,2143405895,-1473184430,2093469917,-1672182639,397963222,461452028,-1949393567,1159992582,1127440420,-1802287594,1191150182,26322429,143339253,1853919119,325082702,1603302100,1206221312,411534707,874259058,2109962649]},{"sector":10,"data":[-888665454,-505624575,300594788,557845642,1690126787,1614858933,216365568,1642159273,-1528753978,-2121391969,-1332961248,1841939129,403973076,-2000158301,1500500592,-2054131155,496324864,1238795982,333536280,255578732,23788579,2101420347,1577607848,560096209,-1693775348,-703894750,1795325032,1448612969,-2013917721,-1014598877,-817837419,1137278720,722758458,137959444,-1186394158,171494527,272966436,-1473228664,1661502422,187203273,-83553844,1376854603,866717548,-920604036,-899561113,-731033012,562710088,248158326,-2117893906,1365352464,-955251027,827391122,-769256526,2004928574,510166124,2135439647,1189444352,1972463481,142831905,1044909374,-1835282955,1828918941,45615519,-400391224,-1944059202,-1826947912,-2083726376,168002856,1130682803,1086981570,-444792614,-749625785,2024386216,1925138805,-209567338,-750239740,1219079848,1166812200,1008854350,1565632419,2007010483,-385481100,989930152,124911655,153710286,-1409964549,168030978,102620301,580598584,-1739294422,-589482588,815502374,547686768,720830914,973332529,-703894750,-972719000,203536387,466504274,-961365524,1946492377,-1536277946,1547710766,1926219360,-71261605,-2062362547,480192551,-540491407,-2127853595,1820841855,-1685826468,-2089703009,845712650,-1033886629,-1300383325,-1086317991,456731212,-447040772,-1726142170,-1678343739,-2013256272,-1897662460,436160014,-1031642579,92031153,631834854,62684680,-1621401333]},{"sector":11,"data":[176386473,216981727,555600247,94082597,1823804380,-477078040,-1861559519,1581275088,598585440,-2022848018,-2078218894,-1932904959,-223421067,374835828,-1636403956,2021556718,-821742115,-2055112255,-1538593156,38993978,108291209,1888002322,-1557812226,-886436848,-760192665,247540847,3615063,807059988,615820939,371029093,355874327,83051032,-1867063231,1915663250,126370225,1630362101,1634165702,86633305,-1121623082,165283606,781855916,-1189804364,-442440245,-1744662494,-888977853,765048099,-69844890,-1888217867,-877015942,1861394464,33292370,1363600720,835720577,-1437535576,1019236425,575359910,65273873,-279207131,332550612,-1251699258,-162193728,1914183815,963223800,-758461854,-1888280286,-1422593933,453138190,1839194359,1527692065,-783670373,1470516662,2008990272,-1839050203,690467584,-1688658313,1725010778,-2068719539,1508746359,-2110919021,1723175742,-497516468,-342289355,-1903859150,1950925601,2113210291,-667926388,-340844220,1784642608,20990057,-1458772613,-2021552038,1693558552,565551322,1395538770,-2013183382,-736611717,-1873143611,-977178212,684223583,1380878140,-145714590,-1425259589,-744665731,-1256913382,-1813825503,2107066645,463895987,-1240688363,652176430,1289759356,-214260607,596148379,526014416,789096709,-1569630026,-1943784945,1226118048,-2051722036,1122730315,1900177953,2098530247,-1918028110,-1533276609,-444923807,-1292348602,-1873129363,1914210177,1277862966]},{"sector":12,"data":[-910237252,-2056977403,913500366,814882980,1840656264,-533180856,-347264371,5418533,-1837170312,1642864547,1377940934,54969202,-1960732675,1746687656,1786111874,-1735167422,1310939522,677913764,-367471848,2021540161,-1861995043,-798808353,85940823,1720912553,1288345027,-149009838,1872060776,1673180073,-1531526592,1651645479,-1225837911,1656992879,-980016717,-807101491,-1878434683,1935574836,2047086960,-532419830,-167435851,1093930699,-1802418970,967401986,-1448044922,1147682160,944654381,-1229987104,-1481517754,-2137730079,-904527768,1011775372,-962448584,-1897697150,-1823853255,489691694,839815123,1637883995,-1743297088,-1899820766,718660664,-1373246643,6553682,994452842,1971879,18516942,965665633,1967692604,-384952307,-914323515,-2021555604,1616811009,-1903753848,1844634680,-678234842,6029353,379818623,873333534,-434082318,-102730826,538927668,203233952,252383309,-456560356,636177882,1006654126,-1550680319,-474995169,237571851,1009537710,-1859382261,371196564,-2082260962,1682691812,-1572666604,-887303480,1463426594,1330131241,1634268958,-1280741483,-1035967558,482853794,-1841923726,-68809133,841692748,-648254439,1442335934,1208195520,-2137263281,565522570,248247813,1155940660,1895863441,728517443,1009565257,-922237071,-1248773204,1962436972,7348453,-7419338,579301656,-113128921,-926816500,517005535,-388970266,514418786,-887227189,5418533,-763887265,482745763]},{"sector":13,"data":[1246903905,251547065,-987836192,6628363,2012229512,684889644,-2025441673,487559493,-1533504469,-1267003530,-290665936,-1473195880,-1049551713,-1829598776,-68809133,841692748,-648254439,1442335934,1224972736,40816171,-2066431448,942463767,312018897,-939438010,1770033370,241796461,-1897662332,419382798,-664132745,-890638125,906063936,-1085138486,1046551750,1395538770,884507519,-2000700409,746057775,1999164054,1166493238,723324817,-89876332,817134479,-640370742,-1331678755,1327767981,-455067506,1938289007,354133629,79039641,-281908938,1880440467,-428072953,764158688,-1300414136,555060675,596233279,1843658792,-1254866872,-470268795,-12185970,1201290028,-1918028148,-1533276609,1248526463,1864598924,-1905139389,891226171,-20214124,-2141045828,-974373752,552351942,118559842,-2107659106,-780045115,-1268838303,-1522655054,-2137719962,1249902945,-531412084,-1573670300,1723707430,1629798791,675922913,799031365,1930839088,2075226577,-510816955,-847188258,1246922136,249584146,-1060243136,-841111504,1215985179,839089244,-179709057,373575824,-1317940877,-943307141,206606464,1417271784,-1909087080,-542175953,-151550460,650487039,1770323934,-172877072,599024794,675571136,-1125380784,-816246591,-305805755,1192893211,608182718,1351123127,-1530202503,482747333,1458969438,1803497390,-1979176572,-33840151,2013291296,-618814510,-1944271263,1715976925,-2107318416,-406703486,-586073740,-2146950215]},{"sector":14,"data":[-1443167343,-63191547,-220617666,11314332,-548936325,445192209,1662034293,-760094365,-41754349,-184446555,1571909414,590747373,876248616,414368142,462157398,168030994,760823950,-49575293,510223361,652151347,1376711817,-553612544,70327445,-418626770,1745688599,1293577224,1496461500,-1932443546,1571872232,-489039696,562569612,1435506802,398610467,403997509,140642467,1376666376,2097222912,1091323877,-1664774133,1623739882,-1015631004,1628734306,-1878310644,-2071887164,2107935534,-1868992040,1228475425,-1367522678,-1387175584,-1140548853,1496453313,144914458,1124599906,-200060388,-733714231,-168585460,-2144665224,1677851665,1263958336,-1877395607,-2092605489,-1943267022,674121376,42080450,-2137734384,-1806630716,2128985652,1178770312,-435817327,1297747467,1751117515,-2000437405,-1939067352,1810019048,-252758167,-1028378761,-1190962525,1288353124,1261794130,-1892412892,-1501740639,1454662677,-1961799271,-1182283614,-840514977,-1198493033,1189444096,-800587159,1942062220,660983191,-2064234701,1357390733,-737765353,911688686,-700156858,-120542185,1258427426,746206825,-1821192700,-929856492,1417681663,-626029436,-159577853,-1844358734,198893357,1087926668,1037202056,-1279689885,1973738597,1262684416,-1044633365,-1286765453,-1787638455,-2006861039,-1570610399,92872983,-2110640637,1193968326,-947567696,-829613028,-1798621679,-738173568,1152945994,922798776,-524174240,1752734612,439084994,726447671]},{"sector":15,"data":[1700537004,1588599552,692580448,-2147441920,1819774026,973301892,-703894750,1175616616,971822103,-1153230231,406856548,387238651,1500792374,1789044081,965516148,173082201,-1911336437,-951508168,-1091821796,-951189803,19071017,-266824241,-906306336,-1854608026,-1828550011,-1899896166,-1296975994,911955553,101331531,92604444,-298686075,318025689,-384826554,-533164349,-1222274070,-1976528166,87895699,1324392821,130511132,439195988,546294874,873267415,-729295339,478639001,651542897,371761948,870908712,2107908966,-2072049405,1493050117,1981891158,-894098228,-738177728,-1544122806,-1408088518,1573834173,1382880192,1930824817,2075226577,-510816955,1840418270,-1173799372,-1121630023,1092879126,-976861573,17645770,1176081901,-1153345788,845680032,-1033872294,-1678500418,-71149445,-477834138,1909590158,167446471,1146588299,364530016,-1198499136,77397257,391302142,567617024,-1539935708,1699527456,1614837511,545430126,-1340346600,-487583655,1200245049,660647013,1919950023,1548548151,35895906,11456589,968109943,-1491993573,-2131835319,-582936128,826278965,-1302317090,1925505313,-503261296,-74069424,-1862065589,1075401247,1996744942,-1661723298,1718877655,-2075809820,2143405895,-1473184430,2093469917,-1672182639,397963222,461452028,-1949393567,1159992582,1127440420,-1802287594,1191150182,26322429,143339253,1853919119,325082702,1603302100,1206221312,411534707,874259058,2109962649]},{"sector":16,"data":[-1962646341,264471523,-338564143,-338564143,567102132,1929529018,10676483,-1968977780,8429570,1572489532,-1729202430,88197259,-1567621112,-2118253932,43826944,748791027,868257280,-943705089,-16612602,375295,41860752,74819315,42155657,-2147436209,942059250,1206285573,-1074295889,520487652,817104654,-544529971,343016252,1547479724,792463476,977011828,-544537995,-327827446,-75423986,108331748,42272454,-74739711,-1191021634,-208666613,48544420,-1207793989,567102208,465179507,539906,521016181,567085492,-850591816,-850545631,-850611167,-2059501535,-457506814,-1162513406,-1590820311,-661782484,-2093577426,-97534,118411380,-1409096513,1950039210,1975519751,-16650,-2093577938,1555058434,-12240858,-2144991116,1949302653,-544495103,1342141929,1864397941,1701650534,2037542765,1851867940,1953459744,1852401184,1768300644,1361077612,1230192962,1480928835,1329865797,1701650515,2037542765,1701994797,1696620910,1919906418,1836008228,1684955501,1852402720,1869881445,1869357167,1361340270,1230192962,1480928835,1095761989,4016212,0,660,-1,-1,1145384704,541937475]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[654970151,538976288,538976288,538976288,538976288,538976288,541204561,544415841,543367273,541925408,541990991,542711877,541925408,541990977,541532225,223486021,168634122,538976295,538976288,538976288,538976288,538976288,2037411651,1751607666,1126703220,1766662185,1936683619,544499311,1886547779,1952543343,544108393,809056561,220662285,1411393290,1293968744,2036690543,1851870496,1919248225,544434464,1701847137,1852797810,1713400929,1851879017,1830839651,1734438497,1948283493,544498024,1869376609,2032169847,168654191,1869881383,1953391904,1629516389,1970234211,1948284014,1936613746,1769235297,544435823,1818847351,1920213093,1768645473,2032166766,544372079,1868784481,544501365,1634492770,1936024430,539429389,543452769,544499054,1953656695,168636008,654970151,544166944,544109938,1936287860,1869770784,1835102823,1919950892,544437093,1718184019,893791092,654970158,539429389,1696624468,544500088,1935753809,539779945,1936028272,1816207475,1176513652,777527340,220662285,1411393290,1701257327,1701322868,1864396908,543236206,1230192962,1701519427,1919907705,1830825060,543520367,543516788,1936880995,1948283503,1752440943,1701519461,1919907705,1851859044,1919950948,225669989,1176512266,1919885361,1768710944,1948281699,1914725736,1952999273,1970236704,1646290291,1869902965,168636014,218762535,654970122,544499027,1634100580,544500853,1635017060]},{"sector":4,"data":[1887007776,1869881445,1953392928,1919248229,1919903264,1935762976,544367988,1919250543,1869182049,1141509486,1313424965,759242836,218762586,1968383754,1851859042,1969627236,1769235310,1679847023,1634493285,1769234802,225668719,1128612874,1163018572,1112888096,1634882592,1667330926,1852795252,1835890003,544830049,1702127912,220800365,1128612874,1163018572,1112888096,1698909216,1919251566,1702111264,690254968,1162086925,1380011075,1431511109,1666392130,1819045746,673214549,1141509417,1095516997,1394623826,1394623061,1819243107,2003780716,690495598,1162086925,1380011075,1431511109,1850286146,1634301033,1702521196,220801056,1128612874,1163018572,1112888096,1953384736,673214322,1141509417,1095516997,1394623826,1394623061,1802658160,1632658796,543519605,168634664,1279477060,541413953,541218131,1953391939,673215077,628584306,1702109228,690254968,1162086925,1380011075,1431511109,1631985730,1132028782,673215340,1937010532,1109404709,1735091041,1853190002,220800356,1128612874,1163018572,1112888096,1634683936,1635013476,673211764,1141509417,1095516997,1394623826,1394623061,1399158369,1702125940,220801056,1128612874,1163018572,1112888096,1852132640,1937331061,544040308,168634664,1279477060,541413953,541218131,1701536077,1801675074,673214581,1141509417,1095516997,1394623826,1377845845,1869902693,1631741298,1886743395,220801056,1128612874,1163018572,1112888096,2020557344]},{"sector":5,"data":[1867655200,740634999,1819231008,539764017,846688082,1126181925,624061551,1141509417,1095516997,1394623826,1310736981,1868002405,1382577266,1919905893,690495604,1162086925,1380011075,1431511109,1682251842,1665234025,1853189987,673215348,1141509417,1095516997,1394623826,1344291413,1953393010,1886152008,1701734732,1701324832,690253932,1162086925,1380011075,1431511109,1682251842,1918137449,544435809,1702127912,220800365,1128612874,1163018572,1314211360,1330205763,1984110670,539260004,690182184,1162086925,1380011075,1430659141,1230259022,1126190671,611611510,559425568,1141509417,1095516997,1176520018,1413697109,542003017,1953068611,1479024676,168634661,1279477060,541413953,1129207110,1313818964,1852132640,673195381,1920103747,1768908867,626550115,1632444460,1869103992,627401577,1751326764,1701013871,740894756,1702119712,2003784301,740894757,1702119712,1819231085,740894757,1818585120,690496624,1631723564,1685015922,220800357,1128612874,1163018572,1314211360,1330205763,1699160142,1920226164,610758249,1869752352,539764087,627863395,1953701932,611611233,1852121132,539763812,628320598,1632444460,220800376,1128612874,1163018572,1314211360,1330205763,1918115918,539258217,690247720,168626701,1852785447,1851880563,168653684,1397641027,1381245012,1025525077,221326624,1313817354,1176523859,1163086913,1310735648,1411404879,222647634,654970122,1919251285,1717920813]},{"sector":6,"data":[1684369001,1887007776,168653669,1162893652,1667449120,1953396079,1701869908,538970637,1767120928,543517812,538976288,1092624416,1414733907,1196312914,840968736,537529648,1092624416,1701869908,538976288,538976288,1394627393,1313428052,539631687,537529649,1142956064,543388517,538976288,538976288,1394627393,1313428052,539631687,168636469,541347397,1162893652,168626701,1162893652,1667584544,1952739951,224751737,538976266,1952531488,538976357,1396776992,1381258016,541544009,221782058,538976266,1717916192,538976288,1396776992,1381258016,541544009,808525866,538970637,1698963488,538993523,1092624416,1414733907,1196312914,891300384,537529648,1176510496,540108649,538976288,1142969153,1279415631,537529669,1176510496,540174185,538976288,1142969153,1279415631,1158286661,1411400782,222646361,654970122,1651469383,1981836385,1634300513,1936026722,1229195789,1213407309,1145393729,1667457312,1953396079,1411395880,959520847,1092624425,1665212499,1853189987,1886999668,538976357,1395073056,1701998452,1752440947,959520869,1667457312,1953396079,1953068064,225666412,1296647178,1095258912,541345106,1869377347,1701990514,538976358,538976288,538976288,538976288,538976288,538976288,538976288,1866671904,544370540,1717924432,1852142181,168650083,541935940,1380010067,1663059013,1919904879,540026995,840978260,824192048,542069792,538978612,538976288,538976288]},{"sector":7,"data":[538976288,1718174759,1701995878,1126200430,1919904879,1141509491,1394625865,1163018568,1666392132,1819045746,1933668437,540092525,924864340,538976297,538976288,538976288,538976288,656416800,1702064961,2037146221,1851870240,1734440295,1867653221,1852404853,168653669,541935940,1380010067,1394623557,1819243107,2003780716,1836269934,1411395880,691478607,1229195789,1213407309,1145393729,1769099296,1917154414,1396777074,1414416672,1380271941,538976288,538976288,538976288,538976288,1344741408,1953393010,1696625253,1919906418,1634493984,218762599,538976266,1178944544,1195725600,807419168,538976288,538976288,538976288,538976288,538976288,1411393312,544109173,543581807,1282433347,745235311,1836404256,1801678668,1684955424,1919111968,1282174063,225141615,538976266,2036681504,1734437958,540876915,1262830928,875573544,168634679,538976288,1162563408,875573536,639642679,168636488,538976288,541476164,222774611,220209162,538976266,1884235552,1830841957,2036690543,1851878688,1919248225,1952539680,1768300641,539911532,543574304,1679848553,544433519,544501614,1936291941,1852383348,1920295712,1953391986,1919509536,1869898597,221018482,538976266,538978080,1869901671,1920099616,1746956911,1818521185,1948283493,1919098991,1702125925,1684955424,1768843552,1818323316,543521385,221148265,538976266,542002976,1330795077,1330061394,1159745364,1919906418,1885434452]},{"sector":8,"data":[538970637,1347362848,572542533,1701736301,1633955449,1176511092,1226854991,1414877262,542327072,168636707,538976288,1397705795,537529669,1327505440,1380261966,542265170,1330925383,538980384,656416800,1702061394,1919230068,544370546,1684955496,225600876,537529610,1226842144,1769236846,2053729377,538976357,538976288,656416800,1953066569,1768710505,1881171322,1919381362,168652129,538976288,1920233033,538976367,538976288,538976288,538976288,1936278567,2036427888,1953392928,1969516402,1869182051,1668489326,1852138866,538970637,1699553312,2035512686,1835365491,538976288,538976288,1411850272,544434536,1948283753,1830839656,544106849,1735357040,225272178,538976266,1280262944,924865103,540024876,538976288,538976288,1816340256,544366949,1701995379,1629515365,1696621678,168649838,538976288,223562819,537529610,1142956064,1394624069,1025525573,538980384,538976288,538976288,538976288,538976288,656416800,1936020000,1701998452,1885422368,1801678668,1968054316,1668238445,1851859051,1666392164,1819045746,1801678668,1635021600,225666420,538976266,1263489056,808525893,539768628,1182360907,1936154988,538970637,1162092576,1163075654,218762567,538976266,1145980192,168626701,1917132839,544370546,1684955496,544367980,544370534,1735357040,225272178,1226843914,1633951846,1713398132,543517801,544501614,1853189990,1663052900,1952540018,1851859045,1852383332]},{"sector":9,"data":[1634301033,1702521196,1847615776,1864398693,221144430,1920091402,1918136943,221933665,538976266,1279611680,542393157,1163084099,1381123360,538970637,538976288,539435040,1679844937,543257697,1701603686,1953459744,1970234912,539780206,1634038371,1629513076,1763730542,1769236846,2053729377,543236197,544695662,778399343,538970637,538976288,1094918176,891307347,537529651,538976288,538976288,1126178848,1163087692,538970637,538976288,538976288,1866670112,1349676908,543581554,221323325,538976266,538976288,538976288,1380927008,1025532192,1411395872,959520847,538970637,538976288,538976288,538976288,1667309600,1853189987,694233204,1953059886,1025533292,220340768,538976266,538976288,538976288,538976288,1667457312,1953396079,774463784,1886999617,540876901,168632866,538976288,538976288,538976288,538976288,1868784481,678719093,1143875937,543388517,572661821,538970637,538976288,538976288,1162747936,1629508696,538970637,538976288,538976288,1632837664,1951622518,224752737,538976266,538976288,538976288,1397051936,222645589,538976266,538976288,1396785952,875700293,892477484,538970637,538976288,538976288,1917853728,1165258345,1025536626,1431458848,537529669,538976288,538976288,1109401632,941652079,858857516,875634732,959848492,538970637,538976288,538976288,1698897952,1919251566,741421344,1917854240,1702129257,1869488242,1701978228]},{"sector":10,"data":[1852797043,1735289188,774778400,1701990432,1394635635,1701011824,544175136,1953394531,1702194793,537529634,538976288,538976288,1461723168,1162627400,1263421728,539253061,572538428,1461729826,222580293,538976266,538976288,538976288,1229477664,1226851660,1497713486,1044127780,572531232,1163337786,168641614,538976288,538976288,538976288,1431520594,1310737741,223631429,538976266,538976288,1396785952,1279598661,168641875,538976288,541347397,1162626387,168645699,538976288,1431520594,1310737741,223631429,218762506,1750345482,1868963941,2003790956,543649385,1635017060,1717920800,1936027241,1701344288,1819239200,1931506287,1835362403,1629516645,1818845558,1701601889,1634301472,1701344288,1767992608,1701650542,221148526,168634122,538976295,1919120160,1679827054,544437359,1918984736,1633820704,538995555,1953068064,538994028,1868851315,1663049847,1667854184,1663049829,544436853,1969430560,1801614194,1752375328,225931108,1413563402,741351489,538976288,538979383,892411936,924852268,538976300,741351456,538976288,539768608,538976288,538979376,538976288,539768113,807411744,538976300,807411744,1094978061,824197460,538976300,539769120,824188960,538979378,538979379,807411744,538976300,741416992,538976288,741683488,538976288,539766816,538976288,538979383,538976288,1141509424,541152321,538979379,892411936,538976300,539767601,539767072]},{"sector":11,"data":[538976288,539767857,857743392,538976300,892411936,538976300,741351456,538976288,539768608,538976288,168636448,1096040772,539768608,824188960,538979378,741683488,741613600,538976288,741617952,538976288,538979376,824188960,538979381,824188960,538979381,741416992,538976288,221257760,654970122,543516756,1819045734,1852405615,1633951847,1763729780,1667309683,1818326388,1629518188,1667329312,1701734760,1851878432,1734440295,1919950949,1634887535,1869881453,1931938317,1819243107,1752440940,1668489317,1852138866,544240928,1679848047,544110447,2037540214,1935762976,1937055860,543649385,1229070433,1663062863,778857569,1094978061,639648084,741884488,825247782,810034732,1210461238,640432450,741421128,875579430,1112024620,1210461249,640435508,741749064,927090726,810034732,1210461232,640435267,741355848,1111705638,1094978061,639648084,741884488,825247782,810034732,1210461239,640432450,741421128,875579430,1112024620,1210461249,640435508,741749064,927090726,810034732,1210461232,640435267,741355848,1111705638,168626701,2020557351,654970170,1917067296,1629517665,2020565536,544108320,543516788,1701995379,1646292581,1702327397,1948282469,1730176360,1852143209,1869570848,1852400754,1936028769,1393167662,1109410389,673216623,829910866,1866670124,539767148,846688082,1866670124,539570796,1413567571,168641353,538970637,1866604576,1684625272]},{"sector":12,"data":[1025534068,1819231008,539828274,829189955,824191776,168626701,538976288,1094930252,1377846612,741439343,1819231008,537529649,1344282656,1414416722,584720928,1414733883,1196312914,1866606628,1684625272,757098612,539767328,690144290,-1088282565,168639266,538970637,1329995808,543236178,1867653181,723530103,1411395872,1867653199,757084791,168636704,538976288,538976288,1094930252,1629504852,1866670124,168636780,538976288,538976288,1313428048,-1289609132,1394621218,1162035536,1866606628,1684625272,757098612,992555552,582165024,537529659,1310728224,542398533,218762593,538976266,1129270304,541414465,846688082,1866670124,168636780,538976288,1313428048,-1071505324,1394621218,1313428052,1109926983,1767340143,543716452,741482541,583279136,572537641,221979353,1158286602,1394623566,168641109,1126631949,1702129253,168639090,1126178855,1702129253,1702109298,1864397944,1752440942,1768366181,544105846,779579250,1431505421,1698897986,1919251566,1869752352,1948265591,611612773,537529641,1277173792,1413563215,1869750341,874523767,539828273,676218188,1954047348,790636836,168636960,538976288,1313428048,1702109268,992244856,1313147405,1431511108,218762562,1984112394,975467620,539429389,1852785440,1953654134,1679843616,1818391919,1919950949,1936286565,544108393,1651340654,1948283493,543236207,1769108595,1461741422,1330140233,1629508693,1634036768,1735289188]},{"sector":13,"data":[1634759456,221144419,1314211338,1330205763,1984110670,539260004,690182184,168626701,538976288,1952740931,540876836,1212631378,1395139668,673469012,740893528,1313164320,1381258024,592980004,757082409,220803360,1158286602,1176519758,1413697109,223235913,654970122,1953068611,168639012,1126178855,1702260335,1629516914,1852383342,1701274996,1869881458,1931501856,1852404340,1230446695,1431259220,543236180,1684104556,543649385,1667330163,168636005,1129207110,1313818964,1769358112,673195124,168634712,538976288,1953068611,540876836,1212631378,1395139668,673469012,539765080,676218188,609375315,690575400,824192288,1158286633,1176519758,1413697109,223235913,654970122,1953723971,168639012,1126178855,1702260335,1629516914,1852404512,543517799,1667592816,1869181801,1970151534,1919246957,544175136,1953701985,1735289202,1414092576,1414877000,1814061344,1768186213,1931503470,1701011824,1430653453,1230259022,1126190671,611611510,559425568,537529641,1126178848,611611510,1377844512,1414022985,1414735908,1479025746,539765025,676218188,609375315,690051112,539828265,168634673,541347397,1129207110,1313818964,168626701,1768178983,1667449204,1953396079,168639091,1411391527,544434536,1948283753,1713399144,762080373,1701995379,1696624229,1869900132,1752637554,543712105,1869376609,2032169847,1948284271,1751326831,1701277281,1970239776,1667309682,1853189987,654970228]},{"sector":14,"data":[1769218080,1936026740,1684955424,1936024608,1885958755,1852795252,1393167731,1159742037,1098148196,1970234211,225670254,537529610,656416800,1868983881,1952542066,544108393,1970233953,1634017396,1663068259,1836412015,537529710,1377837088,1296647237,1818585120,875046000,1663052841,875064431,1444949033,875066217,1293954089,875067489,1696607273,611608932,741945640,220803872,537529610,656416800,2002874948,1701344288,1919120160,225338725,538976266,1280262944,1663062607,1919904879,741812339,1819231008,1917874799,740910693,1819239200,678654575,1126181940,1919904879,1717924432,537529641,1109401632,840988783,741417004,741618208,221263904,537529610,1126178848,1380928591,1819239200,678654575,1126181941,1919904879,1717924432,1663052841,1919904879,741615731,1819231008,1917874799,220816997,538976266,1129270304,541414465,824192049,1380982842,542395977,1128353875,942154821,168634672,538976288,1094930252,824198484,976494636,1230131232,572544078,1868784449,544501365,1953064005,992113263,538970637,1329799200,542265164,1869377379,925397874,1866670124,1349676908,694576498,1868767276,1936879468,539767848,1869377347,1701990514,168634726,538970637,1330389024,1163149635,539767584,1344289330,1414416722,1867391520,1665212595,1853189987,1767121012,543517812,538976288,1142993696,1919120229,1769238633,538996335,538976288,538976288,538976288,538976288,538976288]},{"sector":15,"data":[538976288,538976288,538976288,538976288,1278165427,537529634,1277173792,1413563215,741613637,540684832,1313428048,-1004396460,-993737276,-993737532,-993737532,-993737532,-993737532,-993671996,-993737532,-993737532,-993737532,-993737532,-993737532,-993737532,-993737532,-993737532,-993737532,-993737532,-993737532,-993737532,-993737276,168633028,538976288,538976288,538976288,538976288,611655712,572538144,1555243811,538976288,538976288,538976288,538976288,-1285808096,538976348,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,548625440,220340257,538976266,1380927008,1025532192,1411396896,858923087,538970637,538976288,1330389024,1163149635,539779360,537529650,538976288,1478500384,1629502752,874523936,538970637,538976288,1380982816,542395977,1313428309,611655751,995631163,1667457312,1953396079,774461480,1819568468,1629502309,1970234211,1479046254,1698967081,540762995,1868784481,678719093,1093544280,1701869908,537529659,1310728224,542398533,218762593,538976266,1850287904,1634301033,1702521196,1918989856,1818386793,168653669,538976288,1886152040,691087396,572538144,1665212448,1853189987,1634607220,538994029,538976288,538976288,538976288,538976288,538976288,538976288,2082480160,843463712,1986089789,1851859045,2017796196,540963945,1668498748,1030058081,1919902273,220348020]},{"sector":16,"data":[538976266,1818585120,841491568,540876841,1092624418,1970234211,1679848558,1919120229,1769238633,538996335,538976288,538976288,538976288,538976288,538976288,1178345596,1632845106,1629513078,1159750766,1047816568,1933917216,1701863779,1868710205,574518386,538970637,1701322784,673476716,1025517875,538976800,1868784449,544501365,1701869940,541141024,1933647933,745825651,1025526816,1634290720,1768712546,539588980,1008761888,1396519494,543520353,543452769,1953069125,1161568318,1885430643,1648442725,1047818863,537529634,538976288,538976288,538976288,538976288,538976288,220209184,538976266,1819239200,539570472,976560189,1819239200,539570728,909254717,1868767290,691218540,924859680,537529656,1444945952,824734569,540876841,540684338,678652246,1025517874,976237856,1936283168,539570984,221323325,538976266,2019642656,539570472,808591421,1632444474,691153016,891305248,1293957680,858290273,540876841,218762545,538976266,1380927008,1025532192,1411395872,959520847,538970637,538976288,1684348960,673477737,824192097,540876841,1868784481,678719093,1412311393,1701606505,538970637,538976288,1684348960,673477737,840969313,540876841,1868784481,678719093,1143875937,224621413,538976266,538976288,1768187168,1630020724,691216428,1629502752,1970234211,1630041198,1413557801,224751737,538976266,1480936992,224469076,537529610,1713381408,1936289385]},{"sector":17,"data":[543450472,1095114813,222647116,537529610,1126178848,1383232117,1025537903,168636704,538976288,1920103747,543977283,221323325,538976266,1769099296,1699247214,1766617196,1746953582,611347557,1920287528,1819231090,218762537,538976266,1867261728,1965060207,1818850414,540165664,1008759407,1044599621,544434464,1936028272,224683379,538976266,223298592,538976266,538976288,1397704480,1159742037,1098148196,1970234211,1400075374,1131900776,1869836917,538976370,538976288,538976288,1750279968,1126201199,1869836917,537529714,538976288,1142956064,538976335,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,656416800,1953063255,1919903264,2036689696,538970637,538976288,538976288,1649090592,1025516644,1263421728,220485957,538976266,538976288,1330596896,1314201680,541870420,610558539,540949536,168632866,538970637,538976288,1179197472,1684163360,1027481636,572531232,1145979168,1684163360,540811300,539131426,1313163348,538976288,1227300896,1701584998,745300327,1768187168,1953046644,168652133,538976288,538976288,538976288,1431523143,1682251842,1665234025,1853189987,1682273140,1950970985,168652133,538976288,538976288,541347397,168642121,538976288,538976288,1431523143,1682251842,1665234025,1853189987,1766355828,1967351140,1919906674,538976288,538976288,538976288,1684621351,1967333477,1919906674,544174880,1663071337]}],[{"sector":1,"data":[1830841953,224753263,538976266,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,1716070176,544500000,1684366702,1869881459,538970637,538976288,1163075616,1413694796,1396785952,1649090629,168633444,538976288,538976288,538976288,1163084099,1380467488,691021860,572533536,538976840,538976288,538976288,538976288,538976288,538976288,538976288,538976288,544232743,1869771329,537529719,538976288,538976288,538976288,1126178848,1383232117,1025537903,1967335456,1867674226,539697271,539572017,541347661,723532081,168636704,538976288,538976288,538976288,1163084099,1380467488,691021860,572533536,538976848,538976288,538976288,538976288,538976288,538976288,538976288,538976288,2003780647,1916870766,225931122,538976266,538976288,538976288,538976288,1920287520,2003784306,673201440,1920103747,695693138,1146047776,540619040,221323307,538976266,538976288,538976288,1396785952,1212358725,807937106,539697193,740444962,1380467488,691021860,1126181664,673469000,539571505,538976288,538976288,1699489568,1864397926,1750278258,729048681,224551252,538976266,538976288,538976288,538976288,1920287520,1819231090,673201440,1920103747,543977283,691085355,1146047776,723530528,168636704,538976288,538976288,538976288,538976288,1852404304,1818577012,1852394608,1701322853,673476716]},{"sector":2,"data":[1920103747,694972227,538970637,538976288,538976288,1094918176,1126188371,673469000,723527984,575480352,1212358700,958932050,538976297,538976288,538976288,538976288,538976288,1378295840,1952999273,544370464,224551252,538976266,538976288,538976288,538976288,1920287520,1819231090,673201440,1920103747,694972227,1146047776,723530528,168636704,538976288,538976288,538976288,538976288,1852404304,1818577012,1852394608,1701322853,673476716,1920103747,694972227,538970637,538976288,538976288,1094918176,1126188371,673469000,723527984,574366240,538976288,538976288,538976288,538976288,538976288,538976288,538976288,1176969248,537529650,538976288,538976288,538976288,1713381408,1936289385,543450472,1381244989,168641877,538976288,538976288,538976288,538976288,1702256979,1411398944,222647634,538976266,538976288,538976288,1396785952,1212358725,841491538,538978615,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,1933911840,537529699,538976288,538976288,538976288,1713381408,1936289385,543450472,1381244989,168641877,538976288,538976288,538976288,538976288,1702256979,1176517920,1163086913,538970637,538976288,538976288,1094918176,1126188371,673469000,539570993,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,1378295840,1920300133,537529710,538976288,538976288]},{"sector":3,"data":[1126178848,541414209,1163086917,538970637,538976288,538976288,538976288,1161961504,168644677,538976288,538976288,541347397,1162626387,168645699,538976288,1347374924,1414419744,1713392713,1936289385,224683368,537529610,1226842144,1632837702,1411409270,223233352,538976266,538976288,1397704480,1159742037,1098148196,1970234211,1400075374,1147500129,224490593,538976266,1145980192,222710048,537529610,1159733280,542394712,222451027,1158286602,1098148196,1970234211,1400075374,1131900776,1869836917,168639090,538976288,1330401091,1868767314,1936879468,539768872,1869377347,1701990514,539765094,1869377379,958952306,1866670124,1349676908,694576498,538970637,1330389024,1163149635,1920287520,2003784306,874523424,1868767276,1967335532,1866691186,168634732,538976288,1313428048,1162616916,673469510,1953064037,1967335460,1867674226,1126182007,1131573877,740912239,1936283168,1920287528,1819231090,221980969,538976266,1413829152,223236693,1158286602,1098148196,1970234211,1165194350,1232365924,980247924,538970637,1329799200,542265164,1869377379,942175090,1866670124,1349676908,694576498,1868767276,1936879468,539769128,1869377347,1701990514,168634726,538976288,1025534831,1279346208,168641875,538976288,1918989427,1025516660,1684163360,537529636,1142956064,537529679,538976288,1260396576,539255906,1699160125,1920226164,610758249,1920287528,2003784306,874523424]},{"sector":4,"data":[1868767276,1967335532,1866691186,539765100,1918989427,539763828,610561637,1767252012,1967335539,1866691186,539765100,678977869,1920103747,694972227,537529641,538976288,1696604192,611608932,1920287528,2003784306,1967333420,1866691186,1025517932,1178946592,1697129556,539255918,1347625003,608518977,2019642664,1920287528,1819231090,539765033,678977869,1920103747,694972227,537529641,538976288,1931485216,1953653108,540876836,168632866,538970637,538976288,1179197472,1920287520,1819231090,857750816,1162368032,537529678,538976288,538976288,1478500384,540876836,1396786005,1697129541,690250862,538970637,538976288,538976288,1179197472,539252768,1092755517,1380917282,539252768,1277304893,1380917282,539252768,572661821,542265120,1025516632,572531232,1162368032,537529678,538976288,538976288,538976288,1864376352,540876907,1163219540,538970637,538976288,538976288,538976288,1179197472,539252768,572661821,1162368032,609755214,572538144,168632864,538976288,538976288,538976288,538976288,1953064037,1967335460,1867674226,1126182007,1131573877,539585647,609755197,538970637,538976288,538976288,1279598624,168641875,538976288,538976288,538976288,538976288,1346716994,538970637,538976288,538976288,1313153056,1179197508,538970637,538976288,1279598624,168641875,538976288,538976288,538976288,1025534831,1431458848,537529669,538976288,1159733280]},{"sector":5,"data":[1226851406,537529670,538976288,220209184,538976266,1330596896,1314201680,541870420,168651631,538976288,1431586130,168644178,1682246157,1665234025,1853189987,1766355828,1967351140,1919906674,537529658,1126178848,1380928591,1819239200,678654575,1126181943,1919904879,1717924432,1663052841,1919904879,741615731,1819231008,1917874799,220816997,538976266,1129270304,541414465,1920103747,544698194,741613611,1819239200,1920287528,1819231090,537529641,1344282656,1414416722,1178946592,1697129556,611608932,1920287528,2003784306,1967333420,1866691186,539765100,678652246,1920103747,694972227,168639273,538976288,1431586130,168644178,168626701,1953064005,1868784449,1937010293,1702256979,1635017028,537529658,1176510496,1629508175,824196384,542069792,168638769,538976288,538976288,1868784481,678719093,1412311393,1701606505,1696611616,611608932,539779368,168634673,538976288,538976288,1868784481,678719093,1143875937,543388517,1684348989,673477737,840969313,537529641,538976288,1629495328,1970234211,1630041198,1413557801,543518841,1684348989,673477737,857746529,537529641,1310728224,542398533,537529697,1394614304,1399158369,1702125940,538970637,1163010080,1314018644,168626701,541347397,222451027,654970122,1953064005,1851880020,168639091,1411391527,544434536,1948283753,1713399144,762080373,1701995379,1696624229,1869900132,1752637554,543712105,1869376609]},{"sector":6,"data":[2032169847,1948284271,1852121199,544367988,543452769,1851877475,168650087,1948262439,1936613746,1769235297,225668719,1112888074,1768178976,1634882676,673215342,1835365481,218762537,538976266,1951606560,1936028271,1718511904,1650532463,544503151,1751343461,1819239200,225340789,538976266,1145393696,1746947401,611347557,740898344,1819239200,740898344,1936283168,740898344,2019642656,740898344,1920287520,1920226162,610758249,740897576,1920287520,1734952562,691349539,538970637,1093083168,2036429426,544175136,1885693291,1701344288,1920295712,1953391986,1818321440,1701015137,544497952,543976545,543516788,1851880052,1952670067,1936617321,538970637,1163010080,541935940,1634492738,593847150,808464680,168634672,538970637,1327964192,544105840,1684955506,1629515119,1936024419,1768300659,168650092,538976288,1701603686,540876836,1852796194,573471077,1126181664,611608950,1702127912,168634733,538976288,1313165391,1818846752,1176511589,1377849935,1329876545,1396777037,540091168,542000460,876093501,538970637,1229332512,541346885,539767075,1396777016,1148143904,610628705,808525868,542327072,1699901257,539763814,1092628533,1867063379,1668506948,941632548,542327072,1766223689,740569447,1092630560,1867063379,845637958,537529636,1176510496,1145849161,741417760,540094752,1981829953,1684630625,891300900,542327072,1632464713,1667584632,610562671,540549164]},{"sector":7,"data":[1226855233,1818313327,1701015137,218762532,538976266,1850287904,1634301033,1702521196,1918989856,1818386793,168653669,538976288,1920103747,1769108563,673474414,1025517873,220340768,538976266,1920287520,1920226162,610758249,539570728,572661821,538970637,1967333408,1951625842,1735289202,691218468,572538144,537529634,1126178848,1181905525,673408873,1025517876,168636448,538976288,1920103747,593979718,539571496,221257789,537529610,1193287712,589321285,824192049,538970637,1179197472,1818326560,539255913,572538428,1397311572,1096176457,574900556,1162368032,537529678,538976288,1277173792,542393683,1631874889,539256180,572661821,538970637,538976288,1397497888,1226855493,1717916271,540876836,168632866,538976288,538976288,1413829452,1148143904,610497381,572538144,537529634,538976288,1277173792,542393683,1766223689,539242855,1263345725,807937092,537529641,538976288,1277173792,542393683,1766223689,539243111,1263345725,807937092,537529641,538976288,1344282656,589321301,840969265,538970637,538976288,1397497888,1981830213,1684630625,540876836,1229476898,1448298835,1145654337,537529634,538976288,1277173792,542393683,1632464713,1667584632,610562671,572538144,168632881,538976288,538976288,1413829452,1114589472,1851878497,539256163,1263345725,807937092,537529641,538976288,1344282656,589321301,824192049,538970637,1313153056,1179197508]},{"sector":8,"data":[168626701,538976288,1383620941,1919902565,540876900,676086102,1632464713,1667584632,610562671,218762537,538976266,1818313248,1701015137,691021859,807419168,538970637,543236128,221323325,538976266,1229477664,1629504844,540884000,1383620941,1919902565,537529700,538976288,1193287712,589321285,1629498417,824191776,538970637,538976288,1631723552,1668178284,1630020453,540876841,1634492738,593847150,757096744,539570464,1447239723,1867065412,828860742,757082404,1146503968,1181698344,607283049,537529641,538976288,1629495328,1629502752,824191776,538970637,1163337760,168641614,538976288,1431523143,1682251842,1918137449,1467182689,1702127986,1634492738,224748398,537529610,1746935840,611347557,539570472,1143087165,543519841,1948280431,1936613746,1769235297,673214063,1680829805,2037985124,220340265,538976266,1818585120,841491568,540876841,1634882594,1667330926,1852795252,1717924384,1852142181,1847616867,1700949365,538976370,537529634,1746935840,611347557,539570984,1411522621,1936613746,1769235297,1679847023,1919120229,1769238633,538996335,538976288,220340256,538976266,1818585120,875046000,540876841,1668172066,1935762802,1935745125,544499059,1679848047,544498277,1970037110,538976357,537529634,1746935840,611347557,539571496,1143087165,1701995365,543519585,1702064993,1919885428,1650811936,1635131508,543520108,220340256,537529610,1663049760]},{"sector":9,"data":[824732783,540876841,537529650,1663049760,841509999,540876841,168636721,538976288,678195043,1025517875,221786400,538976266,1819239200,539571240,875831357,538970637,1868767264,691349612,891305248,218762549,538976266,1936283168,539570472,221782077,538976266,1936283168,539570728,221651005,538976266,1936283168,539570984,892477501,538970637,1767252000,691284083,824196384,537529648,1444945952,891843433,540876841,168636465,538970637,1632444448,691087480,941636896,538970637,1632444448,691153016,908082464,538970637,1632444448,691218552,840973600,537529653,1293951008,875067489,540876841,168636465,538976288,678977869,1025517877,221262112,218762506,538976266,1917069088,1394636641,1701147235,537529710,1126178848,1380928591,1819239200,678654575,1126181943,1919904879,1717924432,1663052841,1919904879,741615731,1819231008,1917874799,220816997,538976266,2020557344,539767328,840969265,941632564,218762544,538976266,1280262944,1663062607,1919904879,741681267,1819231008,1917874799,740910693,1819239200,678654575,1126181940,1919904879,1717924432,537529641,1277173792,1413563215,741417029,540684576,1313428048,1347625044,608518977,691025960,537529659,1277173792,1413563215,741417029,540685344,1313428048,1411522644,1936613746,1769235297,1159753327,1869900132,572537458,1411394336,611150194,1667457320,1953396079,1702127912,1412311405,1701606505]},{"sector":10,"data":[168639273,538970637,1329799200,542265164,1869377379,925397874,1866670124,1349676908,694576498,1868767276,1936879468,539767848,1869377347,1701990514,168634726,538976288,1094930252,857752916,976363564,1230131232,572544078,1631854624,538994036,1699881139,-1289739418,1936016416,1885958755,1852795252,538976288,538976288,538976288,1226879776,1701995374,543519585,1698963635,1634038371,-1289722509,1109401632,1851878497,538994019,220340256,538976266,1129270304,541414465,840969268,1380982842,542395977,-993737694,-993737532,-993737276,-993737532,-993737531,-993737532,-993737532,-993737532,-993737532,-993737532,-993671996,-993737532,-993737532,-993737276,-993737532,-993737532,-993737531,-993737532,-993737532,583320772,168626701,538976288,539260192,1545740349,538976288,-1285808096,538976348,1555258400,538976288,538976288,538976288,538976288,538976288,1545609248,168633011,538976288,539242869,539107389,538976288,-1289740256,538976288,548610080,538976288,538976288,538976288,538976288,538976288,538976288,538976435,538976288,-1289740256,538976288,538976288,548610080,538976288,538976288,538976288,168632864,538976288,611856757,572538144,-538976289,-538976289,-538976333,-1277173793,-538976289,-538976289,-538976289,-538976289,-538976289,-538976289,-538987553,-538976289,-538976289,-538976333,-538976289,-1277173793,-538976289,-538976289,-538976289,220389343]},{"sector":11,"data":[538976266,607286560,572538144,740500259,774054691,220341027,538976266,607352096,572538144,740500259,740500259,774054691,220341027,538976266,607417632,572538144,538976288,538976288,220340256,537529610,1126178848,1416786549,1768714351,1025533294,168636704,538976288,1431523143,1682251842,1918137449,1349742177,1953393010,1819240535,1919112037,225338725,537529610,1126178848,1383232117,1025537903,168636704,538976288,1920103747,543977283,221323325,538976266,1769099296,1699247214,1766617196,1746953582,611347557,1920287528,1819231090,539697193,538999842,1026704956,1702256979,1684955424,1769489696,1008746100,1228749126,1919251310,1008746100,1026568518,1701602628,574514548,168626701,538976288,1431523143,1682251842,1918137449,1198747233,1766618213,168650094,538970637,1768300576,1752394094,1025533029,1279346208,168641875,168626701,538976288,1869564967,1853169776,543975796,1043482172,544434464,1936028272,224683379,538976266,223298592,538976266,538976288,1397704480,1159742037,1416915300,1936613746,2003789907,1936880963,538997359,538976288,538976288,538976288,538976288,1750279968,1126201199,1869836917,1461726322,544500065,544370534,226059627,538976266,538976288,978273312,1684163360,540876836,1162563145,540681305,1347374924,1414419744,1260407881,539255906,572538428,537529634,538976288,1193287712,1112888143,1768178976,1634882676,1766355822]},{"sector":12,"data":[1967351140,1919906674,168626701,538976288,538976288,1260406345,539255906,572538174,1092624928,1260405838,539255906,2116165692,1380917282,1684163360,540876836,609372227,539572264,1313163348,538976288,538976288,543574311,1634166124,1701519468,1696607353,544500068,1835365481,538970637,538976288,538976288,1330061344,541218131,1953064005,1851880020,1768179059,1702119796,537529709,538976288,1159733280,1226851406,218762566,538976266,538976288,1279611680,542393157,1163084099,1684163360,538976292,538976288,538976288,538976288,538976288,538976288,538976288,1632118560,1701602414,1701860128,1818323299,2036689696,537529715,538976288,538976288,1126178848,541414209,609372227,539570216,1210196011,538976290,538976288,538976288,538976288,538976288,656416800,1629515893,2003792498,538970637,538976288,538976288,538976288,1330061344,541218131,1953064005,1851880020,1987005811,225465701,538976266,538976288,538976288,1396785952,1212358725,807937106,539697193,539119650,538976288,538976288,538976288,538976288,538976288,1866737440,1629515383,2003792498,538970637,538976288,538976288,538976288,1330061344,541218131,1953064005,1851880020,1987005811,2003780709,537529710,538976288,538976288,1126178848,541414209,609372227,539570216,1260527659,1126181922,673469000,723527984,1380467488,892413988,656416809,1952867660,1920090400,1110210415,1416323937]},{"sector":13,"data":[168649313,538976288,538976288,538976288,538976288,1920103747,543977283,1126703165,1131573877,723545199,539570976,541347661,539697205,537529649,538976288,538976288,538976288,1344282656,1953393010,1886152008,1701734732,1818585120,1126704240,1131573877,539585647,2082611243,1178345504,1632845106,1629513078,1159750766,1047816568,960904224,1936607549,1047818853,826686496,1698970928,1702126956,168632894,538976288,538976288,538976288,1163084099,1380467488,691021860,572533536,539763277,609372227,539572520,538976288,538976288,538976288,1734955559,1092645992,2003792498,1650545708,538970637,538976288,538976288,538976288,1967333408,1866691186,540876908,1920287528,1819231090,1330454569,540352580,221323307,538976266,538976288,538976288,538976288,1769099296,1699247214,1766617196,1746953582,611347557,1920287528,1819231090,539697193,538999842,1026704956,1702256979,1684955424,1769489696,1008746100,1228749126,1919251310,1008746100,1026568518,1701602628,574514548,538970637,538976288,538976288,1094918176,1126188371,673469000,723527984,575087136,538976288,538976288,538976288,538976288,538976288,1210523680,224750959,538976266,538976288,538976288,538976288,1920287520,1819231090,824196384,538970637,538976288,538976288,1094918176,1126188371,673469000,723527984,575611424,538976288,538976288,538976288,538976288,538976288,1160192032,168649838]},{"sector":14,"data":[538976288,538976288,538976288,538976288,1920103747,543977283,221585469,538976266,538976288,538976288,1396785952,1212358725,807937106,539697193,539117858,538976288,538976288,538976288,538976288,538976288,1632642848,1428186471,537529712,538976288,538976288,538976288,1126178848,1383232117,1025537903,168636704,538976288,538976288,538976288,538976288,1920103747,1819307860,543518313,1967333437,1867805298,1852402800,539828325,168638769,538976288,538976288,538976288,538976288,1126188617,1416786549,1768714351,1008756078,1411395872,223233352,538976266,538976288,538976288,538976288,538976288,1920287520,1886344306,1701734764,824196384,538970637,538976288,538976288,538976288,1313153056,1179197508,538970637,538976288,538976288,538976288,1330061344,541218131,1953064005,1851880020,1769099379,1750561902,1399155823,1701147235,537529710,538976288,538976288,538976288,1193287712,1112888143,1768178976,1634882676,1699181422,1852394612,537529701,538976288,538976288,1126178848,541414209,609372227,539570216,1361190955,538976290,538976288,538976288,538976288,538976288,656416800,1701273936,2003780640,537529710,538976288,538976288,538976288,1126178848,1383232117,1025537903,168636704,538976288,538976288,538976288,538976288,1920103747,1819307860,543518313,1967333437,1867805298,1852402800,539697253,168638769,538976288,538976288,538976288]},{"sector":15,"data":[538976288,1126188617,1416786549,1768714351,1042310510,2019642656,1868784978,1411409010,223233352,538976266,538976288,538976288,538976288,538976288,1920287520,1886344306,1701734764,1293958432,1699903585,1685221219,538970637,538976288,538976288,538976288,1313153056,1179197508,538970637,538976288,538976288,538976288,1330061344,541218131,1953064005,1851880020,1769099379,1750561902,1399155823,1701147235,537529710,538976288,538976288,538976288,1193287712,1112888143,1768178976,1634882676,1699181422,1852394612,537529701,538976288,538976288,1126178848,541414209,609372227,539570216,1008869419,538976290,538976288,538976288,538976288,538976288,656416800,168636998,538976288,538976288,538976288,538976288,1768843622,1684367475,1411398944,222647634,538976266,538976288,538976288,1396785952,1212358725,807937106,539697193,539116322,538976288,538976288,538976288,538976288,538976288,960898848,538970637,538976288,538976288,538976288,1330061344,541218131,1953064005,1851880020,1684291955,1868784978,168649842,538976288,538976288,538976288,1163084099,1380467488,691021860,572533536,538976836,538976288,538976288,538976288,538976288,538976288,808535591,538970637,538976288,538976288,538976288,1330061344,541218131,1953064005,1851880020,1818575987,1382380645,1919902565,537529700,538976288,538976288,1126178848,541414209,609372227,691220776]},{"sector":16,"data":[538976288,538976288,538976288,538976288,538976288,538976288,656416800,1702129221,537529714,538976288,538976288,1126178848,541414209,1163086917,538970637,538976288,538976288,538976288,1162166816,537529680,538976288,1159733280,1394623566,1128614981,537529684,1277173792,542134095,1230261845,1768300620,1752394094,168649829,538970637,1279467552,222647119,537529610,1159733280,542394712,222451027,218762506,1768178954,1634882676,1750299502,1967355759,1919906674,537529658,1126178848,1380928591,1819239200,678654575,1126181944,1919904879,1717924432,1663052841,1919904879,741943411,1819231008,1917874799,220816997,538976266,1129270304,541414465,1920103747,544698194,741613611,1819239200,1920287528,1819231090,537529641,1394614304,1128614981,1094918228,1126188371,1131573877,168651887,538976288,538976288,1163084099,539767072,857746482,538970637,538976288,538976288,1380982816,542395977,1413891404,1967335460,1951625842,1735289202,1967335460,1866691186,539765100,678652246,1920103747,694972227,168639273,538976288,538976288,1163084099,168637472,538976288,538976288,538976288,1126188617,1181905525,673408873,1008740660,540024894,1313163348,538970637,538976288,538976288,538976288,1380982816,542395977,1313428309,846536775,1126185764,1181905525,673408873,221980980,538976266,538976288,538976288,1397507360,537529669,538976288,538976288,538976288]},{"sector":17,"data":[1344282656,1414416722,1095783200,673465667,678652246,1920103747,694972227,168639273,538976288,538976288,538976288,541347397,168642121,538976288,538976288,1163084099,168637728,538976288,538976288,538976288,1126188617,1181905525,673408873,1008740661,540024894,1313163348,538970637,538976288,538976288,538976288,1380982816,542395977,1313428309,846536775,1126185764,1181905525,673408873,221980981,538976266,538976288,538976288,1397507360,537529669,538976288,538976288,538976288,1344282656,1414416722,1095783200,673465667,678652246,1920103747,694972227,168639273,538976288,538976288,538976288,541347397,168642121,538976288,541347397,1162626387,168645699,538976288,1431586130,168644178,168626701,1953064005,1851880020,1684621427,1920287589,980578163,538970637,1329799200,542265164,1869377379,925397874,1866670124,1349676908,694576498,1868767276,1936879468,539767848,1869377347,1701990514,168634726,538976288,1094930252,1126188372,1383232117,723548015,539767840,678195043,1920103747,694972227,538970637,1163075616,1413694796,1396785952,1967333445,1866691186,537529708,538976288,1126178848,541414209,840969265,221454380,538976266,538976288,538976288,1230131232,1277187150,609502789,1920287528,1920226162,610758249,1920287528,1819231090,1444949033,1126724457,1131573877,690580591,537529659,538976288,1126178848,541414209,537529652,538976288]}],[{"sector":1,"data":[538976288,1226842144,1967333446,1766224498,875045735,1044127785,1411395616,223233352,538976266,538976288,538976288,538976288,1230131232,1428182094,1196312915,607286560,1967333435,1766224498,875045735,168639273,538976288,538976288,538976288,1163086917,538970637,538976288,538976288,538976288,1380982816,542395977,1128353875,1445471301,1126724457,1131573877,690580591,537529659,538976288,538976288,1159733280,1226851406,537529670,538976288,1126178848,541414209,537529653,538976288,538976288,1226842144,1967333446,1766224498,891822951,1044127785,1411395616,223233352,538976266,538976288,538976288,538976288,1230131232,1428182094,1196312915,607286560,1967333435,1766224498,891822951,168639273,538976288,538976288,538976288,1163086917,538970637,538976288,538976288,538976288,1380982816,542395977,1128353875,1445471301,1126724457,1131573877,690580591,537529659,538976288,538976288,1159733280,1226851406,537529670,1159733280,1394623566,1128614981,537529684,1377837088,1381323845,218762574,1158286602,1416915300,1936613746,1953064005,1835365449,218762554,538976266,1920287520,1667584626,543453807,1967333437,1867805298,1852402800,539697253,1920103747,544698194,221323309,538976266,1280262944,1663062607,1919904879,741877875,1819231008,1917874799,740910693,1819239200,678654575,1126181945,1919904879,1717924432,218762537,538976266,1279611680,542393157]},{"sector":2,"data":[1163084099,1920287520,1819231090,538970637,538976288,1094918176,824198483,741482540,168637216,538976288,538976288,538976288,610558539,1193295136,1951626341,1735289202,1967335460,1867674226,539697271,1663052852,1126722671,1131573877,740912239,1684163360,1847602212,740587365,1936283168,1920287528,1819231090,1293954089,1126725729,1131573877,690580591,538970637,538976288,538976288,1967333408,1951625842,1735289202,1967335460,1866691186,1025517932,2003136032,537529636,538976288,538976288,1193287712,1112888143,1768178976,1634882676,1968206702,1852394612,537529701,538976288,538976288,1193287712,1112888143,1768178976,1634882676,1699181422,1852394612,537529701,538976288,1126178848,541414209,537529652,538976288,538976288,1931485216,1953653108,540876836,610558539,538970637,538976288,538976288,1329864736,538970637,538976288,538976288,538976288,1649090592,1025516644,1952794400,1769108563,673474414,1920103747,544698194,741613611,1819239200,740897832,1635021600,740586610,2003136032,1444949028,875066217,1293954089,875067489,168634665,538976288,538976288,538976288,538976288,880239982,540876835,676086102,611804526,537529641,538976288,538976288,538976288,1931485216,1953653108,540876836,168632866,538976288,538976288,538976288,1347374924,1229477664,1847608652,590640997,540884512,960051513,959330617,1327506233,1701716050,539178103,221257788]},{"sector":3,"data":[537529610,538976288,538976288,1629495328,1126186272,1383232117,1919902565,537529700,538976288,538976288,1461723168,1162627400,1008754976,1632444477,1667584632,224686703,538976266,538976288,538976288,538976288,1818313248,1701015137,694233123,1109409056,1851878497,673408355,723528033,2003136032,757080884,1920287520,1734952562,691284003,1126181664,1181905525,673408873,168634677,538976288,538976288,538976288,538976288,540876897,539697249,537529649,538976288,538976288,1461723168,222580293,538976266,538976288,538976288,1920287520,1734952562,691284003,1847606560,590640997,538970637,538976288,538976288,1967333408,1766224498,891822951,540876841,537529648,538976288,538976288,1193287712,1112888143,1768178976,1634882676,1968206702,1852394612,537529701,538976288,538976288,1193287712,1112888143,1768178976,1634882676,1699181422,1852394612,537529701,538976288,538976288,1193287712,1112888143,1768178976,1634882676,1917875054,1114926697,1851878497,225666403,538976266,538976288,538976288,1397704480,1159742037,1416915300,1936613746,1953067607,1818313317,1701015137,538970637,538976288,1094918176,891307347,538970637,538976288,538976288,1953701920,611611233,1260404000,220488802,538976266,538976288,538976288,223298592,538976266,538976288,538976288,538976288,1684163360,540876836,1400137031,1852404340,1126704231,1383232117,723548015,539767840]},{"sector":4,"data":[678195043,539765045,1918989427,539763828,611804526,1767252012,691349619,1632444460,691349624,537529641,538976288,538976288,538976288,1847599136,590706533,1444953376,1848134721,690255717,538970637,538976288,538976288,538976288,1953701920,611611233,572538144,537529634,538976288,538976288,1277173792,542134095,1279871063,1701716037,539178359,958414142,960051513,960048697,1380917283,2003136032,1008739125,168636448,538970637,538976288,538976288,543236128,1967333437,1699902066,1685221219,538970637,538976288,538976288,1213669408,541412425,1027350625,2019642656,1868784978,168649842,538976288,538976288,538976288,538976288,1634492738,593847150,539582760,1631723581,1668178284,1630020453,539828265,897017198,539697187,1920103747,593979718,539571496,1967333421,1766224498,875045735,537529641,538976288,538976288,538976288,1629495328,1629502752,824191776,538970637,538976288,538976288,1163337760,168641614,538976288,538976288,538976288,1920103747,593979718,539571240,221257789,538976266,538976288,538976288,1920287520,1734952562,691349539,1847606560,590706533,538970637,538976288,538976288,1330061344,541218131,1953064005,1851880020,1953845363,1701734732,538970637,538976288,538976288,1330061344,541218131,1953064005,1851880020,1952794483,1701734732,538970637,538976288,538976288,1330061344,541218131,1953064005,1851880020,1769099379]},{"sector":5,"data":[1631745134,1668178284,168653669,538976288,538976288,538976288,1431523143,1682251842,1918137449,1467182689,1702127986,1634492738,224748398,538976266,538976288,1396785952,1279598661,168641875,538976288,541347397,1162626387,168645699,538976288,1431523143,1682251842,1918137449,1349742177,1953393010,1701734732,538970637,1163010080,1314018644,168626701,1953064005,1851880020,1987005811,980440421,538970637,1179197472,1920287520,2003784306,824196384,1162368032,537529678,538976288,1226842144,1967333446,1867805298,1852402800,540876901,1213472817,168644165,538976288,538976288,538976288,1346716994,538970637,538976288,1279598624,168641875,538976288,538976288,538976288,1869767507,1866755180,168652407,538976288,538976288,538976288,1920103747,1819307860,543518313,1967333437,1867805298,1852402800,539828325,537529649,538976288,538976288,1193287712,1112888143,1768178976,1634882676,1699181422,1852394612,537529701,538976288,538976288,1193287712,1112888143,1768178976,1634882676,1917875054,1282698857,224751209,538976266,538976288,1145980192,222710048,538976266,1397507360,537529669,538976288,1126178848,1383232117,1025537903,1920287520,2003784306,824192288,538970637,538976288,1330061344,541218131,1953064005,1851880020,1952794483,1701734732,538970637,1313153056,1179197508,538970637,1163010080,1314018644,168626701,1953064005,1851880020,1987005811,2003780709]},{"sector":6,"data":[168639086,538976288,673203785,1920103747,544698194,1967333419,1867805298,1852402800,539828325,1042295089,1632444477,1667584632,543453807,1313163348,538970637,538976288,1161961504,168644677,538976288,1163086917,538970637,538976288,1179197472,1920287520,2003784306,824196384,1213472825,168644165,538976288,538976288,538976288,1869767507,1884646508,538970637,538976288,538976288,1967333408,1867805298,1852402800,540876901,1920103747,1819307860,543518313,221323307,538976266,538976288,538976288,1397704480,1159742037,1416915300,1936613746,1282696519,224751209,538976266,538976288,538976288,1397704480,1159742037,1416915300,1936613746,1852404304,1852394612,537529701,538976288,1159733280,222647116,538976266,538976288,538976288,1920287520,2003784306,1126186272,1383232117,723548015,168636704,538976288,538976288,538976288,1431523143,1682251842,1918137449,1198747233,1766618213,168650094,538976288,538976288,541347397,168642121,538976288,541347397,168642121,538976288,1431586130,168644178,1682246157,1918137449,1349742177,1953393010,1701734732,537529658,1126178848,1380928591,1819239200,678654575,1126181943,1919904879,1717924432,1663052841,1919904879,741615731,1819231008,1917874799,220816997,538976266,1920287520,1667584626,543453807,1967333437,1867805298,1852402800,539697253,1920103747,544698194,221323309,538976266,1129270304,541414465,1920103747]},{"sector":7,"data":[544698194,741613611,168636960,538976288,1126188617,1383232117,1919902565,540876900,1383620941,1919902565,539697252,1213472817,168644165,538976288,538976288,1313428048,829759572,221979768,538976266,1397507360,541477189,1920103747,1868784978,1042310258,2019642656,1868784978,1411409010,223233352,538976266,538976288,1230131232,1965053006,221979697,538976266,1397507360,537529669,538976288,1344282656,1414416722,1230198048,1965049678,1126185764,1400009333,1852404340,824714343,1126185769,1400009333,1852404340,841491559,1126185769,1400009333,1852404340,858268775,168639273,538976288,538976288,1126188617,1181905525,673408873,1025517876,1092628512,1126188110,1181905525,673408873,1025517877,1411395616,223233352,538976266,538976288,538976288,1230131232,1428182094,1196312915,607417632,572533536,723526323,607417632,572533536,723526323,607352096,1631723579,1668178284,1126703973,1383232117,1919902565,168634724,538976288,538976288,1163086917,1126188617,1181905525,673408873,1025517877,1411395616,223233352,538976266,538976288,538976288,1230131232,1428182094,1196312915,607286560,572533536,723526323,607417632,572533536,723526323,607352096,1967333435,1766224498,875045735,1109408553,1851878497,673408355,1920103747,1868784978,220816498,538976266,538976288,1397507360,537529669,538976288,538976288,1344282656,1414416722,1230198048,1965049678,723526708]},{"sector":8,"data":[582165024,1965042464,723526706,582165024,1965042464,540746803,1920103747,593979718,992556328,1818313248,1701015137,1967335459,1699902066,1685221219,537529641,538976288,1159733280,1226851406,537529670,1159733280,1226851406,537529670,1377837088,1381323845,218762574,1768178954,1634882676,1917875054,1114926697,1851878497,980641123,538970637,1329799200,542265164,1869377379,925397874,1866670124,1349676908,694576498,1868767276,1936879468,539767848,1869377347,1701990514,168634726,538976288,542265158,540876897,1330913329,221851936,538976266,538976288,1920287520,1667584626,543453807,1967333437,1867805298,1852402800,539697253,539828321,537529649,538976288,1226842144,1967333446,1699902066,1685221219,540884000,1383620941,1919902565,1213472868,168644165,538976288,538976288,538976288,1094930252,874530132,1629498144,909516844,538970637,538976288,538976288,1380982816,542395977,1313428309,863313991,1109408548,1851878497,673408355,1920103747,1819307860,543518313,543236139,691085357,537529659,538976288,1159733280,1226851406,537529670,1310728224,542398533,537529697,1377837088,1381323845,218762574,1768178954,1634882676,1698984814,1702126956,1868784978,221930610,538976266,541477152,1383620941,1919902565,540876900,1213472817,168644165,538976288,538976288,1346716994,538970637,1279598624,168641875,538976288,538976288,1920103747,1868784978,1025533042]},{"sector":9,"data":[1920287520,1886344306,1701734764,1126181664,1383232117,757102447,168636704,538976288,538976288,1383620941,1919902565,540876900,1383620941,1919902565,539828324,537529649,538976288,1629495328,1126186272,1383232117,1919902565,537529700,538976288,1461723168,1162627400,1008754976,1632444477,1667584632,224686703,538976266,538976288,538976288,1413826336,741417760,723542304,168636960,538976288,538976288,538976288,542397776,539767075,539697249,537529649,538976288,538976288,1109401632,1851878497,673408355,1025517921,1818313248,1701015137,543238179,691085355,1126182176,1181905525,673408873,723527988,1920287520,1734952562,691349539,538970637,538976288,538976288,543236128,543236157,221323307,538976266,538976288,1313167136,537529668,538976288,220209184,538976266,538976288,1163086880,1635131476,610560364,572538144,1397311572,1096176457,574900556,538970637,538976288,1397497888,1226855493,2019642735,1868784978,539255922,1984110653,673477737,1383620941,1919902565,168634724,538976288,538976288,542397776,539767075,537529649,538976288,1193287712,1112888143,1768178976,1634882676,1917875054,1467248233,1701605224,1701995347,168652389,538976288,538976288,1920103747,1868784978,1025533042,1920287520,1886344306,1701734764,1126181664,1383232117,757102447,168636704,538976288,538976288,1126188617,1383232117,1919902565,540942436,1383620941,1919902565]},{"sector":10,"data":[1213472868,168644165,538976288,538976288,538976288,1431523143,1682251842,1918137449,1299410529,1432712815,537529712,538976288,1159733280,1226851406,537529670,538976288,1193287712,1112888143,1768178976,1634882676,1699181422,1852394612,537529701,538976288,1193287712,1112888143,1768178976,1634882676,1918333806,1113945193,1851878497,168650083,538976288,541347397,168642121,538976288,1431586130,168644178,1682246157,1918137449,1098083937,1699898468,1685221219,537529658,1126178848,1383232117,1919902565,540876900,1920103747,1819307860,543518313,1967333419,1867674226,539828343,537529649,1629495328,1293958432,1699903585,1685221219,538970637,1213669408,541412425,540942433,1920103747,1868784978,168649842,538976288,538976288,542393671,539767075,539697249,537529649,538976288,1344282656,589321301,1629498417,840968992,538970637,538976288,1631723552,1668178284,1630020453,824191776,540876841,1634492738,593847150,220815656,538976266,538976288,1025532192,757096736,168636704,538976288,1145980247,538970637,1631723552,1668178284,1126703973,1383232117,1919902565,539697252,1025517873,1818313248,1701015137,1967335459,1699902066,1685221219,537529641,1293951008,1699903585,1685221219,1293958432,1699903585,1685221219,824191776,538970637,1397497888,1226855493,1952531567,1025516645,220340768,538976266,1163086880,1867063380,610690386,572538144,537529634,1277173792]},{"sector":11,"data":[542393683,1698983753,539255667,572661821,538970637,1397497888,1226855493,1734952559,1025516593,1145785632,691021860,538970637,1397497888,1226855493,1734952559,1025516594,1145785632,691021860,538970637,1431314464,824385620,1967333420,1699902066,1685221219,840968992,168626701,538976288,1413829452,1818326560,539255913,1411522621,1230195016,1279350355,220349513,538976266,1163086880,1867063380,1383620941,1919902565,1025516644,1769358112,1294476404,1699903585,1685221219,537529641,1344282656,589321301,824192049,538970637,1330061344,541218131,1953064005,1851880020,1769099379,1750561902,1399155823,1701147235,537529710,1193287712,1112888143,1768178976,1634882676,1699181422,1852394612,537529701,1377837088,1381323845,218762574,1768178954,1634882676,1917875054,1467248233,1701605224,1701995347,221933157,538976266,1835365408,540876912,1920103747,225931090,538976266,1380927008,1920287520,2003784306,824196384,542069792,168638769,538976288,538976288,1920103747,1868784978,1025533042,1920287520,1886344306,1701734764,1126181664,1383232117,757102447,168636704,538976288,538976288,1126188617,1383232117,1919902565,1027350628,2019642656,1868784978,1411409010,223233352,538976266,538976288,538976288,1397704480,1159742037,1416915300,1936613746,1282696519,224751209,538976266,538976288,1145980192,222710048,538976266,538976288,1397704480,1159742037,1416915300,1936613746]},{"sector":12,"data":[1852404304,1852394612,537529701,1310728224,542398533,1920103747,225931090,538976266,1920287520,2003784306,1948269856,225471845,538976266,1413829152,223236693,1158286602,1416915300,1936613746,1953067607,1818313317,1701015137,537529658,1193287712,589321285,824192049,538970637,1397497888,1226855493,1818313327,1701015137,540876836,608455501,1818313256,1701015137,1632446499,1667584632,694448751,537529641,1344282656,589321301,824192049,538970637,1163010080,1314018644,168626701,1953064005,1851880020,1953845363,1701734732,537529658,1126178848,1383232117,1919902565,540876900,1920103747,1819307860,543518313,1967333419,1867674226,539828343,537529649,1277173792,542393683,1631874889,539256180,1967333437,1951625842,1735289202,691087396,538970637,1397497888,1226855493,1717916271,540876836,1920103747,1769108563,673474414,168634674,538976288,1413829452,1148143904,610497381,1126186272,1400009333,1852404340,858268775,537529641,1277173792,542393683,1766223689,539242855,1263345725,1126704196,1181905525,673408873,220801332,538976266,1163086880,1867063380,845637958,540876836,608455501,1920287528,1734952562,691349539,537529641,1344282656,589321301,1126181937,1383232117,1919902565,539697252,537529649,1377837088,1381323845,218762574,1768178954,1634882676,1699181422,1852394612,168639077,538976288,1920103747,1868784978,1025533042,1920287520,1886344306,1701734764]},{"sector":13,"data":[1126181664,1383232117,757102447,168636704,538976288,542393671,539767075,1920103747,1868784978,723543154,168636704,538976288,1920103747,1769108563,673474414,1025517873,1148143904,610628705,538970637,1967333408,1951625842,1735289202,691152932,1226849568,1717916271,537529636,1126178848,1400009333,1852404340,858268775,540876841,1698983753,220488563,538976266,1920287520,1734952562,691284003,1126186272,1227375702,1734952559,220800049,538976266,1920287520,1734952562,691349539,1126186272,1227375702,1734952559,220800050,538976266,1413829152,223236693,1145980170,1112888096,168626701,1851868711,1816361315,168639091,1126178855,1918985580,1668489331,1852138866,544106784,543516788,1751607666,1868767348,745697132,1684955424,1634886688,1847620471,543515497,1937010532,1393167662,1176519253,2036559457,544435267,1953457192,1109404787,1735091041,1853190002,168634724,538970637,1230381088,1344296773,1414416722,1411396128,875700303,538970637,1329799200,542265164,1937010532,1631723564,1919380323,1684960623,538970637,1279467552,221388883,537529610,1176510496,1629508175,958414112,1330913333,842543392,1414733872,874532933,537529653,538976288,1914708000,1025537903,790651168,540031008,221323307,538976266,538976288,1819239200,1629502752,1146047776,540031008,221323307,538976266,538976288,1129270304,541414465,746024818,1819239200,538970637,538976288,1380982816]},{"sector":14,"data":[542395977,609372227,808792616,168639273,538976288,1415071054,168648992,538970637,1230381088,1344296773,1414416722,168626701,541347397,222451027,654970122,1400137031,1852404340,221914215,538978058,1702259015,543236206,544698226,543452769,745303907,1684955424,544104736,1953066601,543973737,1769108595,539780974,1953064037,1931501856,1852404340,654970215,1230381088,1936269395,1701344288,1852140576,543716455,1948280431,1981834600,1651077993,1713399148,1684825449,543584032,1920233061,654970233,1095573536,1936269400,1701344288,2019650848,1836412265,1836412448,544367970,1663067759,1634885992,1919251555,1818304627,1702326124,1852383332,1701344288,1920234272,224882281,1314211338,1330205763,1699160142,1920226164,610758249,1869752352,1663052919,539782255,1918989427,539763828,610561637,1767252012,1293954163,220821601,538976266,1920295712,1025516658,1769100320,1277699181,609502789,1635021608,740586610,2019642656,168634665,538976288,1663059529,611480181,1126186272,673469000,1411393848,542000456,1920103779,540876836,168632866,538970637,1330389024,1163149635,740305952,168636704,538970637,1768300576,1752394094,1025533029,1279346208,168641875,538976288,168644420,538976288,538976288,1431523143,1699160130,1920226164,1399287401,1417113448,225736805,538976266,538976288,1397704480,1193296469,1951626341,1735289202,1265919303,168655205,538970637,538976288]},{"sector":15,"data":[1179197472,1313164320,1684163368,1042295076,1411395872,223233352,538976266,538976288,538976288,1852401184,1701344105,540876900,1163219540,538970637,538976288,538976288,1699160096,1920226164,610758249,1260404000,220488802,538976266,538976288,1397507360,537529669,538976288,538976288,1394614304,1128614981,1094918228,1260406099,220488802,538976266,538976288,538976288,538976288,1396785952,1212358725,824714322,539765043,609372227,691483176,1212358700,958932050,537529641,538976288,538976288,538976288,538976288,1713381408,1936289385,543450472,1381244989,168641877,538976288,538976288,538976288,538976288,538976288,1400137031,1852404340,1025516647,1684163360,537529636,538976288,538976288,538976288,220209184,538976266,538976288,538976288,538976288,1396785952,1212358725,942154834,537529641,538976288,538976288,538976288,538976288,1226842144,1969430598,539259506,572538428,1213472802,168644165,538976288,538976288,538976288,538976288,538976288,538976288,1920103779,540876836,1413891404,1969432612,740586098,1313164320,1920295720,539567218,691085357,538970637,538976288,538976288,538976288,538976288,1313153056,1179197508,168626701,538976288,538976288,538976288,538976288,1163084099,572531232,542069792,220364066,538976266,538976288,538976288,538976288,538976288,541477152,676218188,1920103779,1008740644,2019642656,1162368032]},{"sector":16,"data":[537529678,538976288,538976288,538976288,538976288,538976288,1663049760,611480181,1663057184,611480181,1260399392,220488802,538976266,538976288,538976288,538976288,538976288,1397507360,537529669,538976288,538976288,538976288,538976288,538976288,1109401632,223364421,538976266,538976288,538976288,538976288,538976288,1145980192,222710048,537529610,538976288,538976288,538976288,1126178848,541414209,1163086917,538970637,538976288,538976288,538976288,538976288,1161961504,168644677,538976288,538976288,538976288,541347397,1162626387,168645699,538976288,538976288,541347397,168642121,538970637,1330389024,1428181071,1279874126,1852401184,1701344105,218762596,538976266,1684956448,540876836,1920103779,537529636,1277173792,1413563215,539762757,221257772,538976266,1230521632,1430659156,1230259022,168644175,538976288,168626701,1400137031,1852404340,1869108071,2019906679,168639092,538976288,1094930252,1914717524,539785071,225210211,538976266,541477152,676218188,1920103779,1042295076,1936283168,1162368032,537529678,538976288,1344282656,1414416722,1195987488,673469512,1920103779,1444949028,992572265,538970637,1279598624,168641875,538976288,538976288,1313428048,1969430612,992244338,1095783200,673465667,544434518,1162616877,1969432654,690254450,168639273,538976288,538976288,1094930252,1914717524,539785071,543977315,1162616875]},{"sector":17,"data":[1969432654,690254450,538970637,1313153056,1179197508,538970637,1163010080,1314018644,168626701,1400137031,1852404340,1952794471,981034315,538970637,1649090592,1025516644,220340768,538976266,1229477664,1260406092,539255906,572661821,538970637,538976288,1649090592,1025516644,1263421728,220485957,538976266,1313167136,537529668,1377837088,1381323845,1158286670,1176519758,1413697109,223235913,654970122,1953066569,1768710505,221930874,538978058,1684104530,1819239200,544436847,1629515369,1931502702,1965061221,1935745136,1651336563,1914730860,1769239919,225666414,1112888074,1768835360,1818323316,224754281,537529610,1461723168,1213482057,840969248,537529653,1444945952,542590281,1313428048,218762580,538976266,1380927008,1819231008,1699967599,540876916,1330913329,168637472,538976288,538976288,542265158,540876888,1330913329,221262112,538976266,538976288,538976288,1095062048,1868767300,1936879468,539777064,1869377347,1952797554,537529641,538976288,1310728224,542398533,537529688,1310728224,542398533,1869377347,1952797554,168626701,538976288,1684107084,1952543827,218762597,538976266,1025527840,1380013600,676484176,1869767507,1884646508,678261569,220801329,538976266,1178944544,1195725600,1444953376,1163088449,1666394183,1819045746,1933668437,691087469,537529641,1176510496,1226854991,807419168,542069792,168637233,538976288,1377837088,541344069]}],[{"sector":1,"data":[537529674,538976288,1330651168,673203531,539697232,539765065,537529674,1310728224,542398533,218762569,538976266,1025527840,1380013600,676484176,1869767507,1866755180,1933667959,691087469,537529641,1142956064,1394624069,1025525573,1380013600,675759443,1869767507,1866755180,1933667959,691087469,537529641,1176510496,1226854991,807419168,542069792,168637233,538976288,1377837088,541344069,537529674,538976288,1330651168,673203531,539697232,539765065,537529674,1310728224,542398533,218762569,538976266,1178944544,1195725600,168626701,541347397,222451027,654970122,1920233033,168639087,1142956071,1819308905,1763735905,1869771886,1952675172,544108393,1701995379,221146725,1112888074,1953384736,168652658,538976288,1163019091,807423557,538970637,1230446624,541611076,539766840,168637746,538976288,1330401091,741810258,168636448,538976288,223562819,537529610,1126178848,1702129253,741613682,542188064,543236162,543760499,168632931,538976288,1330401091,892411986,538970637,1698897952,1919251566,539768096,539024418,-601874400,-589505504,551297244,551297056,-589505316,539024416,539024416,538976288,538976476,551297056,-589505316,539024416,-601826272,551345372,-589505316,-589553444,-601826084,-589505316,537529634,1126178848,1702129253,741744754,-539287008,-539221796,551231707,-618603744,-618651428,539024160,-589619168,551279836,538976288]},{"sector":2,"data":[-589309152,-606086112,539024160,-589618981,551231520,-618651429,539024160,-618651616,538976288,538976475,168633051,538976288,1953391939,924873317,-618520532,551493664,-618603744,551231520,-589356837,-539287333,539025375,539024160,538976288,551231520,539025184,-539287333,-618603553,-606281952,-538977504,551231707,551280607,-538976293,-606086368,220389343,538976266,1852130080,544367988,572533816,538976475,551231520,-606282533,539024160,-618603744,551345372,551231520,538976288,-618651616,538976288,-618603744,551231520,538976475,551231707,-618603744,-606282532,-589505760,551231708,584900384,538970637,1329799200,542265164,537529655,1126178848,1702129253,825303154,1092755500,1919242272,1634627443,1766203500,1668178286,1632444517,1701273966,1920409714,1702130793,1852383342,537529634,1126178848,1702129253,842080370,1294082092,1329868115,1112612947,1667855201,537529634,1126178848,1702129253,875700338,1344413740,1936942450,2037276960,2036689696,544175136,1953394531,1702194793,218762530,538976266,1634751264,1701604210,1937072464,1158286693,1394623566,168641109,1277626893,1953391939,221934181,538978058,1953391939,1411412581,609507397,544108320,543516788,1701734764,1769107488,1919251566,1431505421,1129062466,1702129253,1948786802,611612773,537529641,1277173792,1313428048,1096032340,825501762,1277177120,1948798533,611612773,539959337,540748082]},{"sector":3,"data":[1954047348,1158286628,1394623566,168641109,1277626893,1399087471,1702125940,654970170,1867259936,1663067233,1919904879,1701998624,1701995878,1936024430,1684955424,1667457312,1953396079,1718511904,1919295599,1293970799,1497714255,1413563438,1431505421,1867259970,1951622241,224752737,537529610,1327505440,542000464,1852796194,1680767333,539128929,542265158,1431326281,1396777044,221324064,538976266,1347307808,589321301,1126181937,1919904879,1717924432,168626701,538976288,542265158,540876897,1330913329,221851936,538976266,538976288,1313426464,1313415237,542397776,539767075,1868784481,678719093,1412311393,1701606505,538970637,538976288,1229725728,1226851662,1414877262,741417760,1667457312,1953396079,774463784,1886999617,537529701,538976288,1277173792,541412937,1431326281,824385620,1667309612,1853189987,694233204,1936016430,537529699,1310728224,542398533,537529697,220209184,538976266,1330397984,168641875,1313147405,1431511108,218762562,1699555082,221934958,538978058,1684955464,544433516,1970169165,1818579744,1769235301,1713401455,1629516399,1852404512,543517799,1970169197,1768237088,1919248500,1651864352,1852140832,1864379509,1701650546,1646294382,220820065,538978058,1920103779,1768908867,542664035,538982944,1651340622,1864397413,1969430630,1852142194,1751326836,1701013871,539429389,2019650848,1768908867,538994019,540680224,1836404256,544367970]},{"sector":4,"data":[1663067759,1667854184,1763734373,1752440942,1768693861,168653939,1663049767,1667854184,690496613,538976288,1092624442,2036429426,1953068832,1752440936,1702109285,1864397944,1752440934,1751326821,1701013871,654970227,1953046560,1867672933,539568247,975183904,1916870688,544825714,1752459639,1701344288,2003792416,543584032,543516788,1768908899,225666403,538978058,1835365481,678195011,538976297,538982944,1634890305,1769414777,1948280948,1663067496,1864395887,1752440934,1751326821,1701013871,654970227,1701322784,673476716,538976297,975183904,1916870688,544825714,1752459639,1701344288,1818585120,1702109296,1713403000,1696625263,543712097,1768908899,168650083,1646272551,1867346529,538994020,538976288,1109401658,1701605231,540700257,1431458848,540876869,1970169197,1918984736,2037674784,539780460,1397506374,540876869,1886351972,2003788832,1953701998,224750713,168634122,1377837095,1920300133,1948283758,1847616872,1700949365,1718558834,1701344288,1869112096,543515497,1952540788,1935767328,1684106528,2036473957,1634231072,1852401518,1969430631,1749250674,1701013871,654970200,1851858976,1701978212,1852994932,1752440947,1668489317,1663069793,543515759,1948280431,1797285224,1948285285,544498024,544432503,1936028272,543450483,1696624500,225732984,168634122,1129207110,1313818964,1852132640,1126703221,1131573877,1667854184,539777125,1131962701,1667854184,1663052901]},{"sector":5,"data":[1667854184,690496613,1950949420,1867672933,740894839,1702119712,1819231085,539765032,1886152040,740894756,1918976544,1701080909,537529641,168632352,538976288,1920103779,1768908867,1025533283,1920287520,1869103986,1483039593,168626701,538976288,543582503,1646292585,1830842977,744842351,1819239200,1763734127,1701650542,1646294382,539783777,1702063205,1819239200,1646293615,1932490863,1868849512,537529719,656416800,544366946,1701080941,1634037024,2032169838,1629517167,1663067506,1701999221,2037150830,544106784,543516788,1970169197,1918984736,1869488172,543236212,543323507,1970169197,538970637,1179197472,1918976544,1701080909,1162368032,537529678,538976288,1126178848,1380928591,1819239200,678654575,1126181943,1919904879,1717924432,1663052841,1919904879,741615731,1819231008,1917874799,220816997,538976266,538976288,1129270304,541414465,824192049,538970637,538976288,1380982816,542395977,1128353875,942154821,221980976,538976266,1397507360,537529669,538976288,1176510496,2036559457,544435267,1869377379,841511794,1866670124,1349676908,694576498,1868767276,1936879468,539767080,1869377347,1701990514,168634726,538976288,538976288,1330401091,1868767314,1936879468,539768616,1869377347,1701990514,539765094,1869377379,875066226,1866670124,1349676908,694576498,538970637,538976288,1866604576,1950949496,1867672933,691087479,824192288,1950949420,1866689893]},{"sector":6,"data":[691087468,824192288,1950949420,1867672933,1632446583,1869103992,694510441,824191776,1950949420,1866689893,691087468,1277176608,1663585861,1667854184,824714341,723527977,168636704,538976288,538976288,538970637,538976288,1329799200,542265164,1869377379,824734578,1126181936,1919904879,1717924432,1663052841,1919904879,741746803,1819231008,1917874799,220816997,538976266,538976288,1380927008,1025532192,1411395872,1632444495,1869103992,543515497,221323307,538976266,538976288,538976288,1129270304,541414465,1835365449,678915922,723527985,757096736,539767072,1835365449,678195011,723527985,1313164320,1869112104,610624361,690565416,840968992,538970637,538976288,538976288,1380982816,542395977,609372227,943141160,1126185769,673469000,691550001,537529659,538976288,1310728224,542398533,537529697,538976288,1277173792,1413563215,1950949445,1867672933,1632446583,1869103992,694510441,840968992,1950949420,1866689893,1632446572,1869103992,694510441,840968992,538970637,538976288,1380982816,542395977,1230132307,673466190,676218188,1768908899,673473891,1131962701,1667854184,539568485,741482539,943141152,168639273,538976288,541347397,168642121,538976288,538970637,1881612320,1953393010,1701344288,1869112096,1936024425,538970637,1329799200,542265164,1869377379,925397874,1866670124,1349676908,694576498,1868767276,1936879468,539767848,1869377347]},{"sector":7,"data":[1701990514,168634726,538976288,542265158,540876897,1330913329,2019642656,1768908867,168650083,538976288,538976288,1094930252,1226851668,1382901108,1630041967,1226845225,1131242868,1630039151,537529641,538976288,1344282656,1414416722,1869112096,610624361,992567592,538970637,1162747936,1629508696,168626701,538976288,1768843622,1684367475,1176517920,1163086913,168626701,538976288,1279871063,1330520133,1768300628,1752394094,168649829,538976288,538976288,538970637,538976288,1330061344,541218131,1970169165,2003789907,1936880963,168653423,538976288,538976288,1431523143,1699553346,1699181934,2036681588,538970637,538976288,1330061344,541218131,1970169165,1701079368,1936880963,168653423,538970637,538976288,1163075616,1413694796,1396785952,1649090629,168633444,538976288,538976288,538976288,1163084099,1380467488,691021860,572533536,540680776,1431523143,1699553346,1884648814,538970637,538976288,538976288,1094918176,1126188371,673469000,723527984,575676960,1330061370,541218131,1970169165,1853321028,538970637,538976288,538976288,1094918176,1126188371,673469000,723527984,575349280,1330061370,541218131,1970169165,1952867660,538970637,538976288,538976288,1094918176,1126188371,673469000,723527984,575480352,1330061370,541218131,1970169165,1751607634,537529716,538976288,538976288,1126178848,541414209,609372227,691220776,1330061370,541218131]},{"sector":8,"data":[1970169165,1702129221,537529714,538976288,538976288,1126178848,541414209,609372227,691483176,1330061370,541218131,1970169165,1633907525,168650096,538976288,538976288,538976288,1163084099,1397507360,538982981,1346716994,538970637,538976288,1313153056,1163075652,1413694796,538970637,1163337760,168641614,538970637,1699553312,1025537390,1920295712,1869103986,224748393,537529610,1159733280,542394712,1129207110,1313818964,168626701,1699547661,1850045806,980575604,538970637,1768300576,1752394094,1025533029,1431458848,537529669,1377837088,1381323845,218762574,1852132618,1668498805,979726433,538970637,1969430560,1749250674,1701013871,807419168,538970637,1768300576,1752394094,1025533029,1431458848,537529669,1377837088,1381323845,218762574,1852132618,980440437,538970637,1179197472,1918976544,1701080909,1162368032,537529678,538976288,1109401632,223364421,538976266,1397507360,537529669,538976288,1663049760,1131573877,1667854184,540876901,1920295720,1869103986,543515497,1632444459,1869103992,543515497,691150893,1146047776,2019642656,1768908867,723543395,168636704,538976288,541347397,168642121,538976288,1431586130,168644178,1699547661,1699509614,221934694,538976266,541477152,1299341634,543515759,1313163348,538970637,538976288,1969430560,1749250674,1701013871,673201440,1920103779,1768908867,723543395,2019642656,1768908867,757097827,539570720]},{"sector":9,"data":[541347661,1131962701,1667854184,539697253,537529649,1159733280,222647116,538976266,538976288,1920295712,1869103986,543515497,841818173,538970637,538976288,1768300576,1752394094,1025533029,1431458848,537529669,1159733280,1226851406,537529670,1377837088,1381323845,218762574,1852132618,1734955637,221934696,538976266,541477152,1299341634,543515759,1313163348,538970637,538976288,1969430560,1749250674,1701013871,673201440,1920103779,1768908867,539583843,541347661,1131962701,1667854184,539697253,537529649,1159733280,222647116,538976266,538976288,1920295712,1869103986,543515497,858595389,538970637,538976288,1768300576,1752394094,1025533029,1431458848,537529669,1159733280,1226851406,537529670,1377837088,1381323845,218762574,1852132618,2003780725,168639086,538976288,1109411401,1867346529,1411409252,223233352,538976266,538976288,1852401184,1701344105,540876900,1163219540,538970637,1279598624,168641875,538976288,538976288,1920103779,1768908867,1025533283,1969432608,1749250674,1701013871,1330454569,1632444484,1869103992,543515497,221323307,538976266,1145980192,222710048,538976266,1413829152,223236693,1292504330,1400204901,1131900776,1869836917,168639090,538976288,1330401091,1868767314,1936879468,539768872,1869377347,1701990514,539765094,1869377379,958952306,1866670124,1349676908,694576498,538970637,1330389024,1163149635,1702119712,2003784301]},{"sector":10,"data":[1920295720,1869103986,694510441,1950949420,1866689893,1969432684,1749250674,1701013871,537529641,1344282656,1414416722,1869112096,610624361,1920295720,1869103986,694510441,537529659,1344282656,1953393010,1886152008,1701734732,1818585120,1663575152,1131573877,1667854184,168634725,538976288,1431586130,168644178,1699547661,1699181934,2036681588,537529658,1260396576,539255906,572661821,538970637,1213669408,541412425,610558539,572538144,537529634,538976288,1260396576,539255906,1313415229,609830219,538970637,1163337760,168641614,538976288,1431586130,168644178,1699547661,1766356334,1967351140,1919906674,537529658,1126178848,1380928591,1819239200,678654575,1126181943,1919904879,1717924432,1663052841,1919904879,741615731,1819231008,1917874799,220816997,538976266,1129270304,541414465,1835365449,678915922,1920103779,1768908867,740910435,1702119712,1819231085,1920295720,1869103986,694510441,538970637,1380982816,542395977,1768908899,673473891,1920103779,1768908867,992568675,538970637,1163010080,1314018644,168626701,1313147405,1430659140,1230259022,168644175,1294404109,1400204901,1702130553,168639085,1293951015,544106849,1953853298,543518313,1952540788,1852793632,1819243124,1752440947,1919950949,1634887535,538979949,1936028501,1701344288,1313164576,1969627221,1769235310,168652399,1948262439,1835606127,1835363440,544501349,1970169197,1937339168,544040308]},{"sector":11,"data":[543452769,1819042147,1752440947,1885413477,1886351984,1952541042,1969627237,1769235310,1948282479,1634213999,1701602414,539429389,1701344288,1702065440,544417650,1701602675,1869182051,1393167726,1293959765,1400204901,1702130553,218762605,538976266,1296647200,1869112096,610624361,691024424,1701650476,1867674990,808593527,1830825001,1131769445,841509999,539765040,1886152040,808593444,537529641,1277173792,1413563215,539762757,221257772,538976266,1869112096,543515497,221323325,538976266,1852401184,1701344105,540876900,1397506374,218762565,538976266,1229477664,1310737740,1713394767,1936289385,224683368,538976266,538976288,1397704480,1293959765,1400204901,1702130553,1767984493,218762606,538976266,538976288,1651864352,1768908899,1025533283,221326624,538976266,538976288,1229477664,1931494732,1751343733,1701013871,807418912,538970637,538976288,538976288,1163075616,1413694796,1396785952,1751326789,1701013871,538970637,538976288,538976288,538976288,1094918176,824198483,1330061370,541218131,1970169165,1953724755,1766223205,168650092,538976288,538976288,538976288,538976288,1163084099,540684832,1431523143,1699553346,2035512686,1835365491,1953064005,538970637,538976288,538976288,538976288,1094918176,857752915,1330061370,541218131,1970169165,1953724755,1665232229,1853189987,537529716,538976288,538976288,538976288,1126178848,541414209,1193294388]},{"sector":12,"data":[1112888143,1852132640,1937331061,1382901108,1919905893,537529716,538976288,538976288,538976288,1126178848,541414209,1193294389,1112888143,1852132640,1937331061,1131242868,1919904879,537529715,538976288,538976288,1159733280,1394623566,1128614981,537529684,538976288,538976288,1176510496,2036559457,544435267,1869377379,841511794,1866670124,1349676908,694576498,1868767276,1936879468,539767080,1869377347,1701990514,168634726,538970637,538976288,538976288,1163075616,1413694796,1396785952,1970479173,1869112162,224748393,538976266,538976288,538976288,538976288,1396785952,841818181,1751326778,1701013871,673201440,1768908899,723543395,539570976,541347661,539697205,537529649,538976288,538976288,538976288,1126178848,541414209,540685101,1768908899,1025533283,1751328800,1701013871,1330454569,540352580,221323307,538976266,538976288,538976288,1145980192,1279611680,223626053,538976266,538976288,1313167136,537529668,1461723168,222580293,538976266,1230521632,1431511124,218762562,1292504330,1400204901,1702130553,1767984493,168639086,538976288,1668178246,1936475001,1819239200,678654575,1126181938,1919904879,1717924432,1663052841,1919904879,741419123,1819231008,1917874799,220816997,538976266,1280262944,1663062607,1919904879,741812339,1819231008,1917874799,740910693,1819239200,678654575,1126181940,1919904879,1717924432,537529641,1109401632,958429295]},{"sector":13,"data":[959520812,875634732,825630764,538970637,1698897952,1919251566,741421344,1934959136,1918967909,544698226,1937335659,544175136,1769365870,1702125927,1852140832,2037588085,1835365491,537529634,1126178848,1702129253,842080370,1344413740,1936942450,1953383712,1948283493,1702043759,1952671084,1830838560,544566885,1835365481,218762530,538976266,1869112096,610624361,539570472,539107389,1701603654,168632864,538976288,1768908899,673473891,1025517874,1092624928,1970234211,544437358,537529634,1663049760,1667854184,858268773,540876841,1918115874,1634954849,1869182051,572552046,538970637,1751326752,1701013871,691284004,572538144,1885688352,1937011311,168632864,538976288,1768908899,673473891,1025517877,1126179360,1919904879,220340339,537529610,1830821920,1383427685,824735599,540876841,1830828593,1131769445,824732783,540876841,537529650,1830821920,1383427685,841512815,540876841,1830828593,1131769445,841509999,540876841,537529656,1830821920,1383427685,858290031,540876841,1830828593,1131769445,858287215,540876841,168638513,538976288,1970169197,678915922,1025517876,540684576,1970169197,678195011,1025517876,221393696,538976266,1852140832,2003784309,539571496,976298045,1852140832,1819231093,539571496,825499709,538970637,168632352,538976288,1886152040,691087396,572538144,1953069125,1701344288,1852788000,1293973861,1734438497,220361317,538976266]},{"sector":14,"data":[1818585120,841491568,540876841,1684291874,1768187183,1701064564,1702126956,1667457312,1953396079,168632947,538976288,1886152040,691218468,572538144,795108417,1953064037,1818584111,543519845,1868784481,544501365,1851880052,1952670067,1936617321,537529634,1746935840,611347557,539571240,1445077053,544695657,543452769,1852404336,1701978228,1953656688,168632947,538976288,1886152040,691349540,572538144,544499027,1701995379,1663069797,1919904879,168632947,538976288,538970637,1329864736,538970637,538976288,1699618848,1869103991,543515497,1699553341,673740142,1768908899,740910435,539768096,1768908899,673473891,1830825001,1383427685,690517871,1701650476,1866691950,740894828,1818585120,690496624,1381244972,220808533,538976266,1330596896,1213669456,541412425,1131898190,1667854184,540876901,537529648,1663049760,1667854184,540876901,1131898190,1667854184,537529701,1377837088,1381323845,218762574,1852132618,1937331061,1181574516,979725417,538970637,1751326752,1701013871,691087396,572538144,1769489696,538976372,538976288,538976288,218762530,538976266,1852140832,2003784309,539570472,976429117,1852140832,1819231093,539570472,221388861,537529610,1746935840,611347557,539570472,1159864381,544500088,543516788,1701736269,1632444537,1701273966,168632946,538970637,1970479136,1869112162,543515497,1699553341,824735086,741417004,1869112096,610624361]},{"sector":15,"data":[539765032,1970169197,678915922,1830825001,1131769445,690515055,1701322796,673476716,1176513577,1163086913,218762537,538976266,1279611680,542393157,1163084099,1651864352,1768908899,168650083,538976288,538976288,1163084099,540684576,1768843622,1684367475,1411398944,222647634,538976266,538976288,1396785952,1279598661,168641875,538976288,541347397,1162626387,168645699,538976288,1431586130,168644178,168626701,1970169165,1953724755,1682271589,221934697,538976266,1869112096,610624361,539570472,539107389,1953064005,1667449120,1953396079,1953059872,544433516,218762530,538976266,1852140832,2003784309,539570472,976429117,1852140832,1819231093,539570472,221782077,538976266,537529632,1746935840,611347557,539570472,1092755517,1697604708,796158308,1701602660,1629513076,1970234211,577991790,168626701,538976288,1667396979,1667854184,540876901,1970169165,539767080,1663052849,1667854184,690496613,1701650476,1867674990,740894839,1852140832,1819231093,539765032,1886152040,740894756,1279346208,220808531,537529610,1394614304,1128614981,1094918228,1931494739,1751343733,1701013871,538970637,538976288,1094918176,824198483,1682251834,1665234025,1853189987,168653684,538976288,538976288,1163084099,1397507360,537529669,1159733280,1394623566,1128614981,537529684,1377837088,1381323845,218762574,1292504330,1400204901,1702130553,1667449197,1953396079,218762554]},{"sector":16,"data":[538976266,1380927008,1025532192,1411395872,959520847,538970637,538976288,1179197472,1769100320,1630020717,1970234211,1630041198,1767124521,694512756,572538144,1213472802,168644165,538976288,538976288,538976288,1768908899,673473891,1025517921,1195987488,673469512,609375315,740909352,539570720,773988395,757935392,757935405,757935405,757935405,757935405,168632864,538976288,538976288,1163086917,538970637,538976288,538976288,1751326752,1701013871,694233124,1377844512,1414022985,1414735908,1630020690,840969257,539697193,572534306,1629498144,1970234211,1630041198,1767124521,224750708,538976266,538976288,1145980192,222710048,538976266,538976288,1852140832,2003784309,539582760,543236157,221388843,538976266,538976288,1852140832,1819231093,539582760,959520829,538970637,538976288,1701322784,673476716,1025517921,1381257760,673467721,1868784481,678719093,1143875937,694383461,538970637,1162747936,1629508696,168626701,538976288,1667396979,1667854184,540876901,1970169165,539767080,539769137,1768908899,673473891,1830825001,1383427685,690517871,1701650476,1866691950,740894828,1818585120,690496624,1095114796,692409164,168626701,538976288,1931494985,1751343733,1701013871,807419424,1162368032,537529678,538976288,1159733280,1416915300,1936613746,1970481184,1869112162,694510441,538970637,1313153056,1179197508,538970637,1163010080,1314018644]},{"sector":17,"data":[168626701,1699547661,2035512686,1835365491,1869636946,221934706,538976266,1869112096,610624361,539570472,539107389,544499022,1953656663,1699881064,1953656688,538976288,572530720,538970637,1701650464,1867674990,691087479,857750816,1701650490,1866691950,691087468,857750816,537529650,1746935840,611347557,539570472,1445077053,544695657,543452769,1852404336,1701716084,1870078068,543716466,1869636978,220361842,537529610,1176510496,1629508175,824196384,542069792,168638769,538976288,538976288,1411401289,611150194,1667457320,1953396079,774463784,1819568468,1025517925,539107872,1313163348,538970637,538976288,538976288,1751326752,1701013871,543238180,691085355,1377844512,1414022985,1414735908,1630020690,840969257,539697193,757083682,757935405,757935405,757935405,757935405,572534061,538970637,538976288,1279598624,168641875,538976288,538976288,538976288,1768908899,673473891,539697249,1025517873,1195987488,673469512,609375315,740909352,539570720,773988395,723526176,1667457312,1953396079,774463784,1819568468,537529701,538976288,1159733280,1226851406,537529670,538976288,1830821920,1383427685,1630041967,824191776,540876841,539697249,537529651,538976288,1830821920,1131769445,1630039151,824191776,540876841,168636979,538976288,538976288,1886152040,543238180,691085355,572538144,1852404304,539107444,1414668331,609044818,1667457320]}]],[[{"sector":1,"data":[1953396079,774463784,1819568468,723528037,1948262944,1936613746,1769235297,1931505263,1634561397,220363122,538976266,1480936992,224469076,537529610,1931485216,1751343733,1701013871,1293958432,678784613,840969265,1663052848,1667854184,690496613,1701650476,1867674990,740894839,1852140832,1819231093,539765032,1886152040,740894756,1279346208,220808531,537529610,1394614304,1128614981,1094918228,1931494739,1751343733,1701013871,538970637,538976288,1094918176,824198483,538970637,538976288,538976288,1699618848,1919899508,1699899508,1953656688,538970637,538976288,1094918176,840975699,542069792,168636466,538976288,538976288,538976288,1851880020,1952670067,1399746409,1634561397,673216882,1667396979,1667854184,539828325,168634673,538976288,538976288,1163084099,1397507360,537529669,1159733280,1394623566,1128614981,537529684,1377837088,1381323845,218762574,1852132618,1937331061,1131242868,1919904879,168639091,538976288,1768908899,673473891,1025517873,1293951520,1668247151,1836020328,1666392165,1701668200,168632864,538976288,1768908899,673473891,1025517874,1126179360,795763065,1702194242,1751339808,543518053,168632864,538976288,1768908899,673473891,1025517875,1109402144,795178348,1851881795,1751339808,543518053,168632864,538976288,1768908899,673473891,1025517876,1377837600,1194288229,544826738,1701339987,538994029,168632864,538970637,1701650464]},{"sector":2,"data":[1867674990,691087479,857750816,1701650490,1866691950,691087468,874528032,537529649,1830821920,1383427685,841512815,540876841,1830828596,1131769445,841509999,540876841,168636724,538976288,1970169197,678915922,1025517875,540685600,1970169197,678195011,1025517875,221328416,538976266,1852140832,2003784309,539571240,976625725,1852140832,1819231093,539571240,825499709,168626701,538976288,1886152040,691087396,572538144,1869377347,1668489330,1701668200,1919903264,1852796192,1919443823,543518063,543452769,541344588,1886611812,1937334636,537529634,1746935840,611347557,539570728,1126309949,1919904879,1751348000,543518053,1952540006,1852404341,2036539495,220360289,538976266,1818585120,858268784,540876841,1819231010,1931506287,1835362403,1701191781,1920300129,543649385,1702194274,537529634,1746935840,611347557,539571240,1126309949,1919904879,1751348000,543518053,1952540006,1852404341,1701978215,168632932,538970637,1970479136,1869112162,543515497,1699553341,824735086,741613612,1869112096,610624361,539765032,1970169197,678915922,1830825001,1131769445,690515055,1701322796,673476716,1176513577,1163086913,218762537,538976266,1279611680,542393157,1163084099,1651864352,1768908899,168650083,538976288,538976288,1163084099,1411395872,221519951,538976266,538976288,538976288,1819231008,1917874799,1025533541,1651864352,1768908899,168650083,538976288]},{"sector":3,"data":[538976288,538976288,1702256979,1952543827,537529701,538976288,1126178848,541414209,1163086917,538970637,1313153056,1163075652,1413694796,538970637,1163010080,1314018644,168626701,1313147405,1431511108,218762562,1699620618,1919899508,1699899508,1953656688,654970170,1917853728,1937010281,1952804384,1919907616,1914726516,1919905893,1869881460,1919120160,544105829,543452769,1852404336,225600884,1112888074,1952796192,1953656663,1885688424,225735279,538976266,1296647200,1936941344,1850307685,678978916,740899121,1634298912,1768712546,1850308980,678978916,220805425,537529610,1830821920,1933670497,544499059,221257789,538976266,2019650848,1650551116,1953066089,540876921,218762544,538976266,1380927008,1025532192,1411395872,959520847,538970637,538976288,1179197472,1667457312,1953396079,774463784,1886999617,540876901,539115810,1313163348,538970637,538976288,538976288,1634541600,1936933240,1025537125,2019650848,1702064961,539697268,537529649,538976288,538976288,1629495328,1952805747,1701080649,1634543736,1936933240,539587685,224469053,538976266,538976288,1397507360,541477189,1868784481,678719093,1093544289,1701869908,572538144,1411392076,223233352,538976266,538976288,538976288,2019650848,1650551116,1953066089,540876921,1282957677,1768055145,2037672300,824191776,538970637,538976288,538976288,1768693792,1818845793,1232696425,2019910766,2019650856]},{"sector":4,"data":[1650551116,1953066089,1025517945,168648992,538976288,538976288,541347397,168642121,538976288,1415071054,168648992,538970637,1277632544,544239471,1769238133,1178345580,1763720754,1919950963,1702064997,537529700,1713381408,1936289385,543450472,1095114813,222647116,538976266,223298592,538976266,538976288,607221024,572538144,538976348,538976288,538976288,538976288,1545609248,589505572,589507619,589507619,589508131,537529634,538976288,1965039648,1025516594,542908960,538976288,538976288,538976288,727457824,740500516,740500259,740500259,774054691,220341027,537529610,538976288,1126178848,1380928591,1819239200,678654575,1126181941,1919904879,1717924432,1663052841,1919904879,741615731,1819231008,1917874799,220816997,538976266,538976288,1129270304,541414465,824192049,1380982842,542395977,1128353875,942154821,221980976,538976266,538976288,1129270304,541414465,874523697,1380982842,542395977,1952796194,1919899424,1377855604,1919905893,572537460,1142958880,608523329,537529659,538976288,1344282656,1953393010,1886152008,1701734732,1178346016,2017803570,540963945,1008738336,1346188102,1953393010,1885688352,1047818863,218762530,538976266,538976288,1280262944,1663062607,1919904879,741812339,1819231008,1917874799,740910693,1819239200,678654575,1126181940,1919904879,1717924432,537529641,538976288,1109401632,840988783,741417004,741618208]},{"sector":5,"data":[221262880,538976266,538976288,2020557344,539767328,539767092,539767858,168636472,538970637,538976288,1330389024,1163149635,539767328,540685873,1313428048,539107412,1163088705,572543828,538970637,538976288,1935745056,1416914291,1818326127,540876835,537529648,538976288,1629495328,824196384,538970637,538976288,1868767264,829714037,824196384,538970637,538976288,1213669408,541412425,1027350625,2019650848,1702064961,537529716,538976288,538976288,1713381408,610626665,572538144,1701736301,539111033,1984110635,673477737,1702064993,1684949364,1630042213,168634665,538976288,538976288,538976288,1313165391,1818846752,1176511589,1377849935,1329876545,1396777037,540091168,542000460,876093501,538970637,538976288,538976288,1229332512,541346885,539767075,1092628785,1635131475,610560364,540352556,1226855233,2019642735,1868784978,740582514,1092630560,1867063379,1634492738,610624366,538970637,538976288,538976288,1162289184,824385620,221323308,538976266,538976288,538976288,541477152,1768710518,1025516644,1213473312,1397314377,1229734230,1411392068,223233352,538976266,538976288,538976288,538976288,1129270304,541414465,539697202,1853189987,539767156,1344289331,1414416722,1230198048,1965049678,540746801,1868784481,678719093,1702064993,1684949364,1630042213,1412311337,1701606505,1447239739,1867065412,1634492738,610624366,537529641,538976288]},{"sector":6,"data":[538976288,538976288,1629495328,1952805747,1635020628,1025516396,1936941344,1867805797,594305396,1126181664,1227375702,1818313327,1701015137,168634660,538976288,538976288,538976288,538976288,1853189987,1025519988,1970234144,540111982,221323307,538976266,538976288,538976288,1145980192,222710048,538976266,538976288,538976288,1330397984,168641875,538976288,538976288,538976288,540876897,539697249,537529649,538976288,1461723168,222580293,537529610,538976288,1277173792,1413563215,741482565,976565536,1230131232,572544078,1095322656,1229736258,1397049684,168632864,538976288,538976288,1650551148,1953066089,1953453177,539192417,221257789,538976266,538976288,1025532192,168636704,538976288,538976288,1853189987,1025520244,168636704,538976288,538976288,1279871063,543236165,1830829372,1766619233,1818845793,226063465,538976266,538976288,538976288,1818846752,1025516645,1869423136,779707758,539697186,1953068611,1768695844,1818845793,1232696425,2019910766,690577704,538970637,538976288,538976288,1347362848,1713393221,610626665,1380927008,1312903712,541937476,589321025,1162616881,540876878,168637496,538976288,538976288,538976288,1279609158,824385604,825303084,542327072,1768710518,539763812,1396777013,1299138848,1699903585,1685221219,941632548,542327072,1631743817,1668178284,168633445,538976288,538976288,538976288,542393671,539767075]},{"sector":7,"data":[537529649,538976288,538976288,1226842144,1635131462,610560364,572538144,1397311572,1096176457,574900556,1162368032,537529678,538976288,538976288,538976288,1277173792,1413563215,540155973,1868767275,846491253,859054124,1380982842,542395977,1313428309,829759559,1629502244,1970234211,1814590574,1768055145,2037672300,1701080649,694233208,1767124521,996502644,1146503968,1114589480,1851878497,690251107,538970637,538976288,538976288,538976288,1768693792,1818845793,1417245801,1818326127,540876835,1650551148,1953066089,1953453177,539192417,1447239723,1867065412,1634492738,610624366,537529641,538976288,538976288,538976288,1663049760,1953396079,540876850,1853189987,723530356,168636704,538976288,538976288,538976288,541347397,168642121,538976288,538976288,538976288,1397705795,537529669,538976288,538976288,1629495328,1629502752,824191776,538970637,538976288,1163337760,168641614,538976288,538976288,1663059529,1953396079,540942386,1853189987,1411395956,542000456,1853189987,1025519988,1970234144,221410414,538976266,538976288,1129270304,541414465,539697202,1853189987,539767156,540685618,1313428048,757211220,757935405,757935405,757935405,168632877,538976288,538976288,1094930252,840975700,1663052576,1953396079,908078129,1344289333,1414416722,757932576,757935405,757935405,757935405,537529634,538976288,1277173792,1413563215,540221509]},{"sector":8,"data":[1868767275,829714037,976429100,1230131232,1428182094,1196312915,607286560,1411522619,1818326127,1936941344,577991781,1935745083,1416914291,1818326127,168639267,538976288,538976288,1094930252,857752916,1663052576,1953396079,874523697,1344289331,1414416722,1230198048,1965049678,540746802,1953453090,1814064225,1768055145,1769236844,992113509,1634298912,1768712546,1867807092,594305396,168626701,538976288,538976288,1330401091,1868767314,1936879468,539768104,1869377347,1701990514,539765094,1869377379,875066226,1866670124,1349676908,694576498,538970637,538976288,1330389024,1163149635,539767072,540685108,1313428048,1398087764,541544009,992227957,538976800,1162747936,1331109972,977818706,1629502242,1952805747,1635020628,757080940,1634298912,1768712546,1867807092,594305396,168626701,538976288,538976288,540692292,610558539,1226849568,1497713486,1277180452,542134095,1230261845,1649090636,1008739428,572661822,168626701,538976288,538976288,1162626387,1126192195,541414209,610558539,538976288,538976288,538976288,538976288,538976288,538976288,538976288,1851869223,543517796,1667592275,543973737,1937335659,538970637,538976288,538976288,1094918176,1126188371,673469000,723527984,574366240,538976288,538976288,538976288,538976288,538976288,1176969248,537529650,538976288,538976288,538976288,1713381408,1936289385,543450472,1381244989,168641877]},{"sector":9,"data":[538976288,538976288,538976288,1163084099,1380467488,691021860,572533536,538976829,538976288,538976288,538976288,538976288,538976288,221464103,538976266,538976288,538976288,538976288,1431523143,1699618882,1919899508,1699899508,1953656688,1852404304,537529716,538976288,538976288,1126178848,541414209,1163086917,538970637,538976288,538976288,538976288,1162166816,537529680,538976288,1159733280,1394623566,1128614981,537529684,1277173792,542134095,1230261845,1768300620,1752394094,168649829,538976288,1414092869,1112888096,168626701,1467245902,1752461935,1869636946,1917875314,980708969,538970637,1917853728,1215589993,1282436197,543518313,168632866,220209184,538976266,2020557344,539768864,539766834,539767857,168636982,538976288,1953391939,824210021,572533808,1885696592,543519329,1852404336,544367988,1277193839,540103760,544370534,1869636978,220361842,538976266,1852130080,544367988,539767345,1953056802,1850031136,1047684468,544175136,1852404336,1864379508,1161568370,540959603,1629515636,1953656674,218762530,538976266,978273312,1684163360,540876836,1162563145,540681305,1347374924,1229477664,1260406092,539255906,1126186556,673469000,539570993,541347393,610558539,540949536,609372227,691483176,168626701,538976288,1260406345,539255906,1212358717,824714322,1411393843,223233352,538976266,538976288,2020557344,539768864,539766834]},{"sector":10,"data":[539767857,168636982,538976288,538976288,1953391939,824210021,572533809,1852404304,1735289204,1885696544,779383407,220343854,538976266,538976288,607155488,572538144,538976288,538976288,538976288,538976288,538976288,538991648,538976288,538976288,538976288,538976288,220340316,538976266,538976288,607221024,572538144,538976288,538976288,538976288,538976288,538976288,538976288,538976348,538976288,538976288,538976288,542908448,589505572,589507619,589507619,589508131,537529634,538976288,1965039648,1025516594,538976800,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,757935405,757935405,757935405,220343597,538976266,538976288,607352096,572538144,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,1025515552,1027423549,1027423549,1027423549,537529634,538976288,1965039648,1025516596,538976800,538976288,538976288,538976288,538976288,538976288,542908448,538976288,538976288,538976288,727457824,740500516,740500259,740500259,774054691,220341027,538976266,538976288,1769099296,1917154414,540876914,1397506374,537529669,538976288,1327505440,1380261966,542265170,1330925383,1920091424,1918136943,538996833,538976288,538976288,538976288,656416800,1936028704,1718165620,1769107488,1919251566]},{"sector":11,"data":[544434464,1852731235,1702126437,537529700,538976288,1277173792,1313428048,537529684,538976288,1226842144,1917853766,1165258345,1025536626,1279346208,1411401043,223233352,538976266,538976288,538976288,1380994080,542395977,1347166266,1414416722,1277180448,1313428048,540680276,1230131276,975197262,1380994080,223628873,538976266,538976288,538976288,1698909216,1919251566,542188064,543236162,543760499,168632931,538976288,538976288,538976288,1852130124,544367988,1327516962,1159745056,538990880,1092635936,1092636192,1159743264,220353056,538976266,538976288,538976288,1380994080,542395977,1347166266,1414416722,538970637,538976288,538976288,1129062432,1702129253,1310859378,1461736517,1213485647,1346720288,978604623,539107360,1094983723,220480852,538976266,538976288,538976288,1698909216,1919251566,757932576,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,168632877,538976288,538976288,538976288,1230131276,1428182094,1196312915,607155488,1092755515,1413829459,220346963,538976266,538976288,538976288,1936941344,1867805797,594305396,807419168,538970637,538976288,538976288,543236128,221323325,538976266,538976288,538976288,1229477664,1629504844,540884000,1098408301,1952805747,538970637,538976288,538976288,538976288,1768300576,539256172,1830953021,2036690543,723526190,1769358112]},{"sector":12,"data":[1630020724,1952805747,1701080649,694233208,537529641,538976288,538976288,538976288,1327505440,542000464,1701603686,1329995812,1095901266,1297040462,542327072,1277178147,1025527365,221526048,538976266,538976288,538976288,538976288,1162429984,589317196,824192049,1396777009,1818326560,740582505,1092629792,1867063379,1383620941,1919902565,539763812,1396777016,1114589472,1851878497,220489059,538976266,538976288,538976288,538976288,1413826336,741417760,168636704,538976288,538976288,538976288,538976288,1981826633,1684630625,540876836,1229476898,1448298835,1145654337,1213472802,168644165,538976288,538976288,538976288,538976288,538976288,1230131276,1428182094,1196312915,607221024,1667309627,1853189987,1935747188,1232364915,2019910766,690577704,1953059886,540763500,675567171,1631743817,1668178284,220800101,538976266,538976288,538976288,538976288,538976288,1936941344,1867805797,594305396,1629502752,1952805747,1635020628,723526508,1146503968,1114589480,1851878497,690251107,538970637,538976288,538976288,538976288,1313153056,1179197508,538970637,538976288,538976288,538976288,1279467552,541414223,168636707,538976288,538976288,538976288,538976288,540876897,539697249,537529649,538976288,538976288,1461723168,222580293,538976266,538976288,538976288,1380994080,542395977,220476021,538976266,538976288,538976288,1380994080,542395977]},{"sector":13,"data":[1313428309,880091207,572537636,1635020628,1935745132,1937007987,1629502242,1952805747,1635020628,168633196,538976288,538976288,538976288,1230131276,168645710,538976288,538976288,538976288,1230131276,168645710,538976288,538976288,538976288,1230131276,1428182094,1196312915,607155488,1277304891,1229078857,1230260556,574247749,538970637,538976288,538976288,1768693792,1818845793,1417245801,1818326127,540876835,537529648,538976288,538976288,1629495328,824196384,538970637,538976288,538976288,1213669408,541412425,1027350625,2019650848,1650551116,1953066089,537529721,538976288,538976288,538976288,1713381408,610626665,572538144,1701736301,539111033,1984110635,673477737,1650551148,1953066089,1684949369,1630042213,168634665,538976288,538976288,538976288,538976288,1313165391,1818846752,1176511589,1377849935,1329876545,1396777037,540091168,542000460,876093501,538970637,538976288,538976288,538976288,1229332512,541346885,539767075,1092628785,1635131475,610560364,540352556,1226855233,2019642735,1868784978,740582514,1092630560,1867063379,1634492738,610624366,538970637,538976288,538976288,538976288,1162289184,824385620,221323308,538976266,538976288,538976288,538976288,541477152,1768710518,1025516644,1213473312,1397314377,1229734230,1411392068,223233352,538976266,538976288,538976288,538976288,538976288,1380994080,542395977,1313428309]},{"sector":14,"data":[829759559,1629502244,1970234211,1814590574,1768055145,2037672300,1701080649,694233208,1767124521,996502644,1146503968,1114589480,1851878497,690251107,538970637,538976288,538976288,538976288,538976288,1768693792,1818845793,1417245801,1818326127,540876835,1650551148,1953066089,1953453177,539192417,1447239723,1867065412,1634492738,610624366,537529641,538976288,538976288,538976288,1159733280,1226851406,537529670,538976288,538976288,538976288,1126178848,1163087692,221324064,538976266,538976288,538976288,538976288,1025532192,723542304,168636704,538976288,538976288,538976288,1145980247,538970637,538976288,538976288,1347166240,1414416722,607286560,538970637,538976288,538976288,1347166240,1414416722,1230198048,1965049678,540746804,1953453090,1814064225,1768055145,1769236844,992113509,1634298912,1768712546,1867807092,594305396,538970637,538976288,538976288,1347166240,1414416722,168626701,538976288,538976288,538976288,1230131276,168645710,538976288,538976288,538976288,1230131276,1965053006,168633395,538976288,538976288,538976288,1230131276,1428182094,1196312915,607417632,1310859323,1461736517,1213485647,1629502242,1952805747,1635020628,757080940,1634298912,1768712546,1867807092,594305396,538970637,538976288,538976288,1129062432,1702129253,757211250,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405]},{"sector":15,"data":[757935405,757935405,220343597,538976266,538976288,538976288,1380994080,542395977,1347166266,1414416722,1277180448,1313428048,537529684,538976288,1159733280,1226851406,537529670,538976288,1327505440,1380261966,542265170,1330925383,168636448,538976288,541347397,168642121,538976288,1431586130,168644178,541347397,222451027,654970122,1852404304,1818577012,1852394608,168639077,1344282663,1953393010,1701322867,1948282988,544503909,1948282479,1646290280,1869902959,1869750381,1852383351,1701344288,1869770784,544367984,1869377379,1393167730,1344291413,1953393010,1886152008,1701734732,1701324832,690253932,538970637,1329799200,542265164,1869377379,891843442,1866670124,1349676908,694576498,1868767276,1936879468,539767848,1869377347,1701990514,168634726,538976288,1094930252,840975700,824192053,538970637,1380982816,542395977,1128353875,942154821,221980976,538976266,1852130080,544367988,539768114,1886152040,1158286628,1394623566,168641109,1395067405,1399158369,1702125940,654970170,1632837664,1663067510,1919904879,1701998624,1701995878,543515502,543452769,1868784481,544501365,1868983913,1952542066,544108393,572551028,1162760013,1094987353,1679827540,543257697,1701603686,1393167662,1394623061,1399158369,1702125940,538970637,1347362848,572542533,1701736301,1633955449,1176511092,1327518287,1431327829,1396777044,221389600,538976266,1230131232,589321294]},{"sector":16,"data":[1126181938,1919904879,1717924432,538970637,168632352,538976288,542265158,540876897,1330913329,221851936,538976266,538976288,1230131232,589321294,1629498418,1970234211,1630041198,1767124521,224750708,538976266,538976288,1230131232,589321294,1629498418,1970234211,1630041198,1413557801,224751737,538976266,538976288,1230131232,589321294,1629498418,1970234211,1630041198,1698967081,168649587,538976288,1415071054,168648992,538976288,538970637,1279467552,541414223,168636963,541347397,222451027,654970122,1869767507,1866755180,221933175,538978058,1819042115,1701344288,1936941344,1818389861,1919950969,1634887535,1869881453,1919120160,543976559,543516788,1701995379,1679847013,225343343,1112888074,1919111968,1147956335,225343343,538976266,1178944544,1195725600,1444953376,1163088449,1666394183,1819045746,1853321028,678261569,220801329,538976266,1279345440,1648435276,1970040691,1445487988,1414550081,1666394194,1819045746,1853321028,678261569,690563377,538970637,1162092576,1163075654,1158286663,1394623566,168641109,1395067405,1819243107,980440428,539429389,1818313504,1948283756,1629513064,1835365235,544828514,1735357040,544039282,1931505524,1819243107,1752440940,1668489317,1852138866,225473824,1112888074,1919111968,1433169007,537529712,1142956064,1394624069,1025525573,1380013600,675759443,1869767507,1884646508,678261569,220801329,538976266,1279345440]},{"sector":17,"data":[1648435276,1970040691,1445487988,1414550081,1666394194,1819045746,1933668437,691087469,168634665,538976288,541476164,222774611,1145980170,1112888096,168626701,1634751271,1701604210,1937072464,168639077,1126178855,1952540018,1713402725,1752392044,543649385,1685221218,1713402469,1763734127,1869771886,1919120160,225338725,1112888074,1634751264,1701604210,1937072464,218762597,538976266,1280262944,874533455,221257772,538976266,539255072,706879549,538976288,538976298,538978848,539631648,706748448,538976288,538976298,538978848,539631648,706748448,538976288,538976298,538978848,539631648,706748448,538976288,538976298,538978848,539631648,706748448,538976288,537529634,1461723168,1162627400,1263421728,539253061,572538428,1461729826,541347397,1701593895,1797288545,1868724581,543453793,1717990754,168653413,538970637,1213669408,541412425,1162563145,1025516633,220340768,538976266,538976288,1380927008,1025532192,1411395872,221585487,538976266,538976288,538976288,1129270304,541414465,824192049,538976288,538976288,538976288,538976288,538976288,538976288,538976288,1919952672,544501353,1769107304,1953394554,1931504737,1802658160,225666412,538976266,538976288,538976288,1230131232,1293964366,673465417,539763809,941632609,221980976,538976266,538976288,538976288,1129270304,541414465,539767346,537529649,538976288,538976288,1344282656]}],[{"sector":1,"data":[1414416722,1145654560,610347044,540418092,744562733,691025952,218762555,538976266,538976288,538976288,1380927008,1025532448,1411396128,825368655,538976288,538976288,538976288,538976288,538976288,538976288,1917855520,544501353,1953654102,1818321769,1634759456,1701604210,537529715,538976288,538976288,538976288,1663049760,673201440,539697249,1293953378,891307087,538970637,538976288,538976288,538976288,1179197472,1025532704,1411395872,223233352,538976266,538976288,538976288,538976288,538976288,1129270304,541414465,941632610,537529648,538976288,538976288,538976288,538976288,1344282656,1414416722,573186592,537529659,538976288,538976288,538976288,538976288,1277173792,1413563215,858923077,1646275872,221323308,538976266,538976288,538976288,538976288,538976288,1230131232,572544078,221979178,538976266,538976288,538976288,538976288,1397507360,537529669,538976288,538976288,538976288,538976288,1277173792,1413563215,744628293,221263904,538976266,538976288,538976288,538976288,538976288,1230131232,572544078,221979168,538976266,538976288,538976288,538976288,538976288,1129270304,541414465,757084978,539779616,537529649,538976288,538976288,538976288,538976288,1344282656,1414416722,572531232,537529659,538976288,538976288,538976288,1159733280,1226851406,537529670,538976288,538976288,1310728224,542398533,537529698]},{"sector":2,"data":[538976288,1310728224,542398533,537529697,1461723168,222580293,1145980170,1112888096,168626701,1634882599,1667330926,1852795252,1835890003,981037665,539429389,1769099296,1948284014,1936613746,1769235297,1931505263,1634561397,1948285298,1768693871,1881171310,1953393010,168653413,541218131,1851880020,1952670067,1399746409,1634561397,673216882,1835365481,537529641,1176510496,2036559457,544435267,1869377379,841511794,1866670124,1349676908,694576498,1868767276,1936879468,539767080,1869377347,1701990514,168634726,538976288,1852404304,1818577012,1852394608,572661861,538970637,1866604576,741875832,741356064,741617952,221394464,538976266,1852130080,544367988,539766833,1701990434,1701994864,1769107488,1919251566,544108320,827609164,1919903264,1885696544,578056815,538970637,1698897952,1919251566,741486880,1766335008,1161568372,1919251566,1869881406,1769107488,539784302,1008759407,1046704965,544175136,1919902305,168632948,538970637,1329864736,1649090618,1025516644,1263421728,975460677,1330596896,1213669456,541412425,610558539,540949536,609372227,691220776,1145979168,1684163360,1044127780,1380467488,926033956,218762537,538976266,541477152,610558539,1126186272,673469000,539570993,1313163348,538970637,538976288,1866604576,741875832,741356064,741617952,221394464,538976266,538976288,1852130080,544367988,539767089,1769099298,1852404846,1701978215]},{"sector":3,"data":[1953656688,573451822,538970637,538976288,1917853728,1165258345,1025536626,1279346208,168641875,538976288,538976288,1159745103,1380930130,1414481696,1917132879,1416785778,544235890,538976288,538976288,538976288,538976288,1702109223,1763734643,1919950950,1702129257,1936269426,1852793632,1952671086,168649829,538976288,538976288,1230131276,168645710,538976288,538976288,1344292425,1953393010,544371269,1095114813,541414220,1313163348,538970637,538976288,538976288,1380982816,223628873,538976266,538976288,538976288,1380994080,542395977,1347166266,1414416722,1277180448,1313428048,540680276,1230131276,975197262,1380994080,223628873,538976266,538976288,538976288,1698909216,1919251566,542188064,543236162,543760499,168632931,538976288,538976288,538976288,1852130124,544367988,1327516962,1159745056,538990880,1092635936,1092636192,1159743264,220353056,538976266,538976288,538976288,1380994080,542395977,1347166266,1414416722,538970637,538976288,538976288,1129062432,1702129253,1411522674,1936613746,1769235297,1931505263,1634561397,540703090,539697186,1835627092,1667311652,1853189987,1953048692,774466917,1819568468,168634725,538976288,538976288,538976288,1852130124,544367988,1163149636,537529636,538976288,538976288,1277173792,1313428048,537529684,538976288,538976288,1965039648,1025516597,757932576,757935405,763112749,757935405,757955629]},{"sector":4,"data":[757935405,757935405,757935405,757935405,757935405,763112749,757935405,757935405,757955629,757935405,757935405,757935484,757935405,757935405,573386029,538970637,538976288,538976288,1347166240,1414416722,607483168,538970637,538976288,538976288,1347166240,1414416722,538976800,1702125892,545005600,593913170,1142979616,1919120229,1769238633,538996335,538976288,538976288,545005600,1919118921,1702060389,1142979616,1701995365,543519585,1109401724,1851878497,538994019,168632864,538976288,538976288,538976288,1230131276,1965053006,168633397,538976288,538976288,538976288,607155488,572538144,538976348,1545609248,538991740,2086412320,538976348,538976288,538976288,538976288,538976288,1545609248,168632956,538976288,538976288,538976288,539243125,589439037,590095139,590226211,168632867,538976288,538976288,538976288,539243381,589439037,590095139,590095139,590226211,168632867,538976288,538976288,538976288,539243637,539107389,538976288,538976288,168632864,538970637,538976288,538976288,1768300576,539256172,1830953021,2036690543,723526190,1769358112,1764238452,695035252,538970637,538976288,538976288,1347362848,1713393221,610626665,1380927008,1312903712,541937476,589321025,1162616881,540876878,168637496,538976288,538976288,538976288,1279609158,824385604,540549164,1226855233,1952531567,539763813,1092628529,1867063379]},{"sector":5,"data":[610690386,808788012,542327072,1698983753,740582259,1092630560,1867063379,828860742,941632548,542327072,1766223689,220476007,538976266,538976288,538976288,1162429984,589317196,824192049,1396777009,1818326560,740582505,1092629792,1867063379,1383620941,1919902565,539763812,1396777016,1114589472,1851878497,220489059,538976266,538976288,538976288,1413826336,741417760,168636704,538976288,538976288,538976288,1981826633,1684630625,540876836,1229476898,1448298835,1145654337,1213472802,168644165,538976288,538976288,538976288,538976288,1634492738,593847150,807419168,538970637,538976288,538976288,538976288,1632444448,1667584632,543453807,1096163389,1867065420,1383620941,1919902565,220800100,538976266,538976288,538976288,538976288,1920287520,1667584626,543453807,221323325,538976266,538976288,538976288,538976288,1229477664,1126188364,1383232117,1919902565,1027350628,2019642656,1868784978,168649842,538970637,538976288,538976288,538976288,538976288,1162289184,824385620,1967333420,1699902066,1685221219,824191776,538970637,538976288,538976288,538976288,538976288,1766203424,539177319,1447239741,1867065412,828860742,168634660,538976288,538976288,538976288,538976288,538976288,845637958,540876835,675567171,1766223689,690238055,168626701,538976288,538976288,538976288,538976288,538976288,1230131276,1428182094,1196312915,607155488]},{"sector":6,"data":[1867063355,1702125892,1226849060,1717916271,1226849060,1936016495,221979747,538976266,538976288,538976288,538976288,538976288,541477152,845637958,540876835,1312890928,1766203460,539177319,540024893,1313163348,538970637,538976288,538976288,538976288,538976288,538976288,1347166240,1414416722,1230198048,1965049678,723526708,578560544,1965042464,723526708,578560544,1965042464,540746803,1634492738,593847150,538970637,538976288,538976288,538976288,538976288,1279598624,1179206995,1734952480,1025516338,1411395616,223233352,538976266,538976288,538976288,538976288,538976288,538976288,1818313248,1701015137,540876835,1634492738,593847150,1176513312,590440297,538970637,538976288,538976288,538976288,538976288,538976288,1347166240,1414416722,1230198048,1965049678,723526706,578560544,1965042464,723526708,578560544,1965042464,540746803,828860742,1109408547,1851878497,220423523,538976266,538976288,538976288,538976288,538976288,1397507360,537529669,538976288,538976288,538976288,538976288,538976288,1109401632,1851878497,539190627,1631723581,1668178284,757080933,1734952480,168633138,538976288,538976288,538976288,538976288,538976288,538976288,1230131276,1428182094,1196312915,607417632,572533536,723526268,607286560,572533536,723526268,607352096,1766203451,992162407,1818313248,1701015137,537529635,538976288,538976288,538976288]},{"sector":7,"data":[538976288,1159733280,1226851406,537529670,538976288,538976288,538976288,538976288,1126178848,1383232117,1919902565,540876900,1920103747,1868784978,723543154,168636704,538976288,538976288,538976288,538976288,1145980247,538970637,538976288,538976288,538976288,1347166240,1414416722,607483168,538970637,538976288,538976288,538976288,1347166240,1414416722,1277180448,1313428048,537529684,538976288,538976288,1159733280,1226851406,537529670,538976288,538976288,1327505440,1380261966,542265170,1330925383,168636448,538976288,538976288,541347397,168642121,538976288,538976288,1397705795,537529669,1159733280,1226851406,1158286662,1394623566,168641109,1411844621,611215730,654970170,1699880992,1702260589,1819635232,1851859052,1886593124,1936024417,1869768224,1752440941,1852121189,1718558820,1931501856,1852404340,168636007,1129207110,1313818964,1769100320,673195117,220800088,537529610,1226842144,609755206,572538144,1213472802,168644165,538976288,538976288,1835627092,540876836,168632866,538976288,1163086917,538970637,538976288,1634476064,1749251187,1025536609,168636448,538976288,538976288,542265158,540876897,1330913329,1313164320,690247720,538970637,538976288,538976288,611917856,1293958432,673465417,539763800,824192097,537529641,538976288,538976288,1226842144,611917894,540949536,609372227,539570216,541347393,1008739449,539107390]},{"sector":8,"data":[1213472802,168644165,538976288,538976288,538976288,538976288,1953718636,1918986307,1629502752,538970637,538976288,538976288,1313153056,1179197508,538970637,538976288,1162747936,1629508696,538970637,538976288,1918115872,539258217,1162616893,673469510,539763800,1953718636,1918986307,537529641,1159733280,1226851406,537529670,220209184,1145980170,1314211360,1330205763,218762574,544435210,1869377379,841511794,1866670124,1349676908,694576498,1868767276,1936879468,539767080,1869377347,1701990514,168634726,538976288,1852404304,1818577012,1852394608,572661861,538970637,1866604576,741875832,741356064,741617952,221394464,538976266,1852130080,544367988,539766833,1701990434,1701994864,1769107488,1919251566,544108320,827609164,1919903264,1885696544,578056815,538970637,1698897952,1919251566,741486880,1766335008,1161568372,1919251566,1869881406,1769107488,539784302,1008759407,1046704965,544175136,1919902305,168632948,538970637,1329864736,1649090618,1025516644,1263421728,975460677,1330596896,1213669456,541412425,610558539,540949536,609372227,691220776,1145979168,1684163360,1044127780,1380467488,926033956,218762537,538976266,541477152,610558539,1126186272,673469000,539570993,1313163348,538970637,538976288,1866604576,741875832,741356064,741617952,221394464,538976266,538976288,1852130080,544367988,539767089,1769099298,1852404846,1701978215]},{"sector":9,"data":[]},{"sector":10,"data":[1427709417,1448549894,1347637586,1996483723,-1910567402,-67004922,1961884800,1961101872,-1807843278,947191809,1997536384,25070360,16770945,-6428719,1476489365,1582979419,1560747871,-251887409,-346548621,-253190674,1021897489,1020687368,-959286136,16880646,1499158616,526343770,-13738745,-1023307730,335090354,333452239,328204655,399054432,354423813,24056832,351409344,312482112,0,769,774714624,1459772167,197207,0,0,67240192,1075843080,-117637504,-2134843152,50397184,1059000071,127,4194336,1509972576,1514166816,-1275022240,-1270828000,234950240,239144481,1744922721,1749116961,-1040072095,-1035877855,469900385,474094626,1979872866,1984067106,-805121950,-800927710,704850530,709044771,-2080144285,-2075950045,-570171805,-565977565,939800675,943994916,-1845194140,-1840999900,-335221660,-331027420,1174750820,1178945061,-1610243995,-1606049755,-100271515,-96077275,1409700965,1413895206,-1375293850,-1371099610,134678630,138872871,1644651111,1648845351,-1140343705,-1136149465,369628775,373823016,1879601256,1883795496,-905393560,-901199320,604578920,608773161,2114551401,2118745641,-670443415,-666249175,839529065,843723306,-1945465750,-1941271510,-435493270,-431299030,1074479210,1078673451,-1710515605,-1706321365,-200543125,-196348885,1309429355,1313623596,-1475565460,-1471371220,34407020,38601261,1544379501,1548573741,-1240615315]},{"sector":11,"data":[-1236421075,269357165,273551406,1779329646,1783523886,-1005665170,-1001470930,504307310,508501551,2014279791,2018474031,-770715025,-766520785,739257455,743451696,-2045737360,-2041543120,-535764880,-531570640,974207600,978401841,-1810787215,-1806592975,-300814735,-296620495,1209157745,1213351986,-1575837070,-1571642830,-65864590,-61670350,1444107890,1448302131,-1340886925,-1336692685,169085555,173279796,1679058036,1683252276,-1105936780,-1101742540,404035700,408229941,1914008181,1918202421,-870986635,-866792395,638985845,643180086,-2146008970,-2141814730,-636036490,-631842250,873935990,878130231,-1911058825,-1906864585,-401086345,-396892105,1108886135,1113080376,-1676108680,-1671914440,-166136200,-161941960,1343836280,1348030521,-1441158535,-1436964295,68813945,73008186,1578786426,1582980666,-1206208390,-1202014150,303764090,307958331,1813736571,1817930811,-971258245,-967064005,538714235,542908476,2048686716,2052880956,-736308100,-732113860,773664380,777858621,-2011330435,-2007136195,-501357955,-497163715,1008614525,1012808766,-1776380290,62,14,0,0,0,0,0,0,0,0,0,0,-2119859842,-2120630911,126,-8519680,-1006632997,8323047,0,2139043328,473857919,8,134217728,1048526364,2076,402653184,-404276164,404241639,60,1008205824,2130706302,3938328]},{"sector":12,"data":[0,402653184,1588284,0,-1,-2117867521,-25,65535,1715208192,1013334594,0,-1,-1111647805,-15463,65535,420284175,1717986876,60,1715208192,406611558,1579134,0,809448255,-261083088,224,1669267456,1667457919,1625745255,0,1020991512,417021159,24,1614807040,2088729712,4218992,0,520553217,50798463,1,1008205824,404232318,1588350,0,858993459,855651123,51,-612433920,461102043,1776411,1040187392,907817059,473326435,4088582,0,0,8355711,0,410926104,1014896664,24,2117867520,404232216,6168,0,404232216,1014896664,24,0,117376524,12,0,806879232,1585279,0,0,1616928768,127,0,1713635328,2385663,0,134217728,1044257820,32639,0,1048542976,136059966,0,0,0,0,0,1010580504,402659352,24,1667457792,34,0,0,914306614,914306614,54,1665010700,54419553,205415235,12,1667301376,857213958,99,907804672,1849367606,3892838,805306368,6303792,0,0,403439616,808464432,792624,0,101059608,201721350,24,0,1023360102,102,0,404232192]},{"sector":13,"data":[404232447,0,0,0,806885400,0,0,65280,0,0,0,1579008,0,201720577,-1067438056,128,1665007616,1937469287,4088675,0,205265932,202116108,63,1665007616,403441155,8348464,0,50553662,1661141790,62,235274240,2137404958,984582,0,1616928895,1661141886,62,807141376,1669226592,4088675,0,100885375,404232204,24,1665007616,1665033059,4088675,0,1667457854,100860735,60,402653184,402653208,24,0,1579008,404226048,48,201719808,811610136,396312,0,2113929216,8257536,0,811597824,201722904,6303768,0,107176766,201329676,12,1665007616,1869573987,4087918,0,1664490504,1667465059,99,863895552,859714355,8270643,0,1616982814,862019680,30,914096128,858993459,8140339,0,875639679,858862652,127,863961088,876360753,7876656,0,1616982814,862154592,29,1667432448,1669292899,6513507,0,404232252,404232216,60,101646336,101058054,3958374,0,909521779,859190844,115,813170688,808464432,8336177,0,-603985981,-1010580541,195,1935867904,1735360379,6513507,0,1667446300,912483171,28]},{"sector":14,"data":[863895552,809382707,7876656,0,1667457854,1047489379,1798,863895552,910046003,8074035,0,811819838,1667434012,62,-604045312,404232345,3938328,0,1667457891,1667457891,62,-1010630656,-1010580541,1588326,0,-1010580541,1728043971,102,-1010630656,1008221286,12829542,0,1724105667,404232252,60,-1006698496,806882438,16761697,0,808464444,808464432,60,1614807040,236730480,66311,0,202116156,202116108,60,1664490504,0,0,0,0,0,65280,792600,0,0,0,1006632960,1717976582,59,812646400,859192368,7222067,0,1040187392,1667260515,62,101580800,1714822662,3892838,0,1040187392,1667268451,62,907804672,813445170,7876656,0,989855744,1046898278,3958278,812646400,859518512,7549747,0,469765132,202116108,30,101056512,101060096,1013343750,0,858796144,859192374,115,203161600,202116108,1969164,0,-436207616,-606348325,219,0,859008512,3355443,0,1040187392,1667457891,62,0,859008512,808468019,120,989855744,1046898278,984582,0,859008512,7876656,0,1040187392,1661876323,62,403177472,404258328]},{"sector":15,"data":[924440,0,1711276032,1717986918,59,0,-1010580736,1588326,0,-1023410176,2128337859,102,0,473326336,6501916,0,1660944384,1063478115,3933699,0,208043776,8336152,0,404232206,404232304,14,404226048,402659352,1579032,0,404232304,404232220,112,1849360384,0,0,0,134217728,1667446300,32611,857604096,1633706081,50740835,62,1711302246,1717986918,59,403441152,2137210368,4088672,134217728,1006646812,1717976582,59,1717960704,1040595968,3892838,805306368,1006636056,1717976582,59,473308160,1040595968,3892838,0,1006632960,1013342310,15366,907806720,2137210368,4088672,0,1040213606,1667268451,62,202911744,2137210368,4088672,0,469775926,202116108,30,1715214336,404240384,3938328,1610612736,939530288,404232216,60,140731136,1667446300,6513535,907804672,907804700,1669292899,99,3151884,1043346303,8336176,0,1845493760,-662824133,30684,908001280,1719625318,6776422,134217728,1040201244,1667457891,62,1667432448,1667448320,4088675,805306368,1040190488,1667457891,62,1715214336,1717986816,3892838,805306368,1711279128,1717986918,59,1667432448,1667457792,100876131,1660944444]},{"sector":16,"data":[1664490595,912483171,28,6513408,1667457891,4088675,402653184,-1060930024,410960832,24,808852480,808482864,8287024,0,406611651,419371263,24,1718025216,1868980860,15951462,234881024,404232219,404232318,7395352,806882304,1040595968,3892838,201326592,939536408,404232216,60,806882304,1667448320,4088675,201326592,1711288344,1717986918,59,1849360384,859008512,858993467,1849360384,2071159552,1667723135,99,1819032576,8257598,0,939524096,3697772,124,0,404226048,857217024,7731,0,0,6316159,0,0,58654720,3,1610612736,1818649568,-1016188904,2034694,1675649024,806906982,52416359,3,402659352,1010580504,24,0,913061403,27,0,913047552,7091739,0,1141982225,1141982225,1141982225,-1437252591,-1437226411,-1437226411,-1437226411,2011002845,2011002845,2011002845,404256733,404232216,404232216,404232216,404232216,-132638696,404232216,404232216,-132638696,404289560,404232216,909522486,-164219338,909522486,13878,0,909522686,909522486,0,-132581376,404232216,909514776,-164219338,909571590,909522486,909522486,909522486,909522486,13878,-33554432,909571590,909522486,909522486,-33098186,0,909508608,909522486,65078]},{"sector":17,"data":[0,404232216,-132581352,0,0,0,404289536,404232216,404232216,521672728,0,404226048,404232216,65304,0,0,-16777216,404232216,404232216,404232216,404234008,404232216,0,-16777216,0,404226048,404232216,404291352,404232216,404232216,521674520,404232216,909514776,909522486,909522742,909522486,909522486,1060124470,0,0,1056964608,909522736,909522486,909522486,-16713930,0,0,-16777216,909571840,909522486,909522486,925906742,909522486,13878,-16777216,65280,0,909522486,-150931658,909522486,404239926,-15198184,65280,0,909522486,-13224394,0,0,-16777216,404291328,404232216,0,-16777216,909522486,909522486,909522486,16182,0,404232216,521674520,0,0,520093696,404234008,404232216,0,1056964608,909522486,909522486,909522486,909573942,909522486,404232216,-15139048,404232216,404232216,404232216,63512,0,0,520093696,404232216,-59368,-1,-1,-1,0,-16777216,-1,-252641281,-252645136,-252645136,-252645136,252645135,252645135,252645135,-61681,-1,255,0,0,1819163392,3894892,0,1665007616,2120442750,2121824,1669267456]}],[{"sector":1,"data":[1616928867,6316128,0,914292736,909522486,54,1669267456,403445808,8348464,0,1040187392,1819044972,56,0,858993459,1613770814,0,1849360384,202116108,12,410910720,1717986876,8263740,0,1667446300,912483199,28,907804672,912483171,2000041500,0,202911774,1717986878,60,0,-606372352,126,0,-612497917,1618932699,192,807141376,1618763872,1847392,0,1665007616,1667457891,25443,0,2139029631,32512,0,-15198184,1579032,255,405798912,403441164,16711728,0,1613764620,792624,255,453902336,404232219,404232216,404232216,404232216,-656926696,112,404226048,16711680,1579008,0,1849360384,7224064,0,1819031552,56,0,0,0,6168,0,0,805306368,0,251658240,202116108,1013771276,28,1819072512,7105644,0,1879048192,-933220136,248,0,0,1010580540,15420,0,0,0,0,1244039718,-1995919356,-1608122298,1183319138,-1977171197,-2147217370,-58707740,-1023314896,26740422,-1070379006,1225180710,-953808892,1342458374,1654793728,1352869380,-1791066108,74777345,72524582,72262438,1275512614,-1568669692,-1715601004,964865,-1158020940]},{"sector":2,"data":[-1734343752,2011753985,62896640,-301886048,-402647879,-1470626102,-1206291072,-1912164352,872362944,-2147436096,26558080,-788368381,128709609,-1610368838,135004568,-301885278,321731,-1022994807,-335299910,1346138148,45221237,1016079339,-1308265200,-1877284095,-1190937926,-1964179457,-1020072744,125141160,-4524062,839445503,-1791587630,-1007759359,62175994,1122944138,-989925716,-1006898206,26748554,864019584,1946232009,-2134311407,50435390,-1057093515,-2139094855,646480076,-1574567528,-1993997214,1342459406,-1979467590,844689092,-1948200476,-1651824904,868418640,633834176,-523173887,-1993934709,-1023127403,-947208141,-125050671,1351977766,106334468,1611565862,72255748,243869379,12780640,468255159,853510657,-1207911937,74832650,1370489017,-1960385583,-1979428705,-152816953,1342473254,-880017614,-472783919,-888937519,96528474,-628426357,-1014965258,-919402745,-2051141967,113156,639994406,-2029959798,-2015308853,1176799435,-267730736,-789134286,-947793886,75046912,2141646721,861068002,-1961971255,-1090052399,-117242720,1459618232,-217807426,208953254,63605568,16727545,-1070338698,1991457882,2011118604,1976699400,-339725559,31883269,1183446901,-1777955328,49921,0,0,0,-156237633,57934279,-1900543809,86304967,-628360821,28155786,141934602,539415542,-1878070499,108298408,-350408666,136744964,12567325,29882032,12518260,-389574984]},{"sector":3,"data":[-108329742,-1618290037,-1977220691,-154983931,-155182376,4622552,195,0,58050827,-1979634455,12210403,29882032,12190580,853510840,652464639,72392587,-466434166,75769590,851611216,-775713793,-773598749,-1948777501,-773729839,65130977,63605713,-1014281781,-388896559,-779360047,-355341615,-802428207,-1491695294,-2082896127,-604567581,-1979202685,-1576944249,-396753790,-108329886,512285323,-2020998013,-2120089163,-2128704764,1960512004,-1492189436,1962871297,-1492189436,844126209,1359917549,-2134575529,-1070454411,-1492219055,181897985,637826267,-213443296,1962871466,1025517059,-947783029,75046912,2141646721,-1948655015,168067350,-16485166,167880454,-167611146,-1973854250,-33258722,-768452413,108442428,41410364,-503921922,50634942,179065328,-1977518912,-790617374,-741635380,244012992,807797159,-772240859,1206323944,-433916702,1596272678,536921985,-276757383,-497451098,-1910567220,-1023306234,0,0,0,710139786,717684469,-1456043792,-152817151,-1559985114,-785776213,-164445442,27932296,-1962930504,-1457064232,27894529,-436812917,-775779504,-773664286,-1982856222,838969110,-775844883,-773729823,-1949826079,-628401471,-1962720792,64195577,-1962824938,53799112,844165515,-1965389057,50443663,1208067846,119918731,98105088,-661979129,29208458,75566729,-355341615,-782701871,-773271064,1120938984,24430858,1961691722,378096129]},{"sector":4,"data":[512426407,12125313,116795064,1963000930,-1342129917,-644955762,53397811,1963043598,244002312,1424687529,244002448,1448149417,1960512087,629810703,-156441822,-154983725,-1429992749,-1492219090,178582273,638547199,-417192566,584578732,181925575,1583327940,536921729,-293534599,-947814490,75046912,2141646721,783802969,27987595,173494622,638743771,-484301430,-738797941,-738798814,-528031222,244002474,-963968601,-16078093,-1977216396,-1947786715,584578774,181925591,-1428125982,13074783,-2130413280,1501538031,521059298,26609294,1407158979,-956369622,-838930942,914944042,-466484823,75769590,704752547,851640017,-1439266570,964609,653711499,-1448934999,-154957055,853477,-775779504,-773664286,-1982856222,838969110,-775844883,-773729823,-1949826079,-628401471,-1962815000,735284217,-1962824938,29681864,844165515,-1965389057,50443663,1208067846,119918731,98105088,-661979129,29208458,75566729,-355341615,-782701871,-773271064,1120938984,24430858,1961691722,378096129,512426407,12125313,116795064,1963000930,-1342129917,-644955762,53397811,1963043598,244002312,1424687529,244002448,1448149417,1960512087,629810703,-156441822,-154983725,-1429992749,-1492219090,178582273,638547199,-417192566,584578732,181925575,-2124436796,2032140527,-1496874748,-293511553,75046912,2141636225,783802969,27987595,173494622,638743771,-484301430,-738797941,-738798814]},{"sector":5,"data":[-528031222,244002474,-963968601,-16078093,-1977216396,-1947786715,584578774,181925591,-1428125982,15696223,-2130413280,1501537991,521059298,26609294,195,0,-617362550,1646168614,652464388,72390539,963905340,1064568892,1215564348,1081347388,28957066,1049241088,-1276640158,651899899,73539210,-1960385583,-33271657,1358594242,-1977208963,-402365890,1240201797,-1676757872,26222335,-2138030101,963903738,-487863554,-554970574,-33547847,1961966281,-339280365,-1177406767,-906100711,75362618,-1024735490,1648265766,-100145148,855638456,-1157680439,-1947723697,50172,0,0,-335299910,41467914,183302635,-352159296,-1007623431,-772633770,-980120602,-372158207,-372119087,-2091202045,-621344798,1577566851,195,0,0,0,8503036,1948269740,1946762491,1947024631,1966029860,-551244788,26543814,1950891009,460700165,1017915627,1007318029,1020621856,-338594807,-1258310927,-2146382353,-373620742,-401902310,-92210974,-1173654017,162798370,-1070390835,856039629,650153664,4202123,26222217,1109297958,-1843492608,-953746943,50348038,244065793,133890114,-1329985100,-1172189926,78715424,-1203574061,567095552,1668441416,1936026741,1936020000,1852138601,1767252084,544171364,1886418259,544502383,1953853266,1936027241,1700143150,1869181810,774971502,168636977,1919240228,1701606755,1767252083,544171364,1886418259,544502383]},{"sector":6,"data":[1953853266,1936027241,1701994784,1919705376,2036621669,1936615712,1819042164,221144165,1699226634,1819632498,1444967269,1868915817,1918976800,1869488228,1919950964,1852142437,168636020,1668441416,1936026741,1684624928,1394634597,1869639797,1377858674,1769239919,544433518,544501614,1953721961,1701604449,168636004,1936607524,1819042164,1970479219,1919905904,1868963956,1112612978,1667855201,1634887456,1667852400,1919950963,1634887535,1965060973,1735289203,1701344288,1919240224,1701606755,1919361139,1768452193,1663071075,778334817,168626701,1162367821,1528841042,1279346735,168648006,538970637,1279346735,538976326,538976288,543519573,1852139639,1663066400,1919904879,1633968416,1919251568,544434464,1869835361,1936615712,1819042164,221144165,9226]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[21977677,498,102891552,1075052543,128,1025507346,30,1]},{"sector":10,"data":[352462337,79367683,168168197,-1928853586,-1550317173,-1140023092,-1331118835,281547279,-1516059375,-1038871615,377596366,605604119,-1625677543,505158542,-1851352035,-1776241633,589468307,-1698652761,-1196769755,992492583,-1171603671,-1641268949,-1876020947,-1791972305,926056655,-1758164685,-2038090187,951157379,986419079,-1010520661,-952221123,1084344895,-1684454993,-1186708553,1279675717,1219643719,1263186824,-964392300,-850479452,218150284,606282016,673654309,757869353,825241390,909456178,976828471,1061043516,1145258561,1212630597,1296845641,1364217678,1431589714,1498961750,1650548059,1717920867,1802070119,1869507948,1936879984,2004252020,-1451591304,-1107053053,-670839037,-318511613,17036803,470028036,906242052,278532,1560562688,1912890884,293636,0,-1828419328,-1459315708,-1325400060,311300,-822083584,-654311420,-419430396,33879812,331781,481361938,805644037,1191525893,1527074821,1963289093,360709,-1828353024,-1408917243,5,-1090145024,-553268475,-200939003,285605637,738598406,1074148614,1392921094,1795579654,2097576198,-1392075514,-1006192122,-670642682,17230854,419891719,755442695,1493653255,-2046327801,-670585593,671611399,1963480072,-1190627576,-435635448,587792648,-2096541431,-536234999,889850121,1107965450,1544179210,1946839050,-1509256438,-1106594806,-787822326,-519384054,-301275126,-83167990,134938634,403377419,571153163,990586891]},{"sector":11,"data":[1393247755,1611357451,1879794443,1946907147,-1978960117,-1089755125,-250883573,789319691,1225538828,1745638412,-1693677044,-1056134132,-200483828,319620108,1091378957,1947029773,-1777498867,-1223843315,-653406963,-116529907,470681613,1175334414,1661883406,-1810989810,-988897010,-418458866,252640782,940517135,-1978703089,-1374707697,-368063217,303038223,1578122768,-1592756720,-787433200,-267330288,-49219824,202442000,353440017,504437265,672211473,839986449,1007761169,1209090577,1360088337,1561417489,-1995347695,-1542348783,-871257071,1175313,353503762,571611154,840050706,1074936082,1796360978,-1978499822,-1777168366,-1022187246,-552415726,1239826,420678675,806560787,1125334035,1410550035,1779654675,-1475113197,-1189890029,-602684141,-569123565,-535568621,-283906541,51642899,806624532,1729383956,-1726710508,-1324044268,-921384940,-669722860,-434841324,152364820,504700181,1326787349,1679123221,1712678165,2048222997,-1625973227,-1592418283,-1558863339,-1122649067,-451553771,169207317,773200662,1226190614,1461078550,-1911133674,-820597994,118941974,1310140183,-1843957481,-719869417,756545815,1125659928,270031896,-1987606725,-1301375222,1883808744,-546172916,-1377984323,281249556,718551500,-1580484003,-1736335315,-1754723552,-887735724,706057609,853409891,-1695074529,-1607336267,872966408,229593203,978622313,967642940,-1595513839,552236133,373676092,-22768111,782986953,1673360808]},{"sector":12,"data":[-1843981248,99041229,1584274960,386982762,1452516400,5282970,706103835,853409891,261968283,10632890,-1334787059,-418395833,1762881531,591025303,1121245420,270196987,255145723,-917668262,-219637782,266346188,-344664221,-1875415051,-73717484,1975147213,594288144,524958473,404947713,-1064889328,147245120,-1753892012,240827201,-525922282,-888516706,269880565,-326639449,672189337,-1760944686,-286739858,204152350,978622313,302877487,1679129072,1855392449,-2117997646,-267227951,358249568,-681190098,648792195,-1843982580,82264013,369519214,-307915247,1564335629,906987578,-781904111,-47366983,1203198271,-68743223,-580578946,-722892061,-1884260032,600465938,-1944026363,1043102480,-2129586207,-1734711365,-1718647018,672042704,1782646359,1787692705,1848315412,459570203,-2095599947,-2117516335,-1257628065,459951966,86386958,-847583116,-779940410,528599363,688981585,-792328922,1481940200,1462244958,-1888993018,-1165686834,197311727,-1492118000,883985120,324713281,-972741079,1100802256,300173550,526045571,1479576237,386493655,-465344988,1697322694,1199362533,978612545,285363230,526045571,-1631810899,-2096285996,-2117516335,236854879,-342928187,26445624,269881876,2108940455,-723737589,1197678016,-207643745,1554210765,-1469433714,-2053463231,226889984,-1421260738,-1936716975,1713641230,984895063,386928679,1022649892,1988312099,-1939530572,1350876974,94228449,643688603]},{"sector":13,"data":[319465190,-1042084985,1166603895,674308889,1843889686,395879552,541253759,-2045858339,979201511,292664094,1844883993,109160953,-2029032723,1746915848,2112702452,-1066302965,-2147451512,-681373155,-1199970188,-1128209247,1149308704,774855633,1248651147,1992496960,1470320053,510291014,79825740,614619009,529394567,-1472366103,1459888234,751036549,-1929904090,421936437,-1006161823,422064256,388092038,130860121,1543361043,335799501,892795664,804830736,2068573910,1713641230,538597445,722382301,349419632,-302225091,1960272656,-1581745688,-2028289564,-1607262449,-2069877436,820004034,1940084285,-1021118330,994555254,809514294,938840952,-2140586961,229341454,978622313,950865724,1120933398,967642940,-937960727,275737399,245094953,1924628013,722376539,1685855086,1085453595,1152318736,286819053,-2053100056,1156277636,-160214136,-1069943593,-315904373,637701621,-1790309295,-2105489085,877658464,1264343488,809227991,-168605056,834641199,2021442020,139898745,-2133497026,-1403063477,-714383842,575662976,1073832126,1003899707,-213221328,-1080217611,2093081649,-1340070792,1142984700,275088109,1012181444,147985304,1290504651,1225425481,-1504931292,-920516043,-1846849535,-151620107,1551697039,773155517,905635290,1539054442,-164629901,1228557508,608783232,1780173458,-1660369900,485573552,-953816312,-1190259300,1373180465,639017023,-914142898,558469668,-942849422,1202756872,658487799]},{"sector":14,"data":[1139657131,915213909,164709636,2047364141,-1447857452,-309667650,1229533185,575662976,1704076457,324118577,86248374,-716722621,1386337995,928896749,-1678484701,-1672760720,-697972412,271687096,-314265859,-401532798,8757293,-783293759,-1888009349,191523902,2018917253,32803163,1619021392,-987068238,-213798790,186166366,1067747627,308344218,128702460,1626708631,-850165224,1763553402,2060277732,-1941720838,-1319177315,1459782873,-310597217,187076601,30196707,-2109125568,-1843115766,171288140,1342294306,1979027947,76543734,1790794877,-438686187,459945466,-227320900,1321530927,25381159,-2026606235,-81714103,81496412,1540367152,-888665279,988449238,1229684809,457871908,147068010,-247222115,636160028,236297415,-653119047,379600721,-2092347866,1234314441,-851283423,-1331885881,1069152071,-305550553,-1928440509,-784006090,139209993,-1284320134,-1965506903,1228079597,157450313,642355780,1552117813,-687547511,-1678481614,-201398717,-1037024170,1153595396,-133840336,113657026,1901929488,1767989324,608780778,-2044442222,-2004795368,576797733,-972922600,-2064542688,537693321,574687586,56855275,1350703115,1476965448,403760765,1229560288,575662976,1704076457,324118577,86248374,-716722621,1386337995,928896749,-1678484701,-1672760720,-697972412,1229233592,-362537854,1049896009,81496428,1022542658,605967492,934549501,131396728,555287981,1670636390,1167964244,1003935563]},{"sector":15,"data":[-213221328,-1080217611,2093081649,94468472,41542791,2064739367,1133475651,591233481,-1386855081,10324429,1419208978,-638115014,-2047931503,-916515054,-1449234719,90747931,914303766,813238370,-314136025,722669850,-460212464,894582069,722656600,366196848,511249201,724262211,-460212464,-374440139,-1454351152,67687542,1159857290,-2128465662,-1353281264,271261723,904171959,-722882945,-2103915041,711603756,2061091606,-1479203836,-878485590,705592112,853409891,936681148,-1200608496,-1292233261,178477887,-144582205,71993608,-2062309035,-1059832613,-791994674,179054113,283665679,-2063051117,-1043055397,-1132095478,162931087,-511577309,892798319,873160963,-305583144,805723715,281642555,262508299,65488872,-2130584126,1695484495,1469255912,1021019400,-1742814764,563068037,1307040681,282684480,1137800873,892801706,1205086723,-591264793,53819156,-1335241686,-2032495785,-333246503,-1292184104,26434367,-2147357567,267718892,-1827608475,321185367,-2097081581,-2113787647,314971731,577857068,1982599879,308748913,-1903307478,6498858,-1179897122,1957175334,-1861720544,-952493804,1434932753,1149310826,706735952,853409891,539408812,1713403048,-1824456437,1746235820,1663704695,-1691165184,595389765,-2057697891,974410208,-520351696,-173057160,1127168733,104992993,420786272,1444005690,2034259079,631994809,-2147142896,953600416,-2059750262,1968813899,1080611201,-2097015092,719476775]},{"sector":16,"data":[-1071256624,1713419496,-1824456437,1746235820,1855392373,-868161358,662897174,-802495912,-390065173,-2013122636,-1753892012,321450050,1534640320,22128555,270713574,1471180996,-855399858,404963972,70589897,287172924,-1208958727,81488213,-1070354327,1713419496,492350730,-1660122602,1135315043,-745407320,987907664,-1272326092,691301930,-1010580459,-1219787424,-780044967,219091819,-390064765,-2037937739,1855392449,252963762,270500621,1534648572,1870672297,1286360345,-1459014084,718400683,2028010512,-571101349,989835066,917982085,-933061238,1006907186,723727512,349419632,-1943271889,-350095184,-47964588,-1896827625,1662387316,-1880591145,-1152063270,991168362,1746378243,-717459624,857673645,588858784,-2031021517,2046098177,-1153338883,-1585236645,-606812724,-482714223,1426359578,600466010,1215755013,61560068,428658850,428434224,-1948000923,953262477,-1836767325,893043306,1633734754,349689249,-1943271889,-232523600,2095596871,-2026043358,-1059783438,2028010632,-1072197285,-1571506968,1708994069,-648588333,395465361,855337602,-1760931542,65778286,-1840066142,1183891727,1975211016,1800029591,734249754,356146569,685431854,1280056530,505343564,-1010623444,1745586475,-1760911954,1745579374,-937023962,254977233,-1760898794,-1846955410,258885795,433219684,-1301375222,424565736,203850513,-313384591,1952472534,646123866,324104460,69454434,-876978902,1613895841,-1072098873,103003368]},{"sector":17,"data":[1122113612,-1163076699,203850513,689656177,-2042707394,-1561519605,1385024830,886964323,-1334787032,1021019530,-1649491756,-2109567631,-1308136150,-1421276940,1149310739,-876978902,1116409516,-2045302288,-1010703379,288136275,-17218574,-628741414,188368888,953262477,-2066938974,1937824340,-1773771201,661838523,1857949797,2020082121,-1442275847,501824692,-563200444,1695722361,-915489264,-109549567,917112989,2028010512,-595553957,642059476,652414256,763421344,110346504,1360433976,-1497879016,355508780,1740870459,-495405077,-251258733,1663704496,-1405952512,-1474287943,-2037937803,2100639169,-798875240,-710844064,-820207562,-1364880935,1414503670,-1055359096,1483599898,-1472366123,1691656554,1498264304,-2129188836,-1159049148,171296373,-88758008,590535351,1860272627,-591127741,-115601775,-1689955632,-433693208,1631980198,-1739314965,159694537,-82745111,-357819299,-244422609,-730822677,1175505389,1833127260,-1406467460,-1036472608,1211843209,-733504514,1276338290,555788891,-1503401984,642237904,-355385852,193934879,54819530,-2141856505,-932959453,769970147,1769857233,614724804,2037505068,689343233,-2074213338,-946820055,295873297,296928566,-774551473,176277827,625438103,147750810,1938075581,-855399776,760991179,-1058756584,1494195630,-1683912264,-179211211,-82798564,-2030656953,-876470545,86386975,-1662463802,-464982463,102845715,1634785674,102112635,-681704441,1137719746,-1467015443]}],[{"sector":1,"data":[-255672092,-1234271680,581986660,902198714,-1599731702,52521021,202004528,-1417124963,1624483907,760385830,-1822819581,-1648226234,69609781,3477983,1195802036,-551253360,-393733183,639764637,1377858692,173271274,-2001837018,86380357,-1991354588,1747092176,772096583,-1506769490,-928507837,1313149426,387540145,72097410,-1701911481,138553218,1748869286,-656618195,-1591528239,-171936254,579152244,528601105,585404753,-933061238,1006907186,-1652094824,648589347,-344664221,790775035,-400760469,-917430480,-592693887,321408635,-658737936,795491796,506780774,-1682450042,2047982874,-1614798332,2147306319,705246467,-417734279,-1223096307,122106007,-926275386,108071971,856606150,-2113586042,70515566,92499074,-217910254,-1368169980,-1375172861,-1579083769,-2096773521,99560116,254687216,-1896410620,-1333590513,-2096656307,1585471138,1319928582,-2096767371,68542896,107387782,-1580810143,-1098709154,297985286,270387480,1905196208,855645791,-1786131690,-255788783,437527223,293927432,-2078347965,1213186316,139235066,655100097,-1058756584,-1648997499,2021422526,1759715881,1461931636,688202564,1460339750,-592672946,-2043283900,275556299,952869606,1113990307,-598811739,86380433,-1331825610,193255761,-2026558290,1166201607,1491058266,975914960,-1564114756,1767103481,1681223585,-981435151,-998871384,-921167133,-55570403,990933390,-333194626,403690968,-378864665,-2003044912,1491034639]},{"sector":2,"data":[-878485552,70989872,1980712274,-629928767,-1058756584,1362224136,-351305015,-857313467,9638977,-1087446006,165528211,174465252,-468820581,485188688,1394432581,1483223403,-1378534289,-1607262449,2100314180,-347034138,714637712,974722229,-2024402489,1680546926,1211003917,-2015359284,-2066132563,323654665,-661868956,1595201493,-775543191,-1496313594,-2096638522,-1246684873,-1088614369,-194352018,-1961826235,792558850,739114229,-344664221,76412397,-401484292,-917691982,86380417,-2001844700,-1754721979,1066351188,98506530,-458745829,-2146399040,1326511563,886738260,-628747511,154814456,1186697706,478158471,-2029712569,2048022406,-1264775334,1008247028,1108671817,-706160895,-1479130204,1309938284,1694817566,-1196863253,321626576,-481334457,-756203220,1343431753,-1164428940,919172251,1276332292,-401163661,-511577277,-234452626,1243124417,1282147651,219852977,770183448,1703183776,403533547,-1607604207,-490667899,-2129934001,1781877123,-503109886,-1673174225,-1344595239,-2046129143,-1589314777,783102429,-999645513,1476526986,-2131492500,18061504,59189523,2131824874,1668194619,147969416,-2017401695,119422426,1679465686,-2146072146,345521316,255644379,302004653,-1954492399,1946934777,638752828,-1954492399,1946934777,-1458530244,252432758,1460794056,34759,-2045444096,555923417,1109326177,-153369815,-591192320,1581650105,1757771189,-1631029698,847427216,102116608,19005959,1309798019]},{"sector":3,"data":[-982131426,579898238,-1370927209,506928199,298337635,1881082896,-369725302,-473418263,372417158,570558214,300843777,182263374,-340627817,-1312204300,641555882,-781181767,224668459,481896050,-1208298128,1965978123,-1165627652,1788772149,1483219965,1394677593,2051580273,1388366549,-1265149402,738162743,391731304,-1586408671,-891979192,841503424,-1390244235,-1091132914,562351633,-601086953,-1416524944,104993186,1356114528,1159523172,603987290,547762199,99110724,-492521559,47333545,-793204336,369106338,-601086953,-441283984,-1606430235,335544343,571619113,-460251370,-1203921886,925448704,1846487826,-389087317,-380583585,379771843,585404703,276484518,1078244006,544799725,772945705,-692605000,1485310004,-1970256002,16774768,-1848801516,1856060287,-1139025269,1617051256,-612031763,1170265148,802196278,-798318921,-1891587083,1365504986,295224870,1814956828,1449337193,537033203,-842326026,903668058,-861836430,213,-658301184,1443114623,-1273504482,1207203895,-591264793,2144912189,508953646,934549469,-414714760,1222427139,1676901279,1158496853,-1658618643,-1993212411,0,-1846401024,-1236886867,1887323364,-204001988,954603194,796907651,687879478,256249360,-1706542184,1966175208,2141055798,1792297530,-1244316417,-368867561,-1938747120,829679770,14956149,1625692223,297891362,-1208958727,98298204,1395386876,-607974730,507002786,132770070,157089456,1491034650]},{"sector":4,"data":[-1869864240,-825921101,-529388037,235937612,-68337596,-797524376,214477813,72097370,-1648023296,-1114890062,555880044,-1091141941,1822064088,-1437226134,5184647,740562707,-1333169956,560884273,605495278,-1989092308,-110546512,-347045463,-468291851,740562749,1821012188,-419835014,-883264595,504655015,20184356,1320244673,1239887832,-1383422886,740562737,1821012188,-419835014,-883264595,2052253862,-1289084839,66224717,605502230,-1972315092,-103581076,-1554666010,1785480791,650742507,275556294,1833013184,790834180,605497947,-1972315092,-410184454,349681050,446404369,534872217,839424105,-601086953,-1463973776,111275751,1557621394,-1682708393,913660707,-201561795,-591253161,-1872978891,818180531,76977175,-1088537605,-1152609663,-392418892,-1068141445,-591249932,1628413749,-1339770628,-170338009,-980284164,-2016519731,220480951,-315714796,507143946,1013978589,-500578776,-483985357,836153666,600707654,-1316075219,1019424906,1662873406,-492019436,684133148,214116550,1876847340,-1968075231,1417451072,1099000116,-688837274,-837138895,2092744737,-500578784,-483985357,920039746,-122887914,-1041952901,965102898,-500578763,-483985357,920039746,507247364,-693009985,2027099955,-416538459,-1394353341,-1975561370,131007058,881839550,770183448,1703183776,700863211,66217729,-1264480745,-909491192,-80855671,1198534348,1066067077,1728129478,-1911094286,-1938257231,-793245186,-2121435732]},{"sector":5,"data":[-1345860034,-1938461472,702477509,-801567928,434895094,-1797075052,-272518272,182018995,-228130519,278009347,-1898180410,189278718,-1139240897,-1352392332,-262484493,91154315,1505770068,1283342940,813287568,1680035593,1523446703,1860668400,-2143661051,713601632,-1832300604,19271449,-1957363672,105286636,1560282344,1442841290,-783378857,235347686,-273380577,1979058944,-2026468598,113653249,-1085443950,1465258646,100666088,-956824801,1583284229,-326412861,1443032195,75402071,-1408862581,-1991206504,1191181894,-28377338,12464764,-1279096064,1123284488,-863338315,-1818694190,-2079957501,1174500399,478871338,158585808,-2020938800,-341180257,48848,-773065981,-1956749480,79846885,11671481,1370488923,1480928834,1229717573,1112620354,1112297774,1667072,1792,428736517,429064198,429457415,429916167,1280070990,1096045312,1392528195,1329745241,1128398924,1111577439,-1426061056,1432306201,1380013644,-1308602797,-1342173184,-1308622471,-1342144000,-352298568,6273047,1555567339,-1207047424,149618781,-352298824,5748739,-1202708714,786956370,3794944,-402631752,-396885979,1048772641,1946157267,-1240471035,-2144463766,1662014,521537397,-952434278,1275181089,516628941,-402252010,-1106772507,-342814058,521018910,427624182,-1106545662,-315483707,432279178,-1262614549,-1056011495,-1408638183,45404298,-136175155,-957824225,-2064921601,777793338,-8271989,712251845,-1107295047]},{"sector":6,"data":[-768402730,-812951727,-974552753,-218256359,24509614,999769927,-1845398846,-454928033,-1031072649,863304251,941189054,1964595726,426950147,-1433295451,735021969,234456008,230228854,-1056012032,-1074754791,-1527572044,-276693365,-1567155771,-1950148156,-1105608434,-1527572044,-977605397,1048589849,1946157492,-628417011,521549823,-196748134,12066571,-1021194947,567099060,-373096078,-1957298453,1992578796,179054094,1008956608,1007187036,1006924847,518944058,-401713467,-1198260293,124911616,-3348398,525916812,236872939,432389663,-853953450,1090801697,1153893512,-2091107839,1113195462,567101364,309469019,1996472371,242679568,-397210032,-1073020855,1996435573,242679568,1996428880,3663884,511033355,-16091393,1996425334,10151942,242532363,1996479283,242679568,-397389229,1566441493,855641290,2126793152,-139529718,1317620177,1426844424,1465314443,139365150,1992680931,-1090056700,-919397947,1958742700,1950039050,-2042516981,871492576,1312941010,1555097827,192208954,1949301888,989626374,514457972,175555926,-217559413,111841700,-18683873,526311308,-768404877,-989561215,-1934461671,105265608,82553717,-18552685,534219666,-1034068385,-1957363702,509040364,2097581622,109979136,-1070399444,1992687411,72256262,208971507,-218103879,87565998,200010869,1027440678,-1941442955,533171138,-1034068385,1465253894,-1559814650,512304940,512501550,113714992,655107890,657727116]},{"sector":7,"data":[657852103,512501532,213854008,687978535,567091661,-853074753,-1907024351,657243097,776667320,489494156,723945774,-98448099,756452910,646655517,1576738091,855798303,1583286208,-1308432949,-1342110464,-486539263,3959553,1458342741,105286487,1946157117,1036595995,74842115,1482352720,-108806093,-1962183416,135184123,41264883,1583334539,182877,-993869120,-1027553596,-2108735296,-1803255150,-2070773116,1086637204,-960478720,-1027423664,-1068544060,281280576,1347424338,269488208,269488144,1409304132,7492692,659634,283103152,1111626258,131074,4194500,-738065918,1112723412,1381122642,303190594,-2071719406,274685778,1347571794,1376801296,-821030320,302125072,3752000,790706,8112,101057602,135311872,5222400,269488207,269488144,303043090,269504452,303042576,269488144,269619728,303042578,303173648,303043090,269488658,269488144,269488658,3670016,987314,269619888,273616912,269619216,269488144,269488146,1380880,790706,655536,73904,1900722,8368,35659808,0,538968064,538976288,11665427,548405256,2097152,536870912,536870912,0,32,2097152,1778176,524466,33817264,67371524,601864,786610,-972025680,-2139044670,1426116480,861400203,105810880,119410147,142511100,-1410078255,1604977011,313949,1475119957,-788115829,-18207,-1957306645,-1957210388]},{"sector":8,"data":[2123041398,105810696,-1527576802,-899850657,-1772748794,1002998701,-1962773551,-208949814,1001248907,-1845398576,-4669125,-1392151041,321686,-1017200629,-538985898,1126664876,-1002782173,28899041,1946448384,189286401,247684800,-1957603577,1487926010,-670842581,1594329894,-326412861,-1962467753,-4651394,-222286849,1220619182,-899850424,1482358786,1469730899,-1022072221,-326413056,106859863,-467004240,-1710057793,712116696,80371039,-326413056,-1949160617,-1765865914,-1706510574,712116667,46816607,-326413056,-402470984,1586168128,105810698,-1274521973,-1205744320,57868288,-402638408,-899874452,-1957363706,24111340,-402462024,1996423448,175570700,-16222465,-1231419786,-350983575,367630856,-4715532,23783679,576093,3250688,-795205177,-1593711769,121438474,1023767552,376766478,-480514662,15507713,-956240221,7348230,1376681984,-919371664,18026119,744896139,742997632,-483560192,744923408,-1706014648,31684276,-349411677,1714850576,1228832812,276103212,-486306662,-4183295,1345087030,-1771019544,-559759317,745972246,-479726950,107190785,-1655565206,-527760778,1884425856,1980155393,1542062124,-1709062384,31680464,744896139,1979711107,914966023,686489868,41219595,-1772728754,-1955358744,309608688,736888462,39619366,1425513043,1950351843,212027622,1932322817,-886282589,859690123,-326412846,-1207932696,300418024,1959922432,1593791233,-390059258,-899874700]},{"sector":9,"data":[780730372,914959424,1049177154,1185098820,-1811495124,1476395032,742270601,1364254975,11810559,-1705948855,342497460,915101785,1049308226,780872772,-510972864,17434311,922681344,113716294,11326,412354247,1506017279,412366591,1359670403,-1106880682,96021566,-2080601344,118884551,1594336755,1465303902,742309638,-1962932807,147227636,-1510799594,1499356935,-1895119741,-15166458,-661891359,1150009486,-1963947261,-790351164,-1947676440,82039256,-427709887,-930348033,52871310,-399737161,-1064566756,-796075890,-1527529330,1946462380,-1440436221,-661729140,125299294,-1406784910,343195902,-466958082,-388902773,-388896559,-930354991,-1022369152,-863326938,-466424526,1392558994,2126009168,-1202499472,-1706033150,342491763,208977931,1528471016,1887444483,-1017444465,1530384360,-1946686632,-2129382882,1947486459,-1959264485,2124481119,-389862544,1012465601,6928385,1756889972,-4986880,512463555,126489650,225706300,259260988,812909372,-352293192,-1746365951,1379003189,1349549752,1342177976,1778524570,1958742804,-2078373088,-28865680,1079510921,-385988727,216734246,-402625096,-4704918,895805695,928180675,116834347,1963011073,547993608,-1959311640,-1010824252,-2081649835,1465257196,-1577171319,1183412350,-1983894536,1183446086,-163149318,135529888,77657414,-196704236,104382507,208933894,335676985,251595637,99292162,1874994816,340311679,338835001,1575682677,1015762510]},{"sector":10,"data":[76238414,-1813982904,-89653458,285607429,503716102,956704006,-8329210,1317066357,-789872395,-1979746840,-924059010,-335774071,-1039236925,-1125416849,-1191674231,-1142423514,178228,-399198744,-1460980560,335691395,-6195713,-351010298,-96040037,645185547,-1996453656,-523176378,1174986960,1887353077,-92864688,737953419,693172806,1177156678,45062904,180229226,87982080,41222932,2126005830,1996443760,1939494652,185887234,-402295360,1038825032,504956392,-58815737,1887452675,-1409399157,737691275,-972817338,771114499,608174084,1048620030,1963136005,10595073,2042628884,335454467,-196703317,335716779,-1956749397,1455644133,906227851,-1381142400,57992202,1342242744,-1947676352,1360061384,-2143933523,871426160,1887450627,1492181593,-1151941794,2005603400,512446718,9138304,-1173862680,1448243326,1375732410,-1348800373,-401315326,-1326966666,37158707,866773036,866510934,512475998,-75426766,1941443656,-2146077696,225771839,1258446731,7518283,-335702808,7452678,-1020031512,-13936810,957630651,1947480606,-1957999850,-2092217545,125112383,1946206269,188214250,1038412607,158662848,1462985192,-348959000,44126245,-1947676372,-471954488,1256739079,-102606339,119850891,-1577238296,-398447614,-396821191,1583349045,858843331,-382991711,727069482,-1949791278,-2129382858,1947486462,1179036952,1208448072,1950877556,-348045048,-352210198,-352144666,-393129246,-320326914]},{"sector":11,"data":[147021362,33554688,536871936,65536,196610,2097200,1447034896,-768882549,338835083,340328065,1185749620,1947089990,1947024420,-472804596,-293106898,-338687225,-521453085,-1276604078,799561778,67895925,1580378600,738369987,-352270331,-1957210381,1037183992,41222386,915079602,-25095118,645141576,-2136108627,141885945,1963115254,-2133950461,1963194752,-1202547956,1793590628,-830448900,46825536,-1756179221,-399352344,1583297099,1212696771,100913291,-92197886,57934018,1446135273,915099735,-1381166030,-1767002729,1349549752,734497622,-147107642,906169972,732786816,-395280330,-286576098,1778560922,382265364,1597113064,1220199262,840317204,1073837076,-1959656983,-2089809378,427098943,-1979168885,-109050033,185758976,-401966912,1249135634,-1072969429,-339727421,66683129,2139295093,292880394,1996486973,-2146767902,91490041,1963456896,180366304,594871367,17123318,1520554869,38208368,1885212299,-108804053,-389908696,28396524,-1981237131,-402396365,-5229607,-391255047,309526409,-2081943948,331671601,1885474432,1023520808,-1073037269,-1840957,1458049909,-1961790449,1676149831,329574449,1885474432,1023520808,1455669258,7059543,1964239592,328001549,-385876040,696189013,-575123733,334751744,-286767502,-401443792,1014759652,-402628168,568865062,-352210895,6141999,2113940712,1292327,1964224232,328132622,-402632264,-512420933,-1206696472,-1729626031]},{"sector":12,"data":[-388598509,1236800314,256000,1455644255,1455331159,-18618349,175387762,-1984413469,865855488,-8181525,-2094697217,175458815,1946172544,5027845,-947189781,724614632,817424576,-969929752,1182072836,1122697648,1879711371,1946304387,9549829,-8141845,-2146077367,91488316,-352301896,4831240,724601320,814016704,-1761540922,-1207077568,1048576096,1946168393,6207491,-399479320,1583349495,-389824502,-1073020885,-397405324,-454552930,159275524,3933586,-1339011608,116835073,-1340074972,-1207536639,-2098724701,-1010824654,-13936896,1879711371,1962950531,138906401,739996736,1996635145,-16039915,-392755595,-454356328,108316475,-386399424,194449998,1455644608,-533296297,20742931,1178994806,804579501,915010539,1015223264,-1017225471,-2081649835,1465254636,1878537983,333459075,-534869246,509715,-12139008,169773824,1007127408,1007514626,1008169984,-397118205,132841850,-16332568,170656270,-379617344,1200292065,880033800,1947089992,1963932710,-1961512958,-2004486408,661913875,2020939580,333459075,-534869246,17286931,-1527021312,-400920045,1187385782,-1578434049,2130753000,-2145879011,1946287998,-339727860,8304654,-349070104,8697862,-382594840,512426117,1065578506,-1955891968,1950353479,-125089691,327714294,1012626689,-401246975,1383464741,333448835,24033282,-399565336,-823455394,1962860264,-1761147901,333461131,327714186,-405674966,324580863,27850891]},{"sector":13,"data":[1010371701,1178994802,787540141,-293341973,-1891858172,914948676,-25095200,58069924,-369138455,-823591045,-1207536130,2078867596,34013183,-2097041364,34856966,1878525583,1583333386,-1017256565,-1070966954,1879711371,1962950531,106400614,4244215,1048796532,1946162172,8435720,-349120280,842465102,37158676,33998636,-1962934228,-1389491593,-13907829,1098487,-1389492108,-1389430645,-397283189,89657514,782445998,340715540,-16053122,-963967884,28366847,58459627,-1892608792,-1892941306,169095686,-1017225280,1049319254,1032024074,728265987,71633600,1972200821,123570696,1946745728,16482360,76224373,1996491325,-1327461872,-773795584,23332320,-349305368,-1962989008,705950343,-772240412,-494433309,770762771,770500781,-335973041,23967764,-1959927320,1346372165,-397409141,300428758,269805614,-1073086032,734223967,-386405440,-219467767,512475178,1065578506,-2146339581,1963001471,138906382,-399660568,28315626,-1195130870,-488046586,717826863,169774016,54494064,2139099253,175440134,1963478841,264562693,-1178402384,-538247167,512475178,2139123722,58000646,-1006686744,169773824,71271280,2139096181,1354968580,1645117587,116787312,1967157241,1878827297,337905398,-1978305535,35916871,91537418,1879051904,962062338,226017291,116900698,888172536,-1430726796,1189632768,1441721135,1465314443,-1962248565,-56425404,1878565231,184578085,1190529092,527696132]},{"sector":14,"data":[-167195520,1967130948,142508822,-2146601982,1946158718,-116984313,57934447,-1559966592,1183477752,1879155206,-167361397,1946682438,1975520017,-10622963,113707125,-36866,-22870037,73826415,-389641225,-157810859,1946682438,768014,17057526,246954612,-164238592,1948256580,105170693,1169883136,768271,17057526,1270548084,964879,-1962391925,-92076460,51017478,-773664319,-337507614,13428739,-164863512,1946223686,-2147436519,33834742,1183452533,-152819194,1946420294,-387919614,-396940222,1190538287,141821956,-402098433,32178185,1566466040,1426065602,1465314443,337907328,241231874,-116767768,2005624956,109021956,-166833688,18097158,1465258868,-482327654,200313601,-2147059210,417890276,1979648814,-24778710,297280885,736421888,735176790,337905398,-1581943807,104689662,184841728,-1207535168,-320339843,-1952322771,285541446,-528050432,-523116335,-1276590325,-1343711701,1583347755,180829,1,851980,983051,917520,-1190182470,-420937724,28856562,-1070903296,1377626192,142196747,1894269108,82573613,-133820184,-74913597,-1195179660,719913092,1091886,2011699829,47867,1881579971,-1200616797,-437714931,37651245,-311215060,37158743,2603052,-1089611032,225706021,-1028063445,231598080,918488693,225241088,997588747,1963081603,228517942,-402649928,729091531,-1207068184,-1058537459,-14650099,-1200616906,-1202716672,-1202716672]},{"sector":15,"data":[-397410303,594738653,-401787416,803736882,185723661,-401509121,259981167,74776331,717875287,65733040,1526393320,2126514754,35031300,1472421676,213450547,224847872,1962934456,-87234524,528222079,-335593240,-8173798,-1207405764,1239941136,-1192856563,1390936077,-1341885939,181373697,-2134679616,36438078,-18343820,-1979717617,41157808,101188272,867725410,744876032,-389824502,280559581,-1207375104,65732672,151003320,-1334839290,-1957313791,82609132,1183340374,-1191998465,-521666529,1962979340,38243115,-386120055,1303907450,-12126665,-1207143136,1190541188,58000127,-1556644424,233313326,2080931600,752871427,-402588439,2088963911,276037638,1879711371,-1996340085,2092433991,15657216,1887706763,-2080473205,1964375167,-12126623,-1339788024,205846141,-1337297663,72649473,-15784472,146277492,1894273024,146994758,243271029,-167481494,1963261766,604436015,678691092,-1167040351,372899839,141831268,1874869888,-1845398525,-358985641,-1962810562,2042629112,-1947981305,730065118,-8165909,-161450747,1964048198,-12126630,-1207405311,283639822,-1202948852,652738574,-2091617780,-739769913,-15305465,-1612184457,512448523,-678727548,-2139042176,-352187316,4450327,930361724,-1073018997,2142767221,729409536,-678747669,-1157736567,1468596604,1879221244,-1960237592,535362630,108824873,543873,167882784,-1956749376,-1195155995,1323827202,-386864341,293534530,1887317635]},{"sector":16,"data":[-2078373118,-1991554192,175146014,28885952,-1205933307,434831893,-352156232,4569108,62394347,-1207244027,99287104,-352288584,-326413056,1444342915,37158743,-28931796,669564970,-385649657,-1070399088,-2130819338,12060020,-167122176,1946287942,178179,-1913895287,-2115441058,-28903935,-2130349024,268498510,1183502891,1946297599,147488771,-152414583,1946287686,833560,1963657960,-159519998,1946746694,833544,-349506584,-28903830,-1927842752,-11473338,12119158,1317031936,1996424170,-81270550,1190537963,175375615,1586348075,-35985170,1183530364,-66700302,-1926335469,-11473338,12119158,1996443648,-84154134,113713522,5114,335298179,-166300672,18097158,116789108,1963028480,8435720,-349554456,13166927,335298179,-2131856128,721545806,169928950,50218742,-823654540,-349078274,-28903816,-1946651636,-1955561922,1491664454,1948089596,1190544981,1014243582,82464384,-402595656,175442503,-402003480,679345199,2126012651,-1202237328,-1706033150,342491763,91602955,-349602840,-2079948017,512426608,-553422720,1574855,-402648904,175442447,1933377155,162326533,-167010837,1190529909,91489534,-335811352,899125,1913261288,-12126447,242483204,1586348075,-51713810,-5241731,1183652075,1996443886,1996445420,-99358486,113765490,70650,1113194928,75415562,738334345,-443851169,922731357,-1202491382,-1706033136,31654375,-1207351831,820577573]},{"sector":17,"data":[203798782,2130586344,-96566513,141819923,-402645832,28321510,1438892042,-326898549,-396929512,532154712,159770624,-639098251,-1927644156,-1310135714,1685759,-1960395288,-1209471418,-1928482778,1508436574,18803196,-387293555,915144596,1187410046,-689438209,-61961733,-444856716,16729798,1962485480,33129232,381160311,152954880,-1779891340,-229736192,2122318336,309592319,1357530765,1342177720,1342177464,1342179512,1183649771,28856554,1996443648,637180,-114038704,2124505202,-96040592,-402647368,1383205113,2096809704,1887347021,-1980086741,2126047302,-11120528,1939531894,185887234,-402295360,552282124,66733707,100919366,-1773113216,1887438339,-394854576,-486414438,-398030079,1887307305,-2085067029,682878976,-1544796533,-5214066,2122537195,-361431036,15761027,2122572917,393478396,-402559304,501949902,-402125336,209713783,1390936956,-388764678,292878955,-2080618753,1933376638,1095688,1946699496,3717339,-1960467992,-1679229882,-297366747,1928988392,630253571,-1073086032,-443851169,180829,-352099864,65857546,276103344,2080605160,71797515,-400200216,28313518,1355005962,-1840139032,1074808715,45090165,1477092840,59762883,734255997,60418240,45676668,722136063,59631808,45673596,571904,12067819,58583104,62446716,-338547968,56616980,28889212,-402068736,-964951211,738132408,-326412846,-1559958397,378082309,-397381640,1968765553]}],[{"sector":1,"data":[1795618360,125109359,376848000,1024095232,91684866,-352278344,33998618,1023410196,410255361,1946157629,17233427,729088300,-2147443528,-387440436,14477606,738264822,-2145880831,1458238,1048577908,1962939789,-1039730977,57942127,-1957778200,-1955591650,-22870969,1878827795,-1962522741,-2134212400,335875723,1946286464,1975520017,172460559,-1957436374,1669827288,-768910480,-2005926237,-2146171882,259326969,738213504,-955747070,-15466490,-9311233,1347486839,335951615,-1993579871,1688337990,-62486228,-480032614,1958742785,-9705213,-1557371743,-957869056,-58817538,-1591249665,20780037,1023767552,443875330,-2130950517,-11501364,1412192822,-198883942,-62485749,-395596824,1048603351,1946227717,104759296,208928788,-385976577,1996442142,1312483580,-1341774360,1575324417,-326412861,1443163267,37651287,91372564,-336040216,-2130760910,1312318,666377076,106293248,12518773,-1207178480,1223164098,-1090095866,-404224000,34662405,-1070920588,57999115,-383363608,1207369920,1967128584,-27358739,-1996208245,2005662790,1962281734,13598982,1342696194,-481139046,-1343711743,-2144292859,51643710,-940104588,477435904,-402649928,343213555,-402287128,494729801,-402649672,-1351481855,67161985,1048580272,1946162182,-1962800126,-639041954,1952152824,-27358444,-2130282613,-2095054641,108035630,1887710851,-62485754,335953536,-1557498624,-2135396356,13104896,218330116,-940110848]},{"sector":2,"data":[57942016,-1558183923,113668088,-1996460031,-1955594698,-1964442042,585165045,584902807,584640662,335677183,1583284656,-1017256565,-1338178640,95436036,-392783786,28320357,117387637,280505346,88991744,1924663413,581494785,1941443307,580970497,2096573160,574613522,192217520,-1207274418,1189609488,1590653701,9156803,-349879064,-326412810,1443032195,-135796649,1946214888,623699973,1207321835,-176865271,-1962641525,1200293503,-28931838,-1207658008,182976534,-14192123,-1989116362,-401343434,113768143,5116,-1760330662,-523116410,201711825,573368320,573106326,1583284656,-1017256565,1962970600,256087,-389847948,427098242,772505472,243273077,-402385884,645924053,-2080697308,1946158719,167817238,434684864,-2146534400,1949174655,109019915,-1339067136,-1010824703,-385843784,243278877,-402516956,645924001,-386067420,-478937034,723812841,-390059072,-646184949,425859,-303443596,468209699,41179392,1468785387,14844168,1959869248,11188410,-1883718173,609478912,1879711371,-1023262845,397476864,526002,100926896,328710,1181362,218760624,151522315,370480147,51976215,-1308618726,-1342174718,505224219,117835551,436253184,236236800,101060885,28442630,112197658,101058054,-2081649835,1465254636,-1408731509,738610943,423401537,-523142281,-1265946986,521022590,-1948742739,166397518,-1960973395,-1958541746,-1073042190,-1057072780,-922816908,254075018]},{"sector":3,"data":[-321852208,-321852208,-805120886,-704383446,-629808838,1191739019,-814569741,715927925,1946462436,973190146,-1082850202,2123046678,378634,105220352,-4685656,772044031,-1981535572,1569261637,175474948,369355769,1583347743,-1034033781,-1957363704,887915500,606502998,119469844,1885222539,103532171,1166635098,-337368574,38141699,181439148,-1154582336,-684844702,141756476,-472786805,336701439,1166608428,378628,105236224,62586880,181874213,-1995802432,501811269,-351883262,138790867,-92209153,-2143783898,645210874,1017960075,168195106,1324840384,734432074,1166624962,50710280,105235968,122013189,71681800,-504823808,1006930433,1009676848,-953518279,1093,1342247096,-956235622,71665697,-956185623,-956301307,459845,411079,138790656,-1310064641,67487489,72714240,1969224320,1077837855,410255382,1884863310,-1962772693,1617684686,50492809,712006198,-13571612,1593933801,1349540024,726189707,1349540358,1342177720,1778560922,41257748,-1923623189,1354290814,1236839250,1420864334,-834238294,374854,11528543,721430969,205883584,-1982708087,-1923624890,92919422,1656472202,-1428216807,1206077868,427343882,-684797814,1922171708,-166693396,202646534,2122441589,1951286998,-2012826916,1451806278,2734285,1451999531,1963080918,1207599444,-2142341809,1965084286,-763983544,1965046956,1543105467,544913491,-1191097368,76152833,37538283,2122323317]},{"sector":4,"data":[58007758,1610565865,2075713419,19851296,-2114037271,1073795150,-2133305718,259211770,1963915904,-346311966,1190822150,1607169102,-1982900600,20763718,2122327156,510930638,-698446505,-1070903213,617512576,1346371957,1945988584,-830570487,1308718116,1183477995,-2008994609,1183517253,138774992,-472756597,-940471543,185414,1183451627,1007168717,1308979717,48955568,-467009276,-1593424503,914976858,1157853278,-733050110,1885472502,-166824703,1075061766,1048577909,1946168393,-2134015997,1949851368,71665950,785284736,96934772,1183449090,189106382,914949355,-1956745122,-389849627,787029983,604436222,-562757100,1963508470,604930265,1300240404,915079436,716795998,-733574400,-1923626965,-133966210,119418544,-16871447,-1586501114,782439468,1879744788,-1955584349,1050072,1920048189,1896658947,963644067,1965811742,736666380,-386364585,-544473824,1048822623,1962963084,527886339,1879744963,-1586484061,-661950420,1023414277,57831836,-1552872264,-940871636,1879711371,1962950531,71777027,-988989,-1830288011,-1010813953,1881939595,512485099,1065578506,956986624,91554887,-117475096,533063875,512476153,512323594,1200303080,1510343426,1885250416,16735465,966518870,1400177832,728784545,1349540358,1342130408,1122501493,512448767,2139844618,-2080888062,443941375,1887321731,374784,901251956,484435968,1444731624,1461504488,1048777963,-1207930754,57933828,-402639688]},{"sector":5,"data":[-1058530107,-1343728100,-1195116516,-605544415,-152307426,1879711371,-486387829,1975520037,419005197,-511047561,-523116335,1079055595,-1608739608,-14346634,-402426880,-380101495,-2098717563,376872988,1946222373,477620227,-2141759805,1472062,45614708,-4921344,1927963624,-1777830850,1139343147,-399215873,645200448,-1191259416,-1572845,-1961134594,-1955591650,29295735,-14358528,1887321731,722498816,-8591168,-35125013,-387060738,1610095651,243319646,-400550876,1055649958,-1935425493,337945200,-1558958941,815993902,1225144340,-2146667220,36438078,243271028,-1593764828,1587769434,9693296,-151114520,24142342,1760084085,-397118721,1333533492,-402651208,477494894,337905398,-1207536624,-1024983017,571419,-2095334168,7375934,-1007145611,-167737416,538190854,1371020916,-29300736,1387792500,-29825024,-1548220299,500885504,1508379115,9156638,-1709290520,31662064,1439493113,1996483723,38967814,1116864995,373014571,259485784,-16353537,1383094838,-486414438,1573161729,-956300598,7372294,621201152,-1593835500,100888704,-2069663618,-2135768208,1364248875,16816722,-1073015702,-356318860,566689855,83932321,581108112,1884862484,-919891790,-1191191576,-1867353986,-402647879,-1380384816,-3741695,-395278664,632881088,-4528108,213385451,736666481,-1552938333,113733676,333452256,1884862667,16824400,38640208,-1073015702,-1380446860,12079105,1301958657,-887854590]},{"sector":6,"data":[1970945000,3389452,-2145603096,74473998,1645117635,1354961008,338016338,243792,35756624,190452842,259283136,338108043,337976835,-1996597367,-389808825,-1070916485,-1957234453,-1592514762,100865063,-264563675,-22278029,91598280,-344082712,1645340906,113763819,5157,48808798,376873215,1946222373,45633544,441182208,440920152,-402650440,12065345,922701824,1385853018,1342300930,786972736,438954010,-1206229272,585695240,113639450,-1341972032,5171719,-1389485625,-350613272,-326413035,1443163267,572930903,-1763740140,-2005931360,-1406206650,829883196,-1073030028,37488500,-1142356364,13101312,338828939,728794273,1265664006,1258785099,715927115,-1995994652,-350997986,-339727411,1021585969,-1979223328,766258912,1183440672,1017917182,1007514336,-1964870401,95170272,250301870,-661986262,-75446781,755201648,-125108000,-1961612125,71171654,758346752,490536965,-1961790720,786682328,749766539,-399659515,300679007,1023417645,393412657,-472786805,-359137490,2143291948,-382043106,-141820072,771707881,512426033,1065578506,972125440,-327875513,201030888,-1961331457,809404919,-13440748,946858656,11599174,-370669708,-1341986021,1606420993,1575324510,169774019,37716848,-397212299,717484580,-1191449664,-1746403312,-401771013,-1712784583,1946267672,-310449915,-1195130838,2145910865,-402295557,225712260,340278912,-1207536640,-823656301,1208403480,-1070924012]},{"sector":7,"data":[5355715,1962630632,409135109,-1766322828,414443520,340264646,-1207506176,-1494744939,-1023299560,1879711371,-2097145160,57999935,-1022736502,-1329921104,45136641,-1157320517,-1957362256,116163564,1183340374,-1916785669,76151926,-402504567,440205258,-1967650699,455534592,-662012949,-74712950,-1191535384,-270008303,-401377798,-1477903727,1947876607,-1965061155,-386167816,-544474495,41344826,12115846,-1965937792,2010069706,1925921297,151259397,-388955564,-1040262447,280554475,-89069568,1390937461,-1197675526,115867675,402778136,167920779,-85394618,-402355433,1353521141,1586115839,161108987,-1342053597,-1956749567,1438866917,-1101599605,448360547,139889408,-1979038069,-489617826,41144529,-498721656,-899850507,-1028128762,-401347840,-776406473,-94050304,213389428,-1207375104,-397410191,-396821981,112786002,721581056,350798784,10270970,1962557928,10205204,1962555880,13875212,1962553832,-339727612,440323,1253572803,-1207178476,45683788,-1207506048,28906575,169773952,37716848,-397209483,962277791,108332103,-1325822744,-1070939391,-326412861,1443818627,-60389033,32720582,1879711371,-1962772597,1027998790,225706135,-482523578,1174828032,16533191,-25786112,1884960259,-768313,-1395512577,729071626,-1509654911,-2146143232,1946219390,1948531950,1948269605,-211386138,1021373438,-167480030,1020849106,181695802,-338659886,4831288,-384231448,1317011651,62849779]},{"sector":8,"data":[-1149743360,-472785013,342400907,-1740437622,-1846131063,1977478376,-193033752,158727947,2114190987,-351854858,75402184,10944385,726532468,1466980918,-1961460248,-963903922,1347535147,1887309451,-2114302327,1946199807,-1744862970,1075475712,-2078897344,-2146030736,-805092752,-386378103,512431709,1200320522,374597634,16547459,-1998060171,-16323818,-1343686026,-1493204714,-1962183424,57704478,130480222,1586187776,1927533044,1854376723,71731476,1190557187,16533191,-16652032,1884960259,1885222537,-1325903640,1606420993,1575324510,706,589375013,173810212,660561417,724183336,976170284,1044200507,-193,301989887,-15269889,302061567,319815438,134873087,1703690,1079198243,1129383791,1397966147,1229734144,570446657,109069390,5852705,1162891345,285230158,1394802771,125190211,1078875171,570427261,1396781312,1160970309,86085,1313427712,5853761,1095715911,264516,10160276,1447121731,524613,1096177985,671088716,1279342336,1182028,3606275,1280065863,2427219,3737347,1163084083,855652353,1078739524,1145112452,4997957,1229015107,4653390,1229211715,5112146,1146243107,1228081035,-1841277874,1380538119,155536451,148570197,1279721631,156385605,129368192,1278410913,-1723840690,1330398983,-2096544429,-1576552960,1397498624,1191218177,1380928591,-1241481207,587244551,-1795076785,1297048320,1145979213,1393008708,1330466127,10363214]},{"sector":9,"data":[1397641027,13967700,1079201571,1395853220,-1421850802,1381192455,1078872396,1445136306,129384516,1296324179,-1119861182,1230381831,587711552,-884978602,1398153991,1393021504,1112363862,131678278,822100992,541152321,1163149621,-519577531,1128621824,1163018572,-1660884183,788546565,738870853,-1660879837,201344261,-1475832575,1178948352,558645828,1163067677,1414416710,1392579617,1313621573,18293063,1397114195,438388558,1178948353,559043667,1227030816,19079501,1023495955,1431261441,4541506,1463898675,88321,1278410833,1879131475,1397510913,558254405,1310916960,24707396,1229213251,28049734,1230392931,21909330,1315111346,1330792790,132400206,1078349603,1361184747,1191411798,1163084114,-1241401079,1124117511,1447380050,1124594240,1447380050,587724356,-96449454,1381114631,1124597312,1380930130,855753217,22301016,1478689225,134365264,1124098304,1145849161,1929504513,1095060553,1079137364,1229391881,156452172,143983111,1227030702,135282776,22171427,1378025994,135741509,1162170995,1162627398,1997020736,1413697109,692997961,94175788,1761607768,1413820160,1042493706,2,156672,1124073472,1112888143,855799553,21976143,1811939965,1480925952,533060,1175650413,570589953,41963597,1162563139,136922201,1079004707,1313277997,156521808,123536009,1313276041,1414813008,143919156,1313276194,1347572819,143853635,1310916900,138821716,1163152993]},{"sector":10,"data":[5391687,1413697347,46465356,1413697347,139281484,21265,2030043257,1497703168,855822081,21777481,2063598331,1329747712,1346653781,143919194,1128464680,1145393985,1160972381,1682199622,1313153800,587754304,33641541,1313423107,591465029,129958664,53739707,12584797,1414744369,1129259776,1091073088,1279345487,1129273088,155538497,129368928,1329004737,1661553475,-1039644157,1179591424,587758400,-2109716657,1313812744,1328742471,2130792527,1330656003,143212627,1230131283,-1660857266,1163081475,61016404,12847268,1230132291,143672397,755011072,1130185801,839422728,-1845252863,587253000,-1757133749,1145783048,-1107209655,1145787139,1145455181,1260587166,145048649,1145850659,1260587180,145966163,1297304403,-1169930686,1146036744,-1761603456,1296118528,63242565,1415071027,570675713,125850703,587241984,-1052486589,1179001096,156112640,84935667,1345781760,789139013,-922220540,1414550272,558780233,1376912553,1428358528,79233364,1347704145,21589,1094910114,22302281,1097008320,1414808908,80937285,1347371843,82248025,1262830899,621332544,-817803707,-16454136,1095500561,148261465,83108692,0,1275,1295187968,-582987711,1229932296,-464497586,1057526792,1263481601,83951941,1079201571,1381435623,1413829445,-1828386807,1124128776,1414416722,923077633,156517715,143852808,1429143770,590416468,1297,87490560,0,45056]},{"sector":11,"data":[1095827632,1297040462,1312916224,1229803332,1795245402,1095054085,91554116,1229210947,92676429,5063969,1163085123,93978964,1414743399,155537999,87426462,1163329642,1162696019,906339849,1459645445,1381323845,96012622,7275830,1212631363,149832788,1229212995,96534866,1346653735,143984885,1396113731,-938912699,-435641339,1381253888,-129741495,1314203400,923128585,7,1093861567,-12565436,1380146440,1498301765,143853635,98435399,15140790,1262830901,-519500735,1195712773,1279611648,22299461,1163068907,1296387412,587797312,440421959,1095258889,558122322,1212745207,1229737029,101255457,15272085,1313294675,201411649,1313415942,1359554624,1279741513,1279459397,22037829,1329792533,21253717,1346569759,1145389889,1344342319,1361248323,154550354,1413567571,639714121,1163145478,1413677136,1078674249,1412630845,939610191,1381245702,1158235204,1195987540,1057573697,1381257478,4673097,1230132307,1380206414,1112876809,-1660531415,855668229,22036823,1498613343,1296389203,421377,1092681947,1092812866,156844110,1313163313,1296643328,157304133,1229260402,1095910733,108792164,1124093713,1179012946,856064257,21909330,1496516229,-1994308272,14942214,1431257687,1515209806,1460179976,1094927105,1749304659,1447383817,22302277,1314326188,1262702412,1241944073,1090581000,1279874126,1230192896,18254,1092813034,158285900,1347567955,1983926868]},{"sector":12,"data":[1380012809,1146246224,1095960963,1195725650,856265280,22496585,-285210958,1229010688,116525396,7800979,1145980211,1124530177,1162627400,1124531713,1213482057,1392969473,1329876553,120979799,1414091331,123076933,570488064,75518543,62976,626074908,644556161,660547298,668018605,674899930,676145213,691611887,696920399,706882079,731523762,739388376,745745469,161426555,165022159,178391527,167905788,169085451,171313701,176359994,178195097,178981541,179767985,180947648,182848215,183831273,185535231,190057282,277090428,567742601,568920708,576264298,576070236,576856671,572727809,184617631,333976059,301994990,302649861,303305231,303632282,362550711,359273896,386798949,365303248,160699798,225511798,225185102,404556124,404953120,595927928,959193981,14911,0,2023293059,352367123,8695808,8716421,8716421,8716421,8716421,8716429,0,8781824,562954240,151040512,9547776,9633938,9502868,9765013,9830549,9961623,8847495,39427,27060785,151060755,-1660747519,16908288,1593901380,20578305,1610834689,-650509825,1140916737,23003393,16855296,-10484893,31011073,17303972,90881,50453256,822083642,1124270337,19988480,10355457,16846080,1661010185,36765697,16908804,822083879,24249091,654344195,36765697,2130903812,67840,32259,469892939]},{"sector":13,"data":[23265281,31136768,1929577265,10683137,16847872,67118851,971026406,10814225,1694564623,18747139,1694564672,436404504,10814208,1694564623,17239811,1694564672,19071233,16851457,1661010232,-617086975,2294529,1661010216,-618135551,16869633,50397489,-1157627737,21749767,17056257,33620285,33496323,33620284,16850179,33554793,-336985083,16856544,15460969,704773929,-13958657,33500161,-536740051,100926009,50397475,2097348634,16846593,1661010227,-617414655,275046401,50617312,822083654,1191379201,33492736,50397489,-385613752,16855439,43523,-536805071,50397520,17760333,16732673,251676931,-11403007,-1154967040,-535052254,1272976438,72802317,19971,67116291,1359187945,1375928320,1342373888,51381248,50331729,33751119,-1880554496,805326851,19988991,11207425,16857344,956301667,19988955,11338497,-1156146688,290185236,28838305,5505793,59762948,-385613741,5571471,479193348,-2063400703,16845056,889258354,-2046623487,67840,889258354,-2046623487,835847168,20644095,16869633,-536805071,822149459,1155531009,5636870,836231940,1459814657,-672988160,1040253232,50462977,-536805091,33554755,18612228,50619137,822083760,16868108,50397494,-385613646,50619279,905969841,-1291648767,-1880554496,1677787405,17694977,16868097,50397495,50331828,-469499815,5964582,824632324]},{"sector":14,"data":[-12254975,1730288129,67258127,1728315934,16868122,319029506,38208002,67243268,23267687,67174913,34603522,16856584,1660990979,8913668,16856576,67155459,16850130,50397449,-536870729,266347022,336581656,16847623,47363,67119363,-1207717914,131840,12059392,259,50378755,822083584,-1174208255,-1090322432,33498368,23330829,16846337,822083939,33686530,90881,38669904,72289284,100925954,33817346,17367810,262656,436273604,1192191778,35521538,1662674692,16908545,33690372,218366535,157746178,33620323,33686529,33502736,469892941,23265537,-536268544,33620307,-336985085,1407189250,33685505,-521410044,1541411428,6423302,831514884,1661141249,-1880554496,50397489,-385613724,12780431,34530564,16856577,-452722174,16867279,20316418,302121473,-446693119,19988943,13042433,16855296,822149490,-939327231,121307136,251684099,50434025,17760358,16846593,989856099,1711472897,16846592,268554767,823636265,129892609,33620413,33686530,16860673,1174405475,29229531,50677761,235143271,67135235,29200361,50743297,-12189656,2622209,831514884,45613313,460398340,350229956,119791630,33620343,34472965,34210820,33948675,33686530,67267841,136699924,16869344,151258882,1742734850,33686530,-536225784,402915897,335809538,-536336928,33620327,-536280054]},{"sector":15,"data":[151127143,184680964,23268466,16849921,33620242,18612238,119041,822149481,218235137,16872704,21563208,13501185,13435648,16847616,52995,167837965,17432833,50596097,50331856,-536870703,68356700,53763,54019,50397495,318767316,-721223423,755171328,-1343880192,50397489,50331862,-435945426,16847791,55043,27060749,-14680039,16849921,-603782045,204537856,906035555,-570228479,-1880554496,-587004829,20316160,14615297,227535108,23265537,16856833,1660990723,-1880554493,316677487,253747222,-536337952,50397544,50331652,50331651,50331650,50331648,822083585,14680836,14746368,16856576,1661002243,20316161,14811905,971035908,587596802,436404481,16856064,872415587,-469564965,16908288,33554758,16908290,122031176,68576,33555458,50462722,1174471168,33685505,16855296,58627,20316418,1761739265,1241639914,78086,33554946,-11796479,16849921,50397449,2097152232,19988737,7602945,59762948,17760286,16851713,1661010226,-617480191,16724225,50397460,-435945424,50606511,50331883,318767483,-335347455,520290304,16846592,939589924,23265537,31143936,50361603,335544472,-15736825,33492704,67121411,16855138,33620291,16850179,82912,905970690,23265537,16856577,67169539,-301756439,23658496,16855297,61187,67121667,15729454]},{"sector":16,"data":[15794944,2097920,31320335,1661010204,154206209,16864224,-368835838,-536804629,33554771,-336985086,285309443,551551487,372498476,-201128938,23330816,16848385,167837962,-217906943,18219008,16868353,167837974,17432833,16188161,50606336,-536870667,822149459,-167575295,19988480,33493505,67139843,20025321,7996161,1452271876,823451165,16868105,822178563,50921734,50426627,822083832,-117243647,19988480,9044737,822149475,-100466431,870318080,50599440,1677721852,18219265,16450305,16848384,369164644,-50134783,-33357824,822089984,9634564,1728471808,9831172,9700096,335663921,84082945,18087937,17171201,16847872,67331,50397460,335548680,151191809,18087937,84411137,16847872,591875,68099,50397460,335544587,134414593,201523213,18087937,17629953,16847872,69123,50397460,335544591,268632321,18087937,17892097,16847872,70147,70403,50397460,335544596,352518401,369295361,386072577,402849793,419627009,18087937,18481921,16848384,72451,50397460,335544604,486736129,503513089,18087937,18809601,18875136,16847872,73987,822149471,56819969,486337028,386006250,18088447,19268353,16867072,1610678556,654508289,-15204351,16847873,76291,50397462,335544620,755171585,-1880554495,50397460,335544622,788726017,18087937]},{"sector":17,"data":[19923713,16847872,78083,50397460,335544619,872612097,18087937,20251393,16847872,79363,50397460,335544631,939720961,18087937,20513537,16847872,80387,50397460,335544635,1006829825,18087937,20775681,16848384,81411,335675157,1090715905,18219009,21103361,16716800,50397460,1593835845,20316417,16867329,83459,50397460,335544649,1241710849,18087937,21693185,16847872,84995,50397460,335544653,1308819713,18087937,21955329,16847872,86019,50397460,335544657,1375928577,18219009,22217473,16847872,87043,87299,87555,50397460,335544665,1510146305,23003137,16856577,50397536,1593835867,20316417,16867329,251747331,23003647,16856577,50397536,-939523747,-534848729,195171389,16861664,50337283,50331653,67305494,369295360,197376,1442560,515,50337283,83886081,1377279,-16447740,352519792,33505024,50337283,822083584,637586181,1407189503,3867396,16855296,15363,1929641739,19333121,67055873,654311795,-13565695,94723,369575136,-2130509567,18219008,8520449,121954304,50397462,369098883,-2080177919,-16580608,1082786047,434124748,639295536,-535020576,1390416456,22667272,24773377,16847872,13059,50397460,335544369,805503233,18087936,3080961,2949888,16847872,10499,50397460,-536870873]}],[{"sector":1,"data":[249564943,21422088,2884353,2753280,2818816,16845056,822214427,1197670657,16867073,1593922097,372310273,16867073,1593918995,19988737,20779521,956367199,874184961,16864769,50397489,2097348746,1443628032,19988737,9044737,1660978947,-16186881,822302208,19988991,9044737,89856,188810754,1593966432,100794369,1661010241,33513475,771873089,659480831,1662861792,823224087,140706049,1057227367,38147,37891,37379,37123,50397460,335544463,-1878851327,-568393728,89312,50397489,23527679,14557441,1323368238,239198233,1661010225,788752133,-1794964993,18087936,9372417,18089476,9437953,-10223769,-1957363712,116163564,-1070901418,-1552942941,1183394818,169774076,37716848,-1070920075,-625285040,-672595073,12970240,338822855,1065555016,-1959889664,1334511231,63436548,-1205373696,-108855130,-1206815676,-108986141,141820084,1963719043,9943052,-367138736,-1930885762,-373282304,1032913046,175243336,1996508221,604930053,116801556,1948259364,5324042,1379786612,-1948617728,-940111241,158597184,281540525,-1392348160,633834413,1950875651,-5427706,787481552,766379437,-134330743,1946159303,-1985139190,-1389429690,-2131081591,2902334,-940112268,1031077920,-1948045080,782499398,-422189036,1048779390,1962963084,-61437172,91542027,-375157,604930258,116072468,-1914173828,28327171,337913472,1606421183]},{"sector":2,"data":[1575324510,833731,-352128024,604930283,727064596,-18683658,-1203355522,870842387,-14322205,-398065033,727245521,-29621689,112724092,8382464,2013256683,505858,-402623256,-840236958,-402650184,-982195450,-167050832,-1070987659,-1082916117,300467038,-2096333056,91493369,1968306563,167882754,512476096,-919900150,1962950531,-1962823665,-108854193,-2096663545,41159673,-1073037270,2125988035,-1705947024,342491737,24428555,33941699,-118767573,-1947432107,115868742,46292224,-1950340352,1131445790,-2111947965,-1995344016,-1955561954,-1989114850,-1992080633,-1016036322,45699920,-4790272,-478848933,-1957301781,71732204,-1946170136,-957872570,79846911,-326413056,2123061078,-410827004,-389051394,376766348,1884960395,-1207536125,1448112254,47749719,1040258154,1583313028,311901,-2081649835,1465256172,1887319807,1183432747,-112817924,-96040640,-1996075381,-2143158706,98828001,1979664360,509930242,141986567,1884960259,1887714955,-112837972,-1930948748,222079488,1187466356,-352321030,1947024399,-92372628,-428605185,-96010326,-440696,-730464690,-1962907928,1040385150,1183543424,-150656516,105251800,33432640,-1888451578,24149510,1601207814,1575324510,1476396738,1183053291,158860028,28369034,-339440981,1513499579,-2143409296,178544,1962852328,1513489374,-2143419536,-351424400,-28967205,1191118196,-23729156,1911160397,1183535359,1979923706,33041170,1854143558]},{"sector":3,"data":[-527825924,1202392496,1476396486,-326412861,-1710721281,6264,-1157204225,1347621526,1778571418,80370964,-326413056,1443294339,1685591,-1946401143,-667220386,-1976693645,-2010846585,-919864506,1187395563,-1590803973,1077947518,772214422,1962949760,-79233520,2122371627,947346171,-352074109,-937301782,-244085,1178336326,50754566,-336460815,1121029078,-1765865698,-79263214,772793258,-69031252,78162990,615515252,-1433320790,-1956749422,46816741,537376768,-796140757,67101313,1964112515,1567811599,41157808,101188272,867201122,191925411,-1962707749,512295519,645951630,-1006758876,1879711371,-990458645,-167086846,1085538756,548668789,-352275395,8173753,1881546379,512427243,116813834,1971351693,-1928923617,695541872,-2046376112,-1207959440,-1847025664,-46208769,-689437323,1492577247,1887877200,1010801232,-1073020445,1894253429,184529151,-2101820480,-1928923648,58032240,-352288328,-392800591,-24903700,-1207405305,-1578631029,1444211711,-482583654,1887877889,311868243,-660975533,-1340839422,-1195155713,-397410170,-380043328,-162070660,544247046,782308213,1173524,1888290550,-1593412224,82318384,1593815040,194401987,-385649162,-1406271354,-143261380,108462908,1190360492,-466947861,124969020,-1406214006,-1847648211,-466965458,292741180,427097916,-1406214006,98566189,-342741586,63998732,1987067094,-521502460,71143680,-1962642176,766766066,490536965,-1827638528]},{"sector":4,"data":[-1959861295,86814855,-1796723282,765193215,826081309,-1827572992,-1959861295,187518087,-387287872,-437518508,-402640595,-571736289,-1957313698,49054700,915101526,2089512806,1679199008,52095855,956664830,91555398,-343930184,38112086,729801856,-25261570,1979648919,578585058,326369520,1868871762,571472,35428944,190452842,-352160320,1714850610,574947183,-33293685,-1996077429,-1983894779,1166607429,38111494,972971659,58007620,151002811,1603404368,1575324510,-1207958838,-202670073,116165461,-402098433,512440531,1468755814,1004177184,192022086,-343891272,39815962,192931712,66155739,956795866,-311097274,-2147004544,130165651,313949,-1947432107,1996425806,108461832,-402360577,-1034092538,-919404536,-2081649835,1465255660,-470135159,71732022,796517386,-1988107136,-1550777274,113733628,94206,1878525639,243269632,-402362368,-1198323808,-620003200,503528056,126578534,-1577433463,1183412068,71732222,-1207548359,544506018,343148231,1996423168,47112,105286480,-1703936349,31670339,-1199529667,57966602,-1962901527,65272398,-2097151303,1689782465,-1705947025,342491676,1668595723,1868971659,50742923,-62486073,67008139,138841079,1153893513,-1962934270,1149830214,585650180,-1962511089,1149893190,-60912888,-1996206197,1191249484,-1960283644,104662086,-2147191296,1031800655,74776581,-2147266688,343154315,201213579,-1962052133,1200225374,-1207375098]},{"sector":5,"data":[99319815,721568137,-1956749376,113401317,-326413056,915101526,512454502,1082879998,2145681414,139889559,-1581774613,-1959335040,-16055683,1049228404,-33352588,-277539527,-1560001141,-661950466,1962935869,375561,-1559738997,731344898,105810886,-885323805,230163316,1566465920,-2097150774,1618347771,1979713085,63308635,106925023,-1820334208,-2147065973,-620003353,-1073002892,-570211724,73370451,1407124371,-1962647669,115966924,11800123,129568375,-1073297920,1482162977,753656843,1543484648,-484281000,1334547210,1329304328,-1961462520,-1953299873,-1226112417,1962935869,-1950139642,990243788,47555,-326412861,-1962518698,-1561850810,175541030,647751830,139365271,990271115,990344695,47562,922690539,1381051482,52408040,53234742,-1960031170,2106263668,-396862712,-1671889079,649062480,-1949201507,721581508,1583286208,576093,-1947432107,503514718,126578534,182877,1713277783,-1946645649,-410974599,-83656705,-952384765,126690164,494192443,1023690123,192348166,58062347,-16258239,-402396202,2106326990,-335871230,1438867421,-1957237621,-164952506,-1209480917,1566478847,714,-2081649835,-1588198676,134573924,2147433728,129500534,-2093880447,-13866434,1689784949,1996443759,35428868,-1073015702,-487909259,1868838539,956593667,1936681014,-2146322427,914949867,-1070895260,1575324510,1426064066,-326898549,-123644398,-163149457,16402119,456192,108266608]},{"sector":6,"data":[-377343048,1048773429,1979674622,-133761266,1965031535,-2105690106,-2096946967,1962870398,1782481693,376766252,1610893047,-1710262912,31677598,108314635,-377482824,1187447549,-1962934018,-131857338,-135248247,201389638,1190529652,712247300,150032000,16140023,-2147191551,-1962741426,1183445062,-163121162,930350080,711983520,-773795356,1181152,1317027051,1048579313,1962962945,-163121653,-955943664,326214,553010934,1048624756,1980264449,-2117748553,-2096983831,108002878,44107125,-16258192,-395313610,1174473765,-297351430,-163121280,58032376,-167713815,1972958790,9562371,284575478,1719673204,1190653937,1946419446,440325,79168491,-96040704,1089881846,-1997995147,-948507904,195142,150357750,1187401076,2122514670,209059590,1878525686,-2147126264,19512334,1878525687,108265984,-269392256,922703851,116813820,1946710008,-352145404,704884738,922702052,115896318,-28931810,1954545833,-2112702412,-2147359511,-135270042,67171910,1187455860,-352320262,-163121636,-2094042048,1979647614,-1139900409,166396201,-269392256,49956551,-96010496,620381835,-96040450,1878933123,1963095814,178246,1190609899,1954545910,108954592,-958761473,19512326,1048826859,1962880100,-1069645812,91554671,-16365881,108954623,-155552513,-2140159482,1719710581,1190653937,1946419446,730065827,-62486080,1868826115,-1560279547,2122329132,393478382,1878800127,720258698,1407733988]},{"sector":7,"data":[1958742803,-2130003962,-1962856215,1174665798,394748,-1946925431,1178204742,-1207536652,384401671,-193528063,-1979879960,-1072958394,115934068,741122305,1868957187,1358055049,-1694861569,31654332,16547459,1048776820,1963356158,-228684943,-1989147999,-22939577,-263845521,-1577951605,1200189436,-228684806,-1980742005,1586232903,-28931086,2122319753,225706222,1878800127,720258698,-957853468,1868865810,-1955621725,782496326,-136803540,67173959,1207308916,108282110,-16351613,27264629,38242416,-16351613,-56552587,1975663,1586173931,1878958578,-336050295,105286547,1878789771,51306883,1711670209,-129595025,1065605259,-1962249216,1207431774,1948254462,-228685035,-1946650997,-62420732,-1577558389,126430252,1586179307,-62404622,1586167808,-351826952,-228685048,620513163,1711670270,-230258321,2139347083,-378076676,153889953,-1070859193,1584508067,-1034033781,-1957363708,216826860,1049318999,1048801126,1946168380,1878827276,50335269,-344996858,1878827270,50339365,-1989188090,-661914554,1183385483,66096116,741122551,1978943033,-62616818,126484004,1988830187,-1946745858,-31130556,1006519945,1965829126,-126449171,-150736757,-1946657141,1200225348,-11763460,740991296,1599997065,-1017256565,-2081649835,1448543980,1868971659,742145667,-1962052608,-2089812962,503516899,132870084,1878793867,-1960909949,-62486271,-1398554581,700359537,1962690105,1007040781,-2096335828,-9452482]},{"sector":8,"data":[-1070922379,-1962896407,-150733706,1157000683,141821950,637420683,65732615,1006126219,1953496582,-29034733,1802830336,620643467,-33158152,-29062801,700319431,922681345,45641724,922701824,48787454,-2130409189,571014732,-67148672,1907113603,-952601344,24226822,734432000,-1552980474,914959404,1149971502,66987260,1005620167,-1585220361,1144614908,-152340998,1963523652,-29034549,58040560,-1191217175,1600028938,-1017256565,-1543562776,-1073010240,-1070922636,1048776171,1946186156,-24451069,-889192008,-2131981483,-2132867994,1963852926,243717,1183452395,-661940220,1881311114,-1034034134,-1957363710,451707884,-123644329,-364476049,1879049974,-385649406,-56557379,-297367185,-1989149023,27323462,-96040848,1879058048,1879220734,-948962141,7337990,-33110271,-2097151633,-13867970,28837236,721611520,742171584,-1995965208,1048831558,1962963372,1975520026,1010729750,-1071972052,1017370871,1975520044,131852294,-1947842935,-56365498,-330921105,-1955594589,-123475386,-96040337,-2089811550,1962993278,-1405189331,645136497,1879049974,-1960872959,-164876770,1946680903,-28865784,-352319707,-129529085,1962934589,4162309,1187448959,-377323290,512426430,126561326,-2140142941,-1099957978,1878933123,-2096139264,-9437634,116854133,536899576,243271029,-16683015,-395314122,1183387434,-16733710,243271028,-2092929031,-13867970,28837236,721611520,742171584,745848843,1878525686]},{"sector":9,"data":[-955747312,-2103646650,-1593745943,1183412164,382902776,1040074377,611713023,1874736895,-1995411992,418119238,1878525686,-955747296,-2103777722,-1207881239,1183449087,-129594882,1878537867,16828151,1048777332,1962897406,-230258165,1676169368,1878959102,-461322613,281837740,-956545399,2735110,741082823,645988351,-134320128,1958803654,21948675,-1996051224,-1072961978,-605486220,1010729728,57999404,-2097085463,7449662,922686069,-1696043012,1963042830,-1069645764,896795503,1907113603,-385649408,-956890936,57934336,-1962885143,-164876770,1963523655,11725059,963640481,57998918,-2147440663,40878142,-1645673612,1007077120,-402653140,1183385153,1975520230,1007077235,-2097151700,7449662,-1394015371,775850752,-63504596,238020719,-1996488411,-1072959418,1173820020,1971325182,-28969461,-385649600,233504903,15761027,1048579957,1946382272,-1408841976,-352321423,-28969360,-144018424,1946288326,1878827364,1979598393,-1069645810,125108847,150752897,-942216414,-2129992122,-1552942943,1183543290,284632554,-2140145501,-110100442,-370784629,1048773353,1946186156,773753640,-28838356,-1960938432,741122823,-956885013,292815360,1907113603,-1962249216,-164876770,1963523655,-1405189198,57933937,-16616471,1996486774,-131864324,199640713,-375556672,-956890528,58015752,-150921495,1962936518,10938627,-1979983384,-1072961978,2078868340,775851007,-1405189332,175374449,700333699,-385649408]},{"sector":10,"data":[1048773164,1962944958,-18408,-62485680,1344421901,-1980247832,-1072961978,1206453108,-63504385,219670639,-2143502300,-35060876,1007077121,-1593835220,715336748,-1073297620,-1207959511,-474331438,-1706012159,31680596,-1557386591,113716268,11324,-1993752415,512484934,1333799982,243286270,-2097075780,1946216062,-17766141,1878800127,1342210232,-385016600,1048773032,1946168380,1878827272,1962821177,-133761269,1946288239,-20715261,-1996190488,-1072961978,-1142357132,-1405189122,57933937,-2097055767,2899006,116859252,33583096,113711477,11324,-1996201752,-1072961978,-1880554636,1007077374,-2097151700,7449662,1172898676,-126419199,217859723,-857124856,70772990,199640713,-385649472,-956826010,863273120,1907113603,-385649664,1996488273,-59310088,-1980314392,-1072961978,1139344244,13039614,-385649280,1048772864,1946168380,16181507,-150935831,1946161350,-196688051,1048772609,1946186156,775850779,-28969172,58000384,-2130835223,-2146369971,-940572827,62534,16023171,-4713356,1996443903,-160438020,199640713,-385649472,-956826138,57999424,-385834007,1048772755,1946168380,-1405189263,57933937,-939670295,2898950,59238400,199640713,-385649472,113769910,76860,1907113603,-1206422272,-1957625857,-1088095162,-165943216,199640713,-385649472,512490898,1333799982,748765438,740991788,1875130111,-386107649,1183446521,1958743014,-42931965,741228171,-1557386591]},{"sector":11,"data":[92875820,1048783083,1962963372,-18412,-59310256,-1980378904,-1072961978,1206453108,773753853,-28344276,-1139900352,-956890839,208994560,741088907,1868963331,50286464,700202624,-15895552,-1603273674,-466998852,185133136,-1552942943,1183543290,284632554,-2140145501,-110100442,1579953313,1575324511,-326412861,1459940483,108432214,2123064555,-1946287352,1183448645,-59405316,-151067005,1963523142,-62458035,1182011392,16533239,-166038524,1954549061,142443321,-1926007553,-11533243,-543554442,-350983666,-28969435,-1962380281,119930437,-1962677504,87947333,-2096139008,1946157693,1996445449,383031812,-167046038,1600034933,-1034033781,-1957363706,82609132,2123060823,-644346,-947714442,-25821438,-402360577,-2092499097,-344846082,-443850914,311901,-2081649835,1448543468,50757259,2122516606,393543430,1996486187,46629640,-100865,887620726,-24951041,1592488456,1575324511,-1879046462,1399809211,1342186680,1342238904,1778449306,1958742804,2406418,-9464669,1349477942,-486425446,-1010529535,1868872534,-1070385269,2146500225,-1202511245,-1706033136,342491676,343195659,1875129993,1868969475,1095766,29137488,-997522973,113757022,2102406,1048821811,1962880100,1875157257,344327879,-2103246832,-2079930604,-1946157548,-345020906,1712753434,-2145481873,-1948646636,-31065017,-1962380033,-1545993256,-1950149504,-1592490994,-1039985534,1094834315,344329787,-654110348,-620028021]},{"sector":12,"data":[243920500,-1014295420,868472811,-1957313600,49054700,-2046376105,855646228,1428745161,-326898549,1284200194,1953775882,-2046376119,-1962930156,1183386692,64523262,-1960031226,1646148604,-1962117844,-1993580010,1589182038,1459563375,-2112976490,-2079930604,-1946157548,-2098722732,1962871807,1958742784,-28865682,1651837096,1947256054,-2134575523,1156974196,1383334412,1946469622,205846041,-2147191806,-1916859033,1347552327,1780814234,921393684,260913899,637421451,57999367,1039681419,208994309,1364349264,1785110682,1482250772,-27358381,1526739176,1200292725,1347506936,-486425446,-118990335,1586162686,-1956658165,1438866917,1183575179,976900,180829,67371520,1392509960,-1957493269,1026318878,158793734,776938171,-1072997417,-1576601917,108265748,744627771,503514740,82521164,1868439181,-1828174077,1527007115,-943472629,7449606,-65107200,518226799,742145667,-2096663552,503516899,-1957269564,-1955633610,1958742784,-125085918,344655559,-33292289,1878789771,309655355,1962560825,-58881254,67037059,-370283522,-1070923209,-150851095,1971364033,-1962022078,-1955596266,-1023934899,-344620992,-2080481909,58001379,-1577558645,-667193346,104665205,1344435456,1006126475,1483735558,-956950668,-166955744,578134213,1971373814,-1199838402,-471236342,549910017,-1040753804,-277512184,-159268936,-361488187,-956935957,1024095489,393543685,1963391875,896876562,1996946307,-2134510075,-75299468]},{"sector":13,"data":[-1205439226,-1477869046,1891825409,-165448688,-1284175679,1965081334,281212590,-973732492,-1197181948,-2014740032,-1960933119,549844500,-956901515,-166562556,829688006,67682807,244005493,619278332,13271551,-132740856,146929263,-973729163,-152603644,477368517,1074611702,350949749,-335586071,80148118,-973732491,-154438396,-327872314,1971373558,1010729755,208928812,1946730998,46593543,-1360330123,1963247094,15657232,1928905463,243321205,-352227328,-1949158421,1010729951,276037676,1950401014,735546123,52267990,-28341282,344790665,-1979562102,980418854,169243872,-166562588,225710277,376815626,1963064448,38258183,9758977,1948303862,150765579,-977795466,11856257,-1089640576,-970210421,-1014804144,295326468,1494510117,-2080374856,1346878,1048775285,1946168380,1875157251,1878931199,344659595,1241871426,1878922889,-1360506544,-33124368,-1072997521,748777077,740991788,741088905,742143743,344800899,-955878400,2898950,-203233280,742131343,1868969611,740957835,344800907,141885195,495582723,82566659,-74719741,175112608,-2013039424,116851271,-2143260680,113713525,94636,1075088289,-1952381324,1878958868,741228169,1049230891,-1070912468,-138191265,-2136408507,-1410738060,-182523650,-1583917109,1950362724,-397391830,-92269188,52458497,997156414,393607749,-1603273565,119893953,1878958848,1878525639,-303562240,-2147226636,-882933556,744627851,881575563]},{"sector":14,"data":[1023412269,91516766,743179819,-18285,-397162189,360191016,351201360,1074415499,1447561076,-269985968,-346334982,1465277411,-872760344,116165461,-402229505,-397409082,1560802426,-1207958838,-1706004636,342491470,-1006962200,915101526,-24433582,743456259,345915008,-2096925696,-147123514,861365363,-2082567169,-1226308925,-1070375092,1869219574,-1996262398,104333892,745804936,-2097003383,1962871932,138709251,743585339,1150142836,1318735874,-2095814143,1962871932,138710458,21928528,-1343548310,-15958909,113641333,-352250742,175439778,-1710721793,31654332,-919366165,344592006,1048579299,1962939550,406100485,1583289450,-2012821821,1676149012,-1564462081,2091062408,343843604,743442119,1438842898,-326898549,-1957210604,1950352966,-397391862,58000731,-1996425751,915144262,-24433582,743456259,-2095911293,-147123514,76221043,1979598395,13625842,344538752,-1961528320,-1205055426,-1202705328,-1706033134,342491737,58048523,-956246807,64070,1074153099,-1924657036,1397815390,184767720,-385649216,1183645876,12079346,-2135404544,10113024,185887233,-1958382400,-1333860105,-397160008,1183690791,781865208,-401315293,-1072975733,-620025227,906170740,1552493650,205833994,1418330111,-1926698232,-1202656186,-1202716672,-1706032928,342491387,41271307,906184427,1183657042,140283372,-1566944432,-2095814143,304893958,-1979824501,-129594108,21928528,1183650922,39620082,-1566944432]},{"sector":15,"data":[856975873,239372736,-1777318775,743573035,-443851169,182877,1358448269,1778470554,-230257388,21928528,780342378,-1206768560,-588513281,-479735654,-1883746303,506132,1946206952,-1996044769,-1706033132,31675189,344524486,208945153,1376125768,1468764972,138906378,1342825305,1743952466,1482293731,381460939,134600843,1959148288,1377733396,317424428,-1928150141,-264566201,-1014761867,1251731458,-326412853,-402229505,-899810747,-919928830,744636035,-1190956032,243859476,-1950149476,185900062,50754779,-349418466,1869789955,-326412861,1869874830,637951627,-1962653813,1207314128,57999874,1577058232,1426064074,-326898549,1183405842,-163148298,-1090518343,129105984,-335544389,-1956947433,260768327,-326412974,1460857987,-1157627713,531816414,-1997131178,-318047882,-444594823,-2000224641,1183447158,-61961730,-2098703466,38244095,-481711013,48449801,-251460558,1967326258,1273548803,-1037830606,-133963567,653950601,1317737867,200969212,642020607,2122913163,1295525626,-1947306749,-947650954,-1977177084,-1021098203,-629809094,2122380258,57934072,-1962888471,1988885118,-61961218,-217790589,116225190,-198372966,2123040523,857205754,-112802112,1049306625,-1993998254,41239301,-2010774864,1988821573,-61961218,55412774,-217790589,-109150044,-1955957760,-485188594,1681325839,1647771436,47148,185067600,-1200655685,1174601991,-92369924,-23441325,-1777047037,345771659,113709027]},{"sector":16,"data":[5276,-401939224,-1779953917,197143550,-1959889674,-964428682,-23599100,-704440437,394862456,637683598,637555361,-125106807,-1557740029,2122907730,-94467078,39291430,-1072996717,1575324511,-326412861,1869789271,1452953680,-1206621693,-1957691047,149095502,54499921,99292266,1778590106,1958742804,1946586662,2014219119,-773729937,-773729823,49121,-1070870741,1454942963,1386423808,16975104,1601139363,180829,1458342741,1988828759,-32774138,369254286,142510855,1284163883,-2084467965,-1527577402,1566465823,1426064586,1465314443,721843851,1946586825,1284122223,-2135404285,74907392,10113105,1494510081,376750091,512624414,-1047826572,-1962621309,-1960442754,-1527577987,1583292166,311901,116165461,1869874830,-2096865653,-1977219901,853484551,1967537380,1334453789,49905919,-1977215882,-511704753,1324974303,-1977218955,-551288249,1560790270,1426064066,-1910575989,-1955630050,-1070922658,520243082,180829,-1254228043,1040167168,-1957312205,512630508,1586196340,74877446,-1070394653,-2147330166,141869282,74765882,-164492624,108391690,134371210,-1073020297,79846687,512630272,-789155980,1193280012,1438850818,1183509643,106859268,1577051880,1442841794,1948159518,217461615,-1310684666,1370176,1156976500,41254914,1142997258,-339441150,-1017241620,393606667,5506759,378273790,1111621716,-1991181693,1996510230,-1947038968,1962281780,-1007285271,-387151019,1996487844]},{"sector":17,"data":[-50731002,345769671,-899874816,-1957363710,-57743124,-1962522997,-387447730,-1677277188,1560281108,-402651966,1397816440,-480850278,-1677277439,-1023410156,-1947432107,1586169926,-1841146,313949,-1913877675,-2089848290,2908734,381355892,1277035264,-1962439124,-919927714,55544358,-1962622077,46292435,-326413056,16837761,-16742771,1996443728,1456380420,-397409821,-443809916,180829,-2115204267,-1929314068,1358889094,-402366837,1485963141,-1946394904,46292453,-326413056,-402229505,-899809318,-1957363710,108462060,-1946188312,126494426,182877,-1275051,1944585846,-899837441,-1957363710,1996445420,1493080582,1988821475,-2091887096,1962934908,8435727,16816720,80155754,99287040,1778538906,1958742804,38046477,1586168835,-15472634,1566442497,1426064586,-1923683189,-2089848290,2908734,381355892,1277035264,-1960866260,1988822622,-1967117564,-930413753,1418383915,2126654211,-2083878142,-964492093,-1628942332,375282344,79846687,12451840,-1576602112,259326228,744242689,744163062,17069440,992763454,1965842998,-1576602100,91488532,-345022786,1278608143,96897836,-1706033146,342491366,1175483531,-347208844,-1957313578,82609132,139365206,1183464419,175540998,91537468,-335567896,-1982987476,-964428722,-28915966,1983578124,1444574204,1778443930,113672980,-16483197,-1705638284,342491366,1946056195,-443851039,445021,745932534,-400853759,1371273306,254535758]}],[{"sector":1,"data":[1086014896,239331406,745934464,1780908033,-2134639249,40856078,106356203,-479735654,116693505,1988037620,745934464,1778829058,-1694499028,200553755,-386355480,-1332083073,1073865574,228198260,-352197794,-1845049615,12058642,-1830268928,7190534,-68556720,-1191713560,-397410242,60425857,-2147359968,16836878,-480565350,-383352831,1048641024,1962939550,-1576602095,91555860,-199504742,-1576108021,645923860,134032502,1251658590,-1205745920,-1588581266,339553390,-1207732480,-1706033132,342492049,1036006339,-1772698485,-479735654,-1153060863,2129156882,13998605,-823651222,1979059199,1743952389,-883031581,1349481144,1778693786,-1010529516,-1557372255,-1070394209,1445363907,-795149012,1342301031,1869285110,-1341164536,1528740613,-15909656,-401301706,-409336363,-956177573,-13866490,341764351,1778439578,-8919020,-1710890151,31680498,744634111,-2146657048,1351230,922692725,379191732,-1207176164,-1706027011,342492887,-922070951,1048580468,1946166744,471833093,-862319628,1477178395,512434923,-1014813614,968897288,-167283705,1963000391,-1198288127,-1202711446,-1706027087,31654861,1872142795,1962934077,-1710831863,754976367,-1734148092,-1010529425,1869612743,-521601025,-13833985,-1070397757,113969131,-479735654,1169182721,-396633413,602410113,537822206,113705328,28600,745940608,98785790,-479726950,-1177876735,243793919,-482268054,-1576602088,292882452,744109823,-480565350]},{"sector":2,"data":[198436865,-199504742,93047563,15474315,410179643,-952429196,-125103502,208857296,185425896,1073903040,-122619464,1439389852,1465314443,-1962516853,-2094245322,359923775,1016789899,1342301020,1946710685,1513503496,-118524628,1453128112,-479709030,736070401,41065920,1583334539,182877,1392570043,-480484966,1364247297,1397812177,-486418022,29137409,113443299,50331835,-1960031202,1950552159,503532311,1207315532,-277543923,135088118,506194293,-469029812,-1957313785,82609132,1187403606,1183318271,75402238,346693259,158663740,-1962934082,-350966754,-1472820469,1963146260,-11106301,1190944393,55461236,-1960031178,-16055228,-130339212,1183455861,1958742783,1645644583,206846764,1686768245,132415495,343196730,83787392,1955267956,-1949766894,-1008005004,-327827445,1275472790,-1207506132,1586233343,-1956749316,46292453,1023520768,-1957362512,-1957669140,-399746506,-11009161,1642595958,-396996353,1582828165,182877,-1174697129,481951806,2942976,-1994898293,347609157,64981760,1355154392,57711187,112727146,66061056,-1705552136,342491558,-997473441,1023415481,374849579,-1031039225,-704396541,1398165586,31955537,-16055837,1889142389,-1206621693,1153914968,1610612484,-18237,-1557372253,-1195168678,1688469503,141836332,-2134081464,-1020503389,-1557372255,-389862310,-577108252,-402529430,922745901,-660984734,-1710492553,31680251,-402295744,-202700808,-402209816]},{"sector":3,"data":[-1947717340,826992675,1349477560,1778470554,1869789204,56007248,116790378,1946709867,-1808335095,2115541615,1654721524,1476803372,-955747028,-13871098,-402396161,-397409689,-1957101705,1277035480,-2016900308,-2028688370,12259407,1277035264,274172716,74764347,-236201333,1410355081,346162934,1344566530,1409160424,-895871883,1526850400,-4695974,-11382529,-399744458,12059187,1167740928,1477178405,-1407808565,863257108,1975663434,64654095,-1960031202,378081367,535499948,503569035,1468738636,326386192,1975663434,64194543,-1960031202,-746123185,-1022341239,-2081649835,1465254636,16664263,1648265984,142508844,-1703644159,31681245,-1342058776,142016260,-1157777432,-1036255233,-1958602123,-902100914,-108838028,-161319421,1963722566,34203740,166418403,-1206606173,1877540874,4111873,29616214,346164864,1577949698,645923299,-956492638,-1962803386,-11147066,-620029973,-347396235,4110372,1156116619,1004440575,1949059614,-1102648536,1253572608,1052266540,563761152,-350983678,-2081191127,225771518,743185923,-1995415669,-350966754,1245088544,2029390636,743094289,4110416,35756624,-1073015702,-571931787,-28916224,1868478465,-1191166277,-907542512,1577502716,-1962933649,1789003334,1797687407,-389641361,-561250822,743185923,-16496697,273139711,-1243021313,-385649362,1190527125,276039687,-192751206,1872012043,129024011,451640948,200104424,-1200261952,2122514541,41156872]},{"sector":4,"data":[-397361109,-1072957885,1183535220,1868735240,1869481671,1950941183,1654755897,311468844,50331835,-1960031202,1950486615,-628405755,1200222699,-155176176,1963722566,104417301,91499608,-352297240,1645644552,1477871916,1583300652,-899816053,1689976836,1318736751,-1156290047,-1705808014,342491990,-2144410648,1946222206,1244562181,1021853228,-8486659,-2096466944,91569919,-480195942,505857,1458067280,-1158981632,-1202667469,-1706029056,31678210,1478396875,276054828,1869285110,1258910988,743185923,17649536,1048794819,1962880098,66775063,-1959871256,53240350,-1104393186,2145939294,-52565764,-1957313698,108462060,1560282344,1426064074,-396956533,1183515600,1644575492,1344107564,1493155560,1209365568,1278608278,1868479276,-1946400280,-1477966778,777316604,46292318,1052332800,1868479232,959179425,1949065742,64588553,-1960031202,2139298887,259325956,1996489789,-18422,-169289333,855799812,1438866377,-1957237621,-399743946,1996424040,-149821432,-2146977647,1183461347,72780294,-79763375,1979711293,108953632,-15043327,1996425334,28332038,1665702480,-864026141,-2147467904,1688273781,-396996564,1582826355,442973,-2081649835,-1588197652,1183394916,744661502,-386120055,1988821772,-739748344,-385649162,2122317996,192217350,1346417232,-175642542,1345287512,183840232,-2146667292,1946355326,11188230,-1979675927,1996424774,-88152056,1090143881,1346899572,-167570712,19661062]},{"sector":5,"data":[1122700149,1946186984,-1103722162,105286255,-395329374,1064567016,-479535718,761784321,-1543747957,104427462,208940130,744765183,-1711108120,31679794,1949061096,1589654292,-899816053,1520500740,346465068,-352318792,756607008,-1962775576,1967192646,1874507793,2884944,-1264955320,-401315304,129563477,1996443648,43378942,1472523096,1259304003,503577483,1200303180,346727186,-1070916629,743063179,226033419,1345079992,1342188728,1778524570,1958742804,-389575853,-544474344,743185923,-16496697,306694143,-745799681,1075095713,1049167477,300618920,503550792,1200303180,41173010,2139747051,1874507794,-1191170885,-1914175478,-1173960711,-1593834897,-962384798,-1559837073,-469040876,-4668577,4096255,192086572,1875117625,-1499855499,184673101,-1957313600,216826860,1688295254,-129595092,744661399,-386513271,1996423572,-180492276,506006,1586184052,-2143244276,1963002494,-397389047,1081472013,1088947179,1161460,745160323,-1977715201,1183451222,1963015178,138855940,1105745408,-128545799,1089750665,-347593100,17885443,1244558402,695517755,-1041737833,549910019,2139304309,729153302,-1559083125,1441492940,1979710083,-19404792,-1880536972,1183420928,-396912652,2122318171,561315846,1874986742,-1760725984,-1551840128,179836070,12642560,738264822,-2096728831,1962932350,-1103742490,-396790673,1049297120,-4510646,-24123137,-2014772363,1277070080,63671084,-128056369,1364414803]},{"sector":6,"data":[1342188728,-486414438,-105388031,-506229,-395326410,1532501579,-955103351,1095,-1014801517,1312020,1889161299,-1709938173,31681245,14018647,1874986742,-1979288288,-1063122362,108953711,-1962183424,-962333114,-22353809,1183456372,-1054441464,101251183,914976705,-1070370882,1583333387,-899816053,2122514440,292945908,1349499576,1207970821,414489168,988288106,506105,-159973552,-239384,1961425014,-856991744,639705892,118380325,-1184575809,-1359871995,-1958674059,1606421441,-326412861,-402241910,-899809309,-997523454,-2084555971,-13867970,1465265524,915117830,906177636,1153903692,-956301546,-402576572,-561304927,-395330882,-756483940,1962871800,712304643,-1017225465,-872430616,-1275051,82314870,46816512,-326413056,1183516246,1679723268,1958951724,1089506140,906173556,1284189260,1645099276,1124955436,-1863842444,-399250433,787163725,-2115463608,896812799,1278608206,205818668,744625803,326422587,-15303549,1950484853,138737158,1342469152,-386169624,-1162139107,-132454289,-402372981,-202835888,1566443305,-1593834814,104558534,192162914,744765183,-77862832,-34072,-395329994,-1332481290,-235804607,744109823,-193472358,744792331,109561995,512431274,-650439512,503516277,1200041036,346596114,503520747,1468738636,1959869202,-337999100,64653297,-2027140066,-628682169,-401455223,-997460003,452811,-1961120536,243321796,-402493590,645985270,-151163030]},{"sector":7,"data":[19661062,-577100427,-16653462,-13870538,-1205050826,-1706033152,200549701,744109823,-193472358,690677771,-165068312,36468230,-1315306124,-1962810523,-768883772,-729087253,-896837807,-661924981,-1962511040,-350967778,1277035271,308251436,1140850616,-1958013068,1277035459,75465516,-1157401089,98791354,1963743035,1606421472,-1070873767,-997522709,1647771472,-97130452,58016603,1258291643,743185923,-1961861237,611599299,1277035339,222819884,-2081590256,1962935423,-481208053,-93722617,-588578077,743185963,-97785773,744661337,-338916405,-1580649726,512437348,-397333406,-397344920,-480641485,1681818382,125108012,738264822,-1579125503,868953188,-1559329079,-15539436,-13874890,-399746506,-756540766,1235376128,-164181204,18129414,-1162147212,104543855,125054052,53926027,-1020507106,997178043,1949066246,503550725,1200303180,197345284,1342863808,-394271616,1951989730,-1897377788,-1957313792,71732204,-1243085232,-16362497,870843511,-1973745679,2005534295,1566115592,1426064066,1996483723,-2693114,182877,116165461,-402110837,1577320328,72256262,1560743817,-167770430,158630084,-394271616,1200357232,-1070349556,346162934,-2145880831,18129422,-1543503944,1688415330,1510377260,451432492,-876311808,346162934,-15764479,-399746506,645986543,-386001758,1439367169,-1957630837,116786246,1946227874,125321236,-18329528,1209068536,1350558848,-335735064,-979742714,1478608642]},{"sector":8,"data":[-1034043381,-1957363710,108462060,1577044200,1426064074,1706093707,-402235708,-899874771,-1957363708,-1336453396,106873976,1593842920,80371038,-326413056,-1005959542,182978142,113925376,-347295744,1431154690,-326898549,-2007542262,1586100038,-28930820,-1993579871,1688336966,-129595092,-150995009,1946416966,48691,743192067,1175483531,-1930886283,-561295872,743185923,744633913,1589314421,-167661457,1946946887,-2065641470,-730532026,-129505194,16139974,-151250968,1963259718,512464674,-2048381854,-16017411,145766776,503570315,2139302988,41287446,1183113424,1474196727,-151243032,1965094726,-60912889,65786879,201088767,-2145094464,1962997374,-146344429,-390433512,1187445704,1190527478,-814382857,66537206,1743324020,-1765504001,1089947382,1996426356,-137369350,-386369793,194444267,-1956749376,-3973659,-399746506,1348141066,-23074733,-1010824360,-544778410,-1946451992,1410639926,1309701190,743192067,1356332888,1955267956,1491987218,1583333387,-1950053437,991208478,1965840926,2044398356,-1069645810,125043567,738264822,855799041,1166787520,346333956,118365616,-395734085,12844729,-33335466,-147110322,-1772735885,-1157554200,-164925598,743192203,108642315,-1149246336,-268210242,1418399627,283336196,-706489977,1390956882,-1845398033,-914374645,346963595,-774927537,63843302,-1961578434,374230775,-1527513849,744137212,1197367211,-326412861,1443032195,-1338080425,57933844]},{"sector":9,"data":[-1593795095,-768922550,-150983495,-1159671311,1347556526,1342210232,1778450586,1975520020,8513795,744765183,744634111,1487009323,192167980,-1293397944,-385930250,-1186529450,-13959167,-160044975,-479810406,460603393,1476803400,1508996140,1869324369,81988644,-454359948,736682612,64875519,-481732105,734956497,-963948042,1342195688,1190554856,-140837077,1073865574,132646260,66317311,-505259529,915007185,1323832494,-93460234,-787173727,-1956749336,-1194631707,-1706027858,342491470,-326412853,-402241909,-899874812,-4587518,1004589439,1930735110,-1340175608,-1948777708,1438880279,1996483723,321542,182877,1475119957,-1962654069,-1189826498,508690431,1487925767,1598603563,180829,744109823,1090510312,1358936040,1492759528,75087883,-54532016,1076651169,-1070923573,-1558922590,-1263004492,95965204,-2135404544,10113024,185887233,1946661056,-1239512311,509460,-1072971733,1077838019,1098121238,347750016,1010464000,-167283455,19661062,-1957220491,51689022,-2095795138,119408111,744792490,-1196715093,-1202711372,-1706033147,342491681,347479691,347348483,16467910,-1010824353,-2081649835,1465255660,347750016,-385649664,1187447044,-973052674,-15418874,347485835,-344656373,1958742700,1963211859,1183427912,1156075772,-28901383,-385988981,1886710033,-151370103,-311098174,-1958723411,627828984,1073821928,1950600820,-1958000437,-1008141746,-1066123264,-11963320,216595574]},{"sector":10,"data":[1996445689,626059514,-340939459,9562539,-2080854040,-293403450,-1237959926,-1393659372,-1834118760,-1237963859,729041172,-342424606,1358750313,1343636920,1342179000,1778590106,1488980756,109980532,-617408953,67618598,1200170496,1344793348,-122558382,45830232,1077957376,86305000,-31195131,1944604752,-1908313058,857097990,130492123,1105723392,-386430984,745807528,347801286,64916225,-401193698,-142139726,906173044,1978209462,347388159,21928528,-1070918550,1583333387,-1017256565,-185923664,-1237963945,-1957603820,-1760250314,-1382967124,1256435090,-193604805,-952432926,49016438,96004834,347388672,726921259,1347814007,1778545562,-1072997612,-24437388,347487747,61867806,-1414818902,347487787,1928805214,96895747,1589939030,347485699,1950597983,-4695103,1475406847,-140580713,736888462,737287819,1259107395,41892134,-1960439692,-1695421665,31680247,1222735168,1263208171,-1825807199,-1957313697,106335212,125888658,2287696,9190746,1983771252,1038971904,-395050920,1946174781,1036594147,24444964,-899837623,-823656446,4096035,108331052,97294928,-461364793,-1957313789,1810388716,108461868,-478768230,-2137370623,-1962810515,1975520242,2092455483,-873967613,66748421,113644407,-956272650,-9441274,11385087,-344985949,45635108,-169324544,1444443169,1342186680,-1960609304,-398244898,132848994,1447446102,857001704,-899850560,-397017086,-164942838,48019542]},{"sector":11,"data":[92072016,1946286720,-1923705333,-397409724,-387246933,-1017199477,-395433797,-1580467669,1950362730,1441286163,2375167,1966933364,-2096794368,36465158,872429003,-1509940480,453002240,-1761549568,520101376,486547456,570433792,39168,33554688,67109632,100664576,150996736,1721849600,233328684,1852555263,234887353,1974465031,367624976,1096288630,65130817,870509505,-1072997952,922733407,-491246490,-471314430,-2134889724,24331258,113691464,-1023339328,-2134889642,1359934,116797300,1948259927,743023144,374810240,-1063103521,347906836,-1558920520,784012478,-109975441,-1136753829,91488276,374804096,-754667232,-1027374621,-1376549100,-1387221680,-2024253038,-883014690,-164931754,348012171,47364182,74770512,-2137636800,611582970,1946221184,-1140391957,1342643732,-1423156575,-963925160,-92256341,-1341885182,-2091931118,-857011769,348012169,1438867039,1586228363,-2134889722,126362687,1200162932,55019777,1347423979,1129366667,-1669293485,1482167402,182877,348307287,-2130196605,1930777343,1905940235,-2097028241,-269807417,922733407,-1701172151,721544047,1860082395,446300643,1477178421,-1020507742,1458342741,-479225190,710731777,-970266392,24142342,1940844008,1644623379,-327875984,1885472502,-1205046268,770441215,1887710851,2116977410,2075656816,108953600,-1207732991,-689438596,-365524022,-397521365,129505980,-1593412608,-461344628,1877910403,1878001351,243335167]},{"sector":12,"data":[1579161175,182877,1408011093,1392926347,-479273318,-1092071423,703129847,1860082267,1381040611,1527944936,182877,-1946801322,1860082398,909836771,577967292,-268027066,1005352303,2003825166,-233423898,-958368145,-291373305,21465455,1878001351,-1017184257,738264822,-165382911,544195078,116789364,1964011458,10401814,1875515019,-1648884245,-942527744,7336966,-161092864,24079366,113710708,11366,-399744351,129503148,-1203538944,1055588557,1869227648,357736687,738199098,3940723,28839796,848973824,187080493,-351243072,929405469,-1073011041,645928053,-1191373225,104464383,58010730,199929576,378258368,113716326,-36876,-2089816413,376766458,-494871925,1977236478,1405102861,64022608,-1019520166,378140022,1520529394,1878041388,-1574155872,199782390,-339727361,-301545538,-167772049,70014470,113668725,-1711264695,200541937,1753202699,2080535616,-1668572576,-1073020445,-756529291,-16795644,-1341481752,-1678460091,1962339560,-1547685068,-1706027350,200553115,357697222,1888664321,1962332904,-1442396388,-33554410,-1156230642,-1058508654,-401967882,-617927335,-479273318,173598721,1877884547,-2147126016,70014478,7780555,-344985949,-326412824,1443032195,-1993579359,-1070858682,-1552915806,-1555533842,1235382368,-1395333076,-51838093,-2143879424,60078192,25618512,456954518,205271668,213386871,17688832,1885474432,1997552648,-351994108,1997683729,-2143933683]},{"sector":13,"data":[1545181808,906166755,-1202294656,-397409388,-924122796,743835382,-401968126,91564048,-335544392,1445363908,116848428,1948282978,1443790853,-1070921684,1210871459,-13874782,-395280842,129506840,-1197575168,860892270,922702016,2124509312,1856196720,74750508,116790378,1946710114,-17876,959210145,1965845014,744005908,-1195230318,-1552678711,-179050414,743843456,1901566715,1048576483,1946299392,1225180720,28901164,848973824,187080493,1007645888,-401443567,58009472,-369136151,1704656644,187080503,-952470080,2909702,1877909760,1575324510,-28931125,738264822,-1593609215,-1310184348,1888395543,-160435037,74473990,116835957,1963094114,1888264642,-343677824,-200882420,-956301201,7336454,1877910272,1878394566,-961090815,2902278,757852833,116785156,1948259927,1354771210,1342362296,-1023388184,566736982,118937742,1459630521,-372129749,24357875,-2136121430,-796164124,-774337619,-773074453,-1324931861,-523071231,1241581606,521595509,45138782,61882091,-1957348629,-16469780,1996425334,2942982,313949,619382192,1048577200,1946168320,1228832795,343212076,283885610,738213504,-2132708352,2902334,28367477,-2081649835,1465254636,-1946204536,-24443786,276100619,991254207,1947554870,1412860167,-10164203,1344391096,50284278,1223165301,119473701,184972939,-1389660673,83838710,647169396,-2130819189,-796195868,-1976640885,620771463,255590415,1085080693]},{"sector":14,"data":[-268173788,1475026710,1190552811,-126548737,33507062,-2136140172,-796195868,-1976640885,620771463,255590415,-268222860,65306797,-661925749,-338564143,119860177,28362890,-2076778286,1322611713,-1960896946,1195836542,-1828716615,-772296718,-1374779319,-1764652431,-443851169,311901,-31178579,1190575339,460587519,-1960406099,-461308345,-1949267197,-2020987174,254083128,1947155456,-1376779483,-1960388469,-461308345,-1949267197,-773074472,619434475,-1329034745,920703489,-814481020,1085117931,-705954268,-1275051,1996425334,-21174266,313949,-1275051,1996425334,-20912122,313949,47184,-21698480,-202861629,-1957311489,1183536876,-1202696184,-397409246,-2141454714,343345402,12080022,2011713536,1975925758,105265927,-1069817998,41276555,1566495275,855639242,361210816,-826781615,1474842627,-796173826,-350910045,-1960406226,1407974983,-2081649835,1465255148,1225180678,113639468,-1744890251,-1961522783,1928870864,-2029110330,734032405,1192593166,-951196857,4062790,1810387282,-944204033,-1461170143,119473699,1325357657,-1992264450,917371990,738213504,-2136574976,-661978140,1979713853,-2020987332,254083128,1947155456,-336592104,-1831607587,1217790955,-61437112,1594302230,1575324510,608218563,920841214,361305737,-1996473160,20381254,-350910714,409006,138218866,1975153152,-1950338099,1003350992,-1950124041,776620758,3704714,50335525,1048590064,1962940020,113653416]},{"sector":15,"data":[-2080434571,-1653472517,1996749699,113653486,-385870219,909901673,124917129,-200288614,-402396405,116785175,1963749227,1228832783,141885484,-197846374,-127211509,-18237,-1558870109,-694545015,-1022626801,-1175680171,1183580159,-18814970,738197432,46816705,-326413056,-1593422197,-873976854,46816766,-326413056,-1946157127,-1142421946,-899837186,-1957363710,108462060,-478764134,-1202696191,-397409312,962264318,-243857850,46816658,-326413056,-1207535873,-397409304,-899810074,-1957363710,108462060,1342426808,1576845800,1426064074,1996483723,1990433284,1347420643,1342439096,-2130919960,58130938,1526594024,1996768825,-1034054935,-1957363710,1228341228,1225180716,1996423212,67811334,-57350064,1996552832,-36640765,1226213466,46816556,110006784,-4707348,-232879105,1943681835,650349319,-169140341,112835,1438657341,1586228363,1949761286,1946600982,1397751830,-478773606,-1023190271,1989384784,-2007367197,1561752598,1426064074,110029963,-4707348,1678129663,-2146995156,57655358,1048585077,1929522176,-1843492068,106838895,-4713609,2139301631,74794492,38243110,-350254298,46816744,-326413056,1681325910,-316479444,736888462,737556107,-2096871797,192217086,38025510,-1960442508,-386864332,-963908273,-167152570,19661062,-1070398859,46292318,-1957363712,183272428,-946383018,63046,469255879,441856,-13469618,1996424822,333993476,-62486237,201217673,1474917570]},{"sector":16,"data":[1342180024,1947714536,736802838,1183668048,179851510,1956270080,-350983676,197430219,-1956749376,79846885,-1755884032,729084474,167780798,-1107069742,-1202257886,-397410294,-1073014904,109975412,12069868,-474436864,-1070880000,-1413051477,-1951678421,190734276,-1957313600,82609132,-1070901418,-2011817566,-1991705274,-1202258362,-397409220,-92210430,-385650164,-2137653095,57804282,-1996589431,-1202258858,-397409220,-1952974086,-63379258,91539259,-112953,-62485761,561185596,-396994736,-967305360,-1962803898,1963015422,419874309,37486870,113645429,-352315879,1929722896,106204428,91683387,-112953,-1371635457,695338353,-98685,2122325108,376701181,309527868,1907242751,1476294399,-1962296600,-1571225986,1187410350,2122907901,-1374254338,-2131260559,57871354,1610576105,1575324510,-326412861,1443556483,744792407,-1946270071,858516022,371506112,-2145296920,1458238,-1070395020,378204298,378017303,-722987496,-1205504770,-1202711004,860909667,-26285888,-554232204,736769539,870222678,299165942,1077837918,57999382,-402586391,1049357120,2122913306,-92370436,100091590,16139974,71088215,-101128112,1947007616,-368145582,504245035,1925266198,-1861504509,-1997048182,-1756170410,-386382199,995818266,1976011719,134119448,-92269709,-2145750523,359794174,16154240,1183517300,-163133704,-96040704,-335774071,-163133948,-142704639,-6196725,-459605386,-1996364938,1996487238]},{"sector":17,"data":[1994693372,1183384035,75402236,796194859,-385976577,-396891401,242488900,-1399832,-1070334858,-397125808,1467224250,-385976577,-102176037,64981776,286058718,-385997848,581036672,-96060650,547423861,-96040682,-1543879029,922687002,1347425813,-386107649,904398939,370843933,-401201989,113713198,5653,-385976577,-358487405,273707,-954852189,7372294,1606421248,1575324510,1442841282,370489087,736769791,-1591936024,363009562,45126422,-1661952280,-1645603864,915097204,616049642,1673023510,446779504,-49354730,446771828,406227478,387353110,-44701674,-554229132,736769539,957749921,1947607558,371237635,-570190954,274262099,370975576,-115989853,1438867189,1465314443,17774219,125171211,-1962786072,-1962864842,2123042908,-1949160698,-902101938,1547375478,-1978633204,1011028800,-2011007454,-347977979,1381952489,-1710203767,342534771,1511021707,1317751523,-153031932,-350909418,1022915806,1977120538,1959922436,1947024435,1946827965,1963539504,-1942060858,-1082851307,1869287040,-1718463872,524029579,-903089673,-2011123622,960644869,158729302,-1947470366,24498699,274499914,1566465938,1442841794,-1945713065,-208994283,-1923679861,-1706012347,342491737,129548299,-1959365632,-956104124,71600976,1346946859,1040135400,108396543,74841867,-134013973,1208239243,-898316485,-972923765,-678756351,1933326663,725387522,-1017225280,1342264504,-198013286,1465303819,-13897589]}],[{"sector":1,"data":[373360382,373374592,-1556843263,581113365,371237654,722868899,370647744,1209372066,-166323037,19661062,-1918762123,1795618325,108333167,-385941064,-963903559,-1155638552,-919900072,1090475240,1967674996,533198675,1460040960,-198009958,922699531,116796394,1946709867,-1808335086,1884993647,-2089838000,119868404,1443556096,1354771286,-477831526,121395457,-358540684,62991147,473859056,-1418395882,370947723,370935495,-1611923457,373362430,-397398667,-358482106,273707,371328571,1212680308,371328571,922684533,-397404640,915080695,922687008,-397011435,1599609544,-396901538,477430718,2084256771,-16222718,1031819020,-940346066,1095565637,1258505671,67404544,-1017135093,-1199108120,-1192723103,-728083834,1511287457,726685264,373203904,-1705881528,342536492,373294846,373163663,167782120,2030088384,-391401470,-1073051909,1041140675,722592534,373203904,373296894,-1706016687,342531603,1043791811,1524931094,-389868438,243331228,-400550313,1077999021,736797008,-397391800,-1326971569,-154891490,141519366,645933684,-2131267734,-1099994330,1869350646,-2146798588,-76583898,1869287040,1795618305,141893743,-1984213840,-358094723,1438893195,1465314443,-1090409026,1996451928,108461832,1778535834,1958742804,970951457,125044854,2117721739,1393390856,-1710852353,342491725,108314635,-899850657,1983447044,956658696,-260765570,490413195,495650418,-454353783,-521462391,1436719081]},{"sector":2,"data":[-326898549,-11053564,-13874890,-401195466,1907918332,-2052724609,83932321,-533003938,1520556662,-28931796,-1993578847,-1070859194,-1575600477,-2142753719,1458238,-1499258507,503760660,-167772138,19661062,1183519092,-246522,103483763,-654890006,-1961484637,118884446,370425472,-1341885440,-1088492727,280892814,35710998,1048580981,1946161924,1067079439,185332806,1966452928,11528451,-480503398,105286401,1929378877,1514969673,1273496035,-62470147,1187446786,1459617790,-480761190,1975520001,-351817724,146362576,105286416,1979710781,80576515,1979710525,147685379,1594006097,-1073020445,243314549,-402559124,922688190,362418832,-1895042003,-2146267130,1458238,568853877,-1170180628,-135790591,-2143783427,-26252250,1789555610,1343742740,1789453978,-63154156,-1231417483,1963717648,-348737528,-342781930,105286418,1929378877,1796112391,-1070391185,-939738136,-9441274,1966423295,71204900,494206995,373309056,-2146011904,1472062,116854645,529154,645924725,738094956,-1763431744,-2130853144,1458238,401098613,-1107069716,-353894393,1962281728,1460568109,753402902,1722850017,1950351843,1778841125,-244053905,997191841,1949065734,-267991290,-1694498961,31677965,1202772971,-394418757,-806819699,-28931327,1208316992,-401872816,1076648609,1486948981,311468844,-402921392,-1543747957,1223175270,1040617348,1044284182,57933846,-1191355672,-1588592211,-1706004392,31686105]},{"sector":3,"data":[743023192,-200231270,-164662261,141519622,246950005,-1706012664,31654482,-672208816,-1193604205,175374343,402700371,1594006096,-1073020445,-167050124,194381172,-1560054592,1583312878,-899816053,1347420164,1491568872,1874730635,75022347,1868701323,1887831751,-2034630656,-1705815440,31676684,-1581006837,1950356646,-397391838,-1101463600,393478151,-859914229,1309702144,-948965213,-9440762,-200882177,-1023410065,-1199344664,484999398,41418627,-1202243585,-1706026971,342518198,-1070398327,847476456,-1010824476,375326454,-166365920,544195078,116799605,1963464287,-1039731193,712312943,-1558816351,1570861000,1875550998,135684000,-160447994,19661062,1537282164,1875288854,1874869888,-1560054525,1455648712,4096087,729023276,376192651,292880139,376323723,744635947,116787060,1963464287,417130598,-1202667477,-397409192,-259263922,1946679936,263506,1963195008,-398442494,104534025,896865896,376192649,375326454,-1993902840,-1592366554,1503865946,744661270,-1995023453,-2146017994,57781822,116789111,1963224939,1594279432,-342423530,1488475660,199774212,-1951929358,-1017225276,744109823,-402651928,-138156483,68572934,-1023314687,1654740822,376349484,-385876034,-24386800,-2115450997,58015972,1207998953,-661917557,743185923,1207421235,1946189831,124223751,-772276353,376180361,2139292080,74776336,-1070347037,-396996527,1482285855,-768406045,374802166,184972548,-1303743296]},{"sector":4,"data":[1595312136,1779861782,1679198998,1746307372,901468438,-397430655,1048831537,1946162796,1513553688,1849098028,-557848554,-451221418,-398413677,-1628908197,182671845,376061571,-402230272,1726611062,17233663,-160169684,-479874662,-10688255,646012511,-17099177,1513553859,-1528278996,1460568290,113706006,-36918,1874994816,-446961513,273976259,1245148226,-2146548597,1963132540,205818627,375391803,1654727797,1926249238,1678115613,1992440598,734432011,-399750138,183238579,722888353,18244614,-1005907900,-326412861,1443556483,108956503,1008091808,-385649405,1048576446,1963142144,25225475,175439932,373491398,1141294593,1317732630,-1982911740,1776547406,1869285110,-2096663284,70974,116787061,1946447723,388163589,-1202238348,-397409174,1178333290,-1774030076,1979841152,49971255,-397271178,1951930124,1077837869,125108246,58000188,1444293352,1342466744,-336571928,1536841425,989979511,141952070,721700489,-163149369,1072292331,1295941633,611581974,373767811,-971147777,1461510,374226569,1354773335,1358329599,1963419112,380823559,15455348,16154243,-1506443,-1531422976,-404205564,71711727,-1835644301,628557628,209126204,-402373491,-1332539999,-740431868,1014083232,-11898366,1009515022,-12422650,-349438962,2114993212,71601437,-401769240,2139349812,695533830,-2147004543,1477345280,501940502,154949867,108269175,373491454,117313515,166401604,125242172]},{"sector":5,"data":[-197841254,1009838859,-2146994931,-277888474,255600107,238814324,-857208715,356903118,272373227,243271541,-351791529,-1949922550,72256479,1444538600,1342481592,-370190872,1317797719,1379828726,74711062,374476329,373309056,1459975424,310569041,1443133067,197322839,116848427,1967134295,-1070901469,-397388208,1520506321,375431980,375537289,375666313,375785159,-1346699264,-459544446,-1072970613,-443851169,311901,373440128,-972721152,51790342,-420757461,-2081649835,1465258220,722105995,1877910464,-1989112669,1183382086,-28931600,-1993579359,1048638534,1946228290,1462140933,1048639254,1963136578,41806083,373309056,-385649664,116785306,1947234155,108954386,-1207143168,-397410104,58002268,-1610441495,170142806,208996924,1869285110,-402295544,1333007636,1048632971,1963005506,374382856,1208120384,-1986374765,1073865591,1048581236,1963005506,351725576,1776879733,-397391870,116842435,1963487083,1111392268,91553814,374146758,1996445185,-44439544,374146758,-955747072,7797318,-402526487,2122578970,-193658874,373440128,-1962118143,353495238,1869285110,-402230264,-1310090803,1614186752,744792432,-1577826679,1183394906,1875026166,-957266296,7365126,1939402216,-196703451,-167455768,74473990,116788341,1950380173,342550536,-571931787,1644623361,-747306384,-1276627477,-2143879173,81049712,-310712240,1947531904,-164980960,-947133743,1887452715,-13706613,59414695]},{"sector":6,"data":[1466990654,1342493880,-336765976,-1588532261,-190615410,1888264559,-461320053,549910147,535500661,1878263495,1586233343,1679703028,1342600236,-556406701,1346273368,57933832,-1543879031,1183543278,71493876,1885472502,-402426864,31986510,-261717862,-2145850372,1458238,116789621,1963011073,25290762,-1334246028,-1577101335,121401484,780346740,-1593675650,1183412350,68872444,1190532468,376701680,736769579,-386369793,108393095,-371318808,906166525,-561304598,-386114045,-277609322,373440128,-166235136,1963126854,-62485753,374474241,374355515,914949235,1190532688,259260912,373309056,-402099200,57930673,-167723799,135681798,-1705632396,31684222,1841601104,645923299,-2131290537,18235966,109249909,-2097015214,1946222206,-297893113,41156719,-1967634453,117329944,-963963274,1358710275,370411262,-478269030,336526849,1980694038,1958742806,-1962467782,-948928450,108035590,702464,178347,-2081909077,1307088621,-2082567421,-404224317,-297893117,259260527,1878394566,744136960,-1989152605,-2140147146,1458750,1048776821,1962874439,373667849,56007248,116790378,1946233857,-584390653,1610237579,1575324510,-1207957814,-291307513,-96040593,1991816171,-96040704,-2140148061,1458750,243996020,182654546,1343639713,-397360893,113703663,-2096949694,-15317186,1168233076,146710,1183435378,1312197628,54716438,-1645628044,116807678,1948282818,-902416119,-385649809]},{"sector":7,"data":[727056518,-2143384586,1887478128,1887307267,-130332600,-1202241933,-397408982,-92214456,-2145749501,359927546,1963719296,2046167812,217743389,-830405518,-830242816,-125085951,-397361109,-952374496,-167002252,-1201751176,1458241693,1969157643,-365001937,678691883,1887438379,115317399,1040387060,-1072992128,913637300,-2030004296,-1070903291,-398442416,602452533,-1306466126,1874986742,-2095483888,74481214,-1070919050,88782928,-354359216,74696251,1023452344,-1072971733,-397360289,1968705916,-17372925,376848000,-2146733563,18241294,-385858632,1465318746,1887452675,1459931011,-4651234,-232279809,1238497198,8518017,1085801842,-1982010624,-1967194522,-15955688,-1705966988,31654375,-18260385,1077838076,242548758,-754045,1190536308,-361488143,2122521835,376766452,744765183,-386631937,1793645543,-385649679,-392757643,922737627,922709950,-761630784,184673121,-1990101568,-164366218,49303168,373309056,-5540608,-1708369354,200550079,738068167,-2136932351,1253593200,-169324539,16417001,112797812,-1323636736,780382580,-2096992130,40928302,787005483,-390059087,1371058473,-1323046912,-402650952,1441509661,-167732296,19661062,-1464315531,1795618304,1198851183,376848000,-163547904,275759622,1323841141,1961901033,1355164436,1527730920,-29324506,1963196197,1967868703,1077838067,225706006,361578112,-1207536640,1458110620,-263290628,-66328319,-385833800,116849706,1946233857]},{"sector":8,"data":[10205424,1048637931,1962939924,1077837831,-579534826,738264822,-338266879,17233415,376766764,-352281416,386320078,183173398,370607814,-402396416,1048579883,1929522176,267577520,1659437940,-43849221,373493502,251528427,125048388,198316520,-393055040,-445378612,-1973253141,-1998550437,-1993111245,-1974498866,-1976006065,-1972794836,-1972598167,-1971025282,-1972598164,-1972794775,104565356,192162916,738264822,1342469121,-388337944,-337078896,-11090954,-395280842,343147804,1345055416,-2143879338,2117533552,74750576,-997518230,1355005963,-35106730,326392068,1354773335,1345055416,-1952820906,-1961596412,-1010824252,1475119957,-1207533941,-1957685691,138806215,1346371957,1778590106,1958742804,736802854,175570768,1393968571,1460172543,1778682778,75399956,-1962249216,55577158,-1729605433,197430263,-1034068032,-1084817400,93001285,1962905832,373667851,56007248,-997518230,-1017135093,-2081649835,-1990785812,-358482338,273707,578017339,-1557374303,914953824,-1070918046,722887843,1713277406,1347638806,248506448,-394088517,116841901,1963988567,12080719,-202878971,2117834727,-2144570370,74908154,737937151,1996880512,-100204796,82477099,-165016718,-628366639,262668078,12081036,-672641019,-2133922841,1458238,1048579701,1946228290,1996445191,197585150,-1072970613,1575324511,764161475,764161420,1032600972,1032600972,1032600972,-1886613620,-2138271860,-1920171124,1323828293]},{"sector":9,"data":[79187973,1407733760,-1925125173,1055392837,1520521221,-62486228,-1592370781,1537420386,1564379414,1795618326,225772655,-1301172576,1913273376,1946726918,-1999492606,-401187050,2011748555,-59310092,-371487512,28376935,-1962627011,-554571553,2045374837,-1039236865,-404025233,1520523094,374973228,-1557372255,-1070918053,72923216,-419108784,-1776919133,1963457152,13035779,-2147191667,91554810,-1544993210,-389641472,-2137586507,18240574,-1997995147,1086753536,77850688,-796164316,-1365194453,1996700785,1975519823,616991258,-164980733,-1336782761,1218072577,184673123,-1339329088,1009511176,170226947,-1962117678,230025414,1382455895,1469186531,1342178232,-1598018734,-1706027436,31679304,1182121995,1049305264,384511076,112727,-18352,-734271408,-125095816,-672012208,1604501546,-208082922,374945535,-337990424,434657030,1459129306,69265495,375207679,1342462136,-370781720,-461308106,374711167,113699563,-1962791936,-1017225276,-954837854,1463558,-1936278784,-1579491608,-1073015211,1107740355,645923094,-956885417,18236166,373556934,-1547687167,-1555556782,1302468176,1465305878,915128363,1950750288,-24424889,374488579,373440128,1443460353,166651991,744099467,116834347,1963487083,1111392295,544473878,744099387,113646197,-1962797502,736070598,1361832510,1494064104,1040385650,-789894166,373767811,1342928127,1343636920,1778603674,113661972,1023415874,125042695,1946187325]},{"sector":10,"data":[1606429442,-1957311650,49054700,113661782,-16771507,-13870538,-1159199114,736797145,-1996487635,1049361990,-1427624966,138841049,1343639715,-385976577,1182007696,-1543616885,1040258642,922692602,-400675750,-16381233,-2098723210,180742361,872304267,142511094,-788062458,530969577,-1948685080,-561313674,-2130813437,269899534,-2130915864,-283748570,1583334539,-899816053,-1957363708,49054700,1445363799,-1528235220,736803047,833616,31038032,-357039645,79188011,563761152,185887235,-352160320,443957,-1070923476,-1557398877,27405308,744792364,-2146273984,19661070,1869285110,-32476148,-349437946,1871749130,57803324,-399769438,-1073020921,1575324511,-357017661,79188011,-23441408,185887235,-1911262016,858516486,637183,571563,-368654421,184550443,-389849152,1810366468,1048824818,1979984874,1980167716,141820460,1875510983,367788031,-476426598,47105,736797008,-397391800,-1528237201,-773274625,17233663,91554092,374804096,736802820,56007248,-1019210646,719769320,-1949750336,1126982686,55255668,-1960031202,-377285041,-1206522881,-1706021910,342492342,-919928400,738264822,1224832257,118904662,-479233345,1049310733,53881956,-2094248898,-356641593,1975519787,-1174960382,1465253900,1889183219,1595173379,-1957313698,-1957210388,1105725046,74907622,1946190824,155052081,-1157343605,1048587374,1962945609,736803587,-100401525,385945483,-117191125,-251441329]},{"sector":11,"data":[-372158898,-48298466,536651251,-1072970613,-1034068385,-1957363708,142016492,-402229505,-899809368,-1957363708,-1957210388,-437779338,149547237,1988886155,735480582,745454551,742997632,-1157401344,260778986,-836036823,102689233,530969375,-1034068385,-1957363708,49054700,16664263,736802816,742997632,-1207536640,1720265838,1996443902,67017220,-1073015702,2122525813,611647742,53209761,477299782,-167770951,19661062,1805651572,212353391,-1472133516,1090614532,566234760,-443826133,180829,-1275051,-1645738378,46816767,-326413056,645945174,863989698,280516607,-236433408,-1905363714,724298758,1991814080,-1069645824,57934191,-1426040648,-1426061640,-1423154015,646627371,-58691648,-1979026174,-1073084858,-2146630796,-1070880000,1371057067,243313408,-16683157,-399743946,1860752288,-739907575,616284211,158132246,1343628472,1349542840,-1779908557,-1946799130,-2094274018,-1571605,1566466041,-1912601910,-1825838074,-1022915802,-1897100459,-1960055802,1183516254,126428676,311901,-13936810,-166522205,141519622,922684276,177893268,-351538050,-511186941,319988118,1718863419,1869285110,-13929464,1349489718,1884829439,1884960511,-192933478,302448395,369542675,512426003,1065381978,-31951584,1125324294,-1202653973,-1706004392,712115818,-385649344,-2142764774,1253438,116830069,1954574187,370051592,1976109587,1511951121,1207470960,3336263,1603769323,-1856978082,-796138454]},{"sector":12,"data":[524029579,512487926,-637308838,-735391702,-545203158,-315977472,162531299,-502822837,-1037346565,1394526187,-1401120176,-1205988246,-1202710928,-1706033150,342535292,-368654397,-402653141,602471692,2114373629,-1023410064,-125085866,744765183,616286091,138209302,1349549752,38640215,-1073015702,-357028236,-1070378965,-2143879344,1268406128,-2146145788,1075205902,-388875288,-35062531,-1202162437,-1202687901,860886564,-449386304,1860716916,1465292512,1962746856,736802878,922703440,-1705545600,342492276,870688744,674663104,420907539,-446568426,-1070391948,-385966616,645988203,-390130089,-1070869965,1887307463,-1073086464,1489198687,-253032528,1251608496,1428276992,-327029621,372834560,611593314,922703763,-91542438,-16742771,-1705815984,31676110,-756525232,-396863027,-392707609,1603785909,-443826165,645972829,-2131547135,40878142,1923157621,-972670186,-2147125905,137101582,1455670411,-1202260429,-397408944,-92217278,-1776323580,736888462,71600934,-153901080,1948256327,168341729,-1342016046,726075396,-997468949,110019422,-1390007316,-595773,1437020393,-326898549,-162048510,544195078,116788852,1946692609,17233415,57934892,-1593798167,-259297334,-1207506200,48758784,4503719,-1381565208,-385891608,-1243021377,-461352705,50102275,-1073080459,922686328,-1209503810,1721389252,201450322,-427140480,-1497307056,-1946185752,-1496848136,1148473159,1358922728,-476218470,-28931839]},{"sector":13,"data":[376575627,1962863848,-1498683343,1358916584,1965081846,46956547,-391734040,-161743012,141894343,-1694599425,31674982,1979713085,-390059262,-1175738751,1583334539,-1017256565,-796989354,-1557372255,116790898,1963224939,-1152798654,-219638948,-1152601901,-353856647,-1547686957,48787582,-1152798581,-622292039,857896147,-164697866,-164422796,1887313547,208984843,1869287040,295326465,1527510061,-1946765848,1589644228,-1153060669,-1427598222,506067,-1070923148,597317323,184673130,506048,166216308,-1564464176,-1410854104,1795618556,141887599,1979712061,-44111869,-1710898968,31681330,477413387,116834355,1948282818,-902365431,1990433391,-259325469,1979538920,-957639165,-947141794,1868701323,-1950145304,-958921761,1448542215,-197378918,1385846539,-1962810622,-49616673,744661443,743966267,41206923,1438892075,-327029621,1465254152,992762017,1965842950,-1914795147,-1912670026,-1979777858,-1981283716,-1335527961,-1789936827,1959982312,1452955400,-351538106,178769,1978111464,2125892939,-1957275649,1409218718,-1711275834,31654375,1006803542,-963441676,-402587833,820576112,1722587851,1950351843,104548371,-244044712,1869285110,-387287796,-437518508,743978751,-389333784,-1070864509,1583333387,-1017256565,-2115204267,1442875116,-385941320,-577051095,-16653462,-399746506,113667640,-1207948215,-588736958,62974061,-1191290392,611581959,-8735091,-8485235,-1962785655,-395353570,76137001]},{"sector":14,"data":[1979656424,178699,1978069480,-23468029,-157883350,1075205894,552076148,1843521788,-392796488,216558999,1842735335,2147469047,-1070384012,2147469047,-267713931,1148843531,-1768048553,-2123532568,-1962899220,113738748,-1946255991,1646169031,-1043601297,-1996165245,-426092795,-2129368404,1593870532,645928683,-2135003285,-26252250,1869285110,-2147126268,18241294,374810240,1839327423,-388937496,-2137594530,-1956741148,13327845,-2081649835,-1772748052,736888462,-1929492852,-1961063462,-2084502585,477429755,259186491,259184699,-1993948530,204023324,-1946270066,650284275,-538239093,-1993948530,-443851236,-1957313699,-1957210388,1317734014,-1764835836,-13896008,737458390,-122104065,-1193869525,-687920142,738264822,-1207602175,-687902830,-1034068385,-1957363708,-1957210388,2123041398,-952792824,66117,736888462,-628309876,1317739659,106838788,-75296654,-1910803201,651756482,-1064428407,495519723,148935,-1930196224,478881474,1583340523,574045,1458342741,-335114665,-1950315477,478873206,162947,1153894260,503316482,394995207,637828747,-1064419447,-1995077338,1566465852,1342178498,-396929453,-1329332356,28327168,-2081649835,1465259756,-1947515256,2123040374,-1191302396,1586310130,-2627332,-1926498120,-823592866,737589503,-386638195,-189202491,-262238933,-151012120,19661062,-1833432716,-329347729,-1962955544,-1073026234,-1202303628,-397408932,-259269746,1929659963,1907269694,225903420]},{"sector":15,"data":[1358710413,1342325901,-335588888,1979989024,704982044,-1813982748,1336409902,1989702040,-2137489256,-1919382120,1771605400,1555584664,1609060357,1606151131,1575324510,-1929378622,451672134,1357923981,1342325901,1183651307,1150111988,65556482,-1915556865,-1924076474,-397409212,-974389514,-2081649835,861340908,-28931648,-402504563,-1705969451,31669860,1383645195,1325155977,-1946252466,-599201593,2025346966,-68661243,-1194968102,1567948967,1996814976,38047204,-123475886,-772394406,786074594,-1729452033,-1727031030,-1724409574,-1581737740,-60912896,1868963331,425859,-1381160076,636207147,-335657335,-1705619284,31669994,360235019,859782331,-28407863,-11460125,-11469706,1958742995,2145681630,1575324511,1150130123,-129767420,649828176,-1193743553,-437583705,736888462,-1152148285,1048587242,1946168393,745454339,1526876046,113689501,-2147472311,-80980442,738213504,-2145422590,2883646,-845543307,-400122056,1048632529,1963071095,2000092937,758290966,-997513569,1460074179,309658134,2007105968,-1144410090,-756508316,1460568270,113639958,-1023398839,1076651169,1346899316,-2134000664,58000378,-1328862232,-1713980603,-1009865496,-872422936,1869285110,-163023604,275737094,116801141,1946233857,-888739837,-960473880,35026694,1690028208,-830478183,744109823,-479790182,242499585,1874869888,-1695451901,31679921,949676779,-1342053528,-1111496578,-2135403288,275737102,742983366,-1010529536]},{"sector":16,"data":[-872439320,376899270,17233409,141820204,1689995440,-835458919,-1006692376,1869285110,-2147126256,1097820942,-672661269,-1097151489,185332742,-169294912,-402295553,-997458074,-389824501,1439432688,-396956533,104529975,729099372,1076652705,-1958206092,-801437098,460786036,990270979,-1962576176,116066886,721962499,2122516038,57999364,-131306845,146955614,744661248,738264822,-1593608959,-1581044646,859646954,1885584320,-2081649835,1465255148,-1979824503,-74711970,448333598,-217862144,-335114582,-199324885,-28931285,1006403211,-1960152104,-1817368845,-2146137562,280571874,637646336,-352172917,-777181694,-2013105184,-136165611,-33551687,-336694066,-1956749364,-389849627,1439432605,1183575179,-6952954,182877,1458342741,142510935,-1190758773,-617938918,984404523,973632517,58000454,1193331584,-757996591,-1014240030,57989643,1594115594,113401182,-1550168064,1342301046,1884862544,107649616,1950362226,547375129,376873491,320091903,-1705983957,31687902,376833734,129549056,1877910272,-1957234709,-1842612170,736888462,-214187989,-231011981,-1960441997,-336467148,-345294,-2094610805,41231416,-1960424629,-1998584,1259397891,143337035,67101057,1946352003,55266050,-7608125,1877884547,-117345280,-1604926626,-259297430,1869227648,80148475,-402426880,350749296,-1710197760,31680247,1223324992,1869219574,1591244036,1049319363,1044065370,91499610,988333963,737714635]},{"sector":17,"data":[1208710208,-385876037,-428605592,1598079003,-326412861,-1576647030,552081012,46816730,47104,1320524368,645925876,733966187,-1296543552,1541951493,33194199,-397405068,1536884475,-2097028233,124775998,-1070865547,-1070922005,1215295139,-301545533,-167772049,18241286,645927028,-386001321,1303444727,-392408133,-291386411,-1957311633,116163564,-1710852353,31684243,-94466736,-1778235449,509714,1788498688,-1607831034,-1952967904,46816741,-326413056,1448668291,-1917946227,1149874758,-1983894782,-1471772412,-1767225657,142016274,-478768230,1603948545,1342301047,1353205389,324286089,1913023130,-1547687126,1178145620,1946454790,-38250990,117330175,832181780,-33430658,1578505230,-899816053,1503264772,185887257,-2146995008,202799118,-1202667477,-397408840,-92219782,-1289128952,1959922177,-2146651363,376833274,-92273997,-1911589627,-1825838074,41911078,41194495,503841203,-890562952,-326412853,-2147072373,36438078,59967603,-1955633634,-899810745,-1902968830,640412678,435978115,639137017,637945739,1023956875,75366413,173509414,-1652843950,-1007156765,1458973526,1342547128,-2133458456,1735656954,244052107,238753404,209005658,377357883,104531570,-613280128,1912732288,41244223,-964475322,-335114744,-1850923477,640317513,-1389980755,-139647342,1948254402,409071,-2137789834,41004606,-1706031500,31694203,377095723,-346106251,-1746182642,1929341928,2047224722,1586263318]}]],[[{"sector":1,"data":[2080819139,-1543504106,-1162144134,-902436707,175423499,377101963,1961363632,-2134640199,1472830,512302965,243865214,378214016,378088538,703075964,-401968385,91488201,1869221504,1465303812,377030342,-1946799359,-1699195138,1005080581,-92236075,1949726466,-24406241,990168963,-1897499408,640412678,-1694599937,31694203,-1195120560,-780859224,1988008534,1346372067,-1326922101,1989384956,-342490653,2030487228,1583284246,-1957297981,-1960029642,1955267148,1003356932,-1388939570,1950481536,1090289697,-2136145547,578035964,1912604221,1957532646,719885282,-45824336,-29062880,-778512917,98619872,-268238834,-340928277,1456168646,1379306327,209486636,-1959889665,1552613964,2082341642,74746644,906219011,568857726,1379306240,2084473644,-1962467820,-819263412,-787842045,-205507607,343843243,1593984137,-13384866,1443621718,2005602187,140479234,-247738877,-2136134797,880034300,1950416000,408917,87821175,561453426,-352289048,549779169,-1957488779,-398047716,-346312815,-389849595,608219020,-338164738,-152326715,162947,1006758772,-773795432,919008,105155474,1015280131,53769221,104705496,-1382059520,1397857515,343211787,343469,1465062773,1779359642,-2091295980,-2098516285,621910611,1034753130,-311295994,-773133395,1374212584,387217,-346424350,1397969344,208994059,383031895,1499141226,-1023097981,1785110682,15985428,-387151019,2058904600,1673652384,-1979167093]},{"sector":2,"data":[2095154125,-372184624,-1952655733,1200294494,-905540092,1342469398,1488465384,381598550,-768347509,-108806093,638940424,1946630828,987702278,1124693255,1790636514,-708659180,1676273758,445021,-335544390,-1386813196,712294411,-134328437,1968240833,80082460,1966038200,132219659,1963325824,795654156,98766731,-1624973926,-1387141082,13357803,-1201435672,887660763,1743952483,780730851,116785390,1963005616,-1338602743,291564054,652878279,857851661,-1776347456,-1704755480,31680464,378260374,-1197408018,1958742895,1992440580,1511951126,2145878060,743185923,50483083,734169871,990147265,-1677675002,-1957311654,138841068,-1556086747,1183515316,536880392,-1711098205,200552725,550529,107381008,1183518720,105263880,1996426100,108461832,1602922650,80370990,-326413056,1445915779,16533190,466224838,-989411840,-442892247,-1557242097,116785442,1948259074,-336188620,-767101150,443842560,956057226,142071110,1190531189,175441106,-1999288694,915012678,-1924792030,1448137286,1594878362,1975520046,574522320,947257089,-244026,585889323,13780727,-1977977728,1178139718,1963487957,-767101424,-1979026172,1183372614,573999612,1183663617,-1705619246,777981929,-797589493,1342177720,1602839706,432531502,1355957901,19019519,1594878362,-767128274,301648,1223175775,-1274624469,1190592769,1950351570,34010893,1962999827,-1979267579,-1533411043,-2146700163,2755134,116787061]},{"sector":3,"data":[1946227458,-352210940,-1564464638,116852817,33559298,532158068,616058881,-728084456,-2094938293,113706180,22544858,1578894824,-1017256565,1342177720,1593847706,112686,55351888,734211679,1318736064,-1020371200,-1705983957,778013028,-1705983957,777977934,341567683,-326412853,1443163267,16664263,-62470400,65732608,-2080618753,2098003070,440341,-1946390793,-994278416,-394985360,-1989099003,1996488262,108462078,1358921912,1778450586,1975520020,-339727612,-28931323,-1956757440,80371173,-326413056,-1962742653,1212679750,1358841481,1778470554,1575324436,1426064586,-326898549,1187468804,-2147483394,73278,113647733,-956235490,64582,-1308860789,-941370621,-13946233,-62455809,402423427,1048636028,2081751322,1956485637,1187449844,-352321284,-62456061,402423427,1988826749,-754732548,851215334,-378142933,805684875,-28931797,-100609,563742326,185887235,721712576,-32904256,-1962862074,1078001222,1575324510,1426065098,-326898549,1988843012,-29061882,1358841481,1778603674,437190164,1589652225,-899816053,-1957363710,49054700,108432214,-1031072629,1575324510,1426064074,-326898549,1988843012,-29061876,1358841481,-1710721281,342492049,74825739,99336235,1090406027,-443851200,576093,-2115204267,-973035796,-1610548154,1183328774,742294526,611712769,1342252216,-1555906072,-12779220,-1604422401,832711175,741801729,19838977,309328,1123149904,-10844474]},{"sector":4,"data":[-1976374528,-1996531066,-1057030842,738150024,1183666368,-2037559044,1343684444,1602767258,741801774,1552321793,-1598533377,-1125625856,1518796354,705143039,-10844616,922731890,736624940,1575324517,-326412861,18693760,-970624000,72966,18628224,-1206291456,-397409998,1017332278,-49919,113642100,-973012709,72710,18562688,-12356608,-16696266,246941302,2078822400,933186,-1550179211,-1959895158,1200162398,207063306,-2130289013,16908927,2139166837,1963036932,-15931375,113642731,-16776933,-402572234,463487516,1575234049,1426064074,1048636555,1946157340,1178501981,175505153,1342258872,-1555972632,1048772934,1962869062,106859333,163713,-2130218494,33948287,2139164278,1912668162,41910573,645333250,33718145,-2130021119,26281087,-1545075851,1178009598,108461825,1342181048,-12467480,-402569674,-899849154,182976514,1931909698,-644213654,-398969321,463141847,-149656973,135463430,-402426624,379197281,186763008,1959851968,3250695,-1070390841,21628670,1245610187,242483201,-398217752,28376278,149985872,-875874250,1376188107,393494640,-197750374,-2146536181,111678,116787573,1975480402,-2141787390,2902334,116788596,1956606034,21733692,-2144573789,7361086,1520512884,745055020,738264822,-1593609215,1822633058,744923436,-399742301,1048576184,1946159068,-603535860,-1852178425,1946940470,-1136753686,91488276,1884425856,-1270972352,443809793]},{"sector":5,"data":[1884423926,-2146994848,2902334,-996537996,184673134,-402426688,646125251,-1594134496,101347410,91499593,1881149059,1525586440,-2083847709,84030,646518133,-521666232,1931909670,753407082,-68622235,855967720,-87847205,68657190,507019044,41164593,-1574535156,-1006959593,-955978776,83974,-69998592,-1704655384,342520603,1778829251,-1325400276,877904644,881329567,881341581,-1957350211,49054700,-2005904736,27852358,113706613,264,-200288614,-2000671989,1386413894,24028016,620643978,-1156811713,1128465830,-93067056,-2011693266,27852614,-488103564,642770965,1949684968,745185558,1208251456,-12058252,1345083958,1358954424,-166650904,1954610758,1545181705,1187381731,1190527743,443810559,318908035,363325687,-939581208,-16692474,40298751,-399575320,1055457094,1849590529,376700929,23987911,2062024704,1910479413,1788936675,21734188,1469724907,-167648399,1946484550,-297893080,645202031,-1557374815,-397398936,-1070910706,-1557371229,-1572328342,1183460425,136324350,-344960506,895084549,-291431308,1975520111,1295941646,57933825,-1962871832,1086545381,-1555561356,-437780146,-9639680,1949553128,309271,13154384,1662576720,12058940,-1710787328,31677465,-1072970613,309451,13678672,1660741712,-889191891,-1338178896,11549953,-1751623850,21890759,-795213824,1342301031,742995711,744109823,1459617726,-1707968024,31680172,-163941312,24079110]},{"sector":6,"data":[-15994508,116787060,1946447723,178406,13809744,-397359357,20734634,857109910,134645696,-396931028,110050141,-1073009656,46007157,842328064,743023192,-1710890151,31680498,184635041,-1340901952,50234230,-1070920588,1946287747,1950763013,1583302657,-20201461,-1711190778,566689814,225820683,-479535718,219277313,-956295526,251577121,91554125,-956288614,597345057,-1023286422,1381061456,1464919090,1596101018,1532582446,-466435240,-1030072496,-1020371166,-672639146,-1474393295,442469122,425691731,-919339214,44580481,24379956,-2116930743,1812113470,1241609218,-74714485,-1276635216,-1325521921,-5445610,-1477961552,523280639,-31221864,-1679287888,-1325822977,-7018461,-1880611408,-1325521921,-7804890,139501659,1068537752,872386536,-1595657527,203714411,-1958149771,-1949228074,-400903942,464584550,-1325440536,-10688456,1474843056,406752255,-400773112,682688334,-1325446680,-12261335,1072179888,-399527681,816906042,-1325451800,-13572039,736638640,200969215,-402361089,-1332268542,-14882757,-1743613280,-399069033,1583349540,-1957363509,283935724,15746759,730064896,44578559,723664104,1907008448,-385349470,113705315,28712,-2094826264,85566,401081972,594536461,22036096,-970558464,86022,-2093956632,7299646,937957237,918087728,-2145169176,120382,1823999860,-35106814,-1474393321,38270722,57966592,-1207637165,-1706032674,777988171,113711851]},{"sector":7,"data":[72666,1906982531,-385649664,1048772865,1946185768,15591683,1358055053,1594261146,1958742830,-1438743591,57933937,-2130648855,33879166,2122385268,1963067124,-196705525,-163133443,1827340288,99909249,-949652222,33748038,-84771199,-2129300479,35058302,2122387060,1946316018,-226590457,1148518964,-955903768,85510,1715372032,125042696,1139820231,-2129401088,33223294,2122385268,1963071218,-263796987,2122514513,343146736,1342299832,1342247352,737179391,-1706012480,777987992,49577601,-2126416639,24180350,-1092084875,1309067013,-1207959551,726663184,-11513664,-493159818,-351538088,-159481048,-402164467,-1073017305,2122521461,209001462,30817920,-402295808,166423100,1358055053,1596450202,-1438743762,57999473,-2130799639,526398,-558364299,1268404225,-1959895256,1438866917,-326898549,-230257394,108960336,-1073009057,2122445684,1963000564,-96012537,242485248,32800385,-2130217982,33813630,-443820171,-1957313699,283935724,18628224,-2144897792,72510,-1070915467,593009232,1183395423,-230257168,108960336,-1073009057,1996485493,593009392,-443863457,-1070873763,19372624,-1070911905,593009232,-1243074977,275966207,28575430,-8919040,-972039960,16888838,-385900568,261759335,-1708237055,777977967,1342177720,1593911194,-1957313746,49054700,44580481,141820468,44580481,510984812,36847235,-402230272,921181375,-1507947743,440896258,-1946270071,-398983208]},{"sector":8,"data":[-443863446,-1957313699,1988843244,50234120,-353892747,49932581,1948843651,704545566,-24962700,-2095811575,259264510,1946877571,285115146,-24967820,-1710918380,31677465,1965489795,113154572,-1073017868,-1058471051,369001218,-24967822,-2094107111,695489790,1951792771,1036421924,343146505,1912605757,867594,473762422,-402295808,65733637,-956039704,85510,547088384,-2094138904,510793214,1998192259,-1472790759,-773944574,683147235,1354771201,328880208,-382836952,1996423775,60024836,153994891,5586176,1189675894,-1816132862,-2119696594,1341188109,-1207813911,-1202716655,726673162,-1706012480,200562914,-1207819031,-1202716655,-353687799,1342181816,-349762120,1161441,655145040,280549611,-1070903296,-1194136752,726663184,-1202696000,-957677056,1342444728,-397361109,-420910143,68532225,166261227,31189352,-382510616,-907542059,30402868,-385970200,-957794794,-24713215,-382384920,-1243086403,28830006,-382139672,922681777,95945384,-1070903292,-1706012592,777988115,-16671511,-1207785418,-370474749,1342178744,-381635096,112722313,-1191908608,-397409292,-655883587,24635710,-384182040,-236453519,23849469,1342177720,1354771280,-380592664,-1070923427,115929579,22276434,1342177720,-383363608,-1343749815,21227814,-269762517,311574144,-138405119,311599832,-1711197975,31682122,-383828248,1038614821,18868518,-383333144,149422361,18082117,-381258776,1048576269]},{"sector":9,"data":[453052496,-1562839104,113707088,94134,721484009,1843941568,15722790,-352321096,649324788,-402594583,-555148357,460318720,721475817,-756526912,13625624,-352321096,467265780,-402602775,-1092019159,442361856,-402605847,-1293346210,179431424,1375775977,755783692,1728863758,755903756,755903758,755789838,755791374,755903758,755903758,-1542678002,1426893068,755807757,755809294,-1039258354,-804377332,755815436,-468919794,755821068,755903758,890121486,755842573,755903758,755903758,755822094,-49476082,135146764,437064717,537799949,302918925,604773132,151792908,-284429044,1326270731,755903757,755903758,755903758,1125002510,755903757,2081198350,1661820428,1863149837,1275950349,1191983628,-955417844,2885638,-1034068480,-1957363706,82609132,28589696,-955550464,24127494,-373282048,2122383621,1912733708,209617189,511115782,-2012723574,1183514182,-62486519,-1978894593,-466944442,-62485936,484108368,1183567851,18169100,-1343683722,18103552,255661683,1024226304,1886650641,1946227261,-391189720,-1444208381,44578559,-15960321,1996425846,108461832,1600154778,-1701647570,200542158,-345927448,138840968,125091851,1946157629,-2095715548,1962936958,-1472790774,471328770,-2113967383,17435206,-1559607669,-397381486,1491673940,172410879,-320143022,587876039,-955913472,2492998,44578559,-14948120,1996425846,108461832,-369356824,1183579945,3157258]},{"sector":10,"data":[166193232,-1946213655,808258118,468209664,-15341302,1963005501,-8656637,1946421309,67714487,171817332,1037005828,-680262645,-1946224919,181034469,1354771200,1342182072,1347469355,664312400,1438854751,2122574987,292814852,-1962647925,144901191,105351980,-344972125,134661894,1560281132,-1879047486,17039367,7798791,17105158,7864441,-1321350869,-1961827583,-1962760162,1602951775,17299216,-402230272,-337117180,-1957248215,-1157453770,-919927793,1364284246,672373329,-1017237921,23332551,-1949630464,57694750,-2034224423,27828743,27659913,1511951299,-1507982480,27828225,-2134702200,174654,-88394636,-1474413823,-1157401342,1602945558,1510902554,1963932460,2043808541,734563086,38747082,-796195466,990009131,57868871,-402499839,-960291829,2902278,744103483,507200884,343212382,-1560189791,1654718822,23634689,-1557374303,216727914,23731771,113706612,-65174,690022483,992762529,1963026950,23503122,-1593744221,1654849896,1778829057,-1006633215,22814267,-397212300,-396626191,1318780833,-1023286374,22808123,-102235276,116900854,33559298,116786548,-1022857365,318899959,1439367680,-1957237621,-823653794,-2168577,922685300,1996451732,108461832,-344907288,141986597,1989384790,55575011,-1705638282,31684243,-560311216,-1962810492,1451952198,-388303098,1566506749,1426065098,-326898549,-1957210622,1586170486,-9115636,1962905576,-1808335085,175570799]},{"sector":11,"data":[-1207404801,-397381542,1659596612,-402108789,-1705574743,31684243,-1705621865,31684243,736797078,1006519945,1970270782,1312719629,108267265,21890759,-1070923776,-1706011049,31687902,91537419,-352235869,1309030678,990934017,2003825214,736796938,33441323,-1955597818,-768931258,-385978136,1183579743,-16193524,1586217003,1511930636,1208055084,-443851169,576093,-1947432107,-672658338,-17635074,922687604,1996451732,142016266,1349540536,1342177464,1349440488,1317753067,-33036280,990660235,1963023878,736796936,-352320467,175570696,-478768230,1356540673,-560311472,184673156,-1559857984,-4718258,-2091892481,1962936446,737845513,172374856,1183517044,113162,-386015000,1183579599,-25630708,1572866904,1426065610,1586228363,-17071354,-997522315,-85457429,1572877309,1426064074,1586228363,-17071354,515377781,-397389820,468411821,1124073912,-397732492,-90047019,-29431765,922683764,177893268,1561064574,-1560280374,1465258775,1913023130,-1957313750,-1084795156,1183543384,38091526,-1379990668,207522561,1979644803,68991005,1392667835,175570768,-16353537,328861814,-30515416,-385780474,113639579,-402652811,-504824459,-15436547,-9464778,1996425846,108461832,-192933478,-1954878709,-1962843594,243993158,-1556086428,-481820316,1958820612,-1818603513,-1778261130,23082633,-1543503944,1940062577,1822528001,1510357804,-1593281236,1950362730,-1840606718,1090477288,1346911604]},{"sector":12,"data":[-1559031135,1950482786,389480235,1991547411,1122501091,1897302527,410272257,320288511,-478751846,-13637631,24319625,1241871682,24188553,1566465880,-402650934,-169147775,1458342741,1967030359,259260417,24446662,69056512,-1964486576,-1956254876,1992230518,90630145,1048596084,1946161952,1949187,23082751,-479362918,1958742785,1490435,-1962839647,1073836822,1950493300,1166624807,724928770,1554640,1947664003,1423363,-1996073591,-4717499,172329471,-1995934327,199953477,-1979711560,898171461,-1761327735,-899850657,-1617297406,-889068659,-477249382,1958742785,21930755,-326412853,-392538282,-1962150893,2145913438,-56956676,922687860,1996451732,106859272,58713984,-13874146,484980343,-15602835,-1818621834,1342301046,-1710852353,31690296,58048523,-1711169304,200545262,104448043,24445262,1183535176,-62330870,1566465880,1426065098,-326898549,22978820,1979711293,-60912355,1577207751,17286913,12079872,1223184384,22979365,311428807,-443809793,-1427584163,-1890477317,300417507,-15633156,-1703963594,200572440,-192751206,1872012043,1545505731,880034561,1513553739,-298385620,-231276689,-264831121,-164167825,-4003729,1345055416,1778693786,-157132780,-268005521,-234451089,-301559953,615049327,1579060163,74728193,-6625205,-326412853,1443032195,350722647,-392557580,722203667,-25261569,-1710983425,200544837,712427323,1459910399,1884829439,1884960511]},{"sector":13,"data":[-200112998,922699531,1996423518,922702078,-1432719270,1946940433,-28901627,512477931,-219676322,334404346,-1070920716,21890617,1586169461,-13441020,-443851169,180829,744109823,1342177464,22951679,-200016998,-1957313781,-1472790548,108461826,-402360577,-1034092540,-1957363708,142016492,1342439608,-1962510593,1347421254,1596461978,113401134,604301312,1076625057,-1555562124,-1202705410,-397410304,1438908348,1183575179,1958742788,1312719623,125042689,180829,-940799147,-9441274,71732223,1560366755,-1207958846,-397410297,1355022310,-872422936,-2081649835,727059180,-25785866,-637241,1312196607,134120193,-617934731,566238858,-1959861295,-401632585,1575550611,1996391412,-571931787,-889290496,-402230016,-773234958,1878040832,22939193,104427124,175374684,-2140834752,7337534,-190770828,24395887,1815543624,501764097,-1588728833,1183412210,24396022,-264831160,922701935,-521637900,-159481088,-30313217,-402558970,1183387368,249030908,-1191557495,-1202711914,-1202716631,-397386239,1183404281,-114890504,-362753,1996487798,1347021048,17317507,-352095232,-2034593736,2046167920,-2042723558,46025840,-955222272,259035654,112679,-1041739184,-1204819168,1448083457,292226806,-402295680,518738684,-346881560,1312196889,574351361,17303239,909705216,108331342,21890759,2122514432,158662646,-362753,1709767798,1312719870,57933825,738122985,566272704,-965704029]},{"sector":14,"data":[94214,292234880,-443851137,-1957313699,142016492,-14527000,1996425334,1991547398,-11533853,82314358,113401088,-326413056,1443163267,1443395211,-165531160,19661062,915081332,-397005726,1458053666,108461838,-478773606,1967030273,359989270,1342177720,-196168294,65558027,108461858,-478773606,-28931839,922701910,922710104,-2070253478,-1962150894,-92076970,-1960675841,396559942,-25755885,-478768230,1488474113,1788498032,1076523526,384303989,24396542,-61437622,24188475,378209397,1996423539,-1847045378,-25755651,-386107649,1525218696,1975519764,-1472790775,-2079352318,-1956762017,113401317,-326413056,1076648097,-910685835,-1142403072,-401150979,1317795722,1359405828,-484480614,1848019201,-1440315135,46292337,-1151904256,507183668,91488936,-1427521493,189762048,1963544362,10348803,-1961205877,1340607103,1547108343,922703617,922710104,-2070253478,722203666,-1729605440,-97088513,158879275,91553339,-347670645,1186999132,22820607,922701910,-1432719270,1946940433,37011288,170772107,1343714816,-478768230,1406872321,-560311216,-1962810492,1342118493,-315994622,705383818,-834991795,-1070916745,-1310175146,717655036,189631213,722029866,-617922367,-1645718704,1455434748,-57218992,24442379,1815513422,1606716161,1805697886,572015,-1036795357,-326412861,44578559,-16353537,-1399192458,1563320160,1426064578,-1101599605,146276742,72256256,-268181002,-2129905432]},{"sector":15,"data":[1812113470,1342928130,-396461592,1485921870,-4585493,1510902783,-1995142868,1149829708,203352068,1577469065,180829,1458342741,25607767,-1962932040,-503970738,2089021443,91619074,-352279064,-2095805598,729087994,-1962785653,-617413508,1359113401,1359222457,-1706012077,777988115,1064567356,-730480630,1342336184,-1962447896,-1960973345,-397409724,1048780778,1963159394,37009417,122873936,250086379,73173772,-1593422709,-1202715992,1397752832,-1734717103,1596874535,46292318,-326413056,-1191082309,1183514628,72780550,1963083577,-12614904,1468596340,147030786,-1034031390,-2034565116,309505,1962884995,38258437,-1014759425,-1007558136,861033296,-1617276736,1512988554,12802139,-2081649835,-1070988052,-1996667256,111213638,-28932054,-2010511456,-1070858426,-62485168,2144336,1354771280,1602565274,1575324462,-326412861,-1207767933,-1706032694,342491990,-194401126,-28931829,494190603,1342294712,-1694599425,342491937,225755147,30152331,1347600427,-194396518,1575324427,-868318269,376766209,30152331,1347600427,-194392678,30062603,56007248,1438848106,-326898549,-1991206356,1183395423,1958743038,28751993,-25755824,1358921912,1778450586,1958742804,-733573787,574029648,266967553,922693215,1183646136,1419399380,-1204920439,-1957690942,-1962821602,-523172793,52533840,-1073015702,922686324,378208696,-1070923324,1553616978,-349282423,28751881,21928528,1048777834,1946157502]},{"sector":16,"data":[-1103692023,-1990682111,-1070911905,149985872,-443860938,-1957313699,753697772,1342291128,1778470554,-1991206380,1183395423,1958743038,29145141,-25755824,1358921912,1778450586,1958742804,-733573855,574029648,266967553,922693215,1183646142,1419399380,-2094112887,112702,-1813510795,-14095362,-1711163338,778013016,410304523,29638275,-15633153,-1962821578,721536022,-1706011968,778013024,-1962933016,-1195155995,-1706032714,342491470,1342292664,1778603674,183026452,112640,19372624,-2134167969,111678,113647221,-402587212,1692986269,17799934,-1226297761,-341120770,1593864090,273016878,-1270972221,192151553,28575430,-13965312,-1006732568,-872420632,-1705983957,777978151,-6821685,28575430,2062076672,-3020557,-1957326653,82609132,-164932009,44318347,-141883925,957513099,-160103298,1600046731,-1034033781,-1957363710,82609132,-13937065,44316299,-25095189,175374900,705381514,41158980,1955331723,74856722,-947132299,-443850914,180829,-2081649835,1448543468,915144491,199951012,37027457,-24444300,957510795,-260766602,1600046987,-1034033781,-1957363710,49054700,74877782,1149897707,155462155,1955268469,1979058962,1590070257,-1034033781,-1957363710,49054700,1988843095,440699654,-1946270071,737709016,239438272,-1962129527,1200225886,-27358454,-1962391671,1200225886,-27358460,-1962784887,-74711458,-1995160183,1586172487,71732222,1586169737,105367550]},{"sector":17,"data":[1586233343,424134398,1828618496,-1207601918,65732636,-1962928968,1200225886,-27358442,18368454,-939630965,1884557383,-443850914,311901,-2081649835,-1868496148,-28931822,-199991910,1354771211,1342177720,-1558423832,113705308,-60784,1342299832,707397280,127946980,-1706014678,778011525,1342299832,-1202667477,-1706033151,778012634,-1202667477,-1706032674,778011132,1342329016,707397280,-1070903068,-2088396208,1354247775,-1070903294,112720,-2015716784,-558354849,1354256385,-56995838,-1204920447,-1605369236,-466998778,726681672,-2053484352,-1204920445,726663788,28856512,-627421184,-1204920441,-1202716194,-1706032532,778011132,1342336184,1358954168,-1191264280,-1605369350,-466998778,-145733560,1245702,721712130,-1207702592,243924995,-316003833,-377239509,-2053484285,-1204920445,-1202716166,-1202716671,-1706033150,778012634,1342299832,1342307000,1602354330,33208366,-25755824,-385979416,-2001207050,111169538,1357130282,1342177720,1602454938,42514478,1354771280,707397536,-1706014492,778012634,-1202667477,-1706032504,778011132,318899959,1131741696,1342321848,707397280,1346914532,1342177976,1602454938,37009454,112720,705142864,53339178,-627421184,-1204920441,-1202716194,-1706032588,778011132,1342321848,22820607,-1191318552,-145751586,1245702,-1207602174,65734602,1342689464,1595061146,1354771246,1596151962,1575324462,-326412861,1459940483,-1472820394,444369666,1342851]}],[{"sector":1,"data":[-1604968076,-466998778,-1974450104,1143606084,1088694793,-2088396208,347614815,-610643951,-2094112894,1946161789,288798729,-2099537328,-1070911905,-1995160183,1600000581,-1017256565,-2081649835,1448543980,44578443,-31818613,-2097031418,119870,-1108802699,889094400,-385649406,1149894836,155462155,1023035016,-2124779006,1946316030,111171156,1222912554,1183469640,1222912762,-2088396208,347614815,111169553,1222912554,28856392,-2053484544,-1204920445,-1974464236,-467007420,189041232,-2015716784,1170681439,-955182060,-569302010,32678145,-955177309,335671814,189041169,-2012658646,54327878,918044786,28856337,1183469568,1357130490,1602454938,288798766,705077328,1346954282,705250442,-627420956,-953262201,288756293,289801927,-224329250,289972993,32638663,1600000310,-1017256565,-2081649835,-1604975380,103416411,74777177,99287728,-33399904,-28931904,-1946243352,-352148426,28857883,1183469568,1357130494,1602738842,189041198,1183367422,309627902,-512362997,-1191257624,-397409684,-88604638,468209665,35043328,1370192,1342321848,-402649624,113642395,1577058777,-1017256565,1458342741,-1979418997,1143606084,-150178551,-2147483068,727062132,-150213696,-2147483068,-1202320779,-1706033151,778011252,46292318,415557632,44580481,108266092,-1559992088,-558355458,1268404225,-399614168,1089011215,-1957313781,1988843244,-1472841468,-399805438,915013583,1048773288,1962879998,38073862]},{"sector":2,"data":[-2146995199,-386006428,2078864503,-30349288,44578559,-402015000,1566444295,1426064066,-326898549,1187468804,-1593835268,1183384114,108652796,44316415,44310155,705316746,-467007417,189237840,-1979103446,704797454,704796942,1354826733,1602454938,38844462,705077328,-1974410198,451609670,44316415,-1946477592,1149916912,138684938,-1974410198,1143606084,-1706014711,778011525,-33274230,-1073085362,-2014783883,-59310082,1577395176,-1034033781,-1957363710,183272428,1988843095,-163133948,1962281728,842957067,1963092994,22276355,-2147096856,120382,-167038347,113651316,-402587175,94436627,50735618,-1545328126,564144348,520497666,685679362,704790432,-1560134394,-1465833254,685810434,-2013144672,1049361478,2006975142,1963338242,-96040958,30817920,1461613568,705316234,-467007419,189106768,-1979103958,-315950514,1346420995,1602454938,33456942,-1572814821,-167050794,512450165,1200292516,44344082,16547456,-1796716428,33208572,705077328,1212736554,685547600,-1705974742,778011525,1342314168,707397280,1346914532,707321504,-2053484316,-1204920445,-1605369292,-466998778,-1605351352,-466999078,-2088396208,1187393119,1407910140,-1992234170,-396886402,-125044256,980745995,44580409,1166676853,155527691,158794044,185761163,-350456321,-163119583,172329559,705185066,1166692580,155527691,-2053484472,-1959895165,-1073000762,113752437,40632996,-1191817474,-1605369236,-466998778]},{"sector":3,"data":[-1974450104,-466946490,-2088396208,266874463,-62485763,1577179554,1575324511,1426064066,-326898549,36872450,-385988983,1048642687,40633000,512431733,1200236768,155658763,-346881164,-1506345212,-40441854,30817920,721843200,1307070656,-25263106,-2129628160,40697470,1996425588,56027390,-1962364184,1438866917,-326898549,-11118844,-402479562,65797472,-1962567960,-1979537890,1193937735,1912814601,-47585041,44441227,705382282,1183320391,-84180484,-1207601919,65733142,-1962804552,111171312,1222912554,1183469640,-773575940,-2053484312,-1976672381,-466944954,922744971,111149734,1346914346,-388905077,-654850261,-2053484472,-1204920445,-1706032588,778011355,1342299832,-2114151850,-558354849,884494337,-56995838,1445879681,-402360577,199817376,-907520260,-1474393092,442469122,721582079,703090880,-1506344975,-55384062,44697286,-1956684287,46292453,-326413056,1459940483,-1472298666,1963070978,33209864,-352184641,35044870,-402523457,-1973945245,1160383045,1357130248,705381770,1284114757,155986443,-1056707286,-2053484480,1445879683,1602411418,-1505851090,-1539950334,-1962576638,44344263,1476102632,-956545048,174598,-443850914,-1957313699,149717996,744137046,-1577171319,1178145424,-955878134,-15560698,36872703,-386251127,915079907,619381414,-1994767221,-661915578,956974731,-1961724665,126421062,425603,1283458165,820510978,309627655,-663357941,-2096466177,1946158718]},{"sector":4,"data":[138840837,-4717589,-1528278785,175570932,-402098433,1996438768,27715834,1575324510,1426065098,1996483723,142016266,235304703,1577022440,-1962932534,-1962760162,1200298591,512475914,1602945704,138906394,-326412861,-1962611581,-1962760162,1183390279,744137214,-1946401143,121241182,1048774517,1979657214,-62485721,443811641,-401338904,-22806599,-369301461,-1946263925,126483526,-386107649,-320334886,109701359,-1017256565,-397361109,-1195180023,-397410303,1438842881,-326898549,915101186,1048652890,33161896,1048646260,34996904,-454555020,-1506345215,-82647038,957593064,1949063734,-1438744533,494141442,294531,-991422604,-1472298751,1963063810,35043333,-88603669,-437759999,1810388730,-11933677,1575324510,1426064066,-326898549,1978160644,1975520225,-274470907,1048660715,36962984,1048643700,40633000,2095581813,-1506345215,-89462782,-1592570392,1183394906,-1695511556,31681330,294531,166401908,744109707,-479513958,744136961,1979467321,132667119,-18487277,1575324510,-402652478,1048641851,36962984,1048643700,40633000,922683253,1508377254,-1438744326,158662658,744109823,-335749912,-39720957,-326412861,-402229505,512425996,1333789352,-899874558,-1957363710,74907628,-401427992,-1034027298,-1957363710,82609132,1988843095,36872452,58050059,-402600215,-166987757,113730676,684,512431339,117375660,-472841556,685948809,-2099537321,1049308767,-16055710]},{"sector":5,"data":[1149953141,155462155,-1205278046,1448083934,1602354330,111171118,1222912554,127946824,-1964758486,704797454,704796942,767634413,-1706033149,778011525,44447369,44316297,922705131,-610663886,-953262206,64582,-558361109,1586188289,-1846788,-1708596553,778011132,-1577302273,1178141356,-1868548,-1610468810,-466998778,-1605351352,-466999062,-2088396208,1048587871,1946157526,40679429,2124481515,44344066,-1560117599,914948774,2078802482,-1956684040,46292453,1354771200,-1006694424,36847235,-16157440,-402479050,65797888,-1006639384,-2081649835,1448544492,-1979287925,-922875580,-386120056,127989519,-2012468182,-25035194,141886004,1929659960,71731203,956057226,175309894,-197990314,-15992693,1183455349,71710972,-2081881225,1340626432,-96040460,896909323,-1973979413,1160383045,1357130248,705381770,1346898245,1602454938,1149916718,138684938,-1974410198,1143606084,-1706016759,778011525,-335786242,971527843,200838132,1463383295,705316234,-467007419,189106768,1208567082,-2088396208,1996435039,-94467078,705316746,-467007417,189237840,1074349866,-2088396208,1191063135,-9246212,1593281000,1575324511,1426064578,-326898549,417879556,36872696,-386120055,915144443,-397016408,-259263660,259388939,44578443,1955267563,310149906,1459057920,-2080895000,1946221694,-437758457,54651133,1575324510,-326412861,1443163267,-1577594136,1183384114,-21632772,44572299,185759627]},{"sector":6,"data":[-1962641930,1443013686,-2080909336,1946221694,-1377282553,50981117,1575324510,-326412861,1459940483,-1474393258,309824258,-211883946,-8259445,225772084,44578559,200471528,721581248,1962871807,1149916680,-337368567,44343576,44566073,922686324,512426664,1200226984,1222912521,1541951560,-1956684034,1438866917,-326898549,820532738,-1474393090,189237762,1946765098,309824315,37027457,-397211019,-1072958770,-164953484,175437323,155486806,1212736554,-1532946709,-1475987198,-15633406,-1962760138,-1979537378,-467007161,-33232816,1575324510,-326412861,1443163267,1183512107,-1981535738,1183579718,998668,4028020,1026061314,175374849,1946288701,33766717,1996449141,1289808126,184725155,-1957989184,242679792,1596441242,-2092963026,175678,1190541428,846553098,-385976577,-259306310,44971577,-164944780,1048781035,1946157742,668834315,113716831,686,30555779,-16288768,-402533834,909724909,125043154,30553737,721855720,-443851072,707165,-2081649835,2122515692,628428556,1342329016,1358710413,1602434714,38844462,-62485168,2144336,1816656,-2060150192,2112368223,-1950340341,181034469,-326413056,1024214667,108331521,-401705217,1586230836,38270734,343179264,209125203,-16091393,1996425334,1617730054,65744479,1570357291,1426066122,-326898549,75399426,376767084,318899959,125043200,1509836487,-952636671,22543942,2122395883,1963078660,-28915961]},{"sector":7,"data":[585826646,185559528,-955812672,22412870,116856043,33559298,1187448692,-352233218,-28915963,1996423508,116844798,-1034033781,-1957363710,49054700,16664263,44343552,1586169579,306678782,201213577,-1961790272,88574680,-1974934486,-316013490,-495599301,16678531,1048775285,1962934962,11266307,1023952523,913572352,1946288445,33701138,54346356,-385649662,113639569,-2097085776,176702,-2098658444,31373312,667064912,1183526495,45261822,-180950960,1048800747,1946157746,-1305018522,71731714,-397351894,1475083270,16678531,116862324,33559298,2122327413,125062150,45104768,-2095549440,143934,922683765,-706215246,-402396166,753466299,-2095781120,176702,922684788,1183449778,1357130244,-956580376,176134,1596448154,-1308178642,-1962934270,113401317,-1425619456,1438843138,-326898549,1795618308,141820945,-2131302168,-82744538,28589696,721777920,10742208,-1993581919,-991363514,39559176,39388714,104588330,125047996,1343536288,-2081113880,-15560642,922684788,1038619280,-1878603782,-150995182,18824966,65585525,-1472298739,1946315778,-29457636,175439659,44572299,16926710,512428916,1736442536,-655819262,-683769624,276037633,30869190,-125835264,-125376432,-393025456,-2013090912,-1073021882,-1070921612,-2079352240,28847711,1486508032,-970039517,174854,-385976577,1183452294,-1947981060,-389849627,-389284049,-2134114511,2047806,1048579188]},{"sector":8,"data":[1946157738,-15079419,113646315,-402652501,-558308754,261771265,-1204920444,-1706032504,778011663,-326412853,-1576647030,1183459563,686596612,311901,736922453,-341815104,-351863256,1357130280,1344859296,-1744550262,738631760,-1705974742,778012857,180829,736922453,-341815104,1357130280,1344859296,-16484609,111150710,-1415950292,-1976672380,100664902,-1034082069,-1957363708,250381292,44343638,1963214393,112645,-1070923029,-1946270071,1200292958,-163149542,58055435,-1962817559,373787352,724305570,1586188480,155683332,1346954282,-1946199320,1065612894,-1206749698,-1605368805,-466998778,1342180397,-347471640,-161576171,28850175,111169536,769927722,-397410292,1183386747,705077500,-259267542,-2080606677,1150092782,-1981230847,-288230330,16678531,2090861940,-1610028257,65740676,-1742765920,-15931312,189712011,-1578011200,1178141352,-1609665276,-466998266,1951046224,111291999,2144300,-18290608,-1191414017,-397405546,548994822,-672641024,44605950,1963214393,-161576183,-1575598198,1988832262,49185780,872709761,-150440958,1245702,-2095418366,-293403450,-1604618751,1352146816,-335633944,528523505,-1746382696,32408574,-2053049481,-397371361,111214218,1357130284,1601456794,738632238,956445345,91554886,-350250336,529440771,1743278232,-161575938,-1575598198,-2069877754,-397371361,-2136932778,-397371361,2122579534,91488510,-350257760,528850947,1005080728,73305086]},{"sector":9,"data":[-2012526710,1586229830,343901174,-33328128,1586229830,155683332,-336050552,1354771285,-129594800,-1605311446,1352146818,707528352,-1181069084,-1959895160,2139354718,259260434,720520842,1317685476,1005398776,723547585,111169728,1222912554,-129594800,-1605311446,1352146819,707528352,-1181069084,-30515320,1183512646,-129615630,-1956732046,46292453,-326413056,1443032195,36847235,-16157696,-402509258,300678644,44316299,-397015061,1955331560,1979058962,-443851019,-1957313699,106859500,-16775226,-1207785418,-11533310,-14809994,328861302,1563320104,1426064578,-326898549,-2141825256,111678,183042933,-1505852671,192298609,31080065,57934167,-1207895831,-1202716654,-1924136928,-1705973178,566709406,-972635005,-1699485114,778005331,184436360,-972458816,73329734,-314144704,45366915,-972786688,-2092699834,177726,1187382388,1048661744,22479322,-2001201803,1220038658,-1070903296,-364475056,505936,-16740631,1191118406,-2080535804,96340719,-1961170176,-768932282,-150992199,818053361,-1957751416,-768932282,1183445495,1321634566,-545931253,989284038,-276562549,245254,1183521515,-1177408764,-235470838,-2010070400,1183534869,-137221372,71731697,189712011,-1193314880,-1202716024,726663230,1183666368,146297066,448286720,-1415950336,-1204920444,-1202716024,726663238,1183666368,314069234,414732288,-1415950336,1580097412,1575324511,-402651966,-397347775,-397347768,1439432401]},{"sector":10,"data":[-326898549,-2141825194,111678,-471268491,744136960,-1912715639,-259281338,1176503494,31080065,846987539,31080065,410976595,22722646,12773456,1048703115,22151642,1153833085,317436926,31080065,176095575,22788182,10676304,-11079541,-402531786,-259325800,1376109867,1906746112,721440952,1349625350,1342185656,1285462614,-998039097,-1505852666,91635313,-352300872,4110339,-1200511325,726663816,-1924116288,-11489722,-1603164618,-467009060,-2069128624,1048784479,1946157522,-768147659,1163651073,715802248,-1191670812,1464861320,-1924087765,-11489725,-402533834,-1605352111,-467009060,1951046224,-466997665,-2069128624,-401723809,1996488453,125364478,-443850914,-1957313699,49054700,108461854,504534712,74907472,-1991080984,-397345210,1183528593,105251838,-1034033781,-1957363708,49054700,33441479,-666992640,628359169,-1560000885,-1073020454,-654898563,-956179805,65094,16678531,430965876,414188267,-352199518,-670630396,-771307775,-402653183,-443810151,180829,-1275051,-1377302922,46816767,-326413056,28589696,-16157696,-1070922122,-45881264,182877,-2081649835,-1101658388,1187446792,-351959556,73304856,-1979431169,-96040953,410304522,-237941,126417990,1979059022,-1962284060,1191181406,537380604,189712011,1592817088,-1034033781,-1070923774,91602955,1963430376,1545181708,28836323,-186101752,-1440314908,45663089,-1842989056,1208513810,311633464]},{"sector":11,"data":[-397934219,-1563754495,-1073084433,243271028,-1021284270,-1695773867,200553236,-402372981,-1034027082,1465253890,-476423014,-234362879,1989384784,-1701641757,31683859,1514048406,17233452,242483500,2005506646,1950351843,-864008187,2028509056,991327240,1949063742,14006281,-498800560,914950123,-1326961558,-1017225224,-1897397328,-389772289,-943456422,520198,-1957311744,136571116,-479309414,745185537,-1592888256,243990766,98791352,24627259,133211025,2122515376,24379396,-11278272,1577000936,-402652478,1994970021,1950372081,-1706014707,31681988,-402567517,-1444349873,-389850925,116786606,1963749227,-246159311,1989384784,-1706032669,31681920,276152331,1090503912,-1555556236,1520502772,133341996,-1710774040,31682129,-397361101,-1580990718,1950353396,-11515881,-402132426,-996539062,-956177555,-16255994,-135141121,17473987,1946187325,1796112424,1304068113,1992440576,1319342593,743022593,-1586497886,-257741734,744923503,-948964701,7336966,178176,62402539,-2144670976,111678,1048580981,1962934556,457081612,91553793,1790374298,1228832788,108331052,-387503896,45676431,-284768768,1472397319,-479290470,721712385,725806079,-1966527489,1225256718,896808824,-1070920734,-27727792,-352202877,-1089609176,-813498367,-284768766,434831367,-291375902,-1207006464,990241647,-1862174776,133170745,-303506058,-281116419,91488263,1884425856,-1017145568,1697995,347872907]},{"sector":12,"data":[1393064011,-479184230,-873534719,-479225190,-150083583,-669086773,1860082183,1438843363,-326898549,1229542918,1347481995,1476673000,1342353488,-397405008,-1766128325,-958921966,-1170006009,-802488243,-1980082551,-1923875746,1398209118,1913023130,-670868694,991084216,-1828621608,540673991,130433859,311867392,1589848979,-1017256565,-1947432107,-1729624994,-6559489,180829,-2081649835,1465255148,465564551,-1090264320,-541392865,-669121785,1959922439,-350778876,-1190688766,-661979056,-651437565,-1020590986,1354305906,-11382526,1443354678,-1415948464,1596874628,1575324510,1124567747,-1073028046,444086132,477368892,158606396,479856414,-350983649,-1962439931,-919928225,-919921685,216729483,-625424085,4162304,1228931700,-2048372655,-1766106802,-1130249454,131638036,1208473761,2013780131,-17700838,-17307565,-919875029,1543461352,-1157652760,1340604417,-1008866305,1963311862,744923413,742989450,242539274,743835382,1073968132,-1142357132,780748800,-391968788,17473799,-2012747101,721939998,-1978733632,175133206,-1579190062,1950353368,-332514369,-161975801,24138246,-2142232972,-26193370,1409188584,1869716051,-967114269,-1070858489,17434247,1476478857,347866683,-660391053,-560295161,989979502,1965840902,-585201385,1712228615,1225180716,243269676,-1962857386,-876606524,1884425856,-158012671,91247110,243330420,-343904174,-1270972373,309592065,-385998104,29032155,-24320000,131600127]},{"sector":13,"data":[-291443079,743023111,-1559762271,-392101622,744923911,743843456,-18178,1074256035,-1957318165,-1595112980,108461824,-1202887704,-1924132202,-1705988026,566709204,-16464765,1307051126,311867469,1619430736,-728084225,-2094938293,1183646916,-2037559120,726728544,1996443840,849078280,-1034033781,-1957363706,74907628,1342704824,1342177720,1778571418,1975520020,112656,505936,842328144,-352320840,108461836,-16490869,82313847,79846656,-326413056,-11473789,1183646838,-728084304,-2094938293,1183646916,-1070903120,1996443728,842786822,-1034033781,-1957363708,1357677548,-1559869813,-397381486,-1766306636,1183666194,-728084304,-2094938293,1996424388,135051268,112720,47749712,-1073015702,28840053,129519616,-1209511936,178225,1183650795,1586188464,41418500,-11485141,-555218826,1575324465,1426065090,-327029621,1187446916,-1207958788,-1706032638,777996072,-2080487799,85566,45614708,8972544,-1559607669,-397381486,1996442680,311867646,1354771280,1598575514,2089192750,-11528449,1996425334,806283270,-1912703233,1358920838,1342177720,1598575514,1312719662,1031077889,-1174404936,1347566522,1342198968,-385976577,1183396429,81404,1996432245,2089192958,1996443903,112644,1215863376,1996435039,108461832,-8616307,-1175957482,-25755857,1598515866,-62485714,-1034033781,-1957363704,-1957275668,2123040374,2088781316,-109772545,-972756146,-1958338556,-1073000505,80147829]},{"sector":14,"data":[1566531072,-1023408958,-2081649835,-1070923028,1193843280,1183395423,1312719870,1215627265,318899959,91488768,-352320840,112643,-1946263925,71797023,-1174383432,1347566522,1342251704,-385976577,37564837,-1206815744,-1202716655,726673163,-1706012480,200562914,-1694599425,777996138,-1017256565,-1578333355,1178152026,-16223228,949617782,-1711152280,200544214,180829,-2081649835,-1957297428,-1962760162,1015224951,-16419586,-3348428,1575324510,-326412861,1443294339,-375097,75399423,-953912063,261702,84180608,2122319476,1601504772,1869285110,-2093714424,-13871042,-910285195,-2139362560,1962935422,-28915961,-722796542,-1710852353,31676458,201213577,-1094355520,1525350407,743978751,-2130744856,1963328638,-1707959803,1996423651,75399422,-1207601915,65732609,1342177976,-480128358,-1104286975,2122321920,108265732,294528,12452725,75399176,-1107069692,2122323968,58000132,-15466306,-1705574794,31678210,-166989685,-397015436,116120398,-1993581919,1183578694,-443851014,311901,1076652705,-326412861,17099905,-1765845162,138840850,-972655296,-1008140283,-55145216,-25785858,1513553736,-806858708,-1962467586,573334550,72780530,1984887424,-162614782,1946289734,-20251132,1959198410,105313798,1380545537,1868707583,-486537062,-1072997887,1962990011,14203659,1030709921,225771523,-1377283246,-133998007,-338679232,1347834390,-480744806,1183406593,-2048355332,-1949095424]},{"sector":15,"data":[178582475,-1340246794,-889279942,-55145134,922703614,1788506046,1510073176,-1979943283,3467268,33965814,-141879692,-1957214386,-1763081777,-1527513838,2144508,1197451946,91504728,602427464,378622,311831959,-443851169,442973,1955269771,985672194,-2146470198,-645200918,-372192630,-1054162294,-1527522774,165922954,-1431687504,-202177622,1364247460,503732050,-1325495545,-221541540,1174893998,-141829749,-75237909,-2146798078,1966735996,1262896644,1516177227,-1581033383,1721969770,1755398188,-1592953556,1950362712,1711720205,1207959596,-39786416,-1072970613,-2365245,-910685835,-806858752,-1010813991,-2115204267,-16743700,-2037578122,-1705967746,566709204,-1929067389,1358921350,-8485235,748415056,108461904,1342704824,-486356070,588030209,-899816053,-1957363710,149717996,1988843095,108461832,-1960020760,64982008,-2012771618,-544474554,130473475,108461824,1275501142,-998039097,-129595132,-570171509,-1996863862,-125926649,-2095680256,58000383,-1962933569,1086718919,-728082864,-350107829,106859384,-1979760243,65797702,-1946267905,1065418334,-1946847908,50660934,1942174464,509531,-402229505,-125096955,-570171509,1183319946,64982010,509662,1443264255,-951318886,79987489,-1946663287,-1965161505,126417478,-956408181,2122537991,477430008,1342708408,1272224342,-998039097,63408900,1448100038,-951348070,79987489,-443850914,313949,-2081649835,1962937982,1226767]},{"sector":16,"data":[243792,1271700048,501952095,17727107,2122516085,208929036,68058755,2122517365,91558412,-348354328,112643,707165,-2081649835,1963003518,209617675,-402295551,65748077,1560281528,1426066122,-326898549,-96024824,1996423168,1193843206,1183395423,1312719864,108265473,-369098824,-1950875486,518541350,386334250,339641096,259260528,1880372991,1880241919,1342704824,-12801304,116914294,33559298,515376500,-1207702776,726669348,1402622144,-2094112952,85566,-1058518923,209125164,-16091393,1996425334,757852408,1946157629,112645,-1070923029,200951433,-953977664,655162950,1344736440,-1993687832,314113094,1183666288,1788498172,185887233,-402426432,-1950820411,-555200474,386858537,-126419192,1598515866,-96040146,-899816053,-1957363704,183272428,-1710852353,777996072,-2081012087,85566,-1070922380,-1207872535,-397400437,117320025,1187448855,-16776966,-9331146,-1200513994,-397408244,-1073005593,-1633614476,-1593578639,1183392524,213405948,-728084441,-2094938293,1996424388,655145206,1354771280,1598575514,1312719662,427032577,1344703416,-30845720,-16247026,1788540534,-1959895225,-370542010,-161576192,1204232075,-402652924,1996434379,175570700,-16222465,921237110,146732,-1665612172,213405809,-689418201,-1706016727,342491725,91602955,-338237208,655145131,-1640562864,1272224369,-998039097,-1676738812,1906096241,1479187024,1183384035,1958743038,-96024617]},{"sector":17,"data":[-1706033151,31677802,-1577171319,1178169378,-2147126018,40856334,-98685,580982388,-28952208,28839540,-289910784,-1813491712,-16062166,1869285110,-385649406,645988166,-168085,-1703829962,200558143,58048523,-1191235095,-1202716670,-397410098,1183394406,212472,-706149515,574029822,-100865936,49839747,199820148,-96024577,243269632,-385716373,-443810050,576093,-1168487240,1347551715,-486289254,21930753,594919435,318899959,460587520,1880753863,246941710,-353873912,1880662824,1349523640,1342178488,-1594236184,136605547,-920977092,243915255,1290274840,645972972,-1191284885,-154468351,74410758,645924212,-1191284885,1439367169,1740172427,2122338304,141819908,-1170212680,116067316,-1170210376,1347554292,-479696998,46292225,-326413056,-2130121597,872589374,-2130152446,1812113470,-1593477886,65733286,-1996314463,-661914554,-1994766453,-661915066,1183385483,108954622,-1709476353,200541934,200820361,189824960,721845696,-1897377600,-1668572417,1996423651,108461828,-478269030,1958742785,-340793294,1877882623,-1993720088,20838470,1038054400,108265474,-1552945503,2122514766,259325702,-66683261,1996425588,-121050882,-1947949336,79846885,-961288192,-1174404936,1347566546,1342219448,1342243512,-58202098,913621003,347801286,34010880,1946288147,-215035,-4717589,314069247,820531312,-1153531649,309592084,21905027,-1207208704,-1202716671,-397410067,2112366790]}],[{"sector":1,"data":[-1461140538,1869324543,20711460,-638072549,135794313,-1008006424,-2081649835,1122501868,1795618502,91491439,1869287040,-1779525088,1183384035,1958743038,-2132258787,-62486231,1946157373,146920,1996424820,-732108546,-1557372255,635966096,-28931130,-1017256565,-2081649835,116785900,1963224939,116300315,1183386612,2126515198,-339727612,-25263346,-1710918400,31693963,-1962933832,1438866917,-326898549,744661250,-395304285,-1072955454,-1377238155,-977541120,1349622968,1342210488,1358921912,1778450586,1975520020,-738203643,922713067,144338786,184673024,-15567424,-9331146,-1703976394,31676522,-344875869,-1642165497,509553,-1174362952,1347566546,1342217656,1342243512,-65345522,201213577,-13536064,-395304394,243332962,-1205833877,-1706004068,31676458,191849123,-402295360,283890589,-387319064,20840174,-137815296,-28407335,1349622968,1778470554,-985733100,21905027,-2096401152,1946222206,112645,-1070923029,-1017256565,201262568,-14322496,-1703976394,31653896,91537419,-335601432,-22747115,209043467,21905027,-1207601920,48955393,1438892075,-326898549,-856627198,16664262,-2130819330,1929641598,-18352,-154605488,21905027,-1707313920,31680172,1962934077,1795618354,-395050641,50232960,116787060,1946447723,1647771611,563823,-1073020445,-1008204172,-380901150,201292264,734098880,-2095453248,1946158206,112645,-1952837909,-1560157284,-1073020594,-471099788]},{"sector":2,"data":[-1034033781,-1957363710,384599020,1187468887,-1962934038,-1962760162,1183390279,-2133292050,1946163583,-62470393,485163008,44580481,141820524,318899959,125043200,33310407,-955913472,195654,1342177720,1598498970,-330921682,21905027,-385649664,-661978644,1183522699,105351676,44580481,208994924,-1947443573,71812895,418054145,318899959,91488768,-352320328,243715,-1947443573,71797023,-1174322760,1347566546,1342227128,-387156225,1183393609,-329348104,2005606283,-327745786,1598515866,-196688082,-941096960,1312719861,57933825,-2097055511,1963128958,24111363,-1072970101,37558644,-16288512,-399744458,-1578568314,1975520195,-774903754,-16690967,-16666826,-402543306,1183438039,-1472790550,67352578,-196702896,1354771280,672373328,-804573601,2122566773,-965410582,-1207885591,-397408220,1183383926,-49670,968362613,1944604672,17295825,1358899896,200138728,-2128120586,1812113470,-1207143166,726664222,-1964486464,-16127181,-1708369354,200544837,200689289,-16550720,2123101774,8907252,44580481,427098732,44578559,1342446776,-1357477033,28156161,328880210,-349282520,1513553682,922703660,922681773,-2070281809,-1995705326,1996488262,-1355350022,-1499836415,-1560157438,-1073020594,1996428149,136952058,178256,44472912,1319305699,1312719617,158597121,21903103,-338637336,-14043044,-314906544,467273415,1687814145,-2094113021,1824830,-1958263947,-163169849]},{"sector":3,"data":[2122520178,57999594,-38423,-16666826,-402543306,-1880370241,-1191545089,-1202714580,-1706033150,31654566,292877835,1946287747,1798478348,-1073020445,115934068,-92864513,-16737304,-402479050,1600054665,-1017256565,-1557372255,-1070912424,-326412853,-1711084413,200541940,201213577,186941376,-1207468608,-397410303,1924725369,200587845,1167741010,-1207835800,-397408209,113693271,-1962866680,-1866244635,57876941,-1006633032,1027408056,-1957348172,73305068,-593872897,-1962150843,-389467181,-1034027042,-1957363710,1364414700,1048577618,1946157492,105286412,1966800000,904417284,1499072290,-899852197,-1957363710,73305068,-1410842956,46292479,-326413056,-1960945834,1317734494,106334980,-1813495628,1583292415,442973,-1947432107,1317734494,106334980,2078818228,113401343,-326413056,-402229505,1950416758,-397391865,-997458000,182877,-1947432107,1102317142,1577014760,1442841290,2406487,113762347,28598,301580112,-397981250,-104922941,1197391377,-2097104152,85566,-617412747,1962989032,-1871516925,1408535387,-397191600,-12714102,-1956940545,1108688132,1371015029,-1240531134,1112620399,1149978741,59784450,1346179700,1024291844,913637888,1874200263,787152897,1207353174,-402586136,-1956770530,477400574,-509980499,-1389469823,-1392388957,-2130161502,72352381,-1397960075,-397988936,922681357,-102234058,-536651522,-1077715361,364777977,-1926567097,178461,1490091856,-1962779253]},{"sector":4,"data":[-788574195,113738584,909574083,-397323512,-3932426,1393047094,-19797935,309699,1507262289,-1195115806,-2135228288,1397774080,1778450586,1975520020,-830216185,67015,-1022965885,-1269606570,1528941872,1450312508,11273870,12189491,-222284928,-76173650,-1074295889,520496779,-812972266,1547479724,792462452,-812973451,-260718582,-108978410,578037387,952039819,768264,12100851,1960512317,1396487170,1361480633,1543373800,-1040318031,951586931,440584,-1705946288,200570932,916701195,-1017225464,-1207667571,-671154156,-1207405427,-671154155,-1207405427,-402718698,71600976,57982987,50333880,-1957690812,-1073019324,146277236,1342440192,1594234522,-1924086994,-1924136380,848973828,858676998,134543296,1073837056,856048777,38074304,24379400,71600448,-2080955261,-1007222172,1290295126,-1237417182,1853096047,-402652741,175505166,1342716088,-1543675416,-12777418,-1202621185,-534052828,-950993781,-951955195,72352325,-1923676386,-577102723,-1423024255,-1425943391,-1744285536,-1442729813,-1442290016,1209581406,-12523434,-11511714,1443378742,-43653040,-397986376,922746461,1239943222,-536651523,1874200263,-605552640,-1017225439,-2081649835,1187448044,-16776964,1191181430,1793563388,1183384035,-2147440130,-12718731,-1207601793,569114623,-385976577,1048637594,1946168357,1795618311,-814412689,-16365941,-1073019314,1183565173,1575324670,1426064074,-326898549,273058564,276086795]},{"sector":5,"data":[1929380157,10217731,1979712061,9693455,1877739207,-4718592,9103871,-1984009240,-1072956346,-1763179659,1312719820,276037633,-972136821,2122514439,-1071972084,1726732535,972834443,74583110,1525399595,1024083595,192217105,-1710459137,31681255,-2080487799,1962933886,-25755677,-1578106392,1178169424,-1962510850,-324858810,1513553775,1510405932,1954545708,178181,-1070923029,1357904,-253630384,1343395512,-1710328065,566709204,-1207647101,-443875327,838237,-2081649835,-873987348,74907589,-1695567384,31693429,74825739,1256964139,-152937240,24079110,1520515188,71731500,1342177976,1342230968,-1994399256,20840006,-401378048,-1072957334,1048775797,1946157390,-875501365,2122565355,-1066138882,-402360577,228257634,-1207835810,-443875327,180829,-2081649835,1187395308,922681546,-1070912422,1510405968,1954545708,1226757,213386219,954748928,311867632,-901345968,1268030032,-998039097,16168964,977201232,1343395512,1355433613,-951348070,79987489,744097527,292847616,1874869888,-1207601918,787153148,-352257096,1795618345,91489391,-352257608,1795618333,91490415,-352257352,744136977,743966265,-138934923,-1207702784,1183383800,-437759746,311867449,-901345968,1268030032,-998039097,1510405892,1954545708,1647771422,1354771244,1342180536,-1192254744,-1924132202,-1705981370,566709140,-1207647101,-1924136942,-1705981370,777996478,-1017256565,-2081649835,85566,2122517108]},{"sector":6,"data":[74712846,1575731243,185484939,1024226496,561250305,1946158909,-1205736631,-11534319,-1703941066,777996677,1342181816,1342178232,1598803098,1312719662,192151553,21905027,-138405119,-1205933096,-1706033135,777996834,1793563216,178455011,266883185,-21436178,28891883,181034240,-326413056,1443687555,-1543503944,-259297200,1343395512,1342187960,198005480,721712320,-1206457354,-1202711914,-397410263,-1072962536,-1070921868,-1955573597,1979059184,-163133625,-1766321514,-286765038,-196703972,1358186125,-480761190,-28931839,628408331,1567070800,-259325469,-2147430783,-308746154,738264822,-1107069951,1048838143,1962897488,1345751303,-16784,1896494729,1979711107,112725,1193843280,1183395423,1312719864,1282736129,529258635,411591,6010880,1379660730,10074192,-126419120,-1994470168,-397346234,-1073020881,1996481397,1198168824,2122526303,410256122,21905027,-15633152,-395245002,922742050,468218122,-649533203,1575324510,-326412861,335838851,-1070922636,116875499,-2147454710,79172980,-810004480,1273516032,81181,28837236,-1706824960,31681245,-1557372255,2122543184,645207044,1896482551,158695424,1896494847,-335738392,113154581,-1073017868,922684532,-1209503478,1713085164,1793589731,1312719839,-1071972095,-1034037001,-1957363710,1988843244,-2144998652,443886908,939607178,226231878,939672714,92210758,-352321096,63341330,950798059,-260831674,1962949760,1589652438]},{"sector":7,"data":[311901,-2081649835,1448542956,-1090226549,-1733556152,-1310173360,1975519999,-339727612,138723083,1962949760,112873,-443850914,180829,-2081649835,-1705626900,31693429,58048523,-1207876119,-1706032895,777996072,-2083633527,85566,803799924,-733573887,-970184541,1218054,1343395512,1342187960,197878504,-1207208512,-1202711914,-397410263,-1766268372,1183666194,-728084268,-2094938293,1183646916,115888340,740729627,-1915848961,726717510,1402622144,-2094112952,85566,-806812812,47104,1379660730,6010960,-831062192,1025321192,57999362,-16730647,1183698550,699945172,-1070903296,1215863376,1183657567,-1226288940,740729626,225820683,1342177720,1342237880,-350500376,641108920,-750613972,-409317224,-1996364956,-1072955834,251595892,915090470,1120283686,2122318036,108267012,16678531,1183648629,-739749676,1975519998,112649,8108112,585677291,740735161,71731792,1491619992,-767129109,1962934077,-683349972,-1694599425,31690999,1210841761,-800683704,-763953328,1479999312,1513553776,310680176,-397407244,-1595357484,-1191515939,-1697745153,777996138,1575324510,1426064066,182877,-1947432107,-1073016762,20778100,1029009920,611713026,1048596203,1946159185,309253,280495083,34507264,48332819,-92221045,1103698689,803993811,139542144,-1962314752,-2020996002,132843618,-1978900853,705188487,-1511501596,311867445,242679632,-951331686,79987489,1560281528]},{"sector":8,"data":[1426066634,-326898549,-2091493618,1962937982,-1946211544,-773795385,-196703776,1343505805,99894923,-1957680914,-268045242,848973864,1194221318,1912864643,243172314,-2096532480,1946226302,25356547,318899959,74711552,166445099,1350570424,1598694042,82873134,-96040940,420249219,2122516852,57940748,-1207914007,-1706033127,777996834,-1191688567,-1706033125,777996834,-2130819447,545086,-963945100,-523116335,-2081143159,1912797310,112645,-1070923029,-523041871,-151894391,1946286150,505861,-1070923029,-1947056629,-2021002146,2122524910,91357950,-352321096,-1312806142,-1981754621,1190588998,91488766,-352319560,197143298,1586229830,-1961301004,-773795386,-230258208,1183570059,-293107208,-228685016,-1979824501,-148311929,1245702,-1207143422,-1706033129,778012973,-1929335831,-219474876,-523123061,1183441105,-1948742670,-1993806201,-2020870074,1183394032,34010878,141820435,133719683,134112899,139542144,-1201703936,-2091909095,1913190526,112645,-1070923029,1317724369,132219128,-2131605879,91555833,-352321096,197143298,-1705971130,777996677,1342184376,150896259,28837234,721611520,-1964977728,-511639986,-230258425,1963456896,112645,-1070923029,1358054923,431494123,1996443648,1233492728,465055327,1996443648,1233492734,28847711,-1956684288,181034469,-326413056,1443032195,-1207011701,-11534301,-14094794,-1708593098,777979414,1342245048,1446222824,1347469355,1343395512]},{"sector":9,"data":[1342182584,1342186424,1602530202,17414190,863955024,1354771286,1342177720,1343395512,1342182584,1342186424,1602530202,112686,1575324510,1426066634,-326898549,1988843010,17479694,860547152,1342186424,686700287,686831359,1594234522,-1070901714,-1766305712,330846226,599281664,-1415950336,-1204920444,-1956773887,214588901,-326413056,1443032195,-1207011701,-397410036,599274248,922701824,922691826,379201780,1445879558,1347469355,1343395512,1342182328,1342186424,1602530202,112686,1575324510,1426066634,-326898549,1988843010,17545230,851896400,1342186424,687224575,687355647,1594234522,-1070901714,-1766305712,330846226,599281664,-1415950336,-1204920444,-1956773887,214588901,-326413056,1443294339,16402119,17152000,1193843280,1183395423,1312719870,57933825,-1962849559,-954233896,2119,-1946263925,-1983894729,1149832260,702474,311867472,-2116183472,-1706021281,566709302,-16333693,-1766261130,-1070903278,1213438544,1048784479,1946157390,16640259,-1946263925,30712095,-150059127,1245702,-1207602174,65732613,-1962933320,529268318,-1207679095,62521344,-1202695620,-11533957,1458110070,81176,-1712782476,-1241069824,-956300945,64582,-1308854645,-1947806974,335936582,-1258336256,-1258346258,379201776,-13738234,2122579014,-596507652,-1962867224,529268318,-1559345269,216531412,-866326324,-1191282945,-1202711914,726663248,2023379136,-1204920504,-1706028394,566709298]},{"sector":10,"data":[-1996307325,-12715450,-16550401,-577045938,992894849,527759942,1358954424,-337228312,1795618316,91521135,-375097,1722850047,-12779037,-387287553,2122569959,225837050,1342177720,1342243768,-350848536,-92372204,-2096203933,1946221182,-92864760,1602347418,-25755858,1598515866,-443851218,196658013,-2135404526,1301958656,185887234,-402295360,1407959613,302855935,1344703416,-951331686,79987489,318899959,91488768,-352232264,22919171,646690896,-2135404514,2062045184,146916,113713524,94134,1344703416,302855935,-951331686,79987489,1344703416,1075105000,-1022227549,-2081649835,364381932,1183666176,1183666426,848974076,-1204920570,-1924136938,-1924072378,-1705968058,777979442,1342183352,-362753,379256438,-1204920570,-1924136931,-1924072890,-1705968570,777979442,1342182584,1358710413,1358841485,1594241690,1947694,-92864688,-1694599425,777979414,-1017256565,11716578,1722811428,-333542572,1347638032,-324812029,29137424,-1017642525,-1022301021,-1947432107,-521664954,46816767,-326413056,-402241909,-899809306,-1957363710,-1949659924,-1590819234,-670869366,-1977710290,46816600,-326413056,772163211,1566083747,1426064586,-326898549,-1957275900,116786806,1946685803,24307971,291636990,186431208,-385649472,1183514962,77068,1979715645,17557763,781434883,1509730303,67159799,-956887948,108265984,-384589592,-956890838,108266496,-384582424,-956890850,1349779968]},{"sector":11,"data":[318899959,1098121728,134891207,175570727,1343960808,-1994881816,-1072955834,-135724172,176062720,57878280,-2130645527,655231614,-471268490,-700547072,57999361,-1207903767,-397409684,-806762625,172410624,-1108662514,318899959,259260928,44580481,125043308,185222855,-2119767257,1812113470,-401246974,-397358157,726715300,-1092071232,1975520022,9758979,-384412440,-289472370,140413712,-1962522741,145818207,-477893677,-1965554929,38111239,2122529259,108265482,-1559607669,922710162,-1863815022,-336032998,-245774046,-447090343,509222489,509222490,509222490,509222490,509222490,458890842,-2141631399,530238,213388916,-1981263833,646690829,231663696,284342359,383117392,175489035,1881816713,-400340504,1048576098,1946159127,655144967,229304400,-2128398872,-905884098,-402426624,251534009,1600000354,-899816053,-1957363704,273058796,208977931,1912602941,146727,552273782,-335544392,205949723,1052266560,-14790656,-189264266,735087376,-1706011968,978194404,838237,-2081649835,1448560876,-1996403039,113769542,334,1342177720,1598498970,-230258386,21905027,-402230272,-957801911,1543962112,1796112401,915081233,113709539,4579,681051790,1417254,-125049814,1343287992,723034088,49251320,-13958023,1048775659,1946161635,-1173946876,-482965136,-1662494959,738763008,-1577564535,1183412260,284342526,3717200,402188368,1343395512,1354253965,-951331686]},{"sector":12,"data":[79987489,-1548204403,113716232,28708,-1174404936,1347566619,1342190520,-386763009,1183518640,738763768,-1543616885,251555876,1201279324,-1993449688,-1465779642,-96061182,1996425332,-2079352070,113651295,-1962905414,1356396487,-16768280,1788539510,-1204920505,-1706028814,342491990,-1543747957,645923150,1593250155,1575324511,-326412861,681051790,637814410,198184,587606054,103294464,1183514645,-1037330172,2554065,1560281350,1426064066,-327029621,116850928,33559298,263718260,-1207702783,-397410032,-1766315849,-2037559278,-1705967856,566709204,-1207647101,-397410031,-1766315873,-2037559278,-1705967776,566709204,-1207647101,-397410030,-1766315897,1183666194,-728084304,-2094938293,243270852,-1928851093,1358893190,-10451315,-1337553584,-2147370928,231663696,292234880,1575324663,-326412861,-16454525,681182838,-1993449657,1187511366,-2097151234,85566,-571931788,-1948742912,284991775,-1962260599,529267806,-1995374943,1996426311,646691068,1354771280,1598575514,-59310290,294531,213386612,-1207702745,-1202712326,-1706033151,777996371,21905027,-385649664,1996423302,175570700,-16222465,971570294,-28931826,1946157629,33998703,-2130706159,1812113470,-955878398,17891334,-60912896,1200299915,284992266,-1946394997,206015263,-15663453,-1950811018,-2118627290,-1070903296,1215863376,-1950863777,-1645719514,1975520011,112653,15972432,213117008,2122552555,343146500,-1191414017]},{"sector":13,"data":[-1202706676,-1202716543,-1706033151,777996408,-1694730497,777996138,50232963,-1070922635,1183515627,1575324670,1426066114,-326898549,-1305483256,-1560000885,-1072992280,113709684,69886,284952263,113704960,69890,1344703416,1342210488,-1984209432,20838470,1103698688,201215625,-1207011895,-1202706805,-397410175,1183437339,108954616,-2096663296,1115198,2122516085,192217336,1344703416,1343292600,-2096579608,1962936446,-1958838241,410255398,425603,2122516084,208929022,294531,2122522996,460652798,-1174348616,1347566623,1342217144,1342309560,-397361109,1183448655,-955913222,129606,33193603,79199861,-1950855151,32002086,50849800,1819656203,21905027,-1201310464,-397410303,-1073019870,1048775797,1962934606,112645,-1070923029,-2114173303,1812113470,-2094762750,1824830,448268660,-1070903292,-1592661168,104427944,192180642,1342446008,1906849535,-2095479832,1824830,-320338572,-2095977557,1946221694,112651,16037968,189261904,-1205932568,-1706004468,342491470,-1034033781,-1957363706,1879876076,1178200273,-1207602684,48955393,-1034043349,-1957363710,1586190060,-1948004092,-1955590602,-1034068480,-1957363710,250381292,44572299,-1994766453,1187509830,-956301070,24640070,536626887,-402208964,-402653073,1586213021,-1707606026,200544813,57982986,-1207821079,-1202706805,-397410175,-1072973354,-1950872715,79188006,1642614801,655144967,286046288,123136080,-1174404936]},{"sector":14,"data":[1347566623,1342233784,1342309560,1342177720,-1979904280,-1072955834,-840367243,285521921,646690896,113698896,1343294648,1344736440,-2096710680,1947795070,16902403,184662248,-385649472,1048773028,1946157390,26929411,1342177720,184733160,-2094893632,85566,1048779637,1946164184,-1429346298,-1207862295,-1202716671,-397410060,1843989037,1312719617,57933825,721502953,681201856,-1993449657,1048835142,1946157390,19785987,-1003878496,707197534,-922877113,251152008,973527016,91486278,-336050550,-1006456830,-2010711458,1172832583,24623308,1379671994,5421136,-193527984,-1995768856,1996488262,1198168820,2122526303,58000126,-2097094935,1964047998,90368005,2122517227,74781182,687867647,21905027,-385649664,28836031,333991936,1958742786,-10098429,467156611,-402230272,-1528190441,1312719616,57933825,-1207919895,-1202716671,-397410059,-1930884755,-25263360,-385649639,-1360527229,1958742784,10152195,21905027,-385649664,922681488,213385896,-1070903292,-1706012592,777988115,-397361109,-1073020494,1187450740,-402652686,1048773848,1946157390,-1472790553,67942402,112720,1354771280,672373328,1048784479,1962934606,-666991832,91488283,-341209368,112662,-226589872,-1207602176,65732853,1342239928,-2096569112,1946219134,-96566495,74711080,687476479,1906456319,1358802920,-3819800,-14090698,-399967690,213431371,1318735984,-1961596415,1438866917,-326898549,-1474393340]},{"sector":15,"data":[440896258,-2114173303,1963093243,68663334,1354771280,-1558794264,-1566346840,-49807,28837237,-1199969536,726664222,-1779937088,-1707545834,31681059,91602955,-340499480,-60912671,161101823,-1560157333,-1566346840,346994801,1879881808,27433552,922686570,635990434,1167741181,-1995705326,-1444348346,687776707,958988963,74841670,82559019,1086563048,-1557595485,113715456,10492,284966531,-1207470848,-397400437,-1070921801,-1017256565,467273415,1687814145,-2094113021,1824830,1048783733,1946167548,1906876713,1906443833,-22994827,33962280,-1592625367,104409346,242559230,958986913,1915289606,112645,-1070923029,-326412861,1443032195,16664263,-14882048,-1914110346,105266172,1586171509,-1948003842,-1955590602,8979526,-112897,1508441718,1958743036,-443851046,311901,-2081649835,1946158206,-16861177,-808327088,201289192,-2094959424,1946158206,-1472790777,-932255742,-198109798,-11212789,-108803957,-138405119,15657432,44580481,1467286124,1342447288,-397361109,104535384,58075394,-956257559,19463174,33998592,-2097151959,1114686,-1796668555,68728832,-1472790704,355395697,1030858915,-1686831105,1344703416,1343292600,-2096912408,1113150,-1950847115,-1662496730,-10032378,-395204554,-1705968696,200544837,687998523,113726327,76028,687998663,1048772608,1946161410,-1475936458,-1472790671,-75044751,209043467,1906849535,-1443130392,460685312,1906839295]},{"sector":16,"data":[1906849535,-1443134488,-260734976,1906849535,1358657512,-388613912,-1072955766,451478388,34010879,192220969,688011007,687879935,-389251096,-1073020904,-18283660,34013182,444201,-385875927,-1034027286,-1957363710,82609132,44580481,477430380,44578559,1342446776,688011007,28251787,1375841697,672373328,434843231,1906849535,1358629864,688011007,28129023,28260095,-200112998,-62486261,2020917259,284966531,-16288512,-402542794,1048774063,1946185704,-1355350252,3604225,-59310295,1344703416,-352253464,-1355350254,3604225,-59310295,1344703416,-1996471320,-12714426,-1556777729,1048652032,40633000,922684276,-1645710936,-1528278790,-38737726,326483979,688011007,687879935,1344703416,1342471144,-1207786008,48955393,-443826133,-1957313699,149717996,1586189911,-2012771836,2123102790,176030472,721843851,1397098614,-1996207128,-166986170,-1974069890,1352202822,1280481879,-998039097,200837894,-1207601665,1760296959,1177274251,138840330,721843851,-963950864,2013152825,-25755674,1459910399,-951290214,113541921,997572619,285097603,-2094042112,1946159230,-12219890,1771720856,168555623,-1960806976,1174603846,105266174,1586172023,-1744729346,1734974032,-1073083404,1183516021,1191570184,-8722098,-443850914,574045,-2081649835,1448544492,-16091509,-1444412298,-62486269,1208239619,-1946663287,977240280,130418293,-61931776,142016342,-16353537,434635894,-2080863233]},{"sector":17,"data":[1215627263,1183434243,-16520198,1983511118,-1961659654,126548574,535318680,1975519746,-18198,1183525099,63374332,-96040506,1191117803,-94467078,1183319946,1949973752,-397371381,-1073085962,-705959819,1600046987,-1034033781,-1957363704,82609132,1344736440,-1996283928,-1950811066,367546406,-28931837,44578559,1342439864,1344736440,1347469355,1596461978,646690862,285522000,12773456,284966531,-1207470848,-397400437,213386167,213405735,-1444392943,1906876672,1906443833,-22990475,33962280,-1591184087,104409338,527640832,66995851,992542726,1982396934,-100219128,-352321496,-62485750,33441323,-1960248826,100793414,-443864832,-1957313699,49054700,-402360577,1183384200,106859518,-16613501,-1705834892,342491990,16678531,1996429172,-25755898,1778590106,1975520020,-28915960,2045247488,-25263185,-1961462784,1468728926,1388325634,1996430928,-25755900,-352172056,106859271,1991,-1034033781,-1957363708,49054700,73304918,1183385483,1958743038,1996430865,39291654,1347600427,-385976577,1586168340,108432382,1577058502,-1034033781,-1957363708,49054700,44572299,-1994766453,-2115436986,-27358274,704792362,-1474393116,156207618,-1056707286,-883038837,-1275051,-1207785418,-11533312,1183516790,71697158,1183568011,-1706012154,777988115,442973,144,-1067580672,-528482305,-528482305,-520093697,1090453759,33554432,-16256,-8065,-8065,16769279]}],[{"sector":1,"data":[1940929791,-265990110,-771510016,785943528,609753227,-1967063537,-104844344,-1021060909,28837236,855829248,-1957313600,348018412,105286247,1593821928,182877,1458342741,-1972950338,-1192754106,-1034068225,-1957363710,71732204,1729667886,-16222465,820512374,243347144,1577281304,442973,-853953536,843121697,-1957313564,-253208852,74877951,1153893512,-2091107839,-551287866,-796245972,567101364,-1996488517,-1828683234,512296307,1581777026,180829,-1964209323,1381106774,1509964520,-2132811136,246694378,-1034083891,-1957363710,-1547684884,1586167938,395006724,1966800512,-806858236,1001675519,12263885,91460352,8527497,46292296,-326413056,1007769760,-854559233,-773795567,65306848,-997538562,1007769762,-1975225087,-494926762,1105887455,1996618368,-1900006602,77604544,1959803397,-1202584022,-1834811138,1156075632,-1924114404,1224734,112647,311867472,-817567664,-2010773670,-1274739690,1562496269,1426064066,1586228363,-851069948,-1962511839,-851528488,46292257,-326413056,-1004644522,1992624254,1017818116,536507648,-1034068385,240648200,38988368,-1957363229,509040364,-486257013,176079880,-217680187,1583292324,705117,-2108319103,-1232910960,1099859009,-2042513531,-2138619505,1171425347,-1975135351,-661961260,1238862921,-1857429875,-493665902,1335465039,-1773149291,-342403606,1499043925,-1605395045,-694074955,1340121673,-1537873501,1101418149,1330620225,-465451066,-387493915]},{"sector":2,"data":[1508764752,-1174405120,65759622,-1184265286,116080993,-1184264518,-1957338815,71731948,242794506,1019292240,628316186,-989675222,-474275861,260779624,1128470499,1958820419,1975859716,786628592,1040140170,-1975663222,46292417,-326413056,74877782,-1276620628,-12285697,-193609718,46292318,952120064,1948894214,1423369,869129011,1439417227,1455746187,1488902,-899861555,-1957363708,106349804,-855631944,80370995,-326413056,-1962654069,1427237848,1183575179,-2082960636,74927611,131122049,1888624265,448129104,1357677398,-1766263669,-1705619438,566709204,855950467,1397970651,-402229505,-998047736,-1034068400,-1957363708,49054700,744109823,1342261409,412366591,158711819,-391013400,99130132,323545282,31078143,1342264248,-1949830424,116786246,1946685803,-2147480317,291374846,-16091393,1996425334,-1634054138,-1993449693,251592262,-924315298,-1811509305,-1072998376,48760437,-1315051365,-1949368088,-443810234,574045,412354247,-943456257,1610758,-1801338112,661930008,-1174401243,171704347,1186600308,259278848,1207977146,1203374452,57952256,-1275053638,-400438003,-1013776442,4587547,4653124,1638457,1475119957,235161227,1792261895,-234879303,-1157007953,1347616771,1040116968,1566556211,-1207958846,-1706027881,342500142,24435467,-1957311598,49054700,1520523094,-28931796,1074153099,738197029,1358203872,1996445206,142016266,-40703920,1342298785,1342264248]},{"sector":3,"data":[868680424,138316736,-472937684,-1982977265,512427084,-620007388,25559668,112720,-594849712,1355582288,-1705946288,777979442,1356630864,515427467,1547599872,57933841,1342179000,848974163,-1708237050,777979414,74907478,1597358234,379229742,1496211206,512427747,159936548,-1729605544,-536651578,-385976577,-2087268903,85566,45613940,-1956749568,146955749,102950912,-326412861,1050761046,245579888,1883283751,655139648,915144499,1552749025,-1178586362,922691340,922691340,1996433166,508580612,304323153,1499150926,628408331,189253515,994342336,1965493262,236862270,-1590133721,-667212016,-1556074121,-1091885298,-340925208,33522488,46134903,112640,-1557721949,1190602510,1954545668,300130721,-953742173,-14217722,-1584141313,-1186453748,512426604,1363879694,619205456,1566465961,1442841282,1795618391,91554065,-340944664,187426895,-225708317,-1070335861,30803512,104411252,108359742,1883244089,1357385588,1040595206,958100848,1970290710,184543253,1105726947,1946303493,1975519753,-401478672,-695489195,770230155,1958742533,139126787,-2134679969,120382,645939572,-1952509589,-15605474,939459191,1309146266,197692218,-165841462,1611754246,-2134695564,120382,512432500,1468731873,-402158846,125044573,168092648,1007121600,-402426878,1355001081,291444363,291452671,132684368,-1956955570,1959398344,-1706012151,978192380,922687467,-1705832097,978192380]},{"sector":4,"data":[-905197429,1347554164,1309141146,197692218,-1047804982,291444363,108319243,-402426815,-538441187,-162020418,68250374,378232949,-771026593,-1047834508,1963387112,1946303542,-518091963,646692625,2013222686,-1707606270,978192669,779403275,173205591,1342246587,-998643629,509587,140175447,1726486755,-1961630721,73328888,175489034,1342457741,-1761188120,243271915,-1207692949,-1017118721,292226806,-18431,512431732,126554593,-1996335221,-401514730,-498991315,-18429,1795618499,578097169,1342811368,68610130,-1073063590,-1856827531,1527346408,1342457741,-351922456,1796112389,1455621137,230224267,-1863823359,1797163542,98795537,1963064192,1795618334,125044753,291389056,-1961855744,185721118,-1928825637,1448084551,1577377256,-1957210429,-1594192912,86249835,175374652,113754163,-60961,-1958665749,185721118,-1980926757,-1928208626,-1070397857,1461605969,-459648941,188370447,1607824576,-543046818,326451217,1392604859,-1979711560,130482759,1200160796,-1957893372,-1928208098,1723336287,311867648,-3001519,1343348534,1381191966,1309716634,-1072997574,-1957442956,594821127,2144584,1962934697,2275603,1962935465,2210059,1962934953,1882371,-1014820983,1490610948,300130755,292226806,-2146667512,1138238,1005061492,-1010814019,1827826794,1842310088,1834052965,1847225840,1854762576,-1957335308,117331692,1317736802,205949706,-343811957,-75299820,-787451125,139889635]},{"sector":5,"data":[772163211,1863030783,1023455209,427098627,-1979294069,100899015,-13471688,1882856963,-397127597,-1897332459,474368,1824000373,-2115481598,1030417339,158663690,1362160003,-341210136,67845490,-377288331,-1092071120,1030024105,1232404738,1963587971,-138398960,33556550,1346896244,-335797528,234455882,-1326970507,-1578610507,-2086212683,561283065,494267658,1914763651,1800641048,-1073009057,1996427125,-109778934,1963607611,-338102326,242679750,-15960321,1996425846,108461832,-198525030,855894795,251566528,-1880616606,-899850739,1157627914,777275716,5262408,1396785745,1210991433,1442861132,184915688,-399673920,-1073020884,-488110731,-1205736535,-1950674282,1394496294,1827164190,26994936,108314634,141886120,113762539,334,-1766276258,703250,1344143801,770199891,-1073000201,28312180,1392526267,579967568,-1766314401,988303378,1438865602,1465314443,299966091,-1962516595,-1992226738,-1960374770,-1992227250,-1205400562,-919394548,292234880,508646303,294623824,-1073006002,116790389,1969230187,75399177,-402426880,-997480111,119420395,1462143935,655505093,-1073042772,-1414661515,1048649478,1109468811,1048581237,1962944141,-1070376947,-1998041008,-75765596,-421002261,1606431488,113401182,-1017161984,-1995994797,1334641239,1364218372,1526733544,-326412861,1342588555,-486216728,-11513336,82314358,79846656,-326413056,2123061078,108432136,292234880,-1705617505,978191720]},{"sector":6,"data":[1795618449,45113361,1673216117,-1705946351,342491937,762626059,291839629,1448591411,-1952821165,-1858449915,117333731,1586172274,-1705946364,342491937,276152331,-33319960,-351178226,59435075,1240138416,292228736,73304834,1468907571,1696500994,1380995857,-1705617584,978192029,292687614,292234880,1958743037,71731989,56007248,116790378,1969230187,55240707,-1202715984,-1706028701,342491990,1566465880,1426065090,1183575179,568872964,-402398460,-1034092540,635961346,1975519744,1468748573,-402158846,-1923414655,1347421255,-402513176,-1159200364,-1170937856,2078851123,861389579,1896778441,-1959599343,990997790,990409991,57999959,-2097114903,-75428669,57807327,-496178301,1896778470,82411537,-919469449,1381035314,1510147816,1864272728,1899921425,108331025,292363913,-1014821653,-537165556,-2096926191,-1880593173,1975519998,1896283728,1913060881,636945,292619818,512333651,1468731759,1393003266,1526845672,-1014817164,-537165556,-2096926191,1541958891,1975519998,1864272139,1896283665,-696955119,21890759,-27590656,856781326,-518092352,-2117902575,1812113470,1073837058,-1359615920,1824054067,1397772290,-1565923245,1375733480,-1566447536,1795618499,930418705,-1560280648,212018958,-518091993,106925329,1210518713,508580688,304323153,-1073006002,245437812,202804007,-1974973913,704804622,973239566,855929802,-1010813998,1458342741,1913060951,17676305,293202000,311821648]},{"sector":7,"data":[-9523049,1996424822,-2014818300,1979058944,708217641,108953968,510922994,299966091,796187403,2013222686,-1707606270,978192669,527745035,74901591,509318720,1135258631,-109723638,73284427,1586169718,-1752725501,1480364818,292687614,-1034068385,-1957363708,-27830548,-1089375738,112792214,-9654272,1347486838,184557032,1443460342,-951307622,116087585,-402360577,251527263,1583288690,180829,-1947432107,1200490590,-18430,238374,17204774,-164409344,39816518,-11091917,1461585526,-459648941,-1959113201,-1073018786,92999796,175454780,1963222586,1190628315,-164414138,38243928,17204774,61023744,113401088,-326413056,2123061078,1190540036,-1173186887,-1070399408,1442995597,1397825106,266639952,-1073006002,1217848693,1595007907,46292318,-519649536,-402653167,-2134659360,-1626248410,-1706012078,978192360,1977236315,197692166,-1341295158,1795618306,41246737,-919404112,-326412861,1586299568,521968132,130421866,-1034054867,116785154,1963069803,49060357,1048590926,1962938738,-1966525677,-485396210,-515996917,24379409,9562185,116786891,1946227051,1648263235,1014300689,1347469363,1308809370,-1525028806,1604567091,300000017,-1559109725,-274525715,1796112401,1273496593,300267703,56007248,243930218,-315485839,-2147464472,-32412890,243321607,-1205857941,-397410102,-2134662991,135359246,1888630527,1342177720,1342229176,-2131446552,-149853402,291649279,291636934]},{"sector":8,"data":[1959041536,113708020,334,291676760,1888618127,-1957210429,-515996679,712245265,292501131,299972155,1150099572,1452953604,-32216573,-2096008946,-25096978,57872755,-1989359997,1326542646,-16000277,915088510,1150095725,1452953604,-32216573,-2096008946,-25097018,57807327,1332539011,915006581,1583288685,1795618499,1198850321,1343350200,1342198968,1778590106,1975520020,-12392441,837534859,300353166,-1993942221,1204233759,1459618818,-4716770,3586559,-1995344961,-1995346626,-216961218,1896777899,243293969,855708011,-1957313600,49054700,1187403606,112787967,280402544,58002420,-1955590215,-1592660714,1586172399,4161540,512428405,126554593,-1962780789,1977224152,-1705963971,978190346,729141771,1929382461,-12138970,146690,121455990,-2143259648,135359246,1342177720,1342191288,-2131526424,-149853402,-1550833173,378081775,645927405,513741163,1376024319,59742800,116800078,1952452971,-12139004,197823234,855995848,-12154167,-443851169,180829,1992521395,1994028752,1995339498,268518405,471601480,657073693,959459119,268518404,941494570,808398623,21234489,470894608,87104862,1209008452,492510225,942300457,21379420,85528643,1208549699,391845387,841243939,1430270812,861334667,-635532298,1424720129,100369153,-472833673,-1481143506,73304950,-1852265426,984428102,973501144,-502959396,245491,-1962676605,-1034068282,-1957363710,73305068]},{"sector":9,"data":[-1976647629,-1034092217,-1957363710,73305068,38242862,21441070,-1034034126,-1957363710,73305068,-1976643021,31373335,17938512,-1070378416,-1734717360,1563320103,503317186,300359310,1065605939,-16616428,38767367,79790929,1918171523,309507,1526878089,1200166793,516103938,300359310,260823859,268376547,755124107,71106564,-1207730944,1200160848,395023106,520243083,109990851,-1960439321,1526726670,-326412861,-4696234,108462079,-1578309552,-899850657,-1957363710,1988843244,557624324,-1073084812,-1768360075,-1034068330,-1957363710,40679660,108461904,1342469887,672373328,-1034080673,-301989884,791,68676096,-234881024,1809,68676096,-326413056,175570718,-1710852353,200570974,309641227,865262222,138820544,1035260113,41099725,1562361907,1426065098,1586228363,1996430854,-71827704,-13754863,779624119,2015410175,1799322,80370944,-326413056,922703702,243298450,-1006104213,-1406793610,607968907,-16378252,-16381834,378210422,119411213,-1189614917,720044036,-1406744269,-495665142,1966750785,1443252725,-2091821562,292882425,-222364789,118917905,1957098258,219581188,106060050,1956270419,184549403,1578464704,-397015545,37552199,-2137230080,1074883342,720093235,1469575819,-1070348658,-218103879,1608120238,2056933705,185332860,1343059136,-4181101,1465274423,1492092648,645946203,-1879633557,1601212934,113925470,-326413056,10546305,-2037557418]},{"sector":10,"data":[-1202651296,-397410065,513259731,108461911,-402360577,922742611,113705294,334,1006803543,-2087318540,85566,21890703,1461587316,-16353537,753402998,519539695,1017818119,1341814016,15775831,-1198659504,312982,1471184525,1342239160,-1766293784,-1207958330,-397410062,-1766323445,1357677330,1444869259,-253210594,1619430894,1448562943,1342178232,-2081398808,1583304900,-1034033781,1465253892,1888630527,721453752,-1141601312,1448280322,1222416976,-1058525601,1015042285,-401771520,113705144,405021452,225755147,1444423103,1458486248,1340626768,-998155520,-1073020798,378213493,1085809420,322863104,628359186,405076609,1402347381,1458420200,1039183336,-1603010559,1946157629,113416,-1561831853,-339725329,16955404,-1097182640,-1339138232,-1845063935,-1017225360,1458342741,141986647,-2147423048,1014235196,108461910,1445399742,-1710983425,31654603,47168,21890695,1049305716,-2124995828,1948717055,905924353,-402651706,93257748,4030559,113706613,405021452,-1034068385,-404226042,1307072239,-303542035,-1072997393,1967326837,5027843,-326412861,1344703416,-320411568,-16222465,1996424822,-8329212,-1696929712,-397193125,1566108956,1426065090,1452010635,71731974,1560375528,1426064578,1183575179,106334980,1560366312,1426064578,1465314443,-1962516853,39291655,-1912517400,-1946645566,859898958,-1946287114,-773271097,-773271064,63147240,-2084532541,-1960439833,-498645195]},{"sector":11,"data":[-1933079580,17557698,-1996071285,39291143,1583335051,311901,1458342741,1996430935,209125134,-1895856920,-488510,1996425846,-8919032,-259270002,-1962654069,-256178602,-1829505025,-1962626736,-1930898490,-1899822117,266765272,-388774005,-1023163508,-410795890,1959922447,-122074616,-341445761,-372155944,-207355533,1583292325,836189,1458342741,1183522391,240552716,319047171,19727958,14320384,-1962897176,-1950183688,1451952198,71697162,755389971,-628948991,7858176,-628166517,-1962654069,-256178602,-1829505025,78773584,-388774261,722468795,735612120,-2082959677,78770382,-388774005,722468795,734039256,-2084532541,-770969393,-1538650508,-1185984860,-1510768649,-957659322,1944703321,132359169,1313449124,-56233137,1566465823,-1962931006,-754667048,-2084402238,-266006558,-2084371457,-2084372270,-661975070,201322533,-754667056,633572298,1438842895,1317792907,857203462,1364349650,-201198182,-921988853,243271797,-400551573,1569847416,855638730,336496585,1359471378,-389458200,-1957302792,106859500,192207627,1962884995,2107265798,1561064450,1426064074,1452010635,1959922438,91505160,-1948611766,1572877079,1426064074,-899814261,-1957363710,1796112620,922683409,-1545070444,274631661,184572136,-1825803072,-486125941,1451970872,240028428,-851312456,192043297,139904286,567099316,-401378529,-397349500,20835770,868905984,1796112576,1048789009,1979652244,-338545690,-1194183927]},{"sector":12,"data":[567099906,110090610,645929108,1576472939,-16773942,-1586458058,-1073016300,126758261,3604262,1172085248,102632436,-1194183905,567098624,101806879,703091206,-71964435,81159,-1070343564,-1894640477,-1016032762,-919383472,303304327,-397342749,99141731,-1017619731,-326413056,1459940483,34010710,745800211,-24381909,-405601615,308184459,1183441105,-1965519876,-2012061563,-1961748857,-2054488994,-2021125535,-2092559849,-696513282,705314432,-167283456,18022918,-164948876,-405668213,303465866,303531400,620659526,-1070862724,-443850914,1435552605,1586228363,138906374,46816584,-326413056,-2096734581,1946157695,815420166,1561618944,1426064074,-326898549,1586189828,138840836,-1995811189,39291143,-1962123637,1183388231,105286652,-1961736311,1178205254,-1961397754,1988822110,340036364,18240651,39260423,704398987,1996424774,108461828,-1979936536,1586232902,74877708,1418396811,138816258,755652123,-628948990,340232448,-1961470071,-1956708794,180510181,-326413056,-1962087293,1200294494,274172686,319047171,17106518,13796096,1913411387,990213915,343280199,108461907,-402360577,-1073020741,-1070922123,11266457,-1962254709,-1070923177,250105938,-196703748,-1946790263,1183517278,138885384,1381193078,1358198527,1358710413,-2080430872,-2096956306,-1962869154,1200294494,274172686,469517867,1174666838,-162130956,-2097151739,1183383762,-94991880,-1946401141,1174666838,106304260]},{"sector":13,"data":[1996443730,-59310082,-362753,1810430070,-1961497604,1200294494,274172686,334775811,1183446614,-27883012,-1962254709,1451951174,239534342,-1961863407,1204226654,-1946157294,1452014662,-196727810,-1946790373,146955749,-326413056,-1962349437,1200293982,207063818,319047171,17106518,13796096,-1980217719,1183447638,-27883012,-244095,-27884799,-60391168,-11272704,1996488310,1940220,-1073015702,1586173044,-62485752,-1979820405,1468598855,112652,1996432107,-92864760,-1694992641,342491165,192200715,-1962385781,1452013638,-388436998,-1070885416,-1034033781,-1957363706,116163564,172425046,-1962123637,1194920518,1396274696,721573771,-397389120,1347615433,-1928694017,-397346234,-259260943,990398091,-1962772794,519080902,-16353537,1996487798,-90969862,-396996526,49014892,1586230827,50694,-1956723061,147480037,-326413056,-1962248449,1346373702,-16353537,28836982,417878016,1958742784,175570701,-1207404801,-397410303,28836193,146955520,-326413056,-1962218365,1183385670,207522810,-1140293759,-2096139649,1962935422,7911433,-1794381744,1191147243,209125130,-1962248449,1077938246,1347537195,-1979856152,1451882054,1958874104,207522634,721573771,-397389120,1174665737,-128576522,-286764974,-62486023,-989964663,1183579230,126428680,556675,1183520628,-27882500,1375732229,106859344,-13107426,-1578629002,207522791,-1962391553,1175189062,-1207601928,48955393,-443826133]},{"sector":14,"data":[705117,-2081649835,-1957294356,1200292958,140413704,1023952643,175275964,1342208184,-376148760,1191116942,73304838,721573771,-1950183744,126559960,1183400000,73305086,-1961998453,1177227351,14320638,-1980610935,1996485718,108461832,149442642,-163149315,200824457,-1957858110,1468729438,1388325634,-112727984,301352449,1586231382,39291652,1347600427,-1946602264,-617873842,-636237821,-1980084599,1996487774,-159973384,1996443987,-227082252,-1946586648,1988823134,138709764,138871112,1575324510,1426065090,-326898549,105316114,-1962385781,1177225287,-28931834,1912882745,71731459,1074022027,1963476793,2013221650,1354771208,1343393464,1342177720,-1946259736,1468729438,1388325634,-121903024,-1980610935,1996485718,-11513336,1183647350,-622309126,-93420549,-60914942,142016256,-755969,1183576694,71697158,-297366192,-71571376,49180291,15752835,-1962385781,1468730951,-297391344,66082331,1444147782,67060,-1996434813,1451882054,-59310088,-362753,1996484726,-397389074,1586231466,-297366776,737171083,1444674118,239544828,-1961863399,1183516766,138881284,-955752821,-60857,-1034033781,-1957363706,82609132,-62470314,1187446784,-2097151746,1962998910,1619998,-1946259721,113017840,108331049,-1993800699,1191181382,-25263106,-2327547,12123254,1347590402,1778387610,1975520020,-1832982521,1139523627,-939762037,2119,-939762037,33557063,804807,-60912896]},{"sector":15,"data":[1200209963,239569168,-939762037,-60857,-1191414017,240128654,184554984,-16157504,-401671050,-1125385549,1593591435,-883038837,-2081649835,-1957292308,939460190,-1981463576,1078000198,-940423543,62534,-1962385781,1468729927,239545100,-1995417829,1451883590,142574078,225607612,1342208184,-1198382872,-1628831745,-230257920,972314251,527957590,1178142066,-15174660,1183516790,-195654670,469517867,1347616342,201045736,-1949272896,1468729438,1388325634,-149952432,-1962385781,2005601871,331875088,-162625038,1459123849,-152573871,-1980873079,1183576150,-128545802,-2097151483,1347551442,-1980313368,1451878982,-295779092,653936267,1996425097,-361299988,503733899,1996437503,-460396294,-1962385781,1452012102,239534580,-1961863407,1207896158,1589652232,-899816053,-1957363708,49054700,-28915882,1187446784,-1207959298,1861681176,-2081387522,2688700,67448180,-1258336215,-1258346220,496642322,185887232,-1206356800,1861681176,-1947169794,-1960242556,-1993796460,-1993798012,-14085996,2122579526,-1149499906,1575324510,-326412853,-1710983425,6264,180829,1475119957,2123040542,72780550,-339725502,-18171,1967828722,1606913016,311901,-402238720,1527224086,1195721419,1380863304,-50261504,-234822656,1073805056,1426117377,-326898549,-1900006644,396371648,1007625220,-1710918385,1013647464,16271047,-28915968,915079680,914948264,512627461,1586233514,-1395510278,-76281540,-143384516]},{"sector":16,"data":[792472178,-1023989388,997523460,1308936835,-1913358711,860288606,1017923583,1007186953,1006924847,921859872,-856998007,-1409225495,129589028,835328,-1359870194,-506394251,-13706869,-1207954265,1757347936,12777216,-1207536380,1975451753,-795193344,-1275068390,-854740478,-854937055,994072609,-1695910201,6788,-352204157,540847104,792462454,1944700277,1596304895,1178746207,-897336971,-2082018544,-504684342,16829057,632151019,1329422175,-1398770360,1228693284,-897345163,-1379472638,1029660453,141902915,470206006,-1242889983,1968067901,147489554,1946762412,1948269819,1006924535,-385649361,636092265,13271551,1606134786,617515777,121253471,-1404889995,74723132,-277405636,-8787634,1330923844,-242548654,1144892750,-1379109565,1968000829,13271494,1323494148,914956054,378077352,-1023995134,108265984,1622775,1996466549,-193527814,-1913227521,243333238,-1711210263,342497031,15279744,5499134,-1097200011,-1711152353,31662083,91602955,-956285030,72915489,-919401484,-150988614,68354566,-1710590976,342517149,314180017,-1948122368,-332494356,-298940160,4638464,115539968,304278096,117318087,854201092,-1205745904,800795720,1095936,-338603696,-644197552,-1711152383,31654332,1345089208,1342182584,1778590106,1958742804,743094360,47184,10532944,16816720,-1073015702,28853108,12079104,43667472,184673119,-1708165696,31678666,645251083,1345081528]},{"sector":17,"data":[1342177464,1342226616,1778450586,1958742804,-18412,1396021840,1950351843,743023112,-1072971733,506051,1426127083,1586228363,139889418,-402241909,-899825425,-1957363706,173968364,-1962387829,2078803526,113925569,-326413056,-402235765,-899825124,1342177282,106387026,-108989557,17134992,736822343,1200355467,1344244734,-109031085,-2145225760,141865209,-1705947053,31676884,-161850535,125071553,-947137789,130272488,1482317407,-1710787133,31675555,714793707,-352197806,-2134706469,1263218292,-92272757,84440560,1195048990,-1927449852,997228054,1023964634,58130452,1358959800,71797078,-402491509,1499335981,9484739,-2096098072,2211390,-1729625227,-320290034,258513663,-454552470,258513663,1439372394,1586228363,38243078,1946157117,232646659,182877,1779394714,-326413036,106334806,-1962389877,1204226654,-2030043134,-398376487,561122359,-1995809141,1183515255,-1995994872,28312647,566115971,-1710918656,342495080,113925470,-1705946624,342491349,149445209,869364492,1440607168,-1957237621,2005599838,16679682,1204226164,-402653182,1566443545,1426064074,1465314443,1443395211,1778470554,108956436,1448152459,8436305,16816722,190387306,-1961986880,1569391172,1364218626,-486414438,1566465793,-1191181110,859635718,-326412855,141986646,162947,182656628,108461910,31955537,1317732835,1447117062,-402492277,-950137600,580,80371038,1161515008,1445361156]}],[{"sector":1,"data":[71641936,1929510973,33601539,1342457091,-402492021,190516217,1494119616,-1996202615,1532887669,-352210749,13998842,1347949674,-402492021,190516185,-337152832,258513631,-1957358486,2123061228,105286408,443680003,201303784,-1996327744,-1103199459,91488289,1779394714,-899850476,-1070399484,-1957303317,2123061228,105286408,-1957308693,2123061228,105286408,141690115,1610575592,313949,-135544781,1458342741,175570775,-1710852353,342491737,578076683,-1962254709,41388815,-1957760765,105286654,117569539,-485994965,-49865210,-1191402253,1583284225,445021,1458342741,173968215,50495371,-141883266,-1962510845,105786127,1311444873,503636744,1604645639,113925470,-326413056,1443163267,175570775,-1710852353,342491737,427081739,-1962520949,92998270,2106264833,-1946680574,119408758,28878067,-1956749568,113925605,47360,-768358773,126476171,196995816,-1957313600,-1957210388,1988823166,-1972218,-711325579,-401315328,1583349719,313949,1458342741,176065367,-1962379637,-1008204210,1566466047,1426065098,1586228363,41911046,1393194239,1539239912,-16627769,46816767,-326413056,141986646,-16614269,-695529612,721833611,-1057298226,-16628537,-899850497,-1957363708,49054700,-12138921,142510849,-788111989,-773598749,-1948003869,-667220410,-532856205,857241343,-2143425600,1946222462,-12138953,13998592,1183519850,84273926,91357696,1929383685,-2050045,-524619740]},{"sector":2,"data":[1992440831,-768372223,-1142366325,1958742973,105286602,-997522039,1575324511,1426064586,-1957172085,1166739582,-773795578,-773795360,86724832,1929791019,1540945690,275956483,1347892735,1778618778,1594199828,313949,1480376371,-1957300757,140413932,50742923,-1706011897,342492049,313949,1458342741,175541079,-1962377589,1200295006,-1898214398,-1950118184,-372177330,24356339,1608224420,147479902,-326413056,1988843350,176065288,-1962123637,-1064435129,-672408692,1458342741,1988828759,39095050,-1911660917,-1030880673,-1962117493,1317734526,-202780410,-1543408731,1566465823,1426066122,1465314443,-1962516853,-388877561,1583332578,182877,1961101824,-1745059801,-466484107,12263147,5945752,276022075,-1181744965,-1019543466,12256883,5159296,-1056718037,410557008,-628359168,-401434952,-1581035362,212037560,744923411,-1592588125,178465882,211927827,1874371347,-1559033695,922692710,949621514,-1023286424,-957576363,1501702,384960199,178328682,1961101825,-1728037627,244006261,283323454,1972961341,7780355,-369030493,31654923,855706275,-569472823,1980663830,-1728037588,113707125,7733514,1048578027,1946168393,134661899,721420307,13560256,743835382,-1710918655,342492851,744898179,-2132642561,69182,1048830325,1963393290,-1069645817,-747371743,744636043,743194115,-15565437,915093877,909836526,745799916,1874337419,242539275,175627835,16940931,529246580]},{"sector":3,"data":[1150021355,1874371334,-1710983937,31680568,-1560132469,-997512090,-1701814037,342492765,242720082,17434311,113639431,-385670720,-527696011,-486306662,1743952385,113639907,-956235506,7341574,-1204355328,1513553775,1648266028,1279132460,306547500,744883847,-326412976,15611647,15609481,744634111,-479709030,289597953,-1034083897,1049296898,451608814,15613579,243779891,249786374,922745227,110063644,251592944,1049166101,-276102930,503569195,1520512076,2042628908,2145681411,1059837955,-41221517,922701647,-1705574220,342497460,-402591583,-392557022,-889068640,167840417,1024488676,276140039,17434311,113639431,-368893504,31654650,-352453912,342537743,250383189,-1710852353,31654864,182877,1241991680,-469284345,1003283660,1241991687,-955823609,622305286,-2012821753,-950906599,1259963398,-2046376185,-955820519,1746480646,1980155655,-942555367,-166103034,1465109457,-1090066757,1465057298,1595014958,1968131931,-1017421835,16254662,-83442174,113703424,-1018167044,378065458,28583856,-1968592407,-1273466090,-1449072634,630326982,33867266,-1006627645,-1094198104,-964920121,-993212724,-1001339824,-944404400,1662493702,-1375287393,-945855721,1662494726,-1106851937,-948300521,1377291782,-771307652,-955797737,-1340595962,-1878603860,-878736104,404491904,1554553345,-389868438,-353894323,-397970688,1122503528,14673920,385825907,921179894,13887488,1397764211,278549073]},{"sector":4,"data":[1511287331,-10986663,-401148394,-1159200739,1343714048,-1705881261,200570052,1482381658,385226495,-402651928,1354956961,1927829334,567058701,1182058027,565329547,565067323,2097352052,20807681,1157825909,1024257021,712114184,-947650933,-940047609,-1979711740,-1994273738,-2094937546,80086982,-1305048828,17155617,-1979890295,1049166148,1583292848,915129176,1015030190,-2143652860,91488572,-335711189,-45839375,-131334517,1946434944,20807690,1157825909,-1980896259,-265552572,50414729,1942174704,71139368,2099971956,-336098307,-1338603071,-1950090975,-2145275850,125108540,1006453899,-117017661,-338164797,723022874,409027,-215223438,-1996421946,-265552572,50414729,1374880752,119408215,-81002869,565198473,-1950338233,-202780213,1499400107,1552487560,-1980552195,-217906852,1963474048,-11761659,1284047851,-2081215493,-389872698,503709801,1364414471,915101526,1015030190,-397315068,1015021989,721777665,-286524044,1949040267,71074045,-1897388172,20742145,-947130252,1189660203,-45315328,1330571729,-56232963,96880454,-45774591,-352238455,734497748,-972458810,1166606597,21268989,565198473,1532583519,113444696,1448085278,855720680,518336,1577125062,1405290328,138182737,1552759925,-44291325,253639462,637891841,17761793,16219267,1552622196,-28900871,141934603,-402586426,1424687193,-772322165,931878633,1124221953,1593303619,1015038699,-1960217342,-1072956580]},{"sector":5,"data":[1200163189,-79394558,-1962867514,-561250996,-1014769365,149521155,-372119087,-2096417304,-119405373,276086795,-1962491416,117570396,1963080832,172425475,1354980185,861360467,-1948742720,-145979448,1106861191,-771862647,-1992324119,38111493,-503135357,1532583924,1397801816,-1839771055,-1948568685,4843763,-561298316,-1962904856,-270272692,2089544145,119408377,1963438066,-27983390,544592395,49769603,-141881228,503729999,128316167,67015,-13432085,-939950969,261701,1532582495,1407828824,65734145,185015814,638088694,565065355,-2096904573,1015022574,-2146274300,91490364,-335711189,-42718223,117687939,133575619,49185731,1347302403,-45839529,-131334517,1963017529,1958742791,-1017618685,65609478,-1338078463,20807713,-947188875,1006454059,1948365318,-1304524006,-1371653343,-1962118111,21300167,20807831,-1986592396,-1021202370,1448170320,1190234967,565065353,565196425,565327497,84149446,-593297402,1272482583,565583497,565714569,565845641,-956037178,2065808390,-1274624243,-2096645599,1048578030,1946162936,184608773,-1142422549,1499356938,-1279043493,62109698,-1207651400,-1279785549,129218566,-1207323720,-1279784269,229881867,-1206996040,-1279782733,347322387,-1206340680,-1279780429,682866715,-1204636744,-1279773773,900970548,-1204374600,-1279772749,968079416,-1204112456,-1279771725,1051965501,-1203784776,-1279770445,1152628803,-1203391560,-1279768909,1219737671,-1203129416]},{"sector":6,"data":[-1279767885,1286846539,-1191201864,12124339,-1288574064,-1878673152,11741931,-342882375,-1191136477,485200896,12124339,-1290409064,-1744717568,11734763,-342359111,-1191136505,15439876,-620035913,-645463435,28333291,-1576882115,129704384,1431104256,870968459,1438866943,-1779700597,-1957313699,106859500,74767115,57999114,-352320069,-351555291,-2096713455,70462,775620724,41156846,1515718065,-397389155,-1014059415,-13444210,113695114,-1962925632,-484327154,-1948123390,1003326419,1962995214,-326413049,216784267,-169617013,238751627,-193658642,169249107,-792833279,404396567,113644650,-1711269746,566705504,188645467,443848705,-2092796184,70462,113707125,264,1398474987,588946003,113644650,-402652914,1405352390,-392495176,-396885998,-5242866,-1152364464,-11329081,-889189834,1117409366,-1960720581,-628220176,-1073078356,82314612,1592978176,-796175677,567084724,180077402,1389507328,-201862605,187744896,-1946913344,1490157506,-109723637,-70326077,1912604392,-571882751,106123518,-1014823138,-18644215,1963522688,79921923,1945847016,1465012495,1945826280,-1273561340,1499094817,-1017619705,-2081649835,-1847065876,-86316805,1381192051,147030865,28108883,-385986931,930283447,1593565416,-935984298,99477537,1776813683,98953467,1526828520,503405145,915087790,80093614,-44267263,565196425,1552544555,-2132255999,-402099201,1499136362,-1946592422,1455644133]},{"sector":7,"data":[-402563608,-398065044,1407714731,516120065,-125085945,100455144,-31129591,-1949791233,-1020527268,-654897033,-1962872088,-42718217,-385628541,-1957691216,344652620,820567947,-1946252289,-1947104298,1344565812,-947170474,-1796684245,43313404,-1957142949,-377225652,1458163976,-396450317,-1957102795,-394793998,1398537335,-863285167,-186116982,1515936254,-24429966,-2013502744,-82581257,-147114101,-1578627209,-1959293958,-1591627714,-1331486286,-62527455,-1948873902,32696567,66554714,1015021940,-1959561983,-1037304508,-396940174,41091163,-1956708725,-293339835,99582725,-218102087,1157844900,-45774339,1166669867,-2080929023,28312518,-1070349473,-118949141,-78870021,-259303741,33287912,-1017185412,1458342741,-2096597365,1946157692,-399209717,1183579095,-79429370,80371038,-1957604608,409086,112801650,138182656,-1048378507,-44266748,-650389461,-248831118,738102086,1319433208,-1991309943,80149828,-45249791,1300875307,-1980158979,-117243571,-1017423368,1465274704,79234846,565100032,-1390299457,1149830535,-498644994,-1106363914,1090614561,566103689,1482251871,-2823997,62843083,-386292760,1354958379,55588978,1914166278,-569472210,1256738839,124999680,385226495,-1560264472,393353180,-1761630744,8579150,565327499,-386727077,-1813511854,1478552575,-1947721749,-1308228609,1072207393,9627649,-8591210,-569472192,518167,186113187,1455642816,994122467,994341576,1981918734]},{"sector":8,"data":[-386823409,-829751236,-1461129077,787191299,566756923,501745270,94759161,-1796673397,460494339,565055035,-164424332,-2030038040,1962281934,1995520778,452614,1241042571,189842270,-402098698,636024801,-1960973568,-1375327290,408865,80088946,-45840127,565065353,1149890603,-120920063,565065355,1464976216,-1305048238,-1338603231,-1372177631,51606561,1015021940,-1947044607,-400445930,1049165836,915087790,1599742382,503759705,738102023,994573692,53441778,1055392116,20742394,1284370804,-45339903,-1054095477,-1946619672,-787706895,-140119063,1149849304,17090301,-654899831,-1957704213,-1949357110,-45315598,-1996421946,-1022951091,-1040839542,-167021456,108298433,-386179957,1388572513,915101267,909844910,209068466,1552618634,735182843,-286524044,-1017488546,-102111145,565327419,-29686158,225712242,-970209397,-1996421690,1149893957,67421697,565327497,-1017135093,1381061456,-107091881,-1946696061,870222787,-2095608887,-1024982334,66751235,1166606975,-388069378,126026718,41716482,-1996324983,-561250723,1594070248,1482381658,1692948163,-10712327,915129182,1015030190,-2146012156,91555900,1962892344,-42718459,1949035755,63341565,-1007275069,1381061456,-402650904,1499071690,868440155,104343232,259260614,-669086938,-919385321,637536744,-1156064607,-919339009,1475119957,-1957670063,298629628,1493113064,1566529883,150634691,2088965237,980680951,-352306968,2105751093]},{"sector":9,"data":[460652548,1552624875,49971451,1207365493,-378191863,-1744287862,-1014767407,920126220,242359611,39664438,-1070397321,-956857112,1455620356,-1946723189,1485699444,992390654,1998696966,87766551,993399410,209125957,126570062,130483337,1263206401,-579407045,1143692950,-146503175,130484085,1149829121,-402603015,-389348695,1355481741,544490326,-402535552,510853155,-396930479,326303824,-402444568,192086035,-402607128,57868299,1610155753,1482578266,-902394941,-1476097247,1026126849,611647487,544725051,478745460,-2017252541,-1980562466,-902395644,46367521,101841347,-561307190,-1023229053,915129337,378216906,468197836,-1961331968,-2027829194,-400438762,192086030,566892091,378078327,-1007083062,27788427,1950360180,67013421,227231992,1946272246,578044169,-117194493,76148971,477348667,-141835893,889452683,-2096904573,-230949146,-695481738,76137465,124961595,566900361,-1946193431,1397801942,106387025,915080990,478880200,1963049974,38243092,989856301,55014854,63341367,-335616381,1140755429,-217897356,-1007281013,-1946913535,36504135,1975925504,96963365,1200160770,-2096133374,-372177983,-588536333,57997099,-1992980146,119654974,1532583519,1474937688,-1588178696,-264560184,192027252,-385905688,434635259,722791168,76105926,566769289,400307849,-385911832,1593311715,1364443992,119408215,-389665898,-667221497,478889586,1963049974,38207757,-964479229]},{"sector":10,"data":[-18447613,915139819,-829742646,566758955,-293344815,67013378,-1510736392,-939130372,-603586271,-903967977,-1982332127,-1960719842,723635214,260655563,1532583687,-15800125,-402555160,922681775,99099082,-905539840,-619986143,1048783732,1946165710,-397191637,915144217,344662478,567154313,2005468303,39619070,15734411,-1962650487,1591643091,385530563,-1021903685,1442259433,-1070338933,567150137,1586229876,1963407622,385660933,99091691,-899837184,-11141118,39815991,-75386645,1316165496,385940353,503759861,-1185459961,11599871,-1359807605,-789069429,123297608,119408323,1456180049,1911091851,-91531265,-784214389,1604711401,-1022928546,385923923,2080655161,1107971,-2130263165,1914140923,-389850129,-93061208,1342192104,109560715,126427598,-16496697,113465599,1364199198,-242526378,-896810101,568908427,-1812296705,-402491645,-1953234995,-372162095,1583326707,-1022928807,1342643718,65585203,-1022928896,1946173315,-1957277391,992346743,1914816566,909846051,427237836,201212929,-1961527872,-914341617,-28539135,141871931,-2014765306,-186980106,1388534110,860952459,-1964490039,1398360831,50487179,509658,-1950131621,-1960719818,1946265604,276054027,104580611,141828556,567031435,566900361,1465274563,1005929192,1948365374,67487268,565329545,565198395,1049166962,-276618832,-16398585,-4462337,567033481,-1991246293,1482579772,-903967805,-165704927,91488707]},{"sector":11,"data":[1979710339,113411,-1957444789,-1994553572,39619356,-1996333689,1552613980,-937542910,990474785,1931594782,-25720573,990010763,1914816542,-870434039,-1996262623,-1017381249,567031433,-64313,-1960720221,-901871112,1324821281,113718665,240,-1090513735,1049171712,-4513330,386316543,-1425596922,-1817465965,-503314939,1170671606,-1023409926,942063667,1946207750,512435729,-667215912,-397736844,-1591345145,-4515878,-1960421633,-1960720330,-165901365,125043139,54817859,1005775859,993161944,-2127661095,1915265275,-788823802,639791656,565845563,992348018,1914811934,507192852,225649074,-2143084661,478740939,-336391175,-2093546564,-427621434,1588784126,-326412861,-127604730,-1962522997,119408734,-385987096,1560803414,-956300086,1645705734,-1912158441,-948153833,639079942,-1241069800,-887586025,119408214,-1559870325,2025726420,404396567,-1866591126,404396567,-1231416214,1963717648,1350546441,-996500912,117314666,1577525718,202304203,106304618,12072587,914961604,109846992,-689430062,-384925696,1577521152,202304203,132781162,1444178444,533305862,2141262954,1038124544,-361627126,12066443,-1560131701,931865042,567293577,1489374032,-1014819724,650153476,154027147,-1962874362,38243127,1978197739,-1992955806,-1317683189,1790394522,128610836,-1957313698,-667484180,-633929961,-972620265,106859264,225762059,-1996337269,51894286,-636581617,-385896425,-907518033,32434344]},{"sector":12,"data":[-1711206424,342518703,1780680346,-972634604,110034944,110041050,-899868712,-1957363710,-1866574100,404396567,-1705110422,342500102,1347452852,1791269530,-1949606636,-1391992052,1494548305,-389285406,645922906,-1695874839,566705504,-2096736317,2216510,116796788,1946288361,-803290074,2139825697,-1173452008,1993292544,1329276431,1393128208,1526730728,12336779,273648422,117441512,503761759,1364676871,1780003994,-819242732,-1070339631,-1022907405,1048774231,1946165714,-803290082,2139825697,1334519320,516893454,-666990329,870961431,-1985219648,-1944593858,-402601698,1594294336,-326412861,-1962467834,1586169926,1942174470,-1474631640,-1962391925,-863304098,-386341400,1183577706,106859272,-672609141,-161683208,-1962391925,-1863842210,-899872771,1465253892,856104454,-385419584,443879424,567412281,-1006234508,639750174,638484363,118509451,-372125909,-20993037,1685760,-594826509,1780034714,1583286036,-385419581,326435072,369421187,-1270969593,-102713344,994066603,-872844549,13180556,-326412853,-1559869813,-899874615,-358547454,201336064,2080819147,-954627305,-854093306,-1308178663,-954610409,-1239952378,-989411559,-954937567,-433995002,-2113485036,-888597991,646448838,-1996044532,-1961885658,-1593833458,-31195130,192069947,400297609,-401088861,-1144848368,-2115332094,-1592497652,333971696,-593378309,-569472233,-246355945,1642660723,856081394,15770560,519764456,-139401209,133431528]},{"sector":13,"data":[-326412861,663553734,-921269251,-1911125760,138840871,-1960341341,243861070,45623186,173443840,630261446,-1878604286,1927811109,-1143305216,129574797,-2069305344,378214514,512436110,244000656,-1746393198,-402165116,-899874704,-2031550458,-326412815,-1962933832,113642070,-973003375,539332614,-1946143512,663600090,-402651207,460489817,663623307,663756427,-1960340831,132318798,-1962385781,-1862219498,-393986840,57868328,1576087273,1442842314,1935715048,-1878604283,-4521947,113151,864224232,-154212133,17774217,865911646,1346392256,1788744602,252102420,-1660944383,-326412861,-1090211753,166405404,1475119957,549388976,119408165,622528008,108432726,1587914236,-899850489,-1957363708,243271404,-855104229,-855226827,675284533,1792167834,-2146798828,19208974,1077818573,238341416,1239951428,1975519802,1961101832,-352209916,-1545326078,1560749324,-385874742,1391063122,-326412816,-402237610,-303522442,140414225,1023821451,-478347265,-1577055512,1594303771,113925470,1355516672,167995274,-842237724,1048577845,1946166602,238603525,-303553998,1976699705,2025851833,619619253,-301581363,238341412,-706205748,621847353,622528246,-401443576,-16095049,243271540,-2029968101,203327962,-368145627,-334066908,552097828,-298385647,-234451164,-1998900444,-2010838242,-400225762,-1070399377,-768358093,622528246,-854887420,622593589,-1679294031,116822528,1946297627,-4566517,104189439]},{"sector":14,"data":[132850976,-1275068488,-1323242752,8185984,-1279116454,-1978371328,170199838,-2146863909,74744307,621485704,-2003632205,-1994057186,-1557850090,-1036311282,195038325,1954654245,-1568601083,-991353589,1381060608,619845259,-1593793816,-1056758550,571672107,561567991,723839649,285617089,-1592362974,-1039981332,571934251,158914807,723840161,352725954,449892642,621454016,-1017620134,-766731695,1951994986,-1157074422,252192011,-840944179,667420213,1792167834,-850955756,885899317,-1708670962,566705735,1077458920,-657397552,-791621476,270989280,-1672438491,-1751513230,-350107842,1050515973,902635975,57712097,-840944179,619843130,986569867,948103175,-1612070053,-1580561426,-487119604,302022661,-153842958,19208966,-897121676,106387139,420550399,915144499,28845298,-1547293952,1448551702,1577071080,1946041183,622240028,142131211,-970209749,1308623365,-956053757,1191183109,-349890909,320274393,1583286041,262465731,1894480499,621952649,622069447,211877888,-137852123,8390119,-729091566,-1047799157,-2147096841,-1963847168,453441236,74776869,-695738489,623517321,623654537,-537398645,-1593830424,346236176,302394149,621978405,623517431,79224823,-829730816,235132811,369304810,116794604,1963336987,171868194,-1988820955,419239679,420419327,242501720,623523463,1049091831,-537451220,-1950102549,-1591405538,-523164400,346276611,303956773,404634405,1915057189,236862216]},{"sector":15,"data":[1913353253,440303672,-1250623451,195085035,1954588709,1967171756,185499831,283852837,-1473967200,-1466272767,-2136640254,35982094,1038636886,286719776,-346136807,440303763,-143327195,1442806505,12119179,-384925685,871043072,-1192457387,736824064,-370295831,-1957302990,184596716,-486125941,138840840,1913004037,6196199,17696502,-1962773249,-333563105,769160448,100859906,-864943948,117374500,914953976,-1102044712,446306218,1477732888,525867,540060,-130217603,-1660649729,-1650671565,-622328458,1512796912,100751963,646643720,1397882888,-957872781,-1105759504,446306228,-1961596392,-2145265610,-285152986,385353414,645974784,-370212631,1426124124,1586228363,-166991866,116120371,-1947432107,861275742,1950587328,494224154,11810443,1140448955,-1390658749,-4523660,-532835329,-401675271,-35085450,-262281052,66503400,13796291,46816606,-157133568,190464,126602077,-163676007,175374848,16137856,-1958709996,-617414057,589345170,-1324843584,333117229,1457059779,570277457,-1185538936,861011978,1542584274,-1829636205,-2008141820,197364484,1491826138,1314506283,-561312632,-373072320,503711805,-1728148729,-1053034237,730931571,735052737,-2043629320,1916091397,1326244626,-1057094262,108149308,1106567746,1336553904,816898442,-55643139,48310849,14057684,119659455,-1303473469,-1342173952,106058576,-1205924322,567096639,-1004631762,109850143,62529478,624932896]},{"sector":16,"data":[119480781,-883401894,773739088,532944581,-853196872,1482301217,-989942581,-1557258005,-1993465924,773832222,532690569,-1038185426,-1658888673,-1405769541,-1057037262,-1073489036,-944187389,-1948742111,-2095096313,1444808174,-1207876471,-75426710,158480338,940899201,-944241805,54823201,-1038184914,915090975,-1959911488,773832222,-887112543,1441519337,1465314443,-1952958488,-1070463394,1973214952,-352655101,-178788269,59046785,-1477966989,-1766171662,617587232,1597152488,46816606,550163712,-870265660,-741203759,552226080,-970923835,-423157540,551208992,1411525313,-1757273543,563301921,-1017931176,-455925217,564023329,-1176832256,1055588352,-896804105,-352321350,-1948584139,-1959793718,-337971254,-337971415,855632118,41167676,-392417988,669528862,-286764493,1949056050,-361830141,1496521192,-1652522821,-420979595,-779398656,-1962876696,-1070376246,617823872,-2146995200,2413630,1048774521,1946166491,-1152298458,1491608785,-1152230911,1541940437,1364941313,-776252592,21358628,618249050,1510033896,39510666,1931802118,637681921,24323319,-152547262,-811574500,1925186084,1364414475,483977298,1482381658,208846850,619452041,619318921,620109449,617547462,1085326080,-2135948565,617547272,930212035,950190130,624402981,-1574619486,1877485453,921195058,1949056050,-373888765,1479696872,152502098,745691673,1407763082,-1960480225,-1960515058,-400233450,393415420,419239679,1932799721]},{"sector":17,"data":[16417039,185168641,-2012908334,-1020998122,-1595311127,-1073077042,-1144848011,-637337600,-92944130,-963980409,1939652610,-355382783,1939729105,-1060208636,-730610878,385860234,-864937719,-2134281277,-999095046,-487171408,401330315,1009889512,-390761151,1756901854,2043808513,1003488002,-2002423102,-1960521706,853534938,-804375347,-1070215897,-952197734,506842401,-1751505711,-853424322,988332085,851961856,-842450227,902684725,-400239330,986526393,506842617,1036854489,-628403261,1530044648,-1022413619,-838864152,885899578,-400014322,-360041818,-1950102390,-1960676338,-1021152746,79987456,-955112726,79987489,-955116054,868712737,369045027,1606648267,805252643,13844099,839414784,-534869011,858783511,-661939776,57994506,-889191734,400569995,1594121471,1465303902,-352321345,47599,45731563,-1177949440,-991231996,-352319815,17349055,179944171,-1179260159,-1326776052,-352252231,17873323,2054596331,291512101,-859942864,-1630269079,1435672139,338796148,354928719,349115622,209781964,-1130230655,-1056391969,446218837,262930432,-1240522297,1415976042,-1241775645,512431210,1878988768,1023520776,-1338130382,-326412801,-1073064106,141924248,-1710852353,342500621,-2096734581,1946157695,-404821757,-1995944309,1183516751,206014730,1989012786,-768388340,2013539245,1200177236,-1830619378,273123757,-1014771669,1542054404,208140178,-401979511,896675527,1325811593,130504564,1207304192]}],[{"sector":1,"data":[678756873,1912732291,186545926,-166038080,1963002183,-1295283399,1122538242,-1931899927,931725911,-351635711,-412358360,510972427,-1070378416,2012693145,18319628,-771028393,175396954,-763164925,33194752,-1008149641,139365276,-506335950,-1048321583,-1961981690,-379691226,-379780993,-1957304531,1381060844,-164407466,1317797515,139409926,1431562613,-2096577149,334171843,-1014807227,-137917692,-1946645721,-135099450,-1947204825,1194000454,1002667010,62881031,14058488,1532877538,1744291723,-1946645748,-135099450,-268235673,-250396925,184698763,-1976863552,-752449522,-1899625498,-1948283968,-784333242,646685664,1499094623,110058840,110044813,637740687,788473483,-1628887411,1036596198,-1957311349,106335212,856186507,38222272,1462429812,-152865016,-773664294,-1948646430,81989703,1208895235,313949,1023410616,-1957314509,-1957210388,1334511198,-162012414,1967130951,-1980353752,2005337719,155710978,-1961986944,1156075575,987978212,-337390104,266883125,786651549,-341978136,760080425,1066125451,-2146875402,-372174220,-1957434927,-272439073,-503004285,1539869688,870961473,38244032,1583328243,182877,-326413056,106859350,1961615848,71073823,1283463797,914950149,1149968906,570860294,-1995192701,1579288630,182877,-370802455,-286661180,-326412827,139889494,-277294581,570824233,1586228338,-278992890,570963595,2005473161,1959922434,135659787,171346722,-347936734,80371038]},{"sector":2,"data":[-326413056,106859350,-1947239704,-967638409,134280710,1526729960,-1192302872,1566441675,1459618506,1048597766,1963131126,21948435,1364330064,1785044378,13607700,20506968,-617412834,430507718,24373249,343221820,430513800,-1157536280,1211891728,145950580,24399676,-20018354,855799237,1238248393,855690175,1448319424,1032886869,-966975033,1681670,1978809178,-807305205,-617365453,-1414812757,1960459161,-2134278141,1948303862,-2134278141,-1973691769,266900475,1948662785,1961101856,1623324188,-771025035,-1718414475,-1551900288,-846004021,13305403,-887211571,1965243392,-1463189499,557591019,-511702923,-1597406985,624696811,-1040840843,-351242880,1965440018,549582349,-914356875,-385553536,-162601826,1685405889,-165770605,-2134772224,-75496075,-166824958,242557121,1964309376,-787052279,13607680,-1040823317,-2026212095,150634714,969752436,-2147431674,125109498,-820103731,-2144408832,91489018,1964309120,401101336,13607726,13702793,999938699,292838099,1947531904,-467277556,855690175,-1414812736,4712619,123551181,102679391,3926047,574414986,749994868,869698382,-1002787639,-1073083532,-2143160352,24390908,-2133199026,259337468,1342081870,-1069932368,-55643139,-398392972,-1021378555,-1408373844,-76275652,-143390404,-210499012,-1013421592,106386944,-157284578,992512,-809503861,277760,-276626570,-372141820,-1930910221,506624,16137856,-1157402104,-1014366192]},{"sector":3,"data":[-1946709528,865686210,1522674626,897565499,-1056718197,763347771,-921988207,1269048190,816905440,192195315,-1331024208,-1951730896,-1146817589,-947183142,96912171,1583286016,-338036797,1950983395,-1439780857,-1527525117,187385272,-150701614,-2144488230,134280766,-1421344395,1689502347,-1073024010,806093684,-725317974,230983178,-341102544,13352630,16137856,-1156877304,902627535,473550087,-1600504371,-2011052227,-1407067618,81304,1015022965,721581104,1438880208,106359947,-393212952,1381041282,1510242536,1088153689,377947251,1048585460,1946166602,1262387211,74776613,619976327,102664515,1085335589,243729523,-1992088334,-14351330,-15139562,1996425846,108461832,1378479848,102665040,68586277,-389467355,1483872341,-2096839805,727187665,-1055172413,1911096179,-561293854,-1961391834,639960590,-2097000567,-897121085,887640824,1252088087,584381989,1926811844,2145931533,118947607,-169715431,-397341717,385816434,-497477373,385834485,1577523475,445021,1440887017,1465314443,-1890654202,-16529944,-1004995306,-1047786914,-1962548671,532940894,1446480678,41913126,79922007,382855251,848926355,342616319,-233403576,1925317412,-1949791461,-2145061858,2443838,1048578932,1962943819,-337695996,-553431293,-907476109,-388789279,-160234712,1431919195,1183578450,378660870,625647961,-1004350218,225630416,387311697,419895039,-336207271,149442827,51838743,-169715431,420681471]},{"sector":4,"data":[1583286109,576093,-1643723008,-953545449,-585648122,-704198870,-953478121,1545107974,-2147039446,-882358248,-11117080,-1021779178,-919383728,-2145251935,2444606,243992437,329327121,-1547621598,-784326115,-1983380504,858057230,571449801,625819264,-1962445568,-1591601906,-1054137833,1075978147,-939267887,619449993,1405311065,1448235344,134661975,-385876187,1583284231,1532516698,1275512771,-402653147,24482519,-1832458045,571281033,571414153,295944243,571843362,-1558046301,243868187,378085907,503718423,-826321145,1030436,-201539533,-955818070,-2145061370,571580800,571678347,571805323,571938443,1493755989,-1946203672,-1960515058,-14357482,1561918742,401876735,861098140,119408320,-826322601,1030436,1504375804,113706847,-2139085578,-1574646110,113714384,9546,-100707096,-7189272,1528367382,868457816,622568128,-200882237,-953473257,-1659374074,686345004,-401443694,115890449,909430058,902637636,-853380578,1245610045,1383399461,-768358093,-400403781,-1014824731,14673924,-400401733,-1014824743,13887492,571285131,625819264,-1962380032,723653406,-400420578,969746881,-1960680930,-2145251554,2444606,512428149,506143255,-1494736363,507104553,969745002,-853388794,576859704,1108752845,1044040994,969744925,-853396970,675298868,572406221,104451362,952967770,-853382610,575280697,524171981,372886818,885858874,-853000130,573185593,619323019,-855632664]},{"sector":5,"data":[620240437,619454091,-855631640,620502581,734215629,-1188947682,582623826,635982114,723446528,-1188947170,686301786,-1190956544,-1169087894,233316906,1697792,902628210,952982496,-397229305,-849663735,-1983705288,38766871,1245610179,125042725,625688192,-117345280,1034596803,1991975601,-1889904606,1200556359,55021323,-385529969,-1431240543,-1155354307,-437575037,-2081649835,770182892,-228684404,-722984271,-15043440,1996426358,142016266,-1710852353,342502482,-1961691928,147480037,-556340992,326435240,54801869,-1993823768,209715524,-1476097535,-854625008,-402045899,1149839510,269254663,1036190858,74842111,-1869879047,420026111,-373096078,238804636,343679505,571674171,372969087,142352917,571938363,-1007091073,-1325349896,296828313,1478653627,122130266,-2013182065,453428751,1347551269,1033482699,-2084892239,-1142625502,65741443,-1977452869,1975519751,-368145655,-334066908,-1957248220,1245610227,74711077,402138879,74719912,402003711,-1962849141,1048577876,1946231440,1946724366,-368180470,-334101724,50916132,52566286,-1994253546,-1994069490,-1994067442,-1994068970,-953879530,-2145061370,-2000669824,-1002536956,74711064,-11867810,1407050729,-52565934,512318298,378085905,-1581047275,-1036312043,24258676,571843474,571938441,571414073,295770226,1958951714,-1828621807,-1994255965,958534430,1914834206,-1578515711,-326412835,-1953838104,1451954782,-5249008,-1961992565]},{"sector":6,"data":[-1226306474,-1889146625,28565620,425603,-872542603,-1558048351,362881561,572236578,625811080,1074415243,-397933452,1183529548,175390728,152502088,-391155175,113639436,-402578100,-899810188,329318414,-1556066270,-224189206,571973924,-324845488,620012324,571543179,378227025,1246896661,295944243,571843362,-1558049375,262218259,571974434,-1894882840,-1893591802,-1893592826,-1893591290,-1021177082,-387151019,-790066652,-402295666,-883033109,1440540649,116845707,1963071870,-1826190791,410165285,-1962385781,1950549590,712264467,-633657224,38937719,1523595988,132848759,-1965935805,-1999361328,-2011663330,-1978108650,-402540845,-899854421,-1645674492,-326412836,-1962391925,-790100402,-385649842,-899818356,-956301308,-2028472314,-1957311697,-402237460,113740200,9546,1955483368,341740898,-401582451,1387987036,13953058,207523155,-402106739,1656422476,12904482,1527200205,-1710802483,566705713,57816436,-855588888,577373753,1394760379,-1710802483,566705713,1914467419,10938371,2122514864,57933830,-1574614110,904406346,1566509052,-385871158,902683656,-841316601,1438844725,113765515,9546,1955451624,-71702298,44616541,547896436,1284327796,156536067,-841381038,-121960651,134542884,885850996,523619591,120966491,-165348165,57966596,-855165747,1692933941,1122521088,-380005888,1552678297,627828737,56374733,-1979577216,-1951143164,1525155676,1547029797,537690121]},{"sector":7,"data":[-1494547318,147030867,-853591603,969759549,1394524959,504415107,1742379603,-1144843158,902636796,576371463,-1661195544,1790641010,574273826,-1660939544,-654900622,620280771,-1157155379,850993746,658033954,953014663,1039899151,-1195171385,1844051972,-1206621605,1844052228,-1206621605,1844052484,-1206621605,1844051976,-1206621605,1844052232,-1206621605,1844052488,1427401307,1183575179,106859272,913771068,53508168,96469952,-1169151840,263782401,1364349696,1784947866,1380997652,1788641434,-1828260332,880017701,427759359,321728235,-372380928,540859076,255654259,507311474,524086388,456976500,1402136947,1602949003,-402542590,1918582651,-468588326,313949,-326413056,119408214,1955360488,140414219,-2096728437,57804030,-774209559,-1795215642,-809815798,523619584,121490835,113925470,305207040,674307633,-17635279,199754731,451515391,120966436,-1826345496,-839199511,602408757,-622226652,-326412806,1955338984,105810871,1929705859,-367096913,286690084,-502602974,-333542616,353798948,1279164450,158597157,625819264,721581312,600828122,-855584837,-845996235,46816573,1048594688,1946166602,620280772,-54852637,120966436,33611499,1728263444,878642483,171239686,1963668290,860032308,355763214,-988007275,883957044,154408712,1007825699,-900787149,1345585535,106058067,-617412834,580001417,580132489,580656776,580722312,646651528,427691648,68675632,100708584]},{"sector":8,"data":[-617393328,653968270,604247968,-1675741057,201487394,396502656,1482423044,14673927,1962951400,11790341,91411947,-352271640,-2130935602,-2143549067,-1511460236,-2134840576,-1149894660,74780732,-521404752,-596312260,-167723288,-14508794,-1544879499,117465832,1482381658,4122819,427689718,-401574911,276138679,427697792,35907791,-1294377495,1212213249,-1668485144,1006642408,-1660652034,-1648115661,-1957277245,-1106713653,-320329843,1591423744,116835161,1979654812,1343023880,-344021320,-1850191856,1342892926,-344027976,-1766305788,378163838,-494921346,66748419,378209908,-788588432,-389851046,787021751,-397360381,539819951,58461244,1476600040,284918723,-1662516356,-1920497409,1354973991,427689718,-402098943,58017691,1493141224,-2132257085,831307519,834469505,942545780,-2096794620,-253033530,833486465,113640819,771760796,-352234241,47441923,1364443998,-1843492010,132350754,721422521,668253899,1577073384,-2134680743,-14509002,645972931,-1107586,-166170570,102333958,535298932,19654657,580718334,409994895,427697792,645972959,-389080706,-488046315,-397257854,-779419161,580001419,580650742,-402164481,561119273,371922923,-754769260,226415115,580132491,1912607976,-1843492084,4974626,-352203288,38266883,1354980186,-1957210543,52597774,-425526,-117213696,-1957484309,723686414,512442827,-1912790380,-1960408137,-201718786,-1336148828,-1950380768,-204829914]},{"sector":9,"data":[-1810497110,1583347746,1455642713,-1081257641,-1527568757,-1844575911,-1017225438,22669395,580001419,580132411,652740212,23128064,-397163685,512426307,-620027246,-11860108,-350055922,-1809958138,-402230238,1072168965,1371757313,-1990764974,-1172138466,243990529,-886365548,-1916130495,-1960408129,-202243081,-1810486876,1516134178,-397163687,512426235,512303762,-2017058156,-402643317,-1017446142,15067219,512351027,-202890606,1405311744,-1962879256,-1994222562,-400387554,-1017446174,12970067,512351027,512303762,512303766,-873979244,-1960933376,1354980134,-1843492013,1960512290,417876744,-1844510975,-1017619678,512447312,507191954,125117076,548427867,-1963065623,-400127097,117412720,317203090,-1017619711,-1843492013,994265890,1948423198,4384785,507245682,108274324,3598403,507245683,91497106,-335563288,1405311989,580001419,292870923,1763403,-619973005,-397736076,-160301040,-1843512509,-402295774,-169083015,-1974418597,1009159047,1007972912,1007908409,1007448641,1007384154,1006924385,-133990790,1492713963,512447427,512303762,512303766,512434840,512303764,-1017437542,1381061456,580261515,580390539,98814507,-503296280,-1776382981,-1809958110,-1978567646,-400127097,-12807500,-1377303691,-370457710,580521611,-921973973,-1336865154,-1835341792,-396755998,-69074917,512478091,-886365550,216532963,-335814144,2615299,1482381658,2124435651,1006838809,1376941059,409998987]},{"sector":10,"data":[91606782,411317898,1216997450,-389851046,1354991173,-1799559085,411313722,512433781,507191954,175448724,1038622896,-4069230,-2020996373,837297803,-4855662,1405311067,990010507,-1978502116,1547387655,-1962707706,1552483420,172818178,1405311811,126360715,106707779,1552614261,39598852,478741876,1527399679,39619011,1552489609,138709252,1149879043,172279558,-1950154752,1143670852,-1950136310,-389871036,-2098724846,1579250251,1515740423,65130841,-883928351,-326412965,1317754374,-775845114,108432864,-469766141,-388707351,1609105382,-1610386176,-397404048,57999446,1343779232,-1845473816,-1828697624,-1862253080,1262479506,1515837042,527758858,-864759286,104514186,225843317,630406784,985494784,1964536326,1946565303,-21925352,-485984819,-2079442261,-391809256,-242581088,-364416280,342505092,-402540974,41240837,-427110658,-1957313702,106859500,-1206422205,686294530,-1204718458,1048576257,1962943820,117487655,-2092227861,1131873019,129287050,343015740,276235444,1954939624,-2147371986,2444350,129237621,1921222888,29685282,-11532684,1478000662,1946338550,1750984707,1946469622,-2007504890,1564932840,-385875254,378262508,909777008,58071172,-1836562456,-1957311592,410099948,411305530,28312182,46816664,-326413056,-1962868552,98764366,-4714014,-1828308225,630432293,216533108,-402396312,-899874812,1465253890,-1188519745,-768475124,639829750,1224898047,-1329398199]},{"sector":11,"data":[498198598,-1342166040,497674272,-485651631,41257747,1958742700,1963801611,-400510974,-253616749,-1930949200,-947693283,1607393796,-1031093410,806161108,821854256,-528087947,-1974460240,493742276,493480280,-1947432107,1183517270,1978010120,977816097,1930986502,1914059289,1108570904,-386889152,-2087499391,1962935934,-899837183,300482566,1001450195,317333959,-366885060,566705336,1357679445,990660235,292882502,990529163,631178822,-388939520,-536156976,-899852130,-1957363704,1183535340,138820364,-133595911,1183516287,105265930,147479896,-745412352,-351337287,117684483,-2081649835,106373356,1586169630,139889414,2123228210,-1014301186,-1878735582,658510887,1371864746,-355341006,-85795887,-636791975,-52202149,-1948480953,-608180009,-1956706413,80371173,-326413056,106859350,-400412184,611637342,-1559214965,83236862,-165907190,443883524,17774217,404555463,113654074,1577130012,182877,-372083991,1927926410,740342482,16137856,-1979550461,1173718,-1107232536,116785359,1946681590,82739971,503732163,1693116423,-771042958,540804212,-1967197324,646692632,574422961,-92270475,-401902292,582615181,1690757154,-25150862,1008825378,1011250189,-2145815286,57945338,-402624280,544367788,-277607876,74779964,259379722,192200714,208979514,141869626,-402632472,-965516148,880028732,1919189992,1948269615,1949056247,1963801639,253659928,55020033,74774332,343457802]},{"sector":12,"data":[1919181800,1946827791,915101195,246677775,1583570664,-1146437582,-1679284597,-1969012518,2811928,180576007,-1440582464,494258686,411698887,-397278977,192217108,-1962868805,-1964506540,1525910490,-1322873921,-1967406081,1960721176,-1705814519,342531257,1455681675,-1957296553,1048576628,1946353910,-340531195,119416043,1609369576,734169943,-645201339,-1948661272,1449001599,50492555,-372162064,512337395,-396689201,1594350183,1426113374,109898891,914956968,1049174694,1586307748,-1642166004,35555618,-1962467805,581615605,-218102855,252610981,173968129,582229641,637959876,-1555561077,1195844274,-1576695258,-1991826762,-1943887810,-1960664570,-400378850,116792041,1963008694,-398479350,548412087,-400903448,116848337,1963074230,453240835,587343499,-1558007135,-1950473552,-1606499290,92939810,16163399,566298311,503724918,-267976953,-353638400,15732479,-1056520441,-1979711455,-2147420658,-109047839,13613828,2013201266,1983381250,-25690362,-231425,1948430350,1949056064,440527032,-394264392,954780021,15769882,-647043008,580789899,581842687,581711615,581580543,1525279883,-267452417,-1056520448,1392508961,1478102760,-339131160,1975519940,-1273066560,-648943582,404555463,113654708,-1962928100,-1960664002,-1910331850,-1960663034,-14505426,-1960661970,-1608344010,613941494,-1980749042,-1021141450,-1192457387,-18317306,385661128,-88596912,-2070261737,504654394,1343784632,1784807066]},{"sector":13,"data":[1554553364,-883092374,-813504256,1439675113,1465314443,-1962467834,1586169934,200684294,-2146077477,276103163,1960139240,272927711,-166199645,1400179204,17774217,-914831093,132700555,1396106200,611644939,1948255478,404130079,438209574,-1193702618,-397342204,1532584207,359974971,-389467246,233560235,-236389749,1914139745,-152917486,113742683,271,1566465799,-385874742,-1712730290,-326412935,-394516504,-358485858,619619108,-1557861215,-1964497680,138841072,-1960507229,719850054,619618800,619714187,-486125941,-351346172,1189646598,-1861424384,-352315928,-1861295610,-953432344,-14350330,113925631,-827660032,619978379,-746106285,1526735080,619978377,384357255,512318208,512435444,-1957616398,518347,-232879781,1456180004,-397258409,-358547408,619881252,-1557861215,1499079924,-389849505,1369189478,243729523,1396909298,419239679,555155291,1939691801,-233928956,736674596,-1023314944,619843207,619976327,621297283,990279167,1948578838,619880902,619978379,621297291,-1996417560,-1020983234,184566760,-2074774336,173110724,-2029357632,-2027621874,-2044398570,287214532,1928908834,320768797,1928908834,354323221,1928908834,1945686024,387877644,10741794,484967403,729409536,1381088747,-2043972888,-233927712,-199849180,728098852,1499127942,726880451,-1946973223,723841566,-1949398055,620012018,-392576469,-145620963,1492124649,-523113993,250139345,2025851648,-120504319]},{"sector":14,"data":[-796146173,197351513,1346532571,1951973899,1364414523,197735250,-150832677,2043808731,-137300214,67026,-33500541,1978388929,1959922682,-1961839356,-775553342,721057256,251494633,1499073151,-67676069,-850531901,-389202199,2028470275,-3504129,-14355914,-1893403594,-1893404154,-1020988410,-1557861727,-324983566,620012324,67015913,52750862,-1020990442,995427926,-1862041919,-936650105,-225717461,-554237315,-930393519,385864587,385816829,1499076881,378262027,41490672,378133239,780871154,-247781916,-963959939,-523116335,723906211,-1054107967,-523116335,1093005475,-1977228639,-4181256,-350677738,1959332655,-775845087,-1981689375,-2027557362,737225678,-773795391,636527584,635609409,420943615,-829748501,635609409,421074687,420681471,-1017247907,-326413056,-1954963480,82314822,46816512,-1002536960,343146520,420026111,-1569166,-16223251,-15139562,-1021768426,1439451113,1911090315,585693561,-2758530,-1957311651,250381292,-1954979864,1451952206,2114316294,1048586612,1946166602,-1923985135,296874590,1781333146,2353172,235080683,369304089,1374167579,1575324416,-385874742,-1957311496,2032330988,2111039737,1437526931,-326898549,106386966,768286,371518142,-360805113,1444828934,-962202799,19042310,-957516568,2265094,1493176296,526255967,119514611,-443851169,-1957248163,28109041,-1957670063,-318314290,1946156984,-48824566,186056472,-1830538727,-396797096]},{"sector":15,"data":[1586626950,-326412861,473858134,494141720,1393450635,1528153320,-388700440,1190654393,1962934790,367781891,-350713154,-388877560,-202835645,39619356,-1949008408,1946434526,-1832307962,869585640,1347624640,-15960321,1996425846,1707252232,113710186,271,181034334,418291712,512335043,109847230,243868352,512369336,-768399902,-376766670,418254474,141747154,-385680630,-185872126,1922957235,-1207006443,132219682,-338557836,-209005578,582620809,-671737365,-511455862,-771460089,-1982597397,-1994212842,-14500834,-1021764842,-61515946,418324106,582893252,-466172642,922694181,582618763,-1204909258,911627042,421336831,-939631778,-411710466,-1073312737,-1103197918,1583308066,1431787203,-283211012,-465648616,918887973,-13491522,-1173451978,780875298,-1959386440,1394785302,385824343,1532959007,-872495106,-1942560139,522371102,582891145,-1017225379,636042880,-385432063,74776613,636030718,635645578,420026111,-1574575200,780674536,-1597823517,-141027090,97029090,-388956153,-388896559,418322058,-487066062,-2020350985,-1597769526,113645807,-1023334935,635707017,-1020927326,-1960451424,-1020926946,-183441408,1916849384,914680325,-437709718,-654946103,-475873254,-1017579483,635609094,635707076,418254474,573016614,1944638432,-1964977156,516097988,635571851,635707077,-383635662,-1021366480,635571851,635707019,573518374,791684841,-435777853,1108460325,1108886022,1109213722]},{"sector":16,"data":[1114325616,1115112053,-466468228,-661921583,-611874002,422290241,-444101842,583770945,181860035,651622118,-1018747616,136767010,-154974427,624043732,807855650,-1966913755,-1968421340,-2084514824,225839341,1193642022,-294262902,-347989528,652550889,1967596936,1108142083,1176799939,-135789707,63492929,149783529,-13220746,-1239864554,512440063,401285835,539419647,638577445,183182600,-2010721034,637791013,-750312144,-167007040,-528080780,-310130477,-2082900216,-851769147,-167049102,-1008204939,-232632767,722927414,-1612135655,1474030401,-465648634,-501839067,2027031077,-1964756454,169405966,645155810,-143406382,841401994,650387973,-1958279888,-166819133,1961415448,-963997435,505654003,175380727,841404395,653533749,1594307888,-484538173,1053082405,780805604,378152418,915023336,243934691,-1977214738,-1007275235,-1036860534,158647586,-969751670,-267664094,1448264517,-397081001,-292814900,637419067,-976070284,-672659086,-768969473,-2081035323,661783023,991791654,1948646974,851675685,1959101634,1942344221,851675896,66063302,-350686162,1942868698,-1979389138,1192817198,243934699,780802286,-1813505805,-756648705,974287557,1998978094,-756028452,973501125,1982200878,-1949445403,1960512477,-465663733,-500266971,-16783323,-829694581,1583286109,106414938,-387282091,-1014300868,-981155278,1951210613,1942868502,-1977202699,4078365,988247334,1931869486,-370330655,1049166013]},{"sector":17,"data":[780673736,1049174730,780674532,861218274,-2134509843,401087605,996635903,1965424702,-47302132,2002482213,-336776444,1942868565,1048594405,1946294510,495592987,637550137,-1014352010,-1036857098,-567096203,-981208309,-437565688,-1977199180,4077853,-1977977306,852555459,-789017918,586949359,849835512,-2081223714,-347667259,-1979091747,-770118130,501958597,418524810,1962845672,1926091284,4078350,988902694,1915092270,-756421886,-578072123,57989899,-1946280728,1049188829,780674532,-1957026334,-1961956402,-1965716515,-465663541,-500266971,-935949531,583704610,-1017182371,378262027,74982082,583276171,-988989,243980679,-942597906,-989199757,628749835,636368387,91409874,-336890549,650938942,570445362,1311778504,-1967115776,1159261710,-338463413,-264895706,650938917,570445362,1311778504,-1967115776,-770118130,13992909,74705451,583413251,648770891,570451506,1714431712,-2014788864,-1965455361,-786895346,-1978895417,1848780524,652747264,184577584,51411446,723906102,50623466,1260570158,63167861,-769265610,13992904,74705451,583413251,-1010272949,-1946204696,-786250186,-1978895417,2117215996,653795840,721452592,50492394,-1008147730,-774206720,65196514,-1962218541,-773664294,-774700062,-773664286,-1948069406,-773271103,65589736,-468284976,132218917,-304971595,635580040,-502869821,-1023315419,635703039,635740611,636749371,-1007091085,689500321,-131734522]}],[{"sector":1,"data":[635740611,636880443,-1007091086,18411681,-131734522,104485059,58071247,-1575432288,1492657635,-1006217533,-1155144650,-826670845,374787,-1338093080,-1975325180,-1964756285,-299507186,573344294,-790759703,1942432468,-387938574,1577532985,-1006217533,-1155144650,-890568190,918816342,-561306140,-478149961,-337706495,-826669383,-301617149,1108924576,1242083566,635609582,516222530,-2044320284,-285233113,-297138768,605608096,133054992,63945411,-299507039,635707019,-1020819930,635831950,-1341927750,-660541947,-1326562792,-1007793656,-788279366,167932871,2046168007,-298450150,1926221861,-336797180,-997528029,4621862,-498745294,51768286,-299503562,-2044279670,-1070464954,773050320,-941480462,1720067822,-809843968,1942475011,-58003961,8291878,192542219,636368387,636628483,63170530,-802820042,-231861304,-1009065435,-301740102,636624523,108251089,-2044279670,-352124858,-154930462,629548756,135316295,-1290272768,1152597452,-2004307139,-1155142370,37504812,784008052,723421511,1194572569,-527771858,-1341927750,1024256003,-1159212861,78644174,1120373486,1176799982,-738686292,149783488,-2010772106,-410368219,-806818187,585755452,629679845,-402426553,918764738,636290768,-318320586,-561360347,-1341927750,1116990984,95439598,1119892206,78662382,1120176878,63224558,921567920,606465440,1525563919,1967531146,1014556675,723422006,63492889,149783529,-738248842,1381040054]},{"sector":2,"data":[-826612086,-301420541,-297614202,48978010,-1059859457,1962281900,-740260308,149783496,-981209481,1926052616,1979058952,1011673091,-232632242,-826612086,-301420541,-297614202,-738240438,1008527555,106418155,-1341927750,-660541947,1257128472,1122896048,635715268,635571851,343460106,-519379918,-802589621,-1963494455,-980750652,1191544358,-285233071,243975051,-388818698,-1970207372,1504375748,418848291,116118133,653182090,-286773882,-1017182405,-1188698975,-768409520,-523111945,-459185429,2668837,-235417037,-352299544,635740431,855658681,-772671534,4516064,-1101834665,62849031,-788581888,-803025267,116805591,1946294511,-1915728119,-674225458,-1915742997,-674225458,-829566897,1339543586,583962064,-1131882544,62857938,-914797056,-1017160101,-523116335,-796139311,-523116335,-796147197,637011459,52821667,-1993999850,-1020919786,-947234992,-125049806,418332288,-788039934,-1652011033,-2008079666,-2010984803,1596318494,-1001209000,-1977228234,-1171922386,95421390,1107865838,45107950,636002542,-919409086,-1017455821,63879762,416818826,636042880,-2147257344,95424740,1120175854,145771246,1120111342,-1977201938,-381779963,91488293,-352294424,-484537849,495461925,91619082,-352271896,-301420511,-297613430,76162634,636042880,-2029423616,4253950,65797767,-400783322,-318046050,172437108,1325561069,-1946318257,-2134668595,2484542,1189615732,-284756480,242549784,91619082]},{"sector":3,"data":[-352168216,36825095,-1426914581,-1017511503,-994421934,-301813757,-1157058494,-1964113917,639815335,-1977211512,-389002459,-1337266061,-997790206,-297660496,-154969509,68742918,-1084813707,-941068960,-1008187393,116088831,654294504,145753482,1119892206,-775730450,-773467675,-1948974107,-1168981030,45089742,635674862,-1017450942,-285275976,-297614202,-41237686,225831044,-58393334,-800977803,-789482547,584120005,-1019034632,57984388,-1978275001,1979483389,1978172438,-2063791605,1108112892,-244070960,-789131824,1120139298,650719939,-1021180790,460702514,225771275,76162630,-1073032970,1968115061,-1977202957,851911172,-1979550521,1431487432,635713279,635582207,-633435821,180587042,-402295616,980746504,584728195,1176728576,635713161,635569862,-1232000,974719766,1965216390,785401117,-277666334,584716031,173792629,141841407,-398014582,41222306,-1040253007,-502886565,-469332187,-1017488091,-1977169614,851649028,169833923,186479871,1309504767,-167474650,1975519952,-210415859,76162638,-952973534,-930479500,-11185469,-14293962,1394991670,1049215882,-1073077542,1273496948,-2093255424,2284094,-1991367564,-970595274,19259910,-16775235,974719766,1965216390,651185437,-277666334,584716031,173792373,141841407,-397490294,41222208,-1040253007,-502886565,-469332187,-1017488091,146636981,1304809472,-109852464,635580040,-466187952,186056485,-762955751,225794082,1942540365]},{"sector":4,"data":[-500772858,870675237,28689389,-705172173,-800731696,-1980140608,-2010782666,1344660014,420157183,584222264,-804424360,1158116288,635580112,-315365005,1835056835,116727,1313213557,637831718,1229915528,642124515,-2010774390,-337490171,1835056835,116727,1313213557,637831718,1229391240,642124515,-2010774390,-337492219,-639105341,1942343932,32408328,-1578564749,-30000384,-385649883,158662808,637283898,-1914109066,-1963029760,-16947,-466431437,-2080011738,839152837,997714889,1965424190,-64583164,1975878693,1977975823,1942343691,642076660,-471136886,637417019,-466484620,-1977161334,-37951484,-13443190,326387030,637646157,1044055434,74786302,637281930,-1979866648,-2010782658,1462100526,1048640907,1946166761,-26613755,1441269483,-30086915,-922067106,-315487884,-386017802,-386073518,1659436341,113444663,654058472,-466484086,637548091,646579317,-981195267,-444329100,1951010677,1942867980,-1977202959,-343886588,1959101663,-338545916,-768388495,636106377,-332494762,-49092571,-13443190,1049357619,-30726656,1946272758,1962871584,-2135601892,-1977203131,1975519748,-193638653,637548091,646579317,-504879619,-466187780,-500266971,1448566565,-41158773,636042880,-402295808,116129072,-386094104,1600060671,108316938,-386077390,-1897333846,-1159177476,-365524170,636264485,49927,67305985,268895749,336794129,1512981,67305985,939987973,1010514489,-2143338947]},{"sector":5,"data":[2518590,44050548,106386982,-1090052578,-984145170,-1189553866,-1527578608,-1340122454,1465275650,281874612,123559519,-2134679969,2518590,-12771468,990148095,-15239984,1914234646,-1325890032,1465275648,281874612,-128098721,985921987,1998114590,183634680,988968436,1998114822,-801210132,175443736,-534640460,-1005919024,-1007098830,-108266409,416222858,1925266241,-1716705722,1963261827,-1389981180,-359534,-801438603,-617411980,-417923247,661805336,243982306,-1958668081,-45199655,-1716705717,1963261827,-1389981181,385831251,1532565733,-387840654,-117314568,-792502276,-802823674,1915085318,251642625,-1010620956,858121377,-2144996346,192241892,992339105,1931867142,-1580992254,103491044,91431618,583403011,635741176,635740611,636880435,1969284224,635740427,636880443,-1007091086,723903649,1931658246,-972684539,-459016158,-459160795,-2131981787,-461348635,-137219297,-149360586,169406502,-123628827,-1547566299,-90102274,-1547566299,-3987968,-16716234,-16715722,-16706762,-402582218,1048819119,1946157294,-1949070527,-300008673,1391883520,18038403,-402295552,65779132,184564712,-14453568,2013327374,322863901,175374337,18026239,251593845,512426261,1200292078,15639550,2011740395,352751541,319196929,-268005631,-301560064,-1957313792,-390056980,-1047801020,-1560280571,512295174,1048576264,1962934542,17473866,1131799562,1532089223,-1948611042,-1960898977,1586168911]},{"sector":6,"data":[501437188,-661977205,737691435,1194063431,798198,-1264955307,-1592497640,-907542288,588946116,113644650,-1962934002,-402592226,859635754,46292416,-326413056,108380171,-402591581,48809124,868965632,168724937,235832833,-1023286527,-1152325288,1224099723,1596655224,-196637704,1347507139,-1786116428,-1511516172,-1866574240,5564454,1111236212,1122516597,1967733760,3926071,812994108,1962950120,1283481131,99295237,90472542,-162506529,-523134760,-622266229,1629480961,91546634,-340232472,22841691,-1017423528,-1201018786,-2135221271,24444988,166440131,1948269740,1946172667,1868359685,1942208522,1930130187,-279807989,1309373264,1930130256,-45006837,-497941935,1930130256,-191526901,1979333655,-65632252,1418248960,198034180,194644884,1979972736,-1162548989,1217971338,-1097604911,-1973934116,-523134780,-268181295,410533515,-1526260218,113706917,268406,669812619,774217123,1358145535,1552634704,1625155585,-1133124598,1388533851,16318081,116792693,1963983101,844320790,1616898276,-1602886646,16326281,16584320,1398299408,14149712,-1973887862,361454563,16318081,1418334580,88405508,-402099168,1592328110,-402396416,1971847233,-389850623,171704401,1048579445,1963009566,105248262,-402426623,1702952842,222100998,1300241525,-25100026,192151800,1963211904,75268102,1342665983,1743260336,-389850881,-231014463,540807282,-92271502,1342665983,-1360523856,1019435263]},{"sector":7,"data":[-33328608,222086086,11928437,1963474115,1962281478,-1009844734,401974666,73697987,-326412861,-2096734581,309789691,24435467,-1964781237,840434055,-899858204,1307115522,-326412871,168187531,183727606,-1997572910,-2011693034,1560345622,-402652470,-2041577431,-773573920,402654688,-1017579381,-1101572528,213844216,1961101824,-528068601,1493097704,1610537192,1405311070,-1014767733,-1964256780,1405311971,-402563957,-2124718161,1946220798,-1232476157,243291843,-955770738,-134148346,670219776,1577731048,1448170443,139430487,2139876658,-1946799348,241694663,-963905397,1744302731,51212814,-2096532752,-404618045,-695482485,1532583519,-326412861,-1962647925,194576967,-398953278,1347616703,1451964356,105286408,74830347,-963919220,635981906,-1773120768,501793420,1515753728,-753155797,123605362,-668247717,-897070565,1560572563,-385874238,-617367455,-788527943,-489434654,331482106,-1996438567,-1994071786,1392561950,1526728168,-1010717976,-2097113368,2416446,48821620,-386602240,1165230243,-930430974,618733195,34048558,976712896,1124431048,-253017277,-1979217362,1941963464,-1964453856,-397192760,259260535,1929455080,10479623,132843123,-134182424,1526727098,1744776793,-638991615,-396054089,-857210610,-163676160,712311552,618870527,618608383,1392562107,1543472616,-1883165976,1529143046,618864265,1325600651,-552719614,-586249948,-1343634652,-1949158473,48431695,378083211,243868895]},{"sector":8,"data":[512304349,-389864221,-1502347261,1048794051,1946166495,-552665319,-585200860,-16283100,1009048838,1021801504,-387746807,-1017418742,618596095,618467071,-1023018621,-1291859736,1950170114,1948990538,1965898995,-1251322,-960242953,33617414,96064051,1949056000,1950039247,2000239827,1915763911,64654275,64685019,752550874,50377776,-388790312,1962540939,-338238771,1042435,1454833641,-385878296,-746127140,-1950130439,-2145067746,-395114177,618610307,1524724227,-157153398,22514432,618464899,-550599933,485163812,57819452,-1007330500,-1239512237,50377984,990278361,1526887388,-1221006909,1465274704,-1728935162,150569105,-876673675,-1089737984,-109051697,-1190956030,119406596,1594336499,-1017620130,-326413056,-1962518698,2085160526,138840894,930922507,-1961984316,-771027882,361432437,990018955,52720586,-137745415,1925725145,-1949791486,255527518,260768374,-217942133,-1078335324,1566465799,-385872694,1392555580,1003347083,1371757319,-841184430,-998045899,-73743612,-1021196483,-952239206,-809778399,-166295040,66748416,57935987,-373088373,1392948762,1963260544,120966405,969737195,-2824185,-2147425663,123453963,-963442807,33617414,125123,229658827,1476395752,252102595,-385875967,-955878740,69382,-1815966208,91607563,-1712845845,126494322,1975519811,-1950152715,-952900849,69382,41388800,427689718,-1608682202,1217927281,-469057277,-259648907,2004073448]},{"sector":9,"data":[-1403629301,41295676,1499396578,1918560428,1355021026,-1593862424,52697470,192217660,427689520,150963944,1478065670,588709827,114201,1946224104,552096532,-217883135,-303546190,180400640,-349882346,906413580,-389873627,803734359,616729323,624468543,624961162,1067640054,616729125,624206528,-646660094,385813363,-680388351,-352185624,85393161,-389254631,385811001,-1410852573,-390040576,-208994105,624363254,168064511,-2095549239,327025147,874853536,180364416,-1977272314,-354883376,50509032,-400215498,243990622,512435496,614540582,-356980699,623916683,624047659,645022580,1946181096,923203132,74841893,-462108406,244052875,512435496,614540582,873892389,3532837,-25047317,360579071,-1957765385,-15269938,-1594170856,-2144066252,367579274,-13375232,170208928,170209030,1965373190,378192641,1541940532,940968682,36956453,385865355,378083625,512304432,614671666,641108261,675186981,-1965356251,623878849,-365893437,-1957670063,-1960499186,-1591400930,401089828,1499158762,623382153,623255177,-14343005,-1978063082,623813313,-1961915453,-318111113,-1950401419,977176870,-201567963,-2125375068,-150929175,-205507879,-1118443350,1508495592,-484097886,-163016423,1088697073,242434364,-165331294,-469088031,966919285,113689381,-385866442,260813752,-227152630,238743779,74851648,624955018,-1090357365,-201578611,-1123161692,973082809,1915043854,663601105]},{"sector":10,"data":[-201539534,1007077290,-1020818139,624311936,1344304128,-1965388974,841301526,1943677942,-1998978052,-1608173538,-466475712,1067639798,-1017619931,624311936,841184256,1075219190,976653093,-1595657691,-972872391,2012232700,1010731789,518181,-234659468,1455681515,100664251,-896923874,1973873970,845836,1049360610,1967859004,-1017247763,74903611,624572043,910065859,512360485,1467295039,910065859,24444965,940506819,1058966053,1977289253,1042188816,-1999897051,-1977272290,-31114978,1075718851,-970396891,2438662,-2135766039,2438718,-20774539,-1977272314,35995422,975519774,1982150942,-1998900730,-2010826722,1445281566,503513271,-208984774,624705163,624363206,-16829952,1077820103,-1978370267,385831708,979048741,-33262307,1176844038,-1964709049,-970639586,2438918,624959034,113640821,1577133367,-397257789,99334920,-18329005,-1962439750,154993231,755200512,243859465,-939318032,-301037239,-1146230748,1929384509,-1304893181,-953857885,2442758,1118016000,625255205,113466202,1448216350,-2091887791,153437702,958744737,1931822598,625254868,-1962929176,-1409525512,-1420252328,-1437029544,625229449,89178887,104529929,1918379246,619749635,-2097106237,2442814,780345716,-1593236154,-571988670,-51344385,-1951575891,-930370088,-1968418643,1110870480,-1017618907,1458342741,1591666775,-1949084184,1451952222,452614,-899850657,113639428,-973069002,2438918,1392457192]},{"sector":11,"data":[1912640232,8841475,-48824493,-396732392,-92024115,-1962773249,-417273662,216605810,-326412804,-402237610,199777940,173968339,-1962520949,119408726,117444584,-899850657,113639430,-385866442,113684804,1392452918,-18814895,1929395944,385831732,-396683011,-396624601,-75235954,-402098945,-1008140952,1489990397,1979711293,-152504060,-423827358,619976331,-386038296,-1595277829,-967157253,2438662,-233927741,-199849180,1374180132,1438866386,-1912148853,-1962882810,-1070397858,117934630,182877,1408011093,-922317306,140413696,637945483,1527187336,313949,-1947432107,854328918,46816740,-326413056,-1979165045,1575880262,1426064586,1452010635,1177742346,138813958,-899811468,1426063366,-1957237621,1273497182,-1233590272,914965364,1149960463,402563856,1577272458,182877,1458342741,-402235765,1474822186,-1960676170,-22867900,20742167,914953332,243269903,-1107224434,-1310185486,-899850751,1994981378,-1334974032,-109782261,-176816374,178371,45623019,-1205736703,485163522,-352316232,18135063,347607787,-1207047422,149618691,-352255048,33798147,1458342741,-1929316701,54265438,529203829,411961078,1011578114,-396921853,-208944230,411961078,53441796,130433240,13625376,437714771,-11314408,1528304662,566433535,-1744767072,-162758840,68718086,749751924,403838719,1065379819,1174566176,10479688,-58665749,-972720896,16840454,587208447,126602987,411961078]},{"sector":12,"data":[-1330285564,385831714,-10807278,-15199210,-1339964650,303496994,-5379304,-401076202,569049198,-14781120,-1978135530,-1310444860,720500238,1352176076,-16773627,1494751766,-991427726,1499291136,-157263014,1963173888,145251079,1532691060,-1832169134,403576575,1962933376,-339441119,-2069851644,202833688,1979058712,1925458440,1942108676,1961101833,269942532,-1144784616,126425466,-1023248503,255232854,1962281729,252102422,-2130706431,1946220798,88405514,-16485248,-166190826,219713030,411961030,-1106873344,971515906,1438866944,-1610158965,-1073080292,494216312,1049319254,1330586370,-964430709,243978,-217637123,-276038491,1594017155,3729502,-1679293461,-443873281,106416989,213845790,571672,1594336755,190273219,1360363209,-1950415082,-784247002,539015401,1499376627,404231935,-1010606497,404489926,530665727,404595480,252102488,-1023410175,-2131981483,68718094,1562247400,-1588111669,-1073011962,178394485,-22981853,587768576,1198833675,1526745832,-1574762848,243999498,44573444,1048580469,1946353910,28698673,404160401,-2145457384,50394686,-779411339,-785707125,-905772429,370605906,-1021903080,1760057633,649471,-373072289,-202789404,101107629,-1962934237,-1593769930,243990782,-1054137592,400814083,921196011,303496961,135170328,101615651,168704547,-1010011101,-1409212184,403838719,-437570078,1241513915,-1996418840,-1994192882,-970783714,35849734,-1140945981]},{"sector":13,"data":[1017905154,1139045468,-153018308,-838600917,1555101579,-16717592,840438294,-386889024,-259391267,-1155449684,-1082916863,1081353020,-1267456452,1016034377,1946726443,-12285214,1165241916,-1804312772,-1317774276,-998964166,376710204,-1133172164,1176555136,1912797571,1006930445,1225225508,-830420994,-939637232,11782142,-1403816887,443821628,-260824260,477441084,-348074368,1006930663,1949216803,-1283331326,-1006746111,-1406176183,-160160964,1581023566,-2128382626,1583219324,-108848011,-2092404220,-964492055,-473498108,1581023245,1229326453,587663047,-939655167,1963509494,-472908268,758950928,725354356,-830470283,80642056,135170377,69110051,-2131033565,141761023,-2004824448,-1021114826,179081193,1342731510,385821616,-1017636846,-1192457387,1996423422,-2137370618,-2146145636,35163662,587204295,113728814,8966,182877,-326413056,100985987,-157284578,-809527296,1946303488,992520,721733507,-1846309896,-1510741551,-1996376600,-617350058,-1474099552,1124168720,567950976,-1475775443,-972327928,723638790,41223336,27838462,-553502859,-1056718197,587468542,100796284,-729799932,67567104,568049443,58507275,-2134903320,58011708,-1946157126,-1966996543,2130752752,-352276403,587571290,-553467094,587597559,108331012,41535742,-125124558,-31259488,839023048,2143748800,-939638781,-2134919704,141897788,-16072654,28773236,-1039941237,-595540182,-28931840,-141899894,116855275]},{"sector":14,"data":[4203270,-1220015756,49804803,-138084666,35849734,-972786688,38216965,84290243,1007973923,-2096400892,52626958,-369338741,632356648,-1967115606,168326356,-33259530,-154796352,-1819174696,646586544,-990502138,-1342016480,-156568790,141886660,1008851616,-1442745312,1947256054,-1440436221,-554250614,-805432708,816846965,-32248918,-1341819446,62040620,-872533840,-1431568008,243985890,2018059012,-1439780833,-167110028,816842622,-523305302,168682491,-1543143717,-69153794,-1426902864,1946273014,1169707068,-163676117,24446976,-27358392,75094795,766827511,1689490347,116847606,1946231559,-1439691771,-1073037262,-725317988,808455434,-1274907491,-1413183963,80016984,-627047308,96905761,568049152,130427799,-1017256565,16125578,1946352000,351895557,-809823627,-1105139712,-930352245,567976620,-1018572238,-943239447,454532102,113757025,6277,411502279,1438842885,770239627,1439390976,1183575179,1958742792,-1961658086,-738064810,335599232,-1981533696,-1558674154,166205575,-402396416,-899874762,-1588133884,243996805,-503896046,-1579512937,-503900025,312596483,-2061043928,64488216,304617022,841487902,-1982362625,-1994881770,1595442974,-2063190067,909430040,-809818086,523619584,-1019359853,-1913877675,126552670,-1560131789,-899868538,-1207959544,530801228,404595480,-326412853,971509424,212881601,1539388392,-972929143,-883097337,1475119957,1639881222,1335301226,856104527]},{"sector":15,"data":[106335168,-1181612309,-1359806465,-159928430,117604233,46816607,1023587072,-1287842637,145964292,1426305853,1465314443,-165771258,119427840,404559615,1927925849,108971023,-217587325,1583286181,313949,-14761933,1996443700,142016266,-1710852353,342517186,1566465799,1426065098,-326898549,503732068,-392405363,1398472771,-985405354,1048828814,1946157331,1959329284,-402239958,1528808341,-604512725,1949056031,1975519748,5433369,-167718978,134280710,-293403788,-1956706556,-373072411,-857102123,322864040,359923713,1441271472,1031837632,-1710918400,342516158,-352160373,-1705828838,566702963,-2143942817,50394686,-1185478284,-1510801358,509484806,1048822535,1946157331,1975519755,-1991883262,99287669,-952921446,1426113313,1465314443,2746374,-1410100656,1504313715,-521624333,1583286193,576093,1458342741,216532567,-1527541504,-1410100591,-341121933,209095649,881569110,-1962377532,-922024370,227214709,721583499,50623432,-775343167,539015913,1426113371,1586228363,-485520634,41418507,-1957361429,106859500,-2065156097,-899852111,-1957363710,1586190060,4162310,2005602420,-399209726,848736619,-899850524,-303497214,-326412889,-1962518698,-620033442,2123100286,108432136,881562285,1172508043,990280010,-348225575,41782054,737870667,-645164086,763283499,-486072660,1974399528,1465274660,-1493972341,1968791135,-2015810580,140413914,-1951330584,149423710,1594331825,113925470]},{"sector":16,"data":[-337956096,-326412826,1392509371,-16222465,-2036726154,1561619043,1426064586,-919343989,-1962385781,233506390,-1947432107,1451952222,722438918,4188362,313949,1437028329,1586228363,105810698,-260257525,1242060427,-394473081,518522229,-1961301248,2143365895,-1331828728,-350815048,2109881098,-388986110,1569960103,184551114,1967815890,-1333663737,-1021903688,142481211,-922019957,-919403907,-1817147672,-326412861,1586176178,321542,182877,385660934,393534219,-880076932,-494222710,1102026216,-372114809,-1410136290,127138443,-1496913469,-1947432107,401278550,-1947432107,1065551454,1407874048,1476550539,-393005057,-1956990949,-1209530274,80371199,-326413056,-402652229,-628641966,-2012854645,138840839,-1845409911,313949,-344301128,1514256387,1458342741,1586169431,186092294,857699538,-1343100727,-1949661357,-24444297,-1408819565,108184378,41404218,-492167116,127097842,-899850657,28573698,1426240573,106425483,1586169630,-485520634,41913129,-990502736,-217680895,1091990702,735546191,-990510505,51016706,-201502727,24444078,-389380287,127119251,46816607,-326413056,1586299568,1304582,182877,-1326675115,106859796,1560282344,-1577057078,-1880620810,-393047111,-1013731559,1458342741,119408215,1392926347,1504609768,519736147,1091073733,-1510741551,1594316831,113925470,-326413056,-1006217386,-1014231434,-1005826421,1183516798,-473953530,722891817,-1962576959,-1070397874]},{"sector":17,"data":[-203715042,548442532,-350246157,1364611869,1785044378,-1705553900,342531200,1955990763,1460031732,1661835862,1594299498,214588766,-326413056,503732054,-1962377532,1992623702,206473998,-651437429,1323504501,-2046457306,-498685436,-1328837641,-341118176,-2028281024,-2028936246,-1947896886,-992217142,1992625790,-992351480,1992625790,1460032008,1704827474,-1755704214,1444862771,1380976211,1785053850,-1705617644,342531200,1743258603,1594302383,214588766,-1352865792,-326412853,1586219315,-401110266,1569959523,1426064074,1586228363,2112377606,130505646,-899874816,-1957363710,108462060,1785106074,1996443668,1721801222,1566053482,1426064074,78703755,-402235763,-899809607,-1957363708,-1928810260,-1427634594,147480062,106386944,275910456,2005600030,-1527556350,1487792872,-883007737,-1314623511,78724354,-1957302990,1586190316,13614854,1785129626,126587668,1593989003,182877,-1321401167,1441608200,-1084756853,1586168011,1726650886,1566512234,1426064074,45870219,106335488,-1817351960,182877,-1142125739,1452081156,-1386747898,80371091,-326413056,-1929377605,1189611094,-899837011,78708744,839430461,-326412819,-1106880682,1586168011,663600902,1726650961,-2024270742,1460084471,-952256358,1594316833,46816606,-326413056,-1929377605,350750278,147479808,-326413056,-1929378629,82314822,80370944,106386944,1743278998,519736236,-1705813753,566705597,1583286104,1023717571,-1338178896,-326413055]}],[{"sector":1,"data":[-1004665257,1589971582,647075846,126289291,-498908245,1594302454,576093,-326413056,-402241909,-315490271,1576328936,1426064074,1183575179,250103814,1942829568,269942534,720187928,-1713378355,-1037839625,236388243,-1262189032,-768371968,385872887,-1031137268,-402603119,292836615,115931475,-1014345643,1476397032,420026111,385860443,57874697,-1583150103,-224189933,571973924,-1960512349,-1960701682,-400419562,501809155,4450498,-1360512398,-233928960,-199850204,10741796,1929439464,-199850236,1398096676,1929433576,-233928956,-11320540,1528364310,-11316903,-15130346,1528366870,1576198745,621283015,1388576767,-1960512863,2109881297,1319342593,1343654181,-1588438491,-1036311308,-1550712451,378086738,48768340,-1581032960,104539470,477897233,992088993,2082820102,626172179,571803195,396429948,1409694498,-134120411,968897219,2116161806,238632961,41755155,372834828,41820693,372835340,41755159,-2134702068,1623102,837354357,-3020638,661962762,571547275,141885864,571678347,41157288,-1952461941,-1474161378,-1962380028,-1474160866,-1627163640,-107031669,-1007353484,619847307,41146667,-1950098441,723842078,1274276826,-12303783,1314014035,1313817598,1329855827,1140601165,-80589489,827609164,1414548730,1347221810,1358443348,-146452407,-326413056,503732054,205949703,-1156952437,260642864,-1962784887,113707134,795408,-1962927896,1105725046,122196225,-899850657]},{"sector":2,"data":[-1997996024,268879616,1392511779,503731794,41388807,-1923674229,1224769949,2088766846,125123073,266881453,1090841430,-1425988888,588136073,1172085328,1076694004,132354618,-286784374,-401181696,-1070464752,-18095,-2142261518,1952251773,-1436766205,13363289,-391351325,1001018834,1008891899,-2146142930,427001082,1937963648,46593581,-830468235,-400430334,1718943917,-352290584,1012722493,1006924842,-2147257025,-92274226,-2142473341,41255674,-2143104462,510886650,1980037760,46593561,-92269963,-1341165047,-12220882,47087786,-555023950,-1763554737,1988295296,786974468,-2097512448,-830471307,-1951756028,-819241009,1577567882,-373073062,540844276,1364719986,-1960304961,-232583154,1508668590,-2138248353,74810362,535514959,1971649152,82805530,-402290097,-126615527,588135995,-1974482574,780293,-1169688459,1049165954,1019421452,1006793820,-1470643409,1225815302,-2126382845,1996521977,178957474,1609790912,-853953341,1090885665,-1336818886,-1957254564,-850938633,1577284129,2078917465,1465274784,41388806,1912946563,75268139,-1088064198,118385032,4030502,-1185539468,-391380988,1957581990,1593377541,-220009749,92939870,49004554,1594343474,-1195157154,113710186,1809913762,398067399,113732577,1824588018,-956238685,689472006,1465305965,-1090052602,683221782,-1430244608,-492065976,336496888,601800227,-1157606728,-1998052374,-5178422,406984447,407115519,-883007737,1785442202]},{"sector":3,"data":[-1070349548,406062726,292864010,-1189595714,195887110,1359246528,-497430273,336000757,108396323,838885096,116837348,1979646222,601800435,-1966470936,-905713440,312731252,869829411,29026550,-402569496,-459669449,-15993724,1392579382,1954547702,319211276,1124073473,-954716694,56068897,-1711192181,342500211,-1946794241,-14478818,855708934,1879003328,-1070335487,588514872,104336245,91559988,-953635430,-1767834847,533784,-326412861,381572950,13154595,-4522189,-1382830849,1954595830,991726350,125109854,57918011,-1382875509,-502994557,1962871780,1221036804,1583321672,182877,18038403,-16485376,1526797582,18024079,1946224630,12969987,587139256,-887581178,974354507,-1978698787,-1006464533,-402235763,-899874809,2045313030,-208972130,-1392439064,-1392425079,-402438263,-1377304335,-2034016768,-390004029,-889323271,108266872,-385853719,1139343403,-1625691904,406062790,682072577,116793799,1946228886,-756526318,604473856,1526807555,645924213,-1006888810,50853376,-22018699,-1979697176,209986567,-2012792319,604271623,-1017350908,568917936,604473856,-351828352,50853394,-22018699,-1979707416,34361351,609748872,1946498175,-167001245,-1974334860,1408643797,1515968255,604474051,-2012792187,-1022003961,61343626,67900532,242485050,44566408,126486645,87326500,-2084372108,1962869119,-1101639652,-947248162,-1966576408,-932714301,117311860,-1483070700,1579271976]},{"sector":4,"data":[126534488,121275172,175376264,740496544,-1576832511,-2134695148,244023311,65208595,-1015076992,-167770904,-1144847609,60302102,-773795368,-1009253408,10938368,1980316824,1117929514,-588737756,1008607233,-1271928028,266463236,-618949730,1151542388,1177454628,1278642212,1310099492,1007938340,-546008317,-1618222127,108340284,607927944,-389809270,3932256,20713332,-1057086604,-1057075852,-335990668,-2133118132,19157310,1048593269,1963009104,113658684,-352312240,14215220,609359497,609488521,407377545,407506569,-1957486613,-1994897378,-1960553954,-1994896866,1529107486,609289926,-1576604927,1352803409,116835108,1947211926,1381024513,203547678,-436147455,106166817,-852157256,512306721,-1943095494,129448966,-1172369829,481849098,522308901,-1777434534,568594456,15466020,-78110234,1448564163,-1909567458,-155763170,35165702,251597172,192223308,407768831,645924217,-2130962282,19157310,251601525,477439058,609488639,1218516601,609395480,-1558689119,113648724,-1342102448,-36378591,608321152,-402426880,385810603,525867078,777871198,-1220923649,-315467946,-779369845,-225707893,-150993479,49972217,-1958739594,-120681513,-774778159,309585,-774385160,1509548758,-837560573,-779890685,-1017225472,-1008168558,1276545535,1309575448,1448133400,343146556,678691132,729023036,913636924,963968828,-1017618695,1048632115,1946166455,-1237417935,712311076,-1241070005,585826340]},{"sector":5,"data":[-1960526149,186379039,-2082900773,-730390277,616046217,113642731,-352246601,-1224292859,-336068572,1381061568,-402344874,1019088391,-1071931868,1946641542,29524263,140282113,-2012064632,1820856436,1960851978,-2012968941,1418200172,208963598,-1342022519,-52107230,1532582494,119408323,167788008,856192448,1914603227,1457195812,69039184,1008236548,-1743490298,-259268399,509038854,-1795215865,1499426945,-117314809,-1022927272,1899458864,1901883710,1896378541,412485366,-1023314912,1347559162,2042240782,621394033,1515725261,-1777434593,-1006952424,611270272,-972393215,2387718,-335544901,408010563,-1342169159,-1359807481,-377287307,1339684639,-1946278528,-2144736295,19165246,113643125,-1157618576,385286142,350954612,611401344,-972393215,2388230,-335544389,-1009044733,611452614,-2084308991,1979253497,260789025,-973674106,-2147257341,-91552819,-1156583549,159389791,609729284,160032721,-960235429,19165958,113689592,-134208397,-771009853,-621342849,1912863360,146996738,-350728170,407944968,226556419,1388534274,243257867,-50692022,-889322889,407901728,1354696939,-2131098856,-1017447131,1364414715,856053534,-1143370039,663356439,-1907796248,-456945957,611165024,74768444,141943100,609617606,21358976,175105152,-970697178,2381318,1946404086,63733763,412485366,168260609,-402425664,1089010560,1950253056,41156644,1390968612,-402099712,57802935,-973010199,19165702]},{"sector":6,"data":[-453295640,216042081,-436147328,-339441055,-1335761408,-436147424,1594358048,1482381599,-271777166,80017103,926685300,116790389,1946425424,1862714893,113639716,-402578318,-2134639870,19166014,-919384459,208820028,1947758267,1480345885,468392052,1971373302,673890070,-1157624135,-218359727,-2096597586,635964905,-1088261632,196682839,408926976,1974465276,183075603,976979,-2096467365,81988329,-370419209,-638073864,133617923,-167152636,74711559,-117371008,80017091,1161580916,-990503819,-163154680,35147782,1048580212,1946166388,-969479422,19165190,1178349547,1048587637,1963009657,147125765,-990502539,-166038264,18370566,1048581492,1946166388,-959124734,19165446,-953631078,-121374431,1950253251,359923748,1912609256,1879492104,-488046300,66683902,-622263434,1839331582,-17635036,-1188546369,-218365943,31717550,645972985,853481622,-47847232,-273152309,-1943941835,-745863232,-1193767394,567092489,113756959,1935874194,15271670,1343911176,-1334818114,-148738,-21309697,1490485247,-70,-216874,1397801942,-521617357,326716412,1127117891,1950556532,-327859433,427701888,-1813648636,-2081947132,-388139782,-655623650,412497536,-2133726460,135829006,412493440,-1777928453,-1066073064,1438865499,-1096684405,46816548,-326413056,1435734,-1996071285,-400263138,-257884124,-1593382912,46816606,-943705344,-1004216058,611754612,-1557890375,243868844,2023957674]},{"sector":7,"data":[113689380,-1962859401,186939422,-401967909,1827200991,1997471232,-402592988,1048772748,1962943711,-1405189367,-277544924,922689515,922690781,786965727,1476883167,4319320,110090731,110044383,887629021,104982528,611780342,-2146470528,-2145093874,611729024,-402426880,1048577388,1954620535,-402477040,-1073085647,-21977739,-352114456,89843870,1465275331,615136907,615259787,1914239875,-1761548029,-1994072671,618635521,-2097004151,512296131,1583293612,1448330075,-1407284393,-551646940,1960512292,-1438741730,82543396,-576519797,37849892,186965923,185103808,-18188837,-1994098938,1596238878,1103321950,-2109573758,1971471221,1165328964,-2109311614,1971472245,-831088819,1456436579,1967575157,-864732204,-178752213,1964129396,7675454,-1276615503,-546182945,16137856,-401902333,-809762977,-557193216,1944699896,-1287749482,1232338981,632491774,-1287749437,1030948389,-1291387144,1383318309,1933703808,1959922253,-1340700599,-92224731,-2009107936,-131748330,859272131,1106936009,-771084173,-1796665484,-2144898304,577964026,632493704,443794424,-1073036662,1430012276,1217925235,-218755918,-997527414,-1073561346,-236375573,1089044629,1760086274,1007908062,1007776803,1007514667,-402295763,49012346,-906049026,-1011105398,181874294,-1965852480,1344647990,632332370,-400183390,276094519,-2132903704,-1166851590,74764810,632231560,-1952950182,1960512472,-1618268658,112293584,-338440662,-1962880125]},{"sector":8,"data":[-1357477173,632201253,-1957567754,113352,-143195976,-1072997903,-1957597068,-397324088,309648875,192228924,-372156327,-311181053,-392864791,1482219002,-481210279,-1304526817,410255653,632426122,-2147482693,57934585,-150992965,199807971,1073837504,-1321303975,225771557,1929390568,602626051,632358598,383997953,632438400,-1978698751,-752504306,1958743016,1697797,113640818,-1023400527,-2147372910,2389566,113642101,-352246666,11571715,1929444584,1963015173,-373032702,1390974172,1006744029,-31558580,1951612097,1019346456,840070222,1950760137,1019870726,-1998817982,-349853170,-1307670524,336773925,50272278,168297988,269356287,1393580562,1913805585,-736847341,-2145968107,-2145782504,-568515813,-1789531874,1351963369,-1830223952,1479569920,-326412861,-1962518698,512297566,1988961456,615694086,-1521023202,-1856263251,259187153,902650484,-1070215929,199110120,-385649454,381391944,-569907200,-389465395,-4596198,1959922687,-1547597054,-779410258,-494216565,41272062,378266250,243999918,-771021648,1642599284,-402542590,108199973,-176895746,1239989739,1583286018,445021,615386761,-335579928,209239792,-864564103,1400385655,-1151970735,1048585406,1962943692,-871956969,-1070378972,-402372727,-1061665601,105351424,1476544393,1190169496,100565830,-422506377,-1795215620,24344446,1499094674,45138779,1442245625,-326898549,168185862,721581504,142574025,1249312955,-1996851571]},{"sector":9,"data":[-775779580,1942094824,-1983898878,-108854972,-1308132059,820134147,-591867401,1227316,-1980173833,109970244,96019880,-391316992,-85834661,-1728428406,100730625,-67623750,-443852793,28492637,-1577784327,101393594,37561532,-1071975168,1358676984,508711251,512634374,110016318,-1070389848,616302137,251594356,1265968316,958709435,1047791687,172237544,941520064,1965340422,616079634,192218937,615909062,-14438399,-15171050,-1173422321,1140713508,1140451473,243918986,-253221700,-398268861,1122386923,119408107,-2147457816,136629550,1499078407,1476687195,-1328549683,1478551072,28594383,568654492,15451146,646324710,-469096832,236857461,2017442335,-853210952,11542305,145768678,1088815339,15447728,15418342,51143140,1642463467,568590571,15466020,32186854,-68677937,1354979583,568654492,15401228,132653542,1021307648,1045382476,-1070378160,-1557874013,-2136857412,616479526,-465359128,-335797151,862053888,-611442981,-1063126372,2138883,-1560034655,32178210,-68677937,-426565633,-436147392,-1017619648,-2079930624,-948336873,-1743283706,-1979267207,-948329449,-1659393018,-939079815,-948329449,-2028485626,12110713,350787841,-1996102845,-1020942322,-393045783,65798022,-402638104,-389873600,-1465778310,1958742821,1127147528,-1465663437,-21970139,1929235688,1048625939,1962943914,-1394061293,-402477056,57933241,177315817,1492088256,16758979,1929226472,-967392273]},{"sector":10,"data":[2468358,-2067335629,-965204562,52802180,632325318,-1350253052,-2067397595,-972806733,2470276,-2067270141,-55892,-1023360162,515912604,12122630,-1994273483,-1943686114,-1205488122,567096580,632823433,632948364,-852155208,-1138849503,-1106867163,-930347227,1555749006,620804108,1622811085,621066252,918168013,623163515,-1658904115,-1070378813,-1557814365,-995940926,619200549,1492874564,-1843986493,-1777928680,24447000,-1775861565,-890636520,1048793659,1962943907,633512213,242597898,-118954997,-1559792573,378086850,-1017502268,1979703016,1959922190,-4069129,-790039829,-2096073473,2466622,-1029617035,-1005155547,856156965,1137043648,-58715789,1007383936,1006924320,-2146733524,-940211972,2474502,1347863296,-1598152660,-790351320,65065184,-1559983120,-1073011293,-1960479656,914948724,32187813,-1523152042,839158309,1979596004,16693767,633607817,631572223,631443199,-4920482,-2145873370,50364222,1394539459,-1908431128,-838416677,1048837929,1946163348,-1807841012,-1810988776,-335609832,-952205305,91488293,526106675,-1957430577,407866332,-1899786661,-69104685,-1563456687,-461363770,504132736,1157029262,1948221444,-1964756478,633381825,242614184,633800390,-854739967,-955857375,113639461,-402643512,74776689,633865982,567095476,-1155153759,-990504842,-955026048,-1962933753,130482783,780810817,788538822,-1910631189,180782045,637536441,-1960439927,-201588097,-1554178140]},{"sector":11,"data":[385820061,1048582288,1962943944,1946172506,1946238038,1946762316,1946827845,-2134575554,37489269,121390196,82524788,678691388,1401921001,1465274961,-397074938,259194637,1505024819,540877261,1023636480,1576534049,1583286047,-1017423526,-376482583,1424592724,-1887114865,-376467991,-2065068156,515912591,-661780706,-987301220,-1205488618,567092480,-1206467290,621066277,-987356723,-1205486570,567092516,-1396498531,-1408521205,-1559686645,-1710510980,-1408521092,-1581494773,-1552112516,-1408521092,-1308445685,878635519,-1262288716,1342227455,503730771,-852162376,-870414047,-838431707,891074597,512303565,109848016,163063250,-1994273483,-1943677922,858117638,-1933406510,-98186738,303482150,622639109,505356749,904902662,-1064558131,517180167,163109006,522308901,904968198,-1064558131,517180167,146331790,522308901,644945605,-853151816,-987881695,-1205439210,567092720,-2132206049,1381191680,-1191567866,567096604,975079726,109850295,-895371460,-838452443,-1945864923,992333326,1965412870,-770798588,-704234715,-1945864923,505796110,163055111,-1943941835,-745863232,-1193767394,567092719,146277919,-1943941835,-745863232,-1193767394,567092720,382019103,146286028,639749413,634394309,-853205832,382019105,163063252,102878501,536410911,1482381831,106387139,988473374,1979313162,-1595372969,-986048300,-1053143438,-851817870,512444020,1049303245,-1963190062,65533889,-1967092029,-136082747]},{"sector":12,"data":[-1966930969,-1910979298,-754732584,-2016769049,234586361,359856011,-1207710022,1743257861,-203304698,374948,-351904280,-123342078,1583286047,1465275843,1583288525,-1607023779,82516124,412852278,378222162,-489613102,-489561391,-466427183,-487108578,1319361166,1654806532,-1017503996,1049252688,62134427,1124057832,977465990,-1962641687,-971413490,-15165434,1354979419,1008244897,-402426625,-346554229,1880525117,-1572962280,561250328,415514240,-1592101632,418060648,-350656863,-1572962285,-394985448,412630657,24454919,654817475,1380995411,-2143685656,1623102,-2041924235,1049250546,-1269819237,-11147262,-1002536872,812974104,412616251,-1265556876,-12457983,1965082102,2080830999,276038694,415776384,-1173785575,-1332673580,91809802,-1734125478,-1017423592,-352320792,654786035,-1979287692,-2145860322,1853101051,-1047606989,1967192960,2080830989,108267046,413341439,-14264597,637566006,8271615,2080818982,640174080,8265356,426116667,-985759588,125044760,415579776,-1978633715,-2145850082,-592412469,-32672611,-1660294200,41189552,-2018262786,412827274,-402017215,-1893269849,637566470,8128143,1347601159,-1796734028,-2034224130,-754732602,-1948068896,-3109942,-1608975082,-527820563,635707076,1509951673,426120763,-372177291,83936129,309585,1124544806,1509548611,20497281,-346362142,1364414647,-1966525614,-31951826,-2078373171,1967032856,-805418216,-1946269208,-717321517]},{"sector":13,"data":[985674520,1073837294,686294708,-30480130,1482381658,1355020739,-1957539501,941137182,-1978961401,66466512,-2489382,1499070807,-1262266277,-921961215,1236078708,28622859,179112052,1225094628,-1006836725,-1958811140,1946141928,1963015179,853553666,-4724544,-11347577,-401023722,-945814040,-938571240,1068296216,-737789352,973502232,1981338662,-4181246,-1021779690,634914502,2080830976,410322982,-1064386509,640053152,68159034,68198950,74712862,-113750040,-1961268063,1914269966,-1006224871,974288152,1964557862,-936494580,973501720,1947780878,-392365823,-645398715,417142527,-1978087520,-401029106,1939685182,-670644719,-2081947355,-552140999,1058465816,484967403,89581631,417535743,409998987,-1577207064,385816943,1474828513,1880525309,-2033634536,-484076786,2132213508,1011476505,-1729624716,-1593381891,-1813505686,-402603011,378156936,915019975,378083528,1049241052,512366790,512301252,-662297126,-633669242,-29752203,-11311756,1494801686,-12826254,646587764,104470726,141826244,-1002773454,-989986187,1912620520,987334446,1964558398,-954320171,-389057256,385824994,-945809185,-938571240,1048897560,-398562328,-1070398288,417404671,-1961563144,-1591354354,199763418,-2521344,-401023722,-1007090540,37653073,-719418842,-1709798888,-701038824,-29104104,416679567,412751496,416620168,637681288,-1676093792,420026111,1455643037,-1959343128,-401041394,1049296071,1448417435]},{"sector":14,"data":[-855067561,1566465808,41271306,-617406288,-1953373306,-401051626,-315425622,-389849455,385824412,180558059,1007121636,-1573816575,-16115550,-75488140,-2010810593,169437470,-2146470675,410460153,426118792,426249864,512232683,512235878,-318105240,-1007156619,-956251143,-1508336378,-402601192,-1070385584,505798307,278976654,104472324,108275312,-400133982,1340290676,-1946310424,-2011642594,-1977229282,-1994865634,-1960453602,1947769622,-569981428,-1073086171,-989986187,-41686893,113641844,-167696930,-2133339944,1927807463,-33065731,-1843011834,1726542474,-33131267,-1977229562,-385621008,965935249,1964546838,-637126385,-2139982811,2481982,-768408971,378229328,-924313488,-1973921029,-1978087666,-401029074,1668480273,1381226887,415702666,417142527,372922714,1081546964,416560698,-1605223817,243931335,-202893112,-566329284,393478181,974701984,1948639238,925952014,417273599,-12794904,-401022186,-11009276,-401022698,1021901586,283900155,-400172383,-645399371,417142527,-117250072,-326412861,427689718,-955354111,69382,967436288,-1511453067,-149034958,1947663544,-146610137,1950093288,1024816091,276037886,-1152334714,-1477967870,-1881503856,149656071,-1705974734,342531386,1442892637,505284183,704217863,-1085207179,398006525,2147137536,-1084642317,521017540,-201526389,-1608579420,385816790,113645833,520103426,-1017225465,-466157737,844124965,635609316,-1957496693,-3591215]},{"sector":15,"data":[-1961296618,52814862,-1994854386,1512436750,385861939,243996925,243869156,-1957157386,-3001400,-1961296618,-1994005490,-1977223154,-2010783218,1529216014,-768357493,419239679,635702923,637144713,635571850,637341320,-492648565,-469332187,-1950130395,-1961297634,-1021773034,920161360,646514179,-1017587570,918588496,646514179,-1017593714,920161360,646514219,-1017587570,1120175854,1354975982,63224402,1122894512,-1158803536,28312526,-1070447890,45107950,-1070447890,62409454,843247104,-1337266496,-1337790968,-1337266433,-1337790969,-1337266673,-1606226427,270801112,-1017619730,0,20977960,-1207959352,-2147336433,117901056,1304690688,-2050485142,-2032368017,1309953508,1314999868,33589004,-2145824768,51202,71241656,117637376,-1006632953,789867085,-595169402,340649094,1632517198,8850510,424673287,22938320,34582528,65540,1799,342525237,-2039511501,1306822364,-2031333868,-2029236639,134744064,134744072,404232192,404232216,-1333457733,2097608199,544538918,645742208,572093448,1008299526,840004615,-2068137024,1948842368,-2065450235,-1006501200,1342187961,1493050600,-166148701,589724678,129246837,645662454,-2096270332,1076264510,20711031,-321912202,416556680,645727990,-972721150,253284358,225707836,645727990,-955878372,-736569082,416718925,-954688862,1880712198,-1312557049,985674320,979268825,-115816674,-8366219,-28478439,2080831176,1962478630]},{"sector":16,"data":[2097608264,1979253286,738164800,116792180,-116906372,-8375436,762706226,-2147415367,276048123,-352189255,15186187,1948842880,29276424,416548550,2118025987,74924070,416558800,415776392,682738680,-1070426133,861379051,-1006225216,103642392,415776384,-1911720935,1285629632,-754667260,416457704,-1960442689,-1323773410,870568708,571840,61540126,133948099,116835167,1947739772,302168087,415776384,-1207732949,817041921,-849914283,1566465808,1427686816,11818838,1583288525,-935428003,91499288,415776384,-1206749902,-617475822,-849914283,1566465808,-351860808,117946380,415565368,213386101,426287884,-1575393117,378214758,113645680,-385935208,-1547438149,-997582693,-1269344683,1594936581,985881950,1998114590,183634456,974157300,1998114822,1912683532,1946726406,-132599806,-1950090813,-1978083818,-484048322,-117118206,-402619159,108329209,-210297028,-286735738,1007056120,-2031585521,-119281466,48433780,255647211,-947463817,415579776,-166497017,69630982,-964031372,-1039478538,41158436,-1031014862,-2045192541,266764530,-494869808,-2133390832,78710756,279504082,-864025740,-1964635520,-718894868,-1708750824,2097608216,309664806,637681288,-13444470,-1269344683,1594936587,-1007133346,262400,20977960,-1207959352,1052419,50331652,-2005925888,-2000350102,-1995732755,-1995092508,1314999868,33786321,-1073721343,33555459,13959171,-1991900877,1321815736,1324502752]},{"sector":17,"data":[-1984803063,1102332313,1104560581,1153843674,1165051183,1109672431,1118585418,1123438363,1136083751,1342178818,-939360231,28835840,67112975,65536,1787327488,-309798636,-460780664,1011749965,-95526578,16843135,25165904,117637128,1711303424,-1131840510,-531707570,156168782,-1723756977,-985549759,-633219519,793036353,-280661691,1245848641,457354306,658699855,4437827,4144443,2080831039,460594726,645727990,-1978371050,-1157364540,1740212130,182996992,-979150597,-115741928,2080831171,-143385050,645727990,-1141869546,1740212233,-85202944,583141063,113713152,531636932,583403207,-1007140944,-75366480,175380776,-75382734,41228624,-1007156560,-75366480,-160163504,-75382734,41228584,-1007107842,-1273444960,-182065152,415514240,-166824703,203848710,-617412748,283642804,-1683766283,416129304,-1020926301,1979711293,1959803652,1397903399,1539633384,477255770,410376970,-2134569752,2518590,-125170060,1448411568,-854543273,1566465808,-775932989,-774319638,-1947676184,-773664294,-774700062,-773664286,65196514,-775844912,65589736,-468284976,65110053,-1061822000,780725714,868427234,-773140032,-773271080,-774206488,65196514,-773664301,-773664286,-1949301790,-773271103,65589736,-468284976,132218917,-304971595,635580040,104485059,58071247,-1323774048,-757036542,-758904092,-758904092,-1564210460,-1017633309,1358316776,-1812578072,1979071720,-469069051,-162521739]}]],[[{"sector":1,"data":[203848710,-617411723,638852746,619187124,28793844,196402978,1542724328,695598858,-166730880,57936067,-2012165248,-165276642,203848710,-1014362508,-1718087900,385867658,99293413,-320336972,-720976141,-470286312,-943458047,1981327622,-1425619064,-880240104,853760,20977960,-1610612536,2101007,251658242,1304691200,-1925442454,-1918136968,1309953508,1314999868,17796706,-2147473404,50333697,13959175,1167196467,1171408326,1172719069,1174029809,1180321290,1184188038,1185514612,1192576747,1197754174,1211058073,1226393751,1293175902,1342180872,-939360231,262144000,67125263,983040,1783481346,2022530580,-460477555,1011749965,1649303886,67178382,25165904,117637128,1711303424,-968516606,-582626747,-247077307,172358213,-2042209722,1950782790,-347690620,1044845894,-1723374521,-1505218745,1581848904,172823628,424673295,22938240,134455296,524352,33555200,342527152,-1921479345,1306824107,-1911779895,-1906160031,1342308613,134316032,459520,23003323,1170621852,1172129234,1173439974,1178504779,1183204954,-2072754539,1189824169,1195067157,1200899938,1218857007,-1892726503,252350491,-2145824768,89602,1074267040,2048,-1340997629,1326738060,-1416791923,-917642099,1636699277,93217358,5243393,524672,-1157626109,-1677631744,-767179195,-431628987,1262874949,1514555790,-1790540218,-1450937274,356969286,138885191,798061457,424191560,462368585,1051024]},{"sector":2,"data":[41949520,-1610612386,8404751,251658248,1305739776,-1923738518,-1918136968,1309953508,1314999868,17796706,-2147463164,50333697,12255239,1167851871,1171408326,1172719069,1174029809,1180321290,1184188038,1185514612,1192576747,1197754174,1211058073,1226393766,1293175902,1342181385,1577222169,60817409,134234175,196608,1787609106,2022528532,-460477555,911086669,1649303950,33623950,25165904,117637128,1593883392,-968516607,-582626747,-247077307,1234062149,-2042209722,1950782790,-347690620,944182598,1938884679,-1505218671,793319752,9444239,402653192,24,8,24,1023410235,-1975076033,-1380252693,2097608330,1702106662,116790507,1947477629,-1948075172,645807747,-1157400768,116821065,1946953340,6797640,-1577671448,922101374,-922871599,-132590430,2097608387,762579238,-2088037189,1076264510,2075853687,2080831115,427035686,-402626631,2124543605,-152514266,739823926,-1577053183,-336062252,-1329334015,687571455,-1339132903,1358659848,839021593,-75447360,-1291684568,-2113949616,1948995835,-2113949676,1947816187,-2130202612,1947805947,-339725816,-935426044,-1597769704,1448417477,-855591849,1566465808,415776384,-1307609813,287553579,1448467250,1594936663,-689414818,1880525814,-1744386536,-320274664,-1683766288,-997568488,-1269344683,1594936581,-1739039394,416425719,416089603,-1020926301,1979711293,1959803652,3663911,-125164942,134529930,1438659152,280254294]},{"sector":3,"data":[1583288525,848517213,1465275840,281874612,-128098721,195,135790600,134744064,402659352,974657544,1998114590,183634483,976057844,1998114822,50036775,-1015020686,-88123646,-790351219,788005856,-127990389,-1073485629,-75494798,-2147257854,-1007156541,50381817,1397755660,416220730,-811596938,-1907901672,-475867346,1482422309,-239867709,416693898,418193034,104340596,863115471,922702160,385820130,512366857,110044643,1482237410,-1964443510,1393325297,-1718035661,417666815,-2012450213,-2011638210,-132584162,-1007091229,63879762,1122895792,-956847440,41222145,653183184,-886961014,662031154,561315594,276102923,-288829362,-166950362,1976109777,-260747502,-288829362,571247142,1976513231,1523134978,-826649917,-301486077,-139808702,1962934726,-288829438,571247142,1976251083,1962871587,-925874672,210380526,-922037770,1968116341,-925874448,210380526,-818753758,-919469451,-402209958,-976176632,2018378611,-30000378,-385649883,158662867,637283898,-924253322,-1963029760,-16931,-1431182286,116471,-909114763,-1341927750,-1975325177,-1977159999,1959101445,-1966525945,10349017,637419067,646579317,-981195268,-444328843,-976220043,1162867827,-1047868976,92940014,909893355,41166334,-343219150,-956847439,41222145,-1047868976,76162798,-941043149,853510842,1950701311,-1169011419,-1431239729,116727,-909114763,1525596554,-1257928154,-29476095,-1979419355,-400163802]},{"sector":4,"data":[1049213594,780674532,-1957222942,-381779715,91488293,-340040984,-1169233914,1593746920,1959332447,-152227319,1273560533,787020985,-195303238,-402210041,-628377316,-956847439,41222145,-826619440,-301486077,-289306046,839158310,3554276,-1979419354,-2077885146,-2078772027,1259632101,-842002060,-800657037,-289305911,-1257993690,-1948587136,1959101651,-1949158648,-339135782,-768388485,636106377,-332494762,-1175787483,-13443190,1049357619,-30726656,1946272758,1962871594,-2135601882,63945298,-909097403,653181322,-1073085302,1968112501,3554287,-1979419354,1512439078,-1984319512,-2010782666,1596318254,-141863337,1048640907,1946166761,-1174476795,2045249259,-32118599,-922067106,-315488652,-1200035588,1522097384,-1946973976,-1608127946,-1022941716,1122895024,-808337358,386273846,-288894682,-1161581494,-405797938,389974070,-2037722,-605495158,-738686209,149783488,-2010772106,-410368219,669576309,585624563,629679845,-402426553,1355019034,-826650542,-301682685,-775933374,101856975,-942594537,63224558,1122894512,636330038,369500726,-300997594,369545270,-13215706,1511598870,-801717416,908455174,636290768,369542710,-940092122,91488257,369545270,921161766,639057544,-1159296430,145753038,1525861864,1967531146,-224335869,-385627949,1980296579,-7870417,1381040054,-826612086,-402083837,1482355370,1927807979,-2034183169,1942830048,1176799752,1877476213,-2083990542,-428406547,-1963842992]},{"sector":5,"data":[63879910,2145913008,1256741106,113755135,-1933174603,414648007,113741003,-1932060487,414910151,197889286,508559377,31457920,-16670720,64,256,342528867,-1764190540,-1757899000,-1750493308,2147129289,1342243073,134316032,459520,16777472,1170621852,1172129234,1173439974,1100562830,1103446452,1104822742,1160725702,1106199921,1112162852,1216955052,1126646518,302793655,-2145497088,122882,-61536,0,1661075471,-1273730413,144103574,-2070464361,-912804457,261558935,5243905,524672,1795,-1677656063,-767179195,-431628987,-96079547,1514539589,-1790540218,-1450937274,356969286,1682390599,793221447,424191560,340549193,1248589,20977960,-1610612536,4259839,251658240,-1822227968,-1765403542,-1761044776,-1752918224,-1748396102,135239442,-16695295,511,13959168,-1747910349,1171408333,1172719069,-1746254351,-1745315857,1104582660,-1743830566,-1739548625,-1736796053,-1730963300,1123457251,-1723295476,-1301055232,-1342173425,33619968,100992003,168364039,235736075,4111,704643072,10752,2763306,704653824,704648490,353708586,1058346261,353713941,356466495,1058357013,1058357055,16191,84215040,185075720,235801355,286331150,403969044,471603224,538976284,673457188,757934120,842150445,1060649016,16191,1056968767,792657951,4144896,788545343,1058996287,4132864,1064704,1056972607,1061093423,4140800]},{"sector":6,"data":[268451615,1056964671,272564224,2047744,1056976703,1060044863,4136704,522141456,1059006271,926883631,524238623,924794687,1060052799,524232479,522665759,1059008319,1061101367,524236575,656359215,1059004223,658448159,523190047,1059010367,1060577087,524234527,757940007,1059926335,977218870,759119661,976043839,1060515135,759116077,758202157,1059927615,1061104954,759118381,825048886,1059925311,826223917,758529837,1059928639,1060777279,759117357,16177,469763868,354156558,1842176,352328732,470679580,1836800,465920,469765660,471597077,1840384,117447694,469762076,119275520,924672,469767452,471138332,1838592,235805703,470683932,404491797,236723214,403577884,471141916,236720398,236002318,470684956,471600664,236722190,286137365,470683164,287051278,236264462,470685724,471338524,236721422,336862225,471078428,438047768,337386516,437525532,471340060,337384980,336993300,471078940,471602202,337386004,370416664,471077916,370938900,337124372,471079452,471471132,337385492,7190,268436496,202375176,1052672,201330704,268959760,1049600,266240,268437520,269484044,1051648,67112968,268435472,68157440,528384,268438544,269221904,1050624,134746116,268962320,235931660,135270408,235409424,269223952,135268872,134877192,268962832,269486094,135269896,168300556,268961808]},{"sector":7,"data":[168822792,135008264,268963344,269355024,135269384,185274378,269159440,252709645,185602059,252383248,269290256,185601035,185339915,269159696,269486863,185601803,202051597,269159184,202377995,185405451,269160208,269421328,185601291,49942540,1573042,-1844659280,645727990,-163220464,36072454,113720948,5251778,583272135,113770416,8902,1941639659,2097608338,544477222,644613878,-1189514236,-35127193,-1144784660,116822746,1947215485,1812395527,-411760602,-5192711,508623745,-75426188,276053072,283885618,-75366480,74717480,82559026,415776392,-979319816,1465275672,281870516,-2141364641,1008257086,1018302325,839984056,1465275867,1583288525,1880525661,-1744386536,-1880555752,-1683766297,416129304,-1020926301,-1964440600,1947784766,-821675512,-1978829032,-700544776,-314669032,31717400,235324409,16824583,235289067,1849589767,745799718,280694960,869413632,1465275849,281874612,-1168286113,1048613697,1947277509,-1823294973,1448411824,-854543273,1566465808,855642297,-1822180645,1448415920,-854543273,1566465808,-12729593,990148095,-14977840,1914234646,-2030138859,-2031319312,1427157194,280254294,1583288525,-2134640547,427229691,-478094346,-2147095793,225906683,-4144393,-1062664331,-134056512,-2084308541,-109771527,-1950969623,-774206527,65196514,-754535981,-1547566110,113649124,-1006688798,-131734622,516234947,126494180,-1608596705,516236771]},{"sector":8,"data":[126363108,-476003553,-467760347,126363173,-299988029,1942475045,1720198660,2046167808,1173553926,63172578,1160114230,-438113789,-299988029,1942475045,1720198660,2046167808,66257671,-1007754518,636499459,-487980219,915129316,-942594574,-2010774413,-368902042,-1111231262,-1030178664,-947631720,-773573992,785943520,-1738438773,-1021760605,-372126325,-372119087,-1954261573,1004206039,-217876534,-903101532,-1527526777,-738211193,-1959333397,-1961284834,-775058474,-773205527,1241219561,-1395231612,410318347,539419647,638446341,149619976,-341126922,87041540,-1008410041,-1345304,-1006217245,-1608129474,-880073245,1594338035,635740611,1085919795,-1947076863,-773795368,-1312619552,-1948200186,637051344,-22822397,-99220699,1476901,1465041702,-465648634,-401176027,-482964955,868823845,-29475877,1326478373,973441574,839349442,1137183430,-1991775253,187032638,1392997595,-7215023,1594317657,106414938,-992310443,-1977228226,-1977227242,858121014,92939977,292930106,1191867467,637550139,860876662,-338457637,-365000403,-465663707,-617393371,637550139,-1977217161,1958885893,180761097,-347651128,-620015637,1364395892,1509897960,1049188955,915088868,123545066,113754975,-1771890499,415172295,113743496,-1767827263,134414539,-803647488,89090,553583024,67584,1,1442840576,1805279898,-92276070,-92276097,25164415,5898497,524672,-1526724861,-1996387072,-917586790]},{"sector":9,"data":[-229711794,-1907422898,-1270769343,-700332735,-968762815,1900359492,608300869,-1404941758,-162587838,-1220335806,2080831043,1962483750,-1715422426,-402626631,113764708,536879810,583272135,113729446,2141594310,-802783583,549507264,-1021783034,-75366480,41163088,-1007108046,-1273444960,-474945536,412853187,1438943824,95704918,1583288525,-141010851,51958310,-1558655738,868427238,-773140032,-773140008,-1947676200,-773664294,-774700062,-774206494,-773664286,64160738,-775844912,-773271064,-1982856216,-2145000426,-2135619615,780725714,-943512094,655928582,1779878810,218149380,-1696681984,267370,524466,1638320,4195504,41949520,-1207959152,2100993,16777224,-2005663744,-1685449622,-1995727978,2147123194,2147123194,16882590,-2147463167,50333697,13959175,-1682439885,1321815740,1324502752,1099845385,1102332313,1104560581,1153843674,1165051183,1109672431,1118585418,1123438363,1136083751,645662454,477428032,-1181024581,652738663,-1039743000,-954204126,-1339898874,-972634273,-125849566,-2118110525,1964593403,-121045502,-1270828861,-495065088,-461903677,-617409420,242407739,416286264,-662042510,1692928948,-1195116318,-1037893629,-925773773,-388904751,-489563509,-754720047,518898409,-1896087368,1346273752,1967935232,1379828056,1968589056,-1896827824,-155176,1962886717,-33538748,12074868,-2116514112,1426063422,-2127792726,1342192702,-2128317375,1325404222,-1591577268,1446838306]},{"sector":10,"data":[1024750663,360007493,-661733325,621054113,-1606614880,-1341754368,-339673537,532689410,650874051,75898503,-1697858733,-2078374106,104551172,-2135942810,-1057095052,1049264563,-1270802277,-507910135,-2079944922,110044676,-943520634,1696116486,1644611483,-946089959,974693126,1426115484,1586228363,2013849608,-628677261,-402235765,-628655980,1200295819,-1982167294,38242575,-1986852381,-628621753,1568162536,855639242,-401110071,-756320185,1458342741,119408215,-1962379637,478873214,644881667,-2022219288,233329658,-386757888,123207688,-899850657,-561315836,-1767009875,-1510741551,-375127693,2112452595,-17810,-768408853,1458342741,119408215,-1962516853,2139818054,-1827697918,990017419,-1962772977,-205505777,-1962510938,255562511,-770990957,-1192754315,-1259826313,1594334583,80371038,-326413056,-1157216629,-469106687,-397366155,-628656410,1569851279,-1275067702,1347900934,-167558006,-523134760,422461067,1912945454,1851844867,781403975,-544786037,639411091,-528068520,1049319320,-134011364,-1559917778,1482630684,639375103,1455644255,-1007988649,630366806,2025553,1970521576,1950439780,-922007291,213126526,-939532056,69382,-373072384,1465281972,-1076656378,119416459,1138954123,1959625448,41388814,-2002455727,1950505229,-401151010,27839495,1967269493,405126666,852307944,839510976,393497280,326497802,-1988696344,-2027484146,1583286227,1839393219,-378685463,-1957335661,-1923655956]},{"sector":11,"data":[1317734526,-1961827578,1933895709,719848308,-498644993,-402396174,-544538320,1183538783,72780546,-1962905973,252102627,1375731713,-1957246128,184618806,-166627850,18447878,-1326971532,-389849570,99297699,-320335692,57827070,197387275,1455684068,17774219,74839563,701426014,1948255478,1831069955,-924314956,1455644414,17774219,74839563,739371358,-353692492,255232854,1979058945,317283844,-350833620,915101401,-167050993,-379714443,448015371,-1957246741,184618806,1577350646,-1272186135,1354230556,113661523,-1962858978,184618806,-162564874,1954546500,-401756130,2088828805,292879875,-66880384,2088765055,92273155,1860700848,-2144277505,443876412,411961078,-1961659388,1546323548,48988944,108273840,1275023592,229701867,-1325446936,-12326902,229639659,-956351256,2498054,-1017619618,2005602187,1444340482,17774219,242546187,-33325952,-1403123596,-486598424,-379665414,-2141800857,50750,-164422539,1953180648,-35657723,-121703189,88405504,-2146995184,-386988700,-1017184819,-1463549950,512448083,-620026270,915082101,-167041436,1552621172,-611627007,567099060,-2013908136,187065398,-402426634,113731931,9826,-943498402,-770081018,28756895,410130058,409998985,1364414659,243291730,-16246402,-401051594,-1818165276,1975519781,471394322,-561387430,427697792,1499094775,-389851045,1726537383,-58699776,-2046331856,4581600,1089003654,-1817356800,243963565]},{"sector":12,"data":[-620092012,-1444412556,2145061632,-339725820,222080007,464519797,1258299112,-378156546,630464002,-1981283468,-390057472,1482555403,-33531928,-340625971,173232283,-1342016064,1963605024,1362931714,1495788520,1405311067,-1960967448,-1810986993,-1598140123,38242856,-783789928,65065440,266885360,821854208,251528308,669525396,-1017423616,-1310444975,99743242,-528076752,-964443303,1019280900,-1341292999,-2134573520,74789372,630460158,684785281,-1598157962,-1338985432,-1811481039,1397801765,478669048,478931091,113465435,-1895825477,245376707,639803904,-1064386509,639778432,-2146994436,-31055298,-1608119947,270795926,640033698,-1560014687,-756537824,130036505,-326412861,1586168500,19982342,182877,-1259566251,1441786628,1586228363,106334984,225834506,158650890,266864820,80370945,1781721344,854362965,106859456,1560350440,1426064074,28372107,-1957302293,-1962757908,-922023858,1451955064,198806278,-1962248998,-387446178,113925376,1783359744,-1326675115,1440541443,78703755,1443651211,1988822615,142525446,117491432,-899850657,-1957363704,-351948564,-326412829,1317734064,2026441486,206998472,-636757621,1586216820,106386960,-1006209397,-1796732802,1583286016,838237,-1326675115,1439951623,861334667,1089876928,1953020904,1870391305,-193608902,1566502891,-326412853,184966795,-1274579749,5040128,116789227,1946229118,1141291072,-141024819,46816720,-326413056,140413782]},{"sector":13,"data":[1970228712,1770383619,1258708619,195457,1172898674,869991273,53385664,782436279,-1559517185,-1409160275,80371038,1767762176,1864165462,82376564,1455644411,-2014771625,106386944,1862854742,-152931237,58008580,-1476353047,-166562556,57942020,503356137,326929671,-351904629,1977289570,537196118,1364214901,179026,27789324,1465067893,-386102448,1599668149,-388496549,1464860750,1785110682,434329876,-1528243829,-1995601553,2139685469,1393224702,803740931,-1964483840,1482251007,-1960439796,2106271261,185015810,-166365989,58007556,-1996484120,-1943660482,-1272571386,-93984758,-1017225465,1996905531,88405511,-1023118072,-379013143,26795,-1572863999,-1695964611,1753803112,-1269344768,-2145940737,58065402,-1107233815,57940294,-2011615042,-1946799596,-387460614,-1073020701,-639040652,374835968,-400928885,1334444351,21284380,38061568,38543362,68240582,538726282,1334513996,307005716,-1994895477,-919399348,1946701625,105876227,856116361,206518729,1334510452,88901894,214215,155502080,172279296,189056512,205833728,24611328,167925642,-2146863918,158664958,1374420916,1946484352,99516663,-1978764152,49971442,28707954,-956380418,-889272578,1955133557,55020045,75024638,68045952,-402370677,-4980512,602414051,1977879041,139430676,-1962455927,1284049999,172985093,-352105335,1364414489,-2000080046,-400049138,1499071258,-58697637,-402426372,1583339103]},{"sector":14,"data":[-768401725,-1786258802,-1994456064,187073173,-1274841646,1448330238,-1146640706,-16046554,-1782708620,640203687,-2115040071,-131693891,-1190956029,-2080704757,28312770,-2097091602,-297270294,-208939381,901038474,478749133,503465100,-1273033209,102878501,-454718945,-339467743,857859584,1532951488,1347638979,-2144975173,57933884,858150075,71797184,-1994930456,1334379087,640334598,1946172544,641252099,1200209971,397273092,-1996335223,1532495447,1381221214,-1952131141,776160209,1128468363,-784661277,-1959857291,-1017423345,100663371,68616302,50331798,25166124,12583512,6292656,4196104,3148128,1577664,796032,412416,0,646092171,-1341930877,-360452480,-339375614,-1974800896,-301929535,-1324520310,-1964649981,-989196732,-352075133,-360452608,-339135741,-69014528,-351944061,-347935744,15461376,205818092,1149913674,201470978,-301929719,-1341920637,-301929717,-335484094,-1979710488,1364444134,-1948568745,-2130758709,2604094,-118982539,-1964756268,279448644,2088963957,158597123,2084242358,-26250493,1965074628,92046095,-1240894464,92027652,-989963149,259358888,490627,95816052,1929870395,180682313,-1958644508,-840682759,-1946581222,1975716801,-1949332730,731835354,1945705427,-1329430265,416776960,-4194549,-1198754305,-487129033,-125074062,385843691,116791442,1946687638,1039971968,1499461170,1398195035,169423038,-1107069724,837294406,16547840]},{"sector":15,"data":[716908405,3964966,951780212,142574374,-2146798336,1946161020,-350572528,1150158344,374204434,-337376505,1539322370,2088813406,460587018,-1274395510,1963108358,-1476217828,-1273596668,1963501575,-1459637232,-1274383088,159154177,839021824,155502308,172279296,1448592128,-1101835950,1186666800,1961101862,424066566,1344689339,1493096424,-58661238,-1959889664,-722991537,139410387,-2131039884,1962934652,21284371,-1965935617,-772109548,-2104128537,149679654,340037126,118860520,1515805691,1405312862,640334678,170280638,-1157204764,1421747768,139954982,721833099,-466483124,1455643486,-1101901485,1186666800,1961101862,424066566,-2094639941,1946159231,-27334643,108393994,556931,861008757,1509876425,1509950952,-1017226407,-1965935785,-772109548,-2104128537,-486494170,-1031585791,1204284932,-2097151992,15401962,-300941128,67010634,146014836,2049344762,-469208026,-339473887,-1155406336,-16046554,683344756,-2146652122,41157630,-987886672,-853167081,857733921,-1995994688,-617414073,646094215,-1898826978,10324442,-1017176316,777148190,-1220665714,646190731,-350665025,1381441039,1042189870,-2112451657,422625062,1112953680,-335484094,242549160,-259267534,-1795215790,1526376414,1532947435,-1342168902,-301929696,526342744,1437106383,-425203544,851704743,63079396,619446507,-2146077666,1946161533,226328582,1006925056,-2012908540,-2135684539,-1157240189,1031808554,-1157401600,2005607992]},{"sector":16,"data":[108477192,2105550452,544538639,-68419349,1080704,440142452,1170605685,351010575,-1912159222,820515397,149620500,-68419349,17384902,-388970613,411182847,192774395,-1960938240,642169843,1946172800,643087107,556931,1246366836,340102662,118756072,1170654190,-71106559,-352009597,1166601216,125666060,-1476103168,-2095811456,1946158461,1948297220,58557194,-1475841024,-2012973808,-2134701227,1946159997,189122297,15419904,1948263660,65700857,436245227,866729129,1739124906,145483946,-2018975057,1806383786,1940549546,2074836491,273481643,915101379,-186121969,1405837055,914969169,1552623204,88405505,-167021184,108268036,-402413336,-806878965,1678165763,1509949478,-118924455,168097375,-4711819,88405759,-166693884,175449092,22472784,-402361768,-1019150421,-396201751,628293672,855639993,-774188581,-488910376,20742392,-620031115,17107060,13796096,-636811285,24500235,83280704,-1205504732,-768409599,-2147138314,-1578619275,17102336,1143670388,14320396,-2096086013,2046361810,1647569176,-1962130293,1156976212,141852677,105155473,-1862139416,-1957313544,1586190060,868233990,5302482,-1377301643,67071,2013319811,-899850688,-1957363710,1586190060,3467274,1156983413,611680261,1946813686,47179779,1946223862,205833989,1317732352,139889414,-1175977296,1697793,67456128,113925470,1639966976,1952932328,58490885,-1796619520,-339725471,178191]},{"sector":17,"data":[28837611,-1070383872,-779368141,-1949661357,1119093084,-781049395,1157022555,494239749,1946813686,40888323,1392498664,-3282864,1347574617,-1058483317,-346400513,112656,83284531,-1962511324,1418397764,1418248970,1686815492,1686815506,-1957248252,-2147414218,-400554676,12124168,1224831488,1364446046,1156994898,1098122245,1946434688,326929729,990928011,443878492,1552678576,119408134,117548776,-1073007502,1149836148,-1982123252,1082789980,272957203,-1610267402,440145781,350753397,90472702,-115691269,652740587,306219520,1499095032,-167001253,1156975476,-392396795,1973286046,-786175989,-639040651,1625680224,-1956596247,1547374684,1124430854,-1022337911,-1994916191,-1964437436,1958820704,88405535,1342665730,1489058624,1156977268,-1986232315,-400137162,1973285978,1619388871,71073987,1156981364,74743813,829692476,274500435,1913019451,1525174535,-617391871,-15515512,132845636,-6559661,1527922824,108334396,1197254,540805099,307527925,1085588224,1396683837,24444702,-745809266,1914817883,532757250,1364247387,871891799,-202780224,-1442745429,-1017620129,2129170771,947032340,44614491,-771024524,41234040,-377279773,14320385,1948517622,206342425,-1961995127,1418398796,537196046,-1957689227,-941095356,1153915135,-1023410160,1365236969,-388921513,1157038016,1165328389,91558056,-32118704,1053053016,1290282520,1181899264,1948255478,205783301,-1024062997,-2096466680]}],[{"sector":1,"data":[-2097083324,2013269588,88899779,29554180,-880075659,467912747,-83532672,-335586328,1946265618,140247488,676995,-880035861,1610533608,-1846951079,1381061630,-880082520,-1962845045,-1274841641,1085553983,-853604834,1499078433,-1957248165,-402583754,-882967128,-1338130382,-326413055,-1744414890,-486125941,255232790,142525441,1397807499,1543486184,-1019527310,1091072601,1566465799,-486537526,1595009283,871426889,88405705,-2146995136,-390134428,1283915781,1343611664,1418547795,22842131,567099572,1088948082,1482382078,-33101373,-851528624,1492546081,-326412861,503732054,106859271,-400127041,-320291597,9562215,205425495,657112611,-1073042772,-396363147,-678755385,567099828,1337199986,-529325619,1566465799,1023410890,57999365,-379668759,-1957339526,106387180,1586169630,655146758,-1962918424,-1950414754,3467302,-1087992902,1454647052,124920269,1566465799,1006634186,1020032002,1007580163,1007121413,-385256431,1189699076,1584458078,-379688983,-1343529396,-390305048,27813731,1290400117,1095939,-1161219267,448014092,-1950735923,-850480090,-1009028575,-387151019,431288764,-1269816883,1478610189,246730890,-883088947,-2044923160,-401472316,-1002824451,-326412861,503732054,106859271,-400127041,216579091,93017959,1462176959,977284523,-1118377838,-628338088,-391662616,1599776671,1341719378,588004923,716703861,716745518,-2132235520,657112831,-1174402887,1239941166,309504]},{"sector":2,"data":[1105777203,668253696,656490112,-1107069680,112797784,-1480529920,2097120744,-1487280125,567103412,1357433715,917789351,-503897651,1347609591,1784370842,-2147370988,123106536,-899850657,548405250,91501624,24384568,-1490163540,-373034782,1726569782,-326412963,-1293396138,-1946979636,-471330722,-1961135006,-145555108,132678,83232116,856585508,-1949201463,-24424719,15288555,206474077,185489035,-2091550510,-628948503,1917997312,197233483,105155522,-397408908,1582890206,-1957539489,1451952206,198806282,187528410,724138194,1926634447,-54466525,-225707637,-1956947367,19138118,567106740,1583285874,838237,1946158653,1557064097,1465695465,1090985478,-2135355934,-1845037568,58000421,-167640903,539333126,28902260,1347637504,858164159,-1845037322,58008869,855744232,-1858174757,393478437,630341248,1125151745,630275712,-2146929662,36016702,-1958542988,23390459,1048580466,1963468178,33522520,1172853621,1030810369,259260419,630341248,1024161025,1349779461,-379836951,37575774,-1172933376,-919394677,567098548,-392999822,-544538344,1929454056,343379,1048587637,1962943889,-1845037533,192160805,410320651,-347349109,-2143949926,136679998,-8189323,-1157270270,-2014642175,1039867625,-1468792830,630341248,-384666622,87907327,-387156736,91409453,1962955325,1540745710,-2024187304,55661267,-1306063858,-385895169,-1990655750,2089616972,-1946615021,1445399566,-215577666]},{"sector":3,"data":[-1990500700,1283457372,11535365,567100596,-2136423798,-2094781836,-1341832184,550142721,1152647350,1819419085,630327030,-955157212,67140,630341248,-972720888,36016646,-2010803552,88405508,-1475840640,-2147191806,1010828620,-398822136,-930350685,745849355,8448385,1929435779,868823812,-108402478,1681295761,-101259226,644089543,141688832,-2097036925,-437583662,-1845924120,1066183,-1017182464,-380055832,512318210,602416738,1644611580,-1023410138,170298298,-1960472546,-1262253102,1914817853,-1070361853,-164407613,1952038888,58490911,-1913293568,1543705436,1474201350,125152940,-126500854,1599780841,-588521849,-919354530,-1842969519,-484346843,230785795,-1014769273,145904134,1515990248,243980679,210249106,-2013051768,-1017576364,1431994601,1183575179,-2133030394,-461311773,-1859745777,-1877047259,1961036325,-907548667,-466480526,-1962254709,1451952206,-331290612,576093,1431993577,113699979,-973068911,2461702,-1962123637,1404429071,-1979555957,-538738657,-2147483208,460605947,1341882432,78648692,1951595392,-2146914290,125059579,1967324032,1528869003,-1956429080,1317735006,139889414,1575741928,1375733962,50102358,-594915209,-472776910,-998182005,1596360753,425507353,-851639880,-1959300575,1140898008,-1024056883,-1205373824,-897563647,-839503328,-918296543,179833458,-165556924,410353862,4241438,1157093518,536870664,1051986549,28582349,49011507,1516168242,1347572163]},{"sector":4,"data":[28955787,-851397632,74603041,49013810,1499070900,1052004547,-1017634355,-1710860800,200541350,398900743,1779964570,-899684332,427169535,-952434278,2123151393,1946876648,2124855299,409998987,-308621057,1578396191,-912632117,-1709938145,566704789,-402103064,-806827345,-872814389,410326586,149422966,398245539,1779964570,2014773012,77961753,-883029004,-385460394,-1957340769,106387180,1586169630,40101894,916083280,1494510258,646692442,1015078539,-1107069952,-1070389617,1887386,1788497920,1477733042,192200715,1946159165,1486022915,123246057,-899850657,-1957363710,106387180,1586169630,-1961915642,-1957494153,-480881967,540847178,1027344500,-169737100,-785695253,1950955892,1027386392,1950942837,82553872,-294379460,1963063683,1950039044,1365200613,-1962788376,-1948873782,745822195,-1493959599,-225768332,1493314536,-370480289,1017927716,1492088125,-74714485,1712229158,1103768358,119408215,1577559283,1963067368,519998459,1577524998,-1072998056,-947177868,104579331,91367014,-269940962,1027386455,540805492,-492173964,1226238964,91562044,-341045277,1950170358,1034964997,-206939990,-1413467228,-396687586,1594319151,46816606,-326413056,140413782,1952293352,106859305,-1962780789,61887247,184638603,-1961528101,-1949725733,-851135278,1534226977,1583413992,313949,1844144107,1458342741,505284183,106859271,-1962772597,1456573199,1017928419,1012233248,-497978307,-397254667]},{"sector":5,"data":[-1047854766,-1948873895,855930355,1461578697,1957098321,-386757877,-1047854784,-437559463,1966947456,1599686384,1237855121,1342198504,101080715,1620437023,1594302296,46816606,867584,1407780469,1463937367,1431768041,1465314443,119414278,-1962516853,1960512467,-294421,-387614976,141820138,-402295734,-152370968,149484427,1594302208,46816606,520494592,-388396207,525950862,-201684077,-1957313628,106387180,-402235765,-1451991886,184638603,-1164282661,45098635,-4596853,-1261270272,1914817860,-1815573624,1474884235,519736159,-1817906425,1566465799,-1593834806,-1144314467,1065556086,1975749376,385660931,-2113484853,-877330153,1743265366,-402295808,-76218264,1714850079,1455644198,260769367,503478155,646758151,800591587,548449091,2096726954,-1527563401,-2129852986,-1759081233,-400127070,109993895,-13434708,1589561227,571688,259303155,-218103879,87565998,1723853941,-1945690584,516393922,1583286023,1443293635,11280014,-1957628365,952710110,1174893580,-1073042367,-921961867,-855588008,-854864629,-854864629,-854864629,-854864629,-854864629,-854864629,-854864629,1027191819,-1271055692,-326412997,1586190166,1605494790,-855484533,-402034143,1583308579,182877,57935164,-380234263,1426085391,1048636555,1946157326,193915397,113710186,266,-955245334,-326413023,17434311,485097472,1428277008,417918091,587962880,113710186,266,149423083,1354773248,-952457574]},{"sector":6,"data":[235324961,1048641281,1946165718,396803592,1779964570,-1705589996,200541327,1780477338,171868436,1939341313,-2758645,-1709733698,342497306,567674566,-2134155776,-149383642,-955274006,-1497475551,404396567,113644650,1577058574,-2147039285,-944337641,-854094842,-1744386122,-944329193,-1357398010,-871970890,-877215209,-1325399621,1140897794,-1024056883,-167414656,74777538,427691528,1951072689,190696,-1070414909,567096244,644355720,28365362,567096244,1746307779,-1274957786,-1021194957,17448579,-1710918656,342537969,12992128,-166890240,1075412486,-2081946764,61073609,-1006644504,427689718,-1958710013,1377333270,1343789985,125100090,412821128,1388790248,-387401752,129500402,1303636096,-389855512,-1511472232,81848552,-948049830,412852824,1977629274,-392304637,-876133656,0,-2147483648,2522174,1491665780,2116452353,856080153,650350299,-1979445088,644850656,650350155,-1577054560,-1173936517,-319160287,645611136,604206588,-1560547589,117057146,-852103240,1897826593,1929808934,904968230,512303565,109848181,101131895,-852162120,130059297,-1910582389,636467416,102703565,-852162376,130059297,-1910582389,636532952,505356749,-661733325,891074566,512303565,109839634,520553748,1088950196,-1965585722,426681079,1077726346,78644341,-527823381,-685214533,1006756992,839022081,1364349156,-1342119960,870003504,1620681,-401492986,1107805707,1525320281,-397324200]},{"sector":7,"data":[1482278938,415499834,238685301,108337351,415772218,243271028,-1610540685,646584516,1822628038,412852505,-1592168541,1906514119,435978265,1048580213,1963399365,202160137,-1575393117,-337110682,1779337669,1929836057,91554073,1946477288,16890371,415766074,-2142632331,-2145812978,409998985,-402165016,-1258618856,1008848176,839741955,170577380,-972720924,19298566,116837368,1950357886,1397801729,243290705,-163571330,18445062,-1746400652,-552141055,-848107496,-15164511,-166141674,-2145812986,-253230220,-485031994,1532582424,1397801816,-1202256303,2090991618,2114373414,-1577054170,646456957,119416430,858164159,-400837413,456967447,1569340533,759532081,-1004114526,93005373,640051875,-1576909430,113649260,-972020100,270957830,1316226216,645727942,12511256,113660530,-972544388,19295750,280180971,-790097228,-54266172,1889548917,3155238,41234492,-415578882,113650293,-972806532,19295750,-2146442880,175245801,41157813,780665269,-1006754179,112328498,512353235,401286782,606498976,1966095408,2098134542,2081357350,2114373414,-167771098,237403142,-1070392972,425858815,101192052,1048782460,1998595710,2114373382,-1174396890,-273350657,-2134617368,544538618,645662454,-971803647,539393030,645793479,-167116736,785451637,-1078319490,-301879293,1532561247,856081240,650153664,-167475039,1383399876,41224360,-1977220556,-2012999642,-2144964570,-58707740,872576048]},{"sector":8,"data":[1946331138,821854244,645991796,-16832918,645727942,-970724592,2518022,644490881,113639680,-351787395,-1564462319,1789077100,-1576882138,2107778684,-1022887642,645676672,104035592,-1064386509,270961190,818708484,605603232,1946627079,-270237691,646447536,-2010765712,117706790,644679414,-1291356924,-401427405,-456932469,-352252895,-98441728,-1900006626,303482328,622639109,102703565,-852103240,130059297,-1910582389,621394136,505356749,644945605,-853151816,-987881695,-1205439210,567092720,606200863,-436147202,784595745,-1220665716,512437955,1388558142,-397388975,-397345356,1012450102,1998091265,16890392,-954824110,-1966408168,-31930314,869203662,-350753847,-1966525653,1360557070,-1964407223,-1978104810,1243116854,1049284350,-1070458667,-387447116,28728002,412616390,-1019090689,1489167336,1012554075,-134056190,-117395261,1448235459,-1175155888,99090433,1516132352,1364443993,-46208938,412753547,415514240,-402164736,512410419,-2041964307,-396932366,1113522185,1581445766,918772569,415514240,104166656,-1979693848,116799203,1946297980,-625323487,-91161853,1963501804,1963042835,-325866252,-76283480,-371020909,-1022928133,-1414767877,-1022886686,28965259,162835456,-1270738739,1326501122,868479861,-1967092032,-405694521,-1056783733,1350928678,-945801724,48559640,13926594,53928145,-1759116155,-855208394,-1009712616,1381061456,-1966957848,706266894,851574478,-1690400019]},{"sector":9,"data":[-719418856,-1002536936,74777624,416685706,162799792,-1950225688,-401051626,1499120239,1354979419,-1207455150,104334849,-93051264,1482301901,1364414659,1962884178,-1261401594,1512164614,-1017619623,172460288,-955496567,2119,1991,2005620419,76031500,41368390,2005599093,209160452,1577601023,2005620419,76162570,41368390,2005599093,175606020,1577603071,1448235203,-2147479803,79233234,-773140224,200991448,-1960806958,3533040,703077235,-1709804800,342500112,1929388008,1959041548,367528948,855798528,1516147136,105956184,1236582542,117444328,-963919016,1947664192,-1260483815,1931595080,539910,-1007091083,1962936125,202762757,250156138,1381061455,28957491,646363648,567099316,57982987,1512474272,1405311833,29053521,112896,1931904674,-997834490,-1171880285,1085548166,1499079117,244040539,-1958143799,1243138838,-1002536765,-1581055976,-617408298,1371790470,243931506,1048582298,1996495063,1678673414,-2046498023,-2011601650,1494784526,33620163,100992003,454753806,270210687,1644561,67305985,143066629,-1937012087,269422221,336794129,404166165,-1675945447,-1868587363,75727361,-2004384123,-1937012087,269454989,-1810656751,404166293,-1667950055,547331741,574366011,608052029,641738047,675424065,709110083,746990469,780676487,814362505,1099706763,1127236126,1159742510,1193362962,1227048994,1260669463,1294355493,1328631346,1360613400,1393775120]},{"sector":10,"data":[1427395615,1462720022,1496143889,-2144577003,91423485,192153205,242682951,318640207,477502034,508239181,2135957320,-16777389,-32506365,-28180919,-25624974,-25493895,-25362821,-25231747,-25100673,-24969599,8715907,680049408,-1323776096,-1561800189,1925392521,1998535703,1980578835,1914452998,-1743901686,-1618334061,-124535426,-1672064061,-1269344683,589695489,1595329830,125132126,854357149,1433267172,11818838,639837706,1583290061,-1110393251,1975519996,1977879050,-16577241,-162731015,-14277882,-532936588,-264498060,11800692,930413884,-2143546249,-38784907,-1070461717,1413268614,1916535922,781393010,1958774189,1977825959,-2122271498,1925065982,-2113948658,1925073662,-21327098,1537118720,1019435870,-1978567169,-2145860314,74581244,-184025984,233563162,158801724,613996334,-2130935681,225690613,1962933376,-2130935800,-336000140,-1866771704,-3675971,91472731,1979711293,-1329900792,-4724547,74629979,326499900,1962934077,-2139079410,272435572,1962848511,197145346,1364444132,1007317590,1047918846,-342695728,-49863,-2143482764,1023898752,108396304,-468975952,783885547,-1110393344,1954610304,-1106202363,-57426390,-1019564754,-119404940,116113459,-466434934,1499396510,-1979661477,-1239911402,28754689,410129978,378143861,372775029,24385653,-488062142,1880525311,2132213528,2048327449,1241958168,-1023410139,-1575451486,243800179,113645682,1359026292,243845630]},{"sector":11,"data":[-1017571211,108159292,41384508,-2017206492,1356986330,-503868590,50557530,-1017605438,2114373376,-943697385,-1525174266,-1811494976,-876567273,1779176938,113706516,-1020586250,427034311,110019509,-4521814,-397757185,-529333040,-907523404,-1579585020,-1321199650,1089000196,-939271796,665325193,-888946292,664800905,-1532772301,-1576614105,-1557682649,-1432148052,588618279,-1022946198,1048774227,1946165714,-803290102,-1061439455,117664488,-1202273445,992411647,108138103,276249382,1048581234,1962934470,1999316492,637956632,1914337083,-1017233407,-1058424687,-1023198488,-247742413,-214235790,-1018691209,-889191960,780368,91602955,1779183850,1405310996,1465274961,5367814,1148572171,-400056642,1047724129,-2130414453,1965532926,5302514,-796184461,721610728,-388433982,-393084372,510853182,278549328,1528064547,3205208,1397756019,-193674086,-396862709,41091106,1594343475,1532582494,984515,-788475261,-774319638,-774319638,-774319638,-1009200662,1342243816,-1962640245,1300955732,105710338,-638072277,-935604181,1468600946,105351426,-1996193911,-628423588,-134140952,-1957313704,149717996,-1962518698,-386233400,1195114411,-401771002,1418395817,39267074,91410491,-351910007,-678719108,-128021165,-1946210072,-1072997389,1200303732,1602966278,39095042,14870609,1676172121,38046464,-1962784887,1200161860,105875716,-388068525,-1990524831,1038812252,1392922411,-400054597,-24444847]},{"sector":12,"data":[1526856680,74694971,636207155,1200312659,105317122,721575307,735284163,9890001,-617390504,-146091125,34466008,1193926283,1583286022,-1017256565,-889191960,250107472,71797504,-956021623,583,-1094494114,1547249566,-1962183676,-25099148,-227203162,-373095957,1397770653,106386001,-193684070,-2074502645,-1631712268,39095079,-1962779509,-802486716,108321339,-1996477464,-963968428,956593291,460784220,665255553,2089016949,259325958,294019,-259323531,1499094791,-373073829,508971341,91478587,64488445,268483024,41076795,-1054095221,74701371,-785655509,-1030825074,74635835,-788276989,-506338863,-164372015,91478587,-783355509,1006537702,-1996130854,1229408052,-1072978445,536657781,-661863586,990954624,1999087622,1397801729,-1168747951,371982334,78714846,1105783507,14084351,41075259,100778635,-523032664,235128971,-593422370,1283057687,400428681,1532582494,-162413736,410382532,-523041615,400428683,208848939,991419553,-402295096,141773907,857201825,1279912137,400428681,84193681,-657260528,-1944066944,-1547631655,-1017567320,512427603,-738777184,41075515,1474872203,-1017444607,1448235347,-930412969,-385957912,1955266644,1992833794,-138335481,-7149352,-745808245,108187947,665327163,378209399,-1070389336,427088443,724017313,-18945853,-1020542325,855708136,-17701,-150972952,1583286232,-1017423526,-1962931224,-754667056,-754142752,1150010346]},{"sector":13,"data":[-1475990782,-346635481,-1631693308,-1953016025,-25099148,259270566,-1072965633,-1957432972,-31921954,1609100123,-346635426,-1631693308,-1070362329,1577062888,99309251,-1573483690,-389467353,-1017249790,-24422570,2089547659,1962871556,1929067280,1945779187,38011375,-352039935,-1017225241,664714838,990141579,-1962314534,-231013257,-208932235,1577339905,-326412861,-1962522997,-771028906,921176184,-17504256,-654897685,-150941053,2615514,-385943064,703135328,280402432,326437876,1912797827,184841998,755530176,-628916240,1574628098,-402651958,-770966401,-4717708,-1588476929,78714844,-645076781,378257667,-802478176,78758539,212984019,-1017517357,-1442410925,-1608611072,-1440863449,-1260911872,2025546,1253312371,1912608744,-1440873712,734235392,-1993891834,1529323550,204532419,567088234,138217075,-117279488,474563,367658357,-384538100,1426081481,1240001675,-485031949,1562079768,-326412853,-1946993688,1183517278,139889414,417666815,-899873678,-169279482,-326412987,501745238,175570931,-16222465,1021838966,106859405,-787722357,-2082942486,74777849,-657331503,57987595,-72,1914235158,1566443465,-956299574,-820526586,-905525307,-876231401,-385876040,-1364984342,-1365130457,-36902873,-1006808088,-326413056,749995606,1018175949,-315431434,-661929725,-1891112878,3979354,-1979701272,-402541370,1689780256,1763328,28623498,-1207954456,233308772,646691584,-1826671155]},{"sector":14,"data":[1577532877,1347603293,-13444982,1485770984,158655498,175426814,-335988019,-918893304,986514411,1438866113,-1957237621,-1957493154,260768375,350764003,-386627071,216531187,-388724223,82313451,124566273,1689258723,-392960778,426901751,11846794,-645408765,567094196,158711818,1315039323,46816606,1430514432,-1151931253,-1679294454,-1269673139,1528941866,-337066358,-399659008,-1031143186,-1342119448,15001645,124578177,-1251673728,-2147126765,-973183783,-941046390,-389969408,1582825666,-1578513571,-326412988,106859350,41388883,-287109237,-1979677976,7268604,-1979680024,6744284,-1979682072,-2016267532,-852642599,-8591071,1458342741,-402650949,1381190950,567094452,1915943552,-2134442476,225590526,-1040318282,1916598656,-33509116,-980788283,-1342153240,6350906,1407762826,-398807040,-964034474,1476413928,-338993826,1226367877,1949252780,1965898756,182698766,977054793,775685236,-339541643,1239266,-527763086,-401939463,91357192,-527824171,-1047870472,76156387,124923948,1928661564,-1018803966,806161108,1126664240,-1019017336,-326413056,-402104693,1088988079,-1961315251,-167115178,-771093643,-555219084,80371157,1136060672,1930130176,-99912949,1942670791,1942487563,1326150411,-976569912,1942670794,1930130187,1930130187,1942485515,-32804085,113780679,1930130376,1930130187,1930130187,-2111373557,-2077819111,-2044264679,-2034224615,170373126,1377138112,-1813458382,-145561422]},{"sector":15,"data":[1945400410,452615,-466434934,-1331510280,113689383,1006643121,841315839,-1574835228,-1017632847,485228468,665921162,-495590390,-344654020,844106475,2114385636,-394977255,-529265348,-167660974,102333958,1441268596,-1307146239,1880525607,-1308166632,729088551,1316348938,1131814716,665978614,1343386625,1979782120,28764163,-17646872,18409670,-1308166568,225772583,1405311066,-402564632,-346357585,-15909429,-466484619,428349183,-58661141,-1159138047,-166335499,135888390,116846709,1965037950,33325065,-160765707,-58671244,-352160513,1021588127,-1342016129,1962884128,1931558060,-1308166611,645136679,1007103056,738883078,2080848910,2131377176,55661332,431526848,788025545,-920475649,1505058536,2028558427,12336383,1204432384,516564938,1472874442,-1966446390,1355455690,1347572051,79418507,112896,567099572,-385649832,222052966,-411825488,1482381658,1960512451,1036225309,393478154,-205526792,154977163,578029682,326372668,117315702,-1195173494,-386400243,179893157,-1193415936,-386400246,-1070337127,-1969223701,604505113,-1969078024,1048822553,1946157327,1932933638,973370136,-1021803466,409998985,1996482536,-372310526,860927191,427729106,393478824,17765945,413667701,-897579659,-1475613950,-1475906303,-2147257328,78119370,413669492,1048777845,1962934543,1946331146,1008804870,-2147257056,-1017641782,-2133118128,-386596356,192214328,125032587,1979710592,1493119490]},{"sector":16,"data":[-232789821,-402476853,385872069,378149247,28711028,-902186813,2144336,-31135408,409998987,-956903682,-18189049,-1847016506,-371100171,385267063,654255507,-956425857,1996440552,-389087735,41025593,-20774474,-17074738,1697990,915076210,1048778884,1946157327,1933476073,-495649000,410203786,1964390595,987197976,1914205206,-831194671,985877240,1914205206,1964390597,-104893928,1123597428,2114385603,646578713,74783114,410068618,-1966879490,-1021803482,410199690,1084680643,-29538158,1089894144,410320700,411305530,-1974463884,-401051122,978892337,1914209286,411344899,-1021807710,-1947432107,1451952222,-359674,378144373,-164489102,-1116342774,1979710339,-2078373370,184496664,984511999,1964540958,1914059270,1359770648,-897084592,1924524264,1566136472,855639242,253660096,1960512257,55544345,216263986,1962867072,-33980403,132843636,50677750,-884473484,-1553537024,860901715,-774337829,29685475,-1349907595,-924313203,-339637760,-1937274359,-1937258983,-1973747687,-128230937,1381060803,-1969014808,-2080427304,192087291,-1979707928,841462943,-117314561,-1017620134,-2142088368,-64586946,28984948,16890114,-100659269,-336723733,254077952,-136199366,-1020130333,-28253814,-338152761,-16057366,-678815116,-1188580165,-162004988,-790494508,-2013105176,-136166617,-394933506,-1017619622,29000884,-1575629568,512239540,243804085,378021814,-454350921,-1933881005,309529]},{"sector":17,"data":[1962950528,1871335705,1697793,-109047928,-1962248705,433325507,-202839856,1128487328,1532616418,1048597187,1979459195,864334856,-350892590,33667590,585892075,-1731658043,-1017459574,-2046376192,-875795177,-387151019,-883053045,-1845049514,-1328774888,1108803582,-384925672,-1017247744,-1070378160,1269023464,1950559860,343163681,1124758595,914418805,-352052866,-1774812955,-555023336,412487296,-1775861752,116849432,1963202710,-1017619507,-885069847,1436203467,-1019189784,147828480,785391312,1708153040,-36898352,-372201009,-1882093872,1943035089,1342927627,78309463,-15841850,1000902,1197511,-1017618688,1364255626,-2096851992,1946161789,1051126019,-1866594936,7006246,-972930584,-1962930363,-1140392225,-705304537,666633926,1961101824,41150481,1148503294,1131726078,-402461568,-2141649810,69571134,-499054731,8435974,1489580861,-1978772086,-1258343716,-475469793,1284047843,88899590,309692676,1066439,474347008,-2147191807,-1021311668,-381792279,1170685522,-402576380,57803169,-972794487,-402521531,527565177,855639481,-2026230053,192204195,-369696189,1330527780,-2007806651,1525154397,-957320447,-402194107,225575277,1912994435,150635490,1435032951,-2083376383,2003698813,2105557512,24380673,19916866,-796253070,-2144212352,-1149828614,292938448,1912675560,-387937775,775749909,-22514379,17557698,1435017587,-960482557,-1996415931,1170671685,-956045302,65539141,-1995029111]}],[{"sector":1,"data":[-353887675,1963291392,12773881,-555163510,1381186816,1300240245,1173750300,91562012,673223,13101056,-2115381134,1330658621,-689434251,-1174179072,1435051792,474841094,1035987720,141902931,-1996439320,-1293218731,1967342653,11790344,-351775351,1129528741,-1494741899,173377792,538725760,1111332075,-402098862,1435041941,1032317718,158684226,-1996453656,2045319765,1279671807,1300235893,-1846853604,1967278397,5498900,-1972023748,270288374,1300268149,2028539932,1095974399,988287093,1967340544,476413958,-371069954,1161690984,-2131200688,-385606579,1173815127,443877404,990397835,58133573,-1190378101,180027391,1927476992,-1983345918,-1396505011,-76275652,-143390404,225717308,41050428,-1073029116,172885109,1405352384,-555167181,1311208191,-167782168,808198259,393677116,1927467416,-774206702,-787713310,50885346,50623187,-371362864,-1017430924,186766497,-1959234368,-771025323,12193141,-49918,-796196236,-1961470583,-388877374,618917163,-1961603703,-1073014203,12060277,440764674,350802483,-1995971603,-373090227,1166752822,-314382316,1346146537,-401324661,1166798136,-315430888,1157022552,259334149,585685811,-402361856,1262682174,1388561291,30992464,48816266,30992599,1515772555,-411772149,-154943437,1946420548,88405525,-402230000,175243454,90472643,138709743,1686160376,-1007030523,-2146941816,-1022360244,-388577047,-527826538,-388579096,1156972950,24383493]},{"sector":2,"data":[-339571902,25225229,-1427578742,25225430,-768360053,23259331,537216246,1015024245,-1341819903,13428762,860956042,-693638967,-11278247,1197511,951969792,-2013179415,1472398420,-2013187096,-1017180587,1963108358,-338457852,-385621239,-633652480,-880019086,639114948,393544104,-1325692073,1605038880,-396899701,643760154,-498923640,-1961956363,16181450,-402159066,-498925462,-1022913801,268780790,1149897076,90472456,-399512593,-527826714,-1663744024,-1660885528,-1394080395,1357704105,12773463,1594904063,1964653656,88405517,-116951776,-83532672,-1007156757,10938448,474347096,-167349232,1965032772,1418351123,259361284,-2013261336,-1017507979,2132567424,1776821642,9759189,540854014,-337111438,1928477439,-360434,229640564,-2147475736,-1015079835,154980094,1173754741,-797700068,-739762000,130479871,162592885,1963801795,-4397033,1173812786,125059100,-1343747408,-2146586369,-1015014323,292883004,-2145630730,1702927988,1173782300,-1804333028,1963474115,1942945419,-339280249,166219907,1703565312,1686815503,199803652,626441984,57982987,-1021458557,-133838965,-1008152065,-76225526,-13443958,-2144826177,41289211,-472786125,1397760511,1465274961,646057611,666373769,1455360995,-402607067,-957819623,-2079421443,-1173452506,-1089739993,28583283,-388692760,1583349169,1482381658,1364414659,-1957210542,-483936242,626441995,-1946333720,-787879713,666504843,1941900259,-46340059]},{"sector":3,"data":[-118956149,1516134352,-1017619623,861361664,540847323,-1073022092,222040948,1631326068,2050754162,540279415,-341032022,-1017225239,-851839255,-1957302731,49054700,-650850992,-25282099,1720335821,-1957126401,1439391205,-326898549,986533890,2117717465,-1975661058,1486815078,-883038837,-1084860672,45753686,845824,-31602813,1976237766,-1017159948,185759115,-1978370826,266883814,274021120,1511019913,57984650,-1023394840,-45291440,41280522,-855719080,183042933,955050297,-1304624974,45235457,1458342741,106859270,50037579,11603315,719910451,1566443418,-385875254,276612,1956320744,-1699682301,-326412861,-1962803015,-605484450,956745625,-875396584,1023455744,-1304624718,-326413054,1586169430,1977289478,-889301197,175376248,-345147713,1833877256,1774126059,2079085,45111121,-376782590,1321126142,1253988051,-1024895120,-497459302,585850855,-2092176502,544415739,639829751,91488511,1931344771,435913477,45158003,-395294018,1577556377,182877,-1338510359,2079487,-1665013510,-126530821,-326412861,-1257611637,587659033,1946222374,1994209803,503021573,532010614,870908593,-326412903,-392373784,1451989776,105286408,-938751349,-92074636,-402099454,243309530,-2147346282,18388494,412485366,1576629505,-956300086,1662533382,1107740531,-948749544,-2145893370,-1342125101,-1708791808,666771081,393534219,65544880,-401574758,1048811934,1962877729,-1106852090,-1023410137]},{"sector":4,"data":[-1304624974,45235457,582026838,846077630,-1729894181,1439391239,582020235,-402235763,-899835713,-1957363708,105286636,1996491069,1975519764,-1106868472,1975520039,-1715083260,46816659,923986176,406259399,-1328819212,-1689851904,175430411,-1813503056,-402426727,-1295804114,28458240,1443017277,-1104957178,-617451597,127434984,-1957311650,173968364,367526576,-1341361509,106859811,1570263784,-385874230,113718980,-731375557,16824523,-400292784,1347983690,-1729622924,1958742774,-397387771,-27748134,1912880320,11715555,1023521341,-1957363022,-1962518804,-875559330,1929706371,16416793,-1014364299,1692926388,858042870,-1743787786,-899850745,1776877570,-326413002,-1190502773,-875559900,-1748440765,-1947432107,71108166,-387747072,-562891165,46816659,-326413056,-1979300213,1038668248,-898433020,-989928566,-402529152,-1099762153,46816664,889636608,-942361064,286803462,-1342125108,-1727797248,175430411,-1612176976,-402426728,-1295804358,28458240,1443017277,-1105088250,-617451932,127372520,-370554018,-326413003,1451971078,205949706,-1039415157,165932148,-2126386974,1934721530,-402542367,-630024007,-1927172006,1156056670,-899872873,113704968,-715384771,1532647627,922701906,939458761,-1304768309,-1342172672,9175042,-23003128,1975520018,318552083,67156048,8435792,16816720,-1073015702,318552267,21928528,13309034,-1287797882,379041543,210147871,914953322,-466473882,58029628]},{"sector":5,"data":[-1818689352,1779205786,637560596,1646169005,1277035308,306678060,-385649600,1048590313,1946157326,17473782,1845480424,1034757632,594870271,280311,-1996130944,401277510,-1983892656,-1708366282,342511646,1849813854,-335770880,855665668,1714850303,1344182828,-443870102,780754525,-396885778,110035366,-16027720,-51899020,1741724176,1352008163,-478733158,-224750079,-402529433,-527749356,-2146376984,2902334,2045315189,-401493977,1048837972,1962880106,280816116,250383189,-1710852353,31654864,182877,50710350,-947693824,641499144,-1404675211,280698892,1952988165,67681032,24407868,-13479090,1510004968,281146975,-1040837771,-2144307904,242492988,225762059,1965374592,440346,-347725589,65962002,1965374592,28460545,-1844951671,-1308583959,173902082,-1203309845,-773324673,11593982,-1235286670,870312704,8906971,-1061030305,-1040784011,-155290367,91562177,1960459161,-2134278141,1946599926,88965126,-2144212223,544482108,1948335232,624721952,1015025524,-165841626,-1368055615,-343881344,-2134772206,199992437,-341259904,-136216570,1184942464,-1040842570,-1238993792,549582339,79176308,146929159,-2091446155,969738439,490065157,100907103,1166556621,124094470,-11081269,-1946198807,57694734,728782862,-1715457074,430442182,-1142401791,113663292,-1023403608,-1395512490,426913836,360122684,214694529,-771545481,-771503477,-788278781,-338689128,1473809378,1049429790]},{"sector":6,"data":[163124232,1605300736,1314391668,49019026,12843358,187456163,-1558284096,-661967774,743185923,744234633,744365705,-956293627,-13868026,744530943,2145681603,-1960024925,1277035480,206539564,744623753,744365705,743181827,744230537,-15302781,369428340,744530688,1275997123,515998508,744492681,-326412861,-402241909,-899809382,262146,8060937,524412,2359298,-2142502904,5177419,5308454,6029397,7536730,10158194,10420380,10682528,11141284,11468974,11862196,12058806,12255417,12386492,12583102,13631681,13762769,13893843,14155991,14287065,14745819,15270119,15597802,15991027,16122101,16253175,16515323,18874621,19071266,20971835,21496135,6422860,6619257,7602278,224,131073,262147,393221,524295,3866635,3801148,82,65540,131077,524291,294940,131077,2162691,10027042,4522150,5242959,1900625,5963865,6160458,7536754,3735619,3670071,7078114,7274606,524296,196610,262144,327681,524297,393219,524295,393226,7,65540,131077,589827,327688,4784221,458758,720904,393309,7,65540,131077,589827,786440,458758,65536,196610,9895959,262371,524293,1769485,2162722,9896163,65536,196610,327684]},{"sector":7,"data":[524297,4456456,5767286,3604549,3670073,1835016,262144,1769625,7733316,4522072,5177382,10813475,1835024,1966106,2228257,2097183,1376285,24903702,13435020,524494,3407895,262197,5,131073,5636099,8061015,1376380,10813521,2359312,7733316,3735607,524344,2162709,10027042,5767286,2490449,10879055,1769502,1900709,5701718,1703971,13500621,524313,131092,3,262145,3407877,5767221,4456566,3735607,5308472,5177382,7012518,983048,65536,196610,14876699,2162839,1507362,5308426,5767286,131080,524369,4456453,3735607,524344,3407885,262197,5,1769482,1900576,5177413,524326,1638416,1441813,1900924,393216,131073,14876675,2162839,10027042,-2147221496,1179665,524311,1376262,4456517,5767286,131080,524441,6750217,2752552,2883627,7077997,524398,-1947432107,-1959917986,-899809721,917506,2621448,5963865,6815847,7012457,7340141,4849778,6291550,-475997718,917505,637799997,-1389981267,52005779,975145949,1182009423,234918121,933124,647081254,1368101805,-62786044,1947831041,-87850237,743579139,51011467,236973018,68041984,647081254,428577709,250338563,238879758,-1850923520]},{"sector":8,"data":[-1919701722,1239942233,-2454008,-1898935241,570616280,238878734,642139652,428577709,-628302589,68030443,1174408765,-1817369018,-1945871987,38767578,727194083,326897735,2098087739,65065230,-1814458873,-628213761,-1339964439,-107026423,255655951,642139652,428577709,-628302589,68095979,1174409021,-1817369018,-1945871987,38767578,727242211,-813952953,2098087739,65065418,-1814458873,-628226161,253853673,68107520,647081254,1368101805,-62786044,1947831041,-87850237,743579139,51011467,255323098,68107520,647081254,428577709,529259779,1946701626,260107041,998660,647081254,428577709,250338563,255656975,-1850923520,-1919701722,1575486553,-1881502201,-1898935289,555149784,238880782,-1850923520,-1953256154,-1948450023,139409951,988366452,1023938303,-1390018546,-1817368943,-167489141,-1962804159,-2096925671,503577283,1602956370,-338033910,1023938079,-1390018546,-1817368943,-586999413,135139051,637537853,-1389981267,72977811,-1912146968,41418714,-796116993,-1444292466,1024200224,-1390018546,-1817368943,-586999413,1329209227,-381258744,202309325,637537853,-1389981267,72453011,33309174,57940363,66765699,-1960029666,-637334945,202252267,637537853,-1389981267,52005779,235858909,933132,647081254,1502450605,109504516,902683278,-1898935289,540994008,255657999,-1850923520,-1953256154,1106642001,428540412,-1014824076,1377698810,174033708,954980867,255657999]},{"sector":9,"data":[-1850923520,-1953256154,-1948450023,139409951,1055466100,1023938558,-1390018545,-1817368943,-586999413,135204587,637538109,-1389981267,72977811,-1912202264,-1895329830,-796130745,-773203826,1024200479,-1390018545,-1817368943,-167489141,-1962804159,-2096925671,503577283,1602956370,-338033910,1024200504,-1390018545,-1817368943,-586999413,1329209227,-383618040,202374609,637538109,-1389981267,52005779,252636125,998668,647081254,1502450605,95348740,902683278,-1898935265,-381825576,269360996,637537853,-1389981267,72453011,33309174,57940363,66765699,-1960029666,-637334945,269367531,637537853,-1389981267,52005779,975145949,578029647,251487465,933136,647081254,428577709,250338563,238882830,-1850923520,-1919701722,1105724505,-841314811,-796129479,-102115186,1024462622,-1390018545,-1817368943,-586999413,1329209227,-381258744,269483293,637538109,-1389981267,72453011,33309174,57940363,66765699,-1960029666,-637334945,269426667,637538109,-1389981267,52005779,252636125,998672,647081254,1502450605,81192964,969792142,-1898935265,-381825576,336469644,637537853,-1389981267,72453011,33309174,57940363,66765699,-1960029666,-637334945,336476395,637537853,-1389981267,52005779,975145949,578029647,251432169,933140,647081254,428577709,250338563,238883854,-1850923520,-1919701722,1776813145,703156996,1024724766,-1390018545,-1817368943,-167489141,-1962804159]},{"sector":10,"data":[-2096925671,503577283,1602956370,-338033910,1024724792,-1390018545,-1817368943,-586999413,1329209227,-383618040,336591913,637538109,-1389981267,52005779,252636125,998676,647081254,1502450605,67561476,764667987,1024724674,-1390018546,-1817368943,-402368115,1397883888,-27489498,-369593857,336469416,637537853,-1389981267,52005779,975145949,-613152689,251383017,933140,647081254,428577709,-940843773,238883854,-1850923520,-1953256154,1106642001,428540412,-1014824076,1377698810,174033708,-1544824317,238883854,-1850923520,-1919701722,-2048392103,642994691,-107381,15267953,336489261,637537853,-1389981267,52005779,975145949,-629929905,251355369,933140,647081254,428577709,-957620989,238883854,-1850923520,-1953256154,1106642001,428540412,-1014824076,1377698810,174033708,-1561601533,255661071,-1850923520,-1919701722,434635865,642994691,-107381,-1628899215,336556844,637538109,-1389981267,52005779,975145949,-629929905,268104937,998676,647081254,428577709,-957620989,255661071,-1850923520,-1953256154,1106642001,428540412,-1014824076,1377698810,174033708,-1561601533,-1390018545,-1817368943,-167489141,-1962804159,-2096925671,503577283,1602956370,-338033910,637538095,-1389981267,52005779,975145949,477366351,268077289,-1850923520,-1953256154,-337837287,637538059,-1389981267,72977811,1375890408,1552623251,-128349186,616229271,238882830,135150852,1024200253]},{"sector":11,"data":[-1390018546,-1817368943,-586999413,269359083,1023938109,238881806,933124,647081254,1502450605,36366340,-370584750,1023675931,238880782,269368588,637537853,-1389981267,72453011,33309174,57940363,66765699,-1960029666,-637334945,68078571,1023938109,238881806,933136,647081254,428577709,529259779,1946701626,-103290452,238883854,135150864,1024200253,238879758,642139648,1642632109,2112443137,13434907,-352268739,-1962928108,53240350,858541086,206042816,1073837057,726657360,272438288,135281936,1024200765,272434192,642139648,-919366739,512437739,503524450,1200237644,75020,-402650438,-1960432782,1552623116,-497922046,-569981188,-689241834,643366940,-1946395509,-1031012783,1946158885,1913011210,1912557577,-1962349576,-397346751,-2142240575,35053118,1482235765,38898257,87900342,-2147257088,-11370290,-1709788618,342500218,-350834013,-1962417320,113113,-1444412437,-2134706688,-1957537702,192219223,1950402294,41911046,1025996032,494141445,-167653760,192233670,318899959,57933888,1375915648,-401153197,-340841808,-2133950444,11989483,-784145711,-337509406,714795022,-2046775281,1008131590,-385649408,-638969232,-1409162336,-1951586816,621648632,1968116842,709618168,28836136,691884032,705816577,-1207871639,1028653057,82313560,67297066,1392773124,1996490301,237615879,-1017391314,1342591569,-480983142,1499072257,-1974341397,1770716233,-29259006]},{"sector":12,"data":[1963983017,1971365902,1964025887,52005677,-1929122851,-318110631,1871184756,29488648,1333789812,-1017561079,-586999413,1865949067,183727112,-336628499,1099665503,-166098172,57934273,66765699,-1960029666,-670889377,2139342059,1081344002,1497527625,1194021208,993360912,813502023,1334563379,49906444,-108853388,-786795260,-773795360,-2096692270,141820114,-892220719,-892220719,-1828563197,-337512509,1583307240,1508379056,-192194831,1459930755,1359904653,-779368141,-2091905045,-1031076665,-141482505,-1949236443,1160490440,1003650050,63864069,13796296,-562476968,1744290443,1744277772,1322320652,-1889968306,-1947825404,9890801,902627444,1947200448,1381652480,-347057584,1476424709,-1960423344,420669748,-480706419,-667300383,9244395,1491002201,9242091,1491133273,-555006394,-480706419,1666685654,-253029270,977076306,-650457856,1377361897,3816704,1023722627,977076306,79987456,1377356777,3816704,1666685528,-253029270,170674592,1344239040,-479735654,1714880257,1991547436,-1701641757,31683859,1235376278,1743952428,646119907,-1946456032,1023471150,243269749,-2096861102,7341630,243298676,-1702858670,342492771,1676402827,116850926,529154,1048577909,1946168393,1376682003,-191231888,2131489798,-1241736656,5117034,1884425856,1714850176,1376682028,1587153008,1024748214,154992648,238977024,208928769,742997632,-1341819648,-268244973,1881147127,57933825,-2145794840]},{"sector":13,"data":[141578766,-1979711554,-1993578954,-2097091026,117508670,379194740,186763008,-1341884992,-1697715449,566689841,-479735654,1376187905,91491696,-479780454,1874508545,744163062,-1157401216,126578526,38208336,78092880,1048579060,1962945609,-2082698486,748291307,1578396185,-1982123169,-2089810402,-13866434,1048581749,1946168393,-1271464179,-331940096,414489088,1726682218,-160449861,-2144576762,1589314421,-2096685457,7321662,775633524,879914936,1191380875,735087362,1462335190,1874345611,115543435,-108325591,-846465301,-1953313237,-1955612618,-1980224514,728741950,-534029618,-91511565,260822923,242666027,-41221968,-415547605,-410320270,-224744717,-402529433,158801580,566232775,518586371,-1948218369,858547766,745972416,-1993913880,-385814994,7542528,1487011635,-252385236,742997632,-2147126272,16836878,-480565350,-383352831,-141820416,15478411,18119,-28915968,-443875328,15609481,744627851,743185923,50483083,199305999,-352160576,1225180741,-1528102868,1950749104,-342208967,-352197798,1228833004,125042732,1525389904,861405667,1225688777,650962988,637563587,1654757293,965143340,1947656246,17474313,-1592254232,1307050250,506094,319045248,1357149440,-199486822,1016748043,1126287104,-1643723264,-795213548,1023533982,-795213711,-1996364953,-1993578954,-2145984458,135569934,-956295526,-1195215839,-1231355908,1963717648,-18429,2117179984,645923299,-1946741598]},{"sector":14,"data":[1345087030,-479726950,3250689,861413831,-1643215159,1958742804,71204883,-1854603245,470981200,-1705505804,566689852,319045248,-2095745792,-26206170,319030982,34010881,1962936339,-38999805,-485397320,314619907,745539214,41766,1884425856,1982234626,113704492,-385799095,7601546,745158283,-1577126423,-2132964608,69182,529203828,15474235,95421812,-1694557207,31682458,-1708800536,200553377,-617428685,-1072976602,-523158156,-57941807,1330640899,1330582923,-1006762613,1912929152,-347492348,1958874059,66813978,-276626060,1326508804,1326811983,1376095055,220522576,1003260760,1355511804,1542298193,379191779,-1994275072,-1708366282,342498881,15476361,832236683,-383662336,218637573,1024526397,138217736,352774405,138215563,1385781257,351988048,-1958933240,285752576,1003347083,1480445191,-1961564183,84425984,1348049240,58051131,-384509975,218633409,1023445821,-594865912,-855164979,79987517,-1961574423,84425984,-1962742653,524013020,-1377223219,1023445780,-326956792,-841184508,1036853047,1350633,512426108,130418653,190470162,-2096401214,1962934655,1376681989,1200164976,2065033985,369274880,-583103737,254126599,-1847013120,-52253864,-383474200,8066411,-471133008,1049297019,902629341,96862557,-348271356,-1962902557,-855122626,-972989127,1036847109,8114923,131931787,1126434758,608626771,-238949438,-352210944,721481732,311599808,-197978982]},{"sector":15,"data":[537821963,233375856,2555924,686489776,28311593,2958059,485163696,792526894,-352079872,-1342164973,822995716,-351948800,1023422983,112197683,-773200846,-1342080477,2146822919,-2071887232,973047171,655893537,-13817314,421863990,774577960,639842303,740305178,674823983,1538074112,744634111,345487440,2819819,1528078520,1946680195,1354957574,52649193,1200238296,-1191070719,-1377224613,-1207948765,-538241879,-1296564180,14215956,922681625,166396170,-1070399208,204930896,592963841,484966678,18292003,472061672,31981891,21280547,-1962611581,523619804,-236438067,18724898,1361245672,-270008035,22762018,568941144,-402572509,-454554870,21664290,1173814411,242515971,-956295526,856126753,-1996125760,568853061,1347602723,-956288614,585885985,-380108451,22815469,-397365978,1038230191,581560321,5636174,60009766,260659677,-1960420520,8841524,-1390018473,1507656595,-1990717559,1532625479,-1960437879,10283316,-1070399402,1028669520,-1390018473,-1881341037,38244103,-1895544945,1515783751,-1960420461,10414388,902627414,5717480,60009766,523619805,73348557,881534611,12118363,902627414,5717480,60009766,523881949,140458445,881534611,14936411,1715273829,-1817369088,260824323,1074236251,126423408,109035835,-382432474,1178997312,-384680983,121180709,-219419011,1715273829,-1817369088,260824323,1526876043,-479195391,-495400693,-696318151]},{"sector":16,"data":[-382432474,6623760,637560381,-586968147,1468731275,56333058,39260943,1468651632,1376749826,2013238097,74972934,1782092698,1207344916,91586563,-348293218,947035701,6631659,637560381,-586968147,120966488,120901011,-1827195443,71775693,-841401651,383925817,-492749363,55047702,-1643219584,-1960442254,295627060,-1712765370,-126378479,5501163,-352299971,1023436265,-1390018458,1490879379,-1828242995,-855164723,-845998279,-855095495,969791802,-854138306,383951165,-2147006474,6076395,-399209690,351009463,507314341,2047232,1023431997,1530724492,881534464,-1945026583,872621568,6878955,82562187,-919404439,173780262,1260025343,-1019485231,-972877962,-483357914,-92936002,-349641834,-336592104,1023782992,113641392,-402447936,5957856,1491643686,30311418,743837312,1493494530,1454188032,922742923,646541240,641429432,-797572938,1863374825,-1205454592,-1894419089,1584379910,116471,1048597109,1962945609,280684811,-1338178640,-393025519,745160323,-369855233,7404026,1874339385,110093941,-1389989960,1967691358,142509009,-1593281280,1178283098,1476686852,-390075560,110098911,110063622,-443846628,350967901,1996619395,-104208352,1879443087,1880884879,1583211915,15609481,744896137,-363796392,1785512426,-18447596,742983366,1445363713,787086636,1513553696,1714880300,-1959294164,736625223,-326412822,15611647,15609481,744627851,743185923,109559859]},{"sector":17,"data":[-729059322,50483083,726223119,990278353,1996535318,-17503997,922739339,-1202687972,-397410303,99164210,20840703,82608984,902683787,1036865567,-1692430360,-1981284033,21011999,-1675652376,-326958784,-841184504,902635317,1036846175,-1658880280,-2098724735,8550943,-1122009880,1994915971,8682527,-1088458520,-326958975,-841184504,902635317,1036846175,2065652968,-326958974,-841184504,902635317,1036846175,-1105245976,-326958973,-841184504,902635317,1036846175,2099197160,-326958972,-841184504,902635317,1036846175,-1071701784,-326958976,-841184508,1036853045,236916968,-326958977,-841184508,1036853045,220135656,-326958978,-841184508,1036853045,69136616,-4718433,-1606594305,-326936576,-841184508,-850387147,517466173,637576200,-823635795,11143710,270452968,117375156,-1254287644,2088773120,410255610,-61043930,1408549864,-2013265991,-485039090,232997150,-1960927000,41418587,-346867713,179119847,-1207731740,-397410300,-396288375,-1117774203,-4499456,216749055,-4718405,-1136832257,-18432,12467536,-397365978,-798155163,509601792,-1207906168,1028718591,1390936273,13934366,384042751,13796587,-1994504984,1055391955,13994526,-1910621976,854065368,14262558,-402597059,-626516439,505669632,-402590558,-203219427,1036006144,-397410057,-52158959,504096768,855702504,16596416,-1961825149,523619804,73348557,140457421,207566285,-397394483,15277545,-1390018549]}],[{"sector":1,"data":[-382599277,67833360,-7099098,235333937,188549131,-1817369088,-16616961,234285361,188550155,-1817369088,-385796659,269159912,637537085,969773997,232450305,188548107,-1817369088,-1962786421,1377698585,174033708,939513859,185450473,736520,-1953256154,428540481,743579139,51011467,41418712,-1578551297,1024199437,-1390018549,37850003,503519627,1602956370,-841481462,-2048325835,1024461581,-1390018549,37850003,503519627,1602956370,-841481462,1776879417,1023675149,-1390018549,52005779,-14709795,223799607,188549131,-1817369088,-586999413,2013208459,-382206206,202050880,637537085,428577709,529259779,-385403443,269159724,637537085,428577709,529259779,-385402419,724248,-1953256154,517800729,166279167,1024461581,188552203,202063112,1023675197,-1390018549,52005779,-382205987,134941932,637537085,428577709,2013256963,-382206206,202050776,637537085,428577709,902683907,214362375,188551179,-1817369088,-586999413,-385402419,336334004,637537341,1355219885,-1038322456,-1390018548,-385773677,67898524,-1886147290,210954497,205326348,-1817369088,1099891087,209905922,205327372,-1817369088,-853985843,208857405,205328396,-1817369088,-853984819,207808829,-1390018548,-1952987389,-383846307,67900652,637537341,1099666349,52005634,-1960029666,-670889377,971573135,1023937548,-1390018548,37850003,503519627,1602956370,-1881668854,38244103,202120169,802060]},{"sector":2,"data":[-1953256154,428540481,743579139,51011467,523619800,-35045939,1024461835,-1390018548,37850003,503519627,1602956370,-841481462,1036853049,202104809,802068,-1953256154,428540481,743579139,51011467,-1830267944,836123,-1953256154,25887305,66607499,-1758703098,51019147,1105796857,1023675412,-1390018548,52005779,-385380387,135007128,637537341,428577709,126868739,-385726577,202115972,637537341,428577709,902683907,-381825761,269224816,637537341,428577709,969792771,-381825761,336333660,637537341,25924525,-397359869,214047513,61679104,-1953000505,-1946352833,-384370593,67900368,637537341,428577709,529259779,636028815,1023937547,-1390018548,52005779,-1893757987,38244103,202051561,802060,-1953256154,-1948450023,523619615,-102154803,1024461834,-1390018548,52005779,-853570595,1036853049,202040297,802068,-1953256154,-2292967,446687287,637537474,-1815673939,-1958769769,-1960904609,324462907,-1390018549,1344194307,185250793,134954256,1024723773,188550155,736516,-956060378,177924432,-1390018549,50432915,-380625211,269159052,1024723773,188549131,67845388,637537085,25924525,-380582653,723568,-1953256154,428540481,743579139,51011467,-380428584,269159000,1024723773,188549131,67845388,637537085,1099666349,52005634,-1960029666,-670889377,171108691,188552203,61679104,1394512839,-369592321,336267808,637537085,1099666349]},{"sector":3,"data":[52005880,939466461,168487248,188552203,-1817369088,-1946664565,383583001,-169258925,1024723721,-1390018549,513001219,-126353581,1796843240,188552203,-1817369088,-1946664565,517800729,-397395969,191568271,736532,-1953256154,428603457,1394007299,427419728,1024724075,-1390018548,513001219,-126353581,1931047144,205329420,-1817369088,-1946664565,517800729,-397395969,208869721,802068,-1953256154,428603457,1394007299,423880784,1023413107,-1390013429,-129922157,-1962784373,1377698585,174033708,1394530563,156690768,188547083,-1817369068,-1946664565,428540489,743579139,51011467,1347624665,1796799208,205324300,-1817369068,-1946664565,428540489,743579139,51011467,1347624665,1931011304,1178993021,593897,1664942202,4734208,1023429949,1631387741,-298464000,-841401651,383925817,-492749363,427073046,8008171,1023435581,1295843400,6110464,1476419901,1975651162,881534490,2047396841,6503680,1023428669,1631387725,6110464,-2082020519,-1310129466,1023428360,1614610532,6176000,653058905,-1645661045,855662344,-1039443758,-1960387212,-236066764,1594395625,-298464000,-841401651,383925817,-492749363,-521429482,-346423201,1023428568,1614610532,6176000,-1039443878,-1142183564,1681719367,6307072,-855613891,986574389,1043975641,1036850914,-1642667359,4972267,-399209690,1178464663,5258496,-385856451,7931948,1023435325,1228734538,881534464,531433,1348098137]},{"sector":4,"data":[-763114799,-16616192,133687777,-924319476,18877463,1645724392,-1125646041,20004119,1897379560,-1326972612,21056791,1326951144,-1070399161,21511504,1394056936,-1729625776,22205463,1461162728,-1343749855,394914047,-402582119,456726403,393799681,-402579919,575674231,1354773249,-402578627,775952235,392226817,-402575549,1229199194,391440385,855677780,132862144,1877475484,1342288127,35082472,1676148893,1609063423,1122522111,10683159,-1005110040,921174149,8798487,1041707240,719847607,12110359,-397365978,-1184491743,387704832,637583720,317214893,15167511,-397365978,-183822583,-18432,-163753904,385607680,-402589211,-1569384715,1353524736,152497384,-421003088,11623446,1561780456,-1390018382,1962934077,-756527103,11755030,-12735194,1342272767,1595327720,-1092091684,14526742,-1441351448,-1390018338,1962934077,-1427615743,14658326,-12735194,1342272767,-1407804184,-1763180408,8885526,320245992,-165281655,1963196996,385660932,643171920,-31178579,1994977283,14836502,1476441661,-499298274,11943168,-1391041304,-1237516062,1344165888,1023468093,1390936246,14855702,1476441661,-499298274,11943168,-1323941656,-1237516062,1344165888,1023468093,786956470,14856726,1476441661,-1070378978,14826832,-402606531,-1062005223,1507537664,99342988,1499136192,-1465047462,-1090226940,1381439228,-397388975,-1032972807,15875328,44608806,-990507916,-167021248,108298436]},{"sector":5,"data":[1397840219,-397388975,-915466791,-18432,13253968,-397365978,-880339511,-18432,13385040,-2045395736,-1226309404,15250453,-820662040,-396689201,-397148734,2006586789,-337956352,1526757379,-38737825,-1830268073,16311829,-418018072,-2031615752,16389397,1528135912,2062024829,9963285,1023445565,-1578565441,131077,262147,393221,524295,655369,902627684,92727790,902628708,92203496,-893712028,-1623405278,91416839,-860156572,1693641506,583973649,358935531,-350039877,-1155963676,-571792686,-725934748,1691806498,584497953,627363819,-350037829,-1154915128,-1041554726,1681719666,1354773249,1678061545,838971397,636047588,-1341561851,1693772546,-352079859,-1341037330,1692986116,-351948779,-1340513054,1692199686,-351817699,-1339988778,1691413256,-351686619,-1339464502,1740958474,23674113,637625661,-504803155,-1207864572,-169082881,1020068203,-964492071,80668932,1020068204,-964492067,79882504,1782382952,23477505,647146790,-380481363,23921840,1443278118,-31178672,1692987395,16804628,31230808,-384077817,24577172,702319448,-384864249,24118408,-369665959,-380631952,1726547068,1493262340,115579224,-380569097,1541997676,-1962838012,1881143260,73329125,1482228079,-135535719,1374245625,1476488964,1398430043,-397323696,1622545410,1499158529,1380995930,334817361,1476461844,734147481,1353674946,1023682537,3882240,1476461373,1004221273,1258386881]},{"sector":6,"data":[68348243,1899823170,861493249,1958820827,-380417279,4195328,1493262909,1004221272,1258389441,65988947,1581056065,861427969,2093038555,-380417279,4129756,1493262141,1004221272,1258389185,63629651,1664942142,861427969,2109815771,-380417279,24380344,402119819,17018857,593057793,-1511436095,1476490499,118086795,2030279657,-594847743,-1846999247,1476461571,-138333351,-2048306992,1476485379,198309721,2045333697,1023485443,1911095580,855722755,-620012608,58220404,1213918016,16799723,-594847144,1460733697,-384602110,24576848,-594847144,1461258025,-385650686,719913792,-1711181821,566705072,1347613810,1258500073,190470145,-786533182,1975524322,367738904,1515716869,209310219,-755511049,-2097151739,-898629422,99176530,-1962839037,-149424164,-102170025,1476491266,-137300134,67026,1879102083,31321001,-1957013503,554115548,-639040937,1476490498,165448538,39258375,2030226409,-1957013503,822555100,-1108802985,1476461570,861624666,869332929,-338495533,1476485539,-145008294,198440913,-338490431,1343117459,1782092778,1023426068,-253230749,-347835649,1023426609,-454557342,-349734913,1023426870,-655883938,-349408257,1023426329,-857210529,-350193665,1023425805,54329403,-4331519,12063092,1374244864,1023427074,-1394081423,-1192266497,-380567553,16777792,-373212467,24576568,-370591027,24117808,-372688179,16908840,-369542451,24511008,-855507992,683198773]},{"sector":7,"data":[1292233473,19707905,-384694296,17498632,-352249672,-1207872269,-320143058,381157639,451275521,18528257,22011627,-369478195,19923428,-352246088,-1207884081,-924122844,565707036,2025974529,-533345023,84002793,-516567807,1258405865,-298463999,-841401651,383925817,-492749363,28876310,1946448384,1346914305,-855531543,986564917,1043975641,1036850914,-1642667359,1023425987,54329403,-1841151,1962934456,-380614655,4325752,-402558659,12124113,1208054784,23521616,1597833279,-4200447,2013265848,-380616703,4260180,-402563523,-4653139,1073837055,21162320,1648164928,-6559743,1996488888,-380614655,4063536,-402562243,-4653175,1073836799,18803024,-102235904,282716160,-435777597,-1661560298,166401130,384173711,1788672922,47124,384182015,-521666495,-345607169,-402636955,1568145367,4087019,1929367272,1079241556,-3807232,1256934262,993853501,-4593664,1055604596,-1326972862,-348752385,-402563531,762576818,23014635,2013243880,1663298340,-6232063,451615602,-1746402974,-351111425,-402586863,158662542,24185067,1962903016,-380614655,3932296,-389925427,124976865,1929305320,-852628681,820762938,1499136060,1002451802,990215377,1208057811,6220112,-594870212,-16091137,-1259861897,-401968387,141753775,-335544392,147096547,-588529613,-594870212,-16484353,-14817225,-402163880,-395116777,1469767403,1477732963,116842219,1963005595,96191233]},{"sector":8,"data":[-1157043456,65732614,-1996485701,1395418678,1779190170,-1047789548,745545357,742997632,-1962380032,53239838,992758814,460586615,-1053096053,-1953426059,-1960027106,329799,1962425088,650219008,400621485,-1289173974,-2144727256,40902670,539395019,1489763696,1881155203,-1235948805,243274858,-888901600,1228832858,1148518444,743835382,-1992461055,-1993578954,-9435602,-1895763914,-9430010,-2089803722,-143646682,1785456538,-477930732,538839304,101107568,-1962934160,170681910,-1196591680,-661979134,1881149067,-212489,1122586997,1029439503,4020224,1342192980,1028390973,4016128,1610628420,-2092957635,7348286,770261109,1027342591,4012032,805322036,1026293821,4007936,536886564,1881161347,-381717248,-617873652,-2063597128,1124496840,-337587901,-1744883978,104671391,540967680,510984304,83815401,80118528,1881161347,-384862976,2424540,1884425856,537821956,243992688,-108826592,-2135198456,1081102910,1048622197,1962934708,1714850221,915511852,915082228,-337105818,-22615794,1178992642,1025245245,4003840,268451092,1024196669,3999744,15620,1881161347,-374115072,261760,121456198,81152,1048790598,1962962976,-26547736,-964493307,540967686,-646643600,838753257,1483743238,-1880734487,-2095650810,-26206170,-1957641077,1426123822,1780003994,-1576602092,276038676,346171008,505846523,646517866,-326434580,18119,-28915968,-443875328,15609481]},{"sector":9,"data":[744627851,743185923,50483083,383855375,-1325626617,-391449856,113708606,277,384313087,-964493260,-34936572,893190171,113672960,184410089,1023418624,-1724055518,4472064,1023452733,-1757609757,1085089280,67108389,-37819920,1178993020,1023415613,1178992662,1023937853,222104589,336411920,1023675709,1178992653,1023416125,440205347,9125120,-385782211,589196,1223164170,18035469,940393192,1021837653,18110733,973944552,820510996,21773069,1426926312,367526230,10411533,84748520,585629863,15713805,-720560920,384303275,11454221,1343683768,-402608323,-381743863,1228832768,359923756,1342244792,1603738,311868160,-997502893,221964368,385661080,15351120,-804462360,-622329670,13068044,2014106856,-823656248,15040012,-1341339416,-1070399253,2067615824,20625409,-382182471,9702676,1810599344,-1901068140,9725419,602640560,-1850736492,9515243,1343683768,-1342139331,-1790121070,-341528576,-1342139066,-1790907483,-2136559616,18278926,-1962611581,523619804,9769451,243312560,-2097080598,-594867988,-853591603,-1843532995,385660928,9780560,199993520,-1800404842,384444032,-2147095554,18278926,384435958,1342927874,-368278552,-366575528,1048640790,1962934708,-370920955,-1706030042,342543160,91537419,-199486822,-370452469,-1783627626,9879275,645961648,-335669526,-1342138749,-366575464,-1947468266,384444032,385661181,9846096,-1729390160]},{"sector":10,"data":[116785299,1946228458,-342445849,-2147446901,18278926,1443613928,243269776,-402581782,-1017639999,196864000,-2147418510,35056142,-15999767,195815424,336462049,1023938109,238882830,202259716,1174408765,185723718,134954260,1024461629,188548107,736524,-1953256154,-384832767,3735699,1023424573,1178992695,-661934810,743185923,537413622,117433716,922681584,922709944,-1332597670,1225164288,1958742572,243287558,1442982998,-1275051,-1962873290,38732559,-57980599,779286827,11943483,-410310538,15609481,-1070396701,-788064762,128709609,-1844414581,-394212224,2145965374,642139659,-370146387,1183578932,-1731670014,742991496,113641392,-402447936,-1705782528,200547346,-1270972325,-227213311,1879453321,18155263,-1560219487,1049325596,-410964902,1040416767,1166748748,64550658,-1761268795,-1070385783,384566919,-1996339831,-2144573898,1963001471,476053257,-385849112,1207368400,578109448,-2147004534,-109049887,-2145946875,309723897,1459931011,-1207699072,118882304,41200555,1610591147,3663900,-1962220711,792186332,-502610813,1552623350,-28734722,-2146967168,410125049,-109046412,-1827572987,1963194752,120966405,969777643,1386015495,-1952912560,-2144576994,503545831,2005609548,736032514,1644387127,847991554,18157311,1879443143,-2014838784,5817098,637564477,-370146387,4586040,41192230,770262598,-1962924294,53240862,-1960031202,738036495,-1974908423,119801671]},{"sector":11,"data":[410191164,54326411,91491442,-350406195,490065182,118888939,334210291,169011287,5193154,-1962913475,53240862,-13874146,-1962872818,-1197275578,155683439,-523115470,50333701,1200265157,-1979243513,-1957689753,-956890506,225705985,742983366,645943039,385690710,71731999,1490266600,-237939,110100086,1854603502,33325056,-561567884,165875083,40712141,-502610045,-49867017,426968380,645137212,678691900,-1510764136,1195897739,-387478532,1776880046,1447972601,915010443,1788488806,-1424725484,902685931,-588513724,-96192051,9230059,909985350,2440448,-1946599447,703232,671098522,-473396436,183272202,936238219,1358357055,-1929829399,-1548933632,434706156,637570297,-371194963,9238800,-989614810,157778067,-823635009,9181960,-989614810,147056720,-2097116207,-594869012,-853592627,-119084739,-326958965,-841184504,1036853049,-1929848855,4777984,144435280,-402617135,1348141118,-946646957,-402653177,-1933440887,2942976,-350276147,-402617336,969736226,1036865567,-1929862167,1370112,1200555919,-1779871742,-402617096,126812166,-125114032,-1962496730,-2144576994,503545831,120269900,-661928701,-392510713,1375855520,1950621,2097177,1077980454,-127997546,289211409,-1817369088,1527136651,-628303869,-1908932833,-129570342,289212433,-1817369088,1527136651,-628303869,41418527,-628213761,301476841,1129740,-1953256154,56297025,534416600,-1912130099]},{"sector":12,"data":[-132978214,289214481,-1817369088,1527136651,-628303869,121228575,-102114674,1024463351,289212433,68238604,637538621,56136621,-380631487,68351968,637538877,1099666349,-670868730,-1893737844,-371552761,135460808,637538877,1099666349,-670868730,-1893737844,38244103,-1377183090,1024201463,-1390018542,104958867,-1932000421,902635482,-841314785,-141366979,305991698,-1817369088,1527136651,-628303869,523881759,1036901006,318207977,61679104,1603769287,-1962508541,-670890913,-1945874549,132025282,-372170914,-921459213,-208952077,-1910565225,-146085438,289215505,-1817369088,104923992,141688656,301414377,1129748,1486073126,1342587139,-402099713,309004007,1195284,1486073126,1342587139,-402099713,7538397,1515716747,-150542000,1476430592,-35041250,-402616586,526122606,-1850923374,1443278118,371066646,1402376991,1490863080,-1951663481,-1425593402,1943571487,283934723,38218550,-1413379157,-1527521397,-1957492898,-383838470,9238204,1459498472,1912606952,-1064434166,-1527523449,1577581195,-1762221079,2112394157,-796152356,-388823887,-939283055,1929793339,1930887950,281313283,-1862121725,-104623699,-402616893,1348074990,865292369,-1995994688,-1390017977,-1828436087,-599594862,-628420821,-402239607,-1933441499,-37165056,1468748691,73370374,1004283880,510854743,1381111555,-788113432,260791128,-1828561013,1200164745,-1828396286,-369211511,1038677540,-135540474,-1880620915,1499159293]},{"sector":13,"data":[263504,-1840098479,1402187046,1490806760,118946443,1347967659,-1851062485,-327154829,1194014224,-1416451326,-351473789,-402617293,508624218,1372140368,1442841605,1593783528,1380975986,-2093094063,-907474748,-402617099,1519910202,119429464,-1834249813,1364350891,861347408,1353427904,358632,468189324,98077693,508559366,1372140368,-16615425,74972983,371688,-788178712,1223164043,11388165,-939176728,1189609626,14024965,-838516504,-326958868,-841184508,1036853045,-872075032,719847592,11080197,-387105304,-686750431,870865664,384324589,14721029,-1190850328,-326958879,-841184504,1036853049,-1174077208,-919404438,7013867,-391305583,2139815969,-473788872,1992768265,1032529413,1950873579,99582731,-952467575,408647,-1962609431,53240350,-1960031202,-1950146985,53240350,-1960031202,1950759543,1996705290,-2103236,-1328865454,5151236,-1819205177,744627851,743185923,171722497,-400591415,-1014235199,-1908777077,1468737218,41239044,-2087517006,1468597738,1011337018,-305463290,-398047744,-304479123,-398047744,-304413595,-398047744,-304348067,1481000448,516502363,1344164179,72083537,637595101,1348164269,-397389229,14484541,753402127,17839364,906240488,116785425,1963987714,67823635,-167703241,269681158,48761973,17970180,1996748776,-152567538,20346371,1208220392,-186121929,20465923,318899958,-2094566128,-594869012,-853592627,64874557,-167693238]},{"sector":14,"data":[269681158,-326950795,-841184504,1036853049,1191429864,-326958791,-841184508,1036853045,1258534632,-326958795,-841184504,1036853049,1157867240,-1595408122,17379331,839097064,861602079,1028870336,-1930952417,19151875,1677952744,-2132279003,19555587,1778612968,1961361708,19753987,637846659,-372100179,19727259,1625835078,19612163,1946376936,-4718286,859656319,55437313,1526807110,1397801011,-402572739,1112277823,54126593,-402569803,1186726707,53340161,-402567487,1372390183,52553729,-402566702,1372783387,82608897,902683787,-398602977,1372979979,149717761,969792651,-398602977,1406599931,49670145,-402566184,1507394287,48883713,-402564384,-1940258087,-374528512,12845840,-1777901735,-372170914,-921459213,378971379,49539359,-1070399292,12860752,1929561320,-1070399291,12926288,1482383111,1518337977,1342592851,-1427615151,13028098,1028702259,1594294470,-346466213,855697126,-432189248,42985472,1707212987,439929370,450697696,1524938156,455367429,914136595,931611006,448010943,543433600,424089932,946288894,587188122,-736550145,-736111588,-1259592435,1831253224,1831234854,-758328631,-754003249,-753609967,-729820036,-724052862,-723659558,-713829008,1667749238,-1657101806,1730728521,1728538372,-963877083,-1268211218,951170037,632468651,1005891014,1666655614,-1591893746,1680107426,1732274018,1733388113,951478194,1940444223,-1579927657,517086943,-1448658895]},{"sector":15,"data":[1745007261,1746195758,635881217,-1589534428,-1585405609,680567202,-2091767476,1676294788,933913478,812428518,1693852894,1677747613,1072315510,917024374,1384796678,1697604365,1735807526,-1247385741,754399330,756100173,-1389417370,-745614598,-734997357,1831261450,-1319053942,1505603884,-983382700,1531102590,785800017,810823740,1518885728,1532713804,810310824,1533685860,1522686645,1060843738,825371757,1520261638,1059864443,1532386119,811348036,1056856933,-1585864368,-1580359269,1644257790,-1247206531,1644651012,-1381932534,946627597,1630560552,1637956549,1697800944,743058676,744697102,-1669307576,924556473,-968857970,206156523,-1279343462,1996117226,1941070970,-1297897017,1701996192,-719755903,1724696274,1689085659,1742759093,1742366685,-975542762,1693525217,1691770609,768749177,1523592844,796183285,1562455795,-1242666065,946976212,587145983,1810309887,587145983,587151534,587145983,-865786801,587145983,587145983,587145983,587145983,1641374142,583147059,-1661264319,582641331,1720328959,-860014445,205180092,205130810,1052183610,1050492599,1054555805,1043414747,1037516246,1039875562,1044856391,1046298125,1053834845,1053114064,1047740101,1050099315,1050820247,1029717666,1000487806,994196390,968113536,1831234854,1831234854,1203360686,-1190270152,149633089,-348631623,944683267,126496347,-1185027264,-185911217,-348631111,969773909,-1828132089,-351849011,-397389310,915079258]},{"sector":16,"data":[300493926,-397389072,166264910,-380611856,110096388,113710830,566695666,-348621383,-234436831,-401315306,915079214,654257254,777721582,-29161590,-299988544,947239190,-523115470,-1959864181,-1556764537,1359877872,744896137,384839423,744234635,-2096595061,1048576199,1962945609,1277070091,1612579628,-1022915028,745539214,84279491,84280843,84280581,-1149162491,-684836658,521572760,1200348299,740834570,-1014823563,-1913394426,-896792473,209044027,1023952779,74660057,744896137,-2115315317,1337868,567095476,41091644,1807687885,37129020,-2114508032,1913651454,268484099,-2116579590,-76435772,-1070396557,168216374,-348455680,-18578563,136743222,-1312388352,1222693636,434998,915011331,-1014235134,-604512725,567102132,2099153974,2924800,11313974,-1440838602,113718784,8454312,-1074002154,-1330042662,869215089,380302272,168216351,-1589991936,212009146,389913088,-996535190,371312441,856102431,2267885,-1706027966,566704806,905970616,657095,-2132133210,2213693,567095476,-1207926877,567096576,7020169,7145100,12066574,968145445,521544141,556535435,109981411,-1960443779,-989844426,-1943982586,920335322,556408575,521536883,906076137,556926661,62642828,520041984,521543978,385091318,-972655613,1504262,2097581771,244000256,920846380,-13385330,4030502,213462132,6209024,192194291,864026553,1974399680,115731225,-1960900834]},{"sector":17,"data":[8830967,-1399744340,24428798,-136140216,79372054,-2035843072,12107520,1914817860,-2134706678,-1887435404,1262485638,918480761,557236001,-1107254296,-1430314698,10151969,-200882485,787022358,-967354625,68613126,-1957362709,724483820,-399823169,-1430388612,564838177,-352291864,-326413053,-1088312642,1709711790,565100032,-400445761,-1566965668,186763067,-2096401216,1962935934,105301765,26870015,-165558469,68613126,113641588,1593841396,1183566686,-850611194,739150625,-1157111007,520028162,-987881174,-1207932138,567092480,-1371635681,225705984,11509790,11540165,567092660,-147076321,-276623757,184912644,-227278267,-286581249,-1957363517,106387180,1012119582,119462030,-1106880885,1001193480,1074820290,-1760791402,-4603853,-1951468801,-1762923529,1958742937,534416386,-1956749561,46816741,1515782144,-668214133,507186034,91357184,1364386699,172491,855995712,31779264,788484434,-1070399486,45613259,30730496,0,1458342741,206998359,-1962260853,2123040886,198871814,-150505006,13796312,-567026953,125433355,-696000521,199161600,-2028309002,1979059186,199751449,186611922,-150504997,13796312,-336012553,1976699666,-141125875,-1777896729,-704387081,1610211187,147479902,-1957363712,1398167532,1183579955,2109737736,-1948780782,-654899626,1956599,138840320,-1962518903,-1073017786,-671673731,-150317429,500889560,1183383552,173443340,376815627,-1962258805]}],[{"sector":1,"data":[-768407482,-661917193,-150583669,-338457615,-661942210,-1962258805,1183516758,-773074682,-773140007,1977289688,-1947076620,1389507568,209125200,-1710590209,566705072,1997035067,990409223,58066502,855764611,197561298,-150506241,-2082932774,1583022298,1575324511,2250,1408011093,-1946209449,-1073018810,-671673731,-150579573,500889560,1183383552,106334472,185353867,-1961853504,-654898602,1956599,205949184,185226889,-1961200192,1183517262,-137219320,105286641,-1031015945,-16002509,1290487669,-1948742768,1451952718,105286408,-640554031,-657331503,-193602805,-768347657,1996443730,175570700,-952389478,139868961,192022391,1980122683,172370694,722228763,1444611654,1979648776,-136644857,14320600,-443851937,576093,-1142125739,647626753,-1154734080,850919428,2529811,-443864024,52061,0,379238291,216984095,5226,0,-889106968,11681156,1471152140,93317205,147545949,134263296,1151905792,1148798236,-1329904447,-1861948611,-801262405,619237608,785908478,-1073014785,1995048308,-887854581,-326412903,-1957670317,121097692,1527039107,-883038837,-2081649835,1003291372,1036910174,1575324504,-326412853,-855315325,-839098825,-1957013443,1439391205,-326898549,1580715268,-2093101572,1946222206,1178062090,1580977660,1480445436,-1962752893,1439391205,986573963,1043975641,1036851604,429205130,1575324574,-326412853,112940886,201373696,671098522,-1956749524]},{"sector":2,"data":[1439391205,1465314443,-1207957829,647627776,1596729344,1575324510,-326412853,-855446397,969794613,1036910206,-1627429238,969739124,-399127080,902628215,1575324640,452115147,-1173955863,-118809846,-350543174,456833779,1387982571,113633563,-350524742,461552376,902689771,463125193,-1173969687,113646184,-385869276,-1329985895,111274266,-350578502,449362680,902689771,-853948098,-912240579,432775705,775277912,-1979967029,-1994811330,52009526,-1676768818,430220057,430315145,-619984589,113721717,661922,-2013230360,-1961257458,-971400650,1689094,167819496,-149318130,-15096826,-150571521,1947747009,818511875,-1961251679,-1978028514,-853948882,432614965,-1983693363,-400973282,243860084,1049303446,936188312,-853955578,243998009,-1075111530,818511960,-914348309,1973311536,-136579305,14386143,-687090805,-914353548,-2134378992,99289717,1954596854,550076419,430718601,430841481,44230851,-919383905,-1377248885,-1950518782,44493048,-745816206,-405672053,-707734575,-741218351,-50080304,-712975853,-773336832,64344275,13861880,1946211712,865332180,-1643214391,-1610168551,-385880551,57999960,-394211968,-919469802,-1024926925,1315927042,1081361468,863257916,430587520,1012888576,1006924843,1314354477,1048585451,1946163624,-1696053738,1011764738,1007449131,1007186989,1006991161,-1023315408,-399250600,-914227236,116065282,-2130717720,113708745,6564,32696390,-790081377]},{"sector":3,"data":[46528001,1048578677,1962940840,1086947331,41262680,-973677577,-2146601983,-617381915,429923977,430186121,1040448395,1040390560,-973727324,721712400,-2129025474,2114009855,20627203,-22610047,-1497431171,111012094,429407883,429801091,-2147256825,902629577,-516567616,-1137821747,-650457831,-952223283,-163721959,1092208646,936190581,490327522,-952223283,-163721959,270124806,243271028,1359026630,142665088,-1017575571,429407883,1473788365,-1414807501,233147051,1605074928,-1023293056,-276037837,-678699125,2062075787,171536897,-16157248,-350642162,23849201,4515920,-2083519656,-712834861,14123776,-109002242,-387550702,-76349103,-1191254656,-16039874,-397931656,-152371148,855756160,-141863232,-1843809601,-1783917653,-1834248533,936205995,-1021726162,-1957472937,977090,50334696,-669820720,1491604312,-489555949,-707669039,1489229777,-348075648,-914335700,1491939888,-2145749602,-604536627,-612114441,198413056,-2146274089,-940175159,-351636096,-2134379003,-914357388,-1405187808,-1373730535,2045297433,860921600,-388396087,-1217265532,2112419979,1354396160,653772683,-125101662,-1014240629,430057207,-1586114037,-586950517,56138610,13861880,-1830037389,-840812595,969743673,-853948610,-955845059,91492377,432410240,-444575487,124586112,-4471975,3074175,-75425934,-227078964,-788345472,-775748637,65262051,-337413928,1994965988,1007252480,1006990379,1308849197,1321467660]},{"sector":4,"data":[1659421689,754545664,1022652976,738622985,82604561,-1576650230,853835033,1313260516,-847200205,-154928895,-210425659,429264512,-152048768,-277540667,-166670976,-562757179,1946166504,1949187293,1915759850,1997094098,-167201586,108335301,429917951,-334880588,429786879,1002693682,1931058230,1048620067,1946163625,1948269584,1946762478,1946828010,1947024614,1918975202,2004499462,-1017175038,1724104754,-4,-16777217,-858993345,-858993460,-1103103028,80157146,-1070387199,-1287597941,197330720,-2146732590,192155617,-16189055,-339867020,-1106711783,65739249,-1172703298,856096769,-1945713728,-54489384,1461309119,-218102599,1284202149,124026886,-1960791169,38013700,-1962654709,105122768,-921983628,766706297,-1040723465,-772309008,-850156172,436158005,-1605354035,27400703,902649882,-853933778,902628409,1010290112,-13419059,-1407593026,-1951532918,1292942024,-1332616457,65336909,-1328081976,65533594,-2114317368,-2129464087,1460880351,-826351625,59369497,1598221755,798702797,-841403187,436026937,116800973,1950423550,-138721525,-1690514110,-918893265,1010290007,-13748787,-1388458727,-1382699625,-1382830702,-18251375,-1948649665,-473943049,-773074676,-773991974,-488845090,-1697218060,334041859,-1076292655,280566235,1371550208,1448432211,-773533616,-774516266,-791424558,-773533488,-774516266,-791424558,-451782192,1508971353,324659475,-653043247,-456130540,-707668271,-741223727]},{"sector":5,"data":[72995024,-1109218768,816859471,-55643139,-1106067069,210246106,1509949880,-54327461,-1378841683,-461322101,2130722175,-2136394637,85292159,-523173632,-657399343,-1416431733,-1951677813,-1010813954,-796147661,-1375932693,-2136092533,-260701444,-788609920,-338112032,28860379,-54265600,-796152489,-1376220243,-1951541109,2145681608,1934090301,938491364,537212530,-773664312,-774647337,-773664304,-774647337,-773664304,-774647337,-773795376,-1948725023,-141860913,-1047811182,-1413248085,-1951677813,-1010813954,-796147661,-125052789,1476190699,-1378841683,-1951532917,-919360040,-462101494,-657334064,-606996271,-623779887,-120463920,-539894831,-573515055,-606996271,-623779887,-461316656,1106654095,-385168862,-176030336,-32254445,-535437805,1435822903,-326898549,-919220974,-352169240,-326413047,-401412989,1183449605,2143292143,-499659509,-93440563,-883038837,-352320536,71091184,104659828,1586231156,1963146490,147060234,112978805,1008069376,-167414527,-579534397,91554364,1963508726,375764,1779204586,20,0,4194976,0,96993280,64,0,4196602,0,211566592,64,1342177280,4198339,0,317989888,64,-1769996288,4200088,0,431930400,64,466206468,4207758,-825430623,1322500635,1890950720,-978474965,-46110307,-1910840027,-2081744561,1133893440,697107726,-1606377809,310504772,-1182629489,-811150016]},{"sector":6,"data":[2015316479,-532622398,-914298484,-1466713529,659909441,1895271737,-1908245280,-73532962,1370128107,-857508285,-2077283854,-851171711,-858993460,-70464308,-1546188225,-687194768,994048163,-1752346657,-175959442,426060863,-1223206686,591393233,1192970116,-290994772,1818867263,935134639,-1136661626,-706381246,-405356652,1640955199,-864611964,1530913963,-1094431263,-907635308,1966822207,-1105932988,-1170231398,-1387972204,-1798328034,-1125988801,1630616506,1497332363,1404141249,1606095484,109915967,361075390,-1522580229,665139689,715685866,-1125867201,-800687004,104748509,2002002892,-2121138301,2048473661,826484067,-784552768,-1756921288,-671285064,1165736763,91881227,-146392645,-2124458017,184567491,-1960348417,-772812345,1475334639,1946158885,-523217943,-523181942,-1006444336,-670833614,798702797,1539914445,-842805013,-1963295179,-880739746,-1995196616,902690910,633075822,-449458918,-839887223,-956924359,-855576762,-145847747,-103751216,-1047871024,-1730736348,67428737,-670836085,-15678589,2117455143,-94467334,-1221014656,-128022253,-126994995,-853924421,1451877685,2117717488,-280574218,-919220992,-839430518,969794869,902690430,-143750455,-36641328,-980761136,-1965617372,-790507296,-1967009543,-686873407,-456071984,-2120694774,-1962670879,-2082995238,671027395,-855621656,969787701,904446936,-839390464,969791545,-298463784,-667300413,-841467443,-389814219,986513436,1190577089,376770811]},{"sector":7,"data":[-667300520,-841467443,437268023,15695488,1187382399,-922091025,-79235389,1492612368,-922033429,902628212,-318061600,902641525,14149833,-315488021,-840288819,501795130,-399127295,-155108659,1946285894,-399127290,-151962931,58015938,184366541,-855411475,1860821045,-1070215681,1581135821,-1589785318,-461366682,1073687935,1077759858,-146115840,4130264,-930479691,-771235456,1238207205,-388896559,-661919535,442402698,-937236446,125098763,1586432587,183888666,-853903927,902678837,-8787487,438582912,-385190911,1187446567,902628079,-13243968,438582912,-839486463,969791545,775409112,1187387958,-842857745,902688053,-466235959,-159499827,1190542797,-780844553,-1007602227,-336841267,-315241213,180958669,-843156023,-373034699,-437715241,1976109822,-667300429,-838941719,-538322887,902650110,2117717476,-163721738,1963063110,168618983,-387680787,-646578500,-841467443,936237113,-971360722,-1023152314,1979631336,-386602041,-965345601,1187442155,902692847,-516567616,1244542925,-650457830,-159499827,1190542797,-1451933193,-843041331,902691893,2117717476,-1975661066,902690646,-516633143,-840682035,-839483847,902684981,-919419920,-337562163,1976109572,6088949,-339135027,5302275,-842517299,885899573,-1053110840,-839240243,-922027718,902628212,803783648,-113586944,669577451,-247804672,1187440875,885851887,-853873130,-839483847,-146344387,1478915393,99567302,-838990359]},{"sector":8,"data":[149676341,-1095994,-210384630,-367643443,2117717274,-163721738,1950480198,775409093,902634208,-919220763,-839371315,-839483847,-144274883,46462622,986514804,-855381015,902682937,-792425742,-788999968,-789786432,1221644524,58000040,1221146061,58000552,752891341,1963239426,-919220983,-840944179,-389822155,-377094055,1390944491,-919220992,902633707,-399127071,-919410294,902630635,-919220767,-840878643,885901621,2117717457,-1975661066,-494864554,-855411711,902678837,1959922419,775408904,986520090,1959332577,-348795642,182532813,-855411475,-842801099,902684981,-1070215744,-840419891,902684986,-399127095,-842974515,902678842,2117717476,-163721738,1963063110,-840093178,1489238581,-839057687,936237113,-1021699538,181942733,-855149367,902682681,-974535701,-79235332,-854559472,-605431751,-667300356,65785226,-386079000,-370540595,-1957363460,-1948808212,-1898410786,108956608,-4603853,-1917914369,2123104117,-18168,-772296974,-24643285,-150583669,1946157510,-783703038,329642985,-1952123959,1576700915,-1957363509,-1948808212,141986782,-661848437,-1070350194,-218103879,-1949173842,-947190146,41157032,-372160092,-921459213,-208952077,-883033461,-1947432107,-1931572265,-1950314792,2123040374,-1178586360,-1359806465,-114568713,91530995,-14827493,-1946973185,13327866,38889,1458342741,-1962822825,1183517262,-2083376378,24447737,142511001,56297,871140181,172919744]},{"sector":9,"data":[-544532253,-1064380276,-1979285877,-1359869882,1962934456,-12219133,-883033205,-1947432107,-1931572265,-1950314792,2123040374,-1950338296,165874254,91530995,-14827493,-1946973185,13327866,-1947432107,-1898410793,108956608,1317789579,-1978277110,-527824826,116727,1235878516,-1410078255,-1426863853,1569979019,-1957363509,-1957275668,-1070397834,-1394920551,-76275652,-143390404,1949121616,1965767684,960277505,808198007,-472835214,-880028975,-472778101,-472788271,-654060847,-670836973,-352267645,758929628,-150506093,13796312,1600051959,1317784413,105286412,-1962387829,509020798,177470471,-2095876928,242551545,175755787,-139842128,13796315,-141829385,198325138,-150833984,-235432975,80971666,1983462448,-1440283646,-1022639477,92856949,92712015,-1912650616,-952434364,1599664754,1575324510,-1027604277,-960183102,1086374592,-2104327601,-2105240444,-996899694,1107312836,-1034893632,1338294978,4243535,273813700,273698896,269488144,1178865680,1414812672,280104970,-810549238,303173855,148034,12845058,33685568,-808135678,1112687186,1380078162,303174162,1599243396,1347555423,1376800850,307253776,269537040,1077940738,280100921,531628044,71434240,-1308621306,-1342175216,273612879,269488144,303173648,1338249744,269488144,269488656,303042576,269619218,269488656,303174162,303174160,269488144,303173648,4112,280100920,313524239,269488146,269488207,269488146]},{"sector":10,"data":[269619216,303042576,280100885,11534348,548405258,11665409,548405277,538968064,544,0,538976288,1253408,524466,8368,32,8192,8192,2097152,0,570425376,11665435,45088776,33817092,789054468,11665417,279969804,-993868272,-813662080,745185536,-1157577920,993423290,1949066246,920161031,743185923,-1152148285,-2143933462,2902334,1857749876,1200502316,-1013097726,638028544,-352172919,-433107954,1156982287,58064127,-1962672710,644834846,-1962779645,11140679,-1462078144,-1207536632,-655884278,9627704,-337114141,1894289664,-1809383631,-129004778,126611691,38045990,793841387,-165277722,1979514692,50969091,1868963467,39584550,-1442953333,-629850112,259328168,-402631704,-847249234,-11446400,639013926,1860766859,2088969761,1651776516,1207316707,712245756,425859,1048792181,1962940042,-950906555,18264070,-397389824,1499084917,1868963467,39584550,91602955,649603307,944105472,-1960433429,2145746956,378996422,2088969729,125115396,113699281,-402647401,-1586361162,-977794845,38746624,1967772533,-28865765,343249064,1207961381,-1031729547,1207369720,74780927,-2571647,-2080485494,-108853279,855799302,-1996197175,51820606,-1009712175,637541352,-1274638427,651791126,-2130948725,28868581,809494528,654297995,-397338956,-1957096792,126562010,-1012586837,107611775,208666624,128386641,156829716]},{"sector":11,"data":[185928241,102501519,132056946,165873931,213650269,123274752,154077126,187894279,104664150,134416278,169871688,208669516,208669808,170986608,210700970,210701455,165874831,213650161,213650620,168234172,206965447,206965846,169872470,2784,748629151,748629151,108801183,50923117,105775104,135333796,170789206,2834,124716569,151521244,190450144,100859904,130221910,168036652,2864,127075904,155518976,189336093,208079981,207883370,178719278,210111619,210504841,183372256,213060784,213454006,180619780,206572621,206179411,182258205,748224512,748432531,747646102,112068291,204406784,142542653,163842284,193006228,116198378,144574513,172362127,202050505,139790097,158730434,194972266,120327201,148572270,176359859,113249208,1713,121241600,149489788,177277377,2942,137234160,160172187,197528131,118751232,146737234,174524787,2972,141231913,162531544,196414080,215878881,215682264,215092437,-95974618,-2044817773,-10515946,-478077162,-338624260,1939835694,-1993960700,-675022265,-1389974769,1532727723,-486550040,-1809383431,-1206943210,-1461190655,-2109894098,1532734223,112727,-4659120,378808063,45223895,265749739,-1377303374,-922068734,-902167436,230164086,903211008,2139104859,-713817860,596633745,-95975130,378808063,-584458240,-685123031,-785787863,-886452695,1361663017,1260998185]},{"sector":12,"data":[1160333353,1059668521,757674793,657009193,556344361,455679529,204025897,-388527344,166396496,269234919,-974596213,-1948809472,-1958262833,126559967,1962934077,108816,-1958212748,126559960,-351303386,-1541501973,-1962440426,38766543,216258955,205490470,92874241,1206603599,737296009,854782443,922685399,2062227092,259796444,379258614,-955747071,1561760774,-383915208,854013348,350949335,265761511,-12285402,-1828651995,-1959859247,-1828389729,1172887435,-1579710720,-1556080982,1067980458,1347554165,-198009958,-70916085,-1694042534,343213078,654310027,-1990519148,1494661670,1962934953,1065952771,50375000,27788404,-2142181260,-82404570,-396895509,-4718212,-1845065729,208945174,-1875473578,378446102,1580506856,109559859,-1128589658,1527182959,58032172,997155003,-1996328441,-1710819833,443822102,-1957554053,-1206476770,-1159188704,638218783,-1812052085,-342685815,-1554490642,1049171616,-4516194,-1675720705,74728214,21465382,379193078,1380021249,273058566,743572995,239504275,-1961867383,1200163910,46367502,-1014803627,176063238,-1928694529,1397753414,1778492058,27433492,113710186,5820,-2091296249,1365054660,379193078,1494971456,1073785176,309612880,1128520843,-2013265992,-1953298873,-401170418,113643856,-1996482918,-1021920730,243273687,-352227478,-166734078,35035910,-1198455180,1156251822,379260544,707980034,-351305168,-684709332,-1710325745,267059734]},{"sector":13,"data":[265760795,379195008,822405892,-1995450576,-2095670210,1049167047,-276621666,-682628348,1527182863,1182040108,10270865,-1858897176,265764075,379258614,-1858898672,-352271432,-684533013,-1743877617,-1727100906,-1710325738,451610646,265760694,265753835,378930886,-687084799,-1777940977,48955414,922685399,-777316716,-1886769429,-511508480,268009487,-1390016907,1103661995,-201659951,-1006918362,-139784233,2906630,-1206553472,149422236,-686953677,1077783311,-972720845,18252806,-1593835079,378219618,512454524,116813698,1946233857,-685511891,28879631,729671680,-777278170,116101608,-1179971625,1520500737,17233452,41222444,378208524,512437228,-2103235598,-1389997802,378158723,1024095488,91488254,911443,-497439909,-2079422232,-1809383658,-1047781866,1047906875,379719307,379854475,-628220021,-1958018069,-294113,-1007279244,66286849,38222809,-1014239883,954749727,209017600,-1948611042,1086819087,529598345,512440003,-628216846,1195050987,-1961528318,29619743,-1205865356,1313734664,640825064,-1008464979,1212728203,-2111927521,1928057110,-387722986,-650444780,1048579444,1946162820,1510882262,869299500,1460061147,-1957538986,-1087610354,-963891660,512475790,-700747886,1962934458,512447247,2139297444,1968898058,30113795,1962933123,1944834361,4570887,379721355,-637279279,645388347,744623755,-58752730,309592203,-58771162,-1960441995,-847248817,529213056,1043974891]},{"sector":14,"data":[-294381940,1532687339,-1022927010,1477433088,1962999589,715843588,1913011264,-397391871,1498939689,648357463,-1174504055,1364328447,1073789008,-1693548464,654247958,260183700,-880026829,260182251,-1325397829,-2113410240,310031,-603750223,1073758081,1200299637,-2146704638,57966841,-399908120,1397828063,1526782184,4057177,378808063,-1195842677,824567808,-402652744,-320143167,-919400574,1065475211,-1179107328,-1947831040,-1427635641,870091520,911561,-402366581,-998044058,-1809383670,-1694042602,661915670,379266688,138906615,1392920648,922701905,412751520,1493295989,-771029157,-1823274636,-402603592,-161795916,1075223046,1397825653,-402370677,1536371273,1208447577,71797064,-1957478336,1950550111,-1993979132,1204247303,-469762296,440633,1258446731,-1959861295,-1962249337,701950175,-343726990,1065952772,1138527123,138905923,1334526016,-1993960698,1200198415,-1710325754,1049182230,1220744862,-1039941629,126561939,256885675,255725381,256839486,258215788,257560410,261689206,260378512,262410117,672016378,669263844,608708654,652355082,664348386,638002245,652158687,609888150,653534747,664938228,634856610,658253628,611067780,657073635,663562026,637215888,654714630,612247419,655893999,661792536,260902806,260181890,587206561,-1995450576,-1424581570,379062006,-1207536624,-991428433,648357423,-1705989203,31675189,1211987008,379195008,1347441921,743572995]},{"sector":15,"data":[-1828711931,1258293433,-499646645,-1980986374,1393998886,113476437,-16482429,-1923937676,-1705834914,342491554,1778492058,25094420,-402651208,243281779,-385608038,300482928,638028547,-335657591,29816378,1962937016,65660943,378808063,1963050742,2537719,-349223192,13494767,266743645,1149904531,16524799,-670832431,-1425568978,-1851019994,61582630,-1821415930,-1459730549,-1448119032,-1384824832,1968238761,202369027,-1761163630,-1700790250,1963042838,1963239612,1963108508,378970279,-1206478942,1592262657,-1757511641,91553814,379063936,-27817200,1963050742,281212427,-1633612684,71797014,33310710,1407729781,1300964867,988402172,930415183,-1558798687,1207310000,510919164,1964032758,109019929,-2095876864,1477182,113642613,1342248670,783018064,1049170037,654251678,-1363667308,-1207702784,2095579333,-370414802,-1209466538,50718720,378158723,-1955629824,1183447111,273058578,1334445961,-27817214,1963451011,-128480509,33310710,1085658229,-1995553141,772080711,34138112,1580941426,62681856,1866072670,169571585,974025929,-2146798577,-977797057,-2007206656,-2092743921,561448698,1282742075,1913059968,-1958526199,121311814,1128480373,-1996333525,-655881122,-1809383436,-2096133354,678823673,1948319104,38243098,1511951187,1364414508,1091803730,190513635,1124955584,-1832129725,990597352,-236256697,-402649672,-1024774721,2013217205,205949700,1200177216,-1823979516,1929403963]},{"sector":16,"data":[39715649,1502678843,-778511755,98619872,-534052850,-1427579765,-1957210623,314999796,227212171,839960451,-1948134931,-217637183,1608485799,646506590,235266257,-371195136,-1047789747,-773795432,1050080,-388496557,1918370214,1577292582,1494190338,-398245040,393347425,-1996204148,-654899129,51267075,1200162886,1577278210,1512565506,-1995678069,703135838,-10491393,1810383683,66286081,-41942434,-1995737792,-108986801,12957704,394912631,1913059971,-1593150455,1128475738,-236386423,306613246,1048835307,1962940042,273058753,1317734281,38766862,637421451,57999367,-1946663029,173271248,1200293493,306612728,608223491,8972542,-919366542,1929403963,39715733,-335637271,638028733,-335657591,-382781161,-1977183473,-64618684,65589504,126562008,-1414715733,1868957187,-28865645,1967128745,1963501780,-1445950683,58020080,-1609992984,27793050,44612981,-956954507,702465,1049169269,654251678,1843926676,-386667739,-286577585,219811101,219614484,219024657,717695690,717105851,717499073,-1961998711,-1020590498,1945447796,176063274,1361605887,1586320210,1347637254,1778523290,-396666604,225574941,519801687,142476039,-1426866125,-1957078433,-1195176866,166199492,200600320,-1207470656,-387448825,-1983645397,-1995001314,-954814450,583,-569981358,1347420694,1512827112,-1298014091,-680247274,-1946157531,239469512,-2081895054,63927039,-1013906850,1129533778,117080899]},{"sector":17,"data":[1128465010,1301959509,-401315326,1499201449,260227930,1481526955,-179247013,-27489498,1868963331,33310710,1178994293,378808063,-402608456,-219468941,379260544,-12061182,-165317375,1950416455,1527182855,410353708,379010688,-150244352,1357971015,1333789812,1333854716,-117374722,-1811494973,-1422267370,378808063,1179010630,654263878,260511380,266121,196611,131074,66561,38073894,-2096925439,-1960442641,648805972,106402469,-356579570,1095954,-108810254,-2096926200,1594296553,-472786549,-1819833554,-1259623665,67052971,-472786805,-547608,-1424583642,648785190,100903853,-158109850,-2144576762,1207305844,158679294,-104575,-60325634,-1809383426,-1957647594,-1961450466,-1073020345,647170932,-1986838647,-346553729,-230782537,-1141576917,106104282,-1667607721,117564275,177379163,-1739754304,1179076502,512681681,411768454,-141877482,1007099624,637826559,-1930899027,1954588866,17233419,74776876,1870403211,-1862238427,909901451,343086728,-1962496730,108282840,-1960394098,-1425603769,-1611929374,-778851389,1149970147,-1808335102,-369117674,-687861495,-350177777,-1240475900,1398364176,-1425654808,787206491,901158794,379461259,200001419,-1951723646,-18209,1343226042,-92188077,108269568,-1409286216,654263878,265754260,-397190824,-346356220,-1240475896,-687543520,-1424968177,-1976636463,1479915159,973125305,-2145552908,208937214,-267718006,410650228,343199802]}],[{"sector":1,"data":[1179036504,118286427,378808063,1947270784,2013443,-1863806640,-341498327,-2078301717,1579114015,-1977637089,1679778847,-81806561,236981791,-31474144,287314207,-2027969504,1629446431,-684531681,-326413041,-164697135,70628999,1183516788,243982,1183516395,178442,-1293379491,787296801,901156746,-745806895,-397386920,626530037,74711295,41288764,1397752240,-1948200632,-1618268454,-670885266,-1425568978,-4545242,-2124983553,1359216841,654288166,-1031072108,-2096725784,91554298,1946468854,-153038590,-2144576762,100862325,1587769182,50850671,-1552958970,-654872646,-1307211581,-233449963,-1172989419,-132785131,-1389174763,1532530959,639009000,1442727819,-1185813365,686292998,-1960610815,723912798,1232404039,256091,-1207910167,-1796734975,126561832,-18261,-964449365,-396639484,-10616855,-535391194,1427088178,-1185878901,-320339958,-1947765760,-1960441762,-1960379321,-544473521,-1339951128,-33394175,-1957667896,-783676842,38205410,24379396,65196354,126562010,73305003,-28865754,1979711293,38701895,638211723,1950352523,975587351,276103764,1963063939,652839471,-167547854,611583173,1358893032,15645523,1637503750,117564252,158711819,992766113,1965840902,-1693548539,1482366998,1200170667,1065953022,1077986187,-1413281189,1560594051,-16071549,236360742,1544960534,-1743365098,-552167402,286711574,1595292950,-1693032682,-501834986,-686366186,-1389974769,-1070339119]},{"sector":2,"data":[-1230534098,74115125,-1206946415,-108986188,57937920,-402607176,1200301967,75467012,-1809383509,1190613014,1946419202,-1949367542,-504887714,1491340036,638028739,250283145,266940167,-12257754,-1174178308,512431003,52850534,-28344036,1200292096,1073785342,137746293,269003024,1072175476,-2147440145,-847246219,-278206304,654266711,-847243628,871557984,269216201,441589166,444144233,499653255,503062138,447748757,451549902,521543203,453385044,456071961,460462915,500309645,461577074,464067479,514072047,499654088,499654088,507321800,505617955,505617955,519511587,460462962,460462962,508500850,502210031,502210031,509943279,749993984,750005428,750005428,5019,442899036,444865142,511122879,445775872,449518253,504830695,7961,454433539,457186092,512367462,460259328,462691200,501423014,499457697,499260860,499064249,505421370,505224730,504831508,460267258,460069737,459676515,502013516,501816806,501423584,7778,749218990,749415601,126561445,-352024282,-382808299,1156982287,58064127,-166382662,18258694,512443509,52850534,-28344036,1200292096,1073785342,137744501,269003024,179832437,637134848,-470943256,-299177960,512878737,379193078,-1610189816,-1734207847,-1809383658,-129004778,-1977162773,-338624676,41282512,-13479077,1878924937,-1559983322,243363836,-2113900552,1374657106,-1863843357,-1072997652,-1993992328]},{"sector":3,"data":[736004868,722903582,51818526,639021598,2045314953,630319359,1532536102,378808063,465968138,468523997,465247229,480779962,473308187,477240404,523639952,490151323,492838218,495721846,488709837,483859654,486481131,518266131,467278800,469375978,515316664,471334912,475077683,479009903,7993,491199796,494083421,516562313,482541568,484973780,487595260,247013089,-28865792,1963983017,-1462697199,51082512,1971366097,-388955387,-675085823,16955919,265751787,-352255558,-1173367035,243269888,1476662939,17754201,-18261,-145598640,1962934978,-1952111085,48989148,381296265,379469449,378808063,38046502,1946158637,175458307,378812159,378799815,28907031,-237311744,378799759,854122379,-1949797858,-28996132,33556423,-352172151,1477433274,11724890,-1948480597,250086479,-1826590178,1065475211,393543937,1200179272,38767364,-1828552823,1128506662,-1993942649,-1182209265,-1296563712,609347584,33749377,-4657292,1364676863,243311910,-352053605,-1190144032,99287554,12128215,-594826494,-2096698493,126551747,1946288189,33701366,27914612,-1950387199,27853399,-2096925696,243270089,-1996220773,46266127,-1995803392,-1524235649,-1993942389,-14685889,11581520,-349967640,-1425025263,108888,643559028,-396673143,654246210,-1959913836,-1743098209,1912880200,484370437,-670842829,-1959864317,531481351,527245203,533667693,534847478,531636193]},{"sector":4,"data":[527048592,532946794,538386436,532750359,538189825,531243028,526851981,889200487,1193491747,1394822435,1596152099,1797481763,1998811427,638572323,637486218,-388955908,-1618268525,1033049906,635965399,-1976674320,-1976191353,-267442720,-1809383600,-1618334186,-13486666,1955039790,-472868811,-257979602,-1957641420,79922140,-108851317,-2062846976,-402164280,-654114796,-1017581845,393222,393226,393222,-1152188406,1128529918,-93065776,-1617982674,1354980119,-1957539501,-896795049,1963450755,-129004797,-150944893,1946419394,12813076,839010186,-773795356,919008,1946173315,4162327,-1047847051,1073761512,2030042661,-166235101,393545922,1874462211,-1163717008,-1982269585,1532582407,1200341848,98364408,-303366142,-402622536,-370466153,-75247733,638153983,-1993996405,-219442417,67240131,264196,1392962387,1646168886,408876,951781751,1540828696,113491979,-1576602058,125042964,1646148406,1443460140,1277035318,82533932,1868439181,-1828174077,117720971,-1010824357,16842496,67371778,1347948418,192283708,-402651720,1001921227,-1207309515,-1058537471,892712986,112811,1461368552,1342178744,378808063,1486032770,-1731687590,1912880200,454223877,-670842829,-1959864317,-2141738233,-973717259,-2147125824,48980173,-11408078,-2112449498,871092495,-1886769463,1558918582,-1957359742,105286636,-1962886168,-773729848,-1949826079,-396557754,-1056767828,-338572405,-1231058386]},{"sector":5,"data":[-1946209739,786682323,888184715,-392636626,954735163,786008858,443457419,-1976642681,842364047,-49683,28836725,1222281984,-670836733,394997312,-315446382,-109046045,-1962772993,-2142152758,74581497,381173385,378808063,379469449,265811691,-402652744,-2109924885,-387198705,1485962739,3336272,-392636626,-1377101353,1347948418,79227089,-402646016,-342812217,-1827678289,-11761114,-372184624,-654054094,-1959864061,879016727,844351979,411089892,173791022,-1023313728,233422898,255133978,624235829,2815029,0,-1473578496,34,-1375731712,1388578,0,-2078984704,-1876194773,-1557424597,-1356093141,-936659669,-366222293,808200747,1345076012,1692972,0,-1306928384,-905969640,1619992,-1105666560,-234881000,1623064,-1743190528,-1644167144,202633496,588517908,-1777060844,-483090892,1312090932,1578784282,1629120026,-1340897261,1762897939,-1038918125,1913897491,1477679123,2014533651,1528012307,-535602413,-970329047,-2127958999,1965687337,841609513,-133155568,1762922757,-2096202987,1862548227,1781023246,-133826520,-1238715643,-148189398,-718274036,1311408682,422576141,68623383,-1842704592,-1876241878,1060055081,-1122738130,-350984684,-233518060,1913941012,2064938260,-2028699372,2048166420,623543594,-1020475857,2100084780,-2029350646,-1358259446,-1190477046,-1526018806,-1743645430,892220458,940654624,1176520977,991964192,471279904,942569488,-684819680]},{"sector":6,"data":[-619259894,-401137898,672264209,1813478702,202843415,420942103,555157783,1125581079,1209094176,-99423727,872439570,974600727,-1422704589,-1526693632,-1005087488,-485350889,1762749457,722460170,-1692232402,807419938,-770034671,975354387,437856793,471471641,672801306,69271066,-1641962463,-1021203935,539959330,-133826513,1848402693,-584344532,-299084245,35256345,-1070948070,-299199198,-568273102,203483680,1360611883,1158859033,1663105057,-1692985831,170594858,1815285811,19602969,607315982,1311451947,1512133665,1914791969,706312473,270600745,1512118561,-988168661,-870730471,555927065,1092689698,1512864034,1713988137,1714118697,1747083563,2015523106,-217255902,203590156,-266739174,-400951783,-199623655,36903218,286918682,1981418266,-2111734751,606179361,1110649395,2116722217,1579904034,-2078201815,1412116770,-97816021,-97949134,1261115407,1142179092,387587362,958476570,-635821535,-1272889575,689581858,2132423706,-131299028,171756604,-465786307,-1975707076,1143370292,-499871718,1646683178,708056864,70516276,607390260,-802494412,237020953,34935829,2031417877,706784550,-1290148803,1746550304,-1189044704,-1541357792,573876788,304115261,-1341253362,-1238052812,-986396620,-2011116768,-702516186,1395973428,808745524,1010054708,1110731316,2048213786,-2146074336,773362200,-249528294,538253876,-46860523,-1944025548,1277219104,3987477,52844843,-1842970571,-1743140832]},{"sector":7,"data":[1795553312,103476774,638459691,1194672398,2014657589,-1776979435,305968188,-1606623171,-2093171140,-1339849949,-1440514781,-1390182365,-1641835997,-618415069,-264432086,842828860,-735868125,-398669764,-2076376516,-1824731076,-1372882668,-132164054,-133826555,-133826555,-1526355195,-1526356731,990198533,-2063235835,-2063233275,1461548037,471109651,-1073609458,-871661823,1915222567,1799057979,-2130220281,1192713479,570885639,1309615906,386337826,1864511751,1476884487,-1845132025,-1776069344,-1777878981,-2130214597,-2130214649,-1777893113,-1774479813,-1777893061,805646395,-132083195,-232522205,1678332707,1678334729,1678337033,1678337033,-1777769463,-2145323717,-1508851422,-1995397616,-318247658,840335879,1845985558,1058461219,201957667,571673619,1544641571,-316490223,-318247673,-838341369,-1072316395,-954875883,-552538091,1108401936,-1206780910,-603464697,-1207467769,-1526254585,-2130234361,-1777883897,-2130200517,-2130107897,-1776098297,-365193669,2014355472,-1774479847,-1774479813,-247753157,-250023656,-1776750312,-1774459333,1225228603,-1576566485,-1793018848,-1777364209,-2126801349,-2130214649,2014935047,-2129037287,-2130214649,-1777893113,-1774479813,-1774479813,1950062139,-1774488517,-432311237,-1776154614,-1777893061,-1774479813,-1778081733,-1777893061,-1774479813,2015987003,-754658519,-1775599100,-1777893061,-2126801349,-1774479865,-2126801349,1948982535,-2126790341,1093274631,-1775615702,-1774479813,-1774479813,-298084805,-1777933050]},{"sector":8,"data":[-1776718021,-1777893061,-1778070213,-1774479813,-1777893061,-1777893061,-1774479813,2015987003,-1777893079,-2127920581,-1777893113,1948926267,-2126801349,-2126801401,-683960825,-1777893078,-2130214597,-1908686585,-2130214597,-1908697593,-1776718021,-1774479813,-1777893061,-1777893061,-250023621,-250023656,2014900504,-1925474791,-1776706023,-1927748549,-1776753639,-1774479813,-1774479813,-465856965,-1776715752,-468130757,-468130792,-1776710376,2014935099,2014897177,-1776753639,-1774479813,-1774479813,-1776715717,-1308312517,-1774479868,-348416453,-1774479829,-1776710341,-1774479813,-1774479813,-1774479813,-1774479813,-1776715717,-1774479813,-1774479813,-1776750277,-465856965,-1774479848,-1775537093,-1774479813,2017171003,-1925474791,-1925474791,2017170969,-1992583655,-468087528,-1139219432,-1778077180,-1690593733,-1691633621,-250023637,-250023656,-250023656,1561807384,1561812247,1561812247,1561812247,1561812247,-249526761,-250023656,1561812248,-249989097,-250023656,-250039016,-1777893096,570911547,1916498439,1916498491,-683969989,-1322268369,-1624261841,-1425025233,419374424,-1809383600,-1425025258,777579473,901162762,-1809383600,-1995469546,1311533630,378315086,-16479962,-1961454554,1782481679,678756140,-1414715733,1156982419,544539901,243285897,1478497946,192200715,72846683,41286203,1347673995,378808063,-118798778,-1995005791,82805511,841150187,-156561268,269916166,-1346894220,431613952,38046502,10086487,1448657294,-947677353]},{"sector":9,"data":[-386518522,-1382873522,858181771,2133196357,-1386646017,632852911,1096054016,1950958452,-1968330944,87238356,1964773289,1166747215,-1024028414,-486050800,83460931,1347567223,-1834148269,249765654,1345084065,-1705881261,31670547,1528807435,544561753,-503003261,-2133947712,-372212511,-1493964336,1593838264,1948194398,422701059,378808063,1583339403,54712107,12433650,484974358,-336450791,116798183,-397388201,-396827175,1498996697,-167217358,494208198,103499848,1195054754,-1961724656,104533575,158674010,67663744,1334397257,130124816,1448543939,-1230254613,1149970175,-923644,648742635,132295,-1174402373,-2094633070,1962869372,1157572117,135260930,310050,-1418750278,38061862,-1389953025,-784217973,20900841,-1188945360,112918531,737458688,850931691,243278405,-166717797,-2144576762,-1202714508,2028470428,45701144,-770905344,-2145234126,-283731162,-1157627463,-155582456,503556907,-947186012,-1073019001,647171444,-201703543,-285402,-1961454554,-348157478,-516893711,1347988257,108314635,-402602312,-1202251729,642779136,-1995934465,639023654,-1207667457,109519531,844109460,-12981770,378799759,379469449,-479907174,-418321663,-1424978896,108330790,38046502,-2080449816,40876606,-1046470795,-1744362385,32860392,-344999418,-1942940144,-14243056,-1960442252,-1259863484,-972634114,1493172246,518242699,571479,-1962479741,644834846,126426371,1333805120,-320732673]},{"sector":10,"data":[535903,-1012733743,-1809383569,-1425025258,-947173818,382076551,1527183019,108363820,-402613320,654251907,265754260,1342199016,-476020838,-565057535,654289752,849811092,-1599397395,119893953,268560384,109559859,-1130162522,-1492587665,-400429774,1487601701,1963458621,781867017,-385752219,116850285,1971334235,-1598533623,388884480,-773265173,-1947997418,-485046770,-1948677367,260515535,1371796971,1507792360,6865537,620644234,382509575,105908107,-2132947736,117638783,-1959863669,-1524192505,33733208,62527861,1678129987,-15698644,1964413446,-1875474166,-1912158442,-486534634,-341498334,-1240475874,-687150303,-351685105,-1240475900,-1425952255,-2002014938,-1860776922,-2085901018,-13866434,642784372,9190829,548934005,-1389974737,1065980843,379195008,1323887392,1049188430,243865272,-928835914,-582227946,1946572602,179851272,376563712,139954776,106154634,-2132982040,-1993949214,-1547685067,-1040836940,-18136,103248903,117635560,179130459,-2147255836,-1387249462,-903967690,-1960897002,158613704,65065288,65065409,1468553456,1397903624,580538960,1107420064,-119010187,898049756,638980840,-1958070905,-928952118,-590092266,-521664936,898049756,-1024042489,-165645024,578095298,1965606646,178205,599262179,367126528,-1125639957,-388002852,-473231504,12498957,-421270549,-1994635383,-1528291761,244013276,1950357174,-1053079531,117379956,175445650,378549897,378406599]},{"sector":11,"data":[-830472155,1021532288,-270368365,380936675,-1264369600,-1024042986,-167349216,-1612179260,-2131480050,-197990428,38113062,16705617,1950401270,-1237417204,92013078,251652176,-991798952,641452939,512431802,74913438,1347640152,65437841,1946287744,767053834,244574255,-2092941224,1477182,-1024045963,-1958972352,-485050866,1955809590,-397241560,-397209923,1398276202,-397193136,1515716706,-503296280,1540066292,4581522,-388920485,-645201857,-1274115238,793360406,-166816792,108339394,-402651976,-25163945,1461613569,-1743336288,549647952,-1024060555,1007580480,1007320578,-402230523,887681621,-1809383673,1204233750,722939388,641876691,-1006741623,-1911086408,639010334,-1036314741,-746116492,-2114035829,772014051,40842,-2146442365,-628682757,1128466805,1108839206,67035776,994264026,-103779617,369385357,-1957444833,-152227128,1349877958,-2093643994,988284654,58493441,169666432,73174007,-2027544810,1960512309,1347508531,-1960423085,1088946781,1499173123,1963342929,-956938234,1377072388,744137106,1364414611,1091803730,190448099,-2147257152,1482232010,39684902,1948829430,281474565,11081333,-1452706688,343244544,-58752218,-166890240,1316324550,-402604616,652940260,1963247350,1355216627,-1024047499,-152472304,192161990,380896899,-1207515390,-402653162,1049167172,-1017637192,1929771395,21514443,-1206471674,-377278586,1090941956,2008606837,218097711,-1024007957,-391285488]},{"sector":12,"data":[1072422250,1963247350,117015459,57843319,1375733177,208070737,-1047831975,-151973656,-1200287546,99215441,786682259,544776075,219080851,1963277400,798341130,-388002989,-161805056,-1837881146,380896899,828880898,-2031377429,-2096072821,1200293574,1086780942,1207375732,1962935304,314086158,898049536,638793448,1184052615,1004047174,1949063710,1646148387,185365548,-2146141733,1603108839,-166270186,19661062,2092632693,-1928795281,99294815,-349442885,1277035268,-400585940,-611395113,-684749885,1156982287,58064127,-1960302918,644834846,1334516739,-622663676,1490752744,169927808,-1060273940,-11446440,-1961454554,638572335,-50379530,1555694453,1713277736,469968495,-402370677,249813684,-402340733,-393094431,654248771,1334515348,2146298628,691015984,1563444272,939524144,2133884721,2133884720,620757040,2631217,640683520,1513111856,889192496,1982889009,1932556592,570425392,-1892616911,-1036998864,3202352,3230720,-1540322304,-634339536,1224736816,683169841,304801792,1392551145,11096657,641561984,1090289539,642836598,1409173387,1374919174,1527185891,-713506805,-28866266,-1597210536,-95959258,1048586968,1946185667,-1844510972,-1069645802,74777455,378670847,-27817178,-1459295357,41254656,642992971,512630667,1602950790,-1960896770,-1867317,786682115,443457419,1979500022,1602956804,-1445754882,276119552,1713242960,833903,1491901160,2802305,1527562883]},{"sector":13,"data":[1946222373,63963918,786073552,-746125429,1510443302,-792503463,-199106015,253888033,-954066142,-350103263,253885729,-853402846,-249438431,203555617,-1004398558,-400435679,203553313,1780619298,-1623887819,1983227189,-1875542987,-281700811,-852245197,-718025421,-684466893,1566735,-402652488,99289567,182980567,112640,-16133400,-1424583642,1482311238,-796175781,1912994432,-2134887670,108136186,-402396344,-1834287068,2045328310,-1245148670,-1023286528,1602954835,1713243134,-129004689,1950351529,72321795,643023707,67002251,-1452317154,343179264,1950351529,71797519,1458096267,-1961200146,367724615,637421451,57999367,-1946663029,-297801528,1200292725,-675062792,173576463,1529968064,-1828733976,-1073063080,1342813672,-1845514264,65557080,-902079998,-779681166,-1959440968,169797855,-1422568264,378808063,1485901783,-1976636463,842380959,-1948678145,-788190000,140768,-1959864317,1398516487,374866,-1844905240,-1041744970,374785,-485953816,112648,-502733080,-1809383432,-1827678442,-930394024,1962999589,155641860,1961691712,-1593999355,100991861,65065216,1200303832,1048816638,1946162896,-397387756,512426008,-2010769714,-838402297,-804323562,-396666858,654310845,-826599788,-1009308118,134484994,265749251,1347962438,71052214,95421558,-1818754122,-1959861295,-1423349113,-397386920,1487666908,24249916,19851337,1380997976,-1394028149,1913011454,-902084351,1510523368]},{"sector":14,"data":[18278488,378808063,-2141515817,57804539,-2145244488,57869819,-1425496088,-1817465562,-401361317,-148504332,327236,1482162804,378808063,648744919,-930370643,-1465144026,1476555780,1221036888,1226231459,382733961,-201659951,-1979996890,-15294914,-686386138,1532537615,1006633401,1007842310,-402427131,-164493232,1459659752,-1809383599,12236822,1477383144,265810411,-1235527509,9103416,1947256566,178441,-399551560,28903588,-673912064,-1957123313,16721352,300418165,31997960,1179036671,96047451,-2147440384,11120756,1034646911,-1502314491,12761168,1477362664,265788651,1532511814,460588348,393479740,1954545833,-388986081,-1835926064,-1174395416,45626556,-1207702784,-1416495103,1381477265,378808063,-402642760,-336916837,1964230390,10938639,-1957615434,1929788616,-270106385,-151238424,880087238,-2147440239,11133812,1009480736,-1206816250,-790102006,849590272,-1207436312,1810576066,1967128745,1975519748,684127936,1589118581,127395889,104645465,507209075,158471864,1316160828,1965606646,1929723115,-45946767,829405264,-402650951,1918371700,1200170711,525820,637566696,-1191555191,1397764528,-2096567421,-2094660373,-143179713,38243110,1200170587,-956933890,1392997379,-2048335989,-956933369,-1197640664,786968935,-1198134521,112800334,119990272,213420658,3532800,-61896410,1345487800,116097875,-956910101,-1206225917,112800239,117630976,146329458,1173504]},{"sector":15,"data":[-61896410,-349039176,853719258,-351868696,-31178579,379979267,-149510493,1438880216,1465314443,383329929,-660422613,-2002565098,108953622,-1707117566,31693609,742997632,-16157696,-1708365258,31693613,744767107,-2144766721,2902334,922690165,-543526978,-1560157352,-1499851054,184673101,-1207077440,-380633081,113705092,-54166,-1949037848,862938646,654216182,-2116514899,772014051,36746,1971372534,266437398,1947203968,-336526588,-1951586590,-511688248,-1947014146,-792425730,-1729572632,-472790133,1956612910,108953629,1744776706,-1203603972,1048641535,1962945609,1868479251,744752697,-1162148236,1875157871,133063,378013241,1049304948,-1935599992,922725142,1048581770,1962945609,-1707959799,646513123,-346548519,105286171,742997632,-1576045312,116796416,1946233857,1697552901,-1070923293,382863047,1583349759,182877,852710120,378184676,744767107,-2146667265,57655358,781845877,-2097028251,914949358,-963963256,1476490567,383329931,383256074,640444067,378315693,-29047002,1187381256,65602054,1878959103,-56382170,1374657135,15204835,2028210899,-734100717,393543702,-2017446997,152491526,-1016072186,1878722294,1308783624,-158733490,24117254,-2135891339,-944706837,-303348154,244014196,719525588,-963951034,1347535147,-401864216,646566583,-1073015079,-847769996,1443163779,-2080374849,-1041561402,383006345,243344875,33583096,-2128206732,68944508,243996788]},{"sector":16,"data":[-511610888,243863664,645994198,-275812360,-369137944,-978256271,-1389977877,-1953250813,-374605241,-227213727,1878591222,1038185504,-596312064,-344981855,1960151,417902827,2088969728,91495426,216577259,19845120,-133267088,-352059281,-1827244849,-469062362,-1070464391,-1821376094,243353415,134246392,1179015363,-1561592181,1957504659,-29457639,443942511,1134187344,-402529472,-1072967173,-374665608,-628359695,126605315,2108749035,1962840553,-133267140,639631471,368673709,1464864885,-482415974,-775034879,444195850,-108798229,-1844218858,-167072474,243271801,-2147323904,44269542,-22834576,-347715985,80118564,24967553,1178999669,410261483,-1390000570,1353524882,132284498,587831890,-2065169949,-41948719,1878527619,47704352,1878527619,-2080969968,1081079822,243396587,268464120,-1960384533,-461372348,973189891,-8948509,-1473488330,-1342016128,8332544,644873891,-486384501,-769750725,1011962646,1392932096,-481139046,-768389119,1665702482,619184611,1975520209,-1039237045,-963960721,-1560280019,1654747082,1875419948,744758923,39618854,781865811,-1711152283,31680413,1383070883,1963129472,-133266683,-275117969,1526850385,2028210777,-154969598,1081080582,1178993269,-1705881510,31680568,-42669736,-2092546404,-13867970,61932917,-1207374947,-370474852,1946157241,-11868111,848974163,1526850405,651207400,621036683,378273664,-1039437826,71600422,1874929280,-1055520520]},{"sector":17,"data":[-1284707473,-384470015,283312279,38046502,-1650831278,637657959,1510098057,-964437197,-1951586810,812925128,-24432925,378025529,-1390007180,158718731,-1953250813,866908743,642139867,409005,1347619958,-482252134,-1993975039,-756875708,41212683,652866443,1309126908,-972690610,18274310,-2130917911,276104187,1302764115,-396688925,-1072967669,-395049040,1878525639,-1705836032,31674863,-805967781,158983178,1946418048,-347715889,113673163,-930370266,1950397667,-133267023,-973045649,7340294,-1389953397,644873379,634424237,101262336,12087288,583464448,-1960437644,408836,1347489910,1055562326,173605347,-385648156,-22806659,-275099281,1493295953,181375720,-1410565916,644873889,1178993801,646034146,-8425480,-1661241111,-972837594,-2096663139,-376240954,1313931011,-389467314,1625882112,50036943,-1960436619,-2145057724,-32076801,650251119,-1861991287,-2083572504,150472551,-964491433,-1951586810,1014251720,-1390003485,1370302098,1948385449,76228126,1979713085,-1705619422,31669994,181343976,-971933212,18274310,1392227817,-481139046,-821958655,1493469478,-958249402,-8853154,113725812,-59694,1697552977,-346488349,1447064642,-476538214,-655861503,1958742990,-2025766436,-4238898,1958603775,-1337571802,-1984566362,-350825418,80160452,334233599,1075227297,-1474909533,722629695,1878565824,-1961438045,-1886769447,-1461125120,108953850,1374188546,-1706012154,200553115]}],[{"sector":1,"data":[-346486950,-433922342,-98374110,136511778,371396387,606280995,-1893520605,-485050874,71125032,-402296320,-1070399336,-2142086592,-956940042,-972720960,1480454,1947780854,8316931,-503314712,-1238958108,-326413034,1381061456,1023827595,1989214212,71731987,1954545833,167818766,-1241352768,-123017176,-402372981,1499070472,-1034069925,20774916,-2092403392,91489273,1963260291,651397950,-1895932021,-1978235362,521600863,16573313,-1959859247,-1959585657,1200170714,-2128165890,828898943,-343735435,-388920566,-902040093,-1202714508,-521666547,180574214,-2082507584,-294189319,-1847211032,1004914664,63861953,-773729855,-1816067103,-1959861295,-1824763761,-1047807005,-1177820343,1048772610,1962940042,1364414520,133687378,1482381658,243278706,1443894938,-117180533,-829730473,-372126933,-48298431,-1979931149,-654092025,1583292182,129519811,108128256,-1950090920,-1206477282,-1185867998,-1310195708,74603007,-28341978,50463171,33750788,67044356,-16514300,67372036,-1,33621503,50267139,-16514046,67306499,67372287,-252,33554431,-16645630,33686018,33686271,33750786,-65022,-1,67306499,67372287,67370756,83821571,-16514044,-1,50528767,50593539,67044099,-16579837,50529027,-1,16908287,17105153,-16645630,67305985,2100585477,-1355508172,1681180724,1681180724,-432740812,-516628172,1681155124,-516625612,-204]},{"sector":2,"data":[16777471,50332160,83887104,301998336,352334080,1426067712,1358959360,570446336,285348101,285545733,1362309905,16777553,16777472,33554944,50332160,67109632,83887360,83887360,301991168,285217024,1426067712,1358959872,285225216,285299969,-251,66047,84279295,327938,-8322816,11678733,28311573,17105666,84083970,50462981,83952900,83952129,16843525,-1308616187,-1342174464,-1342174977,0,409856,786610,318771376,4881,318767104,335549203,302514176,201372160,1552384,270532608,1052672,0,68157440,262144,269488144,269488128,270532608,303104000,1114130,285212689,4375,571998208,336461824,353703187,101058054,1252115,0,320012288,234881024,3598,538378240,437589793,18022658,1507328,1513236,320274451,25,1769472,318773019,7187,1,488047105,656679711,253231104,1638436,1578780,320012307,25,22,419495959,503322368,1507328,65536,251730944,2497555,1507366,33882882,12807,16778539,858928437,168113204,33882408,121241601,84476171,993536812,2819904,1026962944,2697472,826359080,808332081,673974576,69877288,788741416,1060700214,839658793,671099648,665613,773,13622,33883392,1090848002,1650549345,1684234849,16908293,140599557,66306,957612034]},{"sector":3,"data":[134263297,1048621056,1962945609,-365000440,738239019,1849592259,1460060972,379854473,-74774754,855639737,1605104576,1659486983,-326413055,1443687555,-368145577,1228832811,41156652,-372127437,-372119087,868882920,379757504,857119395,-385971210,129500276,-1916046848,-1310133154,-233403393,-2145941205,2902334,243482229,-1157551118,116813756,1971334235,1780908046,1622933103,-1777940625,-2013266065,512446471,1950559338,1745783575,40953900,744099387,-1950872971,1082598912,378315775,113688627,-1962862954,-1960029666,1343110088,-1995541716,1200164423,314802960,-351092349,-1473869332,-1070378986,-1558796637,-1734142326,-2002565098,744923926,-1558782813,-1667033454,-1203861226,-1811495146,641217302,67052973,-1976641397,134217863,-1474914298,-787581664,-2020921629,-796190098,1957166894,-1811495139,-348641002,82335978,-1473869054,-402608106,1048641232,1962945609,116807723,1965037211,1527182878,1622900780,-1157401489,121335740,-289729933,1637503744,184673116,-1710918464,31677465,743579275,990791563,1981054470,343843593,-1559214197,-1969154948,1958742806,1228832782,125108268,953391696,1599612575,1575324510,-2012821557,1442840342,-326898549,106386958,868793832,-683218689,-1543503944,1586310130,-27334414,-1592358237,1212689386,872302217,-1979806730,-954817994,-921267194,-602502343,-1375287530,-401155050,1014286446,915101526,1049325496,243990766,1790651496,18671660,1963001846,16967683]},{"sector":4,"data":[192214539,125302587,-1962779507,1005185844,1946217534,39685454,-1962652277,-705954179,-947165461,745186112,-947147797,1721976904,-603535572,-335544554,-1374778468,1794736406,-2116062164,1947655417,9222369,380372726,-1274907647,-388003068,-645137721,-63545,1610576617,922702430,-2036716454,-1961596308,1743280858,1527182848,209027116,-395349829,-1732575144,8448111,379721219,-4586637,-1407809025,-1405732074,647918358,-1898411091,-1961458146,521600583,-410986357,786682115,494182283,-26738898,1239941552,-946804483,645927284,-2080494486,1477182,429524340,117564252,-443851169,126602077,1211397184,-2044817837,920161046,379723267,-1960867034,521600607,10455598,266568448,1531495171,238749931,192228442,-801437813,-1986919050,-1021923810,2043218694,630297366,904429567,-2147480121,50757504,1200292725,127111436,1958742979,-1975614612,1702166550,-1459610951,729089024,-1459610183,594878464,-1459571271,460656640,-1459570759,326451200,-1459569479,192219136,-1207762775,477364275,1509994937,1380995931,-1975614575,628424726,-1995011421,-1994990562,-1021933506,378158723,-1559071488,-963963254,379717163,1721976904,-2009167572,-1957313770,-11053332,-16716234,-349443530,1566465900,1426064578,1465314443,379193031,922681600,1049297134,-1957221398,1317734006,-1048358652,-358985450,184673168,-399805248,-1990605178,1461105206,1460979587,-201659951,-1191467738,-1985282040,1579936318,-1338078881]},{"sector":5,"data":[-1576614122,-385870826,1515846864,-343930952,96937489,-1969158664,1975520022,-1598907899,1139278307,-1691975482,110099990,110046186,-1073020690,-1034068385,784924676,265763698,-1414715733,-787618927,-2020987157,-392677962,-69011494,378808063,-1179971710,-404029434,-320335913,-606803765,1960512402,633572110,-1209532401,-754667017,183662059,1460040914,-1809383598,-1640068842,-671683818,-1389974769,1946331307,178449,1954596086,45631745,-142022656,28899554,-142546944,378808063,-880078889,1347640152,1971323049,2668549,104597483,-1162344843,-22419456,-338064494,-1070399343,-2080448128,192037113,-963965717,339593003,-1187876096,347734080,1372596992,-1705945518,31690824,1522888168,1975520089,1959410450,-2132180724,2110405376,-339047454,29620702,51814926,12843249,325451776,326439797,327483393,328925184,70555,331289517,0,330104833,5055,65536,65537,65537,1,628302851,647833245,639509597,653731575,612444120,656090610,665528091,635839599,657270573,608905158,652551693,667887333,637412499,654911241,614803380,658449882,666707775,630400199,629482685,631317713,627516596,624764155,648881837,633283815,632235227,9804,642524748,623846372,641476156,621552588,640427564,601368398,640951580,642000436,641990656,603137604,604906537,607593499,648357198,619914917,646915315,620111503,647374070,205072022]},{"sector":6,"data":[206244930,206834736,-1390000570,169429992,-402098734,984619388,-384273944,-1390012044,414378064,426436953,376716928,1310684416,339118414,-1705638381,31684443,-622225913,809402374,108331027,320538311,1313800191,-2147040791,1257534,-1410796427,430893311,1048598763,1962939184,-6493979,-335564824,809402441,-1334509549,547532070,-2143884525,1257534,-1389976971,-2146230110,1257534,-1981236107,-2144998401,1257534,933343349,-789786605,-2045872916,-9115424,1048579819,1962939184,-390059367,-5170858,321916552,320931526,570869504,-385875949,985138696,423553056,984674283,639186408,402319533,-350703640,416016608,-401000984,803740187,415229977,-384250648,-1226308132,421586968,-350650648,420538604,-401037080,-1746331378,396355584,-401039383,-1930946088,412542999,322444938,-338629680,-13478284,898075182,418310148,-1340542231,417785902,639167208,4096173,141754924,1788497926,117564225,-335560984,408676555,350805483,-1389998079,1343437218,1493151976,209240075,-401036824,384309431,413460505,1958742872,406251523,587658947,259293203,320997110,-402426864,243276116,-1022356702,-385882392,-790036615,1958742784,403630083,-384289560,116786472,1948259107,587658767,57950227,-2145835032,1074995982,-385920792,1035475030,408217632,-350756632,518355,48811755,652798720,322544301,-385920792,1021843502,412870680,-401069592,-397404247,-396879899,-1293412424]},{"sector":7,"data":[1441317655,-392041473,1307115383,399501567,321062646,-402033536,384309125,393406465,-402344983,-1611923660,-369153304,619249530,445967359,1914717184,1749575468,-1119306484,-1072999608,-1847064460,392882198,-806878229,2471959,1477980136,1979713085,374597637,-778892309,-2020921629,1642594871,390522902,-155178045,68362502,645924980,-386198751,650319645,-1389980755,-1662791344,-1389958191,-1325420824,394979360,-400545096,1486690182,-1772745870,-385940808,-346155422,369354755,-350813208,-1817369080,-2065126106,554598655,-471268333,-391305474,166270826,642139652,366995629,-1206460440,1206397224,-20387561,1175940328,-391305658,-370600118,-398479357,-504817890,554598403,-639041005,445299459,1488651243,554104346,175374867,320939648,1212266749,-1195121665,233325596,-2234344,-166298392,68368390,115868533,377939968,1358853609,374597718,-402438261,2139100749,57939458,-401194264,1021843007,-940340458,1330905924,-2146028824,1964376703,58687502,721974591,54823360,-402438263,2139100699,-747361277,-389851042,-1390012665,-401393246,602478345,382200062,1191147496,1034757702,276103167,-399527856,-396880266,800593558,376367136,320999040,53143816,-1628944826,571375638,501811219,-2142878205,-2146229490,-401175320,233439036,642139651,-1389981011,634948242,1347878848,1071874898,-1959861295,-402653049,1086199406,1523133184,181963608,1960446937,-523155911,1381028561,169243473]},{"sector":8,"data":[168588745,-402426643,-963963166,1494614504,-352209599,1959332566,1959394832,-399658996,-963963410,-404174594,-919971563,-379666965,639959716,1428431649,-326898549,1355154184,1342614822,1183427878,65306872,-1829017976,-2142712392,410255870,-2146156872,276038398,-2146689352,36438078,-404224398,149641237,-1709841944,31680413,364439559,184043146,604862912,70630271,-2081892562,362407957,-166364184,1954609478,136820742,638957032,322544301,-2080813430,-372212511,635693520,966807894,1958805011,717815298,-774861852,-775814176,-1192229920,-2014838769,-1998039019,356182037,960397406,360644627,116789372,1946293027,690534409,-401266712,-1125575392,353560576,320419387,1049168498,113709851,-60647,321062646,638022658,329509037,-1796733973,642798355,-28931667,-1207435095,158681125,285165302,699926132,354740228,341764184,-139647397,536936006,-146270347,33619526,1055588981,772028091,348186839,-350955800,-28903631,192152576,690534480,-401297432,1029182659,259391494,738213504,101217026,1097505360,-1828257309,-1058488277,341567740,1190596843,1946419454,690534409,-401309720,251532435,192156473,-401256984,594805341,-385921559,1642599520,587658772,326435347,66813568,116788596,1954574274,1217443846,1578402536,-1017256565,1179036966,267077704,321064576,-1207899390,1944587280,-391305708,-303432111,571375616,65749011,638881512,322544301,1342614822,-479748710]},{"sector":9,"data":[216532737,960397563,460587027,116793520,1967133474,-399986686,1860703240,570881556,58015763,-401345048,-1444342859,80118528,-400540232,2062029806,-76748525,250103366,203339796,744767107,-1207077633,1048594637,1946251200,339654659,-384569624,243269752,-383773917,-1957360419,250381292,113727318,4898,-1946786167,-13957002,-1564464313,547492656,322020115,1209217955,-1559028829,378213149,378082071,-700771559,430113651,742294291,359989267,1343433400,1342279864,1342210232,1778450586,1958742804,-335114741,-401347797,427098425,1049183467,113709851,-60647,-927460885,734462720,1930635782,422984674,652440339,4096173,192217132,566737043,1200347278,-1558243586,-461368521,-774337789,891193827,-1476448749,-4715920,9890303,-1996429080,-1995238346,-1961684426,1125325598,503516276,414192428,-1576974458,2123043615,-1962571002,1049166461,1049170724,-956099802,1912613421,-196703881,321992331,829748747,726712363,741737417,-485718253,-338786556,-193053708,1552569971,-54782,-1961674073,1077837876,1735720982,-445254133,1979059038,-1964168466,-32296946,-33393471,-1949856823,1194002014,-2146667518,1965096829,1958820614,-968339710,1347485701,-402235765,1498939998,320212616,-443851169,313949,-1946786165,126551646,1912623165,8389908,-644198317,184673149,-385649216,-1813381328,195226622,-2147060490,1913258620,608078084,-1953895661,1925252039,-196723769,-1195130253]},{"sector":10,"data":[-956104504,321521195,-1202645646,-1202711766,-1706032752,342491681,736888462,-1010824359,57969494,1476341993,-1711049473,31676110,1055520771,-1949856769,1194002014,320709378,320806538,-1946212631,1413284676,168850511,-2012646208,-997570811,-202644438,-939584279,1196695557,542095431,2129324523,1442964228,-1962718069,2062026100,-333541633,-217639381,1579091620,1459547369,-486323061,91523862,-1895866136,371977246,222080007,-492172940,1579091704,-1375810327,-1957607095,-1965489185,-1964168504,1926824900,1580934667,-217746444,-605333078,-135717114,1955288830,235347459,-1852265441,520529139,-23598754,-402436981,119471889,-1426906960,-1946253079,1334511198,54823682,-461320053,734528383,-1176471601,-771031039,-521414280,1334050818,638863504,1221611460,587735300,-335114666,-1962986965,1955267676,-294907,-620084876,-472827276,210209582,2025851401,520494675,-2084009209,-1923674143,-1527515010,-1927346593,-58656674,1342993702,731449227,1951924823,-1696323070,712116696,-32773794,506759974,-919366137,1090521787,124961595,-201862605,83159890,-497505744,96900858,-35133184,-1389980848,-155178094,41173187,649309478,1195842953,-1147514222,1512731145,1976699736,1950394551,637912755,1454238535,-2146499399,57952511,-1928920135,1961364573,-1949594880,-962268174,-883032059,1342643798,1780423834,1065376276,1124234528,-208957112,1161603756,1144787572,775687796,-25162635,-2146995165,41173246]},{"sector":11,"data":[-454887894,57996810,-961886582,-883032059,-18090,320673419,125161787,320540217,999430516,-1961593647,-234683785,1948269740,1946172667,-695513594,1577211691,-74754109,119471507,-1014307790,-1878735582,658510887,1371864746,-355341006,-85795887,-636791975,-52202149,-1965585593,12804060,9371803,8585333,6684759,14287058,11665477,27201894,27001266,36110854,36438539,298451506,45683146,298451641,46727921,63767289,295043867,61866928,282657508,107090153,324538826,327091761,327094779,301273589,323031541,327095105,327095167,327095105,7143518,99881816,99878381,313463459,314053260,314053304,314053304,324539064,97519064,315429697,292426445,299110868,298586480,294916929,104993176,295768472,104862113,317264629,286787045,529074,-787362640,-653143791,873581585,-518856429,722672658,1276260115,1091718162,1091704595,940710931,303251731,387143698,1964196114,-451722990,1980983301,756233235,-1308577261,-183032576,-686300137,1595370007,1343703063,806758167,-904452842,1628753169,-938358253,-1005468143,-837366255,-451482346,-48838378,-1072235242,-904843498,1091629841,1746098195,1477670419,270010131,1041510424,806574100,1375963412,-132897775,1477699859,2064865299,1091786755,1477662739,1058236435,-938064874,68662807,-804034539,1477666835,-1843951597,-1541957353,-1424799977,806629396,1175919893,1645501204,-1827448812,-719984876]},{"sector":12,"data":[1846897173,-32244203,773023763,1092102936,403925011,1477666836,-837588973,-837302249,1477953559,1058236435,1091978262,789796883,1091610899,1175672851,1746153492,1477656851,1746092307,1091790355,1091838995,806568211,1092110869,1930986771,1477991192,1477709846,1092112406,488136979,-384365545,-385810944,-33494784,2131984128,-1458340077,1091796755,1091796755,2131984147,2131984147,2131984147,2131968275,1091796755,1091780883,2131968275,2131989267,1091796755,1091796755,2131984147,-1827433709,2131991059,2131984147,2131989267,-1827438829,2131983635,2131984147,-1827438829,2131991059,2131984147,2131984147,2131984147,2131984147,-1827438829,-1827438829,-1827438829,2131968275,2131984147,-1709993197,2131984147,2131984147,2131984147,2131984147,2131984147,2131989267,1091780883,-1827438829,2131984147,2098429715,-384598253,-385816320,-385810944,2080434432,-1861185264,-1861185264,-1861185264,-1861185264,152084752,-385810943,-973018880,1477689875,-385810925,1627449600,1090584083,-2028775405,-905724670,-904803823,-904803823,-1308472303,-1342166528,2424869,0,1212219392,1142685696,1212238902,1278625936,0,2209,1065,403966088,940058626,1218852876,1009466403,1213742123,1276790963,19482,1210384384,2050,135858189,1277429785,3932221,1027342398,1044135230,202377261,207817758,1477726253,268570626,268570626,269619209,537005086,1210650642,338103395,338104431,339612711]},{"sector":13,"data":[403970068,404494364,537010178,537010178,746004482,1477726253,873018377,403968103,1144002588,1144931376,1144931390,1145783371,1149584517,1210664069,1221413030,1476548610,1477728269,11665612,1253048330,-1308622328,-1342175232,2429954,538574848,186851354,151040512,1216786432,2903042,59,221970476,151040512,67612672,68486165,137692193,139069514,141166679,142346358,201459864,203295751,208604190,272568352,336924775,402789397,402790402,402790402,538590338,671227980,671623170,740961322,740961322,538586148,744172622,747515013,805449730,872558616,940914709,940914709,3211312,1006778413,1007303682,1007303690,1009466388,1013070933,1014447202,1015168119,1015168130,1141456002,1142244361,1143489572,1148339296,1209813001,1212827722,1215711342,1222527191,1277643793,1344293935,1411601443,1411601443,1478251555,1478252572,1478776868,1479366692,2838579,3080213,272236605,2621442,46,143525949,146147497,147130559,148113614,148900058,271191047,273354804,274403411,276172897,337712138,338891821,537664514,539369492,540155942,540942386,738336852,739191810,739716249,742534174,745286758,805448830,806498306,808005664,808792111,939667515,1008942108,1010973739,1011432521,1146633308,1147683944,1208108157,1208567817,1211254812,1212827707,1216235617,1218332810,1219709101,1275480260,1276791825,1342328834,1409437711,1410421768]},{"sector":14,"data":[1027494938,6029374,1027350535,60,67305984,67437058,67371521,134677510,0,2764868,15932,873463808,6174761,2949165,1343708162,2443374,29887581,655538,322412976,-388971382,1452861648,-16598890,1577616104,-1959916821,-2045938041,141945056,-385287960,-1389955527,-385239064,-1729563087,195896841,-402295616,-454358992,-351708952,1227099106,1431061326,540689732,1394870055,1230258516,1143212099,1296125529,113656649,-1207954648,-219672376,145745927,113689579,-1207889112,-286584624,-401556296,-1696069667,-2085804536,1266750,1465263476,-1174500528,665911295,-772296974,1049319497,227087188,100826507,-216070370,119408292,-396468449,1022033951,1212722470,-391305648,1525155752,-400052216,-396883757,1407780768,1179142399,127526982,-402111255,-1390016273,-320321456,19224831,65065216,637922288,-2234195,1190489321,570869574,-167772141,18030854,-941030539,64981761,-2146227170,1947532671,142862339,-351747608,1179010775,269662278,-385303832,1178993056,-401576008,-1779890001,554598401,-773324525,134277128,-1207407896,-890745844,136374280,1179010755,-347716026,-2234272,-655820821,141027583,243291115,-402582751,-739768156,138274823,-401072968,-202897262,136308743,451469291,21424392,-398979912,-1276639095,136177671,-402101016,48760790,-399709432,-1108670402,-351782424,1015227938,-386894337,1178994734,-387436368,-190060281,-398979912]},{"sector":15,"data":[468191267,404535304,638065384,1962884227,116189409,-351843096,940357856,-402114328,-857208990,137029639,-388911834,-1861011038,131590225,1509267944,-186514060,-385344024,233369399,135903240,-402125592,1178994486,-1192286487,-1561786343,-530424,1342640616,-402185752,-370669685,451434503,-284563193,-1207456280,-1578627070,-198448889,-385887000,-186054910,-3413778,-400532296,1239943113,123594760,-385421848,1673064159,128772108,-402174232,-605550676,-381270522,2008608459,127461420,-873927957,120973318,-397895240,-964491371,113043460,-1207490840,-2031596508,112257031,-1207493912,417873184,111470599,-402190616,-588708003,4096237,57999404,-2096726552,384500934,1179010630,-351800344,-347716057,119072777,-382465608,15269736,-208410361,-385414680,-1959857267,-401770873,-2098657599,120252659,-385459736,-1444352437,1190521607,956745286,367526419,119334919,-957466903,51591430,1179054315,322504390,116385793,-402222360,-1863842046,-300291834,322504390,-957682942,51591430,138666987,145688675,113641504,-1979641031,-2129446882,-788464413,-2020921621,-1075309665,-1194988794,725418240,143190976,1027083320,109111340,-523129562,-2020921709,-907471926,108062974,-381147720,-873986449,-923643,-400540232,-1259796959,-1709843,-1192043287,1424504864,67287046,-402239768,-890697972,108194034,-349403720,107669510,-397397064,938018409,106883327,-400540232,736691707,106096895]},{"sector":16,"data":[966962470,106227731,653094633,322544301,-385931287,1810368060,1025554437,-402270488,1609041359,-313399035,322504390,-972690687,34814214,-1861928472,1342518760,100919377,1476765416,-402308888,266864237,94234630,-1207591192,-1662508995,719869957,-317069051,-402316824,632817035,99346432,-402319896,-823655041,-330438395,1342502376,-399758664,-1390017067,568903818,570881536,57934099,1476796904,-385552152,-1389957921,654189632,-268235638,-385874968,1172892879,571375622,-1040809965,-1341819902,99084347,1946468854,79751183,-1040827472,-1342016511,97773612,570881731,494239763,1342477800,-167373848,18031110,645924980,-386002142,-396884538,-2065103723,572948716,-1427538157,-1465047311,-1859619838,1971373558,73721871,-402360088,616039647,87353420,-167488024,141902021,80603216,73394264,-402289432,-1058536362,84928516,-1326739735,-1341986045,322544132,-402321432,820577558,857742060,33562168,654577220,358100244,1531461956,16779308,136446497,539493412,302055472,318968066,537538560,1074466825,1364590596,-225720182,-1073042386,-1053157004,-193614802,-208942966,192203018,-372200146,-1159137677,1509026564,-538393762,540915715,-402371864,515376195,77850668,-402403864,632816695,77064192,-1970164442,-1141889851,-1531308664,-5576683,254068106,-1172993861,-1645734499,-1144943873,-1833298564,-7149547,-402417176,1390937091,-355342076,-402420248,-924253146,59042026]},{"sector":17,"data":[-402395416,-1410857908,-356914940,-352016920,77654022,-402428440,1743258781,67168259,-1595324858,649450,-402433560,-1796668430,54323434,-2147277336,1964376703,58687503,-167152384,269689606,149622132,-2147272472,269689614,-1023123224,116834347,1946227490,572948488,132709907,1874350083,77654076,1958742872,49014790,-167492888,68362758,645925492,-1325722846,69068859,49604803,-369113624,-1075254557,-400757761,1223164837,48293891,-402438424,243335086,-385608926,243329735,-385608926,-1679233043,69658879,-2147279640,-82632154,-1209471509,67823618,-402448664,-1595277438,58124522,-1342003736,62908475,-369135128,243329679,-385739998,243334178,-352251102,49408190,-402410008,-454491518,-399659006,116785897,1946227491,40953859,-1972029,-335549720,-2496500,-397895240,-588774618,-375789057,-1191195928,401098905,-402396413,243335103,-352251101,195897064,-32672576,1950527688,-398019582,-469040477,-1447741,1525170548,-398857469,829751263,1273507051,-2758653,-352106264,54585383,-335557912,356002073,2000445952,643564092,2027999661,-1959881972,-401101689,585630394,32303107,-402449176,2145911270,-383653630,-402530840,243270413,-352054493,588152846,-873986029,50063361,-385759768,-1075255037,49276929,321062646,-387091192,-387251483,321062646,-351308796,587658762,57934867,-402547224,-941096246,26535938,-402522392,-940899763,-385992984,820575795]}],[{"sector":1,"data":[25225470,-402527512,837485113,-1325471000,31451181,-385948951,350813719,-1251074,-402534680,367723037,-386005272,-605487613,29223167,-397932104,115868189,-393877246,-402570776,616038827,34334796,-402573848,1874330015,32827452,-352205336,-1947981088,742261727,378643,-968407296,-1991830011,726091525,-1961677762,-1389968445,2073710598,117564317,-544535886,321666563,1479,361252679,1191545159,742271815,-1295805677,-1293686002,-1293948154,-2133071088,347242700,78828779,-1962757571,742261727,734563091,1191545280,1192593479,1195838857,1195849097,-18775999,1043067139,-1014295764,64981955,-955044802,1191182341,302368327,1191545159,1194690887,742271815,65284627,-1010594832,738213504,-166365952,19661062,-1390014859,512630419,1200320380,267067140,1048620326,1962945536,651725574,1342457739,-140881914,117564244,1510962240,-259303864,-385940808,-1302397029,1381548801,1543453160,-75443669,-2131594704,-344573445,126610411,503568523,-1950149844,740164568,822511379,-1022916333,-1961676383,740164568,-1994945773,-955043562,-1023410169,-1946162712,740164568,856065811,-1022916333,322117259,-745816021,321658371,126422923,-1031076125,-286533237,322115209,1040441227,832639788,1191545107,201705031,322150727,1195836809,322111175,512294912,1043010353,-1329392852,-1341723864,-1341986007,-387700192,2062155385,-349654785,-349589498,706785282,-26744604,-544502293,321658371]},{"sector":2,"data":[16598982,-25368381,-385918743,1391066894,891194367,-2020921837,-2098721418,-12326402,-335548696,-857926,-1336887829,-3938270,-25040808,-1325444888,-4724702,-385893400,-1950089362,773010718,225871755,-369209112,-286720203,-392500225,-1779695630,243976491,1055068985,321986187,740164435,41910291,-2129890026,16778111,-27785867,-1961674482,-1981423073,1477652766,-16843544,1947416846,-314775535,518523252,-353871872,1491921918,-389813781,1223294797,-13244161,-1325453079,-12588756,-1191260696,954802220,539801855,-151052055,135471622,116789108,1947210530,-1841149,320999040,512475920,-1959914699,-384993657,512491279,-1959914699,-384993657,512491249,-1959914699,-166889849,538124806,243271797,-383773918,-1561788595,-18748929,320997110,-2146929406,34808334,-1006696728,11668183,1303379981,944588115,1728709943,774797158,1012352814,1795193600,1409326080,-1895469819,1896207365,33589765,518246657,-1908654919,-1744884007,-887160816,926437198,-972419779,1030,278144,-401968128,91431643,-100663624,5236931,-1207950360,-152562894,-1547685116,44236800,303104,2129183640,71204864,91488256,-957815845,1048625954,1946157060,-1578902782,279117838,985674496,1946158086,-488924413,-1560277853,-1547501560,378077184,-1178402814,884473867,2015029,-1992285747,38112285,-503003261,176536307,-1089845826,1048578600,1946157060,109165065,-1090100034,236848740,624211999]},{"sector":3,"data":[-855635783,-69058527,567137931,-841512128,-1178394847,884473867,2015013,-854211298,-2092949727,-186514233,-2133707837,1086,-326948748,-1680045298,-1690838730,909105462,-2096871541,146345668,-774337792,-2081893912,-75299869,1107391491,279048162,235285248,-166939904,-1010695181,1511040,71204866,57933824,-1023226752,1511040,1431356164,-1961038717,7789036,-69018725,1018699347,869830204,38177472,-940114126,-1475709695,-2147060735,-2065104433,1946331136,33483011,1963247606,1946462220,80707592,-352128536,147322585,145230453,-813693324,46852360,401034,-2134848640,-738788125,27837218,-1957683340,-461371322,33176839,207095157,-1961956480,941951046,16792835,872576344,-488924415,7264667,525833,-998024417,-5677796,1476556223,-1957474109,1200305884,1200174596,-2091361530,-655818044,1364416002,1586190162,38701828,-846539785,-801578624,-739651351,-1060636981,1451971188,-520978168,-1060964863,-1023991691,1081409824,1964032758,146994696,887821941,318406800,-92270988,-351701996,-1023963097,544538896,-1958746240,989859894,1962938934,-19077117,-1995651453,-1694494666,-610535719,17164604,1946403830,-1874138365,-2130159989,-167649038,158646466,17875703,904594293,1960512400,12642310,-1953485845,989859894,1962937910,12511491,-1694250112,-610535463,272010028,238435072,-402426624,-293339502,272009484,214169088,-208973707,200337027,-1692764938,4865755]},{"sector":4,"data":[-338564143,-1694467608,4861659,-472783919,-352072832,272010029,238435072,-2145160192,-644150069,-136733705,-1691559013,915142361,909836304,57999374,-2080490008,914951406,1451950096,-520978168,-1060964863,-1023997067,427098400,1964032758,-1874400509,-511653238,1355069967,-243670317,1963770870,132285420,-896802096,-892087413,1963180790,-1878004956,-875443247,-134751845,1946158019,-863976461,38192644,1725537024,1499094784,1743347291,-385997570,1516175626,-379692199,243334636,1359085576,-2130162037,-2096940831,225708281,1947269507,820084744,1966143875,-1060637100,-411034252,272010047,305543936,-402426624,-964428410,272009484,-153511168,-1958945893,-2125395890,-2130444063,-1996421951,-1209530290,5564416,954303321,1946745216,284786696,-243260300,-1043758840,139364614,-352284184,139365169,20504961,16841089,2145911668,2418688,-864019221,-488924352,-1681270373,-644099624,-656565303,373218715,101358336,609812502,-45946371,310303643,441355163,2147467767,1190535540,376799257,309256091,310303643,444498843,-2129890304,20987625,-610592178,868422254,307136969,-1995157879,1317606990,441354520,-1957631765,-1071314874,32800769,1476444221,65536883,-51713792,1967178998,1087144015,1364612894,-488924333,-1962389877,132481241,-2133275264,-209665821,-2146863936,-914343711,175555844,1452075398,377392404,-971866487,-1986324922,1187387214,1593821977,1582914322,-577036449,-1694493122]},{"sector":5,"data":[1443338,-1286398269,80017035,-1967966091,1963115766,-1467436239,-1288997504,29685385,-2118966155,510984616,78152627,-2068637579,309659816,279479731,-2035086219,108339368,1084786611,1018691701,-1579643332,101384192,91553794,-850611053,-2141482207,1086,1048580724,1962934292,1352207,1711719982,82546694,7935,-1546692577,1009057798,71205119,141819904,-1694491997,1715929,-1023407453,-1023408479,104513587,192151556,373218715,379624192,188687360,620759046,144908287,2474752,71204876,544473088,171891099,244030208,-444596214,-1547629581,-644153318,-1694492114,-644088615,-1023407570,659083,-203063215,646505738,-397082613,-1889725390,-402650618,633536615,1048579072,1946157060,1054448425,-1952776182,-2147481074,-1056181275,-1694491997,1715929,438229915,786012928,446758922,471239424,244040448,-2142175222,-452267035,730760,313321557,-1950184611,1698003,1062539,931387,602407797,216957947,1062537,657039,370052035,135137536,202246144,-1965951488,-2147482066,-444546355,-154334657,388926161,-4065536,-1848019745,-67208471,508612507,-1908654920,113651416,869205606,335972032,2031360,-816308480,-1202676741,-7316430,-519387382,-49593590,-485832438,-183811318,-653607158,-150256886,-687162102,-1190444278,-385167606,-1223998710,-418722550,-284474614,-720717046,-1257553142,-452277494,202064650,-1592986355,-266560484,-66262260,185402636]},{"sector":6,"data":[353166604,-452190452,-452184308,1259094284,-619920628,1460456460,-1425236212,1510782732,974676755,353873429,1847114004,1041765910,-451217380,1192827660,1310455836,-1608944356,-1944221923,-1860337123,-1692559843,-250813155,924981537,-450796767,-452139764,1712121100,2082651934,-49486561,-451128039,-972233460,35459100,488445469,35450141,35460637,35455517,152896029,35457309,270345245,35450141,-1138947811,1124937485,856503053,1124937485,1091384077,-1458749171,789397773,1124937485,-334652403,1124944398,1242390029,1124944397,1091397645,-1458749171,1577926925,1124952077,1796038157,1124944400,1494048269,973955853,1091393805,-1458749171,1242382605,1124944397,67987469,21118982,-670628605,134263303,-1073631232,262400,590002,50348208,0,-1073741824,41959424,-5111793,1068498953,0,-32896,32639,0,-32784,-1,1802223,721074,432,0,32768,-1316356096,-1561004438,-95952,1402863616,-683490715,56755,740491264,-1849594981,-31222,1686372352,-214697506,3781892,721074,98480,-1036713984,-626908824,117007,-1963065344,2018233627,119962,-256114688,992566295,47274,-140967936,-1702560817,-91616,2041315328,402117071,-20110,196608,-665158700,-1888920514,8388613,752307511,-690695944,12,1712839891,-2101691410,8388626,1582862795,-184121717,20,-2031812605]},{"sector":7,"data":[84017440,629881,1717764224,-1301247793,1034553,-90832896,218023750,1303735,-1848967040,-2037686696,1373446,262144,-821535950,-1504664375,65533,-708128306,-789534645,2,-500463201,-1672850776,5,1431323237,-1863325233,6,615336848,-1539054106,5,-2096103421,1326077496,258146,-1259929600,1368419614,388688,607846400,-1876927635,437328,1267728384,-437902163,369731,131072,-200992616,-227277060,5,350334216,-325370540,14,-1012703313,-34547638,20,2003763202,277559419,711335,-396558336,-1316840581,1220611,-2088894464,-132847863,1488685,196608,-1030129916,-1687070750,65534,-164540516,-560898507,8388612,2062175114,-1294743059,8,487139529,-1966808017,8388618,1991966722,39534192,364204,-278921088,533768499,564228,-1147797504,-186618749,639071,508887168,-974353578,1313736310,-955877751,1589676292,1909415199,1980398602,-83197942,1461585488,1397838422,1426254979,-1946358645,-976778285,1195840638,-1946268277,-792473383,65242051,-13712431,-1911931481,183176774,-1014047860,-745798421,1183630222,-81728766,1461585488,1397838422,-326413034,-1064380276,-1949070340,343852487,-28472505,-801838720,-1966747451,535004125,-13704239,-1962506073,-336557118,-1950338232,7734256,-352172402,63343368,-1950184496,-1744467216,858581831,66096064,1183711350,-1962349822,-1949301818]},{"sector":8,"data":[-1947169854,-347650299,1194691346,-1961956537,5671878,-1962785138,63081456,343837168,-1908654920,369543128,-803209216,-789720851,-1964125971,249791453,1946272246,-1744884216,-1394014504,-588754176,-661890304,915128462,-24444912,-1995640957,-352283586,343836999,1019199539,-1897951684,1483719,-338633334,-338629680,-477893680,29488654,-13760652,-351868777,4778092,914963570,-1040842604,-1996196860,-167734210,57936067,-167578752,460587713,-929562834,272009990,238435072,-402426624,-293341771,272009484,775088896,113809407,-1561842709,370050037,569049344,1062539,-712311157,-1977818496,48681202,737555158,238959610,25163776,250135541,-998023935,1515805442,379674462,134613248,201721856,-1966017024,-2147482074,-461323572,-154924481,388401872,-536893184,41223967,-739651752,-2082894856,-13760797,-1962477401,115573721,11009838,-792569,1062539,931387,585630581,216957941,1062537,-2082894909,-13760797,-1962473305,115573721,279445294,113374983,-385649408,1944654268,113374993,-2128317432,-150862863,1963328449,83460369,-955812735,3078,1481949952,1802880059,-1996485471,-138210746,1947205825,12711692,-385649404,-1159130917,12711696,-385649404,-1914105959,-790787569,249791467,413663022,-790787577,249791467,682098478,-790787577,249791467,950533934,113374983,-384011008,-243265246,113374980,-1206881024,1558773761,113374737,-1070398092,-2096016663]},{"sector":9,"data":[1073747470,-2147435837,-2135286037,857336576,126925778,-768403989,-1329858681,856484615,129022930,-768408085,-1979223877,-523236539,1141563600,-523134965,1966266371,173289994,-1962390133,-13760444,-1963488473,5368022,-1022732920,1445507,-1962743036,370050039,1038811392,839375038,2145812722,134224872,-2084369803,67114510,-351804226,370050026,-255982592,370049799,1049297152,-1523711852,-1523669714,-1523669714,-276585170,216957708,-1807840317,1962359552,-1515870964,-2086296155,-293401361,116835084,1947205643,2027303621,-1954092095,-1176532026,-1477246972,-259324809,-208958485,-1054111765,-142145412,-939265402,-654845705,2113946429,-1957538513,29165685,2044080640,-1948387582,38636309,-1962648181,-318044547,1240007544,32146180,-2097096317,-545062693,59304192,844190293,-393503530,-1378841683,-1951545205,-164385320,-166990201,-24940428,186285070,-2096925459,-359988790,-880029301,-1070344053,1997598339,1918072037,117343017,177550204,-2147257152,-997588532,-1969888630,-1963881770,-1964274995,-1963423009,-2082196796,293013742,-439277452,-774778159,-791555119,-336366266,-137459943,1946173381,550339331,-607000367,-623780143,-186458671,-141832565,-973604725,57950207,-1660826237,52590680,38540052,319052819,275973756,-607002671,-623781423,57925073,1073859971,2112483467,454306563,1545273932,108796676,-164423053,-738732041,-755510793,334880247,332272598,-1946283042,44362224,-2141654901]},{"sector":10,"data":[-380600076,-1974140262,1391604478,1346420995,-617350622,-880022645,-1073019765,361434228,108319243,-393485577,-1957311861,1958742788,39160592,158650891,-939269385,-712779245,38046464,259309579,-771025525,-487126668,-636237821,1476449667,860930315,184847305,-1961855808,-771029931,-487126668,-367798269,-1962880637,-1073020348,1435177076,1959922434,65206025,-2081811496,1149960401,1958742788,185961231,-150375214,332923874,13730794,1354959704,76274483,175423499,50750967,-2083908632,1149960403,1958742786,72715024,158650891,-402398473,-746337773,71600896,276086795,184702347,-150375214,333972450,13861834,-1962523509,1959922453,65206025,-2083908632,-712310573,1073735041,1355090776,-1957499597,-1073020348,1710688884,331875078,13992922,184829067,-1961855808,-771029931,-487126668,-636237821,-1962879613,1435174468,1959922434,65206025,-2082860088,860946645,71601097,175423499,50750967,-2081811496,1149960401,72715014,158650891,-670833929,-779884013,105155328,50750967,1506874309,-1946514595,-1949594671,-1072998184,-847051916,1642683905,-1055131391,1381364274,-964470954,113738502,-50330439,1610393587,-393503650,-1379365971,-1951541109,-1953321520,9879543,-1515870811,1922957107,-773140213,-774123048,1172296153,440306005,4909056,436651863,-402653184,-396951488,-396951492,29163576,-773729920,-774843949,-1105038638,1413152918,990672134,125109316,1963088955,1930181378]},{"sector":11,"data":[197266188,180554689,-1947979068,1507298280,-379691173,915079484,-13434724,1651758651,74830347,1098379323,1397946103,-1947389033,9871861,74760203,-225712137,10002768,108314635,-268179465,-1700664813,1958742784,65533704,13796328,437685138,-752133376,459001371,-400859683,-1819176299,55513971,318805518,318806046,318806534,1929419798,726647789,453023246,453023774,50371078,318806030,318806558,-1776907326,-907283200,-16055120,-293396619,1959329296,-1946449140,-1949660199,-336776235,131645161,9715339,-907453096,13105147,-2095352321,-1969813266,-1966634272,-1965192453,-1966175511,-1969907726,853576404,-940075584,1718976512,-773467826,-774778414,-136850989,1954545863,190049263,181013461,199985869,-2092665655,536876558,460515536,259188944,-2147419775,661790071,1946273782,1477765922,1927598160,-804459750,1477735144,1927598160,-2146637054,-679280185,-1090227456,860258304,-1948939283,-371619126,195035307,1927860224,1944637533,-1005939294,-427113974,-2146966400,194377958,-2082442003,536876558,460515536,259188944,67173761,745676151,1946732278,1477765927,1927598160,-804459745,1478062824,1927598160,856812290,147226861,-585904877,74710291,1182793919,-768414413,-389003285,1098181899,1445507,1927860256,1927860251,16613647,1914533760,29554220,350955380,-456109992,216735602,426961104,-456109992,300614258,-1031541453,332206849,1945965533,-2147434748,9740614]},{"sector":12,"data":[-1995077225,1569260109,105220356,-461349544,174426240,1073806977,-25094019,142524417,-972524151,-1023407291,-402138946,1703475808,243516170,-1610088426,-389021685,-388962096,-389017998,-457301390,-96278521,-1022728824,175302864,1445507,-2134575584,-54597515,-97851385,-1022728824,1445507,-2134575584,-353643404,-125063898,-796218074,19185873,-997799728,1062539,1193531,-890764427,214336493,1062537,847301248,1962884342,1946172449,174360627,-1986494676,1955072068,122980363,855997577,71600320,-1996340087,1686684420,1073788938,-92273994,198997376,-2133297665,-739573298,-2146802552,209027322,141950731,-2134900296,-1075117618,1445507,-1736496126,-405714880,-771042608,-1410599047,1963114998,-1950338297,10021336,1963049462,89950994,-1979235190,-523171228,-657326156,-1979678231,-1494676892,9365760,-1962878743,272010238,172264192,168512650,-1967032887,1149962828,8404232,-2126651523,81624831,124029567,-523181946,-657333808,1410012299,852888066,89951222,1946375179,370049847,243933184,-372244469,-372184624,-372233102,-92196238,477265920,-1007286921,-1978305535,29590480,838860821,-1962313264,-2132618800,376766462,-1014256749,-372194389,-469043598,-252977800,-327621622,243521003,-1977090026,-805303538,-789982999,-803704087,774992617,134880907,176219264,144781052,-1014256888,-792269909,-167415063,-478838588,236882734,-2132508664,-1014307062,211889835,-1444173048]},{"sector":13,"data":[1954596086,-2082083894,805312014,-2113545993,1588735,-1953417347,39062292,-972373366,-1962650485,-1073084836,-897580172,-773074687,-2147257382,-169737782,1686824326,-2132508662,-74791030,-225780086,636080690,-1950338049,-11474472,915144331,909836304,57999378,-2081687320,914951366,-24707056,-393499354,-796152538,-930370266,-24662746,-439232373,-774778159,-439233583,-774778159,-439233583,-774778159,-880749615,123504768,-1996141431,1820918612,197987073,-2131457334,1955102950,-1997131254,2145681460,-388896559,-388896559,1946681149,15631,-13820556,138709251,-1022659448,-1237319496,-2131001342,-921964683,-830411915,-2132350207,192250107,125159691,-1228930632,-2083067135,33560078,-1962672339,39095084,-1962652533,1212155484,-757996079,-741223983,-210117877,1418275977,72124674,839277705,-156832778,158663361,-1414807501,434744235,29488641,1418411381,56396545,-1979366261,-372242612,-607004463,-372188463,-607004463,-372188463,-607004463,-1416439087,-1951677557,2089462722,-2132312054,176156856,-1413412121,-1979656215,-478148004,15591808,-385822743,-1611988726,915144331,1284112400,1976109579,172788465,-2130154357,2097414397,33391071,-1965261060,22317828,57982986,-167654784,1383335874,1445507,761888,-388962096,980609232,812837072,1946469110,197326393,1552626804,88378115,-2147005302,-1031569439,13861640,-2147483627,645464273,1166008704,67173761,1407917180,-697048624]},{"sector":14,"data":[-389019413,-506461070,1552665714,88378115,-2147005302,-372211743,-607004463,-372188463,-607004463,-372188463,-607004463,-1416439087,-1951677557,-980702270,-788267259,-773795360,182505952,172788417,176218496,-2084328479,243468015,-1977090026,-478148004,185502336,-789983232,1927925993,1927925780,135314973,-1523669714,-1389451986,-341056758,1927925969,1977289220,135839464,-620042517,-169091212,1445507,-3833552,-1948387581,79791053,-2146798454,1418363110,89950983,-1962709877,-355466940,-573449263,-152905519,-1413117013,-1951677557,-2031375422,-125063898,829751051,-578032333,263771019,272009984,305543936,-402426624,-964433547,272009484,-2000080384,-812971188,2038490496,-1998588158,1508444780,272009986,305543936,-402426624,-964433587,272009484,-1983892736,38045956,-1996209015,1153893956,-2000682744,28576356,-1022663544,272010070,189068800,-164072190,1963002692,139234094,2131753347,74222378,-1962509173,39619348,184691432,-1978108453,-469104028,-621345671,-1036843916,-1956705928,868461506,-2080904238,16782862,-343932742,-1951586579,-1951586584,1959070712,-1948568771,2078931,1062539,1193531,-1092091019,214336488,1062537,1284032818,-2133882101,209289445,-2080376957,-981205003,14123777,185232520,-385452801,954794388,872254463,1060333,1442940905,1593837800,-1951677813,-1950110781,-167768010,1963068228,189068865,-1959627519,-108853172,-1959559393,2089485420,-1961587962]},{"sector":15,"data":[2095579740,1978469121,174361121,209314826,-2080377981,-1031536654,13861633,108577587,-1949158461,-636763174,243529332,-1157562346,-768376832,-1951586621,-1951586608,-1951586600,-1951586584,197463032,1958874051,4175935,1062539,1193531,-18349195,214336487,1062537,1284032818,-2133882101,58294501,-2013228568,-16053652,-318042251,-74773643,-617354613,539873843,13560064,1459516137,-1761603864,-1951703150,-980702269,-1413313621,272010179,189068800,-162564862,1963002692,139234101,2134899075,74222401,-1962509173,39619348,-1979663640,-469104028,870843257,2026320640,238435099,-402426624,-293345395,272009484,-13384960,-578032333,-437529205,-83100405,41286155,243522539,-1090453482,-454328320,-705177609,-621292553,13861877,-2097097341,-1950154537,-1962930122,-108853172,-1960805057,2089485420,-1961587962,1357382236,197145344,197462983,1958874051,4175879,-1023404056,17319111,-1996191296,1149829700,105154820,17515718,-919344661,-741219631,-674114095,-186514830,-573448239,-623780911,1149878531,-1995142904,1820918364,108824836,-2084555837,-638107671,1952545865,1090093867,-108831875,185826864,1960119251,-1962865662,-1946209321,-2082501649,-271503127,-607003183,41147089,-220016432,-573444143,-623780911,-1072966448,243476084,-165674986,67111686,116795765,1963458571,583141937,1944899808,-2084556021,-669843006,-132913133,838971587,-1946209308,-1948283921,-154670121,134220550]},{"sector":16,"data":[1157032565,-646610934,1157030635,-596279286,-24391701,1062539,1193531,988283765,214336486,1062537,-1064501625,-1030825332,-1515857778,-1064524379,-1030825332,-1389963122,-2029457533,-2131457289,1955102950,2145681418,-12716494,1024423039,628359168,-1992294611,1955072068,12108555,-2130528704,-2147481988,1821109621,40635140,-478860277,-352203136,107776990,184839179,738919020,28837749,-352209216,370049994,-315412480,1820929161,74221826,-351900535,29882085,-1515905163,-4676187,-1410987393,1062539,931387,-1494744203,216957925,1062537,-1413467197,12102571,-4674688,-1410987393,1062539,931387,-2098723979,216957925,1062537,46659267,-1070353547,-1414812757,272010155,238435072,-402426624,-293345951,272009484,-24395008,1062539,84427915,1955217407,-2132377590,2089477642,1979648523,-1515870780,-293360731,238435080,-402426624,-293346003,272009484,915129088,1686110224,-1950122230,-2147479498,-1015018892,178498854,434944,434627,-1012138357,-1962931039,-1950110722,-1962930122,217023486,1166675889,705635336,105221064,1300949203,2043218442,64550658,242223172,2101346365,-1073660661,1149833086,158974728,-968884040,-352122044,-1073628943,17515718,29026539,855829248,369555410,1948254208,-1963489534,1703545412,-1965346038,-472904868,1560994768,786681867,122202111,1182326834,75087882,-544802937,990397579,444336197,79241087,113672960,-49887357]},{"sector":17,"data":[1929160691,-972130551,1073745158,113656043,-352255987,218547769,854261760,853702,-164893887,268438278,-2145062284,-437526408,722678,-2132446192,-646414108,116838635,1947205643,-2132790569,-1149992732,-770974485,915084404,909836304,57999374,-2082206488,914951406,-1950154736,-1342173130,238435137,-1961987072,-997848508,119849169,772264123,893655,272010179,172263936,-617381852,1552601995,786682123,124299263,-351767365,142654236,-1933895701,-1156388088,233506968,-351755077,136362760,750453739,272009992,305543936,-402426624,-964435055,272009484,-1946973440,771756094,782577317,782577317,-1012584795,1944971752,-639018492,-2080928787,909839558,142540816,-2081444120,-269808441,-1995640957,-1023406018,469811703,-661906572,-1142374258,1510241261,-1175606295,76218374,-1985274485,-498711012,-1545026571,1510241261,-1947364375,989859894,1962938934,-484710397,-1995651453,-1946152906,-2017423656,-279320329,-1061029949,-401574911,74706294,-312022694,-1030825332,200229608,-1961593664,989859894,1962937910,-487331837,-1995641213,-1023406026,272534357,-1807841024,-940756224,40966,-2080929024,1166740718,138685192,-1962893661,38636309,-1962648181,108856901,-351767157,1144754242,1998942726,73153298,192355954,1912753211,990148375,-401509868,1048772795,1946157214,8906779,351000693,10370691,-401771520,-1595408245,7596032,15451253,-1962380149,-1969812867,-980725536,201123203]}]],[[{"sector":1,"data":[-1979670482,-2147480282,27851748,-461372043,-2147226627,44565196,-318043787,-461364876,-2147226689,78135500,-318043787,-461365132,-2147226626,646447564,-315424755,-1594727959,44564493,-461372043,-2147226689,228606156,1967171584,-18579451,-863970069,-153621759,209027268,10370691,-402295808,-269811709,-773664317,-774647343,-1643184176,1927663872,113754881,65696,454306755,1545273932,105126660,915129157,753401872,-590298368,-791666573,195039858,1964025856,-167122149,-361430332,275963088,-255918453,-305207289,243398539,8454166,172264387,1963163817,1254053598,172345088,1149960192,1552631816,72125190,-1476242293,1074230273,-640554031,-120464687,-2096609911,57868027,1379527673,-139430472,1473822179,57928195,-1946157123,-138398765,-773323787,-1949070371,-101320767,-573446125,-1047800949,-259262985,-1946814632,-2084008995,-569179711,-640558127,-1996071543,1170670669,-956301310,-1962934267,1049190391,-1041760108,4898540,-1258520,-141883315,-2000726077,782577152,782577317,782577317,8961701,-314916001,-913549589,1284233614,-2132705270,173378342,981525120,105215441,-922069162,102631545,-142145761,-444544377,31883265,678819130,-898110198,-2130162549,641728449,-2130160245,994049986,-2096007734,-947714362,1973943558,74819335,-1493076569,123625468,-644955764,8175555,1475136232,1891586902,-322836480,9715337,1592533224,1603382574,-1980983320,1358992446,7388758]},{"sector":2,"data":[1592528104,1443677827,-385919256,1499393048,-561255966,-397191586,-2090931211,-1389491002,-1957209199,-328800005,1891522129,-1807841024,-336402432,-2091820706,-1101656890,-823656336,-396992789,-571932901,-497459477,1610058729,272010179,2025472,272010070,305543936,-402426624,-964435979,272009484,272534272,887643648,-1329871892,-10622968,272534467,-1946711296,-276624828,1697804,1062539,1062539,931387,-823655563,216957919,1062537,-1807840829,-345315328,951976112,-20518904,-141871501,-402634049,-1101599765,-1662515132,-1807840770,-347871232,-402117442,904461967,-1957208341,138723070,-1979809048,-402615234,-396432576,28371765,-1141404848,-454555372,-1807840770,-350558208,1958742616,139509257,-385983768,-1950094564,-402649034,-1144848383,-1058535036,-142125058,9715337,-1947539480,1049190391,-370671468,138805226,-1950091381,-1962930114,172264439,-401805437,915079193,915079184,909836304,57999374,-2082531096,914951406,1455620112,1488975755,-347740160,1465843339,-402627393,1569450811,138790664,1555955712,-33626104,1308558455,-1101839608,-655882196,-1807840771,-361043968,1599862667,6940755,197145435,-1959168805,-1308329520,-1176766592,-783745008,1476096995,1690295249,-1414812928,-1951677557,-1031033919,5816235,-1996462914,-402615234,-141825471,-1807840929,-363927552,272534467,-1946711296,-276624828,1697804,1062539,1062539,931387,1927807861,216957918,1062537]},{"sector":3,"data":[1254053827,-358488064,141082198,-1979886872,-402615234,-396432880,1174399493,-1141404920,-1259861552,-1807840771,-370481152,-1990199413,-402615234,-1362892327,151040538,236892160,889370655,512303565,109847330,1371153188,620935203,-1021369907,-1202565090,-986831614,-853335530,525883937,-584150845,1361256510,-503315527,-164734466,-2145181690,-286784396,-13709347,2302510,-876596296,-1275051,2056914550,187588368,-1709673280,777977967,-150577525,1947205639,1354773258,1593911194,1573161774,1426064074,10153099,-1959895296,249759310,-1705983949,777977860,19372628,-899862945,-1957363710,1354773484,1594051738,217881134,261762655,-13738239,-1516632458,1563320079,1442841290,-852151368,197168161,-385649213,-1029635963,187944233,-1191938880,104398881,192162242,1967141837,-1039743226,855646505,2013247963,-1200160582,869072906,-1909563464,35896000,-1207951431,869072908,-1962932034,103216838,-1949947094,244176,-855636040,-1966525645,170517774,-1962773047,705142990,-372121098,-796147413,-1962933063,-1322005050,-1965935869,-753153514,-1598016542,-523032123,79218827,-1573663488,28846532,-936998912,868965929,-1006225216,-1576045527,565717448,1077136640,-1070398348,1439380429,-996086645,1958742569,701014067,1317781514,1964761862,-637077721,1963982889,112671,62403533,-399258368,-5242543,208931307,-855637320,-1564462541,-789173816,-899816398,-1957363710,105286636,700720696,-895343756]},{"sector":4,"data":[-452031973,1976109609,-167202558,-1949266975,243796046,-506385979,-506338863,-855636808,80370995,-326413056,702494,700720696,378220404,1589979610,-494710010,301630225,-1958457461,74794583,1085718453,869129011,-1898345381,72846785,-1962782837,-842465761,-899866829,-1957363708,-1202235668,641204240,276048324,-1962516853,39291663,-1962641525,869074559,-899850657,28835842,-1004128256,-855477207,-1957311693,1292524,700720696,1451951476,1563675910,100664010,-1202652642,-661767061,700849801,1476423912,-1031090037,108265896,-402521928,44564566,28837492,5040130,108266664,-402521416,145227842,79169140,3729410,108269736,-402520648,-895483858,-2012861925,1006765085,-165842171,-14039034,116790900,1979656715,178191,113652685,-973067832,-14021882,-888725509,-694529966,1512988425,-1950104950,-754732607,700818152,243974795,-922080795,145818229,-895290890,95994651,-1943941835,-1993747962,-2144743394,2740030,-1205989516,-661770657,-1207747910,567092485,-905525729,113639465,-939578933,-14038010,-1475228161,-31623744,858376718,-1279226176,979482625,69089318,1073902597,701276995,701177480,-852295496,-736720863,-1194184151,567096065,382017227,95955408,522308901,701765258,-852295240,716751649,1355363073,-1705946800,777980180,-809487409,-2081649835,-860159252,1996444443,520049670,-443866970,182877,548024063,467871369,-1305542709,-1238434016,-1957363680]},{"sector":5,"data":[138841068,-1709446493,778013347,721833611,331875291,-435254822,-400652005,80370971,-368654592,-889192421,-2081649835,1829438,-1550177932,992894858,1914431510,990279454,1914430982,73304854,-1994659167,38258439,-401735401,28901323,721611520,46292416,-1957326848,317490156,1988843095,209619726,705431294,-33405558,-62486328,-33340022,-129595192,704726410,-163149340,1183384970,1996443892,-1744532746,175570768,-1979068696,-466944954,1358055049,-1963559169,1352139076,-401967361,1183451575,-1981535496,1996484678,1149915380,-11495422,-1595405706,-227082487,-1963952385,1352139588,-401967361,92932495,1183367422,21334782,1183367422,-62485766,1946043960,-28931522,1183441962,1996443886,-227082250,1358579338,-1744550774,175570768,-2096579096,1946158718,-294191334,-1018113,1166733942,1357130243,-1744485238,175570768,-1979146776,1178139206,-1975027976,-466945978,-1964095863,1183447622,1342540528,-1963952385,-11469242,1149955702,-11495418,1877478006,142508808,-1977912320,-466944954,-260636848,1342326154,-1964083457,1352140612,-401967361,2122516558,57999364,503351529,-402360577,1183417673,1958743022,38111866,227206186,-1054085846,-1996487635,-1072959418,1183540606,-263833106,1183516275,-297367056,721176202,-28407068,-1054085846,-772913621,-28966680,704726410,-230258204,-1979824502,1346958406,-1192069377,-11534304,-2132276618,-193528056,-887041,1996424310,175570926,-1962396440]},{"sector":6,"data":[1174664262,1996443886,2144498,175570768,-402105624,1599998266,-1034033781,-1957363700,82609132,1988843095,-331447546,1718878235,704791690,-1975500572,707397134,2009152493,54823509,-1975458774,992610062,-1975027775,-467008700,1149958283,-28931838,1183400000,-25755652,704726154,-11517724,-1604846474,1352167568,468465407,-1979230744,1088694788,-11055040,1166933110,-1868541951,-11495312,-400823242,1599997754,-899816053,-1957363710,173968108,-472776918,-1324988790,182505988,-2021128122,-899870185,-1957363706,49054700,173967958,-472776918,303531914,721307272,-1947169820,78710366,254142675,-1962440448,-963966882,-1996484827,-443851257,445021,-1964209323,-14022562,1183572945,377981190,80370962,-1957326848,-2091493396,1825342,1687815540,-953262333,1830406,-670644480,-2147483621,1929790,1586178932,-1090811130,119417976,-234879047,1913046693,1048641565,16788602,1048653682,16919674,1721837431,-351827683,108461856,184561384,-15829568,-1008204170,1975520252,-339727604,108461846,-201069158,108461835,493491967,-1955217397,1577058744,46816607,-326413056,1460071555,1950253910,91553309,-350489928,469934339,-1577302391,1183390840,485401082,-1946270071,1988885086,172264444,957109387,1886850135,1194919282,-1956023542,1988886110,172264442,957109387,125242455,1194946162,-1956023798,1721891422,-1962440419,1183515742,-1946448902,-1190715664,-1510866937,1344042680,-1593770520]},{"sector":7,"data":[1688411490,-637090019,-1962933989,2139161694,1946387714,12314883,-16484353,-1709343690,200540164,-1962647925,2091058247,-10360547,-1946263925,1150024822,206867210,1997297465,956658221,645073479,-1962647925,-74711482,119468171,-234879047,485275813,10283088,-402360577,1996423975,65660932,1586193899,176129020,-2130217473,2147421311,1586174580,-62485756,-259261557,129566494,-1197084160,-397403136,1005256806,494812803,-138405119,494838744,812957707,-1710983425,200541035,611631115,-2130420085,33555071,2139164018,1996621314,-991407354,-1962349822,1721828446,-1207465699,485163009,494157443,721712638,-1961759808,-74775458,505148094,506119,-538204686,-443850914,180829,-387151019,1586201298,493003012,1963083577,1644611334,-14945763,-955812593,468845127,1199773419,-1014297086,956331525,141886023,101041035,38242560,1568841704,1426064066,-326898549,1048598020,1946164594,2050916676,1912668204,2050916668,1996554796,1913046580,1048641565,16919674,1048651637,18558076,501950836,453278851,28837237,721611520,-62486080,1344042680,-2080410136,1962998910,2016840458,-218201828,1591309595,-883038837,-2081649835,-1957296916,1183451254,-2132530676,1183384004,108954622,-952142592,16972870,1963006781,-670644472,-352321253,1646168888,41910557,762642690,956974731,628425799,1963489081,13039392,1025144072,359923725,17188739,546691,2122342891,175374348,33310407]},{"sector":8,"data":[-25818367,512432363,2139168100,1963164930,74942725,1187462123,-1996257796,1991772790,-1070903268,-59310256,-1962248449,735087558,1375800512,-1968989616,1347563103,184590056,721974720,-1617276736,-1590796406,1688411490,-301545699,1577058587,-899816053,-1957363704,49054700,-969503914,108953897,1014301184,941345440,1964863750,700817417,493880888,-979348364,493920809,-1575236960,512433521,2139168098,1963065346,493789455,493885067,-1996077175,787155031,108328459,468584135,1838809089,187588355,485275888,1354771280,1443264255,493893375,493762303,1602921370,-397389266,-1956773881,46816741,-326413056,-1962742653,1065554526,721712392,-1956713536,1183384647,-16282626,1975520007,-28931322,-2097002615,-1962015673,7734723,1963214649,96701192,1200160774,-28931324,-1961008477,273058776,1183516553,38242574,-1995684213,1183515719,173443848,-1996077175,1183516759,106334980,-1995815031,28838999,1575324416,1426067650,-1957237621,1183451254,105134086,1144528246,-1978108156,1144521798,940602887,192349508,148727,-1962642304,-1962284090,-167046540,-1070869387,113401182,-326413056,1460464771,74877782,-1962523509,1183385684,-27883012,-1996601718,1183513158,-163149569,468729475,-955812608,-385875964,1048772739,1946164584,1748929286,-12784867,-1977880522,-466945466,-163149232,-8918960,-15992693,434840948,-1963690241,-466945466,-163149232,-10491824,200558217,-1962117952,340102136]},{"sector":9,"data":[200558217,199062976,-1992133377,-96040388,-2012723926,1183513670,155527926,-1963112824,1161361990,939882248,74910277,537152640,955664010,91687237,1997227320,72122372,-62485696,-1979820405,1418266180,-1956684280,46292453,-326413056,74877782,-1960192351,959043606,91555396,1946702905,105155361,-1559735157,378087894,-1070913064,495231897,495326857,-1994555229,-383942122,2088829071,1963065602,494969150,495060491,1149971828,206867210,494929451,495064603,493620875,-751051989,74585463,259244347,50480327,-1547687166,-2136793726,-1957500131,1418398276,-2119046388,33817212,-2069806219,-2046424291,-1959955427,1418398276,-2079970548,-2045371619,1812892445,1004219165,1914009555,1942043396,38061839,-1070923258,-1558346077,233512324,-1962261365,-2069689260,-2045343459,-1034068451,726990850,46292416,-670644480,234881307,-1191442200,726670454,45633728,465063937,28856320,18594304,-1550167982,1378770826,-41293744,-532773941,192151579,477511299,723350020,-2095256640,18642494,1048835447,1946164342,1679723275,75464989,-478936814,-889192008,-2081649835,-1923737876,1183444550,-1205802006,-397403018,2088893282,1963000322,75268370,192086272,-1417589,1149954630,-1962440700,-2128840650,1964765950,-362902570,-1929377850,-11473338,1579200030,-883038837,-2081649835,1465254636,671893130,1265895494,705318538,1131679310,1183509810,495493644,705046262,-2012324214,840796446,-775748609]},{"sector":10,"data":[-368668960,-1158116567,1183452729,-1947170042,1381041246,13035607,-27698593,52267014,-30799810,-411760562,1593913320,1575324510,1426066626,1465314443,-1576384886,653663624,1586113030,-1994487796,67056157,-1897868861,-1960187386,141986808,-1173991797,1586171423,8054788,1593897960,180510046,-326413056,1183471446,495493640,705046262,-2012586358,840796446,-775748609,-368668960,-1913091287,28903030,236960256,-402366837,-1175977920,1566465792,-218101566,-1542512882,-1542478833,-1542478833,-1542478833,-1542478833,-1542478833,-1542501873,-1542490353,-1542478833,-1542478833,-1542478833,-1542478833,-351296497,1398116465,-16362927,-14841802,1360890166,70713175,-601948374,1499072287,-1595874469,104471498,460660104,109510576,-1073075701,-1070395019,1347572051,1593911194,1532582446,-1976955998,-771804441,380603363,-774075886,67056355,529215194,-738242217,-16360615,-14841802,1360890166,70713171,-534839510,-1017313505,705433342,31982453,116835072,1979656716,-467730663,-2012821985,116849949,1962879499,664425481,-1574019327,-1396495861,-661987957,-2147231046,1935934,-1258613132,-855705068,-1460864908,-1475775224,-319589119,-76281432,-72629365,-1396451870,-625289078,-1975615485,376700957,-99306245,-126563074,1963501804,1963042825,162065651,-1014301836,-498598998,-963918890,-661987957,-2147231046,1935934,-1258613132,-855705068,-1460864908,-1475775224,-319589119,-76281432,-72629365,-1950098718]},{"sector":11,"data":[1205832413,-2147231046,1935934,-1258613132,-855705068,-1460864908,-1475775224,-319589119,-76281432,-72694902,-1009130937,-326412861,-486125941,-1979207632,369526752,-1070378990,855646395,-1965935671,-1976957426,1344931606,1397903696,-42407856,303433359,1347469363,-870383788,-937492705,46816543,-1137770752,-1070661857,-735117537,-668008673,-869335265,-802226401,137297695,-326413024,209095510,-1979562870,-453639324,-1070344053,957891721,359993412,1392509368,1593790547,-771007736,1418272116,407667472,340560641,28839907,-11513600,-771028898,1418265972,1589938966,576093,1458342741,-150309237,71748,-1070396044,1343255807,-2096734465,872290404,374114249,-1070397469,1593790545,-899850746,-1957363706,-1151904020,1988831706,1962281734,-1962467831,1423867,126592499,1971322917,-1873810685,1394572472,520048723,190521284,-1964084032,111280711,-773574102,705209312,-1576843382,126560775,178390052,2082377002,-1928913377,-1807839945,309616,2005771763,775851274,309616,1200268787,1888526874,1583334539,182877,-2081649835,1465255148,-1705983949,777978151,-1963047287,-1073084346,1183480692,103216652,241076778,-1023148238,-125050671,-148238429,2742790,-1960282848,-1070396810,856442506,139365065,1347506263,1443788543,70713175,-601948374,56121631,1076496446,-1973426206,653657158,1586113030,67056134,-1948200509,135695344,2110208810,138840607,653707518,1586113030,67056138]},{"sector":12,"data":[1222693315,-268175357,-335684873,-1872368893,839536266,-772348947,517573601,703202958,-1070391546,-402110838,-65077157,702154487,427040768,-15829249,1996426358,142016266,-16353537,520029302,703275012,175541136,705642123,-15960321,1465257590,704919295,534781695,705183235,-32749826,-462092210,535043839,-25755652,1593911194,-1956749522,214064613,1347900928,64666194,-1975615434,376700957,-99306245,-126563074,1963501804,1963042825,162065651,-73073804,1482350306,-880058785,-234620413,-1010141880,1458342741,-150702453,268436036,1552615284,-351827188,205818627,46292318,-326413056,1460202627,1545505622,38243183,-1946270071,-62486265,1996436971,-3872514,1586229387,142576638,76225259,1963345465,38073872,-1962248956,77856326,-339309780,147227418,189777803,-2082507328,-1961820602,1325399110,1975520252,1589652417,1575324511,1426064074,-1957237621,28838006,233328640,29550596,494274247,645988350,-1979900550,-1955486666,1554187846,33457007,1346420763,1596151962,99094062,-899850752,-1957363708,116163564,1048794711,1946185564,1354771287,705077328,-1202658262,-1202716671,-1202716640,-397410291,-13895118,1868308107,-352159861,309279,-1963309431,-467008956,1354771280,-16354049,1996424308,-93329158,281445191,1868308107,209076025,148727,-1194167264,-789905152,-443850914,-1957311651,1547600876,192217199,1906587391,1342247864,-1592475416,1178148212,-1205832700]},{"sector":13,"data":[-397410303,-1070922928,1566800,-1560000885,113712500,-123530,1342177720,1560282344,1426064066,-326898549,-2091493626,7298110,-773258379,1950253824,58064413,721471465,1347440832,1594881434,1949731630,-754667235,1545505766,41354095,-33405814,-96040760,33834122,33880646,-2130950520,1962934908,-96025084,-58818560,-972785922,-1963000762,-466945466,1354771280,721176202,28856548,-1070903296,71711056,246941044,-149951742,536871492,230163828,-1207702782,-397409788,1149958430,34546691,1183318596,2047276794,611582237,-125049814,1354771287,1342260621,1342177720,961593387,91489350,-352186184,34584579,-118953904,294531,922687604,314077604,889147393,-768883061,1375914624,672373328,1600007775,-1034033781,1048772610,1946186148,-1539899637,18004081,328722512,-326412861,1460726915,1354771286,-2096979224,-31624130,99156853,1545505537,38243183,494147211,-489487183,2023997955,-1012963,-1200511946,-11534058,1354771252,672373334,117321311,2088970764,57999368,-1979663127,36438596,-1560394104,1149906054,172229122,1183318532,747152122,243983402,-316003834,-1053079223,103422582,33827334,-1963047384,-2036138426,705077292,1183318572,747152122,33717376,1183452787,-28955910,-970159966,2917894,1183318448,747086584,67650698,-163149821,707561890,-1963422748,1183448646,-96040206,737166985,1077998150,1183442935,-227082252,1342177720,1089488523,1166889024]},{"sector":14,"data":[1183535105,1356911092,-195510886,747283211,747378313,65556562,2047276670,108331549,494274247,468189184,-971969792,2918150,747177670,1980155649,-385876451,1600059666,-1017256565,-2081649835,1448547052,-2010347872,-2002715578,-129595348,-2010347616,-1985940410,-230258644,494419587,-1207274240,-397410303,-605422159,-62486016,-1974410198,-1974406074,-1974405050,-1202654650,-1202716640,-397410301,-1799817410,-2034741136,213405740,28856320,726683648,-1175957312,747026669,93755984,922693215,65543544,-1947169796,-1961002978,1183385671,-196703490,1183367422,-160371722,1946419780,-163149231,-125049814,1224230538,-1963964791,-466944954,1089357449,1996445520,21335536,528523344,-1202658262,-397410292,1996486350,-2053089296,1357130271,1342180536,-566552,-1604850058,-467001468,833616,-146151344,1183454187,1357130492,1358317194,1224230538,2095601232,-163119614,-1962359165,1325399622,1975520254,112774,54585424,-443850914,-1957313699,1950254060,1836383773,494419587,-1956219904,-2095220706,1946159231,747020335,-1605311446,-1605358457,1077947528,747216976,1346429994,747386623,747255551,-8579608,-13857738,-1708357066,200562900,494405319,113704960,-123530,294531,922687604,297300388,-617918463,-1070909441,1375732410,672373328,1105735263,46292477,-326413056,1460333699,2017362774,57933853,-2097115159,7298110,-2048326795,-1946211584,-1955636194,1156252279,148727,-1207602144]},{"sector":15,"data":[334168589,-352189256,75399950,-1207602176,65733136,-1996353864,1183513670,-1981535496,726726214,1183535296,-1202700042,726663169,1996443840,-174528260,281445191,1868308107,477511481,604193930,38011407,972572296,1948087358,75400116,-1197640704,-1209335281,621037195,243990529,-511697542,-1547629570,1600003450,-1034033781,-1957363710,183272428,2016840534,1983808285,963968541,-97720234,494278283,-489487439,1183433219,-153580554,1963000391,1354771212,1602920346,-339727570,-161576107,1183385483,-1983673352,1187510854,-352321284,-1996190958,-963905466,-897527253,-96040702,737957513,2045268160,1946601470,-483,-1200511946,-11534063,1996486774,-92864516,1596461978,-65869778,-92870642,-1200700440,-1956773887,1438866917,-326898549,-1957275900,-1955636194,1187447415,-352321284,-62456058,-1961834877,-1955636194,-62506745,1996431475,39619332,-338491215,-1961892989,25822844,-1310175080,1958742792,-62485548,-21494805,-1956684033,46292453,-326413056,1460202627,105286230,-1946401144,-1955636194,1187447415,-352321286,-96010490,-1961834877,-96061177,1183458419,-1947981060,38046456,-1913108855,1178140997,-1948354568,1141110854,1925659396,-96039980,-21494805,-1956684033,79846885,-326413056,1460595843,74877782,144828502,-151501175,1946223172,243717,79168491,-96040704,67782282,-62486526,-940015989,63046,1031801323,1191801856,-2131343617,-227210947,705185418,-196703772]},{"sector":16,"data":[1358710410,-755969,1996486774,-92864522,-151772952,1946223172,38046505,-388823887,1174408996,-62485764,1183441962,1996443890,-1957674764,1346434118,-1202667477,-397409777,1157034894,410255874,705316490,-1974451996,-467007418,529702992,1996443800,-200414982,1946172800,1461602083,-1989119768,1183512134,736373254,1346958918,705185418,-11054876,1996486262,-206837510,-443850914,574045,-2081649835,1448545516,494288515,-385649154,915079345,61939062,922740435,199761272,-2081422344,1946158206,-129579514,-166728959,1946223172,-352079868,-2012958718,1990260806,-2029649379,-2000617940,-466945466,1166932107,-163149567,707561120,1464877284,707561632,-11515676,-1070860682,-129594800,-397409612,1157034702,846463234,-1325251445,619238148,-2046426609,-2013133780,-466944954,1358186121,-11517865,-1070860682,71711056,297272692,-1207702782,-397409777,2122576534,326369284,1906587391,1342247608,-1070910209,328881744,1580097320,1575324511,1426064066,-1957237621,-2095220706,1962936447,112645,2122540523,527760900,494411403,956581515,326568007,1979711293,138906377,71731528,1187448299,-1593835516,1178148214,734950404,-269987648,2016870398,-149624803,1988876427,-754732796,37811942,-955419644,-31623674,-112269057,267108395,-1560000885,28843382,-1075294208,1586949118,180829,-2081649835,1448545004,494417547,16139975,-806857216,-1946645514,1183385668,-164959234,1963196997,74907425]},{"sector":17,"data":[107079767,-1325245045,-2081697020,-670887965,1352140682,184935400,-16550720,-947653050,-28931320,201215743,-2083752512,1962997374,-373282043,2122514573,91619830,-352321096,-1547687166,1149988894,-28931832,-1994557791,1191180358,-125924360,-405601359,-161683370,1183578115,-28377090,-982204405,956843147,192084038,16271047,1072190976,-151483402,1963196997,74907446,98166871,-1325245045,-2081697020,-670887965,1352140682,184900584,-15174464,-1293354890,1958743038,38139524,-385649407,28901243,-2096567552,1191119047,1587538936,1575324511,1426064066,-1974014837,-467007674,1183510667,-396996602,-1073020881,-2019551116,736373292,1222178758,-26482608,494544512,112891,-1070919957,-40834992,494274247,-1070858242,79846750,-326413056,294528,243271541,-352051846,2017362735,762576925,942442400,628491334,704923274,-1995535644,1240279596,359907643,942442144,225576518,942442656,91424326,-352321096,1572875010,1426064578,-326898549,-1957275890,1048773750,1946164584,-373282043,1149961154,-1949160696,-128546312,-1962523509,-62486057,-2114038135,33555068,1357448051,41713921,58065411,-2097068311,7298110,1021903733,41713921,125043203,16940161,-163482366,35486214,1183464053,1357130494,1358907018,-1979757848,116848198,1963072890,1975520023,1950253843,125173277,494536438,-402295807,-2048195754,636896907,-523173887,494536201,494536438,-2096073470,-31624130,1760101237]}],[{"sector":1,"data":[112895,-2147276311,1962999678,-25755795,-386107649,1183447879,-115210,1048774516,1946164600,494182671,1962296889,112663,-115152816,494544512,-159973381,-386554904,250345183,494157443,-1207470850,-397344770,512490761,2139299192,896794632,829741835,1906587391,1342247608,-1014286337,-897527253,-1706012158,777988115,1048778731,1962810740,-25755888,-386107649,-1072955839,2112357237,41714166,57934338,-2080413975,-31624130,568853877,-2095256727,-31623618,-907541132,-2146374663,1962999678,2047276551,192152605,-2147322392,-48399834,-1946208535,-2095220706,1946159231,1354771417,-335773464,2047276774,57934365,-2113987863,17958012,2088839285,1963000066,-499220447,326369307,494157443,-385649410,-1070858501,-121247664,-939592983,129094,2088835051,1963000322,75268368,74711314,48955824,-492650454,41713947,510984450,1459909887,184689384,-385649472,-940048705,175441920,494157443,-385649154,1048837655,1979587956,-125926558,722629632,2112377024,112884,-189274032,-352321096,41714071,57934082,-2114064663,17958012,-940053900,58001408,-2080514327,7298110,922684277,330854820,451432449,-2134406391,-397409820,1183447397,-115210,1223230325,770199553,-177608460,-2080487703,1946220670,2017362765,1081344029,1342177720,-1191737368,-397410303,512489467,1200320348,1947634434,-754667235,-1983773726,922744390,314077604,1586188289,-1959264266,-2133709885,1347551946]},{"sector":2,"data":[1596461978,-33953490,-385798680,2088893939,1946223106,-35002109,-16485121,1962870900,122284038,-1994558303,1150023238,1785092,306042484,-385649407,624819655,1026520065,779354407,1946251325,2017362815,57933853,1023444713,57999373,1040145129,57999654,1040143081,57999656,-369145111,1854144308,1191117558,1545505782,-1995994257,1178202694,-2096008458,1979709054,1183401990,-955913226,63046,494419587,1086331649,-17545591,-1205203962,-397410303,1642657452,1354771444,-823064,703133302,-193035277,-402426880,-1947667361,-46536210,28698711,1347469355,267754064,686370399,494313981,-1947056503,222102596,1025995776,678691110,1946232893,-471314397,1975520250,1354771211,1602920346,-50468562,1881030275,-385649664,1776876787,-51516937,637828225,-16419583,65794638,-899329,854127222,1958743034,-53351961,-443850914,180829,1342177720,737548264,-555200320,1946601458,738197021,-2132258624,-205854474,494544512,1718282493,-326412861,1443556483,1868308107,-1962641525,2425926,105253646,-335657335,-28931217,1979467321,38046564,1358317193,-246552562,-2080881015,-31624130,-1612184716,-125926401,-13995008,-1200511946,-1957691114,-13892578,734235447,30048466,328880210,-1959895256,1207367774,91554050,-352321096,-1539899606,17938545,-159973552,737691275,30048466,328880210,-349282520,80118751,1183384715,1975520252,1589652360,-1034033781,-1957363708,49054700]},{"sector":3,"data":[105286230,-2080487800,1918961278,108954380,-2147059846,-350159250,-28931566,1039174552,125173887,2038753366,-2130819448,2086732926,75399180,-2147057798,-350223250,71731730,1039174552,125173887,2036394070,-1979431288,1178140230,-1207601916,48955393,-1956724693,79846885,-326413056,74877782,134366454,1552615284,-351827196,71600899,46292318,-326413056,-1593512829,1183391092,1946601470,-2080375267,-31623618,922687860,468196728,1981189104,-754732771,-1983773726,45677638,-1961563392,78773830,512483539,1191407452,-62486270,1342177720,-237941,1996444471,1491245572,1183517684,494183422,-1946982936,46292453,-1957326848,49054700,142016342,-1962888472,1962281968,108954393,1086331649,-1325399771,-1948200179,-444595636,-1983837217,-1956773308,80371173,-326413056,1443032195,-1710721281,777982545,-166989685,2122519924,-1071972090,75072,-2147332981,-1056178463,1577206921,-899816053,-1957363708,49054700,142016342,1595036058,200313646,-2095614730,453052030,19218624,-1948200704,-511704500,-1983837187,-1956773308,80371173,-326413056,1443032195,-1710852353,777982545,-166989685,1149962868,636014850,48955393,-1956724693,46816741,-326413056,-1962611581,-1955636194,1183384135,-1995994114,317455430,-1946263925,121177158,-1014299531,1182994667,1183518974,-61931524,-462045173,-443826133,180829,-2081649835,1048642284,483335530,28837237,721611520,-28931648,425603,-1073017740]},{"sector":4,"data":[113707125,483335530,2122519275,208994310,16678531,113706612,211426666,-1946270069,46816741,-1957326848,485262316,1190549079,225714182,-1995684213,1187505734,-352321524,-431569147,1183514624,-2147474170,-1947580791,1183386694,172395504,-1946859895,1183385670,-360807430,-1207602176,48955403,1586217003,266568454,-1964482935,706780559,-1983370259,1187507790,-1962934036,284066805,1015230955,506033152,1122514175,38046054,1995327035,705077272,-125049814,956755843,58065532,-1962771319,1183384132,-330891282,-1929001341,-969146554,-175388553,-351211901,-297366767,84034603,-388956156,-2096872312,1183647174,2009480191,-431583768,2484304,268846838,-1070921612,-1969251760,-1934086561,146296861,778025510,602427474,-1956684284,147480037,-326413056,1460857987,74877782,-1499265909,105155101,1183319556,705143024,1143727146,404742,1183377617,1724226292,1183321076,138709750,1183319556,-263812366,-125049814,-1980610934,-1934037434,1996443677,-2053482514,-2144444541,94270,1183460980,-163170060,-466999694,1317717763,1005398774,-1206290751,-1605362292,-466998778,-772913621,127946984,736373290,418072775,1344113848,707397280,-229733660,-1054085846,-1974409007,-466947002,-2015716784,2088971871,91488260,-352318536,-1950340350,-1886780836,-316006243,243974443,-1056760426,496242314,-388906709,1183367426,496476408,1183369470,-1948003844,-1994483065,1187510854,-1960992514,254147142,-230258432]},{"sector":5,"data":[-472786805,514506635,-150993992,-2046430618,-297367264,-1979818357,306548031,-939637111,7749,-1964089717,-467008953,-1978120823,474319111,-129594793,-62485936,-2015716784,-1957220769,1200287326,1357130241,1342177720,1602454938,-295793874,67192714,-129630205,1859323057,-92371974,-2095942656,1946158204,-96040058,-1072961325,2062091124,-27358209,1991,1868183177,-443850914,180829,-2081649835,1448544492,-1961986421,255659078,1024488448,1383334784,1946387261,-1715459240,-1962896407,-965780930,-1929250234,1183386181,-2096829444,-1928987578,1178147141,-1948355588,126614622,200820361,1458074816,704923530,1183469796,-96010502,-126419120,-1207797761,-1706033147,778011819,2122566123,1014301706,673479,1868210432,-1191688567,-1957691389,-9479650,-1070923145,175570768,-195501414,-126419189,-1191318808,-1706025588,778011663,-949971992,1943558,-9312000,175570774,-385472280,1600061287,-899816053,-1957363702,-1957275668,2025784902,519080748,506119,113681906,1577131378,46816607,-326413056,17071747,113715572,16919674,-1559738741,1325345916,71731972,-1559865717,378088574,-1070912384,-1557363549,113650818,1560354162,1426065090,-326898549,-28915966,1838809088,-1993449725,-323420602,-1070903268,33929296,-25755824,493893375,493762303,1602921370,-397389266,-323427577,-1070903268,33732688,-25755824,493893375,493762303,1602921370,-397389266,-443817241,-1957313699,-331447316]},{"sector":6,"data":[410320924,1344072888,-11485141,1996425846,108461832,1342469887,-490608560,574045,-940799147,18607622,469809152,242679632,-15960321,1996425846,108461832,1602921370,-397389266,-899816809,-1957363702,49054700,-1994561375,1183579718,493396742,-1946270069,46816741,1354771200,-2168818,-326412853,1459809411,108432214,-16040821,-11070860,1962869364,141885188,-16354049,65735773,1587134507,1575324511,1426064074,1996483723,209125134,-16091393,1996425334,241076998,1561092095,1426066122,1996483723,74907398,1347469355,106859344,1561092095,-1593834302,1439374694,-326898549,-1957275902,1049298550,-29680282,-16048524,-1202255756,-397410296,1043988421,209001830,493237897,505942,-4986800,-1956724760,-1956684089,46816741,-326413056,-1593643901,1183391084,105286654,-1961005917,-443810234,182877,-2081649835,1448552172,-1593280885,1183391424,1891410398,1891505803,-1981528439,-257825194,-532248293,-1994561887,1755441734,-498693859,-2010351712,-1063190970,-96040848,-1705983957,777986904,-2080618871,2015806,914949237,914955970,914955968,1183521776,106334980,-1989100381,-948912618,7236,745998022,604423680,113705004,7528,493225671,1788936192,-398030563,1594071450,-1564464594,-1163780421,-2118625762,-286765053,121932542,1183318828,-1073297702,2089484400,-1962677484,-16051587,1183452532,88422618,113701237,-33460032,-970322938,18790918,-2079352234,113651295]},{"sector":7,"data":[-2097078597,1926718,-1705638283,777988171,493487815,1838820094,-1456578813,74743808,90171406,-1696257560,777978724,1357661837,1594261146,1975520046,477922064,1443919104,1342407352,-335646488,477922270,-1955105792,1789126726,-532247779,-1961103197,1452008518,1891410918,1891505801,-1545714037,1183456960,1891672826,-1560394102,1183526007,493396962,57982987,-1694688024,200551705,493225671,1048772608,1962942144,9693443,958316705,1948172806,-1036090608,158597150,516044543,1602490266,-1070188242,-8752098,-1709260746,778011663,2122412011,1963000558,-260144876,225771794,746012288,239629568,-352017176,-330920638,669358672,-804573601,2122397045,1963000558,-260636882,184724200,-148605504,134280262,-1070921100,-1969251760,334179935,16955478,-260636848,-755969,328921718,-2094112984,1962941564,-16717565,-939581207,2015750,-59310336,1596151962,-364475602,-971151709,2892806,-1705215000,777978777,1578910859,1575324511,1426065090,-326898549,-1957275902,1586168950,343902982,125171515,65795627,957513099,-126545291,1600046987,-1034033781,-1957363708,116163564,1988843095,38046468,1946223165,-373282043,1049297212,1149902528,1038363140,57999369,1023465705,779354125,1962941245,11921667,1879342209,-1579780863,101392060,-847962434,58964055,141885264,1347469355,1891376895,-385875528,512426232,1200299366,939533570,1964507197,38270486,-1979091905,1059324487,125108540]},{"sector":8,"data":[1183433611,1460399100,-1989681176,-1072956346,1586202484,38270972,58032128,-1577092375,1183391078,146297082,-1964486656,1711720444,1459617821,1342406840,-237941,-1948570825,-2133710073,1347551690,1891376895,1867139,1048776565,1962941798,-92864760,1596476314,477987630,-1989905408,38061884,686359428,-2135402497,45633539,-1070903296,1375732154,-1138819248,-1579488400,1183391078,138737658,158597632,-92864681,-335626008,-94467312,-1995290741,-1072956858,1166739061,-96040684,-1191545089,-397410299,-1072956419,1996476276,676043514,-35115425,-6886566,1962869876,108330760,-369453336,1600061186,-1034033781,-1957363710,116163564,1988843095,205949710,1946158909,998728,-1923731339,-1705968570,778011446,705431294,-62485162,2144336,440400,-2060150192,-397005217,1150091738,-1768271868,-399614203,-11083226,1996426358,142016266,-16353537,-344933346,343706406,2106262507,95966994,1793609728,1958743035,1715374577,129521437,1525174272,1516693755,1587134507,1575324511,1426066122,-326898549,-1957275902,2089485942,477922068,-350325504,38139666,141824000,54573143,-81270704,185761163,-1947568641,1149830214,-1956684260,79846885,-326413056,1460202627,75399510,242614528,654605953,-1608813311,-1986519151,1183450182,-96040956,695361852,628587068,553283200,2122396395,1963009284,529571845,2122439915,1912680452,75399431,-764018342,-420888533,-96040448,-125049814,1988099971]},{"sector":9,"data":[-1477945593,-96040851,16664263,-1071740160,343378718,1183457515,-125069064,1979744061,-2014816505,-129595283,955926154,58062918,-1946269953,-167046540,2088966772,-210501608,-2011675510,1631385670,2050804860,1853933695,-722788104,16678531,915117684,1955274086,1979058962,-1071740153,343378718,1604739,1149919348,-129595368,142369084,75463228,553152128,955926154,1182136390,620905611,4012032,-1962707680,-1202318732,-1202716667,726663169,-1706012480,777988115,578080779,676043350,2122526303,91619838,-352321096,38074138,-193691648,440406,-102242224,909765355,-2039145114,1593775593,1575324511,1426064066,512486539,1183522496,440895750,321619,313949,-2081649835,1448543980,1443133067,1349555384,1342179000,-1709542145,778011756,-62485162,-2093573552,1048587871,1946185920,-11600381,-1962979586,-922812602,-1963112824,1174538564,-96040707,-62485162,528523344,112742552,882528256,-1976672379,-466945466,1149958283,-1604890620,1352146820,1342179000,-1965095192,-467007932,-1604890552,1352146821,1342179000,1591669480,1575324511,1426064066,-326898549,113661442,-1962857353,-1960919010,384504951,1604739,117312884,-1705629172,778011663,-1948277272,-167046540,-1956714891,1439391205,-326898549,1988843010,38046212,-930356182,-936704886,1149911361,22317571,-1037306326,-1981679808,-1956708794,46292453,-1957326848,1988843244,939821578,494012486,939672714,359860294,939607178]},{"sector":10,"data":[225576518,939738250,91424326,-352321096,1589652226,445021,1458342741,-1978763637,76024902,-2012592502,1183449412,38045704,-2012854646,1566442308,1426066122,1448602763,-1962248565,1586169982,973572614,-1979550971,-1979414523,1161429575,-1979484670,1149764165,21465602,1929463098,21334531,-1979628408,1161429831,-1979484669,1149764421,-401713661,-1073020781,80089972,38061568,21284352,54838784,-339727616,112643,-899850402,-1957363706,-1957275668,2123040886,-401713658,-1073020829,1586171764,-1962570998,126419541,-352168055,-401713334,-1073020853,1586170484,-1962636534,-420806060,-1979031925,1980054020,-2012902910,38046215,1929528634,38111747,-1979562104,1161429316,-1979484671,1200095557,54823425,1929594170,54888963,1577273224,113925471,-326413056,108432214,1144521866,-1979156990,1144521540,-1207602687,48955393,1566490667,1426064074,-326898549,1988843010,38046214,-930356182,-936704886,-1979497334,-165019308,-503856597,1593722505,-899816053,-1957363710,451707884,1988843095,1183667726,916082926,-1976672381,1183326276,105286642,-1995942261,1451883590,38074110,-953060351,18216518,720455306,-922816698,-1963702648,1183382854,-96024584,1183449152,-1964758287,-315953330,37601579,-1204718336,787152897,351684295,-263812607,-17938902,-196704056,-1996732790,1187510342,-1979703046,-466948026,720260746,1036069869,-814481406,1183432747,205949932,1946160957,18300206,1391002485]},{"sector":11,"data":[33570050,1525220213,33635585,-739703947,33701120,-1293352075,33766658,-1008139403,-1715459328,-167559959,1946223172,-280560120,-336507138,-297337338,-17805570,1445596166,1357792909,706712736,179851492,882528256,-164733051,1946223172,-1070901700,-1902096304,-1202677729,-1706033142,778012857,1354771286,720651914,-1885318940,-1202677729,-1706033142,778012857,15498883,727078005,1183469760,-337368334,-1070901702,-1868541872,-1202677729,-1706033142,778012857,-196703658,726721578,-1851764544,-1202677729,-1706033142,778012857,15498883,-1974069131,-466947514,1354771280,-1742760544,768080,-2001102256,1877487199,-12719652,516163271,-1705639935,777988034,-1560787318,-1073075686,113707125,10776,446705387,-196724694,113707125,76312,446701291,-230279126,113707123,207384,446697195,-230279126,113715830,141848,637014,58104400,1962880607,-159973616,706230015,-796146037,1347600427,1596461978,-20059858,706217671,1183449092,706126578,972996329,1964861494,-96040179,1963607685,112645,-1070923029,-2095135581,1946217598,-23205629,-1560787318,1048783386,1946429976,-24254205,516177539,-1610189568,446835222,706388010,1978811960,-25827069,58048522,956198633,58192966,721315561,-1980199964,1156980860,510918914,1354771286,720520842,-1801432860,179851295,-1181069312,1445879688,1464909867,-1974066197,-466947514,1354771280,706712736,179851492,-1181069312,1445879688]},{"sector":12,"data":[707402400,-1070903068,529899600,196628632,-1181069312,-1607573624,-466998758,112720,-196703664,1346954282,-14912257,28843636,-1092071424,-364476074,-15055735,1996427380,375030,-364475568,-645149045,-745813717,973010921,1948084278,-37361405,410320726,1594062490,-1002536146,57999390,-1577209111,-1073010152,20779636,1024750592,494141442,1946157885,-40244944,706363008,-1610159360,1178085914,-385649164,-2065039712,440303869,57999402,-1594000663,1178085914,-385648910,1827274376,706388221,1978943032,-43915005,1945257528,-26023677,-2080549143,69867582,2122539637,1551171820,720520842,28856548,1183469568,1222912756,477429584,-1205963521,-397410303,1183405565,-49686,-829737356,-919873141,1183437707,-396981786,-15698689,79230582,-11382784,328918646,-13738200,1996427380,571638,-394854576,-1696172289,777988115,-15698689,263779958,-1070903296,328880208,-953262296,2758662,1748384000,-385649635,-577045301,-1708237017,777978777,1593622249,1575324511,1426066122,-1957237621,-208991138,-1995815285,1200168004,138840858,-2145499255,1962942591,541574917,2122514433,108265478,-2079352237,1566453343,1426065610,-326898549,1586189832,440896266,1409173129,1358579341,1602434714,173968174,-1995946357,1207310919,544473346,721241738,-1913615388,1183448644,-79262984,-970202070,37607671,-1960807168,1273757254,721176202,-1913615388,1183448644,-96040200,-970202070,37607671]},{"sector":13,"data":[-2067456,1586169974,477626122,-1205962753,-11534335,-1070860170,1423435856,-1962391927,1200163422,108954400,1404597248,1602490266,1588652846,-899816053,-1957363706,106859500,1562003339,-1879047478,-2081649835,1448546028,-1091404147,118893616,-234879303,105286565,-1960036701,950208582,-1595387860,741647104,309706763,-1926483777,119468662,-234879303,178341,922692587,1186475060,778025536,-1746382766,-28931598,742012671,-195514214,741392139,519206541,440583,1183557106,-1956684034,80371173,-326413056,1459940483,440406,-1962645769,-960003592,473336606,17140522,1445600262,-11485141,1672144949,-1962516853,39291655,-1996209015,1283458644,1149992963,-1073732350,-2147201653,-1056227355,-1962785655,-1956684090,79846885,-326413056,1462955139,-230242474,-1070923760,-1980217719,1187511878,-1560273156,2123050032,247956228,112739819,-362350848,-1994471931,-661925306,1174472587,41911292,-1962380034,1174471239,-1978143748,-467007931,-31178688,-134461951,16778311,1854080116,2122515196,74714602,741345023,-1962358909,4138245,199902857,1025668288,-1435369424,28895861,-1323988224,-1947544826,266436810,512483539,529214518,-352041083,73305039,1183319946,38208230,-1996601854,1200285766,-414808063,33769218,1183381574,833769,741353207,16780293,1996487750,1487117052,983763956,706519852,91602955,2095693867,706519300,-1993592157,213447750,807859968,-767129300,16780293]},{"sector":14,"data":[-1960174586,100913734,1183394866,-942109744,583,1991,1357268621,-397361109,-259260777,419921024,-1604966285,-466998778,-788508627,72125160,-1056707286,705142864,422437930,-1964453632,-1056766644,-2015716784,1153904223,-953394676,777981508,-2096865653,1946158207,71797512,1149879043,-504867302,138709579,-1964095864,1183320388,-700004396,512425984,529214518,-1996339317,1187503686,-1962934056,-947714946,59697422,33834378,1183379014,105186016,-1964882296,1174537541,-515471148,-2012789502,1183703878,1996443872,-34215702,-1949153655,407357400,-397410304,2122533760,-1071971880,19257591,-834238208,-1946919285,-31192505,-1982970357,2122517063,192151758,-763953322,1602354330,-16520402,2122569806,880086506,-942514549,-2097151993,-1962085266,1204277854,-946202612,777981511,-1090295936,134219255,-941030539,390913,-385649392,28836127,18671872,-1980610933,1191178310,-632895502,1166868480,-800683768,1586177515,41911248,-1962511360,1183384135,71797744,1946568459,112645,-1070923029,-2082847095,-1962356666,126603358,-1966193015,1059376710,225590588,634275467,1027407935,-339774464,-765555746,1073958784,-2012723318,1200232007,390563849,-1980742005,-195130617,2139686793,-767128830,-2096609399,1963000445,-700019960,-338278657,-18429,-956020855,-63929,-137208181,33555015,1183473268,98839265,1317666819,1005398755,939947201,1953544750,57114635,470189053,1022042666]},{"sector":15,"data":[-18725238,-532248376,-18790658,1183703886,263737568,-1595387904,-834237956,1204279435,-953099764,777981511,18368455,568872960,-763953334,-1697745153,778011132,770328203,222101505,-385649152,-1073544743,-1476448621,-823575681,178177,-1958747008,1191826014,9496834,-2133696885,-343997593,-195130512,17450998,100076405,1634993152,-337754369,391004,-1960741884,1183437382,-942109706,532039,-1946919285,1191173702,105351646,-1980742005,434889798,-1947443573,1200214598,-195130592,-1947973889,126477382,-1982701941,-765555961,-1980348789,-1014292409,-336836983,-195130612,-2210165,1200217670,-765555962,1443645383,239585165,100085343,74713088,16928640,41780051,-1962445311,-956104123,1589117931,1692946464,18344193,-942514549,1274416199,1594771399,373816878,154159047,843564800,1204224001,-150994380,1963196421,-195130612,-2210165,1200217670,390918,-1962445808,1333842526,1586168066,39816180,-1962129525,1586171479,440895954,-384018551,1586168001,206030802,1204248684,1395547918,706492159,1342218936,1600179866,470188334,-150953430,1946419205,-765555961,67260288,14319235,1183516788,-565772322,1183516395,-699990058,-1980473717,2011891271,-137201921,1947205637,543471621,1622672363,-1394061280,-765555968,1443645383,239585165,100085343,125046784,49301191,-955651328,127046,16928640,-1946919285,126480454,-1982701941,-1959728377,1736495710,1204256515,-947324404]},{"sector":16,"data":[777981511,-1946205207,-1959228616,1429855288,-449164998,-600187847,-2076517831,-1690622918,-2093257925,-2096303034,92997831,-1996472539,-1072960954,809315700,-385649920,-411698082,-1962933832,-754536171,-2134209558,-523038751,741744267,1199906699,-1949534972,1183384133,-1950028840,-1956684090,46292453,-326413056,108432214,-1993728863,1149901380,-1964758518,-316012468,1149878571,608190492,470155774,1996445226,1354771204,1583132136,311901,-2081649835,1448548076,741744267,1183385483,-1948742662,1183384135,-1995994122,1720384582,62925558,-1705968570,777996072,200427145,721778112,21883328,741744267,1183385483,-228684806,1183385483,-94467084,-1962653813,1200223326,-159479036,1586227153,104959482,-195130544,1342587277,737953419,-523110842,1290922064,-1993592671,915142726,1575693362,15761027,1586181236,-1995994128,1183509062,1010771178,-148671221,134277702,1150098548,-1070903284,124119120,242597899,-1695385857,777996138,-369098824,1552613579,138906114,1027358500,1200294005,239536908,1996451189,141885426,-402230017,-964492895,-129594612,200822527,-385649216,2088960152,208994052,-887041,1962870900,25159684,-16352125,1586223220,-1962439694,-506395060,101040387,-297367296,-1962771317,1183387204,621120496,104661055,1026192384,762576903,1962936893,-11736829,1946159933,-6296784,-396955018,-1073020527,1996461173,1198168818,-488034721,141885438,-346734104,390920,904418820]},{"sector":17,"data":[-295793907,1911097225,391167,-150506488,-385613819,1962934116,54835208,-359143344,1183571947,-1956684046,1438866917,-326898549,-2091493622,2897470,-1226243211,741384448,-1946532215,-349425098,907971375,-1962439892,-472840612,1200347139,-129595130,1059390859,408832,121463412,1030452224,796131338,1946159933,214336373,-375157,-1072956850,2088989044,158662404,-16222977,-1259862924,41716480,-16352125,-4673675,-1950684161,1200226908,1010770952,-1962379971,1191906375,-16026354,1962870900,9037830,922728427,-397005770,-1377107565,-16222977,-1070860170,1421862992,2122555371,-1720385544,-16222977,-1070860170,1415637072,-11105301,-2132215690,-1954354426,-1960036322,1183386695,1958743038,-1070903279,2147465296,1257478736,-1070911905,28836843,-1956684288,1438866917,-327029621,1996423296,-2142860026,8370256,1525540944,-1928825089,-11501498,1402602614,-1959895224,113401317,-326413056,8449153,741750527,1350583949,1342210232,-1710983425,777996408,-1928956161,726696006,-605531968,1575324505,1426064578,-327029621,-1957298038,1552614518,206015234,-1995548789,1451883078,-1996190724,1962933830,2022083848,2142785791,2095599616,178266,2022083920,-1070903041,-25755824,1593790544,-129594886,1962934589,112678,2022083920,1996443903,-25755898,-1957642197,-523172284,1342178821,200957695,728790464,-1200624704,-1957691391,-523110330,25664080,-2037838860,-1072955530,-2087057547,-351538175]}],[{"sector":1,"data":[112862,2022083920,-1224781569,1996488566,1354771454,-94437552,259375115,1342177720,-8997121,-201204838,-4920565,-1635056010,939523958,-772258165,1962889440,1204263430,28847711,-1224781824,-610599050,-1207176191,-1956773887,79846885,-326413056,8973441,1988843095,39619332,-1962129525,1183387223,-61437446,-1962516853,105155391,972965513,410387013,-1924087765,1358920326,-771858805,104959459,724893520,418074816,-1924087765,1358920326,-16353537,1354771252,-788118389,394720,-94437552,-1928825601,1358920326,-397361109,1600018562,-1034033781,-1957363708,216826860,-129579178,1183514625,58801420,-1628896395,-385649152,37552384,-385649407,-2143485769,-382176253,512426253,1200303160,172428040,-18283659,374784,175570768,1347469355,140509008,-1962873623,-1960036322,1191905351,-385649398,112722141,-2082608384,1963919998,172410652,79167488,512446464,2013211704,1996444422,1491245578,-1226241036,175570688,-1996313112,-661915066,-1962772597,-753946364,75240,-1946401143,4138244,1962936125,9890051,1962937149,12708099,-402613271,1183448229,941526006,138906412,1946830603,1354771213,-11513776,-13879754,1183516767,1424595446,-129579262,99287043,150488775,941525760,138906412,1946830603,-126419130,-16091393,-1070921098,1610567760,1975520008,178226,1342850697,-1996347928,-661915066,-385714293,-2109931176,1036088323,58000259,1040139241,58000262,1040120809]},{"sector":2,"data":[58000263,738137321,-372102208,1586168303,142082042,-1202667477,-397410303,83317034,58015744,-1979640343,1010770948,-385649654,2122514647,57934088,-1207907863,-974585854,138840832,292864011,1946157373,146806,1187499125,-352318984,325573,-1959037948,1603009118,604473870,1963146303,-94467291,-1977983093,1010770951,-1961396981,2013264478,54769696,-18352,1354771280,672373328,1996435039,62777594,83330283,58001408,-1946190871,2013264478,54769904,-18352,1354771280,672373328,1183526495,1584634,-1949111472,-1960036322,1191905351,-1206815734,-11534332,-1070921098,-11513776,65734751,-1996488264,-1072956346,837354357,242679807,-1991182360,-1072957882,568918901,-1948742657,-19601145,1183432747,-125926408,-15043584,1996486774,108461834,721975039,512446656,1610558520,1958742792,112645,-1070923029,-2081012087,1946221694,-62486269,16547459,1187451252,-16776970,1771702902,187588425,-1207536192,-1326907391,325630,-2095221756,2897470,937956980,-163149319,209043467,-1207011585,-397410302,-672405007,-622973,512479604,1200303160,172428040,129509236,1996443648,108461834,721975039,1610567872,1975520008,-159481072,-5737472,1788540534,-349282489,-159480930,-13011968,-1708378570,777996164,741744267,1183385483,-161575948,100992907,1183535104,394740,-195130544,-523171957,1176365136,1342177720,-1695123713,200540635,-15829249,2062092918,-443851009]},{"sector":3,"data":[707165,-2081649835,-2091514644,1913652350,75399451,343081216,-150991688,-259324826,12643969,741488131,552322699,741488267,-1993592671,183237702,1178141835,-2081852412,1183517894,-61931524,-327827445,1575324510,1426064066,-326898549,1988843014,-59340540,16664263,1177152256,1559920256,2122321012,108277754,989494912,1988691317,-2146309124,1948973694,-92372986,-955943617,130630,1183319178,1975519994,-25263154,-1962576896,49019974,-1956723061,46292453,-326413056,8711297,108432214,-150840181,1963196423,112646,-16735255,-2037515148,-1202651266,-397410177,-2037557945,-397344898,1183404994,1975520254,75399942,-161057792,1946225220,138709765,-1070923029,-8616311,-1978770293,1010770951,-15436797,-1912636234,1358921350,-1605320661,-467001669,-14488752,-1912636234,1358921350,-1609272065,-467001669,442272592,1059325834,91556668,-350206837,1354771202,-2091899416,1962935422,-59441400,1596476314,-59441362,-8485235,515612752,-397351894,2122535910,-1071971842,-1956718345,79846885,-326413056,1447619715,-1962510709,133628508,192153600,112726,-14555056,-1962885143,1200292444,240618252,-1984412023,1962916438,54573064,-485496752,1347469355,1345650512,-1201733808,-939637111,64582,-150840181,1963982855,-49915,2122537077,141885438,972965515,1416887366,1342177720,1354516109,-231681,889191494,1347469355,196632319,-15305536,1102579828,1183666179,-1070903108]},{"sector":4,"data":[328880208,-349282520,-25263167,-340036097,141885211,1342390712,1347469355,672373328,1183526495,-28377090,-445267957,-150840181,1963196423,75399961,-15502081,1136134260,1996443651,1354771204,672373328,-1956762017,79846885,-326413056,10546305,-1962647925,133628511,1467222016,-16490869,1183647863,1602965680,604473882,1963670591,73304840,-350206069,1354771202,189835240,-1954777920,2013201502,1619430908,1337479423,2095599616,-1337553581,854085654,-1337029308,1343668483,-10451315,-40114096,-857190370,-1957893309,2013201502,54835208,-504633264,-10451319,1962934077,178226,-1337553584,1622605648,73305087,-1070909441,1602965584,207617794,393592843,-16490869,1183647863,1354256560,-639086592,-972756200,-1962889146,2013201502,-1337553412,112720,1620220496,-443863457,180829,-2081649835,-1588198164,1183394868,-1960973314,-208929698,620905611,1284227072,14778626,-1983837384,-1705835961,778011663,-385976577,1183403156,1975520252,-443851050,-1957313699,82609132,122063446,1183441962,140413950,1183463307,-1962637050,1149894214,105155842,1354771280,-771864949,-102215456,-443851182,313949,-1275051,-401733514,1996423274,108461832,-4790258,313949,-2081649835,1183450348,-773576186,394720,-1191295351,-11534335,-2019885450,-1995705343,-1072956346,-2087057035,722203649,-15864896,1996487798,2045251078,-62485505,-899816053,-1957363710,108462060,1107982,1342177720]},{"sector":5,"data":[-1710852353,200540635,182877,-2081649835,1448543468,-1962516853,38112063,-1946401143,113673207,1015224299,-1206946816,-11534335,31169076,80153588,-964493312,-62485758,201084671,1591702976,1575324511,1426064074,-326898549,-1957275900,-422508938,51142283,113673015,1946172547,112655,-1707802800,200540635,1223,1342177720,-1710721281,200540551,-15992693,-2087057547,-351538175,207522586,1183522699,65065222,109021656,-16091393,142016309,1581341416,1575324511,1426065610,-326898549,-1957275902,1066077278,-788111733,108104675,1996436735,142016266,1581331176,1575324511,1426065610,-326898549,1996430850,1106503688,-28931776,-16091393,-11532170,-401734026,-443809963,445021,-2081649835,1448542956,-1962379637,1066077278,-788111733,106531811,-398983394,-1992277571,-969146810,-259325325,-972398965,-16711872,-1923937162,-11468988,-401734026,1600061301,-899816053,-1957363704,142016492,-1946503704,142082008,-1610189057,-467001669,1340663888,313949,-1275051,-1746400650,-2585606,1996425335,108461832,1565565672,1426065098,-326898549,-1957275898,-461371322,1944604799,-135230470,-2147481530,2089498228,1996445448,-2106287610,1048587871,1946164923,261773062,-2094112892,1552616646,-1995994366,1183513158,1010771194,-148736761,67172934,434883700,1460173963,-1710852353,778011252,515587712,1460040704,1602490266,-1956684242,80371173,-326413056,-402229505,-661915126,-1962385525]},{"sector":6,"data":[263258695,19261651,46816512,-326413056,8711297,138840918,1350558848,-1946556952,39619568,1059391371,408832,121454708,1028420608,125042698,1946159933,-1922765997,1183385158,1354771452,-8616307,-62485168,142016336,1347469355,-15966209,-2037577612,-1605304452,-467001669,1323100240,1962882539,108461832,706657184,384323812,-14357687,1996425332,515612678,-397351894,334186682,-1207405313,-11533501,-1070922122,328880208,1580097320,-899816053,-1957363708,-2031320596,1183536640,2145681414,-112662448,1552674955,621251330,104661055,1027961856,1215561735,1946159677,736519,1407927412,-1980086643,1962933318,2055638280,2142785791,753422336,112719,2055638352,1183666431,1996443900,1354771206,39619408,-1962123265,535558726,-402098945,401295394,1763414,1962873323,54835208,1354771280,328880208,1580097320,-899816053,-1957363710,49054700,1988843095,-28915964,1962868736,1206708232,91537419,-335657333,214336286,-1946269953,1066074716,1059440523,474368,-940112267,-697039872,1593835448,1575324511,1426064066,-326898549,1996445186,-126031862,1962930315,676043272,1962880607,50378760,1354771280,-1962518901,1347553350,1596461978,-443851218,445021,-2081649835,-11140372,1206388342,-1948742664,-1705637769,777988171,1575324510,1426064074,-326898549,1996445186,-131536890,-1202261877,-397344769,1962932619,-2079352312,-1956762017,46816741,-326413056,1443032195,-402229505]},{"sector":7,"data":[-259262462,1577600139,-899816053,-1957363710,49054700,-83040170,425603,1996435316,-136255482,1200347275,-28931832,-259270517,620905611,17577984,-1958747008,-511638964,-1056194560,1392658313,1602490266,-443851218,182877,-2081649835,-11140372,-1545074570,-1012745,1169688692,1996443651,1354771206,672373328,-1956762017,80371173,-1957326848,351044588,1988843095,38046478,-1996226523,-1923680698,-1705971130,778011446,3046531,1149961588,-1207702750,-125042689,720717450,-297367068,15746759,205949696,1963065917,39446787,787022710,16923909,568918901,-385649148,87885044,1026126848,745799687,1946159165,998720,99156852,-1799858683,1962889328,1354771248,1602514074,1558730286,26536197,723534987,88730066,1080451,-2081881227,276102913,1342408376,-1070910209,1860784208,276595457,-385649408,1962869098,59226128,2122573291,259391242,1354771286,-955680792,11844,-1962848791,1144588870,-385648864,-952433508,-1779891339,-397388284,870910651,1748384001,-385649635,1190527274,57958410,-1962860055,1451951686,-62486264,-2080483703,1962942588,73853187,17450742,1575551861,-263290876,1748384001,1443918877,1596441242,163075630,1989824512,-164733181,1952451142,9103619,676043350,1183460959,65284861,1183391300,-159480840,-1978371072,-466944954,-1949160632,-146721204,-295241743,-1946663423,1144649798,-954960096,389190,3046531,1317012596,-4255504,-2122650625]},{"sector":8,"data":[33754238,2117674869,958559736,1964861494,668834314,-1717948833,-13738237,-2135420812,889147395,29016107,-186035712,-125945346,1317012597,-4255504,1996445439,165538040,1149908971,-12175351,-397015437,703269470,940262538,108199750,166783062,1149901803,-28952568,-1679228045,172263936,1929266744,28857864,-1159180288,779911946,957969408,343155324,-1206881025,-11533440,1354771252,-1695516929,777988115,-385875528,909770345,-713745048,32525952,880082774,1594062490,466264110,1980318776,-269986281,155486729,1212736554,466226826,-1053037270,501984118,941345440,611781444,158394454,705381514,-1975500572,706464270,2009152493,1149982348,1357435188,1594062490,-8525522,942261664,192284740,112726,165668944,-1593873687,1144531397,-385649142,1424621407,1748384255,-385649635,-577109300,-1708237017,777978777,-1206881025,-11533440,-1161811148,-387383294,-330905602,2088960000,57999392,-2147310615,-1962741682,-1073018298,20788596,1026257920,947126274,1946157885,277803,255669620,-2093452288,1962994814,-16914173,-327745706,1342177720,-385545752,1191182063,-1774612,-538186674,-1980873077,-672404410,-135379317,-1946883112,1143670342,-1250530,-2135420812,889147395,45793323,-1706012160,777988115,2089005547,57999392,-2147342359,-1962741682,-1073018298,736691061,81407,-1863777419,146942,54334580,1023964160,292814852,1459521257,-382176001,-11075972,149502068]},{"sector":9,"data":[734497791,-294193198,-1962522997,-295241782,1183432963,541342188,1149962103,1183402016,1996445420,-32118292,174843990,1459513833,-16091393,-538442122,-27465462,142016342,722106111,1996443840,191752198,1459505641,-16222465,-1964504458,-29562610,142016342,-402229505,803802409,-372798466,-11076455,1996425846,258402312,-1946383127,1149831750,-196703688,726197290,175568850,910461256,148727,-385649406,1150025214,-330921708,1149950091,-2000617980,1149895751,-2000093690,1149896263,122128391,1200146686,38243077,-1950351323,-511638961,-1056227330,1392658313,-1959559192,-461372860,80511037,-1958747008,-511638964,-1056194560,1442989193,-382508056,1190657446,1946681352,16181507,148727,-385649280,1996423404,142016266,-402229505,1317066331,1183515632,19086602,1702319988,1946165309,18955565,574428532,-2089061119,1946220158,-21239549,-294191274,-2080488983,1946220158,-21829373,-297366698,-380577545,1187511854,-1090513680,-1202257921,-397410303,350815576,545031165,-385649408,727121163,-924233536,545031164,-385649408,-1957233413,-347594684,19152364,624810868,-385649407,641596786,-385649407,658373808,-385649407,675151055,-385649407,-11076434,-857208202,1958742791,-54400765,537558659,2122396786,1929445386,-55449341,339552491,-385649407,356384240,-385649407,389938535,-385649407,4062396,-385649406,20839291,-385649406,-1070859387,1039864041,58000195,2012952553]},{"sector":10,"data":[33766690,1860764533,54541819,401146741,54607358,384369525,54672894,1005126517,1037036542,58000196,1040072425,58000197,1040074985,58000198,1040069609,58000199,1039843817,58000200,1040057577,58000201,-335681047,-1956684131,181034469,-326413056,1443163267,1443133067,1358710413,1602434714,1183667758,548950268,1962889216,-2060150224,2088971871,276037664,1354771286,721372810,1962889444,9889822,518230,1575324510,1426064066,-326898549,-1957275894,1157039222,1946550274,1183667825,916082940,-147955837,67109444,1183462004,-96040705,1183441962,541363190,-137221304,-125045130,343211847,1464909867,887331408,1962880607,574917396,1995952683,636178678,-1977582453,-466944186,-8128469,-1090290431,1962868737,1354771220,-476426153,-13738188,1962873972,112670,890739280,1600007775,-1034033781,-1957363710,1458340844,1988843095,645201674,-1995597848,1451883590,611647486,-1995600920,1451881542,201785078,944016170,-956676471,-385746874,1183449366,-230258680,-2097091863,1946166908,73304872,2126832593,25896692,1034831497,359989247,380782221,-1371108528,-1946401277,1347616342,-348720408,1996445203,-196702972,-62485168,-1303999152,215345232,380782221,925362256,1001408137,108410436,-1992932213,-1974030266,-466945978,-230258096,-1303999152,-1334378672,-1708100353,778011819,967853707,779368004,45106826,1183381574,910461610,-1996995070,1183493190,-1421440782,1183367422]},{"sector":11,"data":[1183667885,548950186,1962889216,-2060150224,1183526495,574896388,2088973685,796131374,-17283446,-1438218040,70665218,-1404663806,-1997388150,-1057051834,1454196360,1353336461,-1957642197,-864013756,882528258,-13738107,1191052358,105286386,1945257528,71731987,1981826105,-16520957,11552455,-9639680,-29997942,-129630016,-375157,-1072956850,-571931788,-1161238274,-443850914,574045,-2081649835,1448546540,-150440309,67109444,-11138444,2078803574,24176897,-1994505077,2122576966,125042692,1354771286,1442970600,1358317197,1602434714,-112817618,1183441962,-196703234,1224623619,-1947056503,1174603334,-62486028,50742923,1183445574,-58817542,-955351808,64582,1224623755,-335919479,541362972,1929004601,1183402004,-28955654,-62486208,92127243,16533191,-62485760,-1980479957,1149961798,-96061150,1183516019,-1962152966,1178149444,-1962510596,1149893702,-62485726,-1960950647,1178203206,-1956808964,1178202694,-1974111236,1177222726,-263813114,1354771286,-129594800,-1974410198,726724678,1183469760,1357130246,1602607514,-263812562,1459046024,1358317197,1342185656,-1708100353,778011956,720848522,1459129316,-28931497,-62485680,-397359357,1693187460,972310155,1349974598,972179083,1215560262,-150583669,-263812904,-125049814,1354771286,-129594793,-1974410198,1174537798,-1070903042,-644198320,-1976672379,1183379526,1183667961,548950262,1962889216,-2060150224,727068255,-11054912]},{"sector":12,"data":[-1544815498,972310155,74775622,-62003114,-57677738,112726,10414160,-443850914,442973,-2081649835,1448545516,1443264139,1358579341,1602434714,507808558,-1963440503,1183382854,-1947981066,71732168,1174659575,-28931592,125681675,1183432747,-1960645634,1178148932,-1977781506,-466946490,1150023819,1183402016,-137221132,-1981286409,1183579718,574917108,-1979824501,1183522372,-28952072,727061620,1183469760,1357130486,-1979824501,-397402556,-396952440,-1202258951,-397410303,1599995912,-1034033781,-1957363708,216826860,1988843095,578587398,-96039594,-2093573552,1157049951,1963196418,75400023,960328704,259464828,721241738,946141156,991839235,-1976993849,-466944698,-1959238409,-936697780,1005997705,-1962445873,507808193,2089354219,-1170309090,74711070,-79566762,1143654283,-79263714,1183367422,28858109,11528448,721241738,1183382342,75400184,957969408,343285372,1183441962,734497782,-159975470,-1980340489,1122704964,294531,1183467380,-136041731,1141061732,2009545502,-129594824,1183441962,734497782,-159975470,-1980340489,1149967940,1727481912,-196703754,958284939,108524614,703874699,1048583748,1946164922,-1192733180,511454202,720914058,-196703772,-768882805,-1997244681,-1023476906,-1946331512,-137221177,1284174966,-155058634,-96040735,70665218,-62486526,-96040362,1346429994,721110666,-291876636,-2144444538,2013758,-1923735948,726727238,1178161344,-1962576892]},{"sector":13,"data":[65745476,-2144320373,-1706032436,778011956,19809479,-1956684288,79846885,-326413056,108432214,956581515,108339780,3046531,727061877,-2115481408,71732222,1445086345,1342177720,1593734120,311901,-2081649835,-1957296404,-1923742602,-1705968570,778011446,721372810,946141156,1209943043,-2080749943,1946168956,574917416,541342528,727064435,904417472,574917630,992101631,225835590,112726,1354771280,-335809048,28857864,367546368,-443851010,180829,1458342741,-2096859509,1946168956,578585381,1444901888,-397361109,1150025204,575471394,1964917819,-4696563,-1070903041,-72030128,-1202321173,-397410303,1566506452,1426064066,-326898549,1988843014,38074118,108265984,-5445546,-1923732757,-1705968570,778011446,721372810,73856996,972703369,91431492,-339727530,1149982215,-96064734,-17700784,1575324510,1426064578,-326898549,1988843014,38074118,108265984,-16455594,-1923732245,-1705969082,778011446,721241738,73856996,-1994243069,1144651334,1443395360,1210074251,1443162960,-385976577,-1956708697,79846885,-326413056,1465183363,108432214,16271047,75399424,91619583,-152453077,578587392,3046531,960956532,41361532,1962934059,119990310,-1980086647,1962933334,119203876,-1980479863,2122380886,209477892,2047114880,1854080639,317399044,2131000963,1183452278,-397371388,-1986510390,2088961094,578027558,-523122805,66346692,126559960,1039025801,242548735]},{"sector":14,"data":[-1946532349,1183448150,-229209616,1465263595,1358186125,1358579341,1353467533,-1928961304,1183427654,-229208848,2122320363,276037804,-990886145,-1977159586,-1404663801,-361615300,653287108,1183319946,2086747372,2138717194,-328302586,-2146309344,1988095102,-330921461,1206407320,-330921919,955008650,208995398,-1461168298,-129579011,283836417,545012039,-13958537,1948417081,-10819325,1593329291,1575324511,1426064578,-326898549,1988843012,947684100,1444508928,1358710413,1602434714,944031534,1183449089,1222912766,910461256,2522243,1962875508,41785894,1962871796,41785892,1153895412,-956301274,9284,1149878315,541362462,-1994242935,-1202311612,726663169,-291876672,1580097414,-1034033781,-1957363710,1988843244,1996445190,1354771204,1577059816,311901,-2081649835,1448546028,-167217525,1963000388,1962890764,108461856,-352321096,545031029,1443263744,-347029461,645201764,-1996124184,1451883590,611647486,-1996127256,1451881542,-96024586,1149960192,-129595104,66733707,731510854,-1946627646,1996431096,-991899386,-670829474,50826022,1452014662,-397389058,-1073008872,1166870654,-96040703,2122908651,-129594376,2096776761,1996445379,108462074,-11485141,149423222,-1956684288,113401317,-326413056,1460857987,209095510,556675,-14808460,182978678,48971823,1183432747,545031156,-1201376000,-1202716670,1385759232,32873040,1149832180,1975520038,108954377,-382765824,45613449]},{"sector":15,"data":[1622691840,1347590400,-201198182,608471307,376815627,-1708755713,200540797,2507975,108954368,-385649408,1153892701,-956301272,7748,2770119,742704898,1153892400,-2097151966,1962944124,108954387,-385649408,-11140811,1307052662,19654915,959202443,628236356,86275327,-768933856,-757997359,45633618,-1248178176,-1995705342,-1072958906,1149486964,1149837356,675580708,66471561,1144779846,-14257622,1149970036,97659690,-770506496,45633618,-1248178176,-1995705342,-1072958906,1149277044,1149829419,142508838,-955812608,-2490,1962876651,67561510,-1980873079,-14749610,1183516790,-297401354,1996443730,760015092,-400263937,1183384552,-94991880,956974731,326574148,-14656373,-472833980,-1946648892,-1993935290,-1958221055,-523171258,-1946663421,1183447638,-262764050,653156036,1962884995,89149988,1347551234,723534987,-523171258,754509904,-1960819457,1144588870,-16353762,1157570116,-295779294,653674123,-1923741815,-1705968570,778011446,956974731,427236932,721372810,507773924,1913275963,75399948,1443263488,1602490266,-196703442,1579697153,1575324511,1426066114,-326898549,1988843036,645201672,-1996277784,1451883078,611647484,-1996280856,1451879494,105286638,1174659281,-465139220,-991537527,-1960385442,-364476153,-1946532349,1347615830,-1993537304,1183574086,-398064662,-1946532349,1347615830,65685131,1347615302,724059275,1177283142,1005080808,-398030036,-1960295383]},{"sector":16,"data":[1452008518,-230258202,-1946921335,1144587846,-1961331680,33944134,1380995584,-1947044097,1177231428,1356910854,-13891096,1187455052,-352321282,-28931288,1174659281,-296317972,-1981528439,1589962326,126559972,1005602441,108194374,652756523,1191118729,-28931074,1998603321,1183667920,916082934,-2094112893,1962942588,1085822481,-1070903293,-1706012592,777988115,1183528427,507787526,1291783286,578585374,-16550912,1149968972,574896416,1291780978,511476514,-1978633216,-466945722,991839235,58073156,-1960948481,1144587846,-1978042594,-466945722,991839235,208799302,294531,-1705638284,778011663,1575324510,1426065090,-326898549,-1957275888,1962870902,31647782,-1979955575,1962933846,30861348,-1980479863,2089023062,578027558,-788111733,-193018653,-1996387546,-12718010,51344639,1452014662,508580606,-402360577,-1923732645,-1705969594,778011446,956712587,1584864836,721110666,507773924,1980122683,105286225,-2011282390,-1202261434,-1974468607,-466947514,74907472,1358954424,1342179768,1602530202,105286446,1965179961,779911973,-1977650176,1183380038,-2000617735,-1923679418,726726726,1149980864,46956594,-2060150192,1600007775,-1034033781,-1957363706,1988843244,645694214,-15043584,2107254388,-15993854,2107253876,-955517950,9796,2376903,71731968,1998603321,1149845508,-1034068448,-1957363708,1324123116,1988843095,545030920,-2096729088,1962946172,106859274,721422278,-2089096256]},{"sector":17,"data":[1946166908,645201713,-1996436504,1451867206,611647422,-1996439576,1451865158,576490422,2126832593,25896628,-1950595581,1183432278,-1168733768,-11134741,-1070914956,1183666256,1021857984,-1069118208,-1934080375,1996470870,-1200160838,1076528360,1001539209,108397638,-1996208501,1996468806,-1200160838,108461854,-390957313,1183525310,-1956684284,113401317,-326413056,209095510,1342177720,-16484609,889129590,1347469355,-2095424257,1946165372,645694214,1443787776,-16091393,-1070922634,82333776,645201915,-1962927128,126420574,-16623735,233317492,140413696,1468598153,-1034068478,-1957363702,75400172,721777920,216766912,-1710983425,200540832,-1070873973,180829,-2081649835,1996424428,209125134,-16091393,1996425334,1633196550,1183395423,-27883012,-899816053,-1957363702,175570924,1342441144,503740159,-1710721281,777988115,445021,-2081649835,1996423916,67614730,108461904,142016286,1596461978,-28931794,-899816053,-1957363706,49054700,1988843095,108956426,-1995946357,1183390276,138839038,-1948742886,1200162886,138838800,586121992,542663,172476160,1204224000,-956301300,3655,1591238,1656774,102123463,-16267520,306694143,1204224000,-1962934252,1183518815,105351432,-1946263925,2139689055,-27358460,-955228277,583,543078486,1354771280,-12392434,-443850914,445021,-2081649835,1465260268,524224246,-2095614975,1963920510,1543948041,-385876193,1187452405]}],[{"sector":1,"data":[-385875736,243271698,-973004993,-956239034,124998,-1995546997,-1960889826,1117985351,-1967115489,1193937479,523674376,705382282,883099975,1109297951,373787423,-1977665373,1084364871,1040631327,1200291871,173509384,-1994438493,-1558230506,378085196,1200299854,240618252,-1994436445,-1558228458,378085204,683614038,276269855,-1515911394,1488954533,41389343,-1515911394,127527077,991897249,1931433990,525902595,524944955,1252197235,1376140063,-1560055009,-14803118,-400609738,512436265,-1019535572,-1014299790,522888008,524551878,205949696,1962936125,1543948084,-2130706657,-81838042,-1207297816,922681345,-1706025166,778012534,524289782,-1593019135,1218649898,1342621471,-402653153,-488039723,68107525,-1444410251,1543948043,-369098977,87885265,-1961921280,1200295518,-2147474174,-370653559,138216893,-2143193856,69156878,-401899544,116787645,1948262208,668834314,645934687,870260544,842465216,1989824543,-164733049,18825222,113708149,8008,525993671,1793589248,91744538,1963199549,172919580,645926883,-16965824,-400604154,1592334929,1074692101,1458111007,998661,916529781,1510343455,738605855,-1592888801,103489324,-1555554506,652746586,1141308954,87025951,1963198013,922689091,1996431150,108461832,505856744,523122431,-1557721880,1201282858,992894760,1964978694,522887436,-954251101,2052102,176063232,-401968128,922687969,1374166858,83159316,1946421053]},{"sector":2,"data":[8513795,524289782,-1590856447,1586175786,-1019524342,-1986854538,-1960908730,-1910559178,2123040838,64523014,130426591,106307072,-1552297,78375205,524426891,-15120394,1183659380,-329347600,-1913762163,1397811798,-1310174639,-297366776,1978680889,-260636902,-1280257,1996483190,108461832,-401967361,1183390793,856419304,106874048,-1996486714,1592387654,67386628,2112358005,72608026,1963197757,-339725564,16989448,28843381,1109297920,427786271,1342862336,-400919320,787028257,255649796,1023682793,108331269,-384078872,71107613,-15960831,-1092089226,419424284,1023675625,208995329,-401967361,-840426323,66840841,1963197245,-263811783,-1913889139,1452142158,1364414698,134670418,-1947181429,1452010062,1002451950,1242330330,-1958608413,1086532546,-1947711863,478743158,-385723255,20775869,-1593150205,378216272,-1360453816,50347267,1187448693,-352321526,67124485,645943669,-1946476736,104532550,225713994,-402039832,922683301,-370663606,639535890,172395295,24560443,524985235,-1960881501,1352861254,138840863,-400602973,1218517073,1342605087,1208387359,407103519,524551934,1023626473,863305986,-1962391925,134261208,1187448948,-385875736,2425653,14909698,173443844,16841345,1347553395,-385521176,1347552029,109897811,1023612137,1551171861,1024083595,108331008,-350835736,20811844,-402230016,971707977,146832,149423733,-1875973354,1962935101,383313926]},{"sector":3,"data":[1032856555,628424708,-1962367000,-1960892914,-935655866,-1047853705,-1555562013,1252204376,1141308959,1040631327,-1226243809,64350466,1946227773,-1870927101,1024083595,242548736,-16776776,1344223798,-350829080,20811866,-1207012096,922681345,-397402310,1206589197,146832,28839541,909573888,-1612165089,-1875580138,1962935101,112654,523646719,384297040,1032856043,594870276,522983051,523638315,990267019,-1962773822,526033858,-31504221,-971029498,18824710,-385731351,54330195,-397380350,-739768475,1209961232,1993882399,345106448,-1612184204,-402033644,82514953,524854160,-400843800,1386288150,1241921823,-1559464929,854073162,522887431,-400602973,243275485,-2089152,-1709231562,777988034,1023532265,57934337,-973039639,-1962806458,-1047919026,2042629016,-1950338302,1243559446,24560187,-163149422,194561418,855800256,873892800,-1036301793,-1986920074,100922438,-661971112,991906465,1393128664,1527209960,524951177,66471563,-1960879610,991898654,-1828556093,524854088,648136843,1958742815,1241922315,1963489055,1208083202,-1340126557,172422656,-1342016252,524198401,203374752,-1568725920,922689344,-1030086862,-382836953,37552445,-1609272062,547888960,-551286156,-1709227870,777988061,1023485161,141820416,1946228541,16509187,-768353485,-1979298165,-1986881343,-980748714,1586074520,524329204,523636363,2080438915,2110864150,873368338,16483103,-650442372,1074529661]},{"sector":4,"data":[613417963,524329663,141893800,15222471,32631040,17450743,-1466928128,55997504,-1994434530,-1960883682,100922950,1218649946,-1580692705,-1073012954,104532852,142024522,31654517,524985160,524289782,-400526208,82314701,-1592232941,104537928,259268432,-1880619662,-402068718,57938690,-401445656,1877677409,-159480944,-1207010048,922681345,-397402310,820712586,-163148912,523634233,28839543,976682752,-823635937,-1877349612,16023171,-672659843,-1878136046,972310155,1998533638,317908995,-16776520,-1706029450,777978742,1032855019,309658626,-16222465,1996424822,191490058,-370653559,1187447079,-2147483416,2047550,-1981283468,61925401,524566144,-402426880,116788985,1946296128,8644867,1596475290,839269166,-1577945825,103489352,243998554,237707082,922689368,1364205362,1602678426,-1946211538,958349878,712249980,186590881,1073837504,1460827391,-476424368,-1959895244,991906326,1998530070,112653,1376941311,890739280,2084122207,-1591446508,103489324,460726070,1460958463,-476424368,-1204920524,1962868737,1513553684,395989023,-1959895243,-1608564194,1200103232,706644760,775326495,50719,524426891,-1994439263,524853511,524949131,-1995946103,1352731223,1377209119,206014751,-1961994359,683544703,-1526260193,-1918589531,1488847487,-1526260193,1252107685,1309031199,-1593215713,104537928,494149452,523378315,185616267,1343386816,1342247352,1342177976,1397753739]},{"sector":5,"data":[1596461978,1059487790,1190592031,141885427,-1710328065,777988171,870860427,-1956749358,181034469,915101184,76226370,1344226723,-200129126,522625803,-1961862005,748880967,105351967,1579101859,627792323,1349796218,-126239108,1819928186,2071286131,812738420,1484013931,1097949297,1063985524,1417377131,1500683131,40794987,712712828,159099762,762608385,560886529,578516225,595349505,611951873,628727297,662393857,645512705,679147521,8069633,560724736,577504769,594284289,611945217,628718337,662316289,645522945,679215617,8104705,325843712,-1988922999,1904825201,1685693700,-1522239067,2035811705,1165580389,1645771096,2036496505,427385432,2004447863,1920424306,1820230156,-2108916094,2038108798,1383693170,-1962706565,2039178105,108628803,1933994867,1802724971,1097562369,2036427641,1800994923,-1947432107,1451951686,1976699652,1040631301,356253983,654270580,2134646622,456938868,440223092,-1959102720,786105304,1774295039,1016088555,1007252016,-402294989,921370812,-395688005,787153105,712126524,645346108,-352280600,1947024417,1946827797,1958742545,108461837,-972560664,18824710,753404139,-402396407,1172834386,79846656,526426624,-1553270344,362422110,-1022626767,-1205903198,1587768044,823499295,-1564275724,-675799200,526295914,-198109798,1040631307,-1597833185,-466477216,1040631499,31981599,-1070415104,-1205903198,1587767998,823499295,-1178399756,82510856]},{"sector":6,"data":[67746243,-768360397,523378315,1360033791,-1705881008,777987992,524158662,179946240,-337366524,196723681,-337366524,-2094087207,175374399,1946630958,79921925,-13700885,784532055,1946173312,121253386,-1014823564,787540739,-1023322113,-1947432107,-771029418,113640821,-1157554370,2122541559,57933828,1399464891,523636363,138840923,1577037800,-973076798,2047494,15222471,28885760,-397389568,-1195175814,1347485697,-1022309144,524426891,-1592176758,378216266,104013640,372449106,-1039458480,1200145418,1958808089,525246769,524816011,524944953,238618229,141827916,1245118288,186837023,-1960880479,958353422,1964986886,1410218246,-402426849,-3997695,-14723530,-400601546,-389870848,-1679288972,-1957313537,-1588111636,512433994,243998536,378216274,-1053089968,-633665419,-628683918,-1053095957,-2020539534,141986778,-1996194165,-1961522916,2123041398,-1996191482,522625293,227220619,41343035,-935656311,92865142,-935603661,2123040117,991267080,-1962576424,344523894,-1034068385,-1070399480,524289782,-15567871,-1709226698,200544813,91537419,121759824,-1010824360,-402616088,74776540,116113459,522718851,1438859265,922741899,1996431173,108461832,-1710983425,200544900,-59905968,113401176,-326413056,74877782,524289782,-1957727231,1543912390,-1710525153,777988167,523372091,-773309324,522625280,527812155,1979679720,-4183251,1444889910,775356240,296393247,619187188]},{"sector":7,"data":[705087484,1442840607,522991359,523122431,-1543533336,914956074,1566449500,-16776510,-400602570,1438908311,-1070338933,-1962824797,104531014,1299652390,524289782,-150047743,18819078,992048128,1964989446,522887451,1073851299,523122431,28260095,463857744,-1558239071,501940649,104586035,1939021606,922702604,922681773,585630127,28025855,-1448886221,46292225,-326413056,-402360577,-1381892203,-1425659135,548950017,-1415491584,-1358560511,-1634054143,-2094938292,-1034090812,28835842,116871168,73512,648100212,1543912223,1479570975,522724995,1161232382,1547108127,708247327,775356191,285579807,-397407244,-4654273,1543931903,1508397087,1543948041,1493171999,180600843,-402426414,868417537,-1563872320,-1975509186,857682190,523346625,-2017486255,1438854751,-326898549,-162048508,18825222,-1662515595,21358853,1979595752,524984824,-1577171319,1183391560,-19142404,294528,1252069492,-397393889,-1415446827,762658817,922734827,922689326,922681775,-1662509270,522887450,-16667741,-14726642,-14726602,-14734282,-400609738,715390493,524853535,522847787,-1202709642,-1588592608,100867886,-1706025174,566709406,-1593391997,715333448,522887455,-1960884061,721529654,-1356952577,1962281729,540639241,1313277045,-963906581,522847747,522981003,1992375113,75399210,-15371008,-16666826,-14733770,-402543818,-1415505381,522887937,-1543616885,1183522634,524854268,201272297]},{"sector":8,"data":[-1592625930,-956104273,522887504,523109891,-253209008,708182297,334010911,45616116,1161232128,1245118239,-1113960417,-401869808,922745331,922689349,922689354,922689322,-1432740050,-401869807,646183387,-939647192,-14722042,334404351,-924316684,-56628999,-2146602776,2049086,-4715659,1245118463,-1981263841,-1956749561,46292453,-326413056,1443294339,1979508712,1074198026,108331295,-385599768,1218511166,-62486241,-1994437983,1525217862,-52107012,715254132,1208367391,1344041503,1493263592,1190581876,208994052,199754723,1241972494,11528479,-1962871063,-1960884194,991899190,1931422238,540573704,-347929739,1209960946,111470623,-1694611831,200545256,524629759,526137087,524826367,523122431,-200211046,-115742709,524828291,-1593281536,1347428168,-955907096,2050054,-25263360,-1207208960,1996423200,-397389570,1183515974,524854270,524945151,524629759,524957439,522860287,523122431,-200168806,-120461301,522724995,1543948286,-1694499041,200545262,-151470360,1979647046,-62485746,-1960884061,1252260422,-1588925665,100867892,104537944,225910602,525862655,-32750360,-350272506,526033215,524813881,1218520957,526033695,-786483551,1510357992,-955746785,2054662,-2082936064,85940798,780398974,-351985830,-17462,524947083,1363739107,103475283,524158662,-443851263,180829,1342177720,-1006725400,-397361101,-389808497,719849912,522887676,91537419,-351787032]},{"sector":9,"data":[1208403727,-385876193,1218643386,197388319,1208403907,-402653153,1455623097,-78714793,829751472,-1325626392,-399870975,113769169,7978,526124743,1252130815,922697759,-11526331,-14734794,-1709232586,200544682,-137238448,1606421080,1218560862,1511951135,1942174495,1209960708,523542815,525862403,1241921864,-16091617,-31500282,-350272506,1243515658,1347635999,-1023052824,524289782,-402230015,434831923,-8394608,2129196404,705596411,-402136289,117378086,-1444405430,116835327,1946230592,522625289,524944955,82314613,-398988542,846592676,-200021862,-69277685,-200020326,-146151413,-384792,-954250746,2050054,-105584640,524426891,18433990,1342177720,-401856280,-389870891,511048300,-386271000,715258645,525378335,-1946579480,-971029986,-1207887545,-397410303,1455623169,-386279192,1047853666,524826251,522860091,870845043,-401968128,276105243,-352275992,1208418085,2156575,65795956,-1593335320,-661971128,524826249,1397802539,-16532504,-400602570,-1017248544,523116171,524819971,540805002,-326412861,-303540394,-2147060231,1962935422,-1872499965,-397361109,-135787631,742296569,1048596255,1962942257,990309122,1948199486,1212037954,-1975749089,-1147665338,243924993,1347624753,45672529,661962763,524814079,523646603,526005763,524826169,-1070920580,523908863,160163920,922684651,1642602314,-402396412,1583284443,180829,-116922282,1962512872,1211534146]},{"sector":10,"data":[708197151,-1592233441,994582310,1964984838,11921413,28845291,-18329600,-1206129670,1346764801,49735766,526005819,-1561852547,-16258295,-400602570,113640464,1577131838,-326412861,1443032195,72286039,1183432755,1245118462,-103815137,524828299,989965217,1208185592,915142795,-150797905,1327723591,1771713791,185332839,1308915136,1206774607,-11595660,1734974004,-1073017868,1330513012,-1958285845,108971223,27989563,1183522163,71711742,-11397773,1734974004,190450676,-1408731968,-28901462,853404482,1183558336,-1956749314,113401317,1354773248,1602920346,-1957313746,82609132,-1928956161,-1924071866,-1705968570,777979442,1342186424,-231681,1183579766,102144764,599273055,1575324416,1426064074,-326898549,-1990765040,28376662,523306630,-1577499000,1183391562,524853756,-1912977783,1586361926,-196178446,1357928077,-397258413,-420939824,1974517496,16678531,1589517940,-163148930,524944955,-397409164,1005123691,200837890,-402295616,-131399066,1005995659,141947974,-551704,-1874596906,15761027,1325335413,-113841932,-1544141173,243277642,-956162240,2050054,-2687232,-1960883706,104592454,-344776886,524297856,-62485507,-1960883549,1218705990,1040631327,1520500767,906363679,1208367903,-402295009,166397969,-624897,837350518,-112817662,1595879842,1575324510,-396929341,-1410795743,-2092075785,2050110,1048777077,1962942282,725478146,585650368,-1590301703,-1073012950]},{"sector":11,"data":[1948207265,25749507,29292683,1212037376,-402164449,-141885010,-11079637,-400603082,908656892,-1427628216,1245118215,35317791,524158662,-1017225471,-136058794,524826367,-1962145304,523018736,1945123656,705596168,-350231777,-26089467,803740907,-1156090633,-963968992,524813867,523308682,-397323440,914948102,-1017241784,-2081649835,1465254636,-1962379637,-1591793090,1043930952,427695944,-1202665685,-1588592608,-956096722,1285462608,-998039097,1212058374,523018527,75399240,721712128,721742791,991905798,-1962773562,2130054128,524853579,523109891,-2130819447,1946158206,1212037407,-1961525985,1208363975,1958742815,-27358453,1407058771,320202832,200015363,52381857,2126986182,1459129090,-1744419190,-25755824,-951279974,113541921,522862217,1583335051,-1034033781,-1957363706,49054700,1183536982,705047300,990608927,1416824390,688145961,1048774214,1946165034,108954439,-1589545984,1178148650,856125958,522888128,1178153707,723940100,1183384646,75402238,523124227,1177274251,-336557306,1191545350,-1958345592,1325399622,1975520254,105286640,522847785,-443851169,311901,775850839,705596191,1107999,-1957182625,-1962823874,-402543858,-1017184254,333693323,548407070,-1359749237,-1070922635,-947190293,-1018641621,1218533206,705596191,-402398433,-259260482,524959371,-1072969845,1464799860,-1946794776,-486429938,-5052177,-395065797,-1144824225,-1070858241,32002896,-1957313792]},{"sector":12,"data":[-162048276,35602438,1988835957,75401990,41350971,244053895,235085620,994647896,958495950,1998542910,1479948571,-1962641889,991909942,-1962314801,1443228665,1174408168,-143198405,-1034068385,-1957363708,351044588,1988843350,1074198020,57934367,-1593738775,-264560808,1877541747,872809217,2009479967,23390467,103532171,1183391576,149444350,1074198262,1215628319,524426891,1671040,1183661684,-94466564,-1913106803,1397814870,1642615377,969313268,611843142,2012759609,-159481077,957969408,343275590,972572299,376765510,16402119,-163133696,183238655,1183432747,-96040458,512428011,1200234306,943622937,1975519775,1074198045,376701215,27854583,242548737,522597947,-1705572237,200545122,1183527147,526820346,526663305,737560203,1789131334,1251628831,-1557241996,113713000,-57490,527187593,527435463,109969407,1183391588,523805164,-1577826679,100867894,1183391578,-230242322,1586167808,-12614676,1183525236,-230278674,1200300403,2147427586,-1578088823,1178148698,-1960610830,1174532166,526033394,1945257529,-347280635,1183551569,1510353906,-263812833,-1994433887,2122576454,863240432,-1947435381,523805445,-1947044213,50442014,-229733389,525995563,523384575,-25755823,-260636842,523777791,1602530202,-263812306,-2081274367,-385553338,1183580028,523805684,-443851169,180829,-1577791512,1252204376,-974601441,523543028,525862403,638487368,1992375071,-1547597054]},{"sector":13,"data":[-389865654,113767596,8010,-402341400,-389872703,648148124,524985119,524814023,-1360527360,-1477917949,61335556,-1950338109,991906334,1931421214,-203167738,-1558238559,-1897390264,748798723,104548383,41361224,117382123,916528968,1510343455,1208367903,722106143,976682944,-18329569,1381417730,1492364520,192570814,-1107069760,1218542188,705051423,-16485601,-1591904810,994058058,1931421190,524985107,-940342040,2050054,11921408,-538246539,1577265384,-210769725,991898273,1998538758,524854019,1962941672,524984598,259309579,524985160,-1577889560,1218649898,-387585249,-389872903,91488289,184561640,703120356,1304576,3664067,-1023389720,1946176488,2877445,-1580997621,-1073012920,1676151668,-16354048,-350271474,1218561006,1958742815,5302285,251594356,-286580920,-1580997621,104537928,259202858,1946167016,1208418054,200076063,855829476,1218560960,705051423,-401902817,141885451,524814079,-1070338837,773753795,1209926431,1342671391,-194549350,-1010824437,523116171,524819971,1342671435,-194549350,-1010824437,524289782,-352160511,-215554016,-1960879967,186599966,991065307,-402426408,1048772844,1946230580,1242496772,116835103,1946230592,-218175446,52376737,1210013702,524944955,1860698997,522625280,524944955,1048776054,1946230580,1241972486,-1023349985,524828291,-352160512,1208942359,526033183,524813881,-1070921091,523908863,18147408,1074198211]},{"sector":14,"data":[41222431,-1444401941,1480492018,-193724385,689910945,2032097286,1476839174,-1593835489,103358260,108601162,524945095,117309440,1455628100,524289782,-397577215,915141236,906174260,648093528,1925593887,523542843,-1161221304,922681345,-919396558,922702161,882974518,1364215839,1342177720,1602607514,1476853550,-773302753,524984827,525862459,117376627,15408970,-162086050,18825222,501761140,1479969778,980962847,-242751402,523384575,-1202599629,-11534335,-1591790026,1346903860,-644198063,-1993449595,1444894774,-1577351192,100867928,104537908,108470090,524947199,-1017249557,524289782,-352160511,-238098386,-1960892767,52376590,991909902,-1578339384,100736820,100736856,648093514,1241922335,1208252191,-31503709,-1021361146,-2081649835,2054718,1273692789,958356129,141952582,525993671,132841472,688277131,-2145428986,1946158206,524853527,1980122681,1208403720,-352321505,105286407,524813865,52377249,991910406,1998538758,526033158,-31504221,1562330118,1426064578,-326898549,1510902530,1209436959,523018527,523378315,523634219,1183385726,-28427778,904594039,50742923,-28951615,1183516530,-339178498,105286405,2122369027,91488260,50742923,2110864336,-1580168446,-801431764,-1958214798,1141309136,1209436447,1510902047,1575324447,1426064578,-326898549,-162048508,35602438,-437714060,875989760,-772878049,1477348334,1242991391,1943091999,1943419680,-339135740]},{"sector":15,"data":[734104336,1942109126,-339047676,734694148,1477347790,1141308959,876514079,1341719327,477362747,-972830837,142000699,-953433461,82561027,-835990901,525864585,524551934,525995659,523646603,-288231727,-1994442079,-969147322,914949238,916528954,1220608799,-1946270071,991905854,992245455,855929854,-1961563191,1002843073,-1962510649,-338809905,735021830,-1994442226,-31499762,-1591786490,100867894,-952426662,748759671,906373919,1992768287,-28931304,-952383997,983632758,906373919,-339279073,734497540,526033862,524551934,-1543747957,1583292218,-1017256565,512475187,507191114,108207910,-386973464,1218705582,-1545026785,186217710,-401246977,1218705566,1992768287,197626626,1342534848,-132454320,524158662,646169345,-939647192,-14722042,1245118463,-114366433,-386201624,1438843732,-326898549,-297605110,512450933,2139103042,1416888345,-1912846707,1317927518,-162099720,1381061456,-1947354136,-971029986,-1962927801,1178204230,-1978370564,-467008442,-231681,1996487286,686313718,-2095191296,1962997374,-129040637,737691275,-1975452602,-14023586,1358722815,5367891,-1962743832,46292453,-326413056,294528,1996426356,142016266,-402229505,-538443555,138841069,-1591785309,1178148650,957707016,58066502,-1962522999,1177224774,1996443656,-145823738,-130840,1911032438,146955768,-326413056,294528,1996426100,108461832,1946235880,-289478603,526124743,922746879,1996431173]},{"sector":16,"data":[108461832,-200229478,-367400949,-1559738741,-1142415542,525902334,1929922105,138840838,-400598877,117374381,-1034084540,-1957363706,149717996,524426891,1671040,1183663476,-60912130,-1912975731,1397815382,-1243065775,-96039956,1979598393,-25755890,-231681,585693302,-2095256832,1962997886,-95486205,737822347,1346436678,1492006888,1358853887,-1962893336,1438866917,-409277301,-401869804,12118419,142016257,-16353537,-759561098,263934465,-397389056,1654849553,1627833887,113639455,1560354608,1426065090,-11080565,-119009674,175541228,-1593018837,103489324,359931690,2144336,522887504,523109891,1285462608,-998039097,74856710,1988822135,-167031292,1183519604,772145932,-11526625,1996425334,736646662,706644745,773718815,509471,637951684,-1962934074,-1034068282,-1957363700,-1957210388,2123040374,-409319676,-401869804,770435311,522597947,-454546829,2028492520,1570391788,1342960660,306551376,-11531276,-14734794,-1709232586,200544682,1958742936,-797618427,-397359989,190376119,-972262208,18833670,523241158,-1710560511,200545511,870883048,1566465984,1426064578,1465314443,1961613288,11200771,-2147189109,2056510,-16055180,1048798836,1962942306,1979648775,9365763,-200021862,1354771211,-386047768,-291836986,-401869805,922740823,-16048312,1461586292,-1777794840,-1962153186,-1088462282,-759496689,548950785,1347442176,-1946909208,190405616,1393325302,235085399]},{"sector":17,"data":[1448156974,-16241176,-400602570,921433660,-200021862,1354771211,-386070296,-291836780,-401869805,922740735,922689349,1570381642,1342960660,-200016998,-404101109,526124743,117374975,1583292228,180829,1458342741,-1962641781,-137221178,1075788854,524035831,46292318,524067072,-326412853,-1559869813,-899866820,1218510850,525378335,-1558230367,12787538,-2081649835,2122515692,1182007304,-1962385781,1183388743,1975520252,105286414,-350992503,-28931303,-1946401143,1200356446,-28931822,-311050229,-1996077429,1586172487,306693894,-1957494784,1200293982,-753946366,75240,1586172651,468754694,-1961736311,468755395,112720,266866256,106859264,-1995946357,-443871161,313949,1458342741,-2096603509,453052030,19218624,-753946368,-1946973216,-444595636,-1983837313,2013200967,108461844,1577059816,313949,1458342741,-351897973,75399973,1086331649,-1325399771,-1948200177,-444595636,-1983837313,1962869316,74907412,-1946167832,-167046540,1566496629,1426064578,-326898549,-1957275900,1149961846,-28931824,343261195,468727353,1149962357,468755218,1049306859,367729648,-1946263925,-29682561,1149963125,340232466,2106265323,309672210,1150023797,306546962,1066183,306497280,1599995904,-899816053,-1957363710,-1957275668,2123040886,21349894,378368,705119370,1166542148,105155075,-2012986326,1157038661,1946222594,57507850,40730626,-149624062,67109444,1308492660,38074115]}],[{"sector":1,"data":[57934336,1577209342,80371039,-326413056,175541078,33834122,1149765702,88377862,-2012854782,-397015228,1566441512,1426065098,-1957237621,-208992162,620905611,1317781504,1072005126,1200210187,99111682,-899850752,-1957363708,82609132,74877782,-62485162,1508380240,71601151,-1996073845,1418266692,38074122,108265728,-33012482,1149897028,-28966392,-1979038584,1174538564,189040895,1575324510,1426064066,2122574987,309592070,-1207535873,-397410289,1586209805,343408390,1048776939,1946164208,317626892,922693215,82320368,46816512,-326413056,1996430571,1030148,-1545607088,-16490869,-387443593,73305087,-1995290741,2122515526,-562757628,180829,1458342741,-150178165,16777796,1996434548,71601418,142016336,620905611,20775424,-137815296,1149981145,67118338,452985149,1373239241,-402229505,1566474036,1426065610,-326898549,-1957275898,2122518646,175505160,175570718,-1996123928,-167049146,1183452021,1357130254,-351517046,138709578,-2012330494,1149959750,205914633,-1963178360,1144585798,-1975683574,1144585286,-1976207861,-467006908,1183512715,-96040450,50873995,-952370618,-947189642,-1980086741,1183451206,1357130494,1358710410,-16091393,1996425334,-2004883450,-443850914,838237,-2081649835,1996424428,175570700,1358710413,184559336,-1977846592,-466944954,-45708720,-28931504,-12154288,138840656,108461904,-1954029080,147480037,-326413056,74877782,556675]},{"sector":2,"data":[1586172533,-1962439930,76087895,-1207806839,1223360513,-1979162997,1586169927,-2012806650,140413700,-1962391670,1191315038,38045698,-1979162997,1586170183,21430790,-1962851192,1200228446,106859273,-2013051134,-1957297340,134547526,-1705619456,777990067,113401182,-326413056,309758806,58062347,-1979666199,1174407236,155486728,-1979300352,1174407236,155486736,-1978776064,1144522822,-385648886,1183449258,172242960,-1612119177,105286144,1997227064,9758979,940459658,58133316,-1979676183,-467007418,705449610,-1967062035,-1053095348,-1047918478,-2012723670,1183452230,-1964758512,-316011442,1284161795,1925266186,717326856,1183322182,105286156,1317725226,65874442,189565633,141738299,1177207178,172394502,705578634,172919524,-1056707286,990596234,-1979157823,239479489,-1979038072,-467005370,239503952,205949520,172395088,138840656,105286224,-1975719856,248143198,-326413056,1443163267,-16091509,-1923740554,-397345722,-1072955745,1996428660,-62485240,108461904,1342177720,1354771280,1585247208,-899816053,-1957363704,82609132,175541078,-62485162,904400464,138709756,-2012723710,1149900356,105251337,957826184,1964860982,373590558,-1974410198,-145746108,1073742404,1990264180,721611551,-174436160,1580097295,-899816053,-1957363706,49054700,1714850646,1962281757,373590554,-1974410198,-145746108,1073742404,1990264180,722004767,721742784,1347440832,1594881434,-443851218,-1957313699]},{"sector":3,"data":[1988843244,108954376,1086331649,-1325399771,-1948200178,-444595636,-1983837249,909705796,510991718,706102410,1149915364,1157058583,1950351362,527868165,-1070923029,267754064,1566453343,1426064586,2122574987,91488262,-352320840,112643,-400591197,-899809432,-1957363710,82609132,175541078,705185418,1183319108,105286398,-2012920790,1183513670,71600136,-2012854646,1183450436,105119998,16533130,1183450948,373555454,16533130,909711172,510991718,706102410,1149915364,1157058583,1950351362,527868165,-1070923029,267754064,-397005217,-1956709496,113925605,-326413056,-16454525,1996426358,-62485238,-49158064,460636171,721176202,1183469796,1183469821,1183469822,1996443903,108461832,-1962206744,147480037,-326413056,-16454525,1996426358,-62485238,-52828080,460636171,721176202,1183469796,1183469821,1183469822,1996443903,108461832,-1962185240,147480037,-326413056,242649942,477427211,541834,1149897798,172359689,940328586,477497924,940197514,343280452,705447562,1183469796,1183469578,1996443656,-2064521210,181034334,-1957326848,1988843244,205949710,1946158397,998666,28838772,721611520,-338547776,1354771215,1996443734,-11513846,-420799908,181034334,-326413056,-402229505,-661931450,-1207404545,-11534321,-1070922122,328880208,1563320104,-1879047478,535572223,535834367,536096511,536358655,536620799,536882943,36553099,66061056,-372113928,1945937395]},{"sector":4,"data":[-1538832893,-326412861,-661891242,1317781646,141986564,990281355,-787189001,-777653271,-1952123951,1174603334,1566465796,-402651454,-269746242,1458342741,1992629847,108971018,-1945874805,1004244160,990148035,-787516681,-777653271,530904017,-1034068385,-1880621046,1442114559,1465314443,-1064380276,-1962510709,1317734526,-1408638204,1958742698,1341710854,1605025842,113401182,-326413056,-1004644522,1992624254,178957316,536507840,-1034068385,-1957363704,509040364,-989299004,2126776438,870288132,-17984,-146690318,-201618471,-1966525530,975634244,108330821,1229521522,-1047801353,1566465823,1426065602,-1000870773,-1070398338,-218103879,1086426030,1566560503,1426064578,1183575179,205925134,721837707,-470349730,294531,1586170996,207497994,-2084371637,1317732562,206449418,-235470109,1560823299,-16773950,-14631378,2146862,-2081649835,1448542956,-1962379637,-30210434,33605623,280499828,280514560,-1957277695,634451910,-1706032640,777980180,67160055,297277044,297291776,-1957277695,634451910,-1706032128,777980180,268486647,-1850206604,-1850191872,-1957277695,634451910,-1706029056,777980180,536922103,-1866983820,-1866969088,-1957277695,634451910,-1706024960,777980180,1073793015,347608692,347623424,-1957277695,634451910,-1706016768,777980180,-443850914,313949,-1006910470,701368006,-1205744384,124911616,701367864,-1019215499,-1259566251,-1994273489,-1944094690,-1960871418,448006230]},{"sector":5,"data":[1451958733,-1948611834,991955975,-1205220346,141819904,1317752500,-4397052,442973,-1259566251,-5183409,180829,2014758174,-853887969,1438850849,-1960907637,-628423594,537659275,701236795,1962934200,1124120591,201295336,-18240,-1047854476,46292255,-853953536,-1019149279,-1964209323,-494926762,1105887455,-878702924,986250793,-855477040,46292257,-326413056,1988843350,105286148,-2013208795,21284612,1955421242,740591619,-888784320,-1979288535,-850938672,1566465825,1426064578,-326898549,-1528277502,-28931585,-2147191157,1966735740,-1707802858,778013809,510967819,-1880607489,41713919,-1961659392,1001653334,-997514803,1996425331,-8853250,-1956724685,46292453,-326413056,1451933747,550141958,701240890,431234676,-2142232115,246702570,431235533,-919395891,24494650,246700609,-1047846451,182877,1458342741,74877783,503742091,687912967,1583292877,311901,1958742700,1949187094,1193642514,1950350464,1960851975,1240160259,-471471287,1193642511,1950350464,553418757,-236786827,-326412861,1988843350,106859268,-1191084147,-1075314680,1958742783,159354129,-402652231,-997457998,-1034068385,1200226308,1950301193,1948269809,-339725331,-326412821,-1962649973,201821146,-872006880,-1206029271,567100160,270866034,-1961659136,1065419870,141897262,2139145355,41156610,-1034043341,-1957363710,149717996,-96025002,205949696,1946160957,-385649101,87884358,1026847744,57999366]},{"sector":6,"data":[1023508201,125042695,1946159165,-1961104535,2013204062,59160592,725090128,-1706012480,777988115,-401705217,28836428,-1961497856,1200295518,4138242,1946157885,277772,-1070864267,652857899,241076994,605964170,1946237955,172422869,-154176255,1946689095,-1946973215,1149902964,1006838814,970159105,-277541258,1586214123,276299534,1342408632,-1070909441,328880208,-1959895256,1736445534,113769246,7526,31123539,-1559345525,-2031411866,-16091393,1996425334,-1732384762,1024083595,443809824,1912677693,19283333,658321014,-385649919,675151736,-383420927,1586233200,508032526,-385649660,1207435084,1971322882,-12392189,69095296,-13113005,33179334,-1961992565,1059390023,146688,54347636,1023964160,1031012370,-1946209303,507808499,20710180,1157039988,1971322882,544508689,16416384,1183516788,541341966,-1705578635,777988171,148727,-385649280,-396951832,-504822672,241077246,605964170,-96060925,-773258379,38270974,58032128,-335624215,493396279,1963869753,668834309,1048587871,1962945572,-22091517,740558534,242679552,1586216427,508032526,-385649404,2122448536,1946230794,-24188669,-2136675501,2892862,-2115435659,604423934,1190527276,57999626,-1946258455,1200229982,1010770946,-385649404,1200356964,271646,-1946663287,1451951686,-62486264,-1946265975,263619,-28931504,-1974410198,-1705967802,777989982,158646283,-2146541941,-352051633,241076999]},{"sector":7,"data":[-81893504,676043347,1586179679,508032526,1393718276,1596441242,-125926610,-385649408,99220994,668834558,1996435039,175570700,-16222465,-1041758602,-35067497,1963000125,-12392189,1963000381,-27727613,1963065405,-11802365,1963065661,-11671293,1963065917,-16652029,1963066173,-12719869,1593687017,-899816053,-1957363702,1988843244,38046468,1023426341,427032578,20788855,-350718464,529702974,1444941218,1344277688,-352217624,314070574,1458891552,-352310808,-1799858654,112742512,1962889216,-2073257446,267071071,1946157885,277964,306045812,1590850560,180829,-2081649835,1448546028,503608971,-400919297,1183447541,1183667958,916082940,-1976672381,1177222726,-2013123332,-466945978,2012628539,-196688375,-163149567,1183453419,736373496,-784271802,-2000617752,1149957190,-196738552,-2146024312,2013758,-1192688779,507835904,-1207602172,267059208,148727,-1207602048,65732615,-1962933064,1183667960,548950268,-1705553920,778011956,-196703658,1464919082,605963402,453065732,1373239241,-167681560,1963204164,1715372907,460652573,-401574657,1183384164,1959148530,1958742868,314069075,1491619840,-1958089984,-1961007586,2425415,402668856,1207308149,309608194,604129162,1946238015,38046217,20725540,909713268,477437286,-401574657,1183384092,1959148530,1958742796,129519624,283660288,1228544,149444438,-1956684288,46292453,-326413056,1443163267,1443264139,1358710413]},{"sector":8,"data":[1602434714,-1070901714,1018712144,1996443648,-2001102332,-1974063521,-466944442,-1070903224,4110416,74907472,1602795930,-443851218,311901,-2081649835,1448543468,-1962510709,1157039230,1954545666,440325,79168491,-62486272,52315382,92931189,1149899243,1006838814,-1979353854,65733701,-2013182582,117374534,727067148,-1974447936,1352139333,-1694730497,778012857,112726,1354771280,-1728166262,-59310256,1602795930,45635118,-1070903296,54889040,1996443800,-2001102084,-1202311585,-11534332,28900470,333991936,2089609216,-33012598,373590208,-443850914,311901,1458342741,1443526283,705185418,-1070903068,443875152,1358954424,-1710852353,778011819,1604739,1048590708,1946168439,38074162,729055232,423922262,1317725226,65874440,-1070903103,407145040,-2091850710,1946158206,1226757,1183515627,-1181069306,1580097416,574045,-1947432107,1200292958,206110,180829,-2081649835,1448543468,-1962379637,105286654,1023823615,-920977407,1317591543,507874044,-1053162716,1166743156,720643102,-1983837203,2122522181,74711044,-51189673,991985035,1590326782,1575324511,1426065090,-1957237621,1149962358,200549406,1149830726,75399966,1443263488,1602490266,-1034068434,-1957363706,1988843244,509902852,38074107,-2146929648,-2147410316,-188828,-2135420812,889147395,1347469355,1596461978,-1847044562,-1034068228,-1957363710,1988843244,343182084,1149967339,939533570,1964507197]},{"sector":9,"data":[38046221,20725540,-963967883,1955269099,1979058962,1589652449,180829,-2081649835,1465254636,-1705983949,777978151,-1593948535,1178085894,-2013039094,1183451718,103216652,241076778,-1023148238,-259268399,-1979416892,1311377998,-1964166642,1177029702,512630280,1364601322,64666194,-1975615434,376700957,-99306245,-126563074,1963501804,1963042825,162065651,-73008268,1499127522,906180190,1325279752,533427464,-1694599425,777978151,-443851169,836189,-2081649835,1465255148,942278304,58067526,856311432,664424640,-1993449727,1183514182,103216652,241076778,-1023148238,-125050671,-1909846109,506063366,-1979418939,1311377998,-1964166642,1177029702,138840584,1375553160,-625323433,1048589827,1946164618,347405078,1959591674,145288440,27789685,-1460866187,-1510247415,1524556539,53893471,-30799810,-881522610,921799455,705642123,-15960321,1465257590,70713142,520042026,53878752,-30799810,1325272134,920745469,535043839,-1694599425,777978151,-443851169,836189,-2081649835,1448562924,-1962117493,-16055170,-24444299,175570774,108461911,1353729677,1604019354,1958742830,108954436,186151936,1443263734,1602490266,1962818350,1962871562,261773062,-2094112892,1946159230,-156637152,1183666328,-991407952,142016502,-1928825089,-397365178,-11533764,1944585846,-1956684285,180510181,-326413056,1460333699,108432214,-939624823,64582,-2142895637,-93052868,973175936,76158837]},{"sector":10,"data":[1905938584,187588492,-1974504256,-397371388,-964430250,-335639806,792559633,1031800180,-1928956580,1183383877,1031817212,-2081786624,1946221694,21269797,1962690105,-61931773,-1963172213,-163149817,-956807544,-397017081,1586230881,-129594628,1599997832,-899816053,-1957363710,116163564,1988843095,142510858,-939884919,65094,16533191,106859264,1991,-2001974549,1033389829,376700970,1946169149,3816755,1060967284,1023898624,611582044,1187502059,-352321028,-29062448,1905938584,187588492,721712576,-1958941760,130483806,99287041,33441479,-92370688,1962949760,-25263183,-2096270080,1946221694,106859271,67527,-92864738,505419960,-208279472,737822347,1590035399,1575324511,1426065098,-326898549,-1957275902,2123040886,1527105030,92799979,76171078,184436360,-957123136,-968401659,1599995909,-899816053,-1957363708,82609132,108432214,294531,1996441972,1354257924,-790081536,1877497346,-28931840,-2098702818,-62486029,2122575875,192217342,125091851,1180435654,-241921,-1202321290,1177223248,-1595387652,-397009406,-1072958631,28844149,-13702400,-1202321290,-397410224,-397016441,-1073020890,116123765,1946172544,1015039494,-2131397330,125108284,-970062650,721420612,-443851072,442973,-2081649835,1448542956,-1962641781,2105559038,74734591,720093227,1965899136,21334550,-968489848,334182916,1946172800,1191545355,-2142894968,-260743875,1180435654,-1207958330]},{"sector":11,"data":[1599995905,-1034033781,-1957363710,216826860,1988843095,75401990,16664263,1183667712,916082934,-1976672381,-466945978,720785034,-1983829011,1461648454,-1980587800,1178334278,-2096007428,1962999422,-2012902857,2122578502,628557820,16678531,1330584436,1328416198,1328416198,1328416198,1331430854,1329202630,-1996863862,-339244283,-59866337,130515719,-768373,-1072958386,-2142828684,1969028989,-28915729,-1628766207,-443850914,311901,-2081649835,-1957295892,1187447926,-1979710978,-96040956,829734922,326449724,-1728101238,-1938711984,-1073009057,28837237,-2140017920,1948973694,-92372747,-2131790785,1948318334,-28915963,-347734016,-25263162,1323005184,1949973632,775717077,2088767605,175451903,1543816774,312902,1015070955,-2147126180,376778556,788495488,2088765045,-1435226370,989822080,80127092,1996443136,-217585660,1039943305,108331007,284968694,-1070873995,1575324510,-1879047486,-2081649835,1448544492,-1962379637,1149961854,939533570,1963458621,-11053555,-1835400074,-382836896,1149960347,939533570,1966604349,112645,-1070923029,-1946401143,1183390788,440699896,-939899255,6212,1033373066,1182072823,359972875,1946189373,-94467304,-1963309313,126371589,1979207423,-94467105,-352319546,-58817716,-2132642560,1971192189,-638892285,1177274251,719882758,21334729,-939269078,1192774793,2122560235,-1116405508,1177274251,719882758,21334729,-939269078,-2095559543,1586168519]},{"sector":12,"data":[-96010246,-350222394,75400103,1443263488,1602490266,-1956684242,113401317,-326413056,1459940483,141986646,-1962508661,2425412,134233400,4004980,-1962052592,1183390276,-28915716,753598464,1996445526,-980490236,1465266411,-1710983425,778002604,1183524075,-28952316,1586173555,-62455812,92800906,-28901561,-2130944373,-495648705,-1962932794,1600060998,-1034033781,-1957363706,119429100,-1979154805,1317733958,1605038852,442973,-2081649835,1448546028,-1961986421,1183390276,205949942,1946158397,998666,28839028,721611520,-372102208,1157038298,1954545666,440325,79168491,1459129088,1464909867,-2073257392,-1923731873,-1705968570,778011446,-62485162,2144336,882530128,506355589,-386500865,1183379413,38046708,1946173221,81250,37582708,-1973521408,-466945466,1458718345,1354771280,-1963559169,-466947002,-1415948464,-2144444540,2914110,2112422773,410813439,-385649408,1157103476,1971322882,-9770749,423922262,1174660138,-1070903054,407145040,-1202658262,-1706033134,778012857,-956347415,-352257466,-28931422,1312475274,-1979484428,-1054149554,-335919480,-28931442,-930421718,1995722298,-196179453,-1054085846,-454301487,-443850914,707165,-2081649835,1187448044,-350216962,-27358453,-352237686,-28901597,-1963041141,-62486521,292864010,939804298,-378143674,472761227,1946265632,71731928,1575324568,-1879047486,-2081649835,-1957273876,1183386694,-16520238,1586170950]},{"sector":13,"data":[541032460,-11274892,1183647350,-627420934,-1993449579,-1072967610,2122530164,1282736378,1352943245,-1207535873,-397410288,1183444926,-268900190,10649219,-14805131,-1696070026,-1947169810,1086719582,-397213443,1183445339,-1568767070,-2095745792,1946160766,-373282043,1187447185,-956300806,2118,556675,1996432244,-1789552116,-14799265,-14757258,82366582,-767128594,-1982839159,1187449926,-352321284,106859282,1948925824,112645,-1070923029,-2080618871,1946160766,242679562,1342390456,-7601944,1085803126,-152547325,-58817653,-2094042112,1946160766,-1538880215,209125200,-397361109,-1072959726,1996428660,-1035563762,-1105532848,1352943245,200225256,-387222080,1183706934,1996443860,-265492272,1352943245,1344280760,1342181560,200203752,-160467776,1964030278,-58817760,-2091354880,1946160766,-733573806,-1035563696,-264116144,1131724811,-351373569,-1031897033,-2146274002,1946207102,-1015119822,-2147060434,1946207358,239504166,1963607609,-1035563756,108461904,1603697562,175570734,-351897857,175570695,1354909325,-1916957720,-397368250,-1072959838,-1477930635,106859502,-402651194,1352199891,-402229505,-14749969,1055393398,212461,1996429172,239504138,1963607609,549894149,-759692309,1239961632,1996431037,550221830,-991408098,-28915988,-28931519,1905938584,187588492,-1961855808,1183450718,38242558,1393194751,-21160984,2122382918,-646030594,1577058744,-899816053,706609162,724244761]},{"sector":14,"data":[1653820,67305985,939984389,1010514489,4144701,134744064,134744072,404232208,404232216,0,33619968,335873027,976828423,1044200507,-65473,84345169,35213312,0,202223616,18874368,1342178562,268960281,-1207959552,3599,84345168,36392960,2056,67547136,20971520,1342178567,134742578,-1342177280,1543,84017410,270094336,0,101169152,107872256,1342177539,4121,-1207959552,1543,16974924,271273984,2056,67549184,71303168,1342177539,134746162,-1207959552,1543,-2081649835,509018860,37653294,151775232,-1946204536,1731725406,-972786685,-1996423354,442469149,239569710,-1996339831,-1959918523,1166610503,1200238088,-12174846,-1175911563,-28916224,172357120,-1340246976,2139106818,125044482,109019182,-33196757,-28931896,-1286401356,1527827760,-1976638414,-2146696633,-164228915,1954286151,-1900006646,645932736,-1199635321,-1064435648,105351726,-1574516482,1173749892,1651835402,146018992,109019182,-166431463,1964771909,-1273712559,-25264112,-1341885183,1393472529,-58008782,281874868,2139106907,846541318,537544182,62401652,-841272559,64272912,-285013576,-1326511440,-1205932277,-661782464,4982471,113647424,-953089916,134251782,-1880613120,642107145,-997523456,-443850977,313949,771767480,138891,2081048566,405603701,-167122176,1952451143,50136323,-121536,-326412853,2123061078]},{"sector":15,"data":[-854608888,-2004933616,25004037,1852870,771764920,138891,2081048566,405603701,-167122176,1952451143,50136323,-121536,1166665937,-855395322,172853520,-1064380276,2106447755,-1070391796,1354684558,571652,-1960860173,1117859578,574982400,-92269174,-167349184,1946290759,-1900006612,1721771712,524650500,-2146971464,326370042,1946417792,536918030,1967192704,-2084568318,-1979841947,-1813438395,172488192,-402426756,-1202388843,-617410256,281921843,-2000486819,1300766293,71139357,1031803506,-1207077114,1166614528,40207136,-1872630786,-1962913608,1413088886,-1979484413,-487193772,-109048438,-2145159416,326240249,-1292913584,1477496319,125092606,-970981192,-1988092859,1170677829,-352321278,1166643239,40207136,134265086,35556142,172488192,-1962576608,-523165627,-166723579,1946421831,268436739,-1962654327,1566465988,1442841802,-1959917993,-1946156514,-155152680,1952451143,961907981,856692664,16824795,-1959915315,-167771618,1952188999,-1928913391,521020541,-1191169602,-1527578607,1594302230,-1957313698,-1957210388,92931710,376701500,309592892,141836348,1534527548,108201788,-352232728,-1959882639,-2097151458,1946166911,642238218,-1343750144,-955716857,75335,771821800,138891,1074415606,45092980,723418496,-922877323,817042100,484970701,1958742785,494764081,-1205111544,146215186,281926450,-393207573,15205033,494764033,-1206684408,-13496029,-343925366,-1752551923]},{"sector":16,"data":[-617480188,1166676173,-855264255,869763856,-1916760384,1354697845,571652,-91511309,838950282,-1948003841,-338621359,45415306,1300959437,-855526390,1077772304,-1959915916,-167771618,1954286151,3794947,593332819,108583690,196346295,1569329357,2027620898,-1258343930,1527827723,34228214,-1070395532,1166721166,1721902623,64600580,1606716398,46816606,106386944,35556142,-1898411008,172488384,-1928498080,314063189,-1176816880,281870592,35556142,172488192,772830300,2965123,-1207405568,1435308034,118541604,516120159,35556142,172488192,856978435,-1948741952,-2096864490,243270850,-1608514459,-1192360859,29036547,521194752,263456451,2133070029,544539962,35556142,1207318016,292880906,288405589,-919348429,1113395405,1964922170,9562371,1158284682,512437788,-164233214,1954286151,1950366778,914361398,1074415606,860892532,650219209,68167306,607177856,1946627079,-2147373051,-2010714140,906235942,17530752,-1286403980,-854412237,844651280,281891044,32815448,1077739234,-164226700,1954286151,-1900006638,645932736,-1971387257,642260549,906265762,1544177654,92934772,74712124,141886780,-1260702893,1527827723,-335544392,130036482,-326412861,-1960945834,-141882754,12129674,133857464,-92272526,-1190955256,1166782464,108971040,1950415488,150634501,2078804855,-385971456,1844117681,512437904,12058626,920161952,537544694,12456308,134265216,76005427]},{"sector":17,"data":[-492091834,-1323766793,173968128,541559606,-1325352984,173968129,541559606,-1325356056,268482562,771793896,138891,172488246,-1324649468,268482562,-398458690,521535630,35556142,172488192,-1962511072,-1578628482,1583292160,445021,-1910614186,868781017,530969590,113466975,-335291718,-76281688,-1064386509,73769254,-1157630171,133039064,-1070397757,-1591295858,135070821,64535040,1472399342,119584774,-1967652679,66813981,-75493002,-2146799097,91687163,-340787015,-1900006654,541952961,-1410072781,1472421639,-930365042,-1510736077,-164379809,976976,-1012534439,-397344973,-212271100,45138853,-455999052,-1342159896,-1159624188,1088947150,1465303808,12121995,-1312780640,-2168832,1284243251,-205507808,-402542165,-13369392,857754763,-1314131008,-4003838,12189491,-205507824,1595872939,-994393250,124931,15462083,-289109438,-326412861,-1960945834,92932734,359793468,292816700,138152562,1077676916,535495284,-13113264,-1207912104,124913468,58132540,-1951399751,1992630341,-11802618,-393188885,12123929,-977236320,-1959917962,905970206,537544694,12520052,134265216,418096627,2123038897,1166751242,-13572064,2123039153,1166751242,-14358496,12059313,-14882800,35556142,1207318016,192152586,12059313,1073790736,-1929443352,-1193767216,1374162690,-1878725633,536810472,-899850657,-1957363706,-1959897108,-2097151426,1946158718,1173763641,108292106,285656622]}],[{"sector":1,"data":[196744192,1173763584,57937930,234888378,12576799,280502038,141671168,-397210032,-1557266391,-1993474003,-352309482,-1003581415,-1207948002,105906192,1042515,-1557217229,-1557266387,1566507055,1426064074,-1273041781,138840629,106111437,1183458740,72795400,1482301901,113401119,1961101824,284983311,-58709388,773026827,2961151,1107740206,-969998592,-16760058,-16060949,-2010249355,-352304610,512241378,-605355965,1958742608,1959329291,1959329298,-873768939,784827987,3245960,773122907,4275848,102689771,1042463,113651231,788463683,4327110,1373039615,235296598,-1074623737,297336881,128250624,-1017553313,-2131981483,1946158718,-70260731,1609040875,46816514,777475584,147083,1342242792,1526783208,-1191164738,-768409592,38025774,-2077354635,772830236,1946254468,1961101834,1681534479,-2096532474,-498986298,-17697,1583334027,-326412853,1443032195,1049308759,-1175977982,-28931840,-2096728437,91359486,-2115387341,1226752,-259266825,4507265,1460174475,364447518,-205507840,1183539115,1418407678,75771395,-2077357452,74711396,-2147431807,74711720,1073793665,-1976691319,-1976695468,1435043444,106334978,772298121,-2012785526,-2081946539,90540033,772167049,-1995942773,-1976694187,1434978900,1418341900,223709195,-1979711558,-1959915947,1166609476,443910416,1583334539,-899816053,113967108,2105547186,208929290,-1912586056,378152640,-1023541116,-854608813]},{"sector":2,"data":[-494249200,1166721799,191203850,57982987,1426137321,-853933896,1964653584,4241442,1946680192,150700121,548951156,201031680,-75494796,855995404,-1874596928,-1275027735,-854543598,-2133708016,997462267,807670221,-545206268,-1204783872,-109051888,-2145422325,443812601,1946483072,100237333,146280564,66682880,-109049740,-1207733239,-620101628,67961717,1406176000,281874356,1963408475,30049032,1173078667,281212816,1007776768,1009349634,1009087491,-1977519098,-1875973182,64272978,1122897840,-1327461652,-4592026,-318840193,1525604486,141942834,-1962751357,-1878332478,-1072971125,45613941,-1261401600,-841272326,1960512272,-2134212605,1166590602,-1459637238,1396208764,393486504,436254800,440144077,-1272482472,217808902,28582004,-1466950421,1343714563,280171188,-1269296947,1979648513,-2147306487,41223905,-2007300940,-1017312411,-768351182,443875752,376767144,1084768436,-1202712460,281874458,4242008,41212682,-1010626380,512437790,1207304194,359924490,-661733325,73602699,-2130394493,-553360090,73769215,268679406,281926451,-1957313761,49054700,1049308759,-13500414,-1979156854,45353558,12128461,206407712,425603,1435202164,108954372,839021826,39160310,-147448437,1946157575,106269528,-1996589432,-919339178,-1976114806,-420085177,-1039928950,29024465,-25755904,1392473855,-401714864,-919404182,-1979156854,1435044438,-1948153338,1200240157,-1964575230,-775814159]},{"sector":3,"data":[113376,17581510,-16222465,1347553910,1005063761,38636289,281870772,1575324511,1426065098,1465314443,37653294,-36247552,1586183563,73218570,1317745523,1950394374,268941354,-544862003,1988886322,-484669176,3532848,-854583880,839325200,108956644,-1968454006,-1047876667,-485037141,-339725564,1954588690,-1158630152,281870360,-1995934069,1606716188,113925470,448287488,1511050512,112320390,108330762,-906049026,-472776469,-13444598,-326412861,-1959897258,-402652610,1032584532,973758091,1215497309,-1979167093,1967171833,1954588700,64666131,-1158564628,281870360,-1341931334,686550560,-351272776,105745185,1317789667,1373299462,-854587464,-388003312,-1201733741,881463312,-1979552630,281871436,-899850657,-1957363706,861361900,108432320,1929969283,1226787,-259266825,4507265,772308619,-1995942773,1418341909,39159818,-2012854645,-997522619,-899850657,-1957363708,113925612,-326413056,707165,1575783253,-889189686,-326412853,838237,709230592,639908971,203779361,673409831,1731079458,1684892008,1634428517,1851810658,1460752656,1376994578,1494570004,1226265878,1343835928,1394557214,1176585248,1210271522,1260735012,1512852518,1127110701,1110464047,1295142449,2055942273,161840012,1528430592,992435483,1613309736,741563435,792014388,1032007042,628293632,594880372,611787382,2055807364,646806410,680594575,781397394,613875712,563685016,664610203,681583519]},{"sector":4,"data":[765600417,11939,2072541831,0,2055536640,31622,1780386606,-1950338291,-1024060329,218330115,-1024065532,218330116,-1024065528,-2147257336,1439400140,1183575179,341150468,1265943099,6350928,-397227893,-1053097894,495652468,-768389038,1414615122,1515724799,855918219,146995152,-1962118144,-2083260456,313592035,-150987544,1946222786,16820492,548472693,183032971,71731968,1561609609,1342177986,1374499410,1347536382,1342179816,-14841005,-1017619937,-1947432107,27788358,34341492,-997818844,91488804,-863977422,46292352,-1959897344,-1962055106,239585053,1610547200,1958742788,244018,44361809,1975520089,341130011,-253618571,7044483,1166743934,1884654446,-395620865,199951824,-1989261943,-974622635,1606478597,-326412853,-1959897258,-1962055106,179046006,839349440,2156772,1972237547,73173782,1946573883,-402158835,1552483416,583684,1583343851,182877,-919340514,244046222,-645200868,238764353,74777730,75501195,68816443,243862132,-1014954980,126419968,1438851067,777514123,225066635,-1979300213,863904964,650219209,839128994,-1427615516,-899850242,1610612738,0,1140850688,0,-1342439424,25165824,1426063384,13,1342177280,11709818,397410318,4,1426063360,777514123,225066635,-1995809141,138840861,185485193,-385649216,1173749949,57999204,-1929334807,1166614597,440764694,85738889,1166606400,507889432]},{"sector":5,"data":[-21430273,1682278485,1200102795,273517840,1690030643,-855175663,1296774422,1200168331,-1155813356,-1883635706,17688593,1334517131,-1335368940,703240,-401349190,1170604283,1170669673,-1342177173,965398,-401338182,1170604263,162529395,-1174404421,-655879629,9824256,-836844498,126494223,-2006563448,1170674245,-955377566,236347461,-1777928666,376705028,2139299211,242548760,275269062,442648007,1615185678,1566510608,-167770422,1962894405,1682294517,1442756608,872415162,108954587,1124168960,-1960962355,340757277,-1207544379,567092507,-986305309,146278997,908184869,-1207806523,567092489,240502070,-853207368,2105554465,175374450,-770259666,622180367,-350281267,805353633,-848149112,1038124577,812778270,-843054920,170488341,639989220,268781558,364387956,773967157,265428617,-737768402,521018895,-1206778694,567092501,1917713951,1397772995,567096756,56345483,-1945663009,-1269300665,236870181,522308895,773740483,225185419,-1959863922,-1962055106,33325085,1204159605,-58719978,-955747326,69191,-3449057,-118814625,495670991,-485208181,-390057173,1435173349,-1960872602,1547371612,-402033402,259325989,199999539,1468729227,31451138,-402367351,-1017249325,12114739,-1961439915,871593427,1408232384,1751485009,-6503170,578031197,-26712694,-1664811324,-1978769921,-989960091,241041308,1703545972,1577032808,1716882190,1532617739,1341948099,1397761397,509040209]},{"sector":6,"data":[1049308678,-544338580,1782483758,775260941,265166532,-117411352,1583292167,777542489,265432831,1381061456,102651734,1816038190,786402829,225066635,-1003604597,-2146447842,1962963581,-396303355,1170604094,-6553229,1170604637,1173749875,175439717,644236682,1170605960,-1977221019,1715832839,40467840,1508377973,-402396415,1153892636,117440782,1516134175,-816293031,-2132768004,-532905756,1686637172,1961901072,291768323,-469074140,1161431929,-969312918,-352294587,1769832467,-2095811328,2113933948,1766180391,1782941697,7030215,974777088,-311072187,40467840,1284181620,1800243474,7161286,40453574,259340604,6704513,-2134575615,1702954356,184483686,1013937636,1013675064,140997728,-1977215388,1967930407,147125791,-990488459,-2147125984,149619404,1946404086,-538673149,654042240,1005266824,1947001984,-662023367,-511653750,-771641337,-771509792,-2130758933,292817148,1946483840,-1094483706,-2129990897,-351293757,-1631354620,126103055,638022747,-2013263930,-1916574363,1157502581,-402426872,-1916600307,1157502581,-402426871,-1664942073,-1660400386,1291754691,-2084332279,1547371715,-1962773246,-396967140,813039565,1392925835,1006627048,1952121948,-31987683,1166741109,-2016375962,-1036316091,-1070396300,1468598153,-3676158,1552538091,-4986874,-396967074,-76153359,1461633886,1822502480,785944077,225066635,173932444,40467840,-1957294219,306481973,-949271295,69188,526342238]},{"sector":7,"data":[508580047,1364350551,-1959899053,-1911722946,1049308895,2105544042,494207091,829744138,1946287232,50102344,-58689932,-2145225712,963908092,1947401344,-1948480665,-1992946107,1166741063,1200174608,1499158544,526343770,-47322933,276152331,-176827893,7044483,1308618612,1850051435,-345094775,1803387705,-1927580416,1552619125,106707716,1065552500,-401902336,-236191995,-6533032,-2137059747,-594853660,907461507,918497152,116074248,-835271378,-998003697,1515805442,-2095095970,785319108,-1073084534,-1014821260,1975859714,1602891506,-1009054977,1438898994,-326898549,-1957210620,-61437496,1586092851,183907326,-486050323,1031757,-41924373,-2145946144,158600697,1963653504,-28409082,-955403516,33619526,1190604011,1946159356,1959332392,-520519644,-109043852,-2145750008,359939577,1949038976,771325968,-109048972,-1106873312,-370606068,-2140491775,242497533,-41915472,-1341688754,1258127469,1187448949,-352190210,229675048,1948056960,-2145669088,427033085,-41940816,-2146274290,108335101,-880145997,-109049365,-352029664,-371684859,-1047854688,410140988,91707964,-352318274,1918975212,2004499487,-1105187813,-571801588,275906876,209132092,146685956,-28915968,-907345916,203422081,766575733,-108983573,175441694,917752114,83775107,-41897493,-2139721145,1903383805,-1976640118,-2146621537,175497465,1187498290,-352190210,-922054578,1190595701,1946165500,63865666,-41927189,-149260980]},{"sector":8,"data":[2161734,1190601076,1962935548,-62458086,393478147,-352072061,-62458098,125108227,553404151,-1325107968,-1978864896,-1618333987,1187450164,167903486,-2146994743,41243645,-639008847,821657600,-109047182,-1978828999,-62457895,-361496572,-420755150,208980234,1977678208,-943115677,33619526,264163891,-1334791168,1927821883,1157464146,1420836726,973079226,-2142997784,829840893,-1342175042,309854,863168570,1986526592,-1326042336,572008,594733114,1987181952,-1166495728,-398852088,-41937550,-1273989248,47773233,-1966865723,-27915816,-1953475349,-488086947,-1152682499,-622326278,-2130217731,34143822,-2000995093,-36968435,1317209716,787155198,209045770,-401750341,74775993,-353645690,-401744197,141884845,1317271091,250283262,-396337781,108330397,1317271091,-963968258,1176752375,-28963844,-1014312821,443859210,844350858,1976109805,-20215292,-397258299,860944227,495670235,1996431359,-152770308,-443851169,-1957313699,46816748,-326413056,-486125941,343230731,-402601799,216727570,-402305863,-1397161974,321542,182877,1139193520,1122419082,1122420106,51143140,1018782182,79253760,1509876225,1642395618,1642527780,-1900006461,113518272,-1031011220,509040331,-1908642888,-1093103936,-1497423658,833824,1595909619,-1205941410,-661721088,-1073725824,91561761,907526298,-1174353096,121400106,1751795254,1785817456,1819503474,1853189492,1886875510,1786343800,2033285129]},{"sector":9,"data":[2066971186,2100657204,2134343222,-2126938056,-1944351952,-1895199224,-1842966259,-1641507035,-1519673235,-1239112082,-360990854,290525223,323293783,357831762,391452249,424613961,524361296,558112851,591864390,625615944,743188043,777530714,810954563,843985218,1174405197,-2094169558,-1976792771,-1607754194,-232263379,3930159,52101376,238421810,1460476936,1601199629,1634885745,1668571763,1702257781,1735943799,1929996921,1965519909,1998747171,-1927183324,-1826189303,-1788308377,-1708616092,-1654612894,-1540514002,-1384469394,-516890501,-466361551,-415898316,-382146505,-49480647,16777318,237833243,1460280447,-226517750,-163711697,-114821317,-80807380,16777263,252186139,1225595913,1327778337,1411535139,1450268016,1483954034,1517640052,1551326070,-2055643784,-2027387354,-1691908059,-1569808032,-210001030,6747148,236650752,-1693639672,-198270672,16777270,252186139,923606025,1013988202,1047674225,1081360243,1115046261,1148732279,1210337145,1260472614,1327975717,1361596451,1395479074,-1720018898,-1587504261,-200477842,16777318,252186139,923606025,1467962154,-1590650099,3601454,512437760,-1070393362,-166439029,57934786,-167771123,57935042,-167770099,57936066,-880751488,-1947432107,1435173958,1958886164,1625837643,1388874496,989879016,-1961986879,860901917,1364218578,1478491988,71732058,-1023946701,208928776,-738731893,-1324817533,1894418,16827127,11078772,-1324911359]},{"sector":10,"data":[-388199648,1183514634,340101380,180829,-315469232,1371930193,649296,495670096,1482301439,-326412861,-1476114805,201487361,-2038553598,1946297540,-2134887931,-1034059572,777453570,401489547,1204231563,-16777202,-1073019809,62468724,1458065664,-1072998142,1429937013,-501844716,1803387888,-1961263616,1435201093,1800273776,-351979288,1850050827,-395291255,-1058339539,-1957311649,777475820,401489547,-1408862581,125091850,552133682,-1913328896,1552619125,106707716,126553460,-1996248600,149423196,1609100032,46816606,872029696,-1948676407,-1962664946,994132441,1963229710,-2146530556,437140228,-1995803644,-2130437106,-1996226365,-1021314297,1475119957,-297891026,105286423,2116338826,-1047606989,68657702,-397351886,1566572202,385876682,4,1426063360,777514123,401489547,-1995809141,138840861,185485193,-385649216,1173749919,57999204,-1929342487,1166614597,440764694,85738889,1166606400,507889432,-21430273,1682278485,1200102795,273517840,-1766075853,-855175652,1296774422,1200168331,-1155813356,-1044774906,15722524,1334517131,-1337335020,703240,-400640326,1170604253,1170669673,-1342177173,965398,-400629318,1170604233,162529395,-1174404421,-1159193243,7858176,505332782,126494235,-2006563448,1170674245,-954643870,419586117,113925471,1682306560,-956992257,-1207933883,-4565506,-2082786305,1962935934,382550785,-1960998114,1438979151,622573574,753082829,173393206]},{"sector":11,"data":[-853210952,1438987809,621393922,-986308147,381161045,908184869,7503232,-986838412,-1206181354,567092501,-1197348065,1166553088,-2044605070,52313568,12071026,1914031552,1977879081,1207313957,510922757,-852159048,512306721,-1943135454,505095174,918167310,622180381,-31514163,1388540493,901010256,-1014292019,-1981873317,38243335,1512420440,-853602786,1472405281,244002334,-644999184,-297891026,-2145547497,74777084,18237382,1946352768,239585032,1595867137,140509131,1456470251,1334517131,858514196,25487552,1969640843,73173791,1963351099,2484233,-1070395531,126553067,-402499701,1552482686,24307716,-617364642,-850067272,1976797974,-339725325,-1974381585,-989960091,241041308,1703551604,-20644248,1577032900,1751484942,-6503170,208932445,-1670879862,-1961992705,-469014955,-2134680743,628445180,1448170320,772152919,401620619,-1959862386,-1961365954,516173365,1911036702,520616192,1532583519,788475480,1397758754,1465274961,-1959918050,-1911033794,1049308895,898308078,505332782,1920827419,-469404416,4122720,24331718,39714716,7554502,-10140170,1166674548,126363238,6636998,-2012771802,2105566789,91554409,-352257816,12314627,17712327,1595868928,1532582494,-1963143336,-2132508448,175431740,1007707272,134444272,2133070180,192537610,1969898810,1766180409,-2146178304,1962961277,310149908,-970490368,-2013173435,1170696773,-352321429,1782921753,2105601397]},{"sector":12,"data":[242483817,-1995289461,1170631501,1170604141,960234089,1300303733,-167706522,91521220,-10066559,1977879294,1949842446,1952463882,375654406,-1020818906,-32082547,57935940,-1023406616,-32082547,57936196,-1023408152,139263644,-23280739,-1013118644,990167939,41222748,1455627403,1979698664,106728240,-1513389,1527012411,2028477812,-1961986562,-796170683,991053191,856454338,-1995994688,-941096361,-1982206977,-1276639652,1455644415,1979601640,516120315,-1590800297,-661776400,-297891026,1577032727,1769832458,1443853570,1149973899,1799684370,17712327,1599626752,1347473183,1381390110,777016145,401620619,-1959862386,-2145915330,1962963837,1961101853,33325105,-58701708,-2139720702,578031868,1947335808,318537785,-594843788,906904971,-1961998455,-1992945595,1532497991,1600019033,-1897346273,1975520253,1976699664,1803387893,-1084416,1166764877,1850050926,2105752043,460652651,-1961462387,1547371612,-2096466938,192217151,-335608344,-1672455951,-1626448385,-1958681472,381912028,-1087930314,-349763530,918892038,-2085872866,1499136708,526343770,-821771133,168266286,-2096204608,-986053949,-1976634763,-620036257,-1009044797,786074451,-1073084534,-1014822028,1975859714,1334456050,1438866431,-326898549,-1957210620,-61437496,1586092851,183907326,-485984787,1031683,-2130613783,1946623737,2113503526,-2128579577,1946951673,284786970,-2146143177,259267837,1947204992,33390602,-41941644,839152910]},{"sector":13,"data":[-2142245943,225794045,158648586,1317080499,-352190210,-62457925,963969056,1328675201,-108976524,544493875,1228536193,-108979596,74796085,283898805,1428945281,1387594869,-108984597,175461165,1719912754,1317272828,938148862,737771920,-2129759147,1951531257,16351494,-1324976737,-345263317,771326230,-2129759149,1951596793,16351494,-1324583523,-2123517139,33619534,167817705,-1957202487,-222561210,410171927,1962936489,411613980,-1457985862,292880388,-1172766021,61413692,-1157204736,-1967515318,-18814951,1962853864,1794867237,-75490956,-2146143125,259288571,1953430400,1627095050,-75496076,-2124581530,33619534,1102272235,-935706192,-109050510,-1339066790,1925724769,2063171589,28320886,91408442,1981479296,-1338985703,1925724720,972652567,-41938313,-1291357684,-28409504,-1054211584,351000618,-108995790,-2129824736,1968582393,-2123451641,33619534,-789068149,201082403,1515257414,-1056259190,-980805004,183317075,-1979419191,1371930315,-121247662,1406874448,536812939,-386107649,1583347782,-1017256565,1575783253,1426064074,-327029621,-1070923574,-12810615,-12941687,637951684,973176704,45614453,721611520,-1933376576,914786754,949389823,-1202695425,-397410212,-2037836459,-1769341122,-804520128,-1769273484,-348061888,-62470180,82518256,50087555,553418369,-1956939999,939523166,378029709,228845648,-462110710,-13060353,-13191425,379537037,341043280,343261194,-13060353]},{"sector":14,"data":[-13191425,382027405,339732560,242532362,-1953872245,-2037805994,-1769341126,-2037645508,-2046034118,-1535836356,-12941685,-12806517,1996436971,108461832,-1705983957,200571008,201213577,1344042176,1347469355,-13060353,-13191425,-12417395,-2008642224,216551446,-1207637248,-1952907263,80371173,-326413056,1460726915,-1983894698,1183447110,309788662,-15698177,-14807434,1186465910,-442871808,185332860,-385649216,1187447191,-352314882,-28377341,16678531,1586170996,-2082221570,2158271,1183574901,273025806,1586174324,-2127066360,1951288574,-1946255090,-1207405422,-768933884,-2097059095,1962999422,243717,1941500139,2056933376,-1962150788,-472777122,552503177,200296073,-385649216,1996423468,74907398,1342206904,-1005314584,1183515742,126428690,737171083,1200170688,1468605954,-163149564,-1946659191,1451953734,1200170512,1468605989,-1933341913,1508802,1996443730,175570700,-1961647128,931858526,-1836319103,-25097868,57953868,-2130663191,1968065599,41911052,-1207536126,1709768710,73319679,-1928837493,-259314305,-234871879,1204168357,1996423958,-397211920,-1070920638,108461904,-402360577,1183386456,-128546314,-1005422849,-1960442786,-1960415417,1174630743,274076430,582504530,-11526623,1392904310,-1979797784,1451883078,-260636676,-16353537,-1226308490,-58817781,-2096728832,1980430974,-96040184,-335784309,-1715459325,637820612,640239497,-1960093815,1452013126,1200170744,1468605954]},{"sector":15,"data":[-1961366780,1065420894,410336830,637820612,35014598,860342054,1996423230,-397211920,401279914,-385874504,1187511976,-352319498,-163133691,1187446786,-1962934024,1452013126,-1956684040,281173477,-326413056,-16222465,28837494,233328640,80370944,1354771200,32002128,-1957311744,2062320620,139889494,1183433355,-28915834,300622062,-106869,-1975087817,1139298326,-28933365,-25263870,1702306080,8814211,1586170484,-2042196994,-445315271,-106869,-1975087817,-689418218,1958742538,-2008627244,1988820999,-1650296,-1382379406,-15993732,-294025138,378553997,1095760,307292240,294528,1996463732,2090769034,1586170868,-1707606018,200572077,-939630965,-352321529,-443851120,442973,-2081649835,727061740,-297367104,-1292663,1996426358,2209802,300673104,-1980086647,-804520874,1589914740,130426618,209125120,235566847,-1979955992,1451820614,-94452728,653936383,-1960769594,-1030948282,-1995815287,1183517782,138808070,-1070922123,24308121,-1962387829,-1949160510,112880,1827165776,-962965498,-1995705220,1451881542,-962963722,-1995705220,1451880518,1976568818,20769027,653287108,18237430,1183518836,-163181580,-1705637771,200572126,1589948651,1207314160,57999638,-1006587159,-2144990626,57999423,-956260887,63558,-15960321,1996425846,-193527818,1358954424,653287108,623986570,726663169,1810387136,-28932080,-762172,-2144930746,-193658817,-990361857,1183576158]},{"sector":16,"data":[1194927864,-2147060169,1946222206,112827,139889488,-397360501,2122319633,376701182,653287108,54216587,1317795910,140413702,-745813717,1451982315,1354926856,-193143142,-1983894773,1183385670,209125126,-1005947137,-14225314,-14275721,-401725065,1407975074,638213828,-352237685,-262224703,373814822,-1003916286,-2144990626,1031012415,-887041,1392963702,1347469355,1376356840,-262224816,72846118,-397360501,401281202,638213828,1962950528,105286420,721966731,67008,-1996434813,1451879494,105286638,1946699275,139889419,-1705983349,200572126,-1947449717,-1956712874,147480037,-326413056,-16323453,1996425334,-96039674,-62485168,107341904,100288139,-443875324,313949,-2115204267,1442873580,1183432747,-129594886,-1954527607,-1031074730,-2075751088,1793609750,1975519752,14084355,10124928,-2014772363,209125120,-1928694017,-1924104122,-397346746,1451951639,1354926856,-193149286,105810699,-1031026685,-1979953527,1996488262,-1454994556,61560459,1444149318,-11513094,-11403658,-442859402,-1995705220,1190559814,276038042,1869922315,654073540,-1992292469,1676378182,75525763,75646663,-16520448,2122547790,259260546,-1954527489,1992589406,947922684,-1947699906,837517406,-1962387829,-962965310,-1962150788,-939325874,1317651083,-28931588,730101503,-11513664,-1202585994,-1705967628,200572133,-1954527607,-2142830632,654079684,-1962934074,-1031075754,2094963280,2122517492,74711168]},{"sector":17,"data":[125847171,1585464971,-899816053,-1957363704,2129429484,25315014,-1928825089,1343653958,168256744,-385649216,1190527269,57999774,-1207917591,-11534332,-1595406218,-2075752189,1979711293,13363459,1342178232,-402098433,1183384459,142016390,378029709,120055888,-7963005,1183540340,-1773782652,1451973749,1354926860,-193149286,172919563,-1031026685,-1979953527,1996488262,2093390468,1347554292,-1702463745,200572102,1451970642,1354926864,-193149286,240028427,-1031026685,1183535440,-27882500,1375733509,212985936,8537798,1342178232,-402098433,79168609,1996443648,72869896,1451965931,1354926860,-193149286,172919563,-1031026685,-1979953527,-1047790010,100554379,1347551239,-1961863541,-962965310,-1962150788,-939323826,1364247179,-972170264,-2147450298,1962967678,-60898272,647906954,-1979562104,-2010727610,1200104967,1204233729,637534467,117786567,274107136,-1705983349,200572126,-1962125685,-560312126,-1978928004,-1952939450,214588901,-326413056,-16222465,28837494,417878016,80370944,-326413056,-16222465,-4716938,82333951,80370944,-326413056,729345155,-28931648,-1946401143,-1031075754,-2008642224,-353873898,1975519749,14608643,27150070,-1696005259,105314048,141852672,-2147072373,250314724,-16222465,1183647350,-397404536,-930413384,-1727773045,-1924020221,1343653958,-1996155928,1451883590,1975651326,142016333,-1928956161,1343653958,-1962635288,-939326386,-939766135,65094]}],[{"sector":1,"data":[16533239,-1961855616,-768885434,2013156923,990147088,722106305,-28931648,-335788407,-1975088367,730617483,-2134081344,167527945,1190657622,1971322876,75400009,-1958511104,1451995462,-164238413,1946328646,75399989,-1926267392,1343653958,505488312,142016336,-402229505,67439831,13796096,-1545056174,-1957670395,-1031075754,215017552,-1979955575,1183579734,-27882500,-1034033781,-1957363706,-2131983892,1187403264,1589903614,130426378,139889408,-1924087157,1343654470,168089832,-385649216,2122318108,192151751,-15960321,1183648374,-16127033,1996426358,-1589211894,367546390,172394764,-1005824375,-953808290,-16768761,1187383878,1183515134,-2008643322,1954545833,112646,-1207903255,-1957691391,-1031075754,14018640,2093390416,1183386612,-2041149052,1081397259,8945283,1183521908,-1052362360,1325339762,-14715512,1996426358,-2039021814,-393971969,28838832,1451970560,1354926856,-385751832,1589903496,-2075721852,4161574,-219426700,27281142,-1070922636,1190556907,1785987744,378160781,556054608,1996443678,108461832,1376502504,76867664,-1988082039,-804552106,1996441716,-2108257398,-2097151483,1347551442,-15960321,1354238582,-442871808,-1995705220,1187479622,-1962934142,175555800,50726,230184454,1189629952,172394763,185357961,-1006144304,-970585506,1183449095,-1956734722,147480037,-326413056,8711297,-1983894698,1183448646,74907644,378029709,59762768,58048522,-1962859799]},{"sector":2,"data":[-422508938,-1987165557,-1072988090,283706228,108432129,-422451503,198656651,58054978,-1962869015,-1992292794,65766982,-2088352001,2097776254,-2039051478,-422451503,-1948826997,-2037786286,-1769341060,-1039401090,-2037653900,1988886396,-773402362,-683529242,-2088614263,1963132542,134264837,-1070923029,-1954265463,1174635078,2056933508,-1995705220,-1072988090,-1746336907,74907392,378029709,49801296,-788105589,-2142860314,-7454071,1183646838,-397404536,1996423974,2093390464,1183386612,-27883012,-1953990913,-422508938,1116464849,-648901673,330122755,1347596118,59000459,1452014662,-11513090,-442858890,185332860,-2095287104,1963132542,-25755892,-231681,2145944182,-2139685110,-193143142,-1960645877,-422508938,9323207,-2139685120,-193155686,74907403,378029709,45148240,-8370489,-2142860289,1575324510,1426064578,-326898549,1996445300,-1941533436,1256738838,1958742530,108432141,1929373393,2094963346,-1956770828,79846885,-326413056,1467935875,173443926,-768884085,-1923682165,1343654982,167909608,-385649216,1190527236,1718878626,142016342,378291853,16443472,730482313,-396996416,-1705968053,200572102,-1987688823,-804550570,-706149515,-1975088384,-523116335,-1954134525,1183418454,-2074703486,-1006346613,-1960410498,1435182597,-1995994878,1586168407,1166747142,75401988,126420267,1448132651,-369144600,1190527128,1483997858,-16091393,1290274934,-1941009143,632901910,-11461087,1996425846]},{"sector":3,"data":[-386888952,67438903,13796096,65556562,-1949947134,126420574,378291853,556185680,1996443678,142016266,755569384,-628948991,-397389312,1586168286,-1995994876,988480087,730625791,1347440832,-442871728,-1962150788,126420062,149447,41911040,1023767808,91684852,-335547208,-1962439934,126420574,721706635,38242752,1599997833,-1034033781,-1957363704,116163564,1187468887,-2097151746,1946159230,138868558,192184320,-2146941301,1183416292,-1002640386,-1960442786,-1031076777,-259272149,1342177976,-48109482,2093390416,1183386612,-61437446,393531403,-787972469,-94452505,-29258970,-1191295351,1448083458,-1946269464,1600060998,-1034033781,-1957363704,183272428,-1983894698,1183447110,178422,73319504,72846118,-397360501,-1705968433,200572102,-1980086647,-804520874,1589925236,138840836,893860134,-864012170,-163149440,16271047,1200301568,-28931785,-113013,-1072955826,1586175092,-991702530,1183578742,3745288,1183573621,1183400190,-129579018,45613056,1589923840,1468737028,1354926852,-990005016,-1960442786,1183515735,-128578570,1575324510,1426065090,-326898549,-11118844,-962983818,-1995705220,1451883590,1959791614,73319457,-1946265973,519080955,968481422,-1532628480,142016287,-193143142,112651,-1070923029,-443850914,442973,-2081649835,1448543468,-1710721281,200572102,-1979955575,-804520362,1589912692,71732220,-1962518901,519080955,968481422,-1532628480,142016287]},{"sector":4,"data":[-193143142,112651,-1070923029,-443850914,442973,-2115204267,1442975468,16402119,175570688,-402098433,-1992292695,-2080509306,1962869886,14870787,-16351613,-639040652,-1983894784,1183385158,13560068,-956664181,16644226,-34044275,-34306423,-34171252,-34162945,-34294017,1342193336,-1996056344,-1979845498,201193110,-999525168,654177438,1040285568,-2144970379,1946877823,71731992,1963345419,-125399734,1003588861,960525784,1979577998,-1933341894,132546,-1979955575,1996488278,142016266,-1224781742,-1070858766,112720,93120592,326418442,-34306421,-34042227,60408107,1444086854,-2089817338,50197638,-2113963543,33618558,-2037571979,1343684088,381175437,99543120,1090143943,71729408,1451426240,250281990,737822347,71696850,-1996073455,1589967446,939468300,737822347,71697362,1376146963,-92894384,-34045299,12079126,-96064766,2095422032,1174473716,-385649414,-4653310,-1956734465,214064613,-326413056,-955585405,65094,-1962387829,-962965310,-1962150788,-939325874,1317651083,-129594890,1451999627,-96040456,-239991,1347555446,-1996092184,1451882054,1959791608,173982813,537380646,-28915968,1589903362,1207314170,393478402,653680324,-467007606,239483720,1183515510,239503630,-940161281,4166,-15841653,-1073017266,1589908340,1207314170,645202178,653680324,1963802496,276726557,-1962445824,-1992290234,1452015174,1354926856,-193143142,-28931317]},{"sector":5,"data":[1589909995,-163119114,705137190,173982948,-16283354,1191119430,-1951536368,214588901,-326413056,-1962218365,-1031075754,2093390416,1317735412,-1949826298,-129070654,-1946532215,1451952710,-62486260,-989964663,-165218210,1946223175,276234090,988303622,-129595131,200955529,-1000835888,-1977157538,31730183,1586231366,-129596424,126559746,1183402056,-2093552880,2080640638,-128007114,-2012771802,-12782010,-1977210508,-467009209,638213828,-1979562103,-1993935290,172393223,-129596668,242123522,275677956,276726530,-1950059264,-1031075754,2094963280,2122517492,377226254,638213828,-16627769,130492159,1854078976,1182991374,2122515466,142344718,638213828,-63545,722093707,-443810746,838237,-2081649835,-1957295892,-1031074730,-259272149,2093390422,1317735412,-1949826294,-129070654,-990230903,-1960442274,1183384135,126559996,-989968759,-165218210,1946223175,1354771266,175570774,-16222465,-401734026,-1073086394,1589914996,-28931322,1963407654,-62485726,38222118,958798199,326239303,2094963286,1589906420,1200301574,1468737030,-1961956600,-1031074730,2094963280,-1070920716,-443851111,576093,-2081649835,727063276,-297367104,-1947449719,-1031074730,2093390416,1317735412,-1949826294,-431060542,-991410551,-1960442274,1183384135,126559978,-990886263,-165222818,1946223175,-260144378,-1961855744,-1031074730,2094963280,-1070920716,-16679959,1996484726,-428408856,-1996250904,1451883078,1958874108]},{"sector":6,"data":[-96039974,-1980348791,1589966934,126494458,1174529066,-94467078,49956483,1208453926,-28931768,-1980086781,1451881030,-1005458444,-2144929186,242548543,49956483,50228867,16678531,2122574197,57934078,-1946532097,1452012102,-96060940,2122531699,58523662,-1006596375,-1977157026,-467009209,1944733243,11659523,949891,-1977215116,-989910497,-1977158026,-571977728,239482882,-1796668556,-96040192,-1979951477,1451879494,-330920978,1978549771,10676483,-1962516796,-1993936826,-329333753,653018879,-467007606,637951684,-1006483575,1191177310,126494444,637951684,-1962653815,1452010566,1200170734,1468605958,206998280,-1705983349,200572126,-352321096,-94452619,705137190,972065764,628550262,-15827325,1589908340,9053942,39250000,-150057333,1976056537,-96040180,-1979951477,1451879494,-96042002,-94452734,4161574,1586172276,-96010246,4161574,250151797,-2081428481,-385615290,2122579717,192675854,-940554497,59974,-99607,1187508302,-385843222,-1956708753,181034469,-326413056,-984132066,-1850931082,-1763180110,1007692800,68056586,75416592,75401642,2045504738,1357132432,1526758632,-13706493,1796484775,1796500244,1712614164,1712612884,1142187540,336873748,548491540,-1974401301,5499080,-997071822,-1426914178,734497625,2122908742,2009606916,-1976374363,149651707,-2041176495,-75066937,-620498992,-1962117435,-1852265424,-788234556,329642985,1587868617,-1073063649]},{"sector":7,"data":[-970537100,-347660283,-1430244416,1562336863,-150990654,-60858,1955213172,-2029576449,274646526,367784843,1194691110,225833604,-892335893,-226168206,-1023212683,-1072976490,520548473,49020551,1522773136,1358954424,1380991056,518818645,2126796630,112654,1948596262,175555943,-167227765,1962870342,1974381580,1958742574,-336141782,1513925670,1094452855,537657970,1193642534,2002451584,1107066888,-864025742,1975794208,1958742534,-1193614846,618856449,-163044748,1962869830,-2144973285,1962999677,478822419,1948318592,167477259,-75495820,1208054797,1562336863,1426067138,-1000870773,-4651906,-222284801,1238497198,-1034068079,-1957363708,1465261804,-1006340411,-1431566210,-92946422,1217905292,1562336863,1426065602,1444867211,-1979287867,-1070398370,-1072976743,-1019606924,-1940981899,526292698,442973,116165461,72256343,856063684,1605039040,113401095,1498962688,-1059990989,-1059990831,-469773615,1498962523,1091073344,-768408459,1212802047,-657339951,-657339951,1482417151,423387436,539755127,-469802748,518818645,106874198,134264717,839143051,1127713252,-268194749,-169686997,-1034084514,1426063366,1589963915,1468737028,139365121,55523622,723913847,641794895,-2096799997,-1014822933,126559751,1946273526,34138922,14123224,639566630,-1073084534,-1977203852,-499515033,-404559500,-1977214229,-469089497,-58708108,653489418,-1073084534,-1036377228,-421336972,4161574,-1936517260]},{"sector":8,"data":[73319618,-1993948373,-1023212217,638078603,-352104567,138840846,2122563883,41221896,1570357299,677840578,721074,923208880,-1308621814,-1342174720,71681,20119809,10,19989506,35852,17172233,36876,17434390,2113541,17303335,983101,0,4,53674753,11665464,2125463560,1886152008,973409280,-1811939317,3,1879048192,256,16777216,234899456,805379073,256,16777216,268457216,16848897,83912192,16854787,302026264,83956740,117480328,83962118,151042432,1023485448,5702144,852146,1818580912,1701670755,544175136,543516788,1143821133,1159746383,1869900132,1700200562,1836016492,1869881445,760433952,542330692,1935753809,1124098921,1920561263,1952999273,692267040,1667845408,1869836146,1126200422,1869640303,1769234802,539782767,926431537,960049453,1090530865,1914727532,1952999273,1701978227,1987208563,3040357,1936028240,1850024051,544367988,1931505524,1948280165,1394632040,1769370229,543973750,1684632903,1917845605,544437093,541283141,1663070068,1918985580,1768453152,1768169587,1735355489,2020565536,11665603,112197643,1327874,369333504,783421,1879048448,184615168,2561,838929664,33570049,1,1677724928,100930816,1837825,755302656,778,1073938688,1392512257,201601536,1575681,268775424,13372426,101780224,9440257,168893184,1073743105]},{"sector":9,"data":[135343872,251673857,0,1024,872418304,-1308592637,-1342175232,1701603654,1632534048,3827053,1818838654,2113958757,1936877892,1769096239,7562614,1818577022,51576944,4650,1028785030,3060,7340033,17498369,10,18415885,16908349,0,65648,0,7179,67437347,3,19333889,4980749,17564686,6155,152044812,52236,17174278,36876,17436432,3735557,17305374,983101,0,4,52101132,11665564,1185939464,543517801,1835093630,2113944165,1936877892,1769096239,7562614,1818577022,118751344,2338,904,0,6816775,18219270,7602183,17105414,65648,0,6750215,17957638,65584,0,6750209,17629707,65712,0,6619137,17891851,35852,17171970,36876,17434122,6160389,17303062,-2012282819,218149376,1400811520,1667591269,543450484,1954047316,1819168544,1132331129,1850048000,1701996916,1869762592,1835102823,1920103680,544501349,1684957527,1862301551,1701605485,1142973812,1836409711,7630437,1818577022,-1308603536,-1342173696,136710165,59768832,0,65536,16842816,655622,17301504,-1945370342,84017152,-1878261498,84672512,1074069770,85590055,3997960,15,262144,458752,4588316,524466,1632534192,3827053,1818577022,33751152,4682]},{"sector":10,"data":[1259733903,3060,5242881,18612481,16395,189137409,61,200558869,3,19860737,5081093,17960709,5603333,17436444,36876,17436460,5046277,17305403,1578041405,218149376,1132376064,1936682856,1919950949,1634887535,1953046637,1948282213,1684349039,1157657705,544500068,2116054633,1769235265,2113955190,1701602628,2113955188,1886152008,11665466,179306509,1457153,620990720,783439,268436480,939524353,16805902,0,121898752,117637889,16805889,0,-62912768,117768960,16805889,0,-247462144,117900032,16805889,0,3584,318966272,15617,-195995392,16805899,0,3584,319097344,15617,-195978496,16805899,0,3584,319228416,15617,-195961600,16822283,0,3584,335939072,15618,-196020480,-1912602357,184622848,4197121,184688128,15626,-196167168,-2113928949,184626176,4197121,184691456,15626,-196167168,1979712523,940507392,2113930755,269485312,-2097151743,185607680,2561,68169984,9178113,101910784,9440257,169023232,1866466561,135473408,251673857,11665681,1135607821,1919904879,830341235,2113937454,2108978,539898750,1866890752,1919378802,1684960623,1631747584,1919380323,1684960623,1936278528,2036427888,1953517344,1936617321,1666416128,1819045746,1918976544,1417543795,1394631265,1936748404]},{"sector":11,"data":[1216217146,7367781,0,1140983296,6762005,590002,2992,1073742080,33570065,-195399424,9178123,135404800,-1308616703,-1342175232,1347175752,11665412,196083726,932357,232192,0,1024,721423360,1027,721619968,1610612995,184615168,2561,687934720,1543504129,184811776,2561,688131328,1476396545,453510144,1728054785,268968960,1804338433,319488256,1954809089,235607296,9440257,168502272,1883243777,134950656,251673857,11665521,2125463565,1684957510,1634228000,1124088436,1735287144,1417551973,2113944175,1668571469,1884627048,796026224,1702326092,1935762290,1467875429,1701605224,1919899424,1766195300,1629512814,2116052078,1769104726,2113960294,1851877443,1092642151,2113956972,1886152008,990317056,-1946157045,3,67108864,201326592,16985088,16797696,167840513,218103808,16853505,16777472,100729346,67126272,100735749,620778240,201396229,134217868,201393672,385876112,83954184,687884096,1023477768,11996928,852146,1766227632,1461740654,980705640,1632468480,543712116,1701867605,1867263858,1668441463,6648673,1869109118,1461740908,6582895,1818577022,319619184,1333,909,0,3180549,17433091,3178501,17302031,36876,17433115,2506757,17302056,1712259133,218149376,1132376064,1735287144,1400766565,7367019,1818577022,-1308617872,-1342171648]},{"sector":12,"data":[162,393546,22806706,1178352816,1044861773,1385824318,808464438,539822605,1667331187,1986994283,1818653285,168654703,1385824768,842018870,539822605,1634692198,1735289204,1768910880,1847620718,1814066287,1701077359,658788,911383043,221458480,1763716362,1734702190,1679848037,1684633193,2036473957,168636448,1385826304,942682166,539822605,544501614,1970237029,1931503719,1701011824,1919903264,1735549216,1852140917,168653684,1385826560,959459382,539822605,544501614,1970237029,1931503719,1701011824,1919903264,1986946336,1852797545,1953391981,201329165,808866458,168636977,1818828845,1634166124,1701716076,1881174625,1953393007,1965060709,168650099,1385827584,858861622,539822605,1701604457,543973735,544366950,1852403568,544367988,224752501,-1710358518,825243218,755633460,1852793632,1819243124,1163018797,1696615233,1970234222,1919251566,168649829,1385828096,892416054,539822605,2019913333,1952671088,1763730533,1919251566,1953527154,-16774643,1913261466,1949134453,543518057,1869771365,-16768910,24248319,983218,-9260880,117440511,134263296,1013690368,11665410,212861004,1598241536,1162627398,1179535711,-1308619185,-1342170624,-2122252268,117506433,385921536,10924032,88292459,218149376,1907404800,684750769,685385940,342500050,342500042,11665426,28311639,10752,1668481024,1852138866,-65536,2,2036427888,1801675106]},{"sector":13,"data":[-65536,1868785010,25714,65535,16776960,65536,16974852,67436805,-65276,4456447,655538,50331568,436253184,-20480,65535,-65536,65535,-65536,65535,-65536,1900543,2228402,16777136,0,16776960,0,256,1409286144,16783361,8781824,1658880,941117184,705426446,201372160,176128,16812032,16783184,717166416,31329268,11665426,-1666187256,623,-1308621176,-1342175232,200551103,393694,524466,2886320,512,-1308620664,-1342175232,200551103,393694,524466,57711792,109051904,134263296,713469952,31329268,11665414,78643210,75497472,134263296,1864478720,31329268,11665414,917504008,1392,-1308621184,-1342175232,200550891,11665412,-89128948,-100533759,-1308621311,-1342173696,7824718,1852141647,3026478,1702256979,1632829440,1092642166,774778483,1917845504,779382377,11822,1953069125,589824,45613057,655360,45875201,786436,46399489,851972,46792785,7,4,1179648,47579137,5,4,1310720,48234513,1967325184,1750272372,729048681,7103812,2037411651,1920221961,1850289004,1632632947,157643891,1718184019,1850289012,1816330355,158490981,7103812,544695630,776099155,11822,544695630,1129207110,1313818964,3026478,2162710,806,65559,820]},{"sector":14,"data":[65561,834,2162712,850,2162710,806,65559,820,65561,834,2162712,850,262144,0,4259866,459612,4259867,787304,1933727059,154021422,12870,1768714323,1968111732,1953853556,1919111968,158229861,13382,65564,263120,1114142,988,65568,994,1684957510,3026478,1701864786,1277195361,544502625,1684957510,3360265,1851877443,774792551,2293806,67895297,2424836,68419585,2490384,69730305,1951596550,158626401,1718184019,893791092,1699872768,1918989427,1866662004,1852404846,1175020917,2621493,71958529,2686976,73007105,2752512,73531393,1951596544,1175023717,1917845560,1684366191,543519349,1885697107,808535561,1918107648,543515489,28239,1734831956,1109419372,1801545074,1852403568,960891252,1816330240,544366949,543976513,1634038338,1768910955,7566446,544499027,1954047310,1635013408,1701668212,29806,65583,1158,65584,1166,262144,0,65590,1186,262144,0,7405624,1196,65593,1218,4259899,1240,1886611780,779706732,11822,1886152008,1952534560,774778472,2035482624,2019652718,1701331744,1852402531,3932263,86769665,3997703,87556177,3932169,86769665,3997703,87556177,4128777,88473601,1867776000,979593584,548537036]},{"sector":15,"data":[1185939473,1850277937,7890276,1953394499,1937010277,1934950400,543649385,1886152008,1768444681,1177252966,1648427057,779384175,11822,65601,1432,65602,1438,65603,1406,6357060,1448,262144,0,65607,1468,1953785159,543649385,1918989395,6579572,1652122955,1685217647,4521984,100007937,4587520,101056513,0,4,4653056,96206849,1766195200,25964,1953064005,1767243776,30565,1918985555,26723,7238994,1969382724,1884225639,1852795252,1699217523,28780,537067520,103809028,917512,742,537460737,104202244,1310724,888,537853954,104988678,1572867,1074,538378247,106168327,983042,1366,541720584,106692612,983044,1552,537067520,103809028,917512,742,537460737,104202244,1310727,920,537853955,104595460,1376259,1012,538247170,104988678,1572867,1074,538771460,105512963,1245187,1134,539099141,105775109,1769480,1260,539557895,106168327,983043,1382,541720584,106692612,1638406,1478,5703723,5704253,5769261,5570687,5505663,1508653,1639213,2425868,6031728,2425202,4718965,4785013,0,5703723,5704253,5769261,5570687,5505663,1508653,1639213,2425868,6031728,1835377,1901425]},{"sector":16,"data":[5637489,2425202,2097523,2752884,2622324,5834100,4718965,4785013,5308790,3080567,3670392,3146105,5899641,0,107085829,526130,124126898,-65536,11665989,-5242854,-1308622081,-1342174464,5133650,0,23552,1953387776,1701606505,16777316,1546530304,1412311552,1275090008,3232848,218106381,2037579786,1835365491,1895825408,1769169250,1852386915,754974825,758004016,1630362177,16777338,-555885568,-488513313,-421141277,-353769241,-454828821,1426063851,-1205924322,-919403008,-1221505094,856739079,-1896969226,-852708154,1391604257,-963985357,-1869606990,646509302,844630544,-1878478108,-1997343088,-1609952986,146016784,-453603184,168887810,-2034224493,168401031,-31427136,-2146823930,134877502,-1562610288,117312017,1048578576,-1878062576,279104885,-154604790,1965046992,10938627,168822400,285638660,-2092555766,-24443930,168834698,168892042,168953542,113676288,-1879045613,169084615,1951344400,427052820,841249871,319225554,335988490,-351553526,-17419748,-351661562,-28331500,-955641074,-1207299066,-1241060597,302972440,-1269805046,-838913534,-855067632,-1823450352,-617412172,168828554,-1190925437,281870337,169086603,861470434,271989467,973501706,1946816790,-1176729068,162791425,39325901,34214454,-351661290,-980723528,7880000,-1962576752,-18224664,-1412735713,-1411409257,-1617781094,148025857,-1698844672]},{"sector":17,"data":[-1917872245,-1866735649,-541484918,-1632247841,-1113942382,-1699356705,-1700226663,-1766596641,-538989179,-1632444449,-1749248883,-1766662242,-1500013429,-1766989857,-542075748,-1766989857,-542272356,-1666392097,-1349809264,-1968381985,-1752393075,-1767120929,-543509358,-1867784225,-538985070,6873055,115081394,1829267632,30766,184549120,167817728,110592,1,65535,0,65535,65536,385921024,385882192,819599440,2371167,524466,688,16777216,16777472,1353711872,1343705344,-636006144,439246640,134263296,176128,0,65537,-1308619777,-1342174208,196607,7864498,16777136,0,184549120,151040512,1313452032,1146440771,-1308620987,-1342171136,46,117901056,1886941191,1886941296,1886417008,1879508848,124809328,1886416903,2131167088,252645247,125796111,253167368,2135388191,1882222671,120614975,252118832,252118814,2131693375,124809226,1879049223,117444470,1879052404,1879052546,117445122,1879053684,1879054098,1879054658,117447984,1879056158,1879056436,117448964,2131233794,-1442795008,139177984,143329395,141756621,136579115,148899950,149883164,137955403,11665434,1638924296,2030109697,16872705,50426881,1593926401,1577148929,94465,1862366977,1879138305,66049,1979807744,93697,134611970,269421578,269488144,336728592,454563862,1141054491,1107341824,23441408,23527785,23724390]}],[{"sector":1,"data":[23789928,16843116,33686017,1573890,917682,355860144,-235531212,463926771,454630310,455940879,457382555,1645452,2556082,1107296688,4604416,1225195590,1431061326,1392919876,1230258516,1497630531,1229799758,1494503747,-1726717932,570433792,11665451,-5242865,255,65536,0,1279348046,4411212,344915975,0,16777216,16776960,-256,754974719,201372160,16887808,-872369664,-20480,327679,8847538,34967216,855683584,-20480,11665410,229638183,-1308622326,-1342172160,139719,3539122,1396851120,1414876239,-1308620731,-1342174208,196607,1048754,50331568,201372160,342536192,134807552,385613824,385613824,-5111794,128974968,343544832,343544954,343544954,58332282,343544832,175772794,343544832,343544954,343544954,343544954,343544954,335544698,335545466,343544954,58332282,343544832,75109498,343544832,343544954,335545466,343544954,58332282,343544832,1618613370,167817728,1365225472,1313431362,1095777603,1229736020,6041154,192117268,134003,512,5242960,80,0,-893334866,-934324846,1438799296,1548637681,207424767,6056797,1094856234,1160642643,4998488,1310898,343545008,-9515398,16777215,117440512,78774287,11534350,78643215,402718980,1573200,338007296,343544954,343544954,20602,5,2525952,343544832]},{"sector":2,"data":[16777082,134217472,413073408,8733952,218135060,2147124549,2147123194,2147123194,2147123194,2147123194,2147123194,2147123194,0,20977960,-1207959352,-2147352561,117899264,0,2147090432,2147123194,2147123194,2147123194,17268730,-2147473407,50333697,13959175,2147090739,2147123194,2147123194,2147123194,2147123194,2147123194,2147123194,2147123194,2147123194,2147123194,2147123194,2147123194,-1996455942,33554591,11665605,45088789,11665409,1286602771,2118736,1887048704,117704455,-1308619257,-1342175232,-1133445095,-1073430524,0,12583936,-936982490,-919025626,268435457,536887296,2260992,1507506,102576,1114290,-848,-1,17406,838860800,-1308618733,-1342169600,1310929157,822431297,1179535651,1227043077,17486,322043904,610697216,937459712,1128383353,11665444,-1062207480,-1036648449,-626908824,1073727759,67240961,67240964,100794372,100794372,-1308615164,-1342175232,-595591296,-2051418201,229732710,64,-16777216,-146797057,-1744026826,-40503783,-1308614337,-1342174720,2003791875,33554432,1024,328192,1231636612,1234257962,1225935215,1231833130,1211385908,1211385933,1213942161,1234257962,1735355397,100675633,1030,262400,1226590550,1236355180,1735355395,100663296,1030,196864,1226590555,1236355180,1886938371,0,1024,131328,1212565648,1235896428,560513589]},{"sector":3,"data":[-921707870,16382,19712,1929596672,28265,0,16777728,1242497030,1215055923,1661160018,29551,0,16777728,1241710599,1215055942,1946372690,28257,67108864,16777728,1244397576,1215055923,1661291090,1851880559,67108864,16777728,1244921880,1215056176,1627671122,7235955,512,16777216,1254948873,1215055923,1627670622,7565155,512,16777216,1255407626,1215056733,1627670622,7233908,512,16777216,1255931915,1215055923,1627736970,846094708,512,33554432,1256718348,1210731395,1264995174,1210731389,1211386726,1213024308,1266108468,1210731383,16599131,777980180,777981133,777981089,65536,-65279,2063663105,151040513,34844672,11665410,-5242866,8388607,102494720,-1308620260,-1342148096,477895666,11665412,-223346574,69005851,1879093760,468889600,7154,211419136,-65526,65535,-65538,11665430,-38797296,253,11075584,16843008,1509949441,338583340,302035456,176128,55296,511,-1923743233,495726175,11665426,1689255944,65312,50331648,14155776,130816,1442971392,-1943117939,1945117,0,-14651392,0,16777472,-16777000,-16777215,1603098113,1008569390,134263296,543207424,255,65536,55297,511,-1923743233,495726175,7632,0,16719980,0,-671023103,33488896,33488896]},{"sector":4,"data":[778014038,497950092,0,544473088,255,65536,55297,511,-1923743233,495726175,11665502,2058354696,65312,67108864,14156032,130816,1442971392,-1943117939,-1308616163,-1342175232,16720000,0,1916010609,119605029,120848502,117,497950194,504634832,509091382,16850554,11665448,28311560,7680,506003456,16776704,-33546720,506986751,16776704,-33545672,572065023,16776704,-33545704,572003071,67108352,-33545704,587202559,-512,-1577045249,973602816,8704,-33545709,504889599,16776704,7712,570425344,16777216,11665505,28311560,16777216,11665413,28311560,198656,2162866,40550064,369144320,110592,0,-641679398,-1280064316,-1144408893,-842154808,421051066,-100197861,162603184,487726623,11665446,95420448,1161311753,-734513655,-298306048,-1976027639,305673739,725104141,-1388825076,1362638348,1480078861,1597519373,1614296589,-533187059,20461057,2050504194,-1254607357,1094202885,-298306041,1631073799,1245197837,540554765,2697279,1532502016,704654685,-2113918418,-1999336816,-1749580334,-2071951381,-1802533234,-1852145255,-1599757166,-1984527435,-1915313709,-1948807970,-1780440360,-1545432093,-957704471,-717117753,-459433143,-330323995,5871853,1325400064,1124073547,1701015137,1493172332,1308652389,1375731823,2037544037,1868710144,1207989362,7367781]},{"sector":5,"data":[100665346,134348808,1493631822,89261829,134496519,489165640,303895070,907007488,906940728,906959160,906895416,906984248,907502904,907504696,907523128,774789944,760938589,6106400,3026432,907748864,907694392,907712824,907649080,907737912,908165944,-1308544456,-1342161920,740818982,1010565474,566704345,342492922,342493054,342497006,342497632,342501870,342502170,342503148,342515988,342516148,342518672,342522210,342524488,342526520,342528499,342530476,342530757,342531180,342532032,342537466,342537838,342540346,342541752,342543454,342545158,342545376,342545505,342545583,342545742,342545851,342537775,11665540,347078677,75109498,-2130660864,110594,65537,-1308621055,-1342145024,-1308622584,-1341984256,1067645315,1083624420,1086918619,1060439283,1016003125,548536340,1286602760,1278301264,1278366800,1278432336,20206672,150995456,-1583443968,1956566174,1134510494,1084184735,-1060458916,1331008202,-1034567480,1314255189,54787420,647938816,-2147483648,741024331,1027357498,2086492990,1027357472,1094729534,1212433218,1380994379,944129338,3549725,4161536,4423680,1879048192,218083840,1144827904,540955209,1397575491,1027818832,1297040220,1145979213,1297040174,0,16842752,196610,117440512,185141768,168168716,196411393,196414416,194251668,1008405396,11665474,11534996,-5242878,-1,-1]},{"sector":6,"data":[566704400,256835584,1132858112,81694,-1064549806,234885125,303903,787971,244039822,-108331002,-34108593,378250483,-1202716658,-883949512,-661863540,-661732821,264224910,1095936,-1359741008,-1946711225,-1899877437,1032128,-963967823,-388771593,-628356748,-628174805,-1947152765,-741279801,-1945537304,-1898959934,-254835774,1322289836,1187548077,-31145334,108376124,-341118036,-1304653817,-1527551115,27837066,767474292,-1960899071,-67107810,-1951542733,-1961630776,-1899822142,-125063744,1962934147,486614545,-92146718,376762368,268485249,-1064510229,-2084532672,19271919,-1064417251,-1014242581,540299,669323,100790275,271384578,-1898410496,48064,-1948872966,-13698073,-1153387473,381222914,-1899328512,18332378,-4709939,1344392524,1701536609,1768300644,1763730796,1868767347,1886745202,-2130537612,-775811902,1925292993,96546241,-1195327295,-1497321536,-2084528704,918575040,499133888,-775941952,2042599359,-138453825,-1547460926,-1144804413,-490486077,1271132611,-1832619068,-591092028,1589972420,-1480222011,1137055941,-1530505018,-708391738,-372843066,-37294138,1153895366,-1429532725,768254154,533341386,-154534198,-557192503,-1832267063,1707704265,348732361,1556644297,-859029304,-53564725,315487693,584047567,869280976,-2133821232,768648400,-1278134319,-204357167,936516049,-2049805614,735238610,1137914323,2027122643,-757889837,-439099181,1054085587,1356088276]},{"sector":7,"data":[2010408404,-1311470892,-2099978796,-975784490,-472460842,64420310,1641495255,-875060265,-405283369,-925349929,1473842136,970677465,383463131,14354907,-723848997,-1294286886,-1965383206,1926923738,1524263642,987385818,450504666,-220591654,-572922151,-1260796455,-1663458855,383355353,-287374369,-2082565410,1239317214,484327902,-102887458,-790766371,-1646412323,2145226973,1004357853,400370653,-86177059,-589502244,-1512256292,-18724900,-790501407,-320759327,1004584416,-1243603744,1306485727,-538712609,1591962595,1273189603,1860381667,-756551966,-1779979033,-991500569,-1729713178,1525052902,-1461339674,-1125326875,2079098092,854342636,48985580,-219534613,-1695949335,1273589225,1894789104,737109231,-1745956881,-1494345234,1123109613,-554627343,2096252656,-1762488846,-1359831822,754119154,1358121715,-2014089997,32761331,1911843316,-1175159052,1274358772,401996533,-1057437450,1996005112,519583224,-369625352,-1594373641,1274502903,-503900169,-1661553674,-2047232778,1358524153,-537336583,1442459128,-218465286,1761520894,1191073534,-134336258,-872555011,1845331197,201151485,1794948861,989612540,-805562884,1912317691,-772057861,-1325414657,1795125759,-100703489,-1222597890,371248928,757144865,1143026209,-2011073759,-1524522975,-1088308703,1193405729,656601378,-1591504861,1378138660,405209125,-2026930643,-164490447,-600631246,-1472917452,-1254533835,-1573022663,-499271363,1044245565,1983795006,37675838]},{"sector":8,"data":[-62836929,2019129944,-1839561382,-748960421,-665003429,-1470236579,576754786,-1452756896,460014184,-781468309,40627307,493682028,1869428077,124825711,812717681,-1267644815,-9312399,1131555953,1668437618,-1972207246,-1334666894,-42807694,-1217112205,-847985036,-1854585996,1182197366,1702320759,897054839,-2122824584,-1736931720,-1418157192,-646393992,58257784,628693113,1048130169,1601784185,-1988527239,-1418095495,-965102471,-428225671,561639545,1635403130,-1485149830,-713376390,-428154502,-394536326,259786363,1333543804,1903973500,-1971553668,-209921156,-1837282180,-159528067,-1015134851,-310457218,-360774530,-1736409729,92326784,1770091393,-1803382910,159573634,2089053060,-1752922748,2105958276,-410473080,-1752623992,-1584798583,1300957834,-292839285,126615947,-611466612,-225580147,93190029,-2104593010,596547214,-1668338033,-862999921,1720710543,-292502896,462488464,730960017,-2121018990,-1416324716,781512084,-1365924459,1536588693,-1667733864,1503269017,-761611878,1805312410,-1399096165,496744091,-409192292,43840924,983373213,1906134941,-2086831715,345896605,1771987102,-1835107170,278842526,-1415531105,-1818073695,1520784547,-291139163,1554434725,-1129865305,1068049063,1974033833,799646377,1554729643,111956395,1672287149,-894590547,665710765,-475077970,749734319,-1666150736,-542061904,1404115120,1068594353,-1934467662,263385010,1320368307,2008248755,-592199757,-223092045,-944492621]},{"sector":9,"data":[1152835764,-1028149321,1152923063,-1816638536,-1363565640,1085916345,-1480947014,-71636806,800795066,1471888827,-423925829,-658749253,-222501188,515772860,1304314558,-641819202,46067390,348063679,-2112259649,1629131034,891171611,268544286,-1660827646,1308719105,721501185,-402581247,-1845440000,-486533632,-1006314492,-2012965372,772035332,117708548,-1006374140,419657219,-1325204989,839014146,654642946,335975686,1661424903,-1777876217,1577809675,487270923,-1341475317,-2012572406,1074417674,-1056302582,1862904329,598025,436780041,-636621816,1796063245,453853709,-284357875,-1609781236,168565260,-1475614708,1913758225,1024545553,-82767599,-1190080752,1829801232,705712144,-468705776,-401638385,-1123099634,1494127374,-1860984818,1863548947,1326669843,-250402541,-921511150,-1844264686,1611821842,655513362,-1173230318,-451421423,1629190169,-451196645,-954541030,-1826966502,102399514,2132741146,975064350,1058924830,-1927506659,-48473316,-1407458789,-903723749,-400479199,-937370848,1881191712,-383772896,1210015519,-1994024417,790954533,-165407708,237225763,1294136099,1294468902,1227468841,-936727254,-701838038,1059773482,1663836715,2100064556,-785610196,36553772,841943854,-416305361,-1859093201,-1255103440,-80681680,1261506864,-30233294,-2026685390,-751588045,439609139,-2093727948,-667635660,1463092788,-952794827,1463203893,-1170767561,1345855543,658023224,-1187409863,3918393,893167420]},{"sector":10,"data":[1748963135,1514391613,155450690,742860103,-2092467385,-716726713,373809479,977807176,-1421320376,-498548920,-1991696056,1732891721,-448084406,-599500470,-985337532,-649735099,-414850491,390461765,-1689903034,-615789493,894172491,-1655927476,-1152600500,-145952180,1347241292,1968008525,877494605,1179007302,1816550214,-1975093946,1464244038,-1722908594,1632851790,-1621916845,-1219253165,-1000489123,-614609059,6159197,1247676254,-1973516962,-1386305698,-782322082,-966846882,1247827039,258052705,895690339,1466126435,1483022435,-647575451,73853030,1617497705,23685225,157943146,292162922,-1133890710,443351404,-814534801,-1586108555,-495527562,-227087754,41351798,813107831,-1418250121,176096637,-545321089,-2071823744,8554882,696704390,-1449746808,-191107434,2108006043,1403577256,-1935056983,-1733649751,-1381195860,346883500,1554848685,-1196595795,766368173,1940797614,833666478,-692943694,-139268942,-776790862,-2068544845,1909077945,-1010066741,-1060218421,1691418062,852610001,13801938,718848979,2094633433,1289860577,-604704535,-252123912,251201272,821629945,1459173881,1928948985,-1929608711,-1510171908,-855852804,-654519300,-50533380,2013070844,-1677662211,-1206081508,236768028,1075651613,1293764381,1578990109,-1700236889,598514859,380492717,984545710,-1850781009,-911178065,-726597712,-1027570497,-1754230161,-244067216,779430260,-1770597515,611912824,-142825350,-1500818050,1821193868]},{"sector":11,"data":[2140048525,1033014160,1687637399,127364247,1352148888,-1936160872,60406425,1671060122,-1852142438,-1113938790,412804250,2073776795,-476343909,1906046107,-1550023012,27045532,-1969061475,-1851607902,-39586397,1805993124,-22668766,2016046377,-332745942,657201195,908865580,1647067180,-2010349268,-584278740,-282269140,338492204,1210918189,-215108307,1143878957,-2127660242,-1792111314,-1322342610,-886129618,-399585234,1378807342,-1473291729,-1238389457,-1020280529,-617494736,-1959595215,1128374836,-683422654,-683363005,1598368836,-1689900987,-1354322874,-1823962553,2101984840,1766564683,-565182388,1515514196,-1957331627,290851925,576068694,1163276630,-1168680617,-1554448809,-463873703,1129969753,1896048474,-268195581,-1543028474,-267918841,755574791,-653564663,-989073909,962255706,-389895582,-356015933,-909277240,115736013,635836390,954610406,1290160102,1508266470,417765862,-991392280,-1645660440,501838569,-1594904080,-1964108049,2112674797,938653164,-571179024,-470356236,-923044873,-1342542598,1610142713,821957630,419235581,1174527740,248064713,-725028151,-1664567096,717082312,-1782599747,-322894657,-1128213312,-1933531968,-859817280,-185644863,920113879,-388128035,-1092096793,1892111558,-255363897,-119016217,15203559,149423336,283643112,417862888,552082664,686302440,820522216,887643368,1021851880,1156071656,1290291432,1424511208,-588752664,-454565657,-2099085593,-1176336670,1007052544]},{"sector":12,"data":[-570070266,1225276419,-234413817,-1912029432,384120840,-756747035,-1897615132,1256484068,-2029218076,-1156817396,470525963,-1542797045,1611295242,1460512522,420296461,-955110387,-1559185903,1947240720,705712144,-233825520,-1844471025,1980727567,521102351,235853327,-2079017707,471104020,-1928064492,1779597330,2098842386,1159292185,-1608992999,1142445592,236463640,-770184680,-585647849,521901846,-971309029,-1390755558,-2061854182,1662944794,-1206009314,119357469,-1172572644,1780625954,-484363231,2132858144,-1574940640,-1273000417,-1473923802,1696960293,-970631131,1948558628,1512264740,422128169,539538729,-1238894552,-1272150996,1831569451,-181749973,-634525139,1848482861,892158253,-1288578003,774984753,-131002575,154178864,1110396720,204413231,-1774901713,1597280564,-30140620,2083750195,355673139,1664289587,1110573618,2100857913,624447544,-684201928,-1623443401,1228628027,-482674117,-1254478022,1631156281,876624960,-1170204864,-968986050,1362982461,-364625347,-414984893,356697666,-2109611710,1413575489,692474433,71639365,-1639655611,-1773751484,1313240134,-1186420664,1783184712,575473996,1867393613,-1387360434,-582040498,1800334670,-1689289137,743513423,1615936337,-430866863,1045633618,290677843,-2141960108,-2074802604,-1386900139,1515569237,-1219072170,-1235826090,1062745943,-262546088,928650329,1616531034,1935411290,-2057409956,-815846562,-681516192,1868702049,124122469,-1721349018,-1201229466]},{"sector":13,"data":[-362363290,828842854,2070368103,-1721267865,610770791,-1469174678,627924845,963363437,376517231,-563021199,913359472,1927704178,2061924070,-2098823450,-1964603674,-1830383898,-1696164122,-1561944346,-1427724570,-1293504794,-1159285018,1500955366,-1871305610,1886748533,-663398795,-244015500,1198754419,-1720117383,410540664,-294124680,2088211319,-1837667465,695862905,746243706,494767486,360410492,-210040965,2071970426,-696331905,1702927744,1283479168,1558665344,1692885223,1827104999,1888537831,971470055,-528299133,612465025,-2003088741,-1863873305,-1729653529,1357356263,1403542939,1487418536,-1381629786,313282213,-72612436,1739318955,749424043,-1230315349,-1364575830,-257354327,-391584600,2075071663,-1314079570,1923903660,716392883,-2118974285,-1129173070,-1146026575,1789951664,464538800,1505013680,464999352,-541657161,934708150,1790287798,11851957,0,0,0,0,0,-1610612736,1274502903,-503900169,-1661553674,-2047232778,1358524153,-537336583,1442459128,-218465286,1761520894,1191073534,-134336258,-872555011,1845331197,201151485,1794948861,989612540,-805562884,1912317691,-772057861,-1325414657,1795125759,-100703489,-1222597890,371248928,757144865,1143026209,-2011073759,-1524522975,-1088308703,1193405729,656601378,-1591504861,1378138660,405209125,-2026930643,-164490447,-600631246,-1472917452,-1254533835,-1573022663,-499271363,1044245565,1983795006,37675838]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[538976295,538976288,538976288,538976288,538976288,538976288,542187552,543236162,543760499,538976355,544153671,543760498,543957100,225648737,168634122,538976295,538976288,538976288,538976288,538976288,2037411651,1751607666,1126703220,1766662185,1936683619,544499311,1886547779,1952543343,544108393,809056561,220662285,1495279370,544372079,1936943469,544108393,1948283753,1768431727,1870209140,1864397429,1852797040,544501349,1752459639,1701344288,1886938400,1768189804,1646290798,1851879009,654970209,544825888,2037539190,543649385,543516788,1818717793,1851859045,1869619300,544367991,2032166511,544372079,1869768820,1948265591,1852402529,1852383335,1629515636,1970234211,168653934,1769414695,1931502702,1684366704,1919361068,1953068641,1629498489,1948279918,1663067496,544830569,1819896691,778399337,220662285,1394616074,1684366704,543584032,1936287860,1835099936,1936269413,1952801824,1768780389,543450478,1948285282,1663067496,1953721967,544501345,1162170451,1313817412,539907155,543574304,224749684,1881155338,1919381362,1763732833,1869881459,1819484271,1864398703,1869881458,1634082927,1629516915,1937074788,1752440948,1126309989,1414745679,1162892064,1329808453,542397262,808788029,1814045232,224751209,1646274314,2003790949,1411391534,1814062440,1701278305,1752440946,1970151525,1919246957,1701344288,1935762976,544367988,543516788,1701667175,1818851104]},{"sector":17,"data":[1869029484,654970158,539429389,1914728276,1948282485,544434536,1701667175,1919950892,544437093,1718184019,893791092,654970158,539429389,1696624468,544500088,1935753809,539779945,1936028272,1816207475,1176513652,777527340,220662285,1411393290,1701257327,1701322868,1864396908,543236206,1230192962,1701519427,1919907705,1830825060,543520367,543516788,1936880995,1948283503,1752440943,1701519461,1919907705,1851859044,1919950948,225669989,1176512266,1919885361,1768710944,1948281699,1914725736,1952999273,1970236704,1646290291,1869902965,168636014,218762535,1699948298,1701060724,1819631974,1633951860,1948279156,543518841,1763733364,1734702190,1713402469,1713402479,1702130529,1634148466,1881171309,226058604,1178944522,542395977,224013633,654970122,543323475,1818453316,1952543329,1936617321,1162086925,1380011075,1431511109,1866735682,544109907,1970228520,220817524,1128612874,1163018572,1112888096,1952797472,1701995347,673214053,1141509417,1095516997,1394623826,1159742037,1632068718,673211757,1141509417,1095516997,1394623826,1126187605,1702129253,1378361458,539785071,1954047316,168634660,1279477060,541413953,541218131,1920233033,690495599,1162086925,1380011075,1431511109,1884495938,1818980961,1969311845,673211763,1141509417,1095516997,1394623826,1193296469,1850307685,1937012080,1817192480,1919252833,539763761,2036427856,607285861,1968054316,1835091821,220820325]}]],[[{"sector":1,"data":[1128612874,1163018572,1112888096,1634488352,1835091833,1344807013,1702453612,740569458,1634488352,846357881,1310731300,1632071029,695428461,1162086925,1380011075,1431511109,1866735682,1819310149,1869181807,2015895662,2032151587,168634659,1279477060,541413953,541218131,1701536077,2037672259,1885430611,1109925989,1919905603,1092626728,1312890963,168634713,1279477060,541413953,541218131,1667329104,1919895397,1634495593,1109926003,1919905603,1092626728,1312890963,168634713,1279477060,541413953,541218131,1633972309,1666409844,1936028271,1699883040,1685221219,539765032,2036427856,1968075365,1377840237,1819636581,220820340,1128612874,1163018572,1112888096,1634878496,1919895415,1634495593,746072096,539785504,1936552545,1141509417,1095516997,1394623826,1193296469,1818849903,1850302828,544174708,1634488360,829580665,1344285732,1702453612,690238066,1162086925,1380011075,1431511109,1699881026,673215603,220799860,1128612874,1163018572,1112888096,1667847712,2037542772,1668178244,1344807013,1702453612,168634738,1279477060,541413953,541218131,1634036803,1919895410,1634495593,690495603,1162086925,1380011075,1431511109,1917067330,1631745889,2015895662,539763555,740516729,539783712,220816226,1128612874,1163018572,1314211360,1330205763,1666392142,1848123500,168634657,1279477060,541413953,1129207110,1313818964,1952794400,594376014,1867655200,1126182007,220818543,1128612874]},{"sector":2,"data":[1163018572,1314211360,1330205763,1866735694,1953458259,1817192480,1919252833,745370958,539785248,168634745,1279477060,541413953,1129207110,1313818964,1886930208,1701080940,1769107271,543255660,740522024,690190624,1162086925,1380011075,1430659141,1230259022,1193299535,594441317,1867655200,1126182007,220818543,1128612874,1163018572,1314211360,1330205763,1817190478,1750299759,673215599,1918989395,539777140,1918989395,539777396,1818717761,539763557,1869374806,2037672291,1817190444,1919252833,695039310,1162086925,1380011075,1430659141,1230259022,1126190671,1147366497,2036427877,690495521,168626701,1801538855,1818304613,1918967916,1937334642,1853441056,1667853665,606538253,1095653700,222513485,654970122,1919251285,1717912621,1684369001,1348031520,168653637,1162893652,1348032544,1953393007,538970637,1869562712,1396777074,1414416672,1380271941,538970637,1869562713,1396777074,1414416672,1380271941,1313147405,1498685508,168641872,1126631949,1953721967,1937010273,1329793549,542397262,1162170451,1313817412,1025528915,808465696,1329793549,542397262,1163219540,757087520,1124732209,1414745679,1279346208,1025525075,1414483488,1431458848,1124732229,1414745679,1414088736,1179403603,824196384,1329793549,542397262,1262698818,1381258305,807419168,1329793549,542397262,1162494543,1329812547,542265164,221323325,1313817354,1461736531,1329876553,1280262999,1025528399,221524256]},{"sector":3,"data":[1313817354,1394627667,1413566037,1025528404,168637216,1397641027,1431511124,1346455630,1025530192,1279346208,168641875,1397641027,1431511124,1330139982,1025526595,1431458848,1124732229,1414745679,1195987488,1347769416,824196384,1329793549,542397262,1413891404,1025527893,168636960,1397641027,1379999828,1329877837,1025527383,168637216,1193740813,1633841004,1633034348,1650551154,225666412,1296647178,1095258912,541345106,1769107271,1482779756,1411395880,691150927,1277632544,1952539503,544108393,1948280431,1948280168,1730178935,1818849903,225665388,1296647178,1095258912,541345106,1769107271,1499556972,1411395880,691150927,1229195789,1213407309,1145393729,1935756320,1769292404,1852400748,218762599,1296647178,1095258912,541345106,220424560,1296647178,1095258912,541345106,1851867724,695740454,1112678444,673607265,539765112,1851867733,695740454,1111760940,673607265,656419192,1885434439,1633905000,1768956012,1920300131,1718558821,1851875872,224489057,1296647178,1095258912,541345106,1148350279,842082342,538978608,538976288,1193746464,1752195442,1818321769,1667854368,1701999988,543584032,1769107271,543255660,1936552545,2003788832,1141509486,1394625865,1163018568,1866932292,673598578,691024433,538976288,538976288,1919895335,1634495593,1717922848,1918967924,1634869357,1684370281,1229195789,1213407309,1145393729,1919895328,824714834,539570226,538976288,656416800]},{"sector":4,"data":[1769107271,543255660,1751607666,1918967924,1634869357,1684370281,168626701,541935940,1380010067,1730167877,1769365874,220428660,1296647178,1095258912,541345106,1684957527,168626701,1919111975,544105829,1701080909,1918981664,1818386793,168653669,541935940,1380010067,1394623557,1699246691,1952999273,1229195789,1213407309,1145393729,1919111968,1952737623,1141509480,1394625865,1163018568,1867325508,168650084,541935940,1380010067,1293960261,1866692705,218762604,1666393866,1852138866,1819231008,1444967023,1634300513,1936026722,1229195789,1213407309,1145393729,1886930208,1769172844,1866690159,225603436,1296647178,1095258912,541345106,1131312467,1919904879,1229195789,1213407309,1145393729,1667318304,1819231083,168653423,541935940,1380010067,1394623557,1766354549,218762612,1296647178,1095258912,541345106,1215198547,1141509492,1394625865,1163018568,1212620868,1751607653,1141509492,1394625865,1163018568,1632444484,1884514403,543450469,1394627393,1279741513,218762565,1142956042,1176520261,1851871854,695740448,1226849568,1378374734,824722510,539631657,723528056,168636704,1162092576,1163075654,540876871,538976304,538976288,538976288,538976288,538976288,538976288,539435040,544499027,1282241870,543908719,1327525748,537529678,2036681504,1734437958,540876915,1262830928,875573544,168634679,1179197472,1699424288,1634485881,1092645735,857752654,1025517874,1411395616]},{"sector":5,"data":[223233352,538976266,1263489056,808525893,539768628,1182360907,1936154988,542265120,168636979,1313153056,1179197508,538970637,541476164,222774611,537529610,1397704480,1226850901,1450469742,225669729,1226842122,1869771886,538970637,1232364871,1953853550,1632510067,607217005,1632509996,607282541,1968054316,1835091821,168653669,1866932256,1819044210,1953384801,1310748530,828730721,1310731300,845507937,537529636,1634488352,1835091833,1632510053,607217005,1632509996,607282541,1968054316,1835091821,168653669,537529632,1178944544,1195725600,807419168,538976288,538976288,538976288,538976288,538976288,538976288,1377838880,1869902693,1310745970,1867279733,1931504483,1702125940,538970637,1162563408,875573536,1260399671,1816557925,225666913,1142956042,1394624069,168642373,222580293,218762506,1095189258,1634623810,221929838,656416778,1634623810,1699504494,168653926,1094983712,857751892,943077170,757083190,909260082,825439540,908078134,537529648,1631725344,1634623854,1853321028,538970637,1096040772,909717792,741880118,808529184,858797877,825765936,959717420,221525043,656416778,1634623810,1884643694,538970637,1096040772,909717792,741880118,808529184,943273525,808466480,859185196,538970637,1851867687,1382116961,1952999273,538970637,1096040772,926036768,741750838,808525856,943009841,808597296,875700268,218762544,1095189770,1634623810]},{"sector":6,"data":[221929838,656416778,1634623810,1699504494,168653926,1094983712,874529108,892811317,808594488,909193522,741751088,909195060,842150960,876162100,942682675,741880884,842216505,875837488,876162104,942682675,741880884,909195060,842150960,808594484,909193522,741751088,537529648,1631725344,1634623854,1853321028,538970637,1096040772,842412576,741553457,825371936,859321395,808464949,841818156,942945073,858927664,757083193,808661298,959526711,539768886,858862125,942880560,741684281,858927928,741488432,842217504,960049459,808722476,858927926,874523698,842217008,168637497,1109860384,1851879009,225465697,1142956042,541152321,825374258,539767605,859189300,741487410,909128736,876163635,859316268,925905714,941632562,825438771,539769145,858862125,825702192,741881401,825371936,859254835,892614968,841818156,942945073,808596787,841821232,942945073,858927664,537529657,1631725344,1634623854,1751607634,537529716,1413563424,892608577,943011640,825040940,825308720,909588784,757083184,825373237,808792883,824192052,875968568,959985201,824192054,875968568,959985201,824192054,875968568,959985201,892152886,858862130,875574579,808529196,808530230,808859449,168636460,1850280461,1633055849,221934450,1881153546,1025516393,706753568,1314144544,690172200,168626701,1411850272,544434536,1629516649,1701602080,544367990]},{"sector":7,"data":[544825719,1881173876,543908713,543516788,1953719650,1634887456,1667852400,1869422707,1629513060,1818845558,1701601889,538970637,1159745103,1380930130,1414481696,1666392143,1852138866,1701080909,1869771333,537529714,1685015840,540876901,537529657,1380143904,542000453,1701080909,538970637,1159745103,1380930130,1414481696,1632641103,1953785196,1920091493,168653423,1179197472,1685015840,540876901,1213472825,1344294469,1413827649,874530132,540024876,1126637600,1801676136,1919903264,1261712928,1095189792,538970637,1159745103,1380930130,1414481696,221257807,537529610,1667321120,1701860200,1025533029,1818313504,1818575971,168655201,538970637,1293960777,543515759,540614717,1313163348,538970637,1666392096,1684625266,1025534068,808728096,538970637,1666392096,1768245362,544499815,892543037,537529648,1193287712,1734960456,1025537128,221590048,538976266,1397051936,1163022164,1095189792,1634623810,168649070,538976288,1229210962,1112285261,673607265,539765048,1851867730,691546150,1112875052,673607265,539765048,1851867716,691546150,168626701,538976288,542265158,540876905,1330913328,168638496,538976288,1163010080,1277183041,644768066,220817704,538976266,1480936992,224993364,537529610,1176510496,1763725903,807419168,542069792,537529656,538976288,1095062048,1111760964,673607265,168634729,538976288,1415071054,168651040,538970637,1329995808,543760466]},{"sector":8,"data":[540024893,941641556,538970637,538976288,1145128274,1631737120,1764238958,537529641,1310728224,542398533,218762601,538976266,1380927008,1025534240,1411395616,221782095,538976266,1377837088,541344069,1851867730,694757414,538970637,1162747936,1763726424,168626701,538976288,1215198547,540876916,168638771,538970637,1163086917,168626701,538976288,1467114323,1752458345,857750816,168636466,538976288,1215456083,1751607653,540876916,221261874,538976266,1699235616,1952999273,824196384,537529650,1377837088,1330926405,1126188370,1631732039,1634623854,538970637,1163010080,541935940,1851867724,691152934,1112678444,673607265,539765042,1851867733,691152934,1111760940,673607265,168634674,538976288,1229210962,1866932301,673598578,740896818,1919895328,841492036,539765040,1383231303,808593446,218762537,538976266,1380927008,1025534240,1411395616,221388879,538976266,1377837088,541344069,1851867724,694757414,538970637,1162747936,1763726424,538970637,1329995808,543760466,540024893,840978260,538970637,538976288,1145128274,1631732768,1764238958,537529641,1310728224,542398533,537529705,1176510496,1763725903,807419168,542069792,537529650,538976288,1095062048,1112875076,673607265,168634729,538976288,1415071054,168651040,538976288,542265158,540876905,1330913328,168636960,538976288,1163010080,1377846337,644768066,220817704,538976266,1480936992]},{"sector":9,"data":[224993364,537529610,1293951008,1399350113,1684366704,1293958432,1399350113,1684366704,824191520,168637230,538976288,1215198547,540876916,168636466,1313153056,1179197508,1163004429,1314018644,168626701,1701995347,1867345509,1917150564,980578162,538970637,1293960777,543515759,540090429,1313163348,538970637,1279467552,537529683,1277173792,1413563215,808525893,221585452,538976266,1230131232,572544078,1920102227,2032151673,1830843759,544502645,1702257000,1095189280,1195712556,1868767297,745697132,544370464,541149014,1885434471,1935894888,544175136,2036427888,1380927264,1095519305,1396785710,537529634,1159733280,168641614,1279598624,168641875,538976288,1701080909,824196384,538970637,1163010080,1162696019,538970637,541347397,168642121,1632635405,1953785196,1920091493,221934191,1293950986,543515759,540090429,538976288,538976288,656416800,541799478,541148997,1685217635,1769414771,1914727532,1763733109,1195581550,1869422657,221144420,1377837066,1297437509,1162747973,168645720,1163004429,1394876493,1230258516,654970179,1668047171,1634493764,168639097,1126178855,1801676136,1886593139,543450469,1948280431,1830839656,1768448865,221144430,1314211338,1330205763,1631789134,1698980716,561602924,168626701,561192992,1411398944,1380273481,538970637,168644420,538976288,1025515881,539060512,221323307,1277173770,542134095,1230261845,1230250060,542262605]},{"sector":10,"data":[561193005,540884512,168637742,1631789088,1698980716,561602924,1763720480,218762529,1145980170,1314211360,1330205763,218762574,1126180618,1702129253,168639090,538976295,1953391939,544436837,543452769,1852404336,1629516660,2019914784,1953702004,1735289202,544108320,1768366177,544105846,225931122,1344284426,1835102817,1919251557,168639091,538976295,544698194,1668489261,1852138866,2003792416,1836412448,225600866,538978058,2019906592,757081204,2019914784,1869881460,543515168,1852404336,224683380,168634122,541218131,1953391939,673215077,746024786,2019906592,220800116,1126178826,1025535087,2019642656,543977283,221388892,1277173770,1413563215,1867653189,1126182007,757099631,1162618912,1700014158,690254968,840970016,773860128,168634677,1380982816,542395977,1954047316,168639268,541347397,222451027,654970122,1164919840,1869377656,1852795251,654970170,1344282656,1969516402,544433507,1819310181,1869181807,1752637550,1629515365,1869116192,1936269428,1919510048,168649829,1632641063,1701667186,1936876916,654970170,1478500384,1495280675,539828259,1633906540,1852795252,543584032,1819310181,1869181807,654970222,1431505421,1866735682,1819310149,1869181807,2015895662,2032151587,168634659,538970637,1497451600,1112351264,860631119,1195787570,1128547909,537529634,1684099616,544437609,1666392125,1768245362,544499815,808788015,538970637,1293960777,543515759]},{"sector":11,"data":[540614717,1313163348,1668172064,540876835,1159738670,541414220,593718857,773864736,168636724,1329995808,593698898,807419168,542069792,1768186194,1394635637,542131540,593718857,538970637,1229135904,1162625874,595077152,595140652,1663052841,1159736355,1869377656,1852795251,1869377347,537529714,1480936992,593698900,538970637,542265158,1025516387,1684099616,544437609,807423828,1163154208,757604432,539631665,593718857,537529641,1126178848,1279480393,2015895621,2032151587,539765027,539763555,1262698818,1381258305,538970637,1329995808,543760466,540090429,824201044,168636464,538976288,1415071054,168651040,538976288,1953719634,808463904,537529653,1480936992,593698900,1313147405,1431511108,218762562,1142957834,1869108079,168639092,538976295,1953394499,1936486258,1851875872,543256161,1953458291,2036473971,1667457312,1769238629,1881171822,1702453612,1852383346,544503152,543452769,1953459312,1735289204,539429389,1752375328,1629516911,1701603182,539429389,1634885968,1702126957,221934450,538978058,1634488352,1316119929,757099893,1634488352,225600889,538978058,539785248,539828345,2036427856,1931965029,1919903520,1634495593,1936683040,1869182057,654970222,1430653453,1230259022,1142967887,1869108079,1344807028,1702453612,1836404338,746070060,220821792,537529610,1850287904,544503152,1953458291,538970637,1344292425,1702453612,1836404338,824196384]},{"sector":12,"data":[1162368032,537529678,1277173792,1952539503,1819231077,824196384,538970637,1163086917,538970637,1179197472,1685015840,540876901,1213472825,168644165,538976288,1867259936,1702125923,543977283,909516861,538970637,1279598624,168641875,538976288,1867259936,1702125923,543977283,909254717,538970637,1313153056,1179197508,538970637,541347397,168642121,538970637,1094930252,840975700,1867259948,1702125923,225210179,1344282634,1414416722,1849762336,979725415,168639266,1849761824,593849447,1193295136,1968075877,841491309,1867259948,1702125923,543977283,691478571,168626701,1330389024,1163149635,539767584,1633906508,1866687860,537529708,1230131232,572544078,1869374806,2037672291,221979194,1444945930,1668246629,544830569,1699160125,1836404340,741550115,1668238368,1130722401,723545199,691024160,168626701,1179197472,1634488352,1316119929,1025535349,1411396128,223233352,538976266,1735278880,539190636,942743613,539828272,1818717761,168633189,1313153056,1179197508,168626701,1160192032,1702060402,1886284064,168653941,1329995808,543760466,540090429,874532692,538970637,1330389024,1163149635,539781408,537529649,1344282656,1414416722,1095783200,673465667,1545613363,808986656,1293966368,1866692705,992553324,538970637,1330389024,1163149635,539781408,540030248,942153820,542908464,1131962701,690580591,538970637,1380982816,542395977,1128353875,858268741]},{"sector":13,"data":[542908464,540031016,1632444508,1819231096,221980969,1310728202,223631429,537529610,1853182752,544500040,1095114813,222647116,1344282634,1702453612,1953056882,1344290080,1400139628,678719336,2032151672,1849761836,593849447,1700143148,1768124268,539785588,2036427856,1968075365,168634733,1179197472,1634488352,1215456633,1025537129,1411395616,223233352,538976266,1399800864,544501608,1095114813,222647116,1159733258,222647116,538976266,1399800864,544501608,1381244989,168641877,538976288,1344292425,1702453612,1953056882,1344290080,1702453612,1836404338,1162368032,1817190478,1919252833,544044366,540221501,1817190445,1919252833,225277262,538976266,1667847712,2037542772,1668178244,1817190501,1919252833,225277262,1159733258,1226851406,218762566,1145980170,1314211360,1330205763,218762574,1142957834,1853182831,654970170,1142956064,1937203570,1701344288,1853190944,544497952,543516788,544239476,1948280431,1931502952,1701147235,168636014,1632641063,1701667186,1936876916,654970170,1293951008,1752462703,1226845472,1381245030,1679836501,1937203570,575611424,1970236704,1696622708,543519596,2002874980,543236211,1818848627,1869422693,778597493,220662285,1112888074,1399800864,673214069,1953853261,168634728,538970637,1952805671,1936683040,1869182057,1718558830,1853190944,538970637,540876920,1467114323,1752458345,840981536,544809018,1666392125,892479596,218762537]},{"sector":14,"data":[656416778,1634036835,1819222130,1970479204,537529710,1313426464,2015895621,1394617632,841509987,539765042,539828345,678191955,690567217,544745517,1666392107,842147948,2032151593,1394617120,824732771,740895032,1128350240,1414807883,1109404754,218762566,656416778,2002874980,2003136032,1853190944,537529658,1868703520,168655204,1229135904,1162625874,746072096,740915488,1818448672,691155240,1431511084,1414807886,537529682,1229017120,673207374,2032151672,1394617385,1413566037,168645204,538970637,2036429351,537529715,1313426464,2015895621,1394617632,841509987,539765040,674048377,539697272,678191955,740896818,740915488,1314214688,1381258305,538970637,1162758476,746072096,757102880,1818448672,691351848,2015898921,544809004,1666392107,892414060,539765033,1095652691,223499348,537529610,1313426464,2015895621,1394617632,824732771,539765045,539828345,678191955,690565169,544745517,1666392107,892414060,2032151593,1394617120,824732771,740895024,1314214688,1381258305,538970637,1162758476,544745504,1666392109,892414060,2032151593,1394617120,824732771,757672240,723548200,1818448672,691351848,544809004,1666392109,808527980,539765033,1095652691,223499348,537529610,1313426464,2015895621,1394617632,942173283,2032151593,1394617632,824732771,757672243,723548200,1818448672,740898856,723548448,1818448672,691220776,1394617385,1413566037,168645204]},{"sector":15,"data":[1229725728,673203534,539828344,678191955,539765048,539697273,678191955,690565937,544745517,1666392107,691546220,544809004,1666392109,858859628,539765033,1095652691,223499348,537529610,1313426464,2015895621,1394617632,824732771,539765048,539828345,678191955,757672245,723548200,1818448672,691548456,544809004,1666392107,691349612,1394617385,1413566037,168645204,1229725728,673203534,539828344,678191955,740898865,723548448,1818448672,690566440,544745517,1666392107,942745708,2032151593,1394617632,891841635,539765033,1095652691,223499348,537529610,1869424416,224949365,1226842122,1867325510,543716469,1313163348,1680285728,544694642,539127586,1953853293,537529704,1126178848,1279480393,2015895621,544809004,1666392107,691349612,1394617385,841509987,740899118,168636448,538976288,1313423696,2015895636,544809004,1666392107,691349612,807414825,221257772,1159733258,541414220,538976288,538976288,1680285728,544694642,1818848627,537529701,1126178848,1279480393,2015895621,695803948,1666392108,691546220,741351468,825370656,539631664,539191664,942743599,539765040,808661800,1881156128,790635369,808988960,537529641,1145980192,222710048,537529610,2036672288,168653669,1229135904,1162625874,544745504,741548077,757102880,740897312,539767072,537529648,1380533024,541412419,723548200,539767584,539828345,539765042,807414833,538970637]},{"sector":16,"data":[1413829456,544745504,741548077,757102880,740897312,168636448,1397760032,673207365,539697272,2032151603,840969504,807414825,168626701,541347397,222451027,654970122,2002874948,980312386,539429389,1634878496,1948283767,1646290280,1851879009,654970209,1634885968,1702126957,221934450,538978058,539190136,1866997805,1870293362,1818326126,1869562656,1852400754,224752737,538978058,539190137,1700143149,1667855474,1126198369,1685221231,1952542313,654970213,544350240,1869750317,1769234804,1881173615,1953067887,544108393,858599464,673197609,1599873056,689971247,1546465056,539429389,543384096,1718165549,1431458848,1752440901,1142976101,1115119986,1679847009,1937203570,1701344288,1851875872,543256161,1163086917,544500000,1935766117,1948283749,1646290280,1851879009,1393167713,1142964821,1115119986,673214049,740516728,593721632,745676844,694379040,168626701,1162626387,1126192195,541414209,537529714,1396785952,221257797,538976266,541477152,1411408738,542000456,542397776,593721384,1668882476,539765027,1851867724,1344285734,542393683,1163086917,1414877216,1668818976,2032151587,740893539,1631734816,539764334,223498072,1126178826,541414209,537529649,1226842144,1667375174,1162368032,1431314510,2015895636,539763555,690185081,1112875052,740716129,1163087904,1279598676,1344292179,673207381,740516728,593721632,1428171817,644768066,1331175468,537529682]},{"sector":17,"data":[1396785952,221388869,538976266,541477152,1411408738,542000456,542397776,593721384,1668882476,539765027,1851867716,1344285734,542393683,1163086917,1414877216,1668818976,2032151587,740893539,1631732768,539764334,223498072,1126178826,541414209,537529651,1226842144,1667375174,1162368032,1431314510,2015895636,539763555,690185081,1112678444,740716129,1163087904,1279598676,1344292179,673207381,740516728,593721632,1377840169,644768066,1331175468,1158286674,1394623566,1128614981,218762580,1145980170,1112888096,168626701,1634878503,1919895415,1634495593,654970170,1917067296,544438113,543516788,1769107271,543255660,1696624233,1701344361,1195581554,1919885377,1095189792,1685024032,654970213,1851858976,1634934884,544433526,543516788,1885434471,1935894888,1952539680,1852383329,544104736,1634890337,168636025,1918980135,1952804193,980644453,539429389,757102624,1663072288,1685221231,1952542313,1718558821,1919903520,1634495593,539429389,757102880,1663072544,1685221231,1952542313,1718558821,1701344288,1919903520,1634495593,539429389,1836212512,539828339,1752459621,1277194853,544499301,539783285,1751607634,1886724212,1919885356,1953456672,1868832872,168652407,541218131,2002874948,1769107271,543255660,539785256,1629498489,695430514,538970637,541935940,1396777065,1313428256,541412423,539435040,1633906508,1852383340,544761188,1953723757,543515168,1735289203]}],[{"sector":1,"data":[1881171308,1768121714,1852795251,168626701,1680285728,544694642,1684104552,538970637,1162758476,544745504,1666392109,691284076,695803948,544745517,1666392107,775039084,539765049,539697273,678191955,740895030,1245859616,1129595717,1380928591,1178738732,538970637,1162758476,544745504,1666392109,691349612,544809004,1666392107,691153004,2015898921,1394617120,875064419,2032151593,1394617120,875064419,539765033,1162494543,1329812547,743591756,222708256,537529610,1919166240,1696626529,796091769,2003792482,538970637,1162758476,544745504,1666392109,691218540,544809004,1666392107,691153004,2015898921,1394617120,841509987,2032151593,1394617120,841509987,539765033,218762544,656416778,2002874980,1936682528,1718165605,1634166048,538970637,1293960777,543515759,540614717,1313163348,538970637,1329995808,543760466,841818173,542069792,168636717,538976288,1397760032,673207365,539697272,2032151657,874523424,807414825,538970637,538976288,1413829456,544745504,543760427,741548075,723548448,740897824,168636448,538976288,1415071054,168651040,1313153056,1179197508,168626701,1848057888,225141605,1277173770,541412937,757102632,1818448672,740897576,723548448,1818448672,690566952,544745517,1666392107,691153004,544809004,1666392107,691480684,1327508521,1128614466,1280262996,168645199,538970637,1685021223,537529721,1313426464,2015895621,1394617632]},{"sector":2,"data":[942173283,2032151593,1394617120,942173283,674048297,539697272,678191955,691613238,544809004,1666392107,875636844,539765033,1162494543,1329812547,743591756,222708256,1277173770,541412937,757102632,1818448672,740898344,723548448,1818448672,691351848,2015898921,1394617120,875064419,740899118,723548448,1818448672,691024424,1327508521,1128614466,1280262996,539775567,168642114,538970637,1734700071,537529715,1380927008,1025534240,1411395616,221519951,538976266,1380533024,541412419,723548200,1818448672,740911400,723548448,1818448672,691352104,1394617385,824732771,539765040,1162494543,1329812547,743591756,706753312,594112544,874524448,540614700,1768955946,539959331,537529656,1126178848,1279480393,2015895621,1394617120,757623907,723527990,1818448672,757098792,691088928,544809004,1666392107,892479596,539765033,678191955,740896817,1245859616,1129595717,1380928591,892411948,1881156128,790635369,539768864,539191664,221519919,1310728202,223631429,537529610,1751328544,225735525,1126178826,1279480393,2015895621,1394617632,875064419,740899118,723548448,1818448672,691024168,1394617385,875064419,740899118,539766816,539631667,539191664,741482543,168636448,1229135904,1162625874,544745504,1666392107,775170156,539765049,539697273,678191955,690565169,1666392108,775170156,539765049,1881156656,539763561,539631667,539191664,221388847]},{"sector":3,"data":[537529610,1380927008,1025534240,540355872,757092180,537529649,1394614304,1128614981,1094918228,1629504851,225668466,538976266,1126178848,541414209,537529649,538976288,656416800,1751607634,1918967924,1886724205,538970637,538976288,1229135904,1162625874,544745504,1666392107,543762540,825106477,2032151593,1394617120,824732771,740895028,1818448672,740899112,1245859616,1129595717,1380928591,540221484,1768955946,539959331,891300916,1881156128,790635369,168637472,538976288,538976288,1129466179,673203532,539697272,678191955,691613236,1394617120,1764256867,2032151593,1394617120,875064419,539765033,678191955,539765049,1162494543,1329812547,743591756,706754336,594112544,874524448,1768955948,539959331,537529652,538976288,1193287712,673207365,539828344,678191955,740898097,757102880,1818448672,690565416,544745517,1666392107,875636844,2032151593,1394617120,841509987,740895032,1919895328,168633938,538976288,1094918176,840975699,538970637,538976288,1277632544,544499301,544043617,168652917,538976288,538976288,1129466179,673203532,539697272,678191955,539828329,740897070,723548448,1818448672,690566184,1666392108,691611756,1112481836,1413694794,1330401091,857746514,1881156128,790635369,539767840,539631669,539191664,221519919,538976266,538976288,1380533024,541412419,723548200,1818448672,959329320,539697193,678191955,539765097]},{"sector":4,"data":[539697273,678191955,690566193,1666392108,691611756,1112481836,1413694794,1330401091,924855378,1881156128,790635369,539767840,539191664,221519919,538976266,538976288,1413826336,544745504,1666392109,892414060,2032151593,1394617632,824732771,674048297,539697272,678191955,740897841,723548448,1818448672,691548712,1193290793,642544239,538970637,538976288,1163084099,168637216,538976288,538976288,1953448487,1918967912,1679848301,225343343,538976266,538976288,1380533024,541412419,723548200,1818448672,757098792,691088928,544809004,1666392107,875636844,539765033,678191955,539765049,1162494543,1329812547,743591756,706753312,594112544,874524448,540352556,1768955946,539959331,537529652,538976288,1126178848,1279480393,2015895621,1394617120,875064419,539572526,1666392107,694757484,544809004,1666392107,875636844,539765033,678191955,539765049,1162494543,1329812547,743591756,706754336,594112544,874524448,1768955948,539959331,537529652,538976288,1193287712,673207365,539828344,678191955,740898097,757102880,1818448672,690565416,544745517,1666392107,875636844,2032151593,1394617120,841509987,740895032,1919895328,168633924,538976288,541347397,1162626387,168645699,1162747936,1763726424,1313147405,1431511108,218762562,2017797898,1685023856,1919895397,1634495593,654970170,1631789088,1936028533,1919903520,1634495593,1886938400,1769172844]},{"sector":5,"data":[1998614127,544105832,1768169569,1952671090,1953064992,1667460896,225669749,1632642826,1701667186,1936876916,654970170,592977952,593043500,1931488544,544501608,1633906540,1852795252,1430653453,1230259022,1159745103,1869377656,1866949988,1819044210,2015895649,2032151587,168634659,1096359968,1025534564,1818448672,691155240,538970637,1784955224,1394621728,891841635,537529641,1818448672,1025516376,1919111968,1952737623,539959400,221262387,1394614282,593063011,1394621728,1699246691,1952999273,840970016,168636464,1179197472,539195424,1666392124,1684625266,790653044,1411396128,542000456,2036427856,1766355557,540876916,1279598641,1344292179,1702453612,1953056882,840973600,538970637,1497451600,1112351264,827076687,1195787574,1128547909,218762530,1176510474,1763725903,824196384,542069792,539631672,1483498323,537529635,1126178848,1279480393,1193812037,1818849903,676880748,2036427856,1766355557,723528052,892220192,1394616864,592997475,1478503200,745169985,1919895328,1634495593,1817192537,1919252833,695494984,924855072,1394616864,593063011,1495280416,694838337,745087020,1886930208,1769172844,1866690159,745697132,740305952,774974752,168638261,538976288,1162758476,1866934304,1819044210,1344821345,1702453612,1953056882,539697193,539631671,1483498323,1193290787,1818849903,676946284,2036427856,1766355557,723528052,706754848,1818448672,757080921,757688608]},{"sector":6,"data":[1919895336,1634495593,1817192536,1919252833,695494984,1866932268,1819044210,1344821601,1702453612,1953056882,539697193,539631673,1500275539,539828259,539765097,1819310149,1869181807,1819231086,168653423,1162747936,1763726424,168626701,1329995808,543760466,540090429,824201044,539631670,1483498323,537529635,1226842144,543760454,942153788,1394616864,592997475,1213472809,1126190661,1279480393,1193812037,1818849903,676880748,2036427856,1766355557,723528052,892220192,1394616864,592997475,1478503200,745169985,1919895328,1634495593,1817192537,1919252833,695494984,924855072,1394616864,593063011,1495280416,694838337,942153772,1394616864,592997475,824191776,539828265,1109404777,1095451457,743593044,740305952,774974752,168638261,538976288,1129466179,673203532,1769107271,1482779756,1634488360,1215456633,539587689,775102507,539631669,1483498323,539697187,1784955224,1866932268,1819044210,1344821601,1702453612,1953056882,539697193,1784955225,1763716137,543760428,541347661,539697202,740305969,757083168,926232113,538970637,1415071054,168651040,538970637,542265158,540876905,706753586,1818448672,1411392344,540090447,1346720851,221326624,538976266,1380533024,541412419,1919895336,1634495593,1817192536,1919252833,695494984,857746208,706753838,1818448672,723526488,1682004000,1193290858,1818849903,676946284,2036427856,1766355557,723528052,1682004256]},{"sector":7,"data":[539765098,1109404777,1095451457,743593044,740305952,774974752,168638261,538976288,542265158,1853189955,540876916,1330913329,808464928,538970637,1162747936,168645720,1162747936,1763726424,168626701,2017796128,1685023856,1919895397,1634495593,1344290080,1702453612,1953056882,1313147405,1430659140,1230259022,168644175,1193740813,1850307685,1937012080,654970170,1699160096,1965060980,544367987,1970302569,1629516660,1700929652,1852729703,543649385,1730176623,224750945,1632642826,1701667186,1936876916,654970170,1817190432,1919252833,539763761,2036427856,607285861,1881156896,1702453612,1634607218,225666413,538978058,1198355790,1936026977,1847602464,1700949365,1718558834,1835099936,1948283749,1819287663,168655201,541218131,1232364871,1953853550,1344807027,1702453612,740569458,1634488352,846357881,1310731300,1632071029,695428461,538970637,1330401091,741810258,168636448,1279467552,218762579,1277173770,1413563215,741875781,221589792,1277173770,541412937,1431326281,1310859348,543518049,1344300655,1702453612,540090482,1717912616,1953264993,656424224,2036427856,824210021,540682535,1344289570,1702453612,220475762,1226842122,1817190470,1919252833,1025516593,539107872,1313163348,538970637,1817190432,1919252833,1025516593,1817190944,1919252833,220344608,1159733258,222647116,538976266,1634488352,829580665,540876836,1413891404,1817192484,1919252833,539763761]},{"sector":8,"data":[220803121,1159733258,1226851406,218762566,1277173770,1413563215,808525893,892411948,538970637,1162758476,1347307808,572544085,1701667150,543584032,2036427856,840987237,1698965536,1819631974,540876916,1634488359,544367993,975775538,540746272,2036427856,607285861,538970637,1344292425,1702453612,539243122,572661821,1162368032,537529678,1344282656,1702453612,539243122,1344413757,1702453612,573710450,538970637,1163086917,538970637,1817190432,1919252833,1025516594,1178946592,1344808020,1702453612,740569714,691024160,538970637,541347397,168642121,538970637,168644420,538976288,1094930252,824198484,891300914,1344289334,1414416722,1095783200,673465667,992556338,538970637,1330389024,1163149635,741486880,221458720,538976266,1347307808,572544085,2036427856,544175136,544698216,2037277037,1953461280,1881173089,1953393007,1143480435,1969317477,1025537132,573125408,1634148411,220489069,538976266,1836404256,1701667143,540876915,676086102,1413891404,1634150436,740582765,690565664,538970637,1347374924,1414419744,1310739529,1632071029,544433517,540024894,541347393,676218188,1701667175,1008740644,1327510304,1162616914,1634150478,690251117,807419168,538970637,1310737993,1632071029,544433517,540024893,1313163348,1836404256,1701667143,540876915,218762547,1142956042,537529679,1277173792,1413563215,875634757,859119660,1380982842,542395977,1128353875]},{"sector":9,"data":[841491525,221980984,538976266,1129270304,541414465,539767857,168638257,538976288,1431326281,1193418836,1769365874,1763735924,1699553390,1936876916,1667584815,1631922208,543716466,775495741,992094520,1634887456,168633462,538976288,1986097767,595162217,1444953376,1730694209,611737970,537529641,1330596896,1314201680,541870420,1986097767,595162217,807419424,542265120,676218188,1986097767,1025517860,168636448,1179197472,1634887456,2037672310,540876835,1213472816,1730170437,1769365874,539195764,775495741,1158286648,1394623566,168641109,1193740813,1968075877,168639085,1193287719,544437349,1768710518,1970151524,1769104749,1852383331,544503152,1836020326,1702065440,654970226,1634885968,1702126957,221934450,538978058,746024786,1819231008,1814048032,1952539503,544108393,1696624500,544172131,1970302569,1175063924,1413697109,542003017,1316250951,539192693,2003784232,1866670124,168634732,1699880992,1953265011,540876836,168632866,1866735648,1025533294,1279346208,168641875,1213669408,541412425,1162563145,1008739417,572661822,1163337786,538985550,1816340256,544366949,1652122987,1685217647,1718968864,225600870,537529610,542065696,1279871063,1330520133,1866735700,168650094,538970637,1330389024,1163149635,2003784224,1866670124,537529708,1344282656,1414416722,1936020000,611609717,1212358715,958932050,540748085,538976290,221979168,537529610,1260396576]},{"sector":10,"data":[539255906,1313415229,609830219,538970637,1163075616,1413694796,1396785952,1649090629,168633444,538976288,1094918176,572540243,1411392048,958537807,537529634,538976288,1377837088,1819636581,1025516660,1936020000,611609717,1260399392,220488802,538976266,1126178848,541414209,220343842,538976266,538976288,541477152,1414745673,1699883090,1953265011,572533796,539566638,540024893,1313163348,538970637,538976288,538976288,1970496850,539260012,1699881021,1953265011,539697188,610558539,538970637,538976288,1313153056,1179197508,538970637,538976288,1163084099,1380467488,858859556,537529641,538976288,1226842144,1096163398,1699883084,1953265011,1042295076,808858400,1162368032,537529678,538976288,538976288,1936020000,611609717,572538144,537529634,538976288,1159733280,222647116,538976266,538976288,1142956064,543518319,1381244989,168641877,538976288,538976288,541347397,168642121,538976288,1094918176,1126188371,673469000,168634680,538976288,538976288,1277183561,1378373189,1819636581,539567220,540024894,1313163348,538970637,538976288,538976288,1970496850,539260012,1162616893,673469510,1970496850,740586604,1313164320,1936020008,611609717,539828265,168634673,538976288,538976288,541347397,168642121,538976288,1094918176,1159742803,222647116,538976266,538976288,541477152,676218188,610558539,540942377,1213472816,168644165,538976288]},{"sector":11,"data":[538976288,1161961504,168644677,538976288,538976288,541347397,168642121,538976288,1313153056,1163075652,1413694796,538970637,1347374924,168626701,1330389024,1163149635,2003784224,1866670124,537529708,1230131232,1377850446,1819636581,540746868,992092194,168626701,1699160096,1836404340,540876835,676086102,1970496850,690254956,1313147405,1430659140,1230259022,168644175,1193740813,1818849903,1850302828,980382324,539429389,1936278560,2036427888,1869029491,1819044210,1864397665,1668489326,1852138866,1919903264,1701344288,1919510048,1948284019,224750953,538978058,1869376609,1948283767,1730176360,1752195442,1818321769,1952539680,1869881441,543515168,544503152,1869901417,544104736,1634890337,654970233,1634885968,1702126957,221934450,538978058,2036427856,607220325,1817190444,1919252833,757081138,1701336096,1835101728,1864397669,1752440934,1819287653,1919252833,654970227,1431505421,1866932290,1819044210,1953384801,673214322,2036427856,607220325,1817190444,1919252833,220800050,1277173770,1413563215,909189189,875765804,1380982842,542395977,757935394,757935405,757935405,573386029,538970637,1094930252,824198484,857746488,1344289332,1414416722,542515744,1767252029,1226864485,1869771886,537529634,1129270304,541414465,539769137,540685363,1313428048,1344413780,1344290080,544825708,1701667143,537529634,1129270304,541414465,539767090,540685619,1313428048]},{"sector":12,"data":[1495408724,544372079,1768908867,574580067,168626701,1329864736,1229477664,1126188364,611475816,572538144,537529634,1126178848,611475816,1226849568,1497713486,537529636,1330596896,218762576,1226842122,1867325510,1025533284,1411395872,223233352,538976266,1025538080,892481824,538970637,544808992,808525885,537529648,1397507360,537529669,2015371296,840973600,168638519,538976288,540876921,221591345,1159733258,1226851406,218762566,1394614282,1162170947,1867325518,168650084,1699946528,1919112052,225338725,537529610,541477152,1701080909,824196384,1162368032,1698897998,1919251566,539768096,1701597218,543519585,1953063287,1768453920,1730176364,1818849903,544432492,543519329,2002874980,220343918,537529610,1162434080,1380982871,542395977,1330913337,221524512,537529610,541477152,1701080909,958414112,1162368032,1095770190,1414808908,1112481861,1413694794,1330401091,1109404754,1131111265,1919904879,220203533,1142956042,1199006066,1818849903,2015388012,746135596,1297236256,1464812627,537529678,1397506848,168636960,1917067296,1866954593,1819044210,746070113,539785504,1413891404,168644693,1279467552,221388883,1142956042,1199006066,1818849903,2015388012,746135596,1195987488,1347769416,538970637,542329923,537529650,538970637,1464158550,1230131232,824202318,542069792,168637746,1179197472,1685015840,540876901,1213472825,1344294469,1413827649,1327514964]},{"sector":13,"data":[1128614466,1280262996,539775567,168638004,537529632,541477152,1396786005,1126704197,611475816,540876841,539121186,1313163348,538970637,1698897952,1919251566,539767328,1109414178,1394622752,1126189344,1193287712,1377849120,1277184288,1092635680,220353312,538976266,1852130080,544367988,572533813,538976288,538976288,538976288,1096045344,1313428050,538982983,538976288,538976288,538976288,168632864,538976288,1025516624,1634488352,829580665,539697188,1312890914,539107396,1817190443,1919252833,168633394,538976288,1953391939,924873317,609230892,168626701,538976288,542397776,757102632,741552416,740915488,1919895328,539764292,1413829456,538970637,1431314464,2015895636,874523424,2032151607,1193290793,642019951,1397760044,168645701,538976288,1953719634,168636704,538970637,1431314464,2015895636,824192288,2032151603,1193290793,642544239,1397760044,168645701,538976288,542397776,723548200,741815328,740915488,1919895328,539764306,1413829456,538970637,1280319520,572545345,808595828,829174127,1849254454,1633772080,1851928686,812540464,1633771874,962736238,1633824878,1647341153,537529634,1377837088,544502629,168637230,538970637,1431314464,2015895636,824192288,2032151603,1193290793,642937455,1397760044,168645701,538976288,542397776,723548200,741815328,740915488,1919895328,539764300,1413829456,538970637,1280319520,572545345,829174383]},{"sector":14,"data":[959276342,761606254,761539940,761606254,761606254,761606254,761539940,812526948,1849240933,1680696624,1848468525,573400368,538970637,1699880992,773878899,218762547,538976266,1414877216,544745504,858857517,695803948,1866932268,740707442,1163087904,537529684,1344282656,673207381,539697272,539768628,539765113,1383231303,1344285734,223626579,538976266,1095520288,1864507481,909208626,1849240935,1697474352,1731227237,1731227181,1731227181,1701143853,761737326,1731227193,1852138797,573400880,538970637,1699880992,773878899,218762547,538976266,1414877216,544745504,858857517,695803948,1866932268,740708978,1163087904,537529684,1344282656,673207381,539697272,539768628,539765113,1282568007,1344285734,223626579,538976266,1095520288,1864507481,909208626,812530018,1851875682,1848469296,1848469296,1697474352,812541285,962736495,1633824878,1647341153,537529634,1377837088,544502629,168637230,538970637,1329995808,543760466,540090429,874532692,538970637,538976288,542397776,757102632,741552416,740915488,1919895328,539764300,1413829456,538970637,538976288,542397776,723548200,741815328,740915488,1919895328,539764306,1413829456,538970637,538976288,1497451600,827597344,810496054,1160917836,1178945350,220349252,538976266,1377837088,544502629,168636718,538976288,1431314464,2015895636,824192288,2032151603,1193290793,642937455,1397760044]},{"sector":15,"data":[168645701,538976288,1431314464,2015895636,874523424,2032151607,1193290793,642544239,1397760044,168645701,538976288,1280319520,572545345,808857940,860631119,1195787570,1128547909,537529634,538976288,1936020000,825106548,538970637,1162747936,168645720,1313153056,1179197508,1313147405,1431511108,218762562,1850287882,980382324,539429389,1936278560,2036427888,1634148467,1763730797,1869771886,1952675172,225341289,1112888074,1953384736,168652658,538970637,1163019091,807423557,538970637,1413761367,808984648,892477484,538970637,1131962701,1025535087,221263904,1126178826,1380928591,741683488,168636448,1279467552,218762579,1126178826,1702129253,741613682,542188064,543236162,543760499,538976355,1327515424,1226854944,1277185056,1394622752,537529634,1280262944,924865103,538970637,1953391939,908096101,1126309932,1920561263,1952999273,692267040,1667845408,1869836146,1126200422,1869640303,1769234802,824209007,573585721,538970637,1953391939,941650533,1495408684,544372079,1936943469,544108393,1948283753,1768431727,1870209140,1864397429,1852797040,544501349,1752459639,1701344288,1886938400,1768189804,220358510,1126178826,1702129253,741941362,1633821216,1634623854,544825888,2037539190,543649385,543516788,1818717793,1851859045,1869619300,544367991,2032166511,544372079,1869768820,1948265591,1852402529,168632935,1698897952,1919251566,741355808,1852383776]},{"sector":16,"data":[1629515636,1970234211,1998615662,543452777,1701146739,1730161764,1769365874,539785588,543452769,543516788,2037672291,2037084960,1701734764,168632878,1698897952,1919251566,741421344,1750344224,1769414757,1931502702,1684366704,544434464,2003789939,2036473966,1679843616,1667592809,1852795252,1629514849,2003792498,544497952,543516788,1953787746,220360047,1126178826,1702129253,842080370,1864507436,1752440934,1819287653,1852406113,1768300647,744778853,1937008928,1852140576,543716455,1634493810,1702259060,544175136,544437353,1701999731,1752459118,168632878,1698897952,1919251566,741618208,1917854240,544437093,544829025,544826731,1663070068,1769238127,577074542,168626701,1280319520,572545345,827605581,827273270,1145256012,1145259077,1128608844,168632899,1884495904,1818980961,1969311845,168650099,1179197472,1685015840,540876901,1213472817,1293962821,1866692705,540876908,168636468,541347397,222451027,654970122,1701536077,2037672259,1885430611,168639077,1126178855,1952540018,1914729317,1868852833,1802707053,1852402809,1868963941,1634148466,168650093,1918980135,1952804193,980644453,539429389,1866678816,690516591,1629498656,1702065440,1701064050,1701734758,2037653604,1629513072,2036429426,1768453920,1931503715,1701998452,1752440947,1868767333,1768190575,1702125934,1718558835,539429389,1701344288,1886418208,1814065765,544499301,1852993379,1864397413,1634017382]},{"sector":17,"data":[1646291043,1684826485,778530409,1431505421,1632444482,1766024555,1666414964,543518817,1866678824,690516591,542327072,1867536728,695496297,168626701,544743456,221388861,537529610,1699948320,1752440948,1819484261,1852403823,1920213095,543452773,1948280431,1663067496,544830569,1885430643,1310731877,1950906213,544434464,544695662,1818850658,1735289188,1768253472,225732711,1394614282,1701867372,1176517920,1851871854,220804648,1394614282,1128614981,1094918228,1394623827,1701867372,538970637,1094918176,824198483,1699618874,544491639,892411965,538976288,538976288,538976288,538976288,1884628768,1685217655,1869378336,168650096,538976288,1163084099,540684832,1215784270,540876916,540029745,538976288,538976288,538976288,656416800,1853321028,1685217655,1869378336,168650096,538976288,1163084099,1411396384,976560207,2003127840,1025537096,540356896,538976288,538976288,656416800,539121186,1886350451,539828325,1953722221,1836016416,225341293,538976266,1396785952,976625733,2003127840,1025537096,808661280,538976288,538976288,538976288,538976288,1986939175,1702130277,1445077092,1819484194,224751727,1159733258,1394623566,1128614981,218762580,1226842122,1867325510,1025533284,1411397920,223233352,538976266,1953448480,1282240372,543518313,858988605,538976309,538976288,538976288,538976288,538976288,1953448487,544042868,1646290543,1684826485,224882281]}],[{"sector":1,"data":[538976266,1232357408,1025532782,540029216,538976288,538976288,538976288,538976288,538976288,538976288,1668172071,1935762802,1635131493,543520108,544370534,544695662,1734960488,168653928,538976288,1114006852,1952737623,540876904,538982195,538976288,538976288,538976288,538976288,656416800,1634100548,544500853,1818850658,1735289188,1768253472,225732711,538976266,1851871776,1215131492,1751607653,540876916,540029489,538976288,538976288,538976288,538976288,1851871783,544042852,1734960488,1679848552,1701209705,1668179314,537529701,1461723168,1952737623,540876904,538976307,538976288,538976288,538976288,538976288,538976288,1462181920,1868852841,1769414775,224949348,538976266,1699239712,1952999273,908082464,538976288,538976288,538976288,538976288,538976288,538976288,1852397351,544698212,1734960488,168653928,538976288,1718174807,540876886,538981681,538976288,538976288,538976288,538976288,538976288,656416800,1853189955,544367988,544370534,1684957559,1931507567,1768120688,757098350,1919252000,1633905012,537529708,1461723168,1751542084,824196384,538976304,538976288,538976288,538976288,538976288,538976288,1126637600,1953396079,1713402469,1998615151,1868852841,1886593143,1852400481,539828327,1769107304,1953394554,168651873,1279598624,168641875,538976288,1953787714,1766616431,1025533294,809054496,538970637,1950883872,543387209]},{"sector":2,"data":[221651005,538976266,2003127840,1025537096,2003127840,706769992,540029472,892543068,538976288,538976288,538976288,1784955175,544502645,544370534,222381891,538976266,1717912608,1684625218,1025534068,221786400,538976266,1851871776,1215131492,1751607653,540876916,168637493,538976288,1684625239,1025534068,168636704,538976288,1768245335,544499815,221388861,538976266,1766086432,1025529446,168637728,538976288,1718174807,540876904,537529652,1145980192,222710048,537529610,1920287520,1818850626,1735289188,824196384,538970637,168644420,538970637,1163075616,1413694796,1396785952,1817387077,224751727,538976266,1126178848,541414209,537529649,538976288,1310728224,1950906213,1310735648,1950906213,1210067744,1668172148,538970637,538976288,1163084099,168636960,538976288,538976288,1215784270,540876916,1215784270,539828340,1850307656,537529699,538976288,1396785952,540221509,891309908,538970637,538976288,1179197472,1042315296,1919111968,1952737623,542908520,1213472818,168644165,538976288,538976288,1699618848,544491639,1699618877,544491639,540155949,1950883882,224620105,538976266,538976288,1397507360,537529669,538976288,538976288,2003127840,1025537096,2003127840,723547208,706753056,1232357408,168649582,538976288,538976288,541347397,168642121,538976288,1094918176,874530131,538970637,538976288,1179197472,1042315296,1919111968,1952737623]},{"sector":3,"data":[542908520,1213472818,168644165,538976288,538976288,1699618848,544491639,1699618877,544491639,540155947,1950883882,224620105,538976266,538976288,1397507360,537529669,538976288,538976288,2003127840,1025537096,2003127840,757101640,706753056,1232357408,168649582,538976288,538976288,541347397,168642121,538976288,541347397,1162626387,168645699,538970637,1395073056,1998615653,1752458345,543584032,1818850658,1735289188,1684955424,1701339936,1948281699,1702043759,1718165605,544500000,1819635575,1869029476,1717989152,1701344288,1919120160,225338725,538976266,1767326240,543716452,1850089533,678322514,1114006852,1952737623,723528040,1717912608,1684625218,168650868,538976288,2015381065,1109404448,1952737623,540942440,1467114323,1752458345,1162368032,1463951438,1752458345,1394621728,1767338595,543716452,544743469,221388845,537529610,656416800,544499027,1734960488,1864397928,1969365094,1768189033,1629513582,1663067246,1801676136,544175136,543516019,1763731049,1869029492,1646293861,2003790949,1919120160,225338725,538976266,1699234336,1952999273,1176517920,1851871854,1851871784,1215131492,1751607653,723528052,2003127840,168653896,538976288,1109411401,1734960456,1008759912,1232357408,1411408750,542000456,1768245314,544499815,1950883901,224620105,537529610,656416800,1667590211,1869881451,1701147424,543582496,1818850626,1735289188,544434464,544173940]},{"sector":4,"data":[1751607656,538970637,1179197472,1953448480,1282240372,543518313,1212293165,1751607653,1027350644,2019642656,1734960456,723547240,1699235616,1952999273,1162368032,1212293198,1751607653,540876916,1215848781,1751607653,539697268,1768245319,544499815,221585453,537529610,656416800,544499027,543516788,1919905635,1634625892,544433524,1948280431,1646290280,1684826485,543649385,1869901417,1701344288,1920098592,168655201,538976288,1869562690,1967335538,1769292402,1852400748,1479420263,1919905603,2015378720,538970637,1128407072,678588271,1114797379,1684826485,694644329,1866684718,1025536623,1953448480,1282240372,543518313,1212293165,1751607653,218762612,538976266,541477152,1701080909,958414112,1162368032,1967267918,1768189033,1866688366,544370540,1850089533,678322514,723527987,1159738400,541414220,1818850626,1735289188,1869377347,540876914,218762546,538976266,1917069088,1948284769,1646290280,1684826485,744975977,1953853216,1701734764,1919510048,539784307,1852139636,1818846752,224683372,538976266,1313426464,2015895621,824192288,1866604588,1836020852,1701734732,824191776,2015898921,1109404448,1952737623,539697256,1109404721,1869902959,1852394605,539828325,1768245314,544499815,691085357,1094852652,1380404035,1145984335,222437420,538976266,1313426464,2015895621,1866604588,1836020852,1701734732,2015898921,1109404448,1952737623,1109404776,1869902959,1852394605]},{"sector":5,"data":[539828325,1768245314,695494759,1967267884,1768189033,1866688366,745697132,222708256,537529610,656416800,2002874948,1701344288,1852405536,1937207140,538970637,543367200,544743485,221454379,538976266,223298592,538976266,1176510496,1763725903,1109409056,1734960456,757101672,1411396384,540483663,1346720851,1146563872,223766121,538976266,538976288,541477152,1701080909,540949536,1213472825,168644165,538976288,538976288,1767317536,1819231086,540876914,1382958632,841510497,539828265,706750770,221457696,538976266,538976288,1397507360,541477189,1632792134,691284078,824196384,1162368032,537529678,538976288,538976288,1852397344,1919708995,941636896,538970637,538976288,1279598624,168641875,538976288,538976288,1767317536,1819231086,540876914,1145981271,1329813327,223498060,538976266,538976288,1145980192,222710048,538976266,538976288,1313426464,1663574085,1866604588,1836020852,1701734732,1763716384,1663577385,1461725984,1952737623,1109404776,1869902959,1852394605,539828325,539697257,1768245335,695494759,1767317548,1819231086,1109404786,537529670,538976288,1480936992,537529684,538976288,1025532704,723542816,1766086432,168650854,538976288,1347374924,1414419744,1663061065,540884512,539697272,1684625218,757098612,168637216,538970637,544743456,544743485,1463951403,1752458345,840968992,168626701,538976288,1114797379,1684826485,543649385]},{"sector":6,"data":[1967333437,1769292402,1852400748,539697255,218762545,1277173770,542134095,1230261845,544743500,1666392126,1684625266,757098612,1232357408,168649582,538970637,1953718604,1818850626,1735289188,1126186272,1967288949,1768189033,757098350,168636704,538970637,1952797479,1852397344,1886593124,224683365,1461723146,543452777,1850089533,678322514,539570225,221585453,1226842122,1850089542,678322514,1025517875,1411395872,223233352,538976266,541477152,1684957527,807419424,1162368032,537529678,538976288,1852397344,540876900,1684957527,1176513312,1851871854,691024168,538970637,1279598624,168641875,538976288,1767317536,1025533038,1852397344,539828324,1632792134,808527982,537529641,1159733280,1226851406,537529670,1145980192,222710048,537529610,1917069088,1461745505,543452777,1701146739,1918967908,225931122,1226842122,1767317574,1008755822,540024894,1313163348,538970637,1767317536,1766614126,1025533294,1852397344,539631716,539631667,1919111976,1952737623,542908520,691024435,538970637,1229725728,673203534,1467114323,1752458345,840981536,1666392108,1768245362,544499815,691347501,1666394157,1684625266,1545627764,723530272,1852397344,1852394596,1394617445,1699246691,1952999273,891301152,1159736361,1869377656,1852795251,1869377347,537529714,1226842144,1767317574,1042310254,1411395616,542000456,1869771329,1919501431,757087520,1279598642,1092633939,2003792498]},{"sector":7,"data":[544368964,221388861,538976266,1313426464,1395138629,1767338595,543716452,540155951,1767317547,1766614126,539780462,1215456083,1751607653,539828340,674048309,1467114323,1752458345,840970016,1461725984,1281650281,543518313,1916870699,1148678002,539783785,1215456083,1751607653,539828340,539828277,539765042,1819310149,1869181807,1819231086,168653423,538976288,1162758476,1666394144,1684625266,790653044,723530272,1852397344,1852394596,1394617445,1699246691,1952999273,891301152,1395141929,1767338595,543716452,540155951,1767317547,1766614126,723543406,1920090400,1766094703,1394617458,1699246691,1952999273,891301152,840968992,1159736361,1869377656,1852795251,1869377347,537529714,1145980192,222710048,1145980170,1112888096,168626701,1634488359,1866949987,1819044210,221934433,538978058,1934906704,1701344288,1919895328,1634495593,1852776563,1886352416,543584032,543516788,1818850658,1735289188,538979955,1953723725,1986095136,1919164517,225343329,538978058,1769107271,1935764588,1919510048,221148275,1632642826,1701667186,1936876916,654970170,1128407072,678588271,539828265,1919251317,1717920813,1684369001,1348031520,1918967877,544825714,1667852407,1953701992,1936028271,1886418208,1814065765,544499301,1919905635,1634625892,225666420,538978058,1696622191,543712097,1818850658,1735289188,1393167662,1344291413,1701011820,1769107271,1935764588,1128409120,678588271]},{"sector":8,"data":[1396777001,1348032544,1953393007,537529641,220209184,1226842122,1867325510,1025533284,1411397920,223233352,538976266,1682004000,540876906,168637489,538976288,1784955225,857750816,537529648,1397507360,537529669,1478500384,543843393,221716541,538976266,1682004256,540876906,168638001,1313153056,1179197508,538970637,1483498323,540876835,1467114323,1752458345,857747232,168636466,1666392096,539187564,1666392125,1768245362,544499815,808591407,537529648,220209184,656416778,1667329104,1869029477,1819044210,1864397665,1702043758,1684959075,544370464,1919510644,1969365092,1768189033,1713399662,544042866,1701274725,538970637,542265158,540876905,1330913329,168636960,538976288,1763722825,824196384,1162368032,1312956494,1025535349,1382958624,841510497,539697193,1279598641,1109411155,544044366,1632378941,1967289459,1768189033,757098350,1382958624,841510497,218762537,538976266,1767326240,543716452,1128407101,678588271,1836404290,824191776,1129852457,544370543,1128407085,678588271,1836404290,1129852457,225603439,538976266,1919895328,1634495593,694757464,1109409056,1919905603,1968063016,1479420269,1919905603,1109404448,1952737623,539959400,539828274,1784955224,538970637,1866932256,1819044210,1764252001,540876841,1869562690,1312958578,774466933,1869562713,539828338,1784955225,538970637,1431314464,1193812052,1818849903,676880748,539765097,1769107271]},{"sector":9,"data":[1499556972,690579752,1866932268,740705394,1163087904,537529684,1480936992,224993364,1158286602,1394623566,168641109,1344735757,1199137132,979725665,539429389,1767984416,1634148462,1881171309,544825708,1953853298,224751209,1632642826,1701667186,1936876916,654970170,1817190432,1919252833,539763761,2036427856,607285861,1881156896,1702453612,1634607218,225666413,538978058,1198355790,1936026977,1847602464,1700949365,1718558834,1835099936,1948283749,1819287663,168655201,541218131,2036427856,1701667143,1817192480,1919252833,539763761,2036427856,607285861,1968054316,1835091821,220820325,1142956042,1109413193,1919905603,1411395624,808656975,1396777001,1348032544,1953393007,538970637,541935940,1635020628,1852397420,540092531,840978260,218762537,1243619338,824196384,538970637,538970637,542265158,540876905,1330913329,1836404256,1701667143,537529715,220209184,538976266,1397506848,538970637,1095901216,1297040462,541416009,1296651304,220811845,538976266,1279345440,1632444492,1766024555,1666414964,677736545,1869562690,690563186,538970637,1094918176,1344293964,1701011820,1769107271,1935764588,1866678824,690516591,537529641,1142956064,1853182831,1314214688,1347436872,537529689,1210064928,1025537129,1279346208,168641875,538976288,1461735236,1162627400,1953056800,1176517920,1163086913,538970637,538976288,540876874,539828273,537529674,538976288,1129270304]},{"sector":10,"data":[541414465,824192049,538970637,538976288,1313428048,1817190484,1919252833,168633393,538976288,1330389024,1163149635,539767072,2019642664,543977283,540090413,1162616877,1817192526,1919252833,690562098,538970637,538976288,1313428048,1817190484,1919252833,168633394,538976288,1698897952,1919251566,741552672,1381256224,673467721,609375315,1953453096,1767337057,824734574,539568425,1042423851,1919902547,539114597,1414275115,609044818,1381258024,1867786276,1466720628,678653545,690563378,538970637,538976288,1936944980,1025536613,723536416,540684576,1936944980,1025533285,757084960,168643104,538970637,538976288,1869369383,1752440948,1752375397,539915375,1953056800,544434464,1702195828,543582496,1769107271,543255660,1937007975,1953064992,537529646,538976288,1953056800,1142963488,1869108079,1867786356,1919251315,1866932268,1819044210,1411930209,1702065007,539765106,1769107271,1499556972,1936675880,695362931,218762537,538976266,656416800,1702061394,1752440948,1970479205,1763716206,1953046630,1953457952,1953064992,538970637,538976288,1394624073,1766354549,1213472884,1142967877,1853182831,1314214688,1347436872,218762585,538976266,1226842144,1766334534,540876916,1163219540,1162368032,1094918222,1428180044,1952539760,1868780389,678651250,1635020628,1852397420,740894835,1936675872,745694579,1953056800,537529641,1277173792,223366991,538976266,1162629920]},{"sector":11,"data":[824201285,538970637,1415071054,168651040,538970637,1163019091,807423557,538970637,1413761367,808984648,892477484,538970637,1330401091,741810258,168636448,1632444448,1819231096,941636896,537529648,1397506848,168626701,1698897952,1919251566,539768864,1296123682,1448026181,572609093,538970637,1953391939,824210021,572533808,1919902547,220346981,1277173770,1413563215,825303109,808656940,1380982842,542395977,2036427856,607220325,1096032315,808790082,1411398441,1818326127,1936615767,220803368,1277173770,1413563215,842080325,808656940,1380982842,542395977,2036427856,607285861,1096032315,808790082,1411398441,1818326127,1936615767,220803624,1126178826,1702129253,875700338,1344413740,1936942450,2037276960,2036689696,544175136,1953394531,1702194793,537529634,1634751264,1701604210,1937072464,537529701,1280262944,924865103,221257772,1126178826,168645452,541347397,222451027,654970122,2036427856,1701667143,654970170,1817190432,544437359,1634623842,1931501934,544501608,1869767521,1948283763,1931502952,1701147235,654970222,1634885968,1702126957,221934450,538978058,1918989395,539777140,1918989395,757094772,1635021600,1852404850,1752375399,1814066287,1952539503,225341289,538978058,1818717761,539828325,1953458291,1735287072,168650092,1444945959,1668246629,544830569,1752375341,1981838447,1668246629,226063465,538978058,2036427856,1968075365,539828333]},{"sector":12,"data":[543516788,1634623842,1948279150,2003792488,168653413,1129207110,1313818964,1869369376,1869108084,1395138676,1953653108,1394617432,1953653108,1092627545,1701603182,1444949027,1668246629,746157161,1634488352,1316119929,220818805,537529610,1735278880,539190636,1849761853,593849447,824192800,706752568,594112544,1126637600,1702260335,1679848562,1701996389,1851859045,543517799,1914728308,1634296929,168653678,1632772128,1937074532,1293958432,543515759,541347661,218762551,1226842122,1484024174,594306390,1126186272,1093161807,1701603182,706750755,1818580512,1953063791,537529721,1768835360,1700157812,1025516396,1313428256,1735278888,690185580,1444948512,1668246629,226063465,537529610,1684827936,1025516408,1635013408,223900786,1864376330,595158124,1394621728,1953653108,218762585,656416778,2002874980,1919903520,1634495593,1936684064,537529715,541477152,2036427856,1968075365,540876909,1213472817,168644165,538976288,542397776,1635013416,743994482,1635013408,693728370,1866932268,740707442,1163087904,537529684,1397507360,537529669,1344282656,673207381,1918989395,539777140,1918989395,740907380,1919895328,539764306,1413829456,538970637,541347397,168642121,168632352,1948721184,2003792488,1970238240,168649838,1280319520,572545345,812597837,1093808972,875973677,909200451,875973698,220343105,1377837066,544502629,168636718,538970637,1684369959,544694642]},{"sector":13,"data":[1769107303,224488556,1344282634,673207381,1918989395,539777140,1918989395,740907380,1919895328,539764292,1413829456,168626701,1684086816,1953723754,1394621728,875064419,538976297,538976288,538976288,538976288,538976288,1919895079,1633907488,1735289196,1095189280,168626701,1702371360,543516516,1666392125,691611756,673196576,539828274,2036427856,1968075365,538978669,1852392999,1701584996,1852400737,1684349031,1864394087,1633820774,1634623854,1919903264,1701339936,168651619,538970637,1634757961,1025537123,1279346208,168641875,1750278176,1850307695,544109907,1095114813,222647116,1327505418,1919112046,544105829,1381244989,168641877,1817190432,1919252833,544500040,221257789,1310728202,1164207461,1702060402,1176517920,1163086913,168626701,1951604768,1484026465,544436048,1951604797,1484026465,538970637,1918989395,1867536756,540876915,1918989395,757094772,1784963360,544502645,221454381,537529610,541477152,2036427856,1968075365,540876909,1213472818,168644165,538976288,1918989395,1867536500,540876915,1918989395,1867536500,539697267,678191955,220804402,538976266,1919509536,1769235301,1025535599,1818448672,220804136,1159733258,222647116,538976266,1919509536,1769235301,1025535599,1818448672,691285288,538970637,541347397,168642121,538970637,1444955721,1668246629,544830569,540155964,1313163348,538976288,538976288,538976288,1395073056,544501608]},{"sector":14,"data":[544173940,2003790963,1746939168,1931506793,224816229,538976266,539195424,1951604797,1484026465,538970637,595140640,1394621728,1953653108,537529689,1881153568,1953393007,543973750,1112481853,1413694794,1330401091,537529682,1145980192,222710048,538976266,538970637,1461735236,1162627400,1330522144,1833508948,1952670064,1312890921,1850679364,1701995347,168652389,537529632,1936020000,808329332,218762546,656416778,1935766085,1819222117,1633820772,1634623854,1718165548,1667591712,1634956133,168655218,1179197472,1701137952,1634878820,1411409267,223233352,538976266,1701137952,1634878820,1025533299,1279346208,168641875,538976288,1280065859,1634878496,1851867767,1684827944,539763576,2036624495,1864379427,1869767788,1176513652,1163086913,537529641,1145980192,222710048,537529610,539195424,1951604797,1484026465,544436048,1227366443,1484024174,594306390,1948264992,723527971,892217376,673196576,1684957527,891301664,539631657,1579164532,220803616,2032148490,540876835,1918989395,1867536756,539697267,825042984,673196576,1953066569,1818580569,539631651,690561908,673196832,706753838,1634887456,2037672310,539631651,1579164532,690565664,673196576,1215456083,1751607653,539959412,691025203,538970637,538976288,220209184,1226842122,2015895622,1027481635,1919111968,1952737623,539828328,678191955,690565169,542265120,539195432,857750844,1380917289,595142688]},{"sector":15,"data":[540884512,1215456083,1751607653,539828340,1411393843,223233352,538976266,1399738144,1701147235,540876910,1397506374,537529669,1145980192,222710048,537529610,538976288,538976288,537529632,541477152,1666412111,1852138866,1145979168,539195680,540024894,1313163348,168626701,538976288,1701339943,1763732323,537529716,1277173792,1500213103,807419168,538970637,1867259936,542665583,1666392125,540551276,841490474,1344285984,1702453612,1836404338,168634665,538976288,168644420,538976288,1869619232,1987341929,1025535073,1229934624,2015908942,539697187,1802465100,2032151640,539697187,1802465100,168634713,538976288,1179197472,1768910880,1635153006,540876908,1213472816,168644165,538976288,538976288,1634757961,1025537123,1279346208,168641875,538976288,538976288,1394624073,1232367464,1853182830,1411398944,541414738,1313163348,538970637,538976288,538976288,1092634185,1395151682,1767338595,543716452,540155996,595075117,540942377,678191955,539570226,2032161359,540942371,1215198547,1213472884,1394626117,1232367464,1853182830,1176517920,1163086913,538970637,538976288,1313153056,1179197508,538970637,538976288,1163086917,1881163337,1953393007,543973750,1431511101,1414807886,1312890962,595140676,1394621472,1950903925,1162368032,537529678,538976288,1226842144,1330520134,1968382036,1953056878,1162368032,1866735694,544109907,1397642579,1262702408,538970637]},{"sector":16,"data":[538976288,1968381984,1953056878,1411398944,222647634,538976266,538976288,1869108000,1399736692,1025535605,1431458848,537529669,538976288,1397507360,537529669,538976288,1226842144,1667330157,540876916,1163219540,538970637,538976288,541347397,168642121,538976288,1867259936,542665583,1867259965,542665583,1768169515,1952671090,225341289,538976266,1277173792,1500213103,1277181216,1500213103,1394617120,908618851,537529641,1277173792,542134095,1230261845,1833508940,1952670064,542265120,1802465100,1044127832,1818448672,220804136,538976266,538970637,1179197472,1414483488,1869108000,1399736692,1092644469,1310737486,1226855503,1667330157,1213472884,168644165,538976288,1881612320,544501612,168653929,538976288,1869750304,540876916,539194408,808525866,1330454569,221519940,538976266,1126178848,541871169,2002874948,678322498,539763576,539763577,745828210,1431458848,168634693,538976288,1699618848,1917150309,543519585,1381244989,168641877,538976288,541347397,168642121,538976288,538976288,538976288,538970637,1819222048,539195492,595075133,538970637,1819222048,539195748,595140669,538970637,1819222048,1953460836,1914715424,168653935,538970637,541347397,168642121,538970637,538976288,538970637,1025516404,539194400,825106475,168626701,1330389024,168644687,538970637,1881163337,1953393007,543973750,1327513148,1128614466,1280262996,1092637263]},{"sector":17,"data":[1226851406,1667330157,1213472884,168644165,538976288,1280065859,1164919840,1869377656,1852795251,539195432,1684086827,1953723754,595140652,1629498144,1937074788,168634740,1279598624,1179206995,1768910880,1635153006,540876908,1162494543,1329812547,542265164,1313163348,538970637,1817190432,1919252833,544500040,2017796157,1685023856,1919895397,1634495593,740522024,690190624,538970637,541347397,168642121,538970637,1953459280,1953458259,1344290080,1702453612,1953056882,168626701,541347397,1129207110,1313818964,168626701,1936020007,168639092,1881153575,1702065505,1752440947,1919950949,1634887535,1393167725,1377845845,544502629,690189352,538970637,1025516403,1296651296,168645189,846471200,540876835,1751343437,1701146707,539631716,790635380,1162892064,1329808453,223630158,1142956042,537529679,1330596896,1314201680,541870420,1162692948,539828306,1042293619,590509088,1313147405,1431511108,218762562,1666393866,168639084,1344282663,544437089,543516788,1651340654,1763734117,1869881454,1633907488,1735289196,1919903264,1634165536,1226842158,1752440934,1970151525,1919246957,544434464,1701060705,1634560355,1948265580,544105832,168650103,1998594087,544501345,1931505524,1701601635,2003788832,1868963950,1734549618,1919885409,1633907488,1965057388,1868963952,1734680690,538979937,1936287828,1819042080,544438127,1969627233,1914727532,1701277281,539429389,543584032]}],[{"sector":1,"data":[1651340654,544436837,1646292852,1701257317,1634887022,543450484,544370534,1818321779,778530409,539429389,778643488,1713385061,857764463,544175136,544499047,1818321779,1948279909,741417071,1935765536,1852383347,959328800,1175063849,1413697109,542003017,543974227,690056744,168626701,1179197472,539061792,1226849852,1848136782,1411393825,223233352,538976266,1226842144,1867325510,1025533284,1411395872,542000456,1025515886,539061792,221323309,1159733258,1226851406,537529670,541477152,1701080909,824196384,1162368032,537529678,538976288,1818448672,1126186272,676613705,790634862,723530272,691088928,538970637,1163086917,538970637,538976288,543974227,1229135933,1848136782,168634657,1313153056,1179197508,168626701,541347397,1129207110,1313818964,168626701,1952797479,1701995347,221933157,538978058,1937007955,1701344288,1886413088,1919971186,1702125929,1819239200,1931506287,1702125940,1953391981,1393167731,1394623061,1666413669,1852138866,168626701,1179197472,1685015840,540876901,1213472825,168644165,538976288,1819310149,1869181807,1819231086,1025536623,168636960,538976288,1801675074,1869377347,540876914,537529649,1344282656,1413827649,807421268,221323308,538976266,1279348768,1163154501,539767072,168638004,538976288,1162625360,541414484,874523698,537529652,1344282656,1413827649,857752916,875896876,538970637,1095770144,1414808908,741679173]},{"sector":2,"data":[168638240,538976288,1162625360,541414484,874523702,538970637,1095770144,1414808908,741810245,168637216,538976288,1162625360,541414484,908078137,538976307,538976288,1936278567,2036427888,1819231008,168653423,1279598624,168641875,538976288,1819310149,1869181807,1819231086,1025536623,168636960,538976288,1801675074,1869377347,540876914,537529648,1126178848,1380928591,1667318304,1819231083,539783791,218762546,1159733258,1226851406,218762566,1145980170,1112888096,168626701,1634751271,1701604210,1937072464,168639077,1126178855,1952540018,1713402725,1752392044,543649385,1685221218,1713402469,1763734127,1869771886,1684955424,1835099936,1986994277,1931506277,1701147235,168653678,541218131,1918988371,1348824171,1702065505,168626701,1329799200,542265164,807414836,538970637,1025516609,539632160,706748448,538976288,538976298,538978848,539631648,706748448,538976288,538976298,538978848,539631648,706748448,538976288,538976298,538978848,539631648,706748448,538976288,538976298,538978848,539631648,572530720,538970637,1279871063,1313415237,609830219,540949536,540680738,1145980247,1816340256,544366949,1652122987,1685217647,1718968864,225600870,537529610,1229477664,1226851660,1497713486,540876836,168632866,538976288,542265158,540876865,1330913329,168637728,538976288,1330389024,1163149635,539767072,538976305,538976288,538976288,538976288]},{"sector":3,"data":[538976288,538976288,538976288,1881612320,1953393010,1919903776,1852799593,543973748,1918988403,1936026731,538970637,538976288,1313428048,1229791316,1093149764,1092627492,808984620,168639273,538976288,1330389024,1163149635,741487136,168636704,538976288,1380982816,542395977,608454989,740573480,757085728,539771168,992555064,168626701,538976288,1329995808,543301714,540155965,840978260,538976305,538976288,538976288,538976288,538976288,538976288,1344741408,1953393010,1919243808,1633905012,1886593132,1818980961,168653669,538976288,538976288,540876899,723534120,539583008,541347661,537529653,538976288,1226842144,543367238,540090429,1313163348,538970637,538976288,538976288,1094930252,1646282068,808984620,538970637,538976288,538976288,1313428048,706879572,168639266,538976288,538976288,1330389024,1163149635,540226080,744628269,168636704,538976288,538976288,1380982816,542395977,992094754,538970637,538976288,1279598624,168641875,538976288,538976288,1330389024,1163149635,539779616,168636472,538976288,538976288,1380982816,542395977,992092194,538970637,538976288,538976288,1094930252,840975700,539828275,824192098,538970637,538976288,538976288,1313428048,539107412,168639266,538976288,538976288,541347397,168642121,538976288,1162747936,1646285912,538970637,1162747936,1092637784,538970637,1145980247,1313147405,1431511108]},{"sector":4,"data":[218762562,1884628746,1702125924,1919902547,221934437,538978058,1633972309,544433524,2036427888,661877349,1868788512,225666418,1632642826,1701667186,1936876916,654970170,1699880992,1685221219,1881156896,1702453612,539456370,1919902579,168653669,1344282663,1702453612,1836404338,1881156896,1702453612,654970226,1699880992,1953265011,539828339,1970496882,544437356,1881171567,1702453612,544417650,1953458291,1431505421,1884627010,1702125924,1919902547,673215333,1868784978,690513010,1817190444,1919252833,745370958,1936020000,1937009781,537529641,541477152,1970496850,544437356,1229463613,1279611732,1213472838,168644165,538976288,1868784978,1093166194,1344820034,1702453612,1836404338,857746720,1025517865,1667584544,677671535,676545089,2036427856,1968075365,539828333,539568435,221323307,1159733258,222647116,538976266,1667584544,677671535,2036427856,1968075365,1025517933,1667584544,677671535,2036427856,1968075365,723528045,168636704,1313153056,1179197508,1313147405,1431511108,218762562,1767253770,1919906915,1851868281,221930851,538978058,1769107303,543255660,1668178276,1629516645,1919251558,543516704,544432488,1835625573,1952542313,1746953317,1864397673,1852797040,225734245,1632642826,1701667186,1936876916,654970170,1817190432,1919252833,1998597408,1751345512,1919903520,1634495593,544434464,1668178276,224882281,1112888074,1667847712,2037542772,1668178244]},{"sector":5,"data":[1344807013,1702453612,168634738,538970637,542265158,1025516393,1411395872,221519951,538976266,1414877216,1866934304,1819044210,1344821345,1702453612,539765106,1769107271,1499556972,1634488360,695362937,1193290793,642544239,1397760044,168645701,538976288,1497451600,1179460128,860631119,1195787570,1128547909,537529634,1377837088,544502629,168636974,538976288,542397776,1919895336,1634495593,1817192536,1919252833,1193290793,1818849903,676946284,2036427856,690582117,1866932268,740708978,1163087904,537529684,1344282656,542720332,1330007330,842222640,1162298949,574833734,538970637,1699880992,773878899,537529650,1480936992,1158286676,1394623566,168641109,1213467149,168644165,538976288,538976288,1634757961,1025537123,1279346208,168641875,538976288,538976288,1394624073,1232367464,1853182830,1411398944,541414738,1313163348,538970637,538976288,538976288,1092634185,1395151682,1767338595,543716452,540155996,595075117,540942377,678191955,539570226,2032161359,540942371,1215198547,1213472884,1394626117,1232367464,1853182830,1176517920,1163086913,538970637,538976288,1313153056,1179197508,538970637,538976288,1163086917,1881163337,1953393007,543973750,1431511101,1414807886,1312890962,595140676,1394621472,1950903925,1162368032,537529678,538976288,1226842144,1330520134,1968382036,1953056878,1162368032,1866735694,544109907,1397642579,1262702408,538970637]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[1313818367,538976340,0,0,385941505,83886080,889199616,33554432,808596480,538976305,220960,0,42240,1358961664,33554432,808596480,538976305,111904,0,418816,1828723712,33554432,808596480,538976305,220192,0,427776,-1996481536,33554432,808596480,538976305,221472,0,738560,7168,33554432,808596480,538976305,217632,0,806656,16777472,17152256,83889152,453003547,1226507574,456530692,352321853,15643,280859,2702619,151028756,-1534847922,344237220,78,705299465,707422890,540,-1598027520,-2139029856,16679040,452984832,335574845,168362125,168430090,168430090,150994944,-1541139442,337912932,14,-1437597673,-1431655766,20,708708608,-1435882966,2236970,1040777216,1789536810,572664362,150994944,-1435882946,577415850,34,-1844294648,1376948882,12,-1438775040,707406506,2269866,1507328,1050845696,8430114,0,1850651,134256660,572662365,1562518050,0,1646402569,1654825634,7202,1025179648,-1659633636,37488896,37913090,3932674,1544093696,-2105376254,1543668354,0,1850651,620797972,0,238,0,37,8404992,0,1025179648,-1542193085,-2147478016,-2147483520,128,1409024,83951872,2,620756992,-1476395008]},{"sector":9,"data":[5286056,0,-2139062263,-2139062144,32896,5632,-1564564894,98,452984832,335548221,-1475673939,139766440,-1975115248,7938,3292443,33813,65536,2162689,69534243,270862445,2400308,10748068,2359460,268804116,67438669,66051,65537,1025179648,-2045444046,0,0,540024880,1903718776,-109512328,-2147418241,-2147450880,-2147450880,-2130641025,-2130673408,33024,0,9583899,101653,167774720,167774720,167774720,167774720,167774720,167774720,167774720,167774720,167774720,167774720,167774720,2560,65536,2162689,69534243,270862381,2367668,2392100,2359396,268771348,67438605,66051,65537,0,0,0,806354944,150995753,19153216,-1526693632,-2146270976,-1879014911,201637962,0,0,1025179648,-1860894622,0,2162688,2162721,1044316193,136382497,136382625,136415265,472713313,2162721,2162721,640876577,0,0,2162688,2162721,1044316193,136382561,136415265,144771233,472713377,2195489,2162785,640876577,0,6438171,37909,0,2162721,2162721,-2002665793,136415393,136382497,136382497,-2136925139,-2136899423,2162721,9779,0,0,0,2162688,-2136899423,2195617,1044316193,2162721,-2136899423,2195617]},{"sector":10,"data":[0,1025179648,-1743454110,0,4325376,1410859008,2369536,1140850688,1140868096,1140868096,1140868096,2359296,1410869248,4325376,0,0,0,471597056,39854082,-1073676288,1082212353,1082212481,-1073659903,39845888,471605250,0,0,6438171,40213,2097152,2097184,2243644,2097696,65665,98305,65601,2097153,2228768,2112572,2097184,0,2097152,2097184,2243644,2097760,98305,8454273,65665,2129921,2228832,2112572,2097184,1025179648,-1609236382,0,0,0,0,0,0,59367,0,0,0,0,0,0,0,0,0,0,4194304,-2147483648,8388608,0,0,0,0,15875355,42005,0,0,0,-2139062144,32896,0,0,-2139062144,32896,0,0,8388608,0,0,0,0,0,16777216,33554433,2,0,0,0,0,0,0,0,-2146959360,142606336,144705696,144705696,-1610088416,20560,0,0,0,0,8388608,8388736,8388736,8388736,8388736,8388736,8388736,8388736,8388736]},{"sector":11,"data":[0,0,2162688,2162785,2195489,1052704929,2162849,2195489,2162785,0,0,1025179648,-1391132622,-2146435072,276828288,1350652032,152192,304240,526336,1052672,103031298,37767688,33587712,33556231,512,65537,65565,453312524,907739209,71899909,1025193499,454361089,452984893,16778313,-1207959296,201326852,1226507520,87431936,453265691,20781878,1025185024,1226506240,1025179652,-2079064023,172230912,1789569674,8543306,67698688,1789536778,35400234,150994944,606344206,337945700,14,-549643520,8983552,-1440055799,-1431655766,25122,706480384,711633450,1583658,1441792,2116166144,8866,184549376,-1566834624,-1566399838,4194460,301989910,33709714,0,340658432,1688511620,9327684,1309212672,-1532722156,1309967524,150994944,707406398,573221482,34,605294089,606364836,3604,708708608,711633450,2236970,1275592704,-1835888110,807442,134217728,-1835888052,-1940762030,0,303172616,303190674,12,37488896,-2109603326,3932674,470351872,1115816450,35389954,369098752,-1574830080,2237054,0,-1835906040,1381126802,140,1025179648,-1659633649,37488896,37913090,3932674,452984832,335548221,470286495,1646404130,1843874,0,998683,134261012,-1574821348,471999074,0,842865408]},{"sector":12,"data":[8656128,0,33554432,148484,-2128084576,-2128051928,19398952,1093140904,1076379944,269090856,18779786,16777472,452984832,352334397,134,16777472,587211008,755246338,873473288,1677730848,603988992,-1811929984,219153696,50595080,16777474,256,842865408,8983808,0,553656576,553656576,1631469312,554180872,-1593302648,-1593270008,555494664,1627398528,553656576,2503424,452984832,352346685,139,0,0,553656576,553656576,1627398400,557727488,-1593826944,553656576,8448,0,0,0,201326592,303300616,1073741824,553648162,-1593826944,-1593794304,553656576,1073741952,301989922,202637312,8,1648171776,9311488,16777216,553648384,629285632,-1526158076,-1541360624,604021760,612377600,94377088,92802448,16941828,16777472,0,16777216,553648384,620897024,621309188,614478864,-1543461888,604021760,94376960,84430096,16909060,16777472,452984832,352346685,145,16777472,587211008,755246338,-1274010360,603989024,1677730944,335553536,219153696,50595080,16777474,256,0,553648128,553656576,1056973056,554180926,554213640,562569480,755523848,553656604,553656576,855646464,38,842865408,9704704,0,201326592,1065484,-2147348352,-2128576256,18874656,1092616608,1075855648,135168,202408576]},{"sector":13,"data":[12,452984832,352334397,150,536879104,1006641152,536879676,16785410,1090519296,16777472,-2130706048,536879104,1006641666,536879164,8192,1648171776,9966848,0,0,553648128,553656576,553689344,1065361664,553673022,553656576,553656576,0,0,0,0,527360,8393236,-2145222656,-1593794304,553689344,562045184,8397184,10616960,37376,527380,452984832,352334397,157,536879104,1006641152,536879676,-2130698238,16777472,1090519424,16777472,536879104,1006641666,536879164,8192,842865408,10425600,0,527360,4628,2228224,553656576,553672960,562045184,41216,2228224,4608,527380,452984832,352334397,169,201326592,303300616,0,-1593835486,553656576,1627398528,553656576,0,301989922,202637312,8,16777472,16843776,83889152,453003547,1226507574,456530692,352321853,15643,280859,2702619,151034644,639771420,1545744938,0,2115113481,-2105372014,17026,1144654336,-1567454720,12076032,452984832,352334397,32923,402653184,2098200,270592,37749250,37750340,37751368,37753424,1614815840,8658944,404751360,24,842865408,10294528,0,605558784,4194852,16924929,92275456,159908228,562041232,12583328,-2138947456,608174592,1579044]},{"sector":14,"data":[452984832,335548221,1560871087,572662306,6103586,1025179648,-1357578190,0,4325376,1410859008,2369536,1140850688,1140868096,1140868096,1140868096,2359296,1410869248,4325376,0,16777216,-1358954240,201326860,1226507520,87431936,453265691,20781878,1025185024,1226506240,1025179652,-2045509617,168036864,-1431655830,138346,452984832,335558205,487129243,707405346,6038066,150994944,-1837231598,-2105376110,66,4471306,10654346,47172,1140857088,268445696,1140860928,452984832,335548221,1007354025,-1115586238,-2120898135,15426,3554587,151041300,606344206,337945700,14,-2079044087,-2069584732,19988,336464128,610575396,922660,940244992,-1433272252,8563370,14404,998683,134266132,606348312,606348414,0,473766656,12981248,-1979038711,1248504490,33372,340658432,1688511620,9327684,0,0,-1573053696,14488577,37,60928,0,5632,578724386,34,-66387712,-50529028,-50529028,134282492,572662300,472031842,0,1075846920,1786942084,4,4197120,-1566399844,10265250,470286400,1654792738,1843746,134217728,-1835888052,-1940762030,0,-2145632247,1080205986,32860,2113996928,134744072,1144,-2130116608,623247233,405021733,402653184,-1509981952,606348324,24,33700873,42091010,15362]},{"sector":15,"data":[39586048,-2105376126,6029954,1007222784,1115816450,1006764546,142606336,34148384,537954372,0,270549001,277366280,16416,-2139092736,-2139062144,8421504,2424832,1073741824,128,186646528,269488144,269488144,16,572662281,572717602,8738,168429824,168430090,657930,-1475674112,139766440,-1975115248,151002882,-23027520,-2139062144,254,-1437597673,-1431655766,20,268441856,-690614256,269488342,1409024,83951872,2,369098752,-1872756736,6328464,0,808452120,805306416,12336,9472,269484032,0,1441792,-133675008,2056,620756992,-1476395008,5286056,0,-2076370176,13571072,572677384,572662306,93,67114752,709528106,1178,-1844903936,-2104323330,944013954,150994944,-1431688578,581610154,98,-1431683575,-1440077270,8866,708708608,711633450,2236970,1441792,504500736,514,369098752,572653568,2269822,0,-2147467253,-1564564830,1073774754,5888,574530210,32930,1025179648,-1693122510,128,404226048,8196,33555489,1140998146,1208107014,1342324746,1610760210,6307874,33824,404234244,0,3292443,40213,0,606345240,16793602,66113,-2080014333,-1878423551,-1608417263,-2147434495,8421952,606355458,6168,1025179648,-2045444046,0,0,33817602]},{"sector":16,"data":[-1472126976,1753294849,1753311361,1753311361,1753311361,-1975506944,504236560,65537,1,3292443,40469,0,0,0,36,1583104,268435456,1572864,10240,36,0,0,1025179648,-1458241486,0,603985948,34,16896,541670493,541663305,541663305,675881033,336601165,16896,603979810,6172,12729627,46357,65536,2162689,69534243,270862381,2367540,2359396,2392100,268771476,67438605,66051,65537,0,65536,2162689,69534243,270862445,2400308,10748068,2359460,268804116,67438669,66051,65537,0,65536,2162689,69534243,270862381,2367668,2392100,2359396,268771348,67438605,66051,65537,0,404488192,2237440,1107296256,5576712,608248897,608248897,608248897,4269121,1107296276,2228224,404497408,1025179648,-1122697166,0,0,404226048,69214212,1073872896,1073889282,1073938431,1073889282,2228258,67133488,0,0,6438171,50709,0,67239936,-1610612156,679553025,679553153,-1476319231,675358721,675293249,-1978660352,73358,65537,0,65536,2162689,69567011,279251117,10756276,2359460,-2145091548,-1878679532,67471373,66179,65537,1025179648,-820706846,0,4325376]},{"sector":17,"data":[1410859008,2369536,1140850688,1140868096,1140868096,1140868096,2359296,1410869248,4325376,0,0,0,11144196,-771751936,5308416,-1072627695,11599889,536936449,33554448,659456,3076,0,0,-1878978560,-1878945791,-1878917505,-1878945791,-1878945791,-2147381247,-2147385343,37748736,1073872896,404235300,0,0,2162688,2162721,1044316193,136382561,136415265,144771233,472713377,2195489,2162785,640876577,0,0,2162688,2162721,-1094778847,-2002679647,136382497,136382497,472713249,-2136899423,2195617,640876577,0,0,2162688,2162721,1044316193,136382497,136382625,136415265,472713313,2162721,2162721,640876577,0,0,0,65536,536936449,536944641,536944641,1042227201,65537,65537,65537,65537,0,0,0,0,2162721,2162721,6357025,-2145305025,10551329,2162721,33,0,0,0,0,0,6357025,-2145320927,10551329,10567359,-2145320927,6357025,33,0,0,0,0,0,-2136932319,-2136899423,2162721,2178623,-2136932319,-2136899423,33,0,0,6438171,56597,0,0,0,0,0,-404291584]}],[{"sector":1,"data":[0,0,0,0,0,0,2162688,2162721,2162849,1044348961,2162785,2162721,2162721,0,0,1025179648,-535494606,0,135004160,1184768,570425344,2162688,6357025,-2145320927,10551329,570425344,1179648,135009280,0,12729627,57877,0,335546380,18,8768,2195489,10551457,2162849,32801,8768,335544338,2060,0,0,335546380,18,8704,2162849,2195489,2162785,33,8704,335544338,2060,0,0,202113024,-2147479486,8389136,545333377,-1610539007,541138945,4202561,-2147483120,202117250,0,0,0,335546380,32786,8397440,10551457,2162849,-2145288159,-2147450847,41472,335544466,2060,1025179648,-418053662,8388736,25166208,-65152,19136804,1157628160,1140868352,1140868096,1140868096,1140868096,2359296,270018560,0,0,-2147418112,-2147385343,-25198591,-2078178271,-2078178271,-2078178271,69207072,69207072,69207072,537133056,6168,0,2097184,1010565152,35651618,65568,4259841,-2147418111,8454145,35651616,1010565154,2097184,32,0,2097184,1010565152,39845922,-2147418080,8454145,8454273,-2147418111,39845920,1010565154,2097184,32]},{"sector":2,"data":[0,2097184,1010565152,35651618,8454176,-2147418111,4259841,65537,35651616,1010565154,2097184,32,0,536879104,537927680,554184960,17049856,21169408,-2130574590,8652032,537405440,537931776,536879104,8192,0,2097184,2097184,3153952,593953,329729,329287,624641,3149985,2105376,2097184,32,0,0,8388736,8388736,8388736,8388736,8388736,8388736,8388736,8388736,128,0,0,0,0,0,0,4194304,-2147483648,8388608,0,0,0,0,0,0,0,134217728,134219776,134219776,134219776,134219776,134219776,0,0,0,12729627,8450581,16908546,16908546,16908546,16908546,16908546,16908546,16908546,16908546,16908546,16908546,16908546,258,276856848,1350570112,1384140929,-1536163838,134217732,268435464,570556432,1242039844,-2113928640,117899776,33554944,0,0,540016640,1903697968,-109547144,-8390280,-2147450880,-2147450880,-8421376,-2130673408,-2130673408,0,0,0,0,806354944,150995753,19153216,-1526693632,-2146270976,-1879014911,201637962,0,0,1025179648,-149618638,128]},{"sector":3,"data":[0,65792,131584,0,0,0,0,3292443,63765,0,0,0,-2139062144,32896,0,0,-2139095040,-2139062144,0,0,1025179648,-82509726,0,0,0,134217728,134219840,-2013231104,134281464,134219776,134219776,0,0,0,0,0,0,0,32776,144705664,144705696,2099360,1347461128,0,0,0,998683,151043604,338973824,1412699166,452984960,352334397,190,8388608,1083441280,550764692,297009556,152305940,151916292,286523652,548667668,1087635604,9699476,8388736,0,184594186,-1291112449,-256570560,192985087,-1156865863,-524481600,201375499,-1022615359,1623526464,209766156,-888364855,-523432768,-995572,-754114351,1878986048,226547469,-619859969,-522383936,-991475,-485613343,1625624128,243328782,-351362839,-521335104,251719438,-217108481,-252375232,260110335,-82861831,-520286272,268500751,51388673,1627783153,-981232,185643007,-519237439,285282064,319889681,-250277567,293672959,454140185,-518188607,302063377,588394495,1629819457,310454034,722641193,-517139775,-970990,856891697,1630868289,327235347,991142201,-516090943,336592659,1125392705,-60351,255]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[1313818367,538976340,0,0,385941505,150994944,889199616,33554432,808596480,538976312,111904,0,70912,1358961152,33554432,808596480,538976312,220704,0,76544,1828723200,33554432,808596480,538976312,221216,0,82176,-1996482048,33554432,808596480,538976312,217632,0,87808,-1526720000,33554432,808596480,538976312,217888,0,93440,-1056957952,33554432,808596480,538976312,218400,0,99072,-587195904,33554432,808596480,538976312,218912,0,104704,6656,33554432,808596480,538976312,220960,0,110336,6656,33554432,808596480,538976312,32,0,0,16777472,33558528,452987904,585,0,20323072,268435712,201327104,239672064,453462299,452986441,16777526,33558528,452987904,1226509897,105454343,20323072,268435712,201327104,239672064,453462299,452986441,16777526,33558528,452987904,1226509897,105454343,20323072,268435712,201327104,239672064,453462299,452986441,16777526,33558528,452987904,1226509897,105454343,20323072,268435712,201327104,239672064,453462299,452986441,16777526,33558528,452987904,1226509897,105454343,171318016,1701336077,1296189728,1919242272,1634627443,1866670188,1953853549,1344303717,1953393010,1126199909]},{"sector":8,"data":[543515759,1701273936,1769096224,175269238,1919243789,1852795251,858665760,1126703152,1866670121,1769109872,544499815,541934153,1886547779,943272224,1275922999,1852138345,543450483,1702125901,1818323314,1344285984,1919381362,1344302433,1701867378,544830578,1226860143,437931330,591413312,1142956835,857756495,540029742,1986622020,1142977125,892360274,824192072,825372464,221657135,536877578,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,91619116,49821439,586148673,705100163,-108851109,192219639,865294380,-1476400174,-1070345677,-269797633,-768359678,-1272893271,11599653,1965373478,956245514,74711397,-42613702,1396800270,1191277567,1229127495,-2024348811,-306246710,-2092092556,1966086974,1149905855,-248511482,48198977,809246443,1959940129,872613119,1048635371,-16580630,1111623797,1342130505,-1174148273,-11010049,183040299,1935237118,1475019775,-896839280,108846976,-1458736128,-45545936,21035081,185658206,58064841,-2096501922,1974468601,-506907902,815279680,-919372975,-402304104,817103226,1912611071,1594317063,1046408541,100207153,-385650076,436157491,-1588565965,556797421,-21102798,-242775976,-2080423166,58015995,-16647960,-294270466,-1995829832,1130448126,-1023285016,871322454,-993446922,-1962379968,47824127,636215179,46596086]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[1313818367,538976340,0,0,385941505,83886080,889199616,33554432,808596736,538976306,111904,0,42240,1358961664,33554432,808596736,538976306,217632,0,47872,1828723712,33554432,808596736,538976306,220192,0,53504,-1996481536,33554432,808596736,538976306,220960,0,59136,7168,33554432,808596736,538976306,221472,0,64768,16777472,33558528,452987904,349275,-1258225664,20323072,268435712,201327104,1415256832,5,453005827,16777526,33558528,452987904,349275,1543700480,20323072,268435712,201327104,1415256832,5,453009155,16777526,33558528,452987904,349275,1627586560,1295391488,1329864787,1700143187,1869181810,775233646,673198128,1866672451,1769109872,544499815,825768241,960049453,1766662193,1936683619,544499311,1886547779,1667845152,1702063717,1632444516,1769104756,757099617,1869762592,1953654128,1718558841,1667845408,1869836146,1092645990,1914727532,1952999273,1701978227,1987208563,2122853,-1,-1,1145384704,541937475]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[1464909,22,9044000,50659327,128,40632336,30,1]},{"sector":16,"data":[-1325361408,255,2086492928,1026244156,-1375722949,-1140850688,0,15336448,16187604,260,-905904128,15336448,16187604,16777476,1140850976,54017,35651840,-536796160,1479475456,768,18677762,73985,738198016,16840193,17711,1,16974132,4140801,35651584,318848000,1345257729,4740161,33554435,16850176,1179582753,1313800262,11665548,95420457,11665409,1001390101,-1308622302,-1342162176,56375871,1075884544,977252352,-1308621988,-1342160864,-1342139648,542393683,538976288,542393683,1162891329,993870926,11665428,1001390209,11665409,28311806,-1308622288,-1342161152,723469,0,25169920,-1308619488,-1342174208,-1,11665412,-5242872,83886079,134263296,150974464,134262784,-20480,65535,0,658688,0,1310730,4269234,542330288,542330692,1936876886,544108393,808463925,692267040,2037411651,1751607666,959520884,825045304,540096825,1919117645,1718580079,1866670196,1277194354,1852138345,543450483,1702125901,1818323314,1344285984,1701867378,544830578,1293969007,1869767529,1952870259,1819033888,1734963744,544437352,1702061426,1684371058,1364414496,1376147285,-1993414261,772068894,81475208,184735976,186414281,-402295315,65732646,1912715752,115890696,-346093823,113541892,117763065,1928944223,1532583174,-2096829608,-1007089468,777147216,81141387]},{"sector":17,"data":[1979710339,2942981,2011694059,-1274055936,47961,-466476595,-116996989,-75296533,990606591,-402164543,-998047568,57866502,-1017619622,-2095118818,460653049,-1977220428,522308885,-1310145910,520494592,-1977219213,567083349,-1274024968,1959332610,361375241,1229398477,536408949,105928643,519736147,-1327920377,-1359807462,-651492491,1540066123,-1017161721,-921976781,102649716,-1958693857,33129431,567093365,-1977200609,5957637,520494680,-1258813837,567099968,1031808668,-1962773222,-821957695,-268274,1364531947,-1946179864,567106025,199950963,125093947,1979246651,1572965122,666419999,310016,-2134703691,292880382,1971373814,-1928913396,-1190864578,-1572862,1460061182,-767638482,1962871556,1032005143,276101120,1912945190,1161438727,-117344511,-370456761,784533343,81528463,-1835803853,-533268690,-147942652,-2096832458,91621882,-348667264,818053123,-1073004206,-620034955,-108839820,-2146536189,1965820540,922693126,-348060439,117015332,2088767093,108342282,-382271698,300630276,1963587971,175931404,772175148,82392831,-768371903,-768367893,-13713357,-1023091658,-921972173,632562036,942014640,638219557,1946248504,1975794180,92939790,1946110952,1111967489,1457747273,-317994361,776811892,81673859,-1976797952,805570116,21314086,535495285,74788924,74764811,-404016125,-616660946,141950724,1229537858,65752911,1476394938,-1509077,1935237117,-1872237821]}],[{"sector":1,"data":[-2134209711,1946158716,1959332621,1195985158,1577184071,-922021653,-346160267,-425207,-919403915,1047854859,1359370069,-2094085837,319038,1156977525,141889287,-402490172,15401585,-352220440,2287619,123275122,-346137249,180650756,1048784633,1962935518,-385650171,-953221334,318982,-768359680,81699118,-536426706,-402650620,777584289,81954696,1090224963,182977397,1976172034,168671469,-494434002,-398245116,1455620601,871773011,-98103,-1959917195,-1962621252,-165090337,158597830,-1430469586,-339506172,1260826,658312818,772372224,79084740,132891532,-1698905042,-2084336636,393609211,1979711104,233568515,81699630,-1107296328,-164429823,-2096305160,57934075,-2097130264,1928856774,1976109830,-1667568894,1963064960,1364546089,-1202694394,801965312,1968766780,-1193768183,801965314,1945698795,1493655301,-998045973,845830,32201309,-68677937,-1017226241,-4632489,-222285057,1238497198,-2084348072,561316347,-1036090578,427097860,1979711293,-1590800371,-13761314,1476706846,-13761045,-352009698,-2134297830,108331006,55413286,942541291,772044085,-2096935542,1945699527,-921962451,-25159308,637891839,65733947,1963277102,1225386754,-947714700,-102503676,-25162638,41285887,52823822,108135037,-1977160398,-970045683,317446,-2133118013,1962935932,-2016989677,757073122,-970046653,537191047,11266115,870003549,243805906,1149895896,1992374793,-1967052257]},{"sector":2,"data":[121960176,-1978305408,-2010248636,1124393607,1967192963,8382467,-344600834,556160,1278741876,705196808,-779483060,185093258,-165317431,1963919172,121959948,637957136,-347667062,-2010228735,1124393607,1967192963,4450307,-613037570,-2147007242,-167110283,1149900148,-2021118454,-2092759838,58015995,-33544984,-152341042,1963919172,121959944,-352160752,1959922189,110046729,-889322276,48822133,1371755776,119428870,-617362549,81936013,1929073128,1493655301,-998046485,1573124358,805782774,-1977216395,-398372859,108264504,21334566,233568336,168135206,1191474368,737536833,-3975687,18219013,33576960,50360064,67140096,83921408,738241024,755020289,771817217,788600321,805395713,822175233,838966785,855760129,872546561,889342721,906131201,922926849,939720193,956509441,973306113,990101761,1006893825,436481281,1868787273,1667592818,1346445428,1145980240,1919252000,1852795251,1225656845,1818326638,1881171049,224949345,1850282762,1768710518,1634738276,1701667186,225600884,1850286858,1768710518,1868767332,1852400237,1869182049,1718558830,1918988320,1952804193,225669733,1867385610,1886404896,224685669,1816219658,1937207148,1869770784,1835102823,1869881459,1701867296,1633951854,1713398132,1936026729,544106784,1667592307,1701406313,1768169572,1952671090,1701409391,1935745139,543582496,2036689012,1919252256,1852383333,1947863565,1663067496,1701999221]},{"sector":3,"data":[1679848558,1667592809,2037542772,218762542,1346456074,1145980240,1683708704,1702259058,1634753850,995846260,1563307566,794501213,1329224536,545005646,1179012922,1528847709,1413566511,1313815112,790658080,1213481296,1179012922,794501213,168648005,1347436812,541347397,218762555,538983178,1769104475,1564108150,1752457584,1701860128,1768319331,1629516645,1769104416,1629513078,1679844462,1667592809,2037542772,544175136,1701867617,221144174,538984970,1329223727,-1308134322,-1342175200,1819308097,544433513,1701867617,1684366446,1919509536,1869898597,1936025970,544175136,1701603686,1634038560,1701340018,1851859059,654970212,548536372,1638924303,1768714352,1769234787,1696624239,1969448312,1852795252,1292504366,1479483424,1179012922,538976288,1092624416,1768714352,1629516645,1852141680,543450468,1701996900,1919906915,544433513,2037149295,544175136,1970365810,1937011557,544175136,1852141679,1818846752,221148005,6762250,991410,978857904,541476431,1948283753,1679844712,1969317477,1931506796,1769239653,221144942,538987274,1413566511,1313815112,538976288,1886404896,1936025964,1886413088,1701080677,1768169572,1952671090,1701409391,1869881459,1818846752,1701978213,1936029041,1948283764,544498024,1701997665,226059361,7160330,991410,1701868464,2036754787,1881170208,778597473,1345265696,977818689,1763724879,1752440947,1701060709,1819631974,1702043764,1852404852]},{"sector":4,"data":[168636007,790634546,1213481296,1179012922,538976288,1852994900,1718558835,1752440934,1717903461,1952671078,543584032,1413566511,1313815112,1326058798,1160716320,548536427,1404043275,1701998452,543236211,2037411683,543584032,543516788,1701867617,1684366446,1919509536,1869898597,1814067570,544502633,1629515369,1852121198,1869769078,1852140910,1258950004,548536385,1991245839,1634300513,543517794,1701667182,1346445412,1145980240,790634542,1634541637,1700929657,1702065440,1852776548,1948285292,1713399144,1953722985,1835627552,1024068965,548536381,2041577487,1965061487,1092642163,1313165392,1717641284,544367988,1918989427,1735289204,1970239776,2037588082,1835365491,218762542,2035561738,1092642160,1313165392,540745796,1663070068,1918985580,1701344288,1886413088,1701080677,1768169572,1952671090,544830063,1953720684,1208618286,1701869908,1347436832,541347397,1752459639,544503151,1634886000,1702126957,1948283762,1768169583,1634496627,1752440953,1885413477,1684956528,1679844453,1667592809,2037542772,1936288800,168636020,1049429774,-1048507707,29557972,-16711675,285213951,1702131781,1684366446,1920091424,622883439,-1928917455,-2096128450,-1664933695,781978091,55524992,778597631,72091383,1265893377,1963981952,9234691,1966996608,49015043,1970076800,45017347,1948515456,116862583,-2147482548,1122510196,-396332032,57999444,771912425,55524992,1023964415,58018560]},{"sector":5,"data":[1023570153,58018563,771909865,55524992,-351504897,-401682687,-13697029,-352231890,-401682687,-13697029,-2147398098,292884988,-2133161133,108396351,134629366,979092315,-58670144,-167545522,784533697,72615623,132841490,1409730350,-402652668,1575487292,119990281,24421166,1746307374,512503297,32178538,-68677937,168618239,2091069178,-12805119,552141684,162654216,1359398446,1709703427,547433993,104541700,175375444,70653581,-385231896,32180223,-68677937,378285823,-1993473678,-1946062810,-1915711800,1392778278,1448563281,521012766,-402093336,-970061641,16995078,1746846766,663365121,1979710592,130253574,774343206,25306760,509478,-1880614476,776012809,-1274962014,-1915604153,-402546122,-1662514818,1031808521,-385649349,-1943142140,-1962842618,658410999,134866946,-1237939922,113651202,771752418,36191872,-1273137862,378154510,-2010250713,-402529770,-360707615,154986561,1379827758,527761411,-768391244,31798925,772352488,55721600,-350784512,1364433930,508974930,840896006,788508900,-385778525,378339459,1001652775,118030824,1516199455,-1590797479,-202899084,2091068936,1048587777,1962935122,1979661512,144041987,1381061532,102651479,246685454,-1625912786,158066689,-398333312,1001654470,31594125,-1274495512,-1625912005,146073601,24944942,494272316,69247278,1409694510,773485828,23463566,-1237939410,16679682,619252596,113651455,-352320685]},{"sector":6,"data":[772715552,27203210,-2146886424,2011709930,-1925467128,-402546922,-1976694674,-352222682,646589960,-327155297,516173376,-2144992920,58064703,638043011,854075272,124512263,1396604974,326369283,69211789,1363050542,74711043,70653581,117972968,1516199455,854154073,243871238,-953286282,302273030,776989440,24649353,2047249454,113716737,132178,-1023984405,57934064,788364521,24649353,1980664110,378088961,-1993473647,771855158,26558089,2047249454,512503297,-953286249,33837574,772270848,72484551,-706215934,116844548,772063208,771847331,23860873,1847495726,-821957887,-268274,-100162072,24945454,772436636,24381127,-1259732993,104541701,57934930,-402281751,32180027,-68677937,378285823,-1993473678,-1946062810,-1915711800,1392778278,1448563281,245106206,107079711,-1677316376,1048653392,1258291572,-2127662988,95294,772830572,26424971,-1761178066,-1489072895,772401922,23869124,44514957,1275524910,1963982852,38791178,1946157117,773450498,72091383,846536704,1023560168,141885440,1023554792,578027520,-821957800,-268274,1392952878,-1590820605,-1557265326,32178556,-68677937,-375588353,-346553882,-401682687,-2127626245,95294,772830572,26424971,-1761178066,-1489072895,772401922,23869124,44514957,-402363672,-2144991533,58014525,-352211479,-401682687,-141819909,-821957732,-268274,36126349,87418961,-1727100626,-1993451263]},{"sector":7,"data":[-402475466,-1590819865,-1959919244,-1929284082,771893014,24395393,896887808,1465012563,-1962533290,773787378,771847329,24649355,1980664622,378220033,-1909587567,771848710,26558091,117850600,1516199455,-342074535,1048653412,1258291572,1392913269,669527988,512306694,-1943141286,1527012358,-1269686777,1578536218,-400617980,525993486,-953266508,302273030,777192960,24774286,2015267630,99936257,781977435,24395393,360008448,-1269804514,378220058,-1909586854,-402367458,1515718102,-821957857,-268274,776041372,55721600,1025471744,175374339,1376140078,-385649660,-1959919434,-2096974282,57934078,-369162519,-970063706,16995078,72524078,24945454,248447467,-100664344,9234844,24945454,1381061456,102651479,2011718324,-1077703163,-1960443843,108805,19752564,92874240,1816038190,109981185,-2127691410,95294,776827979,24395393,880102912,36124301,-1727100114,639928833,1195779464,1555363810,1193642022,800346886,101001704,1542687519,509905415,-2145023962,343146748,-236239034,613085835,-2145023962,74711292,-219461818,1600003847,1482381658,-402399000,-2144467943,217918,378341236,-639106016,-821957884,-268274,1600003847,-1671734950,855827689,2088773312,58014209,-1006633032,1354773334,-402355674,1935147495,46564101,-2144931349,259284028,792494118,-2144990860,108265532,-1193481402,-1017184257,1974992000,15067395,1957624960,25225475,1962932867]},{"sector":8,"data":[24701187,225771580,1478396206,2418692,-5242251,1963015375,1049177624,-1943142046,771843078,72752777,1962936808,93841411,21555663,1464948304,915090950,-964492200,1827187714,-1409060095,540866539,154989428,742190964,1027402612,993847156,1547494260,222093172,3933301,-24417813,977054799,-24444043,20572332,-964491917,1007282946,-1962576548,-303321858,343154748,276053308,208932156,141822268,74722364,-445301956,-24905941,-1960020729,-551244553,594886972,1021256876,-1407421104,1346166564,615257461,1967471839,-551244786,125128252,1021256876,117470532,1482578271,1962949827,-805326845,108332092,1514062894,37539585,-4717451,54317055,-1943136395,771842054,22953609,1049429774,-2144464958,-16560330,1963015375,521018907,-1207357208,45809665,852046592,-385894702,-1340084642,141682689,326438972,72130862,-919348429,1276545582,915025409,1020199245,772175110,72097419,1963408591,512306694,1020200012,1344369937,-1269365165,52750434,1035977614,93005312,1962934697,66822,1594198310,-816293113,1445920558,113651201,-1325464750,-2144415997,-16560322,-1202714763,718086146,1397801816,507413294,175439876,-843579208,512306735,1482359838,-1101652285,521011591,1660991568,-1993465395,771851062,25501324,915091032,-1909587581,-2097052386,292814908,141689914,1996571706,116128003,-352139645,526317802,119408323,36126349,44512909,-1928935634,-1962934527]},{"sector":9,"data":[1946172421,-5642226,-1993472397,1191284030,-1964184761,1547501381,-276622731,1043934722,91554189,-352139389,29852423,57945916,-1398121296,1946172586,133753602,786336707,26019527,-1977155585,16547876,1625820788,772174847,26031753,-353679802,-2145088986,494153724,1952251008,989626380,-214232204,-347205516,992890599,1963035958,-588558845,-1977203130,-2145023964,175374588,-8304826,41157302,-339481365,-401682687,-1909522437,771846678,24127115,106123420,-396184489,-1014103594,637550015,27854219,755397632,-1993998335,1527209733,1048587864,1979646799,537114629,-2127680819,95294,-350128821,-401682687,-1590755333,236847476,655789343,512437762,-1909587592,-402556410,-1675689590,248447467,788528104,25167503,2114359086,32218881,-68677937,782016255,25048831,-2143879378,2090937857,11724801,650720207,-58710902,-2145618944,125058044,1195779464,1189931841,-2145088986,125042940,1950088320,855829490,378614,842249411,19458240,622233646,-1338788862,-388877823,-1262288614,771862579,35985034,-1023341080,28324788,622234158,16836610,113651395,-1207958702,-202885852,512306688,-1064566446,22324014,395843213,-400218952,516096222,774186168,22156939,1411288622,13428737,1397801759,-1590819241,3998750,1024357376,158597128,129024692,-855637573,1532954410,1397801816,69116206,1946157117,539918,-1028388492,29034672,1529531648,777044824,772022433]},{"sector":10,"data":[772028067,772022945,772028579,772023457,772029091,772023969,772029603,772024481,772030115,772024993,772030627,772025505,772031139,772026017,1476674723,1364414659,503731799,-617391692,771767784,772022435,69344905,604932398,378088964,-1993472986,772024374,69877385,740199470,109850116,119473198,1532583774,508609368,179330484,65543950,-1017635072,1329496110,125173507,520040092,784531806,22036099,-1677233152,1310654254,567132929,116862659,1073742924,79169397,-131084873,1655985091,-1895839256,2931651,-1912108250,4021184,-1075612672,-2144993280,1198784573,4031270,1448558964,521018961,-1929377863,-217922506,1582899110,1191408735,-8133909,1326281728,4030502,-947714700,1204939528,638044035,1946172800,1031808526,638088224,1950039424,-1916536830,235097406,-2134640377,141713914,2004548224,552239107,44939459,646828174,788268032,76154566,236916224,-1330138105,1009765632,-1170246145,-1212940288,801968304,1276525358,-401115903,163054817,178944,-768423629,266928054,-386092822,-890764253,112644,855638715,-1227738423,-369563393,-402587976,-953285621,-16675066,16181503,-1275067205,-18552770,-386369205,417858474,1242991876,-754667230,-396184342,-930283826,-805059797,833880240,1409204712,1448563281,-1993472482,772034102,72359564,646524668,-970062709,17074694,771795944,76228235,-1003596026,637816382,1593836998,15623,-147964043]},{"sector":11,"data":[281606,-1204390848,802010884,-141877498,-1014049908,1478396718,-970571004,-74773753,240524871,768287,46151309,526296307,1966816384,-1440698358,-351797722,642509619,-2130749558,861277162,-1073042231,-348060044,-504668424,1925855838,-251439595,-906038301,993820750,-902105483,643756659,-1527574784,218482214,1312736302,-1442598908,146349838,-1204384512,-1197149438,520552448,1499094878,867484507,-269959118,378023677,867435045,-768474704,-1258429976,-855592777,1979661359,-1871647997,-806866764,343549,451609205,-1207728920,45809672,852046592,-385894702,-1477908302,-385896196,12059331,170904838,-352160320,56616980,-1157626184,-919404542,-4795854,-337080856,47906,-854580552,16483093,938017653,54257666,-1157625928,-919404542,-4795854,-387421720,-38732706,-1107133720,-970063743,62214,-768358093,-2010239052,771808550,17639048,604932142,243805697,-2010250948,771834894,55578248,1049429774,-2048393046,520039938,-1073020574,65602425,1958742785,18934019,1342621230,-2144403709,50408510,-970058379,62214,738641454,-2127691775,281614,785050432,20201088,774403331,20186822,44558336,1023487160,259981628,855638459,-1227738423,-405739265,871164736,-71243584,771874536,19152512,774272003,19152512,774403330,14485190,113651200,771752228,19218048,772436993,72099457,1827241983,243347199,-2147482548,788488937,20725376,841577730]},{"sector":12,"data":[646459108,-970063603,80902,1027506222,175374593,1277591854,-371196156,-2127626437,281614,-13506272,1144946734,57934593,117384937,777475614,21509829,1141294638,12517377,-1194881536,802010884,-955531124,118359669,46874253,-8617820,-352160768,526278647,-17700601,-1996044754,-2094137340,-16675010,-2144466828,217150,-953262988,102150,-84613120,-1023409992,28829776,25618520,-1360514581,243713,855638715,-1227738423,-400495617,62390685,178944,-768423629,267124662,-1207857944,45809667,852046592,520074962,915218190,-1276640113,-1477959706,-402542342,-857210685,520494843,993886246,-141868172,-1962414461,-1396100138,57933884,-386340031,521011385,76355213,-402652487,773783725,76103296,-1106414592,1655963777,-1896123928,-32445989,-1996044754,1474822148,-18182,-400617789,95944985,178944,-768423629,1206452150,-588570650,8502814,1072194228,786140923,76089030,-1276436735,892319750,788213224,22421129,1476824110,891402241,788209128,21896841,1342606382,236848897,51809567,623884310,-1912928792,-1206926058,-68672223,244068090,378339676,-1993473333,520182294,1048587971,1962935434,1959944,-605533004,-18182,-1141099287,1085538305,-1006973464,-1275067717,-87758784,106123459,-1142398284,650350330,2891403,1236583310,1527194061,1364247384,243976499,-108855168,-1976797696,-138287100,1015026547,-2145356512,1965031804,46564122]},{"sector":13,"data":[-352130429,1950170337,1948269578,1946762246,1174727426,1506798409,45859672,112896,45535794,540835918,1015022964,1308849421,1153889259,-2142371839,-92987332,-1858696914,512503300,1354957971,1460032083,-1047606989,783875891,-855592430,109850159,-1993472860,-1207655874,45224494,-1943130163,772058118,78265993,-1307431240,774884612,79431308,-1170306770,305051652,801965746,-1610183634,1049177604,149423262,109850351,-1993472868,772053566,79169164,-1237415634,23783428,-1341748178,1049177604,783811758,-855068142,109850159,-1993472828,772063806,81331911,-970061299,604316166,-569981138,771751940,81790663,-1813512182,1049177838,132646086,1049177601,434635978,3205120,1358971880,1912623848,123689224,-346530982,214205188,1448133625,1660991518,119415245,772436511,80885385,-737768402,-1017618940,-1153171272,-768409600,-427810355,30310401,-851181128,12108577,113476,567136819,-1207841152,567100417,-852446013,343329,-336067723,146712,-4520589,-1157370881,28835842,47360,-4849486,100647929,394240,458768,524327,589887,1092223059,1313165392,539959364,1230197569,1126190663,1818652271,225731433,1346444042,1145980240,1411395360,1767272559,1126201189,1818652271,225731433,1850283786,1920102243,544498533,542330692,1936876918,225341289,1346443786,1145980240,1919705376,2036621669,1936615712,1819042164,168649829,1049429774,-1048501871]},{"sector":14,"data":[46334084,-16711675,234882303,1936875856,1917132901,544370546,118370597,572145293,-1021460093,218548014,-67108864,952622,113716736,2,352765742,771751936,394951,-953286656,1526766598,113716829,1014759582,-1610168530,774585856,10618567,468204349,-1206684921,643039231,975576459,-1207733489,-379912190,-1993473757,1392512822,512578903,-164757481,536874502,-391363723,1014106027,1946619880,121694263,-164751243,536874502,-672660107,774302470,919286,1310618689,-2010244117,1966947335,243281414,1124139022,1929876712,-2010207035,-1091878137,914959950,-970063868,-1993474041,637539102,915217803,-2144468969,913583932,574390318,-164755340,16780806,-1977199499,-466484921,407854,772961024,-788528991,54739936,529213144,-352286488,113716841,65538,-1977196309,-466484921,65065280,260712152,-921965262,1396903796,-400585946,1935343814,-498908351,113716978,196610,-1977207573,-466484921,65065280,126494424,-523115470,651690816,-315486326,259311883,-1960422589,6154271,1124823899,787669571,132807,1599930372,244002395,-1590820864,-1959919614,771753014,398987,136219182,1355544576,-1459123418,91553794,458542,1015033344,-1457949440,158662657,33998638,-352321024,61886478,-1628897356,65755136,1476468200,1438906819,1334453841,200094216,-1928497975,2062027119,-402099453,-152961010,772205561,1388169,-1017292296,8290342,1157854208]},{"sector":15,"data":[-1018824981,235831342,-957870080,776631039,927360,-1590800145,-970260463,252051758,-1959897088,771756342,1962949760,2088775206,158677759,33998638,-352319232,1065559583,639202304,67575,-953281931,33554950,-402003200,-336068458,183236877,-1274826672,256255,1472460888,75467558,104761646,92808704,23431206,362884688,1166616064,20731906,-1993995659,-1993997227,1525352013,108331580,72714534,121393387,138209396,104653940,-2010773899,1055589461,259327036,1024302,1166616128,1569465860,640412422,637826441,1342590348,38270502,-1341885439,638184196,33703926,45090164,1476453864,38270502,-402426864,-1017184076,-1526282706,642777088,-1073018997,1397758069,-953264302,150995462,-1325419520,-10754045,1482381919,11082219,772961284,132807,-504889344,1048784386,1963524098,-352064766,11112536,772961408,132807,266862592,1048784385,1963524098,1073785152,-953281932,518,13953024,37651246,695535872,1946222761,113716757,2,-402437144,-2094136370,150995518,11079541,772437024,132807,1911029760,1048587777,1962999973,1048784399,1962934274,113716743,589826,1448133464,168069678,1008366784,772633914,97408,-970062219,166395908,1929683176,-347716095,-1017618721,-796241322,-402355666,208798861,208977930,771755240,32179336,-387234234,1019436634,1007448960,1010594401,607680378,1395977183,1049450246,942538903,1343714325]},{"sector":16,"data":[118379089,-1031117388,-1174405189,-4587515,1512164863,-1959896999,-1909587619,1128465221,-685342676,-1017444513,243281488,780140558,927360,76164861,175385404,125119804,235831342,-398065152,-1017643006,1448235344,-768358093,76164691,1114947594,1912637928,-1947979207,-773664280,7006417,-628413326,-489569909,1575539153,-786468352,-388902430,376569940,-938224893,1912622056,-2083192051,1105723601,1174630912,-346309653,777752614,919286,-150309886,-2083325999,-779943486,2005607936,76162566,125108284,-4980304,781192427,132807,61865993,-1763115084,1499094781,782025560,919286,-1660783358,40934851,-1007041544,141701180,74922300,-1007144916,1397801977,-1960421550,-1977219457,1975519749,-335563772,1963146316,-1977202881,-167136251,-134004508,-1274705370,1088747013,-1977157629,642205445,854076811,-2095942912,-922876985,-953224843,134218246,-335563776,1703552532,637710591,199955851,33998638,-1275066112,-402411265,1516240141,1354979419,-1302965675,76164610,1912795368,-25958340,235337262,225708032,527777084,25067558,-344886016,116796947,1947205646,1966750734,2122327562,1551171584,643623750,1962952250,1958742557,-347781550,1178215955,1178957056,1157925422,4602406,1162230389,-164714517,1073745414,-148500620,2097735,-2144991372,1946157182,133637666,410255376,158677564,8290342,-351439616,1962949646,2122327559,57948672,772205561,1128073,1566203640]},{"sector":17,"data":[1397801816,512437846,1065353231,845116712,-402158876,1299448208,74786876,1165149438,108341564,1030933758,574366580,-2010248075,-398244348,762445898,518524907,772240130,1128662152,-2010249334,-347912700,76033732,21284398,509440,-398003317,-1993473758,-352320458,915090960,-970063853,-953286652,150995462,-1325419520,-396665340,-1017578519,-402158768,611582240,225780284,1965227136,76033566,-347913402,29354216,-2010249357,-1975302652,76033543,-706002106,772140025,-134216506,1464910680,1049308758,-1976696817,1958742532,6285331,-970054539,16819462,80096862,1072389888,80096862,-148480256,1962934535,113716786,131074,1448618475,168069678,-400657216,192151597,1929469160,1195788034,787082054,771754146,1191183558,71207214,1482644992,1946288297,-4960247,1122502064,1405311227,-1675719343,637184,1946630702,-119389436,-1017423551,-1976675760,1958742532,18081848,-2094125966,1949958524,133637646,510918672,24936494,202863872,1918975008,2004499473,-1973408755,-1325419312,-84678650,-953284629,150995462,-1017619968,2287788,1407719540,773223680,919286,787313696,919286,1309242433,-336001301,-1018234879,1364444152,762580284,695468092,628361788,41779238,857633282,1569335003,79921923,3768358,-919401100,1124698662,1946237478,1022943748,-1017423603,-970043053,536872966,237404206,540860160,154941044,742142580,540815732,1015024757,-1341688544]}],[{"sector":1,"data":[-1069922784,-2144985365,1912668797,650720023,184765834,-1156877111,641925123,125043002,540866786,784554841,771754146,919286,772175105,921216,-339723744,388926951,1960655616,1966029834,250345731,1007414264,772175151,921216,516159552,-2094116010,2878,508569461,1431786065,-1896467706,1660991710,-611573299,1560795915,525949535,774468696,603785,186550574,915090944,-1909587959,-2097149154,276037692,141689914,1996571706,99350787,-336902586,526277624,-1306795325,-1341908992,-1,-1,6988,22413312,44893186,1112670958,-1064507253,234885125,303903,787971,244039822,-108331002,-34108593,-1202674445,-883949516,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704,78708751,-789068149,-628299565,74698795,-768878452,-268181293,-947135858,-388771593,-802438516,-1064565645,-522989013,-1030817789,1322289836,1187548077,-31145334,91598908,-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094,-1031072797,-1064385789,-2080863315,292880383,-501415642,16417267,-2129234704,-351272766,1086360796,-276578162,486614544,-339702200,-1950118942,-1962932162,50334262,33948144,1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602,482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,160880,458031460]},{"sector":2,"data":[0,0,0,0,0,544342016,118370597,572145293,-1021460093,218548014,-67108864,952622,113716736,2,352765742,771751936,394951,-953286656,1526766598,113716829,1014759582,-1610168530,774585856,10618567,468204349,-1206684921,643039231,975576459,-1207733489,-379912190,-1993473757,1392512822,512578903,-164757481,536874502,-391363723,1014106027,1946619880,121694263,-164751243,536874502,-672660107,774302470,919286,1310618689,-2010244117,1966947335,243281414,1124139022,1929876712,-2010207035,-1091878137,914959950,-970063868,-1993474041,637539102,915217803,-2144468969,913583932,574390318,-164755340,16780806,-1977199499,-466484921,407854,772961024,-788528991,54739936,529213144,-352286488,113716841,65538,-1977196309,-466484921,65065280,260712152,-921965262,1396903796,-400585946,1935343814,-498908351,113716978,196610,-1977207573,-466484921,65065280,126494424,-523115470,651690816,-315486326,259311883,-1960422589,6154271,1124823899,787669571,132807,1599930372,244002395,-1590820864,-1959919614,771753014,398987,136219182,1355544576,-1459123418,91553794,458542,1015033344,-1457949440,158662657,33998638,-352321024,61886478,-1628897356,65755136,1476468200,1438906819,1334453841,200094216,-1928497975,2062027119,-402099453,-152961010,772205561,1388169,-1017292296,8290342,1157854208]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[17180905,84148994,151521030,218893066,286265102,353637138,421009174,26,0,0,0,0,0,0,38375424,38535756,38535756,38535756,38535756,38535756,38535756,87294537,38994515,38994515,38994515,38994515,38339155,38339875,55640649,38339145,38339145,38994515,38994515,38339145,38994515,38339145,38339145,38339145,38339145,55640649,38339145,55640649,38339145,44958382,44958382,38339246,38339145,38339246,61211310,38339145,38339409,38339145,38339662,44958281,38339145,38339145,38339145,79364681,38339145,44958281,38339246,38339145,74121801,38339145,66978377,66978814,66978814,38536190,50201164,906413870,1342308353,1828487251,-997578121,-1948200552,-1476448552,283640122,146296832,1479200128,146297027,1479200129,146297027,1479200137,-661309,-13739941,-1962859986,1007127258,-2096794113,126486467,74825738,18718766,788513768,-402579806,126354224,522094894,777542401,20055695,872845102,49211393,572456750,-102196223,777211906,18816651,18784302,1482360712,876019502,922693121,-1930952398,-628371457,973176704,126522997,788493288,-402579806,126354178,522094894,777542401,20055695,872845102,43968513,572456750,-1444373503,777211906,18816651,18784302,1482360712,876019502,922693121,1021837618,-561262593]},{"sector":6,"data":[973176704,1139344244,-402158849,-1573978336,-1343749858,772245506,18816649,-1892788133,771830278,20186767,771902440,19013375,39250076,-1959898288,771825438,-2013192544,777542407,20199167,842465070,-18225151,1976699599,-17503997,-773274998,513945342,37677057,1482412170,942049326,110046721,-1892810446,-402574330,-13762052,-1677647330,771885032,20463232,772633654,20463232,772109340,18749066,876019502,922693121,-1796734670,1482412030,71127888,1024422980,175391749,1950615613,1141456133,-620020363,-1014351500,788424680,-402579806,-662044204,-1892788136,771830278,20186767,771856360,19013375,27453596,505317934,922693121,-13762252,-402574794,-372244929,1482423886,-58698928,172193129,-1975880485,-31528765,18784814,-1979610136,777541848,20055695,872845102,21948417,572456750,1508416513,512372225,-13762274,771830838,20068095,-335677720,-33232637,-1506325,1482412029,-1073065136,-628419979,973176704,126486389,-2013175320,-35329785,-1946270743,25133278,-1963821766,-38344697,18784814,-2013182488,512306695,1482359071,839290670,110046721,-504889036,520039936,-392429278,1397752044,522095406,513814017,1527220225,922693208,-13762252,-402574794,-1949303425,-402158630,-1573978772,-1993473762,-2147410146,91568892,-2013203992,93005319,18981422,1966800000,14739462,1527089190,110046808,-1892810446,-402574330,-13762432,-1677647330,1342213096]},{"sector":7,"data":[564145747,92808705,522095406,513814017,1527220225,922693208,-13762252,-402574794,-389022441,57999581,1543315945,497036888,-808911359,-1031120805,-236404482,513945340,6219777,-796210946,18981422,520040092,-1269825246,-13722599,771826206,18749066,976145150,1963008262,513814024,497167873,-991406079,1431359484,1183575179,102837766,1719730486,1576926982,1431356248,-1590760309,1174995254,-1017619194,57983230,-33553432,440189896,3939703,-1607595915,-1574043363,1364394270,-1147605878,-670891774,-1979217362,-1017423387,359809340,141974076,225599804,158825020,1613504524,83871720,-1209482432,788475647,-1343749850,788475647,-58719958,772109318,19803903,108462396,118358645,1456471984,-1070378672,448393355,-2071319040,994443523,-503024186,1505768436,12803672,0,28270,0,0,0,0,17186816,1026243331,105447680,1812353794,35655686,2013724160,6,-33553920,50331654,1096045359,5461332,1096045359,5451520,0,1790,4140801,436207619,1107741249,-834468148,114312198,1174852165,-699988268,114837510,1241963081,-565508388,115362822,1309073997,-431028508,115888134,1376184913,-296548628,116413446,1443295829,-162068748,116938758,1510406745,4261628,4390978,4522052,4653126,4784200,4915274,5046348,5177422,5308496,5439570,5570644,5701718,5832792,90]},{"sector":8,"data":[0,720896,0,19402752,32,285215488,16777223,536936464,118685707,268566528,1344274688,430168204,119841543,67627096,384304755,36694021,184560801,101217472,1236582542,101130701,567104180,103882377,104007308,968883207,8502790,-768358093,103626377,103757449,-1559449624,3999270,-401640192,914948252,-1645738449,103195404,1048636651,1946158626,20572169,-402653000,-12779051,1342928127,-1559875679,-396884435,1048576458,1970865701,15667,179832446,28895232,547405875,178950,-58657802,-1207536640,-1545076726,608075777,209022470,102841984,-972720895,17178374,102710912,-402098944,266863055,-402199806,1994916135,-853953535,28856353,-1104163578,-24444669,-100656455,1526441203,567086772,-855549720,-919354592,547405875,178950,1048638454,1963067134,16547875,117317237,113640992,1350108709,-1576599648,-1477966296,45848576,-1982332159,1476798750,117325440,-2144832254,594804988,102762238,103089862,-6270855,103326214,-1962902040,-2012862178,604423687,-1990690554,-2096747210,458814,1048659572,106694400,1048645748,107218688,1048643700,107546368,113647477,-973011423,2030445830,106694342,1678165536,113647622,-1994389911,-351916746,4096271,1963357447,570869255,15401222,19708099,-1191181893,12451840,48896,-4849486,1023635688,57934129,-1007293632,661799212,-1001368826,637939998,1931560762,1606690330]},{"sector":9,"data":[1488147222,56353782,1207379672,1950351427,123426822,-1195130626,1474822154,1476789760,-1207555165,801965569,62587313,452558849,975584119,1395749903,126494289,723421958,-2134667770,1074020545,118558344,-1207495774,29032450,178432,-1090054722,11665408,-286720074,1532561154,-339607997,-1262286912,-1021194932,312912,103618187,117970569,118103692,-1191181637,113115137,-1241468409,46131202,-2627496,-1274653872,-1910387358,512435907,-1014104020,567101876,-1017619705,310099,567099060,1543076171,891664579,512303565,109838630,649593128,-1994273483,-1946080738,-1207882746,567096623,19799689,19924620,-852155976,512306721,-1943142110,-1207884794,801965568,57982986,-1006765336,567089588,497205502,-73996287,-796210946,567086772,-1207574854,567092517,-1207572806,567092518,-1207570758,567092527,-1207823174,567092513,-385910296,1656422238,-852380672,49953,0,0,-65536,65535,0,-65536,65535,0,-65536,-1,65535,-65536,65535,0,658688,0,606339082,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,1294214180,1329864787,1700143187,1869181810,775233646,673198128,1866672451,1769109872,544499815,825768241,960049453,1766662193,1936683619,544499311,1886547779]},{"sector":10,"data":[1667845152,1702063717,1632444516,1769104756,757099617,1869762592,1953654128,1718558841,1667845408,1869836146,1092645990,1914727532,1952999273,1701978227,1987208563,1344300133,1460032083,-1047606989,783875891,-855592430,1275497519,1245612298,305051658,801964722,173278860,173162121,-1307431240,-1943024380,-1995807738,-1207279042,112333358,109850573,1049168456,-1058534842,1141279751,1111394570,1611041802,1581156618,131000330,173541004,173424265,-1307431240,-1943024376,-1995805690,-955618754,218791174,-972634614,113714186,2690,176424647,1474822154,1849592071,1697802,-402641176,-397344703,141688912,1510432601,82532443,-116603773,508973251,-849149768,520560161,914950258,109841014,1482558072,1140897987,855638203,-2145268270,-830471706,1140963329,-1195171379,29049856,-841862400,30310433,-851181128,817152801,87892429,-133991168,37558507,-1157270784,65798143,-1207958853,12124161,-1241468416,1355020799,1465209171,-376745466,175775369,176109192,184731368,186414281,-402295315,65732646,1912713448,99113480,-346093823,113541892,117763065,1928944223,1532583174,-2096829608,-1007089468,-1957538992,-2096465378,91619323,-352310040,7858179,1504972659,-855637829,-2082196959,-336001340,-294128,-1053095052,-1326971020,113541888,1510175481,516118619,-108847354,-1273268991,361375234,-1977671219,11659458,1931413022,1435117063,-132002559,45354987,158648587,-854226394]},{"sector":11,"data":[1967736609,-1021314829,1392922711,119470731,447797643,1974399740,1272523523,123456395,868441944,1959332800,520494671,-678739788,1963063683,522308904,92939856,1476418280,1931413022,1085601798,-1675506366,440238118,-1047854475,248447467,-335545368,-397322982,-376701018,1931595097,990636802,990344392,41285864,526238091,2603203,-1258289989,-25115903,-166628097,209027270,1049429790,45681277,-16717824,-1000929597,185235006,639071487,-134201981,975573108,638022149,1996571962,1195899137,123726315,-2147053629,-1814351094,-2076772462,922194698,-92075388,-2147125751,65746882,1378927232,1975520065,1960512260,66683705,2088766837,91565066,177026815,-2094863551,225773305,738884736,922682741,-348058995,167346960,2088766325,91565066,177026815,-768371903,-768366613,922730547,868420224,1959332818,-1339706335,624436736,942017141,74711397,242598970,-402290138,24379219,1229080391,-2024348811,1961692106,1048792371,1962936962,105155115,975581188,41222469,809246443,-771029899,872612980,1048635371,1979648639,1229079048,-347123895,-17917,-386323625,1499463178,1709900659,-896839280,425088,-922022540,1229522548,32196423,185658206,1577285065,-108852757,855799295,1962871753,106386748,-2083966127,688702,1156977525,141889287,-402490172,15401562,-352224536,2156547,123275122,-346137249,180650756,-2109832199,91553802,787022706,-2113484801,-1023410166]},{"sector":12,"data":[-2103324109,-2079930614,-402650614,-2007433553,1124763271,1967192963,33089539,-294270466,-1995829832,1124763271,32041027,861099715,-2134297610,141950974,175029387,636215179,1946339062,1388102664,-339506166,1260824,658312562,-1006078208,-1945477444,-1006179389,-1945484612,-293949,-25160075,-117213697,-2103243541,-18422,855638461,216791286,1946221443,5564419,-133904765,-922024334,-1611988363,33456284,1431447925,1347880529,-855310152,1493122095,-661976715,-855309640,-117314769,123667827,-2096698535,216532676,-346399488,-401682687,1583087611,-1185916989,-1070399489,-772296974,-1017161655,1963064195,1782481693,376766218,1979711293,-2103357429,1780416266,82532362,174726911,-919397653,1962933888,1300899334,772401923,74790200,55413294,-117127293,200813939,-2145815351,91553790,-351978714,87764483,166396533,-2096794551,-471137081,-2146667783,1979252734,637996546,1912765699,653079046,-968422006,687110,-2133118013,1962935932,-2037922031,1127030794,-2037922237,-398254070,861733030,-1999490085,-1979024370,-1053161148,-1054204298,1157034122,343179271,-2012593014,1124763271,1967192963,8185859,-327823618,556160,1278741876,705196808,-779483060,185093258,-165382967,1963919172,121959948,637957136,-347667062,-2021107711,-2092758394,58015995,-33537560,-153324087,1971324740,1962281496,172263956,176588680,1090224963,602407797,1976499712,121960172,-167217905,1947207492]},{"sector":13,"data":[168618754,-1895271214,-32866298,-386370102,-1017839614,509019729,868977415,-2042720805,-76224502,123667826,-2096829607,-1007089980,121960029,638743856,1095763338,1945918184,1166681606,-336048127,92939789,74760202,-169131705,-1017775829,134219263,2097153,3407874,4849964,9699629,12321070,15532335,19333424,22413617,1668172055,1701999215,1142977635,1981829967,1769173605,168652399,1769099033,1634625895,824516716,1702043706,1869881460,976364832,1380780557,1919509605,1937007461,1902473760,1953719669,1868963955,1768169586,1864395635,1634887024,1852795252,1852776563,1701736224,1769104416,1948280182,543236207,1717987684,1852142181,1919164532,778401385,168626701,1397965099,542000969,979073115,1534672221,777739578,1566387758,1396771341,1313294675,1414737696,1398101057,168626701,2015371316,538976288,538976288,1667592275,1701406313,1752440947,1919164517,543520361,1953785196,1948283493,1701978223,1769173857,221146727,538983690,538976377,538976288,1701860128,1768319331,1948283749,1679844712,1702259058,1634235424,980951156,1818851104,1700929644,1936941344,1701734249,1869881444,839519534,1395597344,1431585108,1142956115,1819308905,544438625,1920103779,544501349,1986622052,1935745125,1852270963,1953391981,168636019,1414859277,543518841,1230197569,1998605895,1869116521,1881175157,1835102817,1919251557,1869881459,1936028192,1629516901,1679846508,1702259058]},{"sector":14,"data":[1952803872,1936876916,544175136,1734963823,1818324585,1935739405,1852270963,1953391981,168636019,1049429774,-1048506024,29557202,-16711675,285213951,1702131781,1684366446,1920091424,622883439,-1928917455,-2095894722,46342337,-16711675,234882303,1936875856,1917132901,544370546,118370597,324222605,-1021460093,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-16777216,0,255,-953286656,1281286,-1993409536,773029902,327288519,-953286656,1283334,113716736,4998,1929676776,-18413,495658579,1930377766,178179,19130715,-1892251346,1431786259,328670861,-1912146386,1131749395,85452972,2078817394,-399019004,410322092,-1912146386,91562003,-352042008,116796966,1950421902,468405790,1007126574,772175165,328076928,15221505,-1396346107,1124567086,776912619,327431817,509486,-1826715346,495658515,328677005,792494126,-2144455052,141828668,-1912146386,1416954131,21465638,959374386,1930657798,-2136920558,1138807059,651690819,-1998053493,778693376,327288519]},{"sector":15,"data":[1626013697,21465638,-784276430,651690976,-315486326,259311883,-1960422589,13035551,1128362843,787669571,327288519,887816195,21465638,-784276430,651690976,-466483318,54583505,260712152,-921965262,1396903796,-400585946,1935343709,-498908405,113716978,267138,777740125,327159435,327328046,-2076800210,378220051,-1976691834,-132937698,-1960423229,174343,-13761163,773029894,1962949760,108825,-953284235,34832902,1343154944,-4979792,1476435688,501744619,-104638463,642864579,839405450,1959332845,158305549,1929536744,976904,-335939870,780742150,1509430165,-2144943267,1946157182,-152353533,-2144419003,269717006,1929365224,645934666,1357845390,328311086,19842603,1477676806,-1858696402,1015033363,774272256,989822080,-953284235,152273414,639625984,1946173315,133637657,309657601,-2113485010,-352321005,9889801,-116528136,-1336931605,-385895421,-128450557,-1960421437,-1993472897,638813758,-2010774136,776995173,638817697,1476543881,175440188,72714534,105744678,37509867,-1993996683,1357579349,-395049156,-462157764,108332604,72714278,71057131,-1590816907,641733519,637814153,-351904372,1971922475,1301030404,-165261306,1946223175,-352014332,1207313929,91488770,-2031615312,-165259264,1947206215,5629955,-970013857,1319174,126559824,410370059,1465013072,-2113485010,-1275066093,-402411265,1516240731,48978011,283837419,536914320,-953283980]},{"sector":16,"data":[1278470,12249088,557744174,259326228,-2109832402,125108243,-2113485010,1476397331,777408707,-1073085302,977017460,-2144465547,1962934652,80096774,-402003200,24314475,-538229178,1455642718,785418834,1491600522,168587778,-401836864,-2010251252,1174530820,1525214022,-2143501474,1631325299,2050770290,-551272073,106118635,473861463,83525652,1049429108,942543895,1343714325,118379089,-1031117388,-1174405189,-4587515,1512164863,-1959896999,-1909587619,1128465221,-685342676,-1017444513,141701180,74922300,-1007144916,1397801977,-1960421550,-1977219457,1975519749,-335563772,1963146316,-1977202881,-167136251,-134004508,-1274705370,1088747013,-1977157629,642205445,854076811,-2095942912,-922876985,-953224843,135496198,-335563776,1703552532,637710591,199955851,-2113485010,-1275066093,-402411265,1516240419,1354979419,-1302965675,76164610,1912697576,-13965252,-1912146386,225708051,527777084,25067558,-344886016,116796947,1947210638,1966750734,2122327562,1551171584,643623750,1962952250,1958742557,-347781550,1178215955,1178957056,1157925422,4602406,1162230389,-164714517,1075023366,-148500620,2097735,-2144991372,1946157182,133637666,410255376,158677564,8290342,-351439616,1962949646,2122327559,57948672,772205561,328283785,1566203640,-391330984,410255394,1962955752,116796950,1948259214,116797165,1950421902,116084233,-134091783,-1007107250,222056787,3943796,171714932]},{"sector":17,"data":[-2144983692,1912734333,651899678,-2096931446,-2144992061,225706041,-1977169613,975586057,-503024639,1494039800,1364443995,-2012821970,-2144460781,-552366554,913580092,846465340,829697084,209002556,1965046912,1176547335,518766650,41779238,857174529,1300899529,1959332611,244491,20588099,-119404684,1532567612,-2002637117,116796947,1963004814,243281414,975180686,-1914180672,991139630,1007318237,-117213905,-336064789,1966029835,243281414,-130018418,1398152899,-1958837458,661979155,1381047888,856053079,-1193373962,567108352,-619979892,1516199175,1951932249,914959913,-1993469047,773032734,327759499,-1960931794,3965715,70914164,1144653938,-117213439,1178994155,1543039979,1925390174,544434464,1869835361,1936615712,1819042164,221144165,9226]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[28596813,31,17039392,66846719,128,61079568,30,1]},{"sector":5,"data":[0,0,0,0,-1912383816,-795936040,-78290756,5641868,5508748,5250697,-1558867784,-594870190,-338564143,-338564143,-1946041469,-1932000304,-1260901440,-1943941814,637556742,8392330,-2118193870,512632320,-1942618068,-1107273186,32178176,3965766,-964429195,1017927172,-1946454784,-567583010,55235467,-477936679,46367742,-57941205,-1898935290,-204830784,-969537628,910630917,7093897,233032327,637567422,-2009725814,-498645499,918565878,-796129912,-1064380274,1342205089,-1275039768,-1272853172,2215244,1426063360,-997987189,512630272,1988821080,11840516,1575324447,-326412861,100713603,-1912191349,-1962911738,128582782,-1017256565,0,-1205972836,-661781674,772345505,-1593771869,-1557264112,1478426874,-132186322,2080521216,56014863,-1064380274,-1206786072,567102465,-1957363505,-390056980,1996434916,387076,1560462467,-326412861,-402652488,1187458512,-956301058,663046,-1442396416,704643082,152216256,-1576395614,2057439508,148420620,188528720,714270800,-167459709,17359878,-659024524,-397389816,-998036728,768004,750315600,-402471805,1139282020,74907410,-2096978456,1183384260,1958743038,1374179335,46433043,1342911672,-2093794840,1790444228,2058899467,770199564,79987505,1342925496,-2096710424,1183384260,1975520254,839305011,-2097151989,663102,113640820,-1207892704,-1202714348,-397407382,-998044079,-28931836,209043467]},{"sector":6,"data":[187842179,-955943680,196166,201213579,1026520256,410255362,1946157885,343341,255657332,-1205046272,-1202716671,132841477,1342177720,1342177976,1342177720,-2095957016,-907540796,-28931312,28840683,62410752,-1192957184,-1202716671,-605356017,-1017256565,871140181,749922496,-1560000885,1183517500,188654342,-1559738741,113642304,-1962996925,1117916230,172395275,-1207221085,-1202714408,-397407428,-998037000,-469305852,578027784,148506311,113704962,2272,148637383,113639424,-1207891746,1347422424,-2094411800,-1017314108,-1192457387,1307049990,2122536492,930414600,-1962516853,39291655,-1980086647,300678230,-16490869,1992557638,-96010246,-2012968410,-94452729,4161574,1586226805,-92894460,-2012968410,-1959269625,126551646,-1996335221,1451883078,-28915716,350945280,-16490869,1992557638,-96010246,-2012968410,-28901625,956843659,-462225850,-972792181,-1070923769,190625872,799467600,1577370755,-1017256565,871140181,733931712,-15749144,-471333770,46433066,-1957313699,178412,-1960073240,78709830,-1992234797,1050934854,1007077131,-1203240949,-1202714408,-397407428,-998035272,-469305852,292815112,-1202667477,-1202716664,-397410303,-998043440,148414726,-1017256565,871140181,727640256,-1560000885,113707828,1224739644,1342911672,1342757048,1342913720,-2093958168,116786884,1946224868,1354771217,1342179512,1342177720,-2096067608,-1070922044,190625872,787933264,1560593539]},{"sector":7,"data":[-326412861,-402651976,-1957287152,1183385158,71732220,-1946270071,-28933160,-59340030,50087555,126420107,-1946263925,76282998,-1070921847,190625872,783738960,1577370755,-1017256565,-1192457387,-840433620,1187468842,-1962934044,-1070930826,-1947581816,1116267638,-465109028,149192323,113764722,68398,178915015,1187446784,-956300826,55878,-1560000885,113707844,2880,189138631,1187447872,-1207959306,-1202714408,-397407428,-998040849,148414724,200689289,-385649472,1790444299,-570017524,-1960610552,-2146669026,141896511,135031712,116120646,135031712,113764934,68266,187565767,1924661248,-570017524,-1960610552,-2146666978,141896511,135033760,116120902,135033760,113765190,68266,187565767,2092433408,-570017523,-1960610552,-2146598882,141896511,135101856,116121158,135101856,113765446,68266,187565767,-793247744,-570017528,-1960610552,-2146905058,141896511,134795680,116121414,134795680,113765702,68266,187565767,-424148992,-570017528,722892040,-357019456,1790464008,1273516043,113542141,31082183,149862400,148768313,512435061,1065355506,-1610058453,1174931695,-1610159136,1174931695,-1442396178,-956301046,732678,150386688,148768313,512435061,1065355514,-1610058453,1174931703,-1610159135,1174931703,-1442396177,-956301046,732678,150910976,148768313,512435061,1065355522,-1610058453,1174931711,-1610159134,1174931711,-1442396176,-956301046]},{"sector":8,"data":[732678,151435264,148768313,512435061,1065355530,-1610058453,1174931719,-1610159133,1174931719,-1442396175,-956301046,732678,178436096,148768313,1048777333,1963002398,-163133691,113704969,68126,956961976,1963515398,-465123542,-1070923476,-1202696112,-11534335,-135732106,180651003,-2115746049,20243582,-1070865290,-52893616,-2096970621,1962997374,148676876,-1593098077,1151535328,-159481077,-385649408,2122579453,91619318,16139975,-629243136,-2095811328,1962997374,86095886,191543376,741795920,-2096839549,1962997374,1799258140,360004107,191643264,-1207012096,-1202715355,-397407382,-998036524,-427916540,-955943680,652870,16402119,-700004608,1187446784,-956301060,55366,16271047,-28915968,1187446784,-956301080,62534,14960327,-461993216,31212278,1191117684,-461992966,32129782,1191117684,-461993002,551305974,1191117684,-461992964,552223478,1191117684,-461993000,81543926,1191117684,-461992968,82461430,1191117684,-461992962,47989494,1191117684,-461992984,48906998,1191117684,-465109004,82083459,2122553202,762774010,30834307,2122524535,561447420,30965379,2122521463,360120824,33455747,2122518391,158794216,32800387,-1964440713,-163133696,-1410793463,1077838592,997457931,188759683,-2093714431,34291774,1048784244,1946356544,1077838630,527696907,188759683,-2095549435,101400638,1048777076,1946618688,1077838602,57935883,-98071]},{"sector":9,"data":[-1593098234,1183386436,-16520206,1586229830,541032690,126547316,1020544648,1006924843,-955812563,652870,1187448299,721420534,1555583168,-1175957493,79987498,-956411159,662534,152176326,-465123584,1988820992,-599618844,169608712,149570186,-16182778,2122572870,-428734236,571088032,-2012671482,1190581318,108333012,550782710,1187448180,-1962931722,-1956710842,1438866917,112782475,646375425,-28915882,1996423168,-91845372,1307070718,79987498,-2147197301,1949958527,1007077178,-1206321141,-1202714408,-397407428,-998036600,73304836,67688608,-1962440639,1204159582,1586182657,38258180,-91845376,1996443902,701163524,-1207647101,-1202716580,-11534334,1088947318,113541898,57982987,-1962899223,1077937222,-91845296,-504868610,79987497,-972792181,-950271417,736262,71732039,-1560280315,1586170692,738691588,188916288,1342757048,1342913720,-2094330904,-660536124,-28931832,149161718,-952339199,65094,1342201016,-402360577,-998037006,-11515902,-790100874,113541897,225820683,1342515640,-402360577,-998037192,-91845372,1996443902,690677764,-16464765,-1075313546,46433065,-335788407,-61931773,1342201016,-231681,-1863842698,113541897,-378224629,-939768065,64070,1586171883,-2012968198,-972483449,1191116804,-59339782,66745859,1015022710,-1948027648,-2017002914,-1207957228,-1202715349,-397407980,-998037190,1975520004,86882309,834151147,347623429,602427401]},{"sector":10,"data":[79987497,460701707,1342518456,-402360577,-998037344,87603204,152352848,684910672,-955988861,64582,1191117803,-60912644,152354688,-2146208768,1057559743,-1082128524,1965689108,537315045,1183514885,-443851010,-1957313699,178412,1445249000,16664263,-1961301248,-2147090874,1592283136,46433270,-1946263925,8914038,-1946269953,1178142278,1591767806,-1017256565,-1192457387,-1981284350,1187468836,-352321282,-27358439,-1979418997,-1957652480,8390083,-164239280,-16464765,1183579718,-28952314,-1956716686,1438866917,79228043,609413120,-972661109,113704967,1308625724,-1979162997,-1545328121,1183517504,188916484,1342757048,1342913720,-2094441496,-660536124,-28931832,149161718,-952601343,64582,100419211,-397410146,-997984835,106859266,-2012854529,-62456057,251428483,-1783045518,-1561833472,46433269,173968280,1187448713,-1962934018,-443810234,-1957313699,440556,-1960586264,1183384646,-958886914,113704967,1325402940,1342757048,1342913720,-2094471192,-660536124,-62486264,149161718,-952601343,64070,100288139,-397410146,-997984951,73304834,-2012985601,-96010489,251297411,-1783045518,786976768,46433269,106859416,1187448713,-1962934020,-443810746,-1957313699,178412,-953983000,736262,71732035,-1207221597,-1202714408,-397407428,-998037384,148414724,-151107959,17359878,1586171253,148676614,1187448712,-1962934018,-443810234,-1957313699,178412,-954000408]},{"sector":11,"data":[736262,1040631660,-956268533,737286,1107740416,-1962868469,1151534150,1174849291,-1207654901,-1202714408,-397407428,-998037476,148414724,-151107959,17359878,1586170485,-955807482,65094,-1946270069,1438866917,45673611,583198720,188483271,1183531777,188916484,188810950,105286144,-1207222110,-1202714408,-397407428,-998037552,148414724,-151107959,17359878,1187448181,-1962934018,-443810234,-1957313699,309484,-1591575576,-1063056582,71731972,-1207648605,-1202716671,-1202715460,1347420161,1342180280,-2081054232,-660534588,-62486264,-955563357,587938822,148420709,188528720,661579856,-1593523069,1183385816,1354771454,28856400,246960128,1810386944,180650997,33455747,2122516084,-1686830850,-1946270069,1438866917,112782475,570877952,-1996208501,-388891066,-2139160539,1183404228,-754404866,8332776,-1946270071,1183384646,-93943046,2474026,-96040673,-1996208501,95550534,254142675,-62486272,-1962516853,126484038,-1962385781,1175190598,-1962440198,1438866917,112782475,564848640,-1996208501,196214342,522578131,-28931840,-1996208501,1719925318,1183399674,-754732548,1056974304,-1946401143,1183516254,-62518274,1586169737,-96040184,-443873399,-1957313699,1358060,1445028840,1342910904,-402360577,-997982736,-28931836,108314635,-369211765,1048772894,1962937002,9234691,187770496,822540015,745800203,169608950,-165317374,34148870,983637621,79733515,-1560000885]},{"sector":12,"data":[-1070922562,79476816,112720,-642232240,13428992,187762422,-164858876,67771398,116794741,1963198738,188391710,-1962622813,-1096612794,1354771204,1342487736,1342177720,14202960,-1610573335,-789182190,187762210,169608714,705376674,1996443876,-34609148,-1996176253,2146172486,15484615,-1962218752,1120332918,1191125230,-327253012,-1960938744,-2020938658,-467008240,187764362,-1048187606,-2020942476,-208993000,-336706936,-330905639,1988821000,-297613588,-330891488,283934339,1187442802,983630078,82879243,-1544665459,983631086,83665675,-1560000885,-1070922502,82622544,178256,112720,637008,-209917872,-955595645,17510918,-19076864,1575324510,-326412861,-402650440,983638044,83665675,-1559869813,2122515706,1081409800,-402360577,-998038316,-96040702,1039947401,192282623,1979710083,178182,-1962881559,1452014150,-163149316,-1913104759,-895224250,188391684,721734819,-927444800,9562372,34111107,113722997,1459620668,-1560000885,-659027138,1018712072,-571977717,79987492,-1995908959,116850246,1946224868,-28931323,-658998549,-692563964,922701828,2062026974,113542141,-1202667477,1173030100,50888323,113726069,1459620668,-1560000885,-659027138,1018712072,-1847046133,79987492,-1995908959,116850246,1963002084,82098356,81967184,-600375472,-40900600,721863811,-524791616,45633540,28856320,163074048,1877495808,180650994,187827911,-1070923775,-1017256565]},{"sector":13,"data":[-1192457387,300417154,74907423,1350583949,-2094866456,1996424388,-2142860026,580053072,-2096839549,698942,1048774517,1946159918,-2142860018,-42538928,-1996307325,-1946190202,-1946190202,1438866917,-1497830261,516614145,-8747321,-2033844202,-1207894182,-1924136832,-397377466,-997983764,2122761988,-2097151745,663102,-907476107,74907392,-27621747,577693776,-1207647101,-1924135620,1358846598,-2094915608,-2037578556,-1924071556,1358920326,-10844531,1518767440,317214974,147096570,-2147450391,788486846,-2030680460,1947271036,74907455,-27621747,572975184,-1929067389,1358912134,-27621747,567732304,-1207647101,-1924135616,1358846598,-2094938136,1996424388,1518767366,1323847934,79987711,-8485239,-8470909,-13536000,-2037578634,-397345190,-998039072,88258564,1518767440,-1847045890,79987489,-8616307,1518767440,233328895,79987706,-8485239,-8470909,-385649408,-1098645647,1964179326,2122761990,-2097151745,16744126,-2115435660,74907392,-27621747,563013712,-16464765,-2037578122,-397345190,-998039232,2089192708,-2037559041,-1924071558,1358912134,-27621747,-114038704,-351746941,1522434110,544485119,-8616202,-2146995184,335934,-2037575051,-11468966,1340605558,79987710,-8485239,-8470909,-1928039168,1358920838,-10844531,-109909936,-1996176253,-2080407930,16744126,-1098664076,1964179326,2122761990,-1207959297,-1924136832,-397377466,-2037647210,-443809922,-1957313699,178412]},{"sector":14,"data":[-954394648,736262,148420791,188528720,3127376,559212624,-2147040125,579646,113728372,-1224602820,1342757048,1342913720,1342189496,-2094975512,1048774340,1979648216,1007077180,-1195964917,-1202714408,-1202713796,-397410257,-998039274,148545798,-955601757,118176774,2145681591,-1207222621,-1202714408,-1202713796,-397410257,-998039310,1007077126,-1204476917,-1202713804,-1202714408,-397407428,-998039040,-28915962,1586170126,-28933122,148545794,1586169737,187998718,884475785,1005080587,46433058,188483271,1824007459,188916501,-1559546207,884476730,-659009525,1018712072,-1175957493,113541921,188483271,113714468,16517954,-1559546207,884476730,-659009525,1018712072,-1779937269,113541921,-1202667477,-397407396,-443867160,-1070349475,-2095314968,699454,113712756,-1224275140,-1559581535,-659027138,1018712072,800608267,937971712,113541920,-326412861,-402618184,-950658088,16742534,2025229056,-2143107329,2022113056,2025751039,1912635647,2022098924,-352321281,2055635758,-1631321345,-2094596230,460587071,-8485238,1996961830,1194862312,-1948093951,-956335946,-12287934,-34682,-1946191738,-2043083194,510918520,-8872309,-1979418997,2122745856,190751231,190846603,-8747383,-8612215,1988866283,2142928902,292832511,1988877963,138840580,91553848,-352321096,1589652226,-1017256565,-1192457387,904396808,374811,-276895664,-1996307325,113768518,1694960444,188614343,113770495]},{"sector":15,"data":[330560,188876487,113770495,2886,-1207225181,-1202713804,-1202714408,-397407428,-998039440,1354771206,1342921912,-2095135768,117376196,-1070921502,-1979824503,1183710278,-96040452,-1995906399,1183054918,1586168570,187998714,1589905289,126559996,39291686,-1995743581,-2096406506,34299398,-1202667477,-397407396,-443867524,-1957313699,-390056980,884480664,1743278091,46433056,-1559545183,113706248,209323270,-1559869813,113707836,133950,-1559738741,1183451968,188981764,188876486,1141294848,-1207630837,-1202714408,-397407428,-998041656,-469305852,578027784,148506311,113704962,2272,148637383,113639424,-1207891746,1347422424,-2095603736,28837060,1541951488,46433262,-1957313699,309484,-1592126488,1183386436,-16520194,-526254522,-28952312,1586169971,541032702,1183575412,-62486018,1191117803,148939260,1945912889,-60912888,1965047680,-60912659,-16775226,2058944118,-1511501812,79987485,33848963,-1070922635,28836843,1996443648,178180,-15538096,-1017256565,1397903696,1465275732,-326433250,-1912383816,62455000,-806858752,46433261,1583292167,1515936605,-1865459623,89327303,-1979973632,-955955698,346118,1527170816,-956301307,347142,302434048,-950183162,2080773126,369542972,-953467386,1023809542,1465012539,-18090,-1377260479,-1980140280,1577458446,453938006,-2133118202,41230908,-620047370,76230517,1948269885,1025522959,154995316,1023767613]},{"sector":16,"data":[427100477,1178404038,1364655755,119408198,1493673203,-4764066,102436607,2135508553,-16097598,1516222069,137554009,-4713613,-1960422401,255469085,45613939,216619776,1429637377,1431786245,89988749,89392886,-1405192928,1913175528,136767543,1474835060,-166300408,537220102,-236452491,-165483769,1090868230,-347202700,1007126552,-2147125955,17126414,146335811,-2001942157,-1007992057,1245088078,509445,89726601,-1927443674,-2147132106,829697852,1948400768,1409742343,1349845253,21465638,104457266,292750662,-788183391,54739936,529213144,-352288536,1208403814,-352321275,1200236126,1088696833,-670834479,839879206,1959332845,642990863,-152559733,1064524544,-220052669,88606407,871038979,21465638,-784276430,651690976,-466483318,54583505,260712152,-921965262,1396903796,-400585946,1935343700,-498908406,1208403954,1560282117,244013919,1218512198,1245088517,1276545797,1310624261,1355020293,-1459123418,74776578,88475391,1962949760,108824,113707125,132424,-1336930581,-385895421,-346554161,21751811,243319640,-402127532,527564853,89400960,1470189815,29764357,1476744454,89601675,1946172544,19130377,-116134920,113709291,591176,-1274826672,9300223,1438906456,1334453841,200094216,-1928497975,-119010961,-402099453,-152961011,-1996100615,-133866706,650337625,32384,-347798668,-2134686218,268784654,1929365736,1411809346,-1588531451,-970259113]},{"sector":17,"data":[89458177,1463192408,3964933,2088772469,141900543,88606407,518717449,4162342,-148498316,1962934535,1208403729,-352321019,9693193,-116528136,-1336931605,-385895421,-128450557,-1960421437,1049166975,-2010774196,1703421445,1537298433,1166616069,20731906,-1993995659,-1993997227,1508574797,108331580,72714534,121393131,138209396,104653940,-2010773899,1038812245,242549820,1074091425,71665958,106794022,-1993987093,-1943665547,642778717,16926710,78644340,-165279253,1946288711,-402477051,643301606,268584950,-1192754316,-960274688,400646,126559824,393592843,1465013072,88606407,-4980727,1625818032,1532649471,-1458050216,276041728,88606407,1776812032,1212056323,41224453,1676346347,-2147440240,113709172,1352,-2097080856,151341118,11095413,-955222976,346118,14739456,88620675,-1455917815,276038144,88606407,-1494745088,1212056324,594872581,1946189993,1208403728,-402653179,1048773668,1963525448,536914190,113707380,1352,-2147354648,17177918,1048776053,1962935624,1208403718,1476397317,-1974054717,1958742532,1966750744,24936459,-972720896,166395908,1929751016,-347716095,-1017618718,-796241322,-1746402166,168522245,-401902400,76021771,1178993131,1583016683,1937784003,1918974988,2004499522,-337697730,1460032314,101531277,1946483328,138317060,1947547654,1381060631,1706297118,-4472182,375295,-838860870,1482250785,-1912513141,1128465221]}]],[[{"sector":1,"data":[-685342676,-1017444513,1410236496,645955589,-1963129516,1948990468,1965898761,1410236422,-398065147,-1017643006,1448235344,-768358093,168069715,-398297920,963772694,-393485262,-774774063,1912666344,-1948611796,-773664319,15460561,-489611406,-488058415,51802624,-389540909,225575129,-779889405,13625344,-347733134,-1259775044,116808448,1946289492,-137234678,29524946,637587843,637958027,3933322,28313461,-1695940684,-1977203200,1946172420,116803166,1971324244,1278944798,2000056835,1413162502,640578049,1996966971,641298984,1996837947,640805664,2080590907,637959960,2080461883,1278944784,2081062663,1413162523,-352157947,164004627,-1233794818,88606407,28311558,1005322164,-1977220688,-1271600348,1088747017,-1977159677,992364036,108331852,22297382,-964435340,1976106501,1208403949,-1342175483,-335563775,1208403722,-1342174971,-385895421,1516174603,-1664919463,89392886,-1660783358,40934851,-1007041544,141701180,74922300,-1007144916,1397801977,-1960421550,-1977219457,1975519749,-335563772,1963146314,-1977202882,-167136251,-134004508,-1274705370,1088747013,-1977157629,642205445,820522379,-2096008448,-922876985,113766773,525640,334233524,-10122714,-1960443216,-955585771,151341062,-1325419520,-58333181,1482381919,1381322947,-1979534762,57731076,-387433870,1409742589,225708037,510999868,25067558,-345082624,1409742354,242487301,175454780,8290342,1180333312,975592171]},{"sector":2,"data":[477429830,1349828618,317408582,4602406,-1975106699,975586564,963969094,-1410644666,89392886,638547008,537020407,638022656,32384,-148495756,1946161159,1966750744,2122327561,225771520,3935979,-2144991371,1949958270,99350787,89601673,1566203640,1364247384,1448302162,1577098472,100665031,113704960,1538,100927175,-1578631168,-1558810112,-620100096,-1779951500,-1553632768,-620100094,-1981281164,-1554419200,-620100092,512447093,-75299362,-1591774206,-469105152,-930463115,168166049,-1975945756,68586472,33260294,-377093515,378214123,44107264,1977879046,-1580692961,-469105148,-393603467,1935997571,1824686340,-1268884729,-402149121,267123539,-4956581,1223164848,1208403963,1509951749,-1916577703,-2096767434,41221948,1377701867,-1205920176,-695519232,1515725261,1381090079,76204339,997507082,98385536,-2146470912,74777083,812923452,745811516,758910187,792471156,775692916,-1565068,-1273072899,179998976,199423744,51475922,-1861324095,-1967133882,99350744,32241734,1522633721,1397801817,1428065110,1007127045,1126004002,1912613608,21284368,1190365952,-1996436504,-351974858,1496746765,312837,88606407,-4980727,1532889520,1492817640,126570691,1946209256,1965177889,586973196,76028789,-347913402,24439017,76023411,126501702,1128662152,-335947541,312836,1354979576,1049318999,76154197,292864010,1962956776,486983200,-966917882,-346095612]},{"sector":3,"data":[80109113,-148480256,1962934535,1208403757,-352321019,-1974052827,1958742532,2811931,468192116,1191342849,-347715770,89039594,1191183558,88751753,-1453826210,158597632,-1325419440,-100800507,1364443992,101850765,973081017,1124365319,1497496034,-391330981,376700960,1962955240,1409742356,-294379515,89392886,1309242433,-336001301,-1018234879,1364444152,762580284,695468092,628361788,41779238,857633282,1569335003,79921923,3768358,-919401100,1124698662,1946237478,1022943748,-1017423603,113660243,-2145385138,-553298906,913580092,846465340,829697084,209002556,1965046912,1176547335,518766650,41779238,857174529,1300899529,1959332611,244491,20588099,-119404684,1532567612,89039555,89392886,-2147126015,537220110,-353648582,89992845,427089211,309669692,1200247033,-64427777,76154226,1492918760,-336065045,1966029834,1410236421,-1007140859,-2091690466,348478,508568949,1431786065,-1896467706,1660991710,-611573299,1560795915,525949535,-1994034088,-1996140746,-1962585826,-1912254666,-2096803554,276037692,141689914,1996571706,99350787,-336902586,526277624,-326412861,2123060823,172329732,-1962570928,1300955741,106269444,1594389899,-169547691,2123061085,-1996125946,1300824669,106268932,-1626835575,1166656650,1166628876,-1956684278,1354980837,1460032083,-1047606989,783875891,-855592430,109852207,-1992948184,-1207556546,45224494,-1942605875,906375174,103693961]},{"sector":4,"data":[-1307431240,909102340,104859276,1044285750,305051654,801965746,604408886,1049179654,-610662878,905969707,102762124,507414838,109852166,-1992948164,-1710867906,11260,872844342,1049179654,783812146,-855068142,109852207,-1992948152,906380862,106759879,-969537011,604415494,1644611382,905969670,107218631,614072330,905969707,105645708,1245612342,733387270,-1942618112,906383366,105791113,-402646552,1139277872,1390956800,1493725696,1532626783,-2096829608,-872870716,-1205971376,567108352,1914636062,914961930,-1942616490,1577474054,12108632,47940,567136819,-2147359104,28836302,-1021194940,-1153171272,-768409599,-830463539,1140963329,-1262280243,1025625392,57999365,1025043448,91422722,-335544389,178947,-1191181896,11665408,-1007026250,1431766608,2176666,-2146536960,1962475518,-350288380,-1960901118,123690487,1398197080,-919341517,1979711104,-1127991799,-1014233526,-956946197,906589186,103726276,451658636,1912607549,2571534,-1003091593,-1945748804,906488771,102677700,-75250804,-2145946113,58064894,906882041,-1207541085,29229055,-118082816,-75297557,-402426880,-964493228,108197892,41273611,-2137220373,695534078,105993554,12079191,1009765637,158685439,45668491,-349188859,91486465,-346486945,113541894,1560284392,-821957798,-268274,1472945755,-18096,-1359822798,1481232887,-75250849,908162305,105266819,1025078527,225837055,1654732368]},{"sector":5,"data":[520041990,-346552762,520041989,451610182,-25114317,637957375,-352105078,892872201,-1977219979,-947715251,729020676,1959332856,-98279,992347508,637790981,41223483,1950943723,80184069,1928979435,-98294,637564408,1912765699,653079046,910626186,106694342,1397801728,106386769,921275218,106569353,1597409334,557226502,-922025984,-318037132,803734901,-402396416,259129794,17819738,-771072249,870843252,-2096829690,-336001340,1516177156,1560834809,-998024359,-2096829694,-872871740,911364944,106569355,1979710339,2942981,2011694059,-1274055936,47961,-466476595,-116996989,-75296533,990606591,-402164543,-998047568,57866502,-1017619622,-2095118818,460653049,-1977220428,522308885,-1310145910,520494592,-1977219213,567083349,-1274024968,1959332610,361375241,1229398477,536408949,105928643,519736147,-1327920377,-1359807462,-651492491,1540066123,-1017161721,-921976781,102649716,-1958693857,33129431,567093365,-1977200609,5957637,520494680,-1258813837,567099968,1031808668,-1962773222,-821957695,-268274,1364531947,-1946179864,567106025,199950963,125093947,1979246651,1572965122,666419999,310016,-2134703691,292880382,1971373814,-1928913396,-1190765250,-1572862,1460061182,1446954038,1962871558,1032005143,276101120,1912945190,1161438727,-117344511,-370456761,918751071,106956431,-1835803853,1681323830,-147418362,-2096733130,91621882,-348667264,818053123]},{"sector":6,"data":[-1073004206,-620034955,-108839820,-2146536189,1965820540,922695174,-348060051,117015332,2088767093,108342282,1832320822,300630278,1963587971,175931404,906392876,107820799,-768371903,-768367893,-13189069,-1022992330,-921972173,632562036,942014640,638219557,1946248504,1975794180,92939790,1946110952,1111967489,1457747273,-317994361,911029620,107101827,-1976797952,805570116,21314086,535495285,74788924,74764811,-404016125,1597931574,141950726,1229537858,65752911,1476394938,-1509077,1935237117,9365763,-2134209711,1946158716,1959332621,1195985158,1577184071,-922021653,-346160267,-425207,-919403915,1718943499,1359370069,-2093561549,418366,1156987765,141889287,-402490172,686489959,218580214,1156975732,108269063,201802998,2093222005,24504322,1156976363,91556615,-352187672,47835139,-352298776,2287619,123275122,-346137249,180650756,1048786681,1962935906,-385650171,-952697086,418310,-768359680,107127094,1678165814,-402650618,911801977,107382664,1090224963,-655883403,1976172032,168671469,1720158518,-398245114,868417735,108822747,907244800,107382727,1128475936,1720174134,-398254074,861733035,919745499,106696328,973685898,706705089,-152007999,1954547524,172263957,1720158262,-75283706,-402426560,-822214529,2088823669,225705992,1929923640,139209224,1284166026,1959332616,121959973,-166955761,1947207492,92939782,1476520775,1720158262]},{"sector":7,"data":[-75283706,-402426560,-906100669,1157028725,427130887,359986698,906642570,107382664,1090224963,619185013,1976499712,121960171,-167217905,1947207492,168684290,906589394,106956431,-143275266,1426064104,1460031939,-880081122,1049484083,1541932646,1594192636,82532615,-116996989,1156996547,309669895,1342540326,-45946815,-1977219469,-128974523,-1977217557,1958742533,-348043516,1442393077,-768385597,-952713165,268854278,-153406720,1965033284,92939814,218580214,-2136469899,608371572,113718911,656996,235357430,-952760459,168190982,-161944832,1963984708,93005352,218580214,-990506891,1124365440,914351232,107218631,1156972554,125111815,1678165814,-352318970,93005354,39160614,218580214,-956952459,1124365440,914351744,107218631,1156972554,125111815,1678165814,-402650618,-619971399,-768408204,1431449010,-952738365,168190982,8185856,-1070345677,1715372854,544538630,-402618392,-13238122,1090941238,1149943859,8972293,1899429686,1149911302,8185860,1715372854,544538886,-402628632,-13238162,1090941238,1149943859,6350852,1899429686,1149911302,5564421,1715372854,510984710,-402307958,-13238202,1090941238,-402373494,-13238214,1090941238,-402645016,-1017839570,11548852,107353741,225649101,1711720246,905969670,108070598,1150010157,121959938,1023964432,58064995,-1023384648,1711705910,243807750,-286783908,976636411,1963351054,3192837,910246224]},{"sector":8,"data":[107362047,-952738365,168190982,8382464,17253622,-2143937164,423742,1149900149,2081176578,2115451908,1348579334,-1341854911,859918448,-153996352,1948256068,88377868,905997544,107951871,121960001,-167348960,1947207492,71600652,905991400,108214015,54823489,905988328,108214015,38046273,17253622,-2143939468,423742,222039157,204210812,41222204,1390939312,-1262266885,-1929334728,-855218666,907244321,108463815,-969539583,973501190,1862714934,918760966,107349647,1544456246,-81532922,238696009,91555420,1342189752,-13221567,-1022990794,-2145496495,142000378,254067338,48958644,520544906,567138187,184188959,-401443592,192150216,-494221174,-511041075,-1274876936,1510240768,-2096829607,-1007090492,218105343,3407873,4718594,5898456,7667929,9437484,11862317,16908590,18415919,20054320,22020401,23855410,25624883,27394356,1668172055,1701999215,1142977635,1981829967,1769173605,168652399,1936607509,1768318581,1852139875,1701650548,2037542765,1310591501,1914729583,1952805733,1735289204,1937339168,544040308,1701603686,221324576,1867390474,1701978228,1953785203,543649385,1684302184,1713401445,543517801,168636709,1936278568,2036427888,1919885427,1634231072,1936025454,1818846752,1952522341,1651077748,1936028789,218762542,1413566474,1112101460,1378573088,757103648,1528847698,2082488619,1564552480,1395350304,757103648,1528847699]},{"sector":9,"data":[2082490411,1565011232,1683708704,1702259058,1885035834,1567126625,1701603686,1701667182,794501213,168648019,538577421,538979104,1952797472,1851859059,1953784096,1969383794,221144436,538975242,538976301,1634036803,1629516658,1952522350,1651077748,778400885,539036173,538989088,1634030112,1852779876,1713404268,543517801,1920234593,1953849961,168636005,1092624415,1092624416,1768448882,1713399158,543517801,1920234593,1953849961,168636005,1394614302,1394614304,1702130553,1768300653,1629513068,1769108596,1702131042,503975214,541597728,1766334496,1852138596,1818846752,1952522341,1651077748,778400885,541133325,542322464,1869762592,1936942435,1713402725,1936026729,544106784,543976545,1701996900,1919906915,544433513,1948282473,1931502952,1768121712,1684367718,1952542752,168636008,1049429774,-1048499956,-3472866,134676485,151002112,167779584,184558592,201337088,234901760,251679232,67129600,824516640,540091658,622862368,134876466,168636709,168636965,741418283,1685013280,1634738277,1830839655,1634562921,224945012,1701986570,1970239776,1920299808,1495801957,1059671599,221324548,168624650,1986939161,1684630625,1818846752,2037653605,1981834608,1702194273,118360589,724516493,9290113,328139,83885825,2017792256,1684956532,1159750757,1919906418,238101792,-1052865273,549552939,328395,83885825,1632636416,543519602,1869771333,824516722,1049429774]},{"sector":10,"data":[-1048368155,-1957311715,-1957275668,1166738558,93016074,-1962779253,1435173965,141921030,-744860321,1560281119,108956503,1569260937,72190210,-1996073591,-1969289099,205883844,172329304,-443850914,-1957313699,-1957275668,1166738558,93016074,-1962779253,1435173965,141921030,412767583,1560281121,108956503,1569260937,72190210,-1996073591,-1969289099,205883844,172329304,-443850914,-1957313699,-1957275668,1166738558,93016074,-1962779253,1435173965,141921030,1721390431,1560281122,108956503,1569260937,72190210,-1996073591,-1969289099,205883844,172329304,-443850914,817152861,37495245,550306419,-1962715457,721420854,16679415,-1107070448,-1896214528,-1899724329,276036365,-135782634,1354773249,-1207666968,567102719,922674307,119940745,572950838,-1312388345,1222693636,119579446,915011331,-1014235134,-604512725,567102132,-1759605706,-66644473,-1190606145,-819262064,-1426866125,1005068054,-400615936,31982482,-1232126,-16271306,-16271818,-402148298,-397356065,1454899426,-1193767421,-952762365,1208427526,2078822446,66971649,1342242744,119805695,567095476,-1207461469,567096576,126164617,126289548,12066574,761707045,521544141,132517515,109981411,-1960441961,-989844426,-1945638906,920335322,132390655,521536883,906055145,132908741,62642828,520041984,521537508,127338126,739150630,-1909005568,654259137,1946172800,833836,-217614146,-1190431578,-1070366721,427142898]},{"sector":11,"data":[503768555,-141877497,-1408786241,-22244968,1208054976,385344170,310047,127969152,1140897983,175251917,1954595574,-1601208315,2034974727,133218023,-402132801,-255983454,133218055,-1023374616,-1091794091,-893450038,8251400,-1089998658,1961363440,1426320128,-255923061,133218055,-1107269912,-255916048,7137287,184596968,-2096401216,1962935422,71747333,263782655,375552,127961078,-1274776575,1126288702,132707042,71731968,567102644,132517515,45811683,-467730688,382017031,12060549,522308901,130170496,504198144,-989346912,-1274559466,522308901,1945582531,-1957736694,-597235,-1007490095,242480955,-1962610813,38079237,503313012,12840683,-1192457387,-397410052,1048773243,1946159048,-938017020,16758791,40495184,-1017256565,-385875272,-1957036453,1926769628,-903988470,-1962642937,870449123,-28972608,-1175047338,-466485182,-533549828,-192873502,-401771435,28901294,753422336,112642,110084958,45746124,-1726597120,-1909885945,638031622,2885262,129762956,-1181106125,-13402112,1974382322,-1991817221,-1190675906,-1359806465,-779365897,-1107295809,512622721,1017907095,1023112224,1022850057,175076365,1198224576,540847182,154986612,222094452,-1073062796,574380148,1547445364,-347995276,1103705060,1952201900,1948400890,-338623740,-775844909,-1462692887,-339053311,1017925121,170619917,1009218752,1018852386,1107522652,-919343893,1547480129,574421620,-788331404]},{"sector":12,"data":[-1047798805,-787224111,-764083800,521574379,129253001,-783821053,-2133392409,-500433182,-1230781301,64523015,906434299,1128480649,129644229,-1073042772,-2118190475,512636416,65734551,-1398095821,-76275652,-143390404,58002748,167804905,-352094784,-1992912775,1313030975,1948269740,1946762459,1947024599,1958742626,1948400734,1952201767,-454317565,-1404974797,-93037508,108274236,-1426891600,1555091947,-1426855471,581961331,1321593770,1947024556,1958742574,1948400682,1952201911,-320099837,-1404974797,-93037508,108274236,-1426891600,1555093995,-1426855471,581998195,869133226,521579200,1991,130819839,1441565525,127344270,-1047803597,-108271221,741772105,1962281728,650546704,16000,-234458112,1974355374,1083655674,-41157084,-989600303,-1084809450,-2048393207,-812949760,-133956213,129511049,-561117410,-481692109,993820947,-1996131261,1162150014,-1073042772,-303891851,369118857,-443851489,-1957313699,509040364,72780551,-1391986498,276087355,208967232,-1178586217,-1359806465,-336857205,-1956749418,46292453,-326413056,74907479,201313256,-1844153152,-1070335349,-218103879,1238497198,-1275067717,1596050752,-1034033781,-796196862,119932419,104412530,628295456,1342181125,61987025,-645076781,127344267,-1056715989,-661929074,567102132,605057624,547571952,780899591,369166118,-1950152922,-74323513,-1070394510,-1017256565,-397346701,-1957167080,1942183397,976903,-1711276104]},{"sector":13,"data":[-1017256565,32039986,-1667054848,1977879047,-1723957213,225575687,225649212,91365436,132842928,1980972176,-1156337662,-1730738226,-1022914141,-135543670,-2081649835,1586169068,-1642185980,-1207602681,720046336,542455,-2092403584,1946159742,-1949748454,1107409105,1265770957,34227959,51279104,1444087366,-1205307128,-335997440,-27883210,-1946401143,1107474641,1174610381,139858694,1317735801,-61436930,-851312456,-1948718303,1317733974,172395016,567100084,-1484782222,-369293408,-1957298363,-1948808212,-1898410786,75402176,-4603853,-1917914369,2123104117,-18170,-772296974,-24643285,-150714741,1946157510,-783703038,329642985,-1952123959,1576700915,-1957363517,-1948808212,108432350,-661848437,-1070350194,-218103879,-1949173842,-947190658,41157032,-372160092,-921459213,-208952077,-1017251189,-1947432107,-1931572265,-1950314792,2123039862,-1178586362,-1359806465,-114568713,91530995,-14827493,-1946973185,12803578,-1947432107,-1898410793,75402176,-4603853,-139529473,-1953412655,12803578,1458342741,183272279,-839498042,-2012985717,624752454,641469044,1187382900,216779768,-872790330,1157187270,1157121734,-1913366900,1183446598,108956658,1569392011,72190722,-1962519157,2106263669,1593791754,1476156914,-1995932021,39684357,-1996206711,1971914325,172330760,-164428686,736626923,114430,1971914123,180650764,-443851169,-1957313699,149717996,74877782,1342177720,1347469355,-29824938]},{"sector":14,"data":[-1995914109,1451882566,-49670,-92074891,-1207470593,-342228993,45649964,-1070903296,-396996528,-997982702,-62486264,738088585,1996443840,-126418950,-33757098,-1962359677,1452014662,-443851010,-1957313699,-1957210388,92996734,-1962779253,1435173965,141921030,-854950517,2123061025,-1996125946,1300824669,106268932,-1895271031,74582597,149681715,-1090682392,92995585,1594652041,1575324510,-1957363517,-1957210388,92996734,-1962779253,1435173965,141921030,-1962248705,93194366,1594252686,509026765,-544286836,-1945600373,105221893,-1996063093,39684357,-1996206711,1971914325,172330760,-164428686,602409195,114429,1971914123,-1956749556,12803557,-1947432107,1603011678,-1945662458,1468793423,1575324420,195,0,0,757926413,757935405,757935405,1680898140,1630566492,1397703712,1414807840,541215058,1668183398,1852795252,813194272,813194340,757935457,757935405,757935405,757935405,757935405,813194285,813194340,436866401,0,0,1377850189,1412263541,543518057,1919052108,544830049,1866670125,1769109872,544499815,539583272,943208753,1766662188,1936683619,544499311,1886547779,17,0,0,0,0,0,0,0,0,0,0,2097152,2097184,1229324320,1230193996,2013283674,110848,1163149636,11665414,45088892,1296651264,-1308621243,-1342145536,538968067]},{"sector":15,"data":[2105376,548536328,11534346,-1308622336,-1342175200,131072,598194,1093337264,1093468160,1378549760,1378680832,1395326976,1395458048,1210777600,1210908672,196608,572524544,36052994,16919041,839123502,37094402,33700354,3998270,1835186,35652016,1108109824,-1308620798,-1342171648,139265,37882994,11665416,28311574,2080375328,134365709,369144320,536981504,147849218,524866,1441970,16908720,1091102208,-1308620798,-1342171648,139265,37882094,11665416,28311574,-167771616,134365704,369144320,536981504,150863874,524866,1441970,35652016,1107887616,-1308620798,-1342171648,139265,37817186,11665416,548405271,190971906,459329,1441970,48529840,1091258880,-1308620798,-1342171648,131073,37816994,190000897,318812672,110592,169082880,788595265,-1308619969,-1342172160,-1744668150,-738019838,268628482,1275276803,-2013042173,65143299,1024,0,587472384,536916480,33665024,63177638,11665414,45088784,67109858,0,1644167168,1023475972,11665425,-5242851,33554431,133632,18432,16777216,592257,15360,16777216,1845493776,12288,16777216,592561,9216,16777216,592164,6144,16777216,592261,3072,16777216,1879640336,3072,33554432,1912602640,3072,0,1946157072,541097984,33818640,1092624385,1213407264]},{"sector":16,"data":[774504530,774504490,6029354,774504494,774766634,1546530304,707668480,707668480,704666624,10431022,10027186,50331568,671134208,16756736,-16777216,0,1014783323,993864510,-1308617950,-1342173440,-1,11665412,-5242872,83886079,134263296,150974464,134262784,-20480,65535,0,658688,0,1310730,4269234,542330288,542330692,1936876886,544108393,808463925,692267040,2037411651,1751607666,959520884,825045304,540096825,1919117645,1718580079,1866670196,1277194354,1852138345,543450483,1702125901,1818323314,1344285984,1701867378,544830578,1293969007,1869767529,1952870259,1819033888,1734963744,544437352,1702061426,1684371058,32,777977856,55967744,11665539,649068620,1598241543,1162627398,1179535711,-1308619185,-1342170624,-2122252268,117506433,352367104,129937408,88277846,184594944,244363264,369098752,219677186,202116105,370542599,302846719,1638146,917682,1312570544,1044861773,1375731774,808464438,539822605,1667331187,1986994283,1818653285,168654703,1375732480,858796086,539822605,1702129257,544367975,1769367908,1646290276,221257849,589834,808466002,755633465,1953459744,1869505824,543713141,1667330163,1868963941,1852121202,1869769078,1852140910,658804,168624380,1912667904,1949134453,543518057,1869771365,33562738,808866304,168636976,1818632237,1769234799,1881171822]},{"sector":17,"data":[1953393007,1953459744,1634692128,224683364,65546,808466002,755633457,1819635232,1869619308,1702129257,1935745138,1852270963,1953391981,-704640499,184529408,-20480,16,24379392,70191360,1112671203,-1064507253,234885125,303903,787971,244039822,-108331002,-34108593,-1202674445,-883949516,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704,78708751,-789068149,-628299565,74698795,-768878452,-268181293,-947135858,-388771593,-802438516,-1064565645,-522989013,-1030817789,1322289836,1187548077,-31145334,91598908,-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094,-1031072797,-1064385789,-2080863315,292880383,-501415642,16417267,-2129234704,-351272766,1086360796,-276578162,486614544,-339702200,-1950118942,-1962932162,50334262,33948144,1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602,482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,1143920,16777233,360251678,540942373,545792121,578560287,745090085,1015557293,761736413,15644,0,0,0,0,0,0,0,-1996125946,1300824669,106268932,-1626835575,1166656650,1166628876,-1956684278,1354980837,1460032083,-1047606989,783875891,-855592430,109852207,-1992948184,-1207556546,45224494,-1942605875,906375174,103693961]}],[{"sector":1,"data":[]},{"sector":2,"data":[16538189,71,24903712,151584767,128,143917072,30,1]},{"sector":3,"data":[0,0,0,0,871140181,1486678208,-16757528,1996424822,12838916,-402340733,748892041,108461838,-402360577,-998044935,322496516,-13431064,1996424822,13887492,-16464765,-1293416842,46433037,-401488664,2112360501,307292178,722704872,868441536,1481173184,1342861496,1343361208,-2091736344,116786372,1946225276,175159315,1357402192,79987539,11929286,824502276,255067846,1057408523,113642255,-973009094,34555142,255133382,1074185728,113639439,-973073820,1205510,318506694,-49887744,113704978,4858,238814918,1023854080,113639438,-973074882,933638,302909127,1438847520,-1070338933,1448592872,1586174443,-2143843578,259338044,1057062016,2088765813,57999362,-13919256,1182991438,2122514950,-629866492,1438866782,-2068255605,1469114368,1187403351,686293500,2089207299,1187447039,-352321026,-27358417,1988879313,-1926168826,1358920838,-2091379736,1183515844,-28952316,-793243788,-2037559296,-397344900,-998025220,-28901628,956581515,-914424250,1342231224,-8616307,1474488400,-1929067389,-1543537530,904466968,369542913,-956301294,470948358,175159316,303085648,1029761104,-955988861,65094,1586173163,406227966,-2012968430,-16088953,117440070,2023821848,403061002,-1948028398,-2017001890,-1090516352,1891504656,-1190715894,-1510866937,175128195,-2095483904,-16093122,922685044,922684022,-504886672,79987456,16533190,16547456]},{"sector":4,"data":[-1175911563,237942784,175507001,-1092091019,238598158,175507001,1048596853,1946157203,1983315726,1882652426,11200522,-1610300285,-467005889,238985296,238919760,238854224,29550672,-804731773,-1609679314,-467005892,-523039823,238884490,95548970,-1039932717,238947978,-1056707286,-1207913821,104403702,1249184374,9715328,-15830016,-16091594,-401969098,-998047664,318611460,-1605311446,-11529476,-401409482,-998047547,318545926,95544362,378265811,162599674,-1039932717,318574218,-1056707286,-1552416723,2122318004,57934076,-81175,1122502262,46433034,-443850914,-1957313699,-390056980,-2135403050,255238922,255336076,255526598,1040631312,113647631,1342181178,-2091449880,1017250500,255697423,957233336,359990854,1342242744,-1202667477,-1202716671,-1202716670,-347078648,318158894,1963345465,16758804,1354771280,1342177720,1342177976,-352319560,178401,1354771280,1342177720,1342177976,-402360577,-998037788,-1241070070,-907541504,1438866729,-1070338933,-2125115928,137561214,2122385271,1929886724,505866,694413392,-2147302269,1997276798,108953606,-1207274751,-397410297,-998037171,142508034,-2147059937,1929447550,505866,691529808,-2147302269,1981679742,108953634,-2146274300,1946551934,108953612,-2147060727,1963656830,505866,688908368,-2147302269,1963067006,142508070,-1207273955,-397410297,-998037255,71759362,-2146405373,1981548670,505866,686024784,-972897149]},{"sector":5,"data":[16815110,-1957313699,-390056980,2122339494,175511300,1342179512,-2094480152,2122318532,175258630,1342179512,-2094484248,2122318532,175258632,1342179512,-2094488344,2122318532,175530762,1342179512,-2094492440,113640132,1560346771,-390057021,113726554,306582556,337512134,520537601,113639700,-969206752,1319174,306579142,1191626242,113705490,190648904,306841287,113642352,-955837876,1729252614,1325844242,-955089902,-1810738938,1392953106,-955078382,-1106094842,1460061970,-955067630,-367896314,1527170834,-956301294,744710,1594279682,-956301301,1745576198,1661388555,-973046773,746758,191891143,113705216,2930,192153287,113707880,8129398,192415430,1728497408,-956301294,1206534,1795606272,-955372014,2081582342,1862714880,-726137838,1891127296,2112376850,79987540,1342232504,1343386552,-2091618328,-625474364,1991790592,1642614802,79987540,310118087,113709056,4734,310380231,113709814,8131202,310642374,14530561,310753360,1412884560,-955988861,1217542,-1777940728,-956301294,940742662,-1710831858,-973046766,17996806,1342234808,1343397304,-2091643928,113706180,536941225,313198279,113704961,237900461,313460423,113639548,-1207889231,-1202716445,-397405518,-998026272,-1106852092,-954203886,34783238,-1039743232,-955372014,-1575828474,-972634607,-424148718,-944222208,-1243066350,79987539,315819719,113704960,4821,316081863,113708590]},{"sector":6,"data":[8131289,316344006,15316993,316454992,1401612368,-955988861,1239558,-335100160,-956301294,772992518,-267991282,-973046766,18018822,1342238136,1343419320,-2091687960,113640644,-972877406,1155846,295962310,-1526282752,113713425,239079847,296355527,113708615,239997357,296748743,113708629,240914867,297141959,113708643,241832377,297535175,113708657,242749887,297928391,113708671,243667397,298321607,113708685,244584907,298714823,113708699,245502417,299108039,113708713,246419927,299501255,113708727,247337437,299894471,113708741,248254947,300287687,113708755,249172457,300680903,113708769,250089967,301074119,113708783,251007477,301467335,113708797,251924987,301860551,113708811,252842497,302253767,113708825,253760007,1342238904,1343111352,-2091747352,-189266748,1203261440,1776832526,79987538,1342241208,1343114936,-2091754520,-4717372,1438142464,1307070478,79987538,1342243768,1343118520,-2091761688,146277572,1673023489,837308430,79987538,1342246584,1343122104,-2091768856,314049732,1907904513,367546382,79987538,1342248888,1343125688,-2091776024,498599108,2142785537,-102215666,79987537,1342251448,1343129272,-2091783192,649594052,-1917300735,-571977714,79987537,1342254264,1343132856,-2091790360,817366212,-1682419711,-1041739762,79987537,1342256568,1343136440,-2091797528,1001915588,-1447538687,-1511501810,79987537,1342259384]},{"sector":7,"data":[1343140024,-2091804696,1186464964,-1212657663,-1981263858,79987537,1342262712,1343143608,-2091811864,1371014340,-977776639,1843941390,79987537,1342265016,1343147192,-2091819032,1555563716,-742895615,1374179342,79987537,1342267832,1343150776,-2091826200,1740113092,-508014591,904417294,79987537,1342271160,1343154360,-2091833368,1941439684,-273133567,434655246,79987537,1342273976,1343157944,-2091840536,-2135423804,-38252543,-35106802,79987536,1342277048,1343161528,-2091847704,-1950874428,196628481,-504868849,79987536,1342280376,1343165112,-2091854872,-1749547836,431509505,-974630897,79987536,1342283192,1343168696,-2091862040,1438844100,-1900483445,1338042368,-96025002,1921435136,1187381503,2122514686,1400111108,290326214,1325844014,1320681489,-397389807,-998047257,290371588,1356392528,1023591555,208994307,290406016,-972720838,1134598,1342284984,1343311544,-2091901976,1320682692,-1545056239,46433047,125091851,33179334,-1207868695,-1924136830,1358919302,-2097062936,1183384772,58015992,-2097103639,1962997886,11790595,-8995200,-385649408,1187446953,-385875716,1988821144,1991934204,57999615,-956263191,16741510,-1960973568,-1165951882,1950089078,1988266525,1956547583,1317505279,1955004177,-62455809,-2130938229,16742074,1988876661,1991934204,58014719,-1946401025,-956336994,1134215,1343311544,18475088,-1207647101,-397405874,-998027254,212226,1048579189,1966739791]},{"sector":8,"data":[1342621189,-1330118639,1320701953,1307070481,79987535,1343311544,-2095655448,-1073020220,1187382388,2122318330,57999610,-2130747415,1946221182,8775939,1342186168,-2095040024,1048576708,1962934417,2799626,539551824,-1207778173,-397410261,-998039522,605218818,1962934589,2275387,537716816,-1207778173,-397410260,-998039550,-1224292862,-1128791808,1320701953,367546385,79987535,1343311544,-2095686168,-1073020220,1187388020,350945786,1342186168,-2095066648,280494788,786976768,46433058,16416384,2078868341,-443851009,-1957313699,309484,-1202853400,-397409846,-998027450,-62486270,1327556688,-1996307325,1178336838,-955810810,-442,1996426475,74907644,-2091997208,1183515844,1575324670,-326412861,-402649416,1187466666,-950009614,62534,-1996077429,1183578694,-62486268,1358055053,1358055053,-1957683224,1438866917,179891339,1300031488,2122536535,175964676,1342180536,-2094950168,1187447492,-352321032,-163119292,956581515,914224710,-772245877,108397542,1065360523,-1947830993,-405670274,-1962508797,792690717,76273524,-1946401143,-1962637051,-472779170,-1962516989,126483526,1191165931,71732216,-129615032,2122518398,159318776,1090012811,-336181623,106859431,-1979555957,-397371385,-998028908,106859266,-2013110389,106859271,-1996339317,1191181894,-27358210,1966751616,106859316,-2147328117,175980863,1342179000,-2094992152,1586168516,39815942,2119843712,440330,551544912]},{"sector":9,"data":[-1962752893,1602946654,-351827454,237805573,-392019964,75399954,-1207272189,-397410291,-998039363,106859266,-1979424885,-397371385,-998029028,106859266,-2012979317,106859271,-2147197045,175980863,1342179000,-2095017752,1586168516,73370374,2119843712,440330,544991312,-1962752893,1200293470,-28931836,-1946269953,1065418334,-1207274438,-397410291,-998039459,106859266,-1610326133,121115368,246942325,1189629952,46433056,739436704,-96040896,-397351894,-998038741,587458562,721047178,1959279597,440330,538962000,-1962752893,1602946654,738691588,-96040896,-397351894,-998038785,584574978,721047178,1959279597,440330,536078416,-16595837,-401724362,-998038817,-1761163774,1586167808,73370374,161613706,-1956684270,1438866917,-1766265717,1268574208,-230242474,1586193697,38243076,-506231,-806878601,46433100,-9795959,-1913239927,-1924074938,-397348282,-998027768,73304836,-1929218049,1358917766,-2092151832,-1098709820,2131099498,1887866118,-1204884481,-1924136868,1358917766,-2092519704,-2037840700,-1072955540,-2115435659,1790348032,-1913639937,1040150658,1920925702,-9664885,-263812800,-9533753,-1635057664,-472776850,12105727,-386894081,-998028250,1975520004,-263812286,-1945160029,-972081122,269433606,255461062,870862848,46433100,-1576059742,45616957,-1070903296,112720,178256,702544,474933328,-972372861,67155462,-14732312,-2080412026,218066622,-1956733828]},{"sector":10,"data":[1438866917,414772363,1252583424,15484614,-16490869,2058879607,-2115481589,79987531,15222471,-1960908032,-1082070946,1968966522,2076147729,175463435,1342180280,-2095144728,1191117508,192592104,1269885008,956482691,-747444154,1342929592,-2092195352,20775620,-2146077440,772504126,-810021259,2058899457,703090699,79987531,1342929592,-2092204568,37552836,-2146077440,973830974,-742912395,2058899457,-974630901,79987530,1342929592,-2092213784,-661978428,192528256,-1207012004,-1202716201,-397407366,-998028636,192591876,1021857872,79987708,192560768,-2141031076,1544256318,1555585909,2109231104,635981835,79987533,200165001,-1207274048,-397410293,-998040083,-297366782,-364476096,1342201016,-387287297,-998028032,-297367292,175489035,1342180280,-2095200024,1996423876,317235438,-1202658262,-1202716197,-397407366,-998028346,4175880,192591952,1169483856,184861827,-1206749760,-1202716630,-397407366,-998029918,1958742788,-330906108,2101248001,292903947,192691840,-1207274148,-397410293,-998040207,574521346,175374356,1342183864,-2095384088,1187447492,-1606152208,1076630248,-1913502072,-1924075450,-397348794,-998028368,1488900,238485328,-28930798,192591952,543811664,-2096577405,1317438,1048776820,1963136026,768018,488106064,1996424939,551479550,-167590781,1074934790,2058890100,255238923,255336076,255526598,973522448,-397410289,-998028790,255631874,-1206960734,-397410294]},{"sector":11,"data":[-998040355,305438722,272371748,1048583029,1949176375,-327253996,-1207012096,-1202716191,-397407366,-998029000,192591876,184596560,1231743056,-1207647101,-1202716580,-397407488,-998030373,-297367292,292864011,1024131117,58654722,-1947318529,130477662,6076416,192591952,1135994960,-1996176253,-1072959930,1187448693,-351568658,-297337085,-1192331521,-397405308,113658136,-1962868576,868441573,1210116288,1048645355,134217896,780210294,33554600,-2094934296,1317438,1048832117,1962939418,-1472298737,1980235776,-1794718201,183173376,1342177976,-2095311640,1438843588,1555623051,1205659648,-28915882,-206045184,805714706,-402426610,1891113916,805714706,-972720882,16813574,991086520,1963864070,406749302,175439892,1342186424,-2095329048,113640132,-973012847,538115590,318703302,443951,113657363,-969272575,1245702,83773127,238199040,-1929754999,283901022,-1963041141,-2021088186,1191121662,-96010242,653942468,1183319946,1975519908,37650659,242483219,318914176,-2146995664,957547070,113640822,-1207954690,104534643,91557424,9438918,309770241,238028347,113640821,-1207893873,104534706,2054491696,9569990,-28915967,849412096,873892622,-96040690,-335784311,-25785585,-2002499958,1191159362,-96010242,653942468,1183319946,1975519908,-25785372,10896070,1353074317,-2092425752,-1073020220,-392162187,1357130258,1342301880,1353074317,-2092368408,1183647428,-994553690]},{"sector":12,"data":[-51884013,79987704,940706208,1964229638,-1626946043,-1956773632,868441573,1184164032,232261318,232372316,317235280,1076749354,-1092071424,79987485,-390057021,565724790,-994553856,726670867,28856512,1911050240,180650786,-2097115997,1317438,-1070918539,45633616,922701824,1592262796,147096348,28842731,-994553856,-1202708973,-1202716640,-397410286,-998038980,9216778,337264259,-1207274496,-397410287,-998041019,1226754,399829072,-402471805,113647857,-1023344487,-1523661,112709,178256,542042192,-1207647101,-1202716668,-397410302,-998039488,1354771204,-2046240102,-1957313785,964844,-951725592,-1224674746,1358055053,1358055053,1342189496,-2092466200,2122319556,125108466,10880710,-953554176,-1224543674,1358055053,1358055053,1342189496,-2092475416,2122319556,125173746,10880710,-972690686,16819718,10894976,-952535806,-1224281530,1358055053,1358055053,1342189496,-2092487704,1183516356,191276020,133318343,-196687945,1183645696,1183666418,800608498,166219776,113541959,-1017256565,-1192457387,937951238,317235269,-956545400,-969212602,-1207894458,-1924104128,-397345722,-998040833,-96040700,508553296,184730755,-972589632,18096646,113640939,-16772062,-1545012618,46433051,-2012083808,1187445830,1187396349,1085800702,1183666304,-1058516740,79987482,1358579337,-2095181592,-1073020220,113641333,-352250856,403097093,1996423188,459598074,-1017256565,-1276592077]},{"sector":13,"data":[149088324,-2147466264,42302,854075764,554952707,-2146624536,39486,-51903628,7464973,10829440,-1192659712,-397410270,-998042042,-1206916350,-397410280,-998042054,-1241070078,-571997952,-1957313768,178412,-968597016,-973013434,42246,-2147456280,42046,1048587124,1946157220,54585347,10829440,-402295552,82510012,33441478,10763904,-972786432,-2147353018,1946222206,1575324629,-326412861,-402652488,1187398678,113639678,-402653019,1048576140,1946157220,50128906,10829440,-972786688,-2147353018,1946222206,1575324642,-326412861,-402636104,1187398626,113639614,-1207959388,-1605364860,-467004696,32880720,-1069118128,1174726736,-1207384957,-11534330,-1206776266,-1924131804,-397361082,-998040813,440304392,125108244,10749638,-2146309375,36414,1776814708,-1556185088,74776576,29247174,12484224,-443825804,-1957313699,178412,-968657432,-973013434,41990,302921471,337917695,-2095375384,1048773828,1962939418,-1543059957,1187381504,518717950,9322112,-401771520,1048576024,1946157219,-11671549,33441478,16678528,-443817356,-1070349475,-968677912,41734,-1023364376,-1192457387,333971460,71732035,-1996487163,-397345722,-998030486,-28931838,209043467,1342177976,-2095636248,65733316,-1946270069,868441573,1122298048,1342898616,-2092685848,-397409596,-997982278,327066370,-1207028061,-1588589824,1077941118,1135274064,-1962621821,-955023842,-1023410169]},{"sector":14,"data":[-1192457387,-1410859004,907971394,-1995994354,1996487750,1139075076,1342358659,-2080409112,1183384260,907971582,-1962440434,1183579742,-16283140,1183515766,1346388222,-1958518808,916717126,1575324430,-326412861,-402652488,2124497506,-28931821,126605451,-2096220509,1064566847,-397393856,-998029855,337289986,796246027,10684102,238461185,-1202700224,-397407488,-998030568,2117533444,1115088915,-1593654141,2124615222,-1908506605,57933824,-1962933016,1438866917,-2135364469,1107617792,705882272,-71806748,1183666177,870863096,113541956,1342183096,1356088973,1358841485,1358448269,-2095496472,1558907076,619202186,1963998224,-344031162,-1203735506,-397407488,-998030582,-2133292286,1544224703,1183649140,12079339,45633547,-1928598782,-1202656442,-1202713856,-1924136440,-397377466,-998030378,-2142860024,-19339184,-1929198461,-11479994,971570806,79987481,337264259,-1952615424,868441573,1097656512,337133184,-402295808,65733043,-2147320600,37438,-655883404,-1891729158,57999360,-1022304536,1139327027,-1677277631,113704960,130,1342186168,-2095909400,2095579844,-1643723263,1048576000,1946157202,-1623293942,57933824,-2131059992,1216830,434635636,278784011,-1022266648,-1192457387,-68681644,-1526282688,882901248,1007690770,-972720880,42246,605172896,1963473928,-1526282747,1048576000,1946157200,305438734,540811300,113640820,-2147483483,37694,1048583796,1946157204,11837705]},{"sector":15,"data":[304612921,-1298067851,705050880,-972721390,42246,9715328,-1592888320,104399028,91427368,10815174,34453504,184727632,1100802128,184861827,-1200523840,-1202716145,-397405641,-998030966,1958742788,35305562,305641552,1098442832,184861827,-1203211072,-1202716123,-397405641,-998031002,1958742788,36485174,305641552,1096083536,184861827,-1205570368,-1202716106,-397405641,-998031038,1958742788,37926930,305641552,1093724240,184861827,-972720704,42246,9584256,-1202818048,-1924134144,-397366202,-998031136,-1404662524,1093986384,1023591555,74776579,11421382,1343371192,1353467533,1342327480,1353467533,-2092823064,1183647940,-994553684,-605532141,79987520,91602955,10815174,1575324416,-326412861,-402649416,1048592294,1962934415,1751131,291301456,-1207778173,-397410284,-998043310,-230242558,161498127,-2009060334,1183708230,1183666418,166220018,79987522,337133184,-389843968,-1073020319,767049588,535318528,46433041,1024791528,410320897,1342186168,-2096034328,-1628765500,10239616,-1197575168,-1494548452,1342186168,-2096040472,113640132,-402390858,2112426904,-1660500225,1048576256,1946157199,-1673625590,57933824,-1207913496,-397410282,-998043446,1554434,281077840,721601667,552095936,46433030,-1971994613,184809960,-1954318912,1438866917,280554635,1054402560,705825184,1354256612,1183666178,132665584,113541953,1357923981,-2096694808,-1073020220,1048584052]},{"sector":16,"data":[1962934415,1423370,275572816,-972897149,16817414,1342177720,-351942936,302620699,-1202658262,-1924136353,-397348794,-998031162,-263811834,1108142160,-1207778173,-397410282,-998043594,58517506,175423499,1342184888,-2095936280,-443874620,-1957313699,4503788,-2143399448,1316926,161483636,1357130258,-352163144,302620681,-1202658262,-1924136325,-397352890,-998031250,-532247290,107014224,184730755,-1207274304,-397410275,-998043071,406749186,192151572,705825184,-1816637212,-1609962750,-467004919,44152912,-532247216,1076947024,-1207516029,-1924136954,-1924088762,-1924071866,-397352890,-998042305,440304392,175374356,1342182328,-2095975192,1996423876,364570878,-1929198461,-1605315770,-467004919,45463632,-532247216,1072228432,-1207384957,-1924136928,1343676486,-1202667477,-397410303,-998041184,9085706,337264259,-1207274496,-397410285,-998043223,636930,726684313,922702016,-2098724726,147096339,503350456,112720,-1976107184,329181184,-1995914109,251591750,-1967652732,1347590400,-11485141,-402617802,-998042795,-96039672,28856342,922701824,1911029898,147096339,-2130950519,1962932862,1292298,289663056,-16595837,-402617802,113644470,-1962934120,1438866917,616098955,1023207424,9387648,-2146667520,39998,-1070922380,-956245015,1317382,14084096,337264259,-1595182080,-467004919,989872173,1963863046,-339727612,112643,-319297456,-956119933,-15459834,2275583]},{"sector":17,"data":[242542672,-1610431357,-467004919,45856848,-599356080,1054664784,-2147040125,37182,1048581492,1946161918,318683150,-599356080,1026222160,-2147171197,46910,-1078459020,-1207702782,-1924136246,-397353914,-998032112,-1593391612,-1070923520,-599356080,48085072,290371664,1354771280,-2092972568,446892740,1958742804,212232,-1410853515,-1593391603,582483968,-269987840,46433037,-1191233559,-397410289,-998044190,1947650,232319056,-1593654141,-443870182,-1957313699,178412,725352936,2145931456,46433046,337249991,113639424,-402587487,113644568,-1593835359,1183388698,112894,375187536,-1543616885,-443870182,-1070349475,-1204041240,-1202716580,-397407488,-998033414,1958742788,184596548,1022945360,1023591555,896663555,1342898360,-2093008664,446890692,1975520020,33998362,62413835,-392146933,769927698,-397410240,-998042943,-1207244028,-397410293,-998043743,-1777940990,1048576256,1946157198,-126097402,-1007069976,-1192457387,1474822164,8691771,1346429994,-2097142040,-2135424316,161501203,1357130258,1342366904,1357661837,-2093124120,1183647940,149442796,1575324436,-326412861,535347251,75399995,-16220918,-239598474,-2095781118,2103706750,74907400,-352127304,74907398,1342372536,1343455416,-2093140504,-1017313596,-1192457387,-404226022,-1891729350,393478144,10239616,-401574912,-1073020711,-857144459,1947648,-1610561303,-467009404,-1729605568,46433279,337133184,-1206946816]}],[{"sector":1,"data":[-1605364864,-467004919,50182224,-2135421461,161501203,1357130258,1342376888,1357268621,-2093166104,45615300,1183666176,-1202710810,-1202716640,-397410286,-998041976,8954634,337264259,-962693888,16816902,337133184,-1206946816,-1605364864,-467004919,52475984,-2135421461,161501203,1357130258,1342386104,1357268621,-2093187608,45615300,1183666176,-1202710810,-1202716640,-397410286,-998042060,9085706,337264259,-385649664,113704775,721485976,11314112,-1560237405,-1365049168,-1950340352,1438866917,1421405323,972351488,704677024,-397393692,-997982525,406749186,259260436,1343455416,705825184,1169707236,-1207047421,-1605364864,-467004919,55818320,-1404662448,1006430288,-1928805245,-397366202,-998043537,16655618,-1404662448,277276752,-1207647101,-1924136942,1343663174,-1202667477,-397410303,-998042212,8954634,337264259,-971279104,16816902,337133184,-1206553600,-1605364864,-467004919,57194576,498602987,9038080,1343455416,705825184,2008568036,1183666179,-1947709268,147096379,1353467533,-2096103704,-31128892,1183666176,367546540,79987472,1342182072,380389005,1354771280,1342177720,-2095764504,-1969026364,440304384,-1435172844,9963206,1354771201,178256,-2009661616,252962816,-1559706493,378077354,-1070923604,45633616,922701824,-85458806,147096334,-1996443997,721465366,1575324608,-326412861,-402635592,1048590538,1946157199,-1673625588,91488256,-269893589,-700019456]},{"sector":2,"data":[-2130950519,1962935422,302620683,-1202658262,166396813,705825184,-1783082780,1183666179,-806858564,113541946,1342179000,-1912834305,-1924071866,-397362106,-998043681,440304392,-1267400684,33179334,294528,1183649653,161501421,1357130258,-352082760,-314143475,302620752,-1202658262,-1924136021,-397362106,-998032766,-1623293944,376700928,1343472824,1354516109,-2093397528,-1073019708,1187382389,2122318074,1165296122,10618566,-1136227071,270854224,-2096970621,34871870,446760309,-2093356268,1317438,-1070915980,-1136226992,248703056,-1929067389,-397362106,-998043654,440304386,-696975340,10618566,-59310336,-385976577,-998043768,-11409148,-1017256565,-1192457387,-1142423512,1488951,-666464944,-28930736,74907472,-2096165144,446761156,-62486252,158711819,-385976577,-998043760,-58817790,721712128,-1207702592,-443875327,-1957313699,1620204,-952665624,65094,16533190,10094278,-1861827072,113639442,-402584620,934805868,-392146926,1357130258,1342421432,1357399693,-2093381144,548931780,1183666176,726669032,28856512,1105743872,180650771,-2097117533,1317438,1191121524,-25263106,-401246971,1187381276,216728060,10094278,-62470655,125167617,16547456,-443827084,-1957313699,964844,-1204357656,-397410270,-998045518,1816578,145287248,-972897149,33601030,9584256,-954305536,2028102,-1996452703,1187509318,-1929371146,-1924074938,-397348282,-998035101,1575324420]},{"sector":3,"data":[-326412861,-402651976,1183528618,-28931836,-1996077429,1452014662,1575324670,-326412861,-402646344,-1465829746,-62486272,16402118,1621344299,308192018,-1559506269,1048579024,1946157210,1354771321,308426495,-2080394520,1347552452,-231681,-402618826,-998044516,-28931832,108380171,33179334,1996425707,22210814,-1962752893,1178205254,-972786690,-2147354042,1946221182,-2043215940,214755328,-972897149,39430,1343371192,705882272,-1078439708,1183666179,1206407398,147096376,1357268621,-2097092376,117375684,-443875198,-1957313699,11319532,-952768024,16733318,184596480,925165648,-1962752893,-4226856,225729546,1343371192,1342898360,-352074312,305641483,184596560,63682640,-1404662448,938534992,-972503933,-972182458,-1928680122,1343663174,1353467533,-2093555224,-1202715964,-397410303,-998044678,-1841397752,1802764288,704677024,-397393692,-997983661,-1371108094,327202896,64010320,1451658576,-1545056001,147096375,-11106675,-2037559274,-397344938,-998033766,922701826,-1276641140,147096331,-11237751,-11106675,914417744,990037123,1979667590,440304391,259260436,1342185656,-2096699928,113640132,-1962934126,1438866917,45673611,890038272,-402360577,-998044733,-28931838,-536975743,-25755904,-402360577,-443872300,-1957313699,309484,724887016,922702016,686297698,79987710,1996443730,-2009661692,188278784,-1995914109,1183448646,71732220,1979598393,-62485745,100782635]},{"sector":4,"data":[370217566,1709904480,-11485141,1894253686,79987456,33310345,-768868794,308151809,308286993,198182401,198317585,11142657,11277841,-402621976,1996485426,1647771646,-37885934,1376044163,71732048,1358841387,8926975,-2096444952,1183385796,-28966404,-955097437,1204230,1612090112,-804912878,-770305781,-1442447093,-1407840000,1575324416,-326412861,-402651976,1441281066,-28931828,-16353537,-401448394,-997982873,-11513340,922746486,2011693192,-62486262,-1017256565,-1192457387,-68681726,-28916173,-1643723009,1587609856,1611008786,-972458990,17993990,8521471,8535683,-16092160,-402619850,-998047295,35710978,337133184,-1205439232,1385758858,1354771280,9058047,-2096509720,1183647940,-1202710786,-11534335,-402617802,-998045170,-1740734456,259260416,9058047,-2096481816,113640132,-2147483496,39742,922684020,602407048,46433034,10159814,-1858174976,74711058,198444798,-2147332376,40766,922685300,-1572724,46433033,10028742,406749184,343212052,1342185144,-2096822808,532153028,1659392000,46433031,8652542,-1017256565,-1192457387,602406922,-96025037,9091072,726684313,922702016,652738698,147096329,385500813,112720,-1976107184,157870080,-1207384957,1385758925,1354771280,9058047,-2096561944,1183385796,-27883012,385238669,309328,-1976107184,152496128,-2096577405,1979709054,-125926650,-1961986817,1452013126,4326904,-352267645]},{"sector":5,"data":[-25755714,737965823,922702016,-1159200630,147096328,503361208,309328,-1976107184,150792192,721994883,-1202696000,-11534334,-402617802,-443873131,-1957313699,178412,-969772568,-1191182778,1385758858,1354771280,9058047,-2096597784,1183647940,-1202710786,-11534335,-402617802,-998045514,290103560,290199179,-2097135611,1347551442,-11485141,-402617802,-998045627,8566792,45633566,922701824,-2014838646,147096328,-1962907160,1438866917,-1070338933,-1590556184,378212682,1074073932,13796096,-1070903214,-1976107184,134735872,-1928805245,1343620166,1342177976,9058047,-2096608792,1048578244,1962934430,11450387,79187998,922701824,803733642,147096328,1347469355,1342177976,9058047,-2096641816,-1017313084,-1192457387,-1545076734,-1858174927,108331026,66995910,1187382507,1048576766,1962939416,-1640071157,74711040,33441478,-1961751903,85068822,-763166707,726684160,922702016,2129133706,147096327,385762957,112720,-1976107184,130082816,-1207384957,1385758730,112720,-1976107184,123201536,-1207384957,1344148062,1342178488,9058047,-2096653848,-1070921532,45633616,922701824,854065290,1575324423,-326412861,-402646344,-2069876466,1088694784,-170006448,-2147302269,1316926,-2135411340,161501203,1357130258,1342429624,1357268621,-2093799960,565708996,1183666176,-1175957274,79987463,1343455416,705825184,-390573852,-1204557053,-1605364864,-467004919,66500688,-431583920]},{"sector":6,"data":[854648912,-1207384957,-1924136927,-397351354,-998045820,327202820,302620752,-1202658262,-1924135924,-397351354,-998034742,2209800,-431583920,123660368,-2147171197,1316926,266863476,1575324661,-326412861,-402616648,-967430046,-1946193274,1342448056,-9206131,825944144,-1610300285,-1057095548,-8681848,16664263,-25785600,-8617274,-28901632,-2130805119,-957448704,-1207894970,-1924136821,385839750,23521360,-402209661,-1956773883,1438866917,1220078731,805890048,-2109832362,175374336,8533759,-2080511768,-1365179708,-1340699904,290104064,290199177,1186612934,12076743,-1200190720,12272326,-2085075201,2118105214,184793328,-1153004208,816769104,-955988861,64070,-244025,-28915713,1186529279,1183666176,-397404486,-998047504,-1559837178,113704960,130,1575324510,-326412861,-402643784,-2141835382,36670,1048580468,1946157212,-2109832438,57999360,-2130950680,41790,1458045812,11444735,11540107,-1995306333,-971895786,-954016698,65094,-956402037,-16720574,2122579526,-260174850,1343371192,1356678797,-2093998104,748750020,773229330,-364476142,-1595124087,-467006508,-1578219895,378208426,1183383724,-229209616,-1995295583,715257926,-96040686,-1995298655,1187445830,1048577001,1946161809,304914716,305010315,198182443,198317595,-1980479863,113702486,-352316783,304914701,305010315,-1980479863,582547030,1183666176,-397404452,-998047736,-443851258,-1957313699]},{"sector":7,"data":[178412,-13718040,1996424822,142016260,9058047,-1996158488,-768868794,11404801,11539985,-1017256565,-2014789581,-1241070034,-236453120,-1957313790,-390056980,1183526518,303080196,-1559869813,1183519250,303342344,-1576253814,1183453719,303473162,-1559284552,1891111448,280514570,1827164178,79987497,-1576374112,-1017310574,871140181,775219392,755254923,742195201,-385649152,-1073544682,-1476448621,-4707254,-1070903296,28856400,1996443648,-7411708,-385170301,-4718090,-1070903296,45633616,-1192826112,726663423,-1202696000,-11534334,1776813174,180651007,1342242744,1342228664,-1202667477,-1202716670,-347078623,16758976,12695632,-339727536,331659460,-1945160029,-972081122,269433606,255723206,-202878944,46433070,-1576059742,-4714691,-1070903296,112720,-1199379632,916656649,941526031,990299663,113643535,-970977474,17775622,255657670,16758785,1354771280,-385875528,163118955,255238930,255336076,255526598,1040631312,113647631,-973009092,17775878,1342242744,-1202667477,1307115521,317241599,-2069834773,1088694784,-234231728,-1610431357,-467009404,6569280,-2118643341,255238931,255336076,255592134,-1206916350,916657024,941526031,1007076879,113640207,-972026053,537869830,-384877408,-2069823667,1088694784,-238950320,-1610431357,-467009404,6569280,-2118643341,255238931,255336076,255592134,-1206916350,916657024,941526031,1007076879,113640207,-972026053]},{"sector":8,"data":[537869830,-1576059744,163057469,255959826,256056972,256247494,1225180688,113647631,-973009081,17778694,1342242744,-1202667477,-404160510,178430,1354771280,1342177720,1342177976,-385873224,716111512,748956334,748956836,716057262,748956334,716057653,716057262,716057262,716057262,716057329,726281034,729426719,729098902,716057538,716057418,723462830,748956347,723462830,748956836,748956836,716057262,719661742,719661755,-1957313699,178412,-953416216,19725894,1342242744,1347469355,1342177720,-385976577,-997982864,-28901622,922648193,-958300671,46598,-1962914840,1438866917,-1070338933,-13906456,-1947728778,46433277,11929286,3074052,-1957313699,5552364,-1205095960,-1605366312,-467004696,69908560,-1404662448,769452112,-1928805245,-397366202,-443863255,-1957313699,1095916,-2144631320,39486,922685300,535298182,46433026,10094278,-1690402816,259260416,8926975,-2097018392,113640132,-2147483493,38974,-706210444,-1976107016,32565248,-972897149,38918,-2131089688,39230,922685300,-672661364,46433025,10028742,-2109832448,57933824,-2147440407,41278,-1628896396,-1891729408,57933824,-2147445527,40254,-1964440715,-1572962304,57933824,-973045527,16818694,337133184,-1603636224,-467009404,-1192734656,46433263,1343455416,705825184,817385700,1183666180,132665584,147096365,-1924087765,-397348794,-998047332,-263811836]},{"sector":9,"data":[46458960,-1207778173,-1605364864,-467004919,71219280,-263811760,752412752,721994883,1183666368,1843941616,79987457,1357923981,-352152088,112647,-240785328,-2147302269,38718,922684020,-1998057940,46433025,9846400,-402426880,1048641184,1946157205,1647771402,75622418,-402471805,-443874486,-1070349475,-953532952,588386310,311599205,-1206774110,-1202714000,-397405680,-998036292,175153412,-326412861,-402651976,-14800362,1183646838,-1924131074,1343683654,1347469355,112720,108461904,1347469355,-2046653030,337289991,-1946270069,1438866917,79228043,702605312,-16484609,1996425846,105286152,-1924078550,1343683654,-2046483814,337289991,-1946401141,-443810218,-1957313699,178412,-1926647320,-11469242,1996424822,142016266,-402360577,446901610,-28931308,-1017256565,-1192457387,-1947729918,108954409,-14978048,1996424310,142016266,-1928956161,1343684166,-2046718566,337289991,1187449835,-956301058,1317382,-28931328,-1017256565,871140181,693168320,-1710983425,126223706,1561598627,-326412861,-402652488,-14800582,1183646838,726669054,-1706012480,126223557,-1961616733,-443810234,-1957313699,-390056980,-14800618,1996424310,1354771206,83270224,446891910,1438866708,112782475,687400960,385500813,-62485168,127553558,-1559788028,1183519770,1575324666,-326412861,-672612301,74907432,-2046457958,337289991,91602955,9897670,1438866689,45673611,683206656,1425950407]},{"sector":10,"data":[74907392,108461854,385762957,61315664,446891910,1575324436,-326412861,-402651976,1187457170,-1962933762,130483806,-14745601,-14809994,1996424822,1996430858,2406408,-28930736,-1070903274,144330832,-1559788032,-1073015782,1183388788,106859516,1307064319,46433024,-1543747957,-443870182,-1957313699,309484,-953664024,130630,503609087,-1207535873,-1924136912,1343684166,-2046408038,337289991,309641227,-244087,233309302,46433024,-1543747957,-443870182,-1957313699,-390056980,1996433406,38836740,446891910,-2147039724,-1017315328,871140181,669313216,74907422,1347469355,-2046706022,337289991,-1957313699,1751276,-1608005144,-467004919,1342193709,1342177720,384714381,1226832,95197776,446891910,1975520020,-193527950,737310463,1996443840,734718206,922701906,922681516,-236453718,-431584981,199775881,-13601598,1996485750,1354771442,-1946257665,1452014150,67068,1375785603,731310160,-1847046062,-431609045,-1981262309,1451878982,-14357524,1996487798,-193527814,737310463,1996443840,728688894,1776832594,735898411,-330921536,-1947580791,1452010054,1575324652,-326412861,468238387,302620711,1076749354,45633536,-14790656,213386358,1419399168,-1559788023,-1017310182,-135741389,-1505853402,510984704,303040199,1721874183,303211275,1342861496,1343361208,1342189496,-2094491672,-1231026492,1357130240,-2094653976,1438843588,280554635,649914368,-469467517,1183517558]},{"sector":11,"data":[-1982269692,1325335622,-247020028,-263797180,71731976,-1913502071,-1924075450,-397348794,-998037208,-58817788,-969051136,-968560314,-1962282938,1183384646,-263811598,-263811760,688318544,-2096839549,1946221694,440330,-91494320,-1962752893,2487878,81168,-2008954597,216792654,-1997519222,113770054,5146,721307274,1575324644,-326412861,-402645832,1187391022,1048791269,1946157224,-1475938790,175378176,-1325356895,1089000196,-1465840405,-754667264,-1207702552,1183400086,-230257178,-465138352,680454224,-2096839549,1946222206,72202260,637462608,-1207778173,-397410303,-998038222,-28931326,-1961616733,1654911558,1575324434,-326412861,-1008156621,74907429,-2094420504,-1073020220,113707124,398362,113706731,5146,-1957313699,440556,-1205494296,1343105576,385500813,-28930736,1996443670,108461828,-2046322790,337289991,-1017256565,871140181,628418752,-1710983425,126224443,1561598627,-326412861,-402641736,1187456350,-956301100,54854,1342187192,383010445,-632910512,1183666198,-1706027304,126222820,185866915,-1961331264,1151589958,-280589806,-1962160478,514058566,-347698414,-1962246493,1438866917,1085861003,621864960,14173895,-129594112,688056400,-1929198461,-397347770,-998037230,-62486014,-939637112,23657542,337249991,1183449088,1357130486,176043775,1358251658,176043775,1358186122,1342466488,1354778253,-2094594584,1151405764,1958742802,81164,37563508]},{"sector":12,"data":[-348032000,-92864679,303970047,720914058,922702052,1183453726,2025345273,1183666180,-806858548,247759654,1996436715,506920954,-112817646,-11475926,-1978524106,-1202653114,-638909305,720914058,922702052,1183453726,922702073,1996427806,76986618,1187430379,1187384794,1183648475,1183666368,-1481092916,1183666180,2078822620,147096358,383403661,-632910512,628418640,1342358659,9189119,-2080731672,1183385796,-632910376,626845776,990037123,125163590,337264259,-1206946816,-397410272,-997984830,-1845049854,-443875328,-1957313699,1882348,-1205605912,1419973220,1444842507,1476839179,-956301301,1317382,-230242560,1183542272,-196703988,-1996077429,1183577670,29655044,-1946663287,1183385670,-62470150,1183648596,1183666404,971526386,79987494,32524022,1183516276,337290212,-1947974005,1438866917,381217931,595912705,1358448269,-2094614040,-2037579068,-2037776520,-2037514382,-2037776662,-2033713292,1610678122,-2012026720,-1191217018,-1924135762,1358920070,-2094777368,1183646916,-2037559048,-1924071574,1358916230,-2094654488,161482436,-360302574,-1207273986,-397410264,-997984427,-129594110,643622992,-1929198461,-1979746170,-1912638842,-1979782522,-939559802,16738950,302620768,-8878456,1358448269,-9795955,1787202896,-840412929,113541925,940763296,1979640454,2734090,-150476720,-1962752893,-1866244635,79562439,243859456,646513992,914949450,-1979972276,-955993842,307974,-972634368]},{"sector":13,"data":[-956301308,308998,-2096707840,-950183163,2080736518,-2029598916,-953467387,1023772934,128575547,-4713613,-1960422401,255469085,45613939,216619776,-1070167807,1431786244,80223885,79628022,-1405192928,1913140456,127789111,-823643532,-166300409,537181958,1760036213,-165483769,1090830086,-347202700,1007126552,-2147125955,17088270,137357379,-2001942157,-1007992057,-1254717106,509444,79961737,-1927443674,-2147170250,829697852,1948400768,-1090062841,1349845252,21465638,104457266,292750513,-788221535,54739936,529213144,-352288536,-1291401370,-352321276,1200236126,1088696833,-670834479,839879206,1959332845,642990863,-1142415477,1064524544,-220052669,78841543,871038979,21465638,-784276430,651690976,-466483318,54583505,260712152,-921965262,1396903796,-400585946,1935343700,-498908406,-1291401230,1560282116,244013919,-1281293135,-1254716668,-1223259388,-1189180924,1355020292,-1459123418,74776578,78710527,1962949760,108824,113707125,132275,-1336930581,-385895421,-346554220,17885187,-1007041704,-1977200299,-315488177,225757451,-402034803,141755038,-503312920,99351030,80096905,-1017292296,8290342,1157854208,-1018824981,79629952,-3610608,645939826,1357841599,721732257,-1073348154,915101700,1015022786,-2145159936,1966800764,-1291401464,-352319228,1065559582,639136768,67575,113709429,132275,-1813509653,233568256,1342893049,-4979792,1476396008]},{"sector":14,"data":[643286008,-1996193909,637843262,-2010774136,-1588592283,-1993997114,1012400709,638219521,637818249,-351908471,1963080793,1435051526,1011870468,1021867015,1021604872,637957382,-352037496,1963211837,79733006,1166616128,1569465860,640412422,637826441,1342594444,38270502,-1341885439,638184196,33703926,45090164,1476449512,38270502,-402426864,-1017184090,93062854,-1960423424,1975520007,1381191703,-1291401385,-1275066108,-402411265,1516240736,753621083,1947205801,-1291401456,-402653180,1048773135,1963525299,134261015,113710452,1203,-2096951576,151302974,65733237,-1450165013,326369536,78841543,770179072,77981700,78855811,-1457294071,276038144,78841543,367525888,-1287748860,242551044,1948254377,-1291401463,-402653180,1048576175,1963001228,-1287748851,108331012,78841543,-1017642999,76174928,410304522,192231996,97408,80086389,-402003200,24315245,-487897530,1455642718,-1966044590,89909252,-1073083534,199756660,-352024576,-347716095,-1017226518,208896060,1114792252,1048017468,988536612,-1923676589,-2147123650,74712314,91831949,393483576,508711248,-1973046265,-17470,-1174403655,567148543,-1957144230,1166934365,742605571,1607935616,1019435783,1007186480,738490169,-104597456,1381191875,2139825751,92939782,74825738,1256980404,1047855932,92939847,-453637708,653787968,95683978,54584566,92940024,-1960425657,3205165,-947711629,1976106499]},{"sector":15,"data":[-1291401231,-1275066364,638839807,-1325439606,361440770,113707755,591027,61931444,1610473448,-1017619622,1448236368,76153522,1912896744,-13572038,79628022,1007514632,639530301,97920,317419125,79628022,1007580176,638219578,32384,-347710859,1178216026,169637120,1179677888,638774085,1962952250,76170819,1178216005,1178170624,-156505275,1074052870,-148500620,2097735,-2144991372,1946157182,133637666,410255376,158677564,8290342,-351439616,1962949646,2122327559,57948672,-1996100615,-133905866,1482512990,1381060803,-396995754,-950140772,356614,1929824000,-956301307,357638,10610688,1906513522,1960512005,9824280,1940088178,1960512005,9037836,1973639538,1977289221,1327401810,50037509,1906384756,1977879045,-1580692926,-469105293,-393594507,91559563,1963064195,-337017342,1897302806,91463941,527819786,1973536906,1977879045,-2081912298,74671354,124568193,-4956581,-1377302608,1527770108,-1325419426,-56432637,78841543,1499070473,915260248,1015219535,-352160513,1347558927,12066590,-841577672,526014497,861032899,168069833,-2143587136,347710,-75493516,1006925057,1009808442,-349408210,1949121548,1949252646,1949187106,-33560546,11804274,703121,-770972937,-1056763531,1183911538,-661995541,1174793208,-117314568,1499120011,1381060803,-396995754,1157037960,1969094929,15329283,91293383,113704960,1395,91555527,113704960]},{"sector":16,"data":[1399,88999622,-402541823,1400045431,168128931,-397052709,1198718827,168129443,-1287031589,-10622974,1973631346,1977289221,-1106840017,880083460,78984843,754941056,1153837685,113716991,1214,79564416,1208912642,1244039941,1278642949,-107812603,1929323240,91726680,1366678282,168128929,-162892316,17088006,205260916,41238391,116834354,1946420415,1946958860,1913390088,1998076972,-1580168664,-469105293,-259383435,168129953,-1978239516,91726280,225829898,1583081610,145817524,-335853592,-1268884721,-402411265,113769276,591027,88999622,1482250752,-1974054717,-1073068540,1149958517,1008733438,1008235632,1008432225,1310750061,217990282,1953512480,1952529414,-2146374903,67419918,243271147,-973011778,1577123396,1464910680,-1069642922,168069636,-401509184,544538711,93062854,80109057,971726592,312926,133637727,762642433,78841543,636157954,76174936,460636170,1946168040,22800395,1179058803,-353679801,-972768862,-1991835644,1577366846,11098207,1342796802,95485876,1492814824,-1924049981,-1190821090,121241609,-498924428,1532576249,-1974316861,1958742532,18343989,2088970866,225720833,268957478,-2145553408,1962934652,1008733207,1007776353,739080058,-1261401504,-402214657,116128320,78841543,1482293257,552119491,-401181696,343212113,79628022,-152144864,1090830086,-347207308,32241926,-121417992,1011962819,1009611789,1009349632,639988746]},{"sector":17,"data":[33717632,-617406862,56461862,637846403,1946171776,650720013,641927562,74711354,222099682,1405311833,-1190738351,645931012,1021248703,1010201632,1009939465,1009873964,-2146667232,125116476,977674416,639560640,16940416,-919398542,55413286,192203019,1124074427,1946237478,1022943751,-1017423584,-167462494,17088262,243271029,975176895,-1913984064,990169134,1008301277,-116230865,-12088752,1929059560,-402355707,-346490091,183236621,91565884,79629952,516159552,1048793942,1962935484,1360941093,106256210,-561056205,-849149768,198937633,1599932379,1478449498,914957684,512296122,915080380,512623802,1015219388,974156800,973632004,58130756,1174793209,-118756538,-1021354405,1475119957,75402070,1342850443,1569392011,72190722,-1962519157,1432291445,1576452584,108956503,1569260937,72190210,-1996073591,-1969289099,205883844,172329304,-443850914,1397801821,861341266,868323017,305051903,801964210,-1744401354,1049179653,783811990,-855461358,109852207,-1992948320,-1207591362,78778926,-1942605875,906342406,95305353,-1307431240,909102342,93587084,-1841395402,1391368709,-1942618112,906334214,93208201,-1408857034,1049179653,261752234,905969747,94635660,-1572959946,305051653,801966258,-1207530442,1049179653,-952760906,218482950,113653258,908330514,97388231,-952762368,168153094,1388943872,-1942618112,906345478,96091785,-402646552,1139277872,1390956800]}],[{"sector":1,"data":[1493725696,1532626783,-2096829608,-872870716,-1205971376,567108352,1914636062,914961930,-1942616638,1577436166,12108632,47940,567136819,-2147359104,28836302,-1021194940,-1153171272,-768409599,-830463539,1140963329,-1262280243,1025625392,57999365,1025043448,91422722,-335544389,178947,-1191181896,11665408,-1007026250,1431766608,4232858,-2146536960,1962475518,-350288380,-1960901118,123690487,1398197080,-919341517,1979711104,-1127991799,-1014233670,-956946197,906589186,94289092,451658636,1912607549,2571534,-1003091593,-1945785668,906488771,93240516,-75250804,-2145946113,58064894,906882041,-1207578973,29229055,-118082816,-75297557,-402426880,-964493228,108197892,41273611,-2137220373,695534078,105993554,12079191,1009765637,158685439,45668491,-349188859,91486465,-346486945,113541894,1560284392,-821957798,-268274,1472945755,-18096,-1359822798,1481232887,-75250849,908162305,95829635,1025078527,225837055,-828295600,520041989,-346552906,520041989,451610038,-25114317,637957375,-352105078,892872201,-1977219979,-947715251,729020676,1959332856,-98279,992347508,637790981,41223483,1950943723,80184069,1928979435,-98294,637564408,1912765699,653079046,910626186,96995014,1397801728,106386769,921275218,96870025,-885618634,1083611653,-922025984,-318037132,803734901,-402396416,259129794,17819738,-771072249,870843252,-2096829690]},{"sector":2,"data":[-336001340,1516177156,1560834809,-998024359,-2096829694,-872871740,911364944,96870027,1979710339,2942981,2011694059,-1274055936,47961,-466476595,-116996989,-75296533,990606591,-402164543,-998047568,57866502,-1017619622,-2095118818,460653049,-1977220428,522308885,-1310145910,520494592,-1977219213,567083349,-1274024968,1959332610,361375241,1229398477,536408949,105928643,519736147,-1327920377,-1359807462,-651492491,1540066123,-1017161721,-921976781,102649716,-1958693857,33129431,567093365,-1977200609,5957637,520494680,-1258813837,567099968,1031808668,-1962773222,-821957695,-268274,1364531947,-1946179864,567106025,199950963,125093947,1979246651,1572965122,666419999,310016,-2134703691,292880382,1971373814,-1928913396,-1190803138,-1572862,1460061182,-1036073930,1962871557,1032005143,276101120,1912945190,1161438727,-117344511,-370456761,918751071,97257103,-1835803853,-801704138,-147418363,-2096771018,91621882,-348667264,818053123,-1073004206,-620034955,-108839820,-2146536189,1965820540,922695174,-348060199,117015332,2088767093,108342282,-650707146,300630277,1963587971,175931404,906392876,98121471,-768371903,-768367893,-13189069,-1023030218,-921972173,632562036,942014640,638219557,1946248504,1975794180,92939790,1946110952,1111967489,1457747273,-317994361,911029620,97402499,-1976797952,805570116,21314086,535495285,74788924,74764811,-404016125]},{"sector":3,"data":[-885096394,141950725,1229537858,65752911,1476394938,-1509077,1935237117,9365763,-2134209711,1946158716,1959332621,1195985158,1577184071,-922021653,-346160267,-425207,-919403915,1718943499,1359370069,-2093561549,380478,1156987765,141889287,-402490172,686489959,218580214,1156975732,108269063,201802998,2093222005,24504322,1156976363,91556615,-352187672,47835139,-352298776,2287619,123275122,-346137249,180650756,1048786681,1962935758,-385650171,-952697086,380422,-768359680,97427766,-804862154,-402650619,911801977,97683336,1090224963,-655883403,1976172032,168671469,-762869450,-398245115,868417735,108822747,907244800,97683399,1128475936,-762853834,-398254075,861733035,919745499,96997000,973685898,706705089,-152007999,1954547524,172263957,-762869706,-75283707,-402426560,-822214529,2088823669,225705992,1929923640,139209224,1284166026,1959332616,121959973,-166955761,1947207492,92939782,1476520775,-762869706,-75283707,-402426560,-906100669,1157028725,427130887,359986698,906642570,97683336,1090224963,619185013,1976499712,121960171,-167217905,1947207492,168684290,906589394,97257103,-143275266,1426064104,1460031939,-880081122,1049484083,1541932498,1594192636,82532615,-116996989,1156996547,309669895,1342540326,-45946815,-1977219469,-128974523,-1977217557,1958742533,-348043516,1442393077,-768385597,-952713165,268816390,-153406720]},{"sector":4,"data":[1965033284,92939814,218580214,-2136469899,608371572,113718911,656848,235357430,-952760459,168153094,-161944832,1963984708,93005352,218580214,-990506891,1124365440,914351232,97519303,1156972554,125111815,-804862154,-352318971,93005354,39160614,218580214,-956952459,1124365440,914351744,97519303,1156972554,125111815,-804862154,-402650619,-619971399,-768408204,1431449010,-952738365,168153094,8185856,-1070345677,-767655114,544538629,-402618392,-13238122,1090903350,1149943859,8972293,-583598282,1149911301,8185860,-767655114,544538885,-402628632,-13238162,1090903350,1149943859,6350852,-583598282,1149911301,5564421,-767655114,510984709,-402307958,-13238202,1090903350,-402373494,-13238214,1090903350,-402645016,-1017839570,11548852,97654413,225649101,-771307722,905969669,98371270,1150010157,121959938,1023964432,58064995,-1023384648,-771322058,243807749,-286784056,976636411,1963313166,3192837,910246224,97662719,-952738365,168153094,8382464,17253622,-2143937164,385854,1149900149,2081176578,2115451908,1348579334,-1341854911,859918448,-153996352,1948256068,88377868,905997544,98252543,121960001,-167348960,1947207492,71600652,905991400,98514687,54823489,905988328,98514687,38046273,17253622,-2143939468,385854,222039157,204210812,41222204,1390939312,-1262266885,-1929334728,-855256554,907244321,98764487]},{"sector":5,"data":[-969539583,973463302,-620313034,918760965,97650319,-938571722,-81532923,238696009,91555272,1342189752,-13221567,-1023028682,-2145496495,142000378,254067338,48958644,520544906,567138187,184188959,-401443592,192150216,-494221174,-511041075,-1274876936,1510240768,-2096829607,-1007090492,788530687,12320769,13631490,14942214,16777223,17498120,18219019,18939916,20512781,22085646,24576015,26083344,27590673,29032466,30277651,32505876,37158933,41877526,44367895,45547544,48168985,50987034,53542939,55640092,58327069,60489758,62586911,64684064,67502113,69468194,69402659,71827496,79036457,86245418,88670251,93978668,96862253,100401452,103874861,111149358,115999023,120389936,124059953,130744626,135004467,139395380,146014517,152633654,1668172055,1701999215,1142977635,1981829967,1769173605,168652399,1225395479,1718973294,1768122726,544501349,1869440365,168655218,1225395487,1818326638,1679844457,1702259058,1701868320,1768319331,1769234787,168652399,1986939150,1684630625,1952539680,235539813,1635151433,543451500,1701669236,1225656845,1818326638,1881171049,224949345,1867389706,1970238240,543515506,1986622052,1886593125,1718182757,224683369,1867389706,1918989344,544499047,1986622052,1886593125,1718182757,224683369,168634634,1920298835,1629513059,1948279918,1701278305,1919164532,1936029289,1701994784]},{"sector":6,"data":[1701344288,1835103008,436866405,1917127181,544370546,1667594341,1852404853,1329995879,1413565778,219810317,1851867914,544501614,1684957542,1380927008,777273677,223170371,168630538,1869771333,1886330994,1852403301,1869357159,1818846823,369757541,1867254285,1852401511,1869881447,1818846752,824516709,220531213,1935756298,1633820788,1886743395,1936286752,1953785195,1869488229,1852383348,1953654131,168649829,1460276554,1229869633,539051854,1701603654,1852383347,1701344288,1918989344,544499047,1986622052,621415781,542915121,1953460082,1919509536,1869898597,1998616946,543976553,1696621922,1702060402,1258949988,1096223245,1313427026,1176510791,1936026729,544106784,543516788,1735549300,1679848549,1702259058,824510989,1094868026,1347767107,1919509536,1869898597,1998616946,543976553,1696621922,1702060402,688524644,707398157,1631723562,1852402531,1886724199,1818846752,1948283749,1919164527,543520361,540684581,220867114,1766069514,1952803699,1310745972,1700949365,622869106,722079025,1096223245,1313427026,1310728519,1768300655,544433516,1701995895,1970234912,1948279918,1633820783,1965058915,772410736,1850280461,1953654131,1667326496,544241003,1920298867,1679844707,1701540713,543519860,1679847017,1702259058,976299296,220858893,1936607498,544502373,1801675106,1679847541,1701540713,543519860,1763717413,1919164526,543520361,221917733,168633098,539634218,544501582]},{"sector":7,"data":[1701601889,544175136,1801675106,1713401973,543517801,220867114,168635402,1702063689,1814066290,544502625,1801675106,1679847541,1701540713,543519860,1679847017,1702259058,976299296,220465677,1918981130,544499047,1852727651,1646294127,1937055845,1713398885,1646293615,1969972065,587861360,707398157,1632378922,1713402995,543517801,544501614,1801675106,1965057125,707403888,587861290,1766197773,543450488,1801675106,1679847541,1667855973,824516709,1936269370,1819633184,772410732,1766066701,1713400691,543976565,1869771365,1920409714,1852404841,1869881447,1128350240,542135627,543649612,1701603654,1344342541,1936942450,2037276960,2036689696,544175136,1953394531,1702194793,773860896,168635936,671747330,1631783437,1953459822,1380927008,542392653,1919840110,1987013989,1701601889,1769104416,622880118,168639025,1107955057,1969316709,2032166259,544372079,1920298867,1679844707,1702259058,544434464,1752459621,1092645477,1195987795,744777038,1229933088,744777038,544370464,1396856147,224683348,544499978,1629516649,1635087459,544828524,543516788,1701667187,544432416,543516788,1735549300,1679848549,1702259058,225511949,1667580426,1702065505,1970239776,1635000434,1952802674,1769104416,1763730806,1768235123,1919248500,1397965088,1699628873,1243622500,1699629391,1864379492,1431511154,1700025154,1762266468,1936269428,1952669984,1819042165,1752440953,1634934885,1629513069]},{"sector":8,"data":[1752440947,1869815909,1701016181,1769104416,168650102,1970231592,1635000434,1952802674,1936286752,1953785195,1936269413,1718514976,1634562671,1684370548,1684955424,1867404320,1380927008,542392653,1735357040,544039282,544432503,1853189990,168636004,2032168772,1746957679,543520353,1953459809,544367976,1802725732,1702130789,1953068832,1329995880,1413565778,544108320,673215593,692989785,221192255,1936607498,544502373,543516788,1802725732,1702130789,1953068832,1329995880,1413565778,544106784,1986622052,977346661,221841933,544162826,544567161,1953390967,544175136,1953394531,1702194793,544825888,1702063721,1852404850,543236199,544695662,1802725732,794372128,541010254,1667318328,1965060971,1852776560,1919885413,1919905056,1768300645,544433516,1836020326,1701736224,1936286752,1869881451,1869504800,1919248500,218762542,1094873610,1347767107,1970238240,543515506,1953719652,1952542313,762212201,1986622052,1528838757,542987055,1565339483,1093622560,794501213,1933204294,1566931561,537529693,1143954208,1952539706,1412389733,1835627578,542989669,1531719515,1919179578,979727977,1634753373,1818060916,1768318831,1566401900,168626701,1931485261,1668445551,538976357,538976288,538976288,1884495904,1718182757,544433513,543516788,1701603686,740913960,1769104416,539780470,1679848047,1667592809,2037542772,544175136,1801675106,779121952,541461005,1936024608,1634625908]},{"sector":9,"data":[1852795252,1769104429,540697974,1667592275,1701406313,1752440947,1919164517,543520361,1931505524,543520353,1801675106,1663070325,1701408879,1852776563,221146996,538983178,538989359,538976288,538976288,538976288,1109401632,1936417633,544240928,1953394531,1937010277,543584032,1684174195,1667592809,1769107316,221148005,538994954,538987823,538976288,538976288,538976288,1109401632,1936417633,544240928,2037149295,1818846752,1948283749,544498024,1702257000,1634231072,1684367214,1852404512,1948280163,1814062440,225735521,538976266,538976288,538976288,538976288,538976288,1633820704,1886743395,1141509422,1093607456,538976288,538976288,538976288,538976288,1684291872,1633820787,1886743395,1818846752,1948283749,1851859055,1769497888,1852404851,1633820775,1886743395,1936286752,168636011,790634566,1935358534,1566931561,538976288,538976288,1884495904,1718182757,544433513,543516788,1702521203,543584032,543516788,1802725732,544175136,1713399138,1634562671,1684370548,1745489198,1143939104,1952539706,538976357,538976288,538976288,1667318304,1965060971,1852776560,1713404268,1936026729,1634231072,1684367214,544108320,1629516399,1919251558,1701344288,1701868320,1768319331,168649829,538976288,538976288,538976288,538976288,538976288,1952539680,168636005,790634600,1769224788,538994029,538976288,538976288,1631723552,544435043,1864396917,544828526,1701603686]},{"sector":10,"data":[1751326835,1701277281,1952522340,544370464,1702127201,1752440946,1886593125,1718182757,224683369,538976266,538976288,538976288,538976288,538976288,1769218080,221144429,539002634,979061807,1769104475,1564108150,1952542811,1869372776,1818846823,168648037,538976288,538976288,538976288,538976288,538976288,1701987104,1936028769,1814061344,1713399663,543517801,543452769,1920233061,1869881465,1667592736,543453807,543516788,1801675106,168652917,538976288,538976288,538976288,538976288,538976288,1701867296,1769234802,221146735,-1928917494,-2125960130,-888511551,16778497,327679,1954039057,1701080677,1917132900,544370546,118370597,1389641357,-887045757,16778498,327679,1918980110,1159751027,1919906418,238101792,-130118393,499221330,-326412853,2123060823,172329732,-1962570928,1300955741,106269444,1594389899,1061329493,1465712640,-1996063093,39684357,-1996206711,1971914325,-997548280,1477199241,1577731465,1575324511,-326412861,2123060823,172329732,-1962570928,1300955741,106269444,1594389899,788510293,1406213769,-754022098,-1892802989,-1705781498,16504,2123061085,-1996125946,1300824669,106268932,-1626835575,1166656650,1166628876,914959882,1600017365,-1268914805,512437824,-1959898159,777245454,1406473867,-13753907,525588278,195,0,-326413056,2123060823,172329732,-1962570928,1300955741,106269444,1594389899,1103534677,1465712640,-1996063093]},{"sector":11,"data":[39684357,-1996206711,1971914325,-997548280,1477199241,1577731465,1575324511,-326412861,-402649416,-1957297010,-1979274210,126355014,-16696856,-1008204682,46433029,-375159,-402215882,-998046282,-163149566,972703371,92206662,-1830174677,-96040192,-1980348885,1187509318,-2097151758,2080437374,-193557529,-1962641917,-1979274210,1963407364,-193035421,-2095614976,1946219646,-12285353,-397351894,-998047313,81154,1183532660,-28931596,-1980610933,1183579206,-129594890,1586175723,-1405711364,-1962898938,1988886110,1962948612,-129040623,1191166859,-62455810,16285315,2122570879,141885688,66340491,199951430,15877831,-196149504,1593801961,-1017256565,-1192457387,-1142423548,1187468803,-402652930,401277034,721176202,887640292,46433025,1962934589,-28901599,-1946269953,1988886110,-2013230588,-1073021882,2122373749,393543686,-972831861,1988826091,74843134,1178076298,-1948945146,721611718,-443851072,-1957313699,-390056980,-397016226,1586102290,-1946211836,-1978715594,1592011264,-1017256565,-1192457387,1072168970,-1070901757,-1979824503,1048837190,1963001578,-373282043,12058802,-2014818303,46433027,-1207052637,-397410048,-998046854,254976770,1342178744,385631885,254326864,1637503006,-1995995638,-1072956858,1183516020,-948311046,63046,-1946788213,-1978804682,8975942,-1946788213,-1978715594,8975942,-2114566401,16840318,12115580,1183666177,-1588586756,1344147250,-2046153830,-96040697]},{"sector":12,"data":[-1166688245,-1995492703,1187510342,-1962934026,126548062,-259267542,1962309177,-702641399,-163149299,1191116936,-129564682,16154241,-941851647,17230342,-11933440,1575324510,-326412861,-402652488,-950664598,65094,-771852661,683442406,192217103,254393472,721712384,-1960449088,-422445450,939804298,1997482116,696530955,-1207602673,216727553,-2080487681,1912995454,-18233,1575324510,817103043,37495245,550306419,-1962391361,721420854,16679415,-1107070448,-1896214528,784630231,276036374,-907534570,1354773254,-1207356696,567102719,922674307,116532873,-299464394,-1312388346,1222693636,116171574,915011331,-1014235134,-604512725,567102132,1662946358,-66644473,-1190510913,-819259856,-1426866125,1005068054,-400615936,-1108866994,-1232122,-16284618,-16285130,-402161610,-397367058,1220018402,-1193767416,-952762365,134672390,1307070552,146401286,1342242744,116397823,567095476,-1207474781,567096576,122756745,122881676,12066574,1462155813,521544141,156634763,109981411,-1960442013,-989844426,-1945544698,920335322,156507903,521536883,906371049,157025989,62642828,520041984,521537876,123930254,739150630,-1909005568,654259137,1946172800,833836,-217627458,-1190431578,-1070366721,427142898,503768555,-141877497,-1408799553,-22244968,1208054976,385344170,310047,124561280,1140897983,175251917,1954595574,1821343749,2034974727,157335271,-402038593,1623064738]},{"sector":13,"data":[157335305,-1023374616,-1091794091,1690241636,8251402,-1089904450,1961363810,1426320128,1656679563,157466377,-1107269912,1656686946,7137289,184907240,-2096401216,1962935422,71747333,263782655,375552,124553206,-1274776575,1126288702,132707042,71731968,567102644,156634763,45811683,1411317504,382017033,12060497,522308901,126762624,504198144,-989360224,-1274572778,522308901,1945582531,-1957736694,-597235,-1007490095,242480955,-1962610813,38079237,503313012,12840683,735873881,990540504,1913099294,-1864956,-373279775,-1957298581,149717996,-1061267881,105286919,1459373705,-2096567832,-125107516,1342588557,1443133183,-2096499736,1183385284,-396929288,-998045358,-129594620,-443850914,-1957313699,73305068,74767115,33443712,-1017256565,1458342741,127318871,1962950531,-1207493079,-1075314683,855995667,619420096,-1543625664,-1734146154,80188935,-964493311,-29047036,915013630,1317734300,-1898411004,307620032,-443851169,-1957313699,-1948808212,-1898410786,75402176,-4603853,-1917914369,2123104117,-18170,-772296974,-24643285,-150714741,1946157510,-783703038,329642985,-1952123959,1576700915,-1957363517,-1948808212,108432350,-661848437,-1070350194,-218103879,-1949173842,-947190658,41157032,-372160092,-921459213,-208952077,-1017251189,-1947432107,-1931572265,-1950314792,2123039862,-1178586362,-1359806465,-114568713,91530995,-14827493,-1946973185,12803578,-1947432107]},{"sector":14,"data":[-1898410793,75402176,-4603853,-139529473,-1953412655,12803578,-2081649835,1448543468,126105227,1182070283,294531,1996439668,-3610620,-1962752893,-1878725640,-2096970109,712245308,-1276627713,46433279,-327235781,964697227,1474655549,1392801535,-2095927832,-1073019196,478926453,-352239219,-1070886909,-443850914,-1957313699,-2091428116,1187384044,1183567350,-146372604,175383868,108275260,-872921402,1187384555,1187433466,1187398905,1452033272,-163148300,-1947056503,92997246,-1962779253,1435173965,141921030,1426750859,1576165119,2123061244,-1996125944,1300824669,106268932,-1895271031,74582597,149681715,-1106945048,92995585,-2096335479,1583286980,-1017256565,-2081649835,1448546028,-1946925427,138841592,-956414327,-1958607291,1166607430,-955938556,2147418693,1342719629,1460041471,-2096644120,-259324220,2013416959,-1950340597,-2012872931,-1878267129,1354771287,-2096811032,-963967804,-443850914,-1957313699,-1957210388,92996734,-1962779253,1435173965,141921030,-854950517,2123061025,-1996125946,1300824669,106268932,-1895271031,74582597,149681715,-1106986008,92995585,1594652041,1575324510,-1957363517,-1957210388,92996734,-1962779253,1435173965,141921030,-1962248705,93194366,1594252686,509026765,-544286836,-1945600373,105221893,-1996063093,39684357,-1996206711,1971914325,172330760,-164428686,1575487723,114180,1971914123,-1956749556,12803557,-1947432107,1603011678,-1945662458,1468793423]},{"sector":15,"data":[1575324420,-1957363517,2123061228,-1962467836,-1178586145,-1359806465,-1965426879,-74774970,944746226,855798789,1606913023,-1017256565,-1913877675,-11532218,1996424822,285665284,-1017256565,-1259566251,1426451257,1001712779,-855353717,63367457,-1259566251,72780602,-244112947,1962938429,-1970040084,3949319,1060899444,708576372,62058869,-705955438,-1259566251,1426451263,1085598859,-1962647925,-987887026,567084630,-1962577377,126422110,230377,-1897100459,1236534342,1978212813,-1957363709,-852839188,73304865,-2013114487,394789239,855918472,12803520,-1259566251,-1960719060,797443166,-2013180024,1468531319,1572877059,-1957363517,105286636,185228939,140413912,1183517557,-1947994364,146955749,-1947994368,71732168,51013367,71732168,-788274185,-1034033781,-1957363704,1183536108,1975520010,139365141,856049291,-1947076654,-235469754,-768359797,-930396693,-1962385781,1183516246,-773205756,-773140005,1976110040,-1946945548,174520264,140965777,208851203,1996903995,990605831,108397638,453527083,1177225814,106306308,-654845193,1526782595,-1034033781,-1957363704,16562412,40233040,127942275,-16485376,-1207459818,-397410049,-443874733,45663069,-108402432,-1175047338,-466485182,-533549828,-192873502,-401771435,28901316,753422336,112642,110084958,45746082,1695954944,-1909885945,638018310,2885262,126355084,-1181106125,-13402112,1974382322,-1991817221,-1190689218,-1359806465]},{"sector":16,"data":[-779365897,-1107295809,512622721,1017907043,1023112224,1022850057,175076365,1198224576,540847182,154986612,222094452,-1073062796,574380148,1547445364,-347995276,1103705060,1952201900,1948400890,-338623740,-775844909,-1462692887,-339053311,1017925121,170619917,1009218752,1018852386,1107522652,-919343893,1547480129,574421620,-788331404,-1047798805,-787224111,-764083800,521574379,125845129,-783821053,-2133392409,-500433182,-2103196533,64523015,906434299,1128480649,126236357,-1073042772,-2118190475,512636416,65734499,-1398095821,-76275652,-143390404,58002748,167804905,-352094784,-1992912775,1313030975,1948269740,1946762459,1947024599,1958742626,1948400734,1952201767,-454317565,-1404974797,-93037508,108274236,-1426891600,1555091947,-1426855471,581961331,1321593770,1947024556,1958742574,1948400682,1952201911,-320099837,-1404974797,-93037508,108274236,-1426891600,1555093995,-1426855471,581998195,869133226,521579200,1991,128067327,1441565525,123936398,-1047803597,-108271221,741772105,1962281728,650546704,16000,-234458112,1974355374,1083655674,-41157084,-989600303,-1084809450,-907542519,-812949747,-133956213,126103177,-561117410,-481692109,993820947,-1996131261,1162150014,-1073042772,-303891851,369118857,-443851489,-1957313699,509040364,72780551,-1391891266,276087355,208967232,-1178586217,-1359806465,-336857205,-1956749418,46292453,-326413056,74907479,201313256]},{"sector":17,"data":[-1844153152,-1070335349,-218103879,1238497198,-1275067717,1596050752,-1034033781,326238210,-443826125,-126631075,1632336,1575324504,-402164797,-4718578,-443835905,-466435235,-1023409688,168257698,-2145159708,50816318,574360946,540806515,95421810,1016072171,-1342015981,128236307,1571002583,-997539065,-1957300245,149717996,1988843095,121932294,-96040552,-1204959605,-754732793,-775386120,-775879712,139986400,-151501175,1954743876,105182726,-2146732992,-1205860788,283770879,1157009409,-277544698,33967232,-284793728,1149878315,-1980200190,1157037182,1601506310,-343810421,61933496,-1014236205,-670833711,-2013862959,1963001944,-1057062586,-2130283513,1963444478,-92864717,-2096137752,-1073020220,117386613,-25097998,108332992,-351545672,649629700,71600404,1586168969,38258680,130417152,-1878463743,209250390,-167590781,1963460164,-2116121831,-1324893973,-1946430717,65262019,-152841768,17324167,1015763060,-1962640341,-1992293308,-128021756,1208108939,184697993,1460895487,-16485121,233372278,113541901,-335788407,1586204698,1820849914,259268615,1342177976,1347469355,-851711917,-1962359677,1183450204,-351827964,29331479,1355254528,1342457485,-386238721,-998044464,-62486266,1962704441,-18093821,704923274,-1956684060,-1866244635,-2081649835,-1957296916,117376118,-25097998,141887424,-687978809,-1878201589,130612865,1187456117,-166451458,1963722308,-2116121831,-1324893973,-1946430717]}],[{"sector":1,"data":[65262019,-152841768,17324167,-1070922636,-963955221,-1324894163,-1946627325,65065416,98619841,1183385688,-28931076,-1996209015,-60912892,-1996357448,1149829703,17286658,33967232,1577058744,-1017256565,-2081649835,-2091515156,1946158206,108953947,125044672,-939098495,-1955171065,1200227934,-397371385,-998044158,1958742786,105286500,-1324894163,-1946627325,65065416,98619841,1183385688,108462078,-2096399896,1586168516,509694,149447,106859264,-1070861429,1200161929,-1876235516,-2130289013,198575231,2139162484,1964254724,122128920,-1477947240,46433037,158646283,-402229505,-998044874,-443851262,-1957313699,23378156,1475725800,108432214,-23165299,-1962255197,1285752902,71731978,-955629405,677382,1409730304,-385875958,1015022204,-385649627,113705560,68184,1218691115,172270346,-1559604573,1352862278,172925706,-1559608669,1252198974,1644611338,-2147475446,1966080380,113722940,3148386,1015034859,-15895253,-955627514,675334,-1876759808,1965046912,1212056333,359989258,172885759,117379051,166398526,1965898880,1241972689,76170762,-169324392,46433031,-394936309,173979734,124184656,-1962621821,1581155312,209518602,172623615,-150315359,173974488,1965964416,1342635811,-1202305526,-397407656,-998045892,-2081387772,677950,113707645,68184,173018879,1033372810,846463046,1946177085,6831413,1815945332,-955878144,34227718,1178501888,91553802]},{"sector":2,"data":[1967930496,1015039489,-384076544,113705352,68166,113763307,1051206,113761259,526918,76207083,-1668904552,4537854,1195182708,1023767552,158662744,172230399,-23296381,-1668904160,6499838,1979716925,18147587,781434883,1705814015,172760715,1419845515,-2096658166,34229254,-1878955543,173147903,171837127,179830784,2145931264,46433025,-1878961687,-352319304,117412080,117377602,1048775236,1962936912,1510393609,-352321270,113741831,2650,173016831,173541063,1048772612,1963461190,8972547,1185136683,-62486262,173934137,1587619700,-62486262,172637827,-955681792,679430,-1877808384,173944451,173973765,41795595,1587789867,1275495178,280494602,-1552384,46433024,1342192312,-2096902168,2122515140,578027772,172637827,-1961528320,86899782,173974272,41795595,1587789867,-1878529270,173934279,780337152,-1207694772,-397410288,-998047554,-14685950,-385871688,-1070858449,31647824,-1862325527,-352321096,-1224765197,-1175912804,-15079166,172375683,-1962707968,-24424762,4030535,1031800180,-1946847963,1355164615,-303540706,113541891,1015084939,-385649664,1048837500,1962936916,1075743577,105379338,-1202752480,1307312127,1685349720,1700685150,1701340510,1701340276,1701340520,1683776872,1687053448,1701340520,1701340494,1701340272,1699243368,173424259,-2095877120,676926,512430197,1207306816,-1217060858,-347732757,1419874457,-1956684278,-1866244635]},{"sector":3,"data":[-2081649835,1448548588,168066691,117376116,1048775250,1946290758,1178501895,376770570,172760715,1468729227,-62486270,-2080483703,67783686,1048783595,1946159698,1277070097,-1995994358,1187511366,-352321282,512462862,126552652,-62486119,-2080483703,34229254,171851395,-1962052608,1175190598,-1962576642,48956486,1621344299,1547078410,1379828490,712310794,16678531,2122523773,393546244,1177355462,-1946401141,-654836138,-150941053,-62486054,-939633015,129094,1187448299,-1929379592,-125048762,1459910399,-100609,-1511457674,147096329,173031043,1461810176,-2081216024,243991236,-936703400,-336310647,80121861,-1047837136,2143292233,-196179467,172232331,76023178,125094155,58483004,1176513664,-8552377,-2081852160,676414,1218516085,1309018890,-2096401398,1962997886,112645,-1070923029,45279312,1577239683,1575324511,-1957326653,283935724,2122536535,343146500,-1593835074,1183386188,-94466824,172754563,9562370,172375683,-1961396976,-1962259426,39291655,-1980217719,109312598,-352056756,512462869,126552652,-1979955575,1586296902,1275495418,1048773130,1963985478,-129594611,1979336203,148027412,2122516971,158662908,-1995908680,1586296902,-129594374,-1980082549,1451881030,972434420,1946832950,1477348124,-1878070518,-893244,-2144931258,359923775,2127444806,-1863455984,-228670394,653412095,1962950528,1581157363,-2080494838,674366,-396949643,-998047458,1996445186]},{"sector":4,"data":[-126418950,-2097057816,1048774340,1946159690,65558279,46433025,-443850914,-1957313699,82609132,-1995813727,2122579526,108291844,1191476867,28312693,-1070988565,-2080618872,675902,113706613,395864,16547456,1048776052,1962936920,1476839174,-16776950,-16104394,-16099274,922682486,1996425820,-199819266,180650760,16547456,1048777332,1962936894,1547108107,-166265078,46433032,171851395,-2095942656,677950,922684277,385813084,-998045446,1275495170,113707018,2656,185223329,1946832390,-25755885,150738687,184730755,-1207601984,48955393,-397361109,-443875064,-1957313699,1048794860,1962936918,1075743535,38797066,1183452792,-13137148,704940039,-1878266908,74907475,-2080935960,1967129796,1443299079,-1878660342,173278975,-1866244770,-2081649835,1448542956,173424259,-1958120192,-167050122,367739518,171980543,174208767,-2080950296,1967129796,1443299076,1321634570,377405451,171974283,2013417471,174235867,134168459,-467008120,1048829163,1962936918,71731975,173278721,-443850914,-1957313699,49054700,1988843095,1446937352,1349845002,922688747,1589905984,126494212,-639086440,79987702,-16485056,-16099834,-963967930,1958742862,1075743517,38797066,1589957752,126494212,171974283,134168459,-467008120,1048826603,1962936918,138840839,173278721,-443850914,-1957313699,183272428,915101271,-1070921124,-1979955575,1048836678,1966082658,1342585112,957510666]},{"sector":5,"data":[1946829318,1510357254,-955878134,537551366,1581157120,-471312886,46433263,737691273,75377656,172637827,-2145880832,326446396,174210691,-1408469712,-1645719400,46433278,-2080878849,805986878,-16053388,1048774526,1946159690,75399961,-16354304,1609103942,1614709504,108265482,-386119937,1048772714,1962936906,-1612163290,46433278,294531,2122516852,57999610,-2097138200,679998,2122516852,57999612,-16761368,1444870262,-2080451608,1048774340,1946159690,1644611341,1459625994,-2080480792,1599996612,-1017256565,172506755,-1207602176,65732651,1342185656,-2080503832,-1866267964,1342189752,-2080506904,1048773316,1963985504,1144947479,108265482,-352298824,2025361412,-571977728,46433277,-1957326653,82609132,1988843095,-28915962,1015021569,-1961921238,-1962259426,1275495231,-347733494,1015058504,-955878099,-442,-2130760890,897331260,2134457472,1346255152,-2146732790,108343356,174196423,76152880,-774927464,65130977,65130959,820609992,-2142832245,92024892,2117680256,-28931103,-125046793,-1996202357,1590070079,1575324511,-1957326653,49054700,148946518,-352039286,-2142859262,175374396,-160101318,-352321096,-1070886909,1575324510,-823553853,-93044480,-2080448128,-227283207,-66947189,-1459713107,1212314625,359907643,-268185461,1946265773,96600884,-141885438,-335657847,1962839014,-1980169460,-1054081460,-351958712,-17235195,-963903924,-779298164,91541819,-367096794]},{"sector":6,"data":[41912584,113649347,1023543536,628424702,-268173685,1946265773,1224641522,-1116487365,-268185461,1946265773,96601058,-141885438,-335657847,138906598,74760203,351000718,-267452890,-1945013240,1003982040,637891783,149298830,-1125435509,856061835,7006400,225756731,1077936420,6219928,1308495220,1894654,1318454644,-1936069810,1003588824,637826241,-1962349917,38242567,-1013333965,-28996783,57934248,1095354411,2147465793,-334087386,-788236792,-1946847766,1925579713,1925317397,601028365,-389665854,141885452,-355347721,-1070340747,1364378457,1946164712,-24422632,-234622837,-16890681,108497407,-684992885,-27948726,-1017489064,-768389037,1347572254,1342177720,-1444405498,147096322,536869507,41179994,12833291,1475119957,-1962467754,652413006,2123094411,871860996,-139529536,-1949629479,108432382,1149937395,986264575,74972997,1229522036,-1047801353,-443850914,-1957313699,-390056980,922741606,1996425092,108461832,-402360577,-443874502,-796146851,116524547,104412530,628295404,1342181125,61987025,-645076781,123936395,-1056715989,-661929074,567102132,605057624,-324843280,780899590,369166066,-1950152974,-376313401,-2081649835,-1957297428,-1205009338,-754732793,-775386120,-775879712,139986400,-1191295351,-397409792,-997987506,73304834,184829833,-2146470720,-1962408369,1204289118,-352190462,1586204695,105873412,-28931324,71797056,-939630965,66119,-1962647925]},{"sector":7,"data":[71601139,1204225929,1577058306,-1017256565,-2081649835,1448543468,721712779,105155327,37487396,1156990581,427100166,-343810421,61933496,-1014236205,-670833711,-2013862959,1946224728,721718055,1183384644,2126515196,1962889243,121932292,568873112,113541888,1962690107,105676807,-16608,-1996209013,38061828,-947191808,-443850914,-1957313699,149717996,990142091,1913088542,151042055,-241309191,124553206,-1207208928,-919387646,567136651,-2013861006,1954547564,106335086,-1070397666,-1979824503,1476197446,-1946514602,-127497742,-485994869,-234180524,-397773394,-1472396564,-2092403200,-594869524,1023541434,57868840,721453242,-1949004830,-1962469638,1017907278,990671882,-1441172229,602469602,-1335760128,1979398925,1632259,-16076630,-471073722,-352317976,-346071326,860220245,-401479232,-1957604528,-473289777,73304848,567099572,1174474098,1958743038,1482381574,-2084308341,74647748,518719924,124553206,-1962183616,1065354846,-133991142,-1191637781,116071424,738084491,1720450118,-379625736,1317793983,1976109832,-373191931,1452011699,-851397626,-1274776799,199551753,-153061952,1074228359,-628422028,1964654464,-806619133,469809401,-1957312021,106387180,556675,-222349195,106334982,1208239755,1407715189,-349736448,1110870856,292833287,225769275,-1996340085,-397013946,1935540282,80118576,121831041,-771029901,-4716939,501979647,-1014769013,-1310994161,-1259613437,1914817864]},{"sector":8,"data":[76124905,-1996335991,856113718,1583286208,-1017256565,-1962127733,38550007,-964490124,1123975428,-101550841,-628408341,963779587,-1047604341,108394299,116137529,-1014815117,-774123249,-773074453,1979137003,-1579613431,-668268701,1253359758,225583565,74839867,116135561,-1962637422,-1957313583,-1286121748,25487616,-1947432107,507184222,293406570,2080439171,1820849676,91504647,-352321096,-1950338302,12803557,-1192457387,333971674,-1923721240,-1946212218,175570936,-16222465,1996424822,27322372,-1995914109,1090485382,1048785525,1963067229,106859307,-2037905526,792526630,1547443828,-1073079692,2139096692,276052481,1342768312,-2081870360,-259325244,141948427,-8616309,-1879012375,1342209976,-2142859946,13166672,-1962490749,-12138768,-1878201600,1950039168,-2012968437,-2142812667,-260767684,1325401542,-8733047,-14121331,-1634994037,1065418618,-2146405284,192163647,1342769592,-401151913,-16464765,-396949898,-997988340,175570692,1460172543,-402360577,-998047498,2089191688,-2005581569,123551363,-2138999550,57999420,-1946191383,-1073002810,1877581173,1600033023,-1017256565,-2081649835,1448543468,721926334,-1877611521,-2096741130,-397014156,-997983126,24395778,147227463,147863097,-947132813,-443850914,-1587952803,-1002764396,-1003813261,-503326473,-85213133,1475119957,-1962467754,1988822142,-1948284154,216205390,1958742700,-119363069,-1426866126,1600045963,-1017256565,-1962258805,1451951174]},{"sector":9,"data":[142510854,-66642345,1958742675,184124179,-771027339,766511737,-2082736214,-621346606,865269643,1958742994,-1812859134,-2020412937,1009779923,67270201,-1031034329,-495598837,-1404107384,1149764998,21270015,-227358917,-1956749480,12803557,-1192457387,1407713420,-1957275674,2122516086,276103684,-16091393,-397014922,-998046618,18475270,-1924087765,1358918790,1358579341,1358186125,-16091393,870844534,214205185,-1207470784,-185991169,1555599360,-396996608,-998047502,-1191671036,1448083503,-2097093144,1183384772,1975520252,1979648777,-335639791,-16019443,2117666164,-1962707204,783875198,-396931072,-997988056,1958742788,-92864743,-9140595,1996445264,50784260,-1995914109,-1930823610,-396980224,-997988614,328962,-435361712,-1962752893,1979649016,-193528051,-2082083864,2062090948,213422335,1465274377,-2082049048,-397409084,-997988820,1560725252,-16777209,-2037515658,1464926068,-402360577,-998047056,-129595128,123551363,-1205111550,-1202714351,1464860718,-2097137176,-397409084,-997988812,-92864764,-9140595,1996445520,41871364,-1995914109,-396887994,-997988992,-193528062,-2082113560,1183515332,-1956684040,-1866244635,1475119957,2123040542,-1178586364,-1359806465,1339684673,-49920374,944221938,855929861,-1962742848,-1956643641,12803557,-2081649835,1448547052,1983510059,-1593412346,1183385476,108954374,-1960217600,1183385158,-1877742602,-2081005941,-16583098,-435886025,1073923203,1586229251]},{"sector":10,"data":[4162550,-25098636,-529104897,-1996002655,-1072955834,1586171764,1807712510,91553799,1979600639,-25263119,-1962380288,235273798,-2081422592,1946160766,242679566,-2082095640,50660036,1190134528,-2114685303,1988100094,1560725267,-956299513,168257542,-18432,-1878948631,149698187,149685959,1183514640,984564,1357792905,-2082169368,1183384260,1975520240,-294191327,-2082173464,-125107516,360054539,123537095,113704972,526184,149698185,2123085803,-331970064,140413704,-1980072311,96963391,-266076145,-1946532215,-125105570,2122530697,762576902,-1996077429,502003270,-1957642197,939521630,-457250729,1342489731,-2082005016,-1958738748,-163150856,-161576190,1962950531,-25263141,725513216,381178048,-396931063,-997989228,-169324540,79987686,1183512715,1191545086,1317795371,1824293118,108265479,124552330,-5242133,1179059592,1317661666,378622,378439,243172167,-971869184,-968425211,-12124155,-396947850,-997989304,-1946801404,-1958278018,926483550,2000254068,-972721150,1179066373,33932171,-163149568,1979919595,1354771442,-631157,367548215,79987684,-428414896,-1962621821,-163150856,-161576190,1946173315,537249285,1586185799,4162550,939469940,-2082190872,1183384260,1036387314,-1166671747,123537095,113704967,657256,-16228725,-483203017,-385694589,96927363,207522573,126404235,1593067147,1575324511,37059,0,0,-1957363712,75400172]},{"sector":11,"data":[-2095877119,1946158206,1560725261,-1207953913,-369557505,1465313819,1586223244,-754667254,-1547500565,1183516964,153527048,153624204,915080990,-1085929178,28838194,-1205744343,1119824129,1428278537,1048583686,2097350501,378285601,-1993443854,-1082789850,898301998,-197752530,41257845,-164198098,512503413,616265208,75399945,-1341754368,-339135740,-121622014,-854870960,113727521,67468,-1274653045,1344392523,817123487,54272461,561863512,-233402834,646655605,784299504,512634368,-1959889416,-1988757962,-1959918987,-1988758474,529767989,126617287,1560739840,74604127,567102900,15292137,157421195,-503381277,-939524168,369581318,-381556480,-1325308160,3801103,9437285,15073467,20709649,-326413056,1448235347,369499735,124762197,1740560526,571649,639008452,-12778101,1024685311,594804737,83357835,460685312,-385874248,-964493018,83314946,192184320,-503134589,309493,-1962864151,819460,2147427712,-1006631261,-1993992578,-852511691,169773345,201755648,235324928,378208512,448004102,2126782925,93005322,637534371,1479,1962934333,13560067,-1961208123,12063822,1931595086,12642563,-1912115272,239504344,-1006630749,1049170046,109838338,780337156,1931673608,571398,-1962893847,-1006631370,-1962933698,-1993992124,1166616069,1166616068,373590792,38111526,105220390,172329254,639255691,638338441,-1961867895,-1993991100,-1993994683,-148499899]},{"sector":12,"data":[33493061,-2128212876,-33550235,272990502,-1070398976,638928010,-1189853815,12255244,507546112,125042748,390170662,653451843,1524166,-2010725493,-83683771,147081,263820,638222020,251594239,242483200,-850460488,-1006013919,-385875394,-1070858408,124762192,1048631438,1946157070,235324941,382009344,448004106,1566056909,1595868951,1532582494,-899816053,-1957363688,1381061612,102651734,1586189590,207013136,-1274392949,1914817856,108446983,-1070922615,520558429,1499094623,1575324507,1426066634,1364454539,509040210,-984279546,1102318166,41034189,392020011,1583292167,-1956947622,147480037,-326413056,1448235347,369499735,242664789,3998859,-1962642943,-1157648168,-628226001,-1275067206,1914817848,310837,-1962246460,1166616068,189041412,256215334,638403723,-1978579575,-2010771132,1317737797,585728786,2126776946,583500554,-1426915152,392020011,1583292167,-1956947622,248143333,-326413056,1448235347,369499735,124762197,1988876430,33456902,1740505973,325377,-1207536256,132841478,-14384752,1572877183,1595868951,1532582494,-899816053,-1957363710,1381061612,102651734,-326937322,172422914,729055232,-1977846075,1918974980,1937456134,752878594,1007841857,839807771,-146784028,410437080,-873921399,243712,-989804567,12065878,1931595075,146696,-1243004044,-28407552,-954960187,-1962934012,52759622,212224,20777588,1024160768,846462978,-385872712]},{"sector":13,"data":[1992622224,313108,475448576,-1274394997,1914817853,410436989,1693123721,205949840,1023414309,108265488,-352318280,1992659045,33867540,475448576,-1274130805,1914817852,410436945,1455686793,-1950249968,1107474648,1047667149,-1961331003,341230876,1085589803,779231693,-1961331003,-851528676,-987532767,1183521878,-851594230,-988319199,76093558,-620504949,-1912063560,-28931112,821129,-997998549,118971650,1516134175,-443851943,1755741,1408011093,1465274961,1427506718,-1912066120,442072,-1274128757,1914817863,-1897952205,442311,-1342144327,-1359807488,721453242,108971217,990743334,-1207536694,283836424,650808208,2126779785,441866,-1070881549,520558429,1499094623,1575324507,2762,1408011093,1465274961,1427506718,567089588,67543598,175555992,-1207662272,-661780433,10632845,45635358,-1070903296,160930384,1048577926,1946157218,32241923,-1610168328,-956301312,40454,517053440,-778239840,-956260322,33588742,179968,378212020,567083142,567089588,104588338,57933958,-117314568,10395089,8783615,8797827,-1076265967,1048772608,2115633286,772715727,67507850,112271821,10366675,-1962893663,234922014,108447007,1552483465,1572877058,1595868951,1532582494,-899816053,-1957363704,1381061612,102651734,1455772950,1124120590,158474701,-1995802939,-339727604,178179,520558429,1499094623,1575324507,1426066634,1364454539,509040210,-984279546]},{"sector":14,"data":[1317735510,1124186122,74588621,15450163,520558429,1499094623,1575324507,1426066122,1364454539,509040210,106239494,-1945348412,1183516609,274631434,567100084,1992624754,-1996191482,-1070923180,520558429,1499094623,1575324507,1426066634,1364454539,509040210,-1957358074,-1014299042,125425911,-851574600,721580577,118971840,1516134175,-443851943,182877,1408011093,1465274961,1427506718,1241929355,567086772,392020011,1583292167,-1956947622,46816741,-326413056,1448235347,369499735,240552789,567097012,1979711293,5748742,1351643883,1342713784,-1507948257,-1542027008,-1441888000,-1465690112,205949696,108265788,-352299080,1183551567,1195270,1874331261,-1874728192,721977028,92874432,38111526,721733507,1166616256,11051266,-2096789210,-1532951353,92874240,-1993949141,-1499397563,1166616064,650128132,-1593424503,-1993998166,-1070921659,520558429,1499094623,1575324507,1426066122,1364454539,509040210,-1202383354,-661780625,-2096073077,57999870,-150902850,1971322884,440326,-1962871831,-1670860,104237439,-852511744,169773345,201755648,235324928,378208512,448004102,2126782925,93005318,637534371,1479,1962934333,12118275,-1559607669,2126774280,37652748,67537920,1325447168,57876941,-2097111063,587204654,146278003,9627904,407179,147140,639124619,-1993996919,-1993997243,1149962309,1166616086,1166616066,1166616070,440699658,205883686,272992550]},{"sector":15,"data":[639386763,638469513,638731657,-15710729,638350337,1074561,1166092030,855769104,356813504,340101414,-1157624647,1082785792,1946172446,1099441671,-220052713,390186534,650349312,51791240,37652987,67537920,108971008,-16384218,1946157070,-10884861,-1202667477,-661780625,933504,-972196864,3590,661189,567089844,118971736,1516134175,-443851943,838237,126224441,126224442,1408011093,1465274961,1427506718,1023952523,108265474,-352321096,1183551548,81158,71109492,-1207536640,703266818,891533456,1992630733,-1944286962,1455751748,378088978,-1943140465,-1945661154,-1160081718,599263227,723635493,118971840,1516134175,-443851943,1100381,1448543774,1397838421,138983504,-1064380274,-1893794002,1499158535,1600019802,516890375,1431721734,1347637586,-1912059720,784371416,126820095,1515805528,123690589,-808464609,1408011093,1465274961,1427506718,-1912059976,105286616,1946157117,81195,28837492,-1873810688,16000,855995649,-1874596928,1734,382021121,616040636,857853221,-1875907648,16000,855995648,-1876694080,1734,891598848,-1993465395,772324382,146671244,-628176244,-1207385926,567092516,392020019,1583292167,-1956947622,46816741,0,-8152064,772502786,146546431,141886012,-1336400947,-1878791421,1439629744,1364454539,509040210,-1202383354,-661780409,-852155208,512306721,-1943140073,-1945560826,-1160081718,616040731]},{"sector":16,"data":[857853221,118971840,1516134175,-443851943,182877,0,520040092,37488919,600638069,65487,134217728,-1308018432,-1342174401,-1342170880,1408011093,1465274961,1427506718,772687499,-1274466398,-1172369901,567085352,-1275066183,139889468,520779519,141697485,1052039307,-1070915123,520558429,1499094623,1575324507,1426066122,1364454539,509040210,-1957358074,3999302,-1956285184,3999814,1029536768,1065287683,298702987,15763,246482559,1307306963,2130706749,-754667254,-754077213,1027533803,209649666,-472708943,-338489679,770425854,2130707261,-754011894,-753946141,1025436651,343146500,2130707773,12191247,650284784,134217376,99351596,-352320840,-977261817,478677622,520558429,1499094623,1575324507,1426065610,1364454539,509040210,-984279546,76221046,-1962510651,1017908814,1007252065,67466107,-12285728,392032482,1583292167,-1956947622,181034469,-326413056,1448235347,369499735,1660991573,292692429,-1962508604,76156494,1174767654,871883335,118971840,1516134175,-443851943,707165,-1308540608,-1342138624,-1308622572,-1342119168,-1308622591,-1342171392,1377850189,1412263541,543518057,1919052108,544830049,1866670125,1769109872,544499815,539583272,943208753,1766662188,1936683619,544499311,1886547779,1347158033,1275081044,3298384,5132880,5132099,5002574,5788993,827609164,1347158074,3813972,978211408,1313817344,1431175226,1090533964]},{"sector":17,"data":[1933203541,184594944,150974464,234926080,110592,0,256,-65281,11665422,1118830606,1275086592,1409306624,1543526400,1744855552,1912630528,536901376,788532480,1294925907,4271872,788546607,1278148692,4599552,4474927,822099759,822095926,4927542,1261450801,942735426,942735408,822102832,1112223800,808596224,808596224,842203211,4344624,3159603,1261450803,808858368,922763851,922759218,4927538,1261449783,842072130,822095920,1261449266,808595712,4344624,3288625,1295134257,841888000,822100557,3159092,808727601,875626571,1112223796,875442432,774963252,5059636,875834929,838877773,3160120,808990770,942800971,1112223800,942551552,775028792,5060664,943205938,1543520845,1297239878,1127109697,1543523663,1297239878,1127109697,1090538831,1330011194,1413565778,1297040174,1413566464,774504520,774504490,774504490,1663369258,7546170,707668572,979576064,1128350300,777016651,4673356,624583461,1663369331,707668538,1551049984,620786469,7546227,1112080476,1330201165,1297040174,1296189696,777211716,5066563,1395543881,1291866969,1397703763,1398362926,1297040128,1145979213,1297040174,1145914112,1163412782,1551049984,620786469,1113340515,1430995777,774528080,1663369258,1094868026,1347767107,979576064,1128350300,1230001483,1077947972,1663369280,1094868026,1347767107,1128350300,1230001483,1077947972]}],[{"sector":1,"data":[1663369280,1329814586,1330795598,2764364,1547330341,1262698818,1329811541,1330795598,2764364,624583461,1663369331,790626362,1094859350,1347767107,1110384640,1430995777,1445929040,1128350266,5264715,1297239878,620778561,1094859363,1347767107,7546158,1965371440,1965371392,7677184,1547330341,1262698818,623792213,1663369331,1094868026,1347767107,1128350300,777016651,620786469,1130117731,1381256783,623791183,1663369331,1094868026,1347767107,1313817436,1280266836,7546158,1547330341,1262698818,623792213,1663369331,1094868026,1347767107,1128350300,777016651,620786469,1130117731,1381256783,623791183,1663369331,1094868026,1347767107,1313817436,1280266836,7546158,1547330341,2764330,1547330341,1262698818,710692949,620767790,626801251,1663369331,1094868026,1347767107,7546204,624583461,1663369331,7546170,626815781,1931804787,218133285,544417034,7546144,1547330341,1414418243,776752978,620786469,1113340515,1430995777,1931816528,979576064,1128350300,1548768587,1414418243,776752978,620786469,1113340515,1430995777,1094868048,1347767107,7546158,1262698818,538988629,979576064,620786469,1113340515,1430995777,1931816528,979576064,1313817436,1280266836,7546158,1280659267,1330520132,1279336532,1094930252,1394623828,1162692421,676942,1663399205,1966223397,807756581,620786994,627254645,628437552,875570531,1965359221,807756581,1663399218]},{"sector":2,"data":[1966354469,875570432,627254645,628437552,842016099,1931804789,1931812896,-128173568,-1627344381,-20480,11665410,-5242840,0,255,2086492928,1026244156,1253947,917682,-80,-1308621569,-1342175232,-1,11665412,-5242872,11534344,-16777216,16777215,0,168624128,0,402655744,1092923904,1397600256,1397703712,1919243808,1852795251,808334624,1126703152,1886339881,1734963833,824210536,758200377,825833777,1667845408,1869836146,1126200422,544240239,1701013836,1684370286,1952533792,1634300517,539828332,1886351952,2037674597,543584032,1919117645,1718580079,1816207476,1769087084,1937008743,1936028192,1702261349,1073750116,1663640360,1668444781,1663988328,825110793,792082464,825177648,2097207,-1492743168,589840390,1936548649,1751347828,157494898,540094001,808400440,925970230,1074179584,1663640360,1886418285,1663988325,825110793,792082464,825177648,-872415177,6,520093696,1207959640,-1308564728,-1342157824,1127941874,1279870559,1313431365,937798,1704114,-2130701136,16875905,11665415,-1968177131,1124616199,11665413,816840713,-1308622313,-1342173440,402784790,202115341,369624844,219348758,1258226194,1241513999,271,0,66048,0,131584,0,230400,0,990118400,2013311488,110592,262656,7602354,671633584,1819047278,1848115241,694971509]},{"sector":3,"data":[539831040,-1308617693,-1342174976,32,-1509949440,-1503812003,-1503812003,93,1342177280,4740161,771752028,7171939,1702389038,1598241536,1162627398,1179535711,-1308609201,-1342175232,139200754,139200770,11665416,-1934622674,1006633073,1397575228,4079175,808866304,168636464,1953701933,543908705,1919252079,2003790950,50334221,808866304,168637232,1852383277,1701274996,1768169586,1701079414,544825888,658736,911343625,221851696,1847602442,1696625775,1735749486,1886593128,543515489,544370534,1769369189,1835954034,225734245,16515082,-16774643,1853190656,1835627565,1919230053,544370546,1375732224,842018870,539822605,1634692198,1735289204,1768910880,1847620718,1814066287,1701077359,658788,911343617,221327408,1847602442,543976565,1852403568,544367988,1769173857,1701670503,168653934,-1308567040,-1342175489,-1,-1,22162,29097984,162203648,1112672492,-1064507253,234885125,303903,787971,244039822,-108331002,-34108593,-1202674445,-883949516,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704,78708751,-789068149,-628299565,74698795,-768878452,-268181293,-947135858,-388771593,-802438516,-1064565645,-522989013,-1030817789,1322289836,1187548077,-31145334,91598908,-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094,-1031072797,-1064385789,-2080863315,292880383]},{"sector":4,"data":[-501415642,16417267,-2129234704,-351272766,1086360796,-276578162,486614544,-339702200,-1950118942,-1962932162,50334262,33948144,1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602,482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,3503216,833688279,819671300,814690492,806367309,801714147,797585324,792932202,784281323,860238710,1066677039,1072185261,1104953471,1401836344,2020955128,2042984708,2059237983,2081717224,2090302595,2125954604,2146533319,-2140831755,-2136440700,1442545991,-1955310155,1462195869,-1918071800,36272,0,0,0,0,0,0,0,1547330341,2764330,1547330341,1262698818,710692949,620767790,626801251,1663369331,1094868026,1347767107,7546204,624583461,1663369331,7546170,626815781,1931804787,218133285,544417034,7546144,1547330341,1414418243,776752978,620786469,1113340515,1430995777,1931816528,979576064,1128350300,1548768587,1414418243,776752978,620786469,1113340515,1430995777,1094868048,1347767107,7546158,1262698818,538988629,979576064,620786469,1113340515,1430995777,1931816528,979576064,1313817436,1280266836,7546158,1280659267,1330520132,1279336532,1094930252,1394623828,1162692421,676942,1663399205,1966223397,807756581,620786994,627254645,628437552,875570531,1965359221,807756581,1663399218]},{"sector":5,"data":[]},{"sector":6,"data":[21518925,32,18284576,82116607,128,62521360,30,1]},{"sector":7,"data":[-1325371392,71434251,-1325334521,186649098,117720576,170983936,729089,459842,168472833,1207962400,16779014,536956688,71434251,553779207,186646789,117723136,86049024,729089,459874,16846849,-754971872,16779020,536937761,105381899,268500999,186646850,117852160,185598208,729089,0,17445890,2848,50331648,536937989,105381899,268500999,186646863,117852160,1326448896,729089,462280,17113345,1006635808,33556228,536939057,105381899,268500999,186646850,117724160,1074790656,729089,459862,20975618,150997792,16779016,805569699,134676491,-1560150009,187696132,118111488,-2146435072,73729,2,65536,1245184,2,16711680,196608,2,16711680,262144,1,16711680,327680,2,16711680,458752,1441793,16711681,524288,1441793,16711681,589824,1,16711682,655360,1,16711682,720896,1,16711682,786432,1,16711682,851968,1,16711682,917504,1441793,16711681,983040,1441793,16711681,1048576,1441793,16711681,1114112,2,16711680,1179648,2,16711680,1310720,3604481,16711682,1376256,11534337,16711681,1441792,2162689,16711682,1507328,1,16711680,1572864,1,16711680,1638400]},{"sector":8,"data":[12255233,16711682,1703936,4325377,16711682,131072,2,16711680,131072,2,16711680,1900544,1,16711680,1966080,1,16711680,2031616,1,16711680,2097152,1,16711680,2162688,1,16711680,2228224,1,16711680,2293760,1,16711680,2359296,1,16711680,2424832,1,16711680,2490368,1,16711680,2555904,1,16711680,2621440,1,16711680,2686976,1,16711680,2752512,5046273,16711681,2818048,5767169,16711681,2883584,1,16711680,2949120,1441793,16711681,3014656,1441793,16711681,3080192,6488065,16711683,3145728,1441793,16711681,3211264,1441793,16711681,3473408,15138818,131073,3538944,2,16711680,3604480,2,16711680,3670016,2,16711680,0,2,65536,0,15138818,131073,3801088,10092545,16711682,3866624,1,16711680,3932160,1,16711680,3997696,3604481,16711681,4063232,9371649,16711681,4128768,1,16711680,4194304,8650753,16711681,4259840,1,16711680,4587520,1441793,16711681,4653056,13697025,16711682,4718592,2,16711680,4784128,2,16711680]},{"sector":9,"data":[4849664,2,16711680,4915200,2,16711680,19660800,1,16711680,20054016,1,16711680,3866624,2,939458560,318812676,1092661248,-1308622034,-1342171904,-1308622546,-1342173952,-1,11665412,-5242872,83886079,134263296,150974464,268480512,-20480,65535,0,658688,0,1310730,4269234,542330288,542330692,1936876886,544108393,808463925,692267040,2037411651,1751607666,959520884,825045304,540096825,1919117645,1718580079,1866670196,1277194354,1852138345,543450483,1702125901,1818323314,1344285984,1701867378,544830578,1293969007,1869767529,1952870259,1819033888,1734963744,544437352,1702061426,1684371058,-1308592096,-1342175232,1262768971,410440,1376434,66224,11403442,98480,26476722,1547321776,11665411,548405300,11534355,17312256,137509633,3866881,17315841,2113,538625,196864,1393058816,8,139722752,788727891,1177485398,876556032,-1325354496,16756736,1526726656,1044151389,574307627,11665422,-5241889,0,134219776,188723712,419475456,16756736,0,524318,737202,1704112,1279870640,808464453,1263026992,11665419,800063547,774766684,771763712,548536329,783286282,-1308622290,-1342174944,-1342165760,268374008,4087,1549860864,11665420,263192643,11665409,548405265,1766203424,1629513068]},{"sector":10,"data":[1668246636,1869182049,1635000430,543517794,476340578,151040512,1397796864,-402238895,-504889140,-2012333312,-1994162683,-1962572274,-402290674,376569889,235127180,-1047657078,92671627,92802603,92804611,115922923,1499072256,1354979419,1448235347,503731543,132062857,512344972,243861473,378079197,-642054183,-18169,526001613,1583308039,1482381658,1364414659,1642595922,-2012333312,-1994162683,-1962572274,-402290674,376569889,235127180,-1047657078,92671627,92802603,92804611,115922923,1499072256,1354979419,1465012563,503731542,132062857,512344972,243861473,378079197,-4651047,-652308993,1512492295,1583154975,1532582495,1364247384,-1144812718,-768409584,-1014172681,-1014048765,1499126411,1397801816,-4697519,320769023,-137219319,92840947,-1157033055,-768409584,653784055,-1969027704,1532582405,-939998376,514822,-18683904,-788331149,-1006707736,11665702,1353711626,1460032083,-1047606989,783875891,-855592430,1845922863,1816037636,305051652,801964722,74843788,74727049,-1307431240,-1943024380,-1996192250,-1207663554,112333358,109850573,1049166954,-504888216,1711705107,1681819908,-2113500156,-2143385340,334489604,75105932,74989193,-1307431240,-1943024376,-1996190202,-956003266,218409734,-200882678,113714180,1200,78776007,870842378,-1874949876,255256580,76824201,-1995351576,-402352066,1049170787,434635932,3074048,1358971368,1912623336,123689224]},{"sector":11,"data":[-346530982,214205188,1448133625,1660991518,119415245,-1995935201,-1945852874,1577362950,12108632,47940,567136819,-2147359104,28836302,-1021194940,-1153171272,-768409599,-830463539,1140963329,-1262280243,1025625392,57999365,1025043448,91422722,-335544389,178947,-1191181896,11665408,-1007026250,1431766608,1912608232,-98290,100955384,235072287,1576504095,-1017641121,-164408490,-25114317,-1962379777,-1962635076,-165286945,141820614,74759364,418104204,1912607549,2571533,-1128003465,-1014233984,-1128003861,-1014234012,1979710339,-98282,-336002187,78684940,-1107296328,-164429823,-2096305160,57934075,-2097130264,1928856774,1976109830,-1667241214,1963064960,1364546089,-1202694394,801965312,1968766780,-1193768183,801965314,1945698795,1493655301,-998045973,845830,32201309,-68677937,-1017226241,-4632489,-222285057,1238497198,-2084348072,494207483,76299907,1024881919,192282623,78684496,76291839,-16454824,-352023522,-2134297830,108331006,55413286,942541291,772044085,-2096935542,1945699527,-921962451,-25159308,637891839,65733947,1963277102,1225386754,-947714700,-102503676,-25162638,41285887,52823822,108135037,-1977160398,113657613,-1023408982,1431393104,-1957558697,-1474393623,-1388935164,-20649980,477415691,91614475,-352311576,28370947,-396752782,1594294533,-998046485,82573574,-111517945,1499268722,82532443,-116865917,1381191875,78126731]},{"sector":12,"data":[1979710339,2942981,2011694059,-1274055936,47961,-466476595,-116996989,-75296533,990606591,-402164543,-998047568,57866502,-1017619622,-2095118818,460653049,-1977220428,522308885,-1310145910,520494592,-1977219213,567083349,-1274024968,1959332610,361375241,1229398477,536408949,105928643,519736147,-1327920377,-1359807462,-651492491,1540066123,-1017161721,-921976781,102649716,-1958693857,33129431,567093365,-1977200609,5957637,520494680,-1258813837,567099968,1031808668,-1962773222,-821957695,-268274,1364531947,-1946179864,567106025,199950963,125093947,1979246651,1572965122,666419999,310016,-2134703691,292880382,1971373814,-1928913396,-1190876354,15204354,1460061183,77872836,393543435,4031270,638612728,124912954,21314086,1207501175,1609165639,110084871,-617413458,922194579,-141359950,-2096844234,91621882,-348667264,818053123,-1073004206,-620034955,-108840588,-2146601725,1965820540,-1154023675,585842948,1963391363,175931405,-16419540,1090829110,-108850965,-2146732791,1965820540,-1154023675,865288452,866642898,-4181038,-1023103434,-921972173,632562036,942014640,638219557,1946248504,1975794180,92939790,1946113000,1111967489,1457747273,-317994361,-2092092556,307262,1149905781,640680966,1963017530,1008659202,184841520,50623698,-2132284620,-16470722,1111623797,1330596169,-4586517,-114599937,1610484456,-385649831,-1957625716,108822730,185431040]},{"sector":13,"data":[1225159881,-347650231,283860481,58050827,-2096501922,41287673,-16004813,1465214068,-919383802,78659203,-163875584,1963919172,41731080,-352232728,121959976,-166956019,1947076420,121959942,-1006078708,1760035452,-166794495,1963657028,32958469,-1243085845,5433346,552076267,1493660160,1583177479,-998046485,1048836362,1962935472,-385650171,113770246,1200,-1580059709,113706160,656562,1493075944,78940040,1090224963,-790101131,1976172032,168671470,78940041,-1058520253,-617364736,425088,-2016997003,757073076,-2017049789,1126171828,1560323816,-768353485,78253704,973685898,706639553,-152007999,1954547524,172263956,78940040,1090224963,2095580021,1976499712,142377196,940405760,141756492,-1979167702,139234001,611633419,252134646,1156975733,108269575,1191545382,-2007498261,1124381831,1967192963,4319235,-596260354,-2147007242,-167110539,1149899892,-1266186230,-75283708,-402426560,-822214621,1157033077,141889287,268911862,216728180,141873674,78513807,-126498050,1426064104,1460031939,-880081122,1049484083,1961362612,1594192636,82532615,-116996989,1156996547,309669895,1342540326,-44373951,-1977219469,-128974523,-1977217557,1958742533,-348043516,1442393077,-768385597,113754163,1049778,1157028659,611655687,-167409114,1963788100,1954588685,2133082883,78776007,1156972554,108334599,78776007,1424687114,268911862,-1960434059,121959941,-166759155]},{"sector":14,"data":[74744004,2145681475,78776007,1156972554,108334599,78776007,686489610,637897510,-167619189,1963788100,-2134444529,-2143091596,113737702,656562,235357430,113706613,656562,201119720,855995611,1378726610,-950156459,168079878,7596032,-1070345677,78921347,-400657152,-1930952579,-1086914816,-1070382844,-402307958,922681471,-1975450433,1961362500,-1270971648,510984452,-402630424,922681447,859899071,71600832,-16753944,1090830134,-402307958,1048772687,1963066548,88377884,-16760088,1090830134,-402373494,922681399,-398392129,753401885,-1262267136,-1929334728,-855329770,-955550943,308230,-1090075136,-1950143228,1156973124,141889543,1979736893,6535171,-1274638397,-1441888252,-65345532,-1441908151,-1207601916,1095761968,-1271464127,-950156540,168079878,8054784,17253622,1048583284,1962935493,38046229,75238460,108926780,1095786928,1890583787,-1070382768,1157026355,192159751,-402307958,922681445,-163511107,1965033284,121959942,-1978960880,1323828292,-1053360384,1149911300,4450307,79771391,38046273,17253622,1048580980,1962935493,2081242124,1007430658,-1342016256,-75044852,951370581,378339504,567084212,113709171,66757,79759046,-1123629510,-1883034108,-2012957690,-402347506,977927004,1963239950,3192837,-12500656,-1023101898,436209151,6815745,8126466,9371651,11468804,13369349,15269895,16711688,18022409,19595274,21102603]},{"sector":15,"data":[22544396,24313869,26673166,28180495,29360144,30015505,31719442,34209811,36503572,38076716,40960301,43712814,47644975,51970352,54722865,59769138,1668172055,1701999215,1142977635,1981829967,1769173605,168652399,540091670,1701997665,544826465,1953721961,1701604449,587861348,1986948931,544502373,1953722220,1634231072,544435817,1713401716,1936026729,794372128,541010254,1701998165,1702260579,1818386802,1919230053,544370546,1679847017,1667592809,2037542772,1852785440,1953654134,1919509536,1869898597,1948285298,1768300655,673211756,692989785,824514879,1954112032,1948283749,1818326127,1936286752,1886593131,392520545,1646276901,1936028793,544106784,543449442,1952671091,460550767,1646276901,1936028793,544106784,1746940453,1701078121,1768300654,443770220,1646276901,1936028793,544106784,1679831589,1667592809,1769107316,622424933,2036473905,544433524,622882409,1937055794,1713402469,1936026729,540091678,1702132066,1852383347,540157216,1868785010,1701995894,1768300644,661874028,1646276901,1936028793,1970239264,1646290028,1852383333,540157216,1868785010,1701995894,1768300644,443770220,1646276901,1936028793,1635148064,1650551913,1864394092,1768169582,622160755,1869881393,543973748,1702132066,1701650547,2037542765,540091661,1702132066,1919295603,1125999973,1869508193,1212358772,1263748171,1847615776,1870099557,1679846258,1702259058,1851867945]},{"sector":16,"data":[544501614,1145784387,1629506387,1112888096,1684362323,544370464,1230197569,1684360775,1769104416,1344693622,1633841010,543517794,762212206,542330692,1802725732,1866664461,1852404846,673211765,692989785,1766071103,1696623475,1919906418,1634038304,1735289188,1413563936,221324576,1749233418,1936417637,1679843616,543912809,543452769,1886611812,1937334636,1931501856,1970561396,1701978227,1953656688,218762542,1212361994,1263748171,1919179552,979727977,1885035357,1567126625,1701603686,1701667182,794501213,1528847686,224220719,1057623306,1683693600,1702259058,1885035834,1567126625,1884495904,1718182757,544433513,543516788,1986622052,1851859045,1768169572,1952671090,544830063,1663070068,1801676136,1158286638,1768300576,1634624876,197879149,532658,1701860272,1768319331,1948283749,1713399144,677735529,1948264819,1751326831,543908709,544370534,1734439526,1953391981,1869182049,168636014,790634541,-1308608442,-1342173664,1702390086,1919230067,1936879474,544108320,543516788,1802725732,1342836014,1445928992,548536352,1152385038,1819308905,544438625,543516788,1819047270,1952542752,1851859048,1634607204,1864394093,1986338918,544830053,1701603686,544108320,543516788,1802725732,218762542,2035563274,1126196592,1396984648,1769414731,1970235508,1634738292,1701667186,1936876916,544175136,1667590243,1752440939,1969430629,1852142194,1768169588,221145971,-1928917494,-2129126082]},{"sector":17,"data":[-1023132991,318768639,4980757,5570582,7733271,9895960,14942233,16973850,19267586,20512797,23134238,25952287,27721760,28639265,31850530,33882147,36831268,39321637,40566822,42074151,43384872,1919501324,1869898597,622885234,824517681,1852785440,1852399988,841293939,1852796448,1852793645,1969711476,544437615,1668246626,1092907883,1931504748,1768121712,1684367718,1818846752,695412837,1701994784,1852793632,1969711476,1349743983,1869771333,1713402738,1684960623,541466668,1634886000,1702126957,1869488242,1886593140,1718182757,224683369,1919894282,1952671090,1936617321,1818851104,1869488236,1700929652,1769109280,1852142708,544175136,1802725732,538976290,1668248144,1769173861,1663068014,1869508193,1868767348,1852404846,622880117,640820529,1176510496,543517801,1869376609,1769234787,1948282479,1701601889,1684103712,1919164460,543520361,622211365,1818304561,1684104562,1852383353,1818326131,224683372,538979082,1145586464,773870153,1634082862,1684368489,1920213036,1735289209,1953259808,1634628197,1830839668,1869116517,538979940,1935755296,1986947360,1684630625,1819042080,1952539503,544108393,1953066613,1768300588,1948280172,1668183410,1684370529,538976286,1635151433,543451500,761427315,1701996900,1919906915,1852121209,293171828,1142956064,544433519,544501614,1936291941,538981492,1919501856,1629516915,1668246636,1869182049,1853169774]}],[{"sector":1,"data":[1763734633,1852383347,1768710518,1696607332,2037544046,1970435104,1952539502,539124837,1816207392,1633906540,1852795252,1920099616,539783791,1702521203,1784963360,1702130549,538980452,1851867936,544501614,1868785010,544367990,1696607790,2037544046,1919950892,1936024431,1735289203,1852793632,1970170228,539583589,1766072352,1952671090,544830063,1948283753,1818326127,1696627052,2037674093,1869488172,1864379936,774774898,538976278,1701996868,1919906915,1936269433,1768909344,442787182,1126178848,1869508193,1701978228,1702260579,774774898,1953391904,538409330,1850023968,544830068,544432488,1633820769,1768693860,538733422,1850023968,544830068,544432488,1633820769,1952522340,1651077748,241529973,1547603207,96567580,100647683,2691072,2752576,2818132,2883705,2949296,3014866,3080424,3145991,3211549,3473723,3539288,3604838,3670400,3801485,3867034,3932614,538378693,1850023968,544830068,544432488,1633820769,1769152612,539518330,1934172192,1869767456,1814066035,1701539433,1852776548,1819042080,1952539503,544108393,1953066613,976299296,1126178848,1869508193,1212358772,542263620,622882676,168635441,1701147252,1935765536,1752440948,1881174889,1953393007,1953459744,1869770784,1936942435,539321445,1920213024,1881171301,544502625,1936287860,1768910880,1847620718,1881175151,1701015410,1684370291,540091673,1702132066,1768169587]},{"sector":2,"data":[1931504499,1701011824,1701996064,623010917,2036473905,544433524,1802725732,1634759456,1998611811,1684829551,543515168,1701147238,1867913572,1701672300,540091680,1634038371,543450484,622866981,554306867,1948266789,1818326127,1819042080,1952539503,544108393,1953066613,1852776563,1936286752,824516715,1954112032,1763734373,1634017390,1629513827,1668246636,1869182049,1853169774,1225880681,1818326638,1881171049,1835102817,1919251557,1986939165,1684630625,1769104416,1931502966,1768121712,1633904998,1852795252,1343228429,543716449,544501614,1853189990,269094244,1701603654,1953459744,1970234912,168649838,538976303,1814049061,544502639,1869376609,1769234787,1965059695,1937009006,1970234912,1763730542,841293934,1634231072,779316841,420089090,1126178848,1869508193,1212358772,542263620,1914728308,225734511,-1928917494,-2128648642,-1023269439,285214207,4456509,6094910,6029375,7536704,7602241,13369410,13697091,14090308,14549061,14876742,17104967,18939976,20119625,21233738,22282315,26214476,27525197,538976284,1802725700,1920099616,1998615151,1769236850,1176528750,622875713,824508977,1986939162,1684630625,1920295712,1953391986,1919509536,1869898597,67139954,168636709,538976347,1970499145,1667851878,1953391977,1869574688,1852383341,1869574688,1768169588,1952671090,226062959,538976266,1702260557,1818846752,1713402725,544042866,1953460082]},{"sector":3,"data":[1919509536,1869898597,1629518194,1914725486,1634037861,1212358772,1263748171,540091656,622866981,824510771,741483808,171124000,841298213,874853157,621294885,624043313,624174387,1629499685,1818845558,1701601889,1819042080,1952539503,544108393,1953066613,1852776563,1936286752,1867915115,1701672300,1919243040,543973737,1651340622,1763734117,824516723,221390125,1850283274,1717990771,1701405545,1830843502,1919905125,336203129,1635151433,543451500,1768187245,2037653601,168650096,1769101075,1713399156,1953264993,1920099616,168653423,1263027007,541807428,1663059503,1869508193,1700929652,1852793888,1852383333,1461739808,1868852841,1143960439,1750299503,543976549,1835888451,543452769,1836020304,168653936,539828247,1970499145,1667851878,1953391977,1835355424,7959151,539828253,1701603654,1819042080,1952539503,544108393,1818386804,1633820773,118358116,563101325,34390401,328131,83885825,2017792256,1684956532,1159750757,1919906418,238101792,-1589736185,549552931,328387,83885825,1632636416,543519602,1869771333,824516722,1049429774,-1048370235,508936989,1364414470,-1957210542,506618,93051534,-1962779253,1300956277,141920774,-1962322550,-253228419,1516134381,123231065,1086545183,151040520,-1573998592,1655965051,-1993465395,-1911897826,35032027,378088960,-4519984,734629119,16417233,-1190628592,-489488380,-95692149,-477423858,309755,1346628563]},{"sector":4,"data":[-670840692,-668221300,-850788168,12060193,-1088303790,-1960443764,992872197,1997193478,-1152863220,567148543,-769750738,265939207,505936,119462030,588679768,-852315123,1979661345,840338704,-400617981,-969538186,-16072698,512503491,-1202715237,-661782521,-1990719714,1376098590,325904390,-889300473,567086772,915260158,1202982374,378347981,1001655696,208871885,-402422086,113704702,-1006695744,93920965,906119051,-1979342941,-1057094585,94282294,906839947,1208329123,94479158,1913649213,117319194,-953807399,-133309946,113714943,-61988,-569981146,-1946159347,-1556738233,1334445452,243807752,1468728720,378091014,1468728700,378091019,1468728702,378091025,1468728704,378091017,-1202715262,-661782521,-396884194,158533019,-402397510,-1377237842,512630272,-768408188,567089844,-266957537,-854477812,1962949665,32434179,-1274914328,113512,95953357,96248644,1276118669,-1962417245,15696380,1945647873,5028616,-840360178,-1945203948,2081852165,-2079945211,-1596247291,-922874589,1944692712,1090977296,-939079930,-1157346816,-1511456691,-2079945196,653669125,-130284406,-264499597,-21362060,321579008,652935796,-1174082328,448007408,-1070390835,-1202696112,-661782521,-396884194,-1394075965,340322309,-402389784,1843921536,-1202666745,-661782521,-1084750050,-141883969,104795787,-1605371645,-218296944,225836206,384304522,-352029931,-352130066,96452366,973176192,-947700875]},{"sector":5,"data":[1194781442,727135743,-150113033,50234334,2105542517,24460031,378439,-1274691654,1596050747,208864655,-1174168344,-1813511362,12904707,229771006,-1074295993,597691757,-1991267827,-1341289162,-852904958,3964961,-970587020,1860763397,217102851,-981210485,-853887973,-1173244895,567086445,1500889098,1988870195,58910720,232406587,994452595,1073837303,95829641,1843984267,-1241055485,-1237435643,-352160507,-633455637,1073967885,-1072962837,113647476,1073876401,-1559997789,113706050,1092,1175253182,-1172647448,-1572394,-351095806,301760670,915083125,-1008202355,55228954,-352130584,-1321304051,108265997,-402529606,1048576730,1946160562,233159175,567098292,1364414659,-863310542,-13450357,94248586,-470333368,-763117309,2114323200,13796101,131798665,1532612747,-1561803944,-1913244926,-2096740290,196675782,512630272,-1527577212,1150023219,-33544928,-997791535,638041093,-1962905437,-534437820,-754601727,-1949791512,522526788,-2032039424,1923294944,507808512,-1309147099,-1964453109,507808744,-1324883931,-1964977405,2074289861,113714688,125,50510367,-1006895640,-617411152,220405386,1722878133,134551181,567100596,-625342862,-69146621,-1308366909,-1342174976,1964616936,-1229303266,-70588413,33482842,104939136,-1962445824,-402367978,113639920,-1023408575,232275584,-1995738112,-402367978,-873981562,28361727,229574278,208994364,-401763906,1119492466,-4921342]},{"sector":6,"data":[146362819,648344320,553614720,1095698293,1913190787,540836338,-2147060448,1948254844,-1439780846,-218102855,2105550500,58007807,855042895,-1017533760,1944466664,67025414,-1023311896,-1962856773,-1593129706,-164427069,1424555827,230990081,242532363,230700683,230833803,-402569541,-1197407960,1958742797,-1271493874,-1237415155,22199053,-1593764888,-1073017410,915082868,1049300410,1589317052,16705537,185452705,-1961200448,-1962656714,-2147205570,907070,1991968117,-1157371135,-571997846,231121152,175423499,-13371853,-402572613,-1583284020,-1207555323,-1106892019,-1006228723,-972674291,-939119859,-905565427,871772941,25345023,-402610200,-768409385,244048946,-1633679969,-1142819067,-164429030,-1528234189,94609664,-1143852216,-164429042,-1796669645,94478592,230164011,230557227,230950443,231081515,231212587,231343659,855887547,871773138,7203071,-855603480,4241938,-828120329,-617413113,365806004,-1064561294,130942523,-1070396043,40998,-150978374,131632098,50843297,1096387,-1900289289,3270657,185062049,-1593346624,103483344,280627905,-1142753536,417857946,861127424,-1643214126,-135450107,-1948611615,-402284786,-745861414,71476059,71571081,71710345,71843465,71310985,32035723,-974601472,58374905,-1007042584,11665944,1353711634,-963947949,855640251,-1930168366,-1898445885,-1948069437,1482382074,109971139,-24443516,232341120,-401968128,-1960378411]},{"sector":7,"data":[-335606979,66048287,1032529662,116471,-271511948,-271454255,-410914863,82513919,268429185,1465303815,-1291401722,113639693,-1912533546,-1962572794,-650215170,141819917,654282984,636163465,-33296431,1032529495,116471,-489616012,-489561391,-410787119,-2130384113,200278247,-1993974022,1583286076,109971139,-13433414,-1977156093,281343525,1460060935,109990224,-13433414,94572171,-1426866126,1493534758,-1022927016,152281350,280744499,-1946945792,856001550,-1545472046,-661977714,-850919240,-1558679007,512427396,79234467,1139528448,-850919240,-1559989727,133694906,443910595,-1269607856,-1172189939,263458120,-1073077811,-840432267,-1091179762,196676937,-391843072,-1070395712,-218100807,-1041739094,-1031034097,898325163,-396933305,-1419833669,1537983115,28923994,-49420288,-1912188733,637909510,1195771018,41191740,1476916715,856053443,-1173975306,629810693,292873226,231540355,-820608255,-2144993267,-335998963,92808708,-1017247752,-1173975546,-1091161339,243990530,-1977219679,1975519748,-25565155,1044060276,175443422,231081727,67421734,117377259,-970584632,-498726908,-935427111,58064909,118349544,-683769661,192217357,-402584902,58002703,-1912540951,-1106920954,243990530,-768408159,-1476097498,-402426872,-498663840,-2017446925,-1190279162,1048576746,1962937815,49723654,1393412771,-1643214255,871182853,-1948125230,-1626436646,209840133,-1996209501,-1560001506,512296028]},{"sector":8,"data":[243860574,1532560480,-1427582581,808502269,-1909444560,-1106920954,-695533566,94441099,1174702630,1936984232,1869939112,1314017622,-2129887194,71042691,1041662721,-225771516,-2013418776,-633979913,1464693517,1912798851,-1590281454,990672645,-402098953,-990446061,1578333448,-2146435142,907582,-4586636,-38606593,-990502165,638678144,-2088819328,17054766,71179907,216751872,1963050230,226502354,-1460969727,1113479514,113476322,46008094,114432,1459517160,871861079,1008110528,-787052284,1041664781,-753497852,707837197,336586832,1961180544,4030469,113653109,-2147414570,907070,-186121356,1583307005,231812739,-752975103,1048772621,1962937809,-750877943,41222157,552085995,-1957210370,1476520951,-2113520832,-352160763,693655731,-2096874474,278046,-972832070,411654,133858024,1048590019,1946160563,1048589919,1946160599,516240983,2139817369,-1964166641,1468729423,-971043322,376326,110025523,597689732,-1261896179,-813215487,1347899730,1944124904,-1106837997,-2041554939,-1545325884,-1833302960,-63182845,1516198232,-687618818,978966754,1963310606,210626819,567086516,-1274157638,773967163,229719680,-402426623,-1976633321,-1274700522,-1021194994,11666397,-944766967,555270,243923968,113707116,2158,142673607,113704960,2162,151520967,113728859,1014761738,151783111,113716030,993855758,1929701352,-18413,495658579,1930377766,178179]},{"sector":9,"data":[17623387,142292617,-1923786925,-167214306,537426438,-391365003,930219378,1946475496,84731954,116790901,1965033594,78047237,116794091,1950419066,418074139,1027344264,243271029,1124141178,1929731816,126397641,1321462595,141571721,-1996486714,638091038,915217803,1015023747,-2144242641,125051452,142214902,642807041,838944650,1812347364,-1592691960,-523171732,-670874813,-400585946,1726677120,141428423,1592459265,21465638,-784276430,651690976,-315486326,259311883,-1960422589,12314655,1128231771,-940383677,50884102,640936704,838944650,-523157276,-1977165821,-773574137,-670875424,839879206,1959332845,642990863,1424498571,175332096,-220052669,141428423,1599930372,1812892507,141467912,141571723,141694603,141827722,642827256,44631947,-16485120,-2146931706,410320956,1962934697,1845937928,-352321016,61886478,-1796669516,65755136,1476464872,1438906819,1334453841,200094216,-1928497975,703072623,-402099454,-152961011,-1996100615,-133660370,650337625,32384,-347798668,-2134686218,268990990,1929365736,2049343554,-1588531448,-970258307,142280193,2100726616,3964936,2088772469,141900543,141428423,518717449,4162342,-148498316,1962934535,1845937937,-352321016,9693193,-116528136,-1336931605,-385895421,-128450557,-1960421437,1049166975,-2010773390,1703421445,-2120134655,1166616072,20731906,-1993995659,-1993997227,1508574797,108331580,72714534,121393131]},{"sector":10,"data":[138209396,104653940,-2010773899,1038812245,242549820,1074297761,71665958,106794022,-1993987093,-1943665547,642778717,16926710,78644340,-165279253,1946288711,-402477051,643301546,268584950,2095580020,-960274688,594182,126559824,393592843,1465013072,141428423,-4980727,1625818032,1532649471,-352130216,-1875055869,1946222761,1845937939,-402653176,233308565,1849590530,594872584,1946288297,1845937936,-402653176,1048772989,1963526254,536914190,113707380,2158,-2147440920,17371454,1048776053,1962936430,1845937926,1476397320,-1974054717,1958742532,1966750744,24936459,-972720896,166395908,1929561832,-347716095,-1017618718,-796241322,-1259862902,168522242,-401902400,76021771,1178993131,1583016683,1937784003,1918974988,2004499513,-337697739,1460032305,151207565,393483576,508711248,-1973046265,-17470,-1174403655,567148543,-1957144230,1166934365,742605571,1607935616,1019435783,1007186480,738490169,-104597456,1381191875,2139825751,92939782,74825738,149684148,141428423,-4980727,1424491440,1532649470,1431356248,45241938,552076426,-398822910,116850555,1946683514,1966947341,2122327582,1853161473,116789995,1947207802,1966750734,2122327562,1517617152,643492678,1962952250,1958742556,-347781552,1178215954,1178825984,642057354,1962952250,-347781575,2047276715,259276808,38270758,125042720,8290342,639792128,1050615,977016948,-2144990859,1962934398]},{"sector":11,"data":[1007610637,638022912,973110912,-336002188,2100726021,1516173320,1354979421,1049318999,76155003,292864010,1962956776,285656608,-966917879,-346095612,80109113,-148480256,1962934535,1845937965,-352321016,-1974052827,1958742532,2811931,1290275700,1191342849,-347715770,141861610,1191183558,141573769,-1453826210,158597632,-1325419440,-45225979,1364443992,151527053,973081017,1124365319,1497496034,1381024603,-1073085302,149435764,-2094370303,1949958524,133637645,494141456,97408,537663349,292708668,225933884,-796237780,112263092,-335740184,1845937926,1509951752,-391330984,376700960,1962955240,2047276564,-294379512,142214902,1309242433,-336001301,-1018234879,1364444152,762580284,695468092,628361788,41779238,857633282,1569335003,79921923,3768358,-919401100,1124698662,1946237478,1022943748,-1017423603,113660243,-2145384332,-553092570,913580092,846465340,829697084,209002556,1965046912,1176547335,518766650,41779238,857174529,1300899529,1959332611,244491,20588099,-119404684,1532567612,141861571,142214902,-2147126015,537426446,-353648582,142814861,175430971,58011452,-133305351,792464107,243271029,-130021254,1398152899,142032515,1344632064,1465012510,-164428203,12115598,-1943941789,131795931,1499094877,628381727,141899401,142024329,141899403,142024334,1946172547,1912879632,21248520,-336002185,-347716091,1583085803,-1202666721,-661782521]},{"sector":12,"data":[-396884194,113639476,-1275065667,-400438003,1048576103,1962871485,28960792,180174464,-401705729,158467092,-402400280,-102235147,180396035,567102644,243998925,-645002559,6037130,505936,119462030,125016,16482499,431228533,82518477,-1014313986,-33272926,141075136,-1576197214,1218579703,80281101,105423425,321731,-1023406104,1943708904,-586356728,180160198,1344193535,-1912600648,1476861656,180424331,-2118198898,1027509504,8435978,1049470194,229640765,1946499622,-152353019,-970586645,1342177605,-1912600648,1476861656,-768358093,171783821,136330893,180174464,-402098945,-12715815,-352160257,15681,1005061493,1323690752,1948269696,222068741,-347208843,21284595,1015041536,-2147126272,-176873412,-382301882,129637888,-1545957888,1656357730,-295835645,-1123629537,-1021313270,1464948254,505936,119462030,1681817688,561317384,140773062,942047488,-1610481656,597821544,217555469,-32683870,72065736,1218593028,1446936838,1963479048,68598304,-2115104024,839128638,-16354303,-352053754,-1123629332,113704714,-352318784,1446936907,1963477512,-670644726,113639693,-2128607158,1292391998,-972393208,17684230,139265734,1681817632,544539912,140773062,939968256,-1962934264,-1928828874,-66732226,1946172544,-118774781,229705470,526276959,25946307,180174464,-401115905,1048576021,1962871485,24635405,180174464,-402426625,-389873252,2074083761,1979661317]},{"sector":13,"data":[53656078,-957516056,-16073466,-1275026199,-1574843111,1048577437,1962937635,72065558,1755496702,220439048,-1576208478,1074007368,-1979299678,-1341316322,-851135479,-1173654751,954729266,-1123629331,1048641290,1962937021,-1257394109,-1973374712,-1928518882,-972483306,-16182010,567100596,678681227,-1929098336,-1186724578,12189697,-620312832,-402653177,225695666,-402443590,113700083,-335607107,79921920,180174464,-402230016,-1763180522,322863872,192217097,180160198,66239231,-1007484184,-1996009589,856232718,206539465,1946352003,33129223,-588578188,93326984,1200275507,81161,37561716,1025537024,460587012,1946159165,1064214,540873076,1024226304,125042752,1946189885,-1951798526,4002375,-140413952,1347572705,1200293297,-1964453113,222792648,1515975158,-763116797,180855552,180815615,172426075,-1560227197,378079801,868420155,-1976126272,1393369878,-1031069235,-1973696205,861079887,19130587,-1956916341,-628422833,-1560209176,512297667,-1966929211,-1341316322,-851135479,12777249,-1173523438,82313638,-1123629332,300678922,-2147433737,-1296430220,-336467967,180160198,384353279,-736196096,85867015,-1173654460,-655883854,-1123629333,-960233718,1091032070,220405386,503368702,915212244,119408596,1141194381,567107764,-1272729405,-1994273483,-1945791202,-1759606333,-1927041019,507184406,632561422,-1340137011,-852118492,-1860269791,-1983673339,-1341811938,-753496796,521018938]},{"sector":14,"data":[567092660,113689375,-1207956801,802010886,1963064195,-1090075123,129564426,48055,-389861427,2078862331,1048626165,1979648703,-1224230904,-855637573,1048625967,1946160599,-1202256359,801969664,259293096,-402388294,113699627,-100726083,1405290335,860553912,-1896117285,1915735491,-1064543481,-596261109,1474685944,872362838,16352246,-1040767628,108265473,-82579453,1928856043,-2081828595,108265721,-619462653,91415667,-544487797,855960568,1591423936,183747423,852146,-397257040,700115649,2484238,-402379078,733932213,-8617970,-1341099008,-1273722333,1914817893,81156,-117314568,1590915674,1364414659,-1957210542,21284594,3964928,-1031574924,-1258648830,-2011050744,1947024389,1946172507,1946696777,1946762271,-31159574,23345868,1085554292,-1191181637,-678756351,-28892723,-806682300,97408,1085589876,-1191181637,-678756351,1085546957,-853539386,-968838111,567085061,21823055,146057707,-1544871475,129106612,-1679089203,1499094623,-1295820709,234926592,28356608,229508742,276152330,232210048,-1173785344,669516270,-265819920,-386915096,1857745530,-266803197,238683894,856716543,-687438144,-303542259,-677226255,-402396403,1455682020,-32681794,960266244,80086654,-202682832,1364443998,-768360397,561313291,-2014309400,909852919,41094618,512422635,-13498978,-628366345,94310027,-1946255384,-1017553965,231552651,231554691,-2096663296,905022,-1427632268]},{"sector":15,"data":[-720976145,-1070334195,1424511056,-1014250750,12402307,1664519424,91495940,585695158,-1122071082,-1942517504,-1927347617,503604022,104939136,-1593281536,-4849464,-1915353880,-1996437474,39816247,33208863,-1964025368,-1274700522,-1339962098,-850610945,-2136433631,-1957684875,1946172615,1963080708,-13740024,-351956706,-1336387580,772139779,93396735,175440444,-217061125,-1073297874,-70254838,-1860778706,-1272664059,773967141,93656773,632562608,521019853,229705414,-221124608,180356806,-1261700609,-803091156,-773730079,-773729823,183423201,1389464526,567093940,129821057,78758283,-972365614,-523041615,-1039474479,516133466,-2144972714,-16420802,-1336927884,-849103872,113649185,654247280,91305609,-1557735284,643302771,91436683,-1960386930,-2096795338,292814908,141689914,1996571706,116128003,-352139645,1582889194,29934367,524466,227719856,567098292,1048596675,1962937816,-326899707,-1782706965,100526093,-402501958,-1070339009,1726502227,-2141889275,326427965,95618814,232275584,-1173982208,552075890,-1103893524,196677015,1352987392,-2086006608,-397276473,-1951662296,1183558594,-1070355706,1482337195,232130246,-683769855,108265485,-402652743,1532882031,217103960,1342286313,232275584,-402295552,216787981,-401763650,1320813959,-339089406,1392509368,82831445,1031820637,-1103202843,196677026,1352987392,-2086006608,-397276473,-1951662396,1183558594,-1070355708,1482337195]},{"sector":16,"data":[232130246,-683769855,108265485,-402652743,1532881931,217103960,121525994,1482382592,232275584,-1171491840,367723158,232275584,-402295552,468446105,-401763906,2126120211,1510393602,-33366524,-972668666,-15844858,-387234072,117374691,-443873869,311901,95618758,-1358510336,1426063373,-326898549,-484033748,-1157204217,-1863778228,-666992387,326369293,232078976,-1106479872,-353890927,30063108,-1091759896,-57996004,2931031,-1956993805,-854477606,108954401,-368741120,474710,712294410,1929707240,1017375237,-1849819129,78899213,238683846,42646271,-1158884120,-823655714,-27399956,-1034033781,-121765884,228048652,-218100807,1343190182,1929692904,1223251974,1476652030,-255933205,323258892,309661864,227917398,-402477382,-2141263189,-401599668,1149961093,105265954,-1101654924,-1564865131,-359536638,105286494,-400407415,1149961065,1975520036,642026247,376750091,227917398,-402474310,861858415,608471488,-400145271,-745864379,567087796,91537418,121384682,217628160,-1190288705,-1494024181,787088756,-1107294404,1149897968,1964025875,-1833019886,45005325,1592405736,269700224,1443039464,992101515,326370374,-1173515586,350749346,1183538922,574916868,-1962742552,-1073011644,1149962613,1975520038,1444342530,-1173515586,-253230406,-1070375191,-1994111863,-957864380,-1261204734,169987346,-2094304064,1946158718,227719711,567098292,1048581747,1946160600,227655180,-1174187288]},{"sector":17,"data":[-1796734422,-47060759,-1034033781,-255983612,323286540,-2139654896,906558,1156975476,-1250621421,-352230680,-666992464,158597133,135480566,535298933,-720976123,-1191182324,1156972544,-1854601197,2089517488,-566327004,645696268,215760521,-400393077,243991433,1156975829,326369811,230688387,-1038712063,234946573,1357516228,-2097150146,17676806,230430339,-1106378496,1045490189,1048576007,1946160597,15853573,-2102381077,-954041205,843270,-603535616,-402653172,109249337,-2097082956,898582,215289483,95698560,-2146667520,-386985116,1357513173,16779070,-15878130,1393405750,1344423051,-2096728321,-1514207034,-397388027,1599662332,880066571,1001707403,343024077,1543333352,229574287,95633024,-366250752,474704,-1962359677,37611762,-972893510,-15844858,-353728280,474704,-1962359677,36038898,-402505030,1048635495,1962937813,-666992612,108331277,-402581830,1048636001,1963003351,19053064,1962497768,1045490181,1398079495,-401324149,-141885083,1460465855,-1190606973,-1527578592,1955288670,-96081886,-1990370466,1418273860,-1291401690,988348421,-1205958145,-1948349691,-857202057,1397978602,1542079208,909899655,1685261786,1961540328,1396698094,1542074088,1006077761,1930287670,50234191,909837938,561382819,-1746380975,37140993,1592249064,-2146435142,907582,-4586636,904418303,-346465302,-348264413,117358964,1048577461,1946160597,-751400685,24307724,-402409798]}],[{"sector":1,"data":[-960830611,-375396350,269699062,1048593781,1962935733,-717324226,930414605,839229088,-1624836124,-503885819,-259261813,455362347,175253079,108384779,1925331802,1364873750,-1994098807,1189619327,18147328,-402495814,-1957042361,-1205957645,-167001339,1522147188,-68660734,820533760,-1980353561,2005475959,645368100,-33548056,-351947770,40286859,2391939,2139347829,-713752538,1459583465,-208973485,95952523,1493173480,-960274853,17683974,232210048,1427862528,-1957276077,317199431,-964469248,2144520,-1040276237,1592220392,-1950130853,507184734,108137946,-385859653,280623415,-137219328,1977289713,-796175857,92280323,131794631,468385792,94254838,-315438966,192203019,-588713077,-487094296,1390316537,-1947872792,-1610236898,-922874589,-402652743,41143503,-1319569804,65065733,-1594324029,-922874589,-2046709565,168668678,-2146404928,907070,-289797771,-396105727,-1008180248,-2130713880,906558,-726845,113641076,-1023408568,-1023402776,1962927592,1208403461,31981574,-208944384,-1089943933,-396950107,1449059948,-1610200897,1074007331,-1438994262,-1441951584,378206091,1202982179,179053005,1325102528,-2141258101,292814908,940413088,24444741,-1073042262,-341179532,-1442795272,227655363,-1090536216,1220478536,-849300473,-2128973279,973556030,-2146273956,478014,1218448245,1208367622,-134056953,1455684035,214999635,95684294,-1257847296,113704965,3285,95952521]},{"sector":2,"data":[215432841,215563913,1912799107,-1556202746,-2096007675,1962943100,612139782,-402426880,1743454316,-401813344,-1622087429,214967936,1935187583,-1257847257,1048641285,1979649493,-750876391,-1957276916,-15406882,-402471238,1532945735,-402471238,803987733,-1980265642,-401811138,117434231,996019413,1913510462,7792646,-2095911944,108135167,94584379,166200950,32241664,1536783097,1465303902,1398232658,-941039989,1583307774,215432763,-1957229452,990697790,1594677054,2088970101,276037666,-402498886,1153950943,-973078494,-16403450,2376903,642041600,-561315840,-335692568,37141009,-1947943192,-1962025962,-401811146,1599792944,1347863390,269698294,1048600437,1962935733,-717324200,1366622221,-1616789453,-1643214331,-1545472251,243993809,-503903019,-1995644765,990700054,1963777046,-570017013,-402296052,636158014,215750203,870843763,-1961170176,-1962090994,722263070,-2083316799,108331258,215025211,401081202,-1205957888,-1017227259,-388068525,-1631912432,-431757309,-1017384053,119427078,-1962090335,-1995644394,1418273860,-1957276890,-49288994,-1157767704,283640422,1482383076,139838215,135987378,-80,-1,-1,468000,27787264,71829504,1112671433,-1064507253,234885125,303903,787971,244039822,-108331002,-34108593,-1202674445,-883949516,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704,78708751,-789068149,-628299565,74698795]},{"sector":3,"data":[-768878452,-268181293,-947135858,-388771593,-802438516,-1064565645,-522989013,-1030817789,1322289836,1187548077,-31145334,91598908,-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094,-1031072797,-1064385789,-2080863315,292880383,-501415642,16417267,-2129234704,-351272766,1086360796,-276578162,486614544,-339702200,-1950118942,-1962932162,50334262,33948144,1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602,482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,2847856,8323188,9765002,11206816,12648630,14090444,16974072,18415886,19857700,21299514,22741328,620504162,634266918,647374458,891237589,899298666,906442220,1033452802,1045314983,1063272032,1068777331,1074348017,16447,0,0,0,0,0,0,0,-1962905437,-534437820,-754601727,-1949791512,522526788,-2032039424,1923294944,507808512,-1309147099,-1964453109,507808744,-1324883931,-1964977405,2074289861,113714688,125,50510367,-1006895640,-617411152,220405386,1722878133,134551181,567100596,-625342862,-69146621,-1308366909,-1342174976,1964616936,-1229303266,-70588413,33482842,104939136,-1962445824,-402367978,113639920,-1023408575,232275584,-1995738112,-402367978,-873981562,28361727,229574278,208994364,-401763906,1119492466,-4921342]},{"sector":4,"data":[30038605,28,16449568,58654719,128,54984720,30,1]},{"sector":5,"data":[0,0,0,0,-1192457387,1374158884,-1202301164,-397405679,-998036698,-314128894,-330906064,-330920704,-330920624,702212176,-2147171197,1912990846,108461845,-402360577,-998047377,1958742788,-373282013,129499485,-555200512,46433037,98580223,1342521528,-2095608344,565707972,20965632,1156400838,15484614,15615687,-330920704,-330920624,696707152,-167459709,1954607686,1611056647,99287055,257951430,292075521,291944528,94824528,-1559968637,-1073016476,129506933,2129154048,46433037,94385919,1342522552,-2095632920,28837060,14674176,116147911,-330920521,-330920624,3127376,676128848,-1962490749,1654910534,-62470385,1988820992,-941174276,56386,-2080618753,2080963710,-599355923,71732560,108461904,-2096658200,1183385284,1958743034,81167,28867445,1810386944,46433042,-2066689,787013238,79987469,16533191,-58815744,1938548689,1962281948,-1444391417,46433060,-2080618753,2080963710,-1003028508,88651781,122206288,374270032,-1207516029,-1924136958,-397345210,-998044892,-28931580,-153580648,34114951,539755636,1183450091,-28931842,74733884,-1049276868,17057479,-25264128,-385649319,-1070858425,300476496,1577239683,1575324511,-326412861,-402652488,-11136344,1182991438,2122514950,913571844,-1962516853,792494135,2088823157,-478855423,16664263,-27358464,-1207966767,-357038648,65556485,79987478,-2080487681,2081160830]},{"sector":6,"data":[112868,-1070923029,1575324510,-326412861,-402645832,1448546900,16533191,-330905856,1187446785,721420776,-129594944,-637303,-16401354,922682998,1996424634,-1204355324,99530757,363915344,-1928543101,-11472826,669516918,79987459,292929547,1357530765,-402229505,-998046954,1958742788,-260636913,-2094464024,45613764,49998080,88882819,-11635456,703130230,46433063,-1947175169,-386233360,-998037732,1975925506,1960262404,505904,194242640,-16595837,-1207583178,-397408774,-998042302,-260636924,-2094483480,1996423876,682551530,-1207778173,-1511456752,74907394,1358055053,291780351,1714880286,-260636911,-2096945432,-1073017660,1996430709,-297366266,1681325904,922689041,1996427624,50981098,185386115,-15174464,1709764726,46433064,-387287297,-998037412,243714,-956148759,65094,-1995348319,1755445830,-196703983,89407107,-2096466688,347198,-1259797643,-28931327,1006520063,58126918,-1962823191,1178201670,-385648898,2122514854,57805564,-1962828311,126547038,-1947842936,126548574,-1964751224,1178134086,-2092337948,348734,1183455348,-1964758300,-315955634,-397360853,-998037604,2112770,1586178676,705137396,922702052,1586169264,1342671610,95303423,-1280257,-1207587786,-397408938,-998042570,-62456050,-2131075445,359991871,-2081667329,347198,1285622644,-330942203,1575551862,-195130623,1963605888,-398000363,88882819,-1593084928,1178142028,-385648920]},{"sector":7,"data":[1183514944,-28952078,1183516789,-28952082,1183518834,-28952078,1183524726,-28952082,129507189,317214720,46433034,1223444107,-432603312,331409413,-16464765,32111686,-297366783,1979598393,-230257912,1929266745,-297366768,1996375609,-230257891,1979598393,505877,164882512,-1962752893,1346955334,99104511,1191165931,-196673542,-2080454935,1930099838,-195130497,1183319946,-94467100,1183319946,-465138970,1961248312,1379828563,410255365,719734410,-464614684,-1054085846,645851216,1023591555,880017440,-1963696501,1357130247,95434495,-1963303285,922701831,1183516078,64105470,1444148806,-11513096,-1207588298,-397408906,-998042866,-62456048,-112897,1191180870,-230257676,1946043961,-8656637,738084491,-163184174,-2080877039,1980365950,505882,153086032,-16595837,-1207574986,-397408770,-998042930,-1592530172,1178145124,-385649166,1178205591,-385649170,1996488079,640608496,-16595837,636021366,46433062,16547459,922686069,79168926,-1813491706,79987474,183222315,1342572728,-2095938072,1599996612,-1017256565,-1192457387,-437780464,1648263182,527695887,133187271,258122167,1183432746,-263811598,-263811760,3127376,596437072,-16333693,-1070922122,74907472,-2094658584,1183385284,1648263422,494141455,133187271,258122167,-1913502071,-1924075450,-1202655162,-397410257,-998038698,-25263354,-1205832704,-397410297,-998045619,74907394,94516991,1342573496,-2095973912]},{"sector":8,"data":[45614788,721611520,1575324608,-326412861,1441316915,209125134,-16091393,1996425334,74907398,-2094681112,-1073018172,129507444,115888128,46433032,-15829249,-1207589834,-397408751,-998043214,243718,-1070923029,-1957313699,178412,1443762152,1627276999,-2096370710,1946222206,-26312443,1996433168,530114814,-1962752893,126420062,-478887925,-1962516853,-388891066,50624139,-1962440444,-388891066,1575324510,-326412861,-402650952,1586171336,-2012771836,792524870,758916724,129507956,-2098704384,46433031,94779135,1342576568,-2096025112,79168708,-941076480,46433036,-1996208501,1586231878,21465850,-153580648,34114951,1586170996,21465850,2108824,1586169835,21465850,4275608,-1394015371,4406528,2095645557,4472065,1279080308,-385649408,1312620920,-385649408,129499345,317214720,46433031,-362753,-1207573450,-397408730,-998043458,309254,206891088,-352140157,1309067083,-2097151739,348222,113706612,1360,1342539960,1342535352,-2094968344,1723335876,1454919685,1139298309,79987489,1342203064,1342535352,-2096876568,1689781444,1454919680,635981829,79987460,49956483,-1963303285,-129595385,58011452,1023357929,-385649619,703135981,1342621695,-2097151739,347710,113706612,1358,1342539960,1342535352,-2094994968,1723335876,1454919685,-605532155,79987488,1342202808,1342535352,-2096903192,1673004228,-1953043712,2139159134,410270978,1342179256]},{"sector":9,"data":[-2096744216,922682052,465044928,-404205562,-8525553,100288139,1183383555,-60912644,1183319946,1958742782,2083535892,2117680132,-25264068,-2147060689,1965948542,-62485749,1183402056,-11736582,1342179256,-2096763672,1996423876,-1472790780,102742021,261679184,-1207516029,-397410299,-998044882,702466,88876791,-1946394997,-1744336184,808304899,88908544,-335788289,1376176020,-385875707,113770242,66900,-1946224151,1438866917,213445771,197322752,1586189911,138380038,129506942,-2098704384,46433029,96614143,1342582200,-2096156184,314049732,46196992,1183432747,-62486022,-955954013,128582,1586188779,-1948003850,411763830,1946173312,-62456001,50101891,129507966,988303360,46433029,94779135,1342583224,-2096174616,79168708,2145931264,46433034,-772383093,74877923,1586167947,-1948003844,8980598,-1946794241,1183516254,2114402806,-774337728,74877923,126490763,1022641800,1006924847,-7375571,1586231878,-1948003850,9110646,-772114805,140413926,-1962655607,-472779170,-16484725,-48109520,-352140157,-62485581,-163149504,1371019243,1586188288,-1948003850,822020214,-2096953368,1191118020,-159480842,-1957265662,-472779170,95467519,1342584248,1342654648,-2096233496,1354237636,1273516032,46433052,-772383093,141986787,1586167945,-1948003850,948111478,-1196722944,-397410297,-998046631,-1607008510,104380421,235464784,-1207647101,-1746337791,-163133695,-2048327679]},{"sector":10,"data":[-129594112,-161576112,2123097041,-399376632,-998039142,1975520004,-129567126,-1956350960,-472779170,-1962377589,-1108847055,46433054,1082841227,-28931841,74788668,1560168134,1560182400,1988826996,65458678,889129078,-2097043736,76088004,-351911752,-160003307,1979967185,-399180024,-998047345,-1207662334,-1957689787,-472779170,-16220533,502851633,-16464765,2122577478,780075766,-772383093,142511075,-35114497,46433024,58048523,-1946198295,-422447498,-16222717,21620788,-1996307325,104642564,2122561771,58458876,-2097110551,1946221182,10021123,1090143883,-163149504,-1191819521,-397410294,-998040786,-161576190,1988879313,-1962899192,-472779170,-2096597365,343212088,1342179256,-2096939800,922682052,1236796832,-18814714,95827711,1342590392,1342654648,-2096324632,196609732,1586188288,-1948003850,838797438,-2097057816,1988822212,65458678,478873718,1946173312,-96010485,1357395199,46433275,100302467,1586172541,-1948003850,411764854,1946173312,-9377533,89013891,-2094828288,348222,1488460917,1991790592,971526149,79987456,1342199992,1342527160,-2097140760,-1070922556,-443850914,-1957313699,-390056980,1586170060,25133060,-2146732742,1962934911,112645,-1070923029,-1957313699,178412,-1207391256,-11534273,-1847065482,79987486,201213577,-1962445632,105286360,565708680,1996443648,511109124,-1996176253,-1072955834,-661977228,-2012854646,1575324423,-326412861,-402652488]},{"sector":11,"data":[1996425320,484632580,84067459,-397410299,-998041094,-28931838,1342469887,-1961059864,-443810234,-1957313699,440556,-16237592,-1243085706,46433052,1208239619,-939637111,129606,1325336299,-96010242,83525251,1586169983,775913726,1555623029,1996443648,505473028,-1996176253,-1072956346,800591989,1996443648,504162308,-1996176253,1586232390,775913726,2122519157,125042940,1178190731,-1207601156,48955393,-443826133,-1957313699,1226988,1443349480,257965696,-969247744,-1928597690,-1924075962,-397349306,-998040236,-293699580,-1205701376,-397410297,-998047379,-499712254,105953285,186443856,-1207647101,-397410270,-998046030,105286914,6219856,-956119933,249625670,249577088,-1205701350,-397410297,-998047435,-499712254,106215429,182773840,-1207647101,-397410270,-998046086,-28915966,334168064,-16490869,1988822086,-62455812,126354570,-1946269953,1178142278,-1947894530,130417758,-443851264,-1957313699,309484,1443304424,-1108806101,-28932096,257965696,1007318016,-402230006,1183318188,-25263874,187397384,-1977909514,1352203846,-2097104664,-1202847036,-397410272,-998047571,571394,129500139,-1628942336,46433024,2122369515,561319422,-1728166262,9168976,-2147302269,1007678,1575486324,702464,7858256,-352140157,-25264057,-1205766886,-397410297,-998047643,-499712254,106477573,169142352,-1207647101,-397410270,-1377106518,-1962647925,-969193465,1183489150,-397371138]},{"sector":12,"data":[-998047687,-28931582,249595016,-10753722,-1996202357,-443851209,-1957313699,964844,-972666904,-1928793274,-1924074938,-397348282,1183456224,-1947981070,1438866917,247000203,103213056,1089685190,49563335,-163133696,1183645697,-129595132,1358055053,1358055053,-1961119768,1438866917,582544523,100329473,-402360577,-998040518,108461826,-2095304216,1996423876,814124292,736645375,79987482,-1928956161,1358880390,-2095440408,-2037578556,-397344976,-998047477,-2109306622,-18970995,16640080,-1996307325,1996456006,814124418,1726501119,79987457,-1920960769,1358880390,-2097063704,-2037578556,-1924071714,-397365178,-998041130,-2075751164,112720,814124368,-1712828161,113541916,510967819,1342179256,-2080425752,1996423876,-1573454076,106805253,149219408,-385432445,1183645843,-672640848,46433024,-13728119,1352812173,-394103041,-998041210,784237316,1349779711,-8358145,1005093494,79987457,578076683,1342179256,-2080446232,922682052,1996424646,814124294,1673023743,-1880600570,147096328,-2037575445,-1924071714,1358901382,-2081254680,1183646916,-2037559120,-397345058,233511214,-18970995,814124368,1961382143,79987698,1350846093,-2095324696,-1073020220,2078868341,1575324671,-326412861,-402651464,1996424368,422242308,-1996307325,1174666822,1183401988,-1961366532,126549086,1023035016,1008039004,1007776826,-15895505,1183579214,-28377090,-545931253,1090274955,-1017256565,871140181,74115264]},{"sector":13,"data":[1342193592,-402360577,-998041008,1975520004,2799633,74907472,-2095431704,-1073019708,28837236,721611520,1438866880,45673611,70707200,1342189240,-402229505,-998041060,1975520004,2799671,108461904,-2095445016,1183384772,1958743038,74907427,-2095543320,1295844036,-1961527552,1204223582,1586179585,38258430,-27358422,214982,-1017256565,-1192457387,-504889324,1996445187,408610820,50513027,1183384646,108462068,-2095559704,1174602436,-297367290,1342189240,-402360577,-998041134,-230258428,108380171,-1980479861,783872582,1996443648,431548422,-1996176253,-1072960442,1183516277,-330921490,1342188216,-402229505,-998041228,-263812860,58048523,-1962893591,1178201158,1347646448,1358579341,-2095598104,1183515844,105262064,-1996208637,283899974,-1947181429,76216438,1191118728,-263782408,972179083,-395118522,-957325685,1183514631,-330945552,-1947318783,1183445062,-96039444,108461904,-2095632920,716702916,1996443648,419620870,-1996176253,-1072959418,1177235316,-230292500,-336050551,-262239472,-1963428213,-16283644,1191180358,-196703248,1928873529,-262239256,-1962932282,1183445062,105286638,1183531243,-263833108,1183520371,105262064,-1996208637,1183578182,-1206588430,1491861503,737166987,1174662214,-129594894,972310155,-411830202,-1947181429,76216438,1183516552,1183400176,4176118,-159973552,-2095548440,1183384772,1975520240,3061929,108461904,-2095542808,1183384772,-296842256]},{"sector":14,"data":[1975597897,-958887163,-1070923769,1575324510,-390057021,922681940,-571993754,46433043,817139907,37495245,550306419,-1962753857,721420854,16679415,-1107070448,-1896214528,1858372055,276036369,-135782634,1354773249,-1207666968,567102719,922674307,108668553,1982236982,-1312388346,1222693636,108307254,915011331,-1014235134,-604512725,567102132,-350319562,-66644474,-1190495553,-819261072,-1426866125,1005068054,-400615936,31982482,-1232126,-16315338,-16315850,-402192330,-397349538,-1061682974,-1193767422,-952762365,-1744406522,2078822419,66971649,1342242744,108533503,567095476,-1207505501,567096576,114892425,115017356,12066574,313965093,521544141,160697995,109981411,-1960442133,-989844426,-1945528826,920335322,160571135,521536883,906055145,161089221,62642828,520041984,521537938,116065934,739150630,-1909005568,654259137,1946172800,833836,-217658178,-1190431578,-1070366721,427142898,503768555,-141877497,-1408830273,-22244968,1208054976,385344170,310047,116696960,1140897983,175251917,1954595574,-191922171,2034974726,161398503,-402022721,-1631715166,161398537,-1023374616,-1091794091,-524350816,8251402,-1089888578,1961363872,1426320128,-1598100341,161529609,-1107269912,-1598092896,7137289,184596968,-2096401216,1962935422,71747333,263782655,375552,116688886,-1274776575,1126288702,132707042,71731968,567102644,160697995,45811683,-1843462400]},{"sector":15,"data":[382017033,12060377,522308901,118898304,504198144,-989390944,-1274603498,522308901,1945582531,-1957736694,-597235,-1007490095,242480955,-1962610813,38079237,503313012,12840683,-1192457387,-397410052,1048773243,1946158876,471269124,16758791,40495184,-1017256565,-385875272,-1957036453,1926769628,505297674,-1962642937,870449123,-28972608,-1175047338,-466485182,-533549828,-192873502,-401771435,28901294,753422336,112642,110084958,45745952,-317310976,-1909885946,637987590,2885262,118490764,-1181106125,-13402112,1974382322,-1991817221,-1190719938,-1359806465,-779365897,-1107295809,512622721,1017906923,1023112224,1022850057,175076365,1198224576,540847182,154986612,222094452,-1073062796,574380148,1547445364,-347995276,1103705060,1952201900,1948400890,-338623740,-775844909,-1462692887,-339053311,1017925121,170619917,1009218752,1018852386,1107522652,-919343893,1547480129,574421620,-788331404,-1047798805,-787224111,-764083800,521574379,117980809,-783821053,-2133392409,-500433182,178504843,64523015,906434299,1128480649,118372037,-1073042772,-2118190475,512636416,65734379,-1398095821,-76275652,-143390404,58002748,167804905,-352094784,-1992912775,1313030975,1948269740,1946762459,1947024599,1958742626,1948400734,1952201767,-454317565,-1404974797,-93037508,108274236,-1426891600,1555091947,-1426855471,581961331,1321593770,1947024556,1958742574,1948400682,1952201911]},{"sector":16,"data":[-320099837,-1404974797,-93037508,108274236,-1426891600,1555093995,-1426855471,581998195,869133226,521579200,1991,119547647,1441565525,116072078,-1047803597,-108271221,741772105,1962281728,650546704,16000,-234458112,1974355374,1083655674,-41157084,-989600303,-1084809450,-2048393207,-812949760,-133956213,118238857,-561117410,-481692109,993820947,-1996131261,1162150014,-1073042772,-303891851,369118857,-443851489,-1957313699,509040364,72780551,-1391875906,276087355,208967232,-1178586217,-1359806465,-336857205,-1956749418,46292453,-326413056,74907479,201313256,-1844153152,-1070335349,-218103879,1238497198,-1275067717,1596050752,-1034033781,-796196862,108660227,104412530,628295284,1342181125,61987025,-645076781,116072075,-1056715989,-661929074,567102132,605057624,1956858096,780899590,369165946,-1950153094,-74323513,-1070394510,-1017256565,-397346701,-1957167080,1942183397,976903,-1711276104,-1017256565,32039986,-257768704,1977879046,-314671069,225575686,225649212,91365436,132842928,1980972176,-1156337662,-1730738398,-1022958173,-135543670,-2081649835,1448543468,721893566,-1877611521,-2096741130,-397014156,-998046866,24395778,147227463,139474489,-947132813,-443850914,-1957313699,116163564,1183667799,-62486264,-402360577,-998047192,-1913615614,-11532218,1996424822,60745732,-1962490749,74907640,42920022,-1962621821,-1956684089,-1866244635,-2081649835,1448544492]},{"sector":17,"data":[-1928904514,1183385158,-370649348,46433025,1183709323,1996443654,1642616324,113541891,1459111561,38987863,-1962621821,1600059462,-1017256565,-2081649835,1448544492,-1979287925,-1986525372,-963904954,-1324926931,-1946627325,65065416,98619841,1183385560,105182968,-167349117,1950352964,105676811,-18400,-1878978327,17188086,1283518325,1686110726,-1070862586,-1962785655,-58816008,201737462,-561291403,121170817,-70057039,-472792181,-472786941,131631094,-2126088959,1946632446,1224638726,-13404921,1407777398,46433040,762691595,120981247,121699969,-524810635,-1878725878,-1995479880,76088388,-940024181,33555015,-352254010,-396980216,-998047588,105182722,-1961265912,954958302,-754732793,-775713797,-774372381,-662178077,1349779719,2083208331,71600900,-1962636992,1200355422,1149847554,2130643714,1962891027,-92864764,-2096394776,1183385284,-1877283844,-151363957,537326727,45617012,-1070903296,-397193136,-998044940,73173768,-2012985718,-1877480697,-1962933825,1183666375,1996443652,189851898,-1996045181,2117729350,-385649412,1183514347,1592011268,1575324511,-1957326653,49054700,71732054,-1324926931,-1946627325,65065416,98619841,1183385560,33601790,207415376,-1962752893,1200161886,1958742788,105873423,-27358456,149447,-1877480702,-2147197301,-1962670513,-1992229306,1586168903,38258686,1586167809,-1946973436,126420036,149447,-443851264,-1957313699,82609132,74877782]}]],[[{"sector":1,"data":[120981247,121699969,1187448949,-351608578,-25063412,611649352,1694385863,105182735,-1961265908,954958302,-754732793,-775713797,-774372381,-662178077,74711303,904642603,942524043,-754732793,-775386120,-775879712,131597792,-1946401143,1149894214,-1962637052,12123230,38242562,-972929911,1283457287,28836358,-443851264,-1957313699,49054700,75400022,-2124712960,121636478,2122385268,1963411462,106859382,-1744353398,242280528,184730755,-1956350784,942474822,-754732793,-775386120,-775879712,131597792,-113015,1273497206,46433024,-956408181,1204224007,-1962934270,-208992674,76136491,-352041079,1586204714,75464966,125045472,1678016385,-1978108657,1352140615,-2096228888,-1073020220,1996425588,583686,1577239683,-1017256565,-2081649835,1448543468,721712779,105155327,37487396,1156990581,427100166,-343810421,61933368,-1014236205,-670833711,-2013862959,1946224600,721718055,1183384644,2126515196,1962889243,121932292,1676169368,113541897,1962690107,105676807,-16608,-1996209013,38061828,-947191808,-443850914,-1957313699,23378156,1475929064,108432214,-23165299,-1962239837,-2002581434,71731978,-955614045,692742,-1878604032,-385875958,1015022204,-385649627,113705560,68244,-2069643221,176202506,-1559589213,-1935471998,176857866,-1559593309,-2036135302,-1643722998,-2147475446,1966080380,113722940,3148446,1015034859,-15895253,-955612154,690694,-1876759808]},{"sector":2,"data":[1965046912,-2076278003,359989258,176817919,117379051,166398586,1965898880,-2046361647,76170762,-169324392,46433031,-394936309,177911894,124184656,-1962621821,-1707179024,209518602,176555775,-150299999,177906648,1965964416,-1945698525,-1202305526,-397407596,-998045892,-2081387772,693310,113707645,68244,176951039,1033372810,846463046,1946177085,6831413,1815945332,-955878144,34243078,-2109832448,91553802,1967930496,1015039489,-384076544,113705352,68226,113763307,1051266,113761259,526978,76207083,-1668904552,4537854,1195182708,1023767552,158662744,176162559,-23296381,-1668904160,6499838,1979716925,18147587,781434883,508078079,176692875,-1868488821,-2096658166,34244614,-1878955543,177080063,175769287,179830784,2145931264,46433025,-1878961687,-352319304,117412080,117377662,1048775296,1962936972,-1777940727,-352321270,113741831,2710,176948991,177473223,1048772612,1963461250,8972547,-2103197653,-62486262,177866297,-1700714636,-62486262,176569987,-955681792,694790,-1877808384,177876611,177905925,41795595,-1700544469,-2012839158,280494602,-1552384,46433024,1342192312,-2096902168,2122515140,578027772,176569987,-1961528320,86899782,177906432,41795595,-1700544469,-1878529270,177866439,780337152,-1207694712,-397410288,-998047554,-14685950,-385871688,-1070858449,31647824,-1862325527,-352321096,-1224765197,-1175912804]},{"sector":3,"data":[-15079166,176307843,-1962707968,-24424762,4030535,1031800180,-1946847963,1355164615,-303540706,113541891,1015084939,-385649664,1048837500,1962936976,2082376537,105379338,-1202752480,1307312127,487595508,502930938,503586298,503586064,503586308,486022660,489299236,503586308,503586282,503586060,501489156,177356419,-2095877120,692286,512430197,1207306876,-1217060858,-347732757,-1868459879,-1956684278,-1866244635,-2081649835,1448548588,168066691,117376116,1048775310,1946290818,-2109832441,376770570,176692875,1468729227,-62486270,-2080483703,67799046,1048783595,1946159758,-2011264239,-1995994358,1187511366,-352321282,512462862,126552712,-62486119,-2080483703,34244614,175783555,-1962052608,1175190598,-1962576642,48956486,-1666990037,-1741255926,-1908505846,712310794,16678531,2122523773,393546244,1177355462,-1946401141,-654836138,-150941053,-62486054,-939633015,129094,1187448299,-1929379592,-125048762,1459910399,-100609,-1511457674,147096329,176963203,1461810176,-2096530456,243991236,-936703340,-336310647,80121861,-1047837136,2143292233,-196179467,176164491,76023178,125094155,58483004,1176513664,-8552377,-2081852160,691774,-2069818251,-1979315446,-2096401398,1962997886,112645,-1070923029,45279312,1577239683,1575324511,-1957326653,283935724,2122536535,343146500,-1593835074,1183386248,-94466824,176686723,9562370,176307843,-1961396976,-1962244066]},{"sector":4,"data":[39291655,-1980217719,109312598,-352056696,512462869,126552712,-1979955575,1586296902,-2012838918,1048773130,1963985538,-129594611,1979336203,139638804,2122516971,158662908,-1995941448,1586296902,-129594374,-1980082549,1451881030,972434420,1946848310,-1810986212,-1878070518,-893244,-2144931258,359923775,2127444806,-1863455984,-228670394,653412095,1962950528,-1707176973,-2080494838,689726,-396949643,-998047458,1996445186,-126418950,-2097057816,1048774340,1946159750,65558279,46433025,-443850914,-1957313699,82609132,-1995798367,2122579526,108291844,1191476867,28312693,-1070988565,-2080618872,691262,113706613,395924,16547456,1048776052,1962936980,-1811495162,-16776950,-16089034,-16083914,922682486,1996425880,2081882110,180650760,16547456,1048777332,1962936954,-1741226229,2115436298,46433032,175783555,-2095942656,693310,922684277,385813144,-998045566,-2012839166,113707018,2716,185238689,1946847750,-25755885,142874367,184730755,-1207601984,48955393,-397361109,-443875064,-1957313699,1048794860,1962936978,2082376495,38797066,1183452792,-13137148,704940039,-1878266908,74907475,-2080991768,1967129796,-1845035257,-1878660342,177211135,-1866244770,-2081649835,1448542956,177356419,-1958120192,-167050122,367739518,175912703,178140927,-2081006104,1967129796,-1845035260,1321634570,377405451,175906443,2013417471,178168027,134168459,-467008120,1048829163]},{"sector":5,"data":[1962936978,71731975,177210881,-443850914,-1957313699,49054700,1988843095,-1841396984,1349845002,922688747,1589906044,126494212,-1552232,79987701,-16485056,-16084474,-963967930,1958742862,2082376477,38797066,1589957752,126494212,175906443,134168459,-467008120,1048826603,1962936978,138840839,177210881,-443850914,-1957313699,183272428,915101271,-1070921064,-1979955575,1048836678,1966082718,-1945749224,957510666,1946844678,-1777977082,-955878134,537566726,-1707177216,904418826,46433030,737691273,75377656,176569987,-2145880832,326446396,178142851,-1408469712,-1645719400,46433278,-2080878849,806002238,-16053388,1048774526,1946159750,75399961,-16354304,1609103942,-1673624832,108265482,-386119937,1048772714,1962936966,-1612163290,46433278,294531,2122516852,57999610,-2097138200,695358,2122516852,57999612,-16761368,1444870262,-2080451608,1048774340,1946159750,-1643722995,1459625994,-2080480792,1599996612,-1017256565,176438915,-1207602176,65732651,1342185656,-2080503832,-1866267964,1342189752,-2080506904,1048773316,1963985564,-2143386857,108265482,-352298824,2025361412,-571977728,46433277,-1957326653,82609132,1988843095,-28915962,1015021569,-1961921238,-1962244066,-2012839105,-347733494,1015058504,-955878099,-442,-2130760890,897331260,2134457472,-1942079184,-2146732790,108343356,178128583,76152880,-774927464,65130977,65130959,820609992,-2142832245]},{"sector":6,"data":[92024892,2117680256,-28931103,-125046793,-1996202357,1590070079,1575324511,-1957326653,49054700,140557910,-352039286,-2142859262,175374396,-160101318,-352321096,-1070886909,1575324510,-1957326653,82609132,990142091,1913057822,151042053,1190603499,1954545672,176063304,857371648,-1194226743,567099905,1190611826,1962934794,105251598,2030589459,369145896,-1992889351,1183448662,-1194226692,567099906,319178243,226035798,-1946268021,12123222,-350106302,106335192,-1979167093,1119095366,91365837,116696960,-225973763,-2081649835,1586170092,-232899836,-1207471610,-369555200,-2013859215,1948255988,1107474443,-779368141,-344841779,116688886,-1955695488,119408214,1183432755,-62486018,-1957275652,-1980593158,1317795942,-1336614136,1974399498,13953098,1979754557,49054536,12246155,36191490,-2135293069,-1948112128,385518548,139365127,1946827948,1962621708,-186471911,-352312344,990752865,-402426373,-1331036136,-62456054,233366507,1591929600,-346690721,-373279931,1397812575,735021905,-1961827382,1085539422,225583565,201213441,1493595328,-91531173,147096515,162792563,-2013913365,1950353140,106859275,1964654464,216791043,469809401,1183516395,-62510082,1593337483,-241964705,185093771,-1962576439,-242751039,-1274653045,1931595072,-351685628,1975520228,-192416032,175390726,1065409163,-133991142,-1191587861,-907338752,119447897,108250171,-654851029,-1070341633,-1957299477,73305068]},{"sector":7,"data":[74767115,33443712,-1017256565,1458342741,140950359,1962950531,-1207493079,1944584197,855995649,619420096,-1543625664,1755514982,80188936,-964493311,-29047036,915013630,1317734508,-1898411004,649408,-443851169,-823540899,-93044480,-2080448128,-227283207,-66947189,-1459713107,1212314625,359907643,-268185461,1946265773,96600884,-141885438,-335657847,1962839014,-1980169460,-1054081460,-351958712,-17235195,-963903924,-779298164,91541819,1948159014,41912584,113649347,1023543418,628424702,-268173685,1946265773,1224641522,-1116487365,-268185461,1946265773,96601058,-141885438,-335657847,138906598,74760203,351000718,2047802918,-1945013240,1003982040,637891783,141565582,-1125435509,856061835,7006400,225756731,1077936420,6219928,1308495220,1894654,1318454644,-1936069810,1003588824,637826241,-1962380125,38242567,-1013333965,-28996783,57934248,1095354411,2147465793,1981168422,-788236792,-1946847766,1925579713,1925317397,601028365,-389665854,141885452,-355347721,-1070340747,1364378457,1946164712,-24422632,-234622837,-16890681,108497407,-684992885,-27948726,-1017489064,-768389037,1347572254,1342177720,266870534,147096320,536869507,41179994,12833291,1458342741,2122516055,947191816,-1962509633,1183516246,125126660,1912624104,-1958155481,1208404534,-147123852,1149963636,205949186,3860566,-2093976738,-25099066,74647242,108384779,-1711276104,-628417045]},{"sector":8,"data":[-787496061,-754732581,-850873109,-1830194655,1418265737,-902395646,130036486,-443851169,1317782365,972524300,208929356,-2130393469,1963379454,1072429554,470014603,-745850510,-147078770,507053685,645072500,-787496061,-773074469,1005310443,50951671,116105689,-1064380373,567102132,-147124878,378078325,-2020473228,-1009677564,-1947432107,-1931572265,-1950314792,-1070398338,-218103879,-9073234,-1190756725,-1359806465,-114568713,1183579783,29816580,-1543343104,-202780343,-204926043,-1946973276,12803578,-1947432107,-1948349481,-24443274,-1064380276,-4603853,-139529473,75402193,27838347,1235485300,-1510741551,-1527527149,-91491445,-1957313699,-1932030996,-1950314792,-1070398338,-218103879,1238497198,1576700817,-1957363517,-1286121748,29550848,-1947432107,507184222,293406450,2080439171,-192416244,91504646,-352321096,-1950338302,12803557,1458342741,183272279,-839498042,-2012985717,624752454,641469044,1187382900,216779768,-872790330,1157187270,1157121734,-1913366900,1183446598,108956658,1569392011,72190722,-1962519157,2106263669,1593791754,1476156914,-1995932021,39684357,-1996206711,1971914325,172330760,-164428686,-1276638997,114413,1971914123,180650764,-443851169,-1957313699,149717996,74877782,1342177720,1347469355,-92346282,-1995914109,1451882566,-49670,-92074891,-1207470593,-342228993,45649964,-1070903296,-396996528,-997983656,-62486264,738088585,1996443840,-126418950]},{"sector":9,"data":[-96278442,-1962359677,1452014662,-443851010,-1957313699,-1957210388,92996734,-1962779253,1435173965,141921030,-854950517,2123061025,-1996125946,1300824669,106268932,-1895271031,74582597,149681715,-1091761688,92995585,1594652041,1575324510,-1957363517,2123061228,-1962467836,-1178586145,-1359806465,-1965426879,-74774970,944746226,855798789,1606913023,-1017256565,1475119957,2123040542,-1178586364,-1359806465,1339684673,-49920374,944221938,855929861,-1962742848,-1956643641,12803557,-1947432107,-745864098,-1073084534,1630278004,74652220,126370052,168266307,-1829800512,1317782365,71731978,-1962518901,509020286,177470471,-2095876928,242551545,175755787,-139842128,13796315,-141829385,198325138,-150833984,-235432975,80971666,1983462448,-1440283646,-1022639477,92856949,92712015,-1912650616,-952434364,1599664754,1575324510,-1957363517,75400172,-1962574848,99288134,-150714741,-1866244648,-1192457387,116129791,-326412912,-930365389,160308875,182516609,109252724,-1962800754,126420038,41208075,-443826125,-1957313699,73305068,567099060,15448553,-1209234603,72780623,-1957361429,-1957775380,448006230,-8379955,-1962511026,1317733462,-840463866,-342824671,-1947432107,12059734,1914817859,106859269,2078871433,-1957363477,72780780,-1274657141,1914817853,140413701,1676216201,-1957363477,-348146452,-326413051,1586184372,172919556,106349854,1914642893,207522565,1072236425,235]},{"sector":10,"data":[0,0,1377850189,1412263541,543518057,1919052108,544830049,1866670125,1769109872,544499815,539583272,943208753,1766662188,1936683619,544499311,1886547779,1766195217,544433516,1886220131,543519329,674639,1830842190,1919905125,1986076793,1634494817,174419042,1851867904,1713402919,795111017,1852141679,1818846752,538983013,1851867904,1914729511,543449445,1701603686,2105402,543449410,1835888483,543452769,1701734764,1853453088,175661428,1684095488,1836412448,1667854949,1735549216,1852140917,540680308,1836008192,1701994864,1920099616,1629516399,1179590772,1413829446,1866661920,1918988397,1919230053,544370546,1277195361,541412937,1818846720,1025519973,1768292384,540173676,1308631101,543518049,1713399407,1953722985,1818846752,1869881445,1836016416,1701994864,1308631098,543518049,1931503215,1852793701,1768300644,1948280172,1868767343,1918988397,2112101,1769238607,975203951,1866661920,1918988397,543649385,1851858944,771760228,1174416942,1936026729,1701994784,1718182944,1701995878,1931506798,1936030313,1866858506,1952542066,1919903264,544091936,1953068915,1763731555,1848582259,1482184765,1867776088,1634541679,1663072622,1634561391,1814914158,543518313,1969713761,1953391981,1866662003,1918988397,1869422693,1713399154,1936026729,794372128,1059072334,1866661920,543452277,544501614,1634760805,1931502702,1852793701,1768300644,1634624876,1931502957]},{"sector":11,"data":[1935745135,544175136,1668571501,1768300648,7631730,1886220099,1936028257,1701344288,1852793632,1953391988,1718558835,1870099488,1818846752,1864397669,1702043762,1864397684,1768300646,779314540,1329790986,1528844365,1635017060,1528847665,1635017060,1528847666,542983215,1564553051,1278171936,794501213,1970158926,1919246957,794501213,679235,1633951776,540107124,538976288,1667592275,1701406313,1869357171,1769234787,1629515375,1847616622,677735777,1864378739,1768300646,544502642,1701603686,539587368,1663070068,1634757999,3040626,1633951776,540172660,538976288,1667592275,1701406313,1869357171,1769234787,1629515375,1847616622,677735777,1864378739,1702043750,1684959075,1818846752,1948283749,1868767343,1918988397,536882789,541339424,538976288,1142956064,1819308905,544438625,1717987684,1852142181,544433507,1679847017,1835623269,1713400929,1634562671,1411395188,544434536,1948283753,1679844712,1969317477,536900716,538976288,538976288,1931485216,1769239653,3041134,1093607456,538976288,538976288,1886611780,1937334636,1718182944,1701995878,1936024430,544106784,1229148993,1751326793,1667330657,1936876916,538968110,538987567,538976288,1766072352,1634496627,1814066041,543518313,1651340654,544436837,544370534,1717987684,1852142181,779314531,790634496,1970158926,1919246957,1836008224,1701994864,1852776563,1948285292,1713399144,1953722985,1701868320,1768319331]},{"sector":12,"data":[1847616613,1700949365,1718558834,1852402720,1763734373,1634017390,1713399907,778398825,790634496,538976323,538976288,1936278560,1634166130,544433266,1702060387,543584032,1229148993,1701584969,1919251572,1752637555,1663069797,1634757999,1735289202,1818846752,170816357,544166912,1886220131,543519329,1937007987,543584032,1701603686,1965042803,1998611827,1667525737,1935962721,544106784,1635017060,1851858993,1633951844,540172660,1634886000,1702126957,3044210,1293955121,1634562921,1701340020,539828339,1768189541,1663068014,1634757999,1224762738,1919902574,1952671090,1397703712,1919252000,1852795251,1701729536,1667592312,543450484,543452741,1176528495,6646889,1635151433,543451500,1953068915,757098595,168624160,1701603654,1850679345,1210087788,622883681,1766596708,175334766,1175063808,845507689,1819168544,1632116857,1680154739,1852394528,684901,684837,684837,29477,0,0,1931804672,621442341,171910515,556102437,1931804682,621442341,171910515,556102437,1931804682,173567013,1059418917,628303114,2593,1814393637,1931807320,621428517,169944435,168624128,4325412,6881364,9699457,12910765,16056542,17236222,21496103,22872402,23527779,27394434,31326658,38404628,46662272,56034063,60949356,69272533,78382181,81855691,84542712,1931805989,1931804682,1931834149,1931834149,1931804682,168624138]},{"sector":13,"data":[684837,684837,620759565,175318387,628303104,620759667,620759667,620759667,1931807347,1931804682,175318304,175318272,175318272,7546112,684837,2764330,707668572,707668480,175318272,7546112,684837,684837,175318282,628303104,620759667,538976371,1931812896,175318282,2570,0,5039,1275069120,108704000,1180648251,1598377033,1330007625,11665422,347078682,-2122219264,459009,1376434,-1073278288,344834,721074,1208496,34996224,151853058,118230028,-15329784,34737426,-536870657,-536870900,268,0,66048,0,131584,0,230400,0,1107558912,2013311488,110592,262656,7602354,671600816,1819047278,1848115241,694971509,539831040,-1308617693,-1342172416,32,1679057920,1679057940,1336340,0,1441792,598194,673720496,337960,1188018,84144,987314,689328,269488304,269488144,-2122219135,885121,1311154,269488304,-2112876528,-2105376126,-1308619646,-1342172158,269488144,-1308621536,-1342144256,133792,917682,1008175280,1397575228,4079175,808866304,168636464,1953701933,543908705,1919252079,2003790950,50334221,808866304,168637232,1852383277,1701274996,1768169586,1701079414,544825888,658736,911343625,221851696,1847602442,1696625775,1735749486,1886593128,543515489,544370534,1769369189,1835954034]},{"sector":14,"data":[225734245,16515082,-16774643,1853190656,1835627565,1919230053,544370546,1375732224,842018870,539822605,1634692198,1735289204,1768910880,1847620718,1814066287,1701077359,658788,911343617,221327408,1847602442,543976565,1852403568,544367988,1769173857,1701670503,168653934,-1308567552,-1342174465,4642,22675456,64423936,1112671080,-1064507253,234885125,303903,787971,244039822,-108331002,-34108593,-1202674445,-883949516,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704,78708751,-789068149,-628299565,74698795,-768878452,-268181293,-947135858,-388771593,-802438516,-1064565645,-522989013,-1030817789,1322289836,1187548077,-31145334,91598908,-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094,-1031072797,-1064385789,-2080863315,292880383,-501415642,16417267,-2129234704,-351272766,1086360796,-276578162,486614544,-339702200,-1950118942,-1962932162,50334262,33948144,1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602,482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,291952,304951932,856691383,0,0,0,0,0,0,0,1577189376,1575324511,-1957326653,283935724,2122536535,343146500,-1593835074,1183386248,-94466824,176686723,9562370,176307843,-1961396976,-1962244066]},{"sector":15,"data":[-1878584599,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899]},{"sector":16,"data":[538976331,16843264,4194816,50069864,33685504,1879179265,-50147328,33554434,33554689,157286624,2041,0,0,1,4190224,0,0,0,1,0,0,0,5177344,131087,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33554433,33554434,33554435,33554436,33554437,33554438,33554439,33554440,33554441,33554442,33554443,33554444,33554445,33554446,33554447,33554448,33554449,33554450,33554451,33554452,33554453,33554454,33554455,33554456,33554457,33554458,33554459,33554460,33554461,33554462,33554463,33554464,33554465,33554466,33554467,33554468,33554469,33554470,33554471,33554472,33554473,33554474,33554475,33554476,33554477,33554478,33554479,33554480,33554481,33554482,33554483,33554484,33554485,33554486,33554487,33554488,33554489,33554490,33554491,33554492,33554493,33554494,33554495,0,0,0,0,0,0,0,0,0,0,33554433,33554434,33554435,33554436,33554437,33554438,33554439,33554440,33554441,33554442,33554443,33554444,33554445,33554446,33554447]},{"sector":17,"data":[33554448,33554449,33554450,33554451,33554452,33554453,33554454,33554455,33554456,33554457,33554458,33554459,33554460,33554461,33554462,33554463,33554464,33554465,33554466,33554467,33554468,33554469,33554470,33554471,33554472,33554473,33554474,33554475,33554476,33554477,33554478,33554479,33554480,33554481,33554482,33554483,33554484,33554485,33554486,33554487,33554488,33554489,33554490,33554491,33554492,33554493,33554494,33554495,0,0,0,0,0,0,0,0,0,0,33554433,33554434,33554435,33554436,33554437,33554438,33554439,33554440,33554441,33554442,33554443,33554444,33554445,33554446,33554447,33554448,33554449,33554450,33554451,33554452,33554453,33554454,33554455,33554456,33554457,33554458,33554459,33554460,33554461,33554462,33554463,33554464,33554465,33554466,33554467,33554468,33554469,33554470,33554471,33554472,33554473,33554474,33554475,33554476,33554477,33554478,33554479,33554480,33554481,33554482,33554483,33554484,33554485,33554486,33554487,33554488,33554489,33554490,33554491,33554492,33554493,33554494,33554495]}],[{"sector":1,"data":[0,0,0,33554433,33554434,33554435,33554436,33554437,33554438,33554439,33554440,33554441,33554442,33554443,33554444,33554445,33554446,33554447,33554448,33554449,33554450,33554451,33554452,33554453,33554454,33554455,33554456,33554457,33554458,33554459,33554460,33554461,33554462,33554463,33554464,33554465,33554466,33554467,33554468,33554469,33554470,33554471,33554472,33554473,33554474,33554475,33554476,33554477,33554478,33554479,33554480,33554481,33554482,33554483,33554484,33554485,33554486,33554487,33554488,33554489,33554490,33554491,33554492,33554493,33554494,33554495,0,0,0,50641920,1930458600,293922826,54986438,-395384060,1048584061,1962944194,-359643,113643381,-402652345,367525996,-336366847,-386233590,113641617,-352058553,1191626245,-617414141,53157514,-1979694872,-402445282,1048576057,1946157942,824085007,2013709827,2025456643,101509123,58146432,-1978698752,-972869090,67410950,-402350918,1201669622,55025667,567102644,-2134695731,91488507,-851177544,832619297,53453315,-1576848736,765526832,56468227,56100550,1493616128,113639427,-973077653,224774,53755520,-402033406,1743257688,133097472,56624839,113704960,866,990077601,1996708358,8644630,57556608,-400985087]},{"sector":2,"data":[1048576921,1946223470,-2132677873,224062,-1950415243,130279442,57556608,-1089309439,-1226304895,1195278343,91553795,54986438,113754881,297406887,-401499201,113641373,-1023278219,296158919,-1329655365,126609425,58001094,-37764351,125822993,311803728,1510439144,1913103592,1929526289,1963015401,1174849032,-336068605,-2084308735,221246,1048586101,1963000628,-5838842,-402178072,1048576063,1946223412,56223747,-402483480,1048576731,1946223470,924748583,1763608835,56664323,56231483,1772164727,1678115587,956709635,-402032893,117376358,-504691872,-1965345853,-972869858,17154054,-1061527375,103278597,57949824,-2132380671,33780798,-1779891339,-734100736,-160169979,97926787,-1578142720,194577871,-1593346624,378209756,922158558,512427476,-201914922,54789691,-1555545481,-727645350,54305541,54214272,1023964417,745668616,973080760,1996702214,56402467,-1559902303,1048576861,1963000627,9234691,973461153,1996702470,1604470791,20310275,57542342,305708801,-972657432,67323654,-972985367,17001990,-401490753,113641049,-385612985,113639768,-956234920,220422,-1965346046,-956092642,215558,1208403712,-956299261,216070,20178944,113755506,590664,1912678632,1208403812,-402649341,1852965149,55051975,317194258,-952405503,604194822,17295360,149626226,56559302,11659520,54265543,113639460,-953941156,1325619718,-949359872,302201862]},{"sector":3,"data":[1543947776,113709571,5178202,113727211,983868,56362694,1510393615,-352301309,1007077187,-973076477,134437894,56231623,820707367,113748715,590652,56362694,1510393609,-956291325,1325615622,1208403712,-956299005,216070,8906752,113706610,5178202,54214272,-972720895,134437894,53689984,-943885311,16993286,-1598016768,1218642780,6023171,113683058,-2147417249,33768254,-873921676,1480491262,57999619,-1157365528,1105724902,1980155396,-617414397,53419658,-972701510,67485702,855820776,56402112,-1593307229,-1556085926,1553994290,305439235,-33333344,305570496,-401471553,1354958073,-1588440749,1319307279,55353603,-1593308765,195232586,55091464,135111496,135202503,-1481113599,135373607,135470732,146432433,66316296,57949824,-2133953535,33780798,-336067724,1319237889,135242499,1482381658,1364414659,855858593,-1965345838,-150774754,57123811,-1325179487,-2131626480,41156860,1721942270,56598531,653705470,512361308,-470416538,-1962711901,-1996278498,50556958,924748248,1482381571,54108611,53937707,56886843,113643635,-1090452626,1189613929,1191626244,-2134703101,16987198,1048580725,1963066229,-57087995,-2115501077,68872444,53943947,57810569,56770179,-2146339584,16987198,686293877,1849589760,544473347,-402504472,117375412,1621164896,1510357763,-1592953085,100860786,104530788,-478805191,-1965345853,-972869602,17228806]},{"sector":4,"data":[-457547599,50587654,57949824,-2132380671,33780798,-1981217931,-130120960,-160169978,117063299,-1585744896,194578163,-1593346624,378210048,922158850,512427768,-201914630,1510357320,-1589283581,1017317112,1543911427,1949923075,993951770,158662915,56376960,-349408760,1543907850,14450691,-1591904952,104531691,343212893,56573568,-2096466687,34011710,-639039883,14084352,-973026327,17001990,-401488193,113640257,-385612985,113639653,855704409,807307995,1241958147,-956301309,134432774,1275512576,-402653181,-881656287,55051975,384303113,-951160066,251873286,-32774144,113727858,1180488,1929249000,1208403753,-402643965,259194357,54265543,1048576036,1965294428,-951981219,302201862,1547599872,1316295171,113717995,983868,56376960,-348162801,1007077155,-2147481597,251878462,1048588404,1946747740,-955389143,151206918,1547599872,443813635,56573568,-954698752,16993286,-1598016768,1218642780,-41162749,1625818483,-399971582,180027713,25356295,113700978,-1962867849,1124293150,115875465,53485194,-972626758,67560454,-1023409688,2129150129,1889649409,57254659,-973039128,224262,57085579,109970974,512623474,-13434000,-2143881677,214590,1491601781,113653250,-402586810,520552529,-967831948,1493396742,-33446424,1476619014,56573568,-969902847,17001478,57095819,57097867,57085579,109970974,512623474,451412848,1948190464,113659918]},{"sector":5,"data":[-396819603,117309806,-1588067477,100729700,-775748750,1726599657,-1597790221,109445935,799146800,56795395,56624775,-1023188317,57411270,2156544,1688326707,1594788355,1106063875,100790775,117310313,1822425964,1594243587,-1008828925,1822474291,134849283,-1560059743,113707019,2061,-1560057439,113707027,2065,512416563,1638990639,-402126662,1048576133,1946157940,1950253077,-999030525,57476806,-672640927,117331968,1354957675,54279811,-1106938359,267059998,56573568,-1106938880,65733393,-1593637698,1048576828,1963000664,97821453,-1190803521,-1527578611,1048580843,1963000665,116957963,-1190728769,-1527578611,244040536,260637500,-1191001213,1570832385,1007565571,-1995737341,-1992080625,1094927111,-960237589,226310,229655732,567085237,31982451,1352450816,1448235347,1394476631,12278196,1528941824,356321055,1023898624,460587027,113650155,-29290011,-451018549,298893073,-1090482968,-2031611273,-1090065664,2129138163,7268352,57935558,-972690687,33780742,1499094623,-1013098405,57491072,-1977518751,-33345770,1103265994,300226184,307103431,512430565,1119814496,1191626258,334168835,56630923,-2146275905,214846,113640821,-1610546361,916587372,840861970,2091026,1845937859,952041731,1304594,54986438,-1782594812,518162,-401479233,1405288449,-1957277103,39684869,-1962642037,1435174477,146073608,1049433203,1569395008,74812162,-1962521205]},{"sector":6,"data":[-1612183467,1516173576,-1195156647,567108899,1465274819,190680403,604653450,1978678512,642091542,74721340,192227644,-1090508866,79233063,1537536768,-1017553313,0,131072,0,256,2,33554432,131073,0,786176,0,16781312,16777760,0,67043328,256,0,16778495,0,100597760,256,0,16779007,0,134152192,-1526726400,273,3071,16777216,536936448,65544,70053,1078001408,65545,0,720640,1,-16777216,65547,70106,786176,4581,16781312,3817760,16780288,0,234866688,256,0,16781055,0,268419328,285212928,786,838863871,16777234,536936481,305397771,553779200,186646784,1193472,2163456,8193,0,65552,0,1179392,306970625,-16777213,300220427,268566528,186646784,1193472,2163456,729089,4658,16785668,16781856,34756352,335478784,256,0,16782591,0,369033216,256,0,16783103,0,754909184,257,0,255,0,0,-256,255,0,-256,255,0,-256,-1,255,-256,255,0,2573,167772160,606348288,606348324,606348324,606348324,606348324]},{"sector":7,"data":[606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,1397564452,1397703712,1919243808,1852795251,808334624,1126703152,1886339881,1734963833,824210536,758200377,825833777,1667845408,1869836146,1126200422,544240239,1701013836,1684370286,1952533792,1634300517,539828332,1886351952,2037674597,543584032,1919117645,1718580079,1816207476,1769087084,1937008743,1936028192,1702261349,100606052,72192,131176,196732,262286,327838,393455,459072,524652,590223,655795,721366,786938,852482,918048,983602,1049169,1114759,1180341,1245933,1311505,1377111,1442669,19661688,19727223,19792802,19858377,1226245108,1919902574,1952671090,1397703712,1919252000,1852795251,1226115597,1718973294,1768122726,544501349,1869440365,168655218,1986939155,1684630625,1918988320,1952804193,168653413,544162900,544501614,1667592307,544826985,1701603686,1701667182,220820264,1836008202,1684955501,1919903264,980705645,1397310496,1297040203,1683693648,1702259058,1528838705,1986622052,1564095077,794501213,1528847665,173881391,168645645,1635151433,543451500,1986622052,1886593125,1718182757,1952539497,225341289,1701860106,1768319331,1679844453,1702259058,1701798944,1869488243,2019893364,225735529,544370442,1847620457,1915580015,1987013989,1701601889,221186573]},{"sector":8,"data":[1851867914,544501614,1263749444,1347243843,544175136,1713402479,225275762,1847615754,1870099557,1679846258,1702259058,220596749,1936607498,544502373,1397901638,1768169556,1952803699,1763730804,1919164526,543520361,221917477,168634122,1702063689,1394635890,1313817413,1768169540,1952803699,1763730804,1919164526,543520361,221917477,168633866,1397901638,1768169556,1952803699,1646290292,1864393825,1852383346,1886220131,1651078241,168650092,1393167655,1313817413,1768169540,1952803699,1646290292,1864393825,1852383346,1886220131,1651078241,168650092,1953451531,1634038304,168655204,1701990433,1629516659,1797290350,1948285285,1868767343,1852404846,773875061,773860896,1460996621,1702127986,1869770784,1952671092,1920099616,168653423,1124732194,1634757999,1629513074,1752461166,1679848037,1701540713,543519860,1311725864,960438313,1866664461,1918988397,543649385,1948266789,1801675122,621415795,1702043698,1919906915,1701847155,1920213106,745235297,540222752,1701079411,220820264,168636682,1986622020,2037653605,544433520,1679848047,1701540713,543519860,1701869940,1846152563,1663071343,1634757999,1818388852,990514533,1851066893,1868785010,1634887030,543517794,1684104562,1920099616,1864397423,1919164526,543520361,168636965,1701079411,741549344,1634890784,622881635,654970164,1866664461,1918988397,1919230053,544370546,168652399,1701079411,741549344,1634890784,622881635]},{"sector":9,"data":[1225395508,1701536077,1920299808,543236197,1802725732,1702130789,544434464,1702063721,1684370546,1953392928,1946815855,1679844712,1702259058,1684955424,1701344288,1869571104,1936269426,1869374240,224683379,168630538,1886220099,543519329,1668248176,544437093,1701080677,235539812,1866664461,1918988397,1263476837,218237453,1866673674,1918988397,1948283749,1663067496,1702129263,544437358,1948280431,1713401719,1886416748,1768169593,779316083,168626701,1397310506,1297040203,1683693648,1702259058,1528838705,1986622052,1564095077,794501213,1528847665,224213039,772410634,825172000,1126178848,1634757999,544433522,543516788,1936877926,1769152628,1864394084,1752440934,1768169573,779316083,540871181,540552992,1866670112,1918988397,1864397669,544828526,543516788,1936877926,1768235124,544499815,1952671091,544436847,1696622191,543712097,1667330676,168636011,1049429774,-1048505434,29557920,-16711675,285213951,1702131781,1684366446,1920091424,622883439,-1928917455,-2095559874,46342337,-16711675,234882303,1936875856,1917132901,544370546,118370597,409943693,-1021460093,106058576,-1899416745,-1191234623,11670062,109850573,1049170611,783815345,-855461358,-1157198801,-1187084014,305051666,801965234,315295372,315178633,-1307431240,-1943024378,-1995264250,-401429186,109903755,1049170603,109843113,1049170631,-1712844091,-1090089729,-1119975150,305051666,801966258,315819660]},{"sector":10,"data":[315702921,316933831,113641997,-953937107,1239302,-351877376,-402650606,1049231138,434639573,3074048,1358971368,1912623336,123689224,-346530982,214205188,1448133625,1660991518,119415245,-1995935201,-1944920778,1578295046,12108632,47940,567136819,-2147359104,28836302,-1021194940,-1153171272,-768409599,-830463539,1140963329,-1262280243,1025625392,57999365,1025043448,91422722,-335544389,178947,-1191181896,11665408,-1007026250,1431393104,-1957558697,-518092311,-432633838,48883730,594856203,91614475,-352309272,28960771,-396750990,1594294542,57987594,-351957272,113541892,117763065,1928944223,1532583176,-352140157,147096324,1397801977,-518091950,-294126,753403253,-402396416,259194999,12278196,841075968,113542116,-2096043015,192217083,125092155,-2097106712,1928922820,1482381827,520494787,1963063683,637711387,567088522,-389903841,102629553,638022431,-855550582,267122721,-922025292,-1977218700,1193397525,-118262455,1347928863,-91532538,-645200098,-218359120,721647022,-880063527,1599604571,197145539,508523721,1085546246,-108800117,-852986623,642785057,1525155210,102651904,-133795041,-851296076,-2144953311,41228861,32227723,-68677937,1427827711,-5838767,-849745525,-352160991,1959279371,-118998265,-1047854475,-1195172003,79364135,-1023298304,1962933888,-2134444527,119409781,316948109,-402652487,113508096,-583089065,1962871570,1032005143]},{"sector":11,"data":[276101120,1912945190,1161438727,-117344511,-370456761,-1883044001,856876806,-141388837,-1827476682,317404919,1980365443,935493637,-1031797781,188830256,184841664,-2093386533,225772537,738884736,922682741,-348056844,117015330,2088766837,91565066,317994751,-2096043199,192219641,738884736,922682741,-1824451852,-1477717453,-1070345677,317142783,198325187,-1272875831,637579301,175449400,23410726,-1002830732,-1977217419,-11278331,1195835763,-478852798,197822294,1295217901,317275779,-1976863488,805570116,21314086,518718069,74788924,74764811,-404016125,317079168,1107850751,1330202946,-1174148273,727187455,-32839431,57891167,1368424427,2088815243,225705990,108316939,1195854153,-346160661,1976109840,166419971,1979709827,197735170,1431729407,860948055,-381778999,762642450,252134646,2093222005,41216002,1156979435,208932103,235357430,1156974196,141888519,-402490172,15401602,-352224536,2156547,123275122,-346137249,180650756,-381778951,91553810,350815090,-385431553,-1023410158,-375270861,-351877358,-402650606,-2007433579,1125313927,1967192963,33089539,-294270466,-1995829832,1125313927,32041027,861099715,-2134297610,141950974,315997323,636215179,1946339062,-1178811384,-339506158,1260824,658312562,-1006078208,-1944926788,-1006179389,-1944933956,-293949,-25160075,-117213697,-375190293,-18414,855638461,216791286,1946221443,5564419,-133904765]},{"sector":12,"data":[-922024334,-1611988363,33456284,1431447925,1347880529,-855310152,1493122095,-661976715,-855309640,-117314769,123667827,-2096698535,216532676,-346399488,-401682687,1583087611,-1185916989,-1070399489,-772296974,-1017161655,1963064195,-784432355,376766226,1979711293,-375304181,-786497774,82532370,315694847,-919397653,1962933888,1300899334,772401923,74790200,55413294,-117127293,200813939,-2145815351,91553790,-351978714,87764483,166396533,-2096794551,-471137081,-2146667783,1979252734,637996546,1912765699,653079046,-968422006,1237766,-2133118013,1962935932,-309868783,1127030802,-309868989,-398254062,861733030,-1999490085,-1978473714,-1053161148,-1054204298,1157034122,343179271,-2012593014,1125313927,1967192963,8185859,-327823618,556160,1278741876,705196808,-779483060,185093258,-165382967,1963919172,121959948,637957136,-347667062,-2021107711,-2092756243,58015995,-33537560,-153324087,1971324740,1962281496,172263956,317556616,1090224963,602407797,1976499712,121960172,-167217905,1947207492,168618754,-1895271214,-32315642,-386370102,-1017839614,509019729,868977415,-314667557,-77928430,123667826,-2096829607,-1007089980,121960029,638743856,1095763338,1945911528,1166681606,-336048127,92939789,74760202,-169131705,-1017775829,869413725,-351877184,855642130,121960155,639923488,1156973962,225774855,57966760,-947968957,169011974,121959936,-955878130,169011974]},{"sector":13,"data":[-162206976,1963984708,93005350,218580214,-990507147,1124365440,-947919744,169011974,121959936,-955878130,169011974,640215808,-1960442485,1156973141,259329287,1954596598,-427801852,-351877249,-167769582,1963853636,-351877370,-402650606,-619971651,-768408204,1431449010,508711363,1992358528,616729096,-351489009,115509762,-841512161,-92266719,309655562,1945857256,-1966568949,-1977496094,49019105,74580148,82532698,-117128061,195,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-16777216,0,1014783323,993864510,113704994,8125,-1341224452,-1308178657,-956301281,2082054,-1241069824,-956301281,1528843270,1309067101,-952337376,1042305030,1376175915,-398770912,326304978,1409286072,639470374,57872186,1526727352,-1996419863,1394589494,512578903,116793287,1965039550,1575529534,-399019515,846464198,1963259880,-1106840042,91562015,-352022040,-1106840030,460603679,-2011632818,1966947335,-1106345979,-398261985,-915208887,1124567212,-1991326741,-971000778,512294919,-1960435773]},{"sector":14,"data":[-952726243,792494111,1015034228,-167283678,18857478,-1977200523,-466484921,531629625,-1331621517,1138807071,651690819,-2132271221,-949556480,18854406,643754752,838944650,-523157276,-1977165821,200094223,1125086409,529213011,1526774760,1128480627,113767138,204722,-1977207829,-466484921,65065280,126494424,-523115470,651690816,-315486326,259311883,-1960422589,5564447,1124758363,-940383677,69186054,1532976384,531631755,-1960856927,-1960856522,-1977633258,-132138978,-1960423229,174343,117376117,1015029680,-1458014976,141885441,531760839,250281986,-1274826672,9758975,-402396328,-1017642736,1364575225,139430438,-921965262,1871514996,34924553,233310323,-101260800,780731883,1509433285,-2144943267,1946157182,-152353533,243319621,-401596482,1114832840,532555392,-1046392593,29764383,1478475526,532756107,1962949760,-8617949,-955747014,153072134,639560448,1946173315,133637656,292880385,531760839,166395906,-134179864,-335999509,61886474,65601460,-1007134720,2139825751,-1237415676,92808735,23431206,533045584,38111526,1963015256,1435051530,1300833796,1012525830,637957378,-352037495,1946631247,1946696936,1963343076,1434985990,1010690820,-1592888060,641736639,637814153,-351904372,1971922475,1569465860,-165261306,1946223175,-352014332,1207313929,91488770,-1779957072,-165259264,1947206215,6809603,113689439,1342185557,185043750,1343714752,-950578605]},{"sector":15,"data":[153072134,-1325419520,-10426365,1482381919,65733355,-1450170389,326369536,531760839,-2132279296,33089537,531775107,-1458670327,158605312,531760839,-1494745088,1430159360,225771808,531775107,-955878144,153072134,1354979328,168069718,1008235712,-2146732742,1962934652,312837,-957871637,1174500098,1591929670,1381417816,76206218,1912780008,1958742539,780299,32179336,-353679802,1019436634,1007448960,1010397793,607483770,1395780575,1049450246,355999815,1364203380,-1274601902,-1144878491,96075775,-17920,1499079117,22907736,1124287886,645934147,1527209943,1915763907,2000239624,-131060732,1355020739,643256915,637960075,-1073085046,-4979595,113707243,597938,61931444,1610508776,-1017619622,1448236368,76153522,1912742120,-8656838,532547318,1007514632,639530301,97920,317419125,532547318,1007580176,638219578,32384,-347710859,1178216026,169637120,1179677888,638774085,1962952250,76170819,1178216005,1178170624,-156505275,1075822086,-148500620,2097735,-2144991372,1946157182,133637666,410255376,158677564,8290342,-351439616,1962949646,2122327559,57948672,-1996100615,-132136650,1482512990,1448562883,532627083,-1073085302,1474826612,-970951424,18896134,312926,1580854111,1593836742,17299238,-953322240,35631622,1478880000,168069718,-400853824,192151594,1929465064,1195788034,-1561662650,80093112,1049184000,1600004020,33597784]},{"sector":16,"data":[-1269823116,-402280193,-1017578142,512577875,163127372,1946630656,-102612220,-1017423551,76173904,896843786,1912670440,24937258,638415930,1050615,2088770932,393543681,1631330316,2050756978,1613499767,-4927350,401082032,-955847683,153072134,-1017619968,2156716,1374164596,-166431488,538951174,116846196,1950425022,116084233,-134091783,-1007107250,222056787,3943796,171714932,-2144983692,1912734333,651899678,-2096931446,-2144992061,225706041,-1977169613,975586057,-503024639,1494039800,1364443995,532154054,-1104773088,540860191,154941044,742142580,540815732,1015024757,-1341688544,-1069922784,-2144985365,1912668797,650720023,184765834,-1156877111,641925123,125043002,540866786,-1564255399,116793272,1963007934,-1106345979,-1069932513,781052651,-583327801,792463988,-336002187,183236621,91565884,532549248,516159552,1048793942,1962942395,1360941093,106256210,-561056205,-849149768,198937633,1599932379,1478449498,914957684,512303033,915087291,512630713,1015226299,974156800,973632004,58130756,1174793209,-118756538,-1021354405,0,0,0,129,9879,-1591303934,649068838,65792,-1440306432,50331686,255,0,648685251,3223299,788543535,50331711,255,-973078528,-16567546,54200006,1030220799,108265472,-352283928,243896440,914957970,-628414832,648805249,-242545803,-2010730592,-352113020,650158145]},{"sector":17,"data":[650452619,1963018040,5171219,54986438,-1039743488,-4587226,-1874924545,-1960396128,942064926,208994631,649660102,856081952,183173379,649856710,990299680,1049428227,915089044,-768399728,647106187,1039730664,41222143,-4554261,-1084767233,2062029471,-1623293463,1946234642,-1626931450,1609558802,290104259,54986438,647012612,309653563,-1560279866,113709408,291377486,290457287,1254031361,-381425647,-1022263878,0,0,-1560266208,1340614560,-1547138048,-559738455,303407889,-1559093085,1352864299,307995410,-1559075165,-2065165982,-4523006,-17307393,650264192,-2095024896,58064890,-2097134872,326500346,-2097117464,192282618,-2097057816,58064890,-1023268120,856052560,-1667411776,-2147440296,12061813,-1667411856,1879091544,-1867510923,-1576069726,396496662,1482360591,-853953341,664969761,53427840,-1978501888,-30957010,825133253,-1999795709,-352112114,791579171,825133059,809402371,208994307,664931978,243843582,149619506,53481098,53612168,297414144,297471488,4319427,1979710083,824085051,25487363,1979710083,840862255,24700931,1979710083,824085027,30074883,1979710083,840862231,29288451,1979710083,1370123,1979710083,4188163,-1606515773,57933863,-1022261318,53550730,-851179336,1025798689,91488256,-351172678,840862232,1141422083,175251917,1946157117,294107651,-2017852437,-1174148335,1354961287,53550730,-1577035032,512361259]}],[{"sector":1,"data":[1357382450,53256704,53550730,-1965059864,-402443746,512417673,954729265,822491648,-971082749,16987142,53550730,53616264,297410186,297475720,53550730,-337682200,839268882,-972589821,16987142,113640939,1476526900,-1337674557,1008848142,-1979550464,860931011,824085211,-1168068349,-1696070792,2047277030,1946157315,8644867,58277504,-1585679355,1084425084,58702595,-1576056949,1200292671,54436365,765659019,-1965346045,-1325190626,77380192,-135896856,17079814,-2142472960,84113726,-1600043660,54829828,-1962630213,1134694215,222792451,-1174191454,1048641535,1963066233,-1656848365,578028036,77414016,-1172605945,384504376,77414016,-2146470654,117668158,951715956,-1174148334,-1017638521,-1957604528,-1337674550,1931595017,294107397,-1023997461,57937920,-1961782855,1482381777,1364414659,-2128107589,-1325137725,-1930702076,-2133326904,-1014767389,924748064,891193603,35556099,958302464,1482381571,1381191875,623097862,-855092806,1532626721,11846488,-58709299,-1174047488,468451327,-1014969346,-1541502911,665108007,-839384140,-1174047958,65737105,-1006633030,1300833796,1012525830,637957378,-352037495,1946631247,1946696936,1963343076,1434985990,1010690820,-1592888060,641736639,637814153,-351904372,1971922475,1569465860,-165261306,1946223175,-352014332,1207313929,91488770,-1779957072,-165259264,1947206215,6809603,113689439,1342185557,185043750,1343714752,-950578605]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[-1878575127,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899,538976331,1128354899]},{"sector":6,"data":[538976331,0,0,268435712,16368,0,33554432,33554689,23593024,764,66050,-805277694,195842,16843264,14680576,133761376,0,368640,0,1073741824,-2147483637,22,0,256,0,0,0,0,0,251678464,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33554433,33554434,33554435,33554436,33554437,33554438,33554439,33554440,33554441,33554442,33554443,33554444,33554445,33554446,33554447,33554448,33554449,33554450,33554451,33554452,33554453,33554454,33554455,33554456,33554457,33554458,33554459,33554460,33554461,33554462,33554463,33554464,33554465,33554466,33554467,33554468,33554469,33554470,33554471,33554472,33554473,33554474,33554475,33554476,33554477,33554478,33554479,33554480,33554481,33554482,33554483,33554484,33554485,33554486,33554487,33554488,33554489,33554490,33554491,33554492,33554493,33554494,33554495,0,0,0,0,0,0,0,0,0,0,33554433,33554434,33554435,33554436,33554437,33554438,33554439]},{"sector":7,"data":[33554440,33554441,33554442,33554443,33554444,33554445,33554446,33554447,33554448,33554449,33554450,33554451,33554452,33554453,33554454,33554455,33554456,33554457,33554458,33554459,33554460,33554461,33554462,33554463,33554464,33554465,33554466,33554467,33554468,33554469,33554470,33554471,33554472,33554473,33554474,33554475,33554476,33554477,33554478,33554479,33554480,33554481,33554482,33554483,33554484,33554485,33554486,33554487,33554488,33554489,33554490,33554491,33554492,33554493,33554494,33554495,0,0,0,0,0,0,0,0,0,0,33554433,33554434,33554435,33554436,33554437,33554438,33554439,33554440,33554441,33554442,33554443,33554444,33554445,33554446,33554447,33554448,33554449,33554450,33554451,33554452,33554453,33554454,33554455,33554456,33554457,33554458,33554459,33554460,33554461,33554462,33554463,33554464,33554465,33554466,33554467,33554468,33554469,33554470,33554471,33554472,33554473,33554474,33554475,33554476,33554477,33554478,33554479,33554480,33554481,33554482,33554483,33554484,33554485,33554486,33554487,33554488,33554489,33554490,33554491,33554492,33554493,33554494]},{"sector":8,"data":[33554495,0,0,0,0,0,0,0,0,0,0,33554433,33554434,33554435,33554436,33554437,33554438,33554439,33554440,33554441,33554442,33554443,33554444,33554445,33554446,33554447,33554448,33554449,33554450,33554451,33554452,33554453,33554454,33554455,33554456,33554457,33554458,33554459,33554460,33554461,33554462,33554463,33554464,33554465,33554466,33554467,33554468,33554469,33554470,33554471,33554472,33554473,33554474,33554475,33554476,33554477,33554478,33554479,33554480,33554481,33554482,33554483,33554484,33554485,33554486,33554487,33554488,33554489,33554490,33554491,33554492,33554493,33554494,33554495,0,0,0,0,79429632,356509699,1323829875,1510393366,1877672963,-970700568,219654,363854465,-92068492,-972065281,219654,-402626328,-210566907,-91550997,-972392984,67328518,113640939,855769946,69110491,3991555,50667146,-2147469848,219966,512364404,113640200,-1174142056,-555220072,1547599880,259260419,50929290,79431366,79477252,-1610037016,1286865754,550314445,1946221440,1141880837,-960290355,218374,59180742,-1962490368,113639427,-973077616,233734,59901638,2064041472,113639427,-973077645,226310,-1560082783]},{"sector":9,"data":[1048576888,1963066125,341163791,-1089873432,-739765141,172812297,58459847,113704960,894,990084769,1996715270,6875158,59457152,-400985087,1048576178,1946223499,-2132677873,231230,-1950415244,161015828,59457152,-1089178367,-1947724471,1514045449,175439875,56231622,-402396415,-339539500,337231622,-1089900056,1810371784,431968265,157607956,162064474,37555570,1021473536,-133991167,-1007091221,51199616,-1089899263,1139283029,163375113,58474115,-401574656,-2098724031,95021061,59457152,-1960020991,-1996288482,-1593604834,104530812,460784501,50562465,990085638,1996689414,-1979267570,1810391299,2080833280,-1008932093,51199616,-1089899263,-270003093,157870088,59770566,236882689,-2061596413,2118025987,259325955,59246278,96004096,59457152,-1590987775,104530814,578225013,50562465,990085638,1996689414,-1979267563,333988099,-1958838272,108265731,58590975,113694187,-1023409264,59246278,-1895381504,1048576259,1969292170,2942981,-672658709,-1958838272,527696131,-2103324109,2047773187,1106063875,100790775,117310341,-2002779256,2047228419,-1010401789,-2002730957,137274115,-1560052575,113707056,2098,-1560050271,113707064,2102,512416563,1638990600,-402117190,1048577764,1962935181,809403155,175439880,137248387,-402426624,552271907,59588224,-2135854079,17010494,1639191157,50861706,-33044760,-972847354,233222,1448281795,137764548]},{"sector":10,"data":[638285709,604652682,1978678512,1200236079,1948793894,1965636612,-852839389,-1269673695,1478610220,1453572611,1200170499,-1056745433,637753507,-970373239,16995590,-1022928034,-2002730957,137274115,-1560052063,113707056,2098,-1560050271,113707064,2102,512416563,1102119689,-402117190,1048577588,1962935181,188645395,175374339,568877745,-1925283834,930349059,59588224,-2135854079,17005374,117314677,1102316423,50927242,-972614936,233222,1270814187,121169940,58394310,583681,59457152,-1014926079,-838416850,243990540,-108853772,-1961593592,-2096687090,91490809,1962998147,113651206,-1191113522,-406978529,118210309,-1729583885,67552773,1085342983,-1962474310,1124300062,117972617,50929290,1912969192,671532666,230162696,-1324829372,-1965345982,-1174206178,567085096,-972543840,534534,141886012,-834764754,1333002252,-1560052063,-2002779264,59351555,58328634,1973487988,-2147075837,-1604028669,104334202,544670601,-2147454744,33787198,1048580213,1963000713,-2143386829,745865219,117314027,-672463991,59311814,-2147025152,-960238845,17009414,-401275969,1048577622,1962935130,1510393374,401277955,59442886,358465281,-2147074584,219710,113640821,855901018,152996571,1543947779,79298819,67552775,-1226308601,855687940,59351232,-1593300573,732103552,-1965346040,-1325201122,136886850,-2147174424,17009982,868474228,136219355,-536427005,1622212869]},{"sector":11,"data":[-402267974,1048577180,1946223501,-1925283610,57999875,-2097112087,390206,-1847000203,-163675392,-160169979,-1727664223,125157387,-1962541919,-150602218,-1962544074,-150604258,222200051,108265731,51906107,-1555548297,-190774411,222199813,108265731,51775034,2007114615,99066115,-2147256157,16976446,-1813445771,100049152,51840570,-1572337801,283706234,-1962490367,62849283,89712661,56245888,-972720896,67328518,-972995095,17009414,-401255489,113640766,-385678502,113639730,-956234893,227334,-1965346046,-956102626,220934,1560725248,-956299261,221446,17688576,113755506,590685,1912668904,1560725330,-402649341,1416757495,56428231,-320339950,-953191936,604200198,14804992,149624690,58328774,8775936,58132166,1963378468,-352301309,1996932687,113709571,5178229,113656555,-955317385,1325626630,-969544960,134444806,58001095,686489639,58132166,1963378441,-956291325,1325620998,1560725248,-956299005,221446,8513536,113706610,5178229,51003008,-946506751,16998662,-1598016768,1570964343,6416387,113672818,-2147417222,33756990,-253164684,1933476094,57999619,-1157570328,149423622,120240897,-973012248,16997126,512416563,113640200,-1174141472,-1024981536,-1598016766,883098487,58040584,352166720,-1576831072,2057311487,-1564410365,-759229183,67430420,1364414659,137666898,-1593613405,782435169,56598792,-1593298781,-1555561635]},{"sector":12,"data":[113707058,67636,-1557358664,512493622,1638991928,-402117190,1048576648,1946223501,-1925283634,57934339,-117314568,-1560058975,1499072564,1354979419,2023838035,-166678269,16548081,-1057095052,-1610382174,-1057094790,58140406,58990218,-2103188490,1482381571,51421635,51250731,58852923,113643635,-1090452597,1877480807,1510393347,1354957827,58146432,-1106938359,267060020,58343040,-1106938880,65733415,855841470,58171584,-1090128733,230229479,1487205120,-1966525501,-1996261618,46367503,-1593835079,238683000,192349047,1128468361,1128466313,-1007686847,512416563,113640201,-1325332732,117750368,-2147368984,17009982,1048634996,1963066253,13691139,119029379,-2096532480,465470,116064884,-385827351,329318681,-1072981753,547424117,571902727,406255367,438209287,1223948039,58000953,1048776820,1963919128,1967031157,1853171459,413257195,1996896263,-2092076029,1325626686,305945717,1048582517,1963918199,-2135889150,151222078,1048619380,1965294455,1017178923,-2146405111,302217022,1048614260,1965294455,1015868183,-2144897756,302217022,1048609140,1963524983,-8918781,990317473,1963161606,119185677,2047228488,-385650173,-924319583,-972524798,17009414,-1090473495,803738699,2064041474,-1572605,10545658,59653760,-958696447,17003526,512416563,113705737,863,56428231,113704968,865,1929247464,1560725433,-402650877,343080431,56428231,-454557681]},{"sector":13,"data":[-2145815811,251885374,820713845,58146432,-2146405361,151222078,552307828,58146432,-971410161,17009414,-401275969,1048576442,1962935130,1510393391,686490627,-1107288135,197068263,-962268409,16997382,58007179,136218947,152996359,117750275,117704390,2091012,1048836291,1965491061,5192968,-336002187,1967031053,108351235,1962944317,-1312556799,1763392,51945923,1963342152,-1609993725,104334102,91423607,118097606,113689345,-1258290291,1141749768,57876941,-1023409688,1364414620,106387026,1504989982,-855637829,119495457,1946162493,1260807,1709921396,58408576,-2144177151,17011006,1048585332,1963000720,-1861827036,1692926211,-1861827072,1048576003,1946223506,-1925283824,1232339203,113652715,-352255086,1107740224,-872529643,356654592,-401301569,-2118188854,12904468,-1262549269,12380180,-401237057,113639606,-352255091,-1928935916,113639939,1023411086,91553818,59639494,1516134145,-1655153831,119408323,-1107288135,197068263,-391843065,113704739,-1325070588,117750336,512416563,703070985,-1598016513,698549128,58630408,856173475,152996571,-1170034429,233310248,59613439,-1965345968,-972879586,16997382,-972618566,67568646,1493095656,117673378,1643937987,512428405,230622076,-1962415339,-1090290146,-2002774761,1107740163,-889306859,356652544,-1995094622,-401258722,113639430,-1023212710,1448235347,1972051339,105745156,-1207413365,802008513,628424508]},{"sector":14,"data":[1569392011,193718274,1049434483,1569395696,74812162,-1962521205,1994917973,1510393355,-336002045,-1828272634,1593311491,-1017423526,59981440,-1207471103,567108899,12059627,1048625920,1963000661,1443269914,361276163,56100493,-1089110621,-1947724775,359776255,-1006664216,-401335873,-1094713474,-8853484,1364414659,2877522,113648755,-1090256038,1676154257,-388985857,309526438,1929380413,1963015401,1510393352,-336068605,1532557569,868440665,152996571,141080835,60036749,-851177032,-133991647,230173675,1931595076,569112579,839095712,-1142894108,-670891199,55966593,-336067716,990350092,2080763654,32241667,50169,0,0,131072,0,256,2,33554432,131073,0,786176,0,16781312,16777760,0,67043328,256,0,16778495,0,100597760,256,0,16779007,0,134152192,256,0,16779519,18112256,201261056,1337856,256,155197441,1962934528,276,-2147480577,16777236,536936448,16779840,0,201261056,256,0,16780543,0,234815488,-1459617536,276,1107299327,21,536936464,65550,0,1048320,1,-3670016,65552,0,1179585,349962241,-16777213,352124939,553713664,186646784,1376000,2163200,729089,5377,16785667,32]},{"sector":15,"data":[301989888,256,0,16782335,51716352,352256000,553648384,789,1107299327,16777237,536936464,356843531,553779200,186646784,1394432,2163456,977346561,0,16782592,0,385810432,256,0,16783359,0,436142080,256,0,16784127,34962176,201261056,0,77791488,733188,0,67412738,16784944,0,536854784,256,-939524096,16785663,0,754909184,257,0,255,0,0,-256,255,0,-256,255,0,-256,-1,255,-256,255,0,2573,167772160,606348288,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,1397564452,1397703712,1919243808,1852795251,808334624,1126703152,1886339881,1734963833,824210536,758200377,825833777,1667845408,1869836146,1126200422,544240239,1701013836,1684370286,1952533792,1634300517,539828332,1886351952,2037674597,543584032,1919117645,1718580079,1816207476,1769087084,1937008743,1936028192,1702261349,83959908,-65280,1158742020,1852142712,543450468,1869771333,824516722,1049429774,-1048373578,84067104,-65280,1343094788,1702064737,1920091424,622883439,-1928917455,-2095654338,-3990079,18939909]},{"sector":16,"data":[33588224,50370560,67147520,83928832,100726784,117524736,134313216,151096832,167883264,184669696,201464832,218250240,235033856,251813120,268594944,285379840,302164224,318954752,335743744,352535296,369327104,386109184,419672320,436458240,503571712,520356096,738476800,755277057,772067329,788854529,805643265,537222657,386252544,1868787273,1667592818,1329864820,1702240339,1869181810,34213230,1225984525,1818326638,1881171049,1835102817,1919251557,1146358285,1869488239,1886593140,1718182757,1768300665,1634624876,1932027245,1124732201,1634561391,1176527982,1634562671,1142962804,1129009993,542724175,1769104475,976315766,1919179552,845510249,542989626,1563504475,1445944096,1409944925,1850280461,1768710518,1919164516,543520361,1667592307,1667851881,1869182049,1393167726,1768121712,1684367718,1769104416,1679844726,544433519,544501614,1936291941,1862929780,1936269426,1852796448,1835364909,1650554479,168650092,1124732207,1869508193,1229201524,1329810259,1948277072,1919885423,1869768224,1628048749,1952804384,1802661751,1769104416,168650102,1175063836,1634562671,1852404852,1752637543,543517801,2037411683,224882281,168634122,1702063689,1394635890,1129469263,1768169541,1952803699,1763730804,1919164526,543520361,221917477,168634122,1702063689,1411413106,1162302017,1768169556,1952803699,1763730804,1919164526,543520361,221917477,1632454922,1931502955]},{"sector":17,"data":[543519349,1768169569,1952803699,1763730804,1852383347,1953654131,1763730533,225408110,1701344266,1769104416,1629513078,1948279918,1679844712,544370543,1663071081,1702063980,587861348,1632897549,1952802674,1936286752,1953785195,1634541669,1700929657,1970173216,1818386803,470420837,1632897549,1952802674,1936286752,1953785195,1853169765,1650553717,168650092,1953451531,1634038304,168655204,1769101077,1881171316,1702129522,1696625763,1919906418,1344342541,1936942450,2037276960,2036689696,544175136,1953394531,1702194793,773860896,168635936,1124732191,544829551,1953459809,544367976,1802725732,1702130789,794372128,541010254,1124732215,1769566319,622880622,1920213041,1936417633,841288205,1667592992,1936879476,1919250464,1634890784,539781987,1931490085,677733481,168634739,1141509425,1702259058,1887007776,1864397669,1768169586,1952803699,1948280180,1936027769,1869482509,1868767348,1952542829,1701601897,221973005,1919833354,1987011429,1650553445,1914725740,543449445,1869771365,1852776562,1769104416,622880118,1393167665,543515753,539767333,1667330676,858071147,222038541,1919833354,1987011429,1650553445,1998611820,1702127986,1920099616,1864397423,1919164526,543520361,168636709,1701079379,741483808,1634890784,622881635,369757491,1866664461,1881176432,1701015410,1696625523,1684366446,220531213,1431261962,541410130,1802725732,1702130789,1684103712,544370464,1868787305]}],[{"sector":1,"data":[1952542829,1701601897,1409944869,1162302017,1768169556,1952803699,1646290292,1864393825,1852383346,1886220131,1651078241,1226138988,1718973294,1768122726,544501349,1869440365,168655218,1819235871,543518069,1769104723,1310747745,1700949365,1936269426,758195488,168636965,1409944901,1162302017,1701650516,543254884,544432488,1702326124,1633886322,1768120688,1948285300,544104808,1381322579,168641859,1953394499,1702194793,2037276960,544825719,1311725864,224214825,1701990410,1126200179,726422100,1869881411,1868718368,221017202,544370442,1920102243,544498533,1936287860,1869770784,1835363426,1684955424,1701998624,1629516659,1864399214,1919248500,2036689696,544175136,1953394531,1702194793,773860896,168635936,1886339894,544433513,543516788,1953394531,1937010277,543584032,543518319,1886350438,1679849840,543912809,1629515636,1752461166,221147749,705301770,1263749444,1498435395,1919179552,828733033,1683693626,1702259058,1566390834,825187104,794501213,168648022,540019213,540094240,1866670112,1936025968,1819176736,1752440953,1768300645,544502642,1701079411,543584032,543516788,1802725732,1024068910,1445928992,1444945952,1718186597,544433513,1952540788,1701344288,1718511904,1634562671,1852795252,544434464,1768976227,1663067237,1701999215,2037150819,218762542,1750361098,2004099173,1818632303,2037411951,1936286752,1830843243,544502645,1948280162,1931502952,543518049]},{"sector":2,"data":[1701869940,1493830958,1830843759,1931508065,1768121712,1948285286,1931502952,543518049,1986622052,1868963941,1919164530,828733033,1684955424,1769104416,775054710,221579789,1397310474,1347371851,1633886297,1953459822,1886348064,1701650553,2037542765,1918984992,1126703204,1145324365,1701060649,1701013878,168636019,1049429774,-1048504581,1354958463,1460032083,-1047606989,783875891,-855592430,-1022981073,-1052866283,305051669,801964722,365627020,365510281,-1307431240,-1943024380,-1995056378,-1206527682,112333358,109850573,1049171391,132650429,-1157198599,-1187084011,-687436779,-717321963,-116004843,365889164,365772425,-1307431240,-1943024376,-1995054330,-954867394,219542534,1023854090,113714198,5625,368772807,1743257610,-448886273,1697813,-402641176,-397344703,141688912,1510432601,82532443,-116603773,508973251,-849149768,520560161,914950258,109843949,1482561007,1140897987,855638203,-2145268270,-830471706,1140963329,-1195171379,29049856,-841862400,30310433,-851181128,817152801,87892429,-133991168,37558507,-1157270784,65798143,-1207958853,12124161,-1241468416,1355020799,1465209171,-376745466,368123529,368457352,184740328,186873033,-402295315,65732655,1912715752,250108431,173999873,-402426670,82511246,-116996989,1594295531,141752666,-2091165347,82510532,-116865917,1381191875,368123531,1979710339,2942981,2011694059,-1274055936,47961,-466476595]},{"sector":3,"data":[-116996989,-75296533,990606591,-402164543,-998047568,57866502,-1017619622,-2095118818,460653049,-1977220428,522308885,-1310145910,520494592,-1977219213,567083349,-1274024968,1959332610,361375241,1229398477,536408949,105928643,519736147,-1327920377,-1359807462,-651492491,1540066123,-1017161721,-921976781,102649716,-1958693857,33129431,567093365,-1977200609,5957637,520494680,-1258813837,567099968,1031808668,-1962773222,-821957695,-268274,1364531947,-1946179864,567106025,199950963,125093947,1979246651,1572965122,666419999,310016,-2134703691,292880382,1971373814,-1928913396,-1189743554,15204354,1460061183,367869636,393543435,4031270,638612728,124912954,21314086,1207501175,1609165639,110084871,-617409033,922194579,-141355525,-2095711434,91621882,-348667264,818053123,-1073004206,-620034955,-108840588,-2146601725,1965820540,70713093,585842966,1963391363,175931405,-16419540,1091961910,-108850965,-2146732791,1965820540,70713093,865288470,866642898,-4181038,-1021970634,-921972173,632562036,942014640,638219557,1946248504,1975794180,92939790,1946113000,1111967489,1457747273,-317994361,-2092092556,1440062,1149905781,640680966,1963017530,1008659202,184841520,50623698,-2132284620,-15337922,1111623797,1330596169,-4586517,-114599937,1610484456,-352095399,-1957588865,108822730,185431040,1225159881,-347650231,283860481,58050827,-2096501922,41287673]},{"sector":4,"data":[-16004813,1465210484,-919383802,368656003,-164793088,1963919172,41731080,-352160536,121959962,-166956019,1947076420,121959942,-1006078708,-2098724228,-402593022,65732986,1912611048,1594317063,82533981,-116734845,368656003,1912960256,-15406845,368641735,868417536,368681426,368772807,-1779957750,-2021107458,-2092755459,58015995,-33425176,-1192331831,-2021062131,1128470013,-1023285016,-164408490,-25114317,-1962379777,-1961499204,-165286945,141820614,365542596,418104204,1912607549,2571533,-1128003465,-1014229547,-1128003861,-1014229575,1979710339,-98282,-336002187,368681740,-1107296328,-164429823,-2096305160,57934075,-2097130264,1928856774,1976109830,-1667241214,1963064960,1364546089,-1202694394,801965312,1968766780,-1193768183,801965314,1945698795,1493655301,-998045973,845830,32201309,-68677937,-1017226241,-4632489,-222285057,1238497198,-2084348072,494207483,367083139,1024881919,192282623,368681296,367075071,-16454824,-350887650,-2134297830,108331006,55413286,942541291,772044085,-2096935542,1945699527,-921962451,-25159308,637891839,65733947,1963277102,1225386754,-947714700,-102503676,-25162638,41285887,52823822,108135037,-1977160398,113657613,-1023404557,2088819507,292880390,368936903,1128475936,368936902,-1494727904,-617390848,243847731,1149900275,1992374793,-1967052258,121960176,-1978370944,-2021127612,-2092755459,58015995,-33522456,-2131986994]},{"sector":5,"data":[1946159228,139212813,1277823091,-1965979128,-922023860,1156981876,208998151,268911862,-1977219468,32196357,-41449384,-75283691,-402426560,-906100671,1157028981,410353671,343209482,-2012593014,1125514631,1967192963,2353155,-327823618,252134646,1156974709,41160711,-771093269,110037108,-889317897,48822389,1371755776,119428870,-617362549,368918157,1929075432,1493655301,-998046485,1573124358,805782774,-1977216395,-398372859,108264512,21334566,233568336,168135206,1191474368,737536833,1573082617,-1070345677,368772807,-617414640,537347318,-1977211787,121959941,-1475513075,1124299904,113737508,660987,235357430,113706613,660987,1156994283,645206023,-167408858,1963788100,-2134575601,-2143091596,113737700,660987,235357430,113706613,660987,-1960433429,1435182597,121959938,-166759155,74744006,2145812547,368772807,1156972554,108334599,368772807,-1108869110,1960512507,-1294847227,-1017818579,-2145496495,142000378,254067338,48958644,520544906,567138187,184188959,-401443592,192150380,-494221174,-511041075,-1274876936,1510240768,-2096829607,-1007090492]},{"sector":6,"data":[0,0,0,0,0,0,0,0,0,-16777216,0,255,2086492928,1026244156,-956292549,2399494,243923968,113714320,9362,614794951,113704960,9366,623969991,113728859,1014768947,624232135,113716030,993862967,1929698280,-18413,495658579,1930377766,178179,17623387,614413961,-1923786925,-165370082,539270662,-391365003,930219366,1946472424,83945522,116790901,1965040798,77260805,116794091,1950426270,418074139,1027344264,243271029,1124148382,1929728744,126397641,1321462595,613693065,-1996486714,639935262,915217803,1015030951,-2144242641,125051452,614336246,642807041,838944650,-1878640156,-1592691932,-523164528,-670874813,-400585946,1726677120,613549767,1592459265,21465638,-784276430,651690976,-315486326,259311883,-1960422589,12314655,1128231771,-940383677,52728326,640936704,838944650,-523157276,-1977165821,-773574137,-670875424,839879206,1959332845,642990863,1424498571,175332096,-220052669,613549767,1599930372,-1878095013,613589284,613693067,613815947,613949066,642827256,44631947,-16485120,-2145087482,410320956,1962934697,-1845049592,-352320988,61886478,-1796669516,65755136,1476464872,1438906819,1334453841,200094216,-1928497975,501746031,-402099454,-152961011,-1996100615,-131816146,650337625,32384,-347798668,-2134686218,270835214,1929365736]},{"sector":7,"data":[-1641643966,-1588531420,-970251103,614401537,-1590260904,3964964,2088772469,141900543,613549767,518717449,4162342,-148498316,1962934535,-1845049583,-352320988,9693193,-116528136,-1336931605,-385895421,-128450557,-1960421437,1049166975,-2010766186,1703421445,-1516154879,1166616100,20731906,-1993995659,-1993997227,1508574797,108331580,72714534,121393131,138209396,104653940,-2010773899,1038812245,242549820,1076141985,71665958,106794022,-1993987093,-1943665547,642778717,16926710,78644340,-165279253,1946288711,-402477051,643301525,268584950,1743258484,-960274688,2439686,126559824,393592843,1465013072,613549767,-4980727,1625818032,1532649471,-352130216,-1876432125,1946222761,-1845049581,-402653148,31981961,-1841396990,242551076,1948254377,-1845049591,-402653148,1048576175,1963009338,-1841396979,108331044,613549767,-1017642999,76174928,410304522,192231996,97408,80086389,-402003200,24314575,-487897530,1455642718,-1966044590,46000132,-1073083534,199756660,-352024576,-347716095,-1017226518,208896060,1114792252,1048017468,988536612,-1923676589,-2145047490,74712314,623328909,393483576,508711248,-1973046265,-17470,-1174403655,567148543,-1957144230,1166934365,742605571,1607935616,1019435783,1007186480,738490169,-104597456,1381191875,2139825751,92939782,74825738,149684148,613549767,-4980727,1625818032,1532649470,1431356248,45241938,552076426]},{"sector":8,"data":[-398822910,116850546,1946690718,1966947341,2122327582,1853161473,116789995,1947215006,1966750734,2122327562,1517617152,643492678,1962952250,1958742556,-347781552,1178215954,1178825984,642057354,1962952250,-347781575,-1643710805,259276836,38270758,125042720,8290342,639792128,1050615,977016948,-2144990859,1962934398,1007610637,638022912,973110912,-336002188,-1590261499,1516173348,1354979421,1049318999,76162207,292864010,1962956776,973522464,-966917851,-346095612,80109113,-148480256,1962934535,-1845049555,-352320988,-1974052827,1958742532,2811931,1290275700,1191342849,-347715770,613982954,1191183558,613695113,-1453826210,158597632,-1325419440,-44439547,1364443992,623976077,973081017,1124365319,1497496034,1381024603,-1073085302,149435764,-2094370303,1949958524,133637645,494141456,97408,537663349,292708668,225933884,-796237780,112263092,-335737112,-1845049594,1509951780,-391330984,376700960,1962955240,-1643710956,-294379484,614336246,1309242433,-336001301,-1018234879,1364444152,762580284,695468092,628361788,41779238,857633282,1569335003,79921923,3768358,-919401100,1124698662,1946237478,1022943748,-1017423603,113660243,-2145377128,-551248346,913580092,846465340,829697084,209002556,1965046912,1176547335,518766650,41779238,857174529,1300899529,1959332611,244491,20588099,-119404684,1532567612,613982915,614336246,-2147126015,539270670]},{"sector":9,"data":[-353648582,614936205,175430971,58011452,-133305351,792464107,243271029,-130014050,1398152899,614153859,1344632064,1465012510,-164428203,12115598,-1943941789,131795931,1499094877,628381727,614020745,614145673,614020747,614145678,1946172547,1912879632,21248520,-336002185,-347716091,1583085803,49951,0,0,0,129,11143,-1792305918,732169003,734800824,33620224,-1641308416,100663339,255,131073,731786160,3223297,65283,0,131073,731786180,5648129,65283,0,0,731786200,4140801,65280,0,51054278,168216064,1458306819,1946157117,6875141,243885547,914959234,-628413568,731904897,-242545803,-2010405984,-352123004,-1325694671,-972262101,539733254,50988742,-2128614655,1965802747,-1056520692,113647659,-352255221,-654606067,-972589781,16976902,1049428203,915090308,-768398464,729943691,1039722728,-1804206081,-1006633030,-971769181,67328518,992706721,-971868944,279117828,-33110252,-954986989,18087942,335200000,-1159305752,12784685,0,0,0,-1560266208,-930337648,-1558944861,-1381821319,350266132,-1558910045,631444726,355509013,-1558889565,-1969023617,336765717,-66950680,-385876038,-92012778,-2145028609,199742,484968564,363837952,736630507,5695488,1979710083,20965387,1979710083,34662403,-1346414653,-437458923,363806337]},{"sector":10,"data":[108265776,363792127,-1017122837,567089588,-30633310,138313920,141885443,-1576859486,183173897,50937472,-1576831744,144769801,1778778115,-2144993260,1105773332,-359680,512375669,-1696070904,-359679,512372597,-1897397495,-359679,512369525,-588774648,-359679,512366453,-790101239,-359679,350751605,-359680,1072169845,1048822528,1946168464,339196419,136219331,1141422083,611459533,1946157117,339196421,512366827,146277129,1914817860,15626,934937460,-1174148332,65737783,-1022085190,136219216,5957635,-1979513694,-402454242,94502992,136219139,-622008317,50929290,-1965365784,-402454498,104464440,510919432,51185350,136219137,152995843,1780386307,-2145482732,136219156,-625154045,104469227,125109001,51185350,-972690687,33754374,1152697176,567086768,41222204,1355006858,860099000,136219355,141801731,108143053,-384457286,-617414497,50863754,-1732616015,-481105917,60425975,57933825,-2147449879,84121918,-1667138444,51684099,-1962696773,329387847,222792451,-1962732894,50766599,512416563,1622213385,-402342726,116908824,66750,1048595573,1946485949,79733061,-1157424989,1200293059,51880463,-1576188021,-4586730,-1723956993,326435331,79511168,-2146798590,117751102,62522228,-2146309355,33865022,1048578677,1946616729,352565763,934937579,1354979348,-896839341,162546868,91431373,-350996551,12777225,-1190956016,-779414463]},{"sector":11,"data":[-1017619623,-1152298160,-1014944617,78709760,-930288685,-478095357,549684192,51256969,138891,51388041,-1017619623,106058576,-1171971144,567085178,1482381831,-855591741,16547882,-4586123,-31724545,1103331531,747904648,-1272146754,718141443,1102710131,-1174148332,365166591,368772807,-1779957750,-2021107458,-2092755459,58015995,-33425176,-1192331831,-2021062131,1128470013,-1023285016,-164408490,-25114317,-1962379777,-1961499204,-165286945,141820614,365542596,418104204,1912607549,2571533,-1128003465,-1014229547,-1128003861,-1014229575,1979710339,-98282,-336002187,368681740,-1107296328,-164429823,-2096305160,57934075,-2097130264,1928856774,1976109830,-1667241214,1963064960,1364546089,-1202694394,801965312,1968766780,-1193768183,801965314,1945698795,1493655301,-998045973,845830,32201309,-68677937,-1017226241,-4632489,-222285057,1238497198,-2084348072,494207483,367083139,1024881919,192282623,368681296,367075071,-16454824,-350887650,-2134297830,108331006,55413286,942541291,772044085,-2096935542,1945699527,-921962451,-25159308,637891839,65733947,1963277102,1225386754,-947714700,-102503676,-25162638,41285887,52823822,108135037,-1977160398,113657613,-1023404557,2088819507,292880390,368936903,1128475936,368936902,-1494727904,-617390848,243847731,1149900275,1992374793,-1967052258,121960176,-1978370944,-2021127612,-2092755459,58015995,-33522456,-2131986994]},{"sector":12,"data":[-1,985152,65562,771751936,728713,218532910,1392954112,516173392,-2144993269,1962934911,295430403,11051054,21465126,-855113032,-2091148241,-1655504188,-888710312,-1,33555201,33554943,23593024,150995456,256,0,0,537001984,20480,66050,-1610584062,260357,131081,0,0,0,-65536,1325400063,1095639119,538985805,8224,1174405120,842093633,2105376,18944,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16711680,0,-1207515346,-67108864,-1425110738,113716736,173,-1073297618,771751936,11601607,-1125646336,-1206684923,643039231,975576459,-1207733489,-379912190,-1993473757,1392556598,512578903,-164757310,536918278,-391363723,1014105676,1946530024,98691127,-164751243,536918278,2028471669,774302469,12125942,1310618689,-2010244117,1966947335,243281414,1124139193,1929786856,-2010207035,-1091878137,914959950,-970063697,-1993474041,637582878,915217803,-2144468798,913583932,574390318,-164755340,16824582]},{"sector":13,"data":[-1977199499,-466484921,-1425655506,772961024,-788485215,54739936,529213144,-352286488,113716841,65709,-1977196309,-466484921,65065280,260712152,-921965262,1396903796,-400585946,1935343814,-498908351,113716978,196781,-1977207573,-466484921,65065280,126494424,-523115470,651690816,-315486326,259311883,-1960422589,6154271,1124823899,787669571,11339463,1599930372,244002395,-1590820693,-1959919443,771796790,11605643,-1289844178,1355020288,-1459123418,91553794,-1425604818,1015033344,-1457949440,158662657,-1392064722,-352321024,61886478,-1628897356,65755136,1476468200,1438906819,1334453841,200094216,-1928497975,-1712846481,-402099453,-152961010,772205561,12594825,-1017292296,8290342,1157854208,-1018824981,-1190232018,-957870080,776631039,12134016,-1590800145,-970260292,-1174011602,-1959897088,771800118,1962949760,2088775206,158677759,-1392064722,-352319232,1065559583,639202304,67575,-953281931,33598726,-402003200,-336068458,183236877,-1274826672,256255,1472460888,75467558,-1321301714,92808704,23431206,-1063178672,1166616064,20731906,-1993995659,-1993997227,1525352013,108331580,72714534,121393387,138209396,104653940,-2010773899,1055589461,259327036,12230958,1166616128,1569465860,640412422,637826441,1342590348,38270502,-1341885439,638184196,33703926,45090164,1476441320,38270502,-402426864,-1017184125,1191626286,642777089,-1073018997]},{"sector":14,"data":[1397758069,-953264302,151039238,-1325419520,-10754045,1482381919,65733355,-1450164501,309624832,-1392064722,-402653184,-2094137099,151039294,11085429,772961344,11339463,-1159200768,1048784384,1963524269,536914191,-953283980,44294,33875968,1195278382,259326209,-1388412114,125108224,-1392064722,1476397312,777408707,-1073085302,977017460,-2144465547,1962934652,80096774,-402003200,24314738,-538229178,1455642718,785418834,1609041034,168587779,-401836864,-2010251252,1174530820,1525214022,-2143501474,1631325299,2050767986,-551274377,106116331,1111395671,356003329,1364203380,-1274605998,-1144878491,96075775,-17920,1499079117,1569402456,1166945793,742605571,1607935616,1354980103,-1190232018,-2144436224,-50284250,1006930478,1007318059,772240685,12127872,48776706,1354979328,861295185,1406284745,168069678,-398297920,963772700,-393485262,-774774063,1912667624,-1948611796,-773664319,15788241,-489611406,-404172335,51802624,-389540909,225575134,-779889405,13953024,-347733134,-1192666181,-164734208,33601798,-772339084,-1031548169,13730561,108497702,1006930470,-1341688576,-369118207,642121886,3933322,776364148,12125942,639530368,1912818747,637957942,1912689723,1278944814,1915254535,1413162554,-350193915,1278944818,2132311043,1413162502,638614529,2131184699,639400970,2131055675,-2095781118,-922875450,-953240203,100707590,-1274957824,-1338119169,613033473]},{"sector":15,"data":[162805483,54584566,76162800,1278944838,637957379,1946244155,96895970,-311047938,-1392064722,-1342175488,-335563775,113716747,589997,-4979792,1593652456,-1017620134,116797084,1963065529,-1648124670,-1007156624,809288697,960235634,808191095,-1007041544,1465013072,109021990,168135206,-1274776128,772402175,11339463,-4980727,-286784592,1532649468,1431356248,45241938,-402355666,1014104434,788407272,12125942,1007514632,639595837,97920,334197109,-1190726098,242487296,175454780,8290342,1180464384,975592683,494207046,1383383050,334185798,4602406,776357237,642057354,1962952250,-347781574,116797095,1950351545,1207379471,1946165250,2122327559,578027520,268957478,1008235520,638154042,32384,250285429,125108284,8290342,-117214150,-1993472277,-134169546,1482512990,585673923,-401050624,376766547,-1190726098,-311156736,-1190726098,158613760,-116987058,1324876267,1405352131,1947024465,1946172461,1946827817,2105550373,510788098,-1977165005,-1014824099,964699652,856519680,160048841,20588099,-119405452,1532562748,777081795,11732678,645934624,1021247673,1010201632,1009939465,1009873964,-2146667232,125116476,977674416,639560640,16940416,-919398542,55413286,192203019,1124074427,1946237478,1022943751,-1017423584,11772462,-1190726098,108331264,-1190232018,-1069932544,781051883,-583335742,792463988,-336002187,200013838,108343100,-1190232018]},{"sector":16,"data":[-1007140864,777213470,11943555,1344763136,1465012510,-164428203,12115598,-1943941789,131795931,1499094877,695490591,-1271494354,512306688,-1959919434,771798070,11935374,1946172547,1912879632,21248520,-336002185,-347716091,1583085803,140362527,83886080,143263851,146475169,2248,-2113929088,17331976,16794671,257,8323072,0,0,-2147483648,142737408,788596886,16842836,257,255744,8388608,-1341619712,1211040264,5451520,16843009,1660944384,0,-2113929216,17352456,17199,32768,148113538,4599553,17104898,0,258,131840,117702656,83886080,9,0,0,0,-1,0,0,-1,0,0,-1,-1,0,-1,0,218103808,10,655360,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,542330148,542330692,1936876886,544108393,808463925,692267040,2037411651,1751607666,959520884,825045304,540096825,1919117645,1718580079,1866670196,1277194354,1852138345,543450483,1702125901,1818323314,1344285984,1701867378,544830578,1293969007,1869767529,1952870259,1819033888,1734963744,544437352,1702061426,1684371058,327968,83885825,2017792256,1684956532,1159750757]},{"sector":17,"data":[1919906418,238101792,-314667769,549552905,328387,536871176,805306880,1191183104,1375732736,1577059840,2130708224,-1761605632,-1342177536,1867780864,1634541679,1881176430,1835102817,1919251557,1699879539,1919513969,1881171045,1835102817,1919251557,1936289056,1735289203,1986939150,1684630625,1769435936,258499444,1635151433,543451500,2004444523,610562671,1634885968,1702126957,1635131506,543520108,544501614,1629515369,2003790956,1914725477,1701277281,1918980123,1952804193,1981837925,1702194273,1953459744,1819042080,1684371311,1918980123,1952804193,1981837925,1702194273,1953459744,1819042080,1684371311,1918980110,1159751027,1919906418,238101792,289312007,-457080566,100647680,66304,131084,196640,1226244145,1919902574,1952671090,1397703712,1919252000,1852795251,1309936141,1919164527,543520361,1667592307,1701406313,705301860,1684107084,1159750757,1919251576,543973742,1802725700,1769096224,544367990,544370534,1986622020,824516709,118360589,184172173,-1016151677,106058576,-1899416745,-1191234623,11670062,109850573,1049168122,783812856,-855461358,33983535,4098313,305051657,801965234,152176268,152059529,-1307431240,-1943024378,-1995901434,-402066370,109903441,1049168114,109840624,1049168142,652740876,101092607,71207177,305051657,801966258,152700556,152583817,153814727,113641997,-953939596,602118,839304960,-402650615,1049231208,434637084]}],[{"sector":1,"data":[3074048,1358971368,1912623336,123689224,-346530982,214205188,1448133625,1660991518,119415245,-1995935201,-1945557962,1577657862,12108632,47940,567136819,-2147359104,28836302,-1021194940,-1153171272,-768409599,-830463539,1140963329,-1262280243,1025625392,57999365,1025043448,91422722,-335544389,178947,-1191181896,11665408,-1007026250,1431393104,-1957558697,673090025,758548489,46589961,477415691,91614475,-352311576,28370947,-396752782,1594294533,-998046485,82573574,-111517945,1499268722,82532443,-116865917,1381191875,153624203,1979710339,2942981,2011694059,-1274055936,47961,-466476595,-116996989,-75296533,990606591,-402164543,-998047568,57866502,-1017619622,-2095118818,460653049,-1977220428,522308885,-1310145910,520494592,-1977219213,567083349,-1274024968,1959332610,361375241,1229398477,536408949,105928643,519736147,-1327920377,-1359807462,-651492491,1540066123,-1017161721,-921976781,102649716,-1958693857,33129431,567093365,-1977200609,5957637,520494680,-1258813837,567099968,1031808668,-1962773222,-821957695,-268274,1364531947,-1946179864,567106025,199950963,125093947,1979246651,1572965122,666419999,310016,-2134703691,292880382,1971373814,-1928913396,-1190581442,15204354,1460061183,153370308,393543435,4031270,638612728,124912954,21314086,1207501175,1609165639,110084871,-617412306,922194579,-141358798,-2096549322,91621882]},{"sector":2,"data":[-348667264,818053123,-1073004206,-620034955,-108840588,-2146601725,1965820540,993459973,585842953,1963391363,175931405,-16419540,1091124022,-108850965,-2146732791,1965820540,993459973,865288457,866642898,-4181038,-1022808522,-921972173,632562036,942014640,638219557,1946248504,1975794180,92939790,1946113000,1111967489,1457747273,-317994361,-2092092556,602174,1149905781,640680966,1963017530,1008659202,184841520,50623698,-2132284620,-16175810,1111623797,1330596169,-4586517,-114599937,1610484456,-352095399,-1957588891,108822730,185431040,1225159881,-347650231,283860481,58050827,-2096501922,41287673,-16004813,1465203828,-919383802,154156675,-166497024,1963919172,41731080,-352167192,24832000,552076267,1493660160,1583177479,-998046485,1048836362,1962936624,-385650171,113770286,2352,-1580059709,113707312,657714,1493086184,154437512,1090224963,-119012491,1976172033,168671470,154437513,-387431613,1398194945,-919341517,1979711104,482118408,-337671415,46593573,-1128003468,-1014232832,322771179,1024291328,142016551,151829700,116114316,149994692,-75250804,-2146011649,58064894,-1559434247,-4716240,114175,-336005581,16483084,1424491380,80118528,184972024,-352160311,-25125729,1378448641,1460031829,83933264,-12832819,-1962314408,84064472,32190413,1594192889,116087047,-402209661,1516044300,248447467,1543502824,1347928926,855637945]},{"sector":3,"data":[-139529536,1599621585,33260483,1048780149,1962871064,-49898,-1588589707,520030512,-346552040,404684548,857402121,-98103,-1977219468,166396749,1966422062,1300901380,80184067,-131238919,427084043,1962933888,87762437,992871403,-352160507,91506953,-352008317,208861667,-117440896,118358645,41747238,-315488654,1192069670,153749190,-617364736,425088,-2016997003,757074228,-2017049789,1126172980,1560323816,-768353485,153751176,973685898,706639553,-152007999,1954547524,172263956,154437512,1090224963,2095580021,1976499712,142377196,940405760,141756492,-1979167702,139234001,611633419,252134646,1156975733,108269575,1191545382,-2007498261,1124676743,1967192963,4319235,-596260354,-2147007242,-167110539,1149899892,881297418,-75283703,-402426560,-822214621,1157033077,141889287,268911862,216728180,141873674,154011279,-126498050,1426064104,1460031939,-880081122,1049484083,1961363764,1594192635,82532615,-116996989,1156996547,309669895,1342540326,-61151167,-1977219469,-128974523,-1977217557,1958742533,-348043516,1442393077,-1088483645,-1262288828,516238977,1204158475,1204224013,-335544553,771863554,728773,520308617,1499094877,-1880531368,5244398,151126018,184549376,1164800,16777472,1447108609,1465012560,-986833323,-1979708642,1737097543,307202829,-1005299829,521014911,110038780,2145915327,-1190497287,-4849664,-352151320,134264957,-12832819]},{"sector":4,"data":[516256885,2005598219,340232978,1776867470,4505344,1944585998,777744896,728773,638994314,772097416,67152034,-962449855,21096465,146030706,521011632,-855620417,516238895,28573707,170297390,224888832,-1996445256,1334578759,306693904,1334575273,521032212,-1206797378,28901379,-385894912,-379977187,-369492185,-303497455,222080000,171706484,792462452,-1018236043,140164951,-768358093,1039053288,175439871,1962934333,2680861,-148444437,68270342,505050368,-1191181640,-4849664,520213736,45484267,-402652999,-336002615,-1017120767,142909734,141835600,-2128211595,68270350,-2036324864,-1314773496,1031203601,292882579,-1190231770,637536273,638092961,-351161693,145374560,-2128211595,538032398,-2036259328,-1264376312,1028320017,292882605,-1190231770,637538321,638092961,-351160413,147078452,-2094659467,34715918,-784521237,640513288,297340545,-1101660096,-1070397225,142843942,95537406,-268181002,21269030,297181734,1347901534,96872031,32202528,1017955160,1023112224,1324839945,856100547,-32904997,-1239512530,576555025,-2145231478,141885691,771762361,296881801,-1215568943,-947710715,1292583,-391842820,1166737582,-1946627793,-906086835,527622355,-2144385655,661914105,1569325488,578650161,-1974307833,-41934227,-1291422720,-347673616,880640894,-1291553528,-1287984130,-1288246276,-2147372816,1946624637,578650156,-1341098752,880640770,-1291553528,-1290081281]},{"sector":5,"data":[-2145981443,1963008637,-1291735034,-2146767879,1963074173,-1291669500,692422905,-1959699064,1569400133,-1947994314,-470338467,-2144385655,1963401853,1221735197,-150993989,179171,-768347145,-150863685,1166622963,759547698,-1007157024,788344552,297338615,779354116,296853550,772031880,-1995328863,-147970747,269596934,772240384,-1995327583,-147966907,538032390,772240384,-1995328351,247674437,-17633,-404225870,33604599,33554690,47186032,150995709,512,16908288,-536739839,-116826112,983047,2,16908800,7340544,66651552,33556736,0,65794,1073799170,651275,131090,0,0,16908800,15729152,166729344,33563648,0,0,-1391158784,-1072381932,-1072381932,-753614828,-334184428,1212548884,1128551507,-1977196466,-466484921,65065280,260712152,-921965262,1396903796,-400585946,1935343814,-498908351,113716978,196610,-1977207573,-466484921,65065280,126494424,-523115470,651690816,-315486326,259311883,-1960422589,6154271,1124823899,787669571,132807,1599930372,244002395,-1590820864,-1959919614,771753014,398987,136219182,1355544576,-1459123418,91553794,458542,1015033344,-1457949440,158662657,33998638,-352321024,61886478,-1628897356,65755136,1476468200,1438906819,1334453841,200094216,-1928497975,2062027119,-402099453,-152961010,772205561,1388169,-1017292296,8290342,1157854208]},{"sector":6,"data":[]},{"sector":7,"data":[14309965,37,16318496,76546047,128,72876048,30,1]},{"sector":8,"data":[0,0,0,0,-1192457387,803733672,-2141825253,84456766,1048577909,1946159286,1354771219,1342470840,-2096960792,28837060,47966464,309462727,1187451242,-956301064,130630,-1207847191,-1957691345,-472777122,-16353653,943646768,-1996176253,-1072956858,-661966988,-1962932282,-472777122,-16353653,-129594576,-1174911233,-369688496,-2104627061,-397344936,-998034006,-94467324,-349239354,-27358430,1988879313,-1959723258,1191180358,5290488,-259266057,-10976627,897640528,-955988861,64582,28842731,-1070903296,38922320,721732739,38005184,88737478,-62455809,-771858805,108956643,-1377291777,46433077,1929135673,17754371,-771858805,108956643,1979920779,792494332,1149948789,1357130241,-2095951384,-467008828,1946174269,-385649122,1060962446,1033860096,-1401683903,1946174013,9693443,88803014,-962401281,347654,113679339,-335608497,-27358316,1988879313,-1959752954,1082850398,1357130242,-2095970840,1111229124,179839349,1586188288,-1948003842,9111158,100419075,-397410301,-998042646,88646404,-956344599,-16430074,-956346647,-16429818,-939571479,-65900026,-12719818,-11485141,-402366410,-998047369,-13768444,1946176573,5127572,1413338484,1037595648,57999447,-1191216151,-1957690296,-472777122,-1962510709,-62520576,803754048,79987476,1065408651,-1195805440,-1957691382,-472777122,-1962510709,-62520576,1810387008,79987475,-385530205]},{"sector":9,"data":[1191182039,71732222,2113816121,-27358427,1988879313,-2145875194,58011455,-2080465687,1946351742,-30938877,-11485141,-385589706,2122579454,175375096,-11485141,-385588682,1048837614,1962870086,1275512327,116129541,88475335,1048772610,1979647304,1208403718,-2147458043,346942,1048595829,1962935628,267565126,1485213008,417878271,79987477,16664263,-1206392064,1448087538,-2096588312,-1073019708,113640821,-64181,1586232902,-1948003842,184891575,-2133035530,346942,113640821,-2130770612,346942,1048582004,1962935628,1295941639,158597125,-1202667477,1525220452,1329496317,393478149,89013888,-955747328,-1626476538,-954340597,906883078,-2146047220,347710,113707124,912920048,113706731,187174384,1353205389,-10975603,173205584,1593685481,1575324511,-326412861,-402652488,2122520610,561316102,16664263,-16520448,2122579526,813502718,-771858805,414711779,493807621,-352140157,75400166,-15764480,1354237046,1508397061,79987485,922684139,1307051290,46433053,-1017256565,-1192457387,-806879218,-967420137,-1191185338,-11532968,-907541386,79987483,200427145,-400001600,-11530834,-1866988426,-222801916,-35106801,147096371,-1202667477,-397406222,-997982357,112644,-1207877911,-11532965,-1914173834,79987483,201213577,-399673920,-11530894,-1866987914,-222801916,-1041739761,147096371,-1202667477,-397406222,-997982417,-227082492,-2095419416,-1175780668,1183432747]},{"sector":10,"data":[-96040452,-893301,259523151,-1947050357,-1962410233,705137368,-16127004,-773262730,46433052,1950412939,-27358343,2013417471,-27358449,134154123,126539915,166454314,-385976577,-998040404,1090030338,-147118988,1187386996,1448542452,-231681,1589181046,1374179333,180650780,33179267,16537219,1996460779,74907398,1342481592,1343222456,-2093801496,-1070921532,267565136,-24254384,-16464765,-840371594,46433049,-369199361,1586233170,38797310,1586171768,-16282626,-1965520121,-337368569,-25755895,-2095303704,-125107516,-2144766656,1946219646,1354771213,1342486200,-2080487704,1996424388,428271858,-16595837,2112421494,46433049,166445099,-16484609,2145977974,-1956684033,1438866917,-1070338933,1461076456,108432214,-2096464245,1946160254,205949716,1178322435,-1962246396,-956101562,2114471483,-339727574,1204259635,-150961479,1980105705,1346387986,-146356597,1946551273,1346387986,233838335,184861827,-1948879424,1325337670,1975520012,-18224,-1017290914,-1192457387,-605552612,-263797227,91273471,74907472,-2095458328,1183384772,1975520228,196929573,74907472,1342476472,1343222456,-2093872152,-1070921532,267565136,-42342320,-385563517,1941439483,1996443653,429844486,-1996176253,-1072955834,-2081935755,1996443659,76593158,267565136,835905616,721994883,-222801728,1088966671,79987709,-385976577,-998041472,62515458,-150961480,1342523438,-2094164504,1956840132,1958742802]},{"sector":11,"data":[8566805,88616695,763422800,-1560099709,-1073016202,-1070917515,80918608,-50468784,-16464765,1038673014,46433048,-1070877973,-1981397367,1183443014,-96040460,1358579341,721766561,-11474874,-2101812106,-395380992,309593603,55699536,17351811,1183705158,1218531572,-431609083,-25755824,-150961480,100918894,-397405578,-998046929,-431619832,15236739,2122526837,712311014,15761024,-1070920332,79083600,-58595248,-16464765,-401443786,-998036268,1983315714,751495186,-385694589,1996488557,-394854426,-2096221208,1183384772,-163133454,65732608,-1946794241,1178202694,-1206223370,-11534335,1996486262,-159973402,-387418369,-997982699,1975519754,-230257701,1962296889,1354771217,1224099467,232581200,-1996176253,1996486214,-394854410,309606143,-2096938776,1183385284,-159973400,-1673473,-401443274,-998046931,-431585018,15236739,-1073019019,-1506443,-96039426,88645968,1357399595,-1192986881,1861681282,1946551272,1357402130,147096322,-1914157567,-1588530106,1177224520,1996443878,8567038,65433335,1343387142,-2097008920,1174472900,-2000672026,1183377990,112878,-1981004151,1183445574,-62486024,736511627,-1957627834,1177282630,1239961842,79987469,-637303,1342522934,-2096284696,1183384772,1996443894,-428408840,-887041,854124662,180651005,1903476746,15746758,-1207666945,-397408906,-998041388,-227082492,-11485141,-401443786,-998047071,108461830,1342537912,-2095532056]},{"sector":12,"data":[1996424388,1354771448,309737215,-2096986904,-1967651132,-1645719547,46433048,-887041,922740854,786961012,113541890,-1554807,1996486774,1983315942,35383314,-1996045181,-135666106,-431584259,1357661739,736642699,-397345722,-998044516,-163149564,88487679,210692176,-1996176253,-11471290,1996483702,-59310106,-387418369,-997983099,1958742538,-263797151,74907392,1342542520,-2095568920,1996424388,1354771452,309606143,-2097023768,1996424900,94156806,403368016,-16464765,-1070863242,1983315792,30926866,-1207516029,-397408858,-998041616,-59310334,-1542401,-401443786,-998047359,-398030586,-370379009,1191182160,-230257668,2130462265,-62470377,1191116801,-398029838,2096252473,-230258425,-1161530,-1946663169,1178201158,-954564872,129094,-1947449601,1178199622,-1962246932,1183443014,-364460308,-293699329,-385649408,2122382950,57999594,-956408343,-1593774010,1178142024,956661224,243066438,1342497464,1342549688,-2095620120,1996424388,95598596,391309392,-1962621821,1346955334,-11485141,-401443786,-998047459,108461830,1342553272,-2095631384,1183515844,726681830,922702016,-18345354,113541888,1342555832,-2095638552,-85392700,1575324668,-326412861,-402652488,-950660714,65094,-16742423,-2135423370,1183535104,1346387972,309466879,184992899,-2122550080,-65899970,-1961528010,1077937222,749922384,-1962752893,73305072,82118,89079424,-1205832704,-1957689906,1077937222]},{"sector":13,"data":[26994768,184861827,-1962117696,1204159582,1586167810,-1962410230,1077937222,745990224,184730755,-2146994752,347966,1586173045,175540996,76219647,1182861193,-16743932,1183579718,139394824,57982987,-1946194711,-1956708794,1438866917,-1070338933,-1961825816,1178142790,721714950,-1960383552,1177224774,8567048,508619255,-1962641665,141490113,503596547,175958096,-1962228605,1177224774,1438866696,-1070338933,-2146390552,346686,1183534196,105261832,2113929789,8566849,50753271,-397409210,-998047682,97499138,368240720,-1207778173,1861681282,71697160,2418768,-352140157,105286429,-1190770945,-369688446,1342457347,-2097148440,1183515332,105265416,-1017257090,871140181,273213632,88948352,-1961921536,939459678,1342559416,-2095733784,1183515844,1346387972,1342561208,-2095737880,-1017314108,-1192457387,401080326,106859280,-1979300097,1357130247,-2096619032,1183318724,73305084,-1979431169,1374497295,-386251127,-998045686,-28932094,1962559034,-62486003,1996375608,112655,2122321387,-1116405506,65781803,-1946157128,1438866917,-1070338933,-351288856,71761667,-1979425141,-151049697,134896519,1183575925,1438866692,45673611,262203392,74907478,-2080386840,1183384260,108461828,-2080389912,1458242244,-2147203329,74776639,1709948971,-1962522881,529138782,-2013855958,1946683995,74907415,-2080400152,1183384260,-2133292034,24379455,71731528,-1979294069,-151049697,134896519]},{"sector":14,"data":[1996429172,-8919034,-1996307325,-661914042,1946173312,1183401985,73304838,-1979287925,1946630148,705137307,-1965126684,736963087,-443851071,-1957313699,309484,-15791640,988284022,46433279,-16497015,786957942,46433279,1586191083,71761668,1962950528,-373282043,1191116932,73304838,-14016630,173770742,-15240184,48759926,46433279,-1946270071,4161752,-1991769740,1586168902,706710022,1535637247,393480202,-402229505,-997982499,-28931838,1065408651,1208054784,-1962522999,126486110,-397351894,-998046046,73304834,-316010614,-62486191,-2096721432,1178206916,-385649156,1586233212,705137156,106859492,-316010614,-443825877,-1957313699,440556,-15838744,-1712847754,46433065,1208239619,-939637111,129606,1325336299,-96010242,83525251,1586169983,775913726,1555623029,1996443648,731703300,-1996176253,-1072956346,800591989,1996443648,730392580,-1996176253,1586232390,775913726,2122519157,125042940,1178190731,-1207601156,49020927,-443826133,-1957313699,19052780,-15869464,719848566,46433030,-402229505,-998046175,74907394,-13597043,682420304,-16464765,-2037578122,-397345058,-998037346,814124292,-186101505,46433024,-1920842103,1358880390,-2097092888,1183384260,-2106130560,-13597043,22014032,-16464765,-2037546890,-397345058,-998047423,-561607420,1183666430,1474842800,79987496,1350846093,1342177720,-13597043,732227664,184992899,-15436608,922682486]},{"sector":15,"data":[-541588396,-1377284091,113541906,-1929345303,-397365178,-998047542,780568834,-1572434433,-2106130608,-2094525976,-1098709820,1946222382,-2139685050,-394103041,-998047442,1958742788,1547108120,108461828,-13597043,98941008,308471888,-351746941,-561607408,-2037559042,-397344976,-998047085,-1337553660,-561607344,-1008185090,-1928467673,1358880390,-13597043,41281616,-1929067389,-397376442,-998036736,1958742786,1575324552,-326412861,-402651464,1996426406,669968388,-1996307325,1174666822,1183401988,-1961366532,126549086,1023035016,1008039004,1007776826,-15895505,1183579214,-28377090,-545931253,1090274955,-1017256565,871140181,207677632,1342193592,-402360577,-998037076,1975520004,2799633,74907472,-2094425112,-1073019708,-4717196,721611775,1438866880,45673611,204269568,1342189240,-402229505,-998037128,1975520004,2799671,108461904,-2094438424,1183384772,1958743038,74907427,-2094575640,1295844036,-1961527552,1204223582,1586179585,38258430,-27358422,214982,-1017256565,-1192457387,-672661484,1996445195,656336900,50513027,1183384646,108462068,-2094592024,1174602436,-297367290,1342189240,-402360577,-998037202,-230258428,108380171,-1980479861,783872582,1996443648,689235974,-1996176253,-1072960442,1183516277,-330921490,1342188216,-402229505,-998037296,-263812860,58048523,-1962893591,1178201158,1347646448,1358579341,-2094641688,1183515844,105262064,-1996208637,283899974,-1947181429]},{"sector":16,"data":[76216438,1191118728,-263782408,972179083,-395118522,-957325685,1183514631,-330945552,-1947318783,1183445062,-96039444,108461904,-2094676504,716702916,1996443648,677308422,-1996176253,-1072959418,1177235316,-230292500,-336050551,-262239472,-1963428213,-16283644,1191180358,-196703248,1928873529,-262239256,-1962932282,1183445062,105286638,1183531243,-263833108,1183520371,105262064,-1996208637,1183578182,-1206588430,1491861503,737166987,1174662214,-129594894,972310155,-411830202,-1947181429,76216438,1183516552,1183400176,4176118,-159973552,-2094541848,1183384772,1975520240,3061929,108461904,-2094536216,1183384772,-296842256,1975597897,-958887163,-1070923769,1575324510,-326412861,1206435891,108461834,72890111,-16484609,-1207675338,-397408779,-998043744,1262387210,192151557,-16353537,1206387830,-16126990,1996424822,-198121468,-1207647101,-397408769,-998043784,-1866244862,-1523661,-1388412151,159121416,957144225,2080943366,84588549,512428779,-472840019,210798475,-1957326653,309484,1460262376,105840470,-2096857461,1946158718,140413740,2013417471,140413711,134154123,126539915,166454314,-402098433,-998043820,-2081387774,91553790,1963654787,378386,1979711107,75380997,28854132,-2092635392,-1217131010,1946812035,-2000254198,1325352709,-5707002,-947190154,621037099,137166855,1356396288,-2096952344,-259324732,2144342,-396943792,-998046898,704512776,2062091894]},{"sector":17,"data":[1589652479,1575324511,-326412861,938000435,142016265,-1207535873,-11534335,1508377718,147096333,1963345465,142016272,1342571192,-2094719000,1967129796,-18427,-1070923029,-1957313699,353799148,101949702,-1017256565,-1947432107,111346758,105286406,-1962538845,279120454,138840838,-955904349,396294,319211264,-956301306,398598,302433792,-443875322,-1957313699,509040364,-1912135940,906364958,101332619,906264203,101453451,1241929355,1017916899,-1435863539,1979179082,-1070380766,914962090,-2026502646,906365966,101453355,319684918,377697798,-150993387,912976848,101453451,319684918,377697798,1375733269,102140726,244004358,-1959393778,-1274671074,-1960719041,212022984,1525844742,-1569341429,1963228731,204663721,113653249,-335608302,1022653592,1016493066,1368159497,1177274251,468228,721422521,1992965064,734694146,-215961391,1894341034,1583292415,-1017256565,-1947432107,-469105594,1631325557,2050754162,539755127,-1962516737,12803557,-1192457387,-538443762,524189703,494206982,15877831,-129579208,1183650428,1183666418,1944604914,79987492,102696646,-1875443713,-1908998382,74907410,-1946179096,1438866917,45673611,127985664,74877782,76161771,-397351894,-998047627,1958742786,46564101,76156651,-397351894,-997982314,1174702082,1962949760,71732185,1575324510,-326412861,-402651976,-346683550,-62485969,-397351894,-998047687,1958742786,71729926,-1961235710]}],[{"sector":1,"data":[216729206,-1408999797,74778424,384549771,1962949760,71761903,-1979425141,-62486521,-982138870,-1956724693,1438866917,683207819,118810624,184951969,1963337222,-431569117,1183671040,1183666420,1183666392,-269987610,113541923,-1545582965,1183516196,103195642,-1962531679,-1996085738,1451883590,-60898050,4161574,-2144991371,1946157439,71731737,1996961830,1194862091,-1207602687,149684223,50087555,-1070868501,-1017256565,-1192457387,-1545076734,105286406,-1946270071,1178141766,-15174402,1586232910,705137406,1793609956,46433279,-478822389,-1946269953,1177224774,1946265854,-18427,-1070923029,-1017256565,-1947432107,1178272838,-1962705146,-443873722,-1957313699,71732204,2080785979,105286403,-1017256565,1458342741,1317740119,-1003625716,1992624254,-661849084,1963607611,1928805124,-202780407,-1542098011,-947186965,-1053047253,-1047793805,66585416,-1527513616,1583292412,-1017256565,1475119957,75416828,-1979169142,1317734502,-471215862,1940648706,-1956664831,12803557,-1192457387,-605552634,-2091493627,2080507518,108954374,-1207599600,1475084287,1187444267,1586168062,71761668,-1952970870,1962871800,1535505943,91488522,-350206579,-1949857022,1535506168,175472650,16678528,-963917452,-8183317,-2096791751,65745135,962064259,-461502850,-150583669,-1949891602,-28915984,1588587519,1575324511,-1957326653,509040364,108461831,-2095010840,-1958739260,74877912,-880038660,-234455413,-1913227858]},{"sector":2,"data":[1583349572,-1017256565,1458342741,-16310697,-2115500426,46433056,-1948742848,-1392769930,158646282,2123090827,1957622278,-12284430,-443851169,-1957313699,-61384980,-1962641781,1018889854,629844998,-528033977,1977629399,1977879049,-18192,-469104917,-1070336140,-443851169,-1957313699,8698092,-955983384,64582,-8616307,-1912715639,1358920838,-402229505,-998047555,1975520004,-25755888,-402360577,-998047571,1958742788,-61964284,-25755896,-2095058968,1174471364,-25755650,-402229505,-998047268,1975520004,-25755888,-402360577,-998047284,1958742788,-61964284,-25755900,-2095071256,1174471364,-25755650,-402229505,-998047473,1975520004,-25755888,-402360577,-998047489,1958742788,-61964284,-25755902,-2095083544,1174471364,-25755650,-402229505,-998047617,1975520004,-25755888,-402360577,-998047633,1958742788,-61964284,2089192705,1996443903,519890952,-1946401141,1438866917,45673611,66906112,683169367,1996443654,-24713212,-1962621821,2088781552,57999615,-16484725,1996424310,516483078,-1962621821,73280478,-972652917,1996423169,521332742,-1962752893,33129416,1581301787,1575324511,-326412861,-402651976,1448543146,1308915339,1342581432,-947126645,770199616,79987710,1015083147,-1192659712,1464862252,-2080498712,-661977916,1962950528,775782405,-24444300,108461911,-2095161880,1996424388,515041286,-1962752893,33129416,1581301787,1575324511,-326412861,-402651976,1448543050]},{"sector":3,"data":[1308915339,1342582968,-1962851187,-840411144,79987709,1015083147,-1192659712,1464862260,-2080523288,-259324732,108461911,-2095183384,-561314620,1577312043,509446,-402229505,-998039980,-2084009214,-1071971847,-1956684224,1438866917,-1070338933,-1962742296,130418270,108461824,-402360577,-997982325,1958742788,108461853,-2095177752,1174471364,108461830,-402360577,-997982449,-18428,-1070923029,-1957313699,309484,1459793384,104249430,74907472,-2080557080,-259324732,1946172544,21269766,-1962654071,-1202846602,-1924135368,-125107900,-48830377,-1962621821,3965168,1996482933,108461828,-2095227416,-544537404,50617899,130418270,108461824,-2095208472,-930413884,453114243,1600012480,-1017256565,567095476,41091644,-1665195827,37128963,-2114508032,1913651454,268484099,-2116579590,-82534716,521539699,855767016,1994936512,1291827204,-461168179,646526718,-1992947646,-1962394074,-754667066,-1556723488,-150796228,145033,-567557236,1253366775,-1942609459,369668894,-926942201,346077453,-1070346453,521579251,369114088,59959327,855769576,-734593043,-768147704,-801702136,-427759608,14870608,-1912365896,243928,1074186038,1343911432,-402555928,-4717571,385830912,817104960,-1247600179,889239560,512303565,109840545,521013411,-1171980104,567089556,243998486,786631906,145950350,741772070,-469318400,869960716,520042203,91426016,1307123478,113587713,-628355864,905970619]},{"sector":4,"data":[216014591,109977366,-1960441677,-486527986,868322870,1031808767,-1188269056,-1799487476,1957098248,2147465483,-1359822797,-437577355,520560134,-1128269941,-1852265464,1958805164,-492156927,-1155590409,-1484783612,-1195439940,567100416,-1024062862,-2147126144,1074314383,-1092126389,-323023636,10676236,-1089672002,-1964503828,-1957313792,233750252,-401740097,-323092355,216973068,-352291608,-326413053,-1089671490,1726483694,216972800,-401805633,-1175977876,1958742784,75399947,-955943680,16712774,-1157623879,-2013921275,1946224828,-851528700,-220052703,-1962932248,1286865990,243999181,132320482,-16776517,504160286,144774853,-853213000,1048583969,1946159326,-543154675,-535378680,-853167096,1002643233,1326085111,-485651633,-338558986,-147078158,-276623757,184912644,-227278267,-286581249,-1957363517,16562412,41674832,149175939,-16485376,-1207376874,-397410049,-443874711,45663069,-27531008,735873881,990540504,1913185822,-1864956,-373279775,861339205,4372982,-1392712654,-69017550,1951790208,-5314547,1342177720,-1207816984,-1017249791,149423759,939524794,1946727702,-1291416023,109979144,109838380,-1070397224,-2147436135,-1359806669,1207661998,-700544697,-18168,-772296974,29348235,8502784,145956494,1948269740,1946762491,1947024631,1958742639,-1404156053,-395042756,-462157508,1551109436,1484046346,611590716,57957436,870640450,1017921993,1023046748,50623522,-1949045807]},{"sector":5,"data":[334090689,1963043025,1308748746,1947024556,1958742571,1948400679,1952201914,-320126461,-1404974797,-93037508,74719804,-605302525,-372129397,27840787,-1746152843,1049173782,-687666992,65524039,-18710313,-997465557,-1962356061,385549272,1065956871,918897475,-1431566122,-92946422,906002878,145956494,-1070398485,540847274,154991476,222099316,2145977205,1975519744,-1871058173,1128237366,1017925187,1021015072,1020752905,174224397,1012823232,1009218594,-1442614180,-919345941,1547480129,574421620,1555039860,-773084429,-372155216,108243699,-341171536,1017925317,170816525,1009415360,1018655778,-1442614180,-919343893,1547480129,574421620,1555039860,-638866701,-372155216,-1770804493,-341171536,-1430244403,130490134,654245888,-1957361432,512644588,-919402317,-376716917,-1958086261,184560694,-1911524106,1048585926,1946157056,1169093126,1174042030,-31178601,-439222901,521585923,638807,1593869800,-41169013,780793859,119408852,-164372850,-2129403063,1950563132,8292613,-1431550651,-92946422,1317662178,1562318336,-1017256565,1458342741,-1962467753,-155319210,-1036276468,-1774186380,865537140,-17984,-141840654,1603726315,1575324510,1426064066,-11015029,-873986954,1958743039,-91516396,-4603853,-139529473,45828561,-851397632,-443850975,180829,100913291,896665666,138151481,251995507,-657371136,-388824143,512481676,-886372173,-1014054653,1253365899,1918378445,1223697424]},{"sector":6,"data":[-1794622301,138555019,138548737,-372798525,326302609,-443826125,-126631075,1632336,1575324504,-402164797,-4718578,-443835905,-466435235,-1023409688,168343714,-2145159708,50902334,574360946,540806515,95421810,1016072171,-1342015981,149601043,-1381787433,-997539064,-1957300245,283935724,1988843095,-16636,-2096741130,-1746336907,105182720,-385649600,-397016946,-998045910,-1946645758,82543070,-754732791,-775713797,-774372381,-1467511837,-62486263,73197654,-1979530109,1352140612,-2096075288,-1073020220,2122535804,1349779708,1342766776,1358055053,-2095617560,1183646916,-28931596,2139150475,276061438,1342767288,1358055053,-2095641112,65733828,-1191293185,-11534326,1996488310,397601020,-1928936317,-397348282,-998040970,1958742786,-16637,410822,1600046987,-1017256565,-2081649835,1448543468,722011326,-1877611521,-2096741130,-397014156,-998046086,24395778,147227463,169621049,-947132813,-443850914,-1957313699,49054700,261023830,-166989685,-11136908,1996424822,70707204,-351878013,-1070886909,1575324510,-1957326653,149717996,1988843095,176065284,-150583669,1183385702,-62486018,425603,2122516084,108331016,199868459,1173786625,1702169606,-343810165,61933828,-1014236205,-670833711,-2013862959,1963002276,-62458036,544539135,1459386111,-1744353910,308865104,-1996045181,-12715962,733836543,108459986,-1878997527,2013416959,-1962636789,-2012872931,-1878201593,-1744532905]},{"sector":7,"data":[28239952,-167459709,1965033029,1325352595,105248508,-1958710008,82543071,-754732791,-775713797,-774372381,-1534593309,1551106313,1308567019,-1978959870,-14841084,-351827963,-1973972980,-397371388,-998047384,105248260,1179874592,-2080616705,1946221694,41780041,-1949338624,1177223749,600382460,-62520383,1358579337,-399114410,-998041478,-96040186,-268237567,704398889,-873790907,1459386111,-1744353910,296282192,-1996045181,-12715962,688092415,1183579206,-62510082,-1862322967,-443850914,-1957313699,149717996,213800535,105286921,1459373705,-2096902168,-125107516,1342588557,1443133183,-2096805912,1183385284,-396929288,-998046664,-129594620,-443850914,-1957313699,49054700,74877782,70108811,-754732791,-775386120,-775879712,161744352,-151107959,1954743876,105182726,-1207471040,-1997930497,1157009408,108265990,537283712,1283517931,1586168070,-81297154,201737462,-561307019,151317377,-70057039,-472792181,-472786941,161777654,1443460353,-2097031192,99287748,-1996209013,-27358460,-16615425,1149895796,-397371385,-998043672,38045958,91537419,1979711293,41714457,-1341819904,-1878791392,1141379248,38061830,2129199104,1291817215,-14906622,705137156,-443851036,-1957313699,149717996,1988843095,121932294,-96040552,70108811,-754732791,-775386120,-775879712,161744352,-151501175,1954743876,105182726,-2146732992,-1205860788,283770879,1157009409,-277544698,33967232,-284793728]},{"sector":8,"data":[1149878315,-1980200190,1157037182,1601506310,-343810421,61933828,-1014236205,-670833711,-2013862959,1963002276,218005830,-2130283511,1963529470,-92864717,-2095800856,-1073020220,117386613,-25097982,108333324,-351407432,-1632071676,71600402,1586168969,38258680,130417152,-1878463743,13297750,-167590781,1963460164,-2116121831,-1324808981,-1946430717,65262019,-152841768,17409159,1015763060,-1962640341,-1992293308,-128021756,1208108939,184697993,1460895487,-16485121,-1880556938,113541903,-335788407,1586204698,-1131940102,259268616,1342177976,1347469355,208988243,-1962359677,1183450204,-351827964,29331479,1355254528,1342457485,-386238721,-998043822,-62486266,1962704441,-18093821,704923274,-1956684060,-1866244635,1458342741,-167479669,1954743876,105182749,-15240184,1508377716,46433040,-150576000,76136491,-1996209015,1566442052,-1957326653,49054700,71732054,-1324809171,-1946627325,65065416,98619841,1183386020,33601790,271640656,-1962752893,1200161886,1958742788,105873423,-27358456,149447,-1877480702,-2147197301,-1962670513,-1992229306,1586168903,38258686,1586167809,-1946973436,126420036,149447,-443851264,-1957313699,183272428,1988843095,106859272,1033373578,678690913,1946186301,7814411,-1070918540,-1878995479,1187446571,28901884,-61437440,29302763,-62470653,-1863324926,-352253505,-940076812,1064632322,184193,-1291917437,105316224,-2147066229,913571903]},{"sector":9,"data":[846514443,1033373578,-629931989,1946182205,7617811,-947186315,1975517353,13598990,-1865225408,11126667,721777856,-1866011703,-2147430527,1451802603,-28407300,1342284984,74907479,-2096400408,1183385284,2109737978,-9508605,-1996732790,117376580,-963966718,-1324809171,-1946627325,65065416,98619841,1183386020,-1950340360,126416990,38046104,280519,-1983894784,71600388,-1996863862,-963967164,-443850914,-1957313699,82609132,74877782,151127807,151846529,1187448949,-351407362,-25063412,611649812,-1627502905,105182738,-1961265908,82543070,-754732791,-775713797,-774372381,-1534593309,74711305,904642603,70108811,-754732791,-775386120,-775879712,161744352,-1946401143,1149894214,-1962637052,12123230,38242562,-972929911,1283457287,28836358,-443851264,-1957313699,49054700,75400022,-2124712960,151783038,2122385268,1963529222,106859382,-1744353398,294971472,184730755,-1956350784,70059590,-754732791,-775386120,-775879712,161744352,-113015,1273497206,46433024,-956408181,1204224007,-1962934270,-208992674,76136491,-352041079,1586204714,75464966,125046258,-1643872383,-1978108654,1352140615,-2096023064,-1073020220,1996425588,583686,1577239683,-1017256565,-2081649835,1448543468,721712779,105155327,37487396,1156990581,427100166,-343810421,61933828,-1014236205,-670833711,-2013862959,1946225060,721718055,1183384644,2126515196,1962889243,121932292,1072189592]},{"sector":10,"data":[113541900,1962690107,105676807,-16608,-1996209013,38061828,-947191808,-443850914,-1957313699,23378156,1475681768,108432214,-23165299,-1962023261,-693958586,71731981,-955397469,909318,-569981184,-385875955,1015022204,-385649627,113705560,69090,-761020373,231645965,-1559372637,-626848304,232301325,-1559376733,-727511608,-335100147,-2147475443,1966080380,113722940,3149292,1015034859,-15895253,-955395578,907270,-1876759808,1965046912,-767655155,359989261,232261375,117379051,166399432,1965898880,-737738799,76170765,-169324392,46433031,-394936309,233355350,124184656,-1962621821,-398556176,209518605,231999231,-150083423,233350104,1965964416,-637075677,-1202305523,-397406750,-998045892,-2081387772,909886,113707645,69090,232394495,1033372810,846463046,1946177085,6831413,1815945332,-955878144,34459654,-801209600,91553805,1967930496,1015039489,-384076544,113705352,69072,113763307,1052112,113761259,527824,76207083,-1668904552,4537854,1195182708,1023767552,158662744,231606015,-23296381,-1668904160,6499838,1979716925,18147587,781434883,686598143,232136331,-559865973,-2096658163,34461190,-1878955543,232523519,231212743,179830784,2145931264,46433025,-1878961687,-352319304,117412080,117378508,1048776142,1962937818,-469317879,-352321267,113741831,3556,232392447,232916679,1048772612,1963462096,8972547]},{"sector":11,"data":[-794574805,-62486259,233309753,-392091788,-62486259,232013443,-955681792,911366,-1877808384,233320067,233349381,41795595,-391921621,-704216307,280494605,-1552384,46433024,1342192312,-2096902168,2122515140,578027772,232013443,-1961528320,86899782,233349888,41795595,-391921621,-1878529267,233309895,780337152,-1207693866,-397410288,-998047554,-14685950,-385871688,-1070858449,31647824,-1862325527,-352321096,-1224765197,-1175912804,-15079166,231751299,-1962707968,-24424762,4030535,1031800180,-1946847963,1355164615,-303540706,113541891,1015084939,-385649664,1048837500,1962937822,-903967911,105379341,-1202752480,1307312127,666118296,681453726,682109086,682108852,682109096,664545448,667822024,682109096,682109070,682108848,680011944,232799875,-2095877120,908862,512430197,1207307722,-1217060858,-347732757,-559837031,-1956684275,-1866244635,-2081649835,1448548588,168066691,117376116,1048776156,1946291664,-801209593,376770573,232136331,1468729227,-62486270,-2080483703,68015622,1048783595,1946160604,-702641391,-1995994355,1187511366,-352321282,512462862,126553558,-62486119,-2080483703,34461190,231227011,-1962052608,1175190598,-1962576642,48956486,-358367189,-432633075,-599882995,712310797,16678531,2122523773,393546244,1177355462,-1946401141,-654836138,-150941053,-62486054,-939633015,129094,1187448299,-1929379592,-125048762,1459910399,-100609]},{"sector":12,"data":[-907477898,147096332,232406659,1461810176,-2096331800,243991236,-936702494,-336310647,80121861,-1047837136,2143292233,-196179467,231607947,76023178,125094155,58483004,1176513664,-8552377,-2081852160,908350,-761195403,-670692595,-2096401395,1962997886,112645,-1070923029,45279312,1577239683,1575324511,-1957326653,283935724,2122536535,343146500,-1593835074,1183387094,-94466824,232130179,9562370,231751299,-1961396976,-1962027490,39291655,-1980217719,109312598,-352055850,512462869,126553558,-1979955575,1586296902,-704216070,1048773133,1963986384,-129594611,1979336203,169785364,2122516971,158662908,-1995823688,1586296902,-129594374,-1980082549,1451881030,972434420,1947064886,-502363364,-1878070515,-893244,-2144931258,359923775,2127444806,-1863455984,-228670394,653412095,1962950528,-398554125,-2080494835,906302,-396949643,-998047458,1996445186,-126418950,-2097057816,1048774340,1946160596,65558279,46433025,-443850914,-1957313699,82609132,-1995581791,2122579526,108291844,1191476867,28312693,-1070988565,-2080618872,907838,113706613,396770,16547456,1048776052,1962937826,-502872314,-16776947,-15872458,-15867338,922682486,1996426726,1243021310,180650762,16547456,1048777332,1962937800,-432603381,1276575501,46433034,231227011,-2095942656,909886,922684277,385813990,-998045104,-704216318,113707021,3562,185455265,1947064326,-25755885]},{"sector":13,"data":[173151999,184730755,-1207601984,48955393,-397361109,-443875064,-1957313699,1048794860,1962937824,-903967953,38797069,1183452792,-13137148,704940039,-1878266908,74907475,-2081067032,1967129796,-536412409,-1878660339,232654591,-1866244770,-2081649835,1448542956,232799875,-1958120192,-167050122,367739518,231356159,233584383,-2081081368,1967129796,-536412412,1321634573,377405451,231349899,2013417471,233611483,134168459,-467008120,1048829163,1962937824,71731975,232654337,-443850914,-1957313699,49054700,1988843095,-532774136,1349845005,922688747,1589906890,126494212,-639086440,79987700,-16485056,-15867898,-963967930,1958742862,-903967971,38797069,1589957752,126494212,231349899,134168459,-467008120,1048826603,1962937824,138840839,232654337,-443850914,-1957313699,183272428,915101271,-1070920218,-1979955575,1048836678,1966083564,-637126376,957510669,1947061254,-469354234,-955878131,537783302,-398554368,1038636557,46433033,737691273,75377656,232013443,-2145880832,326446396,233586307,-1408469712,-1645719400,46433278,-2080878849,806218814,-16053388,1048774526,1946160596,75399961,-16354304,1609103942,-365001984,108265485,-386119937,1048772714,1962937812,-1612163290,46433278,294531,2122516852,57999610,-2097138200,911934,2122516852,57999612,-16761368,1444870262,-2080451608,1048774340,1946160596,-335100147,1459625997,-2080480792,1599996612,-1017256565]},{"sector":14,"data":[231882371,-1207602176,65732651,1342185656,-2080503832,-1866267964,1342189752,-2080506904,1048773316,1963986410,-834764009,108265485,-352298824,2025361412,-571977728,46433277,-1957326653,82609132,1988843095,-28915962,1015021569,-1961921238,-1962027490,-704216257,-347733491,1015058504,-955878099,-442,-2130760890,897331260,2134457472,-633456336,-2146732787,108343356,233572039,76152880,-774927464,65130977,65130959,820609992,-2142832245,92024892,2117680256,-28931103,-125046793,-1996202357,1590070079,1575324511,-1957326653,49054700,170704470,-352039286,-2142859262,175374396,-160101318,-352321096,-1070886909,1575324510,-1957326653,49054700,151305814,169610891,-2096741130,-1070918027,-2013117303,1149830724,-972781308,-1946220732,-1878201402,-964442485,1975597832,1589652443,-1017256565,-1947432107,507184222,108136634,-116850504,1051986923,91365837,146573254,-288429824,-2081649835,1586169068,-1172423932,-1207602680,720046336,542455,-2092403584,1946159742,-1949748454,1107409105,1265770957,34227959,51279104,1444087366,-1205307128,-335997440,-27883210,-1946401143,1107474641,1174610381,139858694,1317735801,-61436930,-851312456,-1948718303,1317733974,172395016,567100084,-1484782222,-369293124,-1957302681,82609132,2122907442,105286654,1187432587,11075836,-1458539136,125124608,171116278,-972786304,-1954481082,52692054,1035257610,309535181,1962934845,12711689,-385649663]},{"sector":15,"data":[-369557343,-1953239521,83895745,1963262013,-851528695,285259809,1187440875,12059133,-165556924,74744002,1090276992,1090275062,-706149516,105286400,1946288297,239901,-919402124,567099572,-1275019287,-1960719042,12059734,-350106301,1190563943,58032380,-1459574807,57999362,-1191141399,-779354113,-851311944,-1915095263,1068826454,-1073012275,2122323316,259332863,-779363849,-851311944,-1261882591,857853248,-1194226743,567099904,-963614485,-1962869434,-1528297394,139364608,-112906,1190594421,1962934790,-18776061,-1274784117,1931595068,-312874749,-28903789,-150505985,132678,1051996277,1183457741,167977990,1452015174,-851594236,-1814400479,33375990,1190597749,1946157320,29982733,-1207675253,567100161,1190575986,1031094524,-1207675253,567100160,-919420533,1946157349,-149901054,525894,-914357388,-1172423904,-1274383864,-1205744322,-974579712,-61994242,-2013148800,-1962361713,1575324611,-339135805,145727964,-1054617353,-2136422093,-914357387,-1957313791,49054700,990142091,1913174558,12122374,861727497,139365312,-2013899293,1963067580,139365198,-1274653045,1931595071,-351685628,-1131940290,930381832,146581376,-61384965,-91491701,635685003,1015025076,-2147126006,67681423,1959017132,1964653593,-1131446265,99287560,-498662008,734497771,-379691070,-108794801,-2146995199,-344716740,-2013862165,1950353596,1140897816,-1023991347,158662688,-1258334579,1914817855,-351620908]},{"sector":16,"data":[-12138964,-11105024,567099316,-1072970894,2122520948,527696136,-1946157127,1107409105,28910029,-8486912,-1341688822,106334989,1451988715,-2137724154,1963655038,12512219,-2081649835,1586170092,-1172423932,-1207471608,-369555200,-2013860913,1948256444,1107474443,-779368141,-344841779,146573302,-1955695488,119408214,1183432755,-62486018,-1957275652,-1980593158,1317795942,-1336614136,1974399498,13953098,1979754557,49054536,12246155,36191490,-2135293069,-1948112128,385518548,139365127,1946827948,1962621708,-186471911,-352312344,990752865,-402426373,-1331036136,-62456054,233366507,1591929600,-346690721,-373279931,1397810877,735021905,-1961827382,1085539422,225583565,201213441,1493595328,-91531173,147096515,162792563,-2013913365,1950353596,106859275,1964654464,216791043,469809401,1183516395,-62510082,1593337483,-353244833,185093771,-1962576439,-354031167,-1274653045,1931595072,-351685628,1975520228,-1131940128,175390728,1065409163,-133991142,-1191587861,-907338752,149332313,108250171,-654851029,-1070341633,-1957299477,73305068,74767115,33443712,-1017256565,1458342741,171227991,1962950531,-1207493079,1944584197,855995649,619420096,-1543625664,916654644,80188938,-964493311,-29047036,915013630,1317734970,-1898411004,649408,-443851169,-823540899,-93044480,-2080448128,-227283207,-66947189,-1459713107,1212314625,359907643,-268185461,1946265773,96600884,-141885438]},{"sector":17,"data":[-335657847,1962839014,-1980169460,-1054081460,-351958712,-17235195,-963903924,-779298164,91541819,1109298214,41912586,113649347,1023543880,628424702,-268173685,1946265773,1224641522,-1116487365,-268185461,1946265773,96601058,-141885438,-335657847,138906598,74760203,351000718,1208942118,-1945013238,1003982040,637891783,171843214,-1125435509,856061835,7006400,225756731,1077936420,6219928,1308495220,1894654,1318454644,-1936069810,1003588824,637826241,-1962261853,38242567,-1013333965,-28996783,57934248,1095354411,2147465793,1142307622,-788236790,-1946847766,1925579713,1925317397,601028365,-389665854,141885452,-355347721,-1070340747,1364378457,1946164712,-24422632,-234622837,-16890681,108497407,-684992885,-27948726,-1017489064,-768389037,1347572254,1342177720,266870534,147096320,536869507,41179994,12833291,1458342741,2122516055,947191816,-1962392897,1183516246,125126660,1912624104,-1958155481,1208521270,-147123852,1149963636,205949186,3860566,-2093976738,-25099066,74647698,108384779,-1711276104,-628417045,-787496061,-754732581,-850873109,-1830194655,1418265737,-1841919742,130036488,-443851169,1317782365,972524300,208929356,-2130393469,1963496190,1072429554,470014603,-745850510,-147078770,507053685,645072956,-787496061,-773074469,1005310443,50951671,145990105,-1064380373,567102132,-147124878,378078325,-2020472772,-1009677564,-1947432107,-1931572265]}],[{"sector":1,"data":[-1950314792,-1070398338,-218103879,-9073234,-1190756725,-1359806465,-114568713,1183579783,29816580,-1543343104,-202780343,-204926043,-1946973276,12803578,-1947432107,-1948349481,-24443274,-1064380276,-4603853,-139529473,75402193,27838347,1235485300,-1510741551,-1527527149,-91491445,-1957313699,-1948808212,-1898410786,74877888,856063627,-17984,-772296974,-1493960405,-1071970956,-1946157283,1576700915,-1957363517,-1932030996,-1950314792,-1070398338,-218103879,1238497198,1576700817,-1957363517,-1286121748,139365121,855918219,184124370,-1952906891,1609107070,-1957363710,-1286121748,38332672,-1947432107,507184222,293406906,2080439171,-1131940340,91504648,-352321096,-1950338302,12803557,-2081649835,1448543468,-1962379637,2122515582,679411718,954974251,-371529642,-1996307325,1967193158,75381005,96922228,71731968,1183457003,1191545084,-294385092,1946570495,38600681,478925432,126485759,-806624214,-443850914,-1957313699,116163564,1996445271,-13178876,-1962752893,108462072,-2081607704,-259325244,1460041471,1342177720,-402360577,-997988356,-96040696,1443264255,-2081582104,2117665988,721778170,-1878725696,1593835448,1575324511,-1957326653,250381292,1183667799,-1913091084,1183385670,105236222,71732034,-1996208759,38127365,1183678463,1996443656,1374181126,113542126,1308618891,705394690,-14840896,-351827963,727158795,-974630720,79987689,1600046731,-1017256565,1458342741,75402071]},{"sector":2,"data":[1569392011,72190722,-1962519157,2106263669,1461832970,-1996063093,39684357,-1996206711,1971914325,172330760,-164428686,31983851,114406,1971914123,-1956749556,12803557,1458342741,75402071,1569392011,72190722,-1962519157,1979648117,142510858,1569588622,567107334,-678683049,2123095950,-1895461880,2123040325,-1996125946,1300824669,106268932,-1895271031,74582597,149681715,-1092246552,92995585,1594652041,1575324510,-1957363517,2123061228,-1962467836,-1178586145,-1359806465,-1965426879,-74774970,944746226,855798789,1606913023,-1017256565,1475119957,2123040542,-1178586364,-1359806465,1339684673,-49920374,944221938,855929861,-1962742848,-1956643641,12803557,-1947432107,-1931572265,-1950314792,2123040374,-1949857020,249759822,41157032,-372160092,-921459213,-208952077,-1017251189,-1962258805,1451951174,142510854,-66642345,1958742675,184124179,-771027339,766511737,-2082736214,-621346606,865269643,1958742994,-1812859134,-2020412937,1009779923,67270201,-1031034329,-495598837,-1404107384,1149764998,21270015,-227358917,-1956749480,12803557,-1947432107,1102316630,-2048319027,-1957363484,-1957709844,149619798,-1209234603,139889486,567089844,1968111488,72780550,-1979298165,-383660569,58468,0,0,0,0,1377850189,1412263541,543518057,1919052108,544830049,1866670125,1769109872,544499815,539583272,943208753,1766662188,1936683619,544499311,1886547779]},{"sector":3,"data":[1766195217,1932027244,1869488169,1868963956,543452789,1124081722,1634757999,1735289202,1818846752,2126693,1684955424,1867776032,1634541679,1663072622,1634561391,1814914158,543518313,1969713761,1953391981,1866662003,543452277,544501614,1634760805,1931502702,1852793701,1768300644,1634624876,1931502957,1935745135,544175136,1668571501,1768300648,7631730,544173908,2037277037,1818846752,1835101797,684901,1635151433,543451500,1953068915,682083,1970499145,1667851878,1953391977,1836412448,544367970,1713399407,1936026729,1935893872,1836008192,1701994864,2004099187,1768300655,544433516,1931506287,544437349,1713399407,1936026729,1684955424,1936286752,2036427888,1752440947,1768169573,1919247974,1701015141,1700929651,1701148532,1946159726,778921320,1174407690,794501187,1528847681,542982959,1565273947,1278171936,542993986,1565405019,1412389664,794501213,1528847703,1852730927,1528847726,1986622052,1564094821,1952542811,1717383528,1852140649,828730721,538968074,1769104475,976381302,1634753373,1563584628,1701603686,1701667182,1174407730,1110384707,1919179552,828733033,1885035834,828929121,1818846813,1835101797,1528836453,1986622052,1564095077,1952542811,1717383784,1852140649,845507937,536873482,541142816,538976288,1886611780,1937334636,1819176736,1768300665,544502642,543452769,1953718636,1852402720,1713402725,1696625263,543712097,544499059,1679844975,1701209705]},{"sector":4,"data":[1668179314,170816357,790634496,538976322,1699749920,1919903346,1629516653,1852400160,544830049,1886220131,1936290401,170815087,790634496,538976323,1766072352,1734701683,1935962721,1701344288,1935762208,1718558821,1952803872,1936876916,536873518,541863712,538976288,1886220099,1936028257,1818846752,1629516645,1396777075,541673795,1954047348,536873518,1112289056,538976366,1937007955,1701344288,2019650848,1836412265,1852793632,1969448307,1702259060,1936289056,1668571501,544433512,1948282740,1931502952,1768121712,1684367718,1836412448,544367970,681583,538976288,538976288,1852402720,170816357,790634496,538976334,1766072352,1634496627,1948283769,1814062440,543518313,1651340654,544436837,1629515375,1396777070,541673795,1886220131,1936290401,170815087,790634496,538976340,1866735648,1847620453,1696625775,1851879544,1635000420,1948283746,1886593135,1936024417,536873518,542584608,538976288,1886220099,1936942450,1998615397,1702127976,1634759456,673211747,1935827316,1684955424,1634759456,695428451,1919903264,1836016416,1769103728,778989427,538968074,1852730927,1394614382,1768121712,1936025958,1701344288,1836412448,544367970,1663067759,1702063727,1769239907,1814062454,1936027241,1634235424,1970086004,1830843507,1751348321,1952866592,1629516389,538968074,538976288,1830821920,1634562921,778593140,1160642570,771769688,4866639,1112099886,1329802752,1110310989]},{"sector":5,"data":[771771977,5462355,858927408,926299444,14648,5701698,7209064,12845198,15204568,1868787273,1952542829,1701601897,1769435936,1701340020,1850278003,1920102243,544498533,542330692,1936876918,7237481,1852727651,1864397935,544105840,757101349,7546144,1814065957,1701277295,1752440946,622882401,1869480051,1718182944,1701995878,1936024430,1668179232,1953396079,1684370021,1970208768,1718558836,1835363616,226062959,1699872768,1668184435,1767990816,778331500,1766203424,544433516,543519329,544173940,1717987684,1852142181,1851064436,2003791467,1919230062,7499634,22216969,27656539,33489347,40960585,46334619,52495120,59179869,68551626,70190122,70845492,71500862,-65536,65535,16711680,540689222,684837,1912627826,807731298,978873400,842016032,807739480,677938,1912627826,707395682,539634218,684837,707406378,1931812906,707395594,170535466,707395594,539634218,684837,707406378,1931812906,707395594,170535466,1931804682,707395594,539634218,684837,707406378,1931812906,707395594,170535466,771751946,667182,979645733,620765216,620759667,175318387,544417024,538976288,621441829,168430195,628303104,628303219,167774835,168624128,0,0,0,0,0,-52387967,0,1560,0,3014714,3813212,3813212,3801134,3813212,50462976]},{"sector":6,"data":[117835012,185207048,252579084,319951120,387323156,454695192,522067228,589439264,656811300,724183336,791555372,858927408,926299444,993671480,1061043516,1667391808,1734763876,1802135912,1869507948,1936879984,2004252020,1534753144,1600019804,1667391840,1734763876,1802135912,1869507948,1936879984,2004252020,2071624056,2138996092,-2088599168,-2021227132,-1953855096,-1886483060,-1819111024,-1751738988,-1684366952,-1616994916,-1549622880,-1482250844,-1414878808,-1347506772,-1280134736,-1212762700,-1145390664,-1078018628,-1010646592,-943274556,-875902520,-808530484,-741158448,-673786412,-606414376,-539042340,-471670304,-404298268,-336926232,-269554196,-202182160,-134810124,-67438088,-66052,50462976,117835012,185207048,252579084,319951120,387323156,454695192,522067228,589439264,656811300,724183336,791555372,858927408,926299444,993671480,1061043516,1128415552,1195787588,1263159624,1330531660,1397903696,1465275732,1532647768,1600019804,1128415584,1195787588,1263159624,1330531660,1397903696,1465275732,2069518680,2138996092,-2088599168,-2021227132,-1953855096,-1886483060,-1819111024,-1751738988,-1684366952,-1616994916,-1549622880,-1482250844,-1414878808,-1347506772,-1280134736,-1212762700,-1145390664,-1078018628,-1010646592,-943274556,-875902520,-808530484,-741158448,-673786412,-606414376,-539042340,-471670304,-404298268,-336926232,-269554196,-202182160,-134810124,-67438088,-66052]},{"sector":7,"data":[6797,1275069340,138588416,1180648251,1598377033,1330007625,11665422,347078682,-2122219264,459009,1376434,-1677141328,344835,721074,1417392,34996224,151853058,118230028,-15329784,34737426,1543527679,1912602624,1912602640,272,0,66048,0,131584,0,230400,0,1174667776,2013311488,110592,262656,7602354,671718576,1819047278,1848115241,694971509,539831040,-1308617693,-1342171904,32,1109082624,1109082651,1786395,0,1441792,598194,673720496,337960,1188018,84144,987314,689328,269488304,269488144,-2122219135,885121,1311154,269488304,-2112876528,-2105376126,-1308619646,-1342172158,269488144,-1308621536,-1342144256,1869771333,3154034,544165376,1751348595,1818846752,1919885413,1919509536,1869898597,31090,1090519040,1814062962,544502633,544173940,1735290732,1702380800,1868963939,1952542066,1920099616,1107325551,1713398881,543517801,1651340654,29285,1953451520,1869505824,543713141,1701998435,1919242240,1936943469,544108393,1768842596,25701,1766195200,1696621932,1953720696,1916993651,762540911,1769366884,1814062435,7040617,1224736768,1818326638,1629512809,1836410738,7630437,1869566976,1851878688,1886331001,1713401445,1936026729,0,1931505486,1701011824,1717922848,1852776564,1986356256,6644585,0,1752457549]},{"sector":8,"data":[1735549216,1852140917,1699872884,1953265011,1869575200,1918987296,25959,1869833554,1701016181,1634034720,1668246628,1870078059,543452277,1969447791,1851064434,2003791467,1919230062,7499634,191105884,192875365,193006464,193137538,195496853,196610999,197725113,198970331,199101405,201067498,201198589,202378239,203754513,203885606,205524008,205655105,205786179,207817810,209849444,-1308524251,-1342173440,1010573088,1196641614,15934,808466002,755633456,1635021600,1864395619,1718773110,225931116,196618,808466002,755633459,1953392928,1919248229,1986618400,543515753,807434594,150997517,808866304,168638768,1869488173,1852121204,1751610735,1634759456,1713399139,1696625263,1919514222,1701670511,168653934,218168320,16711690,762213746,1701669236,1920099616,2126447,911343618,221392944,1713384714,1952542572,543649385,1852403568,1869488244,1869357172,1684366433,16779789,808866304,168636720,1970151469,1881173100,1953393007,1629516389,1734964083,1852140910,658804,-5111592,-5242868,-1,6400,22675456,82184192,1112671353,-1064507253,234885125,303903,787971,244039822,-108331002,-34108593,-1202674445,-883949516,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704,78708751,-789068149,-628299565,74698795,-768878452,-268181293,-947135858,-388771593,-802438516,-1064565645,-522989013,-1030817789]},{"sector":9,"data":[1322289836,1187548077,-31145334,91598908,-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094,-1031072797,-1064385789,-2080863315,292880383,-501415642,16417267,-2129234704,-351272766,1086360796,-276578162,486614544,-339702200,-1950118942,-1962932162,50334262,33948144,1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602,482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,291952,420168196,1117264277,0,0,0,0,0,0,0,-539099136,-471670304,-404298268,-336926232,-269554196,-202182160,-134810124,-67438088,-66052,50462976,117835012,185207048,252579084,319951120,387323156,454695192,522067228,589439264,656811300,724183336,791555372,858927408,926299444,993671480,1061043516,1128415552,1195787588,1263159624,1330531660,1397903696,1465275732,1532647768,1600019804,1128415584,1195787588,1263159624,1330531660,1397903696,1465275732,2069518680,2138996092,-2088599168,-2021227132,-1953855096,-1886483060,-1819111024,-1751738988,-1684366952,-1616994916,-1549622880,-1482250844,-1414878808,-1347506772,-1280134736,-1212762700,-1145390664,-1078018628,-1010646592,-943274556,-875902520,-808530484,-741158448,-673786412,-606414376,-539042340,-471670304,-404298268,-336926232,-269554196,-202182160,-134810124,-67438088,-66052]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[7494221,14,21823520,44105727,128,24248336,30,1]},{"sector":14,"data":[1216233,-5177193,0,255,2086492928,1026244156,771760699,1050311,788267008,200329,84330286,771751936,1574599,-953286656,2310,113716736,1566245028,-1509505234,775715840,11011783,-953275586,1023453702,91220027,-4713613,-1960422401,255469085,45613939,602495744,914959873,1465057298,438209877,116796928,1965031441,-1528765,-398691835,930350435,1963300072,116796952,1965031441,86763525,-164747541,1090523398,-347201932,126365211,108346684,286162990,-398262016,-982317592,126365356,1321134915,121014574,130428416,512306688,-1960443882,439782685,1015033344,775320623,1948400768,116796936,1962999825,1200236116,786706945,198201,-1590816141,-523173885,-670874813,-400585946,1777008776,84330286,-352321280,1200236128,1088696833,-670834479,839879206,1959332845,642990863,-957866101,1098078976,-220052669,84330286,-352320768,1200236084,1088696833,-670834479,839354918,1088475620,-1977165821,200094223,1125086409,529213011,1526750696,1128467315,-953224478,67110150,1532976384,51284782,94449152,915090944,-1959919609,771754262,728714,642827256,44631947,772109568,198399,3964974,27859317,772371712,329415,250281986,-1274826672,10414335,-402396328,-1017642723,1364575225,139430438,-921965262,1871514996,38791177,250087539,-101260800,-1993472277,-134211538,650337625,32384,-347798668,784549366,1117824]},{"sector":15,"data":[-3741680,-2144449934,-285208282,346107472,784739072,1181185,915091032,-2144468972,645201980,-8617938,772371770,329415,535494665,4162342,-148498060,1962934535,113716754,131077,-1763178005,233568256,1342893049,-4979792,1476396008,643286008,772046731,605833,637896742,1342268808,1614126,38111526,1963015256,1435051530,1300833796,1012591366,637957378,-352037495,1946631248,1946696936,1963343076,1434985990,1010756356,772764932,1073746593,71665958,106794022,-1993987093,-1943665547,642778701,16926710,78644340,-165279253,1946288711,-402477051,643301556,268584950,-2081946764,784555776,11339462,-1960423424,1975520007,1381191704,113716823,589829,61931444,1610570728,-346530982,-352064766,11112510,772961282,329415,686292992,1048784386,1963524101,8431910,-953281932,1286,26929152,87982894,259328256,1948254377,113716746,5,771799784,11353728,772764929,343683,772240640,329415,-1017642999,-1976674736,1958742532,1966750746,2088775181,108331009,312878,635963883,1174500099,1591733062,1381417816,-1976643446,51570692,-1073083278,216534132,76033536,1178993131,1583016171,1937784003,1918974988,2004499525,-337697727,1460032317,10436237,1946483328,-1707176700,356003328,1364203380,-1274605998,-1144878491,96075775,-17920,1499079117,1569402456,1166945793,742605571,1607935616,1019435783,1007186480,738490169]},{"sector":16,"data":[-104597456,1381191875,2139825751,92939782,74825738,166461364,84330286,-1275066112,-402411265,1516240440,1354979419,-1302965675,76164610,1912762344,-9574340,285668910,225708032,527777084,25067558,-344886016,116796947,1947205649,1966750734,2122327562,1551171584,643623750,1962952250,1958742557,-347781550,1178215955,1178957056,1157925422,4602406,1162230389,-164714517,1073746182,-148500620,2097735,-2144991372,1946157182,133637666,410255376,158677564,8290342,-351439616,1962949646,2122327559,57948672,772205561,1324681,1566203640,1397801816,512437846,126484498,561324604,3139651,-970059150,-1962933948,-555202829,914959872,283836423,372673326,80096768,113716736,589829,162594740,1374182238,1354979581,-588773493,1009021952,-2146601694,510993148,1174702126,-387235005,1929477096,76033543,126501702,1174702126,-103421117,-970062357,1492647940,1448562883,306088750,76164608,326418442,1962958824,113651236,1577124013,312878,1581247327,312878,133637727,846528513,84330286,-352321024,777410601,-1073085302,770186868,-401902592,41091352,1179076167,-1573983765,-970063861,776404996,474761,-1453826210,158597632,-1325419440,-55908347,1364443992,10755725,771754425,74712890,1106829891,-1396483239,1946165992,5498904,-164751755,536875270,-164696716,1090523398,-347207308,32241926,-121417992,1011962819,1009611789,1009349632,639988746]},{"sector":17,"data":[33717632,-617406862,56461862,637846403,1946171776,650720013,641927562,74711354,222099682,1405311833,113651281,773849099,1123968,1948269791,1946762294,1949056050,1965046833,540835852,548407157,-339723706,2105550366,393347330,-1977169613,-922025139,62589812,975586048,-502828031,1495284984,-1573993637,-164757493,16781574,-2144467339,536875278,-403980230,1715853,175430971,58011452,-133239815,792464363,-2144467339,1073746190,1444856824,1048784467,1962934286,1360941095,106256210,-561056205,-849149768,198937633,1599932379,1478449498,-1993463436,771755062,925321,204901166,512634368,1015218190,974156800,973632004,58130756,1174793209,-118756538,-1021354405,11667189,984612876,219936,2162866,-80,-1308621569,-1342175232,-1,11665412,-5242872,11534344,-16777216,16777215,0,168624128,0,402655744,1092923904,1397600256,1397703712,1919243808,1852795251,808334624,1126703152,1886339881,1734963833,824210536,758200377,825833777,1667845408,1869836146,1126200422,544240239,1701013836,1684370286,1952533792,1634300517,539828332,1886351952,2037674597,543584032,1919117645,1718580079,1816207476,1769087084,1937008743,1936028192,1702261349,2030772324,151040512,2142208,16844998,17355067,33635073,149227740,585217,-603848704,17360136,2286,128,151390471,16909056,101254912,9,151453698]}],[{"sector":1,"data":[788859142,1445920846,4402944,788547887,-1308603585,-1342173184,100600333,69120,131128,262220,19660894,19726433,19792016,19857617,19923219,19988821,20054415,20120023,20185604,20251163,20316748,1226244757,1919902574,1952671090,1397703712,1919252000,1852795251,1226115597,1718973294,1768122726,544501349,1869440365,168655218,1313424902,840972868,1918985555,1936025699,1919903264,1948279072,544503909,1769108595,1763731310,543236206,1701603686,544370464,1701603686,168636019,1178864141,541347401,1565929307,1127176992,794501213,1528847694,542984495,1920234274,577203817,1683708704,1702259058,1885035834,1567126625,1701603686,1701667182,774774875,224222510,1158286602,1445928992,548536560,1152385032,1819308905,544438625,543976545,1701734764,1330520179,1868767316,1767994478,1735289198,1701344288,1701868320,1768319331,1931502693,1852404340,168636007,790634565,-1308606909,-1342175200,1886611780,1937334636,1819176736,1752440953,1868767333,544501365,1814062703,1936027241,1852793632,1852399988,543649385,543516788,1769108595,221144942,538983690,4083247,532658,1936278704,2036427888,1768693875,1847616878,1700949365,1998615410,543716457,543516788,1886611812,1702453612,1768693860,779314542,541788685,910765856,136360448,1732882432,1701998446,1752440947,1633886309,1864394099,1751326822,1667330657,1936876916,1701345056,1702043758,1751347809]},{"sector":2,"data":[543649385,544370534,543516788,1769108595,221144942,538980362,1920234274,577203817,1884495904,1718182757,544433513,543516788,1954047348,1920234272,543649385,1713401716,778333801,538577421,1919179552,979727977,1634753373,1717397620,1852140649,224750945,9188362,794802,1701860272,1768319331,1629516645,1818846752,1919885413,1818846752,1948283749,1702043759,1751347809,218762542,1716079626,1881170208,1852339297,543518049,1847620457,1931506799,1768121712,1684367718,1229332524,1931494478,1668440421,544433512,543516788,1954047348,1887007776,1629512805,1752440948,1919950949,1953525103,1864370701,1768956018,543450480,1836020326,1869504800,1919248500,1836016416,1684955501,235539758,389975303,-188645111,84001538,-65280,1158742020,1852142712,543450468,1869771333,824516722,1049429774,-1048376304,84067104,-65280,1343094788,1702064737,1920091424,622883439,-1928917455,-2096352194,1354964417,1460032083,-1047606989,783875891,-855592430,109850159,-1993472067,-1207452866,45224494,-1943130163,772261126,130236041,-1307431240,774884612,131401356,-750876370,305051655,801965746,-1190753234,1049177607,-2081945673,109850367,-1993472075,772256574,131139212,-817985234,-7477241,-922317778,1049177607,783812551,-855068142,109850159,-1993472035,772266814,133039815,-970061299,604518150,-217659602,771751943,133498567,250085386,1049177855,384305119,3008512,3991633]},{"sector":3,"data":[1599670386,1482381831,-998046485,1355020556,12066390,505531747,175251207,-415856338,109850119,1482557417,1140897987,855638459,-2145268270,28836302,-1021194940,567095476,1962935613,418117635,1929380413,-17659,45810667,112640,-1308622663,-100682240,1364414659,1376147285,-1993414261,772270878,133183112,184735976,186414281,-402295315,65732646,1912715752,115890696,-346093823,113541892,117763065,1928944223,1532583174,-2096829608,-1007089468,777147216,132849291,1979710339,2942981,2011694059,-1274055936,47961,-466476595,-116996989,-75296533,990606591,-402164543,-998047568,57866502,-1017619622,-2095118818,460653049,-1977220428,522308885,-1310145910,520494592,-1977219213,567083349,-1274024968,1959332610,361375241,1229398477,536408949,105928643,519736147,-1327920377,-1359807462,-651492491,1540066123,-1017161721,-921976781,102649716,-1958693857,33129431,567093365,-1977200609,5957637,520494680,-1258813837,567099968,1031808668,-1962773222,-821957695,-268274,1364531947,-1946179864,567106025,199950963,125093947,1979246651,1572965122,666419999,310016,-2134703691,292880382,1971373814,-1928913396,-1190662594,-1572862,1460061182,-415316946,1962871559,1032005143,276101120,1912945190,1161438727,-117344511,-370456761,784533343,133236367,-1835803853,-180947154,-147942649,-2096630474,91621882,-348667264,818053123,-1073004206,-620034955,-108839820,-2146536189]},{"sector":4,"data":[1965820540,922693126,-348059650,117015332,2088767093,108342282,-29950162,300630279,1963587971,175931404,772175148,134100735,-768371903,-768367893,-13713357,-1022889674,-921972173,632562036,942014640,638219557,1946248504,1975794180,92939790,1946110952,1111967489,1457747273,-317994361,776811892,133381763,-1976797952,805570116,21314086,535495285,74788924,74764811,-404016125,-264339410,141950727,1229537858,65752911,1476394938,-1509077,1935237117,-1872237821,-2134209711,1946158716,1959332621,1195985158,1577184071,-922021653,-346160267,-425207,-919403915,1047854859,1359370069,-2094085837,521022,1156977525,141889287,-402490172,15401585,-352220440,2287619,123275122,-346137249,180650756,1048784633,1962936307,-385650171,-953221334,520966,-768359680,133407022,-184105170,-402650617,777584289,133662600,1090224963,182977397,1976172034,168671469,-142112466,-398245113,1455620601,871773011,-98103,-1959917195,-1962418244,-165090337,158597830,-1011039186,-339506169,1260826,658312818,772372224,131054788,132891532,-1279474642,-2084336633,393609211,1979711104,233568515,133407534,-1107296328,-164429823,-2096305160,57934075,-2097130264,1928856774,1976109830,-1667568894,1963064960,1364546089,-1202694394,801965312,1968766780,-1193768183,801965314,1945698795,1493655301,-998045973,845830,32201309,-68677937,-1017226241,-4632489,-222285057,1238497198]},{"sector":5,"data":[-2084348072,561316347,-616660178,427097863,1979711293,-1590800371,-13760525,1476909854,-13761045,-351806690,-2134297830,108331006,55413286,942541291,772044085,-2096935542,1945699527,-921962451,-25159308,637891839,65733947,1963277102,1225386754,-947714700,-102503676,-25162638,41285887,52823822,108135037,-1977160398,-970045683,519430,-2133118013,1962935932,-2016989677,757073911,-970046653,537393031,11266115,870003549,243805906,1149896685,1992374793,-1967052257,121960176,-1978305408,-2010248636,1124595591,1967192963,8382467,-344600834,556160,1278741876,705196808,-779483060,185093258,-165317431,1963919172,121959948,637957136,-347667062,-2010228735,1124595591,1967192963,4450307,-613037570,-2147007242,-167110283,1149900148,-2021118454,-2092759049,58015995,-33544984,-152341042,1963919172,121959944,-352160752,1959922189,110046729,-889321487,48822133,1371755776,119428870,-617362549,133643917,1929073128,1493655301,-998046485,1573124358,805782774,-1977216395,-398372859,108264504,21334566,233568336,168135206,1191474368,737536833,-1933355527,-1899983160,-105125672,367529075,-87693307,11553972,954737101,-849169405,-1092907487,-919404415,319719726,-2143387639,141885440,-1241513288,84207618,285656622,118358025,637684456,152243851,637806056,128845558,-385649648,118358574,637678312,152243851,1443068392,-1994453474,-1995894002,857245758,81651931]},{"sector":6,"data":[-166164829,134721030,-1207554700,-4496126,375295,118412171,-855135809,1036273441,-1206023386,-1020591872,-2096650333,1049166535,109840297,-2147022933,-16182978,-1070398348,378211563,1035212936,567083184,-2142216846,594238,-1866848396,-1659991512,-387108312,378208773,243996808,-85452666,-1375275519,158663687,-1190586950,-353894398,-661956607,-1189573958,1068765184,57876941,184628713,-165972544,67612166,-1981283468,1977295617,23914755,567099060,-385789207,1364656419,-1946514682,-1898410808,-65359680,24489714,734497615,1599670210,-948649973,411745619,-1329034416,-218264822,-125085522,-12778123,-1961853169,-8814371,-972524534,-968422143,1464273409,68586325,65751576,1560325865,-1957036661,-485838631,1974399731,-1957211665,-1949488177,-2144974375,1963851389,117393665,1541605297,1515388299,113132114,-24422632,1593962984,-2085811085,729154041,712246587,984356331,-165383163,134721030,629803380,973159656,1477735620,-1037352880,-939263957,1912695272,1522592514,1246369259,1541932916,-336301567,116808376,1946290094,-159323380,34057734,1994982261,-1375275265,125043719,128911103,1392470249,128845558,-402426879,-712310612,-1092039797,1391024640,1540590591,225759755,-4597001,-1274957569,1914817858,-21174013,1215617827,567099060,-352313672,343309,95946101,-1207702784,-840433662,-1273066494,-2012312824,-1307670248,-1224292856,45813768,112896,1592263094,777920257]},{"sector":7,"data":[151979718,1048588031,1962871056,-36509437,-1509505490,971505671,113651201,771753903,129042118,592691968,-1173785381,45680539,3401728,-1090015327,854067102,127842816,-1174395672,45680917,1828864,1381221211,-1090014815,384305054,1560659456,-1648737983,256007,-1144824998,1085538305,-1144839731,-919404534,1925397313,-137219318,818053363,82963282,-645181392,-52254120,1019464587,-402427264,-528089056,57835580,1006639080,1007055457,604141434,1021347551,1007055457,604141434,1465107423,-1455504378,853051911,-1491194881,25830919,-1017422073,1407716835,1191473920,1191502665,-104597431,1347880643,-1940762285,-1077899576,1706297231,-4520016,375295,-838860870,-1960425695,-1784467963,46629639,773688102,127344265,-1014040437,772115238,772250019,127207043,1532582402,-1022927016,-1957669370,-1593338570,-1064433769,-2094660214,57999420,638839800,41092154,975570667,91619652,-352139645,1582889445,1286914823,128360494,516104653,-1329717490,-402607608,-1021315333,856210623,-365369134,1979711293,113651216,788465936,151993984,-344951553,1958749021,-402475515,-2144468678,151586622,-2144459404,84477758,-1959916171,772344638,152110790,775416831,151469696,-1196067837,45481994,771821032,152190592,-1207405057,45481994,771816936,151731851,-401078597,-1557266169,-970057724,-16182778,-2144434453,-16182722,45615220,-385894912,784531670,128321222,-11081728,1381061456]},{"sector":8,"data":[503731799,856211903,-375592750,1979711293,9562371,1962935101,243720,-1477967178,1975526144,1048587999,1946749191,1048587991,1946487047,1048587983,1963133191,512437959,-75429623,141887735,-1374781394,-1259667193,150666113,-2144466827,34057742,-75389205,141887744,-1374781394,-1729427449,150862721,-2144466827,67612174,-75396373,494209283,-1375287762,750260231,113409,-4798157,1040107752,57934134,-336204992,243720,602407606,1577524992,1532582495,-2144418984,-16182978,1380979060,79232950,-1144442112,-1763180542,-1017619714,872408040,113651401,-1157494874,-2098724862,-25761538,1381193667,-1977167309,1960512261,126363140,1958748739,1947024392,-347651580,1532662505,211141471,277610674,34213296,170766848,220246016,229769218,-5242878,-1,-1,4753,22151168,42599592,1112670858,-1064507253,234885125,303903,787971,244039822,-108331002,-34108593,-1202674445,-883949516,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704,78708751,-789068149,-628299565,74698795,-768878452,-268181293,-947135858,-388771593,-802438516,-1064565645,-522989013,-1030817789,1322289836,1187548077,-31145334,91598908,-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094,-1031072797,-1064385789,-2080863315,292880383,-501415642,16417267,-2129234704,-351272766,1086360796,-276578162,486614544,-339702200]},{"sector":9,"data":[-1950118942,-1962932162,50334262,33948144,1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602,482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,29808,0,0,0,0,0,0,0,-883949568,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704,78708751,-789068149,-628299565,74698795,-768878452,-268181293,-947135858,-388771593,-802438516,-1064565645,-522989013,-1030817789,1322289836,1187548077,-31145334,91598908,-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094,-1031072797,-1064385789,-2080863315,292880383,-501415642,16417267,-2129234704,-351272766,1086360796,-276578162,486614544,-339702200,-1950118942,-1962932162,50334262,33948144,1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602,482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,1143920,16777233,360251678,540942373,545792121,578560287,745090085,1015557293,761736413,15644,0,0,0,0,0,0,0,-1996125946,1300824669,106268932,-1626835575,1166656650,1166628876,-1956684278,1354980837,1460032083,-1047606989,783875891,-855592430,109852207,-1992948184,-1207556546,45224494,-1942605875,906375174,103693961]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[-1339456279,52836910,1007973633,1007645688,-955681535,-956301305,583,-355467344,0,0,0,0,-859779976,2014058616,-872363008,8309964,-864550884,7913724,104645502,4154942,209191116,8309884,209191136,8309884,209203248,8309884,-1065877504,940341440,1715258238,3956862,-864550708,7913724,-864550688,7913724,812646604,7876656,406374012,3938328,812646624,7876656,-965986106,13027070,2013278256,13434060,1627127836,16539768,209649664,8375423,-20157378,13552844,2013318264,7916748,2013318144,7916748,2013323264,7916748,-872362888,8309964,-872357888,8309964,-872363008,-133399348,1715214531,1588326,-859045684,7916748,-1065478120,404258496,-261854152,16574048,-59192116,808516656,-87241480,-943271994,1008212750,1893210136,209190940,8309884,812646456,7876656,2013273088,7916748,-872408064,8309964,-134154240,13421772,-322174724,13425916,1047292988,32256,946629688,31744,1613758512,7916736,-67108864,49344,-67108864,3084,-557005117,265053747,-607336765,63926071,402659352,1579032,-865717504,13158,862374912,52326,-2011002846,-2011002846,-1437226411,-1437226411,-287606821,-287606821,404232216,404232216,404232216,404232440,418912280,404232440,909522486,909522678,0,909522686,418906112,404232440,116799030,909522678]},{"sector":13,"data":[909522486,909522486,117309440,909522678,116799030,254,909522486,254,418912280,248,0,404232440,404232216,31,404232216,255,0,404232447,404232216,404232223,0,255,404232216,404232447,404690968,404232223,909522486,909522487,808924726,63,809435136,909522487,16201270,255,16711680,909522679,808924726,909522487,16711680,255,16201270,909522679,16717848,255,909522486,255,16711680,404232447,0,909522687,909522486,63,404690968,31,404684800,404232223,0,909522495,909522486,909522687,419371032,404232447,404232216,248,0,404232223,-1,-1,0,-1,-252645136,-252645136,252645135,252645135,-1,0,-596246528,7789768,-120817664,-1061095220,-1060307968,12632256,1819082240,7105644,811650300,16567392,-662831104,7395544,1717986816,-1067418522,417101312,1579032,-864538372,-63932212,-20550600,3697862,-960074696,15625324,2081959964,7916748,-612499456,32475,-612496378,-1067417893,-121610184,3694784,-858993544,13421772,-67044352,64512,821833776,16515120,806891616,16515168,811610136,16515096,404429582,404232216,404232216,1893259288,-67096528,3158016,14448128,56438,946629688,0,402653184,24]},{"sector":14,"data":[0,24,202116111,473722092,1819044984,108,1613764720,120,1010565120,15420,0,0,1398079925,65,0,0,1616920064,1040989792,-872363008,7785676,2080382464,8322246,2093382656,3892766,2080400896,3892766,2080436224,3892766,2084072504,3892766,1614675968,1040989792,2093382656,8322246,2080427008,8322246,2080436224,8322246,939550208,3938328,409353216,3938328,939585536,3938328,1715208294,6710910,1715208216,6710910,1627258895,16670844,-301989888,8379955,-864092160,13618431,1013332992,3958374,1006659072,3958374,1006694400,3958374,1724087808,3892838,1711337472,3892838,1711302144,2080783974,-964951866,8177350,1717960806,3958374,2080505856,-2139293986,-261854152,16574048,-831258112,-2141395242,1013317632,26172,1008212750,1893210136,2080378624,3892766,939531776,3938328,1006636800,3958374,-872407552,7785676,2094822912,6710886,1986452598,6712958,1047292988,32256,946629688,31744,1613758512,7916736,-1380367812,1011002809,-67108864,3084,-557005117,265053747,-607336765,63926071,402659328,1588284,-865717504,13158,862374912,52326,-2011002846,-2011002846,-1437226411,-1437226411,-287606821,-287606821,404232216,404232216,404232216,404232440,1715208207,6710910,1715234364,6710910,1715208432,6710910]},{"sector":15,"data":[-1581432260,1011006881,116799030,909522678,909522486,909522486,117309440,909522678,116799030,254,-1065478120,404258496,-59192116,808516656,0,404232440,404232216,31,404232216,255,0,404232447,404232216,404232223,0,255,404232216,404232447,-119769600,7785532,1715235894,6710910,808924726,63,809435136,909522487,16201270,255,16711680,909522679,808924726,909522487,16711680,255,16201270,909522679,-964901376,13008070,205395968,8177278,1727791104,16541430,1627286584,16670844,1627259078,16670844,813629688,8335422,939524096,3938328,406585374,3938328,406611516,3938328,406585446,3938328,404232216,248,0,404232223,-1,-1,0,-1,1579032,1579032,406585464,3938328,-1,0,-964952033,8177350,-120817664,-1061095220,-964924360,8177350,1665007864,4088675,1021081088,3958374,-964895626,8177350,1717986816,-1067418522,2095054848,-127894426,1719427312,15753340,1717960719,3958374,1718010750,3958374,1717960944,3958374,1711279872,2080783974,1717960719,3938364,252,0,3151884,0,-67108864,0,821833776,16515120,0,-67044352,326375139,-1016131609,2078006143,1776411,1815634750,2026649708,-67096528,3158016,0,-133416960]},{"sector":16,"data":[946629688,0,198,0,0,24,808480816,120,409999600,240,1613813872,248,1010565120,15420,0,0,1967981394,761885804,1735289196,7102837,-859779976,2014058616,-872363008,7785676,-864550884,7913724,104628606,3892798,209226866,7785596,209191136,7785596,2016411676,13434060,-1065877504,941128896,1715241342,3956862,813597054,8269884,-864550688,7913724,813170716,7876656,2080408188,8177350,812646624,7876656,2016468086,13434060,2016445560,13434060,1627127836,16539768,2016411872,13434060,1627128032,16539768,2013318264,7916748,2013321324,7916748,2013323264,7916748,-859045860,7916748,-872357888,7785676,813170912,7876656,2080431222,8177350,-859045684,7916748,-1065478120,404258496,-261854152,16574048,-859045664,7916748,-87241480,-943271994,2080374814,8177350,209190940,7785596,812646428,7876656,2013273088,7916748,-872408064,7785676,-134154240,13421772,-322174724,13425916,1047292988,32256,946629688,31744,1613758512,7916736,2080375024,8177350,-67108864,3084,-557005117,265053747,-607336765,63926071,402659352,1579032,-865717504,13158,862374912,52326,-2011002846,-2011002846,-1437226411,-1437226411,-287606821,-287606821,404232216,404232216,404232216,404232440,418912280,404232440]},{"sector":17,"data":[909522486,909522678,0,909522686,418906112,404232440,116799030,909522678,909522486,909522486,117309440,909522678,116799030,254,909522486,254,418912280,248,0,404232440,404232216,31,404232216,255,0,404232447,404232216,404232223,0,255,404232216,404232447,404690968,404232223,909522486,909522487,808924726,63,809435136,909522487,16201270,255,16711680,909522679,808924726,909522487,16711680,255,16201270,909522679,16717848,255,909522486,255,16711680,404232447,0,909522687,909522486,63,404690968,31,404684800,404232223,0,909522495,909522486,909522687,419371032,404232447,404232216,248,0,404232223,-1,-1,0,-1,-252645136,-252645136,252645135,252645135,-1,0,-596246528,7789768,-120817664,-1061095220,-1060307968,12632256,1819082240,7105644,811650300,16567392,-662831104,7395544,1717986816,-1067418522,417101312,1579032,-864538372,-63932212,-20550600,3697862,-960074696,15625324,2081959964,7916748,-612499456,32475,-612496378,-1067417893,-121610184,3694784,-858993544,13421772,-67044352,64512,821833776,16515120,806891616,16515168,811610136,16515096,404429582,404232216,404232216,1893259288]}]],[[{"sector":1,"data":[-67096528,3158016,14448128,56438,946629688,0,402653184,24,0,24,202116111,473722092,1819044984,108,1613764720,120,1010565120,15420,0,0,1867514716,1735750770,1702061429,0,-1061106568,1880651980,-872363008,8309964,-864526288,7913724,209241724,8309884,1815660156,13041350,209197104,8309884,2078006143,1776411,-1065615360,1880652992,1715258238,3956862,1715208294,3956862,1715211288,3956862,406323302,3938328,406374012,3938328,0,-16711936,1815612440,13041350,1815634750,2026649708,-1057214440,16564472,-1057214368,16564472,-1057175940,16564472,2013318264,7916748,-1057226548,16564472,813170892,7876656,-872362888,8309964,-872402848,8309964,-964901376,13008070,1815642748,3697862,-859045684,7916748,-1065478120,404258496,-261854152,16574048,-859033504,7916748,-872362888,7916748,1008212750,1893210136,1579032,404232192,3151884,0,2013278232,7916748,-872402920,8309964,50688,0,0,2014058496,409999472,112,255,0,406618494,3938328,-33554432,49344,-33554432,1542,1852072673,-1890834925,1784963809,-2107692522,979645153,-2107692298,-865717504,13158,862374912,52326,-2011002846,-2011002846,-1437226411,-1437226411,-287606821,-287606821,404232216,404232216]},{"sector":2,"data":[404232216,404232440,418912280,404232440,909522486,909522678,0,909522686,418906112,404232440,116799030,909522678,909522486,909522486,117309440,909522678,116799030,254,909522486,254,418912280,248,0,404232440,404232216,31,404232216,255,0,404232447,404232216,404232223,0,255,404232216,404232447,404690968,404232223,909522486,909522487,808924726,63,809435136,909522487,16201270,255,16711680,909522679,808924726,909522487,16711680,255,16201270,909522679,16717848,255,909522486,255,16711680,404232447,0,909522687,909522486,63,404690968,31,404684800,404232223,0,909522495,909522486,909522687,419371032,404232447,404232216,248,0,404232223,-1,-1,0,-1,-252645136,-252645136,252645135,252645135,-1,0,-596246528,7789768,-120817664,-1061095220,-1060307968,12632256,1819082240,7105644,811650300,16567392,-662831104,7395544,1717986816,-1067418522,417101312,1579032,-864538372,-63932212,-20550600,3697862,-960074696,15625324,2081959964,7916748,-612499456,32475,-612496378,-1067417893,-121610184,3694784,-858993544,13421772,-67044352,64512,821833776,16515120,806891616,16515168,811610136,16515096]},{"sector":3,"data":[404429582,404232216,404232216,1893259288,-67096528,3158016,14448128,56438,946629688,0,402653184,24,402653184,0,202116111,473722092,1819044984,108,1613764720,120,1010565120,15420,0,0,1631781727,1176514158,1668179314,104,1717593660,1007029308,1711302144,4154982,1715208206,3956862,104645502,4154942,104595558,4154942,104595568,4154942,104601624,4154942,1614544896,470170720,1715258238,3956862,1715208294,3956862,1715208304,3956862,406323302,3938328,406374012,3938328,406323312,3938328,1664490595,6513535,1006639128,6717030,813563918,8269884,209649664,8375423,2137404959,6776422,1006659132,3958374,1006659072,3958374,1006661632,3958374,1711302204,4154982,1711304704,4154982,1711302144,2080783974,1715214531,1588326,1717960806,3958374,1006632960,3962478,2016556572,8287024,-556874116,8185590,-87241480,-943271994,1008212750,1893210136,104595470,4154942,406323228,3938328,1006636544,3958374,1711279616,4154982,2080406528,6710886,1986396286,6712958,1047292988,32256,946629688,31744,806879256,3958368,-67108864,49344,-67108864,3084,-557005117,265053747,-607336765,63926071,402659352,1579032,-865717504,13158,-964901376,13008070,-2011002846,-2011002846,-1437226411,-1437226411]},{"sector":4,"data":[-287606821,-287606821,404232216,404232216,404232216,404232440,418912280,404232440,909522486,909522678,0,909522686,418906112,404232440,116799030,909522678,909522486,909522486,117309440,909522678,116799030,254,909522486,254,418912280,248,0,404232440,404232216,31,404232216,255,0,404232447,404232216,404232223,0,255,404232216,404232447,404690968,404232223,909522486,909522487,808924726,63,809435136,909522487,16201270,255,16711680,909522679,808924726,909522487,16711680,255,16201270,909522679,16717848,255,909522486,255,16711680,404232447,0,909522687,909522486,63,404690968,31,404684800,404232223,0,909522495,909522486,909522687,419371032,404232447,404232216,248,0,404232223,-1,-1,0,-1,-252645136,-252645136,252645135,252645135,-1,0,1849360384,3894884,2087074816,1616936038,1617329664,6316128,909541120,3552822,405825150,8283696,1816068096,3697772,858993408,1613774387,208550656,789516,1715214462,2115517542,2137208348,1848931,1667446300,7812662,1040979982,3958374,-612499456,32475,-612496378,-1067417893,-54501348,1859776,1717986876,6710886,2113961472,32256,410916888,8257560]},{"sector":5,"data":[403445808,8257584,405805068,8257548,404429582,404232216,404232216,1893259288,2113935384,1579008,14448128,56438,946629688,0,402653184,24,0,24,202116111,473722092,1819044984,108,1613764720,120,1010565120,15420,0,0,1867383649,1667851378,0,0,-1061132740,205285056,-859045684,7785676,-864550884,7913724,209224824,7785596,209191116,8309884,-869217232,7785676,-969134068,3983040,-864550912,410569920,943470128,14446640,-864550708,7913724,-964917010,8177350,-864515858,7916748,812681328,7876656,217976860,16670768,-965986106,13027070,-964947940,8177344,1627131932,16539768,-1061107506,16695488,-1061107506,7913664,2013318264,7916748,-864550708,7916748,-1061106478,16695488,-1061106478,7913664,-1065480164,16516732,1614680092,8128060,-960070458,8177350,-960102202,8177350,821833800,3158064,-63950776,1978416,1886940256,8314976,946652672,50796,1715214372,3958368,209195036,8309884,406327324,3938328,2014321664,7916748,-871359488,8309964,-20550600,235722438,209190912,259443836,217978916,16670744,2113935396,8269836,-121585410,486457536,-864550912,477675772,0,0,2113933340,8269836,-964945884,8177344,-1069809664,955780216,-865717504,13158,862374912,52326]},{"sector":6,"data":[-2011002846,-2011002846,-1437226411,-1437226411,-287606821,-287606821,404232216,404232216,404232216,404232440,-964947940,13027070,-964918660,13027070,-1057083320,16695544,811650168,813222936,116799030,909522678,909522486,909522486,117309440,909522678,116799030,254,214367768,16696880,2080380928,8138776,0,404232440,404232216,31,404232216,255,0,404232447,404232216,404232223,0,255,404232216,404232447,-964920122,13027070,209221836,7785596,808924726,63,809435136,909522487,16201270,255,16711680,909522679,808924726,909522487,16711680,255,16201270,909522679,1715225088,4340838,2081177100,7785676,-161061252,8152678,1727803464,16541286,1627128012,16539768,2114348694,8308422,-152692700,13029086,813174812,7876656,813204600,7876656,-864538552,7913724,404232216,248,0,404232223,-1,-1,0,-1,404232318,236460056,-959043568,8177350,-1,0,-964947940,8177350,-120817664,-1061095220,-964918660,8177350,-152694756,13029086,-421785572,13027014,-421783516,13027014,-528601016,16518712,1081880648,8127544,-956559332,13424892,-960100338,8177350,-254926792,12632288,-960067346,8177350,-960098276,2014068326,1724306972,3151932,808482864,236728368,2062]},{"sector":7,"data":[1006632960,0,35054,0,0,470810624,12360,0,31942,0,1815634750,2026649708,2113935384,1579008,0,470024192,946629688,0,102,0,24,0,-859010834,7785676,-956551096,13424892,-657575864,12632288,1010565120,15420,0,0,1632371540,762210676,50,0,131072,0,256,2,33554432,131073,0,786176,0,16781312,16777760,18468096,67043328,-855637760,281,3071,16777216,536936464,3617588,3159352,3159608,3356216,3487288,3290424,65540,0,392960,1,-16777216,65836,0,100663040,67840,131108,196664,262219,327776,19660898,19726444,19792050,19857619,1226244346,1919902574,1952671090,1397703712,1919252000,1852795251,1091963405,1986622563,1866670181,1344300388,979724129,221324576,1917851658,1869182565,1126200181,543515759,1701273936,824516666,1308953101,6647407,1852788237,1635021613,1918985326,1162412132,1818386798,1293972325,1329868115,1869881427,1936286752,2036427888,544104736,1702131813,1684366446,1634231072,1952670066,1931506277,1763734629,1919361134,1768452193,1830843235,778396783,168626701,1095911204,1111577670,2019237964,224229496,1095911178,1111577670,1395597388,1431585108,218762579]},{"sector":8,"data":[538978826,544766072,538976288,1701860128,1768319331,1629516645,1685021472,1634738277,1847616871,1700949365,168636018,790634571,1413567571,538989397,1886611780,1937334636,1701344288,1920295712,1953391986,1685021472,1634738277,1931502951,1667591269,543450484,544370534,543519605,1752459639,1095911200,1111577670,168635980,1049429774,-1048503794,29557104,-16711675,285213951,1702131781,1684366446,1920091424,622883439,-1928917455,-2095348930,46342337,-16711675,234882303,1936875856,1917132901,544370546,118370597,463945357,-1021460093,0,0,0,-1,0,0,-1,0,0,-1,-1,0,-1,0,218103808,10,655360,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,542330148,542330692,1936876886,544108393,808463925,692267040,2037411651,1751607666,959520884,825045304,540096825,1919117645,1718580079,1866670196,1277194354,1852138345,543450483,1702125901,1818323314,1344285984,1701867378,544830578,1293969007,1869767529,1952870259,1819033888,1734963744,544437352,1702061426,1684371058,1381191712,-919382266,-13385330,-1307431240,-1943024384,-1994665466,-1206136770,45224494,109850573,1049172954,783817688,-855330286,-368669649,-398554853,305051675]},{"sector":9,"data":[801965746,466486924,466370185,-1929474328,-1994667514,-1944336322,-1994660346,-400825282,109903516,1049172958,783817692,-855068142,-234451921,-264337125,50775835,-972419812,605834246,470288071,113704960,662538,-1979832856,-400821186,786956313,4319232,5302353,1599670386,1482381831,-998046485,1355020556,12066390,505531747,141696775,469513865,469632652,-1195157410,12272640,-841862400,31883297,-1207841152,567100417,1140897987,855638459,-2145268270,28836302,-1021194940,567095476,1962935613,418117635,1929380413,-17659,45810667,112640,-1308622663,-100682240,1460031683,1435733,-25162126,74774783,48963334,-141877490,1476878173,861099715,-2134297610,141950974,469023883,636215179,1946339062,-658717688,-339506149,1260824,658312562,-1006078208,-1944329028,-1006179389,-1944336196,-293949,-25160075,-117213697,144903403,-18404,855638461,216791286,1946221443,5564419,-133904765,-922024334,-1611988363,33456284,1431447925,1347880529,-855310152,1493122095,-661976715,-855309640,-117314769,123667827,-2096698535,216532676,-346399488,-401682687,1583087611,-1185916989,-1070399489,-772296974,-1017161655,1963064195,-264338659,376766235,1979711293,144789515,-266404068,82532379,468721407,-919397653,1962933888,1300899334,772401923,74790200,55413294,-117127293,200813939,-2145815351,91553790,-351978714,87764483,166396533,-2096794551,-471137081]},{"sector":10,"data":[-2146667783,1979252734,637996546,1912765699,653079046,-968422006,1835526,1364414659,1376147285,512354699,914889728,-991421435,1959332862,1978469148,2549765,-1326971925,1510502913,117507560,-2096829601,-336001340,1516177156,1560703737,-346530983,147096324,1397801977,2001746,-294116,753403253,-402396416,259194999,12278196,841075968,113542116,-2096043015,192217083,125092155,-2097106712,1928922820,1482381827,520494787,1963063683,637711387,567088522,-389903841,102629553,638022431,-855550582,267122721,-922025292,-1977218700,1193397525,-118262455,1347928863,-91532538,-645200098,-218359120,721647022,-880063527,1599604571,197145539,508523721,1085546246,-108800117,-852986623,642785057,1525155210,102651904,-133795041,-851296076,-2144953311,41228861,32227723,-68677937,1427827711,-5838767,-849745525,-352160991,1959279371,-118998265,-1047854475,-1195172003,79364135,-1023298304,1962933888,-2134444527,119409781,469974669,-402652487,113508096,-62995369,1962871579,1032005143,276101120,1912945190,1161438727,-117344511,-370456761,-1883044001,857474566,-141388837,-1826878922,470431479,1980365443,935493637,-1031797781,188830256,184841664,-2093386533,225772537,738884736,922682741,-348054509,117015330,2088766837,91565066,471021311,-2096043199,192219641,738884736,922682741,-1824449517,-1477717453,-1070345677,470169343,198325187,-1272875831,637579301,175449400]},{"sector":11,"data":[23410726,-1002830732,-1977217419,-11278331,1195835763,-478852798,197822294,1295217901,470302339,-1976863488,805570116,21314086,518718069,74788924,74764811,-404016125,470105728,1107850751,1330202946,-1174148273,727187455,-32839431,57891167,1368417771,2088815243,225705990,108316939,1195854153,-346160661,1976109840,166419971,1979709827,197735170,1430025471,860948055,138314697,326434844,252134646,2093222005,20113410,1390936299,-402396416,124911648,1566508889,-2096829602,-2080830780,1837118,57804149,-939577623,1837062,-768359680,-954464095,169609734,-22026240,210208856,-75283684,-402426560,-906100528,230223477,210209034,-398245092,868417728,108822747,-955157248,538709127,-968670419,538709127,10938435,870003549,34506962,155486748,511099194,-259342038,-2147007242,1149899892,210208778,-75283684,-402426560,-822214532,2088823925,225705992,1929923640,139209224,1284166026,1959332616,121959972,-166955761,1947207492,92939782,1476520775,470583176,1090224963,1105724277,1976172032,121960156,169375104,-1978370826,-2021127612,-2092753908,58015995,-33545240,-152275506,1963919172,121959944,-352160752,1959922188,101093128,1976237596,190712,106021717,-1962467753,-1915014197,-400815042,91421852,-346486945,113541892,-161627143,1966081860,92939794,-2098708144,637957117,1342260618,638446584,-1073085046,1095173236,-114559509,50005]},{"sector":12,"data":[129,167772160,16777251,1392648980,2320675,8193,589112139,768,590545158,52639490,1057235771,591594787,874727174,939538227,939536437,939536438,939537206,939537718,50344501,255,16777216,1258291200,35878179,1096045359,1414737664,1398101057,0,1965247232,1060045091,1726676992,1946157117,9431046,-1996452887,-2128412146,1914916158,-1157270237,2062286847,587480704,-1992854272,-2094858186,2313534,243931765,-315481268,19930765,-1014953237,109118480,273024,216790242,113695539,-970972324,539189510,587466494,-397014805,110035001,512303872,1049436933,915088135,-768400640,587337355,1023475432,-2072641537,587480704,-1928956672,-352243682,85887748,16483107,-1752497034,-2134703104,2294846,28836724,429564672,992149665,-971868944,-1331494908,-1643722983,-954618343,18456582,-1707176704,140109849,-973078085,53118214,195,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-16777216,0,1560725248,-67108828,609226377,609355463,113704960]},{"sector":13,"data":[9317,609617607,1105723392,-1206684924,643039231,975576459,-1207733489,-379912190,914948364,1465066591,1730055509,1577514532,1047863332,80537772,904410994,-399346684,376767590,610141942,-402295520,585827328,610141942,1310422081,126359787,91569468,610143872,-1192738047,-1396083964,-347928696,914968259,130425940,1662945536,495658532,610743949,1949252736,574390321,116787060,1963009118,1200236112,971256321,1931759622,609263889,1128521937,-1960388605,8448031,113731307,74834,-1977196821,-466484921,65065280,260712152,-921965262,1396903796,-400585946,1935343803,-498908353,1376176114,-352320732,1200236083,1088696833,-670834479,839354918,1088475620,-1977165821,200094223,1125086409,529213011,1526748392,1128467059,113767138,271442,-1956946083,-1591455730,915088466,378217556,512369750,-1007147944,126559824,1962934953,1342635780,3964964,27859061,-955747072,35934726,1343154944,-4979792,1476433128,283640811,-104638463,642864579,839405450,1959332845,158305549,1929527016,911368,-335939870,1697548549,1566177316,2122327747,57933824,1173809989,1578008771,-924315612,-2143128833,-282829274,610378064,100779563,-1957157793,-2145099466,594870332,989822080,113707125,599122,-2094653717,410255423,17299238,-955157248,35934726,-402003200,-336068461,183236877,-1274826672,256255,1472460888,75467558,609631881,637896742,1342268808,639919521]},{"sector":14,"data":[1476543881,175440188,72714534,105744678,37509611,-1993996683,1340802133,-395049156,-462157764,108332604,72714278,71056875,1604390517,-1993981916,-1943665595,736822877,74811686,106794022,1207314000,74711298,166397104,38270502,-1341819902,8251394,1207314008,57937922,1593855976,-335100221,642777124,-1073018997,1397757813,113727314,599122,61931444,1610572008,-346530982,-352064766,11112463,-955681760,2380294,10938368,619462272,-2096270079,2380350,113706613,599122,1448133464,-1073085302,977016948,2088766325,91553793,-352320314,38660105,1178993011,1482613483,-1974315325,-402355504,192021051,192200714,-2013262872,1174530820,1525345094,-2143501474,1631325299,2050767218,-551275145,106115563,-415330985,1947547684,1381060631,1706297118,-4472182,375295,-838860870,1482250785,-1912513141,1128465221,-685342676,-1017444513,141701180,74922300,-1007144916,1397801977,-1960421550,-1977219457,1975519749,-335563772,1963146314,-1977202882,-167136251,-134004508,-1274705370,1088747013,-1977157629,642205445,820522379,-2096008448,-922876985,113766773,533586,334233524,-10122714,-1960443216,-955585771,153375238,-1325419520,-29366269,1482381919,1381322947,-1979534762,23455748,971520626,1577514751,225708068,510999868,25067558,-345082624,1577514514,242487332,175454780,8290342,1180333312,975592171,477429830,1349828618,317408582,4602406,-1975106699]},{"sector":15,"data":[975586564,963969094,-1410644666,610141942,638547008,537020407,638022656,32384,-148495756,1946161159,1966750744,2122327561,225771520,3935979,-2144991371,1949958270,99350787,610350729,1566203640,-391330984,376700960,1962955240,1577514516,-294379484,610141942,1309242433,-336001301,-1018234879,1364444152,762580284,695468092,628361788,41779238,857633282,1569335003,79921923,3768358,-919401100,1124698662,1946237478,1022943748,-1017423603,113660243,-2145377192,-551264730,913580092,846465340,829697084,209002556,1965046912,1176547335,518766650,41779238,857174529,1300899529,1959332611,244491,20588099,-119404684,1532567612,609788611,610141942,-2147126015,539254286,-353648582,610741901,175430971,58011452,-133305351,792464107,243271029,-130014114,1398152899,609959555,1344632064,1465012510,-164428203,12115598,-1943941789,131795931,1499094877,628381727,609826441,609951369,609826443,609951374,1946172547,1912879632,21248520,-336002185,-347716091,1583085803,49951,0,0,433586176,6616,-402652928,208925243,-957051160,69895430,82529460,518396,-852851296,-1944007391,-1944465138,-1944473074,-2094369274,170554926,3192838,-1560014843,1610951290,-754667264,712549352,-1557498207,113705242,19923221,800077236,512303565,109838624,-402194142,-1914175411,15919352,713375360,507344128,-1909819743,806784472,-1339706367]},{"sector":16,"data":[-1927164641,-1275001834,-852512731,-1593434335,-1064435668,567101876,47879,-1270677013,-2094936770,-160103173,712513163,48968116,-1966912332,-1342110938,-1573925632,-12834172,28342389,712121997,-1070387251,-1591295858,104530044,1450519154,8298790,712246843,915229813,914948400,317401724,712902273,915079172,-964613508,914949136,1053043324,280570482,1973875460,1916716054,-2054478294,-2103245824,-1593369046,-811390338,-1928467687,991531014,516257734,1370119,119409387,-973074968,19564038,119408107,-1023405848,-1978008927,-400948426,915010063,-1581049393,915020272,15211001,-818509326,-75250919,-2090699775,91619323,-352284696,16483160,1049442676,-1662510653,9931520,-2112472316,-1960414166,4122867,431570573,-1557495647,-2132272689,-2042724352,225771818,382023198,632564338,567091120,-1927615713,-400967362,1048772707,1962945154,-2063153657,99287594,713361094,-2147040511,-13990850,1053035381,280570482,-341511420,-2063153633,1049428010,-147128016,280561012,-1079708924,915210336,243990784,-1527567750,113689351,-1929237883,-400948162,1048641551,19864068,117376628,-269805052,1381061571,-1962570922,1972044381,105745156,-402106997,343143027,428883597,-1962779253,1300956277,139823878,-101556504,1532582494,91421891,-346486945,113541892,-161627143,1966081860,92939794,-2098708144,637957117,1342260618,638446584,-1073085046,1095173236,-114559509,50005]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[1346458183,1396918600,541937475,0,0,671154176,62068587,19694,1346458183,1396918600,542069328,0,0,671154176,62723947,21232,1161969996,538976332,541415493,0,0,671154176,63444843,9390,1163022157,538976288,541937475,0,0,671154176,63772523,2618,1111640398,542328140,542327106,0,0,671154176,63903595,24103,1280132434,541412937,542327106,0,0,671154176,64690027,12314,1414743378,541413967,541415493,0,0,671154176,65148779,38294,1414680403,538976288,541415493,0,0,671154176,66393963,6938,843405381,542001474,541415493,0,0,671154176,66983787,8424,1095784517,538985550,541415493,0,0,671154176,67311467,16885,1313427274,538976288,541415493,0,0,671154176,67901291,17870,541344588,538976288,541675587,0,0,671154176,68491115,10753,1145130828,542656838,541937475,0,0,671154176,68884331,1131,1313428048,542262612,542333267,0,0,671154176,68949867,18804,1145128274,538985805,542398548,0,0,671154176,69605227,10858,1280329042,541410113,541415493,0,0,671154176,69998443,20226]},{"sector":3,"data":[1396856147,538976340,541415493,0,0,671154176,70653803,18478,1162170964,538976288,541937475,0,0,671154176,71309163,6901,1296912195,541347393,541937475,0,0,671154176,71571307,47845]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[2634985,0,0,0,2283,0,-58720256,169244076,772961728,18366091,372703022,-4978943,-338705270,1048784408,1946157330,1048784399,1946157332,788475399,32178450,-58655793,-2147125998,91496699,-1221656786,-13722620,1342486302,1448235347,-1070391721,348051598,-1161196544,-1946549072,-1053097404,478876788,242539067,1284052105,512306690,-1557265229,536544437,1499094623,13588571,0,-16654329,33564927,34080769,2686975,805831170,1191182082,167838464,-64906,17039468,-16588276,50362367,56168706,10682367,-82705916,-1409286397,318964736,50529029,33754371,34865921,469893379,33620226,16777764,143106,37355521,1056964608,0,252645125,168758543,169086725,470418703,168101130,83888676,667402,171573253,1056964608,0,50529027,134415107,50463491,34537731,33751553,33625345,33685762,33685788,603980289,33554690,2949121,65538,144642,256,572,1056964608,0,50528256,50529027,151192323,50463491,16974339,16974351,197123,16913667,33620483,35324417,33685761,553779457,33620480,16908544,33554983,131073,142593,131073,36896769,65536,939524608,2,1,573,0,16128,0,251854848,252645135,252643343,185536269,84872973,269094667,168103685,85199365]},{"sector":7,"data":[84542734,84547594,84018442,134547996,537199109,151520522,170198018,330240,17049605,84410888,134349869,822150146,84410378,171180032,327680,134231808,67109376,2106,1023410178,8,4128768,0,252641536,252645135,168038159,168759055,118427407,252514058,252120842,235342346,185403909,235474181,184944902,168953353,168103429,402983429,168101130,168101130,168102430,84542720,664576,167773450,170525952,167773440,771753216,33556482,17039624,83888688,655360,143872,67109384,171245569,83886080,939524096,2048,33554436,2107,512,540160,0,4128768,0,16777216,1061109567,1061109567,1061100292,1061107263,522848063,522859839,705312063,355090197,219496234,607855643,606020635,706030097,706030101,355079445,352982314,337188138,604640554,486616593,355079424,706030080,405082657,169872674,170140964,220334352,539560464,671228946,755634181,537004066,2359572,67184689,136315408,2766085,1376256,3735552,262160,1006764064,32,4,8254,0,16128,0,0,0,0,77801,0,0,536870912,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288]},{"sector":8,"data":[538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,2105376,0,0,0,0,0,0,0,0,1397752064,1465274961,-66707883,1048583950,1946158561,-519649705,780861445,113639704,-402651973,-471334804,16050176,79365878,1044608260,33848960,1048578933,1962935743,-348460268,-1019313392,158662661,96405238,-352160512,27256872,97191622,107014144,98633414,-1157171711,292880644,1599938311,1532582494,45403992,-855636038,1562314529,1499094623,788158555,98633414,788475393,12059827,1007734042,-2142800614,91488763,1963129728,1187397128,1609240579,83591312,-75496076,1040741637,67323590,-2138026517,91490299,1963522944,1187397128,1005257219,201031824,-75496076,1043363084,16991942,313797099,281874611,1947270016,1187397127,401277955,281875892,1077772582,1040676177,134432454,-969013781,-1022360762,263476048,-1029566259,-920221691,-901871611,-1017619707]},{"sector":9,"data":[677099,-939442172,83887104,13107520,-2147090428,33605634,20974848,1048776,-939360242,251662336,22938240,-2146435068,268525058,41947392,131552,-536707054,318771201,13107520,327936,268505088,268636162,1397751815,378163793,243992002,79365890,1947679239,130253575,434894818,96405190,88574721,-1962556509,-979172537,21465861,-351942749,1242467145,122469127,91494202,-503135357,-1090074889,1200226309,-1012688895,97099781,96969624,58622014,-955747056,419808518,-1206850816,-1064435648,637568187,1083705226,-351943261,-1157183995,1532494852,1052990041,268650230,-163707019,1946682182,14608390,1049638891,67323638,1525155444,-1876235520,96616064,-402230001,501940637,-1036091248,108335877,-352204568,-163672048,1946223430,11200517,-387447829,124929,1190543043,259260932,38204990,-972524287,1057275654,1049629931,17057526,-163705740,1963065926,-1090075131,1354956804,1465012563,-1064386509,-1474378714,1606690308,-1036091388,242484229,96616064,-2146995195,101040702,1307057013,654258944,-527826550,-461371612,183291920,14018756,-352272664,1095983,-1977155789,-1036091391,125046277,96616064,-1978632947,-2147015456,-321908508,-1394031606,-402396416,-1863843322,-689813760,1532582495,1397801816,-2147068079,67486270,1048577908,1963263426,4241454,-1608120496,548601958,95541282,-13374510,-402623768,62455899,-947173632,-1022697264,-402627864]},{"sector":10,"data":[-236847029,-2138029589,101040702,-13424267,79431366,-1123629568,113639428,-402651970,-968425429,1057274886,79496902,-1106852289,417873668,856746752,1096191,552126347,649216,133554759,1482381663,2122333891,91554052,-352168728,27977731,79660424,-1140406589,113639428,-973077315,310790,259262632,79431296,-1123647467,109057284,-1475017538,-2147126268,704953350,91488936,79496832,1946265642,-1106870267,1354967556,216749910,704643072,1061104170,1061109567,856270014,-1576760577,1149895868,79536641,-1576909686,-2065169218,63341567,-1019331769,1608678405,1354979422,1465012563,168232647,-13434624,364437387,-2012164848,-2012955594,-2012955346,-402342386,994574163,2081031998,1499095011,12802139,1364414464,270186583,1048580301,1946420674,-1036091378,125043973,96616064,-401246970,113704604,-1879045504,-1090498840,350748672,-1874793473,96616064,-970951407,688134,3532944,-402652993,113704699,-1878586752,-1090509080,-320339967,857271294,1096191,176162502,283676672,-19273728,-2147025337,1609818634,-1017619623,1364414464,-947235246,-2131719272,108331259,-422377807,78709995,512419539,129501824,-1978610416,201274079,269859038,914886861,780666044,243795133,1516111038,-1017619623,79431366,1946462208,-1140424699,547891716,109053300,-971701060,310534,91488936,79496832,1947248682,-1123647483,113644804,-1476393794,-2147126271,704953862,91490472]},{"sector":11,"data":[79562368,1364443925,868234066,1053963227,16926454,1048596853,1962935484,-1119977451,242548740,79576704,-1341688576,-344396993,1048612918,1967064252,-1119977451,242564868,79576704,-1341688513,-346232064,1048612890,1965687996,-1119977454,192227844,79576704,-1341885142,-1606358272,112657597,179824630,-805111818,-1130304374,-167528700,-167069721,47186679,79601900,-134814670,-335359998,-980762573,-134870345,-58667006,-33391100,1442987714,1522698757,1354980185,1045582163,16926454,1048603765,1962935484,-1119977446,326434820,79576704,-972262144,819718,10938768,-2138026773,1057274942,1048584309,1967064253,-1103200231,309673732,79431366,-1123629568,113639428,-352320322,1048612901,1965687996,-1119977443,376777220,79576704,-972065494,310278,79496902,-1106852352,-1958871036,-587004066,209913543,-919371777,105810494,210044615,-1130364928,-1979241980,32175824,-1609792250,1193936061,-154105343,-2063203862,79601676,-1979562198,32175824,-1593015034,104533125,159190147,-1978891357,-2103311545,79921932,1499118306,-2103420837,49932,0,0,0,-970545933,17162502,8653,0,2539,0,-2147483648,376638,1122502005,-398464256,1048576828,1963066555,-1157183993,787153156,96476811,-2012911734,-1979326426,-543029689,1958742533,1977879044,-1157183993,250282244,18317184,113640821,-402586165,1405288729,62149201,97140362]},{"sector":12,"data":[-950923059,380422,-871971072,-402653179,243991186,1659372997,1040298496,51011211,146362845,-1441364992,-400919540,-1998060915,-1157171712,57935876,-1339233447,110487565,-346487949,-1964847070,65286663,-706591784,-401952679,259131007,97388287,97257159,1072168960,1521476098,243912330,-896924210,97259145,1510092264,-3974311,-16396746,1342557238,113660243,-1962931030,-402274546,146014738,97140362,-461369139,-1144748529,148309183,-15947258,-502936570,1482381794,97257103,97388175,-868810813,1364414469,96931467,-1274946072,-901871096,-1575957243,-192279026,-789518720,-789655314,-2131832594,-997584924,-687554629,225755780,74835514,132897712,-351400288,-400510974,108135895,97257215,1532608226,-871985320,1342227205,-397258413,-1779957314,62449666,79365878,-352160760,-804353154,51308549,97795715,-398560256,28442738,173968190,-1185817341,377749512,494144682,-402558744,116786126,1946682555,1273714947,-1342130456,91613197,-346487949,-1964847042,65286663,-756923432,-401952679,728892767,97205888,-1609468671,26740186,-1593455610,-1555561019,250283470,-1744446816,97388033,97257159,-1981677568,1510168040,-1017619623,97400575,97269503,-967748784,829958,-1962623045,1359336462,97400575,97269503,243976499,501745114,101242629,1048579242,1963001291,-871956730,-16454907,-502936058,-871985179,-838430971,1048598789,1963001291,-837878010,-16454907]},{"sector":13,"data":[-502936570,1482381754,97257103,97388175,-835256381,-868811003,1364414469,-1078241450,-737244412,872362757,98607296,97945030,-130332928,861009532,-636581175,-835256571,-868811003,78047237,1958905047,212254216,-352264472,211992070,-2147428632,17156926,117376629,82511308,97388287,110090210,110036428,-396818994,116785418,1946682555,-2146178302,17156926,251594357,82511310,97257215,1583321058,-1890034855,-1895445498,-1023029754,-1974316208,-1979331018,-1979331562,-1274688962,1511050498,1354979419,-919383725,-1014952054,126484481,1912867560,-152943869,-1017619623,860967760,-552695095,-792710651,-503247648,-1998900230,1124902535,98573882,1532622204,1364443992,-1958848942,-587002786,96605834,50558859,38767349,942599474,1175352340,1065613538,-1962117889,-337837281,-1071740445,-972690683,33864454,1532582494,1464947651,856020671,2122333915,779419918,-1974119856,-771366898,1317682721,871183119,-792710190,42614500,19196114,-28975094,-535414078,149715973,1482317089,243929835,567412191,688400522,507167742,-226753056,-1017423521,-1152298160,-2143418922,1963003518,-402159095,309461823,-919400213,98569866,820512650,1124299267,1532622562,1397801816,-1071740078,2122333701,225771790,-1979709256,-218757801,-351937886,571403,-167356534,98214642,97257159,2139095040,729088279,-1559902815,-1555561006,-2143418930,1963003518,96968969,97559449,-945734421,-617375483]},{"sector":14,"data":[98180746,-794561545,-1590957307,-761068089,-838416635,1040187397,17727104,-979302027,-794584827,-1592792315,865666501,-635532581,-1544292603,1532626384,1397801816,1465274961,97269503,97400575,-2147172421,17156926,113707125,1486,243993067,-1991703097,-1962554354,-1962552818,-1962553802,839240766,41609426,2122333911,108331524,1098202940,-1073085205,-2143405195,1962937982,-885096423,108331269,97257215,117376235,-1023539762,98178618,1048628092,1963001291,-868316918,-838402299,-1995904251,-16396746,-502936562,-737244762,-838430971,-871985403,1516134149,-1017619623,-1957604528,856014878,290425545,2113993088,308251407,126541059,1912727272,-152943869,-1017619623,-1957604528,856014878,340757193,2113993088,358583055,126541059,1912718056,-152943869,-1017619623,1381061456,-1071740073,98607109,-735643752,192908037,1334495539,16352010,-1975620748,-520388581,1196429429,-402421186,1634861451,-347514809,-75460380,1344632256,20179030,1055732305,-1927983478,-248834954,-391316410,1014104423,-2091255582,1482556103,-1866798263,1975647104,22145036,-947705742,-1444198142,-1023704944,-1722768523,-150929221,20572403,-947712142,-347514878,46629776,48956651,1516197982,-1017619623,1397751808,-967355823,1225734,313853638,-1071740160,98607109,-735643752,-1966525691,-108849073,1048474624,-75490422,1344435680,59391559,91557180,313788102,1963604993,-1257847291,-655884014,1197371904]},{"sector":15,"data":[-756332200,-1057259376,1448093045,1358987496,-1975587534,1988957518,1190210324,-1259819780,-499617280,-947693064,1230528002,-2138003221,209043963,1912643304,46629712,-1869092023,1975712640,-1147580271,-201916160,1912637160,46629687,2112440664,-351998977,1042934570,18251392,1048583285,1962939060,-401756153,359792739,313867904,-1341688576,5629962,703137650,1577249791,1499094872,1354979419,1448235347,-1727671135,512425778,-201914918,1946221187,-768393215,1444181645,-973077063,-498204668,180051706,-137809152,818053363,1095636104,4051507,1055945984,1578454664,1482381658,-1169010493,11796480,-461367347,-352160471,-1157183994,1526269956,1364443992,-901871022,-837383419,-871462139,-854739963,-1036091376,225775365,-478095222,-805231612,-339539221,-1036091383,41226501,1499070756,50011,0,0,0,-397323440,1048576628,1963066555,-1157183992,2062090500,-1071740159,90671621,98576008,-1576646774,-1073084961,-469105548,113641589,-385809221,2139095385,91554071,97191622,49211393,-167505432,134527750,1055458164,-804353279,2122333701,1265959182,-2096930840,382014,844184948,-552695059,1317551621,1325284879,69789711,79365878,1493464072,1375800553,-835256495,-868811003,97820933,-1962986855,-150611426,16417779,-1958739596,-351867960,-340399286,15198313,-167618072,134527750,110038644,110036428,1515783630,13363545,1911088098,-1157171708,242485252]},{"sector":16,"data":[97257103,97388175,-380020135,-29491023,110038862,110036428,1515783630,-2091284510,382014,-1477966987,-885096445,108331269,97257215,117376235,-2092366386,-1787494151,-1444381973,-734100734,896794629,-167542296,134527750,1743454836,-737244335,6547461,-167651864,134527750,-346487948,-885096366,108331269,97390335,117376235,-572389940,65464409,79365878,-352160760,-352130254,-885096271,292880645,-1744446816,97256961,1208337825,-351940957,98213902,-838467176,-871971067,1224736773,-747255541,1493364200,1354979419,1465274707,243171390,-16223231,-16396746,856017974,-695744805,977469445,2080759838,79674356,243976499,-1310194214,1273550596,7006208,-402269250,-2143420185,1963003518,-885096429,108331269,97390335,117381099,300615116,97205888,-16354047,-351941626,-838402300,1053024773,17727104,110037108,110036428,1583285710,-1017619623,-1974316208,839245846,-18689802,-1071739966,142052101,70972675,-234683266,1532688619,1397801816,-146385327,17157638,-1610189824,60294624,-1595657488,-456129057,-33436544,2130721992,-1965345803,-871958780,1962934533,-552695290,585683461,-611874620,977487365,2080759838,1532583650,1364443992,-1958848942,-587002786,96605834,50558859,38767349,942599474,1175352340,1065613538,-1962117889,-337837281,-1071740445,-972690683,33864454,1532582494,1464947651,856020671,2122333915,779419918,-1974119856,-771366898,1317682721]},{"sector":17,"data":[871183119,-792710190,42614500,19196114,-28975094,-535414078,149715973,1482317089,243929835,567412191,688400522,507167742,-226753056,-1017423521,-1152298160,-2143418922,1963003518,-402159095,309461823,-919400213,98569866,820512650,1124299267,1532622562,1397801816,-1071740078,2122333701,225771790,-1979709256,-218757801,-351937886,571403,-167356534,98214642,97257159,2139095040,729088279,-1559902815,-1555561006,-2143418930,1963003518,96968969,97559449,-945734421,-617375483,98180746,-794561545,-1590957307,-761068089,-838416635,1040187397,17727104,-979302027,-794584827,-1592792315,865666501,-635532581,-1544292603,1532626384,1397801816,1465274961,97269503,97400575,-2147172421,17156926,113707125,1486,243993067,-1991703097,-1962554354,-1962552818,-1962553802,839240766,41609426,2122333911,108331524,1098202940,-1073085205,-2143405195,1962937982,-885096423,108331269,97257215,117376235,-1023539762,98178618,1048628092,1963001291,-868316918,-838402299,-1995904251,-16396746,-502936562,-737244762,-838430971,-871985403,1516134149,-1017619623,-1957604528,856014878,290425545,2113993088,308251407,126541059,1912727272,-152943869,-1017619623,-1957604528,856014878,340757193,2113993088,358583055,126541059,1912718056,-152943869,-1017619623,1381061456,-1071740073,98607109,-735643752,192908037,1334495539,16352010,-1975620748,-520388581,1196429429,-402421186,1634861451]}],[{"sector":1,"data":[-347514809,-75460380,1344632256,20179030,1055732305,-1927983478,-248834954,-391316410,1014104423,-2091255582,1482556103,-1866798263,1975647104,22145036,-947705742,-1444198142,-1023704944,-1722768523,-150929221,20572403,-947712142,-347514878,46629776,48956651,1516197982,-1017619623,1397751808,-967355823,1665030,426313414,-1071740160,98607109,-735643752,-1966525691,-108849073,1048474624,-75490422,1344435680,59391559,91557180,426247878,1963604993,1762051589,-655884007,1197371904,-756332200,-1057259376,1448093045,1358987496,-1975587534,1988957518,1190210324,-1259819780,-499617280,-947693064,1230528002,-2138003221,209043963,1912643304,46629712,-1869092023,1975712640,-1147580271,-201916160,1912637160,46629687,2112440664,-351998977,1042934570,18251392,1048583285,1962940776,-401756153,359792739,426327680,-1341688576,5629962,703137650,1577249791,1499094872,1354979419,1448235347,-1727671135,512425778,-201914918,1946221187,-768393215,1444181645,-973077063,-498204668,180051706,-137809152,818053363,1095636104,4051507,1055945984,1578454664,1482381658,-1169010493,11796480,-461367347,-352160471,-1157183994,1526269956,1364443992,-901871022,-837383419,-871462139,-854739963,-1036091376,225775365,-478095222,-805231612,-339539221,-1036091383,41226501,1499070756,50011,0,0,0,0,0,-1,0,0,-1]},{"sector":2,"data":[0,-1,-1,0,0,0,-1,0,218103808,10,655360,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,542330148,542330692,1936876886,544108393,808463925,692267040,2037411651,1751607666,959520884,825045304,540096825,1919117645,1718580079,1866670196,1277194354,1852138345,543450483,1702125901,1818323314,1344285984,1701867378,544830578,1293969007,1869767529,1952870259,1819033888,1734963744,544437352,1702061426,1684371058,1381191712,-919382266,-13385330,-1307431240,-1943024384,-1994724858,-1206196162,45224494,109850573,1049172722,783817456,-855330286,33983535,4098331,305051675,801965746,451282572,451165833,-1945720088,-1994726906,-1944395714,-1994719738,-400884674,109840056,1049172726,783817460,-855068142,168201263,138316059,587646747,-972419813,605776902,455608007,113704960,662314,-1995877656,-400880578,1049168565,-370664688,339642635,1697819,-402641176,-397344703,141688912,1510432601,82532443,-116603773,508973251,-849149768,520560161,914950258,109845276,1482562334,1140897987,855638203,-2145268270,-830471706,1140963329,-1195171379,29049856,-841862400,30310433,-851181128,817152801,87892429,-133991168,37558507,-1157270784,65798143,-1207958853,12124161]},{"sector":3,"data":[-1241468416,1355020799,1465209171,-376745466,455089801,455423624,184738024,186414281,-402295315,65732646,1912713448,99113480,-346093823,113541892,117763065,1928944223,1532583174,-2096829608,-1007089468,-1957538992,-2095374306,91619323,-352310040,7858179,1504972659,-855637829,-2082196959,-336001340,-294128,-1053095052,-1326971020,113541888,1510175481,516118619,-108847354,-1273268991,361375234,-1977671219,11659458,1931413022,1435117063,-132002559,45354987,158648587,-854226394,1967736609,-1021314829,1392922711,119470731,447797643,1974399740,1272523523,123456395,868441944,1959332800,520494671,-678739788,1963063683,522308904,92939856,1476418280,1931413022,1085601798,-1675506366,440238118,-1047854475,248447467,-335545368,-397322982,-376701018,1931595097,990636802,990344392,41285864,526238091,2603203,-1258289989,-25115903,-166628097,209027270,1049429790,45685539,-16717824,-1000929597,186326078,639071487,-134201981,975573108,638022149,1996571962,1195899137,123726315,637964227,-1814351077,708245394,922194715,-92071126,-2147125751,65746882,1378927232,1975520065,1960512260,66683705,2088766837,91565066,456341247,-2094863551,225773305,738884736,922682741,-348054733,167346960,2088766325,91565066,456341247,-768371903,-768366613,922730547,868424486,1959332818,-1339706335,624436736,942017141,74711397,242598970,-402290138,24379219,1229080391]},{"sector":4,"data":[-2024348811,1961692106,1048792371,1962941224,105155115,975581188,41222469,809246443,-771029899,872612980,1048635371,1979652901,1229079048,-347123895,-17917,-386323625,1499463178,2146108275,-896839280,425088,-922022540,1229522548,32196423,185658206,1577285065,-108852757,855799295,1962871753,106386774,-2083966127,1779774,1156984181,141889287,-402490172,451609204,218580214,1156975732,108269063,201802998,2093222005,42133506,2062024939,-402396415,124911648,1566508889,-2096829602,-2080830780,1779774,57804149,-939584279,1779718,-768359680,-954521439,169552390,-23730176,747079768,-75283685,-402426560,-906100232,230223477,747079946,-398245093,1455620584,871773011,-98103,-1131739019,-544531700,-956946965,-1006078974,-1944391492,1025043395,225574931,1996498749,-54737912,-339506150,-524499962,-2084336614,376831995,1979711104,216791299,-1206179677,29229055,-118082816,-75297557,-402426880,-964493228,108197892,41273611,-2137219093,695534078,105993554,12079191,1009765637,158685439,45668491,-349188859,91486465,-346486945,113541894,1560284392,-821957798,-268274,1472421467,-18096,-1359822798,1481232887,-75250849,-2095221503,-15005634,-12773772,1342928383,-14997343,1478166558,520029419,451615496,-25114317,637957375,-352105078,892874249,-1976695691,-947715251,762575108,1959332856,-98279,992347508,772008709,41223483,1950943723]},{"sector":5,"data":[80184069,1928979435,-98292,235042296,2097358343,839283202,227157741,570869319,868417563,108822747,-955157248,538651783,-968670419,538651783,10938435,870003549,571377874,155486747,511099194,-259342038,-2147007242,1149899892,747079690,-75283685,-402426560,-822214532,2088823925,225705992,1929923640,139209224,1284166026,1959332616,121959972,-166955761,1947207492,92939782,1476520775,455903112,1090224963,1105724277,1976172032,121960156,169375104,-1978370826,-2021127612,-2092754132,58015995,-33545240,-152275506,1963919172,121959944,-352160752,1959922188,637964040,1976237595,190712,106021717,-1962467753,-1915014197,-400872386,91421530,-346486945,113541892,-161627143,1966081860,92939794,1088962896,637957116,1342260618,638446584,-1073085046,1095173236,-114559509,861782869,-943705134,270215686,-153406720,1965033284,92939812,218580214,-2136470155,608371572,705087359,-167769573,1963853636,705087238,-352318949,121960020,640054544,1156973963,259329287,1954596086,-461356284,705087359,-167769573,1963853636,705087238,-352318949,93005352,39160614,218580214,-956952715,1124365440,-947919232,169552390,121959936,-955878130,169552390,-71440384,91544331,766693939,29578578,-16711675,285213951,1702131781,1684366446,1920091424,622883439,-1928917455,-2094874818,46342337,-16711675,234882303,1936875856,1917132901,544370546,118370597,585318029]},{"sector":6,"data":[-1021460093,167773695,2621441,3932162,5112108,7799085,13893934,18612527,25428272,29229361,34210098,37093683,1668172055,1701999215,1142977635,1981829967,1769173605,168652399,1936607509,1768318581,1852139875,1701650548,2037542765,1277954573,1935958383,1881170208,1919381362,1948282209,544498024,544104803,1852404336,1919361140,1768452193,221148003,1611271434,1346458183,1396918600,2037668640,542991728,1919179611,979727977,1634753373,1717397620,1852140649,1566928225,1378835232,794501213,1528847682,1145261103,537529693,1345280800,1414416722,978865986,541348947,1345265788,1414416722,978865986,1564754764,168626701,1948262475,543518841,538976288,538976288,1667592275,1701406313,543236211,1852404336,544367988,1701869940,1702045728,1934958693,1931965029,1769293600,1629513060,1377854574,1919247973,1701015141,168635945,1528832107,1986622052,1532836453,1752457584,1818846813,1835101797,537529701,538976288,538976288,538976288,1884495904,1718182757,544433513,543516788,1701603686,1852793632,1852399988,543649385,1868983913,1952542066,544108393,1931505263,1869639797,1684370546,1769107488,1919251566,168636019,790634557,538976338,538976288,538976288,1852404304,1998615412,1702127976,544108320,1667329122,1935745131,1701147424,1852776558,1701344288,1919120160,778986853,542050829,541208352,538976288,538976288,1917853728,1937010281,1701344288,1667326496]},{"sector":7,"data":[1869768555,543452789,1663069801,1919904879,1919903264,1280262944,540299855,543452769,1330401091,1881159762,1953393010,779317861,539953677,1129066272,538976324,538976288,1917853728,1937010281,1769174304,1277192046,1629504579,1667592307,1634869364,779053428,543296013,1380986656,1112821321,1396332623,2082489428,1380986656,1112821321,1278892111,168641603,538976288,538976288,538976288,1394614304,1768121712,1936025958,1701344288,1769107488,1647146094,1931507823,744847977,1953064224,544367976,541348947,1277194863,221135939,-1928917494,-2128411586,-1023227967,134219263,2097161,3866634,7012363,9306124,12124173,14024718,16121871,18350096,1851867934,544501614,1684957542,1095911200,1128876112,1919950931,1818846831,856296805,1970365778,1684370025,1869770784,1701603686,1635021600,1701668212,1830843502,1769173865,1646290798,1919903333,1768693861,622880110,638192945,1635151433,543451500,1718579824,543517801,1952543859,1852140901,1852776564,1852402720,824516709,1345194509,1768320882,1931502956,1702125940,1953391981,1953853216,543584032,1970365811,1701015141,544108320,1701734764,221324576,1917132810,544370546,1684104562,543649385,1346458183,1396918600,1869770784,1701603686,1394805261,1635020409,1919230072,1936879474,544106784,1346458183,1396918600,1869770784,1701603686,1344604685,1953393010,544763746,1847608393,1763734639,1380393070,1229475905,1881166659]},{"sector":8,"data":[1768320882,168650092,1769099302,1919251566,1887007776,1869488229,1852383348,1095911200,1128876112,1919950931,1818846831,235539813,-801207033,1707180325,100647681,198656,262176,327730,393301,458858,524422,1114277,1179839,1410662631,1830842223,544829025,1634886000,1702126957,168653682,1918980134,1952804193,1981837925,1702194273,1953459744,544106784,1869376609,543450487,1735287154,403311973,1635151433,543451500,1634886000,1702126957,538983026,168636709,1986939167,1684630625,1918988320,1952804193,1663070821,1768058223,1769234798,168652399,1886733346,1633905004,1881171316,1835102817,1919251557,1869488243,1818304628,1702326124,487198052,1634885968,1702126957,1635131506,543520108,544501614,1869376609,224683383,1110387466,1986947360,1684630625,1953068832,543236200,1667329122,1851859051,1752637540,543519849,1852404336,225600884,1851074570,1701601889,544175136,1869374834,1998611553,543716457,1718579824,543517801,1886418291,1684367724,118360589,658128525,20365697,1380384963,1229475905,21315,0,285212672]},{"sector":9,"data":[0,0,1414736138,68,0,0,1275068416,17475,0,0,0,17,0,-402652672,208925355,-1207959367,-1310195711,18278658,-1991381315,-1272368338,-843042132,-229329,113646709,-1946081163,406751680,18260737,-1559917786,-970573818,385286,-1894906389,1359025670,88993464,78708751,-1047729965,723960067,-150994426,-268391976,-4717196,-1325077505,1507906308,678772352,773289217,18233087,406752007,227223041,690949769,41337147,765706635,1187393065,118358018,1930106344,9365763,1930311912,8841475,75399214,772961538,33703670,297274228,47360,-352188440,1967030381,108331048,691078855,1508379808,1967030273,729088040,-972958744,385286,-402587160,-2144412580,1963197310,6744067,691082891,5636910,-355269455,842118210,-1274745920,784347724,-1962914165,372703221,1048577793,1962944629,826182412,-1980789975,-352249794,406752006,-370177279,1048633906,1963010165,369528330,113649153,-1275001375,-855527348,33620001,335873027,976828423,1044200507,1364197439,106387026,-1064386509,-1472805850,2088969732,1869938692,108823334,644379904,-16497466,-2128193456,16712828,520505460,-1959917810,774451518,722615945,-218095431,-2095116636,539570438,722615947,-1993789023,1569457221,1966509318,826182442,1161513,872064243,-1581216064,-1557779694,-1943665496,-83580386,-1943663637,832636508]},{"sector":10,"data":[1149838889,822509828,117506089,1499094623,50008,95965958,773967157,78847625,-1257862098,78690820,-853211720,892319777,512303565,109838610,280625428,623884289,280502733,-1994273483,-1945848034,-1174095610,280494413,1528941861,1397801735,106387025,372703022,-1598093567,1967030284,359989288,75399214,-969444094,19651846,338738832,-351885639,404654889,1200236033,1178217988,-971279356,19651846,2122329744,141885700,-1190354754,116066178,-1189859138,1048577702,1963011037,-1527514109,678772352,-1189645056,-108984446,142476966,691078785,116066178,691078785,1594295974,1482381662,1397752003,-849169402,650350113,2891403,1236583310,1527194061,1465107288,512447830,-768464587,48824246,1600019953,50011,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-16777216,0,255,2086492928,1026244156,771760699,740099783,788267008,739249801,302434094,771751980,740624071,-953286656,2889222,113716736,1566256305,-1291401426,775715884,750061255,-953275586,1026340614,111536187,-4713613]},{"sector":11,"data":[-1960422401,255469085,45613939,602495744,914959873,1465068575,656313685,116796972,1965042718,904440899,-398691833,930350745,1963379432,116796952,1965042718,107079685,-164747541,1093410310,-347201932,126365211,108346684,504266798,-398261972,-982317282,126365356,1321134915,339118382,130428460,512306688,-1960432605,657886493,1015033388,775320623,1948400768,116796936,1963011102,1200236116,786706945,739247673,-1590816141,-523162608,-670874813,-400585946,1777008776,302434094,-352321236,1200236128,1088696833,-670834479,839879206,1959332845,642990863,-957866101,1098078976,-220052669,302434094,-352320724,1200236084,1088696833,-670834479,839354918,1088475620,-1977165821,200094223,1125086409,529213011,1526750696,1128467315,-953224478,69997062,1532976384,269388590,312553004,915090988,-1959908332,774641174,739778186,642827256,44631947,772109568,739247871,3964974,27859317,772371712,739378887,250281986,-1274826672,10414335,-402396328,-1017642723,1364575225,139430438,-921965262,1871514996,66906121,250087539,-101260800,-1993472277,-131324626,650337625,32384,-347798668,784549366,740167296,-3741680,-2144449934,-282321370,564211280,784739116,740230657,915091032,-2144457695,645201980,-8617938,772371770,739378887,535494665,4162342,-148498060,1962934535,113716754,142354,-1763178005,233568256,1342893049,-4979792,1476396008,643286008]},{"sector":12,"data":[772046731,739655305,637896742,1342268808,740663598,38111526,1963015256,1435051530,1300833796,1012591366,637957378,-352037495,1946631248,1946696936,1963343076,1434985990,1010756356,772764932,1076633505,71665958,106794022,-1993987093,-1943665547,642778701,16926710,78644340,-165279253,1946288711,-402477051,643301579,268584950,-1696070796,784555776,750388934,-1960423424,1975520007,1381191704,113716823,601106,61931444,1610570728,-346530982,-352064766,11112533,772961408,739378887,367525888,1048784385,1963535378,1073785149,-953281932,2888198,14346240,306086702,645204268,1946288297,113716754,11282,771961064,739393155,-1458604791,175382528,302434094,-402653140,-2144468467,19708478,-2094133387,2888254,-953284747,153883142,1354979328,76164694,443858954,225786428,24936494,772175104,-352320314,71624713,1178993011,1482612715,-1974315325,76164816,1912877544,1958742540,845836,-352024530,-347716095,-1017226520,208896060,1165123900,1098349116,1038868260,-1923676589,-2144555970,74712314,749158029,1947547694,1381060631,1706297102,-4472182,375295,-838860870,1482250785,22907694,54890030,-2144582845,123721510,777044827,740167296,645934720,788343838,725353610,758909556,-2144467083,36445710,190534,1364247384,-919382446,777245235,-1073085302,484983412,842625537,-773288988,-388902430,745668861,-1047799157,-774774063,1912664296]},{"sector":13,"data":[-773664481,15198417,-754772366,-555169773,51212800,13730773,1912657128,-1142209021,12118363,116797019,1946299422,-137234678,29524946,637587843,637958027,3933322,28313461,-1628831820,-1977203200,1946172420,-164739488,-2144592378,992353909,913441612,992347767,779223380,122436390,980559991,89406246,854270071,55327526,108992636,22297382,992350332,176097100,992353404,41878868,-964487957,1976106505,113716917,404498,-4980304,28327403,-349926874,-167136202,-268222236,1174702630,55327526,992347765,-495713964,-33175933,787314120,739378887,28311559,200015796,302434094,-1342174932,-385895421,1516174612,-1664919463,503772718,41222700,1889387421,-104597502,1915763907,2000239624,-131060732,1355020739,643256915,637960075,-1073085046,-4979595,54283499,642203509,162792842,54584566,92940024,-453638732,653787968,1195836810,-399668442,309526578,-33306749,787576264,739378887,-4980728,-1977215765,45154149,-350909658,113716747,601106,61931444,1610386408,-1017619622,1448236368,-1976696142,33089540,-672646030,116797181,1946692638,1966947341,2122327583,1903493121,-164752405,271326726,977014388,-2144990603,1962934398,1558922844,4602406,-1073078923,1162236532,975573995,1165295686,76164678,1178216005,1178236160,782756677,740165366,638547008,537020407,638022656,32384,-148495756,1946161159,1966750744,2122327561,225771520]},{"sector":14,"data":[3935979,-2144991371,1949958270,116128003,557222190,1516173356,1354979421,-1959897513,774643518,-1073085302,1609044852,774141184,750388934,-970039807,-346095612,-970039745,643760132,67575,-953273739,36442630,1479142144,76164694,510967818,1946168808,18409483,1179058803,-370457017,739811886,312878,1049177671,1600007188,33597784,-1269823116,-402280193,-1017578636,512577875,163130545,121253376,-498924428,1532576248,585673923,-401050624,376766547,503772718,-311156692,503772718,158613804,-116987058,1324876267,1405352131,1947024465,1946172461,1946827817,2105550373,510788098,-1977165005,-1014824099,964699652,856519680,160048841,20588099,-119405452,1532562748,777081795,739772102,645934624,1021258782,1010201632,1009939465,1009873964,-2146667232,125116476,977674416,639560640,16940416,-919398542,55413286,192203019,1124074427,1946237478,1022943751,-1017423584,739811886,503772718,108331308,504266798,-1069932500,781051883,-583324633,792463988,-336002187,200013838,108343100,504266798,-1007140820,777213470,739982979,1344763136,1465012510,-164428203,12115598,-1943941789,131795931,1499094877,695490591,423004462,512306732,-1959908325,774641974,739974798,1946172547,1912879632,21248520,-336002185,-347716091,1583085803,49951,0,0,0,46569,13543,188020994,896402741,893662492,892351832,35651840,37028608]},{"sector":15,"data":[53,0,16777216,335544578,3473973,0,0,0,889337128,5385985,0,0,0,889337148,4140801,0,0,0,889337168,4337409,0,0,0,889337190,1129066241,68,0,536936448,897908737,788673794,1313428048,1481589332,1112551168,0,0,2816,16777216,536936464,1381061456,-1106880682,118358145,887373453,12110131,13625344,1962934333,1023115638,-954108619,19477766,19707904,770230579,876429558,-940084735,36254982,-1628833536,-1874203904,889453441,-873986443,-1874990336,890567553,-1696070027,-1875776768,895941505,266864245,-1876563199,891878273,-773323147,-1877349632,894499713,-555219339,-1878136064,897973121,317195637,-117314815,1458046322,1015409408,-1186433793,20709376,62391925,-1875318016,108332860,-352320328,54300718,28906357,312832,898446989,-1207679860,401276933,1969437840,440326,1016073707,-1207601820,65732615,-402650952,133821824,1499094623,868440155,-1892251182,-164370379,1355012747,1465274963,75467558,-2000757965,4030504,25824116,-2143092600,1962999673,1516134389,-1007134629,1465274707,74943270,1946172544,-2029090280,-1074974168,-1527568266,16743808,-336067723,243716,1499357177,116835163,1963013347,-485588979,-2144468684,-134151602,1689781483,-154928896,37020422,243273077,771896547]},{"sector":16,"data":[33705600,-1207637000,-1007091612,887293686,-166365948,137683718,465048693,688431913,887295616,183236612,-117414728,1673004267,1371797760,116807510,1963209955,-486083011,812976180,75467558,1962950016,571398,-2145391623,137683726,690753162,-141824718,-215414081,-8552284,-133991168,62391531,183236864,-117414728,1673004267,1583347968,770905,14221,16785665,32,0,1346458183,1396918600,1330794542,606348288,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,36,1063780352,1127432277,1110393179,1273841578,1300187694,17912,0,0,0,234881024,931530383,-2147373336,20418366,-1007091083,691220107,-956295240,3671046,88524288,105301504,122078976,1187446783,1187446793,-956301558,-972946362,-402649530,77661812,939696952,-1959262045,-398684362,-1901984247,-1892251334,-1858174916,1416953911,932134528,-968002304,3642118,-16440856,1916243206,220129508,1962934333,939565325,-13107549,-348658025,-12742635,-2146470657,37196558,932185798,-486095359,1048576055,1946171283,10938548,932185798,-1828272639,-1511325641,939132663,141819905,-402253080,99288666,932384384,-1824620543,57933879,-1207927832,512441856,567097313,932200064,-1207339775,12124174,-217913344,937705088,-1207012096,12124176]},{"sector":17,"data":[-218961920,932185798,-1874952191,242483511,940195456,-2146995199,20418366,-336002187,-1841397708,645202231,678772352,-1592560383,104540461,92088623,-352320840,1226760,45614059,47360,-101536792,111216619,4622648,113755128,76085,932382454,1443787777,-1191179592,-2101477375,-226039753,-1828260258,242483767,768086,-1107295815,1911043970,116809458,1946433427,213407246,112896,-399015234,-1956711844,-969042626,607949701,-1173769072,567098515,-1869607502,567083700,45353650,113713613,141621,-2009169725,779354152,-1205303110,567098624,37560179,1023767552,276103171,-1191179848,300417024,-1895381262,1475019063,-352284696,937534290,-1799729685,1023457335,1081287117,1946157629,212229,937963893,680049152,-851640136,1025471265,91488258,1962935101,636944,-402652999,113701324,-352241777,4909074,-509407765,-402068681,65732672,-1019747933,-1084860666,93192236,-2094598605,57933884,-2080904378,1049429190,-1977210744,1174767620,1015031367,-957123328,1170604037,1170624765,1170625278,1600016383,230212359,47360,-957255704,20418310,195]}],[{"sector":1,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,131074]},{"sector":2,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,982320838,-1828272640,-13434825,1016018571,-969240928,4036358,982335104,-2140375808,3641150,1048601973,1962948497,-1757511586,762642749,527764028,16777089,-2054682761,-347652973,-1827766257,113639991,-972998768,3662598,-973048600,20614406,-348483934,-32329,-2012776704,1195152261,243273707,-972933229,20418566,937625286,1963801600,-1761163771,1122500925,-2138182912,222073533,-1115679884,1946827922,-1819949556,-2050618052,1191853204,-1791063737,-1892251331,-1858174916,192217399,1962999683,250345731,-2146702344,20418366,-336002187,1002698753,1966903606,-1170230226,12139151,-518092030,1931595063,-66918395,4004331,-972065536,20418822,512442036,567097313,-1851587093,-2131348676,20418366,1048577908,1963014033,367786243,982498432,-972524262,20418822,-1979257863,1178242948,22266872,-1959263226,993526814,1982410014,-486095350,113639479,1526806418,195,0,939172096,937705088,-1457425151,477429764,940195456,1343583488,-1191178312,-169345024]},{"sector":3,"data":[-486095124,113639479,1476474890,1023412261,259260424,932384384,-1878604287,113639735,-1023395869,993526945,1983383046,939959043,624425633,37552130,-2146470912,20419342,932185798,-486095359,1371734071,16777791,1459683387,63,-654310880,4153406,16777219,1,939525831,113639425,-150847641,20445702,-402230272,-1545011357,940089855,-1556610397,113719300,79866,939263687,1048576000,1963014116,-469318134,113639991,-1979697181,838967310,27376621,-16627769,163808255,1991833314,1063625512,859786175,-389467182,155053297,-2146470656,37196558,932185798,-486095359,3997751,1023767552,-579469313,1962934333,-465666008,896860215,937690822,-1874952191,695533623,940195456,-2145225472,3641918,113646453,-352241693,-486095340,-12779465,-2146798337,37196558,932185798,-482443263,74776887,935622,37764035,3866880,4210945,8388608,1245632768,16842816,1,4864,444160,-150994376,20445702,-2146470656,20419342,932185798,-486095359,116850743,145402,1048580725,1963014115,939827489,-1559476599,384514050,-1946266904,-1590164930,1048590340,1963014115,-1560049406,431503362,-32053248,937639552,-1959758591,-969407938,-973074109,-956296125,-60861,-15383609,88327935,105104896,390317568,37996032,-16529664,939827711,-2096938103,37222926,939140739,-64584765,901760823,869413696,-339482423,1962934333,28856356]},{"sector":4,"data":[-38082560,937639552,1460892929,939671179,-1962785794,-1606941634,1133002461,-346529793,-49900,243273588,-972933229,20418566,937625286,-49920,1103346037,16777793,1191247931,65,-654311296,4280382,65793,-16777216,-956301312,272105478,-100206848,1962934839,-1827766257,113639735,-972998768,3662598,939263735,259260432,932384384,-1878604284,113639735,-150980637,272103942,-2146077440,20439870,1049300597,77674498,306415928,1131462,939134595,-29457648,125046839,154664609,-1086850042,-768392901,-219625165,15850,-1202707339,-370671615,-482443012,326435127,37653335,289668664,939802251,-2009145952,1482686275,-12774165,-2146470657,37196558,932185798,-486095359,-12779465,-1866893825,365138064,16777794,453050427,66,-654311296,4334654,65793,-16777216,-956301312,272105478,-100206848,1962934839,-1827766257,113639735,-972998768,3662598,939263735,259260448,932384384,-1878604284,113639735,-150980637,540539398,-2146077440,20439870,1049300597,77674498,356747576,1328070,939134595,-29457632,125050935,154664609,-1086850042,-768392689,518572339,15850,-1202707339,367525889,-482443012,326435127,37653335,340000312,939802251,-2009145952,1482686275,-12774165,-2146470657,37196558,932185798,-486095359,-12779465,-1866893825,-373059440,16777794,-184286917,88278338,4397379,35651584,-29435648,196674]},{"sector":5,"data":[65792,8388864,238999808,16842819,257,2304,35651840,574544128,196675,687931648,1414484547,4543553,-973078528,4403718,1127220934,822527488,113705027,276480,939132663,259325954,932384384,-1878604287,113639735,-1090504733,-768392477,144820531,1124311849,1038699752,292880384,1127352006,-99712255,-23002057,-66713289,-382474185,1962934333,-585201129,243171390,-2146994943,41223163,512230579,434848560,1979711293,9234693,243273707,-972933229,20418566,937625286,-386144256,1962934333,-585201142,824084542,1025043267,74842111,267084523,932384384,-1878604286,113639735,-402638877,4057297,-2145749760,20439870,1048587125,1963017010,1049319204,1266694146,-346095337,-49896,686490741,243273707,-972933229,20418566,937625286,-392697856,1962934077,-1827766257,113639991,-972998768,3662598,937639552,-2145815295,21180990,-1957227915,-1606942146,1133003568,1127325701,1594246024,1063730816,-385649662,1048576167,1962951472,10348803,1127300736,-385649408,-1581580141,-1609659903,-1947389439,-1606942146,646595376,1194869553,940143878,74778471,65734635,-502676605,1976110061,-1827766254,113639991,-972998768,3662598,-2087692309,1962869375,38243100,937639552,-2142866175,21180990,1133068149,138906120,-351845496,71207732,-1982362824,1200292439,-103094268,937639552,-1960938239,931878600,-1527513853,842956894,225771843,939671179]},{"sector":6,"data":[-1979165815,1132988487,1158726407,989921282,1159069952,536870912,1054408706,50349343,655360,1224885569,1163199557,138763782,1812612452,1165298757,272990222,-1760410228,1230131269,1380275278,1397310464,1497451600,1162104653,1230131200,1329747022,1163067480,5264724,1414743378,4543055,1346458183,1396918600,1280262912,1380995663,5525065,1330401091,1279611730,5522245,1263681860,1430930497,1140872275,1313424965,180289605,1016315461,-919350733,1038553320,141885440,1054482058,183238450,1962934077,-1827766267,-909966793,16777797,-822017989,69,-654310880,4577342,50331651,38135041,-301775382,1413563461,1330774081,1329791063,1313690956,0,939525831,116851200,79866,243273589,-972998765,20418566,937625286,-100206848,1946157623,-1827766257,113640503,-972998768,3662598,939132663,259260928,932384384,-1878604286,113639735,-973064221,4584710,1173751494,-150551040,243335237,33568762,860210111,-389467182,4056665,-385649664,512360600,-75481382,-2145291007,4585278,113641589,-385792521,243269780,-972933229,20418566,937625286,8579328,1963129728,-180453326,427098181,1173765760,-971868928,21361926,937639552,-966560511,-352252346,-1827766179,113639991,-972998768,3662598,-2138026773,1182073851,1173765760,-2145815296,4584766,113644149,-2147400202,20439870,1187392629,652935182,932384384,-1878604286,113639735,-352307229]},{"sector":7,"data":[-12742635,-2146470657,37196558,932185798,-486095359,-12779465,-385649409,1048641343,1962952183,-1827766257,113639991,-972998768,3662598,1173700224,-2146011904,4585022,243273589,-972933229,20418566,937625286,49920,0,1197473792,989921282,1197867264,-1610612736,1196556290,50349935,257,16711680,67108864,55022338,-2012985444,1200489799,1314213699,1094975572,1275085140,1329813327,5525077,1212631368,1314213699,84,113704960,538624,939132663,259325954,932384384,-1878604287,113639735,-2147469341,20439870,1049301621,77674498,188975416,672710,1590214,1202063046,-1492728320,113639495,-973060184,4696326,939134595,939434248,939263497,860314303,-389467182,4056241,-385649664,512360861,-75479213,1345680641,-402652488,1048639132,1963014115,1049319203,1048590338,1962952617,172228101,1140720619,71207704,-29112776,1196859616,1610564488,24373592,1963129728,-1505853352,1064632391,1202208384,-969378560,21472774,178256,-2131341336,20439870,-1957224075,-2143813058,4696382,1140721013,-33297654,1049303107,1137063940,1137099262,1482621183,-2147407639,37196558,932185798,-486095359,384368695,66813953,1048598645,1962952615,-1472298945,947191879,1202128582,45633537,-168630272,937639552,1461810433,939671179,1202273920,-33196800,65735235,-1961344002,-969407426,-960299453,1593900867,13363544,932384384,-1878604286]},{"sector":8,"data":[113639735,-385861661,-75497287,-2141293308,4696126,1048593781,1962952614,-1489076162,930414663,1202194118,45633537,-175183872,937639552,1461810433,939671179,1202273920,-33196800,65735235,-1961344002,-969407426,-960430525,1593900867,-2140607656,37196558,932185798,-486095359,1475018807,100368528,1048596853,1962952617,-1459173852,-1202716345,971505666,-482443019,242549047,71207767,-29112776,-12335395,-346530048,-1827766234,113639991,-972998768,3662598,1032852971,259325951,932384384,-1878604286,113639735,1023424483,57999359,-2130822423,4696382,1048578933,1963014115,373736964,-1505853439,125042759,1202142848,-2146011904,4696126,243273589,-972933229,20418566,937625286,1242088192,989921282,257,536870912,1196556290,18967,32769,1243694930,16843008,1,255,113704960,4208640,939132663,259325953,932384384,-1878604287,113639735,-150980637,-2110260730,-2146470912,70750990,932185798,-486095359,116850743,4208636,243273588,-972802157,20418566,937625286,-100206848,1962950711,-1006189033,-2138046389,20439870,77662837,172394808,607942,939134595,-29457600,125059127,154664609,-1204290554,233308161,-482443020,292880695,-1962326274,-969407426,-1929314493,748945221,1241694026,1242040006,1242478593,860490403,-389467182,4055517,-2146405376,37196558,932185798,-486095359,113442871,1446954071,2105550407,259260417]},{"sector":9,"data":[932384384,-1878604286,113639735,-1979697181,843826206,150700543,-2146339584,70750990,932185798,-486095359,233504823,-1977162799,-578320379,-1006174645,-1207476405,178473496,134661706,-768409526,1860749619,15841,-1202707595,1709703169,-482443021,309657911,742296407,-1962672566,-1606941634,1133004630,-346529793,-49900,243273588,-972933229,20418566,937625286,-49920,-1869563275,1268302736,989921282,1269040131,1269058468,19384,32768,1269647186,16843008,0,63,139265,1270957906,768,1272774912,72081154,-485995551,1273303115,1078716192,-343913495,75,0,0,0,444160,-150962120,20445702,-2146470656,20419342,932185798,-486095359,116850743,145402,243273588,-972802157,20418566,937625286,-66652416,1946189879,-1827766257,113640503,-972998768,3662598,1063716550,-100206847,1962967095,-482443243,242549047,-1992817503,1187383110,1187381508,1048576006,1963014115,105315843,939134593,1048641664,8402942,-23001228,-66713289,939827511,-1204288861,971505668,1267908594,-919350733,1038101736,292814848,932384384,-1878604286,113639735,-352307229,-482443246,192217399,37653335,1196859448,-396426360,4055041,-2146339840,37196558,932185798,-486095359,334168119,937639552,1460434177,939671179,-2008590688,-396426941,4054997,-2146339840,37196558,932185798,-486095359,334168119,937639552]},{"sector":10,"data":[1460434177,939671179,-2008590688,-2141257149,20439870,-1957229963,-969407938,1593836355,62509619,-543954944,1962934333,-482443243,578093367,37653335,1196662840,1594049288,-12774165,-2146470657,37196558,932185798,-486095359,-12779465,-1865976321,1707315344,16777805,1795227963,77,1375731776,5076039,-1056898815,1073741823,-956301312,3670022,-100206847,1962934583,-1827766257,113639735,-972998768,3662598,939134593,-23002880,-66713289,1298120503,-919350733,1038026984,292814848,932384384,-1878604286,113639735,-352307229,-482443228,108331319,-2008590688,-488110778,-49698,243273588,-972933229,20418566,937625286,-2145729792,20439870,1048587125,1963017010,1049319204,1266694146,-346095337,-49896,686490741,243273707,-972933229,20418566,937625286,-392697856,1962934077,-1827766257,113639991,-972998768,3662598,937639552,-2145815295,21180990,-1957227915,-1606942146,1133003568,1127325701,1594246024,1063730816,-385649662,1048576167,1962951472,10348803,1127300736,-385649408,-1581580141,-1609659903,-1947389439,-1606942146,646595376,1194869553,940143878,74778471,65734635,-502676605,1976110061,-1827766254,113639991,-972998768,3662598,-2087692309,1962869375,38243100,937639552,-2142866175,21180990,1133068149,138906120,-351845496,71207732,-1982362824,1200292439,-103094268,937639552,-1960938239,931878600,-1527513853,842956894,225771843,939671179]},{"sector":11,"data":[]},{"sector":12,"data":[757935419,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,990514477,1095911200,1128876112,1380986451,1766203471,1713399148,1293972079,1869767529,1952870259,760433952,223563588,757938954,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,168635693,538976288,538983200,1126703136,1886339881,1734963833,824210536,758659129,825833777,1667845408,1869836146,168653926,538976288,1766603552,1936614755,1293968485,1919251553,543973737,1917853741,1634887535,1917853805,1919250543,1864399220,1766662246,1936683619,225732207,757938954,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,168635693,1313428048,542262612,1162104904,1280655686,990514516,540740109,1431586131,218701904,537475850,1936007200,1098000995,1953696009,544502369,1885434471,1935894888,544497952,1920103779,544501349,1936880995,1881174639,1953067887,225341289,151599882,1937049865,543649385,1920103779,544501349,1885434471,1935894888,1936028192,1953852527,778989417,540740109]},{"sector":13,"data":[1346458183,1396918600,990514464,538976265,711160677,1329799266,542395989,1094983767,168640852,1163010107,1380930643,990514501,538976265,711160677,151601778,543452773,1885434471,1935894888,758843917,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,221064493,1142956042,1313424965,1094983749,1378632020,168646479,538970637,1347635524,1297695052,541410383,741682228,824980273,538976313,151592992,540739849,2016424499,221261874,538976266,1413829408,840978517,842279991,875639084,221591084,538976266,1095911200,1128876112,926031955,741487660,1126971449,1414419791,741816364,1096040772,538976288,537529632,1344282656,1414416722,542658370,742675539,741485618,1096044370,168641876,538976288,1414743378,541413967,875312946,825306162,909519924,168626701,1229201440,1095520339,1146047833,741744709,537474097,151592992,540739849,2016425014,540028978,538970637,1163075616,542135636,875312946,825306162,892742708,538970637,1380392992,1229475905,840979267,842279991,741882156,1314213699,926428244,1413563436,538976321,168632352,538976288,1313428048,1481589332,1146376992,824980012,1414484524,222647361,538976266,1397051936,1163022164,741814816,824980020,908866609,218762550,1142956042,1280332617,1330469185]},{"sector":14,"data":[824198468,909192245,538976265,151587081,875962427,892565552,537529648,1394614304,1347769413,741814816,824980020,908866609,537529653,1193287712,1213219154,542327625,875312946,943270962,1431257900,942429262,1094986807,538984788,220209184,538976266,1230131232,1329747022,1414733912,741485636,538976305,538976288,538976288,538970637,1163010080,1380930643,926031941,741487660,741617969,168638006,538970637,1347635524,1297695052,541410383,824981297,538970424,151587104,908081929,880291892,168636472,538976288,1431586131,926031952,741487660,741617969,168637750,538976288,1346458183,1396918600,741814816,959197748,1329802296,743722581,1143748408,541152321,538976288,538970637,1380982816,1112821321,1394628687,841761876,538980652,538976288,538976288,537529632,1377837088,1330926405,840975698,842279991,875639084,221656620,757938954,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,168635693,1313428048,542262612,1263748420,743720266,1163084108,1413827154,168642889,990514491,1413829408,153112661,154864141,1696604192,1948935027,542258487,1702037769,1952671084,1681209120,168651120,538970427,1668506912,892433450,153113136,1818587913,544498533,1680880945,168651120,538970427,1668506912,808678442]},{"sector":15,"data":[153113136,1818587913,544498533,1680879667,168651120,538970427,1668506912,1747149094,151606819,1702260589,1920295712,544370547,1769172848,1852795252,1852383276,1667589152,1768910953,225670254,537475850,1936007200,829565539,1929972033,1953653108,1634887456,1667852400,1952522355,1920295712,1953391986,1920295712,544370547,1769172848,1852795252,540740109,1346458183,1396918600,990514464,538976265,711160677,1329799266,542395989,1094983767,168640852,1163010107,1380930643,990514501,538976265,711160677,151601778,543452773,1885434471,1935894888,758843917,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,221064493,1142956042,1313424965,1094983749,1378632020,168646479,538970637,1347635524,1297695052,541410383,741682228,824980273,538976313,151592992,540739849,2016424499,540028978,1680879665,168651120,538976288,1431586131,926031952,741487660,741749041,875313460,942943288,741488684,858535730,926493752,741880876,741617713,841758772,842279991,875639084,741946412,168637750,538976288,1346458183,1396918600,741814816,959197748,1329802296,743722581,1143748408,541152321,538976288,538970637,1380982816,1112821321,1394628687,875316308,1378628396,1413567567,537529669,1377837088,1330926405,840975698,842279991]},{"sector":16,"data":[875639084,741750316,168636977,538970637,1347635524,1297695052,541410383,875637814,538976265,151587081,875962427,808613936,892411952,1768973360,538970637,1163075616,542135636,875312946,825306162,959720502,741553452,942422068,926034994,741880620,892090169,892677175,741553452,741617713,892088885,909454391,741750828,875312946,825306162,959720500,540358188,537529632,1193287712,1213219154,542327625,875312946,943270962,1431257900,942429262,1094986807,538984788,220209184,538976266,1230131232,1329747022,1414733912,741616708,1330785330,1163149652,538970637,1163010080,1380930643,926031941,741487660,741617969,824981046,218762546,537529610,1397310496,1497451600,1162104653,741683488,537474609,151592992,540739849,2016425014,540030259,1680880945,168651120,538976288,1431586131,926031952,741487660,741749041,892090676,942943283,741488684,858535730,926493752,741946412,875311157,859122745,875573548,741618988,892090420,909650997,741814828,824980020,875312177,892742713,538970637,1380392992,1229475905,840979267,842279991,741882156,1314213699,926428244,1413563436,538976321,168632352,538976288,1313428048,1481589332,1146376992,841757228,1414484524,541414465,220209184,538976266,1397051936,1163022164,741814816,824980020,908866609,842083382,168626701,1229201440,1095520339,1146047833,925966405,154677548,153100320,990447881]},{"sector":17,"data":[808728096,808989816,808792352,225013860,538976266,1413829408,840978517,842279991,909193516,741946412,875311925,842542136,741814828,959199283,859122743,741750060,824981045,892089392,926231604,741684524,841758264,842279991,875639084,741946412,168637750,538976288,1346458183,1396918600,741814816,959197748,1329802296,743722581,1143748408,541152321,538976288,538976288,538976288,538976288,538976288,538970637,1380982816,1112821321,1394628687,841761876,1378628140,1413567567,168626501,538976288,1414743378,541413967,875312946,825306162,909519924,221393196,757938954,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,168635693,1313428048,542262612,1163084108,1413827154,990514464,540740109,1431586131,218701904,537475850,1936007200,930359907,153113141,1818587913,544498533,1885615415,990514537,538976265,644051813,594027361,1829308758,543520367,1936880995,1881174639,1953067887,544108393,1679847017,1885954917,1953393007,990514547,538976265,711160677,155267442,1635021577,1730180210,1752195442,544433001,1663071329,1701999221,1663071342,1869836917,1869619314,1769236851,168652399,1380393019,1229475905,220222275,537475850,1936007200,543304291,1314213699,542580820,1096040772,540740109,1414743378]}],[{"sector":1,"data":[222646863,537475850,1936007200,1114778211,1852115209,1919361124,1768452193,168653667,757935419,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,537529645,1178944544,541412937,1096040772,1464816172,168626701,1229201440,1095520339,1146047833,741613637,858860597,540619052,538976288,151587081,842211387,808613936,892805168,225013860,538976266,1413829408,840978517,842279991,909193516,741684524,942420789,926034994,741880620,875312953,942943289,741356844,824981556,892089392,842345523,741422380,841758264,842279991,875639084,741946412,168637750,538976288,1346458183,1396918600,741814816,959197748,1329802296,743722581,1143748408,541152321,538976288,538970637,1380982816,1112821321,1394628687,841761876,1378628140,1413567567,537529669,1377837088,1330926405,840975698,842279991,875639084,741750316,168636977,538970637,1347635524,1297695052,541410383,875637814,538976265,151587081,875962427,808613936,892805168,225013860,538976266,1413829408,840978517,842279991,909193516,741684524,942420789,926034994,741880620,875312953,942943289,741356844,824981556,892089392,842345523,741422380,841758264,842279991,875639084,741946412,168637750,538976288,1346458183,1396918600,741814816,959197748]},{"sector":2,"data":[1329802296,743722581,1143748408,541152321,538976288,538970637,1380982816,1112821321,1394628687,841761876,1378627884,1413567567,537529669,1377837088,1330926405,840975698,842279991,875639084,741750316,168636977,538970637,1347635524,1297695052,541410383,824980785,538970422,151587104,908081929,863514676,924856373,1768973365,538970637,1163075616,542135636,875312946,825306162,892677174,741553452,841757240,842279991,875639084,741946412,168637750,538976288,1346458183,1396918600,741814816,959197748,1329802296,743722581,1143748408,541152321,538976288,538970637,1380982816,1112821321,1394628687,841761876,1377841452,1413567567,151587141,537529609,1377837088,1330926405,840975698,842279991,875639084,741750316,168636977,538970637,1347635524,1297695052,541410383,824981297,538970424,151587104,908081929,880291892,924856376,1768973365,538970637,1163075616,542135636,875312946,825306162,892677174,741553452,841757240,842279991,875639084,741880876,168637750,538976288,1346458183,1396918600,741814816,959197748,1329802296,743722581,1143748408,541152321,538976288,538970637,1380982816,1112821321,1394628687,841761876,1378627884,1413567567,151587141,537529609,1377837088,1330926405,840975698,842279991,875639084,741750316,168636977,757935419,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405]},{"sector":3,"data":[757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,1342836013,1414416722,1344295493,1414416705,223626570,168639242,1918115899,1937006949,1701344288,1767985184,1701475438,1935745140,1109418272,1679841062,1667855973,1868963941,1868701810,1948280948,544503909,543452769,1869377379,538979954,1667592275,1769563753,168650606,1852776507,1868767333,544370540,1851878512,1937055845,1780511589,544502645,1667329122,1851859051,1752637540,543519849,1948283745,1948280168,1629515639,1818845558,1701601889,1819239200,779317871,221973005,1394621194,1347769413,168626464,538970427,1668506912,809071658,151593042,1701602675,958428259,1768973360,154864141,1696604192,1948935027,1378891825,1929972000,1667591269,942743668,1768973360,154864141,1696604192,1915380595,151606577,1701602675,824210531,1819239200,1881174639,1701732716,1684955424,1936028192,1663071333,1919904879,1818325024,1702130789,990514478,538976265,644051813,155722593,1987013897,1969430629,1919251314,1936683040,1869182057,1763716206,1701060718,1869637987,1937010281,990514478,538976265,711160677,155267442,1635021577,1730180210,1752195442,544433001,1663071329,1701999221,1663071342,1869836917,1869619314,1769236851,221146735,1193294602,1213219154,542327625,154864141,1696604192,1646945139,1431257888,1461736526,1413563424,990514497,1397051936,1163022164,154864141,1696604192]},{"sector":4,"data":[1915380595,1695091010,1730176110,1752195442,225665897,757938954,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,168635693,1162092576,1162758470,1413563401,1330785345,218762583,1142956042,1280332617,1330469185,873022788,824980780,959523891,538976288,151587104,857750281,846737458,824193072,1885614136,537529705,1394614304,1347769413,741814793,824980020,875312689,909454393,741880876,841757240,842279991,875639084,741946412,841758008,942877751,741816620,892090676,875899952,741880876,841757239,842279991,875639084,741946412,168637750,538976288,1346458183,1396918600,741814793,959197748,1329802296,743722581,1143748408,541152321,538976288,538970637,1380982816,1112821321,1393121359,875316308,1378628396,1413567567,537529669,1377837088,1330926405,839468370,842279991,875639084,909520940,218762505,1142956042,1280332617,1330469185,906577220,540291372,538976288,538976288,151587104,908081929,846737460,824193072,1885614136,537529705,1394614304,1347769413,741814793,824980020,875312689,909454393,741880876,841757240,842279991,875639084,741946412,841758008,942877751,741816620,892090676,875899952,741880876,841757239,842279991,875639084,741946412,168637750,538976288,1346458183,1396918600]},{"sector":5,"data":[741814793,959197748,1329802296,743722581,1143748408,541152321,538976288,538970637,1380982816,1112821321,1393121359,875316308,1378628140,1413567567,537529669,1377837088,1330926405,839468370,842279991,875639084,909520940,218762505,1142956042,1280332617,1330469185,822691140,909192245,538976265,151587081,875962427,892565552,824188976,1885614136,537529705,1394614304,1347769413,741814793,824980020,875312689,909454393,741880876,841757240,842279991,875639084,741946412,841758008,942877751,741816620,892088885,842476595,741814828,824980020,875312177,892742713,538970637,1380392992,1229475905,839471939,842279991,741882156,1314213699,926428244,1413563436,538976321,168632352,538976288,1313428048,1481589332,1146376969,858534956,1414484524,222647361,538976266,1397051936,1163022164,741814793,824980020,808203313,218707510,537529610,1397310496,1497451600,1162104653,741814537,537475121,151592992,540739849,2016425014,540031028,808988960,225013860,538976266,1413829408,839471189,842279991,909193516,741946412,875312693,842542136,741814828,824980020,875312177,892873785,741814828,959199283,926231607,741553452,925644852,926034994,741487660,741617969,908867892,537529653,1193287712,1213219154,156451657,875312946,943270962,1431257900,942429262,1094986807,538984788,220209184,538976266,1230131232,1329747022,1414728024,741485636]},{"sector":6,"data":[1330785330,1163149652,538970637,1163010080,1380930643,926026053,741487660,741617969,154547760,758843917,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,221064493,1230131210,1380275278,1230328096,1162499141,168632404,990514491,1413829408,153112661,154864141,1696604192,1948935027,542258745,1702037769,1952671084,2016819488,1885615673,990514537,538976265,711160677,842609012,151593042,1701602675,824210531,829960761,1885614649,990514537,538976265,711160677,942813556,153113392,1818587913,544498533,2016557361,1885615673,990514537,538976265,711160677,151601522,1918989427,1919361140,1768452193,1629516643,1969430644,1852142194,1969430644,1919906674,1936683040,1869182057,990514542,1095911200,1128876112,168632403,538970427,1668506912,1126195754,1414419791,1142970144,222385217,1377843978,1330926405,168641874,538970427,1668506912,155349546,1684956425,1634887456,1667852400,990514547,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,538970637,1229342020,1142965582,742478913,223825746,537529610,1397310496,1497451600,1162104653,892089376,741552428,538982705]},{"sector":7,"data":[153100320,990447881,808596256,808465016,909713440,1681275256,168651120,538976288,1431586131,926031952,741487660,741749041,892090165,842542132,741814828,824980020,908866609,538976309,538976288,538976288,538976288,538976288,538976288,168632352,538976288,1346458183,1396918600,741814816,959197748,1329802296,743722581,1143748408,541152321,538976288,538970637,1380982816,1112821321,1394628687,875316308,1378628396,1413567567,537529669,1377837088,1330926405,840975698,842279991,875639084,221656620,537529610,1397310496,1497451600,1162104653,824981024,538970420,151587104,908081929,846737460,824193072,964178489,1768973366,538970637,1163075616,542135636,875312946,825306162,959720500,741356844,875312693,859319352,741814828,824980020,908866609,537529653,1193287712,1213219154,542327625,875312946,943270962,1431257900,942429262,1094986807,538984788,220209184,538976266,1230131232,1329747022,1414733912,741485636,537529650,1377837088,1330926405,840975698,842279991,875639084,221656620,168632330,1229201440,1095520339,1146047833,892411973,154546476,153100320,990447881,808728096,808792952,842608928,1681275256,168651120,538976288,1431586131,926031952,741487660,741617969,892090676,909454384,741880876,841757496,842279991,875639084,221591084,538976266,1095911200,1128876112,926031955,741487660,1126971449,1414419791,741816364]},{"sector":8,"data":[1096040772,538976288,537529632,1344282656,1414416722,542658370,742675539,540093490,220209184,538976266,1397051936,1163022164,741814816,824980020,908866609,218762550,1142956042,1280332617,1330469185,824198468,942746679,538976265,151587081,875962427,942962736,959520816,909735986,225013860,538976266,1413829408,840978517,842279991,875639084,741946412,892088373,942943286,741554220,875312946,825306162,892742708,538970637,1380392992,1229475905,840979267,842279991,741882156,1314213699,926428244,1413563436,538976321,168632352,538976288,1313428048,1481589332,1146376992,824980012,538976288,538976288,220209184,538976266,1397051936,1163022164,741814816,824980020,908866609,990514486,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,1380977165,1163152969,1431380050,1247036745,1280332869,168645461,990514491,1413829408,153112661,154864141,1696604192,1948935027,542258745,1702037769,1952671084,2016819488,1885615673,990514537,538976265,711160677,842609012,151593042,1701602675,824210531,829960761,1885614649,990514537,538976265,711160677,942813556,153113392,1818587913,544498533,2016557361,1885615673,990514537,538976265,711160677,151601522,1918989427,1919361140,1768452193,1629516643]},{"sector":9,"data":[1969430644,1852142194,1969430644,1919906674,1936683040,1869182057,990514542,1095911200,1128876112,168632403,538970427,1668506912,1126195754,1414419791,1142970144,222385217,1377843978,1330926405,168641874,538970427,1668506912,155349546,1684956425,1634887456,1667852400,990514547,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,538970637,1229342020,1142965582,742478913,223825746,537529610,1397310496,1497451600,1162104653,892089376,741552428,538982705,153100320,990447881,808596256,808465016,2016819488,1885615673,537529705,1394614304,1347769413,741814816,824980020,892089905,875899959,741488684,875312946,825306162,892742708,538970637,1380392992,1229475905,840979267,842279991,741882156,1314213699,926428244,1413563436,538976321,168632352,538976288,1313428048,1481589332,1146376992,858534956,1414484524,222647361,538976266,1397051936,1163022164,741814816,824980020,908866609,218762550,1142956042,1280332617,1330469185,908084548,154415404,153100320,990447881,808728096,808465016,2016819488,1885615673,537529705,1394614304,1347769413,741814816,824980020,892089905,875899959,741488684,875312946,825306162,892742708,538970637,1380392992,1229475905,840979267,842279991,741882156,1314213699]},{"sector":10,"data":[926428244,1413563436,538976321,168632352,538976288,1313428048,1481589332,1146376992,824980524,1414484524,541414465,538976288,538976288,538970637,1163010080,1380930643,926031941,741487660,741617969,168638006,537529632,1397310496,1497451600,1162104653,741683488,537474609,151592992,540739849,2016425014,540030259,2016557361,1885615673,537529705,1394614304,1347769413,741814816,824980020,875312177,808791097,741750060,942422068,926034995,741487660,741617969,168637750,538976288,1346458183,1396918600,741814816,959197748,1329802296,743722581,1143748408,541152321,538976288,538970637,1380982816,1112821321,1394628687,875316308,538981164,538976288,538976288,537529632,1377837088,1330926405,840975698,842279991,875639084,221656620,537529610,1397310496,1497451600,1162104653,741814560,537475121,151592992,540739849,2016425014,540031028,964179513,1768973366,538970637,1163075616,542135636,875312946,825306162,926231606,741618988,841757240,842279991,875639084,221591084,538976266,1095911200,1128876112,926031955,741487660,1126971449,1414419791,741816364,1096040772,538976288,537529632,1344282656,1414416722,542658370,742675539,540159026,538976288,538976288,168632352,538976288,1414743378,541413967,875312946,825306162,909519924,758843917,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405]},{"sector":11,"data":[757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,221064493,1230131210,1380275278,1196773920,1464091975,1163151698,990514514,540740109,1431586131,218701904,537475850,1936007200,963914339,153113136,1818587913,544498533,1885614137,990514537,538976265,711160677,808989044,151593042,1701602675,824210531,1885614136,990514537,538976265,644051813,155722593,1987013897,1969430629,1919251314,1936683040,1869182057,1763716206,1701060718,1869637987,1937010281,990514478,538976265,711160677,155267442,1635021577,1730180210,1752195442,544433001,1663071329,1701999221,1663071342,1869836917,1869619314,1769236851,221146735,1193294602,1213219154,542327625,154864141,1696604192,1646945139,1431257888,1461736526,1413563424,990514497,1397051936,1163022164,154864141,1696604192,1915380595,1695091010,1730176110,1752195442,225665897,757938954,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,168635693,1162092576,1162758470,1413563401,1330785345,218762583,1142956042,1280332617,1330469185,873022788,824980780,959523891,538976288,151587104,857750281,846737458,824193072,1885614136,537529705,1394614304,1347769413,741814793,824980020,875312689,909454393,741880876,841757240,942877751]},{"sector":12,"data":[741816620,892090676,875899952,741880876,841757239,842279991,875639084,741946412,168637750,538976288,1346458183,1396918600,741814793,959197748,1329802296,743722581,1143748408,541152321,538976288,538970637,1380982816,1112821321,1393121359,875316308,1378628396,1413567567,537529669,1377837088,1330926405,839468370,842279991,875639084,909520940,218762505,1142956042,1280332617,1330469185,906577220,540291372,538976288,538976288,151587104,908081929,846737460,824193072,1885614136,537529705,1394614304,1347769413,741814793,824980020,875312689,909454393,741880876,841757240,942877751,741816620,892090676,875899952,741880876,841757239,842279991,875639084,741946412,168637750,538976288,1346458183,1396918600,741814793,959197748,1329802296,743722581,1143748408,541152321,538976288,538970637,1380982816,1112821321,1393121359,875316308,1378628140,1413567567,537529669,1377837088,1330926405,839468370,842279991,875639084,909520940,218762505,1142956042,1280332617,1330469185,822691140,909192245,538976265,151587081,875962427,892565552,958406704,1768973360,538970637,1163075616,156259668,875312946,825306162,926231606,741880876,841757240,942877751,741816620,892090676,859122737,741488428,875312946,825306162,959720500,221591084,538976266,1095911200,1128876112,926026067,741487660,1126971449,1414419791,741816364,1096040772,538976288]},{"sector":13,"data":[537529632,1344282656,1414416722,156782402,742675539,741420082,1096044370,168641876,538976288,1414743378,155537999,875312946,825306162,909126708,168626486,538970637,1347635524,1297695052,155534415,824981297,538970424,151587104,908081929,880291892,538980408,1680881713,168651120,538976288,1431586131,926026064,741487660,741749041,892090676,942943286,741488684,858535730,926493752,741815596,875311925,842476600,741814828,824980020,875312177,892742713,538970637,1380392992,1229475905,839471939,842279991,741882156,1314213699,926428244,1413563436,538976321,168632352,538976288,1313428048,1481589332,1146376969,841757228,1414484524,222647361,538976266,1397051936,1163022164,741814793,824980020,808203313,218707510,757938954,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,168635693,1313428048,542262612,1195857234,1381450821,1380275273,1162103127,221973005,1394621194,1347769413,168626464,538970427,1668506912,809071658,151593042,1701602675,958428259,1768973360,154864141,1696604192,1948935027,1378891825,1929972000,1667591269,942743668,1768973360,154864141,1696604192,1629905779,151603235,1702260589,1920295712,544367987,1769172848,1852795252,1852383276,1667589152,1768910953,779318382,154864141]},{"sector":14,"data":[1696604192,1915380595,151601457,1918989427,1919361140,1768452193,1629516643,1969430644,1852142194,1969430644,1919906674,1936683040,1869182057,168636014,1380393019,1229475905,220222275,537475850,1936007200,543304291,1314213699,542580820,1096040772,540740109,1414743378,222646863,537475850,1936007200,1114778211,1852115209,1919361124,1768452193,168653667,757935419,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,537529645,1178944544,155536969,1096040772,1464816172,168626701,1229201440,1095520339,1146047833,741607749,858860597,540619052,538976288,151587081,842211387,808613936,809050160,225013860,538976266,1413829408,839471189,842279991,909193516,741815596,942422068,926034994,741880620,875312953,892677177,741946412,925644852,926034994,741487660,741617969,908867892,537529653,1193287712,1213219154,156451657,875312946,943270962,1431257900,942429262,1094986807,538984788,220209184,538976266,1230131232,1329747022,1414728024,741616708,1330785331,1163149652,538970637,1163010080,1380930643,926026053,741487660,741617969,154547760,168626701,1229201440,1095520339,1146047833,741738821,538981425,538976288,538976288,151587081,875962427,808613936,809050160,225013860,538976266,1413829408,839471189]},{"sector":15,"data":[842279991,909193516,741815596,942422068,926034994,741880620,875312953,892677177,741946412,925644852,926034994,741487660,741617969,908867892,537529653,1193287712,1213219154,156451657,875312946,943270962,1431257900,942429262,1094986807,538984788,220209184,538976266,1230131232,1329747022,1414728024,741616708,1330785329,1163149652,538970637,1163010080,1380930643,926026053,741487660,741617969,154547760,168626701,1229201440,1095520339,1146047833,892406085,154546476,153100320,990447881,808728096,808792952,809050144,225013860,538976266,1413829408,839471189,842279991,909193516,741815596,942422068,926034994,741880620,892090169,942943280,741684524,925644852,926034994,741487660,741617969,908867892,537529653,1193287712,1213219154,156451657,875312946,943270962,1431257900,942429262,1094986807,538984788,220209184,538976266,1230131232,1329747022,1414728024,741485636,1330785329,1163149652,538970637,1163010080,1380930643,926026053,741487660,741617969,154547760,168626701,1229201440,1095520339,1146047833,925960517,154677548,153100320,990447881,808728096,808989816,942743584,1768973360,538970637,1163075616,156259668,875312946,825306162,959720502,741750060,942422068,926034994,741880620,892090169,926231600,741684524,925644852,926034994,741487660,741617969,908867892,537529653,1193287712,1213219154,156451657,875312946]},{"sector":16,"data":[943270962,1431257900,942429262,1094986807,538984788,220209184,538976266,1230131232,1329747022,1414728024,741485636,1330785330,1163149652,538970637,1163010080,1380930643,926026053,741487660,741617969,154547760,758843917,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,221064493,1230131210,1380275278,1229476896,1162496846,168632404,990514491,1413829408,153112661,154864141,1696604192,1915380595,1395668022,1702037769,1952671084,1681275168,168651120,538970427,1668506912,842101290,156446776,1818587913,544498533,1681013041,168651120,538970427,1668506912,155284010,1635021577,1730180210,1752195442,544433001,1663071329,1701999221,1663071342,1869836917,1869619314,1769236851,221146735,1193294602,1213219154,542327625,154864141,1696604192,1646945139,1431257888,1461736526,1413563424,990514497,1397051936,1163022164,154864141,1696604192,1915380595,1695091010,1730176110,1752195442,225665897,757938954,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,168635693,1162092576,1162758470,1413563424,1330785345,218762583,1142956042,1280332617,1330469185,874530116,824980780,959523891]},{"sector":17,"data":[538976288,151587104,857750281,846737458,824193072,964178489,1768973366,538970637,1163075616,542135636,875312946,825306162,959720500,741356844,875312693,859319352,741814828,824980020,908866609,537529653,1193287712,1213219154,542327625,875312946,943270962,1431257900,942429262,1094986807,538984788,220209184,538976266,1230131232,1329747022,1414733912,741616708,537529650,1377837088,1330926405,840975698,842279991,875639084,221656620,537529610,1397310496,1497451600,1162104653,824981024,538970420,151587104,908081929,846737460,824193072,964178489,1768973366,538970637,1163075616,542135636,875312946,825306162,959720500,741356844,875312693,859319352,741814828,824980020,908866609,537529653,1193287712,1213219154,542327625,875312946,943270962,1431257900,942429262,1094986807,538984788,220209184,538976266,1230131232,1329747022,1414733912,741485636,537529650,1377837088,1330926405,840975698,842279991,875639084,221656620,537529610,1397310496,1497451600,1162104653,741683488,537474609,151592992,540739849,2016425014,540030259,2016557361,1885615673,537529705,1394614304,1347769413,741814816,824980020,875312177,808791097,741750060,942422068,926034995,741487660,741617969,168637750,538976288,1346458183,1396918600,741814816,959197748,1329802296,743722581,1143748408,541152321,538976288,538970637,1380982816,1112821321,1394628687]}],[{"sector":1,"data":[841761876,538980652,538976288,538976288,537529632,1377837088,1330926405,840975698,842279991,875639084,221656620,537529610,1397310496,1497451600,1162104653,741814560,537475121,151592992,540739849,2016425014,540031028,2016557361,1885615673,537529705,1394614304,1347769413,741814816,824980020,875312177,808791097,741750060,942422068,926034995,741487660,741617969,168637750,538976288,1346458183,1396918600,741814816,959197748,1329802296,743722581,1143748408,541152321,538976288,538970637,1380982816,1112821321,1394628687,841761876,538980652,538976288,538976288,537529632,1377837088,1330926405,840975698,842279991,875639084,221656620,757938954,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,168635693,1313428048,542262612,1346458183,1396918600,1162368044,1279348050,538976288,891304763,741487921,808596512,874523697,674377778,740893240,808596768,808463665,574105650,891300905,741486642,825766688,151653682,538970377,993730592,808596512,874523703,741879858,875640096,218762544,538976266,1632444475,1970104696,1917853805,544501353,1952737655,941636200,537529634,540745760,1769107272,1953394554,1109421153,540690768,540029489,1444945952,1769239141,543973731,977883202,221394720,538976266]},{"sector":2,"data":[1163075643,542135636,1952543827,1852140901,1663071092,1635020399,1948282473,1713399144,1869376623,1735289207,1668506912,543518817,1970365811,1701015141,168639091,991961120,840966176,825568311,540291628,1702043709,1768693876,1931502958,1768120688,1948280686,875700335,909193775,538970637,1193294624,1213219154,542327625,1952543827,1852140901,1965060980,1159751027,572539731,1998594636,543716457,543516788,1953718636,1870099488,1954112032,1646293861,1735289189,538970637,538983200,543516788,1635017060,1970234144,673215598,746024812,1751607656,218762537,1142956042,1280332617,1330469185,874530116,824980780,959523891,538976288,540752672,2016424499,540028978,775299134,947397175,539113774,1635020658,224683380,538976266,1413829408,840986741,825568311,221524524,538976266,1095911200,1128876112,842211411,741487404,858534451,842214450,741487404,925644594,1330392118,1431257943,1210864718,1128810313,1414419791,538970637,1380982816,1112821321,1394628687,875316308,1378628140,1413567567,537529669,1344282656,1414416722,542658370,742671180,741485618,1096044370,168641876,538970637,1347635524,1297695052,541410383,875637814,538976265,908081979,846737460,1042296880,925775392,775452706,1914708537,1952543855,168649829,538976288,1968457043,926031984,741422380,168637490,538976288,1346458183,1396918600,741487392,858534451,842214450,741487404,841757235]},{"sector":3,"data":[909585463,1464814636,1314213699,1229466708,1329809479,223628885,538976266,1230131232,1329747022,1414733912,741616708,1330785329,1163149652,538970637,1380982816,1112821321,1277188175,841761859,1378627884,1413567567,218762565,1142956042,1280332617,1330469185,824198468,909192245,538976265,908081979,863514676,1042296885,942552352,775452706,1914708537,1952543855,168649829,538976288,1968457043,926031984,741422380,168637490,538976288,1346458183,1396918600,741487392,858534451,842214450,741487404,858534451,926034994,741750572,1129795404,1414419791,1195984940,1431257928,168645710,538976288,1313428048,1481589332,1146376992,824980012,1414484524,222647361,538976266,1230131232,1329747022,1129062488,538970436,991961120,1129324603,1852785455,1953654134,1701601897,1701798944,1948741235,1886745376,1953656688,1701344288,1830839667,1936024687,168626701,1229201440,1095520339,1146047833,925966405,154677548,991961120,875962427,942962736,540942384,947397176,539113774,1635020658,224683380,538976266,1413829408,840986741,825568311,221524524,538976266,1095911200,1128876112,926031955,741750572,1129795404,1414419791,1195984940,1431257928,168645710,538976288,1313428048,1481589332,1146376992,824980012,1414484524,222647361,538976266,1230131232,1329747022,1129062488,538970436,991961120,1129324603,1852785455,1953654134,1701601897,1701798944,1948741235,1886745376]},{"sector":4,"data":[1953656688,1701344288,1830839667,1936024687,758843917,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,168635693,1313428048,542262612,1330401091,151599186,538976288,540752672,842543413,1498235680,1651069472,225341282,537529610,540745760,1769496909,544044397,1852404304,1769414772,979924068,220346400,538976266,1866997819,1870293362,1818326126,1229996576,909189178,1852383288,825897248,1886609696,544498533,1769234802,824192111,1763717172,976560238,1935745078,1952671088,1952543264,168652649,991961120,1919243808,1633905012,1346510956,941636169,537529652,540745760,1431586131,1951604816,1835365473,1937010277,1852793632,1852399988,1701344288,1819239968,1769434988,1696622446,1885430643,1702043749,1852142961,980641123,538970637,538983200,741814816,824979765,540876852,544499059,1701734764,1634759456,1735289187,544175136,825177137,168637492,991961120,840966176,825306167,811281456,542978428,540024893,1937007987,1886609696,544498533,1769234802,1869881455,909784352,540090412,1937007987,544500000,824209268,168636730,991961120,1095911200,1128876112,1951604819,1835365473,1937010277,1702065440,1129530656,575414816,1953068832,1752440936,1634476133,1948284019,1646292855,1936028793,1768251936,168650606,991961120]},{"sector":5,"data":[1752440864,1633951845,1663066484,1953396079,1869359136,1768434807,220817511,537529610,1280262944,1163088463,1413694796,841767200,842083383,538970417,991961120,1702436923,2003790956,1851875872,537529700,1280262944,1163088463,1413694796,841764128,808528951,538970425,991961120,1634541627,1953391975,1633820769,168649838,1329799200,1397903180,1128614981,742596692,959199026,538970425,991961120,2036539451,1646292577,224685665,1126178826,1380928591,1162626387,1109414979,741814828,537475129,538976288,1646279483,1801675116,1851875872,151653732,538970377,991961120,151653691,538970377,991961120,1866866747,2003790956,543649385,658655058,1701978227,1936028272,544501349,543516788,1936877926,909189236,151587341,538976265,993730592,1919120160,544105829,1869377379,221148018,151587082,538976288,540752672,1163019091,1126190661,1380928591,538976265,1313428048,1329799252,223498060,151587082,538976288,540752672,757935405,757935405,757935405,538976265,757935405,757935405,221064493,1126178826,1380928591,1313428048,741351508,741354544,538970434,991961120,1279402043,155927361,538976265,1128352834,537529675,1280262944,1380995663,542395977,741354544,1126969908,538976265,993730592,1431061024,537463109,1497571360,168644161,1329799200,1347571532,1414416722,875311136,741354546,541273177,538976288,540752672,1162170951,537463118,1380392992,223233349]},{"sector":6,"data":[1126178826,1380928591,1313428048,741351508,875311668,155397170,538976288,540752672,1312905539,538970377,1096368928,537529678,1280262944,1380995663,542395977,808202804,1496068140,538987820,538976288,1377844027,151602245,1377837088,168641605,1329799200,1347571532,1414416722,741487648,842279984,1294746412,538976288,540752672,1347573072,151602508,1344282656,1280332373,537529669,1280262944,1380995663,542395977,841757236,741354545,742599769,538976333,1109408571,1314344786,538970377,1330790944,168644183,1329799200,1347571532,1414416722,741487648,875311668,538970418,991961120,1330389051,1213669463,155538505,1461723168,1163151688,1330522144,1313425492,168634695,1329799200,1347571532,1414416722,741421600,841756978,541207601,538976288,540752672,1497715271,538970377,1095516704,168643395,1329799200,1347571532,1414416722,741421600,908865842,541273139,538976288,540752672,1212631368,1431061024,538970437,1096368928,537529678,1280262944,1380995663,542395977,908865842,825371699,1126979884,538976288,1210071867,541607753,1162170951,538970446,1163020064,168644165,1329799200,1347571532,1414416722,741421600,908866358,541273139,538976288,540752672,1212631368,1096368928,538970446,1096368928,537529678,1280262944,1380995663,542395977,841757494,825371697,1294752044,538976288,1210071867,541607753,155469138,1377837088,168641605,1329799200,1347571532]},{"sector":7,"data":[1414416722,741553696,908865842,541928499,538976288,540752672,1162297677,541152334,538976265,1162297677,222385230,1126178826,1380928591,1313428048,859185236,741553708,1496068402,538976288,993730592,1279613216,156716876,538976265,1280066905,168646479,1329799200,1347571532,1414416722,741553696,908866358,538970419,991961120,1229463611,1461733447,1163151688,538976265,1414088791,1311252549,1229476943,220809038,537529610,1280262944,1380995663,542395977,875311668,741354546,538970457,991961120,1750343739,1931506537,1702125940,1953391981,1885433120,1752440947,2032279653,1869376613,1763713655,1195581550,151653697,538970377,991961120,1881153595,1952803937,807429492,544175136,1819043193,168654703,537463049,538976288,168639291,1229201440,1095520339,1146047833,741613637,858860597,540619052,538976288,993730592,808596256,808465016,538970637,1163075616,542135636,892090162,875637809,741814828,741355825,538976304,1629502267,1667592307,1634869364,544172404,976560189,537529654,1193287712,1213219154,542327625,858534451,842214450,741487404,925644594,1330392118,1431257943,1210864718,1128810313,1414419791,538970637,1380982816,1112821321,1394628687,875316308,1378628140,1413567567,537529669,1397310496,1497451600,1162104653,824981024,538970420,538976288,908081979,846737460,168636464,538976288,1413829408,840978517,825568311,741617964,824981298]},{"sector":8,"data":[808202289,993730592,1886609696,544498533,1769234802,540876911,221657653,538976266,1380392992,1229475905,857756483,842214450,741487404,841757235,909585463,1464814636,1314213699,1229466708,1329809479,223628885,538976266,1380982816,1112821321,1394628687,875316308,1378627884,1413567567,537529669,1397310496,1497451600,1162104653,741683488,537474609,538976288,540752672,2016425014,221263155,538976266,1163075616,542135636,892090162,875637809,741814828,741355825,991961137,1935745083,1952671088,1952543264,1025535849,825897248,538970637,1193287712,1213219154,542327625,858534451,842214450,741487404,925644594,1330392118,1431257943,1210864718,1128810313,1414419791,538970637,1344282656,1414416722,542658370,742675539,741420083,1096044370,168641876,1229201440,1095520339,1146047833,925966405,154677548,538976288,993730592,808728096,808989816,538970637,1394614304,1347769413,741814816,824979765,926034996,808530220,538980652,1629502267,1667592307,1634869364,544172404,976298045,537529649,538976288,1346458183,1396918600,741487392,858534451,842214450,741814828,1277965879,1329813327,743722581,1212631368,1314213699,537529684,538976288,1313428048,1481589332,1146376992,824980012,758843917,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405]},{"sector":9,"data":[757935405,757935405,757935405,168635693,1313428048,542262612,1330401091,151598162,538976288,540752672,842543413,1111970336,1651069472,225341282,537529610,540745760,1769496909,544044397,1852404304,1769414772,979924068,220346400,538976266,1866997819,1870293362,1818326126,1229996576,909189178,1852383288,825897248,1886609696,544498533,1769234802,824192111,1763717172,976560238,1935745078,1952671088,1952543264,168652649,991961120,1919243808,1633905012,1346510956,941636169,537529652,540745760,1431586131,1951604816,1835365473,1937010277,1852793632,1852399988,1701344288,1819239968,1769434988,1696622446,1885430643,1702043749,1852142961,980641123,538970637,538983200,741814816,824979765,540876852,544499059,1701734764,1634759456,1735289187,544175136,825177137,168637492,991961120,840966176,825306167,811281456,542978428,540024893,1937007987,1886609696,544498533,1769234802,1869881455,909784352,540090412,1937007987,544500000,824209268,168636730,991961120,1095911200,1128876112,1951604819,1835365473,1937010277,1702065440,1129530656,575414816,1953068832,1752440936,1634476133,1948284019,1646292855,1936028793,1768251936,168650606,991961120,1752440864,1633951845,1663066484,1953396079,1869359136,1768434807,220817511,537529610,1280262944,1163088463,1413694796,841765408,842083383,538970417,991961120,1701978171,1633820772,168649838,1329799200,1397903180]},{"sector":10,"data":[1128614981,742858836,824981298,537475376,538976288,1730165563,1852138866,1851875872,537529700,1280262944,1163088463,1413694796,841761312,960048183,538976265,993730592,1970037280,1633820773,168649838,1329799200,1397903180,1128614981,743972948,959199026,538970424,991961120,1818370107,543908705,1684955490,151587341,538976265,993730592,151587341,538976265,993730592,1819231776,1769434988,1377855342,1931952711,1885696544,1702061426,1948284014,1713399144,1953722985,221655328,151587082,538976288,540752672,1701995379,1663069797,1919904879,168636019,537463049,538976288,1394621243,1162170947,1329799246,156389196,1344282656,1414416722,1280262944,168645199,537463049,538976288,757087035,757935405,757935405,153955629,757080096,757935405,757935405,168635693,1329799200,1347571532,1414416722,808202272,1479290924,538976265,993730592,1095516704,151604035,1109401632,1262698828,538970637,1330401091,1230131282,807425102,875311148,155331634,538976288,540752672,1163217986,538970377,1431061024,537529669,1280262944,1380995663,542395977,842279984,1194078252,538976265,993730592,1163020064,151604805,1193287712,1313162578,538970637,1330401091,1230131282,807425102,741487660,1110192692,538976265,993730592,1096368928,537463118,1279402016,168641877,1329799200,1347571532,1414416722,741487648,741354544,538970450,991961120,1163010107,537463108,1163010080]},{"sector":11,"data":[537529668,1280262944,1380995663,542395977,808202804,741487660,538970450,991961120,1431314491,1162629202,538970377,1145393696,538970637,1330401091,1230131282,874533966,825371698,1479290924,538976265,993730592,1330790944,151604823,1109401632,1262698828,538970637,1330401091,1230131282,874533966,842279986,154285100,538976288,540752672,542592844,1414088791,538970437,1229477664,673203540,1213484878,692538953,538970637,1330401091,1230131282,840979534,825371697,741421612,538976344,991961120,1380393019,151607621,1109401632,1262698828,538970637,1330401091,1230131282,840979534,825371697,741553708,538976322,991961120,1229463611,1109411911,155538764,1109401632,222647628,1126178826,1380928591,1313428048,825368660,741553708,1194078514,538976288,993730592,1195984928,1380393032,156124485,1193287712,1313162578,538970637,1330401091,1230131282,840979534,859188273,741553708,538976322,991961120,1229463611,1126189127,156123481,1109401632,222647628,1126178826,1380928591,1313428048,859185236,741421612,1378627890,538976288,993730592,1195984928,1163010120,538970436,1145393696,538970637,1330401091,1230131282,908088398,825371699,741553708,538976338,991961120,1095573563,1414415687,537468993,1163010080,537529668,1280262944,1380995663,542395977,908866358,825371699,538976265,993730592,1279613216,156716876,538976265,1414088791,1311252549,1229476943]},{"sector":12,"data":[220809038,1126178826,1380928591,1313428048,859185236,741553708,537473846,538976288,1210071867,541607753,1414088791,538970437,1229477664,673203540,1213484878,692538953,168626701,1329799200,1347571532,1414416722,741487648,808202804,537477676,538976288,1411398459,544434536,1952543859,1852140901,1634541684,1948283760,572548456,1819043193,539129711,1126198889,168640839,537463049,538976288,538983227,1701601648,543519860,1869881392,1970037280,1935745125,1935767328,1852793888,1852383333,151587341,538976265,993730592,1981816864,1769173605,544435823,1193305711,1213219154,223560521,151587082,538976288,221985568,1142956042,1280332617,1330469185,874530116,824980780,959523891,538976288,991961120,842211387,808613936,537529648,1394614304,1347769413,741814816,824979765,926034996,808530220,538980396,540752672,1701868385,1914729571,1869182049,891305248,168638010,538976288,1346458183,1396918600,741487392,858534451,842214450,741814828,1277965879,1329813327,743722581,1212631368,1314213699,537529684,1344282656,1414416722,542658370,742675539,741485620,1096044370,168641876,1229201440,1095520339,1146047833,741744709,537474097,538976288,540752672,2016425014,221261874,538976266,1163075616,542135636,892090162,875637809,741814828,741355825,991961136,1935745083,1952671088,1952543264,1025535849,909784352,538970637,1193287712,1213219154,542327625]},{"sector":13,"data":[858534451,842214450,741487404,925644594,1330392118,1431257943,1210864718,1128810313,1414419791,538970637,1344282656,1414416722,542658370,742675539,741420084,1096044370,168641876,1229201440,1095520339,1146047833,892411973,154546476,538976288,993730592,808728096,808792952,538970637,1394614304,1347769413,741814816,824979765,926034996,808530220,538980652,1629502267,1667592307,1634869364,544172404,976298045,537529649,538976288,1346458183,1396918600,741487392,858534451,842214450,741814828,1277965879,1329813327,743722581,1212631368,1314213699,537529684,538976288,1313428048,1481589332,1146376992,824980268,1414484524,222647361,1142956042,1280332617,1330469185,824198468,942746679,538976265,991961120,875962427,942962736,537529648,538976288,1431586131,926031952,741422380,841757745,825306167,540093488,540752672,1701868385,1914729571,1869182049,824196384,168636730,538976288,1095911200,1128876112,842211411,741487404,858534451,926034994,741750572,1129795404,1414419791,1195984940,1431257928,168645710,538976288,1230131232,1329747022,1414733912,741485636,990514481,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,221064493,1230131210,1380275278,1095911200,1128876112,1145657171,538976325,874527547]},{"sector":14,"data":[674377778,892220209,539765026,825242165,842018861,775106856,220799541,537529610,540745760,1769496909,544044397,1852404304,1769414772,979924068,775106848,168632885,991961120,1919895584,1852799593,543973748,977883202,808595744,538976288,1953654102,1818321769,1229996576,842473530,538970637,1394621216,1347769413,1635013408,1701668212,544437358,1953394531,544106849,543516788,1819045734,1852405615,1936007271,1701863779,1902474016,1668179317,221934437,538976266,538976315,942421810,741420088,540357938,1852121149,1701601889,775106848,1881154101,1953393010,224882281,538976266,538976315,892090162,875703345,1931492640,1814066277,543518313,1667330163,543649385,840986484,825372468,537529654,540745760,926031904,741422380,1025521713,1952805664,1852402720,1886593125,1852400481,1869881447,792211744,540422450,808596264,808465016,1146047776,1327518533,559500366,168634657,991961120,1095911200,1128876112,1951604819,1835365473,1937010277,1702065440,1129530656,575414816,1953068832,1752440936,1634476133,1948284019,1646292855,1936028793,1768251936,168650606,991961120,1752440864,1633951845,1663066484,1953396079,1869359136,1768434807,220817511,537529610,1397310496,1497451600,1162104653,892089376,741552428,538982705,991961120,842211387,808613936,540936496,925773873,775452706,1847599667,1915580015,1952543855,168649829,538976288,1968457043,926031984]},{"sector":15,"data":[741881900,892480561,926034997,741422380,168638513,538976288,1346458183,1396918600,741814816,1277965879,1329813327,743722581,1212631368,1314213699,537529684,1344282656,1414416722,542658370,742675539,221457460,537529610,1397310496,1497451600,1162104653,824981024,538970420,993730592,808728096,808465016,1931488544,543518049,1713402721,941650543,1919950882,1769238121,168650606,538976288,1968457043,926031984,741881900,892480561,926034997,741422380,168637490,538976288,1346458183,1396918600,741814816,1277965879,1329813327,743722581,1212631368,1314213699,537529684,1344282656,1414416722,542658370,742675539,741420084,1096044370,168641876,538970637,1347635524,1297695052,541410383,824980785,538970422,993730592,808728096,808792952,824196640,574041649,775369080,1914708536,1952543855,168649829,538976288,1968457043,926031984,741881900,892480561,926034997,741422380,168637490,538976288,1346458183,1396918600,741814816,1277965879,1329813327,743722581,1212631368,1314213699,537529684,1344282656,1414416722,542658370,742675539,741485620,1096044370,168641876,538970637,1347635524,1297695052,541410383,824981297,538970424,993730592,808728096,808989816,824196640,829956658,574107191,1953460768,1684370529,538970637,1163075616,544240980,942421810,741420088,741684530,892090162,875703345,538970637,1380392992,1229475905,840979267,909585463]},{"sector":16,"data":[1464814636,1314213699,1229466708,1329809479,223628885,538976266,1230131232,1329747022,1414733912,741551172,1330785330,1163149652,758843917,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,168635693,1313428048,542262612,1330401091,151597394,538976288,991961120,825565243,1998598712,543716457,1667329122,1769087083,1852793442,168626701,991961120,2019642656,1836412265,1769099296,1998615662,1752458345,574103610,538970637,1210071840,2053730927,1635020399,1346510956,824195657,1763719222,976298094,1935745073,1952671088,1952543264,539783017,540030001,891317865,1629500986,1667592307,1634869364,225405300,538976266,1700143163,1667855474,1109421153,540690768,168637496,991961120,1413829408,1394626645,1702125940,1953391981,1868767347,1767994478,1752440942,1868963941,2003790956,543649385,1633907557,1931502960,1702195557,1936024430,537529658,540745760,926031904,741422380,1025520689,1952805664,1852402720,1886593125,1852400481,1869881447,791949600,221525041,538976266,538976315,824981298,1529622577,1563524144,807419168,1952805664,1935745139,1952671088,1952543264,1948282729,976560239,824192054,1952805664,1953046643,544175136,221329969,538976266,1380393019,1229475905,1394627395,1702125940,1953391981,1937055859,1397039205]},{"sector":17,"data":[1277304899,1769414690,1948280948,1814062440,544502625,544175988,1702132066,1700929651,224882281,538976266,1948262459,1679844712,543257697,1853189987,1814569076,1747744623,694708073,168626701,1094983712,1145129810,1414747466,151597088,538976288,540745760,1701080899,1881170208,1953067887,543520361,1651340654,1948283493,1768693871,1702127719,151653742,538970377,538976288,1881153595,1953393010,778530409,1735742240,1953719655,1981834341,1702194273,824196384,218762544,1142956042,1280332617,1330469185,874530116,824980780,959523891,538976288,991961120,842211387,808613936,537529648,1394614304,1347769413,741814816,824979765,926034996,808530220,538980396,540752672,1701868385,1914729571,1869182049,891305248,168638010,538976288,1346458183,1396918600,741487392,858534451,842214450,741487404,841757235,909585463,1464814636,1314213699,1229466708,1329809479,223628885,538976266,1230131232,1329747022,1414733912,741616708,1330785330,1163149652,538970637,1380982816,1112821321,1277188175,841761859,1378628140,1413567567,218762565,1142956042,1280332617,1330469185,908084548,154415404,538976288,993730592,808728096,808465016,538970637,1163075616,542135636,892090162,875637809,741814828,741355825,991961136,1935745083,1952671088,1952543264,1025535849,909784352,538970637,1380392992,1229475905,857756483,842214450,741487404,858534451,842214450,741814828]}],[{"sector":1,"data":[1277965879,1329813327,743722581,1212631368,1314213699,537529684,1344282656,1414416722,542658370,742675539,741420084,1096044370,168641876,538976288,1313428048,1481589332,1145261088,824980012,1414484524,222647361,537529610,1397310496,1497451600,1162104653,741683488,537474609,538976288,540752672,2016425014,221263155,538976266,1163075616,542135636,892090162,875637809,741814828,741355825,991961137,1935745083,1952671088,1952543264,1025535849,825897248,538970637,1193287712,1213219154,542327625,858534451,842214450,741487404,841757235,909585463,1464814636,1314213699,1229466708,1329809479,223628885,538976266,1380982816,1112821321,1394628687,858539092,1378627884,1413567567,537529669,538976288,1313428048,1481589332,1145261088,538976265,991961120,1129324603,1852785455,1953654134,1701601897,1701798944,1948741235,1886745376,1953656688,1701344288,1830839667,1936024687,168626701,1229201440,1095520339,1146047833,925966405,154677548,538976288,993730592,808728096,808989816,538970637,1394614304,1347769413,741814816,824979765,926034996,808530220,538980652,1629502267,1667592307,1634869364,544172404,976298045,537529649,538976288,1346458183,1396918600,741487392,858534451,842214450,741814828,1277965879,1329813327,743722581,1212631368,1314213699,537529684,538976288,1313428048,1481589332,1146376992,824980012,538970637,1344282656,1414416722,542658370]},{"sector":2,"data":[155468620,538976288,993730592,792940576,1986948931,1769239141,543517794,1936027492,544483182,1886418291,544502383,1936025716,1869422693,225666404,1027422986,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,990514493,537463049,1159733280,1864393838,1917853798,1818846831,990514533,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,222117181,436866314,1109411911,155538764,1109401632,222647628,1126178826,1380928591,1313428048,825368660,741553708,1194078514,538976288,993730592,1195984928,1380393032,156124485,1193287712,1313162578,538970637,1330401091,1230131282,840979534,859188273,741553708,538976322,991961120,1229463611,1126189127,156123481,1109401632,222647628,1126178826,1380928591,1313428048,859185236,741421612,1378627890,538976288,993730592,1195984928,1163010120,538970436,1145393696,538970637,1330401091,1230131282,908088398,825371699,741553708,538976338,991961120,1095573563,1414415687,537468993,1163010080,537529668,1280262944,1380995663,542395977,908866358,825371699,538976265,993730592,1279613216,156716876,538976265,1414088791,1311252549,1229476943]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[11426381,19,16646176,39387135,128,34930704,30,1]},{"sector":6,"data":[0,0,0,0,-1192457387,770179088,181975053,1375731898,2340944,465234000,-1207516029,-397407572,-998040742,-1522630654,695403780,-11485141,-1207700938,-397410302,-998045555,178182,61388880,178256,142338128,-1207516029,1156120577,108461825,-402360577,-998047425,1958742788,1354771209,-2096367128,1996423876,74907398,-2097050904,1048577220,1967063718,66775043,15746759,-163133881,-129579264,1183646634,1183666416,-706195216,79987481,61488768,-1608616960,-358481242,-263796989,1187461888,-1929123082,-1924075450,-397348794,-998041168,-1371635708,108331010,-402506264,1048576978,1962934958,-1572961433,1618280451,1342177976,1342417080,1342177720,-2096637720,-1070922044,70713168,112644,130541648,-1207516029,-1924136958,-397345210,-998045608,-28931580,-1276620648,46433048,1023297160,1006924889,-1966377650,1352203846,-2095538712,1312621252,722040064,669536448,46433035,-2147049496,175678,-85440908,1958742790,178239,61388880,112720,124250192,721863811,922702016,28836880,1458065408,113541895,1342177976,1342417080,1342177720,-2096675608,280495812,-672641024,46433034,-397361109,-998044978,1575324418,-326412861,-1847017421,1325356555,105284356,75399938,-1958120448,931858014,1966029952,24936681,736326975,922702016,28836870,-152547328,113541894,1342177976,1342417080,1342177720,-2096700184,-1070922044,137822032,112644]},{"sector":7,"data":[114550864,-1207516029,48955393,1566490667,-326412861,-402652488,1448545068,33441479,729475840,922702016,45614100,-1494724608,113541894,1342177976,1342417080,1342177976,-2096720664,314050244,669536256,46433034,33455747,113706612,66470,-771858805,108432355,-236441345,46433027,712294411,-1962892311,-472777122,-16353653,75098160,184730755,-385649472,1586167948,-1948003842,822019702,-2096891672,1191117508,71732222,2113816121,-25785543,1979967185,-399180026,-998041460,1342474498,-2097004824,-1073020220,1048621428,1950286502,-11015933,-771858805,108956643,126491019,-385702238,-2132213902,1958742791,68859953,45004880,379512912,721732739,922702016,45614070,-689418240,113541893,1342177976,1342417080,1342177976,-2096773912,1599997636,-1017256565,-1192457387,568852528,-800667894,1187453440,-1929196842,-1924083642,-397356986,-998041784,44474372,-777895892,-800667902,1187451136,-1929196842,-1924083642,-397356986,-998041816,-797016060,724333568,922702016,28836858,1726500864,113541893,1342177720,1342351032,1342177720,-2096802584,-1070922044,-130613424,-951653629,238086,-586758656,-1070923774,-97058992,112643,87025744,-1207516029,-1202716671,-1202715994,-397410303,-998046435,1354771206,66860799,1342177720,-2096821016,-1070922044,47364176,112720,83617872,-1207516029,-1202716670,-1202715736,-397410303,-998046487,-129594106,389081168,-956119933,1761660998]},{"sector":8,"data":[738371232,-767129536,-1981921651,1183700550,1183666424,1183666384,-1377283888,113541910,14450307,-1070898059,3604304,112644,77850704,-1979267965,-466951354,81258576,-1979530109,-466951610,80472144,721601667,922702016,28836866,2062045184,113541892,719406730,-1360506652,46433028,719341194,-1561833244,46433028,1342177976,1342417080,1342177720,-2096869144,-443873596,-1957313699,178412,-1928810520,-397345210,-998041766,-28931582,-1499316220,44480514,4843600,-1017256565,-1192457387,-1981284340,1354771208,66991871,1342177976,-2096886552,213386948,1183666176,-1645719308,79987460,1358186125,-2097015064,-1073020220,1183699829,-1363652364,-1712828414,1575324436,-326412861,-402581832,1586169924,25133060,721777722,21424576,-1432221814,-1572852734,1187447633,-955318038,55242822,1357530765,1357530765,-2095754264,2122319044,762577130,-11485141,-1207694282,-397410302,-998046831,178182,61388880,178256,58714192,-1207516029,-397410290,-998045934,-364460286,1187450880,-1929164048,-1924076986,-397350330,-998042360,-347683324,-364460476,44736521,1183334444,-364474900,-364475056,350939216,-150682493,268496966,-1070912140,171376464,178180,52947024,-1207516029,-1202716670,-1202715736,-397410302,-998046955,899078,111732816,-1207778173,-1924136278,1358916230,-2095860760,465044676,-2037559292,-397344918,-998042780,-129594108,355788880,-1929198461,-1979749754,-2037517754]},{"sector":9,"data":[1183448810,-364460044,1183670272,1183666424,1183666410,-1310174998,113541908,-18184566,-9796040,-1070912140,-197722288,178179,44296272,-1207516029,-1202716670,-1202715736,-397410302,-998047087,178182,103082064,-1207778173,-443875327,-1957313699,-390056980,1586169572,41910276,-1960676352,1346388163,-2097117464,-1073020220,28837236,-1961956608,1077937222,518224,721601667,1438866880,-1070338933,-2096713752,238654,113707124,932,1048790251,1946157990,1354771247,68695807,1342177976,-2097013528,45614788,-1464315904,45633539,182996992,113541890,1342182584,-2096783896,250282692,1342447032,1342353080,-2095945752,1996424388,45004804,307947600,1560593539,-326412861,-402650952,-11139516,904397942,46433044,1342457481,-2095927832,1183384260,45005054,312535120,-1996307325,2122577990,276761598,1115602955,66995851,1027668038,914227211,1342447544,1342353080,-2095953944,-1070922556,372703056,178180,25159760,-1207516029,-1202716670,-1202715736,-397410302,-998047379,1292294,1187478507,-352321284,-96010397,368737923,1586186109,-1870165254,-60912894,939816587,-1192856320,-1202715616,-397409618,-998043152,1354771204,66467583,1342177976,-2097075992,45614788,-1464315904,45633539,384323584,113541889,-352320584,-60912860,-2147191157,91430968,-352050760,-62455875,972965515,125697094,16402119,730983168,-443851072,-1957313699,4372716,-1207612440,-1924135902]},{"sector":10,"data":[-397346746,-998043256,44474372,-1913108856,-1202664378,-1924136952,-397346746,-998042714,1975520006,-364475090,45922384,291432528,-1610300285,1076626086,-956116574,318815814,-893106489,-1102672638,-1102672560,305326160,-1962621821,1438866917,314109067,82241536,44474454,2107785260,45004803,290515024,-1996307325,1187511878,-352321284,-60912880,-2071268469,-2021129554,1191117694,-28931076,2096907833,-297351192,1187452416,-1929152780,-1924075962,-397349306,-998043176,-293699580,-954436352,268496454,1995720391,-297366269,-297366192,297461840,721732739,-1207702592,-1956773872,1438866917,247000203,73852928,556675,1996426357,282388486,-1996307325,1187383366,1183531251,-196703996,-1995946357,1183577670,-129595130,1358055053,1358055053,-1961791512,1438866917,45673611,69658624,-2012985718,78773830,-2130809134,1930100350,-28934138,-2147161296,-1204289978,-1924136959,-1202651578,-397410303,-997982323,71731718,1183321892,1930050814,-28934138,-2147161296,-1204289978,-1924136959,-1202651578,-397410303,-443809947,-1957313699,1226988,1443088360,65945216,-970099201,-968560826,-956240314,61510,1357792909,1357792909,-2096045080,1190528196,125075700,65930950,-972690688,17034758,65945216,-970165248,-1928597690,-1924075962,-397349306,-998043464,-293699580,-15436544,-402386378,-998043586,1161218,43051088,-1979530109,1621231174,1644611084,1187446796,-972267276,-1928663226,-1924075962]},{"sector":11,"data":[-397349306,-998043524,69842948,269019216,-956119933,207813702,207765120,-15436518,-402386378,-998043662,1161218,38070352,-956119933,65094,1586172907,71761668,-231797,76217414,1191118728,207724798,-28952168,1586226300,509444,1575324510,-326412861,-402648904,1187447516,-1922957070,-1924074938,-397348282,-998043640,235325188,-1962901240,279180358,-16454904,-1006105082,638062110,1183319946,1947024624,1965177865,112874,-1070923029,-1017256565,-1192457387,-1847066610,-1438744574,410255363,15877831,-129579205,1183646634,1183666418,-1310174990,79987471,-1017256565,1397903696,1465275732,-326433250,-1912487496,-1070859048,25487440,117621891,1566465823,1499093851,817155928,37495245,550306419,-1962819137,721420854,16679415,-1107070448,-1896214528,1858372055,276036366,-135782634,1354773249,-1207666968,567102719,922674307,70395529,774277430,-1312388348,1222693636,70034230,915011331,-1014235134,-604512725,567102132,-1558279114,-66644476,-1190654273,-819261840,-1426866125,1005068054,-400615936,31982482,-1232126,-16464842,-16465354,-402341834,-397347710,-1044905758,-1193767423,-952762365,1946431494,2078822412,66971649,1342242744,70260479,567095476,-1207655005,567096576,76619401,76744332,12066574,194165285,521544141,120065675,109981411,-1960442717,-989844426,-1945687546,920335322,119938815,521536883,906055145,120456901,62642828,520041984]},{"sector":12,"data":[521537318,77792910,739150630,-1909005568,654259137,1946172800,833836,-217807682,-1190431578,-1070366721,427142898,503768555,-141877497,-1408979777,-22244968,1208054976,385344170,310047,78423936,1140897983,175251917,1954595574,-1399881723,2034974724,120766183,-402181441,851312802,120766215,-1023374616,-1091794091,1388251154,8251400,-1090047298,1961363252,1426320128,884927627,120897287,-1107269912,884934452,7137287,184596968,-2096401216,1962935422,71747333,263782655,375552,78415862,-1274776575,1126288702,132707042,71731968,567102644,120065675,45811683,639565568,382017031,12059793,522308901,80625280,504198144,-989540448,-1274753002,522308901,1945582531,-1957736694,-597235,-1007490095,242480955,-1962610813,38079237,503313012,12840683,-1192457387,-397410052,1048773243,1946158292,-736690428,16758788,40495184,-1017256565,-385875272,-1957036453,1926769628,-702661878,-1962642940,870449123,-28972608,-1175047338,-466485182,-533549828,-192873502,-401771435,28901294,753422336,112642,110084958,45745368,-1525270528,-1909885948,637838086,2885262,80217740,-1181106125,-13402112,1974382322,-1991817221,-1190869442,-1359806465,-779365897,-1107295809,512622721,1017906339,1023112224,1022850057,175076365,1198224576,540847182,154986612,222094452,-1073062796,574380148,1547445364,-347995276,1103705060,1952201900,1948400890,-338623740,-775844909]},{"sector":13,"data":[-1462692887,-339053311,1017925121,170619917,1009218752,1018852386,1107522652,-919343893,1547480129,574421620,-788331404,-1047798805,-787224111,-764083800,521574379,79707785,-783821053,-2133392409,-500433182,-1029454709,64523012,906434299,1128480649,80099013,-1073042772,-2118190475,512636416,65733795,-1398095821,-76275652,-143390404,58002748,167804905,-352094784,-1992912775,1313030975,1948269740,1946762459,1947024599,1958742626,1948400734,1952201767,-454317565,-1404974797,-93037508,108274236,-1426891600,1555091947,-1426855471,581961331,1321593770,1947024556,1958742574,1948400682,1952201911,-320099837,-1404974797,-93037508,108274236,-1426891600,1555093995,-1426855471,581998195,869133226,521579200,1991,81274623,1441565525,77799054,-1047803597,-108271221,741772105,1962281728,650546704,16000,-234458112,1974355374,1083655674,-41157084,-989600303,-1084809450,-2048393207,-812949760,-133956213,79965833,-561117410,-481692109,993820947,-1996131261,1162150014,-1073042772,-303891851,369118857,-443851489,-1957313699,509040364,72780551,-1392034626,276087355,208967232,-1178586217,-1359806465,-336857205,-1956749418,46292453,-326413056,74907479,201313256,-1844153152,-1070335349,-218103879,1238497198,-1275067717,1596050752,-1034033781,-796196862,70387203,104412530,628294700,1342181125,61987025,-645076781,77799051,-1056715989,-661929074,567102132,605057624,748898544]},{"sector":14,"data":[780899588,369165362,-1950153678,-74323513,-1070394510,-1017256565,-397346701,-1957167080,1942183397,976903,-1711276104,-1017256565,32039986,-1465728256,1977879044,-1522630621,225575684,225649212,91365436,132842928,1980972176,-1156337662,-1730738982,-1023107677,-135543670,-2081649835,1448543468,721744062,-1877611521,-2096741130,-397014156,-998046672,24395778,147227463,101201465,-947132813,-443850914,-1957313699,149717996,1988843095,176065284,-150583669,1183385702,-62486018,425603,2122516084,108331016,199868459,1173786625,1702169606,-343810165,61932784,-1014236205,-670833711,-2013862959,1963001232,-62458036,544539135,1459386111,-1744353910,77785168,-1996045181,-12715962,733836543,108459986,-1878997527,2013416959,-1962636789,-2012872931,-1878201593,-1744532905,11724880,-167459709,1965033029,1325352595,105248508,-1958710008,-253001249,-754732796,-775713797,-774372381,-1870137629,1551106309,1308567019,-1978959870,-14841084,-351827963,-1973972980,-397371388,-998047636,105248260,1179874592,-2080616705,1946221694,41780041,-1949338624,1177223749,600382460,-62520383,1358579337,-399114410,-998045238,-96040186,-268237567,704398889,-873790907,1459386111,-1744353910,65202256,-1996045181,-12715962,688092415,1183579206,-62510082,-1862322967,-443850914,-1957313699,149717996,1988843095,121932294,-96040552,-265435509,-754732796,-775386120,-775879712,93324768,-151501175,1954743876]},{"sector":15,"data":[105182726,-2146732992,-1205860788,283770879,1157009409,-277544698,33967232,-284793728,1149878315,-1980200190,1157037182,1601506310,-343810421,61932784,-1014236205,-670833711,-2013862959,1963001232,-117538490,-2130283516,1963262206,-92864717,-2096653848,-1073020220,117386613,-25099026,108332280,-351772488,1857589252,71600396,1586168969,38258680,130417152,-1878463743,10283094,-167590781,1963460164,-2116121831,-1325076245,-1946430717,65262019,-152841768,17141895,1015763060,-1962640341,-1992293308,-128021756,1208108939,184697993,1460895487,-16485121,-974587274,113541890,-335788407,1586204698,-1400375558,259268612,1342177976,1347469355,36497491,-1962359677,1183450204,-351827964,29331479,1355254528,1342457485,-386238721,-998047096,-62486266,1962704441,-18093821,704923274,-1956684060,-1866244635,-2081649835,-1957297428,-265485242,-754732796,-775386120,-775879712,93324768,-1191295351,-397409792,-998046828,73304834,184829833,-2146470720,-1962408369,1204289118,-352190462,1586204695,105873412,-28931324,71797056,-939630965,66119,-1962647925,71601139,1204225929,1577058306,-1017256565,-2081649835,-1957296916,117376118,-25099026,141886712,1627276999,-1878201592,83951233,1187456117,-166957314,1963722308,-2116121831,-1325076245,-1946430717,65262019,-152841768,17141895,-1070922636,-963955221,-1325076435,-1946627325,65065416,98619841,1183384976,-28931076,-1996209015,-60912892]},{"sector":16,"data":[-1996357448,1149829703,17286658,33967232,1577058744,-1017256565,-2081649835,-2091515156,1946158206,108953947,125043960,425601,-1955171067,1200227934,-397371385,-998046282,1958742786,105286500,-1325076435,-1946627325,65065416,98619841,1183384976,108462078,-2097132568,1586168516,509694,149447,106859264,-1070861429,1200161929,-1876235516,-2130289013,140510335,2139162484,1963748868,122128920,1541951640,46433029,158646283,-402229505,-998047736,-443851262,-1957313699,82609132,1988843095,-1962988796,52692548,1182073404,134628598,-561309323,82897793,-70057039,-472792181,-472786941,93358070,-1960348671,71576324,201082505,1343979200,-1979419393,1352140612,-2097112088,1178273476,-2146994948,-1088420276,1150025727,-956004092,580,1600046987,-1017256565,-2081649835,1586169068,-1440859388,-1207602684,720046336,542455,-2092403584,1946159742,-1949748454,1107409105,1265770957,34227959,51279104,1444087366,-1205307128,-335997440,-27883210,-1946401143,1107474641,1174610381,139858694,1317735801,-61436930,-851312456,-1948718303,1317733974,172395016,567100084,-1484782222,-369294164,-1957299571,149717996,990142091,1912908318,151042055,-92804615,78415862,-1207208928,-919387646,567136651,-2013861006,1954546860,106335086,-1070397666,-1979824503,1476197446,-1946514602,-127497742,-485994869,-234180524,-397773394,-1472397100,-2092403200,-594869524,1023541434,57868840,721453242]},{"sector":17,"data":[-1949004830,-1962469638,1017907278,990671882,-1441172229,602469602,-1335760128,1979398925,1632259,-16076630,-471073722,-352317976,-346071326,860220245,-177870400,-1957604528,-473289777,73304848,567099572,1174474098,1958743038,1482381574,-2084308341,74647748,518719924,78415862,-1962183616,1065354846,-133991142,-1191637781,116071424,738084491,1720450118,-379625736,1317796249,1976109832,-373191931,1452013965,-851397626,-1274776799,199551753,-153061952,1074048135,-628422028,1964654464,-806619133,469809401,-1587951125,-1002765098,-1003813261,-503326473,-85213133,-1947432107,-620034978,1333789812,-443874818,-1957313699,-1151904020,1065551370,506033408,374791,1963029480,-1715457275,608183531,101360638,-1777988445,66759,-955988349,-65980,101725833,-1945874805,-390033704,1583284233,-1017256565,1090572009,-511640972,-285637634,2005660275,-1951532030,1946265854,-1053079486,-796191373,-1464995837,53769217,132546,1149892491,-1947800578,51148030,-28538375,-1991720661,50719493,-28508423,-628308341,-784608884,-1943665292,-1996089314,650314367,102631110,-115454,-24435340,-1464995837,-1947044863,-1053079298,-796148365,-1464995837,65172481,132546,1149892491,-1947800578,-1073018809,-661781388,-31058709,1946557966,-1931965423,1959214039,512632325,931857940,2005646571,-390057210,-969211798,19139956,-392675264,225706078,-385987074,91488284,-347189610,-1931965287,1958820817]}],[{"sector":1,"data":[413345284,-1995994362,-1070398905,-1957575783,27852357,-936705164,-1170128567,992378879,1980111382,1978323204,63015925,51737286,-150113598,734143442,846022,-755562379,-445257007,-1017528269,501764434,1461220352,-259260789,1153954307,-1979711746,-695531913,-1991583957,1499004501,1347666778,1377751603,28856402,520507392,-2097147928,-92075836,1532633087,-771030412,-1957363517,106387180,556675,851392629,106334980,1208239755,1407715189,-349736448,-2110354616,292833284,225769275,-1996340085,-397013946,1935540282,80118576,75693697,-771029901,-4716939,501979647,-1014769013,-1310994161,-1259613437,1914817864,76124905,-1996335991,855933494,1583286208,-1017256565,-1962127733,38550007,-964490124,-2097250044,-101550844,-628408341,963779587,-1047604341,108394299,70000185,-1014815117,-774123249,-773074453,1979137003,-1579613431,-668269405,1253359758,225583565,74839867,69998217,-1962637422,-1957313583,-1948808212,-1898410786,75402176,-4603853,-1917914369,2123104117,-18170,-772296974,-24643285,-150714741,1946157510,-783703038,329642985,-1952123959,1576700915,-1957363517,-1948808212,108432350,-661848437,-1070350194,-218103879,-1949173842,-947190658,41157032,-372160092,-921459213,-208952077,-1017251189,-1947432107,-1898410793,75402176,-4603853,-139529473,-1953412655,12803578,-1947432107,-2013920162,1946289697,767789831,48955424,-1017265269,-1947432107,507184222,293405866]},{"sector":2,"data":[2080439171,-1400375796,91504644,-352321096,-1950338302,12803557,-2081649835,1448544492,-16451394,-1746402186,46433279,-396953461,-997983902,-28931838,28858198,1996443648,-162338812,-1995914109,-11077050,-941031818,79987705,1979350585,38600479,179309176,83827851,199952264,702550,-144512944,721732739,-1878725696,1593835448,1575324511,-1957326653,-1957210388,92996734,-1962779253,1435173965,141921030,-854950517,2123061025,-1996125946,1300824669,106268932,-1895271031,74582597,149681715,-1091209752,92995585,1594652041,1575324510,-1957363517,-1957210388,92996734,-1962779253,1435173965,141921030,-1962248705,93194366,1594252686,509026765,-544286836,-1945600373,105221893,-1996063093,39684357,-1996206711,1971914325,172330760,-164428686,401082603,114421,1971914123,-1956749556,12803557,-1947432107,1603011678,-1945662458,1468793423,1575324420,-1957363517,73305068,126538635,292864010,440164652,1090782323,-1975318648,1975519751,-1017277713,-1947432107,-1931572265,-1950314792,2123040374,-1949857020,249759822,41157032,-372160092,-921459213,-208952077,-1017251189,-1192457387,116129791,-326412912,-930365389,119676555,139656065,109252724,-1962801374,126420038,41208075,-443826125,-1957313699,-1957709844,149619798,-1209234603,139889486,567089844,1968111488,72780550,-1979298165,-383660569,-1957301194,71732204,106349854,567092660,-1950338273,12803557,-1259566251,1075957017]},{"sector":3,"data":[1586167988,856131844,12803520,0,0,0,1377850189,1412263541,543518057,1919052108,544830049,1866670125,1769109872,544499815,539583272,943208753,1766662188,1936683619,544499311,1886547779,1224736785,1919902574,1952671090,1397703712,1919252000,1852795251,1124076045,1869508193,1634476148,543974754,1330258017,1684360777,1431511084,1700025154,1919885412,1397965088,1699628873,1919164516,224753257,1850277898,1768710518,1751326820,1667330657,1936876916,544106784,1970040694,1814062445,1818583649,536873485,544432488,1814065006,1818583649,1819235840,543518069,1679847017,1702259058,1763704864,1442848883,1836412015,1634476133,543974754,540094760,1918986339,1702126433,539784050,1163152965,1868963922,1869488242,1059677550,1867907104,1701672300,1919243040,543973737,1651340622,1763734117,754983027,1818575872,543519845,1920103779,544501349,1970040694,1814062445,1818583649,794372128,541010254,1701987072,1936028769,1751326764,1701277281,1864379507,1701060722,1702126956,1752440947,1870012517,1701672300,1650551840,1864395877,543236198,1802725732,658734,1161969996,1683693644,1702259058,1817926970,1818583649,658781,1852727619,1814066287,1818583649,1847615776,1870099557,1679846258,1702259058,1986939136,1684630625,1769104416,1931502966,1768121712,1633904998,1852795252,1668172032,1701999215,1679848547,1702259058,1853453088,544760180,1124081709,1869508193]},{"sector":4,"data":[1634541684,1679844715,1667592809,2037542772,1953391904,1426094450,1886938478,1702126437,1850024036,1718558820,1818838560,1967980645,1885959276,1679844716,1702259058,1952803872,1936876916,1701868320,1768319331,1409311845,1830842223,544829025,1918986339,1702126433,1763734386,1870012526,1701672300,1650551840,168651877,1769096192,1814062454,1702130789,1633886322,1953459822,543515168,1769172585,1981834596,1836412015,1634476133,7103842,1546600234,992751228,1010641722,677206846,576595497,977207296,977207296,0,0,0,0,0,0,0,16711680,0,1061093384,1061109567,1061109567,7143487,65457,0,1313817344,548536331,11534344,-5242855,0,134219776,186692096,419475456,110592,1,526861,4194482,1547321264,1107361536,1526743808,-1291809280,-771702528,100718336,553721601,-2147400447,-1258186751,-352202495,503449345,1694646018,6029314,32,1547321088,2764330,13,-1962934272,-1056964596,-1308603391,-1342157824,1127941170,1279870559,1313431365,937798,1704114,-2130701136,16875905,11665415,-894435307,1124188420,11665413,1890582539,15,402784790,202115341,369624844,219348758,16712210,679936,17457152,0,33554432,1,33554432,2,-2080374784,3,33554432,-1308605948,-1342146560,33554433,11665412,-2001731468]},{"sector":5,"data":[-1308622331,-1342172928,32,393216,598194,673720496,337960,1188018,84144,987314,689328,269488304,269488144,-2122219135,885121,1311154,269488304,-2112876528,-2105376126,-1308619646,-1342172158,269488144,-1308621536,-1342144256,133138,917682,1007707312,1397575228,4079175,808866304,168636464,1953701933,543908705,1919252079,2003790950,50334221,808866304,168637232,1852383277,1701274996,1768169586,1701079414,544825888,658736,911343625,221851696,1847602442,1696625775,1735749486,1886593128,543515489,544370534,1769369189,1835954034,225734245,16515082,-16774643,1853190656,1835627565,1919230053,544370546,1375732224,842018870,539822605,1634692198,1735289204,1768910880,1847620718,1814066287,1701077359,658788,911343617,221327408,1847602442,543976565,1852403568,544367988,1769173857,1701670503,168653934,-1308567552,-1342175489,-1,-1,2814,22937600,44566528,1112670786,-1064507253,234885125,303903,787971,244039822,-108331002,-34108593,-1202674445,-883949516,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704,78708751,-789068149,-628299565,74698795,-768878452,-268181293,-947135858,-388771593,-802438516,-1064565645,-522989013,-1030817789,1322289836,1187548077,-31145334,91598908,-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094]},{"sector":6,"data":[-1031072797,-1064385789,-2080863315,292880383,-501415642,16417267,-2129234704,-351272766,1086360796,-276578162,486614544,-339702200,-1950118942,-1962932162,50334262,33948144,1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602,482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,423024,182779933,185147460,551029651,0,0,0,0,0,0,0,677183488,576595497,977207296,977207296,0,0,0,0,0,0,0,16711680,0,1061093384,1061109567,1061109567,7143487,65457,0,1313817344,548536331,11534344,-5242855,0,134219776,186692096,419475456,110592,1,526861,4194482,1547321264,1107361536,1526743808,-1291809280,-771702528,100718336,553721601,-2147400447,-1258186751,-352202495,503449345,1694646018,6029314,32,1547321088,2764330,13,-1962934272,-1056964596,-1308603391,-1342157824,1127941170,1279870559,1313431365,937798,1704114,-2130701136,16875905,11665415,-894435307,1124188420,11665413,1890582539,15,402784790,202115341,369624844,219348758,16712210,679936,17457152,0,33554432,1,33554432,2,-2080374784,3,33554432,-1308605948,-1342146560,33554433,11665412,-2001731468]},{"sector":7,"data":[]},{"sector":8,"data":[1929553896,60680199,567102644,1929456360,-850611196,1085808161,-1596420608,169803908,-1342016064,43491864,-1153168200,2142830594,-1693020925,1914817794,-1690399472,108888066,-1962511103,-1750986683,-854608894,-1742305264,-1260702974,-1960719035,-851528472,178977,567100852,187829899,-1156894534,1085538305,-1157881395,12127034,-1260549360,186764607,-855476800,-1949791456,440184050,222098804,113641333,-352255334,1963605068,-1727595002,1011018498,-2146601720,16947774,251541364,837485210,309659964,43656842,-2146974592,-989923100,43656840,121379819,117315444,646578842,641335962,158728856,43583230,43648710,-1261401599,-1977496318,973248806,1912772390,1364612411,-1157627208,-919404542,-4849486,-1274896664,-855068660,1962949665,-855067644,940477217,188004875,-1275067717,1495387456,113663326,-973012326,16947462,-385649591,971636563,8437503,-315487094,860247011,792505536,540805748,-989986188,216789986,1015025379,1176400959,-438123266,829744138,-1157626952,-919404542,-4849486,-1207815448,-336003071,19707933,855638459,-1241468215,35514623,1946234941,-169132029,-335953870,432273409,65872,3584,0,0,0,0,0,0,-256,255,0,-256,255,0,-256,-1,255,-256,255,0,2573,167772160,606348288,606348324,606348324,606348324]},{"sector":9,"data":[606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,1397564452,1397703712,1919243808,1852795251,808334624,1126703152,1886339881,1734963833,824210536,758200377,825833777,1667845408,1869836146,1126200422,544240239,1701013836,1684370286,1952533792,1634300517,539828332,1886351952,2037674597,543584032,1919117645,1718580079,1816207476,1769087084,1937008743,1936028192,1702261349,1397760100,861341266,868323017,305051903,801964210,45549196,45432457,-1307431240,-1943024382,-1996308730,-1207780034,78778926,109850573,1049166543,783811277,-855199214,-1291416529,-1321301758,94038018,45024908,44908169,46859916,46743177,-1945786136,-1996307706,-1207779010,145887790,109850573,1049166551,113705685,168624872,53544646,-318322908,-956301310,167964422,116254720,47791753,-402647320,-397344725,141688890,1510432601,82532443,-116603773,508973251,-849149768,520560161,914950258,109839073,1482556131,1140897987,855638459,-2145268270,28836302,-1021194940,567095476,1962935613,418117635,1929380413,-17659,45810667,112640,-1308622663,-100682240,1364414659,1376147285,512354699,914883301,-1192754454,1959332610,1978469148,2549765,-1326971925,1510502913,117507560,-2096829601,-336001340,1516177156,1560703737,-346530983,147096324,1397801977,-450983086,-294142,753403253,-402396416,259194999]},{"sector":10,"data":[12278196,841075968,113542116,-2096043015,192217083,125092155,-2097106712,1928922820,1482381827,520494787,1963063683,637711387,567088522,-389903841,102629553,638022431,-855550582,267122721,-922025292,-1977218700,1193397525,-118262455,1347928863,-91532538,-645200098,-218359120,721647022,-880063527,1599604571,197145539,508523721,1085546246,-108800117,-852986623,642785057,1525155210,102651904,-133795041,-851296076,-2144953311,41228861,32227723,-68677937,1427827711,-5838767,-849745525,-352160991,1959279371,-118998265,-1047854475,-1195172003,79364135,-1023298304,1962933888,-2134444527,119409781,48774797,-402652487,113508096,-515980201,1962871554,1032005143,276101120,1912945190,1161438727,-117344511,-370456761,-1883044001,855829254,-141388837,-1828524234,49231607,1980365443,935493637,-1031797781,188830256,184841664,-2093386533,225772537,738884736,922682741,-348060936,117015330,2088766837,91565066,49821439,-2096043199,192219641,738884736,922682741,-1824455944,-1477717453,-1070345677,48969471,198325187,-1272875831,637579301,175449400,23410726,-1002830732,-1977217419,-11278331,1195835763,-478852798,197822294,1295217901,49102467,-1976863488,805570116,21314086,518718069,74788924,74764811,-404016125,48905856,1107850751,1330202946,-1174148273,727187455,-32839431,57891167,1368414187,2088815243,225705990,108316939,1195854153,-346160661,1976109840]},{"sector":11,"data":[166419971,1979709827,197735170,1429107967,860948055,-314670135,91553794,-352224536,2156547,123275122,-346137249,180650756,-314670087,91553794,1021903730,-318322689,-1023410174,-308161997,-284768510,-402650622,-2007433539,1124266375,1967192963,33089539,-294270466,-1995829832,1124266375,32041027,861099715,-2134297610,141950974,47824011,636215179,1946339062,-1111702520,-339506174,1260824,658312562,-1006078208,-1945974340,-1006179389,-1945981508,-293949,-25160075,-117213697,-308081429,-18430,855638461,216791286,1946221443,5564419,-133904765,-922024334,-1611988363,33456284,1431447925,1347880529,-855310152,1493122095,-661976715,-855309640,-117314769,123667827,-2096698535,216532676,-346399488,-401682687,1583087611,-1185916989,-1070399489,-772296974,-1017161655,1963064195,-717323491,376766210,1979711293,-308195317,-719388926,82532354,47521535,-919397653,1962933888,1300899334,772401923,74790200,55413294,-117127293,200813939,-2145815351,91553790,-351978714,87764483,166396533,-2096794551,-471137081,-2146667783,1979252734,637996546,1912765699,653079046,-968422006,190214,-2133118013,1962935932,-242759919,1127030786,-242760125,-398254078,861733030,-1999490085,-1979521266,-1053161148,-1054204298,1157034122,343179271,-2012593014,1124266375,1967192963,8185859,-327823618,556160,1278741876,705196808,-779483060,185093258,-165382967,1963919172,121959948]},{"sector":12,"data":[637957136,-347667062,-2021107711,-2092760335,58015995,-33537560,-153324087,1971324740,1962281496,172263956,49383304,1090224963,602407797,1976499712,121960172,-167217905,1947207492,168618754,-1895271214,-33363194,-386370102,-1017839614,509019729,868977415,-247558693,-75307006,123667826,-2096829607,-1007089980,16778497,327679,1954039057,1701080677,1917132900,544370546,118370597,158613133,-1021263485,16778498,327679,1918980110,1159751027,1919906418,238101792,-1740731129,499221257,393155,536871176,872415744,989856512,1543580672,-2113852160,-1644089856,-1308545280,-67031040,1850283776,1920102243,544498533,542330692,1936876918,225341289,757926410,1919896864,757932133,1869567012,1851878688,1918967929,1701672295,544437358,1663069801,1634561391,1814062190,224751209,1766074634,1634496627,1864397689,1970304117,1852776564,1668489317,1852138866,544497952,1769218145,221144429,520752394,1163022157,1528839200,1986622052,1532836453,1752457584,1818846813,1835101797,386534757,1835888483,761556577,1701667182,1293974560,222646863,1292504330,1683693600,1702259058,1885035834,1567126625,1701603686,1701667182,1884495904,1718182757,544433513,1768300641,1948280172,1768169583,1634496627,1852776569,1668489317,1852138866,544497952,1769218145,221144429,538988298,1835888483,761556577,1701667182,538976288,538976288,538976288,1667592275,1701406313,543236211,1835888483]},{"sector":13,"data":[543452769,1936681079,1970217061,1953853556,1818851104,1700929644,1936286752,2036427888,221144165,-1928917494,-2130069186,-1023315263,133645,168626701,102629380,638022431,-855550582,267122721,-922025292,-1977218700,1193397525,-118262455,1347928863,-91532538,-645200098,-218359120,721647022,-880063527,1599604571,197145539,508523721,1085546246,-108800117,-852986623,642785057,1525155210,102651904,-133795041,-851296076,-2144953311,41228861,32227723,-68677937,1427827711,-5838767,-849745525,-352160991,1959279371,-118998265,-1047854475,-1195172003,79364135,-1023298304,1962933888,-2134444527,119409781,48774797,-402652487,113508096,-515980201,1962871554,1032005143,276101120,1912945190,1161438727,-117344511,-370456761,-1883044001,855829254,-141388837,-1828524234,49231607,1980365443,935493637,-1031797781,188830256,184841664,-2093386533,225772537,738884736,922682741,-348060936,117015330,2088766837,91565066,49821439,-2096043199,192219641,738884736,922682741,-1824455944,-1477717453,-1070345677,48969471,198325187,-1272875831,637579301,175449400,23410726,-1002830732,-1977217419,-11278331,1195835763,-478852798,197822294,1295217901,49102467,-1976863488,805570116,21314086,518718069,74788924,74764811,-404016125,48905856,1107850751,1330202946,-1174148273,727187455,-32839431,57891167,1368414187,2088815243,225705990,108316939,1195854153,-346160661,1976109840]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[654970151,538976288,538976288,538976288,538976288,538976288,538976288,1109414176,1931501856,1663068448,1310728224,1646291232,1814061600,1931502880,220662285,538978058,538976288,538976288,538976288,538976288,1886339872,1734963833,673215592,1293953347,1869767529,1952870259,1919894304,1634889584,1852795252,960049440,654970160,539429389,1650616654,544433516,1629516649,1835099936,1868963941,1852776562,1919885413,1870099488,1634496544,1936876921,1310728238,1734964833,543519841,1920298873,1634628384,225666411,1629497098,1853190002,1752440932,1634148453,1646290285,1685217647,2037543968,543649385,1696624500,1965061217,1970151536,1919246957,1752637555,543517801,1768912481,1735289188,539429389,1852732786,543649385,1869901417,1818326816,1864397676,1953439858,544367976,1801547379,539915109,1701336096,1919905056,1970151525,1919246957,1870209139,1634017397,1886724212,654970156,1701344288,1919905056,1869619301,1937010281,1970239776,1767991072,1851859054,1752440932,1869357157,1919248238,1970239776,1853038706,543517537,1868784994,779314541,220662285,1411393290,1970413679,1752440942,1730179945,744844641,1701998624,1394635635,1952868712,775243307,220662285,1411393290,2019893359,1361081449,1769169218,1881156707,1936942450,1953251616,742793260,221141024,168634122,1867784231,1952802592,1818585120,1852776560,1109418272,1128878913,2036689696,1685221239,1869422636,1948280182]},{"sector":17,"data":[1663067496,1869836917,1869881458,1701344288,2036689696,1685221239,1684955424,1701998624,168653683,826679335,544370464,1667853411,1752440939,1769087077,544499815,1937076077,1969365093,1852798068,654970158,168626701,1952797479,1717920800,1953264993,1952539680,2037653601,1948280176,1852383343,1701274996,1868963954,1634082930,1919251571,1835099936,1819287653,168655201,1229342020,1092637774,168647213,1428621837,762471795,1768318308,543450478,1162893652,1409944947,541413465,1801547379,1685013093,537529721,1914708000,1092646767,1313415251,1162298708,537529682,1663049760,1092643951,1313415251,1162298708,1158286674,1411400782,222646361,654970122,1936287828,1887007776,1701060709,1701734758,1752440947,1819287653,1919252833,1931506471,1701536110,1498679821,1931494736,1701536110,1701869940,538970637,1701322784,538993761,538976288,1226855233,1195725902,168645189,538976288,1735288172,538994804,1396776992,1414416672,1380271941,538970637,1869750304,538976375,538976288,1226855233,1195725902,168645189,538976288,543977315,538976288,1396776992,1414416672,1380271941,538970637,1768169504,1952671090,544108393,1226855233,1195725902,168645189,538976288,1702259052,538976371,1396776992,1414416672,1380271941,538970637,1668489248,543519343,538976288,1226855233,1195725902,168645189,538976288,1819239283,538997359,1396776992,1414416672,1380271941,538970637,1818304544,543520361]}]],[[{"sector":1,"data":[538976288,1226855233,1195725902,168645189,541347397,1162893652,168626701,1768444967,2037653619,1763730800,1937055859,1948279909,1701978223,1936028272,544501349,543516788,2036427888,543649385,1701995379,1763733093,1701650542,2037542765,1227295245,1936269428,1702065440,1869881444,1835627296,1952541813,1919361125,1768452193,1763734371,1702109294,1830843512,744842351,1684955424,1935763488,1836020512,1852383333,1701995892,1852404851,168635495,1684955431,1768715040,1819568231,1684086905,1668178294,1830839397,1869116517,1948283748,1852383343,1634038371,1735289203,1701344288,1701868320,1864393829,1886330982,1952543333,778989417,1227295245,1702130542,1864393825,1752440934,1869488229,1818324338,2016426016,1948267826,544503909,1885434471,1935894888,1769174304,1663068014,673477224,691614002,584786464,1702305836,1818851104,1700929644,1965492749,1735289203,1919443744,842147876,-601741008,1851858978,1751326820,841491570,539570994,539156258,543452769,611477603,959525416,-618520535,1869881378,1835625760,1629512553,808984686,221263224,1768957706,543974776,1701995379,221146725,1749231370,543908709,544503151,761427315,1735357040,1936548210,1413829408,1684955424,1229934624,1397314638,1380272212,1869881413,1701147424,2003789856,1768453152,1936269427,1886218528,1701668204,1684370542,1713834509,543974757,1701147238,544175136,2037411683,1701344288,673211763,1998615393,543976549]},{"sector":2,"data":[1629516641,1634624882,1701869908,1684955424,1701344288,1296647200,1163018528,1931493710,544501108,543452769,224749684,1852385034,1634301033,1635412332,1852795252,1685021472,1852383333,1701344288,1634878496,1919112055,544105829,1885500787,1919381362,539585889,543452769,543519605,1835362420,544106784,1920298873,1853320992,1881606669,1919381362,225668449,1348031498,1918967877,1415671397,224751737,538976266,1634038304,2003784300,538976288,542327072,1163152969,542262599,538976288,656416800,1936744781,1701344288,2016426016,1881157685,1953393007,1953392928,1752440943,1701978213,941648993,892500016,538970637,1667309600,1919904879,538976288,1396776992,1414416672,1380271941,538976288,538976288,1869894439,544433522,543516788,1920103779,544501349,1869377379,1718558834,1701344288,1768910880,168653934,538976288,1953720691,538997349,538976288,1226855233,1195725902,538989125,538976288,1160192032,543712097,1918986339,1935763488,1881158176,1953393007,1852383347,779381024,1395531808,1163154249,1936269394,1313147405,1498685508,538985808,538976288,538976288,538976288,538976288,538976288,538976288,540093735,1931503209,1702130537,1869619314,544501353,1629516649,1702260578,824909868,543582496,1869374818,218762615,1968383754,1698963554,1918987363,1869182049,168653678,1279477060,541413953,541218131,1667330131,1969311845,673211763,1954047348,168634660,1279477060]},{"sector":3,"data":[541413953,541218131,1852404304,1868780404,673211762,1349350734,1702453612,740651890,1868788512,623994226,1668489260,845509231,1814047781,1936029289,539764017,1702259052,690303603,1162086925,1380011075,1431511109,1850286146,544174708,168634664,1279477060,541413953,541218131,1232364871,1953853550,1311252595,1817210229,1919252833,1931488371,1684366704,1768169516,740583014,1852796192,1919906921,168634660,1279477060,541413953,541218131,2002874948,1701995347,673214053,1141509417,1095516997,1394623826,1344291413,1316577644,1818387049,673215333,1349350734,1702453612,539784050,1701146739,1679830116,610690665,1141509417,1095516997,1394623826,1394623061,673215589,746024818,1819239200,1667309612,1919904879,1141509417,1095516997,1394623826,1126187605,1702129253,1915232370,539785071,1954047348,168634660,1279477060,541413953,541218131,1850306372,544174708,168634664,1279477060,541413953,541218131,1953066569,1768710505,673211770,1141509417,1095516997,1394623826,1394623061,1802658160,1632658796,543519605,168634664,1279477060,541413953,541218131,1702257996,1462247532,1416913256,743392367,1835103008,690518381,542327072,1801547379,1887007845,168634725,1279477060,541413953,541218131,1953066569,1869377347,673215346,1141509417,1095516997,1394623826,1159742037,1702060402,1801547347,1932009573,1701536110,1092626728,1312890963,1931488345,1701536110,677670722,1396777001]},{"sector":4,"data":[1498300704,1853038636,1315269473,690318709,1162086925,1380011075,1430659141,1230259022,1394626127,1819044212,1953390935,1349473395,544825708,168634664,1279477060,541413953,1129207110,1313818964,1768902688,1934193774,1919248468,1915232357,539785071,745303907,1667326496,1819231083,220820079,654970122,1936617283,1953390964,1124732275,1414745679,1431458848,540876869,168636717,1397641027,1095114836,541414220,1330520125,1381245012,168641877,1397641027,1095573588,1095652184,1162626379,1213482830,824196384,221261872,1313817354,1394627667,1414676820,1380275791,824196384,538976288,538976288,538976288,1344284448,1835102817,1919251557,1869881459,1699489568,661415286,1112888096,1329793549,542397262,1162690899,1163281740,540876876,1124732210,1414745679,1480936992,1447382100,1025526853,168637216,1193740813,1633841004,1633034348,1650551154,225666412,1296647178,1095258912,541345106,1852142177,540092513,891309908,824192048,542069792,539570232,1629508417,1634624882,1701869908,1229195789,1213407309,1145393729,1920295712,1702257996,1663052908,1919904879,1818386772,808527973,218762537,538976266,1312903712,1229803332,1411401050,1380273481,538970637,1330061344,541218131,1634036803,2036681586,1801678668,537529715,1226842144,1869771886,538970637,1699160096,1886275956,544437365,1349350734,1702453612,539784050,1701146739,1679830116,610690665,1869422636,1869900142,168633458]},{"sector":5,"data":[538976288,1431523143,1699946562,1819231092,225669743,538976266,1634878496,1919112055,225338725,537529610,1142956064,537529679,538976288,1634488352,1651068537,1936026722,1836404256,2036427856,745763429,1701868320,539780197,1717987684,537529636,1277173792,542134095,1279871063,1951604805,1466723433,1937010273,1817210708,168655201,538970637,1330061344,541218131,1953719634,1264939631,1867282789,225667939,538976266,1280262944,824201807,807414837,538970637,1279467552,1158286675,168641614,1816332813,1265787237,1867282789,980642659,538970637,1162092576,1163075654,540876871,538976304,538976288,538976288,538976288,538976288,539435040,1852994900,1717989152,1885422368,1801678668,1968054316,1668238445,1851859051,1666392164,1819045746,1801678668,538970637,1699422240,1634485881,1025536871,1162170400,808527947,220804916,538976266,1263489056,808525893,539768628,221268006,538976266,1178944544,1195725600,538970637,1163010080,1314018644,168626701,1953719634,1264939631,1867282789,980642659,538970637,1162092576,1163075654,540876871,538976304,538976288,538976288,538976288,538976288,539435040,1953719634,543519343,1282433347,745235311,1836404256,1801678668,1684955424,1919111968,1282174063,543908719,1952543859,168653669,538976288,1162563408,875573536,1260399671,1816557925,225666913,538976266,1178944544,1195725600,538970637,1163010080,1314018644,168626701]},{"sector":6,"data":[1131701587,1919904879,168639091,538976288,1830831689,1953066607,539259503,1294082109,1213472802,168644165,538976288,538976288,1414743378,541413967,1869508461,538970637,1279598624,168641875,538976288,538976288,1414743378,541413967,1836216174,168651873,538976288,541347397,168642121,538970637,1329995808,543236178,540090429,908087124,538970637,538976288,1163010080,1663059009,1919904879,1818386772,694233189,538970637,1162747936,1629508696,538970637,1163010080,1314018644,168626701,538976288,538976288,656416800,1801547379,538980709,1931485216,1701536110,538976306,1819042135,1109401715,1735091041,1853190002,1142956132,1869373801,1177383783,543519343,1667318304,1829375339,980381295,1142956064,541152321,539768113,538976288,538976288,538979383,538976288,539768608,538976288,538979376,538976288,538976288,539768113,538976288,538976288,807411744,1869482509,1818324338,1094983738,824197460,538979380,538976288,824188960,538979379,538976288,539767345,824188960,538976300,538976288,824188960,538979381,538976288,538976288,221519904,1145980170,168626701,1852130087,980575604,539429389,1852130080,1936876916,2019914784,1852776564,1986619168,1914728037,168654703,541218131,1953391939,673215077,746024818,2019914784,220800116,538976266,1129270304,541414465,746024818,540095520,1162616877,1702111310,690254968,840970016,538970637,1380982816]},{"sector":7,"data":[542395977,1954047348,168639268,541347397,222451027,654970122,2002874948,1701995347,221933157,538978058,2002874948,1819287667,1852406113,1768300647,224685157,1112888074,1634878496,1919112055,225338725,537529610,656416800,1953066601,1768710505,1931502970,1701147235,537529710,1444945952,542590281,1313428048,537529684,1126178848,1380928591,1819239200,1632924271,677735522,539765041,1869377379,1650545778,875062636,537529641,1126178848,168645452,538970637,1344741408,1953393010,1953068064,639657324,1936026912,1701273971,538970637,1698897952,1919251566,539767072,1651068450,1936026722,168632865,538976288,1953391939,824210021,572533809,1953066569,1768710505,1735289210,1634488352,1735289209,1701398048,774792300,168632878,538976288,538970637,1227300896,1769236846,2053729377,1918967909,543256165,1634890337,537529721,1176510496,1914720847,1025537903,1411395872,808788047,538970637,538976288,1329995808,1868767314,540876908,1330913329,221263904,538976266,538976288,538976288,1701994784,1915249006,539785071,694972259,1634038318,2003784300,1226849568,673731662,544698226,691085355,840970016,537529641,538976288,538976288,1629495328,1634624882,2003792424,1868767276,1932405100,1702130537,540876914,2003792424,1146047776,539570720,540155946,221323309,538976266,538976288,1480936992,1868767316,537529708,1310728224,542398533,225931122,1145980170,1112888096]},{"sector":8,"data":[168626701,1634878759,1850959219,979725153,539429389,1634878752,544433523,1801547379,1869881445,1667327520,1953066089,543519841,1769369453,1948280686,1970238056,1881172071,1769562476,1713399662,1684825449,1431505421,1917132866,1399157601,1701536110,1853040672,677735265,1396777001,1634628384,2037671275,539780464,1801547379,1685013093,1092626728,1853038675,1113942881,746153071,1634628384,1968072043,168634733,538970637,1329995808,543367250,540024893,958418772,538970637,538976288,1329995808,543301714,1853038653,677735265,1801547379,1836404325,1701588521,1752459118,1663053088,542069792,1414733872,757092421,168636465,538976288,538976288,538976288,1818845556,673201440,1801547379,1853040741,1315269473,774466933,1684104552,1293953824,1314084929,1279609665,1413959237,539828296,1293953378,1293960271,1314084929,1279609665,1413959237,537529672,538976288,538976288,1394614304,1931506789,1701536110,677670722,1818845556,1853038636,1315269473,774466933,746024818,1634628384,1866622315,1635002468,539782249,1801547379,1836404325,1868770857,1663052908,1919904879,1818386772,691284069,538970637,538976288,1162747936,1646285912,538970637,1162747936,1663063128,538970637,168632352,541347397,222451027,654970122,1232364871,1953853550,168639091,1193287719,544437349,2036427888,1763734117,1953853550,1393167731,1193296469,1850307685,1937012080,1968056352,1634488429,1936876921]},{"sector":9,"data":[1886593068,744777061,1718182944,539763814,1768845165,611479412,218762537,538976266,1280262944,924865103,221257772,538976266,1397506848,168626701,538976288,168644420,538976288,538976288,1094930252,891307348,926162988,1380982842,542395977,1128353875,858268741,221980980,538976266,538976288,1129270304,541414465,840969269,537529648,538976288,1226842144,1414877262,1866998304,1634541687,1881176430,1702453612,673215346,1919885361,573125152,1970151483,168633453,538976288,1347374924,1414419744,1444957257,1848134721,690253173,824196384,542265120,676086102,611153262,540876841,537529650,1310728224,1817210229,1919252833,540876915,676086102,611153262,218762537,538976266,1129270304,541414465,840969272,1344289329,1414416722,1800610336,543976553,1702258028,824713324,544175136,691023921,537529634,1277173792,1413563215,741941317,976368160,1230131232,572544078,538976305,1867391037,1701013878,537529634,1277173792,1413563215,808525893,842145836,1380982842,542395977,540031266,1159740704,1919250552,168632948,538976288,1094930252,824198484,840969265,1344289330,1414416722,808526368,540876848,1684633428,543517796,1735289158,577991269,538970637,1330389024,1163149635,741486880,976564512,1230131232,572544078,1836008232,1702131056,1886593138,543450469,544825709,1701209697,2032170083,544372079,1818848115,1701585004,694969718,537529634,1142956064]},{"sector":10,"data":[537529679,538976288,1277173792,1413563215,741875781,976499744,1230131232,1394627662,1162035536,892545060,168639273,538976288,538976288,1094930252,941638996,859054124,538970637,538976288,1313415200,542397776,1701667175,1701146739,168633444,538976288,1347374924,1414419744,1444957257,1730694209,1936026977,1684366704,1042295076,540090429,541347393,676086102,1701667175,1701146739,539567204,824196412,168636464,538976288,1701146739,540876900,676086102,1701667175,1701146739,220800100,220209162,538976266,1701868320,1025533029,808527904,539828272,1701146739,706750820,723530272,168636704,538970637,1329864736,538970637,538976288,1330389024,1163149635,741683488,976631072,1230131232,1394627662,1162035536,892479524,168639273,538976288,538976288,1094930252,824198484,824192053,537529653,538976288,1226842144,1414877262,1850286624,1634038371,1730176371,543518049,1701146739,1969496164,1735289202,1634496544,1495801977,544370464,992094542,1718182944,168633446,538976288,538976288,1717987684,540876836,1396786005,1680352325,610690665,537529641,1277173792,542134095,1230261845,1768169548,539256422,1495408701,1380917282,1718182944,1025516646,575545888,168626701,538976288,168644420,538976288,538976288,1094930252,824198484,874523703,1344289334,1414416722,1095783200,673465667,992556083,538970637,538976288,1330389024,1163149635,741814560,221720864]},{"sector":11,"data":[538976266,538976288,1347307808,572544085,1869508429,1869768803,1864394093,1868767346,544370540,1768845165,544370548,1864387880,692265074,1830828834,1953066607,220492399,538976266,538976288,1852796192,1919906921,540876836,1396786005,1831347269,1953066607,690254447,538970637,1330389024,1428181071,1279874126,1852796192,1919906921,540876836,539118882,1830834767,1953066607,539259503,1126309949,218762530,538976266,1635021600,1767142514,539190637,1230250045,542262605,538976288,538976288,538976288,538976288,538976288,538976288,1126180640,1969450081,1702125932,1701868320,1864393829,2037588070,1835365491,538970637,1329995808,594092114,824196384,542069792,808464433,1162747962,1763726424,538976291,538976288,538976288,538976288,539435040,543452769,1931505508,543518063,1886220131,1634954853,1852795252,538970637,1953701920,1767141487,539190637,1230250045,223495501,538976266,1701868320,1025533029,1701868320,706765925,540356128,1932009519,1416654708,593849705,1931488544,1953653108,1701669204,168634659,1313147405,1431511108,218762562,1850287882,1866691689,1936879468,654970170,1953066569,1768710505,544433530,2036427888,543649385,1818585446,1868767332,1936879468,1431505421,1850286146,1866691689,1936879468,538970637,168632352,538976288,542265158,544698226,540090429,891309908,537529648,538976288,1176510496,1663062607,1025535087,1411395872,808984655]},{"sector":12,"data":[538970637,538976288,538976288,1918967840,677473893,746024818,1819239200,1667313193,1919904879,1663057184,1919904879,1818386772,691284069,538970637,538976288,1162747936,1663063128,168651887,538976288,1415071054,2003792416,168626701,538976288,223562819,538976266,538970637,1395073056,673215589,1852994932,695103264,2020175904,544435301,544370534,1701995379,1646292581,1701081711,537529714,1176510496,1663062607,1025535087,1411395872,808984655,538970637,538976288,1699946528,741548148,1819239200,1868767276,1416785772,1701601889,220803880,538976266,538976288,1952797472,741356832,1819239200,1868767276,1416785772,1701601889,220803880,538976266,1480936992,1868767316,218762604,538976266,1380927008,2003792416,874528032,542069792,168638772,538976288,538976288,544499027,746024818,539767072,1869377379,1650545778,858285420,537529641,538976288,1394614304,1914729573,539785071,539766840,1869377379,1650545778,858285420,537529641,1310728224,542398533,225931122,1158286602,1394623566,168641109,1227295245,1869771886,654970170,1766072352,1634496627,1730179961,543518049,1920233065,1668637807,1852795252,1431505421,1850286146,225407604,538976266,1380143904,542000453,537529648,1461723168,1213482057,741357600,221590048,538976266,1280262944,824201807,807414837,538970637,1279467552,218762579,538976266,1852130080,544367988,572533812,541204561,544415841]},{"sector":13,"data":[543367273,541990944,543301737,543957090,577970277,538970637,1329799200,542265164,537529655,1126178848,1702129253,741744754,1866670624,1769109872,544499815,539575080,1919117645,1718580079,1866670196,1919905906,1869182049,959520878,220344377,538976266,1852130080,544367988,572533816,1650616654,544433516,1629516649,1835099936,1868963941,1852776562,1919885413,1870099488,1634496544,1936876921,1310728238,1734964833,543519841,1920298873,1634628384,577987947,538970637,1698897952,1919251566,539769120,1869766946,543452789,543516788,1701667175,1634689568,1948279922,1852406130,1869881447,1952539936,544240928,1651340654,544436837,1818847351,1986076773,1768188271,220358510,538976266,1852130080,544367988,539766833,1853190690,1735289198,1953392928,1635197039,544435308,1864397423,1919248500,1634628384,779314539,1750343712,1869422693,1847616882,1700949365,2032169842,1696626031,1965061217,220343408,538976266,1852130080,544367988,539767089,1701344290,1919905056,1869619301,1937010281,1970239776,1767991072,1851859054,1752440932,1869357157,1919248238,1970239776,1853038706,543517537,1868784994,779314541,537529634,1126178848,1702129253,858857586,539107372,1701667143,1852785440,1819243124,220340339,538976266,1852130080,544367988,539768113,1193287714,1919250021,538995809,538976288,538976288,1344282656,1702453612,540090482,538976288,538976288,538976288,1817190432]},{"sector":14,"data":[1919252833,538980896,220340256,538976266,1852130080,544367988,539768369,538976290,538976288,538976288,538976288,538976288,538976288,1884629024,538976297,538976288,538976288,538976288,538976288,695227688,538976288,220340256,538976266,1852130080,544367988,539768625,757092386,1969311776,538994035,538976288,538976288,538976288,539107360,1212358699,841491538,723527988,538976800,538976288,538976288,538976288,538976288,538976288,538976343,538976288,537529634,1126178848,1702129253,942743666,539107372,538976288,538976288,538976288,538976288,538976288,1717914664,572533108,1126181664,673469000,539572018,539107371,539107360,1212358699,841491538,723527990,673194528,1751607634,538978676,1699489824,539587686,538976321,1378361412,1952999273,572530729,538970637,1698897952,1919251566,741945632,538976800,538976288,538976288,538976288,538976288,538976288,572530720,1126181664,673469000,539571506,539107371,538976288,538976288,538976288,538976288,538976288,538989344,538976288,168632864,538976288,1953391939,840987237,572533808,538976288,538976288,538976288,538976288,538976288,673194016,1853321028,538976297,538976288,538976288,538976288,1143480352,695105391,538976288,168632864,538976288,1953391939,840987237,572533812,1936028240,1851859059,1701519481,1869881465,1852793632,1970170228,168632933,538970637,1280319520]},{"sector":15,"data":[572545345,827605581,827273270,1145256012,1145259077,1128608844,168632899,538976288,1918988371,1348824171,1702065505,168626701,541347397,222451027,654970122,1702257996,168639084,1952797479,1634148467,1814062445,1818588773,1431505421,1699487810,543974774,1634228008,1148146804,1931488335,2037214561,1092626728,1853038675,1952803681,694513785,1096045344,222513492,538976266,537529632,1394614304,1128614981,1094918228,673203539,1952540759,1329885012,218762537,538976266,1396785952,1414733893,1330926145,223495510,538976266,538976288,1920295712,1702257996,540876908,537529649,1126178848,541414209,1415071054,1163281740,537529676,538976288,1663049760,1699508853,543974774,1969430589,1986350194,723545189,168636704,538976288,541347397,1162626387,168645699,538970637,1634934816,679046509,1747855665,543449445,540090429,538976288,538976288,538976288,538976288,538976288,1227300896,1769236846,2053729377,1850941541,1936026465,538970637,1634934816,679046509,1814964529,1952935525,540876904,537529650,1931485216,2037214561,774451496,1986620513,540876901,1163219540,538970637,1634934816,679046509,1747855666,543449445,221323325,538976266,1835103008,841513325,1701588521,1752459118,840973600,538970637,1634934816,679046509,1630415154,1702259052,1411398944,222647634,537529610,1226842144,1131702638,1919904879,537529715,220209184,538976266,1279611680,542393157]},{"sector":16,"data":[1163084099,1920295712,1702257996,537529708,1126178848,541414209,537529649,538976288,1931485216,2037214561,774451496,544698226,892477501,1634934842,679046509,1915627826,1025537903,221590048,538976266,538976288,1835103008,824736109,1868770857,540876908,540684341,1835884915,691153017,1819239214,857750816,537529648,538976288,1931485216,2037214561,774451496,1701996900,1869182051,540876910,1931491892,2037214561,774451752,1701996900,1869182051,540876910,218762547,537529610,1126178848,541414209,537529650,538976288,1176510496,1763725903,840973600,1330913328,221263392,538976266,538976288,538976288,1952797472,741683744,539781408,1869377379,1650545778,858285420,537529641,538976288,1310728224,542398533,537529705,538976288,1931485216,2037214561,774451496,544698226,976691261,1835103008,841513325,1869753897,540876919,168637236,538976288,538976288,1835884915,691087481,1819239214,908082464,1931491888,2037214561,774451752,543977315,808591421,538970637,538976288,1634934816,679046509,1680746801,1667592809,1852795252,857750816,1634934842,679046509,1680746802,1667592809,1852795252,874528032,168626701,538976288,1163084099,168637216,538976288,538976288,542265158,540876905,1411395633,808722511,538970637,538976288,538976288,1699946528,745087092,741356064,1819239200,1632924271,677735522,168634675,538976288,538976288,538976288,544499027]},{"sector":17,"data":[908078185,1663052848,1919904879,1818386772,691218533,538970637,538976288,1162747936,1763726424,538970637,538976288,1634934816,679046509,1915627825,1025537903,976564768,1835103008,841513325,1869753897,540876919,168637746,538976288,538976288,1835884915,691087481,1819239214,891305248,1931491888,2037214561,774451752,543977315,808656957,538970637,538976288,1634934816,679046509,1680746801,1667592809,1852795252,824196384,1634934842,679046509,1680746802,1667592809,1852795252,840973600,168626701,538976288,1163084099,168637472,538976288,538976288,542265158,540876905,1330913332,221262624,538976266,538976288,538976288,1952797472,539781408,539766834,1869377379,1650545778,858285420,537529641,538976288,538976288,1394614304,891319397,539828275,908078185,1663052848,1919904879,1818386772,691218533,538970637,538976288,1162747936,1763726424,538970637,538976288,1329995808,543760466,540155965,874532692,537529648,538976288,538976288,1394614304,857764965,1763716152,1868767276,1416785772,1701601889,220803880,538976266,538976288,538976288,1952797472,741683488,540096544,745087021,1819239200,1632924271,677735522,168634675,538976288,538976288,1415071054,168651040,538976288,538976288,1835884915,691087481,2003792430,924859680,1634934842,679046509,1915627826,1025537903,221459488,538976266,538976288,1835103008,824736109,1868770857,540876908]}],[{"sector":1,"data":[540684342,1835884915,691153017,1819239214,840973600,537529648,538976288,1931485216,2037214561,774451496,1701996900,1869182051,540876910,1931491891,2037214561,774451752,1701996900,1869182051,540876910,537529652,168632352,538976288,1163084099,168637728,538976288,538976288,542265158,540876905,1411396401,959651919,538970637,538976288,538976288,1699946528,745087092,741421600,1819239200,1632924271,677735522,168634675,538976288,538976288,538976288,544499027,891300969,1663052857,1919904879,1818386772,691218533,538970637,538976288,1162747936,1763726424,538970637,538976288,1329995808,543760466,858923069,542069792,168638261,538976288,538976288,538976288,544499027,539767089,1663052905,1919904879,1818386772,691218533,538970637,538976288,538976288,1699946528,825499764,745087020,1819239200,1632924271,677735522,168634675,538976288,538976288,1415071054,168651040,538976288,538976288,1835884915,691087481,2003792430,840973600,1931491893,2037214561,774451752,544698226,892477501,538970637,538976288,1634934816,679046509,1663969585,1025535087,976237856,1835103008,841513325,1868770857,540876908,168636467,538976288,538976288,1835884915,691087481,1919509550,1769235301,1025535599,540684576,1835884915,691153017,1919509550,1769235301,1025535599,168636960,538970637,1094918176,908084563,538970637,538976288,1329995808,543760466,540287037]},{"sector":2,"data":[874532692,537529657,538976288,538976288,1226842144,543760454,808656958,542265120,540811369,1411396402,223233352,538976266,538976288,538976288,538976288,1952797472,539781408,539766833,1869377379,1650545778,858285420,537529641,538976288,538976288,538976288,1394614304,1763734629,808591404,1868767276,1416785772,1701601889,220803880,538976266,538976288,538976288,538976288,1952797472,539781408,539766835,1869377379,1650545778,858285420,537529641,538976288,538976288,538976288,1394614304,1763734629,808722476,1868767276,1416785772,1701601889,220803880,538976266,538976288,538976288,538976288,1952797472,539781408,539766837,1869377379,1650545778,858285420,537529641,538976288,538976288,538976288,1394614304,1763734629,808853548,1868767276,1416785772,1701601889,220803880,538976266,538976288,538976288,538976288,1952797472,539781408,539766839,1869377379,1650545778,858285420,537529641,538976288,538976288,1159733280,1226851406,537529670,538976288,1310728224,542398533,537529705,538976288,1931485216,2037214561,774451496,544698226,976691261,1835103008,841513325,1869753897,540876919,168637236,538976288,538976288,1835884915,691087481,1819239214,908082464,1931491893,2037214561,774451752,543977315,892411965,538970637,538976288,1634934816,679046509,1680746801,1667592809,1852795252,840973600,1634934842,679046509,1680746802,1667592809]},{"sector":3,"data":[1852795252,824196384,168626701,538976288,1163084099,168638240,538976288,538976288,542265158,540876905,1330913332,540619808,1346720851,168636960,538976288,538976288,538976288,544499027,874523753,1663052848,1919904879,1818386772,691218533,538970637,538976288,1162747936,1763726424,538970637,538976288,1634934816,679046509,1915627825,1025537903,540686112,1835884915,691153017,2003792430,874528032,537529651,538976288,1931485216,2037214561,774451496,543977315,892739645,1634934842,679046509,1663969586,1025535087,221589792,538976266,538976288,1835103008,824736109,1768173097,1952671090,544108393,976363581,1835103008,841513325,1768173097,1952671090,544108393,221323325,537529610,1126178848,541414209,537529656,538976288,1176510496,1763725903,874528032,542069792,168636468,538976288,538976288,538976288,544499027,824192105,1663052848,1919904879,1818386772,691218533,538970637,538976288,538976288,1699946528,859119732,1763716384,808591404,1868767276,1416785772,1701601889,220803880,538976266,538976288,538976288,1952797472,539781408,539766835,1869377379,1650545778,858285420,537529641,538976288,538976288,1394614304,891319397,539828275,874523753,1663052848,1919904879,1818386772,691218533,538970637,538976288,538976288,1699946528,745087092,741356832,1819239200,1632924271,677735522,168634675,538976288,538976288,538976288,544499027]},{"sector":4,"data":[757084981,539781408,539766838,1869377379,1650545778,858285420,537529641,538976288,538976288,1394614304,1763734629,808919084,1868767276,1416785772,1701601889,220803880,538976266,538976288,1480936992,224993364,538976266,538976288,1835103008,824736109,1869753897,540876919,1931491895,2037214561,774451752,544698226,859054141,538970637,538976288,1634934816,679046509,1663969585,1025535087,976565792,1835103008,841513325,1868770857,540876908,168637745,538976288,538976288,1835884915,691087481,1919509550,1769235301,1025535599,540684832,1835884915,691153017,1919509550,1769235301,1025535599,168636704,538970637,1094918176,958416211,538970637,538976288,1329995808,543760466,540418109,874532692,537529655,538976288,538976288,1394614304,1763734629,745087020,1819239200,1632924271,677735522,168634675,538976288,538976288,538976288,544499027,1763716201,840968992,1663052856,1919904879,1818386772,691218533,538970637,538976288,1162747936,1763726424,538970637,538976288,1634934816,679046509,1915627825,1025537903,976237600,1835103008,841513325,1869753897,540876919,168637745,538976288,538976288,1835884915,691087481,1819239214,924859680,1931491893,2037214561,774451752,543977315,221585469,538976266,538976288,1835103008,824736109,1768173097,1952671090,544108393,976298045,1835103008,841513325,1768173097,1952671090,544108393,221388861,538976266]},{"sector":5,"data":[538970637,1094918176,1159742803,222647116,538976266,538976288,1380927008,1025534240,1411396640,959717455,1163154208,221388880,538976266,538976288,538976288,1952797472,539781408,539766833,1869377379,1650545778,858285420,537529641,538976288,538976288,1394614304,1763734629,824191776,808591404,1868767276,1416785772,1701601889,220803880,538976266,538976288,538976288,1952797472,539781408,539766835,1869377379,1650545778,858285420,537529641,538976288,538976288,1394614304,1763734629,824191776,808722476,1868767276,1416785772,1701601889,220803880,538976266,538976288,538976288,1952797472,539781408,539766837,1869377379,1650545778,858285420,537529641,538976288,538976288,1394614304,1763734629,824191776,808853548,1868767276,1416785772,1701601889,220803880,538976266,538976288,538976288,1952797472,539781408,539766839,1869377379,1650545778,858285420,537529641,538976288,1310728224,542398533,537529705,538976288,1931485216,2037214561,774451496,544698226,976691261,1835103008,841513325,1869753897,540876919,168637236,538976288,538976288,1835884915,691087481,1819239214,908082464,1931491893,2037214561,774451752,543977315,892411965,538970637,538976288,1634934816,679046509,1680746801,1667592809,1852795252,840973600,1634934842,679046509,1680746802,1667592809,1852795252,824196384,168626701,538976288,541347397,1162626387,168645699,541347397]},{"sector":6,"data":[222451027,654970122,2036427856,1650616654,980641132,539429389,1767984416,1869750382,1852404853,1752440933,1663071329,1920233071,544435311,1701667175,1634496544,1393167737,1344291413,1316577644,1818387049,673215333,1349350734,1702453612,539784050,1701146739,1679830116,610690665,218762537,538976266,1850287904,1634301033,1702521196,1634620192,225666411,538976266,1296647200,1835103008,1866627437,1294498148,1314084929,1279609665,1413959237,539828296,824192049,542069792,1092626738,1853038675,1113942881,226059375,538976266,1296647200,1835103008,824736109,542069792,1092626738,1853038675,1952803681,224751737,538976266,1835103008,824736109,1768697385,544433526,221585469,538976266,1835103008,824736109,1668492841,543519343,221257789,538976266,1835103008,824736109,1668492841,1919904879,1663057184,1919904879,1818386772,691087461,538970637,1634934816,679046509,1814964530,1936029289,891305248,538970637,1634934816,679046509,1932405042,1701998435,807419168,538970637,1634934816,679046509,1932405042,1869377379,540876914,1869377379,1650545778,841508204,537529641,538976288,538976288,538976288,538976288,538970637,1699487776,543974774,1380013139,1163284308,1931488338,2037214561,168634664,538976288,1918989427,2003784308,540876849,1835884915,691087481,2003792430,1953701946,1131704929,540109935,1634934845,679046509,1663969585,168651887,538976288,1918989427]},{"sector":7,"data":[2003784308,540876850,1835884915,691153017,2003792430,1953701946,1131704929,540175471,1634934845,679046509,1663969586,168651887,538970637,1969430560,1701860210,1025533029,1701868320,168649829,538970637,1881612320,544825708,1650616654,544433516,1769238133,1768300652,1752394094,168649829,538970637,1884495904,1348821857,1702065505,538976800,1277173792,1818588773,539697186,609375315,1920295720,1702257996,723528044,539763232,1937068064,1884495976,577069921,538970637,1634148384,1984914797,1025536613,1279346208,168641875,538976288,168644420,538976288,538976288,1310737993,1817210229,1919252833,540876915,1213472817,168644165,538976288,538976288,538976288,1835884915,691153017,2003792430,807419168,538970637,538976288,1313153056,1179197508,168626701,538976288,538976288,1651340654,1025536613,538980640,538976288,538976288,1920287527,1953391986,1836412448,544367970,1952540788,1634628384,544433515,543519329,1769566836,1948280686,1970413679,1852383342,168652660,538976288,538976288,1970171758,540876909,1163219540,538976288,538976288,1852796455,1025535349,1431458848,1718165573,1847615776,1700949365,1936269426,1953459744,544108320,543516788,1701995379,168652389,538970637,538976288,1819287584,1919252833,1684367684,1176517920,1163086913,538970637,538976288,1917853728,1400139369,1701998435,1836404256,2036427856,745763429,1835103008,824736109,1668492841]},{"sector":8,"data":[744845935,1835103008,841513325,1668492841,744845935,1835103008,824736109,1768697385,745760118,1835103008,841513325,1768697385,225666422,538976266,538976288,1095520288,1411522649,1328559665,843857457,1162101552,1279542084,1128607793,168632899,538970637,538976288,1329864736,538970637,538976288,538976288,1344741408,1953393010,1836412448,544367970,1847617129,1970151535,1919246957,1769497888,225670259,538976266,538976288,538976288,541477152,1970171758,540876909,1163219540,1162368032,537529678,538976288,538976288,538976288,1142956064,537529679,538976288,538976288,538976288,538976288,1847599136,1700949365,2003784306,1226849568,1378374734,824722510,539631657,723531572,220803872,538976266,538976288,538976288,538976288,538976288,1836404256,1131570530,1025535087,1414416672,1145983528,539570472,943136810,840968992,537529641,538976288,538976288,538976288,538976288,1931485216,1702130537,2003784306,1847606560,1700949365,2003784306,1629498144,1634624882,1836412456,1383228770,539785071,1651340622,1866691173,1932405100,1702130537,537529714,538976288,538976288,538976288,1277173792,542134095,1230261845,1330520140,1867522132,1232367209,1701336179,1848141170,1700949365,2003784306,1968054316,1919246957,745303875,1819239200,1632924271,677735522,539568436,541347393,542396238,1852403536,1416841588,1701995880,1936290600,1383228788,539785071,1651340622]},{"sector":9,"data":[1866691173,1663052908,1919904879,1818386772,691284069,537529641,538976288,538976288,538976288,1847599136,1700949365,2003784306,1629502752,1634624882,1836412456,1383228770,539785071,1651340622,1866691173,1915627884,1382834533,168654703,538976288,538976288,538976288,538976288,1970171758,540876909,1397506374,537529669,538976288,538976288,538976288,1126178848,1380928591,1819239200,1632924271,677735522,539765041,1869377379,1650545778,875062636,537529641,538976288,538976288,538976288,1277173792,1413563215,1970151493,1919246957,746024786,1836404256,1131570530,168651887,538976288,538976288,538976288,538976288,1313428048,1230118996,609503303,1381258024,1970153508,1919246957,824192041,168639273,538976288,538976288,538976288,538976288,1853189987,540876916,537529648,538976288,538976288,1159733280,1226851406,218762566,538976266,538976288,538976288,1698965280,544825708,1701667175,538970637,538976288,538976288,1329995808,593567826,824196384,542069792,1400010083,1684366704,1310728250,542398533,168633185,538970637,538976288,538976288,1193746464,1797289061,1868724581,543453793,1970302569,539369588,1851877443,1679844711,1667592809,1852795252,1667457312,1768190575,2037147502,538970637,538976288,538976288,1651187744,1025516644,1263421728,220485957,538976266,538976288,538976288,1279611680,542393157,1163084099,1684171552,537529636,538976288]},{"sector":10,"data":[538976288,538976288,1126178848,541414209,740456226,576135712,1179197498,1835103008,841513325,1768173097,1952671090,544108393,840973884,1162368032,1634934862,679046509,1680746802,1667592809,1852795252,824196384,538970637,538976288,538976288,538976288,1094918176,572540243,539763315,975328034,541477152,1835884915,691153017,1919509550,1769235301,1008758383,540090430,1313163348,1835103008,841513325,1768173097,1952671090,544108393,221388861,538976266,538976288,538976288,538976288,1396785952,1629626437,572533794,540680769,1931494985,2037214561,774451752,1701996900,1869182051,1044127854,1411396640,542000456,1835884915,691153017,1919509550,1769235301,1025535599,168637216,538976288,538976288,538976288,538976288,1163084099,576987680,1143087148,1226848802,1634934854,679046509,1680746802,1667592809,1852795252,540949536,1213472819,1931497029,2037214561,774451752,1701996900,1869182051,540876910,537529652,538976288,538976288,538976288,1126178848,541414209,609372227,539570216,1210196011,1226848802,1634934854,679046509,1680746801,1667592809,1852795252,540949536,1213472818,1931497029,2037214561,774451496,1701996900,1869182051,540876910,537529649,538976288,538976288,538976288,1126178848,541414209,609372227,539570216,1344413739,1226848802,1634934854,679046509,1680746801,1667592809,1852795252,540949536,1213472817,1931497029,2037214561,774451496]},{"sector":11,"data":[1701996900,1869182051,540876910,537529650,538976288,538976288,538976288,1126178848,541414209,609372227,539570216,1260527659,1226848802,1634934854,679046509,1680746801,1667592809,1852795252,540949536,1213472820,1931497029,2037214561,774451496,1701996900,1869182051,540876910,537529651,538976288,538976288,538976288,1126178848,541414209,609372227,539570216,1294082091,1226848802,1634934854,679046509,1680746801,1667592809,1852795252,540949536,1213472819,1931497029,2037214561,774451496,1701996900,1869182051,540876910,537529652,538976288,538976288,538976288,1126178848,541414209,740454434,575676960,1884495930,1348821857,1702065505,1193288224,543518049,1937072464,773874789,1344286254,543716213,1667330131,572530789,538970637,538976288,538976288,538976288,1094918176,1159742803,222647116,538976266,538976288,538976288,1145980192,1279611680,223626053,537529610,538976288,538976288,1176510496,1629508175,824196384,542069792,1349350734,1702453612,168653682,538976288,538976288,538976288,538976288,1987005735,1850941541,224750433,538976266,538976288,538976288,538976288,1279611680,542393157,1163084099,1835103008,1630042477,1768173097,1952671090,225341289,538976266,538976288,538976288,538976288,538976288,1396785952,976298053,1835103008,1630042477,1869753897,540876919,1835884915,694233209,2003792430,824192288,538970637,538976288,538976288]},{"sector":12,"data":[538976288,538976288,1094918176,840975699,1634934842,679046509,1915627873,1025537903,1835103008,1630042477,1869753897,539697271,537529649,538976288,538976288,538976288,538976288,1126178848,541414209,1931491891,2037214561,774463784,543977315,1634934845,679046509,1663969633,757099631,168636704,538976288,538976288,538976288,538976288,538976288,1163084099,540685344,1835884915,694233209,1819239214,1931492640,2037214561,774463784,543977315,221323307,538976266,538976288,538976288,538976288,1145980192,1279611680,223626053,537529610,538976288,538976288,538976288,656416800,1931503177,1701536110,1953064992,1970151539,1919246957,1701978156,1852797043,1667309668,1685221219,1818717801,537529721,538976288,538976288,538976288,1226842144,1970151494,1919246957,544698194,1313415229,1932011604,2037214561,774463784,544698226,691085355,840970016,1312890921,1968054340,1919246957,543977283,1634934845,679046509,1663969633,1411411055,223233352,538976266,538976288,538976288,538976288,538976288,1095520288,1294082137,1278234434,1128150577,574964547,538970637,538976288,538976288,538976288,538976288,1179197472,1835103008,1630042477,1701588521,1752459118,673201184,1398292813,1162559822,1196311884,757090388,691024672,1162368032,537529678,538976288,538976288,538976288,538976288,538976288,1931485216,2037214561,774463784,1735288172,1025534068,1835103008]},{"sector":13,"data":[1630042477,1701588521,1752459118,1847601952,1700949365,539631730,537529652,538976288,538976288,538976288,538976288,1159733280,1226851406,537529670,538976288,538976288,538976288,538976288,1931485216,2037214561,774463784,1919902579,540876901,1835884915,694233209,1868788526,723543410,1836412448,225600866,538976266,538976288,538976288,538976288,538976288,1769099296,1666413678,543519343,1349350734,1702453612,539784050,1835884915,691087481,1868788526,539780466,1835884915,691153017,1868788526,539780466,1835884915,691087481,1986620462,539784037,1835884915,691153017,1986620462,168653669,538976288,538976288,538976288,538976288,538976288,1651340654,1025536613,1836412448,544367970,221323307,538976266,538976288,538976288,538976288,538976288,541477152,1651340654,1025536613,540029216,1313163348,538970637,538976288,538976288,538976288,538976288,538976288,1917132832,1399157601,1701536110,1835103008,690518381,1634934828,1115254125,679044207,824192041,538970637,538976288,538976288,538976288,538976288,538976288,1917132832,1399157601,1701536110,1835103008,690518381,1634934828,1115254125,679044207,840969257,538970637,538976288,538976288,538976288,538976288,538976288,1330389024,1163149635,1836412448,1383228770,539785071,1651340622,1866691173,1344289388,1414416722,572531232,538970637,538976288,538976288,538976288,538976288,538976288]},{"sector":14,"data":[1699487776,543974774,1415071054,1163281740,1931488332,2037214561,168634664,538976288,538976288,538976288,538976288,538976288,538976288,1852404304,1868780404,1310745970,1817210229,1919252833,1931488371,2037214561,774451496,1919902579,1931488357,2037214561,774451752,1919902579,1931488357,2037214561,774451496,1702259052,1931488371,2037214561,774451752,1702259052,537529715,538976288,538976288,538976288,538976288,538976288,1394614304,1701011824,1937072464,539107429,538976288,1702257996,723526252,1381258016,1969432612,1986350194,539585637,740433963,1968185376,1394632819,1701011824,537529634,538976288,538976288,538976288,538976288,538976288,1226842144,1968054342,1634488429,1936876921,824196384,1162368032,1634934862,679046509,1915627826,1025537903,168636448,538976288,538976288,538976288,538976288,538976288,538976288,1651340654,1025536613,168636704,538976288,538976288,538976288,538976288,538976288,538976288,1679836745,610690665,572538144,1411392080,542000456,1701146739,540876900,1701146739,539828324,540684337,1400010083,1684366704,1931492640,1684366704,538970637,538976288,538976288,538976288,538976288,1313153056,1179197508,538970637,538976288,538976288,538976288,538976288,1869488160,544044398,1381244989,168641877,538976288,538976288,538976288,538976288,538976288,1663059529,1884516981,543450469,540090428,1313163348,1920295712]},{"sector":15,"data":[1701146707,540876900,537529649,538976288,538976288,538976288,1159733280,1226851406,537529670,538976288,538976288,1310728224,542398533,218762593,538976266,538976288,538976288,1380927008,1025532192,1411395872,1968054351,1634488429,1936876921,538970637,538976288,538976288,538976288,1227300896,1819287654,1919252833,1853190688,1852383347,1629515636,1881176430,1953393007,1919885356,1701344288,1634035744,1718558820,1701344288,1752461088,1931506277,1701536110,1953046572,1701405728,168636019,538976288,538976288,538976288,538976288,1344292425,1953393007,1750365001,677737061,1835884915,694233209,2003792430,1634934828,679046509,1663969633,539782255,1869377379,1650545778,875062636,1327507753,1932009554,2037214561,774451496,544698226,1634934845,679046509,1915627826,1092646767,1931494478,2037214561,774451496,543977315,1634934845,679046509,1663969586,539585647,1313163348,538970637,538976288,538976288,538976288,538976288,1280319520,572545345,810500685,1160917836,1178945350,220349252,538976266,538976288,538976288,538976288,538976288,1280262944,740315727,1819239200,1632924271,677735522,168634676,538976288,538976288,538976288,538976288,538976288,1094930252,1847608660,1700949365,2003784306,1968054316,1919246957,225210179,538976266,538976288,538976288,538976288,538976288,1230131232,572544078,168632864,538976288,538976288,538976288,538976288]},{"sector":16,"data":[220209184,538976266,538976288,538976288,538976288,538976288,1634496544,1148347769,543450473,1381244989,168641877,538976288,538976288,538976288,538976288,538976288,1835884915,694233209,1768710446,1025533302,1279346208,168641875,538976288,538976288,538976288,538976288,538976288,1835884915,694233209,1986620462,1025536869,1835103008,1630042477,1768697385,544433526,221323309,537529610,538976288,538976288,538976288,656416800,1701344335,1936291698,1830825061,543520367,543516788,1801547379,1629498469,1696621678,1702060402,1701344288,1767994400,537529708,538976288,538976288,538976288,1159733280,222647116,538976266,538976288,538976288,538976288,538976288,1835103008,1630042477,1701326377,1025533025,1634936864,679046509,1747855713,543449445,691085355,1146047776,1480674592,1262571091,1313164357,222843975,538976266,538976288,538976288,538976288,538976288,1835103008,1866627437,1932032356,2037214561,774463784,1684104552,694231084,2003792430,1931492640,2037214561,774463784,225931122,538976266,538976288,538976288,538976288,538976288,1835103008,1866627437,1932032356,2037214561,774463784,1684104552,694231084,1819239214,1931492640,2037214561,774463784,225210211,538976266,538976288,538976288,538976288,538976288,1767994400,540876908,1835103016,1630042477,1701326377,723543137,1480674592,1262571091,1313164357,541611079,1634934829,679046509]},{"sector":17,"data":[1814964577,1952935525,1293953384,1293960271,1314084929,1279609665,1413959237,537529672,538976288,538976288,538976288,538976288,1394614304,1931506789,2037214561,2036625218,1767994408,1629498476,1869753897,1931488375,2037214561,2036625218,1767994408,1629498476,1868770857,1663052908,1919904879,1818386772,691284069,538970637,538976288,538976288,538976288,538976288,1634934816,1115254125,679044207,1818845556,694231084,2003792430,807419168,538970637,538976288,538976288,538976288,538976288,1699946528,1634934900,679046509,1915627873,539785071,1835884915,694233209,1819239214,1634934828,679046509,1932405089,1869377379,537529714,538976288,538976288,538976288,1159733280,1226851406,537529670,538976288,538976288,1310728224,542398533,218762593,538976266,538976288,1330596896,1314201680,541870420,2036427888,1766093413,168649829,538970637,538976288,1969430560,1701860210,1025533029,1701868320,538993765,538976288,538976288,538976288,539435040,1702061426,1886593140,543450469,1763733364,1769236846,1981836385,1702194273,538970637,538976288,537529632,538976288,1176510496,1629508175,824196384,542069792,1349350734,1702453612,168653682,538976288,538976288,538976288,1935766085,1634620261,1931502955,2037214561,539765032,1835884915,1685013113,740894841,168648992,538970637,538976288,538976288,1227300896,1701060710,539780193,1852139636,1634886944,1931502963]}],[{"sector":1,"data":[1701536110,544106784,1818322290,1663072620,543977327,226058615,538976266,538976288,538976288,541477152,1835884915,694233209,1768710446,1025533302,1279346208,1411401043,223233352,538976266,538976288,538976288,538976288,1884628768,1702125924,1868788512,168650098,538976288,538976288,538976288,538976288,1835884915,694233209,1868788526,1025533298,1835103008,1630042477,1668492841,543519343,808525869,538970637,538976288,538976288,538976288,1917853728,1400139369,1701998435,1836404256,2036427856,745763429,1835103008,824736109,1668492841,744845935,1835103008,841513325,1668492841,744845935,1835103008,824736109,1768697385,745760118,1835103008,841513325,1768697385,225666422,538976266,538976288,538976288,538976288,537529632,538976288,538976288,538976288,1226842144,543236166,540090429,1313163348,538970637,538976288,538976288,538976288,538976288,1884495904,1348821857,1702065505,1394614816,2037214561,1701397536,1344282995,543716213,1667330131,757080421,574500141,538970637,538976288,538976288,538976288,1279598624,168641875,538976288,538976288,538976288,538976288,538976288,1667330131,1969311845,572548467,757939232,1243622701,543517537,1936025924,1968185377,1394632819,1701011824,168632864,538976288,538976288,538976288,538976288,541347397,168642121,538976288,538976288,538976288,541347397,168642121,538976288,538976288,1415071054]},{"sector":2,"data":[168648992,538970637,538976288,1699487776,543974774,1162690899,1163281740,1931488332,2037214561,168634664,538976288,538976288,1852404304,1868780404,1310745970,1817210229,1919252833,1931488371,2037214561,774451496,1919902579,1931488357,2037214561,774451752,1919902579,1931488357,2037214561,774451496,1702259052,1931488371,2037214561,774451752,1702259052,537529715,538976288,538970637,1344741408,544825708,1954047342,1970237984,539780206,1769238133,1768235116,1919248500,543584032,1801547379,544417637,1702259052,1634214003,1914725750,1864396405,221148277,538976266,1330596896,1314201680,541870420,1835884915,691087481,1986620462,1025536869,1327509536,1634934866,679046509,1814964530,1936029289,807419168,168626701,541347397,222451027,654970122,1852403536,1416841588,1701995880,654970170,1749229600,1936417637,1701344288,1869375264,543973730,1701994784,1629512046,2036429426,544175136,543516019,1948280425,1646290280,1701605231,1713401441,543646060,1931506537,168653925,1129207110,1313818964,1768902688,1934193774,1919248468,1915232357,539785071,745303907,1868783904,695365484,538970637,1179197472,2003792416,540949536,1213472816,168644165,538976288,538976288,1629505097,1634624882,2003792424,1868767276,1630415212,1869377379,1044127858,1868783904,544370540,1313163348,538970637,538976288,538976288,1867522080,1232367209,1701336179,1025533298,1431458848,537529669]},{"sector":3,"data":[538976288,1159733280,222647116,538976266,538976288,538976288,1768902688,1934193774,1919248468,540876901,1397506374,537529669,538976288,1159733280,1226851406,537529670,1159733280,1226851406,1158286662,1176519758,1413697109,223235913,654970122,1852404304,1868780404,221930866,538978058,1852404304,1881174900,1702453612,1931506546,1701998435,1851859059,1970151524,1919246957,543584032,1702259052,1701978227,1852399981,224882281,1112888074,1769099296,1666413678,543519343,1836404264,2036427856,745763429,1868788512,741434738,1868788512,741500274,1986620448,741438309,1986620448,691172197,538970637,1329799200,542265164,539768113,1869377379,1650545778,875062636,218762537,538976266,541477152,1349350734,1702453612,1025536882,1411396128,223233352,538976266,538976288,1129270304,541414465,824192049,538970637,538976288,1380982816,542395977,1313428309,589439047,589505324,808461100,1766596640,980641142,538977056,1244474684,574966593,1668489275,845509231,1768693819,846423414,538970637,1313153056,1179197508,168626701,538976288,1094930252,824198484,959717420,538970637,1380982816,542395977,1313428309,1394745415,1498238273,540945709,1986612256,540701541,538976291,740499488,740500259,573583395,1768693819,829646198,1668489275,828732015,1313147405,1431511108,218762562,1699948298,168639092,1394614311,544437349,544698226,543452769,1970040675,1864396397]},{"sector":4,"data":[1819287662,1852406113,1768300647,543452261,1730178932,1852143209,1819239200,1948283503,1634082927,1768712547,1702125940,1987013920,224882281,538978058,1931503215,1701536110,1918967923,1684960623,1701344288,1701406240,221144172,1112888074,1952797472,1869752352,1663052919,539782255,1819239265,220820079,538976266,541477152,544698226,807419452,1162368032,537529678,538976288,1629495328,1634624882,2003792424,1868767276,1630415212,1869377379,540876914,1819239265,538997359,538976288,538976288,656416800,1769173857,1663069799,1919904879,544175136,1852142177,537529697,538976288,1914708000,1382834533,1025537903,1701994784,1915249006,539785071,694972259,1634038318,2003784300,538976288,538976288,656416800,544499015,1818322290,2003792416,543584032,1702390128,537529708,538976288,1948262432,1816555631,1025533793,1701994784,1915249006,539785071,694972259,1936290606,544367988,540090411,540155951,656416800,1969513796,1998611811,1752458600,1881174629,1818589289,538970637,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,1764171808,1852776563,1886352416,1864379615,1868701810,1836020852,537529820,538976288,1931485216,1702130537,2003784306,1914715424,723548015,1701994784,1915249006,539785071,694972259,1936290606,544367988,656416800,544499015,1852142177,1869750369,1718558839,1936290592]},{"sector":5,"data":[225600884,538976266,538976288,1936290592,1131570548,1919904879,1629502752,1634624882,1936290600,1383228788,539785071,694972259,1868783918,544370540,1698965280,1836213620,543518313,1953720691,1931965029,1819239200,168653423,538970637,538976288,1330389024,1163149635,1634038304,2003784300,1868767276,218762604,538976266,538976288,541477152,1819239265,1025536623,1936290592,1131570548,1919904879,1162368032,538976334,538976288,538976288,538976288,1716070176,1953456672,1869619304,1937010281,1701994784,1835103008,537529701,538976288,538976288,1126178848,1380928591,1868783904,745697132,1868783904,544370540,538976288,538976288,538976288,538976288,538976288,538976288,1344741408,1953393010,1919443744,825370660,572533049,168633051,538976288,538976288,538976288,1313428048,1212358740,841491538,992557361,538970637,538976288,1279598624,168641875,538976288,538976288,538976288,1948272201,1816555631,1411409761,542000456,538976288,538976288,538976288,538976288,538976288,538976288,1852396327,2032166243,1663071599,1869508193,1634214004,168650102,538976288,538976288,538976288,538976288,1629505097,1869377379,540942450,1213472823,538988101,538976288,538976288,538976288,538976288,1769103911,544499815,1801675106,1970238055,225666158,538976266,538976288,538976288,538976288,538976288,1280262944,1629508175,1869377379,1931488370,1702130537,1819231090]},{"sector":6,"data":[538997359,538976288,1701062432,1836213620,543518313,1953719650,1836016416,168652642,538976288,538976288,538976288,538976288,538976288,1313428048,1212358740,841491538,992555826,538976288,538976288,538976288,538976288,544175143,778400629,538970637,538976288,538976288,538976288,1279598624,168641875,538976288,538976288,538976288,538976288,538976288,1330401091,1769152594,1919251571,1869377347,1629498482,1869377379,537529714,538976288,538976288,538976288,538976288,1344282656,1414416722,1380467488,842147876,221980976,538976266,538976288,538976288,538976288,1145980192,222710048,538976266,538976288,538976288,1397507360,537529669,538976288,538976288,538976288,1226842144,1667309638,1919904879,924859936,1162368032,537529678,538976288,538976288,538976288,538976288,1126178848,1380928591,1868783904,745697132,1936290592,1131570548,1919904879,538970637,538976288,538976288,538976288,538976288,1380982816,542395977,609372227,808596008,168639273,538976288,538976288,538976288,538976288,1163086917,538970637,538976288,538976288,538976288,538976288,1329799200,542265164,1953720691,1866691173,745697132,1868783904,225603436,538976266,538976288,538976288,538976288,538976288,1230131232,1126192206,673469000,691221042,537529659,538976288,538976288,538976288,1159733280,1226851406,537529670,538976288,538976288,1159733280,1226851406]},{"sector":7,"data":[537529670,538976288,1159733280,1226851406,537529670,1159733280,1226851406,1158286662,1394623566,168641109,1395067405,1701011824,1937072464,168639077,1344282663,1702065505,1634148467,1881171309,544825708,543452769,1953063287,1868963955,1886593138,543515489,544366946,1646292852,1919950949,1702064997,1700929636,1701998438,1852793632,1970170228,224882281,1112888074,1634751264,1632658787,543519605,2019914792,220800116,537529610,1126178848,1380928591,1819239200,1632924271,677735522,539765045,1869377379,1650545778,908617068,537529641,1126178848,1702129253,825303154,-618520532,-538976289,-538976289,-538976289,-538976289,-538976289,-538976289,-538976289,-606085153,537529634,1126178848,1702129253,842080370,-618520532,723526176,1178946592,1948787796,611612773,1394617120,1162035536,959588388,840969257,723527993,-618651104,537529634,1126178848,1702129253,858857586,-618520532,-589505316,-589505316,-589505316,-589505316,-589505316,-589505316,-589505316,-606282532,537529634,1461723168,1162627400,1263421728,539253061,572538428,1461729826,222580293,538976266,1229477664,1226851660,1497713486,1044127780,572531232,1163337786,168641614,538976288,1330401091,892411986,1868767276,1416785772,1701601889,220804136,537529610,1176510496,1763725903,840973600,1330913329,540422688,538976288,538976288,656416800,1936020000,1701998452,1701344288,1919120160,544105829,1801675106]},{"sector":8,"data":[1970238055,168649838,538976288,538976288,542265158,540876906,1411396658,909451343,538970637,538976288,538976288,1699946528,745087092,539781664,1852142177,745089121,774466080,1819239265,168653423,538976288,538976288,1415071054,168651296,538976288,1415071054,168651040,1313147405,1431511108,218762562,1884497674,1818980961,1969311845,221930867,538978058,1634038339,544433524,1935764582,1735289192,1919902240,544367972,544370534,1920233065,1668489327,1852138866,1431505421,1884495938,1818980961,1969311845,168650099,538970637,1329799200,542265164,807414836,538970637,610344992,572538144,538976298,538978848,539631648,706748448,538976288,538976298,538978848,539631648,706748448,538976288,538976298,538978848,539631648,706748448,538976288,538976298,538978848,539631648,706748448,538976288,538976298,168632864,538976288,1279871063,1313415237,609830219,540949536,540680738,1145980247,1816340256,544366949,1652122987,1685217647,1718968864,225600870,537529610,1461723168,1162627400,1263421728,539253061,572661821,538970637,538976288,1329995808,543236178,540090429,891309908,538970637,538976288,538976288,1330389024,1163149635,539767072,538976305,538976288,538976288,538976288,538976288,538976288,538976288,1881612320,1953393010,1919903776,1852799593,543973748,1918988403,1936026731,538970637,538976288,538976288,1380982816,542395977]},{"sector":9,"data":[608454989,740581672,539779360,992555064,538970637,538976288,538976288,1330389024,1163149635,741487136,168636704,538976288,538976288,538976288,1313428048,1229791316,1630020676,908078116,1629498656,808984620,168639273,538970637,538976288,538976288,1329995808,543301714,540155965,840978260,538976305,538976288,538976288,538976288,538976288,538976288,1344741408,1953393010,1919243808,1633905012,1886593132,1818980961,168653669,538976288,538976288,538976288,538976288,540876899,723542312,539583008,541347661,537529653,538976288,538976288,538976288,1226842144,543367238,540090429,1313163348,538970637,538976288,538976288,538976288,538976288,1330389024,1163149635,539779616,168636472,538976288,538976288,538976288,538976288,538976288,1313428048,706879572,168639266,538976288,538976288,538976288,538976288,538976288,1094930252,840975700,539828275,824192098,538970637,538976288,538976288,538976288,538976288,1380982816,542395977,992094754,538970637,538976288,538976288,538976288,1279598624,168641875,538976288,538976288,538976288,538976288,538976288,1094930252,1646282068,808984620,538970637,538976288,538976288,538976288,538976288,1380982816,542395977,992092194,538970637,538976288,538976288,538976288,538976288,1330389024,1163149635,540226080,744628269,168636704,538976288,538976288,538976288,538976288,538976288]},{"sector":10,"data":[1313428048,539107412,168639266,538976288,538976288,538976288,538976288,541347397,168642121,538976288,538976288,538976288,1415071054,168649248,538976288,538976288,1415071054,168648992,538976288,1145980247,168626701,541347397,222451027,654970122,1818850387,1851873132,1867805556,2036427856,654970170,1698963488,1836213620,1936027241,543582496,1919251317,1635197043,1948284014,1819287663,1730181473,543518049,1767991137,168636014,1129207110,1313818964,1769231136,1633119340,1416852590,1634488431,218762617,538976266,1280262944,1663062607,1919904879,1818386772,691349605,1868767276,1416785772,1701601889,220804648,538976266,1852130080,544367988,539766833,-538977502,-538976289,-538976289,-538976289,-538976289,-538976289,-538976289,-538976289,220388319,538976266,1852130080,544367988,539767089,539024162,538976288,1092634400,1159744800,1327505440,1159747104,538989088,538976288,220388128,538976266,1852130080,544367988,539767345,539024162,538976288,538976288,538976288,538976288,538976288,538976288,538976288,220388128,538976266,1852130080,544367988,539767601,539024162,538976288,2036427856,1634156832,541027945,1495801888,539577903,538976288,220388128,538976266,1852130080,544367988,539767857,-589505758,-589505316,-589505316,-589505316,-589505316,-589505316,-589505316,-589505316,220388316,537529610,1461723168,1162627400,1263421728,539253061]},{"sector":11,"data":[572538428,1461729826,222580293,538976266,223298592,538976266,538976288,1684171552,540876836,1396786005,1227367493,1497713486,168634660,538976288,1347374924,1414419744,1797278793,539255906,1495408701,1380917282,1684171552,540876836,220352034,537529610,1126178848,1380928591,741683488,1819239200,1632924271,677735522,168634676,538976288,1953391939,824210021,572533808,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,168632864,538976288,1953391939,824210021,572533809,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,168632864,538976288,1953391939,824210021,572533810,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,168632864,538976288,1953391939,824210021,572533811,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,168632864,538976288,1953391939,824210021,572533812,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,168632864,538970637,1179197472,1684171552,540876836,539121954,1313163348,538970637,538976288,1951604768,1466723433,1937010273,1817210708,1025538401,1431458848,537529669,1159733280,222647116,538976266,538976288,1769231136,1633119340,1416852590,1634488431,540876921,1397506374,537529669,538976288,1126178848,1380928591,539768608,537529648,538976288]},{"sector":12,"data":[1126178848,168645452,538976288,541347397,168642121,1313147405,1430659140,1230259022,168644175,538577421,538976288,1310728224,542398533,218762593,538976266,538976288,538976288,1380927008,1025532192,1411395872,1968054351,1634488429,1936876921,538970637,538976288,538976288,538976288,1227300896,1819287654,1919252833,1853190688,1852383347,1629515636,1881176430,1953393007,1919885356,1701344288,1634035744,1718558820,1701344288,1752461088,1931506277,1701536110,1953046572,1701405728,168636019,538976288,538976288,538976288,538976288,1344292425,1953393007,1750365001,677737061,1835884915,694233209,2003792430,1634934828,679046509,1663969633,539782255,1869377379,1650545778,875062636,1327507753,1932009554,2037214561,774451496,544698226,1634934845,679046509,1915627826,1092646767,1931494478,2037214561,774451496,543977315,1634934845,679046509,1663969586,539585647,1313163348,538970637,538976288,538976288,538976288,538976288,1280319520,572545345,810500685,1160917836,1178945350,220349252,538976266,538976288,538976288,538976288,538976288,1280262944,740315727,1819239200,1632924271,677735522,168634676,538976288,538976288,538976288,538976288,538976288,1094930252,1847608660,1700949365,2003784306,1968054316,1919246957,225210179,538976266,538976288,538976288,538976288,538976288,1230131232,572544078,168632864,538976288,538976288,538976288,538976288]},{"sector":13,"data":[654970151,1293951008,1869767529,1952870259,1835356704,1701734732,1277177120,543518313,1651340622,1377858149,1987013989,1428188257,1768712564,168655220,538976295,2037411651,1751607666,1126703220,1766662185,1936683619,544499311,1886547779,1952543343,544108393,892877105,960049453,654970160,539429389,1163010080,1313426509,1094856261,1936269395,1881170208,1919381362,1948282209,1701978223,1702260589,1852402720,1970151525,1919246957,1919295603,1293970799,1869767529,1952870259,1935753760,168649577,538976295,1735357008,1936548210,1950949422,1835364896,1936029295,1819176736,1752440953,543519599,1701734764,1836412448,1936876898,1634235424,1918967924,1869488229,1752440948,1651449957,1952671082,539429389,1718558752,1701736224,543584032,543516788,1819045734,1852405615,1953701991,1835365473,1937010277,1330061370,742544723,1413829152,743330389,1414481696,1411394639,743327048,1397507360,168635461,538976295,1431520594,539772237,1414743378,742740559,544370464,776885586,220662285,538978058,1701336864,1163010158,1313426509,1936269381,1853190688,1953046572,1818851104,1935745132,1868963947,1752440946,1634607205,1864394093,1752440934,1768300645,1948280172,1700929647,539429389,1919950880,1936024431,543450483,543452769,543516788,1701667182,543584032,543516788,1701603686,544370464,1769366884,1948280163,1701978223,1986618723,1752440933,654970213,1914708000,1919903333,1953784173]},{"sector":14,"data":[1864393829,1970304117,1226845812,1869488230,1954047264,1769172581,1763733103,1768366195,745432438,1094856224,1936269395,1936941344,1684368757,2019895328,1953523043,539429389,1868963872,1970217074,1953853556,1986356256,1936024425,1226845737,1768300646,1634624876,544433517,543519329,544501614,1702259047,1377840238,1229737285,1881163086,1886220146,1713402740,168653423,538976295,1701603686,1835101728,539915109,1646290505,543716463,1701603686,1701667182,1918967923,1752440933,1634934885,539780461,1280132434,541412937,1702257011,1752440947,1919885413,1852401513,168651873,538976295,1701603686,1953068832,1752440936,2019893349,1936614772,544108393,1262567982,654970158,539429389,1163010080,1313426509,1634541637,544433515,1702258035,543973746,1970500449,1769238637,544435823,1970233953,1752440948,1919950949,1634887535,168639085,654970151,538976288,539898144,1830843465,544502645,1663067490,1701999215,1931506787,1635020409,1667855459,2037148769,1851858988,1970085988,1914729587,1763733109,1094852718,1094928723,225603360,538978058,538976288,1464279072,1396785709,1763722057,1919251566,1952805488,221147749,538978058,840966176,1750343726,543519333,1629516649,808465440,1852402720,1768693861,779381101,544166944,1668248176,544437093,1735549292,1713402469,1936026729,1751326764,1701277281,539429389,538976288,1293951008,1766619233,544433518,1936617315,1953390964,654970158]},{"sector":15,"data":[538976288,539898656,543516756,1936877926,1970151540,1919246957,1668179232,1953396079,1684370021,544108320,1768693857,1763730798,1868767347,1684632430,1684370021,1814061344,224751209,538978058,538976288,1970151456,1919246957,1752440891,1931506549,543518063,1953394531,1635085929,1852795252,1852402720,673215333,1629515369,1836016416,1701603696,1886596466,1718182757,168649577,538976295,538976288,1852793632,1970435187,1869182051,1830824302,1847621985,1646294127,1634213989,1701602414,1868767332,1667592818,779709556,539429389,538976288,1377840692,1229737285,1663059278,1746955873,1818521185,1769152613,1701605485,1635021600,1701668212,544437358,1952540788,1936028704,1752440948,1380261989,1969627212,1769235310,168652399,538976295,538976288,1769174304,538994542,1634493810,1852795252,1864395873,1634887024,1936879476,1668641568,1935745128,539770144,1629498428,1042310254,1866866734,2019893362,1819307361,168635493,538976295,538976288,1701344288,1819239968,1769434988,1931503470,1702125940,1953391981,544434464,1684955496,543450476,1920102243,1819566949,168639097,654970151,538976288,538976288,538976288,541477152,541872709,808525885,1213472816,1159745093,168641614,654970151,538976288,538976288,1701734732,808464672,544434464,544501614,1869440370,543450486,1836020326,1701344288,1970238240,543515506,1701080931,1866997806,1702258039,1830825074,224752239,538978058]},{"sector":16,"data":[538976288,1868767264,1701605485,2019893368,1936028272,1852795251,1752440947,1663071329,1635020399,1948282473,723543400,741154860,1145979168,1380917292,1331175468,1159736402,221009489,538978058,538976288,1330454560,1864379460,1296638066,1886330960,1952543333,544436847,544825709,544501614,1746953570,1818521185,1663067237,1701999215,2037150819,1866866734,2019893362,1819307361,168635493,538976295,538976288,544106784,543516788,1819045734,1852405615,1953701991,1835365473,544501349,1280132434,541412937,1936027492,1953459744,1667592736,1768843119,1814062458,543518313,221589553,538978058,538976288,1935745056,1914724640,1919247973,1701015141,1768693860,1847616878,1700949365,1851859058,1701978212,1702260589,1953046643,1869768224,1752440941,1869815909,1701016181,1685021472,168639077,654970151,538976288,538976288,538976288,541477152,541872709,540352555,808525885,1213472821,1159745093,168641614,654970151,1226842144,1870209126,1868832885,1953459744,1802071072,1752440933,1635197029,1163010169,1313426509,1868963909,1952542066,1953046643,1970217075,1953853556,1870209068,1633886325,1869422702,2036754788,539429389,1752440864,1970217061,1953853556,1852402720,1763734373,1431511150,1699160130,1953845102,1701603654,1849761838,1635280160,1701605485,544434464,2003789939,1852383342,1836016416,1953391981,168636019,1229342020,1092637774,168647213,539429389,1668183366,1852795252]},{"sector":17,"data":[1684955424,1651856160,1668248176,1920296037,1701060709,1918987363,1869182049,168653678,1279477060,541413953,1129207110,1313818964,1952794400,1701539668,673195118,1918985555,740583523,1818575904,690253161,1162086925,1380011075,1430659141,1230259022,1394626127,1884516980,673195374,1951624777,1735289202,1394617380,1918988389,1919906913,168634660,1279477060,541413953,1129207110,1313818964,1920226080,627798594,1850288160,1769108563,740583278,1885688608,1952543329,690254447,1162086925,1380011075,1430659141,1230259022,1226853967,1734952051,539325545,1634222888,220800114,1128612874,1163018572,1112888096,1952794400,1701603654,1701667150,690495603,1162086925,1380011075,1431511109,1967267906,1415867497,1701601889,220801056,1128612874,1163018572,1112888096,1852131104,1182037327,543517801,168634664,1279477060,541413953,541218131,1953066569,1417241931,1701601889,220801056,654970122,1869367072,543973730,543452769,1936617315,1953390964,1952539680,1124732257,1414745679,1431458848,540876869,168636717,1397641027,1634082900,543519596,221257789,1313817354,1293964371,1766619233,544433518,808722493,218762544,1296647178,1095258912,541345106,1701734732,1818386772,1294475621,1766619233,695428462,1229195789,1213407309,1145393729,1852394528,1970226021,168653934,541935940,1380010067,1394623557,611545189,1850286124,1182037360,610626665,1968119852,1953853556,1701603654,1411394596]}],[{"sector":1,"data":[1766223981,220489068,654970122,2036681504,1685221239,1634038560,543712114,1635017060,1329793549,542397262,1467573579,1130656367,1953396079,958414112,1229195789,1213407309,1145393729,2036681504,1685221207,1818386772,1260921957,1868003685,1866687602,695496309,168626701,1148806475,979465313,538970637,1413563424,1213472833,539774533,1163086917,1330061356,742544723,1414481696,1377840207,1297437509,1377840197,1381323845,1377840206,1330926405,539772242,743331154,1280460064,572661804,168626701,1951604775,544502369,1830839919,1819632751,1701588325,543974774,1735357040,544039282,1701080931,538970637,1885688608,1025516659,740303392,1044135226,539109672,1212358699,958932050,537529641,1850286112,1699443817,1650545785,168650092,1193287712,1766224997,1632527724,225666413,538976266,1159745103,1380930130,1414481696,1766203471,1917150572,168636786,1327505440,542000464,1970302537,1818838644,1176511589,1226854991,1414877262,542327072,537529649,1313808416,1381123360,1193300559,542069839,537529648,1329799200,542265164,1344289335,1414416722,1867981344,1852402546,540746343,1329799226,542265164,540685106,1313428048,539107412,539893806,540680750,1330401091,976691282,1230131232,168645710,1109401632,1684826485,1818386772,537529701,1279467552,541414223,168636707,1327505440,542000464,1970302537,1818838644,1176511589,1226854991,1414877262,542327072,537529649,1313808416]},{"sector":2,"data":[1381123360,1193300559,542069839,1701603654,846361157,538970637,1162891040,1968119886,1953853556,1701603654,1329995812,1431248978,1414877268,542327072,537529650,1313808416,1381123360,1193300559,542069839,537529648,1699160096,1953845102,1701603654,538970637,1330397984,589317459,589311025,537529650,1179197472,1953845024,1182037360,610626665,540949536,1313817378,1213472802,1126190661,168645452,1313147405,218762564,1818838538,1920091493,168639025,1126178848,168645452,1344282656,1414416722,538976800,538976288,1635151433,543451500,1701603686,1835101728,540680805,1313428048,537529684,1313415200,542397776,538976290,1310728224,1763735397,1953853550,1818846752,1634607205,673211757,1163152965,1869881426,1919251488,1634625901,975791476,539763232,1970302537,1818838644,168633445,1226842144,1850286150,1182037360,610626665,572538144,1213472802,1159745093,168641614,1701603654,846361157,537529658,1313415200,542397776,538976290,1327505440,1970304117,1768300660,1847616876,543518049,1414415656,1948275269,1919950959,544501353,1931505524,1701147235,975186286,1327508514,1970304117,1818838644,168633445,1344282656,1414416722,538970637,541477152,1953845032,1182037360,610626665,572538144,1411393826,542000456,1886680399,1766225013,539256172,1126309949,220352079,538976266,1411401289,1766223981,539256172,572661821,1162368032,537529678,538976288,1397051936,222645589]},{"sector":3,"data":[538976266,1163086917,538970637,538976288,1181773140,610626665,572538144,537529634,538976288,1397051936,541412693,1415071054,538970637,1145980192,222710048,654970122,539429389,1818850626,1650545764,221930860,538978058,1635271968,1701734765,1752440947,1852121189,1701996916,2019914784,1768300660,1814062444,1768648559,1713399662,1814065775,543518313,1651340654,544436837,1952540788,1701994784,539429389,1752440864,1651449957,1952671082,543584032,1330925383,1330061356,742544723,1668572448,1933647918,1667327264,1936269416,1970234912,539780206,1763734633,1852121203,1701995892,654970212,1763713056,544175214,1635000417,543517794,1814062703,543518313,1651340654,779317861,1701336096,1650553888,1763730796,1937055859,1679844453,1852404341,543236199,1868785011,168649838,538976295,1936941424,1702045728,1699160165,1953845102,1701603654,1998597161,544105832,543976545,1701734764,1836412448,1936876898,1953459744,544106784,543516788,1953720684,539429389,1918967840,1701978213,1702260589,168636004,1850286119,980710768,539429389,1934958624,1730179941,1633841004,1260417900,1868003685,1632920690,610626658,1699422252,1919899513,1970226020,539784302,543452769,1936745811,654970148,1953845024,980710768,539429389,1867325472,1768319332,1277195109,1415933545,1701601889,1851858977,1766596708,1866687854,225734261,168634122,541218131,1818850626,1650545764,1394632044,1230258516]},{"sector":4,"data":[218762563,538976266,1461735236,1162627400,1414483488,1179600160,220803368,538976266,656416800,1952794400,1852402720,1851859045,1768300644,544502642,1701539700,537529710,538976288,1313426464,1313415237,542397776,539767075,1766616649,168633454,538976288,1867784224,611214699,1193295136,1867805797,611214699,1282296104,740585065,1885688608,220800115,538976266,1142956064,1213669455,541412425,1802458152,539258469,572538428,168634658,538976288,538976288,1380927008,2036681504,1701080649,540876920,1330913329,2036681504,1685221207,1853189955,537529716,538976288,538976288,656416800,1701139232,543582496,1701539700,1936269422,2036689696,1685221239,538970637,538976288,538976288,1179197472,1699424288,1919899513,1650545764,673473900,1232692555,2019910766,540876841,1396786005,1411916869,1852140399,539568420,1313163348,538970637,538976288,538976288,538976288,1193289504,1881175141,1769173871,543517794,1701734764,1836412448,544367970,1702127201,1701519474,1919907705,537529700,538976288,538976288,538976288,1867784224,611214699,1193295136,1867805797,611214699,740434472,1885688608,220800115,538976266,538976288,538976288,538976288,1749229607,543908709,1751343461,1802466336,1948282469,1702043759,1718165605,544500000,1629516649,1852402720,1970151525,1919246957,538970637,538976288,538976288,538976288,673195808,543516788,1347374924,544434464,1701012846]},{"sector":5,"data":[1918989171,1868963961,1752440946,1970085989,1885959276,1847616876,1700949365,168653682,538976288,538976288,538976288,656416800,543584032,1193299535,1112888143,544370464,1193299535,693064783,541138990,762212206,1701672302,543385970,1701539700,1769414766,168651884,538976288,538976288,538976288,656416800,1919251488,1634625901,1931502964,1668440421,168636008,538976288,538976288,538976288,1142956064,1213669455,541412425,1148406056,1953064809,1178946600,1411916884,1852140399,824192036,220801321,538976266,538976288,538976288,538976288,1277173792,1130720873,1953396079,1277181216,1130720873,1953396079,824191776,538970637,538976288,538976288,538976288,538976288,1701734732,1818386772,1277698405,1130720873,1953396079,540876841,676086102,1701539668,220800110,538976266,538976288,538976288,538976288,1411391520,1852140399,540876836,1416914247,1852140399,572663844,1699946540,690254704,538970637,538976288,538976288,538976288,538976288,1411401289,1852140399,1044127780,539107872,1313163348,2036681504,1701080649,540876920,537529648,538976288,538976288,538976288,1330389024,168644687,538976288,538976288,538976288,541347397,168642121,538976288,538976288,1480936992,1699422292,1684949369,168654949,538976288,538976288,1193289504,1847620709,544503909,1701539700,537529710,538976288,538976288,1701539668,1025516654,1952794400,1701539668,573056110]},{"sector":6,"data":[1394617378,611545189,537529641,538976288,1330596896,537529680,1330389024,168644687,1313147405,1431511108,218762562,168634122,1699160103,1953845102,1701603654,654970170,1699160096,1634887022,544433524,1864396385,1970304117,1768300660,1998611820,543716457,1701998197,1701995878,1684366190,1852402720,1970151525,1919246957,1701978227,1702260589,168636004,1850286119,980710768,539429389,1702057248,1818697843,1818321519,1766596723,1632920942,560295010,1766596652,1866687854,745827957,1684955424,1885688608,168633459,1968119847,1953853556,654970170,1917853728,1936024431,543450483,1701603686,220662285,1112888074,1852131104,1182037327,543517801,1413567571,168641353,538970637,1394616096,1684366704,544240928,1696627042,1768778092,1769234798,1663068014,1634561391,1684955424,1819239200,673214063,661545315,1702043764,1634886000,1713399156,1953722985,1802466336,220819045,538976266,611345747,572538144,723526176,1380467488,691611684,538970637,542065696,1279871063,1330520133,1329930324,691087430,538970637,538976288,1162758476,1347307808,589321301,1226845233,1852394606,537529636,538976288,541477152,1282296104,539258473,572538428,1411393826,223233352,538976266,538976288,539435040,544499015,1936877926,1869881460,544105835,543452769,1668248176,544437093,1763731049,1936269428,1814061344,543518313,1651340654,168653413,538976288,538976288,1802458144,539258469]},{"sector":7,"data":[1699160125,1802458228,673476197,1766616649,539763822,611345747,537529641,538976288,538976288,1226851913,1734952051,1277719657,609502789,1802458152,740585061,690565408,1162368032,537529678,538976288,538976288,1277173792,1315270249,1700949365,1025515890,1279350304,1802458152,690253413,538970637,538976288,538976288,1866866720,1315204725,1700949365,540876914,1936482662,537529701,538976288,538976288,656416800,1701139232,543582496,1701734764,1836412448,544367970,1763734377,1635000430,543517794,1914725999,1919247973,1701015141,1768693860,1847616878,1700949365,168653682,538976288,538976288,538976288,542265158,1701080681,540876920,1330913329,1852394528,1970226021,168653934,538976288,538976288,538976288,1226842144,1277698118,1315270249,1700949365,1025515890,1852394528,1650545765,673277292,1701080681,539568504,1313163348,538970637,538976288,538976288,538976288,538976288,1853189958,1836404324,544367970,1381244989,168641877,538976288,538976288,538976288,1159733280,1226851406,537529670,538976288,538976288,1310728224,542398533,1701080681,537529720,538976288,538976288,656416800,1685015840,544826985,1701734764,1920234272,1936158313,538970637,538976288,538976288,1179197472,1330522144,1866866772,1315204725,1700949365,1411393906,223233352,538976266,538976288,538976288,538976288,1701539668,1025516654,1095783200,673465667,676218188,1701539668]},{"sector":8,"data":[690562158,538970637,538976288,538976288,538976288,1145654560,1850288164,611215692,1951604780,1852855154,1282296104,740585065,1885688608,539765028,676218188,1701539668,690562158,1411398944,1852140399,537529636,538976288,538976288,1159733280,1226851406,537529670,538976288,538976288,538976288,537529632,538976288,538976288,656416800,1970231584,1851876128,1885696544,1701011820,1701344288,1701998624,1970235766,1768693875,544433518,1752459639,1970239776,2003771506,537529710,538976288,538976288,656416800,1685021472,1869881445,1717924384,1634562671,1970217076,1953853556,1866866734,2019893362,1819307361,1948265573,1948285298,1702061416,1852402720,221934437,538976266,538976288,538976288,538976288,538970637,538976288,538976288,1411850272,1867542637,1025519987,1920226080,678326355,1766616649,539763822,611345747,539697193,676218188,1701539668,220800110,538976266,538976288,538976288,1834231584,1936674928,540876850,1349545300,540111727,1951604779,1852855154,1145654568,1850288164,611215692,1834229804,1936674928,539765041,611345747,537529641,538976288,538976288,656416800,538970637,538976288,538976288,1227300896,1866866758,1315204725,1700949365,1213472882,168644165,538976288,538976288,538976288,538976295,1766616649,1025516654,1178946592,1227367508,1852394606,1411394596,1867542637,757084531,539570464,1212358699,958932050,539697193,608454989]},{"sector":9,"data":[1282296104,740585065,1886213152,846425936,537529641,538976288,538976288,656416800,1163086917,538970637,538976288,538976288,539435040,1850286112,611215692,1126186272,673469000,723527993,1145654560,1850288164,611215692,1834229804,1936674928,168634674,538976288,538976288,538976288,1145980199,222710048,537529610,538976288,538976288,541347397,168642121,538976288,1313153056,1179197508,538970637,538976288,1917853735,544501353,1701734764,544175136,1701603686,544370464,1936617315,543517807,1230131240,1763726414,1634082931,1919251571,1634235424,1868767342,1819243374,1701060709,1701013878,537529641,538976288,541477152,1886680399,1766225013,539256172,1126309949,539119183,1313163348,538970637,538976288,1344282656,1414416722,1282296096,220491369,538976266,1159733280,222647116,538976266,538976288,1380982816,542395977,539767331,1766616649,168633454,538976288,1313153056,1179197508,538970637,1330596896,218762576,1145980170,1112888096,168626701,654970151,1952794400,1701603654,1701667150,168639091,1193287719,544437349,1768300641,1847616876,543518049,1881176418,1886220146,1735289204,1701344288,1702065440,168636018,1850286119,980710768,539429389,1702057248,1852383346,225736048,1327507210,1970304117,168639092,1142956071,1852401253,1226863461,1953853550,1701603654,1629496435,1327522926,1970304117,1818838644,220492645,168634122,541218131,1182033223]},{"sector":10,"data":[1315269737,1936026977,1096045344,222513492,537529610,1126178848,168645452,538976288,1313428048,539107412,1919117645,1718580079,1699881076,1852394605,1277180517,543518313,1651340622,1377858149,1987013989,1428188257,1768712564,220363124,538976266,1230131232,572544078,538976288,673194016,1396785710,1936941344,1684368757,543582496,1696624494,1852142712,1852795251,1986619168,573140581,538970637,1380982816,223628873,538976266,1347307808,572544085,538976288,1850286112,544503152,1701603686,1835101728,1160257637,1380275278,544175136,1836213620,1952542313,540682597,1226845218,1953853550,1701603654,537529636,1226842144,1850286150,1182037360,610626665,572538144,1213472802,1159745093,168641614,538976288,1431326281,539107412,538976288,1953845024,544503152,1701603686,1835101728,1160257637,1380275278,544175136,1852404336,1869881460,1919120160,695100773,740433978,1953845024,1182037360,610626665,538970637,1380982816,223628873,538976266,541477152,1953845032,1182037360,610626665,572538144,1411393826,542000456,1886680399,1766225013,539256172,1126309949,220352079,537529610,1179197472,1397639456,1227379284,1953853550,1701603654,572533796,539566638,540024893,1313163348,538970637,538976288,1970302537,1818838644,1025516645,1886275872,1766225013,539256172,773988395,575881538,538970637,1145980192,222710048,537529610,1179197472,1397639456,1328042580,1970304117]},{"sector":11,"data":[1818838644,539763813,690105890,807419168,1162368032,537529678,538976288,1279611680,542393157,1163084099,1953845024,1182037360,610626665,538970637,538976288,1126178848,541414209,1313817378,572533794,1314014035,572533794,575558224,1126309932,573656399,1126309932,573721935,1277304876,573658192,1277304876,573723728,1277304876,573789264,538970637,538976288,538976288,1480925216,1394627657,168641109,538976288,538976288,1396785952,1279598661,168641875,538976288,538976288,538976288,1886680399,1766225013,539256172,1968119869,1953853556,1701603654,539697188,1094856226,168632915,538976288,1313153056,1163075652,1413694796,538970637,1145980192,222710048,537529610,1329864736,1229477664,1226851660,1953853550,1701603654,540876836,1886680399,1766225013,220489068,538976266,1411391520,1766223981,539256172,1162616893,673469510,1970302537,1818838644,539763813,1414745673,1850288210,1182037360,610626665,773988396,539568418,1109532715,220351297,538976266,1327505440,1380261966,542265170,1330925383,1818838560,1920091493,537529649,538976288,1296125472,1850286149,1182037360,610626665,542327072,1181773140,610626665,538970637,538976288,1159745103,1380930130,1414481696,221257807,538976266,1226842144,1834229830,1818838640,1008739429,572661822,1162368032,1850286158,1182037360,610626665,1411398944,1766223981,220489068,538976266,1347374924,168626701,541347397]},{"sector":12,"data":[222451027,654970122,539429389,1416914247,1852140399,168639012,1159733287,1634890872,544437347,1701539700,1713402734,544042866,1953701985,1735289202,541138990,1701539700,1936269422,1998610720,543453807,1952540788,544434464,1920103795,1684960623,168649829,1646272551,1702043769,1634886000,1936879476,1970479148,1629513827,1886593139,1936024417,544370464,1835888483,539915105,1701539668,1629516654,1696621938,1634890872,1684370531,1684955424,539429389,1634623776,1702525292,1752637540,1881173605,1769173601,1931503470,1702129253,1936024430,544370464,1835888483,1935961697,1867784238,1702065440,1701344288,1952794400,1701539668,168633454,1713381415,1952673397,745434985,1935765536,1752440947,1953701989,1735289202,544175136,1881171298,1702064737,1852776548,1701344288,1919510048,1663071347,745303137,1701344288,1634738286,168653683,1629495335,1819635232,1953701996,1735289202,544108320,1935832435,1702195557,1663071342,1936485473,1953396000,1948281961,1713399144,1952673397,544108393,1970562418,544435826,1970151521,168651884,1948262439,1852383343,1633904996,1948280180,544498024,543516788,1769238117,1931502962,1852404340,1634213991,1700929651,1881173605,1702064737,168636004,1850286119,980710768,539429389,1634030368,610820978,1931492640,1852404340,1869881447,1634038560,224945010,538978058,1768711492,538977389,1951604797,1735289202,543584032,1634755955,1869898098,168653682]},{"sector":13,"data":[1968119847,1953853556,654970170,1699160096,1802458228,539258469,1701716029,1948284024,1852140399,220662285,1314211338,1330205763,1699160142,1802458228,539258469,1634030376,610820978,1698963500,611150188,1414733865,1128879169,168626701,656416800,1953451552,1752440933,1394635873,1399158369,539259508,543452769,1348953410,1830843247,544502645,1931502946,1769234804,1919295587,1663069551,543976545,1663070068,225209441,538976266,1864900647,1919248500,1918989856,1818386793,1629516645,1864394098,544828526,1952543859,1713398633,1696625263,1667851878,1668179305,221129081,538976266,1716068391,1919510048,1663071347,745303137,1801547040,543236197,2037411683,543584032,543516788,1769108595,168650606,1226842144,1395138630,1668440421,1008739432,572661822,1213472809,168644165,538976288,1698832416,1936674919,824196384,538970637,538976288,1702256979,611480659,1394621728,1668440421,168633448,1159733280,1226851406,537529670,537529632,539435040,1684957510,1701344288,1635021600,1864397938,1752440934,1701716069,1948284024,1852140399,538970637,2003127840,544436048,1951604797,1852855154,1145654568,1632839716,1951622518,539763826,1348953410,539784047,676218188,1702256979,611480659,539765033,1768711492,220800109,538976266,1310737993,1867544421,1213472883,168644165,538976288,539435040,544499027,1769172848,1852795252,544175136,1918989427,1718558836,1802466336,168652389]},{"sector":14,"data":[538976288,1698832416,1936674919,1310735648,1867544421,539697267,1348953410,757101423,168636704,1159733280,222647116,538976266,656416800,543574304,1847619438,1948284773,1852140399,1970348076,1629516905,1914725486,1920300133,1970151534,168651884,538976288,1699160096,1802458228,539258469,572661821,538970637,538976288,1414092869,1314211360,1330205763,537529678,1313153056,1179197508,168626701,656416800,1852392992,1852121188,1718558820,1802466336,168652389,1310728224,1867544421,540876915,1114797139,1294494578,673465417,1702256979,611480659,1698832428,1936674919,1162616876,1632839758,1951622518,690562162,1698963500,611150188,537529641,1179197472,2003127840,544436048,1313163348,538970637,538976288,1699946535,1869619316,1769236851,1948282479,1852121199,1718558820,1802466336,168652389,538976288,1699618848,1936674935,1109409056,1867540325,539697267,1350001998,757101423,168636704,1159733280,222647116,538976266,656416800,543574304,1696624494,1864393838,1869881446,745432427,1952805408,544109173,544499059,1696624500,1629512814,1818326560,168650101,538976288,1699618848,1936674935,1277181216,1395150405,1399158369,690254452,824191776,538970637,1145980192,222710048,538976266,1967333415,1869881460,544105835,544503151,1931503215,1668440421,1953701992,1735289202,538970637,1952794400,1701539668,1025516654,1145654560,1632839716,1951622518,539763826,1348953410]},{"sector":15,"data":[539784047,1350001998,757101423,1734689312,695430992,538970637,1394616096,1847620709,1931507557,1953653108,543649385,1769172848,1852795252,538970637,1734689312,544436048,1699618877,1936674935,168626701,541347397,1129207110,1313818964,168626701,654970151,1768835360,2036681588,1818386772,168639077,1226842151,1769236846,2053729377,1629516645,2036689696,1685221239,1650553888,539911532,2004444491,1935962735,1937075488,1700929652,1667592736,1768843119,543450490,1948282739,225730920,538978058,1701734764,1836412448,1936876898,1851876128,543515168,1953720676,1969712745,1701344105,1919295588,1847618927,1919249781,1663066985,1953721967,1937010273,654970158,1886275872,221934709,538978058,1936028501,2036681504,1635017028,539429389,1886680399,221934709,538978058,1768189773,1936025958,1869375264,543973730,1634890337,1699422329,1919899513,1650545764,220489068,168634122,541218131,1953066569,1417241931,1701601889,1096045344,222513492,537529610,1163010080,1380930643,1699422277,1952531577,537529697,1329995808,1866670162,544501365,540090429,1260408660,1868003685,1866687602,225734261,538976266,1377837088,541344069,1467573579,610562671,538970637,538976288,1467573579,1415869039,1701601889,1866672164,695496309,1260404000,1868003685,220488818,538976266,1415071054,168626701,541347397,222451027,654970122,539429389,1766093641,980707687,539429389,1952797216,1936618101]},{"sector":16,"data":[1970435104,1718165605,1634231072,1952670066,1881174629,1702064993,1936269412,1679843616,1835623269,1679846497,1953064809,1767055406,543515502,226061921,538978058,1769169218,1869881443,544105835,1918989427,1735289204,1953068832,543236200,1768384868,1936269428,1847615776,1700949365,1948265586,1713399144,1952673397,544108393,2037149295,539429389,1701146144,1948283748,1751326831,543908709,543516788,1936877926,1768169588,779381095,1701790752,1948741235,1701339936,1713400675,1847620207,1952540517,543520361,1651340654,745763429,539429389,1953849888,1634235424,544417652,544501614,1684366702,1746953317,778400357,539429389,1970302537,168639092,1126178855,611475816,1763716384,1769236846,1663069281,1634885992,1919251555,543584032,1769108595,1948280686,1751326831,225141605,1327507210,1970304117,168639092,1226842151,1734952051,757101673,1970435104,1718165605,1953068832,544106856,539828272,654970169,1430653453,1230259022,1226853967,1734952051,673215593,1918986307,1394616612,1230258516,218762563,538976266,673203785,1918986307,540876836,539566626,1313163348,538970637,538976288,1766093641,544500071,1634082877,224752492,538976266,1163086917,538970637,538976288,1918986307,543388481,1396777021,1749231683,690254433,538970637,538976288,1766093641,544500071,1126703165,1098015080,1042310003,1396777021,807544899,539568418,541347393,1634222888,1668497778,540884000]},{"sector":17,"data":[675500865,690108706,537529641,1313153056,1179197508,168626701,541347397,1129207110,1313818964,168626701,654970151,1920226080,980120130,539429389,1634030368,1701340018,1850286195,1769108563,539256686,1713401716,543452777,543516788,1936877926,1751326836,1667330657,544367988,1836020326,1869439264,1948280686,1702063976,225339680,538978058,1634755923,1869898098,539894898,1970562386,544435826,543516788,1701080681,1718558840,1634235424,1751326836,1667330657,779249012,1768444960,1969627251,1769235310,1663069807,168652385,1646272551,1937055845,1948279909,1768300655,1948279918,1696621928,1864393838,543236198,1701539700,168636014,1850286119,980710768,539429389,1399736608,1852404340,1025516647,1920234272,543649385,1931505524,1668440421,654970216,1699946528,1634886000,611479412,1663057184,1634885992,1919251555,1869881459,1634038560,543712114,225603430,1327507210,1970304117,168639092,1394614311,1916957300,540876907,1701080681,1869881464,1919510048,1830843507,1751348321,544106784,1951624777,1735289202,1919885348,1763717152,1869488230,1830839662,1751348321,220662285,1314211338,1330205763,1951604814,1802650226,1850288160,1769108563,740583278,1885688608,1952543329,690254447,1096045344,222513492,537529610,1850482720,1277181216,1227378245,1920226158,610758249,537529641,1698832416,1936674919,824196384,538970637,1277175584,543911791,544370534,543452773,1948280431]}],[{"sector":1,"data":[1852140399,1768302624,544502642,1918986339,1702126433,1752440946,1763734625,543236211,1768711524,1702127981,221129074,538976266,1461735236,1162627400,1397639456,1395151444,1918988389,1919906913,1293954084,673465417,1951624777,1735289202,1109404708,1867540325,824192115,1025517865,168636448,538976288,1179197472,1734689312,544436048,1850482750,1162368032,537529678,538976288,538976288,1114797139,1025534834,168636448,538976288,538976288,1230521632,1430659156,1230259022,168644175,538976288,1279598624,168641875,538976288,538976288,1734689312,544436048,1698832445,1936674919,824191776,538970637,538976288,541347397,168642121,1277173792,223366991,538976266,1114797139,1025534834,1734689312,225668944,220209162,1145980170,1314211360,1330205763,218762574,168634122,1951604775,1852855154,654970170,1699946528,1751347809,1226863461,1920226158,610758249,544175136,1684957542,1701344288,1919510048,1663071347,1634885992,1919251555,1634235424,1936269428,1953459744,1701736224,224816928,538978058,1936681076,1852383333,1885688608,1952543329,774140527,1952797216,1936618101,1701344288,1684957472,1864398949,1752440934,1663071329,1634885992,1919251555,1750343726,168653673,1713381415,1952673397,544108393,544104803,1965057378,543450483,1713401716,543452777,543516788,1918989427,1718558836,1948279072,1852140399,654970158,1886275872,221934709,538978058,1951624777,1735289202]},{"sector":2,"data":[540876836,1769108595,1948280686,1702043759,1751347809,539429389,1885688608,1952543329,539259503,1751326781,1667330657,1936876916,544175136,1918985587,1713399907,168653423,1968119847,1953853556,654970170,1951604768,1852855154,1763720480,2019910766,544175136,1936877926,1869488244,1952542062,1763731555,1850286190,1769108563,539256686,807432815,543582496,543976545,1668571501,654970216,1430653453,1230259022,1394626127,1884516980,673195374,1951624777,1735289202,1394617380,1918988389,1919906913,1394616612,1230258516,218762563,538976266,1025535564,1313164320,1399736616,1852404340,220800103,538976266,1348953410,1025536879,168636704,656416800,1869564960,1868963947,1953702002,544502369,1629513327,1802466336,673214053,1918986339,1702126433,1752440946,1763734625,1948741235,1679843616,1835625573,1919251561,168635945,1142956064,1213669455,541412425,1414745673,1699948626,1634886000,611479412,1229791276,1227367492,1920226158,610758249,1698832428,1936674919,691085356,537529641,538976288,541477152,1348953410,1042314095,544099360,1313163348,538970637,538976288,1394614304,1884516980,540876910,537529648,538976288,538976288,1414092869,1314211360,1330205763,537529678,538976288,1397507360,537529669,538976288,538976288,1348953410,1025536879,1734689312,544436048,221323307,538976266,1159733280,1226851406,537529670,1330389024,168644687,1394614304,1884516980,540876910]},{"sector":3,"data":[1348953410,168653679,1313147405,1430659140,1230259022,168644175,1159727629,1634890872,544437347,1701539700,1713402734,544042866,1953701985,1735289202,541138990,1701539700,1936269422,1998610720,543453807,1952540788,544434464,1920103795,1684960623,168649829,1646272551,1702043769,1634886000,1936879476,1970479148,1629513827,1886593139,1936024417,544370464,1835888483,539915105,1701539668,1629516654,1696621938,1634890872,1684370531,1684955424,539429389,1634623776,1702525292,1752637540,1881173605,1769173601,1931503470,1702129253,1936024430,544370464,1835888483,1935961697,1867784238,1702065440,1701344288,1952794400,1701539668,168633454,1713381415,1952673397,745434985,1935765536,1752440947,1953701989,1735289202,544175136,1881171298,1702064737,1852776548,1701344288,1919510048,1663071347,745303137,1701344288,1634738286,168653683,1629495335,1819635232,1953701996,1735289202,544108320,1935832435,1702195557,1663071342,1936485473,1953396000,1948281961,1713399144,1952673397,544108393,1970562418,544435826,1970151521,168651884,1948262439,1852383343,1633904996,1948280180,544498024,543516788,1769238117,1931502962,1852404340,1634213991,1700929651,1881173605,1702064737,168636004,1850286119,980710768,539429389,1634030368,610820978,1931492640,1852404340,1869881447,1634038560,224945010,538978058,1768711492,538977389,1951604797,1735289202,543584032,1634755955,1869898098,168653682]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[26630733,75,235995168,160890879,128,152567824,30,1]},{"sector":8,"data":[0,0,0,0,-1192457387,-35127260,-565801623,-330920624,1708124240,-167459709,1946282566,-565801704,-565801648,1711269968,-1207647101,-397409305,-998041316,108461826,-402360577,-998047564,364308484,-1172700232,1347551232,385631885,-599356080,45633558,28856320,345657344,-1995951352,62454342,47642,1183666258,-1924131076,1343675462,1342177976,1342178488,856167578,-96040696,856209562,575846408,529446992,536918096,260880464,213432400,260808784,-1605311446,-397406368,-998040624,178190,571472,13482064,366274640,1023853699,544538625,1342242744,1347469355,1342177976,1342179256,-2095459096,45615812,1776832512,46433048,-397361109,-443869088,-1957313699,10533100,1466502120,-532232618,108461825,-402360577,-998047236,1619445252,1187447039,-352321026,-27358417,1988879313,-1926168826,1358913670,-2088981528,1183515844,-28952316,-793243788,-2037559296,-397344928,-998015852,-28901628,956581515,-914424250,1342231224,-10451315,2088429648,-1962621821,1028129862,545062913,1342242744,1347469355,1342177976,1342184888,-2095500056,1471679172,-1226289152,46433047,1208239755,2097152573,16758816,1354771280,178256,2013264,420210768,-1207253885,-397410217,-998041715,106859266,-1979424885,-397371385,-998021956,106859266,-1962778741,-1744336184,-386823344,-998021976,1975925506,106859329,-2147328117,1966735743,106859317,-2147328117,1962934911]},{"sector":9,"data":[106859305,-2147197045,1966735743,16758813,1354771280,178256,-1561833392,180650776,1342199736,-2095635224,-1159200060,1619430658,-129594881,16008903,10283264,16139975,-96024832,1183653930,1183666402,568873200,79987538,16664263,-1961694464,1988886110,-2012968200,-16171897,1191181894,-364475400,1928873529,-27358234,154961862,-260141824,383940237,506119,2122556914,494141666,-1933693,1187382901,300613856,14698182,1342177976,-387811585,-998047584,-528580604,-1205767168,1178143764,-1206881048,1178148850,-1207405336,1178143756,-16157208,-1410799498,46433040,13895423,14712448,1541997428,106859519,-402360321,-998016102,343298,1996425586,70445062,-16595837,-1310194058,46433029,-16353537,-286784394,79987463,-443850914,-1957313699,-390056980,-346659080,106859289,1015035787,-2146470609,1967063420,41713673,-402426624,1325334646,105284356,75399938,1591375104,-1957313699,-390056980,1018717892,218014473,218111628,218302150,33998352,-397410291,-998016230,218407426,-2096298590,1948058750,75399942,-1978960610,-467007930,1354771280,1183452395,1357130246,-1202667477,-1202716671,-11534334,518521974,180650775,1342199736,-2095734552,-1017314620,-1192457387,1575485442,-28915866,-4718292,-1070903296,28856400,1996443648,384821502,-16071549,2122448454,2114009854,1354771425,-1961531160,1438866917,-1070338933,-2124011544,137561214,2122385271,1929886724,16758798]},{"sector":10,"data":[1816656,-12392368,-2147171197,1997276798,108953606,-1207012607,-1202716417,-397410277,-997982424,142508036,-2147059937,1929447038,16758798,1816656,-15800240,-2147171197,1981679742,108953638,-2146274300,1946551934,108953612,-2147060727,1963656830,16758798,1816656,-18683824,-2147171197,1963067006,142508078,-1207011811,-1202716417,-397410277,-997982520,71759364,-2146143229,1981548670,16758798,1816656,-22091696,1560593539,-326412861,1843970099,75399269,-1207011817,-1202716417,-397410276,-997982576,108953604,-1207012804,-1202716417,-397410276,-997982596,142508036,-1207012804,-1202716417,-397410276,-997982616,868441348,1697310912,539625159,113643386,-973004756,18885894,539887302,788973115,113639456,-972943494,34568966,259786439,113707454,164892542,260048582,-2130262268,-954229745,-1274051834,-2063153377,-954217457,-468744442,-1996044513,-956301297,638470,-1073297662,-956301303,-871775738,-1006188791,-972427767,640518,164890311,113713152,2518,165152455,113707468,166595034,165414598,-1677277440,-955252705,2072070,-1610168576,-954207713,-299916794,-1543059959,-692583649,-1514647552,-2048372705,79987576,1342233016,1344252088,-2089256984,-591919932,-1413984256,1776832543,79987576,531891911,113707008,8118,532154055,113708052,166600634,532416198,14661635,532527184,2017388624,-1207647101,-1202716446,-397402176,-998016976,15054852,532920400]},{"sector":11,"data":[2015553616,-955988861,2083846,-838416640,-956301281,203411462,-771307764,-972427745,85971974,1342236856,1344263608,-2089289752,-340261692,-659009536,-370651105,79987575,1342238392,1344265144,-2089296920,-239598396,-558346240,-840413153,79987575,1342239928,1344266680,-2089304088,113706180,8164,535168711,113704960,202121192,535430855,113641966,-1207885844,-1202716425,-397402131,-998017132,1376175876,-956301278,2249734,1443284736,-956301278,2252294,1611056896,-956301278,2253318,1476839168,-956301278,2251270,1543948032,-956301278,2253830,1711720192,-956301278,2254854,1778829056,-956301278,2255878,1845937920,-956301278,2256902,1913046784,-956301278,2257926,-66664960,113642252,-972354297,17629702,218957510,-49887742,113639436,-973075192,537724422,219219654,-1957313760,9484524,-949820440,1696723526,-1962647925,1183384647,74973176,-9402739,1994057808,-1929067389,1358917766,-2089341464,1183384260,-230257162,-230257328,2011490384,-1962621821,2013201502,1887866116,-1377283841,79987574,-9402739,-370129271,-88604387,-397193216,-998017334,1975520004,12904707,1342242744,-386894081,-998017354,1975520004,11593987,1342244024,-386894081,-998017374,1975520004,10283267,1342245048,-386894081,-998017394,1975520004,8972547,1342246072,-386894081,-998017414,1958742788,17873015,-260636848,-2089391640,-1073019708,347629172,1996443649,1985538288]},{"sector":12,"data":[184861827,-1202359104,-11534054,1206448246,79987574,1148502027,1342251192,-386894081,-998017482,1958742788,19249203,-260636848,-2089409048,-1073019708,716710516,1996443649,1981081840,184861827,-1206815552,-11534033,65597558,79987574,1148567563,-1544534389,512494846,113642752,-972026621,852486,1980819536,-1576876925,94506244,178189,1354771280,1342177720,1342177976,1342180024,-2095960856,1471679172,-1360506880,46433040,-1947187457,1065414750,-385649664,-443810088,-1957313699,3193068,-949920792,119878,-1962647925,126485087,-1108848488,46433117,-1962647925,126354015,-1962647925,126485087,1020282504,1008499777,-1961328806,1602946142,25133058,-1962117830,1602946142,41910274,-1205832704,726663423,-1202696000,-1202716670,-397410298,-998043223,1030154,271312976,-1962752893,1602946142,-1576564222,-2036199584,-2029599232,113654272,-1207959416,1344143494,384059021,-767128240,-1070903274,-1202696112,-1202716671,726696130,-1706012480,137560609,199640713,-1205832512,726663423,-1202696000,-1202716670,-397410298,-998043323,1030154,264759376,-2096970621,1994712190,-465138933,1183439095,-464584732,1154959046,148260550,-1981528437,1183701062,1183666390,-1679273770,79987573,14843523,1187397748,1187398871,1183517142,-666465820,1356220045,1356220045,-2089453080,2122515652,141820130,-1982445941,569108038,15091399,-599356672,1024458789,-920977407,-28407743,1183452139,-28931882]},{"sector":13,"data":[15091399,-427916544,-1205832704,726663423,-1202696000,-1202716670,-397410298,-998043487,1030154,254011472,-2147302269,1946222206,1354771220,1342181560,1342230200,-2096339480,-1293351228,-733574400,179950123,82966272,-330921936,735331979,-2131626030,1451765954,-297351443,257990656,-957856120,-1929320122,-22811578,1477644,50775565,1183649805,-1552148,46433139,-1576205150,1183649029,218735592,218830476,219023046,-398029552,1944119376,-1576876925,279055631,16758797,1354771280,1342177976,571472,268429392,-1207253885,-1202716417,726663169,45633728,179851264,-420982784,180650767,267404999,8822852,1183334444,-263811598,-263811760,1951983696,-1962621821,1438866917,-289870709,1595074561,377931606,-956284418,33450118,-297351424,1586193697,71797510,-768375,1183646839,-35106652,79987570,1352943245,-2089594392,1183384260,-297366030,-297366192,1946740816,-1962621821,1602946654,25133060,-1961593542,1602946654,-2012771836,1023283846,1006926913,-1927512486,385775750,1518767440,-1706027265,137560987,-25655670,-1952301052,-1961694449,1602946654,-1576564220,1586171787,71795462,260808706,-973061470,973095686,4458182,1611020288,-1206029041,726663423,-1202696000,1347420162,-2096167704,1471679172,-2031595520,46433037,503333560,-897151664,-1924131074,385750150,1354771280,28856400,-1028108288,-1070903168,563761232,-1995951358,-1072979386,-4710284,-1070903296,45633616]},{"sector":14,"data":[112742400,-1226289152,180650766,1342181304,-2096285464,-1098710332,1994718922,-897152242,-1982269442,-79226,-956380530,1157524358,-26573114,-897152248,1820756478,1787203070,-2037559042,-397345174,-998018302,1992196868,1232339198,-26507578,1787217476,-2037708290,-2037776694,-2037514644,-1924071830,1358850694,-2089625112,-1098709820,1946222198,1787202313,-1572435458,1187455979,-1962934110,637431942,20779008,1103698688,-335786360,1787202060,-62486274,10634951,-1568767232,-1205832704,726663423,-1202696000,-1202716670,-397410298,-998044163,1030154,209709136,-2147302269,1962998910,260808795,-957987192,-1929320634,-22813114,1477644,50775565,1183649805,-1880600346,46433137,-1576205150,-4715259,-1070903296,112720,178256,637008,229369936,-1207253885,-1202716417,726663169,45633728,179851264,-1830268928,180650765,267273927,4366404,1183334444,-297366032,-297366192,1912924240,-1610300285,-467005557,-1996472275,-1924076986,385834630,377916752,-1706027266,137560891,195184265,-1205832512,726663423,-1202696000,-1202716670,-397410298,-998044355,1030154,197126224,-1929198461,1358913158,-2089751064,20775620,-1204849664,-1924136652,1358894726,-2089780248,-2037578556,-1924071586,1358894726,-2089800728,-2037578556,-1924071658,1358913158,-2089788440,1586169028,73370374,973176704,1586183541,73370374,-2037905526,1094516242,1513893244,2122525055,594805252,1342177976,1347469355,1342177976]},{"sector":15,"data":[1342180024,-2096318232,1471679172,988303360,46433035,-1962704919,1602946654,-2012771836,1023283846,168457263,-2096728896,1963066494,1585876247,-2037559041,-397345256,-998019096,20363268,13494608,-15694137,82509824,-15694081,-1962516853,-1232403361,9109264,-32340344,74723132,-462045174,-1962516853,-1241316233,1015086864,-972524241,-2033844220,-1962869146,1602946654,1547665412,1586170997,73370374,1543602048,1586170740,73370374,1966751616,178208,1354771280,178256,702544,201844816,-1207253885,-397410217,-998045047,106859266,-2147197045,276126783,-16359797,-2037578633,-397345256,1038839624,-10582387,411471184,971526398,79987567,-10582387,1871505488,1023591555,259260417,1342258104,-31947123,1859840080,-1962621821,2013202014,411471108,-907521794,79987566,-31947123,1868359760,-1996307325,-939584890,16716934,-16454912,-1946217338,-2130766666,788404410,-1166014604,1962999320,347507690,414875903,460664574,-31868288,-2146142930,1560156858,-1166014604,1962999322,-28916218,-15799552,-1946217338,973017734,1929319558,310807482,344361471,-16454657,-1946217330,-2130766666,1560156346,-2037517963,-1924071912,-397368250,-998019456,347507460,-1539127553,344377088,-352321281,344391428,347507711,-1535475457,-2147060694,1962976378,347507692,-1535475457,-1205635798,726663423,28856512,45633536,95965184,-756527104,180650762,1342199736,-2096540440,2122318532,57934078]},{"sector":16,"data":[-1610526999,-2037903477,-2033779078,-969212293,16678022,-31932800,-1207601920,65732925,1352943245,-25524595,1840965712,-1929067389,1358854790,-2089803032,-1073020220,1586185332,71797510,-1945305437,-972226530,269288198,-402360321,-998019538,218407426,-1207106142,726663423,28856512,45633536,95965184,1256738816,180650762,1342199736,-2096575256,-2033777980,4324886,-1914013953,385797254,377916752,-1706027266,137560891,195184265,1343255744,-2096471320,1996423876,144435362,-1610431357,-2037903477,-2033778922,-969212137,16717958,-10582387,377916752,367546623,79987565,-15300979,1870522448,-1929198461,1358875782,-2089968152,20775620,-1204849664,-1924136641,1358894726,-2089997336,-2037578556,-1924071732,1358894726,-2090017816,-2037578556,-1924071658,1358875782,-2090005528,1102578884,-2037559295,-397345076,-998019908,347507460,427986431,-2037559042,-397345076,-998019928,-863597308,-2037559042,-397345256,-998019880,411471108,736645374,46433133,-15563127,-1165954933,1969028631,21215247,411471184,1911050494,79987564,-26820992,-1961396992,1602946654,280398596,788580095,-1962516853,33493126,-1952447417,377915407,394708735,-2033829121,-1929314536,1358913158,-15300979,1815275600,-1929067389,1358894726,1342194360,-2090048536,-1900542780,12079135,-1934077920,-1195880433,-2037559284,-397345256,-998046436,260880394,1822222416,1023591555,58064904,-1207891735,-397402112,-998019958,212226]},{"sector":17,"data":[-152501386,213432320,1819863120,1023591555,58064960,-1207900951,-1202716345,-397402226,-998020042,1975520004,13625603,1342262456,1344245432,-2090065432,-1073019708,-1159134347,22132736,529446992,1812785232,184861827,-385649216,1438122149,-1900523519,-135770081,79987563,58048523,-1207922455,-1202716327,-397402226,-998020126,1958742788,22919294,529446992,1808853072,184861827,-1200851776,-1202716319,-397402226,-998020162,1958742788,23574618,529446992,1806493776,184861827,-1203211072,-1202716307,-397402226,-998020198,1958742788,24295478,529446992,1804134480,184861827,-1205570368,-1202716297,-397402226,-998020234,1958742788,24950802,529446992,1801775184,184861827,-1203472960,-22863986,2001932,50775565,113643533,1342180610,-2090110488,77726404,218472973,1342177976,-1202667477,-1202716671,-1202716670,-397410294,-998045811,5748746,101705808,-956119933,529460294,-1098898197,1948974610,314474503,326451198,-1202667477,-1202716671,-397410099,-998046910,-15668474,1586228294,-2012771604,184423046,1590654400,-1017256565,871140181,1452468416,957091000,57934918,-1207909911,104538093,58002446,-1192225304,104538069,292883470,-1202667477,-1202716670,-397410102,-998046990,534296582,202245691,-1070914955,112720,13285456,47769680,721863811,548950208,-843558912,-941076480,113541890,991943608,1963724294,1354771234,1342193848,1342229176,-2096976408,-1070922044,2144336]}],[{"sector":1,"data":[13482064,43837520,-1207516029,104538078,578096142,-1202667477,-1202716544,-397410102,-998047102,1354771206,1342185656,1342229944,-2096991768,-508033340,235289375,722564364,28856512,-860336128,1474842624,113541890,957093048,57934918,-1610558999,-467006438,203006032,202940496,-264902576,-1207516029,104538045,913640470,705435808,575841252,-1559488096,446702164,576103180,-1202667477,-1202716656,-397410102,-998047222,1354771206,1342185656,1342229944,-2097022488,-1061681468,369507103,-1607043828,-467006440,-1608360285,1621298201,203071522,723673763,548950208,-893890560,-873967616,113541889,-1202667477,-1202716640,-397410099,-998047302,532920326,202769979,413152885,-1545328116,429924952,576365324,-1559487840,-1070914980,178256,13350992,26011728,721863811,548950208,-843558912,2078822400,113541889,958395064,57934918,-1610558999,-467001351,536387664,-164167856,-291510241,-1207516029,104538021,913645556,-1558186335,-123723164,-1545328097,-106945946,577282847,-1202667477,-1202716668,-397410102,-998047442,1354771206,1342185656,1342229944,-2097078808,-1464334652,-200918241,-1590266593,1789075446,536387618,1822680106,536453154,723676835,146297024,-893890560,-269987840,113541888,-1202667477,-1202716640,-397410099,-998047522,531347462,536086075,-157206923,577807135,706738336,577938404,-1558185568,-1070914956,112720,13350992,11593808,721863811,548950208,-843558912]},{"sector":2,"data":[-1612165120,113541888,-1957313699,964844,-950795288,-1224674746,1358055053,1358055053,1342189496,-2090293272,2122319556,125108466,13567686,-953554176,-1224543674,1358055053,1358055053,1342189496,-2090302488,2122319556,125173746,13567686,-972690686,16830214,13581952,-952535806,-1224281530,1358055053,1358055053,1342189496,-2090314776,1183516356,164144116,133318343,-196687945,1183645696,1183666418,800608498,837308416,113541992,-1017256565,-1192457387,1776812034,138840915,376750091,1946157373,146715,-407362956,1944604675,46433026,1586177515,105286148,468387592,-1979425141,-789182906,267061024,-1979425141,105259527,184436360,-1207601728,48955393,-443826133,-1957313699,571628,1448285160,-402360577,-998021254,-28931838,1325335531,6076670,-25755824,-402360577,-998046707,1975520006,3127316,-25755824,-402360577,-998046727,1958742790,-28931115,-1996208637,1183579206,-62506748,-661974411,1183319946,1952201976,1949252615,15329539,-956539253,1996423175,108461828,-2090420248,1187448004,-352321282,-25785583,-2147060221,58011452,-10746682,1996488262,1727326214,990037123,-512229818,-2147066229,192217151,1342276536,1719593043,-1962621821,130481246,-62455972,-231681,1776815222,79987558,-2146673013,695545407,98176,-2051529867,1996443649,1716447240,-1207647101,-11533945,1105726070,79987558,1342278072,-351504641,-62485698,-335919479,-96010493,-1963303285]},{"sector":3,"data":[-129595385,74722876,-311050230,1965965184,509478,-231681,166201462,79987558,-956670325,1191128583,-92864518,-401967361,-998021644,-15537404,1996426358,1709631496,-1962621821,130419294,-443851264,-1957313699,440556,-950943768,-1466,2122386667,1979842810,-93421284,1996423680,-28930566,-1070903274,88840784,1183385651,1975520252,-92372003,-2128120832,33618558,-4710281,-1070903296,45633616,263737344,518541312,180650754,1342179512,-2097110808,1183515332,257860606,257689287,2122514432,158662906,-956014965,-335544569,73304840,-1980086645,38258439,-443875328,-1957313699,309484,-950979608,201391174,1342963896,505409720,1354771280,855985050,-28931832,544522251,1342242744,1347469355,1342177976,1342181304,-2097042200,146279108,786976768,46433024,-1558187871,113708902,3940,-1962385781,126483526,-1017256565,871140181,1356261568,-402360577,-998047720,1438866690,-1070338933,-11484184,-538442634,46433279,-1957313699,964844,-1202671640,-397410238,-998021397,8828930,1726081104,-2096970621,1962935422,178203,4241488,13482064,-48961456,184992899,-955943488,2098246,184829579,1024554176,326369282,1946165309,67255573,485169012,280263,-954537216,66630,1187451883,-352321020,71747340,99287043,67389127,-817987584,494207488,133318343,164143543,-1913370999,-1924074938,-1202654650,-397410257,-998021928,74907398,-1957739032]},{"sector":4,"data":[1438866917,112782475,1342892032,1183432747,-96040452,1342177976,1342210232,1342229944,-2080603672,-1073019196,-2014772364,-1372127488,85891596,-558364621,-11526647,1996487798,29268730,1183385651,1958743038,165591121,-1070903266,-59310256,-1694861569,137561226,201213577,1343255744,-2097111320,1996423876,-20649730,-1207778173,1344145886,-231681,-1097139594,-1995951359,-1072955834,-397406092,-998047625,-25755902,-2080465432,-4717884,-1070903296,45633616,213405696,250105856,180650752,1342440120,-1946246168,1439391205,247000203,1330571264,-1996208501,1183576646,-196703994,-1995946357,1183512134,-112818164,-2012592502,1975056454,-1981535729,-54985658,-96040692,1358055053,1358055053,-1974781720,1973613126,1575324431,-326412861,99139635,16758863,1354771280,178256,74907472,-2092214040,-397409596,-997982315,1438866698,-2001146741,1323231232,-2109833130,57999361,-956261912,16742534,2025229056,-2143107329,2022113056,2025751039,1912635647,2022098924,-352321281,2055635758,-1631321345,-2094596230,460587071,-8485238,1996961830,1194862312,-1948093951,-956335946,-12287934,-34682,-1946191738,-2043083194,510918520,-8872309,-1979418997,2122745856,536519167,536614539,-8747383,-8612215,1988866283,2142928902,292832511,1988877963,138840580,91553848,-352321096,1589652226,-1017256565,-1192457387,837287982,-465123506,1187465216,-1929379354,-1924082106,-397351866,-998022318,-700019964]},{"sector":5,"data":[-942389623,1695016006,-1685817,-398014465,1187446789,-939524118,60998,-1980479863,1183709766,1183666420,1183666390,1676169444,113541987,-1924087765,-397356474,-998022680,-532218108,1183432747,-62486018,-1979955571,1183576646,-62486048,49432195,-1947050357,126481478,654073540,-1960441973,-89980329,-65631969,-100236513,-1070923233,-767128240,1638066256,25298630,1575324417,-1957326653,44742892,-951222296,1107121798,-1702443264,-956300803,33419910,1518782208,-956295426,33421446,-192493824,-1979702019,-2037905850,-2033779200,-969212415,16646790,-1928825089,1358823558,-2090790936,-2037578556,-397345280,-998022281,1975520002,142016270,-18905459,1630726224,-1979399037,-467008442,-1996472275,1358819462,503350968,1451658576,-1706027267,137560891,-28670327,544522251,1342242744,1347469355,1342177976,1342179000,-2080534296,263719620,317214720,46433276,-2012985718,1187429958,1187396287,-2034761536,870862848,46433121,1946157373,26130446,-1102672560,1619191888,-1207647101,-1924136826,-397361594,-998023052,-1102672636,8829008,1621551184,-1979399037,-2037906362,-2033779368,-969212583,16603782,1342177976,1342181560,1342230200,-2080833048,-1073019196,-1866988171,-1207702783,-1924136552,1358780550,-2090849304,-2037578556,-397345448,-998022509,1958742786,16758816,1354771280,178256,964688,-52434864,-1207253885,-397409277,-997983391,71731714,-39811448,-39745850,-1568225734,-1699217155]},{"sector":6,"data":[-2037559295,-397345376,-998023204,1149683204,-2037579522,1343684000,-34437491,-1224781802,79232602,-11526624,-1912736586,385742982,1354771280,563792,518719539,-34044217,-1224802303,79232498,-11526624,-1912736586,385742982,104045136,-2037839821,-1072955830,-4710284,-1070903296,45633616,246960128,1256738816,180651004,1342440376,-2080715544,413205188,1058080,-28670327,1946161213,27703467,538687568,1606215760,184861827,722499008,45633728,-843558912,-202878976,-2141787145,773857598,1048598389,2083528738,574521424,1233074464,539180672,-2143126480,958407486,1048591231,2083528740,608075828,763312416,539311744,-1205439232,-1202716671,-1202716670,-397410099,-997984342,-91845370,-1070903043,-773304240,113542137,-29063482,1153335297,1299513598,-34044217,-1224802303,79232498,-11526624,-1912736586,385742982,104045136,-2037839821,-1072955830,-4710284,-1070903296,45633616,246960128,1860718592,180651003,1342440376,-2080771864,116785860,1963008024,1153335475,57999614,-56599,-1694633290,137560548,-28670327,-1323299679,636015369,-1140522881,1418103047,537698814,-388823631,-1996484827,-1577191802,522526732,545687808,-1311626241,1631250456,-34169205,-1056716501,-2046569709,-787218860,-40073591,-39938423,-1995637085,-972226538,873267974,218367686,84329994,-4716019,-1070903296,112720,230182992,-756527104,180651002,-33782131,-128522160,-1207778173,1347420162]},{"sector":7,"data":[1342229944,-2080989720,-1073019196,-2037572491,-1974403686,-467008442,-1136226992,1283886416,-1696050946,147096325,-2037571349,-1924071942,1358797446,704923274,1183666404,-2037559108,1343684400,-2097026584,45616324,-1202696192,-397410099,-997984690,1975520006,276234053,-15829249,1996426358,142016266,-40204659,-21561520,-55115779,105286397,-1974410198,-1924135866,385768582,814124368,-1924131073,1358843014,-25262451,-1136226992,124184656,1996441067,-91845360,1996443901,175570702,-16222465,-131402,-1912734538,1358797446,705054346,1183469796,-2037559292,1343684188,-13597043,-2037559274,-1924071860,1358855814,1354516109,-2095871000,-1279778108,1978159105,46433100,1342177720,1342193848,1342230200,-2081054232,2122319556,58064828,-1207886359,-1202716670,-1202716671,-397410099,-997984890,1958742790,178221,571472,13482064,-177149872,1023853699,376700929,1342177976,13285456,-178460592,184992899,-385649472,1048772826,1962869186,-1036583153,85891585,113707059,-65086,-40204661,179950123,82966272,1451657264,-1702458370,-137221123,818053361,-27814264,-27752762,71731712,-28932472,-28866874,1451658496,218014718,218109580,218302150,1451658512,-739749634,46433116,-1576205150,-2037576443,161742406,186027021,235324941,-2037575667,-397345210,-998024014,219128322,-1207103326,726663423,45633728,-1202696192,-397410296,-997984047,16758794,112720,1354771280,1342177976]},{"sector":8,"data":[1342180024,-2080851736,-2033775932,1141899042,738231968,612796480,579243519,-2037559041,-397344990,-998023898,-36706044,-1017256565,-1192457387,-571998088,1187468871,-956300920,-8634,385763015,-498678016,1187446785,-1979702048,1183320646,-1924741492,-1907964358,28751872,-1941533360,1534781520,-955988861,-8634,31606471,-1941533440,1183666198,-11528482,79232630,-11526624,1183703158,726669026,-1706012480,137560072,200689289,-1201441600,726663423,-1202696000,-1202716670,-397410290,-997984247,67352586,-158603184,-352140157,-498677937,1996423169,537180382,1996443678,-498692640,865751062,-1995951354,-1072957882,-4710284,-1070903296,45633616,246960128,-957853696,180650999,1342440376,-2081011480,413205188,1058080,1039550089,-1317797872,-1696696577,137560548,-2131343735,773857854,1048588661,2083528739,591298602,595540256,539246208,-2145616848,958407742,1048581503,2083528741,624853006,125778208,539377280,-1205832704,726663423,-1202696000,-1202716670,-397410290,-997984427,67352586,-170399664,-2096970621,1946191998,11790595,-1962123637,121232454,-1070919308,4241488,13547600,-217257904,-955857789,100422,-2012592502,1187439686,1187396325,465043686,1183666208,770199780,79987546,384059021,29538384,1183666206,726668938,1347440832,1342177720,1342226616,1347469355,855777690,-163149560,544522251,1342242744,1347469355,1342177976,1342181048,-2080979736,62393028]},{"sector":9,"data":[1189629956,46433269,1358710413,1342213048,503886008,-1036583088,1551034369,-1995783037,-1072957882,1183543157,1037183996,1702166667,-1342143767,607057418,-1329034464,590280292,-1950285024,539336904,-2117598312,-1995124503,1586224206,968985356,-385649401,-4653246,-1070903296,45633616,196628480,1323847680,180650998,1342242744,1342177720,-1202667477,-1202716670,-397410294,-997984715,-2008627446,-1092026368,16759037,1354771280,178256,964688,-166205360,-1207253885,-397409277,-997985146,145799170,-1945876855,1586169438,74892296,155486758,-1962850424,1992558686,-2071321084,126353546,-2012592502,1187444806,1183645945,218014712,218109580,218302150,-129594096,1502406736,-1576876925,94506244,178189,112720,13416528,-241899440,184992899,-1206815296,726663423,28856512,-1202696192,267059232,1342242744,-1202667477,1347420161,1342182840,-2081061656,45615812,280514560,-826781696,1474842624,113542129,1962934589,140413783,704726922,-167071260,-2010118927,1200288326,-152819199,818184433,-957127032,-1929317306,-22810042,1477644,50775565,1183649805,-135769870,46433112,-1576205150,-4715259,-1070903296,112720,397955152,384323584,180650997,-1962123637,1149896822,1088694785,-1956771959,1438866917,582544523,1146021888,-532232362,1183449089,-465139704,988104390,15091398,1342293176,1357137549,-2091384856,1183646916,-1924131100,1343684166,383665805,1354771280,28856400]},{"sector":10,"data":[-1061662720,-1070903296,563761232,-1995951358,-1072958906,-4710284,-1070903296,45633616,246960128,-1763160064,180650996,1342440376,-2081220376,1183646404,129519842,-14790656,1996424310,1514596606,-1995783037,-1072958906,2122516085,545064930,1342242744,1347469355,1342177976,1342181048,-2081139480,62393028,-1008185340,46433266,-1341890933,40367626,-1962850558,1200096862,73304833,704931722,55544512,-1056707286,-1946663287,1988822622,-2012968444,-25755897,855973530,-528579832,-1955236608,1200227934,-1947981311,121309790,-1070919308,4241488,13547600,-271259568,-955857789,122950,-2012723574,1187445318,1183645947,218014714,218109580,218302150,-96039664,1468852304,-1576876925,94506244,178189,112720,13416528,-275453872,184992899,-1202227776,726663423,28856512,-1202696192,1441464352,-1979294069,-467009209,990535307,-1197378553,726663423,-1202696000,-1202716670,-397410293,-997985419,16758794,112720,1354771280,1342177976,1342180024,-2081202968,1187449540,-385875744,-4653472,-1070903296,112720,364400720,1055412224,180650995,1342177976,1342181560,1342230200,-2081484312,20776644,-1957202688,1200227934,-1310447103,82966026,-196704208,704726922,-2131626268,1720201412,-163133707,-196702976,-1945305437,-972226538,269288198,1358186125,-2091470360,77726404,218472973,1342242744,-1202667477,1347420161,1342183352,-2081238808,1586170564,108432138,704726154,126435556]},{"sector":11,"data":[1575324510,-1957326653,18004204,1447167976,27543239,1015465728,-956301057,43078,-6797625,-1639528449,1187446785,-1979702118,-2037902778,-2033778872,-969212087,16730758,-1927383297,1358907526,-2091541528,-759692092,-2037559295,-397344952,-998025844,1216777476,-1924131073,1343658054,1342183096,505414840,-1703477424,379471501,1354771280,563792,1183385651,1958742950,57600259,622860449,1183383568,1064358,-337050763,30783490,538687568,1437657168,184861827,-385649216,2122515158,192217512,261502719,855973530,-955913464,108614,1344281528,-12679539,1431496784,-16464765,1996429942,578223900,705971850,1183469796,1996443666,305594276,272039712,406257440,238485280,204930848,1049005344,1996443903,143124486,-1994734461,-1072978362,1877541748,178178,571472,13547600,-310581168,1023853699,2020933633,1342300856,-402229505,-998025954,1975520004,38070531,1342303672,-402229505,-998025974,1975520004,36759811,1342306488,-402229505,-998025994,1975520004,35449091,1342309560,-402229505,-998026014,1975520004,34138371,1342312120,-402229505,-998026034,1975520004,32827651,1342313912,-402229505,-998026054,1975520004,31516931,1342177976,1342185656,1342229944,-2081624600,20776644,-1204194304,-1202716670,-1202716640,-397410099,-997987114,1958742790,28371203,-1977321729,-467004346,306612816,108461904,-2096935960,1183385796,1958742950,26274051,1342177976,1342193848]},{"sector":12,"data":[1342230200,-2081645080,-1073019196,-1098706059,1962999612,106859276,22118275,1743324020,106859265,22118275,1183516789,1363622308,-4710284,-1070903296,45633616,297291776,2062045184,180650992,1342440632,-2081494552,1183515332,918790,-293171888,-974630658,79987539,84297355,-397410290,-998026218,81154,498601844,-2037559294,-397345042,-998026396,108461828,-17922419,1398204496,-1929067389,1358884486,-2091652632,1183384260,-957314142,234811010,-962431349,184479618,-962431349,16707714,15746759,-230242496,-2037579775,-397345042,-998026310,-196703998,-17922419,-1913239927,-1924075450,-397348794,-998026134,178180,112720,13416528,-340727728,184992899,722695616,146297024,-843558912,-1679273984,113542123,1183662059,1996443800,578223898,-14780673,1183456374,1357130260,1343374986,-15960321,1996425846,276233992,-1928431873,-11493306,1996429430,74907414,-402229505,-998042850,1015465762,-1207959041,-1202716670,-1202716656,-397410099,-997987518,1975520006,112671,1095760,13482064,-349378480,-2096708477,1962907774,-1505310931,501940224,27150023,-1737031936,505414840,-1703477424,379471501,104045136,1183385651,-1501658202,-385649408,922746078,513413014,-2096614651,1947379326,-1501658344,-15567872,1088988790,46433263,-391743745,-997986970,-1736539390,-14715649,-459630474,-1995951359,-1072978362,-397406092,-997986533,-1502150910,-2081603096,-1956773180,-1866244635]},{"sector":13,"data":[-1192457387,233308168,71732030,-1946532215,1183385158,168487934,-12159808,1191180870,-94467074,1183319946,-27358216,-411826376,1342177976,13285456,-362223536,184992899,-1960675904,1065417310,-1962380032,1065418334,-1961986980,1065354334,-2146798244,1962934655,-339727612,112643,-1017256565,-1192457387,-1578631160,71732029,-1946532215,1183385158,-94467074,1965703040,-16520337,1586231878,-2012771590,775747654,-1073085324,1065414005,-349932288,-28901629,-1963041141,-129595385,74722876,-311050230,1946173312,25133062,724596014,-1955861568,2139159134,91564545,1191178731,-27358210,1183319946,1949187320,1975519748,4161773,1586178421,25133306,-1194298368,988479489,-1963303285,-129595385,956194443,1006924807,-1961790145,1065417310,-5213184,1191180870,-10098178,-2131075445,-814404033,704741248,1586219381,4161790,-443838485,-1957313699,8960236,-952313880,385842310,2022098688,-939524097,1505350,30820039,-800667904,45613092,28856320,-877113344,1005080576,113542121,1903542283,-1962647925,162617159,2133190867,129762560,-1946532215,95508295,254142675,-767129344,626476939,1183383583,1996443864,-92864558,1342316728,-2092974104,1586170052,578289418,-14649345,1371020919,-1444392958,147096383,-1962254709,1194981958,-1961855714,1194971718,-1962380000,1194973254,-1207536606,-1360461823,178179,-877113264,-1209511936,113542120,964018187,-1962647925,196171079,522578131]},{"sector":14,"data":[-62486272,-1319811189,636015365,1183383615,1430752206,-1996480731,1586229830,-62485750,1963345721,-834237514,1963476793,138840750,-8485240,-8419642,-2142845382,71731968,1342180869,-8485235,1335552080,-1962621821,235209798,736645120,46433104,1946157373,42121231,2122747216,2045268223,79987535,-1929087233,1358921350,-2091947032,-2037578556,1343684478,385762957,2055638352,726669055,1347440832,1342177720,1342226616,1347469355,855777690,-196703992,376750091,-1202667477,-1202716668,-397410099,-997988374,-373282042,1996423885,112894,-632910512,-1224781802,110821244,-1995951351,-1072958394,-397406092,-997987289,-193528062,-2081796632,-2037579068,1343684478,384845453,1354771280,72981072,1183385651,1958743028,-51884016,46433259,-386631937,-997987806,-25755902,855973530,178184,8435792,13285456,-411768752,184992899,-385649216,45678241,79187968,-893890560,1541951488,113542119,376750091,1342177976,1342179512,1342229176,-2081995288,-1073019196,1183524469,-754339358,8332776,-1995981819,1183578694,-754601502,992744,-1949153655,522576454,-666466048,1342177976,1342178488,1342229176,-2082010648,-1073019196,1586181749,-96040182,1930577721,-30676733,1183517557,340212178,518587251,-96039938,1964132153,-767128813,1964263225,-666465525,1930839865,-33298173,1342177976,1342179512,1342229176,-2082030104,-1073019196,1586181749,-96040182,1981302585,-35657469,1183517557]},{"sector":15,"data":[440875474,-756481162,-96039939,1964525369,-767128813,1964656441,-666465525,1981564729,-38278909,1342177976,1342181560,1342229176,-2082049560,-1073019196,45618804,548950016,-893890560,1541951488,113542118,594919435,-1310439797,636015371,1183383583,-465138692,-388823631,-1996472539,1183567430,2041316,-1192081783,-1202716670,-1202716656,-397410102,-997988830,1975520006,173968180,972834443,-385649913,192281925,969819787,57868871,-1946339095,121240646,1183519605,38222286,1183517557,71776754,518587251,178429,2144336,13285456,-438769584,184992899,-1959365184,1183517278,205994492,-85392522,-1962183172,1194970694,-385649138,1183579373,205994492,1183519605,239548878,1183517557,273103346,-756481162,178428,4241488,13285456,-443750320,184992899,-1961790016,539357254,-196704000,1946165309,-55842557,1342177976,1342177720,1342229176,-2082118168,-1073019196,1961427828,-263812099,-1996488411,20837446,-1961790464,539357254,-196704000,1946165309,-44701437,84166283,-11534322,1183450230,1357130248,-386894081,-998047278,-196703992,1962934589,-61871869,-1946341655,1438866917,-893850485,947578880,-1961075061,-1874425593,-1207535873,-397406360,-998028168,340167172,-958249336,-969219258,-16718778,1183647350,501764322,79987532,383927949,261535824,-2037559266,1343684406,1347469355,112720,12630096,1354771280,35756624,1183385651,1958742926,16758815,1354771280]},{"sector":16,"data":[178256,1357904,-390862768,-16071549,602443382,46433255,-8747379,8435792,203208784,922701854,1642598294,180650830,193873545,-1205898048,726663423,-1202696000,-1202716670,-397410284,-997988235,-1904804086,-2082019864,-1098841404,8454010,28837492,15264000,653658800,243928094,-316011491,1586217219,1363642628,203505280,-2146995108,789324094,565762165,1183666188,-1779937134,79987531,-8616307,-62485168,-230257328,948342096,1183666431,1307070610,180650980,-13072755,444006224,-2080815640,20776132,-1928104960,1358920838,-401049857,-997983842,81156,1586170741,-1874425060,2112423817,73305087,-1995815285,1586189639,138840836,-1957214327,1183515742,1397197068,-1962647925,1451953734,1497860368,-1923393655,1358920838,-402360577,-998028528,948342020,1183535359,918788,1258219600,-2147171197,-15983554,1586170229,1346881028,-1962415359,1204159582,1586167888,-1874425060,-1070921847,-1017256565,-1192457387,-1108869004,-1983894730,1183419974,138840972,-1945305437,-972226530,269288198,1259399248,-1576876925,94506244,71731981,-1996488411,20840006,-1206553344,-1202716417,-1202716479,-1202716671,-1202716670,334168080,1342242744,1342226872,1342177720,1342177976,1342183096,-2082010904,1187449540,-1603984480,1183321973,-1840869978,-1605989040,2209872,1257957456,-1207516029,726663423,-1202696000,-1202716670,-397410273,-997988651,-1837203446,-2088077567,1963037310,105286258,-961657208]},{"sector":17,"data":[-969232570,-16732090,1183648374,-706195282,79987529,-401967361,-998028694,81154,-2068312460,1183666178,-1175957330,79987529,-1928825089,-397365690,-998028884,-1371108092,-1070903274,-1904804016,-1702070529,137561226,201213577,1343255744,-2082033944,1996423876,-455808770,721601667,-1207702592,-443875327,-1957313699,13023468,1446353896,30820039,-2008627456,1187446784,-956300916,65094,164234951,1183645697,-1229434738,1183666188,1183666384,1996443866,477560608,1342819000,1351370381,-402229505,-998045845,-666466030,57982987,-1962721815,126555742,-565802680,-2012068214,1187438662,1187396321,-2034761502,1183666178,-35106592,79987528,735987339,6601170,805630455,-1947646328,-768876986,1451880951,734170078,702930,805630455,-1947580792,-768876986,1451880951,-565802274,1183330308,-330905877,-532247296,-1766305770,-1924129265,1343654470,1347469355,112720,12630096,1354771280,35756624,1183385651,1958743000,16758815,1354771280,178256,1357904,-447223728,-16071549,-941041546,46433251,1342344888,-402229505,-998029094,1958742788,43628629,108461904,-2092381720,-1073019708,-1531427724,1996443650,1220077574,184861827,-1204587328,-11533652,-1477966218,79987528,578076683,1342355640,-402229505,-998029162,1958742788,46315537,108461904,-2092399128,-1073019708,-910681995,1183535106,918790,1215359056,184861827,-385649216,45613516,548950016,-843558912,-1545056256]}],[{"sector":1,"data":[113542112,1946157373,178233,2144336,13482064,-527636400,184992899,-385649472,1996423580,340167204,-1974410198,-11529658,31983222,147096567,198723209,-385649472,45613436,1085820928,-826781696,1407733760,113542112,343261195,8945283,1586171509,-700019962,1951483705,22210819,-1962516853,1194972742,-1205832623,726663423,-1202696000,-1202716670,-397410287,-997989323,67418122,-492509104,-1962752893,235210310,-2037559296,-397344966,-998029440,105286404,1342180869,-2092445208,20775620,-1206946816,-1924136245,1358903942,-2092490776,1996424388,981896454,300437759,79987527,-12941683,1201989712,-1996307325,-259271610,-12942650,-730428659,-12877114,-730428662,-12811578,-263796992,1187463168,-1929379342,1358903942,-2092468760,1183384260,981896692,-163149313,1357923981,1357923981,-2092423704,45614276,28856320,-860336128,1810386944,113542111,326483979,-1202667477,-1202716664,-397410099,-997990570,-1925256442,-11469242,1996428918,511115040,-1977846017,-467004346,306612816,209125200,-16091393,1996425334,242679568,-14518529,1996429942,74907416,-402229505,-998045990,-2008627422,45613057,280514560,-843558912,-1552384,113542110,309706763,1342177720,1342181560,1342229944,-2082543128,1048774340,1963002314,-1941518538,1183645697,-1229434738,1183666188,1183666384,1996443866,477560608,1342819000,1351370381,-402229505,-998047054,-666466030,58048523,-165399,-1710254538]},{"sector":2,"data":[137561374,1575324510,-1957326653,5814508,1446118376,-1995500360,1586280518,573618362,-1945324893,-1962101730,1065551966,-1956350719,1065551454,-967019263,-950223290,46662,-994675061,-1977173922,1116209472,-1236860993,1068924547,1187441270,1183645950,1996443838,-207820790,1023722627,527761409,649617092,-12419197,-2094641803,1979663487,106859334,67527,-955752821,-1962934265,1065551966,-1957333760,1065551454,-385649664,-826801670,1996443650,1169221652,184861827,-385649472,1183645901,1183535294,918788,1164372048,-402597911,1187382235,1187470526,-1962934090,1589950070,1082795704,-1086158847,-2085206273,1983886974,-9508374,-1592631669,126422868,536755840,-402426623,516162833,-1977217870,-467006137,-1996488155,37600326,-1959103488,1065554526,-16616448,308185871,1962950531,-1201748778,1115652902,639137279,-12288125,1586172277,17286918,140413696,1991,-385948439,-555154597,-1236875266,1988820992,-1306606410,1082795532,-1472034815,-2085206273,1980479102,-1270429975,-1471771392,209125200,-2081228312,-1073019708,1586206069,-1950487802,1204159582,1586191374,256361988,343342848,84166283,-397410290,-998030260,-1236875516,1988820992,-1306606410,1082795532,-1948349695,8914038,-2085206273,1980479102,73305061,804806,-1006346613,638366262,-2012396406,1586188359,-1305033724,1149969932,1363642642,-1006346613,638366262,-1994505077,1586189639,-1305033724,1149969932,1464305952,-1006346613]},{"sector":3,"data":[638366262,-1994636149,1586189127,-1305033724,1149969932,1418405400,1497860378,-1956948087,918815838,-1960440654,-1960438716,1200166484,1599572317,-2095948149,41156671,1586171903,4162322,1589915253,2139301560,276168514,1149207334,-1962314241,130484318,401276928,-402506008,1586168741,-1200176110,1078233894,65734537,-1962699544,1183518302,-1168733256,1468598153,274631426,-1962102111,-1995656170,39291143,65781803,1577058744,-1017256565,-1192457387,1843920986,1586189871,-1962439922,1183384151,-1202288202,-1961861493,39291655,-1995656541,-1207127018,-11533599,1441272950,79987523,1555973830,11814599,-1267299584,649486020,-2013183862,1191165762,-1266777164,-957712833,-1929314746,-11485626,-1570186,79987696,57982987,-1006580247,638366238,705513354,140772,1035749001,1031012354,-2095948149,41156671,1586171903,4162322,-1645673612,-1235303424,1115652902,639137279,-12288125,1586172277,17286918,140413696,1991,-402618135,-2098659001,-1270429952,1988820992,-1306606412,1082795532,-1505589247,-2085337345,1980478590,-1303984407,-1505325824,209125200,-2081364504,-1073019708,1586179957,509702,-1270429952,1988820992,-1235303244,21006886,1988877963,-16742380,2122560582,-428458060,-971743605,-352305337,308185890,1946173315,-1961885950,1065554526,-385649408,921239395,-13375230,-955883893,-1962934009,1183518302,-1202287690,1468598153,274631426,-1962102111,-1995656170,39291143,-15436033]},{"sector":4,"data":[1996427894,242679568,-15960321,1996425846,108461832,-402360577,-997983248,-1169782510,1575324510,-326412861,-402651464,-189256216,1996443650,1106176020,-1207647101,1183387412,-60912390,-2147431960,18873918,-1159199883,106859265,67527,-955752821,-1962934009,1183518302,-61436934,1468598153,274631426,-1962102111,-1995656170,39291143,-15436033,1996427894,242679568,-15960321,1996425846,108461832,-402360577,1183447920,1575324670,-326412861,-402650952,922692972,922681794,922685272,-1070919850,-62485168,-1231400938,-1995951356,1183709254,1186484474,347623424,-11526641,-402537930,-998030412,-129595126,544522251,1342242744,1347469355,1342177976,1342181048,-2082617112,62393028,937971716,46433244,536741574,5761025,-1017256565,-1192457387,-35127292,-28930772,4634704,253016144,922701854,1642594754,180650819,201082505,-1205832512,726663423,-1202696000,-1202716670,-397410290,-997991051,67352586,-605755312,-972897149,18873862,-1962933016,1438866917,146336907,749398016,29505279,1347469355,1342177720,385631885,79075920,1183385651,1958743032,16758816,1354771280,178256,964688,-584849328,-1207253885,-397409277,-997991534,-96039678,178256,257603664,922701854,-773324350,180650818,200820361,-2096728640,1946352254,16758816,1354771280,178256,964688,-589305776,-1207253885,-397409277,-997991602,-1036583166,-25755903,737965823,1183666368,-1706027268]},{"sector":5,"data":[137561270,-1946663287,1438866917,79228043,738387968,1358841485,705649312,817385700,-11526622,-402537930,-998030748,-62486262,544522251,1342242744,1347469355,1342177976,1342181048,-2082703128,62393028,-404205564,46433242,536741574,573618176,-1945324893,-1962101730,-1866244635,-1192457387,-1511521970,1187468843,-956301176,1479238,-9271609,-2033778687,2424686,25315015,1753663232,-1979710977,-559801786,-553204215,113654281,-16774688,-558365578,971526153,79987519,706365066,1996443876,144631812,-1996176253,20810310,-1206291200,726663423,-1202696000,-1202716670,-397410286,-997991451,141945098,-1202667477,-1202716544,-397410099,-997992522,73304838,-1957083253,1183406935,-128546314,1342177976,13482064,-677844912,184992899,-2130086464,8451694,16277123,-16091393,1996425334,-159973384,-1992177688,-1979775866,-63850,1996425846,-126419192,-386500865,-2037825006,1451884414,1976699776,1958742788,75924234,-1769799169,-956236026,33519238,2022098688,-385875713,1996423382,142016266,-9009525,-8874357,-2097151699,1347551450,-1958662168,1191380062,1599542109,-9795959,-9660791,261502719,-1070903214,-62485168,-1231400938,-1995951356,-2037675450,-1769210108,-2043019514,662044534,-8874439,1996431733,142016266,-2097151699,1347551450,692118504,1444542022,1720094200,1996443903,-1928795146,1358915206,-16222465,-15770058,-15770570,-401631690,-998031208,-1975088886,212743935]},{"sector":6,"data":[257832703,257701631,-10045697,-9402739,-1919266794,-1995951359,-2037675450,-2043019408,309657446,706365066,1996443876,142016266,-2096468504,-2038233404,-2097021066,16742550,-16480629,-16345461,-8874439,108156279,-9009607,45632887,-1202696192,-397410099,-997992894,1958742790,-16848637,-10058099,142016336,257832703,257701631,261502719,-2092954648,1183386308,1975520138,-9639677,-629807024,-16595837,-1679259018,46433240,-1191224855,-11533560,-1410857866,79987517,1433714699,1342378936,-402360577,-998031974,1958742788,52344900,74907472,-2093119000,-1073019708,716714868,1996443651,1031333892,184861827,-1205701440,-11533519,1743258742,79987517,292864011,1342389176,-402360577,-998032042,1975520004,1354771217,1342177976,1342230200,-2083156504,45614788,28856320,1183535104,5244164,-713496496,184992899,-385649472,1183449253,1357130266,-402360577,-998045565,178180,1095760,13482064,-716117936,184992899,-385649472,45614566,-1202696192,-397410099,-997993158,1958742790,97577219,-2011674998,-956361082,989796230,-15169850,511115008,-15300979,1012328528,-1207647101,-1924136113,1358894726,-2093201432,1187448004,-1912602630,385816198,-96039600,381177878,79187968,-11526624,-1912639818,385839750,1354771280,563792,1183385651,1975520138,80603395,-1207608087,1347420162,1342229944,-2083209752,-1073019196,922691445,513413014,-2096614651,1962969214,610175792]},{"sector":7,"data":[1183385483,-2008627206,-1706033151,137560548,-343259511,-1774780648,85891599,922683443,513409474,-955763963,-16662010,-1036090369,259325697,29505279,855973530,-1039743224,-1191182591,-397409469,-998036708,576621314,-768931957,-150992199,-2010118927,126585926,-235417045,-2010070400,1187417430,1183449230,-2075752424,8734406,-1551087987,378277118,113642752,-1928327933,-397374394,-998032394,218407426,-1928526430,161711174,186027021,235324941,1183649805,-672640892,46433083,-1576202334,-4715248,-1070903296,178256,146296912,-152547328,180650967,1342242744,1342177720,-1202667477,-1202716670,-397410294,-997992483,-398014710,1183466511,-364476392,1357399693,1357399693,-2093198872,45614276,-1202696192,-397410099,-997993574,1975520006,578223895,706233994,1996443876,309788422,-2082300696,468388036,-15960321,1183457910,1357130264,-16353537,1996428918,-554637292,-15940477,45646406,-1202696192,-397410099,-997993646,1958742790,21358851,-2011674998,-956361082,989796230,-15169850,258521088,377916752,1843941631,79987514,-9140537,-2037514241,1343684374,-9140595,1996443670,537180306,-1224781794,-2037514386,1343684466,1347469355,855640218,-954275064,33518214,1958149888,537180415,-1224781794,-2037514386,1343684466,856044442,-1975088888,527745035,1342242744,1347469355,1342177976,1342182584,-2083070744,1996425924,-716380022,-1593654141,270868504,-1975088896,1946161213,1958150062]},{"sector":8,"data":[31759103,1183385651,538687626,143035728,300437759,79987514,-14518529,1996430454,440830496,-1974410198,-11528122,922714742,922689554,922689552,922689560,922689550,-2037571572,-11469048,1189610614,449086445,193611401,-1205898048,726663423,-1202696000,-1202716670,-397410284,-997992875,-1971912950,-2083207704,1586168516,-2109306108,1968260921,21948675,1342242744,1347469355,1342177976,1342181816,-2083116824,79170244,736710660,-1773761279,213301328,2055638352,1183666431,1996443792,71731972,1342180869,1342819000,-9927027,74907472,-2080941336,1183388356,-1205802102,726663423,-1202696000,-1202716670,-397410284,-997992999,67483658,-733419440,-2096970621,1962969726,73305050,964839051,544493895,1342242744,1347469355,1342177976,1342181816,-2083149592,79170244,401100804,46433236,-1960681845,1183401991,407276180,-958904696,-969221818,-1207903674,-1924136123,-397354938,-998033248,-1807316220,1689899563,82966272,-515471312,731137675,-1980631086,-1031039914,179950123,82966272,-498694096,731137675,-1980631086,1183487062,-2010119020,1187439430,1183645924,-1202710824,1344147350,-16611699,-1070903274,-1202696112,-1202716671,726663360,-1706012480,137560609,193611401,-1205898048,726663423,-1202696000,-1202716670,-397410284,-997993223,-1971912950,-2083296792,-1070923068,1095760,13482064,-792401840,-1962490749,235209798,-2037559296,-397345102,-998033356,71731972,1342180869,-2093447704]},{"sector":9,"data":[20775620,-1206946816,-1924136115,1358869126,-2093493272,1996424388,-1299804924,-974630658,79987511,-21854579,945350736,-1996307325,-1946190714,-1300052240,-1232400898,-2100887684,-1962213709,-956334922,16692354,15222471,-364460224,-2037579775,-397345102,-998033370,-330921726,-21854579,-1913764215,-1924077498,-397350842,-998033194,-126490364,-9271609,1996423169,537180410,-1224781794,-2037514386,1343684466,856044442,-1975088888,91537419,-375097,538485247,-1996484571,272468550,-1194757120,-1202715822,-397402085,-998033510,1958742788,258521106,538687568,931719248,184861827,-10127936,79231606,-11526624,-1912639818,385839750,104045136,1183385651,1975520138,56604738,538687568,928573520,184861827,-1206750016,-1202712728,-397402085,-998033594,1975520004,-92864733,505414840,1857486672,1921420799,-1706027265,137561651,193611401,-955943744,-1466,-1960550773,126483014,-1202667477,-1202716664,-397410099,-997994670,-443851258,-1957313699,10402028,-954027032,-2490,385763015,-96024832,1187446785,-1962924808,1627718726,1183535104,918788,919660624,184861827,-1955957568,235209798,1183535104,6358276,914810960,-1979399037,-2037905850,-2033778846,-969212061,16737414,84166283,-1924136863,1358914182,-2093603864,-2037578556,-397344926,-998033269,1958742786,73304868,709904266,1183469796,-1014280186,1342180869,-2097130520,1048774340,1946160302,-339727612,73304897,709904266]},{"sector":10,"data":[1760055524,46433025,201082505,-1192856384,1344145886,1347469355,76192336,1183385651,73305084,709904266,1088966884,46433025,201082505,-1195477824,-443875327,-1957313699,7649516,1445056488,16664262,-2012854646,1187427398,1187396277,1996423350,-1270444796,897771600,-1929067389,-397364154,-998033898,-96040702,-506169,-2141131777,1962999422,-16520344,1988885070,-1267040006,188183644,-1192198666,726663423,-1202696000,-1202716670,-397410286,-997993959,16758794,112720,1354771280,1342177976,1342180024,-2083389208,1187384004,1988821502,-1270692102,-129564928,-772245877,-96039962,-1920187767,-397364154,-998033552,1975520002,-129594478,-2080749943,2080438910,-25264045,-1957858048,-422446474,-963874165,-1923304382,-397364154,-998033596,1958742786,16758862,1354771280,178256,1226832,-778573744,-1207253885,-1202716417,726663169,45633728,179851264,2129154048,180650961,33441478,1353991821,-2093544728,1183449796,1357130248,-2097147160,1183384260,-16389124,-2014578098,1575324510,-326412861,-402648904,1187455136,-956301058,1812000838,301090503,-230242528,1187446913,-956301068,18019910,-554154297,-96024823,1183711231,1183666416,-1545056016,79987509,33310454,1183516276,-28931600,-1544534389,1183517870,1575324670,-326412861,-402645832,1187455048,-1979705628,-467007930,-1996472275,922746438,28839086,1183666176,-1202710810,-1706033130,137562374,201082505,-1205898048,726663423]},{"sector":11,"data":[-1202696000,-1202716670,-397410286,-997994319,-59310326,-2083572504,1586168516,1464306436,-1947318647,1183405383,-1372127248,112652,-431583920,1996443670,82746084,1183385651,1958743036,16758815,1354771280,178256,1226832,-798496688,-16071549,-353829770,46433230,212743935,855973530,73304840,-548182144,503963320,73304912,726890495,-1706012480,137561226,-1191426423,-1202716671,-1202716544,-397410099,-1070871542,-1017256565,-1192457387,1843920906,138840607,1076749354,-96040704,112720,1996430928,1227006,93690448,1183385651,-27358212,-15828993,2013203575,74972934,-11485141,-773320585,-397389259,1183397324,-128546314,-1962654069,1446577750,1920563192,-163170043,-4689293,-1070903296,45633616,330846208,-1360506880,180650959,212743935,855973530,165591048,-1070903266,-1097183152,-1995951359,-1072956346,-558357644,726670857,1347440832,855935642,-62486264,503963320,1354771280,29268560,1183385651,16759036,1354771280,178256,833616,-816322480,-1207253885,434831472,1342242744,1347469355,1342177976,1342182072,-2083570456,95947460,-1092071420,-1950340147,-1866244635,58263239,243859456,646513667,914949125,-1979972601,-956077042,224774,-2130262272,-956301309,225798,1040631552,-950183164,2080653318,1107740476,-953467388,1023689734,124250171,-4713613,-1960422401,255469085,45613939,216619776,2067171585,1431786243,58924685,58328822,-1405192928]},{"sector":12,"data":[1913123560,123463735,-1930939788,-166300409,537098758,652739957,-165483769,1090746886,-347202700,1007126552,-2147125955,17005070,133032003,-2001942157,-1007992057,1882622286,509443,58662537,-1927443674,-2147253450,829697852,1948400768,2047276551,1349845251,21465638,104457266,292750188,-788304735,54739936,529213144,-352288536,1845938022,-352321277,1200236126,1088696833,-670834479,839879206,1959332845,642990863,-1142415477,1064524544,-220052669,57542343,871038979,21465638,-784276430,651690976,-466483318,54583505,260712152,-921965262,1396903796,-400585946,1935343700,-498908406,1845938162,1560282115,244013919,1856045932,1882622723,1914080003,1948158467,1355020291,-1459123418,74776578,57411327,1962949760,108824,113707125,131950,-1336930581,-385895421,-346554220,17885187,-1007041704,-1977200299,-315488177,225757451,-402034803,141754972,-503312920,99351030,58797705,-1017292296,8290342,1157854208,-1018824981,58330752,-3610608,645939826,1357841274,721649057,2063991238,915101699,1015022461,-2145159936,1966800764,1845937928,-352319229,1065559582,639136768,67575,113709429,131950,-1813509653,233568256,1342893049,-4979792,1476396008,643286008,-1996193909,637760062,-2010774136,-1588592283,-1993997439,1012400709,638219521,637818249,-351908471,1963080793,1435051526,1011870468,1021867015,1021604872,637957382,-352037496,1963211837,58433806]},{"sector":13,"data":[1166616128,1569465860,640412422,637826441,1342594444,38270502,-1341885439,638184196,33703926,45090164,1476449512,38270502,-402426864,-1017184090,71763654,-1960423424,1975520007,1381191703,1845938007,-1275066109,-402411265,1516240736,753621083,1947205801,1845937936,-402653181,1048773069,1963524974,134261015,113710452,878,-2096968472,151219774,65733237,-1450165013,326369536,57542343,-337117184,73656323,57556611,-1457294071,276038144,57542343,-739770368,1849590531,242551043,1948254377,1845937929,-402653181,1048576175,1963000903,1849590541,108331011,57542343,-1017642999,76174928,410304522,192231996,97408,80086389,-402003200,24315179,-487897530,1455642718,-1966044590,85583876,-1073083534,199756660,-352024576,-347716095,-1017226518,208896060,1114792252,1048017468,988536612,-1923676589,-2147206850,74712314,70532749,393483576,508711248,-1973046265,-17470,-1174403655,567148543,-1957144230,1166934365,742605571,1607935616,1019435783,1007186480,738490169,-104597456,1381191875,2139825751,92939782,74825738,149684148,57542343,-4980727,568853424,1532649470,1431356248,45241938,2095580298,-398822908,116850546,1946682234,1966947341,2122327582,1853161473,116789995,1947206522,1966750734,2122327562,1517617152,643492678,1962952250,1958742556,-347781552,1178215954,1178825984,642057354,1962952250,-347781575,2047276715,259276803,38270758]},{"sector":14,"data":[125042720,8290342,639792128,1050615,977016948,-2144990859,1962934398,1007610637,638022912,973110912,-336002188,2100726021,1516173315,1354979421,1398166097,10283094,738641758,-956301308,273926,805750528,-402653180,376570017,168045731,-401050405,1701970069,168046243,-401836837,1500643465,168046755,-1957530149,-2096887266,527696635,168045729,-1975355932,70164936,964027402,378267786,-75299792,-2046659327,-1961432087,-1593562090,-469105618,-930472075,168046753,-1978239516,1694139368,-1031732109,1583023980,129040308,-335745048,-1268884721,-402411265,113769700,590702,-1017620134,67778189,1962884227,504359682,522080338,-1959264072,1478610390,1371742042,-1966525614,1958742532,155091003,259260420,1963064192,1949973508,1949187120,1007479596,1009153069,1008890927,-400657362,510852673,-1164902220,-487129078,292934155,242401539,-1075100015,-336013174,-336050683,-1047791359,1354979674,1398166097,-7804842,17908982,-402426530,113705193,1068,70125255,113704960,1072,70387399,113639424,-1291779063,-8919039,748901234,1960512004,-9705387,782452594,1960512004,-402476215,963837789,168046755,-164661797,33782022,915092597,2088764272,712322303,788481222,58263239,243269632,-1962802311,-1962671346,-1962670810,-385611978,585693652,-1554484481,-620100558,748769653,1977879044,2030499402,141820163,1064766524,-1070464395,58328822,1007449092,67662860]},{"sector":15,"data":[1009545740,-1977059560,70164944,527819786,815919242,1977879044,-1580692970,-469105614,-393605771,-4956581,-1981282128,1527770107,-1325419426,-75569149,57542343,113639433,1509950473,1354979417,1174702678,-109723638,217990282,1953512480,1952529432,1970093083,1149914656,1008733438,1007055984,-351701919,2047770640,99288067,58265216,-29047295,-1017618944,-1957275824,-1979483330,1958742532,5761041,113647733,1577124935,1593836742,-966903317,643760132,67575,113716597,131950,1448617451,-1073085302,719854452,-401902592,41091419,1179076167,1956834027,312835,1883146567,1482644995,1946288297,-4960247,-840432208,1405311226,1042189649,637188,74712890,1106895427,1354980185,168069714,-399149888,712114455,973175939,-148501132,1946161159,24936477,202863872,1918975008,2004499473,-1973408755,-1325419312,-92084218,113706731,590702,-1396484006,1946165480,5367830,116790389,1948255098,2047276782,158613763,-116987058,1324876267,1405352131,1947024465,1946172461,1946827817,2105550373,510788098,-1977165005,-1014824099,964699652,856519680,160048841,20588099,-119405452,1532562748,-967748669,537097222,58336896,1948269791,1946762294,1949056050,1965046833,540835852,548407157,-339723706,2105550366,393347330,-1977169613,-922025139,62589812,975586048,-502828031,1495284984,1956823899,2047276547,91554051,58330752,-339723744,-2094101014,1960655619,1966029849]},{"sector":16,"data":[-1974404846,1592328007,-1979354373,-78125052,-133305512,792464107,243271029,-130022534,1398152899,58146435,1344632064,1465012510,-164428203,12115598,-1943941789,131795931,1499094877,628381727,58013321,58138249,58013323,58138254,1946172547,1912879632,21248520,-336002185,-347716091,1583085803,-1957313761,-1957275668,1166738558,93016074,-1962779253,1435173965,141921030,65557855,-1957208585,92866174,-1996333687,1435042893,141920518,-1983608161,-1990718395,1599998533,-1017256565,106058576,-1899416745,-1191234623,11670062,-1942605875,906252806,72367753,-1307431240,909102338,73008780,1480493366,305051652,801965234,1778814006,1049179652,783811688,-855199214,109852207,-1992948658,-1710994370,26056,1241943094,1049179652,-1942617016,906257926,73678473,6678938,109852160,-1992948642,-1207673794,145887790,-1942605875,906260998,74464905,-2096707786,906628356,80479942,113718820,1160,-1979267274,-1711273468,26019,1980140598,1049179652,434635892,3205120,1358971880,1912623848,123689224,-346530982,214205188,1448135673,1660991518,119415245,906654239,75249289,2114358326,-1017618940,-1153171272,-768409600,-427810355,30310401,-851181128,12108577,113476,567136819,-1207841152,567100417,-852446013,343329,-336067723,146712,-4520589,-1157370881,28835842,47360,-4849486,1397801977,106386769,921275218,75505289,-2060023754,1493735940]},{"sector":17,"data":[-922025984,-318037132,803734901,-402396416,259129794,17819738,-771072249,-1779956876,-2096829690,-336001340,1516177156,1560834809,-998024359,-2096829694,-872871740,911364944,75505291,1979710339,2942981,2011694059,-1274055936,47961,-466476595,-116996989,-75296533,990606591,-402164543,-998047568,57866502,-1017619622,-2095118818,460653049,-1977220428,522308885,-1310145910,520494592,-1977219213,567083349,-1274024968,1959332610,361375241,1229398477,536408949,105928643,519736147,-1327920377,-1359807462,-651492491,1540066123,-1017161721,-921976781,102649716,-1958693857,33129431,567093365,-1977200609,5957637,520494680,-1258813837,567099968,1031808668,-1962773222,-821957695,-268274,1364531947,-1946179864,567106025,199950963,125093947,1979246651,1572965122,666419999,310016,-2134703691,292880382,1971373814,-1928913396,-1190886594,-1572862,1460061182,2084488246,1962871556,1032005143,276101120,1912945190,1161438727,-117344511,-370456761,918751071,75892367,-1835803853,-1976109258,-147418364,-2096854474,91621882,-348667264,818053123,-1073004206,-620034955,-108839820,-2146536189,1965820540,922695174,-348060525,117015332,2088767093,108342282,-1825112266,300630276,1963587971,175931404,906392876,76756735,-768371903,-768367893,-13189069,-1023113674,-921972173,632562036,942014640,638219557,1946248504,1975794180,92939790,1946110952,1111967489,1457747273,-317994361]}],[{"sector":1,"data":[911029620,76037763,-1976797952,805570116,21314086,535495285,74788924,74764811,-404016125,-2059501514,141950724,1229537858,65752911,1476394938,-1509077,1935237117,9169155,-2134209711,1946158716,1959332621,1195985158,1577184071,-922021653,-346160267,-425207,-919403915,1668611851,1359370069,-2093561549,297022,1156986997,141889287,-402490172,636158612,218580214,1156975732,108269063,201802998,2093222005,44230658,1156975595,91556615,-352110616,25749504,585630699,1493660160,1583177479,-998046485,-2093549302,297022,57804149,922682857,76023495,868417536,-2002700590,113718788,656522,1493073128,-1937274826,-75283708,-402426560,-906100216,230223221,-2021050870,1128465548,-1023281176,-164408490,-25114317,906589695,74759364,686539660,1946339062,-1127991799,-1014234024,322771691,1024356864,158793767,1690092598,-339506172,-1127991801,-1014234040,1979710339,-98281,-336002187,-2002569715,-18428,855638461,216791286,1946221443,5564419,-133904765,-922024334,-1695874443,33456284,1431447925,1347880529,-855310152,1493122095,-661976715,-855309640,-117314769,123667827,-2096698535,216532676,-346399488,-401682687,1583087611,-1185916981,-1070399489,-772296974,-1017161655,1963064195,1048786465,1962869872,-49895,911215989,906266785,74456831,906357592,74456831,-919397653,1962933888,1300899334,638184195,74790200,55413286,-117127293,200813427]},{"sector":2,"data":[-2145815351,91553790,-351978714,87762435,166396533,-2096794551,-471137081,-2146798855,1979252734,2097358336,839283202,227157741,113653319,-1023409022,2088819507,326434822,-1937258698,1127030788,-2017053117,1126171788,1560325096,-768353485,-2112976842,155486724,527876410,-259342038,-2147007242,1149900148,-2021116406,-2092759924,58015995,-33521688,-2132052530,1946159228,139212813,1277823091,-1965979128,-922023860,1156982132,208998151,268911862,-1977219468,32196357,-2021116328,-2092759924,58015995,-33537048,-153389623,1971324740,1962281497,172263957,-1937274826,-75283708,-402426560,-822214620,1157032821,141889287,268911862,233505396,158650890,-2046390474,1976237572,190711,106021717,-1962467753,-1915014197,-402355138,91421486,-346486945,113541892,-161627143,1966081860,92939794,367542608,637957116,1342260618,638446584,-1073085046,1095173236,-114559509,861782869,918565842,76154567,-617414640,537347318,-1977211275,121959941,-1475447539,1124299904,-952729820,168069638,121959936,906458382,76154567,1491795978,268911862,-1960433547,121959941,-166693619,74744004,2145681475,-1979267274,-167769596,1963853636,113718791,656522,-1960432917,1435182597,121959938,-166693619,74744006,2145812547,-1979267274,-167769596,1963853636,113718791,656522,201034984,855995611,1378726610,912114517,76154567,2095579146,869413632,1048786624,1962935436,8906784,906008296]},{"sector":3,"data":[77018879,-1967115455,-1998060220,922695168,-1975450473,2095580228,1048786432,1963000972,6285344,905998056,77018879,-1967115455,1625818180,922695168,-1975450473,1424491844,1048786432,1963066508,88377886,905987816,77018879,71600705,905984744,77018879,2091073,1426075368,-1338460989,-1944679168,1931595012,113718797,1164,-1761163722,-1950143228,1156973124,141889543,1979736893,6535171,110048963,-2009725812,-402357746,910817985,75632186,817366389,1094799360,-1942552778,1381090052,-1057325026,-1031141258,213126948,-494271765,-678748410,-2145443379,1962412794,-93919214,-930477197,567141002,-336010870,1912648706,-346465788,79987460,100647929,76544,131244,196800,327910,393475,459022,524586,590162,655737,721308,786874,852483,918050,983618,1049191,1114747,1180344,1245908,1311464,1377024,1442593,1508168,1770390,1835937,1901484,1967031,2032591,2098151,19661798,19727369,19792969,19858583,19924146,19989749,20055355,20120950,20186559,20252157,20317768,20383451,20449002,20514612,20580208,1226246075,1919902574,1952671090,1397703712,1919252000,1852795251,220793357,1970230026,543515506,543452769,1735549300,1679848549,1702259058,1918967923,1752440933,1634934885,168650093,1225395488,1818326638,1847616617,1700949365,1718558834,1918988320,1952804193]},{"sector":4,"data":[225669733,1850281482,1768710518,1634738276,168650868,1225395487,1818326638,1679844457,1702259058,1701868320,1768319331,1769234787,168652399,1460276523,1229869633,539051854,1713401678,1936026729,1919252256,1868963941,543452789,1914728308,1869902693,168650098,1225395498,1919251310,1633820788,1886743395,1936286752,1953785195,824516709,544106784,1986622052,841293925,638192954,1850280461,1953654131,1936028192,1701998452,1918989344,544499047,1679847017,1702259058,976299296,1344342541,1936942450,2037276960,2036689696,544175136,1953394531,1702194793,773860896,168635936,1460276556,1229869633,539051854,1802725700,1702130789,544434464,544503151,1931503215,1702195557,224748398,1885688330,1701011820,1936286752,1953785195,1919885413,1852793632,1970170228,1718165605,223039264,168632842,543516756,1953718636,1818846752,1635197029,1869488243,1701978228,1919906931,168649829,705301795,1176513066,1936026729,1919252256,1633820773,1684368227,544240928,706752805,168634922,1393167656,1668445551,1868832869,1847620453,1663071343,1635020399,1646292585,1969972065,1768300656,225666412,168630026,1970499145,1667851878,1953391977,1835363616,226062959,168640522,1314013527,558321225,1818838560,824516709,1936263693,1914724640,761553253,2037149295,1818846752,1376390501,1634496613,1948280163,1713399144,543517801,1311725864,220151593,1936019978,1701998452,1818846752,1702043749,1852142961]},{"sector":5,"data":[1696621923,1919906418,219613709,1818838538,1919098981,1769234789,1696624239,1919906418,219875853,1936607498,1768318581,1852139875,1768169588,1931504499,1701011824,220465677,707406346,1953451552,1818386720,1869881445,1936028192,1701998452,1818846752,707403877,705301802,707398157,1699881002,1919906931,543649385,1701603686,1919295603,1679846767,1702259058,976299296,707406368,223414797,1380013834,1196312910,1766203425,622880108,1997147441,1663071073,1735287144,1629512805,1919251558,544500000,544432503,1801675106,1965057125,1376390512,1634496613,1948280163,1713399144,543517801,1311725864,168640297,1936278542,1953785195,622869093,235539761,1635151433,543451500,1702125924,1225656845,1818326638,1948279913,224750953,1867389706,1970238240,543515506,1986622052,1886593125,1718182757,224683369,1867389706,1918989344,544499047,1986622052,1886593125,1718182757,224683369,168624650,705301798,1277176362,1769239401,1713399662,1936026729,544108320,1986622052,824516709,707403834,1124732202,1953719634,1936028271,1818846752,1948283749,544498024,1701995895,1667326496,543450475,1646293109,1937055865,543649385,543516788,1262698818,1663062101,1634561391,221144174,1359613194,1414743378,541413967,1986622052,540684645,1986622052,1530540645,1752457584,1818846811,1835101797,542989669,1565732699,1345280800,794501213,1633958466,542991732,977350491,1702125924,794501213,1769224773]},{"sector":6,"data":[224224621,538975754,978071387,1701669236,794501213,1528847693,542985775,1564749659,168626701,1679827014,1702259058,538982961,1667592275,1701406313,1752440947,1919164517,543520361,1998614127,1751345512,1701344288,1667326496,544241003,1701603686,1918967923,1953701989,1684370031,1225395502,1919164448,845510249,1634753338,1717266548,1852140649,1566928225,537529693,538976288,538976288,1884495904,1718182757,544433513,543516788,1701603686,539587368,1914728308,1869902693,221144434,538983946,538989359,538976288,1936020000,1701998452,1768300659,544433516,1629515369,1931504748,1768186485,1952671090,1701409391,1852383347,1701344288,1952542752,168636008,790634572,538976336,538976288,1836020304,544437360,1868981602,1914725746,1869902693,1735289202,1634038304,1852779876,1713404268,1936026729,544370464,1701603686,1751326835,1701277281,1769152612,224748398,538984714,538976288,538976288,1701344288,1935764512,1633820788,1886743395,1718167584,1886413088,1919971186,1702125929,1953784096,1969383794,544433524,543519329,695494003,1309281582,1110384672,538976288,1377837088,1869902693,544433522,2037149295,1818846752,1814066021,544502625,1851877475,543450471,1864396399,1700929650,1701998438,1701344288,1701868320,1768319331,1679844453,778400865,546703885,541142816,538976288,1699880992,1919906931,1864397669,544828526,1701603686,1751326835,1701277281,1852776548,544370464]},{"sector":7,"data":[1702127201,1752440946,1886593125,1718182757,543450473,1702125924,537529646,541404960,538976288,1699880992,1919906931,1864397669,544828526,1701603686,1634476147,1663071347,1735287144,1629512805,1919885428,1918985504,1919248748,1634235424,1752440942,1886593125,1718182757,224683369,538972682,538976288,538976288,1835627552,168636005,790634573,538976332,538976288,1953719634,1936028271,1819176736,1768300665,544433516,1851877475,543450471,1864397921,1634476146,544367988,1851877492,1701344288,1701868320,1768319331,1948279909,778399081,541002253,541929248,538976288,1699880992,1919906931,1864397669,544828526,1701603686,1751326835,1701277281,1769152612,543515502,543516788,1953718636,1667326496,779122027,541985293,541994784,538976288,1699880992,1919906931,1864397669,544828526,1701603686,1752440947,1847620705,1869357167,1919248238,1769497888,1864397939,1752440942,1701060709,1852404851,1869182049,1768169582,221145971,538986762,538985519,538976288,1936278560,2036427888,1768300659,544433516,1948282479,1646290280,1969972065,1768169584,1948281715,544498024,1668571501,1886593128,1718182757,1952539497,1936617321,235539758,-230781689,-1212055204,84003592,-65280,1158742020,1852142712,543450468,1869771333,824516722,1049429774,-1048353362,84069152,-65280,1343094788,1702064737,1920091424,622883439,-1928917455,-2090479042,1439374785,1448602763,-1962639733,-1957688763]},{"sector":8,"data":[39684869,-1962652277,1972045397,-1705681144,21684,2123061085,-1996125946,1300824669,106268932,-1626835575,1166656650,1166628876,-1956684278,1438866917,1448602763,-1962639733,-1957688763,39684869,-1962652277,1972045397,-1705681144,21994,2123061085,-1996125946,1300824669,106268932,-1626835575,1166656650,1166628876,-1956684278,1438866917,-1070338933,-1962699800,-443874234,-1957313699,-390056980,-397016188,1586102290,-1946211836,-1978879946,1592011264,-1017256565,-1192457387,1709703178,-1070901757,-1979824503,1048837190,1963001218,-373282043,12058802,-1377284095,46433044,-1207170397,-397410048,-998042464,212902658,1342178744,385631885,212121680,-778416098,-1995951351,-1072956858,1183516020,-948311046,63046,-1946788213,-1978922442,8975942,-1946788213,-1978879946,8975942,-2114566401,16840318,12115580,1183666177,-1588586756,1344146608,856267674,-96040696,-1166688245,-1995657055,1187510342,-1962934026,126548062,-259267542,1962309177,169773833,-163149300,1191116936,-129564682,16154241,-941851647,17138182,-11933440,1575324510,-326412861,-402652488,-950664560,65094,-771852661,-1531150106,192217100,212188288,721712384,-1960449088,-422445450,939804298,1997317252,-1518061557,-1207602676,216727553,-2080487681,1912995454,-18233,1575324510,817103043,37495245,550306419,-1962349633,721420854,16679415,-1107070448,-1896214528,-1631288873,276036386,-135782634,1354773249,-1207666968]},{"sector":9,"data":[567102719,922674307,92939913,-2044294858,-1312388347,1222693636,92578614,915011331,-1014235134,-604512725,567102132,-81884106,-66644475,-1190623553,-819256672,-1426866125,1005068054,-400615936,31982482,-1232126,-16376778,-16377290,-402253770,-397371470,-340262686,-1193767416,-952762365,1141213190,2078822505,66971649,1342242744,92804863,567095476,-1207566941,567096576,99163785,99288716,12066574,1751300645,521544141,127929995,109981411,-1960442373,-989844426,-1945656826,920335322,127803135,521536883,906055145,128321221,62642828,520041984,521537438,100337294,739150630,-1909005568,654259137,1946172800,833836,-217719618,-1190431578,-1070366721,427142898,503768555,-141877497,-1408891713,-22244968,1208054976,385344170,310047,100968320,1140897983,175251917,1954595574,76513285,2034974726,128630503,-402150721,-1430388574,128630535,-1023374616,-1091794091,-1396766548,8251400,-1090016578,1961363372,1426320128,-1396773749,128761607,-1107269912,-1396766804,7137287,184596968,-2096401216,1962935422,71747333,263782655,375552,100960246,-1274776575,1126288702,132707042,71731968,567102644,127929995,45811683,-1642135808,382017031,12060137,522308901,103169664,504198144,-989452384,-1274664938,522308901,1945582531,-1957736694,-597235,-1007490095,242480955,-1962610813,38079237,503313012,12840683,-1192457387,-397410052,1048773243,1946158636]},{"sector":10,"data":[739704580,16758790,40495184,-1017256565,-385875272,-1957036453,1926769628,773733130,-1962642938,870449123,-28972608,-1175047338,-466485182,-533549828,-192873502,-401771435,28901294,753422336,112642,110084958,45745712,-48875520,-1909885947,637926150,2885262,102762124,-1181106125,-13402112,1974382322,-1991817221,-1190781378,-1359806465,-779365897,-1107295809,512622721,1017906683,1023112224,1022850057,175076365,1198224576,540847182,154986612,222094452,-1073062796,574380148,1547445364,-347995276,1103705060,1952201900,1948400890,-338623740,-775844909,-1462692887,-339053311,1017925121,170619917,1009218752,1018852386,1107522652,-919343893,1547480129,574421620,-788331404,-1047798805,-787224111,-764083800,521574379,102252169,-783821053,-2133392409,-500433182,446940299,64523014,906434299,1128480649,102643397,-1073042772,-2118190475,512636416,65734139,-1398095821,-76275652,-143390404,58002748,167804905,-352094784,-1992912775,1313030975,1948269740,1946762459,1947024599,1958742626,1948400734,1952201767,-454317565,-1404974797,-93037508,108274236,-1426891600,1555091947,-1426855471,581961331,1321593770,1947024556,1958742574,1948400682,1952201911,-320099837,-1404974797,-93037508,108274236,-1426891600,1555093995,-1426855471,581998195,869133226,521579200,1991,103819007,1441565525,100343438,-1047803597,-108271221,741772105,1962281728,650546704,16000,-234458112]},{"sector":11,"data":[1974355374,1083655674,-41157084,-989600303,-1084809450,-2048393207,-812949760,-133956213,102510217,-561117410,-481692109,993820947,-1996131261,1162150014,-1073042772,-303891851,369118857,-443851489,-1957313699,509040364,72780551,-1392003906,276087355,208967232,-1178586217,-1359806465,-336857205,-1956749418,46292453,-326413056,74907479,201313256,-1844153152,-1070335349,-218103879,1238497198,-1275067717,1596050752,-1034033781,-796196862,92931587,104412530,628295044,1342181125,61987025,-645076781,100343435,-1056715989,-661929074,567102132,605057624,-2069673744,780899589,369165706,-1950153334,-74323513,-1070394510,-1017256565,-397346701,-1957167080,1942183397,976903,-1711276104,-1017256565,32039986,10666752,1977879046,-46235613,225575685,225649212,91365436,132842928,1980972176,-1156337662,-1730738638,-1023019613,-135543670,-2081649835,1448543468,721832126,-1877611521,-2096741130,-397014156,-998046928,24395778,147227463,123745849,-947132813,-443850914,-1957313699,149717996,1354651223,105286918,1459373705,-2097026584,-125107516,1342588557,1443133183,-2096930328,1183385284,-396929288,-998047150,-129594620,-443850914,-1957313699,149717996,1988843095,121932294,-96040552,1210959499,-754732794,-775386120,-775879712,115869152,-151501175,1954743876,105182726,-2146732992,-1205860788,283770879,1157009409,-277544698,33967232,-284793728,1149878315,-1980200190,1157037182,1601506310]},{"sector":12,"data":[-343810421,61933128,-1014236205,-670833711,-2013862959,1963001576,1358856518,-2130283514,1963350270,-92864717,-2096070680,-1073020220,117386613,-25098682,108332624,-351663432,817401860,71600416,1586168969,38258680,130417152,-1878463743,10283094,-167590781,1963460164,-2116121831,-1324988181,-1946430717,65262019,-152841768,17229959,1015763060,-1962640341,-1992293308,-128021756,1208108939,184697993,1460895487,-16485121,-1914111370,113541899,-335788407,1586204698,76019450,259268614,1342177976,1347469355,183822419,-1962359677,1183450204,-351827964,29331479,1355254528,1342457485,-386238721,-998044848,-62486266,1962704441,-18093821,704923274,-1956684060,-1866244635,-2081649835,-1957297428,1210909766,-754732794,-775386120,-775879712,115869152,-1191295351,-397409792,-998044580,73304834,184829833,-2146470720,-1962408369,1204289118,-352190462,1586204695,105873412,-28931324,71797056,-939630965,66119,-1962647925,71601139,1204225929,1577058306,-1017256565,-2081649835,-1957296916,117376118,-25098682,141887056,184436423,-1878201590,106495617,1187456117,-165662466,1963722308,-2116121831,-1324988181,-1946430717,65262019,-152841768,17229959,-1070922636,-963955221,-1324988371,-1946627325,65065416,98619841,1183385320,-28931076,-1996209015,-60912892,-1996357448,1149829703,17286658,33967232,1577058744,-1017256565,-2081649835,-2091515156,1946158206,108953947,125044304,1476820609]},{"sector":13,"data":[-1955171066,1200227934,-397371385,-998044004,1958742786,105286500,-1324988371,-1946627325,65065416,98619841,1183385320,108462078,-2097132568,1586168516,509694,149447,106859264,-1070861429,1200161929,-1876235516,-2130289013,168428671,2139162484,1965043716,122128920,1105744024,46433038,158646283,-402229505,-998047736,-443851262,-1957313699,82609132,1988843095,-1962988796,52692548,1182073404,134628598,-561309323,105442177,-70057039,-472792181,-472786941,115902454,-1960348671,71576324,201082505,1343979200,-1979419393,1352140612,-2096536600,1178273476,-2146994948,-1088420276,1150025727,-956004092,580,1600046987,-1017256565,-1192457387,568852836,-1957275655,-2037578122,-1532756322,138840840,-1962371933,-2002582458,-1643723000,-956301304,564230,41740544,1948597376,39381251,144705223,-1070923775,-1559719773,-1700591476,143565576,-1559717725,-1969026922,143041288,-955739485,537438726,24936448,1178367280,145360583,871039024,1965767808,-1878589683,-1777940728,-352321528,1015058466,-2096270048,561214,117380469,267061398,143001343,1015024107,-3050195,1174966790,1352139914,-2096630296,-1073020220,-1202263947,-397408090,-998045850,-2081387772,566846,117378173,-1499395950,-1546062072,1015023782,-14453458,1174968326,144750678,121432144,-1962621821,-1606515728,175964168,144705223,251592705,76155032,4603288,1312633460,1026913280,544473192,1962961981,-1912158458]},{"sector":14,"data":[-2097151480,560702,1015022965,1174500684,1962949760,25749787,143525575,-471138303,143525575,-605356016,143525575,-739573752,-1986526070,1040096390,175374405,1946175293,5782789,117377397,-2038232948,-1960771940,771660934,356319331,-385649152,-1073544940,-1476448621,512455606,529205396,-1995924319,-1811512569,1776878088,117411841,113707162,2182,1342180024,-2097053720,1374225092,146313217,-1863259392,143263487,143394559,144195203,-955681536,17342982,-1878529280,144836295,117374976,113707160,264352,143539843,-385649400,-1070923640,-1995927901,104463430,661915814,-1995921759,1048837190,1946159250,-1509505271,-352321528,780374034,-1593505626,-1073018714,-1070923139,-2096585053,34116614,1342181560,-2097086488,985137860,-806858752,46433027,16547459,1048781428,1946159250,-62485739,-1560279763,-1073018714,-1070923139,-351754589,113741831,2214,143928963,1095684,12511312,-385694589,280559391,-13637376,-397361109,719913442,28872959,-1863062784,-23283969,-385697304,1048837913,1946159246,1321634563,-2142765429,91488317,1965374848,734497781,1444827334,-2096894488,-141883708,1946172544,-42145533,144457347,-1957071616,-167213026,1948255815,-18353,1935822315,1936224894,1936225128,1920889714,1936880498,1936880498,1922200166,1936880280,1935176562,1920627570,1936880498,1048802130,1946159262,-1673624813,276103176,143138443,537282550,82556789,-1868960954]},{"sector":15,"data":[1577622689,1575324511,-1957326653,418153452,2122536535,74713604,144312063,143539843,-2096663550,268996158,512431733,126552212,-1996335221,1451883590,-1811512322,720045064,144326275,-1961790464,-1962372066,-62486265,16664263,-1878070528,143924875,-1986459765,1451883590,-1811512322,1048773128,1946159238,-62485747,1962821131,71731973,-1070923029,-1962366813,-2096585674,563774,2122525301,612172030,168066691,80090997,1183532589,-27882500,-763111177,-1982138624,1451883590,-129579010,99287041,16271047,-398029568,1996486795,1996445444,-59310082,-2096508440,1048774852,1946159256,-1477945567,46433033,144707211,1317652523,-1878660108,1177552070,189383051,-1980399680,244053070,92932236,-922024824,1631324020,746587004,-2142812640,1962999677,-1707179031,343212040,185110689,1946719750,-125926645,-1207601920,48955393,-397361109,-998047054,-1956684286,-1866244635,-2081649835,1448546540,294531,29234292,143958272,-1929886071,109312606,-385742700,1048772753,1963985038,-1809937641,-1962439928,1183384151,-94991880,143918723,-1877611772,143924875,1183385483,-129594884,-2080743796,34116614,143539843,-1962052336,1175189574,-1206618630,166397794,16547459,1773668725,-129595129,-1946526068,1452013638,-230258182,737433225,-1741276682,-1961069560,-351756274,1589940238,-230227982,4161574,994448756,-351240498,-1002008339,1191178846,1065363186,-1946979072,721987134,-1841396738,125108232]},{"sector":16,"data":[18802775,1443021955,-362753,1877538934,113541889,143801987,1460106240,-2097085464,1599996612,-1017256565,-2081649835,-1801386772,-28931832,1728347779,2122516084,74794756,48955824,1183367210,-1740733444,108331016,144705223,2122317830,225706236,144719491,-955878144,17342470,-1942552832,-1607008504,74907400,144979711,-100609,-2096657386,2122320580,309592316,143015555,-16026368,-16210890,-2096656874,1048773316,1946159238,-1606515950,192217096,144979711,127014655,-2096970621,134779910,145229511,-1868496896,-1777988856,-15502328,385875574,-998045804,1958742786,112645,-1070923029,17360976,-1017256565,1458342741,144588419,-1959824128,-16218082,242745935,-1962654070,-2012741833,-337368572,-11300853,-1779956618,79987702,-16288448,-351756794,117411845,1566443676,-1957326653,49054700,1048794711,1962936478,74877769,1115616779,922686955,922683528,1575487658,79987702,-16485056,-1962369530,-1073000762,512431742,1342113928,-1596229630,1066076330,92801023,-588520406,144588419,-1962445568,100729926,1599998108,-1017256565,-2081649835,1448542956,-2096597365,564798,485183605,143144703,637820612,1352140682,-2081030168,1967129796,-1643708668,71761672,189712011,-1961003840,-16218082,-730332593,637820612,512427914,1066076296,92801023,-756292566,144588419,-1962445568,100730950,1599998108,-1017256565,-2081649835,1448545004,144979595,1183432747,-96040452,145374851]},{"sector":17,"data":[957904176,1946720262,-1979303662,956724232,1963500038,-1442396410,-1962926072,1443407422,-2096733720,1183384260,737684472,1048773758,1962936466,758939672,1048777589,1966082218,1352182796,-2080465432,1325335236,-1438743560,192163848,125763339,143801987,-2095483904,1946158206,-96010490,-2097127448,567358,1191118452,7006460,143801987,1462138112,-2080464920,2122515140,158597124,16416387,904397685,-1472298240,158597128,16547459,1038615413,-126419200,-739748322,113542142,143801987,-955419648,537438726,1642616576,46433278,-443850914,1048822621,1946159248,2865157,548930539,132665344,46433278,817402051,-68661248,46433277,145243779,-2095614704,560190,1488455284,-1878725888,1342208184,-2080514584,-1866267964,-2081649835,1448543468,-955877749,130630,1965702272,-1809937649,-2092987640,34116614,-1874269370,1965898880,-28915962,726073343,809271551,1015035260,959479609,1963497534,809271307,113706613,3147946,-1952971638,-773729841,-774962207,-2084043807,-108318487,809271366,1015022972,-1948156359,-268960186,1586231435,-1958770428,-1956684090,-1866244635,-2081649835,-1101659412,1317668720,-1878856956,3964998,205130356,28898933,-1878791424,-1956724693,-1866244635,-2081649835,1586169068,35535620,-1207602682,720046336,542455,-2092403584,1946159742,-1949748454,1107409105,1265770957,34227959,51279104,1444087366,-1205307128,-335997440,-27883210,-1946401143,1107474641]}]],[[{"sector":1,"data":[1174610381,139858694,1317735801,-61436930,-851312456,-1948718303,1317733974,172395016,567100084,-1484782222,-369293820,-1957301563,149717996,990142091,1912996382,151042055,-223352327,100960246,-1207208928,-919387646,567136651,-2013861006,1954547204,106335086,-1070397666,-1979824503,1476197446,-1946514602,-127497742,-485994869,-234180524,-397773394,-1472397100,-2092403200,-594869524,1023541434,57868840,721453242,-1949004830,-1962469638,1017907278,990671882,-1441172229,602469602,-1335760128,1979398925,1632259,-16076630,-471073722,-352317976,-346071326,860220245,-308418112,-1957604528,-473289777,73304848,567099572,1174474098,1958743038,1482381574,-2084308341,74647748,518719924,100960246,-1962183616,1065354846,-133991142,-1191637781,116071424,738084491,1720450118,-379625736,1317794257,1976109832,-373191931,1452011973,-851397626,-1274776799,199551753,-153061952,1074136199,-628422028,1964654464,-806619133,469809401,-1587951125,-1002764754,-1003813261,-503326473,-85213133,-1947432107,-620034978,1333789812,-443874818,-1957313699,-1151904020,1065551734,506033408,374791,1963029480,-1715457275,608183531,125215742,-1777895261,66759,-955988349,-65980,125580937,-1945874805,-390033704,1583284233,-1017256565,1090572009,-511640972,-285637634,2005660275,-1951532030,1946265854,-1053079486,-796191373,-1464995837,53769217,132546,1149892491,-1947800578,51148030,-28538375,-1991720661]},{"sector":2,"data":[50719493,-28508423,-628308341,-784608884,-1943665292,-1995996130,650314367,126486214,-115454,-24435340,-1464995837,-1947044863,-1053079298,-796148365,-1464995837,65172481,132546,1149892491,-1947800578,-1073018809,-661781388,-31058709,1946651150,-1931965423,1959214039,512632325,931858304,2005646571,-390057210,-969211798,19139956,-392675264,225706078,-385987074,91488284,-347189610,-1931965287,1958820817,-2069682684,-1995994361,-1070398905,-1957575783,27852357,-936705164,-1170128567,992378879,1980204566,1978323204,63015925,51737286,-150113598,734143442,846022,-755562379,-445257007,-1017528269,501764434,1461220352,-259260789,1153954307,-1979711746,-695531913,-1991583957,1499004501,1347666778,1377751603,28856402,520507392,-2097147928,-92075836,1532633087,-771030412,-1957363517,106387180,556675,-1967179659,106334981,1208239755,1407715189,-349736448,-633959608,292833285,225769275,-1996340085,-397013946,1935540282,80118576,98238081,-771029901,-4716939,501979647,-1014769013,-1310994161,-1259613437,1914817864,76124905,-1996335991,856021558,1583286208,-1017256565,-1962127733,38550007,-964490124,-620855036,-101550843,-628408341,963779587,-1047604341,108394299,92544569,-1014815117,-774123249,-773074453,1979137003,-1579613431,-668269061,1253359758,225583565,74839867,92542601,-1962637422,-1957313583,-1948808212,-1898410786,75402176,-4603853,-1917914369,2123104117]},{"sector":3,"data":[-18170,-772296974,-24643285,-150714741,1946157510,-783703038,329642985,-1952123959,1576700915,-1957363517,-1948808212,108432350,-661848437,-1070350194,-218103879,-1949173842,-947190658,41157032,-372160092,-921459213,-208952077,-1017251189,-1947432107,-1931572265,-1950314792,2123039862,-1178586362,-1359806465,-114568713,91530995,-14827493,-1946973185,12803578,-1947432107,-1898410793,75402176,-4603853,-139529473,-1953412655,12803578,1458342741,-385830057,-1957363384,73305068,100802107,-75296387,-166953984,1074136199,28837236,855829248,1575324608,-1957363517,-2091428116,1187384044,1183567350,-146372604,175383868,108275260,-872921402,1187384555,1187433466,1187398905,1452033272,-163148300,-1947056503,92997246,-1962779253,1435173965,141921030,1426750859,1576165119,2123061244,-1996125944,1300824669,106268932,-1895271031,74582597,149681715,-1091713560,92995585,-2096335479,1583286980,-1017256565,1458342741,75402071,1569392011,72190722,-1962519157,2106263669,1461832970,-1996063093,39684357,-1996206711,1971914325,172330760,-164428686,2078804203,114413,1971914123,-1956749556,12803557,1458342741,75402071,1569392011,72190722,-1962519157,1979648117,142510858,1569588622,567107334,-678683049,2123095950,-1895461880,2123040325,-1996125946,1300824669,106268932,-1895271031,74582597,149681715,-1091756568,92995585,1594652041,1575324510,1317732547,71731978,-1962518901,509020286]},{"sector":4,"data":[177470471,-2095876928,242551545,175755787,-139842128,13796315,-141829385,198325138,-150833984,-235432975,80971666,1983462448,-1440283646,-1022639477,92856949,92712015,-1912650616,-952434364,1599664754,1575324510,-1957363517,-348539668,-326413051,1451965364,-383660796,-1957303174,-1959086868,567084118,272494963,-1829997312,1124567699,175374396,74727228,-243979716,-107871310,-1957308949,-348146452,-326413051,1586184372,172919556,106349854,1914642893,207522565,938018697,-1957363476,105286636,185228939,140413912,1183517557,-1947994364,146955749,-1947994368,71732168,51013367,71732168,-788274185,-1034033781,-315490296,-523172125,-85798191,-1957363517,-1957276692,-1073018298,1317737845,105286408,-235417037,1183570059,-1947076860,-1959203885,140413896,-1962518901,-372177850,-355345455,-921970479,-201853835,1727525003,1183551754,65468168,990671569,125240918,1178273394,1308718596,1586942515,1575324507,2242,1408011093,185222795,-1961527872,1183516750,-137219322,71732209,-1031015945,1173082675,1586219147,106334984,-788248949,-774123031,198758890,-134974007,-137851917,-141489562,-788330394,1446710386,1913091846,71711499,1177224822,173415176,453264939,-621345194,-628893449,-443852032,574045,263258472,1694513664,-1157591040,285271552,80897,1408011093,1465274961,1427506718,-1912070984,23576280,-1006630727,-1960438146,-49915,20779892,-1960610816,325616]},{"sector":5,"data":[-1206160000,652804102,46564097,325449,-2096401280,-169737530,-385874760,76218641,-2147480447,-1551892699,2126774278,898180630,567095220,663177,788108,919238,102140673,-853888000,176079905,-1559917786,-953810944,1023410181,57999360,-989802775,1317739094,1308669972,57876941,-1207910167,-661780452,-1559345525,2126774280,37652752,67537920,137265920,108208896,-385873736,915079325,1053032454,1149960194,92874264,71665958,138774822,638993547,637683081,637945225,-1962261111,-1993991612,-1993995195,1149964357,1166616092,1166616078,1173825042,1946287888,1702962700,654180368,1066369,-1967115518,-1993992892,213455941,47872,1008615562,638022656,1125597576,-970525982,-1962928319,1166550723,-1980038378,-1946156482,-1006631930,-14284162,982789,-1207012352,567103232,1053034866,1491664898,1354771455,-1912070984,238977240,225705984,919238,169264384,-853888000,391993377,1583292167,-1956947622,415915493,-326413056,1448235347,369499735,274631509,-1962125627,1085540942,124920269,-1996065083,1572875012,1595868951,1532582494,-899816053,-1957363700,1381061612,102651734,1455772950,-851332086,721580577,118971840,1516134175,-443851943,576093,1408011093,1465274961,1427506718,-1912070984,108432344,1963064963,23576067,-2147482377,112723573,-1878529280,2147427457,392020019,1583292167,-1956947622,46816741,-326413056,1448235347,369499735,49054549,673527]},{"sector":6,"data":[-987007872,76160118,108159292,41122620,1093459972,456921714,-466481549,-654884800,-1994885435,13363460,-385875016,1455751367,1124120604,141763021,1946157629,11921731,-973189495,80155766,1183514625,206092,1946157885,81162,37555060,-1204653056,-1863778292,343328000,1223,-1961077051,1035209286,2104631757,-1994885435,-1872434428,621561483,272433168,-1207536640,1709899788,343328144,132295,-1961077051,1018433102,1366434253,-1994885435,274121732,-661929588,-851311944,-985763295,478877814,722753221,-851397431,-986811871,478877814,567099060,1455760242,172395292,567098804,1992628082,-1962637032,-1193606184,-661780269,-1979824501,721421447,46433216,520558429,1499094623,1575324507,1426070218,1364454539,509040210,-1202383354,-661780257,-1962931010,1202982486,863117773,-946937972,-1191179073,11534464,-1162939652,-785710976,637959876,-902099573,146278003,-1877939456,-1993946485,176079893,-218100546,1572875172,1595868951,1532582494,-899816053,1426063370,1364454539,509040210,-1269492218,773967129,-1744594270,1074427589,-541588343,-1915187704,503359550,178263,1354771280,856127642,-1472299000,57933824,-134091783,10880711,113704960,164,-1507929700,517053696,113705126,131212,-1275067713,-1944679666,-1272853248,841075993,-1945748508,-133991424,-772210197,-16735075,-2097116154,285248574,12573052,-1942060288,-813819392,-1976693068,-855401962,-754536159]},{"sector":7,"data":[-1593793490,512426148,521011366,-1996065083,39618820,392020019,1583292167,-1956947622,147480037,-326413056,1448235347,369499735,240567637,-851246920,-989236703,210307702,65781803,1560281784,1595868951,1532582494,-899816053,-1957363700,1381061612,102651734,1455772950,172919564,-851246664,855929377,1560341440,1595868951,1532582494,-899816053,-1957363702,1381061612,102651734,-1006217962,-1047786410,172395271,-1273995637,1914817858,108446986,1418265737,1572875010,1595868951,1532582494,-899816053,-1957363700,1381061612,102651734,1586189590,142001422,-1962388341,28838476,1914817879,1572875010,1595868951,1532582494,-899816053,-1957363702,1381061612,102651734,1586189590,-138179834,-1207469608,567098880,-1070923150,520558429,1499094623,1575324507,1426064074,1364454539,509040210,-1957358074,-1007219618,108265487,-2081365117,-75296573,-787778560,-773074453,-336866837,12292100,-850873328,-989367775,76089462,392020011,1583292167,-1956947622,147480037,-326413056,1448235347,369499735,240552789,567097012,1979711293,5748742,1351643883,1342758840,-1407284961,-1441363712,-1341224704,-1365026816,205949696,108265788,-352299080,1183551567,1195270,1874331261,-1874728192,721977028,92874432,38111526,721733507,1166616256,11444482,-2096789210,-1432288057,92874240,-1993949141,-1398734267,1166616064,650128132,-1593424503,-1993998160,-1070921659,520558429,1499094623,1575324507,1426066122]},{"sector":8,"data":[1364454539,509040210,-1202383354,-661780452,-2096073077,57999870,-150902850,1971322884,440326,-1962871831,-1670860,104237439,-852511744,169773345,201755648,235324928,378208512,448004102,2126782925,93005318,637534371,1479,1962934333,12118275,-1559607669,2126774280,37652748,67537920,1325447168,57876941,-2097111063,587204654,146278003,9627904,407179,147140,639124619,-1993996919,-1993997243,1149962309,1166616086,1166616066,1166616070,440699658,205883686,272992550,639386763,638469513,638731657,-15710729,638350337,1074561,1166092030,855769104,356813504,340101414,-1157624647,1082785792,1946172446,1099441671,-220052713,390186534,650349312,51791240,37652987,67537920,108971008,-16384218,1946157070,-10884861,-1202667477,-661780452,933504,-972196864,3590,661189,567089844,118971736,1516134175,-443851943,838237,1408011093,1465274961,1427506718,1023821451,1702166528,1023952523,1568407552,2130707261,-841446593,4035345,-1324974336,-336866546,81229,78711423,229762003,1055648723,2130707005,-754405108,-754011677,-339476757,212269,246483583,263316435,518777811,1946158141,343316,-1174007937,-1030819840,-90074,-335795193,178181,-1070921749,-2012580155,118971676,1516134175,-443851943,576093,137562294,137562295,1408011093,1465274961,1427506718,1023952523,108265474,-352321096,1183551548,81158]},{"sector":9,"data":[71109492,-1207536640,703266818,891533456,1992630733,-1944286962,1455751748,378088978,-1943140340,-1945629154,-1160081718,599263352,723635493,118971840,1516134175,-443851943,1100381,1448543774,1397838421,149665872,-1064380274,203357998,1499158536,1600019802,516890375,1431721734,1347637586,-1912017992,784371416,135012095,1515805528,123690589,-808464609,1408011093,1465274961,1427506718,-1912017992,891599064,-1993465395,772338974,150406796,-628176244,-1207371334,567092516,392020019,1583292167,-1956947622,46816741,0,-13722624,1007219998,-855476990,-1957310685,1381061612,102651734,1586189590,1459664910,1886527949,-1995934011,38570260,-1996204919,1418266188,172787976,-1174404935,1586167808,1107408910,1282548173,12144722,47616,-1207017845,567099906,-1995934011,1418267716,33532174,2427252,33555966,-1996434813,1418268740,-1957078510,12062302,1914817858,148092947,1586223246,-1948581106,-1996487545,-1070918586,520558429,1499094623,1575324507,1426066122,1364454539,509040210,-984279546,76221046,-1962510651,1017908814,1007252065,67466107,-12285728,392032482,1583292167,-1956947622,181034469,-326413056,1448235347,369499735,1660991573,292692429,-1962508604,76156494,1174767654,871883335,118971840,1516134175,-443851943,202033757,1593881098,18132993,620802560,1397600256,1853182496,1835619373,1766596709,1918988898,539828345,2037411651,1751607666,1663574132]},{"sector":10,"data":[959520809,539768888,1919117645,1718580079,1866670196,957444210,-1912557056,553627648,16780544,4337408,788545839,1160708186,4992768,788551983,1345257555,5058304,788549167,1060044868,1414548480,1347158065,1342190164,1124093522,1308642895,1090538581,1275091029,976311376,1414548480,1342192178,3821138,978210627,1280658944,1430323258,1543518808,774528000,6029354,6029404,774504540,1347158058,1275081044,3298384,5132880,5132099,5002574,5788993,827609164,1347158074,3813972,978211408,1313817344,1431175226,1090533964,3823701,6029312,2752554,2764330,1543527424,1262698818,1543524437,1128350208,709907787,1061109550,1128350208,1230001483,1077947972,655424,1313817344,1280266836,1061109550,1124073216,1430995777,776227152,4210752,2764288,1262698818,1145655381,1077952558,1296189696,776948034,5066563,1145913929,1127109455,1124093263,1095585103,1127105614,1291865423,1397703763,1398362926,776947968,5462355,776228163,4544581,704643164,1162095146,709317954,1377839658,1869902693,1713399154,543517801,1702125924,544434464,1681010725,842016045,807742820,681010,1143613994,1196769861,539634218,1970365778,1702130533,1633951844,1763730804,538976371,842016032,807742820,623731762,174338608,1543527424,1128350208,777016651,1296189696,776948034,5066563,1145913929,1127109455,1124093263,1160660045,1124091224,1095585103]},{"sector":11,"data":[1127105614,1291865423,1397703763,1398362926,776947968,5462355,6029404,544173568,1752457584,1869768224,1852186733,7632997,1881173870,543716449,1836020326,1701733920,1845523576,1634738287,1713399924,544042866,2019913318,1224736884,1229081922,1329802831,1112080461,1397703757,1297040174,1297040128,1145979213,1297040174,776947968,5462355,1329877837,1498623571,1296236627,1480928836,655429,1262698818,3035221,707657820,1128350208,1230001483,1077947972,1094844480,1347767107,1076773961,43794496,10420402,50331568,671134208,16756736,-16777216,0,1014783323,993864510,-1308617950,-1342173952,-1,11665412,-5242872,83886079,134263296,150974464,45056,-65536,65535,0,658688,0,1572874,4269234,542330288,542330692,1936876886,544108393,808463925,692267040,2037411651,1751607666,959520884,825045304,540096825,1919117645,1718580079,1866670196,1277194354,1852138345,543450483,1702125901,1818323314,1344285984,1701867378,544830578,1293969007,1869767529,1952870259,1819033888,1734963744,544437352,1702061426,1684371058,675282976,1668426019,1768779636,157494884,540094005,808400440,858861365,88473600,690169920,1886743907,779249008,774965603,909647921,792080431,14129,1380,0,26971,12650731,4980914,990218928,1229348675,1230980428,240076366,436253184,1355776,25264513]},{"sector":12,"data":[-1308621055,-1342171904,149620258,-1308621501,-1342174464,9120,33691136,201919768,134679564,318707222,-16641523,219283456,219283456,1,0,258,0,514,0,900,0,4326402,7864498,432,-1308621822,-1342147584,1848116960,694971509,1970153472,2714732,589311275,11665428,548405267,0,1779460624,1779460624,1010192,1310898,1013789872,1397575228,4079175,808866304,168636464,1953701933,543908705,1919252079,2003790950,50334221,808866304,168637232,1852383277,1701274996,1768169586,1701079414,544825888,658736,911343625,221851696,1847602442,1696625775,1735749486,1886593128,543515489,544370534,1769369189,1835954034,225734245,16515082,-16774643,1853190656,1835627565,1919230053,544370546,1375732224,842018870,539822605,1634692198,1735289204,1768910880,1847620718,1814066287,1701077359,658788,911343617,221327408,1847602442,543976565,1852403568,544367988,1769173857,1701670503,168653934,-1308567552,-1342173441,-1,-1,26574,34996224,185975632,1112672628,-1064507253,234885125,303903,787971,244039822,-108331002,-34108593,-1202674445,-883949516,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704,78708751,-789068149,-628299565,74698795,-768878452,-268181293,-947135858,-388771593,-802438516,-1064565645,-522989013,-1030817789]},{"sector":13,"data":[1322289836,1187548077,-31145334,91598908,-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094,-1031072797,-1064385789,-2080863315,292880383,-501415642,16417267,-2129234704,-351272766,1086360796,-276578162,486614544,-339702200,-1950118942,-1962932162,50334262,33948144,1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602,482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,6452336,9633947,7405690,157155416,200084838,278530934,439622212,410523895,442374789,523509622,506994264,559947026,588915679,580526813,638396075,731917237,679487679,790572001,785723136,837824163,939668558,1040332108,1019297152,1106592270,1075134924,1168785317,1137132548,1111180199,1109148197,1189889838,1254377111,1248545414,1240615484,1263552540,1260997439,1426475803,1431983391,1712477696,-2092603818,-2070576172,-2041805535,-2031647112,-1998223621,-1971287696,-1958573250,-1949201486,-1934980107,1727096631,1742312508,-1798281117,0,0,0,0,0,0,0,856096768,-1472299000,57933824,-134091783,10880711,113704960,164,-1507929700,517053696,113705126,131212,-1275067713,-1944679666,-1272853248,841075993,-1945748508,-133991424,-772210197,-16735075,-2097116154,285248574,12573052,-1942060288,-813819392,-1976693068,-855401962,-754536159]},{"sector":14,"data":[]},{"sector":15,"data":[19356237,65550,65568,23920641,2078212682,2889,30,195297281]},{"sector":16,"data":[0,0,0,0,0,-1,0,0,-1,0,0,-1,-1,0,-1,0,218103808,10,655360,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,542330148,542330692,1936876886,544108393,808463925,692267040,2037411651,1751607666,959520884,825045304,540096825,1919117645,1718580079,1866670196,1277194354,1852138345,543450483,1702125901,1818323314,1344285984,1701867378,544830578,1293969007,1869767529,1952870259,1819033888,1734963744,544437352,1702061426,1684371058,33554720,1124237312,538976336,18882592,-2147483136,131584,20547,0,16843049,50331707,20971828,332,0,22544740,5385985,2129920,22610276,2830081,0,22544740,4140801,16843008,1,65535,0,0,201328127,3145729,4456450,5636100,7077893,7274796,12058925,16777518,20578607,28311856,35455281,39256370,46793011,1668172055,1701999215,1142977635,1981829967,1769173605,168652399,1936607509,1768318581,1852139875,1701650548,2037542765,1226377741,1718973294,1768122726,544501349,1802725732,1634759456,168650083,1380930310,1277180500,1953656659,1852383347,544503152,543452769]},{"sector":17,"data":[1953067639,1914729317,1819636581,1948283764,1752440943,1668489317,1852138866,543236140,1701603686,1919885356,1869504800,1919248500,1986356256,778396521,168626701,1380930379,794501204,1528847698,1567501103,1528839200,1986622052,1564094821,1952542811,1717383528,1852140649,828730721,540957472,1769104475,976381302,1634753373,1563584628,1701603686,1701667182,168647986,1868782397,1851878765,1568415844,1380930336,794501204,1528847698,1567501103,540957472,1769104475,976381302,1634753373,1563584628,1701603686,1701667182,168647986,544803341,542256928,538976288,538976288,538976288,538976288,538976288,538976288,1702258002,1936028530,1701344288,1919906592,1919885428,997352804,1634235424,1936269428,1869815852,544437362,1869881434,221004064,538976266,538976288,538976288,538976288,538976288,538976288,538976288,1752440864,958426725,544175136,168635952,790634608,538996267,538976288,538976288,538976288,538976288,538976288,1867718688,544437362,543516788,1701603686,1667457312,1768190575,1948280686,1751326831,1667330657,1936876916,225339680,538976266,538976288,538976288,538976288,538976288,538976288,538976288,1868767264,1852667244,221146656,538983690,1769104475,976315766,1634753373,1563519092,1701603686,1701667182,1394614321,1768121712,1936025958,1713398048,543517801,1646292852,1869815909,1684370546,1980370222,1683693600,1702259058,1532836402,1752457584]}],[{"sector":1,"data":[1768316210,1634624876,540173677,1701860128,1768319331,1629516645,1818846752,1752637541,543519333,543516788,1953656691,1763730533,1953853550,544434464,1646292852,168632421,538976288,538976288,538976288,538976288,538976288,538976288,538976288,1869902624,778331506,542116365,1836016416,1684955501,538976288,538976288,538976288,538976288,538976288,1667592275,1701406313,543236211,1835888483,543452769,1936681079,1970217061,1953853556,544434464,1646292852,1869815909,1684370546,235539758,1816038663,1371635969,84001539,-65280,1158742020,1852142712,543450468,1869771333,824516722,1049429774,-1048378174,84067104,-65280,1343094788,1702064737,1920091424,622883439,-1928917455,-2096830914,1354964417,1460032083,-1047606989,783875891,-855592430,109850159,-1993474030,-1207955394,45224494,-1943130163,771758598,1588873,-1307431240,774884612,2754188,675186990,305051648,801965746,235310126,1049177600,-2081947636,109850367,-1993474038,771754046,2492044,608078126,-7477248,503745582,1049177600,783810588,-855068142,109850159,-1993473998,771764286,4392647,-970061299,604015622,1208403758,771751936,4851399,250085386,1049177855,384303156,3008512,3991633,1599670386,1482381831,-998046485,1355020556,12066390,505531747,175251207,1010207022,109850112,1482555454,1140897987,855638459,-2145268270,28836302,-1021194940,567095476,1962935613,418117635]},{"sector":2,"data":[1929380413,-17659,45810667,112640,-1308622663,-100682240,1364414659,1376147285,-1993414261,771768350,4535944,184735976,186414281,-402295315,65732646,1912715752,115890696,-346093823,113541892,117763065,1928944223,1532583174,-2096829608,-1007089468,777147216,4202123,1979710339,2942981,2011694059,-1274055936,47961,-466476595,-116996989,-75296533,990606591,-402164543,-998047568,57866502,-1017619622,-2095118818,460653049,-1977220428,522308885,-1310145910,520494592,-1977219213,567083349,-1274024968,1959332610,361375241,1229398477,536408949,105928643,519736147,-1327920377,-1359807462,-651492491,1540066123,-1017161721,-921976781,102649716,-1958693857,33129431,567093365,-1977200609,5957637,520494680,-1258813837,567099968,1031808668,-1962773222,-821957695,-268274,1364531947,-1946179864,567106025,199950963,125093947,1979246651,1572965122,666419999,310016,-2134703691,292880382,1971373814,-1928913396,-1191165122,-1572862,1460061182,1010746414,1962871552,1032005143,276101120,1912945190,1161438727,-117344511,-370456761,784533343,4589199,-1835803853,1245116206,-147942656,-2097133002,91621882,-348667264,818053123,-1073004206,-620034955,-108839820,-2146536189,1965820540,922693126,-348061613,117015332,2088767093,108342282,1396113198,300630272,1963587971,175931404,772175148,5453567,-768371903,-768367893,-13713357,-1023392202,-921972173,632562036]},{"sector":3,"data":[942014640,638219557,1946248504,1975794180,92939790,1946110952,1111967489,1457747273,-317994361,776811892,4734595,-1976797952,805570116,21314086,535495285,74788924,74764811,-404016125,1161723950,141950720,1229537858,65752911,1476394938,-1509077,1935237117,-1872237821,-2134209711,1946158716,1959332621,1195985158,1577184071,-922021653,-346160267,-425207,-919403915,1047854859,1359370069,-2094085837,18494,1156977525,141889287,-402490172,15401585,-352220440,2287619,123275122,-346137249,180650756,1048784633,1962934344,-385650171,-953221334,18438,-768359680,4759854,1241958190,-402650624,777584289,5015432,1090224963,182977397,1976172034,168671469,1283950894,-398245120,1455620601,871773011,-98103,-1959917195,-1962920772,-165090337,158597830,415024174,-339506176,1260826,658312818,772372224,2407620,132891532,146588718,-2084336640,393609211,1979711104,233568515,4760366,-1107296328,-164429823,-2096305160,57934075,-2097130264,1928856774,1976109830,-1667568894,1963064960,1364546089,-1202694394,801965312,1968766780,-1193768183,801965314,1945698795,1493655301,-998045973,845830,32201309,-68677937,-1017226241,-4632489,-222285057,1238497198,-2084348072,561316347,809403182,427097856,1979711293,-1590800371,-13762488,1476407326,-13761045,-352309218,-2134297830,108331006,55413286,942541291,772044085,-2096935542,1945699527,-921962451]},{"sector":4,"data":[-25159308,637891839,65733947,1963277102,1225386754,-947714700,-102503676,-25162638,41285887,52823822,108135037,-1977160398,-970045683,16902,-2133118013,1962935932,-2016989677,757071948,-970046653,536890503,11266115,870003549,243805906,1149894722,1992374793,-1967052257,121960176,-1978305408,-2010248636,1124093063,1967192963,8382467,-344600834,556160,1278741876,705196808,-779483060,185093258,-165317431,1963919172,121959948,637957136,-347667062,-2010228735,1124093063,1967192963,4450307,-613037570,-2147007242,-167110283,1149900148,-2021118454,-2092761012,58015995,-33544984,-152341042,1963919172,121959944,-352160752,1959922189,110046729,-889323450,48822133,1371755776,119428870,-617362549,4996749,1929073128,1493655301,-998046485,1573124358,805782774,-1977216395,-398372859,108264504,21334566,233568336,168135206,1191474368,737536833,-1933355527,-1899983160,-105125672,-924315021,-293894,1286866548,567083184,567083188,771874280,1667,1048784386,1946288128,251604485,12255232,-1259631856,1931595080,1977289478,1349184500,112199198,-1157627973,96075775,-1090056704,1706295299,-986832435,-1090517962,-946995200,-1961508161,46564108,721486008,-50854975,520594675,-1898410408,-1962626624,-1948003363,8436203,857743544,-391384065,45744620,-2117235967,855704297,-851462949,735052577,184972488,-336562752,178184,-1209466954,-1948611839,48857546]},{"sector":5,"data":[-1088770047,-1359871742,726335861,48989145,168640385,-1014822796,1946630146,-343194879,4638526,12255232,16957185,-846525008,-230568149,-2147125842,-143324611,1346946955,126468907,48449371,130540267,1871511552,16826114,-208937077,1962950531,10217731,76231683,1383383051,-74754218,404270,855996160,16824566,724440459,1996488726,-1157680379,-930414336,41075259,53398155,771751998,13827,-1027911597,-684807147,-1977163638,-684833019,-236855238,1583307608,-1036320139,-561272205,-208951573,913635131,1465259147,734891005,1324714959,-100401525,1610392819,-234662050,-204829866,1465867940,-905720437,-784216533,67013609,1604711410,-28915906,1023606784,-1073784343,227213568,227277059,168625607,-193607389,-1962868038,-1144378419,1085538305,74588621,242532667,-1241512776,8972543,1286865328,11542989,567102644,857673246,-402607415,-1021314853,567108276,-2118198386,-2143387648,1182007296,118409523,855712959,25159890,1962934077,1975526197,512437804,-75431578,661913941,20839297,-970061707,1913435142,-75376917,175440201,23634222,41774,62441195,-402475520,-1195180006,29032748,-385894912,859701138,1073968129,11597291,567102644,-1157596696,-919404542,-1325434392,-850611199,503759649,-661731188,62439566,-2145268429,1433731578,-1151925576,331284481,17153537,-855634503,776106529,771825313,-1207885149,-617392382,-1107225665,230228229,1914817792]},{"sector":6,"data":[513879592,547565057,547433985,1958748929,104541720,292815138,33998382,79232768,113495,-855567425,-1022943455,-4828592,855639480,179145,1526659560,50008,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65280,771751936,239797959,788267008,238947977,1074186030,771751950,240322247,-953286656,934918,93448192,-4713613,-1960422401,255469085,45613939,602495744,914959873,1465060941,1428065621,116796942,1965035084,568896579,-398691834,930350469,1963308776,116796952,1965035084,88991749,-164747541,1091456006,-347201932,126365211,108346684,1276018734,-398262002,-982317558,126365356,1321134915,1110870318,130428430,512306688,-1960440239,1429638429,1015033358,775320623,1948400768,116796936,1963003468,1200236116,786706945,238945849,-1590816141,-523170242,-670874813,-400585946,1777008776,1074186030,-352321266,1200236128,1088696833,-670834479,839879206,1959332845,642990863,-957866101,1098078976,-220052669,1074186030,-352320754,1200236084,1088696833,-670834479,839354918,1088475620,-1977165821]},{"sector":7,"data":[200094223,1125086409,529213011,1526750696,1128467315,-953224478,68042758,1532976384,1041140526,1084304910,915090958,-1959915966,772686870,239476362,642827256,44631947,772109568,238946047,3964974,27859317,772371712,239077063,250281986,-1274826672,10414335,-402396328,-1017642723,1364575225,139430438,-921965262,1871514996,57600009,250087539,-101260800,-1993472277,-133278930,650337625,32384,-347798668,784549366,239865472,-3741680,-2144449934,-284275674,1335963216,784739086,239928833,915091032,-2144465329,645201980,-8617938,772371770,239077063,535494665,4162342,-148498060,1962934535,113716754,134720,-1763178005,233568256,1342893049,-4979792,1476396008,643286008,772046731,239353481,637896742,1342268808,240361774,38111526,1963015256,1435051530,1300833796,1012591366,637957378,-352037495,1946631248,1946696936,1963343076,1434985990,1010756356,772764932,1074679201,71665958,106794022,-1993987093,-1943665547,642778701,16926710,78644340,-165279253,1946288711,-402477051,643301556,268584950,-2081946764,784555776,249169606,-1960423424,1975520007,1381191704,113716823,593472,61931444,1610570728,-346530982,-352064766,11112510,772961408,239077063,-169345024,1048784384,1963527744,1073785126,-953281932,933894,12249088,1077838638,259328270,1948254377,113716746,3648,771873256,249183872,772764929,239091331,772240640]},{"sector":8,"data":[239077063,-1017642999,-1976674736,1958742532,1966750746,2088775181,108331009,312878,1206389227,1174500099,1591733062,1381417816,-1976643446,53798916,-1073083278,216534132,76033536,1178993131,1583016171,1937784003,1918974988,2004499516,-337697736,1460032308,248856205,1947547694,1381060631,1706297102,-4472182,375295,-838860870,1482250785,22907694,54890030,-2144582845,123721510,777044827,239865472,645934720,788336204,725353610,758909556,-2144467083,34491406,190534,1364247384,-919382446,777245235,-1073085302,-236436876,842625536,-773288988,-388902430,745668818,-1047799157,-774774063,1912653288,-773664481,12380369,-754772366,-1276590061,51212800,13730773,1912646120,-1142209021,9300315,116797019,1946291788,-137234678,29524946,637587843,637958027,3933322,28313461,1961623476,-1977203056,1946172420,-164739488,-2146546682,992353909,913441612,992347767,779223380,122436390,980559991,89406246,854270071,55327526,108992636,22297382,992350332,176097100,992353404,41878868,-964487957,1976106505,113716917,396864,-4980304,28316395,-349926874,113716747,593472,-4979792,1593663464,-1017620134,116797084,1963069004,-1648124670,-1007156624,809288697,960235634,808191095,-1007041544,1465013072,109021990,168135206,-1274776128,772402175,239077063,-4980727,434635696,1532649469,1431356248,45241938,-402355666,1014104434,788418280]},{"sector":9,"data":[239863542,1007514632,639595837,97920,334197109,1275524654,242487310,175454780,8290342,1180464384,975592683,494207046,1383383050,334185798,4602406,776357237,642057354,1962952250,-347781574,116797095,1950355020,1207379471,1946165250,2122327559,578027520,268957478,1008235520,638154042,32384,250285429,125108284,8290342,-117214150,-1993472277,-133279946,1482512990,585673923,-401050624,376766547,1275524654,-311156722,1275524654,158613774,-116987058,1324876267,1405352131,1947024465,1946172461,1946827817,2105550373,510788098,-1977165005,-1014824099,964699652,856519680,160048841,20588099,-119405452,1532562748,777081795,239470278,645934624,1021251148,1010201632,1009939465,1009873964,-2146667232,125116476,977674416,639560640,16940416,-919398542,55413286,192203019,1124074427,1946237478,1022943751,-1017423584,239510062,1275524654,108331278,1276018734,-1069932530,781051883,-583332267,792463988,-336002187,200013838,108343100,1276018734,-1007140850,777213470,239681155,1344763136,1465012510,-164428203,12115598,-1943941789,131795931,1499094877,695490591,1194756398,512306702,-1959915959,772687670,239672974,1946172547,1912879632,21248520,-336002185,-347716091,1583085803,16827167,84148994,151521030,218893066,286265102,353637138,421009174,488381210,555753246,623125282,690497318,757869354,825241390,892613426,959985462,1027357498]},{"sector":10,"data":[1094729534,1162101570,1229473606,1296845642,1364217678,1431589714,1498961750,1566333786,1096834910,1162101570,1229473606,1296845642,1364217678,1431589714,1498961750,2105310042,1430486910,1094795589,1162167105,1229539653,1095057729,1330597697,1331254613,606348373,1229005860,1313756495,-1455446106,564964266,-1313856990,-1246448718,-1179076682,-1111704646,-1044332610,-976960574,-909588538,-842216502,-774844466,-707472430,-640100394,-572728358,1407246302,-437984286,-370612250,-303240214,-235868178,-168496142,-101124106,-33752070,65534]},{"sector":11,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14221312,6886,1095784517,538985550,541415493,0,0,671154176,14686059,16885,1346458183,1396918600,543117904,0,0,671154176,15800171,4866,1313427274,538976288,543119429,0,0,671154176,16127851,13902,541344588,538976288,543117379,0,0,671154176,17045355,3470,1145130828,542656838,543117123,0,0,671154176,17307499,704,1313428048,542262612,543119699,0,0,671154176,17373035,12457,1145128274,538985805,542398548,0,0,671154176,18225003,10858]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[8739405,19,4,65535,184,0,64,0,0,0,0,0,0,0,0,128,247078670,-855002112,1275181089,1750344141,1881174889,1919381362,1663069537,1869508193,1700929652,1853190688,544106784,542330692,1701080941,604638510,0,0,17740,0,262146,0,32800,3,3,0,0,0,4096,62,408,0,106,0,196,3,268,0,0,0,280,291,0,0,302,318,708,0,709,0,1024,1,9278,71,0,0,0,0,0,0,0,0,0,0,0,0,50331648,433,0,8261,1,1,0,2500,4096,8213,2,1,0,62,8192,4101,3,1,0,65536,131072,196608,843140103,1095583792,16777216,50331907,312,0,7798784,25559040,25559040,458752,65872,268437504,512,9502727,654411777,-788463104,-1610508288,67118849,1157736449,-603947776,117507072,16790528,2556332,11534595,25952648,459152]},{"sector":15,"data":[-1342111684,33564417,1426157569,654339840,-1308556800,-1677618176,436209665,7471616,10485767,117535745,16787712,524664,1023541254,33564417,1493270529,654385408,-2080308224,-1560176383,839441665,33564425,-653702142,654530305,1342309120,268568585,654743300,1409417984,1593980681,117991173,34126848,2558164,156762627,62521958,2557468,157024771,59703957,2557425,157286915,87294660,460768,-1576926912,33564425,503407617,654341120,1677853440,-1845300471,654786052,-1543437312,369675777,1208558857,33564425,755083265,654881281,1744962304,-486333943,654806788,-1409220096,-754933503,50341632,1359571970,1812194563,1644168966,7143680,1572871,654405633,1879179776,-1409253111,33564424,-1442729983,117496832,33646080,461233,1946288194,83896073,-1996393471,-385825536,285280256,50341633,-1727956991,369150720,989857537,24903936]},{"sector":16,"data":[1962997891,288614661,-125632512,-385518335,4076,1963128963,274000133,-125632512,-352160506,-1664878590,96417,1958742784,227277330,428,227149961,432,-1962653560,108565,510935552,52481354,-1962934016,94261,1962281728,347541252,1237922611,12329165,-123928575,1882557379,1711276033,862763535,158466050,108705,76113408,1169559347,133727005,352260211,100485,-855150080,16796192,227263232,372,-1043220721,550310121,98377,602457081,1912602624,1170695692,-973078244,-134213563,273008323,1170695810,-134217700,2943171,-311296000,1032052715,424,428085247,1711276032,3357827,57281653,2099301715,-2097151744,-10090300,-1007144188,1032045561,424,612634623,1711276032,3357827,1672207,-2090467328,1963012924,1392798220,8200397,-998047743,218064392,-104597453,195,0,768,3,808599884,541150536,4096,0,0,0,0,0,0,0,0,0,0,0,0,0,16,176,176,176,178,209,178,209,-1,-1]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[74055786,10952909,-998047743,1975551240,-1088369402,-1560280832,368,23336331,255983616,18308,1778674176,-1474245366,-2097151744,-1073018684,2091112308,-1962934271,427081464,179896320,-67108864,-389962509,283164932,309350,98467,163079680,7192064,-768409600,598221,-1586364415,361481208,356,-1400631486,-1962934272,1667085,-1980353792,95245,-1044967680,-1055856191,-1056766751,96419,-1995928832,109581,72387072,28317064,-109051904,-2143521557,712305401,-2079328757,119,-1996403061,95245,2016774400,-1962934271,-1408399090,-1979711487,361235542,432,1217082347,-1947170047,95293,-2137462016,1131778298,-389955189,-1869595376,930414592,-2084194801,227214016,372,-1983380634,95245,24682752,-90439680,-1947598650,98317,21530880,-943458147,108549,-256,-839717889,16826144,-1074384128,6562,-850870221,16822560,184971776,-347835200,-1155478196,-150994688,16777411,859075840,431079414,548929536,-855638016,16822048,-49920,91619328,8376,-1177515264,1,6987004,-201655157,194861164,-955615799,99333,0,-2076343552,268435457,116687631,1974992896,-1107296000,-1,9445581,-2112946175,1758,7714902,550305793,65680,-880668834,-1996488698,1657909,10991616,-4325375,-838860801,16814112,-1350430976,1442840582,16820152,-1876898560,1577058560]},{"sector":8,"data":[110920207,898170880,6480,16803256,-16896,550371327,65680,109085199,-1202323456,65637,9445581,257818625,421250,1412794624,-1207959527,65630,-66,-1876898305,251658496,414082,1589138944,-855637760,16814112,-2112922112,1598,425211273,1572339712,-1107296000,-1,9445581,-2112946175,1570,6142038,550305793,65680,260181854,-1996488698,1662005,6469632,-4325375,-838860801,16814112,-209580288,1442840581,16802488,-1876898560,1577058560,98599439,898170880,6496,16802744,-16896,550371327,65680,96764431,-1202323456,65635,9445581,257818625,373122,1681230080,-1207959527,65636,-66,-1876898305,251658496,365954,1689802240,-855637760,16814112,-2112922112,1410,426259849,1823997952,-1107296000,-1,9445581,-2112946175,1382,7125078,550305793,65680,1401032542,-1996488699,1666101,1278577408,-1207959527,1674,-1056555903,268174057,151685,108822784,-2086276348,1116016445,1711276034,201751681,-2062585072,565,218514630,1547013099,-1207959527,133,-1962525567,260771965,327045,108822784,-8139004,-276492528,-973078524,460356,425211275,179830784,-2130706432,2106263100,-2062578928,1234,67533953,285180887,79987983,1153826816,-1962932474,1666101,54179840,1015087104,284787462,-1484451982,-2130706428,-1962604932]},{"sector":9,"data":[266846713,301445,105170432,898301954,6480,96440,104628480,65153,75269391,-2090467328,17041020,74482959,2088763392,259130886,288133,108822784,-3737848,1468337935,1711276036,101074119,-2001170288,-2130706430,-25098692,-2062614528,1086,108823398,-2062614268,1074,101088384,663031666,-2130706428,-150468996,252706758,268677,1153918464,-1869609466,425997707,649592832,-2130706431,1292043836,-2062580980,1018,67533953,-2045832967,65832207,2088828928,-24966138,-2062585072,990,285637761,4286,63997199,1153826816,-973077242,919108,302400710,1748339456,-1207959527,316,50740353,260246605,240005,108822784,252770564,-1685778554,-2130706429,-2096363908,259199230,232837,108822784,1097233,2139426560,-973078525,329284,235291846,105170432,898301970,6496,27064,104628480,-1961853557,56132879,2088828928,-2083060730,-2062610177,842,117851334,1412795136,-1207959527,-580,-2096743295,251725987,208261,108822784,-50331644,528814014,-2097151997,268961404,51676431,1153826816,-1207957498,-48,-1207550847,251658256,195973,108822784,-125108220,-276492351,-973078526,67140,189929,193443840,1015087104,48873734,-746254340,-2130706430,-217840004,255689637,181637,2088855040,1930431494,45647119,1153826816,-1947529978,1662005,24033280,1015087104,276663046]},{"sector":10,"data":[-1685778549,-2130706430,-821819780,252772227,167301,105170432,898301959,6488,20152,104628480,-1961853557,40928527,2088828928,-2083060730,-2062610177,610,117851334,14268416,1015087104,-356429306,1267011340,-2130706430,-2096888196,259199226,146821,105170432,898301958,6508,386488,104628480,252770691,35685647,2088828928,-108328698,-2062555199,530,33965254,1345686272,-1207959527,813,-2130297727,251658494,128389,2088986112,251724806,125317,108822528,-2062585338,478,134642817,268420855,30442767,-949616640,-1878653372,71153808,1015087104,16679174,-1216016640,1711276033,67533955,-1417343231,-2147483647,1912997500,27297039,2088828928,-956889082,-2062610433,402,105170790,-1198485498,1241,-2130297727,251658494,96645,108822784,1929380100,1803882267,-973078527,-351926716,425997707,1270349824,-2130706430,1292043836,-2062580980,334,67533953,-2045832967,21005583,2088828928,-24966138,-2062585072,306,285637761,4286,19170575,1153826816,-973077242,919108,302400710,1748339456,-1207959527,609,50740353,260246605,64901,108822784,252770564,-276492410,-2130706432,-2096363908,259199230,57733,108822784,1097233,-746254592,-973078528,329284,235291846,105170432,898301970,6496,66744,104628480,-1961853557,11306255,2088828928,-2083060730,-2062610177]},{"sector":11,"data":[158,117851334,43563008,1015087104,284721926,-2021322893,-1929379840,251987540,67521726,981586179,17890177,7374095,1153826816,-1207959034,774,-2096743295,259199226,22917,106204416,1287524101,-788331514,-108971391,-2062614256,66,33965254,1412795136,-1207959527,-899,-2096743295,-2130637661,263804,-2084635392,268961404,134628550,-4409344,1015152639,1095686,108822784,-125108220,105170625,-919404543,12329165,227082241,6512,27792777,-1464336384,-1107296000,6356,9445581,-2112946175,-1941,27538825,-1007157248,200,-2091690154,99389,1584660480,7020749,-125632511,-1957465328,-956887947,8,-956872588,1024,-427736972,-1025,4281,-1043846400,1364593889,27530751,-998047744,1443752712,-16222721,107541,147096320,225755147,25441675,-423559168,1925593868,1583307746,1599849417,637520222,420,0,0,0,0,0,0,0,0,0,0,1347636568,-1869610005,1126731920,1866670121,1769109872,544499815,1380141389,1179603791,1866670164,741240946,960049440,1330511920,911691596,1095781172,1196312903,1280265728,875976527,1195462731,1346850377,5526095]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[1929579069,805353518,87826893,862326130,856078546,-956948019,-1206881008,567103744,268499841,862326131,-1203083566,-617414656,-1195117005,-617381887,862385715,1463141330,942894697,1867259958,543973731,540029505,544370534,1651469383,1210084449,1142964557,1667855973,673194085,1936876886,544108393,691023409,1275789312,1211118145,1147093325,82500]},{"sector":16,"data":[]},{"sector":17,"data":[15227469,17,5111840,37093375,128,30933008,30,1]}],[{"sector":1,"data":[1397751808,861341266,868323017,305051903,801964210,657036,540297,-1307431240,-1943024382,-1996484090,-1207955394,78778926,109850573,1049165858,783810592,-855199214,101092399,71207168,148432896,132748,16009,1967756,1851017,-1945573400,-1996483066,-1207954370,145887790,109850573,1049165866,113705000,168624191,8914630,1141294884,-956301312,167790086,115861504,2899593,-1995975960,-402640834,786956313,4319232,5302353,1599670386,1482381831,-998046485,1355020556,12066390,505531747,141696775,3683977,3802764,-1195157410,12272640,-841862400,31883297,-1207841152,567100417,1140897987,855638459,-2145268270,28836302,-1021194940,567095476,1962935613,418117635,1929380413,-17659,45810667,112640,-1308622663,-100682240,1364414659,1376147285,512354699,914882620,-957874111,1959332610,1978469148,2549765,-1326971925,1510502913,117507560,-2096829601,-336001340,1516177156,1560703737,-346530983,147096324,1397801977,1008634706,-294144,753403253,-402396416,259194999,12278196,841075968,113542116,-2096043015,192217083,125092155,-2097106712,1928922820,1482381827,520494787,1963063683,637711387,567088522,-389903841,102629553,638022431,-855550582,267122721,-922025292,-1977218700,1193397525,-118262455,1347928863,-91532538,-645200098,-218359120,721647022,-880063527,1599604571,197145539,508523721,1085546246,-108800117,-852986623]},{"sector":2,"data":[642785057,1525155210,102651904,-133795041,-851296076,-2144953311,41228861,32227723,-68677937,1427827711,-5838767,-849745525,-352160991,1959279371,-118998265,-1047854475,-1195172003,79364135,-1023298304,1962933888,-2134444527,119409781,4144781,-402652487,113508096,943637591,1962871552,1032005143,276101120,1912945190,1161438727,-117344511,-370456761,-1883044001,855654918,-141388837,-1828698570,4601591,1980365443,935493637,-1031797781,188830256,184841664,-2093386533,225772537,738884736,922682741,-348061617,117015330,2088766837,91565066,5191423,-2096043199,192219641,738884736,922682741,-1824456625,-1477717453,-1070345677,4339455,198325187,-1272875831,637579301,175449400,23410726,-1002830732,-1977217419,-11278331,1195835763,-478852798,197822294,1295217901,4472451,-1976863488,805570116,21314086,518718069,74788924,74764811,-404016125,4275840,1107850751,1330202946,-1174148273,727187455,-32839431,57891167,1368417771,2088815243,225705990,108316939,1195854153,-346160661,1976109840,166419971,1979709827,197735170,1430025471,860948055,1144947657,326434816,252134646,2093222005,39512066,2062024939,-402396415,124911648,1566508889,-2096829602,-2080830780,17470,57804149,-939577623,17414,-768359680,-956283743,167790086,-22026240,1216841816,-75283712,-402426560,-906100232,230223477,1216841994,-398245120,1455620584,871773011,-98103]},{"sector":3,"data":[-1131739019,-544538580,-956946965,-1006078974,-1946152772,1025043395,225574931,1996498749,482133000,-339506176,12370950,-2084336640,376831995,1979711104,216791299,-1207941981,29229055,-118082816,-75297557,-402426880,-964493228,108197892,41273611,-2137219093,695534078,105993554,12079191,1009765637,158685439,45668491,-349188859,91486465,-346486945,113541894,1560284392,-821957798,-268274,1472421467,-18096,-1359822798,1481232887,-75250849,-2095221503,-16766914,-12773772,1342928383,-16759647,1476405278,520029419,451608616,-25114317,637957375,-352105078,892874249,-1976695691,-947715251,762575108,1959332856,-98279,992347508,772008709,41223483,1950943723,80184069,1928979435,-98292,235042296,2097358343,839283202,227157741,1040631367,868417536,108822747,-955157248,536889479,-968670419,536889479,10938435,870003549,1041139922,155486720,511099194,-259342038,-2147007242,1149899892,1216841738,-75283712,-402426560,-822214532,2088823925,225705992,1929923640,139209224,1284166026,1959332616,121959972,-166955761,1947207492,92939782,1476520775,4753288,1090224963,1105724277,1976172032,121960156,169375104,-1978370826,-2021127612,-2092761016,58015995,-33545240,-152275506,1963919172,121959944,-352160752,1959922188,1107726088,1976237568,190712,106021717,-1962467753,-1915014197,-402634690,91421556,-346486945,113541892,-161627143,1966081860]},{"sector":4,"data":[92939794,1525170512,637957116,1342260618,638446584,-1073085046,1095173236,-114559509,100647765,67328,131100,196656,19660866,19726421,19792008,19857609,1226244351,1919902574,1952671090,1397703712,1919252000,1852795251,1226115597,1718973294,1768122726,544501349,1869440365,168655218,1851867926,544501614,1684957542,1936026912,1701273971,906628467,1986948931,1937011301,1480928800,1697128517,1969448312,1818386804,1713383781,1936026729,544175136,1634625890,1713404274,1634562671,168636020,1162086925,1110590808,1528843849,1986622052,1564094821,1952542811,1767715176,1953853550,1818846765,1532698725,1986622052,1564095077,1952542811,1868378728,1970304117,1768303988,224224620,956960010,1852383264,762606960,1701603686,1394614304,1768121712,1936025958,1701344288,1480928800,1768300613,1948280172,1700929647,1852793632,1953654134,221144165,538982666,1886680431,1714254965,543517801,1701860128,1768319331,1948283749,1646290280,1918987881,1768300665,1948280172,1700929647,1701995296,1684370529,235539758,574524679,1539408134,100647681,264192,327712,393260,458819,524368,589922,655491,786579,1091502249,1936024419,1701060723,1684367726,1176111629,543517801,1852727651,1646294127,1868767333,1919252078,224683380,1766199306,1847616876,1713402991,1684960623,1175783949,543517801,1634038371,1852795252,1920099616,168653423,2020165156,1936749869]},{"sector":5,"data":[1701146144,543450468,1633820717,1931502963,1701668709,673215598,695756136,1850282810,1768710518,1634738276,1701667186,225600884,1850284298,1717990771,1701405545,1679848558,543912809,1667330163,487198053,1701603654,1835101728,1970085989,1646294131,1886593125,1718182757,224683369,-1928917494,-2130214338,-1023349311,134219009,2097154,2818051,3538948,4587525,5308422,6029327,7602194,8323071,1818838542,1869488229,1868963956,241462901,1752457552,1953459744,1970234912,1410557038,1830842223,544829025,1852141679,1818846752,1091466085,1936024419,1701060723,1684367726,1850281504,1768710518,1634213988,1701602414,1986939163,1684630625,1769104416,1931502966,1768121712,1633904998,1852795252,544165389,1701998445,1818846752,1158771557,1852142712,543450468,1869771333,824516722,1049429774,-1048508300,46334134,-16711675,234882303,1936875856,1917132901,544370546,118370597,154091149,-1021460093,512503326,-1070399488,29931600,113694862,-402652799,1048576018,1962869121,249358339,1286914098,550314445,-2147480600,-16678594,266863476,2045297408,-402099210,113702799,-1006698111,512634398,-2118254592,29931520,-1077899770,-919403631,-1993944525,-402465482,3998099,644117760,64044673,208995259,637570536,25233094,8514047,102650704,-108832938,-1205832447,-661782072,-1962687554,-1948742908,-661781948,-927403125,-1077899775,-488111725,-1205933295,-661782072,-1962685506]},{"sector":6,"data":[-1948742908,-661781948,-927403125,-1077899775,-1024982556,123625233,1029200671,-2005663744,1962934077,-1591324632,-1557789987,-1943665951,-972889314,509083652,-1912485702,55944154,-402434630,639570426,25233094,-1021376513,-402422342,-2128211478,788759870,638022657,59049727,12840427,-5177186,-1308622081,-1342167040,255,65280,1566244864,725499004,2243389,-953286656,685062,243871232,-1993471234,772472870,184694409,243871484,-953283993,682246,113716736,2684,1829160750,771751946,188286663,-953262757,2081110790,113716796,725486397,1057408814,1362836747,-1185523886,-1404960769,1963693032,243871481,1449003842,1108249390,-2133118197,41230908,-620047370,76230773,1948269885,1025522959,154995316,1023767613,443877693,1178404038,1364655755,119408198,1493673203,-4764066,1108279086,1229342987,173982079,1605662207,333994330,-1206684917,643039231,975576459,-1207733489,-379912190,-1993473757,1393194550,512578903,-164754818,537556230,-391363723,1014107043,1946879976,188278839,-164751243,537556230,-806877835,774302474,175441654,1310618689,-2010244117,1966947335,243281414,1124141685,1930140904,-2010207035,-1091878137,914959950,-970061205,-1993474041,638220830,915217803,-2144466306,913583932,574390318,-164755340,17462534,-1977199499,-466484921,1728461102,772961034,-787847263,54739936,529213144,-352286488,113716841,68201,-1977196309,-466484921]},{"sector":7,"data":[65065280,260712152,-921965262,1396903796,-400585946,1935343880,-498908351,113716978,199273,-1977207573,-466484921,65065280,126494424,-523115470,651690816,-315486326,259311883,-1960422589,6154271,1124823899,787669571,174655175,1599930372,244002395,-1590818201,-1959916951,772434742,174921355,1864272430,1355020298,-1459123418,91553794,1728511790,1015033354,-1457949440,158662657,1762051886,-352321014,61886478,-521601100,65755136,1476485096,243281603,-402126219,611450939,1965457454,777058058,722106529,100740806,777521782,175650443,3964974,837290356,351008769,772926457,174655175,-1336934391,-385895421,-128450409,642864579,839405450,1959332845,158305549,1929671400,976904,-335939870,780742150,1509427836,-2144943267,1946157182,-152353533,-2144419003,269120782,1929365224,645934666,1357843061,175677742,19842603,1477080582,2016840494,1015033354,774272256,989822080,-953284235,151677190,639625984,1946173315,133637657,309657601,1762051886,-352321014,9889801,-116528136,-1336931605,-385895421,-128450557,-1960421437,-1993472897,638217534,-2010774136,776995173,638221473,1476543881,175440188,72714534,105744678,37509867,-1993996683,1357579349,-395049156,-462157764,108332604,72714278,71057131,-1590816907,641731190,637814153,-351904372,1971922475,1301030404,-165261306,1946223175,-352014332,1207313929,91488770,1105724080,-165259263,1947206215]},{"sector":8,"data":[17885187,-970013857,738310,126559824,410370059,1465013072,1762051886,-1275066102,-402411265,1516240731,1206605915,1946419369,113716754,2665,772167400,174669443,-1456442103,309596160,1762051886,-402653174,-2094136382,151677246,11082101,773288968,174655175,-790102016,1048784388,1963526761,-385619198,11075717,772961408,174655175,1189609472,1048784385,1963526761,1073785198,-953281932,682246,17557504,1765704494,1467287818,1946222761,113716757,2665,-402205720,-2094135466,151677246,11091317,772961282,174655175,-1175977984,1048784390,1963526761,8431910,-953281932,682246,103540736,1765704494,259328266,1948254377,113716746,2665,771886568,189021824,772764929,174669443,772240640,174655175,-1017642999,-1976674736,1958742532,1966750746,2088775181,108331009,312878,182979051,1174500104,1591733062,1381417816,-1976643446,133687300,-1073083278,216534132,76033536,1178993131,1583016171,1937784003,1918974988,2004499525,-337697727,1460032317,187973261,1946483328,792628484,356003339,1364203380,-1274605998,-1144878491,96075775,-17920,1499079117,1569402456,1166945793,742605571,1607935616,1354980103,1963884590,-2144436214,-49646298,1006930478,1007318059,772240685,175443584,48776706,1354979328,861295185,1406284745,168069678,-398297920,963772700,-393485262,-774774063,1912667624,-1948611796,-773664319,15788241,-489611406,-404172335]},{"sector":9,"data":[51802624,-389540909,225575134,-779889405,13953024,-347733134,-1192666181,-164734208,34239750,-772339084,-1031548169,13730561,108497702,1006930470,-1341688576,-369118207,642121886,3933322,776364148,175441654,639530368,1912818747,637957942,1912689723,1278944814,1915254535,1413162554,-350193915,1278944818,2132311043,1413162502,638614529,2131184699,639400970,2131055675,-2095781118,-922875450,-953240203,101345542,-1274957824,-1338119169,613033473,162805483,54584566,76162800,1278944838,637957379,1946244155,96895970,-311047938,1762051886,-1342175478,-335563775,113716747,592489,-4979792,1593614056,-1017620134,116797084,1963068021,-1648124670,-1007156624,809288697,960235634,808191095,-1007041544,1465013072,109021990,168135206,-1274776128,1011674111,1195341059,-1274705370,1088747017,-1977157629,-167398395,-134004508,1191545382,764094023,1929392872,63406866,-243939074,1762051886,-1275066358,638905343,-1325439606,361440770,-953283605,151677190,-1325419520,-65673213,1482381919,1381322947,771928662,-1092090742,-398691835,-164692521,134903046,1027345780,-2144985227,1962934654,773057393,175441654,1007580176,638219578,32384,-347710347,1178216028,169702656,1179808960,638839621,1962952250,-1976678843,975586564,980746310,-1477753530,1963390510,259276810,38270758,125042720,8290342,639792128,1050615,977016948,-2144990859,1962934398,1007610637,638022912]},{"sector":10,"data":[973110912,-336002188,914959878,1593313912,-1017619110,1448235344,-1427614125,-953262592,730886,113716736,2857,721864494,-402653173,410124461,187147054,443865866,1912643816,698560110,1960512011,9693197,-1557241486,-620098773,-1959896715,-2096429794,578028283,187146542,1198908426,-1590769526,-469103831,-393593483,722897710,33260299,-377093515,-1959912981,772482838,168503713,-1977584156,731983560,1977879051,-2081912298,74671354,124568193,-4956581,-790100048,1527835642,-1325419426,-87693309,1762051886,1509951754,-1916577703,772474166,1962884227,504359682,521031762,-1959264072,1478610390,1371742042,784937810,-1073085302,-2144453516,721982,-75493516,1006925057,1009808442,-349408210,1949121548,1949252646,1949187106,-35198946,11804274,703121,-770972937,-1056763531,1183911538,-661996053,1174793208,-117314568,1499120011,1381060803,-396995754,-164692091,1577128260,31982453,113716737,2855,688310062,771751947,187369159,-953286656,732422,113651200,-1291777276,-9443327,-1557242510,-620098777,1659395956,777024255,168503715,-1286441765,-11278334,-1557249678,-620098773,-164743563,34239494,-1959904395,-2146800842,1965883260,-12270032,113716782,2676,1947107374,-1959919094,772472334,184559243,37129006,-154081013,1929318632,765668959,1977289227,664874583,1977879051,116797007,1946225268,1997290504,839021891,116797120,1946421877,1946958860]},{"sector":11,"data":[1913390088,1998076975,785418795,168503713,-1977518620,731983600,1977879051,784894487,168504737,-1978829340,-1268884504,-402083585,283900239,-4956581,1156055984,113716985,592489,67552814,1499070475,1448133464,1174702638,-126500854,-29062610,1882988556,1631328628,1832656244,776873077,217990282,1953512480,1952529414,773057290,175443584,772205316,175378048,1153838593,1482555646,1448300739,1981713198,675250186,-466460811,-773322870,1011708929,-33262296,1011184324,-33131223,1950184140,1965177891,76033548,-1947712698,-349343232,40888335,-2010249357,-1975302652,76033543,-991214778,772048942,83142,-1962932282,1676166899,914959873,283839083,2050394926,80096778,113716736,592489,78708660,1961384798,1354979576,-1959897517,-1979025890,1965177863,803750689,772960768,83142,-398003317,-1993473758,-351638730,915090960,-970061190,-953286652,151677190,-1325419520,-396665335,-1017579469,-402158768,611582240,225780284,1965227136,76033566,-347913402,30402792,-2010249357,-1975302652,76033543,-706002106,772140025,-134216506,1464910680,1049308758,-1976694154,1958742532,6285331,-970054539,17515526,80096862,1072389888,80096862,-148480256,1962934535,113716786,133737,1448618475,168069678,-400657216,192151597,1929473256,1195788034,787082054,772435874,1191183558,1799260462,1482645002,1946288297,-4960247,-1930951248,1405311223,958303569,637195]},{"sector":12,"data":[1946630702,-119389436,-1017423551,-1976675760,1958742532,19130424,-2094125966,1949958524,133637646,510918672,24936494,202863872,1918975008,2004499473,-1973408755,-1325419312,-146937850,-953284629,151677190,-1017619968,2287788,1407719540,773223680,175441654,787313696,175441654,1309242433,-336001301,-1018234879,1364444152,762580284,695468092,628361788,41779238,857633282,1569335003,79921923,3768358,-919401100,1124698662,1946237478,1022943748,-1017423603,-970043053,537554694,1965457454,540860170,154941044,742142580,540815732,1015024757,-1341688544,-1069922784,-2144985365,1912668797,650720023,184765834,-1156877111,641925123,125043002,540866786,784554841,772435874,175441654,772175105,175443584,-339723744,2116980199,1960655626,1966029850,777058579,-385923190,91421144,-773323638,250304761,1007414264,772175151,175443584,516159552,-2094116010,684606,508569461,1431786065,-1896467706,1660991710,-611573299,1560795915,525949535,774468696,175126153,1914603822,915090954,-1909585296,-2096467426,276037692,141689914,1996571706,99350787,-336902586,526277624,-1064558909,-1816209266,29932289,512476046,102629378,26459679,26216134,3976192,1944595828,1009086979,-972458660,102406,31471241,158677564,26216134,-533296896,1965964289,-1878604072,-773062911,-1093735508,-457244269,4031233,113659764,-1107230155,-1985216028,1006776630,-399543296,661783338]},{"sector":13,"data":[175463484,1962949760,856082153,977010690,1015024245,-958696192,144134,-764072388,36964038,-1395922175,1048627435,1946223155,823066402,826182402,-533296382,3976193,-471330444,1007120898,-1442286546,-1398083605,-2132087894,16921918,1048591221,1963000371,-1172655052,567083576,-457552204,-18175,561127885,38602486,-352160496,-1956859880,1325543742,822542250,856081922,113639426,-352320972,-1874952043,158662401,-1107192897,837288326,876511234,192151810,-1107172161,568852875,-1174344958,12059027,1914817853,31630085,-420933397,632954625,45475843,-385744407,-1078328871,1751298,-501314733,-851463167,-344827103,46087809,-646620595,84068257,3997727,627012368,78774240,1364386003,-796175536,11585843,31596171,567100084,1482378866,-997828007,378267857,-802487613,8452737,-226086797,-1046355247,1958742786,15368454,-1982856446,-2096970986,-355266622,50470333,2010332117,47030541,47121931,47515147,-1172369941,619184897,24176898,1946241257,-10622717,184734625,1026127040,-277544704,1397772626,855703738,-1962823479,-1274944994,1914817858,1498962903,-1023006374,-985758974,-881524734,1048828723,1946157765,1236934465,31057923,-1273035234,45660682,-1161944627,-8617982,-1394183168,477245484,208800316,120348452,275909180,208867388,-472783919,-472783919,-538191862,234847360,-578306187,46337675,-1957216332,503439934,-768353394,-840987821,1595890465]},{"sector":14,"data":[-1427569037,11004160,46481027,-1589218304,1364329175,-796175536,11585843,31596171,567100084,1482415986,-1078306215,46119426,-1275067207,512447295,567083490,-352160933,-1086420114,46244098,-1064385789,-13827802,1963115790,-1170426664,-919404060,1332879821,-1962789213,-1274887410,1049319232,-1910635978,1406284763,567140235,1918836571,1975597874,1396618255,37101195,594682317,-1021370533,-1957478732,-855493090,1528066593,-457555532,1914817793,1840914186,14280707,650323691,49159820,-334067418,47874,567105972,503507646,-1912485702,56730586,-402431558,522125491,1031848735,1191408640,-1431504661,-92946422,1017969859,-402295795,-160169974,-133350322,-1007091339,24444988,1947024579,1948269819,1946762487,1949056243,1950039279,1948990699,1946828007,-1019396893,3976272,-341179532,-1017599240,508581406,1048585735,1358888960,11540340,567108532,443942,-1993933056,-1945970378,-610064680,-1960421374,-1912415434,915089118,1015218905,974222336,973632004,58130756,-2096698375,-353697082,526276856,285393859,983218,1342578352,1448235347,-1157985449,-628227640,93045390,-1962779253,1300956277,141920774,-1962322550,-1243084163,1516134372,123231065,3261215,1769650,-80,-1308621569,-1342175232,-1,11665412,-5242872,11534344,-5242872,16777215,0,168624128,0,335546880,1092923904,1397600256,1397703712,1919243808,1852795251,808334624]},{"sector":15,"data":[1126703152,1886339881,1734963833,824210536,758200377,825833777,1667845408,1869836146,1126200422,544240239,1701013836,1684370286,1952533792,1634300517,539828332,1886351952,2037674597,543584032,1919117645,1718580079,1816207476,1769087084,1937008743,1936028192,1702261349,7872612,8519858,875442864,1163412782,1229073920,-1308619698,-1342156544,131475,5177522,16901296,11665411,95420548,11665409,196083750,0,-2146435072,729089,0,8654848,-16776928,255,65280,16777728,0,65280,16777984,0,65280,16778240,0,65280,16778496,0,65280,16778752,0,65280,16779008,0,65280,16779264,0,-1207238912,33554434,16965376,512,33554432,16968192,256,16779776,0,65280,16780288,0,65280,16854016,0,65280,17012224,33635073,61408160,242177,66048,62784447,16908544,-1107048704,3,63897600,788595646,-1308565953,-1342070016,2384,23592960,33948010,1112670750,-1064507253,234885125,303903,787971,244039822,-108331002,-34108593,-1202674445,-883949516,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704,78708751,-789068149,-628299565,74698795,-768878452,-268181293,-947135858,-388771593,-802438516,-1064565645,-522989013,-1030817789]},{"sector":16,"data":[1322289836,1187548077,-31145334,91598908,-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094,-1031072797,-1064385789,-2080863315,292880383,-501415642,16417267,-2129234704,-351272766,1086360796,-276578162,486614544,-339702200,-1950118942,-1962932162,50334262,33948144,1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602,482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,750704,161352026,166398424,168495608,408226361,461380096,7243]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[32856653,1114145,126353440,176685055,-87552000,6144,30,30212097,249102336,247791616,374603776,380764160,382205952,384565248,386269184,387121152,387842048,388694016,389283840,400228352,129499136,403374916,412418048,139198464,836]},{"sector":4,"data":[0,0,0,0,-2081649835,-950664468,130630,1191117803,71732222,2113816121,4372513,-27358384,1988879313,-399442170,-998040300,1975520004,112861,1575324510,-1070886717,1575324510,-1957326653,1586190060,4161542,1996443508,488040452,-1962752893,73305072,805271680,-397201548,-998040316,-1947170046,2021655646,494165247,485681235,-1962752893,73305072,989821056,1253575540,-397193216,-998040514,108461828,-402360577,-998040526,-1017291260,-2081649835,1183515884,-28931836,1191117803,-27358210,1946173312,-1863062778,-1946267905,1178141766,-1961594114,126549598,1023166088,1007186991,1006924892,-2001606,1183579718,1575324670,-1957326653,73305068,973176704,126486133,-1866244712,67893920,-1017276319,-2081649835,1151404780,1208363888,-129595024,-1577695607,378237000,1151561802,1175882096,108954480,-1956940308,-768870842,4589057,4724241,704923274,1575324644,-1732734781,166219784,46433049,1918764743,1589182463,-1070903182,-130613424,497543179,-1559837565,1587638876,105286002,-2091158464,1946221182,1547600657,175439986,704267915,100792390,1589145668,1996443762,1178009592,1144455024,108461936,-2095192344,1554188996,1918804338,1006257801,58062918,-16732695,-401868746,-997982412,-28932094,-895856488,-2097151977,-1073020220,1996441204,204930822,253290540,-1996176253,-163709882,-385649663,1996423324,487254022,-1560099709,1183478364,-1202677506]},{"sector":5,"data":[-397410228,-998041572,-1710293244,-385648376,-1734213828,-1744371960,-12785400,738998015,-2095260696,1554186948,108461938,-2095263768,1554186948,-130613390,481617931,184730755,-15829824,-1207175114,-397410153,-998041644,-28931580,-1296543592,-974630912,79987479,-1946157896,-1866244635,737560203,1174798802,1209405696,71731712,1883512459,1883506431,1883637390,-385382362,-443810115,-1957313699,116163564,-335249789,-1070917004,-11513776,-404224906,147096344,141873163,-1946157384,-1866244635,16402119,-1876497664,-1979418881,-466944442,-28776368,-1996176253,1317731398,1005398782,-1962445631,-443810746,1191166813,-92371974,-1959953144,-2020935074,1183318240,1849729534,1849824907,1883506233,1183497843,1142852606,1141309296,1174834800,126363248,-1209277398,-1955708767,963527190,1936737286,201236503,1883512459,1883506431,1883637390,705136678,-1877939228,-1610320129,-467006466,-36902832,-1996176253,243989574,-316011522,-2089434821,-1955708767,963527190,1936737286,200712215,1883512459,1883506431,1883637390,705136678,-1877939228,-1610320129,-467006474,-41097136,-1996176253,243989574,-316011530,57983291,-1593884439,1183329284,1849729534,1849824907,1883506233,1183454835,1142852606,1141309296,1174834800,126363248,267117610,-1979418881,-466944442,-45815728,-1996176253,1317731398,1005398782,-385649471,77725433,102140716,-787959508,-19344902,-1996982839,1084358214,1108773742,1141258606,-1978174608]},{"sector":6,"data":[512491078,117403716,109998148,-2010746810,-337368569,1996460048,-28931580,-397351894,-997982994,-62486268,721309322,1958820845,-22812413,-2010380640,1084358214,1108773742,1141258606,-1978174608,512491078,117403716,109998148,-2010746810,-337368569,1996460048,-28931580,-397351894,-997983066,-62486268,721309322,1958820845,-27531005,-1960049503,-1322514922,-772091624,1976172248,-28931848,-1955708767,963527190,1936737286,-28931561,1883512459,1883506431,1883637390,705136678,-1877939228,-1979418881,-466944442,-61806512,-1996176253,1317731398,1005398782,-385649471,-138871291,1575324417,-1957326653,49054700,33441479,-27358448,-2016943151,268454930,-2114042113,285277822,1187507070,-1962934018,-472777122,739149767,1191120896,-25263618,-344190976,-1017256565,-2081649835,1448545004,33441479,71731968,1918371331,1918506635,-1980217719,1589967446,126494456,17163306,-62486256,-788236661,268482790,201360521,1276281993,1276118727,2122514432,779878654,-771989877,314018787,16679244,-1959889648,-472777634,-1996208501,-1957948793,-472841122,-1979955573,1579945607,1575324511,1586204867,-1948003844,-2129919817,1947205886,-59340533,32917191,-1877808384,-771989877,71732195,201361289,1191167467,-159480842,-1960608496,1992619614,9053944,1586226218,-161610756,1918383812,705202726,-1983829011,-1072955834,279041140,-163169972,1843987327,-62485505,-1960050013,279180870,1064268,1508443005]},{"sector":7,"data":[-59339777,2123097809,-1947741948,-1993601404,-1960046971,-1995702140,-1962147707,-1991503228,-1957948795,-787742564,71732195,739149705,1276288139,1183572945,243763460,247237420,-2115514068,-1957948729,-62506747,1183516789,-351958780,1586204691,-1948003844,-785641825,71732195,201361289,-771989877,243779555,1578106924,1575324511,-1957326653,49054700,1586189911,-2115776252,2887359,-385649392,1988821245,-2115579644,4985532,-1962183408,-1995702140,-1628832186,1988857856,-2115579644,786620,-1962445552,-347336060,1586204902,-1948004092,-1995702137,-661914042,-1082006575,268454930,1586188916,-1948003842,-1991503225,-661914042,-1082006575,268454930,-259266443,-1668553007,-472830962,201360523,1276282761,201366667,-2071206959,-2021053426,2123049998,-2115514108,-1962147641,8685829,-786593012,-28931101,739149705,-788236661,314999270,-27358388,76276689,1276282761,-472834933,-1979824501,-1960046969,-422509450,739165825,-771858805,-1996190749,-1960046969,-2115514052,-1957948729,71710981,1183516789,-351958530,1586204691,-1948004092,-785641825,-28931101,201361289,-788242805,243779555,1578106924,1575324511,-1957326653,149717484,113726977,-36258,1349672632,-11485141,-1108867978,113541911,-1586340701,1183412830,141836542,1593722507,-1017256565,-402360577,-998042196,-62486270,2130772797,343527,-259267972,-2147197301,1966013560,-2037558313,-397345032,-998042326,-59340028,-17333562,1577502559]},{"sector":8,"data":[-1191182478,726692446,-2037559104,-397345032,-998041764,1918673670,-1988993375,1950416454,-59339873,-972792181,-346030272,-1957326701,75400172,-9735168,1508377718,46433279,-1995940213,309673991,-1207666945,-397410071,-998043184,1572875012,45650115,-1070903296,1586188368,-398983416,-998042846,738501384,738596489,343724555,1347469355,140413776,132659199,147096339,494194699,-16228725,376105015,-1560099709,1996452444,17610756,1586212075,-16267512,108954623,-11176960,1996424822,49080324,184861827,-16157504,884474998,-1870140671,1918764743,1589182463,-1070903182,108461904,-2095695640,1554187972,173968242,-1988993375,527777799,-16228725,369813559,-1560099709,1996452444,23967750,-1862317079,-955621749,-1191182585,-1017315327,-2081649835,1448549100,1357530765,1357399693,-16353537,99091574,147096575,141934603,1600045099,-1017256565,-1914145025,-397349306,-998045530,1958742788,317489951,-1947306355,-1190717700,-1510866935,-2096525336,-1073016124,2122319476,2121548278,15091399,74907392,1342280120,-2096059416,-1070922556,-11513776,132704374,147096338,762695691,-402229505,-998042394,1996443650,350021636,1342358659,1342291640,-2096071704,1996424900,-361299992,-2097073176,1183384772,-361299994,-2095759384,1554186948,-394854542,-2095762456,1554186948,-427916430,-16485119,-1960048122,1600054854,-1017256565,1183551632,738763524,-1559869813,1183517688,739025896,-1544927605,1996426236]},{"sector":9,"data":[343205894,1342358659,-402360577,-998042518,-893890558,166219777,113541904,-1411329,-1444353930,79987465,1038894729,1483997685,1979711293,74907401,-352201032,2122551331,141950700,-1207535873,350945790,-34832765,1996425333,36091908,1996424939,38909958,264169552,-16464765,-1847007114,46433044,-9282397,-2048333194,46433044,-1200464733,1599995905,-1017256565,738854655,-1411329,1676208246,79987462,-2081667447,1961683582,32914886,-1967603340,1978159106,46433039,-1278333,1996425333,45266948,1996424939,46643206,257615952,-16464765,770238582,46433044,-9282397,568912502,46433044,-378381149,-1957298614,216826860,1183432747,-96040452,-1912715639,-1924074426,-11471290,1340606070,113541908,1343226040,-2096034584,1183384260,-61437446,108380683,-443826133,1589166941,12079218,1996443664,-92864516,-402229505,-998042544,1918673674,-1988993375,-1072957370,1589129332,1996443762,-59310088,-362753,887620726,180650772,-1586340701,1178169950,-1581550344,1183412828,1975520254,-28915963,1996423197,-92864516,-2096068632,2122515652,343212286,-755969,1996486262,337045508,-955857789,130630,-1946270069,-1866244635,-2115204267,1443006188,141115008,1947170563,10938627,141180544,-385649919,1183645852,1206407416,46433042,972572299,141950534,972834443,141884998,-1956724693,-1866244635,-21264698,71732064,-20806007,-39418227,-20674935,1358448269,-22247795]},{"sector":10,"data":[-1165587120,-1444392706,113541905,-21447037,-959875840,1627306886,-1996077429,-1912683898,-1979779962,-1912683386,-1924073402,1358867590,-21330291,293267536,-2096708477,16693438,-2037540235,-1924071692,1358800518,-2095978520,-1073019708,28870261,-443851264,1048626013,1963133033,1782480903,343146504,141115008,-385649662,1048641382,1929447530,-10688253,1342188472,-1924087765,1358874758,-2095959064,733480644,-1070903296,2055638352,568873213,113541906,-20412787,1354771280,-402360577,-998043004,1958742790,-14620413,-42301811,1354771280,-402229505,-998043028,1958742790,-16193277,-22378809,-1232404480,-2100887894,-1962869031,-956388682,16616322,-22378753,-22364541,-1193051132,-1924136917,1358789254,-20412787,294840400,184992899,-385649216,-940966076,-1957326594,49054700,17071747,-608683915,-102215678,46433036,1342388920,-2096304152,1052246724,1586188288,41418502,-2097118744,1183384772,-49666,-1070922123,-1017256565,16678531,1287180926,-1041739773,46433036,1342417848,-2096318488,1085801156,1586188288,74972934,-2097133080,1183384772,-49666,-1072969612,28891774,1575324416,-1957326653,1312227308,1278672752,241625200,-16464765,-9418186,-395294666,-998044072,1513553668,1479999346,239790194,-1962621821,-1017314234,-2081649835,1448543980,1208370827,-939899255,64582,-1879014935,2122354832,58002942,-2147450135,1947991678,-28931460,-152007784,1460253572,1183522932,-62506502]},{"sector":11,"data":[-396996483,-998043616,-60912894,-1946401025,1183450238,-352220930,2122354755,846530814,16547459,146290302,-102215680,46433039,1342185656,-2096107544,146277060,-437760000,46433039,-237941,1988885582,50692,129501931,-840413184,46433039,-2012267544,440204870,1978205044,-60912641,-972786037,2122317824,91560958,-244025,62634239,194963536,-1207778173,-397408104,-998044528,-62485758,-443850914,-1957313699,317489644,-2033756671,65270,-2037792725,-2037776656,1183448814,-62486018,201197254,-167328191,1150943243,-1560281066,1988824058,-1947807484,-14809506,-560267664,-2097151978,-2037840700,2122579698,578028292,511033355,-788236661,106859494,-1191284481,-397409347,-998044892,112644,1575324510,535335107,1975520004,66041869,185264208,-352140157,2122551524,544539396,-17645949,-1961265920,2013202014,41418500,-2080777752,-1073019708,-857144460,12839168,-17529145,552271873,-1960049503,19662358,301919878,-1577127786,378208326,1174470728,-27913732,-17529089,1208239755,-17529285,-1796668545,1918017792,1884030467,1884165771,1952490304,1952585353,-1988995933,-1586342378,100889170,378237000,1084452938,1108773230,1883808110,-1989131101,728778262,4760512,-1962916189,-422509450,-16359797,-2037514640,-397345032,-998044334,-190936316,-1948003842,822019702,-2081368600,-1924136252,1358887046,-2081395736,-2037578556,-1957626120,-771820386,108432355,333983999,79987705]},{"sector":12,"data":[57982987,-939571735,33486470,171868928,175440172,738866943,-352052808,1048809487,2114006026,171376398,70498348,166914128,-1962621821,1593767558,-1017256565,-2115204267,-16641812,1996424822,-272308220,184861827,-1205635904,-397409202,-998045240,74889218,163506256,-1207778173,-397409087,-998045260,109295618,2122542059,108265732,33848963,1586187893,-1995994362,2122578502,108331524,-352172149,-2037542907,1183448560,-192508420,-28931586,1358579341,-402360577,-997983128,1975520004,112650,-53024688,-1929198461,-1202652602,-397410301,-997982768,-1877153020,33848963,1996425342,74907398,-2135365141,1038635015,46433033,1342177720,-2080594968,-1070923068,-1017256565,-2081649835,1183646956,1183666428,1996443902,239659012,184992899,-1207470912,-443809793,1996473181,-25755652,-402229505,-998044028,1958742790,-83961,-1017256565,-1962805576,-1866244635,-2081649835,516162284,-1977191328,516226887,-2010746804,1918810119,1379336016,1884070258,1884165771,-11513280,501745270,180650766,-1586340701,1183412830,1376140286,-2094500750,7494718,-4716428,1575324671,2122551491,913572094,66995851,-1955574778,1081101846,-1988861789,-1586208234,378237004,-1556058034,378106452,1048801878,1946186320,1342621461,-1006632846,-344962018,-189231083,1575324417,512463043,117404244,109998676,-1977191850,73304839,-467007608,-1017256565,-2081649835,-1202317588,726663170,-11513664,-1880619402,147096329]},{"sector":13,"data":[-1979955575,-12714410,-2096269825,141950970,-1956724693,-1866244635,16678531,-260306817,251428483,-1070863758,-11513776,1541932662,147096329,-663367669,1349672632,1342181048,384714381,108461904,-2096284696,1554188996,1581155186,-1200288142,15484615,-327775488,-1947319670,74877918,1191116936,-327253012,-1947567096,1191177334,-297628948,-2012979573,1988823111,-330891284,-1947319670,1200096350,73304841,1200209963,172460300,-1947580791,1979968630,-297628950,-768875478,-1310040438,-1964781053,1959332555,-773795576,1976172242,73305080,151668489,1191119959,-360807446,-1949533180,1183515742,-27882500,-1995552887,28840023,-443851264,-1957313699,216826860,-196688042,1988820992,71469812,-638328,2122576966,-293861132,-957057397,-1207896510,-1924135004,-397347258,-998045132,-2084009212,-1071971847,-1956718345,-1866244635,1343229880,-2096568088,1487078084,1511426418,1976568690,-1010816253,1917978311,116097024,1917988481,1048773120,1946186322,1918018024,-1159180224,46433032,-1989129053,191909398,-2263856,-395161034,-998045531,1883808514,1883903625,276156427,1884174079,1884043007,-2096597016,-1192557372,57823905,-1955574778,1081101846,-1988861789,-1552653802,378106452,1386312278,1208353650,1242991472,1849729904,1849824905,-1552922463,378105924,28864582,-1957313792,283935724,-196688042,113704960,29264,15877831,-228685056,1918383812,536921638,-2114828545,267448958,1187507068,-1592790786]},{"sector":14,"data":[378238048,104428642,376664660,1918115467,1918109439,1918240398,-2012771802,-466944954,1996426731,-62485244,-49223600,-1996176253,1183512134,1004808956,58062406,-1207837719,-1956708353,-1866244635,-134975791,16839750,1183469173,-1979730692,1621226566,1645644660,1409694068,-1961397390,-9284578,-1905110010,645027334,1183319946,-337368324,1996460046,-62485244,-55252912,-1996176253,1183512134,1004808956,141882950,1593834936,-1017256565,32786166,-2081881227,1849729280,1849824907,1883506233,1183454835,1142852604,1141309296,1174834800,126363248,267117610,-1979287809,-466944954,-331814832,-1996176253,1317729862,1005398780,-1962314559,-1956710842,-1866244635,-106869,918879814,1183478360,8922876,268396160,-1955307359,963928598,1920095238,16181507,1918115467,1918109439,1918240398,-2012771802,-466944954,-1878987543,-1955307359,963928598,1936872454,1411287831,1409744754,1443270258,126494322,721045128,-1878070300,-1929087233,-397346234,-997983262,-163149564,721045130,-163169308,736691060,-129594881,-1325338587,-1964977404,-315950002,1183432971,-129594384,83889957,1183383554,-230242312,887816192,-1979287809,-466944954,-344922032,-1996176253,1317729862,1005398780,-385649471,1586233141,-28901378,1918383812,-2010726006,-10059776,-230228209,972572299,58651206,-1946209815,1577316446,266830066,1918383812,-2013230554,1084357702,1108773742,1141258606,-1969130640,512490566,117403716,109998148]},{"sector":15,"data":[-2010746810,-337368569,1996460186,-62485244,-81205168,-1996176253,2122446406,1946285302,-31135485,-1207535873,-397410234,-997987614,-163149564,1946175037,-22288125,1577186744,-1017256565,567089588,1439425586,1465314443,373594654,-259325952,101088964,-963904481,-796212994,-1331019772,1555081786,96872106,-1258845440,1914817863,532689666,-443851169,-1957311651,106335212,567086772,-443816918,-1957311651,-2131983892,-987867392,-628423082,-58718325,204043578,845229088,-1706011932,5762,1510130819,2105604747,276103170,511737485,374053463,-998047744,-2141811452,567098292,-1070398862,-443850977,-1957311651,-2131983892,106386944,373594654,-125108224,1392926404,-2146989274,259341052,1630281740,-1705974734,5762,-1929198461,1444839542,1461146,79987456,-1705834917,5778,184861827,1444846784,1479322,79987456,377657943,-998047744,-1648348414,524288373,-1956749561,1439391205,-327029621,1364394170,106387026,868823838,-1931899950,-1899983152,1594013912,-1913620851,1375695038,1512164690,-2146012583,242550011,1093403786,-12140915,-2010711549,-348044795,1195472,-1098045067,-100401338,-16398810,-12140915,637951627,1979661696,47110,865080811,227157705,141875515,-1192694969,65732610,520094648,1516134151,-443851943,-1957311651,1586189292,550208262,1398926211,1525658,46433024,1946157629,1975520004,1141422095,1914817859,1975519751,41238531,-1956921293,13327845]},{"sector":16,"data":[567095476,41091644,1086267597,37128963,-2114508032,1913651454,268484099,-2116579590,-76255548,521539699,856134632,-51883840,1291827209,-461168179,646526718,-1992947722,-1962413530,-754667066,-1556723488,-150796304,145033,-567557236,1253366775,-1942609459,369649438,-155190265,1953544459,-1070346453,521579251,369114088,152627231,856131560,-2009661459,-2043216120,-2076770552,-139663352,14870608,-1912389448,243928,-200882378,1343845895,-402188312,-4716157,385830912,817104884,1772298701,889239560,512303565,109840469,521013335,-1171980104,567089300,243998486,786631440,140969614,741772070,302433536,869960715,520042203,91425550,-370598122,113587718,-628356330,905970619,185474815,109977366,-1960441753,-486527986,868322870,1031808767,-1188269056,1220411404,1957098248,2147465483,-1359822797,-437577355,520560134,1891628939,-1852265464,1958805164,-492156927,-1155590409,-1484783612,-1195440016,567100416,-1024062862,-2147126144,1074294927,-1092126389,448727834,10676235,-1089791298,-1964504294,-1957313792,1849343724,-395429185,448659581,186433291,-352291608,-326413053,-1089790786,1726483228,186433024,-401924929,1072169068,1958742790,75399947,-955943680,16712774,-1157623879,-2013921275,1946224752,-851528700,-220052703,-1962932248,1286865990,243999181,132320016,-16776517,504040990,139794117,-853213000,1048583969,1946159250,-1818223091,-1810447096,-853167096,1002643233]},{"sector":17,"data":[1326085111,-485651633,-338558986,-147078158,-276623757,184912644,-227278267,-286581249,-1957363517,149717996,-1598138793,105286920,1459373705,-2096570392,-125107516,1342588557,1443133183,-2096502296,1183385284,-396929288,-998045368,-129594620,-443850914,-1957313699,49054700,74877782,-1741830517,-754732792,-775386120,-775879712,154666464,-151107959,1954743876,105182726,-1207471040,-1997930497,1157009408,108265990,537283712,1283517931,1586168070,-81297154,201737462,-561307019,144239489,-70057039,-472792181,-472786941,154699766,1443460353,-2096635928,99287748,-1996209013,-27358460,-16615425,1149895796,-397371385,-998043118,38045958,91537419,1979711293,41714457,-1341819904,-1878791392,1141379248,38061830,2129199104,1291817215,-14906622,705137156,-443851036,-1957313699,82609132,1988843095,-1962988796,52692548,1182073404,134628598,-561309323,144239489,-70057039,-472792181,-472786941,154699766,-1960348671,71576324,201082505,1343979200,-1979419393,1352140612,-2095944728,1178273476,-2146994948,-1088420276,1150025727,-956004092,580,1600046987,-1017256565,-2081649835,1586169068,1847474948,-1207602680,720046336,542455,-2092403584,1946159742,-1949748454,1107409105,1265770957,34227959,51279104,1444087366,-1205307128,-335997440,-27883210,-1946401143,1107474641,1174610381,139858694,1317735801,-61436930,-851312456,-1948718303,1317733974,172395016,567100084,-1484782222]}],[{"sector":1,"data":[-369293200,-1957362077,73319660,-1022639988,-2144991884,-1962803633,1438866917,-326898549,-1957210622,-247659450,-2095156225,715838,602409077,-1559071744,-2014835988,-401378048,91488278,1962966504,74907401,-2095922712,1583284932,-1017256565,956362939,125174878,1124359819,-1979784317,-1070334370,-1924116450,-1336865201,1072189442,147096340,1962932867,-2017293503,-1559564778,104532720,58067700,185267363,-1912245038,566234,-1895932277,-1547684904,1212678152,-1207154807,10682378,172800,-1560197235,218431498,434944,-1021323124,-1064380276,855920267,-266432805,310765578,-1047735797,12835214,-1947432107,-1931572265,-1950314792,-1070398338,-218103879,-9073234,-1190756725,-1359806465,-114568713,1183579783,29816580,-1543343104,-202780343,-204926043,-1946973276,12803578,-1947432107,-1948349481,-24443274,-1064380276,-4603853,-139529473,75402193,27838347,1235485300,-1510741551,-1527527149,-91491445,-1957313699,-1948808212,-1898410786,74877888,856063627,-17984,-772296974,-1493960405,-1071970956,-1946157283,1576700915,-1957363517,-1932030996,-1950314792,-1070398338,-218103879,1238497198,1576700817,28704963,146146027,168473761,-955746844,-16075770,-1845105665,11805133,-1957363517,-1957210388,92996734,-1962779253,1435173965,141921030,-1962248705,93194366,1594252686,509026765,-544286836,-1945600373,105221893,-1996063093,39684357,-1996206711,1971914325,172330760,-164428686,1978140907]},{"sector":2,"data":[114180,1971914123,-1956749556,12803557,-1947432107,1603011678,-1945662458,1468793423,1575324420,-1957363517,72780524,567084724,1560327314,-1957363517,-1948873748,1586169462,184528900,-1406372672,977479562,754218208,437926977,551649481,1090830594,1093460102,-921036228,35709312,977339585,450131140,-1728111424,-1017253237,-1947432107,-745864098,-1073084534,1630278004,74652220,126370052,168266307,-1829800512,-1957313699,-1948808212,-1898410786,74877888,856063627,139365312,-1494021661,-1071970956,-1946157283,1576700915,-1957363517,-1932030996,-1950314792,-544537474,-485994869,105286165,-940056438,41156609,-372160086,-921457677,-91510029,12803475,-1947432107,1102316630,1508450765,-1957363709,73305068,567099060,218089,-1209234603,1426451291,1018686603,-1962649973,-410384818,91365837,-1995940213,53668103,-1209234603,72780623,-1957361429,-1957775380,448006230,-8379955,-1962511026,1317733462,-840463866,51046689,-1947432107,12059742,1914817879,140413706,1586171785,-384333562,-1957362960,72780780,-1274657141,1914817853,140413701,-639039607,-1957363710,-348146452,-326413051,1586184372,172919556,106349854,1914642893,207522565,-1243019383,-1957363710,73305068,-1962389877,28837462,-383660713,-1957363040,16562412,40233040,179715715,-16485376,-1207257578,-397410049,-443874733,45663069,-121640704,-1175047338,-466485182,-533549828,-192873502,-401771435,28901316,753422336]},{"sector":3,"data":[112642,110084958,45746872,1763063808,-1909885944,638084870,2885262,143394444,-1181106125,-13402112,1974382322,-1991817221,-1190622658,-1359806465,-779365897,-1107295809,512622721,1017907303,1023112224,1022850057,175076365,1198224576,540847182,154986612,222094452,-1073062796,574380148,1547445364,-347995276,1103705060,1952201900,1948400890,-338623740,-775844909,-1462692887,-339053311,1017925121,170619917,1009218752,1018852386,1107522652,-919343893,1547480129,574421620,-788331404,-1047798805,-787224111,-764083800,521574379,142884489,-783821053,-2133392409,-500433182,-2036087669,64523016,906434299,1128480649,143275717,-1073042772,-2118190475,512636416,65734759,-1398095821,-76275652,-143390404,58002748,167804905,-352094784,-1992912775,1313030975,1948269740,1946762459,1947024599,1958742626,1948400734,1952201767,-454317565,-1404974797,-93037508,108274236,-1426891600,1555091947,-1426855471,581961331,1321593770,1947024556,1958742574,1948400682,1952201911,-320099837,-1404974797,-93037508,108274236,-1426891600,1555093995,-1426855471,581998195,869133226,521579200,1991,179840767,1441565525,140975758,-1047803597,-108271221,741772105,1962281728,650546704,16000,-234458112,1974355374,1083655674,-41157084,-989600303,-1084809450,-1041760247,-812949745,-133956213,143142537,-561117410,-481692109,993820947,-1996131261,1162150014,-1073042772,-303891851,369118857,-443851489]},{"sector":4,"data":[-1957313699,509040364,72780551,-1391778626,276087355,208967232,-1178586217,-1359806465,-336857205,-1956749418,46292453,-326413056,74907479,201313256,-1844153152,-1070335349,-218103879,1238497198,-1275067717,1596050752,-1034033781,326238210,-443826125,-126631075,1632336,1575324504,-402164797,-4718578,-443835905,-466435235,-1023409688,168324258,-2145159708,50882878,574360946,540806515,95421810,1016072171,-1342015981,180009747,1638111447,-997539064,-1957300245,49054700,71732054,-1324836819,-1946627325,65065416,98619841,1183385912,33601790,205580368,-1962752893,1200161886,1958742788,105873423,-27358456,149447,-1877480702,-2147197301,-1962670513,-1992229306,1586168903,38258686,1586167809,-1946973436,126420036,149447,-443851264,-1957313699,82609132,74877782,184157951,144768641,1187448949,-345094914,-25063412,611649704,1627276999,105182834,-1961265908,-1729396258,-754732792,-775713797,-774372381,948434659,74711305,904642603,-1741830517,-754732792,-775386120,-775879712,154666464,-1946401143,1149894214,-1962637052,12123230,38242562,-972929911,1283457287,28836358,-443851264,-1957313699,49054700,75400022,-2124712960,144705150,2122385268,1963501574,106859382,-1744353398,260499536,184730755,-1956350784,-1741879738,-754732792,-775386120,-775879712,154666464,-113015,971507318,46433271,-956408181,1204224007,-1962934270,-208992674,76136491,-352041079]},{"sector":5,"data":[1586204714,75464966,125070916,1610907521,-1978108558,1352140615,-2096157720,-1073020220,1996425588,-151590906,1577239683,-1017256565,-1192457387,1139278180,-1957275891,-2037578122,849608350,138840942,-1955716445,379782214,738641774,-956301202,7219718,41740544,1948597376,39381251,1848510151,-1070923775,-1553064285,681799194,1847370606,-1553062237,413363748,1846846318,-949083997,544094214,24936448,1178367280,1849165511,871039024,1965767808,503774989,604424046,-352321426,1015058466,-2096270048,7216702,117380469,267087396,1846806271,1015024107,-3050195,1181622278,1352139914,-2096630296,-1073020220,-1202263947,-397382092,-998045850,-2081387772,7222334,117378173,882994720,-1546061970,1015049780,-14453458,1181623814,1848555606,121432144,-1962621821,775848944,175964270,1848510151,251592705,76181030,4603288,1312633460,1026913280,544473192,1962961981,470206214,-2097151378,7216190,1015022965,1174500684,1962949760,25749787,1847330503,-471138303,1847330503,-605356016,1847330503,-739573752,-1986526070,1040096390,175374405,1946175293,5782789,117377397,-2038206950,-1960771940,771660934,356319331,-385649152,-1073544940,-1476448621,512435962,529231394,-1989268831,570852103,1776878190,117411841,113733160,28180,1342180024,-2097053720,1374225092,146313217,-1863259392,1847068415,1847199487,1848000131,-955681536,23998470,-1878529280,1848641223,117374976,113733158]},{"sector":6,"data":[290350,1847344771,-385649400,-1070923640,-1989272413,104463430,661941812,-1989266271,1048837190,1946185248,872859401,-352321426,780374034,-1593479628,-1072992716,-1070923139,-2089929565,40772102,1342181560,-2097086488,985137860,-806858752,46433027,16547459,1048781428,1946185248,-62485739,-1560279763,-1072992716,-1070923139,-345099101,113741831,28212,1847733891,1095684,12511312,-385694589,280559391,-13637376,-397361109,719913442,28872959,-1863062784,-23283969,-385697304,1048837913,1946185244,1321634563,-2142765429,91488317,1965374848,734497781,1444827334,-2096894488,-141883708,1946172544,-42145533,1848262275,-1957071616,-160557538,1948255815,-18353,648433131,648816066,648816300,633480886,649471670,649471670,634791338,649471452,647767734,633218742,649471670,1048782486,1946185260,708739859,276103278,1846943371,537282550,82556789,-1868960954,1584278177,1575324511,-1957326653,418153452,2122536535,74713604,1848116991,1847344771,-2096663550,275651646,512431733,126578210,-1996335221,1451883590,570852350,720045166,1848131203,-1961790464,-1955716578,-62486265,16664263,-1878070528,1847729803,-1986459765,1451883590,570852350,1048773230,1946185236,-62485747,1962821131,71731973,-1070923029,-1955711325,-2089930186,7219262,2122525301,612172030,168066691,80090997,1183532589,-27882500,-763111177,-1982138624,1451883590,-129579010,99287041,16271047]},{"sector":7,"data":[-398029568,1996486795,1996445444,-59310082,-2096420376,1048774852,1946185254,1508398881,46433269,1848512139,1317652523,-1878660108,1177552070,189383051,-1980399680,244053070,92958234,-922024824,1631324020,746587004,-2142812640,1962999677,675185641,343212142,191766177,1953375238,-125926645,-1207601920,48955393,-397361109,-998047054,-1956684286,-1866244635,-2081649835,1448546540,294531,29234292,1847763200,-1929886071,109312606,-385716702,1048772753,1964011036,572427031,-1962439826,1183384151,-94991880,1847723651,-1877611772,1847729803,1183385483,-129594884,-2080743796,40772102,1847344771,-1962052336,1175189574,-1206618630,166398670,16547459,-709359243,-129595126,-1946526068,1452013638,-230258182,737433225,641087990,-1961069458,-345100786,1589940238,-230227982,4161574,994448756,-351240498,-1002008339,1191178846,1065363186,-1946979072,728642622,540967934,125108334,18802775,1443021955,-362753,1877538934,113541889,1847606915,1460106240,-2097085464,1599996612,-1017256565,-2081649835,580977900,-28931730,1728347779,2122516084,74794756,48955824,1183367210,641631228,108331118,1848510151,2122317830,225706236,1848524419,-955878144,23997958,439811840,775356270,74907502,1848784639,-100609,-2096432106,2122320580,309592316,1846820483,-16026368,-9555402,-2096431594,1048773316,1946185236,775848722,192217198,1848784639,184686335,-2096970621,141435398,1849034439]},{"sector":8,"data":[513867776,604375918,-15502226,385875574,-998044924,1958742786,112645,-1070923029,17360976,-1017256565,1458342741,1848393347,-1959824128,-9562594,242745935,-1962654070,-2012741833,-337368572,-11300853,-2081946506,79987463,-16288448,-345101306,117411845,1566469674,-1957326653,49054700,1048794711,1962962476,74877769,1115616779,922686955,922709526,1273523768,79987463,-16485056,-1955714042,-1073000762,512431742,1342139926,-1596229630,1066102328,92801023,-588520406,1848393347,-1962445568,100729926,1600024106,-1017256565,-2081649835,1448542956,-2096597365,7220286,485183605,1846949631,637820612,1352140682,-2096697880,1967129796,738656004,71761774,189712011,-1961003840,-9562594,-730332593,637820612,512427914,1066102294,92801023,-756292566,1848393347,-1962445568,100730950,1600024106,-1017256565,-2081649835,1448545004,1848784523,1183432747,-96040452,1849179779,957904176,1953375750,403061010,956724334,1970155526,939968262,-1962925970,1450062910,-2081287192,1183384260,737684472,1048773758,1962962464,758939672,1048777589,1966108216,1352182796,-2080465432,1325335236,943621112,192163950,125763339,1847606915,-2095483904,1946158206,-96010490,-2097127448,7222846,1191118452,7006460,1847606915,1462138112,-2080464920,2122515140,158597124,16416387,904397685,910066432,158597230,16547459,1038615413,-126419200,-739748322,113542142,1847606915,-955419648,544094214]},{"sector":9,"data":[1642616576,46433278,-443850914,1048822621,1946185246,2865157,548930539,132665344,46433278,817402051,-68661248,46433277,1849048707,-2095614704,7215678,1488455284,-1878725888,1342208184,-2080514584,-1866267964,-2081649835,1448543468,-955877749,130630,1965702272,572427023,-2092987538,40772102,-1874269370,1965898880,-28915962,726073343,809271551,1015035260,959479609,1970153022,809271307,113706613,3173944,-1952971638,-773729841,-774962207,-2084043807,-108318487,809271366,1015022972,-1948156359,-268960186,1586231435,-1958770428,-1956684090,-1866244635,-2081649835,-1101659412,1317669596,-1878856956,3964998,205130356,28898933,-1878791424,-1956724693,-1866244635,-2081649835,1586168556,1847474948,-117018104,-351731528,-1950338212,1440942158,141592566,-1957792510,1451952206,-851463162,-1274776799,-163648759,-2146930553,-1484769420,1459292272,-225706921,-930350453,229909987,1963605120,1888452613,984351752,1008301252,-2146994918,34107535,92800491,-1947475385,1606560711,-184686242,1946286467,171737095,-420746380,141592566,-1206356928,567100416,2147063,1452083573,-851462913,-1328254431,-970134774,-1929314490,1068826454,-1015930419,427081739,17333891,-4645004,-1194226689,567099905,-2147483207,1946877822,-1962037241,-1762982314,-351906165,-8486764,-337939190,-1957363522,149717996,990142091,1913155102,151042055,-193074695,141592566,-1207208928,-919387646,567136651,-2013861006]},{"sector":10,"data":[1954547824,106335086,-1070397666,-1979824503,1476197446,-1946514602,-127497742,-485994869,-234180524,-397773394,-1472396032,-2092403200,-594869524,1023541434,57868840,721453242,-1949004830,-1962469638,1017907278,990671882,-1441172229,602469602,-1335760128,1979398925,1632259,-16076630,-471073722,-352317976,-346071326,860220245,-366483008,-1957604528,-473289777,73304848,567099572,1174474098,1958743038,1482381574,-2084308341,74647748,518719924,141592566,-1962183616,1065354846,-133991142,-1191637781,116071424,738084491,1720450118,-379625736,1317794719,1976109832,-373191931,1452012435,-851397626,-1274776799,199551753,-153061952,1074294919,-628422028,1964654464,-806619133,469809401,-1957312021,73305068,74767115,33443712,-1017256565,1458342741,182631255,1962950531,-1207493079,1944584197,855995649,619420096,-1543625664,-459076894,80188938,-964493311,-29047036,915013630,1317735144,-1898411004,649408,-443851169,-823540899,-93044480,-2080448128,-227283207,-66947189,-1459713107,1212314625,359907643,-268185461,1946265773,96600884,-141885438,-335657847,1962839014,-1980169460,-1054081460,-351958712,-17235195,-963903924,-779298164,91541819,-266433498,41912586,113649347,1023544054,628424702,-268173685,1946265773,1224641522,-1116487365,-268185461,1946265773,96601058,-141885438,-335657847,138906598,74760203,351000718,-166789594,-1945013238,1003982040,637891783,183246478]},{"sector":11,"data":[-1125435509,856061835,7006400,225756731,1077936420,6219928,1308495220,1894654,1318454644,-1936069810,1003588824,637826241,-1962217309,38242567,-1013333965,-28996783,57934248,1095354411,2147465793,-233424090,-788236790,-1946847766,1925579713,1925317397,601028365,-389665854,141885452,-355347721,-1070340747,1364378457,1946164712,-24422632,-234622837,-16890681,108497407,-684992885,-27948726,-1017489064,-768389037,1347572254,1342177720,266870534,147096320,536869507,41179994,12833291,1458342741,2122516055,947191816,-1962412353,1183516246,125126660,1912624104,-1958155481,1208501814,-147123852,1149963636,205949186,3860566,-2093976738,-25099066,74647622,108384779,-1711276104,-628417045,-787496061,-754732581,-850873109,-1830194655,1418265737,1177979138,130036488,-443851169,1317782365,972524300,208929356,-2130393469,1963476734,1072429554,470014603,-745850510,-147078770,507053685,645072880,-787496061,-773074469,1005310443,50951671,141009369,-1064380373,567102132,-147124878,378078325,-2020472848,-1009677564,735873881,990540504,1913321502,-1864956,-373279775,-796137711,133563907,104412530,628295664,1342181125,61987025,-645076781,140975755,-1056715989,-661929074,567102132,605057624,-257734416,780899591,369166326,-1950152714,-422581817,-2081649835,1448544492,-1979287925,-1986525372,-963904954,-1324836819,-1946627325,65065416,98619841,1183385912,105182968]},{"sector":12,"data":[-167349117,1950352964,105676811,-18400,-1878978327,17188086,1283518325,1686110726,-1070862586,-1962785655,-58816008,201737462,-561291403,144239489,-70057039,-472792181,-472786941,154699766,-2126088959,1946722558,-1459715834,-13404920,-370607498,46433024,762691595,184157951,144768641,1152910965,-1878725778,-1988992840,76088388,-940024181,33555015,-352254010,-396980216,-997986276,105182722,-1961265912,-1729396258,-754732792,-775713797,-774372381,948434659,1349779721,2083208331,71600900,-1962636992,1200355422,1149847554,2130643714,1962891027,-92864764,-2080701464,1183385284,-1877283844,-151363957,537424007,45617012,-1070903296,-397193136,-997988198,73173768,-2012985718,-1877480697,-1962933825,1183666375,1996443652,-87627526,-1996045181,2117729350,-385649412,1183514347,1592011268,1575324511,-1587965757,-1002763528,-1003813261,-503326473,-85213133,1458342741,-385830057,-1957363626,73305068,141434427,-75296387,-166953984,1074294919,28837236,855829248,1575324608,-1957363517,82609132,-1732356521,-335598840,1157009429,192185094,-409278378,1073923203,-2092498572,909707462,-428668496,1600046987,-1017256565,-1962258805,1451951174,142510854,-66642345,1958742675,184124179,-771027339,766511737,-2082736214,-621346606,865269643,1958742994,-1812859134,-2020412937,1009779923,67270201,-1031034329,-495598837,-1404107384,1149764998,21270015,-227358917,-1956749480,12803557]},{"sector":13,"data":[0,0,1377850189,1412263541,543518057,1919052108,544830049,1866670125,1769109872,544499815,539583272,943208753,1766662188,1936683619,544499311,1886547779,1060044817,0,6029312,1970499145,1667851878,1953391977,1936286752,1886593131,778396513,1850286112,1953654131,1847615776,1679849317,543912809,1679847017,1702259058,979576096,1684955424,1701998624,1159754611,1380275278,1157636154,1919906418,1126182176,1869508193,1701060724,1702126956,779298080,1917124618,544370546,1850286125,1717990771,1701405545,1679848558,543912809,1667330163,1852776549,1769104416,622880118,670307,1145330259,858255496,1920091392,757101167,1851867936,1864397863,544105840,1970302569,1768300660,540697964,684837,1869771333,539828338,661545283,1701978228,1713398881,544042866,1970302569,1768300660,540697964,684837,1869771333,539828338,1970302537,1768300660,656434540,539456293,1852727651,1646294127,2019893349,1684955504,1864393829,544175214,1702065257,170813036,1920091392,757101167,1851867936,1864397863,544105840,1886680431,1713402997,979725417,175318304,1886275840,1713402997,543517801,661857575,1919705376,2036621669,544106784,1634760805,1684366446,1919903264,779379053,1931804682,1043144736,1931812896,1931804682,1043144736,1931812896,1917124618,544370546,1631789101,544483182,1684104562,1869768224,1852383341,544503152,1701603686,1931812922,1917124618]},{"sector":14,"data":[544370546,1631789101,544483182,1953067639,1869881445,1953853216,544503152,1701603686,1931812922,1917124618,544370546,1663069801,1919970671,1702064997,1852383332,544503152,1701603686,1919903264,980705645,175318304,1920091392,757101167,1953845024,543584032,1802725732,1634759456,1998611811,1701603688,1769109280,1735289204,1953853216,544503152,1701603686,1931812922,1917124618,544370546,1631789101,544483182,2037411683,1952539680,1851859045,1769218148,1931502957,1886216564,1919287328,1763732847,1953853550,1818846752,622869093,1946159731,1970217071,1953853556,1818846752,622869093,167774835,1701869908,1701344288,1668246560,1869182049,1851859054,1634607204,1864394093,1752440934,1868761701,1701998701,1684370291,1818846752,1870209125,1635197045,1948284014,2019893359,1684955504,1160251950,1886216568,540697964,1163672129,1395540295,170483545,1866661898,1701998701,1684370291,1818846752,2112101,1886999562,1752440933,1869357157,1769234787,1629515375,1865376878,1634607218,2032166253,1997174127,544501345,1730178932,543520361,543516788,1634760805,1684366446,1818846752,671755877,1835104325,979725424,1547322144,1548963652,776030021,693328211,1157630474,1851879544,543450468,1701603686,167780410,1920091392,757101167,1936016416,1634625908,1852795252,1919509536,1869898597,1679849842,544433519,544501614,1936291941,622869108,1157630579,1919906418,1226845472,1718973294,1768122726]},{"sector":15,"data":[544501349,1869440365,1713404274,1646293615,1701209717,170816370,538976256,538976288,543434016,1701603686,1886938400,1701080673,536873572,538976288,622862368,1768300644,544433516,1634760805,1684366446,2017787914,1684955504,1852776563,1919885413,1919905056,1868767333,1701998701,1684370291,1818846752,170816357,1480917002,1145979216,1919179552,979727977,1634753373,1717397620,1852140649,543518049,1919179611,979727977,1634753373,1717397620,1852140649,543518049,774778459,1679842653,1769239397,1769234798,168455791,1528832000,1986622052,1532836453,1752457584,1818846813,1835101797,1394614373,1768121712,1936025958,1701344288,1668246560,1869182049,1851859054,1919889252,1835101728,1718558821,1713398048,174419049,538976288,538976288,538976288,538976288,538976288,538976288,1919885344,1952805664,543584032,1701603686,1869881459,543515168,1634760805,1684366446,1868111918,1633886325,1953459822,1702065440,538976266,538976288,538976288,538976288,538976288,538976288,1998594080,1667525737,1935962721,538970670,1953719652,1952542313,544108393,538976288,538976288,538976288,1667592275,1701406313,1752440947,1701716069,1869357175,1769234787,1629515375,1865376878,1634607218,1864394093,1851859046,538976266,538976288,538976288,538976288,538976288,538976288,1696604192,1851879544,543450468,1701603686,544370464,544499059,1713399407,1936026729,1698963502,1852404851,1869182049]},{"sector":16,"data":[1633886318,538970734,538976288,538976288,538976288,538976288,538976288,538976288,1629513058,1769104416,1814062454,1702130789,1851859058,1868767332,745434988,1919509536,1869898597,1847622002,744844641,538976266,538976288,538976288,538976288,538976288,538976288,1713381408,1852140649,744844641,544370464,1651339107,1952542313,778989417,1409288714,1679844712,1769239397,1769234798,1663069807,1864396385,544828526,1629513058,1818846752,1835101797,1718165605,1970239776,1986095136,1886593125,1718182757,543450473,1769152609,1701603182,1818846730,1835101797,1868963941,1752440946,1869815909,1701016181,1818846752,1835101797,1634738277,1701667186,779249012,544166944,1634760805,1629512814,1818846752,1919885413,1952805664,543584010,1701603686,1869881459,1679843616,1701209705,1953391986,1919509536,1869898597,1629518194,1797284974,544236901,543516788,1734963823,1818324585,1818846752,1835101797,695412837,1886587436,1718182757,1852776569,1629518188,1919509536,1869898597,1629518194,1752440947,1701060709,1852404851,1869182049,667246,1869771333,539828338,1635151433,543451500,1970302569,1634738292,1701667186,1936876916,2606,1145330259,858255496,0,0,0,0,0,0,0,0,0,0,65536,0,1095586560,1094800466,1296367698,1482184781,12376,0,6541,832]},{"sector":17,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,133562368,1180648251,1598377033,1330007625,0,0,0,0,0,0,1310720,25264513,1,0,0,0,0,143523840,4391744,0,0,28752,94288,0,16908288,0,33685504,0,58982400,0,67239936,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33554433,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,536873264,538976288,538976288,673720360,538976296,538976288,538976288,538976288,1210064928,269488144,269488144,269488144,-2079322096,-2071690108,-2071690108,269488260,269488144,-2122219135,16875905,16843009]}],[{"sector":1,"data":[16843009,16843009,16843009,269484289,269488144,-2105376126,33718914,33686018,33686018,33686018,33686018,269484546,2101264,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65535,369098752,219677186,202116105,370542599,302846719,1848180482,694971509,1970153472,2714732,589311275,0,0,0,0,536870912,0,30064,534650846,534650846,8158,0,0,0,0,862584832,1296972860,1044268883,911343616,221261872,1931488522,1801675124,1702260512,1869375090,658807,911343619,221458480,1763716362,1734702190,1679848037,1684633193,2036473957,168636448,1375734016,959459382,539822605,544501614,1970237029,1931503719,1701011824,1919903264,1986946336,1852797545,1953391981,-67106291,658688,1970405631,1769221486,1696621933,1919906418,131104,808466002,755633458,1869375008,1852404833,1869619303,544501353,544501614,1684107116,168649829,1375731968,825241654,539822605,1819047278,1768910880,1919251566,1936941344,1835951977,225734245,-65526,671154431,9049963,6903]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[30300749,35,18808864,75759615,128,69599248,30,1]},{"sector":6,"data":[0,0,0,0,-1192457387,-2014838690,-396994776,1187448314,-352321026,-27358427,1988879313,-1204748538,-397409970,-998032326,4372484,21936208,1009576016,-16464765,1183579718,-28952316,1320735614,-118992895,46433031,-1996447256,112763462,-1310175220,46433057,-1202667477,-397407128,-998032326,75399940,-402295551,1810563730,-1744763744,-1996472019,1183687750,1996443814,573106340,168084611,-1207011904,-1202716604,-397410300,-998045817,1354771204,1342990520,-2093221400,2122515652,393478306,-2086373633,1988974828,385649574,2930951,-2081905166,-15340798,-326917002,-1502180008,118946955,-234869575,52553893,727368835,-639086400,46433062,1600045099,-1017256565,-1192457387,-1746403310,1187468839,-956301072,64582,-899385,-28915713,1187446784,-385875718,1187447145,-1207959304,-1202714720,-397407142,-998040450,-1606515964,57933831,-1207904279,104401910,963970982,-1576273248,109052164,-968883964,973145350,-112953,-16454657,-1593023994,104400808,57805922,-1962864407,915142750,76156002,4491144,-336050433,201242846,128321081,44130933,68586252,-196703988,-336177527,-60912880,-1997650294,-16709497,1191181382,-195115788,-2012771802,-1073025466,-1070865547,208189520,988604496,-955988861,-1466,117376235,-1465840542,1644574983,-385650164,1586167973,1647741944,-2012968436,-16743289,-554960826,206847617,494209499,15761027,1187448693]},{"sector":7,"data":[-335544336,165394558,440400,102885456,-352009085,99346542,1048799723,1962870688,-1961563299,915142750,76156002,12879752,-506113,-1593023994,104400808,-479064990,755474593,138215425,51803904,-13724736,-1207801177,-1202716476,-1326776318,-352271176,12892327,309328,39035627,39584353,39912033,39912033,39912033,1187448299,-1593835278,1587742628,128491788,-2096340317,1946219134,-24188669,16678531,2122521204,343212282,15761027,1152913013,79187968,2095599616,79987461,16416387,2122519668,242548990,1342211256,1342178488,-2096799000,2122515652,343146736,16678531,-608694667,79187977,1223184384,79987461,16678531,2122521204,343146746,15761027,-608694668,45633545,686313472,79987461,1592805003,-1017256565,-1192457387,-2081947558,-28915931,535494656,15288055,-1927973856,-1957648826,1090911814,1337479168,-1276620798,113541928,-1912715521,-11491770,1944649334,79987487,-797589494,-1017256565,871140181,625010880,4671223,-1207012064,-1202714149,-397410300,-998046529,71732484,444262480,184730755,-1207012160,-1202716604,-397410300,-998046557,1548126724,1183334660,88524292,105301562,122078812,1397147392,648019970,1178179596,-955810724,18246,1187448299,-1203765177,-397407226,-998039980,1354771202,1342990520,-2093425176,251528388,112725050,-1930932212,46433054,-1202667477,-397407128,-998033214,71732484,1551302480,-2095113240,-1070922556]},{"sector":8,"data":[208189520,950593616,1560593539,-326412861,-402620232,-145349494,536889158,1152913012,79187968,149442560,79987460,1353467533,1342245048,-2095330328,1223165124,1548106525,1996429940,522512476,184730755,-15895360,-924296074,46433055,896843787,-396593409,-998039695,1975520002,1551302413,-2095075608,-1073020220,-1070920332,374864,61990992,-1207647101,-1202716604,-397410300,-998046813,1354771204,1342990520,-2093476376,1183646916,1374179500,46433049,360038411,1342331576,1353664141,-2095392280,-661977916,1946173312,8697870,309328,57010256,721732739,1756909760,-672641012,79987511,-1733540214,1342193965,-2095125272,-1073020220,1183453813,1093507244,619204608,46433055,225755147,-1202667477,-397410299,-998046937,1354771204,1342990520,-2093508120,1183450308,1093507244,-62486272,1968981561,8697870,309328,50194512,-1929067389,-397366202,-998033062,1886732290,1350583949,1342181560,1353467533,-2095470104,1950353092,-1790511610,-1207012080,-1202716540,-397410300,-998047033,-1404662524,932898896,-1962752893,-1404924432,-1191295351,-11533731,-404160906,79987510,1350583949,-1924087765,-397366202,-998041246,242499590,1342211256,1342178232,-2096986392,1586169028,509694,1353467533,1342457485,-2093551128,1187448004,-1923088313,-11533242,1172855926,79987485,-1202667477,-397407128,-998033710,201766916,473098320,721601667,1756909760,-1142403060,79987510,205129470,1342965432]},{"sector":9,"data":[-2095289624,-1070923068,208189520,916514896,1577370755,-1017256565,-2081898445,127973410,207272016,255649872,-167459709,17280006,-1598548620,-397389817,-998043726,112644,562751568,-1023228797,-1192457387,1340604438,71732002,1946157373,146765,54359668,-385649408,71106691,-385649408,87883915,-385649408,104661134,-385649408,742195345,-385647359,859635860,-385647103,1187381388,1183383792,-330905602,1187447039,-956301078,126534,1187387627,1187447024,-956299010,126022,15353543,-297351424,1183514626,77060,1979712829,11200771,781434883,129935359,15746758,33441479,-330905856,1187446786,-352321046,-263797040,-28915968,1187446786,-352256020,-263797015,-28915968,-638910454,15746758,217990855,-958141696,-956239802,261702,28885995,-1377284096,46433056,1183553771,-196703994,-956932468,-972295610,-973016250,-352257978,21542933,-1930148215,1187444318,1187384306,1187381491,1187381752,1187385593,1187381498,1187381755,1183523068,207266814,-1544665461,1183648860,207791090,2122390251,2080451588,75399477,780075315,-1543616885,1183517786,207397870,-1544927605,1183452254,207659760,-1561573750,-1598550943,1522028551,1072189452,79987470,28842219,367546368,46433056,126094571,119932710,121440038,116786982,1946224556,1543948078,-956300788,810502,1611056640,113639436,-1207890847,-1202714720,-397407142,-998044166,112644,533915728,-1962752893]},{"sector":10,"data":[1438866917,45673611,546629632,754861767,1354771201,-385976577,-997982674,-28901628,872316545,736787969,-1578610496,1575324447,-326412861,1743306803,108461856,-402360577,-997982714,112644,528672848,1560462467,-326412861,1206435891,-1173960928,-972575225,506886,128845510,-1358510592,113705479,163579824,129107655,113641929,-956168268,-771246842,-1224292599,-972429305,506118,163579591,113705217,2498,163841735,113708022,38668742,164103878,-922302720,-956169975,17419014,-855193856,-955515383,1309265670,-788085246,113704969,2514,164890311,113704960,206703062,165152455,113640014,-1207891494,-1202716062,-397407781,-998034498,-402209020,-956301303,649734,-335100160,-955493879,1309273606,-267991550,1706557705,-239579134,-1813491703,79987507,207488711,113704960,129633380,-1560000885,-1017312158,106058576,-1899416745,-1191234623,11670062,-1942605875,906129926,40910473,-1307431240,909102338,41551500,2017364278,305051650,801965234,-1979282378,1049179650,783811208,-855199214,109852207,-1992949138,-1711117250,5433,1778814006,1049179650,-1942617496,906135046,42221193,1399450,109852160,-1992949122,-1207796674,145887790,-1942605875,906138118,43007625,-1559836874,906628354,49022662,113718820,680,-1442396362,-1711273470,5396,-1777955786,1049179650,434635412,3205120,1358971880,1912623848,123689224,-346530982,214205188]},{"sector":11,"data":[1448135673,1660991518,119415245,906654239,43792009,-1643738058,-1017618942,-1153171272,-768409600,-427810355,30310401,-851181128,12108577,113476,567136819,-1207841152,567100417,-852446013,343329,-336067723,146712,-4520589,-1157370881,28835842,47360,-4849486,105956345,-2003151529,1912602634,-98290,100955384,100854559,1576504095,-883423393,-164408490,-25114317,906589695,43302084,686539660,1946339062,-1127991799,-1014234504,322771691,1024356864,158793767,-2068003786,-339506174,-1127991801,-1014234520,1979710339,-98281,-336002187,-1465698803,-18430,855638461,216791286,1946221443,5564419,-133904765,-922024334,-1695874443,33456284,1431447925,1347880529,-855310152,1493122095,-661976715,-855309640,-117314769,123667827,-2096698535,216532676,-346399488,-401682687,1583087611,-1185916981,-1070399489,-772296974,-1017161655,1963064195,1048786465,1962869392,-49895,911215989,906143905,42999551,906357592,42999551,-919397653,1962933888,1300899334,638184195,74790200,55413286,-117127293,200813427,-2145815351,91553790,-351978714,87762435,166396533,-2096794551,-471137081,-2146798855,1979252734,2097358336,839283202,227157741,113653319,-1023409502,1431393104,-1957558697,512308969,-2009726304,-1711102666,2696,594856203,91614475,-352309272,29550595,-396750990,1594294543,57987594,-351915032,113541892,117763065,1928944223,1532583176]},{"sector":12,"data":[-352140157,147096324,1397804025,512439890,-75300192,-402295297,65732652,1929410536,-1151749105,567083008,-997989326,283900166,1962933123,1958820619,11593735,-116996989,1532625778,102679384,33129247,45357941,-854226394,-1031135455,503362024,124985094,22383142,-336059955,184726543,638153929,567088522,-210417337,1472405496,-1957493168,-1962467590,-65359655,58044146,-1957963477,1476877259,-1070349473,1333053707,-1273035234,-2083026112,678756857,1344217549,-402290138,509083738,108207878,1111536888,647766477,1964653952,-339637502,-401682687,451674107,-1494724267,1508477951,41099725,-935654421,-398784652,-1962773000,-1021354559,-1157617736,28639236,-98109,-956952204,504132992,-1556181753,178434,-1006698520,-1003071738,184720446,639071487,-134201981,975573108,638022149,1996571962,1195899137,123726315,110048963,-617413978,-147418477,-1828541898,-1439238346,167412482,-1031797386,-2147226825,1095905474,74825739,1014291211,1963194755,175931406,906392876,45299455,-2094732479,242550521,738884736,-13236619,1090695990,-108850709,-2146667255,1965820540,922695174,-1824456013,-1561603533,-1070345677,-1506345162,-768359678,561301771,11543988,1965373478,1698178570,973370369,638481860,1273496970,1191277567,1967735367,-897100061,896855307,1048786509,1962934952,105155116,975581188,41222469,809246699,-771029899,872612980,-2143885333,-16603842,1111623797,1330596169]},{"sector":13,"data":[-4586517,-114599937,1610481640,-385649831,-1957625714,108822730,185431040,1225159881,-347650231,283860481,58050827,-2096501922,41287673,-16004813,1465214580,-919383802,-1472298186,997523458,252134646,2093222005,23586818,1156983019,208932103,235357430,1156974196,141888519,-402490172,250282357,185025782,182977909,-402396414,1491600089,-402396416,124911650,1566508889,-2096829602,922290884,44580483,1912960256,-16586493,-1475950794,-1023410174,-1590242765,-952761688,167946758,-25565184,-2021116328,-2092760404,58015995,-33498904,-1192397367,-1992947187,1124248711,13101123,-2133118013,1962935932,-2016987629,757072556,-969522365,537046151,11266115,870003549,243807954,1149895330,1992374793,-1967052257,121960176,-1978305408,-2009724348,1124248711,1967192963,8382467,-344600834,556160,1278741876,705196808,-779483060,185093258,-165317431,1963919172,121959948,637957136,-347667062,-2009704447,1124248711,1967192963,4450307,-613037570,-2147007242,-167110283,1149900148,-2021116406,-2092760404,58015995,-33544984,-152341042,1963919172,121959944,-352160752,1959922189,110048777,-889322842,48822133,1371755776,119428870,-617362549,44842637,1929141224,1493655301,-998046485,1573124358,805782774,-1977216395,-398372859,108264770,21334566,233568336,168135206,1191474368,737536833,1573082617,-1070345677,-1442396362,855642114,121960155,640054560,1156973962,242552071]},{"sector":14,"data":[57966760,914302019,44697287,1156972554,125111815,-1442396362,-352318974,121960024,640185616,1156973963,276106503,1954596086,-461356284,113718911,656042,235357430,-952760459,167946758,640346880,-1960442485,1156973141,276106503,1954596598,-427801852,113718911,656042,235357430,-952760459,167946758,-54925312,91544331,766693939,1573082450,-1442396362,-402650622,-768409476,-2093563853,175166,-2014830475,9889792,-1221132490,-1070382846,-402307958,-13238136,1090697014,-402373494,-2093612932,16952382,1609048181,7268352,-1221132490,-1070382846,-402373494,-13238176,1090697014,-402307958,-2093612972,33729598,1149902453,4646917,-1221132490,1149911298,3860484,-1221132490,535314690,3074048,951370581,378339504,567083692,-952758925,175110,113653248,-1020460361,-167623541,1963984708,6503688,1673003894,-1892236544,906144774,44174984,1241247464,-1576125898,-1207601918,1095761968,922695233,1573061292,-1442396362,-402650622,1156972671,494141703,-1119977418,359989250,1006781578,1006926860,-1341751785,-348041119,1349562372,868234049,121960146,-1978895328,1827145028,922695168,-163511627,1965033284,121959942,-1978895344,1424491588,922695168,-1975450951,1223164740,922695168,-1975450951,1156973124,343146759,-1119977418,208994306,41684284,3935276,212861557,1442534120,-1338460989,-1407808256,1931595010,113718803,66237,-1190738378,-969524734,771929350]},{"sector":15,"data":[110048963,-2009726292,-402480626,910818083,44174906,817366389,1094799360,-1405681866,1381090050,-1057325026,-1031141258,213126948,-494271765,-678748410,-2145443379,1962412794,-87496686,-930477197,567141002,-336010870,1912648706,-346465788,79987460,100647929,68352,131116,786496,19660882,19726442,19792030,19857593,19923145,19988780,20054383,20120061,1226244682,1919902574,1952671090,1397703712,1919252000,1852795251,1142229517,1667592809,2037542772,1953459744,1886217504,168655220,1851867931,544501614,1629499685,1952804384,1802661751,1769104416,168650102,1768901175,1629516654,1936286752,1919164523,543520361,1629515636,1919509536,1869898597,1864399218,1851859054,1701344367,1919164530,778401385,168626701,1229933086,1683693646,1702259058,1528838705,1986622052,1564095077,1752457584,319425885,1313427274,1769104416,976315766,222572320,1711934730,1919164448,828733033,538976314,538976288,1701860128,1768319331,1629516645,1936286752,1919164523,543520361,1952540788,1818851104,1885413484,1918985584,544432416,1768169569,1952671090,544830063,168652399,538976288,538976288,538976288,538976288,1769104416,775054710,541461005,1769104416,976381302,538976288,538976288,1667592275,1701406313,543236211,1986622052,1869881445,1768453920,2032167011,1998615919,544501345,1780510580,544106863,1986622052,221131109,539005194,1752457584,538976288,538976288]},{"sector":16,"data":[1394614304,1768121712,1936025958,1701344288,1919509536,1869898597,1948285298,1752637551,543712105,544567161,1953390967,544175136,1852403562,1769104416,774989174,225724704,538976266,538976288,538976288,538976288,1970085920,1646294131,1835343973,544830576,543452769,1852727651,1646294127,1752440933,1869750373,1679848559,1667592809,2037542772,1342836014,1143939104,538976288,538976288,538976288,1851867936,1936483683,2037276960,1701998624,1970235766,1330258035,1663061577,1634561391,544433262,544370534,543516788,1667592307,1701406313,1919164516,778401385,168626701,1886999615,1330258021,1998605897,1869116521,1881175157,1835102817,1919251557,1869881459,1936288800,1969430644,1852142194,544828532,1852403562,1679844453,1702259058,168636019,1049429774,-1048505762,30081724,-16711675,285213951,1702131781,1684366446,1920091424,622883439,-1928917455,-2095767746,46866625,-16711675,234882303,1936875856,1917132901,544370546,118370597,356728461,-887242365,1475119957,75402070,1342850443,1569392011,72190722,-1962519157,1432291445,603290,-1957208832,92866174,-1996333687,1435042893,141920518,-1983608161,-1990718395,1599998533,-1017256565,1475119957,75402070,1342850443,1569392011,72190722,-1962519157,1432291445,682650,-1957208832,92866174,-1996333687,1435042893,141920518,-1983608161,-1990718395,1599998533,-1017256565,1475119957,75402070,1342850443,1569392011,72190722]},{"sector":17,"data":[-1962519157,1432291445,768154,-1957208832,92866174,-1996333687,1435042893,141920518,-1983608161,-1990718395,1599998533,-1017256565,57804487,-1979973632,-956078834,222982,2047264512,-956301309,224006,822527744,-950183164,2080649990,889636668,-953467388,1023686406,102361147,-4713613,-1960422401,255469085,45613939,216619776,1949731073,1431786243,58465933,57870070,-1405192928,1913038056,101574711,1055404660,-166300410,537096966,-655882891,-165483771,1090745094,-347202700,1007126552,-2147125955,17003278,111142979,-2001942157,-1007992057,1765181774,509443,58203785,-1927443674,-2147255242,829697852,1948400768,1929836039,1349845251,21465638,104457266,292750181,-788306527,54739936,529213144,-352288536,1728497510,-352321277,1200236126,1088696833,-670834479,839879206,1959332845,642990863,-1142415477,1064524544,-220052669,57083591,871038979,21465638,-784276430,651690976,-466483318,54583505,260712152,-921965262,1396903796,-400585946,1935343700,-498908406,1728497650,1560282115,244013919,1738605413,1765182211,1796639491,1830717955,1355020291,-1459123418,74776578,56952575,1962949760,108824,113707125,131943,-1336930581,-385895421,-346554220,17885187,-1007041704,-1977200299,-315488177,225757451,-402034803,141754951,-503312920,99351030,58338953,-1017292296,8290342,1157854208,-1018824981,57872000,-3610608,645939826,1357841267,721647265]}],[{"sector":1,"data":[1946550726,915101699,1015022454,-2145159936,1966800764,1728497416,-352319229,1065559582,639136768,67575,113709429,131943,-1813509653,233568256,1342893049,-4979792,1476396008,643286008,-1996193909,637758270,-2010774136,-1588592283,-1993997446,1012400709,638219521,637818249,-351908471,1963080793,1435051526,1011870468,1021867015,1021604872,637957382,-352037496,1963211837,57975054,1166616128,1569465860,640412422,637826441,1342594444,38270502,-1341885439,638184196,33703926,45090164,1476444136,38270502,-402426864,-1017184111,70911686,-1960423424,1975520007,1381191703,1728497495,-1275066109,-402411265,1516240736,401299547,1947205801,1728497424,-402653181,1048773048,1963524967,-352064766,11112508,-955026431,222982,45279232,-2096944408,151217982,11084661,-955223038,222982,43706368,57097859,-1458670327,158605312,57083591,-1343750144,977174528,225771780,57097859,-955878144,151217926,1354979328,168069718,1008235712,-2146732742,1962934652,312837,-219674133,1174500099,1591929670,1381417816,76206218,1912856808,1958742539,780299,32179336,-353679802,1019436634,1007448960,1010987617,608073594,1396370399,1049450246,-92273620,-1929087996,939796286,1343714325,119427665,-1031117388,-1174405189,-4587515,1512164863,1569413209,54889985,-2144582845,123721510,809288539,960235634,808191095,-1007041544,1465013072,109021990,168135206,-1274776128]},{"sector":2,"data":[-955716609,151217926,-1325419520,-29956093,1482381919,1381322947,-1979534762,54781956,1927821938,1929836287,225708035,510999868,25067558,-345082624,1929836050,242487299,175454780,8290342,1180333312,975592171,477429830,1349828618,317408582,4602406,-1975106699,975586564,963969094,-1410644666,57870070,638547008,537020407,638022656,32384,-148495756,1946161159,1966750744,2122327561,225771520,3935979,-2144991371,1949958270,99350787,58078857,1566203640,1364247384,1448302162,1577098472,69142215,113704960,1057,69404359,-1578631168,-1558810112,-620100577,-1779951500,-1553632768,-620100575,-1981281164,-1554419200,-620100573,512447093,-75299843,-1591774206,-469105633,-930463115,168042913,-1975945756,588680168,33260292,-377093515,378214123,564200479,1977879044,-1580692961,-469105629,-393603467,1935997571,1824686340,-1268884729,-402149121,267123972,-4956581,-102235216,1728497660,1509951747,-1916577703,-2096890570,41221948,1377701867,-1205920176,-695519232,1515725261,1381090079,76204339,997507082,66862720,-2146470912,74777083,812923452,745811516,758910187,792471156,775692916,1105731188,-1273072898,179998976,199423744,51475922,-1861324095,-1967133882,99350744,32241734,1522633721,1464910681,1950255958,168069635,-401509184,544538711,70911686,80109057,971726592,312926,133637727,762642433,57083591,636157954,76174936,460636170]},{"sector":3,"data":[1946168040,22800395,1179058803,-353679801,-972853854,-1991835644,1577281854,11098207,1342796802,95485876,1492917224,-1924049981,-1190907618,121241609,-498924428,1532576249,-1974316861,1958742532,18343989,2088970866,225720833,268957478,-2145553408,1962934652,1008733207,1007776353,739080058,-1261401504,-402214657,116128720,57083591,1482293257,552119491,-401181696,343212113,57870070,-152144864,1090745094,-347207308,32241926,-121417992,1011962819,1009611789,1009349632,639988746,33717632,-617406862,56461862,637846403,1946171776,650720013,641927562,74711354,222099682,1405311833,1829160529,645931011,1021248371,1010201632,1009939465,1009873964,-2146667232,125116476,977674416,639560640,16940416,-919398542,55413286,192203019,1124074427,1946237478,1022943751,-1017423584,-167547486,17003270,243271029,975176563,-1913984064,990084142,1008301277,-116230865,-12088752,1929156584,-402355707,-346489712,183236621,91565884,57872000,516159552,1048793942,1962935152,1360941093,106256210,-561056205,-849149768,198937633,1599932379,1478449498,914957684,512295790,915080048,512623470,1015219056,974156800,973632004,58130756,1174793209,-118756538,-1021354405,1475119957,75402070,1342850443,1569392011,72190722,-1962519157,1432291445,1576558056,108956503,1569260937,72190210,-1996073591,-1969289099,205883844,172329304,-443850914,-1957313699,5683436,1443537384]},{"sector":4,"data":[-2147197301,1966735743,-1744336373,-1996472275,99351622,16533191,-59310336,1353467533,-2097045784,1967129796,-18427,1183678443,-639086420,46433054,1962935101,-339727612,-1404662420,74907472,-2097125400,-1073019708,1183574900,-28931836,1183459819,1357130410,-2096938008,-1073020220,1182991988,334168830,-106869,1065418310,-1962379940,1065418334,-1952025600,126549598,178931336,-3443264,2045248630,46433054,1116401803,1183422636,1958743036,6045060,2095682421,-443851009,-1957313699,-390056980,1996425702,508487684,1342358659,-16353537,1575486582,113541918,-108803957,-138405119,1438866904,-1070338933,-16138776,1018692726,65556484,79987469,1342177720,-2096572440,-1017314620,-1192457387,-1679294450,-213465591,138840858,-1913108855,-1924074938,-397348282,-998039944,-213465596,105286478,-1946794359,1183384646,-230257160,-230257328,509274192,-2096839549,1946222206,-18427,-1070923029,-1017256565,-1192457387,1273495566,-213465591,71731994,-1913108855,-1924074938,-397348282,-998040024,-213465596,-230257329,-230257328,504817744,-2096839549,1946222206,-18427,-1070923029,-1017256565,-1192457387,132644866,108461833,-402360577,-998046520,-28931836,242597899,-402360577,-998040228,71697154,1183515627,1575324670,-326412861,-402649416,1586170070,71761668,-967047226,-1974996154,1183319622,71732216,-1912977783,-1924074938,-397348282,-998040156,-25263356,-1207602176,49020927,-443826133]},{"sector":5,"data":[-1957313699,964844,1460180456,24504406,-196703848,-1979425141,-230258681,292864010,973176704,764939125,1183383617,71730164,106859266,83117706,-1962440639,1204160094,1586182657,1547665412,-1957491595,1077937734,475850832,1183533035,-1957674764,1077937734,-10622896,184861827,-1207536448,250216447,73304833,1946173312,108461851,-2095280152,54330052,-1207075328,-11533248,-538442122,79987483,-16484609,-739768714,79987483,-385452405,-24444748,1342456504,1342260621,-2096908312,-259324732,242611723,-402229505,-998040500,66095874,76154486,1022903944,-972786340,-966985658,1152909316,1166888964,-35106815,79987483,292929547,-1996994934,-396929532,-998040646,-336098556,71743581,21335376,467331152,184861827,-1975093824,76085318,1183319434,378616,1208370827,-1191426423,-1957690295,-1992229818,-397345210,-997982626,-1982297340,1065417822,-1964739328,92862534,956712587,58064454,-1946215191,-347079042,-129594724,1015022728,-385649664,1996488516,463923206,1023591555,225771522,1342458808,-402229505,-998040842,1589652228,1575324511,-326412861,-402649416,1187383058,1183652339,1183666418,-169324302,-230258149,-443816918,-1957313699,702700,-955846168,809478,206223459,127973456,207272016,471263312,-955857789,65094,-1980348787,-1465779130,-163149561,50087555,-1577296245,126422096,1182991595,1589904118,72202486,1946630438,71731731,1996961830,1194862313]},{"sector":6,"data":[-941395455,-442,-1924087765,-397346234,1183521438,1575324670,-1957326653,2013420,1460043240,-431583914,1153888395,1183666689,1448497400,-2095340568,1451951812,62925816,-763166140,-498693888,-941336951,63046,-990486901,-1977163138,75401985,1191117192,-159480842,1592360515,1575324511,-326412861,-402645320,1448543786,-1947842931,21284592,-129594030,-396994992,-998040752,-128546042,1141096491,13796098,-1981659511,1187505238,-1962934026,2123101790,-1006532092,-2010717570,-163119359,1140227715,1600055678,-1017256565,-1192457387,-672661498,2122536453,1065091076,-1744033888,2097432121,5814326,-1727762697,203163139,203298323,-1979955575,1187511894,-1962934022,1992620638,9053948,-2012842357,-96010496,1492811395,-4658820,721611775,-443851072,-1957313699,440556,1443201512,294531,664813436,1178179596,-1204388604,1861681240,100899076,370347036,1183386654,-27883012,16402119,-94467328,-1979287925,-59325440,-16742362,2122578502,-377726726,-335544392,1589652226,-1017256565,-1192457387,736624770,1183667717,-28931620,1350846093,-402360577,-997982406,1958742532,-951650497,947236864,-1949743477,-2037789866,1451884414,-2109290624,1586167808,2125907074,9053951,-1996589429,-2109276416,562200195,1183508604,1178310876,-1207601916,48955393,-1956724693,1438866917,1756949643,80013312,-1740206762,1183707275,1996443816,-19601404,168084611,721712576,-954078272,-1958475516,-1992293306]},{"sector":7,"data":[1448477252,-2095477784,1183515844,-2147473941,-108803957,1086331649,1575324510,-326412861,-402626376,-1923742598,-259286970,1353074317,-402360577,-997982582,1958742532,151308070,71732036,38046016,1172854358,79987481,15288055,-150506112,33556036,28837236,721611520,-443851072,-1957313699,964844,1443114472,-16728856,-1847065482,46433048,-375159,-2048391562,46433048,-1946794359,1178204742,721780470,9628096,16008903,-230242560,1183514624,-163173382,-196723904,1988879742,74843124,-1979294069,1963407364,-193035422,-2095614976,1946219646,-12285354,-397351894,-998047438,81154,1183532404,-28931596,16533191,-163149056,-336050551,-27358434,-1979418997,-60912896,939947659,-15567616,1183578190,-28901378,-2080618753,2130770046,-125926436,-1962380032,1174664262,-955520252,62022,-369867009,-1956708488,1438866917,179891339,56944640,-1983894698,1183448646,1849590780,91554052,-1293303765,16824320,346875984,-1560099709,12061118,-1612165119,46433044,-1207307101,-1924136955,1343683654,503963320,3840592,1183384557,1958743034,-96040187,1187477995,-1962934026,915142238,1183451582,-1962899210,915142238,1183451636,-16742154,2122446406,2080440566,16824542,-62485168,-190754794,-1706025463,65863684,200951433,-1581615680,1183386100,-163133448,1586167808,705137400,972065764,158660214,163454603,-1997126006,-163119360,-2114435329,16840318,113761404,66670]},{"sector":8,"data":[1593788905,-1017256565,-1192457387,-1880621054,1187468802,-1962934018,-422445450,165592192,-2146732800,647100,-1070922635,1988830699,-1964584450,-2076703674,192350686,165643320,28837234,-15930624,2122579526,-948828674,1593835448,-1017256565,567095476,41091644,-188800819,37128963,-2114508032,1913651454,268484099,-2116579590,-82940220,521539699,855767016,1994936512,1291827204,-461168179,646526718,-1992948618,-1962642906,-754667066,-1556723488,-150797200,145033,-567557236,1253366775,-1942609459,369420062,1925184519,242268423,-1070346453,521579251,369114088,59959327,855769576,137822189,104267525,70713093,-651630587,14870608,-1912343368,243928,1946601270,1344785924,-402555928,-4717571,385830912,817103988,-375184947,889239556,512303565,109839573,521012439,-1171980104,567092972,243998486,786630284,82249358,741772070,-1912158976,869960710,520042203,91424394,1307123478,113587713,-628357486,905970619,109715199,109977366,-1960442649,-486527986,868322870,1031808767,-1188269056,-927072244,1957098244,2147465483,-1359822797,-437577355,520560134,-255854709,-1852265468,1958805164,-492156927,-1155590409,-1484783612,-1195440912,567100416,-1024062862,-2147126144,1074065551,-1092126389,-1765865834,10676230,-1090087234,-1964505450,-1957313792,127450860,-402155329,-1765932931,110673670,-352291608,-326413053,-1090086722,1726482072,110673408,-402220865,-1175977876,1958742784]},{"sector":9,"data":[75399947,-955943680,16712774,-1157623879,-2013921275,1946223856,-851528700,-220052703,-1962932248,1286865990,243999181,132318860,-16776517,503745054,81073861,-853213000,1048583969,1946158354,329260557,337036549,-853167099,1002643233,1326085111,-485651633,-338558986,-147078158,-276623757,184912644,-227278267,-286581249,-1957363517,16562412,41674832,85474947,-16485376,-1207625706,-397410049,-443874711,45663069,-27531008,735873881,990540504,1912936990,-1864956,-373279775,861339205,4372982,-1392712654,-69017550,1951790208,-5314547,1342177720,-1207816984,-1017249791,85722767,939524794,1946478870,-419000791,109979140,109838380,-1070398196,-2147436135,-1359806669,1207661998,171870535,-18171,-772296974,29348235,8502784,82255502,1948269740,1946762491,1947024631,1958742639,-1404156053,-395042756,-462157508,1551109436,1484046346,611590716,57957436,870640450,1017921993,1023046748,50623522,-1949045807,334090689,1963043025,1308748746,1947024556,1958742571,1948400679,1952201914,-320126461,-1404974797,-93037508,74719804,-605302525,-372129397,27840787,-1746152843,1049173782,-687667964,65524039,-18710313,-997465557,-1962604893,385549272,1065956871,918897475,-1431567094,-92946422,906002878,82255502,-1070398485,540847274,154991476,222099316,2145977205,1975519744,-1871058173,1128237366,1017925187,1021015072,1020752905,174224397,1012823232,1009218594]},{"sector":10,"data":[-1442614180,-919345941,1547480129,574421620,1555039860,-773084429,-372155216,108243699,-341171536,1017925317,170816525,1009415360,1018655778,-1442614180,-919343893,1547480129,574421620,1555039860,-638866701,-372155216,-1770804493,-341171536,-1430244403,130490134,654245888,-1957362404,512644588,-919403289,-376716917,-1958086261,184560694,-1911524106,1048585926,1946157056,1169093126,1174042030,-31178601,-439222901,521585923,638807,1593869800,-41169013,780793859,119407880,-164372850,-2129403063,1950563132,8292613,-1431550651,-92946422,1317662178,1562318336,-1017256565,1458342741,-1962467753,-1598159786,-1036276474,-1774186380,865537140,-17984,-141840654,1603726315,1575324510,1426064066,-11015029,-873986954,1958743039,-91516396,-4603853,-139529473,45828561,-851397632,-443850975,180829,100913291,896664694,74450489,251995507,-657371136,-388824143,512481676,-886373145,-1014054653,1253365899,1918378445,1223697424,-1794871133,74854027,74847745,-372798525,326302609,-443826125,-126631075,1632336,1575324504,-402164797,-4718578,-443835905,-466435235,-1023409688,168094882,-2145159708,50653502,574360946,540806515,95421810,1016072171,-1342015981,85900051,-509372201,-997539068,-1957300245,82609132,884889175,-335598843,1157009429,192185094,53536854,1073923203,-2092498572,909707462,-428669364,1600046987,-1017256565,-2081649835,1448544492,-1929036610,1183385158]},{"sector":11,"data":[-370649348,46433025,1183709323,1996443654,1642616324,113541891,1459111561,38987863,-1962621821,1600059462,-1017256565,-2081649835,1448544492,-1979287925,-1986525372,-963904954,-1325059027,-1946627325,65065416,98619841,1183385044,105182968,-167349117,1950352964,105676811,-18400,-1878978327,17188086,1283518325,1686110726,-1070862586,-1962785655,-58816008,201737462,-561291403,87354241,-70057039,-472792181,-472786941,97814518,-2126088959,1946500350,1157529862,-13404923,-1175913866,46433040,762691595,87164671,87883393,-1095235979,-1878725881,-1995674952,76088388,-940024181,33555015,-352254010,-396980216,-998047588,105182722,-1961265912,887849438,-754732795,-775713797,-774372381,-729286941,1349779717,2083208331,71600900,-1962636992,1200355422,1149847554,2130643714,1962891027,-92864764,-2096394776,1183385284,-1877283844,-151363957,537194631,45617012,-1070903296,-397193136,-998044940,73173768,-2012985718,-1877480697,-1962933825,1183666375,1996443652,189851898,-1996045181,2117729350,-385649412,1183514347,1592011268,1575324511,-1957326653,49054700,71732054,-1325059027,-1946627325,65065416,98619841,1183385044,33601790,207415376,-1962752893,1200161886,1958742788,105873423,-27358456,149447,-1877480702,-2147197301,-1962670513,-1992229306,1586168903,38258686,1586167809,-1946973436,126420036,149447,-443851264,-1957313699,82609132,74877782,87164671,87883393]},{"sector":12,"data":[1187448949,-351813890,-25063412,611648836,1795049159,105182732,-1961265908,887849438,-754732795,-775713797,-774372381,-729286941,74711301,904642603,875415179,-754732795,-775386120,-775879712,97781216,-1946401143,1149894214,-1962637052,12123230,38242562,-972929911,1283457287,28836358,-443851264,-1957313699,49054700,75400022,-2124712960,87819902,2122385268,1963279366,106859382,-1744353398,248965200,184730755,-1956350784,875365958,-754732795,-775386120,-775879712,97781216,-113015,1273497206,46433024,-956408181,1204224007,-1962934270,-208992674,76136491,-352041079,1586204714,75464966,125044670,1778679681,-1978108660,1352140615,-2096202776,-1073020220,1996425588,583686,1577239683,-1017256565,-2081649835,1448543468,721712779,105155327,37487396,1156990581,427100166,-343810421,61932852,-1014236205,-670833711,-2013862959,1946224084,721718055,1183384644,2126515196,1962889243,121932292,1676169368,113541897,1962690107,105676807,-16608,-1996209013,38061828,-947191808,-443850914,-1957313699,23378156,1475944936,108432214,-23165299,-1962438493,-2136799162,71731975,-955812701,494086,-2012821760,-385875961,1015022204,-385649627,113705560,67468,2091106347,125346567,-1559787869,-2069690502,126001927,-1559791965,2124613490,-1777940729,-2147475449,1966080380,113722940,3147670,1015034859,-15895253,-955810810,492038,-1876759808,1965046912,2084471565]},{"sector":13,"data":[359989255,125961983,117379051,166397810,1965898880,2114387921,76170759,-169324392,46433031,-394936309,127055958,124184656,-1962621821,-1841396752,209518599,125699839,-150498655,127050712,1965964416,-2079916253,-1202305529,-397408372,-998045892,-2081387772,494654,113707645,67468,126095103,1033372810,846463046,1946177085,6831413,1815945332,-955878144,34044422,2050917120,91553799,1967930496,1015039489,-384076544,113705352,67450,113763307,1050490,113761259,526202,76207083,-1668904552,4537854,1195182708,1023767552,158662744,125306623,-23296381,-1668904160,6499838,1979716925,18147587,781434883,843098111,125836939,-2002706549,-2096658169,34045958,-1878955543,126224127,124913351,179830784,2145931264,46433025,-1878961687,-352319304,117412080,117376886,1048774520,1962936196,-1912158455,-352321273,113741831,1934,126093055,126617287,1048772612,1963460474,8972547,2057551915,-62486265,127010361,-1834932364,-62486265,125714051,-955681792,496134,-1877808384,127020675,127049989,41795595,-1834762197,-2147056889,280494599,-1552384,46433024,1342192312,-2096902168,2122515140,578027772,125714051,-1961528320,86899782,127050496,41795595,-1834762197,-1878529273,127010503,780337152,-1207695488,-397410288,-998047554,-14685950,-385871688,-1070858449,31647824,-1862325527,-352321096,-1224765197,-1175912804,-15079166,125451907]},{"sector":14,"data":[-1962707968,-24424762,4030535,1031800180,-1946847963,1355164615,-303540706,113541891,1015084939,-385649664,1048837500,1962936200,1948158809,105379335,-1202752480,1307312127,822620652,837956082,838611442,838611208,838611452,821047804,824324380,838611452,838611426,838611204,836514300,126500483,-2095877120,493630,512430197,1207306100,-1217060858,-347732757,-2002677607,-1956684281,-1866244635,-2081649835,1448548588,168066691,117376116,1048774534,1946290042,2050917127,376770567,125836939,1468729227,-62486270,-2080483703,67600390,1048783595,1946158982,-2145481967,-1995994361,1187511366,-352321282,512462862,126551936,-62486119,-2080483703,34045958,124927619,-1962052608,1175190598,-1962576642,48956486,-1801207765,-1875473657,-2042723577,712310791,16678531,2122523773,393546244,1177355462,-1946401141,-654836138,-150941053,-62486054,-939633015,129094,1187448299,-1929379592,-125048762,1459910399,-100609,199818358,147096330,126107267,1461810176,-2096519192,243991236,-936704116,-336310647,80121861,-1047837136,2143292233,-196179467,125308555,76023178,125094155,58483004,1176513664,-8552377,-2081852160,493118,2090931317,-2113533177,-2096401401,1962997886,112645,-1070923029,45279312,1577239683,1575324511,-1957326653,283935724,2122536535,343146500,-1593835074,1183385472,-94466824,125830787,9562370,125451907,-1961396976,-1962442722,39291655,-1980217719]},{"sector":15,"data":[109312598,-352057472,512462869,126551936,-1979955575,1586296902,-2147056646,1048773127,1963984762,-129594611,1979336203,105822228,2122516971,158662908,-1996073544,1586296902,-129594374,-1980082549,1451881030,972434420,1946649654,-1945203940,-1878070521,-893244,-2144931258,359923775,2127444806,-1863455984,-228670394,653412095,1962950528,-1841394701,-2080494841,491070,-396949643,-998047458,1996445186,-126418950,-2097057816,1048774340,1946158974,65558279,46433025,-443850914,-1957313699,82609132,-1995997023,2122579526,108291844,1191476867,28312693,-1070988565,-2080618872,492606,113706613,395148,16547456,1048776052,1962936204,-1945712890,-16776953,-16287690,-16282570,922682486,1996425104,2014773246,180650758,16547456,1048777332,1962936178,-1875443957,2048327431,46433030,124927619,-2095942656,494654,922684277,385812368,-998046082,-2147056894,113707015,1940,185040033,1946649094,-25755885,109057791,184730755,-1207601984,48955393,-397361109,-443875064,-1957313699,1048794860,1962936202,1948158767,38797063,1183452792,-13137148,704940039,-1878266908,74907475,-2080991768,1967129796,-1979252985,-1878660345,126355199,-1866244770,-2081649835,1448542956,126500483,-1958120192,-167050122,367739518,125056767,127284991,-2081006104,1967129796,-1979252988,1321634567,377405451,125050507,2013417471,127312091,134168459,-467008120,1048829163,1962936202,71731975]},{"sector":16,"data":[126354945,-443850914,-1957313699,49054700,1988843095,-1975614712,1349844999,922688747,1589905268,126494212,-1552232,79987701,-16485056,-16283130,-963967930,1958742862,1948158749,38797063,1589957752,126494212,125050507,134168459,-467008120,1048826603,1962936202,138840839,126354945,-443850914,-1957313699,183272428,915101271,-1070921840,-1979955575,1048836678,1966081942,-2079966952,957510663,1946646022,-1912194810,-955878137,537368070,-1841394944,1642616327,46433030,737691273,75377656,125714051,-2145880832,326446396,127286915,-1408469712,-1645719400,46433278,-2080878849,805803582,-16053388,1048774526,1946158974,75399961,-16354304,1609103942,-1807842560,108265479,-386119937,1048772714,1962936190,-1612163290,46433278,294531,2122516852,57999610,-2097138200,496702,2122516852,57999612,-16761368,1444870262,-2080451608,1048774340,1946158974,-1777940723,1459625991,-2080480792,1599996612,-1017256565,125582979,-1207602176,65732651,1342185656,-2080503832,-1866267964,1342189752,-2080506904,1048773316,1963984788,2017362711,108265479,-352298824,2025361412,-571977728,46433277,-1957326653,82609132,1988843095,-28915962,1015021569,-1961921238,-1962442722,-2147056833,-347733497,1015058504,-955878099,-442,-2130760890,897331260,2134457472,-2076296912,-2146732793,108343356,127272647,76152880,-774927464,65130977,65130959,820609992,-2142832245,92024892,2117680256]},{"sector":17,"data":[-28931103,-125046793,-1996202357,1590070079,1575324511,-1957326653,49054700,106741334,-352039286,-2142859262,175374396,-160101318,-352321096,-1070886909,1575324510,-1957326653,82609132,990142091,1912925726,151042053,1190603499,1954545672,176063304,857371648,-1194226743,567099905,1190611826,1962934794,105251598,2030589459,369145896,-1992889351,1183448662,-1194226692,567099906,319178243,226035798,-1946268021,12123222,-350106302,106335192,-1979167093,1119095366,91365837,82880384,-221910531,-2081649835,1586170092,-300008700,-1207471612,-369555200,-2013859153,1948255472,1107474443,-779368141,-344841779,82872310,-1955695488,119408214,1183432755,-62486018,-1957275652,-1980593158,1317795942,-1336614136,1974399498,13953098,1979754557,49054536,12246155,36191490,-2135293069,-1948112128,385518548,139365127,1946827948,1962621708,-186471911,-352312344,990752865,-402426373,-1331036136,-62456054,233366507,1591929600,-346690721,-373279931,1397812637,735021905,-1961827382,1085539422,225583565,201213441,1493595328,-91531173,147096515,162792563,-2013913365,1950352624,106859275,1964654464,216791043,469809401,1183516395,-62510082,1593337483,-237901473,185093771,-1962576439,-238687807,-1274653045,1931595072,-351685628,1975520228,-259524896,175390724,1065409163,-133991142,-1191587861,-907338752,85631321,108250171,-654851029,-1070341633,-1957299477,73305068,74767115,33443712]}]],[[{"sector":1,"data":[-1017256565,1458342741,107133783,1962950531,-1207493079,1944584197,855995649,619420096,-1543625664,1688405602,80188934,-964493311,-29047036,915013630,1317733992,-1898411004,649408,-443851169,-823540899,-93044480,-2080448128,-227283207,-66947189,-1459713107,1212314625,359907643,-268185461,1946265773,96600884,-141885438,-335657847,1962839014,-1980169460,-1054081460,-351958712,-17235195,-963903924,-779298164,91541819,1881050150,41912582,113649347,1023542902,628424702,-268173685,1946265773,1224641522,-1116487365,-268185461,1946265773,96601058,-141885438,-335657847,138906598,74760203,351000718,1980694054,-1945013242,1003982040,637891783,107749006,-1125435509,856061835,7006400,225756731,1077936420,6219928,1308495220,1894654,1318454644,-1936069810,1003588824,637826241,-1962512221,38242567,-1013333965,-28996783,57934248,1095354411,2147465793,1914059558,-788236794,-1946847766,1925579713,1925317397,601028365,-389665854,141885452,-355347721,-1070340747,1364378457,1946164712,-24422632,-234622837,-16890681,108497407,-684992885,-27948726,-1017489064,-768389037,1347572254,1342177720,266870534,147096320,536869507,41179994,12833291,1458342741,2122516055,947191816,-1962641729,1183516246,125126660,1912624104,-1958155481,1208272438,-147123852,1149963636,205949186,3860566,-2093976738,-25099066,74646726,108384779,-1711276104,-628417045,-787496061,-754732581]},{"sector":2,"data":[-850873109,-1830194655,1418265737,-969504510,130036484,-443851169,1317782365,972524300,208929356,-2130393469,1963247358,1072429554,470014603,-745850510,-147078770,507053685,645071984,-787496061,-773074469,1005310443,50951671,82289113,-1064380373,567102132,-147124878,378078325,-2020473744,-1009677564,-1947432107,-1931572265,-1950314792,-1070398338,-218103879,-9073234,-1190756725,-1359806465,-114568713,1183579783,29816580,-1543343104,-202780343,-204926043,-1946973276,12803578,-1947432107,-1948349481,-24443274,-1064380276,-4603853,-139529473,75402193,27838347,1235485300,-1510741551,-1527527149,-91491445,-1957313699,-1948808212,-1898410786,74877888,856063627,-17984,-772296974,-1493960405,-1071970956,-1946157283,1576700915,-1957363517,-1932030996,-1950314792,-1070398338,-218103879,1238497198,1576700817,-1957363517,508975084,139365127,-645191965,-1962639733,-222284809,64616366,-1946252341,-1494022538,872367242,-12240183,74712183,-772322999,1600045451,-1017256565,1458342741,-385830057,-1957363510,73305068,82714171,-75296387,-166953984,1074065543,28837236,855829248,1575324608,-1957363517,-1957210388,92996734,-1962779253,1435173965,141921030,-854950517,2123061025,-1996125946,1300824669,106268932,-1895271031,74582597,149681715,-1091715096,92995585,1594652041,1575324510,-1957363517,-1957210388,92996734,-1962779253,1435173965,141921030,-1962248705,93194366,1594252686,509026765]},{"sector":3,"data":[-544286836,-1945600373,105221893,-1996063093,39684357,-1996206711,1971914325,172330760,-164428686,1642596587,114413,1971914123,-1956749556,12803557,-1962258805,1451951174,142510854,-66642345,1958742675,184124179,-771027339,766511737,-2082736214,-621346606,865269643,1958742994,-1812859134,-2020412937,1009779923,67270201,-1031034329,-495598837,-1404107384,1149764998,21270015,-227358917,-1956749480,12803557,-1259566251,1426451257,1001712779,-855353717,-323032799,-1259566251,72780602,-244112947,1962938429,-1970040084,3949319,1060899444,708576372,62058869,-705955438,1408011093,1465274961,1427506718,-1962248507,108446980,-1408348533,158490940,91454268,1149820932,1576067839,1595868951,1532582494,-899816053,-1957363702,1381061612,102651734,12080406,1914817891,108971025,-1978773877,92808708,-136165562,392020019,1583292167,-1956947622,181034469,0,0,0,1377850189,1412263541,543518057,1919052108,544830049,1866670125,1769109872,544499815,539583272,943208753,1766662188,1936683619,544499311,1886547779,2097169,1253114117,72239439,50377216,1663414273,1044193338,175318304,6041344,707668572,4468480,1589039,852146,-80,-1308621569,-1342175232,-1,11665412,-5242872,11534344,-16777216,16777215,0,168624128,0,402655744,1092923904,1397600256,1397703712,1919243808,1852795251,808334624,1126703152]},{"sector":4,"data":[1886339881,1734963833,824210536,758200377,825833777,1667845408,1869836146,1126200422,544240239,1701013836,1684370286,1952533792,1634300517,539828332,1886351952,2037674597,543584032,1919117645,1718580079,1816207476,1769087084,1937008743,1936028192,1702261349,7872612,9961650,50331568,671134208,16756736,-16777216,0,1014783323,993864510,620757026,1543506547,771775488,3026432,6029404,1073754160,1663640360,1651864429,779252851,774965603,909647921,792080431,1342191409,4,-452984832,-201326553,-1308601597,-1342157824,1127941238,1279870559,1313431365,937798,1704114,-2130701136,16875905,11665415,246415381,1124332549,11665413,1890582539,15,402784790,202115341,369624844,219348758,16712210,652800,17430016,0,33554432,1,33554432,2,-2080374784,3,33554432,-1308605948,-1342146560,33554433,11665412,-860880780,1970153477,2714732,1819635240,721430892,337846317,318812672,2142208,-1711276032,-1708615128,-1708615128,-1308618968,-1342172160,1010576318,1196641614,15934,808466002,755633456,1635021600,1864395619,1718773110,225931116,196618,808466002,755633459,1953392928,1919248229,1986618400,543515753,807434594,150997517,808866304,168638768,1869488173,1852121204,1751610735,1634759456,1713399139,1696625263,1919514222,1701670511,168653934,218168320,16711690,762213746]},{"sector":5,"data":[1701669236,1920099616,2126447,911343618,221392944,1713384714,1952542572,543649385,1852403568,1869488244,1869357172,1684366433,16779789,808866304,168636720,1970151469,1881173100,1953393007,1629516389,1734964083,1852140910,658804,-5111592,-5242862,9816,23986176,81463296,1112671340,-1064507253,234885125,303903,787971,244039822,-108331002,-34108593,-1202674445,-883949516,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704,78708751,-789068149,-628299565,74698795,-768878452,-268181293,-947135858,-388771593,-802438516,-1064565645,-522989013,-1030817789,1322289836,1187548077,-31145334,91598908,-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094,-1031072797,-1064385789,-2080863315,292880383,-501415642,16417267,-2129234704,-351272766,1086360796,-276578162,486614544,-339702200,-1950118942,-1962932162,50334262,33948144,1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602,482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,947312,161417606,175180250,360909774,369825223,628893122,644039608,1145841389,0,0,0,0,0,0,0,168624128,1869488173,1852121204,1751610735,1634759456,1713399139,1696625263,1919514222,1701670511,168653934,218168320,16711690,762213746]},{"sector":6,"data":[]},{"sector":7,"data":[1313818367,538976340,0,0,385941505,83886080,1090526208,16777224,1145261056,538976288,111904,0,13568,16777472,134743552,8,1,0,-1522385920,1522368933,-612484036,1724121051,2139043388,136068735,1042024448,136068735,473832448,137789311,1042024476,137789311,402653212,1588284,-402653440,-1588285,1006633215,3958374,-1006633216,-3958375,1040386047,1013343846,1717976064,1008221286,235669528,940050954,420878384,123826455,1047218182,-696506396,2087731218,1081113727,520552704,17244031,2117867520,1014896664,909522456,905983542,1785347840,436865594,947272704,1847342700,60,8355711,2117867520,406617624,2117867775,404232282,404232192,406617690,101449728,201752447,806879232,405831551,1610612736,8355680,907280384,339115903,470288384,2134785564,1044283136,134749212,0,0,404232192,402659352,339097088,0,1057622528,673742356,1748895744,142478142,1379860736,1983191916,473308160,996568635,806885376,0,403441152,101455896,202911744,806882316,473300992,3546239,404226048,1579134,0,404226048,48,126,0,404226048,201720576,1080045592,1714165760,406087270,941103104,1008211992,1717976064,2117212172,208026624,1013319196,740035584,504135276,2086698496,1013319270,1613765632,1013343868,1281785344,941103116]},{"sector":8,"data":[1986411520,1013345852,1717976064,940312126,404226048,404226048,404226048,404226048,403441200,101455920,2113929216,32256,202911744,806882310,644234240,402659340,1564556800,1044406101,470555648,1663254038,909540352,2117284670,1630739712,506552416,859208704,2083926835,875659008,2133931068,875659008,2016425020,1630739712,523462496,1717986816,1717986942,404241408,1008211992,101064448,1013343750,1818650368,1734765688,808482816,2134061360,2002993408,1667459967,1935885056,1667723131,1664490496,473326435,859012608,2016423998,1664490496,473328483,1717992455,1734765692,1885748736,2087063100,408583680,1008211992,1667457792,1046700899,912422656,135797812,1801675520,573980267,1013343744,1717976088,879159040,1008211992,1281785344,2120626712,404233728,504895512,405823488,16975372,202128384,1007422476,907806720,0,0,0,202911999,0,1006632960,2070290022,1043361792,1849373499,1040187392,1013342310,906366464,996566638,1006632960,1046511206,404426240,1008212030,1023410176,1665022054,909144126,1932735291,939530240,1008211992,469765120,1819020300,858812472,2000043062,404240384,1008211992,1979711488,1802201983,1979711488,1932735291,1006632960,1013343846,1845493760,809382707,973078648,104752742,1845493775,2016424763,1040187392,2081307760,1041762304,203036696,1711276032,996566630,1929379840,136066610,1795162112,573996907]},{"sector":9,"data":[1929379840,1731599414,1996488704,1812732467,2113929272,2117212236,404229632,236460144,404232192,404232216,404254720,1880627214,5126400,0,471599104,2137204278,1630739839,238116960,1711303708,996566630,1008209408,1046511206,1010571264,2070290022,1006646784,2070290022,1008218112,2070290022,1008211968,2070290022,1040187392,473325670,1010571320,1046511206,1006646784,1046511206,1008218112,1046511206,939551744,1008211992,3938304,1008212024,1585152,1008212024,470300160,1665086998,471079936,1665087006,2131494656,2133933105,1979711488,2003582747,742211328,1869442110,1010571264,1013343846,1006659072,1013343846,1008234496,1013343846,1111234560,996566630,1712877568,996566630,1996502528,1812732467,907830072,473326435,1665218048,1046700899,1006896640,1013606510,858988080,1985689980,1013343744,410916990,1819047936,1718576762,404426243,1477974078,1008209520,2070290022,3152896,1008212024,1008209408,1013343846,1712852480,996566630,1982601728,1932735291,1932270080,1667723131,909516288,4128799,909515776,4063260,402659328,1013343280,0,6316158,0,394878,1818648576,1281768318,1818648591,1332426619,402659331,404232216,907739136,456551532,913047552,1815485211,289673472,289673540,1437226308,1437226410,-289673558,-289673541,404232379,404232216,404232216,404289784,-132638696,418912504,875836440,875885812,52,875887864]},{"sector":10,"data":[-268435404,418912504,-197905384,888407284,875836468,875836468,-134217676,888407292,-197905356,16516340,875836416,64764,-132638720,16259320,0,404289784,404232216,7967,404232192,65535,0,404291583,404232216,404234015,24,65535,404232192,404291583,521672728,404690975,875836440,875837239,926168116,2043959,1056964608,876032063,-147573708,16711927,-16777216,888602879,926168116,876032055,-16777164,16711935,-147573760,888602871,-15198156,16711935,875836416,65535,-16777216,419365119,24,875888639,875836468,7999,521672704,989215,520093696,404690975,24,875839295,875836468,875888639,-15198156,419371263,404232216,63736,0,404234015,-232,-1,255,-256,-252645121,-252645136,252645360,252645135,-241,255,1023410176,997090926,1818639360,1853580134,825458432,2016423984,2118057984,1714820180,406028032,2134054924,1056964608,946629740,855638016,1832334131,2118058080,203167824,1040718848,470302315,1664490496,473326463,1664490496,2002073187,405806080,1013343788,2134245376,914315597,1040384256,1047751527,503316544,506478128,1717976064,1717986918,8257536,8257662,2115508224,2113935384,238575616,2113953848,1880884736,2113930780,437980672,404232216,404232216,1893226520,1579008,404226174,1849360384,7224064]},{"sector":11,"data":[909515776,28,402653184,6204,0,24,100795136,406350884,859534864,13107,208026624,32312,1006632960,3947580,0,0,1761614848,16777232,1145261056,538976288,217632,0,548096,16777472,134743552,8,1,0,-1522385920,1522368933,-612484036,1724121051,2139043388,136068735,1042024448,136068735,473832448,137789311,1042024476,137789311,402653212,1588284,-402653440,-1588285,1006633215,3958374,-1006633216,-3958375,1040386047,1013343846,1717976064,1008221286,235669528,940050954,420878384,123826455,1047218182,-696506396,2087731218,1081113727,520552704,17244031,2117867520,1014896664,909522456,905983542,1785347840,436865594,947272704,1847342700,60,8355711,2117867520,406617624,2117867775,404232282,404232192,406617690,101449728,201752447,806879232,405831551,1610612736,8355680,907280384,339115903,470288384,2134785564,1044283136,134749212,0,0,404232192,402659352,339097088,0,1057622528,673742356,1748895744,142478142,1379860736,1983191916,473308160,996568635,806885376,0,403441152,101455896,202911744,806882316,473300992,3546239,404226048,1579134,0,404226048,48,126,0,404226048,201720576,1080045592,1714165760,406087270,941103104,1008211992,1717976064,2117212172]},{"sector":12,"data":[208026624,1013319196,740035584,504135276,2086698496,1013319270,1613765632,1013343868,1281785344,941103116,1986411520,1013345852,1717976064,940312126,404226048,404226048,404226048,404226048,403441200,101455920,2113929216,32256,202911744,806882310,644234240,402659340,1564556800,1044406101,470555648,1663254038,909540352,2117284670,1630739712,506552416,859208704,2083926835,875659008,2133931068,875659008,2016425020,1630739712,523462496,1717986816,1717986942,404241408,1008211992,101064448,1013343750,1818650368,1734765688,808482816,2134061360,2002993408,1667459967,1935885056,1667723131,1664490496,473326435,859012608,2016423998,1664490496,473328483,1717992455,1734765692,1885748736,2087063100,408583680,1008211992,1667457792,1046700899,912422656,135797812,1801675520,573980267,1013343744,1717976088,879159040,1008211992,1281785344,2120626712,404233728,504895512,405823488,16975372,202128384,1007422476,907806720,0,0,0,202911999,0,1006632960,2070290022,1043361792,1849373499,1040187392,1013342310,906366464,996566638,1006632960,1046511206,404426240,1008212030,1023410176,1665022054,909144126,1932735291,939530240,1008211992,469765120,1819020300,858812472,2000043062,404240384,1008211992,1979711488,1802201983,1979711488,1932735291,1006632960,1013343846,1845493760,809382707,973078648,104752742,1845493775,2016424763]},{"sector":13,"data":[1040187392,2081307760,1041762304,203036696,1711276032,996566630,1929379840,136066610,1795162112,573996907,1929379840,1731599414,1996488704,1812732467,2113929272,2117212236,404229632,236460144,404232192,404232216,404254720,1880627214,5126400,0,471599104,2137204278,1630739839,238116960,1711303708,996566630,1008208896,1046511206,1010571264,2070290022,1006646784,2070290022,1008218112,2070290022,1008211968,2070290022,1040187392,473325670,1010571320,1046511206,1006646784,1046511206,1008218112,1046511206,939551744,1008211992,3938304,1008212024,1585152,1008212024,470300160,1665086998,471079936,1665087006,2131494400,2133933105,1979711488,2003582747,742211328,1869442110,1010571264,1013343846,1006659072,1013343846,1008218112,1013343846,1111234560,996566630,1712861184,996566630,1996502528,1812732467,907830072,473326435,1665218048,1046700899,1006895104,1014398574,858988064,1985689980,1731599616,1547072363,1013317632,6700056,404426240,1477974078,1008209008,2070290022,3151872,1008212024,1008208896,1013343846,1712851968,996566630,1982601728,1932735291,1932270080,1667723131,909516288,4128799,909515776,4063260,402659328,1013343280,1434140160,1048010073,0,394878,1818648576,1281768318,1818648591,1332426619,402659331,404232216,907739136,456551532,913047552,1815485211,289673472,289673540,1437226308,1437226410,-289673558,-289673541]},{"sector":14,"data":[404232379,404232216,404232216,404289784,471338008,1665086998,137763840,1665087006,470162432,1665086998,1567309312,1047223633,-197905408,888407284,875836468,875836468,-134217676,888407292,-197905356,16516340,1006896640,1013606510,1013343792,410916990,0,404289784,404232216,7967,404232192,65535,0,404291583,404232216,404234015,24,65535,404232192,404291583,1011759384,2070290022,476986112,1665086998,926168064,2043959,1056964608,876032063,-147573708,16711927,-16777216,888602879,926168116,876032055,-16777164,16711935,-147573760,888602871,2120613940,1719542820,1813526016,1013343798,859208704,2083926907,2134252544,2133933105,2130720256,2133933105,2131499008,2133933105,939524096,1008211992,1008208896,1008211992,1008998400,1008211992,1006659072,1008211992,404232192,63736,0,404234015,-232,-1,255,-256,404232447,404226048,1008218136,1008211992,-256,255,906757632,473326435,1818639360,1853580142,1043733504,473326435,906762240,473326435,1013856768,1013343846,913193728,473326435,855638016,1832334131,1043361888,809382707,859732088,2016427571,1666911232,1046700899,1668750336,1046700899,1668093952,1046700899,1997276672,1812732467,1725631544,1008212020,65280,0,806882304,0,0,126,2115508224,2113935384,0,16711680]},{"sector":15,"data":[911962367,1866170207,1785347907,436865594,947272704,1847342700,1579068,404226174,0,234881024,909515804,28,13824,0,0,24,406329344,15384,476462080,15462,208026624,32312,1006632960,3947580,0,0,-1862263808,16777240,1145261056,538976288,220192,0,1082624,16777472,134743552,8,1,0,-1522385920,1522368933,-612484036,1724121051,2139043388,136068735,1042024448,136068735,473832448,137789311,1042024476,137789311,402653212,1588284,-402653440,-1588285,1006633215,3958374,-1006633216,-3958375,1040386047,1013343846,1717976064,1008221286,235669528,940050954,420878384,123826455,1047218182,-696506396,2087731218,1081113727,520552704,17244031,2117867520,1014896664,909522456,905983542,1785347840,436865594,947272704,1847342700,60,8355711,2117867520,406617624,2117867775,404232282,404232192,406617690,101449728,201752447,806879232,405831551,1610612736,8355680,907280384,339115903,470288384,2134785564,1044283136,134749212,0,0,404232192,402659352,339097088,0,1057622528,673742356,1748895744,142478142,1379860736,1983191916,473308160,996568635,806885376,0,403441152,101455896,202911744,806882316,473300992,3546239,404226048,1579134,0,404226048,48,126]},{"sector":16,"data":[0,404226048,201720576,1080045592,1714165760,406087270,941103104,1008211992,1717976064,2117212172,208026624,1013319196,740035584,504135276,2086698496,1013319270,1613765632,1013343868,1281785344,941103116,1986411520,1013345852,1717976064,940312126,404226048,404226048,404226048,404226048,403441200,101455920,2113929216,32256,202911744,806882310,644234240,402659340,1564556800,1044406101,470555648,1663254038,909540352,2117284670,1630739712,506552416,859208704,2083926835,875659008,2133931068,875659008,2016425020,1630739712,523462496,1717986816,1717986942,404241408,1008211992,101064448,1013343750,1818650368,1734765688,808482816,2134061360,2002993408,1667459967,1935885056,1667723131,1664490496,473326435,859012608,2016423998,1664490496,473328483,1717992455,1734765692,1885748736,2087063100,408583680,1008211992,1667457792,1046700899,912422656,135797812,1801675520,573980267,1013343744,1717976088,879159040,1008211992,1281785344,2120626712,404233728,504895512,405823488,16975372,202128384,1007422476,907806720,0,0,0,202911999,0,1006632960,2070290022,1043361792,1849373499,1040187392,1013342310,906366464,996566638,1006632960,1046511206,404426240,1008212030,1023410176,1665022054,909144126,1932735291,939530240,1008211992,469765120,1819020300,858812472,2000043062,404240384,1008211992,1979711488,1802201983]},{"sector":17,"data":[1979711488,1932735291,1006632960,1013343846,1845493760,809382707,973078648,104752742,1845493775,2016424763,1040187392,2081307760,1041762304,203036696,1711276032,996566630,1929379840,136066610,1795162112,573996907,1929379840,1731599414,1996488704,1812732467,2113929272,2117212236,404229632,236460144,404232192,404232216,404254720,1880627214,5126400,0,471599104,2137204278,1630739839,238116960,1711303708,996566630,1008208896,1046511206,1010571264,2070290022,1011759360,2070290022,1008218112,2070290022,471337984,1665086998,1040187392,473325670,1010571320,1046511206,2134252544,2133933105,1008218112,1046511206,1008208896,1008211992,1043733504,473326435,1585152,1008212024,476986112,1665086998,137763840,1665087006,2131494400,2133933105,470162432,1665086998,2131499008,2133933105,1010571264,1013343846,1013856768,1013343846,1008218112,1013343846,1666911232,1046700899,1712861184,996566630,1008218112,1008211992,913193728,473326435,1665218048,1046700899,1006896640,1013606510,858988080,1985689980,1668093952,1046700899,1819047936,1718576762,906757635,473326435,1008208896,2070290022,3151872,1008212024,1008208896,1013343846,1712851968,996566630,1982601728,1932735291,1932270080,1667723131,909516288,4128799,909515776,4063260,402659328,1013343280,906762240,473326435,0,394878,1818648576,1281768318,1818648591,1332426619,402659331,404232216]}],[{"sector":1,"data":[907739136,456551532,913047552,1815485211,289673472,289673540,1437226308,1437226410,-289673558,-289673541,404232379,404232216,404232216,404289784,-132638696,418912504,875836440,875885812,52,875887864,-268435404,418912504,-197905384,888407284,875836468,875836468,-134217676,888407292,-197905356,16516340,875836416,64764,-132638720,16259320,0,404289784,404232216,7967,404232192,65535,0,404291583,404232216,404234015,24,65535,404232192,404291583,521672728,404690975,875836440,875837239,926168116,2043959,1056964608,876032063,-147573708,16711927,-16777216,888602879,926168116,876032055,-16777164,16711935,-147573760,888602871,-15198156,16711935,875836416,65535,-16777216,419365119,24,875888639,875836468,7999,521672704,989215,520093696,404690975,24,875839295,875836468,875888639,-15198156,419371263,404232216,63736,0,404234015,-232,-1,255,-256,-252645121,-252645136,252645360,252645135,-241,255,1023410176,997090926,1818639360,1853580134,825458432,2016423984,2118057984,1714820180,406028032,2134054924,1056964608,946629740,855638016,1832334131,2118058080,203167824,1040718848,470302315,1664490496,473326463,1664490496,2002073187,405806080,1013343788,2134245376,914315597,905969664,138308463]},{"sector":2,"data":[503316492,506478128,1717976064,1717986918,8257536,8257662,2115508224,2113935384,238575616,2113953848,1880884736,2113930780,437980672,404232216,404232216,1893226520,1579008,404226174,1849360384,7224064,909515776,28,402653184,6204,0,24,100795136,406350884,859534864,13107,208026624,32312,1006632960,3947580,0,0,-1191175168,16777248,1145261056,538976288,220960,0,1617152,16777472,134743552,8,1,0,-1522385920,1522368933,-612484036,1724121051,2139043388,136068735,1042024448,136068735,473832448,137789311,1042024476,137789311,402653212,1588284,-402653440,-1588285,1006633215,3958374,-1006633216,-3958375,1040386047,1013343846,1717976064,1008221286,235669528,940050954,420878384,123826455,1047218182,-696506396,2087731218,1081113727,520552704,17244031,2117867520,1014896664,909522456,905983542,1785347840,436865594,947272704,1847342700,60,8355711,2117867520,406617624,2117867775,404232282,404232192,406617690,101449728,201752447,806879232,405831551,1610612736,8355680,907280384,339115903,470288384,2134785564,1044283136,134749212,0,0,404232192,402659352,339097088,0,1057622528,673742356,1748895744,142478142,1379860736,1983191916,473308160,996568635,806885376,0,403441152,101455896]},{"sector":3,"data":[202911744,806882316,473300992,3546239,404226048,1579134,0,404226048,48,126,0,404226048,201720576,1080045592,1714165760,406087270,941103104,1008211992,1717976064,2117212172,208026624,1013319196,740035584,504135276,2086698496,1013319270,1613765632,1013343868,1281785344,941103116,1986411520,1013345852,1717976064,940312126,404226048,404226048,404226048,404226048,403441200,101455920,2113929216,32256,202911744,806882310,644234240,402659340,1564556800,1044406101,470555648,1663254038,909540352,2117284670,1630739712,506552416,859208704,2083926835,875659008,2133931068,875659008,2016425020,1630739712,523462496,1717986816,1717986942,404241408,1008211992,101064448,1013343750,1818650368,1734765688,808482816,2134061360,2002993408,1667459967,1935885056,1667723131,1664490496,473326435,859012608,2016423998,1664490496,473328483,1717992455,1734765692,1885748736,2087063100,408583680,1008211992,1667457792,1046700899,912422656,135797812,1801675520,573980267,1013343744,1717976088,879159040,1008211992,1281785344,2120626712,404233728,504895512,405823488,16975372,202128384,1007422476,907806720,0,0,0,202911999,0,1006632960,2070290022,1043361792,1849373499,1040187392,1013342310,906366464,996566638,1006632960,1046511206,404426240,1008212030,1023410176,1665022054,909144126,1932735291]},{"sector":4,"data":[939530240,1008211992,469765120,1819020300,858812472,2000043062,404240384,1008211992,1979711488,1802201983,1979711488,1932735291,1006632960,1013343846,1845493760,809382707,973078648,104752742,1845493775,2016424763,1040187392,2081307760,1041762304,203036696,1711276032,996566630,1929379840,136066610,1795162112,573996907,1929379840,1731599414,1996488704,1812732467,2113929272,2117212236,404229632,236460144,404232192,404232216,404254720,1880627214,5126400,0,471599104,2137204278,1630739839,238116960,1711303708,996566630,1008208896,1046511206,1010571264,2070290022,137763840,1665087006,1008218112,2070290022,1785347840,436865594,1040187392,473325670,1010571320,1046511206,1006646784,1046511206,1008218112,1046511206,939551744,1008211992,3938304,1008212024,0,16711680,470162687,1665086998,947272704,1847342700,2131494460,2133933105,2131499008,2133933105,2134252544,2133933105,1010571264,1013343846,2130720256,2133933105,1006659072,1008211992,1111234560,996566630,1712861184,996566630,2120613888,1719542820,1043733504,473326435,1665218048,1046700899,1006896640,1013606510,858988080,1985689980,1668093952,1046700899,1094065152,1046700899,404426240,1477974078,404232304,404226048,806882328,0,1008208896,1013343846,1712851968,996566630,13824,0,0,234881024,476462108,15462,65280,0,1008998400,1008211992]},{"sector":5,"data":[0,6316158,0,394878,1818648576,1281768318,1818648591,1332426619,911962115,1866170207,907739203,456551532,913047552,1815485211,289673472,289673540,1437226308,1437226410,-289673558,-289673541,404232379,404232216,404232216,404289784,-132638696,418912504,875836440,875885812,52,875887864,-268435404,418912504,-197905384,888407284,875836468,875836468,-134217676,888407292,-197905356,16516340,875836416,64764,-132638720,16259320,0,404289784,404232216,7967,404232192,65535,0,404291583,404232216,404234015,24,65535,404232192,404291583,521672728,404690975,875836440,875837239,926168116,2043959,1056964608,876032063,-147573708,16711927,-16777216,888602879,926168116,876032055,-16777164,16711935,-147573760,888602871,-15198156,16711935,875836416,65535,-16777216,419365119,24,875888639,875836468,7999,521672704,989215,520093696,404690975,24,875839295,875836468,875888639,-15198156,419371263,404232216,63736,0,404234015,-232,-1,255,-256,-252645121,-252645136,252645360,252645135,-241,255,1023410176,997090926,1818639360,1853580134,825458432,2016423984,2118057984,1714820180,406028032,2134054924,1056964608,946629740,855638016,1832334131,2118058080,203167824,1040718848,470302315]},{"sector":6,"data":[1664490496,473326463,1664490496,2002073187,405806080,1013343788,2134245376,914315597,905969664,138308463,503316492,506478128,1717976064,1717986918,8257536,8257662,2115508224,2113935384,238575616,2113953848,1880884736,2113930780,437980672,404232216,404232216,1893226520,1579008,404226174,1849360384,7224064,909515776,28,402653184,6204,0,24,100795136,406350884,859534864,13107,208026624,32312,1006632960,3947580,0,0,-16770048,33554431,1145261056,538976288,221472,0,2151680,16777472,134743552,8,1,0,-1522385920,1522368933,-612484036,1724121051,2139043388,136068735,1042024448,136068735,473832448,137789311,1042024476,137789311,402653212,1588284,-402653440,-1588285,1006633215,3958374,-1006633216,-3958375,1040386047,1013343846,1717976064,1008221286,235669528,940050954,420878384,123826455,1047218182,-696506396,2087731218,1081113727,520552704,17244031,2117867520,1014896664,909522456,905983542,1785347840,436865594,947272704,1847342700,60,8355711,2117867520,406617624,2117867775,404232282,404232192,406617690,101449728,201752447,806879232,405831551,1610612736,8355680,907280384,339115903,470288384,2134785564,1044283136,134749212,0,0,404232192,402659352,339097088,0,1057622528,673742356]},{"sector":7,"data":[1748895744,142478142,1379860736,1983191916,473308160,996568635,806885376,0,403441152,101455896,202911744,806882316,473300992,3546239,404226048,1579134,0,404226048,48,126,0,404226048,201720576,1080045592,1714165760,406087270,941103104,1008211992,1717976064,2117212172,208026624,1013319196,740035584,504135276,2086698496,1013319270,1613765632,1013343868,1281785344,941103116,1986411520,1013345852,1717976064,940312126,404226048,404226048,404226048,404226048,403441200,101455920,2113929216,32256,202911744,806882310,644234240,402659340,1564556800,1044406101,470555648,1663254038,909540352,2117284670,1630739712,506552416,859208704,2083926835,875659008,2133931068,875659008,2016425020,1630739712,523462496,1717986816,1717986942,404241408,1008211992,101064448,1013343750,1818650368,1734765688,808482816,2134061360,2002993408,1667459967,1935885056,1667723131,1664490496,473326435,859012608,2016423998,1664490496,473328483,1717992455,1734765692,1885748736,2087063100,408583680,1008211992,1667457792,1046700899,912422656,135797812,1801675520,573980267,1013343744,1717976088,879159040,1008211992,1281785344,2120626712,404233728,504895512,405823488,16975372,202128384,1007422476,907806720,0,0,0,202911999,0,1006632960,2070290022,1043361792,1849373499,1040187392,1013342310]},{"sector":8,"data":[906366464,996566638,1006632960,1046511206,404426240,1008212030,1023410176,1665022054,909144126,1932735291,939530240,1008211992,469765120,1819020300,858812472,2000043062,404240384,1008211992,1979711488,1802201983,1979711488,1932735291,1006632960,1013343846,1845493760,809382707,973078648,104752742,1845493775,2016424763,1040187392,2081307760,1041762304,203036696,1711276032,996566630,1929379840,136066610,1795162112,573996907,1929379840,1731599414,1996488704,1812732467,2113929272,2117212236,404229632,236460144,404232192,404232216,404254720,1880627214,5126400,0,471599104,2137204278,1630739839,238116960,1711303708,996566630,1008208896,1046511206,1010571264,2070290022,1006646784,2070290022,1008218112,2070290022,1008211968,2070290022,1040187392,473325670,1010571320,1046511206,1006646784,1046511206,1008218112,1046511206,939551744,1008211992,3938304,1008212024,1585152,1008212024,470300160,1665086998,471079936,1665087006,2131494400,2133933105,1979711488,2003582747,742211328,1869442110,1010571264,1013343846,1006659072,1013343846,1008218112,1013343846,1111234560,996566630,1712861184,996566630,1996502528,1812732467,907830072,473326435,1665218048,1046700899,1006895104,1014398574,858988064,1985689980,1731599616,1547072363,1819047936,1718576762,404426243,1477974078,1008209008,2070290022,3151872,1008212024,1008208896,1013343846,1712851968,996566630]},{"sector":9,"data":[1982601728,1932735291,1932270080,1667723131,909516288,4128799,909515776,4063260,402659328,1013343280,0,6316158,0,394878,1818648576,1281768318,1818648591,1332426619,402659331,404232216,907739136,456551532,2120613888,1719542820,289673472,289673540,1437226308,1437226410,-289673558,-289673541,404232379,404232216,404232216,404289784,-132638696,418912504,875836440,875885812,52,875887864,-268435404,418912504,-197905384,888407284,875836468,875836468,-134217676,888407292,-197905356,16516340,875836416,64764,-132638720,16259320,0,404289784,404232216,7967,404232192,65535,0,404291583,404232216,404234015,24,65535,404232192,404291583,521672728,404690975,875836440,875837239,926168116,2043959,1056964608,876032063,-147573708,16711927,-16777216,888602879,926168116,876032055,-16777164,16711935,-147573760,888602871,-15198156,16711935,875836416,65535,-16777216,419365119,24,875888639,875836468,7999,521672704,989215,520093696,404690975,24,875839295,875836468,875888639,-15198156,419371263,404232216,63736,0,404234015,-232,-1,255,-256,-252645121,-252645136,252645360,252645135,-241,255,1023410176,997090926,1818639360,1853580134,825458432,2016423984,2118057984,1714820180]},{"sector":10,"data":[406028032,2134054924,1056964608,946629740,855638016,1832334131,2118058080,203167824,1040718848,470302315,1664490496,473326463,1664490496,2002073187,405806080,1013343788,2134245376,914315597,1040384256,1047751527,503316544,506478128,1717976064,1717986918,8257536,8257662,2115508224,2113935384,238575616,2113953848,1880884736,2113930780,437980672,404232216,404232216,1893226520,1579008,404226174,1849360384,7224064,909515776,28,402653184,6204,0,24,100795136,406350884,859534864,13107,208026624,32312,1006632960,3947580,0,0,542330112,542330692,1936876886,544108393,808463925,692267040,2037411651,1751607666,959520884,825045304,540096825,1919117645,1718580079,1866670196,1277194354,1852138345,543450483,1702125901,1818323314,1344285984,1701867378,544830578,1293969007,1869767529,1952870259,1819033888,1734963744,544437352,1702061426,1684371058,1292504352,1869767529,1952870259,760433952,542330692,539578920,1145261088,1936278560,2036427888,1852786208,1766203508,168650092,1142969165,1444959055,1769173605,891317871,540028974,1126777640,1920561263,1952999273,943272224,959524145,1293955385,1869767529,1952870259,1919894304,1766596720,1936614755,1293968485,1919251553,543973737,1917853741,1919250543,1864399220,1766662246,1936683619,544499311,543976513,1751607666,1914729332,1919251301,543450486]},{"sector":11,"data":[1664490522,473326463,1664490496,2002073187,405806080,1013343788,2134245376,914315597,905969664,138308463,503316492,506478128,1717976064,1717986918,8257536,8257662,2115508224,2113935384,238575616,2113953848,1880884736,2113930780,437980672,404232216,404232216,1893226520,1579008,404226174,1849360384,7224064,909515776,28,402653184,6204,0,24,100795136,406350884,859534864,13107,208026624,32312,1006632960,3947580,0,0,-16770048,33554431,1145261056,538976288,221472,0,2151680,16777472,134743552,8,1,0,-1522385920,1522368933,-612484036,1724121051,2139043388,136068735,1042024448,136068735,473832448,137789311,1042024476,137789311,402653212,1588284,-402653440,-1588285,1006633215,3958374,-1006633216,-3958375,1040386047,1013343846,1717976064,1008221286,235669528,940050954,420878384,123826455,1047218182,-696506396,2087731218,1081113727,520552704,17244031,2117867520,1014896664,909522456,905983542,1785347840,436865594,947272704,1847342700,60,8355711,2117867520,406617624,2117867775,404232282,404232192,406617690,101449728,201752447,806879232,405831551,1610612736,8355680,907280384,339115903,470288384,2134785564,1044283136,134749212,0,0,404232192,402659352,339097088,0,1057622528,673742356]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[-1207745348,251987307,-754667264,-1931965464,767624129,74649452,-670836489,567102132,1929394920,-352210940,742293527,510918916,-927315020,37141251,141697485,567102900,567102644,-1341844038,845825,767226603,321540,-387203022,567085492,-1106895165,2028470401,222068736,1015046516,-2146667217,1967063420,738655750,-1957893372,54836950,1191397567,54988426,-1527517902,-919342453,1010936492,1241085197,54988290,55053960,-1996273474,-1946011594,-1946011122,-1946010098,-402505202,477233202,-2029795138,520494839,178957319,-117803584,-1161617657,-2014837449,-185861633,-402303814,-335937666,540847339,154991476,-1018235020,-402388034,57802758,-1023395864,2550012,738627110,1375679232,1202476886,-12240346,-152960395,1952013919,434655500,-2144970496,-478871491,-24394759,452695,-2013713575,1034994681,-1070464277,-234815303,50094,0,1044,1056,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537]},{"sector":15,"data":[65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,65537,52445999,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1124073472,1347636559,4014917,538976256,538976288,538976288,538976256,538976288,538976288,1634683904,1629516644,1869770784,1835102823,1868718368,1948280182,1713399144,1953722985,1261712928,543584032,1869440365,539785586,543452769,1936618866,1701344288,1869770784,1835102823,218762542,1095715850,1481197124,1919179552,979727977,1634753373,1717397620,1852140649,224750945,1426722058,1277191539,1178878287,1948276809,1869357167,1629512801,1869770784,1835102823,543582496,544567161,1702257000,1667592736,1702259045,1752440932,1701650533,1734439795,571084133,1801675088,1713398885,543517801,1920102243,578056309,1701345056,1920213102,1735289209,544175136,1684107116]},{"sector":16,"data":[544500000,1814064745,1830844271,1919905125,168636025,1920091428,1696625263,1969448312,1735289204,1701344288,1986619168,1881173605,1919381362,1160015201,1919906418,1867391034,1869770784,1835102823,1835101728,1768366181,611214710,1869771333,1830828658,1769173865,1126197102,1347636559,-14400699,1258594377,-531823424,83906308,1392844881,1878984000,92296965,1527095385,-530774592,-1024251,1661345889,1617233472,-1022202,1795596393,-529725760,117468934,1929850879,-260765888,125859839,2064097401,-528676928,134250247,-2096619391,1619394544,142640904,-1946161015,-527628096,151031560,-1828114433,1620379968,159422217,-1693867879,-258143808,167813119,-1559617375,1878985280,-1005814,-1425366871,-525530432,184594186,-1291112449,-256570560,192985087,-1156865863,-524481600,201375499,-1022615359,1623526464,209766156,-888364855,-523432768,-995572,-754114351,1878986048,226547469,-619859969,-522383936,-991475,-485613343,1625624128,243328782,-351362839,-521335104,251719438,-217108481,-252375232,260110335,-82861831,-520286272,268500751,51388673,1627783153,-981232,185643007,-519237439,285282064,319889681,-250277567,293672959,454140185,-518188607,302063377,588394495,1629819457,310454034,722641193,-517139775,-970990,856891697,1630868289,327235347,991142201,-516090943,336592659,1125392705,-60351,255]},{"sector":17,"data":[]}],[{"sector":1,"data":[18,132112448,1380976700,538976334,2367520,-532676608,149555183,827609164,538976288,54,134209600,1347160452,538980948,-57312,-532611073,171051023,861163596,538976288,-65536,-1,-1,-1,-1,-1,0,0,65535,-65536,-65536,0,65535,-1,-65536,-1,0,-1,-1,-1,65535,-1,-1,-1,-1,-1,65535,0,-65536,0,65535,65535,-65536,-65536,65535,-1,65535,-65536,-1,-1,-1,-65536,-1,-1,-1,-1,-1,0,0,65535,-65536,-65536,0,65535,-1,-65536,-1,0,-1,-1,-1,65535,-1,-1,-1,-1,-1,65535,0,-65536,0,65535,65535,-65536,-65536,65535,-1,65535,-65536,-1,-1,-1,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536]},{"sector":2,"data":[-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-65536,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]},{"sector":3,"data":[0,1380974592,1163152969,1162108754,213843,79168540,99681621,842268702,538980656,16785440,13893632,65537,70778881,74974270,4791045,453326363,907740233,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,842334238,538980912,16785440,131073,65538,81002496,85263636,1415256844,5,453050367,1528499254,1364,16776960,13851,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,872422912,540553266,2105376,33554689,16777728,1895825408,-1325035259,1226509061,55122698,453134619,54,0,0,0,0,1226509056,122231566,453396763,54,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1845501440,1852730990,7237230,1]},{"sector":4,"data":[16777472,218104064,1309019654,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-352321536,1661413126,67608327,17233664,554109703,16776967,538976256,538976288,536870944,538976288,2105376,-256,-1,-1,-1,-1,-16776961,83886079,1023881984,1560758023,16776967,538976256,538976288,536870944,538976288,2105376,-256,-1,-1,-1,-1,-16776961,83886079,2030530304,-1727560953,16776967,538976256,538976288,536870944,538976288,2105376,-256,-1,-1,-1,-1,255,67108864,-1257788672,-720912633,16776967,538976256,538976288,536870944,538976288,2105376,-256,-1,-1,-1,-1,255,0,1392508928,1243516243,1200565760,1200369166,1405836048,-1675719341,1200565760,1200369166,1405836048]},{"sector":5,"data":[-299987629,1200565760,1200369166,1405836048,1075744083,1200565761,1200369166,13327120,1275857160,1802127949,198650877,198642647,317460240,394859694,-59380,1397753374,1448563281,1048649486,11151988,683159925,-773795584,-773795360,914960096,915080846,-293393806,-610062808,914959879,-1929771043,-1899197486,-69170218,-1909028050,-1085189626,-1923675249,771770910,138020551,-2094071809,997588799,509742,48896,41912622,72322094,771957439,-1087864951,-1993473168,-1195429249,2139696643,110149436,310348078,1044891438,-953286656,4854855,771887593,1962950531,260124178,-2094104576,1963006591,784347910,-385336669,102629878,1381061456,521033303,712261249,829751466,-788518728,-773795360,786485728,109983369,712128139,774434435,772266915,131937929,-1949135622,-1948873012,-1959855136,1376161334,193970001,-1675719337,113716736,-63430,-12614866,-953276555,-1090518777,-1993474030,-1943141761,2139948111,-1928917486,-819244977,4863629,-216894323,2011800622,1065561601,772961537,-2147479679,444564270,856061185,983772864,22866184,1397753374,1448563281,1048649486,11151988,683159925,-773795584,-773795360,914960096,915080846,-293393806,-610062808,914959879,-1929771043,-1899197486,-69170218,-1909028050,-1085189626,-1923675249,771812894,138020551,-2094071809,997588799,34064174,2408192,41912622,72322094,771964095,-1087864951,-1993473144,-759221633,2139696643]},{"sector":6,"data":[111918908,310348078,1044891438,-953286656,15602759,771803625,1963081603,260124178,-2094104576,1963006591,784347910,-385336669,102629550,1381061456,521033303,712261249,829751466,-788518728,-773795360,786485728,109983369,712128139,774434435,772266915,131937929,-1949135622,-1948873012,-1959855136,1376161334,193970001,1075744087,113716737,-63430,-12614866,-953271435,-1090518265,-1993473994,-1943141761,1455359055,2139696643,60866344,847218990,772009151,-1086554231,-1993472314,-953281921,15943,340248366,485163328,1065561744,772961539,-2147479679,444564270,856061185,983772864,-1878922488,2009411324,2139303426,1500905222,142574382,777156095,-1006471227,592971324,-352094784,1476825156,1979711293,-31995,1448556404,-1929377607,1955400317,1587999498,1976116063,1166747167,1200172550,784370694,638076809,772294027,-1945483383,1200172736,-1878594804,-348273626,2143563453,1166681614,1947417602,-1090056680,79235103,1974399488,310793,-347147989,1592496157,1166681744,-1090056690,96012323,1974399488,376397,-2091978453,-167574330,-1003569101,-13758849,772286628,638484420,-2147269237,-1993997876,1048773445,1962879604,1950253848,158662698,712246983,166396074,-94742128,-510930290,1516199675,123231065,1398000415,1606692446,1560227342,-13739258,784534111,772702148,1025132427,57999360,1023610601,57999363,1023612649,57933826,771948265,622610315,57950208]},{"sector":7,"data":[-1107102231,521017584,1223,306547494,1442989193,637826189,-1995553397,642139652,-1995422325,1978162692,1200500238,2139827768,1334521402,1200303664,75036,-1959918476,-1959911345,-964491180,1976705802,45476099,125159715,122732595,781195755,620905867,259326208,1195853639,53368838,122696775,786295625,1023558795,292814832,474972462,-1003601920,-1993994625,-2098658491,-115454,-1959917451,-1071439804,-964488331,1195854378,1476806471,877069102,-347535536,-1959898724,-1071441340,-2094133643,1963006079,21948675,22997337,411009838,-385649407,-1959919477,-1071440828,-380042123,992870728,58081351,771828713,1025131659,57933825,771825641,591286155,772568265,620905867,58000384,771812841,150913,1284189700,1278946844,772044320,1361071243,1465261574,608471854,-1959911600,118366836,511675182,444435246,1048511278,1583326451,777586463,773868585,773606441,773999617,1497255681,411009838,-385649407,-907411644,1149971968,146714,-1444347020,1376147712,784829271,-784709845,-1959898904,-134005633,1510312750,777513681,590905227,772240594,1244954371,123204981,-1959854285,-1071440820,-2010774411,-134004723,1925266248,1516199699,1284189703,1277767200,1275145760,-18683614,992921643,74850380,541887278,777395793,1344554123,1955278367,-1527556318,1495227999,778030851,-1959916151,690888780,19800140,1516184140,-22353657,474778414,541866798,-1959918474,690888780]},{"sector":8,"data":[690888780,19799116,-346480052,777621525,638484420,201541063,1333866112,-381681636,-2094137107,1962942588,-26285821,-1071425530,1659569013,508647312,724486027,-388941241,1011286830,-1959855989,-1959911348,1354826501,507773742,910637870,525866870,-1003593895,-953807233,-2146696379,474972462,-1628880896,-1959897344,773740093,1344554123,1955278367,530903842,777543518,1495205257,1300311647,-385744894,1460076036,243254318,541362990,306546982,574917422,239438118,608471854,272992550,38127142,1392924168,-1003594157,-13758881,123405916,1610559070,1166747146,-2147474173,179832692,1166616192,621240067,141918208,38634286,-38868735,474972462,468402176,-53548656,243254318,54904614,199983114,2143563408,1170679310,-1023410173,440896302,1962934333,-1870927101,1946157373,277768,2045446260,160295056,1810563955,1975854736,621054739,1601503233,587353227,772437449,4720327,-1964376322,-775845118,-1194816536,-920420349,1967737460,71600916,213434403,775779712,4720327,1726611438,2139303426,57999640,-1198510613,-789118975,474423598,847219502,710380334,998247096,-351176758,521048110,-1191433239,82542602,-2147239792,-1207776791,154009601,-1959912377,-1959909249,-1031069609,575089454,179882043,1474393984,-18350,1191545134,-126531001,1465081690,1448171090,474450734,1946157349,2005610005,1149972004,1073751298,1178994804,1195853382,1465839595,105155419,1962934077]},{"sector":9,"data":[1498566940,118380294,123711474,1493923161,1532975710,-377484616,-1993473450,1128678919,1237332803,1582945141,-1956946086,2005610186,1200303652,75036,-1959918475,-1993462153,1381448311,1465078102,-2147436453,556716279,-2127691196,-16842140,40141102,-1959854593,-49916,777075572,-108851317,628447743,106517073,-234418601,1493655471,1499138933,-1201710498,-404127734,126430721,38568238,233537536,1532515216,474972462,1347649536,1179010651,860046150,-1653257792,1516132699,-1202302113,-789102592,474423598,418389645,17286958,1204235776,771751938,542663,180585216,-920399309,-1959904652,2425412,772764800,620905611,527712256,40141102,-1959886849,-49915,776081780,-2127690357,16777804,239569198,1193984899,1179010631,-1024767674,58053155,1577097705,1465275227,236848721,-1960899065,1114934771,74746670,-1929218931,773386302,-2096605815,2106395335,571654,-1527556266,-947691937,-243971542,1599670047,-1928771608,-2095517666,-2094134589,1962607231,-2146781176,65624926,777739777,35276743,1204235776,1358954558,-1959897513,-1959904129,-1959908785,19209287,772043776,589320075,773289161,620905611,91488512,378670,1179010560,1229408070,1600054763,-1878398119,-953263266,203335,475499310,-142606152,784475088,857491337,14844352,10283392,771791337,1855361,1334521352,1976116010,9693443,780110638,38112046,1962934565,1195853578,-260748985,781221355]},{"sector":10,"data":[3178371,213387895,1218653824,-1872631040,780086062,-782766127,785353711,590890891,772240585,1228162819,778040693,775716611,-1959916149,-970059145,-970058748,772276804,772951177,935111,1149840896,1599296272,-561314034,106823470,173932334,1149972059,-2147474173,179831668,2445440,192174208,243254318,54888742,784539406,774799243,589975435,772830409,620905867,762650624,1195853639,787510601,774143883,589320075,-352094775,-1959882732,2425413,-352095200,1195872268,1967736647,-339725331,-1959897421,-963964297,1342183173,773026957,1178993801,1577880622,33867566,93007360,38045998,772214366,236093323,29550879,440896302,1962935357,-2146650106,1023519465,443875329,474450734,1963458597,-2146650106,771833065,-14915711,-373279753,3998085,-385649408,54392996,-352094976,37589059,-1207536640,384401420,1200303617,1073751324,-1070398092,-1929312023,-2095517634,-1959916857,-12778939,1025078527,108331006,-377487176,-1959919379,-1071440315,12060276,14674304,612338478,678923054,38112046,1950351397,1195853576,-347716025,1334521583,1328229920,1200303650,75036,179834228,1976116096,11266307,781195243,774799243,775059339,-1205186677,-920420342,-1830222987,16824320,218234893,-789117952,38084910,772049710,-12778103,-1207142913,-789114880,38084910,781198827,150913,1166749200,-2147474174,12064117,785446688,771900705,3178371,-2094135948]},{"sector":11,"data":[1207829093,1179076423,-920434362,-1959875723,-920437169,503722100,118380374,777133838,773750667,1461351819,377326382,-1976643021,1121387284,778020083,1511544201,119496287,1044891438,-1070399488,1351636459,474450734,1946157349,2139827723,1334521402,-1877873888,780110638,709856046,811043630,678744611,611633443,38112046,1946222629,1166749204,1073751298,-953283723,788528901,148935,1195853568,-663402169,1204235864,771751998,18499527,2143563264,1166616078,-1959869693,20781639,1023964160,57933828,-402483991,57869303,503482089,326485286,62393483,49906560,-383843212,1418396284,-359678,-383843211,773784176,774799243,589975435,1360164041,-1959895465,1958886149,1195853615,-227194553,2139827801,1334521380,1976116000,36956419,777934673,-1036319349,-907476107,1195853568,-277526201,35383641,444564270,774272260,-2125572215,1962974459,1245089035,1418276352,33155406,4914049,915212405,-1993473892,-387363244,2139303425,2020868144,38112046,1962934565,1333866095,1512046620,1465274706,-1959866069,-769443769,53348212,-347458489,2133536501,787468590,775716611,-890761845,1594258433,954947934,2005610128,80096786,1153838612,-1993471998,-953281972,3652,272927022,241128275,786336519,772169215,1527406079,54823726,626613855,74743808,24504665,1448563290,2139827718,2106273310,-339725544,-2094100363,1963203199,1468608038,-1661238962,-1928628992,771770934]},{"sector":12,"data":[-380742519,-75431621,141885514,10237581,1314162990,1510025961,106321746,-2094083797,1963006079,1200303648,1959928632,1191390727,-109753804,1477376139,-405669845,-405674031,451667921,2139827856,2106273310,-339725546,-769421311,-1976694668,1257767685,-18287381,-352095232,-1959882663,-970059145,-970058748,856162884,227159753,411009838,772436993,-1189983095,132841473,1153904272,1191182610,243042606,-1993451506,1398214724,118382419,-13705589,-13760931,1599801949,54823726,1971322917,-1066055415,-346071545,1577553928,-1997973153,777410816,622610315,12066816,218330144,-789118975,38019374,1179010630,787838281,150913,1200303648,536880412,-2094134412,771818061,-14915711,777412319,992247691,773354743,589320075,-1206881079,-789110784,38084910,1195853639,1593144649,2139827798,1962359598,1334521368,1959338794,536918032,556716279,1195835973,1967736647,-1070375179,-1198518037,183205895,-2146781040,-1198521109,-1003585533,-1993994625,113443653,2005610070,80096786,1153838605,1398213122,118382419,-13705589,-13760931,-147977635,-2147482812,123625307,-1959911741,71113287,772830464,642664331,1024685509,1148518399,1032866795,1467285505,326485286,780110638,709856046,276089123,38112046,1965031461,1195853609,-260748985,612338478,542083886,276089123,38112046,1965031461,1195853581,-260748985,-343930952,-1959882727,33867525,38045952,183222323,-2146781040,-1198521109]},{"sector":13,"data":[-1003585533,-1993994625,-1021377723,1200303646,81178,71108724,-385649664,-987365234,777393013,774143883,774000523,-1927260277,210305652,259311907,-1996125394,1195835972,1179010887,787344201,773869451,774000427,53106571,-1991883055,1959338772,93007375,1191330953,1179076423,-303347386,780110638,709856046,259311907,-1996125394,1195835972,1179010887,1592650569,542608174,710345518,28918338,-1981623552,-2084556012,259458298,-343930952,179867658,-1878725760,780141496,638484420,520308105,1465274563,-1959918050,-946994049,41913134,-134150472,-147124109,-561247115,-147077236,-336001931,133730306,1482579743,195,0,0,65535,0,2752512,65535,0,0,65535,0,0,0,0,0,0,-65494,0,0,-65536,0,0,0,0,0,0,2752512,65535,0,0,65535,0,0,0,0,0,0,-65494,0,0,-65536,0,0,0,0,0,0,2752512,65535,0,0,65535,0,0,0,0,0,0,-65494,0,0,-65536,0,0,0,0,0,0,0,1191116800,542395983]},{"sector":14,"data":[8224,0,0,0,538976288,538976288,0,0,0,0,0,566624256,573514227,577184341,580854413,585441996,594944841,599073679,606282695,0,613491819,617161891,623912155,632759669,637216217,644228637,652289670,659695369,0,552730624,561783126,565453198,2752512,720896,1245197,42,0,0,0,102629376,1381061456,512579159,118364400,74958118,38767398,139954982,-1676244690,1976705818,113716746,2103798,638391785,19203979,-385649408,-2091712373,-1070396733,435725102,436380462,436511534,445555502,445686574,445817646,436773678,436904750,445948718,446079790,446210862,444900142,-2113485010,771762714,445384391,-953810902,-327097,71797030,273123622,306678054,340232230,357009446,373786662,390563878,407341350,508004646,541559078,575113510,608667942,642222374,675776806,1244316547,-1166683613,-1014803621,378220042,-1960437092,-29556153,638481919,589186955,637957568,-16627769,717456383,1976705866,-1014801439,727208202,100740801,124983952,-1845067474,1360003098,58050851,772550121,1025150113,57999402,1032868587,57868303,1023483881,57999375,1023484905,57999376,1023515625,57868321,1023610345,57999393,1023611369,57999394,1023667433,57999395,1024168425,57868329,1023469545,57999401,646978539,167921607]},{"sector":15,"data":[198240640,-133773522,771751961,445384391,2045313060,44117759,-1801245158,378220058,-1993467388,1025152534,242614271,1979710083,1204233737,-377484286,-1031077757,1360002853,-754973511,-494839328,53407744,1931121670,12747012,-1801245168,378088986,724441750,1931120646,15368454,777613840,445781547,1933595250,12747012,2009152272,-494841280,-1185869825,-489488380,1522664281,-1031732109,-494858240,1381036032,108249387,268495489,-1071445902,-769452683,1482297717,63449928,113716976,6796,1526649833,737215320,-20256311,33998638,788528922,436471495,-953745409,-2146696633,-1959861269,52071486,-1510002945,777198126,446437003,38243110,1962933053,-1873089789,239569702,403061550,506885402,521032022,-1927671618,146343551,1504113408,561323870,38258470,-1590755332,-1993991668,-1590819769,-1993991654,-1590811065,-1993991652,434841671,144780944,-49894,-1590816907,-12772854,637957631,134367175,520300160,1959928650,781314818,445384391,-379912176,-1590755800,-1557259768,-1590814060,-1557259766,-1070392682,446210862,-1774286034,633834266,-1185869825,-523042812,15171929,100871920,74652308,268486529,445948718,-1774286546,378220058,642980508,1023559563,1500905468,679447334,-14301301,79253775,1507906304,-268376191,642188070,-947846029,992874496,1998231102,-352095180,992907274,1998230534,773354536,446170823,-1557200897,-1993467244,773494334,446307977,781193195]},{"sector":16,"data":[588945569,637957568,201476039,-769439104,52823412,1536486175,-1776907474,-1801376230,-49894,-92075915,-385649153,724435071,1931120646,15368454,779710992,445781547,1933603442,12747012,2009152272,-494841248,-1185869825,-489488380,1522664281,-1031732109,-494858240,1381036032,108249387,268495489,-1071445902,-769444491,1482305909,63449928,-1734267152,1958748954,113716746,1120908,788331497,445384391,-953286621,35291654,113716736,727684,1526522857,737215320,-52762167,446210350,343261219,788529080,773458083,639240867,201476039,-54597248,512437843,-953804134,-2146696633,-55645861,-1942058194,788464410,439264767,1461423807,512437843,-1590814054,-1993991650,-1590816697,-1993991648,-1590816185,-1993991646,-953803193,8263,575129382,-953810944,9287,38258470,-2094596099,1963000959,1048784395,1963727502,-1876104408,75465510,778401026,438976131,772502784,445529731,-348162808,-2094100413,169512510,954938485,1204233872,780143618,639247520,773080968,639247776,773146504,639248032,773212040,639248288,773277576,639248545,-350730359,-953774057,-2146696633,439001390,440895782,439132462,474450214,438477102,175489059,-1945712850,-352317414,-953249768,572165126,-1902039552,1191257626,637956902,2639745,784554768,446437003,113716819,6806,-1744386258,771751962,445791883,-14301301,79253775,1507906304,-268376191,-1878654162,-2130414822]},{"sector":17,"data":[772800711,773492899,445791881,38243110,1962933821,-180967,-1343683724,1200301568,1958748958,1204233745,-335544830,-1960407028,-1071440313,-1813445771,2139825664,633834280,-1185869825,-523042812,15171929,1191388912,-2130414810,772800711,445791803,1819623282,-1878639826,1966502426,2005476963,1603020322,1200301604,1942043422,1204233773,637534238,773867401,446039609,-1557265293,19274390,947070535,675774758,820711424,1204233872,-343929854,-1054109657,508004646,542083366,-1777432274,1325475354,637956902,2639745,1958748944,113716743,-58728,1243546406,57987619,788477417,52074145,784870384,446185091,772240640,445384391,-379912176,-2094073188,135919678,225711730,38258470,-953253878,572126726,737215232,-92345911,1229325451,-130118866,-2059784679,276044282,38258470,146309132,-123523584,-94443239,1049177671,-8185352,-385649656,-953222576,1737734,113716736,2300556,-2113485010,-385866470,76282424,-920434362,-1574039947,-953279998,639273990,-98375424,-1557247674,-953279998,656051206,-99424000,1229325451,436445742,-1945712850,-385865958,76282368,-920434362,-1574039947,-953279996,672828422,-102045440,-1557247674,-953279996,689605638,-103094016,1229325451,436576814,-1945712850,-385865446,76282312,-920434362,-1574039947,-953279994,18516998,-105715456,-1557247674,-953279994,588942342,113716736,137858,-1946575895,776553988,773457826,445384391]}],[{"sector":1,"data":[-953286621,35291654,1976115968,-109123325,117386822,591993476,-385649207,776403312,444860159,113716809,137868,-1946591255,592004612,772699593,773458082,445384391,1240006659,776554233,773458083,445384391,971571204,1174703097,161623625,113716762,268940,-1946605591,592004612,772699593,773458594,445384391,300482565,776554233,773458595,445384391,32047110,1174703097,195178057,113716762,400012,-1946619927,592004612,772699593,773459106,445384391,-639041529,776554232,773459107,445384391,-953286648,1707526,-121444096,1229325451,437101102,-1945712850,771754010,437126855,-1444347904,1048784632,1980242446,1204233748,780143106,435553991,-251461599,-1914058453,571640,235285294,1942502170,118359577,773460159,437140995,235798830,128250650,-385875783,106035304,280954638,1040395802,-930407922,772252915,437126657,784870233,445384391,1172897801,1174703096,1976116041,413281806,113716762,662156,1190670313,413347401,113716762,2300556,-2113485010,-385873126,76281880,-1574024890,-953279975,588942342,113716736,727682,-1946681367,592004612,772699593,773462690,445384391,-370606068,776554231,773462691,445384391,-639041523,1174703095,463613513,113716762,858764,-1946695703,592004612,772699593,773463202,445384391,-1310130162,776554231,773463203,445384391,-1590820849,776477190,588908195,-1207011904,-1557200897,-1557259768]},{"sector":2,"data":[-1981212150,144781047,1975526170,178335251,1975526170,-18421,436773678,436904750,-1946719255,776553988,773463458,445384391,-1590820849,776477190,588908195,-1207011904,-1557200897,-1557259768,1105795594,144781047,1975526170,178335251,1975526170,-18421,436773678,436904750,-1946737687,592004612,772699593,773463714,445384391,233373714,776554231,773463715,445384391,-35061741,1174703094,530722377,113716762,1251980,-1946752023,592004612,772699593,773464226,445384391,-706150380,776554230,773464227,445384391,-974585835,1174703094,564276809,113716762,1383052,-1946766359,592004612,772699593,773464738,445384391,-1645674474,776554230,445515463,-1557266426,-1071441374,-2094133132,18484286,-2094132620,35261502,-953281420,555387910,-160241408,-1945712850,-385870054,-953223576,488279046,-161552128,-1912158418,-1962932710,776553988,773464994,588915361,772830400,437010051,772961281,437010051,773092354,445384391,770244641,113716982,1514124,787882985,445384391,434700317,784348150,773465250,773465506,773465762,773466018,773466275,445515519,1229325451,438608430,438477102,581119560,772437018,445384391,-504823784,113716981,2169484,787863529,445515519,1229325451,438673966,438477102,581119560,786330650,445384391,-1243021287,117386997,76225166,-1574024890,-1590814170,776477218,1947869859,113716924,1710732,787846121,445515519]},{"sector":3,"data":[1229325451,438805038,438477102,581119560,781874202,445384391,1911095323,117386997,76225166,777013574,1209672353,438477614,-385649320,-920387721,-1574039947,-953279960,471501830,-179902208,-1912144082,776554010,773466275,1209672353,438477614,-1945712850,-385867494,-13699800,-1961193978,776553988,773466530,1209672353,438477614,-1945712850,-385867494,-13699832,-1961193978,1346979332,438477102,581119560,58021914,587256809,772699593,773466786,445384391,-571932642,117386996,1229331086,439001902,438477102,581119560,1048784410,1962940970,113716746,2169484,787789801,445384391,-1377239009,117386996,76225166,-1574024890,-1590814165,776477218,773464739,438976131,785937664,445384391,-2048327647,117386996,76225166,777013574,1209672353,438477614,-352094888,-920416175,-1574039947,-953279956,538610694,-195368704,-1912144082,776554010,773467299,1209672353,438477614,-1945712850,-385867494,-13700036,-1961193978,776553988,773467554,1209672353,438477614,-1945712850,-385867494,-953224164,555387910,-200087296,240584274,445038343,771752890,639272097,124912955,1194161226,653585223,-802482805,208915003,-2079456978,737215258,-1876694071,-2078932690,737280794,-2103365942,-1935462886,-1878004966,643434335,167921607,-339137664,123703300,-205854374,-1942060242,58007834,1509364200,1499094878,520575067,195]},{"sector":4,"data":[0,0,672006144,131072,1039859712,91532608,-265355474,1398100007,1448563281,-953285090,2618374,244067840,-343201780,1962998403,-1675719408,1245089024,914959872,434841588,33194896,512558965,233505006,49972112,512558709,32178496,-2096270599,91619325,-352305176,12052483,-197752018,-24929241,772830208,773474187,773473417,776882059,-1655815031,1600003847,-1956947622,138841068,-31128206,218360831,1183383553,-2041029368,-2094084128,1963203199,-1869574027,440911662,-1959919615,-41726353,860124415,20310208,947186235,271485230,-1928917464,774371134,772702089,-401586292,3992524,28842868,17950720,-197229778,175374375,512437843,15214580,-335979775,485226527,-1206260744,-253231103,1048784384,1946167284,-1959898358,-400034786,-128253729,1313326894,784596991,68845443,-970059915,19396102,440911662,300613633,2139303568,141885722,-167328210,32178215,-397053191,1349648467,-1528250317,1961507584,780742196,118368272,670514829,243239214,273124398,-348460974,1946172506,686553347,440911662,-2144468988,2618942,-1993472907,-336048553,1204235795,771752986,670449280,772044032,-129083511,12210883,1334521344,2139827754,16417582,-108849803,772830208,91565369,-352321094,80184300,-2082018487,578093306,542083886,612338478,1962998403,16352021,959320180,-1174047443,-320143359,1225049987,-92018965,-117213952,1526202859,-17725]},{"sector":5,"data":[709856046,780110638,1979710083,16352035,-147972492,536871493,-1959915404,81173,-953227659,268436037,-947659029,-655668988,1979710083,1334521392,2139827744,-359644,-108846219,773747712,148983,772830240,20780427,786855168,148935,-2082542832,-347536185,50136,0,0,268369920,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65536,262146,8,0,0,0,0,0,0,0,-65536,-1,65535,0,26345472,33161670,39977518,46269074,721650,0,16781313,-1293397216]},{"sector":6,"data":[-402164985,-346355496,777752657,1962950531,712030232,78760243,1494149331,775995651,-399871325,216734563,1048784528,1929456546,-1876432125,-507574514,361440774,-1575581394,1048784427,1962945442,213406540,178944,-768423629,-2048327754,-1590797560,1494100594,4047147,-2130087408,756023489,-219475968,-523116335,-523116335,243254318,239453990,-1993998336,-953806771,-59579,54904614,568950787,83526402,113707382,65608,1469077739,58053155,646991851,-1962771061,-1107029490,521012244,-1959897519,1959338804,-1960421597,-1960442755,41782541,41192790,1600038643,-555219083,-346464767,1179016726,-722777767,587221153,-955877952,67127302,1599692288,-347453625,-1590796374,-1071436892,-1494678667,-1090056704,-919402783,-1960423081,992871037,1915462158,8448259,2106271319,227223042,771915149,-1929218107,-1494021516,-352095137,1398378591,-620504693,-1433957586,101264939,1364929446,776107917,1023558795,779485183,38112038,38045998,71666470,71600430,105220902,105154862,138775334,138709294,172329766,172263726,-352145688,518557715,2139303428,57999642,1502611179,-1877415073,1197424985,-9377465,-2094112935,1946229375,1204235782,771751962,237662881,1036069721,158470144,268484993,-351272915,-773795342,-773795360,2143563488,1166616078,1300833806,784347920,-2095427701,57934329,645923768,-402438775,-2094136190,510984511,444564270,1394046209,-1928169587,-836022193]},{"sector":7,"data":[341805870,236093325,-216068601,-2094113884,57934655,771792873,86667937,-1557266392,1494100594,4047147,-2130087408,756023489,-219475968,-523116335,-523116335,239438118,1946601262,771751978,774612129,732300835,-1475988690,1975526187,115457792,-919402738,-1576125650,-783322325,1464234728,1381191761,41782054,41257766,521013006,-1929377607,-24444300,-218357584,-970567762,-1943142395,774632974,737425033,-1157627208,915210242,28912626,-1227738624,103999743,1498962778,1195852127,1388554987,512437843,-634704990,-745809149,772686987,735741833,1024476299,175505414,4720327,-379912176,1144717645,-955616494,302008326,1055480576,-2021052927,-1993462862,-1960068473,104666180,-955615744,285231110,585718528,-2021052927,-1993462846,1529598647,-1960421551,-1960442243,1976115981,-628403436,-1299216082,307006251,-1165022930,-1914086613,272927488,242731067,1980168579,1208403730,-385875200,113705183,131144,1442895593,786074451,733644683,306985809,1284178803,1505831698,-1299216082,-2021052885,-1959908422,1529602743,-561294765,378130827,512296923,-920451107,1195849076,1376095014,121318995,1515915381,-379692198,1128464523,1967801155,777673708,-1959918455,852548,1073745168,38045998,1179010630,1523051337,1465867867,142445350,1023773478,1500971009,980729891,38112038,846512163,209486638,1394046209,786074448,733644683,1532543011,104675188,-349014272,1347653653,-1959863669]},{"sector":8,"data":[590070407,1952143552,408864,-1957487753,-2021052710,-782554166,112874,-920401269,-523042188,-1543108306,1515806507,1381454275,732209454,-16556207,1927861057,22669571,-763000018,1200172587,-125085922,205884206,407341358,-2054476193,-1993462814,-1959910329,774630021,774784905,733119883,575113518,-1165653202,1200172587,-2063389146,-1993462862,-1959911353,774619781,858539913,45699520,2139303424,57999640,83886521,1229455392,-1993410187,777601095,735741323,877103406,309840,1967833091,1200172795,-1959896522,774621837,1362120585,411009838,588477697,772502729,774000387,-350204023,-1959882747,-920444849,-1590815116,-1039979918,788231497,712117899,944736558,712155950,2139303513,1769275672,578781998,1366717440,1460018774,1468739154,521032226,810010414,-1959919616,-1959911817,-919398796,1091340846,947882798,-13433001,-1527556527,1594251614,880739118,1525511498,611814190,947882798,146736983,76230144,1174767910,105268806,2130914911,-394966476,520576858,367745374,1334390416,-1925501398,158542786,-1031435474,1200172587,1204235818,771752218,1962950531,-2054476270,-1993462870,132847175,1204235920,1509949466,-1916577441,1448166007,74746711,75336486,1091406630,1604776769,-955681698,553666566,-1872499968,1955288918,2106271238,93005318,-754974023,-1958723360,1604776904,-955681698,570443782,-1874859264,1955288918,2106271240,93005320,-754974023,-1958723360,1604776904]},{"sector":9,"data":[-955681698,587220998,-1877218560,1955288918,2106271242,227223050,-1494007487,661937759,4720327,-953286620,6727,20939566,777196917,773087115,1722311,-1959896320,154015303,1496033286,-1532940719,-388808405,773288793,18513795,-1957490572,786105305,732596107,-1475999442,12802859,1799258158,1098186802,860901638,650153664,771800225,640151715,12455563,-233928402,1975585575,682211341,670081838,-1557215092,653928434,12322503,-1943656430,-83837426,772233560,845874886,49921,0,0,-65536,65535,0,-65536,65535,0,-65536,-1,65535,-65536,65535,0,658688,0,606339082,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,1294214180,1329864787,1700143187,1869181810,775233646,673198128,1866672451,1769109872,544499815,825768241,960049453,1766662193,1936683619,544499311,1886547779,1667845152,1702063717,1632444516,1769104756,757099617,1869762592,1953654128,1718558841,1667845408,1869836146,1092645990,1914727532,1952999273,1701978227,1987208563,1344300133,1460032083,-1047606989,783875891,-855592430,109850159,-1993461056,-1204634050,45224494,-1943130163,775079942,851852937,-1307431240,774884612,853018252,-700544722,305051698,801965746,-1140421586,1049177650]},{"sector":10,"data":[501756602,109850118,-1993461064,775075390,852756108,-767653586,103278642,-871986130,1049177650,783823562,-855068142,109850159,-1993461024,775085630,854656711,-970061299,607336966,-167327954,771751986,855115463,2145910794,1049177606,434647778,3205120,1358971880,1912623848,123689224,-346530982,214205188,1448133625,1660991518,119415245,772436511,854210185,-335115218,-1017618894,-1153171272,-768409600,-427810355,30310401,-851181128,12108577,113476,567136819,-1207841152,567100417,-852446013,343329,-336067723,146712,-4520589,-1157370881,28835842,47360,-4849486,1397801977,106386769,787057490,854466185,-214530002,47769650,477415691,91614475,-352311576,28960771,-396752782,1594294534,-998046485,82573574,-111517945,1499268722,82532443,-116865917,1381191875,-299988178,-294094,753403253,-402396416,259194999,12278196,841075968,113542116,-2096043015,192217083,125092155,-2097106712,1928922820,1482381827,520494787,1963063683,637711387,567088522,-389903841,102629553,638022431,-855550582,267122721,-922025292,-1977218700,1193397525,-118262455,1347928863,-91532538,-645200098,-218359120,721647022,-880063527,1599604571,197145539,508523721,1085546246,-108800117,-852986623,642785057,1525155210,102651904,-133795041,-851296076,-2144953311,41228861,32227723,-68677937,1427827711,-5838767,-849745525,-352160991,1959279371,-118998265]},{"sector":11,"data":[-1047854475,-1195172003,79364135,-1023298304,1962933888,-2134444527,119409781,854670989,-402652487,113508095,1053044311,-16043286,-2094655628,1962410045,87696912,975570802,24576325,-347650055,-1022926871,-200896722,-1814351054,922168978,781398776,855127799,1980365443,935493637,-1031797781,188830256,184841664,-2093189925,242549753,738884736,-13760907,1093861686,-108845845,-2146536186,1965820540,922693126,-348048639,167346961,2088766581,108342282,20381486,865288499,866315218,784348114,854865663,198325187,-1272875831,637579301,175449400,23410726,-1002830732,-1977217419,-11802619,1195835763,-478852798,197822294,1295348973,-163675346,745865266,67519626,1161438768,-352160511,1966095391,1959922436,-348912892,1048588007,1979658995,1229079048,-347123895,-17917,-386323625,1499463167,1743455091,-896839280,425088,-922022540,1229522548,32196423,185658206,1577285065,-108852757,855799295,1962871753,106386750,784937809,854998659,-166497024,1963919172,41731080,-352161304,25880576,585630699,1493660160,1583177479,-998046485,-2094073590,3339838,57804149,788474601,854984391,868417536,-157208878,113716786,668408,1493082600,-91781074,-75283662,-402426560,-906100214,230223221,-2021052918,1128477434,-1023280664,-164408490,-25114317,772371967,853720203,686546827,1946339062,-1127993847,-1014222138,322771691,1024356864,158793767,-759380946,-339506126]},{"sector":12,"data":[-1127993849,-1014222154,1979710339,-98281,-336002187,-157078003,-18382,855638461,216791286,1946221443,5564419,-133904765,-922024334,-1695874443,33456284,1431447925,1347880529,-855310152,1493122095,-661976715,-855309640,-117314769,123667827,-2096698535,216532676,-346399488,-401682687,1583087611,-1185916989,-1070399489,-772296974,-1017161655,1963064195,1048784417,1962881758,-49895,776998261,775091873,853417727,772139864,853417727,-919397653,1962933888,1300899334,772401923,74790200,55413294,-117127293,200813939,-2145815351,91553790,-351978714,87764483,166396533,-2096794551,-471137081,-2146667783,1979252734,637996546,1912765699,653079046,776408458,854591174,-617364736,425088,-953281675,540211847,776160045,855279558,-1410841824,-617390848,-2010197453,-1976373234,-1053161148,-1054204042,1157034122,359956487,772424842,855279496,1090224963,2145911669,1976499712,142377195,940405760,141756492,-1979167702,139234001,628410635,252134646,1156975733,108269575,1191545382,777519595,855279496,1090224963,1139278709,1976172032,121960155,169440640,-1978305290,-2010248636,1127414407,1967192963,2418691,-344600834,252134646,1156974709,41160711,-771093013,-1892808332,-30215162,-386435638,-1017839614,509019729,868977415,-96563749,-78518222,123667826,-2096829607,-1007089980,121960029,638743856,1095763338,1945909480,1166681606,-336048127,92939789,74760202]},{"sector":13,"data":[-169131705,-1017775829,16778497,327679,1954039057,1701080677,1917132900,544370546,118370597,973618829,-1021263485,16778498,327679,1918980110,1159751027,1919906418,238101792,742296839,499221306,393155,201326851,536871424,1224739840,1850283776,1920102243,544498533,542330692,1936876918,225341289,824519690,1685021472,1634738277,1679844711,1702259058,1633886322,1953459822,543515168,1953066601,1768710505,224683386,1227949834,1818326638,1931502697,1635020409,1852776568,1230131232,1380275278,1398362926,1685021472,1634738277,1679844711,1702259058,118099314,1049429774,-1048495539,12779661,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-65536,0,0,0,0,0,0,0,0,0,0,255,65280,1566244864,725499004,2243389,-953286656,3861766,243871232,-1993458825,775649574,997930633,243871484,-953271584,3858950,113716736,15093,-435763410,771751994,1001522887,-953262757,2084287494,113716796]},{"sector":14,"data":[725498806,-1207515346,1362836795,-1185523886,-1404960769,1963575528,243871481,1449016251,-1156674770,-2133118149,41230908,-620047370,76230773,1948269885,1025522959,154995316,1023767613,443877693,1178404038,1364655755,119408198,1493673203,-4764066,-1156645074,1229343035,173982079,1605662207,1223186778,-1206684919,643039231,975576459,-1207733489,-379912190,-1993473757,1396371254,512578903,-164742409,540732934,-391363723,1014106584,1946762472,158197815,-164751243,540732934,82314613,774302473,988677878,1310618689,-2010244117,1966947335,243281414,1124154094,1930019304,-2010207035,-1091878137,914959950,-970048796,-1993474041,641397534,915217803,-2144453897,913583932,574390318,-164755340,20639238,-1977199499,-466484921,-536463058,772961082,-784670559,54739936,529213144,-352286488,113716841,80610,-1977196309,-466484921,65065280,260712152,-921965262,1396903796,-400585946,1935343880,-498908351,113716978,211682,-1977207573,-466484921,65065280,126494424,-523115470,651690816,-315486326,259311883,-1960422589,6154271,1124823899,787669571,987891399,1599930372,244002395,-1590805792,-1959904542,775611446,988157579,-400651730,1355020346,-1459123418,91553794,-536412370,1015033402,-1457949440,158662657,-502872274,-352320966,61886478,2145976244,65755136,1476460264,243281603,-402113810,611450939,-299466706,777058106,725283233,100740806,777534191,988886667]},{"sector":15,"data":[3964974,-790099596,351008768,772926457,987891399,-1336934391,-385895421,-128450506,642864579,839405450,1959332845,158305549,1929623016,976904,-335939870,780742150,1509440245,-2144943267,1946157182,-152353533,-1007041723,2139825751,1049177604,-2010760474,1703421445,-1590800383,-1993983243,1012400709,638219521,637818249,-351908471,1963080794,1435051526,1011936004,1021867015,1021604872,637957382,-352037496,1963211838,-274649585,-1993981894,-1943665595,736822877,74811686,105745446,1207314000,74711298,166397104,38270502,-1341819902,17885186,1207314008,57937922,1593892840,113651395,1342192573,185043750,1343780288,777474643,987891399,-4980727,1541931952,1532649471,-1456411816,309593088,-502872274,-402653126,-2094136016,154853950,11082101,773288968,987891399,-1041760256,1048784387,1963539170,-352064766,11112556,772961408,987891399,753401856,1048784385,1963539170,1073785172,-953281932,3858950,15853568,-499219666,1031080250,1946288297,113716754,15074,772130024,987905667,-1457097463,309592192,-502872274,-402653126,-2094136010,154853950,11079541,772437024,987891399,-488112128,1048587777,1963015101,1048784399,1962949346,113716743,604898,1448133464,168069678,1008366784,772633914,97408,-970062219,166395908,1929822696,-347716095,-1017618721,-796241322,-402355666,208799406,208977930,771755240,32179336,-387234234,1019436634,1007448960]},{"sector":16,"data":[1011184225,608270202,1396567007,1049450246,-92259411,-1929087996,775661630,393483576,240275792,-1973046265,-17470,-1174403655,567148543,777541978,771841419,1124287886,645934147,1527209943,-2144448317,-2143621618,-299466706,-1976632006,1948990468,1965898762,243281415,1174551278,1476395752,1381060803,868823894,-1976675374,1958742532,15853634,-466470542,-489559925,-756493871,-1960021504,-775844902,-388902430,527564997,-774774063,1912650984,332595990,11790536,-721220238,-402599549,57802921,1539042118,1526762985,-301533650,175374906,-755510793,-2097036669,-1960443695,-1977219465,1962949636,-1274957817,-1871385601,76162630,1618214972,116796998,1971337966,1278944798,2000056835,1413162502,640578049,1996966971,641364520,1996837947,640871200,2080590907,637959960,2080461883,1278944784,2081062663,1413162524,-352157947,164004628,-1250572034,-502872274,-1342175686,-335563775,637644818,199959690,-502872274,-1342174918,-385895421,1516174586,-1664919463,-301533650,41222714,1889387421,-104597502,1915763907,2000239624,-131060732,1355020739,643256915,637960075,-1073085046,-4979595,54283499,642203509,162792842,54584566,92940024,-453638732,653787968,1195836810,-399668442,309526578,-33306749,787576264,987891399,-4980728,-1977215765,45154149,-350909658,113716747,604898,61931444,1610379752,-1017619622,1448236368,-1976696142,77654020,48774258,116797182,1946696430]},{"sector":17,"data":[1966947341,2122327583,1517617153,-164752405,272297478,977014388,-2144990603,1962934398,1173046853,4602406,-1073078923,1162230644,975573995,779419718,76164678,1178216005,1176728832,648538949,1050615,977016948,-2144990859,1962934398,1007610637,638022912,973110912,-336002188,914959878,1593326321,-1017619110,998127245,-12811474,267059828,240144926,939571231,567137931,-1021355432,-919383471,168069678,775713984,998063744,-2146470912,74777083,812923452,745811516,758910187,792471156,775692916,-1326965132,-1273072898,179998976,199423744,51475922,-1861324095,-1967264954,99350744,32241734,1522633721,1364247385,1448302162,788497896,17908982,-402426530,-953286399,3907590,113716736,15266,-1543059666,771751995,1000736455,-970063872,20675846,1877475763,777876223,171679907,-396397349,1349713762,1000514350,1383389962,1407713971,776041215,171680931,775321051,988612342,775648514,988034699,754941056,1153839221,-953274625,3861766,243281408,771898093,997658251,2032569134,915091003,1474902907,-15669000,-1557241998,-620086362,-1590798475,-469091424,-164737163,20638982,205260916,41239415,-164708302,70970886,205261940,201590900,406597490,-796251273,1000513838,561374218,-1590759286,-469091420,-930474123,1000775982,225829898,1583081610,145817524,-335907352,-1268884720,-402411265,-953222550,154853894,113651200,1509964669,1354979417,76164694]}],[{"sector":1,"data":[1975519814,1149906680,1008733438,1008301168,1008563297,1311012205,-29062610,1882988556,1631323764,334170740,-301039570,116065338,-317816786,-970063558,1577123396,1397801816,512437846,1065368303,845116712,-402158876,1299448205,74786876,1165149438,108341564,1030933758,574366580,-2010248075,-398244348,762445963,468193259,772240130,1128662152,-2010249334,-347912700,76033732,21284398,509440,-398003317,-1993473761,-348462026,915090960,-970048781,-953286652,154853894,-1325419520,-396665340,-1017579110,777409360,988749451,574359434,-398253707,309461039,21284398,1190365952,771809000,988034697,-1959915285,775615286,771753158,987891399,-4980727,1532889520,1492736488,126570691,1946213608,1965177892,586973197,-2010243467,1128482308,2078861547,772240129,1128662152,-2010249334,-347912700,99350997,312878,1354979576,-1959897513,775614270,-1073085302,1609044852,774141184,1002243782,-970039807,-346095612,-970039745,643760132,67575,-953273739,37413382,1479142144,76164694,510967818,1946168808,18409483,1179058803,-370457017,988324398,312878,1049177671,1600010980,33597784,-1269823116,-402280193,-1017579342,512577875,163134386,121253376,-498924428,1532576248,585673923,-401050624,376766547,-301533650,-311156678,-301533650,158613818,-116987058,1324876267,1405352131,1947024465,1946172461,1946827817,2105550373,510788098,-1977165005,-1014824099,964699652]},{"sector":2,"data":[856519680,160048841,20588099,-119405452,1532562748,777081795,988284614,645934624,1021262574,1010201632,1009939465,1009873964,-2146667232,125116476,977674416,639560640,16940416,-919398542,55413286,192203019,1124074427,1946237478,1022943751,-1017423584,988324398,-301533650,108331322,-301039570,-1069932486,781051883,-583320841,792463988,-336002187,200013838,108343100,-301039570,-1007140806,777213470,988495491,1344763136,1465012510,-164428203,12115598,-1943941789,131795931,1499094877,695490591,-382301906,512306746,-1959904533,775612726,988487310,1946172547,1912879632,21248520,-336002185,-347716091,1583085803,1189987103,-184483584,-33488826,16908358,2118614784,67240007,1199505410,1342719870,4017746,827609164,1347158077,4010580,861163596,1380974653,4012622,827609164,1275084090,976376912,1347158077,1027224404,4668416,1195770625,1196967759,536870912,1199505410,16795518,2130706564,4685383,32769,1197557631,16843008,0,6,16795503,4683009,8389376,2118614784,71,0,16777216,106385920,-61465005,309708070,1049429774,-919386390,501797427,-199563020,115416717,1962934077,1048587860,1963018119,15692,-970061708,4687622,-2144454421,71794494,-13751691,1124524294,1048784451,2114193121,113651208,-352303225,-1959898343,23259167,-2012821970,719847495,116087552,-2029599186,-397213625,-346295360]},{"sector":3,"data":[1048587943,1962952583,113716746,1761,-134091783,123412318,1405311583,1364598359,1049479475,-986822855,1397195574,1542688744,1962934077,1048587895,1963018119,117321327,4016008,772305920,1200031430,1407314688,2134802478,175440711,73370414,-352274456,-2144432059,21462846,-2144459403,38242366,-1959917963,82511455,140479278,1199808814,1946157117,134164001,38242606,781195499,1199521408,772371716,-402235509,116064276,-2029599186,367525959,-2064950285,1595891289,509068123,-74755754,-1916193961,776432702,1199781573,-218699693,-49829,-2144451980,21464894,37567093,1026913280,141819904,-2029599186,-504692665,772276014,2131378051,-1590796521,-1993455741,1195835973,1049449303,-1175959700,-1041540110,-2029599186,-1175781305,526276959,509068127,-986820266,-1958247626,96939771,1195835400,-1409283911,175374396,1946220931,1236052485,-108793109,772175104,1200031430,526276864,509068127,773787222,1199650443,41913134,134596398,-1404614912,208928828,91503164,24395068,-252990294,-1017176226,915091003,1474902907,-15669000,-1557241998,-620086362,-1590798475,-469091424,-164737163,20638982,205260916,41239415,-164708302,70970886,205261940,201590900,406597490,-796251273,1000513838,561374218,-1590759286,-469091420,-930474123,1000775982,225829898,1583081610,145817524,-335907352,-1268884720,-402411265,-953222550,154853894,113651200,1509964669,1354979417,76164694]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[1163004429,1162691649,1415074862,168626701,1163153230,1313808467,760433952,542330692,1397900630,542003017,221261365,1027423498,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,168626701,1936287828,1634038304,543518052,1987015280,1936024681,1886218528,1635021423,1763734638,1919903342,1769234797,1847619183,1763734639,1970037614,543450468,168652393,543516788,1919117645,1718580079,1397563508,1397703725,1702057248,544417650,1684632903,1851859045,1699881060,1701995878,543515502,1763734127,1852776558,1701734764,1699219981,221147244,1275727114,543911791,1869768820,543713141,543516788,1819045734,1852405615,1635000423,543517794,1663067759,1702129263,544437358,1679847284,1919251557,1701734765,1752631821,1701344357,1870209138,1931506293,2004117103,543519329,1746956911,2003071585,543519329,1763734377,1970037614,778331492,168626701,1163154497,1330205774,1329799246,1230390596,1092638533,1226851406,1279611982,1329742112,1329743190,541348417,1380275029,722079059,724249387,724249387,724249387,724249387,724249387,724249387,724249387,724249387,724249387,724249387,724249387,1346439693,1414483536,1412322117,1663063128,1635020399,544435817,1953067619,1818321769,1718511904,1634562671,1852795252,1868718368,168653941,1852404597,1866670183,1767269732,1629517669,1226859630,1818588270,1868710176,1868719478,543453793,1752459639,760433952,223563588,808334602]},{"sector":8,"data":[722079022,724249387,724249387,724249387,724249387,724249387,724249387,724249387,724249387,724249387,724249387,724249387,168626701,544370502,1868983913,1952542066,544108393,1970233953,1937055860,543649385,1819308129,1952539497,1936617321,1953068832,1397563496,1397703725,808334624,1930038572,1948280165,1092642152,1330532432,777209172,542398548,1701603686,218762542,1701336074,1819239968,1769434988,1948280686,1667854447,1918967923,1768169573,1937073011,543450483,1948282473,544434536,1701603686,218762554,539898122,1684104530,1126196589,1702260335,1869182062,168653678,1293954610,1768448865,1395484014,1768121712,543385958,1162692936,1498623565,2001936467,1751348329,168653669,1310731827,1936028783,544108320,1869440333,1293973874,1734438497,1852140901,537529716,775102496,1917853745,1701601903,1277195117,1768186223,1763731310,544175214,543516788,1701867605,1699553394,2037542765,1701986592,537529697,775102496,1850286130,543974772,1634760773,1684366446,1835355437,544830063,1986622020,673215077,776817989,693328211,775162381,1953451552,1864397669,1767317614,2003788910,537529715,775168032,1210196017,543713129,1869440333,1092647282,543253874,1428188777,539125107,1936942413,543516513,1852397352,1937207140,909652783,825111072,537529641,775168032,1126309938,1869508193,1970413684,1767317614,2003788910,1852383347,1635021600,1918985326,1869422692,539125092]},{"sector":9,"data":[1936942413,224749409,539899146,1768644941,1495295854,544372079,1685217608,1701994871,1836008224,1769234800,543517794,1752459639,760433952,542330692,221261365,538976266,540094005,541149016,543452769,860704069,1160656440,168641880,1293954614,1852402529,1868111975,1310749301,1870099557,1126198130,1634757999,1818388852,1769414757,1293969524,1329868115,775233619,537529648,775299104,1397563441,1397703725,1701335840,1629514860,1310745710,1870099557,225667954,538976266,540159542,1702260558,1310747756,1870099557,225667954,538976266,540225078,1311589200,857756486,168636462,908075040,1411396654,542330959,2004116814,225145455,538976266,540356150,541934153,1277182800,824200769,221524782,539899658,1969450820,1953391981,1869182049,1866670190,1667592818,1852795252,1851859059,1681989732,1769236836,225668719,538976266,540094007,544695630,1127110211,1713392975,1126199919,1449485423,225928553,538976266,540159543,1969450820,1953391981,1869182049,1866670190,1667592818,1852795252,537529715,775364640,1699225651,1819632498,1142977381,1819308905,1092647265,1953522020,673215077,1162367821,1127105362,220810575,538976266,540290615,1935753809,572547945,1159753295,1919906418,1866670114,1851878765,218762596,539898122,1145128274,1126188365,1163284047,1330205774,168645454,1027423549,1027423549,1027423549,1027423549,1027423549,1225395517,1870209126,1634214005,1897948534]},{"sector":10,"data":[1953719669,1936617321,1868718368,1881175157,1701015410,1701999972,1919885427,1836016416,1684955501,1701650547,1869182062,224683374,544106762,1936287860,1818846752,2032151653,1998615919,543976553,1651470960,2037146209,1852401184,1851859044,1919252339,1852383347,1701344288,1766656525,1936683619,544499311,1143821133,1428181839,661808499,1967595635,543515753,543452769,1701209426,1668179314,1411395173,1713399144,1869376623,1735289207,1634732557,1919377778,1936224353,1936024608,1651077731,1919295589,1702195557,2037150830,1852140832,1852795252,1948279909,1667854447,1752440947,1948284001,168650088,1684632935,1868767333,1936876918,544106784,1701998445,1952801824,778856801,168626701,2037277005,1667592992,1852795252,1718558835,1701344288,1634038304,543518052,1668508004,544437109,1851877475,1735289191,1970239776,1329799282,1195984462,1398362926,1768294925,539911532,544370502,1635018084,1684368489,1718511904,1634562671,1852795252,1868718368,1830843509,1718183023,1735289209,1126195488,1229344335,1498623559,1711934803,744844393,1701147424,1634222880,1919251568,540094752,1948280431,1293968744,1329868115,1934958675,1931965029,1769293600,1629513060,168649838,1701209426,1668179314,168636005,1750338061,1701978213,1701667937,1952870176,1914728037,1919247973,1869881459,1447380000,541410121,1835888483,1935961697,544106784,1920298873,1329793549,1195984462,1398362926,1818846752,1176514149]},{"sector":11,"data":[1696625263,1886216568,539780460,543518319,1952671091,544108393,1868785010,1852140909,572552036,1768186977,168650606,1634541665,1852401763,540097125,1953068915,1948280931,1752440943,1162092645,1162037590,1296648253,1395543365,1663062873,1634561391,1763730542,1870209134,168653429,1179537219,1395541833,1713394521,778398825,1750343714,543519589,1230390596,540886339,1952543859,1852140901,1763734388,1667851374,543519841,543516788,1701869940,1718553101,1836016416,1684955501,544106784,543516788,1179537219,1395541833,1713394521,778398825,1970231584,1701146144,1869881444,1685024032,544826985,1936025716,1930038629,1702125940,1953391981,1869881459,1717924384,1952671084,1701344288,1852793632,1969711462,1769234802,1864396399,1870209126,1931506293,1702130553,1176514157,168653423,1701998445,1718511904,1634562671,1852795252,1702043692,1752440933,1162092645,1162037590,1836016416,1684955501,544106784,1885431875,544367988,1864381489,1946815846,1293968744,1329868115,1934958675,1931965029,1769293600,1629513060,1377854574,1919247973,1701015141,218762542,1701336074,1634038304,543518052,1701670771,1701669236,1935745139,2032169835,1948284271,1937055855,1752440933,1480925285,1145979216,1836016416,1684955501,225408032,1886348042,1768300665,544433516,1836020326,1701344288,1936286752,1651077748,1869182069,1768169582,544435059,2032168820,544372079,1685217640,1936286752,168636011,543515987]},{"sector":12,"data":[1885431875,544367988,1864381489,1752440934,1397563493,1397703725,1702057248,544417650,1684632903,1851859045,1699881060,1701995878,543515502,225603430,1919905034,1852383333,1836216166,1869182049,1650532462,544503151,1852404597,1752440935,1480925285,1145979216,1836016416,1684955501,218762542,839519498,1095573550,1313425475,1347628357,1179206469,1210073929,1296387401,1398362926,1230459680,1162363732,755633491,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,1409944877,544434536,1952671091,544108393,1953394531,1936615777,1296648224,1395543365,790647641,1751343469,543518313,1953068915,1981835363,1702194273,1752440947,168653921,543519329,544501614,1818455657,1684366453,544106784,543516788,1952671091,544108393,1970231586,1667592736,1702259045,1701344288,1380263712,978472786,1851066893,1701601889,544175136,1953394531,543977330,540029505,1701734764,1701650471,1734439795,1763713637,1749229678,1702129761,540221554,1948280431,168650088,1919117645,1718580079,1397563508,1397703725,808334624,1952794400,1735289204,1635013408,1684370546,1769301792,221144420,537529610,538976288,1886220099,1919251573,538976288,538976288,538976288,1634545440,1852401763,1635131493,224753004,538976266,757932064,757935405,538979629,538976288,538976288,757080096,757935405,757935405,757935405,537529645,538976288,1667326529,857764725]},{"sector":13,"data":[538981944,538976288,538976288,538976288,824188960,538970637,1126178848,1819304296,538997861,538976288,538976288,538976288,538976288,221323296,538976266,1984241696,2019914341,542392608,1937075280,808988960,538976304,538976288,168636704,538976288,1702249760,544761202,1702129486,1802465122,1481393440,538976288,538976288,537529649,538976288,1701017669,1866670188,1953853549,1394635365,1702130553,538997613,858857504,538970637,1327505440,857756752,841823800,1869422645,1919248500,1918988130,538976356,221323296,538976266,1632641056,942874731,542659382,538976288,538976288,538976288,538976288,168636704,538976288,541282336,1768778060,543450484,538976288,538976288,538976288,538976288,537529652,538976288,942883664,858992432,1344285763,808792899,1127428911,537529644,538976288,1919885344,541282336,791687219,541274931,1397705026,538970637,538976288,1986359840,1869181801,774971502,538981425,538976288,538976288,221388832,218762506,539898634,1163153230,1313808467,1296387360,542724687,1095647565,1162691911,168645710,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,218762557,825111306,1869762592,1835363426,1867260019,1852400737,1852383335,1948282740,1428186472,1919250544,1835355424,544830063,1634038337,757926413,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405]},{"sector":14,"data":[757935405,757935405,1393167661,543518063,1886220131,1919251573,1769414771,1646291060,1830843253,1702130529,1296310386,1868767297,1869771886,1919249516,1634541683,1869488249,1700929652,1650526733,1948280172,1869357167,1679844449,1667855973,1919164517,1919252073,1919885427,1869770784,1835102823,1852383347,1948282740,1965057384,1919250544,1701644813,2037542765,1701994784,1411395169,1629518194,1852400740,543236199,1230390596,1396524355,1414676813,777409092,542333267,1835888483,543452769,1868981602,168650098,544829025,1230390596,1229473091,1663060039,1634561391,544433262,2032168553,544372079,1179537219,1395541833,1713394521,778398825,168626701,540159539,1702129225,2017796204,1684955504,1294820453,1919905125,1917067385,1919252073,1296377888,1498623565,168634707,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,168635693,2032166473,1965061487,1226859891,1818588270,1159754535,1395543373,1679840089,1702259058,1769414770,1092642932,1702260578,1918988130,1965042788,168650099,776817989,542333267,1936876918,544108393,540028468,1769366898,1852795251,1864385568,1634476146,779249012,543574304,544567161,1702257000,225337632,1918985482,1919248748,1919252000,1852795251,1868767276,1667331182,1850286196,543974772,544370534,1919295585,1965057381,1634887536,221144420,873073930,1330520110,542328148,1461734991,1329876553]},{"sector":15,"data":[168645463,1027423549,1027423549,1027423549,1027423549,222117181,873073930,572535086,1751607624,1835355424,544830063,1634038337,544106784,577074005,1936018720,1701273971,1767319584,2003788910,942878579,775036982,168634673,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,221064493,1970231562,1851876128,544501614,544109938,1684957527,796096367,540424243,540094002,1852139639,760433952,542330692,540028469,1814066025,1701077359,1762266468,544175214,543516788,1751607656,1835363616,544830063,1634038369,1816207406,539783027,543516788,1143821133,891310927,1981820974,1769173605,544435823,168650351,1380011347,1448232020,1398362926,1684955424,1296126496,1447645764,1498623557,1918967891,1869488229,1868767348,1952542829,1701601897,1953068832,1460276584,1868852841,858747767,840971832,539898158,1914728276,1461743221,1868852841,858747767,840971832,1998598446,543716457,1143821133,891310927,539766830,224752501,1701344266,1919252000,1852795251,1718558835,1095586592,1380209746,1498623574,1851859027,1095901284,1230128205,1395541334,1948275545,544498024,1701667171,1953068832,1460276584,1868852841,1629516663,1914725486,1987013989,1752440933,1329864805,1229471059,1663060039,1634561391,539780206,1629513321,539785582,1836020326,1970239776,1124732274,1229344335,1498623559,1768300627]},{"sector":16,"data":[221144428,873073930,572535342,1852727619,1914729583,1461743221,1868852841,1763734391,1953701998,1633971809,1830839410,577070191,1936018720,1701273971,757926413,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,221064493,543574282,544567161,1702257000,1142972704,1128879685,1296383301,909652813,1163412782,1836016416,1684955501,1634235424,1852383348,1685417059,1948283749,168650088,541933906,1310749295,1397572943,1769435936,543712116,2032168553,544372079,1179537219,1395541833,1713394521,744844393,1970239776,1851876128,544501614,225342834,1852397322,1937207140,808334112,544106784,1851880563,1685217636,1685024032,1159736933,1701344361,1701978226,1702260589,1701344288,1296126496,544370464,1296387918,1930038611,1668573559,1919885416,1853190688,1852397344,1937207140,544106784,1818322290,544370464,1634233957,1684366190,1685024032,673197669,2032166473,168654191,1869440370,1377854838,1864387905,1330520178,743656773,1970239776,1852798752,1646294055,1650532453,1948280172,1869357167,1881171041,1919381362,544435553,224685665,1986356234,543515497,1986622052,544436837,1869901417,1701344288,1886418208,1830842981,1919905125,1918967929,539910501,2032166473,1763734895,1970037614,168650084,541933906,1310749295,1397572943,1870209068,1870078069,544483182,1629513058,543517794,1914728308,1461743221,1868852841]},{"sector":17,"data":[1763734391,1953701998,1633971809,168649842,1701080941,168634670,1330514445,540689748,1852404565,1296375911,909652813,2036428064,1684369952,543515509,543516788,1970236769,1864397934,2019893350,1684956532,1830839397,1919905125,1628048761,1818845558,1701601889,544175136,1684957527,544438127,543452769,1937072483,1767317605,2003788910,1869881459,2037543968,544175136,1918989427,1852383348,1953696269,1633971809,1830839410,778396783,544166944,1986359920,544501349,1936287860,1701978156,1701016932,1701344288,1869439264,544501365,168650351,1702131813,1684366446,1835363616,544830063,1952540788,1752461088,1679848037,1667855973,1919164517,1919252073,1937055859,1176514149,1696625263,1886216568,221013356,543582474,544567161,543519329,1852404597,1297293415,1146376769,1702259058,1920213036,1702043769,1852404852,1752440935,1766662245,1667318638,1767073128,168650106,1634886000,1702126957,1869881458,221130784,218762506,539899146,1229668685,1495287630,542266703,1146241352,1163018583,1297040160,1230258512,541412418,1213483351,760433952,542330692,221261365,1027423498,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,222117181,889851146,1478504750,1629503815,1159750766,942886221,1480928822,755633477,757935405,757935405,757935405,757935405,757935405,1225395501,1870209126,1937055861,1851859045,1095194656]}],[{"sector":1,"data":[1936286752,2036427888,1953068832,1296375912,909652813,1163412782,1870209068,1634541685,1701716089,1948279909,1695157615,1970037624,1663067492,1635021413,1830841961,1919905125,1634869369,1936025454,1953068832,1752440936,1296375909,909652813,1129858336,1162106188,1953525536,225341289,1031284746,1411395113,1701060719,1836213620,543518313,1667852407,1701650536,2037542765,1851879968,544433511,1696624500,1970037624,539780452,543519605,1920298873,1701972493,1701995878,543515502,1802725732,544175136,2003134838,1701344288,1835363616,544830063,779116909,168626701,1293954614,1313426241,1331241031,1310741077,1331123269,1126189906,1095781711,1279412564,1230446661,1293961300,1329868115,775233619,1024068912,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,168626701,540094006,1143821133,1394627407,1819043176,1684955424,1952796192,1802661751,755633523,757935405,757935405,757935405,757935405,757935405,757935405,757935405,1867319821,1847620723,1870099557,1931504498,2004117103,543519329,661548919,1870078068,1663069042,1701999215,2037150819,543582496,544567161,1918989427,1953046644,1919289869,1629515119,760433952,542330692,1818585171,1868767340,1851878765,1919950948,1953525103,1951604782,544502369,1920298873,1952804384,1802661751,1700923917,1701998438,1635021600,1852404850,1397563495,1397703725]},{"sector":2,"data":[1701335840,221146220,906628362,1310732846,1818588783,1699618924,1919907700,168653675,757935405,757935405,757935405,757935405,221064493,1987005962,543976549,1869440338,1461740916,1936421487,1769234804,544435823,1280332328,777537862,692932419,537529658,1716068384,1970239776,1851876128,1814066215,543449455,1143821133,891310927,1864380462,1870209134,1914729077,1953459557,1868705125,168653935,1998594080,1936421487,1769234804,539782767,1953394531,544498529,1702260558,1713400940,1948283503,1377854824,1229343824,1329802840,1768300621,221144428,1141509386,1702259058,1885424928,1735289200,1769231648,1769236844,221934437,538976266,2032166473,1914729839,1277193845,1313425231,1163412782,1095573548,1480928848,1629498437,1394631790,1230197573,1160662607,1713390936,544042866,221074253,538976266,542330692,1818585171,1919885420,1768453920,1293968748,1329868115,1750278227,543976549,1914729321,1768844917,539780974,1702043745,1751347809,1952542752,537529704,1936269344,1953459744,1684300064,1948279909,1752440943,2019893349,1769239401,1881171822,778597473,1702057248,1701344288,1881171315,1919381362,225668449,538976266,1868981602,1931502962,1953653108,543649385,1143821133,1394627407,1819043176,218762542,1297040138,1128616019,1918981664,1818386793,168639077,1226842144,1870209126,1937055861,1752440933,1867391077,1819043190,1735355424,1881173609,1919381362,1948282209,1702043759]},{"sector":3,"data":[1752440948,1329799269,1162892109,537529667,1635131424,1650551154,1629513068,1919251558,1635021600,1852404850,1397563495,1397703725,808334624,1851858988,1870209124,1633886325,225716078,538976266,1869374834,1948279905,1126196584,1095585103,1127105614,1713392975,744844393,1768187168,1752440948,1213407333,541871173,1835888483,543452769,1701734764,538970637,544106784,1920298873,1313817376,776423750,542333267,1701603686,1632444462,1931502955,543519349,543516788,1752457584,225408032,538976266,1296912195,776228417,541937475,1852403568,1948283764,1752440943,1869750373,1679848559,1667592809,2037542772,1684955424,1835364896,543520367,224749684,538976266,1683765859,542929775,1634886000,1702126957,1752440946,1713402977,1869376623,1948283767,1881171304,745043041,543582496,543518319,1936291941,221148020,537529610,1866866720,2019893362,1819307361,1931488357,1869639797,2032166259,544372079,1279608915,1868767308,1851878765,1768693860,1814062446,1936420719,1802071072,537529701,1752440864,221934441,537529610,538976288,1279608915,977485132,1397703772,1297040220,1145979213,1297040174,977477664,1397703772,790634588,790634576,825571909,218762546,538976266,1851877443,1763730791,1869881460,1869573152,1768693867,1948280171,980642152,168626701,538976288,1162367776,1128090700,1329814586,1312902477,1329802820,790634573,790634576,825571909,218762546,538976266,1663070799]},{"sector":4,"data":[1635020399,2032170083,544372079,1702260558,1981836396,1868852837,1869881458,1952802592,1847615776,1814067045,1852401519,1869770784,1835102823,218762542,858666506,759386144,542328398,221261363,757935370,757935405,757935405,221064493,543574282,544567161,543519605,1311589200,857756486,1998598190,543716457,1143821133,1394627407,1819043176,1397563436,1397703725,1701335840,1830841452,168655201,1886611812,544825708,1701998445,1769104416,544433526,1851877492,1970239776,1986095136,1969430629,1852142194,544828532,1650552421,778331500,225399840,1701998602,1953391990,1768453152,1965042803,1948280179,1344300392,1179528515,1680810067,1769435936,543712116,1931505524,1768121712,1948285286,1847616872,1700949365,1862929778,1919164518,1936029289,1970239776,1701994784,1769174304,539912046,544370502,1701998445,1718511904,1634562671,1852795252,1702043692,1870209125,1344303733,168635715,542328398,1969450852,1953391981,1869182049,168636014,1716062733,1970239776,1851876128,1965061159,1948280179,1126196584,542724175,1478521455,1498435395,1836016416,1684955501,544108320,1311589200,857756486,741421102,1868761613,1667331182,1870209140,1981837941,1868852837,1869881458,1952802592,544104736,1633972341,543450484,1936876918,544108393,1948280431,168650088,1179534160,1498623571,1701060691,1701013878,1769104416,779249014,168626701,540290614,1397772116,1952796192,1802661751,757926413]},{"sector":5,"data":[757935405,757935405,757935405,168635693,2032166473,544372079,1953724787,1763732837,543236211,1397772116,1919907616,1635021675,1852795252,1752440876,1397563493,1397703725,1701335840,1293970540,222647887,1836016394,1684955501,2036428064,1953459744,1919907616,168636011,1866729997,544483182,543519605,543516788,1145130828,1212631368,1836016416,1684955501,1953068832,543236200,1397772116,1952804384,1802661751,218762542,892220938,1296189728,541282336,541999436,875769393,757926413,757935405,757935405,757935405,757935405,1225395501,1870209126,1634214005,1881171318,1818390386,544435557,1752459639,1886413088,1633905004,1852795252,1752440947,1965061217,1914725747,1919902565,1812598116,1768645487,1864394606,1768300658,1814062444,1768645487,539780974,544567161,544825709,1684366702,544104736,1633972341,543450484,1229210962,774911314,222648389,1818846730,1852383333,1685417059,1763730533,1128865902,808656975,539900211,1953394499,544498529,541934153,1886418259,544502383,1851877443,778855790,168626701,775358989,1129268256,1313164629,1230258516,1126190671,1163022927,1330205763,1092637518,1092633678,1414087748,1397641033,1027410445,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,1027423549,168626701,540094007,544695630,1127110211,1713392975,1126199919,1449485423,225928553,757935370,757935405,757935405,757935405]},{"sector":6,"data":[757935405,757935405,757935405,1934952973,544436837,1126196847,1449485423,544695657,1936876918,1936617321,808334112,544175136,858861107,1869116192,543452277,543519605,224749684,1869770762,1835102823,777405216,541937475,1931505524,1953653108,1685013280,1701402213,538979959,544370502,1701998445,1952801824,1936484705,1702043692,1752440933,1930038629,1769235301,1864396399,1866670190,1767269732,1763735397,1752440942,1768300645,1092642156,1330532432,777209172,777279572,168626701,540159543,1969450820,1953391981,1869182049,1866670190,1667592818,1852795252,755633523,757935405,757935405,757935405,757935405,757935405,757935405,757935405,1750338061,1868963941,2003790956,543649385,1629516649,1919902496,1952671090,544108393,1948282740,1293968744,1869767529,1952870259,760433952,223563588,1952794378,1735289204,1635013408,1684370546,1851878688,980181365,168626701,1701273936,540291616,1702130472,908096368,1684955424,1864382240,1752440934,1919950949,1684366191,694514293,537529658,538976288,1679847252,1919251557,1701734765,1701345056,1919248500,1970239776,1986095136,1752440933,1868767333,1667592818,1702240372,1869181810,1718558830,538970637,1159733280,942886221,1480928822,1679830085,1701999465,1685217639,1701344288,1818846752,1633951845,544433524,544432424,1952543859,1763730533,537529710,538976288,1885697139,540418163,543452769,1718558775,1701344288,1869770784]},{"sector":7,"data":[1969513827,774464882,1936607520,1684104564,1869881388,1701339936,168651619,538976288,1768453920,1981835363,1769173605,1864396399,1296375910,909652813,1970239776,1701994784,1769174304,221931374,537529610,538976288,1361063473,544500085,1684957527,745764719,543582496,544567161,543519329,1852404597,1953046631,537529646,538976288,1411395122,543518841,860704069,1629500984,1752440948,1868767333,1851878765,1919950948,1953525103,537529646,538976288,1293951008,1329868115,1768169555,1634496627,1948283769,1981834600,1769173605,1864396399,1296375910,909652813,1970239776,1701994784,1769174304,221144942,538976266,775102496,543574304,543516788,1936942445,543516513,1768189545,1702125923,1870209139,1918967925,1937055845,543649385,1936876918,544108393,858992180,538970637,538976288,1919885344,1952541728,539783781,544567161,543519329,1852404597,1752440935,1868767333,1667592818,1702240372,1869181810,168636014,538976288,538976288,2032166473,1629517167,1965057394,1735289203,1981833504,1769173605,1696624239,1768714849,1948283493,544104808,858992180,2019893292,1684955504,538970637,538976288,1851858976,1868767332,1948285296,1847616872,1919252325,1919252000,1852795251,1668180256,1701082476,1769414756,1293969524,1329868115,775233619,537529648,538976288,1646272544,1868963961,2003790956,543649385,1885697139,1864382240,1752440934,1919950949,1684366191,543519349,1193307753]},{"sector":8,"data":[1769239653,168650606,538976288,538976288,1918989395,778331508,168626701,1701273936,540160800,1953451048,824210293,858599981,1919252000,1852795251,825111328,1852798752,1931506727,1953653108,537529641,538976288,543516756,1868983913,1952542066,544108393,1948282473,544434536,1952671091,544108393,1869835361,1886413088,1936025964,544175136,1970564940,537529715,538976288,758263089,1702240307,1869181810,775102574,168635952,1750338061,1868963941,2003790956,543649385,543519329,1920102243,1769235301,544435823,1948282740,1293968744,1869767529,1952870259,760433952,542330692,1919251285,168653607,1684632903,1851859045,1699881060,1701995878,979723118,168626701,1297239878,1126192193,1634561391,221930606,538976266,1716068384,1970239776,1851876128,1965061159,1948280179,1176528232,1095586383,1868767316,1851878765,1869881444,1919903264,544498029,168652385,538976288,1718514976,1634562671,1684370548,1936286752,1948265579,1965062514,1735289203,1701344288,544550688,1953068915,221145187,1292504330,1330795081,1866670162,1851878765,168639076,538976288,1970231584,1851876128,544501614,543519605,543516788,1381124429,1663062607,1634561391,1998611566,543716457,1701716065,1919907700,1919164523,224753257,538976266,1919885344,2037276960,1769104416,2032166262,1663071599,1952540018,1646290021,1937055865,543649385,543516788,1230197569,539774535,1396856147,1864379476,537529714]},{"sector":9,"data":[538976288,1313427274,1836016416,1684955501,218762542,1145984266,1413827653,1866670149,1851878765,168639076,538976288,544162848,544501614,543519605,543516788,1162104405,1163150668,1836016416,1684955501,544106784,543516788,1819045734,1852405615,537529703,538976288,1668442467,1953721717,1701015137,168639091,538976288,1461725728,544105832,1701344367,1919950962,1634887535,1629516653,1629513074,1986622563,168636005,538976288,1461725728,543716457,543516788,1145130828,1868767293,1851878765,1919885412,1701344288,1768444704,1160475750,1919251566,2036689696,538970637,538976288,1836016416,1634625890,1852795252,544106784,1684957527,544438127,1293972079,1329868115,1750278227,778857573,538970637,706748448,1953060640,1632903272,1394633587,1886413175,1763734117,1397563502,1397703725,1701335840,221146220,1426722058,1380927054,542392653,1835888451,979660385,538970637,1411391520,1428186472,1380927054,542392653,1931505711,1668573559,1936269416,1953459744,1836016416,1769234800,543517794,1752459639,1701344288,225062688,538976266,2004033568,1751348329,218762542,1296126474,1447645764,1498623557,1698963539,1701013878,1769096224,980575606,538970637,1444945952,1684630625,1818326560,544433525,544370534,543516788,1145913682,1702259058,1936278560,2053722987,1634738277,1701667186,544367988,224752225,538976266,540287008,1869768820,543713141,909586995,168635959,1750338061]},{"sector":10,"data":[1868963941,2003790956,543649385,1629516649,1919902496,1952671090,544108393,1948282740,1663067496,1634561391,1814914158,543518313,1886152008,218762554,1297040138,1060053072,1818576928,168639088,538976288,1819168544,543518313,1886152040,1919903264,1701344288,1297040160,1868767312,1851878765,1680810084,1769435936,543712116,1970235507,1931502700,1702125940,538970637,1948262432,544498024,543516788,1634100580,544500853,1836216166,1763734625,1701322867,1701077368,1634560355,168636012,775358989,1699225651,1819632498,1142977381,1819308905,1092647265,1953522020,673215077,1162367821,1127105362,220810575,757935370,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,757935405,168635693,2032166473,1965061487,1293968755,1329868115,1682251859,1919906921,544370464,1935753809,1998611305,543716457,1699225697,1819632498,1679848293,1819308905,168655201,1885430881,745694580,1853190688,1213418784,776163909,541937475,1868981602,2032166258,1914729839,1696624245,1701344361,1919950962,1634887535,168636013,775358989,1112612916,1667855201,1850679840,1920091424,539128431,1835888451,224685665,757935370,757935405,757935405,757935405,757935405,757935405,757935405,168635693,1768713807,1746953582,544238693,544370534,1919117645,1718580079,1112612980,1667855201,1668180256,1701999215,2037150819,1635021600,544433524,1952540788,1313802765,1381123360]},{"sector":11,"data":[1377849935,1297437509,1162747973,1763726424,543236211,1768710518,1953701988,1835365473,779382373,1701336096,1919902496,1952671090,2037582349,2019652718,544434464,1713402721,1869376623,221934455,538976266,1159745103,1380930130,1414481696,1279008847,793071177,1161969996,168640076,50334221,33948144,1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602,482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,750704,161352026,166398424,168495608,408226361,461380096,7243]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[16931405,40,165871648,118161407,128,79233040,30,1]},{"sector":15,"data":[0,0,0,0,-1192457387,-1914175486,971527740,-28915944,636157953,-771858805,108432355,1756901631,1273516064,79987524,1342197944,1344301240,-2092679704,1191118020,71732222,2130593337,543733971,471001168,-402471805,113705326,268445352,1343226040,-2095976216,144900804,539943,-1834938251,648586022,299624528,-1560099709,1048782600,1946167048,1354771223,1342177720,-2095560984,146277572,-85438464,46433045,-1557753695,78718744,648554195,648560259,-955878144,-14243834,2017362943,1383333922,-1202667477,-397410298,-998041585,168216324,-1207171033,-1202706800,-397400310,-998029824,647799044,-1560280795,-1073010936,1048585333,1962944144,168216349,-1207893977,-1202706800,-397400310,-998029864,647799044,-1560280795,1756899080,1756909601,1558728736,79987459,655898367,-2096010008,144769732,1958742823,146734,54336372,1027240960,1047789573,1946160957,112706,357296208,-352140157,467974158,505936,394127440,-2096839549,2255934,1048785780,1962943086,1354771235,-352320072,467974202,571472,-457647381,163074075,-1194202368,-1202709532,-924123126,1344433848,-352317000,1849590550,141885474,-1202667477,132841476,1344433848,1342181560,-2095634712,-2115500860,137821980,349693991,1577239683,-1017256565,-1192457387,-773324778,1187468858,-956301060,126022,16664263,-163133696,1340669952,-96024830,-1866989568,179851302,-924299225,79987509]},{"sector":16,"data":[646987395,-385649664,-256376413,-1777977050,-2092141274,1962999422,653566278,653661835,-1980873079,283897942,-1963172213,-2021070266,1191125032,-297336836,653156036,1183319946,1975519978,1354771427,1344201912,-2092797464,1187448004,-956300802,64582,-1207840279,104408816,1265968790,16678531,-190757516,-166294746,-297367258,-336570743,-60912880,-1997912438,-14686073,1191181382,-295779090,-2012771802,-1073026490,-1070865547,518305872,1109190736,-955988861,128582,-16678423,-1591275002,104408728,309536530,-1946526069,-1977150922,-1568176124,-96010469,922739179,1183655674,-404205326,79987521,-1728887158,1946177597,-385647013,1060962476,1025143808,1014235201,1342180280,1343988408,1342183096,-2095419928,669583044,-129579263,-1070923476,-126419120,-2095724824,1191118020,-125926920,-360840907,723195880,1860718784,46433043,577519235,-943885056,19033094,15788288,577912451,-944933632,19034630,14739712,578043523,-945982208,19035142,13691136,577781379,-947030784,19034118,12642560,578174595,-385649664,113770362,74358,-2097107479,2259006,1743324020,2013710335,-385875678,1379729562,1035301888,-1066139565,1946178877,5717451,1206507892,-1874951169,2004156198,1586173163,305564666,-2012968409,-14982521,117439046,-1734269166,302397734,-1578929625,20784784,1024553984,846462978,1946157885,605475,1156255860,1342180280,1343972024,-385870408,196673285,1656246272]},{"sector":17,"data":[196628507,-17307392,1342180280,-384081224,-1070858519,243792,348252240,-1207647101,-397410293,-998043019,-955913470,60486,-1557752671,-1734269170,655532838,15498883,-1461124236,1816036349,125042722,577781379,-2096204544,2255934,1048780404,1946165878,1354771223,1342177976,-2095811864,196609220,652759040,46433042,1575324510,-326412861,-399512904,-950650848,130630,-786659641,-2033778688,119064,-786790713,683147264,1996443680,1075374084,-16464765,-2037578634,-397357032,-998031350,74907396,1344005304,-2092958232,1586169028,25133060,-952011718,2558470,647018521,655013968,1107486800,-2096839549,2558014,1586177653,647012356,126370052,-972792181,-1959132857,1204159582,-2037579774,-11481064,1944585334,79987519,-1207666945,-397403164,-998031450,73304836,1543667584,-1259797643,1086556928,-2037559232,-397357032,-998031478,411471108,1183535312,197892,1064888400,-1962621821,1204159582,113728514,1191192330,84166283,312672259,73304871,764938122,279117888,647018535,655013968,1097525328,-1593523069,19211932,654877440,108314635,-1557753695,1048782600,1962944264,6076488,74907472,-2093848344,-2037840700,-1072967658,2092434805,-15275230,1776813174,46433087,1208239619,-803830213,2125991284,1996443682,1052043268,-1929067389,1355815046,-402360577,-998031706,367650820,187107491,-971737920,18440198,-1558826264,-1070914950,374007888,-402471805,-974645356]}],[{"sector":1,"data":[408021015,-1207666945,-397403164,-998031694,1354771204,-150988616,-1949230426,511872496,1996443857,248899588,-1559837565,-35051768,138314496,913637415,-786790657,-786645373,-955485184,13703814,478594816,-1207959343,-1493762024,-259272422,-786529651,259188816,-1560099709,-1098832120,16765210,1048822642,1964123912,134661923,-956301273,13703302,448692992,91554257,518457030,448692993,74842577,-786788609,16678531,1048788340,1962944264,-28915914,-1098711040,1962987802,178193,74907472,1342182072,-2095664664,1048774340,1962944264,74907410,-2097123608,1996423876,19851270,-2096970621,2558014,1048785781,1962943084,448200468,512134609,1996443857,74907398,-352041240,448200466,512134609,1996443857,74907398,-2096782872,144902340,445040423,-956301103,30481542,138314496,108265511,-786921785,-1098711040,1946210584,-13702909,1575324510,-326412861,-402651976,1448555872,16664263,74907392,-2093102104,-1991769404,451673158,-1946394997,947913846,185365852,-955746853,130630,-243969,2122579022,997982460,16678531,1988834677,74843132,1949973632,1547468842,2122566261,-999030532,-1560329078,76161640,-1205704286,-1202716580,-397401496,-998035156,1958742788,-2085295170,2130771070,-62470389,1586167808,509444,66877067,1149895798,577282815,1772225674,6076450,577288272,821487696,184861827,-1962183232,2123103326,976846852,1988823669,73305084,82118]},{"sector":2,"data":[-443850914,-1957313699,16955628,1446287336,1344268472,-402360577,-998032218,73304836,1962950528,168216371,-1206321113,-1202706800,-397400310,-998031700,138314500,410320935,-1610326389,1090791056,1586169736,21480964,73304890,149446,-1207666945,-397403164,-998032290,74907396,-2093173784,37552836,-1957661440,2139096158,1198864897,654851715,-968854272,-950271417,2558470,71732039,-1560280315,1586177810,-1744336380,-1560264659,-1866979568,179851302,904417319,79987518,623287457,144900097,1958742823,647012614,-14219101,-2037578634,-397345024,-998032398,74907396,1344005304,-2093226520,1586169028,25133060,-952011718,2558470,647018521,655013968,1038805072,-2096839549,2558014,1586177653,647012356,126370052,-972792181,-1959132857,1204159582,-2037579774,-11469056,1541932150,79987515,-1207666945,-397403164,-998032498,73304836,1543667584,-924253323,1086556928,-2037559232,-397345024,-998032526,8817924,1183535359,197892,996206672,-1962621821,1204159582,113728514,1191192330,84166283,312672259,73304871,764938122,279117888,647018535,655013968,1028843600,-1593523069,19211932,654877440,108314635,-1557753695,1048782600,1962944264,6076508,74907472,-2094116632,-2037840700,-1072955650,-2135423627,-15275230,1374159990,46433083,1208239619,-16873925,-2101867148,1996443682,983361540,-2147171197,788463806,-2037576332,-11469056,-2014837642,-1928598726,1358889094]},{"sector":3,"data":[-402360577,-998047646,74907396,1344005304,-2093306392,1996424388,990046212,-1962752893,73305072,-1560395638,-397204888,-998032656,-1947170046,1082786910,577348351,1342201016,1344432312,-2094099480,1765606596,-2095811550,2558014,-2068312715,1996443682,975235076,1577370755,-1017256565,-1192457387,904396810,1183536690,-96040698,983754832,50513027,1183447622,-1955206152,1065417310,-2143849170,1965949311,74907435,-2093317144,-259325244,-972792181,-1207894208,-11534244,1458046070,79987501,1204213899,1182990337,1022034938,49956483,783824619,1996443648,772466938,-1996176253,-1072955834,1183516277,-28931592,738084491,1183447622,1996443900,74907642,-2093332504,1183516356,-96075268,972572299,-2089616826,1342201016,-402360577,-998036231,-163149564,91602955,-350058824,74907413,-2093351960,1174602436,1178290180,-1207077642,-11525496,1206387830,79987513,1575324510,-326412861,-402547528,-1202310820,-1924136832,1358915718,-2096405016,1996424388,1686539526,1541951742,79987513,1344441016,-26966387,957147216,-1207647101,-1924136944,-1924077498,1358849158,-2096531736,-253163836,-398002688,-2089782256,2256958,2122344820,1668558577,-1928956161,1358849158,-2093410840,1183646916,-2037559055,-397345180,-998033210,579778564,1686539600,-1209511682,79987512,-16091393,-2037577610,-11469212,1692927094,147096575,-10058103,-1928956161,1358849158,-2093428248,-1866988348,-2037559262,-397345180,-998033278]},{"sector":4,"data":[-9835772,1183648374,1996443880,25225224,-1996045181,201286790,-162431808,1964042310,1983808331,510918690,-150988616,-1946196818,141951984,971720331,812778308,1183516789,21248489,414721654,1689188096,66096127,1962870902,24444675,1357399693,-16353537,-1880619914,180650753,-10058103,-10043773,-1928432384,-397350842,-998045352,1720092930,1723761663,57999615,-1191247127,-1924136832,1358915718,-2096468760,-1098709820,1964179302,1720108806,-1962934017,1593796230,-1017256565,-1192457387,-303562466,-28915921,1048576000,1946164967,172949251,16402119,-955716864,65094,-1946532097,1178143302,-385648902,2122514599,57934078,-1207918871,1861681176,138806266,-244087,-2037578122,-397345054,-998033474,-62485756,1342179589,-18708851,929884240,-1207647101,-1924136944,-1924079034,1358881414,-2096638232,1183385284,1195518,1586170229,159351036,-1961200384,1178143302,-1953729030,2139159646,-2089549815,318668419,2062091124,1379827967,292814873,299952211,-1996307325,-1072955834,1743324021,-60912641,-16549889,-11337353,1996424822,7661572,-1995783037,1273626182,-28931073,-1017256565,-1192457387,233308164,-415334353,57933854,-955756801,64582,1182992363,1191122948,138841084,2013021753,105286452,1342179589,84166283,-397410295,-998046646,1958742788,1379827929,276037657,-402229505,-998043294,-28931838,-1032536053,-335788405,-18429,-1017256565,-1192457387,-1444412894,74907438]},{"sector":5,"data":[-16873843,918087760,-1962621821,151324742,-2037559296,-397345026,-998033818,108461828,-34175347,915990608,-1962621821,151324742,-2037559296,-397345290,-998033850,-158954236,-2037559043,-397345026,-998033752,-91846396,1975520254,-24736444,213405950,2095599616,79987466,-17135989,-2147244567,2025022,1048784500,1946165868,-158954230,347623677,-1928795392,1358820998,1342182328,-2096476440,-236452668,-91846391,1916699646,-881524702,518391494,-88177919,91554558,1609154603,1816036099,309592098,-34175347,1030224,169470032,-385563517,-2037579508,-1202651658,-397410290,-998045177,1354771204,-16873843,830138448,-1996176253,738063494,-2037559104,-397345290,-998035096,-28931836,-34292093,-385649153,-12779331,-385649153,-1224802123,-639042060,46433078,-17398135,-17262967,-385976577,-998033720,-528054014,-493450755,-158954755,1076730109,-226064128,-360280579,-1224781571,1944649202,79987512,-11485141,1358818998,-34556161,-323551408,948496637,-2081927086,-460945096,-426341891,-158954499,-124351490,-528077826,-493478915,-426361859,2134932733,-460965114,-1925679363,1358820998,1344070840,-2093667864,-457702204,230182940,954748928,79987465,577177286,-189333759,806414589,-16595837,132710006,46433072,-71191,-386009930,-998035462,-25755902,-2094009880,-2037579068,-397345026,-998046886,-91846398,1958743038,-24736497,-457682690,-873967589,-26613452,-1993961311,-2080511866]},{"sector":6,"data":[2255934,113732981,9998,-1924087765,1358820998,-2096846616,-2037840700,-1072955654,-2037572492,-1202651658,-397403164,-998034286,-390660348,72083709,-385694589,1586232870,647274504,1048774536,1946165876,-1809416187,1586232870,647274504,393479992,1342177720,-34175347,72869968,-1996176253,201259654,-1196460608,-1924071425,1358820998,-2096994840,-2037840700,-2037514502,-1202651658,-397402652,-998034386,-88177916,-2039152386,-1993961311,-1577124730,-2037832024,-2115371554,-88177920,57934078,-16743447,738057910,922702016,-1224792296,-1507864,147096322,-17135991,1517666315,-1993961311,1358814854,-11485141,-14215114,-385942346,-998046928,-91846392,-499220226,913571867,1344136376,1344070840,-2093761048,-1224801084,1994981116,46433027,1344136376,-2096990744,-457702716,230182940,-1192734720,79987463,-17135929,-1465778177,-561628890,-385649155,-1098645645,1962999546,168216381,-1957232345,-1543570298,1183524620,655270666,-1559476597,-1866979568,179851302,2112376871,79987509,647759606,-1593478143,116074128,623287457,-2037841919,-1098645766,1962999546,-55115922,49801470,-1996307325,201259654,-1928235840,1358820998,1344005304,-2093802008,1273693380,-1979162997,1008739335,-2147257312,1586176007,-1744336376,-2094592349,2255934,28840821,-2037559296,-397345290,-998046995,-91846396,-88177666,259260670,-34175347,467974224,852813904,-16464765,-2145227258,1827390,887686005,-91830274]},{"sector":7,"data":[-973078274,1827334,577177286,-31332095,-1017256565,-1192457387,-1981284348,1586189866,-2012771836,-1073021370,1586175348,-2012771834,-1073021882,1178079604,721712382,-15209536,1191117894,-1948783866,1988822110,939821574,-1192725241,-1956773887,1438866917,45673611,709027840,-1560000885,113714956,1207969546,1344704696,1344735928,-2093717528,116786372,1946232476,647012613,-1667168533,75046,-1946270071,1438866917,45673611,705095680,-1560000885,113714944,1224746762,1344733368,1344704696,1344735928,-2093715480,116786884,1946232476,647012613,-1667168533,75046,738084489,-457682752,-471314402,-28931279,-1017256565,-1192457387,-1175977982,168216361,-949223385,-2128147450,235325216,-956301273,304549894,105286400,-1960373085,312673350,647018535,655013968,868673616,-167459709,19307526,-1868495500,-1593382106,19211932,-28931840,-1017256565,-1192457387,1709703170,168216361,-949223385,-2144924666,235325216,-956301273,19337222,71731969,-953740637,-14216186,647018751,655013968,863168592,-167459709,19307526,-1868495500,-1593382106,19211932,-28931840,-1017256565,-1192457387,300417026,168216361,-1958674393,279118918,647018535,655013968,859236432,-167459709,19307526,-1868495500,-1593382106,19211932,-28931840,-1017256565,-1192457387,-706215934,168216360,-1958805465,212010054,105286439,-1960376669,279119942,172395303,-1205399901,-1202706688,-1202706800,-397400310,-998034644]},{"sector":8,"data":[-1677265402,91488550,-349794143,647799046,-1996488411,-443810234,-1957313699,309484,-953646104,2558470,71732032,-1960375133,111347270,138840871,-1960374109,245566022,-62486233,1344733368,1344704696,1344735928,-2093819928,116786884,1946232476,647012613,-1667168533,75046,201213577,-1592953408,1178150544,-972720900,18604550,-1946270069,1438866917,45673611,672851968,654968519,1183530496,655139588,1344704696,1344735928,-2093858840,116786372,1946232476,647012613,-1667168533,75046,-1946270071,1438866917,45673611,668919808,-1274657142,655008579,-1560000885,-1866979568,179851302,32002087,79987506,647759606,-1593478143,116074128,623287457,1183383553,1575324670,-326412861,-402651976,-950655072,2558470,138840910,-1960374621,279118918,647018535,655013968,834594896,-167459709,19307526,-1868495500,-1593382106,19211932,-28931840,57982987,-1207924759,-11534187,-400212682,-998047235,106859268,-1766324344,922701824,350758205,79987458,-1996071285,-1732771513,922701824,15213885,79987458,-1996071285,-1699216569,922701824,367535421,79987458,-1996071285,1468597575,-62470393,1183514624,10356220,1027014480,27519013,-1962621821,1586232438,155224070,-2080618753,1913650302,1354771421,1344201912,-2094073368,1183515844,-443851010,-1957313699,309484,1445383144,654968519,-1866969344,179851302,-169324505,79987504,647759606,-1593478143,116074128,623287457]},{"sector":9,"data":[1183383553,1958743038,8907011,1342215608,624768767,-2097072920,1586169028,-1207465980,-11534186,-400212682,-998047413,73304836,-1207875703,-11534184,-400212682,-998047433,73304836,-1207744631,-11534182,-400212682,-998047412,73304836,-1996142711,1187448663,-1962934020,-1643774906,922701824,-622320323,79987456,-1946388853,1082655838,-62456055,268205699,-1070867086,518305872,774957136,-1962621821,-1956708794,1438866917,-1070338933,-2144992280,2254654,1187448180,-16775164,535299190,46433061,-1017266133,-1192457387,-504889342,1187468837,-352321282,-28931300,1342210053,624768767,-2097123096,1586169028,74877950,1191116936,105286654,1929266745,1354771420,1344201912,-2094152216,-1956772668,1438866917,45673611,630908928,-28915882,501940224,-1946263925,9045110,-1014280040,1342210053,624768767,-2097110808,1191118532,105286654,1929266745,1354771419,1344201912,-2094170648,-1956772668,1438866917,79228043,626190336,-1996208501,1183579718,-62486266,-1202667477,-397402396,1589914966,126494460,1575324568,-326412861,-402651976,1183524136,-28931836,-1996077429,-1070859194,518305872,757917776,654073540,-443873397,-1957313699,309484,-1960509464,1183384646,105286654,737953417,-457682752,65556510,-60898259,638028582,-1962780789,1438866917,79228043,617801728,-1996208501,1183579718,-62486266,-1963172156,-2010773434,1354771207,1344201912,-1959997976,1438866917,79228043,614918144]},{"sector":10,"data":[-1996208501,1183579718,-62486266,-1946394940,-1993996218,1354771207,1344201912,-1960009240,1438866917,79228043,612034560,-1996208501,1183579718,-62486266,-1946394940,1451952198,126428682,39291174,-1202667477,-397402396,-443863954,-1070349475,-1205580824,-1202706800,-397400310,-998041841,-1677265404,359924006,1344704696,394651728,-1207647101,-397410303,-997982695,-1957313790,178412,-1591470104,279127696,168216359,-1201331417,-1202706800,-397400310,-998035908,-1677265404,125108518,646987395,-972589567,18802182,113645803,-2097144090,2527294,1187448693,-352320770,-28915963,1183514625,1575324670,-326412861,-402647368,1183523776,77060,1979716925,21620995,781434883,442017791,15746758,150881991,-330905856,1187446785,-956301078,192070,-972984855,-956239802,785990,49039047,-958141696,-956239802,196166,-1292601,-959190272,-956239802,261702,-1292601,-364460288,1187446784,-385875474,1187381554,1187447024,-352320258,-263797021,-28915968,-924123115,15746758,50218695,-330905856,1187446785,-352321046,-263797043,-28915968,-370475005,15746758,100550343,-958469376,-956239802,1048134,32261831,-364460288,1726545921,-263796993,-28915968,1187446794,-352320788,-263797016,-28915968,1187446795,-352256020,-263797032,-28915968,-286588916,15746758,234768071,-330905856,-1830092545,15746758,251545287,-957420800,-956239802,1048134,1187439595,1187447024]},{"sector":11,"data":[-352317186,-263797032,-28915968,-840237039,-1041217850,385763015,-962073856,-943591354,1572422,1187421419,1187447024,-352321026,-263797119,-28915968,1978204163,75399679,1081868588,889486977,-969310463,-1962872762,1183384646,-18290178,420944124,423041319,425531730,427628904,429070728,431561129,433330633,435100132,436541946,437983760,439425574,755254923,356319233,-385649152,-1073545054,-1476448621,1183521620,655008766,-1544665461,1183524620,655270890,-1561311606,1183459088,655467244,1344704696,1344735928,-2095760664,-1209465660,105286400,-1930148215,1187444318,1187384306,1187381491,1187381496,1187385593,1187381498,1187381755,1183523068,655008766,-1544665461,1183655692,655533042,1183556843,-196703994,-956932468,-972295610,-973016250,-972949434,-341706426,105286597,-1930148215,1187444318,1187384306,1187381491,-1427439112,738492033,-2130019327,20251774,1441334143,49735935,1342177720,-2080682776,753599172,446306970,446306970,446306970,449387209,449387209,449387209,454892233,453122845,454892290,454892317,449387209,-1202667477,-397402396,-998037194,-1677265404,829686054,655099591,113704962,9998,655361734,285656576,-1866989273,179851302,1223184423,79987476,-1207794712,-397410303,-997983527,1575324418,-326412861,-402652488,1187455188,-956301058,2558470,647018679,655013968,3127376,696576080,-2147040125,2527294,113714292,-1224595702,1344704696]},{"sector":12,"data":[1344735928,1342189496,-2094438936,1048774340,1979655824,-28915963,1183514625,1575324670,-390057021,113713280,-1224333558,1344704696,1344735928,1342189496,-2094451224,-1834940732,-1957313754,-390056980,113713244,-1224268022,-1560000885,-1866979572,179851302,800608295,199774208,113541929,-1957313699,-390056980,113713204,647898794,648808134,-1643723264,113639718,-956160353,-1339645946,-1576614106,-970540762,19309574,648349383,113649362,-956291417,2535430,-1308178686,-956301018,-265899002,-1241069786,-971415770,2537478,649660103,113705473,75451,649922247,113714928,425666239,650184390,-771307776,-956301018,2544646,-704198912,-953747418,1596381190,-637090279,-1799878874,-608677854,-1142403034,79987495,1344444344,1344724664,-2094567960,-1699216188,-508014558,1609060390,79987495,1344445880,1344726200,-2094575128,-1598552892,-407351262,1139298342,79987495,1344447416,1344727736,-2094582296,-1497889596,-306687966,669536294,79987495,-1560000885,113714962,9998,655623879,-1017305430,871140181,523167936,-16353537,1558709366,79987707,-16730136,250087542,46433273,-1070349475,-1205923864,-397400320,-998036984,168216322,-953867481,-869855226,654483743,-1205401949,-1202706688,-1202706800,-397400310,-998037144,-1070349562,-954278936,606538246,654358581,647018576,655013968,692774992,-1593391997,-1029495150,-1006188762,-1593835482,-995940608,1354771238,1344201912,-2094611992]},{"sector":13,"data":[12059844,-1645719513,46433065,654968519,113714468,530851600,-1557724511,12068614,-1866969049,179851302,-35106777,113541928,-1202667477,-397402396,-998037882,-1070349564,-2145491992,1663038,922684020,-236445062,46433277,-326412861,-402649928,-950657464,19335686,654358556,647018576,655013968,3127376,668395600,-2146909053,-14249922,-1444347020,1376175616,-1801387751,424977190,-1574530400,1183652179,166220024,46433065,-150991688,1344705574,1343050424,-100609,-14247882,-400095690,-998037298,-163133686,1542127616,-150991688,-259262866,-1963696501,-1962061184,899272,-1946784009,1384679664,-196673792,217349763,213393789,-160499968,1586229387,1387823348,-931848179,-150991432,-259262866,5406918,-1193874688,1861681165,-2133292042,16801727,-654852069,-1577695489,1178147156,-955812874,62534,-1070876949,518305872,629729360,1577370755,-1017256565,-1192457387,1575485444,-28915939,1187446784,-352321284,-25263325,-1205504768,1861681165,5375484,71732048,1342179589,-2081249816,1183384772,-62455810,957961377,-713884602,941183904,74841670,65781803,-1962933832,-1866244635,0,0,0,0,-1205972836,-661781367,774292129,-1591762781,-1557256508,1478434722,-1608581330,2080521247,1275181062,-822081560,-397671496,508559360,76134406,-1064380274,134111208,567105567,1397760205,861341266,868323017,305051903,801964210,-1173976010,1049179682]},{"sector":14,"data":[783819448,-855461358,109852207,-1992940862,-1205682114,78778926,-1942605875,908251654,584072841,-1307431240,909102342,582354572,-1270970058,793418274,-1942618112,908243462,581975689,-838431690,1049179682,1805263564,905969711,583403148,-1002534602,305051682,801966258,-637105098,1049179682,-952753448,220392198,113653258,908337972,586155719,-952762368,170062342,790993408,-1942618112,908254726,584859273,-402646552,1139277872,1390956800,1493725696,1532626783,-2096829608,-872870716,-1205971376,567108352,1914636062,914961930,-1942609180,1579345414,12108632,47940,567136819,-2147359104,28836302,-1021194940,-1153171272,-768409599,-830463539,1140963329,-1262280243,1025625392,57999365,1025043448,91422722,-335544389,178947,-1191181896,11665408,-1007026250,1431766608,2177690,-2146536960,1962475518,-350288380,-1960901118,123690487,1398197080,-919341517,1979711104,-1127991799,-1014226212,-956946197,906589186,583056580,451658636,1912607549,2571534,-1003091593,-1943876420,906488771,582008004,-75250804,-2145946113,58064894,906882041,-1205669725,29229055,-118082816,-75297557,-402426880,-964493228,108197892,41273611,-2137220373,695534078,105993554,12079191,1009765637,158685439,45668491,-349188859,91486465,-346486945,113541894,1560284392,-821957798,-268274,1472945755,-18096,-1359822798,1481232887,-75250849,908162305,584597123,1025078527,225837055]},{"sector":15,"data":[-257870256,520042018,-346545448,520041989,451617496,-25114317,637957375,-352105078,892872201,-1977219979,-947715251,729020676,1959332856,-98279,992347508,637790981,41223483,1950943723,80184069,1928979435,-98294,637564408,1912765699,653079046,910626186,585762502,1397801728,106386769,921275218,585637513,-315193290,557488674,-922025984,-318037132,803734901,-402396416,259129794,17819738,-771072249,870843252,-2096829690,-336001340,1516177156,1560834809,-998024359,-2096829694,-872871740,911364944,585637515,1979710339,2942981,2011694059,-1274055936,47961,-466476595,-116996989,-75296533,990606591,-402164543,-998047568,57866502,-1017619622,-2095118818,460653049,-1977220428,522308885,-1310145910,520494592,-1977219213,567083349,-1274024968,1959332610,361375241,1229398477,536408949,105928643,519736147,-1327920377,-1359807462,-651492491,1540066123,-1017161721,-921976781,102649716,-1958693857,33129431,567093365,-1977200609,5957637,520494680,-1258813837,567099968,1031808668,-1962773222,-821957695,-268274,1364531947,-1946179864,567106025,199950963,125093947,1979246651,1572965122,666419999,310016,-2134703691,292880382,1971373814,-1928913396,-1188893890,-1572862,1460061182,-465648586,1962871586,1032005143,276101120,1912945190,1161438727,-117344511,-370456761,918751071,586024591,-1835803853,-231278794,-147418334,-2094861770,91621882,-348667264]},{"sector":16,"data":[818053123,-1073004206,-620034955,-108839820,-2146536189,1965820540,922695174,-348052741,117015332,2088767093,108342282,-80281802,300630306,1963587971,175931404,906392876,586888959,-768371903,-768367893,-13189069,-1021120970,-921972173,632562036,942014640,638219557,1946248504,1975794180,92939790,1946110952,1111967489,1457747273,-317994361,911029620,586169987,-1976797952,805570116,21314086,535495285,74788924,74764811,-404016125,-314671050,141950754,1229537858,65752911,1476394938,-1509077,1935237117,9365763,-2134209711,1946158716,1959332621,1195985158,1577184071,-922021653,-346160267,-425207,-919403915,1718943499,1359370069,-2093561549,2289726,1156987765,141889287,-402490172,686489959,218580214,1156975732,108269063,201802998,2093222005,24504322,1156976363,91556615,-352187672,47835139,-352298776,2287619,123275122,-346137249,180650756,1048786681,1962943216,-385650171,-952697086,2289670,-768359680,586195254,-234436810,-402650590,911801977,586450824,1090224963,-655883403,1976172032,168671469,-192444106,-398245086,868417735,108822747,907244800,586450887,1128475936,-192428490,-398254046,861733035,919745499,585764488,973685898,706705089,-152007999,1954547524,172263957,-192444362,-75283678,-402426560,-822214529,2088823669,225705992,1929923640,139209224,1284166026,1959332616,121959973,-166955761,1947207492,92939782,1476520775]},{"sector":17,"data":[-192444362,-75283678,-402426560,-906100669,1157028725,427130887,359986698,906642570,586450824,1090224963,619185013,1976499712,121960171,-167217905,1947207492,168684290,906589394,586024591,-143275266,1426064104,1460031939,-880081122,1049484083,1541939956,1594192636,82532615,-116996989,1156996547,309669895,1342540326,-45946815,-1977219469,-128974523,-1977217557,1958742533,-348043516,1442393077,-768385597,-952713165,270725638,-153406720,1965033284,92939814,218580214,-2136469899,608371572,113718911,664306,235357430,-952760459,170062342,-161944832,1963984708,93005352,218580214,-990506891,1124365440,914351232,586286791,1156972554,125111815,-234436810,-352318942,93005354,39160614,218580214,-956952459,1124365440,914351744,586286791,1156972554,125111815,-234436810,-402650590,-619971399,-768408204,1431449010,-952738365,170062342,8185856,-1070345677,-197229770,544538658,-402618392,-13238122,1092812598,1149943859,8972293,-13172938,1149911330,8185860,-197229770,544538914,-402628632,-13238162,1092812598,1149943859,6350852,-13172938,1149911330,5564421,-197229770,510984738,-402307958,-13238202,1092812598,-402373494,-13238214,1092812598,-402645016,-1017839570,11548852,586421901,225649101,-200882378,905969698,587138758,1150010157,121959938,1023964432,58064995,-1023384648,-200896714,243807778,-286776598,976636411,1965222414,3192837]}],[{"sector":1,"data":[910246224,586430207,-952738365,170062342,8382464,17253622,-2143937164,2295102,1149900149,2081176578,2115451908,1348579334,-1341854911,859918448,-153996352,1948256068,88377868,905997544,587020031,121960001,-167348960,1947207492,71600652,905991400,587282175,54823489,905988328,587282175,38046273,17253622,-2143939468,2295102,222039157,204210812,41222204,1390939312,-1262266885,-1929334728,-853347306,907244321,587531975,-969539583,975372550,-49887690,918760994,586417807,-368146378,-81532894,238696009,91562730,1342189752,-13221567,-1021119434,-2145496495,142000378,254067338,48958644,520544906,567138187,184188959,-401443592,192150216,-494221174,-511041075,-1274876936,1510240768,-2096829607,-1007090492,402654719,6291457,7602178,8847363,10027012,11010059,13107212,14549005,15400974,16056335,17367056,18481169,19791893,21757974,22806551,23593260,24641837,34210094,38207791,45351216,53805361,62128434,69206323,80937268,85786933,1668172055,1701999215,1142977635,1981829967,1769173605,168652399,1970230038,543515506,1752457584,1902473760,1701996917,352980324,1867385357,1818846752,1914729317,1634496613,224683363,168628746,1713401678,1936026729,1684300064,168649829,1818838563,1633886309,1953459822,543515168,1768976227,1864393829,544175214,1702065257,168650348,1936607513,1768318581,1852139875,1768169588]},{"sector":2,"data":[1931504499,1701011824,219154957,1885688330,1768120684,622880622,218762545,1681984013,1735289188,221324576,168630026,1713385765,677735529,1914710387,1634496613,224683363,168629258,1713385765,677735529,1629497715,1684366436,219613709,544165386,1701603686,1868963955,543452789,824516653,1344342541,1936942450,2037276960,2036689696,544175136,1953394531,1702194793,773860896,168635936,1376390419,1634496613,622880099,673201969,692989785,1091177743,622879844,673201969,692989785,1885688339,1701011820,1768300659,779314540,168626701,1346720405,1162035532,1919179552,828733033,1885035834,828929121,1818846813,1835101797,1683693669,1702259058,1532836402,1752457584,1528847666,542982447,1565536091,1378835232,794501213,168648023,1280329042,541410113,1769104475,976315766,1634753373,1563519092,1701603686,1701667182,1919179552,845510249,1885035834,845706337,794501213,1528847696,542986799,1565732699,1462721312,794501213,168648021,541067789,1919179552,828733033,1885035834,828929121,1818846813,1835101797,1884495973,1718182757,544433513,543516788,1920298867,1713399139,543517801,1713402479,1936026729,1879706926,1683693600,1702259058,1532836402,1752457584,538991922,538976288,1394614304,1768121712,1936025958,1701344288,1919509536,1869898597,1998616946,1701995880,1818846752,1629516645,1948280178,1700929647,538970637,538976288,538976288,538976288,538976288,538976288]},{"sector":3,"data":[538976288,1885696544,1701011820,168636004,790634628,538976321,538976288,538976288,538976288,538976288,538976288,1935959105,2003136032,1818846752,1948283749,1701060719,1852404851,1869182049,1768169582,1952671090,779711087,1851867936,225734510,538976266,538976288,538976288,538976288,538976288,538976288,538976288,543519605,1752459639,542322464,790655599,2004033621,1751348329,221148005,539001354,538988591,538976288,538976288,538976288,538976288,538976288,1869762592,1937010797,1919903264,1852793632,1836214630,1869182049,1700929646,1701998438,1885696544,1768120684,1629513582,1818846752,1919885413,538970637,538976288,538976288,538976288,538976288,538976288,538976288,1684300064,543649385,1869815905,1701016181,1818846752,168636005,790634607,538976338,538976288,538976288,538976288,538976288,538976288,1819305298,1936024417,1634038304,1852779876,1713404268,1936026729,544432416,1819043191,544432416,1919970933,1667593327,224683380,538976266,538976288,538976288,538976288,538976288,538976288,538976288,1701603686,168636019,790634678,538976339,538976288,538976288,538976288,538976288,538976288,1819305298,1936024417,1818846752,1763734373,1818304622,1970479212,1919509602,1869898597,1936025970,543584032,224749684,538976266,538976288,538976288,538976288,538976288,538976288,538976288,1953719652,1952542313,544108393,1701996900,1919906915]},{"sector":4,"data":[1126182521,1869508193,1937055860,1769414757,1948280948,790652264,537529665,538976288,538976288,538976288,538976288,538976288,538976288,2004033568,1751348329,1292504366,1462706208,538976288,538976288,538976288,538976288,538976288,1461723168,1937008993,1919903264,1970239776,544175136,1702063721,1629516914,1936286752,1700929643,1701998438,1734697504,1768844905,221144942,539006730,538989871,538976288,538976288,538976288,538976288,538976288,1885688352,1701011820,1965564019,1952539760,539587429,2037149295,1818846752,1948283749,544498024,543519329,1701080175,1752440946,168652385,538976288,538976288,538976288,538976288,538976288,538976288,1931485216,1668445551,1768300645,779314540,1851867936,544501614,543519605,1752459639,1701344288,541142816,1953068915,221145187,-1928917494,-2128015298,-888792127,16778497,327679,1954039057,1701080677,1917132900,544370546,118370597,791690893,-887045757,16778498,327679,1918980110,1159751027,1919906418,238101792,1413385479,499221295,-326412853,2123060823,172329732,-1962570928,1300955741,106269444,1594389899,535206485,1465712640,-1996063093,39684357,-1996206711,1971914325,-997548280,1477199241,1577731465,1575324511,-326412861,2123060823,172329732,-1962570928,1300955741,106269444,1594389899,555522645,1465712640,-1996063093,39684357,-1996206711,1971914325,-997548280,1477199241,1577731465,1575324511,-326412861]},{"sector":5,"data":[2123060823,172329732,-1962570928,1300955741,106269444,1594389899,577411669,1465712640,-1996063093,39684357,-1996206711,1971914325,-997548280,1477199241,1577731465,1575324511,-1173960765,-67108829,598544009,598673095,113704960,9154,598935239,113704960,1566254201,612042439,113720444,725492861,612304583,434649917,-1206684922,643039231,975576459,-1207733489,-379912190,914948364,1465066428,-1004630699,-1157171677,1047863331,111470764,233322354,-399346682,376768062,599459574,-402295520,585827800,599459574,1310422081,126359787,91569468,599461504,-1612168447,-1396083962,-347928696,914968259,130425777,-1071740672,495658531,600061581,1949252736,574390321,116787060,1963008955,1200236112,971256321,1931717894,598581521,1128521937,-1960388605,8448031,113731307,74671,-1977196821,-466484921,65065280,260712152,-921965262,1396903796,-400585946,1935343803,-498908353,-1358510094,-352320733,1200236083,1088696833,-670834479,839354918,1088475620,-1977165821,200094223,1125086409,529213011,1526748392,1128467059,113767138,271279,-1956946083,-1591497458,915088303,378217393,512369587,-1007148107,126559824,1962934953,-1392050428,3964963,27859061,-955747072,35892998,1343154944,-4979792,1476433128,283640811,-104638463,642864579,839405450,1959332845,158305549,1929529320,911368,-335939870,-1037137659,1566177315,2122327747,57933824,1173809989,-1156677437]},{"sector":6,"data":[-924315613,-2143128833,-282871002,599695696,100779563,-1957157956,-2145141194,594870332,989822080,113707125,598959,-2094653717,410255423,17299238,-955157248,35892998,-402003200,-336068461,183236877,-1274826672,256255,1472460888,75467558,598949513,637896742,1342268808,639877793,1476543881,175440188,72714534,105744678,37509611,-1993996683,1340802133,-395049156,-462157764,108332604,72714278,71056875,-1130295691,-1993981917,-1943665595,736822877,74811686,106794022,1207314000,74711298,166397104,38270502,-1341819902,12576770,1207314008,57937922,1593872872,-2113485117,642777124,-1073018997,1397757813,113727314,598959,61931444,1610572008,-346530982,268478743,113709172,9135,-2097039128,153333566,65733237,-1450165013,326369536,598673095,-1293418496,53143554,598687363,-1457294071,276038144,598673095,-1696071680,-1354857726,242551075,1948254377,-1358510327,-402653149,1048576175,1963009154,-1354857715,108331043,598673095,-1017642999,76174928,410304522,192231996,97408,80086389,-402003200,24314866,-487897530,1455642718,-1966044590,65071108,-1073083534,199756660,-352024576,-347716095,-1017226518,208896060,1114792252,1048017468,988536612,-1923676589,-2145094594,74712314,611270285,393483576,508711248,-1973046265,-17470,-1174403655,567148543,-1957144230,1166934365,742605571,1607935616,1019435783,1007186480,738490169,-104597456]},{"sector":7,"data":[1381191875,2139825751,92939782,74825738,149684148,598673095,-4980727,921174960,1532649470,1431356248,45241938,1139278986,-398822909,116850546,1946690491,1966947341,2122327582,1853161473,116789995,1947214779,1966750734,2122327562,1517617152,643492678,1962952250,1958742556,-347781552,1178215954,1178825984,642057354,1962952250,-347781575,-1157171541,259276835,38270758,125042720,8290342,639792128,1050615,977016948,-2144990859,1962934398,1007610637,638022912,973110912,-336002188,-1103722235,1516173347,1354979421,1398166097,10283094,1728497502,-956301276,2386182,1795606272,-402653148,376570017,170157987,-401050405,1701970069,170158499,-401836837,1500643465,170159011,-1957530149,-2094775010,527696635,170157985,-1975355932,610902472,964027402,378267786,-75291541,-2046659327,-1961432087,-1591449834,-469097367,-930472075,170159009,-1978239516,1694139368,-1031732109,1583023980,129040308,-335739672,-1268884721,-402411265,113769721,598959,-1017620134,608515725,1962884227,504359682,522080338,-1959264072,1478610390,1371742042,-1966525614,1958742532,1144946747,259260452,1963064192,1949973508,1949187120,1007479596,1009153069,1008890927,-400657362,510852673,-1164902220,-487129078,292934155,242401539,-1075100015,-336013174,-336050683,-1047791359,1354979674,1049318999,76161980,292864010,1962956776,-2113485280,-966917852,-346095612,80109113,-148480256,1962934535]},{"sector":8,"data":[-1358510291,-352320989,-1974052827,1958742532,2811931,1541933940,1191342849,-347715770,599106282,1191183558,598818441,-1453826210,158597632,-1325419440,-65279995,1364443992,611917453,973081017,1124365319,1497496034,1381024603,-1073085302,401094004,-2094370303,1949958524,133637645,494141456,97408,537663349,292708668,225933884,-796237780,112263092,-335818520,-1358510330,1509951779,-391330984,376700960,1962955240,-1157171692,-294379485,599459574,1309242433,-336001301,-1018234879,1364444152,762580284,695468092,628361788,41779238,857633282,1569335003,79921923,3768358,-919401100,1124698662,1946237478,1022943748,-1017423603,113660243,-2145377355,-551306458,913580092,846465340,829697084,209002556,1965046912,1176547335,518766650,41779238,857174529,1300899529,1959332611,244491,20588099,-119404684,1532567612,599106243,599459574,-2147126015,539212558,-353648582,600059533,427089211,309669692,1200247033,-57153281,76154226,1492947176,-336065045,1966029834,-1156677627,-1007140829,-2091690466,2340926,508568949,1431786065,-1896467706,1660991710,-611573299,1560795915,525949535,-1994034088,-1994148298,-1960593378,-1910262218,-2094811106,276037692,141689914,1996571706,99350787,-336902586,526277624,-326412861,2123060823,172329732,-1962570928,1300955741,106269444,1594389899,-128063403,2123061085,-1996125946,1300824669,106268932,-1626835575,1166656650,1166628876]},{"sector":9,"data":[-1956684278,1438866917,247000203,76998656,-1541502122,105286180,468191112,74907393,-2096301080,1183384260,-1539899398,216983588,-1996307325,1183577670,-163169798,-1070922370,-1962896663,1177287238,-196703754,15877831,-193035520,-1947763712,1979970678,-1541502204,939821604,-2090633977,1946219646,-193035497,-1973980160,-466944188,26339408,1023591555,1182007297,-1980479861,1183579718,-62486030,-1980348789,518780998,-1946394997,-1977310154,-27358464,939816587,-15633152,-1014237106,-112897,2122579014,-595656456,16285315,1183516789,71697396,1187449835,-16776974,2095707214,-443851009,-1957313699,309484,1443087336,16664263,5040128,1183455211,1357130492,-2097080600,20775620,-14584576,1191181894,-27358210,-1979418997,-62486528,-629817334,425600,-1014294667,334218755,67008139,76153974,1963345464,-339309611,1589652226,-1017256565,-1192457387,1709703178,-1070901757,-1979824503,1048837190,1963009220,-373282043,12058802,-1209511935,46433032,-1205424477,-397410048,-998045526,651207426,1342178744,385631885,650557520,1117409310,-1996193536,-1072956858,1183516020,-948311046,63046,-1946788213,-1977176522,8975942,-1946788213,-1977167818,8975942,-2114566401,16840318,12115580,1183666177,-1588586756,1344153296,-2130703206,-96040700,-1166688245,-1993944927,1187510342,-1962934026,126548062,-259267542,1962309177,-1373730039,-163149274,1191116936,-129564682,16154241,-941851647]},{"sector":10,"data":[19186694,-11933440,1575324510,-326412861,-402652488,-950664560,65094,-771852661,-960724762,192217126,650624128,721712384,-1960449088,-422445450,939804298,1999029892,-947636213,-1207602650,216727553,-2080487681,1912995454,-18233,1575324510,817103043,37495245,550306419,-1962636865,721420854,16679415,-1107070448,-1896214528,516194775,276036391,-135782634,1354773249,-1207666968,567102719,922674307,617358985,-936998602,-1312388316,1222693636,616997686,915011331,-1014235134,-604512725,567102132,1025412150,-66644443,-1188656961,-819255520,-1426866125,1005068054,-400615936,31982482,-1232126,-14328266,-14328778,-400205258,-397359838,-1984429854,-1193767420,-952762365,-735786490,2078822459,66971649,1342242744,617223935,567095476,-1205518429,567096576,623582857,623707788,12066574,988985893,521544141,631508619,109981411,-1960434371,-989844426,-1943689722,920335322,631381759,521536883,906055145,631899845,62642828,520041984,521545122,624756366,739150630,-1909005568,654259137,1946172800,833836,-215671106,-1190431578,-1070366721,427142898,503768555,-141877497,-1406843201,-22244968,1208054976,385344170,310047,625387392,1140897983,175251917,1954595574,1183809541,2034974757,632209127,-400183617,-1363279710,632209189,-1023374616,-1091794091,-2000738680,8251430,-1088049474,1961371054,1426320128,-1363219317,632209189,-1107269912,-1363204690,7137317]},{"sector":11,"data":[184596968,-2096401216,1962935422,71747333,263782655,375552,625379318,-1274776575,1126288702,132707042,71731968,567102644,631508619,45811683,-1575026944,382017061,12068139,522308901,627588736,504198144,-987403872,-1272616426,522308901,1945582531,-1957736694,-597235,-1007490095,242480955,-1962610813,38079237,503313012,12840683,-1192457387,-397410052,1048773243,1946166638,1847000836,16758821,40495184,-1017256565,-385875272,-1957036453,1926769628,1881029386,-1962642907,870449123,-28972608,-1175047338,-466485182,-533549828,-192873502,-401771435,28901294,753422336,112642,110084958,45753714,1058420736,-1909885915,639974662,2885262,627181196,-1181106125,-13402112,1974382322,-1991817221,-1188732866,-1359806465,-779365897,-1107295809,512622721,1017914685,1023112224,1022850057,175076365,1198224576,540847182,154986612,222094452,-1073062796,574380148,1547445364,-347995276,1103705060,1952201900,1948400890,-338623740,-775844909,-1462692887,-339053311,1017925121,170619917,1009218752,1018852386,1107522652,-919343893,1547480129,574421620,-788331404,-1047798805,-787224111,-764083800,521574379,626671241,-783821053,-2133392409,-500433182,1554236555,64523045,906434299,1128480649,627062469,-1073042772,-2118190475,512636416,65742141,-1398095821,-76275652,-143390404,58002748,167804905,-352094784,-1992912775,1313030975,1948269740,1946762459,1947024599,1958742626]},{"sector":12,"data":[1948400734,1952201767,-454317565,-1404974797,-93037508,108274236,-1426891600,1555091947,-1426855471,581961331,1321593770,1947024556,1958742574,1948400682,1952201911,-320099837,-1404974797,-93037508,108274236,-1426891600,1555093995,-1426855471,581998195,869133226,521579200,1991,628238079,1441565525,624762510,-1047803597,-108271221,741772105,1962281728,650546704,16000,-234458112,1974355374,1083655674,-41157084,-989600303,-1084809450,-2048393207,-812949760,-133956213,626929289,-561117410,-481692109,993820947,-1996131261,1162150014,-1073042772,-303891851,369118857,-443851489,-1957313699,509040364,72780551,-1390037314,276087355,208967232,-1178586217,-1359806465,-336857205,-1956749418,46292453,-326413056,74907479,201313256,-1844153152,-1070335349,-218103879,1238497198,-1275067717,1596050752,-1034033781,-796196862,617350659,104412530,628303046,1342181125,61987025,-645076781,624762507,-1056715989,-661929074,567102132,605057624,-962377488,780899620,369173708,-1950145332,-74323513,-1070394510,-1017256565,-397346701,-1957167080,1942183397,976903,-1711276104,-1017256565,32039986,1117963008,1977879077,1061060643,225575717,225649212,91365436,132842928,1980972176,-1156337662,-1730730636,-1020971101,-135543670,-1947432107,507184222,108143940,-116850504,1051986923,91365837,625379270,-7542528,-2081649835,1586169068,1142831876,-1207602651,720046336,542455,-2092403584]},{"sector":13,"data":[1946159742,-1949748454,1107409105,1265770957,34227959,51279104,1444087366,-1205307128,-335997440,-27883210,-1946401143,1107474641,1174610381,139858694,1317735801,-61436930,-851312456,-1948718303,1317733974,172395016,567100084,-1484782222,-369285818,-1957298395,82609132,2122907442,105286654,1187432587,11075836,-1458539136,125124608,629737206,-972786304,-1954481082,52692054,1035257610,309535181,1962934845,12711689,-385649663,-369557343,-1953235235,83895745,1963262013,-851528695,285259809,1187440875,12059133,-165556924,74744002,1090276992,1090275062,-706149516,105286400,1946288297,239901,-919402124,567099572,-1275019287,-1960719042,12059734,-350106301,1190563943,58032380,-1459574807,57999362,-1191141399,-779354113,-851311944,-1915095263,1068826454,-1073012275,2122323316,259332863,-779363849,-851311944,-1261882591,857853248,-1194226743,567099904,-963614485,-1962869434,-1528297394,139364608,-112906,1190594421,1962934790,-18776061,-1274784117,1931595068,-31987453,-28903789,-150505985,132678,1051996277,1183457741,167977990,1452015174,-851594236,-1814400479,33375990,1190597749,1946157320,29982733,-1207675253,567100161,1190575986,1031094524,-1207675253,567100160,-919420533,1946157349,-149901054,525894,-914357388,1142831904,-1274383835,-1205744322,-974579712,-61994242,-2013148800,-1960491377,1575324611,-339135805,624533980,-1054617353,-2136422093,-914357387]},{"sector":14,"data":[-1957313791,73305068,74767115,33443712,-1017256565,1458342741,629848919,1962950531,-1207493079,1944584197,855995649,619420096,-1543625664,-1935465078,80188965,-964493311,-29047036,915013630,1317741968,-1898411004,649408,-443851169,-823540899,-93044480,-2080448128,-227283207,-66947189,-1459713107,1212314625,359907643,-268185461,1946265773,96600884,-141885438,-335657847,1962839014,-1980169460,-1054081460,-351958712,-17235195,-963903924,-779298164,91541819,-1742828506,41912613,113649347,1023550878,628424702,-268173685,1946265773,1224641522,-1116487365,-268185461,1946265773,96601058,-141885438,-335657847,138906598,74760203,351000718,-1643184602,-1945013211,1003982040,637891783,630464142,-1125435509,856061835,7006400,225756731,1077936420,6219928,1308495220,1894654,1318454644,-1936069810,1003588824,637826241,-1960470365,38242567,-1013333965,-28996783,57934248,1095354411,2147465793,-1709819098,-788236763,-1946847766,1925579713,1925317397,601028365,-389665854,141885452,-355347721,-1070340747,1364378457,1946164712,-24422632,-234622837,-16890681,108497407,-684992885,-27948726,-1017489064,-768389037,1347572254,1342177720,266870534,147096320,536869507,41179994,12833291,1458342741,2122516055,947191816,-1960522561,1183516246,125126660,1912624104,-1958155481,1210391606,-147123852,1149963636,205949186,3860566,-2093976738,-25099066,74655004,108384779]},{"sector":15,"data":[-1711276104,-628417045,-787496061,-754732581,-850873109,-1830194655,1418265737,473336066,130036517,-443851169,1317782365,972524300,208929356,-2130393469,1965366526,1072429554,470014603,-745850510,-147078770,507053685,645080262,-787496061,-773074469,1005310443,50951671,624796121,-1064380373,567102132,-147124878,378078325,-2020465466,-1009677564,-1947432107,-1931572265,-1950314792,-1070398338,-218103879,-9073234,-1190756725,-1359806465,-114568713,1183579783,29816580,-1543343104,-202780343,-204926043,-1946973276,12803578,-1947432107,-1948349481,-24443274,-1064380276,-4603853,-139529473,75402193,27838347,1235485300,-1510741551,-1527527149,-91491445,-1957313699,-1948808212,-1898410786,74877888,856063627,-17984,-772296974,-1493960405,-1071970956,-1946157283,1576700915,-1957363517,-1932030996,-1950314792,-1070398338,-218103879,1238497198,1576700817,-1957363517,508975084,75401991,-1070344309,-218103879,-141865042,-1962508661,139365343,24489714,139340609,-24389129,-1527516277,1589808042,12803423,1458342741,183272279,-839498042,-2012985717,624752454,641469044,1187382900,216779768,-872790330,1157187270,1157121734,-1913366900,1183446598,108956658,1569392011,72190722,-1962519157,2106263669,1593791754,1476156914,-1995932021,39684357,-1996206711,1971914325,172330760,-164428686,-1276638997,114425,1971914123,180650764,-443851169,-1957313699,149717996,74877782,1342177720,1347469355]},{"sector":16,"data":[-102700970,-1995914109,1451882566,-49670,-92074891,-1207470593,-342228993,45649964,-1070903296,-396996528,-997983814,-62486264,738088585,1996443840,-126418950,-106633130,-1962359677,1452014662,-443851010,-1957313699,509040364,-972362621,-1949436858,1183319110,1948597493,1948662794,-163133946,-972231733,-959711162,-968558778,-1941637562,1183707734,-263812620,-1962508661,39684869,-1962652277,1972045397,175505160,-1911914869,106794501,1593791839,1476156912,-1960896994,93063806,-1962523249,92866686,-1996333687,1435042893,141920518,1913275791,-336186620,-121575416,-1962933826,209029381,520799363,-443851169,-1957313699,-1957210388,92996734,-1962779253,1435173965,141921030,-854950517,2123061025,-1996125946,1300824669,106268932,-1895271031,74582597,149681715,-1091013144,92995585,1594652041,1575324510,-1957363517,-1957210388,92996734,-1962779253,1435173965,141921030,-1962248705,93194366,1594252686,509026765,-544286836,-1945600373,105221893,-1996063093,39684357,-1996206711,1971914325,172330760,-164428686,401082603,114424,1971914123,-1956749556,12803557,1458342741,1586372183,108432132,-1962391922,1317735038,530903820,-443851169,-1957313699,73305068,-1945739380,38767623,-1962649716,12803557,-1964209323,917767254,-12770867,-955746817,371537670,1444080384,-1996065141,1552483396,105679106,861803657,12803520,-1947432107,1586169414,-1948775670,192219230,-150714741,1575324643]},{"sector":17,"data":[-150992702,-1949791261,1727464518,-1949826294,-470350778,-443821821,574045,1408011093,1465274961,1427506718,-1962248507,108446980,-1408348533,158490940,91454268,1149820932,1576067839,1595868951,1532582494,-899816053,-1957363702,1381061612,102651734,12080406,1914817891,108971025,-1978773877,92808708,-136165562,392020019,1583292167,-1956947622,181034469,0,0,0,0,0,1377850189,1412263541,543518057,1919052108,544830049,1866670125,1769109872,544499815,539583272,943208753,1766662188,1936683619,544499311,1886547779,17,0,0,0,419758112,-79,100663807,-1308620798,-1341814784,-1308622591,-1341942528,6029404,6029404,6029404,774504540,6029354,2764330,788545839,1378811984,5451520,788550959,1060044887,11665452,-5242860,83886079,134263296,-20480,327679,524466,589744,176,-256,255,0,2573,167772160,-1308616704,-1342160604,1142969165,1444959055,1769173605,891317871,540028974,1126777640,1920561263,1952999273,943272224,959524145,1293955385,1869767529,1952870259,1919894304,1766596720,1936614755,1293968485,1919251553,543973737,1917853741,1919250543,1864399220,1766662246,1936683619,544499311,543976513,1751607666,1914729332,1919251301,543450486,11665528,-5242728,-1308622081,-1342167040,255,65280,1566244864,725499004]}]],[[{"sector":1,"data":[2243389,589840384,1919771433,1919443826,822698798,941633838,909127478,3617071,-2080374752,1076141860,1663640360,1920234349,779249763,774965603,909647921,792080431,-1509935311,36,-352321536,-1996488645,-1308598012,-1342157824,1127949516,1279870559,1313431365,937798,1704114,-2130701136,16875905,11665415,1689255957,1124370725,11665413,548405259,40,402784790,202115341,369624844,219348758,419365394,318812672,18919424,302035456,1010610176,1196641614,15934,808466002,755633456,1635021600,1864395619,1718773110,225931116,196618,808466002,755633459,1953392928,1919248229,1986618400,543515753,807434594,150997517,808866304,168638768,1869488173,1852121204,1751610735,1634759456,1713399139,1696625263,1919514222,1701670511,168653934,218168320,16711690,762213746,1701669236,1920099616,2126447,911343618,221392944,1713384714,1952542572,543649385,1852403568,1869488244,1869357172,1684366433,16779789,808866304,168636720,1970151469,1881173100,1953393007,1629516389,1734964083,1852140910,658804,-5111594,-5242868,-1,14942,24248320,117144452,1112671986,-1064507253,234885125,303903,787971,244039822,-108331002,-34108593,-1202674445,-883949516,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704,78708751,-789068149,-628299565,74698795,-768878452,-268181293,-947135858,-388771593]},{"sector":2,"data":[-802438516,-1064565645,-522989013,-1030817789,1322289836,1187548077,-31145334,91598908,-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094,-1031072797,-1064385789,-2080863315,292880383,-501415642,16417267,-2129234704,-351272766,1086360796,-276578162,486614544,-339702200,-1950118942,-1962932162,50334262,33948144,1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602,482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,1078384,534126504,542187576,555950220,798237312,807153624,964770247,979987806,1844591347,0,0,0,0,0,0,0,-1459617792,57999362,-1191141399,-779354113,-851311944,-1915095263,1068826454,-1073012275,2122323316,259332863,-779363849,-851311944,-1261882591,857853248,-1194226743,567099904,-963614485,-1962869434,-1528297394,139364608,-112906,1190594421,1962934790,-18776061,-1274784117,1931595068,-31987453,-28903789,-150505985,132678,1051996277,1183457741,167977990,1452015174,-851594236,-1814400479,33375990,1190597749,1946157320,29982733,-1207675253,567100161,1190575986,1031094524,-1207675253,567100160,-919420533,1946157349,-149901054,525894,-914357388,1142831904,-1274383835,-1205744322,-974579712,-61994242,-2013148800,-1960491377,1575324611,-339135805,624533980,-1054617353,-2136422093,-914357387]},{"sector":3,"data":[3037773,37,19071008,78184447,128,72089616,30,1]},{"sector":4,"data":[0,0,0,0,-1192457387,1541931010,1187468841,-402652930,113706689,67514,1586178027,-1170830586,-1650425,21674032,1051519056,-1207647101,-1202716606,-397409974,-998031714,-1173946620,129671431,2097432121,21674193,146597968,-402471805,1183383637,201898238,571009104,-2096970621,1963000958,101836805,2122526699,460587262,1342991032,-2096953112,-1073085756,1152916341,79187968,1609060352,-1207178488,-1202713490,-397407126,-998046800,1354771204,-2094534680,-1956773180,1438866917,280554635,682682368,-230242474,1187446784,-956301060,-3002,16664263,-96024832,-1410793472,-1173960959,-1207959545,-1202714720,-397407140,-998040289,-1606515964,57933831,-1207893271,104401912,997525414,-1576272736,109055082,-968881046,973892358,-112953,-16454657,-1593023482,104400808,57805924,-1962847767,-1962427874,-1978899402,1149732868,-1173946624,-1193481465,104401920,1534396326,-1962146655,-1995700714,1451882054,-1961825288,1183513694,1854376176,-62456052,-990492929,-1977158050,-263813113,-478822390,-375097,-16454657,-1593023482,104400808,57805924,-1962872343,-1962427874,-1978899402,-2071492604,-1173946624,-2299129,-1593023482,104400808,343084132,129638027,207894155,-2021129078,117375236,-538245190,206978689,259328499,721880552,-840412992,46433062,-2130663959,-586394050,-2096204535,1962996350,-230242552,-1880489985,17086464,440400,117499984,-352009085]},{"sector":5,"data":[-1606515841,1937047303,512431851,915081146,76156004,12879752,129631999,207881983,956803233,1913414662,127967713,1023410477,527892488,781434883,40347647,1342227640,-352321096,12892339,-994530581,79187968,-1197085952,-1202716476,-397410300,-998046539,112644,1023372009,1157777922,1392658946,1241664002,1241664002,-955913470,62534,-1559780191,-1465840544,207921927,16023171,1290339188,-25263106,-2095418368,1962998398,-226589932,-1207012096,-1202716604,-397410300,-998046134,-92372220,-2095811584,1962999422,8697870,309328,103868496,-2096839549,1946219134,-25263340,-1207012096,-1202716412,-397410300,-998046186,-25263356,-2095418368,1946221182,-226589932,-1207012352,-1202716412,-397410303,-998046218,-230257916,1575324510,-326412861,-402651976,1183524442,1183401988,38516988,-62485680,-28931776,482273360,-1962621821,-60913192,1962950528,-27358236,1946173312,74907463,-2093204504,1077936836,958982224,-1996307325,-1072955834,-1070919819,243792,93644880,-352009085,74907423,-385976577,-998032462,38647812,-25755824,-2093259288,1183515844,71731710,-1962654069,1438866917,1522068619,634972160,74907478,-2093227032,37552836,-1962314496,2139096158,91503105,-1662402517,74907392,-2080419096,1183384260,-1965520124,1093507079,-28931840,1353074317,-385976577,-998039740,1958742532,-381225201,141824000,991820008,242613830,1342194872,1342178488,-2096823832,1337459908]},{"sector":6,"data":[1183666178,535318694,79987515,16664202,1187489350,-1610611979,-1952969688,-25806352,-1070922628,12059627,-381253312,2097051193,-1715459323,1996425707,546105598,-1996307325,1451879238,-1505325587,-25755824,-2095110680,-4717372,-443851009,-1957313699,11319532,1445269992,-10975603,108461904,-2095320600,1996424388,990832646,1023591555,393543682,-2147066229,1966735743,8697870,309328,73984080,-1929067389,1358911622,-2093291544,54330052,-2145618688,989813182,-1098905739,1952251738,8697870,309328,71100496,-1207647101,-1924104192,1358911622,-2093695512,1950352580,8697865,309328,-1070917397,1485213008,669536511,79987516,-1207012032,-1202716540,-397410302,-998046718,74907396,-2080502040,1183384260,1485212932,15225087,46433278,-1962522999,126485598,4271512,-11106679,-1979294069,1093507079,1418103040,1454833663,519694591,184730755,722302144,95965376,-1276620800,79987459,-11225345,-2095128856,-1073020220,-1070920332,374864,60352592,-2096839549,16733886,698365564,-2043045876,746454870,-11237749,-11106759,1183654516,-1224781656,-1847001258,79987485,276086794,991710440,1962890886,-347670777,242524160,1342194872,1342178488,-2096935448,1190593732,1947205867,1354771213,1342179256,-2096940568,-1098709820,2080440148,204054566,1418082712,-14909953,-1444411786,46433081,1929397053,1421278990,501147903,184730755,-1207011904,-1202716540,-397410300,-998046978]},{"sector":7,"data":[108461828,-2093383704,54330052,-15567872,1911031414,46433081,1586229387,-12532218,108461824,1353205389,-2093416984,1183646916,1374179496,46433081,1039615625,57999363,-940093697,1342237510,-11225345,-2095154712,1183384260,-279541267,1979711293,-359661,-2068312459,79187968,-1880600576,79987458,-964921,-213465089,1183711231,-1224781656,-269942954,79987484,1575324510,-326412861,-402629960,-950656290,65094,1190604779,1947205865,-176258267,-16550654,1988883782,-1505573131,-1505325824,-28931248,1342193925,1342329784,-2094662168,1191118532,-1505325570,-25755824,-2095298584,-1073085244,-1956724619,868441573,579659968,1342677176,1342987448,-2096181528,116786372,1946224556,127973397,1156075600,79987471,1342177720,-2094951448,1438843588,381217931,576251904,755254923,104660993,58619648,-13724736,-972563801,-956239802,196166,-1292601,-364460288,1187446785,-385875218,1187381406,1187447024,-956300290,126022,1187439595,1187447024,-956299778,16772166,15353543,-959190272,-956239802,589382,32261831,-957748480,-956239802,720454,49039047,-961615104,-956239802,851526,1187421931,1187447024,-352320514,75399651,578552108,839155329,-971276543,-1962872762,1183384646,-330905602,1187447039,-956301078,126534,28842731,-840413184,46433056,120524523,124716874,126814079,123340698,755254923,104660993,55736064,-13724736,-351760985,105286486]},{"sector":8,"data":[-1930148215,1187444318,1187381491,300613880,-1996405576,1586295878,-213465354,-129579520,-112802303,-96025072,-79247872,-62470655,-28931296,-1962124125,1587801670,-230257396,-351509341,75399450,897319212,839155329,-1959887103,1554251334,-297366772,-1962123613,1621355078,-263812596,-1978899806,1671621702,127973388,207403088,231598160,-352009085,112666,538634320,-352140157,-49808114,-49786105,-49803257,-167226617,17280006,113716852,134238,207619783,113639424,-973075358,17588998,1342677176,1342987448,-2096265496,28837060,-706195456,46433055,-1017256565,-1192457387,-1746403326,-28915936,-1070923476,-25755824,-2080495384,1191118020,-25263618,-360840910,-1017256565,871140181,544270528,-16353537,115868790,79987710,1342177720,-2095084568,-1017314620,871140181,542173376,129763015,113641390,-973076546,503302,128911046,-1341733118,-955661817,-888688122,-1274624503,113705479,164890549,129435335,113641962,-956299335,17416710,-1006188799,-956301303,-133577210,-939079925,-972928503,641542,164300487,113705473,68045,164562631,113708032,38406609,164824774,-737753344,-956301303,644614,-670644480,-955493367,1242159622,-603535870,1589117193,-575123454,1810386953,79987509,166332103,113704960,2540,166594247,113708116,38406640,166856390,39958529,166967376,893446224,-955988861,811014,1711720192,-1962427380,1688405062,-1866244852]},{"sector":9,"data":[106058576,-1899416745,-1191234623,11670062,-1942605875,906128902,40648329,-1307431240,909102338,41289356,1950255414,305051650,801965234,-2046391242,1049179650,783811204,-855199214,109852207,-1992949142,-1711118274,5526,1711705142,1049179650,-1942617500,906134022,41959049,1423258,109852160,-1992949126,-1207797698,145887790,-1942605875,906137094,42745481,-1626945738,906628354,48760518,113718820,676,-1509505226,-1711273470,5489,-1845064650,1049179650,434635408,3205120,1358971880,1912623848,123689224,-346530982,214205188,1448135673,1660991518,119415245,906654239,43529865,-1710846922,-1017618942,-1153171272,-768409600,-427810355,30310401,-851181128,12108577,113476,567136819,-1207841152,567100417,-852446013,343329,-336067723,146712,-4520589,-1157370881,28835842,47360,-4849486,105956345,1419400535,1912602635,-98290,100955384,100854559,1576504095,-883423393,-164408490,-25114317,906589695,43039940,686539660,1946339062,-1127991799,-1014234508,322771691,1024356864,158793767,-2135112650,-339506174,-1127991801,-1014234524,1979710339,-98281,-336002187,-1532807667,-18430,855638461,216791286,1946221443,5564419,-133904765,-922024334,-1695874443,33456284,1431447925,1347880529,-855310152,1493122095,-661976715,-855309640,-117314769,123667827,-2096698535,216532676,-346399488,-401682687,1583087611,-1185916981,-1070399489]},{"sector":10,"data":[-772296974,-1017161655,1963064195,1048786465,1962869388,-49895,911215989,906142881,42737407,906357592,42737407,-919397653,1962933888,1300899334,638184195,74790200,55413286,-117127293,200813427,-2145815351,91553790,-351978714,87762435,166396533,-2096794551,-471137081,-2146798855,1979252734,2097358336,839283202,227157741,113653319,-1023409506,1431393104,-1957558697,512308969,-2009726308,-1711103690,2900,594856203,91614475,-352309272,29550595,-396750990,1594294543,57987594,-351915032,113541892,117763065,1928944223,1532583176,-352140157,147096324,1397804025,512439890,-75300196,-402295297,65732652,1929410536,-1151749105,567083008,-997989326,283900166,1962933123,1958820619,11593735,-116996989,1532625778,102679384,33129247,45357941,-854226394,-1031135455,503362024,124985094,22383142,-336059955,184726543,638153929,567088522,-210417337,1472405496,-1957493168,-1962467590,-65359655,58044146,-1957963477,1476877259,-1070349473,1333053707,-1273035234,-2083026112,678756857,1344217549,-402290138,509083738,108207878,1111536888,647766477,1964653952,-339637502,-401682687,451674107,-1494724267,1508477951,41099725,-935654421,-398784652,-1962773000,-1021354559,-1157617736,28639236,-98109,-956952204,504132992,-1623290617,178434,-1006698520,-1003071738,184719422,639071487,-134201981,975573108,638022149,1996571962,1195899137,123726315,110048963]},{"sector":11,"data":[-617413982,-147418477,-1828542922,-1506347210,167412482,-1031797386,-2147226825,1095905474,74825739,1014291211,1963194755,175931406,906392876,45037311,-2094732479,242550521,738884736,-13236619,1090694966,-108850709,-2146667255,1965820540,922695174,-1824456017,-1561603533,-1070345677,-1573454026,-768359678,561301771,11543988,1965373478,1698178570,973370369,638481860,1273496970,1191277567,1967735367,-897100061,896855307,1048786509,1962934948,105155116,975581188,41222469,809246699,-771029899,872612980,-2143885333,-16604866,1111623797,1330596169,-4586517,-114599937,1610481640,-385649831,-1957625714,108822730,185431040,1225159881,-347650231,283860481,58050827,-2096501922,41287673,-16004813,1465214580,-919383802,-1539407050,997523458,252134646,2093222005,23586818,1156983019,208932103,235357430,1156974196,141888519,-402490172,250282357,185025782,182977909,-402396414,1491600089,-402396416,124911650,1566508889,-2096829602,922290884,44318339,1912960256,-16586493,-1543059658,-1023410174,-1590242765,-952761692,167945734,-25565184,-2021116328,-2092760408,58015995,-33498904,-1192397367,-1992947187,1124247687,13101123,-2133118013,1962935932,-2016987629,757072552,-969522365,537045127,11266115,870003549,243807954,1149895326,1992374793,-1967052257,121960176,-1978305408,-2009724348,1124247687,1967192963,8382467,-344600834,556160,1278741876,705196808,-779483060]},{"sector":12,"data":[185093258,-165317431,1963919172,121959948,637957136,-347667062,-2009704447,1124247687,1967192963,4450307,-613037570,-2147007242,-167110283,1149900148,-2021116406,-2092760408,58015995,-33544984,-152341042,1963919172,121959944,-352160752,1959922189,110048777,-889322846,48822133,1371755776,119428870,-617362549,44580493,1929141224,1493655301,-998046485,1573124358,805782774,-1977216395,-398372859,108264770,21334566,233568336,168135206,1191474368,737536833,1573082617,-1070345677,-1509505226,855642114,121960155,640054560,1156973962,242552071,57966760,914302019,44435143,1156972554,125111815,-1509505226,-352318974,121960024,640185616,1156973963,276106503,1954596086,-461356284,113718911,656038,235357430,-952760459,167945734,640346880,-1960442485,1156973141,276106503,1954596598,-427801852,113718911,656038,235357430,-952760459,167945734,-54925312,91544331,766693939,1573082450,-1509505226,-402650622,-768409476,-2093563853,174142,-2014830475,9889792,-1288241354,-1070382846,-402307958,-13238136,1090695990,-402373494,-2093612932,16951358,1609048181,7268352,-1288241354,-1070382846,-402373494,-13238176,1090695990,-402307958,-2093612972,33728574,1149902453,4646917,-1288241354,1149911298,3860484,-1288241354,535314690,3074048,951370581,378339504,567083688,-952758925,174086,113653248,-1020460365,-167623541,1963984708,6503688,1673003894]},{"sector":13,"data":[-1892236544,906143750,43912840,1241247464,-1643234762,-1207601918,1095761968,922695233,1573061288,-1509505226,-402650622,1156972671,494141703,-1187086282,359989250,1006781578,1006926860,-1341751785,-348041119,1349562372,868234049,121960146,-1978895328,1827145028,922695168,-163511631,1965033284,121959942,-1978895344,1424491588,922695168,-1975450955,1223164740,922695168,-1975450955,1156973124,343146759,-1187086282,208994306,41684284,3935276,212861557,1442534120,-1338460989,-1474917120,1931595010,113718803,66233,-1257847242,-969524734,771928326,110048963,-2009726296,-402481650,910818083,43912762,817366389,1094799360,-1472790730,1381090050,-1057325026,-1031141258,213126948,-494271765,-678748410,-2145443379,1962412794,-87496686,-930477197,567141002,-336010870,1912648706,-346465788,79987460,100647929,68352,131116,327744,786525,19660913,19726473,19792048,19857612,19923165,19988778,20054422,1226244558,1919902574,1952671090,1397703712,1919252000,1852795251,1226836493,1919902574,1952671090,1836412448,544367970,1881171567,1835102817,1919251557,386534771,1986622020,1818304613,1684104562,1431511161,1700025154,453643620,1852727619,622883951,543236145,2004116846,543912559,1986622052,705301861,1869837121,1952541027,1629516645,1952542752,1769414760,1629513844,1769104416,1814062454,1702130789,168636018,1394543117,1414742613,1919179552,828733033]},{"sector":14,"data":[1683693626,1702259058,1885157938,1567126625,1393822221,1414742613,1769104416,976315766,222572320,1342835978,1919164448,828733033,538976314,538976288,1701860128,1768319331,1629516645,1919514144,1818326388,1769104416,1948280182,1752637551,543712105,544567161,1953390967,544175136,1769173857,1629515367,1952542752,168636008,1528832111,1986622052,1563572837,1752457584,1884495904,1718182757,544433513,1752178785,1667855225,1679846497,1702259058,1684955424,1952542752,1870209128,1635197045,1948284014,1935745135,1852270963,225408032,538976266,538976288,538976288,538976288,543236128,1953655158,543973749,1986622052,168636005,790634555,538976324,538976288,538976288,1698963488,1702126956,543236211,1935832435,1970563444,543450484,1919514152,1818326388,1919164457,778401385,168626701,1886999628,1431511141,542397250,1752459639,544173600,1634886000,1702126957,1948283762,1768169583,1634496627,543236217,1953720684,543584032,1920103779,544501349,1953655158,543973749,1986622052,221148005,-1928917494,-2129450434,-889041471,16778497,327679,1954039057,1701080677,1917132900,544370546,118370597,360464013,-887045757,16778498,327679,1918980110,1159751027,1919906418,238101792,-1606513401,499221269,-326412853,2123060823,172329732,-1962570928,1300955741,106269444,1594389899,167811669,1465712640,-1996063093,39684357,-1996206711,1971914325,-997548280,1477199241,1577731465]},{"sector":15,"data":[1575324511,-326412861,2123060823,172329732,-1962570928,1300955741,106269444,1594389899,188127829,1465712640,-1996063093,39684357,-1996206711,1971914325,-997548280,1477199241,1577731465,1575324511,-326412861,2123060823,172329732,-1962570928,1300955741,106269444,1594389899,210016853,1465712640,-1996063093,39684357,-1996206711,1971914325,-997548280,1477199241,1577731465,1575324511,1845938115,-67108861,56692361,56821447,113704960,886,57083591,113704960,1566245933,70190791,113720444,725484593,70452935,434649917,-1206684922,643039231,975576459,-1207733489,-379912190,914948364,1465058160,2015268181,1862727171,1047863299,111470764,233322354,-399346682,376768062,57607926,-402295520,585827800,57607926,1310422081,126359787,91569468,57609856,-1612168447,-1396083962,-347928696,914968259,130417509,1948158208,495658499,58209933,1949252736,574390321,116787060,1963000687,1200236112,971256321,1929601286,56729873,1128521937,-1960388605,8448031,113731307,66403,-1977196821,-466484921,65065280,260712152,-921965262,1396903796,-400585946,1935343803,-498908353,1661388786,-352320765,1200236083,1088696833,-670834479,839354918,1088475620,-1977165821,200094223,1125086409,529213011,1526748392,1128467059,113767138,263011,-1956946083,-1593614066,915080035,378209125,512361319,-1007156375,126559824,1962934953,1627848452,3964931,27859061,-955747072]},{"sector":16,"data":[33776390,1343154944,-4979792,1476433128,283640811,-104638463,642864579,839405450,1959332845,158305549,1929529320,911368,-335939870,1982761221,1566177283,2122327747,57933824,1173809989,1863221443,-924315645,-2143128833,-284987610,57844048,100779563,-1957166224,-2147257802,594870332,989822080,113707125,590691,-2094653717,410255423,17299238,-955157248,33776390,-402003200,-336068461,183236877,-1274826672,256255,1472460888,75467558,57097865,637896742,1342268808,637761185,1476543881,175440188,72714534,105744678,37509611,-1993996683,1340802133,-395049156,-462157764,108332604,72714278,71056875,1889603189,-1993981949,-1943665595,736822877,74811686,106794022,1207314000,74711298,166397104,38270502,-1341819902,12576770,1207314008,57937922,1593872872,906413763,642777092,-1073018997,1397757813,113727314,590691,61931444,1610572008,-346530982,268478743,113709172,867,-2097039128,151216958,65733237,-1450165013,326369536,56821447,-1293418496,53143554,56835715,-1457294071,276038144,56821447,-1696071680,1665041154,242551043,1948254377,1661388553,-402653181,1048576175,1963000886,1665041165,108331011,56821447,-1017642999,76174928,410304522,192231996,97408,80086389,-402003200,24314866,-487897530,1455642718,-1966044590,65071108,-1073083534,199756660,-352024576,-347716095,-1017226518,208896060,1114792252,1048017468]},{"sector":17,"data":[988536612,-1923676589,-2147211202,74712314,69418637,393483576,508711248,-1973046265,-17470,-1174403655,567148543,-1957144230,1166934365,742605571,1607935616,1019435783,1007186480,738490169,-104597456,1381191875,2139825751,92939782,74825738,149684148,56821447,-4980727,921174960,1532649470,1431356248,45241938,1139278986,-398822909,116850546,1946682223,1966947341,2122327582,1853161473,116789995,1947206511,1966750734,2122327562,1517617152,643492678,1962952250,1958742556,-347781552,1178215954,1178825984,642057354,1962952250,-347781575,1862727339,259276803,38270758,125042720,8290342,639792128,1050615,977016948,-2144990859,1962934398,1007610637,638022912,973110912,-336002188,1916176645,1516173315,1354979421,1398166097,10283094,453429086,-956301308,269574,520537856,-402653180,376570017,168041379,-401050405,1701970069,168041891,-401836837,1500643465,168042403,-1957530149,-2096891618,527696635,168041377,-1975355932,69050824,964027402,378267786,-75299809,-2046659327,-1961432087,-1593566442,-469105635,-930472075,168042401,-1978239516,1694139368,-1031732109,1583023980,129040308,-335739672,-1268884721,-402411265,113769721,590691,-1017620134,66664077,1962884227,504359682,522080338,-1959264072,1478610390,1371742042,-1966525614,1958742532,-130121669,259260419,1963064192,1949973508,1949187120,1007479596,1009153069,1008890927,-400657362,510852673]}],[{"sector":1,"data":[-1164902220,-487129078,292934155,242401539,-1075100015,-336013174,-336050683,-1047791359,1354979674,1049318999,76153712,292864010,1962956776,906413600,-966917884,-346095612,80109113,-148480256,1962934535,1661388589,-352321021,-1974052827,1958742532,2811931,1541933940,1191342849,-347715770,57254634,1191183558,56966793,-1453826210,158597632,-1325419440,-65279995,1364443992,70065805,973081017,1124365319,1497496034,1381024603,-1073085302,401094004,-2094370303,1949958524,133637645,494141456,97408,537663349,292708668,225933884,-796237780,112263092,-335818520,1661388550,1509951747,-391330984,376700960,1962955240,1862727188,-294379517,57607926,1309242433,-336001301,-1018234879,1364444152,762580284,695468092,628361788,41779238,857633282,1569335003,79921923,3768358,-919401100,1124698662,1946237478,1022943748,-1017423603,113660243,-2145385623,-553423066,913580092,846465340,829697084,209002556,1965046912,1176547335,518766650,41779238,857174529,1300899529,1959332611,244491,20588099,-119404684,1532567612,57254595,57607926,-2147126015,537095950,-353648582,58207885,427089211,309669692,1200247033,-57153281,76154226,1492947176,-336065045,1966029834,1863221253,-1007140861,-2091690466,224318,508568949,1431786065,-1896467706,1660991710,-611573299,1560795915,525949535,-1994034088,-1996264906,-1962709986,-1912378826,-2096927714,276037692,141689914]},{"sector":2,"data":[1996571706,99350787,-336902586,526277624,-326412861,2123060823,172329732,-1962570928,1300955741,106269444,1594389899,-128063403,2123061085,-1996125946,1300824669,106268932,-1626835575,1166656650,1166628876,-1956684278,12803557,-1192457387,401080406,1586189835,25133060,-1978960582,1076729863,-62486272,1187448299,-16776964,1183710326,-1628942164,79987457,-1207601856,2146172927,1353467533,-2094992408,54330052,721712384,-1922241600,-11490234,1743258742,79987456,-344670197,-1996208501,703331910,715802250,1139298532,46433027,108314635,50218627,1586172907,-28901378,1968979840,-27358456,1946173312,-27358298,1183319946,1975519914,74907595,-2095016984,-259325244,-1733541238,201082505,1032090816,-1821048740,1593801961,-1017256565,871140181,173861056,-402360577,-998039448,1996443650,74907398,-2095024152,-930412860,453114243,1574500288,-326412861,870891571,74907402,1342453944,-2096268824,28837060,1307070464,46433033,-1957313699,964844,-972418584,-1961168058,1183385670,-230257160,-230257328,546498640,-972766077,-1957760186,1183385158,71732214,-1913108855,-1924074938,-397348282,-998039436,-25263356,-1207602176,49020927,-443826133,-1957313699,964844,-972439064,-1961168058,1183384646,-230257160,-230257328,541255760,-972766077,-1924140218,-1924074938,-397348282,-998039504,-25263356,-1207602176,49020927,-443826133,-1957313699,178412,-16155160,1996424822,88008708]},{"sector":3,"data":[-1996176253,-1072955834,1996426869,527886340,50513027,65733702,-1946270069,1438866917,247000203,156035072,-16490869,130417734,-213465508,105286215,-1946663288,1183384646,-230257158,-230257328,532605008,-2096839549,1946222206,-18427,-1070923029,-1017256565,-1192457387,199753742,-396994807,-1986526859,1586230342,-2012771836,-1073024442,2139099508,192231937,4271512,-2081143159,-1962802106,1183450718,-2009004812,106859271,973162438,-2147197301,209017919,105286483,-397393856,1206591094,1089750667,105286480,-397393856,-997982371,1958742788,-18426,-1962864919,1065354334,-14978048,-1444411786,46433054,2113930045,71088141,108461904,-2095187480,1996424388,108461828,-2095190552,1988822212,11856134,1052311179,1166888964,770199553,79987460,-166989685,1996426869,510060550,-1962752893,108397552,1183319178,1968979192,-129579516,312924,1342455992,1342260621,-2095179800,-1073019708,1183453557,1443137784,500492375,-1962621821,-1201804297,-1924135870,-397409979,-998040076,1975520004,-129594810,92931208,-956807544,1183514629,1183401990,71678204,-62485680,-28931776,-27334576,-1962621821,-60913192,1962950528,-129594652,1183516040,-28952314,485032821,-25261057,-1969427633,76085318,1946172544,-12261117,-402229505,-998040128,146690,1203244405,1996443652,487647238,721732739,-1956684096,1438866917,247000203,126412800,435373766,1358055053,1358055053,-1977741336,-466947514]},{"sector":4,"data":[-1017256565,-1192457387,1743257610,1543948039,-1201471476,-1202713524,-1202714720,-397407140,-998040016,-28915962,1183645696,-62486026,-1995986783,1183053382,1586168572,206742012,82511753,49694339,-1191813436,958792777,-1978436601,942015558,652834567,1912686392,-28915741,-1070858241,-96039600,481880144,-1946270069,-1866244635,-1192457387,-202899426,-1923721466,-259267002,1375814854,1358448269,-1108847018,113541917,737695371,38011840,-1996434813,1451876934,-163133468,1586167808,-495008522,-1962833370,25691262,-2081011969,2118383230,-1956684055,1438866917,515435659,111208448,1183667799,-957314074,-1924005564,1448147014,493545558,-1962490749,-1070860202,-2097003517,1183383762,-464090654,16139975,-161576192,-1979416949,-495008767,-16676826,2122577478,-377601034,-443850914,-1957313699,440556,1443253736,294531,698367868,1178179596,-1204388604,1861681240,100899076,370347038,1183386656,-27883012,16402119,-94467328,654079684,1988821130,-16742394,2122578502,-377726726,-335544392,1589652226,-1017256565,-1192457387,-135790586,2122536453,1065091076,-1744033376,2097432121,5814326,-1727762697,203294211,203429395,-1979955575,1187511894,-1962934022,1988885086,-1006597626,-2010710922,-96010496,1492811395,-4658820,721611775,-443851072,-1957313699,8567020,1443209704,-1982052723,1183710790,1996443780,-12916732,168084611,-146836288,-1342126266,1183529077,-883520567,-8485239,-947890551]},{"sector":5,"data":[33350,-998089077,654278326,1988821130,-16742146,2122547782,-394518142,-1730394486,1963214395,112645,-1070923029,1575324510,-326412861,-402626376,-1923742406,-259286970,1353205389,-402360577,-997982508,1975519748,-339727612,151308065,71732036,38046016,-1511500202,79987483,636176011,-930381824,453114243,-1956757312,1438866917,1756949643,82896896,-1740206762,1183707275,1996443814,-24451068,168084611,-953781056,-1958475516,-1992293306,1448477252,-2095357976,1190593732,1971323113,105182983,91488768,-352321096,1589652226,-1017256565,-1192457387,-1545076694,1183667716,-28931620,-1962145631,-1995699690,1451881798,-700020233,-958900599,-335553466,-179926216,-1207536320,-342228993,-179926213,-1980279157,1451873862,-632895528,65732608,-2082846977,2099370622,-631338224,651589316,1988821130,-352286466,-599356697,71711640,1183563637,-665416746,1575324510,-1957326653,964844,1443114472,-16728856,904397942,46433050,-375159,703071862,46433050,-1946794359,1178204742,721780470,9628096,16008903,-230242560,1183514624,-163173382,-196723904,1988879742,74843124,-1979294069,1963407364,-193035422,-2095614976,1946219646,-12285354,-397351894,-998047438,81154,1183532404,-28931596,16533191,-163149056,-336050551,-27358434,-1979418997,-60912896,939947659,-15567616,1183578190,-28901378,-2080618753,2130770046,-125926436,-1962380032,1174664262,-955520252,62022,-369867009]},{"sector":6,"data":[-1956708488,1438866917,179891339,56944640,-1983894698,1183448646,1782481916,91554052,-1293303765,16824320,374401104,-1560099709,12061120,1139298305,46433046,-1207306589,-1924136955,1343683654,503963832,3578448,1183384595,1958743034,-96040187,1187477995,-1962934026,915142238,1183451584,-1962899210,915142238,1183451638,-16742154,2122446406,2080440566,16824542,-62485168,-157200362,-1706025463,68354048,200951433,-1581615680,1183386102,-163133448,1586167808,705137400,972065764,158660214,163585675,-1997126006,-163119360,-2114435329,16840318,113761404,66666,1593788905,-1017256565,-1192457387,-1880621054,1187468802,-1962934018,-422445450,165723264,-2146732800,647612,-1070922635,1988830699,-1964584450,-2076703674,192350688,165774392,28837234,-15930624,2122579526,-948828674,1593835448,-1017256565,567095476,41091644,448733389,37128964,-2114508032,1913651454,268484099,-2116579590,-82923836,521539699,855767016,1994936512,1291827204,-461168179,646526718,-1992948622,-1962643930,-754667066,-1556723488,-150797204,145033,-567557236,1253366775,-1942609459,369419038,1891630087,246462727,-1070346453,521579251,369114088,59959327,855769576,70713325,37158661,3604229,-665524219,14870608,-1912333640,243928,1879492406,1344840196,-402555928,-4717571,385830912,817103984,-442293811,889239556,512303565,109839569,521012435,-1171980104,567093184,243998486]},{"sector":7,"data":[786630282,81987214,741772070,-1945713408,869960710,520042203,91424392,1307123478,113587713,-628357488,905970619,109584127,109977366,-1960442653,-486527986,868322870,1031808767,-1188269056,-994181108,1957098244,2147465483,-1359822797,-437577355,520560134,-322963573,-1852265468,1958805164,-492156927,-1155590409,-1484783612,-1195440916,567100416,-1024062862,-2147126144,1074064527,-1092126389,-1799420268,10676230,-1090087746,-1964505452,-1957313792,127319788,-402155841,-1799487363,110542598,-352291608,-326413053,-1090087234,1726482070,110542336,-402221377,-1175977876,1958742784,75399947,-955943680,16712774,-1157623879,-2013921275,1946223852,-851528700,-220052703,-1962932248,1286865990,243999181,132318858,-16776517,503744542,80811717,-853213000,1048583969,1946158350,262151693,269927685,-853167099,1002643233,1326085111,-485651633,-338558986,-147078158,-276623757,184912644,-227278267,-286581249,-1957363517,16562412,41674832,85212803,-16485376,-1207626730,-397410049,-443874711,45663069,-27531008,735873881,990540504,1912935966,-1864956,-373279775,861339205,4372982,-1392712654,-69017550,1951790208,-5314547,1342177720,-1207816984,-1017249791,85460623,939524794,1946477846,-486109655,109979140,109838380,-1070398200,-2147436135,-1359806669,1207661998,104761671,-18171,-772296974,29348235,8502784,81993358,1948269740,1946762491,1947024631,1958742639,-1404156053]},{"sector":8,"data":[-395042756,-462157508,1551109436,1484046346,611590716,57957436,870640450,1017921993,1023046748,50623522,-1949045807,334090689,1963043025,1308748746,1947024556,1958742571,1948400679,1952201914,-320126461,-1404974797,-93037508,74719804,-605302525,-372129397,27840787,-1746152843,1049173782,-687667968,65524039,-18710313,-997465557,-1962605917,385549272,1065956871,918897475,-1431567098,-92946422,906002878,81993358,-1070398485,540847274,154991476,222099316,2145977205,1975519744,-1871058173,1128237366,1017925187,1021015072,1020752905,174224397,1012823232,1009218594,-1442614180,-919345941,1547480129,574421620,1555039860,-773084429,-372155216,108243699,-341171536,1017925317,170816525,1009415360,1018655778,-1442614180,-919343893,1547480129,574421620,1555039860,-638866701,-372155216,-1770804493,-341171536,-1430244403,130490134,654245888,-1957362408,512644588,-919403293,-376716917,-1958086261,184560694,-1911524106,1048585926,1946157056,1169093126,1174042030,-31178601,-439222901,521585923,638807,1593869800,-41169013,780793859,119407876,-164372850,-2129403063,1950563132,8292613,-1431550651,-92946422,1317662178,1562318336,-1017256565,1458342741,-1962467753,-1631714218,-1036276474,-1774186380,865537140,-17984,-141840654,1603726315,1575324510,1426064066,-11015029,-873986954,1958743039,-91516396,-4603853,-139529473,45828561,-851397632,-443850975,180829,100913291]},{"sector":9,"data":[896664690,74188345,251995507,-657371136,-388824143,512481676,-886373149,-1014054653,1253365899,1918378445,1223697424,-1794872157,74591883,74585601,-372798525,326302609,-443826125,-126631075,1632336,1575324504,-402164797,-4718578,-443835905,-466435235,-1023409688,168093858,-2145159708,50652478,574360946,540806515,95421810,1016072171,-1342015981,85637907,-576481065,-997539068,-1957300245,82609132,817780311,-335598843,1157009429,192185094,53536854,1073923203,-2092498572,909707462,-428669368,1600046987,-1017256565,-2081649835,1448544492,-1929037634,1183385158,-370649348,46433025,1183709323,1996443654,1642616324,113541891,1459111561,38987863,-1962621821,1600059462,-1017256565,-2081649835,1448544492,-1979287925,-1986525372,-963904954,-1325060051,-1946627325,65065416,98619841,1183385040,105182968,-167349117,1950352964,105676811,-18400,-1878978327,17188086,1283518325,1686110726,-1070862586,-1962785655,-58816008,201737462,-561291403,87092097,-70057039,-472792181,-472786941,97552374,-2126088959,1946499326,1090420998,-13404923,1575549558,46433042,762691595,86902527,87621249,-1061681547,-1878725881,-1995657544,76088388,-940024181,33555015,-352254010,-396980216,-998047588,105182722,-1961265912,820740574,-754732795,-775713797,-774372381,-796395805,1349779717,2083208331,71600900,-1962636992,1200355422,1149847554,2130643714,1962891027,-92864764,-2096287256]},{"sector":10,"data":[1183385284,-1877283844,-151363957,537193607,45617012,-1070903296,-397193136,-998044940,73173768,-2012985718,-1877480697,-1962933825,1183666375,1996443652,217377018,-1996045181,2117729350,-385649412,1183514347,1592011268,1575324511,-1957326653,49054700,71732054,-1325060051,-1946627325,65065416,98619841,1183385040,33601790,234940496,-1962752893,1200161886,1958742788,105873423,-27358456,149447,-1877480702,-2147197301,-1962670513,-1992229306,1586168903,38258686,1586167809,-1946973436,126420036,149447,-443851264,-1957313699,82609132,74877782,86902527,87621249,1187448949,-351813378,-25063412,611648832,-1359067449,105182732,-1961265908,820740574,-754732795,-775713797,-774372381,-796395805,74711301,904642603,808306315,-754732795,-775386120,-775879712,97519072,-1946401143,1149894214,-1962637052,12123230,38242562,-972929911,1283457287,28836358,-443851264,-1957313699,49054700,75400022,-2124712960,87557758,2122385268,1963278342,106859382,-1744353398,276490320,184730755,-1956350784,808257094,-754732795,-775386120,-775879712,97519072,-113015,1273497206,46433024,-956408181,1204224007,-1962934270,-208992674,76136491,-352041079,1586204714,75464966,125044672,-1375436927,-1978108660,1352140615,-2096095256,-1073020220,1996425588,583686,1577239683,-1017256565,-2081649835,1448543468,721712779,105155327,37487396,1156990581,427100166,-343810421,61932848]},{"sector":11,"data":[-1014236205,-670833711,-2013862959,1946224080,721718055,1183384644,2126515196,1962889243,121932292,132665496,113541899,1962690107,105676807,-16608,-1996209013,38061828,-947191808,-443850914,-1957313699,23378156,1475944936,108432214,-23165299,-1962439005,2124613702,71731975,-955813213,493574,-2046376192,-385875961,1015022204,-385649627,113705560,67466,2057551915,125215495,-1559788381,-2103244936,125870855,-1559792477,2091059056,-1811495161,-2147475449,1966080380,113722940,3147668,1015034859,-15895253,-955811322,491526,-1876759808,1965046912,2050917133,359989255,125830911,117379051,166397808,1965898880,2080833489,76170759,-169324392,46433031,-394936309,126924886,124184656,-1962621821,-1874951184,209518599,125568767,-150499167,126919640,1965964416,-2113470685,-1202305529,-397408374,-998045892,-2081387772,494142,113707645,67466,125964031,1033372810,846463046,1946177085,6831413,1815945332,-955878144,34043910,2017362688,91553799,1967930496,1015039489,-384076544,113705352,67448,113763307,1050488,113761259,526200,76207083,-1668904552,4537854,1195182708,1023767552,158662744,125175551,-23296381,-1668904160,6499838,1979716925,18147587,781434883,856991743,125705867,-2036260981,-2096658169,34045446,-1878955543,126093055,124782279,179830784,2145931264,46433025,-1878961687,-352319304,117412080,117376884,1048774518]},{"sector":12,"data":[1962936194,-1945712887,-352321273,113741831,1932,125961983,126486215,1048772612,1963460472,8972547,2023997483,-62486265,126879289,-1868486796,-62486265,125582979,-955681792,495622,-1877808384,126889603,126918917,41795595,-1868316629,2114355975,280494599,-1552384,46433024,1342192312,-2096902168,2122515140,578027772,125582979,-1961528320,86899782,126919424,41795595,-1868316629,-1878529273,126879431,780337152,-1207695490,-397410288,-998047554,-14685950,-385871688,-1070858449,31647824,-1862325527,-352321096,-1224765197,-1175912804,-15079166,125320835,-1962707968,-24424762,4030535,1031800180,-1946847963,1355164615,-303540706,113541891,1015084939,-385649664,1048837500,1962936198,1914604377,105379335,-1202752480,1307312127,836514496,851849926,852505286,852505052,852505296,834941648,838218224,852505296,852505270,852505048,850408144,126369411,-2095877120,493118,512430197,1207306098,-1217060858,-347732757,-2036232039,-1956684281,-1866244635,-2081649835,1448548588,168066691,117376116,1048774532,1946290040,2017362695,376770567,125705867,1468729227,-62486270,-2080483703,67599878,1048783595,1946158980,2115930897,-1995994361,1187511366,-352321282,512462862,126551934,-62486119,-2080483703,34045446,124796547,-1962052608,1175190598,-1962576642,48956486,-1834762197,-1909028089,-2076278009,712310791,16678531,2122523773,393546244,1177355462,-1946401141]},{"sector":13,"data":[-654836138,-150941053,-62486054,-939633015,129094,1187448299,-1929379592,-125048762,1459910399,-100609,-1343685514,147096331,125976195,1461810176,-2096411672,243991236,-936704118,-336310647,80121861,-1047837136,2143292233,-196179467,125177483,76023178,125094155,58483004,1176513664,-8552377,-2081852160,492606,2057376885,-2147087609,-2096401401,1962997886,112645,-1070923029,45279312,1577239683,1575324511,-1957326653,283935724,2122536535,343146500,-1593835074,1183385470,-94466824,125699715,9562370,125320835,-1961396976,-1962443234,39291655,-1980217719,109312598,-352057474,512462869,126551934,-1979955575,1586296902,2114356218,1048773127,1963984760,-129594611,1979336203,105560084,2122516971,158662908,-1996074568,1586296902,-129594374,-1980082549,1451881030,972434420,1946649142,-1978758372,-1878070521,-893244,-2144931258,359923775,2127444806,-1863455984,-228670394,653412095,1962950528,-1874949133,-2080494841,490558,-396949643,-998047458,1996445186,-126418950,-2097057816,1048774340,1946158972,65558279,46433025,-443850914,-1957313699,82609132,-1995997535,2122579526,108291844,1191476867,28312693,-1070988565,-2080618872,492094,113706613,395146,16547456,1048776052,1962936202,-1979267322,-16776953,-16288202,-16283082,922682486,1996425102,1981218814,180650758,16547456,1048777332,1962936176,-1908998389,2014772999,46433030,124796547,-2095942656]},{"sector":14,"data":[494142,922684277,385812366,-998046084,2114355970,113707015,1938,185039521,1946648582,-25755885,108926719,184730755,-1207601984,48955393,-397361109,-443875064,-1957313699,1048794860,1962936200,1914604335,38797063,1183452792,-13137148,704940039,-1878266908,74907475,-2080991768,1967129796,-2012807417,-1878660345,126224127,-1866244770,-2081649835,1448542956,126369411,-1958120192,-167050122,367739518,124925695,127153919,-2081006104,1967129796,-2012807420,1321634567,377405451,124919435,2013417471,127181019,134168459,-467008120,1048829163,1962936200,71731975,126223873,-443850914,-1957313699,49054700,1988843095,-2009169144,1349844999,922688747,1589905266,126494212,-1552232,79987701,-16485056,-16283642,-963967930,1958742862,1914604317,38797063,1589957752,126494212,124919435,134168459,-467008120,1048826603,1962936200,138840839,126223873,-443850914,-1957313699,183272428,915101271,-1070921842,-1979955575,1048836678,1966081940,-2113521384,957510663,1946645510,-1945749242,-955878137,537367558,-1874949376,99112455,46433032,737691273,75377656,125582979,-2145880832,326446396,127155843,-1408469712,-1645719400,46433278,-2080878849,805803070,-16053388,1048774526,1946158972,75399961,-16354304,1609103942,-1841396992,108265479,-386119937,1048772714,1962936188,-1612163290,46433278,294531,2122516852,57999610,-2097138200,496190,2122516852,57999612]},{"sector":15,"data":[-16761368,1444870262,-2080451608,1048774340,1946158972,-1811495155,1459625991,-2080480792,1599996612,-1017256565,125451907,-1207602176,65732651,1342185656,-2080503832,-1866267964,1342189752,-2080506904,1048773316,1963984786,1983808279,108265479,-352298824,2025361412,-571977728,46433277,-1957326653,82609132,1988843095,-28915962,1015021569,-1961921238,-1962443234,2114356031,-347733497,1015058504,-955878099,-442,-2130760890,897331260,2134457472,-2109851344,-2146732793,108343356,127141575,76152880,-774927464,65130977,65130959,820609992,-2142832245,92024892,2117680256,-28931103,-125046793,-1996202357,1590070079,1575324511,-1957326653,49054700,106479190,-352039286,-2142859262,175374396,-160101318,-352321096,-1070886909,1575324510,-1957326653,82609132,990142091,1912924702,151042053,1190603499,1954545672,176063304,857371648,-1194226743,567099905,1190611826,1962934794,105251598,2030589459,369145896,-1992889351,1183448662,-1194226692,567099906,319178243,226035798,-1946268021,12123222,-350106302,106335192,-1979167093,1119095366,91365837,82618240,-221910531,-2081649835,-13499156,-1946255736,-930412986,16533190,1971323049,1073785104,116787061,1971324511,-62470652,72780672,-955645148,567098804,37556851,-150375168,1946222785,10610947,-226629127,633441171,3998976,-1274448635,-1205744322,-387247872,33375942,-851181384,-2134706655,1317012596,1190543612,57950460]},{"sector":16,"data":[-1962879511,11077190,-1457687550,158597123,1085589811,-1075240499,-851528704,72780577,-851246920,-1872237791,-2130950410,-1477901451,174336,-1612119179,-18176,45666699,-148779710,-11104807,567099316,359972875,452951680,-638120075,45666699,857853250,-851397431,-1949748447,1107343569,1760240077,-45693296,139365120,-1996446488,1190529102,125173758,33965815,-2147257088,1452015329,-851659772,-385649887,-158076489,1979711046,105314055,812974082,567099060,604391050,-28964349,-1274784117,1914817853,1190564826,343212541,17319671,-2146601984,1451950537,1124186116,-1083039283,1090275062,1451965813,1124120580,-1047846451,19253554,-1325239296,105314064,57933832,992004480,1912924702,-851528694,402700321,184468969,-914293682,-326137855,-1950119164,851664357,-1579357239,-789117729,-919355101,58032296,-1023293056,-2081649835,1586170092,-367117564,-1207471612,-369555200,-2013859573,1948255468,1107474443,-779368141,-344841779,82610166,-1955695488,119408214,1183432755,-62486018,-1957275652,-1980593158,1317795942,-1336614136,1974399498,13953098,1979754557,49054536,12246155,36191490,-2135293069,-1948112128,385518548,139365127,1946827948,1962621708,-186471911,-352312344,990752865,-402426373,-1331036136,-62456054,233366507,1591929600,-346690721,-373279931,1397812217,735021905,-1961827382,1085539422,225583565,201213441,1493595328,-91531173,147096515,162792563,-2013913365]},{"sector":17,"data":[1950352620,106859275,1964654464,216791043,469809401,1183516395,-62510082,1593337483,-265426593,185093771,-1962576439,-266212927,-1274653045,1931595072,-351685628,1975520228,-326633760,175390724,1065409163,-133991142,-1191587861,-907338752,85369177,108250171,-654851029,-1070341633,-1957299477,73305068,74767115,33443712,-1017256565,1458342741,107002711,1962950531,-1207493079,1944584197,855995649,619420096,-1543625664,1654851168,80188934,-964493311,-29047036,915013630,1317733990,-1898411004,649408,-443851169,-823540899,-93044480,-2080448128,-227283207,-66947189,-1459713107,1212314625,359907643,-268185461,1946265773,96600884,-141885438,-335657847,1962839014,-1980169460,-1054081460,-351958712,-17235195,-963903924,-779298164,91541819,1847495718,41912582,113649347,1023542900,628424702,-268173685,1946265773,1224641522,-1116487365,-268185461,1946265773,96601058,-141885438,-335657847,138906598,74760203,351000718,1947139622,-1945013242,1003982040,637891783,107617934,-1125435509,856061835,7006400,225756731,1077936420,6219928,1308495220,1894654,1318454644,-1936069810,1003588824,637826241,-1962512733,38242567,-1013333965,-28996783,57934248,1095354411,2147465793,1880505126,-788236794,-1946847766,1925579713,1925317397,601028365,-389665854,141885452,-355347721,-1070340747,1364378457,1946164712,-24422632,-234622837,-16890681,108497407,-684992885,-27948726]}],[{"sector":1,"data":[-1017489064,-768389037,1347572254,1342177720,266870534,147096320,536869507,41179994,12833291,1458342741,2122516055,947191816,-1962642753,1183516246,125126660,1912624104,-1958155481,1208271414,-147123852,1149963636,205949186,3860566,-2093976738,-25099066,74646722,108384779,-1711276104,-628417045,-787496061,-754732581,-850873109,-1830194655,1418265737,-1036613374,130036484,-443851169,1317782365,972524300,208929356,-2130393469,1963246334,1072429554,470014603,-745850510,-147078770,507053685,645071980,-787496061,-773074469,1005310443,50951671,82026969,-1064380373,567102132,-147124878,378078325,-2020473748,-1009677564,-1947432107,-1931572265,-1950314792,-1070398338,-218103879,-9073234,-1190756725,-1359806465,-114568713,1183579783,29816580,-1543343104,-202780343,-204926043,-1946973276,12803578,-1947432107,-1948349481,-24443274,-1064380276,-4603853,-139529473,75402193,27838347,1235485300,-1510741551,-1527527149,-91491445,-1957313699,-1948808212,-1898410786,74877888,856063627,-17984,-772296974,-1493960405,-1071970956,-1946157283,1576700915,-1957363517,-1932030996,-1950314792,-1070398338,-218103879,1238497198,1576700817,-1957363517,508975084,139365127,-645191965,-1962639733,-222284809,64616366,-1946252341,-1494022538,872367242,-12240183,74712183,-772322999,1600045451,-1017256565,1458342741,-385830057,-1957363510,73305068,82452027,-75296387,-166953984,1074064519,28837236]},{"sector":2,"data":[855829248,1575324608,-1957363517,-1957210388,92996734,-1962779253,1435173965,141921030,-854950517,2123061025,-1996125946,1300824669,106268932,-1895271031,74582597,149681715,-1091822616,92995585,1594652041,1575324510,-1957363517,-1957210388,92996734,-1962779253,1435173965,141921030,-1962248705,93194366,1594252686,509026765,-544286836,-1945600373,105221893,-1996063093,39684357,-1996206711,1971914325,172330760,-164428686,-1108866837,114411,1971914123,-1956749556,12803557,-1962258805,1451951174,142510854,-66642345,1958742675,184124179,-771027339,766511737,-2082736214,-621346606,865269643,1958742994,-1812859134,-2020412937,1009779923,67270201,-1031034329,-495598837,-1404107384,1149764998,21270015,-227358917,-1956749480,12803557,-1947432107,12059734,1914817859,105313807,-167152638,74711489,-116588360,15405033,1408011093,1465274961,1427506718,-1962248507,108446980,-1408348533,158490940,91454268,1149820932,1576067839,1595868951,1532582494,-899816053,-1957363702,1381061612,102651734,12080406,1914817891,108971025,-1978773877,92808708,-136165562,392020019,1583292167,-1956947622,181034469,0,0,0,0,1377850189,1412263541,543518057,1919052108,544830049,1866670125,1769109872,544499815,539583272,943208753,1766662188,1936683619,544499311,1886547779,2097169,1404109057,1414742613,11665413,1555038466,1090542592,620780602,1025522275]},{"sector":3,"data":[1931812926,1143930890,406793984,218149376,-20480,327679,524466,-80,-1308621569,-1342175232,-1342174977,0,-1,0,218103808,10,655360,615645208,1303380033,1329864787,1700143187,1869181810,775233646,673198128,1866672451,1769109872,544499815,825768241,960049453,1766662193,1936683619,544499311,1886547779,1667845152,1702063717,1632444516,1769104756,757099617,1869762592,1953654128,1718558841,1667845408,1869836146,1092645990,1914727532,1952999273,1701978227,1987208563,2015388773,-1744784896,-20480,11665410,-5242840,0,255,2086492928,1026244156,8763,684837,6029404,774766638,1543527424,3158016,690169920,1970498915,1920234338,822698798,941633838,909127478,3617071,1100,0,10425,5440538,4980914,990147248,1229348675,1230980428,240076366,436253184,1355776,25264513,-1308621055,-1342171904,68814090,-1308621501,-1342174464,4016,33691136,201919768,134679564,318707222,-16641523,167247872,167247872,1,0,258,0,514,0,900,0,4326402,7864498,432,-1308621822,-1342147584,1848116680,694971509,1970153472,2714732,589311275,11665428,548405269,0,695085422,695085422,993646,1310898,1009554096,1397575228,4079175,808866304,168636464,1953701933,543908705,1919252079]},{"sector":4,"data":[2003790950,50334221,808866304,168637232,1852383277,1701274996,1768169586,1701079414,544825888,658736,911343625,221851696,1847602442,1696625775,1735749486,1886593128,543515489,544370534,1769369189,1835954034,225734245,16515082,-16774643,1853190656,1835627565,1919230053,544370546,1375732224,842018870,539822605,1634692198,1735289204,1768910880,1847620718,1814066287,1701077359,658788,911343617,221327408,1847602442,543976565,1852403568,544367988,1769173857,1701670503,168653934,-1308567552,-1342176001,10028,23986176,84215808,1112671377,-1064507253,234885125,303903,787971,244039822,-108331002,-34108593,-1202674445,-883949516,-661863540,-1898410424,1032128,-1342172999,1202648063,-1014237301,-1077899704,78708751,-789068149,-628299565,74698795,-768878452,-268181293,-947135858,-388771593,-802438516,-1064565645,-522989013,-1030817789,1322289836,1187548077,-31145334,91598908,-341118036,1974615046,-1968901267,1946265794,20102833,512433934,872153092,-930370094,-1031072797,-1064385789,-2080863315,292880383,-501415642,16417267,-2129234704,-351272766,1086360796,-276578162,486614544,-339702200,-1950118942,-1962932162,50334262,33948144,1060096,-1064380274,-100663109,-410265970,784698363,1085550591,-1191181637,-896794602,482007694,-1205744383,567102719,1801675088,1713398885,543517801,1663071081,1970434671,947312,174787154,188549798,367004826]},{"sector":5,"data":[375920164,642786966,657933844,1185425345,0,0,0,0,0,0,0,1300824064,106268932,-1895271031,74582597,149681715,-1091822616,92995585,1594652041,1575324510,-1957363517,-1957210388,92996734,-1962779253,1435173965,141921030,-1962248705,93194366,1594252686,509026765,-544286836,-1945600373,105221893,-1996063093,39684357,-1996206711,1971914325,172330760,-164428686,-1108866837,114411,1971914123,-1956749556,12803557,-1962258805,1451951174,142510854,-66642345,1958742675,184124179,-771027339,766511737,-2082736214,-621346606,865269643,1958742994,-1812859134,-2020412937,1009779923,67270201,-1031034329,-495598837,-1404107384,1149764998,21270015,-227358917,-1956749480,12803557,-1947432107,12059734,1914817859,105313807,-167152638,74711489,-116588360,15405033,1408011093,1465274961,1427506718,-1962248507,108446980,-1408348533,158490940,91454268,1149820932,1576067839,1595868951,1532582494,-899816053,-1957363702,1381061612,102651734,12080406,1914817891,108971025,-1978773877,92808708,-136165562,392020019,1583292167,-1956947622,181034469,0,0,0,0,1377850189,1412263541,543518057,1919052108,544830049,1866670125,1769109872,544499815,539583272,943208753,1766662188,1936683619,544499311,1886547779,2097169,1404109057,1414742613,11665413,1555038466,1090542592,620780602,1025522275]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[-1073569815,1555284932,8137517,0,0,1,0,538976288,538976288,538976288,538976288,2105376,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,92,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,218103808]},{"sector":10,"data":[707668490,0,0,0,973078528,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,312672256,-1223783423,-183596015,953361,-1576104942,-535917551,290580497,-1528296845,-251214317,1089143297,-853953284,32743969,-224247548,12445697,-402639128,544342086,-1979583042,-2147282410,-1023524374,567101364,17501824,16508992,-402546456,99288181,32573126,81717249,-1274941024,-853422772,505888,149487542,-1928826350,-1392442562,-1012159061,160433863,113705089,2450,1912974312,306085931,158662659,-1576930656,-336067822,1697795,1048581746,1962935060,51691278,-1951769424,-1275022601,-132002489,303467203,-233424381,-1591184383,-1005977326,-360705419,-854674367,-853953503,-217695711,225835009,293603015,-2134966257,69068817,-134091783,41794243,567089844,-843644744,1958742575,-1224558568,-12767283,-2146535937,16845582,-843643208,203327791,616039937,-1994273483,-1945994978,117603078,-1207358790,567092516,891533318,512303565,109838965,-1173945737,599263452,-1205744347,-617367801,1354969037,2107834288,-1576488958,312476291]},{"sector":11,"data":[-1572852733,1397817988,29048752,768256,42239880,1543103043,41794137,567087540,1951973386,-1094715127,58845201,-2067918101,-1681963518,768258,-1447058189,57534481,-1174397464,1072169746,53864448,-1190985798,753401858,571651,-1274871366,-1021194930,512360631,-343932142,18266688,-848756552,-1928039903,-1560209402,109908478,-207421158,300400401,-1023203608,-4630704,-1325757441,732885504,1238338554,1438865503,-1955599229,767921132,4004853,-2140376574,1543705662,347744372,-851725309,-1977781727,-2147282410,1988968682,759612974,-850938788,762744097,-1190980417,-1527578559,348001003,763268355,-218086983,51690148,567098292,1105730674,116825089,1946288395,4581379,17501824,23586824,8579229,-759231509,43902993,32573126,-1089475839,96932224,-1930952696,-251214334,-998047487,-154968721,-2147415290,94374005,726042625,60819179,726042625,187072707,-488048895,47495935,567089844,-1174404935,1320420097,343024077,17501824,47495688,-402462304,1337196860,-244112947,1912740072,-234437107,-726007806,-402608126,-1447427804,-853887998,1668465441,604148384,-2142211056,771922750,-1897379468,41794303,-402484576,109248768,-402390764,-1447165876,-2080535806,733544647,-1599802624,1183318283,-19404756,-964430453,44678912,-218092615,742820516,-2097083486,67179566,-1272097139,-2145268421,127294,2129137525,-2137265408,127294,-1830288523,364823297,-1275022845]},{"sector":12,"data":[1310838087,-1962928920,1559920894,96863348,-1682028708,899330,868459763,3976402,837291636,1174631170,-225836880,-303312758,-1447378098,-853887998,1095969,-1274871366,-350106290,-850414588,-2146930143,2130774822,-2147030024,-2147415282,-1609600263,270795454,1048634228,1949172423,-154928932,-2147415290,-1447153291,41795330,-218092615,-850414428,-2146930143,2130774822,-2147030024,-2147415282,-1609665799,270795454,1048634228,1949172423,-104597284,-225706773,2014336,-1975225298,4253912,-402625560,800718974,-37165055,17499894,-402426872,-1981284169,726043136,18103947,19840397,616794794,-2146143216,536939278,18103947,19905933,62464176,-1012206848,18103947,270844810,-1114831243,82510130,20102541,-1962930759,516325874,1017818112,-503155712,230182904,-1070421238,-1014316118,58003492,-1979700248,1049307974,-1114832620,-1012268754,270844810,548407157,-352320583,17080326,-1962933319,-1929309122,-218026051,60867498,726022145,1187382901,250290219,939591072,108342086,-2013198688,-154981562,536939270,-927005067,3008529,29053891,-851397632,-389850335,305987599,-133991168,-956758293,16904454,102650819,47953,567105972,1528760153,1381061571,-1962570922,1972044381,105745156,-402106997,326307491,-1961787201,1972044381,105745156,-402106997,1593380495,-1017423526,-1207957528,567102467,116793549,1963983115,185005582,125059073,-1274940230,-1977496261,-1274940650]},{"sector":13,"data":[-165556978,16845574,129501556,203328439,506449153,41227973,-853204040,-987881695,-1207797482,567092516,-1672428769,2032074542,2080521218,118361629,646600735,-327154926,1977629249,185499653,-1712844799,1275181311,-998039091,1444859650,17708741,292943371,1660991568,-1993989683,637603382,17833612,3965784,70914420,1144653938,-117213439,-964491541,-118822142,12787550,0,0,2455,34185473,164235699,16908544,-1442206976,83886089,255,0,-1040186880,34187785,788547119,-16580543,0,0,165019648,788597162,63,0,418054144,160566921,1946157117,11397126,-1995969543,-402026442,393347098,160710285,160446091,244044339,-2098722414,-49919,-1007103371,-75375989,1282738603,162477707,973175936,1049430645,-1431567598,82528070,51658381,-51910570,4241758,-1442714815,1962949804,1559920663,-25161867,-2130021284,1946173689,-12204540,183236608,1049485794,1290277330,887880190,165166721,108333523,-117420312,-996071701,163331337,113642869,-2145384004,33622798,-971904008,537509638,-1560213599,161546499,17146625,294298563,990482593,-971868944,-1599930364,-1912158447,-955146735,17928198,-1975612160,-34478063,121540035,-35002350,302464641,108265775,302450431,12840939]},{"sector":14,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-16777216,0,255,2086492928,1026244156,-956292549,716038,243923968,113707744,2786,183830215,113704960,2790,193005255,113728859,1014762371,193267399,113716030,993856391,1929681128,-18413,495658579,1930377766,178179,17623387,183449225,-1923786925,-167053538,537587206,-391365003,930219299,1946455272,79554610,116790901,1965034222,72869893,116794091,1950419694,418074139,1027344264,243271029,1124141806,1929711592,126397641,1321462595,182728329,-1996486714,638251806,915217803,1015024375,-2144242641,125051452,183371510,642807041,838944650,-536462876,-1592691958,-523171104,-670874813,-400585946,1726677120,182585031,1592459265,21465638,-784276430,651690976,-315486326,259311883,-1960422589,12314655,1128231771,-940383677,51044870,640936704,838944650,-523157276,-1977165821,-773574137,-670875424,839879206,1959332845,642990863,1424498571,175332096,-220052669,182585031,1599930372,-535917733,182624522,182728331,182851211,182984330,642827256,44631947,-16485120,-2146770938,410320956,1962934697,-502872312]},{"sector":15,"data":[-352321014,61886478,-1796669516,65755136,1476464872,1438906819,1334453841,200094216,-1928497975,451414383,-402099454,-152961011,-1996100615,-133499602,650337625,32384,-347798668,-2134686218,269151758,1929365736,-299466686,-1588531446,-970257679,183436801,-248083624,3964938,2088772469,141900543,182585031,518717449,4162342,-148498316,1962934535,-502872303,-352321014,9693193,-116528136,-1336931605,-385895421,-128450557,-1960421437,1049166975,-2010772762,1703421445,-173977599,1166616074,20731906,-1993995659,-1993997227,1508574797,108331580,72714534,121393131,138209396,104653940,-2010773899,1038812245,242549820,1074458529,71665958,106794022,-1993987093,-1943665547,642778717,16926710,78644340,-165279253,1946288711,-402477051,643301522,268584950,1692926836,-960274688,756230,126559824,393592843,1465013072,182585031,-4980727,1625818032,1532649471,-352130216,-1876628733,1946288297,-502872304,-402653174,1048772998,1963526882,536914190,113707380,2786,-2147438616,17533502,1048776053,1962937058,-502872314,1476397322,-1974054717,1958742532,1966750744,24936459,-972720896,166395908,1929547752,-347716095,-1017618718,-796241322,2112357514,168522242,-401902400,76021771,1178993131,1583016683,1937784003,1918974988,2004499522,-337697730,1460032314,192691853,1946483328,2000588036,1947547659,1381060631,1706297118,-4472182,375295,-838860870,1482250785]},{"sector":16,"data":[-1912513141,1128465221,-685342676,-1017444513,141701180,74922300,-1007144916,1397801977,-1960421550,-1977219457,1975519749,-335563772,-502872312,-1275066102,-402411265,1516240483,1354979419,-1302965675,-402355710,980550112,-151031064,134934022,1027345780,-2144985483,1962934654,-166532242,269151750,977014388,-2144990603,1962934398,1525368410,4602406,-1073079179,1162236020,975573739,1131741254,1157925446,4602406,1162230133,116829163,1950354158,1207379471,1946165250,2122327559,578027520,268957478,1008235520,638154042,32384,250285429,125108284,8290342,-117214150,914949611,1593314033,-1017619110,-1957275824,-1978994882,1958742532,5761041,113647733,1577126794,1593836742,-966903317,643760132,67575,113716597,133858,1448617451,-1073085302,719854452,-401902592,41091340,1179076167,-391976213,312842,-465663673,1482645002,1946288297,-4960247,1558709680,1405311229,-2128704175,637195,74712890,1106895427,-1396483239,1946165480,5367830,116790389,1948257006,-301533458,158613770,-116987058,1324876267,1405352131,1947024465,1946172461,1946827817,2105550373,510788098,-1977165005,-1014824099,964699652,856519680,160048841,20588099,-119405452,1532562748,-967748669,537585670,183379584,1948269791,1946762294,1949056050,1965046833,540835852,548407157,-339723706,2105550366,393347330,-1977169613,-922025139,62589812,975586048,-502828031,1495284984,-391986341]},{"sector":17,"data":[-301533686,91554058,183373440,-339723744,-147943958,1960655626,1966029834,233568515,1007348728,-2147125969,1074458126,1444856824,-348224685,628424714,1381047888,856053079,-1193373962,567108352,-619979892,1516199175,1951932249,-382301915,-350320374,-382301430,-350319094,3965706,70914164,1144653938,-117213439,1178994155,1543039979,12787550,131072,0,256,2,33554432,131073,0,786176,0,16781312,16777760,17937152,201261056,170752,1048832,204801,1,-16777216,65540,0,392960,299630594,-16777215,51642379,268435456,102760704,-251657984,529,3071,16777216,805569699,11,-1560150016,741344260,257,0,393215,738197771,1073742336,1660945152,2013266944,-1879046912,-1694497280,-1224734976,-1207882752,-117363456,385953280,1325477633,1850283777,1920102243,544498533,542330692,1936876918,225341289,1766073866,1952671090,544830063,1213481296,1936288800,1735289204,1919903264,1819235872,543518069,168636709,1919501336,1869898597,1344305522,541611073,1953720684,224882281,1867389706,1651864352,1919509549,1869898597,1936025970,1769497888,168653939,1850281482,1768710518,1634738276,168650868,1819235871,543518069,1769104723,1310747745,1700949365,1936269426,758195488,168636965,-1010515964,1917273267,1768452193,1819042147,1768169593,1634496627,1948283769]}],[{"sector":1,"data":[1679844712,1667592809,2037542772,1920234272,1970561909,1864394098,543236198,1986622052,1919885413,1952542752,168636008,1411451405,541410642,1769104475,1564108150,1952542811,1528847720,542983727,1564553051,168626701,790634555,538976326,1886611780,1937334636,1701344288,1835101728,1864397669,1752440934,1768300645,544433516,1696624233,543712097,1701996900,1919906915,168636025,790634547,538976321,1936028501,1129529632,1763723593,1702130542,1864393825,2019893350,1684956532,1663067237,1634885992,1919251555,168636019,1049429774,-1048505839,29557173,-16711675,285213951,1702131781,1684366446,1920091424,622883439,-1928917455,-2095854786,46342337,-16711675,234882303,1936875856,1917132901,544370546,118370597,334446221,-1021460093,0,0,0,-1,0,0,-1,0,0,-1,-1,0,-1,0,218103808,10,655360,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,542330148,542330692,1936876886,544108393,808463925,692267040,2037411651,1751607666,959520884,825045304,540096825,1919117645,1718580079,1866670196,1277194354,1852138345,543450483,1702125901,1818323314,1344285984,1701867378,544830578,1293969007,1869767529,1952870259,1819033888,1734963744]},{"sector":2,"data":[544437352,1702061426,1684371058,1381191712,-919382266,-13385330,-1307431240,-1943024384,-1995171322,-1206642626,45224494,109850573,1049170978,783815712,-855330286,839289903,809404692,305051668,801965746,336987788,336871049,-1929474328,-1995173370,-1944842178,-1995166202,-401331138,109903516,1049170982,783815716,-855068142,973507631,943622420,1258735380,-972419820,605328390,340788935,113704960,660562,-1979832856,-401327042,786956313,4319232,5302353,1599670386,1482381831,-998046485,1355020556,12066390,505531747,141696775,340014729,340133516,-1195157410,12272640,-841862400,31883297,-1207841152,567100417,1140897987,855638459,-2145268270,28836302,-1021194940,567095476,1962935613,418117635,1929380413,-17659,45810667,112640,-1308622663,-100682240,1460031683,1435733,-25162126,74774783,48963334,-141877490,1476878173,861099715,-2134297610,141950974,339524747,636215179,1946339062,549241864,-339506156,1260824,658312562,-1006078208,-1944834884,-1006179389,-1944842052,-293949,-25160075,-117213697,1352862955,-18412,855638461,216791286,1946221443,5564419,-133904765,-922024334,-1611988363,33456284,1431447925,1347880529,-855310152,1493122095,-661976715,-855309640,-117314769,123667827,-2096698535,216532676,-346399488,-401682687,1583087611,-1185916989,-1070399489,-772296974,-1017161655,1963064195,943620893,376766228,1979711293,1352749067]},{"sector":3,"data":[941555476,82532372,339222271,-919397653,1962933888,1300899334,772401923,74790200,55413294,-117127293,200813939,-2145815351,91553790,-351978714,87764483,166396533,-2096794551,-471137081,-2146667783,1979252734,637996546,1912765699,653079046,-968422006,1329670,1364414659,1376147285,512354699,914887752,-991423411,1959332862,1978469148,2549765,-1326971925,1510502913,117507560,-2096829601,-336001340,1516177156,1560703737,-346530983,147096324,1397801977,1209961298,-294124,753403253,-402396416,259194999,12278196,841075968,113542116,-2096043015,192217083,125092155,-2097106712,1928922820,1482381827,520494787,1963063683,637711387,567088522,-389903841,102629553,638022431,-855550582,267122721,-922025292,-1977218700,1193397525,-118262455,1347928863,-91532538,-645200098,-218359120,721647022,-880063527,1599604571,197145539,508523721,1085546246,-108800117,-852986623,642785057,1525155210,102651904,-133795041,-851296076,-2144953311,41228861,32227723,-68677937,1427827711,-5838767,-849745525,-352160991,1959279371,-118998265,-1047854475,-1195172003,79364135,-1023298304,1962933888,-2134444527,119409781,340475533,-402652487,113508096,1144964183,1962871572,1032005143,276101120,1912945190,1161438727,-117344511,-370456761,-1883044001,856968710,-141388837,-1827384778,340932343,1980365443,935493637,-1031797781,188830256,184841664,-2093386533,225772537,738884736]},{"sector":4,"data":[922682741,-348056485,117015330,2088766837,91565066,341522175,-2096043199,192219641,738884736,922682741,-1824451493,-1477717453,-1070345677,340670207,198325187,-1272875831,637579301,175449400,23410726,-1002830732,-1977217419,-11278331,1195835763,-478852798,197822294,1295217901,340803203,-1976863488,805570116,21314086,518718069,74788924,74764811,-404016125,340606592,1107850751,1330202946,-1174148273,727187455,-32839431,57891167,1368424427,2088815243,225705990,108316939,1195854153,-346160661,1976109840,166419971,1979709827,197735170,1431729407,860948055,1346274249,762642452,252134646,2093222005,21817346,1156979435,208932103,235357430,1156974196,141888519,-402490172,15401306,-352300312,2156547,123275122,-346137249,180650756,1346274297,91553812,350815090,1342621695,-1023410156,1352782387,1376175892,-402650604,-2007433579,1125405831,1967192963,13690883,-294270466,-1995829832,1125405831,12642371,-2133118013,1962935932,1418184465,1127030804,1418184259,-398254060,861733030,-1999490085,-1978381810,-1053161148,-1054204298,1157034122,343179271,-2012593014,1125405831,1967192963,8185859,-327823618,556160,1278741876,705196808,-779483060,185093258,-165382967,1963919172,121959948,637957136,-347667062,-2021107711,-2092755884,58015995,-33537560,-153324087,1971324740,1962281496,172263956,341084040,1090224963,602407797,1976499712,121960172,-167217905]},{"sector":5,"data":[1947207492,168618754,-1895271214,-32223738,-386370102,-1017839614,509019729,868977415,1413385691,-58529772,123667826,-2096829607,-1007089980,121960029,638743856,1095763338,1945987304,1166681606,-336048127,92939789,74760202,-169131705,-1017775829,869413725,1376176064,855642132,121960155,639923488,1156973962,225774855,57966760,-947968957,169103878,121959936,-955878130,169103878,-162206976,1963984708,93005350,218580214,-990507147,1124365440,-947919744,169103878,121959936,-955878130,169103878,640215808,-1960442485,1156973141,259329287,1954596598,-427801852,1376175999,-167769580,1963853636,1376175878,-402650604,-619971355,-768408204,1431449010,1878985411,-1005814,-1425366871,-525530432,184594186,-1291112449,-256570560,192985087,-1156865863,-524481600,201375499,-1022615359,1623526464,209766156,-888364855,-523432768,-995572,-754114351,1878986048,226547469,-619859969,-522383936,-991475,-485613343,1625624128,243328782,-351362839,-521335104,251719438,-217108481,-252375232,260110335,-82861831,-520286272,268500751,51388673,1627783153,-981232,185643007,-519237439,285282064,319889681,-250277567,293672959,454140185,-518188607,302063377,588394495,1629819457,310454034,722641193,-517139775,-970990,856891697,1630868289,327235347,991142201,-516090943,336592659,1125392705,-60351,255]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[1334761,5240,3767,3445,4485,0,0,0,0,0,0,0,0,1692990208,772677120,17051391,5892347,-13758946,-83818450,503336680,788475406,-386203380,236847171,271515438,3794945,-13758946,-402582482,236847151,405733166,2484225,-13758946,-402580434,236847131,539950894,1173505,-13758946,-402578386,236847111,674168622,-2144429055,78910,216533108,-402427136,-1013120998,79338,-1269804288,520039943,-1073020624,41245528,-1007107079,95703123,807337774,1958742785,-1017423869,567148267,-1139339526,251331902,-1607558113,-2136472256,2133067636,740228910,645934593,-1652619968,50291433,83951616,147714,34341376,0,0,35521024,50473987,554,0,0,0,16777216,131589,37224704,73990688,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19660800,0,0,65536,16842752,0,-65536]},{"sector":9,"data":[0,0,0,0,0,0,0,256,521012766,516822667,-1960918367,-1960919522,1344193550,-611561133,512476046,1253311679,1048584653,1963000491,1379828531,745799682,-1275067205,1914817864,868257315,519451647,38936206,-2097143367,-201584447,-1047781468,38930062,567101876,38932105,-1268950183,1914817864,71672677,-1912591197,-577888576,-24381901,530904060,513556096,-1912179456,-850807611,-1710832095,-1106902782,12526368,-1731872512,-1258291269,992070984,-1272220966,1914817864,-1023193051,-1734098389,1489014274,55505155,-201502727,-1064371036,567101876,52233926,-383842560,266993045,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1862475776,-2147483645,1543503872,1811939328,-1828716544,1,-631492864,1795162113,1]},{"sector":10,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1230127360,89020742,1919902273,539756404,1920230738,539756665,1869506377,738616690,1767982624,138346860,1684104562,6778473,1769109256,1735289204,622857728,1919164465,543520361,168636965,824516623,1986356256,543515497,168636965,1701597222,543519585,1702063721,1981838450,1836412015,824516709,1919251232,543973737,623718949,621415731,1701603654,1819042080,1952539503,544108393,1818386804,1633820773,1679830116,1702259058,221324576,1850283274,1768710518,1329799268,1312902477,1329802820,554306893,1702063689,1679848562,543912809,1752459639,540091680,1679847017,1702259058,221390112,1917853962,544437093,544829025,544826731,1663070068,1769238127,543520110,539893806,470420782,1700006413,1852403058,543519841,1668571490,1869226088,1495801954,1059671599,1851867923,544501614,1667594341,543519861,168636709,1920091411,1763734127,1480925294,1768300613,168650092,1869762594,1835102823,1869575200,1734959648,544175136,544500070,1830841961,1919905125,369757561,1867385357,1701996064,1768300645,1746953580,1818521185,1109029733,1126196321,1634561391,1864393838,1768300658,1847616876,224750945,1665207818,1936942435,1852138528,543450473,1292504345,1919905125,1818304633,1633906540,1852795252,1920099616]},{"sector":11,"data":[220623471,1851867914,544501614,1684107116,1297040160,1145979213,2037588012,1835365491,1818322976,224683380,168632586,1852727619,1931506799,1953653108,1297040160,1145979213,2019893292,1852404841,772410727,1867778573,1701585008,543974774,1668248176,544437093,1919902305,744777076,1851876128,544501614,1953394531,1702194793,218237453,17599498,17446912,17599488,0,100608,1918309120,543519849,1953460848,544498533,1869771365,1850281074,1768710518,1853169764,1309242473,1914729583,2036621669,1986939158,1684630625,1986356256,543515497,1970365810,175403877,1635017028,1920099616,1226928751,1818326638,1679844457,1667855973,1701978213,1936029041,1634738292,1701667186,1936876916,1701139210,1919230059,309489522,1635151433,543451500,1768187245,2037653601,1393583472,1869898597,1869488242,1868963956,442789493,1852404304,544367988,544503151,1881171567,1919250529,1920099616,1460761199,1702127986,1969317408,1696625772,1919906418,1634030096,1634082916,544500853,1869771365,1699155826,1634887022,1634082924,1920298089,1750274405,1852404321,1769349223,1952541807,242118505,1801678668,1869182496,1769234796,1226010223,1818326638,1679844457,543912809,1851877475,1175414119,1965048387,1635148142,1650551913,1394173292,1702130553,1701978221,1920298867,1696621923,1969318008,1684370547,1685013266,1634738277,1830839655,1634562921,208167796,544503119,1763731055,1953853550,1936607511]},{"sector":12,"data":[1768318581,1852139875,1768169588,1931504499,1701011824,128255889,129763250,131991507,134940672,137299998,140249162,142411885,144574607,146933938,149883100,1410533628,1830842223,544829025,1634886000,1702126957,1377465202,1769304421,543450482,1634886000,1702126957,1768759410,1852404595,1850281575,1768710518,2004033636,1751348329,1986939151,1684630625,2036689696,1685221239,1344544769,1835102817,1919251557,1818326560,1847616885,1763734639,1818304622,1702326124,1634869348,459630446,1634885968,1702126957,1635131506,543520108,544501614,1869376609,459564407,1634885968,1702126957,1635131506,543520108,544501614,1869376609,476341623,1634885968,1702126957,1868963954,1952542066,1953459744,1919902496,1952671090,1986939153,1684630625,1918988320,1952804193,1226666597,1818326638,1881171049,1835102817,1919251557,1836016416,1634625890,1852795252,156371262,159123821,160303500,164563379,168298987,1225787930,1818326638,1713398889,1952673397,242118505,1701603654,1953459744,1970234912,1343120494,543716449,544501614,1853189990,1867780964,1634541679,1864399214,544105840,1701603686,1665207923,1936942435,1852138528,543450473,1986939150,1684630625,1851877408,526740580,1869440333,1663072626,1920233071,1646292079,1801678700,1701060723,1869771891,325346681,1970499145,1667851878,1953391977,1835363616,477721199,1635151433,543451500,1869440365,1646295410,1801678700,1684300064,1936942450]},{"sector":13,"data":[1986939155,1684630625,1986938144,1852797545,1953391981,1986939150,1684630625,1919903264,443834733,1635151433,543451500,1668183398,1852795252,1918988320,1952804193,1225552485,1818326638,1679844457,459371617,1635151433,543451500,1986622052,1886593125,1718182757,1952539497,594440041,1702130753,544501869,1914728308,1987013989,1969430629,1852142194,1768169588,1952671090,259617391,544501582,1701667187,1986356256,224748393,1830842190,543519343,1701603686,1766198131,1696621932,1953720696,1631787891,1953459822,1801547040,1768169573,1952671090,544830063,1920233061,1631981177,1864395881,1313415278,875700308,1869566997,1851878688,1701978233,1701996900,1869182051,1142256494,1768714357,1702125923,1684369952,1667592809,1852795252,1986939152,1684630625,1935765536,1919907699,1850282340,1768710518,1634738276,1701667186,309486964,2004116814,543912559,1635017060,1969317408,1176597612,1952673397,544108393,544501614,1886418291,1702130287,2036473956,1952804384,1802661751,1902465575,1701996917,2037588068,1835365491,1836016416,1701736304,1847620718,1763734639,1635021678,1684368492,174000718,175966830,178260625,181340847,184552163,186845972,2878,191302475,194710411,128255889,129763250,131991507,134940672,137299998,140249162,142411885,144574607,146933938,149883100,2300]},{"sector":14,"data":[0,0,0,0,0,0,0,0,0,0,195624960,196411392,199232465,202116086,204409885,207883330,1007075003,-1155828734,138151556,1891308660,1946893318,114932493,108266812,-1106879301,-745864647,-351900184,-1261080055,-1558065843,2045313699,116793089,1946223389,486995469,74711555,248375583,116838175,1946419997,33325074,-58658190,535656204,-116996989,-2147482934,67312910,-1398712069,1975520002,229920774,-145219123,-16625146,189953279,-397511232,-1595407731,-1975487741,1392682510,38930062,637542591,335499,1946221443,-1014102520,567101876,243934727,-1960443903,-1275067618,-1994273463,-16625122,1963111694,243817423,113640102,-402652386,1810367939,-1950338302,45196008,-402476382,104398876,108266156,44828359,645988351,955974429,1963106822,21358851,860933113,503744192,1958742531,-1506881532,-1161603070,-2081945880,-1421967355,276037634,44842627,-1173785344,1877477122,-18089211,-402183750,1048577382,1962934955,38248727,-1593829725,178455113,38510848,-1207956317,567102464,44828359,109969408,1236534373,512434637,1353974341,-1549721139,-1572962302,41222146,113688627,-16711006,520241454,1090948952,1124503298,46433026,-661780706,-1191149377,-1510801344,567103924,1159629094,105952258,-841249761,-1408841951,-973045502,16949766,-2095112674,1048576708,1962934946,8513795,-1258291269]},{"sector":15,"data":[-400437944,537198602,1943550720,-12850933,-1315384136,-1008151804,567101620,113700722,-1560280414,2425957,268436976,378212978,-754776987,142004283,-92155861,57872384,-1559992927,1705051223,-1982332156,-402481634,-668205122,43523643,-977722508,856127384,-50426890,-242546965,-33649842,-1014102498,43523726,133997811,-1742829281,-1898411006,87997648,855671784,-18195,44959367,1962934077,-852577276,-1405189343,58064642,-385954839,372965763,376701600,38864582,19326977,989950696,1946329110,23193605,113701611,-1107295663,1975452755,-1744400755,1740241922,-204592380,43950500,-16776541,520263214,-402471805,1355481089,-1193768109,567100424,-1073019789,19203563,1540421376,-2095070376,31982276,921225984,-1948568831,-1962760178,973084694,-1274514230,-2011050690,1124079630,141880890,567099060,1650312,-1190870141,1051983887,-498916915,-885096199,242614018,-1950939208,-855455458,-888748497,1405288450,-1273100720,-1910387375,874431963,117934848,1336092166,446703106,-1981773312,1476861703,535348059,-16652032,-1269804258,-1591620271,-611450289,3415749,1532495753,-440745185,-38344443,-402481760,-227147955,98957953,-440793483,53012485,37240448,-1274448640,69324057,37265985,-1106904134,266863154,102611459,-402454040,-1195180031,567086087,-854851400,-1169833183,12059220,1931595069,277776,-1480980875,-44111610,-335567384,-1160213531,-919395552,-851312456]},{"sector":16,"data":[-1190104543,-1910597691,-1174235106,1068761344,-1675681331,-851528624,1922914337,1958820612,98941624,-335580696,512630449,12452504,-2017281791,870961660,-805065262,-503262589,-1161617416,582484351,169249061,203328512,-1172189952,-1057095349,1455038925,-842990079,-2095070431,350814916,104839934,-1207802392,567086081,973273320,1946502662,1158035975,-102337275,110043075,117114174,1364676950,-1912136112,71601117,774277158,34389762,-2097149767,-201585978,1599690916,-1561846010,484987646,646470146,1090781861,-167639646,175407300,36570870,-385649280,1740505590,29685253,1891500916,1732151557,1428030980,1397838422,567105972,1582979419,1049173853,109838908,839320126,-2080863260,57873391,-973075265,147462,1947271043,301957893,113640821,-1996422592,-2097001154,1115034879,12122251,1009765637,1395291647,28893067,1529859333,1084366706,520494594,-4597877,-54512897,1170648818,162800895,1170612685,-350289665,1074185749,1049296898,1049166951,-947715507,-386234605,1048576387,1946157632,22931461,-163171861,-2147340794,-2001072268,121014533,33996290,-352237080,91863578,33568393,-402522178,1048576314,1946157649,-36116474,-2080518167,251809086,508632693,1010222343,515856130,1095938,1604645884,-1168564474,364774808,17360898,-402307142,116785410,1947206309,88979974,-167709208,537044230,1438254708,15263749,44369654,-1173982200,-605551266,90552832,-167717400]},{"sector":17,"data":[-16601082,62129524,-1207915799,567086081,-402604312,11796825,44369654,973501472,1946501894,-154862039,268608774,104466036,443811138,104514814,343147841,116835582,1946682021,1141258758,-385649659,1709965145,52233974,-2145750015,174910,1270483060,7399431,1201798891,1483522,-850591816,-1694042591,91553538,43779782,504793601,-88676349,225759754,44842627,-955878400,-16602106,1295942655,125042690,38616707,-971868926,176646,44842627,-955878400,-16602106,-1950053633,-54466345,-1912119719,-821740002,-1106919494,132645423,-352145408,125483752,1364414550,-1948349614,-919360270,65259658,1509956072,1582848857,-628665661,-787223677,346000355,-388331767,-1017446442,1965374636,-2146137583,-92261910,-402164983,1229324301,-796260629,567083700,1405346530,-167530415,-1965554718,23038727,661965054,729073918,79234955,-775892736,-775892544,254038208,960245764,117703286,45404298,-497540659,-1978274844,-855460841,-1978799327,1959922199,-855460857,-202685663,1354980185,-854453320,-1018936273,305020191,4008564,1344042069,-1957669552,138841068,-1593555319,1183384763,79274248,1476806281,1489706845,17088030,300662835,1963049718,-628403444,-472776910,125681604,533667675,1381061456,-1157161386,-8323061,57936440,989878971,1213887192,-133963567,79511099,1421756274,113154,-1205862213,567110656,-661962894,-164374645,16837249,12110131,1914817858]}],[{"sector":1,"data":[74037786,-1275051847,1914817855,1979058958,378226186,-771029911,-1661347211,567099060,-335901795,1032529416,24510219,1499094777,-887138213,-930420598,-849870664,-791114975,-2132705079,176153472,1476507865,-578149939,-13440048,-849869896,52001,0,-1274724676,-842822576,-852446175,343329,1757024628,-27465697,958840972,1946162694,-1172255234,78717743,-930288941,-861683197,120711198,-1207401496,802010880,443809852,-843644232,-49873,112726133,-1993355849,855820574,-1224230693,1052717005,-1119975159,141092868,-850067272,1975520047,914957836,-1943657716,-350024162,113649158,100737808,-1335512033,-17916,-1174405189,-1128333307,505531650,-849149768,534481953,46478985,46603913,-1560275295,178324039,38380288,-1560277855,1773666891,-754667243,63540456,73769921,99614757,57872384,-1559992927,44106839,1562283008,1629391876,1428065284,-1893823484,43950855,589347664,-1731869823,-1324366973,-1259613436,1478610250,515901127,113705041,1056446,-1315384134,-1981099260,723439126,43557826,184560801,-33131328,-350315514,121169923,-1912322653,-853953344,-1564410335,1553990301,1958742528,-1573211095,1074004637,-1673625347,326434846,-1088485858,-1648492385,9484544,639608051,-67105117,-1558286941,2062032510,521015034,8437255,855542700,-956824604,-919401211,526651017,-1960913217,857695246,1714850258,-903938273,1678674206,-49889,4028532,1446867968]},{"sector":2,"data":[212304,-24434059,526792331,544536379,-1157219668,1022719006,988902409,1963219206,233352207,-1140442619,1510307102,10545498,-796172712,-402352408,-1528038249,526204545,829693709,526204545,1047797505,526204545,1668554521,526204545,1953767230,526204545,2104762149,526204545,57941834,-385831191,-1293352813,-1338081279,108396290,-385875528,113704829,-369163600,1048641366,1946157739,112646,-16815895,-956126458,2130856198,1260293121,-1891729406,91619102,512689862,-13833984,-2147389207,2020158,28837492,-12850944,517146366,512689862,-15668991,44840585,44762822,-1895381504,1189675294,-767655935,108265502,-385875528,117374737,1606360786,-2095215841,78712771,512355283,-605479234,-784432898,108331294,-385875528,113704685,-385802543,183107270,-984211967,-1960878282,1023588566,1618092493,12114059,-165556924,108363970,567099060,-164475157,-1207711104,567100417,-745804174,289308710,712245539,244049,1052039987,-498916915,-1260745735,-1272853179,-1272853179,-1272853179,1495387454,-31056034,-383577850,526319202,-402652742,1223164743,-27989509,306085926,-361496285,302448166,1168193059,1048589828,906043036,513541830,-402164480,-1556740846,-1064434619,-1396100266,1962949697,-1147128070,76041758,966494,976636332,1948171014,48474629,240251627,1606295071,964894,-12219866,73008698,1229324917,247112947,-1205926400,567098624,-1961987553,-851528488]},{"sector":3,"data":[526276897,-672594162,536525565,1027056616,57999425,-400546886,1606351546,966430,-218100039,-1898255452,-2147203834,174910,-1274663308,-1898214320,-1088303677,2142765066,-661869823,21739691,-1411871573,-1425975624,-1934894964,-1174399458,783810880,119655717,-1560275295,512492103,413204502,44606208,71900812,72162956,72425100,-1107143489,1048576014,-1946149220,-1910569256,236418240,514047519,1172854534,116886274,1929862943,966149,-1993990386,-2147339458,1966735740,109258246,-1409154509,1975519914,1049175802,-14286188,637703182,43853450,641778816,37234312,-402486296,521012009,-2128404290,-1191116602,-771979326,-1378733079,-763113469,-1980177920,-2147311594,2002750,79367285,-850873344,-1560055263,512426578,512296005,113712834,7876,-164373618,-4456821,512308751,-472834368,-472783919,-1992891439,1260306462,1877529139,521018881,516165121,33129247,-651490956,-347995277,250080002,1959922463,528529926,-1577485848,78716606,104587475,108469956,85902497,-388825073,-2095137117,152126,-672595083,38969600,44435142,-1257847037,-1912602366,-1325452352,28355072,-1430244438,-1414878293,-18261,-218101063,1832812715,242548766,567089588,515704322,-1575064158,1841176190,571678,-1163614733,12066413,1914817853,-1260877047,-383660738,-397410165,-1700593449,520050718,1094524568,-1170836480,12066518,1914817848,1392214819,549399925,511622656,-218101575]},{"sector":4,"data":[2126161061,1023457310,141697485,1052039307,1307255245,513285887,1962950973,114932230,-1896304152,-1274916346,-954086071,152070,-1509505536,113705218,693,-1557163336,548937360,-754667229,63540456,512926657,512761599,44842627,-1173981952,1944592283,521019128,-1950939208,-855455458,1048583983,1946231568,505284141,17088263,236883494,915088931,196682508,-773730048,-1527513887,-25329370,108195840,872859174,119472385,-1377303573,-411506431,1101842739,-92946422,43557315,43662976,1393652737,548981644,-773271261,-773271064,1539507176,-628665661,-1948004021,-2029373281,-134682406,82363226,-349343232,686357568,1158057472,1375679236,-391358634,642187324,1979663674,1609818626,208951646,2287697,1031808601,-102730496,-1962467645,216553470,1459940096,1493175272,-108529365,515416259,-1070464277,-234815303,-2143501394,-2144595854,516248350,-1014824259,526112514,104468203,141696697,515507770,539755127,113542083,-940405930,218104132,508809054,1465012230,-661731188,1048625294,1946157739,800589372,-1994273483,-1945847522,117750534,588267136,504787968,-2097041222,-661909270,-1193767360,567092527,-1289843681,-784433151,376766750,-1995620161,-352010946,-784433139,108331294,-402652486,1516240655,1528760152,8502979,857659071,-3001399,1025427998,712310783,1946157117,-2114917630,1478450494,-2130021345,1042242878,-351046625,585285342,1958742957,-388986105,-185862442]},{"sector":5,"data":[516104397,-661731188,79498891,222361985,-1048377739,-253656305,1048625203,1963008784,-1202629864,567096070,100368473,-1070391694,1527834240,448267125,-2084044024,-372174911,-372119087,243919313,-1021377345,135968859,102688747,-661731188,-852293960,283541537,119410549,79511179,990724283,-348752645,135969598,-1191182401,801982978,-956301437,16856070,113650037,-1962933964,-1207649010,-939325414,-787496573,-773205527,-1981165079,-352010482,-2096844355,-410841145,-1106514960,448335168,-212337656,1122525092,-1021376768,1465255454,-1275065669,1914817864,868257324,-1178104833,-1426915168,-1648484586,48926,-1073042772,-1547765131,442142,-1073042772,-1064502667,520576607,59587,116411625,-678706292,-1107229505,119415542,-1392505927,-1951677949,-136139837,79676167,309505,-1945974909,-947672128,-1006968318,1124120582,-2143539251,280497525,-1993355965,-1946079202,117518854,195,0,0,1447380015,1313817391,0,1543503872,1296912195,776228417,5066563,1547304960,1330926913,1128618053,1413562926,973081856,1430342492,1480937300,1094856261,-15925164,0,20479,11705,1413566464,1124089160,1347636559,1547518789,1296912195,776228417,5066563,544891197,16707,0,0,1341849600,0,0,517537792,-285081600,119467806,520363768,521936656,524361525,16785231,1526726914,2056991,131072,526589787]},{"sector":6,"data":[5254913,131072,526589787,4599553,131072,526589787,4468481,32768,522723163,4534017,-1610546943,0,128,33554432,1662999296,1127153951,33554432,1662999296,1294926111,18259,1526727168,18834207,16175,0,0,0,1668172055,1701999215,1142977635,1981829967,1769173605,168652399,1953845018,543584032,1769369189,1835954034,544501349,1667330163,1577717093,168626701,1919117645,1718580079,693250164,760433952,676548420,1444948306,1769173605,891317871,221261870,538976266,538976288,538976288,1126703136,1886339881,1734963833,1293972584,1869767529,1952870259,1919894304,959520880,825045304,774977849,1395132941,1768121712,1684367718,1297040160,1145979213,1634038560,543712114,1701996900,1919906915,1633820793,906628452,1667592275,1701406313,1329799268,1312902477,1702043716,1751347809,1919509536,1869898597,1646295410,1629512801,1936024419,1701060723,1684367726,1396443661,1953653108,543236211,544695662,1953721961,1701015137,543584032,543516788,1143821133,1663062863,1634561391,1763730542,1919251566,1952805488,221147749,1175063818,1296912195,541347393,1919179611,979727977,1952542813,1528847720,1769366884,542991715,977612635,1852730990,1528847726,542986287,541273947,1769108595,542992238,1397567323,168648007,541592077,1919179552,979727977,1952542813,538976360,1701860128,1768319331,1948283749,1679844712]},{"sector":7,"data":[1667592809,2037542772,1852793632,1852399988,543649385,1296912195,776228417,541937475,1701603686,1292504366,1701060640,1701013878,538976288,538976288,1884495904,1718182757,544433513,543516788,1769366884,1948280163,1937055855,1868963941,1868767346,1851878765,1852383332,544503152,543452769,1886680431,221148277,538985738,1849312559,1852730990,538976288,538976288,1937007955,1701344288,1768843552,1818323316,1986946336,1852797545,1953391981,2053731104,1869881445,1852730912,1646292590,1936028793,1292504366,1345265696,538976288,538976288,538976288,1632444448,544433515,543516788,544695662,1835888483,543452769,1702129257,1701998706,544367988,1836213616,1852141153,1663574132,1948741217,1769497888,221129076,538988554,1931494191,1852404340,538976359,538976288,1920098627,544433513,544503151,543516788,1835888483,543452769,1667592307,1701406313,2036473956,1920234272,744975977,1684955424,1701344288,1953701998,779317359,541985293,1397567264,538976327,538976288,538976288,1701860128,1768319331,1948283749,544498024,543976545,1869771365,1701650546,1734439795,1646293861,1953701989,1684370031,544106784,1869440365,539916658,225800025,538982410,538976288,538976288,538976288,538976288,1684366702,544175136,1667592307,544826985,1998606383,543716457,1936287860,1769435936,778593140,542771725,551428247,561324327,571023803,581509722,121110528,3473783,2688069]},{"sector":8,"data":[69337763,125501870,133432002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,567086772,1998491182,-18291,44959367,1962934077,-852577276,520039969,-315388555,44842627,235238911,552462623,-87520004,1421660302,-1064371304,-1092036466,-351877553,512622736,-969503369,-2138352890,-704199114,-318013301,-952759948,25908230,-2145916147,174654,-971108236,174598,1505369870,-851725172,1048583969,1946157855,507412490,57999363,-970162456,172550,-661731188,-1739277744,-851967816,103503905,-1152152199,-470351856,1959922523,-18429,1979842621,-33544957,-1903322973,-158501090,16950790,535305844,-166104532,-16572922,116789877,1979646642,1376188171,1979711234,618129411]},{"sector":9,"data":[45549254,-1207515648,431226882,-1573510707,116821387,1962869534,752871683,44435190,-401116159,309472222,45221622,-150243841,-16625146,-401771009,116792343,1962869426,198568195,570869302,113639565,-973077811,183302,45156038,1376188160,1962934018,-1205991870,109975810,549388882,-1172369920,801999830,119537468,-400677516,-971046121,178950,38930167,326500351,45686411,1946221443,1377732874,-1190738174,234881026,-2091521249,175166,-4318092,-1405712385,-1948729598,-1431516877,1963801665,521030137,-1948840312,163066603,-1205744291,28466440,521019853,-1198828614,801982480,74760203,567085748,-1957491062,-1048318670,-1957446141,-208939329,601876644,1948743400,728754438,-402588951,192097973,918167310,1293609090,-151121431,43058950,1048833653,1946194885,171869151,-663486319,-1081354050,28872191,-1960719063,-2137979618,1966735743,-2145940965,-360652830,1962884161,138316556,4030609,-873920907,627304957,-1750989430,-1189039987,-230227959,705212590,-1912626495,1442873791,-393488194,-1404689554,1948479976,1947024394,2064005638,1324381581,-1431516877,-85979844,-152073393,-2146531119,1049320960,1049202956,915115406,-167014128,-175439243,-1207935809,567093505,-1953657694,-1986980034,-1953656770,194059062,-1962773002,7127029,-852950600,-1920097759,-1860026741,-1919795575,-1861468533,1042536439,1049203655,-6255212,-1760130419,1976699533,-372703739,-907467574,1998491173]},{"sector":10,"data":[1376188301,1962934018,-1157183995,1048772866,1962869420,-35067645,117255401,1347508054,-268388269,-2144943986,-33554882,1542981748,1583307096,12108551,868257472,1031874303,175417941,1023442949,-311234560,-1977163541,-13499811,-472783919,-2088778877,113213667,227157504,200094279,50623945,-1948718141,-1494006030,-117241996,-352073853,1060929764,1015022964,787445024,-1887828340,2017364270,-1679033969,-1258291269,-1272853176,1394724168,623032400,512634398,1807388023,-1943941875,532844250,-850021286,-1160081887,448004224,-1591336499,748880965,-628335872,378131203,-628359166,1121619530,71305,-75375986,41029632,78764851,-628300845,-477375858,-145702861,922693328,-13725830,-1903200202,1625869250,-1023315448,1946352259,66749194,904398196,773057280,-1920917761,1709709172,732555275,-1174228574,-102202832,-400617981,-269923592,521019131,-394120262,-1514517780,1256646786,520105704,-1910589205,-1107144162,1340604448,-1904296152,521053427,-2112678263,-2112813370,-2112636415,-1889204537,113675902,520192533,45634243,1377946979,-1302134344,-1205744383,567086088,-854851400,1661057057,1512164698,-1492728125,116785410,1979646620,-1694054880,-1910636286,-2147331554,574,-401902561,-1574566943,451447768,1105773345,-1948729345,512678028,922681938,922681352,-661782518,1007049960,1952078138,1376188209,1962934018,1967143992,-1492728313,770375682,1377734174,135694594,168724736,12066560]},{"sector":11,"data":[639749442,-1736636729,-919339009,115871723,58976257,38930167,-1468661761,58190019,513206337,-108852108,-1437502593,1090742504,-108983573,1148387456,1249125692,1963801770,-638615076,650611595,-393488478,15205193,-1489076217,125042690,44435190,235173121,-2135329761,16956222,1793590132,400680992,-658890994,549251211,-1021289240,57937212,-1442802456,250133483,1948597251,1947024559,1915759787,1997093945,-661940171,-1912151087,637686278,118257547,1979711107,-9574141,1377734174,1017923842,1091531789,8452481,-341179533,532689649,-383798549,508165967,-1912553641,-391499772,1017774781,638874893,16729542,1603141822,-1779949810,534147586,1023363561,-1327467227,1166550589,-1912553729,-397336818,106503428,-1962471905,57827319,520253416,-134281495,-16625146,-1023314433,1006793960,-1007651571,1996918278,109979277,1236534373,-1022942771,1996918278,-17523,567101620,-850873261,-1557767391,-2019359643,634424205,125112319,2474635,-1960610320,-268425790,1913651205,378218009,-754776987,242405435,-667169908,-668268430,268499841,-1591344013,-1557789595,2040726615,-1931965555,1405299656,-150990661,-771007517,-4717708,33570303,2425718,-1919376386,110019335,-2144957065,16955454,-353893516,-9902044,-1203863514,57934082,-402080792,-1608111873,19137190,650130256,38930167,343212031,38969638,-1203863514,141820162,650153478,117441441,1048585808,1946223288,19326979]},{"sector":12,"data":[-1207515610,-1614938110,-1223575412,1320431565,330946187,-400438016,-645192310,12567425,-754667183,1219777515,1918575053,-1023193052,-1946148859,-1731872053,-753941885,1003684842,990999235,1477277634,-1195340282,567101696,12314887,1386423896,-19077118,-14264230,100840710,1376161318,113649154,637534208,503317411,-1921573234,512409651,-2010774862,-167770338,141885379,-972901471,176646,369446,-1281114061,-1507948030,-2010767614,637534494,132806,144909824,178464256,213862400,-1176532224,-1410138102,-1527526773,-1182017346,468189194,1947024414,637985565,-1014808695,334015490,-1442352098,175377724,229700587,1239409578,-1070408469,257789354,-338492239,567102132,-2095118841,-16602050,113706613,-1047892,44474968,1526207977,602429528,285656830,330957186,319211394,-385873790,105914693,-1909566690,781022982,-1921573234,184701601,105018560,116834446,1963000486,-1492728315,-1977221118,-2013265634,637707806,335499,45293193,119441958,-1306621952,512435714,1236533251,-1996021299,637712670,45420287,1386463283,119495426,-1403993256,-2131132095,-117214720,178914795,1240495552,1405311055,116792913,1962869404,13756675,38930167,58064895,100714217,38930062,37650470,57933824,637574377,525955,377693697,117440522,-661731188,-1736630645,1979710339,-1736459712,-2024534389,-1867964789,567099316,-739761805,512630291,-796160649,536564712,-968478744,227268614]},{"sector":13,"data":[-1948711226,1998491136,-1955927155,-1994333240,865640206,2099153371,2139589272,507200408,57841823,-1979711557,1016626462,108360986,-1921579378,1376161318,1048585730,1962934274,117319190,512425986,-1082091361,1946851454,109061638,-1912406014,646805278,143056,-2144988556,16777790,229639540,-1338643705,820709130,-22091769,-1341991192,-1677265395,113704706,1946157724,-1948729593,350996787,44842627,-2096269840,177470,113706613,-64852,-1017423585,-2102674856,505396457,-1921573234,52379264,-402426880,-971037849,9275910,-1756297529,-2118254592,471132160,-713814724,-1514148213,-1962887803,1192069877,48969699,648810613,977741194,-2147126076,-1002823476,60813026,1193118713,-613048761,1947024556,467986596,-672607883,-152830181,-7501290,-342404858,-919382348,1947024556,466151559,-348060812,1950170355,1947024391,-169104344,1966947500,464054304,427035964,1957098335,1015041559,-1397197811,-1284240068,1964743144,-335564554,-11736774,462219436,-1070405003,-391369237,-92988542,-1198620998,567089664,50332347,-1198042850,1692963077,-1189639385,12058630,1914817870,-339725820,-151015422,-7501306,-789183884,57982986,-386563607,-829744322,8513921,8392232,8392330,-1948840312,-57943873,229680371,512630442,113675639,536806065,-369677847,179830652,1017961266,-386632691,208935694,-1014616020,-1023219722,-353647738,1998491166,-1557755251,-1070457086,-1754012870,-1813264130]},{"sector":14,"data":[-1921573234,184701601,-1023314496,-661733234,-1929376577,163119733,-2086276352,-344654019,96941451,1017970687,-2131004147,-613154756,-138201719,-16625146,-401967873,-1410794151,-118459366,1455684035,-1101967273,-1813476392,80118554,-1182017345,-1527578500,1583306841,1998491166,-1224292723,113639682,-2147417416,204606,-1394080908,-1899815135,-141723874,-16625146,868185343,512630482,378077778,378077192,113639434,520093698,-1074240536,196673629,-232738816,1090614702,-150214269,243869401,2062061182,1008497407,-400133062,171769045,1793591669,1007448831,-149523398,-16625146,-387418625,-1041760137,-1172369920,-2031517016,-11802595,1572859250,244000256,99323518,-56629167,398387289,975573876,1204581637,1372119881,1509723368,-351978970,639634446,41223482,539756523,1963276838,-790476882,654078184,-1904329085,1006927112,1016887072,-402164723,222100573,1458108789,109971196,-970587566,518,124935,512437955,-75263831,-1274777083,-970863298,170758,512630467,549061202,1023457280,477241805,530059,659083,-1448925665,-1193768048,567099904,2097596198,-1006633064,736680587,-1966044400,524299271,-1962490887,184727838,-1909033765,512435907,-75300859,101217280,1236583310,638001613,69258,52333350,-850807808,1377732897,-1257308414,-1999342334,-956127730,152070,247662336,-402190817,-1910111584,-2121435362,175166,-2096138753,177470,113707125,-64852]},{"sector":15,"data":[116789995,1946223270,1376188171,1962934018,415492099,-336392727,45326790,-1064380274,-1207579718,567089664,88424067,-16485376,-1962588410,990201630,2131052830,47322,-1960533272,394986319,67258358,931861621,1144531120,1091270143,1144535728,-2096925439,-903150911,88424067,-166300672,1963065927,89099013,860954603,1308670153,-346480179,1325447173,-4709939,-1207733505,1168310272,1975520005,-1086878829,-1527577269,88424067,-1106545408,1015023081,-1543277568,-1070401419,-137808982,-1076153391,512396248,915014980,118359627,-402653000,2005607451,76170761,1965374534,1966356500,-1101642224,-1431567029,-85934070,-346144433,1011460837,-153127667,243803857,-1910076457,-158501090,16950790,1048588148,1946223291,399239171,45811398,1461652992,1594833640,-12204506,1694942976,-1165240177,166233050,1170613825,-991359489,-1157183757,521011202,-386679319,736690504,-77207295,-1921579378,-1304526810,-344653822,524189734,57933827,857656040,16181458,624746354,-393487499,1975519916,15132884,-551170190,1313422815,179095413,-389909056,-1116602156,-1183504324,1946221696,704413712,1256784757,-16252930,-347732657,11986960,691904370,-385452800,-51773899,63605754,-293403273,942256131,-402164732,-361627496,-91492885,1023411398,24379433,8841287,-551167886,1329872351,179097717,-389319232,-965607308,1381061456,-397060521,-1779894470,17349376,-1675219224,45327142,-1644742168]},{"sector":16,"data":[1516199517,1918393177,-14285252,117617462,-1993978039,637880078,88686217,1142327334,113714693,-64187,-2010724981,117852966,-1308164570,1048782338,1979646636,113714695,-16776532,285656771,330957186,319211394,-385873790,994187797,2106836246,-1193637107,-2132242171,-1388868830,-1007041544,1998491166,-2089698675,44842625,108396288,44828359,-383778817,105912805,1996918318,-1281284467,1958742786,-1064434168,567101876,113714695,691,-1308178906,1476853762,11331779,-402599704,57868521,-402612759,-286785256,-804849920,1962936462,208070666,-1918947709,-401216766,2126122025,-853887858,6078241,-1187008441,-1426915317,1912686824,-1908505805,745865357,-402546456,-2115499719,-146181628,76468230,-402295808,1014104485,-1898969353,1198850056,193832865,-400919360,1005257427,-1920071945,225771521,-1920071945,410255362,-343716166,121497635,-973077832,25301254,-1551756358,283869715,-2096339480,310514494,113706613,164371,-1021767447,-1987058497,-1332816834,229681706,-771307606,855638414,-1920031808,-1567698781,113676161,-1576628520,-389837095,376570789,1023737320,242548735,-968976408,-8253178,-393981254,-1094500731,-471334783,-49916,-336002188,-1161562111,12097620,1914817848,33260311,112726644,-17563,-1962932807,-1737179181,91431373,-1737226554,116900608,560848,646120820,519999184,-1912586056,8691928,1975519775,840544258,-1547632924,213422284,113476]},{"sector":17,"data":[2142307253,-846152518,-1865637599,-963797085,26058246,-1898969353,91488257,-1919023418,-448888827,175454863,613409952,-1572852513,-389873572,125108738,-1920070013,-11080959,-963718090,-7414778,-971686680,9362438,1946710622,2117503809,-1590695025,-1072983831,1048589173,1946193788,-1911651577,636158605,973175936,-2119368331,1965960764,41713677,-2096663296,42831374,1556024299,688830464,-336059955,113506561,-852155464,2032044321,2064026776,515508120,623097882,-389865011,1052449639,509584,1912736488,-388789448,124978294,1946157885,1396239343,1526902760,230292363,-222285312,-544517202,1543493352,47260,774813776,-388723888,1482163274,-351243619,180938947,1946157629,1195270,-1007091340,-1902967050,-2145029104,781098046,-1665261964,-386167922,343278645,-1953588034,69986557,-1665267085,-1174566002,-1527578611,-1887322429,76202035,477413386,-922855866,-259268400,964987694,-16485869,-2029589552,-2016346147,-596353315,1376994243,-1542221549,-1961642221,-2080535565,-947715642,571649,-208990741,-964428405,164070153,-2147482695,110654526,1398089589,1964950814,1127189400,650130243,994510218,-687770683,-1406742389,24364347,-507364393,1566253034,-1507396669,-1946973245,281445373,-1190082685,-201523196,-1006852570,-41159797,-2095790461,79238343,653524224,650378406,638338954,621569674,-533065712,-670644541,113641102,-134181159,-804849725,1946158222,316401693,-1174002200]}],[{"sector":1,"data":[770212943,102557756,-1098012767,-1547727445,-391797363,917767553,6035082,-12770867,-149654273,-1545340959,378113900,1639616366,1006561410,-1023021592,-1898703221,1040448139,-617443630,-919396986,567103156,192028038,-1902967050,855929920,1326705609,244005552,1229557458,108579083,-218235125,-1195115346,65738026,102056376,-1898969353,91488288,-352314648,1926299414,2030472718,-1946209395,23718111,-402330632,133761318,2030472899,-52743283,1912631528,-387216626,225575030,1946058472,-1192039434,-336003054,652053255,-134150202,216826819,1342242744,716762251,716722176,535318574,-729067515,-1275064135,1914817870,-31659988,-1275064135,1914817871,-32446459,-941034773,1195272,2122322549,208994048,-74713717,-1073042772,-118815884,-998006791,650354196,20711306,-12843404,-1007155340,-350895229,113506798,-393963586,343019224,119473694,1052768139,-1073042288,117104810,-1874936289,113689351,-956366763,369122054,-1275046470,-803091183,-350326048,5618187,567087796,292741328,-1970368096,579786790,-651812156,1975794318,-1070349340,-1550999133,-1516008029,-2126610291,192151695,1929393896,136898566,-401216519,275971793,-402468120,-873987416,-402296066,-152370528,1946157629,1195272,-336002188,-1589738741,57933965,-133971992,109971139,-13398663,-1898961277,-9246497,552083826,-8263680,-1734275214,1036462989,242352151,-352317720,96872172,-804355073,133701774,-1903771965]},{"sector":2,"data":[-1179992014,-1527578613,-964449620,1185260810,1963992134,-1012554493,-1414807501,-2130262333,-1007157105,-372125813,28895697,-136260864,1946157767,-804910842,-150541426,-804904496,1455683726,-1898445114,74943232,-1409285702,829734922,41233724,1220521034,440711,460697330,-1048325641,-771641338,-670693152,550565518,-762390266,-652867358,-389158002,-336002169,-1017186303,864556479,202893513,1962934077,15640,-628419723,1946500992,6219783,-437581966,-352275224,1398195168,-1157335157,76189569,242597898,1124403142,1124140998,1124206534,-768462357,1958742700,1965898794,-1400851965,-1182314817,-1359871995,-638119307,168149379,1125091530,-1881605247,-689241485,51505243,-972690439,-128253945,1464976222,-1090369653,247040101,-1343030272,-2006454399,-57278674,-1017553130,369366532,369366532,369366532,369366532,369366532,378410493,371397573,-393314625,-1951726918,178957554,-1157990976,1001688702,1472405965,-1070399861,-218103879,1607595950,1455662835,-402360379,-1017244041,2030472710,-1593376883,-1492713587,-16484979,646818054,638666635,18044811,294494982,26060054,294497030,126725398,-1898345277,-2138212066,-1909587585,-146508583,76468230,-399281152,2126448482,-804849778,1946161294,-386430203,-1070464357,-50331719,642756338,1560247680,1555563636,113748736,-1904308379,-394011974,132659284,250865664,-1023263256,-1590819298,-661746311,-74727282,-1190606973,548405256,1101984765]},{"sector":3,"data":[-208940661,-66992509,116864684,1085136,971506548,111536130,-74715678,-1190410365,548405251,1957622781,-788315871,-399593406,-208992629,-66468221,116862636,1085136,166200180,108390402,520613346,116900860,560848,1021838708,-400954369,116850817,102096,1105724788,-402199807,-1779957705,-17504256,-804849725,1962936462,-804849881,1946158222,240117768,-352216600,-400510971,2078803499,-2091206138,-399009816,921174406,25225230,512630467,-208958087,-1090402685,146378159,-1527514112,-1180032848,-1527578621,531284018,-1898969353,108265488,-393367618,113705351,-1917874331,-394011974,-2084358316,9281854,1048581492,2113965469,-2081834488,-348700696,232777740,-1610536472,-1650291298,-1659961715,-1912159347,-1953662714,1190536939,141824012,-394007366,384513816,290884390,-1889462647,324438822,-1889331575,-394015558,-1960429824,-1073017018,-661960588,-1979703515,-1312584752,619238149,-1963947505,854184143,1354859501,1919220096,1693024259,243921542,378111018,-1960410068,283315534,-372119087,-372184623,-377034288,-2076897655,-393992774,-1962461520,116900829,560848,1189616501,9496589,-1550999135,1404735338,915597442,-393985606,2078815884,-1910586624,-158500578,1947208775,-396644347,736625923,206042878,-1341819888,83224669,721423545,-1341660214,82438176,-1021314078,-1898969353,276037634,-2048372397,86566912,-393980486,1532573237,1217449121,-1014128733,167795872,-1610254912]},{"sector":4,"data":[-1057059445,984891396,637123,-2112813370,-2112642302,-1996195957,-963680970,25302278,-1014885446,-1918955777,-1918943613,-402426110,-1077674074,146378151,-205508096,236897194,-397258721,1482296132,788475423,1094490233,1513883250,537657975,-24422461,-1073042180,-370669964,-169104641,-1514486945,901965954,-387251480,-1094513567,113705089,36238,864553663,-388877367,-12777443,1027503359,1752498176,-1733869951,477398909,-1456028330,24936600,-2146732742,1962934908,178181,686309355,-840212973,-1920057725,-1207405568,-152567807,-13243641,-343044602,213379256,-375320717,15760,1048582005,1962971004,-1908505843,57933965,-384038423,62397342,285656576,330957186,-2112642174,-1106285335,-2118188927,868823944,127658194,1962934333,918902318,-991389527,-768385518,1023903976,460652544,-1456028330,943370392,292880708,-2112813370,-2112636414,-2112682297,-346161142,7126888,-852950600,1956817953,-2118164849,121432200,787016053,-2111522292,309567092,1032907169,-1988820992,-1887682944,-385649664,1956708220,-2109556081,1946942440,-1172851668,567083100,108396348,1342322152,-397344848,-27784712,-1023314752,146776,87885940,-385649664,565903179,247458178,8502979,864549055,-388877367,3999469,1443984640,-1733740859,1578243816,-393742145,57935554,-401696535,116789305,1946324864,-2109556218,-1207006999,12282880,-1161219328,-457309951,1931595151,-400617965,113705398,-1880846491]},{"sector":5,"data":[-2112551226,241428737,12114059,-165556924,141852866,-1734146361,401342463,859964088,-842363950,-1734237407,-1734142327,859963576,-970863150,9917190,-1921442162,-2144415181,9917246,784531828,-1919414645,-1556184274,829751192,-1556184274,225706136,-1592907474,511913624,-352282461,238759452,276207777,-1592882386,778298264,-1734277433,99287040,-1592907474,-851463016,-385649887,-930349209,119425251,-1336869069,1487860250,15761,2105542261,175446783,239716395,385230343,-1152149677,1085538305,1918575053,1975597837,-8722173,1975597897,29082369,1140897792,-1024056883,-369986176,-1094514046,-423690111,868823943,96463058,1962934077,15685,-423687563,-388877433,913573270,504196329,12080902,170905015,-1205635904,802010882,1979711293,-1224296423,512634829,512331127,113640137,872350411,-1224230693,123678669,-890715361,161474815,-2132270928,-1090052607,-5242795,-1413467222,145795755,196691882,-213929984,-1904297302,567089844,-1275046470,1344392465,67132576,1967144000,-1920229371,1990344964,-1073063793,247072116,-1089213565,-678720081,-1181841730,-1527578613,-1163214798,-1202552036,512387328,-826671012,1512164752,-1914172558,-400510926,901382419,847440259,-973074968,25301254,-1551756358,-1007058413,1448235347,503731543,-617391692,119480781,1516134237,-1094493351,-1631649663,-389467256,28509381,1946157117,1036779018,57999359,1393326313,-402071320,-622329793,-620078328]},{"sector":6,"data":[112735348,-1977496269,1023314626,-1342015975,-1572797207,1673170804,840362116,-271448911,-271578766,2008681074,-1173820540,65766513,-393972550,-1628884484,-852446200,-466464735,1485795491,-466427770,-1165004125,-504790283,521018929,95414278,-2144991630,175439933,-1342150168,5630014,-1977206549,-1073068283,607924340,1156056436,653257472,-1152973430,-1073052294,-1014817676,106489859,125044538,1962950528,114551793,-16314793,123666775,520603883,-2081441085,-1338931223,-1341199555,-1341461733,-1341723842,-1341985988,119408252,-796241321,567083700,-1022927014,567089588,-387432188,-768424961,-1953595714,-1920229122,984891652,-1921212245,-1980266582,-1265670850,-1172189881,57902042,-394091846,-389861068,2126118926,1695975822,-2082817393,-1020189720,6035082,1074053770,108347452,-1920268798,-1102003970,1203015297,91431373,-1964433650,-1904296183,-1269246069,2090904378,851683981,-1968848960,1156075434,1012954125,1174631739,1017912299,-399215603,91489632,-341136214,92334321,-160154820,1963426280,222080241,540809588,154990452,331019124,319211394,-973078142,42078470,839573737,1911073472,71690244,-402325016,-1514273583,3976330,1659372916,871820037,-389829696,82314324,119793664,1031808707,-1173719808,118391656,1843994382,-2095118800,-141883921,-2130385944,1946222585,-1090056474,12226273,-2016335103,-1163594799,521044912,-1271904279,-855592934,1962884143,1141684271,-1258290757,-1166036733]},{"sector":7,"data":[567120060,-861860750,-1578071408,-796225334,29048555,1140897792,-1024056883,-167414656,91558082,-352300312,-854608852,1979923472,1946631178,-855591930,505080592,-1912586056,1242991576,-2076800512,-167108864,431358581,32032510,-822164736,-1269642498,-841272565,-1070376432,112511115,-617478217,263459021,45355213,281924147,-2055684413,852003500,-1408846611,567136394,516159970,8502791,864586943,-388877367,-12767363,1025275135,393543680,-1456028330,-1880834152,3975852,-1084294539,-672626548,-352160767,-1880835558,-851639624,-1961856479,1140898008,-1024056883,-1274251904,-1172189890,1441301358,1379986223,-1232866655,954749951,-1193899216,45694976,1528941824,853307994,63602934,-851181128,62477089,-1260702976,1126288702,-1269040670,-1272853179,-1272853179,-1272853179,-1910387394,512587550,-1560274783,1974993576,516640769,8502791,864527295,-388877367,-12779159,1029928191,1534394368,-1733706927,243863435,-1084649761,937985955,-1270319871,-855592940,1962884143,-2103657979,512440811,1723109087,567083696,37568627,-1273662208,-841272487,867617,-1615198859,-1172771966,334201984,-617391692,1094525389,-1174047488,65766016,-377326918,1723074757,567083440,-1897980279,-394096966,516107900,8502791,864551359,-388877367,-1514209055,-49782,4001396,-2143914752,110667070,434833780,783286452,1445587883,-1399281218,-1196802044,-1330958790,-346117632,918902284,-1431529303,-92995524]},{"sector":8,"data":[-2013151394,1946192360,140503299,-1081432642,1622445014,292757965,-939813400,-1517329146,352765578,1122566530,1694942984,-1165240689,-1561820198,770435076,512630467,1048612215,1946157739,-1405189366,309657346,-1193355799,95556142,46218891,46335630,-400609331,109970203,-1591308937,-1557790137,-1591345130,-1557790135,-1591345142,-1557790133,-1912209396,-1265793274,119655753,-1608102732,567083683,915001907,2129170141,1962884141,15625,-398458507,-1983709163,-393290442,-12833431,3999860,-402426880,-960299007,42078470,-964553798,329449476,146818,915082612,914984669,113676133,1174503957,16705731,1442952680,1577165800,-389873291,-1712848515,1407931905,-402604311,-126615152,-1403593933,259263804,-143311556,1015071742,-17795827,1592585159,108317694,-377312326,-397211827,-27590465,-389843761,-544538258,1442921704,113696647,-1107261613,79266959,1973940992,1392967172,1593543559,222080086,-1226308236,1593240321,-2024587648,-393251840,109970310,1421839735,870288130,-1650317632,76173314,1476478952,2088769653,309672449,1676149898,-2092880895,-1057094969,43885094,-1993981948,637678398,-1962788702,1340648699,1007121411,-1442614259,-1070402581,1392953002,642711687,43269769,1998491331,1159630477,-2131348732,-1787559876,-1399922241,1975519914,-2085569798,-400620002,-350278579,-2071740698,-2000813077,-400664956,393347116,-974588021,653756160,1962949760,1894272513,114174721,530903839]},{"sector":9,"data":[-2084650146,-1107039356,99124360,-369987072,-386137956,109969473,-1910076041,855917830,1465274879,9627820,-1387393164,992364359,292945477,-336731575,11069452,1161438791,-503155201,1499357151,-397297804,643367012,1962950016,516159948,1476299527,-352301080,1307072260,-114599680,-2134640249,-93057732,4647084,-1897395852,-1964463104,-387126528,-2098724766,1966947328,-2134981662,-1073042432,1340667764,-1022542846,-1921579378,1158057510,654258948,1946172800,452846,1035007467,-1070464277,-234815303,1444856750,512634448,918916471,1015218885,1477342208,1912879696,70927880,-347732106,-339725331,1086337795,-1021354408,343048252,1394507820,-1921573234,45948613,-687684733,183181147,108159292,41384508,1371742252,-1910634925,-1903331554,520373510,-1962913048,48989145,1064500027,-397192880,-2091130366,-75431229,57835520,-1323897863,1139528452,-888946292,-1944010365,1942502344,-850742037,-1912169439,-393382138,-1660427802,124999769,-2111129081,-1442509591,378662,1499137792,-1940912445,-1064417088,237862,-523041615,123259019,512630467,1048612215,520094378,1505423988,-851725172,-390057439,-1094514555,29294721,868823944,-50075438,1962934077,15638,1048596597,1963366565,-2013151471,-739716557,-398494212,317258045,-984169727,-392648394,-1084356593,-768374783,1979496936,104065061,-1887435018,-1273465598,1931595067,-137041700,1946157885,343306,-1545075340,-1174148352,703103822]},{"sector":10,"data":[1072218922,-1271303680,1931595065,-139400972,1946157885,343336,2145912180,-1172182272,448039589,1320427981,-855633735,-1978764767,-158680554,91492546,-343654726,-2091795965,-1020663832,-1090485826,-919369736,1458098739,15868,-1514202763,-984197238,-1399281354,1962949802,-121676038,-64690041,-1160481702,-1070366189,-873937927,1964864255,-851790824,-386763999,54392634,1024095232,91488261,-352319000,-2091599357,-1020686360,-2112813370,1695975681,352765583,330957186,-2112642174,-1940275261,1074053770,108347452,-1920268798,-1968520962,-1332904922,520530746,1203042187,-948821555,1388519182,511963834,1374166798,-1017503959,321708,-1018234252,-76275652,-143377092,-210490308,-277595332,-344716996,-1178400196,1017905160,-1442745312,1017968866,-1978502112,-1439780640,-1314208634,540847106,-492174476,-1430244616,-59398461,16743552,-169085324,1359851600,-1174762665,503775231,-961613305,117505861,-1889200503,-394011974,1170614496,74583551,-1017620129,109977358,666537335,1048585858,1946157854,157149190,-377260870,-1269824779,2066102319,1006924941,1006793775,-943499172,9496838,1544980992,-14817280,1994929010,-2147027452,745865871,567098292,401085299,212470,87891572,-1558612992,-1947627287,106817536,1572814768,768256,-1070421261,8645059,-1898695029,-12285362,-1861992832,-402295552,1685389208,-225718645,1961966418,-840389613,1174631676,-2115439637,-1947306497,-370455850,995816075]},{"sector":11,"data":[-1957268238,1005751246,-971868943,9503750,-56170324,-28905100,-342817786,783306986,1963017272,38025225,2088764532,1951924226,-12285421,561265212,-1861992832,-402164480,41287476,80135161,-851725312,-400526559,-375130770,-101315696,-402355517,1979318040,-2032454921,1001652572,-479059507,-402563960,-1991899737,-1668317642,-1898168704,-1089964801,45613148,-1658729175,868455363,-27989797,-1921317318,-880675979,-398032896,222101062,-398006412,1119878206,440711,158707442,-754974280,-338162720,-1160582188,-1427537297,16967937,-109789174,1946366952,-15824343,-1996442227,-24194034,-393155834,-4324407,-17779,-1202717761,802008577,-1912652160,-385649408,-1044447072,-1094110331,227184128,985588551,1972240142,-737244922,-1616448626,92993795,1200458146,1195842955,1195840907,-2133297762,9497406,2062025589,-1920032509,-1919678965,1946165285,-1996032474,125043853,-1815789949,-1961331454,47346,-1072976560,-1957688972,651880660,1492314968,-153631255,26052870,-1935667596,-1928983923,1979661453,-12064509,-167613720,42830086,803739253,-971934464,42078470,-947776582,58856198,14149888,521065471,1998491166,-1220640627,113639682,520094391,2011759476,-649532969,8503127,-1409253186,-315438966,-1921277906,-1359871940,904446815,-385649662,-969998593,9275910,-1760130514,378023565,-970027521,9402118,-1912620462,1524248808,-30537869,-342919418,-1935687936,771753414,-1888010624]},{"sector":12,"data":[-401509120,-1073018645,71108724,-385516288,1391189404,-1912434456,-1265793274,-1910387383,646805254,44173054,-1442396634,-1614938110,74039180,-67088199,1556063475,-1174959360,-1510801326,100952506,71678751,776667320,-1888024842,-385649409,-1047733702,1052561806,788475397,521047421,-394119494,-1276566084,-1899416618,-1098025210,-24409128,1965178028,-339345916,1963801847,-141864461,-97851220,-527822988,538983852,1153954421,-350215938,1965178091,1959656973,574401763,-838927499,222092011,-1957046667,-35083017,-2012384007,-2001975547,-1040300283,-303316482,276111932,208981502,-28899960,574401729,-838928779,1467301436,108332088,117319340,-202898740,1950104827,1963801604,218482189,-855193818,-385873662,-1084817230,-544537907,1303990534,222080000,-739763596,974484731,1955429126,1948400655,1950104595,1967012868,548425222,-1436423335,-118760478,1012198233,-1960610500,-73340706,74726972,192220476,-955447866,160244230,1466034944,-1953684801,118359775,-527782933,1954348160,2096922629,-2144977547,204350,-802814603,637707814,52299518,1023107560,1007186957,1006924924,102528380,45213983,984670342,-75243733,638022911,1979663672,-1070444799,-2007038038,-58702043,-33197043,-16651839,507412518,343146499,637780159,62799497,-393488194,-1431504106,-92992196,-1948840312,507412518,118358019,-1948729661,66780648,-1081158602,-919404415,222079660,-348060812,-2146531081,-692337920]},{"sector":13,"data":[-1912619381,-1191182406,802008576,-1581055940,915115730,113675988,-973041792,9403398,-1898695029,-1898836341,1306777227,1525175889,-1898535940,1507732315,-695481597,-1862007098,1228333824,-126687060,1179191412,-1862007042,568913899,-33262085,1016036358,-2147125953,42958862,91564604,-1887433088,-92477438,104466036,-998929029,-2034224562,222053892,76022389,-1898695031,-1898836343,8437443,1958742700,256247,-1396503236,1979338216,1966816260,516116214,1364414546,1998491182,507412621,225771523,45156086,-402229761,1323827209,1482381568,784539482,-1927135616,519533568,582622990,1023457421,567138443,-1962184161,-2030063400,413276231,521061120,1023459304,141819969,1950220160,-2110932474,788359401,-2112813370,-2112636415,-2112642258,-2130880279,183614,-2031549579,-868319232,1702100994,-1207775814,-850379518,1349671713,12114059,-165556924,1601536194,-1186856264,-779354113,521019853,-1187053384,1958346753,1914817935,1975597867,1950253079,512629391,930450807,-1186856520,-779354113,736829901,1998491182,1107343501,-779368141,468394445,-117439171,1709769589,47037183,1018480947,1528941904,1441334131,-1327985665,407340799,-1023403614,-53922992,-1073069652,-248776075,-42745000,1448170396,503731543,1504989776,1532568013,1031944634,74711105,-779369589,1599932191,-1654957730,-2692925,1364678347,865068223,1472302025,1946172588,-1404982779,229701611,521035690,-1898836343,-1898692983]},{"sector":14,"data":[-1017225383,512634398,1048808823,1946157740,-1405189882,535822082,503427267,-1921573234,520268450,777133763,-1921573234,-1274863430,-1172189887,1102316399,-396746291,113640079,520094495,-2102674749,251648744,-65279713,-10557284,1958367824,-3544957,-907534578,-1655154143,1962950973,-67114749,-1898793495,-24283362,100867846,508960343,-1128390906,-175708024,505377311,-1962467578,49866999,100860392,52476447,-851246920,-150506975,1962938561,526317825,343082847,646459060,646447904,-466484369,52504200,57681544,855843002,-849693495,-352160991,-1260876925,-1172189890,1521746799,57876941,-1946193431,-851528488,-35395551,62797451,44842627,-955877889,175110,-2144474128,-33380826,62797451,1954299052,1954298887,9365763,71374475,-851640136,-385649887,-661913806,1200029616,1614360,864803007,222068937,283706229,947695871,-2131266556,-227247044,1978182316,-1543146251,-185908927,1014238524,1954298945,1971076100,1170613991,642321919,-1948840312,-1103722162,1125550851,-919383804,-851705672,-1586341599,-5187445,-1575467130,377946137,378078273,233505859,-686913498,914968203,2062025662,-383840515,-2065116315,-1405189634,1978662914,-1408841978,-369099006,-1943088782,109934366,-1899459554,-388460864,1421484377,939571352,113713613,852097,-1948907834,-687421568,-401800821,1827143686,-888725760,-1090485826,-919369790,652792371,-49888,3999604,-347638528,145811488]},{"sector":15,"data":[243921542,378110657,-1313176893,539158658,1023471592,695533567,1962934333,-1324446939,-1288271208,-1273591144,-1185787496,-768409599,1008723176,1968790271,-852773879,1975519777,-1830239487,-2102478090,-350230552,8502979,864539839,-388877367,-12771395,1023898879,1316290560,750003179,-377085491,243921542,378110691,-558202139,532080770,1023467240,762642431,1962934333,-1188132311,-1173452136,-1154053480,-1139373416,-1185787496,-768409599,1008694504,1968790271,-852642807,1975519777,585679617,-2099528970,-350259224,1998491327,489062541,235470083,521011997,777002691,-1921573234,109494322,-1073085666,785384564,525861542,-852708157,118359585,-226039418,470714670,378089092,398099486,523430020,12108551,6076984,-225762867,378220205,2018018293,378220044,91522040,-82408658,-1228764285,536471807,-768177874,-2100446590,773783528,-2100164921,179568640,-1182017862,2028470274,857853439,-9312055,-1091204888,-1027634216,868823943,515631314,-1161219133,-840400148,-1173703650,45714390,-11671552,-919395891,-385923352,-658573987,-2016100469,-768358093,-1021407000,540847356,154991476,-1018235020,855637945,117345216,1476134686,123711218,549442039,-212773117,509565348,-141877498,-217878593,1354964900,1465012563,113679446,-956264599,-6894842,-1178586113,96404804,-945097839,-912897786,-955857005,-956301165,9684230,-1948729856,1998491166,-1304526707,1964965890,-1781940464,243985714]},{"sector":16,"data":[-1040282665,-910252813,-1773420651,914956467,-315386163,-1863907642,-188160000,1930502376,1961691913,1828881,113642731,-402485399,-629997551,-123927317,-107150613,1499094878,1405311067,1448563281,6744220,-1815789949,-1974502080,-987853833,-989397101,-1861896045,-956267800,1863,-2012917879,915079799,931763785,-1867827709,2005530411,-852063485,158828950,1049360267,-117205431,-1798766719,-114616963,-1331366916,1049209344,-123890103,28838635,-1207702784,-107151358,1499094878,1397801819,-157526191,477364679,-1765065085,-1961134849,-1198077154,417894661,124717312,-1815663095,149682589,-1550596703,-123889973,1482381663,-1014345533,-470414413,-1815936165,1381061571,-1672128682,-1861810442,-385649661,1541931203,-1764771327,-853933896,-236452319,-100234000,-63010410,-29455978,-2135226474,-1935688192,1912773864,-942240810,1872187142,28698754,1802813451,-1614813045,87460748,135170961,-1261556847,49906490,1681393010,-1610058751,1090817419,-1392120917,48858027,-796254196,-1604261248,-2085972224,175243769,104483244,510957312,-1957278143,1191229687,-24436275,-1761566626,1946172800,4030473,-347667596,70822648,1229324917,-1527577885,-167728919,76613382,1001855861,-1861740917,-1861937621,-1935687039,-1962886680,-318005272,1939736693,-373279757,-1614872434,-32601204,-63534186,922683030,638031610,771914880,-2144978059,1966735740,-1977200332,637896708,-2013182838,10486085,38111383,344598102]},{"sector":17,"data":[-2145334656,-141860630,-1207712125,567101184,66687464,-24424719,63341406,-836040871,-97059042,-1392762986,-259069782,-481750924,-2092325881,-277413383,-1761566689,-404615957,10506015,-12240233,-1096154764,-919365886,-1073042772,-980682123,1583308189,-1017423526,-399527856,125104912,10640560,-1564256105,-1017604352,1465012563,-471294890,-1773420545,-1761724789,-1761855863,-97059042,-919461994,1958742700,1959213588,-266409968,-1532361100,-320142927,-341128910,914956263,-662006018,-8273869,561288779,177668256,973436361,24444741,-1393390678,1975519914,-1773421830,-1756428601,283673451,1960512000,-336028412,1593416962,1532582495,1465012675,-1957520298,-1760575750,2105594419,141900289,-494922358,1089110239,-850984776,1282562593,-1207954503,567102976,113658226,-973039871,9896454,973096424,2123825414,-1761500653,-1080627778,230266626,-1527514112,175376444,-1207954503,567103232,27318899,-1153531753,309592464,-1567573088,183211777,-1756424565,-1206201368,1587347456,-1017554337,12080727,-1762803968,-67105351,913682162,-1106907261,-947157194,-1492617817,146277749,-1960580352,-2026193160,-1492617817,79168885,-1961628928,-2025931016,-1492617817,45614453,-1207702784,1048576000,1946259643,15627,-1147009420,571536,1354981214,1465012563,113679446,-1962831685,-1953430250,-2137978818,1081344061,235129483,-819228406,-64049087,165916402,-1866791226,-234835968,735021998,82543562,478137147]}],[{"sector":1,"data":[-225706357,-2136673284,26262334,-1437660555,-1431683152,-1442795350,49019037,1600059805,1482381658,1381061571,-1672128937,89375617,-338492239,-850919240,-1958448607,-1064433944,855983289,-1861894401,244032755,-1070361659,1234240958,-645192580,-1946383640,730924439,394864342,-1861707893,-1993943509,-1752497321,-701787890,156731686,-1962419733,-1660621883,-1660752903,1600019960,-1017423526,-1107293255,1017905245,-503155393,16352249,-222679179,428796034,-1962901314,2013579222,202029056,179118541,-387484444,485027882,-1023315198,-76283844,-392429252,1973284877,-1173113647,567083100,74760446,-1007767576,1390858728,1525589992,-2112668029,-955878126,42078982,-210245376,-1259857432,-1908688358,297017805,-855614278,1958805025,-1908621613,-1601303617,-391475844,-1092030483,-1904297233,2139150987,74776579,149446,-1889200503,-394011974,196745472,1695975822,-2082817393,-1172769816,-303529233,201439256,-1930944051,-1023315199,661913660,41156924,330611947,-846316614,1975582241,-430381034,1962935613,-278403061,-387564056,65738932,-1258331671,-1908688358,313795021,-855614278,1958805025,-8787709,1038495208,57933842,-387754263,921234924,-1662467089,-1911197184,1972205342,-1508999162,-2134703870,-33380826,-223352381,1946220928,8567305,-370184728,512683789,512396663,521011878,-1174281344,585859990,-1207934232,208810753,28444021,851648973,-1021194798,1962998144,-843042108,-1160082911,-1480686726]},{"sector":2,"data":[1977289347,-2086355453,-1378186414,283705270,96699161,-396740727,130488344,-389873664,28835871,1963618862,-1021195005,567134462,16351427,1421116277,-662036019,-343701318,8502973,1948269740,1946762491,1950170359,-2134946303,868823943,398190802,1962934077,15664,-930413452,1048586219,1979685030,702725,-1070392341,-1733949942,-2021605476,-1830235597,-49897,-123927435,-930412565,-2091402595,1460061177,333973262,-1980594688,-1987834354,-1165750250,-2048359426,-1022927081,-1265704513,-1742615254,-259304879,-268179759,-895365493,1476376194,1595430632,62517507,-1331367168,1499113984,852527811,1696839926,868426189,-1889033280,-1550805597,-1767731231,-1919245427,-1551002973,2124648619,-1919442289,-1567654494,-2136829984,-1880907121,-1567582302,-542994564,-1940282737,-1567582046,1000574346,-1868520560,-1567579485,-1465741251,-1868258416,-1567578461,-626880356,-1898208626,-1550784350,-1918726764,-1868651891,-1567581790,-1583116131,-1868913779,-1567781726,-576483364,-1874943089,-1550876253,-995913756,-1904303218,-1567736925,-1555525473,-1667067944,-1881431411,-1097892702,733151361,-1863907586,-1888942394,-1074973951,914985022,-1494708515,117349385,-940142433,-972721024,26254854,1946273782,281409327,-150178816,277713926,-2130414592,155189453,160272942,-141716434,1954538437,62430474,-387454976,-1645177623,-1309985934,-164728163,74809543,-1920137474,-1867800234,730873534,-1887322170,2124662531,2098104463,-1527561841]},{"sector":3,"data":[-1887420792,-1919809849,-346161152,-1640071040,343212432,-1920123264,-2146601727,43032382,1018824309,103934338,-1567580512,-523203188,-1750933296,-1920098160,192266250,-947776582,42078982,1007545088,-1173260798,113738259,98835,-2112813370,-267392766,1016036541,-1608485631,1090817419,1187396276,-2118188543,113748879,36242,33834694,18118,-2146923288,1963065726,943370262,1972339206,72253454,-1887191294,18118,-1962381080,1031799422,-1172998912,984646478,1979598136,4638376,72253442,139716614,-1450339167,343146512,567104692,1998491166,-1545325939,-1205927250,567094785,-2118193869,-1087655168,1525190718,29881864,772404597,-973632110,208994312,-1920188800,-972721152,76586246,-402405912,-1746337724,46983168,-1954396742,-1987206858,-393255114,132715800,-1942060858,1131741325,-2112813370,-2112636415,-2112682297,113704962,-1880846491,-2112551226,85584129,-2147252760,9276478,-1070396555,-1551001950,-1750954598,-1791587955,-1940275312,-393224259,915080797,-2134667295,9477694,-1712651659,915139891,733188245,-393199937,-294516799,1954596854,29882089,-1276580235,-633437953,125108622,-1898248506,-964498687,9362182,-1207935809,567093504,1962949760,-1880841962,1950022784,205565954,-1570755552,297009244,-1677656344,-1645627672,1357448052,-2034224385,177052678,-1190431552,-994115572,-1904296306,-1070422797,-1953458014,-1097866946,317230719,-1942060821,125108365,-1880946954,-1173785598]},{"sector":4,"data":[770212798,-355473388,-2147432472,9276478,-1008203147,-972721663,9278982,-1920188800,-401837056,116785905,1962905564,-401806590,1567948931,-1919482170,-2136478976,-7349186,915082612,914985109,113676253,872386524,-1791587347,-1087655024,-488075202,-2134379002,-940166540,-386894591,283705046,-1912619031,-852950856,-1899644127,-1953627970,-393223874,1048577293,1946193292,-1744386555,1625882768,-19666433,855720424,-1919507776,-1567778141,915115415,914984925,149459093,-385649664,585760346,-166546177,42984198,-469105803,448024771,-846299462,1555716129,169987328,-457260096,-1968849009,567107764,-1920334138,1811986432,855654587,16890569,41099725,-661973013,-1875173751,-849936200,-1995804127,-1987010538,-342842866,-526063576,-1889204537,113676260,-402554347,1048777488,1946193979,11266051,-1919533440,-385649664,-605422117,991857661,1140897936,-494919219,1024886912,-2146601840,9476414,2008680052,50981251,-1875173749,-1919414645,-1919281525,242600491,-2147371800,9477182,244016501,-1910600296,-1265796834,522308927,-930377870,1048596963,1962971197,-1656848377,460587152,1049350539,447778202,2030472710,128905869,117310837,725716362,63605713,-1987208690,999135758,1921882126,23062540,-1868808576,-351243008,1027506319,125042832,-1920319872,-1954450432,-1265616098,-1021194946,-1919467904,-1594329856,-790065774,-1959889918,-393373154,41156892,-617364487,2032045598,436717453,117382912]},{"sector":5,"data":[113675674,-1593798504,100896922,91393434,1946157373,15919114,1048827509,1962971290,9103619,-1881661813,-1868427637,-1868556661,-1869136256,-1271827456,-803091156,-773730079,-773729823,183423201,716460494,-377413171,-377092164,-422518319,-422517040,-422517040,167826816,1509264086,2113993603,1459730487,443687373,859964088,-842363950,-1664087263,-851181384,1052004897,1935286733,1625857289,2942976,1973228267,-2134706421,-402295552,82509854,-1918826753,-1919482114,512476152,-1276604456,583935,-1918826809,-320143360,-1265663558,-1021194943,-1867800234,730873534,-1880834106,-509360381,-535918449,-1527561841,-1880932728,-389706914,-1628962357,29747433,-398556989,292880528,-941705752,-2121308922,352765583,568852866,-1935621359,115888269,104486912,-960262772,9477126,-1919533440,-385649664,-1494744935,67102721,1048582517,1962971197,-1942061038,1018822797,-385649278,113639703,-1207857000,-2118226944,2210703,29018419,-1740734463,57999504,-855567686,-401509599,113761866,-1887334555,-2112551226,15067393,-963651421,26056198,12114059,-2011050684,-158344682,863273154,613257888,-1609992948,101355677,427069593,145236346,28843380,-2131348924,378020042,567119834,-1528230421,-1660500480,243270800,-2147184489,9476158,1048585333,1946259163,56354845,1048582261,1962971197,-2109752815,-955233304,9280006,-1677263360,512476048,-919367720,-1919283577,117437411,1048613018,1962971288]},{"sector":6,"data":[517092149,-1921442162,567099572,-2111325665,1323893619,1959275519,-637077808,963936399,-1881536778,-2146798304,9475902,1950989173,-2085963080,-768400405,28889479,-1558065854,378114212,1048613030,1946193290,-851397476,-966823391,445687814,265218243,-1919482114,-1919533440,-1958185984,-2087725026,863895803,-1868165493,-1868294517,-1039416949,12067188,857853250,-851397431,-1472298975,141820048,-1867990463,567099572,567099060,-1258657047,-1172189890,1102352257,113648077,-385839722,-1360397737,2047616254,136597520,1485871522,-1650326492,-1761212272,-1868717936,-2134654966,-7373762,1505692789,-1887650420,-402595608,-1070406501,-1881471354,58048522,-1962898199,-1081115082,12095035,-2145268439,108265532,-377344582,-2120089773,989626511,1085276788,-1868755318,1613504524,-1601291358,646614912,36016099,1958742530,1975794195,-1640071153,141820048,-1881405698,116113458,-1004404172,101378256,-1935503202,-790572915,-1869110560,-1869005184,-1574669056,-922054499,-1073078923,243997044,333680026,856038064,2030472959,128905869,-1991309963,-1148347842,1048612479,1946193292,-1899644157,-1953612610,-1181778370,1017905160,-1979550401,1948269575,-498882047,-1341935119,1946433568,-1439780846,1967078572,1007127042,-1442745312,854712899,-154948928,1963066438,-2083157181,-1202256446,1086024704,-1949748480,16890610,1935614413,-606017515,1946157629,212259,87891572,-384207872,-661923585,-851181384,-851528671,-2134706655]},{"sector":7,"data":[1190548341,1299448836,-2147133813,91488506,1950023296,-2143243774,-360701750,-460003232,-1679292813,-657856037,-1031547509,75401733,-2147031168,410322687,-1291684213,-27510726,1187382901,99287552,16795334,8644942,1963130752,4638213,-1125596416,-851725077,-1959169503,-1950338054,-1977202232,-1073068283,-466482060,1960985576,-989968399,-1605374741,1187417468,-469106176,1161430389,-1442482945,16795334,100945536,-1023380248,1037771240,91488259,1962935613,4638304,75401728,1946470390,4638438,41323266,1946172544,942584651,-1287293924,-27510726,1187382644,843972864,-400783653,-700716225,1364597619,-225718645,-506271572,1001130356,1509257969,990636894,1508733681,-10732962,1001655924,478552525,-1209494157,-672798246,-1982341143,1182794366,1069026305,571694,-997807373,-1312520534,850064131,-1094473024,-54554751,-849300342,-1968849375,-393544513,868475883,-1421964864,-1867603312,-1970229342,861379832,-636581687,-1813468018,1008563683,1022784544,-2030930935,177254150,-152406848,91521223,-1898314042,19785985,91603770,-343879808,1963801812,18409731,-1921317318,401146741,943370753,-2145553132,26175806,1139278709,22866145,22603948,-1867825527,-1867708730,11790592,-1867825527,-1867708730,1765703680,494207375,1977855976,-1952428008,-398392179,984613166,1476471272,-1867825527,-1867708730,-522786816,401081972,2028710913,-1888928128,-402426623,775741678,117311861,113676462]},{"sector":8,"data":[1023381677,-2147257025,708575951,-813682571,-415334398,74776720,2028676331,1048577972,1946194094,-1342000126,-1390007745,-2031390064,-2046172191,13166817,-136126074,904454534,-2145290781,1048577231,1946194151,46659077,1049184373,117412011,113676459,-956329811,9481734,-1409246744,1961001448,1947024440,2064005684,976123021,1009415363,-385649606,1048641375,1963102057,7661573,-347678229,-11671276,-377346886,1320871377,-439621245,-107126962,1374375619,-2130587776,-394264371,-398007758,225763332,-1409268248,-2130689560,-348127027,1963801652,-1442795511,1073794433,736677611,-536025088,240211718,-2025668857,-2130704711,-230686515,-2129955410,-1195376667,-523042815,1599727627,-1442795513,-1007116961,117326250,784568493,-1999698233,-1993474048,780753166,-1990515063,1563855150,-1993409399,780714510,-2000419129,-953286656,8967942,113716736,35016,-1811495122,777870217,-1986656569,-953271172,1049204742,113716779,993888666,1930003432,-18413,495658579,1930377766,178179,19130715,-784955090,1431786376,-1999036787,-804850130,1131749512,168814764,2011708530,-399018999,410323364,-804850130,91562120,-351715352,116796966,1950451920,468405790,1007126574,772175165,-1999630720,149439233,-1396346102,1124567086,776912619,-2000275831,509486,-719419090,495658632,-1999030643,792494126,-2144455052,141828668,-804850130,1416954248,21465638,959374386,1938342406,-1029624302,1138807176]},{"sector":9,"data":[651690819,-1998053493,778693376,-2000419129,1626013697,21465638,-784276430,651690976,-315486326,259311883,-1960422589,13035551,1128362843,787669571,-2000419129,887816195,21465638,-784276430,651690976,-466483318,54583505,260712152,-921965262,1396903796,-400585946,1935343709,-498908405,113716978,297156,777740125,-2000548213,-2000379602,-969503954,378220168,-1976661816,-125253090,-1960423229,174343,-13761163,780714502,1962949760,108825,-953284235,42517510,1343154944,-4979792,1476435688,501744619,-104638463,642864579,839405450,1959332845,158305549,1929648616,976904,-335939870,780742150,1509460183,-2144943267,1946157182,-152353533,-2144419003,277401614,1929365224,645934666,1357875408,-1999396562,19842603,1485361414,-751400146,1015033480,774272256,989822080,-953284235,159958022,639625984,1946173315,133637657,309657601,-1006188754,-352320888,9889801,-116528136,-1336931605,-385895421,-128450557,-1960421437,-1993472897,646498366,-2010774136,776995173,646502305,1476543881,175440188,72714534,105744678,37509867,-1993996683,1357579349,-395049156,-462157764,108332604,72714278,71057131,-1590816907,641763537,637814153,-351904372,1971922475,1301030404,-165261306,1946223175,-352014332,1207313929,91488770,333972144,-165259263,1947206215,14870531,-970013857,9018630,126559824,410370059,1465013072,-1006188754,-1275065976,-402411265,1516240731]},{"sector":10,"data":[820729947,1947205801,113716754,35012,771981544,-2000404861,-1457949431,393480192,-1006188754,-402653048,-2094136178,159958078,65733237,-1450151957,309624832,-1006188754,-402653048,-2094137041,159958078,11097973,772961344,-2000419129,-186122240,1048784384,1963559108,16820544,-953281164,8963078,94169088,772153320,-2000404861,-1457097463,309592576,-1006188754,-402653048,-2094135934,159958078,11079541,772437024,-2000419129,-488112128,1048587777,1963035037,1048784399,1962969284,113716743,624836,1448133464,168069678,1008366784,772633914,97408,-970062219,166395908,1929832168,-347716095,-1017618721,-796241322,-402355666,208799443,208977930,771755240,32179336,-387234234,1019436634,1007448960,1011184225,608270202,1396567007,1049450246,-92239473,-1929087996,780765758,393483576,240275792,-1973046265,-17470,-1174403655,567148543,777541978,771841419,1124287886,645934147,1527209943,-2144448317,-2138517490,-802783186,-1976631928,1948990468,1965898762,243281415,1174571216,1476395752,1381060803,868823894,-1976675374,1958742532,15853634,-466470542,-489559925,-756493871,-1960021504,-775844902,-388902430,527564997,-774774063,1912650984,332595990,11790536,-721220238,-402599549,57802921,1539042118,1526762985,-804850130,175374984,-755510793,-2097036669,-1960443695,-1977219465,1962949636,-1274957817,-1871385601,76162630,1618214972,116796998,1971357904,1278944798]},{"sector":11,"data":[2000056835,1413162502,640578049,1996966971,641364520,1996837947,640871200,2080590907,637959960,2080461883,1278944784,2081062663,1413162524,-352157947,164004628,-1250572034,-1006188754,-1342175608,-335563775,637644818,199959690,-1006188754,-1342174840,-385895421,1516174583,-1664919463,-804850130,41222792,1889387421,-104597502,1915763907,2000239624,-131060732,1355020739,643256915,637960075,-1073085046,-4979595,54283499,642203509,162792842,54584566,92940024,-453638732,653787968,1195836810,-399668442,309526578,-33306749,787576264,-2000419129,-4980728,-1977215765,45154149,-350909658,113716747,624836,61931444,1610378984,-1017619622,1448236368,-1976696142,80078852,48774258,116797182,1946716368,1966947341,2122327583,1903493121,-164752405,277401606,977014388,-2144990603,1962934398,1558922844,4602406,-1073078923,1162236532,975573995,1165295686,76164678,1178216005,1178236160,782756677,-1999632650,638547008,537020407,638022656,32384,-148495756,1946161159,1966750744,2122327561,225771520,3935979,-2144991371,1949958270,116128003,-751400658,1516173448,1354979421,1398166097,11200598,113716830,35202,-2079930578,771752073,-1987705145,-1377304576,773353984,176784035,-400919333,1852965024,-1987796178,225762058,1912640488,-2036126111,1977289353,512437849,-75265696,774009858,176784033,-1975028252,-2069811512,1977879177,786991677,-1987701109,1963064195]},{"sector":12,"data":[-337017342,378220057,-1590785662,-469071484,-930471819,-1987665618,376824842,-92018550,-2130414748,1527213250,-1325419426,-81139705,1583026411,61931444,788209384,-2000419129,1499070473,915260248,-2094102176,41221948,1377701867,-1205924272,-695519232,1515725261,1381090079,-1976645325,1958742532,1048587836,1946192223,33259535,977011829,775696500,216738932,645147964,578039612,510930492,1929242344,-1862224866,-150992198,1976699874,1925251857,-347696882,-120026435,-129628693,-1946615317,-1017554239,1448235344,-2048371117,1156984575,1969094929,16902147,-2113485010,771752073,-1987836217,-953286656,9012742,113716736,35208,1594279470,28508553,1929342952,-2103234979,1960512137,-10295201,-1557245838,-620066428,45306484,1929335784,-2036126143,1977289353,116796982,1963100367,915091003,2088798406,812985599,788481222,-821639378,771752072,-1999696256,244002306,-1959884455,780753702,-1990379893,-386412823,1601371920,-1987534034,1467341578,-1987927762,1333126154,-821627346,141820296,1131875388,-1070464395,-804850130,208929928,141823036,796003332,729225276,-1590767478,-469071484,-259382923,-1987665618,393602058,-1590769526,-469071480,-393605771,-4956581,-1461188432,1527835641,-1325419426,-107091965,-1006188754,771754376,-1990261050,1482250752,777408707,172360842,788035008,217990282,1953512480,1952529433,1970093085,-1976676828,537722436,108294204,175399228,-2144463893,76075022]},{"sector":13,"data":[-2144467221,25743118,-29047250,-1017618944,777410384,-1999552885,168069678,-401378112,611647583,-1660500434,777912713,1593836742,777928683,1593836742,17299238,775058688,-2000419129,703266818,-1976674728,1958742532,3008542,1760037748,1191342849,-347715770,-895340823,80096904,-1993455872,1586021950,11098207,1342796802,95485876,1492703976,-1924049981,-1182165986,976093193,1124365319,1497495778,1381024603,168069678,-398953280,745668895,24937262,638481466,1050615,-2144461196,1962934652,1008733207,1007776353,739080058,-1261401504,-402214657,132905099,-1006188754,1509951880,-391330984,410255394,1962954728,116796950,1948289232,116797165,1950451920,116084233,-134091783,-1007107250,222056787,3942772,-2144983692,1912734333,651899678,-2096931446,-2144992061,225706041,-1977169613,975586057,-503024639,1494039800,1364443995,-905525714,-2144460664,-544681946,913580092,846465340,829697084,209002556,1965046912,1176547335,518766650,41779238,857174529,1300899529,1959332611,244491,20588099,-119404684,1532567612,-895340861,116797064,1963034832,243281414,975210704,-1914180672,998824238,1008366813,-116165329,1200238160,-86906625,76154226,1492830952,-336064789,1966029835,243281414,-129988400,1398152899,-851541202,661979272,1381047888,856053079,-1193373962,567108352,-619979892,1516199175,1951932249,914959913,-1993439029,780717342,-1999948149,-853635538,3965832]},{"sector":14,"data":[70914164,1144653938,-117213439,1178994155,1543039979,-389865634,-389810963,-389286679,-389349360,-1360527348,113755094,166563,113706731,101027,105993040,1448544030,-335100078,-1962934128,-1403998734,-315438966,16352088,-289447564,1364285328,196730507,-156962048,1946421063,38258442,1204224000,1493172228,1348068834,-2112799104,-972262145,26273798,864162751,1487580096,-1946711201,2139312606,158662660,67586038,1334575989,197362436,-1957040926,41910750,125144933,-1889200501,-1962780791,-1970625762,-1971187178,-964554442,8524294,-2112813370,-402252033,520553045,-324861069,1600019088,1482381575,-1863565693,-1023314688,1048774414,1963100835,-1338971901,-1903104863,646805254,52299510,-402098945,1958404039,-972297341,25301254,-1551756358,118391315,1406750953,1526728936,-1092070973,1354979584,1460032083,-1047606989,783875891,-855592430,-1475965905,-1505850999,305051785,801964722,-1984952692,-1985069431,-1307431240,-1943024380,-1987461114,-1198932418,112333358,109850573,1049201060,-1779922526,-1610183632,-1640068727,-1140421495,-1170306679,816048265,-1984690548,-1984807287,-1307431240,-1943024376,-1987459066,-947272130,227139846,705086986,113714314,35302,-1981282617,-286785526,-901871313,1042569,1594323704,1482381831,-998046485,1355020554,12066390,505531747,141696775,-1982187895,-1982069108,1354979422,-397060346,242352149,-117440896,520488052,521011947,1599993739,1455642631]},{"sector":15,"data":[871773011,-98103,-1131739019,-544503350,-956946965,-1006078974,-1937133892,1025043395,225574931,1996498749,-1162034168,-339506039,-1631796218,-2084336503,376831995,1979711104,216791299,-1198922077,29229055,-118082816,-75297557,-402426880,-964493228,108197892,41273611,-2137219093,695534078,105993554,12079191,1009765637,158685439,45668491,-349188859,91486465,-346486945,113541894,1560284392,-821957798,-268274,1472421467,-18096,-1359822798,1481232887,-75250849,-2095221503,-7748034,-12773772,1342928383,-7739743,1485424158,520029419,451643846,-25114317,637957375,-352105078,892874249,-1976695691,-947715251,762575108,1959332856,-98279,992347508,772008709,41223483,1950943723,80184069,1928979435,-98292,235042296,2097358343,839283202,227157741,-536426937,1354956937,1465209171,-376745466,-1981931895,-1981598072,201245928,186414281,-402295315,65732646,1912713448,99113480,-346093823,113541892,117763065,1928944223,1532583174,-2096829608,-1007089468,-1957538992,-2088116706,91619323,-352310040,7858179,1504972659,-855637829,-2082196959,-336001340,-294128,-1053095052,-1326971020,113541888,1510175481,516118619,-108847354,-1273268991,361375234,-1977671219,11659458,1931413022,1435117063,-132002559,45354987,158648587,-854226394,1967736609,-1021314829,1392922711,119470731,447797643,1974399740,1272523523,123456395,868441944,1959332800,520494671]},{"sector":16,"data":[-678739788,1963063683,522308904,92939856,1476418280,1931413022,1085601798,-1675506366,440238118,-1047854475,248447467,-335545368,-397322982,-376701018,1931595097,990636802,990344392,41285864,526238091,2603203,-1258289989,-25115903,-166628097,209027270,1049429790,45713889,-16717824,-1000929597,193583678,639071487,-134201981,975573108,638022149,1996571962,1195899137,123726315,-469332029,-1814350967,-399050862,922194825,-92042776,-2147125751,65746882,1378927232,1975520065,1960512260,66683705,2088766837,91565066,-1980680449,-2094863551,225773305,738884736,922682741,-348026383,167346960,2088766325,91565066,-1980680449,-768371903,-768366613,922730547,868452836,1959332818,-1339706335,624436736,942017141,74711397,242598970,-402290138,24379219,1229080391,-2024348811,1961692106,1048792371,1962969574,105155115,975581188,41222469,809246443,-771029899,872612980,1048635371,1979681251,1229079048,-347123895,-17917,-386323625,1499463178,-1930886285,-896839424,425088,-922022540,1229522548,32196423,185658206,1577285065,-108852757,855799295,1962871753,106386788,-2083966127,9037374,1156987765,141889287,-402490172,686489946,218580214,1156975732,108269063,201802998,2093222005,23652354,1156976363,91556615,-352192792,45475843,-352300312,2156547,123275122,-346137249,180650756,-432110599,91553929,115934066,-435763201,-1023410039,-425602509]},{"sector":17,"data":[-402208887,-402650487,-2007433593,1133111943,1967192963,13690883,-294270466,-1995829832,1133111943,12642371,-2133118013,1962935932,-360200431,1127030921,-360200637,-398253943,861733030,-1999490085,-1970675698,-1053161148,-1054204298,1157034122,343179271,-2012593014,1133111943,1967192963,8185859,-327823618,556160,1278741876,705196808,-779483060,185093258,-165382967,1963919172,121959948,637957136,-347667062,-2021107711,-2092725782,58015995,-33537560,-153324087,1971324740,1962281496,172263956,-1981118584,1090224963,602407797,1976499712,121960172,-167217905,1947207492,168618754,-1895271214,-24517626,-386370102,-1017839614,509019729,868977415,-364999205,-59447159,123667826,-2096829607,-1007089980,121960029,638743856,1095763338,1945983720,1166681606,-336048127,92939789,74760202,-169131705,-1017775829,869413725,-402208832,855642249,121960155,639923488,1156973962,225774855,57966760,-947968957,176809990,121959936,-955878130,176809990,-162206976,1963984708,93005350,218580214,-990507147,1124365440,-947919744,176809990,121959936,-955878130,176809990,640215808,-1960442485,1156973141,259329287,1954596598,-427801852,-402208897,-167769463,1963853636,-402209018,-402650487,-619971369,-768408204,1431449010,113728963,690664,855667688,-2084555822,9038398,2112364149,9234432,-1980418305,-1967115455,2145912132,-180945152,1149911433,7661572,-1981137277,-400657151]}],[{"sector":1,"data":[1743257688,-180945152,-1070382711,-402373494,922681434,-1975416331,1340605764,-365001984,477430409,-402307958,922681410,-1975416331,937952324,-180945152,501760393,2942976,951370581,378339504,567118314,113707891,35306,-1980430650,1150010157,121959938,1023964432,58064995,-1023384648,-1981151601,-1981804920,1241258728,-1981804998,817366389,1094799360,-1981139201,113728963,690664,-167740696,1946224452,-79790052,359989385,1006781578,1006926860,-1341751785,-348041119,1349562372,868234049,121960146,-1978960864,1709704516,-214499584,1156989321,108339207,268911862,1149897588,5171204,-1980287233,54823489,-16759832,1099560758,-167623542,1946224452,-79790061,208994441,41684284,3935276,212861557,1442547432,-1338460989,-367620864,1931595145,-83441904,-973078135,982120198,-1980561722,110084910,243829226,1558743520,238701051,91589088,1342189752,922698049,516131306,8054791,1370198,-401706402,-689438584,-402230784,-1226243911,-788010544,-956268098,9276934,-2001486080,854116659,-49719,4001652,-1962314496,2156762,32179058,12108793,-1960719016,-2134146600,1476507648,-1195171379,29054979,-1021195008,-984132066,-1614871433,708619404,1060900468,178915956,-118327872,-1021354401,-108757574,-2118191381,-854005760,-853743444,222038644,104466036,-260731525,-2118139058,-20368896,-22369079,1963801793,243803896,-960298880,25301254,-1551756358,-1195146733]},{"sector":2,"data":[567105536,45668490,-1977496232,-1060072456,-456130268,516146186,-1895832344,-1567787234,243270976,528483648,-385916952,-1580990611,-1152871483,-470351861,-1953430081,197559287,-201537397,-988872796,-660215661,208977931,2080375869,-1161562110,116098170,-402652488,-1007026287,-1577056769,42468348,43254775,45351916,46793730,47842311,48563211,49284134,50004996,51971093,53609489,55575570,57082899,58917866,61277163,62850031,64357360,65537009,66651122,68486131,69993462,70845432,73335801,75498490,76547067,77071357,78775294,81069055,83690496,84935681,86246403,88146949,89064454,89785352,91096073,92275722,93455372,94569485,95421454,96404495,100140048,101254164,102302742,105645079,107021336,107938841,108332058,110101531,110953500,112198685,114426910,116720671,117376032,118096929,118686755,118752292,118752293,120194087,120128552,120063017,119997482,119931947,119800876,120259629,120259630,120194095,120128560,120456241,120783922,121111603,121242676,121177141,121439286,122946615,123405368,124585017,127140924,127927362,128582723,129238084,129893445,131007558,132645959,134284360,137233584,137037076,145622312,149554473,156697916,162465085,168691006,177997136,179570040,188876153,195495290,203031931,207095164,215745932,224593312,227345825,235734452,242091445,250480054]},{"sector":3,"data":[255460808,265881033,271779274,277939659,285738444,298059213,308020686,317654479,324142544,333514204,337380848,341181956,347080197,353895942,357565976,360973849,368903706,371787291,374343196,378144285,381355550,384042527,391775776,396559916,401016384,402654785,407897666,412747348,418252373,426509910,431228520,434439785,442828412,447219344,449447588,460850872,466028236,471795405,479069920,483854068,490669832,495519497,501024540,505480989,514328368,518981444,524683077,529073990,537069383,547489608,553977673,560727882,567281496,574883673,582879066,588318555,598738796,600049536,602933121,608503682,540091663,1702132066,1919295603,168650085,1818838563,1633886309,1953459822,543515168,1768976227,1864393829,544175214,1702065257,168650348,1936607513,1768318581,1852139875,1768169588,1931504499,1701011824,1225984525,1818326638,1663067241,543515759,1701273968,1225656845,1818326638,1679844457,224752737,1850281482,1768710518,1769218148,168650093,1986939150,1684630625,1952542752,554306920,1936028240,1851859059,1701519481,1869881465,1852793632,1970170228,539893861,221126702,1851071498,1701601889,544175136,1634038371,1679844724,1667592809,2037542772,1445005837,1836412015,1852383333,1769104416,622880118,1634213937,1869488243,1650551840,168651877,1819235866,543518069,1679847017,1702259058,540091680,622883689,520752434,1970040662]},{"sector":4,"data":[1394632045,1634300517,1968054380,1919246957,544434464,623718693,654970162,1819309380,1952539497,1768300645,1847616876,543518049,1713402479,543517801,544501614,1853189990,453643620,1635151433,543451500,1752457584,544370464,1701603686,1835101728,436866405,544503119,1696622191,1919514222,1701670511,1931506798,1701011824,1175783949,543517801,1634038371,1852795252,1920099616,168653423,1952530964,1713399907,543517801,1936943469,224882281,168632074,1702063689,1679848562,543912809,1752459639,1952539168,1713399907,224750697,1631721994,1868767332,1851878765,1919885412,1818846752,1634607205,168650093,1667449104,544437093,1768842596,220226661,1866672394,1852142702,1718558836,1936024608,1634625908,1852795252,1936682016,1700929652,1701998438,1886348064,604638585,1635151433,543451500,1701603686,1701667182,544370464,1701603686,1953459744,1970234912,168649838,540091667,1701603686,539587368,1768976227,168649829,540091659,1701603686,539587368,1986939165,1684630625,1769104416,1931502966,1768121712,1633904998,1852795252,1126566413,543515759,1701273968,540091680,544501614,1885696624,1684370017,1919903264,1937339168,225273204,1866672906,1881171300,543516513,1847603493,1881175151,1634755954,543450482,544370534,543976545,1769366884,225666403,1665209866,1702259060,1685021472,1634738277,540697959,168636709,1397509655,1129207110,1953459744,1936615712,1819042164,168649829]},{"sector":5,"data":[1920287520,1953391986,1769104416,1763730806,1869488243,1852795936,544367975,1768710518,1632375140,543974754,544501614,1853189990,235539812,1953397075,1696626785,1919906418,1125583373,1701999221,1679848558,543519841,622883689,841293873,1393887757,1867345525,1702188142,1415865687,1917220200,1952535401,1953383701,1847620197,1679849317,543519841,691086632,1125392442,1701999221,1948284014,543518057,622883689,269094193,1702129221,1701716082,1769218167,540697965,538979346,1698963488,1702126956,794372128,1010772302,543976513,1701603686,1852383347,1919509536,1869898597,1998616946,543976553,1679844706,1952803941,220292197,1701986570,1970239776,1920299808,1495801957,1059671599,760433940,542330692,1936876886,544108393,623784229,1850282802,1768710518,1768169572,1952671090,226062959,1850291722,1768710518,1634738276,539781236,544501614,1701996900,1919906915,168635513,1679848047,1667592809,2037542772,1953459744,1886217504,168655220,1937067288,1886593140,1718182757,1313808505,544370464,222709327,1766068490,1952671090,544830063,622880367,151653681,1344302926,224949345,1850285578,1768710518,1919164516,543520361,1931505257,1668440421,1634738280,168650868,1986939152,1684630625,1986356256,224748393,1329993226,1633886290,1953459822,543515168,1953719662,168649829,1953384741,1701671525,1952541028,1768300645,1696621932,1919906418,1920295968,543649385,1701865840,1126566413]},{"sector":6,"data":[1869508193,1868832884,1852400160,544830049,1684104562,1919295603,1629515119,1986356256,224748393,1380060426,541802821,622883689,235539761,1230128470,1763727686,824516723,1158416909,542066755,622883689,67767601,6710895,7237379,1920091417,1998615151,1769236850,1948280686,1701060719,1701013878,620890637,824508977,36775170,151073061,1144791050,540955209,52437024,34086920,620890637,1835862065,761553965,1678276985,1835871588,142178605,1831696761,1684286829,540091653,620900901,622855985,622862385,1766070834,1952671090,544830063,1701997665,544826465,1936291941,168653684,540091658,1702132066,352980339,1635020628,1768300652,544433516,1953720684,221930597,1160260106,1919906418,1667460896,1701999221,1852383332,1986946336,1852797545,1953391981,1918989856,1818386793,168634725,1868769295,1852404846,1735289205,691086624,1986351629,1869181801,824516718,1141705229,1763726159,1852383347,1297044000,1397703693,544434464,1210084969,1142178125,1763726159,1852383347,2003790880,1835363616,477721199,1852727619,1277195375,1751409007,543713129,1668571490,1768300648,168650092,1634683932,1734953060,1226848872,1818326638,1713398889,1852140649,224750945,1631793162,1953459822,1701867296,1886593134,1718182757,543450473,1853189987,544830068,1868983913,1952542066,544108393,1701603686,-2046817779,1937007955,544370464,1634036835,1696625522,1852142712,543450468,1280463939]},{"sector":7,"data":[1663058731,1801676136,778530409,168626701,1095062082,1331372107,545005646,1564886607,168626701,1701869908,1163018784,1998605121,1869116521,1629516917,1918988320,1952804193,1948283493,1768169583,1634496627,1752440953,1969430629,1852142194,1380065396,541802821,1953785203,778530409,1144982029,1819308905,544438625,1931506287,544437349,543516788,1769235297,1663067510,543515759,1701273968,1836412448,779248994,168626701,1346586691,1852726048,168648046,544213517,1852730912,1394614304,1768121712,1936025958,1663066400,543515759,1701273968,1836412448,779248994,168626701,1701869908,1128809248,1769414736,1970235508,543236212,1634886000,1702126957,1869881458,1936286752,2036427888,1701344288,1952669984,543520361,1701080931,1734438944,1970151525,1919246957,1527385390,1886611780,1937334636,1701344288,1835101728,1718558821,544370464,1851877475,544433511,543516788,1920103779,544501349,1701996900,1919906915,168636025,1212353037,542263620,1769104475,1564108150,1952542811,168648040,1229211715,774789970,1644825949,1528841283,1986622052,1532836453,1752457584,1124732253,774789956,218762589,773857290,538976302,1667592275,1701406313,1752440947,2032170081,1998615919,544501345,1663070068,1735287144,1869881445,1701344288,1918988320,544501349,1701996900,1919906915,168636025,1418791437,543518841,1679836227,1702259058,1869881402,1936286752,2036427888,1701344288,1920295712,1953391986]},{"sector":8,"data":[1919509536,1869898597,1763735922,1752440942,1886593125,1718182757,543450473,1986622052,168636005,1701869908,541344544,1752459639,544503151,1634886000,1702126957,1948283762,1768169583,1634496627,1752440953,1969430629,1852142194,1919164532,543520361,543452769,1701996900,1919906915,168636025,1701593883,544436833,543516788,1701995379,221146725,1124732170,168645452,1886339985,544433513,543518319,1830842991,543519343,1701603686,1869881459,1869504800,1919248500,1668246560,1869182049,168636014,1329793549,1528846672,2082488623,1564618528,1970238240,543515506,541142875,1110384764,727392349,1970238240,543515506,541142875,1110384764,727392349,774778400,1528847709,1953719652,1952542313,225341289,1528832010,2082488623,1564618528,794501213,168648022,543689229,1970238240,543515506,538976288,1884495904,1718182757,544433513,543516788,1701603686,544370464,1701603686,1869881459,543515168,1768976227,221144165,790634506,538976321,538976288,538976288,1768189513,1702125923,1851859059,1129529632,1948272969,544503909,1701603686,1980370222,1110384672,538976288,538976288,1226842144,1667851374,1936028769,1646289184,1918987881,1768300665,221144428,1679826954,1769239397,1769234798,538996335,1667592275,1701406313,1752440947,1768169573,1952671090,544830063,795111009,1713402479,1852140649,543518049,544370534,543516788,544695662,1701603686,774468392,541133325,542519072]},{"sector":9,"data":[538976288,538976288,1700143136,1768319346,1948283749,544498024,544695662,1701603686,1918967923,1920409701,1702130793,1868767342,1667592818,779709556,168626701,544167047,1701867617,1713398894,1936026729,1886593068,1718182757,543236217,1735289203,1713399148,543517801,544370534,1953719652,1952542313,745434985,1953849888,1819634976,1819306356,1768300645,225666412,1919903242,1970238240,543515506,1769174312,1998612334,1667525737,1935962721,544370464,1701603686,1768303409,724723052,1701603686,1868963891,1952542066,168635945,1634222986,1936025454,1701344288,1919251488,1634625901,1701060716,1701013878,1702065440,1869881444,1852793632,1819243124,1970239776,2037588082,1835365491,218762542,1414808330,1701060697,1701013878,168626701,1701060640,1701013878,1411391520,1948280168,1768780389,543973742,1769366884,2032166243,1998615919,544501345,1965059956,539780467,1751348595,544432416,827150147,755633454,1886611780,1937334636,544370464,1937007987,1701344288,1952539680,168636005,1094978061,1528841556,1702125924,218762589,2035581706,1142973808,541414465,1752459639,544503151,1634886000,1702126957,1948283762,1768169583,1634496627,1752440953,1969430629,1852142194,1633951860,1931502964,1769239653,1629513582,168649838,1919950945,1953525103,1919903264,1847615776,1864398693,539911534,1701990432,1159754611,1380275278,544175136,1885693291,1701344288,1835103008,1633951845,221144436]},{"sector":10,"data":[1698980874,1702126956,1852776563,1919885413,1919905056,1768300645,779314540,168626701,541869380,1769104475,1564108150,1952542811,1768316264,1634624876,1528849773,224219183,1095910666,1528841555,1986622052,1532836453,1752457584,1818846813,1835101797,794501221,168648016,545458701,1919179552,979727977,1634753373,1717397620,1852140649,543518049,1701860128,1768319331,1948283749,1713399144,677735529,1948264819,1701060719,1702126956,1394614318,1768121712,1830844774,1769237621,224750704,538976266,538976288,538976288,538976288,538976288,538976288,1713381408,1936026729,544825888,1852404597,1769414759,1633903724,779314290,542050829,542125856,538976288,538976288,538976288,538976288,538976288,1869762592,1937010797,1919903264,1852793632,1836214630,1869182049,1700929646,1701998438,1818584096,1852404837,1634017383,1713399907,778398825,1151470093,1819308905,544438625,1768693857,1864397939,1768300646,544433516,543452769,1684174195,1667592809,1769107316,1763734373,543236206,1701996900,1919906915,168636025,1229195789,1683693650,1702259058,1885035834,1567126625,1818846811,1835101797,1528847717,542986287,1565994843,1093622560,1564105563,1920234593,1953849961,1566405477,538970637,1531916123,1935489627,1869902447,1919247474,1528847709,542987055,1564618587,1278171936,218762589,538991882,1769104475,1564108150,1952542811,1717263720,1852140649,1566928225,538970637,538976288]},{"sector":11,"data":[538976288,538976288,1667592275,1701406313,1919164531,744846953,1919509536,1869898597,539785586,795111009,1713402479,1936026729,544175136,1953720684,1628048686,1345265696,538976288,538976288,1632641056,1936028533,1952866592,1696625253,543712097,1701995379,1969647205,1718558828,1718511904,1634562671,1852795252,537529646,542584608,538976288,538976288,1702057248,1769414771,1814062436,544502633,1836216166,221148257,538999306,538984751,538976288,538976288,1886611780,1937334636,1818846752,1998615397,543716457,1667592307,1701406313,1952522340,1651077748,1936028789,537529646,1953784096,1969383794,544433524,541335584,1919501344,1869898597,1936025970,538976288,538976288,538976288,538976288,1377837138,761553253,2037149295,1818846752,168653669,538976447,538976288,538976288,538976288,1210064968,1701078121,1768300654,544433516,538976288,538976288,538976288,541138976,1818838560,1914729317,2036621669,1919903264,1668440352,1769367912,168650606,538976288,538976288,538976288,1394614304,2035490848,1835365491,1818846752,538997605,538976288,538976288,538976288,538979616,1717924432,1830844521,1768841573,572548974,578056046,538970637,538988335,538976288,538976288,1953720652,544825888,1701603686,1852383347,1919906592,543450484,1701081711,168636018,1931485339,1869902447,1919247474,538976288,1109401678,1634607225,673211757,1752198241,1952801377,539583337]},{"sector":12,"data":[538976288,542318624,544817696,1702521203,1836263456,1701604449,1713402995,1953722985,537529641,538976288,538976288,538976288,541401120,544817696,1702131813,1869181806,1630019694,1634234476,1769235810,538978659,1109401668,1633951865,639657332,1835627552,1697128549,1768714849,544502629,1936877926,168634740,538976406,538976288,538976288,538976288,1193287751,1886744434,1919509536,1869898597,1936025970,1919510048,538997875,539828256,1701990432,544762214,1914728308,1919252069,1864394099,1919247474,538970637,538989359,538976288,538976288,1886611780,1937334636,1818846752,1763734373,1886593134,1718182757,543450473,1701996900,1919906915,1851859065,1818304612,1970479212,1919509602,1869898597,1936025970,1711934766,1110384672,538976288,538976288,1934958624,1646293861,543519329,1836216166,673215585,1746956142,1768186213,1763731310,1919903342,1769234797,1864396399,1970479218,1918987629,221129081,790634506,538976332,538976288,1428168736,544433523,1702326124,1935762290,168636005,1402079757,1668573559,544433512,544825709,1881171298,1702061426,1852383348,1701344288,1380533280,541347139,1769369189,1835954034,544501349,1769103734,1701601889,1327505454,1920099702,224748649,1701998602,544499059,1953068915,1936025699,544825888,1717924464,1852405865,1851859047,2004033657,1751348329,1953068832,539828328,1887004712,695100776,1868967213,2019893362,1819307361,790637669]},{"sector":13,"data":[221140781,1968258570,544437353,543516788,1296912195,776228417,541937475,1735357040,544039282,1836016424,1684955501,1953392928,1919971941,1919251557,168635945,1480919565,168645705,1701987133,1936028769,1679843616,1667592809,2037542772,218762542,1145785610,1528844873,1986622052,1885157989,224949345,541347082,1769104475,1564108150,1752457584,1146948109,1819308905,544438625,1931506287,544437349,1702043745,1751347809,1952542752,1868963944,2019893362,1953850213,1701601889,1818846752,221148005,1342835978,541611073,1919179611,979727977,1952542813,775641960,1566387758,1095764493,991971412,168626701,1886999659,1095770213,991971412,544175136,1634036835,1818304626,1702043756,1751347809,1952542765,1702043752,1852404852,1629516647,1679844462,1667592809,1397563508,1397703725,544175136,1918985587,168650851,2037149295,544106784,543516788,1920103779,544501349,1701996900,1919906915,168636025,1886999611,1095770213,1998604372,1869116521,1881175157,1835102817,1919251557,1869881459,1936286752,2036427888,1701344288,1920295712,1953391986,1952542752,168636008,1634222903,1936025454,1701344288,760433952,542330692,1835888483,543452769,1836020336,221148272,1342835978,1347243858,1952129108,1567914085,168626701,1948262524,544503909,1394614304,1768121712,1936025958,1847615776,1663072101,1634561391,1881171054,1886220146,168636020,1917848077,1953525103,1851876128,543515168,1701077357]},{"sector":14,"data":[544240928,1847617135,1634562671,1751326828,1667330657,1936876916,1684955424,1701344288,1819239968,1769434988,1931503470,1768121712,1663069281,1936024687,218762554,538980106,538988836,673201440,1635086693,1769152620,220819047,606085130,538976292,1680351268,1634495599,1769152626,220819047,538978826,538989604,1920287520,1953391986,1835627552,537529701,541336608,1967333408,1852142194,1633951860,168650100,606085181,538976336,1920103747,544501349,1986622052,1851859045,1634738276,168650868,1445208096,1293951008,1329868115,1702240339,1869181810,1970151534,1919246957,540281357,541991968,1967333408,1852142194,1919164532,224753257,606085130,538976327,1730682942,1952540018,1949135461,544104808,1852270963,738856233,1277435936,1008738336,1701586976,1949135731,544104808,1852270963,537529641,541205536,545005600,1885958184,168634725,606085241,538976328,1801675074,1667330163,1697128549,1702060402,1919950963,1869182565,1663071093,1634885992,1919251555,537529641,541402144,1933910048,1701863779,1685021472,1093148773,1229538131,1685021472,926031973,537529641,543106080,1631789088,1634300530,1914725735,1920300133,1851859054,1768693860,1701209454,168649829,1414269453,543518841,1297044048,1998607440,1869116521,1881175157,1835102817,1919251557,1869881459,1936028192,1948284005,1881171304,1886220146,1869881460,1701344288,1717920800,1953264993,1952805664,1735289204,1191841070]},{"sector":15,"data":[1869440338,544433526,1818584104,1936028773,543236137,1701996900,1919906915,168636025,1297222157,542263620,1769104475,1564108150,1752457584,1146227213,1919179552,979727977,1952542813,470420840,1634624850,544433517,1768300641,1864394092,1768300658,779314540,168626701,1313165907,541412673,1769104475,1564108150,1952542811,1768316264,1634624876,540108141,1701603686,1701667182,1376390450,1528843845,1986622052,1532836453,1752457584,1818846813,1835101797,1713385829,1852140649,845507937,168626701,1953451597,1752440933,2032170081,1663071599,1869508193,1886593140,1718182757,543236217,544695662,1986622052,1919885413,1952542752,1868963944,1870209138,1679848053,1769239397,1769234798,1713401455,778398825,1146554893,1819308905,745765217,1952805664,1864379507,1701978226,1702260589,1397563507,1397703725,1986946336,1852797545,1953391981,1918989856,1818386793,221148005,1393167626,1528845381,1769103734,1701601889,1953717053,1735289202,168648029,545327629,1918989856,1818386793,1394614373,1768121712,1936025958,1701344288,1986946336,1852797545,1953391981,1918989869,1818386793,1634607205,221144429,1931485194,1852404340,538976359,1701860128,1768319331,1629516645,1919251232,544433513,1663067759,1634885992,1919251555,1869881459,1936941344,544106345,1948282740,1981834600,1634300513,778398818,168626701,1886999627,1163075685,1769414740,1970235508,1634738292,1701667186,1936876916,544175136]},{"sector":16,"data":[1886611812,544825708,543516788,1920103779,544501349,1769369189,1835954034,544501349,1769103734,1701601889,168636019,1936278580,2036427888,1919885427,1952805664,1752440947,2037588069,1835365491,1835627552,168636005,1230244365,1528841549,1701669236,218762589,2035581706,1411409264,541412681,1752459639,544173600,1634886000,1702126957,1948283762,1768169583,1634496627,1752440953,1969430629,1852142194,1769218164,1931502957,1769239653,1629513582,1629512814,1869770784,225734765,1919903242,1847615776,1864398693,539911534,1701990432,1159754611,1380275278,544175136,1885693291,1701344288,1835103008,1769218149,221144429,1766082058,1634496627,1948283769,1663067496,1702129263,544437358,1629513327,2019914784,1768300660,221144428,1409944842,541413465,1769104475,1564108150,1952542811,1768316264,1634624876,168650093,1936278565,2036427888,1752440947,1397563493,1397703725,1919252000,1852795251,218762542,1380275722,1420888589,1936485477,760433952,542330692,1952802935,544367976,1981837172,1718186597,1752440953,2032170081,544372079,1701603686,1918967923,1920409701,1702130793,1868767342,1667592818,544828532,1629515636,1768163853,221145971,1443499274,1179210309,1331372121,545005646,1564886607,168626701,1701869908,1380275744,542721609,1752459639,544503151,1634738273,1701667186,544367988,1679847284,1819308905,1948285281,1663067496,1701999221,1444967534,1179210309,1702043737,1852404852]},{"sector":17,"data":[168636007,1936278610,2036427888,1752440947,1768169573,1981836147,1836412015,1634476133,543974754,543452769,1769104755,1847618657,1700949365,1763716210,1752440934,1696627045,1953720696,218762542,1280267786,1919179552,979727977,1527385437,1819042115,1852776563,1633820773,543712116,1735357040,544039282,1836020326,1869504800,1919248500,218762542,1279345418,1683693644,1702259058,1885035834,1567126625,1701603686,1701667182,1633835808,761815924,1634886000,1702126957,224228210,1913261322,1633820704,761815924,1634886000,1702126957,538997618,1701860128,1768319331,1629516645,1663072622,1634561391,1814914158,543518313,1868983913,1952542066,544108393,1970365810,1684370025,544825888,224749684,538976266,538976288,538976288,538976288,538976288,1633820704,543712116,1735357040,778920306,1380715021,1919902565,1663071076,1701670255,544437358,1835364904,1936421473,1852383273,1646289184,1751348321,1818846752,1919885413,1313817376,776423750,777214291,168626701,541934930,1836016475,1953391981,1795820893,1886614867,1935961701,1869770784,1936942435,543649385,1629513327,1952539168,1881172067,1919381362,1629515105,1679844462,1819308905,544438625,543516788,1936942445,543516513,1701990434,1629516659,168655214,544826731,1663070068,1769238127,778401134,573451822,168626701,1398096208,1292504389,1886611780,1937334636,1936026912,1701273971,1864379507,1970544754,544435826,1835888483]}]],[[{"sector":1,"data":[761556577,1869112165,543649385,1864396399,1718558834,168636006,538970637,1330135877,1313823520,1327528992,224216646,538990346,1330135877,1701665568,1734439795,168648037,2035550733,1159751024,542066755,1752459639,544503151,1634886000,1702126957,1948283762,1768169583,1634496627,1752440953,1969430629,1852142194,1667571828,1931505512,1769239653,221144942,1766082314,1952671090,1397563507,1397703725,544175136,1634476129,1819043170,1814062181,543518313,1629515369,1952539168,1881172067,1919381362,221146465,1191841034,542069839,1700946284,218762604,539003402,1700946284,538976364,1667592275,1701406313,543236211,1954047348,1920234272,543649385,1684370293,544106784,543516788,1668571490,1919950952,1634887535,1935745133,1814061344,1818583649,218762542,1970231562,1887007776,543236197,1700946284,1852776556,1814061344,543518313,1763735906,1818588020,1646275686,1852401509,1735289198,1953068832,543236200,1869377379,168636014,1634222922,1936025454,1701344288,1936683040,1869182057,1718558830,1885696544,1701011820,1701601889,1918988320,1952804193,544436837,1629515369,1952539168,1713399907,778398825,168626701,1179207763,1510608212,1718773072,1936552559,1852793632,1769236836,1818324591,1869770784,1936942435,543649385,1646292585,1751348321,1869770784,1835102823,168636019,1179191821,1330535200,1159748948,1380930130,1163281740,1970151500,1919246957,1836016416,1684955501,1229326861]},{"sector":2,"data":[1314594886,542987343,1769108595,1026647918,1920234301,845639273,1836016416,1684955501,1179191821,1330535200,1159748948,1414744408,1818846752,1835101797,1868767333,1851878765,218762596,539000074,542396238,538976288,538976288,538976288,1884495904,1718182757,544433513,1952540788,760433952,542330692,1970235507,1663067244,2037543521,1953853216,1701344288,1836016416,1684955501,1819176736,537529721,538976288,538976288,538976288,538976288,1763713056,1752440934,1868767333,1953064046,544108393,1713402729,1702063201,-1576399570,1380261920,1280462674,1279612485,1836412448,544367970,1667592275,1701406313,543236211,1702195828,1852793632,1769236836,1763733103,1752440934,1634476133,1881175155,1919381362,1914727777,1914728053,1920300133,224683374,538976266,538976288,538976288,538976288,538976288,544104736,1953069157,1685021472,1902452837,543973749,1864396660,1919361138,1702125925,1752440946,1948282465,1847616872,1700949365,1886593138,1718182757,778331497,543558157,1836016416,1684955501,538976288,538976288,1394614304,1768121712,1936025958,1701344288,1836016416,1684955501,544175136,1920098659,1970217081,1718165620,1701344288,1852793632,1769236836,1763733103,537529715,538976288,538976288,538976288,538976288,1830821920,221148261,538995210,1769108595,1026647918,1920234301,845639273,1884495904,1718182757,544433513,1920213089,1663067509,1768189551,1852795252,543582496]},{"sector":3,"data":[543516788,1667592307,1701406313,1702109284,1931506808,1852404340,168653671,538976288,538976288,538976288,538976288,538976288,1668571501,168636008,1159733351,1414744408,1818846752,1835101797,538976357,1701860128,1768319331,1629516645,1970435104,1868767333,1953064046,544108393,1948280425,1931502952,1768121712,1684367718,1818846752,1835101797,537529701,538976288,538976288,538976288,538976288,1696604192,1953720696,168636019,1853182583,543236211,1667592307,1701406313,1868767332,1851878765,1868963940,1634017394,1713399907,543517801,1629515369,1952805664,543584032,1701603686,168636019,1329990157,1982144594,1634300513,543517794,673205833,695494003,542065696,1835888483,543452769,1836016475,1684955501,1918988333,1952804193,1567847013,168626701,622862461,1769103734,1701601889,1884495904,1718182757,544433513,1701978209,1667329136,1818386789,1634738277,1701667186,779249012,538970637,1952805672,538976297,1394614304,1768121712,1936025958,1931501856,1864397925,1852776550,1919885413,1919905056,1768300645,779314540,1767317536,1633903724,544433266,544825709,1965057378,778331507,542509581,1836016416,1684955501,538976288,1667592275,1701406313,1752440947,1868767333,1851878765,1869881444,1918984992,1864399218,1713402997,1696625263,543712097,1701603686,537529646,1836016416,1684955501,1918988333,1952804193,225669733,539009546,538976288,538976288,1394614304,1768121712]},{"sector":4,"data":[1936025958,1918988320,1952804193,544436837,1931506287,1668573559,544433512,544370534,543516788,1667592307,1701406313,1868767332,1851878765,168636004,1867778573,1702065440,1701344288,1380927008,1836016416,1684955501,544106784,1633820769,543712116,1735357040,745365874,1701868320,2036754787,1982145824,1634300513,543517794,1953721961,543449445,168650351,1918989861,1818386793,168636005,1936019991,1702261349,1868767332,1851878765,1634607204,168650093,1634683951,1629516644,1869770784,1835102823,1953392928,1752440943,1886724197,544367984,1869440365,1629518194,778134898,168626701,1095715928,1195984964,1683693640,1702259058,1885035834,1567126625,1701603686,1701667182,1634753312,1701667186,1936876916,1275727197,1683693640,1702259058,1885035834,1567126625,1701603686,1701667182,1634753312,1701667186,1936876916,218762589,538997002,1634886000,1702126957,538997618,1701860128,1768319331,1629516645,1663072622,1634561391,1814914158,543518313,1868983913,1952542066,544108393,1970365810,1684370025,544825888,224749684,538976266,538976288,538976288,538976288,1735357040,544039282,544567161,1953390967,544175136,1684107116,235539758,1144950023,1170309466,84001575,132096,196624,524315,-65498,1175322678,543517801,544501614,1853189990,1632636516,1847617652,1713402991,1684960623,1936607507,1768318581,1852139875,1701650548,2037542765,1954039057,1701080677,1917132900]},{"sector":5,"data":[544370546,118370597,-2121384307,-1017200253,16778498,327679,1918980110,1159751027,1919906418,238101792,-264336121,499221377,65475,720896,36709,8392704,256544,-335543317,65994755,258048,-234880015,66256899,259584,-134216713,66650115,17037824,-1889075189,-1593769984,-81786615,721155,36714,151625985,17038368,-1888747509,-1325334528,-48227300,66977795,-553645311,16777358,536937889,184615935,9363200,94437632,67117057,-553645311,16777358,536937889,33555457,67305476,263168,100664325,67567620,33818624,-1897857013,268500992,186647299,0,171180544,67706890,17041920,11,268500992,186648584,67895300,2817,16777216,537660581,234882061,68091908,33820672,-1888485365,-1593769984,186646785,9400832,44106240,68235266,1979714305,16777359,536969216,184681490,9401856,-2147483392,729089,36271,25169922,33821472,-1865285621,-1560215552,187696132,9490432,77791744,68431876,267520,385877014,68681732,2113932033,16777358,536903696,436208665,68878340,269312,503317533,69140484,2817,16777216,536969232,184615968,0,-2146434816,69279745,2817,16777216,536969232,603980835,69533700,271872,184615975,9363712,-2146434816,69738496,-469759231,16777359,536903696,184615977,9396480,179372288,69869578,1694501633]},{"sector":6,"data":[16777359,536903696,273152,754975788,70123524,274432,838861873,70451204,-520090878,16777358,537068304,11,872546304,874514442,721156,0,185312769,33830176,11,-1543438336,186648586,0,109380096,70656006,17053440,-1918697461,-1325334528,941623818,70844420,17054720,-1904345077,268500992,1109393536,721156,36724,16842753,279328,1157628996,71696388,280320,1342178376,1028150337,1297044048,1128092752,1347636559,1144865605,1296257609,85212484,86507520,1321,87885116,1342,1360,91817336,91948410,1404,1420,94438816,95682560,95815093,96993280,97125833,97256907,97387981,97519055,98304000,99614720,100925440,101058053,102236160,102368793,102499867,102630941,102762015,103546880,104857600,104990273,106168320,106301013,107479040,1641,1660,1680,1700,1720,114099916,115343360,116654080,117964800,1801,119342876,120586240,121896960,122029893,122160967,122292041,123207680,123340633,1883,1900,125896576,1922,844831492,513491530,1161328196,-1824055665,512051230,1310627660,-1236263252,512446750,1446036820,-1218503143,513614886,1330512640,168488788,1330795077,1447382098,196234309,1230521605,189158483,1229193984,277676882,1124369618,38554689,-2060186585,1128809220,554631760,1376158882]},{"sector":7,"data":[1296125509,450822981,1375962382,-553431483,92605978,1396789829,441910085,1141081290,1459833925,75811354,1162893652,605785347,1163002757,17040973,1124369722,56184911,-2068563773,1430343685,1241924947,75841050,1163149636,-1003502590,1230242948,755123533,59055664,38946134,-2060968521,1280267779,807189251,1145242245,-1473939709,1212351876,55724356,-2069355145,54807810,-2065029662,1145785605,-503098807,42265125,1443054674,92604966,1229213010,643171154,1107657994,1262568786,-1640514558,1163265668,1497778514,741867266,1163068293,584517204,1342604566,1347243858,582813268,1342473462,38294593,-2064769249,1230521604,572063828,1124369638,56185940,-2067783573,1212368132,931268175,1191478594,105862223,-2058875813,1229476613,-536718266,42290699,-1895414199,59068938,106057542,-2057171164,1397506819,-1340093696,1381238916,1095648597,-1761393331,142961697,1145130828,1212631368,1884890882,1212940933,1884890882,1127088261,1160662351,1110328664,1446990913,1464877378,1985169490,1162756420,4674372,32,16908288,1452844288,50397319,-1734017023,16811862,-1526726398,8869528,131072,-2024367963,5254913,34691,8882433,35651840,-1835490048,196743,-1677721088,-2019596665,1325420111,-1509931450,16777351,34732,32769,-2018142043,16843008,100,999,-2017132544,-889126912,16777351,-1392508912,8869528,34775,8903937,524544]},{"sector":8,"data":[1452848384,-2014773113,-285147136,16777351,-1124073215,8869528,16812027,8870145,8913920,-2023620352,-2012413952,1493238016,-2022440569,8919040,-2023030528,831005186,536936584,-1734016991,788694872,1328480321,0,1452844288,758058631,758054977,1395589199,1395470080,4337408,4336943,788551471,788551469,758054992,1278148688,1278029568,1351111424,1468553864,1116226952,1233669256,1585996168,780680840,730348168,8946824,-2024209918,34649,16812175,8951041,287309824,1452844288,-2002714489,16777216,34983,-1526726144,25646744,-1241492945,16842888,34649,1347241300,61,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65535,0,0,0,0,0,0,0,0,0,16711680,-16777216,0,1014783323,993864510,34,0,0,-65536,65535,0,-65536,65535,0,-65536,-1,65535,0,0,-65536,65535]},{"sector":9,"data":[658688,0,606339082,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,606348324,1294214180,1329864787,1700143187,1869181810,775233646,673198128,1866672451,1769109872,544499815,825768241,960049453,1766662193,1936683619,544499311,1886547779,1667845152,1702063717,1632444516,1769104756,757099617,1869762592,1953654128,1718558841,1667845408,1869836146,1092645990,1914727532,1952999273,1701978227,1987208563,2122853]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,917504,0,0,0,25,0,538976288,538976288,538976288,538976288,2105376]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1459617792,57999362,-1191141399,-779354113,-851311944,-1915095263,1068826454,-1073012275,2122323316,259332863,-779363849,-851311944,-1261882591,857853248,-1194226743,567099904,-963614485,-1962869434,-1528297394,139364608,-112906,1190594421,1962934790,-18776061,-1274784117,1931595068,-31987453,-28903789,-150505985,132678,1051996277,1183457741,167977990,1452015174,-851594236,-1814400479,33375990,1190597749,1946157320,29982733,-1207675253,567100161,1190575986,1031094524,-1207675253,567100160,-919420533,1946157349,-149901054,525894,-914357388,1142831904,-1274383835,-1205744322,-974579712,-61994242,-2013148800,-1960491377,1575324611,-339135805,624533980,-1054617353,-2136422093,-914357387]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[1230390596,1128088899,1329880122,1163091027,1380275796,1163412782,1162086925,1162037590,1547322173,1548963652,1162692936,1498623565,1141509459,1211978575,222840649,1279870474,859657029,84544816,1594652041,1575324510,-1957363517,-1957210388,92996734,-1962779253,1435173965,141921030,-1962248705,93194366,1594252686,509026765,-544286836,-1945600373,105221893,-1996063093,39684357,-1996206711,1971914325,172330760,-164428686,-1108866837,114411,1971914123,-1956749556,12803557,-1962258805,1451951174,142510854,-66642345,1958742675,184124179,-771027339,766511737,-2082736214,-621346606,865269643,1958742994,-1812859134,-2020412937,1009779923,67270201,-1031034329,-495598837,-1404107384,1149764998,21270015,-227358917,-1956749480,12803557,-1947432107,12059734,1914817859,105313807,-167152638,74711489,-116588360,15405033,1408011093,1465274961,1427506718,-1962248507,108446980,-1408348533,158490940,91454268,1149820932,1576067839,1595868951,1532582494,-899816053,-1957363702,1381061612,102651734,12080406,1914817891,108971025,-1978773877,92808708,-136165562,392020019,1583292167,-1956947622,181034469,0,0,0,0,1377850189,1412263541,543518057,1919052108,544830049,1866670125,1769109872,544499815,539583272,943208753,1766662188,1936683619,544499311,1886547779,2097169,1404109057,1414742613,11665413,1555038466,1090542592,620780602,1025522275]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[1212368192,1179590735,1342836038,1347243858,1881415764,168650532,1213481296,1547322144,223563588,1413829386,1296389152,977485136,1397703772,121899533,638743856,1095763338,1945987304,1166681606,-336048127,92939789,74760202,-169131705,-1017775829,869413725,1376176064,855642132,121960155,639923488,1156973962,225774855,57966760,-947968957,169103878,121959936,-955878130,169103878,-162206976,1963984708,93005350,218580214,-990507147,1124365440,-947919744,169103878,121959936,-955878130,169103878,640215808,-1960442485,1156973141,259329287,1954596598,-427801852,1376175999,-167769580,1963853636,1376175878,-402650604,-619971355,-768408204,1431449010,1878985411,-1005814,-1425366871,-525530432,184594186,-1291112449,-256570560,192985087,-1156865863,-524481600,201375499,-1022615359,1623526464,209766156,-888364855,-523432768,-995572,-754114351,1878986048,226547469,-619859969,-522383936,-991475,-485613343,1625624128,243328782,-351362839,-521335104,251719438,-217108481,-252375232,260110335,-82861831,-520286272,268500751,51388673,1627783153,-981232,185643007,-519237439,285282064,319889681,-250277567,293672959,454140185,-518188607,302063377,588394495,1629819457,310454034,722641193,-517139775,-970990,856891697,1630868289,327235347,991142201,-516090943,336592659,1125392705,-60351,255]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]],[[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}],[{"sector":1,"data":[]},{"sector":2,"data":[]},{"sector":3,"data":[]},{"sector":4,"data":[]},{"sector":5,"data":[]},{"sector":6,"data":[]},{"sector":7,"data":[]},{"sector":8,"data":[]},{"sector":9,"data":[]},{"sector":10,"data":[]},{"sector":11,"data":[]},{"sector":12,"data":[]},{"sector":13,"data":[]},{"sector":14,"data":[]},{"sector":15,"data":[]},{"sector":16,"data":[]},{"sector":17,"data":[]}]]]
        
      • MSDOS320-DISK1.json
        [[[{"sector":1,"length":512,"data":[1301296363,1397703763,3288627,66050,-805277694,195842,131081,0,0,0,0,251658240,0,872022017,-1127182656,118914048,906000571,1444820933,733958934,768380,-2144948996,57933885,-1442477530,-236796790,1200168710,721929986,378207100,332234237,278947442,653760636,100891670,100891676,1067678734,2084021116,-150986568,-1954803418,58460958,-201897789,2083980801,-1593507653,-1796703169,-402542592,426901673,196737931,2111159808,225814259,-1105166451,196705760,1957098240,2104933912,838885864,1578552804,-1895526625,432865860,-344080450,85762539,922210867,-1057063925,-1585693534,1034124343,117488508,-394512479,413204543,990259836,-397393796,1918369869,1007036623,17593980,-142854394,58460966,-1965429800,-1971579602,-1954677482,-360956642,7340032,1958742700,-1290882015,-351220225,-137219085,-25421770,991332546,-137219204,-2005132746,-1552143850,-1262257095,957778690,-789935492,-2133929778,243974374,-511673285,-1966208449,-1971574218,-847381226,168674067,762212174,1953724755,1679846757,543912809,1679848047,543912809,1869771365,1376390514,1634496613,1629513059,1931502702,1802072692,1851859045,1701519481,1752637561,1914728037,2036621669,218106381,1936278538,1866604651,1713402991,1970039137,168650098,542066944,538976288,1398362912,1329877837,538976339,5462355,0,0,0,0,-1437270016]},{"sector":2,"length":512,"pattern":0,"data":[67108861,1610940480,8390400,184590345,-536018752,16781056,335540241,1611989312,25171713,453091353,-534969920,33562369,587341857,1613038144,41953026,721592361,-265485632,-1036289,872411185,1614151664,58734339,990093369,-268500032,67124995,1124343873,1615135808,76545796,1258594377,-531823424,83906308,1392844881,1616184640,92296965,1527095385,-530774592,101711621,-16375711,1617233487,110100230,1795600383,-529725760,117468934,1929850879,1618345968,125859591,2064097401,-528676928,134250247,-16244607,1619331151,142640904,-1962368887,-527628096,151031560,-1828118383,1620443120,159422217,-16146279,-526579249,167812873,-1559617375,-257619392,176203775,-1425366871,-525530432,185597706,-1291116367,1622477632,192984843,-1156865863,-524419088,201375499,-1022615359,1878985792,-997620,-15949623,-254997297,218157055,-754110465,1624637424,227540749,-603983655,-522383936,234938125,-485613343,1625624128,-989426,-351358977,-521335104,251719438,-201330447,1626672960,260110095,-82857985,-251850816,268500991,-15720191,1878986831,276891408,185639177,-519237439,286261008,319889681,65521]},{"sector":3,"length":512,"pattern":0,"data":[]},{"sector":4,"length":512,"pattern":0,"data":[67108861,1610940480,8390400,184590345,-536018752,16781056,335540241,1611989312,25171713,453091353,-534969920,33562369,587341857,1613038144,41953026,721592361,-265485632,-1036289,872411185,1614151664,58734339,990093369,-268500032,67124995,1124343873,1615135808,76545796,1258594377,-531823424,83906308,1392844881,1616184640,92296965,1527095385,-530774592,101711621,-16375711,1617233487,110100230,1795600383,-529725760,117468934,1929850879,1618345968,125859591,2064097401,-528676928,134250247,-16244607,1619331151,142640904,-1962368887,-527628096,151031560,-1828118383,1620443120,159422217,-16146279,-526579249,167812873,-1559617375,-257619392,176203775,-1425366871,-525530432,185597706,-1291116367,1622477632,192984843,-1156865863,-524419088,201375499,-1022615359,1878985792,-997620,-15949623,-254997297,218157055,-754110465,1624637424,227540749,-603983655,-522383936,234938125,-485613343,1625624128,-989426,-351358977,-521335104,251719438,-201330447,1626672960,260110095,-82857985,-251850816,268500991,-15720191,1878986831,276891408,185639177,-519237439,286261008,319889681,65521]},{"sector":5,"length":512,"pattern":0,"data":[]},{"sector":6,"length":512,"data":[538988361,538976288,659773779,0,0,1610612736,134375,16138,1329877837,538976339,659773779,0,0,1610612736,1182951,28480,1230196289,538976288,542333267,0,0,1610612736,3017959,1651,1162891329,538985550,541937475,0,0,1610612736,3149031,1725,1230197569,538988103,541937475,0,0,1610612736,3280103,1523,1381258305,538985033,541415493,0,0,1610612736,3411175,8234,1145784387,538987347,541415493,0,0,1610612736,4000999,9680,1296912195,541347393,541937475,0,0,1610612736,4656359,23612,1263749444,1347243843,541415493,0,0,1610612736,6229223,3808,1263749444,1498435395,541415493,0,0,1610612736,6491367,4096,1447645764,538989125,542333267,0,0,1610612736,6753511,1102,1229734981,538976334,541415493,0,0,1610612736,6884583,7356,843405381,542001474,541415493,0,0,1610612736,7408871,3050,538985286,538976288,541415493,0,0,1610612736,7605479,14558,1397310534,538976331,541415493,0,0,1610612736,8588519,16830,1145981254,538976288,541415493,0,0,1610612736,9702631,6403]},{"sector":7,"length":512,"data":[1297239878,538989633,541415493,0,0,1610612736,10161383,11005,1178686023,1279410516,541415493,0,0,1610612736,10882279,8210,1346458183,1396918600,541415493,0,0,1610612736,11472103,13170,1313427274,538976288,541415493,0,0,1610612736,12324071,9012,1113146699,538990148,541415493,0,0,1610612736,12913895,2886,1113146699,538989126,541415493,0,0,1610612736,13110503,2948,1113146699,538989127,541415493,0,0,1610612736,13307111,2940,1113146699,538989641,541415493,0,0,1610612736,13503719,2892,1113146699,538988627,541415493,0,0,1610612736,13700327,2983,1113146699,538987349,541415493,0,0,1610612736,13896935,2886,1161969996,538976332,541415493,0,0,1610612736,14093543,2750,1162104653,538976288,541415493,0,0,1610612736,14290151,13928,1163022157,538976288,541937475,0,0,1610612736,15207655,282,1313428048,538976340,541415493,0,0,1610612736,15273191,8824,1145913682,1163282770,542333267,0,0,1610612736,15863015,6462,1329808722,542262614,541415493,0,0,1610612736,16321767,4145]},{"sector":8,"length":512,"pattern":0,"data":[1280329042,541410113,541415493,0,0,1610612736,16649447,4852,1414680403,538976288,541415493,0,0,1610612736,16977127,1898,1396856147,538976340,541415493,0,0,1610612736,17108199,9898,542333267,538976288,541937475,0,0,1610612736,17763559,4607]},{"sector":9,"length":512,"pattern":0,"data":[]}],[{"sector":1,"length":512,"pattern":0,"data":[]},{"sector":2,"length":512,"pattern":0,"data":[]},{"sector":3,"length":512,"pattern":0,"data":[]},{"sector":4,"length":512,"data":[2630633,0,0,0,0,402653184,257302581,21958648,21697798,23462246,350950644,23462246,570818895,348135951,23462246,436666726,23462246,501088614,1711939074,1711367681,-989769983,1712058379,1259090945,1712081676,23464449,23462246,211157327,23465150,218041591,216075519,1711367689,1325491713,1259257345,1711367681,1427002625,23468046,23462246,22872399,23462219,225706342,227413364,23462246,23462246,230556006,23462246,23465474,23462246,21954895,0,-1993474048,771801118,12715660,1253988043,1447029504,-339725744,-1336912380,6405633,1347826155,384548915,-1070444458,250282420,28332118,116064948,45109334,-1916927052,646458880,199953779,7913046,-1101658901,1364197399,508909394,-1574022394,-986840892,-1979662306,1737097543,307202829,-1760274549,771901322,326566970,65065368,2143590384,-65073650,-1274977025,-1340478717,516238851,1328087232,-343821294,-1071725301,-1983892736,28578375,-1071725266,55019776,1562314587,1482250847,1448135518,246699351,281872307,1482579805,378220239,12779716,0,0,-1761607680,-687745279,1,1659129856,108298408,788475480,106234273,-1727623634,780873217,28311967,4621862,1114964028,-1624341714,-1993996287,-1943666074,-980745130,107907878,4602150,-1064553099,-443821938,520040092,-326434399,7244582,72781350,40274726,4638246]},{"sector":5,"length":512,"data":[780742144,1560740255,20762456,-2044328844,-1008205754,783805190,26947131,-393481102,4638246,15461123,1342177280,-1909586347,771856646,27209355,-2044329552,3932230,-2094120331,134324014,40274214,72780838,-1960393333,958793326,896860230,-795950964,782034315,36118271,-1960383349,-1910112146,-1960442794,-970587546,771752006,27209353,-816292601,74711356,4621862,-351909400,775630519,-193855077,-970528629,-352124858,235,-1878791424,1431306384,109981190,-1959919207,-1342070994,1183196673,1962949632,780348994,638058911,637691529,-1962649972,1854613189,1178150406,-1942653696,-1949266240,-13722395,-1962761954,1854613228,1452156416,1720395268,1187390978,-1993474048,117546798,1020221533,637826049,-402635130,-1209334326,-1691469010,-1946914303,1187391208,-336919808,0,772166992,26805902,-1624339666,637644801,1006651014,776107264,27209347,1720264200,1452025346,650480388,637955723,1962952249,-1899983819,-1662678064,538902318,653036291,637562507,637818510,637691531,18118,-1624340178,1482491649,1946238159,1183196676,89188352,992917483,1912707886,652774388,50349766,60395,1431306240,109981190,-1959919207,-1342070994,1183196673,1962949632,780348994,638058911,637691529,-1962649972,1854613189,1178150406,-1942653696,-1949266240,-13722395,-1962698210,1854613228,1452156416,1720395268,1187390978,-1993474048,117546798,1020221533,637826049,-402635130]},{"sector":6,"length":512,"data":[-1209334570,-1691469010,-1946914303,1187391208,-336919808,0,772166992,26805902,-1624339666,637644801,1006651014,776107264,27209347,1720264200,1452025346,650480388,637955723,1962952249,-1899983819,-1662678064,337575726,653036292,637562507,637818510,637691531,18118,-1624340178,1482491649,1946238159,1183196676,73197568,992917483,1912707886,652774388,50349766,60395,1431306240,109981190,-1959919207,-1342070994,1183196673,1962949632,780348994,638058911,637691529,-1962649972,1854613189,1178150406,-1942653696,-1949266240,-13722395,-1962635746,1854613228,1452156416,1720395268,1187390978,-1993474048,117546798,1020221533,637826049,-402635130,-1209334814,-1691469010,-1946914303,1187391208,-336919808,0,772166992,26805902,-1624339666,637644801,1006651014,776107264,27209347,1720264200,1452025346,650480388,637955723,1962952249,-1899983819,-1662678064,136249134,653036293,637562507,637818510,637691531,18118,-1624340178,1482491649,1946238159,1183196676,57206784,992917483,1912707886,652774388,50349766,60395,1431306240,109981190,-1959919207,-1342070994,1183196673,1962949632,780348994,638058911,637691529,-1962649972,1854613189,1178150406,-1942653696,-1949266240,-13722395,-1962573282,1854613228,1452156416,1720395268,1187390978,-1993474048,117546798,1020221533,637826049,-402635130,-1209335058,-1691469010,-1946914303,1187391208,-336919808,0]},{"sector":7,"length":512,"data":[772166992,26805902,-1624339666,637644801,1006651014,776107264,27209347,1720264200,1452025346,650480388,637955723,1962952249,-1899983819,-1662678064,-65077458,653036293,637562507,637818510,637691531,18118,-1624340178,1482491649,1946238159,1183196676,41216000,992917483,1912707886,652774388,50349766,60395,1431306240,109981190,-1959919207,-1342070994,1183196673,1962949632,780348994,638058911,637691529,-1962649972,1854613189,1178150406,-1942653696,-1949266240,-13722395,-1962510818,1854613228,1452156416,1720395268,1187390978,-1993474048,117546798,1020221533,637826049,-402635130,-1209335302,-1691469010,-1946914303,1187391208,-336919808,0,772166992,26805902,-1624339666,637644801,1006651014,776107264,27209347,1720264200,1452025346,650480388,637955723,1962952249,-1899983819,-1662678064,-266404050,653036294,637562507,637818510,637691531,18118,-1624340178,1482491649,1946238159,1183196676,25225216,992917483,1912707886,652774388,50349766,60395,1431306240,109981190,-1959919207,-1342070994,1183196673,1962949632,780348994,638058911,637691529,-1962649972,1854613189,1178150406,-1942653696,-1949266240,-13722395,-1962448354,1854613228,1452156416,1720395268,1187390978,-1993474048,117546798,1020221533,637826049,-402635130,-1209335546,-1691469010,-1946914303,1187391208,-336919808,0,772166992,26805902,-1624339666,637644801,1006651014,776107264]},{"sector":8,"length":512,"data":[27209347,1720264200,1452025346,650480388,637955723,1962952249,-1899983819,-1662678064,-467730642,653036295,637562507,637818510,637691531,18118,-1624340178,1482491649,1946238159,1183196676,9234432,992917483,1912707886,652774388,50349766,60395,1431306240,109981190,-1959919207,-1342070994,1183196673,1962949632,780348994,638058911,637691529,-1962649972,1854613189,1178150406,-1942653696,-1949266240,-13722395,-1962385890,1854613228,1452156416,1720395268,1187390978,-1993474048,117546798,1020221533,637826049,-402635130,-1209335790,-1691469010,-1946914303,1187391208,-336919808,-1657894098,2122327553,309657600,-2044329552,3932230,20714612,-2010774412,992870470,1946262318,149783302,-1329341461,-93133305,568786864,-829644314,616488590,607955977,129173620,281874100,-18091029,168626701,1413563911,540691521,1702129225,1818324594,1635013408,1176529763,1970039137,539780466,1953724755,1210084709,1702128737,168636004,262230052,-1851576832,1155329,26583854,771756961,-1593731165,-1557266411,102629785,1465012563,-930327210,-1959864178,771856174,26947209,771754168,26283659,-989601289,26452782,-343680885,1049308674,-1590820461,-503905899,12109963,109981184,-201588327,244002474,-970587759,637534278,83654,38192934,-953810944,1094,-1793195218,1586046465,797517318,-502741629,149783513,-1657894610,780742145,128975263,-1191546138,-661782528,-1962932034]},{"sector":9,"length":512,"data":[-1583141372,38046465,27501358,27591879,-1207808884,-661782528,-1962925890,665005572,38046466,36283182,36373703,-1207808884,-661782528,-1962924866,-1583141372,38046466,44278574,44369095,-1207808884,-661782528,-1962923842,547565060,38046467,52601646,52692167,-1207808884,-661782528,-1962922818,-1700581884,38046467,60597038,60687559,-1207808884,-661782528,-1962921794,346238468,38046468,68592430,68682951,-1207808884,-661782528,-1962920770,-1901908476,38046468,76587822,76678343,-1207808884,-661782528,-1962919746,144911876,38046469,84583214,84673735,-1207808884,-661782528,-1962819394,-2103235068,38046469,92578606,92669127,-1207808884,-661782528,-1962817346,-56414716,38046469,100573998,100664519,-1207808884,-661782528,-1962816322,1990405636,38046470,108569390,108659911,-1207808884,-661782528,-1962815298,-257741308,38046470,116564782,116655303,-1207808884,-661782528,-1962814274,1789079044,38046471,124560174,124650695,-1207808884,-661782528,-1962813250,-459067900,38046471,132555566,132646087,-1207808884,-661782528,-1962812226,1587752452,38046472,140550958,140641479,-1342026612,-76356057,-661731188,524683006,1516199517,520575833,207539032,-2146238352,13697222,542003011,538976288,-402201856,-492175354,-174659078,109494323,-1073083452,382539125,-260784117,1970405437,168865794,-2012973632,-1022639066,168543392,-1271827008,1964428545,624853020]}]],[[{"sector":1,"length":512,"data":[762576911,12590789,215031,-1205701628,-617463552,434836941,1975520144,-350827260,1912618447,279970421,12590789,-351451256,-182982244,-352320792,-1006188810,28573707,108271309,382592050,-473697045,92940002,-500576953,786492408,197396166,220450563,-2147483536,14090438,542659905,538976288,7343413,13008896,1329791191,538980685,-57312,-2147483536,14483654,843927363,538976288,300089344,855670504,168265408,-402426432,-492175355,-391451654,45413595,-990505779,-1341754354,-1796646133,1491649524,168266240,-401312320,-990511067,-1475382271,-401902560,1089011669,-385382400,1793720138,780532,1948304630,1948297461,-390403087,62190743,-389868339,130416671,-470881536,92939944,-192812985,348979636,1954596086,-351621116,-336928091,-194123548,-1014900085,1103301780,1073770510,-436156768,1314017280,538976288,1879918368,-962576384,1275128832,540103760,1495277600,1073770509,-201275744,1414548480,538976306,1879867936,-962576384,1275132928,540234832,1344282656,1342197760,20480,45813475,92939776,2091079,-220068491,1341382633,-370248373,183038915,-151489280,-327843644,-1259097879,839052034,-203036444,-990505011,-1341754104,29685250,-167137085,91562180,-990508368,102679304,1375177503,786117459,225648266,-1959861295,1527606159,1979696360,-2134575588,1952052961,-1159156715,-502303233,-986832934,687915038,1911099983,773806579,12590789,-384676055]},{"sector":2,"length":512,"data":[1053094743,-2144993088,1946488189,-213915389,239438374,327009318,512416563,-472838797,225152907,-1869585092,1161562996,-579497840,9276198,1804568832,-1920391667,636026880,1880036083,-964687872,1124142080,1262702412,2105380,93005312,1300964944,1435182594,911364,-855526150,1392938778,-169215218,-163794702,50378213,393263553,-503850357,1689307275,-939268106,-1224682877,-2083847424,-628424494,196723083,-1948125207,-136672317,-2084371487,-1957297966,868387824,375250,-661917193,-235420021,-796144757,-466435234,-628417843,96059787,-1948125440,-1144812600,-470351867,196727043,-1947076631,-138398760,-1177318415,-235470648,1919220352,1693089795,-774206731,-788483376,3979730,-91557385,-997789194,1403072080,-1420252402,-374619253,208728660,138412144,17957062,1880325124,65280,0,65280,512,25344,589824,0,0,0,1082132560,67504144,100794371,135201796,2011696128,114181,2704887,-2129169407,-16832155,688309806,1173880591,1946157353,-16884,1173824491,1962934569,-386518244,1752306333,1964247784,698363408,71645711,350750069,855829248,516173558,-1993998144,-167047561,-1175897480,114417,449700914,91537418,1392967470,1297427214,1968131355,1976699677,117321236,-2144465112,84879422,-30536334,-351328242,620397317,-1018297994,772996840,254346950,-243865089,-385373976,-118754973,-400192986,-160299822]},{"sector":3,"length":512,"pattern":0,"data":[1912610024,330033393,772196227,12590788,224888870,310348070,341806118,-135182359,338245,1371734388,-397212078,2104623248,1962998659,14542854,-393192981,1836187901,-2146258456,1963075709,-100892644,-1212455819,-1979249136,-1962934137,-1962933361,-1962932841,-352321121,-2134078930,-108988191,-1337756168,1074313985,-1174323015,-990510847,-33065726,-2084307264,-990500671,50885633,-26167351,-2000486714,2106067061,239962380,-2012191352,1569198405,357926931,1499072347,116123843,129038059,66186233,94400521,28901890,-386518528,1282539655,-2144412877,1762753598,-2144462732,-384730050,-2144464780,-351175618,-2144456843,-1877901762,-2127681675,1427339838,-1306561366,-1944700924,-1307148527,-1944700927,-1592886255,-1065021049,-14350476,-352160511,-1007140095,240590531,294108959,177546,441738,560523,697738,755082,892298,1021322,1354964831,838861497,649462,777520498,1505961866,62739907,1435108864,293387012,28837646,1930677506,199813128,-1292241803,555124991,689342479,1282246671,104589468,-1017313379]},{"sector":4,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7345101,33554432,33554943,23593024,150995456,256,0,1310740302,541412673,2105376,671096835,0,0,0,0,0,0,0,0,-1,1880366847,256,130818,1744846850,131073,65545,0,542068224,1162690894,538976288,2097920,40,0]},{"sector":5,"length":512,"data":[0,0,0,0,0,0,-256,342884351,131184,33489408,4194816,33554792,16779520,0,1330511872,1296125472,538976325,537067552,10240,0,0,0,0,0,0,0,-65536,-1,50360575,-16646144,1073872897,92160,589826,1,1308622848,1095639119,538985805,50339872,2621472,0,0,0,0,0,0,0,-16777216,-1,-150991384,76101,-1712782475,-327423508,-1960898989,940514622,225707333,-1962779253,-2082763203,-277479425,784555001,254609095,132841731,755418926,-402652401,57802903,-370383895,-2031555509,1358162688,693996371,1963049974,281278313,-144477184,1962942659,71666269,521033502,-1961943617,1032520285,-8135794,944403711,-277543867,-165061237,-411819837,-1994329216,526330205,-880747725,693963040,658407470,578027791,608075822,393544207,-1974446306,-527825595,-544276685,84149894,1599660090,-402426849,1482361722,526383555,145815787,263242745,771797225,254609094,-388003070,-361562314,772818314,-485544798,646524644,-225767617,1426321667,242563863,1390989431,243871487,1173819183,1962934569,211937286,-1962923544,-137219134,-1023536267,991332398,357403407,-235417037,1008109614,1034104335,799092239,8644623,-1023388696,73239123,689866798,-645113073]},{"sector":6,"length":512,"data":[-661733325,7878341,926320942,512503311,-1607594183,1149767478,172263940,254976558,650219014,36208000,78644597,118113414,1149632944,866266633,1963015183,-1911574526,883044057,1173865231,1962934569,23324709,786074704,772748192,254944906,926336302,71616015,155486217,33768646,-1911921528,197351642,-1963232064,-1040313523,990784046,1005400591,-1962773567,-1957605176,714945,-1054123943,-117251632,96328171,646589952,776998701,255661707,-825176368,993397294,-1947040241,915025610,1435111228,692451076,1953824769,253836928,-2146798337,141820668,1946483840,-1873417469,1912648424,692451177,141885441,555124782,1282246671,759071022,1946223375,-511682488,786707007,254740009,-2010200062,974076686,511054669,990299694,-1976696561,-32555978,360004294,-164493454,1023868718,914894351,-1007153348,555104814,973436175,-1602990995,-352308248,-1269802850,4843524,1625862003,100722699,-58717836,1476686976,-385922071,-970063807,-15783674,789482286,646655503,-471331009,1344193534,255107118,926336302,155486223,216538968,-986833408,-972081354,520161604,424015555,-855411328,-1258700013,1375398784,-997587186,256746030,-1090516807,-1359868090,121997870,1355020633,19482103,841184512,169528804,772109504,240322303,1968002363,1330461445,-970060684,993286,-1991420535,1492668237,195,0,400925486,100434076,-953283979,1074735622,190769153,-518062290]},{"sector":7,"length":512,"data":[-905743849,-2137260030,1198787068,1947335808,46832900,-1590780672,20715493,-466483851,1392509642,-408801711,-442421737,-402542569,781977133,400629503,-58718861,772764945,401018622,-1040316300,-939603970,1532615659,1476395722,400924974,50102523,-58695054,-2143980540,1114899964,1364350583,-1957343149,-775779092,-773664286,65196514,-4029997,-1979354367,1441466742,-2135626032,-533010902,-1863830670,11528454,118379270,-1676575557,-518062290,-905487593,1392902146,102651734,-1960900850,293388275,520511976,-588554657,-517013714,-997568489,-1979488630,1424492918,1484026374,33711656,50070220,1720341500,66879491,102638965,101603158,2092893983,-208972015,1527129576,28335711,-402106742,552076637,1914636038,103213886,-1157165485,28316028,-402106742,149423429,1913084678,1465261606,-74768626,-401507138,1583285742,-947889377,1183465730,-922814462,1451886964,85714952,-1962549528,1532714469,46815833,440599040,472456270,1461354242,1787932,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,251658240]},{"sector":8,"length":512,"data":[-16777216,788529151,12590788,653967848,135102336,-1977210251,1371409991,1965074457,425246211,976097060,-1743423740,54976721,1606690544,352267795,703136626,-417732121,-1964569367,-2010765243,1166737735,206121,38242598,640370059,839141257,1200105152,762678534,17298982,-1628959884,-173020934,1972178034,125799686,-218098759,-2117863260,20982093,34076198,1911227252,1200236176,675645441,71797542,640370057,771901323,253902464,620983552,52822013,692947712,-728703,1166655755,1200236073,27405830,692945178,1461584000,-165260538,393543943,69813751,-2130152448,-317083,-1181738773,2106392607,-1190728915,2106392595,125275398,520560134,1072211187,1594317571,1334519327,243871270,1702959615,654309161,1946421238,692945157,-108855288,-483821784,-1014803675,1639929640,-1960423399,92810759,38243110,771864552,-2097068664,-947714877,1491591172,-1007133857,-1007088464,17298982,-2144437900,18481726,-970036108,1704454,-164757072,17769990,1444830324,-661733325,7878341,926320942,512503311,1579093817,-1960098421,-461368499,-791883773,-2032071988,-1966568480,414450773,332224262,-1070390158,918935694,-1993473928,773456694,436543116,7880329,7997068,33998382,-1070464742,45089515,-2010773665,-2134640633,1946495101,106372696,19720275,653866216,771966859,638534307,771837835,255921800,-1084759670,-1959913121,-484835570,92876296,-536557693,96034808]},{"sector":9,"length":512,"data":[-1590800128,95689215,1606092558,23848985,1508380275,-371042047,1543209192,-1021354233,1594317657,124959,113651395,637800237,771966859,638533027,771835787,856636578,244002496,-617408001,870892430,-970013952,34548998,781191915,254609094,-1878922493,55020326,255697710,21465894,255631918,88574758,122653478,157271078,-1023409688,1059490094,-125573105,37650478,125042970,1609060688,-1101506055,-523167393,-268181295,-150994502,534853,-779681164,1179013713,772049454,772750242,100746378,-1003597738,638531382,-1962720120,-2010770617,1582826564,2287623,784501584,-401657949,56162748,-497460520,-111220537,-461323272,1019513351,738358532,-1974353151,8435912,-1017519917,34010670,997523738,-2144778761,-2127268864,-8443547,1141294638,2105561103,74777128,418055344,2105541040,276103464,2105786622,141889299,-970014466,1410286598,1435113396,-1978413820,-2010246299,-1022409434,-2147475480,410452474,19482103,504460544,4242259,-1866736754,-958791168,526082311,844153677,1477692900,554092078,516161295,777389655,254150390,1346204929,-1900006626,2016855512,914959872,-1943138505,521091358,918826502,1435176759,1418208787,268075780,-1976694412,638534670,-2147005304,1963075709,1153836549,1476854794,772035978,255932042,1108249390,-791818225,-840333619,1594318355,-269958369,71666422,-1959911666,940514622,125109317,539575799,-1962314496,1032520285,-336864370]}],[{"sector":1,"length":512,"data":[-873980437,113651446,-402583769,-970000643,993030,-1014047949,-2010710095,839189518,692451273,91488272,-33206902,516239041,1334313152,-483464959,784347728,436340358,427081738,772152918,436418245,-1064386509,2016839974,512501248,520552570,1358452830,777461331,253953734,-389903871,-970000798,992006,1173839730,1946157353,324897624,1059373450,-1019485134,-201962634,74834954,-922819702,180412800,1088697036,-729758206,356858624,861025654,358452178,-770968585,-745863307,24428555,1526368840,-141897730,-410977910,-2046381249,49009355,-757329208,182028003,526383311,-1966909349,-338755856,1881167348,335314944,-13761164,773775654,400635647,-482934994,922693143,-13754562,773799990,400627337,-484537298,512306711,-1943134402,119488518,-816177317,16824657,1504048124,139889347,-1073028046,1720323956,242679555,-518062290,1183816727,49934,0,855638016,785944256,524172996,4996745,5113484,1178501166,57999391,771802089,27344580,540297,657036,658424878,540969218,570854400,1053044224,1049166497,109838372,-1003618266,-1996283842,-1946146754,771762694,60440260,2899593,3016332,339657774,809404676,839289856,1053044224,1049166990,109838388,-1003618250,-1996158914,-1946142658,771766790,92421828,29376137,29492876,-62995410,-935425787,-905540607,1053044225,1049167478,109838796,-1003617842,-1996033986,-1946038210,771871238]},{"sector":2,"length":512,"pattern":0,"data":[124403396,30686857,30803596,-465648594,-666990329,-637105151,1053044225,1049167966,109838812,-1003617826,-1994440130,-1946131394,-855611898,-1977676263,-1089528794,-890691519,-753696017,1964254227,-1155438060,33,0,150765568,-13761164,1008749870,-821988616,58048522,1020264368,-402361087,785317902,12590729,-1039758290,-527243008,490128430,-2091514353,947191806,637814154,1963213880,-1277480160,693963024,693897510,-209641293,1562509311,1552623145,48463913,1560936242,106650409,1552623190,881534466,-1007959154,-661911714,38045990,-952334042,-1006633211,861347408,-1075867905,92995772,541958958,771900811,-98545757,518325703,-83735156,-883417249,67454346,1034038849,521018913,1394680254,-402650392,-466425045,526063309,-1073042237,245168756,-337617944,1225395700,1919251310,1768169588,1952803699,1713399156,1679848047,1702259058,540688672,543452769,1769108595,168650091,544829025,544826731,1852139639,1634038304,168655204,-2147483638,7405567,33571712,33554689,16,504,0,0,1310740302,541412673,2105376,671096835,0,0,0,0,0,0,0,0,-1,1895825407,4489472,65538,2,63488,0,0,542068224,1162690894,538976288,2097920,40]},{"sector":3,"length":512,"data":[-256,-941031425,440795122,-388016151,2105799358,57933850,-384152065,2105794376,-389873638,-164367643,1946249960,22669357,1380985205,380948618,1482298317,29236594,512372224,1563954985,1343190020,1558729297,1482250989,57996811,-389810637,-93131327,1929392104,-181147403,-5052221,-389873291,-93060841,1928177896,1501199,-167049358,1223224441,-183244800,-389849351,-167050747,1005064312,-401968639,-167050782,-286784395,-970013952,-15783674,117211331,1843983221,-387025665,309521769,1929367784,2029390601,-389855998,-369557497,-1914047347,1364664052,771870952,12590789,-1944682615,1599674439,-116411361,29092035,-1071725266,260016384,-1022277748,36259319,-2145618944,1946298493,-100892650,128979317,-1176498245,45746528,46433025,-1007846167,0,0,-1892810752,774052870,589170319,537300782,-13722589,1914902558,788475397,-2137251044,108267260,788475549,-771087588,-953223560,1074735622,190464,1381231339,-1959863670,839854614,1461604607,490652974,-31985,1563955572,151221508,1166747989,-1908569342,1609231320,1532647455,692451267,-2117926848,-4249243,692451267,1321402370,1095639119,538985805,1308631072,1095639119,538985805,1375739936,-2234288,-396948108,1918828562,11003914,-117454616,1522752088,50010,1397838342,240590416,-1088483833,-1682037849,833827,526361843,-1962195574,-503967411,772359427,-1960587613,78711877,-930354989]},{"sector":4,"length":512,"data":[-828297647,323848995,-235417037,868911682,360052690,-393547126,1928147688,1096010,-2144991056,1014235199,-448823258,-2077881996,292883271,-501169277,-13739543,-500969978,-336186433,-208971496,520509214,-1480653042,768291,-1070422797,1609970602,1543002143,-1022928295,1591405401,519367518,1364592215,-67096344,1582933235,-1021354233,1359370014,-67100440,12494579,-1107069952,123338751,1354964831,-1607535053,1161432876,1308718096,1354979576,521013022,-2094815298,213458119,-2134681600,175276282,1946352768,184320010,-13761164,1394556462,509039185,1085820934,-958886400,29702,981459584,1912632598,1946600967,585826560,-1044345773,-1023212309,-2124693362,-1711271965,7349728,1347947634,-1174397976,-387054602,-1973944211,-117410778,24503306,1595869176,-899983014,1134690306,1208403456,-58712064,-972721150,570443782,1059373450,-2013248350,-1979693778,115916993,-1962916190,81838274,168813696,-1566569276,1392902215,1881520282,1200301568,48808197,637551266,1527269258,1982237191,-1058766848,646504458,-1950154634,633379579,930414704,1881524378,-1188006656,-256245504,-201655295,116849517,1946288200,634427921,393347184,-1174403911,-201719312,-660931732,1962962981,1125056006,-1010207488,-352361112,-268423282,-352361112,-268423650,-352361112,-268423553,-352361112,-268423454,-352361112,-268423432,-352361112,-268423319,0,110042894,110044648,-392354326,-1980104685,-82947274]},{"sector":5,"length":512,"data":[-100613400,449642932,-399572997,1381060645,449700914,1347967322,-950906541,19387398,-855329792,-385649894,780664971,243804088,914892729,378021818,113715131,141268,1912687848,-737753232,-402652377,1701970154,668206791,-1528299520,666476544,-1203863400,58004519,755000325,78708816,-594873866,95795608,-727457289,-1732015577,192200715,-150901319,-737803807,-2146964697,36158014,117376118,243935188,-315480133,-737279671,-1173452249,1240281639,-1128341039,-1947139289,-737804028,-734622937,1532582439,-919354536,954978867,-855460720,-1997311462,-2010662866,-2010662642,-970474954,2603782,1912647912,9627869,350804082,-1204909568,-1190229465,-1170830809,-1156150745,-411703257,666411203,-1577050136,-1180686408,1501223,-1608009310,233318330,666542592,-400049248,-1147011068,-527776985,-1963978971,853575384,-754667036,-167071256,-1010629919,666386048,1949660960,-1203863538,745675047,666451584,-2145029504,-1725449922,1048583799,1997678522,-1170309097,276168743,666582656,-2146863311,2603838,-1007156618,1048626169,1998858168,-1187086320,158816551,666517120,-134056103,-1178338877,-1195704316,-1979217369,-267442720,376900156,-321852208,-321852208,-2146442112,108464892,-512407229,-1007041544,0,2031616,5898299,9896056,13893813,17891571,21889328,0,0,0,0,131072,16385,17301504,28674,35651584,65540,58697728]},{"sector":6,"length":512,"data":[131080,83885824,262160,58697728,131080,50331392,1073872900,791752704,942616625,872022068,-1579643200,-1557266356,-1557258434,1319180257,1084435968,-475845089,1275512599,-1944590336,-1593815538,-1557266332,1721835330,1151544832,1678165791,-1944107264,-83859954,-1071312435,-771313408,1019281128,772243201,254019326,-930430722,1971372790,868233986,-762381614,-83427140,512306769,-443930663,-18352,-1608073074,-1574043634,548415458,-2101468954,113698828,-401837890,1505625792,112519181,-401782850,901645998,111732749,-628174285,-1070349682,-1425722177,-943158101,1459645446,7250700,10749639,-1499266694,311040,-1827906117,-2085907541,-1416428345,-1416385645,378121107,378078464,915080452,512622712,582942842,768261,520529139,7866055,512492834,-2144468870,-47717826,113707900,34538795,86116038,-1324167713,1507906310,-686913234,378228775,-164463594,-568948434,95506727,727311059,-526176574,1840928807,-941978109,-1308620026,219057163,1549056,243843582,-893911015,11567,-788525307,-773271080,99144168,1879376128,369408,57522256,-1070350194,1050794126,104539648,91619351,1978662973,1007077130,-1945346816,1476410894,118365966,80213555,844636515,254911204,-787538782,541179872,1237252099,-1297767136,-855067520,-2012974573,841048598,-1088483630,372903709,57806620,855680233,-1237480503,-1272401152,1913900309,50102346,-914340491,570869250]},{"sector":7,"length":512,"data":[113639695,504303414,105992791,332204212,-956429198,914933246,243804131,-1047844892,1599756551,1917891359,618433044,1947155519,1946762252,-351816188,-352143866,-2147371518,-91610935,254033536,-33196798,552698063,-476004301,1011190055,-1993874272,1300838981,678791209,-2012916344,1569195133,608075819,309657871,254019270,281641218,692914432,-1023525493,-1023493653,-1191226391,92930047,263836210,-854018992,-2147126509,108265980,637978158,1048576271,2113937762,-1082084787,512368996,-253227215,-32607487,-2145295858,2187838,854267519,-172693360,560086656,-1978043902,-32558818,565559235,-924286542,-33131775,-350133746,-174790653,169960096,34043072,-1576062714,-1202712804,1048585704,1962682338,1090566206,365756595,1931990968,615757915,253902464,-1201113856,1048584710,1979785570,-1870861565,1965143480,-1871385853,-2145295688,992318,1944781684,560117904,-2138018325,2187838,12502900,-1094283536,-172021731,1973878015,-8617800,-940083968,-1290280698,-485585884,-1877415145,113647184,855707429,-1193767232,-1331485204,-1307669503,1347952385,-1900006626,5022168,588817198,771772065,-954000733,570444806,1309576227,1347952384,34550176,-1574870522,-1168634084,-628227219,83886125,-657391601,-388896559,161736913,109139968,7340041,1381048078,-919343821,45404723,-108848435,-2095942400,225771770,1946287491,12141843,-335617472,417879777,915012346,1593511507,253902464]},{"sector":8,"length":512,"data":[-402426624,-677313630,-389748697,-387706648,-13434780,-1576695258,-677304360,-391059417,-2011603574,-1977098978,1166739533,-653907689,518861351,-544276685,87694987,801814559,83886125,-657391601,-388896559,387281,7341313,-1427586930,714754,-555163790,59905,116786029,1967138781,-134512379,-75250929,-13384713,-1962933830,-1591222770,-1064425504,-383264863,-1061623547,-1145008633,28836352,-1175047678,332201985,-2128213646,1426325054,-117345110,508778435,-2012914296,-1070398379,1158217996,675661353,-586758651,-1269694425,-32256760,360024262,-2145160614,1300774881,-5052397,-1027925902,1065362947,638809089,1946435456,281248525,67304321,-369497227,642908453,637814667,637949835,638076675,1946834707,-586252283,643465255,-1996208245,-1960437947,1077741639,-1982631424,1380978245,857163147,-1963029806,-201911459,-1040266614,358451865,-858721289,-461321008,-1966339392,-225814296,28889226,-841272574,2104645651,54427942,1967278336,1048651292,541917189,-2128211083,838862910,638416174,671360,-351963856,-1873351906,138314022,1965961984,1048585972,1966080010,638118658,671360,652375346,1207964577,370576166,290818304,-1037311279,286690086,206932224,-355269455,-1977171413,-2013262578,-768407475,-235409782,1913648701,-586252283,1139490855,671989392,91620411,-351746429,105679607,668798472,-1962783605,1435042900,141395980,668796662,858289472,1272810203,-338438141]},{"sector":9,"length":512,"data":[-18644925,-338562165,-1014899197,-271580673,-1978565240,-2010653410,536353117,-1312596133,736809732,45304002,856194442,-2084371502,19726546,14320384,1166668791,869591825,1053044443,-8188131,-352094721,1460047956,677218854,1963326336,1166747172,-1960423410,-148499131,-930409627,-137219240,1959922673,-1993981951,520497989,-351898227,-2145448434,510920699,-37821487,-1926198482,330902909,-1527541760,-1960442017,-1960443299,-339505603,-768359515,-1960098421,-470336419,-147169909,893749731,33798984,-770968585,-1992294028,-789891003,16908800,7340544,50135760,33556736,0,65794,1610670082,522505,131087,33554432,33554690,94371952,150995961,512,-684801024,1362029102,-619804329,1220774695,65140552,-1960322810,2484432,-24906965,17200639,-349709554,-677293072,-619803865,-429922265,-610181285,-773814745,1509426144,-1957486909,-165158858,1076354310,-561112715,-288230517,141760651,-338564143,-338564143,268428161,-1899815074,-1948003874,-1021354465,397541815,-1548024341,773108224,797447816,222595630,-1952960212,-842822704,705303,200579,200768,200709,202181,661318,202738,4068,118359582,-1967251698,-930370257,-1951594013,-208621320,-1074598998,1723334706,128690945,49951,0,63721,0,0,150994944,32768,16777216,-65536,83887112,0,6044225,5242882,0]}]],[[{"sector":1,"length":512,"data":[0,0,0,0,0,0,0,57475112,57475097,57475144,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-67108864,-24381901,386829102,-1899459584,255506648,721961192,-1178497336,-372175045,-1207523853,-883949280,368942,-1590765426,-1064435703,-24381901,-212860743,918892197,-1959919605,-100657386,-795948916,-83801924,119471926,109852160,-1992949755,637535038,908084618,-1946125662,1125832,2138934,-400617954,-1709244112,7348436,-879952645,-1911493757,-1946799165,8436222,-1943624205,-1275054586,505531728,-1111875826,623163404,-4513331,-850873089,-850873311,6464289,520117923,420907574,1959922176,-1261765114,-400438002,521011546,838868128,868781028,-851528485,178977,567099060,-1158028733,45092052,-839303756,-402296031,334170765,113488,567099060,-1260876968,-1272853179,-1172189883,45092056,-1173711384,28314844,-1106604568,119406633,-5112181,-1431518722,-126500854,-1441943473,2625160,1376578746,-1258291269,-1272853176]},{"sector":2,"length":512,"data":[1914817864,-1262449084,-1960719031,387877867,734563328,298025944,762506027,-113442632,1114776013,-919349109,45666867,567146818,251999346,13796096,-388823887,-489485135,268812811,1925528320,158329091,567099060,-1157165478,1334575178,139430916,856444812,-112479040,-876994099,165144590,1053097707,-1977221117,-315482035,558729254,1370800522,-1696013066,540445446,-1980749056,637542966,-1961331319,1170679494,637534230,-1064421947,-1590231245,917176356,-1426053471,604438070,1371550464,-218087495,-97366,-1070397067,-1410137167,1494149977,-1421868872,-1934899573,1959111640,-18408,-1196708949,-492109822,113653441,-1019150300,12066574,-2011050697,-1174394602,12061920,567146813,300483442,2138370,234889891,143583263,738204832,843019781,1545505764,1578535680,54445312,75351296,1435049353,-1004597758,637557822,-64057,71665958,-470403661,100780171,112722012,1543897344,139388928,-1070335997,521054963,-1610071064,-466485219,6037131,6166155,212677,-1994760823,-1976689579,838868510,509446655,1053040398,-953810852,654311173,-1291565687,-154629323,1543897571,440320,6030849,50855912,1363259640,-67095111,-953767181,52037,-532297946,-953810944,57925,-2082151847,-16770498,113731701,131098,-1003610544,637535022,234909380,1586112031,-1195115008,567100424,930463755,-1977165005,-1006763938,-1207088198,1622754317,1914817800,1511951138,223518989]},{"sector":3,"length":512,"data":[12177971,-135137534,1976699875,47201541,113707382,196634,646975211,-15171965,-1004140940,-1377101714,1843943455,251606535,846463002,1053046302,-986316708,-1962933474,-1993993657,340232965,38111526,-1944944759,-953805753,16712773,521166731,907068291,6036993,837338347,1053046279,-1977221117,976625741,1929387790,243938821,-315490273,558729254,6201654,407210278,6070582,373655846,1370800522,-2098666250,100742660,-169344930,902112774,377340966,-1191316504,-661721088,104529328,712310782,1554063118,1286912,-1560256863,146276373,285606656,252611328,-387844352,100729925,-1175977890,156867078,521011312,-1962496024,-1593811426,-1064435614,1253365803,-1945755187,-1064417088,17221414,117442560,242334403,-385395480,-661979001,-768358093,-851311944,5808929,12112435,-1943941822,5808586,721678568,300581840,2102921,922563560,2102923,-1030825330,-1959341517,-1275045874,567146815,1364676764,-91546960,-1359870493,-1336999563,179350029,922364842,5783177,240672601,1052004383,-1655168563,-935656334,-524678796,113240076,-386041111,1994917182,-1963625981,57665760,1894320755,-400617729,-303364670,1967324288,106424338,1681720692,-385650176,446955351,-2132612352,57951228,1016080619,-400526001,460456765,175459900,28324788,567136394,1178387435,652740981,1006924291,-370052026,-58654941,-385649596,-880016937,915004302,109838454,-1645739912,-1547685115]},{"sector":4,"length":512,"data":[1587609607,631552,100688035,-1898542305,1023457472,1914818041,1389923146,-768358093,-113114440,141763021,567099060,871102810,-2097148155,78708946,212986067,-1039408429,-939277940,992872306,1912611342,90958083,-851528614,-1899262943,6208451,1270088624,505531897,1931415047,98297862,117385961,478815830,57989898,653716294,102761670,-1157165482,1038614534,572165,1577400296,312863,1956716302,386284288,1577349632,-976819449,-1962932458,80118770,54445102,-1459320064,544505856,-1459302936,141819905,206932262,241011750,1946159273,1435051528,1569465864,12445962,7446574,108380170,-369098824,-1952972588,653560520,-1977592438,-2132802846,175512316,532291342,90433551,-2081890581,1157637636,100675104,-986840966,771782174,208580,273058598,991923027,242440967,-1732638882,244693774,-385540376,-1004077465,-2094661522,1962875006,1858348550,787737368,637557921,773342857,637558433,773473929,6041284,1543930670,971513856,1187456516,654311192,-15251770,1128478603,5671206,567104436,1377698027,118932782,1451828736,1586243090,1109350932,-2082289922,-639099122,1053044474,-1960443901,-1960435123,-986831787,637536054,639792521,-1960551028,128134660,-1995667200,123601492,-385649600,-722862419,1375502589,854071925,-1962118140,956283096,-838860870,-1173982431,-2098721057,-38409980,1967586432,68413462,1912603965,16792843,480380531,-39982848,-2130900247]},{"sector":5,"length":512,"data":[360008956,1630281740,-1057092494,108468796,-385867870,-253100669,1358725372,1156059253,-386698751,619184389,-370445823,-58655381,-969116341,738216198,-972831512,18694,1912604733,4209959,262349431,11790336,-353887630,-386501630,275907493,1912610877,33570059,295896695,-47322880,-2130928919,58021884,-2130930967,58016252,-2130933015,729109500,2688710,216907520,-385923704,-1073086351,540826484,92800370,-957289657,1592262661,1963604992,5761027,-2130911511,980769020,4785862,54781996,4785862,1026061312,594739456,-402645598,460455989,1946316008,52947190,4002162,973894401,1996496134,2007558,-369316119,417987611,378620,-402642497,540803081,92840306,1375005511,5770891,915084003,-1977221030,1477377796,1510407936,-1017513984,100396025,-657391601,-388896559,516155601,1381061456,512416563,-1006760425,1270488846,-1337674739,-1324829427,1512164672,525884249,1325844419,-973058035,34425862,223151815,113704960,3608,521019075,578030908,1047792188,276176956,57945916,-399381511,512294970,124915224,1929346280,-337777915,116887583,265752,-336002187,236495123,-1560280283,113708365,3441,10479864,117424927,251592792,-689242022,1929332968,1021256785,1011577409,105346906,243926798,11865705,-233936193,913639342,-754974280,404655072,-1948775666,8169928,384311412,1008562943,-400984774,777256717,4785862,33548320]},{"sector":6,"length":512,"data":[1225180718,-396689408,-1007157242,-1007036109,236457605,-1040764043,91488260,-351397982,1086453544,-1576700928,501943628,427081739,573943,1336083828,-150017267,1946161345,236299013,329450475,113506318,-617412850,223092362,1962998656,2668807,223284873,1505682385,-1087337714,532221266,-1527514112,403109639,1946161166,236298502,-150118493,537794566,-1589742592,1638075923,-20411635,224043465,-522979119,1520642930,33128461,45150387,512366455,292818268,780796336,-41939636,-1291553792,-33362960,1545504971,223650317,-1007041544,1477348142,-386407680,-164429669,1508441739,1914715136,1465274873,-1102188917,11865337,210435467,-217128122,-251420762,-260723554,-346464673,1499356933,-391488848,921174052,-386370304,-391512028,1017774104,1022916384,649819146,16729542,-1442838552,-126547396,652455147,1174702630,518243145,1174702630,256073,1019475060,1023112224,1022850057,1022587965,1022325804,777634619,5783177,-1993411021,-1023387082,1929224424,1963605242,-40376073,508973507,-164421882,1918975148,2004499465,-2011157499,-253558972,-1017553377,1956720208,1587752448,1923165696,1554198016,777017344,-402629471,19856765,771776006,6031047,-1590820864,992870494,1929388550,-1161603070,521015032,-385834776,-1909524826,771754270,466435,-13760629,771753782,-1157625949,-13762460,771753758,460431,113651395,855638089,751040960,1007055408,-134056183,868481475]},{"sector":7,"length":512,"data":[-1054501,1402200946,-150992197,-1023255581,1912657024,-353856556,774075132,4785722,792466036,208965776,141822524,74714428,-847921142,1476853550,251604480,-1014300582,247709707,-1158509817,-1782903111,-1273033202,639749385,-771091318,45352820,-347725363,-1261204494,-1021194999,1929387240,215005703,-1023404824,-1070344053,567100596,1971372790,-851528462,-1259934943,567146813,113542083,1515805528,526212958,431247367,-816307763,5002574,5132099,5788993,5132880,1313817436,776423750,5462355,1297040220,1145979213,1297040174,1430390528,1380271686,1107640915,1262568786,1162085955,1162037590,1229325636,1179862348,1111705092,1275680851,1146377025,1163282770,1380190284,1095784009,89148754,1128354899,1124551499,1414419791,89217362,1279608915,21324,1342177282,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33554432,2304,33554432,33554690,47186032,150995709,512,0]},{"sector":8,"length":512,"pattern":0,"data":[65794,1610670082,522505,131087,0,16908800,7340544,66651552,33556736,0,789453312,1141785614,1141785614,1141785614,1212548878,1128551507,1426722126,1667592814,1768843119,543450490,1835888483,543452769,1126198889,1229344335,1498623559,604638547,1699940877,1919906915,2053731104,1869881445,1634476143,543516530,1713401449,543517801,1107954980,1864393825,1768759410,1852404595,1126441063,1634561391,1226859630,1919251566,1952805488,218133093,1986939146,1684630625,1970234144,2037544046,1685021472,604638565,1866664461,1734960750,1952543349,544108393,544173940,1735549292,1868963941,1701650546,2037542765,220465677,1869566986,1851878688,1816273017,543908719,1769366852,225666403,9226]},{"sector":9,"length":512,"pattern":0,"data":[7065321,1430388736,8263,0,0,-1,201841,-65535,65535,0,9961472,0,0,8388608,0,0,0,0,0,348553220,1431180492,538976332,-1879039968,5720,5724,5724,5720,5720,5720,5720,5720,5724,5720,5720,5720,5724,5720,5720,-1,5]}],[{"sector":1,"length":512,"pattern":0,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,788725760,536936448,538976288,538976288,538976288,-65003488,203228188,1905693,36864,255,0,8388608,0,0,0,0,0,0,0,-1879048192,0,65535,1,0,0,0,0,0,0,0,0,0,0,0,0,917504,5,0,0,862,1,0,253361920]},{"sector":2,"length":512,"pattern":0,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1779863086,646655492,-1527577496,378087164,915079900,-1943666650,637544454,2885260,4591242,-1943605966,-970581436,-2080434364,-220061498,639692419,-15055673,-541128961,-773861013,-772812305,62950639,868257479,973507839,943622400,1170679296,637599492,-64057,38127398,101187583,-231306430,376629250,-559862265,-559733246,113649154,1207960400,2401062,-958886370,1509949446,67271,723910656,-150801914,61032664,-1631641856,243712,2539435,203,0,0,0,0,0,0,0,0,0,-65536]},{"sector":3,"length":512,"pattern":0,"data":[]},{"sector":4,"length":512,"pattern":0,"data":[]},{"sector":5,"length":512,"pattern":0,"data":[]},{"sector":6,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1496837117,-1513577016,471836104,505355807,522067743,20455198,50542850,70911234,84017936,50463291,33752124,87885060,67895811,100744709,84279871,84279872,33751873,100811269,50610945,1141178626,17633029,38077702,38142982,21431302,117590031,117590280,117656073,139134985,67240195,84412939,33751886,302075666,51446870,39257346,22544646,50616833,1527055362,33771525,73139460,556007686,67568127,50856703,50856706,67175426,50529537,67569407,84346625,67176453,67569925,67570181,50924293,67570689,67702017,50859777,50532354,51187970,50860546,51138562,34217986,34218242,67195906,50550527,67195393,50934274,51139843,50943747,67982081,67183617,-251,118166527,84153346,117773569,84154111,67835649,84154370,17111297,118168066,67836674,117578754,67443972,67444479,67969023,34218239,34218242,118170114,50934274,67576579,67183617,84803333,353637375,421009174,488381210,522133278,912532514,-719336354,-1541372129,1059105312,471821087]},{"sector":7,"length":512,"data":[1243430429,-937378275,-1424314592,1881650457,1210627105,-1608446679,-2044156632,-1239296472,-1692817899,974796825,-1240091110,-1239777771,-1356289515,-182378200,1612303648,-1775723749,-98947800,924260118,-317241321,-820410600,-2141332968,1712537626,1545190682,-199629543,-987005672,2099970346,929611369,-1100518809,-1016475801,-1586918809,-1704429013,-1138066840,-1252009634,307861599,-1151758754,875172649,1913862675,-400889574,-182758888,-110613655,1478101599,-580241302,-2141185942,-681440926,974501478,1729476115,-1122604269,378742286,433731192,1342314128,1381965783,925325189,1803049265,874066992,1464604559,1466259321,477895768,1478564976,1635670282,348152640,1727357677,415569968,473307172,1632330286,367027927,479937978,100801674,525324,268583040,18350852,603979776,0,3014700,3801133,-1778384384,738197526,2889728,10223617,738197504,754986496,14848,378929410,2883584,16789784,5063680,3014656,3014700,33554478,1480193,402668288,65569,70,738205696,973090560,16909056,5782,571998267,-1644166912,0,2883630,3801135,-1778318845,989855766,2562048,1766588417,771763828,788540416,16792064,378929408,3866624,33566232,1262834432,3014656,2949164,33685550,1485825,402668288,65597,36,771763200,973090048,16908288,5782,756547628,1140850944,21067,2883630,3014703]},{"sector":8,"length":512,"data":[-1291779581,989855766,2693120,1917190145,738197504,771763712,33566208,378929410,2883584,16789272,5393152,3014656,3080236,33685550,1487617,402668288,65567,159,738209280,973090048,16908288,5782,538443835,1174405376,0,2883616,3801135,-1778318845,989855766,23468032,1263337473,536870912,754985984,50346496,378929410,3866624,17026072,39168,2883584,3080238,33685562,1485569,402664448,131074,36,738205696,973090048,16909056,5845,286785595,603980035,0,2883630,3801135,-1426062589,989855766,23009280,2359297,771751936,788540416,67123712,381944066,3866624,24,9216,2883584,2949166,33554490,1480192,-16765952,1766066701,1701079414,1702260512,1869375090,319425911,-1650680576,-1583309154,-1515936862,-1431787609,1095080576,-2138095218,1229276485,-1886500535,1335005840,1431654297,-1684367015,-1616994916,1431259457,-1482250843,-1886348672,-2138664562,-1953330807,-1886480244,-1936551536,-1651070567,-1684366952,-1616994916,-1767928954,1163215781,-2042543807,1162167619,1099778377,1162167695,1430865231,1431279701,1431674011,-1566465889,-1499093853,1788327,1396395328,1027423804,1381124927,495272257,522722975,506470184,505224980,517545638,516890284,514924209,83894064,84103250,370021920,-2045898995,-2029681148,-2046130424,-167410169,-151587082,-151587082]},{"sector":9,"length":512,"data":[-151587088,-151587082,-151587082,-151587082,-151587082,-118032650,-2305,-1,-185270273,-590081,-1,-1,-185273089,-2828,-1,-1,-1,-1,-1,-1,-151584769,-10,-1,-1,-1,-1,-1,-1,-184549377,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16777215,0,0,0,0,0,0,0,0,1259543808,1622412128,1619222604,1620402318,1626693788,1629053209,1629970713,-568424146,-1959866622,-821895650,108380170,-451507666,37539586,192157303,31621202,-451508178,-2133894654,-2043805214,-821893866,785383344,-821426526,619380916,1489961136,110046808,-90438370,922693200,976094494,1997401358,-337540377,641347079,-596177426,1951530112,1660715169,-58680204,-2137951152,-1737214980,1952775296,16640186,2115931182,512306693,-880016004,117365646,-1070398769,-1593644381,-391970082,85893378,-1593473885,-2103245536,-1991223291,-1945821658,-1912266730,-1996300770,-1946145242,771764246,84739782,-1899262976,117882067,-1899262725]}]],[[{"sector":1,"length":512,"data":[-1996541221,-972881090,16974854,49823368,49692296,-472785782,1961102076,1509720086,-58704524,-2146666740,183870,112996725,-1557337334,113640166,-973012271,183814,47187654,-2102112001,-967300403,197638,-167213380,-16587514,-397408908,777534385,233807755,92020359,92151438,2081881910,-30475771,771936014,85989006,505842478,-1997763835,-1590820794,-1557265020,-1590819554,-1557265022,31982880,-1892757760,1476755462,1582979419,119496031,-2144927954,110046725,503711104,1381390165,777016145,92284671,506905902,-2128166139,16778063,117323467,-50658609,-400615906,1931411602,-1342000123,-953761023,-57786,374363678,56671775,75498632,21284673,12058682,718141443,1914658392,-952712447,839045638,788185856,85989004,505841966,-1139339771,-402257786,443744171,1948778728,118359573,112845874,252362496,74821362,90540582,-100140793,-821101002,378418690,-1959918304,-83550682,-1943078197,772087830,85862025,-2034493682,1760036360,-388533505,-1142216728,1912669264,1299834883,-996773288,637876782,4409079,-955747200,839045638,650377472,-1991938364,-1945820114,-1023072762,-2113985048,-125340,-466480661,-402625048,333971483,374112767,-1980170239,-1070415100,920924867,-402468189,-5242877,431904451,1048589837,1946157814,113718794,5440210,-401794626,-1017249790,374558750,-769750241,-12801022,-1019606668,-964491916,-1376589053,1962933376,-735672316]},{"sector":2,"length":512,"data":[1962884098,47555075,1962884268,47292931,-1021355941,1397839390,-761061610,210681346,512424074,1017971431,973894911,-2046004029,65286880,-1963987984,-1978930233,-1393741108,41207610,-466421278,526276955,112835,-788085202,-1007091454,-872418584,-2130981896,175444476,57982986,-889199896,-58720254,-2131659760,24384252,922693327,-13758791,1343142710,-1947432107,-396554682,-655686105,-1329389810,-2143501313,1019937139,739014567,-1152180608,521015612,-887137321,-428506564,1019973808,1021276827,753956777,-1152180581,-487911123,-478698436,-546144196,1394507820,-351181637,1921006801,2007514322,511716558,294239059,870891755,1460580614,-233720641,-506372178,-1493177973,521540034,-1593788440,512426750,-1209531652,106727933,-1995981819,-1607072700,-1329396990,-1125547521,-2080935417,309819385,-294324726,-361442806,1997340288,-400615931,381878539,8054815,-1979874840,1284048468,-1010814460,-41877584,-2131201256,-210551559,1933377152,1694138606,1381099891,1488658198,440579,-1031024077,832038995,775341342,829155328,-1108845793,1543933745,1510379267,775341315,827844608,381927474,-402239201,-804847584,-773730079,-773729823,183423201,-1580102706,78709501,-523116334,-66712999,1398194946,-1190963013,-768409594,1122550411,918887985,384303150,1583030065,-1962714975,-1962714610,990075926,1946353670,-1422508588,10698099,1381062147,-1246113229,-772671739,-773795360,-1094153248,602410106]},{"sector":3,"length":512,"data":[1944703232,-926777084,2418688,-2101476943,1107980,50138760,-65632190,9627650,-1017226918,1001128116,737702608,-152354352,50204296,-1341931018,-33393380,209953472,-988989,-2118400374,-1036331252,-260898896,-1979720216,-788333546,-1192635927,-628423243,243982839,-511704322,209370627,-506343285,-1979690264,209895119,4843593,55167882,10719953,1347638787,-1190963013,-768409594,-397163893,-987877263,-402641354,1528770629,-1892640792,503535622,3028677,523252968,10575451,-1177406717,1077936135,378073591,-1070464254,-486492989,-805065477,381942754,1411287839,1376684803,209232131,-1979981336,1284047452,-1023112956,44933174,906044611,-1023234654,74776380,-13444982,1599211294,-8184042,189166847,-1962117669,-1962715594,1284177500,-400430083,477298695,-2115435856,253148924,1979661484,-1966868222,-667177528,-315426700,-320081661,-212341454,-1943642204,2078807117,39619067,1273611147,-3020548,45089907,914999531,-320142506,-1031135466,1917422312,454289432,-143469689,1340662834,106203643,-1996206967,76087900,-401624893,-4654025,921168895,47849099,-603026634,-80943102,-1996333943,918753356,47847049,-601977802,-1607023870,-1966931228,-390005054,74598692,48538166,4694070,1763523,-400571354,1552546554,272927746,714947,394864378,39816230,-617364485,-661994610,-472783919,1008670403,1946907137,1912814607,-1340705776,378192895,132842159,45029000]},{"sector":4,"length":512,"data":[-385895741,1418328762,521585414,-1006447967,-1962748354,-1979526114,-402468562,2089417378,272927754,-1996333943,1810433100,884336891,-91428778,-1022868337,521535666,-1394031990,1913630792,439609374,646510450,817825072,-387698171,1284110954,106727684,-1945994103,-373092788,1474886483,38062074,1418461903,1273545488,38062074,1418461222,11715344,-1031135466,1917347560,977191971,1173825029,1971322947,40167447,-398801944,208798310,-1980097048,1150026348,-1010814450,381943728,-385896417,585630278,-17602,2104969,1973897,3684037,-1994326088,885326916,158659387,-989576055,1978874676,35973358,-1191182408,801968416,-2080535613,-1414724921,-22228853,-1057051960,27845682,-989985163,-152311600,-1968520054,-1431525928,-1414662006,-355269199,-1950219448,-137219126,1204325361,648848711,-1391049080,652736170,-1425652221,-1993948925,723913542,-654897850,-388772982,1183393344,1187456525,637534236,-14793017,-970013697,-16560122,-568422866,183195138,-1896260120,922686556,-1030881278,-24381901,-218070855,116797093,1962869584,857673291,1358299,1172105222,628293552,88471334,494211072,40208934,-2131696512,292843772,87441033,87557772,-401146648,-1977203299,-2010773755,-498919353,-568423477,512304642,109838358,-611450146,1342621230,861405187,-1898344759,8961730,-1191179585,-1510801402,172838,-12729813,-1207732721,271388671,834304,78764075,-628170541,-1996487005]},{"sector":5,"length":512,"data":[-956299234,-855638010,84330016,113744384,567083088,5375686,872859595,-1946150912,-956287458,335557126,939968256,-939524352,-16762362,1465304063,870886480,868411392,-1977163638,669533957,867624960,74833978,-445267958,-1017225384,334015568,866314240,1975519914,1354979572,-1073042772,-1017578891,24338748,2004499651,-1008729086,-4632489,-222285057,1490155438,132694879,-1251328,-1023409688,119473694,918812551,84739830,1375172095,470715190,1359536896,-18691789,1509483097,-326412861,106859347,941591086,393413726,839147146,1139003903,772169219,1586044811,-2091033850,1539507396,442973,977191982,-31995,-148502156,-2147466427,-171769483,1173825219,-1015021563,-2147370813,-1017632051,-2130593597,-1017632051,-2147305277,-1017632051,-2130528061,-1017632051,-1998039522,907244851,168181376,-1274710784,705423365,718111924,-466425621,1579811048,-225721569,1948531884,42985720,-796068117,-225722226,179170610,-1964608320,989694684,-2147125565,41159992,-796205686,-1482672566,-1465764351,-1447078399,780678657,-41286380,-1679231606,1963605247,-7018493,-109836740,-1291437514,1011053585,1010201727,1009939464,1016107031,1016107029,1009939469,910455818,296879674,-231052428,-22406797,45541574,339640374,-1049296891,-1116472518,-339214778,-1335759944,33810439,233418731,-85415175,1971871489,516357887,-1106829562,-829816407,-389831437,-1846869693,-1921714678,-352306200,3598583]},{"sector":6,"length":512,"data":[376763914,-12219866,242364476,-311019204,1631330316,2050753650,1760158582,-396578561,-396492363,-1607073521,568852904,-12982014,-385874968,-167051441,1357386100,92939776,124985404,326371644,905987560,85212800,177960192,-23628545,1472417487,-829751985,-1286397776,-1374756089,-2144990858,1946747261,-489947639,506083058,-567672408,-511653118,1599863815,132695412,-335814144,1338965694,1122502832,-400510975,145752381,906049769,-384715872,-880083188,132894506,-352307992,906080514,85198534,1962031616,1962621455,-391468021,-939654740,-404568322,989771497,-17206021,-1393998137,518398,-117247741,-385965335,976682550,1964094214,-30611450,-1970266389,1959733963,343165207,1460084230,-230162805,1963417518,47314439,-1009833269,-26089123,-1092075344,106389248,-20715490,-1973549281,-17045026,337049142,-27924219,2112428720,-401755906,179306653,-1979672343,1979661506,1053046338,-617413346,1914505960,-402541378,192227301,640757736,1075203456,650362930,-1089051264,1395728360,-387392717,-294495460,-1024982604,-1274645209,-349516412,-387697945,1405298613,-402652741,460463307,-2130355061,-2122284829,1962967291,1556422160,71824903,91496208,1542990285,518339,-1528235797,1358262812,-840432661,-402410448,-160159879,-402475944,-1007147151,1358777832,1476396264,1019382467,1012888096,906327167,27723518,-29993442,906145286,44967552,1342534915,1479586536,1593806056,116799007]},{"sector":7,"length":512,"data":[1962869420,1444828111,-402652741,611458123,-150643573,1971323075,-2134640869,-1156221952,887619588,-150113764,134219076,-969537164,175110,-352287767,222072958,138158196,154937460,-1607033227,-133430873,-1974347530,-486492728,-400510969,-102563971,-969489575,108294,-369132055,-29950099,-385767666,540868466,154988915,-1336873612,-11016098,-398455720,-389808303,62599199,466216960,65795186,-1271925784,648013825,-466422156,-1020880664,244563,-1152187157,-1031143420,804644944,-397009320,526319352,-387398821,1946202159,-1006695176,-617393584,1914407656,-402344955,1482303077,20766858,104600436,121376628,138152820,171706228,11535220,82442947,85256435,-1996167960,1418207556,243041059,-2013039808,-1444338572,56672244,1916948968,-400615927,41028980,-1729499925,82372852,503537855,1111025750,-294510754,521557534,1578152168,-1948028385,-1949856813,-620032420,-2135227531,-1946645760,-137219134,-947171085,-896797705,84337498,-763166719,558139648,170087560,-2001636106,-1393875852,-1746354126,-1979485180,-1573454012,15205638,-387223036,141904358,84320310,71665702,638862475,-1961933431,-1993992636,1149963589,1166616080,306481937,323324198,88965414,521551872,-1005272600,-1677380034,-16386266,1342666239,-622309968,1939691522,1946565793,-385699683,870904803,76173828,-1089419645,889127904,76043806,2011747979,-1893769663,443701764,1245088566,914961925,1623131468]},{"sector":8,"length":512,"data":[1096869891,300419186,-385650162,-1007946840,910083126,-86120443,-1960437388,1149836613,643237402,-1994818108,1150033020,-1291362530,-397481088,57952566,646988523,-2147138057,640120064,-1994570357,-1977213628,1149771589,1166747167,457476363,-1960443725,-1071381179,38079014,-350600056,-1960407016,1149830981,1166747162,474253577,-555007821,-2078343370,1166747136,171910149,423921859,922371469,4195883,-201968205,907560072,1073746081,356878630,364578421,387072,1090358,-2147436349,-1003596026,637550654,-1929097845,690357885,637761281,-947715703,1609818677,25765383,312553155,-1993981952,108336965,-402647109,-1557200949,-389873646,-1959857729,855655470,16614336,-1152560524,-208928769,1077855278,1300964864,108891396,4031270,-2094659980,91619133,1793849227,1173825168,1971322885,1212475397,-1960439692,-801433771,-751105934,-628423565,-947652725,-2083659211,141885438,-352237683,1894513068,-1946157125,1053044467,-1960443840,2106393677,1173825030,1971322885,1208281093,958793332,208803653,358431014,-141883789,358452006,-499791997,-97316,-24394892,910068014,109850117,-148503240,-2147482299,-806877835,370701383,910083103,1032005125,-401837056,-277671222,-344717764,839248889,15198400,787536872,87441092,-1329397390,1149944611,1954588697,1201203228,12061045,170904849,772568256,-2147293535,57938172,-117323032,1199368387,-152507019,653619966,33703367,-1740692352]},{"sector":9,"length":512,"data":[-1975517171,-376825268,180413824,266436805,38635558,88443174,48800046,826640678,1460033054,-423688426,571652,1072213062,-102585608,113647382,-401210106,123675004,426909534,92112934,71681574,918892032,-1993997006,-1943664779,-339539619,1166747278,4138245,-1343728098,1971922493,1569465863,1914658313,491031526,491096358,639321227,638272905,-1977924215,-2010767548,-14278843,24415493,-1189053043,-391380981,-492111918,1472461049,-218090055,-953786454,637534213,1394119,1170679296,-1006633193,1077855278,1161307648,-1287359996,-1914440139,-134019459,48800046,826620198,-2094648971,729022525,-1474739062,1346532480,-1069760476,773748056,8920831,116069746,190659366,1059327349,90540582,977265792,-105876256,440699843,491076390,1150023029,1161504284,-1947437799,992353860,-478864571,1967171779,492604223,492649254,1552602485,1564091935,-1966312161,-1977214372,-80607875,1975576448,1563567806,266567682,1448588661,-1927250547,196673908,1587999488,-1952156321,-1930749092,639261835,1963416891,475827094,157104934,2112458101,-1974251265,870848580,777542655,87441033,939953198,-401640699,770240275,-285546242,47358254,-1003584910,772093502,48772863,826642214,2341059,-150550994,-1003616254,-1090182098,-812974079,190221094,-114547736,558140355,-2094836597,41042171,-1966868942,1418403908,-773795828,-1965502230,852921058,1381024758,2133117067,-2145368952,-506363679]}],[{"sector":1,"length":512,"data":[-980757807,1149887114,-1017619956,1015083659,-2096925185,-231012410,240946115,-126493941,-1996455749,1438846556,-326898549,-330921964,16729798,-151005720,1963519046,112899,-386052471,-790036583,-144799233,49039094,2095580020,-112817665,-386181495,1183580052,-1947994117,-112817160,-687610889,-1980545399,1183577430,-1981548547,53932358,-2096965114,427032786,50284230,47882550,24500471,-137219256,-45708813,1183441911,-1982123023,1580855134,-167348751,1963130694,-19797916,82317171,-314128401,1187381248,-555154945,272927488,289769766,638731403,-1961671287,1452012358,1166616309,1434920469,1317753367,966115313,82593526,448725877,1444828475,-671146218,1918705502,-280065607,653988328,639059343,-1995356789,-1960439740,1149834053,-280589550,1995952691,-314144265,-2080815615,989920086,309656902,82593526,-148502411,8389957,1187382389,-771030529,1183000180,1451426297,1190527227,410256620,-957528321,-1962672314,-903088306,-1003044814,50518590,-1426854018,-1946462581,1190590790,108266220,149702390,2045248372,-330893570,-1995475960,1418207556,243041059,-2013039808,1190536308,192218348,-268965858,340035871,-166308727,1946741830,-313619703,-1980951064,1183450188,1575324671,178371,506678457,-1085255342,-1612184736,1515804731,-385649889,1005121003,-82319106,-953800078,-2147483067,-1957472738,-14739727,526277590,910083126,1343779589,-1360506192,71129340,1023767552,91553828]},{"sector":2,"length":512,"data":[-38672304,650439512,65537535,-87693062,88471334,158662784,-790100854,-2000617926,239388420,-1960443776,1149832517,1166747158,340035855,289770278,638600329,-1995225717,-1070394812,906773641,4210372,73763366,1947747386,1676169223,158554364,-1002782466,-1070403979,407144643,906362662,637538465,370492809,910083103,234825221,-1337778200,-65017789,-1195778837,-390057166,57998718,-369146742,179371813,-1325560599,-41424626,-2098658128,-385830659,112262525,-1325565719,-42735358,1041664310,512505349,-225770176,1979661440,130450179,118895871,-402431809,74660498,-320738981,922689302,922682074,113705692,73401050,47980172,-1895043608,-1895638010,1929566726,-638887165,-1006346050,-167428546,-16447738,-947715212,-620078329,512362101,-1006763292,1203996332,-218101063,-1430026587,47857348,84346614,-1341229825,-1057051905,-218102343,84451498,-1430025558,-218099527,-328275547,1041664310,512505349,-969538240,329734,117884470,118882309,-1962647361,-12812046,-964489867,-1573475322,-30014200,-1408956658,340036176,702890,521577971,47855359,47986431,47843015,512492640,-353893668,-603549941,-637104382,-385650174,1053097814,116786494,1962870023,130515715,495461979,-1947468055,243807986,1623131400,973400067,61867379,384553961,-633929953,-600375550,-637090046,-1945870334,-402465762,110037750,110035676,41091802,1623120619,-633420796,1423618,-1974033165]},{"sector":3,"length":512,"data":[-2086007996,-1515907386,-1515895226,3532894,384533993,73449223,-633944778,1423618,521577715,47855359,47986431,47843015,512492640,1256719068,-603549941,-637104382,-340823294,571819,-2144951053,1965096829,-2092871929,-227407623,538983553,2088765045,309600258,-1180029264,-1527578621,-8552410,1325626656,-1070336277,2145960874,-389903630,141768788,-1326285336,-350820081,-986819042,-150652362,-2147466428,-970063755,194566,-402431809,1460018082,123674462,-964438414,1333003008,1968979072,-1427618303,-390057231,-739642814,-1960946966,56672242,956622935,520516447,-352079782,1048590000,1979647253,839325202,945350848,1239945074,-33262351,536013760,-351227814,-1101389858,2145990852,56672000,-1075252597,-1341885640,-2132219133,-16444098,1053095285,-8190662,-387156737,-378401417,87703236,1128658726,628367360,-397322490,2089544074,240946694,-2029821762,1472213751,1580764648,87703236,1229309734,1599733759,-1960897017,1359301174,-2081346584,2002338809,1173825190,1971322947,1300833800,977192009,-252712955,468303922,934788842,1443061951,1072231051,91446840,300483504,1048590058,1979647253,-14739725,-336629034,383683801,1996700703,901310578,112199027,1021964265,1011380994,1166681600,169767941,-1341688586,-370545907,-2136473319,113703284,-2147220783,-2010742582,-1142356651,-788085015,-466484734,225738920,47253190,2110006788,1703552519,-388986107,1418324166,651946758]},{"sector":4,"length":512,"data":[-2147138057,-385649408,113639641,637797073,839351748,25029083,-33458711,1019805384,1022719491,-1273007354,1946430465,1342419970,1477453544,1978205043,452978943,-5185398,-1057095051,125089771,158664492,-385819927,-1897332583,1976106496,8710403,1869924606,192203006,510970110,-428408260,-402532631,1953641714,345591,-966232704,67293446,125682726,113643499,-2147351855,1400178941,1963038184,1173825102,1946173444,-967375290,386081798,52823750,622757907,825133059,839813123,859212035,893290755,924223747,959875331,52738819,526255894,906036457,1838729,192205323,437684534,-390534912,-1342137367,-390403839,-385956887,-210435782,71694118,-344717312,637978166,229641987,-1556683894,-1070398684,52929334,-141877498,616236822,-397009405,526261193,52928822,-1325268955,-337063159,-389838156,1232221631,637585128,-1979427445,1053046488,-148503238,-2147466427,-897514380,521539584,-2147262274,478691779,973161671,50378752,1932185080,13271300,1173825026,1947205699,13271300,-414390144,-351906679,-384847698,-471275484,-1341885645,653585158,-351971957,-11277852,1962972648,1173825272,1950351364,-20381968,-972589880,201532934,113640939,-1341979866,-1545369066,-1070398684,-1576851549,243860273,378078006,914948914,520487732,118945675,-402447173,-147449075,206598,906392960,-352110943,1049310866,-410975449,-947191553,774228456,-352136543,-1014345588,1916071656]},{"sector":5,"length":512,"data":[-958713307,50516230,87703236,1128658726,-1004109824,225789309,47253190,1569334786,2110006785,-1017579502,1929367272,-1000929777,637876798,4408823,-1022926976,-12981928,-335634199,-2037600,-148441483,4195397,-922816908,113641332,-350747866,637978117,229644035,614720394,-1547685117,520487719,118945675,503522491,443017302,-147447970,206598,918320512,-385669728,1340663562,-1207536658,801968403,168216259,1541931013,403097582,-1947926523,-1408939466,-76169206,-2130383229,1965959740,41713670,-2095090646,-24704530,1069025046,309567,477474803,1034813063,343228206,1061109165,144707189,1008673797,-972720865,334086,49809094,346023937,208999283,141871370,-117439816,-1007812120,-352320584,-2146667018,334142,95946100,183036672,-2131265308,17107470,421956126,1950270725,116798981,1963001094,189265417,520320001,1961371371,520319744,1300242155,663240709,-2145444725,268765710,1912798083,1580934667,-402295027,1265770313,86257348,1913890280,317057090,784641395,-1977219804,1659371590,-164597207,268765702,116793972,1946682630,1460031511,87703236,-2145023450,646463980,-1041757689,1476878117,-1007853080,84543222,-385649407,1642725198,1347886847,118904403,1245612854,921930501,91627150,-1014767733,-323950590,-386333879,-397986339,1532951151,521557587,9445119,87563916,87426759,-466483503,-1004821016,637875774,268584391,96937472,-1561853951]},{"sector":6,"length":512,"data":[-1005751749,637875774,1479,-130314264,86257348,1599626078,-1008155873,-1207536660,801968401,-788085053,915079682,1049298250,76154188,537732490,1959016992,1161221,922731513,922682076,512492250,113705692,92668634,84608710,-324999168,1929674216,1195285,45613941,110098688,110035674,-1880620324,95994860,188645376,-378208251,-964430965,-14030822,548930931,-1948521728,-1996141514,-955954634,-16429562,403097599,-387580155,594678509,-469105548,95957113,1352464640,-402320992,-2141706207,194110,-342031499,62412965,1973349120,-163676149,74776578,108382474,-117439560,118918379,-1106971969,196674790,-1583025408,-6093480,-1157163516,-423688805,83017220,-1409283143,41238332,1135216522,113702370,-971635450,-16443386,1930732520,-14775403,607044612,303818757,-437745550,-2138868976,194110,-6215051,-1794753788,-1605143547,279446950,111286901,941526021,114408965,87438985,33703111,-389467392,57874636,1409241065,87441092,1530542056,91504324,88965158,-2080666816,-1497494585,1423621,1323869427,-1958186496,1980141307,-1427787771,1055396843,-1959235072,1980141307,82230789,-218100807,1950256036,1300243973,-2017574907,-347281403,85460678,68675584,2005733746,-34478054,548931187,-18159360,-117496087,-1946229783,-1006267106,-402316242,24318309,330950851,-402287711,-389869271,108260086,-854519880,132694831,-133773589,-1863843582,1964208913]},{"sector":7,"length":512,"data":[1959332364,178184,-352786183,243907,-469043477,-1910575240,-1962576354,-1948568589,374115323,840455307,189041380,108335272,-1961067381,-132178340,-659959829,-971737857,16961798,47515334,-737753593,95945730,-389809920,141814410,286177360,-1017434163,1357552104,49809094,287434753,-346356877,2044988046,-1947707386,1489300458,1945973480,2144261,1053040107,-2144991884,651692903,638273288,1074089344,-402320992,57878077,-402652488,784591454,87441092,1978287848,363784195,-1023017178,-2136415182,145230965,145752692,1353195532,95947380,-788085248,1055588610,87441092,976667654,-97531,1342638453,-854517576,650337071,4408567,141821824,286767184,-1017434163,38633766,-135790590,385411305,113643123,-385938937,-558110222,-1007036655,-1476065120,-1005095928,637876798,-327146102,119965761,-372447222,-400413720,45672910,910083072,-1809907963,-373233664,-1275014423,-9508607,49809094,16443392,-993853069,839202366,1166550756,918816258,-24967878,118060543,286701648,-1017434163,1128593190,1946648576,381177864,1529859345,-378214205,1930429160,168588568,-1207405367,-386334718,-1195120278,-152371197,-352320072,184120561,-1908377372,637892102,-1475655798,-1461095160,506491905,909559126,38570757,-2147433993,-779482507,-2131697024,158691578,-990847,-352170871,266436620,1946220928,-350265852,-400597321,243996582,-397344742,1935226749,-392173550,1053095138]},{"sector":8,"length":512,"data":[736625974,-387484928,-1195120390,1053032451,520029494,-337117036,910083304,339929093,38139686,-495681536,637722273,-1020181111,38139686,209027072,38636070,-2131697280,91554041,1932997096,2144486,161661945,-662023419,-2131696768,-16446146,-75496075,-2147126160,225919227,-478095222,50036751,-128253065,833731,-389809829,108259426,-854520648,113689391,-402521391,-840374162,-1153338848,1458044930,-986090977,-1979354058,521539684,223251238,508988198,1962932867,1926314756,1238512419,1914647784,1107391767,1274405443,1183458891,650182148,637685387,-132229495,-1008194072,-387196533,87703236,1979711363,286898182,650325965,4408823,-1207536512,801968411,-402593597,49809094,243918849,208999283,141871370,-117435720,-1008209432,-352320584,2044988150,-200882422,-16777470,-1006302458,-1962747330,-1408939466,-995475412,1191369278,-1543182658,-8552410,637891845,-436255290,-218101063,84320420,-190754646,1486990082,-947672315,-469084156,1048777592,1979647348,1170679304,-335544328,1981714075,-1175221499,-1527578592,-386392298,-993794174,637721150,-2136472182,481822324,-1020277487,47253190,-413079550,87688903,244057237,1074005308,1915519976,977191990,1841571333,-539498427,4622886,-955969118,333830,-133773595,918880514,380371674,82231047,-218100807,-1573475164,195888390,-385648192,-1387200730,521590923,86257348,1930251496,-336898045,1477418728,1913458920]},{"sector":9,"length":512,"data":[206432482,-466428558,922691817,48105102,839813926,1373211392,823912523,385278553,287160351,520040397,-1003093908,637550654,-486257269,108891415,48800054,826620198,-953809547,-2097151995,-253610553,-397157581,1935354668,-2094611711,427032637,48800054,826620198,-1590292619,958792426,91565893,378662,-689224960,87441092,90016550,-2147433481,112723572,-1020277487,-387551768,-1830289149,1344214528,889382995,-145729445,1962983619,9234545,1802634672,1955419735,-438245344,-401868568,1600054746,-24441996,521537310,-352145159,1837770318,71600651,84320822,1963906792,1300244197,1149968395,1166616075,289704730,474319142,638796939,-1960950391,-1993994428,1149966405,1166616077,1333798422,1444823045,295706390,567011333,95422303,-386399886,-1671884465,637760841,-538440311,-1664901659,1208322854,642253173,-1013119609,47253190,643237378,1377654155,1511918056,-1070455438,49743558,551610392,526260594,1950270518,1300243973,-544537595,-1341096563,526710304,1606678531,1053082375,-1960442570,-1007221411,-243990336,-2147433481,129500788,-1020277487,-387616280,-4718585,-16062209,-1060898877,-134646528,1967128771,-397192973,-1993941015,-1993994427,-1070396075,9707263,-389851045,343139622,-854522952,95994671,1005123840,938001381,-79500827,-1931138584,-955959274,-536529402,319211267,-1342177276,303622160,54386802,-992775168,-989518802,721777726,1979668215,-14739962]}]],[[{"sector":1,"length":512,"data":[855988278,89695168,1913736936,184543328,1053055858,-2144991884,-2092956339,783814855,1477872416,297068549,1512976056,-1005474328,-972741586,402847494,-390057382,1450319858,89659019,91504325,67456384,-1980300450,-1982713068,1418265172,88965124,639571520,-402635126,95953013,-459741184,-1000711485,-972741586,402847494,-1276592078,-988319201,-2147126210,1577321805,-293341437,-452671974,-369113368,-346095828,-465245958,95946355,-1020277487,-958114328,194566,84412102,182052886,1912603576,-1959103225,-133867506,-1008451096,1944328680,285325318,-389861427,113697834,-973077768,369428486,1913302760,-1961724660,184899646,-351439361,243720,1493095145,-20256424,91504325,-11280597,521537141,-423688426,-1187008508,-1426915317,-391462862,-202896253,-1898417655,-1962576354,775794163,-2083752672,1034755782,-1015730642,113712918,131828,1913246184,101107382,-521660923,-2136182008,194110,784639349,512427300,1323828568,1519940117,49743558,-390057448,-1938678070,91504325,67456384,-958463141,-521542393,50775806,113442819,50775639,1053032707,1049167158,109839736,123667834,910083267,1166681605,1007625218,-385649407,-202898120,-401874173,141878087,-854521672,-1007107281,88471334,259326080,47253190,-483071998,-402340888,-960240842,67293446,90016294,47857348,1950401526,79951367,-1070463628,-167722775,141893827,1946272758,15329609,-544530682,-796147661]},{"sector":2,"length":512,"data":[504300776,909559094,248834053,-2034968693,155093814,13104899,-400984960,-91547722,276086794,57934652,1607461663,910083126,78178565,922389343,51920387,-1064523029,-544483186,-1031024077,112977,1494137064,909559094,125093125,-401230616,-1269363067,1049310854,-940113143,393510912,1595368936,403097398,1006633219,1021146113,850228227,1595075520,406750006,527761667,512636446,92930838,117388831,-952761580,198918,440157952,222037364,-348082464,1017818143,-972851955,171706884,125170656,384366131,369167589,-21895137,2242185,1049173782,158664016,87441092,90538022,81455295,-23336765,2242187,-1049233909,36257408,-955878272,-2147342074,1460031999,-402511430,123724360,36421209,1964653696,-1441091424,-401952689,-164371263,1053075947,-1977219786,254018117,57999420,637776873,148983,638022784,17057270,1609100917,-508172286,163055220,-1020277487,88471334,1416953984,47253190,-509286398,-402354456,868475302,232188096,918894110,1944585526,-1260942579,1049310855,-940113143,343179264,-1961470488,1958742746,1946369035,-739565821,-23336616,413212504,910083075,-389510395,-1950153666,9562577,47253190,1300243972,-1977204731,-1070398115,-1977688093,-635517501,872123138,1948297426,-1466373374,-1469025022,-1949272828,440369346,-1185821836,1575485441,-986294003,-989514186,652740468,217573396,914863191,50937483,-2147432457,-672655756,-952738027]},{"sector":3,"length":512,"data":[16979974,1946237952,1958742749,-31725300,1048786527,1946157848,-13221348,1191384070,512636446,1031799574,158605082,151439158,-503316477,532843441,520051433,1055399702,-208986115,440183889,-1964505740,1492574947,-400572117,1021967651,116799231,1979646723,102700562,620554327,-963901838,-141828466,-2084370593,-378076677,2016855350,868481029,1480491986,74776581,-1878135918,572969098,-1977220010,-388823730,84809352,-494221173,89527947,-696200190,1411287808,1847494917,-400956667,-965601479,568909703,-503155945,1847495154,-1965585659,287566044,49743558,-390057448,-1502471334,918902302,1283458420,526255109,113653443,-1961360649,1317676793,1183458824,-1964756465,1347506924,652791691,1952012288,-489684192,-812950799,1946163432,113653459,-402651888,20709479,54324852,-117344776,1371757251,375818790,21400102,-756545965,-1876301045,1962940392,-969489663,17108998,1006648040,1022194689,24508419,642892793,639002250,1392592522,198895622,505403788,309773630,-1911850776,911935449,51908235,-137417889,161560281,-2147440381,1963932867,911613459,52180677,-669086666,914961922,526254806,-1022076952,125158694,639536182,-1994451451,-1962597322,-1996301794,-972730338,331526,356879142,391482150,90314377,637886627,-2147138057,104232320,86257348,6195750,85008008,39750438,913560379,1520694263,1578535173,651201285,-1576778206,-1047853810,89033254,378137299]},{"sector":4,"length":512,"data":[-1962474156,63015880,1929566726,47882508,24500471,-473396408,856146692,-1007133751,-1962582367,1958743001,1177232910,735639298,50623448,-1545915453,-1014299292,-148450765,1755513462,1712752901,1679166213,1037071621,-881524735,38177574,-1996134749,-1023055850,84936390,1173825024,1971322882,-1977200370,-511704499,16351472,-402295463,-546100024,565758259,-960235264,17108998,-1960388629,-1960439483,103486301,505087328,812778850,-1073018251,-1053087116,-930413965,71693862,-399805176,108211323,1946133992,784647151,1541932324,1410239487,228517893,359975179,-385763863,-504823609,1532582144,-919396586,-117439048,1377208771,1411287301,1681818373,91488261,1913514728,1748927459,-747372539,1913543656,252102353,378142981,243991822,512427368,1994917204,1472295438,113660752,-1908931849,1375919134,-35592111,-1452123557,-1977165309,333971526,88965144,71645728,1429815669,960262662,930285149,1074087414,1347956340,1428902487,-1948584186,-1946645513,1317742274,65140482,276073976,906422737,47974030,24356339,1599735716,4622886,-401082648,-1317726241,1499012886,-401677477,645076044,117375154,2045314386,90612223,376750091,-402299741,242355636,90048199,753401856,-385649907,1053097762,243991862,237700432,-148503846,8389957,1419841141,1166616069,89301275,423987494,19270115,-2094656179,-134211755,1173759683,57935876,1358995689,58050827,-385876039,1935223603]},{"sector":5,"length":512,"data":[-24909815,-373038221,-2128215658,-1078000283,86257348,-1577186840,378209632,-404552350,-763117309,1586177536,1943223042,-1946945701,1976699864,-1977202687,-388823730,-1006218672,637875774,638666123,118707595,41350950,-770979701,-1556086412,-1070398116,-1559924573,727188850,1950118617,-1815442643,40302374,-628899541,-2084371712,552272082,166250635,-401743092,141757818,1053083955,-1007155914,-376419861,-1037369081,-768407178,-1996132189,1476751894,89394827,1913372648,1411287526,1377208581,1958882053,1371661090,1072220299,-999139315,378259595,1229063506,-1175976588,-1983876597,-1996139490,-2096803306,353342,512428404,820512084,-1582796276,-1073019544,100757108,1709704538,-963087860,17108742,84809354,89398923,90705547,1913422056,1380996994,1183458899,64588544,372041946,537218432,1963214138,106248466,1564020082,-955747578,553583685,-401195288,-529197529,-1909040549,906157086,49743558,-68622280,521558873,149112690,117375154,-1393883822,184903329,-1559006016,-236452508,-953257461,351750,195160064,1053041522,1889600822,1913555717,1975520005,638575362,638665985,-1206694639,520028161,568918164,-46339586,-905197429,19745140,14320384,41350950,89033254,-930354989,1913303016,-400104480,510790718,87441092,637886625,-1592703607,-1993996958,45617989,-1809907968,-372690176,-1544946182,-17666,1913437928,869657550,1053034203,-1993997002,-1993991843,-2027545763]},{"sector":6,"length":512,"data":[185011037,-402295589,-546173795,-1998014741,84320259,138190372,1374159733,15525889,-2014772365,512630272,663356790,745858058,421935670,-165317627,1946684231,117323269,-695466730,-208943474,-402331969,678690913,607044639,6744069,1357630323,-200373473,1779317506,-1996197115,973433358,1946491174,1812892128,887879941,-1977668470,-2147154394,1955438308,147191311,-990508684,853570568,-2146309148,-680261380,1946358504,403109383,-881524987,86257348,6720038,-1178401002,-1494024181,-2144991372,1950351229,-190725131,1812347650,1076196357,991977357,-1977650470,-33223138,303971011,-1961332219,-402297314,141758716,1912798083,-1876628733,-190594055,-2000422910,-1559949794,-987888908,-1962576834,524420693,872007144,-1876497445,-1560087391,95486708,-796147501,-2113937371,637542370,-2147328373,-201858845,-397157749,1918630225,1947634625,281182981,52877827,197329494,-1993640741,637884446,-33274230,85107392,278653014,-1017249165,89407113,-617426037,84811400,1577748712,89527945,-1070349320,-1576707933,-1555561202,-1960442540,-1960441018,-1037365162,-1996156254,-133868010,403097539,-958070779,33739014,91489991,1049362431,2105607498,1952201217,63406906,2028533643,-1607568896,111281416,-788085243,118882562,-1962613058,-1962587586,571863,540846764,-678755724,-91490590,-402651706,-1057095108,-1946227773,-2096804298,58064894,-972851827,369427974,87703236,654311352,-1958126197]},{"sector":7,"length":512,"data":[990203446,990147824,-1961986600,-1929033162,784597876,1105921316,607044752,-14686203,1189806962,-104254832,-1929933885,-1077440809,163120358,194111488,242495036,1946928104,1958742535,-303912443,-1048329223,-215961598,-1898935126,23259352,-15537981,1962949760,84451337,839190178,1443283940,244055691,1048773976,1962870094,1312701198,-1006078715,637876798,-1941353079,-1077899568,548930790,-1414813152,-1079268437,-466483994,1949187244,1958742546,1952201764,1967078432,30179331,-1075188822,179045614,1007580352,1007318108,-2147257025,-341179956,-863351059,1602275712,1979136775,10414339,168069718,-1979157056,-2012936130,100992574,-840431850,192022272,57982986,1577092073,1476311273,233328902,1594317309,-2115435661,1950270720,189265413,912749584,49823360,-1961790464,383356119,1031823135,1466070016,-644941173,-550824821,1347680043,1979666774,383421190,-33560545,-972393894,402847494,-471285710,1482578194,1594192731,518780811,-1946714648,50689086,1608451063,-1073085046,-1958273164,177400055,-169278603,-919449858,375330795,168135199,-1962642240,-32838665,-1973500992,183995140,84451520,-117111134,607044803,-1547685115,379716340,1789085701,91005701,-1607053117,-789183226,371508514,1465303896,922701905,1048577254,1963263206,-435763707,116843780,1963459846,4767266,279799,-1961790336,180782022,-1190861121,-1477246972,359985291,-24955707,-102664705,-644951668,82183823]},{"sector":8,"length":512,"data":[1583307096,512505539,2089420084,-1060143100,920643456,87176841,548986603,82755360,1085319851,-1178586198,-1410138102,-1076797208,-1416493828,-141841518,-1425722719,-1425722207,-423893110,-1010814460,-2081649835,2122909420,918894334,1988691258,-60912390,-136929816,-2147466428,-1981217932,919745024,49813126,-219674858,-25785387,-739762410,-2011228641,-1006438378,1426405950,1561252840,918905970,2088961338,1282801481,-13236458,990202422,192281206,922648203,88751753,383105256,137821983,-521644795,-1889837583,-2012919290,-989525986,259258998,976652598,512505349,-919403204,-956085112,-46780,976667958,1229752581,922386116,87703177,1007062070,266926085,-92355370,-1017256565,-24422825,-35126134,1175942408,538971565,1969579069,537701415,544568892,149350572,1444813429,-2146928152,1979252796,-400615931,526319244,-1962773665,-1007329289,922086393,53745292,839305014,906190339,53872327,-1556742143,1157038942,1971322885,88405870,1735655552,-1932703000,-1898738470,868454107,100434139,-880737163,512295936,-617413849,53550728,-1484071798,-472837659,300650379,-2013059909,-2013060058,-1912396242,21293274,658410294,13104899,-1943898752,-2133291312,108332541,-1576848992,646579038,-722074840,-402463616,-1590244136,-339541154,-387872233,20711942,-974649739,-10229300,673611830,-940835581,594863114,91540734,292867326,359989187,-401115905,1150222353,356814615,1829059]},{"sector":9,"length":512,"data":[-386721816,-389873592,-1998061551,-389477391,-1607073732,-294321314,918756016,51906191,919374568,47855359,-600375498,512505346,521536824,87438985,53743243,47976073,53612171,47845001,53874315,110039019,110035736,110035676,1038615258,654259916,1223164696,-351424308,-868095995,-2065166672,845772244,1173825252,637566981,1963425220,585689104,-1977198988,-1977220763,2110006797,1173825042,1946681348,-1960901053,-1090054409,-544537850,-1441943472,-1428126120,648732806,1479,2877520,58690342,-2147432457,1157044596,1954545668,-343493628,-1262384636,151054342,57999676,1489169240,-1010058264,-402164539,1150014502,547567110,512505347,-13237470,-1962729442,-1556740028,-13237472,-402448354,1472451598,78729297,118888112,-1442642241,-1974425000,-1070355775,147293099,-1428126120,-1957641082,-661869629,-1420273237,-2020496494,112943057,1364706051,906539344,44895746,1788987115,-49915,-1007156620,89669251,-117279488,1478396867,1960512261,91219973,28963442,76867584,378268274,-771029672,-957870731,-941788423,-16583674,1394011135,89398923,1527403496,512296050,-745863852,1458101042,1317676548,851574276,113660397,-1340603657,243591423,-1017576845,38701862,1950270470,1300243973,-2091449339,-1070395193,-1410078255,1604977011,88965158,1113130816,-190723102,-1007140862,309675,-215998280,280013483,180847530,87438987,-1425193845,-1425062773,866894475,-1012159552]}],[{"sector":1,"length":512,"data":[85460679,-967776769,194566,-402323294,-779421311,1935198347,-2147125993,108298490,-466484048,1053082617,-1070398154,-1873024007,61884532,84281078,171668760,169507053,1373599204,91621006,191859238,1963050486,-77993948,840922457,1357132480,-387610031,1053032754,1398146358,1931557096,1499355984,-351883176,95443373,28354795,-1957649173,7006401,-1331793064,-236403966,-151358721,268764678,1397814133,554166358,1935170398,1053053160,-970586764,-2144934649,-1002437299,637871150,-402635126,-346550751,910083252,-390057211,-2027498954,106385413,550430876,643762077,736626063,1499356114,-6363048,1397794674,-1159160746,1532927264,784647000,376636708,49692288,-243926784,1929267176,-133437204,250341234,-469056519,-2081881223,16508928,116847474,1946682630,373194759,-462094331,91621006,-423691381,375044,-1599822349,-1314257658,-205507835,-867178325,-1416451182,-1420312525,915123115,-2144991884,-1002437300,637871150,1342195338,-1000929709,637875774,-2147138057,505050368,605996371,1569269253,651922439,1527340425,-52238305,168298182,-402170111,-1041756847,1582848768,-2139955062,1053095050,-947714762,180367876,-1912112906,-1979353570,866782023,214338240,-987845824,-167110073,-986315400,-1425726458,-1423976308,-293362346,-1381653242,-1379365971,75101706,-930365389,-1416516719,-1414807501,477689354,440896427,915093163,1149961588,-1014256890,722519683,-165629498,65776369]},{"sector":2,"length":512,"data":[-1962424445,768499,375301363,516159519,91504325,1435176075,-108847354,640512514,1997360699,1407134503,-388396206,1935278713,-960275710,402847494,-202850254,-227386613,66098664,-1962576866,449217523,-1622096904,168312448,-972000256,657414,1053054726,82314550,-1643683844,-1006189736,637875774,639327627,186209675,723875035,50885578,651310026,118185355,1659376867,-1023315193,-388002989,1935345480,1121945349,-1007096606,-129351417,1410763715,236882437,-150551035,988297218,192473089,113699442,-1962867441,-1962586058,1678674942,-1980169467,-1006284738,637891646,134565248,51412365,-133865922,12060355,-4331520,-351861901,-1899787223,-1912415226,-771848229,-1543408663,906470899,91504325,722492813,175761651,41302822,-756546702,521598986,89825731,89826112,89916987,41353648,-402210766,-1166868617,47980174,24373713,128316324,1948173622,89096197,276270400,-141820373,887683979,1983587850,-402427390,385354381,116835103,1962870031,84844582,975618302,410387526,89398923,1929799656,108259348,1049169778,117376340,11535698,-133886302,1388575171,1183458899,-1967063548,-1950209312,47569,1913015528,-2134375881,-902102827,-997575821,1962621763,512314347,-785709740,650218322,-1962776841,50679862,89170886,-634693032,89267713,1566811,-1007100277,-117128061,717892547,-1999831327,-1962602970,1372056522,89033254,-489469366,52876042,-1017574570]},{"sector":3,"length":512,"data":[-388287661,1049167337,1918567726,-1957473806,1586177747,50037532,-953808521,138310,1124073915,224279334,-1024960649,1966043653,1586046706,29004316,100460544,-2094653326,1962876542,1325344260,-628649442,-404176245,-1827966459,-874327157,-385876038,1499137498,-1964466830,-392662523,-1821245395,-15999097,-1006203531,637875774,638279049,119233929,2122524355,-1837825508,-17829,1476401896,48808235,1405352192,-617392302,86906507,1594201576,868440922,88336594,-160106382,-397228149,1918502274,1976699885,2122524171,74776350,507969318,1950931083,84863193,-389819022,-93190887,-388002989,1935344896,-337671183,113653486,838861562,1963108562,96871940,146360064,-1828411392,74719408,-919340797,61975283,1946731510,871957252,-1851067447,-276583509,29619728,1944586612,13035520,-398064523,-1662517142,-2146011648,292895292,1983917126,-1712828409,41113619,1185611698,-1186509233,333971464,775716864,-1186592907,233308163,-1010660864,-1018234621,1979737832,1625837303,1965257216,116798988,1962869498,1965046809,1240195861,74787388,-1426899024,1967078570,30048477,548460779,-1018254605,6219948,-1018234252,-100219338,118882562,1459939007,-1189076808,-206962683,-1967115605,-396383536,-2143879283,-452663746,-969483915,84207110,1631366339,2050754162,539755127,512439891,772670294,1343379455,772929467,1476503767,1397801819,772929467,1526900951,1397801816,772929467,1527032023]},{"sector":4,"length":512,"data":[792511320,1547437686,-1017335613,918813556,47136384,-1023314943,508757585,369561174,1007076895,113640707,-955382982,212230,54180608,3290821,922265832,54331127,141820416,526303282,-1017575589,55025718,-227212484,1007076918,-969538557,369310214,1192134710,113718787,829,1275512630,-402652925,526317677,-380041381,272367793,54265204,-373096076,916193423,50595574,907310335,47056630,906786303,50607871,-1892276019,-1660746746,-10229565,-388287661,1918626727,-402541325,-831195519,-1099623620,1994974258,910945270,44832502,310099,1542162152,1460064882,-24443106,88471334,410257408,287750224,1935159245,113653263,1342177964,-854514504,283858991,-1405190090,91553794,-336108824,-145299453,-389871777,28639096,1962288360,-617393162,1542142696,-466424718,1022760168,1016886288,-1327532797,-817960957,382598888,54427679,57933827,-85444888,85989006,85862027,784550888,47122118,113651200,771752654,48244361,-98316808,48669486,992893084,1963122726,-425644537,-1038751486,-1459436413,-244056063,776732856,49874630,-1091900417,-1959915240,-1945031906,-1127182648,48760582,383904512,-971041273,134429702,54134470,1023854358,-1996488701,-1157411810,914948922,918881096,518520882,113716983,56492872,1275512622,-1023409917,909692032,49751688,470191158,780744197,-2125069030,-1946091545,6613213,-2120760482,-2097086489,175440127,1183458896]},{"sector":5,"length":512,"data":[-794675712,-1054124030,642961411,1510106871,-466429949,106314534,-989980046,274086694,-953808781,-57786,-989984021,190200614,-989986190,171369680,906301478,49751562,4622886,470191158,780744197,-1004141286,-980675978,-2097060376,58068223,905972927,47070848,-1341819904,-1873614077,572950838,906434053,88227459,504132863,918894166,80086342,-98607361,-838402506,251540994,-1909062961,637870102,85862027,-1993988915,637869606,85989004,-712063604,572951350,117323269,-969538865,183814,784611067,20710682,1047803506,1148519228,-150538698,1014237186,-30014544,906163718,47187654,1048786687,1979647298,1444856577,1117861456,918894085,76023110,-1021354408,-150538698,-797695998,-164178453,268629766,-873740684,1048583958,1946157827,-430053373,50661110,-961448449,33888006,-51789774,-2102125046,-969528627,-16579322,-854515016,-400379857,106546811,512439891,-611450146,989861537,991458499,1343518169,389972022,108266245,-401932824,-1892228443,235068934,-385896417,1726531978,-913512443,-84356120,47122118,-804862464,113704706,-1895824635,-1895491066,-1912267770,-1912414690,-1962921962,-402641370,-1557217032,1482163486,-234702760,922693200,-13761252,772086326,-821748063,233683024,990764333,1942457336,-2054541817,-466481699,47358766,-1916905896,-1039865843,-2128166050,267783550,-75430541,-2084368392,650377467,1997364795,12249126,1032527474,-1960440203]},{"sector":6,"length":512,"data":[-25096842,208801782,216792843,-271454255,-271454255,268429185,650321686,-14793017,-2001448705,-150550986,-4257790,-32446449,1979188028,-1017579263,1912633320,1949666267,78729484,-2124815661,-352317466,2122393108,1930425869,15106314,-1932816,855829263,-1980625930,918894133,1283458420,-2143928315,332606,-1082908906,-1588505776,512623912,-964491914,371492880,378228767,29230378,-390057472,1918370716,1950270739,88965125,281510720,2114135631,-133855230,1532567318,113689432,1342178579,-1957539501,267827651,223230246,-388955533,-1960393981,-108985778,1920270848,-494808949,-997588481,647555280,1225147907,-1957604784,-1094700336,1105723393,1515739395,918899570,2089616756,1006109456,-1976863295,-31517179,-1576725754,378078504,843187498,114368,1912805352,1949746468,276598021,521536906,-1090180702,1499071784,650130267,-166887807,-1962773745,1476503747,1532582595,-768359592,-1813253641,124634150,4622886,-402320990,2045296693,1460060928,1164821542,4622886,-402320990,1709752353,1913085696,859338216,-1977726784,838878990,1975854829,1053046341,-148504516,-2147466427,1460017013,1165870118,1594001128,638219527,1950958981,1166616068,1372029769,-1004544798,-133880786,1187456707,-2113929442,-973013017,402847494,295705268,-59185147,86257348,41222972,521585657,-1977217104,111346022,134661635,113705219,777,373721638,100864930,50772766,309773606,-219944953]},{"sector":7,"length":512,"data":[-1962467562,-150795970,1971323079,652489384,-1609079162,104334609,141888007,168232646,9300479,51652106,1592460153,-130190192,643106499,638742212,280311,1946639624,374808102,-150551009,-1006233598,-1945955010,117626886,47595145,-973074504,17108998,1610321896,1946369055,-9770730,3686085,1963214138,88471054,369652800,381941791,-977012449,-31939,-953751947,-57786,-2147436056,975177037,276104261,1074087414,-1913978252,-16497209,13494304,1962981096,2126849762,71694098,276111360,45817622,-47454208,1053145458,250283380,-986295034,-402638786,123535963,-947656078,512505360,521536278,51658377,-1977215312,111346022,134661635,113705475,777,373721638,100864930,1996432926,1996432916,50772754,-402186402,369619405,155093791,13104899,640054656,-988395894,637737014,1853127,-1011488768,339658038,1183458819,1720329736,-129660657,-1070457066,-26613309,943637814,-542093312,-989510368,-31939,911799925,3686085,-31805,1173813876,91561989,1476463696,-348273213,902039276,100665064,134122271,-1121589053,-108851772,-1941211905,906436293,3684037,1962968808,243873292,-1992949704,-352306642,-1948742636,-399194658,-176881553,-208938866,1820920969,-1948742654,-2093693474,-176816130,1065998478,637683596,-64057,38127398,-1108803585,75333820,-392071681,-389873663,119454915,943113526,3008512,-1993988236,1569465909,1049179650]},{"sector":8,"length":512,"data":[-1942618056,-1946142202,-975270952,1173556,-661719691,-63545,-16627769,-1132795649,1979136963,-1940762117,1002605785,-1017554230,748942899,1183458821,507430144,-32000,1429933172,973567238,41223237,-986286613,989870142,91555413,1946436922,-2093103791,-277479425,943637814,1431459328,12707846,1582980359,-466460046,738653750,511049477,-1190109811,1465253889,1962281810,-464132089,99287732,-1260096024,1583307264,1435056754,174950662,638338444,-1996470646,28836933,1962281728,1183458824,1720329736,138774799,922665704,91627148,538872886,1049179648,-1992948364,-134209986,-1262280938,943638015,2549760,71666256,-804898250,1477735426,-8176187,384464383,-163676129,24444930,-943457853,16712773,1698227691,989033476,973501664,1979188293,88471273,1357083712,-402360833,1918369803,-1075544058,1476674953,16758979,1006912903,-151685889,-260816700,-804898250,-991333374,1569524333,106269456,-1979167349,-1964166459,113653477,-166198537,1946682693,243283462,1461715703,1364721459,112976,-400666029,1512039358,1599690843,54985074,199746256,-117344769,-1070349473,-502888650,-1140791038,-2081649835,54270700,-969535882,16961798,-443874896,-1141708451,-294387140,-1929617783,1183383110,-96024837,-430536448,-1947705716,-1027675918,854216329,-370649664,-764257010,-1946663287,-390057256,124965311,1954595574,-385699830,179306703,-956249367,60998,15877831,-79235584]},{"sector":9,"length":512,"data":[-984058622,76282998,259375115,-568422858,2924802,200427145,-1908378432,-1174457408,-1070432257,-965366030,-1362922935,-1923615115,1577259357,-754667030,2145912555,1935220484,-1871385853,1183432846,-1946799118,-1197149186,-978649087,1317791350,379909098,1751327,101908410,53143582,1332872991,1265942539,1962940989,185005849,1979711251,-96025084,318743039,1952075069,1297759496,1709769588,319004929,-523041359,319227435,-151763319,1946352454,-58801109,-1996125402,-1960383418,1183384133,-1334383626,-1341986040,-128021749,-402465048,1431355966,1561095400,-19207848,-17584,65333278,268785695,301695744,-1019488910,1190580599,410386426,319358467,-1019493006,103530871,100864777,74584843,41337659,-1960918133,-262239784,520334824,1183425906,1050094,-375050,1174604148,-196727824,-1996484563,1183446598,118918124,78729747,-1319574829,-1947675892,-128021560,-390057442,1931414653,-9311997,-2114691445,1913651451,266386179,1408523817,-472709967,-1910584437,-768349090,36104273,1215438681,1952172091,-2117588216,1929511161,-329383621,-768265,-1949993473,228718158,-1547631853,262214393,318219027,320014020,-1944912989,-1547631680,-919399683,320280203,519593611,250134579,57876236,-1946222359,1376978198,-1190960966,-400686716,1510408648,1639574130,56672000,200701579,638940370,-661905979,-661731837,-947702015,-337491452,-806674682,-385839895,1190592193,208929531,-1375963451]}]],[[{"sector":1,"length":512,"data":[-1192474999,753663999,-385876037,-620035410,1586094452,-1545055248,1183406850,1050094,871122569,16482752,-1962511600,-754667069,16788960,-128021680,-779368141,-2098675661,1586387211,1372730348,1577142248,1793655667,1959148542,-79235426,-1960545022,271445062,-39635456,113718802,16782075,16696961,-147420874,-106744302,-942109166,-1962934268,485029982,-1360505599,552099082,-79235583,-1962511358,-1483291,-296318024,-1962933826,-1072958906,-1907882636,-1961588264,-1907823034,1377077720,66090635,-1097406222,-227082406,738627366,-59325184,1959089694,833798,6078289,-1527571318,-1414807501,505372249,175424854,-1527563126,526298027,-2147322683,-108298039,-906058509,-13449334,1929762792,-1963357694,-388287805,41092556,-1343694454,343211959,-15567617,1962873972,110044690,-1893335030,855641094,-1881633088,-1895790586,906004998,47843015,-1909063552,906157598,47980172,33244918,-986306700,-1005390026,-1943602050,1313738845,-1993991031,-986313099,638778118,638868876,-1961736823,669605349,918894264,-1003089157,-1944914114,-969475392,184070,-410267506,-1906958597,-1948610878,216583107,-128021760,164554837,911453,12276675,-1084954624,1526730984,-1959898173,-402465250,1273495557,-1664918593,-230257840,-1962931736,65596998,-1013098496,-76234741,-661774776,73353,911262495,85395142,109983235,-92077346,-1174179066,-628424698,-1058535853,1918574337,64523271,172995]},{"sector":2,"length":512,"data":[-1205408936,-1031589632,-1311059697,-370486525,-466438789,-114915786,920914434,85395142,906392576,85395142,-1231755263,-566821066,340037378,-1070462741,386319926,-1976172539,906303270,-402464093,1552856694,-1900006636,704192,-1526691649,-1515870811,-187831899,905969855,-402643807,24313888,958334659,1962934558,20875524,1513979904,48819828,-1930958080,50725848,-1064419328,1295876134,-2144937356,-730572227,1031848953,-386239398,-177012767,20855078,653161728,200331,51249473,227157504,-555020920,868105704,922258368,906161315,906161827,1342369955,2400566,1929360360,958334482,1946157374,1513979945,-1696067980,1492022271,-1329719832,-1230051065,-331447498,1802829826,1538638312,-402498423,145800702,-1914116117,-1948486913,1509950222,41339451,995283339,918714329,49036931,906327296,49028748,-297893066,242483202,109983238,958792430,117441294,-1942616714,906161694,49290892,-1909025813,-1962741730,721421070,1960479947,-1898904763,-645445182,915417067,45104768,920614657,49028750,-1909062286,-1962742242,721421070,-1948742453,52131024,-1064419133,52332873,243869184,1303576579,-2010767994,1049175581,-628228095,48144694,-1946156637,-396672808,-471220910,-1119557451,-1946156865,-907523904,-385649666,-661717210,1929301992,51284982,-650424064,602514806,-1121916673,-1946156865,-1511503680,638219006,81545,-339929624,-1122965311,-1444345424,1912683701,907179020]},{"sector":3,"length":512,"data":[47253190,-352210939,-1331677459,-337366526,512243422,-135593296,74581820,309725500,1552675467,512308754,1552614122,512308756,-13237528,907221814,320419583,-1133123504,-788085194,28311810,-1011525655,521591603,1404873192,1912678376,1032005155,639202304,1962884483,1173825043,1971322885,910067979,939953157,-688461819,-672447653,1539081704,917837289,7347967,-185925006,-13190421,-352294882,520042227,-320143252,-2145452234,-387354112,1552528410,175933698,-1995422580,-689241012,-397009320,123712518,1455150568,-218102087,-1522055259,76242597,-1962779509,1418396748,175934214,-15842162,1552812148,-1942594036,906329630,92020361,218547766,82444037,-1090054477,163119822,48675338,-684994773,-779884079,-387854080,1150071730,142379278,-351906679,632836246,1529859345,-1897201038,-1951106071,-761055740,172264194,47620918,906904715,-1962747741,-1556741564,1149960916,646460932,784532177,48105102,840842022,-1341885952,650377478,3423940,-1007092989,1929372904,1031808762,-1341884929,1407642374,840796710,190719,-1003568293,637545022,1912888635,1563108879,1036264964,1979711363,233568750,3520592,-133962762,113738584,-617364488,1929355496,1031808521,1124431103,78705387,1406874563,1543487464,78644595,646988523,1946172803,1032005153,1394111999,-367097034,1564026370,906720559,48766603,828193062,1130038644,-128725525,-16398554,512440063,-1993997590,-1959383203]},{"sector":4,"length":512,"data":[637724702,1529961865,515395779,1529859345,-2081881230,-1282741837,641123638,-97536,70912628,-977075851,-236251020,984925177,910175312,4589112,1053046360,-953809606,17221,-1993983630,1555582981,1166616064,-2128193534,1073759053,1329973030,-953810942,18757,1262864166,508559360,-398381994,141754278,1165330726,1197313062,-1017634978,1476471888,779358578,1031144764,-788085194,28311810,515050473,922389255,921227,-1984815640,521536588,-1191005250,-1527578609,-374685645,-1992903966,-1962930674,-1090054414,-30014797,-352144890,532173026,1513082129,-1058340237,350805483,514093568,918894166,1157039418,1579155523,-107711457,1975519939,-459262458,-20906494,911613640,47253190,116798978,1962870029,1460031521,973522742,906269957,87821964,300433668,1173825279,1598029891,242505735,333976555,-150507008,1073759044,-969537675,16961798,-1021354247,1191590454,-117280256,911233987,3946181,-470396493,-1992888317,906312246,87826060,-1007133864,-2081649835,118886380,2123192070,113653489,905970951,84412102,-1030952960,1149898100,144848639,113653253,-1392573177,1929337576,57993260,-1190004805,-1403650037,145282854,-136176780,-388002978,123717271,1988960022,4161777,-397080716,1935474702,61929731,-1017256565,49004594,-1573453904,-5242120,84714038,352765494,-1992884475,906316350,88999623,118947839,8826253,218560054,896859909,-402457880,712179439]},{"sector":5,"length":512,"data":[-1929180696,921174365,381448705,1245088543,201782789,57999109,369243624,977191967,-1193744379,-386844696,61913306,113718979,-64198,-854514760,-399936721,-1957690697,-339810300,-1175920506,975140331,1478194656,468233381,1958742712,-341383154,1974132619,14412016,-1430053098,-2141652245,74776636,-1007091024,-2081925808,1935171042,113653276,-385940211,-969474457,331014,-1342013976,-1008162257,521599159,-29693757,-126745680,1460033054,1608622568,-1340121593,518615555,918894166,-544537286,-1924178941,-402618707,-1336952923,1161307740,-1442745089,-400597425,292880595,276086794,-391316597,-93000924,1958742606,-1436766205,1912624360,-1960896853,-989509058,-402310602,343212570,-385923958,208988928,4030502,910624372,89013897,915087126,-919403190,84674294,-402426625,521535790,87703236,1128658726,24412160,-401873981,636008390,-1211569936,-1396505680,1978318824,1945975559,-202659303,952120142,639268100,989822336,1555039605,-1429960022,-924269576,1946398721,-117264382,5433539,-2094597518,141831741,775782694,1326150958,-1342165784,-337284605,-117207037,1962940136,1843965137,1001747946,-1429769219,-362616660,-347145612,168069800,-389974848,1002695252,1326150395,-402290138,-210376120,61916152,-326908935,106307086,-326412969,-1431556428,410371130,1962921704,984263691,-396921404,1383464899,-1985298382,1206584950,-402229621,1983637930,910128134,84739830,-2146404865]},{"sector":6,"length":512,"data":[3539426,2131039510,168064301,-1993378606,521537142,-1929058626,-396948866,-396377049,55162458,1312490062,-1962183936,41862391,-122276632,-386331669,45089011,-1325857931,123690243,-2086723746,803737284,-1013036618,1510405686,1786052352,976682806,922695173,1444807996,-1070397601,1929172456,-138346933,536888132,-396889484,57933978,652864351,1962950016,116798984,1979646712,116886511,2045271839,1319187968,2025851653,734462728,1319319238,3964933,1555039093,-1246238550,-2147171197,216728009,1007062838,110048773,-919403206,976667958,1165804549,608078134,109852165,516097318,-1084815786,-404225184,1577541628,-385649889,1623109304,-400615933,-1544964747,-2134887762,-629931972,973175936,212718709,1969237024,-1006653235,1074053374,-1012188492,1236628456,-143284493,-12285360,1961418728,92939782,1493073128,1994960067,-386238978,-389814068,728891758,1049173782,109839670,-2094660296,175374653,38111782,1883041828,-219674764,96872185,-820451073,1051985266,-374459927,-1782665672,-103028679,-1977218958,19982341,-336919949,910068022,109852165,-13236936,906156598,47986431,-1320035701,1508627204,-1023158132,-494806898,-1992949745,906156566,47980172,-687923434,47974031,47842959,-1047805838,448702187,-391451845,-1301151518,175505980,-788085194,28311810,20751595,460786290,357892902,390927142,647152011,638928265,-401123959,1418308814,650504966,345591,638219648]},{"sector":7,"length":512,"data":[638670083,-351056621,1173825243,1971322882,1166747374,15738114,1946173501,3161349,565763445,1932512529,1017768894,906654210,47253190,-352210943,7137520,-1073051534,653923701,638406027,-82881141,-1985187352,1418265676,-392238330,-1993952094,-1993994931,-1070395563,-1809907914,1702962688,654294789,347521,-1265833920,-1014244373,1928931304,1582761495,535335711,-401772032,-1159149026,495593208,-521462648,1364434411,-1763124853,-396862466,-672401243,1945680360,911262465,637725345,1479492923,112259956,381010937,-1191048472,-466472116,-1271863216,-386340120,343061554,1109297462,1049179653,-1942616778,-402311162,57931968,906004201,88489609,1208388662,512308741,-1959393980,637878814,-225763960,1359175871,1543159272,909559094,906654213,85278336,-1341819649,-1874597118,-2117520552,1966296315,1954588681,-1182850043,1153896448,-956301310,13124,-11460842,918903251,460457270,66759,906316809,906314913,9182975,1107740470,-369099003,-950293450,905969668,88487621,-335608634,911866626,88213191,636092415,-1195814484,113653298,-385481464,1623195455,-1957605373,-96933646,863131737,1048583958,1979647253,134661674,19666437,376703858,47253190,-352210943,-936384315,65540978,71600555,-1047814677,1925739496,-1326060796,1373956867,1623192203,-101390333,921727577,85278336,370046463,-402213601,-1578630941,-352030012,-352079656,1377718744,-141877498,-402399041]},{"sector":8,"length":512,"data":[-13174326,906316342,88868495,1918443358,1048590010,1979647253,1623151064,-106108925,384594521,356417567,-982319355,-1662511435,-974723072,-1209287310,860338513,-1174453527,-1320091644,1354814212,805572388,41302332,1487537924,-1007951271,-2081649835,-1040774420,91553752,-352320072,-162625192,-1929881975,1586297438,-1962467586,-137393158,-222284839,-1977200722,2045312837,-1341950747,2122951260,1428100860,1571626984,-1946386748,-6297407,-1696021877,-1430244609,-1946659131,-397019570,1935540102,-761186803,1951415298,1946500308,-443811376,-385650083,-706106674,116799146,1979647245,919439874,84414088,1996569795,2145933068,1594913782,-1243019600,113653418,-1342111023,183757569,494164160,88471334,158629888,285980752,-346345523,520041989,41091192,2146033643,1173825194,1954545669,179851273,1529859345,-13178645,-352291810,438209505,520049408,1918566524,1525203713,-243971151,102679545,565727575,-150551040,784603138,29295908,651135744,-401910133,1599727248,20717319,-1007035532,-1321304018,-3997694,-1023385570,-967375330,331782,49743558,607044632,114437,-1960390773,1575489622,520576998,-613154500,520078329,1371734116,1707659,87441092,-1993949133,-397331643,1935278013,-1327503350,-1209472286,1507947519,195,0,0,788331215,49419913,1747355950,378285572,-930347926,884789390,512505455,-1992949686,503334966,-661733325,-1553215304,-930348888]},{"sector":9,"length":512,"data":[520137379,1442973160,-1631647986,243712,-1412890965,-1330986958,-963925053,-1411871573,-1414807501,-1414838101,-2085901504,-964491321,309514,61974003,-1426906960,72122462,914961923,-1942618062,-989842402,29157428,134497526,-1992886924,905981494,3153548,-982567235,-97484,-1612158860,71628545,-277512192,319719990,-1997721085,-1976169908,838878742,234895094,1444806726,404669750,1127713539,1451763267,1988634112,1381061377,648955624,906118795,3540539,-1556741002,1499070518,1591250011,1988699679,1586243090,-27910636,-1899823418,549815256,526304226,521048555,780926347,-793247690,96797547,648216592,-2117039360,-1955868438,-2115042326,1426286317,-2089863489,243931335,-315490234,-1426055163,-501299325,552567799,-1409286216,-787495549,-754732579,63605997,1031125,49417867,243912076,-980548878,1241943078,-1900006653,-1077899560,-980746110,1735,44257675,1161472,-947672077,2865414,-2134922253,326285312,-1426060871,-503134333,80184314,-1426057543,-503134333,-943354886,1577106438,-1073297898,113764864,326303937,-956251229,1811972102,-2079930605,-955020032,34822,-1978234623,-1811495168,-954921472,1358993414,-1677277419,241042176,-1090056673,-930348964,-2097147975,-492109113,56146170,-1325396219,-1930898684,1207436255,48119433,-224308651,-388527358,521055733,855644351,-1330992192,1161727,118401779,2891404,-1101439654,1049325366,-819265498,125238843]}],[{"sector":1,"length":512,"pattern":0,"data":[66650953,-1896005135,-1772033595,101107254,-969532925,198406,134661686,-952762365,198918,1347618304,235079355,-625743865,-1022928040]},{"sector":2,"length":512,"data":[-1,10649619,1329791149,538976334,103751712,14549214,33554648,14549634,48366278,14549730,994115806,71516676,1141123907,172491830,76040708,1376034891,174458065,81291268,1829033068,-1267858344,82735108,1963214963,1104,-16709888,33031176,125894405,-2012712712,16260608,537196575,-132054280,33038854,604370979,-131791880,9381895,708874025,-1892999025,277818464,777031469,-1892732785,65392,-1993474048,771792414,10487436,1364219595,508909394,-986819834,-1962893794,1200230991,314480642,66061056,1997225200,243254283,620699406,149619636,-2118909008,28574443,-1642150610,55019776,1562314587,1482250847,-970011810,50402310,67162000,50586368,79,0,453336832,993013851,223490096,1792,1006633144,-972589811,65798,171729387,121391732,512429173,-478150379,-854674425,138199824,1048579445,1946157313,17759988,-1958941951,-1191111394,162791425,117313741,27263233,408065,-2145094143,64062,251528564,-960298751,65798,16910078,16924288,-972525031,402719238,-1979706904,-1979645386,-1979645674,-1274997186,-1022309118,1006698400,1007186946,-1341885437,-1970803958,-1291774658,5291296,50403233,-1912530682,869830336,10534655,-66617159,389972270,1958215681,-1952058613,-204633149,-1021374805,-847248712,64666154,1946724588,-1171934981,-202505256,-1950119003,-1330908211,64535081,-2130528018,-706008371]},{"sector":3,"length":512,"data":[-397342493,-1437007865,-773195550,-2034224130,167842822,-2144242240,67646,-466478219,1038620365,1226142976,172180297,1224897984,135170115,152996097,911361,-680214517,74825738,18097800,152996803,-33060095,1124141070,91602954,135200323,152996097,1606140673,839879173,1959332845,1975519762,21445381,1194984427,50754561,199683033,346080219,1975519745,138313776,141819905,17374859,569051018,382534068,-1073011340,11798133,-622127411,1979693032,38242828,98176,1200227189,-1642150653,222791680,-369222679,113704462,-973078252,67590,-1897057506,436651741,113647108,522060828,-589046037,1191545382,-503312920,-70128649,-400617954,-820051966,1381061456,1426478934,18286279,-1198082048,-661782464,-33535583,-6082868,1963408384,113716743,-1342177001,771777184,-1744759134,-661929981,777013131,-1593769565,78708814,521070803,-1778312797,1560283624,1516134151,-1017619623,-16712258,1952136228,9169155,56886471,512351027,149618949,209009468,17172222,855758568,-1022916160,309473340,242694460,738313960,-1274575312,15005194,1027392263,1060901748,574361460,658244724,80159349,94503842,104514305,158662917,17174270,56886471,26339523,80152456,-1393884254,-2097141829,1065354179,941978624,-1946913529,1606091079,503530245,394920187,-896797134,24496395,1021378369,-955943653,-1023192828,-939709208,-486474490,658031363,117441652,378271970]},{"sector":4,"length":512,"pattern":0,"data":[-617414399,281871028,-108993045,-1594919143,1871315200,1961691649,986578434,-1979549755,-20085016,17729997,-1965823231,-1342111706,16890625,-4669205,-1191777536,45809919,-1196168447,-152365055,-1560215135,-1360330493,-1560214623,-1494548223,243714355,-454557434,126501120,6011731,-1014814838,-229373,-533065868,1200353909,352723198,354813953,-498902271,-8984099,243910963,431358209,16782986,18169482,-855244616,-10557168,16846475,-387189366,-1057092942,-218700750,-1020252155,-402586976,228851694,16883713,-1543510552,113639696,-955711224,184617222,-14948095,48955825,-1031091917,-243857604,243795570,-370474758,281870516,-768351253,17176198,1290289730,-402158848,460717412,237632395,113639675,-1962934008,-1175387145,-836041177,118359804,-402152205,-92274649,-2011729405,369229655,-637337349,16465537,108134600,371841579,1204158715,113705215,65208573,-81884221,503530240,-75431674,108134608,17174270,-1014895637,79889759,1077760]},{"sector":5,"length":512,"pattern":0,"data":[0,0,0,0,0,0,0,0,0,0,0,-855638016,1009787921,-955878096,71430,1997552816,-16333302,113639424,858194176,-1143238949,130482284,1334575346,10795778,49219527,771903372,10362565,789465031,273648646,16411625]},{"sector":6,"length":512,"pattern":0,"data":[352489,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6029312,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1543503872,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1428031064,1364350551,1491140435,1582979419,119496031,-970006273,130822,-637077714,1946288129,251538971,-2127691265,-16655834,-30489603,1963065094,243346951,33554908,777212099,30940811,175495947,-843579208,512306735,-620035624,-75295116,1460761608,-1039681530,-855637573,117321258,1594294785,1354979419,784347731,33621638,-260784118,-1144911688,718077953,59115,0,0,0,1162891329,993870926]},{"sector":7,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,0,0,3997696,1024095415,141866753,-298909906,-805326847,-1547761906,-970010878,-16646650,1482184792,1582979419,119496031,1048587983,1950024355,1039958031,-58716300,-2146798577,91497468,-164692178,-526176767,-20584447,-100233426,110046721,-1892810244,-402531834,-13697400,771873334,32907007,110046876,-1557265956,782172642,31538816,-1641974467,37487731,-1092084108,-25499394,31629614,-600375506,922693121,-13762052,-821953994,-495583428,788409832,32251532,-367621842,-1899459583,-390033704,646513123,378274278,-795999768,-402198852,266863168,50775810,-2147310847,1023533374,-1645714059,1474886657,-1339460607,508996188,230284174,-1073042432,-503155542,-1168236552,115867909,19785729,326306420,-713817540,-780926148,-402527256,-1142423022,-401413375,132645344,31367426,-1593713501,-492633628,-401175039,-433681663,-39065599,-1593880599,-538443261,-959583488,-16653306,-365509346,33799937,-12812036,-964492427,1153868807,-1273036545,520068121,44171766,22527490,1202978994,-165740644,12183553,-1075265164,-1145277440,41091164,94444937,989626369,1093411957,-8269686,41222407,246685065,-165740644,-1303923711,26787328,-165740644,8513537,96085110,-1673808895,32907007,-367606498,4450305,104759327,175454721,-1274964038,520068155]},{"sector":8,"length":512,"data":[378143222,246678018,-165740644,-1170492415,-6553258,-402524642,1048576067,1962869220,33792133,91602954,-33422688,1894592,788468969,771874977,31078143,-165740754,-1892770815,771874310,-1023286109,-364985338,1031808513,-2096925185,128583623,11555011,33425030,-1017593602,96425724,53906177,1962281729,-1396100301,276052796,175423498,21495681,1101721975,-164368917,100630863,-1978961407,1949252613,1952201971,-968361745,914948101,-1025310461,519881566,32126661,179101323,1007711424,1007187036,1006924847,-1947241158,-1947472930,534482163,1364414659,1504970327,-6497485,-1560152546,512295714,243860260,378077990,914948904,1049166634,512492332,109839150,1594295088,-1017619623,-1168307528,-6552798,-1023281634,891598854,-165740644,-232879871,-200897535,616040193,55228965,-165740644,-987839743,-1207832042,781985060,32907007,12108575,-13722573,771880478,33560200,-1305280072,-13722624,-1023281634,775094712,33560202,520040092,-54328842,567095476,171827334,-1173785853,162793328,550314445,1996690493,2925042,125091851,-1262449146,-1205744311,567096609,32906889,33031820,-852152392,-299988703,-268006399,12060417,1009765815,125148415,-843644488,-1207112913,801965568,913686538,1459790783,3598586,58023931,-1660915736,1286866549,-85253683,-1191223320,851060015,-1205744381,1572480289,-400438013,12124006,7322161,-1564597811,6285319,-919350037]},{"sector":9,"length":512,"pattern":0,"data":[-1409252930,125159691,1912610792,-386632683,242614296,108159292,41384508,1101668396,-921968149,11535220,540853162,154930548,1027344756,222037364,-1007156620,-2144943111,259275581,-1927346658,166263157,-1161945344,-1107039481,29034376,-1157371136,28901378,-1395225856,125091850,567099572,-1007359166,1868787273,1667592818,1329864820,1700143187,1869181810,604638574,1629515598,1852141680,543450468,1701996900,1919906915,225666409,1346437130,1145980240,1092628256,1195987795,1866670158,1768711790,168653923]}]],[[{"sector":1,"length":512,"data":[17061097,84148994,151521030,218893066,286265102,353637138,421009174,26,0,0,0,0,0,0,37225013,37225016,37225016,37225016,37225016,37225016,37028408,37684328,37683775,37683775,37683775,37683775,72811061,37028405,37028586,37028405,37683765,37683775,37028415,37683765,37028415,37028405,37028405,37028405,37028405,37028586,37028405,37028586,43647541,43647642,43647642,37028405,43647541,43647541,37028650,48890421,37028405,58851893,37028405,37028506,37028405,37028405,37028405,37028847,37028405,43647642,37028405,37028405,37028767,37028405,906413870,1342308353,1677492307,-997578121,-1948200552,-1476448552,283640120,146296832,1479200128,146297027,1479200129,146297027,1479200137,-661309,-13739941,-1962859986,1007127258,-2096794113,126486467,74825738,18718766,788513768,-402579806,126354040,522094894,777542401,20055695,872845102,37152769,572456750,1105763329,777211906,18816651,18784302,1482360712,876019502,922693121,-1930952398,-628371457,973176704,126522997,788493288,-402579806,126353994,522094894,777542401,20055695,872845102,31909889,572456750,-236413951,777211905,18816651,18784302,1482360712,876019502,922693121,1021837618,-771043329,-1031128716,788473832,-402579806,-796261924,-1892788133]},{"sector":2,"length":512,"data":[771830278,20186767,771858408,19013375,27977884,504793646,922693121,-13762252,-402574794,-372244737,1482424078,71127888,1024422980,175391749,1950615613,1141456133,-620020363,-1014351500,788451304,-402579806,-662044284,-1892788136,771830278,20186767,771835880,19013375,22210716,505317934,922693121,-13762252,-402574794,-372244825,1482423990,-1073065136,-628419979,973176704,126486389,-2013175320,-23271161,-1946223639,25133278,-1963821766,-26286073,18784814,-2013182488,512306695,1482359071,839290670,110046721,-504889036,520039936,-392429278,1397752044,522095406,513814017,1527220225,922693208,-13762252,-402574794,-1949303241,-402158630,-1573978588,-1993473762,-2147410146,91568892,-2013203992,93005319,18981422,1966800000,14739462,1527089190,110046808,-1892810446,-402574330,-13762432,-1677647330,1342213096,564145747,92808705,522095406,513814017,1527220225,922693208,-13762252,-402574794,-389022257,158597341,-1607575461,-922877667,-36640305,-1031120805,-1444364034,513945341,6219777,-796210946,18981422,520040092,-1269825246,-13722599,771826206,18749066,976145150,1963008262,513814024,497167873,2095601665,1431359485,1183575179,102837766,1719730486,1576926982,1431356248,-1590760309,1174995254,-1017619194,57983230,-33553432,440189896,3939703,-1607595915,-1574043363,1364394270,-1147605878,-670891774,-1979217362,-1017423387,359809340,141974076]},{"sector":3,"length":512,"pattern":0,"data":[225599804,158825020,1613504524,83871720,-1209482432,788475647,-1343749850,788475647,-58719958,772109318,19803903,74580284,118359157,1456471984,-1070378672,448393355,-2071319040,994443523,-503024186,1505768436,12803672,-1275068416,-2044605136,51658208,-608564365,-855002106,-850611167,51658017,748810359,1958742784,-1064434168,567101876,-850217977,1394510113,1426492421,-66642427,-1409253186,829734922,1947024556,13297708,-521603468,45848576,-1395129599,91491644,1946204136,16509187,1947024556,11200760,-1058474380,-351827968,-1338657585,-1994273499,-1946081762,-1274992634,-853102539,706644257,738626561,-1338657791,-1994273489,-1946079714,-1274990586,-853430219,572426529,604408833,100710401,-1073074227,431235444,-1202708019,801965569,-1962867778,1751550,-73075718,-854674342,-850611167,-1258624223,-31339239,18719424,-16867352,-1261401400,-1172189938,632292626,567092660,-1341842758,-853167066,86161953,632565680,12198349,-1272860670,-1172189915,833880150,540811725,171710068,725357172,993791604,154929780,742131316,1027342964,3598531,661799212,-1001368826,637883166,1931560762,1606690330,1370706710,56353782,1207379672,1950351427,123426822,-1161576194,162793161,1286873549,1631330765,2050754162,539755127,1986939331,1684630625,1918988320,1952804193,1227125349,1919902574,1952671090,1397703712,1919252000,1852795251,2361869]},{"sector":4,"length":512,"pattern":-151587082,"data":[]},{"sector":5,"length":512,"pattern":0,"data":[2775629,262161,12976160,36241407,681052160,2244,30,13500417,147128762,406454272,411828224]},{"sector":6,"length":512,"data":[-1957363712,309484,-16219416,-706214794,46433034,1962934845,73304859,-1979431169,-62486521,-1979425141,1094555655,1024029696,410255442,636207155,553535175,-58818560,-1961855701,101318214,250282100,33441479,-1947538688,101318214,-4718474,1575324671,-326412861,-402632520,1586169891,357037574,-1207602175,65732728,1342208696,-2096507672,1586168516,357037574,-1207602144,65732732,1342209976,-2096513816,1183646404,1996443824,87746564,-1929067389,-397365178,-998045915,-1337553662,8566864,160950352,-1017256565,-1192457387,-991428592,106859271,134247584,1586173255,7774470,1193332983,-213465579,-230242749,106859265,-1743435894,-1946794359,1183384646,-230257160,-230257328,161605712,-2096839549,1979776638,17020938,61401168,-1962752893,1438866917,314109067,124643328,-175417769,-971837821,1445986628,158459990,-1341864829,-1977289116,-316014260,1183432963,7381502,2097038905,7512328,2130593337,12695562,56682576,-16595837,1182991438,1187447302,-352321282,-27358445,2123097041,-399376634,-998046115,-28901630,956581515,-444793274,359972875,1946157373,146714,54351476,-385649408,-370605936,10795008,51701840,-1962752893,939460190,-2080484376,-1073085756,-1531442572,-68661248,46433026,1342202296,-1957642189,939460190,-2097100824,-1073019196,-675804811,-605532160,856091394,-1528278848,46433032,-16359797,-32315337,167953539,-1207274048,-397410058,-998047046]},{"sector":7,"length":512,"data":[12630018,1354773328,-16359797,-2048392585,113541888,158711819,1342232504,-352151064,1354773254,-2096602392,1586168516,-398983418,-997982768,1975519746,16168970,41478224,-1962752893,2013202014,-38344702,167953539,-1207274048,-397410058,-998047138,12630018,1354773328,-16359797,703071351,113541888,158711819,1342232504,-352174616,1354773254,-2096625944,-1531444540,736645120,46433026,-443850914,-1957313699,19839212,1443229416,1356088973,-16353537,736625782,113541890,74760203,1860943923,-19757427,74907472,-2097125144,-2037578556,-397345070,-998045672,-1913615614,1358877314,-402360577,-998047576,-762934012,-35106562,46433031,-2104627061,1183448786,-230257404,74907472,-2096782616,1183646916,1183666186,-2037559084,-11469102,-998045610,-733573882,34400336,184730755,-1194167104,-1956708353,1438866917,45673611,89778176,8894550,74907472,-2097009176,1183384772,-2585602,1065418310,-1962511104,1183384646,74907646,-402229505,-998046397,-27358460,-1962648021,12977782,108461824,-2096663576,-1073020220,28837236,855829248,-443851072,-1957313699,309484,1443167976,1342212536,-402360577,-998047278,-1982297340,1065418334,1074033664,-1962654071,-1991769018,-1950810554,1183535104,1183400190,-1410838276,79987457,1586092171,4161790,1996481653,108461828,-2096837912,1586169028,73280508,-972654965,1996423168,117106694,184730755,-1207601984,48955393,-1956724685,1438866917]},{"sector":8,"length":512,"data":[1387850891,75884544,73304918,973176704,126487413,4205976,-335657335,-28915963,1996423168,-1371107842,24242256,1074054275,-4717195,-1924142081,-397365690,-998046040,212226,1183661684,1996443822,3926020,184861827,-13798208,-1981283210,46433030,1586229387,-8880124,1405580380,-2096728088,-259325244,-1733410166,201213577,1035171008,-1368129444,-1956724685,1438866917,-1070338933,-16516376,1307051126,46433030,108461904,-402360577,-998046810,1975520006,112645,-1070398741,-1017256565,871140181,63826112,-1207666945,-397410160,-998046327,112644,95807568,-1017256565,-1192457387,-1394081778,-213465597,138840858,-1913108855,-1924074938,-397348282,-998046293,-213465596,105286478,-1946794359,1183384646,-230257160,-230257328,93186128,-2096839549,1946222206,-18427,-1070398741,-1017256565,-1192457387,1558708238,-213465597,71731994,-1913108855,-1924074938,-397348282,-998046373,-213465596,-230257329,-230257328,88729680,-2096839549,1946222206,-18427,-1070398741,-1017256565,-1192457387,417857538,108461827,-402360577,-998047105,-28931836,242597899,-402360577,-998046376,71697154,1183515627,1575324670,-326412861,-402649416,1586168551,71761668,-967047226,-1974996154,1183319622,71732216,-1912977783,-1924074938,-397348282,-998046505,-25263356,-1207602176,49020927,-443826125,-1957313699,833772,1459791592,25421910,-62486120,-2147197301,443809855,973176704,126489717]},{"sector":9,"length":512,"data":[-1897377640,46433025,-1996472019,1183054918,1586168324,-62486010,126370052,-972661109,-1959132857,1065354334,1393325404,1074153099,1827164224,-1958221054,1346436166,1074153099,1491619904,79987711,108314635,-369098824,1586168087,4161540,1996430196,75950086,1023591555,226361347,1342215352,-402229505,-998046579,74907396,-402229505,-998046591,108432132,-1962887959,9877758,21335376,23717968,-1962621821,1979059184,108461838,-2096872472,-259325244,-1979288061,-28932092,74800188,1560168134,-1207958330,-1924136808,-397409979,-998046616,1975520004,-28931567,1465255048,-2097034520,-141884220,-1699193365,1166888960,1172852737,79987460,1182121995,-1996601718,-2012902908,96927302,105286400,-129595064,1342217656,1090012811,1358579337,-2080482840,-661977916,-2131206519,-462094273,-1996601718,105286405,1979336249,-14882557,1341816459,1183489259,-2147186434,57933884,-47895,-1645738378,46433027,1962934845,10467341,108461904,-2096913176,1996424388,7333894,855819395,-1956684096,1438866917,247000203,18212864,435373766,1358055053,1358055053,-2096948504,1183450308,-1947981070,1438866917,247000203,15853568,10632832,-954305280,939586118,-1996029768,1183709254,1183666418,-387428110,79987458,10618566,339148799,305594119,74907399,-1962908952,1438866917,45673611,11659264,74877782,76156651,-397351894,-997982295,1174702082,1962949760,71732205,1575324510,-326412861]}],[{"sector":1,"length":512,"data":[-402652488,-346685305,108432153,1586171115,121154564,-1014299531,1015026411,-1084160,1586168902,4161540,-1070342283,1575324510,-326412861,168052363,1007515108,1007055457,738359162,106888992,-1017256565,1475119957,-1962467754,803407950,2123094411,871860996,-17984,-146690318,1993030617,-1949594878,108432382,1149937395,986264575,91750213,-348060300,-1949174014,1566531265,-594847293,175298603,17964603,-477428622,-1947606529,-326413055,119428695,-1962508661,-1178586121,-1359806465,-1948649663,-678755202,-1031035661,-1017290914,-1962822209,721420854,16679415,-1107070448,-1896214528,784630231,57932551,-2130621975,922746596,18622089,438733110,-1312388351,1222693636,18391862,567095476,25076534,712180284,1354773278,381296398,-855002103,1329908513,775037011,1919885360,1952541728,1914729061,1769304421,224683378,-150789110,145033,-567557236,1253366775,-1942609459,-1962838498,503327798,889239574,-1992941107,906040350,18220684,12066574,172341797,-1959386675,-486354930,113587746,-628358446,-13182157,1929563678,13428995,-704199370,-1143305214,-13238269,117624350,-624952289,120633602,-1070346453,370584307,-1343742201,310020,-851181384,-167087583,91521218,27037568,-327595200,-402476568,-625278450,-621051646,1393062658,1130043391,-1175262397,-517275642,-1962835778,-217639172,25094308,787017011,-1662496521,1393167616,1801675124,1702260512,1869375090,218762615]},{"sector":2,"length":512,"data":[1986610186,543515753,1869771365,218762610,1869366794,1852404833,1869619303,544501353,544501614,1684107116,168649829,-306572623,250425865,178975,567099572,-4710634,-404205568,-1173311231,-437581313,263855537,1440672522,-326898549,-1101637882,-397016620,-998046958,-1913091326,-11532730,-397015946,-998046691,-96040698,2045269846,79987459,1593460363,1575324511,-326412861,24919683,-16485376,-16679914,-1880619914,1575324417,-326412861,2123060823,-1962571004,1300955741,106269444,-1962379893,567085693,108956503,1569260937,72190210,-1996073591,1167001717,855929354,-402068490,29231763,-1996125440,1599999093,-1957313699,119429100,855932555,-17984,-1047810318,-654884800,1438866783,1448602763,2123040542,869763844,-17984,-1957712142,108956663,-4595829,1101984511,-24389129,-1527516277,1600045707,-1957313699,-1957275668,2123039862,-1962467834,-1178586145,-1359806465,-1948649663,-1968770053,-919339196,1929332026,1090876421,-772341013,1600045451,-1957313699,149717996,915101271,401277316,1342180536,1342290616,-806865665,113542140,141869067,-2096970109,-462094276,1946172547,-2093184199,1187450055,-1979711234,-1986509051,485227078,1033373066,74776831,49004594,1586169226,-28901378,27035528,1207586559,16416387,80207477,1599995904,-1017256565,29886095,24518286,-1047803597,-108271221,741772105,1962281728,-221868536,1974355374,1083655674,-41157084,-989600303,-1930944746]},{"sector":3,"length":512,"data":[-1949332484,-1946352644,-1912138004,1240871902,2122911203,-1404746496,1975519914,-1980505350,521535566,25437833,29894399,-1142125739,-75431206,141755098,1528299347,-219462845,167907816,-2146798364,1962935422,71747076,382017278,12058900,522308901,47189643,45811683,-836829440,71731970,567102644,30017167,24518286,-2135029994,865643520,1048585938,1912799614,109989989,-1070399444,-772290421,-1359808373,1963276326,63407097,-772290421,-1977157749,977356549,1007973600,1007186978,1006924809,1491825952,-2118252778,1328278272,-15991253,-812912268,-1014277310,50708739,-121600,-57941973,371131934,-1331367161,-880039392,8502815,-930410773,-31194108,-57941973,-1423948872,-1047812877,385125290,-594849761,-1431503221,1031061514,527770172,-2147025066,-1073042431,574369396,2105542517,74800383,-303322545,-12204473,-388633856,-797704137,-12167602,-1409187834,1958742698,2484232,-504629899,1274317738,1945320267,126332168,-335657847,199003122,-16615982,-2111403769,-903414015,1946762241,-1021297662,1458342741,-2130413941,1963054334,105182780,-1976142580,-1952970940,-152841768,16936071,1153902453,-1979514876,-1952970940,-958148136,16936071,24905415,1153898342,-1962803198,76088388,-352321096,-318865100,-164858623,1963722308,121932326,-774337640,1820849891,393543938,1342308536,-2096510488,1149829828,1958742788,105676806,867822344,-443851072,-1957313699,1988843244,75399942]},{"sector":4,"length":512,"data":[-2125696000,1963054334,121932325,-890744680,46433032,376750091,148891734,-1979530109,-1952970940,-958148136,158855,-25093397,460653036,147056726,-16595837,1508377716,46433033,-150576000,76136499,1577337993,-1017256565,1458342741,901379635,-52153856,-488623444,1442087163,3477246,646448757,300613684,225764362,-1157613894,431554562,-851397632,-1564462559,-1956773835,1438866917,1656286347,-101324799,1988843095,-1568240378,48669694,-1560000885,1183515358,48407304,-190595021,49455874,1962949760,21620995,1948597376,17492227,49022663,-1070399487,-1560089949,-291306790,48276226,-1560091485,-123534628,49980162,48760519,854261792,1965898880,-100204794,-2144867582,209005372,48891647,47974087,384499712,1965046912,-365001971,175439874,47974143,117376235,-1975123208,-397371388,-998046201,1975520002,-256354625,-1863823358,79987461,1015083147,-15567570,1174594566,49068118,91875408,-1962621821,1815904496,113706869,131808,3964998,-1595341963,-1744532992,-23165303,1946174781,4668682,1480394100,-16157440,-2096965114,553557638,-23165301,1023435565,1047986197,781434883,265725951,49153791,49809095,179830784,-2014818304,46433024,146297067,-1192039680,-303366128,-397361101,-370474592,-352321096,-1632174091,35580158,-24388629,264520171,264834976,264835017,265424850,265424850,265424850,263327698,265424850,263983058,261885906,265424850]},{"sector":5,"length":512,"data":[1048776631,1946157812,49455365,-381280021,1031863974,1191605285,1962950016,734497781,-396996410,-998046946,-369652988,1600061066,-1017256565,-1192457387,1357381656,-2091493384,1946813566,-301531388,-532774142,376700930,48373387,1468729227,-129595134,-2080745847,67297798,1048783339,1946157806,-501314800,-1995994366,1187510342,-352321286,-501314803,-1727558910,-1980217719,109312598,-2097020190,194622,1183518068,-96072712,1183516020,855829252,49718208,48641675,49168003,-2094369536,2097216126,75399972,-971541238,-1958335228,1452013638,-2082932742,-621346606,-1980217719,1187510870,-352321034,-163133691,-41222144,-15143037,-11074442,1996487286,81783032,-2096577405,189502,-396943244,-997983772,-334591230,-1983370494,82574926,1177552070,-113013,-1072955826,92992127,1048773768,1946157786,2086747143,539787267,2105558854,-428539649,49168003,-1592494848,101384938,192152284,16154243,28837237,855829248,1441288384,46433026,-443850914,-1957313699,571628,1475814120,-402208938,-2097143806,1946158206,114192,-2096962911,33743366,-335788407,-501314765,-1995994366,109313094,184681186,-955943488,43449414,-386107649,-997983936,-2081387774,189502,104401524,74646252,49034891,49299083,1048837675,1962935034,250107655,46433025,-59310250,-2097058328,1048773828,1946157818,-152545529,46433024,-443850914,-1957313699,178412,-1577675032,1183384290,-465665026]},{"sector":6,"length":512,"data":[108331010,49022663,922681350,922682074,1996423916,-432603388,-25755902,-2096921880,2122517188,108291844,1191476867,1048778869,1962935032,-331447535,175374338,48641791,-2096928536,1048773316,1946157816,-331447535,175439874,48641791,-2096932120,109249220,-955776286,194054,48931072,47973899,1996427892,55699710,184730755,-1207601984,48955393,-397361101,-443875036,-1957313699,-390056980,-2091452937,193598,512440437,1342112478,41911042,-1978565632,512427078,931857118,76023807,233563178,48117503,-402360577,-998046955,108347396,49547007,117376235,-1956773134,1438866917,45673611,-173414400,1048794711,1962935028,74877777,1249834507,512439275,1342112478,41911042,-1609466880,512426728,1066074846,92801023,250340394,48117503,48772863,-2096972568,1967129796,-200868092,1321634562,-964706293,49561219,-1962445568,100729926,1599996658,-1017256565,-1192457387,1088946178,-1957275659,2123039862,-197229818,1282736130,512439787,1342112478,41911042,-1978500096,-568423676,-15758590,-1999009017,-337368569,-566821106,-1744532990,39053392,1074054275,117376117,-1958345996,-1073000505,1048822901,1962935028,105286407,49415681,-443850914,-1957313699,702700,1475663592,-432633002,-1983892734,1183448134,-264336392,434656770,46433271,737822345,75377656,-1325205855,737727235,-96566280,359989250,1965898880,-398556400,158674946,-397371220,-997982572,-398556414]},{"sector":7,"length":512,"data":[192163842,125763339,49954435,-2095483904,1946158206,-129564922,-2097127704,194110,1191118452,7334140,49954435,1462138112,-2080462616,2122515140,158597124,16285315,887620469,-163675392,158597122,16547459,1122501493,-92864768,-18290602,-2096839549,195134,113708404,2097896,-26482601,1577239683,1575324511,-326412861,216580147,-365001740,74711042,48966576,1352147120,-1946289176,1438866917,-1070338933,-1191973144,-397410256,-997982744,-163675390,359993346,47857283,-1341885440,-1341985960,-397371272,-997982772,1575324418,-326412861,-402652488,1448604603,-2147060085,242559548,48373387,48367235,1178569474,-13419797,2083536000,960266291,1043934847,192217828,1966095488,-402209018,-1409273854,-774927464,65130977,65130959,820609992,1015085451,-2147124176,-478267076,-1996202357,1590070079,1575324511,-326412861,-402652488,-1101597869,233505437,1178076298,-1207601916,149618689,3964998,-1070338443,1575324510,856191683,1575324608,-402230333,-4718579,1575324671,-387697981,-1564278783,-469106298,1048585077,1912799614,1931623437,1914715149,-351948795,322736135,330302070,-687693125,24683416,-339440957,-326412809,-1946901016,1438866917,-1679233909,1575324660,-326412861,-1946906136,1438866917,-2014778229,1575324660,-326412861,-1946911256,1438866917,11791499,1426284777,-326898549,-1957275900,1149896310,-2086037498,-167349248,1950352964,-18426,-167716119,1946224196]},{"sector":8,"length":512,"data":[105676806,-2131825888,-2147350964,871302756,38046144,2122971275,105182974,-1978698488,-1952970940,-152841768,16936071,1015754868,184843307,1460829951,-1979419393,1352140612,-2096933400,1183385284,71601150,-956004032,33489476,-1979425653,126354502,1156999915,1316291590,30736001,1149906293,-397371385,-998047639,1975520002,2080818997,-954767871,50332740,-1744354166,-472786805,40667078,17090305,-1195840765,-397409792,-998047478,71600386,108314635,134630528,1283496939,29295622,1183667968,1149915140,-397371385,-998047018,-28931834,1962835513,-13506301,704923274,-1956684060,1438866917,1586228363,352027396,-75296387,-166953984,1073847431,28837236,855829248,1438866880,-326898549,-1957275900,-13433738,56617046,-1979530109,52692548,1014301244,134628598,1149898613,-661940217,-2013862959,1946223212,721718055,1183384644,2126515196,1962889243,121932292,1407733912,113541890,1962690107,105676807,-16608,-1996209013,38061828,-947191808,-443850914,-1957313699,82609132,-859941289,-335596799,105155095,8628632,-397014156,-997982343,24395778,147227463,43267641,-947133581,-443850914,-1957313699,73305068,33443712,-1017256565,1458342741,45529943,1962950531,-1207493079,1609039877,855995649,619420096,-1543625664,-1197276490,80188930,-964493311,-29047036,915013630,1317733052,-1898411004,649408,-443851169,-873872547,-285637888,-2143160205,2005663457,-1951532030]},{"sector":9,"length":512,"data":[1946265854,-1053079486,-796191373,-1464995837,53769217,132546,1149892491,-1947800578,51148030,-28538375,-1991720661,50719493,-28508423,-628308341,28703361,-1943665292,-1996307426,650314367,46663366,-115454,-24435340,-1464995837,-1947044863,-1053079298,-796148365,-1464995837,65172481,132546,1149892491,-1947800578,-1073018809,-661781388,-31058965,1946339342,1037601808,91488693,-1071739354,-348681470,108497853,1508425779,1959148288,1073816589,1307088960,-32672768,199818829,-1778027520,-1695855026,-1013333965,-28996783,57934248,1095354411,2147465793,-971621594,-788236798,-1946847766,1925579713,1925317397,601028365,-389665854,141885452,-355347721,-1070340747,1364378457,1946164712,-24422632,-234622837,-16890681,108497407,-684992885,-27948726,-1017489064,-768389037,1347572254,1342177720,1256726278,147096321,536869507,41179994,1472451083,172919638,-1962654069,2123040342,119428872,-1073048580,-108850316,185496842,-1341490734,-604526035,-150941053,-1829270566,-1072967117,-235470220,-1829636205,805622663,41302332,-1951783164,1975716802,1325762786,-2012903764,995098436,1492480759,-1017290914,-1947432107,-2013920162,1948254620,1107474446,-779368141,57876941,-151277847,-2147378041,-2115435659,139365120,503731851,-54512889,-259303849,1709439627,-230683976,1362261422,-903098485,-854531255,-268198879,-1274776675,189393673,1177515200,-1174404423,1085539018,74654157,887818676]}]],[[{"sector":1,"length":512,"data":[443858955,-338195623,-812953147,567134763,-1645214820,162792563,-1073014037,-2013915531,1950351772,106859275,1964654464,82573315,470333689,-1962773927,-379625786,1317796643,106334984,567099572,162792563,-337383957,-411713525,27035638,-1962249152,440369370,-336067723,146340310,1439755036,1586228363,107446276,1438866895,1465314443,142508806,-1086819072,1451950364,71731974,-402164408,661782611,915097835,1950876012,1962359569,38046477,1443645065,1577073384,-964480909,1828618500,184840961,-1207536174,-342228993,-2082829539,-607055933,-338492495,567101620,-1986860686,39094532,23869065,1594343475,1575324510,206474179,1278867339,-2096335870,-25099066,-227212948,-1958745095,1914438618,-1898738887,1979136961,404633862,-2094632191,-607055933,-338564143,-147067951,-654112395,721516193,-1262448936,1914817866,1979136781,404130052,75993601,12833163,0,0,0,0,0,0,0,1766596675,1918988898,539828345,1126777640,1920561263,1952999273,1667845408,1869836146,1126200422,544240239,892877105,1968046336,1881173100,1953393007,1629516389,1734964083,1852140910,658804,690169920,1920234593,1663984233,538976288,858665248,791951392,808399409,5242934,20971840,0,2097234,536887584,621346848,973081203,1543518720,14895,684837,6029404,774766638,1543527424,0,1635151433,543451500,1651340654]},{"sector":2,"length":512,"data":[1864397413,1634738278,1701667186,1936876916,1668172032,1701999215,1142977635,1981829967,1769173605,1224765039,1818326638,1881171049,543716449,1713402479,543517801,544501614,1853189990,2035482724,2019652718,1920099616,1090548335,1936024419,1701060723,1684367726,130416640,0,0,28639232,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,284,0,0,0,0,0,0,0,0,0,0,0,25264513,1,0,0,0,0,0,1127940096,1279870559,1313431365,20294,0,1280,66816,0,16908288,0,33947648,0,58982400,0,67239936,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1848115812,694971509,539831040,369098787,219677186,202116105,-63481]},{"sector":3,"length":512,"pattern":0,"data":[302846719,65282,0,0,0,536870912,168624128]},{"sector":4,"length":512,"pattern":-151587082,"data":[]},{"sector":5,"length":512,"pattern":0,"data":[30431821,393235,32,32833535,-1952710122,0,30,94240769,100728832,136708096,137297920,317128704,320798720]},{"sector":6,"length":512,"data":[68073,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1919243776,808334112,16842800,-852446128,1038124577,91357972,1979913277,400538126,162799374,856039885,1489719488,-1946160965,771752470,521606793,-785659508,268434049,79234931,-1948069120,386857690,1358685067,567086516,1979661400,403814957,-1041752306,-1337150458,1377947135,1511041512,540864235,154928756,171704948,1949056195,1950039048,1950170116,118407936,-1090495298,549000134,-1197149440,567097088,-401176530,804945939,-970060683,1544808710,805750318,-2118231020,487112448,-391329485,-92995660,1962916584,1947024629,104476241,242488296,108159292,41384508,1101717284,-391324437,-92995696,1962907368,1963801845,-350179323,537694219,343176764,393504316,495690286,-1172371938]},{"sector":7,"length":512,"data":[501749320,-1360322810,621215278,782756628,337905406,520528107,495455881,96874467,49906432,146675826,-58675939,202339642,1918975008,2004499462,-385225982,117374747,166401034,1946172588,168230404,-853953516,484876833,-989929334,331759242,108330762,-527775862,646498558,646452092,646452048,100668321,-729148060,-1193637294,567100425,-1023995022,1952059904,397523468,-1157706263,-941025315,113726206,977345937,496174791,-889323428,496047616,-1849794380,496353053,1918509517,-680155514,16743552,-169147788,567095988,108396348,-384298566,-889258354,567086772,-467760074,-1994453476,-31661538,338804418,567101364,-852155464,-568424159,-536441828,623097884,-854434630,891598881,512303565,109845722,616045788,306690597,118366669,-1273763398,-1172189893,-1418586070,523966091,486741641,567089844,-1273804358,1008848145,-402426625,516227651,1200299234,-391956990,71797276,-1573469954,1200299239,-324848115,267926812,-30010510,907290118,338101959,-952696840,-149673722,-1556723457,1200233706,-1947979249,653735624,20323560,907870982,907871137,485230083,905970181,907871651,484967939,905974789,-1960896093,15696380,1928870657,-1963357366,1468729423,-1960899066,-1608565986,-922872964,-813235788,1347899730,111289805,1064523796,407045831,1347949907,-466434938,-1172814429,1105729601,1599690756,63241818,-388767017,192220867,-1140897815,521017748,-32627735,-954365434]},{"sector":8,"length":512,"data":[1662611974,427080469,1477317609,-1957144488,-1407239370,259258428,192213052,-401232966,57937649,-1953486613,-1961032898,1092414478,-1426866126,-1273804358,857853210,-397389632,-387447534,221243402,-402399768,1038615296,843887629,-1088303680,-141878008,495455883,-1605371645,-218295319,242547886,-2145580865,1966735741,46629691,-12110101,-148154571,-554234508,1963130499,-8552441,1191277882,-1174403642,1001659656,-1889590835,-401837307,2092565382,58386456,-33506071,1192495878,-960497781,326934547,914968490,45093862,567093684,1946172544,-16398845,-1274848792,51809050,-2081780963,567090117,-960884300,169987347,860976576,7769024,990401512,1930700606,-147110364,-1992294028,-1961033922,138340599,486475519,486489659,-336919947,338116155,-348126349,1958743010,168216087,-1556086252,915085513,-398058237,-977663630,49211416,-1494543692,1964113024,-432633073,157607955,-401041478,233505496,336215680,-1173982206,-907536143,188645378,125042708,-1273745222,-1021194949,484589253,-1962586742,-750105901,64228066,521014101,521910979,-851967816,993430305,147227423,-1189244481,-1527578613,-1174403642,-1705894781,34996285,-1391606141,-1580168362,-1073012965,1950884980,522625080,-400715358,914948309,-1008198470,-1103722240,11921436,482489993,-350439238,-2014801876,10872832,480786057,-1996443416,-1172526538,367729828,9562256,479409801,-402626072,914948249,-1850073961,1033523740]},{"sector":9,"length":512,"data":[1577195008,-1375943037,-141821813,-288158799,2090625,522993280,-2095680256,175246590,338626246,-2096925584,-167047954,213779317,-784955136,522756124,-1960996446,-754601481,1072071150,-717846272,742293532,91488287,338626246,483375616,-1023293464,95535755,254142675,-930396160,-1056710447,51678142,496091120,-218102855,378532,-2114810941,-1023402010,95548043,-427692333,-1950154737,-754339342,2145812974,-1127841536,-722943225,-2145618681,1935934,113706613,334109139,433133193,-400962118,113639784,-1023402614,337985152,-1995279360,-400960746,-1598421072,-1979253221,-3741667,-2046709565,1007945734,-1106479872,-1779952662,444054023,-1006653464,571729,-2144951053,1965096829,-2092871929,-227407623,538983553,2088765045,309600258,-1180029264,-1527578621,-8552410,1325626656,-1070401813,1371756970,-850177456,335979046,1482316632,-1106742439,2095584603,-1008176117,376780425,-1173835288,-706210189,-358497536,377076508,-1962892312,185865486,-1593215799,-1447357417,9627670,336400011,158648587,-1156313183,-2115496252,286165760,1959332628,336830729,-401154373,463536240,1958742804,385334036,337919616,-1157401344,243996424,1441273463,337223936,108314635,-401173829,-358547384,252062492,319171348,386280212,419834644,453389076,486943508,390380308,-402642968,396427346,1096223,1589371639,2680855,-1944119391,283804618,280674859,-1142753536,333977459,-1952201984,484941853]}],[{"sector":1,"length":512,"data":[653780018,-768402037,484976375,-1994947933,-1994947562,-1994946034,-1172864994,31987584,-1705852160,34996285,1377276346,369114522,-340081918,-851725293,-2142190815,1320254,-1796733579,-1106449410,837293038,446282246,872303592,-397061184,1432159633,1977957760,334544435,-218100807,279990436,180847530,-1425404184,-1951677813,866846278,1487645632,337839814,608075777,427032596,-402652743,300678805,486278910,337985152,-1173982208,-102229238,1482382845,-384611906,-2142240357,1320254,552076661,-1106449410,-1108864021,446282245,-1191323672,1431502849,1560616168,-448954283,-71419275,768275,-1336892173,-947672560,161081354,-1413313621,-1425783157,-1414807501,587646552,1048576276,1946162212,112902,1576935656,1237211227,28305683,-2141693091,1320254,-2101727884,-1877546213,337985152,-402295552,468450735,-401347906,1002046796,-754530533,-31717607,-971142650,-15432442,-386050072,117374696,-1746330372,23849217,486278854,134661888,1426063380,-326898549,421935916,-1157204193,-1377232492,624853000,326369300,337788544,-1106479872,602412010,408205829,-1090611224,-57994379,2931031,-1956993805,-854477606,108954401,179205120,-399805248,594675004,-401347906,113706230,459807185,433260231,-843441145,-2063153639,1508441876,-26810114,-385803799,1371471694,334544659,-218100807,-402099034,-931986172,-1090628631,1149899593,1964025875,-289516014,465156627,1593624040,269700224]},{"sector":2,"length":512,"data":[-1962688280,1178280516,1444180998,-1173098818,-1410851916,1183538940,574916870,-1962695448,-1073011644,1149962101,1958742822,-289516010,465811987,1593608680,1149878323,642025764,-1962704664,-854412077,1958742561,-27334397,-1089252930,196678651,1973875456,323600112,-1475132278,1444050192,-1173099586,1340611513,1283481340,1256722451,1149982211,71711522,-339864716,464828947,1593587176,-1996208501,786965060,608471811,125157387,187057291,1444312256,-1173099586,333978563,-1070375172,-1994111863,182986308,-1261204733,169987346,-2094304064,1946158718,334215711,567098292,1048581747,1946162213,334151180,-1174167576,-1175971294,-45422341,-1034033781,1237188612,323286547,-2142735088,1319486,82314612,-2135495935,1320254,-1957490828,59500766,-401055302,-208929524,-394153893,1156972824,108333075,34817270,117377652,234951701,-2048191465,336660223,336793089,-2130740503,1319486,-1125644940,-1340151040,15132802,336398079,336530945,486358656,-2146798592,-386985116,1357447773,137822207,1149981460,1996443682,147227398,1461513919,-76486576,-1072997800,1001664116,309469645,1543357928,336070287,486293120,-383290112,-997982437,-386757880,783942360,-2063153636,1911095060,-16389636,-1962359677,46328050,-400918598,1048640220,1962939426,367770344,337985152,-1174178560,988288529,1440118023,340233043,-1962800920,323600375,147293015,-218095431,-1957273948,1474830964,1566268933,-1994111863]},{"sector":3,"length":512,"data":[1525229140,18778623,-1948349667,384311927,1393718528,1526803432,909899655,2087916583,1946158312,-1954747410,52233022,-165311746,-373092156,113639639,-973071107,1900038,486612617,-919347573,-2094893173,-479067394,485242427,-397157001,1952121064,45410518,2133082485,14346323,-142130853,338114107,-24950413,990278146,1981606966,-396930783,1337590283,-99162086,268417630,338050688,-1174178816,-397148161,1499136213,1944591851,-20876286,-2145583610,1319486,914951540,-420996111,468564481,-151296024,1963987783,-29458363,1047855132,337788544,-1606978304,-466477849,484976375,-1948125360,737184762,1461396551,185233958,1510372818,376619579,-1991157166,2139694199,12052518,-1174303000,-1712842010,-208971271,486612619,1962281923,447527455,24504402,-108861350,2005530163,611813666,-400132215,117309577,-1947525891,-2095388998,1962943615,645891035,-371886848,512491385,-24436933,338050688,-788040704,188320743,-271465473,965475843,116471,-271513484,-271454255,-410914863,-960294913,18091014,337839814,991857409,-24422881,338050688,-787975168,-1980562458,-775725548,66257902,-1947217417,-787582148,-773664286,-2115841566,-352317465,15171844,-1980101648,1455644220,-208973485,486612619,1493173480,-960274853,18096902,337919616,1442018304,-1957276077,317199431,-964469248,2144520,-1040276237,1593393384,247684443,106859295,338107963,-1464138126,69396761,-523041615]},{"sector":4,"length":512,"data":[-523120077,244044497,-511697688,200407008,-163810085,-1977817290,-470994232,-386692341,-142082272,-561251870,-147003310,486874763,-32277344,1397903560,-855637575,335979045,1482316632,1760036211,1609200644,1388575491,484589253,1426313355,-350286320,-2046709553,169084678,-2146601536,1319998,1253705333,-105977831,-1709885,337788544,-186072320,-972655361,1937670,1894595,-1709885,113640820,-402645615,-1950154751,147227635,1461513919,1593330152,496090966,68385952,984656448,334078122,-1963488342,-1273791466,-1407070905,-76169206,1593740110,1946172544,334077969,1962886456,179087873,-1442614080,11598059,-356596822,-4397037,-1088581186,1622417041,443687373,512900737,309681210,513031808,-1609861888,104471953,41164433,-1007041544,486751883,629865987,1951458314,-3896824,202645510,1476757520,53906371,-1169799651,243990530,179051754,-2027784768,-33625870,427094663,338247227,117377909,1153831961,166397183,453443472,-12270060,-689815032,337327755,57996811,-1023409688,-385946904,-941033294,-2063141129,259325716,109494323,-397405148,-1571291127,-389868508,-1161625599,2062030285,-385649405,915079390,1179000067,-1962933574,-1407391218,192153768,861074055,-38278958,1123190618,-1070338590,337315463,-2145625927,1319998,1522075253,337486620,-1608676445,-466477849,495658743,653775411,1386421480,1410763036,1443793180,475052572,-1007146008,486749835,45762118]},{"sector":5,"length":512,"data":[-368145664,145271836,27812980,1364615285,209735250,1996947329,-386757866,-142082780,338114107,-2091432589,309461758,485242427,-147125129,-286783372,147126011,-1168239755,1048580095,1946162214,-17917,-335732504,-2134575590,629148276,1997471615,199974678,1963050230,17662169,1521544031,-498966951,50068,0,0,484589253,235490699,53906207,-1085913571,-1561853951,-1957210624,-1950338057,1343649558,-1118416303,1189613682,1031823101,-2147126043,1752498237,337839814,608075777,1232338964,1343911305,229921618,-1581637171,-854608877,1975519777,6940677,-1564543509,768275,1558750451,-1178586368,-1426915317,-1425959192,-1951677813,1464289077,1593858536,-1413313621,-1185392037,585629697,1482250998,189423199,-400526126,1465253921,65795979,1079531866,1482167010,376903209,-971385414,1937670,-1007325208,1358915817,-1992538196,-336300968,-1447143690,-2147156461,108935484,1311769798,-1017187349,-768360397,24507915,-68753213,994113415,1930700598,50234117,512421747,-13493017,653779959,-1950147352,185868342,-401705738,117372582,-1070394334,-941076400,-2143894537,1313854,-2143917708,1319998,-986291852,-1977818594,-315486385,1334507915,106400520,780672782,512433415,2090868539,-1261896173,-813215487,1347899730,111290061,426989588,486999806,407045831,1347949915,-466434938,-1172814429,971511873,1599690998,63241818,1506796247,487001658,-1175976587,-1264618496]},{"sector":6,"length":512,"data":[-1172189939,1001657392,1048584653,1963004938,-230430717,-434730442,-854674404,1857733409,512308761,-2143938192,1935934,-952760459,-1038519802,-169154535,-434730442,-854674404,-1337150431,-1675506177,-635502802,1963080732,-1075250422,-1337150209,-819868161,382021371,616045786,773967141,484316869,-853204040,-971043295,1313286,-1258322712,-838881204,-852708319,-790507487,-773729823,-790507039,-1949431058,716460753,-377413171,-1047853124,-523107151,78759434,-523116333,-1839545846,357809859,1539179499,1364414485,-1610197166,205263878,212861558,-125049806,-1785993263,378082479,914953597,2075792767,-180164587,1377147578,369114522,201439234,-397401651,207156534,-2012857824,974091284,1947502854,-1979303413,-371624684,-1073021074,1499094791,1455642715,363402889,1377150906,369114522,343194114,567085748,-1091240472,2088768630,-462159617,975178924,1947502086,-2029635062,-352160748,1589643987,65475,134217728,1061109504,1061109567,1061109567,0,0,0,0,0,0,65280,503316480,1061109504,1061109567,1061109567,0,0,0,0,0,0,1229324288,808469836,1212362800,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,771764013,3014702,538976302,538976288,773857312,538976302]},{"sector":7,"length":512,"data":[538976288,8224,0,0,0,0,0,0,0,-134217728,1046287,1627389952,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,1853423616,1247900265,1699114593,1918979426,1299345473,1967815009,1819626094,1399289153,1666150501,1987006068,-916232892,-535505132,-166401516,185924372,487919637,924134933,1310016277,1769101077,1881171316,1702129522,1107326051,1965057121,7629166,544501582,1684104562,1631715449,1868767332,1851878765,1631846500,1107321204,1663067233,543976545,1836216166,1392538721,7038309,762212174,542330692,1802725732,1667584768,544370548,544501614,1853189990,1867382884,1885433888,1459647077,1702127986,1969317408,1375761516,543449445,1819631974,1766064244,1912630131,1768186213,1996515182,1769236850,536897390,620768833,1919230067,544370546,1679848229,1702259058,1728082725,21,1091920640,1953656674,1699881004,746156660,1852262688,1063613039,360906784,673215269,692989785,-1677713345,1342177301,1633841010,543517794,762212206,542330692,1802725732,1124732206,1769238127,543520110,1852785408,1953654134,1936682016,1751326836,1936615777,544175136,1701603686,536879219,1851072544,1868785010,1634887030,543517794,1869771365]},{"sector":8,"length":512,"data":[1852383346,1919509536,1869898597,221149554,538976266,1986948931,544502373,1701996900,1919906915,1869881465,1818846752,620765285,543368547,1635151433,543451500,1634886000,1702126957,658802,333977135,1680153995,1936682016,1818435700,1702130549,1713402738,1684960623,544106784,1663067173,1852399976,1308634739,22,1815684352,1931812964,1953461280,1679846497,543912809,1667330163,958726245,622879852,1931812979,1684103712,1667592992,1936879476,1815684352,1931812964,544417056,1746953253,1701078121,1768300654,7562604,1684814117,544417056,622883621,1768169572,1952671090,1701409391,958726259,622879852,1931812979,543434016,1919251317,1818846752,620786533,543452217,622883621,1680154739,7546144,1684814117,544417056,1819635575,1700929636,225649952,538976266,538976288,543434016,1644196645,1936028793,7235840,1868785010,1701995894,1768300644,7562604,1684814117,544417056,1767994977,1818386796,1852776549,1936286752,958726251,622879852,1869881459,543973748,1869440365,620788082,543452217,1713402661,6645106,0,388694016,5937,168630068,1125617152,1869508193,1212358772,1263748171,1310744864,1870099557,1679846258,1702259058,1125618432,1869508193,1212358772,1263748171,1394630944,1414742613,1864393829,1396777074,1313294675,1679844453,1702259058,1226289920,1919902574,1952671090,1397703712,1919252000,1852795251,1986939172,1684630625,1769104416]},{"sector":9,"length":512,"data":[1931502966,1768121712,1633904998,1852795252,1125643520,1869508193,1212358772,542263620,1914728308,225734511,403898378,1802725700,1920099616,622883439,1095114867,1680154708,1584128,1140850688,1667592809,2037542772,7546144,496048199,538976288,1931812896,-1860675584,225649949,538976266,1752457552,1953459744,1970234912,3040366,487069797,168653605,1176510496,543517801,544501614,1853189990,-2147471772,622694680,537529715,1866670112,1767994478,622883694,1869488228,1868770670,1734964334,1937076085,1869373984,779316067,-1860658432,1090519069,1931504748,1768121712,1684367718,1818846752,695412837,1701994784,1852793632,1969711476,779318639,219728640,1920091402,544436847,1853189990,1176513636,1918988320,1952804193,1847620197,1931506799,1768121712,1684367718,1124732206,1701999215,1869182051,1998615406,543976553,544501614,1998611810,1953786226,1948282469,1768169583,221145971,418578442,1668248144,1769173861,1663068014,1869508193,1868767348,1852404846,221144437,628303114,424411251,0,1701603654,1819042080,1952539503,544108393,1818386804,1633820773,1919164516,6649449,1970499145,1667851878,1953391977,1835363616,7959151,1635151433,543451500,1920103779,544501349,1701996900,1919906915,3014777,168653605,1931834149,-1860582400,29,1936607488,1768318581,1852139875,1869750388,1763732847,1869750382,1679848559,1667592809,2037542772,1158286638,1702060402]}]],[[{"sector":1,"length":512,"data":[1818846752,1763734373,1869750382,1629516911,1914725486,1634037861,1212358772,1263748171,538968110,1145586464,773870153,1634082862,1684368489,1920213036,1735289209,1953259808,1634628197,1830839668,1869116517,536882788,1632116768,1852383347,1768710518,1818435684,1702130549,1713384562,543517801,1853190772,1702125923,536882788,1850286112,1768710518,1970479204,1768172898,1952671090,544830063,1920233061,168636025,538976256,1936027460,1953459744,1769497888,3044467,1176510496,1953722985,1970037536,1919251571,1836412448,544367970,1763734377,1818326638,221013097,538976266,1953391904,1948285298,1668183410,1684370529,538968110,1819033888,1952539503,544108393,1869771365,1931488370,543521385,1969906785,1684370547,538968110,1851867936,544501614,1868785010,544367990,1852121134,746156660,1869770784,1936942435,543649385,1953394531,1702194793,536882788,1766072352,1952671090,544830063,1948283753,1818326127,1696627052,2037674093,1869488172,1864379936,774774898,658732,1142956064,1667592809,2037542772,544434464,1852403562,221013093,538968074,1851867936,544501614,1868785010,544367990,1696607790,2037544046,658732,1159733280,2037544046,1935763488,1646289184,2122849,1802398060,1953784064,1969383794,1929405812,6650473,168653605,1226842144,1919098995,544437103,1802398060,1864393829,1818435694,1702130549,1680154738,-1860450304,1124073501,1869508193,1212358772,542263620]},{"sector":2,"length":512,"pattern":0,"data":[622882676,537529715,1920213024,1881171301,544502625,1936287860,1768910880,1847620718,1881175151,1701015410,1684370291,468910126,958733713,1646290028,1936028793,1936286752,1886593131,627401569,1701996147,3040357,7218,0,168624160,538976288,538976288,1870077984,543452277,2123106,1970040662,622880109,1919098995,1702125925,1879056484,622694684,1931812964,543434016,1869568,1937664,544417024,539780133,2122789,496049305,0,1663394853,1663394853,2122789,7340,7569,7569,1663394853,1681010725,-1006607579,-1862270948,788529181,20]},{"sector":3,"length":512,"pattern":0,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-805306368,35]},{"sector":4,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,536870912,858927408,926299444,1111570744,1178944579,1684234849,26213,0,0,0,0,0,352321536,1364350208,1448562771,-326427130,650053390,376343296,7768894,-85402829,624733185,-1073074060,-1108867724,-386733311,119472601,1532518238,777869913,2229903,604409646,-13740032,771761206,2242303,26667211,1017957355,1022784549,1010791469,1011315755,1010725964]},{"sector":5,"length":512,"pattern":0,"data":[1010463852,1010659888,1010399033,772699440,474755,772175104,722630,179851312,653733376,-1557266425,844627975,774909156,460289,-30536469,-352321018,117321221,-1427439613,645158972,108159292,41908796,1480384292,1144787572,1128013428,1396451700,1323835508,-11409151,84330030,-953285120,268437766,-1870927104,151439150,-352318976,-30502799,1442842118,-1014762613,1921728002,1048587778,1962934278,3976202,-504874124,775351040,462475,225757451,37650478,91553792,2680918,1017927262,-402295808,-152371008,1048587870,1946157058,244002316,-922025977,132645748,14149632,-19273378,179098163,1107522752,-903087893,-2115501194,-1957248256,46367731,37915454,54427694,192151552,-1014762613,1384857090,855829250,-1959898158,771754294,462475,-402650136,-1897398192,-379692288,1347026575,-768359797,-661915913,-2013857960,-1039445798,1392997464,1543497704,-2144465941,574,568853365,1019448064,772633098,278144,772109568,329218,503319739,534191886,1239121,-921975975,-1607595138,-397344757,-497483772,-2119515143,1946172159,347718401,-1959898368,503316510,649731854,-851397632,-1084547295,-2117926874,1946167039,653230560,-389051648,868483035,44183232,60960256,94514688,128134656,113651200,773849099,-1023408478]},{"sector":6,"length":512,"pattern":-151587082,"data":[]},{"sector":7,"length":512,"data":[-1173627415,87886320,-1172605952,37554645,-1173130240,138217883,-1173654528,188549511,-1174178816,521013624,-351950360,1914817804,-850545454,-89969119,21817610,1527182894,208929035,1527182894,57934347,-820950039,1527182894,292815883,1912732800,217874674,-997986953,46856454,243281408,-83621029,27336462,1975520011,229920774,-145219123,-16079098,186742015,-400722496,988283445,-1911393533,-1274370298,-954086071,698118,-64040960,37808138,-393494477,-1576335710,484969223,17185024,-955878389,-16056058,1529250047,104397579,58002169,-117365271,-1070378805,1543931438,1958742539,785395205,-1017640196,235536570,82372639,184565376,-2096073728,721214,465176949,81061898,-1157698565,-873985472,4096004,443875339,772447393,-1593829725,-1557263714,-1600061430,212020746,1275115520,521019853,184616647,109969408,1236536357,512434637,1353976474,-90103347,-113344502,41222154,113688627,-16708871,772445742,177604239,-1744400594,118380554,-1191149377,-1510801344,567103924,-1709274834,-1940868086,773967307,184616647,-970063743,17496326,-113344466,1685323786,-1258291269,-400437944,537198602,1943550720,-12523253,-1320612936,-1008151804,567101620,-970002574,719110,203793198,99614757,326242304,622234414,1003684620,721974992,16417232,772043536,772548001,772544419,51127713,512306904,-1209529611,785918975,183443081,-795948916,-1912119876,9431256]},{"sector":8,"length":512,"data":[-4657869,50759679,-49909,783549556,1048781261,1979648769,-17962749,989950952,1946875670,-1509505514,384303370,23259137,183965243,1374160244,-1192039679,567097088,202970760,1966078592,-2007191290,-972285426,697862,-1089727554,109985329,-1174664465,-836039641,-173955853,172810,183316223,-889191960,-661957808,-851179336,184840993,621145024,-789118975,-389851045,-389349375,-617414374,184356491,1578635,141871674,567099060,1576584,1961769539,-851528696,422479905,79921920,-1275064391,1126288702,516159970,1370771539,-611442227,3415749,-1557264501,-1607595356,-527826918,1532495753,535347999,-15931136,-1269804258,-1591620271,-611448156,3415749,1532495753,62571295,-35395319,-401935200,-227147926,151255681,-1075313803,152812034,-1962755608,-1962219242,-972362954,-400293564,1153827498,767164417,44099593,-1023409688,-854849608,201373729,1170416077,-1207260742,567098624,71110771,-1173981952,-1897330242,-5707523,-661920277,856965306,1107343561,275915213,508034233,183443086,-1275002694,522308927,1052004508,-1655168563,-1053096846,62568564,-9115639,-1910590997,-1106579682,-1665597184,-372114374,61723187,13796304,-1021314846,-1207793478,378086690,512491530,567083020,-33473350,-1172189760,-1057094421,-1161616947,65538394,-1191677438,567086081,1596256626,203949626,985858421,1963730694,-71042590,1364657694,-1948414384,-2010250172,235463974,147046151]},{"sector":9,"length":512,"pattern":0,"data":[-2097149767,-1527575866,-396404392,521076405,29222994,-1572797350,-990508873,-167086976,-2146900730,-1729559691,144227841,1946273014,144752131,204226185,1381389598,1504990033,1499144653,526212698,177290889,177407628,-125049806,1930686339,835331,177538758,285180672,-8190604,-972720879,17470726,178405001,1980891011,-1191670979,801965312,628490044,95733643,494022605,504010146,-678748410,855637945,-961613120,-400228539,1170604338,-350289665,-1794718184,1049296906,1049168940,-405730654,123780491,334035591,-1791066111,91488266,-352254232,145275438,-1962868248,16574678,149227254,-1173785472,162793659,334176717,-402083654,1048576230,1946159782,-34543610,-2080512023,252355134,508632181,-1858681593,-1967171830,768264,1604645884,-1168564474,162793591,-826662451,11593736,184878838,-1274710785,8907011,-854851144,10086433,11804684,204146234,-989956748,204015162,-989958796,204080698,116828533,1946225499,4096026,141819915,-401972550,-18153362,-1559585631,-4718570,-165556916,-16059898,113640820,-1979643149,-401908714,-771032245,1048776052,1946159873,17221382,-2080375029,696894,1048774516,1963068066,117884434,1048772619,1946159873,17221382,-1962934517,-388527164,520617258,149338831,-1174401560,132647088,-352145408,146324202,-133581744,-1017634355]}],[{"sector":1,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127010692,128255899,129435570,130811847,132777945,134154227,135923722,138086444,140445775,1953067607,1919950949,1667593327,1631724660,1853169764,1311011945,1914729583,2036621669,1684095524,1836016416,1684955501,1631855648,1109680500,1663067233,543976545,1836216166,1394898017,611018085,762212174,542330692,1802725732,1667584804,544370548,544501614,1853189990,1867392100,1885433888,1462006373,1702127986,1969317408,1378120812,543449445,1819631974,1699161204,1634887022,1631985772,1920298089,1750279269,1852404321,1767252071,1952541807,611217257,1801678668,1869174304,1769234796,1227124335,1818326638,1142973545,543912809,1851877443,1176790375,1965048387,1635148142,1650551913,1394894188,1769103720,1646290798,1701209717,2019893362,1684366691,1344562277,1935762796,1850286181,1953654131,1936286752,8299,0,0,604638464,1684104562,610758249,1953067639,610758249,1920099616,606106223,1769104416,1092642166,539232781,1769366884,2123107,0,218103808,1648436234,745828975,1952797216,539785586,1869506377,541025650,168624164,1701603654,1819042080,1952539503,544108393,1818386804,1633820773]},{"sector":2,"length":512,"data":[220474468,1986939146,1684630625,1297040160,1145979213,1297040174,1227098637,1919251310,1768169588,1998613363,543716457,1852383268,1769104416,538994038,1851853325,1953701988,1701538162,2037276960,2036689696,1701345056,1701978222,226059361,168633354,1836213588,1952542313,1633820773,543712116,543321962,1311725864,606093097,1128618053,1767990816,1701999980,1159989773,1919906418,544106784,541415493,1701603686,1344539149,1919381362,1948282209,1646292847,1948280681,1768300655,1852383348,1835363616,226062959,168633354,1713401678,543516018,1701603686,1851877408,1936026724,1684095524,1836008224,1684955501,544370464,1701603686,1835101728,604638565,1701012289,1679848307,1701408357,604638564,1699547661,2037542765,1819042080,1952539503,544108393,1869771365,220471410,1851867914,544501614,1684107116,1297040160,1145979213,2037588012,1835365491,1818322976,610559348,1631783437,1953459822,1635021600,1126200434,1095585103,539771982,1953069157,224882281,168633354,544239444,1702258028,1919950956,1936024431,1650532467,1702130287,1663052900,1869508193,1868767348,1852404846,539911541,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,76800,0,0,256,1]},{"sector":3,"length":512,"data":[-16777216,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16777216,979304448,1600061487,1600085855,1600073311,979304543,1600061487,1600085855,1600073311,95,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1846238720,-2147483637,1543503872,1811939328,-1962934272,3,758066432,1879048193,3,1493172224,1767993934,0,0,0,0,0,1213481296,1329791037,1162892109,1127169347,1095585103,1127105614,19791,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1274585668,-2044605136,51658208,339543410,-1173195261,162796454,-1064558131,369506598]},{"sector":4,"length":512,"data":[-838962176,1483040,-1593140061,-1633484790,827658,-1207263069,78712047,-913512237,631488771,-268425972,1930428421,203792643,-1593043037,512491522,512494621,512494625,-173863915,872859402,-956284140,169095686,1225505280,-355269455,-274480597,2924810,108314635,337446654,1085803499,-754667252,64654568,201696194,12107918,-2011050697,973871382,1964256022,338468881,-2146176350,1318206,-1574566795,431226894,-1057087027,-1609894750,-1073086372,984884852,67826850,1048640832,1962939421,520494611,-1107255361,-1866923875,530903808,959270,335586300,-1091118616,-1968439168,65876680,218416881,-486506050,984369480,1947479302,1946762486,419838706,-385649652,836960480,537701449,125134396,184878790,987294719,1964256774,458271,-1643722997,-1945991158,-2146787298,-15462338,113687925,-352316400,26536374,338626106,113641333,-352250864,805714598,-1995344620,-972357322,720902,336594630,24176897,-1955240644,-1404466717,-2022360516,-1014244557,-1404486173,343027772,276248892,-745852884,-489561391,-472786429,-454305789,338495034,104471412,359926809,-1404485661,338495034,104466036,-260764647,770392398,-952021360,1323526,16482568,-954304640,169095686,-1594130176,-2095943168,-338620477,-338564143,512355281,149623858,331266704,567085492,-369160983,1095631082,1448203915,104483244,158602285,91490620,-253033757,-12270010,1023588352,1181884877,12114059]},{"sector":5,"length":512,"data":[-165556924,125141186,567099060,848311531,63602934,-851181128,1540590369,62476635,-1260702976,1126288702,-628360734,567100852,567100852,567100852,567099060,-379460775,113704609,-1207954403,78711872,-628299565,94618115,-1597993460,1149768749,-1957077249,-1407967682,755382857,1007252500,-1442483191,-269810973,-1105309354,247010290,1166681600,43903231,1229324917,378250483,520492062,-851640136,225582881,1052039307,1582899661,1055466211,322747134,1025554664,57999425,-401377862,-222428578,507415315,964884,-622091021,184565376,103707648,-611561292,567133070,-1207956801,-1934949752,1018735576,-661869823,82557099,-1411871573,1449612,-1207806022,567092526,1483015,-1945461597,-1593829858,-39649256,152996874,220105740,287214604,178896652,337524363,337460864,114854912,1958776351,-1105261028,1460016160,-1962802200,1595868919,-1962249465,-2129387978,235684038,1049175583,2088766185,108345857,-385449178,-1431567862,-92946422,-348223194,251602442,-1977218325,-2146765786,-2010758972,235484966,205372191,-338492239,567102132,183568070,1086195201,48916,183436942,1363737785,-972832373,-388823887,64588864,-284804159,91379978,-336357144,1324417802,-45090557,133997811,-1980508184,-1156909290,1219821567,512303565,-75426764,124915712,-1995440197,-1273744354,-1910387384,906757406,-1911814749,-1946799168,512440062,-472837068,-472783919,-1992891439,1259615262,-320286157]},{"sector":6,"length":512,"data":[33129216,-651490188,-347995021,-1527541755,-1070338837,186584746,-1173981998,-202894428,873368320,-2083837164,-372174655,-372119087,238807505,74585138,338824841,338828939,567102132,336608896,-385649664,62587018,-850873344,-1552846303,113642151,-1912403204,-1325452352,-1070355968,-4674645,702975,1048620019,1962939392,-853953525,822477345,335585812,-1189871426,-1510801400,-1206648646,567098624,-661976974,567099060,-397391893,463667286,520050708,1094521881,-1173981952,1609044871,-1492742656,-850807798,-1492728031,-973078518,17497094,-1558329672,-274656239,336831242,336666367,184630915,-1173981952,803738385,1527170560,-1679228917,-919382288,-1073069652,-1017185675,-2146766943,17494334,-1940713100,339785931,-388896559,-388896559,-1017396477,-2037680,-15460445,1477711134,378163907,372773931,74714137,74760762,338429498,99140442,-349277696,-386101183,109969448,-13431803,-1403562415,1191197928,-12240346,-203292043,1952013919,585650444,-2144970496,-529203139,119456761,-396886389,82509836,780375,-2013713575,681624569,839052052,16824768,985902834,1913923846,705051144,738359060,-997997792,-225749498,83143,13590029,0,0,168626701,1919117645,1718580079,693250164,760433952,676548420,538978642,1936876886,544108393,808594995,538970637,538976288,538976288,673194016,1866672451,1769109872,544499815,1919117645,1718580079,1866670196]},{"sector":7,"length":512,"pattern":0,"data":[824209522,758200377,909654321,168626701,1393733632,1768121712,1684367718,1297040160,1145979213,1634038560,543712114,1701996900,1919906915,1633820793,658788,1884492563,1718182757,543450473,1296912195,541347393,1918985587,1679845475,1667592809,2037542772,1684103712,1667457312,544437093,1768842596,168649829,1091780096,1936024419,1701060723,1684367726,1996491277,1953845011,543584032,1769369189,1835954034,544501349,1667330163,658789,1850282889,1920102243,544498533,542330692,1936876918,225341289,1850287114,1768710518,1852121188,1869769078,1852140910,1769152628,1931502970,1768121712,1684367718,790891021,794182980,5132099,0,1127153664,1095585103,1127105614,19791,1096563200,1162826837,776160600,5521730,255,3269888,1853952,917504,1397575491,1027818832,796549437,1685069916,16739]},{"sector":8,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,567086772,857640494,-18370,184747655,1962934077,-852577276,520039969,-315408847,184630915,235238911,316139807,-87520004,-1195585394,-1064371384,857640502,113653310,914373647,1016202950,1961692032,113718793,218184720,1048582123,1946159871,113647120,234883839,1024834079,567098292,1564377119,175374347,190594688,-402426624,113646321,-1946154247,1356369608,-1203193670,567097344,889596760,280711998,1541666560,57987595,1040187320,58065408,-1543634907,512638548,116801075,1946225404,445835279,116787826,1979648860,358475779,567089588,1044881974,190580470,-385649409,116792119,1946225404,443213832,-488111246,117896719,57999115,906529257,1037960902,184993280,113639435,-973075702,722438,178718455,108331007,-352153624,1048809550,1946159873,-16867,184628871,859608255,1101704393,-109769412,-2011230647,-348351730,163090474,-1205744291,28466440,521019853,-1271132230,-1977496310,842796814,63013869,-1086582850,-1527563118,-401292568,108271446,-384151831,1877475578,235631390,886815263,-382765592,116850310,1963082091,691962862,-546045884,1097744003,-1093110784,-1379976044,687978558,512434637,2139111785,477444609,-494921846,1746283231,1962884155,1816038156,4030529,1072236149]},{"sector":9,"length":512,"data":[366012926,1403127178,-1189040066,-230227959,705212590,1051566785,1442873791,-398682946,-391375792,175379540,108268860,1043793466,860811381,1017818313,1341841421,-772345973,8392328,1883147102,1245612353,1949731646,1979059009,-1074427134,28835932,-1574843095,1049312840,1049182587,915095116,-167034497,-175439243,-1207931713,567093505,-1958852190,-1992194498,-1958851010,-146706370,725492695,1346275652,1051566142,1045632650,91607562,954845438,364898581,1043537550,184630915,-385649409,-1360396718,1465255677,-1202499503,-1064374272,-29458394,141884927,1498962936,-1022927265,-1900019528,654259136,-1437254271,-2147153292,-268419840,-521409166,39684646,-472776910,-1014766639,-2132573825,442367,1192069670,-921965262,-1023212427,-225716245,1957098310,-2080832761,-454360121,1950301312,540835845,-1943081099,775956998,1076379273,-1147474951,1219821567,1219764685,1347625421,505750200,857640494,20036158,-628350515,1512030862,567104948,-2135238002,-853888000,94447137,2925324,64654427,35031507,1255836672,-1992107378,-1912602346,16482778,855798288,-754667045,-1898279709,870550482,-789098304,708247342,922693184,-1030864856,96725195,-2117926542,1949646330,520039955,393494077,-402100248,111287360,880720395,235050216,762439711,519862761,1609047822,256045,-1194661089,567086088,-854851400,116835105,1979648755,-234437112,-1326972662,1016381439,512678028,922684071,922681345]}]],[[{"sector":1,"length":512,"data":[-661782525,1006931688,1952078138,-1492715737,1962934026,512630318,378079911,243859457,-1205927933,567099904,-670644434,872415048,-1877939255,-402597400,116851275,-62809,-389827979,-2126446017,1929412857,1948597292,222079538,-276697739,-947176299,1016308262,-402513176,116786413,234949372,-1160547297,1323842708,300804114,1947024579,9496579,-388764758,624689663,222087028,808239988,154941042,-1952959881,115593688,178718350,91720486,-97529,-1910597260,1225434910,1947024556,-108969713,57868416,854715306,-1242882112,-8656609,-1363192034,-1439693762,-1442729240,326438204,-12204506,1051639296,-400617889,525271446,1023370985,-1327401691,1166550589,1051639551,-397336818,106499978,-1962471905,74604535,1325494760,-13375201,178718455,24510463,23718083,-260764356,109971139,-1910096333,-1274272506,119655753,109971139,-4506061,-850873089,1219777313,643506637,-1559485021,-796180925,1963982629,633506567,594931712,2474635,268436976,-1960437390,51127574,1926249427,1003195406,721973976,16482776,637825808,638330273,-1559488605,-661963211,-1020540788,1096531,190571511,-1207733038,4063231,620983810,1420033536,-389871810,109974772,1978154547,440854534,654273256,604699808,-1763160063,1029422592,-1961521432,-1195146791,78729472,1219816403,-1557782067,1424493223,637950719,178718350,443942,-1070399488,107302,238374,376648,179953547,-1951665408]},{"sector":2,"length":512,"data":[-1096485942,179911828,275179520,494144828,-1993996573,46367551,274655404,1017775988,-351636467,-1441943309,-347480093,-1430244644,-1324393075,-1259613436,119655754,1048780550,1979648769,17221382,1493168139,184297168,184288776,1358556649,109981190,-1591329229,-1073018201,-1912204428,-850807616,-1070397663,178758438,-64040922,-1017641206,178957392,1492809152,508646339,183699190,-144804353,-16079098,106329343,178718350,17204006,-2094661376,790,-1899459577,-669086760,-294072,-625336971,-1710322872,1428065083,-851463103,-473396447,-99710688,-1982123192,-1974937570,1128848007,1224351291,-4521102,-669087233,1964653640,857640492,-9967554,-1342021400,-217647603,113704714,1946159859,1016381191,233556275,184630915,-955877904,-16056058,1532567551,79321283,299297081,1044776646,-1257847040,-1107296185,1105723521,1947024399,-1074885659,11876943,227210635,-348658873,-1408207614,1193642534,91538490,975228032,-1611734332,495712515,1973307207,222080219,300463220,-388926193,-469823740,1044780790,1203046143,861320427,222080201,-169306252,1090745358,1027404779,222037876,-341014668,1027386613,-706207627,1947024398,-1493999847,-2142365836,-1200353988,1947024556,247916723,-5179787,1558789099,-1175933697,854226190,-1406211136,1963896808,1059896058,-853933896,178977,1203052035,-398366280,394991976,-1207957831,567102976,-1070463630,-1332739093,1174861567,41221950,-1073032970]},{"sector":3,"length":512,"data":[1072235380,241887480,-377368949,237502593,243925120,243794048,-1799406445,-1527514052,514461104,1043537550,184944326,1927880703,-8656391,-617477449,1947024556,238741748,808193140,-403258490,-1014578430,-1910576405,-1975635170,520813094,-482688974,-922839181,512660459,-1482605005,1975520010,-1064385791,96458894,41258240,-218101319,-12745819,898362228,-64057,1963801772,3965179,898227060,-1492715581,1962934026,-35264502,1947064296,-104597264,857640643,-1492715714,1962934026,517092339,178724494,71305,202377,-86382561,-1191158337,548405259,24489714,199852865,-1993418249,-398513138,477298611,594819644,1023253224,-402033398,208863139,326384188,178718455,-394919937,234901736,955496991,-401609751,-260898937,771775935,1059851915,-397343253,207224167,87696928,132842101,975577132,1204385029,1357441250,1048784637,2097692460,1998601220,1947024567,-46274553,-109769412,-386058520,784531457,1096097419,1912994691,-851528700,-234437087,516096010,178724494,-1207952966,567098624,378215538,243990529,773783555,-1958652509,1107343576,-953278003,-12003322,-628374529,-399196486,126489033,-115392468,42133699,857640494,20873534,1979645963,17221382,-369098997,-437520758,-1911879519,-1161785640,12060107,-2094936806,345406,117376116,512427335,507184455,-629209783,-402653000,1334515556,-166229245,1963196999,775392022,943418784,192282436,943370305]},{"sector":4,"length":512,"data":[57999684,721600899,1161724874,410255365,33703926,1334511221,-1876825339,-1194773679,567102976,-1878594727,-850460488,-18399,12059506,88449792,-1888108533,1270822795,-2086341883,345406,-373421195,3964933,1973683060,-1430244616,-772290253,-1799365837,1142852156,1261865477,-1207497210,-639107072,158829334,1174702662,343221564,276116536,1270765126,178957317,1341841600,-437559743,222054826,-772350091,-1827764178,512634428,116801075,234949372,639202335,16729542,1074661063,1606040724,645785652,-12204506,-153294579,-386474775,1072234844,-62199551,1043531406,121536550,-344653813,1564377126,57933835,856738024,17492178,624746354,-393487499,1975519916,16443604,-551170190,1896233951,-1396280005,376750090,997000762,126073717,155681538,91194114,-12285182,-773323285,983986688,1966828806,16548000,641340020,58014574,-104727,89128711,-1877808314,1912647656,1862679428,-385452741,-974520753,63605755,-293403273,997105667,125043768,1912639464,-1947407383,313082,997131835,-397999756,-697171844,1004527397,1966830342,-1073042227,1776863349,1354985984,1465012563,-1998039722,9103609,-402585413,647764106,-401930077,1570634119,1499094878,1014126683,922691078,1225198344,243869263,-1993996985,637880638,88348296,1158072102,-1946157307,646457029,637994571,185009918,20874022,125173515,17221414,-1006698485,-382126406,994184448,2101618966,-1193637107]},{"sector":5,"length":512,"data":[1172849001,-1388868843,-1007041544,857640478,958315070,184630913,108396288,184616647,-383778817,105909456,856067630,144778814,1958742795,-1064434168,567101876,113714695,2824,117884454,1476853771,1097447619,872415162,1005990857,1933846798,-388396225,1997214952,-54069497,-167217793,1946223175,-1171854584,2112435907,1976109836,92242709,-2095680509,1199768327,1199768329,1870856963,-92077307,-1948486145,-1142210093,1045051017,-2084556206,276103162,1066130059,973176192,92931701,1613504524,-402629470,1068499968,-1191158337,-1426915317,-1556198751,113721214,15946,1065748166,-1342068713,-1342016511,1046127109,-952215134,4086534,1059895808,567089844,6035082,1527334120,1962933123,-1273525483,1914817870,1090975247,141836351,1045038791,2079064062,1001658251,1936925133,990082955,843674838,-1274247479,-2044605125,-1975684340,-857145532,-1978370807,-991363516,-2044824567,1001717580,1283858893,-1256098817,-9684422,260770677,-835989881,1946352003,939702799,67258358,414843765,193390901,774782081,2088766581,108331010,1045038847,1556025835,688830464,1015030221,-16485376,1396591118,-1174126872,378093356,-1950728155,595978296,-294053,1048778612,1946173002,-402031600,45746142,188410168,-351808024,1426507433,113704704,-1274019749,5618193,-397401651,-27785282,-385649216,117375186,884883035,17623103,1065223926,-385649663,116785288,1947221823,932821512,-350012696]},{"sector":6,"length":512,"data":[1343654678,169249087,1377209152,202803519,878099008,-1591532824,-1073004724,1572822132,548950078,-1957123296,2041304,-1014247286,-388823631,-259387612,-372191350,-1048318670,1694072912,-377486478,250210404,1061817995,548935907,-372135136,-372119087,-372184624,1221140106,-394212480,-1070395286,1046330026,1074665097,-399220806,251536063,544554585,-1572971872,-588759463,-2045837817,-166234817,37715462,113643636,-401129594,116064377,-399219270,313795219,-855616070,-14161631,1046152951,58064895,-1593921559,104480346,57949785,-1173905688,915093039,914964059,1692942359,-1976126430,-855614442,-49887,-138215051,-1545340959,378093593,1169834011,575007030,-1187095105,-1527578616,-1180032848,-1527578621,1386922035,-1992401478,-1170207210,619197535,-1161602526,484980397,-189274078,-1022934296,-1103496774,179044480,-399674176,222037824,1448224372,-1405806406,1946631144,1963801604,2132819190,1448762899,1929889768,742293518,125042752,939702878,-1173776407,-1336330984,1560688672,-2081328128,-247790655,984614773,1962820664,353888739,-398853702,222037744,-1914120588,970504711,158584436,1076641408,-352160768,-2110354497,114485311,-105247428,-1337363399,918796858,1946240056,7126847,-852950600,941666337,1946184966,129674287,121497654,397682292,-855614278,1979661345,96139530,193456181,1358934098,1476768232,24428798,1139301059,-262870751,-1022819351,-402619970,222037624,-105249163]},{"sector":7,"length":512,"data":[150137145,-167114264,37761030,129631860,149088566,-851640136,-1173195999,37565720,-1160940544,-386319912,-907474119,-1224292856,-661979065,1043668622,-2144415181,4699966,-1959877003,-1270983666,-1960719041,514122696,1358902023,-1359865168,4034904,-2147060480,1964703613,1237854986,-164755698,1397208854,-1275067973,1528941888,-1053095310,994688116,-1023314495,-1207959109,567100416,1971372790,106424818,-402619970,646579672,113639516,1006633052,-2011728883,-1409262554,1966750892,96397319,108268860,-382309958,-1528297416,-1090052603,-5242795,-1413467222,145795755,196691882,-213929984,1059895978,567089844,-1275046470,-383660783,2028475623,256005,-1274711319,1344392496,497280050,-528066496,530834482,934525504,505425641,-402252018,108135283,4030502,1927809653,-398544896,988479578,1191545382,846512138,996935226,1206388084,653126400,-1152973430,-1073071580,-1014817676,63891459,125044538,1962950528,114420721,-16314793,123666775,520603371,975223491,-1340091671,-1341002947,-1609700581,149633899,-348427616,996777987,1460084230,1075953490,935115434,1512025832,-1262287009,35769625,-398759930,851705826,1059897042,1201733259,-1270807490,950053690,-142104002,1074675337,567101364,1932812218,915192323,-1021348120,-1174401304,378093356,1606041614,526772276,1544981187,79858176,1967144000,1191576070,1354825278,-1270927426,1931595079,-383840763,750716382,1490520895,-1599391052]},{"sector":8,"length":512,"data":[-1012253128,-402490904,712247418,-402501656,-1058536734,141355010,376716092,1947024556,49473553,91503420,1946439656,49997829,-1070339349,82363307,69855232,1031808707,-1173719808,118372503,-320266482,-2095118818,-141883921,-2130528280,1946222585,-1090056474,12205960,-2016335103,-1163594799,521024579,-1155610903,12058625,-165556924,1282703554,1947255542,891926599,-1031003699,-852156232,1002474529,-1271564336,1007734031,1007252995,-1274711033,-1022309120,-617411660,263459021,-729149235,414632702,-930365389,-1274609477,856739078,-1275021358,-1022309118,-1405476162,-315438966,-1968437580,-501101104,803783673,-2142351865,58014268,-1207958330,567098626,-661974926,-851181384,-2134706655,1051987317,-541449779,506587192,848308715,63602934,-851181128,62477089,-1260702976,1126288702,-1269040670,-1272853179,-1272853179,-1272853179,-1910387394,507392798,-1560274783,-189265155,-1899278334,641610502,638229665,637540003,638230177,637536931,638230689,100666531,1044579982,567101876,642561031,-854918496,15722529,1442938344,1577151464,-389873291,1642594643,1340823041,-402608151,-126615208,-1403593933,259263804,-143311556,1015071742,-17795827,1592585159,108317694,-382139206,-397212348,-27590480,-389843761,-544538314,1442910952,-1514217593,309560,91596787,1097336518,1593543425,222080086,1239942516,1593240321,1097350784,-392989696,109970052,-1447084493,-1260418294,-2145268455,1966735740]},{"sector":9,"length":512,"data":[-402355702,1093402896,637716355,183058057,-1574518530,1074006772,154640934,-391316597,125043288,57937212,854846378,113683136,1325416808,-348223194,512672522,512638515,-164426747,1946172544,1065926560,-1073042772,1136327285,520494644,521981672,-1715542293,-1107039432,508967070,1912612328,-386430192,-142147428,721485032,-216070450,-1017241692,-348612162,949927427,1912604136,-1870926862,3008764,1043531406,84315686,1375679244,-391358634,642187376,1979663674,1609818626,-881567394,5695569,1031808601,-102730496,-1962467645,1105745918,1459940096,1493188584,-108529365,222068931,-391316876,1239941176,1966947328,-2134981648,-1073042432,-2115438732,-1022542847,1043531406,84315686,654258956,1946172800,452846,1035007467,-1070464277,-234815303,104514478,141704058,997918266,539755127,-903938258,1397867336,-1962916632,48989145,846396219,-397192880,-2091126813,-75431229,74612736,-1878332423,-338492239,-850742205,-1912169439,-398576890,-1660424237,108222553,-382372166,648676236,1479,113465691,1220578384,-1591295858,78708739,-930357037,516097880,1043537550,184499840,-227270912,-1271065158,841076027,101050560,1045078467,1045431819,1966523322,8502835,1006682088,1175417869,1966750892,-1310173680,222060032,-68679819,10086651,71362755,1076889334,-1274645246,1931595067,939703023,-1021620760,1912607464,-851856372,-1158384863,1860712481,456714245,8502979,1006662632]}],[{"sector":1,"length":512,"data":[-1960938483,1911074006,1007252480,-956926707,-1023344828,16729286,5695574,1947024478,972667634,-1007042509,1929367272,-1274645234,1931595066,945470194,-402315032,-1077732622,-1031127787,1077690372,100796021,-1057079737,942049962,-1422217154,-141877498,567101364,521067634,448418499,521018938,521849576,-391330982,-93061116,540853070,1027406708,742193012,993850228,154988404,171764596,571843,1948269740,-119363071,1948269740,-1595897325,-2035664000,45198020,1948269740,-119363069,-1012219854,-2130938458,1946222460,1358294006,1464929712,-4588917,119408383,1170648818,-1996029697,-1170207210,1491612767,-12204518,1594126861,247683161,856067615,895072830,1547599910,108265483,-1173816344,-236373666,800346113,1043801656,792462452,1547436660,378192728,585629788,49342719,1076889334,-1273596670,1914817851,74704912,1572814768,768256,-1070421261,-2110354493,1149914687,-4331265,-231005068,76164212,1962914536,-219460093,998285392,1476478008,1149897844,1949973759,-6690799,-1007091083,-1275067194,1931595067,76202775,-100694296,-617416843,-1274979194,1914817851,22841580,1174671592,1076770441,-1207935809,567093506,868455363,-20256549,1043793466,-880675979,-398032896,222101180,-398006412,-1782579880,375099,1974399632,112649,-670310189,-773073941,-382309958,-1964441316,1958742528,980140025,-1363228365,1192069694,238742755,108347053,1065488009,60794611,-1576695047]},{"sector":2,"length":512,"data":[-1958265275,-1639495907,-1847010187,1158084098,192151870,171853984,1010714886,-1095404289,1307065492,-2110389250,8503103,-1431516877,57937212,-1997018303,-167739378,37635334,233311093,-1173981952,-1444333885,-371982592,-1084758030,-2135031679,-930436096,933293362,-234865602,-960274514,4081158,1045632650,1051530888,1076299462,-1380298240,-365303746,-33066150,-348117242,1539280897,378429,1076313728,-352095232,-1008168938,1958742792,277771,132842364,-319034992,-393198613,109969900,1236549187,109978061,-31048141,638253318,184485574,6078208,1387919243,-1163529472,96157019,1258338316,1076299510,-385649409,-1047729587,1572655502,959381255,-1172369858,937964763,-414652136,110020915,-1799471565,-1392604356,74785340,-135543298,-210432708,1017968523,-32475870,-2012449587,-1040300283,1965178028,986578678,1966828294,1963210808,-31020026,-401929722,222100788,96865653,113714701,592651,1459656937,-1962210369,1017906911,-395807731,1668611356,1043793466,-341156492,1778793197,-1960872645,-50403106,192220476,-955447866,155049478,1466231552,-1958879553,118359775,-527775509,1954348160,1764112902,641692987,190594688,637891840,184297168,1543962150,-54335477,175377724,108297276,996738618,520494197,-2046685975,725266656,-293921,942016372,24510277,-1430244785,629694215,234651719,-1040317068,654258153,190594688,-1089178624,-1993995392,-1106543042,1978154132,1017818364]},{"sector":3,"length":512,"data":[-1996851955,641504014,190594688,-1022947840,-1409253186,-2136742862,-2110355137,805750335,113639488,-1962917844,-1958772170,-1958772722,1363010518,-43259818,1530889379,56221227,-472478773,-391362261,74841275,1076627198,91569980,1076891264,1963342338,-2147125957,37761038,1962677224,923154950,1322546494,75939890,1963801670,-1996191742,-1992326602,-1019248626,-1409253186,-143343606,1006633960,-391331059,74841060,-160089284,1377747790,777081680,1043537550,190594688,-166890240,-16054778,166200949,5564416,1515739993,-2144419041,4054590,236910452,1038006815,-1958936392,522309080,-661976206,1200029616,1614360,-400617789,1094516857,-2146929664,108281343,-382366022,414907900,146741,1035662708,343349,733670772,-35198667,185286272,-2143456256,723518,196747124,1023522827,1528941904,-768406158,-661927629,-851311944,1024846625,1962475525,185318056,1018480947,1528941904,-661939342,1200029616,1679896,-919383869,172076284,737834432,1942182129,1364434173,106256214,-1269673954,1495387481,893237851,1946173757,-1950119164,1560747985,1532583519,-689388643,773770239,1043537550,184630915,-2130283520,-16056002,-1329389585,512630273,-6144461,516103946,512634450,1589263923,-851332085,191805985,567099828,70445146,190645958,-1161617664,-622315260,-383840513,-392364772,1381040005,-398893382,521076681,1511343592,1094557016,-385649408,1273625856,857640676,1560739390]},{"sector":4,"length":512,"data":[-853953525,100806177,1856125800,190757643,-466483320,190916232,191964808,-919350389,567106228,-661932942,567099060,-1274319174,1914817882,-1260876891,-400437954,915144324,1048775550,1979648769,17221382,-336592885,-64585680,915144202,1017908094,772437116,996738618,-1981217932,18254592,1023457292,57876941,-1946197015,-2030063400,413276231,1016381184,1015073075,-385649395,-1607532735,70794089,1015084404,-1393527684,1947024554,2084323647,976095092,1966827782,1170613998,776539647,1016270472,2117503310,51809035,-919383796,-851705672,-1502455519,-5187445,-1575467130,377946137,378080257,233507843,-1827764178,914968124,602409854,-383840514,-1159142212,20873726,1978662923,17221382,-369098997,-1943084226,104739614,-1899459554,-1160212800,12077240,-954086088,218136838,-1845049856,113737788,218184851,-402625304,119472492,-1948677173,-1295348797,-2030897564,280466116,189315233,1209365696,12001908,-402638360,585629739,2484224,-1023399960,-402646808,501743643,1435648,-1023402520,-402648088,48758795,-1964053760,39315653,1220780227,-1047870550,-1023259416,-1073035638,1122501492,-389903870,-1094516163,-773324671,1947024632,-1874203901,-399049542,1575490443,923843080,-1206680856,1555707904,-1960719104,532327922,142100535,1949773498,926792195,-1273796888,1016248842,-402652487,567083532,99141939,-125966334,-2143513410,-1435235012,189315233,1210741952,1525170292,-399871488]},{"sector":5,"length":512,"data":[628228233,1912619752,8382496,1088953202,-1401982464,1786055996,567094196,1651884042,2484419,1659395186,-396922368,1383202851,1912625384,2091085,350803947,-398233088,1047658569,-352320792,23849189,-192228750,23324867,-389819254,-93191843,-402166599,1318846505,-2146143075,259263804,-1973111981,1541666500,1055443083,-1965329919,50377924,-373636152,313649206,-1392564503,-244043972,998245946,104524660,-445367434,-2118204423,-137435136,2087980348,-399623493,-1947664146,-852708352,235296545,1046331143,333971891,-1430244608,-1992401478,-1170207210,1760048223,-1017182446,-1007237750,-1223527041,1913404513,1953543942,168569858,-1342016064,280449804,-402594584,-1047920599,1526783208,-2134641069,11998069,-1979705112,13363398,-1438072416,-1024933238,-1007265024,-1967622785,-1597789497,-1012250427,-399023430,-2065165809,-1161219073,82327415,-2078373102,4450363,930276724,-768357749,1947024556,1958951462,1975990788,6547494,-192274062,1947024556,-1056556526,-401312440,259129425,1017959562,-1274514163,169987373,-1163103040,-1125632177,-1263604975,1016248842,-402652487,567083104,1508428083,-154015744,-2143513410,-2022437572,1912609000,-1393259902,158647098,91539258,11728974,256195,-389819254,-93192176,166256778,-721128960,216041994,76202753,-109957076,1928661564,-725399820,230983178,809250864,-953548171,-1012203337,512672682,645938739,150801243,235625230,1344193311,857640494]},{"sector":6,"length":512,"data":[-2034224578,168516614,-805014336,1477114926,49951,0,0,0,1381061456,-962832809,4199942,1194264263,-1070333953,-1090173767,-1426898583,1185744583,113722413,17451,1143539399,-1799487488,512630332,1048591923,520096519,767496309,-1964166586,-29584626,-1096485951,-1346419155,-1994345658,860303670,1728497389,-236453823,251914485,-318043789,468193652,-972231936,37754374,1929384424,-1660621862,-1660752904,1516199673,-1017619623,1465012563,1726520406,691962624,1333608516,512489354,117392425,1773683753,8579137,477127,89098496,-1962772600,-1991856842,1463157559,-1980290239,915080055,2005485361,-1946711287,54963518,754942457,722828613,-1527513863,-1985347408,-1656312514,-1207243784,65732609,-1660943688,1516199673,1354980185,-1671999149,1946273782,792625948,460652359,1194270347,-398366280,1862860824,724437255,-335962812,1143578888,-1656279133,1532583928,-1974418600,-167005245,-1023190045,50067,0,0,1448235347,-157526697,54618886,-1008139404,20768768,-1203293254,567089664,-218044410,1197344396,1197489801,1197620873,8436487,-398632002,-697171381,113759883,912869299,184648680,-1955892032,1029423080,1097414283,1097600651,984927787,1912797571,23345157,1201670260,-1421802434,-1414724117,201517443,-2133816800,1688232170,-108811705,-1408601599,1678129737,1092514887,-141863346,-850984776,1593740065,-2142804832,158597181,1946172800]},{"sector":7,"length":512,"data":[-118798589,1963210922,-481737214,-375065854,116785289,1963213163,-1959020773,725707798,-2126419690,-398631998,-393543526,1978469279,-210526713,1894498355,-1958913089,-1958256114,105340982,1197356799,2088773127,880094722,76162641,-1977219704,1166541124,1197776897,1442989448,-2146137562,-360701750,-2080928928,12059590,-400437945,-251397925,1593740110,1493419651,516827911,1197356799,-1527514081,1688227615,-12240313,-1096154764,-919386266,-1073042772,-980682123,1583308189,-1017423526,-399527856,125105231,1688362160,-1564256185,-1017624732,1465012563,-471294890,1185923071,1197618827,1197487753,1580662558,179052359,973567168,-1442614073,-1994394389,-1975033290,-2118110248,1950789631,1197776925,1962886458,-225727999,-1073042772,-1346700683,-1291401402,-398930873,-620101616,-123927436,-107150613,1499094878,1381090139,1385977431,1941895819,-2133707961,1966735741,-2146072056,-360652830,1191229504,1918509517,1292607,-850526024,-969117151,4678918,1197868742,3729408,1197803066,1705120638,1196539463,-1186502977,-201588723,1946696868,1292554,-850460488,-1596296415,183191397,1202919051,-1207063832,1587347456,-1017554337,12080727,1196539648,-67105351,913682162,-1106907261,-947176567,-1492617817,146277749,-1960580352,999145208,-1492617817,79168885,-1961628928,999407352,-1492617817,45614453,-1207702784,1599995904,1364414659,-1672063150,1097406091,1097612939,1946172800,63605550,725708302,783303119]},{"sector":8,"length":512,"data":[-1951468804,-2083902513,-885324565,-24439425,-201526645,-1331015772,-1431655873,-1649803088,-1660752904,1516199673,-1017619623,1465012563,-2120460970,-1325050941,-1192504572,567101440,-393526158,-1178563066,-13433532,-213816898,688819108,-1094700220,2085175657,-388396252,-1752433432,-701808279,-1961391834,725707927,1468606166,1922534147,651569985,-351709303,-980744231,-107150101,-123927829,1516199517,-1178379431,1572732939,1060940800,-102628747,1962998147,932035120,-1106473240,-695533440,7865543,-854848840,-469062367,-1310136460,975178993,1966835718,104514305,-392414329,1973285267,-1173113648,567083100,74760446,-1007635992,1555700404,-1272853248,1344392465,1492165096,-30074694,-1170377536,-169265859,9758963,512627314,108346931,184290944,645972737,-1006761220,1946165480,8567305,-370040600,512684351,512376371,521014012,-1174281344,787167659,-1091322903,837288065,-1022542607,-1207938584,208810753,28444021,851648973,-1021194798,1979703528,-843042085,-1160082911,-790087277,968538635,58055434,-382094406,535301059,771864576,58002034,-20766259,-1021194808,1979691240,-850086741,-1160213983,-823445088,-402619970,222097620,229452404,1866276896,1024488558,477455983,1008733356,202732902,839052134,-661938240,1022406632,-1962576627,-1007116605,-113740358,1554010307,1010828288,-1610123968,100810311,614611816,-507881408,1975519799,1046331159,-574695541,-528160713,1060421199,-218100807]},{"sector":9,"length":512,"data":[-1430244444,1075975817,-382216262,1460013851,-2000746738,-852839361,266901537,-149428224,-1163214798,283653187,-1017182453,-422449013,-964562941,-645187899,-218102855,-1440698204,-1547684925,1168326672,1083286337,-1556196702,1319321174,1096262462,-1572852061,765607507,1083220544,-1572851550,1201815699,1076666945,-1572827230,1235369237,1044816449,-1556026461,1403208017,1089315393,-1556001374,1235369552,1095737918,-1572779358,1537425742,1095476030,-1572976478,-1918680948,1089381184,-1556074077,1923301524,1059889983,-1572935261,-1555545776,1487028360,1082892862,-1103090526,512360577,117324663,113656167,855719958,1089388525,-1677155096,1095763710,1954596854,1325843973,-940179135,151876609,155078190,-1656860626,-672451726,-164728163,74809543,1044973310,1096261974,725675710,1077002182,782485251,755927104,-1527561920,1076903560,1045300935,-346161152,1329496230,343212353,1044987520,-2146601727,37834814,-1262877067,94431541,-1572778080,-523223480,1201856720,972667457,171854240,1006924992,-385649150,750645640,1963015232,1044881442,996673026,1187396276,834601473,113748800,15950,33834694,18118,-2146992664,1963065726,943370262,1967141382,72253454,1077133058,18118,-1962450456,1031799422,-1172998912,984627202,1979598136,4638374,72253442,121956358,-1590246470,-475447728,-1450150529,343146512,567104692,857640478,-1545326018,-1205925117,567094785,-2118193869,1998490112,1089388347]}]],[[{"sector":1,"length":512,"data":[-167279384,-176881209,1045310985,574967,1048579189,1946173000,1309066757,-1588198335,-289521321,-1077531840,-956088172,-2009034333,1094750222,1049142515,-1956757357,82831557,-386965272,1625818345,10742016,-1174228504,915093022,914964059,-588759024,-672863992,1044921984,-1168149248,378093716,1304051720,147187764,-382396230,-1588198282,-289521321,-1077531840,-956088172,-2009034333,1094750222,1049142515,-1956757357,76802245,-386988824,1048577165,1962950216,-1564462325,1453538898,1045668414,1095054985,-1120070209,2011709583,-1858696443,1048625984,1962950991,-8591101,915139891,512377157,-289457289,111667264,-940119182,-152669056,-294321721,-1073771544,12058716,-2145268439,376766524,-2143251295,41171708,537673904,1554145324,-401492992,-392429305,1956506737,-12261117,109494322,-1073070504,213453684,1064484608,-213963586,-1564462428,1049313609,767443089,-313399233,1044921984,-167283456,37786374,-1799745420,236357952,878688832,-402137368,-907481849,1212055552,175439934,1912706536,1376175621,1048576062,1946173000,41412620,1082918646,-352160513,8775692,113663861,-352305581,-1942060896,225771328,1095054987,1082996361,1082918598,-1947388929,-1975433930,-1086621922,-756530962,-2134379003,-940166540,-386894591,-1024917832,1051574251,-852950856,1064549153,-1958826306,-398421698,1048577069,1946173000,1225180677,1474887745,-19207681,855708136,1045603008,-1572972893,915095123,914964621]},{"sector":2,"length":512,"data":[149438789,-385649664,434765381,-166546177,37786374,-469105803,448024771,-851497798,1555716129,169987328,113689536,-1174389178,12075156,1931595069,-249042927,4275612,1035601525,116516917,-661929059,1089150601,-849936200,1360431393,1393461569,1140897857,-494919219,-317290368,-2146601920,4278846,-2017851788,41478457,1089150603,1045696139,1045829259,242600491,-2147391256,4279614,244016501,-1910620588,-1270991586,522308927,-930392718,1048596963,1962950893,1312718855,460587073,1049350539,447757910,889622022,128905790,117310837,725696070,63605713,-1992403442,993941006,1916687374,18081804,1095581312,-351243008,-314670961,125042752,1044790912,-1954450432,-1270813922,-1021194946,1045642880,-1594329856,585645646,-1959496702,993941022,1967019038,13297673,-1007091084,-1910580429,-952224482,520100359,1045825279,1095304902,1095475456,1045825027,20776306,-401968128,-696975200,1095450243,-1954712576,-1958705122,-1958653170,-2143203050,4278078,750006644,-506453555,-506338864,-506338863,-838144304,-852839343,-1125547743,-773224953,-790179615,-790179610,-2132356890,-703987499,-2091256438,712900859,-849935944,1107474465,-896806349,-804576819,1140897948,-1269685811,1512164670,-150243939,1962967234,2025477,117376235,117325403,-1007141293,1082662539,-385892120,113704968,15963,834333931,-851332032,1218495265,115888190,104486912,-960283064,4279558,1045577344,-385649664]},{"sector":3,"length":512,"data":[1156055171,53012481,1048581749,1962950893,1212055567,-1262878658,-966888395,21055750,-2143485512,4278590,1018430581,834324787,-1172189888,719861134,-1556188433,113655944,-1962852782,1140898008,378020301,-1024049014,-1607306112,203701838,1319111029,1241909825,2048422977,1946724384,1140963356,-897518030,-1978234848,-350106304,-965350644,71388678,1095175808,1228832772,494207041,1963106792,-314671080,292880448,-399122246,113706139,15958,1095567102,-2011264061,-2016857280,-482454002,1258749939,1228832833,1517617217,-1910582733,-1270991586,522308928,1916099002,1959275295,-1979255085,343179328,1082787574,-2146798304,4278078,1950989941,974502587,1045628670,-2147204376,4084286,512432500,-75284344,-1274774016,-1172189890,1102331953,113648077,-385860014,-768345294,28889479,-2145268414,4081214,1085587828,616767949,1343257100,1252132900,69490753,138497698,-1606334714,-1073069746,742293699,209059648,-1120070209,-538427348,-399775744,109494322,-1073069941,-1964440715,775326464,1055506240,-852950856,3964961,1170605172,832666625,989626432,1085276788,1095634570,1613504524,-1606489694,646594608,35995795,1958742530,1975794195,1329496079,141819969,1082918654,116113458,-1004404172,101378256,1218593103,-790572994,1095213792,1095384704,-1574669056,-922074802,-1073078923,243997044,333659734,856038064,889622271,128905790,-1991309963,-1153542594,1048592173,1946173000,1064549123]},{"sector":4,"length":512,"data":[-1958810946,-1186976194,1017905160,-1979550401,1948269575,-498882047,-1341935119,1946433568,998285331,1060940970,126485109,24387644,-236829782,-1012219854,33834742,-712301963,-1207582077,567098624,-661973390,-851181384,-851528671,-2134706655,1190544757,1064567812,-2147133813,41171710,-897564494,1625980960,-1947742232,96633813,-2147189110,-8386841,-1961396986,984810102,1979604024,4638214,-972690686,1308688454,-8363285,-972720894,-1023410106,-1259537176,1914817851,872057635,1237879744,-1605390606,1187397176,1161429504,-1442482945,16795334,100945536,-1023392280,18118,-167477622,-210500409,33572550,-2147322229,678690876,998252170,544480312,1547188915,-972720898,1308688454,478599986,988586216,141885276,567098292,-1082975098,-532354567,-2147320183,-1593048762,146357121,-2035617024,-997807420,-1426914383,-1012219854,-1799466927,1077002048,1044844170,984672650,1963017272,103460103,-930464920,1161312944,-1979026175,709314309,-1975818234,1978219240,-413865949,1149967988,-11695105,1489052240,104469109,74791808,149677066,998247994,-318111115,868440408,1463716288,1096458817,-1975428190,861379832,-571953975,1007908326,1022784544,-2030930935,172055302,-370510656,1048576291,1963016214,-447027197,91603770,-343879808,1963801812,17099011,1043793466,65602421,943370753,-401378028,-391380672,1049166140,113656151,-385859239,1049165989,113656151,-2147466919,20977214,82321269]},{"sector":5,"length":512,"data":[1343911399,37636000,-398759930,984613136,1476463592,1096236681,1096353478,-2147075584,-32934597,-968795642,-12494586,58015548,973262720,1966830854,47153201,1097285248,-351963904,8382757,1048577972,1946173786,-1342000126,1495673407,-2031455679,-2046172191,12249313,-136126074,-1729568378,-2145290778,1048577231,1946173799,46659077,1049186165,117391703,113656151,-956350119,4282886,-1409250328,1075199616,-402426623,-639048584,1009939685,976122893,1950234374,1958951464,1966750756,373194767,91554368,-352296984,300631762,-1157671191,703150552,-561452568,-107126962,1072385731,-2130587776,-394264371,1011279248,-1341557491,-847140352,-521453568,-402641944,1460069408,-1090056623,96025493,13467904,1974399552,-1736437,112831,-401874733,-1341694119,-1654674944,1101710328,1096353534,1173699,911563,-1008388376,-1459173586,-352320965,113716743,80809,-1957342468,1347637740,503731799,-1413544178,40799035,7768894,855819651,33155291,1948597420,1958742550,25749509,-1947667733,1577524993,1499158623,784554589,1000343238,624733184,976151412,1950053894,104476232,-411813001,2013674030,776107067,997787194,809253748,960249714,809253751,-2094133387,3908670,817104757,-1473869778,-1590800325,179911588,1524758272,-360647118,784466736,-348412765,113651372,-352240736,243281572,-352240735,786375836,998180410,976100212,1950055430,104476189,527711101,2114337326]},{"sector":6,"length":512,"data":[-400133061,1474888019,113716991,1063846,-953258773,171681286,-396104960,-1031143122,-402599448,938017075,535320319,787647233,1000607371,192203019,-1606516690,57999419,1442850792,1958742700,11069445,777975531,1000357504,772568064,1000607371,57985291,1577060328,-385813784,-768344330,-1073042346,-347995276,-903127304,1743258486,-873938176,868387584,1048587986,1946172321,12380163,-1959897517,775661110,1000607371,1577061352,4253787,-385830168,1347026614,-768359797,-661915913,-2013857960,-1039445798,1392997464,1543497704,-2144465941,3907646,333972341,184254464,-1014824078,-2020987386,-397331408,-1017577454,192858379,1000906798,321617,-1007033767,268403114,-1023314884,-2026132551,1959734223,-1959898122,507226398,-1413865714,-851397573,-401968351,104720457,-349539328,1959279364,64654116,440369368,1528765300,856067630,895072830,1543960102,108330763,-1158891544,-1377224354,-1017438235,-2081191082,-1958870333,1578404658,784348099,775659682,775659938,-1338268509,-1465766368,49979,858927408,926299444,1111570744,1178944579,1073763109,-2009839820,542319935,137644288,1815684416,877723748,1074544650,1543525157,155192884,221537024,1952530954,1713399907,543517801,1936943469,224882281,879165450,1850280461,1953654131,1936286752,1769414763,1646291060,1751348321,1818846752,1628048741,1881171054,1936942450,2037276960,2036689696,1701345056,1701978222,226059361,880803850]},{"sector":7,"length":512,"data":[543449410,1835888483,543452769,1713402479,543517801,1701667182,-1073739251,1886733364,1633905004,1713399156,543517801,1701667182,544370464,1701603654,1953459744,1970234912,168649838,1177869568,543517801,544501614,1853189990,658788,1632646407,1847617652,1713402991,1684960623,436210189,1667449141,544437093,1768842596,168649829,1228221696,1718973294,1768122726,544501349,1802725732,1634759456,168650083,1328889600,1864397941,1852121190,1869769078,1852140910,1886593140,224748385,895156234,1701603654,1701995296,1869182049,1919230062,225603442,897056778,1701603654,1851876128,544501614,1663067490,1701408879,1852776548,1763733364,1818588020,658790,1866675600,1852142702,1718558836,1936024608,1634625908,1852795252,1936682016,1700929652,1701998438,1886348064,658809,1850291638,1768710518,1768300644,1634624876,1864394093,1768300658,1847616876,1713402991,1684960623,-503313907,1681466677,1818838560,695412837,1886348064,224683369,906559498,958742544,1766203492,1932027244,570433577,624957238,543452217,1702132066,1919295603,168650085,422982400,1228938048,1818326638,1679844457,1702259058,1701868320,1768319331,1769234787,168652399,1127631616,1701999221,1679848558,1702259058,544434464,1814065006,1701277295,1635131506,6580588,1951610475,1701538162,1797284128,1998616933,544105832,1684104562,539893881,539893806,1228312064,1818326638,1881171049,1835102817,1919251557]},{"sector":8,"length":512,"data":[-1358951923,1853182774,1416523597,1700226421,1969771620,1399419462,168653921,1635151433,543451500,1702125924,1127668224,1701999221,1679848558,543519841,2126697,168638187,1702129221,1701716082,1633951863,2123124,1831352062,1684286829,695826733,301998138,1684285495,762146093,975796601,924909600,762935592,1680698733,540682596,221720576,1986939146,1684630625,1835627552,1056972901,1920287543,1953391986,1835627552,1936269413,928055328,1850018317,544367988,544695662,1701669236,1677729850,1701986615,1970239776,1920299808,1495801957,1059671599,540506368,1380533308,538976318,1295486720,1329868115,1700143187,1869181810,824516718,807743076,-1694473166,524295479,4400448,1075918777,1819235872,543518069,1679847017,1702259058,543368480,-1073712347,574628919,544434496,1935763456,544173600,1700946284,1850277996,1768710518,1768169572,1952671090,226062959,938344458,1650552405,1948280172,1919098991,1702125925,1919509536,1869898597,168655218,1228407808,1818326638,1881171049,745043041,1953459744,1919509536,1869898597,221018482,544370442,1701996900,1919906915,1869488249,1835343988,226063472,941817866,1953723725,1701868320,2036754787,542002976,1327526511,168642118,540564480,1701996868,1919906915,1718558841,1394941984,1996491277,1312826680,1632641135,-1895798668,1413566520,1380990280,1414548815,1297040189,1128616019,1986939197,1684630625,1769104416,1763730806,1702043758]},{"sector":9,"length":512,"data":[1751347809,1952542752,658792,1850292397,1768710518,1701060708,1701013878,-838858227,1650543672,1847618661,1713402991,1684960623,-520091123,1853444920,544760180,1869771365,658802,1175271669,1663062607,1869508193,1700929652,1936027168,224683380,956694538,1970499145,1667851878,1953391977,1835363616,226062959,958398474,1702129225,1684368754,1702125929,1818846752,1919230053,544370546,1769108836,1881171822,224751721,959971338,1852727619,1679848559,1768038511,2037539182,1634038304,1713402724,544042866,1701060705,1701013878,1610615309,1163018809,1763724097,-1996480397,1380275769,542721609,2126697,1128610197,1763725128,-1577049997,1717989177,-1392506355,225341241,968163338,1635151433,543451500,1752457584,544370464,1701603686,1835101728,658789,1850292668,1768710518,1970151524,1919246957,543584032,1634886000,1702126957,168653682,1161419264,1919906418,1769109280,1735289204,544175136,1769366884,168650083,221903616,974585866,532488,453261852,1112158811,-834399687,304825638,1209151303,877400609,307187218,1360157520,1901335079,296965663,605496671,50336316,810831694,1380256264,1280462674,1279612485,1157957876,1414744408,50333831,55724356,1376128269,1296125509,272367941,1313165827,84950017,1396789829,266600773,1279607811,68150273,1162893652,51426305,38618450,1124335876,56184911,1342514945,1163089217,68146946,1163149636,69098242,1162692948]}],[{"sector":1,"length":512,"pattern":0,"data":[52387328,5391702,1443041706,1409371215,1145242129,85352705,1229211715,375456082,21253378,1292179108,1380533323,35038209,-402570158,1297220886,22169924,1107629800,1262568786,103154688,1230128470,905992518,1163068198,340460116,1330794502,39080013,1342444593,38294593,1157894852,5523800,1124340739,56185940,1157895070,38750275,1191454145,38753359,1392839017,1413892424,34152962,-536721847,1329988359,193987154,1397506819,1258240,1044151361,690563108,1145981184,724380239,2053205068,1481851716,741228334,2037395002,1329802862,1480928845,1094856261,1094866516,2119504]},{"sector":2,"length":512,"pattern":0,"data":[]},{"sector":3,"length":512,"pattern":0,"data":[]},{"sector":4,"length":512,"pattern":0,"data":[]},{"sector":5,"length":512,"pattern":0,"data":[]},{"sector":6,"length":512,"pattern":0,"data":[]},{"sector":7,"length":512,"pattern":0,"data":[]},{"sector":8,"length":512,"pattern":0,"data":[]},{"sector":9,"length":512,"pattern":-151587082,"data":[]}]],[[{"sector":1,"length":512,"pattern":0,"data":[14703181,131080,4849696,16318463,-1344011776,2555904,30,851969,79822887,39]},{"sector":2,"length":512,"data":[1,0,536870912,858927408,926299444,1111570744,1178944579,1684234849,26213,0,0,0,0,0,352321536,1364350208,1448562771,-326427130,650053390,376343296,7768894,-85402829,624733185,-1073074060,-1108867724,-386733311,119472601,1532518238,777869913,2229903,604409646,-13740032,771761206,2242303,26667211,1017957355,1022784549,1010791469,1011315755,1010725964,1010463852,1010659888,1010399033,772699440,474755,772175104,722630,179851312,653733376,-1557266425,844627975,774909156,460289,-30536469,-352321018,117321221,-1427439613,645158972,108159292,41908796,1480384292,1144787572,1128013428,1396451700,1323835508,-11409151,84330030,-953285120,268437766,-1870927104,151439150,-352318976,-30502799,1442842118,-1014762613,1921728002,1048587778,1962934278,3976202,-504874124,775351040,462475,225757451,37650478,91553792,2680918,1017927262,-402295808,-152371008,1048587870,1946157058,244002316,-922025977,132645748,14149632,-19273378,179098163,1107522752,-903087893,-2115501194,-1957248256,46367731,37915454,54427694,192151552,-1014762613,1384857090,855829250,-1959898158,771754294,462475,-402650136,-1897398192,-379692288,1347026575,-768359797,-661915913,-2013857960,-1039445798,1392997464,1543497704,-2144465941,574,568853365,1019448064,772633098,278144,772109568]},{"sector":3,"length":512,"data":[329218,503319739,534191886,1239121,-921975975,-1607595138,-397344757,-497483772,-2119515143,1946172159,347718401,-1959898368,503316510,649731854,-851397632,-1084547295,-2117926874,1946167039,653230560,-389051648,868483035,44183232,60960256,94514688,128134656,113651200,773849099,-1023408478,-829665028,1525210766,1913046790,-16705526,638218758,-1560280415,350751348,-401772027,141690321,-1111487656,57935857,-402360855,-1326971675,55109635,-353832334,-803304957,-388285943,1048577050,1962871258,-786527737,67954697,-1174300952,512363216,149424592,-2143718909,-16131522,1622806900,-786527733,49670153,-1830279566,-399084284,-773324165,178102528,177800763,1956724339,-1408881910,-1475986678,-399412726,-437583374,-2130115656,1946865914,151631875,-1173703517,82511710,114342544,-1174138904,166201712,69068804,178456262,-1873614077,-1593766936,-1331492240,-2030063606,1007327238,-1173261057,512363360,-2065167919,-390761982,-982186975,990556321,1930079238,17033221,1889661675,179086090,990551457,1930074374,13297670,-2080410903,696638,468190069,2091008,434701173,42658047,-1976368712,-854991850,178495521,567102644,-402028870,-1161624692,-1847064241,59697155,-402428184,-392428234,1922892676,-1168981014,-1717499503,179610378,-1559585887,-1499395402,179872522,1510169576,-1269673021,79923712,165520192,1023429352,1979252757,145209875,179570375,971508189,55437315]},{"sector":4,"length":512,"data":[-134194456,1405311834,121158226,179570375,568855005,118667779,-1559577695,-1113519436,179741450,-402456856,552076056,-1559837181,1532625674,1398387907,106386001,567139123,1499094791,1048626011,1946159578,-1758035953,512425738,2011695568,124930,-1169010493,-773322448,76081154,-1581033382,-1365046670,-2030063606,1007330566,-1173981953,-722990240,-1547685120,-1616835909,180200202,512385457,-1162212911,-1506899190,179216650,-401947229,141754912,1946105576,-10753808,-401954143,326369324,-2147311640,697150,113640821,-16708957,17473798,17477638,-16077306,957004550,1913305902,-1626931264,1364247306,109977094,512625328,-13432146,-523110517,-523116335,531100561,-1017620217,164634250,109510576,-12842332,-793115020,4581386,-1146896333,178102538,-1324696157,-803304863,180009481,178663051,-1559581535,-1847063867,-401837311,-260833625,-78616,-1593138938,100731562,117377708,775490235,-663614789,178063103,-956658749,-1683946491,642091274,-1324695133,22734912,181903811,-754667111,573160,175507190,-1962642048,-1995774922,-150299850,178955238,-167771714,17462790,915080309,914950886,-420017498,-1861572445,175251083,179183241,512350467,512297584,1956711084,1925393162,-137219302,326387953,856350625,-466159662,-137219318,-1559566794,-1111291239,1005127460,-1956597503,17155834,1929437160,-34215931,-392368269,-1013120842,-1190399814,512360450,-91551280,1358955974]},{"sector":5,"length":512,"data":[-1108844367,359815424,-2130667032,-1979674430,-502673122,-620298523,-1245841399,251577094,544541147,-1190399814,512360450,-91551280,1359218118,-1981267791,-1031710464,512360592,-354285103,-803325245,-1979354103,-1022766306,164765322,-803304509,1141815305,-930471475,247004038,-1977496252,989562600,168326395,974091457,-972327447,-16131578,1049164682,-922089007,-880147851,41282826,243855242,780667346,868420051,177717184,722202809,-1012206641,121998161,684163927,-1157621063,-1416429567,-498881645,-1957076999,1166611525,-1269578970,-1257394108,-8787960,-1017437747,280646227,151238665,163054452,1086554121,-1264385865,-1241069814,-1995842294,-402006754,1532624964,113651395,-1946023261,-1898017074,-57808442,108159292,41384508,-13754324,-1022719714,-1559837138,-712309750,-402647064,1827209259,378089212,-1169028430,-1705899342,61,166249306,-387427840,32004863,1381024512,-402214726,1482358747,-1279634749,-3020794,1381024602,772214714,179570375,-1590819074,-1557263685,-1590818122,-1557263713,-1041757512,-2758401,-1077716902,1740507863,2078987,-1195137293,-2051398365,-1205744380,567096064,-602503122,855750665,567083442,-1338460989,175618560,520495565,-2134982605,-393106432,91357198,1912627688,-1899066368,-1010397474,-1949158575,170897662,-122752320,984630133,963948274,-24424103,800063667,829796082,49971266,93005687,561393708,494340156,-755382134,-151844141,292912838]},{"sector":6,"length":512,"data":[1949301888,553418757,1170671479,-350215937,127516103,914894585,-1017574794,1017961267,1008235533,-386435552,192020498,-796424146,-75480311,-102271486,-1022912067,754894312,426922048,360127036,553548928,76222327,1966750790,553418760,-128449673,-1715644221,-1262225145,-31339239,-803304512,1977289225,164667907,58064650,-1979067998,-402010082,124911626,164699786,-1023409688,145769652,-1073012275,1152661621,567085488,-1023987598,628429312,-2147433737,-725738891,-2134144503,210256065,-1274421825,-1608397472,104466909,242485716,-351768899,138591496,-239270933,-1262225145,-2044605136,51002848,339543666,-1023314173,2126121396,102878471,-883696845,-854851144,12079137,1478610188,788399592,164038202,976095860,-116799482,-1073085835,195,0,0,0,117443085,1447379968,541410121,1886418259,544502383,544501582,1936028240,7630437,1986622020,2037653605,544433520,1679848047,1701540713,543519860,1701869940,1846152563,1663071343,1634757999,1818388852,1866661989,1918988397,1919230053,544370546,620785263,1769152627,622880100,1948265572,1801675122,6563104,1970499145,1667851878,1953391977,1835363616,7959151,1701998165,1702260579,1818386802,1701978213,1696621665,1919906418,544108320,1986622052,1126506597,1931804730,1936286752,1953785195,1633820773,1919885412,1668180256,1634757999,1818388852,168624229,1868787273,1667592818,1329864820,1702240339]},{"sector":7,"length":512,"data":[1869181810,118099310,1986939172,1684630625,1918988320,1952804193,168653413,1866729997,1953459744,1701868320,2036754787,1818846752,1835101797,695412837,1866664461,1851878765,1868963940,1952542066,1229201466,1329810259,1679839309,979640378,1563504475,1563963227,1986939136,1684630625,1769104416,1931502966,1768121712,1633904998,1852795252,1884490253,1718182757,543450473,1986622052,1868832869,1847620453,1696625775,1953720696,1919879693,544434464,762212206,1869440370,1818386806,1631780965,1953459822,1397310496,1297040203,1869881424,544370464,1836020326,543230477,2004116846,543912559,1986622052,1631780965,1953459822,1397310496,1297040203,1869881424,544370464,1836020326,1851853325,1397965088,1699628873,1919885412,1112888096,1684362323,1769104416,1140876662,1702259058,541271328,544501614,1684104562,1292504441,543517537,1701999987,1679843616,1701540713,543519860,1763734377,1919251310,543450484,1869901417,1752435213,1919164517,543520361,543452769,543516788,1919905636,544434464,1936682083,1174430821,1414746697,1128616704,4476495,1702063689,622883954,1768169587,1952803699,1763730804,1919164526,543520361,3818277,1936028240,1851859059,1701519481,1752637561,1914728037,2036621669,773860896,1124085280,1634757999,1629513074,1752461166,1679848037,1701540713,543519860,1311725864,4137001,1886220099,543519329,1668248176,544437093,1701080677,1866661988,1918988397,1263476837]},{"sector":8,"length":512,"pattern":0,"data":[1836008192,1769103728,622880622,1920213092,1936417633,1680149005,1667592992,1936879476,1919250464,1634890784,539781987,1931502629,677733481,1493182835,78,0,0,1329805824,78,1701336064,1667845408,1869836146,1344304230,1869836901,543973742,1886220099,1919251573,1397310496,1297040203,1951735888,1953066089,1700143225,1869181810,775102574,673198129,1126181187,1920561263,1952999273,1667845408,1869836146,1126200422,544240239,892877105,1667845152,1702063717,1632444516,1769104756,757099617,1869762592,1835102823,1869762592,1953654128,1718558841,1667845408,1869836146,29798]},{"sector":9,"length":512,"pattern":0,"data":[23117,131080,4915232,17563647,120324608,2555904,30,851969,84213799,39]}],[{"sector":1,"length":512,"data":[1,0,536870912,858927408,926299444,1111570744,1178944579,1684234849,26213,0,0,0,0,0,352321536,1364350208,1448562771,-326427130,650053390,376343296,7768894,-85402829,624733185,-1073074060,-1108867724,-386733311,119472601,1532518238,777869913,2229903,604409646,-13740032,771761206,2242303,26667211,1017957355,1022784549,1010791469,1011315755,1010725964,1010463852,1010659888,1010399033,772699440,474755,772175104,722630,179851312,653733376,-1557266425,844627975,774909156,460289,-30536469,-352321018,117321221,-1427439613,645158972,108159292,41908796,1480384292,1144787572,1128013428,1396451700,1323835508,-11409151,84330030,-953285120,268437766,-1870927104,151439150,-352318976,-30502799,1442842118,-1014762613,1921728002,1048587778,1962934278,3976202,-504874124,775351040,462475,225757451,37650478,91553792,2680918,1017927262,-402295808,-152371008,1048587870,1946157058,244002316,-922025977,132645748,14149632,-19273378,179098163,1107522752,-903087893,-2115501194,-1957248256,46367731,37915454,54427694,192151552,-1014762613,1384857090,855829250,-1959898158,771754294,462475,-402650136,-1897398192,-379692288,1347026575,-768359797,-661915913,-2013857960,-1039445798,1392997464,1543497704,-2144465941,574,568853365,1019448064,772633098,278144,772109568]},{"sector":2,"length":512,"data":[329218,503319739,534191886,1239121,-921975975,-1607595138,-397344757,-497483772,-2119515143,1946172159,347718401,-1959898368,503316510,649731854,-851397632,-1084547295,-2117926874,1946167039,653230560,-389051648,868483035,44183232,60960256,94514688,128134656,113651200,773849099,-1023408478,-829665028,32038542,-1878604025,-16700661,638291974,-1560280415,-1142420590,-401772027,141690488,-1111487656,57936020,-402343191,1706886541,65529863,887681650,-387091965,512361503,-616953152,-2147200792,-16070082,512362356,1122503361,30140420,-1978924870,-401948642,1198654196,181026432,-1172343553,512363664,1622215361,96926347,68085760,1023623400,108331008,-385384259,1843922011,13953026,990624929,1930147846,194158903,197789227,197527099,-454546830,-941233407,-351547386,134658569,-2135292949,71952391,-401975878,1290273843,72673284,197134022,-1872499965,-1593755160,-861729904,-2030063605,1007400710,-1172540161,512363664,1776814785,-402165246,192152627,-164380437,887684747,-1581813244,104532940,91425738,-352246040,194028018,-1593062749,104532924,108202936,-385815064,1048641390,1946160064,162052617,-402401560,417858538,-385649408,1541996289,855750658,194320010,-1063247411,-850611189,171489825,-402407704,-1662516293,97576963,61991068,-1008045411,176274002,-1559512927,-1163850800,198353675,-1559509855,-1998058540,1405311491,-1979665326,-1556085565,1860700922]},{"sector":3,"length":512,"data":[1391872,1946766266,1260809,-1173129735,113707464,184159184,-402432280,1994916722,1532688384,-122357309,-1202564781,512428027,243993559,192023513,-1962409800,-1962154978,-1173625330,-794621993,-771307765,-401933813,-1313209561,-803305209,-770799349,50980875,-402447640,113640234,1510017984,-1262265511,1381061465,-617413033,1594302925,-1017423526,181026432,-2146470912,-16009674,180362890,-402491160,1354956801,169458258,-402466072,1482294526,-2030063421,1007403782,-1173850881,78646416,855679464,-466187786,-1103197429,-432109301,-1975406325,-1173700322,780864483,-861860924,200188683,1929520104,-15472627,-1058475917,-387222782,-928907459,-872021749,914966027,775490532,-697168924,197003007,-1071740221,-2030063606,1007403526,-1173850881,78646272,855654888,198681536,-1559511903,1638992857,180362890,-1962158406,-1593064402,-509408310,29812747,-1226307469,-386894850,-928907549,-905576181,-687407349,-684836597,-2330101,-1022641146,92863115,-1995720031,-576510395,199926539,-1847050063,128041729,78747916,915138771,914951188,-420017222,-1106523997,116785153,1963002772,372673284,-1003058932,-1545144565,-1953428538,-1995730914,-1593062882,-1020589166,-768402830,1950937591,202350867,922210867,-768406508,202782455,-1022642013,-385367107,1622213007,96926347,19589121,451413363,-1662028802,-1660878872,220248771,-1979710791,-1962229730,378618,-396316335,1918435592,14870546,9486977]},{"sector":4,"length":512,"data":[180428426,117368290,-1007154485,181079806,549068917,178445,180362890,96926347,1085362436,1493227496,9486977,180428426,1455680226,202678615,212082315,202450570,211893898,175499066,779469626,-335544392,915247147,1015220968,991917056,-2096794620,-219478842,-2096989045,242483261,74718523,-202684601,-335544392,-1070362621,985882207,1946861598,-920745467,512410378,-1950151992,-1207255010,567100430,-75052918,-851177800,-2031580639,1962621691,1958808072,1978219023,-905525749,-74776822,180436616,41273610,-318059638,-276168075,180883080,180956808,-1077922877,548998070,-204526835,1364444074,1460094347,-1188509821,29032474,-1817472256,-102612053,340101983,1495680393,-1202470053,146097165,-838895384,1405311777,167361106,1946807224,166901763,181026432,-1979419137,-2146779106,12009667,-955527005,-99888634,-98662134,4319242,-1933354150,-1898017074,-1073297722,1709769227,1918975228,2004499462,773860354,195567359,-1073297725,-712309749,-402647320,1172897834,-837383684,-826650101,1033523723,1509949440,649411,-1447854,125018,-1169010493,-588773536,-1017619713,123976274,1526715112,201834435,-1190357058,-1494024161,1448235459,-2030063529,1007403270,963967487,-1962918936,722188302,914969039,1049168881,1118899187,-401870662,1935277872,-65017849,367781747,-1003078842,870216203,-639481866,-1341353798,-43194364,1516134392,1465303897,-401971014,549388159,-1866039027]},{"sector":5,"length":512,"data":[210812672,-218101831,201834148,-218095687,210812836,-974596213,196649470,211027515,113640820,-1342108522,-47388667,-1195155873,-876993245,-1205744380,567096064,194320008,-1305280072,-1021195007,11548852,-854878534,857671201,8437440,250122668,-402296320,7471201,-561066356,1371784846,-24391117,-1073074256,1979231986,-231034813,1496937646,-1140946095,800063616,813018866,49971266,93005431,544616492,477562940,-472659830,-956893430,-2146339458,91500540,1998650496,-12204281,-940892128,-116899395,-1808365522,868440331,222080219,540809332,317257590,772502016,180389768,50036803,-1107695754,-389871551,1076690531,1008300624,-2146076902,1998651004,1174702863,141900348,1998650496,-1007134717,138526040,431277049,-1057087027,180362891,58055434,168476834,-1576831489,512363201,182979264,-1979223552,-401948386,-1262288895,-855068604,1975520033,-1337674696,1914817801,12777264,-148540142,1971323074,180534810,-1048523894,-1089697728,1622412026,-90168883,-1039779318,-1123126262,149621010,-351738179,143965443,817153017,-528080435,1912801853,51657990,-1262288521,136755721,856039885,13325275,0,0,-854851144,12079137,1478610188,788372200,179373626,976095860,-116739578,-1073085835,195,0,0,0,117443085,1447379968,541410121,1886418259,544502383,544501582,1936028240,7630437,1986622020,2037653605,544433520,1679848047]},{"sector":6,"length":512,"data":[1701540713,543519860,1701869940,1846152563,1663071343,1634757999,1818388852,1931804773,1684632352,1680154725,1920213036,543908705,1224762405,1718973294,1768122726,544501349,1869440365,1426094450,1667592814,1919252079,1701601889,544417056,1869771365,1852776562,1769104416,622880118,1912617539,6578533,1953067639,1931804773,1936286752,1953785195,1633820773,1919885412,1668180256,1634757999,1818388852,168624229,1868787273,1667592818,1329864820,1702240339,1869181810,118099310,1986939172,1684630625,1918988320,1952804193,168653413,1847619396,1931506799,1768121712,1713404262,1852140649,677735777,168634739,1835888451,543452769,1836216134,540701793,1263749444,1498435395,540697632,1528838756,6107439,1635151433,543451500,1986622052,1886593125,1718182757,1952539497,225341289,1701860106,1768319331,1679844453,1702259058,1701798944,1869488243,2019893364,745829225,1919879693,544434464,762212206,1869440370,1818386806,1631780965,1953459822,1397310496,1347371851,1869881433,544370464,1836020326,543230477,2004116846,543912559,1986622052,1631780965,1953459822,1397310496,1347371851,1869881433,544370464,1836020326,1851853325,1397965088,1699628873,1919885412,1112888096,1684362323,1769104416,1140876662,1702259058,977478944,1953459744,1634038304,168655204,1701536077,1920299808,543236197,1802725732,1702130789,544434464,1702063721,1684370546,1953392928,1946815855,1679844712,1702259058]},{"sector":7,"length":512,"data":[1684955424,1701344288,1869571104,1936269426,1869374240,6579571,1735549268,1679848549,1701540713,543519860,544825709,1965057378,1634956654,6646882,1735549268,1679848549,1701540713,543519860,1998615401,1702127986,1869770784,1952671092,1392534629,1129469263,1096024133,1413826386,1936607488,544502373,1679848229,1701540713,543519860,1679847017,1702259058,977478944,1701990400,1629516659,1797290350,1998616933,544105832,1684104562,539893881,3022894,2037411651,1869504800,1919248500,1936286752,1953785195,1495801957,1059671599,1886339840,1919950969,1936024431,1852121203,6579556,1836216134,1769239649,1998612334,1701603688,1886348064,1735289209,1886339840,1735289209,543434016,1667330676,168653675,1394631717,1869898597,1412395890,1801675122,1680154668,1684624160,695412837,5134592,0,0,0,973078528,5132099,0,-16188407,-116392695,-16252928,-116392695,-49741824,63759,63759,181206536,181861385,182386440,182779145,1750335488,1766662245,1936683619,544499311,1936876880,1818324591,1836008224,1702131056,1229201522,1329810259,1428183376,1768712564,1444968820,1769173605,857763439,540029230,539575080,2037411651,1751607666,1766662260,1936683619,544499311,1886547779,943272224,1766596661,1936614755,1293968485,1919251553,543973737,1917853741,1634887535,1917853805,1919250543,1864399220,1766662246,1936683619,7628399,0]},{"sector":8,"length":512,"data":[-1,985152,65562,771751936,728713,218532910,1392954112,516173392,-2144993269,1962934911,10545411,9805870,21465126,-855113032,-2091148241,-1655504188,-888710312,-1,33555201,33554943,23593024,150995456,256,0,1310740302,541412673,2105376,1342185474,33685504,1879179265,-117071872,589827,2,0,0,0,-1,4849919,1153376014,-2118860032,28574443,186565934,55019776,1516199199,-346138535,5244299,151126018,50331648,236867604,-855002081,-1017635039,1381060694,773739863,728773,-1979627638,1334512999,341281554,235831236,817167391,104473037,108331199,12592698,-541456012,-4069373,-1198492437,801966080,1786117948,728773,-1961724021,-661777337,-1090494488,118358084,1912627688,516238929,1200226315,1166550550,-1784533499,776012800,-402371934,913441132,28313780,1153376014,774884608,728773,-2010250828,-2013263322,-1766322841,239569152,-955232372,9835079,1377062796,-402381638,-379912369,-369492180,1743322916,792505344,-1018233995,106307159,-1409263128,309604156,611585340,544475708,477364284,-100663624,2112372203,512306688,-596442947,-100663491,-21484172,669776383,-1123616978,1962935296,28987918,-17176572,-149414,-401544199,-1590755642,52756669,692390144,133742643,-1017176226,1948269740,1946762491,1405308663,868234066,-1395510309,544354364,477575484]},{"sector":9,"length":512,"data":[1402155052,-150992197,-1023255581,-1828662144,-92076686,-1193249792,65798143,1515111307,615301979,1916878047,2002402369,243936829,11862999,1460080134,-234628929,1963417518,112681,-1959862061,184597790,-1446474792,326369404,1966750892,-7804913,1040158952,74776575,-1023408408,-335947469,521019130,12390021,-1040764299,91488260,-352275038,1086453543,-1576832000,3997882,-149326848,1946159297,11969285,-1040773397,91488272,-352273501,12100355,118407967,-404169933,512372477,1569194170,677218856,1963326336,239438625,356879184,-1961662985,-768386872,-770969097,775946612,-1962887517,113673207,-75492117,-1190628096,-1993474008,-788482546,63422179,-947703669,1292589,-1527513968,-1962913560,-120507067,-29602421,1927336905,893749569,-1291716224,1996665072,679313438,-1978108921,-109037731,-1341099007,678267393,1946221952,-336547068,-1999897086,1569206085,725977911,-147038837,979209187,1166664695,-389810123,-147915454,67157254,774796288,-2013219424,-1590819771,1166606518,116862507,1048765,-1590818956,1166606523,116862522,2097341,-1590818956,1166606520,33604412,33554690,47186032,150995709,512,16908288,-536739839,-116826112,983047,2,16908800,7340544,66651552,33556736,-1912602624,-1274830589,-1274825725,-1274825725,117683203,1414744134,172901188,1381123341,757092943,1668172064,1701999215,1142977635,1981829967,1769173605,218787439]}]],[[{"sector":1,"length":512,"pattern":0,"data":[168626724,1381123341,757092943,544165408,1986622020,1884495973,1718182757,174351721,604834317,1684107084,1159750757,1919251576,543973742,1802725700,1769096224,544367990,544370534,1986622020,172040293,9229]},{"sector":2,"length":512,"pattern":-151587082,"data":[]},{"sector":3,"length":512,"pattern":0,"data":[12343885,196623,32,22020095,1050149226,2555904,30,393217,112656423,239861799,39]},{"sector":4,"length":512,"data":[1,0,536870912,858927408,926299444,1111570744,1178944579,1684234849,26213,0,0,0,0,0,352321536,1364350208,1448562771,-326427130,650053390,376343296,7768894,-85402829,624733185,-1073074060,-1108867724,-386733311,119472601,1532518238,777869913,2229903,604409646,-13740032,771761206,2242303,26667211,1017957355,1022784549,1010791469,1011315755,1010725964,1010463852,1010659888,1010399033,772699440,474755,772175104,722630,179851312,653733376,-1557266425,844627975,774909156,460289,-30536469,-352321018,117321221,-1427439613,645158972,108159292,41908796,1480384292,1144787572,1128013428,1396451700,1323835508,-11409151,84330030,-953285120,268437766,-1870927104,151439150,-352318976,-30502799,1442842118,-1014762613,1921728002,1048587778,1962934278,3976202,-504874124,775351040,462475,225757451,37650478,91553792,2680918,1017927262,-402295808,-152371008,1048587870,1946157058,244002316,-922025977,132645748,14149632,-19273378,179098163,1107522752,-903087893,-2115501194,-1957248256,46367731,37915454,54427694,192151552,-1014762613,1384857090,855829250,-1959898158,771754294,462475,-402650136,-1897398192,-379692288,1347026575,-768359797,-661915913,-2013857960,-1039445798,1392997464,1543497704,-2144465941,574,568853365,1019448064,772633098,278144,772109568]},{"sector":5,"length":512,"data":[329218,503319739,534191886,1239121,-921975975,-1607595138,-397344757,-497483772,-2119515143,1946172159,347718401,-1959898368,503316510,649731854,-851397632,-1084547295,-2117926874,1946167039,653230560,-389051648,868483035,44183232,60960256,94514688,128134656,113651200,773849099,-1023408478,-1705898517,61,278837955,772342249,389095052,-1610168786,1790705685,817123329,-528080435,1946358845,273005070,162799374,856039885,1489719488,108314634,-384794950,12060878,-2145268425,108343290,1040631342,118370063,-402619970,-1385034141,1040595502,1316320271,638952127,1962950016,-53922956,1948269740,1946762266,1946827798,1947024402,104476174,125046590,-1441906456,1323428673,378406,-1185851817,-141885436,-1090195837,236850994,531034911,1969184345,13560067,504734394,243867406,1035212322,567083696,774664735,-401202013,57871859,771798505,255723066,-1947532684,-286741252,1950497805,280279558,772286953,255657670,1037626113,1853095939,1946158141,343407,236852853,1124120607,-854220102,-146050527,1946157505,-1874203835,1962934845,521018941,12139700,362985984,1914642893,-1260877022,505531710,1102323470,-854220102,443686689,1124517422,-969998576,-15711738,1040153833,309657605,-384738118,-491124806,129296656,-384775494,2126120878,128510224,-384763206,-2144467038,1065278,521067125,-351477784,985305150,126675217,1048583950,1946161218,297908742]},{"sector":6,"length":512,"data":[-1090621464,243996066,-1085204958,-1527572954,1507298127,-218288464,-1962773330,-1991770886,-1105811394,96014135,-1163595008,-919398874,567098548,-1499223950,512630294,243996465,-812908542,-108933333,58068992,-787480647,-773729823,534893025,-99710647,407682835,272762614,-2128775681,-786936599,-775844887,252611049,-1949826284,1287815633,286689560,407681556,436586236,335036041,337315526,-1660500352,113704724,-955640417,1276376582,-200882408,-956301037,18084358,-368654592,-150995181,-15711738,113642869,-402582112,113640753,-1140845152,599261546,239450661,1606033869,-40179696,-1273750598,-954086134,487855878,309639700,-939685912,1305606,-301545728,-956301293,1306630,1007076864,113639439,-1962929150,-1122756810,-13429782,1040223976,-947711095,-230782718,-231812845,6416403,-395039684,201451598,141901628,335677126,200665343,41312060,-658546908,1030403,1974399632,-638615217,-1579185405,-1073015828,104531572,1014109162,337065609,-1744837679,915080167,-1058532329,1947024395,1947876369,1966816260,-1991358975,-384559306,1122631529,-1528279297,1048822539,1946162156,-333562888,1525839379,-401492806,652868820,193587455,1963392899,1007076869,775684367,591150452,725370484,758932596,12218228,1006678272,1008628272,-2128971975,1931057658,738308551,-774206672,65196514,-1729965613,-340996093,16351454,-770990220,-2134660492,17775678,378228596,-1012132876,255606400]},{"sector":7,"length":512,"data":[-1170050047,179306497,407682903,335023755,132370219,58044146,1610083138,1048626092,1946226492,-8787936,334763523,1010729155,292815119,-1946195224,722727966,-1157400614,-745865215,-11474493,1128348429,1279870276,1381060685,1096242259,-2096414453,1241782535,1090978314,185273350,-703944956,-670491122,-1861907191,-14620408,-2080431895,51638846,113701749,-352250064,-230784244,-445512941,389023430,-299988224,-1160049901,-663481794,334110347,192273163,334765707,-1979786264,-401348066,-1116403862,335298185,334241419,141941515,334765707,334241417,1963413992,-333542492,1206403859,-29456121,-367621357,-334087405,-385649133,378273454,372970478,158733290,334239291,-1679228041,-32601090,-66180333,319719699,353274132,334536980,225755147,336799479,-770979701,-35060876,319719688,335061268,335167115,-113510357,-370605197,-299988216,115664915,335560329,335033995,-819212661,67013441,-1995173058,-49022914,-1946376973,991166494,1997798430,320768780,-65142508,-31588077,-266433773,4098835,353274644,-63534316,-2086341869,-243334677,389037696,-1959758848,-1961624514,-1961624010,722728974,-1527513906,436586022,335036041,334372491,334110267,503516530,506139626,-1991568404,-1961628130,-401347042,1049167454,512300022,-1950149644,-1961625586,1104096241,-201459061,-50886748,-1980855481,-1995180482,-1995181026,-1022101458,1962934845,296008198,-1157782295,-1628893058,-230784003]},{"sector":8,"length":512,"data":[57934099,-386035223,-1085404893,-919398742,540847356,154931060,222038900,993789812,-341179532,378604,389450062,380287508,1035206832,-1267588659,-1206441309,-1447418589,-1960719098,185854494,-1962445349,-401345506,-873923272,-1948611835,-401343978,378273645,243995638,237704184,-1957620746,-1273550306,1512164671,-784611189,1807355006,-101521390,334892683,235081195,-242543626,440183886,-1958149771,-130642951,244008467,-836037638,1336210241,335036041,388636299,567099060,-230784061,58065171,-1191387671,-1329978077,-1960719098,185854494,-1962445349,-401345506,1273560248,-1948611835,-401343978,-18284819,91089150,-1273717318,-400438006,-1614936128,440172564,-219659660,-11761145,-678756171,1926300481,990147590,-402230571,233373742,-1331367161,-347887094,407681733,567089844,-661731188,1337507982,-1127182847,-386203286,65537907,-64034560,-1023409688,335031947,334904971,-1958283893,722729486,1336210381,335036041,-1171971144,567086661,-368654397,-939524333,18084358,8906752,334104263,1048772608,1946227698,-65214205,334118531,-956926720,18194438,-385876037,116785569,1962872899,-132740152,112915,379985547,567099572,371465867,567099060,379985547,567099060,380124811,-1525730626,-1564826459,371638037,567105204,380124811,-1525729346,649766053,362987286,567105204,-1070445388,8653,0,0,0,-2097092887,18084414,-1679228044,1124529915]},{"sector":9,"length":512,"data":[-327811312,335025803,334118531,990344448,1913917718,-91503871,335154827,58051115,-1962542103,-1961625578,-1995037666,-1273549810,992070975,1343780040,28954627,-851463168,15649,-972589736,17842950,-1958739477,-236432952,-972720891,17842950,512479795,-620030998,-947186315,104579331,192287761,336674443,-819214197,-402652741,1161298885,-2145094401,17843006,96866677,21349901,46629642,46236505,1326246737,335154827,-55643395,1498040135,1705415,1049087787,-117238792,393543435,512447314,-678750684,-4597001,-1274957569,1528941890,990999130,-971147814,1065734,302037699,-1007184920,-1089400390,1040389538,11540002,9497002,272828150,-152930817,-15359994,501866869,-230784251,58065171,-1946513943,185854494,-1961069093,-1961619698,722729022,-2118093063,1981304063,-1143852102,384303105,1124395779,-2147291672,1065278,-396950155,-1956706932,407681743,-1753953749,379985547,567099572,-1053088910,-141877387,-1994896193,-1961626050,722728974,-201571890,1049186212,113710072,70644,-1507947581,-851528682,293059105,-303554802,-1258311434,-383660724,1048772878,1979847666,-100603645,388957894,-972690687,1519366,362874566,52619264,915135861,1927812107,51784452,84839188,-2117008620,1979776762,-1870861565,336141963,42068050,118393690,188123924,1238248212,-401132609,-1101660071,243994561,1323832325,906190336,-896855037,-402472573,-1070464959,406370986]}],[{"sector":1,"length":512,"data":[-386502680,712312187,-1962895128,1326712638,-1961901634,-1961622762,1226048782,336006657,371804737,108205069,336398023,-398327808,786957239,-1023314941,-469797911,1252699141,-1161561118,1475023338,334642819,-385649150,113703238,-352250065,788973061,113639447,-402582111,880083560,336141963,336279179,-1962804760,-1961621698,-1340863218,-1359807478,1049172597,1049170951,243864587,117380109,-320334839,-401443836,-864812343,-401485894,-1950091824,-351008482,152996613,1877494548,-199849727,-163673837,1048822547,1996624882,-367097005,1977289491,-199324920,-367097581,-333542637,1977289491,-367097080,-333543149,-367097069,-123541485,1963013608,-1957211188,1125379102,-1962858008,110059511,1049170932,243995638,-836037640,-62846350,-1991269133,-1022101442,-2080865815,34861630,-617351561,-1996423704,-1961617130,185854494,-1962248741,-2095844322,24379899,421411651,-1023314412,334239371,91607563,-1031548021,372982294,74847257,337188491,-478883013,938017655,-1957473544,-1209512998,-163673856,-199849709,-1410835693,1610058496,837548843,334642819,-385649150,512489490,-620030998,512429173,-343731212,-1157400821,-2081947647,-1952418560,-331445257,-81049837,398394231,12576768,-230784061,57803283,-533015,-1961617650,185854494,-1962379813,1125381150,-386417688,-141885362,334763657,334902921,1002635636,1947465782,37742841,335746697,334902923,-402621976,179568731,-854286918,45017121]},{"sector":2,"length":512,"data":[345902730,-689766219,335746699,-401301570,1049297625,-790031370,1,0,334763659,334904971,24500795,185497539,-1173719845,1287585793,1960459032,-133264401,-1328600301,-473953782,1118761479,-143271365,407157443,407248521,407504582,-199345366,-972721133,538462726,-1007417368,-1962933825,722728974,-1946913586,-397258281,1499135955,-1407765569,405929857,540810099,171710067,222040692,154930804,1588857460,-997834740,-1878856789,-536200022,-8552230,-2146667510,1947074429,-1441943549,-961934672,-1169031163,-1377298376,98786035,-1384822205,1086309195,772195855,-622329577,-473953792,1964653808,772195845,243859479,-919399421,125046076,362888832,1308718080,337065609,-401620545,1048576177,1962939809,1963801609,914968065,243864599,512431109,-620030998,1048581237,1962940207,113413,512427499,-398257164,-337054120,121539070,188647700,152471828,-333542636,33260307,-385885309,-812908846,336006699,115605260,335744571,-1983708813,-1609298674,243994432,1049302029,-16051193,-361386254,-544484981,335744651,255966793,-1493974982,-74724725,243917941,-812968947,336019081,336281227,179359531,336139915,-220230846,1257862318,336139913,336273033,868466738,373075145,-391379339,82510177,141826620,74714428,-370458198,141871371,-1996936361,-1017118899,388906624,-2012974079,-1966866611,-117178547,1959410627,1364678190,-234621045,-123602685,63056659,-100254783]},{"sector":3,"length":512,"pattern":0,"data":[-2028244205,-1961625594,1003367368,50690039,-34012175,-56298687,-211919015,-1850031196,-229709807,-1074487063,-4647777,-17920,1011002028,-1996890099,1947508246,1011002592,1341814029,1048626090,1946160957,739130142,839217687,-1010762048,56036323,1031819257,24469274,-390057399,1472397340,186298449,-234392375,-1627163218,-108290495,-819224743,32006046,477479680,-117221476,1291813199,-2147126248,175376957,218187206,38127169,-1654701814,1891259075,-238622702,1958396762,-239146990,-1899459389,-1195340072,-795999921,-83793220,-369107224,113701885,-1962864575,-1105811394,-1515909326,-1170099036,567088678,380124811,-1525729346,1371776165,-24422825,855592074,-65621779,-1359863325,1464933749,-402290096,92799001,1341623128,1604645697,1224860505,-11731362,1591602006,1354979679,1023467557,1968701504,2041091,154971331,171768692,540866420,1019474804,1007055457,604143482,1048822751,1946227698,-196548349,334118531,-1158253312,367530517,-855526159,975178785,1947223046,-12982013,379985547,567099060,-1273616710,-1272853183,-843042228,34010657,-1116405996,-401483590,28635364,-397401651,1012465423,212497421,1141258784,1110360848,771771201,2368548,2949120]},{"sector":4,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1668172153,1701999215,1142977635,1981829967,1769173605,168652399,1560291876,1986939152,1684630625,1769104416,1864394102,1768300658,1847616876,224750945,274792458,1701603654,1835101728,1970085989,1646294131,1886593125,1718182757,224683369,276824074,1635151433,543451500,1634885968,1702126957,658802,1766199456,1763730796,1163010163,1328366657,223956046,280363018,1701603654,1701987104,1869182049,1917132910,225603442,281804810,544173908,2037277037,1818846752,1864397669,225338736,283377674,1684104530,1920099616,1763734127,168639086,168645413,-1575945216,1851867925,544501614,1953064037,1094856224,1768300619,757949804,1634624882,1713399149,224750697,286588938,1914728270,544042863,1679847017,1667592809,2037542772,1919903264,1818846752,658789,1766068540,1713400691,778857589,1768178976,1814066036,779383663,1577060877,1225395473,1718973294,1768122726,544501349,1869440365,168655218]},{"sector":5,"length":512,"pattern":0,"data":[1175550208,543517801,544501614,1853189990,658788,1850020243,544830068,1869771365,658802,1699615142,1768300663,168650092,1309783552,1713402991,1684960623,-1023407603,1261326097,2113326,1766592977,1948280174,1814065007,224882287,299499530,543452741,1763731055,1953853550,1818846752,658789,1648431596,544502383,1953064037,794372128,541010254,1293025792,544502645,1667592307,544826985,1953719652,1952542313,544108393,1701734764,1836412448,225600866,303497226,544501582,1970237029,1914726503,544042863,1830842228,1701278309,1701344288,1953391904,543519337,1701603686,1073744397,658706,660077,4722]},{"sector":6,"length":512,"pattern":0,"data":[]},{"sector":7,"length":512,"pattern":0,"data":[]},{"sector":8,"length":512,"pattern":0,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5448960,389224501,1681401120,6497594,6204,6218]},{"sector":9,"length":512,"pattern":-151587082,"data":[]}]],[[{"sector":1,"length":512,"pattern":0,"data":[32135757,327686,65568,6422527,1170604394,0,30,1048577,2359296,35389440,59572224,60162048]},{"sector":2,"length":512,"data":[1354773278,567095476,339599494,-1156484093,-611450823,-1274979142,102878473,-883900365,-1157594690,-1014104007,138891,1929456616,-1172371960,1793655185,1687297,19785900,-1960433548,1006638614,1006924892,638350650,6700681,1711734566,1020408576,-1962707666,-1993979177,-1442834922,642700011,-402651706,494076136,440303654,309672448,1679654,6988582,-1224278234,117384704,2045444279,6995856,973175936,-2144988044,973085246,642780277,-1426056799,-1220638426,-391358464,427032763,405178918,1968978944,1021587970,-1274907346,646457087,-341180392,96872161,-1172655104,520487099,1320427981,-1191155014,567148543,-165278862,268488710,938151285,2105550480,796211967,-1332738837,-970544548,6150,-1220638426,-1960901120,-1962908106,-1962887362,1107301910,141881915,1946172588,-185882109,100664774,373195551,158662656,-1107289665,317194252,406749184,1299513088,-1107268929,48758801,-2143098112,57933885,-1392972985,1975519914,-1392720902,91491644,1946159848,222056182,-117344776,1963801795,540852993,154991476,742193012,993850228,725413748,171764596,1027401588,1686211,-851640136,-1559858655,367722600,26327696,-402541080,-1161100829,-135593561,-352193862,21150450,1392515769,6823563,567099316,1111392603,1968852225,21668323,1023418117,-747433984,-1308631003,1390465796,-1957474223,-1328991280,1746832128,-851266560,1498962721,-775649702,1175882728,-2117063935,1929412858]},{"sector":3,"length":512,"data":[-772634970,21275106,108314635,33614465,378130435,-1031601850,-1108684017,-721223521,-2089299141,-1593707846,101384528,101384530,57934168,-1577092887,-1073020586,4007796,1391424769,-1168945071,-919404288,512426416,1119092840,1482367437,103373401,1048772934,1962934600,-2082786355,84030,448414580,18802690,1002048180,-1172189951,300417567,20823553,16729286,749528180,1008497200,604795402,1007103071,1007710730,-787713264,-773598749,182702563,-2132808744,1963851644,-1948416067,-1274984946,1049319231,-1910636440,1406284763,567140235,1935613787,41204230,-2080452375,84030,1520518516,1347506689,869305171,-1962889015,-1275041762,1528941890,-1168484008,1119486274,309505,-1957478476,-855611362,57891617,-1946246679,-1593753026,-1023213244,19316878,1208942381,-1260948223,6994492,567134515,-1180477838,1175358208,1463858177,12140171,870026782,-544517166,526066125,-1274318241,512447294,567083193,-675624101,-28579583,-1664941710,1465274707,1344144981,-849759150,-1168418527,1094517120,-1962642432,533826499,1583308039,-1013097639,-402539078,451542994,1201296126,-1174374656,-1705901537,7798855,875442883,1163412782,1229073920,78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1638400,0,0]},{"sector":4,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1778384896,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83886080,0,0,0,0,0,0,0,0,1868787273,1667592818,1329864820,1702240339,1869181810,1665213550,1936942435,1852138528,6579561,1766195570,1847616876,1713402991,1684960623,1224835584,1718973294,1768122726,544501349,1869440365,-1828685454,1818838529,1919098981,1769234789,1696624239,1919906418,1224845568,1718973294,1768122726,544501349,1802725732,1634759456,-1090493085,1818838529,1633886309,1953459822,543515168,1986948963,1702130277,30998628,762865990,544436341,1684366702,757097573,1935761952,1702043749,1852140903,1747460212,975796325,32768032,469764621,1380013826,1196312910,1377840416,543449445,1869771365,1852776562,1163412768,1818846752,168636005,538976288,538976288,1832984608,1953396079,1634038304,1701584996,1948283763,544104808,1702521203,544106784,1684104552]},{"sector":5,"length":512,"data":[3043941,545,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65536,0,0,825237504,892613426,959985462,1145258561,1650542149,1717920867,0,0,0,0,0,0,1426068736,1347637586,503731799,118418571,-1962921793,-1958865298,-617414538,-1409156376,812918076,91537418,-352207384,31058162,1599997727,1515805528,110046813,-1892810708,1476406790,775356206,922693120]},{"sector":6,"length":512,"pattern":0,"data":[-389349332,-873791082,1948597420,1949121782,1948990527,1951153223,1953250366,1915763770,2000239677,1966095417,1048784398,1962934289,113651206,1345323029,771754680,1124087,1155886,753152600,100740656,216727569,201784878,772139776,853758,1480370923,1631331956,2050754162,-551288193,309614652,510936124,695485244,544494396,-385790232,-969998511,100667142,319211310,-352317440,-953249669,167777030,-1871582464,268893742,-208972288,1040368515,771912331,1064576,-1408600832,997457980,-352263704,244002358,-922025967,-2144465548,3134,-397015691,1449001000,1946172588,12642309,777975531,802432,772568064,1117835,57985291,-402651160,-379715369,-768344359,1958742700,-118799869,58116651,-1023376920,-2081191082,-1958870333,-2144468414,3390,-208991372,1040368515,-352169333,1406284546,322341678,244002304,199753745,5302272,1526763240,-24123042,-1031057335,-151530957,-145172341,1356498934,1951973899,-404204793,199973887,205422638,57999360,-1962925592,1913273539,1048587789,1962934286,100806149,381353999,521018880,-397336617,-1017577454,192858379,1417262,321617,-1007033767,1157595562,-1023314944,1392514233,169773870,521018880,-1275055942,522308928,3194715,822051267,-2115996672,-1962921745,-2365233,784348099,771755170,771755426,771755938,771756451,1377990,279064096,49920]},{"sector":7,"length":512,"pattern":0,"data":[14572109,262173,14024736,63176703,533268480,5841,30,100270081,382862052,440139776,445513728]},{"sector":8,"length":512,"data":[-1957363712,11319532,1443765480,705037472,-754404892,84839136,65874438,1552320961,51002879,339543410,-1207011837,-1202716671,-397409992,-998046958,302434052,-955252978,16733318,1518782208,-385875457,-1635057189,-472776870,-1962510709,792690712,1857583988,-1635037184,-472776870,854077695,79987468,-10582391,1014284299,126539915,-11106680,-1962932282,-771794274,108432355,-2037698305,-2030043308,1354366804,-1947601152,1619168752,602427647,79987476,-10576245,-11106678,636159880,-10838389,1988879313,-1959723258,-43898,-1174449018,-369688496,-2104627061,-397344928,-998042638,1485227780,-1962934017,-771794274,108432355,115880191,46433048,-10975685,753468287,1520339713,-1948003841,411764342,-10963317,1966028928,1520339835,-1948003841,814417526,-10969461,704725130,-51883804,46433034,1128129578,1986491392,14149891,1946173757,4341066,1891127668,-1635037184,-472776870,-1962510709,1485177600,-397393665,-998044557,-2133292284,57933887,-1207920407,-1957691382,-771794274,108432355,-2046623605,1346436952,-2096231448,2091058372,-972690688,-16744442,-10975489,-956346135,-16744186,113701611,-352321404,-2063153429,-454295808,-10838389,1988879313,-1959752954,-1962977122,-467008960,174450768,1006814339,-1205701310,-1957691382,-771794274,108432355,-2046623605,50724696,-1444392960,79987469,-352289117,-2113485149,-1662255360,8586950,-946476033,-1811017210,-1198658791,860880897]},{"sector":9,"length":512,"data":[1139298496,79987457,1040154089,-1804337076,1946177085,5520855,1463671156,-385649408,434765691,1518796799,71732223,-10844615,434701181,1421771774,225706751,1342177720,-397361101,-998047486,2084471556,125107968,8521414,-955847681,33586182,2118025984,108396288,8259271,1048576100,1962934401,-2109833128,1366622208,1342902968,-10451315,260696144,-955988861,16734854,-1205736704,-1957688558,-771794274,-2034761757,139520000,184861827,-972720704,-16744186,-10844417,-10838389,-1081875503,1962934406,-2126610222,91553792,8521414,-2126610177,477364224,8535680,-2146994944,33598,28839540,582504448,1609060353,79987456,8732288,-2145946624,33854,113707124,189073680,113712619,195430672,1048581611,1946157188,268879624,-350658551,268879622,-2146766839,33086,1183649396,-2037559120,-397344928,216727623,1353729677,-10451315,34531408,1577370755,-1017256565,871140181,181921984,294531,1996427124,9746436,352381008,-352009085,21936138,351594576,-16595837,568854134,1575324437,-326412861,-402649416,1448544933,-637242,1342217400,-402360577,-998043685,-28931836,594919435,1342923752,-1207666945,-1202716264,-397407470,-998043248,112648,185776208,-7542704,-1207647101,-11534177,-1528297866,79987471,201082505,-400329280,-11531476,-1732770186,314068993,1508397067,147096337,1342177720,1342902968,-2080418328,-1070398268,-1980479863,1586229830]}],[{"sector":1,"length":512,"data":[38797310,163715,1586171772,-16282626,-1965520121,-337368569,-25755895,-2096139032,-259325244,-1957661632,1342176350,41911042,-1961919488,126614622,-661977089,-467007606,1996425707,256633084,-1962752893,527712504,58062651,-973044247,1459680838,-193527978,-1192069377,-397410142,-998042634,-9573622,1996424822,-1958089980,1342176350,41911042,-1961919488,126614622,-661977089,-467007606,1996425707,251390204,-1962752893,443891960,16154240,-1070397324,29276240,28846059,-504868864,46433043,1996432107,108461828,1342287032,1342902968,-2096073752,28838084,314068992,1877495819,79987710,32654979,16012931,1442781161,-1070338933,1460222184,108432214,-2096464245,1946160254,205949764,1178322435,-1959100668,-956101562,2131248699,205949744,185356031,-1960151872,45696967,65664769,1074664966,-963948480,65664838,1074664454,385830976,-998045424,1958742788,-339725360,-18429,-443850914,-1957313699,1882348,-972500760,-1191188922,-11534156,149423222,79987470,200296073,-400329280,-11531888,-1732770698,314068993,-1108848629,147096335,1342177720,1342902968,-2080523800,-1212676924,1996443648,231860230,-1996176253,-1072960442,1508385653,1996443657,26785798,185776208,260499536,-1207384957,-1202716671,-397407470,-997982846,16955396,8269559,323414096,-1560099709,-1073017324,45618548,2117007105,837308416,46433043,185472675,-1207274048,-397409831,-997982898,-1983892734]},{"sector":2,"length":512,"data":[1183443526,-129594898,-1912715639,-1588527546,1177223294,1996443886,16955632,65957623,1343099910,-2096935960,1174472900,-129593874,8298832,1357530667,-1192462593,1861681410,369492970,703090702,147096323,-2081798655,1962995326,-360807649,-2145815296,1962993278,51046659,-1202667469,-397409858,-997983014,49998084,-1411329,1944645238,79987464,-941341047,59462,971261579,494790726,1342177720,-1542401,1996483190,-294191128,-2080488216,-1073083708,1424556916,-465138943,1961379385,1354773265,1223181963,136243280,-1996176253,1996482630,-294191128,236205823,-2096936728,1183385284,-394854418,-1411329,-401729994,-998046923,-364476154,15629955,-1073019019,317260661,-28930561,8298832,1357792811,-1192200449,1861681410,335938542,1575505934,147096322,-1913764351,-1588529082,1177223294,1996443882,16955628,65695479,1343100422,-2097005592,1174472900,-2000669974,1183381062,112892,-1980086647,1183441990,-196703758,736773771,-1957629370,1177284166,-1947709212,79987463,-1554807,1342209078,-2096661016,1183384772,1996443880,-361299982,-1804545,1592323702,180651005,2004140042,15091398,-1207666945,-397410118,-998043454,-461963516,-11485133,-401730506,-998047060,108461830,1342227640,-2096060952,1996424388,1354773490,236336895,-2096984088,-826800444,-1947709440,46433040,-1804545,922742390,921177620,113541890,-1161591,1996485238,372703210,35907598,-1996045181,183102022]},{"sector":3,"length":512,"data":[-398000130,-1946254871,1177283142,1183535354,-196727826,114878544,-1996176253,922740806,-397410180,-998046006,-398030588,-92864688,-1411329,1996485750,-55842578,168477827,-966691648,-16718266,-692583306,266883072,79987472,871659263,922702016,-102232556,113541889,-1207535873,-397410080,-998043662,-92864764,-11485133,-401729994,-998047268,15382534,265873488,-16595837,1996485750,339148782,25421838,-1996045181,1996484166,-11867654,-1946925313,1178199110,-954761484,128070,-1947973889,1178201670,-1995997980,1187439686,1191182332,-96039950,2129806905,-230242534,1191116801,-364475398,2096776761,-297366774,-956676471,-2130708922,1962998910,-27203325,16154240,1474888565,-431569154,8298752,2112767545,-364496635,-390590852,-222801919,1206407168,79987471,-1207666945,-397410059,-998043846,-297366780,-1070378936,339148624,19064846,-16333693,-4716938,468209664,79987471,1223313035,1354773328,236336895,-2097085464,163055300,-1552383,46433038,1342177720,-2096157720,-443874620,-1957313699,178412,1443146984,16664263,8579328,-1207535873,-1957691136,1077937222,303497040,113541902,2004140043,236076673,359995796,1074022027,1189630016,46433039,1586229387,21022212,-2059501568,460587008,1342247352,1074022027,2028490816,79987457,125157387,-972792181,-1962933689,1077937222,252700752,184730755,-2146994752,34110,1586173045,175540996,76219647,1182861193]},{"sector":4,"length":512,"data":[-16711164,1183579718,139394824,57982987,-1946193431,-1956708794,1438866917,-1070338933,-1962670872,1178142790,855932678,-1960318016,1177224774,16955656,-1957631497,1344144454,1861730699,71697160,-521646050,180650756,721831563,-443873210,-1957313699,-390056980,1048576965,1946157184,138840908,1023821355,1098776578,-150928712,1174603374,1088966660,46433024,1342247608,-2096245272,45613764,141489921,1342457347,-2097142040,501940932,-16365941,45680198,65664769,-397409210,-998047729,138840834,2114340409,1575324643,-326412861,1592311859,-2093055997,259260416,-16490869,18331703,226814032,-1962621821,1077937222,18790480,225765456,-1017256565,-1192457387,786956294,106859267,-1979300097,1357130247,-2097079576,1183318724,73305084,-1979431169,1374497295,-386251127,-998047485,-28932094,1962559034,-62486003,1996375608,112653,-1073083413,-1070350475,-4717589,1575324671,-326412861,-622280653,65754626,-1962653953,529138782,-2013855958,1963460261,-16520209,1586169414,706710022,-1517816065,-277542906,-1962647925,76154486,292882232,-2147203329,74776639,367771699,-351910145,73305026,-467007606,-1979294069,736963087,-443851071,-1957313699,178412,-352159512,71761667,-1979425141,-151049697,134653319,65793909,-1962522881,529139294,-2013855958,1963460261,106859503,-467007606,4319312,-1962752893,260703326,-1991119574,820575814,46433024,1979598394,73304852,-2147203329]},{"sector":5,"length":512,"data":[74776639,367771699,-351910145,73304999,-467007606,-1979294069,736963087,1575324609,-326412861,-402649416,1048576509,1962934809,-230242530,481835008,-129595122,1358055053,1358055053,-2096338968,113640644,-64999,-15847370,-15847882,-571997066,1575324416,-326412861,-402652488,-1957297731,585827446,-467008374,7399504,184730755,-2096794432,250282694,-467008374,-6952880,-2013084541,1015039492,-1948683008,-1956772794,1438866917,45673611,25159680,-1976636586,1357130247,-2097138200,-1073020220,1182991988,434831876,-351897973,73304844,1963407532,-339506428,3964946,1191178101,73304836,1962950528,1589654474,-1017256565,-1192457387,921174034,-297351423,1048579608,1962934812,35299610,-955377501,924166,-294191360,-2097133848,113640132,-64996,-15853002,-1978787786,-467008442,5105744,184992899,-1207601984,49020927,-443826125,-1957313699,71732204,225829898,108159292,41384508,1593778220,1575324422,-326412861,1586190166,104303364,1660991518,-1992941107,1603024439,1594302210,1575324510,-326412861,-2046540149,-987867424,179046006,974222528,-1408403516,-227024838,536870840,-1878594722,-352321352,1575324662,-326412861,1996445526,189261830,1073923203,1988876427,-1951597564,108956619,-160059662,1610564749,1575324510,-326412861,1996445526,186640390,1073923203,1988876427,179108868,-1962314560,108956619,-227234062,1610564749,1575324510,-326412861,-1946396842,2123039862]},{"sector":6,"length":512,"data":[40811270,-142092372,-676536182,-533006457,-469104267,-4657547,168225791,871855332,-1956749376,1505975781,-668214133,507185778,74580510,-503323765,-385874968,-1957361157,1431787244,1484057867,771913355,-386040704,1150099573,6351101,-402511942,-963968951,-29097170,-1174384152,988283454,7244544,-2127637781,1459617148,1150098549,3729661,-402509894,-1976696799,-392626364,1002045482,1304578,-963915285,-1174397464,-236256736,-1956749475,1455644133,-1951534453,-1144484906,1085538305,-1017241139,1153369886,309506,309585,1348059347,67112741,1983462448,-1442380798,-1159077288,-890764734,-1957313537,71732204,2131117627,105286403,-1017256565,-1947432107,1178272838,-1962705914,-443873722,-1957313699,-390056980,1048837917,2080376318,99787017,100533817,1220019580,-1962218750,-788136418,-1467511837,1575324421,-326412861,503732054,-485732725,142525485,-66816315,1178327180,991458570,-1961593865,1002843079,-1962118207,-134002495,-201461757,-788010076,1940255721,536650753,-1956749561,1438866917,106425483,75416828,-1962391926,-1426912690,-443851001,-1957313699,440556,1476303080,108954454,-2096727038,2114979454,-18427,-164407317,16533190,-16490869,126485574,200838040,-166234881,17212805,1166869876,-1962743008,-151483449,-2147048059,2122320501,-915144452,569099915,2134507395,821003013,-276626453,108935511,1183573118,65992454,-957314105,-335545274,-1956684113,1438866917]},{"sector":7,"length":512,"data":[79228043,-31463424,1325356631,75401990,425603,1586180212,38797064,163715,1586171772,-16282872,-1965520121,-337368569,142016265,-2096931608,-259325244,1962933891,184451845,96866933,-97536,2117666165,-1203145724,1189806081,1947074179,167674803,-963966348,-12122744,-1528101298,-1962510593,71707591,754976549,-654901240,-26154928,-1962621821,548951792,-947171328,-555200482,147096574,1982463491,-9115386,1600045107,-1017256565,871140181,-42211136,-16222465,28837494,1996443648,81258500,990430339,292881990,-1207404801,-397409706,-998046691,1958742788,112645,-1070398741,-1017256565,-1192457387,1055391876,-62470147,-2037579776,1183448956,1996443902,12642310,184861827,-15698496,1996488310,11593732,184861827,-2147191616,-16188338,-689373578,46433031,-113151,1996488310,30730246,184861827,-15698496,1996488310,29681668,184861827,-2147191616,-16450482,-1494679946,46433031,-113151,1996488310,18081798,184861827,-15698496,1996488310,17033220,184861827,-2147191616,-16581554,1994980982,46433031,-113151,1996488310,8513542,184861827,-15698496,1996488310,7464964,184861827,-2147191616,-1929249714,1358920838,-402098433,-998046954,-62485756,-1017256565,-1192457387,1659371522,1522030332,1996443650,-70129660,-1962621821,2088781552,57999615,-16484725,1996424310,48293894,-1962621821,1579877982,50692,-402229505,-998045959,1958742786]},{"sector":8,"length":512,"data":[112645,-1070398741,1575324510,-326412861,-402651976,1448606737,-1207667061,-1957690788,1086819326,-75896752,-1962621821,3965168,1589176693,-396931070,-997983385,-2133292284,91553855,1949187456,1476299522,-402229505,-998047114,108461828,-2096719640,-1073020220,28837236,855829248,-1956684096,1438866917,79228043,-72357888,1988843095,1656245764,-24424446,417879879,79987707,1015083147,-1192528640,1464861286,-2080700696,-259324732,108461911,-2097012248,1586169028,735970054,509663,-402229505,-998046151,1958742786,112645,-1070398741,-443850914,-1957313699,-390056980,1996487505,74907398,-2080403224,1996424388,101443590,16958595,1996424774,74907398,-2080434456,-1070398268,-1017256565,-1192457387,518520836,-1202300933,-11533720,-1930951562,79987706,1015083147,-1928956928,1183383876,74877700,40548430,1207864144,-93460393,-1962621821,3965168,1996483445,108461828,-2097053208,1586169028,73280262,-16776762,-1696070026,46433029,91537419,-352321096,1589654274,1575324511,-326412861,1443032195,-1962308376,1962281968,1996445199,74907398,-2096268312,48957124,-1956724685,1438866917,-1957237621,1149895798,-2086037498,-167349248,1950352964,-18426,-167732503,1946289732,105676806,-2131825888,-167705012,1963722308,121932329,-774337640,1653077731,443875592,1342308536,-2096807960,1149829828,1958742788,-351752188,134524930,2088961604,208994308,-1744354166,1661329617,71600392]},{"sector":9,"length":512,"data":[-1996209013,105182724,-1207602172,65732609,1342308536,-1979419393,1352140612,-2096619800,1149830852,2143292162,1958742805,-350179324,135311362,1153893956,-385875966,1291845483,-14906622,705137156,-443851036,-1957313699,49054700,1988843095,179972,578090507,1946172544,-1964485091,1357316868,-555198634,113541898,-1202665589,1464862100,-2096443160,-224327996,-33146619,-2095874811,392766,512429180,-472840706,94930827,-1749548053,1458604805,-2096870168,1448084164,178251863,-1207516029,-1202716671,1464862117,-2096459544,1599997636,-1017256565,1475119957,-1962467754,-141883778,-4603853,1101984511,2123094519,-203977980,1589808036,1438866783,-326898549,-11118842,-85457802,46433027,1996486795,186574854,-1962752893,108462064,112727,74907472,-2097120024,1183385796,108462076,192997462,956613763,158727294,-1979425141,-342294719,-18429,-443850914,-1957313699,216826860,-41200041,-972361853,-1958607291,1166607430,-955938556,2147418693,1342719629,1460041471,-2096292632,-259324220,-2097000961,2080375421,-1950338548,-2012872931,-337368569,-1070377206,95807568,-1962621821,-1956684090,1438866917,-326898549,-1957275898,2123039862,105286410,-1995938057,1183447622,1958743036,105248315,-1975618292,-1952970939,-152841768,17326727,1308569461,41779970,-1978893312,-14841084,705136645,1460399076,1352139914,-2096801048,1173750980,91496454,-622215117,1325352448,105248508,-1978501880,-1952970939]}]],[[{"sector":1,"length":512,"data":[-152841768,17326727,-1545010315,-58817792,-385649408,1183514761,38091260,1448090738,-756533761,113541899,704398987,1183515205,-955973124,64582,2105791467,561250306,1443001855,-1360513537,113541899,16926091,38112005,66864681,1170670197,-352321534,38666156,163203,76156028,100605323,-467007608,-1974006805,-397371388,-998046529,105248260,1176007968,-369340673,-1973944449,-397371388,-998046553,105248260,-1962052576,1177287238,-137221124,535496310,-61931706,16547459,1308617076,41779970,-1966113792,-14841084,705136645,1590619108,1575324511,48218051,145035,-25037013,57806848,-99614530,-998123634,1945833022,21620995,-72575,1210485046,646526470,-963967418,-523041615,1151546952,-852446202,77805089,1929526278,-1070391766,-1172369840,162797347,1154163149,840979279,1864380462,1634476146,544367988,1970365810,1684370025,52693517,37128695,734235648,-1260652578,908184906,100408972,2897547,12064286,908184885,104865417,1107725366,-1205924346,1387930880,908184856,149163659,-986307869,-1945573882,920335322,149036799,-857144461,113587712,-628356886,905970619,149036799,-1073996025,1085868270,869214990,380302272,-400619754,79366806,1140897792,175251917,1954595574,579829765,2034974726,109045996,-1157243672,-75429650,141756654,1528299347,-219462845,721422009,101105377,118946955,1290314995,-387108091,-397350900,168624284,1667331155]},{"sector":2,"length":512,"data":[1986994283,1818653285,168654703,1766066701,1701079414,1920099616,168653423,1816529421,1769234799,1881171822,1953393007,1953459744,1634692128,224683364,-1173180150,-315484166,45817614,-851397632,-1205922271,-397410049,280036789,-350745414,-1172459035,-555018212,-2081649835,1448543980,1443351230,-2096647192,-125107516,1342588557,1443133183,-2096495384,1183385284,-396929286,-998045670,-96040188,-443850914,-1957313699,37651436,74711046,100800255,-402360577,-443873955,-1957313699,-1957275668,92996734,-1962779253,1435173965,141921030,-854950517,2123061025,-1996125946,1300824669,106268932,-1895271031,74582597,149681715,-1106216216,92995585,1577874825,1438866783,509078667,75401991,-4603853,-1951468801,-146784063,-1017290792,-1947432107,1333789790,-443874818,-1957313699,-1151904020,1065551514,506033408,374791,1963061224,-1715457275,608183531,110797822,-1777951581,66759,-955988349,-65980,111163017,-1945874805,-390033704,1583284377,-1017256565,1475119957,74877782,503742091,870288135,-17984,-146690318,-201618471,-12285274,1161480499,1946514175,48972037,-1047801353,-1017290914,-2081649835,1448543468,-1962379637,2122515582,712310790,-397012245,-997983771,-28931838,956921152,242549886,720093235,-1996601718,171722501,96864373,71731968,1325340907,-822266,2088960588,-897843198,83827851,-467007606,1600047083,-1017256565,-2097099799,-126619911,-18775999,-66947189]},{"sector":3,"length":512,"data":[-1459713107,1212314625,359907643,-268185461,1946265773,96600884,-141885438,-335657847,1962839014,-1980169460,-1054081460,-351958712,-17235195,-963903924,-92153204,91488991,-1440838618,41912583,113649347,1023543214,628424702,-268173685,1946265773,1224641522,-1116487365,-268185461,1946265773,96601058,-141885438,-335657847,138906598,74760203,334223502,-1374749146,-1945078777,48184792,-1910110860,-1962432994,-1950487753,-1070397833,989878760,604861638,-1740619775,1946177000,-28443123,1946160104,1313773061,-1070359829,-1957575783,27852357,-936705164,-1170128567,992378879,1980214294,1978323204,63015925,51737286,-150113598,734143442,846022,-755562379,-445257007,-1017528269,501764434,1461220352,-259260789,1153954307,-1979711746,-695531913,-1991583957,1499004501,1347666778,1377751603,28856402,520507392,-2096127768,-92075836,1532633087,-771030412,-326412861,1459940483,108432214,-1744419702,1946190761,105182726,-1207536576,-622198785,105182720,-2147060735,-350222772,105677038,107249666,-1983892497,-125107644,-151093623,1963460164,121932303,-774337640,1653077731,812908808,2083208331,2130643716,1962891026,121932292,-1427615592,113541891,-1946270071,-1992293308,38061828,1552613887,71731716,1793787784,67519734,-25080203,762644426,-1744354166,234612816,184730755,-952797760,-1694105082,71616298,1149896978,-661940217,-2017008687,-956233630,-351726844,33601720,-48568240]},{"sector":4,"length":512,"data":[-1996307325,-1073019836,1283458676,-1679095802,67521664,1459618239,1342457485,-1744354166,53209168,-1996045181,2117729862,-385649410,1183514417,1592011268,1575324511,-326412861,-167485813,17174151,-1070398092,-1962080535,1451952206,-851463162,-1274776799,-167056631,-2147081593,65536884,216656128,-1946396842,-1946514446,-1273240632,-1002787827,440145780,-2017065099,-352254450,1191544837,-947131422,1583333931,33129411,1015023476,-336759798,579335912,427048966,-851181384,549648161,-1928694528,-1274564586,1914817855,-351620907,-1341733329,378339335,1068763056,-1032707635,443858955,17333891,-4644748,-1194226689,567099905,-2147483207,168276030,229640052,-351906165,106335124,1048613611,1963591600,1438313433,-326898549,-1027713534,105155079,8628632,-1070393995,-2013117303,1149830724,-972781308,-1946220732,-1962021946,147227590,143263291,-1070344331,1575324510,-326412861,1460202627,171346774,-1206392058,-1202716660,-11532366,211281972,184992899,-2096597824,1015218886,-2082179840,963903548,-947700597,-28915956,92930048,1183422535,-1977816070,-12740603,839152896,-1979520064,-27358459,-1996601601,-16375161,-2092434866,1962998398,313310,-1956684288,-1883021851,-1912094714,856030238,-1950250039,1241091049,2897547,141882891,-1359821170,-92950971,608212805,-771912706,382010341,-263460833,-57946229,-326370045,-561117418,-481692109,8292621,-1431550651,-92946422,1317663714,-1994451456]},{"sector":5,"length":512,"data":[-16381402,1426571302,-289674101,-285507320,1393062664,1130043391,-386733245,-469105622,2122320500,74776580,-33274170,1075234078,620804102,-1960894003,-485956594,178951,149036799,-1274788213,-1893610164,-1912042490,369490974,8437255,-768370516,71204902,1701970694,738627152,-1950338304,-1949173816,648999672,-109771464,-1962686589,-1949173816,92940023,-533053113,574362740,154929268,540804212,374926197,8502791,726608875,1962871806,1120898033,63146843,198081,738197029,519867360,118890246,548447475,533433258,-352288322,80251662,738075652,-1191408672,-206888893,-1430156380,521598091,-1948480688,178957566,1010660544,1444902178,101058303,1958742700,1965177902,-8552441,1325692252,1206774698,16729542,938005995,1322284032,117392982,-1431566842,141869066,1962943976,-1428034571,1263269003,141816635,-1995995219,-219414972,-770974581,134152821,101197449,143402751,41158972,1438851132,1586228363,579335684,242491398,859964088,-841905207,-385649887,-2013918741,1971324450,8513795,-1962389877,119408214,1476182067,-1947169962,-1201282054,-1359855606,-1957612939,1237986255,567087331,-1645214820,162792563,-1073002005,-1186582668,-1900412926,-851397624,-1274776799,188017417,1494906048,-974399605,735021905,-1675506230,1939730435,-351685628,1975520026,579335702,192167942,-2147066229,58006079,-117117960,1495009464,-963968398,1625907038,139365129,-1274653045,1931595072]},{"sector":6,"length":512,"data":[-351685628,200008685,-152603200,1074143879,-628422028,1964654464,-689178621,470333689,-1957310229,1988843244,-889290492,-163810041,1963722308,121932342,-774337640,1653077731,661979400,302269639,121932297,-774337640,1653065443,113705224,714802690,148679,71600898,28837001,-2127238400,1963451134,105182764,-1977191156,-1952970940,-152841768,17326727,12064629,-1914155006,46433272,184829065,-2147060544,-351795636,1589654457,-1017256565,1458342741,-2096728437,1946158206,-889290420,-1977256697,1352140612,-2096557848,-1073020220,-397011340,-998045338,121932290,-774337640,1653065443,451608584,132316801,-397010059,-998045366,74776322,-2080891416,1686110916,-1070336250,1149830281,-443851260,-1957313699,116163564,1988843095,106859272,1033373578,1114898529,1946186301,7814408,-2031537804,-28915968,1191116801,106859270,1965768576,-28409849,105316104,637421195,20774919,1025143808,880017410,1946158141,-955192524,196166,1187500267,-352320258,-134270007,589382,-813627276,-410976254,1586233342,1950318598,-813625227,384516096,-352124481,17416158,1586223595,1648328710,-813628299,-1531412480,-11055103,-219675530,113541897,200951433,855932352,-146609216,589382,1153828468,300646406,117327607,-972655616,-352188860,105170436,33998593,841652998,-94467136,-2021071919,-1986525086,-1070398908,1149830281,-96040444,-1962457976,-1956684090,1438866917,1448602763,2123040542]},{"sector":7,"length":512,"data":[108432132,1317787531,1996372744,63343380,1945648065,66126604,-45134087,-335764237,197626657,1944637894,868715274,1927860678,-1958107925,-202780199,1944834469,637831685,-1031076472,-1017290914,1458342741,901379635,-52153856,-488623444,1442087163,3477246,646448757,300613684,225764362,-1157613894,431554562,-851397632,-1564462559,-1956773835,1438866917,1656286347,-342104063,1988843095,-1568240378,150643710,-1560000885,1183516914,150381320,144949299,151429897,1962949760,21620995,1948597376,17492227,150996679,-1070399487,-1559691613,44239086,150250249,-1559693149,212011248,151954185,150734535,854261792,1965898880,235339526,-2144867575,209005372,150865663,149948103,384499712,1965046912,-29457651,175439880,149948159,117376235,-1975121652,-397371388,-998046201,1975520002,79189695,-1863823351,79987461,1015083147,-15567570,1174992902,151042134,91875408,-1962621821,1815904496,113706869,133364,3964998,-1595341963,-1744532992,-23165303,1946174781,4668682,1480394100,-16157440,-2096566778,553557638,-23165301,1023435565,1047986197,781434883,600483839,151127807,151783111,179830784,-2014818304,46433024,146297067,-1192039680,-303366128,-397361101,-370474592,-352321096,-1632174091,35580158,-24388629,599278059,599597972,599598013,600187846,600187846,600187846,598090694,600187846,598746054,596648902,600187846,1048781739,1946159368,151429381]},{"sector":8,"length":512,"data":[-381280021,1031863974,1191605285,1962950016,734497781,-396996410,-998046946,-369652988,1600061066,-1017256565,-1192457387,-152567784,-2091493399,1946813566,34012932,-197229815,376700936,150347403,1468729227,-129595134,-2080745847,67696134,1048783339,1946159362,-165770480,-1995994360,1187510342,-352321286,-165770483,-1727558904,-1980217719,109312598,-2097018634,592958,1183518068,-96072712,1183516020,855829252,151692224,150615691,151142019,-2094369536,2097216126,75399972,-971541238,-1958335228,1452013638,-2082932742,-621346606,-1980217719,1187510870,-352321034,-163133691,-41222144,-15143037,-11074442,1996487286,81783032,-2096577405,587838,-396943244,-997985283,953090,-1983370487,82574926,1177552070,-113013,-1072955826,92992127,1048773768,1946159342,2086747143,539787267,2105558854,-428539649,151142019,-1592494848,101386494,192153840,16154243,28837237,855829248,1441288384,46433026,-443850914,-1957313699,571628,1474873576,-66664618,-2097143800,1946158206,114192,-2096564575,34141702,-335788407,-165770445,-1995994360,109313094,184682742,-955943488,143719494,-386107649,-997985447,-2081387774,587838,104401524,74647808,151008907,151273099,1048837675,1962936590,250107655,46433025,-59310250,-2097058328,1048773828,1946159374,-152545529,46433024,-443850914,-1957313699,178412,-1578615576,1183385846,-130120706,108331016,150996679,922681350]},{"sector":9,"length":512,"data":[922683630,1996425472,-97059068,-25755896,-2096921880,2122517188,108291844,1191476867,1048778869,1962936588,4096785,175374345,150615807,-2096928536,1048773316,1946159372,4096785,175439881,150615807,-2096932120,109249220,-955774730,592390,150905088,149947915,1996427892,55699710,184730755,-1207601984,48955393,-397361101,-443875036,-1957313699,-390056980,-2091456611,591934,512440437,1342114034,41911042,-1978565632,512427078,931858674,76023807,233563178,150091519,-402360577,-997985149,108347396,151521023,117376235,-1956771578,1438866917,45673611,-414193664,1048794711,1962936584,74877777,1249834507,512439275,1342114034,41911042,-1609466880,512428284,1066076402,92801023,250340394,150091519,150746879,-2081150232,1967129796,134676228,1321634569,-964706293,151535235,-1962445568,100729926,1599998214,-1017256565,-1192457387,-421003262,-1957275674,2123039862,138314502,1282736137,512439787,1342114034,41911042,-1978500096,-232879356,-15758584,-1999009017,-337368569,-231276786,-1744532984,-205395888,1074054275,117376117,-1958344440,-1073000505,1048822901,1962936584,105286407,151389697,-443850914,-1957313699,702700,1474723048,-97088682,-1983892728,1183448134,71207928,854087177,46433265,737822345,75377656,-1324807519,737727235,238978040,359989257,1965898880,-63012080,158674952,-397371220,-997982572,-63012094,192163848,125763339,151928451]}],[{"sector":1,"length":512,"data":[-2095483904,1946158206,-129564922,-2097127704,592446,1191118452,7334140,151928451,1462138112,-2080462616,2122515140,158597124,16285315,887620469,171868928,158597129,16547459,1122501493,-92864768,-18290602,-2096839549,593470,113708404,2099452,-26482601,1577239683,1575324511,-326412861,-1293369293,-29457435,74711048,48966576,1352147120,-1946289176,1438866917,-1070338933,-1192913688,-397410256,-997982744,171868930,359993353,149831299,-1341885440,-1341985960,-397371272,-997982772,1575324418,-326412861,-402652488,1448600929,-2147060085,242559548,150347403,150341251,1178569474,-13419797,2083536000,960266291,1043934847,192219384,1966095488,-66664698,-1409273848,-774927464,65130977,65130959,820609992,1015085451,-2147124176,-478267076,-1996202357,1590070079,1575324511,-326412861,-402652488,-1101601543,233506967,1178076298,-1207601916,149618689,3964998,-1070338443,1575324510,856191683,1575324608,-402230333,-4718579,1575324671,-387697981,-1564278783,-469105140,1048585077,1912800772,1931623437,1914715149,-351948795,322736135,330302070,-687301445,100574104,-339440957,-326412809,-1947287832,1438866917,-1259803509,1575324654,-326412861,-1947292952,1438866917,-1595347829,1575324654,-326412861,-1947298072,1438866917,11791499,1426266601,1586228363,352027396,-75296387,-166953984,1074143879,28837236,855829248,1438866880,1448602763,1317734174,-1959795960,75402201]},{"sector":2,"length":512,"data":[-1070336117,-218103879,-638107218,41339707,-24392821,-217680245,-12285274,1161480499,1946515455,48972037,-1047801353,-1017290914,-2081649835,1448543468,855930507,-1897376001,46433027,604390538,1963080707,105182780,-1978698488,-1952970940,-152841768,17326727,76228468,-1996209109,-1072956346,-11527298,1149895796,-397371385,-997985067,-62506234,1283458932,-4251642,71601151,1153893513,-1962934270,-1956684089,1438866917,-326898549,-1101637884,-13432894,1149900779,-2086037498,1443591168,-2080409112,1950352068,-964475135,-1976157944,-1948028152,-1956684089,1438866917,1465314443,142508806,-1086819072,1451951688,71731974,-402164408,661782611,915097835,1950877336,1962359569,38046477,1443645065,1577073384,-964480909,-1728151292,184840966,-1207536174,-342228993,-2082829539,-607055933,-338492495,567101620,-1986860686,39094532,110638729,1594343475,1575324510,206474179,1278867339,-2096335870,-25099066,-227211624,-1958745095,1914438618,-1898738887,1979136961,1142831366,-2094632186,-607055933,-338564143,-147067951,-654112395,721812641,-1262448936,1914817866,1979136781,1142327556,75993606,1438896523,-13439861,148651656,839272075,567789,548733556,148582024,1023410981,91553795,17200769,145799680,567089844,-1962924103,1320420438,57876941,-1962894359,-930412986,1023737893,125109504,-116324936,-956468503,17358086,33597841,1451953012,1124120580,-1595334195,239872,11097972]},{"sector":3,"length":512,"data":[-162368128,-2146902266,45108085,148637194,-1274784117,1914817853,12096455,-165556924,762675394,-1946157127,1107474641,-638115379,-1274498886,186764607,-2146011968,436777022,-638120075,45666699,857853250,-851397431,-851528671,105286177,101319460,1451952348,-851594236,-381980127,1190592760,1962999814,178182,-956339991,580870,-402098433,-1990655696,-315488178,148637430,-150505985,132678,-511704203,72780798,567098548,-1326906509,-603523332,125173512,33965815,-1825409792,567099060,604391050,-603583997,72780552,567098804,116840562,1963002077,138868500,225705985,-1828599424,-1207675253,567100161,8055187,1317754455,71731978,-1962518901,509020286,177470471,-2095876928,242551545,175755787,-139842128,13796315,-141829385,198325138,-150833984,-235432975,80971666,1983462448,-1440283646,-1022639477,92856949,92712015,1342129288,-177014981,1566531160,-326412861,148571846,108461824,1493196776,-1962520951,-315489194,567098548,-661959310,-1207675253,567100160,115191,-919468939,280036075,411383,-150047424,-2147482042,116787829,1971325151,-2134278141,148573706,-1207842432,567100416,-1024015477,-2147257216,-1886895927,-2017065438,-385874418,-1957299293,100704748,1586221303,-2117917948,-1463811869,-2147256960,1586037195,1438866692,1586228363,107446276,12803535,0,0,0,0,0,0,0,1766596675,1918988898]},{"sector":4,"length":512,"data":[539828345,1126777640,1920561263,1952999273,1667845408,1869836146,1126200422,544240239,892877105,1968046336,1881173100,1953393007,1629516389,1734964083,1852140910,658804,1163412782,1112485376,1278083146,771768905,5066563,1313423918,1498623488,3080275,858927408,926299444,14648,-1,0,5243135,5898325,6553695,105,540697446,684837,1912627826,807731298,978873400,842016032,807739480,677938,1912627826,707395682,539634218,684837,707406378,1931812906,707395594,170535466,707395594,539634218,684837,707406378,1931812906,707395594,170535466,1931804682,707406336,622864938,704645747,707406378,175318304,707406336,168438314,774766592,620759598,540697653,1931804704,1850277898,1886220131,1651078241,1931502956,1668573559,7562600,1868787273,1667592818,1329864820,1702240339,1869181810,1937047662,979724129,543385120,1566650203,1647270688,794501213,1528847715,542993455,1651257179,542985806,1568091995,1949260576,794501213,1528847726,1313754671,1713397070,828730473,1818846752,668261,1852727651,1864397935,544105840,757101349,7546144,1814065957,1701277295,1752440946,622882401,1869480051,1718182944,1701995878,1936024430,1668179232,1953396079,1684370021,1953853184,543584032,1869440365,686450,2037605714,1713398638,1701603681,538979940,1701603654,1918967923,1869881445,1768169583,1919247974,1551134309]},{"sector":5,"length":512,"data":[-1618935698,64736,34734080,248905728,1059061765,104808255,1094918144,169888844,1094918144,1528843340,19615810,154880,264717,0,1852534389,544110447,1869771365,168624242,3801088,794558510,794558522,3014714,794558522,16777274,84148994,151521030,218893066,286265102,353637138,421009174,488381210,555753246,623125282,690497318,757869354,825241390,892613426,959985462,1027357498,1631600446,1701077858,1768449894,1835821930,1903193966,1970566002,2037938038,1566333818,1633705822,1701077858,1768449894,1835821930,1903193966,1970566002,2037938038,2105310074,-2122285186,-2054913150,-1987541114,-1920169078,-1852797042,-1785425006,-1718052970,-1650680934,-1583308898,-1515936862,-1448564826,-1381192790,-1313820754,-1246448718,-1179076682,-1111704646,-1044332610,-976960574,-909588538,-842216502,-774844466,-707472430,-640100394,-572728358,-505356322,-437984286,-370612250,-303240214,-235868178,-168496142,-101124106,-33752070,16842750,84148994,151521030,218893066,286265102,353637138,421009174,488381210,555753246,623125282,690497318,757869354,825241390,892613426,959985462,1027357498,1094729534,1162101570,1229473606,1296845642,1364217678,1431589714,1498961750,1566333786,1096834910,1162101570,1229473606,1296845642,1364217678,1431589714,1498961750,2105310042,-2122285186,-2054913150,-1987541114,-1920169078,-1852797042,-1785425006,-1718052970,-1650680934,-1583308898]},{"sector":6,"length":512,"pattern":0,"data":[-1515936862,-1448564826,-1381192790,-1313820754,-1246448718,-1179076682,-1111704646,-1044332610,-976960574,-909588538,-842216502,-774844466,-707472430,-640100394,-572728358,-505356322,-437984286,-370612250,-303240214,-235868178,-168496142,-101124106,-33752070,1917190142,544370546,1308622896,1970479215,1713399907,543517801,1679848047,1667592809,2037542772,0,1735540992,1936288800,1869881460,1869357167,1157654382,543384952,1836216166,1696625761,1919906418,1684095488,1818846752,1970151525,1919246957,1308622848,1696625775,1735749486,1868767336,1342203250,1768780389,1869181811,1701060718,1684367726,0,1701603654,1769497888,7566451,1936683587,1701064051,1701013878,1852402720,107,1986939136,1684630625,1735549216,1852140917,1409286260,1830842223,544829025,1852141679,1818846752,29541,1867382784,1634759456,1814062435,544499301,1679847023,1667855973,101,1632436224,1629513844,1836410738,7630437,1970496850,1948284012,1814065007,1701278305,1699872768,1920298867,1679844707,1818517861,543908719,1819635575,1668227172,7501155,1426071610,1869507438,1696624247,1919906418,2560,74843246,76612727,76743826,76874900,79234215,80348361,81462475,82707693,82838767,84804860,84935951,86115601,87491875,87622968,89261370,89392467,89523541,91555172,2426230]},{"sector":7,"length":512,"pattern":0,"data":[0,0,0,0,-2122252288,65921,0,0,0,0,0,0,0,0,48168960,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1608,0,0,538976256,538976288,673718304,539502632,538976288,538976288,538976288,538976288,269502496,269488144,269488144,269488144,-2071690224,-2071690108,277120132,269488144,-2122248176,-2122219135,16843009,16843009,16843009,16843009,16843009,269488144,-2105405424,-2105376126,33686018,33686018,33686018,33686018,33686018,269488144,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,1127940096,1279870559,1313431365,20294,202506240,202506240,1,0,258,0,518,0,900,0,1026]},{"sector":8,"length":512,"pattern":0,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65536,0,0,0,0,0,0,0,0,0,140115968,168624128,1819635240,721430892,2301997,33691136,201919768,134679564,318767103,-16641523]},{"sector":9,"length":512,"pattern":-151587082,"data":[]}]],[[{"sector":1,"length":512,"pattern":0,"data":[29252173,262177,15007776,73465855,-526776320,7408,30,243531777,485556985,739835904,745209856]},{"sector":2,"length":512,"data":[-1957363712,309484,-954471192,65094,-1609602584,-467006014,-523040591,230887050,-1056707286,1039943305,91357962,1979913277,168755005,171868942,276561934,512427952,117378568,126357000,250340394,1343097016,1342179256,-2095416600,-1866988348,-186101750,46433032,1342177720,-2095140632,1996423876,162195710,-1996307325,1048837702,1962940068,168754997,171868942,276561934,512427952,117378568,126357000,250340394,1343097016,1342179256,-2095437080,-55049020,-1528279030,46433032,2122516203,175440126,1342177720,-2095163160,-222821692,-1998041081,46433032,-385976577,-998047710,-28931838,191577728,1342665728,-2096547864,1048576708,1946159978,237824003,-1017256565,-1192457387,-152567804,-62470630,75399936,-385646848,1048772895,2114000548,185907210,138012752,-1207778173,-397408254,-998045649,-1539407102,175374614,1342728888,-2096619800,2058879684,350769160,46433032,1342177720,169797712,-1996176253,-12714426,1027765503,678690817,1946157629,212290,71123572,1027765248,1114898437,16678531,2122538876,1501497854,100550283,1424687152,-402360577,-998046984,1958742786,379887884,1963214393,-62470652,197715969,-402619927,-169148274,-351898136,138340592,1048833003,2114000548,74907575,-2096603160,1183384260,1975520004,1374179540,46433032,-352041335,2144456,178305104,-1640562864,441706506,-16333693,-2096231922,920126,128979068,235413131,235407103,-467007608]},{"sector":3,"length":512,"data":[146280171,129519630,-991408128,79987480,1342861496,-2096677144,-1732771132,887640074,46433031,16547456,-655817867,71732222,-1017256565,-1192457387,-1159200756,-62470631,-196688128,1187446784,-402652934,-88601830,15224840,46433031,379862659,-1207271935,-397407468,-998045969,268888066,1342913208,-2096700696,1187447492,-352321030,-161576169,-472709967,308199296,-1962510976,1183447622,-96010252,-386238721,-998041938,-163149566,-646070261,-2080747777,1962998398,168754998,171868942,276561934,512427952,117378568,126357000,250340394,1343097016,1342179256,-2095579416,-625474364,2028490760,46433030,-2097047319,1963063934,-193035468,-13730304,-2096231922,920126,128979068,235413131,235407103,-467007608,146280171,129519630,-1125625856,79987479,-351739208,-193035332,-385646848,1996423500,143833332,-1875443888,419686408,-1207516029,787024010,149600257,101836880,-1207778173,-1202716671,-397344769,-998045672,-28931836,-385649344,1996423456,367323390,-1996307325,-1072957370,2122538877,243007742,167673475,1183516799,3147262,548930539,-1598533632,922701834,-1494742370,113541912,235540223,235552387,-1341096960,136219399,134676238,705136654,-1206981660,-1202713080,-397410297,-998041833,175159300,93448272,-1207778173,-1628894568,-128021760,-472709967,308461440,-13732353,-2096231922,920126,128979068,235413131,235407103,-467007608,146280171,129519630,-790081536]},{"sector":4,"length":512,"data":[79987478,-351763784,-62470558,-163133695,1586167808,-754667018,1585956579,1191116818,-159480842,-1947501564,-472647586,308185030,1795606144,803733771,150648841,85321808,-2096970621,18261054,347605630,82333707,46433029,-15852568,-1061618058,922701832,-756545346,113541911,1342748856,-2096830744,2122318532,57999612,-385957143,-443869685,-1957313699,702700,-971543320,-956238266,64582,16402119,-92864768,-2095944216,-1073020220,1191125620,-94467076,-472709967,308461440,-1962183679,-472647074,308449080,1187384437,116064758,-1980086645,1191180358,-92371974,-2084406268,1962998910,143190135,1342824120,-2096861464,1048773316,2114000548,185907210,73263184,-1207778173,-397407430,-998046637,166115330,71952464,-1207778173,-397410303,-998043390,-28931838,1962934845,14543107,1962934589,74907435,346175231,-1202667469,-397410301,-998043148,1975520008,12445955,311297734,1778828928,28836107,11528448,-1207430680,-397407778,-998046729,-1539407102,176029974,1342903480,-2096896280,-35126588,188397580,64612432,-2147302269,1946220158,168754997,171868942,276561934,512427952,117378568,126357000,250340394,1343097016,1342179256,-2095765784,-2034760508,-1595387895,46433027,2122532075,779420924,235540223,235552387,-1341096960,136219399,134676238,705136654,-1206981660,-1202713080,-397410297,-998042389,159299588,1996473323,-126419196,-2097147672,-1073019708,-1998060684]},{"sector":5,"length":512,"data":[-1950338284,1438866917,280554635,367519744,16271046,-768313,-263796737,1187446784,-939524100,130630,1586197739,-754667018,1636272867,1357130258,-738828661,1619495651,635981842,79987476,1006388779,712962118,-1309254005,-1964780796,705847687,1586188516,-1964780554,1343381639,-2095841304,1177224388,-263812612,-1979955573,1586230342,-754667018,1703381731,1357130258,-738828661,1686604515,-706195438,79987475,-244087,1996488262,312797438,-1996307325,-12716474,-385646849,-1566441608,-62510316,2129675835,346202384,1090274859,-1947187575,1183448134,-196673548,-2081403137,1962995838,168754991,171868942,276561934,512427952,117378568,126357000,250340394,1343097016,1342179256,-2095852824,2125989060,17230089,-1192200449,-11531866,-402023370,-998042335,-193528058,1342817464,161756927,-2095771416,-1766324540,619204617,46433026,-386894081,-998044494,-96040702,58048523,-1207905303,-397407632,-998047225,165066754,33417296,-1207778173,-11534332,99153014,79987460,1039287945,58064895,-16734231,-397346186,-998045503,1975520004,168755024,171868942,276561934,512427952,117378568,126357000,250340394,1343097016,1342179256,-2095895832,1996424388,155760890,1043791696,343926793,-16333693,1857614454,922701833,1860700486,113541908,-351717192,-129579513,175159297,24766544,-2147302269,1962997886,-11736829,-1962510593,1174663750,-11515654,1996485238,254994436,185123971]},{"sector":6,"length":512,"data":[-971541312,17525254,-1207277592,-397407998,-998047421,112642,-1070398741,-1017256565,-1192457387,-823656446,87877651,1342840504,-2097077528,1048773316,2114000548,185907210,17950800,-402471805,985139752,82333707,46433025,16664263,-25263360,-14254844,-1477902730,46433038,980729867,-1308729717,-2132552956,17982143,1586170740,954455038,1964139151,-25263327,-13339388,-2096231922,920126,128980348,235413131,235407103,-467007608,1191121899,-1196495874,-1202713080,-397410297,-998043109,167688196,-16742167,-2096231922,920126,128979068,235413131,235407103,-467007608,146280171,129519630,-320319488,79987473,1342834360,-2097125656,-1070398780,220260432,1023591555,1366622209,1342181560,1343661752,-1308735861,98620164,-397405602,-998042209,1778828806,113639691,-402584725,515376194,686313482,46433024,379862659,-1207271935,-397407468,-998047721,154068994,1342830264,-2097149208,954729156,1575324433,-326412861,-402652488,-950660455,65094,1988836331,-754732546,73305062,-1962774273,-472646050,-16484725,86763568,-1962621821,61996662,1586226899,74514180,-738298229,108068838,-2096846872,1191118020,-27358210,-472710223,-2096859509,-1233321928,-738298229,73305062,-1962774273,-472646050,-1962641781,1356396288,-2096832280,1988822212,-754732546,73305062,-1962643201,-422314378,-402231041,-998046628,-443851260,-1957313699,-390056980,1877479937,174635011,-11147184]},{"sector":7,"length":512,"data":[-2096970621,18261054,347605630,1156075531,46433279,-402105368,-443871121,-1957313699,178412,-955133720,130630,191577728,-2141490176,748094,-1763179660,278968322,74907472,-2097004312,-1073019708,251609205,1048776202,2080378378,-1962430448,-15857634,-2012346362,-337368569,235452430,505936,274589776,-1207647101,-397407632,-997982505,185382914,-20060080,-402471805,113643515,-16774293,1996424262,40691716,-1593654141,1178146468,855997956,12249536,1343267000,-402360577,-998043937,-28931836,1467334667,-16603672,481821814,922701835,1726483226,113541905,1342903480,-2080474392,251593412,1048776202,2080378378,-1962430448,-15857634,-2012346362,-337368569,235452430,505936,265152592,-1207647101,-397407484,-997982649,259385346,-2096999960,1962999422,-9180925,312360577,393521749,1342308536,1342943928,1343267000,-2095874328,113641156,-16708757,481821814,922701835,-353891558,113541904,1075094177,171358288,741801808,282585098,-1962490749,-443874234,-1957313699,2144492,1443923176,16533190,335969923,1187448190,-1929374714,-1924079546,-397345210,-998047008,-58818556,-12094208,1996480630,51112190,-2096839549,2080375934,74907411,1342206136,1357006477,-2096070424,149620420,551700166,14894790,-1928956161,-397352378,-998045516,1958742788,-129579239,1187446783,1891107324,1894273034,46433277,-369604981,1187446932,-973078280,-956171194,64070,-2131069301]},{"sector":8,"length":512,"data":[1946215034,-498955636,-153580648,68102023,764941940,-930414544,-150992200,-939263890,-504183,-722732474,-1963297141,1352196674,1342873784,178140927,-2096104216,251594436,1048776202,2080378378,-1962430448,-15857634,-2012346362,-337368569,235452430,505936,242083920,-1207647101,-397407632,-997983001,177780738,-52565936,-972897149,-385811386,-1956708593,1438866917,45673611,258467840,16664263,-25263360,-13468411,28837494,-1070379008,71732048,1342209797,-2096935960,-1073018684,1183519348,8324356,42854480,-16595837,-840171962,-352321096,-1950338302,1438866917,481881227,253487104,193805952,-970885888,-970595002,-1205607354,1183386508,-230257174,-465138352,305653840,-972766077,17534214,-1017256565,-1192457387,-421003236,-448346610,71731720,1183350532,-230257174,-465138352,1292368,310372432,-2147040125,1946219390,-1543059704,-352321514,-129594841,-1532763094,-112817642,-1978359646,-1974405306,-397347258,-998044396,346202884,620119690,346137151,-1017256565,-1192457387,-2031615972,-448346610,-230257393,-465138352,1095760,304605264,-972635005,-972626618,-973020090,-955783354,59462,418072262,-1997322614,1183705670,1183666418,280514788,-85438464,1575324433,-326412861,-402644808,2122321465,846530564,1356875405,1358841485,-2097111064,2122515652,1719534048,-2076929,1996480630,13101310,-16464765,548931190,-991408128,79987711,1187396843,1183451619,-498694140]},{"sector":9,"length":512,"data":[-2012854646,1187439686,1187447013,-1929379354,-1924075450,-1202658746,-397410288,-998043251,-532247290,-28930736,4384848,-16464765,1996480582,-25755680,-2097123096,-443874108,-1957313699,178412,1443736808,300676659,-1962510593,9045086,1491619992,79987711,73304902,1962948736,-443851033,-1957313699,1882348,-972193560,-972823226,-1929320634,-1924074938,-1202658234,-397410288,-998043363,73304838,720979594,126435556,-1979294069,-466945978,-1962440384,1438866917,481881227,222554112,48580294,15156934,-33274230,-347699000,-33143158,-364476216,1358055053,1357137549,1342181560,-1961832216,1438866917,481881227,219146240,31737543,71731714,-1964358008,1183319622,138841067,-1947711863,1183386182,-230257178,-465138352,1292368,278390864,-1979267965,-466947258,-1017256565,-1192457387,-823656416,-62470388,1187512304,-386924290,1387855410,417878027,46433274,-401619992,1593835042,1575324668,-326412861,-402645832,1187450017,-1979711260,1183319110,-230257174,-465138352,1292368,272361552,-1979267965,-466947258,-1017256565,-1192457387,1927807004,-448346612,-465123835,-230257408,-465138352,1095760,269477968,-972635005,-1928338106,-1924074938,-1202658234,-397410288,-998043655,-230258170,71164970,1024226304,225705989,1946158653,-971838706,-352197562,-465123822,-972231936,-352132026,-230258170,-958118264,-1929321146,-1924074938,-1202658234,-397410288,-443871307,-1957313699,1882348]}],[{"sector":1,"length":512,"data":[-955517720,50455622,-2012985718,1183509062,-347699194,-1995946357,1183574086,-431585014,1358055053,1357137549,1342182328,-2096136984,1183450820,-1947981069,1438866917,79228043,196339712,33441479,-25755904,-2096563736,1183384260,2109737980,15788291,78764171,-2020940845,-467004831,-60912816,-2020940845,-397405600,-998045196,71711492,1586179196,-754667012,1636272867,1357130258,-738435445,1619495651,-773304302,79987465,50613899,994641486,-385647416,1586167960,-754667012,1703381731,1357130258,-738435445,1686604515,-1511501806,79987465,2080654907,-60912855,-472709967,308643722,-1957632982,-472646562,308578186,159574096,-1962621821,1308820558,-935638778,1586187389,-754667012,1636272867,1357130258,-738435445,1619495651,1508397074,79987465,2130986555,-60912851,-472709967,308643722,-1957632982,-472646562,308578186,154593360,-1962621821,1308820558,-935638778,-1070398337,1191125739,-16913922,294531,1183576188,105251588,-1576649912,-2082242796,2113930878,112861,-1017256565,-1192457387,-2098724852,74907402,-2096640536,1183384260,91570422,-437665741,-161576192,-472709967,308447114,54387754,-385649152,37552280,-385650176,20775041,-385649664,1187446933,-1962425096,78771806,-2020940845,-467004831,-161576112,-2020940845,-397405600,-998045540,-96040700,-1309254005,-1964780796,705848711,1586188516,-1964780554,1343382663,-2096595992,1183384772,-196702722,-62485168,-59840432]},{"sector":2,"length":512,"data":[-1962621821,1177288262,-11517702,1996488310,-126418950,-1309254005,-2132552956,-2146279745,-341825163,-953685241,132315206,1187481067,-385364232,71171965,-385649408,-12714128,-940870656,131659846,-1593874199,1352140780,-1207666945,-397408354,-998044635,-193528050,1090274955,-62658480,-1207647101,-443875327,-1957313699,178412,-1207337752,-397407648,-997984557,170309634,-154539952,-956119933,130630,-385976577,-997982510,1958742786,-28901623,83787395,2122574462,175440382,1342855352,-2080989464,-443874620,-1957313699,-390056980,1996425521,108461832,-2080645912,1996424388,175570692,1342942904,-2096389912,1183516356,172360456,1996443720,-71571450,-1017256565,-1192457387,-85458932,-96024824,-1600061441,1357130260,1343529376,346175231,-2096705816,1183385284,-27883012,16271047,-128021760,-472709967,308709259,308844427,-1980479863,1996486230,64022776,184730755,-1959234368,1452014662,-162121218,92024191,1945388601,73304870,-1946925429,1463416406,2081980162,1929853188,-129594606,-1946532215,1452012614,-62486026,-108919,2122577990,-1652816648,-1962647925,1452014662,-1995994626,1183515223,1575324666,-326412861,-402652488,1642596437,-28932085,74760202,880083772,67010176,1307050868,168754955,171868942,276561934,512427952,117378568,126357000,-823401430,1343097016,1342179256,-2096696600,-1091894076,-1728166262,-1017256565,-1192457387,48758786,160348168,-178657200,-1207778173]},{"sector":3,"length":512,"data":[-11534332,1642595446,79987703,1040074377,74842111,1726726195,33455747,1183516796,-28952316,251610238,1048776202,2080378378,-1962430448,-15857634,-2012346362,-337368569,235452430,505936,109439056,-16464765,314113654,922701833,-622327536,113541895,1342769848,-2081100056,2122515140,-2055470594,956581515,58654278,-1946191127,-443810234,-1957313699,833772,1443327208,16008903,-28915968,1996423170,182249476,990037123,108922438,-369099080,2122514793,91553798,1592377395,-163148543,-96039600,-105977776,-1207647101,-1605369841,1352140781,-2080839960,1183515844,105251830,1996443712,-104077062,-1207647101,-1605369841,1352140782,-2080848152,1996424388,-163149050,1996443712,74907642,-2080523288,-1863841596,-62486274,1517555004,2095599768,46433034,50232963,-1226243212,-195130624,-972786037,1996423168,-163149050,1996443712,74907642,-2080537624,1491601604,-62486274,540056,222111604,1025209344,259260443,956712587,1786573894,16271047,-950473984,130630,1187491563,-352321282,-193035353,-16417280,-1662258098,235540223,235552387,-1341096960,136219399,134676238,705136654,-1199445020,-1202713080,-397410297,-998046417,-9377532,-1946650997,1082786910,-1948349695,8914038,-1946663169,1178203206,-1737480,1586230350,-196673548,-1979418997,8977478,-48663,1996486262,-120854278,-1207647101,-1202716665,-397410272,-997984313,-163149052,1074152963,-92864688,-2080854808]},{"sector":4,"length":512,"data":[129500356,548950016,-1461170176,79987703,1593722507,-1017256565,-1192457387,-689438712,-79247867,-129594112,-62485168,-130095024,-2096839549,1963000958,133144584,-335919480,75399951,-1610255104,-253032464,553273030,1342177720,1358579341,-2080495640,-1073019708,1891111028,-320319478,46433266,-385875272,1183449238,-661939974,254248950,738489346,-1979454688,1183382086,133210366,1979598392,175159310,-222435248,855819395,-1603671104,1178077167,-1206946306,-397407632,-997985625,112642,251613931,1048776202,2080378378,-1962430448,-15857634,-2012346362,-337368569,235452430,505936,66447440,-1979399037,1352202822,1342886584,181417727,-2096805656,-893909308,1558728714,46433266,-493825,-1494680458,-14095881,-1017256565,871140181,82045120,1342181560,1343661752,-1325119861,98620164,-397405602,-443874079,-1957313699,702700,-1962622744,78709830,1577443539,-28931822,425603,28312693,-1070464277,-1996595573,1996423495,-27358454,704726922,1996443876,19851270,184992899,-385649472,1996423340,112646,-28931248,1342178053,1090406027,-1142403008,147096322,-1593942389,1200100512,142016261,705995168,1183535332,460286,-28931248,1342178821,-2096982552,1586170052,21465854,-1202658262,-11534335,484968054,113541890,-1980086647,-1600062378,1357130260,1343529376,-402098433,-998047229,-96064762,-1979951589,1451882054,-27358216,-2097151739,1200160978,240617740,-1946263925]},{"sector":5,"length":512,"data":[1452014150,138906108,-2096474231,2080438398,-2130215061,-2147420546,78668406,1183539435,-1924120322,-397408698,-998047496,138840836,2131117625,-14751485,1342865592,-2081351960,2125988548,216551433,46433265,235540223,235552387,-1341096960,136219399,134676238,705136654,-1206981660,-1202713080,-397410297,-998047137,34727940,384548915,1586168240,71796990,-956408181,113639431,-1207891093,-443875327,-1957313699,67811564,-1962714904,2131036230,138840320,33048263,346136576,1178199082,-10651656,1996424310,-163148296,-96039600,24963152,-1979136893,-466946490,-523040591,721047178,-1983839251,-2037515194,-11469834,1996487798,142016262,-2081034008,1183385796,1975520254,-158954213,1996443899,108462076,-402098433,-997984528,-28931832,91537419,-335657333,-129564923,-443838485,-1957313699,-390056980,1586168525,346071046,121234474,130484594,1586167808,-1962677500,134153822,-1017256565,-1192457387,-1494745080,-62470398,1187512319,-2080374786,2130969726,75399942,-1207599360,636223486,33048263,-1928074496,-397345722,-997983878,-96040702,-16026560,1183578182,-129615612,1183573374,1575324666,-326412861,-402652488,1187447385,-2097151746,2097544830,108461874,1342177720,-1957642189,2131035206,585650176,147096565,309641227,84166283,-397410177,-997984897,-28901630,28888555,855829248,1575324608,-326412861,-402651976,1448542733,705994912,-919912220,-1583329199,1373907476,71732048]},{"sector":6,"length":512,"data":[-397389159,1347551878,-1962817816,105286600,-1952851317,346136816,-125049814,-1995946357,1451883638,-1947731970,-1950250000,-2084174893,1174601938,-27913220,-2097151699,1599996122,-1017256565,871140181,28043456,-1979294069,126356038,-1962647925,2427462,-772222717,138808056,-443873400,-1957313699,-390056980,1183449477,635709956,-523173696,1317724369,200092166,1575324609,-326412861,1726529587,188397569,-289544112,-352140157,168754985,171868942,276561934,512427952,117378568,126357000,250340394,1343097016,1342179256,-2097148184,-790100796,1964719352,1575324624,-326412861,1459940483,108432214,-1744419702,1946190761,105182726,-1207536576,-622198785,105182720,-2147060735,-350222772,105677038,107249666,-1983892497,-125107644,-151093623,1963460164,121932303,-774337640,-1601702173,812908814,2083208331,2130643716,1962891026,121932292,1088966808,113541895,-1946270071,-1992293308,38061828,1552613887,71731716,1793787784,67519734,-25080203,762646024,-1744354166,78374992,184730755,-952797760,1091420166,71616289,1149899424,-661940217,-2017008687,-956232032,-351100668,33601720,262924368,-1996307325,-1073019836,1283458676,-1679095802,67521664,1459618239,1342457485,-1744354166,113371216,-1996045181,2117729862,-385649410,1183514417,1592011268,1575324511,-326412861,172395350,-150712693,-1948742687,-259323834,-637279753,107411350,-745809917,1566492299,1493174466,-668214133,507185778]},{"sector":7,"length":512,"data":[74583550,-503323765,1426214377,1448602763,-485994869,-1962467812,1988822142,866579206,-12285239,-12240346,58656628,-150803647,1589742545,1438866783,-326898549,-1957275892,183469053,1107707334,-1996208501,92865605,-16628281,138841471,108461904,134735959,-1962490749,38666224,163203,-1070461828,100605323,-467007608,861342443,1357402304,79987710,1600046731,-1017256565,1475119957,-1948568746,-1073019322,-738782595,-150710645,500889560,1183383552,72780038,185222795,-149783104,139889619,-621291273,-1996488675,1451821638,72256264,-125050377,-1962391925,65140720,1727502074,-1946680570,197561303,-150506277,-2082932774,1599996122,574045,-1962740545,721420854,16679415,-1107070448,-1896214528,-1094417961,57932566,-2130621975,922746596,248653449,-802780874,-1312388338,1222693636,248423222,567095476,230859574,712180284,1354773278,1119493902,-855002083,1329908513,775037011,1919885360,1952541728,1914729061,1769304421,224683378,-150789110,145033,-567557236,1253366775,-1942609459,-1962034658,503327798,889239574,-1992941107,906938910,248252044,12066574,510769701,-1959386675,-485460978,113587746,-628354954,-13182157,1930457630,13428995,2047264054,-1143305200,-13238269,118518302,2126511135,381729040,-1070346453,370584307,1541938951,310022,-851181384,-167087583,91521218,232820608,-327595200,-402421016,2126185139,2130411792,1393062672,1130043391,-1175262397]},{"sector":8,"length":512,"data":[-517275642,-1962031938,-217639172,35907748,-303502029,48779489,1393167617,1801675124,1702260512,1869375090,218762615,1986610186,543515753,1869771365,218762610,1869366794,1852404833,1869619303,544501353,544501614,1684107116,168649829,431624881,250425886,178975,567099572,-4710634,-1930932224,-1173311230,-437576149,1002053041,1440672542,-326898549,-1101637882,-397013496,-998046530,-1913091326,-11532730,-397015946,-998046263,-96040698,635983702,79987461,1593460363,1575324511,-326412861,119428695,-1962639733,-678754698,990400139,-1961593090,1002505158,51147768,1324942321,-1527513777,-1960711172,-775550009,-1962249240,-775539769,-1528073496,-774272183,-777653271,-1979354133,92808708,1600045707,614515549,1958742543,-1998310905,-1022417882,567085236,1438901298,1048833163,1946160576,-1072234748,74907405,-1962815768,1438866917,1448602763,-1962639733,39684869,-1962652277,1972045397,175999752,-1957223987,92866174,-1996333687,1435042893,141920518,1913275791,-336186620,204335112,-1962933826,209029381,-1017290914,1475119957,2123040542,-1178586364,-1359806465,1077985675,1566562551,-326412861,168764576,-1979025984,614597702,-337366513,-138398972,1438866896,1448602763,-972493693,-1949435834,1183319110,-96024839,-162100021,-1980217715,2123101254,-1962571002,1300955741,106269444,-1962379893,-2091578755,1593773293,-1957208832,92866686,-1996333687,1435042893,141920518,1913275791,-336186620]},{"sector":9,"length":512,"data":[194373640,-1962933826,209029381,1577632899,1438866783,1586228363,352027396,-75296387,-166953984,1074651271,28837236,855829248,1438866880,-326898549,-1957275896,-351418314,833559,271104080,-399179952,-998044410,1958742790,46564104,1962949763,3965924,1015757172,-955463805,65094,-1740175990,-335919479,-1744467428,1962999613,-339725820,-1962571262,1191181918,-527988482,-95486195,-92372153,-941722368,1577058308,1575324511,906399683,-1172402672,-1949748467,-1947628607,915098105,-167051220,-963770252,-1371164942,-1757021579,-1946278848,65393149,-400615739,-812909787,-50070389,118942859,-164372850,-1995578551,1162150014,-1073042772,-203228555,369118857,-936998625,908525325,-326413040,-2129625413,1930460923,402608904,-347913381,51964146,175432714,294528,1187382389,-987824636,-1206990314,567092480,1947110175,-1157111024,520028162,1183518834,-850611196,-326413023,1459940483,234929750,401342259,-1744419702,1946190761,954750475,46433036,1191277632,956876419,1930348598,1590135779,1575324511,939954115,-1172402672,-1106831859,-1733558144,-2144939469,51233342,-1907333774,855649286,-137851968,-218592303,87565998,-947652235,-137852157,653757393,1095173514,343203898,141828668,74713404,-344645572,-1106831784,736821377,201206607,-1947110145,-1956953393,96535491,-31129597,-1948242945,520494844,-1527576810,-1951784784,-2118246453,-1961956608,604243144,-1948242946,541309180]}]],[[{"sector":1,"length":512,"data":[-1952123989,-192173375,-1957683434,-1392604196,1958742698,1965177917,117397023,179047876,1009677504,-2146994910,1969028989,-341160188,1170622445,-706019073,1946171368,1180061392,230950655,-1073042772,635963508,-336235264,-192173343,-214217909,-2018703245,-29062905,-594808085,41275915,646514687,654249414,154931256,540803700,-326412861,-167485813,537780359,45616756,-1949748414,1931595217,150595843,232818678,-385649280,1317732481,106334984,-1070397666,-1957275652,-470119440,1074444389,846573298,735021905,283331018,60563917,74685936,1240140212,796180491,178502,-1274004806,1931595072,-351685628,1958742836,-678733542,-1957575189,-842388529,-268198879,-1274776675,186313481,-166300224,1074651271,1586170740,440369158,-336067723,146340100,41048348,1600046731,-1962381591,1451952206,-851397626,-1274776799,-470947063,1975520235,-527960345,175390733,1065409163,-133991142,-1191586069,-789898232,1458342741,-2130413941,1963854078,105182780,-1976142580,-1952970940,-152841768,17735815,1153902453,-1978490876,-1952970940,-958148136,17735815,230688455,1153900865,-1962803198,76088388,-352321096,553550132,-164858610,1963722308,121932326,-774337640,-1601702173,393543950,1342308536,-2096658200,1149829828,1958742788,105676806,867822344,-443851072,-1957313699,1988843244,75399942,-2125696000,1963854078,121932325,719868056,46433276,376750091,161605718,-1979530109,-1952970940,-958148136]},{"sector":2,"length":512,"data":[958599,-25093397,460656160,159770710,-16595837,417858676,46433031,-150576000,76136499,1577337993,-1017256565,1458342741,901379635,-52153856,-488623444,1442087163,3477246,646448757,300613684,225764362,-1157613894,431554562,-851397632,-1564462559,-1956773835,1438866917,1656286347,-142088191,1988843095,-1568240378,277521406,-1560000885,1183518850,277259016,-1734098893,278307600,1962949760,21620995,1948597376,17492227,277874375,-1070399487,-1559195997,-1834807170,277127952,-1559197533,-1667035008,278831888,277612231,854261792,1965898880,-1643708666,-2144867568,209005372,277743359,276825799,384499712,1965046912,-1908505843,175439888,276825855,117376235,-1975119716,-397371388,-998046201,1975520002,-1799858497,-1863823344,79987461,1015083147,-15567570,1175488518,277919830,91875408,-1962621821,1815904496,113706869,135300,3964998,-1595341963,-1744532992,-23165303,1946174781,4668682,1480394100,-16157440,-2096071162,553557638,-23165301,1023435565,1047986197,781434883,632203263,278005503,278660807,179830784,-2014818304,46433024,146297067,-1192039680,-303366128,-397361101,-370474592,-352321096,-1632174091,35580158,-24388629,630997483,631317880,631317921,631907754,631907754,631907754,629810602,631907754,630465962,628368810,631907754,1048782223,1946161304,278307077,-381280021,1031863974,1191605285,1962950016,734497781,-396996410,-998046946]},{"sector":3,"length":512,"data":[-369652988,1600061066,-1017256565,-1192457387,-488112104,-2091493387,1946813566,-1845035260,-2076278000,376700944,277225099,1468729227,-129595134,-2080745847,68191750,1048783339,1946161298,-2044818672,-1995994352,1187510342,-352321286,-2044818675,-1727558896,-1980217719,109312598,-2097016698,1088574,1183518068,-96072712,1183516020,855829252,278569920,277493387,278019715,-2094369536,2097216126,75399972,-971541238,-1958335228,1452013638,-2082932742,-621346606,-1980217719,1187510870,-352321034,-163133691,-41222144,-15143037,-11074442,1996487286,109111544,-2096577405,1083454,-396943244,-997984098,-1878095102,-1983370480,82574926,1177552070,-113013,-1072955826,92992127,1048773768,1946161278,2086747143,539787267,2105558854,-428539649,278019715,-1592494848,101388430,192155776,16154243,28837237,855829248,1441288384,46433026,-443850914,-1957313699,571628,1475654888,-1945712810,-2097143792,1946158206,114192,-2096068959,34637318,-335788407,-2044818637,-1995994352,109313094,184684678,-955943488,272432198,-386107649,-997984262,-2081387774,1083454,104401524,74649744,277886603,278150795,1048837675,1962938526,250107655,46433025,-59310250,-2097058328,1048773828,1946161310,-152545529,46433024,-443850914,-1957313699,178412,-1577834264,1183387782,-2009168898,108331024,277874375,922681350,922685566,1996427408,-1976107260,-25755888,-2096815128,2122517188,108291844]},{"sector":4,"length":512,"data":[1191476867,1048778869,1962938524,-1874951407,175374352,277493503,-2096821784,1048773316,1946161308,-1874951407,175439888,277493503,-2096825368,109249220,-955772794,1088006,277782784,276825611,1996427892,83028222,184730755,-1207601984,48955393,-397361101,-443875036,-1957313699,-390056980,-2091453559,1087550,512440437,1342115970,41911042,-1978565632,512427078,931860610,76023807,233563178,276969215,-402360577,-997985741,108347396,278398719,117376235,-1956769642,1438866917,45673611,-214177792,1048794711,1962938520,74877777,1249834507,512439275,1342115970,41911042,-1609466880,512430220,1066078338,92801023,250340394,276969215,277624575,-2081301784,1967129796,-1744371964,1321634576,-964706293,278412931,-1962445568,100729926,1600000150,-1017256565,-1192457387,-756547582,-1957275662,2123039862,-1740733690,1282736144,512439787,1342115970,41911042,-1978500096,-2111927548,-15758576,-1999009017,-337368569,-2110324978,-1744532976,-244193200,1074054275,117376117,-1958342504,-1073000505,1048822901,1962938520,105286407,278267393,-443850914,-1957313699,702700,1475504360,-1976136874,-1983892720,1183448134,-1807840264,-739748336,46433269,737822345,75377656,-1324311903,737727235,-1640070152,359989264,1965898880,-1942060272,158674960,-397371220,-997982572,-1942060286,192163856,125763339,278806147,-2095483904,1946158206,-129564922,-2097127704,1088062,1191118452,7334140]},{"sector":5,"length":512,"data":[278806147,1462138112,-2080462616,2122515140,158597124,16285315,887620469,-1707179264,158597136,16547459,1122501493,-92864768,-18290602,-2096839549,1089086,113708404,2101388,-26482601,1577239683,1575324511,-326412861,-1628913613,-1908505615,74711056,48966576,1352147120,-1946289176,1438866917,-1070338933,-1192132376,-397410256,-997982744,-1707179262,359993360,276708995,-1341885440,-1341985960,-397371272,-997982772,1575324418,-326412861,-402652488,1448603981,-2147060085,242559548,277225099,277218947,1178569474,-13419797,2083536000,960266291,1043934847,192221320,1966095488,-1945712890,-1409273840,-774927464,65130977,65130959,820609992,1015085451,-2147124176,-478267076,-1996202357,1590070079,1575324511,-326412861,-402652488,-1101598491,233508931,1178076298,-1207601916,149618689,3964998,-1070338443,1575324510,-326412861,-2147197301,-1962803633,1438866917,1465314443,-2096084805,695533631,95946526,27781120,-1070398091,1076161433,1218706980,273326864,17090454,80118528,-16890681,1312197119,72256272,-1064380276,1593856488,1575324510,856191683,1575324608,-402230333,-4718579,1575324671,-387697981,-1564278783,-469103158,1048585077,1912802754,1931623437,1914715149,-351948795,322736135,330302070,-686796101,230466456,-339440957,13363703,1945041283,-511688200,41389054,-24400388,1114898856,1942043464,63998741,27831792,-1039977356,-1962933755,-29062665,-24385813]},{"sector":6,"length":512,"data":[-117240716,738086025,92883137,-117242389,-1946268418,-2116383546,1946350842,512501253,2139689066,-970538238,34631174,1962933821,67013413,27831792,-24382860,1942043464,63998909,27831792,-1039932812,-1962933755,-29062665,1200350955,1958742792,-338129404,251536915,276041838,-197273460,637891586,275127950,-1108658293,856061835,5892288,225756731,1077936420,5105816,1308495220,780542,1318454644,865790798,1371773376,-1459731061,721646593,1094797768,645922746,275519035,-355400586,-1047792267,359843331,225624579,-1037839625,216581675,-150440704,1978323410,1505768421,-397323581,410255389,-1946252457,-940440592,-65980,-1962510455,1255615446,1493063049,1405311577,517092176,-1202695598,105906177,22931487,-2096577405,1512046586,184710235,-1957313582,-245831444,-1017256565,-387151019,-443813554,-1957313699,-247142164,-1017256565,-387151019,-443813574,-1957313699,-248452884,-1017256565,-1276343467,11331840,1475119957,-1962467754,803407950,2123094411,871860996,-17984,-146690318,1993030617,-1949594878,108432382,1149937395,986264575,91750213,-348060300,-1949174014,1566531265,-326412861,1459940483,74877782,-396951757,-998047561,105155074,37487396,1156988021,259328006,-1744354166,-472786805,245401590,-1960348671,71576324,201082505,1343979200,-1979419393,1352140612,-2081121560,1178273476,-2146994948,-1088420276,1150025727,-956004092,580,1600046987,-1017256565]},{"sector":7,"length":512,"data":[1317754455,71731978,-1962518901,509020286,177470471,-2095876928,242551545,175755787,-139842128,13796315,-141829385,198325138,-150833984,-235432975,80971666,1983462448,-1440283646,-1022639477,92856949,92712015,1342129288,-177014981,1566531160,-326412861,-2147197301,1573848679,-326412861,-2096736426,1962936446,248692536,-1962518901,1967653958,5498887,1223370610,253900427,990999624,-1962052361,1183384132,988304908,812867072,-2130393469,1930371838,1976699652,-18426,-1960973415,264471514,61987793,1219816403,-378396211,-1996191342,914948692,-1070395614,-1956749561,-1950130715,-141882290,1946307641,80118540,253951617,-335941003,64654143,-1959169508,1002540755,956724727,1930350110,264471334,-338568239,-338564143,158725947,-1163798269,-1898435827,-850742080,990736929,-1996196361,-1844523498,-779418489,195,0,0,0,0,0,0,1766596675,1918988898,539828345,1126777640,1920561263,1952999273,1667845408,1869836146,1126200422,544240239,892877105,1968046336,1881173100,1953393007,1629516389,1734964083,1852140910,658804,690169920,1936286822,543370859,538976288,825110816,792016928,825177136,5242929,25637,690169920,1633969254,1663983988,538976288,825110816,792016928,825177136,1766195249,543450488,1802725700,1952797472,1344303221,1919381362,1444965729,1769173605,807431791,3289134,1126777640,1920561263]},{"sector":8,"length":512,"data":[1952999273,1667845408,1869836146,539784294,892877105,1145438254,541807433,1769238607,7564911,1869572163,1864394099,1864394094,1752440934,1868963941,2003790956,979857001,3027200,1634038339,1142973812,1344295759,1769239137,1852795252,3027456,1851877443,1092642151,1986622563,1632641125,1953068146,7237481,1140862515,1952803941,1329864805,1632641107,1953068146,7237481,1140862516,1819308905,1344305505,1769239137,1852795252,1952531488,1917845601,544437093,1129530624,1869881344,1952805408,544109173,1142976372,889213775,1699938350,1952671084,2019905056,1766203508,543450488,1802725700,1769096224,1157653878,1919251566,1869112096,979723113,1701336064,1650553888,1881171308,1769239137,1852795252,1851876128,1646294055,1634541669,1629513060,1986622563,1750335589,1969430629,1852142194,1667309684,1702259060,1918988320,1769236852,1763733103,773857395,1918980096,1769236852,538996335,1634541600,1629513060,1986622563,2105445,1881173838,1769239137,1852795252,1869881459,1801547040,1667309669,1702259060,1918980096,1769236852,824209007,544434464,1701997665,544826465,1769235297,1157653878,1919251566,1701344288,1836412448,544367970,1948280431,1881171304,1769239137,1852795252,1970239776,1851873024,1869881460,1801547040,1667309669,1702259060,774778414,774778414,774778414,774778414,1749221434,1701277281,1952661792,543520361,1953653072,1869182057,1329856622,1634738259,1953068146]},{"sector":9,"length":512,"data":[544108393,1634038371,6579572,1931505486,1701011824,1919903264,538992928,1663049760,1852402809,544367972,1953653104,1869182057,1308634734,1886593135,543515489,544370534,538976353,2036539424,1684957548,1881174629,1769239137,1852795252,1952514080,1819894560,1701080681,538976370,539893792,538976288,538976288,538976288,538976288,1308631072,1886593135,543515489,1663070068,1952540018,543236197,542330692,1953653104,1869182057,1174417006,1684371561,1936286752,1818304619,1684104562,1634214009,543236211,542330692,1953653104,1869182057,1157639790,1919251566,1918988320,1769236852,1931505263,778402409,774778414,774778414,976105006,2019642624,1836412265,1635148064,1650551913,1931502956,1701011824,544434464,538976288,2036531232,1684957548,544436837,538997857,538976288,1850015790,544367988,1918989427,1735289204,1819894560,1701080681,1970151538,1919246957,3812910,1634038339,1142973812,1344295759,1769239137,1852795252,544162816,544567161,1752394103,544175136,543519605,543516788,1769238117,1713399154,1684371561,1936286720,1868963947,1329864818,1495801939,774458927,774778414,774778414,774778414,1140866862,1881166671,1769239137,1852795252,1818584096,1684370533,544165376,542330692,1953653104,1869182057,1869881454,1818584096,778400869,1918981888,1735289198,1631854625,1763729780,1752440942,1329864805,1634738259,1953068146,7237481,1819044215,543515168,1953722220]}],[{"sector":1,"length":512,"data":[1142956078,1870209135,1769414773,1948280947,1660952687,1769238127,778401134,774778414,774778414,774778414,774778414,774778414,1059991086,1698955296,1702126956,1397703712,1918980128,1769236852,1409314415,1818326127,1936286752,1886593131,543515489,538997609,538976288,1819894560,1701080681,3044210,544165376,1953653104,1869182057,1679848302,1852401253,539911269,538976288,538976288,538976288,538976288,1632632864,1953068146,544108393,1952543827,538997621,1701869908,1394614304,1953653108,1850023968,1767055460,1140876666,1819308905,1344305505,1769239137,1852795252,1718503712,1634562671,1852795252,538976256,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538968096,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,536879136,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538968096,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,1668172032,1701999215,1142977635,1981829967,1769173605,536899183,544434464,544501614,1751326817,1701013871,1817190446,1702060389,1953391904,1629516389,1869112096,6644585,1936269344,1953459744,1663066400,1667854184,1344286309,1935762796,1852121189,544367988,1919885401,3034656,1713401678,1684371561]},{"sector":2,"length":512,"data":[1936286752,1881174891,1702061426,1157657710,1919906418,1634038304,1735289188,2020173344,1679844453,7041897,1869771333,1920409714,1852404841,1768300647,543450488,1802725732,1920287488,1953391986,2020165152,1142973541,543912809,1986622020,538983013,1701990400,2126707,4412229,544175136,1970562418,1948282482,1145446511,541807433,1769238607,7564911,1953724755,1998613861,543976553,544698222,1953719666,7631457,1702063689,1142977650,1679840079,1701540713,543519860,1679847017,1702259058,3817760,1936028240,1851859059,1701519481,1752637561,1914728037,2036621669,539897390,8224,538968180,1680154656,538976288,622862368,538976355,538997541,1681073440,858071072,622862436,25651,1142956064,538989391,538968064,1818386772,8293,1852796448,1397703725,538968064,1229866328,1090527320,1499290446,65614,458753,-130926,458753,327864,983041,590038,458753,721124,983044,721153,458760,786692,983044,786713,458760,852252,983044,852276,458760,917815,983044,917836,458760,1638735,458753,1638758,983047,-1638035,458762,983409,983044,-982653,458760,-1113722,458753,-1441373,983041,-1048143,458753,1750335962,1969430629,1852142194,1667309684,1702259060,1918988320,1769236852,1763733103,824516723,11876,131050,33357839]},{"sector":3,"length":512,"data":[1953653072,1869182057,1680154734,1684106528,1667309669,1702259060,-1245184,983041,-1244648,983041,1245749,458753,-1310125,458753,-327047,983041,-1441122,983041,-1441098,983041,1867383500,1634759456,1713399139,1629516399,543434016,1768716643,1919247470,1918988320,1769236852,3042927,65558,49479695,131049,52035599,1931505486,1701011824,1919903264,622879008,2036539492,1684957548,1881174629,1769239137,1852795252,1952514048,1819894560,1701080681,1680154738,-1245138,983041,-1244353,983041,-1244317,458753,1049483,458753,-1113171,458753,1632437198,1970104696,1986076781,1634494817,543517794,1667330163,1936269413,6563104,1768716643,1919247470,1952522355,778315040,-1310720,458753,-326686,983041,590852,458753,-654311,458753,-1244099,983041,-1244065,983041,1246325,983041,1311889,983041,-1375052,983041,-326445,983041,984310,458753,-654069,458753,1867777328,543973748,1802725732,1634759456,1763730787,1680154739,1819894560,1701080681,3044210,131063,87097351,131063,89784327,131067,92471311,65558,94437383,131049,97124359,65555,99811335,131052,102891527,131071,105971727,131050,107413519,1763730213,1869488243,543236212,1768908899,539911523,1634036816,1696621939,1919251566]},{"sector":4,"length":512,"pattern":0,"data":[1663066400,1667854184,-1441691,983041,1663370896,544434464,544501614,1751326817,1701013871,1817190446,1702060389,1953391904,1495298661,544370464,11854,131071,112721935,131050,114229263,131050,115867663,131065,117506055,1920103747,544501349,1702390086,1766072420,1142975347,1702259058,1680154682,1638400,458753,1640221,983047,-1636572,458762,984872,983041,1115972,458753,-1177764,458753,1916,690169920,1869374566,543370871,538976288,825110816,792016928,825177136,191627313,675283151,1684416803,778204531,538976355,824188960,941633838,875573045,3223855,707070862,-1191575437,-796000208,-83820356,47356,-1064380274,-1082392386,12156416,-1197083902,-1018135006,-1149333314,-919372354,1971339136,1976109832,-338982067,4161541,-1014807435,-17071856,199588989,-855476791,-1948677352,2005533263,-1149193727,96435200,47104,28840909,1930677506,-243314936,-344020802,2127019537,-29458138,1974097277,2080434693,-617414656,281871083,179048116,-67668544,1850343147,1768710518,1634738276,1953068146,544108393,1818386804,1917124709,544370546,1684107116,543649385,1919250543,1852404833,2037588071,1835365491,1936280832,1735289203,1701867296,1769234802,1931503470,1702130553,109]},{"sector":5,"length":512,"pattern":0,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43605,0,0,0,0,0,0,0,0,0,0,0,25264513,1,0,0,0,0,0,391512064,5284,70820,0,16908288,0,33947648,0,58982400,0,67239936,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]},{"sector":6,"length":512,"pattern":0,"data":[0,0,3736,0,0,756,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248643584,536870912,538976288,538976288,673720360,538976296,538976288,538976288,538976288,1210064928,269488144,269488144,269488144,-2079322096,-2071690108,-2071690108,269488260,269488144,-2122219135,16875905,16843009,16843009,16843009,16843009,269484289,269488144,-2105376126,33718914,33686018,33686018,33686018,33686018,269484546,2101264,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1180648251,1598377033,1330007625,0,168624128,1819635240,721430892,2301997,0,0,369098752,219677186,202116105,-63481,302846719,65282,0,8192]},{"sector":7,"length":512,"pattern":-151587082,"data":[]},{"sector":8,"length":512,"pattern":0,"data":[16996941,13,4980768,24248319,-1159461720,20,30,1]},{"sector":9,"length":512,"data":[5972026,0,0,0,0,567095476,339599494,235828227,373340703,567085492,1354773254,-1106833717,-1847066495,1960512258,374913552,2081327662,51570710,2045313712,-1338526718,1377946880,1948269740,1947024466,-1036363040,-1403890827,1131683900,-780923588,-1157431832,1446772747,1128014452,1312564084,-1574034316,-608561421,243936790,-840427788,374782466,-402652487,-1125449020,-352321345,114440,46072811,29763072,1319758847,184687592,-341740325,1965177992,91602698,1017956659,-1173326579,-1976691075,-401174258,45089420,1006760937,-1407945438,259269180,243869262,-922024589,28313973,-1442718743,-389027007,-620035624,521013364,-352321352,-639070117,100122369,1017956659,1007186976,-1442548723,1324608321,378406,-1993990570,235271438,100121119,11550132,57876941,1342264297,773256634,386010762,-320279246,100121089,99946123,-2147360024,-16774082,1455032692,178454,1476514536,951769227,268482822,567099316,-85392525,1975520000,205422617,58064640,-2097057560,57999611,-1274984983,-383660738,1364656434,-1946514682,-1898410808,-65359680,24489714,734497615,1599670210,-915095541,104381779,-1329034416,-218264822,-125085522,-12778123,-1961853169,-8814371,-972524534,-968422143,1464273409,1930857301,65751557,1569748715,-1957036661,-485838631,1974399731,-1957211665,-1949488177,-2144974375,1963851389,117393665,669188114,1975451019,-1359827963]}]],[[{"sector":1,"length":512,"pattern":0,"data":[-902095499,1364662642,149146251,74753779,-420782247,1048598616,1979645963,-2135626999,-16774338,1048620405,1979645964,268893958,1386277632,867968,-402426369,-712310578,-521614453,-1947510272,190567307,-150113070,-17958,1119093168,57811405,-2080442391,1551106299,567099060,773243834,383192714,-1174349080,-1976690984,-350823922,87920692,-1172802304,-1976691029,-401162482,-1125646128,381729280,-1039234514,-1172903146,-1976691054,-401168626,-1528299336,380156416,-1441887698,11200534,233332255,1977289472,-29693693,1286865072,872161741,540847323,222100340,-661978507,-970538162,4102,302433830,1405288448,1946221443,47625,-402652487,278986803,245504,-1174392088,619184131,374782464,-402652487,-1017446373,312562259,245504,-973072664,1094802693,-402652486,1532624899,113603,567099572,703427,994167091,856322755,-2131494958,-346935102,1345324273,-1437017717,-880018206,100121283,99946123,236849387,190495,-315440353,-1275067717,-1021194944,108159292,41908796,12836644]},{"sector":2,"length":512,"pattern":0,"data":[]},{"sector":3,"length":512,"pattern":0,"data":[]},{"sector":4,"length":512,"pattern":0,"data":[]},{"sector":5,"length":512,"pattern":0,"data":[]},{"sector":6,"length":512,"pattern":0,"data":[]},{"sector":7,"length":512,"pattern":0,"data":[]},{"sector":8,"length":512,"pattern":0,"data":[]},{"sector":9,"length":512,"pattern":0,"data":[]}],[{"sector":1,"length":512,"pattern":0,"data":[]},{"sector":2,"length":512,"pattern":0,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1868787273,1667592818,1329864820,1702240339,1869181810,168633454,1145981254,1850286138,1768710518,1970151524,1919246957,543584032,1634886000,1702126957,168653682,1313424932,1394620996,1635020409,1919230072,225603442,1229329418,540689486,1701603654,1953459744,1970234912,354444398,1174538765,977555017,1667449120,544437093,1768842596,337667173,1174538765,977555017,1634030112,1919230052,544370546,337669737,1174538765,977555017,1986939168,1684630625,1918980128,1952804193,2126437,755633433,757935405,757935405,860205]},{"sector":3,"length":512,"pattern":-151587082,"data":[]},{"sector":4,"length":512,"pattern":0,"data":[16603725,720918,65568,23920639,-375258646,0,30,1376257,2293760,2949120,5636096,15728640,16711680,17694720,18546688,89653248,90963968,94896128]},{"sector":5,"length":512,"data":[-852446128,1038124577,91357972,1979913277,105560593,-1912501320,-855001896,-1070397919,-1950823600,1489014273,259391292,-1912501320,-669610536,90499078,-1274809623,69324057,1084368449,1252140553,1117922825,6077954,1975519916,25933839,378394766,1005061673,63564037,1554172158,195175936,641795075,637734050,43196044,-2118198477,76539904,1949252780,1963801643,8513795,1017962634,643593530,28982912,643069184,28968702,-2145334144,975593964,1946356518,-8590896,1916877996,652157954,157552266,796182794,1707016373,1974399497,112678,-670310189,816433291,-1398377472,326449724,-397323348,1532560440,1377700210,1510244584,-1198593249,-661782133,116790925,-385572376,-1950874833,-1915187711,-402156010,552141970,25933827,512350350,109970069,-1866792301,-1826739454,-850742270,623097889,503666618,567090958,186550815,-1195115005,567100425,-1023995790,175378944,110302861,-385592856,-1023999265,511016960,51060362,41885184,503480254,42385159,567107764,41885322,42343994,378342004,602408442,45213956,1930002920,622234890,68478983,-150822167,16946438,-1153993728,1219821567,-620027443,512297588,1219756481,57876941,-1543547927,113705407,526,35653319,113704960,562,1929663720,42264581,501802219,-1793684726,-1760130814,839304962,-956301309,209926,671532800,-956301309,207366,-1173961216,113639425,-1962933835,-1996318954,-402483946]},{"sector":6,"length":512,"data":[292752021,119871117,-972844568,67220742,-352188184,188934336,4057714,-385649408,507183380,158531990,124196493,-352096792,44278739,43321079,1483997185,28982912,-30575360,-402540026,378208642,681640746,773228803,53256963,-402555672,378208644,748749614,-801704189,-1777990912,44147457,44113467,113647223,-1929117259,-402176746,645989146,-130411,53085895,113704960,808,26615339,235129739,-1958149469,869413827,-769750309,-1946945792,868322264,-617393198,13770378,-1956908041,1103834056,855819139,13803712,13641463,317253771,17462272,1929589294,872873732,-287161597,1358901993,-2142088877,-16671682,-138796940,268417039,-288230517,906228483,-1007222376,410255361,-523041615,-489487183,-138801429,-18177,26752651,-217844989,-1710846458,210445825,-789067741,637804838,-784657399,1532582407,116900696,66197,1048579700,1962934714,-1173946873,7792641,1930090472,1729531149,38070279,536783337,-1977682965,-33354986,-852314942,1962884129,474466286,1204224000,536870686,43321079,661913601,-402453600,-1410856140,-1927974141,-402176746,113705482,810,52954823,132841472,56366733,-402524696,-18349586,-854739967,183494689,1273561971,191424766,-385852184,132709907,1042432,-1023404056,-1962798943,-402517482,-1581055977,378208802,216531492,883016448,907447042,124930,922178499,-771030832,1346371956,-617360845,13770378]},{"sector":7,"length":512,"data":[190378999,721843410,64681939,-802752574,671482112,706089219,-2134680829,83937854,-1142419340,-401903094,1810432366,-1257847295,116786177,1962868736,17221132,378340352,887619585,28680200,567102644,567089588,-1006708598,228737284,4974595,1102061427,-1576858206,1252133184,37921289,-402652741,158531637,107091597,-352247320,51224752,904413484,51809546,18409475,-401965336,-1597832954,568853259,-82408182,17098754,-401970456,1354957042,-851179336,-1206881503,567100425,-1023995534,192221184,-1450178837,57999361,-104638216,1048626008,1962869163,-901873608,460653824,49747597,-402602520,141756945,28640966,-12130043,-402609688,-1597833050,-1041759477,-82408183,10807298,-401995032,-1880620910,-1425619456,-1396506623,-76275652,-143390404,-617364658,-402650439,594673705,65140627,-1826852157,1948269740,1949056017,1949252621,1947024392,1975519748,-1014280482,868466699,751040960,1007055408,-134056183,-1195116093,-661782133,57742989,-973063704,50443526,-1157707799,-628227701,43323013,-1040768651,410320912,2146807,4048244,1024488448,58064936,-1543806743,65733031,-1023301213,54662797,28513929,28513933,4037202,-138215099,33723654,-134056704,1465274819,-1610146298,-1057094901,-1929226078,-402348522,1089011666,-3610615,-1962949144,167945742,842495177,44547821,-117178741,-1342174279,-1179978976,1505689605,-1532628222,-1274916422,169987350,-1928760128]},{"sector":8,"length":512,"data":[-402214122,-1276379242,-1274916422,-400438000,1594359686,-389850786,24314702,-989411645,512425985,-1079967220,63998721,-1560166122,243991064,-1056767474,813089339,29689542,-1053390079,-385928447,-1910635381,-402515938,1914635277,-1949158639,1107409098,346235341,370575618,-392366078,-1013120092,29689542,272024578,516393986,35135118,520347880,512484466,715325982,1958886146,537824217,1002504962,-2144504126,67224846,36312619,-13372789,503590632,36314766,520335592,-768363406,28887691,-1558065854,378077734,-1578434008,29691520,574014472,516393986,36314766,520325352,512461938,1017315888,1958886146,839814017,1002504962,-2144438590,268551438,37492267,-13372789,503568104,37494414,520313064,-768356750,28887691,-1558065854,378077752,1223230010,-988905217,918822913,-947125708,1008635422,53471234,-13440737,-1174403143,918817088,-947125744,1929453288,512344833,116785603,1963065797,339133464,-1983411198,-1996375242,-1123959490,1374159372,-337743359,272024591,516393986,35135118,520287720,29564555,35393163,35264139,-1191111192,1253703687,574014473,-389575678,-1385037621,29564553,29689590,-1120766712,116785694,1963196869,637978387,-956301310,141318,19195904,619415410,36058820,914999180,1049166267,-437780035,-337022464,574014479,516393986,36314766,520260072,29564555,36572811,36443787,-1191138840,1119485952,876004354,-389575678]},{"sector":9,"length":512,"data":[-848166817,29564553,29689590,-1120766688,116785712,1963983301,939968275,-956301310,145926,12118016,619436146,37238468,914999180,1049166267,2045247933,-337022464,876004367,516393986,37494414,520232424,29564555,37752459,37623435,-134201880,-2454589,51159095,1018431368,126820813,426956939,-695480437,-851312456,-1261882591,857853248,-1194226743,567099904,277955,378403445,65537661,-74323459,-849935944,-851528671,228639521,201734659,-1274579709,-400438003,512490461,915079619,1049297339,1042153917,-401842546,1914634658,1187266264,1178287624,-1945537276,1178287808,-1023314682,567086516,1040301985,-1609808247,104465165,125109004,567086516,-386182680,-193855382,6196030,139904062,-1195275182,567099904,1992572506,734497796,1475943410,264667990,-402598013,-963968583,104554334,158728641,29439627,-1662451917,-1154053887,-1119975167,512630273,384303551,91430657,-335734808,-1949158493,1107409098,-1992416819,-1992423354,31984214,-12654083,-1170407240,567085376,417858931,-1547437569,-661978612,-2097107224,134718,104403060,175374862,512442036,567083532,245620715,272009474,306088194,437684482,470714626,1023457282,-855029062,-402296031,-722731305,-1962795357,7203032,35667587,957379584,1946296326,-1958824950,-855499234,-1548358879,914948640,1049166370,378077732,243860012,12059182,37927485,91431373,-335636760,36742100,753457291]}]],[[{"sector":1,"length":512,"data":[842957568,276037634,36832825,1051986548,36707979,-1242881587,-1996344669,-1996344266,-1996343746,-1996341738,-134070258,1107474627,-779368141,-259317299,252050059,13796096,1041025,-489485135,-388823887,-1202666997,-919387648,567136651,-849936200,1354979361,12408146,911423,-1017619875,1073790293,1560281832,-1949158461,-1961892914,1914817989,1003488243,-387091007,-1946681249,-1958353969,1914817989,1003488223,-388401727,-812974005,197145425,-1189841710,-903151600,567133579,-805101198,460702011,-1191170328,-936640513,567133579,-805106318,125157691,1493179112,1498533602,309699,-674109743,-1178338590,-271515644,-85795119,-783265085,-773139990,-1930767894,-1899887656,-2124785448,-1023406110,13178509,13174470,24963072,378342003,-1880620281,-116004358,13186701,81549,503367865,-945491193,9990,443904,113705216,239,1912882664,-281115710,443875328,14487179,15666825,-1962933832,-1929326562,-1426001602,1083419539,512489954,-1014824752,-773074673,-773074453,-850873109,-1551076831,-1070399056,-1593725277,653721808,251986139,-773271296,-773271064,-1260876824,1914817864,26911708,-1734098893,387073,-134206488,14066115,-150986565,-804912157,-768391168,13645559,-1560171357,-610205290,-718866944,-754580736,-1777991424,-660487423,-1777980672,869413633,-769750309,1039398656,91361270,27002566,-509492225,-2083376384,55358,378209397,100860131,-763166499]},{"sector":2,"length":512,"data":[-628930560,-586249472,1240594176,243911211,-768409179,14628599,-1996382301,-1593729770,-768409384,125157387,-1962875487,-150935786,-1560224458,243990947,1053032656,-1070399058,-794711309,-1143852288,-201916384,516212875,-1070464594,43321079,41156612,-2010716752,549683975,-660473630,-1777980672,-802752767,52601600,52696713,1141749955,51060362,1085916158,-1021195000,-1975251528,-33354978,140556739,113451469,26754756,-150938719,-1962880986,-205507640,-1740731478,14327809,-1196687436,116785407,1962869148,-18429,116852651,524949,113666421,-1929051959,-402601706,116916131,3146389,113651828,-1207893615,512377869,-1006763253,-1928838471,-855535338,-1858174943,309461249,378340983,82511626,116790925,-369585688,-1175914721,27107831,-1593732445,-1801256545,-1559327999,243878145,-1964506719,7071744,-1763177358,-957123840,111110,-1326922760,-386240000,259130427,-385982744,-397345148,1492713116,-956349207,16888326,116900856,524949,116795765,1962869170,-1308178936,334168065,5499024,988288370,1828864,1827206003,-388599296,-576650975,-1916536832,-402426602,12122122,-1195116544,512377869,-1006763253,-1928838471,-855535338,-1259637983,-841272487,-1580992223,312672660,26386691,-1929178973,-402452970,-2084309026,106814,251600244,117375393,-1834942062,-553239807,-955616768,102918,-1811480832,-104597503,1523139,456990836,1025209344,376700957,1946164797]},{"sector":3,"length":512,"data":[2047249,322767988,1024029696,225706005,-1007107079,130029197,-101219864,-468283965,-143071225,2078852089,868315651,-720467255,-753497344,-1605218048,243991307,-987889445,-855533538,1914656806,369318476,-497483557,14393828,653709875,378208469,-805109549,28053131,195056209,112899,-1373715170,1478937857,1512403487,1493287555,113764066,39,67270,18255108,-35002368,567086516,-870937149,-1876169979,98571917,-393206549,-1581055192,103481763,-146275935,-1962877658,-1524759592,-1974418687,-1195114792,567100431,-397229224,-396691762,1558836942,245,0,0,0,70456973,-386484760,544407561,-1477960076,-387060746,74776599,199999538,201500576,1074149920,973435907,-117227258,201373891,-1514528307,-854936574,201373729,1048584653,-1023409498,52434573,-2080998936,206910,1048774517,1946157866,52869638,-2081004056,209470,1048774517,1946157876,806784263,-162469885,52563595,52698763,53612075,53747227,52956715,53091867,54005385,54140553,53876365,-386520600,12842522,43321079,378339340,91490038,-101315096,1964412355,-1794705656,1946288130,-1794705656,1962935042,-1794705433,1946222594,-1794705640,1962946562,-1794705449,1946157570,-1794705656,1946157314,-1794705465,1946169346,-1794705656,1962983426,-402209097,1048576013,1963262154,-402209193,116883469,-261483,378341748,-1477965679,1355020789,508711251,-1190982752]},{"sector":4,"length":512,"data":[-768409599,233512589,1935156685,1512044807,-1017619623,1024453025,1512024661,-128427175,-389873292,-138214474,-66939642,-1913162497,-402098922,-1007028890,13254272,-2145422329,16828990,376824183,43321079,695533696,43321079,108265536,141891213,646043115,-8453483,14630531,-150046975,169222,-2130283519,-1090349786,-1794705409,1979710466,16247043,43321079,359923760,13254272,-2140638207,33606206,1048600948,1946616010,-901873574,192217344,13567686,-855193855,-2130696192,-2147314418,-138398976,169222,-2130283518,169230,-1794705663,1946173442,66819,43321079,158597376,-2130705915,67278094,2079488,915268599,-268236433,13647501,503324601,-140185081,805475590,-143100928,537040134,-1593281536,-576519769,-1593382144,-1482489635,-1794705663,1946161154,27894024,-352268893,13476102,-1593726557,512426407,-470417185,27862775,91607563,-352266077,15049487,15144585,-1982713006,1510004758,512416563,-201916206,-150993989,179171,-768347145,-150863685,-610057997,-821639680,113639424,-118488870,306086851,510984195,51396227,-2145946367,16828990,113643639,-2113994325,1073911054,-35592192,-1007041544,13645453,200687245,503324601,-1599802873,28902155,-1915604224,-854856930,24270886,102141379,-204412920,116900857,33555093,1407714676,-135695872,169222,-402295807,-596508515,13254272,-730466299,-1023343384,548413198,415113446,179081216]},{"sector":5,"length":512,"data":[-1258523456,506638,-219475763,762212174,1953724755,1679846757,543912809,1679848047,543912809,1869771365,658802,-1576858464,-106819601,440591,267327117,567098548,12179595,521018928,301209229,567099572,-851528673,440609,267982477,567098548,12179595,-199848594,-851397615,-851528671,-1194183903,1961389568,-1194183695,1827155968,-1597769487,28902155,244224,233512589,1935156685,488017161,-218044408,512607225,1204162027,-1014823413,189253152,51093510,113048,-1929378886,-854725858,158554150,98571917,-101526040,-1794705469,1962934530,51093681,166443928,14630531,-955943935,16974663,855638457,1478938066,378377331,-1477965818,-1195116046,12255232,47360,166401677,1929404904,-149517047,-225646584,1048691705,-1437266967,512574837,-75428951,997395433,17072000,2139097972,91489284,-351222909,71812841,-1673625596,74776577,17057734,-1157627720,12124160,-350843648,2091017,378377843,1072171287,-1916536334,-402080490,-1007029706,157027977,-402103879,-1983709172,-1190568946,31983681,1487127296,1511950601,1612089609,1646169097,1577502473,-1979711223,-33354978,1141749955,156702349,-1262280243,-1574843111,246681606,297017805,268899981,-1269816883,102140430,1478610192,41205770,800375801,-208985651,101238403,-1189148898,-1527578613,-1007149306,272776845,51058314,-1912619800,-401609962,485028278,-240850693,44449408,-2146929408,1065534]},{"sector":6,"length":512,"data":[516112757,768263,512416563,1049428646,-83688793,-1426906960,44437130,915270962,76153511,141713724,74938940,76029996,-1175461306,915210251,1049428647,-1494020030,-1916599947,-402114794,-1007029934,0,1,0,536870912,858927408,926299444,1111570744,1178944579,1684234849,26213,0,0,0,0,0,352321536,1364350208,1448562771,-326427130,650053390,376343296,7768894,-85402829,624733185,-1073074060,-1108867724,-386733311,119472601,1532518238,777869913,2229903,604409646,-13740032,771761206,2242303,26667211,1017957355,1022784549,1010791469,1011315755,1010725964,1010463852,1010659888,1010399033,772699440,474755,772175104,722630,179851312,653733376,-1557266425,844627975,774909156,460289,-30536469,-352321018,117321221,-1427439613,645158972,108159292,41908796,1480384292,1144787572,1128013428,1396451700,1323835508,-11409151,84330030,-953285120,268437766,-1870927104,151439150,-352318976,-30502799,1442842118,-1014762613,1921728002,1048587778,1962934278,3976202,-504874124,775351040,462475,225757451,37650478,91553792,2680918,1017927262,-402295808,-152371008,1048587870,1946157058,244002316,-922025977,132645748,14149632,-19273378,179098163,1107522752,-903087893,-2115501194,-1957248256,46367731,37915454,54427694,192151552,-1014762613,1384857090,855829250]},{"sector":7,"length":512,"pattern":0,"data":[-1959898158,771754294,462475,-402650136,-1897398192,-379692288,1347026575,-768359797,-661915913,-2013857960,-1039445798,1392997464,1543497704,-2144465941,574,568853365,1019448064,772633098,278144,772109568,329218,503319739,534191886,1239121,-921975975,-1607595138,-397344757,-497483772,-2119515143,1946172159,347718401,-1959898368,503316510,649731854,-851397632,-1084547295,-2117926874,1946167039,653230560,-389051648,868483035,44183232,60960256,94514688,128134656,113651200,773849099,-1023408478]},{"sector":8,"length":512,"pattern":0,"data":[]},{"sector":9,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-16777216,16777215,0,0,973078528,92,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,978845696,1297040220,1145979213,1297040174,65280,134217728,538976256,538976288,538976288,8,0,0,0,0,0,1090519040,1313817402,977338368,92,0,0,0,0,0,0,20480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-738197504,-1794962429,-2063397885,1224936452,1308822788,199685,54884472,0,0,0,0,1237,83099648,0,0,1297,86900736,0,51118997,168652409,1634027520,622869092,2034442340]}],[{"sector":1,"length":512,"data":[1684957548,540701285,877605,1953724755,1948282213,1936613746,1920099686,168649829,168430848,1919895040,544498029,1886220131,1702126956,538976288,538976288,538976288,168632352,1936607488,544502373,544695662,1802725732,1702130789,1919903264,1769104416,622880118,168639075,543452769,1769108595,1159751019,1380275278,1701345056,1701978222,7955553,1096223245,1313427026,1092627527,1142967372,541152321,1310740047,1378700879,1448037701,1162625601,1397310496,1141509451,1163282770,979576096,1279874848,1161961548,1397705760,168632660,1668248144,543450469,1752459639,1919895072,544498029,1311725864,1174421289,1634562671,1851859060,1701344367,1495801970,1059671599,1936607488,544502373,542330692,1802725732,544106784,1986622052,1663377509,1628048698,1931502702,1802072692,1313153125,542262612,1852139639,1634038304,168655204,761614848,1702063721,1679848562,1701540713,543519860,544370534,1986622052,1663377509,1867907130,1701672300,1650551840,673213541,1663054129,1634885992,1919251555,1159736435,1380275278,1919903264,1852796448,541010277,829170944,1646289968,1936028793,1953461280,1679846497,543912809,1667330163,658789,808545317,2036473956,544433524,1684370293,544825888,1953724787,168652133,829170944,1646289968,1936028793,544106784,543449442,1952671091,225669743,1814364170,543436849,1702132066,1986076787,1634494817,543517794,1679847023,225145705,1866858506]},{"sector":2,"length":512,"data":[1952542066,1953459744,1886745376,1953656688,1864393829,1919164526,543520361,221930277,1850277898,1768710518,1701060708,1701013878,1918988320,1952804193,544436837,1836020326,1986356256,543515497,1986622052,168653413,1920091392,1763734127,1330192494,541873219,1819042147,1308625421,1629516911,1869373984,1679846243,1667855973,658789,1869771333,1920409714,1852404841,1095114855,658772,1869771333,1920409714,1852404841,1768169575,1952671090,226062959,1631780874,1953459822,1919903264,544498029,1092644449,1195987795,543450446,1394635375,1414742613,1679844453,1702259058,168632366,1769096192,1814062454,1702130789,1970086002,1646294131,1886593125,1718182757,224683369,1850277898,1920102243,544498533,542330692,1936876918,225341289,1631790090,1953459822,1852401184,2035490916,1835365491,1818838560,168653669,1869566976,1851878688,1886331001,1713401445,1936026729,1124076045,1869508193,1329995892,1413565778,1310744864,1870099557,1679846258,1702259058,1224739341,1818326638,1663067241,1634885992,1919251555,1852383347,1819244064,543518069,1700946284,658796,1635151433,543451500,1986622052,1886593125,1718182757,1952539497,225341289,1850277898,1768710518,1634738276,1701667186,225600884,1632632842,1701667186,1936876916,1953459744,1886745376,1953656688,168649829,1919895040,544498029,1818845542,543519349,538976288,538976288,538976288,168632352,1936278528,1853169771,1953068403]},{"sector":3,"length":512,"data":[1701601889,1919903264,1937339168,544040308,1802725732,1224739341,1818326638,1830839401,1634296933,544370464,1667330644,540024939,543449442,1768169517,1965058931,1634956654,224750690,1850277898,1717990771,1701405545,1830843502,1919905125,1868963961,2037588082,1835365491,1634890784,1701213038,658802,1702130753,1702129773,1920409700,761623657,1953460848,544498533,1819240822,1869182049,658798,1986622020,1869488229,1701978228,544826465,538976288,538976288,538976288,220209184,1851064330,1701601889,544175136,1953067639,1329733733,168645711,1920091392,1914729071,1768186213,1679845230,1667592809,2037542772,1224739341,1818326638,1444963433,1836412015,1145643109,1157630477,1919251566,1920295712,1953391986,1819235872,543518069,1700946252,1868963948,1919164530,543520361,540697381,1918980096,1952804193,544436837,544501614,1886220131,1651078241,168650092,1918980096,1952804193,544436837,544501614,1886220131,1651078241,1998611820,543716457,1702390118,1768169572,168651635,1684095488,1918980128,1769236852,1411411567,1701601889,1342179853,1835102817,1919251557,1869488243,1968382068,1919905904,543450484,1142978914,1702259058,1157630477,1919906418,1634038304,1735289188,1918988320,1769236852,1948282479,1701601889,1157630477,1919906418,1769109280,1735289204,1918988320,1769236852,1948282479,1701601889,2573,0,0,1230781048,1498623567,980942931,1146309980]},{"sector":4,"length":512,"pattern":0,"data":[1395544911,21337,0,0,0,876102154,1129598513,5461583,66050,-805277694,195842,131081,0,0,0,33554432,33554689,23593024,150995708,256,0,0,0,33685504,1879179265,-16613376,524289,2,0,0,0,16843264,4194816,33423680,16779264,0,0,0,0,1866596352,824210543,30766]},{"sector":5,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-352321536,1397592116,861097796,33567278,33554696,1359151616,285214968,16778240,0,0,0,0,983040,16777216,-1070335488,12374158,-1157163396,-986316680,374742583,2083241811,-67105863,1031808684,637760512,-1968568950,116515524,38242591,2083194823,-48854277,1913900413,2081464422,371652504,470156156,235275132,2084545404,-1199818845,653721632,512457745,-1023181813,32765768,-1149487354,1067517184,9758844,-1444413008,-1961266688,768507,-209857090,-1928497754,-524410753,768381,410298099,-394430786,-466485151,526259917,1150223503,-1105605374,-336888385,855973025,188151762,-1564410244,933329980,2084414332,-1593376581,1072200759,2081988864,2084242986,1307070528,-814589952,2084308520,100732022,653753399,-670860277,780851691,378174485,512458237,15367229,-1409257472,561299466,-5042508,-202698547,922210867,-1023509480,2084247176,922210867,378043418,967015466,45400956,2084116107,-825169270,-427766064,990808768]},{"sector":6,"length":512,"pattern":0,"data":[1071743100,915066378,378174506,332234237,1309281731,1395486319,1702130553,1768169581,1864395635,1768169586,1696623475,1919906418,1699875341,1667329136,1851859045,1953701988,1701538162,2037276960,2036689696,1701345056,1701978222,226059361,168624138,1802725700,1869562400,1634082932,1920298089,658789,538988361,538976288,1297307987,1397703763,1394614304,21337,0,0,0,0,11162880]},{"sector":7,"length":512,"pattern":0,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1258291200,2013465608,1869175866,1937339182,1547335680,1868854125,2037591667,-16777101,0,1056966656,1061109567,1061109567,16191]},{"sector":8,"length":512,"pattern":0,"data":[1202765,393233,12648480,35782849,-632289280,2096,30,131073,121897397,32899072,137429429,413204480,418578432]},{"sector":9,"length":512,"data":[1917255680,1635018337,1715235938,205284960,1711291398,1717986816,917567,1618896444,-1015152580,1715340860,6684735,1715340860,7340095,1715340860,404226111,1715340860,63,1012949052,-1015145466,1618896444,6684732,1618896444,7340092,1618896444,6684732,404232248,-964952004,404232248,7340092,404232248,476250172,1669292854,404226147,2120629248,917606,809250942,126,-864088961,908001407,1717993318,1715208295,1717976064,1711276092,1717976064,1879048252,1717976064,1715208252,1717986816,1879048255,1717986816,1711276095,1046898176,415464454,1013343804,6684696,1717986918,404226108,2126561406,907810840,1932556338,1717960830,2115534396,-856156136,-809043252,453953478,404241432,946392,1715340860,1835071,404232248,234881084,1717976064,234881084,1717986816,2080374847,1717992448,8257638,1853781606,1815871590,2113945196,1815609344,2080389228,1572864,1717579800,60,1616936448,0,101088768,-960299008,1714675404,-960294964,1865931724,404227023,404232192,855638040,862375014,-872415232,-865717402,-2011037696,-2011002846,-1437235166,-1437226411,2010884693,2010902235,404287195,404232216,404232216,418912280,404232216,418912504,909514776,922105398,13878,922615808,13878,418912504,909514776,922093302,909522486,909522486,13878,922093310,909522486,16647926,909508608,16660022,404226048,16259320]}]],[[{"sector":1,"length":512,"data":[0,418906112,404232216,2037784,404226048,16717848,0,419364864,404232216,404690968,6168,16711680,404226048,419371032,404232216,404690975,909514776,909588022,909522486,4141111,0,909586495,909522486,16711927,0,922157311,909522486,909586487,13878,16711935,909508608,922157303,404239926,16711935,909508608,16725558,0,419365119,6168,922681344,909522486,4142646,404226048,2037791,0,404690975,6168,910098432,909522486,922695222,404239926,419371263,404232216,16259096,0,404684800,-59368,-1,65535,-65536,-252641281,-252645136,252702960,252645135,-61681,65535,0,1852075579,1006633019,2087091302,2113953888,1616928870,2130706528,909522486,1719533622,1714427952,126,1819044927,855638072,1043542835,989880368,202116206,410910732,1013343804,907836952,912490339,907804700,909534051,403570807,1717976588,60,2128337790,201719808,2128337790,1612496992,1623260352,1715208220,1717986918,2113929318,2113961472,404226048,1579134,405799038,3151884,403439742,792624,453902462,404232219,404232216,-669509608,404254936,402685440,1979711512,-596246308,1815609344,14444,0,1579008,0,1572864,202309632,1827408908,1819810876,7105644,409993216,7888944,0,1010580540]},{"sector":2,"length":512,"data":[0,0,-1957363712,73840876,1459841000,20357206,145876010,243982547,-316014281,1183432963,51002874,339543410,-1207011837,-1202716671,-397410164,-998047079,75399940,-385646847,1586168059,41418502,1352418957,-2096941080,1958216900,1183666176,-1847045988,79987458,-73759095,846577675,1342207928,1352418957,-2096776472,2092434628,1183666176,1843941532,79987458,-73759095,242597899,1342177976,1342244024,-2097006360,-1224801084,28900250,-2101850112,1810386944,46433029,-1668903600,-1477947141,147096325,-1192606071,-397410174,-998046382,-2101850110,-2037559296,-397345892,-998046934,1958742790,178190,15382608,32237648,-16464765,-1191470410,-1202716544,-1924136952,1358666886,-2096799256,1183385796,8404458,45616765,79187968,-1092071423,79987457,15353543,-361329920,-73629046,918871691,-2010775472,-364445952,15367809,-1672188,-386164042,-998046143,-314128894,-330906059,-498692833,-330920624,-330920624,29419600,-1962490749,-1070865834,-2081536509,1183383762,-27883012,15353543,-360808192,360514560,-991273333,637554742,1992556682,3679996,-1997995147,-360808192,242549760,1342177720,1342219960,-2097072920,1187448004,-1207959318,-397410174,-998046614,-364496126,-2101862786,1541951488,46433028,736779915,-59325224,-1964343669,637567621,1198784568,1342274232,1342229688,-2097033496,-2101869372,803753984,46433028,1978287675,-364460241,2122383360,2080637162]},{"sector":3,"length":512,"data":[12904707,-991273333,637554742,1992556682,8922876,-336967937,-364445727,-43287,-2014582202,15353543,-1205802240,-397410174,-998046742,-362902782,918870059,2123038800,-2105177366,8922624,-1192605953,-397410174,-998046774,-364496126,1187434879,378227181,-1070923474,-2097140731,-1030881070,-1960388469,-498693881,1357006477,1357661837,1357661837,-2097112600,1187382980,1187390957,1352736748,-230258432,-1996467551,1183705158,1183666402,1183666412,1944604908,113541888,837633734,15484614,-1996467039,1183707718,1183666412,317214956,79987459,-397361101,-998046991,-1956684286,1438866917,-1070338933,-1207919640,-11533950,-924318602,79987456,-402229505,-443874611,-1957313699,49054700,92923990,-166989685,-11137164,1996424822,155379716,-351878013,1589654274,-1017256565,1475119957,2123046486,-1962571004,1300955741,106269444,-16222837,2123041397,-1912238584,-849410467,-1088530655,-544341584,-1945600373,105221893,-1996063093,39684357,-1996206711,1971914325,172330760,-164428686,-773322517,114187,1971914123,1600003852,-1957051555,1926769628,605960970,-1962642943,-371064861,-1957363190,508975084,108956423,-1070336117,-218103879,-638107218,-1962639733,-1952123945,1566531266,-326412861,1460071555,74907478,-2096996888,-125107516,-402229505,-998045784,-1012990,-1202256266,-11534335,1793590390,147096329,-244087,-397015434,-998045686,-58836732,1586170229,-12482044,-1207702632,1600061439]},{"sector":4,"length":512,"data":[-1017256565,1475119957,139365206,119413987,-1962639733,-1494022538,1149946163,1161438975,2131195135,48972035,-1047801353,-1017290914,-1962823489,721420854,16679415,-1107070448,-1896214528,516194775,57932551,-2130621975,922746596,38020745,1109821750,-1312388350,1222693636,37790518,567095476,20357942,712180284,1354773278,-2101731570,-855002104,1329908513,775037011,1919885360,1952541728,1914729061,1769304421,224683378,-150789110,145033,-567557236,1253366775,-1942609459,-1962856930,503327798,889239574,-1992941107,906116126,37619340,12066574,162642469,-1959386675,-486340594,113587746,-628358390,-13182157,1929578014,13428995,235324726,-1143305213,-13238269,117638686,314571807,119585027,-1070346453,370584307,-974643449,310025,-851181384,-167087583,91521218,22318976,-327595200,-402320920,314246254,318472451,1393062659,1130043391,-1175262397,-517275642,-1962854210,-217639172,64940196,-1243026125,1726501114,1393167616,1801675124,1702260512,1869375090,218762615,1986610186,543515753,1869771365,218762610,1869366794,1852404833,1869619303,544501353,544501614,1684107116,168649829,1505366705,250425865,178975,567099572,-4710634,1206407168,-1173311228,-437581461,2075794865,1440672521,1048833163,1946157364,873922308,74907393,-1962662424,1438866917,1448602763,-1962639733,39684869,-1962652277,1972045397,175999752,-1957223987,92866174,-1996333687,1435042893]},{"sector":5,"length":512,"data":[141920518,1913275791,-336186620,154069000,-1962933826,209029381,-1017290914,1475119957,2123040542,-1178586364,-1359806465,1077985675,1566562551,-326412861,119428695,-1962639733,-1178586153,-1359806465,-1946711217,-544536962,-218103879,-638107218,-208929141,-1031035661,-1017290914,-2081649835,1448543980,-1962248565,1727465030,-96040696,-15992693,-51838091,105182720,-1975487220,-1952970940,-152841768,16913031,1291792757,41714434,-1962247168,-1979384036,-337368569,568874503,46433025,1090406025,-1070398091,-1962884375,1191117918,-28931580,-162592888,1963460164,121932306,-774337640,310900451,57999618,184584169,963343615,359793276,-13303977,-1796733834,113541895,16940073,-335596740,41714658,-14453760,889127540,-402360577,-998045833,38046470,2083193857,38046466,-956021247,580,-396969493,-998047580,-28931838,-1961135040,1191117918,-28931580,-347142264,-1981262178,46433024,1090406025,1183517813,734473210,108459986,1586177003,71761668,-1996601718,-16036089,1291838580,41714434,-1949402112,-1979384036,-337368569,-1956684085,1438866917,-326898549,-1957275902,-4258698,105155327,8628632,1156982900,578109446,18868310,-1962752893,-1813489928,46433027,-1744354166,123332688,184730755,-1090290240,1153892351,-947191802,-443850914,-1957313699,1988843244,105155076,8628632,1156974196,108281862,-369098824,1156972698,108265990,537283712,1283518187,1156972806,695536646]},{"sector":6,"length":512,"data":[-1744354166,-472786805,34768886,-1206225663,-397409792,-998045032,71600386,74760203,48957616,1141376176,75268870,-1978895104,-778565820,34801120,-1962654583,76088388,67519734,28837236,-1207702784,-11533824,1149895796,-397371385,-998045672,38045958,360693771,74760203,48963760,1141379248,38061830,1810432000,38600703,83827851,-467007606,1575324510,-326412861,1443032195,-1979616578,-1449654716,359989379,1149878323,105154562,-1996209015,121947652,-339309569,-2084140275,104532166,-680197574,-1956724685,1438866917,-326898549,-1957275900,-13433738,169928790,-1979530109,52692548,1014301244,134628598,1149898613,-661940217,-2013862959,1946223122,721718055,1183384644,2126515196,1962889243,121932292,-1058516840,113541896,1962690107,105676807,-16608,-1996209013,38061828,-947191808,-443850914,-1957313699,149717996,915101271,401277244,1342180536,1342346936,266876159,113541896,141869067,-2096970109,-462094276,1946172547,-2093184199,1187450055,-1979711234,-1986509051,485227078,1033373066,74776831,49004594,1586169226,-28901378,22316936,1207586559,16416387,80207477,1599995904,-1017256565,44304015,19799694,-1047803597,-108271221,741772105,1962281728,-221868536,1974355374,1083655674,-41157084,-989600303,-1377296618,-1949332487,-1946352644,-1912138004,1240871902,2122911203,-1404746496,1975519914,-1980505350,521535566,20719241,44312319,-1142125739,-75431150]},{"sector":7,"length":512,"data":[141755154,1528299347,-219462845,168085480,-2146798364,1962935422,71747076,382017278,12059196,522308901,50859659,45811683,102694656,71731971,567102644,44435087,19799694,-2135029994,865643520,1048585938,1912799542,109989989,-1070399444,-772290421,-1359808373,1963276326,63407097,-772290421,-1977157749,977356549,1007973600,1007186978,1006924809,1491825952,-2118252778,1328278272,-15991253,-812912268,-1014277310,50708739,-121600,-57941973,371131934,-1331367161,-880039392,8502815,-930410773,-31194108,-57941973,-1423948872,-1047812877,385125290,-594849761,-1431503221,1031061514,527770172,939982678,-1073042431,574369396,2105542517,74800383,-303322545,-12204473,-388633856,-797704137,-12167602,-1409206266,1958742698,2484232,-504629899,1274317738,1945320267,126332168,-335657847,199003122,-16615982,975603975,-1507393791,1946762242,-1021297662,1458342741,-1979418997,-1449654716,494141571,134628598,1962874740,121956356,-2147302269,871827044,-1996191296,1149830212,-443851262,-1957313699,1988843244,2063499524,-163810047,1963722308,121932342,-774337640,310900451,661979394,537150663,121932291,-774337640,310888163,113705218,362348852,148679,71600898,28837001,-2127238400,1963037438,105182764,-1977191156,-1952970940,-152841768,16913031,12064629,-773304318,46433030,184829065,-2147060544,-351795636,1589654457,-1017256565,1458342741,-2096728437,1946158206]},{"sector":8,"length":512,"data":[2063499596,-1977256703,1352140612,-2096813592,-1073020220,-397011340,-997983063,121932290,-774337640,310888163,451608578,26410625,-397010059,-997983091,74776322,-2096733720,1686110916,-1070336250,1149830281,-443851260,-1957313699,116163564,1988843095,106859272,1033373578,1114898529,1946186301,7814408,-2031537804,-28915968,1191116801,106859270,1965768576,-28409849,105316104,637421195,20774919,1025143808,880017410,1946158141,-955192524,196166,1187500267,-352320258,-134270007,589382,-813627276,-410976254,1586233342,1950318598,-813625227,384516096,-352124481,17416158,1586223595,1648328710,-813628299,-1531412480,-11055103,266863734,113541894,200951433,855932352,-146609216,589382,1153828468,300646406,117327607,-972655616,-352188860,105170436,872859393,840276225,-94467136,-2021071919,-1986526702,-1070398908,1149830281,-96040444,-1962457976,-1956684090,1438866917,-326898549,-1957275898,2123039862,105286410,-1995938057,1183447622,1958743036,105248315,-1975618292,-1952970939,-152841768,16913031,1308569461,41779970,-1978893312,-14841084,705136645,1460399076,1352139914,-2097030168,1173750980,91496454,-622215117,1325352448,105248508,-1978501880,-1952970939,-152841768,16913031,-1545010315,-58817792,-385649408,1183514761,38091260,1448090738,-1394067969,113541888,704398987,1183515205,-955973124,64582,2105791467,561250306,1443001855,-1998047745,113541888]},{"sector":9,"length":512,"data":[16926091,38112005,66864681,1170670197,-352321534,38666156,163203,76156028,100605323,-467007608,-1974006805,-397371388,-998047424,105248260,1176007968,-369340673,-1973944449,-397371388,-998047448,105248260,-1962052576,1177287238,-137221124,535496310,-61931706,16547459,1308617076,41779970,-1966113792,-14841084,705136645,1590619108,1575324511,-326412861,119428695,-1962639733,-678754698,990400139,-1961593090,1002505158,51147768,1324942321,-1527513777,-1960711172,-775550009,-1962249240,-775539769,-1528073496,-774272183,-777653271,-1979354133,92808708,1600045707,-1957313699,-164407572,838874553,850197732,-2130976032,251549172,108331061,3417736,-469102101,918162804,178944,-1275061831,841076032,3515072,1575324510,-326412861,-1274782069,1914817854,1418184202,-2017067007,-385875648,141688832,-443826125,108249949,-1207955992,-443809793,-466435235,-1023409688,167853730,-2145159708,50411070,574360946,540806515,95421810,1016072171,-1342015981,44612371,816027863,-997539071,-1957300245,82609132,1988843095,105155078,8628632,1156974196,108281862,-369098824,1156972762,108265734,537283712,1283518187,1686110726,-1070338298,-1962785655,-25261576,134628598,1149898613,-661940217,-2013862959,1946223122,725388080,-16055172,-11070850,1149895796,-397371385,-998047245,-28931834,1074021515,1153893513,-1962803454,1183450204,-351827964,105182826,-2125564668,1963031294]}],[{"sector":1,"length":512,"data":[121932333,803754136,46433025,896909323,20186823,1153897881,-1979506684,-1952970940,-958148136,16913031,52495559,12105963,2045267970,46433026,184829065,-2147060544,-351795636,105676955,114436,71732567,121932368,1961382040,113541889,972965513,57998974,-1962987031,-467008442,-443850914,-1957313699,73305068,21006326,855995393,-22091328,-1962389877,1068762710,74654157,183175604,22317046,-402426752,-1847001085,-61384962,-91491701,467912843,984354228,1008170180,-972589798,16859271,92800491,-1947475385,1606560711,-108805282,-2146995199,-311162308,-2013861653,1950351700,1140897817,-1023991347,175439904,45880973,567099316,179361138,113651691,-1929379140,-1274889194,1914817855,1958742978,142508826,-1189055487,-779354113,-851312200,112929,45891200,-1341688822,106334989,1451988203,-2137855226,167951422,-1158948491,-1947432107,-75299746,-2096005868,209453307,22317046,-1207602112,48955393,-1017266125,1475119957,-1962467754,803407950,2123094411,871860996,-17984,-146690318,1993030617,-1949594878,108432382,1149937395,986264575,91750213,-348060300,-1949174014,1566531265,-326412861,1459940483,24297046,401342259,-1744419702,1946190761,250107403,46433271,1191277632,956876419,1929525814,1590135779,1575324511,-326412861,-167485813,536958087,45616756,-1949748414,1931595217,-45422333,22317046,-385649280,1317732481,106334984,-1070397666,-1957275652]},{"sector":2,"length":512,"data":[-470119440,1074444389,846573298,735021905,283331018,60563917,74685936,1240140212,796180491,178502,-1274888518,1931595072,-351685628,1958742836,-678733542,-1957575189,-842388529,-268198879,-1274776675,186313481,-166300224,1073828999,1586170740,440369158,-336067723,146340100,41048348,1600046731,-1946370071,1451952206,-851397626,-1274776799,-470947063,1975520235,1418196711,175390721,1065409163,-133991142,-1191586069,-789898232,-1947432107,1333789790,-443874818,-1957313699,-1151904020,1065550528,506033408,374791,1963114728,-1715457275,608183531,46179326,-1778203997,66759,-955988349,-65980,46544521,-1945874805,-390033704,1583284586,-1017256565,-1947432107,1736442974,-1017262330,854362965,-163673857,105286402,145354034,-1258130432,-181499872,206082,1962935101,108429573,-893779967,-853887998,2603297,-1274784117,1931595086,10217731,-1962522997,83895752,1963262013,285587463,-69015047,49743558,11112705,-1962183678,12059734,-383660733,61407392,-1453886464,1383432192,50530038,-1337232000,-167376382,72780546,567098804,-1198274702,567100416,1971372790,-18131,45666699,-148779710,46840537,567099316,376750091,46808704,-149981926,-1194226727,567099906,1085589811,1051992525,1183457741,167977990,-1962740218,1035207766,997335501,-150869783,16778822,45614709,-9901824,49743558,142016256,1493311720,839405193,-167315731,125173506,33965815]},{"sector":3,"length":512,"data":[-2147257088,1452015329,-851659772,-385649887,116849440,1979646710,105314055,846528514,-851528557,105286177,101319460,1451950838,-851594236,-153587167,16971526,1190597749,1946157320,29982733,72780691,-851246664,1793692449,13363457,1945041283,-511688200,41389054,-24400388,1114898856,1942043464,63998741,27831792,-1039977356,-1962933755,-29062665,-24385813,-117240716,738086025,92883137,-117242389,-1946268418,-2116383546,1946267898,512501253,2139685628,-970538238,33751046,1962933821,67013413,27831792,-24382860,1942043464,63998909,27831792,-1039932812,-1962933755,-29062665,1200350955,1958742792,-338129404,251536915,276038400,-1338124148,637891585,49815182,-1108658293,856061835,5892288,225756731,1077936420,5105816,1308495220,780542,1318454644,865790798,1371773376,-1459731061,721646593,1094797768,645922746,50206267,-355400586,-1047792267,359843331,225624579,-1037839625,216581675,-150440704,1978323410,1505768421,-397323581,410255389,-1946252457,-940440592,-65980,-1962510455,1255615446,1493063049,1405311577,517092176,-1202695598,105906177,10020895,-2096577405,1512046586,184710235,-1957313582,-184105236,1996423170,6285318,105810265,839145099,-851659539,-1957858783,72780760,-851246920,29488929,839152896,-1325208631,105314064,242565120,411383,-167086720,-2147286266,-914357387,-183629184,29982722,-851181384,-154957023,57966786]},{"sector":4,"length":512,"data":[-2009020032,-972991345,82055,1442391017,849472651,-1949239551,-1021115298,-1073683583,58032296,-1996371072,-1017314210,1458342741,2122516055,947191816,-1962785601,1183516246,125126660,1912624104,-1958155481,1208128566,-147123852,1149963636,205949186,3860566,-2093976738,-25099066,74646164,108384779,-1711276104,-628417045,-787496061,-754732581,-850873109,-1830194655,1418265737,-1808365310,130036482,-443851169,1317782365,972524300,208929356,-2130393469,1963103486,1072429554,470014603,-745850510,-147078770,507053685,645071424,-787496061,-773074469,1005310443,50951671,19833305,-1064380373,567102132,-147124878,378078325,-2020474304,-1009677564,0,0,0,0,0,0,1766596675,1918988898,539828345,1126777640,1920561263,1952999273,1667845408,1869836146,1126200422,544240239,892877105,1968046336,1881173100,1953393007,1629516389,1734964083,1852140910,658804,10,675283026,1919363363,1635018337,1663986786,824188960,941633838,825241398,3354671,771777138,6452327,25202,1917255766,1635018337,27746,1868787273,1667592818,1329864820,1702240339,1869181810,168632430,1917255680,1768452193,1751326819,1667330657,1936876916,1919705376,2036621669,1634692128,543450468,2573,1885434439,543385960,1918986339,1702126433,1814066034,1701077359,168632420,1850277888,1768710518,1919361124,1635018337,1713400930,543517801]},{"sector":5,"length":512,"data":[2573,1869771333,1701978226,1852400737,1919361127,1635018337,1713400930,543517801,2573,1974,0,0,0,0,0,0,0,0,0,0,0,25264513,1,0,0,0,0,0,85983232,85983232,1,0,258,0,518,0,900,0,1026,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65536,0,0,0,0,0,0,0,0,0,34209792,0,0,28311552,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1127940676,1279870559,1313431365,20294,0,33691136,201919768,134679564,318767103,-16641523,168624128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,536870912]},{"sector":6,"length":512,"pattern":0,"data":[]},{"sector":7,"length":512,"pattern":-151587082,"data":[]},{"sector":8,"length":512,"pattern":0,"data":[24271437,1572890,12648480,56099009,-72415232,5264,30,19136513,23330816,58523648,106692608,109248512,110034944,111804416,114360320,115146752,118161408,118751232,120979456,131072,16515610,16122394,15729178,15335962,14942746,14549530,326697498,234094592,345047578,394788864,400162816]},{"sector":9,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1917255680,1768452193,1358656355,1465012563,-1205971626,-661782448,-2031091277,-1207959522,-661782528,1946286976,102230102,1048577906,1946158913,5290018,512284814,1562312704,1499094878,1431328859,1183575179,1570590728,-13698472,-1946090962,-1996386794,-1207858138,-796000256,-402586948,-1863843723,-1911124479,-1943631103,5289985,113694862,520093696,1516199517,-816293031,0,-1911124434,646655489,1354236300,-958886400,-16777210,1600019743,1482381658,207,0,0,0,0,0,0,0,0,0,0,0,0,1342177280,243946065,-109051443,-1978501888,-2147007986,158662905,990330017,2081019142]}]],[[{"sector":1,"length":512,"data":[121544973,104595377,41683413,103514859,-654898731,922210867,2040728038,-801210362,108331009,108594887,-109051904,-1587645184,-1247606980,165323009,28812104,-1560280904,12059065,29074176,-1559806815,1050739133,29336327,-1560280904,28836289,29598464,165691008,-1207143424,-1046282239,47105,-1593719901,-979170852,47105,-1207842909,-912064512,165323009,-352203869,121413986,165283371,28681024,-1559806303,1017184695,28943111,-1560280904,1017184699,29205255,-1559806303,-4718145,29467647,-1560280904,1048576451,1946159584,47116,-1207844445,-1012727807,47105,-1593719389,-945616420,165323009,-912008969,47105,-1207841885,243924993,-906098217,-777789229,1482250753,58190019,-1560169055,-1214185043,28287745,-1560168031,-1147076175,28549889,-402627864,1048772678,1946157513,28156186,29951491,-1593725533,100860337,-1314717239,-1123665151,-2094958847,117566,-1348349324,-888798463,28287745,50443169,-1560163578,104530355,-1200225857,-1023205144,-855526320,-1273990122,1008127232,-386763493,-1863711987,1476395009,1381060803,-402652744,108199959,-402421272,-523173784,30475835,954789246,1482250755,-1391555645,-1357477119,2549761,1048781682,1946157509,-988927222,-1123140863,-2096007423,116542,371975028,372965831,-646577729,1398195192,-259304879,165158539,-2063304472,722433478,721535246,-33438954,-118655541,-1946615317,1532582598,1397801822,-985758896]},{"sector":2,"length":512,"data":[125042689,721531297,-1593447487,-1037368909,2097152061,-1948715262,41412824,-1324446888,-1290368255,1173505,29691395,29824515,-386763445,1482359443,1364416195,871402322,68413659,11585059,-1057095052,30640008,29429251,29562371,507233278,-512620072,-402650392,-963968389,1583044954,1381062339,-66989122,165625472,50754816,1309268022,-670135299,-1395510519,-757995312,243988962,-1031075362,1499119827,50014,0,0,842084384,909456435,1094268983,1162101570,1667391814,6710628,1426063360,1347637586,503731799,118418571,1041657483,-67078517,-1014244557,1958742700,1220936470,2078865547,2012691201,624733194,1508387188,536013569,1482644999,1566202203,-1157198034,110046724,777520317,79509247,-1154023634,904448772,1003416321,-1395099657,-227269316,1064578364,1198795580,1047809084,980708412,1030893628,964114748,242561084,-1606515922,108331012,-1543059922,-1202704380,-147980278,772055078,1476698275,808248370,-1610219218,772598532,77334270,-30538261,-352019194,1951939750,1918975010,2138717190,1021256706,1007580248,1008366660,-400526269,1424556242,113651455,772146335,77727431,585826320,113716880,656546,1452284139,-1014762613,1921728002,-1847022590,-402593024,-379715422,-1957232861,46367731,41061182,-2144467829,302398,1418397044,855829250,-1959898158,772055606,77598347,-402650136,1877475406,-379692288,1347026671,-768359797,-661915913]},{"sector":3,"length":512,"data":[-2013857960,-1039445798,1392997464,1543497704,-2144465941,302142,535298933,1019448064,772633098,77479552,772109568,77530626,503621051,534191886,-1023406104,159303947,77897774,-503315480,777176059,77207179,399369266,1948894454,26274309,-1017511936,-1573994445,-1574042468,-1574042467,-1557265249,-970062688,537175046,1342177475,1342826936,311194,1354979328,1342827448,311194,1354979328,-482443183,74711049,108594691,-1207305309,-1706030611,1215,165887616,-2095877120,424254,-459207564,2030996233,1959942,1482292194,-206024509,-1080406007,1476395012,-172470077,-1080406007,1476395012,-666991677,125700105,115917958,-389773824,1354956801,-2146829405,647486,104468340,158665186,1342830520,311194,167229440,79665744,-1017643008,-1072999600,-617407884,1944637763,-685884677,1259175689,-1014897711,-1705833987,1215,12802139,0,16777216,1342177536,263475795,1000476877,252066311,-385650166,-466485000,-150991941,64523243,-1962275554,123177735,-1555502345,1200293692,156732162,-1555502345,1200228158,121676292,-1576712310,1200228161,121807366,-1559804021,1200293699,122004233,-1559622239,113707261,155781375,121650816,-385649661,-1205993315,-661782464,520119968,168828555,846536872,563083,151328393,694155,151459465,1087371,151590537,1218443,151721609,1611659,151852681,1742731,151983753,-1752485653,378077196,-1752495867]},{"sector":4,"length":512,"data":[378077198,-1752495865,378077204,-1752495863,378077206,-1752495861,378077244,-1752495859,378077246,1048578319,1946157519,992521,-523116335,395040771,151066249,-1996335221,-955710698,17366278,-16333047,-133617400,1526268395,1405311067,121376315,-1729559690,1041644288,-385649145,1381040271,-768359797,121976567,868322128,1127675858,1523092231,281873844,1048598874,1946157518,1975519761,121675781,104466667,41224000,1048625202,1963001664,-339736060,853051933,-773598721,-2132553245,17422142,834340212,50653961,-402063586,-2137259957,17422142,1048585076,1946486587,993951772,359925255,-13444982,-472783919,150806019,1124234397,-351827133,91528458,-352321096,1539322626,195,0,0,0,0,1381061376,516481,516737,529193475,-1007227950,1532582401,195,0,-1437226496,-1437226411,-608773291,-608773194,-74,-1,255,0,34816,34816,37376,-1845493614,579338240,579347080,613556872,613557394,9577618,9568402,1227096210,1227114788,-1437251292,-1437226411,1437248085,1437226410,-1227139670,-1227114789,-9586981,-9568403,-613548179,-613557395,-579347603,-579347081,-9577097,-37377,2013265773,2013265919,-1,-1,1207959551,1752195442,24339305,17022976,524296,-16777215,-16777216,131072,67174400,805374465,285225216,369168897,12289,70912]},{"sector":5,"length":512,"data":[0,0,0,2030061312,2621632,-65511,16777472,419440640,16776960,65537,1638480,16842751,1342177536,-16770816,65791,20971521,196808,33555200,-939442176,768,131075,13107840,33488897,1342177792,-16770816,65791,10485761,983240,33555456,-939442176,3840,131076,13107840,50266115,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50331904,85472027,857422875,1276839460,1663394597,168624640,1663369728,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1426063360,1448144011,-1205991849,36506571,18810112,-388896559,-388896559,-1962912605,-1064434106,637556384,-1610494558,-1574567849,1486881230,-811457024]},{"sector":6,"length":512,"data":[5873665,30450214,637557409,-66807133,-989213761,12126326,648344322,84535713,-1557788213,-1591342615,-888862229,-341629431,-308206071,164300041,166568742,166699302,638176005,638185379,84537761,-1557788213,-1591342607,-888862221,-207411703,-173988343,164300041,167093030,167223590,638176005,638187427,84539809,-1557788213,-1591342599,-888862211,-39639543,-6216183,164300041,167748390,167878950,638176005,638189987,84542369,-1557788213,-1591342589,-888862203,94578185,128001546,164300042,168272678,168403238,638176005,638192035,84544417,-1557788213,-1591342581,-888862195,228795913,278996490,164300042,168862502,1583286047,1575324504,-326412861,-402574664,1448543921,-1996397384,1586296390,-1539407624,242418190,1342177720,18233087,-2096970008,1187448004,-973078300,-973015994,-385810874,548929711,146296833,-2037559296,-1924071656,-397351866,-998047042,1958742792,81185,37561204,1025864704,661913603,1946158141,415137833,1333068031,-768314,113669099,-335609769,1476839020,1709965056,5637830,-966857729,-16754426,-2037557269,-397345000,-998045953,5939970,-15169910,-153580648,68084103,1048774516,2114125914,112692,473366352,-2146505983,1946222206,112656,439811920,35514369,-352009085,411471124,-2037559041,-397345074,-998046227,-28916220,-193036033,-385649408,2122383176,1534329086,14960327,21930240,2112112185,440347,-1947963657]},{"sector":7,"length":512,"data":[716701656,-830042879,-1360506626,79987460,544587787,956386977,494789702,-150993224,-661920658,19695499,19830667,-1980348791,334231638,-337361153,178360,439811920,27125761,-972766077,-969545914,-1928993210,1358893190,1357268621,1357268621,-2096827672,-1769273660,-1070858480,-2081929725,1183383762,-61437446,14960327,22067200,139323472,990037123,511108166,1342263480,-2096611608,1586168516,-992465948,2123102838,1350929124,3679745,1354245236,552095745,46433032,1977894459,-126419174,-624897,1996487798,-49813254,-385301373,1191117064,-945099804,58438,1354244331,-253210623,46433031,736386699,1345766616,-461468928,22054282,-16742362,1354294342,-790081535,46433031,2011448891,-414791983,-1676244151,96480014,-763166676,-1950183936,126559960,-15694199,-15694195,-431583920,-431583920,69331024,-1207516029,-397409968,-998045805,1343130370,1377733376,-2084033792,1317602537,-497120800,-1948229948,1452014150,126428924,39291174,-493825,922744438,922681426,1525153872,147096572,887113415,-498678016,1589903440,5546464,-523041615,637603885,1187383177,1187390951,1352730086,-330921728,-1996467551,-1912662394,1358893190,1357268621,1357268621,-2096914712,1187382980,1187394023,1419837670,-330921728,1357268621,1357268621,-2096711192,-1070398268,110684240,1577239683,1575324511,-326412861,-957824973,226539523,74907472,-2096892952,1996424388,108324870,-1017256565]},{"sector":8,"length":512,"data":[-1192457387,-1494745062,1048598019,1962934626,-314128868,-330906057,-330920704,-330920624,107276368,-1979399037,1654846022,-1676244223,96480014,-763166592,-62486272,-989964663,-1977156514,1586206727,2097625348,22722591,-1962410160,-59325409,-1744795098,35907664,184861827,-1948748352,268371038,654073540,-1952970870,121177182,1586171004,509446,-369099080,1586168312,-1962410236,-59325409,-1962898906,126355038,23201338,2028536692,-364460287,1122697216,1342266040,1586182027,1082795772,-397371391,-998047287,1975520004,73304887,1589917579,23240956,20985894,1586177652,-1962410236,-59325409,-1962898906,1191176798,108432362,1589903496,126494460,73304984,-1334048967,-1947574645,12977782,-96024832,1183514624,-96061176,-756481156,-94467328,1988879313,-2145875190,443824703,-772120949,-13565981,-1897396618,79987457,57982987,-385820695,1586167977,-1948003846,9112182,1996443712,24111110,184861827,-385649472,1589903544,126494460,73304984,528287545,1342266040,529205247,654079684,1352138890,-2097083160,-1073019708,1586223221,-955252988,59462,1522025195,931876865,654073483,-1744748406,15198288,184861827,-1959299648,931857502,-1594073404,942014818,645136704,-16490869,-1004565753,-1977156490,-396457216,-1947711745,8914550,654073540,-1952970870,121177182,1586212988,108432360,-1962934074,1178142790,-14058246,-588773770,46433028,1996443712,105286406,518541376]},{"sector":9,"length":512,"data":[113541892,-1610195317,126353762,1191144939,-17634822,-335919477,-431569051,1139474432,1342266040,1586182027,1082795772,-397371391,-998047663,1975520004,73304888,1589917579,23240956,20985894,1586177908,-1962410236,-59325409,-1962898906,1191175798,106859494,-1006550904,-1977156514,1586206727,2080848132,-428438609,-972661109,-1207959232,-1956708353,1438866917,45673611,19130368,1988843095,23240710,1946437176,-335596774,71731727,3727243,28837237,1191897856,947969931,871003392,-1956684096,1438866917,112782475,15460352,-402360577,-998046640,-62486270,-402229505,-998046652,-96040702,16547459,-1073019788,-1070398347,1996437227,3467516,-16595837,736688758,46433024,-362753,-504824714,79987459,-113015,686357622,46433025,-386238721,-998047457,-28931326,-1017256565,1458342741,-1962641781,-1318996522,-1975405446,-1965282595,1958742532,1925528079,2009152008,-2000475644,-336902652,1566491275,-326412861,-1960946089,92996734,-1962779253,1435173965,141921030,-1962248705,93194366,1594252686,509026765,-1912465985,142511071,1167000972,108956422,1569260937,72190210,-1996073591,1167001717,855929354,-402068490,29231547,-1996125440,1579093109,1505975647,-668214133,507185778,74583396,-503323765,1426208233,1448602763,2123040542,871860998,-17984,-146690318,75402201,-1527523445,1600045707,-1957313699,116163564,1996445271,47835140,-1962752893,108462072,-2096718616]}],[{"sector":1,"length":512,"data":[-259325244,1460041471,1342177720,-402360577,-998045847,-62486264,1443264255,-2096693528,2117665988,-1962314244,1099564126,65771775,1593835448,1575324511,-326412861,-2147197301,-1962803633,1438866917,1465314443,-2096273733,695533631,95946526,68085760,-1070398091,1076161433,1722023460,224961293,17090454,80118528,-16890681,1815513599,72256269,-1064380276,1594013928,1575324510,140831171,-1962797633,721420854,16679415,-1107070448,-1896214528,784630231,57932564,-2130621975,922746596,239216265,1076267318,-1312388338,1222693636,238986038,567095476,245670710,712180284,1354773278,-491118834,-855002092,1329908513,775037011,1919885360,1952541728,1914729061,1769304421,224683378,-150789110,145033,-567557236,1253366775,-1942609459,-1961976802,503327798,889239574,-1992941107,906902046,238814860,12066574,370260517,-1959386675,-485484530,113587746,-628355046,-13182157,1930434078,13428995,503760182,-1143305200,-13238269,118494750,583007263,338737424,-1070346453,370584307,1223171847,310023,-851181384,-167087583,91521218,247631744,-327595200,-402387736,582681449,586907920,1393062672,1130043391,-1175262397,-517275642,-1961974082,-217639172,47835300,1089006899,-1209511689,1393167616,1801675124,1702260512,1869375090,218762615,1986610186,543515753,1869771365,218762610,1869366794,1852404833,1869619303,544501353,544501614,1684107116,168649829,-1178987855,250425877]},{"sector":2,"length":512,"data":[178975,567099572,-4710634,1122521088,-1173311229,-437578293,-608559695,1440672533,1448602763,2123040542,108432132,1317787531,1996372744,63343380,1945648065,66126604,-45134087,-335764237,197626657,1944637894,868715274,1927860678,-1958107925,-202780199,1944834469,637831685,-1031076472,-1017290914,-2081649835,959038,385811572,1996426914,47179780,-1017256565,1475119957,75402070,1569392011,72190722,-1962519157,2106263669,1461832970,-1996063093,39684357,-1996206711,1971914325,172330760,-164428686,-1662514965,114182,1971914123,1566531084,-326412861,-1962467753,-1070398338,-218103879,1086426030,1608054592,-1957313699,-1957275668,2123039862,-1962467834,-1178586145,-1359806465,-1948649663,-1968770053,-919339196,1929332026,1090876421,-772341013,1600045451,-1957313699,2123061228,-1461168380,-397393665,190577949,1526953408,-397408277,-997983091,-1017291004,-2097099799,-126619911,-18775999,-66947189,-1459713107,1212314625,359907643,-268185461,1946265773,96600884,-141885438,-335657847,1962839014,-1980169460,-1054081460,-351958712,-17235195,-963903924,-92153204,91488789,-434205658,41912591,113649347,1023545322,628424702,-268173685,1946265773,1224641522,-1116487365,-268185461,1946265773,96601058,-141885438,-335657847,138906598,74760203,334223502,-368116186,-1945078769,34946520,-1910110860,-1961893346,-1950487753,-1070397833,989878760,604861638,-1740619775,1946177000,-28443123]},{"sector":3,"length":512,"data":[1946160104,1313773061,-1070359829,-1957575783,27852357,-936705164,-1170128567,992378879,1980753942,1978323204,63015925,51737286,-150113598,734143442,846022,-755562379,-445257007,-1017528269,501764434,1461220352,-259260789,1153954307,-1979711746,-695531913,-1991583957,1499004501,1347666778,1377751603,28856402,520507392,-2096687384,-92075836,1532633087,-771030412,-326412861,1460202627,-1439265962,-1206392050,-1202716660,-11530260,101574708,184992899,-2096597824,1015218886,-2082179840,963903548,-947700597,-28915956,92930048,1183422535,-1977816070,-12740603,839152896,-1979520064,-27358459,-1996601601,-15809913,-2092434866,1962998398,313310,-1956684288,-1883021851,-1911555578,856595486,-1950250039,1241091049,2897547,141882891,-1359821170,-92950971,608212805,-771912706,382010341,-91756513,-57946229,-326370045,-561117418,-481692109,8292621,-1431550651,-92946422,1317663714,-1994451456,-15816154,1427110438,582741131,586907920,1393062672,1130043391,-386733245,-469105841,2122320500,74776580,-33274170,974570782,620804110,-1960894003,-485484530,178951,269885183,-1274788213,-1893610164,-1911555066,370056222,8437255,-768370516,-1539407834,1701970702,738627152,-1950338304,-1949173816,648999672,-109771464,-1962686589,-1949173816,92940023,-533053113,574362740,154929268,540804212,374926197,8502791,726608875,1962871806,1120898033,63146843,198081,738197029]},{"sector":4,"length":512,"data":[519867360,118890246,548447475,533433258,-352288322,80251662,738075652,-1191408672,-206888893,-1430156380,521598091,-1948480688,178957566,1010660544,1444902178,245761791,1958742700,1965177902,-8552441,1325692252,1206774698,16729542,938005995,1322284032,117392982,-1431564634,141869066,1962943976,-1428034571,1263269003,141816635,-1995995219,-219414972,-770974581,134152821,245900937,268183295,41158972,1438851132,-1957237621,-25099146,1014304120,201737462,1149908597,-661940217,-2013862959,1963003408,71616295,1149898800,-661940217,-2017008687,-956232176,1561240070,38061855,1149960704,-1207662332,887816193,227606145,1156983925,645204998,-1744354166,-472786805,235964406,-1206422271,-397409792,-997983935,71600386,108314635,134630528,-1070351893,1575324510,-326412861,108432214,294531,-25080716,628428152,-1744354166,56223824,184730755,1444312256,-2096910360,1149895364,-661940217,-2017008687,-352317936,-1862368998,1444640013,-2096917528,1962869444,-120461308,-2147302269,871827044,-1996191296,-1956772796,1438866917,-326898549,-1957275898,2123039862,105286410,-1995938057,1183447622,1958743036,105248315,-1975618292,-1952970939,-152841768,17698951,1308569461,41779970,-1978893312,-14841084,705136645,1460399076,1352139914,-2097035544,1173750980,91496454,-622215117,1325352448,105248508,-1978501880,-1952970939,-152841768,17698951,-1545010315,-58817792,-385649408,1183514761]},{"sector":5,"length":512,"data":[38091260,1448090738,317208063,113542138,704398987,1183515205,-955973124,64582,2105791467,561250306,1443001855,-286771713,113542137,16926091,38112005,66864681,1170670197,-352321534,38666156,163203,76156028,100605323,-467007608,-1974006805,-397371388,-998047445,105248260,1176007968,-369340673,-1973944449,-397371388,-998047469,105248260,-1962052576,1177287238,-137221124,535496310,-61931706,16547459,1308617076,41779970,-1966113792,-14841084,705136645,1590619108,1575324511,-326412861,-1175047338,-466485195,-533549828,-192873502,890175061,-2012842752,-352308186,1961101841,3586573,-1191181637,1085538329,-1070456371,1577072034,-1017256565,1458342741,74877783,-1715457028,1017961099,1023112224,1022850057,74751021,24455996,2000239788,1915759647,-773598949,-1949594670,-773598726,-773598766,332989394,-2082995241,-588578606,125148563,-763111177,1608185600,1575324510,856191683,1575324608,-402230333,-4718579,1575324671,-387697981,-1564278783,-469102932,1048585077,1912802980,1931623437,1914715149,-351948795,322736135,330302070,-686817605,245277592,-339440957,-326412809,1459940483,108432214,-1744419702,1946190761,105182726,-1207536576,-622198785,105182720,-2147060735,-350222772,105677038,107249666,-1983892497,-125107644,-151093623,1963460164,121932303,-774337640,277346019,812908814,2083208331,2130643716,1962891026,121932292,1558728856,113541890,-1946270071]},{"sector":6,"length":512,"data":[-1992293308,38061828,1552613887,71731716,1793787784,67519734,-25080203,762645880,-1744354166,6940752,184730755,-952797760,1561240070,71616287,1149898800,-661940217,-2017008687,-956232176,-351260412,33601720,-168564656,-1996307325,-1073019836,1283458676,-1679095802,67521664,1459618239,1342457485,-1744354166,31320144,-1996045181,2117729862,-385649410,1183514417,1592011268,1575324511,-326412861,-2096865653,293410043,2080439171,-1031277044,91504654,-352321096,1572877058,-326412861,119428695,-485994869,-1948677329,-141884290,-4603853,1101984511,-885270025,-880082314,1988886155,-1968770298,-919339196,2013218106,1090876421,-772341013,1600045451,-1957313699,82609132,1988843095,1459565316,-2097011224,1149895364,1006838790,-163810046,1963460164,121932303,-774337640,277346019,661913870,1143669899,-62486268,461291531,74776400,-1744354166,18475088,990299267,125107270,537283712,-1946157121,76088388,148679,1590135552,1575324511,-326412861,1459940483,225492566,401342259,-1744419702,1946190761,2045269515,46433279,1191277632,956876419,1930311734,1590135779,1575324511,-326412861,-2096736426,1962936446,239255352,-1962518901,1967653958,5498887,1223370610,244463243,990999624,-1962052361,1183384132,988304908,812867072,-2130393469,1930334974,1976699652,-18426,-1960973415,264471514,61987793,1219816403,-378396211,-1996191342,914948692,-1070395758,-1956749561,-1950130715]},{"sector":7,"length":512,"data":[-141882290,1946307641,80118540,244514433,-335941003,64654143,-1959169508,1002540755,956724727,1930313246,264471334,-338568239,-338564143,158725947,-1667114749,-1898435826,-850742080,990736929,-1996196361,-1844560362,-779418489,-326412861,-167485813,537838215,45616756,-1949748414,1931595217,-52303613,247629814,-385649280,1317732481,106334984,-1070397666,-1957275652,-470119440,1074444389,846573298,735021905,283331018,60563917,74685936,1240140212,796180491,178502,-1274015046,1931595072,-351685628,1958742836,-678733542,-1957575189,-842388529,-268198879,-1274776675,186313481,-166300224,1074709127,1586170740,440369158,-336067723,146340100,41048348,1600046731,-1946396951,1451952206,-851397626,-1274776799,-470947063,1975520235,-1031276825,175390734,1065409163,-133991142,-1191586069,-789898232,-1947432107,1736442974,-1017262330,0,0,0,0,0,0,0,0,0,1766596675,1918988898,539828345,1126777640,1920561263,1952999273,1667845408,1869836146,1126200422,544240239,892877105,1968046336,1881173100,1953393007,1629516389,1734964083,1852140910,658804,270,0,0,1868787273,1667592818,1329864820,1702240339,1869181810,168632430,1953451520,1730175264,1752195442,544433001,1852404336,544367988,1701603686,658720,1701998165,1852272483,1684372073,1769107488,1919251566,658720,1701998165]},{"sector":8,"length":512,"pattern":0,"data":[1852272483,1684372073,1769107488,1919251566,1919905824,168632436,1818838528,1701978213,1696621665,1919906418,658720,4325458,4390982,1124094010,1380928591,5522762,1346458183,1396918600,1280262912,3232335,1330401091,1124086866,1380928591,1329791032,1128353869,6029396,9699445,13172908,14549212,14811360,15139044,34933604,23331056,16318997,34932068,123994368,17236501,34933092,56885518,393749,1885434439,1935894888,153092096,1027279373,43,1885434439,1935894888,62914561,134219777,256,255,33554687,16777216,17432836,3211312,17957137,3146006,18153472,0,0,0,4653056,671137803,-16770816,65791,2621441,-65511,16777472,419450880,16776960,65537,1638480,16842751,1073742080,50382849,196608,20971522,196808,33555200,-939360256,-16776960,262145,1638480,16842751,-1610612480,251709440,262144,20971522,983240,33555456,-939360256,-16776448,131074,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65536,406002435,456923909,453387315,627254604,218234979,620888074,99]},{"sector":9,"length":512,"pattern":0,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1885434439,1935894888,31457281,134219777,256,255,33554687,16777216,17301763,3211312,17826063,3146004,18022400,0,0,0,4653056,671137803,-16770816,65791,2621441,-65511,16777472,419450880,16776960,65537,1638480,16842751,1073742080,50382849,196608,20971522,196808,33555200,-939360256,-16776960,131073,1638480,16842751,-1610612480,251709440,262144,20971522,983240,33555456,-939360256,-16776448,131074,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65536,70327042,840645659,625679110,6497635,658690,6497538]}]],[[{"sector":1,"length":512,"pattern":0,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1885434439,1935894888,145227777,134219777,256,255,33554687,16777216,17694982,3211312,18219285,3146012,18415616,0,0,0,4653056,671137803,-16770816,65791,2621441,-65511,16777472,419450880,16776960,65537,1638480,16842751,1073742080,50382849,196608,20971522,196808,33555200,-939360256,-16776960,262145,1638480,16842751,-1610612480,251709440,262144,20971522,983240,33555456,-939360256,-16776448,131074,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,524296,238230277,453446157,355670844,453394203,627254604,218234979,1645937162,6497538]},{"sector":2,"length":512,"pattern":0,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1885434439,1935894888,145227777,134219780,256,255,33554687,16842496,17694982,3211312,18284821,3146022,18481152,18874653,291,0,4653056,671137803,-16770816,65791,2621441,-65511,16777472,419450880,16776960,65537,1638480,16842751,1073742080,50382849,196608,20971522,196808,33555200,-939360256,-16776960,262145,1638480,16842751,-1610612480,251709440,262144,20971522,983240,33555456,-939360256,-16776448,131074,0,262148,131074,262148,65537,65537,262148,524296,0,262148,131074,262148,65537,65537,131074,524296,238230277,453446157,355670844,453394203,627254604,34406755,453118477,1830486649,40049410,620913179,99]},{"sector":3,"length":512,"pattern":0,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1885434439,1935894888,145227777,134219780,256,255,33554687,16842496,17694982,3211312,18284821,3146022,18481152,18874653,291,0,4653056,671137803,-16770816,65791,2621441,-65511,16777472,419450880,16776960,65537,1638480,16842751,1073742080,50382849,196608,20971522,196808,33555200,-939360256,-16776960,262145,1638480,16842751,-1610612480,251709440,262144,20971522,983240,33555456,-939360256,-16776448,131074,0,393222,327685,262148,196611,131074,655370,0,524296,262148,327685,262148,196611,131074,65537,524296,238230277,453446157,355670844,453394203,627254604,34406755,453118477,1830486649,40049410,620913179,99]},{"sector":4,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1885434439,1935894888,52428801,134219783,256,255,33554687,16842496,17301765,3211312,17891599,3146059,18415616,19333408,20250926,21168444,4653379,671137803,-16770816,65791,2621441,-65511,16777472,419450880,16776960,65537,1638480,16842751,1073742080,50382849,131072,20971522,196808,33554944,-939360256,-16776960,262145,1638480,16842751,-1610612480,251709440,262144,20971522,983240,33555456,-939360256,-16776448,131074,0,65537,524296,1048592,131074,262148,131104,0,4194304,262145,524288,1048576,131072,262144,2097184,4194368,221256452,840630794,625679110,23274851,453838605,87387,1528497672,16777549,1297816326,100794369,21846811,453378816,85339,1528497668,83886413,1297816326,101056513,21846811,33554432]},{"sector":5,"length":512,"pattern":0,"data":[25381,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5318,0,0,4656,70192,0,16908288,0,33947648,0,58982400,0,67239936,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,3592,0,0,533,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,239206400]},{"sector":6,"length":512,"pattern":0,"data":[0,0,0,0,-2122252288,65921,0,0,0,0,0,0,538976256,538976288,673718304,539502632,538976288,538976288,538976288,538976288,269502496,269488144,269488144,269488144,-2071690224,-2071690108,277120132,269488144,-2122248176,-2122219135,16843009,16843009,16843009,16843009,16843009,269488144,-2105405424,-2105376126,33686018,33686018,33686018,33686018,33686018,269488144,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,1180648251,1598377033,1330007625,0,369098752,219677186,202116105,-63481,302846719,168689410]},{"sector":7,"length":512,"pattern":0,"data":[20208205,327698,13172768,39649279,589694976,2988,30,184418305,13107200,195887595,457834496,463208448]},{"sector":8,"length":512,"data":[-1957363712,15382764,1460366056,-2114614442,-956241170,43078,805389510,1760056918,79987469,620127408,704728202,-1983839251,1587651654,-1538901760,1621166204,-1538901760,-172488066,-1696051200,46433028,-2096869633,-956168634,42054,1586172907,-1948003932,838796926,-2096504344,1191117508,71732132,2091140665,117487845,121825360,-2096970621,2114061438,11581450,72869968,-2096970621,1962935422,55502854,-1962722071,529204830,764938122,1183383617,106859428,2139103115,359938561,17071747,-1330117259,-1207702784,-397410097,-998046691,646352130,1996443903,126937252,168084611,-1207274048,-397410097,-998046719,106859266,-504875009,46433036,1034307209,1014235138,-1962516853,41910303,-1207274449,-397410128,-998046759,-1501658366,-2095746044,1963000958,13613061,-1330117653,-1092071424,46433027,-16359797,106859271,132843519,-2096869633,-1962801594,529204830,1966030720,106859292,2139103115,125125633,-5749049,-1207243777,-397410097,-998046843,-1468103934,-385649409,-2030632823,536936297,-810022283,1793609728,46433027,-14252403,44492880,184730755,-1207274304,-397410097,-998046895,-1538881022,-2037890812,-2033778906,-969212121,1560225926,-14055738,1971767040,-1610611969,966264608,142386246,-9861433,116064256,-9861433,12075008,-303542265,46433029,120852222,1342636216,-2096745752,-2037579068,-11469018,-840391562,79987462,-1207835415,-1957691345,939460190,-2096359448]},{"sector":9,"length":512,"data":[-1073019708,-1330115980,-689418240,46433026,-9861385,175382528,1342230456,-2096970520,1183646404,1586188464,-398983418,-998046757,-1337553660,135325776,-402471805,1178273116,-1926204252,-397365178,-998047264,1975520002,5290018,-1287221936,54257744,-1962621821,4161752,1996426613,111470756,184730755,-13732416,-51862410,46433030,225820683,-391874817,-998045899,1958742786,8566794,38791248,-1207778173,-397410097,-998047163,-1337554430,4271512,113895504,184730755,-1978501696,764981318,-397410239,-998046025,1958742786,8566794,35121232,-1979530109,764981318,1183383617,-1538901590,-810022283,-18329600,46433025,1353729677,-2096639256,1950352068,10807555,-8878451,1095760,-1337553584,33286224,1074185347,1190528628,175444109,1342230456,-2097035032,1183646404,-1444392784,46433034,1133377675,-1404663376,1342198712,-391350529,-998045011,2022083844,381178111,1183666176,-1226288976,113541889,-340900215,5814331,-1773761200,182380624,184861827,-1206750016,-1924136870,-397371834,-998044980,1975520004,2022083853,-756526849,46433025,-507983125,1458065408,46433025,-5341565,1586216821,509612,1353729677,-14252403,132245584,-955988861,16738694,646352224,1996443903,83814564,-1207647101,-397408512,-998046728,872873474,117487623,71166032,855819395,-1796714304,46433033,-443850914,-1957313699,5552364,-955808024,65094,1190600683,1948254447,-1404662507]}],[{"sector":1,"length":512,"data":[-28931248,1342193925,1342202552,-2096550680,1191118532,-1404662274,-25755824,-2096871960,-1073085244,-443821963,-1957313699,5421292,1443316456,-2147197301,1966735743,-1744336373,-1996472275,99352134,16664263,-25755904,1353598605,-2097057304,1967129796,-18427,1183666155,1709723822,46433033,1946157885,-1371108034,74907472,-2097136664,-1073019708,1996434804,155641860,-1962752893,73305072,1560246400,-397162636,-998045388,-1963947262,-1986482622,-1072955834,1547547508,867070976,-443851072,-1957313699,-390056980,1996424887,151709700,1342358659,-16353537,1676149878,113541894,91602955,-352321096,-1950338302,1438866917,-1070338933,-16348440,1857553526,1189629952,79987464,1342177720,-1962380568,1438866917,247000203,107603968,452150982,-1995946357,1183709254,1183666418,1760055538,79987464,1324566214,-1996077429,1183577670,-129595132,1358055053,1358055053,-2096608536,2122515652,91488510,-335544392,-1950338302,1438866917,247000203,102361088,452150982,-1996208501,1183709254,1183666418,417878258,79987464,1341343430,1358055053,1358055053,-2096625944,2122515652,91488510,-335544392,-1950338302,1438866917,45673611,97904640,-16353537,-907541386,79987460,201213577,-15829568,367527030,46433032,-352041469,-28931325,-1017256565,-1192457387,-1528299506,73304837,-972798209,1187404807,1183467507,-129595386,-1996208501,1183709766,1183666418,-1796714254,79987463,16678531,-4717196]},{"sector":2,"length":512,"data":[855829503,1575324608,-326412861,-402649928,1448543587,-1744731160,-1946401143,1065354334,-2145750016,1966735743,-1744336364,64546896,755156099,1183383617,71730172,106859266,83641994,-1962440639,1204160094,1586182657,1547665412,-1957491595,1077937734,86632528,1183533035,-1957674756,1077937734,-10950576,184861827,-1207536448,401211391,73304833,1946173312,108461851,-2096675864,54330052,-1207075328,-11534222,1256719990,79987463,-16484609,1055393398,79987463,-385452405,-24444748,1342207160,1342260621,-2096909336,-259324732,242611723,-402229505,-998045952,66095874,76154486,1023297160,-972786340,-966984122,1991770116,1166888960,1307070465,79987463,292929547,-1996601718,-396929532,-998046585,-336098556,7911517,21335376,120252496,184861827,-1975093824,76086854,1183319434,378622,1208370827,-1191688567,-1957691269,-1992230842,-397346234,-997982631,-1982297340,1065416798,-1964739328,92864070,956712587,58063430,-1946215191,-347080066,-28931428,1015022728,-385649664,1996488516,106620934,1023591555,225771522,1342209464,-402229505,-998046111,108461828,-2096973336,-1070398780,-443850914,-1957313699,964844,-972827928,-1927679162,-1924074938,-397348282,-998046249,-230258172,-443816918,-1957313699,2013420,1459859176,-2081060010,1153834734,1183666689,1448497400,-2096956440,1451951812,62925816,-763166140,-230258432,-940288375,63046,-990486901,-1977159042,75401985]},{"sector":3,"length":512,"data":[1191117192,-159480842,1592360501,1575324511,-326412861,-402645320,1448543067,-293341813,21284382,-129594030,-396994992,-998047064,-128546042,1141096491,13796098,-1980610935,1187509334,-1962934026,2123101790,-1006532092,-2010713474,-163119359,905346691,1600055678,-1017256565,-1192457387,149422086,2122536451,1065091076,-1744363104,2097432121,5355574,-1727762697,118883843,119019027,-1979955575,1187511894,-1962934022,1992620638,9053948,-2012842357,-96010496,1375370883,-4658818,855829503,-443851072,-1957313699,440556,1443017448,294531,564150140,1178179591,-1204388604,1861681233,100899076,370345750,1183385368,-27883012,16402119,-94467328,-1979287925,-59325440,-16742362,2122578502,-377597446,-335544392,1589654274,-1017256565,-1192457387,1558708348,1183667714,-96040488,1350846093,-402360577,-997982406,1958742532,-951650499,913682432,-1949743477,1183435606,-27883012,14042823,-698447104,654079684,1988821130,-16742150,2122569286,-377609770,-1730656630,1963214395,112645,-1070398741,1575324510,-326412861,-402627912,-1957297673,1659798517,1353598605,-402360577,-997982506,1958742532,151308063,71732036,38046016,-454535594,79987459,15812343,-1207602048,48955393,-1956724685,1438866917,1656286347,28436480,-2081060010,1183671022,1996443822,-24057852,168084611,-953781056,-1958475516,-1992293306,1448477252,-2096914712,1190593732,1971323121,105182983,91488768,-352321096]},{"sector":4,"length":512,"data":[1589654274,-1017256565,-1192457387,1692925966,-2143387647,510984192,15877831,121026616,-1913108855,-1924074938,-397348282,-998046885,-2147039740,922746624,922683210,1996425032,6481924,-1017256565,-1192457387,619184130,1988843009,-1978733820,1357130244,-2080396824,76022468,3964998,1183575413,-443851260,-1957313699,178412,1442904808,1988827627,-1962087674,950797406,-1962642169,-2146243645,-277544900,-1962653953,1065354334,870282496,-443851072,-1957313699,71732204,225829898,108159292,41384508,1593778220,1575324422,-348539709,-348474362,1429976066,1452010635,-383660796,-1957362788,508975084,-1962639733,39684869,-1962652277,1972045397,175505160,-1912045941,106794501,1461833055,31899422,2123095950,-1895461880,2123040325,-1996125946,1300824669,106268932,-1895271031,74582597,149681715,-1107075096,92995585,520910217,-1017290914,1475119957,-1962467754,803407950,2123094411,871860996,-17984,-146690318,1993030617,-1949594878,108432382,1149937395,986264575,91750213,-348060300,-1949174014,1566531265,-594847293,175298603,17571387,-477428622,-1947606529,-326413055,119428695,-1962508661,-1178586121,-1359806465,-1948649663,-678755202,-1031035661,-1017290914,-1962809665,721420854,16679415,-1107070448,-1896214528,1589936599,57932551,-2130621975,922746596,18228873,338069814,-1312388351,1222693636,17998646,567095476,24683318,712180284,1354773278,-21356786,-855002101,1329908513]},{"sector":5,"length":512,"data":[775037011,1919885360,1952541728,1914729061,1769304421,224683378,-150789110,145033,-567557236,1253366775,-1942609459,-1962840034,503327798,889239574,-1992941107,906038814,17827468,12066574,221100581,-1959386675,-486356466,113587746,-628358452,-13182157,1929562142,13428995,-804862666,-1143305214,-13238269,117622814,-725615585,123779330,-1070346453,370584307,535305991,310021,-851181384,-167087583,91521218,26644352,-327595200,-402447896,-725941634,-721714942,1393062658,1130043391,-1175262397,-517275642,-1962837314,-217639172,32434340,837348659,-1662496525,1393167616,1801675124,1702260512,1869375090,218762615,1986610186,543515753,1869771365,218762610,1869366794,1852404833,1869619303,544501353,544501614,1684107116,168649829,-709225807,250425868,178975,567099572,-4710634,1474842624,-1173311230,-437580569,-138797647,1440672524,-326898549,-1101637882,-397016606,-998046846,-1913091326,-11532730,-397015946,-998046579,-96040698,-370649258,79987459,1593460363,1575324511,-326412861,24526467,-16485376,-16681450,-1571722,1575324417,-326412861,2123060823,-1962571004,1300955741,106269444,-1962379893,567085693,108956503,1569260937,72190210,-1996073591,1167001717,855929354,-402068490,29229252,-1996125440,1599999093,-1957313699,119429100,855932555,-17984,-1047810318,-654884800,1438866783,1448602763,2123040542,869763844,-17984,-1957712142,108956663]},{"sector":6,"length":512,"data":[-4595829,1101984511,-24389129,-1527516277,1600045707,-1957313699,2123061228,-1962467836,-1178586145,-1359806465,-1965426879,-74774970,944746226,855798789,1606913023,-1957313699,-1957275668,2123039862,-1962467834,-1178586145,-1359806465,-1948649663,-1968770053,-919339196,1929332026,1090876421,-772341013,1600045451,141738845,-443826125,108249949,-1207955992,-443809793,-466435235,-1023409688,167870626,-2145159708,50427966,574360946,540806515,95421810,1016072171,-1342015981,28621587,1923324119,-997539071,-1957300245,149717996,915101271,401277310,1342180536,1342294200,1609053439,113542140,141869067,-2096970109,-462094276,1946172547,-2093184199,1187450055,-1979711234,-1986509051,485227078,1033373066,74776831,49004594,1586169226,-28901378,26642312,1207586559,16416387,80207477,1599995904,-1017256565,30803599,24125070,-1047803597,-108271221,741772105,1962281728,-221868536,1974355374,1083655674,-41157084,-989600303,484974358,-1949332484,-1946352644,-1912138004,1240871902,2122911203,-1404746496,1975519914,-1980505350,521535566,25044617,30811903,-1142125739,-75431212,141755092,1528299347,-219462845,167907816,-2146798364,1962935422,71747076,382017278,12058894,522308901,46796427,45811683,-937492736,71731970,567102644,30934671,24125070,-2135029994,865643520,1048585938,1912799608,109989989,-1070399444,-772290421,-1359808373,1963276326,63407097,-772290421,-1977157749]},{"sector":7,"length":512,"data":[977356549,1007973600,1007186978,1006924809,1491825952,-2118252778,1328278272,-15991253,-812912268,-1014277310,50708739,-121600,-57941973,371131934,-1331367161,-880039392,8502815,-930410773,-31194108,-57941973,-1423948872,-1047812877,385125290,-594849761,-1431503221,1031061514,527770172,2047278934,-1073042431,574369396,2105542517,74800383,-303322545,-12204473,-388633856,-797704137,-12167602,-1409189370,1958742698,2484232,-504629899,1274317738,1945320267,126332168,-335657847,199003122,-16615982,2082900231,-668532991,1946762241,-1021297662,1458342741,-2130413941,1963057918,105182780,-1976142580,-1952970940,-152841768,16939655,1153902453,-1979514876,-1952970940,-958148136,16939655,24512199,1153899126,-1962803198,76088388,-352321096,-83984076,-164858623,1963722308,121932326,-774337640,2055730915,393543938,1342308536,-2096528920,1149829828,1958742788,105676806,867822344,-443851072,-1957313699,1988843244,75399942,-2125696000,1963057918,121932325,-2098704232,46433032,376750091,144173142,-1979530109,-1952970940,-958148136,162439,-25093397,460653050,142338134,-16595837,300418164,46433033,-150576000,76136499,1577337993,-1017256565,1458342741,901379635,-52153856,-488623444,1442087163,3477246,646448757,300613684,225764362,-1157613894,431554562,-851397632,-1564462559,-1956773835,1438866917,1656286347,-108664831,1988843095,-1568240378,48276478,-1560000885]},{"sector":8,"length":512,"data":[1183515352,48014088,-291258317,49062658,1962949760,21620995,1948597376,17492227,48629447,-1070399487,-1560091485,-391970092,47883010,-1560093021,-224197930,49586946,48367303,854261792,1965898880,-200868090,-2144867582,209005372,48498431,47580871,384499712,1965046912,-465665267,175439874,47580927,117376235,-1975123214,-397371388,-998046201,1975520002,-357017921,-1863823358,79987461,1015083147,-15567570,1174593030,48674902,91875408,-1962621821,1815904496,113706869,131802,3964998,-1595341963,-1744532992,-23165303,1946174781,4668682,1480394100,-16157440,-2096966650,553557638,-23165301,1023435565,1047986197,781434883,321824767,48760575,49415879,179830784,-2014818304,46433024,146297067,-1192039680,-303366128,-397361101,-370474592,-352321096,-1632174091,35580158,-24388629,320618987,320934648,320934689,321524522,321524522,321524522,319427370,321524522,320082730,317985578,321524522,1048777487,1946157806,49062149,-381280021,1031863974,1191605285,1962950016,734497781,-396996410,-998046946,-369652988,1600061066,-1017256565,-1192457387,-521666536,-2091493385,1946813566,-402194684,-633437438,376700930,47980171,1468729227,-129595134,-2080745847,67296262,1048783339,1946157800,-601978096,-1995994366,1187510342,-352321286,-601978099,-1727558910,-1980217719,109312598,-2097020196,193086,1183518068,-96072712,1183516020,855829252,49324992]},{"sector":9,"length":512,"data":[48248459,48774787,-2094369536,2097216126,75399972,-971541238,-1958335228,1452013638,-2082932742,-621346606,-1980217719,1187510870,-352321034,-163133691,-41222144,-15143037,-11074442,1996487286,77064440,-2096577405,187966,-396943244,-997983884,-435254526,-1983370494,82574926,1177552070,-113013,-1072955826,92992127,1048773768,1946157780,2086747143,539787267,2105558854,-428539649,48774787,-1592494848,101384932,192152278,16154243,28837237,855829248,1441288384,46433026,-443850914,-1957313699,571628,1475785448,-502872234,-2097143806,1946158206,114192,-2096964447,33741830,-335788407,-601978061,-1995994366,109313094,184681180,-955943488,44366918,-386107649,-997984048,-2081387774,187966,104401524,74646246,48641675,48905867,1048837675,1962935028,250107655,46433025,-59310250,-2097058328,1048773828,1946157812,-152545529,46433024,-443850914,-1957313699,178412,-1577703704,1183384284,-566328322,108331010,48629447,922681350,922682068,1996423910,-533266684,-25755902,-2096940312,2122517188,108291844,1191476867,1048778869,1962935026,-432110831,175374338,48248575,-2096946968,1048773316,1946157810,-432110831,175439874,48248575,-2096950552,109249220,-955776292,192518,48537856,47580683,1996427892,50981118,184730755,-1207601984,48955393,-397361101,-443875036,-1957313699,-390056980,-2091453049,192062,512440437,1342112472,41911042]}]],[[{"sector":1,"length":512,"data":[-1978565632,512427078,931857112,76023807,233563178,47724287,-402360577,-998047027,108347396,49153791,117376235,-1956773140,1438866917,45673611,-180754432,1048794711,1962935022,74877777,1249834507,512439275,1342112472,41911042,-1609466880,512426722,1066074840,92801023,250340394,47724287,48379647,-2096991000,1967129796,-301531388,1321634562,-964706293,49168003,-1962445568,100729926,1599996652,-1017256565,-1192457387,-790102014,-1957275660,2123039862,-297893114,1282736130,512439787,1342112472,41911042,-1978500096,-669086972,-15758590,-1999009017,-337368569,-667484402,-1744532990,34334800,1074054275,117376117,-1958346002,-1073000505,1048822901,1962935022,105286407,49022465,-443850914,-1957313699,702700,1475634920,-533296298,-1983892734,1183448134,-364999688,-1444391422,46433270,737822345,75377656,-1325207391,737727235,-197229576,359989250,1965898880,-499219696,158674946,-397371220,-997982572,-499219710,192163842,125763339,49561219,-2095483904,1946158206,-129564922,-2097127704,192574,1191118452,7334140,49561219,1462138112,-2080462616,2122515140,158597124,16285315,887620469,-264338688,158597122,16547459,1122501493,-92864768,-18290602,-2096839549,193598,113708404,2097890,-26482601,1577239683,1575324511,-326412861,-1662468045,-465665037,74711042,48966576,1352147120,-1946289176,1438866917,-1070338933,-1192001816,-397410256,-997982744]},{"sector":2,"length":512,"data":[-264338686,359993346,47464067,-1341885440,-1341985960,-397371272,-997982772,1575324418,-326412861,-402652488,1448604491,-2147060085,242559548,47980171,47974019,1178569474,-13419797,2083536000,960266291,1043934847,192217822,1966095488,-502872314,-1409273854,-774927464,65130977,65130959,820609992,1015085451,-2147124176,-478267076,-1996202357,1590070079,1575324511,-326412861,-402652488,-1101597981,233505451,1178076298,-1207601916,149618689,3964998,-1070338443,1575324510,-326412861,-1946911256,1438866917,1944644747,1575324660,-326412861,-1946916376,1438866917,1609100427,1575324660,-326412861,-1946921496,1438866917,11791499,1426284777,-326898549,-1957275900,1149896310,-2086037498,-167349248,1950352964,-18426,-167716119,1946224196,105676806,-2131825888,-2147350964,871302756,38046144,2122971275,105182974,-1978698488,-1952970940,-152841768,16939655,1015754868,184843307,1460829951,-1979419393,1352140612,-2096933400,1183385284,71601150,-956004032,33489476,-1979425653,126354502,1156999915,1316291590,31653505,1149906293,-397371385,-998047639,1975520002,1980155701,-954567167,50332740,-1744354166,-472786805,41584582,17090305,-1195840765,-397409792,-998047478,71600386,108314635,134630528,1283496939,29295622,1183667968,1149915140,-397371385,-998047018,-28931834,1962835513,-13506301,704923274,-1956684060,1438866917,1586228363,352027396,-75296387,-166953984,1073845895]},{"sector":3,"length":512,"data":[28837236,855829248,1438866880,-326898549,-1957275900,-13433738,56617046,-1979530109,52692548,1014301244,134628598,1149898613,-661940217,-2013862959,1946223226,721718055,1183384644,2126515196,1962889243,121932292,1407733912,113541890,1962690107,105676807,-16608,-1996209013,38061828,-947191808,-443850914,-1957313699,82609132,-625060265,-335596799,105155095,8628632,-397014156,-997982343,24395778,147227463,44185145,-947133581,-443850914,-1957313699,73305068,33443712,-1017256565,1458342741,45136727,1962950531,-1207493079,1609039877,855995649,619420096,-1543625664,-1297939792,80188930,-964493311,-29047036,915013630,1317733046,-1898411004,649408,-443851169,-873872547,-285637888,-2143160205,2005663457,-1951532030,1946265854,-1053079486,-796191373,-1464995837,53769217,132546,1149892491,-1947800578,51148030,-28538375,-1991720661,50719493,-28508423,-628308341,31914625,-1943665292,-1996308962,650314367,46270150,-115454,-24435340,-1464995837,-1947044863,-1053079298,-796148365,-1464995837,65172481,132546,1149892491,-1947800578,-1073018809,-661781388,-31058965,1946337806,1037601808,91488742,-1172402650,-348681470,108497853,1508425779,1959148288,1073816589,1307088960,-32672768,199818829,-1778027520,-1695855026,-1013333965,-28996783,57934248,1095354411,2147465793,-1072284890,-788236798,-1946847766,1925579713,1925317397,601028365,-389665854,141885452]},{"sector":4,"length":512,"data":[-355347721,-1070340747,1364378457,1946164712,-24422632,-234622837,-16890681,108497407,-684992885,-27948726,-1017489064,-768389037,1347572254,1342177720,1256726278,147096321,536869507,41179994,1472451083,172919638,-1962654069,2123040342,119428872,-1073048580,-108850316,185496842,-1341490734,-604526035,-150941053,-1829270566,-1072967117,-235470220,-1829636205,805622663,41302332,-1951783164,1975716802,1325762786,-2012903764,995098436,1492480759,-1017290914,-1947432107,-2013920162,1948254614,1107474446,-779368141,57876941,-151930903,-2147379577,-2115435659,139365120,503731851,-54512889,-259303849,1709439627,-230683976,1362261422,-903098485,-854531255,-268198879,-1274776675,189393673,1177515200,-1174404423,1085539012,74654157,887818676,443858955,-338195623,-812953147,567134763,-1645214820,162792563,-1073014037,-2013915531,1950351766,106859275,1964654464,82573315,470333689,-1962773927,-379625786,1317794092,106334984,567099572,162792563,-337383957,-411713525,26642422,-1962249152,440369370,-336067723,146340310,1439755036,1586228363,107446276,1438866895,1465314443,142508806,-1086819072,1451950358,71731974,-402164408,661782611,915097835,1950876006,1962359569,38046477,1443645065,1577073384,-964480909,1727955204,184840961,-1207536174,-342228993,-2082829539,-607055933,-338492495,567101620,-1986860686,39094532,23475849,1594343475,1575324510,206474179,1278867339,-2096335870]},{"sector":5,"length":512,"data":[-25099066,-227212954,-1958745095,1914438618,-1898738887,1979136961,303970566,-2094632191,-607055933,-338564143,-147067951,-654112395,721514657,-1262448936,1914817866,1979136781,303466756,75993601,12833163,0,0,0,0,0,0,0,1766596675,1918988898,539828345,1126777640,1920561263,1952999273,1667845408,1869836146,1126200422,544240239,892877105,1968046336,1881173100,1953393007,1629516389,1734964083,1852140910,658804,1543527471,2764330,774766638,20971520,1663369536,1044193338,175318304,1931804672,6029322,3014748,1543515694,23552,1631780864,1953459822,1229933088,543236174,2004116846,543912559,1986622052,1867382885,1852121204,1751610735,1835363616,7959151,1868787273,1667592818,1970151540,1919246957,543584032,1634886000,1702126957,1224766322,1818326638,1881171049,1835102817,1919251557,1919501312,1869898597,1847622002,1696625775,2037674093,1668172032,1701999215,1142977635,1981829967,1769173605,28271,2038,0,0,486,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18219008,0,0,0,0,0,0,0,0,0,0,0,-2122252288,65921,0]},{"sector":6,"length":512,"pattern":0,"data":[0,0,0,0,0,33691136,201919768,134679564,318767103,-16641523,1180648251,1598377033,1330007625,0,83886080,83886080,1,0,258,0,518,0,900,0,1026,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65536,0,0,0,0,0,0,0,0,0,41025536,1819635240,721430892,2301997,0,0,0,0,8192,2573]},{"sector":7,"length":512,"pattern":0,"data":[21387853,6,32,1,2033057792,2136,30,1]},{"sector":8,"length":512,"data":[115408896,60300059,61808945,61816882,61809459,61809716,61809973,61824566,61810231,61811256,61810745,61810992,61832027,64367421,60325640,61145097,61153831,61160492,61161006,56840304,56842617,56837734,56837991,56836963,56840818,56839276,61161263,61177181,60295693,78248708,56836449,56840047,56837477,56841589,56838505,56837220,56838248,56841332,56839790,56841075,61169453,61177440,78249218,61176924,61159995,56840561,56838762,56839019,56842360,56836706,56839533,56842103,56841846,56842874,78249473,95056426,76674824,96673824,74891072,90767617,90767874,90768131,90768388,90768645,90768902,90769159,90769416,90769673,90767360,73064224,70840080,81147648,81147905,81148162,81145091,81146884,81147141,81147398,81144583,81146120,81146377,81146634,81145867,79375884,102891520,0,0,17104968,115408896,60300059,61808945,61816882,61809459,61809716,61809973,61824566,61810231,61811256,61810745,61810992,61824813,61811517,60325640,61145097,56840561,56842103,56837477,56840818,56841332,56842617,56841589,56838505,56840047,56840304,61176667,61177181,60295693,78248708,56836449,56841075,56837220,56837734,56837991,56838248,56838762,56839019,56839276,61159995]},{"sector":9,"length":512,"data":[61153831,61177440,78249218,61176924,56842874,56842360,56836963,56841846,56836706,56839790,56839533,61160492,61161006,61161263,78249473,95056426,76674824,96673824,74891072,90767617,90767874,90768131,90768388,90768645,90768902,90769159,90769416,90769673,90767360,73064224,70840080,81147648,81147905,81148162,81145091,81146884,81147141,81147398,81144583,81146120,81146377,81146634,81145867,79375884,102891520,-16185337,-16382716,197121,-2063632385,1962898431,1996453375,807337983,554836014,605496098,825370149,319822104,789976095,739585297,1397816571,1465274961,1085802014,-388461056,-527825784,58064700,-1962680599,2145616344,1425768448,-622263426,-773598973,-2134575389,-2127677579,1610699838,-164727807,67114758,116795252,1946681367,1404981280,-25082367,343081300,1965308462,1424916980,1422295297,-1976674303,50587908,918826584,-1960443564,-1967027704,637540118,-402497281,-1024064674,-1744079864,-1976641533,-385716825,-1024064805,738554884,47442272,-1024000206,-2147257341,-896909105,843112832,-1979550471,45869509,-167566104,41157826,-1360411254,51898370,1946469110,-398791915,-1024064750,-2147060728,-1796639036,79885826,-1024055435,-1979550717,42461637,-167579416,1282671810,-337112085,146994690,-998242700,40757622,1946469110,66879543,1625883509,133988354,514851957,-58704917,-1341885158]}],[{"sector":1,"length":512,"data":[-2144146661,74783740,703274416,1965816960,-350441468,1965898784,-350244860,46917912,-1024000206,-2147257341,-896909105,843112832,-1979550471,35383749,1971373302,79885886,-2136916108,1745664,-973071197,-2147454714,-855457560,-373279973,-990510599,-165907072,494142658,1576576,43116552,1574646,-369527544,-990510467,537293952,-352315346,585140791,1962940422,405145647,-338415104,-2134575581,-1070457740,1640070,242532362,1519136,-1427512270,-2134575615,-719190924,-804650261,1513096,-402509591,-1024065018,-162958328,1098122434,7472839,-4713932,-1070378753,-58668208,-2147125806,2130712614,1646218,-167649304,544475330,-645211341,-1265661394,-425982,179309172,1648374,49004802,430096435,31451392,-1024065360,856388612,786008795,46245770,-58704917,-2145881014,326389500,-1024009421,-2147257341,-896917297,841015680,-1979419399,-2145981499,292901628,1574646,-2146798208,-2147477706,1576576,1975519872,-229366,-58718092,-385649588,-2098659091,22603777,1947190006,432308278,1946993398,180650030,1946731254,180650022,1946469110,23116574,1953037440,1778155528,12259701,-1993410048,771839006,22417036,-385792791,317194407,79885825,-443939724,-1024003605,-391613437,97321279,-402575127,-1024065282,-167218172,57936066,-352249623,-337080194,-661940224,-773598901,146994915,-1959917708,-352232825,79885874,-1959917708,-352233337,63108646,-2010246796]},{"sector":2,"length":512,"data":[771840302,22448011,22717230,771808489,771840418,22316939,22717230,-352269079,-990474190,-166431360,67115014,-1159134348,403603456,12059648,-2146899067,-83879898,1350894008,551952560,1476446440,-1561782835,771796992,22625920,776565760,22617738,-13448194,1497270318,786682113,22329227,976111182,773485572,1962949760,12052724,-1590765429,-790101670,1019448064,-350718944,1021587987,772633600,22329131,1421280046,76164609,771797736,22560384,-96700932,551952560,-1207935768,365793538,-158321173,443877570,-990510925,-166496896,134223878,645924724,-336134120,421431301,-346504448,548469258,1323835622,-100275456,551952560,-100654872,1583292167,1482381658,-434065201,1042464,4800128,-1610124281,-658898843,784592387,22560384,-100043268,-1342099736,-77273426,1048587971,1979449688,485030409,-424824831,1355021156,-1959898797,-469672418,-64728991,1642463796,1544457006,1274995201,-430378379,1482381665,-49725,-1946541196,-1962927050,994461438,1912635958,-2143909116,439761664,1476687104,-1979750679,473336069,-2144419072,-67020738,1625559412,-1973295981,-427815712,-421493151,-389835935,-386203769,1625555115,1979596027,243333642,1528823959,1023359209,-99977734,9899648,719936272,125183,-1963306813,-2147477722,-992972572,-992951088,-1751071536,973546496,-164203296,1073780486,243281781,-1337982825,-1340021216,2418925,9897718,-1978305152,1632452]},{"sector":3,"length":512,"pattern":0,"data":[9897718,-2146863744,-134179034,9905672,9905792,-1006938049,62148944,-1759084294,-397390080,-430440409,12188512,-1761151456,242561024,-855705630,243327605,-343932777,116822024,1965031575,1482291949,-919383613,44590308,-1017513248,567095476,171827334,1023767043,225837844,783949582,-855002103,-840682975,109979169,1236533292,236855757,48806431,-853210696,4241441,1048828046,1962934400,515439124,8430336,-1560274269,113704988,4063362,113716987,340,1443793966,113651201,-1207959207,-661721088,788528800,520181922,772330938,22560384,776828412,22808263,-953286450,-2113839610,-1532940800,109522432,-1557266260,-1590820700,-2027028314,771796486,-1107253597,-2126118573,1929467134,1015033368,772175147,-349633338,1015033581,786920745,-349502266,157858529,60033,-355269455,-1070452300,1850286541,1920102243,544498533,542330692,1936876918,175009641,9229]},{"sector":4,"length":512,"pattern":0,"data":[25451085,6,32,1,-1473380352,2198,30,1]},{"sector":5,"length":512,"data":[119472128,64363291,68432166,68432514,68432674,68432935,68433192,68433429,68433802,68433953,68434311,68432005,68483113,68443949,64388872,65208329,60899681,60906106,60900709,60904050,60904564,60905849,60904821,60901737,60903279,60903536,101974529,65219108,64358925,82311940,60903793,60904307,60900452,60900966,60901223,60901480,60901994,60902251,60902508,60902765,65217943,65248486,82312450,65224252,60905335,60905592,60900195,60905078,60899938,60903022,65224492,65220155,65220410,65219389,82312705,99119658,80738056,100737056,78954304,94830849,94831106,94831363,94831620,94831877,94832134,94832391,94832648,94832905,94830592,77127456,74903312,85210880,85211137,85211394,85208323,85210116,85210373,85210630,85207815,85209352,85209609,85209866,85209099,83439116,106954752,436667395,591407899,1549622110,24052072,25166201,1869178209,1627398261,1970235749,1431257465,-1937210624,6198931,-1802794620,-1718708095,442368154,437983998,65535,0,4718592,261,454756127,556860374,1077019629,590545901,607388653,624231405,1580598253,641139693,708314093,674825197,691012589,1596785645,725418989,2131231725,590806,1366361059,1467417505,1164247969,1383203745,1416889249,1501103009,1433732001,1231618977,1332675489]},{"sector":6,"length":512,"data":[1349518241,2069562273,2103247843,168625123,-83622954,1096877287,1400046497,1147405217,1181090721,1197933473,1214776225,1248461729,1265304481,1282147233,976946081,572982243,2120221667,-50199581,2086405351,1517945827,1484260257,1130562465,1450574753,1113719713,1315832737,1298989985,1009517473,1043203043,1060045795,-33487901,1915356391,-150469144,538969295,-1086323199,16843956,33686951,50529703,67372455,84215207,101057959,117900711,134743463,151586215,1447,-551549529,-284162920,922748022,939590932,956433684,755172628,872678676,889521428,906364180,721880340,822609172,839451924,856294676,806028564,772539668,1273,134678112,84213513,33685254,2013200387,1946125567,1979675903,-35073,539897886,589439250,639968279,421015858,337580816,756100886,-50648043,1381061456,102651734,-1912586056,76081368,-12787574,-555154571,-2116515069,-2147450909,58610939,-788276503,-152841757,930447556,-1841397458,1946263041,386332206,661914624,1509110,1344304136,1174492094,22740609,976098419,-2114685660,-2130619154,1476483782,-385578450,777519875,26359492,-1979151578,387353281,1627334144,56551426,1946731254,-670853109,-1415083474,47966466,1946469110,-379573243,-13499693,1946403574,1087340547,-511653238,1962488384,-372930046,619184827,79885827,-980811148,-402477335,-1024064745,-350915580,51570746,1946731254,1992589318,-167602967,661980354]},{"sector":7,"length":512,"data":[1946403574,-372930046,-253230457,79885826,334187636,-167580696,108267714,-378092416,-1024064915,-2143849468,58000380,-2147327767,74778620,1005264560,1964702848,-350507004,469532722,498074741,-58709525,-1341885141,1008790300,-1341885139,-384242913,-13499701,1946403574,1087340547,-511653238,1962488384,-372930046,-990510565,-163678848,1064568002,-1560248159,480444442,1896269312,-1058504704,857459970,33155520,1971373302,79885852,243277172,-402128872,116785809,1963458584,41806329,1954596086,405676038,-1976046848,403055328,137327872,838866982,-165418028,477397188,109494322,-1073086439,773852788,-466485225,-167662871,74744004,49009954,378064906,820576279,34007042,1946731254,79885897,113721716,305397874,1358954424,-883900365,1976761472,405176325,512392960,-538443751,146994689,-617406348,-1976641142,-2147290481,175439865,653658800,-1056833511,-1070398741,-385869406,11534815,1946469110,-1965346037,-1484116263,1005257471,1951071360,1325170712,-617409676,1946403574,550469635,-511653238,1962488352,-339375612,1392279574,116789621,1971322904,389447690,243302400,176160792,-2146798144,141885436,1951202432,15591683,-402554135,-1024065192,-2143914993,-1024058940,-2144439284,-1024062780,-2144963576,-1024062780,-1155632124,-58719842,-2146929560,292907516,-100663109,-1843492562,244067841,1156120980,11004161,-167701784,74712258,-236198518,1946403574,20965544,820577741]},{"sector":8,"length":512,"data":[16705537,1946469110,146994696,417923956,-1870730495,-1744770072,-783558517,-152841757,125044930,-1870165202,-164435199,125043906,-1903719634,-165221631,292815810,-1758558162,-2020921855,-1557266036,-588709480,-1750979072,-2020921855,-1557266038,-857144936,-1875711232,1971373302,403109396,57934848,-2147435799,67115022,-343605064,405176328,28900096,548425861,-924311322,365778944,-1342135575,1048587776,1946157463,512372297,-872545897,-2010185934,-788424898,-1215615261,1179517280,1946434094,1015033370,-386632448,-661978953,26779950,-1962880792,1948269763,840166168,1946172644,-1221906931,53346656,771843255,-1293417334,1048587776,1979449750,548469308,1558716646,-1862092800,904598989,146994832,11737717,1971373302,403109395,125044736,1582720,-2012877833,-1023403746,-99947688,551952560,-352301336,548469253,552083686,520616448,1499094623,-1328588709,-400497120,1048576015,1946615881,6660103,-301737798,1048587971,1979449750,787020297,-424759295,784595812,26623616,-100043268,-1342104344,-77273427,1364414659,-1675719890,1348592641,37026852,-1959894554,-503211506,-227193858,1499588184,1036212315,594870271,473336826,1191086848,-2110375098,-1962642944,989888566,1962940982,1726568452,-1996125697,-1023402954,-1774288850,292879361,-460103452,216042081,-2040404352,-1822300448,-7870269,11266298,1023107300,-99977730,9899648,954817312,1979333887,243333642,1527775383,-385930519]},{"sector":9,"length":512,"pattern":0,"data":[1354956801,388401914,1894023168,-992951088,-992951088,604018592,1960851975,-1761151434,796213248,9899648,-434065344,-387076064,116785188,1971323031,-389772779,116785176,1971323031,-1759084535,638121984,645922967,1480523927,1364247547,-2131098700,1325438758,2615376,-77535656,-165674823,805345030,-136180107,-495596290,9899648,-1878463616,9897718,-85101280,1371756633,1692715315,-85982552,817152857,-528080435,1912801853,51657989,521014646,-1274450758,841075977,639749604,2885262,567101876,-1172369890,163054374,-1205744347,-661782464,8404611,-99322624,-1560273224,446890112,1876736,8521415,788201534,26347207,-1943142400,771855374,26674886,-268388352,-23013234,-1767756033,330964737,1048587785,1979449750,113716813,13500826,-1677277394,771785217,771794081,11273863,10789678,10920238,-1375303890,-1499255296,22265344,1526628678,773354241,1965767808,80096774,787344169,1965636736,80096999,-1159599317,-360642138,78708736,833940179,567132210,1868787273,1667592818,1329864820,1702240339,1869181810,604834414]}]],[[{"sector":1,"length":512,"pattern":0,"data":[24926797,6,32,1,1403060224,2190,30,1]},{"sector":2,"length":512,"data":[118947840,63839003,65347889,65348146,65344819,65348660,65348917,65349174,65351479,65349688,65349945,65355056,65355745,101450241,63864584,64684041,60379505,60381047,60376421,60379762,60380276,60381818,60380533,60377449,60378991,60379248,67279489,64694827,63834637,81787652,60375393,60380019,60376164,60376678,60376935,60377192,60377706,60377963,60378220,67279252,67276420,64708131,81788162,64699964,60381561,60381304,60375907,60380790,60375650,60378734,60378477,64699180,64698926,64708397,81788417,98595370,80213768,100212768,78430016,94306561,94306818,94307075,94307332,94307589,94307846,94308103,94308360,94308617,94306304,76603168,74379024,84686592,84686849,84687106,84684035,84685828,84686085,84686342,84683527,84685064,84685321,84685578,84684811,82914828,106430464,723196419,1549622080,23855460,24838515,1869178209,2114933,1869178209,-1610604427,-1549622910,-2063587440,-1751806582,220659808,-62112,33536,0,4718592,261,454756119,556860366,1077019621,590545893,607388645,624231397,1580598245,641139685,708314085,674825189,691012581,1596785637,725418981,2131231717,590798,1366361051,1467417497,1164247961,1383203737,1416889241,1501103001,1433731993,1231618969,1332675481,1349518233,2069562265]},{"sector":3,"length":512,"data":[2103247835,168625115,-83622962,1096877279,1400046489,1147405209,1181090713,1197933465,1214776217,1248461721,1265304473,1282147225,976946073,572982235,2120221659,-50199589,2086405343,1517945819,1484260249,1130562457,1450574745,1113719705,1315832729,1298989977,1009517465,1043203035,1060045787,-33487909,1915356383,-150469152,538969287,-1086323207,16843948,33686943,50529695,67372447,84215199,101057951,117900703,134743455,151586207,1439,-551549537,-284162928,922748014,939590924,956433676,755172620,872678668,889521420,906364172,721880332,822609164,839451916,856294668,806028556,772539660,1265,134678104,84213513,33685254,2013200387,1946125567,1979675903,-35073,539897886,589439250,639968279,421015858,337580816,756100886,-50648043,1381061456,102651734,-1912586056,76081368,-12787574,-555154571,-2116515069,-2147450909,58610939,-788276503,-152841757,930447556,-1975615186,1946260993,386332206,661914624,1509110,1344304136,1174492094,22609537,976098419,-2114685660,-2130619154,1476483270,-385578450,777519875,25835204,-1979151578,387353281,1627334144,56551426,1946731254,-670853109,-1549301202,47966466,1946469110,-379573243,-13499693,1946403574,1087340547,-511653238,1962488384,-372930046,619184827,79885827,-980811148,-402477335,-1024064745,-350915580,51570746,1946731254,1992589318,-167602967,661980354,1946403574,-372930046]},{"sector":4,"length":512,"data":[-253230457,79885826,334187636,-167580696,108267714,-378092416,-1024064915,-2143849468,58000380,-2147327767,74778620,1005264560,1964702848,-350507004,469532722,498074741,-58709525,-1341885141,1008790300,-1341885139,-384242913,-13499701,1946403574,1087340547,-511653238,1962488384,-372930046,-990510565,-163678848,1064568002,-1560248159,480444442,1896269312,-1058504704,857459970,33155520,1971373302,79885852,243277172,-402128872,116785809,1963458584,41806329,1954596086,405676038,-1976046848,403055328,137327872,838866982,-165418028,477397188,109494322,-1073086439,773852788,-466485225,-167662871,74744004,49009954,378064906,820576279,34007042,1946731254,79885897,113721716,305397874,1358954424,-883900365,1976761472,405176325,512392960,-538443751,146994689,-617406348,-1976641142,-2147292529,175439865,653658800,-1056833511,-1070398741,-385869406,11534815,1946469110,-1965346037,-1484116263,1005257463,1951071360,1325170712,-617409676,1946403574,550469635,-511653238,1962488352,-339375612,1392279574,116789621,1971322904,389447690,243302400,176160792,-2146798144,141885436,1951202432,15591683,-402554135,-1024065192,-2143914993,-1024058940,-2144439284,-1024062780,-2144963576,-1024062780,-1155632124,-58719850,-2146929560,292907516,-100663109,-1977710290,244067841,1156120972,11004161,-167701784,74712258,-236198518,1946403574,20965544,820577741,16705537,1946469110]},{"sector":5,"length":512,"data":[146994696,417923956,-1870730495,-1744770072,-783558517,-152841757,125044930,-2004382930,-164435199,125043906,-2037937362,-165221631,292815810,-1892775890,-2020921855,-1557266044,-588709488,-1885196800,-2020921855,-1557266046,-857144944,-1875711232,1971373302,403109396,57934848,-2147435799,67115022,-343605064,405176328,28900096,548425861,-924311322,365778944,-1342135575,1048587776,1946157455,512372297,-872545905,-2010185934,-788426946,-1215615261,1179517276,1946434094,1015033370,-386632448,-661978953,26255662,-1962880792,1948269763,840166168,1946172644,-1221906931,53346652,771842231,-1293417334,1048587776,1979449742,548469308,1558716646,-1862092800,904598989,146994832,11737717,1971373302,403109395,125044736,1582720,-2012877833,-1023403746,-99947688,551952560,-352301336,548469253,552083686,520616448,1499094623,-1328588709,-400497120,1048576015,1946615881,6660103,-301737798,1048587971,1979449742,787020297,-424759295,784595812,26099328,-100043268,-1342104344,-77273427,1364414659,-1809937618,1348592641,37026852,-1959894554,-503213554,-227193858,1499588184,1036212315,594870271,473336826,1191086848,-2110375098,-1962642944,989888566,1962940982,1726568452,-1996125697,-1023402954,-1908506578,292879361,-460103452,216042081,-2040404352,-1822300448,-7870269,11266298,1023107300,-99977730,9899648,954817312,1979333887,243333642,1527775383,-385930519,1354956801,388401914]},{"sector":6,"length":512,"pattern":0,"data":[1894023168,-992951088,-992951088,604018592,1960851975,-1761151434,796213248,9899648,-434065344,-387076064,116785188,1971323031,-389772779,116785176,1971323031,-1759084535,638121984,645922967,1480523927,1364247547,-2131098700,1325438758,2615376,-77535656,-165674823,805345030,-136180107,-495596290,9899648,-1878463616,9897718,-85101280,1371756633,1692715315,-85982552,817152857,-528080435,1912801853,51657989,521014646,-1274452806,841075977,639749604,2885262,567101876,-1172369890,163054366,-1205744347,-661782464,8404611,-99322624,-1560273224,446890112,1876736,8521415,788201534,25822919,-1943142400,771853326,26150598,-268388352,-23013234,-1901973761,196747009,1048587785,1979449742,113716813,13500818,-1811495122,771785217,771794081,11273863,10789678,10920238,-1375303890,-1499255296,22265344,1493074246,773354241,1965767808,80096774,787344169,1965636736,80096999,-1159599317,-360642146,78708736,833940179,567132210,1868787273,1667592818,1329864820,1702240339,1869181810,604834414]},{"sector":7,"length":512,"pattern":0,"data":[21781069,6,32,1,-1475346432,2142,30,1]},{"sector":8,"length":512,"data":[115802112,60693275,62202161,62202418,62233651,62202932,62203189,62203446,62205751,62203960,62204217,62209328,62209831,62217869,60718856,61538313,57233777,57235319,57230693,57234034,57234548,57235833,57234805,57231721,57233263,57233520,61571722,61549099,60688909,78641924,57229665,57234291,57230436,57230950,57231207,57231464,57231978,57232235,57232492,61554837,61547397,61543831,78642434,61554236,57236090,57235576,57230179,57235062,57229922,57233006,57232749,61553452,61553198,61562669,78642689,95449642,77068040,97067040,75284288,91160833,91161090,91161347,91161604,91161861,91162118,91162375,91162632,91162889,91160576,73457440,71233296,81540864,81541121,81541378,81538307,81540100,81540357,81540614,81537799,81539336,81539593,81539850,81539083,79769100,103284736,1529551642,23645,0,4718592,261,454756071,556860318,1077019573,590545845,607388597,624231349,1580598197,641139637,708314037,674825141,691012533,1596785589,725418933,2131231669,590750,1366361003,1467417449,1164247913,1383203689,1416889193,1501102953,1433731945,1231618921,1332675433,1349518185,2069562217,2103247787,168625067,-83623010,1096877231,1400046441,1147405161,1181090665,1197933417,1214776169,1248461673,1265304425,1282147177]},{"sector":9,"length":512,"data":[976946025,572982187,2120221611,-50199637,2086405295,1517945771,1484260201,1130562409,1450574697,1113719657,1315832681,1298989929,1009517417,1043202987,1060045739,-33487957,1915356335,-150469200,538969239,-1086323255,16843900,33686895,50529647,67372399,84215151,101057903,117900655,134743407,151586159,1391,-551549585,-284162976,922747966,939590876,956433628,755172572,872678620,889521372,906364124,721880284,822609116,839451868,856294620,806028508,772539612,1217,134678056,84213513,33685254,2013200387,1946125567,1979675903,-35073,539897886,589439250,639968279,421015858,337580816,756100886,-50648043,1381061456,102651734,-1912586056,76081368,-12787574,-555154571,-2116515069,-2147450909,58610939,-788276503,-152841757,930447556,1514045742,1946248705,386332206,661914624,1509110,1344304136,1174492094,22544001,976098419,-2114685660,-2130619154,1476483014,-385578450,777519875,22689476,-1979151578,387353281,1627334144,56551426,1946731254,-670853109,1940359726,47966466,1946469110,-379573243,-13499693,1946403574,1087340547,-511653238,1962488384,-372930046,619184827,79885827,-980811148,-402477335,-1024064745,-350915580,51570746,1946731254,1992589318,-167602967,661980354,1946403574,-372930046,-253230457,79885826,334187636,-167580696,108267714,-378092416,-1024064915,-2143849468,58000380,-2147327767,74778620,1005264560]}],[{"sector":1,"length":512,"data":[1964702848,-350507004,469532722,498074741,-58709525,-1341885141,1008790300,-1341885139,-384242913,-13499701,1946403574,1087340547,-511653238,1962488384,-372930046,-990510565,-163678848,1064568002,-1560248159,480444442,1896269312,-1058504704,857459970,33155520,1971373302,79885852,243277172,-402128872,116785809,1963458584,41806329,1954596086,405676038,-1976046848,403055328,137327872,838866982,-165418028,477397188,109494322,-1073086439,773852788,-466485225,-167662871,74744004,49009954,378064906,820576279,34007042,1946731254,79885897,113721716,305397874,1358954424,-883900365,1976761472,405176325,512392960,-538443751,146994689,-617406348,-1976641142,-2147304817,175439865,653658800,-1056833511,-1070398741,-385869406,11534815,1946469110,-1965346037,-1484116263,1005257415,1951071360,1325170712,-617409676,1946403574,550469635,-511653238,1962488352,-339375612,1392279574,116789621,1971322904,389447690,243302400,176160792,-2146798144,141885436,1951202432,15591683,-402554135,-1024065192,-2143914993,-1024058940,-2144439284,-1024062780,-2144963576,-1024062780,-1155632124,-58719898,-2146929560,292907516,-100663109,1511950638,244067841,1156120924,11004161,-167701784,74712258,-236198518,1946403574,20965544,820577741,16705537,1946469110,146994696,417923956,-1870730495,-1744770072,-783558517,-152841757,125044930,1619495726,-164435199,125043906,1585941294,-165221631]},{"sector":2,"length":512,"data":[292815810,1596885038,-2020921855,-1557266084,-588709536,1604464128,-2020921855,-1557266086,-857144992,-1875711232,1971373302,403109396,57934848,-2147435799,67115022,-343605064,405176328,28900096,548425861,-924311322,365778944,-1342135575,1048587776,1946157407,512372297,-872545953,-2010185934,-788439234,-1215615261,1179517274,1946434094,1015033370,-386632448,-661978953,23109934,-1962880792,1948269763,840166168,1946172644,-1221906931,53346650,771840695,-1293417334,1048587776,1979449694,548469308,1558716646,-1862092800,904598989,146994832,11737717,1971373302,403109395,125044736,1582720,-2012877833,-1023403746,-99947688,551952560,-352301336,548469253,552083686,520616448,1499094623,-1328588709,-400497120,1048576015,1946615881,6660103,-301737798,1048587971,1979449694,787020297,-424759295,784595812,22953600,-100043268,-1342104344,-77273427,1364414659,1679723310,1348592641,37026852,-1959894554,-503225842,-227193858,1499588184,1036212315,594870271,473336826,1191086848,-2110375098,-1962642944,989888566,1962940982,1726568452,-1996125697,-1023402954,1581154350,292879361,-460103452,216042081,-2040404352,-1822300448,-7870269,11266298,1023107300,-99977730,9899648,954817312,1979333887,243333642,1527775383,-385930519,1354956801,388401914,1894023168,-992951088,-992951088,604018592,1960851975,-1761151434,796213248,9899648,-434065344,-387076064,116785188,1971323031]},{"sector":3,"length":512,"pattern":0,"data":[-389772779,116785176,1971323031,-1759084535,638121984,645922967,1480523927,1364247547,-2131098700,1325438758,2615376,-77535656,-165674823,805345030,-136180107,-495596290,9899648,-1878463616,9897718,-85101280,1371756633,1692715315,-85982552,817152857,-528080435,1912801853,51657989,521014646,-1274465094,841075977,639749604,2885262,567101876,-1172369890,163054318,-1205744347,-661782464,8404611,-99322624,-1560273224,446890112,1876736,8521415,788201534,22677191,-1943142400,771841038,23004870,-268388352,-23013234,1587687167,-608559359,1048587784,1979449694,113716813,13500770,1678165806,771785217,771794081,11273863,10789678,10920238,-1375303890,-1499255296,22265344,1476297030,773354241,1965767808,80096774,787344169,1965636736,80096999,-1159599317,-360642194,78708736,833940179,567132210,1868787273,1667592818,1329864820,1702240339,1869181810,604834414]},{"sector":4,"length":512,"pattern":0,"data":[27744845,6,32,1,-789512192,2233,30,1]},{"sector":5,"length":512,"data":[121765888,66657051,68201777,68200498,68166451,68166708,68166965,68169526,68167223,68168248,68167737,68167984,68181805,68168509,66682632,67502089,63197553,63199095,63194469,63197810,63198324,63199609,63198581,63195497,63197039,63197296,104268289,104268803,66652685,84605700,63193441,63198067,63194212,63194726,63194983,63195240,63195754,63196011,63196268,70100388,67516987,70090887,84606210,67518012,63199866,63199352,63193955,63198838,63193698,63196782,63196525,67518252,67510574,67510823,84606465,101413470,83031816,103030816,81248064,97124609,97124866,97125123,97125380,97125637,97125894,97126151,97126408,97126665,97124352,79421216,77197072,87504640,87504897,87505154,87502083,87503876,87504133,87504390,87501575,87503112,87503369,87503626,87502859,85732876,109248512,723196419,1549622080,24379756,25035134,26018181,27132311,1869178209,2114933,1869178209,1329690997,1700855893,544567145,-1585274880,663790498,-1953922048,-1902607980,-2063557991,-1751806582,-2004680608,1586926476,-31840512,-15066342,1578852607,-15000293,255,0,83904512,1107296257,-115664121,270610691,272642564,270742276,270808068,270873860,274609668,270939908,271202308,271071492,271134724,274672900,271269124,-109115388,100665603]},{"sector":6,"length":512,"data":[-1001295612,-1000900861,-1002085117,-1001229821,-1001098237,-1000769277,-1001032445,-1001821949,-1001427197,-1001361405,108747523,108879108,-116781820,184222723,-1002348283,-1001164029,-1002150909,-1002019325,-1001953533,-1001887741,-1001756157,-1001690365,-1001624573,104479491,102901508,108945412,184353284,108813317,-1000703484,-1000835069,-1002216701,-1000966653,-1002282493,-1001492989,-1001558781,104606723,104738308,104804100,184418564,192031237,-218691578,606085124,-675332090,-905903868,-905838075,-905772283,-905706491,-905640699,-905574907,-905509115,-905443323,-905377531,-905969659,-1143005179,-1712386044,926351364,926417157,926482949,925696773,926155781,926221573,926287365,925566725,925960197,926025989,926091781,925895429,472779781,-2097151995,151521030,100992255,50463231,-8913152,-9175164,-9044108,520093558,304098864,388178465,841360676,270080049,370417427,355275055,1358756652,1448235347,-1207558569,-661782464,-1979414296,1979661536,64940291,-478029685,-75497345,-385647020,-472841254,-990452783,775386496,28655233,779354561,1509110,-165186556,134223622,-1102045068,-2126118573,1929468158,607792660,-293473163,-964624044,777519448,65602698,-1003595773,637646134,-1047918453,1513098,39911206,-167551256,192153794,785908632,47097738,-167584791,91489474,-739680212,-151047678,57934786,-1975464064,1088520394,41220402,-1142307446,52750338,1946469110]},{"sector":7,"length":512,"data":[-372930046,401081006,79885827,988484980,-167570712,108267714,-378092416,-1024064876,-165186300,41157570,-2014722678,49342466,1946469110,-401347764,-1024064789,-2147060728,1844016836,79885826,-58706060,-385649405,-58719648,-1341885177,-2143556834,74783484,854268848,1964768384,-350375932,737968169,481297525,758915307,531629173,-873916181,-151047678,57934786,-1975464064,1088520394,41220402,468305290,-2134575614,-1024049547,-1589677052,446890112,1876736,7407302,46196864,-1070392371,-167642647,477462724,1946469110,403603485,-1847064576,403109378,-109770752,-167608855,108298436,1584672,-527812629,1574434,638070645,-734920680,-990501909,840725632,419858112,1958742528,388898830,-370920960,-990510678,570717312,167963605,387352784,36759808,-167639320,1232341186,1946469110,1913046849,-1206766592,860946431,-2134159168,91607804,1582720,421431935,31451136,1946731254,-1965346016,-1886769447,-109051115,-1341491969,421983754,-339672576,-1564462334,-538378215,-167727103,192152770,-645211341,581405230,-2143556861,410274556,1951333504,-153406701,57934786,-1977561216,551649482,74774834,384550282,1968372864,403109393,175472640,1521280,403603584,-1073053696,-58717579,-2146929409,57953532,-385815063,1491599746,264435201,-998230412,214103577,-998232460,146994698,-998234508,79885834,-1044701580,1761378305,-58718092,-1156483735,788135936,28647049]},{"sector":8,"length":512,"data":[-1223783378,21293313,-402610199,-1024065262,-1979419644,-151917595,-1468791870,-855556120,19982597,-167706904,141821122,1946731254,18409731,-393183509,-1952972565,-472822824,-1024007215,772240392,28018571,-1024052501,772240388,27887499,-1024055573,772895747,28978824,-1484289234,-1146933759,14477569,29008430,-1517843666,-1146933759,13428993,-158321941,343244996,1574646,-385649660,243269818,-1207697384,149652736,1582720,-2063484677,-434065328,13166624,-384447144,11534498,-1170309074,1232338945,-1172403666,852229633,1049112319,-472841798,1555532590,776359425,443810874,3964974,-1209469835,785943296,-402539615,-1014300464,410263612,-466480149,225706044,1555508014,-1224528383,-1976696476,11724804,-1187086290,1014365185,-434065158,6088736,-846134600,-1875514603,1963508470,-167726310,326467780,1574646,-2146995192,-150988762,512230891,1489174553,-1325790485,-400497120,99287118,-434065158,2156576,1595869178,1532582494,548458328,266871014,1228832768,125044480,-1174379104,-1007811624,-1187086290,158727169,19851514,1692839600,-2144418821,-66995906,-386266763,-1380974308,-1006934810,777081680,29302411,609247716,-436062980,244002401,-18742851,1492284747,1532584422,-12729512,-98339585,1848971,1179057803,8533563,915080306,909836416,74776602,-10032808,914949513,784531484,28917376,-468617988,1642369888,-2146639734,-528064026,-1013751322,-83916824]},{"sector":9,"length":512,"pattern":0,"data":[-469718040,-29557920,-2131096971,536909582,-13047461,175503932,-1760657158,-379908096,32046890,-95370496,1517194,-797907840,-792407868,-1597714236,119799959,913629242,9897718,-2144373440,1073780494,551952560,619244976,-1761151488,360022016,417907850,-1761151488,158695424,9905792,-1759115016,-1759084544,-78102784,-1269739325,645986819,1347354775,1476405224,-1174707994,116793344,1966080151,-17309170,-2132642356,-2147444978,-158332693,536909574,1509617013,860996440,-1469782839,1509613570,-852446013,1038124577,91357962,1979913277,-1172369907,162793871,-466476595,-1910103603,-1275057146,505531721,1236934414,621393923,1085809101,-2082959872,32830,-1191570315,-2136801250,1745664,-956293981,1040220678,-953222400,111878,244067840,-970063433,113158,-1896873800,-89896,28942894,154581535,-1187086290,1299577857,-1123629266,771804673,29296327,-1590820734,-2027028316,771795974,771794083,771794593,11404935,10920750,1174492094,22609537,-2144462733,108342076,688178734,-2144408085,-411752132,721733166,-910499349,15368457,-754667264,842118378,1226952128,1919902574,1952671090,1397703712,1919252000,1852795251,2362634]}]],[[{"sector":1,"length":512,"pattern":0,"data":[21387853,6,32,1,9568256,2136,30,1]},{"sector":2,"length":512,"data":[115408896,60300059,61808945,61809202,61840435,61809716,61809973,61824566,61810231,61811256,61810745,61810992,61824813,61811517,60325640,61145097,56840561,56842103,56837477,56840818,56841332,56842617,56841589,56838505,56840047,56840304,61176667,61177181,60295693,78248708,56836449,56841075,56837220,56837734,56837991,56838248,56838762,56839019,56839276,61159995,61161511,61177379,78249218,61176924,56842874,56842360,56836963,56841846,56836706,56839790,56839533,61160492,61161006,61161263,78249473,95056426,76674824,96673824,74891072,90767617,90767874,90768131,90768388,90768645,90768902,90769159,90769416,90769673,90767360,73064224,70840080,81147648,81147905,81148162,81145091,81146884,81147141,81147398,81144583,81146120,81146377,81146634,81145867,79375884,102891520,0,0,17104968,115408896,60300059,61808945,61816882,61809459,61809716,61809973,61824566,61810231,61811256,61810745,61810992,61824813,61811517,60325640,61145097,56840561,56842103,56837477,56840818,56841332,56842617,56841589,56838505,56840047,56840304,61176667,61177181,60295693,78248708,56836449,56841075,56837220,56837734,56837991,56838248,56838762,56839019,56839276,61159995]},{"sector":3,"length":512,"data":[61153831,61177440,78249218,61176924,56842874,56842360,56836963,56841846,56836706,56839790,56839533,61160492,61161006,61161263,78249473,95056426,76674824,96673824,74891072,90767617,90767874,90768131,90768388,90768645,90768902,90769159,90769416,90769673,90767360,73064224,70840080,81147648,81147905,81148162,81145091,81146884,81147141,81147398,81144583,81146120,81146377,81146634,81145867,79375884,102891520,-16185337,-16382716,197121,-2063632385,1962898431,1996453375,807337983,554836014,605496098,825370149,319822104,789976095,739585297,1397816571,1465274961,1085802014,-388461056,-527825784,58064700,-1962680599,2145616344,1425768448,-622263426,-773598973,-2134575389,-2127677579,1610699838,-164727807,67114758,116795252,1946681367,1404981280,-25082367,343081300,1965308462,1424916980,1422295297,-1976674303,50587908,918826584,-1960443564,-1967027704,637540118,-402497281,-1024064674,-1744079864,-1976641533,-385716825,-1024064805,738554884,47442272,-1024000206,-2147257341,-896909105,843112832,-1979550471,45869509,-167566104,41157826,-1360411254,51898370,1946469110,-398791915,-1024064750,-2147060728,-1796639036,79885826,-1024055435,-1979550717,42461637,-167579416,1282671810,-337112085,146994690,-998242700,40757622,1946469110,66879543,1625883509,133988354,514851957,-58704917,-1341885158]},{"sector":4,"length":512,"data":[-2144146661,74783740,703274416,1965816960,-350441468,1965898784,-350244860,46917912,-1024000206,-2147257341,-896909105,843112832,-1979550471,35383749,1971373302,79885886,-2136916108,1745664,-973071197,-2147454714,-855457560,-373279973,-990510599,-165907072,494142658,1576576,43116552,1574646,-369527544,-990510467,537293952,-352315346,585140791,1962940422,405145647,-338415104,-2134575581,-1070457740,1640070,242532362,1519136,-1427512270,-2134575615,-719190924,-804650261,1513096,-402509591,-1024065018,-162958328,1098122434,7472839,-4713932,-1070378753,-58668208,-2147125806,2130712614,1646218,-167649304,544475330,-645211341,-1265661394,-425982,179309172,1648374,49004802,430096435,31451392,-1024065360,856388612,786008795,46245770,-58704917,-2145881014,326389500,-1024009421,-2147257341,-896917297,841015680,-1979419399,-2145981499,292901628,1574646,-2146798208,-2147477706,1576576,1975519872,-229366,-58718092,-385649588,-2098659091,22603777,1947190006,432308278,1946993398,180650030,1946731254,180650022,1946469110,23116574,1953037440,1778155528,12259701,-1993410048,771839006,22417036,-385792791,317194407,79885825,-443939724,-1024003605,-391613437,97321279,-402575127,-1024065282,-167218172,57936066,-352249623,-337080194,-661940224,-773598901,146994915,-1959917708,-352232825,79885874,-1959917708,-352233337,63108646,-2010246796]},{"sector":5,"length":512,"data":[771840302,22448011,22717230,771808489,771840418,22316939,22717230,-352269079,-990474190,-166431360,67115014,-1159134348,403603456,12059648,-2146899067,-83879898,1350894008,551952560,1476446440,-1561782835,771796992,22625920,776565760,22617738,-13448194,1497270318,786682113,22329227,976111182,773485572,1962949760,12052724,-1590765429,-790101670,1019448064,-350718944,1021587987,772633600,22329131,1421280046,76164609,771797736,22560384,-96700932,551952560,-1207935768,365793538,-158321173,443877570,-990510925,-166496896,134223878,645924724,-336134120,421431301,-346504448,548469258,1323835622,-100275456,551952560,-100654872,1583292167,1482381658,-434065201,1042464,4800128,-1610124281,-658898843,784592387,22560384,-100043268,-1342099736,-77273426,1048587971,1979449688,485030409,-424824831,1355021156,-1959898797,-469672418,-64728991,1642463796,1544457006,1274995201,-430378379,1482381665,-49725,-1946541196,-1962927050,994461438,1912635958,-2143909116,439761664,1476687104,-1979750679,473336069,-2144419072,-67020738,1625559412,-1973295981,-427815712,-421493151,-389835935,-386203769,1625555115,1979596027,243333642,1528823959,1023359209,-99977734,9899648,719936272,125183,-1963306813,-2147477722,-992972572,-992951088,-1751071536,973546496,-164203296,1073780486,243281781,-1337982825,-1340021216,2418925,9897718,-1978305152,1632452]},{"sector":6,"length":512,"pattern":0,"data":[9897718,-2146863744,-134179034,9905672,9905792,-1006938049,62148944,-1759084294,-397390080,-430440409,12188512,-1761151456,242561024,-855705630,243327605,-343932777,116822024,1965031575,1482291949,-919383613,44590308,-1017513248,567095476,171827334,1023767043,225837844,783949582,-855002103,-840682975,109979169,1236533292,236855757,48806431,-853210696,4241441,1048828046,1962934400,515439124,8430336,-1560274269,113704988,4063362,113716987,340,1443793966,113651201,-1207959207,-661721088,788528800,520181922,772330938,22560384,776828412,22808263,-953286450,-2113839610,-1532940800,109522432,-1557266260,-1590820700,-2027028314,771796486,-1107253597,-2126118573,1929467134,1015033368,772175147,-349633338,1015033581,786920745,-349502266,157858529,60033,-355269455,-1070452300,1850286541,1920102243,544498533,542330692,1936876918,175009641,9229]},{"sector":7,"length":512,"pattern":0,"data":[12474957,458758,32,2621439,1819279488,3080605,30,25231361,26607663,43122735,43712559,46989359,59310127,59899951,47]},{"sector":8,"length":512,"data":[1,0,536870912,858927408,926299444,1111570744,1178944579,1684234849,26213,0,0,0,0,0,352321536,1364350208,1448562771,-326427130,650053390,376343296,7768894,-85402829,624733185,-1073074060,-1108867724,-386733311,119472601,1532518238,777869913,2229903,604409646,-13740032,771761206,2242303,26667211,1017957355,1022784549,1010791469,1011315755,1010725964,1010463852,1010659888,1010399033,772699440,474755,772175104,722630,179851312,653733376,-1557266425,844627975,774909156,460289,-30536469,-352321018,117321221,-1427439613,645158972,108159292,41908796,1480384292,1144787572,1128013428,1396451700,1323835508,-11409151,84330030,-953285120,268437766,-1870927104,151439150,-352318976,-30502799,1442842118,-1014762613,1921728002,1048587778,1962934278,3976202,-504874124,775351040,462475,225757451,37650478,91553792,2680918,1017927262,-402295808,-152371008,1048587870,1946157058,244002316,-922025977,132645748,14149632,-19273378,179098163,1107522752,-903087893,-2115501194,-1957248256,46367731,37915454,54427694,192151552,-1014762613,1384857090,855829250,-1959898158,771754294,462475,-402650136,-1897398192,-379692288,1347026575,-768359797,-661915913,-2013857960,-1039445798,1392997464,1543497704,-2144465941,574,568853365,1019448064,772633098,278144,772109568]},{"sector":9,"length":512,"pattern":0,"data":[329218,503319739,534191886,1239121,-921975975,-1607595138,-397344757,-497483772,-2119515143,1946172159,347718401,-1959898368,503316510,649731854,-851397632,-1084547295,-2117926874,1946167039,653230560,-389051648,868483035,44183232,60960256,94514688,128134656,113651200,773849099,-1023408478,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,538968076,538976288,538976288,538976288,538976288,538976288,65312,134217728,1061109504,1061109567,1061109567,0,0,0,0,0,0,0,0,0,0,0,1547321600,591544652,1076256292,1111575598,65280,134217728,0,0,0,0,0,0,0,0,0,0,0,65280,134217728]}],[{"sector":1,"length":512,"data":[0,0,0,0,0,977338368,92,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1363521024,1033523717,1509949440,1948269763,1946762246,-1022739454,-1705894130,61,-850591816,1294658337,1329868115,1095508051,541869378,1735357008,544039282,1936876886,544108393,842018353,858731552,892874544,-852446208,786466337,1023410339,91357962,1979913277,71154190,162799374,856039885,-1261743936,-1105081075,-1968439168,-470994232,-1998017497,-502958593,-1877087240,49906510,2088772466,494221825,-377272762,752821250,-387698112,317391233,2062073907,117321217,585826306,-390057072,118358381,-486537537,1011789036,-387549664,-512426173,301957548,-1442614528,521074402,-424016114,-853888000,1948193,567087540,544538428,-1090457922,196674996,-1096486144,-1447100178,768256,117351667,113704963,95421867,147072,-1166642176,-1705900633,61,1376069818,15770,309760,567085748,-1963011352,167773454,839939273,442349,196737283,-215961600,-2143097942,830,1354378100,1033523717,-1174405120,179568644,-1595399731,84839166,1959332352,434405,2033983500,1849429364,-1494624139,-24778752,-1174363927,330563745,-1763106355,441856,-2147453505,830,-1178664076]},{"sector":2,"length":512,"data":[768256,775727788,-119382668,212608,-1170705152,-919404451,567098548,1908018803,277765,-1933966475,-27989755,1052039307,1572479437,-851332096,7191073,567088820,594870076,567087284,-1097843221,196673721,1060940800,708579700,-169734796,-1275027014,1008848151,-2145356289,574,117312885,-1480982526,1033523717,-1174405120,-1705900811,61,-385942039,12123615,1394724172,1465274960,-1073019362,431229045,-1057087027,-527768526,-1573991170,-1574043612,-1574043532,3014824,771775782,95233536,640024622,785943041,16001,1165099776,-851179080,-149786079,1947336898,75151895,-1157783063,-1679227734,998909,-843446667,-40834812,118365966,650010804,19578625,-361618995,-2133035610,1962999676,1595869175,1532516958,-1261139261,-1977496295,-854674192,-853953503,1975663137,-1261008187,-350106354,1225395676,1919902574,1952671090,1397703712,1919252000,1852795251,604441101,1631783437,1953459822,1111575584,1629506629,1952796192,1802661751,1769104416,168650102,72876039,1631783437,1953459822,1111575584,1629506629,1112888096,1684362323,544370464,1230197569,1684360775,1769104416,168650102,75235335,1850280461,1768710518,1919164516,543520361,1667592307,1667851881,1869182049,118099310,218409984,1850279690,1768710518,1751326820,1667330657,1936876916,544106784,1970040694,1814062445,1818583649,218418944,1819235850,543518069,1700946284,824713324,1751326769,1667330657]},{"sector":3,"length":512,"pattern":0,"data":[1936876916,1313153068,542262612,544370534,1701736302,2113321,168625399,1701602628,1663067508,1701999221,1981838446,1836412015,1634476133,543974754,1311725864,2113321,168625450,1914728270,544042863,1914728041,544501615,1701996900,1919906915,118099321,218452480,1869566986,1851878688,1768300665,544433516,1852141679,461325,168625523,1970040662,1763730797,1919164526,543520361,1931830053,-1912600051,-1073369851,94650629,544434464,538976288,538976288,2105376,1935763488,544173600,1700946284,108]},{"sector":4,"length":512,"pattern":0,"data":[6838861,3735580,12845088,59441151,-1475147776,7351,30,159776769,157614080,275513344,328269824,332791808,411435008,410451968,408813568,407830528,406192128,405209088,403570688,401801216,400031744,398262272,396492800,393019392,390856704,388235264,385941504,382337024,380895232,379256832,377487360,375848960,374013952,372178944,370409472,368640000,366804992,365166592,363331584,361693184,358219776,356450304,354222080,352321536,441712640,440074240,438304768,436666368,434831360,433192960,430964736,429522944,427884544,423821312,422051840,420151296,417660928,414515200,413073408,457244672,71434240,481821432,760741888,766115840]},{"sector":5,"length":512,"data":[-1957363712,1443256300,1381061406,-986833328,-1006557410,-1189147073,1556021250,19906048,561293043,-1090517831,733877020,531034881,1286873461,157558408,-947142004,756227117,-706150396,364388096,-320319488,46433040,771803113,19349188,378662,1301030400,12066306,-1077899536,653983742,1979268480,896317498,-1993465395,773092894,343410316,1824005902,343259685,364388813,773967157,342957705,1929808942,622180372,-854298438,-954327263,2047172614,-955847916,1879400454,891140116,520495565,118420363,-1189859137,-1527578560,347610894,773967157,326835849,2097581102,622114835,-854362694,890746913,-1993465395,773046302,331482764,-1171974216,567088053,-852158024,512306721,-1943137428,-1206686202,549070105,522308883,646459828,244058468,-1070398110,1532742284,1579113305,-1946460409,818109925,1291845637,-163232689,-326412862,508954199,1347572051,516238878,1069809959,45686542,6078208,-218026050,-1189448538,482279428,19643923,1965008627,-1950184423,320613831,-352320467,364388269,-991408128,46433039,-1070358293,1532744243,1579113305,-1946460409,1438866917,45673611,445638656,704873120,-754404892,-2096198944,65874435,-28931647,1912801853,51657989,280496758,-2132258816,46433039,33965699,-1962651905,529204830,537659274,695561276,1342193080,-16359797,262662199,184861827,-16026432,1996424822,222750724,1996443115,74907398,-352302872,243778,5290064]},{"sector":6,"length":512,"data":[106859344,1860712447,113541913,393527307,1342178232,1342198968,-16359797,425191479,184992899,-16026176,1996424822,143058948,1996425707,74907398,-1962656024,1438866917,918088843,433842177,-863582634,-2033843970,-973013134,16707718,16402119,1988544256,-956301057,16741510,-129579264,1586167808,-1977644282,1008733191,-1960938132,134153822,126492555,1882988556,1586171765,-1962410234,201820703,1953774624,112650,244967504,-1962752893,134153822,126492555,-2037895124,20774638,54264946,28838518,2028490752,46433038,-16359797,-2145416441,91568703,-16359797,106859271,1065361291,-1956088788,939460190,-2095467800,-2037841212,1346240374,1027568640,141820036,-9009465,401276928,-17791350,-17791234,-259267542,268190406,-1996274015,-1946236282,529204830,1946173312,106859302,1065361291,-1961069524,134153822,-2037717525,-2030108944,-466944272,1120333963,1151406844,-1949504765,529204830,1962950528,9955587,-1962516853,742359071,179833460,-722972672,46433037,-16359797,106859271,1065361291,-1957268436,529204830,764938122,1183383600,-259618054,-259588354,-1947981058,-62732560,-96040165,1946158653,539994,1187452532,-33554182,-1963003762,721350790,-1997501468,283901026,-17791350,-17791234,-259267542,821838534,-16359797,106859271,1065361291,-1961593856,529204830,1949056896,702504,223471696,-1979530109,83816070,6005296,-1979656983,-16846714,721350790]},{"sector":7,"length":512,"data":[-957314076,-348980158,106859455,1586169855,-1977644282,1008733191,-960072336,33475718,-1098855957,1946222450,11135235,-19364153,1183538946,-628717064,2022084094,-528053761,-226062850,-494499330,-427389442,-420982530,46433047,-18053493,-18446711,-18446707,-662270640,-2037559042,-397345064,-998041941,-662271226,1954974206,-625049345,1215628286,-17908096,-1206029055,-1924136866,1358919814,-2095597592,-1073019708,28312693,-1070464277,-9271672,-9257344,-1206029056,-1924136872,1358919814,-2095606808,-1073019708,28312693,-1070464277,-9271672,-2080880897,16741566,1307116405,1925087487,1249116415,-17777024,-951880192,50256006,-129594530,-628717240,-259618050,1222912766,-19102071,-1979955571,-1912676218,1358882438,-2095633176,-2037579068,-1924071706,1358878854,-19364211,427092048,-385432445,149422291,-796489220,-761886210,1958874110,1678165611,-11383799,872337590,-1202696000,-1903558655,-315949330,1356911433,-2096142360,1491602116,-1073732340,-388821327,-19495287,-17922422,-2042895318,813104854,-1974419405,721350278,1340625124,79987467,477413387,-1996269919,-1946235258,-293172520,-2010118914,-1224801465,-1444348210,46433048,-19626298,-968299776,16701830,-19614069,16770689,-1996733814,-1963009914,721350278,-2037823260,-2037514530,-1924071720,1358878854,1342183352,-2095512856,-2030696764,1972436697,178186,189917264,-33373053,-1963010938,956231814,1929303174,-255950674,779485438]},{"sector":8,"length":512,"data":[-8995197,-1961397248,-1963013474,83816070,55019568,-20269313,-2095567896,2122515140,175374586,55064319,-2095571992,-1098906940,1946222284,1678165567,-2037691383,-2046034224,192282322,-1980122136,-1979789178,-77162,-77130,872337590,-2037755712,-466944308,112720,-17920374,-750129878,1239961824,180650766,1575324510,-326412861,-402639688,1187386785,1187409628,1187409634,1187446732,1586168014,-2145416442,58010687,-1962837015,126551646,-1981397367,-661919162,1033373578,57999427,2113977833,20769027,1946170429,3685645,1111314804,-379423744,45613380,1656246272,1996443648,345762026,-1996045181,1187440710,2122514636,175374568,1342180024,-2096478488,1586168516,-2145416442,57999423,-1962862615,529204830,1965834112,17492227,-16359797,-1193284857,-1202716670,-11534235,1390996086,113541908,-337099127,-362902720,-1960833152,1333848670,79175681,1756909568,1996443648,338684138,-1996045181,-1072961466,79204468,1840795648,1996443648,337111274,-1996045181,-1072961466,2045313908,-867776769,-9246462,-2132124021,1586176015,21987562,309280,7518288,-361300144,-2095847192,1183385284,1975520232,-867777017,-12130047,1342178488,1342207928,-387287297,-998042679,-398030586,57982987,-956355607,-385627066,1586233124,537886954,-2132124021,-1960836785,1333848670,1586176002,55541994,309280,8173648,-361300144,-2095870744,1183385284,-867776792,-17897209,1946176829,6438341]},{"sector":9,"length":512,"data":[686359413,6503935,1743324021,7159295,1187491956,-369098776,1586233036,-2145416442,1249116223,-1962516853,742359071,1586173557,-1962410234,201820703,-599357408,242512444,175402044,1342180024,-2096566552,1586168516,-1962410234,4161567,1586173044,-2145416442,1433676863,1342180024,-2096574744,2122318532,477495244,267208390,1357661837,1357661837,1342181560,-2095688984,1183450820,-867792660,-1731443062,155773008,184730755,-1207274048,-397410294,-998045549,-595689470,-971016850,-973014458,-352263098,106859350,529205247,537659274,-1670024132,30295750,1048617195,1962934365,1030154,140372048,-2147302269,1946274942,-864124922,-955812608,315974,1187448299,-2147481390,1970068606,-96025078,-465123839,-972494078,-956302778,-2130779066,1970199678,25225475,-1980307480,1451875910,-314128672,-330906059,-733573859,-330920624,-330920624,300017744,-1962490749,-1070869418,-2081536509,1183383762,-27883012,1178190475,-970361632,-970592954,-1960973242,1183440966,338737370,-1996488518,1183707718,1183666388,1183666412,-1595387668,113541905,-1948367221,817487958,47892,-763117309,-62486272,-989964663,-1977156514,1183318599,16312784,1859944064,-118946955,-96040448,-2133834240,2080493694,-797016058,-1206616525,-397410175,-998042492,-599341566,-834222482,-1002116352,1183513694,1200105168,-60898302,652494474,-1005435136,1183513694,1191192314,-60898270,652494474,-969783552,-1979650746,1183370310]}]],[[{"sector":1,"length":512,"data":[-330920468,-330920624,1095760,348776528,-2147040125,1946275454,8775939,15222471,-1207047424,-397410138,-998042596,-398000382,970081931,-344135610,1342222776,-2095839256,1187381956,2122326242,1282701794,1860337280,2122335860,108360412,55588607,922682603,-504888498,46433043,1342422712,-2096018968,1187381956,1183647725,1183666412,333992172,79987476,216811146,-498694112,1342223288,-2095860760,-1360330044,1860337280,-1506443,-529072130,870217471,-1202696000,-397410272,-443872760,-1957313699,2799852,1443980520,14173894,131745479,-599341312,1187381249,1187407332,1586174716,-1977644282,1008733191,-1960938141,134153822,126492555,1866211340,1586171765,-1962410234,201820703,1953315872,112650,103934032,-1962752893,134153822,126492555,3157400,1040074377,259260417,1946157629,112650,101574736,-16595837,-588710282,46433029,175489035,1342177720,-2096761112,1586168516,-1962410234,977240095,1586169204,-1961885946,134153822,954742783,46433041,1038239369,57999480,2113971689,16902403,1962940477,10938627,-873921666,736512,205328500,-385649408,255656070,-380341248,1187446994,-1979683102,522517574,620512904,-2013000453,1187511366,-1207958820,-1924136950,-11475386,-538385802,113541904,-1981397363,1586228294,-2145416442,57999423,-1962875159,529204830,1965834112,14280963,-16359797,-941626617,9888326,620512906,-2011165665,-1209271226,753026759,-62486015]},{"sector":2,"length":512,"data":[1074536228,1187507691,-1979557662,522517574,-538222580,-1327348025,-62486012,-2146689244,1187500523,-1979096862,522517574,-1007968244,-1058912569,-62485998,-1072947420,1187493355,-1977253662,522517574,-1477713908,1946164797,3161511,1010686580,1034646528,-562823072,1962962493,-13375229,1342179000,-2096837912,988349124,39337471,478122356,1962972733,-9901821,1946218557,19676569,1827210101,31473151,-789865868,1946402877,78658977,1961427829,157302271,2062091125,314588671,-2143452300,-343116763,106859439,1065361291,-385649408,1586168190,-2145416442,175385663,1342180024,-2096864536,1586168516,-1962410234,742359071,1586181492,-1977644282,-2011165689,1033430086,2104754277,1946185277,7290129,179858036,820531200,46433028,1183451371,-1998117636,1586232390,-1962410234,529204830,1962950528,18671875,-1962516853,742359071,179833460,15224832,46433028,-16359797,-2145416441,1165241407,-1962516853,-1744336353,-1996476371,121494086,1025733632,2121531400,1342180024,-2096901400,485163716,620512906,-351793945,-62485858,403498788,1183487467,217851132,-62486526,-16359797,106859271,1065361291,-385649408,1586167978,-2145416442,175385663,1342180024,-2096918808,1586168516,-1962410234,742359071,1586182772,-1977644282,808294407,-599357184,1946157373,146714,179855220,1625837568,46433027,1183453675,217851132,-1969296637,-81462202,-1946401144,134153822,-1962516853,4161567,1586185844]},{"sector":3,"length":512,"data":[-2145416442,175385663,1342180024,-2096944408,1586168516,-1962410234,742359071,1586177652,-1977644282,1008733191,-972065424,-352200634,-62485997,67959588,179876587,-118992896,46433026,15681222,-1996732790,1183575622,1183402238,-297366028,-297366192,1357904,276162640,-1593391997,1183384396,-1965519914,805633606,-2130491512,78701182,62391677,-1207702784,1183383556,-1961563166,1579931230,-327775262,-1964226817,172460036,-2082320641,2130764414,-698446874,-1998305654,1586170695,-632911146,1200107524,-698447091,81544842,256346160,-1980601624,1451875910,-662798112,186676224,-402033214,1183445288,-531199522,-959029621,-9432761,-402437066,-998043816,-1961432318,1204213342,922689552,1172833100,46433039,157550278,-754732724,1183579750,-532280354,1996429172,-562626592,-1974419405,1352194118,-385976577,-998046320,-443851254,-1957313699,1751276,-1962088216,529204830,537659274,511011900,-16359797,-1977644281,1008733191,-1961921168,134153822,126492555,1950097420,28838516,-857190400,46433025,-16359797,-1977644281,808294407,-62486272,2080375101,212229,28838526,-1461170176,46433025,-16359797,-2145416441,91503167,-16359797,106859279,529205247,1950171008,702474,25290832,-1962752893,134153822,126492555,1664884748,1586175605,-1962410234,201820703,1970224160,106859279,529205247,537659274,175402300,1342177720,-2097067288,1586168516,-1962410234,-1744336353,-1996476371]},{"sector":4,"length":512,"data":[20840006,1024422912,175374338,1342177720,-2097076504,-1729625404,234890497,199902857,-1207274048,-397410286,-998047473,-25755902,-2097094936,-1073020220,330828405,-118992896,46433024,1342177720,-386107649,-998047618,-273750012,-1981397367,1183574102,1317771772,-396456986,-636237821,-1173114184,-939327488,-2097097853,-612171287,-1950118400,-28931367,-2010724098,55877895,-1947449719,-62485800,1200107524,-329348349,83773066,390563888,-387156225,-998044256,112642,1241271947,1183441107,-394854404,-1192855809,860880897,1996443840,66251004,-1017256565,1475119957,1053044230,1183518989,65065220,108954616,638809089,-1207878269,460652544,378662,16758784,-2094657045,12058685,638088448,67015,117505976,1575324511,263875,-326413056,-1003616681,-1961806530,-783809466,653788128,-1207943805,57999615,117440696,1575324511,262339,-326413056,-488062925,73304842,-1207966767,-102235330,46433036,-1962071576,1438866917,-1070338933,-2096446232,1946158206,1513553670,-15602941,-402433994,-998044460,56271106,1342179333,-1962096664,1438866917,-1070338933,-351627032,105286154,192153400,-1962653953,1065354334,-1947306752,1065354334,-1962642432,855829443,1575324608,-326412861,-402649416,1183648361,297292018,-1243066368,79987458,1946157481,1161228,-10098608,-352140157,-230257917,-1017256565,-1192457387,988282908,-398014710,1187447824,-956301078,64582,117735040,1187457653]},{"sector":5,"length":512,"data":[-956301084,-1342118330,652500676,-968161338,-1001914810,-2144934818,1937066815,33310407,1560724992,1743454208,14960327,-431569152,1589952512,1065428708,712354389,317540038,284051142,1357661837,1357661837,1342181560,-2096331032,2122319556,175440110,33310407,1560724992,2122514432,594870524,14960327,-431569152,1589950464,130426596,-28916149,-463551417,1262452774,1187448181,-2097151492,1963064446,71731823,2092960664,81172,37557886,1024097280,1568538627,1946158909,-96024737,99287040,284837575,-396442624,621251366,1175191503,126428922,-1744550262,-1913895287,-1924076474,-1202656186,-397410288,-998044681,-314128890,-297351678,-230242560,1183645696,1183666412,280514796,-655863808,113541899,-335788405,-96024818,-1377107936,821708487,-1951995136,12803557,1162104653,622115066,2065089838,-1205744365,-986831593,-854343658,622704673,1880540462,-1205744365,-661721088,-115072,-1206618631,-986831595,-854298346,627882017,1981203758,-1205744364,-986831591,-854365162,332266273,0,-268373852,12776960,15335659,1342177280,860888732,-2133291328,2130997542,2056920920,1342177299,-1900006626,1896281816,1478459396,-990508939,1476818048,-863971861,-817609600,0,12776960,-1024065301,-369038592,0,1344183376,-661733325,74524288,-1709221761,5055,-1070391728,116840590,528483441,-167217832,108265924,-2133464232,1145307596,33325263,-1867250827,1347572687]},{"sector":6,"length":512,"data":[51622587,394931930,1946352768,-855526389,-2134575596,216732276,348980148,-2141133696,74735868,48961972,-1973710668,-816096573,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,234,59904,-1957363712,-1957210388,-1574042554,1854608544,4623110,-1962778997,1451951182,141986566,1426751115,-855577608,1183407360,39749888,-1996206455,1988691542,176064776,1583306908,-1957313699,2275564,1443324136,117196487,-28915964,1183449088,71145476,2115335168,92924163,2097152317,93776131,2113929789,93251843,556672,1187389812,1183514630,206998282,-1156337479,-1056768000,-1912548733,651725762,1175062410,-1960842492,1451952710,330348812,50331835,13796289,-661929330,-1979217370,-772406194,1183367458,172395500,-1190373749,12260272,-2084502784,-1030881070,1183504523,126363372,-1962260853,-1195832234,47891,-763117309,66816,-1912548733,-1193767998,-2010775493,-330921465,474520,350815094,-1816132863,-509083858,172395286,-1190373749,12260279,-2084502784,-1030881070,-970532725,1183515399,206998282,-1156335431,-1056768000,-1912548733,651725762,-378271802,1183514935,206998282,-1156335687,-1056768000,-1912548733,651725762,-1962866746,1451952710,330873100,50331835,13796289,-661929330,1963443750,-1962867991,1451952710,330807564,50331835,13796289]},{"sector":7,"length":512,"data":[-661929330,34063910,1183552747,206998282,-1156335687,-1056768000,-1912548733,651725762,-352188474,172395438,-1190373749,12260279,-2084502784,-1030881070,-970532725,1575551239,172395519,-1190373749,12260279,-2084502784,-1030881070,-970532725,1994982151,172395519,-1190373749,12260279,-2084502784,-1030881070,-970532725,1183514631,206998282,-1156335431,-1056768000,-1912548733,651725762,-336918586,172395360,-1190373749,12260279,-2084502784,-1030881070,-970532725,1183514631,206998282,-1156335431,-1056768000,-1912548733,651725762,-1947531322,1451952710,47884,-763117309,66816,-1912548733,651725762,-352319546,-2062118640,-283788779,622201365,1561739542,108953622,-1960610816,1451952710,330348812,50331835,13796289,-2097151739,-1030881070,-1977165685,71698439,1183525099,206998282,-1156337479,-1056768000,83939971,-763166719,-1950183936,126494424,-167489910,-2000608559,1183515718,206998282,-1156337479,-1056768000,83939971,-763166719,-1950183936,71731928,-1962440666,1451952710,331200780,50331835,13796289,-2097151739,-1030881070,96000139,126363136,-1744550262,1979713341,15526147,781434883,414885887,-1962260853,-1128723370,47891,-763117309,-1950183936,130426584,-1955927293,1451952710,331135244,50331835,13796289,-661929330,17286694,1183545323,206998282,-1156334407,-1056768000,-1912548733,651725762,-352188474,172395316,-1190373749,12260284,-2084502784,-1030881070,-970532725]},{"sector":8,"length":512,"data":[1105920519,-1962260853,-1128723370,47891,-763117309,-1950183936,130426584,172395265,-1190373749,12260285,29485312,-1962260853,-1128723370,47891,-763117309,-1950183936,130426584,172395267,-1190373749,12260285,30337280,-1962260853,-1128723370,47891,-763117309,-1950183936,130426584,172395264,-1190373749,12260285,31123712,-1962260853,-1128723370,47891,-763117309,-1950183936,130426584,172395264,-1190373749,12260285,-2084502784,-1030881070,-970532725,1183574791,206998282,-385875781,410779896,397612952,401151950,405542916,-1209460652,108953601,-1977322496,-1315437498,-1946627325,1586170446,326416908,50331838,13861834,-645151858,168790566,-1977291832,-1315437498,-134687997,172919760,-1173594485,12456820,-2083912960,-1014103853,-1977165429,-2000150001,1183515726,206998282,-1156352839,-1056768000,-1912548733,-1965519934,-2010774458,172395271,-1190373749,12260216,-2084502784,17105106,13796096,-661929330,637535672,1183451016,-1072982012,20780404,1029796864,57999362,1023446761,57999363,-1962886423,1451952710,326613260,50331835,13796289,-661929330,509478,-1962260853,2025393238,47891,-763117309,-1950183936,130426584,172395499,-1156819317,-1056768000,83939971,-763166719,-1950183936,130426584,12380416,-1962260853,2008616022,47891,-763117309,-1950183936,130426584,172395265,-1190373749,12260216,-2084502784,-1030881070,-970532725,-2014743545,172395264]},{"sector":9,"length":512,"data":[-1190373749,12260215,-2084502784,-1030881070,-970532725,1183514887,206998282,-1156351815,-1056768000,-1912548733,651725762,-344651834,172395347,-1190373749,12260215,-2084502784,-1030881070,-970532725,1183514631,206998282,-1156351815,-1056768000,-1912548733,651725762,-336918586,539935,1625883509,1064446,1491665781,2113022,347605620,-1192734720,46433270,157564544,-385649615,1654718598,205928709,347605620,-1662496768,46433270,-1962581855,120261214,-1996372864,-1181095354,-101253104,74764811,283788931,-1962929991,-140907962,-364475911,54408959,-2096924696,2057372356,-532248317,752764615,-280574464,-564214711,-1995994330,1183703622,1183666402,1183666414,552095982,113541888,837764806,-1981135221,1183708230,1183666414,-2081926930,79987459,1575324510,-326412861,-1960946089,92996734,-1962779253,1435173965,141921030,-1962248705,93194366,1594252686,509026765,-1912409153,142511071,1167000972,108956422,1569260937,72190210,-1996073591,1167001717,855929354,-402068490,29233011,-1996125440,1579093109,1438866783,1448602763,1317734174,-1959795960,75402201,-1070336117,-218103879,-638107218,41339707,-24392821,-217680245,-12285274,1161480499,1946515455,48972037,-1047801353,-1017290914,-2081649835,1448543468,855930507,-1159178497,46433030,604390538,1963080707,105182780,-1978698488,-1952970940,-152841768,17063559,76228468,-1996209109,-1072956346,-11527298,1149895796,-397371385]}],[{"sector":1,"length":512,"data":[-998046290,-62506234,1283458932,-4251642,71601151,1153893513,-1962934270,-1956684089,1505975781,-668214133,507185778,74580848,-503323765,1426188521,1586228363,106925060,1334577036,72846338,-1957313699,-1957275668,2123039862,-1224270330,-1252347071,-1964037535,168135204,169899236,1176270016,1927756359,2011380230,988086786,973501127,33716163,1977629381,987294470,1913287904,112645,-4717589,1566531327,232319427,1475119957,-1962822826,1183516750,-2083376380,24447737,108956569,-1090320663,915079923,-148176894,268500609,12452722,-678495728,158254209,-385649669,-461307575,-1992884226,906268710,76424841,78759563,910745811,-1274770269,908184880,1006863011,506098434,240173107,487176735,567085492,1397703883,808333856,544370464,1702125932,1701978226,1919513969,168649829,-1980300508,-1946156490,-136434749,-850742053,512505377,915080058,371064876,-852164424,512308769,-1942616952,235178502,620804127,-853657414,244004385,585303342,805750070,869960709,520042203,57869612,906022121,87295685,62642828,520041984,520553772,87605244,722038969,-205507633,118888106,98035743,-1207958341,567100416,-1024062862,-2147126144,1073979535,-387155637,1474822906,87603970,87620481,-11335565,1128487703,112849643,-1092539648,-57998460,-1527576810,855730920,-475010835,10283088,1951599117,543908705,1919252079,2003790950,168626701,1769367876,1696621924,1919906418]},{"sector":2,"length":512,"data":[168626701,1634692166,1735289204,1768910880,1847620718,1814066287,1701077359,-1324741276,501266962,521071922,-1275067717,371313984,16758815,36759632,-222687055,-1310332131,503495197,-1957306645,116163564,-960604585,988304899,46433028,1183709323,1996443654,1172854276,113541893,1459242633,77719639,-1962621821,1600059974,-1017256565,-2081649835,229438,385811572,1996424064,30992388,-1017256565,1475119957,75402070,1569392011,72190722,-1962519157,2106263669,1461832970,-1996063093,39684357,-1996206711,1971914325,172330760,-164428686,283642091,114188,1971914123,1566531084,-326412861,-326937001,-129579512,71732173,-956742008,-1932789178,1183708758,-196703752,-1962508661,39684869,-1962652277,1972045397,175999752,216892245,1560305407,142510935,1569260937,72190210,-1996073591,1167001717,855929354,-402068490,29232043,-1996125440,-998044555,1566531080,-326412861,1460202627,-2009691306,-1206392061,-1202716660,-11533086,-65279948,184992899,-2096597824,1015218886,-2082179840,963903548,-947700597,-28915956,92930048,1183422535,-1977816070,-12740603,839152896,-1979520064,-27358459,-1996601601,-16539513,-2092434866,1962998398,313310,-1956684288,1472421349,172919638,-1962654069,2123040342,119428872,-1073048580,-108850316,185496842,-1341490734,-604526035,-150941053,-1829270566,-1072967117,-235470220,-1829636205,805622663,41302332,-1951783164,1975716802,1325762786,-2012903764]},{"sector":3,"length":512,"data":[995098436,1492480759,-1017290914,82839183,58334862,-1047803597,-108271221,741772105,1962281728,-221868536,1974355374,1083655674,-41157084,-989600303,-420995306,-1949332485,-1946352644,-1912138004,1240871902,2122911203,-1404746496,1975519914,-1980505350,521535566,59254409,82847487,-1142125739,-75430600,141755704,1528299347,-219462845,167964904,-2146798364,1962935422,71747076,382017278,12059784,522308901,86904459,45811683,740228864,71731973,567102644,82970255,58334862,-2135029994,865643520,1048585938,1912800130,109989989,-1070399444,-772290421,-1359808373,1963276326,63407097,-772290421,-1977157749,977356549,1007973600,1007186978,1006924809,1491825952,-2118252778,1328278272,-15991253,-812912268,-1014277310,50708739,-121600,-57941973,371131934,-1331367161,-880039392,8502815,-930410773,-31194108,-57941973,-1423948872,-1047812877,385125290,-594849761,-1431503221,1031061514,527770172,-2079916202,-1073042429,574369396,2105542517,74800383,-303322545,-12204473,-388633856,-797704137,-12167602,-1409055738,1958742698,2484232,-504629899,1274317738,1945320267,126332168,-335657847,199003122,-16615982,-2044294905,-232325373,1946762244,-1021297662,-1947432107,-2013920162,1948255136,1107474446,-779368141,57876941,-167180567,-2147245945,-2115435659,139365120,503731851,-54512889,-259303849,1709439627,-230683976,1362261422,-903098485,-854531255,-268198879,-1274776675]},{"sector":4,"length":512,"data":[189393673,1177515200,-1174404423,1085539572,74654157,887818676,443858955,-338195623,-812953147,567134763,-1645214820,162792563,-1073014037,-2013915531,1950352288,106859275,1964654464,82573315,470333689,-1962773927,-379625786,1317734523,106334984,567099572,162792563,-337383957,-411713525,60852214,-1962249152,440369370,-336067723,146340310,1439755036,1586228363,107446276,1438866895,-1957237621,-25099146,1014301638,201737462,1149908597,-661940217,-2013862959,1963000926,71616295,1149896036,-661940217,-2017008687,-956234658,1795391494,38061868,1149960704,-1207662332,887816193,64945793,1156983925,645204998,-1744354166,-472786805,73304054,-1206422271,-397409792,-998045261,71600386,108314635,134630528,-1070351893,1575324510,-326412861,108432214,294531,-25080716,628425670,-1744354166,153086032,184730755,1444312256,-2080865816,1149895364,-661940217,-2017008687,-352320418,-553746150,1444640003,-2080872984,1962869444,155445252,-2147302269,871827044,-1996191296,-1956772796,1438866917,861334667,3521014,-1392712654,-69017550,-27921280,1962947854,874940422,168946432,-1173523228,45809718,1685760,567099572,899858482,-443851264,-1957313699,23247084,1475899624,108432214,-22903155,-1962589021,1017316422,138840837,855982243,89301952,-2147135325,57999420,-2147399191,57943356,-956232983,17123846,-1547685120,950207816,88908549,-1559937373,983762242,89563909]},{"sector":5,"length":512,"data":[-955950941,537216518,-2144146688,108342588,89655039,1015031787,-15960789,-955955194,342534,-2145981696,225779772,88620675,-16091904,-351979002,1443299076,76170757,132665496,46433030,-1082802165,89045078,93382736,-1962621821,775717104,117379701,1447429442,1342524088,-2096793112,-259324732,1970027648,1040631559,1174405637,1962949760,10545411,-1986526070,1040096902,175374405,1946175293,5782789,117377397,-2038233800,-1960771938,771661446,356319331,54425344,-13724736,-14356057,-955954170,349702,702464,8906832,-352140157,571472,280556267,871230208,-1595387712,-1192629503,-169148415,-23152897,-352182552,-335639589,-1155211455,-467344348,-316349404,-316347100,-316347100,-316347100,-316355292,-316347100,-316352732,-316360924,-769331932,1379828516,91488261,-351973215,-1494661600,624787710,-2142828940,-176881603,-970209397,518542928,79987459,-1964378229,-1956684034,1438866917,414772363,-154408960,2122536535,74713604,88868607,87965315,-1961462784,-1962590178,39291655,-1980217719,109312598,-352058048,1279165225,276037637,88088203,1183385483,-96024584,233504768,88088203,-1986459765,1451882566,1074168826,1048773125,1946158422,-129594611,1962558987,71731973,-1070398741,-1962584925,-2096806858,347198,2122525301,612172026,168066691,80090997,1183532589,-94991368,-763111177,-1982138624,1451882566,-163133446,99287041,16139975,-2080535808]},{"sector":6,"length":512,"data":[1996429551,1996445444,-126418950,-2096810776,1048774852,1946158402,-689416416,46433030,88739467,1317652523,-972755970,-1958334460,1325399622,2143292414,-2012902670,943620868,125042693,58483004,1176513664,-8552377,-2082048768,347198,1218516085,973474565,-2096401403,1962997374,112645,-1070398741,39184464,1577239683,1575324511,-326412861,-402650952,1448605085,88475335,2122514464,276037636,-1593835074,109249856,-1996356288,871103558,88088203,1183385483,1074168828,-1073020411,1187448181,-16451844,854129782,46433030,1048834187,1946158402,1241921802,-1962642683,-1962587594,721767998,1480492030,125108229,17754199,1443021955,-386107649,-998047379,1480491780,125042693,16181335,1577239683,1575324511,-326412861,-402652488,1084355857,-28931835,88227459,-955878144,101009926,943128320,1245118213,74907397,88356607,-385976577,-998046761,75399946,-2096728985,1967588478,1446937368,292880389,88751747,-16092160,-402308042,-998046787,1446937346,292814853,88751747,-16091904,-402308042,-998046801,1074168578,113707013,1364,184895649,1946499590,-25755886,-2096912664,-1073020220,28837236,855829248,619204800,1575324417,-326412861,1927856179,1048794868,1962935634,1008634680,38797061,163715,1183453564,1008634628,-13137147,704940039,-15864860,-16434122,1793590390,79987459,-16353984,-351972858,1342635780,-443851259,-1957313699,178412,1475618024]},{"sector":7,"length":512,"data":[1379828566,1366622213,184841867,-347439370,1008634675,38797061,163715,1184895356,1008634629,-12612859,705005575,-15799324,-16434122,-402307530,-998046959,74792964,89261823,189712011,-2084143168,348734,1183516533,1342570756,-1956684283,1438866917,45673611,-205789184,1988843095,108956420,89276035,-347310848,1008634677,38797061,163715,76157564,87826059,134156171,126409099,250340394,87832319,1352139914,-2096977688,1967129796,1376190212,-947173883,1975520079,1379828676,125108229,17188491,1577406470,1575324511,-326412861,-402650440,1448604497,88356491,1183432755,-129594884,89013899,67889238,-1996307325,-131335610,-1593541077,61932884,-131335981,89669251,-2146077440,276114748,88489603,-1408666320,-1796714344,46433278,88489603,185300016,-2096660737,350270,2122520948,108265476,-386382081,1048772702,1946158420,-62456058,-2097123352,350270,-396941707,-997982552,75399938,-2096532480,1962997886,3467267,89407107,-2096532480,1962998910,4384771,1459255039,-2080446232,1048773828,1946158424,1174849293,1459625989,-2080478232,1599996612,-1017256565,871140181,-225974080,88620675,-1341885440,-1341986005,-397371360,-443810309,-1957313699,-390056980,817427049,-387428352,46433277,89407107,-2095745776,342078,1487930484,2024801003,-857190248,46433277,-1017256565,-1192457387,921174018,-1957275662,1015023222,-1961986774,-2096807906,33898502]},{"sector":8,"length":512,"data":[-347717749,-2130758854,863776828,2134457472,1111374126,-2146732795,108343356,88475335,-1733558224,-506343541,-821829167,-939269679,-1959728765,809271545,1015022972,-1948025287,1065944158,1600046731,-1017256565,-1192457387,-823656446,-37857551,-1978799356,71710724,28837237,1174989568,1962949760,1589654510,-1017256565,1458342741,74877783,-1715457028,1017961099,1023112224,1022850057,74751021,24455996,2000239788,1915759647,-773598949,-1949594670,-773598726,-773598766,332989394,-2082995241,-588578606,125148563,-763111177,1608185600,1575324510,856191683,1575324608,-402230333,-4718579,1575324671,-387697981,-1564278783,-469105782,1048585077,1912800130,1931623437,1914715149,-351948795,322736135,330302070,-687537477,58499992,-339440957,-326412809,-1946998552,1438866917,518581387,1575324659,-326412861,-1947003672,1438866917,183037067,1575324659,-326412861,-1947008792,1438866917,11791499,1442079977,-326898549,-1957275900,1149896310,-2086037498,-167349248,1950352964,-18426,-167716119,1946224196,105676806,-2131825888,-2147350964,871302756,38046144,2122971275,105182974,-1978698488,-1952970940,-152841768,17063559,1015754868,184843307,1460829951,-1979419393,1352140612,-2081030680,1183385284,71601150,-956004032,33489476,-1979425653,126354502,1156999915,1316291590,63372929,1149906293,-397371385,-998047639,1975520002,-2147039435,-953390333,90440772,-1744354166,-472786805,73304006]},{"sector":9,"length":512,"data":[1694811905,-1195840763,-397409792,-998047585,71600386,108314635,134630528,1283496939,29295622,1183667968,1149915140,-397371385,-997984898,-28931834,1962835513,-13506301,704923274,-1956684060,1438866917,1586228363,352027396,-75296387,-166953984,1073979527,28837236,855829248,1438866880,-326898549,-1101637884,-13433922,1149900779,-2086037498,1443591168,-2081476120,1950352068,-964475135,-2043266808,-1948028156,-1956684089,1438866917,1586228363,-28344316,1575324417,-326412861,381376342,4162309,119417205,-402651720,91554168,-342245325,-31178716,-1559947613,-946469608,-2097151740,1153893574,-1979711746,-1962599370,-661912498,585678990,-1956749568,1438866917,509078667,75401991,-4603853,-1951468801,-146784063,-1017290792,-2097099799,-126619911,-18775999,-66947189,-1459713107,1212314625,359907643,-268185461,1946265773,96600884,-141885438,-335657847,1962839014,-1980169460,-1054081460,-351958712,-17235195,-963903924,-92153204,91489011,605981734,41912581,113649347,1023542568,628424702,-268173685,1946265773,1224641522,-1116487365,-268185461,1946265773,96601058,-141885438,-335657847,138906598,74760203,334223502,672071206,-1945078779,49495512,-1910110860,-1962598370,-1950487753,-1070397833,989878760,604861638,-1740619775,1946177000,-28443123,1946160104,1313773061,-1070359829,-1957575783,27852357,-936705164,-1170128567,992378879,1980048918,1978323204,63015925,51737286]}]],[[{"sector":1,"length":512,"data":[-150113598,734143442,846022,-755562379,-445257007,-1017528269,501764434,1461220352,-259260789,1153954307,-1979711746,-695531913,-1991583957,1499004501,1347666778,1377751603,28856402,520507392,-2097148184,-92075836,1532633087,-771030412,-326412861,-2096736426,1962936446,76595000,-1962518901,1967653958,5498887,1223370610,81802891,990999624,-1962052361,1183384132,988304908,812867072,-2130393469,1929699582,1976699652,-18426,-1960973415,264471514,61987793,1219816403,-378396211,-1996191342,914948692,-1070398240,-1956749561,-1950130715,-141882290,1946307641,80118540,81854081,-335941003,64654143,-1959169508,1002540755,956724727,1929677854,264471334,-338568239,-338564143,158725947,2057427203,-1898435837,-850742080,990736929,-1996196361,-1845195754,-779418489,195,0,0,0,0,0,0,1766596675,1918988898,539828345,1126777640,1920561263,1952999273,1667845408,1869836146,1126200422,544240239,892877105,1968046336,1881173100,1953393007,1629516389,1734964083,1852140910,658804,7171939,5066563,592728140,1380974848,808714318,3160064,808744802,947347968,1868759088,1660956724,3160175,1869508461,1902465536,1953719669,1394631781,1701147235,1750278254,544499305,544503151,1914725999,1701277281,825229322,892613426,959985462,218106368,808714240,3160064,808744802,947347968,1868759088,1660956724,3160175]},{"sector":2,"length":512,"data":[1869508461,1936019968,1852138601,1869619316,1869182066,1718558830,1146047776,1869357125,1684366433,1816723466,1634166124,1701060716,1701013878,1835101728,1342179941,1953393010,1696625253,1919906418,1347158026,540680276,544499059,544370534,667704,542396492,1702043706,1868963956,858857586,1342179890,1953393010,1814065765,1936027241,1919250464,1668180256,1702043752,1224739444,1818326638,1646290025,543454561,1702125938,1701868320,1768319331,681061,541937475,538976314,1697390624,824981292,666924,2032168772,1931507055,1948280165,1914725736,1952999273,1953722221,541014304,1311725864,2105385,2032168772,1931507055,1948280165,1814062440,1836344933,544502639,673201968,692989785,1224744992,1818326638,1881171049,1835102817,1919251557,1275071091,975197264,1684369952,1667592809,543450484,1126199156,975195471,1347158026,540680276,544501614,1768187250,1952671090,681061,1224765262,1852401262,543519849,1920230770,1852776569,1918988320,1701604449,1919950956,1702129257,1769218162,1970234733,167774836,1650552405,1948280172,1752375407,544499305,1701995347,683621,1868787273,1667592818,1329864820,1702240339,1869181810,1392511598,1702130553,1631985773,1920298089,1308625509,1329799279,1881160269,1937011311,1329790986,1869619277,1679848562,544433519,544501614,1936291941,1224739444,1380275278,541868366,1330795077,1852383314,1146047776,1885413445,1667853424,1869182049]},{"sector":3,"length":512,"pattern":0,"data":[1224739438,1919902574,1952671090,1919243808,1852795251,543584032,1162104653,2592,1919117645,1718580079,1867325556,1444963684,1769173605,857763439,539767342,539575080,2037411651,1751607666,1766662260,1936683619,544499311,1886547779,943272224,2613,12124342,12648636,13304006,13959376,17498358,19661082,22741311,25952632,30605744,33685991,35324440,39846471,42402423,45023894,49218259,49283072,2566,0,0,0,0,0,0,0,0,0,0,0,25264513,1,0,0,0,0,0,123994112,123994112,1,0,258,0,518,0,900,0,1026,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65536,0,0,0,0,0,0,0,0,0,72744960,0,0,49479680]},{"sector":4,"length":512,"pattern":0,"data":[0,0,0,0,1127941264,1279870559,1313431365,20294,0,1848117773,694971509,539831040,369098787,219677186,202116105,-63481,302846719,65282,0,0,0,536870912]},{"sector":5,"length":512,"pattern":0,"data":[567095476,339599494,-1173785597,162791932,550314445,31917766,-854608871,-400127984,35109377,567085492,1169480499,-393535027,567099060,-1275067717,-64893627,-1191044422,-578088960,567099316,41271307,-930406195,1017967243,1022719002,-972589811,16902662,171724011,117311093,1122697705,225773628,32128640,-29920255,-352196082,1963539505,-366573038,130318337,-17243008,-366573372,1008462593,-32017401,-1979586042,973204006,1979836454,-385417719,-368654847,-796262143,567083700,32056970,31925818,-256237454,-855002111,-1341344735,-1172189951,162791959,113648077,-973012502,16902406,1950957902,-9508605,419386601,65872,0,539831565,1701998413,606940448,1163022157,1850286138,1920102243,544498533,542330692,1936876918,225341289,9226]},{"sector":6,"length":512,"pattern":-151587082,"data":[]},{"sector":7,"length":512,"pattern":0,"data":[7887437,983058,32,33292287,48955592,17956864,30,62455809,283639808,284426240,285736960,24444928,41091346,43647250,46399762,49545490,52494610,80347410,88736018,90898706,93585682,106889490,274]},{"sector":8,"length":512,"pattern":0,"data":[168626701,707406378,707406378,168634922,1919229988,544370546,1684104562,543649385,1701603686,220465677,1176766220,543517801,544501614,1853189990,604638564,168626701,1701603654,1663050784,1701015137,543450476,1864399202,1634887024,611479412,168626701,543976513,1701603686,1633886323,1818583918,1646290021,1886331001,1952543333,1462006383,1702127986,1869770784,1952671092,1684095524,1768846624,1867392116,1701978228,611935329,543449410,1835888483,610561633,1635017028,1684095524,1818321696,1868963948,1952542066,1701139236,1867392107,1329868142,1768169555,1394895731,1869898597,1869488242,1868963956,610561653,1881173838,1919250529,1769101092,1713399156,1953264993,1634030116,1634082916,611609717,1802725700,1818838564,1818304613,1633906540,1852795252,1650553888,1646290284,1679844449,1702259058,221135136,1766597642,1864397939,1970304117,1936269428,1953459744,1936941344,1701734249,1869881444,1679843616,1667855973,688524645,1936019968,1852138601,1634738292,1864397938,1380982886,542395977,1953721961,1701604449,571084132,0,539634218,1919117645,1718580079,861286260,706752561,10794]},{"sector":9,"length":512,"pattern":0,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-939524096,3,0,0,134217728,167838216,264306688,0,0,0,0,0,0,0,-256,255]}],[{"sector":1,"length":512,"data":[0,0,33554432,141623296,154471207,147720429,8325350,9830541,11272352,12648625,13828294,15532260,17039609,1358430208,-846790472,1354979370,-846790216,784554026,63112902,772205567,63112902,-2168832,1995113331,117321360,-30538811,771999238,63389312,772240384,63377150,-2144445973,243262,-1336913547,-350165493,551849985,1968766500,777395778,62338757,16743555,863313758,-1241055698,113651203,771752901,63309510,-164693248,-16530682,-1336932747,1478551072,-100615704,-929026480,-945672701,-30517245,-402409970,-164692115,-16530682,-13761163,-821839058,1929335784,1048587823,1962935222,117321252,-30538826,-83639290,-100631064,-1006189010,776994819,771999904,1476642722,-1240531410,-13899773,-718340306,3,0,0,0,0,771751936,63178486,-1272154625,114747481,85566254,454986030,243871237,-1993472739,772087574,86062729,591300910,512503301,-1943141083,-1023072506,-1006176722,192282371,240978616,85572127,-1022977048,-365002706,24444931,1048587971,1946223601,-1943121673,772005142,64956041,-1896167284,62307536,1428031227,1448235347,-400617897,512491397,507184107,175244300,-1660879895,-385837079,512426306,507184107,-260897780,63192704,1342928128,939772320,1476642054,904453747,1048615943,1946158058,343186898,63192704,1348695296,939772576,1476642310,-1024763789,440141706]},{"sector":2,"length":512,"data":[222083444,113640821,1006633961,-1977780983,-2147227378,-638125879,602139954,117317808,-397343767,-497481959,-1877677069,74778684,65605374,74588220,65603326,-16318232,-972821754,247302,63192704,-385649408,434700140,-15931392,1499094623,119496027,378416890,-1959918627,-83632346,-2144418984,263742,1397757044,119442222,-397364220,1482360208,101107246,784531460,67518080,1394504960,-397298608,-1993472648,-1945893090,283870155,1776832692,777738245,67503814,-118963455,151438848,512425988,243991533,378209290,1068762064,-1677377304,-2147417880,264510,-346553228,1922928684,15651,512433780,-74775600,512358403,243991531,-936705014,118360035,-201581904,-11343446,988286128,10872838,67700422,-316765185,-398543869,-1226308363,-368654848,113704963,-64531,-1560015711,-1092090901,6154245,-2146451010,829685820,-973049112,264454,12113547,79947837,8644764,67714688,-1660718080,1939724267,1107973,-308031509,-368654845,1088946435,-18421499,235223784,48647,-1106970648,-236453845,264355332,-1106976280,-437780441,90171396,-1090056509,29233089,-871462128,-53597437,-828267277,4205827,-1962684765,313072,1381172931,900998320,772037608,65209996,-518092498,132299267,632562864,1510229992,516097883,-986820016,-1341923050,-400182236,1482294324,-2144419041,264510,1408980341,1448563281,236848725,462367,-1107220218,1843920896]},{"sector":3,"length":512,"data":[-2134575612,-410960779,-8191745,-1090292212,1049165836,-405732398,68861323,1307113355,1162756,-1107015704,937955265,2604548,-33276952,520358150,1600019719,844847450,113758144,16712658,-402585154,-471137248,1979841664,788475397,-130284583,-2143482253,-385649408,-469042207,28312437,1975519951,-805326845,-1237417938,225705987,1426065848,1317137547,1560281350,1038365391,91619333,-352321096,117321450,117113782,-971043298,258310,-125050671,68064767,236849010,73328671,-1243046881,788176381,62263038,-1150154977,-2115204267,-129434,113692509,-402586639,-1957362628,72256748,264355421,241768075,113689592,-134216719,-365002557,24444931,-316765245,-21895165,67700422,-398543871,-957873403,-368654594,113704963,-64531,-1560015711,-1044511765,-835286769,312835,-402629442,666764100,54454272,-133973784,-365002557,24444931,-326412861,1560567438,-970062066,259078,-184105426,-1044709373,22013967,-225707125,87697068,937953396,87696897,-2144990859,1349779517,787082055,66272896,1009415425,640054591,1949187456,1031808533,-1394641664,-76267716,-143380932,225820682,179054315,1007056064,-336104146,1086555077,4161574,-2144425355,17036606,521012597,-1207920151,-1007091710,113647374,-2130639883,1963966971,-197230513,1215627267,66324166,512447233,-857209875,151439101,1051984132,-402513688,113704417,-956300310,-16519930,67936767,1526983587]},{"sector":4,"length":512,"data":[3980883,-1962776600,39381235,-402635074,666763868,39249920,47179867,-208929909,994100867,1963183670,378373,243993067,-836041780,-1583025156,1076691918,63873792,80146571,4161536,-1957361036,73305836,-16455331,65879683,-1103137281,1015025601,-399019008,113704263,-1962933239,1023457494,-1677616920,-2130880280,264510,-392362380,-672400117,-402099299,15269090,-1546851331,113640429,-402586646,-1007156721,108159292,41384508,784539692,66258630,-51213568,1975519916,-1392685317,108341820,-217659858,1060897027,-970062219,17036038,-234472914,-52136701,-214007762,24379651,-1085913405,-1185479690,548405260,1605039100,687913046,1577130216,521013022,-1090614522,146342903,540847104,-492174476,67092216,1948269696,-1439780850,-1409285191,57942076,653845162,520095174,-1950152946,990105150,1912851518,571397,-1957313543,73305836,-1962471843,3965170,1959073909,4241665,-11736916,1958742698,250995214,833567,28886009,247724288,-835286241,-964471293,-835286720,312835,-956549400,264454,1023457370,-1677686552,-62396334,1366531418,787647312,973175936,-346553484,-400968652,776994925,-897575798,1642758176,1592266420,-400968704,-1036386215,-1269167243,5236750,-338261160,246700556,1476412648,-1962930248,-835286058,1089372931,63846025,-117439290,-365002557,343146499,-991373173,151439099,1051984132,-402646808,-1007092775,-1593578077,-341638132]},{"sector":5,"length":512,"data":[-368654845,-1595408125,-389810176,32045693,-2144419072,897854,1394483572,-1273051858,1527250445,1894431,686301645,-1672274432,-1273051858,-1659896307,-389865637,567083014,-1023405336,45634128,-841862605,378023457,1482294228,-1202564925,-1976683774,-855387114,-1017619935,1946172588,911375,1017968363,-402295772,-152371197,-1779936317,-2130021376,537815358,-351963314,11790577,50011,369098752,0,0,0,822784,256,1352422144,378220114,-92077073,-1207274241,801964547,-855506504,1677834287,1482301901,65539507,-1017406208,-986819042,-150739658,134218820,521013876,210962118,6416397,1405296478,-401689700,1381040094,-283735250,-359677,45615732,-1204826878,801964548,-849084232,-1655154143,-11287717,-1290901242,-1828272630,686296332,-1777928448,1954545676,-1777434362,-150863860,824838,-955878142,944390,-1564255488,145951886,210962118,512230934,-880014187,113755022,3222,212141767,1444806657,-114825136,-989031493,-1962678986,-1557264828,-13759345,-1962111202,-1557264316,-13759345,1477218078,-1022943394,0,781979045,62260990,922693134,-13759092,772639286,227030783,-30499637,-1660701170,714,0,0,1965096064,1996569629,772830233,229836542,-1273067218,109850125,785321398,229836486,-13709568,896814,0,0,-2144468992,17686334,-2144461963,256574,992875380,1963845654]},{"sector":6,"length":512,"data":[1048587788,1962935222,-1581974780,788475599,3556,0,-549552082,645202445,-365002706,510918659,370555694,773289230,62275200,-82873088,91546634,1979907200,-1275023358,-13709440,772674094,232734336,772896001,65683072,772371456,233324163,-821988096,-533790930,134217741,542003792,538976288,1347160064,538980692,134225952,844386380,538976288,1347160065,538981204,139296,1481982216,538976288,1124597792,540101967,2105376,1297040136,538976306,1342177568,538988114,-1272963040,-45356974,2005737222,-1090056670,1157041843,1954545668,-2091428338,146344646,1604776704,-989105058,-97484,521069685,-1943092231,772575518,65478284,-449410770,-954266109,-16519418,-1123610881,-175436109,-1961989185,1192069877,-1494016797,-1963392097,1973307165,-1979763986,-1995577314,-972820706,17686278,-1799411733,-1963619570,417548045,60794611,1193118457,854488478,371100159,-553204210,99287565,232720070,-87820288,801971982,-85261453,117321411,-30538826,-402406394,-986777217,-1207707370,567092527,-1156135634,622639107,364388813,382021157,567086511,774182840,233051845,95953357,382021157,567086560,774182072,236066501,616047053,382021157,567084001,-1089026770,622442499,-839179827,783941657,1460570881,113409,567099572,-849084232,1291827233,8653,-50724864,212012684,1929303272,81836761,900999344,109846989,512295895,682623957,567092660]},{"sector":7,"length":512,"data":[-1341632326,-852118481,-620327903,-652310269,-1271943165,-1339962075,-852118509,-1979282399,-2011264755,227457549,632558512,363864525,567096756,229705356,229580425,-1341278022,-853167083,-1273515999,-1943941835,-1995577850,-1173494754,397413866,567092660,900994224,109846989,512298516,414846482,-1273712626,-1339962075,-852118523,-502887391,-534869747,239843853,632554928,884220365,109846989,512295865,481297335,567096756,62719628,62594697,900995504,109846989,512295873,12059583,1009765816,-150572032,1962984643,72333842,632560816,1471816141,-1273384945,-1172189915,243990873,29032827,-851397632,88913953,-1206920541,100859904,-593296332,-1195340273,-661782254,-1961928519,-33977359,-1929599757,769167040,-762576622,-762392573,-634454226,15,0,0,-852445956,1038124577,91357972,1979913277,-1172369906,162794957,856039885,-1580511040,-1073020884,-1912207244,-850807616,521013025,12060430,170904833,-1200785984,567096616,166004364,165879433,-852152392,-385446879,-417429239,890484745,109846989,512297457,364382703,-1943941835,-1995835130,-1207306466,567096599,167577228,167452297,-852159304,-184120287,-216102647,889567241,109846989,512297453,481823211,-1943941835,-1995833082,235536158,-1876038905,259260732,194709190,-400430334,-4716806,-1172189876,-202699562,801984600,154995315,-2081065984,-1007091004,-1023228797,-402261528,12060166,-2011050697]},{"sector":8,"length":512,"data":[-2146837482,91565562,165480134,8502831,-401890113,57804129,-2147439639,760638,-1897331851,17086464,-2113947928,1912986874,521018890,-401722182,-400619882,1015021616,-1086557184,236850472,233224735,-1173977112,1049169186,1153371430,108324877,1086751519,-2147480600,236847164,1491367199,1448548843,-1408484673,57982986,-1426527318,247684958,219658783,-1207547416,1424490757,-1690402561,443875595,-1912602440,-1176816680,1051983877,-498916915,873892857,822130692,12067277,-383660724,861274927,-1073042231,-348060812,-373072136,20775875,-385649408,37552919,-385649408,71106937,-2142014208,537633806,195313280,-385649310,1048576264,1952713636,-1539407662,58029323,-2138014229,1829479486,-1712782475,-1539407872,58028811,-2147436055,1896588350,115934069,-1539407871,510947339,195313280,-2144766877,1946919998,-356895628,94169100,194723456,-384666368,1048641176,1962937243,43903235,194774726,-20715264,194723456,-385649408,113640075,-385807460,1048641201,1962937243,41543939,17021014,1593732840,-385964823,-1301150723,1962934845,-1690402643,-1502281717,1912827624,1977879201,12197533,-1562735104,-383843382,-689373579,1025667587,494206978,194723456,-401181440,292684615,225829898,47646,-912074098,1323900675,-10032642,1912843496,146936,1048638325,1962937243,52291820,-469047438,-1172380811,-628228096,-1576810334,-383843385,-2098659807,1029009923,1349844994,194723456]},{"sector":9,"length":512,"data":[-397839104,1148322547,1912733757,1073757503,-1172424073,-628228096,520358563,-386009879,678560597,1962934845,-1690402781,477429771,1912784616,277783,540873330,504198912,-1912602438,63677146,-37230305,-2130780183,760638,-1930886283,113703937,1442843549,-356518005,24936459,-1273990086,-1977496295,79888080,984656449,-1978799190,40822788,376848428,-1532702582,940170656,-1440517116,-1258845354,1931595079,-219587068,-1073042432,-1957758091,1593740231,326420283,-1442194016,-1957294613,-850938633,57892385,-1191128855,-947191744,722201133,-1190956088,-1431568383,74721852,91569980,194840262,1958742529,1340858890,199638665,1325455337,199638665,195346270,1023574248,561315844,195300992,-1539407840,125133579,194774726,-2146243839,1879811134,113641333,-352318564,-466187516,1048598027,1963002780,10545411,194854528,-402098943,326304243,-1174371607,12061674,1914817853,-1260876977,-1172189890,378080234,512494047,-558233119,16889865,1945928424,539929,1048581237,1946225567,-1626946030,12189963,56158221,113640939,-2147480673,17538366,-857209483,1589670657,-1157856791,837488019,-1676844102,1465274707,1344144981,-849759150,-1168418527,1094520181,-1962642432,533826499,1583308039,-342008999,224639496,-1430649877,50915341,-62592674,-1207178566,216531202,1577349884,1039939049,7602178,-351417926,-585725216,47113,-2010726258,-2147225066,17538622,1387937652,47638542]}]],[[{"sector":1,"length":512,"data":[-972315462,151757830,195364550,-854936576,233224737,-1979531288,168535310,840594633,195477229,1443804095,-2142310141,24459836,-391356855,-492175176,-1205926151,653656128,-1056635957,63742735,64004928,67765763,-1560015709,328683,1049857,-388896559,-388896559,-368823133,4062,623098107,-855169094,623163425,-855182150,-1694054879,915079435,-2014770204,12066555,1060096,531421326,57948732,-402265266,57868505,-2130932759,760638,37615221,1458664704,-1191736489,-1064435712,-1291401434,639639566,246744774,246660896,-2142310141,24459836,150569801,146342774,-1403625984,-1442836504,1583348194,113641230,-385807458,1631386405,2050754162,539755127,861361859,-1174959141,1017905162,-1407224518,343195658,376582204,309803324,-466472916,65140627,-403991613,1606650872,-335953058,-1172654856,567086218,-1190401350,1320419328,24322509,-432632893,984415499,1963580678,1179057401,199767689,-134212120,-1172654909,567086218,567103412,-389873293,-1007157246,199769739,-66279234,-1073042772,-1664877963,-466187986,12066315,1060096,861395086,5236937,158666044,1308623288,-107143329,378154691,-1036383780,921177973,1947024384,4319463,-352320328,3794976,1948269740,1946762260,1947024400,1949056012,1950170120,1975663108,45633252,11554816,526342314,-1396442979,-76275652,-143390404,-210490308,-277594820,-1019106621,891598854,512303565,109841312,-1022948446]},{"sector":2,"length":512,"data":[-1171971144,567084839,-1171970888,567084788,460483,-13758820,772206902,195180287,-1607008466,37538571,-30532491,235336454,-1139339745,1048578969,1946291099,2877443,-5223244,785326541,116604544,-821988352,-217645522,236916230,194624535,194723456,-1193642750,2028470533,-86643719,505751736,165877445,-1205919283,-987880145,-854989034,330833697,382017061,567085551,622180383,-149502690,522308873,505747384,167450309,-1205919283,-987880172,-854985962,95952673,382017061,567085547,622639135,-15284962,522308873,50171,0,0,-1174404120,1431440870,1464882001,-1960966570,-402190612,-544472583,-147077492,-1074527884,1854606964,1988836880,-1394920704,460596540,91537418,-352212760,29550834,1599997727,1566137176,-1763130534,-1394545919,-160160452,1064578364,1198795580,1047809084,980708412,1030893628,964114748,242561084,1497269038,108331022,1560725038,-1202704370,-147980278,772692262,1477335459,808248370,1493565742,772598542,240387838,-30538261,-351382266,1951939754,1918975014,2138717190,1021256706,1007842392,1008628804,1009349699,-400526253,1726546253,113651455,772148823,240846535,2078998544,113716880,659035,781218283,240649982,-2081191082,-1958870333,-2144468366,940094,1017907829,-398756864,921370849,1494125358,1959332622,1048587789,1962937940,686315013,-1403625984,91488316,-352272152,-2144444682,939070,-1959916428,185489678]},{"sector":3,"length":512,"pattern":0,"data":[-402426679,-689438713,-286695936,-1395510274,57982986,737733442,-402426166,1455620225,-1014762613,1116421634,1048587778,1946160725,-2081191157,-1958870333,48955986,777245235,240858763,1494125358,780302,-402632472,1583022221,1241425129,868387664,-1946748974,-151562024,189848199,125065410,-1578925,772533083,240402048,-402426624,-1014300639,225577532,1446936622,91553806,1460011566,241089294,-685830626,317215007,197351680,772505289,1359895968,1493173480,-1429997086,243859329,-1178402444,-1152188396,236847105,242530847,567099572,1958697759,-8273138,24448628,1961853379,-389051634,868483036,1419914944,1436691982,1470246414,1503866382,113651214,773852765,-1022469982,23552]},{"sector":4,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1851867904,544501614,543519605,1313428048,539828308,543519573,542393678,1313428048,213188692,1635151433,543451500]},{"sector":5,"length":512,"pattern":0,"data":[1634886000,1702126957,215482482,1313428048,1970348116,543520101,1713402729,7105653,1380977900,542395977,1969583473,1936269413,1886217504,33585524,538976269,628303136,219742323,3130,544434464,1920103779,1819569765,1700929657,543649385,1852404336,6579572,544434464,1897950825,1702192501,544417024,1701603654,1953459744,1970234912,1358980206,1091299853,1936024419,1701060723,1684367726,1225615104,1818326638,1679844457,1702259058,1701868320,1768319331,1769234787,1996516975,544417037,1752457552,1701667182,1869575200,1852795936,227868775,1931807722,1818838560,1869488229,1852383348,1230131232,1897944142,1702192501,-368202240,1668172043,1701999215,1142977635,1981829967,1769173605,220491375,232980490,1869771333,1864397682,1768693870,1679848563,1667855973,1852383333,1633904996,1948280180,544498024,168653929,544825709,1864394082,1814914662,778399337,1701597216,543519585,1667590243,1953046635,658734,1632505320,1864394093,1768693862,1679848563,1667855973,1348149349,979193426,238420000,0,0,825237504,892613426,959985462,1145258561,1650542149,1717920867,0,0,0,0,0,5376]},{"sector":6,"length":512,"pattern":0,"data":[]},{"sector":7,"length":512,"data":[-1,11536384,251723963,17826897,15335706,16515373,16515324,20447544,16515324,16515324,19398908,1385176555,824202820,-2143866578,65536,16385,129024,65537,-351928320,1094795774,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,1094795585,0,-1407284946,109850112,1456144558,1465012560,1392909909,-1407269586,307202816,-1978378357,-1976696249,973081382,-1106282556,60293132,-990903312,521014911,61875455,-986838293,-956257250,4679,48988596,-986840652,-1996444642,123405127,1516199199,-883009447,11280069,17713094,516285163,1204224172,-1946142958,-722791345,-352124744,-385928495,41025550,-1226062101,-202702409,-1007089488,4134459,-1031014797,104579331,-327745473,243974539,-523042742,12059507,-1949791360,925300674,-1878660352,1048576,23594499,23729683,376766218,-2013070685,-1996293098,-956109762,190982,51166720,212014315,236357635,-365000445,-335100158,-1107296254,-1064566022,-1946113816,48538576,-402454850,646512797,780337904,-1274936592,7137503,1189806709,-1007091024,8435793,118413454,1589638707,3389698,-1510737156,119473694,-994115789,3389698,84911603,-1064393229,521076531,-1191027010,-1510801357,-368672261]},{"sector":8,"length":512,"data":[-2130575358,191494,350443778,49678023,-377421568,-1334640384,49679873,-1460942541,-1274543943,321757,-1007093280,1370362,-776990603,199779558,-1979222784,-396302652,-1006960638,-456576175,-536730524,1388534266,1096017,76145143,1493324936,50010,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32243712,0,0,0,0,0,0,128,-32256,-2113929216,65535,-32256,-2113929216,65535,0,-16723968,136,0,-16728064,3606528,-1,-1,1625562704,276124476,-661733325,-167503968,1963763920,3467267,-13740001,-402444242,508559402,-661733325,53256494,6595578,53387566,771778211,-1560072031,-1590820828,648217394,777527040,53227263,235282016,-569981153,-956044798,199686,235324928,113709059,748,48891591,113705024,6226678,-1945961794,-23074624,-459026292,50773506,-1979804440,-1274875866,-26679073,-1191676422,-661782400,-164428018,-1191027009,-84148173,102671859,-13433057,-1191000898,-1510801357,100074767,359923713,132599,2105739892,74776834,-187007]},{"sector":9,"length":512,"data":[-502610045,868257509,-1105260801,867762782,-1264192768,-32184099,133723642,46358815,64,257,207872,0,-1273033186,522308873,702915,-235417037,91537419,-923566,818053210,567083700,722373827,755928068,817167364,-528080435,1912733757,50347274,4000626,-1172540924,115938295,69632257,-956825856,184552198,339543751,113641997,-987491265,-1979667402,3020356,-1173075450,-1813507045,309642751,1948269740,1946762491,1949056247,-385356813,-823590657,222080000,171767156,540864884,154930548,742132084,3933556,179103605,1021080768,1020818445,1020556298,1022325792,1022063625,1021801516,1019704367,1009545776,1311274809,771935208,69484160,1948022531,1048587848,1946289188,284918549,-75428494,125243392,538872110,-346690812,112234587,8452993,-1057089420,16841601,-1057091468,33618817,-1057093516,67173249,-1993459083,771766046,-352302430,50037543,-75421070,611779584,926845742,-754601728,868453359,200800210,721712338,786367482,4005513,604438062,-11081468,-401371974,-1070334286,-1342044183,109457151,-1073085402,1017965173,1006924869,772371813,69142214,-13702912,74727740,-797613764,520537646,501809412,-1608577281,-1073085409,-1410857611,-32707832,-402295352,65734943,1930113768,-2135954686,271678,2011759477,69247233,-150732615,926349281,4170496,-1325384287,870372101,926349266,1959922432,665010177,132356]}],[{"sector":1,"length":512,"data":[4130363,113715570,1048637,12112435,926349058,1959922432,665010177,132356,4130363,-1310193294,329955845,-1577104151,103481407,243925050,-315490244,4326955,103545570,29033511,267795712,45816690,535575808,79369074,1071136000,146475890,2142256384,280691570,-137219328,-775386125,1090614249,50708739,-137219328,184563510,1073837266,4327047,3743366,3743290,104570229,-1753939902,70205056,-1203276800,100859905,100859970,653722663,100859959,370344296,251986282,13796096,-150990663,-1931965455,-2116408374,1929483515,97029125,-1064435308,-24381901,-65454407,-1207524109,105907942,118410015,28955187,2932480,-1108868681,1052721664,-1178586347,-201588224,356433835,637534649,-522809,38127142,10414335,96937538,-970588160,-1962933691,1224753678,-1185870877,-2048393215,-497466880,113141,-401269057,-1958608776,1225008910,1052708579,28922133,6744064,-169715390,-401322054,547486938,-52566012,-401317958,933362894,-53352448,-401312582,966851778,-387698176,-1833239357,-55252972,-402637407,-1262814025,-56039404,-986840656,-2013221858,-1959916217,-1996216050,-1959915953,-1996215538,1204228175,771959314,70061707,-384544887,1460074826,1397903646,1543079400,1595890010,-617364729,1915759788,1997093903,-1164732405,-487129078,-320088061,1229833038,1397707331,542393935,541936965,1280463939,1380275744,1313818963,808333600,1329799216,1330795598]},{"sector":2,"length":512,"pattern":0,"data":[1279402060,541803343,538976288,0,3,1049600]},{"sector":3,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1095914049,1380012626,1048592722,1963000863,672566031,-851069949,-2097381273,1475081076,70205056,-1588562688,378210324,2951190]},{"sector":4,"length":512,"data":[14320388,-1996396381,838953494,5826815,1052718450,-2080929003,-4505401,6273535,67063,100078452,141819906,16940419,-544537995,-502610045,-293913,662767988,28835837,503325160,53221061,-12724084,990148095,-1206946622,567092505,806798638,621393923,-1021369907,-1031024077,235012281,356433671,-185276386,-13450465,-1157633560,577901514,1912633576,1460050969,-672661065,332053247,110038386,110035304,1956446570,-2084308982,-2014837052,851704311,-4658945,1913899706,-1090056463,750654782,768256,1973875708,348619576,-1189820797,-1494024095,1048587125,1946289189,357154340,923155373,-1105562368,1001198927,1962949894,621200912,935264260,357154304,-218098503,247724196,356433671,-1190667586,-201588686,-2128906842,-2130459450,-1190935353,-1494024182,1052707957,69378325,843397960,1052710772,-625060075,33601799,-1587567117,-1991769054,1166619205,-1092930764,-24439490,-1186936957,100073567,57999361,-2097116183,1963000445,33945461,-395414272,1166737605,33129224,104552054,1349780512,-2091442318,100076231,1952382977,69247237,103496171,1140917280,69247284,-351779447,-947693782,17168138,611671808,3439747,103489140,-654900192,1932805161,876872456,3425479,138739968,-972536437,33826054,-2130435933,-1006632435,-1070398339,-947698749,-1173822966,1407718314,-373032458,1150025580,1064244,1055452530,537279232,-1593608700,547554336,876882180,-955759223]},{"sector":5,"length":512,"data":[66117,198087,183468887,-1006090869,-947125155,-150732615,331547617,1166630871,106268932,855932356,197345472,1345877467,-1207545006,567096601,53223049,53347980,-1207741510,567092505,-852162120,807307553,839289859,53787139,-853210696,688310049,117710596,-1017619877,-1895825480,1048585920,1962672142,321632776,-101337624,-2013218621,1673139661,1958742803,329956079,1912607037,69379047,961271947,1979981854,538872068,637603588,17760970,251862542,51512833,-402448706,314441750,1107971,48631436,-1945960258,-209196856,-1006784536,-16485121,889127540,-1895545713,38047492,1296909763,1482184792,-1106833872,1757351918,29538561,-423713549,58769168,-218062919,895989924,180298189,249413120,-218101575,-1173850970,468193990,-1178338827,1085571072,-58693683,-2146798592,-220101892,-351077958,-851331867,-2097381273,-58656908,-940739328,92166,1780386048,-851266559,-2097381273,-58656908,-1948945152,325302978,-1233862645,185838266,-139496229,1978663107,309519,507110355,74843168,69213833,69213835,79283083,-1444162816,208928783,79254339,-1981558016,1526997022,1741505460,1954741376,16548087,-58715276,-2146732922,108168700,-384587078,1944715104,672565759,-388287741,113770093,59966505,1945953512,-66131963,1048626169,1962935333,4170007,3614455,-150732615,537279473,-972721148,33826054,50168,1380974592,52958859,1741506484,393536522]},{"sector":6,"length":512,"data":[1954741376,-1336255761,-1929609214,-58718348,-1342015603,1522792716,1408054104,1073789265,-225709577,-338567541,-654093991,-494808181,229711871,-770970669,-1958542988,-2082960437,125175033,1481239179,-1957641685,-1207752682,1481655296,-850242736,173759079,1131312612,1354825304,1499000290,-469086120,1460014452,526319243,1778814510,-1912280319,-218011106,1978469285,1358452772,378220188,1219756840,-469080115,-58716044,-2131856254,108302076,212884058,1486734329,378220227,12059432,-850242748,173759079,1478260196,1961101904,-335596796,-1946799358,-341445683,-2097381192,-998014604,-2146899194,-764116228,-1341995901,-1544816382,1380974592,672566062,-851069949,-2097381273,1482355316,195,-1106833920,1757352529,29538561,2059314419,58769170,-218062919,-1324167772,-1948200186,284795864,-1610548351,1642360179,32186380,862054032,-1896379393,-388264253,158662896,-1993420237,-351208674,113210,-79789266,796131344,771804648,284892715,-754972999,301695979,-1964440718,-1870730496,-141820109,-611400818,1962981352,1959922438,197257990,-2084145966,-75415357,-529358848,771790312,284900995,247493888,788987423,621200900,750256644,984323,-388823887,-1039938932,1096016,1755570679,1779861761,378230785,-1023998944,561380352,-489486671,426951171,284759691,201386625,-1036316814,113707895,1065,-133944413,329956035,250758632,247724319,572426527,507071236,74843168,69213833]},{"sector":7,"length":512,"data":[-1190069343,-503906288,-1996396381,83978774,-763165696,135570176,135665289,-1007002648,-551263772,-426769941,-139607199,990218704,-149064443,1161538512,-1391102466,1095894471,-1869574000,1095908737,-1179974027,-1510800898,195,1745224448,1779831553,280580353,1509029632,208994058,-141877498,-91504498,-1007114765,-225716082,1465317099,1381061456,521012766,-1962841951,755067414,-628947968,1095936,-661720585,-24382837,-1186936957,100073567,359923713,132599,2105739892,74776834,-187007,-502610045,1511983077,1599626073,1095943006,1769096269,540697974,1987011137,1866604645,543453793,1869440333,1293973874,1734438497,1847620197,1881175151,1702061426,168653934,1296126500,1986622020,1092631141,1702260578,1634681376,1293968498,1919905125,1951604857,1937077345,1869116192,1696625527,1919906418,1378093581,1917078849,979727977,1836008224,1702131056,1970086002,1646294131,1129324645,743719213,544370464,1093485392,1868767316,1952542829,1701601897,1378093581,1917078849,979727977,544165408,1702131813,1684366446,1835363616,544830063,1767994977,1818386796,604638565,1145913682,1702259058,1850286138,1768710518,1634738276,1701667186,225600884,1095902218,1769096269,540697974,1970499145,1667851878,1953391977,1835363616,226062959,1095902218,1769096269,540697974,542060361,1869771365,1667309682,1936942435,543649385,1986622052,1701650533,2037542765,220465677,1296126474,1986622020]},{"sector":8,"length":512,"pattern":0,"data":[1226848869,1919902574,1952671090,1397703712,1919252000,1852795251,220465677,1667845386,1869836146,1377858662,1917078849,543520361,1936876918,544108393,925969969,1919514144,1818326388,1936286752,977346667,539232781,1142956064,543912809,1702521203,1797529658,538970637,1699946528,1919906915,2053731104,606091877,1954112032,168653669,538976288,1869376577,1769234787,1965059695,980707694,1931486240,1869898597,168653682,538976288,1701996868,1919906915,1852121209,1701409396,606091891,1378093581,1917078849,543520361,1629516649,1634890784,1634559332,1864395634,1766662246,1936683619,544499311,1886547779,1952543343,778989417,1936287828,1869770784,1835102823,544434464,543516788,1886351984,2037674597,543584032,1919117645,1718580079,1866670196,1919905906,1869182049,1397567086,1296126509,1447645764,2117,0,0,180994048]},{"sector":9,"length":512,"pattern":0,"data":[]}]],[[{"sector":1,"length":512,"pattern":0,"data":[]},{"sector":2,"length":512,"pattern":-151587082,"data":[]},{"sector":3,"length":512,"pattern":0,"data":[3234381,131081,32,12517375,-569179670,2555904,30,31457281,32047143,39]},{"sector":4,"length":512,"data":[1,0,536870912,858927408,926299444,1111570744,1178944579,1684234849,26213,0,0,0,0,0,352321536,1364350208,1448562771,-326427130,650053390,376343296,7768894,-85402829,624733185,-1073074060,-1108867724,-386733311,119472601,1532518238,777869913,2229903,604409646,-13740032,771761206,2242303,26667211,1017957355,1022784549,1010791469,1011315755,1010725964,1010463852,1010659888,1010399033,772699440,474755,772175104,722630,179851312,653733376,-1557266425,844627975,774909156,460289,-30536469,-352321018,117321221,-1427439613,645158972,108159292,41908796,1480384292,1144787572,1128013428,1396451700,1323835508,-11409151,84330030,-953285120,268437766,-1870927104,151439150,-352318976,-30502799,1442842118,-1014762613,1921728002,1048587778,1962934278,3976202,-504874124,775351040,462475,225757451,37650478,91553792,2680918,1017927262,-402295808,-152371008,1048587870,1946157058,244002316,-922025977,132645748,14149632,-19273378,179098163,1107522752,-903087893,-2115501194,-1957248256,46367731,37915454,54427694,192151552,-1014762613,1384857090,855829250,-1959898158,771754294,462475,-402650136,-1897398192,-379692288,1347026575,-768359797,-661915913,-2013857960,-1039445798,1392997464,1543497704,-2144465941,574,568853365,1019448064,772633098,278144,772109568]},{"sector":5,"length":512,"data":[329218,503319739,534191886,1239121,-921975975,-1607595138,-397344757,-497483772,-2119515143,1946172159,347718401,-1959898368,503316510,649731854,-851397632,-1084547295,-2117926874,1946167039,653230560,-389051648,868483035,44183232,60960256,94514688,128134656,113651200,773849099,-1023408478,1442979049,544436837,808463922,0,0,788541184,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2129936197,-133449154,-1962315249,-1947204624,-1877546216,-772764848,-268198664,1939675275,-754667260,266830059,-1341224104,-1061436661,-1170308853,1913649163,66095881,-351237648,1381011489,-120459125,-1947204708,158571776,-1325396187,-337456380,-268425981,9028107,-1195157414,567086088,-854851400,1048625953,1962934284,201770744,236847360,143374879,520128232,788520168,1006638240,504002305,-1912581957,303835,378258207,-1616901214,194945547,-1962928992,-1156866034,-389870656,266928104]},{"sector":6,"length":512,"data":[-1707179259,74776587,194647689,-16679037,-788273036,194907902,378266741,-771028070,-337061516,-1108819196,1364414719,80078930,1482381658,251580675,-311096418,-1172423741,-2146994677,41220091,-1007107079,4037202,1270480896,1033523720,-1023410176,-1974329586,-1275063530,1512164622,-1325407768,71100927,408783398,1397817138,567104180,444580902,1527152013,3520594,-133962761,1354979418,567095476,339599494,1023767043,242615060,1136271118,-855002105,-1070397919,-1207514288,567096612,220105006,109850112,-1274609649,773967129,1476400034,410320700,-1409253186,225755146,1948269740,1946762491,1963801847,18606342,-1275018007,-1155412723,126484572,-12793602,-1607596939,1397751827,-19363246,1141487811,242360781,302039799,521013364,-385261382,1532690246,346173016,100675072,3016847,-1106796026,118358108,-1190430017,-1527578592,-852033352,804945953,-970060683,1543509254,386319918,-2118231040,6078208,1017956659,1023112201,1022850080,-385649395,1101660317,1948269740,1946762248,1963801604,378609,-1608577457,-218300395,57998510,-477073429,977108997,113640821,1191247889,1470759088,1181382,2048297473,1959922187,-1261765104,1008848142,-1173981697,-1410791122,-33101570,11683764,-855631682,289308705,364511488,-1174178816,1001652316,783950285,-385649911,599326342,104315429,616047053,107264549,118366669,192593758,-852950600,192592673,536969088,1065357429,235631872]},{"sector":7,"length":512,"data":[154057247,-369211928,-1377303907,378150653,-1023541228,567095988,-478871748,1342326667,839143306,-1993457171,-150231538,-1331482911,191859467,-1961863285,1334445687,226462479,-1962381430,525863263,195698313,195180169,195833481,195958409,195038856,196886153,196755081,194981512,-503845582,197002753,197017227,-1310333512,-1948003580,-391384117,2059140473,25133067,-385649632,1049297150,113707966,134052,-401890143,-1662452562,-385649923,113705127,2998,196609735,378208256,-1465709638,-1240596213,-1206484213,45613067,-58398720,195567163,-1465711243,1088875275,-310984133,194774783,957065889,1997249542,190955128,1015022846,-972652999,-347197436,-852839181,-1125547743,49676807,49677046,-789183754,-1997403439,-2012515786,-1274318066,-803091156,46727918,-792132919,-792132907,-792132907,-1997468971,-2012516298,-1593085650,1990396854,196649227,-1593083741,1956842408,190496267,-218095431,-1543045212,195338507,196740667,1055460727,-1676738561,145930763,-1594038808,378208276,243993518,-903148628,197009035,-1174308120,915081417,914951068,-1008203573,18147836,-1274316102,-31339249,-1173785152,-1343747777,16837116,196871879,2059337729,272993035,-1559513437,1166740402,196649746,101430435,-55515049,189106982,-1532819617,1975520011,12839171,195305099,1929144040,-1508996108,195338507,-503887800,195823107,512479371,346033086,1596312832,1930132159,195338612,-2080682520]},{"sector":8,"length":512,"data":[17546302,887625589,855798780,1398212315,1543265768,190679334,166397791,-1579971696,1441270716,195338747,-385878086,-1331561652,-1270971637,158662667,196216377,-1298070665,-396950005,690420778,-2094657211,687870813,-2096385530,766494,90538278,123731903,-2096085719,-1593830819,501943228,196125072,196216361,196353667,856191744,196256704,-1593068381,-1130165340,-88020981,195305097,-1157677591,280234874,-1243078195,14870779,567086516,-386170904,-1070465018,567102644,1195648,-1206750208,382018852,567083021,398073614,-851725312,320244257,-854674432,108446497,-13758820,772170294,997119,221708078,37538560,521013621,-1258307096,-819868340,1364414464,-1574515374,1145308804,1482381658,-1698821773,2091015,-1007097996,1381061456,-2069748275,1514423302,1935170393,127057646,1946158312,1355020519,1465012563,109355014,41290812,-466482000,-405669749,123442571,126621321,126760585,-402158918,1186659066,-84023288,-854851144,-236433375,537680122,121636410,104468340,192153409,121767482,787078261,130026239,1532582495,-356859048,276138760,149698185,-1995276917,-1962348994,-1995721162,-1962348490,-1995720642,-402066882,12843686,0,0,1231123049,1919902574,1952671090,1397703712,1919252000,1852795251,-1541142003,-1157123577,-771242745,-418916601,-116921337,319293959,705175304,544417032,1869771365,1931812978,1769104416,622880118,125108323,0]},{"sector":9,"length":512,"pattern":0,"data":[1701971874,1852400737,1920401511,1852404841,4259943,1953067607,1919950949,1667593327,1631715444,1853169764,1308652649,1914729583,2036621669,1684095488,1836016416,1684955501,1631846432,1107321204,1663067233,543976545,1836216166,1392538721,7038309,762212174,542330692,1802725732,1667584768,544370548,544501614,1853189990,1867382884,1885433888,1459647077,1702127986,1969317408,1375761516,543449445,1819631974,1766064244,1090546547,1953656674,1699881004,746156660,1852262688,1063613039,137297952,1207962125,1342835976,1936942450,2037276960,2036689696,544175136,1768383842,1701978222,1702260579,1864399218,1752440934,1711934821,677735529,1864378739,1919164526,543520361,1291875109,1091079944,168632378,218106381,1918981898,1735289198,1679830304,1667592809,2037542772,1819633184,144113772,1713398821,677735529,1914710387,1987011429,1684370021,570368,621415680,1864393836,1814372454,2036473956,544433524,1868785010,1701995894,147652708,0,0,1635151433,543451500,1651340654,1864397413,1634738278,1701667186,1936876916,1225323520,1818326638,1679844457,1702259058,544370464,1701603686,1835101728,152240229,1701603654,1953459744,1970234912,805332078,1851867913,544501614,1329808722,542262614,1699618913,1919907700,1919164523,6649449,2369]}],[{"sector":1,"length":512,"pattern":0,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1229324288,808469836,1163014192,67]},{"sector":2,"length":512,"pattern":0,"data":[0,0,0,0,0,0,0,0,0,0,0,197132288]},{"sector":3,"length":512,"pattern":-151587082,"data":[]},{"sector":4,"length":512,"pattern":0,"data":[16013901,196618,8650784,17891327,251267120,2555904,30,29491201,73072679,78774311,39]},{"sector":5,"length":512,"data":[1,0,536870912,858927408,926299444,1111570744,1178944579,1684234849,26213,0,0,0,0,0,352321536,1364350208,1448562771,-326427130,650053390,376343296,7768894,-85402829,624733185,-1073074060,-1108867724,-386733311,119472601,1532518238,777869913,2229903,604409646,-13740032,771761206,2242303,26667211,1017957355,1022784549,1010791469,1011315755,1010725964,1010463852,1010659888,1010399033,772699440,474755,772175104,722630,179851312,653733376,-1557266425,844627975,774909156,460289,-30536469,-352321018,117321221,-1427439613,645158972,108159292,41908796,1480384292,1144787572,1128013428,1396451700,1323835508,-11409151,84330030,-953285120,268437766,-1870927104,151439150,-352318976,-30502799,1442842118,-1014762613,1921728002,1048587778,1962934278,3976202,-504874124,775351040,462475,225757451,37650478,91553792,2680918,1017927262,-402295808,-152371008,1048587870,1946157058,244002316,-922025977,132645748,14149632,-19273378,179098163,1107522752,-903087893,-2115501194,-1957248256,46367731,37915454,54427694,192151552,-1014762613,1384857090,855829250,-1959898158,771754294,462475,-402650136,-1897398192,-379692288,1347026575,-768359797,-661915913,-2013857960,-1039445798,1392997464,1543497704,-2144465941,574,568853365,1019448064,772633098,278144,772109568]},{"sector":6,"length":512,"data":[329218,503319739,534191886,1239121,-921975975,-1607595138,-397344757,-497483772,-2119515143,1946172159,347718401,-1959898368,503316510,649731854,-851397632,-1084547295,-2117926874,1946167039,653230560,-389051648,868483035,44183232,60960256,94514688,128134656,113651200,773849099,-1023408478,-1899066116,26208478,190711436,-695286130,-1172922180,-1645737802,15591428,200541942,-402426872,-54655707,81258507,1001707147,930292173,-1274985752,1931595067,-116996340,-1173619701,48826722,-217153532,717161483,201113101,1325710056,1560247680,-967900043,1049165829,686296442,-1172343545,-54654484,76081163,-1578567801,205700612,-956001560,-66324218,-385699829,-54656063,74704907,1337605044,-2145268468,-83102938,84792481,-657391601,-388896559,244050129,-939323946,232525449,231874187,745986347,268499841,12256114,-754667248,512314339,-1833038374,70248460,1001707147,326312397,200869575,1656360082,56879369,985270448,-2131301623,135000846,200218367,-440779852,-2145268468,-150211802,1072234672,1579060739,8437259,-1190265153,-1527578496,719855382,-217153536,-558235381,939571213,31990221,8710145,-167726872,17560582,113708148,137825263,200345287,-1262286033,-31339239,195666624,1203032202,-854873154,378192673,-889320535,567086772,-1274303814,-1021194949,-1962699544,1405256662,567098292,-1923655997,2078819964,1390956035,1447468035,1577289448,24485198]},{"sector":7,"length":512,"data":[312902,-1262264737,-2044605136,51002848,339543666,-1023314173,1136265652,102878475,-883696845,1577487878,44115467,-761067776,26458893,232136329,4047659,-1207733744,-1320677376,-1545547004,-1329394216,154843656,100821225,-852155208,-836859615,-804877299,616040205,34585125,599269837,33798693,-71097907,-1509505482,28376843,906115561,195444352,-1676380928,-836829386,1979792397,-1573455092,531631014,-1342038551,-21049598,-1070377459,-473396308,23128106,1577160936,2615366,200619659,1912631528,3976210,-397477001,914948197,-1078326279,-402164983,-1161625574,28314071,-402530071,-210632627,-133432133,-1996467736,-1022626506,200619659,1442855144,1944589682,-29062398,1952201277,1560051722,-972786184,1577123652,-401829189,2092892198,210943501,1325557480,1560247680,-967900043,1049165829,-1396503092,108268860,-143343606,-1007041714,200881801,-2065130415,1785896192,-1929150579,179062351,1012888768,1309176924,334034823,-2131261694,1567906876,31516758,-1929378618,-1671560876,775750795,-352160512,774782248,2088770677,376766466,989756800,-142134412,29091918,24508295,378439,-236451861,31844353,-225731249,1560233158,1153873267,-113573633,1498284915,162642627,48825264,-115439359,157465099,-152501328,195665920,2088766066,74791425,1076643500,-1261401514,1417121095,1560233158,225583565,-402423923,-2141322857,394805442,79858371,-1086671808,-961868290,1330577413]},{"sector":8,"length":512,"data":[200883849,-1341550406,11528463,-1957603498,468233470,-1085188352,45680939,1504637440,-1342016161,-371021312,-1425211208,-1017225383,108159292,41384508,520036396,-389870096,326369380,-1409274904,192154940,-277561334,963981116,-152507570,51115014,175768180,200541942,2046981153,29016833,-352210934,-1084780470,112789797,1974399488,-2082867440,-1287059775,149148161,1594618910,163560131,-1274151233,-1411348945,-956299834,-32769786,-352210931,1017942038,1007449101,-1393068753,16663751,-1010824704,-117314568,-745616500,-1911119684,1354993371,12261747,-1014102528,443942,1659372032,4909056,443942,-167313152,17560326,116792692,1946684403,210943494,-151198232,67891974,-54655372,-52893685,1492960232,195430134,-402426369,1286865029,378085837,-1169028105,-1705899017,61,132694874,-1382400,-1023409688,918180432,-2168823,1388533850,-402049862,-1017446444,-117314568,1945934928,1017969921,168064092,1324840384,1174565789,1482439750,-469040012,2088813561,-1007142145,1975519916,1354977019,-2146137518,246694378,1482301901,-1431547709,-92946422,-2144943272,1952251773,96871941,1354975068,200351371,-166909791,17560582,-1073020811,-1559996533,108334073,-1946187544,1843921495,-389850881,915144562,344656881,-385921048,1676149583,-10426113,-326434621,-1959990141,448026068,-359980595,201000646,205699662,113690931,-401601627,208797776,1508430731,-387288574,-437583694]},{"sector":9,"length":512,"data":[200541942,-969444350,1309408006,-1190580806,113639440,-402650203,577896488,-2030024472,-851725094,1440384801,1577035752,-1274465862,-400437957,-712310713,567089844,-1956786453,1337246693,201008774,443687373,-2078980470,1963697414,1959332589,1958839300,509513189,1949187968,1455683805,-1556182185,-386692341,216596248,1049186303,1583287203,-1957210429,1309385526,-956383000,914948100,1583287203,-2141825085,108265532,-117934938,1031802859,158660864,-128172672,-469040267,-1017159943,-571976111,16443392,717117298,226279181,200883849,1979697896,169589256,-353827408,-1261007875,-853495747,-1957989855,226278128,116836659,1947208692,17098755,567098548,846395531,-1207930136,-561293568,1051992525,28844493,-840987817,-851528671,671547169,-1017553395,-1174388504,498076024,199756779,3401728,65537003,-40900352,1504976662,517682003,119655686,11819807,200869575,1320815996,1946500105,156154381,108268604,-1173620317,381880899,-1269673953,-1172189890,1102318972,1482301901,517092291,232529550,-636581066,-1958759411,1914818014,-1665057879,-1958693743,1914818015,1925266333,-529228409,-225721569,226115211,-386011160,1623129571,-868316405,-36050931,-35723185,-790039925,113755133,226233337,200357515,-167769925,67892230,112919413,1964018432,-44636152,1726487787,-46208771,-1677653016,-1644342808,1979314290,106203914,-386061336,-1007092414,-851246920,1124186145,-18775727,1495387647]}]],[[{"sector":1,"length":512,"data":[234797763,567089844,113699467,860752891,-1526282551,1119490059,-31004660,283643250,-1158909184,145754426,-2080599831,763710,109971139,1049300438,-208990764,-1929356568,-1515907466,232013449,232275513,195495679,-225721593,-401736001,-21102529,-1492219123,109970955,-13431338,-1957210543,899551,1583326963,1494318477,427159264,200541942,-1928367072,1988956031,1923611928,-1492748539,-336067725,134019329,230248899,178957312,-201662272,-1262265942,234797594,567143051,195497611,401143347,234797568,-959892655,1309408006,1509784552,-471334029,-1008213251,234798929,-702640610,899341,1587868502,521237645,1381024601,243317334,-854848840,201373729,-225762867,-1073042106,-1978239751,-80942908,1543911982,772437003,190645818,167933433,1482317504,28856515,-1205744372,567086080,1163051864,1128352848,1700143173,1869181810,775102574,673198130,1126181187,1920561263,1952999273,1667845408,1869836146,1126200422,779121263,943272224,824192053,3553337,1701013836,1684370286,1952533792,1634300517,539828332,1735357008,544039282,1886351984,2037674597,543584032,1919117645,1718580079,1347633524,155472471,707668512,3026432,168624135,1850277888,1717990771,1701405545,1830843502,1919905125,1665204345,1936942435,1852138528,543450473,1931814688,1632632871,1847617652,1176532079,1684960623,623321120,2579571,1970499145,1667851878,1953391977,1936286752,1886593131,6644577]},{"sector":2,"length":512,"pattern":0,"data":[1635151433,543451500,1986622052,1886593125,1718182757,1952539497,544108393,661857575,1952534528,1869881448,1869357167,1224763246,1818326638,1881171049,1835102817,1919251557,623321120,1392519027,1668445551,1634738277,1914726516,1769304421,6579570,1713401678,1936026729,1970234912,538993774,661857575,1918980096,1952804193,544436837,544501614,1886220131,1651078241,1174431084,543517801,1852727651,1646294127,1868767333,1684367728,1953394464,1953046639,1718379891,623321120,1426073459,1886938478,1702126437,1329864804,1917132883,544370546,1342202917,1936942450,2037276960,2036689696,544175136,1768383842,1684086894,1735289188,1818846752,695412837,1867382816,1818846752,1629516645,1684366436,543433984,1701603654,539587368,1701078113,1092616292,1852400740,1931812967,1681989632,1931812964,1495801919,539577903,1701990400,1629516659,1797290350,1948285285,1700929647,544106855,1819305330,1852400481,1768300647,1932027244,1308631081,1768300655,544433516,1819305330,1684366177,543433984,1701603654,539587368,1819305330,1684366177,1699880960,1667329136,543649385,536900389,1819305298,543515489,541029157,1311725864,1526734889,-1861582326,-1391812086,-418726646,218822922,1225464587,1919902574,1952671090,1397703712,1919243808,1852795251,604441101,20057]},{"sector":3,"length":512,"pattern":0,"data":[0,0,0,0,1610612736,11,6029312,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1644167168,735493,0,0,6044160,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,973078528,92]},{"sector":4,"length":512,"pattern":0,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2]},{"sector":5,"length":512,"pattern":0,"data":[23747149,4,65568,3801089,1595277770,3,30,1]},{"sector":6,"length":512,"data":[-1271988224,-2044605136,51658208,565842036,-1273033214,102878473,3604270,11586304,567097268,35031086,8437248,-1396100100,1223215242,104476160,-160104446,1006649064,202732587,1970420768,113651209,-1871576664,2109661419,8382722,444206,-402653184,808189979,154979442,-1952921481,702680,2553646,784532224,-352321373,1224991714,777569196,1667,1048784386,1946288128,251604485,12255232,-850873328,185037601,-336169509,-661745617,78758030,-2135301165,539015168,-218103617,16956075,-377369717,-617414398,567099316,-936652797,-1073019276,401338485,235028414,-930370273,45864587,-851397632,-1274957791,-1960719028,-2117432358,-1342110999,16957210,24489714,-2082919605,1065419499,141822477,939705219,1124168711,-952177781,70,-1090453317,229638402,-819212917,1974399553,171802629,-947128459,-1020571576,1197148041,-487914781,1991,-1090359411,-544538368,1065612171,-385649408,872611997,-1073019765,1465275508,724499339,1996488710,48646,-1962868552,371928597,108462080,-1174404929,-930414336,41075259,53398155,771751998,13827,-1833217965,-684807166,-1977163638,-684833019,-236855238,1583307608,-1036320139,-561272717,-208952085,913635131,1465259147,734891005,1324714959,-100401525,1610392819,-234662050,-204829866,1465867940,-905720437,-784216533,67013609,1604711410,-28915906,1023606784,-1073784855,227213568,227277059,168625607,1962998147]},{"sector":7,"length":512,"pattern":0,"data":[16956147,-903098997,-1275067973,1914817856,1958820612,39632390,855555305,-850611008,1380930337,1226848852,1919902574,1952671090,1397703712,1919252000,1852795251,455346701,1380930304,1226848852,1718973294,1768122726,544501349,1869440365,168655218,1330839583,540693586,1970499145,1667851878,1953391977,1936286752,1886593131,224748385,1224741642,1818326638,1881171049,1835102817,1919251557,16779789,84148994,151521030,218893066,286265102,353637138,421009174,488381210,555753246,623125282,690497318,757869354,825241390,892613426,959985462,1027357498,1094729534,1162101570,1229473606,1296845642,1364217678,1431589714,1498961750,1566333786,1096834910,1162101570,1229473606,1296845642,1364217678,1431589714,1498961750,2105310042,1430486910,1094795589,1162167105,1229539653,1095057729,1330597697,1331254613,606348373,1229005860,1313756495,-1455446106,564964266,-1313856990,-1246448718,-1179076682,-1111704646,-1044332610,-976960574,-909588538,-842216502,-774844466,-707472430,-640100394,-572728358,1407246302,-437984286,-370612250,-303240214,-235868178,-168496142,-101124106,-33752070,65534]},{"sector":8,"length":512,"pattern":0,"data":[]},{"sector":9,"length":512,"pattern":0,"data":[11164237,327700,13172768,43253759,-2105604096,3705,30,207028225,15466496,242876960,299827200,305201152]}],[{"sector":1,"length":512,"data":[-1957363712,1751276,1460454376,-129579178,-175439872,-971313533,1445986628,272033878,-1341864829,-1977289116,-316014260,1183432963,5284342,2096514617,5415176,2130069049,14465034,93775952,-16595837,1182991438,1187447302,-352321290,-161576173,2123097041,-399376634,-998044963,-163119358,956581515,-444795322,1342644408,-2096611608,2122515140,108331012,-385595160,2122514661,1920205316,1342189496,-16359797,273147959,-1996176253,-1072956858,-1414002059,837308416,46433029,-1962516853,792690719,-1414002059,501764096,46433029,-2131075445,1950613887,13285386,84600912,-2096970621,1963000958,-92864754,-2096121624,37552836,-1207274496,-397410133,-998046484,-94467326,-956299322,-1978,1586176235,38243078,-1946532215,792690904,2139099253,-478919679,1342229176,-2096840728,2122515140,460718072,-16359797,12904503,167953539,-1204259392,-397410102,-998046560,-1205015806,-1957691345,2013202014,261351426,184861827,-1207274304,-397410133,-998046592,106859266,-16615425,22210615,1577370755,1575324511,-326412861,-402651976,1183517520,1183401988,5552380,-62485680,-28931776,83814480,-1962621821,-60913192,1962950528,-27358236,1946173312,74907460,-2096173848,1077936836,258074704,-1996307325,-1072955834,-1715991435,367546368,46433028,1996431339,-25755900,-2096428056,1454900420,1996443648,248572158,-1962621821,1183448646,71731972,-1017256565,-1192457387,-773324716,74907402]},{"sector":2,"length":512,"data":[-2096195352,37552836,-1962314496,2139096158,91503105,-1578516429,74907392,-2080418072,1183384260,-1965520124,-397371385,-998045483,4271362,-1918089591,-11489722,518564982,79987463,259309578,15812343,-402099184,1178273347,-1207274068,-397410102,-998046848,5814274,-1371108016,175564880,-1979399037,1174449222,-45693010,1084227586,1178179591,855932076,-1207702592,1183399936,121676017,-1404683880,-1070398084,-16127079,468233334,46433033,-1980545399,1183708502,1996443822,117565612,-1207647101,-443809793,-1957313699,10926316,1443497960,1353467533,-402229505,-998046670,74907396,-2096250648,37552836,-1962314496,2139096158,175389185,1342229176,-2096960536,1996423876,228583430,1023591555,326434818,-2147066229,1966735743,13285386,46852176,-1929198461,-397366202,-998044291,212226,2122323573,108346029,1554939520,-893908364,-1511501824,46433026,1350566072,1353467533,-2096505368,1950352580,13285381,-1070394389,-1404662448,162130000,1074054275,-222819723,1978159104,46433026,-402360577,-997982717,71731458,1353467533,-2080508184,1183384260,74907398,-2096645912,1996423876,128968710,-1962752893,126485598,4271512,-1946401143,126486110,4271512,-113015,-1142358922,46433030,175423499,1342209208,-2097013784,1996423876,111470846,184730755,-1207274304,-397410180,-998047228,-58817790,-1604748288,966264641,1350433862,16678531,966281852,1149107782,-402229505,-998044515]},{"sector":3,"length":512,"data":[4406530,1183528573,-62506498,-2037567884,-11468966,1189674102,79987461,477413386,990147304,343211078,10307319,-15895120,-689373578,46433029,175489035,1342229176,-2097046552,1996423876,206563334,1023591555,309592067,-402229505,-998044607,-1947170046,1086719582,1996423423,1518767366,1911050495,79987464,-10844531,203417680,-1996307325,54372678,-16550656,1187490126,-11534179,669580918,46433031,-1986050423,-92036778,1024423423,175505407,1342229176,-2097074200,1187447492,-939524189,-23226,-10844531,-59310256,-2096828696,-1956772668,1438866917,1421405323,133621760,-28915882,803930112,15681271,-2094697456,1963129726,-79233277,-956598645,-1929335742,-1957647290,1090911814,1555582976,-1552384,113541898,-1912715521,-11490234,1189674614,79987460,-1066024950,1575324510,-326412861,-402632008,-1957296224,2139096158,192231937,764938122,1183383616,-955913218,65094,-1912703233,-397365690,-998047375,91570180,-335544392,-1371108017,188213328,1023591555,1047789571,1353598605,-402360577,-998047685,1958742788,74907437,-2096424728,-259325244,-2147197301,1952251768,115889095,46433035,1116401803,1183422638,1958743038,6045107,-1070354828,1575324510,-326412861,367575091,74907399,-2096440088,-11533628,1996424822,113371140,184992899,-1207601728,48955393,-443826125,-1957313699,-390056980,1996424936,6862852,169404496,-1207647101,-397410303,-443872700,-1957313699]},{"sector":4,"length":512,"data":[964844,-972634136,-1961168058,1183385670,-230257160,-230257328,171632720,-972766077,-1957760186,1183385158,71732214,-1913108855,-1924074938,-397348282,-998045156,-25263356,-1207602176,49020927,-443826125,-1957313699,964844,-972654616,-1961168058,1183384646,-230257160,-230257328,166389840,-972766077,-1924140218,-1924074938,-397348282,-998045224,-25263356,-1207602176,49020927,-443826125,-1957313699,178412,-16370712,1996424822,80340996,-1996176253,-1072955834,1996426869,166193156,50513027,65733702,-1946270069,1438866917,247000203,100853760,-16490869,130417734,-213465508,105286215,-1946663288,1183384646,-230257158,-230257328,157739088,-2096839549,1946222206,-18427,-1070398741,-1017256565,-1192457387,-1041760244,-396994811,-1986526845,1586232390,4161540,2139101812,343226881,1352140682,-2096899864,1093468868,-62486272,33834627,-1979294069,1090845766,1586169736,21480966,73304890,1968979840,1183535884,1346387974,-351959064,-62485689,1183535168,1346387974,-2080417560,-1073019708,-4716940,18344447,-2147197301,460587071,-402229505,-998045419,212226,1824001406,1996443648,152889350,-16464765,1996424310,152102918,-1962621821,-1259796874,-1191277824,-1924136850,-397409979,-998046797,200313604,-15829514,-756545930,46433032,1979969675,-2012968442,1547501126,1187382389,80108798,7387136,21335376,158591056,184861827,-1978567232,76086854,-437758122,79987460]},{"sector":5,"length":512,"data":[1575745419,1342206648,1342260621,-2096541464,-1073019708,1183467125,-1979414274,-28932091,-1962932794,-1991768506,1975056454,1183535104,1183400184,1508397306,79987710,1586092171,4161784,1183507573,-1962571522,1178142278,-385649158,2123104028,-1662300166,-1996601718,3964932,1156121460,108462079,-2096616216,37552836,-1207077632,-11534217,870844022,79987464,-402229505,-998047047,1589654274,1575324511,-326412861,-402649416,1187382320,1183652339,1183666418,-1444392718,79987463,720520842,1575324644,-326412861,-402645320,1448543244,-293341813,21284382,-129594030,-396994992,-998046887,-128546042,1141096491,13796098,-1980610935,1187509334,-1962934026,2126837342,25831154,-2012971381,-163119359,905346691,1600055678,-1017256565,-1192457387,-1175977954,-1957275901,518947829,1375814854,1358448269,115889750,113541891,737695371,38011840,-1996434813,1451881030,-163133452,1586167808,75402230,2126774666,25700082,-2081011969,2117465726,-1956684055,1438866917,112782475,57075712,75400022,-1606452224,966264641,914162758,-150974024,60359790,319239686,-1996015594,1451883590,-96024578,1586167808,-59325190,-1962898906,8914550,-2080749825,2119301758,-18199,-1070398741,1575324510,-326412861,-402651464,-2091515120,2080375934,121741375,71711128,1371027069,74381056,906363801,940970759,-62486265,-939633015,64070,-1946526069,9045622,654079684,1191116936,-92371974,-1192657327]},{"sector":6,"length":512,"data":[49020927,-1956724685,1438866917,2092493963,45803520,-666464938,-1912977783,-11500474,988284022,79987711,1031061514,13059831,-1959365200,1452001606,-62486069,-939633015,54854,-992584053,-1977156490,-92894464,1191116936,-696351786,-1964409311,999872582,91554886,-352321096,1589654274,-1017256565,-1192457387,1441267810,-175417854,-1922896253,-11489722,-689437578,79987710,527745034,1141441735,1074022027,1442989193,95873110,-150682493,-2147421882,28837236,855829248,-443851072,-1957313699,6469868,1442975720,-293341813,-1371107998,74907472,-2080468760,-1073085244,80160372,1183532041,1149845508,-396995070,-998046352,-247007484,125140992,410871,-1207602174,48955393,-1956724685,1438866917,247000203,29550592,8011392,-954305280,939586118,-1996007752,1183709254,1183666418,770199794,79987461,7997126,1781989375,1748434695,74907399,-1962908952,1438866917,45673611,25356288,74877782,76156651,-397351894,-997982295,1174702082,1962949760,71732205,1575324510,-326412861,-402652488,-346685096,108432153,1586171115,121154564,-1014299531,1015026411,-1084160,1586168902,4161540,-1070342283,1575324510,-326412861,168052363,1007515108,1007055457,738359162,106888992,-1017256565,-1192457387,166199338,1183667713,-96040488,-1962467167,-1996021226,1451880518,-62486030,-956410231,-335554490,-263812298,-1207536320,-342228993,-263812295,-1980606837,1451883590,-700004354]},{"sector":7,"length":512,"data":[2122514432,327098838,-992584053,-1977156490,-92894464,1191116936,-1964512298,999872582,-1049295802,-1946401141,-1956708778,1438866917,1448602763,75402014,1569392011,72190722,-1962519157,1979648117,142510858,1569588622,567107334,465509975,-1948283390,93063294,-1962523249,92866174,-1996333687,1435042893,141920518,1913275791,-336186620,108324872,-1962933826,209029381,1566531103,-326412861,119428695,-485994869,-1948677329,-141884290,-4603853,1101984511,-885270025,-880082314,1988886155,-1968770298,-919339196,2013218106,1090876421,-772341013,1600045451,-1957051555,1926769628,35535626,-1962642943,-371064861,-1957362945,508975084,108956423,-1070336117,-218103879,-638107218,-1962639733,-1952123945,1566531266,-326412861,-1207675253,567100160,1190530930,158597638,1946272246,218478596,96266745,854362965,809404671,105286401,145354034,-1258130432,791578656,206081,1962935101,108429573,79298561,-853887999,2603297,-1274784117,1931595086,10217731,-1962522997,83895752,1963262013,285587463,91548153,19990214,11112705,-1962183678,12059734,-383660733,61407392,-1453886464,1383432192,32311030,-1337232000,805702146,72780545,567098804,-1198274702,567100416,1971372790,-18131,45666699,-148779710,17087193,567099316,376750091,17055360,-149981926,-1194226727,567099906,1085589811,1051992525,1183457741,167977990,-1962856442,1035207766,997335501,-150512407,16778822]},{"sector":8,"length":512,"data":[45614709,-9901824,19990214,142016256,1493669096,839405193,805762797,125173505,33965815,-2147257088,1452015329,-851659772,-385649887,116786354,1979646256,105314055,846528514,-851528557,105286177,101319460,1451950384,-851594236,-153587167,16855302,1190597749,1946157320,29982733,72780691,-851246664,-555117791,35372806,145035,-25037013,57806848,-99614530,-998123634,1945831294,21620995,-72575,975604022,646526465,-963968712,-523041615,916665928,-852446207,-1331481055,1929526273,-1070391766,-1172369840,162795211,1154163149,840979279,1864380462,1634476146,544367988,1970365810,1684370025,52693517,37128695,734235648,-1260652578,908184906,27795084,2897547,12064286,908184885,20061833,872844342,-1205924351,-88464128,908184847,49286795,-986307869,-1945964026,920335322,49159935,-857144461,113587712,-628358410,905970619,49159935,-1073996025,-2135358726,869214983,380302272,-400619754,79365962,1140897792,175251917,1954595574,-829456379,2034974721,79882476,-1157357592,-75431174,141755130,1528299347,-219462845,721422009,28491489,118946955,-1880578829,-387108093,-397348764,168624284,1667331155,1986994283,1818653285,168654703,1766066701,1701079414,1920099616,168653423,1816529421,1769234799,1881171822,1953393007,1953459744,1634692128,224683364,-1173180150,-315486302,45817614,-851397632,-1205922271,-397410049,280036344,-351292230]},{"sector":9,"length":512,"data":[-1172459035,-555020348,-2081649835,1448543980,1442979006,-2096779800,-125107516,1342588557,1443133183,-2096711448,1183385284,-396929286,-998046188,-96040188,-443850914,-1957313699,-1371634708,74711041,28186367,-402360577,-443874400,-1957313699,-1957275668,92996734,-1962779253,1435173965,141921030,-854950517,2123061025,-1996125946,1300824669,106268932,-1895271031,74582597,149681715,-1107139096,92995585,1577874825,1438866783,509078667,75401991,-4603853,-1951468801,-146784063,-1017290792,1475119957,-1962467754,-678755202,-4603853,1336865535,2123102091,-1176532218,-1359806465,-1948649663,-202142722,1589808036,1438866783,-1957172085,119407742,-1070342261,-218103879,-638107218,-1962522998,1336865531,41157944,-947126477,1438866783,1586228363,-28344316,1575324417,-326412861,-1933879466,4162305,119417205,-402651720,91554195,-342245325,-31178716,-1560179549,-946470514,-2097151740,1153893574,-1979711746,-1962831306,-661912498,1038663822,-1956749568,1438866917,1448602763,-1962641781,119408254,-1070342261,-218103879,-638107218,-1493959797,872367242,-12240183,91489650,-150803647,1589742545,-373072545,-108855093,1106801646,-1946230400,-1375993225,27852427,994591348,-1961528383,-1376779312,880017832,33931779,-1980265728,-420741564,208993931,1284110595,1220619262,99288457,1291778307,-1933145090,469402074,637891586,26877580,-1023246455,-1643723226,-29556223,-1960479489,-1376779266,-227278424]}]],[[{"sector":1,"length":512,"data":[994639499,-1950518335,-1376779312,-495713880,33931779,-1980265728,-420741564,185091979,-1912310592,638839768,27135742,-661909388,1946295101,512632325,931856790,2005646827,-390057210,-969211815,19139956,-392675264,225706061,-385987074,91488267,-347189610,-1715457126,1166758339,1946265854,1237854979,-4570815,372975231,74842524,-176821551,-972832373,-1039985294,-755561102,-970210781,1962937576,-774703352,870675946,1388534208,1960017,-1957226380,66096126,-29046798,2005532670,735480582,1435060951,1515804926,860902339,1381113554,112720,-400619952,-998044464,-359672,1952143903,-1009644798,-1070397326,-1017256565,233309811,-18432,-1017256565,32039986,-1197292800,1977879041,-1338081245,225575681,225649212,91365436,132842928,1980972176,-1156337662,-1730739730,-1023300957,-135543670,-2081649835,1448544492,28718731,213391339,45633536,889147394,-2080814360,-1073019196,-964491148,3965698,1015276661,-1959169024,214401852,16664263,1191545344,-96040552,92937451,16727448,-1070463883,92930795,-106869,-2021065146,1325334990,2122532858,-562757382,1223,-443850914,110084957,512623120,-919404120,-376716917,-1958086261,184560694,-1912048394,1169093318,1174042030,-31178601,-439222901,521585923,-1946613784,66882511,384601085,870223367,232999414,1157660297,178957381,-486902336,5147123,646520598,654246326,-1957363184,49986540,50002817,-11335565]},{"sector":2,"length":512,"data":[1128487703,-1679232277,1961101826,75399178,-972786432,519963718,20059845,-853213000,243998497,132317936,-16776517,-1962742242,1286865990,110043597,512623122,118882728,-1409253186,651309976,28327552,1348825603,2885262,-930365389,-125054473,942059250,-2080803579,-930413625,-141831689,1191545382,1960852033,1948400660,1946762248,1965046788,118905067,-352288322,-30716117,-243990773,1531105163,-1056717941,620757765,-533987330,102694027,-217639393,-1440698204,-1105212533,250282113,67422347,-533987804,1136196747,-1527534816,-1951743605,1344214772,-24388469,-1073042772,574373236,-11133067,-1409175034,779403274,125116988,1560247680,-1437662091,-968364565,-352256187,3664085,1448005748,-1308164282,178957313,-402099008,-176881627,-1951735317,994790388,-1391954957,1149831047,-1947014146,1976699868,-1995964670,-16665562,1006768678,1006793737,-1957313760,788973292,1996423169,6285318,105810265,839145099,-851659539,-1957858783,72780760,-851246920,29488929,839152896,-1325208631,105314064,242565120,411383,-167086720,-2147357434,-914357387,789449344,29982721,-851181384,-154957023,57966786,-2009020032,-972960113,113287,1442660841,-1398674293,-1949239551,-1021115298,-1073683583,58032296,-1996371072,-1017314210,1458342741,-2130413941,1963072766,105182780,-1976142580,-1952970940,-152841768,16954503,1153902453,-1979506684,-1952970940,-958148136,16954503,28182215,1153900398]},{"sector":3,"length":512,"data":[-1962803198,76088388,-352321096,889094452,-164858622,1963722308,121932326,-774337640,-1266157853,393543938,1342308536,-2080707864,1149829828,1958742788,105676806,867822344,-443851072,-1957313699,1988843244,75399942,-2125696000,1963072766,121932325,-2098704232,46433032,376750091,144173142,-1979530109,-1952970940,-958148136,177287,-25093397,460653108,142338134,-16595837,2062025844,46433274,-150576000,76136499,1577337993,-1017256565,1458342741,901379635,-52153856,-488623444,1442087163,3477246,646448757,300613684,225764362,-1157613894,431554562,-851397632,-1564462559,-1956773835,1438866917,1656286347,-169416703,1988843095,-1568240378,50766846,-1560000885,1183515390,50504456,346275891,51553027,1962949760,21620995,1948597376,17492227,51119815,-1070399487,-1560081757,245564154,50373379,-1560083293,413336316,52077315,50857671,854261792,1965898880,436666118,-2144867581,209005372,50988799,50071239,384499712,1965046912,171868941,175439875,50071295,117376235,-1975123176,-397371388,-998046201,1975520002,280516287,-1863823357,79987461,1015083147,-15567570,1174602758,51165270,91875408,-1962621821,1815904496,113706869,131840,3964998,-1595341963,-1744532992,-23165303,1946174781,4668682,1480394100,-16157440,-2096956922,553557638,-23165301,1023435565,1047986197,781434883,405186559,51250943,51906247,179830784,-2014818304,46433024]},{"sector":4,"length":512,"data":[146297067,-1192039680,-303366128,-397361101,-370474592,-352321096,-1632174091,35580158,-24388629,403980779,404297712,404297753,404887586,404887586,404887586,402790434,404887586,403445794,401348642,404887586,1048778759,1946157844,51552517,-381280021,1031863974,1191605285,1962950016,734497781,-396996410,-998046946,-369652988,1600061066,-1017256565,-1192457387,1105723416,-2091493388,1946813566,235339524,4096771,376700931,50470539,1468729227,-129595134,-2080745847,67305990,1048783339,1946157838,35556112,-1995994365,1187510342,-352321286,35556109,-1727558909,-1980217719,109312598,-2097020158,202814,1183518068,-96072712,1183516020,855829252,51815360,50738827,51265155,-2094369536,2097216126,75399972,-971541238,-1958335228,1452013638,-2082932742,-621346606,-1980217719,1187510870,-352321034,-163133691,-41222144,-15143037,-11074442,1996487286,77064440,-2096577405,197694,-396943244,-997984439,202279682,-1983370493,82574926,1177552070,-113013,-1072955826,92992127,1048773768,1946157818,2086747143,539787267,2105558854,-428539649,51265155,-1592494848,101384970,192152316,16154243,28837237,855829248,1441288384,46433026,-443850914,-1957313699,571628,1475548136,134661974,-2097143805,1946158206,114192,-2096954719,33751558,-335788407,35556147,-1995994365,109313094,184681218,-955943488,48168006,-386107649,-997984603,-2081387774,197694]},{"sector":5,"length":512,"data":[104401524,74646284,51132043,51396235,1048837675,1962935066,250107655,46433025,-59310250,-2097058328,1048773828,1946157850,-152545529,46433024,-443850914,-1957313699,178412,-1577941016,1183384322,71205886,108331011,51119815,922681350,922682106,1996423948,104267524,-25755901,-2096940312,2122517188,108291844,1191476867,1048778869,1962935064,205423377,175374339,50738943,-2096946968,1048773316,1946157848,205423377,175439875,50738943,-2096950552,109249220,-955776254,202246,51028224,50071051,1996427892,50981118,184730755,-1207601984,48955393,-397361101,-443875036,-1957313699,-390056980,-2091453976,201790,512440437,1342112510,41911042,-1978565632,512427078,931857150,76023807,233563178,50214655,-402360577,-998047027,108347396,51644159,117376235,-1956773102,1438866917,45673611,-241506304,1048794711,1962935060,74877777,1249834507,512439275,1342112510,41911042,-1609466880,512426760,1066074878,92801023,250340394,50214655,50870015,-2096991000,1967129796,336002820,1321634563,-964706293,51658371,-1962445568,100729926,1599996690,-1017256565,-1192457387,837287938,-1957275663,2123039862,339641094,1282736131,512439787,1342112510,41911042,-1978500096,-31552764,-15758590,-1999009017,-337368569,-29950194,-1744532990,34334800,1074054275,117376117,-1958345964,-1073000505,1048822901,1962935060,105286407,51512833,-443850914,-1957313699]},{"sector":6,"length":512,"data":[702700,1475397608,104237910,-1983892733,1183448134,272534520,2129155587,46433268,737822345,75377656,-1325197663,737727235,440304632,359989251,1965898880,138314512,158674947,-397371220,-997982572,138314498,192163843,125763339,52051587,-2095483904,1946158206,-129564922,-2097127704,202302,1191118452,7334140,52051587,1462138112,-2080462616,2122515140,158597124,16285315,887620469,373195520,158597123,16547459,1122501493,-92864768,-18290602,-2096839549,203326,113708404,2097928,-26482601,1577239683,1575324511,-326412861,-35078093,171869167,74711043,48966576,1352147120,-1946289176,1438866917,-1070338933,-1192239128,-397410256,-997982744,373195522,359993347,49954435,-1341885440,-1341985960,-397371272,-997982772,1575324418,-326412861,-402652488,1448603564,-2147060085,242559548,50470539,50464387,1178569474,-13419797,2083536000,960266291,1043934847,192217860,1966095488,134661894,-1409273853,-774927464,65130977,65130959,820609992,1015085451,-2147124176,-478267076,-1996202357,1590070079,1575324511,-326412861,-402652488,-1101598908,233505509,1178076298,-1207601916,149618689,3964998,-1070338443,1575324510,-326412861,-1947053336,1438866917,1223224459,1575324658,-326412861,-1947058456,1438866917,887680139,1575324658,-326412861,-1947063576,1438866917,11791499,1426228201,-326898549,-1957275900,1149896310,-2086037498,-167349248,1950352964,-18426]},{"sector":7,"length":512,"data":[-167716119,1946224196,105676806,-2131825888,-2147350964,871302756,38046144,2122971275,105182974,-1978698488,-1952970940,-152841768,16954503,1015754868,184843307,1460829951,-1979419393,1352140612,-2096989976,1183385284,71601150,-956004032,33489476,-1979425653,126354502,1156999915,1316291590,35454593,1149906293,-397371385,-998047639,1975520002,-1375287499,-954241535,52429892,-1744354166,-472786805,45385670,553961217,-1195840765,-397409792,-997985677,71600386,108314635,134630528,1283496939,29295622,1183667968,1149915140,-397371385,-998047239,-28931834,1962835513,-13506301,704923274,-1956684060,1438866917,1586228363,352027396,-75296387,-166953984,1073860231,28837236,855829248,1438866880,-326898549,-1957275900,-13433738,42133590,-1979530109,52692548,1014301244,134628598,1149898613,-661940217,-2013862959,1946223284,721718055,1183384644,2126515196,1962889243,121932292,1994936472,113541889,1962690107,105676807,-16608,-1996209013,38061828,-947191808,-443850914,-1957313699,82609132,348018263,-335596798,105155095,8628632,-397014156,-997982343,24395778,147227463,47986233,-947133581,-443850914,-1957313699,106387180,556675,985610357,106334977,1208239755,1407715189,-349736448,-1976136888,292833281,225769275,-1996340085,-397013946,1935540282,80118576,25886337,-771029901,-4716939,501979647,-1014769013,-1310994161,-1259613437,1914817864,76124905]},{"sector":8,"length":512,"data":[-1996335991,855738934,1583286208,-1017256565,-1962127733,38550007,-964490124,-1963032316,-101550847,-628408341,963779587,-1047604341,108394299,20323897,-1014815117,-774123249,-773074453,1979137003,-1579613431,-668270168,1253359758,225583565,74839867,20321929,-1962637422,1448592337,-1962258805,1451951174,142510854,-66642345,1958742675,184124179,-771027339,766511737,-2082736214,-621346606,865269643,1958742994,-1812859134,-2020412937,1009779923,67270201,-1031034329,-495598837,-1404107384,1149764998,-147107841,1582888306,1438866783,1586228363,-829950460,242491393,859964088,-841905207,-385649887,-2013859318,1971323342,8513795,-1962389877,119408214,1476182067,-1947169962,-1201282054,-1359855606,-1957612939,1237986255,567087331,-1645214820,162792563,-1073002005,-1186582668,-356909054,-851397630,-1274776799,188017417,1494906048,-974399605,735021905,-1675506230,1939730435,-351685628,1975520026,-829950442,192167937,-2147066229,58006079,-117117960,1495009464,-963968398,2146000734,139365361,-1274653045,1931595072,-351685628,200008685,-152603200,1073860231,-628422028,1964654464,-689178621,470333689,-1957310229,73305068,-821663872,50013,0,0,0,0,0,1766596675,1918988898,539828345,1126777640,1920561263,1952999273,1667845408,1869836146,1126200422,544240239,892877105,1968046336,1881173100,1953393007,1629516389,1734964083,1852140910,658804]},{"sector":9,"length":512,"pattern":0,"data":[20971840,6029404,6044225,540697381,622870077,2675,684837,6029404,774766638,1543527424,0,1852727619,1394635887,1414742613,1847615776,1870099557,1679846258,1702259058,1953451520,1869505824,543713141,1869440365,1224767858,1919902574,1952671090,1836412448,544367970,1881171567,1835102817,1919251557,1850278003,1768710518,1634738276,1701667186,7497076,1868787273,1667592818,1329864820,1702240339,1869181810,1632632942,1847617652,1713402991,1684960623,135659520,0,0,0,0,0,0,0,0,0,0,0,0,0,0,539,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20578304,0,0,0,0,8192,0,0,0,0,0,0,0,0,0,0,0,-2122252288,65921,0,0,0,0,0,0,369098752,219677186,202116105,-63481,302846719,1128005378,1279870559,1313431365,20294,0,1312,66848,0,16908288,0,33947648,0,58982400,0,67239936]}],[{"sector":1,"length":512,"pattern":0,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1848115884,694971509,539831040,168624163]},{"sector":2,"length":512,"pattern":0,"data":[1125222889,1702260335,1684370546,0,24402509,524297,32,9961471,1992294806,2555904,30,6291457,7733287,17039399,49283111,49938471,50528295,64946215,77266983,39]},{"sector":3,"length":512,"data":[0,0,0,0,1,0,536870912,858927408,926299444,1111570744,1178944579,1684234849,26213,0,0,0,0,0,352321536,1364350208,1448562771,-326427130,650053390,376343296,7768894,-85402829,624733185,-1073074060,-1108867724,-386733311,119472601,1532518238,777869913,2229903,604409646,-13740032,771761206,2242303,26667211,1017957355,1022784549,1010791469,1011315755,1010725964,1010463852,1010659888,1010399033,772699440,474755,772175104,722630,179851312,653733376,-1557266425,844627975,774909156,460289,-30536469,-352321018,117321221,-1427439613,645158972,108159292,41908796,1480384292,1144787572,1128013428,1396451700,1323835508,-11409151,84330030,-953285120,268437766,-1870927104,151439150,-352318976,-30502799,1442842118,-1014762613,1921728002,1048587778,1962934278,3976202,-504874124,775351040,462475,225757451,37650478,91553792,2680918,1017927262,-402295808,-152371008,1048587870,1946157058,244002316,-922025977,132645748,14149632,-19273378,179098163,1107522752,-903087893,-2115501194,-1957248256,46367731,37915454,54427694,192151552,-1014762613,1384857090,855829250,-1959898158,771754294,462475,-402650136,-1897398192,-379692288,1347026575,-768359797,-661915913,-2013857960,-1039445798,1392997464,1543497704,-2144465941,574,568853365]},{"sector":4,"length":512,"data":[1019448064,772633098,278144,772109568,329218,503319739,534191886,1239121,-921975975,-1607595138,-397344757,-497483772,-2119515143,1946172159,347718401,-1959898368,503316510,649731854,-851397632,-1084547295,-2117926874,1946167039,653230560,-389051648,868483035,44183232,60960256,94514688,128134656,113651200,773849099,-1023408478,163580651,542333267,808594995,-852446128,1038124577,443876116,-1106833832,-21036964,2144520,521053427,-1274464582,-350106342,521048140,-1274710342,102878473,-883900365,-385499462,-1430650192,44755205,567089588,-1006708598,1929660392,104380942,4037202,28835840,-1608397492,1074006166,-1173979998,-1705900424,61,839127016,-754530624,113639432,-973076268,17356038,148244166,-12681215,-1468719096,-1435173060,150879872,-1264356352,-31339239,144089792,150865464,-1974430604,-1207370210,567100425,-1023996814,108270080,-385518406,1347945004,567086516,-32964960,218414024,-1962933830,1478872522,-2146340264,-133364674,1048584819,1961889028,45082907,150904912,-979222524,113359366,4037202,-2115502080,-1075095549,874416976,61728777,67698336,144155200,-1274501726,144161358,-855636295,-33066463,-402074618,1320420285,-855071302,874416929,-165448951,17355782,116794229,1963002067,115523100,1149956867,2025851404,214139664,154410633,117353451,-2031613741,-32077309,506639368,1468735949,-23060720,-1144455672,28904708]},{"sector":5,"length":512,"data":[1478872320,1156252531,218414736,1946172544,1015086127,-1089571611,196675881,1973875456,-703660519,220511752,1946172544,-449019885,515837556,768265,2104862451,148180734,-1593610008,102959315,1836386517,-1572862888,-1012791117,-1279591416,148356872,1929484520,-26679037,-1089944646,-1964504857,-1947045375,82411980,-1240561393,18016265,-23010446,-1572862968,-1516107625,150446600,-1576488030,1320421571,-1190594630,567083030,1320423283,-1190594630,567083016,1994988402,144161281,-1275066439,1931595086,23587075,-1274501702,1914817870,144161524,-1207959367,567100161,-1207396422,567099648,-1190615622,28835840,-1172189885,12060837,-1172189887,129566899,-851659776,-1556319711,-1011218203,-851659768,-1557106143,-1273100043,-32077262,-954086136,7239,17950751,-308209294,-385479928,-586806520,-653915384,-401509368,-445448096,-369255959,45744365,-1875121402,148967051,149100171,149233291,-849935944,-851528671,-250705119,-216626424,-182547704,1459730440,1051992525,-169336371,102349312,4037202,-1070465024,-1705897493,61,1376176826,15770,-1258311680,1495387468,244040697,512428470,79300823,1048793357,1996490973,-653379318,-1962641656,-1274488562,1914817855,1975598042,-1982856234,688502806,-2096572154,580894,-1949815975,-2096568546,585022,238619255,74909929,149491339,567099316,-1053054094,-805067147,163190409,149489193,149757571,-1195116544,567098624,-1951664014]},{"sector":6,"length":512,"data":[1107474648,-768358093,-1414848051,-1414806901,12112435,-1205744318,567105280,-1951678069,-1161581630,1307117031,218413823,163057291,242534955,149233291,567099572,-1053039502,378215029,243993016,-903149126,512480372,1085540597,-898489907,-965426885,666420217,-1596420608,-922875650,-402652998,242352272,251805313,108374613,-351465026,850694231,150869642,1200234957,740232726,-661939976,-1215568943,-167048256,512366709,-1397094146,-1337674749,-1324829427,-1960719008,125275610,-24951226,-2092600065,410386174,378156724,567085310,-470295925,204473915,1913399998,202948099,-843118818,1227017,-2136673284,-133573314,113640821,-1602221123,-922875650,856277179,1103793106,7546573,-1185889448,79364097,1478872333,146326360,-1205744372,567086080,1376176826,15770,-1202666752,567100424,163057779,1914817860,12777233,-351570672,27889670,-133991168,1492763480,1464947651,512490582,-490862284,-1074593018,-947713897,768259,-272718605,-1074593018,-947713883,768259,1600038131,1455643481,-490843305,874416902,-1074593015,333973801,116375040,154410635,515896067,321545,-1017225381,1017956659,-1442548690,-1325929663,150569760,1101661309,62518763,1235921920,1455684469,-859942569,145997574,-1190934653,-1527578612,-1090070594,-947713853,833795,1599710451,1631830878,1953459822,1398362912,544175136,1699618913,1919907700,1919164523,6649449,1850279254,1920102243,544498533]},{"sector":7,"length":512,"pattern":0,"data":[542330692,1936876918,225341289,1850287114,1768710518,1919164516,543520361,1667592307,1667851881,1869182049,93192302,1635151433,543451500,1634886000,1702126957,95158386,1914728270,544042863,544370534,1953724787,1864396133,1701060718,1852404851,1869182049,1768169582,-1073714317,1668172037,1634757999,1818388852,2037588069,1835365491,2053731104,99156069,1953724755,1948282213,1936613746,1920099686,168649829,1309017088,2037588079,1835365491,544108320,1634100580,544500853,1986622052,658789,1850279451,1953654131,1937339168,544040308,1802725732,544106784,1986622052,1663377509,1851853325,1953701988,1701538162,2037276960,2036689696,1701345056,1701978222,7955553,108791354,1850277953,1953654131,1936024608,1634625908,1852795252,1936286752,1852383339,1769104416,622880118,1628048739,1931502702,1802072692,1851859045,1701519481,1752637561,1914728037,2036621669,-989430272,218120710,113704970,1395543881,21337,1291845632,1397703763,1398362926,1330184192,1398362926,0,1308557312,1397703763,1398362926,-16777216]},{"sector":8,"length":512,"pattern":0,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1090519040,1330207802,1398362926,0,1547321600,1329877837,1498623571,1090519123,23610,0,0,1090519040,23610,0,0,0,65792,0,0,0,0,0,0,0,1090519040,774528058,42,0,0,0,0,0,0,0,1397555200,542330692,1498619936,542067027,538976288,1398362912]},{"sector":9,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7340032,1301296363,1397703763,3288627,67586,50462722,587857,262161,1,0,0,0,251658240,0,872022017,-1127182656,118914048,906000571,1444820933,733958934,768380,-2144948996,57933885,-1442477530,-236796790,1200168710,721929986,378207100,332234237,278947442,653760636,100891670,100891676,1067678734,2084021116,-150986568,-1954803418,58460958,-201897789,2083980801,-1593507653,-1796703169,-402542592,426901673,196737931,2111159808,225814259,-1105166451,196705760,1957098240,2104933912,838885864,1578552804,-1895526625,432865860,-344080450,85762539,922210867,-1057063925,-1585693534,1034124343,117488508,-394512479,413204543,990259836,-397393796,1918369869,1007036623,17593980,-142854394,58460966,-1965429800,-1971579602,-1954677482,-360956642,7340032,1958742700,-1290882015,-351220225,-137219085,-25421770,991332546,-137219204,-2005132746,-1552143850,-1262257095,957778690,-789935492,-2133929778,243974374,-511673285,-1966208449,-1971574218,-847381226,168674067,762212174,1953724755,1679846757,543912809,1679848047,543912809,1869771365,1376390514,1634496613,1629513059,1931502702,1802072692,1851859045,1701519481,1752637561,1914728037,2036621669,218106381]}]],[[{"sector":1,"length":512,"data":[1936278538,1866604651,1713402991,1970039137,168650098,542066944,538976288,1398362912,1329877837,538976339,5462355,0,0,0,0,-1437270016,-131072,-1,201722868,199363536,33554689,20971584,134218238,256,16908288,7340544,33489536,33556480,0,33554689,23593024,150995708,256,16908288,7340544,50135760,33556736,0,33554689,157286624,251660281,512,16908288,7340544,66651552,33556736,0,1280,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1526726888,96504912,243990544,-939327202,-1946464375,50406926,-145782328,18878091,-1946595447,-1996413938,1049359695,378208552,78709016,244048595,451084566,280347942,80184065,52878732,-2097080274,-402456123,67231118,521070306,-1962868545,281444850,734759681,1487205326,-78147846,-67541109,16084991]},{"sector":2,"length":512,"pattern":-151587082,"data":[]},{"sector":3,"length":512,"pattern":-151587082,"data":[]},{"sector":4,"length":512,"pattern":-151587082,"data":[]},{"sector":5,"length":512,"pattern":-151587082,"data":[]},{"sector":6,"length":512,"pattern":-151587082,"data":[]},{"sector":7,"length":512,"pattern":-151587082,"data":[]},{"sector":8,"length":512,"pattern":-151587082,"data":[]},{"sector":9,"length":512,"pattern":-151587082,"data":[]}],[{"sector":1,"length":512,"pattern":-151587082,"data":[]},{"sector":2,"length":512,"pattern":-151587082,"data":[]},{"sector":3,"length":512,"pattern":-151587082,"data":[]},{"sector":4,"length":512,"pattern":-151587082,"data":[]},{"sector":5,"length":512,"pattern":-151587082,"data":[]},{"sector":6,"length":512,"pattern":-151587082,"data":[]},{"sector":7,"length":512,"pattern":-151587082,"data":[]},{"sector":8,"length":512,"pattern":-151587082,"data":[]},{"sector":9,"length":512,"pattern":-151587082,"data":[]}]],[[{"sector":1,"length":512,"pattern":-151587082,"data":[]},{"sector":2,"length":512,"pattern":-151587082,"data":[]},{"sector":3,"length":512,"pattern":-151587082,"data":[]},{"sector":4,"length":512,"pattern":-151587082,"data":[]},{"sector":5,"length":512,"pattern":-151587082,"data":[]},{"sector":6,"length":512,"pattern":-151587082,"data":[]},{"sector":7,"length":512,"pattern":-151587082,"data":[]},{"sector":8,"length":512,"pattern":-151587082,"data":[]},{"sector":9,"length":512,"pattern":-151587082,"data":[]}],[{"sector":1,"length":512,"pattern":-151587082,"data":[]},{"sector":2,"length":512,"pattern":-151587082,"data":[]},{"sector":3,"length":512,"pattern":-151587082,"data":[]},{"sector":4,"length":512,"pattern":-151587082,"data":[]},{"sector":5,"length":512,"pattern":-151587082,"data":[]},{"sector":6,"length":512,"pattern":-151587082,"data":[]},{"sector":7,"length":512,"pattern":-151587082,"data":[]},{"sector":8,"length":512,"pattern":-151587082,"data":[]},{"sector":9,"length":512,"pattern":-151587082,"data":[]}]],[[{"sector":1,"length":512,"pattern":-151587082,"data":[]},{"sector":2,"length":512,"pattern":-151587082,"data":[]},{"sector":3,"length":512,"pattern":-151587082,"data":[]},{"sector":4,"length":512,"pattern":-151587082,"data":[]},{"sector":5,"length":512,"pattern":-151587082,"data":[]},{"sector":6,"length":512,"pattern":-151587082,"data":[]},{"sector":7,"length":512,"pattern":-151587082,"data":[]},{"sector":8,"length":512,"pattern":-151587082,"data":[]},{"sector":9,"length":512,"pattern":-151587082,"data":[]}],[{"sector":1,"length":512,"pattern":-151587082,"data":[]},{"sector":2,"length":512,"pattern":-151587082,"data":[]},{"sector":3,"length":512,"pattern":-151587082,"data":[]},{"sector":4,"length":512,"pattern":-151587082,"data":[]},{"sector":5,"length":512,"pattern":-151587082,"data":[]},{"sector":6,"length":512,"pattern":-151587082,"data":[]},{"sector":7,"length":512,"pattern":-151587082,"data":[]},{"sector":8,"length":512,"pattern":-151587082,"data":[]},{"sector":9,"length":512,"pattern":-151587082,"data":[]}]],[[{"sector":1,"length":512,"pattern":-151587082,"data":[]},{"sector":2,"length":512,"pattern":-151587082,"data":[]},{"sector":3,"length":512,"pattern":-151587082,"data":[]},{"sector":4,"length":512,"pattern":-151587082,"data":[]},{"sector":5,"length":512,"pattern":-151587082,"data":[]},{"sector":6,"length":512,"pattern":-151587082,"data":[]},{"sector":7,"length":512,"pattern":-151587082,"data":[]},{"sector":8,"length":512,"pattern":-151587082,"data":[]},{"sector":9,"length":512,"pattern":-151587082,"data":[]}],[{"sector":1,"length":512,"pattern":-151587082,"data":[]},{"sector":2,"length":512,"pattern":-151587082,"data":[]},{"sector":3,"length":512,"pattern":-151587082,"data":[]},{"sector":4,"length":512,"pattern":-151587082,"data":[]},{"sector":5,"length":512,"pattern":-151587082,"data":[]},{"sector":6,"length":512,"pattern":-151587082,"data":[]},{"sector":7,"length":512,"pattern":-151587082,"data":[]},{"sector":8,"length":512,"pattern":-151587082,"data":[]},{"sector":9,"length":512,"pattern":-151587082,"data":[]}]],[[{"sector":1,"length":512,"pattern":-151587082,"data":[]},{"sector":2,"length":512,"pattern":-151587082,"data":[]},{"sector":3,"length":512,"pattern":-151587082,"data":[]},{"sector":4,"length":512,"pattern":-151587082,"data":[]},{"sector":5,"length":512,"pattern":-151587082,"data":[]},{"sector":6,"length":512,"pattern":-151587082,"data":[]},{"sector":7,"length":512,"pattern":-151587082,"data":[]},{"sector":8,"length":512,"pattern":-151587082,"data":[]},{"sector":9,"length":512,"pattern":-151587082,"data":[]}],[{"sector":1,"length":512,"pattern":-151587082,"data":[]},{"sector":2,"length":512,"pattern":-151587082,"data":[]},{"sector":3,"length":512,"pattern":-151587082,"data":[]},{"sector":4,"length":512,"pattern":-151587082,"data":[]},{"sector":5,"length":512,"pattern":-151587082,"data":[]},{"sector":6,"length":512,"pattern":-151587082,"data":[]},{"sector":7,"length":512,"pattern":-151587082,"data":[]},{"sector":8,"length":512,"pattern":-151587082,"data":[]},{"sector":9,"length":512,"pattern":-151587082,"data":[]}]],[[{"sector":1,"length":512,"pattern":-151587082,"data":[]},{"sector":2,"length":512,"pattern":-151587082,"data":[]},{"sector":3,"length":512,"pattern":-151587082,"data":[]},{"sector":4,"length":512,"pattern":-151587082,"data":[]},{"sector":5,"length":512,"pattern":-151587082,"data":[]},{"sector":6,"length":512,"pattern":-151587082,"data":[]},{"sector":7,"length":512,"pattern":-151587082,"data":[]},{"sector":8,"length":512,"pattern":-151587082,"data":[]},{"sector":9,"length":512,"pattern":-151587082,"data":[]}],[{"sector":1,"length":512,"pattern":-151587082,"data":[]},{"sector":2,"length":512,"pattern":-151587082,"data":[]},{"sector":3,"length":512,"pattern":-151587082,"data":[]},{"sector":4,"length":512,"pattern":-151587082,"data":[]},{"sector":5,"length":512,"pattern":-151587082,"data":[]},{"sector":6,"length":512,"pattern":-151587082,"data":[]},{"sector":7,"length":512,"pattern":-151587082,"data":[]},{"sector":8,"length":512,"pattern":-151587082,"data":[]},{"sector":9,"length":512,"pattern":-151587082,"data":[]}]],[[{"sector":1,"length":512,"pattern":-151587082,"data":[]},{"sector":2,"length":512,"pattern":-151587082,"data":[]},{"sector":3,"length":512,"pattern":-151587082,"data":[]},{"sector":4,"length":512,"pattern":-151587082,"data":[]},{"sector":5,"length":512,"pattern":-151587082,"data":[]},{"sector":6,"length":512,"pattern":-151587082,"data":[]},{"sector":7,"length":512,"pattern":-151587082,"data":[]},{"sector":8,"length":512,"pattern":-151587082,"data":[]},{"sector":9,"length":512,"pattern":-151587082,"data":[]}],[{"sector":1,"length":512,"pattern":-151587082,"data":[]},{"sector":2,"length":512,"pattern":-151587082,"data":[]},{"sector":3,"length":512,"pattern":-151587082,"data":[]},{"sector":4,"length":512,"pattern":-151587082,"data":[]},{"sector":5,"length":512,"pattern":-151587082,"data":[]},{"sector":6,"length":512,"pattern":-151587082,"data":[]},{"sector":7,"length":512,"pattern":-151587082,"data":[]},{"sector":8,"length":512,"pattern":-151587082,"data":[]},{"sector":9,"length":512,"pattern":-151587082,"data":[]}]],[[{"sector":1,"length":512,"pattern":-151587082,"data":[]},{"sector":2,"length":512,"pattern":-151587082,"data":[]},{"sector":3,"length":512,"pattern":-151587082,"data":[]},{"sector":4,"length":512,"pattern":-151587082,"data":[]},{"sector":5,"length":512,"pattern":-151587082,"data":[]},{"sector":6,"length":512,"pattern":-151587082,"data":[]},{"sector":7,"length":512,"pattern":-151587082,"data":[]},{"sector":8,"length":512,"pattern":-151587082,"data":[]},{"sector":9,"length":512,"pattern":-151587082,"data":[]}],[{"sector":1,"length":512,"pattern":-151587082,"data":[]},{"sector":2,"length":512,"pattern":-151587082,"data":[]},{"sector":3,"length":512,"pattern":-151587082,"data":[]},{"sector":4,"length":512,"pattern":-151587082,"data":[]},{"sector":5,"length":512,"pattern":-151587082,"data":[]},{"sector":6,"length":512,"pattern":-151587082,"data":[]},{"sector":7,"length":512,"pattern":-151587082,"data":[]},{"sector":8,"length":512,"pattern":-151587082,"data":[]},{"sector":9,"length":512,"pattern":-151587082,"data":[]}]],[[{"sector":1,"length":512,"pattern":-151587082,"data":[]},{"sector":2,"length":512,"pattern":-151587082,"data":[]},{"sector":3,"length":512,"pattern":-151587082,"data":[]},{"sector":4,"length":512,"pattern":-151587082,"data":[]},{"sector":5,"length":512,"pattern":-151587082,"data":[]},{"sector":6,"length":512,"pattern":-151587082,"data":[]},{"sector":7,"length":512,"pattern":-151587082,"data":[]},{"sector":8,"length":512,"pattern":-151587082,"data":[]},{"sector":9,"length":512,"pattern":-151587082,"data":[]}],[{"sector":1,"length":512,"pattern":-151587082,"data":[]},{"sector":2,"length":512,"pattern":-151587082,"data":[]},{"sector":3,"length":512,"pattern":-151587082,"data":[]},{"sector":4,"length":512,"pattern":-151587082,"data":[]},{"sector":5,"length":512,"pattern":-151587082,"data":[]},{"sector":6,"length":512,"pattern":-151587082,"data":[]},{"sector":7,"length":512,"pattern":-151587082,"data":[]},{"sector":8,"length":512,"pattern":-151587082,"data":[]},{"sector":9,"length":512,"pattern":-151587082,"data":[]}]]]
      • PCDOS100.json
        [[[{"sector":1,"length":512,"pattern":0,"data":[1322987,6291456,1294808864,942504289,49,0,0,0,0,0,0,0,-930285056,12245134,-1127051776,-1577354240,-661750778,12238990,-842888448,-398364141,-76414888,34507566,12276092,-1177406720,29229064,28333568,332202676,1482564210,721479656,-32213818,-1107185211,-969211896,-259324813,1452671467,786295632,2080648959,-1199749954,844135746,2133110015,-1269429388,506638,-346156851,12305392,309504,-855506504,879894035,-661731188,-1191182145,-2144993269,-2144985075,536879245,-1074535865,1992163328,768381,1973875708,2146063,-1182956866,-1494024181,-1021377931,-394462786,11861925,-115403059,1309281731,1395486319,1702130553,1768169581,1864395635,1768169586,1696623475,-227577230,1699875341,1667329136,1851859045,1953701988,1701538162,2037276960,2036689696,1701345056,1701978222,234447969,416088074,1766066701,1109420915,544501615,1818845542,233140853,1380974602,12568203,65533698,-1017619752,1700949842,1327527026,1634030119,1651056754,1869177453,1868767264,1651093613,1936680045,1868767264,13217901]},{"sector":2,"length":512,"pattern":0,"data":[67108862,-268107712,8390655,184590345,-536018752,16781056,-16703471,1611989327,25171713,469757977,-534969920,34602753,603975713,1613103088,42991362,738193449,-265485632,-1,872411185,1614086976,59768579,990093369,-532872256,67124995,-16506815,1615135823,75515652,1258594377,-531823424,83906308,1392844881,1616184640,92296965,1527095385,-530774592,100687621,1661345889,1617233472,109078278,1795596393,-529725760,117468934,1929846897,1618282304,125859591,2064097401,-528676928,134250247,-2096619391,1619331136,142640904,-1962368887,-527628096,151031560,-1828118383,1620379968,-1009911,-1693867879,-526579264,167812873,-1559617375,1621428800,176203530,-1425366871,-257094976,184594431,-1291116367,1622477632,192984843,-1156865863,-524481600,201375499,-1022615359,1623526464,209766156,-888364855,-254997312,218157055,-738201391,1624575296,227540749,-619863847,-522383936,234938125,-485613343,1625686000,244317966,-351358977,-521335104,251719438,-217108481,1626672960,260110095,-67112711,-520286272,268500751,51392511,-251265039,-980993,201322761,-250740751,-978945,335540497,1879048177,293672721,454143999,-249753151,302063615,603975969,-249228735,310454271,722641193,-517139775,1048338]},{"sector":3,"length":512,"pattern":0,"data":[67108862,-268107712,8390655,184590345,-536018752,16781056,-16703471,1611989327,25171713,469757977,-534969920,34602753,603975713,1613103088,42991362,738193449,-265485632,-1,872411185,1614086976,59768579,990093369,-532872256,67124995,-16506815,1615135823,75515652,1258594377,-531823424,83906308,1392844881,1616184640,92296965,1527095385,-530774592,100687621,1661345889,1617233472,109078278,1795596393,-529725760,117468934,1929846897,1618282304,125859591,2064097401,-528676928,134250247,-2096619391,1619331136,142640904,-1962368887,-527628096,151031560,-1828118383,1620379968,-1009911,-1693867879,-526579264,167812873,-1559617375,1621428800,176203530,-1425366871,-257094976,184594431,-1291116367,1622477632,192984843,-1156865863,-524481600,201375499,-1022615359,1623526464,209766156,-888364855,-254997312,218157055,-738201391,1624575296,227540749,-619863847,-522383936,234938125,-485613343,1625686000,244317966,-351358977,-521335104,251719438,-217108481,1626672960,260110095,-67112711,-520286272,268500751,51392511,-251265039,-980993,201322761,-250740751,-978945,335540497,1879048177,293672721,454143999,-249753151,302063615,603975969,-249228735,310454271,722641193,-517139775,1048338]},{"sector":4,"length":512,"data":[1112359497,538988361,105729859,0,0,0,131831,1920,1145913929,538989391,105729859,0,0,0,393997,6400,1296912195,541347393,5066563,0,0,0,1245956,3231,1297239878,538989633,5066563,0,0,0,1704708,2560,1145784387,538987347,5066563,0,0,0,2032388,1395,542333267,538976288,5066563,0,0,0,2228996,896,1263749444,1498435395,5066563,0,0,0,2360068,1216,1263749444,1347243843,5066563,0,0,0,2556676,1124,1347243843,538976288,5066563,0,0,0,2753284,1620,1163149636,538976288,5066563,0,0,0,3015428,252,1162692948,538976288,5066563,0,0,0,3080964,250,1162104653,538976288,5066563,0,0,0,3146500,860,1229734981,538976334,5066563,0,0,0,3277572,2392,1430406468,538976327,5066563,0,0,0,3605252,6049,1263421772,538976288,4544581,0,0,0,4391684,43264,1230192962,538976323,5066563,0,0,0,9962244,10880]},{"sector":5,"length":512,"data":[1230192962,538984771,5066563,0,0,0,11404036,16256,542396993,538976288,5456194,0,0,0,13501188,1920,1347240275,542328140,5456194,0,0,0,13763332,2432,1414680397,1162297671,5456194,0,0,0,14091012,6272,1330401091,1380008530,5456194,0,0,0,14942980,1536,541545794,538976288,5456194,0,0,0,15139588,640,1162625347,1380009038,5456194,0,0,0,15270660,3840,1230198093,538976323,5456194,0,0,0,15794948,4224,1263423300,538990917,5456194,0,0,0,16384772,3584,1163217986,538976288,5456194,0,0,0,16843524,1152,1330468168,538976338,5456194,0,0,0,17040132,640,542134096,538976288,5456194,0,0,0,17171204,768,1414680390,538976345,5456194,0,0,0,17302276,768,1145979204,538976345,5456194,0,0,0,17433348,640,1129464141,538976328,5456194,0,0,0,17564420,768,1380013139,538976339,5456194,0,0,0,17695492,768]},{"sector":6,"length":512,"pattern":-151587082,"data":[542392648,538976288,5456194,0,0,0,17826564,768,1279345491,538989381,5456194,0,0,0,17957636,640,1430995283,538984786,5456194,0,0,0,18088708,512,1129466179,538985804,5456194,0,0,0,18154244,1664,1128614224,1414676808,5456194,0,0,0,18416388,2304,1128353875,538976325,5456194,0,0,0,18744068,1920,1280065858,538976288,5456194,0,0,0,19006212,2048,1296912195,538976288,5456194,0,0,0,19268356,4352,-151587099,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587099,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587099,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587099,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587099,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587099,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587099,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587099]},{"sector":7,"length":512,"pattern":-151587082,"data":[-151587099,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587099,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587099,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587099,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587099,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587099,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587099,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587099,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587099,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587099,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587099,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587099,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587099,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587099,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587099,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587082,-151587099]},{"sector":8,"length":512,"data":[-385785111,-1293352851,14215424,-385816343,988348708,55699713,-385658135,11600196,1229062178,1444959055,1769173605,824209007,-1607454674,1244475954,942500981,168624177,544503119,1881171567,-228233119,218106381,1769099274,1919251566,1969317408,168686700,1091177728,1226864757,1696616239,-227577230,771754509,167995040,1377072576,-855526254,1024029718,74805760,-1073082192,-883235190,1711719982,-70319357,-1514515888,8710144,600660058,1141509583,1684633193,1986994277,1818653285,168687471,-1336241664,109456896,-1073085594,-1840112267,382533812,-378224629,1970405437,1007726594,772109568,57026184,-883235190,1448300629,772715607,-855636037,1532911376,1355504984,113651282,-1174404251,11796480,1052383181,549778944,1337593973,96794112,-2144466060,16999734,65593717,-883402240,-1406209401,125075236,1610671258,-2014057728,1347601394,-1275068230,-1173041918,-990511007,-402426866,-1973747750,1355504358,-1174293422,348979200,1954596086,6404804,11844843,-930284853,-795944818,-83663428,332260402,349021104,399311284,-1071312435,375040,33941715,402688,37494644,-523171979,57149126,45529857,130537475,-2017001472,2,-1247614767,12066306,-1193767424,1856176224,1812383488,-956264448,-1761607674,172800,-1996446533,-1560280034,512294918,245563404,270436608,1221376,-1912581960,444376,100663296,-1912557128,327727552,14727420,-13379442,-1510738037]}]],[[{"sector":1,"length":512,"data":[-1245831417,39426,-1157955407,448004352,243999181,-377421818,-611581696,-661731188,-1274910278,169987343,-952732224,166406,-1945712896,-956301310,16938758,-853036032,1008657185,-1910868735,-1899786533,4242643,-1957642189,-1275035626,1394724122,1342243000,42908363,2063515112,1329791486,1312902477,1329799236,205,0,0,0,0,0,168624128,543449410,1830842991,1769173865,1126197102,1634561391,1226859630,1919251566,1952805488,168686181,46269440,46269122,706,33554432,33554689,20971584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-352144384,100905986,235347486,-47806177,-64583676,1748926468,863305987,-1896467682,-2032104738,520422438,561300538,-1572797358,-1480981309,-41621500,-1897057506,436651741,113647108,522060828,382533812,-1845448614,-151648074,-997800706,83862417,-947126090,-405674031,-405674031,-947782909,460456447,-271523961,-416644940,-533012597,-527826314,-389772720,710410317,-29068092,1409044680,-63012858,460587524]},{"sector":2,"length":512,"pattern":0,"data":[-1185811573,520487168,1707017998,-203453695,521034149,117469672,-1156191397,118358373,-1962908184,-1956968461,12145147,1504047873,1476577152,520094952,181139463,-1268288320,987834889,-1979549984,-997568288,1476410344,-456080342,-471073790,-855591785,175394323,-58669173,1476621440,118368235,-997537909,-1090516295,-1359870744,624010,83824267,83699339,-872872161,96338352,-64583168,332222468,676905586,33881862,150569160,-973208458,230883761,1936607498,544502373,1802725732,1702130789,1919903264,1769104416,1101030774,1851859002,1953701988,-445945486,1851853325,1701519481,1752637561,1914728037,-110861979,657933,270549120,50595849,100794626,67896332,202113032,2]},{"sector":3,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51456,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,541406240,874524980,153100356,923353668,1163010604,1162690894,537529634,538976288,538981684,538976288,538976288,538976288,220209184,1094201354,859316280,540356640,538976288,538976288,538976288,1464076576,1313165833,222645569,1094201354,909123649,540357664,874525237,859119665,540357664,1111755040,573322761,1396789829,168632901]},{"sector":4,"length":512,"data":[51679209,1396395264,1077755452,1095912255,-352275391,771523102,11540854,777541839,363529871,777058972,363542271,1998911874,115444457,1448563998,1347637586,-1423537874,378285589,-863234643,-725822322,-2010186986,-1978303194,-788482084,-58524445,-1140621812,-13756460,-100630121,-1423537362,378416661,-326429267,1476413064,1582979419,119496031,604365775,202399761,1308693761,1108423441,1527852305,403606801,201383953,1494119694,251916035,1326282765,772154882,-2130403066,1493228802,-586296818,-587145971,-587145984,1040243968,-1861859834,504259085,1309814802,1913017862,571672081,-1106023149,-1023365101,-1014047949,436651558,-970580476,503585798,20766858,104600436,121376628,138152820,171706228,11535220,-12654141,-1710259736,6291471,1354926787,1477408232,1610617498,1580974848,-1927776500,-1947479752,-787909831,-772812305,-101723665,-410922031,1354960895,-4226892,69789711,-74726568,-570168367,-271458557,242433931,-489561391,-489561391,1042305,-410974997,-99880960,-1094500471,112399391,-1189771585,-1494024188,-251459468,-260715522,79283193,-215961600,-1963625042,339131331,-1210545449,1676198911,1392144897,583710,-389849337,-93191850,-661731188,1946139880,30992625,1912616936,-448823063,-208989580,-1189771585,-1494024181,2105674868,-160153601,1929401064,646628324,-722070127,-964484062,115638287,116846452,1962874282,2124530659,1178288149,-1555074296,78714238]},{"sector":5,"length":512,"data":[-768352045,-757997359,-2147393909,-201858845,1720375947,1493580544,1392866324,1526922984,51893434,22414298,2118028227,2117814037,-1994951928,-2095743426,-633659197,-1057093006,47835218,399817562,1692976120,-389809917,-5177515,-130353038,113702004,-956361659,478930183,185759373,990409947,58133598,-401966104,-495714494,-402528024,-1070464205,8186051,-964462734,361938693,1912643560,-15144852,-8231054,-1100843777,-1648421498,440597,-2034260493,361938453,-1409283143,41238332,1135216522,96925154,-22026234,922695795,113710462,-60034,1493101032,652748915,-1090810881,196679046,-962268416,-15448826,-1089102402,112792966,-391777536,-1301020986,839039720,-1259813952,-1006653438,-1442396626,-930349035,-2034253682,-1393390827,363438638,-12844876,-1031599499,113672967,-1392548726,-1859745746,1959957,1015206258,-881526496,-402650183,91557544,1979260988,1914715326,-270357830,104345283,-126741434,-439249512,341552779,-29431613,-8216718,-1977191169,-1057095610,197624746,-1196703693,-1381302144,-1515859829,-1409792885,-1424654687,-1414806901,-1431584717,1569269443,-1010814442,360580807,1183514623,1808896,1183449184,291899904,-855765896,28632436,341116475,104521076,208999509,340985543,113704960,16716885,341378759,-1192689665,-806858752,175265793,1946633770,-371657034,-812973947,-922824445,-1662457995,21358848,-1950154576,-12745990,-947715211,394101255,-152210177]},{"sector":6,"length":512,"data":[1962876485,-402289945,678625087,-1275050358,104541697,427103317,521018962,341182150,1360956160,112916,340989579,520197352,-43587494,2124499058,1161504277,641692950,-1994895989,1435182604,39094544,307596070,637817993,-1995156085,1541996116,293503489,-971475711,-402648762,1364328475,1390956627,1499158529,-19856550,-1326484024,1187431168,-5242863,122063555,-1978507635,11865678,-1023060341,256246680,-725888885,112919,-27465533,-2034291854,768277,-1359855696,-970055820,18196998,-270000558,-401247236,770244302,-448823043,1558718324,536245245,-1006653350,-8193675,-1958972161,991093516,225905742,-1915122861,31986294,-9181176,-1090811045,96015750,-1510759424,-1441427040,112312371,-1847022605,-1070355699,-217665193,-1545055318,-128034048,1072258823,-1863823106,-1974446080,1503854694,-9902060,1476395752,7137475,-969999757,1422598,1006634472,-1007782911,62991255,1727484624,-670868991,1446707380,-32345595,253115332,-32869888,169229252,-33394176,786747588,364193290,1426081418,-1356429010,-1909523947,773172502,363538059,-1993464627,773172006,363665036,-728839028,-1356428498,1012792085,-1017482238,1426081418,-1705881261,6291477,1566269274,1158084291,-126550252,340068038,341417984,-1963011608,1398079558,412766801,1509974016,1935498079,113651419,-402582091,20774758,784589172,363542213,856972430,-1094676800,-2000748534,-1515870976,-1899459419,-390033704]},{"sector":7,"length":512,"data":[-1070397409,-1391030534,-1423537387,-1093104107,-2134966136,1487250709,1582979419,119496031,788475643,820516224,50915334,686294763,73656326,17122787,13796096,1458060779,49342464,1323836907,72083456,1239948779,48293888,1105725163,71034880,363542213,-486257527,66822,637588099,639714697,170087816,637826294,-1960544888,645866696,-2145368696,-506363679,-980757807,-1993940342,-1607594939,-1178397262,-91553791,1979661698,130515715,-1960753781,868426581,-1308178743,-1017445355,-1962571184,-167047563,-2135030155,242583808,-1014047860,-611398772,1492941544,-24913550,-1241353664,-1106343680,364552981,364648073,364265097,340336267,364387977,363988678,-1291401728,-628424683,-895228169,-1014279659,56354551,13796291,-861710731,-1580168427,1586173386,1943223041,-1544292537,378082756,-796191288,-1576843742,-1047849551,-754692470,-1038710294,-1947797739,1225130952,13796116,1235294836,1977153300,-768391167,-1096550665,-957941995,34976262,199477387,-1022200179,363988678,1539912449,365470147,-1072965237,1177226612,735639297,50623448,-1545915453,-1014295090,1995952691,366125825,365958793,1569400515,1435182618,1960512284,1942629149,868877064,1569400530,-387587304,-8259216,-596439048,-498926713,1245823986,-1038709821,-1323398635,75425813,991278242,1964266262,341155848,1946175034,1443296832,376766228,780883282,512431191,28906577,1393986304,-36968428,116808285,1979651508]},{"sector":8,"length":512,"data":[1360956172,112916,-47847342,1393985882,4622868,1436745908,1462667540,-1291401708,1049297173,-141879880,365825675,915009795,915084728,906171473,851645896,-8263488,1258720774,1944703252,-1510759423,-996031737,-995934187,-972670187,1996599317,-402608126,-142082209,118359582,340467342,24373713,128316324,1443284511,-154992364,-15355130,-1314904204,985726485,443941702,365043339,267975553,1988957555,-125376494,365051529,364906239,-1314783056,-104597483,1017818307,-972851955,171706884,192279520,856138728,1976110070,-1996420025,-1995159754,118863934,1049299317,-2144987722,-377481651,-1006239523,169101630,-32607013,-387942965,1017837598,-336011238,-1960898858,185878326,-2136050186,-2146108610,113706612,-8383237,-1168701871,2028475643,1493655301,-2112553538,-1921705412,-1331029328,121301002,-1679034829,1340721459,15198465,654147048,-2112463477,-1636499457,272993062,308120358,365561387,365698587,175495794,-730546165,41140539,216582283,-1039234050,-30545899,-1066022645,364910217,365043337,365837955,-402426880,1048837821,1946162642,-17569620,113652082,-1979640397,-1961512682,-1961504242,-401227234,1347879507,1260293662,-74848236,-480552673,-117735058,-1308069105,-1073283328,-1948194027,-1592412618,-125102664,340330027,-1960390093,-235467188,364774971,113648244,184620466,-971410222,51753478,-1912157653,-1827386618,-372129741,-206962317,1074238379,-24393589,638960289]}]],[[{"sector":1,"length":512,"data":[-1592113783,-1993992768,-1163846587,-1139373291,1225253653,-763117309,-1581039360,-1073015344,-828139148,-28055531,113742194,5576,-335673112,918888070,-478145463,1960512127,1959525918,1976303120,440183840,-1565836,-336141818,-1092047852,-535151370,-1408570376,91494972,-502924312,243998710,1049302462,-1762978378,921225355,-401153027,292749819,363988678,364552449,364648075,364265099,8186307,-973010199,-402579899,-102171626,1166616071,1569400340,-32234,-1125611660,365601276,365696651,55171811,13796289,-1979615497,-388823986,1166747216,1435182608,24573714,24433163,365339456,-1039234216,-55449579,365043337,364910217,544522795,-1957592349,25290952,-1954188712,-1072264248,1950958101,-56104957,365043337,364910217,365837955,-1962445824,-401227234,-761135824,1958742805,-1006239438,-45094891,364054214,-1323922943,-1038185707,-770798827,11659285,-1910615977,-401323234,1495267961,-1308040357,-1073283328,-1578702059,-1073015344,-828174476,-48764907,365430471,-504889344,364421628,340330027,365561347,365696651,-1962880381,-1237414966,1161504277,1293624848,638087698,638600585,-1961732727,-384451058,-538313122,197692414,758871242,-628948991,24573696,-754692470,-389510168,451148763,1912650472,-1237414947,365601045,272992550,638962849,856835465,-4537399,18147343,17909446,-617357333,408782630,-713762037,-352256024,-1974250773,-1057094842,-1037377398,1989005707]},{"sector":2,"length":512,"data":[47378,49617896,13992648,745785915,994296970,1273853179,365043337,-1957506773,23525313,364394123,-1197226493,727341077,-1071775270,300440341,-1008825600,-517289429,646499582,-896854607,-1974350101,1246364750,-754261293,1493849603,-2097509437,58064701,-1190672509,1166671873,206932768,-355344176,-494217008,11982474,1379205059,-1014279343,994300811,696126558,2130706749,-4564183,6088719,1522608984,54658191,56003266,-146669386,734563298,1997912590,-104254718,-194058045,2118650996,1709741001,-1828489996,-746077973,-2115452277,-489124876,268417715,-957057048,1526796614,1172855385,-2029744140,1979649019,-1237414965,1569269269,-768359656,1962160104,-389575688,-130157488,1926793999,501793773,-117472780,-1946782961,-386667553,963835016,1962934146,360620349,373655846,1053094795,-4713399,-1459209728,-1425443563,-1414807298,-1441427040,-33536374,-1180390720,-1510801403,179945523,-1532628224,1170679491,-1325400554,-1993948161,1053038173,-1070394295,82740138,548971941,244000,866823155,702912,-1012225037,-1946843672,1389327098,373656350,2124619534,-198383595,-2115412217,-200873729,-546111568,639747971,200101259,-1190955575,-1070399360,-8203725,1175745791,38046534,-1387204105,-770969097,1074033754,-1421737611,-1330986357,1090093824,-2010732173,-1993424091,773081366,340467340,-1899459389,1529777112,-173086700,-1978507635,-1057094842,1242322571,17909446,-989770101,-1995068618]},{"sector":3,"length":512,"data":[1418265180,72124678,-1022473076,1260293166,-1899459564,1225181144,-1593802732,1537414237,341156116,460645386,-774337640,1571785699,1443284500,378208276,1371214931,112916,-1963491096,-1256962546,341687808,-1957277267,-167122712,-186492578,780873411,1183454299,-186072320,558205437,-2094836344,1933577853,611682544,-1962887485,-1608577318,-667282362,-472780173,341677963,341513865,-1899459389,-1242395712,-1073042176,-594873740,-1019544182,948045174,-1979550707,1255181021,339583022,339714606,343654230,-41228918,1827206538,1954495490,1946696758,1947024434,1946827845,1947745381,1947941990,1946172514,1945254432,-956388845,167864040,986936804,1188000763,-890517506,1994917808,-339481855,36563025,-1089687209,-1359871995,-773223585,-1493225755,-391507915,-2007039668,-956366987,-611531380,-577846386,-1978369090,-1012599858,837291440,-385175551,-202899156,-1333531649,19064924,-1513378,339714094,-385766168,-167051426,1323831668,92939776,124985404,292817212,167789544,168261092,-33327873,1307135695,-45131777,548458122,-486034605,158772750,25002534,-32934903,787669707,339680810,-889004502,-66592384,-948674725,-503314456,-20911109,145772494,-1342130200,11724832,-1377236816,-385830912,-880083165,132894506,-352309016,-1274957566,1962031616,1962621455,-391468021,-939655049,-337459458,989781993,-17206021,-706132281,518398,-117247741,-385954839,-880148169,393531178,102003785]},{"sector":4,"length":512,"data":[-1957230818,-1359853570,125110111,-889007626,1573113642,-1325488151,4646976,503732063,536803816,-561357305,-151054615,-24188460,-1461118288,-1257324802,1309682447,806360847,-384845296,-552615921,-988822257,1931492367,1946762257,1588613133,1476397032,48971788,540852874,2134670706,-30538380,1343503622,1476402664,1610615194,116796928,1962873920,826001,1019412576,1008038928,-1022266365,1610613658,1022915584,-1695779565,6291462,1610614426,1947220992,1963146289,2107649762,1946827797,1963539460,-396578808,1810431908,-1909523714,773172502,363538059,1515805528,526212958,-383529721,-2144407749,18104374,1019461682,1008759821,1009087496,773747977,202653088,1373173496,11913354,548407267,-486580248,784554489,339543750,-10491648,1024392750,-11015916,1610613658,1946202112,-1006695195,1342179048,1493121000,-9377597,-1966867596,1979661506,236047,11534432,110817396,-1023385600,1610615194,-1031093504,-12785584,825944,-1950154656,607956210,-35063692,787934206,1948531884,-17635091,11728363,108314634,1946183656,11554555,1914715266,24936983,-401509062,1076625492,976095094,1981040134,1191162370,571818,-2113922072,24456764,244038,771756008,363536069,856192905,-1968460864,568902594,1008301056,1008039456,-1341754070,-1426896577,1060940353,-897580171,1189339649,-1426906960,615301966,1918975103,2004499462,1008741378,1022260256,1021998141,1021735980,1021473851]},{"sector":5,"length":512,"data":[1021211694,1020949562,1020687394,1020425259,1020163119,1019901019,1019638877,-617364727,-661994610,-472783919,639076646,-1023254644,-986791282,-1911182538,-164424612,-2135294325,866513664,-1898344759,8961730,-1526723905,782607781,340594315,34507046,-2117457152,1980760057,268417283,721423547,-773729831,-773729823,-1982165279,-1996487154,-956299234,-855638010,84330016,-775710208,-773336601,-773336601,-773336601,1381090279,1435731,-1587979685,-523234238,-523181872,-523116336,339805706,-855591741,1958742554,1090913015,339845652,1117839498,318356244,1994402519,1093044451,339910676,1117962494,1980513300,1107740371,1134559508,-1564410348,52696131,41229488,-73219842,471843602,505355807,522067743,521019166,-1577080088,512431171,918885441,1552487851,129762566,839140489,-5192768,129821057,-108791950,183662455,183399670,-2098563886,-445182722,-25026802,-2113047294,-646504966,-1040838030,-1022528509,-105134454,-1036331246,-210567248,11817298,-396879155,110100357,-1070459839,-400617789,-1047789757,-489563509,-489565743,-754724399,-1181564653,-235411189,-1070344053,-745803273,-150943559,1694139121,-360578190,-628427420,11718865,1018811089,-1963854080,-2030962950,-1422473788,106727701,839140489,-5192768,1931017602,1022984952,-24972429,-2098302148,-378313478,-436847440,-1056767819,-1961398087,-1948125222,-161173304,-2084043801,11993298,-763114749,-1148087808,-470292213,-141374841]},{"sector":6,"length":512,"data":[-2084502557,-1148059438,-201981947,11913354,-1835481974,-796134409,449642932,1355006002,1277185618,1093751888,1126193237,1127304527,1310740047,52448341,33620224,2,0,0,32768,0,0,65280,16776960,0,0,0,0,0,0,0,0,0,0,0,-215613440,-1293353820,-50672643,234991080,-1574523897,1572541510,376618772,-1958770394,641942511,-1441369952,-259303763,-796152915,1325808422,637826580,-1407955037,1957349630,-989947895,-92931888,-1515535222,-1031035484,-388823631,642304139,856180227,-1410205742,1435857,1906517504,28353814,1375732154,1510021864,242532922,-225786310,-277491574,206503718,648733931,638019318,-1425717757,172360486,172394790,637599720,-1207153015,648675583,638469770,50423543,-1608098056,-1057089936,376480294,1174813222,-385649900,648937306,340729483,51893432,1369646787,-83667180,-947782909,78709105,-276041773,-661733325,-2134916978,1161216,-959935317,-369049594,12650183,-1012727779,637184,113748979,1376388,9176775,113704988,1835152,-1426057800,-1426038600,113748907,1573016,-628176244,113759491,8393801,340465289,-1558946399,315429979,-523041103,340632366,-644953805,8914631,378077440,521011338,378078990,-1587675133,-523168689,1946247685,341688101,16781241,-498645243,-1093760006,-836037006]},{"sector":7,"length":512,"pattern":0,"data":[-33294197,125353995,66650953,-369278479,2045378168,1727407870,1174611463,100869637,723916401,-654898106,72256038,-1958680365,-796180280,-1038882095,24546086,860407299,-1007224878,-617392610,-2134916210,-1105261051,2025395826,-1079708928,525534594,1442860222,-218102599,96952228,1569260928,-1021354494,334168064,0,0,0,0,-2113929216,91489276,-2110849234,1448169477,-33153449,247530184,92978951,918888206,196673656,-1527514112,-1901977842,7905541,-1593473373,-2002583430,2013710085,-1945794048,117471758,1499356959,-13722536,-1677360610,521018960,-1559918943,-2002714504,8037125,-895657953,2]},{"sector":8,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51456,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,541406240,874524980,153100356,923353668,1163010604,1162690894,537529634,538976288,538981684,538976288,538976288,538976288,220209184,1094201354,859316280,540356640,538976288,538976288,538976288,1464076576,1313165833,222645569,1094201354,909123649,540357664,874525237,859119665,540357664,1111755040,573322761,1396789829,168632901]}]],[[{"sector":1,"length":512,"data":[220649,-1946157056,-1898410296,16825552,25487611,567089588,229953674,246686157,116793805,1962869812,64797211,567085492,-854851144,1012868129,1007252558,-957713063,275462,-1896167284,16825552,-388460805,736624966,1578515201,-971607036,17037830,-402599192,372965658,91489374,-352252696,-100219150,62783491,156417793,73139854,-5921284,-2096866770,78712770,19851987,855704342,-2584896,-83853266,1377766942,1509984488,681722116,-2134575613,163470965,29685251,247333748,446934275,480488707,-1605373,218071808,213844854,-1212314880,-1260943614,-1172189943,567083795,66731650,-1170639616,162792236,28844493,-400438004,537657401,1765540020,-989983628,108294716,1631372542,-997532299,-819996789,-1274854470,-1172189943,567083809,-820051280,-1274838854,-1205744375,567086087,-1157686807,-1269824727,1478610185,1545506499,16824836,567089844,901390094,-854608892,1958742561,58767886,567085492,-854849608,-941954271,-855353850,1476839172,-956301308,17056518,131119360,-1274792518,169987367,-1162251072,-789904544,512634620,12452956,131119361,-768349743,-489684051,-1021374725,-1207876422,567092514,-1207892038,567092515,-1342071878,-1172189916,665846151,-977067571,-587017470,-419241470,67303426,1769101059,1881171316,1702129522,1311011939,1914729583,2036621669,1952531492,1699947617,1394895717,1869898597,1869488242,1868963956,610561653,1953067607,1634082917]},{"sector":2,"length":512,"data":[611609717,1802725700,1634038308,1920410724,539260009,1869771365,1920409714,1852404841,1919164519,543520361,604638529,1919902273,1377840244,2037544037,1732845612,1701998446,220471359,1818838538,1818304613,1633906540,1852795252,1650553888,1646290284,606889057,1850280461,1768710518,1329799268,1312902477,1329802820,1852383309,1769104416,1092642166,1850280461,1953654131,1397703712,1936286752,1852383339,1769104416,1092642166,1851853325,1953701988,1701538162,2037276960,2036689696,1701345056,1701978222,226059361,168633354,1702063689,1679848562,543912809,1752459639,1952539168,1713399907,610626665,1700006413,1852403058,543519841,1668571490,1869226088,1495801954,1059671599,16786464,1330926913,1128618053,5521730,0,0,0,0,0,0,-1,-1,-1,-1,-1,1329791233,1312902477,1329799236,77,0,0,0,0,0,16777216,0,-1174339396,78711403,44165843,-1547556096,244057180,1874329861,-1930898684,-1547566134,333971715,-38934274,-1979845144,-1174118890,263455739,113713613,66569,259309578,70518470,8841216,-1274758982,-1306407671,-854674432,-54925023,1750338061,1112088677,1699749965,1852797810,1126198369,1970302319,544367988,223563588,1919243786,1852795251,808333600,1126703152,1886339881,1734963833,1226863720,1126190402,544240239,825768241]},{"sector":3,"length":512,"data":[1277430285,1852138345,543450483,1702125901,1818323314,1344285984,1919381362,1344302433,1701867378,544830578,1226860143,-1581626046,-855002107,-1173703647,567084478,-1090720536,1055393216,-386627072,921174059,-388724224,786956323,124565760,1947024514,-161173495,-389510172,-997588963,-939327308,567094196,175489034,792505539,758970996,-21170572,-391386368,-160301042,132702346,-706383360,-1008694774,808191114,171768178,1190425333,1953383875,1948283493,2036425839,1679848231,543519841,1680698664,975796525,795680,0,0,0,-854674432,1555888673,-930284534,-1064382322,-1929652082,1376136136,1096201,-770972937,-4717708,157066239,-1274573126,-1272853239,-1574843111,1090783575,-796261708,1051861453,567083700,156507790,70518518,240088575,147831327,567085748,-402620183,624690598,222060148,808213108,154947442,-1952953481,-1947807248,-2096881484,1031077886,1017905844,-1439271923,567136394,162854123,-855392582,60602913,28844493,-383660788,-71631001,-854608893,1975519777,151439329,-1174404860,448006593,-776003123,88664072,-1686887108,-1261401430,-2111714046,-311095814,148041601,-1574516853,736626896,-1306587643,-855460854,147963425,-1207344961,567093505,2138308924,1316290364,1537344906,-1189040119,-230227959,705278126,157328065,-1191149121,-1403650048,-536003414,-1999505670,1577091086,-1342153537,-1574843135,1824459096,-855527424,156869153,-1979096928]},{"sector":4,"length":512,"data":[168385302,-29723182,-385255992,1622867693,20179208,-1257727042,157335296,669191306,60794611,1974312689,-1596945424,101321048,-12842663,-754984844,-369191191,-1930886906,-20250882,-1594395448,1621231963,1762051849,-967884023,1292462854,-1274453830,-1574843121,-1073084074,113736564,1480919401,158009030,169987397,-949324608,1107912966,1795606081,567104521,-1284128758,156501646,-1207689025,179961855,-1096027392,12519633,69253888,1006913768,639333389,1128480649,71559340,1017775988,-351570931,-1441943309,70581121,1623121522,66830089,-218099527,113259429,68985631,1074011811,-1576793693,-253164492,2000585469,1551171337,-2119974861,159621897,158245696,156374667,649386635,116793805,1979648342,-628220343,-1275002694,522308890,157027979,16836993,-1274453830,-31339225,138394312,243999093,-611448484,-1896168562,-69104685,16836993,-1202667469,1347617024,-888943384,-1274579270,-383660791,-1027932797,-853887991,1751329,-1274453830,-1591620313,520423882,-754601728,159491048,158205639,-1014824448,-971601136,-1982846199,-754334186,63081442,1003064531,138394321,1048820087,1962871246,-1949816060,518753241,-768353394,567089844,-972125409,157334025,567093172,163974697,27791476,-1014954379,-605351968,-385365574,-626917503,159490825,158205639,-1027997695,-853887991,-935427295,578027529,1622812596,309513,-1073077811,1049350773,-996079166,-1899691255,755050176,164105983]},{"sector":5,"length":512,"data":[-794698123,-87751927,646697102,33229266,-1593190354,243992914,-1064433316,-286730098,788475394,116853206,-63138,-1162213771,-15472377,1564377795,175448064,1572814768,768256,-1665488141,-853887991,1577502497,-1275068407,6076945,-1057087027,117426292,-1648490146,571657,-1275044632,-853495294,-1188967135,1323827203,-1187607808,-1153529079,5105673,567091378,512434637,-620033611,-1014289804,-388823631,-1830285532,-852643328,616794657,8906783,567094706,-388970614,1006653445,738357860,7596132,-1274573126,-1272853239,-1265702126,-796218366,-102620723,-1950338109,-1175942184,-422510560,-392833071,-1818951614,-1828700696,-287178732,-400879431,-1014300665,-1962933528,-729132859,1509949928,-355405174,-355407152,48818896,-2133423616,41160674,-838991695,-897528542,-1261360592,-1021195006,-2044215278,666899140,-725367674,-1261401334,-2099870206,567095490,-1031612790,-1021194960,-1162144844,1564377607,183181312,-1548019788,1832813063,-1850073088,-1173654521,567083100,-613039874,-622210165,1377734397,-1261292791,237096218,6076959,567087028,-1162166262,870544647,8233920,1073774499,-1912575325,-1173794298,243990620,666110300,-1612504627,-1406732749,-1753998788,-796261708,-220061235,1824449003,158121728,160546724,1965046914,6143491,375204,113747443,2398,-1274438470,-1272853222,6076945,-1073077811,915083636,-13432482,-1157700888,162793519,-1144839731,1841236381,160546313]},{"sector":6,"length":512,"data":[-1409283143,41238332,1135216522,1822488034,1975519753,156737541,104513790,276105628,-1089901122,196675997,-1163463936,1853097995,-1274438470,-970863345,612870,156376718,448057907,521019853,-1113341901,163554057,-1559655005,-1556084337,-1665529430,1544456969,-853036023,-1338055903,1510376961,1975519753,158120468,567088820,168293818,-954239552,17398278,158120448,567093428,-898318326,-1274450758,-1272853232,-1172189933,162793435,1105797581,1510405887,292880137,-1559646047,1824131456,-854543351,1577516833,1480491529,-562757367,-1665525068,-1272853239,-15865582,-1274807366,112935,132325837,1007272352,-1341688550,872859149,-1396506620,1946158312,1019432698,1023112224,1022850109,1022587948,2092614409,-855002104,201439265,-2134695475,111276257,-1983829248,-1325398514,33084164,-1174403066,448004224,-1590812211,-919402152,-164703861,-16501754,-1959865228,-1173793778,1120076795,1663067233,1634561391,1864393838,1768300658,1847616876,224750945,1766663178,1852404595,1768300647,1847616876,610626913,1819309380,1952539497,1768300645,1847616876,543518049,1176531567,543517801,544501614,1853189990,1917133924,544370546,1159753321,1713390936,610626665,1970499145,1667851878,1953391977,1936286752,1886593131,224748385,1766204426,1663067500,1952540018,544108393,1869771365,604638578,1701603654,1851876128,544501614,1663067490,1701408879,1852776548,1763733364,1818588020,604638566,1818838560]},{"sector":7,"length":512,"data":[695412837,1886348064,610559337,1735357008,544039282,544173940,543648098,1713401716,1763734633,1701650542,2037542765,1986939172,1684630625,1769104416,1931502966,1768121712,1633904998,1852795252,1920226084,543517545,1701519457,1752637561,1914728037,2036621669,773860896,606088736,1380533252,1376191592,1296125509,101024581,1396789829,84244293,1162893652,1375995296,17059141,1347371781,101050713,1398096208,472389,873267584,876950581,876885041,808663093,875966517,875705653,875771185,808924981,892678197,892941620,1094005808,221264176,1093745162,892879920,892350512,842347568,1144272180,825242672,859059504,808797748,960837941,909129008,825503797,859125045,892548404,808466224,825241656,910509104,809110029,808464432,808464432,436866352,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,541406240,874524980,153100356,923353668,1163010604,1162690894,537529634,538976288,538981684,538976288,538976288,538976288,220209184,1094201354,859316280,540356640,538976288,538976288,538976288,1464076576,1313165833,222645569,1094201354,909123649,540357664,874525237,859119665,540357664,1111755040,573322761,1396789829,168632901]},{"sector":8,"length":512,"data":[142607083,1007002556,-1173785089,-840432570,12118272,567089588,-1106951518,-961806244,344326,91602954,-33209696,-1563885888,-1360527268,6070272,-928890620,61520387,-1174365208,-1779956789,15001600,503340192,-1912581957,303835,1547108127,14936064,6030991,-35099790,1061060612,57933829,-1174130456,-2135228416,112904,1553990068,1931922688,5171459,66763421,-2147463192,17121598,-2065167243,109438981,-402383942,-1863843780,190464,99126251,-383946240,-2014838653,70302208,-1207950360,567086081,1497161508,1312556404,-1007032203,-855611672,65780256,179962859,190468,162799821,-1597824563,537657437,376730428,158605372,-402365766,-739639320,7184639,1933320204,113644661,-402586303,91423917,-352319256,97118454,-1262225806,69324057,76522049,-402361158,-876937288,-5052413,-1023409688,-854851144,321569,-1023409688,-402384710,-842793060,12592401,113640821,1375731804,-402431046,1364918152,-1157617479,-108329706,-503316026,113662457,-1341979502,112904,6035082,332202164,-1394080141,-1316608,76678854,1074185731,780795909,398132544,-2096582651,797443307,-143275778,378205746,146276444,1930677509,8251398,-956310551,50631174,28379312,88092298,332203188,1692927603,-1251072,76678854,1076791811,-2000290299,-2147139538,-1368053507,1347572675,88096384,-1173523200,162792633,-998039091,-22091514,88161920,-2146011903,67452990]}]],[[{"sector":1,"length":512,"data":[-709226637,-855002108,-13572063,88147654,85441280,88088066,88016582,14123009,1493108678,-1612096678,66879743,1958352501,-22353917,-385939992,-997982462,1543933700,-34477824,1971387520,60340741,11854827,-17296435,-2147184114,299582,-380042123,230948731,1919895050,1953784173,778530409,-1339806162,1950419469,1886217588,543450484,1953067639,1919954277,1667593327,1769349236,1952541807,611217257,1917061645,543520361,544501614,1684104562,1850287225,1953654131,2003136032,1936286752,1953785195,1868963941,1919164530,543520361,220478072,1684955402,1920234272,543517545,544829025,544826731,1852139639,1634038304,1176795492,1634562671,1634082932,1920298089,1866867813,1952542066,1836016416,1952803952,168633445,1953067607,1919230053,611479410,220465677,1937330954,544040308,1851880052,1919247987,610559346,1836216134,1629516897,1752461166,673215077,692989785,1850287167,1768710518,1919164516,543520361,1667592307,1667851881,1869182049,1850287214,1768710518,1634738276,1701667186,611476852,1850280461,1953654131,1397703712,1936286752,1852383339,1769104416,2015389046,9274,1296912195,541347393,13455171,0,0,0,0,0,0,1410140672,1801675122,1646276640,1680696417,543912809,1937075829,1701601889,1141705252,543912809,1970499189,1650553961,1713399148,1931506287,1702130553,1768169581,2386803,131328,131584]},{"sector":2,"length":512,"data":[131840,132096,132352,132608,132864,133120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1157627904,62458496,113152,-855614304,-4547291,-1124027121,666830103,-12877824,109126261,268437090,117376115,145819236,-472785013,-472783919,-343680765,3926022,-320679029,-1093241521,-2134963584,16824588,-2134923789,1094615054,57999621,-1184839805,1186856976,1612089606,-1146752250,62458496,113152,-855614304,1405328678,-772568238,-2134670869,-773979382,1933020142,-773664498,-773664286,266764770,-2130384128,200278246,1513589234,1633862491,1634890852,538995555,1056,0,0,0,0,-2134966272,47114,-1191181637,-1410137856,-1191676597,-2136735746,209756938,176301704,209856136,-1207009089,79427318,16824576,1967893491,-1176129288,-2134966208,-947672562,-1141186017,28969600,440576,-855614304,-1262248666,125549071,-1073077811,-1007091084,-1559783775,263456729,-855135814,1975519777,130327021,-1274553437,377535002,-1070390835,-1559780445,-777844827,131310343,-1560280648,-1096611952,-1171803129,12126075]},{"sector":3,"length":512,"data":[-1994273524,-1274566898,578861594,666116557,-1190680134,567091200,131403401,6070467,-1331511042,126001671,-1273593670,-1591620326,-677181479,125549319,-1593829656,-677181477,578861575,567089844,-402150981,-842858493,-1983892704,-1996478329,-1962923385,-854149933,361219873,-1275068160,747604776,-1591620352,-2021062697,280231963,-3989043,0,1224738304,1229081922,1126178895,314703,0,0,0,0,0,0,65280,100663296,1296189696,542330692,-850443488,4,0,0,0,0,0,0,0,1115732480,141629065,567089844,-1274768454,169987343,-948144704,308230,-1241069824,-956301308,17080582,268482816,-1559976031,666110069,1541611981,141758089,74711868,1333068092,6070467,-1818050306,76790276,567088820,997572618,141629067,567089844,78907079,113704960,1206,77661895,-1816526847,-1960266748,-855084274,1975519777,141926674,-1174100061,280233107,-1073077811,-104660619,195,822083584,1967795509,825765228,1322987,6291456,1294808864,942504289,49,0,0,0,0,0,0,0,-930285056,12245134,-1127051776,-1577354240,-661750778,12238990,-842888448,-398364141,-76414888,34507566,12276092,-1177406720,29229064,28333568,332202676,1482564210,721479656,-32213818,-1107185211,-969211896]},{"sector":4,"length":512,"pattern":0,"data":[-259324813,1452671467,786295632,2080648959,-1199749954,844135746,2133110015,-1269429388,506638,-346156851,12305392,309504,-855506504,879894035,-661731188,-1191182145,-2144993269,-2144985075,536879245,-1074535865,1992163328,768381,1973875708,2146063,-1182956866,-1494024181,-1021377931,-394462786,11861925,-115403059,1309281731,1395486319,1702130553,1768169581,1864395635,1768169586,1696623475,-227577230,1699875341,1667329136,1851859045,1953701988,1701538162,2037276960,2036689696,1701345056,1701978222,234447969,416088074,1766066701,1109420915,544501615,1818845542,233140853,1380974602,12568203,65533698,-1017619752,1700949842,1327527026,1634030119,1651056754,1869177453,1868767264,1651093613,1936680045,1868767264,13217901]},{"sector":5,"length":512,"data":[168264380,-2111801920,536894782,431235701,-2120080947,1544980998,1959922176,-32590807,975293898,-1172211774,162792754,550314445,-351973702,-1899459339,-1978747688,-855211754,97368609,-796203797,108140168,378061566,-889322235,-2147313944,-646578625,-1994455522,-1996068074,-1274647282,107979520,-2101359989,-205507833,-1547138133,2007172731,109028102,780791691,-678754695,567089844,-21360204,-31339260,58001344,1090607337,-1959999613,-853887785,-1173179359,567084286,-344604418,108465801,-1962933831,1107716886,108861065,857916803,7769024,108869179,1996848063,1962281768,-772175080,2126284774,200200455,1078490623,1946296808,-117472918,998208271,1996913982,-336098466,1183404252,71731458,750436747,-487110656,369348747,330565241,1360929229,30795856,169826648,-385649472,117440275,2075788927,-1171068155,-1269824106,-1960719095,43772103,-1274729798,-1960719095,42985665,-1274648390,1478610185,108725761,-1174367255,-873984001,90225153,-855002032,-389969119,1757020781,-855002106,100751393,-259324293,-1962785141,-1957624746,1225158414,-763117309,-372162304,-355400078,-152315695,107820791,24433163,1959148352,-1946209464,-402231538,1988690348,142510342,-360458869,-854608862,1958742561,-25564925,-1996067423,12186438,-852970496,-854543327,484974113,-1296425215,-855002107,-397387743,1757020661,-855002106,-981247711,238764332,58132087,872337641,126008768,-1962933570,-150574322]},{"sector":6,"length":512,"data":[-65466,-1569931,856060928,18147538,1178944832,-1072961054,-407173516,20768773,-2129229266,-854674426,2000063265,2134256390,-1140903162,854066691,107716865,-402255429,1805713690,2064001798,103529222,-1593766424,280625154,-1948059904,-1141208080,182978119,172289,-1037317492,-150990662,-1947169822,106806266,-402590488,-1976696821,-1274642154,-853422834,517508128,-1070350194,-1866540914,108248832,-67108167,615556595,-1145428556,567090947,567086516,-1900006650,-1866466112,108248576,-218103111,-71104603,16770945,-58583179,772961539,108135992,-2110911627,17199422,-1070464140,-259313969,-2129229230,-854674426,-963945951,1932459822,378154502,246679154,464789965,1347559885,-2129229266,-854674426,-1017489375,-271450485,-1960378877,29816633,-787975168,-772812305,-2114989585,-1022361625,108070598,-24422911,-217846063,-271452413,1933347622,-773664498,-773664286,266830306,-2130384128,200278247,1015621370,-372128930,-422446222,-152315951,107816695,107941515,-91492213,1409279976,-661929933,549054603,-773402368,1273533911,-392981248,345178182,-1175526912,283646736,-389838080,-980746229,1509951208,567085492,-729132861,1509949928,-355405174,-355407152,48818896,-2133423616,41160674,-838991695,-897528542,-1261360592,-1021195006,-2044215278,666899140,1371784326,2931016,-259268105,108606979,-1190607229,45350920,-1308619800,-1323184864,190467,-1968389287,-501101104,16761849]},{"sector":7,"length":512,"data":[0,1061093382,1061109567,1061109567,63,0,0,0,0,0,538968064,543452769,1850287136,1768710518,1919164516,543520361,1667592307,1667851881,1869182049,1850287214,1768710518,1634738276,1701667186,611476852,1869376577,1769234787,1696624239,1919906418,1919903264,1818846752,1143218277,1667592809,2037542772,1920099616,1714254447,543517801,538976314,1766204448,544433516,1936683619,1768697203,1684368238,168632378,538976288,1766204448,1931502956,543521385,1869771365,1868963954,1768300658,538994028,1936278564,1953785195,1869488229,1852383348,1634301033,1702521196,539238500,1702132066,1768169587,1931504499,1701011824,1701996064,168649829,539232781,1802725732,1818846752,168653669,2036473892,544433524,1635020660,1768169580,1931504499,1701011824,539232781,1702132066,1701978227,1852399981,1635148064,1650551913,168650092,539232781,1702132066,1869881459,543973748,1869440365,168655218,2036473892,544433524,1701147238,2361869,0,973078528,808464432,808464432,168636464,220209220,538976266,1093672992,540291616,538976288,538976288,538976288,805965088,541209142,908079154,959914034,540292896,924857654,1176510515,1347634514,1141455427,539101506,1702132066,1701978227,1852399981,1635148064,1650551913,740451692,824980273,858860592,741355820,220341282,538976266,808591392,540161824,908080438,825630788]},{"sector":8,"length":512,"data":[1555699179,12839170,-385713222,892403901,1819626029,-1137625043,-12843921,1048634484,1965031517,-1173375773,567083789,91537418,-352255256,52994544,-1274844253,54245903,-1073077811,1453451893,57516803,1874467508,857853188,53846976,-1560070237,1705182051,112643,-1560075613,666108752,-1190982214,567086080,54070921,1874467508,-1272853232,54245927,-853540679,1729005857,6070275,-1576844638,230359828,3532803,-402441285,1874460719,-853887996,57385249,-1157404253,1290273549,57516288,-1174181469,448008303,1002119629,3794947,-1274883398,-853422839,-1960594400,169987539,-1957661248,-1962923897,-1459606377,57934335,620888069,-1023934976,74711551,33604225,-33496447,813023803,-1983892541,-1996478329,-1962923385,-854608685,361219873,-1275068160,747604776,-1591620352,-2021063831,280231963,-1161616947,-1679097174,-352153414,-1173310314,567083789,-855426118,48675361,567085492,-854851144,-1308445663,-1306407667,-1306407670,-1021194998,1635151433,543451500,1986622052,1886593125,1718182757,1952539497,225341289,1227098634,1818326638,1881171049,1835102817,1919251557,604637709,1868787273,1952542829,1701601897,1937339168,544040308,1702521203,1867427876,1869574688,1868963949,2037588082,1835365491,544108320,1953719652,1952542313,544108393,1802725732,2035527716,1835365491,1634890784,1701213038,1684370034,1850322980,1953654131,1937339168,544040308,1802725732,1684955424,1920234272]}]],[[{"sector":1,"length":512,"pattern":-151587082,"data":[543517545,544829025,611935595,65456,100663296,1296189696,542067010,-850443488,4,0,0,0,0,0,-16777216,0,1224738304,1329876290,1126178899,314703,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-922746880,0,0,0,0]},{"sector":2,"length":512,"data":[1409324265,1226859880,1344294210,1869836901,543973742,1886220099,1919251573,1936278560,1953785195,1866670181,1919248752,1919243808,1852795251,808333600,1126703152,1886339881,1734963833,1226863720,1126190402,544240239,825768241,1667845152,1702063717,1632444516,1769104756,757099617,1869762592,1835102823,1869762592,1953654128,1718558841,1296189728,1953841440,544370536,1631854637,543451510,1953786188,-64983441,855703740,-536194350,1962933378,95009352,6110850,-2109639392,536898878,646593141,646447212,298647645,-388888911,-1057094876,431282314,-1057087027,1963064194,1543947788,113639680,-352255907,1543960095,242614016,-352297822,63683081,567085492,116793549,1979646045,6136323,134241440,-33288698,6070984,1570824330,872810496,-1563886076,-1002831779,243271029,-1593769017,-611581950,-2144484565,-1156926208,-1019540992,146088051,990380219,-1256754237,67156740,242467643,12255925,1942174466,93370885,780704491,-323353659,-855002109,-955845087,192151811,-855361350,6547489,-402652183,1642594385,-955845120,57934083,-402635544,1048707230,1965556676,72858151,567085492,-1274710086,-1205744375,567086081,1849434124,550306421,-394954436,63178438,-5838592,63375094,-390368255,-1243021309,65846015,-1174404119,162792466,951722445,-1272853244,-855527412,113689377,-1979710520,838884374,-1979600394,33801262,-2013018834,704890414,-1157380818,146277824,1913900290]},{"sector":3,"length":512,"data":[-2117730803,974127299,1963181614,-1070349331,117314509,1048708040,1963328456,1773820610,-9639676,63506118,-905525760,378142723,-164495267,780796337,-1061485628,50903045,527569869,-1014905346,775557120,-311098426,-2113914648,248382,646632565,646448070,-2101148732,225772540,-1274727750,-400438007,-1175847071,-843041793,-922288621,-918650365,-1435171325,78363226,-1962998295,838884630,-1979600394,-1207712722,332203016,-973205902,63319610,113701237,-1023409206,332251187,63571710,63585922,-1023314938,-289777062,-20125436,0,218103808,1986939146,1684630625,1769104416,1931502966,1768121712,1633904998,1852795252,604638471,1850280461,1953654131,1970238240,543515506,1802725732,1702130789,544106784,1986622052,222306405,168633354,1702063689,1948284018,1701278305,1768169588,1952803699,1763730804,1919164526,543520361,604638528,1951599117,1701538162,2037276960,2036689696,1701345056,1701978222,125396065,220465677,1886339850,1868767353,1701605485,168650100,1426722084,1667592814,1919252079,1701601889,1634038304,1919230052,544370546,1931505263,1668445551,1409944933,1701278305,1768169588,1952803699,1965057396,1634956654,124087394,220465677,1919833354,1987011429,1650553445,1998611820,1702127986,1920099616,1864397423,1635000430,1952802674,1632897549,1952802674,1936286752,1953785195,1853169765,1650553717,218588524,168633354,1701998165,1702260579,1818386802,1702240357]},{"sector":4,"length":512,"pattern":-151587082,"data":[2036754802,1920099616,1864397423,1635000430,1952802674,1632897549,1952802674,1936286752,1953785195,1853169765,1650553717,218588524,168633354,1735549268,1679848549,1701540713,543519860,1953067639,1919950949,1667593327,224683380,1124732170,1701999215,539784291,1852139636,1920234272,543517545,544829025,125396331,220465677,1886339850,1851859065,1701344367,673202034,692989785,604638471,1850280461,1717990771,1701405545,1830843502,1919905125,168626041,1225395492,1818326638,1881171049,1835102817,1919251557,604638471,-46421504,-276102538,-907284766,-1274898502,-853422839,44481056,-2130689047,1963387134,1008848137,-1103858687,1017905896,-1020038118,-1979703064,1829080,-472849456,-472849456,751026954,1023111728,738619914,1022587399,-389810928,-353828923,-1158188033,162792049,922689997,113705072,1329791077,6751942,6077005,567088820,695582730,2107883571,8364800,6988608,102683187,-853887969,-846520543,1555703988,-1893610240,-1275039738,-853422832,47168032,1224697065,1329813573,1920091469,1763734127,1162354798,1768300632,757949804,1986948963,1769173605,1629515375,1953656674,1176790117,543517801,544501614,1853189990,1681990756,1936028260,1970217075,1718558836,1851879968,757949799,1986948963,1769173605,1629515375,1953656674,1143235685,543912809,1701996900,1919906915,1969627257,-165385108]},{"sector":5,"length":512,"data":[1409326569,1226859880,1344294210,1869836901,543973742,1886220099,1919251573,1936278560,1953785195,1866670181,1918988397,1951735909,1953066089,1700143225,1869181810,774971502,673198128,1866672451,1769109872,544499815,541934153,1886547779,943272224,1766596657,1936614755,1293968485,1919251553,543973737,1917853741,1634887535,1917853805,1919250543,1864399220,1112088678,1967202381,1919903860,1142959392,1684633185,1953057824,544108404,520537852,113639428,-1124137951,-768409344,-2099246510,1215627260,-2113581638,536894782,1048723829,1965031533,1814465082,1562806272,-1324233472,619237894,-1967063549,-853953320,-2101281247,208994811,6031046,1560724993,535494912,6031094,-1576110593,166395996,-1274797382,-853422839,1560737312,58064640,-1610588766,101187676,-922876828,-1979687774,6136032,76154376,1570949374,1975794176,521043973,44105988,735808512,8404419,-2144524426,-1157253888,-1019540992,78979187,990380219,-1256754237,67156738,242467643,12255669,1942174466,87341573,780703211,-745864163,-489561391,378135249,-1031732198,378078564,1136264216,-855002108,520549921,192151812,-855339334,13297697,-402652183,1689977016,1544980997,12707840,69142262,-166365944,17047302,-1645739148,404654848,1561758212,10872832,-1962580802,-1962665922,-486270450,1957098249,15067141,646641131,646448158,1048708124,1965556764,520549944,125109252,-1274761798,-1172189943,162792721]},{"sector":6,"length":512,"data":[28844493,203541772,1970158624,1008782594,-957844103,269318,69150336,554092035,1642725124,520550143,141821956,69150336,-9508361,69144192,404654856,1561758212,2746368,69142262,-385649407,65601364,-11605760,-385596486,1757020163,-855002108,76462625,213131725,567083440,537315011,512294916,512427030,-164494314,780796337,771884060,780665885,774505502,146277405,1913900290,-2117730803,974127299,1963204142,-1070349331,117314509,1048708128,1963328544,-2134704443,378028234,-1168505622,921240774,521044223,-695532540,1693090122,212947205,39447251,973347862,1963204886,378061569,867173409,-92135756,-1340704995,-2112572366,225907706,179581360,1997142658,-1271877628,84648448,-897526742,202803248,82819589,567085492,195,0,0,168624128,1635151433,543451500,1986622052,1886593125,1718182757,1952539497,124677993,220465677,1936607498,544502373,1936877926,1768169588,1952803699,1763730804,1919164526,543520361,604638528,1850280461,1953654131,1667592992,543452783,1802725732,1702130789,544106784,1986622052,222306405,168633354,1769108563,1629513067,1797290350,1998616933,544105832,1684104562,168626041,1141509412,1701540713,1936028788,1836016416,1701994864,225144608,168633354,1701998165,1702260579,1818386802,1701978213,1696621665,1919906418,544108320,1986622052,121643109,220465677,1836008202,1701994864,1920099616,1932030575]},{"sector":7,"length":512,"data":[1852776489,1634890784,2124643,168625920,1124732196,1634757999,1830839666,543519343,1802725732,1702130789,673202035,692989785,604638471,1850280461,1717990771,1701405545,1830843502,1919905125,168626041,1225395492,1818326638,1881171049,1835102817,1919251557,604638471,876033334,892744759,1177760567,942813234,1177696565,959595828,1144010544,875708720,168641331,809578810,808727349,809775152,909718593,926103365,909522485,909719094,909719091,927282741,909128244,909456964,927348292,809056050,809775159,808727105,221724996,909195786,1161049392,1093677104,1161181492,825636407,959857462,808596534,825634871,825635383,892748854,892744759,925905463,1093682224,859911218,809110029,808464432,808464432,436866352,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,437918234,538976288,924862006,959914034,540487712,807420976,220209217,538976266,875700256,538976288,538976288,538976288,538976288,805965088,541340725,807420976,959717441,541406752,908080695,1646272561,1852204129,1650729018,741552416,573321265,1635151433,543451500,1634886000,1702126957,925639282,741552428,573321265,168632868,538976288]},{"sector":8,"length":512,"data":[1409325545,1226859880,1344294210,1869836901,543973742,1886220099,1919251573,1818838560,1866670181,1918988397,1951735909,1953066089,1700143225,1869181810,774971502,673198128,1866672451,1769109872,544499815,541934153,1886547779,943272224,1766596657,1936614755,1293968485,1919251553,543973737,1917853741,1634887535,1917853805,1919250543,1864399220,1112088678,1967202381,1919903860,1142959392,1684633185,1953057824,544108404,16825596,-58531830,-401443329,113640100,-970981283,536898822,7079622,605146368,1975519936,1729003525,1824391429,87539456,-218100551,10533028,136843,-752100468,8448641,167836289,-355399053,-355341615,-1031017775,-1325047901,-1948200185,122947056,-2113576541,536894782,-2051403915,6077190,1006768616,-336366337,943620842,678764549,87506562,-1172933376,935003885,32827397,-210436292,90848898,-337742579,6143722,-1190840129,-1527578613,567089588,1048756478,1962934364,6070787,87506562,-1576831744,1555957047,87539456,-218100551,-1173981786,-1930885358,1728509441,359923973,-1912581958,69634778,-1899328512,985988826,1962957862,113555981,567085492,28314804,1555702221,1778829056,-402620416,512295346,448005475,-855157574,6076961,-1174276888,113706295,8389957,-1107192344,1203699820,309509,1316267763,-385403462,1048772903,1946158435,1728509466,141820421,90646144,2484733,90640000,34662402,-167765271,134571782,-68680844]}]],[[{"sector":1,"length":512,"data":[103725569,90638070,-385649404,-253165329,122993152,567089844,-402629446,116785549,1963066727,31254531,90508939,-1962453826,-486186690,1973875460,2048822040,92053765,90506755,-1996434557,-1559922146,-2048326276,1729003775,1330512901,79299722,28895238,314181002,28370950,91889291,1412286091,2080768775,13861637,92216969,-2034612410,26535941,-1880570742,92250369,-1979610648,25487556,45406603,-1996481863,-1106944714,-1968437794,-501101104,92258041,-2147481415,2131060518,1728509612,141918213,74788924,199488226,567136394,90640000,-152706432,-2147129594,816972917,-880074291,89994891,-122025548,-1172189947,567084552,92145406,92159618,-385649654,-2017788103,-855002107,1730576417,113639685,-956299906,358918,2080818944,-956301307,341766,-35198688,90769094,-855002112,90749473,567085748,90848898,-2130152179,1946499067,-1105146608,-74775190,-852950600,1962884129,-1380269311,-855002107,-1006653407,834007691,1952250499,-1271745278,169987363,-1960872512,-620027556,263463796,-1069932083,1153902197,-956301280,8772,2376903,-2007317760,-1173992914,1760101955,780688127,1505363552,-10622714,-2144434086,107723270,-1946201367,956653326,1929732878,1661897476,-853036027,90415393,1671676203,-1312716027,-1545547001,1048773989,1962935651,8400308,7085707,8381313,58055435,50364603,1696500184,1405321477,440369671,243307380,-1022884505,-1274669382]},{"sector":2,"length":512,"data":[-1021194999,90248843,567089844,-1274726470,1594788647,-1021195003,-1157276254,199755214,90021888,-388962096,-388962096,-2015949020,-2029549357,12798675,0,0,0,0,0,0,0,0,0,0,0,131072,16,0,0,0,0,0,0,218103808,540029194,1836280141,1751348321,757101413,1868718368,1852404850,1868767335,1918988397,168626021,1225395492,1818326638,1679844457,1702259058,1701868320,1768319331,1769234787,218590831,825238538,892613426,959985462,1145258561,168642117,1886220099,543519329,1869771365,1952522354,1717989152,544499059,1766197773,824206700,538983712,604638496,1701603654,1025520160,220209184,168633354,543584069,1802658157,1953459744,1970234912,218588270,168633354,1701603654,1868767347,1918988397,1802444901,220465677,1818838538,544743525,544501614,1853189990,168626020,1175063844,543517801,1835343992,125400176,220465677,1701859082,1919230062,544370546,1713401455,543517801,168626040,1158286628,1919251566,1769107488,2037539181,1818846752,1634607205,168650093,1917782541,1920234272,543517545,543516788,1163152965,1701519442,1869881465,1684956448,604638471,1867319821,544501365,1802725732,1702130789,539587368,543452769,1769108595,1629513067,1797290350,168655205,1158286628,1919251566,1684943392,1818846752,1634607205]},{"sector":3,"length":512,"data":[1864394093,1919164530,543520361,218588265,168633354,1852727619,1663071343,1634757999,1713399154,543517801,1763733364,1818588020,168626022,1175063844,1936026729,1701994784,1718182944,1701995878,1931506798,1936030313,604638471,909456449,909391685,221529141,1093745162,860239408,842477616,842215474,875971894,909520946,1127627062,808596790,825640246,892748854,1177956402,808596023,842478646,909588790,808596790,842086710,825887245,808923201,909127748,808923188,843132996,809775156,909325377,910505521,927348293,909128244,910571059,909129540,909260593,909128245,909719094,1161115203,973737282,925909297,808466226,876032050,808601142,876034358,892744503,909525814,1144010544,875708720,1093682224,959854132,892748598,808596279,842477878,808596790,168640820,808661306,808530999,909391408,909522489,926234166,909456946,842282821,909326128,910243641,808662837,809775159,892613185,973737285,808464432,808464432,168636464,437918234,437918234,437918234,437918234,437918234,437918234,437918234,1701540713,677737588,1629497715,1931502702,1802072692,1851859045,1701519481,824975993,808528947,572793388,538970637,924852256,808591412,540292640,924858678,1110843443,168632352,538976288,540358176,924857399,892739636,540553760,538981175,538970637,840966176,808591417,540096032,908084534,808591412,168632352,538976288,540227360]},{"sector":4,"length":512,"data":[-1174239044,162791893,716448205,-964025907,-1342136600,10872877,-1796685174,-399659008,-377421669,-108853396,-2096926108,-1047894807,-1174372632,162791910,179577293,-855508550,33275425,1947024514,4712498,753464458,4188160,619238538,3663872,-2113442631,158600508,-453614416,652789899,-1262188032,-1261960448,169987371,-854886976,792505376,758915444,-960881292,-855002111,42515489,-385900311,-294518770,132702346,-721128960,-1008694774,808191114,171768178,1190425333,-2046110525,808455620,-1979710744,-1269787964,1478610178,168674194,1635151433,543451500,1702125924,1920287524,1953391986,1952539680,1936269413,168633376,1702129221,1701716082,1633951863,540697972,3108,437918234,168636727,809578810,808990257,1128413232,842548536,942682166,1110721345,808464436,1110983475,1128411700,808530500,925909825,1128411189,1093677636,843264835,842282822,222705969,1093745162,842543408,1127428144,876037170,1094861873,825243203,959460418,825377859,943211330,960836144,1179004993,1160788037,842477616,1094206789,944058437,809711408,825887245,959524929,808464451,808597296,808797236,1161902145,942883632,842281025,925905731,859391538,1178677315,1177696053,1127625780,808731699,1127626817,960770100,973737267,825246001,808465986,808661043,842020933,1094201392,842609731,876752949,1145254448,943010098,860041785,1093682224,1161181492,825636407,959857462]},{"sector":5,"length":512,"data":[-1174239556,162791891,750002637,-980803123,-1342137112,10741818,-1830239862,-398807040,-964034407,-1342142232,9431086,2129183370,31767040,567085492,-138802508,-1105081087,-919404039,984863283,1946170600,-387151325,343146541,783535242,1946166504,-1275819509,1828877,-729152908,567094708,41271306,-994434867,-855002111,42384417,-385895703,-294518756,-527820940,1979716584,-1979001596,222069472,984352116,215446979,76203007,-109834948,-177065940,1928661564,-725399824,230983178,48771120,-1832613376,-855460784,-1013819359,1850280461,1768710518,1769218148,1126458733,1701999221,1948284014,543518057,606106473,1850018317,544367988,544695662,1701669236,203694138,437911552,437918234,168638259,809578810,808990257,842285616,843334468,1128345649,808793904,843334450,1128350256,1110519860,1127821364,1110520388,808859715,1111049522,1162233394,809709880,221525808,1093745162,842543408,842477616,876037445,1094203185,944058437,808465201,875574839,1093678404,809845048,1127428664,876037168,1128346928,860045619,927216951,1110459184,825887245,959524929,1177563203,942883654,859058241,927215683,842614324,925905731,859129394,1178677315,1177696053,1127625776,808731699,1127626817,860106804,875574064,973737269,825246001,808465986,842020933,1094201392,842609731,876752949,1145254448,943010098,860041785,1093682224,1161181492,825636407,959857462,808596534]},{"sector":6,"length":512,"data":[1409327849,1226859880,1344294210,1869836901,543973742,1886220099,1919251573,1685015840,1868767333,1851878765,1700143204,1869181810,774971502,673198128,1866672451,1769109872,544499815,541934153,1886547779,943272224,1766596657,1936614755,1293968485,1919251553,543973737,1917853741,1634887535,1917853805,1919250543,1864399220,1112088678,1967202381,1919903860,539828339,543974733,1819042120,1634562661,1851859054,1867653220,1699225710,2036690537,16825376,-1185754573,12451852,1552205312,-498728956,47608,8392330,-2118303261,73186048,1006651018,1007514656,-2012318676,-75414777,712246374,-336993723,1732149797,510919172,73875074,-972393471,17065734,-352033605,1728497379,1706754564,-371594492,243270023,-2111830948,1812225086,65733236,-1124003351,-1880619940,251705345,1721897165,687571460,645926773,-1275001754,73834496,300486861,1358660096,11799669,73797248,73834498,243273933,-2111830940,1912890430,1048717428,1953236068,19785987,-1610574104,17039506,-1610575198,33816738,-1610571102,17039538,-385830238,2028470299,9609216,-1834876628,10657792,-1566440916,11706368,-1298005716,-1899459584,251705560,1721897165,-855591932,1695449104,1048715268,1953760357,14018819,73797248,1715372545,91488516,-352319303,309507,-1274804550,-501101303,1681818359,91517444,-352054854,70760963,567085492,-854851144,1008733217,-385649554,1374224535,47359,512481422]},{"sector":7,"length":512,"data":[-75300746,-1088719808,1085800592,-1950315008,-1996458954,-1946127298,-1912572410,4241883,1085842931,-1009218048,73416322,-385649606,1639776349,73375748,11809068,1810419851,1358660096,313722229,-2147481623,343246075,414715827,4253696,-75366220,-1979354112,3467459,73678466,-2111671296,906257470,850593141,-2113926679,939811902,817041269,-402646088,11796498,199803786,-1172255488,162792406,550314445,-461367347,16548521,-289797772,-855002109,-1021260511,2122449075,208928770,738215562,-735644112,1171784195,738215562,-718866896,1171784195,738215562,-1009253840,168626788,1701604425,543973735,1769366852,1310745955,224750945,168633354,1852404304,544367988,1869771333,538976370,220209184,825238538,892613426,959985462,1141509412,1870209135,1702043765,1752440933,1769087077,1836345447,544502639,673201977,692989785,220464928,544162826,544567161,543516019,543516788,1952867692,1953722221,541012000,1311725864,604446761,1093745162,843461424,959852592,876037430,842478902,892612658,842478135,842483254,808595506,808595506,808595506,1093682224,808662066,842215731,875770675,1110914355,825887245,808726593,858796099,859255606,842609464,809775156,909390913,925905478,927348281,925905461,909456947,925905461,909653556,925905461,909719090,808990263,973737269,875577649,808465970,1144402999,859260470,808596535,1177762099,942813234,1177696565]},{"sector":8,"length":512,"data":[168656875,543516756,541934153,1936876880,1818324591,1836008224,1702131056,1145380978,1380930633,1700137485,1869181810,774971502,673198128,1866672451,1769109872,544499815,541934153,1886547779,943272224,604638513,1701013836,1684370286,1952533792,1634300517,539828332,1735357008,544039282,1886351952,2037674597,543584032,-1169341879,-68613796,2131150338,1220280330,1564377613,-344711168,1102757898,-1092127479,1707018558,243968,1114941171,1555697588,-1574843136,-1073083778,62523252,-855002102,6077985,-1190504257,-1527578615,-1526120770,-1173113692,567085656,1639916720,-1431655926,567088820,208977930,-385246278,2025456278,43051273,2107883571,8364800,-1559594589,-1556084101,1721958506,222935562,448068235,243999181,-1991704570,-167077874,-16089594,-377411979,-372175543,-372129397,177475209,-779368445,222937729,177608329,-1275044678,-400437977,-117243616,436586236,177880713,177997510,503760512,113704716,-955642552,1225429510,-1878604019,-956301046,17465350,2114385408,58064650,-1140785688,599264584,153991717,716186061,-1173970456,179571356,179315149,-955869720,688646,2097595904,-1631715318,5892106,176166537,1006650344,1174500652,4843598,176297609,1006646248,-1576635073,686295677,1985952768,-1084283902,179897152,1974399488,-1579578594,-1073018238,104531572,259132032,-1744837679,-1964440758,540847359,-1161561228,162793973,2062098893,-1185537,896806460]}]],[[{"sector":1,"length":512,"data":[930358076,-1325399878,1915763712,2000239646,-1711636198,-1311214823,-1959777279,-773664294,-774700062,-805070622,-2099319892,-1099693831,-1149971957,-1877570621,-1161581558,-1012072450,1396791121,1229734994,126160197,135661773,122553614,103220630,68617072,1364658342,-1359865168,-1621493365,1604243243,9365955,176031478,-1946782209,-2096457194,688190,372967029,-462222698,448068235,243999181,-903148904,1555725940,-853036032,176071201,-4528047,113640821,855706238,-2145481774,1977289482,63408917,-1777976383,-1962183158,-1962240450,-1144050744,-672661503,-12240896,1341983860,177737355,1195880178,-950404022,721426949,-1707178033,704185098,-2097119938,32542,242604603,176031430,834323200,-855002102,116835105,1979648638,2131162865,-243925238,-1962674711,185237534,-1961069093,-1962241010,722115134,-2116389127,1980582399,-1143852076,1810366465,1124395776,-1962916888,222935759,-1116419541,567089844,-1274390342,169987368,-1960938048,222937079,177356425,177868427,-213791189,1049186212,113707674,68240,-854543165,163166753,567085492,378216653,1049299600,-633664878,242738804,175430411,-1090518598,-633664183,244045428,-819262822,-1073083728,-1359820061,1977236290,-1336687625,74246176,-1342172184,73721914,995830448,1946849310,-383733758,-1070398378,280613002,316920064,-997840960,-2044215278,-489549116,-1844399120,-1979705624,190662,-259341686,-388962096,-388962096,-1979710744]},{"sector":2,"length":512,"data":[1947149510,67154690,-373085648,512427030,-620033408,512429173,-343733616,-1157400821,1575485441,-1953860097,-2109830153,-81049846,398395511,-1090262272,243990529,-836040038,780874100,-397342064,-1403388056,359866428,292817468,225709372,158599484,-396447664,207094722,62711872,-538965444,1329792483,-1018440587,-1190387521,-4587265,1118481663,-102757060,203363976,1118628212,-92992196,-373052849,-35127095,-1946651392,-401961930,371982290,243993220,-788329850,16710273,512454775,-397276534,-1956970760,-1962244082,722111542,1340623310,-1631693312,-2045867253,4515850,-2076834978,-2083878134,937951937,9496576,2129144437,-2009167104,-1631695094,-2078897397,-2045867254,234965258,1245776520,177083945,113706611,2702,29878338,1962990824,-8132340,-391378973,-498466042,565887993,-398726390,863305836,176823947,176961163,-385941272,729022522,176701067,177081995,-1359869264,1049171317,1049168520,243862156,117377678,-1830286710,-1160940544,162793998,-1581047347,-1834808692,176857354,-1022717789,175965942,-1158122241,162794010,28582349,-397401651,1012400787,1021604877,1021342809,515883897,10741771,-169623542,176426633,222087475,-1631648140,9431051,176557705,176168587,-2097022077,-1041760045,-2009167363,-1942058742,-1978234614,-2111927542,33260298,-385885309,-812909144,176688683,-1310458100,176426539,-1992184974,-1609921010,243993374,1049299598,-16053624,-1787449614]},{"sector":3,"length":512,"data":[-544484981,176426635,186629705,-1493974982,-74724725,243917941,-812971378,176701065,176963211,179359531,176821899,-220230846,1257862318,176821897,176955017,868466738,440184009,222099572,1101722740,512488427,-620033408,512427125,635964048,1407153661,-2111927465,1977289482,1138395906,-1946348568,-685023273,110038134,1049168528,-919401838,1793676779,-2145481733,1977289482,-1877046523,-303545590,-1980265476,-1995796458,1963627062,-1707721827,-392727542,378142154,915081860,-2098722158,-50665219,515508916,-1339962100,23128074,203361930,1071841461,176428683,-1962139458,990548542,1445885130,-141864617,-117181949,722115233,1002505154,1930074118,-1710848229,734563082,2012691406,66126597,-213778951,1599732900,-1012599970,-1274421830,-383660791,599325277,142457381,512434637,-620033408,512427125,1441270416,-1710322692,737250058,1049313743,-201520488,-50427996,-1947301049,-1841395238,-1877047030,-1708226294,-60889078,-1274274118,-400438006,549322948,440173068,1284121972,-1962887681,1120994262,-1737239237,-1331387149,-347887094,-1899459384,-1899983144,222870736,-1962896664,-1962239442,-1962241474,244008693,-852817256,-1991269133,-385181122,1169881549,-855002102,-855526367,1012868129,-1167690407,280234584,330572237,550314445,176162503,-1545011201,2131150586,-4521718,-77338369,176031478,-1947896577,-1274373610,-1188967142,1488584705,-852970486,-854543327,6077985,-1961853811,637398]},{"sector":4,"length":512,"data":[1052681459,-1264278263,-1105081065,1757347932,440586,1488627187,-853422838,-401756128,179306498,45388370,1519526349,-1899459389,-1899983144,222870736,-369106200,1094908213,1986939211,1684630625,1769104416,1864394102,1768300658,1847616876,610626913,1701603654,1835101728,1970085989,1646294131,1886593125,1718182757,610559337,1852727619,1696625775,544500068,1262567982,1818846752,1915563365,1835101797,1768300645,1311008108,1869750383,1763732847,1768169582,1952671090,544830063,544370534,1701603686,1936278564,1969627243,757951596,1701603686,1769109280,1847616884,1663071343,1819307375,1684370533,1225395492,1718973294,1768122726,544501349,1869440365,168655218,1953383716,1696627058,1919906418,1310984717,1713403749,224750697,1867392010,1868963956,224685685,776938506,541011531,1852394532,1869881445,1869357167,168650606,1684948260,543584032,1970302569,1768300660,168650092,1868710180,1696625778,544500068,1311725864,606093097,168641075,808464442,808464432,221261872,437918218,437918234,437918234,437918234,437918234,437918234,875835957,843462213,909260592,910571078,221590596,1093745162,843135280,808595504,1161181494,875966514,842479926,859190582,1177957431,959918647,909520946,842483254,909520946,1127627062,875705654,959853620,876950327,825887245,1111044161,909127747,909128258,909457206,843265603,910438980,909719094,842348099,926365488,926496306]},{"sector":5,"length":512,"data":[-1575487300,582490215,33536549,598745549,-855505734,-1161262047,-1031595397,-253591537,78768779,-805049645,567092916,146784907,-1414792168,1940106155,410493720,-1560215368,1973622897,-1898279400,8436418,567089844,8390343,1556024576,-1442795520,-1341176440,768288,-947672333,768261,111258355,1037601536,521076720,111216499,734330368,402695109,-1557738242,-668270586,-338492239,136184102,1564377600,141828096,409470662,141092865,-930284804,-1064380274,-121843570,263518999,113643725,-972613476,68722438,412944071,-58589120,-955223000,-2145870586,-1677277696,113643288,-1341646689,16508973,-402639384,-1133248376,1916873900,1998142479,-1730097141,-1744884077,-1460993295,-1174214679,65738253,-1944704326,-86470968,-121843570,162855703,-1930747443,347736756,-1105081064,-1514203114,1631366168,2050754162,-536608137,1947024554,1948400662,1965505540,-1394570520,1947024554,1975794182,-1092949002,229644453,-1342142232,8644874,773245630,8120492,-143400752,452803,1965833346,-1404025331,-76275652,-143390404,1015175246,79282957,31582208,79297163,31057920,1375883752,719902467,5236736,1509969128,-678692309,-352314136,-388330327,984612885,-1962922776,-1945310250,518338,518535856,-1965585664,190662,-527777142,-771444399,48781800,616860160,663749647,1344749588,-1837161390,567083700,-1329375142,-386864352,-69009415,-435886397,1980510724,302336003,2114512900]},{"sector":6,"length":512,"data":[-435639294,-1912281596,855894793,-435635191,-1627389948,-1241238266,-435389945,-435579644,-435886588,137267972,2030487320,-402620392,1380975047,-1962987800,1951153156,2031520535,21162008,79238514,18475008,727370379,-1017626166,309574,-1962865944,-1017619766,1962869480,2030995722,-3938280,-1962839575,-796152329,780911533,243996680,1975457949,-2299880,-225716082,1459559144,-385918744,-391315627,1230700336,-963962252,-1677294546,1376547864,-411760728,786967984,-387716097,-722796542,-1949922479,-1950209038,65065432,3389891,585680939,-1395946497,2134671140,540804212,783286899,-486604568,-1993975314,639137078,410459788,-385981463,1347551031,17164370,1577118184,-1906574709,1505791707,-1021575621,55117682,-34012175,-213277631,283689892,1380995583,1593882600,-650422009,-484923970,736523010,1473873867,-1956731661,-350288181,-17962792,-397258671,1598750868,-886351609,-1407670850,1979572398,-880323644,-1951993001,1968922571,1458065160,-303544322,-340859907,-33691425,434688563,-1971817984,-397850928,-1720582128,-489591325,-489561391,-804592943,76213227,-2056114132,1945438780,744432768,1913273351,-183485437,-37361469,1929372648,178443,-1996506392,-1007140073,658244746,574359156,-1007091084,-1404641142,578030908,91604026,-495639494,1124567110,-1514410517,-3807208,-343803021,125048997,1979550696,-2125544702,-1961319186,-33822514,-401161794,-1410728603,-43390724,1006716042]},{"sector":7,"length":512,"data":[-1189645229,1558708228,-2100982785,-713737668,79251026,-11671552,76202840,-1190840385,-1359871996,1179042165,-645144111,403224575,1966750850,1138420658,-398178989,123731860,-1961318978,-1012599861,403189387,1358932712,-48568238,123725173,-386049816,-2031551095,92940029,-1325572120,-42997714,-1174404423,2062024704,-387937792,-528023794,-225834638,-287124342,1006659816,1008825352,1008235647,1011840045,1012036621,-1338805216,-46405624,-469977624,-1328813089,-47192056,1946352002,-1966997834,-386561322,-1226048354,1946352002,78729483,173663954,361244374,-337067193,-398376449,-947127019,-2055928028,-369332248,-672596106,-347123713,-3086093,-1258528791,-1021195007,413140678,361872909,-1256720197,-1626437120,-1609684968,34173720,-971464690,1613830,-2113848088,1613886,770180468,-388174852,1743322305,-64821247,-1558703967,-1588586391,1805850638,113725464,-59262,-1895394584,-1894223098,-1592233722,-12838782,-58572940,-2046659329,-661940028,-2020875311,1994919923,-389773572,984677489,-1946391320,-401051882,1035009097,-1946394392,504727967,-628416626,-165734517,-15172090,786957940,-71636484,770228874,-72160772,-385919511,-126551101,-1975118710,234783284,-398043020,-24969682,-1085311968,244454801,964871,1014345714,108382475,-1959899313,183041605,-389772548,250149893,-1928913156,-1962777187,-69474281,-1325701144,-68163526,-386192920,192215932,-402651975,-471270034,-1021867523]},{"sector":8,"length":512,"data":[-380484936,-92143502,-386566842,766509186,-386152216,1441331970,-1948568581,-1390931434,1651772732,1947073666,363708258,234889401,1974465031,-2132178346,28839905,-2050960640,187659715,-154137640,41226437,350801971,785181691,-75241299,2129183882,-398610181,395049849,1458062147,-75765509,-486835992,1152959458,976966,-1963237144,-77862716,-384384322,378142061,-1195173870,-437565886,-1189761602,378208272,-1389488110,74638033,507808558,192200715,-1963249432,-81008444,-486853400,401130469,-89528319,-1157838872,108134401,-402651975,378141851,266868899,-1593391107,-2147483624,18354958,-1900006626,201770968,-1945620224,-956297714,939525126,101616648,113768960,137101452,9309836,402177055,1515805528,1600019805,-1961425145,-15204314,-15199690,-15200714,-1911025610,-820508642,-386258968,-1511260726,-351878013,-1276153,-326696882,2525486,378285592,-863234036,213701774,1461585432,1280070998,1347637586,646651670,378411008,110041100,110041104,-2141710322,312737508,2525464,503782936,402177047,-1900006626,-1945712680,-1946024960,520130062,251657467,-1804265309,-1961298498,-484925170,1019479562,-1543190909,-402130718,1273559464,-117904899,-402651975,736689075,233368828,-107812358,-402651975,-1185743965,-1662517246,-65738501,-1007789422,403582603,-2097574168,-210420420,-65411002,-1994912093,-1021833194,872408552,418758619,1962504936,237931291,-67246056,1166611849]}]],[[{"sector":1,"length":512,"data":[96961282,201032515,1119413877,-26678960,413212297,316918667,504952255,-2093628122,-962329401,-489881788,113713139,71843,-1895912983,1444417030,-1409252929,1963801770,-2098232838,650611456,1577091234,-1207935809,567093505,-1575487326,28317799,-855610177,402235937,118365958,-1962910530,440830,-1161583117,-1897327123,1732150008,-210436328,6635137,-361413304,6766210,113689432,-352249752,1745274373,780861464,-840427506,-395741960,-974587053,1349612792,28957323,-89004032,309586,1392159464,-402652231,468253347,1523223547,-1976688808,1343776806,74769418,48965069,1499145933,2008723315,1975519766,377272835,118365966,-2008956542,-1105813746,-1849747805,1978468886,380091907,162833829,-1967513139,-134485738,-1172828511,1692926208,856323583,23783890,1962892008,-1982123016,-1996456674,-2130673890,1157653822,-2113440424,1157654334,-1910612620,-853887784,1555701537,1745286656,544538392,567087028,309706762,6948551,-4653055,-853035777,-66156255,767214359,-140777194,567088820,1052426494,-940411882,16804358,-66155776,-1171737577,567083100,1522188298,-1260751594,6076944,-1161616947,116791012,1962874984,422034120,567089844,-1174398279,263454812,113713613,65642,-1435123702,567093172,85536673,95485983,2107893971,1778829056,-1962803200,-2095577058,378212547,-802481877,422254217,-1031019821,244044547,-784662526,1997974458,859734837,74776345,-645150677]},{"sector":2,"length":512,"data":[-1910576245,-1261292581,522308890,422252171,-1275044678,690081063,1947806478,1963042832,-524058362,-1159992561,-622258484,423600630,-956269149,16804358,422033920,567089844,422395523,-1272810496,6076967,-855636807,1975519777,658410450,422158617,-1064385277,-13827802,1964584206,422945246,212059395,423076120,-1592262493,-989652675,-1592258909,279124283,378127128,-457566097,1745286678,-1770717416,2075836558,-853887976,-1173375967,567083100,767213578,-385649642,113704828,-956301188,27142,-1173048318,-315424676,-400917570,977010734,1156118901,-1245148672,-398859520,-125173701,-1979697432,1864238040,-386168040,686293035,-46421504,-276102538,-806619934,444333697,567085429,208929084,-1407681602,74717756,74825738,402402953,1108163,199809162,-790376448,-790376221,-1010627869,-385888792,-143394722,-384381766,-253168171,1380995574,-386351384,-1956710238,532713210,32000345,-1494007552,-397486732,-1830226349,-158340874,-160765780,-386496280,642774661,1575486858,-159651594,-386500376,-397937087,-1070402088,780914923,1908348942,-1659991272,-773205736,-153818903,409540233,-1994888285,-401052402,-1310195653,1829173237,1979711256,-987839502,-1407686346,1765181727,300437528,1832291318,1962281752,914968069,117315693,-1017636741,-1576980504,-396683133,2045247555,918888181,-924313495,115875829,2064041718,-2067857384,-1189040104,-1426915305,-392165946,11861936,19191947,-1978106206]},{"sector":3,"length":512,"data":[-773598781,-71073309,-1994945777,-1088914410,1476335748,409583106,-1525124673,2066123429,-1327234536,-1731974642,-171972463,410793611,-1326110488,-173807607,-384269122,1709765917,618695423,411017735,-321852208,-997528368,-2136864988,-789786600,-1997745940,-1021804250,-401253957,82313769,-401937662,-152305712,1911078962,-1439911936,410912502,-401902081,367787812,-1342176280,434678316,-388986113,-259326188,-1979710744,-790590782,-790048536,-387395352,-997588990,-1878782172,658510887,-236403798,1963605246,1505477600,30402581,-1342067992,-571954644,-796157698,733012106,75097098,-587846224,-339440982,4778172,-1599460176,-742516608,2118025743,57999640,-1743789122,-268177405,-388971611,-388962096,-205651164,619506447,-958010617,18382342,-1342171672,-2136954324,-387585256,-538378464,2114373375,283836696,-335604760,2114373134,166199576,-5510913,-2102776656,51937598,1947762592,-958712927,51937798,1197147590,125109820,411123330,-1974176768,1979792592,1946631251,1979923535,1963342852,35556109,-2113485288,1119355416,-92099760,-1341951228,-92100053,-2146602234,829686242,403054083,-1421261640,169378208,1007252672,-401771518,-637272284,-1985323600,-1021808866,-391500880,-286523688,402267787,-346537288,69075900,1230223384,-571945493,100899069,-1970136983,-20584250,-1058422134,-37033730,-974598006,66095869,-350721770,-402184986,749797122,-373280086,-1070399750,-1325470744,1538304556]},{"sector":4,"length":512,"data":[-958712918,51937798,-385899287,749797360,-373280086,113704656,-352315266,2114373125,119800088,-1325511703,-1195136436,-374657972,96927320,119849779,32034954,-790441730,182636770,-28186430,411123330,-972524541,18382342,-1325473303,2141235756,-385407976,96992823,-1144825788,585635145,-2126609920,225706776,-164871496,-15172090,1471152756,-21501525,-1325408024,96971308,-389854141,-796197460,65065368,-1559786536,-1031137156,359250883,184543464,1007449280,851341828,-30218048,-369196567,2042363308,-3151851,-1452146116,141755964,74711464,-1423160136,1107192041,1145848652,1095516748,1145586504,1095254600,1146635096,1398293080,1397768784,1162429513,1397965651,-44874669,-49423085,-49423085,-49401325,-49401325,-49450989,-334663661,-452068844,202242580,202235156,202235156,202256916,202256916,202207252,-334663660,-452068844,915988,908564,908564,930324,930324,880660,-334663660,-452068844,101579284,101571860,101571860,101593620,101593620,101543956,-334663660,-452068844,235797012,235789588,235789588,235811348,235811348,235761684,1124954132,1091356693,51292948,51240212,51240212,51261972,51261972,51212308,1124954132,1141688341,151956244,151903508,151903508,151925268,151925268,151875604,1124954132,386713621,286173972,286121236,286121236,286142996,286142996,286093332,1124954132,537708565,1628351252,1628309268]},{"sector":5,"length":512,"data":[1628309268,1628309268,1628309268,1628309268,1628309268,1628309268,1192101652,1192101652,1192101652,1192101652,1192101652,1192101652,1192101652,1192101652,-334625004,-334625004,-334625004,-334625004,-334625004,-334625004,-334625004,-334625004,-452065516,-452065516,-452065516,-452065516,-452065516,-452065516,-452065516,-452065516,-82966764,-82994925,-82994925,-82994925,-82994925,-82994925,-82994925,-82994925,-82994925,-82994925,-82994925,-82994925,-82994925,-82994925,-82994925,-82994925,-1660053229,-1710307820,1947125268,1896793620,2098120212,-1945188844,1980679700,1863239188,-1626421740,-1760639468,-1894857196,-1844525548,-2079406572,-2129738220,-2045852140,2131674644,968212,876544,876544,876544,856537600,856568341,990786069,990786069,336474645,336452884,336452884,336474644,336474644,-1475474668,336473364,-452060396,-686938092,990817044,990832917,990832917,990832917,990832917,990832917,990832917,655288597,1041148692,588163860,923632660,-267474155,-401691884,219065108,-1592874219,336505620,336524820,336524820,336530196,-921761004,-854676716,906930964,974039828,856599316,856518677,722300949,789490453,-1307661547,-1240552684,336505620,403614485,336505621,336533012,336533012,336533012,336533012,336533012,336533012,336533012,336533012,336534804,336534804,336534804,336534804,336534804,336534804,336534804,-82895596,-82994925]},{"sector":6,"length":512,"data":[68000019,67996181,-1425102059,-1525797612,336473364,336423700,-83006700,-82994925,68000019,68102933,1678714645,1678717460,1728937748,1796123412,961300,1009408,1009408,1016832,487556096,437105172,-82988524,1057855763,1292806933,1292842516,1292842516,1292842516,1292842516,1292842516,1292842516,1292842516,-1022413292,-1106328044,-1173436908,2031011348,1527694868,1577942804,-586318060,-519209196,588087060,-1995515628,-1995515628,-1794276332,1527694868,1578066452,-586194412,-519085548,-1374723564,-83046892,-15886061,-83046892,1343016468,856599316,961300,1024256,705667328,571386644,806267669,672049940,755936021,621718292,961301,1030656,1141881344,-1002159678,1405305921,1112785493,-766551870,1312936527,-800242748,1104564045,1094828353,-851361340,1137918273,1137462337,1279514434,-1001634877,1137265731,1296286541,1296286288,1464063824,-1052687164,1154695492,1229243205,-1017952810,1238649928,1238780228,1238127949,1313456718,-1018279465,1238650441,1238324302,1255425362,-1035056447,1112195658,1480805061,1255819994,-985183545,1279970378,-800240955,1255820874,1347077456,1255164623,1313526606,1255099087,1212239059,-750498618,1287734604,1330434885,1330432835,1330430532,1330435908,1330434127,1289375823,1313886031,1448037850,1448037826,-866824745,1321682254,1330565199,1414877140,1414877122,-800108329,-967815344,-934062768,1213420880,-868003130,1389511506,1390039109]},{"sector":7,"length":512,"data":[-632401851,1389643090,1330826319,1212240850,-767470650,-1035910317,-683588781,1405896787,1414779464,-1001106493,1405703251,1405243220,1423396692,1473532741,1490307393,1489455171,1406419276,1061144389,169150399,-132844267,521477140,286606869,202636565,101974036,51645972,286525716,1175794452,-736830955,1460982036,1393838612,1192517908,588522260,-1995142892,1175776276,236456469,135793688,1113080088,1146635096,1112560472,1145656144,1163084873,1129534291,1347438931,67,0,1146507008,4801870,1514622464,1090519122,1342177347,1124073541,89,0,1431719424,4801616,1313624064,1308622938,1342177345,1308622927,1225395523,1818326638,1679844457,1702259058,1701868320,1768319331,1769234787,168652399,1342836004,1919381362,1948282209,1768780389,1702125934,1869488228,1818324338,168655212,1818838564,1869488229,1868963956,224685685,1867392010,1869574688,1852383341,1936286752,1768169579,1952671090,226062959,1850287114,1717990771,1701405545,1931506798,1701011824,544108320,1802725732,1143212557,611021673,1953067607,1919950949,1667593327,1696605300,1919906418,1634038304,1735289188,1769104416,1092642166,1914964493,2003067237,1232365938,1718973294,1768122726,544501349,1869440365,168655218,1159749156,1919906418,-2011133427,1869771333,1852383346,1163412768,1480935471,1818846752,604638565,793073733,542655816,1701603686,1851876128,544501614,1998611810,1953786226]},{"sector":8,"length":512,"data":[168652389,1701336100,1296189728,1919242272,1634627443,1866670188,1953853549,1142977125,1196769861,1936876886,544108393,808463921,692267040,2037411651,1751607666,1112088692,1866670157,824209522,540096569,1701013836,1684370286,1952533792,1634300517,539828332,1735357008,544039282,1886351952,2037674597,543584032,5063241,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,90,0,0,0,256,852304,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67125255,808469773,842283316,808600628,1177957172,808923703,825438258,942881075,808595763,959857460,892744502,859260214,875967798,1144270898,876032310,168638776,826356026,808990007,926234160,909719090,843265585,843330096,925906224,910571058,909260599]}]],[[{"sector":1,"length":512,"data":[285261,34013269,160,0,-1287123968,70189062,28,70189060,70189099,70189253,70189265,70189280,70189079,70189084,70189089,71237647,71237675,71237702,71237735,71237777,71237824,71237879,71237884,71237917,71237951,71237984,71238040,71238045,71238059,71238067,71238075,71238083,71238091,71238099,71238181,71238245,71238303,71238568,71238623,71238638,71238663,71238707,71238721,71238729,71238737,71238747,71238778,71238818,71238834,71238843,71238870,71238919,71238952,71238975,71238984,71239004,71239038,71239114,71239139,71239150,71239160,71239169,71239174,71239179,71239205,71239229,71239252,71239272,71239299,71239321,71239362,71239465,71239482,71239525,71239533,71239567,71239581,71239607,71239621,71239659,71239671,71239690,79691798,79692052,79692066,79692098,79692206,79692237,79692276,79692339,79692502,79692524,79692553,79692572,79692647,79692688,83755049,83755054,83755068,83755076,83755084,83755092,83755100,83755108,83755190,83755225,83755249,83755277,83755294,83755474,83755489,83755514,83755557,83755567,83755593,83755617,83755640,83755660,83755692,83755724,83755816,83755866,83755897,83756058,83756153,83756161,83756203,83756224]},{"sector":2,"length":512,"data":[83756235,83756257,83756301,83756312,83756317,83756322,83756362,83756375,83756388,83756410,83756418,83756426,83756445,83756453,83756464,83756485,83756496,83756549,83756557,83756572,83756608,83756634,83756667,83756700,83756712,83756724,83756743,90832929,90832989,90832995,90833007,90833030,90833042,90833075,90833087,90833208,90833220,90833324,90833336,90833354,90833380,90833403,90833446,90833469,90833477,90833554,90833577,90833612,93782434,93782510,93782930,93782965,93782986,93783007,93783012,93783039,93783051,93783180,93783350,93783376,93783559,93783750,93783778,93783844,93783897,93783913,93783934,93784176,93784214,93784290,93784349,93784378,93784521,93784543,93784562,93784597,93784656,93784745,93784876,93785050,93785067,106299408,106299416,106299445,106299457,106299636,106299645,61866718,107413575,107413611,107413628,107413653,107413757,107413789,107413816,107413828,107413833,107413842,107413847,107413858,107413897,107413925,107414003,107414030,107414058,107414080,107414135,107414202,107414455,107414521,111869968,111869988,111870037,111870045,111870061,111870109,111870129,111870138,111870150,111870155,111870168,111870392,111870415,111870420,111870429,111870453,111870458,111870474]},{"sector":3,"length":512,"data":[111870482,111870502,111870534,111870595,111870721,111870765,111870784,111870807,111871250,111871335,111871364,111871396,111871408,61866844,61866848,61866852,118030382,118030397,118030415,118030423,118030449,118030457,118030466,118030474,118030500,118030513,118030541,118030546,118030562,118030574,118030585,118030596,118030605,118030619,118030624,118030642,118030653,118030680,118030714,118030736,118030750,118030764,118030785,118030799,118030814,118030849,118030870,118030878,118030907,118030968,118031035,118031089,118031119,118031132,118031141,118031146,118031158,118031185,118031216,118031246,118031259,118031268,118031273,118031283,118031333,118031350,118031367,118031405,118031417,118031426,118031434,118031443,118031457,118031482,118031487,118031501,118031511,118031516,118031521,118031558,118031582,118031590,118031616,118031653,118031680,118031701,118031711,118031727,118031741,118031746,118031751,118031763,118031772,118031781,118031790,118031808,118031816,61867302,124059710,124059757,124059786,124059817,124060174,124060206,124060231,124060310,124060386,124060442,124060669,124061094,124061289,61867382,61867386,130809897,130809962,130810056,130810125,130810136,130810144,130810155,130810186,130810196,130810201,130810314,130810442,130810507,130810567,130810685]},{"sector":4,"length":512,"data":[130810723,130810822,130810847,130810947,130810979,130811020,130811032,130811044,130811053,130811109,130811121,130811130,130811144,130811153,130811169,130811210,130811233,130811249,130811254,130811311,130811327,130811346,130811360,130811375,130811389,130811408,130811422,137232407,137232600,137232650,137232669,137232997,137233023,137233047,137233076,137233152,137233230,137233254,137233274,140902462,140902483,140902507,140902575,140902685,140902730,140902753,140902808,140902840,140902973,140902986,140903089,140903156,140903180,140903235,140903249,140903597,140903613,140903632,140903833,140903916,140903929,140903943,140904086,140904109,140904133,140904164,140904178,140904305,140904434,140904506,140904619,140904637,140904716,140904903,140904938,61800450,12594042,151781540,151781558,151781570,152568301,152568338,152568364,152568381,152568388,152568494,152568636,152568682,152568793,156631060,156631090,156631181,156631230,156631270,156631323,156631370,156631477,156631592,156631634,156631721,156631783,156631873,156631936,156632080,156632160,156632262,156632377,156632419,156632506,156632520,156632598,156632740,156632820,156632846,164036624,164036640,164036661,164036677,164036698,164036719,164036742,164036768,164036789,164036805,164036824,164036850,164036873,164036896]},{"sector":5,"length":512,"pattern":0,"data":[164036914,164036935,164036958,164036981,164037004,164037027,164037045,164037066,164037092,164037115,164037138,164037161,164037187,164037210]},{"sector":6,"length":512,"pattern":0,"data":[]},{"sector":7,"length":512,"pattern":0,"data":[]},{"sector":8,"length":512,"pattern":0,"data":[]}]],[[{"sector":1,"length":512,"pattern":0,"data":[]},{"sector":2,"length":512,"pattern":0,"data":[]},{"sector":3,"length":512,"pattern":0,"data":[]},{"sector":4,"length":512,"pattern":0,"data":[1701013836,1684370286,1952533792,1634300517,539828332,1735357008,544039282,1886351952,2037674597,543584032,5063241]},{"sector":5,"length":512,"pattern":0,"data":[]},{"sector":6,"length":512,"pattern":0,"data":[]},{"sector":7,"length":512,"pattern":0,"data":[]},{"sector":8,"length":512,"pattern":0,"data":[]}]],[[{"sector":1,"length":512,"pattern":0,"data":[]},{"sector":2,"length":512,"pattern":0,"data":[]},{"sector":3,"length":512,"pattern":0,"data":[]},{"sector":4,"length":512,"pattern":0,"data":[]},{"sector":5,"length":512,"pattern":0,"data":[]},{"sector":6,"length":512,"pattern":0,"data":[]},{"sector":7,"length":512,"pattern":0,"data":[]},{"sector":8,"length":512,"pattern":0,"data":[]}]],[[{"sector":1,"length":512,"pattern":0,"data":[]},{"sector":2,"length":512,"pattern":0,"data":[]},{"sector":3,"length":512,"pattern":0,"data":[]},{"sector":4,"length":512,"pattern":0,"data":[]},{"sector":5,"length":512,"pattern":0,"data":[]},{"sector":6,"length":512,"pattern":0,"data":[]},{"sector":7,"length":512,"pattern":0,"data":[]},{"sector":8,"length":512,"pattern":0,"data":[]}]],[[{"sector":1,"length":512,"pattern":0,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-198132480]},{"sector":2,"length":512,"pattern":0,"data":[]},{"sector":3,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,61800452,0,128,0,1380402182,5264719,544173908,2037277037,1734701856,1953391981,1919885427,1634493216,1936028531,67111437,1162104643,544173908,2037277037,1734701856,1953391981,658803,1835492691,544501349,1702521203,1668834592,1935959397,1261712928,1409288717,1830842223,544829025,1970238055,168653680,1869566976,1851878688,1970282617,1667853410,1836675872,1936486242,544106784,543518319,1969516397,168650092,1836667648,543977314,1768318308,543450478,1701998445,1634235424,1852776558,540697955,1852383232,1818846752,1291853925,1095770195,1279345491,1414680390,541999442,1850292023,1768710518,1651449956,1952671082,1685024032,224750709,251854858,184944143,50725636,1651341651,1948281967,1701601889]},{"sector":4,"length":512,"data":[1885430560,1953063777,2019893369,1684366691,25701,544173908,2037277037,1734701856,1953391981,658803,544173908,2037277037,1869768480,225669237,1867776010,1634541679,1696627054,1919251576,543973742,1651341683,544435311,1864396393,1830839662,1819632751,658789,1766590989,1847616878,1700949365,1713402738,1210085999,1850286112,1768710518,1651449956,1952671082,1685024032,224750709,1850277898,1768710518,1651449956,1952671082,1685024032,224750709,1968111626,1718558836,1634759456,1864394083,1768693870,1713402995,224750697,218234890,1297481738,1347245102,1852727619,1864397935,544105840,1886217588,1918988911,1768300665,168650092,776820224,542133588,544432488,1852138850,1701995296,1684370529,1141509422,1869488239,1751326836,1701277281,1936286752,1953785195,1852383333,1769104416,2123126,658746,544503119,1931503215,1701011824,544108320,1412320598,168644685,1953775872,1953525093,544175136,1701012321,1679848307,543257697,1937012079,224748649,543584010,1835492723,544501349,1853189986,168653668,1701729536,1667592312,543450484,761556581,1714251375,543517801,1444965999,1297362509,658768,1735357008,544039282,1702521203,1668834592,1935959397,1885430560,1953063777,1718558841,1852394528,658795,542135620,1868785010,1948279922,1663070063,1819307375,2127973,107413948,1852727619,1713402991,543452777,1919052140,544830049,1953383680,1847620197,1679849317]},{"sector":5,"length":512,"data":[1702259058,1952803872,980575604,32,1917848077,1634887535,1852121197,544830068,1852403568,1952522356,3801120,544106784,1701715968,2126433,1970825542,1718558832,1952805734,1668834592,1935959397,1701406240,1998611564,1752458345,121634816,98370623,68617470,1631979273,543973748,1869771333,220215922,1850277898,544503152,1701603654,536879162,980643696,1377828896,1919902565,2035556452,540697968,1851867904,544501614,1852141679,1818846752,1224745061,1818326638,1713398889,1634562671,1768300660,2123116,1849753600,1953392928,1634628197,1634082924,1920298089,1634213989,1668227187,1701999971,168636004,1851867904,544501614,1684957542,1651076128,2037539186,168624160,1702129221,1701716082,1919164535,543520361,1953785196,540701285,1851867904,544501614,1684957542,1818846752,218112101,1634231050,543516526,1802725732,1702130789,1768438816,1851859060,1701519481,536886905,1713401449,677735529,540682611,538970637,538976288,1224744992,1344294210,1869836901,543973742,1886220099,1919251573,1852394528,225600875,1919243786,1852795251,808333600,1126703152,1866670121,1769109872,544499815,541934153,1886547779,943272224,658737,1648427008,544503151,1730178932,1919250021,543519841,1163412782,1818846752,658789,1634222848,543516526,1802725732,1748770931,1629516905,1797290350,4094309,658688,1851066893,1869833586,1684371052,1954039072,1634628197,221934444]},{"sector":6,"length":512,"data":[218106378,1701336074,1998611826,6648421,1920099616,544436847,1702126948,1684370531,2573,124060133,544173908,2037277037,1112887328,541280588,1651341683,7564399,544173908,2037277037,1112887328,541280588,1651341683,7564399,1852989783,979857001,544165408,1128354899,1702043723,1852140903,658804,124059716,124059662,538986504,544432705,541591584,538976288,168632352,1635013408,538997874,1886352467,1277173792,1952935525,1310728296,543518049,538976288,538976288,538976288,538976288,1816338464,225669985,1207962122,541589536,538986496,168627200,1681989664,1936028260,538976371,538976288,1968185376,1667853410,2036473971,1835093536,218762597,218890250,1092624394,1701995620,538997619,538976288,1344282656,1768710773,1646293859,1633034361,224753004,658698,544503119,1931503215,1701011824,544108320,544109938,1701603686,2573,1412320598,1297502285,1347245102,544434464,1763733089,1734700140,1713400929,543517801,1701667182,1851853325,1634213988,1700929651,1763733093,1919905383,168649829,1224736768,1818326638,1495295081,1311732581,1634738287,1701667186,779249012,1124076045,1869508193,1886330996,1814064741,1701539433,1701978226,1852797043,1713399155,778398825,1325402637,1667590754,1867325556,1701606756,2112115,1245859630,544109906,1701603654,771760186,1279612997,544502633,1701603654,771775264,1565540685,771766816,5259597,1919052108]},{"sector":7,"length":512,"data":[1701409377,542842995,540680285,1869566976,1851878688,1768693881,1918988898,544433513,1667592307,1701406313,658788,1818391888,544433001,1567575643,1275076666,543518313,1651340622,544436837,1567575643,1392517178,1801675124,2053731104,1331372133,1667590754,1768300660,1931502956,1801675124,2112093,1224739341,1818326638,1847616617,1919249781,1881170793,1835102817,1919251557,658734,1970365778,1702130533,1953701988,543908705,1702521203,1668834592,1935959397,1261712928,658734,1684107084,2003782688,1700354848,540695923,1095975936,1668246636,1869182049,1314594926,540695919,977341440,1129529680,1278102593,1329807945,1347166286,1092628820,2119765,788198448,267918,-1949761348,-81848596,167772314,2464265,1738146863,-83425020,-326412812,-1760889190,-1577013243,1839395692,-1560234765,1048831260,1997137180,471763728,998754021,109248748,1929504028,436652009,-1593835291,-29498086,-1994688768,-2013220413,-773112689,-1996442141,-1982132081,-2082136433,31791622,113696115,-1325405384,-348806656,-1259514206,-619797760,-1561503838,1537403702,-348675347,-1544796766,446946054,-485841943,-1561109342,77851444,436651995,-956300827,31792134,-485711104,-1562177885,10152762,-1341865984,515395586,1973047296,-1207593206,-1336870912,-5222394,37460560,815989952,-451108407,-919593333,-1593620600,1000531228,470220779,1439391205,-967709557,15415302,-883037047,1374456661,1778503322]},{"sector":8,"length":512,"data":[-12154875,620709514,1946172544,-11105770,-1317019008,1390596616,1778503322,-1056810747,-1962981752,11861830,-883037047,-2115204267,-1711209236,90833358,-16742776,-16728448,-970427392,16711046,-16742774,-2043098882,393740029,1778503322,-40990203,-1996442114,25331918,-41484545,-1596099074,-789128459,1265817808,-11533904,-1327822794,1436176639,-1996122360,-1946222970,-2080440674,1962936703,8817198,-1996442369,25347782,-2030165505,-2037514496,-1336869120,-5222400,37460560,815989952,-350182967,-16867701,-1995880567,1439391212,-327029621,1048772866,1996610306,9431299,-451658111,225575167,1358432440,1342185656,151115162,30317063,-2037906070,-1098842368,1946222336,-7944664,-2037776130,-922812672,-16808392,-828762249,-1979356671,-1241579634,-1999730432,-16842366,1979645830,8818141,11555071,1358934096,-1073595494,-919559420,-451666293,547480529,377981419,8818147,666390783,-5222152,3775056,-657455936,547423859,-384130069,-451672321,-1979750423,1439391212,-326898549,440303886,1929445349,406749448,1912668133,-131287027,658683984,30775888,-828766455,-2012911103,2122380870,276103414,1778564506,-129595131,1778503322,-146372603,1778564506,-28931835,1056966810,-179927036,1056966810,-196704252,1056966810,-146372604,-1309260150,-1998007803,2122379846,544473334,477364540,410255932,343147324,276038716,-451404149,-245528634,403111680,31058405,620119690,1946172444]}]],[[{"sector":1,"length":512,"data":[-178353544,-472842057,-485050369,-1336933968,-1181069057,-1996177407,1570831430,-791611661,-1975946280,12055646,1988879313,172264444,-485062853,24510384,2088783936,-5242878,1497366901,-657407710,28316275,-1338704048,1436176384,-1996122360,-940835770,-2130944373,1946223231,1560725039,1586167795,-788482059,381157347,-352210717,1560725010,1586167795,-788482059,381157347,1342353635,-1073663846,-62486268,-789357152,-1589808168,1586226458,122128636,-451273077,513926097,512199147,-195130651,-472842057,-485062773,-1979949429,1183451719,-60912650,-1593030776,1586223880,222792188,-451279105,-1963172213,1183319879,-163149069,339483684,1183452277,-212032781,32655046,1183458027,1008477430,-1961265896,1200356446,-96040701,214983,-96040192,1946043961,-28931837,49446528,1586170997,55020540,-121536,2122329835,242549746,-1946394997,-1065155769,-1039089,2122324715,242550002,-1946394997,-16448697,-67099389,1586169579,55020540,-1946532215,1200290910,-771378932,-230278936,1200230262,-1977867252,-489491882,1200144906,-159481844,-1960610816,1174665798,-60912642,1929594683,-129976307,2209872,30775888,1183516425,-28965894,1183515627,-60912648,-1979496567,12055390,1183572945,277318138,-213480741,-451404149,-245528696,-451410177,-685885697,-1761549926,1575782661,-326412861,-1710822269,71237640,-1963178360,12057694,-1207966767,112255766,1358934096,-1073628774,-28931836,-789357152]},{"sector":2,"length":512,"data":[-1592953896,1586226460,55019774,-451148033,-1963041141,1183318855,37651450,1618346459,1778503322,-45709307,-164224,-828761484,-2012911103,-828703418,-2012911103,-828703418,-2012911103,-773063354,1056966810,-79263740,-1974468176,12057438,-245522550,-472842057,-450971649,-1705967696,93784149,-1946270071,2139160158,-1586167800,-1996863862,-1712650169,-451133821,-1207077366,-1202653093,-1706033118,118030805,-1017254775,-2115204267,-1711207700,71237640,-17201528,1056966810,-142178300,939569406,1979643782,-158955499,-1996442370,-1694565754,90833597,-17201528,-1635115797,12058359,-245522550,-783089481,277318627,-91846181,-2037884674,1048837878,1996610306,17623299,1778503322,8816645,12484863,678691071,-17267002,8817152,952696575,2013198470,30317079,-1903557270,11927288,-2104963447,-2030108927,-579469576,1778564506,-24737531,563966,-2037906369,-2037514503,-1336869120,11554824,37460560,-2037840704,-1098645764,1946222332,1560724999,351010803,-16742771,1342419024,-1705967696,79692347,-17004919,-789357152,-1973652520,-1946224762,-1998252514,-772645753,-24736797,478644734,-56718361,38258430,-91845885,-24771586,-56718338,71797246,-17398134,-16998773,-16562296,-1697178058,93782241,1088755361,1038423715,896663807,1358458296,1342186424,151115162,-1205409017,-1705969515,118030482,-16742771,10000976,-1246231190,1218072824,-1710921216,118030661,1778499738,-18159355]},{"sector":3,"length":512,"data":[-1017254775,-2115204267,-2097085204,31130174,-828741258,-2012911103,-956366714,16710790,-17004918,-16742854,-828762253,-1979356671,-1241580402,-1999730432,-16842366,-335610746,563935,-2037906369,-2037514499,-1336869120,11554819,37460560,-2037840704,-1098645762,1962999550,8818086,145772799,1358934096,-1073595494,-24737532,-1986991106,1439391212,-327029621,-1113980670,-1996133886,44170822,1183402203,16727550,1187448182,-973012994,16711302,-16873846,1178271924,-1709739010,90833358,-16871798,-829882187,-16809336,-16873730,-1232216341,1049493247,163182783,-66642432,115593611,-126572813,-2092248789,460652538,-16796019,-121094515,-1962931527,-217652271,737703078,-92058927,-971213313,-3592442,-153422432,1943589072,-193683442,-657403658,-660994701,-2096601591,31130174,44108406,-1706014501,90833520,-883037047,1374456661,-1560280648,379839768,-451632155,1554120880,-212098319,-1563873630,117426479,-828716756,-1576703487,-1113920719,-1559926270,1048632066,1972955953,-100931579,1048604651,1954605873,826179605,125143275,1057394586,-2141525244,-2098515650,1016727413,-352043264,826179660,91593451,-335791384,826179648,125144299,1057363098,-2144146684,-1762971330,-744880267,-352043264,826179620,91590891,-335751704,826179608,125083883,-349094272,-1591118710,1346951938,1778544794,37651205,192217563,1778503322,-12154875,-1191222295,-1202652974,-1706033115,118030805,-883037047]},{"sector":4,"length":512,"data":[1374456661,-349698361,28311553,-1202716492,-1706033032,93784693,16664263,-25263872,293011711,-771858805,478660579,-2097151767,1929510470,1575782888,-326412853,173968209,1586169738,1963407880,173968184,1183319946,-8486657,-1976667136,-922812602,-1258338680,-1949923072,1217006174,140413697,1946241082,105286368,158587088,838942858,1948269761,-352276272,-1979731966,113925612,-326413056,1586188625,-2012771836,1183383366,-8486658,-1977387520,-922812602,-1962981752,45219398,1317718226,-1996442113,73305038,-2147399542,-1053679415,1183503595,-1996442370,46292460,-326413056,681660753,33555947,-33544888,-1577171319,1174661928,-28951804,1183516278,-349658114,-1981077343,1174666310,-349658364,-388822607,1920530563,-118179827,47184,30775888,28313353,-59310256,-1705967696,93784149,-1949749085,-326501306,180829,-2081649835,28313324,142016336,-1706032976,93784149,-1593948535,1183373086,106859258,-2020998985,11860202,-9050032,-1578426717,1183435056,-79247620,106859008,-2020998985,-922814230,2012956216,-79263214,-964099916,-956539253,1191051264,-1965132293,1586169414,38242556,-1946263925,1586168647,-1593341444,1586227998,55020030,-1694861569,93782241,-1979955573,80371180,-326413056,172395345,-1309990749,-1336913663,1436176384,-1559914744,512486172,1200352028,-350313725,-212007226,-805195776,-1337035816,922701825,11594526,139827792,1183384983,-27358210,973227914]},{"sector":5,"length":512,"data":[74778694,770431113,-1946263925,-350313721,163712,1183501173,-791611898,-1207602216,300613632,-212007226,540475391,142016491,-1073663846,1575782660,1426065098,1364323467,-401967361,1183448647,-60912644,-2020875311,547612956,1560725227,1048772851,1962994464,105286270,-657403658,113668210,-1946160291,126487134,-1057094396,-397410124,547618387,-919559701,-1947525981,-472777634,-384004213,260686729,-350478709,149446,-1947524959,-1981080546,1586168647,-32536054,473861057,92114411,-561446731,-218364130,-60912732,547480529,478644715,142508265,1342927872,-1710721281,79692080,12079851,-1337070848,922701825,11594528,139827792,480445847,175570923,-350478709,1342523277,117997184,24510384,966414400,-804995072,-15633448,-1368010,1996425334,28940806,216728768,-350478709,547555211,-13702677,-899814263,-1957363706,283935724,16664263,-25263872,58065151,-1962894615,-472777122,-384006261,-2080881015,1946220670,1342287999,-1325893889,1342223360,-1761061478,-96040699,-1030458,-1946526069,-196703993,-1996273781,28374598,1316214992,-11533904,11597430,139827792,1183384983,-60912644,1183385483,38243058,955336328,108267078,425600,1996428661,-59310086,-493825,1183512182,1342223600,-2146935041,1946218878,-263797239,-230257920,1183558123,-8853004,33441411,1558774642,1575782911,1738,-2081649835,1048645356,16770330,1048643699,16770328,347606386]},{"sector":6,"length":512,"data":[1119375609,-711307225,-1710814975,90833358,-2131343736,1962997374,45980176,1183384938,30317304,1183319402,45980407,1183384938,563966,1183319103,563957,1183319103,563956,1183319103,-163149065,-388889167,-2131605880,1946220158,1946303520,1946237980,1946369048,1946434580,404654864,1569179365,117375217,1005184280,-163149311,3939364,1586117492,-788482059,381157347,1342288099,-1706032976,79692217,-1963178359,12055646,1988879313,172264444,-485062853,28328820,-1338704048,1436176384,-351955192,-178353445,-472842057,-485050369,-1336933712,-1181069312,-1996177407,1586232390,222792700,-620231109,28315508,-1338507440,1436176384,-351955192,-58817566,-1207339776,-1706023066,118030897,-1963172213,1183319879,-163149069,339483684,1200294005,-28955901,1183463659,1008477430,-1973980136,12055390,1988879313,88378364,-619673853,-2131081591,1963127422,-31113210,-2144080897,1963192958,-96040174,621789315,1586167792,-788482061,-2145653789,1963258494,-96040181,621018885,-420742144,-1208787318,-1948004096,-2021000634,1183570704,-60912642,-1979365495,512488262,-2021071592,2122379613,326435062,-1014431564,-348348534,-472842057,-1980217717,-2289529,-1763322,-1697178058,93782241,-1017254775,-2081649835,144312044,-2012987648,1586166854,-788482052,381157347,1342615779,-1706032976,79692217,-1946270071,1200291422,-96040957,-349561205,-211908728,706644291,184255467,683150706,1807241465]},{"sector":7,"length":512,"data":[-711307225,-1593374463,1346951938,1778544794,1575782661,-326412861,17099905,-620609917,-385648895,-828768025,-2012911103,-956366714,16710790,-17004918,-16742854,-828762253,-1979356671,-1241580402,-1999730432,-16842366,-335610746,563935,-2037906369,-2037514499,-1336869120,11554819,37460560,-2037840704,-1098645762,1962999550,1443284570,-2037514259,-1336869120,-5222392,37460560,-2037840704,-1634992386,2139356926,108331011,-619837697,922685675,145812256,19962448,-2037840704,144834302,-23163941,55020030,-451535221,-2016943151,59164,-451535221,-228816954,-1960908032,-773515746,-21591069,71601150,-417560695,1200288649,371100419,1552386277,-451501582,-451501248,1912667965,-113592307,4241488,30775888,266929929,1575782911,-326412861,-2096567165,1962935422,106859346,11798410,1140475529,1342594697,-312958893,-11533308,-1696395210,93784632,65213089,1183385158,-2134669050,259260479,-312985857,-485476609,1234843647,-1962497279,103482950,1183441682,-96040186,-485489151,-2096740863,1979712638,106859321,1183385483,46367740,-1962516855,-28931833,33965699,16547459,1996427638,-25755898,-1979746584,1325398086,-1947603972,1183447110,72285958,1183564267,1575782662,1426064578,1364323467,954939040,1978488838,-788483052,-1950119456,971182094,1994329743,244287748,1463714015,628465901,-313063738,305594112,-312690461,-312958896,-11533308,-1696395210,93784632,31658657]},{"sector":8,"length":512,"data":[-337440762,-62470365,113700188,-16716457,28900470,-118992896,-62486018,-485355893,-312688255,-411909829,954939040,1978488838,-788483045,-1950119456,736301070,-1981870449,-1892024754,74703116,-519270519,-1017254775,-2081649835,144314092,-2012987648,144373062,-1996210432,1569163971,-196704015,-1208721782,1015515648,-213481237,-348905926,-1880554635,876511232,91488491,1778499738,-100233979,-1924129062,519660550,1292368,108698192,1183385942,-159973386,1778388634,1342287877,-1208721782,-1847040,-1327161673,1436176384,-1996122360,1586231878,41910522,-1341688832,939479041,109962731,1344199418,-1912971637,1344144967,-1274722422,2056933376,-1995876858,1996486214,957174,-1063647894,-1710921215,90833344,-1561049462,113765172,56068,-620609917,-385648895,1048772767,1912920836,67553035,-1711275813,90833344,1358841485,1342177976,1778517146,-62485243,178256,33856080,1586103658,-788482060,277318627,-62520869,-1694599425,90833228,-1706024784,90833015,-1695123713,90832910,-1208787318,-1847040,-1327689545,-946188284,-1341822464,2006601786,-16422400,78707830,13081168,109905258,1344199418,-109640051,62410782,2056933376,-1995876858,1996486214,957174,117376362,1474943748,1575782911,-326412861,112721,-1545267037,715384086,-451632149,1470234800,-245587219,-1561109598,117426479,-828716756,-1576703487,-1113920719,-1559926270,1048632066,1973218097,89233927,350946987]}]],[[{"sector":1,"length":512,"data":[-313049472,-402426880,1048640941,1972955953,-103487483,1048605931,1971907377,110074375,1726678079,-349094272,-402295398,1525414794,-349094272,-1710787178,71237843,1048595691,1972169521,-70391803,1048592619,1956703025,826179591,125149931,1442842266,-2144605434,-1796525762,866126965,1943589099,-35592173,1048582379,1972038449,563719,703268523,1222312609,40933968,1048773994,1963055874,30317067,1183319402,-12129793,1358527160,1342194104,151115162,1575782663,-1957363509,108954604,-1207143424,-11470422,-711326090,1560742145,1426064074,2123099275,-1338143482,2147465472,-1946417378,-234429487,737703342,-796308783,182877,1374456661,-621148531,1586188318,503811334,664425296,1342532096,1443265178,-620715255,-620742913,1778388634,1575782661,1426064074,109964427,1344199418,-1710852353,156632485,-2424669,-1696923594,90832910,182877,1374456661,-100233903,-1957683494,1200424542,-1974460927,1342223367,1443265178,-620715255,-620742913,1778388634,1575782661,1426064074,-326898549,-129579512,108953604,-1975159296,-922814394,-1946663288,254085190,-112818176,1859323057,-109150200,-1979223286,805632326,1183451115,742458617,-129070582,-829882187,-2080750968,1962936446,108953606,-33196284,-1242888626,-621148531,1183469598,-1996442376,-95777338,78729502,11913258,108698193,10684758,3604443,957147,-326564502,313949,-2081649835,1187449580,-954195721,539031878,100026054]},{"sector":2,"length":512,"data":[16154240,1183462518,-2000093450,1183577670,702726,-235417039,-134330743,105810913,-1048328149,-163149264,-964099916,-1946727800,1183448646,16286470,109954677,1344199418,519521933,374864,108698192,10684758,3604443,957147,-326564502,182877,-1192457387,-1705969210,90833048,-1957311651,251613676,109959938,1344199416,520046221,43686480,10684758,4096987,225706203,1358533304,-620742913,151115162,-12154361,-883037047,-2081649835,2122516204,1517682694,-621279603,1996443678,-62485242,1183666206,-1706025222,156631858,-2082799453,14352446,-1833431692,922702073,-711271680,-16316159,10094710,-1995895808,1992558303,-95515652,1183712798,-218357768,-1957093468,1174534726,33958152,105261531,-326524693,313949,-2081649835,2122516204,997588998,-621279603,1996443678,-62485242,1183666206,-1706025222,156631858,-2082799453,14352446,-1833431692,922702073,-711271680,-1962473215,103414342,1177148162,-1983911162,46816748,-326413056,-28930735,178256,33856080,1183516010,1575782910,-1957363509,-1957604884,1317668422,65110024,1183369426,1962949884,-62470652,105810689,254337,-771209590,-62520640,1183383732,-25263618,91357585,-1845596543,-27358463,-669022326,1023231624,-1978632705,-657456058,-662109069,-4706837,-1977029633,12057950,-685734006,1963476538,-1948004080,1003042439,91555398,-335657333,-62486006,1174470836,-1985025026,113401324,-326413056]},{"sector":3,"length":512,"data":[-5222063,-669041011,503419321,-1426916345,16598726,1222048929,-1241690486,2009611008,-1966372564,-1999167353,3996742,-783279500,918028259,1358934217,-1979761688,1183514182,-27358211,-669022328,1979533054,1575782855,-326412861,-1224319350,-1333279232,-899809319,-1957363710,149717996,-112953,-687955457,-2131147128,1979775358,-112817613,1183369470,-1996442375,549421251,91554007,-338223454,-111244773,-472842057,-874608757,2013152827,-28931630,-1560721782,-940845282,-685891958,-1082130249,1946212128,-28915851,-56492033,-112817962,-1963434360,11860294,-687995333,-922865546,-1258731896,-2134669056,14098623,1183319413,-1977881608,12056926,-2020875311,1178323934,-1982826498,1183514182,-129595143,1586152939,-1979664392,-791039865,-1709607976,93782626,-1208459638,-1333294592,1943589081,28332807,25290832,987176608,58062918,-956267031,64070,-688122229,-1258797430,1255156480,-489486927,-687335933,-1963174263,-1210638818,-1847040,-1697958729,151781376,-1006182775,12188286,-1910613503,-1510802214,505317919,-1979664425,-1965612921,12056670,-685734008,-685891958,-472842057,-1258797430,-1948200704,-1983302001,915179974,-561017911,-561215029,505318091,-1979664425,-1965444985,12056670,-642742392,-685891958,-2017066825,-973023456,14266503,-1593953560,-326510818,-1957313699,116163564,-1999176543,1187446086,1187447036,-2147483394,-1342112386,1073838079,-1963043189,11926606,-2091855613,-5238534]},{"sector":4,"length":512,"data":[1497366898,-657407710,-1981217934,-45708800,1183369470,-1996442371,546278083,-78739241,1946220928,-788482777,-1981558303,1823771598,915377109,-772734007,1824293862,209059791,-2020949111,-789128784,494131408,16547456,1996425588,-59310086,-1979691288,11861062,-956414463,-352256954,-58818545,-1979288320,1183382854,-62456070,2147253888,1996428661,-59310086,-1979702552,11861062,-956414463,-385811386,2122383185,158597372,-362753,82377846,1575782656,-326412853,-1608717181,-657402081,-890698894,520537600,2122318039,175513092,-1274788214,-687824128,113706731,2021120,-1311309663,-1981230329,10613830,-754339369,-230258208,-104200563,-1929886071,11926110,519458441,1187270992,-1706031374,152568212,-2081405303,1946218622,-260144889,376766688,-919337331,1187270686,-11532552,-962922890,-1995892733,2122575942,208929008,1358549176,-1695516929,118030805,-1982137695,113763910,56058,1358556600,1778403482,27892229,1090783687,1183383732,-100233744,-1924129062,1344204870,1342177720,1443265178,-263812855,1358571704,1778403482,-431584507,-1965360477,11994718,-685727862,-472842057,-1274657142,-1948200704,-1982501729,914656198,-775748663,-1950119456,-1982894969,-125567930,-385649409,44105892,-62486057,-1258008950,-1547631872,104584962,1047975680,1003946145,1943470598,426759,-253026601,-1311309663,-1981754615,10613318,-754470441,-196703768,-919324929,116541124,4889168,1183385942]},{"sector":5,"length":512,"data":[-260144144,-385649664,1183449255,-1996442620,1183514182,-448362490,-1979955573,2122575430,913703166,-1209704822,547326464,-788482089,-448361757,-523173708,-714301557,-2071214455,-1023162058,-1014374191,-1980871029,-19960689,1191175502,-28377106,1183565035,-754339332,-230258208,-1308866933,-1981230329,1187509318,-1962934040,-1965622250,11798086,-1320497109,65196805,-1982396394,922741334,1187301684,-1974466840,11797574,-150863687,1187270881,-1706031374,156632250,-2081405303,1946218622,1812383249,750256371,1996443898,30776048,2122319625,309723140,-1224319350,-1333279232,1325269209,72285702,-326506261,311901,-2081649835,512367340,12048158,-685734006,1963607610,-1948004072,1003042439,225773638,-804895094,-385649704,-1494678882,175570690,-1341622529,1575505920,-96040454,-360829,-1024916619,-94467328,-669022326,-1259911544,-33146112,-385649706,-523173724,244040585,-1886791930,434686942,-685858053,-688122229,-1259911542,1255156480,-489486927,-687335933,-940943735,59462,-685891958,-472842057,-885737473,201326746,115312905,-1175947580,102629632,535053966,530969340,175570777,-1341622529,-571977728,-96040455,-1948836192,-2021066146,11851807,1317716873,546277386,-1948003881,-2021062586,1586153782,-1979664409,-1965444985,-1210638818,-1333295104,-413234471,-2017066825,-973023456,14266503,1183450859,-685858073,-402585111,513997432,175570903,-1341622529,2112377087,-96040455,-1948836192]},{"sector":6,"length":512,"data":[-2021066146,11851807,1317716873,546277386,-1948003881,-2021062586,-109000394,-1253477385,-1981689600,-595117109,-1207078195,-1202652603,-1706033122,118030805,-1224057206,-1948004096,-1982501753,-125568954,-1207339521,-1706023129,118030897,66608779,-472840098,-814970997,-1577826679,350996788,-1995946357,1586164806,-135561206,-472842057,-624785525,-2081667447,1979708542,505317918,-788482089,884473827,39627,-544667380,-1191182152,-218365696,-1957827669,162657350,1183441107,-196703248,-388823119,-899447,512420982,12048158,-1207966767,10144564,101256192,33601619,-263797680,-1449504762,-1995876863,2122575430,208929006,1358592440,-1695648001,118030805,1087833761,-2083060061,57934072,-956263447,-954,15156934,1222048929,-1243132278,2009611008,-2134144740,14098623,-472838540,-874608757,1945912891,-62486269,1978091262,-58818089,91455488,16533191,-414792064,-688086784,-414283192,-935657291,-880196489,-685719680,-784960512,-561542173,-62506037,-2016999309,52190,1586106091,-788482073,-62485533,-874608855,-1209573750,-1948004096,1003216519,1926694406,111362052,-414777641,512405365,12048158,111272913,-561542697,105286347,192141520,-685891958,-2017066825,-1962944080,-1210638818,-1948004096,-1983171449,113925612,-326413056,621299339,-11533825,1183517302,-754339576,1996443880,91265542,56165783,113925569,-326413056,-1224057206,-1948004096,-1546294137,-125577452,-1207339521]},{"sector":7,"length":512,"data":[-1706023129,118030897,425603,1642660727,175570689,-1341622529,1342223360,-1544071192,1048827664,1962923792,270437197,528976599,-1962887976,735509526,95505104,369353427,378132232,113760028,55066,-1710459137,151781376,-1006182519,-1177085386,102629632,536757902,530969340,205947225,1191117312,105840392,1586139883,-788482294,138841059,-841185477,632818038,832196647,-1962473214,64427038,-472840098,-814970997,-2083056989,544604152,-1710459137,151781376,12115849,16824576,-5508356,1325336646,205947142,-1326775808,-1311305055,-1545546999,312596236,-754470441,-686906392,-687208761,1325334529,138870534,425603,24641456,337546048,140379095,244048849,1346492178,-814969031,24444848,-1054713536,594794704,-16091393,11536502,-397410124,-125569444,-15698433,-2684410,1191118414,302448392,-4854825,-3591114,10095734,101256192,-687169197,-150863687,113529057,1342625548,1442949530,-686251255,-686276989,-16157696,-1697179594,118030897,-1177089375,-503905792,-385071615,-899809642,-1957363704,209125356,-16091393,1436157558,-1559914744,1183566128,33498378,721551545,839813576,139344841,1183516278,-919428344,576093,-2081649835,1979714686,142016304,-16353537,-5239690,168204880,849413527,205924809,-1996077567,175541185,-919585141,-218364130,-919428700,-351648255,147480010,-326413056,-1224188278,-1948004096,-2021063098,77712860,1820821975,105251797]},{"sector":8,"length":512,"data":[-2133392221,1945569406,50347269,-1665659530,834162938,-711307264,1560742145,1426064586,-967709557,-1593770170,-1974937860,11927374,695715899,-2020947063,1178261280,-1978043130,-791039865,1359442904,-397409872,1586165851,-973031425,14098567,1979664126,-174200630,-899814263,-1957363710,250381292,-688126265,12058624,33566141,-956414327,-2113932474,-2687938,-1956154624,-958989282,14098567,1342308536,519456397,2005584,1183385868,-92371974,-1958251264,144963654,-65106985,-1333279018,-472842023,-874608697,1183449088,1943589107,-28931298,-885749879,1087831201,-2116616541,33619582,-125631118,-972786347,-16714938,-2116617210,33619566,-4681237,1816038911,50379215,-218364130,47275,-841204083,503367865,-1410139129,-1912602696,-1177195458,119406792,-1196690692,77791232,-687430697,-1546183006,113694466,-385886433,-326503221,-1957311651,530600428,-791611689,-14715944,-1698089930,152568352,-2080487799,1946222206,-25755896,151138714,520537607,-326500393,-1957311651,149717484,563712,1183319103,45980411,1183384938,33983486,1183402203,16286204,-385648892,1773666313,832196647,-1207498494,-11473572,77266038,-1979356670,12057438,-245528694,-1996929400,-2131928826,57999608,-1979703063,-152356850,-1996442415,1015515843,889600747,2013245675,-1054719999,57858256,-973074711,15554566,-313063738,1575782656,-111244597,-472842057,66995851,-1982132089,-1964830714,12056926]}]],[[{"sector":1,"length":512,"data":[-348354678,-312998264,-1979955573,-1964830202,-1997852410,-957524218,-973014458,-1979647930,-152356858,1926811856,4909315,-313049472,-385649502,109772864,-1065229550,109702492,1048697590,33612562,384369527,-87771136,9607760,922683145,-979705072,-1996051711,-1949606420,-1914498498,-2014487419,-1329493561,-66642432,-326522126,-1957311651,183271916,108954369,-1962511360,130418270,205964288,-17398135,-17267060,-1995815285,-1946223994,-472840098,-624783475,-1006218978,106892358,175570768,402900634,-28931831,16678531,2122521460,141819910,-972661109,1542192903,-17398131,-25755824,151120538,138840839,1342240517,1342177464,91265616,815990167,807308233,-264273719,-2037576332,-11469066,-358941066,-1962473215,-1949749218,162595655,1468786899,-754470651,-1950219294,-422508426,-622689143,-1996011637,-1982147964,181034476,-326413056,-972493693,-2428410,-625983869,-385648896,113639645,-1593779468,-1974936912,-1243941874,1992833792,13101315,-783285840,-3438111,-1327844681,1436176384,-1996122360,1586231878,105352698,1200246814,1342223365,-1260718944,1183666176,177885433,-2147064064,1946220926,-621108921,-939637111,14350854,-85936128,4758096,1586169194,88575482,10000976,-1063647894,-1207604735,-1705968907,90832968,-956300134,-94467319,-1710864504,90833344,-1543616885,-1762927878,-790957408,-970886184,14349062,-621672762,-603536384,-1336932614,848973832,-1610301437,-789128461]},{"sector":2,"length":512,"data":[-663496496,-621535606,-472842057,-624785523,-828747746,-2012654080,117373254,57989876,-956356375,14349574,-883037047,-2115204267,-973011732,-2428410,-1978769781,-1040317105,-1257932915,-21066496,-66642178,-2037537550,-11469058,-1915030474,-1924071866,1358888070,1728206746,1943588870,1342287960,-621535606,-472842057,-625821697,-1706032976,93784149,-1961998711,1200426590,246960133,1996443899,-621502210,-1706032972,140902414,-1544871775,1856101130,-620190732,-211024186,121674495,113640511,-973016212,-2428154,-621541690,1575782656,1426066122,-326898549,173967882,-472842057,-624785525,-113015,1183452278,1342223370,1728236442,-62486266,-229757,1183531380,140413948,1183516553,106859518,1183516553,-754339332,-129594912,-1308866933,-1981230329,1183578694,-621239298,-621279603,1187270686,-1706031368,156632053,-1326037367,-1341985793,1575782656,1426065610,-326898549,106859296,-2020875311,1183439570,140413924,1183319946,-1995469342,11855950,1317652483,47334,-1980742007,1183444038,-364475922,14843520,1586189430,201820904,-515471328,-1964614005,550076431,-1948234104,45215814,1451933907,855684833,-263812670,-739490165,-530675008,-1020067657,-1947449719,-925635002,1183433523,-364475410,-1036793645,-18200951,1191174734,-431030296,1183557355,-137219600,1451877494,-297366530,822093241,-1980631086,1183578710,-137219604,1451877494,-364475396,-235417039,-2080876919,1962998910,-62470395]},{"sector":3,"length":512,"data":[2122514433,91554040,33048263,105286400,1342240517,-788111733,-28931101,-622688509,1342222416,-1761251174,-163149563,14894790,635666048,1586193523,-92894218,1962948736,629112843,-1202490113,1709965311,-1946788213,9108086,-523173708,-1056764019,1358055049,-1341622529,966414591,-804995072,-1961593896,126486622,1174601908,1183400178,-1950119436,-30479609,1183572806,-96074760,-2080749943,-1670240776,637169283,1183553259,-28965892,1006519945,108192838,702826123,1558838854,1575782911,1226,1374456661,30317137,1183319402,-45708547,3948580,-1394015371,30317056,1183319402,-45708547,3934244,1586105972,65241341,-2020998985,669773125,620578442,1962949760,-45708783,1346138148,-828766092,-2012911103,-828703418,-1274713599,-1966896896,-1997447801,-1113916346,-1979356670,12057694,-2029788207,1183439632,926843134,1232404715,-1208197494,1015515648,-348675349,-1543616885,280550150,1218072827,-1979356672,-1209321698,-1847040,-1327689545,-946188284,-1207604736,-1705968854,90832968,-620349697,-1706031952,90833095,1778499738,1575782661,-326412853,563793,1183319103,138840831,-388889935,1183318820,140935422,1962949635,-10581493,-2020998985,367784285,33455744,1586106997,-1979664385,-1208787297,998738432,-12154644,-804895094,-1978305576,1586167366,-2013219064,-1964159609,-2021064890,334228817,-1963047286,11995230,-313948280,-1996536182,-1980938873,80371180,-326413056,-1610158973]},{"sector":4,"length":512,"data":[-657396934,1436552051,889586413,-339149077,-313155577,-348846590,-1963243896,104465990,91679541,1996179002,1463713862,309699309,721974923,-1964830666,512427590,8968950,1586114027,-788482294,277318627,-28931619,-1995946357,79232070,1183666176,45109500,171376464,171481827,109249943,-1996168438,113925612,-326413056,1358638264,1778403482,21338629,834144009,1218072827,-1979356672,-1209181922,-1948004096,-2027223482,-1336878320,-946188284,-1710921216,90833344,182877,-1192457387,-1705968840,118030482,-1710983425,111870405,180829,-2081649835,1187456748,-1711275782,90833358,1183383732,138841086,-523040591,-1979824637,244053062,-939269360,-1694740855,90833358,-1948432760,1543894086,-163149331,14304966,618481290,1946172544,-582579690,-388889423,1183318820,-1996442402,1369410243,-1975915539,1076157766,1148518460,1056966810,-498693884,618481290,1963998320,-497120497,-211902582,-1618345801,283896891,618481290,1962949744,-497120494,-245522550,-2020998985,1183378236,-1962021920,-1618288034,-320081316,14698182,618481290,1946172424,-582579676,1183318820,-1996442401,1237287107,108331757,-314204278,1586110443,-1979664417,-336771705,-582579629,3932708,144319348,-2012987648,1586158406,-1979664421,-1997382521,-472785850,-417560693,-956676471,-335553978,-582579670,3932452,144315252,-1996210432,1587514051,-1979664397,-336839801,563723,-1014430657,-245528694,-1965275512,69524806]},{"sector":5,"length":512,"data":[175439932,1778564506,-129595131,1187448299,-2147483400,15554622,1586116980,-1979664420,-1997849465,-75439802,-2144635648,1963133566,-193035495,-1961069055,-1991707066,-1014368698,1973043072,-871905778,2122320363,57934346,-385812759,2122318245,1215561952,-1209966966,-1964781312,11853894,-1886658351,-1014375152,-586117333,-1981395319,-754667064,-398030368,-1980086781,2122441798,1930428646,-96060667,1996424819,-31921924,-1981528437,1183513158,-515471136,-153467254,1943589072,-597784030,-472842057,-619673717,-1980086781,1178330182,-16354310,-404161418,-465138691,-1963309431,-657455546,2122347379,225706208,-312992118,-472842057,-337623414,1478396427,-788482067,-515470621,-523173708,-586117237,-1892957303,1317657872,-431584282,-523041615,-2115484023,268494462,1174603891,-62505988,1996424819,-41096964,17464960,1183518837,-62520344,737824395,48858056,1183517931,-62520344,737824395,1317620168,-96039942,66477707,-129629433,-1946532215,346291270,-312958749,-1964155998,1520568902,-1996442387,786682307,88319999,-1946532213,126416478,16416385,-2122812927,-8324482,1183451506,-791611898,-9931816,401144950,-1956582403,1586231878,-351827466,-513897898,-472842057,-586119285,-1980342645,1479999239,-59310099,-1696499969,111870281,1183528427,-161575942,1183516553,46171126,-1963571575,12050782,-1886657583,-1014375152,922685321,1183575384,46171132,-993399984,-184227068,-1996155388,113925612]},{"sector":6,"length":512,"data":[-326413056,1048596817,1946217270,37651273,1198916059,1778503322,-12154875,1183510507,1343169791,149618864,620709514,-5222385,13736528,518719147,-1963100417,11861062,-335564720,-42533109,-1258535286,11554816,35166800,1048774315,1979833090,30317114,1183319402,-12154113,-388888911,-1963047288,45219654,52750546,-1963112824,52756294,-1963178360,12058206,-13704239,1845878695,-2012907515,-1996122875,13327852,1374456661,-621148473,-326565888,-1957311651,1839223276,1943589107,-66679538,-1706025254,156631246,-2130819447,15414334,-1063647884,-1610257919,-657396944,109907571,1344199418,1442893466,-28931831,-1760835942,1575782661,-326412853,-349134767,242473168,-621148531,-828747746,-1995876864,211484230,-1207498496,-1705968794,90832968,-1710852353,90832968,-899814263,-1957363710,117395948,1048632078,1946217268,29399562,113640810,-16717004,1218053750,-1996133888,46816748,-326413056,-1610158973,-657394836,1991793779,1218072827,-1710921216,118030661,-621279603,1183666206,-1706025220,156631347,-1191557495,-1705968765,90832968,-1325500673,-946188033,-16422400,78707830,13081168,-1967651478,1218072827,-1610257920,11856689,1342353488,1778435994,29399557,815793514,1943589099,-100233970,-1706025254,156631246,-375159,-1332083594,-1995895808,46292460,-326413056,-1341723517,922701825,11590408,139827792,1183384983,-27358210,-1995880565,1586231878,41910526,-1340967936]},{"sector":7,"length":512,"data":[939479041,-1706032976,93784149,-335657335,-28931099,-1979955575,88575427,10000976,2122515818,963903738,-1706022736,90833015,-11533904,11598454,139827792,1183384983,-60912644,-1962586114,1200487518,-1734717435,-1962579456,1207893086,1344843781,1778415514,1575782661,-326412853,-1710721281,118030429,-402229505,-899809581,-1957363708,-2091822612,1946222206,-73811963,-1414003733,1570394363,-1928918784,519815174,140413776,1342572484,-1710983169,156632698,-1694611831,90833344,-211024186,108461824,-1979805976,80371180,-326413056,1358676664,151018906,108461831,1576957672,1426064074,-326898549,1812383260,113770483,51500,-1982136671,1183575110,16286700,-1545010315,-620190975,1347486129,11796656,139827792,1183384983,-27358210,-1996273781,1200352326,-230258425,-1325401981,1073837567,-1947974008,1183384903,155683824,-1947318647,2139160158,376700930,178456459,1359065563,1342222416,-1761061478,-28931835,1183572459,-350444546,16402119,-465139200,2054412496,-772645237,-1031303709,-1957683494,-1913971682,1344144967,-1274722422,1419399168,-1995892734,2122578502,1148453114,-1982137695,113763910,56058,1358685624,1778403482,471763717,88575467,10000976,-88603286,1218072827,-1710921216,164036612,-350478709,-1710864504,90833344,-1545189749,-1796482310,-772645237,-1031304221,-621239334,-1449496597,-1274427648,-96040704,-621279603,512446494,1200483100,-1974460922,11797831,39098960]},{"sector":8,"length":512,"data":[1183385880,-92371974,-1589480448,1183439610,-100218906,-1207959334,-1705968619,90832968,-350478709,1342523277,1778423962,-64505851,4758096,77202794,-1274427648,-96040704,1778499738,-431584507,-337970525,-260144229,-1960348672,162656326,1183441107,-263812120,-388823119,-1914026359,517666822,-398015408,-174436346,-1995876861,1593834054,-133788412,-1706025254,156631246,-2080749943,1946221182,-92864760,151138714,-28120825,-211024186,1575782656,1426064578,1586228363,58688268,-1975487488,-657455546,-1063642509,-1962579455,1200426590,-1734717435,-1207604736,-1705968569,90832968,-1706024784,90833015,-211142913,1778388634,207522565,-1560066165,1167776520,1560742145,1426066122,-326898549,-100219126,-1207959334,-1705968545,90832968,1711453850,1510392840,-397408517,-1046807107,-972658944,15554310,1694635674,64068103,-73791540,-1006358784,117136902,-40114096,-789286240,-1923976232,519874566,-1442411184,-1202708740,-1706033123,156632698,-1912715639,519882502,-922317488,-1202708740,-1706033126,156632698,-1694611831,164036612,1183383732,-486109698,-1924129028,519890182,178256,108698192,1183385942,1862700542,-163149325,-1963434356,-1242337778,-95516416,1364205137,-51968371,-1801826274,-1995892735,-1923482042,517667846,1862700368,-1605361933,11858798,39098960,1183385880,-25263106,-1928563712,-11471290,-358941066,-972617471,-824058,771834010,-313090040,477354192,1358751928,1778403482]}]],[[{"sector":1,"length":512,"data":[1644610565,-1336932613,848973832,-1710964733,90833344,151001754,238977799,896794843,150998170,-50087929,4758096,922682730,1285217038,-1207604735,-1705968368,90832968,-789892960,-1928432680,517667334,13539920,1183385942,10394366,-326563572,-1957311651,105286380,678680784,-349423989,1183573713,773753608,-1593800213,-1556026580,4057900,-1207078396,-1202651864,-1706033152,118030805,707165,-1947432107,-773116874,172395494,-349299061,748748937,748896491,67124715,1085803890,12079357,-711307264,1560742145,1426066122,-326898549,1342287898,-1324857717,1357435657,-1706032976,93783408,-2130162037,50462689,-28931647,-1957690960,162596422,-1336874797,1889161216,-1962567931,-511637938,-1056767489,-2130950519,15951934,-1259797643,-27358464,-1224515702,1015515648,-398030613,-1963172213,11993951,-348352630,988237448,-1961593407,1200356958,-60912892,1996769083,15329539,-1979662103,12052574,-2020875311,1183440144,-413234442,-472842057,-586117237,-1309389175,-1981230324,1183576134,-1981230092,1183575110,-754667018,-27358240,-1996208381,1183576646,13665264,-1996484827,1183576134,-1948199948,1191443550,-297367292,-2081667445,254083280,-330921728,1978680889,-230257906,2012104251,-230257838,1978549819,-163148944,-336312773,-27358363,-1996077171,1988885062,105156092,-1963440503,1194853700,-1962510587,1200291422,-381253627,15302272,1586180214,201820922,-347699168,-1963434357,550076431]},{"sector":2,"length":512,"data":[988434056,-1341884735,-1977291777,1178266438,-15043862,1191180870,-380698888,1586219755,88574718,989617803,317261127,-1996443393,80371180,-326413056,207522641,-2013050998,3997510,1586109044,-788482049,277318627,207522779,-16496895,-1697178058,93782241,-899814263,-1957363702,451707884,15288006,-212058496,-1207208704,-1705968296,118030482,28325355,1545505360,-788482061,515375075,1358934245,-1761061478,-196703995,-586269053,-1962183424,1200354398,-586243325,245434859,-195130403,-972863607,-1593708730,-1974934246,11923278,58116155,-1996443927,1019183307,57934059,-1342137623,-472821759,-450971649,-1706032976,93784149,-1963702647,-1057034426,-1947384184,2139157598,1970536460,-18139744,-348806464,-1209049462,1015515136,-195130389,-1995815029,1183512134,989902061,1944394246,1359065424,-1014374191,-450971649,-1706032976,93784149,-1946925431,1200354398,-163169526,1586113141,-2147436563,15416511,1988828789,209486068,-1609206784,-1057035467,-1997851230,-1360761,-1697178058,93782241,-336771330,-280559963,1122567028,1426507519,1187381485,446759407,1317685477,989902319,-1994491960,1019183307,276103403,-313194754,-18139744,-348806464,-348354680,1978615550,-348479275,510908624,-1998251359,117368902,899738965,-1564410133,1183378229,-396457241,-2021130057,899738428,-1312751893,-1981680126,1048638022,1962994485,16823557,1187443278,1183449323,889600747,-1272743957,-1981755136,47555]},{"sector":3,"length":512,"data":[-586117239,-552693879,-519270519,-1209311606,1183811584,-347668756,1436603509,889596141,-280574229,-451239679,-280065464,-935657291,283706230,-1966372607,-1997849465,28371782,-1846960,-1327161673,1436176639,-1996122360,1586230342,209682676,-1978567424,12053342,1988879313,54823924,-586119287,-1963696501,1183320135,1946172652,-1996442566,1002406083,259260652,-331636854,-2020998985,1178266428,-1978894613,1586163526,-2013218836,-1964229753,104524870,192277307,988497546,58124614,-1964423544,12053342,-2020875311,1183441164,-195130376,-1324595318,-388870139,1492010632,339483684,1187382389,1183450094,-346125586,-2026241865,74902598,-330922104,49184384,1183517045,-31112968,-2145326081,1963191934,-129594613,621789315,267124720,82738816,1183517813,67044856,-1979973595,1586165830,-788482065,-129594397,-619673719,66346635,1586103111,-788482069,210209251,-280559903,-521600140,-619929090,-939637111,64582,32196294,988497546,1995126022,13428995,-1014431564,-330922102,1022248584,-1962314494,625015878,636223486,65961600,1183517557,264274940,-335548379,-293699564,-1962183420,-16384954,-67099389,1183515627,-96040452,-18129270,-788482101,210209763,-95515679,1177272579,210209276,-61961759,1980758403,-59866361,-28901616,-1209311606,-1948004096,-2020999610,1183571216,243763708,-347698465,-1957690364,-2029781946,385292,162613250,-1705973549,93784693,-1209311606,-1948004096]},{"sector":4,"length":512,"data":[-1310651257,-388804604,-1979824637,626589254,1174601743,-62486020,1980758147,-28901625,284978819,1961576190,-14096125,-789890400,-1974963240,12052830,-2020875311,-2029788916,-1065099506,-754667249,277283816,-263812643,-1964489078,-1209320674,998737920,-263812116,-1978662867,12052318,-2021006383,1586158864,-788482072,277333987,-1610612517,1168304949,-280574228,-451239679,-280065464,-935657291,-880206985,-348348534,-472842057,-2020875823,-880156914,-619673855,1978615550,604423384,-1336932611,848973827,-1996177405,13327852,-2115204267,-956230932,62022,1005733515,57804358,-1325315351,-523153151,1586218633,-1338966264,1436176384,-1996122360,1586232390,41910524,-1341688832,939479041,1183573483,-28931588,1334494089,-225540091,108498430,-17580403,119406773,-1331367172,1586188289,58195966,-1706032976,93784149,-1946401143,2139159646,125043458,-11533904,-1947866313,1200290910,-259618813,-1996442370,1016040131,-292648725,-59339778,-1996204917,3996246,11886708,-829824559,-586118005,-1963438455,989785734,2011903238,1342287950,-1207966767,11592990,139827792,1183384983,-60912644,954940320,796198983,-1014431564,-331636854,-1618345801,12053308,-2020875311,1183440144,-128545802,78762027,1442964179,-129594886,1187448299,-1342177032,2006601760,-16422400,78706806,13081168,984614250,7838288,1996424554,1342484730,1778435994,-255950843,175374590,-17922422,-348846534,2092434806]},{"sector":5,"length":512,"data":[-1207702531,-1705968251,90833048,-17660275,10000976,-1063647894,-16422399,-1410731450,1575782910,1426064586,-326898549,-28915900,1183514624,1183401990,-1119435012,-62485760,-2080487893,57804536,-2097114903,1962999422,-58817783,-385649664,1183514753,1183400190,-163148810,2013021755,1183402060,-160003084,1586226897,-1996453112,1988881990,-1947807244,822020190,-1695648001,124059763,309582032,-772508021,140413926,1082720395,-196149502,1988876523,-1947807244,1586228806,37783816,-336181505,-1115782996,-385649408,1183449549,-2000093507,11844934,-964042543,-1982444917,1116470862,-62486082,-1946197271,1174666310,-1981230594,-523111866,1586218633,-1996453112,1183575622,-96040450,-1979955573,-523110330,822068873,-1695648001,124059763,729012432,-771983733,-226587674,1586227153,-1996453112,-59340031,1183573713,140413934,1988821129,-1947807246,9111646,-1161591,1988882038,-1947807234,822020190,1694528410,1943588871,-25785497,2123097809,-1947741710,9111646,1988821385,-1947807234,1586228806,-1962899192,-422448522,-1962385781,-297367296,-771983733,1345388518,1694528410,1943588871,-59339989,2123097809,-1947741710,9111646,1988821385,-1947807236,1586228806,-1962899192,-422448522,-1962385781,-297367296,-772245877,140413926,1183383691,-96039952,2012759611,-1948200610,-422446986,1586218889,-1996387576,-92894464,1183573713,140413936,1325334665,-126448648,1586226897,-13566200,1939533430,-804821760]},{"sector":6,"length":512,"data":[-1947766056,-422446986,-1962385781,-263812864,-375041,1988882038,-1947807238,822020190,1694528410,1943588871,-1947866212,1177286726,-61961218,1006259755,-1977781311,11844934,-964042543,-1980084597,1183569482,-1102935556,-1980217717,468450374,-1262664054,-1981755136,-28406842,-1948890487,1116338246,-96040002,-1963047287,-1057047226,1019037320,-1207340532,-1706023055,118030897,-1979862295,80371180,-326413056,135457921,1358794424,1778403482,-242825723,-2037775881,104527857,58125109,-1274963991,-1981755136,277318595,1342484957,-2037784365,-1319569414,-1981230324,-956827514,33025926,1222974113,-135295350,-935657291,1558774646,-1966372607,988494983,1962406278,21293315,-783285840,515375075,1342222565,-1761061478,-28931835,-1543616885,512477488,2139146544,259260418,-11533904,1342222391,-1761061478,-1964709115,-1208488034,-1948004096,66583174,-1982132089,-1946683770,-2080900986,-2037841712,548468724,7838288,-1224800918,28375028,13081168,-1224800918,78706678,13081168,-944241302,1218072829,-1962579456,2139356766,141885443,-135100729,199950336,-1946263925,-1991769273,-1946684794,33026694,-1946683770,-2080902010,-2037841712,-1336870924,-946188287,-16422400,-1325926730,-946188284,-1207604736,-1705968182,90832968,-106869,78644087,13081168,-843578006,1218072829,-1962579456,-1916194786,1183384903,-1734717188,-1962579456,1065417822,-972589546,33026182,397413355,721182347,-259618809,-255950601]},{"sector":7,"length":512,"data":[242614519,-1706024784,90833015,-135229698,28371947,-27358384,-1341491201,1436176384,-1559914744,512477488,1200474416,-1734717435,-1710921216,90833344,-135297282,-1813445772,-242811138,-385649417,966852188,-791611669,-385649704,113705098,60204,-134445427,-991220061,117273606,1342419024,-1073532262,742294276,1752432875,1358811576,1778403482,1745274373,-2037579533,-11470852,-1695863754,130810215,-134445427,741801808,39659,113706956,60204,1358822072,1778403482,2013709317,-1336932611,848973827,-972767229,-825338,-134445427,741801808,23567083,-2037577780,-11470852,-1695863754,130809856,-883037047,-2081649835,1946158206,-31148020,74907472,151115162,46292231,-326413056,105286225,376690896,-1005826305,-1977218978,-1325353977,31511304,-1367546,1183516742,-1981230836,2122579526,326500606,638082756,100730763,1183050530,1325335048,-1947735042,-657454010,1589906547,126494216,100729012,-326505694,576093,-2081649835,1183518956,-754339574,-163149336,-1995815285,1719795270,-2097021174,1996491902,10414339,51005067,4000838,-955812344,134281286,1183517163,205914890,-1946663287,391238,12142594,-137219838,-196703759,-1928962421,1996443919,-159973618,142187088,1586169239,175540998,1183383693,-60912390,737691275,-129594938,673479,138840576,276027600,-990349569,1344207430,-1694599425,137232413,-621017459,1187270686,-11532550,2056976502,-1995876858]},{"sector":8,"length":512,"data":[1996484678,-19076880,33048203,1177157190,-196703476,-369736191,-326500519,707165,-2115204267,-1207422228,581107712,-349003541,-657403658,1810432882,1882113,-942258551,1515053638,-348709238,-472842057,-586117237,-1577562487,1183439622,-465123338,211877892,-330921501,-1981608287,178384454,309731,-235417039,-1964489079,-1208787938,1015515648,-830043925,-788482825,-1950119456,-1982001009,245493838,243729373,-230258209,16008903,-96024832,178323484,482378723,635324041,12124671,-1983370494,1183572046,33490398,-388822607,-1311226231,-1981754619,1183439942,-632895510,-2033844224,-1979582513,989319046,2011903238,-788482999,-1950119456,-1895572914,1317658892,-1312257574,65590025,1183438918,-632910888,-1996357851,-2037720506,104527823,343272517,14319235,1187448948,-16776998,1183569990,-431584808,-137394434,1187491189,-1929379588,517667846,-498692784,481841182,2056933376,-1995876858,1996488262,-40572674,1342184632,518145677,1342222416,771759514,1342353416,-485869825,1342177464,-1924071504,1358419078,771782810,-528580344,611582464,14712451,109911670,1344199420,11796656,94739024,1183385942,-25755650,-178712,-588521394,-1310964085,-1981230331,1187502150,-973078310,33017734,-137394550,-348846534,67388535,-811693488,-788482057,213385187,246939617,1358934239,-137066867,7903824,-1635121106,12056527,1183572945,210174938,-632911391,-388822607,-2116532735,33544806]}]],[[{"sector":1,"length":512,"data":[-137394434,849392245,-791611669,-146639912,-940891626,318230662,-762919168,-1929379593,517667846,-796474288,-1706031369,156632053,-1912715639,517667846,570854736,-1202708757,-1706033150,156632698,-113015,-1813447050,-66679300,-1706025254,156631246,-113015,2145975926,1829160700,-326565645,-1957311651,149717996,-1928561013,915210621,112852544,-66642432,115593611,-126572813,-1991585493,-92014506,-1207208449,-1705968058,90832968,1187478507,-16776966,95423606,1358934096,-1073595494,-28931836,-151822944,1943589072,540475151,1342550251,-1073663846,-28931836,-1946532213,1200225886,138840841,-1979818357,1183515975,-27358458,-1593358455,1183446126,-350313988,-2081132893,14351934,-22870667,-1340412966,1996443649,1358934268,-1761061478,-28931835,-1946915167,1200225886,1575782659,1426065610,-326898549,-193617912,57858256,-956249367,130118,16664263,-112802304,73319424,-1274574298,-62506752,24313776,2122338368,-5239303,1497366901,-2091859678,-1342112130,1073837311,-792649127,-1926794280,519335942,-112816816,-1701162978,-1995876862,1183579718,1183400188,-1966700036,1589967182,143140356,2122361835,376770041,-193984883,1183666206,-1706025223,156631706,-113015,2122579022,326369534,-193984883,-828747746,-1995876864,113704518,-1962871691,-1001849786,-2010774434,1973420359,1943589108,2097581344,-1001382146,1200424030,-1907358206,-1977219514,11796807,108698192,1183385942,73319678]},{"sector":2,"length":512,"data":[41910310,-1609993156,-789121931,175364304,100949700,9411155,12061127,-96040704,637820612,1979795256,-62486205,637820612,-33470582,956347592,813169734,654079627,-2013118326,540866886,1631329396,2050754674,1853883511,1183457529,73319673,653948555,-16629624,1183054406,-1066204676,-990230901,-2010774434,1589903687,2139104772,91562242,-193591610,1575782911,1426064578,1990257803,-791611660,-13929512,1218054262,-1006278144,1392903262,-1694597912,90833344,637820612,16875392,-2144990091,1965097599,1980155397,1589968884,2139104772,91642370,40861734,73319456,25133094,-1607764992,-657394570,1589912690,2139104772,158682626,638213828,-352319546,73319441,41910310,-1005882023,-970585506,-1034027257,2142765066,1218072830,-385521152,-1957298312,485261804,-266419197,1204037367,-393836284,-360280835,650349053,1979793280,1963378235,244187124,1360983152,100814733,-360280495,126494461,11847934,39098960,-2037839592,-1098645768,1946222328,-23349228,-122224816,30776062,99288841,-193657146,-1577013248,1923282036,-1560234764,-2033788166,-1962935068,-788732794,-385649960,-2033843836,-973013788,-203386,1358872504,1778403482,-444166907,-397402372,-1063584395,-2147128831,16574142,1508442997,-426866175,-406942212,-1342130692,-66642394,115593611,-126505230,-1991585493,-2080510314,125108218,-52132154,-1978995713,-1258494330,-293172992,-290026499,46564349,-52067642,-290026708]},{"sector":3,"length":512,"data":[-1165998339,1965882597,-292618490,-1947276291,1090383494,-52001144,-34699577,-2033778688,65268,-52001142,-2043084620,410254830,-34687349,-2147301757,754771386,-2030107531,-2030043404,-588513810,-17398073,-2033778688,65004,-17398133,-17529285,652804978,-323580929,-410874371,-96040452,-1963172212,-1241717106,-1982977280,506245319,-779355129,-1359870237,-785647499,-292124342,-27883011,-1980628154,-2080510794,1936982266,-34699637,-17135992,-989966709,-1097991562,102694651,-65075426,-971004686,16643206,-17133942,-17056115,783286453,-1946417378,-234429487,737703342,-1769387311,-92013074,-1927711233,-1963000898,-1258358138,-1174928640,-792854524,-2136673538,83819142,-17135987,-192508592,12079357,-4698112,244994303,-16226816,-369166714,-726073538,1218072830,-972723712,-203386,-52066675,-152547298,29399803,-1098906262,1946221798,-410612259,-96040452,-1963172212,-1258494330,-28931840,-1980072252,-63983423,115593611,-126505230,-1991585493,-2080510314,410320890,-1996242301,-440762154,209015036,-193853754,-293172225,-28931587,-989966709,1049492086,102691695,-65075426,-1960860430,1856175686,1866370547,-1329493517,-66642386,115593611,-126505230,-1991585493,-2080510314,125173754,-1979824501,-1946292602,-2114064706,-1175228473,-541196284,-66642178,1183556850,-1065135874,-210853372,-193591610,-92879872,-17056115,503717465,-218358009,-474472540,1218072830,-1962579456,-1097990578]},{"sector":4,"length":512,"data":[783351547,-1946417378,-234429487,737703342,-1769387311,-92013074,-1962445313,-2037776826,-1097990674,-1107034373,79298030,-17842688,-218364130,-100233820,-1924129062,520027014,-293172400,79725565,108698192,-2037839530,-205979912,1218072830,-1929025024,519890310,-88086448,1778499738,-423723003,628359420,-151751008,1943589072,-426866148,-407466500,-71397892,503363070,-1527579641,-52001142,1183383732,-28406786,-17056115,119418544,-472806404,1974399494,1255222264,-34695543,1962932867,-28931323,-1098049301,2114191099,309758,520026046,-1527579641,-2080487797,-2037840704,-2037514770,1183448827,-60912390,-34699637,-989968759,1359411790,-83456688,-1706025218,152568212,-17267063,-34568563,1187270686,-11532550,1419443830,-1995892734,-2080442234,16709822,1183649140,-1224781574,-358940936,-972617471,-1363962,-151751008,1926811856,26274051,-52066618,-16992001,4758096,-2037578390,1344208101,-1694903064,90833344,-51986816,-1602259968,-657394570,1676215155,-427390463,-1262420228,-2134472448,754771386,-2037771404,33881318,-964099916,-52067642,-427360724,-192493572,-956301058,16641670,-427390464,956347644,1946021510,-290026728,46564349,-52053376,-16485076,-68474,-335679866,-1341732900,-2097151782,100594878,230165878,12079359,-711307264,-1207498495,-2043084800,58064628,-1996428823,-1979847546,-1946225018,1224668294,-17398215,-739703946,-323581184,46564349,-52067699]},{"sector":5,"length":512,"data":[-1929754999,-1903494050,11926758,-34828757,749782921,-1946417378,-234429487,737703342,-1769387311,1451884014,16417790,-2132212875,-91830784,1317732606,-92355330,-1946404176,-234429487,737703342,-92058927,-1709869569,164037033,-2037890812,-2033778949,-969212164,50264710,-989966709,-2037712266,11861754,-1148336247,102694651,-65075426,-1977637646,-1258358138,-28966144,-17135992,-17135987,1342550096,-1705967696,79692347,-35223927,-625992053,547480529,-1299740181,-1341718566,-326726694,-2046607107,-2037776914,-2038170132,1912733430,-14685949,-193788218,956745216,109904107,1344203577,1358900408,-52066675,-1494724578,856082169,109904107,1344203571,1358904248,-52066675,-1897377762,-193552135,695392464,1358909368,1778403482,-444166907,-397402372,1891170317,1218072831,-2147128832,16574142,1990199156,1943589108,235325193,-385875747,113705109,56590,-34699577,-2037776384,11861222,-34699719,-1232377741,-964428306,-444429822,-444167940,1915763965,1983462404,-9193461,4758096,-1796536982,-586269055,494344601,-586269055,-5236327,1346371956,-35275136,2013245493,576274433,1943589057,-7292923,245485291,702941,-1903500809,11927013,-394018557,-586243280,-34699521,1048808683,1979768078,238977294,1929511133,235325190,-972947235,-138106,-35354995,-1262989282,-2037559041,1344208101,-940005144,14879750,-460944896,1943589117,235325192,-335544349,235325190,-973078301]},{"sector":6,"length":512,"data":[15415814,-348518771,-977776610,-2037559041,1344208101,-1594329880,-657394571,109907827,1344205936,1442893466,-125400823,-259617794,-621108227,-883037047,1374456661,-2508719,1342550096,-1705967696,79692347,-1946270071,-774197218,-350182941,-625834103,-625998081,-348518714,1946601215,-326500364,52061,1391233877,1720340766,139904268,-855224693,1512003873,576093,-1964209323,1451886694,1562496262,1226,0,0,-1930654891,-2080902138,284685318,-134609268,-134347124,637534910,512302219,-883034122,1374456661,429393,-62486083,-1946263924,1183385158,-60898052,-899814263,-1957363710,2013709548,1589905140,126428678,1468606042,106873858,638207627,443746105,621789315,19333104,172395271,-1324367741,-991374588,690357854,1589903943,172395270,-1006163674,-1960442274,-754667257,1191257832,106873858,254247206,106873856,38243110,-135258428,1929853734,16758789,1589907691,130295302,-1930135389,-1191937530,-899874816,-1957363706,113482476,516163926,-14223376,-883095457,-1695773867,151781534,182877,-1695773867,151781534,182877,1374456661,638213828,-973076538,-2147418298,1997012862,-12154348,-964099916,638213828,536953030,1979664126,-12138778,-8486912,-1978370302,11861830,1589954185,1086727690,1191059465,-957975041,-1979646138,1178271558,1929359364,1317683201,-1996442113,106874062,947922512,1962913824,576274433,1943589057,-12124667,1183503851]},{"sector":7,"length":512,"data":[985726719,913507398,-1258338678,-993621760,-2144991650,1966735736,947922469,637826650,-1977603968,11861830,1589954185,9053702,-1057078996,638213828,1182795656,1187382015,2122318078,-5240578,-1975516814,978386766,-5241778,1514144114,11911714,1589956233,-2144972794,-5231048,1514144117,-657407454,-1977214605,-28407296,-829882187,638213828,-33472376,1191116358,-1967657985,1178271558,1929359364,1317683201,-1996442113,106874062,947922512,1979691054,576274433,1943589057,-12124667,1183503851,71711487,11817075,1589954185,947922438,-29133522,1187446598,2122318078,-5241858,-1975516814,978386766,-5241778,1514144114,-657407454,11870323,1589956233,9053702,-1241624950,-993097472,-2010772898,1191053632,-12124418,-326515477,705117,-2081649835,1187383532,2122318073,410453241,-1309063542,-1981679956,-1568175421,-791611660,-32869672,-495584954,-352256072,-112817575,-503927631,-2020752503,1183446140,-27357956,119456649,1187271430,-11532788,602409590,-60898050,2073711366,-1274427647,-96040704,16416387,1589910901,1204168444,1589903397,1204168444,1183711014,-1706025220,156631246,-1946532215,-326501818,707165,1374456661,503727757,13539920,1183385942,-25263106,-15436544,10094198,101256192,20355667,11798983,-1946270071,-326500794,182877,-2081649835,1187383532,2122318073,410453241,-1309063542,-1981679956,-1568175421,-791611660,-32804136,-495584954,-385810504]},{"sector":8,"length":512,"data":[1183449406,-156454407,-1916565023,-1980466041,1586297926,516131326,-1001191929,1342572614,-402229505,1589968226,-1705834756,164036833,1183383732,-58800902,-1929282163,-1174411722,-1946419196,-217652271,737703078,-4699439,1959803903,2126775870,25005564,-1427827,-1962932807,-217652271,737703078,-801420591,102790233,-1912832316,915210621,-1185808401,-779419644,-1494022429,-785647500,1506818890,-1005947559,-970523554,-352311481,-60898296,659015206,-92371969,-1962511360,-1880491450,-60898304,103303053,28940880,1589905863,1204233980,-1006632927,-953746338,8392263,654073540,11044807,1589903360,1200236284,1943588903,-1705834954,164037075,1183383732,-92371974,-2094763008,1946417790,-112802274,-109150208,-1978370177,11860294,1589954185,1086727932,1191051304,-1192856071,1589903360,-2021054724,1589903530,1200105212,-60898267,642237990,-60898049,1589907341,260646412,-899814263,-1957363702,205964524,1187270662,-11532792,1419380342,1560877058,2762,1374456661,16664263,73319424,103303053,28940880,1589905863,1200236036,1943588901,-2020923872,-1993998168,1589911879,-1705835004,164037098,1183383732,73319678,625460774,-28931328,-1034031991,-1957363708,116163564,687747,12060021,-1955730688,-2147154362,1178290176,-16551162,1183516742,8389894,105285960,-1324988789,-1947675897,162596950,-1039932717,-16365943,10095222,-1995895808,1183644254,-94452484,1676169990,-1996442369]}]],[[{"sector":1,"length":512,"data":[2122579526,494207230,-1006221685,-1993934242,1589911879,-1202518278,-1706033152,164037193,1183383732,-28931074,-899814263,-1957363706,116163564,637951684,1946173315,106873886,-1707606234,151781376,-1929617783,1589968454,1200236284,-791611866,-1207602216,770375680,117202628,-17242029,1183383732,-92371974,-1005095680,1392966750,-956237670,-1996442615,1589967430,1204168444,1183514662,1575782906,1426064586,1364323467,638213828,1946173315,173982815,-1707606234,151781376,-1929617783,1589968454,-2020923652,162594984,1589962963,1200170502,-60898302,-1467512026,-754470656,106874080,-1006139098,-1960442274,-59325433,-2080168368,995688618,-1912114239,-14284730,1589903943,-2020923652,1589903530,117515782,-1996488520,147480044,-326413056,-15930237,10096758,-1995895808,1183644766,-60898050,1005081350,-1996442370,2122578502,57934074,-1962885399,129041990,1452009683,-754339576,-1983773726,1183577670,-754470648,-60898072,591890726,654073540,11175879,1183514752,8435978,-235417039,-1946663287,78711878,1174530259,208044302,2122514447,1903558904,101467844,28940880,1183517127,-60898058,558336294,-768313,33536001,1995982395,-129594618,-990624119,1392966750,-1695254785,164037170,1183383732,-92371974,-2096729088,1963195006,-193035476,-1951435264,-1992231354,-125569466,-1006144256,-14222242,1325343559,-1316966152,-1259810300,239468800,-336310529,-96039980,-899814263,-1957363700,116163564]},{"sector":2,"length":512,"data":[638213828,10106879,-1995895808,1183644766,-60898050,-1430290138,1962967040,-397212080,11861310,-2080749943,1946221182,-96040187,1589926635,-2020923652,641728680,-1004451959,1392966750,-956181606,-1996442615,1183578694,16286714,-125631116,-1003391741,-14222242,-1006589817,-953746338,43655,-59325440,-1430484186,653494528,-1003994742,-2010773922,-60898297,-1433927898,47104,-899814263,-1957363704,116163564,638607044,10106879,-1995895808,1183644766,-60898050,-1430290138,1962967040,-397212079,11861158,-2080749943,1946221182,-96040186,-1006598935,-1960379298,1073784967,558336294,117202628,30644819,11798983,-1946532215,-125568442,-2096794624,1534395384,654073540,11044863,654073540,11175879,1183514624,106873870,-1207465690,1589903488,-2027215108,1992556714,70854150,-1993997450,-59325436,-1430484186,-1913419520,-1006229439,-1993995682,-1993975289,1589903959,126559750,654073540,11175681,-1996488520,248143340,-326413056,-1005917053,-2094658978,57999423,-1006589207,-14284194,39479,1586039052,-28930820,117202628,-69146541,1183383732,-92371974,-1962511360,-2081818042,105286400,-388823119,-1324853621,65196809,-163149374,654073540,11044745,654073540,11044747,558336294,117202628,30644819,11798983,-1191557495,1178140672,1979691258,-657440767,2122525043,-5242630,-801111691,-954436648,63558,2146991747,1589907831,-126448644,675333670,-129596672,-1947634943]},{"sector":3,"length":512,"data":[-2135357882,-137219840,-60898063,-1432909530,47104,-899814263,-1957363704,216826860,-1710196993,151781376,-1929617783,1589968454,-397211908,11860778,-2080749943,1946221182,12118275,-1324988789,-1947675897,162596950,-1039932717,-1946794359,129042502,1589962963,1200170748,-60898269,-1433942234,-1962901504,-2135356858,-137219840,-129594895,-1324595573,32035588,1719733830,-2097148148,1979775102,205964395,-1181069306,-1962293503,1589966406,1200170748,-196688095,-4718081,-129615103,1183516278,-196703752,117202628,-193527981,-956151398,-1996442615,2122578502,745865466,16023171,1183561078,1183400182,16286710,1589905269,1207903996,-129040605,78741680,11856082,-15841791,-722734002,-1980086645,214588908,-326413056,-1006048125,-2094659490,192217151,-1710852353,164036628,-1006587159,-14284706,39479,1586039052,-28930820,654073540,11190145,1953824896,535319302,-1996442374,2122578502,108265722,-369473909,1589903490,-2013321476,1589903528,-2020923652,-1993998168,1589911879,1200236284,1943588903,-1705834994,164037075,1183383732,-955913222,16775750,16416387,1187454068,-2097151752,2004875390,-60898287,653817483,2638022,33048195,1589963123,-2016991492,170,654079684,11189387,1183511433,1099441670,-60898264,-1433927898,-60898304,625460774,47359,-899814263,-1957363706,-2091822612,1946158718,-28915915,1183514624,1178159110,-1004046338,1342573638,-1962385724,-14221706]},{"sector":4,"length":512,"data":[94738992,1183385942,-58817540,-1962576896,166460486,33441411,12111987,1575782656,1426066122,-326898549,-28915962,1183514624,83395582,-1397151369,-1981679872,-1567126845,1943720180,2089258260,-62486028,519849613,13539920,1183385942,-28933126,-1982893311,1439391212,1183706251,-1706025466,156631246,182877,-1326675115,11554817,1612368,-883095289,-1326675115,1996443650,1612294,-660469497,46816759,-326413056,-1336933456,412766208,1560872704,-326412853,-11533136,412747382,-1576466688,-899811367,-1957363710,1342550252,-1710852353,151453720,1576524450,1426064074,112258187,108461904,117446810,46816521,-326413056,-1001387600,1342572102,-1706032976,151453696,1576524706,1426064586,179367051,105301072,11554822,39504,-593360633,80371191,-326413056,-1336931408,412766208,1560872704,-326412853,-1336930896,412766208,-1576466688,-883034147,-1326675115,1996443662,1612294,-559806201,46816759,-326413056,-1001386064,1342572102,-1706032976,151453696,313949,-1326675115,1187270672,-1336932858,10113024,1560872704,1426064586,296807563,105301072,11554822,39504,-899872505,-1957363708,1343402220,-1706032976,151453720,-1957311651,1343467756,101074628,1342222416,117440666,80370953,-326413056,-1001384784,1342572102,-1706032976,151453696,313949,-1326675115,1187270677,-1336932858,10113024,1560872704,1426064586,380693643,105301072,11554822,39504,-899872505]},{"sector":5,"length":512,"data":[-1957363708,1343729900,101074628,1342222416,117440666,80370953,-326413056,-1336927824,412766208,1560872704,-326412853,-1001383248,1342572102,-1706032976,151453696,1576525730,1426064586,565243019,105301072,11554822,39504,-899872505,-1957363708,1344450796,101074628,1342222416,117440666,80370953,-326413056,-1001380944,1342572102,-1706032976,151453696,313949,-1326675115,1187270692,-1336932858,10113024,-1576466688,-899811360,-1957363708,1344778476,101205700,108461904,117440666,113925385,-326413056,-1001379664,1342572614,-1710852353,151453696,445021,0,0,0,0,0,0,0,0,0,0,0,0,179367051,105301072,11554822,39504,-593360633,80371191,-326413056,-1336931408,412766208,1560872704,-326412853,-1336930896,412766208,-1576466688,-883034147,-1326675115,1996443662,1612294,-559806201,46816759,-326413056,-1001386064,1342572102,-1706032976,151453696,313949,-1326675115,1187270672,-1336932858,10113024,1560872704,1426064586,296807563,105301072,11554822,39504,-899872505,-1957363708,1343402220,-1706032976,151453720,-1957311651,1343467756,101074628,1342222416,117440666,80370953,-326413056,-1001384784,1342572102,-1706032976,151453696,313949,-1326675115,1187270677,-1336932858,10113024,1560872704,1426064586,380693643,105301072,11554822,39504,-899872505]},{"sector":6,"length":512,"data":[-98017559,-150858567,-16310778,-1190955777,-896794015,243911171,857604944,-1982165294,520425486,-164380274,244055691,-201588688,-1899983708,-1949266216,-83874778,-402269976,512428684,-2017066960,-1962868737,-167562466,57999111,-385275159,-389085099,222038007,-152566923,126496263,1975519811,950060014,1208367623,-1274776576,-1156526848,1357381638,565901831,403500032,12263150,-1948545536,-1996154338,-1962897378,-1996153826,-1962896866,-1996155362,-1962906594,-1996154850,-1962906082,-1996156386,-1962905570,-1996155874,520122910,241091579,1285209686,-167723434,-1882499754,-1106837498,-253014891,-1101656482,1431719066,-2011323453,1159548948,68487195,1293777173,1577864716,823302429,655119119,235212301,235212293,251989509,353571347,-149752813,1192426002,1224886274,1895982850,2097312258,-2113765118,-2080210174,-1912436478,-1610441982,-1375559422,-1191006462,-972898302,-939342078,-905787134,183042,1229015040,-917074738,47404545,1325646934,-833663667,-1865592949,1279480393,1090556357,-1918614188,-1831386798,1162412032,1233306700,-2116860596,-1982577408,0,-2016654263,-733654272,1229652101,1397425316,1145767332,1090520740,8701261,-1999350528,-733066943,-650031985,1392509075,1166464069,-1965800109,1414748416,8637765,-1538962103,142,0,604474063,-83104897,-176882372,-260702660,1599997834,38189981,1085401226,-1975270914,785615607,-1073084534,1134555764,787773854,-986052726]},{"sector":7,"length":512,"data":[-628627339,1499120010,1587597450,-1329591804,73310975,548408692,1101724043,58052350,-1979158551,772205506,-1975318646,-1954601776,-29250823,-385649202,-1039529896,1130097017,-83342615,1532582233,770198355,34847493,-1073594068,11913354,-1959864061,-397190377,-930478824,-1406209397,58031908,1124612073,930464058,-1406209397,2042628674,787647458,83290284,57945660,-1341850392,-385650176,-1957165036,179056370,2035964352,256259,1358528524,1900208,1527248617,-1406209397,2042628674,-1494531337,1007149545,-821988227,1134387038,-2127820918,-1073549710,-259267534,187283801,-1258344879,-1209466399,232693763,-1341392763,-1694495737,-1174401612,985203677,452615,-1190926406,-225769522,-2127778770,-1966931597,50378712,1121518555,-1406209397,1111689096,-1406209397,-347994232,981792733,1979711239,1600114433,700012957,-1258335989,1609107258,-135034109,-16265596,-821987841,1503485791,1359724473,130987263,-29557821,-46398092,1137645172,-1925445750,1978205045,1972255752,151513347,-821589429,1134387038,-2127820918,-1060110155,-397293430,1692926742,-561553916,197114454,-1576947630,-208993112,129302318,1140900610,1667855973,1851072613,1767994977,1818386796,1866661989,1853189485,1952539497,544108393,1717990754,1864397413,1718773110,7827308,1802725700,1769101088,1344300404,1702129522,1684370531,1936278528,1869488235,1699881076,7955553,1802725700,1684360480,1159749993,1919906418,1986281728]},{"sector":8,"length":512,"data":[1701015137,1699094628,1920300129,1236402277,-83462679,1144832650,1590624627,1245486430,1760167282,754319368,76987203,-1976643446,-1073069305,-889259915,686355573,1193184252,144239107,-1946421760,348423111,1186072351,141869066,37504946,1219625588,-83482135,-397192624,-880082034,-1974314405,275114178,1590646874,1381670239,1347835804,154977930,-816315790,34400331,-471332748,-538378495,-346516991,1591440330,-2041012897,1582931652,-1974380969,1406175986,50343609,509657,117416025,-323223804,-561553915,-152481450,-880018667,1525155722,-82056430,-420951157,-1654694382,-1996488517,1527048478,183197275,-389313541,1600000784,1448566429,-880018485,-351070232,-1654694159,-1631287720,1583045209,937973335,-386151661,57802776,-1325440023,321447949,602409648,-1654694381,844519262,-655832128,-1023314685,512446803,783877353,1507394304,154929034,1600045915,1499159197,-396994722,1590367297,1482399071,-551286902,527581228,460528444,-256294077,-1426486524,851639873,-104792384,1355056799,196527238,-385532439,1599996777,-1070442339,1600052459,126507933,1465827338,57854806,1593762793,-1638359713,-1978501988,170667015,-401967680,-873987854,-107130368,-1070424932,1390936498,-1071997694,17614884,-1660602718,-1564468580,1973224687,216721667,839189480,37611712,-401841175,1925383101,-23664381,1486708574,1359686073,11331659,552076917,216459520,738229736,158683196,-402613784,233373711]}]],[[{"sector":1,"length":512,"data":[7137297,387137,1911144498,839037444,-402606400,-1329397267,87466751,-393560014,-806828662,509441,-33235040,1942301381,-1564462353,1589839158,15310175,-397346037,1918435040,-30742269,-392339618,343020345,276040252,1599996907,-383874147,2799876,134142211,1946412521,-33101565,-1021974807,-50623650,-1957255634,-1979025953,1916419079,401195777,68479232,1006828448,-20382200,-1010237752,1007127107,-1023315398,-193716164,809240690,-20906251,-1073036344,188545908,507277170,10502005,-1010824701,10634064,1931226115,1945447482,1979595783,1124567579,50208393,-662044489,50470537,27394736,310019,-1010824616,1128466314,50208393,-348157365,1963998433,-31552573,-23663870,-1564421952,1364329217,-2029845830,-387413286,-628686255,512318041,-1151859970,-1073086460,1913208003,-9639677,-17485764,-1010237760,1006829728,1008300815,-1961528819,1963131422,1128481546,-1975314550,-388331721,-1444216601,-1576861280,138150651,512430708,512295682,512427171,512295684,-1913977691,-402455877,-2048196339,-1631287720,126534491,-109944516,-176981188,-389849308,-93126646,-160288708,-1007338948,-76398276,-1007330500,54206091,-1558279741,-1576882172,1405289211,50994827,-654114635,-604514045,1916453763,1927021321,190723,-320224421,-118036224,-347067715,1350352376,2042491883,-1108415668,-370456744,-350283331,432061924,1505615851,-1109726420,-706011686,-348150339,596164048,683527147]},{"sector":2,"length":512,"data":[-1111037119,-1041547027,-346500163,1073200572,-1581402133,-1112347804,-1377103791,-345752643,1328332200,-692214805,-1113658586,-1712642498,-350806851,1682226580,-1430417429,-1114969310,-2048187723,-351667267,942325120,-1107790871,1843994396,732282360,-1107793943,1642671224,965721592,-1107797015,1441339896,983678456,-1107800087,1240008599,461618680,-1107803159,1038705816,128368120,-1107806231,837362741,755285496,-1107809303,636037286,128564728,-1107812375,434702951,274316792,-1107815447,233375926,754236920,-1107818519,32061294,649772536,-1107821591,-169269681,461356535,-1107824663,-370591641,127188471,-1107827735,-571930726,642563575,-1107830807,-773247887,1950399991,-1107833879,-974564144,802602487,-1107836951,-1175910478,128171511,-1107840023,-1377233113,288407031,-1107843095,-1578539826,126795255,-1107846167,-1779863352,522173943,-1107849239,-1981208810,291225079,-1107852311,2112447824,633257463,-1107855383,1911121161,577224183,-1107858455,1709773976,275496439,-1107861527,1508467889,128957943,-1107864599,1307117484,1390919159,-1107867671,1105798692,1097448951,-1107870743,904476778,1130020343,-1107873815,703153913,1185463799,-1107876887,501817098,1199291895,-1107879959,300508130,1698479607,-1107883031,99174810,1686814199,-1107886103,-102145107,1800519158,-1107889175,-303469651,1680981494,-1107892247,-504798399,1663614454,-1107895319,-706131961,1197981174,-1107898391,-907457868,1058258422,-1107901463]},{"sector":3,"length":512,"data":[-1108787434,433569270,-1107904535,-1310111437,1215413750,-1107907607,-1511438239,1211088374,-1107910679,-1712764849,250145526,-1075120640,-352976882,-167767827,1110250,301918966,1508570624,-352976875,-167766823,4577258,1052371702,-890571264,-352976866,-167764242,4117226,1095625462,216724992,-352976795,-167762291,487146,148105974,904590848,-352976865,-167770223,514282,535292662,-1378816,-352976858,-167760642,507626,198765302,1072363008,-352976883,-167761641,4145130,127986422,-571804160,-352976833,-167765547,5628650,1459284726,498988544,-168040147,-382912579,-1329728011,-168826579,-385402691,1656616425,-169613046,-385208899,649983453,-170399388,883047212,-390177273,126506510,1023359977,1393194373,754681320,120889915,-390177189,126506510,-67163927,-1098781557,866713606,1355743604,120850166,-971540993,-16305146,973101728,1946167558,-1564410359,-380108713,-346490468,-1070461475,-402016023,-387450086,-397148747,260767033,1912732032,28805960,-388396544,-192282558,-402641944,-729153478,-402643992,1824063538,1960512007,-161173495,-389510172,-997588958,-939327308,567094196,292929546,-620051621,-872543372,1949252780,1949121559,-50730733,1912606440,-387937544,74579975,-527824171,180587203,-1963363109,1915759620,-183878413,-872485262,1340654406,-1336720638,-62134262,-852839342,-964011231,-1342165784,3401773,585679498,-399659008,-377421783,-109050004]},{"sector":4,"length":512,"data":[1913894244,1693024261,-980761090,-1979709208,256193,-721528599,230983178,48771120,-2000385536,-389856505,-387450298,-397148959,260766821,1912732032,28805939,-388396544,-326434962,-402646552,-863305882,-402648600,-192217250,766771378,-1073077811,-1017442699,125098762,1017957374,-1023314630,-386123031,1396900278,-1293416272,750015227,-92266035,-32214478,1023312070,11930994,-109002242,-1325108676,1539702272,2062075274,-398806785,-1047855231,-1325436696,-8918982,1726531210,-38016513,1023178472,-385650172,512424939,-1073086365,-922873228,512364148,-922876112,512362100,-922876111,-1662467074,110085115,-390199524,591156750,1776878453,-65017603,1962513896,-43783933,-1963129624,181466822,-385648192,-796197981,-110827438,-79697876,83525722,192143494,-799911088,1343534306,1593654761,119289599,-72330416,-523188694,-491061068,785908494,347801483,785908480,-10811509,-1974207520,1042674,977013108,115871604,1542945024,-1966090614,-889306361,717654723,1019805378,1022128642,1508406021,-927247534,-1963881714,1458080456,-58710902,-2146930079,57900028,773909632,1178797962,393593914,-462042626,168266286,1527544256,1600019035,1448566429,181125130,787052736,172165002,-1963427392,-1976672563,1975519751,1524534202,-808023462,827150147,1297040379,1347222066,1291399508,-130919344,861163596,521011447,523902756,526786384,-1974447109,-2147471705,41287164,-58656332,-2147126537]},{"sector":5,"length":512,"data":[57867516,-1328587944,46410491,-1560234816,-491059420,785908494,-1218771061,785908480,-396687477,-520159230,110059358,-6486244,-1564462362,1721893989,-1173911036,-1036386115,1705116789,-397720828,-1394018230,12276731,1813940480,-397714684,1970599994,754455016,309603388,1408936168,-1980115736,1527016478,-132061109,-135767180,-1447416585,1958885888,-135469026,-135731135,-135993268,-385649332,-605552196,-1036374793,-1506444,-1665135877,-402364766,1139341294,-555200004,1364875769,512350603,-353893271,-1978960903,-1982625033,1527015198,57858619,-1644568855,2112422772,773753601,512447232,1128988720,172165002,-385649401,-1958543150,378094359,-1545076690,1958742775,1949973734,1979596021,126501643,973114298,1258976450,-386430488,-347342293,-142546723,-1336681612,54108673,1962521832,214272612,854100608,-113907520,966918320,-1979091709,1965571079,1777048844,675022730,1692992373,-1964483591,1976699897,214272541,-1159165312,-1169026973,-1605236089,-259390725,200861417,-385649198,-1974208193,-1144354066,1230180503,1236070795,-126304246,212660619,-1426486400,54108867,675022730,-2023835787,1229543134,1543494888,-151459765,1357448053,1965571327,-152246260,704038376,1089012597,-155391745,-10557140,773753179,1511426816,1478396675,1960459011,260723544,126501699,614252554,1124567167,-1242000664,-1646722304,1373796441,-1962930200,50551326,1511950810,1541048067,-628633621,56368779,-225715653]},{"sector":6,"length":512,"data":[-1426486356,-1617018209,-260727231,-1020608118,-980758390,-259340518,-645183158,56368777,1544981443,1960459011,1128485669,-1073084534,-2004933476,887636743,1125092088,54734730,2019139033,-1377283616,1541048319,512481259,378209112,-633666726,126491764,1346585411,1492650728,91554620,838878440,-1227846976,-338033920,378231261,-633666724,126509428,1129333571,-1963464984,797590287,55793731,1963146457,824084960,260725507,-654114635,-1958487805,990064918,-1177848614,-1974398557,395002631,-1073069245,1405288821,56106635,1918622267,512447477,-633667536,1407939419,1397443403,1543021800,-2031615051,-389850120,512489553,-880082084,56104587,56237707,512350763,512427086,512295727,451413088,1272548344,53419657,168060576,-1961331520,-1962645218,1730055115,-130684924,56237705,56368777,-1325982232,74162689,1705046154,-1962857468,1258303518,1810481178,-1564462348,1705116779,1478396676,-1949594877,50613790,1511950809,790530819,-628669693,73408139,53419657,-225715653,-1426486356,-1617018209,-260727231,-1982231735,-1962714082,-1962644458,1258303518,58053131,-386359575,57866005,1240957673,-1863722613,-140645896,591135153,1371734388,1509956072,125092410,57934908,-386455831,-1976765254,-1982756107,-1023088362,-187635637,58008380,-386610712,1558771521,-1596945673,-1036385057,48825203,1392555767,81796747,-637281789,-1975316598,-1393456337,-1017397238,-1330052432,145799428,-168826800]},{"sector":7,"length":512,"data":[-165156776,53288587,1509296104,-1325899543,61913345,1342681273,1492548840,57804602,-17398039,50045632,-400585917,-1228671407,-373280255,1323829350,-385649913,-29558725,1688339829,-33035516,-385649472,512426106,652738608,1478396171,73703427,57982986,-386699032,1128527326,56106633,855139816,87466688,-1594521624,-1073085333,-1125579916,82813182,58048522,-369744663,-957810789,-177542922,-386595351,417986612,-1897375242,-269988865,-402230029,-269877276,-1564462345,-756546321,-385649914,-1057032257,417923957,1975582454,-166598397,82386571,50342585,-385351975,552138659,-184555275,1541996464,1477872389,807308035,1960459008,1124567713,88664146,1408428890,1945249768,-386027461,512427322,635962192,-397190400,512426016,727320324,1501402,-1910580601,-1979494370,401088263,189416197,-370182702,-1014304328,-1979381272,84208071,1408605929,1945232360,94693623,-260702916,-1979343384,93907152,-1813450614,-388462075,-125172338,-1979348504,92596424,1621158026,1959329280,1343654662,-397190397,-1910635150,520587482,-980793021,-277495542,-245438119,1979594216,-179312381,57934892,-2013969687,11779034,529258755,73277065,-1996488517,-1979248098,-1160083513,-628686660,-393553661,126540423,24390716,-397323581,-397347814,-398331226,-397151582,1206449385,1582913780,-1974018425,-1957473592,-1257827810,-1982266624,-2029579746,1579060186,1943681796,-176690941,-628663717,-1992093816]},{"sector":8,"length":512,"data":[-1360307433,32178188,-1360487175,-200480524,-199432110,-561553831,-397323434,797635705,1457424222,-930478198,1134318417,-1073080437,512453748,-633667536,512440691,-633666728,-779472526,512426166,-637336740,512481927,-633666769,-1969397134,-204805951,-2023859877,1364350686,1509175528,-561553830,1129533782,-1659401828,395002715,-1958519975,985762335,-1979550779,-1966789912,57843144,-33547288,1959657157,-1962440178,1111730938,1499067371,1935235417,190467,548455259,-906051074,-91490444,-152354134,1582914461,-2024350073,1359640026,1659422090,-173807373,-561553831,-346861226,1946434690,-397688063,-1168969290,91488384,-214964143,512447321,-633665767,-1259797645,11779059,394909955,-1296027069,126370567,-109720834,-1564255653,-1343748328,1946434812,-205395709,784028497,-1965489408,1913207815,-1604626159,-2036398312,-997830460,-385568687,-1212418789,-1948712192,1581400855,-1974018425,1965833223,-221517821,-247142325,1206453108,-561553675,1976699734,-214046461,1243056459,1364416859,50379451,-2000669991,126370567,50377659,-2027975719,-1152167206,-633667456,-1174047397,736821248,-470302069,-1974282101,-1971379005,1493219024,-544554102,-620496502,15270771,1943064819,-980794623,57982986,-1980566807,1527190046,-1128574119,-1982266624,-1157164002,-654114765,512350723,1398474518,721453243,995252954,-1979419942,-1596290306,-1073084648,-2135278220,1943681792,1407734533,-1957602560,370576331,337545991]}]],[[{"sector":1,"length":512,"data":[8316935,118759049,-779422326,3663961,118627979,303991107,-634692857,12245771,-1552592128,1405311835,1526734312,-1949594799,-1962470378,-402188770,-628686776,118759049,-779422326,231336793,966967346,1397903623,118625931,50378171,529224665,1541028674,1134499720,1966573726,121217031,242532362,1394048699,683365201,-371653888,1515913763,-1974353063,-1426420985,-1974910397,1975585477,1489197554,1386136710,-1957650607,6416587,1374170228,12303104,-637282045,126393944,716918943,-1965489408,509495,141823292,-963977212,126353428,1515822680,-1628847269,719868658,-386436096,-1145372644,64553728,168266458,1499159232,11779011,-1162148885,-1948712192,-1153252585,-654114630,-1950148727,-1382197,-1972142,995809927,512345050,-454556869,-226367248,-1041695056,-227284741,1022392809,-385649406,700182959,-1965489408,1958742535,-1393456341,611583036,168266307,1359574464,-404170357,-555001599,120225968,11913354,-1186735869,-654114808,439093130,-1072037588,-1963858711,1121028853,50342331,-1070444071,-68679800,121020417,1007008744,-385649153,-922816029,-152501387,1976106738,-1070441969,-1314194805,1760051728,-243144217,58048766,1509016297,50341819,1125616601,1261930562,1371740040,-1968377461,1121028853,1963080786,416398106,-645180589,-1964434768,2734848,126540035,57982986,1526697448,-1325297176,-417470448,842249817,-1426486336,1976499777,71091192,1962944699,12106499]},{"sector":2,"length":512,"data":[126540035,-383808949,297529455,-2015821056,77511642,1124075462,1189610677,1127188721,-2008862840,130433839,-1576488776,-1070464261,-402348126,1539567803,-1631287720,-997810349,-1950054832,-1979389666,1963015175,-282793725,58000444,1493056745,1386136710,-1614050479,-2041527162,2734788,126540291,1968406588,-17569789,-1979187621,1124119823,-1631287720,146428063,-1965423872,-2012398537,67662895,315001568,50825413,1503549657,1527220314,-2008331581,931676951,-2146974141,-2146974141,-561553829,1405848406,50340539,1125616089,509507,121217115,91602954,1526751720,-23861053,-260052645,-1971276463,-91536633,-838974806,-1017514635,512447313,126485737,58000444,-1174545687,-654114774,-1073084534,-1974790028,268321543,-930478294,146397443,-1965489408,1539312135,-1974746279,1958742535,583685,1543095413,-1021661095,82386571,-1963488686,666452691,-1965489408,797590287,260590401,1127188547,834360131,-1311112448,130433920,1976172032,1632504,-402180704,-1073085480,41222320,-2007269200,126372615,-1017462774,-1152167343,-637337550,447863431,1541767912,-389850790,-93126818,-168224196,1397879925,82386571,50342329,509657,509507,-1017553927,1408197864,-1964054296,1975519751,-288495357,394937244,-1975547325,1020299994,-1978764798,126501647,977062654,-28637068,-1023521854,-889306959,-1047894924,1076682532,456940658,-256288653,-1426486524,1124841025,58313470,-1979697687,1965964295]},{"sector":3,"length":512,"data":[1501192,-342034019,-1426486294,-822197439,-1070407051,-1660617566,-963984549,578030396,510788412,548467572,1101724043,-353644802,-822163714,548461684,1101724043,-160051458,1089065195,-10426130,82885203,-1259860047,1975582436,-300160765,-1174072645,213189872,-2001931637,-29211897,1542813133,1105986024,1407974888,1409233384,-1325076294,-460986353,57983230,-1158775575,599459057,-401885947,397536977,-402320710,-1017387925,-397225846,57997103,1525572329,-68660655,1364810494,-389641572,-1986135521,1912814366,180521498,-1156287040,126485753,192225340,1128400838,1128335302,1532168134,-1991194998,1392830750,82885187,-225768271,1107789996,1976172099,-2000669963,1358343,126409219,1124567107,-2008873080,126370567,-398306726,1482423910,138171216,-1293417611,1963080706,-1427615208,-401362686,-1319443489,-472258538,58048766,-336709911,-401624798,-1057037365,1482299765,125110332,1380975280,1356655426,1946434642,-316675837,1523641154,-1426420904,1030994,130472451,130433920,2603776,-1070409213,-2008873080,126370567,1527220291,71042954,138154868,20717684,266929012,-40048404,54206091,3389891,-2135828221,-29151352,-369527351,512486390,-1957493527,2276299,-628631293,1162066,-1336682237,-32506364,1125020935,-176830210,-967091621,-873922041,126508011,1352630052,-791672950,-1979468477,-1949249529,1111730938,-210383362,-791674704,1487600267,-402426466,803733562,-396796931]},{"sector":4,"length":512,"data":[11665458,1929175528,1947876360,-339542519,-402607373,512426014,-880081687,-1157494842,-654114777,126402610,1124567107,-2008868984,-345446137,82386571,582732683,-1244069120,-33060348,1958742543,-29113599,-1007520307,954793333,-468260627,-370369304,-277486942,-316020653,-1662510671,229724386,1491244776,246534282,1541574376,-47388477,82885203,-401624750,-1057037697,-1315155366,-402426864,1520296563,-622263435,19917035,1692930993,1975737314,-256158962,509444,-401886909,1952120959,-51320829,-56442830,-239381756,-402083580,-105185179,-402411260,314179677,-400903931,-256187857,-401493756,-12787161,-1897331851,85179371,126487473,-345642941,71090570,126487413,41164860,1424502448,1976172267,-350623515,-259387644,973089184,-1341820218,-348264416,-823655565,82885355,-521661775,1979661537,-1966908484,1965702151,1057474297,1976172099,-1974287368,-991407672,1348098529,50340283,1963458266,134103816,-29162635,1019316743,1477997858,-646660086,58000700,1022100201,1946267651,-1010762036,1489223730,-126614724,-2017214454,3926234,82386571,3455315,1273551107,-1185199365,-654114783,585631742,447828480,-1948162328,1124395294,347200135,182541032,-898278464,-2135172473,-2015755520,-1948521510,-1190973666,-654049494,-1301030341,-1946891031,-1073042190,803735157,-1426420992,1342496672,-202250158,-645194892,-633650342,-1252912012,-1393390836,1963407938,-838974712,216658805,-27763989]},{"sector":5,"length":512,"data":[-1009223224,-400969390,-1057038085,560186202,596779867,606217207,607986730,162079821,624632930,593174883,603399058,606741538,609035325,610404777,541730107,162073445,162078809,162073001,162073001,544213417,191176823,545655209,162073001,162073001,162073001,547627165,162073445,162078899,162073001,162073001,550111657,309131,994444426,1962936503,179800836,79137024,42991360,-1215577344,76021766,146225990,-1962642176,-1996485961,-16775497,-1023409529,50798779,-1962466274,-1752579297,-1886846968,-1886846972,-1886846970,-2017001462,2,1583044803,119289599,-2041001130,1515822788,1525738331,-336897701,6201427,360038654,3022475,54992521,-1021130870,91537662,916635698,-1950131451,-1962719962,-385662178,1152576279,-2132053527,41255162,-1950154062,-2096830178,-2084359229,126496451,-1312567050,-1841152,-806851152,-383874072,851673860,-383874109,797411844,780845824,-555220894,6529279,2028537736,-2041554689,256196,-1140885527,-397205405,1673199755,6416640,-1564178856,-1966931870,-402181586,815857585,-385382393,1348009803,65586310,-11867904,1394643131,-1157602328,887686960,-997828608,-1022938462,120794762,-1593867032,126355249,1493114601,-389773744,501809155,549305343,3926099,-385404485,-2041053177,120824516,1947024579,1393032724,1543464680,326418686,121161982,229639794,509635,1223165834,1527220479,47811,28969195,-1174148352]},{"sector":6,"length":512,"data":[1402732546,-855591856,549778967,-990507403,-166890236,225706436,116070578,48962482,1676220850,1011898602,-1341819635,-2955254,-1013097640,12276510,605946628,47623,395041422,84942478,119936649,-1144840357,503514920,529205028,120372163,119807491,1405296523,-151107096,-16777081,-1729559692,-1075293464,63079423,1257160754,-1070404022,755592,821128,886664,952200,1017798,277333763,1392706304,-1190855749,-2142568439,-85909441,509507,-1190858565,-2142174848,58007615,-2147435031,578038847,21620825,402227537,1393193476,-2130845208,67113359,4161627,-1679228043,742359040,-398248331,11921044,796151356,1329332661,62204276,594822460,527707196,1295779253,129309044,326390588,-2143088917,125042751,1965834112,-1007074557,1407675113,-1258450456,296165892,61954816,1946148840,-2146465247,-462277399,1929771392,-3217185,663359603,-30348160,50102476,-456077709,1609098448,263162109,-1966765568,1963009257,1959332358,-2133983561,-1334639363,108326154,41205770,-334836226,1085321,-1946339864,-1962933873,-402652265,837353161,-47912707,364427,497547,-385957144,378273056,-1031600346,-293556221,1493363331,1257162122,-387006070,-1349845762,61931535,-2020940334,-989200367,-301743485,-301223870,-919387582,1979521512,-392107773,1009788140,-502827984,-384257297,-1070405466,99255131,-957477968,16777351,162499162,-1342131968,-92251288,-1962380028]},{"sector":7,"length":512,"data":[-1996023498,-402607177,-991304194,-414324484,589937491,-1959902397,188957455,990475465,787576273,-1017442421,1273387753,1845886976,-1778116864,738394112,1476493313,-1342128126,134242308,1610629127,-1073729527,-2147477486,3109,1611,-402653184,-118948394,-58398467,-2013852044,-65534,300479349,-403576576,42452986,-402653184,-369426428,843250821,-1031541056,602467843,8882428,244040448,-745863399,1263620699,1961096680,-473110498,-443357140,-771010215,995692916,-1960414518,-397717046,57992154,1508367849,1364416606,50379963,182486750,-401771072,126353564,-336010685,-439490293,-398260342,-119406335,119082635,1959406426,509446,1543168579,-2082053911,1347957443,-488061818,1947020288,1393032728,1543255784,259309822,121161982,229640562,838912232,-385382208,1240005560,-373290496,585694137,44010493,16759296,41081403,770300551,-49288985,169867,40843,501865003,-50337561,165771,19710986,-1969700838,-371684412,-397154552,-1886848182,-379912181,1397876446,-151306776,-16774009,-2017064588,-1308622836,-165745851,-16773753,-2017064588,-1308622835,-166794439,-16773497,-2017064332,-1308622834,-421205735,755594,-2017017846,1962934283,-80418791,1323893621,-57415429,167819,-311113461,-386222616,1499136003,-85923645,1089418,-1976696649,572841663,521126855,1375698751,-941076397,243791610,-1435107584,-1946392856,-402653041,58063598,1006307561]},{"sector":8,"length":512,"data":[1946157711,-64165646,856081027,807726281,91500604,-991299614,-90904323,-2013857192,1979645962,-2017002739,-2080440310,1542325994,619234137,-94443268,1492446203,-397163386,-2021066130,-1017446391,1364414715,1465261650,-1912602438,270438106,607584005,604423943,-402653177,113704987,132900,-1895820568,-1173937146,548405280,526278638,1482381658,-72292145,276091403,-1460911550,839480577,787516388,630830335,-635045949,-1591369179,199803685,63079418,1947870444,226985988,99255040,-1763128437,12553211,45583104,1004111616,839677175,210208960,-645141504,-319175703,821190,2095629057,-138398981,-16776569,1242068223,-107943862,-385896210,-2021066306,-2084372470,619447490,-402033376,-922814034,952200,113703619,-1946155237,-1106836978,-138477440,5290241,-1935346692,172505,-12730069,-1207730673,78712831,1212735699,-1962734941,-167724832,-1900429170,47872,637967038,126354570,-136296893,-1064380276,-1274908184,-1575957233,950141000,1009300487,-1274187262,1963408464,185383175,6819465,2696840,119408327,-1929772800,1344178651,-768401917,512350862,512427280,512295056,512427290,512295058,512427292,512295020,512427286,512295022,512427288,512295024,512427282,512295026,1186661652,-1877047035,-1844540416,625523456,3153545,2891401,3280524,3018380,-1991428933,-1157600226,512317252,113705072,-167772050,7472839,-1088424448,1874396986,-54512896]}]],[[{"sector":1,"length":512,"data":[-773280781,906413793,178323717,2925315,-68892696,-1142726936,1223173923,-590616358,1409439465,1226859880,1344294210,1869836901,543973742,1886220099,1919251573,1935753760,234840937,1936876886,544108393,808333636,1866670128,1769109872,544499815,541934153,1886547779,959520814,234828088,758390784,761754945,1766601016,1936614755,1293968485,1919251553,543973737,1917853741,1634887535,1917853805,1919250543,1864399220,1112088678,872859213,1353776903,-1576586590,113706803,1840,-1962934086,7661770,985532021,6219807,1107296953,1962960360,525385222,-1191161880,-398327804,108331094,-400595266,113705024,1828,-400617794,113704995,132900,-400612162,937951255,1976699897,605456655,-114497529,74830347,119412361,503773123,1962934023,401101577,1976699897,196696872,80162304,-964485102,-1007230462,50596030,12132081,-1948676608,-922018036,28575348,-922019891,-1070447933,915102190,512427806,-1886845148,-1048508640,-1886846958,-838662360,835969,120360841,9224577,-119150511,-2016949365,8388608,-1946627864,12028371,214073600,214008064,-148838400,34758,159892992,-1752563968,-1886846975,-1048510459,-704446336,235401,495497,-1274599520,1946369263,1963080710,-1158171639,585891873,-1017385276,855775419,-1178497335,-1943666582,637534863,22677447,-536558717,688111345,-1073042386,-466480012,-1073496061,-1389438837,638028070,167820,-661854485]},{"sector":2,"length":512,"data":[-1815887730,-744291517,62625026,-1627114080,496436301,239446020,-1408862549,-324467129,109766926,-553268256,2128348565,114813446,-334235669,988025915,100000518,-435830296,-303626784,90168581,-570030410,937100659,121495815,-2029562142,1737032979,203404295,-2117432320,-1274890302,-1910387418,-1899852070,-1564462382,-1863777180,-1574129412,-1212481034,973587968,-1994251845,839333150,49914560,-1577056606,1705116779,2662916,-1996455749,-1157162722,512295694,2059076364,-501315325,-1576816637,112919775,857639168,33012483,-1073084534,53681801,-1293352075,1127188992,-2008348790,-29146361,1274377677,-1996486714,-1157418210,-1410858506,1975519965,9431299,393490236,570934859,53681801,1949252675,-577705974,-176832502,-973048599,-2081947641,-563681059,1198805820,1400128316,1956400444,1950759943,-512431869,-388142616,-398795454,1956503349,180783639,-385649472,-1031086229,57806908,-1562418455,132842719,50992777,1258757026,1960656360,-585832410,-390927569,199810354,-18335011,420907486,-387650809,-68625118,-286770468,504793566,1272244999,50994827,169773387,-1605154045,414909663,81764872,-397360898,1398340871,81796745,11980938,-637281789,11778394,394910343,-628669629,-1957439229,-1190717154,-654114628,-27538549,1139111368,3153545,54861449,616729178,1406175984,168237984,-1156024896,513870400,1958742791,91273987,57924099,1275068347,1541048139,-31145334,-1031090038]},{"sector":3,"length":512,"pattern":-151587082,"data":[-661994710,-954546550,57931914,-1310808343,-1964256509,1912749255,33602307,-1020607862,-963979126,-125122790,-1997995149,169773534,-1982167293,-1996477410,-1996280034,-1962719970,-2030030818,790510042,-385649917,-634658743,1532185419,-1143019288,149433187,-561256234,550871273,1702132034,1919295603,-385850011,0,0,0,0,1128400838,1127352262,-399505466,-1070399713,-385808990,1162148620,808594755,2003780640,1852402798,1869881451,1668235808,1632772193,544108404,808465243,1936745005,538976349,1093482784,942502512,168430897,59648,0,0,0,0,0,0,0,0,0,0,0,0]},{"sector":4,"length":512,"data":[-96668183,-150776135,-16310778,-1190955777,-896793693,243911171,857604944,-1982165294,520425486,-164380274,244055691,-201588688,-1899983708,-1949266216,-83874778,-402238744,512428806,-2017066960,-1962868737,-167562466,57999111,-385243927,-389084977,222038129,1894253429,126496264,1975519811,950060014,1208367623,-1274776576,-1156526848,-890765306,317515783,2210554,-300413716,47902,512482190,512296218,512426128,512296220,512426130,512296214,512426092,512296216,512426094,512296210,512426096,512296212,512426098,512295868,512426020,512295870,-81854426,1443782339,1447860926,1458962622,110086997,-1782708480,1592847180,-1698802162,-1017817524,682373575,795423092,690497836,215429533,830606552,592783037,231148787,385161099,486676748,657657428,658057014,656090904,39462686,39584347,42205818,42992261,43319956,43451030,44106396,45286062,46203572,46924482,47776467,47907546,48038620,734,-834059960,29972108,1443025750,1297023940,-1949413555,1234226511,-984857774,1413546129,1385014341,9623361,1279609088,1279886020,8508229,9032773,1224736768,8899660,-2049686189,-1538700544,-1538045180,-1539028219,1296105478,33989,1099486293,-1881911735,-1814478516,1163067392,1397065428,9098309,1163154265,1224770509,-1901836979,0,-822083584,2133067658,1023085547,1022719229,-1963952642,-1654694393,-1979557445,-29314584,-141933631]},{"sector":5,"length":512,"data":[-1976642678,1958742535,-1639735310,-1976634247,1975859719,-1965389848,-1973855551,73310416,-5193718,1946443426,-1960792051,-29250823,-385649202,-1031141162,-1976695061,-796245241,-108298460,-822197846,-1075248267,2042759688,-381461527,1509623985,1398495577,93644875,738338491,-1967127999,50378184,394997465,2145932123,-1949791739,615263986,-385649281,977471646,-1959299647,1118580466,-495337462,-1406209397,1006984680,-402426834,11535715,2078868338,-225748984,-1073042386,58284633,201327593,-1336870528,-385868546,-1956968355,1118580466,-143015926,-374936766,2101086280,2117867892,-1975315339,1973435399,322627843,58040892,1259557609,1590656688,-1975280289,1921068039,851444438,1508936676,1359717305,-189464786,67561729,-1911132727,244127274,360748310,-988802620,1436553225,208831761,819632,1125275,-1190917958,115869498,69515776,-1962422599,749481714,-1023315071,12048522,-654058749,787647298,1124567212,787647298,1107789996,-2064130581,-63686,1607401845,-1185309345,-11465821,-385402188,-208993380,130974967,24510463,-1654693937,205109593,-826998959,1023132423,1006990590,-820611843,1007127107,-385649267,-1908668200,1793655669,126503689,-1654694193,738691651,-805259903,1372097216,-402435096,-2023881567,968513246,28332556,-1962628958,-1258344717,12780058,1769366852,1428186467,1635148142,1650551913,1124099436,1970105711,1633905006,1852795252,1718968864,544367974,1919252079]},{"sector":6,"length":512,"data":[2003790950,1936278528,1918312555,543519849,1953460816,1702126437,1766064228,1847618419,1377858671,2036621669,1936278528,1699553387,543254884,1869771333,1681981554,1668178294,1176527973,1970561381,-1308596878,112388425,1019382523,-821988540,1016946270,-368741814,-167770008,-742702292,785418756,172165002,-17271360,-386632246,512490475,-1729494201,-67764216,-997996661,-1308156140,1958742598,1011331592,-1308462078,107407688,132666363,97118221,839829992,139109056,-1576515166,61868107,-1340413208,138453508,-1341636958,138388088,-1594110117,-1073084328,1335888500,1975519747,223340547,1381039055,59697235,1515965323,-389903790,1482302479,-1654694193,1469862490,-964013994,41027900,-397684904,141820428,-16653336,-1845370904,1942678360,-1654694181,-1631287720,1448566361,-1963816367,783897552,-958856448,-1604780025,-16513281,1577477819,1364647559,-81157911,126536587,-349829912,-880018661,1579585768,12295519,-383874816,1583045380,-1946481941,649783499,1587371870,-70560169,-1041708149,1592912678,-2041012897,1515822788,1448566363,-886644248,1632507,1676215154,-401755905,179316434,1579601384,1465818463,-876596650,1963186408,1364443905,82386571,50343609,126507481,-1017444036,1520263006,1465801051,669771862,-1654694197,126507099,1076682532,456925042,1128471411,-1962610503,-29250823,-20958526,-2036336192,-997830460,1038683062,57272581,1486708574,-588529614,1537040222,-1073084534]},{"sector":7,"length":512,"data":[-883533986,-471268494,-1654694146,1956421208,738691602,1975519788,15919114,1375783912,-1667434083,28491826,-1660792088,-937115622,916586764,446471429,82813632,-385649251,65544340,-390057467,233374269,62777376,-385649981,1600061078,-1548134243,-397717237,108331180,-385867544,2112364688,1346120704,-1712846475,1042432,-400246807,-398393236,-1070465019,-1308331543,-1228918270,32368640,-1560301373,-1070463690,-980752246,-972959768,-543162361,717618692,854553541,87466688,-1654694205,-81876247,-18814896,-385650088,1600060970,652470429,171709554,65736820,-1952620706,-1190860514,-654114774,-437712898,-385649661,-1863713274,-1956723927,-1506870021,1977584470,1007127050,-1023315398,-385869847,-73399276,-33014782,-20382008,-1975270456,1916419079,540852993,141751412,-17485764,-1010237760,-76234742,1869744956,1064640060,167968928,1129366464,738394274,742028060,1007121397,-1977911810,512312071,11993854,512350346,45089538,-1157430878,173539332,126534592,512312131,-1974795522,1021438783,-1950124784,-352125410,-792658282,50438848,45764946,-1965390077,38922472,1515838087,50208393,310104,1019461642,-385650167,809303916,-20906251,10535880,1930378243,1913469977,35556117,1124758787,394937155,-2026403261,15198426,27306475,50045443,309594172,50470539,77799049,50601611,77930121,45845995,17688579,-2041018901,-1017405756,1631324042,2067593586,1596257651]},{"sector":8,"length":512,"data":[714947,809302643,977073778,1094501365,1530723186,512476149,-1983708357,-1341873378,50045442,512447427,11862794,-654059261,-1014768649,50950714,-385649956,-1017446398,-385815319,717093007,-1107760304,-202682244,-347309635,1196998126,431876587,-1109071073,-538240576,-349414979,500874714,-1514285589,-1110381761,-873782392,-348051267,1089322438,-742538773,-1111692456,-1209319433,-345726531,273792434,1002286571,-1113003164,-1544859860,-349776195,641645982,482187755,-1114313961,-1880398780,-350049603,582335882,-71465493,-1115624695,216610858,521977336,-1107818775,15281061,746110456,-1107821847,-186041969,435731959,-1107824919,-387368287,127385079,-1107827991,-588702845,1687731703,-1107831063,-790034522,607501815,-1107834135,-991351548,682016247,-1107837207,-1192687703,174570999,-1107840279,-1394012071,146193911,-1107843351,-1595331340,930004471,-1107846423,-1796659526,642760183,-1107849495,-1997988993,946322935,-1107852567,2095646612,127581687,-1107855639,1894327884,745651703,-1107858711,1693021248,1422966263,-1107861783,1491677142,129154551,-1107864855,1290340259,388480503,-1107867927,1089016112,1691270647,-1107870999,887687054,1892204023,-1107874071,686366495,655801847,-1107877143,485036379,1699790327,-1107880215,283715006,1695137271,-1107883287,82387559,345554423,-1107886359,-118943637,1689370102,-1107889431,-320272465,128761334,-1107892503,-521579801,639942134,-1107895575,-722910871]}]],[[{"sector":1,"length":512,"data":[946519542,-1107898647,-924236966,1190772214,-1107901719,-1125562712,520797686,-1107904791,-1326889093,1675804150,-1107907863,-1528208068,1234877942,-1107910935,-1729534838,1672330742,-1107914007,-1930859695,1806548470,-1107917079,-2132188111,1665252854,-1107920151,1961452328,1208466934,-1107923223,1760118631,1253359094,-1107926295,1558789907,1058455030,-1107929367,1357453783,1228127734,-1107932439,1156139121,1214365174,-1107935511,954812463,1213185526,-352963863,-167768344,966634,284027638,-253037056,-352976880,-167767554,1399274,349825782,-672467456,-352976827,-167756103,2018026,518974198,-756353536,-352976834,-167755443,6622442,646834934,1860892160,-352976889,-167769901,2045418,127003382,-655690240,-352976889,-167763993,2555882,754903798,-1091897856,-352976889,-167769128,868330,689433334,1072363008,-352976833,-167770208,4185578,433449718,-487918080,-352976811,-167749894,-382919235,935196052,-175183571,-382881603,951973256,-175970041,-385195331,767423868,-176756470,-379312451,992802160,1577530530,1443817662,1005127562,1971666175,-2048371958,-1573180165,1583023924,1443817662,686360458,-326370305,441985,292828073,208996156,-397323696,1515783003,-106108584,116805839,1979647796,872859159,1520500487,688273920,-32934912,5743296,-108205736,232647512,1263583282,1023094760,1007187008,1006925007,1476687144,1477356521,-400737047,-387450124,-397148785,260766995]},{"sector":2,"length":512,"data":[1912732032,28805960,-388396544,-192282558,-402641944,-729153478,-402643992,1824063538,1960512007,-161173495,-389510172,-997588958,-939327308,567094196,292929546,-620051621,-872543372,1949252780,1949121559,-53221101,1912606440,-387937544,74579975,-527824171,180587203,-1963363109,1915759620,-183878413,-872485262,652788550,-1336720635,-64624630,-852839342,-964011231,-1342165784,3401773,585679498,-399659008,-377421783,-109050004,1913894244,1693024261,-980761090,-1979709208,256193,-721538327,230983178,48771120,-2000385536,-389856505,-387450336,-397148997,260766783,1912732032,28805939,-388396544,-326434962,-402646552,-863305882,-402648600,-192217250,766771378,-1073077811,-1017442699,125098762,1017957374,-1023314630,-386132759,1396901005,-1930950480,750015227,-92266035,-32214478,1023312070,11930994,-109002242,-1325108676,1539702272,2062075274,-398806785,-1047855231,-1325436696,-8918982,1726531210,-40506881,-384935238,-633270251,249184782,1141824067,-633008422,249185806,1292819015,-1144123465,246402830,-737239088,-2050224491,530798606,-2142211328,1265844730,1198838282,138417800,553287875,378027378,1942161471,-2134297802,796082682,242536970,1929417705,133857318,378020211,1942161470,180521498,1010922688,-1743752363,-166940088,-1963947278,46202564,-382604352,-377423031,-389479872,326373397,292823868,225717052,91499836,-351262744,-20316670,-1144943927,-684847134]},{"sector":3,"length":512,"data":[-747061238,138294922,1084248656,138519048,1947198696,271116304,1933703808,1959922362,1091995652,-1739040248,-619980661,-1959915916,-1324355681,-741463546,13861867,378194827,1067452481,1373828616,45795467,570472448,190444023,1364686016,261875792,775690356,-1185410699,-503906301,-355342127,-394997237,-386223895,1498943396,863291659,138559104,1345090561,1108249169,244488,1946352000,506627,-388766729,24494091,250108224,243947520,-388822974,-1072969421,-1950154379,10938832,-386241303,28380983,494160956,1396490750,-1040312460,292834876,1178388786,-906099084,-596295108,138612360,1108248771,336773896,50272278,168297988,269356287,1393580562,1913805585,-736847341,-2145968107,-2145782504,-568515813,52476190,-352288582,-83498935,1915091587,-840412613,1760046327,518542330,78035963,1979647990,-379954427,1065354302,-2145553519,1065354503,-955485551,2147483527,-41433200,-390856449,-745801365,116087131,-369505047,-1746394159,-226077952,1976109906,-352144124,1227276,-147530568,-2033677327,512446953,-1886713785,-1947729920,1003779107,1946157711,-94873099,-1977406488,589752516,568902027,-389772765,116794140,1962870851,1711732488,1979711232,-1070397884,331006094,378086932,-1943666656,117449230,-1207942982,-1964111872,116846276,1979646053,4438541,-1158760784,216793185,954789379,4372992,-289109266,6688393,6620870,-1017382144,138610422,1394439679,138878603]},{"sector":4,"length":512,"data":[165879,-126484481,1711732571,1962934016,1694942727,-236192000,579135683,2145970314,-389510622,-527818118,-400394775,71104889,-286719118,1662946040,1958742528,1959329298,807307790,1959329287,824084998,-20382201,-123737917,470192067,250134023,1965243478,-93525757,-386325784,57996952,-386242839,-963970553,-1073032970,-1494678663,1389398776,754345960,1526219496,-2046494080,1342927840,-489663917,-380627788,-10552768,1342643254,721137747,-1260334906,307870464,-1959864317,1358599,-1959864317,-520135929,-225815557,1946161128,1949973513,452623,-1973684359,126537686,-1010106813,-1037384054,37538046,87878770,1381623923,306166611,-930418293,-1974015862,1643937828,-58718094,-2147257477,-1976688404,977683207,-32016956,786724297,-1073084534,1532693625,-1654694310,173430622,-1073034304,-1976637064,-1073069305,-846530439,126496350,-1166688246,1515904651,1137694346,-80655025,843927363,1414548730,1347221809,1291334228,-147631024,1211314688,1949523507,-80508365,-1484107693,-58720210,-1274907139,-134446855,-58718862,1476621052,-72298661,-1073560534,614662324,307870471,-1959864317,12016391,-1959864317,48782087,1591803648,470191967,-419455737,-1190635077,130416698,-85835008,139988616,126548675,17564708,126355258,69469300,-1006944139,-972584198,166395911,1342671610,126353932,1946498136,-87819462,86247306,126355258,-1006955147,-1475900678,202404867,1946630660,-1475901430]},{"sector":5,"length":512,"data":[872707330,-83659771,117373635,-1006958504,604474106,-2012792317,-1609927673,19662936,1487012722,1405352712,3022475,1960512323,140163865,-1979706439,1943588871,1926811656,1926811652,63144711,-1017385502,26708817,1506937600,1397944180,-385894936,78774134,1509278440,-998024358,922702600,-1269759954,-628404083,54730377,-386388503,133562372,1522254593,-167529464,-1009253404,1381191931,-1898826978,270438106,773753605,-620018944,1622821492,993848320,992756338,527567420,946998588,179363978,-1057090188,1947270272,-2134835698,125047548,-58670850,69039381,-5773309,401086068,-1964227841,-293597984,-1158757238,548405280,32242158,1532633080,-855477672,1358680047,-768388578,512678542,1810367760,-1564462592,-922877846,1509973666,1355765791,-768401838,512678542,116851984,-65434,251595124,57999462,-33547288,-2146941938,520635430,1511982709,-806302376,-1342168902,1512042016,1398198104,1193184081,42465032,1962934016,-54663118,-301972806,-1980840822,-973052402,25862,-1017226407,-967748778,25862,138747531,364427,497547,138878603,-165719064,-16751354,1639590517,-64689152,-1070391570,512481422,-1980103744,-1962926050,-1996242402,520102430,-301973318,1711720430,-83886080,-1017226407,508974933,-628174285,84942478,3409654,-402426625,116785167,1962868805,5695491,1566531103,1381061583,281871540,1961101904,975079692,1009682432,1058441472,916477952]},{"sector":6,"length":512,"data":[1959014912,-1998321107,1946170918,924748069,959350784,1024887040,-402477056,225771101,-134361624,-16776825,-352160513,889636357,1499135744,1364443995,-167754053,91619079,250089653,133579520,-1257933313,256064,1405311833,167779304,-1340902199,285048849,-1057095052,1962808552,-41621499,-2007250638,-1168981233,585892353,-1731658043,-1017459574,-1324436141,1959345155,-29605082,126487669,11600565,393515068,-12823829,126504565,1006633657,-1256098656,1007792386,1362982306,1493191400,-109000450,1007056145,839021569,1942305472,1273530930,-230496175,-1913512984,200606952,-402098990,-779356538,1478194011,-389807533,-1992032868,-1017226473,-390177189,126506510,-369770263,-1830161367,-233903884,686942184,1358152424,703717352,78758744,-386723096,1398404289,3028735,1359501753,-1185903180,-380563736,512357768,-4848837,-1946802200,1159629283,1972190211,133585707,-402426879,1532624029,512480135,-397737157,125104572,1443817662,-1980411159,-2030031346,195280602,-196351658,-1779891278,1948794101,-221059068,-7804733,175423498,238864638,61959539,126499563,-243079088,-1791208616,-1875112588,-583266700,-859875211,-1089934574,65737401,-1189948225,1464926222,-1056832592,-1161901826,-380152298,1499462856,-1017385758,1347497866,1978746856,1398364201,-1310146302,-570588932,-41939084,-2146470768,309695997,1543231208,-68884285,-404176037,-373072901,568980273,1965571317,-16455431,37538046]},{"sector":7,"length":512,"data":[11660659,614578923,1958742791,79756802,-60299264,-672660620,-2098674693,-252778245,-1312804269,-6756350,-1874886565,-571996299,1860787952,99175412,-77338379,1022414824,-398166744,173276858,-33131328,1929526472,296833182,1493133800,-1791000485,-466482315,50349758,-349927184,-583040994,-1336733067,-66590703,1968960395,59045383,125042944,1592822760,1274289385,-386615063,1381102553,-1594634520,-796260618,-260904885,1239943028,619195632,-389903630,57871026,1525839081,283661145,144238597,-402652742,393478424,19261523,-2015755430,-390057254,28311797,-1342115608,1529539457,472967363,1256784757,137469980,259309578,137502347,807308115,512447240,1515391028,-1047897255,-1979199768,138191557,-814432254,-402295982,65734599,1510467560,-1108811406,853308416,137470656,-1979660568,183995091,1260287168,46631499,-1995017536,-402115562,512296843,815925298,138190856,832753910,975080200,-2015755512,6285530,137174667,-402116704,512427887,378210360,-634714054,544360052,1709759111,171799552,-2014874432,756976602,137338888,1017170058,-387413496,-756350912,1263262711,-1073559670,1396906610,1258784232,-126493941,137863258,141869066,-167232352,1304784,-1593891095,-930478026,168310688,-1023314495,-1979171680,117303528,-2023831414,1381062366,-385699501,938012751,941000970,975079688,-1965356280,137863873,114944195,512446547,799017005,114681864,512318296,799148077]},{"sector":8,"length":512,"data":[166127624,-1047864565,-1022871902,-386770712,-399708456,-2024541693,924748250,-268703739,-1175314200,-205881291,-232134652,-1980622104,839393822,136880832,1527260834,-1309531416,47617,1375855592,-4554575,31123711,1457424222,-628637646,74701371,-628635394,-1995954270,-1995956202,1527258654,-291575733,-397212043,619382655,753823720,1408305896,-386809624,141885960,648200446,-238295032,-1979406661,-2012740601,-240261113,136584841,-1996488518,-1962403818,50673438,442296539,1994982261,-792557030,1377202904,-338607277,-387264190,1532624963,57858619,-2013394711,-1949594662,1124603934,-637281789,-1073559670,-2024665486,64588762,-628667429,1514789419,135798409,-347940469,283660980,648043265,1975519752,-628636927,437684675,12276488,471763200,-1972216,136912521,1406830427,-1979722008,1510484758,585685751,-1957539072,-1995955682,-1962402786,721951254,438208986,689867528,-1982073080,1510484254,-1327827109,1381191684,378229331,512428060,-620558302,512350723,512428060,-637335526,512481927,-633665504,175316596,136191627,192207419,664806259,1975519752,-1608389849,-1073608664,132849267,-804771680,1511355352,5957723,-352303896,136814619,74760202,283859802,1172855642,101312512,-1813510541,91547653,-27763878,-1023314488,689343314,-1982138616,-2029508322,-1957471526,-2029507810,723421658,1541076744,-1946195223,-1996145378,-1962592482,-1996145890,-385533666,-1957498741,50674966]}]],[[{"sector":1,"length":512,"data":[1523289050,87760523,-628631037,605981635,180587016,168261056,-2014218809,-466435110,-225778953,-1979678715,-397687852,-109777696,753711080,-244044740,-280106927,1457424222,-268441517,77970265,-1073084534,233374584,-2004933632,136887047,-1056307318,582551432,-108807554,-386928920,57999396,-387009303,512487674,-620558302,-620504317,-387080984,1515843521,-386937112,-2024083521,12174298,47745,-17843992,1369621448,-957853688,18999535,1958742616,8644867,-353616920,1793610321,17688815,-397190822,57929695,1139789544,117251721,1945095400,-272898045,-81884861,75032582,16050267,1381061203,-1962596888,-1157170410,-637337600,-92944130,129682315,-2015755520,-773140006,-1947545110,1359412510,787008395,79387119,1524237056,-628631037,1943681883,-301471485,1125091419,-1958531192,-1996030698,172180247,1400302528,1526996456,1375771112,-338499509,477365685,753641448,29088391,121253405,-28636812,-2013891123,-2017240358,-340596518,-980759042,1457424222,1125616464,-2024582589,77129946,-889270134,82379637,-336867072,378227701,-637336265,-880078734,1125616475,-1957473725,1241856286,57924099,-2014476055,619207642,1482250752,1676169977,-1605215740,-1073084335,-1276639883,-402396412,1239942438,189422083,1541895634,-118991933,-385650173,-1017385643,753604584,966918576,-312875005,1122567028,54108909,-2015786157,1406796762,44888459,-1210545472,-654098176,1532615303,-940642365]},{"sector":2,"length":512,"data":[230355142,-1564462563,1659439178,490460417,-870498876,1154620738,492653853,-971157051,1472666957,491505693,1109262785,-212984329,530798621,-752983357,-150987251,47578,-621328405,12241547,-146871552,-339047462,-137721032,-147657766,-339047462,26339574,725352629,758908532,-973208972,-397359734,-1226309208,2028491265,1949056001,-324802301,1493281000,1975519832,10283078,-388920494,-628686698,139173978,678680784,-397192624,-880147629,1398463111,1493214952,-628665765,50331835,1976434394,-1796713478,-637314304,1490745178,74701008,-621290505,-1594020888,-1073608630,1364199794,-49551278,39344474,-1995803968,-1962591466,1025411545,-1564462587,-1329395638,-1341985984,139115392,126355210,-1979026493,1929657538,139174404,-385649981,-963974127,57982986,-1964242711,1975519938,-335550205,-1022867038,168315296,-1141345088,-637337600,-92944130,-963978617,1939652610,-355382783,1939729105,214338270,1123060416,46566083,-1157205056,-145547334,-373191974,-1452016463,954778250,-385649918,-1983648843,-402108650,-1168905197,1347551232,-387214616,-1974342487,-1571270458,190515278,-385649189,512295046,1592264780,48985088,-1949791552,772296478,-1073608822,1994982261,1958820587,1128481541,-1766199829,-1976676066,46696967,170423232,-1965502272,-397192760,28966953,-385649408,-454557679,-385650176,1307049990,99350784,167785448,1129929664,-14709970,256227,1405334132,-1979167045,1958742535]},{"sector":3,"length":512,"data":[-1961886185,-1979167714,512312071,540805196,1614603892,539755122,-1152138405,134088782,139206283,1277069643,-389850360,1027407811,725379188,758969716,-1162213771,-336899553,-1258291014,1949056004,1950039249,1933196509,1915763913,-1965389115,64685054,64619483,-1976554277,50378448,-388331558,-1166737527,-780808706,2028477931,33012479,-399985326,259129403,1118501515,175389500,-16817432,-370051635,-379852147,-639046683,-341186305,-389817721,1319174096,1277070088,-561553912,45174870,-370577688,-621281598,1916878019,-178570237,-216101949,116760582,-216102461,116761094,-216101949,1358660358,-1007090061,116596363,1914765184,552566792,116596361,-1329364541,-216102625,512475910,-75430157,108150512,512476153,-8386829,-2130087392,-1994411797,-1022954722,-1994340480,-1022954722,243974538,114425941,-930478347,-3997326,-1022954738,12568204,-1949856072,637989662,103942026,102893302,807798517,-1010397689,-355341941,-1311077473,65196802,-754667053,74686178,536920705,116594313,-896871029,5572342,-1340836863,-1329061369,-1561800064,61933301,369224403,-1329395981,46670339,-759123767,116761320,-355269967,116594177,1929657539,1426519567,208929024,-654966492,-133761374,-378803773,-503949903,-133761374,5611715,-311115766,611904778,-1476230981,-788368127,-1614070805,-1958018190,2029390539,-923107060,-1174113792,-1631387449,-1009634365,-341849805,14007272,-167693382,16798982]},{"sector":4,"length":512,"data":[-338623116,-1009646781,-1023388256,139730569,117116553,-1600137078,-13498635,74637520,-118765570,139607688,839742366,786105343,557424523,139861641,1327585987,1159807777,-165584607,87172816,807847202,-154974459,-154858795,85993173,-987577529,1191512102,650453699,-1018755792,14018566,-511649290,1961462279,652489238,1246168458,-788975240,1976434396,583586550,-1948480800,132284906,-772943616,653119981,1296500106,48765304,854911744,180933604,-1979414333,-758954276,-1966857528,-2044400680,-754993967,-753428,326421130,-259341278,-388775886,-963970934,184537320,172913919,-2008386359,1173046812,6154246,-304939083,-175445365,-305009199,225766865,-1258275352,-126530049,1946673792,-1194686934,-321716480,-896871178,-125114157,-688460766,468250122,1962871296,-1964013048,1444347843,1412860168,-2134702328,-292880394,-336858252,-740019540,-1966929208,1445396444,-82408696,-1207910650,1049347982,915080947,243927124,-617412526,-1006834382,116797066,-1560396056,780666941,-1966930186,583152327,-1978960699,583414471,853019333,-1966867976,-771730162,642216901,384318856,642752256,-1013039734,5574282,846450130,1195214886,-146961882,1962938311,-1312322779,-1963750652,619238396,266829839,-955061040,37871243,1914256577,1947806722,1942039044,-1077676550,-946948096,116604555,116731530,138221194,116799114,-1977165006,-1123630275,-555155457,-1964489217,-402296065,-177012879,654284264]},{"sector":5,"length":512,"data":[1049181576,780666611,-880146699,-1022894709,-387282170,1391001529,1292727039,1944586100,871592959,602625517,137182857,137309832,-336776363,-13375483,-398128781,-176947370,-1979761432,-2012810434,1510405422,-1975678938,131959755,-1564462397,1721893989,-1173911036,-1036386115,1705116789,-397720828,48817312,12276712,1813940480,-397714684,1970594960,753166312,309603388,1407647464,-1981404440,1527016478,-461969333,1307073396,-1447416604,1958885888,-465377250,-465639359,-465901492,-385649332,837288380,-1036374812,1441334132,-1665135896,-402364766,-1712790460,887640552,1364875750,512350603,1088947305,-1978960922,-1982625033,1527015198,57858619,-1645857559,2112422772,773753601,512447232,1128988720,172165002,-385649401,-1958543150,378094359,-102236114,1958742755,1949973734,1979596021,126501643,973114298,1258976450,-387719192,-347347327,-472454947,-1336681612,54108673,1961233128,214272612,854100608,-443815744,966918320,-1979091709,1965571079,1777048844,675022730,-1159134347,-521643035,1976699877,214272541,-1159165312,-1169021817,-1605235967,-259390725,199572713,-385649198,-1974213227,-1144354066,1230185659,1236070795,-126304246,212660619,-1426486400,54108867,675022730,-2023835787,1229543134,1543494888,-481367989,1357448053,1965571327,-482154484,702749672,1089012597,-485299969,-10557140,773753179,1511426816,1478396675,1960459011,260723544,126501699,614252554,1124567167,-1243289368]},{"sector":6,"length":512,"data":[-1646722304,1373796441,-1962930200,50551326,1511950810,1541048067,-628633621,56368779,-225715653,-1426486356,-1617018209,-260727231,-1020608118,-980758390,-259340518,-645183158,56368777,1544981443,1960459011,1128485669,-1073084534,-2004933476,-1964489977,1125092068,54734730,2019139033,-1377283616,1541048319,512481259,378209112,-633666726,126491764,1346585411,1491362024,91554620,838878440,-1227846976,-338033920,378231261,-633666724,126509428,1129333571,-1964753688,797590287,55793731,1963146457,824084960,260725507,-654114635,-1958487805,990064918,-1177848614,-1974393401,395002631,-1073069245,1405288821,56106635,1918622267,512447477,-633667536,1407939419,1397443403,1541733096,-588774475,-389850140,512484519,-880082084,56104587,56237707,512350763,512427086,512295727,1894253664,1272548324,53419657,168060576,-1961331520,-1962645218,1730055115,-460593148,56237705,56368777,-1327270936,74162689,1705046154,-1962857468,1258303518,-1041645542,-1564462368,1705116779,1478396676,-1949594877,50613790,1511950809,790530819,-628669693,73408139,53419657,-225715653,-1426486356,-1617018209,-260727231,-1982231735,-1962714082,-1962644458,1258303518,58053131,-387648279,57860971,1239668969,-420882037,-470554140,591135153,1371734388,1509956072,125092410,57934908,-387744535,-1976770288,-1982756107,-1023088362,-517543861,58008380,-387899416,-1293360233,-1596945693,-1036385057,1491665779]},{"sector":7,"length":512,"data":[1392555747,81796747,-637281789,-1975316598,-1393456337,-1017397238,-1330052432,145799428,-498735024,-495065000,53288587,1508007400,-1327188247,61913345,1342681273,1491260136,57804602,-18686743,50045632,-400585917,-1228676441,-373280255,1323829350,-385649913,-29563759,1688339829,-33035516,-385649472,512426106,652738608,1478396171,73703427,57982986,-387987736,1128522292,56106633,853851112,87466688,-1595810328,-1073085333,-1125579916,82813182,58048522,-371033367,485024753,-507451165,-387884055,1860822154,-1897375262,1172851711,-402230048,1172963300,-1564462364,-756546321,-385649914,-1057037291,1860764533,1975582434,-496506621,82386571,50342585,-385351975,1994974201,-514463519,1541996464,1477872389,807308035,1960459008,1124567713,88664146,1408428890,1943961064,-386027461,512427322,635962192,-397190400,512426016,727320324,1501402,-1910580601,-1979494370,401088263,189416197,-370182702,-1014309362,-1979381272,84208071,1407317225,1943943656,94693623,-260702916,-1979343384,93907152,-1813450614,-388462075,-125172338,-1979348504,92596424,1621158026,1959329280,1343654662,-397190397,-1910635150,520587482,-980793021,-277495542,-575346343,1979594216,-509220605,57934892,-2015258391,11779034,529258755,73277065,-1996488517,-1979248098,-1160083513,-628686660,-393553661,126540423,24390716,-397323581,-397352848,-398336260,-397156616,-1645682369,1582913760,-1974018425]},{"sector":8,"length":512,"data":[-1957473592,-1257827810,-1982266624,-2029579746,1579060186,1943681796,-506599165,-628663717,-1992093816,-1360307433,32178188,82353401,-530388767,-529340334,-561553831,-397323434,797630671,1457424222,-930478198,1134318417,-1073080437,512453748,-633667536,512440691,-633666728,-779472526,512426166,-637336740,512481927,-633666769,-1969397134,-534714175,-2023859877,1364350686,1507886824,-561553830,1129533782,-1659401828,395002715,-1958519975,985762335,-1979550779,-1966789912,57843144,-33547288,1959657157,-1962440178,1111730938,1499067371,1935235417,190467,548455259,-906051074,-91490444,-152354134,1582914461,-2024350073,1359640026,-1192704630,-503715617,-561553831,-346861226,1946434690,-397688063,-1168974324,91488384,-544872367,512447321,-633665767,183042931,11779040,394909955,-1296027069,126370567,-109720834,-1564255653,-1343748328,1946434812,-535303933,784028497,-1965489408,1913207815,-1604626159,-2036398312,-997830460,-385568687,-1212423823,-1948712192,1581400855,-1974018425,1965833223,-551426045,-577050549,-1645673612,-561553695,1976699734,-543954685,1243056459,1364416859,50379451,-2000669991,126370567,50377659,-2027975719,-1152167206,-633667456,-1174047397,736821248,-470302069,-1974282101,-1971379005,1493219024,-544554102,-620496502,1458111347,1943064799,-980794623,57982986,-1981855511,1527190046,-1128574119,-1982266624,-1157164002,-654114765,512350723,1398474518,721453243,995252954]}]],[[{"sector":1,"length":512,"data":[-1979419942,-1596290306,-1073084648,-2135278220,1943681792,1407734533,-1957602560,370576331,337545991,8316935,118759049,-779422326,3663961,118627979,303991107,-634692857,12245771,-1552592128,1405311835,1526734312,-1949594799,-1962470378,-402188770,-628686776,118759049,-779422326,231336793,966967346,1397903623,118625931,50378171,529224665,1541028674,1134499720,1966573726,121217031,242532362,1395368635,683365201,-371653888,1515913763,-1974353063,-1426420985,-1974910397,1975585477,1489197554,1386136710,-1957650607,6416587,1374170228,12303104,-637282045,126393944,716918943,-1965489408,509495,141823292,-963977212,126353428,1515822680,-186006693,719868638,-386436096,-1145372644,64553728,168266458,1499159232,11779011,-1162148885,-1948712192,-1153252585,-654114630,-1950148727,-1382197,-1972142,995809927,512345050,988283707,-556275491,-1041695056,-557192965,1021104105,-385649406,700177925,-1965489408,1958742535,-1393456341,611583036,168266307,1359574464,-404170357,-555001599,120225968,11913354,-1186735869,-654114808,439093130,-1072037588,-1965147415,1121028853,50342331,-1070444071,-68679800,121020417,1007008744,-385649153,-922821063,1290339189,1976106719,-1070441969,-1314194805,1156071952,-573052461,58048766,1507727593,50341819,1125616601,1261930562,1371740040,-1968377461,1121028853,1963080786,754301722,-645180589,-1964434768,2734848,126540035,57982986]},{"sector":2,"length":512,"data":[1526697448,-1325297176,-755374064,842249817,-1426486336,1976499777,71091192,1962944699,12106499,126540035,-383808949,297524421,-2015821056,77511642,1124075462,-1662516043,1127188701,-2008862840,130433839,-1576488776,-1070464261,-402348126,1539562769,-1631287720,-997810349,-1950054832,-1979389666,1963015175,-612701949,58000444,1493056745,1386136710,-1614050479,-2041527162,2734788,126540291,1968406588,-17569789,-1979187621,1124119823,-1631287720,146428063,-1965423872,-2012398537,67662895,315001568,50825413,1503549657,1527220314,-2008331581,931676951,-2146974141,-2146974141,-561553829,1405848406,50340539,1125616089,509507,121217115,91602954,1526751720,-23861053,-589960869,-1971276463,-91536633,-838974806,-1017514635,512447313,126485737,58000444,-1174545687,-654114774,-1073084534,-1974790028,268321543,-930478294,146397443,-1965489408,1539312135,-1974746279,1958742535,583685,1543095413,-1021661095,82386571,-1963488686,666452691,-1965489408,797590287,260590401,1127188547,834360131,-1311112448,130433920,1976172032,1632504,-402180704,-1073085480,41222320,-2007269200,126372615,-1017462774,-1152167343,-637337550,447863431,1540447976,-389850790,-93126818,-168224196,1397879925,82386571,50342329,509657,509507,-1017553927,1406909160,-1965343000,1975519751,-618403581,394937244,-1975547325,1020299994,-1978764798,126501647,977062654,-28637068,-1023521854,-889306959]},{"sector":3,"length":512,"data":[-1047894924,1076682532,456940658,-256288653,-1426486524,1124841025,58313470,-1979697687,1965964295,1501192,-342034019,-1426486294,-822197439,-1070407051,-1660617566,-963984549,578030396,510788412,548467572,1101724043,-353644802,-822163714,548461684,1101724043,-160051458,-1763061525,-10426150,82885203,-1863839823,1975582416,-630068989,-1174072645,213189872,-2001931637,-29211897,1542813133,1104697320,1406686184,1409233384,-1325076294,-798889969,57983230,-1160064279,599459057,-401885947,397531943,-402320710,-1017393081,-397225846,57997103,1524283625,-68660655,1364810494,-389641572,-1986135521,1912814366,180521498,-1156287040,126485753,192225340,1128400838,1128335302,1532168134,-1991194998,1392830750,82885187,-225768271,1107789996,1976172099,-2000669963,1358343,126409219,1124567107,-2008873080,126370567,-398306726,1482423910,138171216,-1293417611,1963080706,-1427615208,-401362686,-1319448645,-810162154,58048766,-337998615,-401624798,-1057042521,1482299765,125110332,1380975280,1356655426,1946434642,-646584061,1523641154,-1426420904,1030994,130472451,130433920,2603776,-1070409213,-2008873080,126370567,1527220291,71042954,138154868,20717684,1709769588,-40048424,54206091,3389891,-2135828221,-29151352,-369527351,512481356,-1957493527,2276299,-628631293,1162066,-1336682237,-32506364,1125020935,-176830210,-967091621,568918535,126507992,1352630052,-791672950]},{"sector":4,"length":512,"data":[-1979468477,-1949249529,1111730938,-210383362,-791674704,1487600267,-402426466,803733562,-396796931,11665458,1929175528,1947876360,-339542519,-402607373,512426014,-880081687,-1157494842,-654114777,126402610,1124567107,-2008868984,-675354361,82386571,582732683,-1244069120,-33060348,1958742543,-29113599,-1007520307,-1897333387,-806164263,-371658008,-277492098,-645928877,2028476849,229724366,1489924840,246534282,1540254440,-47388477,82885203,-401624750,-1057042853,-1315155366,-402426864,1520291407,820577141,19917016,1088951217,1975737294,-256158962,509444,-401886909,1952120959,-51320829,-56442830,-239381756,-402083580,-105185179,-402411260,314179677,-400903931,-256193013,-401493756,-12792317,-454491275,85179351,126487473,-675551165,71090570,126487413,41164860,-1427624272,1976172247,-680531739,-259387644,973089184,-1341820218,-678172640,619185011,82885336,-1125641551,1979661517,-1966908484,1965702151,1057474297,1976172099,-1974287368,-1595387448,1348098509,50340283,1963458266,134103816,-29162635,1019316743,1477997858,-646660086,58000700,1020811497,1946267651,-1010762036,1489223730,-126614724,-2017214454,3926234,82386571,3455315,1273551107,-1185199365,-654114783,585631742,447828480,-1949482264,1124395294,347200135,181221096,-898278464,-2135172473,-2015755520,-1948521510,-1190973666,-654049494,-1301030341,-1946891031,-1073042190,803735157,-1426420992,1342496672]},{"sector":5,"length":512,"data":[-202250158,-645194892,-633650342,-1252912012,-1393390836,1963407938,-838974712,1659499381,-27764009,-1009223224,-400969390,-1057043241,898089818,934688639,944125979,945895502,170080369,962541702,931083655,941307830,944650310,946944097,948308515,879638879,170068959,170079357,170068515,170068515,882117155,199177371,883558947,170068515,170068515,170068515,885535937,170068959,170079447,170068515,170068515,888015395,309131,994444426,1962936503,179800836,79137024,42991360,-1215577344,76021766,146225990,-1962642176,-1996485961,-16775497,-1023409529,50798779,-1962466274,-1752579297,-1886846968,-1886846972,-1886846970,-2017001462,2,1583044803,119289599,-2041001130,1515822788,1525738331,-336897701,6201427,360038654,3022475,54992521,-1021130870,91537662,916635698,-1950131451,-1962719962,-385662178,1152571245,-2133342231,41255162,-1950154062,-2096830178,-2084359229,126496451,-1312567050,-1841152,635989424,-383874091,851673860,-383874109,797411844,780845824,-555220894,6529279,2028537736,-2041554689,256196,-1140885527,-397200249,1673199755,6416640,-1564178856,-1966931870,-402181586,815857585,-385382393,1348009803,65586310,-11867904,1395963067,-1157602328,887686960,-997828608,-1022938462,120794762,-1593867032,126355249,1493114601,-389773744,501809155,887208959,3926099,-385404485,-2041053177,120824516,1947024579,1393032724,1543464680]},{"sector":6,"length":512,"data":[326418686,121161982,229639794,509635,1223165834,1527220479,47811,28969195,-1174148352,1402732546,-855591856,549778967,-990507403,-166890236,225706436,116070578,48962482,-1175905870,1011898582,-1341819635,-2955254,-1013097640,12276510,605946628,47623,395041422,84942478,119936649,-1144840357,503514920,529205028,120372163,119807491,1405296523,-151107096,-16777081,-286719116,-1075293484,63079423,1257160754,-1070404022,755592,821128,886664,952200,1017798,277333763,1392706304,-1190855749,-2142568439,-85909441,509507,-1190858565,-2142174848,58007615,-2147435031,578038847,21620825,402227537,1393193476,-2130845208,67113359,4161627,-1679228043,742359040,-398248331,11916010,796151356,1329332661,62204276,594822460,527707196,1295779253,129309044,326390588,-2143088917,125042751,1965834112,-1007074557,1406386409,-1258450456,296165892,61954816,1946148840,-2146465247,-462277399,1929771392,-3217185,663359603,-30348160,50102476,-456077709,1609098448,263162109,-1966765568,1963009257,1959332358,-2133983561,-1334639363,108326154,41205770,-334836226,1085321,-1946339864,-1962933873,-402652265,837353161,-47912707,364427,497547,-385957144,378273056,-1031600346,-293556221,1493363331,1257162122,-387006070,-1349845762,61931535,-2020940334,-989200367,-301743485,-301223870,-919387582,1979521512,-722015997,1009788140,-502827984]},{"sector":7,"length":512,"data":[-384257297,-1070410500,99255131,-957477968,16777351,162499162,-1342131968,-92251288,-1962380028,-1996023498,-402607177,-991309228,-744232708,927841107,-1959902397,188957455,990475465,787576273,-1017442421,1272099049,1845886976,-1778116864,738394112,1476493313,-1342128126,134242308,1610629127,-1073729527,-2147477486,3109,1611,-402653184,-118948394,-58398467,-2013852044,-65534,300479349,-733484800,42452986,-402653184,-369426428,843250821,-1031541056,602467843,8882428,244040448,-745863399,1263620699,1959807976,-803018722,-773265364,-771010215,995692916,-1960414518,-397717046,57987120,1507079145,1364416606,50379963,182486750,-401771072,126353564,-336010685,-769398517,-398260342,-119406335,119082635,1959406426,509446,1543168579,-2083342615,1347957443,-488061818,1947020288,1393032728,1543255784,259309822,121161982,229640562,838912232,-385382208,1240005560,-373290496,585694137,44010493,16759296,41081403,-2081826169,-49289005,169867,40843,1944705579,-50337581,165771,19710986,-1969700838,-371684412,-397159586,-1886848182,-379912181,1397871412,-151306776,-16774009,-2017064588,-1308622836,-165745851,-16773753,-2017064588,-1308622835,-166794439,-16773497,-2017064332,-1308622834,-751113959,755594,-2017017846,1962934283,-80418791,1323893621,-57415429,167819,-311113461,-386222616,1499136003,-85923645,1089418,-1976696649,574161599]},{"sector":8,"length":512,"data":[521126855,1375698751,-941076397,243791610,-1435107584,-1946392856,-402653041,58063598,1006307561,1946157711,-64165646,856081027,807726281,91500604,-991299614,-90904323,-2013857192,1979645962,-2017002739,-2080440310,1542325994,619234137,-94443268,1492446203,-397163386,-2021066130,-1017446391,1364414715,1465261650,-1912602438,270438106,607584005,604423943,-402653177,113704987,132900,-1895820568,-1173937146,548405280,526278638,1482381658,-72292145,276091403,-1460911550,839480577,787516388,968733951,20586179,-986069446,199803705,63079418,1947870444,226985988,99255040,-1763128437,12553211,45583104,1004111616,839873783,210208960,-645141504,-369507352,-957555444,16780423,-75896637,-2013806542,-65534,1246365812,-285635096,-1142358096,176654585,-1031552256,539290628,-1410856587,-2000093447,-1023406457,453428986,244056071,-2135030014,33013504,-67088199,-645094157,721420961,268385729,-4717698,-754667249,-1555543840,-527760630,-1896480584,9353664,-1107296069,-1977219430,1124567044,-1929912250,-390033704,263455451,1218580685,121152000,37497012,1353977202,125110076,-1995764551,-2013239282,-956290778,466438,-611517951,55582345,-1898826978,270436826,-1877046523,438208768,-1843492091,471763200,1813940997,371099904,1847495429,404654336,1881049861,303991040,1914604293,337545472,605981445,-1138849536,639535875,-1105295104,327990019,2367113,2494092]}]],[[{"sector":1,"length":512,"data":[-1996127301,-1946120162,-1157590514,512309612,512294960,244056108,244056114,-155516882,1813940499,1846447104,348175104,7347849,7474828,2104971,62922377,2236043,63053449,121290527,855666617,-1410073408,-959578648,17118726,-1560081759,-202899412,-1964442672,997309391,-389678360,-1612068678,1701336066,1296189728,1919242272,1634627443,1866670188,1953853549,1109422693,1667855201,1700138495,1869181810,826351726,540028974,2037411651,1751607666,1112088692,1866670157,539914354,825768241,536874495,1967205684,825765223,1701013836,1684370286,1952533792,1634300517,539828332,1735357008,544039282,1886351952,2037674597,543584032,-968015287,541446,138544838,1159629059,314802440,1193183488,-2117367032,1358990529,34759,-880082816,138747531,835969,364425,-1031679605,-1752629120,512425991,-1377302457,113662967,-1325463756,120758864,-955829342,471046,47616,1961413259,-1106873088,1592275806,178432,6678594,1958610549,5236787,1107297465,1962956520,864730630,-956284696,467974,858963456,-956292120,34022406,860405248,-402647064,-770967350,378081141,-1075312860,1976699896,504793348,116900615,-63714,-397211276,-770967382,-1185208203,-953286645,-2093730300,-152960314,67681987,-1189154557,-645005312,186584203,-1274645303,186109185,843236297,-1957040448,-1962467786,-1996020706,-2130239345,-1996483903,50800783,214008270,747604224,-1933475577]},{"sector":2,"length":512,"data":[2028491008,-942961672,-2147483513,-127670272,-1215704181,-1031733248,-1048510452,-1276641268,8898294,-2017067008,-1979777015,-1996488297,-2130705009,50364609,60262870,126847232,120037376,54325172,37488244,-139196043,-335535686,1542374434,35175363,-1047606989,637561529,167820,1510459174,79921921,-1799425568,179056189,840201408,62915556,785943488,126428845,42961958,-1931023616,-1010790696,-1560062317,-829095194,96900611,-1610244945,-1969290126,73045764,-1424900952,-1045690640,308521222,-536410903,266274373,116972550,-351841814,1609312283,112518184,-402231325,1525024315,107472646,-1241130531,-304216448,129096453,-502810655,1351026640,132221189,825780,-1031681396,649331713,-628219443,-762396018,1688387634,-64952060,-157143888,12040961,-1153824826,512303649,-1070463179,-1576863326,1805778950,73769476,-1157617502,512295040,247138073,203327747,58374915,65150601,-543030352,441092,53681801,-1979582533,-1983903225,1963143966,11725059,-1975308406,126372615,-838974653,-968100491,512294919,-155516109,-913381375,58048522,1006669801,1259828271,-1994258490,1124283166,175386428,180974568,-369789504,130416756,-916002816,1019890152,1011315795,1012102211,125082701,57951804,-389195799,636012876,417872585,393518539,-1073035638,1323893620,1019382475,-385650160,-542979259,-1995969788,-1576859114,-397736165,645187872,801699816,367571691,-923866935,-891164614]},{"sector":3,"length":512,"pattern":-151587082,"data":[119084681,99149035,-924915511,-892213190,119412361,-1957964565,1258490398,50994825,-543141045,143899396,-33235038,-1092071232,-1991026436,-1979391970,50378448,1524237274,-2029997127,1125616090,64653123,512447449,-1128724711,-1948712192,-922854453,-1992039051,-1996476386,1510163742,-266026358,-1605119862,-1073084645,-1329915787,119447818,57982987,50716859,-1157401638,1263271935,-1973691769,-1963055934,717392592,-1965520189,-1966662970,-385649672,61983369,-947196973,57803324,-1979580229,-1966921022,449219288,1945668295,-898897661,50994825,512350855,512294956,512295727,512426821,-628686800,53419577,753468275,1272589260,-396668085,-88356149,-1049499585,-372609304,1109442825,1936028793,1701996064,15269989,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"sector":4,"length":512,"data":[-1408455425,1411419907,1226859880,1344294210,1869836901,543973742,1886220099,1919251573,1953644832,-1240671744,1444974339,1769173605,824209007,540028974,1126777640,1920561263,1952999273,1296189728,1919894304,959520880,201339192,-1895579635,1667845152,1702063717,1632444516,1769104756,757099617,1869762592,1835102823,1869762592,1953654128,1718558841,1296189728,-905105408,1092652803,1869116533,539828338,1852140615,1951604846,1953653109,1918977056,1801677156,-821214464,1394644739,540690245,253794336,1125482,64228695,1347240275,609437004,572581664,2248526,64884065,-233955191,225837059,1095959528,1162629197,-417323949,1163469344,-1560272301,-922488307,-935666400,304877856,253804346,739322895,547371537,-1069930481,371247674,974327596,1226973329,2248002,66850246,739778762,288099343,572559674,1936876880,1818324591,1836008224,1702131056,-218094990,-1090255347,738856736,550124049,439093775,-1858465492,680984352,-383134449,353315030,701304620,680984553,2734095,68161064,185540810,288102956,-14642886,-1290852202,539158825,538976288,538976288,542396993,538976288,538976288,-1761613534,699600680,437145088,253807108,739912716,546388497,254318335,-689362509,739577640,-383180785,254318335,-2097141325,-905698290,739053344,974203930,-1761664879,699600680,538977001,1700143136,1869181810,774971502,538980400,572530720,680984553,2732815,70127273]},{"sector":5,"length":512,"data":[235872458,288102956,-14642886,-737204074,685173033,254547215,-1496627,-1106302826,249364521,549389368,288100111,253807162,739781649,546388497,692267042,1886339872,1734963833,1226863720,1126190402,544240239,825768241,252772386,549389378,288099855,253807162,739781655,546388497,1701990434,1931506547,1701011824,1918984736,544175136,1953394531,1702194793,254083106,545981516,585558238,550314018,1275994249,254935044,1296237654,-417323964,1241570848,-1962647537,1145914144,552017956,-853532126,237013280,1711277142,-1962644977,1145914144,552017956,254318335,-853530341,237013280,2130707962,-1962642417,1145914144,552017956,539107362,545857741,296974,75370377,1443766409,261423108,546768008,-414759597,263716881,545981586,681049896,688132108,203484704,-399966160,3149030,-1994339040,85200416,-1676687104,253796356,985676368,739516618,265945106,546374822,1280264226,1414078532,385884705,-1861963760,1331241504,1163011925,1414483488,1230198048,1411401550,1126188360,1380928591,1095911215,1128876112,1330454611,1330923854,1145118802,1163153473,2236754,79302741,1411522705,542329160,1196380752,541933906,1397052245,1095911200,1128876112,1312890963,1163010116,1380537681,1411404613,542392648,1346454593,777143636,276693026,546374852,1163022370,1411404627,1394623816,1162035536,1380008480,542069792,1414418243,1163218505,-2013257170,-1761292784,1195725600]},{"sector":6,"length":512,"data":[-670000128,-568292604,572712680,-1994339040,81268256,-502224640,1145914116,552017956,281084126,545981676,608456003,572581664,550314018,-502390647,282918916,545981686,608456003,-14620896,453978262,550314025,-99737463,284557317,545981696,608456003,572581664,-853532128,237013280,1530,-1996158447,81923616,336660992,1394644741,402671429,-1794829039,-1994348768,85462560,370222080,546569733,577137954,387001856,237013253,939525401,-1476061167,85528096,420562432,-1491036923,237013280,1476395008,-939188719,288100896,421576506,-1069936340,672231936,673230853,689056786,1075587306,-938529791,739453993,-1912584638,-1341836783,504309792,689835820,572270826,-1441846271,739322921,-1543485886,-1341834223,504309792,689835820,739387626,304883986,1175567616,673230853,738271772,-366404081,20978728,740889132,299106322,548406608,740167464,-366368241,254546472,304884168,1511124480,673230853,738271772,-366368241,20978728,700976940,150999596,-1341823982,1678714912,699600684,-670095126,700518188,1110184236,303366214,550110574,254547983,304676880,546375023,1750343714,1766006885,572553588,305397819,550110576,168766483,2014466816,572559621,1936028272,1397039219,1701519427,1869881465,1769497888,3875444,92410468,-416196535,267094271,588245498,-1944947456,844646661,-343343129,266992143,311492643,1481180566,552017970,827869480,844646890]},{"sector":7,"length":512,"data":[538242089,1481187561,312606770,1497957792,-1996495055,-378662933,-1392494833,1225107986,266809945,315687077,548406708,827869480,827935020,1227418153,1227633240,740897369,334203135,1110184681,317653062,548406718,827869480,827935020,1227418153,1227633240,740897369,4336657,96998165,1227366576,317272408,827935020,-366406935,844646696,1227625194,317338201,739322921,322306114,1095304658,-14620896,1227368582,1240084824,-349621672,827935016,844712426,1392519465,1225120787,552018003,805313832,1240109070,485239105,-383778456,2428704,98964318,1397301444,1728058156,1258680339,14608164,99750781,608903307,572581664,550314018,-2113003383,329187333,545981940,-400546741,-1761664794,689639208,-1742680800,745148192,545864209,360974,100275151,739320008,545995282,1347240275,609437004,572581664,575882585,-31404768,1394745484,1280331073,740447045,256028,100930527,739778751,974203921,8469184,437911552,14608164,99750781,608903307,572581664,550314018,-2113003383,329187333,545981940,-400546741,303366214,550110574,254547983,304676880,546375023,1750343714,1766006885,572553588,305397819,550110576,168766483,2014466816,572559621,1936028272,1397039219,1701519427,1869881465,1769497888,3875444,92410468,-416196535,267094271,588245498,-1944947456,844646661,-343343129,266992143,311492643,1481180566,552017970,827869480,844646890]},{"sector":8,"length":512,"data":[168603903,1411419904,1226859880,1344294210,1869836901,543973742,1886220099,1919251573,1835094816,1936026736,336387584,1444974336,1769173605,824209007,540028974,1126777640,1920561263,1952999273,1296189728,1919894304,959520880,268448056,-1895817715,1667845152,1702063717,1632444516,1769104756,757099617,1869762592,1835102823,1869762592,1953654128,1718558841,1296189728,671953920,1092652800,1869116533,539828338,1852140615,1951604846,1953653109,1918977056,1801677156,839737600,-585053952,287361082,-1086713300,739184416,974203921,672080032,-902119366,254547488,546388499,1296189730,226754594,550109244,202320920,-1858465492,1699750432,1852797810,1126198369,1970302319,577922420,1175302400,253804288,974203914,168763594,288102956,-14642886,-720426858,685173033,254547215,-1496627,-1206966122,233177129,550109264,439094031,-1858465492,680984352,-383143153,538976290,538976288,1347240275,542328140,538976288,-383639520,254318335,201337267,-905946610,738987808,974203930,-1761664879,699600680,254334697,537865237,-1761613527,699600680,1678655744,253807104,739912717,546388497,254318335,585705907,538976288,1936876886,544108393,808463921,538976288,-1498592,-1290852202,241631273,550109294,439094799,-1858465492,680984352,-383134705,353315030,701304620,680984553,2735631,7868059,252649663,-902164180,739315488,974203928,673325201,1126181187,1920561263]}]],[[{"sector":1,"length":512,"data":[1952999273,1296189728,1919894304,959520880,2240824,8523471,235872447,-902164180,739708704,974203928,1344413841,1936942450,1634759456,1646290275,1948283489,1868767343,1852404846,2254197,9178863,1779376280,975180076,1279515023,542261573,1145198923,1179992608,5391686,9834236,608456003,-568269024,-1609625088,1126206208,-417053619,-853532126,237013280,771752086,-1962890737,1145914144,552017956,254318335,-853530341,237013280,1191182696,-1962888177,1145914144,552017956,539107362,545857741,51214,12455761,-1945231223,260046848,549978312,974269457,252649663,288100652,-902119366,338433568,572559674,1347240275,1344292172,1380405074,575884609,-770726912,404802048,288101420,539005242,757088546,1398099232,538985289,858267680,573139762,-602941696,421579264,288101420,539005242,757088802,1414676768,538976288,858267680,1127050034,1919904879,1634879279,1667852400,2238835,15077371,739909834,974203924,572530833,539828291,1414680397,1162297671,942942240,2238827,15732785,168763594,288101420,572559674,539828292,1129466179,538985804,1094854688,1094928723,1819231021,1194291823,1752195442,695427945,275185698,550109434,338430735,-1858465492,541401632,1329864749,1497713486,673194016,1230192962,1127039299,1919904879,1634879279,1667852400,2238835,16453789,202318026,288101420,572559674,539828294,1128614224,1414676808,1094854688]},{"sector":2,"length":512,"data":[1094928723,1819231021,1194291823,1752195442,695427945,282263586,550109436,338431247,-1858465492,541532704,1094852653,538987596,673194016,1230192962,1127039299,1919904879,1634879279,1667852400,2238835,16584951,235872458,288101420,572559674,539828296,1330401091,1380008530,842213408,2238827,16650523,252649674,288101420,572559674,539828297,1162625347,1380009038,842213408,2238827,16716113,269426890,288101420,572559674,539828298,1128353875,538976325,1094854688,1094928723,1819231021,1194291823,1752195442,695427945,292618274,550109440,338432271,-1858465492,1397039648,1162551363,539828313,1414092869,295305250,550109444,338432783,-1858465492,1313153568,542262612,1414808908,1327518277,1380982854,1095911247,-889183667,-905902575,739577632,974203924,1310859409,977622095,1819033888,543584032,543516788,1987011169,1919950949,1634887535,2257773,17240574,370090186,288101420,572559674,538976288,1701978144,1919513969,942940261,1718165611,1769174304,1109419886,1128878913,503325249,-1744761326,745148192,-1892016111,1162626009,1260409409,541344345,1179014466,1006654021,1258360850,552017956,545995486,-400546741,572661990,-1994339040,17698336,319969536,539249409,987635943,608903307,572581664,550314018,319692937,310444033,545980696,1260946431,739388452,-417322734,574693920,-31404768,1294082188,1128878933,-400806878,312934403,545980706]},{"sector":3,"length":512,"data":[1260946431,739388452,-417322734,574759456,-31404768,1092755596,740447314,256028,19665618,-2080431989,740576040,689056786,572581664,-853532093,546111008,1380928802,1195460436,472654405,-83885080,-1962854894,679739168,304882763,539562540,1143087335,550314018,572558590,1129466179,740443468,256028,20386596,-2080431989,740576040,689056786,572581664,-853532091,546111008,1313817634,576275787,65543212,940789504,-14644479,608905347,304878124,552017961,539117090,-1929502515,1229988384,1095254853,740447314,256028,20517750,-2080431989,740576040,689056786,572581664,-853532089,546111008,1279345186,472654412,-1593834520,-1962853869,679739168,304882763,539562540,1210196199,550314018,572558590,1330401091,1380008530,-400806878,332136451,545980731,1260946431,739388452,-417322734,575218208,-31404768,1126310028,1313164353,575816004,65543212,1007940608,-14644479,608905347,304878124,552017961,539118114,-1929502515,1347625504,574964545,65543212,1041505280,-14644479,608905347,304878124,552017961,539124002,-1929502515,1431118368,574835027,65543212,1058292224,-14644479,608905347,304878124,552017961,539124258,-1929502515,1380000288,472654420,1828717544,-1962852332,679739168,304882763,539562540,1663181031,550314018,572558590,1414680397,1162297671,-400806878,345374723,545980737,1260946431,739388452,-417322734,576987680,-31404768]},{"sector":4,"length":512,"data":[1126310028,1279480393,472654405,-1090518040,-1962851820,679739168,304882763,539562540,1696735463,550314018,572558590,1263423300,740448581,256028,21173482,-2080431989,740576040,689056786,572581664,-853532058,546111008,1162432546,1380010051,472654420,285213672,-1962851307,679739168,304882763,539562540,1730289895,550314018,572558590,1280065858,-400806878,356253699,545980741,1260946431,739388452,-417322734,577249824,-31404768,1126310028,1380928591,575816002,65543212,1175807744,-14644479,608905347,304878124,552017961,539126050,-1929502515,1094918688,1145980236,740446785,256028,21435791,-2080431989,740576040,689056786,572581664,-853532054,546111008,1095783202,740443459,256028,22287793,-2080431989,740576040,689056786,-14620896,453978262,550314025,1745756297,364576769,545849694,51214,23598543,739320008,549403154,974203928,8469184,65541593,-938598263,0,1145969178,740446785,256028,21435791,-2080431989,740576040,689056786,572581664,-853532054,546111008,1095783202,539124002,-1929502515,1431118368,574835027,65543212,1058292224,-14644479,608905347,304878124,552017961,539124258,-1929502515,1380000288,472654420,1828717544,-1962852332,679739168,304882763,539562540,1663181031,550314018,572558590,1414680397,1162297671,-400806878,345374723,545980737,1260946431,739388452,-417322734,576987680,-31404768]},{"sector":5,"length":512,"data":[-1408454145,1411419907,1226859880,1344294210,1869836901,543973742,1886220099,1919251573,1919896864,1734436724,215941221,546243510,1936876886,544108393,808463921,692267040,2037411651,1751607666,1112088692,1866670157,824209522,3225657,62917905,1766596751,1936614755,1293968485,1919251553,543973737,1917853741,1634887535,1917853805,1919250543,1864399220,1112088678,221577293,546243530,1752462657,757101167,1701594912,1394634350,1918989684,1631854708,1667851378,222756971,546767823,977749331,253794336,1125482,64228697,1347240275,609437004,1330520807,224591906,545850334,258574,65539446,1347240275,609437004,1163469543,-1560272301,-922488307,-935666400,304877856,253804346,739322895,547371537,-1069930481,371247674,974327596,1226973329,2248002,66850246,739778762,288099343,572559674,1936876880,1818324591,1836008224,1702131056,-218094990,-1090255347,738856736,550124049,439093775,-1858465492,680984352,-383134449,353315030,701304620,680984553,2734095,68161064,185540810,288102956,-14642886,-1290852202,539158825,538976288,1380928800,1195460436,538976325,538976288,-1761613534,699600680,437145088,253807108,739912716,546388497,254318335,-689362509,739577640,-383180785,254318335,-2097141325,-905698290,739053344,974203930,-1761664879,699600680,538977001,1700143136,1869181810,774971502,538980400,572530720,680984553,2732815,70127273]},{"sector":6,"length":512,"data":[235872458,288102956,-14642886,-737204074,685173033,254547215,-1496627,-1106302826,249364521,549389368,288100111,253807162,739781649,546388497,692267042,1886339872,1734963833,1226863720,1126190402,544240239,825768241,252772386,549389378,288099855,253807162,739781655,546388497,1701990434,1931506547,1701011824,1918984736,544175136,1953394531,1702194793,254214178,545981516,-420994850,539107872,545857741,281614,72748852,608456003,-568269024,1611615488,1126206212,539247693,539107559,550314018,2114855049,258473988,545981546,608456003,-1761614048,689639208,-1994339040,79302176,1947169280,237013252,-1778383786,-1090224625,739184416,985676305,978329775,1296113798,676614735,738325532,-935712493,-1577053920,-1761312241,1195725600,-838856217,-1962638577,-1744885728,68160552,552476713,687878156,806151912,550313984,1397509955,337700640,237013306,-570424186,-1610316785,978325280,1397509955,-402646553,-1761311217,1195725600,-2012220928,237014276,134218968,-1962634736,680918816,-416734135,-853533937,79302176,-1676663552,-14644476,608774275,304878124,841148201,550314018,-636608375,272760839,545981606,1227391999,739388452,585574674,-853532111,237013280,1275069906,-1996181488,76025376,-1173328896,1394641668,1280331073,539251525,572581608,575882585,-1994339040,79957536,-1089437440,546110980,1296126754,1397050448,-400806878,277544963,546112708]},{"sector":7,"length":512,"data":[376334,80613521,279576705,546243800,1095573549,1327517257,1330205776,1162682446,-721398450,-1090199024,739184416,985676305,739319999,546388504,1330454562,1095193682,1092633927,1498169678,542329171,284491810,549389548,288100111,337693242,-1858465236,1347363360,1313818964,539828307,287244322,546374902,757084450,1380928800,1195460436,1095770181,1313164633,1329799252,1380012109,1313821513,2236499,83890497,841097361,1293954336,1196708431,541411137,1380928833,1096436052,1313818964,290979874,546374922,1129530658,1497713440,1159736608,575949144,336683520,572559621,-1929371104,-1861935599,1347363360,1313818964,1297436192,542262594,841756968,1380917292,1129530656,1027416105,1044200765,297336866,546374952,1414483490,1344289349,1397966162,1162368032,1414415648,1260409413,1461737797,542000456,1162760004,297992226,546374962,2236450,87822798,252649663,-285208276,-1861925359,680984352,-383133169,621750486,680984364,690603023,680984553,2735887,89133611,-1761664879,699600680,538977001,1414680397,1162297671,1497452576,1414415693,1297040160,1230127440,1397641043,538976288,572530720,680984553,2732815,89789031,-1761664879,699600680,538977001,539828256,541414229,1397311572,1414549280,542003017,1126190932,1095781711,538985810,572530720,680984553,2732815,90444451,-1761664879,699600680,538977001,538976288,541411412,1414418253,542723144]},{"sector":8,"length":512,"data":[1297695056,1398033989,541478688,538976288,572530720,680984553,2732815,91099871,-1761664879,699600680,538977001,538976288,1414680397,1162297671,1413554259,1380013600,1398099785,1413567008,538989381,572530720,680984553,2732815,91755291,-1761664879,699600680,538977001,538976288,541347393,1313428048,1095780675,1296113740,1414419791,538979923,538976288,572530720,680984553,2732815,92410711,-1761664879,699600680,538977001,1414680397,1162297671,1330463008,1514755154,1330205761,538976334,538976288,538976288,572530720,680984553,2732815,93066131,-1761664879,699600680,538977001,539828256,541414229,1397311572,1414549280,542003017,1126190932,1430473793,1163149644,572530720,680984553,2732815,93721551,-1761664879,699600680,538977001,538976288,541411412,1313428048,1095780675,1312890956,1313415236,1163019604,538989651,572530720,680984553,2732815,94376971,-1761664879,699600680,538977001,538976288,1145651536,1163284256,1312890962,842080345,1313819936,1344292948,1330205253,572534340,680984553,2732815,95032364,-1761664879,700452648,254334697,-1761661915,700714792,-1761613527,702091048,-1273738752,287358725,-902162388,254548256,546388517,975314978,739844298,1811948815,1225110804,987686692,608772235,539108071,-1257365299,-1590026235,1226871072,-1908786396,-1105954048,253804293,974203919,8469184,96998586,-417315248,-347717344]}]],[[{"sector":1,"length":512,"data":[-330935768,7976,0,686457088,31,0,673770625,31,0,1179838849,1179577641,690563369,-687829446,-1895443948,1830825248,1735684719,543516513,1886220131,1936290401,7564911,98309396,252649663,-1069936340,287358778,-1858463700,1293951520,1196708431,541411137,1297695056,542395973,1347243843,1397314113,1344294479,1380405074,572542273,-434821632,253807109,974269450,252649663,1191186732,-1861881835,680984352,-383133169,621750486,680984364,690603023,680984553,2735887,100275587,-1761664879,699600680,538977001,1414680397,1162297671,1497452576,1414415693,1297040160,1230127440,1397641043,538976288,572530720,680984553,2732815,100931007,-1761664879,699600680,538977001,539828256,541414229,1397311572,1414549280,542003017,1126190932,1095781711,538985810,572530720,680984553,2732815,101586427,-1761664879,699600680,538977001,538976288,541411412,1414418253,542723144,1297695056,1398033989,541478688,538976288,572530720,680984553,2732815,102241847,-1761664879,699600680,538977001,538976288,1414680397,1162297671,1413554259,1380013600,1398099785,1413567008,538989381,572530720,680984553,2732815,102897267,-1761664879,699600680,538977001,538976288,541347393,1313428048,1095780675,1296113740,1414419791,538979923,538976288,572530720,680984553,2732815,103552687,-1761664879,699600680,538977001,538976288]},{"sector":2,"length":512,"data":[538976288,538976288,538976288,538976288,538976288,538976288,538976288,572530720,680984553,2732815,104208107,-1761664879,699600680,538977001,1163153230,1330913338,1279611680,542393157,1096163393,541414732,1092637263,1314213709,572530772,680984553,2732815,104863527,-1761664879,699600680,538977001,538976288,1163152965,1213472850,1346445381,1347375696,1413564754,1096163397,541414732,572530720,680984553,2732815,105518947,-1761664879,699600680,538977001,538976288,541347393,1397051984,1213472851,1313153093,542262612,777602379,538976288,572530720,680984553,2732815,106174340,-1761664879,700452648,254334697,-1761661915,700714792,-1761613527,702091048,1578612736,337693190,-1338371540,572556576,1163152965,1094852690,1293960531,1196708431,541411137,1431260481,1025528910,540949821,608254754,1746393088,-417316602,680853280,975774785,541139083,287369192,-1994339040,104861216,1914169088,1313423622,552017987,512028,108795897,739582154,546388498,690360274,404357179,550110854,974269462,673325201,1330913329,540357408,1129465168,693390917,1325415202,-905539560,304878880,-2061455302,1313153568,542262612,1163084098,1414416672,1397051973,1095901268,1025525076,1027423549,992092222,2380361,110762103,-417312183,680853280,690246217,1226869562,588244562,1226895136,538110034,545857741,424974,111417494,552018002,485249609,1379534000]},{"sector":3,"length":512,"data":[541281865,169681127,-327670825,-1476391921,-905531880,304879136,-769617606,992552463,-1206335744,388024838,-1858465236,824713760,542069792,1495282995,1397899589,3875369,113383675,739647690,548420114,1159864453,1380275278,1297436192,542262594,1495287375,1397899589,542001440,541545549,572538429,2382139,114039050,552018009,1495831807,419440932,1309070873,1495328544,253815584,421789708,1179518688,1310779168,-367443968,1310755590,-1541609914,552542209,317212238,-1994339040,112070176,-199670272,2063646726,-1090060775,405541152,572559674,1313819936,1498171476,1380928800,1195460436,1095770181,1313164633,1329799252,1380012109,1313821513,2236499,117971377,252649663,-902164180,254546976,546388490,585704537,1095063853,1330454610,1095193682,1277183303,541999439,1431260481,575886414,432799803,550110994,974334998,1377968273,1397052481,-1086702814,405541152,471457536,1226867207,287368992,1126222880,5459023,119937544,739582154,-347477734,546388505,975771858,739582154,-347477734,546388505,-347477695,1129204033,807014400,1226867463,974790912,1226867207,287368992,253807648,440074254,550111044,743041303,546388498,975771858,-384360246,1256521,122559085,550969489,774054690,992092963,673744383,686379560,1230170953,690570062,1610620395,-383151766,29,267135360,443875428,545458008,444596297,549390178,288100111,1813680384,1226867207]},{"sector":4,"length":512,"data":[287368992,253807648,447610894,1179780982,1377888032,1391151593,977489481,317146689,237014330,-1056963128,-2113437670,-417314272,-870313696,1280262944,451870803,542115722,1179656423,-381605653,1229056842,975782734,552018000,673744383,203286864,695804887,694423531,6557676,126819116,-430956405,539430940,550117581,304879119,572559674,1297695056,1398033989,1330598944,1380011040,1411401031,1229201487,1095520339,-1992678823,129764896,-1810150144,388024839,439110121,434850537,-685731526,589505056,590226211,1346052643,458555451,545458078,459079754,545458088,459735113,546375602,2236450,129768332,1344413841,1397966162,1095783200,1109411139,1411404353,1329799247,1313428558,992101717,-971267328,-568292601,552003616,539107362,545857741,509454,131079085,-2012340087,466288644,546244570,1869422637,1634169970,1629513063,1953656685,1952545385,7237481,132389845,739778751,467337233,12584942,133700581,739319999,468647960,550111234,1190930,135011351,539107473,1414680397,1162297671,1330463008,1514755154,1330205761,1380982862,1095911247,2236493,135666729,168763594,-1086713300,739184416,474611729,546375712,254318335,-689362470,740626216,254318335,-383178300,254318335,-2046809665,-1861735908,680984352,-383143153,1293951010,1196708431,541411137,1380928833,1096436052,1313818964,538976288,538976288,538976288,-383639520,254318335,-1040176717]},{"sector":5,"length":512,"data":[-1861733348,680984352,-383143153,538976290,1428172064,1411401043,542329160,1230262351,1411403343,1094918223,1280656204,541414465,-383639520,254318335,-33543757,-1861730788,680984352,-383143153,538976290,1411391520,1344292168,1129204050,1279348809,1145979168,1414416672,1397051973,538976340,-383639520,254318335,973089203,-1861728227,680984352,-383143153,538976290,1344282656,541346113,1380275791,1498300704,540160288,1414418253,1162879048,1146046802,-383639506,254318335,1979722163,-1861725667,680984352,-383143153,538976290,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,-383639520,254318335,-1308612173,-1861723107,680984352,-383143153,1310728226,977622095,542069792,1162626387,1092637763,1279350304,1327514965,1296113746,1414419791,-383639520,254318335,-301979213,-1861720547,680984352,-383143153,538976290,1159733280,1380275278,1162368032,1347436832,1380994898,1163149641,1279350304,538985813,-383639520,254318335,704653747,-1861717986,680984352,-383143153,538976290,1092624416,1344291918,1397966162,1162368032,1414415648,1260409413,539908421,538976288,-383639520,254318335,1258301875,-1861715426,680984352,-383139825,621750486,680984364,690603023,680984553,2742543,142876245,739516618,511574034,548407438,1159864453,1380275278,1380928800,1195460436,1296113733,1414419791,1027423520,992092222,-1912593343,1091082270,552017990]},{"sector":6,"length":512,"data":[1093178623,-1744819932,-905403874,304878880,-1407268864,572559624,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,992092192,-1239494144,371247624,-318762452,-1861697506,824713760,542069792,1344288051,1162039877,573133902,519503931,550111434,1190933,148119329,545595568,1414415650,1226854981,1380275278,542397253,1163149650,1027423520,540949821,1380530978,523370532,1380518110,-14620896,1380526228,1174415652,-1962350561,-430814944,-853531889,237013280,1493174434,-1962348001,-397260512,550314002,-1576132471,526974984,1179781372,1226893088,-1340281774,527630340,550111494,1190934,152051619,539107473,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,3875360,152706989,739713226,533069842,546375972,540092450,857755476,1163468853,693326401,-805291230,-905368033,304879136,941619456,-2061455351,1313153568,542262612,1112364366,1327518277,1163468870,542331457,1044200765,1497047584,537395236,542705986,-1795219225,690247976,1277171712,541478409,542712039,202318059,1444949248,1310755593,-1541609914,550313985,101589129,541065225,545982816,317212238,-1994339040,151391776,1780500992,237014281,1744831944,1342796832,552017990,673744383,501827152,2032391948,1678764841,1678765097,2116062720,572559625,1414418253,542723144,1297695056,1398033989,1163018528,1027423520]},{"sector":7,"length":512,"data":[992099901,-1728035248,-1089895648,739708704,549060625,546376072,1279345442,1095521603,1196312916,1330463008,1514755154,1330205761,-989846962,-1089893088,739184416,551092241,545982866,266749518,550314020,-1509023607,552534025,545393052,552017993,550248466,973334556,4792451,161882371,1380928833,739321940,-417322734,4604192,162537748,541663362,538058983,1179525324,-1172224256,1330462985,1227379794,539562796,-2046877465,1296115752,676614735,739437129,1391143186,203286854,695804887,694423531,6557676,163848563,1380928833,742991956,-417322734,1330463008,1227379794,304878314,1179707945,1330463209,1227379794,2691884,164503931,4792451,165159326,541663362,538452199,420421836,1226885690,-1858465236,655348256,-2093335767,-1476376288,-905321951,304880160,-333332736,572559625,824192288,575624224,680787945,2704974,167125473,539107473,540024877,1159745364,1092633678,1414680397,1413569097,575557449,569049147,550111744,1190936,168436242,1159864465,1380275278,1195721248,1229868617,1344292686,1162697025,1310741582,1161973077,1073750610,-1341516766,572556576,824198735,1330454578,541611086,1230128464,1025524815,1027423549,572538429,1380274235,608456521,505566208,-414953462,680853280,1230128464,690242639,673344000,1344310026,-420995004,-853536480,237013280,-2030040516,-1962266078,1380274208,608456521,552003616,539111458,545857741,655374]},{"sector":8,"length":512,"data":[171713178,1146101899,-853536281,237013280,-1375730552,-1962260958,-431730656,-853522866,237013280,-1056962048,-1962258398,-398176224,550314001,925833,583729162,550111834,1190936,174334678,265429137,-520083161,-1861587422,655348256,585826345,550111864,1190938,176300825,1344413841,1414417753,1230131232,1346978638,538987585,1414416672,1397051973,538976340,1279345184,1162038849,589692962,1230244492,-417311666,989860128,-2113235421,-417314528,541347872,1146101964,724969,177677135,-431415157,541478432,545857741,704014,178266988,1414416724,1411442464,542395977,1296113897,676614735,689122377,-1440514560,-685731574,589505056,992092195,-1207944375,-1861569501,572577568,589504544,589505315,572728110,-364490693,1380928833,742991956,1094396179,1414680397,321669416,1296120617,676614735,689056841,-1104953344,1226867466,-937178624,572559626,-318758368,-1861561821,1313415712,1163019604,1176523859,824201807,1162879026,1146046802,574431315,604438587,546376412,589439191,589505315,589508131,1413161504,5525065,182854674,420421834,922751532,-1861554140,1380983328,542331717,1128353875,1094852677,1330913362,1313817376,1431193940,3875397,184165441,741089482,609681425,545983236,-420994850,539107872,545857741,721934,185476196,608456003,-568269024,405044480,1126206219,539247693,539107559,550314018,-670162807,613941257,545983266,608456003]}]],[[{"sector":1,"length":512,"data":[-1761614048,689639208,-1994339040,79302176,740598272,237013259,2830,1092229632,1330913362,1313817376,1431193940,3875397,184165441,741089482,609681425,545983236,-420994850,539107872,545857741,721934,185476196,608456003,-568269024,405044480,1126206219,539247693,539107559,550314018,-670162807,613941257,545983266,608456003,1397051973,538976340,1279345184,1162038849,589692962,1230244492,-417311666,989860128,-2113235421,-417314528,541347872,1146101964,724969,177677135,-431415157,541478432,545857741,704014,178266988,1414416724,1411442464,542395977,1296113897,676614735,689122377,-1440514560,-685731574,589505056,992092195,-1207944375,-1861569501,572577568,589504544,589505315,572728110,-364490693,1380928833,742991956,1094396179,1414680397,321669416,1296120617,676614735,689056841,-1104953344,1226867466,-937178624,572559626,-318758368,-1861561821,1313415712,1163019604,1176523859,824201807,1162879026,1146046802,574431315,604438587,546376412,589439191,589505315,589508131,1413161504,5525065,182854674,420421834,922751532,-1861554140,1380983328,542331717,1128353875,1094852677,1330913362,1313817376,1431193940,3875397,184165441,741089482,609681425,545983236,-420994850,539107872,545857741,721934,185476196,608456003,-568269024,405044480,1126206219,539247693,539107559,550314018,-670162807,613941257,545983266,608456003]},{"sector":2,"length":512,"data":[-1408454145,1411419907,1226859880,1344294210,1869836901,543973742,1886220099,1919251573,1819231008,1633841775,215941234,546243510,1936876886,544108393,808463921,692267040,2037411651,1751607666,1112088692,1866670157,824209522,3225657,62917905,1766596751,1936614755,1293968485,1919251553,543973737,1917853741,1634887535,1917853805,1919250543,1864399220,1112088678,221577293,546243530,1752462657,757101167,1701594912,1394634350,1918989684,1631854708,1667851378,222756971,546767823,977749331,253794336,1125482,64228696,1347240275,-417053364,575622690,-569548288,237013251,1946158066,1392764941,1280331073,585573445,575882585,-233988352,-585053949,287361082,-1086713300,739184416,547371537,-1069930481,371247674,974327596,1226973329,2248002,66850242,739778762,288099343,572559674,1936876880,1818324591,1836008224,1702131056,-285203854,-1090255347,738856736,550124049,439093775,-1858465492,680984352,-383134449,353315030,701304620,680984553,2734095,68161060,185540810,288102956,-14642886,-1290852202,539158825,538976288,1329799200,1112690508,538989121,538976288,-1761613534,699600680,437144064,253807108,739912716,546388497,254318335,-689362509,739577640,-383180785,254318335,2130717107,-905698290,739053344,974203930,-1761664879,699600680,538977001,1700143136,1869181810,774971502,538980400,572530720,680984553,2732815,70127269,235872458]},{"sector":3,"length":512,"pattern":538976288,"data":[288102956,-14642886,-737204074,685173033,254547215,-1496627,-1106302826,249102377,549389368,288100111,253807162,739781649,546388497,692267042,1886339872,1734963833,1226863720,1126190402,544240239,825768241,252510242,549389378,288099855,253807162,739781655,546388497,1701990434,1931506547,1701011824,1918984736,544175136,1953394531,1702194793,253952034,545981516,-420994850,539107872,545857741,281614,72748848,608456003,-568269024,1611614464,1126206212,539247693,539107559,550314018,2114855049,258277380,545981546,608456003,-14620896,453978262,550314025,-770826103,258932741,545850484,284174,75370363,739778751,12597777,76025731,14491849,76681101,739320008,261488658,547357852,-1610602481,-1090214385,288100640,-1341151744,-1241464828,-2113619441,-417314528,-870313696,-989849568,-2113616881,333924896,253807648,265486347,550110414,-347526070,1239318,81268725,742990015,546388553,254318335,-12899877,-619763562,-1761658071,702222120,268238907,545457378,268763210,545457388,269484105,550110454,304876559,1055488,253804293,1125391,84545612,1646403729,538995564,1702194274,1852991264,2036539424,1914728033,538993765,543646061,1852989984,1768453920,992109940,336615168,253807109,1190925,85856354,252649663,-1828712148,-1861933040,538976800]},{"sector":4,"length":512,"data":[538976288,538976288,3875360,87167139,541663362,537993447,1581260,87822515,-414572414,-870314481,1445664,88477889,743055562,-384373943,283574290,549389648,739895625,974776649,-1761664879,702222120,680984379,992598799,254318335,3877339,89788655,4857987,90444023,4792451,91099394,386867402,218108460,-1090160623,739184416,289210385,546375042,1918985250,1735139435,1814066280,544499815,1952999276,1751608352,1735139444,2032170088,538995813,578055785,290062395,550110604,304879631,1426067756,-1090152943,739184416,293994513,546375072,1701996322,1818370169,1730176373,538996338,1851881827,1684369952,1634541600,538976359,1998594080,1702127976,-1879033054,-905598447,304878112,-1273909504,572559621,1936028240,1397039219,1701519427,1869881465,1769497888,3875444,96342470,-388095861,680984550,-852944113,237013280,-738196034,973457425,1162140047,1163150668,-770581504,287361029,-602806784,404799237,-335539924,-1073355247,-267250944,1394641669,1280331073,585573445,575882585,-31404768,1394745484,1280331073,740447045,256028,437911552,1936028240,1397039219,1701519427,1869881465,1769497888,3875444,96342470,-388095861,680984550,-852944113,237013280,-738196034,973457425,1162140047,1163150668,-770581504,287361029,-602806784,404799237,-335539924,-1073355247,-267250944,1394641669,1280331073,585573445,575882585,-31404768,1394745484]},{"sector":5,"length":512,"data":[808464435,1296388640,1701336096,1296189728,1919242272,1634627443,1866670188,1953853549,1293972069,1667855221,1919111968,225209455,825242378,1163010096,1700143181,1869181810,774971502,673198128,1866672451,1769109872,544499815,541934153,1886547779,943272224,856296753,540029488,541934930,1701013836,1684370286,1952533792,1634300517,539828332,1735357008,544039282,1886351952,2037674597,543584032,223167049,858796810,1094983728,757088596,1277307954,1967333473,1634885987,543254627,1699553325,1633905016,1866866798,1394633580,577203823,808651277,1142960180,541152321,824980020,824979500,741487660,741354545,842279985,808202540,875311404,741420087,741682224,824979765,858533932,741487660,741354545,842279985,808202540,168636716,808792115,1413563424,842276929,808202540,875311404,741420087,741682224,824979765,892088364,741356332,741354545,808660017,808202540,858534188,741420085,741551152,824981300,824979500,808651277,1142960182,541152321,824981300,824979500,741749804,741354545,909388849,808202540,875311404,741420084,741420080,824980532,824979500,741487660,741354552,842279986,808202540,168636716,808923187,1413563424,842276929,808202540,875311404,741420082,741420080,824981044,892088364,741946412,741354545,842279987,808202540,875311404,741420082,741420080,824980020,824979500,808651277,1142960184,541152321,824981044]},{"sector":6,"length":512,"data":[892088364,741946412,741354545,926100533,808202540,858534188,741420087,741420080,824979507,858533932,741618988,909454386,892088876,741485620,841757237,808651277,1142960185,541152321,841756981,741946412,926166066,168638508,808464691,1413563424,825040961,221326636,824973834,824979500,808651277,1142960184,541152321,824981044,1735357008,544039282,1886351952,2037674597,543584032,223167049,858796810,1094983728,757088596,1277307954,1967333473,1634885987,543254627,1699553325,1633905016,1866866798,1394633580,577203823,808651277,1142960180,541152321,824980020,824979500,741487660,741354545,842279985,808202540,875311404,741420087,741682224,824979765,858533932,741487660,741354545,842279985,808202540,168636716,808792115,1413563424,842276929,808202540,875311404,741420087,741682224,824979765,892088364,741356332,741354545,808660017,808202540,858534188,741420085,741551152,824981300,824979500,808651277,1142960182,541152321,824981300,824979500,741749804,741354545,909388849,808202540,875311404,741420084,741420080,824980532,824979500,741487660,741354552,842279986,808202540,168636716,808923187,1413563424,842276929,808202540,875311404,741420082,741420080,824981044,892088364,741946412,741354545,842279987,808202540,875311404,741420082,741420080,824980020,824979500,808651277,1142960184,541152321,824981044]},{"sector":7,"length":512,"data":[-1408454145,1411419907,1226859880,1344294210,1869836901,543973742,1886220099,1919251573,1818313504,1633971813,215941234,546243510,1936876886,544108393,808463921,692267040,2037411651,1751607666,1112088692,1866670157,824209522,3225657,62917905,1766596751,1936614755,1293968485,1919251553,543973737,1917853741,1634887535,1917853805,1919250543,1864399220,1112088678,220397645,546767823,977749331,253794336,1125482,64228661,1347240275,609437004,1330520807,222232610,545850334,258574,65539412,1347240275,609437004,572581664,575882585,-233996032,-585053949,287361082,-1086713300,739184416,974203921,672080032,-902119366,254547488,546388499,1296189730,228851746,550110204,202320920,-1858465492,1699750432,1852797810,1126198369,1970302319,577922420,101568768,253804292,974203914,168763594,288102956,-14642886,-720426858,685173033,254547215,-1496627,-1206966122,235274281,550110224,439094031,-1858465492,680984352,-383143153,538976290,1126178848,1313164353,542261572,538976288,-383639520,254318335,738208179,-905700850,738987808,974203930,-1761664879,699600680,254334697,537865237,-1761613527,699600680,604922112,253807108,739912717,546388497,254318335,585705907,538976288,1936876886,544108393,808463921,538976288,-1498592,-1290852202,243728425,550110254,439094799,-1858465492,680984352,-383134705,353315030,701304620,680984553,2735631]},{"sector":8,"length":512,"data":[70782651,252649663,-902164180,739315488,974203928,673325201,1126181187,1920561263,1952999273,1296189728,1919894304,959520880,2240824,71438063,235872447,-902164180,739708704,974203928,1344413841,1936942450,1634759456,1646290275,1948283489,1868767343,1852404846,2254197,72093445,551428235,572581608,550314018,1275994249,252837892,1296237654,-417323964,721477152,-1962647537,1145914144,552017956,539107362,545857741,294414,74059591,1296244875,-417323964,680984352,539564815,545857741,586254,74714961,1443766409,257818628,549389438,288100111,-1946107846,-2046523377,673467680,740889359,1414418253,321397832,689114924,1095650604,673465677,740887567,1398358340,688656168,-1508916736,1095650564,673465677,-417322734,1243619872,1096109633,572545362,1293957664,1162690894,689121316,572581664,1380074822,1498562901,-134208992,1292155407,1162690894,689186852,572581664,1095573536,541606738,975184416,1095650592,673465677,-417322731,538976800,1230131265,572530764,-837800448,1095650564,673465677,-417322730,538976800,1497451808,572530720,1293957664,1162690894,689383460,572581664,1430921248,538985806,1677730336,1292165648,1162690894,689448996,572581664,1430921248,538990924,975184416,1095650592,673465677,-417322727,1092624928,1398097749,572530772,-166684160,1095650564,673465677,-417322726,1163076128,1296389200,575817026,1293957664,1162690894]}]],[[{"sector":1,"length":512,"data":[168765476,572581673,1413697312,1380270671,-805297632,1292175888,1162690894,185542692,572581673,1448037920,1161973061,975184466,1095650592,673465677,-416740337,1162093088,1112360259,572543557,672208384,1497449477,539500627,-417322734,538906400,1094983738,673207129,539562784,470753511,1142962720,542333249,689184808,253814560,540680223,1398358340,354428960,552017961,1543511567,1141193745,542333249,689315880,253814560,540680223,1398358340,387983392,552017961,975183375,1497449504,539500627,-417322728,538906400,1094983738,673207129,539564320,521085159,1343332864,1497449477,539500627,-417322726,538840864,1094983738,673207129,539560463,521085159,1142962720,542333249,688590632,253814560,540680222,1398358340,202319904,552017961,-1308614897,-2046467055,1095063840,254301010,-134207212,1493528081,1397899589,304097312,552017961,540680213,1380009305,539500627,-417322733,975181344,1095063840,673207122,539563040,538386663,1163468858,542331457,689250344,287368992,-2112733696,1095063813,673207122,539563552,538124519,1163468858,542331457,689381416,337700640,1495284256,1397899589,404760608,552017961,540680213,1380009305,539500627,-417322727,1358960160,1493538322,1397899589,438315040,552017961,309133329,609027488,539562536,-1761664793,700452648,254334697,-804312029,313786409,609486250,572581664,538976288,-1761613534,701108008,1293957664]},{"sector":2,"length":512,"data":[689121316,680984551,-383137265,1424565332,609544484,-383494935,1424565332,609544484,673467706,1306994964,689121316,-938283008,539251717,685121767,-804312043,-1761613527,702156584,1293957664,689252388,680984551,-383137265,1424565332,609544484,-383494935,1424565332,609544484,-602729216,1226867205,371255072,253807648,609040915,539576616,609034471,350898472,545471017,320798793,550110711,1190932,100143926,1159864465,1380275278,1411395616,1313153103,1358963268,-1861879533,1213473312,1380982853,1095911247,975318605,739385546,326828050,548406778,1159864453,1380275278,1095063840,824713298,758200377,959985969,1027416105,992092222,2380377,100930457,1381572747,807593764,538976290,539020576,538976288,-233955191,330760200,545981966,-417050023,943272226,-853532111,-414033632,545864210,442894,102241237,1381572747,824370980,573716537,1495321888,974382930,-1039261559,334692358,545981986,-417050023,943272226,-853532109,-414033632,545864212,442894,103552017,1381572747,824370980,573847609,1495321888,974514002,-1039261559,338624518,545982006,-417050023,943272226,-853532107,-414033632,545864214,442894,104862797,1381572747,824370980,573978681,1495321888,974645074,-1039261559,342556678,545982026,-417050023,943272226,-853532105,-414033632,545864216,442894,106173577,1381572747,824370980,574109753,1495321888,974776146,-1039261559]},{"sector":3,"length":512,"data":[346488838,545982046,-417050023,943272226,-853532103,-414033632,545864218,442894,107484336,572661905,1913966080,572559622,1380009305,1398099232,1161961556,1310736672,1161973077,-385867182,-1861845996,1380327968,824200527,540096569,824201044,775501881,351404066,546375302,151003682,-1861840875,1313153568,542262612,1330913328,1145980192,354287650,546375322,1162368034,1330794528,1296126535,654320174,-1861835755,2236960,112071984,572661905,-1206568448,237013254,1275069946,1493615125,1495328544,1397899589,693262632,-871012352,1495304966,552018002,537378844,1094983885,321409881,487581481,-703233024,1495304966,552018002,537379868,1094983885,321409881,487581481,-367686400,572559622,364380194,546375412,1397706786,1330205769,1095770190,542262608,541347393,1397051984,1347625043,541410113,575816002,-32121088,572559622,1313163351,1162368032,1296189728,1380274208,1095651155,1329799244,1414877261,2249285,117970424,1344413841,1414416722,1226854981,1163010131,576275521,303431936,572559623,369754146,546375452,536879650,-1962465770,-400499168,572661990,-1994339040,119934496,806759680,1145914119,552017956,373686494,545982266,608456003,572581664,-853532128,237013280,1644169048,-1962458090,1145914144,552017956,254318335,-853530341,237013280,1811941618,-1996009962,120589856,1477876992,572559623,1313428048,1196312916,1279345440,1094995525,1329995858]},{"sector":4,"length":512,"data":[1213472850,1163468869,539775553,1381579554,740440868,381681698,546375522,1163022370,1411404627,1159742792,1260405587,1411406149,1480925263,573461577,1813434368,1344307719,287368992,320916512,1981210112,-14639865,252651670,285227817,-1660452841,538976800,538976288,1126703136,1329799209,1230133584,542394439,541934153,1347571523,1413567055,542003017,825768241,387907618,547161994,254318335,3877138,127145787,1263739010,317149257,304139296,572693818,1394639674,5261643,127801175,-1761664867,688787240,680984379,992549647,254318335,3877189,128456582,539107485,1411391520,1226851656,1344294210,1330860613,541868366,1347243843,1380275285,1279345440,1094995525,-1577049518,-1660440041,680984352,992546319,254318335,-12900069,1158621334,-1006617815,-1660437481,538976800,538976288,538976288,538976288,538976288,-1139000542,1381624071,-971513856,1394639367,-414168757,550248466,580729363,545471010,1346980691,-803733504,1293976071,673244960,-347018990,-870307563,-384554976,689302352,320917280,-635954176,1394639367,-414168757,550248466,580729363,545471010,1346980691,-468174848,-14639865,235874454,-1761658071,689639208,680984379,992560399,-300389632,572562695,538976288,572530720,1095650619,673465677,574302541,538976288,538976288,992092192,1296125517,1294476357,2691817,133699712,-1761664867,689639208,680984379,992560655,35164416,1226867208]},{"sector":5,"length":512,"data":[304146208,253807648,413728787,1330448396,608719950,1227625000,552017961,1227367501,415301673,1330448406,608719950,1227625256,552017961,1227367501,415825961,545458208,417661001,545392682,1346980691,-870313241,-1657138656,-2093342174,1229673248,419102800,545392692,552017994,550248466,1398358340,2706728,138287393,552017995,1256806696,539562730,974659827,552017996,673744383,-364189351,418130194,424607785,-2080438200,1313819944,673466452,-384619502,689236812,1273565996,539563755,-2080431897,680787752,321661258,2691884,139598167,4857987,140253557,552018009,686381352,1398358340,539577640,689447155,552804393,428671000,545392742,552017994,550248466,1398358340,317279528,431161385,541788272,1495802087,317344489,552804393,541866520,-2046877465,-380032984,689105482,2693356,142219745,1294500863,1213484623,739452964,-347281133,321661204,384519145,552017961,-14121985,692725907,321655596,434700329,545458308,436797514,542705806,1495802087,1094985961,1294488409,539562729,689447155,552804393,442499096,547162264,538976290,1394614304,538988117,542003021,1163220000,1163337760,1411391556,538989896,541676102,1413567264,538976288,1431511072,1293951054,538988111,541414740,1145394976,1213472800,1176510549,538986834,575947091,-1575315456,1226867208,304146208,253807648,547174931,538976290,1295720992,1213484623,739387428,574302537]},{"sector":6,"length":512,"data":[572530720,1313819963,673466452,692661267,-1239764736,-568292600,-14620896,453978262,550314025,-233955191,448331784,545458368,450560073,545392842,1346980691,-870313241,-1657137888,-2093342174,1229673248,540680272,5054595,148773629,1263739010,317149257,354470944,572693818,1394639674,542132555,545464378,455540816,545982706,1347240275,609437004,572581664,575882585,-31404768,1394745484,1280331073,740447045,256028,150739767,974201032,739778751,12597777,437911552,545392842,1346980691,-870313241,-1657137888,-2093342174,1229673248,540680272,5054595,148773629,1263739010,317149257,354470944,572693818,1394639674,542132555,545464378,455540816,545982706,1347240275,317279528,431161385,541788272,1495802087,317344489,552804393,541866520,-2046877465,-380032984,689105482,2693356,142219745,1294500863,1213484623,739452964,-347281133,321661204,384519145,552017961,-14121985,692725907,321655596,434700329,545458308,436797514,542705806,1495802087,1094985961,1294488409,539562729,689447155,552804393,442499096,547162264,538976290,1394614304,538988117,542003021,1163220000,1163337760,1411391556,538989896,541676102,1413567264,538976288,1431511072,1293951054,538988111,541414740,1145394976,1213472800,1176510549,538986834,575947091,-1575315456,1226867208,304146208,253807648,547174931,538976290,1295720992,1213484623,739387428,574302537]},{"sector":7,"length":512,"data":[-1408382977,1411419907,1226859880,1344294210,1869836901,543973742,1886220099,1919251573,1937067296,-184523927,-1895582195,1919243808,1852795251,808333600,1126703152,1886339881,1734963833,1226863720,1126190402,544240239,825768241,-1072814336,1277202179,1852138345,543450483,1702125901,1818323314,1344285984,1919381362,1344302433,1701867378,544830578,1226860143,956321090,-1761358066,1195725600,546840634,288123407,-737260288,1296126723,1397050448,552017956,575622690,-569485568,237013251,1811940338,1392764942,1280331073,539251525,1495408871,2249541,66195097,987570377,739320008,549403154,288100111,-1606807252,975703840,550124224,319761430,572559674,575488585,-66143232,404802051,738987820,546388497,1919242274,1634627443,1866670188,1953853549,2257509,67505897,168763583,-902164180,738856736,974203930,-1761664879,701828904,254334697,-854643691,-1761613527,699928360,269426176,253807108,739912715,546388497,254318335,585705907,538976288,538976288,1230198093,538976323,538976288,-1498592,-1290852202,256114729,550110234,439094287,-1858465492,680984352,-383143153,353315030,689966892,680984553,2732815,69472121,219095242,288102956,-14642886,-1290852202,539158825,1444945952,1769173605,824209007,540028974,538976288,-1761613534,699600680,772775680,253807108,739912718,546388497,254318335,-689362476,739577640,-383136497,254318335,-754964034]},{"sector":8,"length":512,"data":[-1090242545,739184416,550124049,405541135,-1858465492,1126703648,1866670121,1769109872,544499815,541934153,1886547779,943272224,117449265,-1090239984,739118880,550124049,405542671,-1858465492,1917854240,544437093,1667330163,1633820773,1869881458,1852793632,1970170228,486548069,-1962652656,-400499168,572661990,-1994339040,72093216,1443899904,1145914116,552017956,272761054,545981536,608456003,572581664,550314018,1443766409,274595844,545981546,608456003,-14620896,453978262,550314025,974004361,276299783,545981556,608456003,552003616,539107362,545857741,284174,74780806,547823765,2081300617,278003716,-1812069258,1718428192,278659106,545850487,294158,75239590,2098077864,280231940,546636925,545857703,14,75370702,739320008,547371538,-1086707697,739184416,974269458,284885184,550110344,405540623,-1858465492,757080608,757935405,1931488557,1667591269,1852795252,757932147,757935405,671097389,-905670127,739249952,974203928,539107473,1095576897,541606738,1210926368,1380928853,759767072,1430995283,2244946,77336917,286204106,288102444,572559674,1395474976,1397899604,759570464,541545794,1243619360,1431061037,572530757,-1508802048,253807108,739781650,546388497,759373858,1414680390,1193287769,1347375149,538976288,1129524555,1397050433,296943650,550110375,405541647,-1858465492,1142956576,1413564461,538976288,1094987080]}]],[[{"sector":1,"length":512,"data":[542721102,1129530656,1497713440,1230521645,-1107287468,-1090211823,739184416,299302929,545391802,538044233,252649676,1243644474,-870313497,-100656864,-905657327,1256789536,1240012332,288101355,-14642886,-619763562,-1761658071,702353192,302383163,545457358,545471050,304021577,545391832,538044233,202318028,1243644474,-870313497,1140856096,-1962614254,333924640,1226895136,-283109401,451365152,1226895136,537726951,545857741,325134,82580069,-384425782,-384226230,974383945,-1761664879,689966888,680984379,992599567,-166563584,1243644676,1226867514,1212160,1243644421,-870313497,-1426056672,-905639406,1256789280,-1086712532,288101664,-14642886,-586209130,-902153431,1256789280,975441708,252649663,-922742484,-1861938158,680984352,992599311,354467642,-1858465236,680984352,992599311,504549632,1243644677,672325888,354467589,-902163924,355210528,840105472,1226867205,-870313497,975179552,-1761664879,702222120,545471035,320012361,546374972,254318335,976955869,219095242,805311788,-2113583597,300370208,253807648,546388512,254318335,976955867,4792451,89133916,-1761664879,702353192,549403195,974662673,743252141,743386190,545667664,1477388365,676277289,2704911,89789326,-414637950,550248472,1295669263,539576616,488644839,-2045562061,-317511445,267129384,-316069620,401230120,545471017,329973833,545391972,538044233,974594252,692660301]},{"sector":2,"length":512,"data":[471918368,-2093318145,-1207940832,1325755923,539562280,1122535,91755484,655304783,974579497,672081999,974710569,688859215,974776105,705636431,1763113,92410884,722413647,168814377,254299962,266807596,676280843,-416731889,1329204495,690884392,921575,93066284,789522511,252700457,254299962,266807600,676280848,-416730865,1329205519,691146536,1183719,93721684,856631375,319809321,254299962,266807604,676280853,-416729841,1329206799,691408680,1511399,94377084,923740239,403695401,254299962,266807608,676280857,-416728817,1329208079,691670824,1839079,95032484,990849103,487581481,254299962,266807612,676280862,-416727793,1329209103,691932968,2101223,95687884,1057957967,554690345,254299962,266807616,676280867,-416726769,1329210383,692195112,2428903,96343284,1125066831,638576425,254299962,266807620,676280871,-416725745,1329211407,692457256,2756583,96998654,1577984137,352845830,545719762,4926538,98309415,608456003,-568269024,1126206266,-417053619,-853532126,237013280,1023411716,-1962547691,1145914144,-1761614044,689639208,-1910452960,-267040768,253794309,1125482,100275534,358613135,545981956,552017994,538972906,9314509,101586285,552018001,692725839,404064000,1243646726,541069286,-397795089,-853530865,237013280,-1107294666,-1962532331,371771424,-399945428,538972134,549396685,974662673]},{"sector":3,"length":512,"data":[185540810,-1858449108,680984352,992546319,253804346,974203919,906895497,366936070,549389868,288100111,404802106,-1858449108,680984352,992546319,287358778,452991020,-1006225898,1244155168,978005033,-414572405,552476689,538109771,545857741,973488142,1406766906,542132555,1415071054,1380927008,1096045344,1413563203,654331732,-1006224618,2147425312,1090523692,-1962524650,266750496,552542272,655353930,-1994339040,97652256,1242984960,-937391354,1361843752,552017961,-853532657,253804320,974203919,739778762,546388561,254318335,976955680,-770826103,378798085,549389908,288100111,253807162,978398219,-1761664879,702222120,545864251,381454,106829509,353312970,-1858464212,538976800,538976288,538976288,538976288,538976288,538976288,538976288,538976288,992092192,1746331904,253807110,974531605,1159864465,1380275278,1279611680,1230259013,1025527375,992099901,1914109696,-568292602,552003616,-853532126,237013280,469763698,1124498455,-417053619,545995486,608456003,539108071,545857741,424974,109451063,1296244875,-1629116,453978262,-853532631,237013280,1526728506,-1962504169,1145914144,1092806436,550314018,552019027,1380011298,572540995,237013306,2130708202,-1962503913,1145914144,1629677348,550314018,552019027,1380011298,572540995,237013306,-1560279318,-1962501609,1145914144,1109583652,550314018,552019027,1096045346,572543826,237013306]},{"sector":4,"length":512,"data":[-956299542,-1962501353,1145914144,1646454564,550314018,552019027,1096045346,572543826,237013306,-352319766,-1962499049,1145914144,1126360868,550314018,552019027,1380927010,572545364,237013306,251660010,-1962498792,1145914144,1663231780,550314018,552019027,1380927010,572545364,237013306,855639786,-1962496488,1145914144,1143138084,550314018,552019027,1413564450,572530720,237013306,1459619562,-1962496232,1145914144,1680008996,550314018,552019027,1413564450,572530720,237013306,2063599338,-1962493928,1145914144,1159915300,550314018,552019027,1297434658,572543567,237013306,-1627388182,-1962493672,1145914144,1696786212,550314018,552019027,1297434658,572543567,237013306,-1023408406,-1962491368,1145914144,1176692516,550314018,552019027,1196769826,572530720,237013306,-419428630,-1962491112,1145914144,1713563428,550314018,552019027,1196769826,572530720,237013306,184551146,-1962488807,1145914144,1193469732,550314018,552019027,1347375138,572530720,237013306,788530922,-1962488551,1145914144,1730340644,550314018,552019027,1347375138,572530720,237013306,1392510698,-1962486247,1145914144,1210246948,550314018,552019027,1312900130,572545348,237013306,1996490474,-1962485991,1145914144,1747117860,550314018,552019027,1312900130,572545348,237013306,-1694497046,-1962484967,1145914144,1227024164,550314018,552019027,1262572322,574706261,237013306,-1090517270,-1962484711]},{"sector":5,"length":512,"data":[1145914144,1763895076,550314018,552019027,1262572322,574706261,237013306,-486537494,-1962484455,1145914144,1243801380,550314018,552019027,1431061026,572530757,237013306,117442282,-1962484198,1145914144,1780672292,550314018,552019027,1431061026,572530757,237013306,721422058,-1962483430,1145914144,1260578596,550314018,552019027,1094931234,575882572,237013306,1325401834,-1962483174,1145914144,1797449508,550314018,552019027,1094931234,575882572,237013306,1493173994,-1996035814,107482656,-367362304,572559622,1127948832,992232525,992095522,-29744045,549265548,472654931,1093404404,-1996469172,-1945701350,1142982458,-31809792,1142983430,334161640,-1944007392,237013306,-1073740014,-2029582310,975459104,386867402,686363180,570425373,-1828722042,690246440,1305641,118299351,252649663,-1858464468,992236320,287358778,-520087508,-1928916454,97652256,471534080,-417049849,655304918,572531244,550124073,304879375,354467642,-1858465236,975459104,739319999,454295576,545851174,417294,120593178,457310337,545982266,1347240275,609437004,1163469543,-853532077,546111008,1296126754,1397050448,-400806878,458752003,549979972,974269457,739778751,974203921,8469184,196615045,1750343823,1112088677,1699749965,1852797810,1126198369,1970302319,544367988,1769174349,1666392163,1819045746,-1038372096,1444974347,1769173605,824209007,540028974,1126777640,1920561263]},{"sector":6,"length":512,"data":[1952999273,1296189728,1919894304,959520880,-452972232,-1895052261,1667845152,1702063717,1632444516,1769104756,757099617,1869762592,1835102823,1869762592,1953654128,1718558841,1296189728,-702802176,757105675,1176644658,1380273749,1293962305,1212371521,541478688,1095573569,1313818962,1163154501,1193291040,1330533711,1660953156,-2079596516,741815072,741354545,808660018,808202540,875312428,741551154,858534452,741422124,959654963,875311916,741551153,741551152,858534452,741618732,741354547,926100531,808202540,-1342164436,-2079593956,741356320,741354545,842279989,875311916,741551154,858534196,741946156,825502771,808203052,875311916,741551154,858534964,858533932,741815084,842279987,808203052,875311916,3353653,200547578,959717508,875312684,741551159,858535220,858533932,741946412,842345523,892089900,741551152,858536244,858533932,741553452,909454387,892089900,741551156,858534709,741356844,490995763,545524734,858536244,741815340,892611635,875311916,741551156,824979507,892088364,741487660,842279987,875311916,741551153,858536243,741422124,741354547,842279987,875311916,3353652,201858443,741351556,926100531,808202540,858534444,741420080,741682224,858534452,741487660,825502771,858534700,741551161,858534196,858533932,741487660,875834419,808203052,-788516052,-2079583715,741815072,892611635,808203052,875311916]},{"sector":7,"length":512,"data":[741551161,908866101,741356844,959720499,875311916,741551159,858535220,741553196,926166067,892089132,741551152,858534452,471727360,874546188,741551153,858534452,741618732,741354547,892611635,808202540,875311660,741944372,824980020,639502592,757105676,825044017,436207616,-2079583718,741815072,892611635,808203052,875311916,741354545,808660018,808202540,875312428,741551154,858534452,741422124,959654963,875311916,741551153,741551152,858534452,741618732,741354547,926100531,808202540,-1342164436,-2079593956,741356320,741354545,842279989,875311916,741551154,858534196,741946156,825502771,808203052,875311916,741551154,858534964,858533932,741815084,842279987,808203052,875311916,3353653,200547578,959717508,875312684,741551159,858535220,858533932,741946412,842345523,892089900,741551152,858536244,858533932,741553452,909454387,892089900,741551156,858534709,741356844,490995763,545524734,858536244,741815340,892611635,875311916,741551156,824979507,892088364,741487660,842279987,875311916,741551153,858536243,741422124,741354547,842279987,875311916,3353652,201858443,741351556,926100531,808202540,858534444,741420080,741682224,858534452,741487660,825502771,858534700,741551161,858534196,858533932,741487660,875834419,808203052,-788516052,-2079583715,741815072,892611635,808203052,875311916]},{"sector":8,"length":512,"data":[-1408382721,1411419907,1226859880,1344294210,1869836901,543973742,1886220099,1919251573,1852785696,7955819,62262774,1700143247,1869181810,774971502,673198128,1866672451,1769109872,544499815,541934153,1886547779,943272224,237502513,546243520,1701013836,1684370286,1952533792,1634300517,539828332,1735357008,544039282,1886351952,2037674597,543584032,5063241,63901242,1163075735,-1742718393,745148192,239861777,1095959508,1162629197,585573459,2248526,64884310,-233955191,241762307,1095959528,1162629197,585573459,575882585,-233925120,-585053949,287361082,-1086713300,739184416,974203921,672080032,-902119366,254547488,546388499,1296189730,247005218,550110204,202320920,-1858465492,1699750432,1852797810,1126198369,1970302319,577922420,101639680,253804292,974203914,168763594,288102956,-14642886,-720426858,685173033,254547215,-1496627,-1206966122,253427753,550110224,439094031,-1858465492,680984352,-383143153,538976290,538976288,1263423300,538990917,538976288,-383639520,254318335,1090529715,-905700849,738987808,974203930,-1761664879,699600680,254334697,537865237,-1761613527,699600680,604993024,253807108,739912717,546388497,254318335,585705907,538976288,1936876886,544108393,808463921,538976288,-1498592,-1290852202,261881897,550110254,439094799,-1858465492,680984352,-383134705,353315030,701304620,680984553,2735631,70782928]}]],[[{"sector":1,"length":512,"data":[252649663,-902164180,739315488,974203928,673325201,1126181187,1920561263,1952999273,1296189728,1919894304,959520880,2240824,71438340,235872447,-902164180,739708704,974203928,1344413841,1936942450,1634759456,1646290275,1948283489,1868767343,1852404846,2254197,72093720,-388095861,539108070,545857741,281614,72749093,608456003,-568269024,1611676928,1126206212,539247693,572661991,-1994339040,72748576,1779456256,1126206212,539247693,-1761664793,689639208,-1994339040,85069344,1947234816,1126206212,539247693,539107559,550314018,-2012340087,276561924,545850494,284174,76025992,1163075735,1173319,76681393,-14147445,269232279,-299882236,3148832,216459305,-853540816,1394644768,-1992669371,84610592,-1676623360,253796356,985676368,739516618,282263570,546374822,1280264226,1414078532,268444193,-1861963759,1331241504,1163011925,1414483488,1230198048,1411401550,1126188360,1380928591,1095911215,1128876112,1330454611,1330923854,1145118802,1163153473,2236754,79302990,1411522705,542329160,1196380752,541933906,1397052245,1095911200,1128876112,1312890963,1163010116,1380537681,1411404613,542392648,1346454593,777143636,293011490,546374852,1163022370,1411404627,1394623816,1162035536,1380008480,542069792,1414418243,1163218505,-2130697682,-1761292783,1195725600,-669936384,-568292604,572712680,-1994339040,81268256,-502160896,1145914116,552017956]},{"sector":2,"length":512,"data":[297402590,545981676,608456003,572581664,550314018,-502390647,299237380,545981686,608456003,-14620896,453978262,550314025,302915721,300875781,545981696,608456003,572581664,-853532128,237013280,-117439214,-1996158447,81923616,185729280,-585053947,202510080,-1491036923,237013280,469763343,-33223406,1881284755,2242097,84808230,336470153,305332229,549389583,288104207,-1778380500,-1861939182,1213473312,1344295753,1380405074,1377848641,1230328133,542328146,1096172609,1145389902,1396785696,757089097,1398087725,1329799237,1312902477,1109860420,1128878913,975316801,252649663,288100652,1226867258,-870313241,589831200,540705594,302915752,312737797,546637074,545857703,14,85136096,739320008,545995282,1347240275,609437004,1163469543,-853532077,579665440,1886216563,577987948,65543212,547437088,739778751,974203921,8469184,85201638,317587599,549389698,318242833,548210060,5892673,94376712,739385544,549403153,1190937,95032086,626073734,32775208,322699305,545654196,673526084,740922895,673526340,740922895,673526083,740935695,673526339,2738191,96342860,1313087622,472393035,2687276,96998230,-1811013491,325058567,546112978,455694,98308966,326369472,545654246,472393026,2687276,99619732,-414637950,550248467,973155356,1227367746,485156649,266944512,8600256,100275113,287843650,974382889]},{"sector":3,"length":512,"data":[304620866,-1055922391,68398848,-1157591290,1124470291,1846536024,-754925510,-1341770221,739321888,686434577,738275612,740935439,-335527380,-1341767661,739715104,686434583,254566671,304884163,4604460,105518087,254288048,689384631,823929066,-1022415871,739388457,469780034,-905554924,371987488,572559674,1802399556,2259301,106828850,739516618,-1858462449,1917067808,1919252073,340787234,550110815,254546703,579942937,1936028240,1884495987,543515489,3875360,106959982,336535754,974720812,1631724177,1869881458,1769435936,577266548,344719419,550110817,254547215,579942937,1701732716,538976371,538976288,3875360,107156650,386867402,974720812,1917854353,544437093,541283141,572530720,348651579,550110820,254547983,579942937,1696624500,544500088,538976288,3875360,107484400,-413589374,550248469,-819935473,974393120,-1945163600,-366388948,747376424,168814937,8600105,108139776,266819907,1480800873,6885351,108795173,254288048,688991332,1678715114,700911404,254324794,688991412,-1274074902,700911404,-2045427712,371247622,-1858463956,977556256,739647690,-1858461937,5067552,110105946,1139235139,974514777,1497571467,540807144,-1240588083,359661576,-1996618086,1480796192,693715756,1380008748,13052965,111416710,266819652,705685865,679870443,334203135,362872873,545392302,-14096551,367717256,538569513,2081366220,388026144]},{"sector":4,"length":512,"data":[-1206539008,471909382,304893472,-1038737920,-417054458,545995486,-1629119,453978262,550314025,537203214,-1742692038,745148192,545995281,1093178111,300296484,-1340027616,1480796192,693715756,1480796394,740036585,266950979,288106796,977682988,266819651,1480846076,545848890,743981864,740907331,626147651,-1002780884,751308576,373030930,545982156,350676825,-31404768,1143480456,693709912,1263420460,12987429,114693721,1480794251,542655719,-380034834,-404350705,-853518013,135007776,-535399424,1495304966,337702432,-31404768,254288008,689384588,2441772,116004506,548420227,743982120,-366380017,-380091352,254550031,288106901,977682988,-2045894519,379584518,12584692,117315246,572560126,860043347,383189026,-1828845816,827146786,1915825202,824929587,845427500,1145975122,1915843890,1815372850,1815180594,-67100111,-33091050,929309330,1684943186,1915909426,1815503923,1815246131,1832084529,824979757,2241388,119281446,1830982398,757870893,1815311665,1815241777,1916171571,1848796211,829567588,829175669,845951332,389808162,-1828845786,1916040482,1848730674,827470436,2241109,120592203,1294111486,757870891,1795170867,-33080809,1145184914,843329585,844444498,741420365,827076909,741420365,-1996479951,-33078249,1145184914,1378960435,1278301489,844251697,826552658,827666764,1310173696,580058631,1110590530,826552908,827666770,1380069708]},{"sector":5,"length":512,"data":[1144082994,1429294129,399179825,-1828845736,843334178,1144147010,1429295665,1110527025,827470418,827076932,-520081067,-1341693417,288100648,254339625,1007627304,1110191145,1813507584,546307591,304878120,402522153,545654646,626147651,58989608,404160553,-1979840640,304878120,254339625,755969053,1094921257,486548818,-1912108520,-1810357504,788578311,-33055208,810754706,1073750584,-33052648,1109532818,741617997,2242609,129112164,1294111486,757871147,1295536692,757870891,1295078705,724316459,841698609,3222828,129767559,1294111486,824979757,741419853,825052467,760033580,841821233,741420365,-1358945742,-33044968,860103314,861221196,741420365,1278362673,1278367025,1278362675,1295144241,757870893,-989846991,-33042408,860103314,894775628,741485901,573658419,-635906560,546307591,739577640,740888079,418250772,549914596,740626216,975768079,254288071,168766504,419823657,549914606,740626216,975768335,254288071,185543720,421593129,-1979840520,219097120,-366407380,741150504,740890895,625692228,35202816,1140887048,1393036313,1146349380,-902163735,739118880,546388503,1330594338,2236749,135666019,673221118,1496078404,1143532073,269478232,266950956,1143744793,2113938737,1141383193,1156012081,826554968,978970457,-413650364,266950724,429916177,-1979840470,1480861728,739315689,686434649,266950724,-380031969,740890895,2437700]},{"sector":6,"length":512,"data":[137632193,673221118,1126979651,686434649,266950723,1497574414,690753513,623985452,1041884416,545914376,-380091608,1126960911,686434649,266950723,1497574428,690753513,624050988,1209663744,1479623432,978863079,-413585085,1127897411,1139234866,252701016,1377445120,1344307720,-870311961,-819982048,974318112,-334305446,1357714216,827996713,1525289703,1545226752,545848840,1479623464,1496400684,826485801,-1996604891,1479689000,1496400684,843263017,443482149,-1996617626,826550304,826551384,1143744857,-29743823,843327624,826551384,1143744857,-1711266510,1124626458,1139234865,828042072,1496400954,1525373415,843266609,843310936,472443224,1139409187,-349611982,449773658,826542202,1480910680,976313067,-413585085,-380030653,-358936792,693711171,1144675051,1156012082,686381106,-369023460,693645892,-201303317,-32996326,1126703240,1126979633,740907313,975515971,1126729982,1126979634,740907313,2437699,143530777,673220862,743977284,693711172,623985708,680066618,743977540,693711172,624051244,-1743049728,253805576,-1996494555,751308779,8600085,144841534,-413589374,550248466,973590556,457834627,985663660,68034697,460259334,1297287350,-380808217,550124050,420424728,572559674,1802399556,1814067557,1936028527,-2130697695,-2113355749,317151520,471911456,-2093349912,-904164096,-1992638456,100929056,436207616,693711130,624051244,-1743049728,253805576]},{"sector":7,"length":512,"data":[808464435,1296388640,1701336096,1296189728,1919242272,1634627443,1866670188,1953853549,1293972069,1667855221,1919111968,225209455,825242378,1163010096,1700143181,1869181810,774971502,673198128,1866672451,1769109872,544499815,541934153,1886547779,943272224,856296753,540029488,541934930,1701013836,1684370286,1952533792,1634300517,539828332,1735357008,544039282,1886351952,2037674597,543584032,223167049,858796810,1094983728,757088596,1109535794,543520108,1970168132,1461740898,2054450273,544825888,777203274,1634890835,577991541,808651277,1142960180,541152321,875311668,741749804,959720500,875312172,741616697,741616688,841756982,841756716,741422636,741354546,943008822,808202796,892088876,741485624,741747760,875311668,741487660,856296756,540030256,1096040772,741749792,959720500,168637484,808857651,1413563424,959717441,808203308,908866604,741485617,741485616,841756982,908865580,741946668,741354546,959786034,808202796,875312684,741616689,875311412,741618732,825568308,892089388,221522993,925905674,1094983728,807420244,908866604,741485619,741485616,841757494,908865580,741946668,741354546,856296754,540031024,1096040772,741946656,741354546,825502774,875312172,741616689,875312180,741422380,825568308,808203308,908866604,741485619,741485616,841757494,908865580,741881132,741354546,943008818,168636972,809054259]},{"sector":8,"length":512,"data":[1413563424,741351489,842279990,168637484,808464691,1413563424,842276929,875312172,741616694,875313460,741618988,741354548,909519924,808202796,908866092,741485622,741747760,841756982,841756716,741422636,741354546,842279990,168637484,808530227,1413563424,842276929,875312172,741616694,875313460,741618988,741354548,909519924,808202796,168636972,808595763,1413563424,909516865,808202796,908867116,741485619,741485616,841757494,908865580,741618732,875834420,875312172,741616695,841756981,841756716,741422380,808203313,875311660,221523000,858862346,1094983728,874529108,741616697,824981557,856296758,540030001,1096040772,741618976,909388852,875312172,741878838,875312180,741422380,959720504,875312172,741616690,741485616,841757236,741487660,741354548,959720504,808202796,875311660,221391927,892416778,1094983728,807420244,875312684,741485625,221391920,909193994,1094983728,874529108,741485623,741747760,875313460,741881132,892089905,741616694,841759028,841756716,741749804,741354546,959720502,808202796,875311660,741485622,741747760,875313460,825428493,1142960183,541152321,824981045,875899958,875312172,741485625,741485616,841758516,908865580,741946412,741354546,926166066,808202796,875312684,741616697,824981557,856296758,540031025,1096040772,741750048,959720500,892089388,741616692,875312693]}]],[[{"sector":1,"length":512,"data":[741881132,825633844,892090412,741616697,841758773,741881132,943008818,892089388,741485622,741485616,875312181,942420012,825428493,1142960185,541152321,757870893,436866353,741946412,741354546,926166066,808202796,875312684,741616697,824981557,856296758,540031025,1096040772,741750048,959720500,892089388,741616692,875312693,808202796,168636972,808595763,1413563424,909516865,808202796,908867116,741485619,741485616,841757494,908865580,741618732,875834420,875312172,741616695,841756981,841756716,741422380,808203313,875311660,221523000,858862346,1094983728,874529108,741616697,824981557,856296758,540030001,1096040772,741618976,909388852,875312172,741878838,875312180,741422380,959720504,875312172,741616690,741485616,841757236,741487660,741354548,959720504,808202796,875311660,221391927,892416778,1094983728,807420244,875312684,741485625,221391920,909193994,1094983728,874529108,741485623,741747760,875313460,741881132,892089905,741616694,841759028,841756716,741749804,741354546,959720502,808202796,875311660,741485622,741747760,875313460,825428493,1142960183,541152321,824981045,875899958,875312172,741485625,741485616,841758516,908865580,741946412,741354546,926166066,808202796,875312684,741616697,824981557,856296758,540031025,1096040772,741750048,959720500,892089388,741616692,875312693]},{"sector":2,"length":512,"data":[808464435,1296388640,1701336096,1296189728,1919242272,1634627443,1866670188,1953853549,1293972069,1667855221,1919111968,225209455,825242378,1163010096,1700143181,1869181810,774971502,673198128,1866672451,1769109872,544499815,541934153,1886547779,943272224,856296753,540029488,541934930,1701013836,1684370286,1952533792,1634300517,539828332,1735357008,544039282,1886351952,2037674597,543584032,223167049,858796810,1094983728,757088596,1210199090,1919905141,1970369381,2036473957,1870021664,577462642,808651277,1142960180,541152321,858535732,841756716,741946412,926166065,808203052,875311660,741420089,858534197,841756716,741618988,909454385,808203052,892088876,221326388,892351242,1094983728,891306324,741551161,741485616,824981557,741422636,741354547,959786034,892088620,741551160,741485616,824979766,741946668,741354547,909454386,168636716,808857651,1413563424,875896897,808203052,892088876,741420084,858535477,841756716,741618988,959786033,808203052,892088876,741420086,858534965,841756716,741422380,856296753,540030768,1096040772,741946400,875312178,741551159,741485616,824981812,741815340,741354547,959720498,892088620,741551153,741485616,824980533,741750060,741354547,875899954,168636716,808988723,1413563424,909451329,808203052,892088876,741420088,858534198,841756716,741946668,943008817,808203052,908866092]},{"sector":3,"length":512,"data":[741420081,858536245,841756716,741750060,856296753,540031280,1096040772,741618976,741354547,875899954,892088620,741551161,741485616,824981300,741946412,875899958,875312684,942746679,825428493,1142960176,541152321,757870893,436866353,808203052,892088876,741420088,858534198,841756716,741946668,943008817,808203052,908866092,1735357008,544039282,1886351952,2037674597,543584032,223167049,858796810,1094983728,757088596,1210199090,1919905141,1970369381,2036473957,1870021664,577462642,808651277,1142960180,541152321,858535732,841756716,741946412,926166065,808203052,875311660,741420089,858534197,841756716,741618988,909454385,808203052,892088876,221326388,892351242,1094983728,891306324,741551161,741485616,824981557,741422636,741354547,959786034,892088620,741551160,741485616,824979766,741946668,741354547,909454386,168636716,808857651,1413563424,875896897,808203052,892088876,741420084,858535477,841756716,741618988,959786033,808203052,892088876,741420086,858534965,841756716,741422380,856296753,540030768,1096040772,741946400,875312178,741551159,741485616,824981812,741815340,741354547,959720498,892088620,741551153,741485616,824980533,741750060,741354547,875899954,168636716,808988723,1413563424,909451329,808203052,892088876,741420088,858534198,841756716,741946668,943008817,808203052,908866092]},{"sector":4,"length":512,"data":[808464435,1296388640,1701336096,1296189728,1919242272,1634627443,1866670188,1953853549,1293972069,1667855221,1919111968,225209455,825242378,1163010096,1700143181,1869181810,774971502,673198128,1866672451,1769109872,544499815,541934153,1886547779,943272224,856296753,540029488,541934930,1701013836,1684370286,1952533792,1634300517,539828332,1735357008,544039282,1886351952,2037674597,543584032,223167049,858796810,1094983728,757088596,1344416818,539062383,1936027463,1701344288,1634031392,543517811,1849761837,1836674671,577992047,808651277,1142960180,541152321,841758516,841756716,741815340,959720498,808202796,875311660,741485625,841756981,741618988,825568306,875311660,741485623,741485616,841757236,808651277,1142960181,541152321,841758516,841756716,741815340,959720498,808202796,875311660,741485625,908865845,741815340,741354546,842279986,875311660,741485623,741485616,841758516,741946412,856296754,540030512,1096040772,841756704,741946412,825568306,892088876,741485620,841756981,741815340,741354546,909454388,808202796,875312172,741485625,741485616,841757237,741422380,926166070,168636972,808923187,1413563424,741351489,959786036,808202796,892088876,741485625,841758261,841756716,741946668,943008818,908866092,741485617,841758773,741618988,741354546,959786036,808202796,168636972,808988723,1413563424,959782977]},{"sector":5,"length":512,"data":[892088876,741485622,741485616,841759029,741881132,875899958,808202796,892088876,741485617,841757237,841756716,741422380,842345522,808202796,892088876,221391924,959460106,1094983728,891306324,741485622,741485616,841758773,741946668,741354546,909454388,808202796,875312172,741485625,741485616,841757237,741422380,926166070,168636972,808464691,1413563424,825040961,221326636,875895306,808202796,892088876,741485617,841757237,841756716,741422380,842345522,808202796,892088876,221391924,959460106,1094983728,891306324,741485622,741485616,841758773,741946668,741354546,909454388,808202796,875312172,741485625,741485616,841757237,741422380,926166070,741485623,741485616,841757236,808651277,1142960181,541152321,841758516,841756716,741815340,959720498,808202796,875311660,741485625,908865845,741815340,741354546,842279986,875311660,741485623,741485616,841758516,741946412,856296754,540030512,1096040772,841756704,741946412,825568306,892088876,741485620,841756981,741815340,741354546,909454388,808202796,875312172,741485625,741485616,841757237,741422380,926166070,168636972,808923187,1413563424,741351489,959786036,808202796,892088876,741485625,841758261,841756716,741946668,943008818,908866092,741485617,841758773,741618988,741354546,959786036,808202796,168636972,808988723,1413563424,959782977]},{"sector":6,"length":512,"data":[808464435,1296388640,1701336096,1296189728,1919242272,1634627443,1866670188,1953853549,1293972069,1667855221,1919111968,225209455,825242378,1163010096,1700143181,1869181810,774971502,673198128,1866672451,1769109872,544499815,541934153,1886547779,943272224,856296753,540029488,541934930,1701013836,1684370286,1952533792,1634300517,539828332,1735357008,544039282,1886351952,2037674597,543584032,223167049,858796810,538976304,1413563424,841818177,2035491372,1869115501,589330798,1646276660,1867325561,1953653114,856296738,540030000,1096040772,741684512,875899954,892088876,741616692,841758005,741618988,875899954,892089388,741485621,841757749,741618988,842411060,808203308,168637484,808792115,1413563424,842408001,908866092,741485617,875313461,741946668,926231602,892088876,741616693,841758005,741618988,856296754,540030512,1096040772,741487904,842345524,808203308,892089388,741485620,841757237,741487916,875899956,892088876,741485618,875311669,741618988,842345522,168636972,808923187,1413563424,842342465,908866604,741616689,741616688,841756982,741946668,943008818,892089388,741485624,841758005,741618988,875899956,892088876,221391922,942682890,1094983728,891306324,741616688,875311157,875311148,741488172,825633842,908866092,741616689,875312182,741881132,825633844,168637484,809054259,1413563424,959782977,892089388]},{"sector":7,"length":512,"data":[741616692,741616688,841757238,741422636,825633842,908866604,741616692,875313205,741422636,856296756,540028977,1096040772,741946656,842411060,908866604,741485617,841759029,741815596,892677170,892088876,741616692,875312692,741815340,959720500,168637484,808530227,1413563424,808788033,892089388,741485618,841756725,741946412,926166068,892089388,741616692,741616688,942421046,825428493,1142960178,541152321,841758006,908865580,741619244,892742712,808202796,908867116,221785140,858862346,1094983728,908083540,741616693,875312182,741684780,875965492,908866604,221522997,875639562,1094983728,757088596,825044017,890898957,741485618,841756725,741946412,168637484,808792115,1413563424,842408001,908866092,741485617,875313461,741946668,926231602,892088876,741616693,841758005,741618988,856296754,540030512,1096040772,741487904,842345524,808203308,892089388,741485620,841757237,741487916,875899956,892088876,741485618,875311669,741618988,842345522,168636972,808923187,1413563424,842342465,908866604,741616689,741616688,841756982,741946668,943008818,892089388,741485624,841758005,741618988,875899956,892088876,221391922,942682890,1094983728,891306324,741616688,875311157,875311148,741488172,825633842,908866092,741616689,875312182,741881132,825633844,168637484,809054259,1413563424,959782977,892089388]},{"sector":8,"length":512,"data":[808464435,1296388640,1701336096,1296189728,1919242272,1634627443,1866670188,1953853549,1293972069,1667855221,1919111968,225209455,825242378,1163010096,1700143181,1869181810,774971502,673198128,1866672451,1769109872,544499815,541934153,1886547779,943272224,856296753,540029488,541934930,1701013836,1684370286,1952533792,1634300517,539828332,1735357008,544039282,1886351952,2037674597,543584032,223167049,858796810,1094983728,757088596,1495411762,1701539425,1866735717,1701602415,1092627744,2037280622,1937076077,168632864,808726579,1413563424,808788033,892089132,741551152,858534453,741618988,808791091,892089132,741551156,858534453,741684268,808791091,892089132,741551152,858534453,741618988,808791091,168637996,808792115,1413563424,959717441,808203052,168637228,808857651,1413563424,808788033,892089132,741551152,858534453,741618988,892677171,892089132,741551156,858534453,741356844,959720499,875311916,741551157,858535732,741946412,808791091,168637996,808923187,1413563424,808788033,808203052,168637228,808988723,1413563424,926163009,875312428,741420089,858535732,741684268,926166067,875311916,741551161,858533941,858533932,741684268,926166069,875311404,741551157,858534708,741487660,856296758,540031280,1096040772,741684256,741354547,856296755,540028977,1096040772,741815328,959720501,875311404,741551159,858535220]}]],[[{"sector":1,"length":512,"data":[741815340,959720499,892089132,741551152,858535732,741684268,808791091,875311916,741551161,858534453,741356844,856296758,540029233,1096040772,741356832,856296758,540029489,1096040772,741420320,168636717,540031258,1096040772,741684256,741354547,856296755,540028977,1096040772,741815328,959720501,875311404,741551159,858535220,1735357008,544039282,1886351952,2037674597,543584032,223167049,858796810,1094983728,757088596,1495411762,1701539425,1866735717,1701602415,1092627744,2037280622,1937076077,168632864,808726579,1413563424,808788033,892089132,741551152,858534453,741618988,808791091,892089132,741551156,858534453,741684268,808791091,892089132,741551152,858534453,741618988,808791091,168637996,808792115,1413563424,959717441,808203052,168637228,808857651,1413563424,808788033,892089132,741551152,858534453,741618988,892677171,892089132,741551156,858534453,741356844,959720499,875311916,741551157,858535732,741946412,808791091,168637996,808923187,1413563424,808788033,808203052,168637228,808988723,1413563424,926163009,875312428,741420089,858535732,741684268,926166067,875311916,741551161,858533941,858533932,741684268,926166069,875311404,741551157,858534708,741487660,856296758,540031280,1096040772,741684256,741354547,856296755,540028977,1096040772,741815328,959720501,875311404,741551159,858535220]},{"sector":2,"length":512,"data":[808464435,1296388640,1701336096,1296189728,1919242272,1634627443,1866670188,1953853549,1293972069,1667855221,1919111968,225209455,825242378,1163010096,1700143181,1869181810,774971502,673198128,1866672451,1769109872,544499815,541934153,1886547779,943272224,856296753,540029488,541934930,1701013836,1684370286,1952533792,1634300517,539828332,1735357008,544039282,1886351952,2037674597,543584032,223167049,858796810,1094983728,757088596,1176644658,1380273749,1293962305,1212371521,541478688,1095573569,1313818962,1163154501,1193291040,1330533711,168632900,808726579,1413563424,926097473,808202540,858534444,741420080,741682224,858534452,741487660,825502771,858534700,741551161,858534196,858533932,741487660,875834419,808203052,858534700,741420087,221391920,892351242,1094983728,857751892,741420080,741682224,858534452,741487660,825502771,858534700,741551161,858534196,858533932,741487660,875834419,808203052,858534700,741551159,858534452,858533932,741684268,856296755,540030512,1096040772,741946400,926166070,875311916,741551157,741551152,858536244,741487916,808791094,875311916,741551161,741551152,858534709,741750060,875899958,892089132,741551155,858533941,808651277,1142960183,541152321,858536244,741815340,892611635,875311916,741551156,824979507,892088364,741487660,842279987,875311916,741551153,858536243,741422124]},{"sector":3,"length":512,"data":[741354547,842279987,875311916,221457460,942682890,1094983728,807420244,858534700,741420087,741485616,824979507,892088364,741487660,842279987,875311916,741551153,858536243,741422124,741354547,842279987,875311916,741551156,221457456,959460106,1094983728,857751892,741551159,858535220,858533932,741946412,842345523,892089900,741551152,858536244,741815340,892611635,875311916,741551155,858535732,741356844,842279987,168637228,808464691,1413563424,825499713,875311916,741551154,858534964,858533932,741684268,741354545,875834418,875313452,221326386,825307914,1094983728,757088596,825044017,739904013,858535220,858533932,741946412,842345523,892089900,858534196,858533932,741487660,875834419,808203052,858534700,741420087,221391920,892351242,1094983728,857751892,741420080,741682224,858534452,741487660,825502771,858534700,741551161,858534196,858533932,741487660,875834419,808203052,858534700,741551159,858534452,858533932,741684268,856296755,540030512,1096040772,741946400,926166070,875311916,741551157,741551152,858536244,741487916,808791094,875311916,741551161,741551152,858534709,741750060,875899958,892089132,741551155,858533941,808651277,1142960183,541152321,858536244,741815340,892611635,875311916,741551156,824979507,892088364,741487660,842279987,875311916,741551153,858536243,741422124]},{"sector":4,"length":512,"data":[808464435,1296388640,1701336096,1296189728,1919242272,1634627443,1866670188,1953853549,1293972069,1667855221,1919111968,225209455,825242378,1163010096,1700143181,1869181810,774971502,673198128,1866672451,1769109872,544499815,541934153,1886547779,943272224,856296753,540029488,541934930,1701013836,1684370286,1952533792,1634300517,539828332,1735357008,544039282,1886351952,2037674597,543584032,223167049,858796810,1094983728,757088596,1394748466,1397899604,1145979168,1381258016,1397051465,1380927008,1380275781,1394617632,1095980367,168632864,808726579,1413563424,875896897,892089900,741747764,858534453,741422380,825568307,892089900,741551152,858534197,741422380,808203825,892088876,221457456,892351242,1094983728,891306324,741551153,908865845,741356844,825568307,168637228,808857651,1413563424,875896897,892089900,741551153,858534965,741487916,875311665,741747769,741551152,858536244,741946412,942943286,875311916,221457465,925905674,1094983728,874529108,741747769,858535988,741946412,856296755,540031024,1096040772,741487904,808203825,892088876,741551153,858536244,741422380,875899955,892090668,741944374,858535477,741946412,808203825,892088876,221654068,959460106,1094983728,891306324,741747764,858534453,741422380,825568307,892089900,741551152,858534197,741422380,808203825,892088876,741551152,858534197,741422380]},{"sector":5,"length":512,"data":[808791094,740307756,858534197,825428493,1142960176,541152321,858534453,741422380,959720499,875312428,741420086,824981812,926166066,808203820,875311916,741551159,908867380,741749804,926166067,892089132,741747760,858536244,741815340,856296755,540029233,1096040772,741946656,808203569,875311916,741551159,858536244,741422380,875899955,808202540,875311660,741551159,858536244,741422380,875899955,808202540,875311660,741551154,892089396,825428493,1142960178,541152321,824979765,741946412,875311665,221326391,858862346,1094983728,757088596,825044017,739904013,856296755,540029233,1096040772,741946656,808203569,875311916,741551159,858536244,741422380,892088876,221457456,892351242,1094983728,891306324,741551153,908865845,741356844,825568307,168637228,808857651,1413563424,875896897,892089900,741551153,858534965,741487916,875311665,741747769,741551152,858536244,741946412,942943286,875311916,221457465,925905674,1094983728,874529108,741747769,858535988,741946412,856296755,540031024,1096040772,741487904,808203825,892088876,741551153,858536244,741422380,875899955,892090668,741944374,858535477,741946412,808203825,892088876,221654068,959460106,1094983728,891306324,741747764,858534453,741422380,825568307,892089900,741551152,858534197,741422380,808203825,892088876,741551152,858534197,741422380]},{"sector":6,"length":512,"data":[808464435,1296388640,1701336096,1296189728,1919242272,1634627443,1866670188,1953853549,1293972069,1667855221,1919111968,225209455,825242378,1163010096,1700143181,1869181810,774971502,673198128,1866672451,1769109872,544499815,541934153,1886547779,943272224,856296753,540029488,541934930,1701013836,1684370286,1952533792,1634300517,539828332,1735357008,544039282,1886351952,2037674597,543584032,223167049,858796810,1094983728,757088596,1294085170,1667856485,1210084961,1142977633,1701015137,1411394848,1768186226,1852795252,572550241,808651277,1142960180,541152321,841757237,741815596,741354546,842345522,892088876,741485623,741485616,841757237,741815596,741354550,842345524,892088876,741485623,841759029,741815596,909454386,168637484,808792115,1413563424,926228545,892088876,741485625,741878832,841757237,741750060,741354546,842345522,892088876,741485622,741485616,841757237,741750060,741354550,842345524,168636972,808857651,1413563424,909451329,892088876,741485623,841758261,741618988,909454388,892088876,741485623,741747760,841757750,741553708,875965490,908866092,741485617,841756726,741422636,856296754,540030768,1096040772,741815584,909454386,892088876,741485623,841757237,875311148,741946412,808791090,892088876,741485618,841757749,741750060,926231602,892088876,741485625,841756982,808651277,1142960184,541152321]},{"sector":7,"length":512,"data":[841757238,741946668,741354546,842411060,908866092,741485617,841757238,741946668,943008818,892088876,741485625,841758261,741684524,909454386,892088876,221391922,959460106,1094983728,807420244,908866604,741485620,841757494,741619244,909519922,908866092,741485620,841757238,741422636,959786034,892088876,221391927,808530698,1094983728,757088596,825044017,840567309,908866092,741485617,841757238,741946668,943008818,892088876,741485625,841758261,741684524,909454386,892088876,221391922,959460106,1094983728,807420244,908866604,741485620,841757494,741619244,909519922,908866092,741485620,841757238,741422636,959786034,892088876,221391927,808530698,892088876,741485623,841759029,741815596,909454386,168637484,808792115,1413563424,926228545,892088876,741485625,741878832,841757237,741750060,741354546,842345522,892088876,741485622,741485616,841757237,741750060,741354550,842345524,168636972,808857651,1413563424,909451329,892088876,741485623,841758261,741618988,909454388,892088876,741485623,741747760,841757750,741553708,875965490,908866092,741485617,841756726,741422636,856296754,540030768,1096040772,741815584,909454386,892088876,741485623,841757237,875311148,741946412,808791090,892088876,741485618,841757749,741750060,926231602,892088876,741485625,841756982,808651277,1142960184,541152321]},{"sector":8,"length":512,"data":[808464435,1296388640,1701336096,1296189728,1919242272,1634627443,1866670188,1953853549,1293972069,1667855221,1919111968,225209455,825242378,1163010096,1700143181,1869181810,774971502,673198128,1866672451,1769109872,544499815,541934153,1886547779,943272224,856296753,540029488,541934930,1701013836,1684370286,1952533792,1634300517,539828332,1735357008,544039282,1886351952,2037674597,543584032,223167049,858796810,1094983728,757088596,1394748466,1162625347,538976339,538976288,538976288,538976288,538976288,538976288,572530720,808651277,1142960180,541152321,824981555,741946156,808725553,875311404,741420081,824980020,741553196,875834417,875311404,741420085,824981044,741815340,856296753,540030256,1096040772,741880864,959720497,892088620,741420080,824979765,741487916,859122737,892088620,741420084,824980789,741750060,856296753,540030512,1096040772,741815584,943008817,892088620,741420089,824979510,741422636,842411057,908865836,741420083,824980534,741684780,741354552,856296756,540030768,1096040772,741684768,875965496,908865836,741420083,824980022,741422636,808856625,892088620,741420089,824981557,741815596,856296753,540031024,1096040772,741750048,892677169,892088620,741420084,824980277,741487916,825568305,892088620,741420080,824981812,741880876,856296753,540031280,1096040772,741815328,909388849,875311404]}]],[[{"sector":1,"length":512,"data":[741420085,824980532,741553196,842279985,875311404,741420081,824979508,741946156,942877745,168638508,808464691,1413563424,825040961,221326636,1096030730,741750048,892677169,892088620,741420084,824980277,741487916,825568305,892088620,741420080,824981812,741880876,856296753,540031280,1096040772,741815328,909388849,875311404,1735357008,544039282,1886351952,2037674597,543584032,223167049,858796810,1094983728,757088596,1394748466,1162625347,538976339,538976288,538976288,538976288,538976288,538976288,572530720,808651277,1142960180,541152321,824981555,741946156,808725553,875311404,741420081,824980020,741553196,875834417,875311404,741420085,824981044,741815340,856296753,540030256,1096040772,741880864,959720497,892088620,741420080,824979765,741487916,859122737,892088620,741420084,824980789,741750060,856296753,540030512,1096040772,741815584,943008817,892088620,741420089,824979510,741422636,842411057,908865836,741420083,824980534,741684780,741354552,856296756,540030768,1096040772,741684768,875965496,908865836,741420083,824980022,741422636,808856625,892088620,741420089,824981557,741815596,856296753,540031024,1096040772,741750048,892677169,892088620,741420084,824980277,741487916,825568305,892088620,741420080,824981812,741880876,856296753,540031280,1096040772,741815328,909388849,875311404]},{"sector":2,"length":512,"data":[808464435,1296388640,1701336096,1296189728,1919242272,1634627443,1866670188,1953853549,1293972069,1667855221,1919111968,225209455,825242378,1163010096,1700143181,1869181810,774971502,673198128,1866672451,1769109872,544499815,541934153,1886547779,943272224,856296753,540029488,541934930,1701013836,1684370286,1952533792,1634300517,539828332,1735357008,544039282,1886351952,2037674597,543584032,223167049,858796810,1094983728,757088596,1394748466,1920297825,539828321,1634754890,1702061422,1819231776,1699553387,2036625260,168632864,808726579,1413563424,959717441,875313196,741878841,824979765,741354546,959720500,875313196,741878841,824979765,741354546,959720500,892090412,741878833,942420533,741422380,856296760,540030256,1096040772,741946400,825568312,875312172,741616697,824980788,875834422,875313196,741878832,942421044,741684268,856296760,540030512,1096040772,741618720,875834424,875312172,741616688,824981811,959720502,875313196,741878841,824979765,741354546,959720500,875313196,741878841,824979765,741354546,856296756,540030768,1096040772,741356576,875834424,875313196,741878837,942422324,741422380,959720500,875312172,741878837,824980532,856296758,540031024,1096040772,741420320,168636717,875834394,875312172,741616688,824981811,959720502,875313196,741878841,824979765,741354546,959720500,875313196,741878841]},{"sector":3,"length":512,"data":[-1408454657,1411419907,1226859880,1344294210,1869836901,543973742,1886220099,1919251573,1919501088,6646883,62262493,1700143247,1869181810,774971502,673198128,1866672451,1769109872,544499815,541934153,1886547779,943272224,219086897,546243520,1701013836,1684370286,1952533792,1634300517,539828332,1735357008,544039282,1886351952,2037674597,543584032,5063241,63900961,1163075735,-1742718393,745148192,221904913,747766740,524295212,1296126778,1397050448,1310910244,1140859471,-1996235251,66194976,-401777152,741118467,975126556,1347240275,609437004,1163469543,-1962925485,-922488307,-935666400,304877856,253804346,739322895,547371537,-1069930481,371247674,974327596,1226973329,2248002,66850222,739778762,288099343,572559674,1936876880,1818324591,1836008224,1702131056,-620748174,-1090255347,738856736,550124049,439093775,-1858465492,680984352,-383134449,353315030,701304620,680984553,2734095,68161040,185540810,288102956,-14642886,-1290852202,539158825,538976288,1229135904,1162625874,538976288,538976288,-1761613534,699600680,437138944,253807108,739912716,546388497,254318335,-689362509,739577640,-383180785,254318335,1795172787,-905698290,739053344,974203930,-1761664879,699600680,538977001,1700143136,1869181810,774971502,538980400,572530720,680984553,2732815,70127249,235872458,288102956,-14642886,-737204074,685173033,254547215]},{"sector":4,"length":512,"data":[-1496627,-1106302826,247791657,549389368,288100111,253807162,739781649,546388497,692267042,1886339872,1734963833,1226863720,1126190402,544240239,825768241,251199522,549389378,288099855,253807162,739781655,546388497,1701990434,1931506547,1701011824,1918984736,544175136,1953394531,1702194793,252510242,545981516,585558238,550314018,1275994249,253362180,1296237654,-417323964,838917664,-1962647537,1145914144,552017956,-853532126,237013280,1308623958,-1962644977,1145914144,552017956,254318335,-853530341,237013280,1728054560,-1962642417,1145914144,552017956,539107362,545857741,296974,75370353,1443766409,259850244,546768008,-414759597,262537233,545981586,681049896,688132108,203484704,-399966160,3149030,-1759458016,1195725600,237013306,-1224735468,-1610310641,978325280,550124224,1190932,77991880,1210196113,541346895,572609609,-1341127424,572559620,659902297,1310737746,1428182095,1196312915,1162368032,1280262944,1194283599,1213219154,542327625,1229868877,542265172,1346454593,559039828,272826402,546374842,1229476898,1380982867,1095911247,1398087757,1193300805,1213219154,542327625,541347393,1431389522,1397051977,1095259168,1145118804,1163153473,2240082,79958124,1344413841,1397966162,1162368032,1095783200,1109411139,1411404353,1329799247,1313428558,573457749,-837782016,1394644740,-1979693243,-1962616816,-420946400,-853532126,237013280]},{"sector":5,"length":512,"data":[-1761606440,1124393488,539247693,14557415,82579631,1296244875,-417323964,539107872,545857741,320014,83235019,1296244875,-417323964,680984352,539564815,545857741,335886,83890404,1296244875,-417323964,572531232,-1994339040,85986848,168881664,237013253,-167770910,-922414064,67165472,-1794829039,-1994348768,85855776,370217216,546569733,909209634,286982178,545850647,337934,85856552,521085119,288100652,521243392,572559621,1397311572,1330794528,1296126535,1363497504,1163020629,1145118803,1129202006,1109410885,1128878913,539831584,541414229,1296912195,541347393,1396785703,658588489,549403170,288100111,-2110123732,317147424,471911456,-2093341912,547889210,335886,85987737,547823765,925833,298188800,549979425,974269457,1095966859,1162629197,585573459,575882585,-31404768,1634935436,1701605485,472654451,-704642072,-1090182639,288102432,-1069936340,-603946694,-1895487471,1007807488,304138245,-1086713556,288102688,1175586304,-416197883,29,-1996494464,1396315883,-1996495054,201331691,-1073393646,1427254272,253807109,974269465,1917854353,544437093,541283141,1696624500,578054520,1511145216,1377862149,-870312217,543428384,1253583,90444388,1105670721,976311273,843128971,-171827738,-853507256,-416136928,501887553,-2092370494,1846705920,680656389,254582799,1378625892,1093407532,741490988,1567766,91755168,-381556927]},{"sector":6,"length":512,"data":[-1959120301,501629216,-2092370494,1092668704,501891559,-2092370494,-2112707072,-1207926011,-33190894,-1609619313,694423340,321655852,-1777153536,1226867205,-870313497,65543200,-452951238,1090885394,987686692,608247947,680984551,539564815,554574029,317652997,545850784,345614,437911552,1093407532,741490988,1567766,91755168,-381556927,546569733,909209634,286982178,545850647,337934,85856552,521085119,288100652,521243392,572559621,1397311572,1330794528,1296126535,1363497504,1163020629,1145118803,1129202006,1109410885,1128878913,539831584,541414229,1296912195,541347393,1396785703,658588489,549403170,288100111,-2110123732,317147424,471911456,-2093341912,547889210,335886,85987737,547823765,925833,298188800,549979425,974269457,1095966859,1162629197,585573459,575882585,-31404768,1634935436,1701605485,472654451,-704642072,-1090182639,288102432,-1069936340,-603946694,-1895487471,1007807488,304138245,-1086713556,288102688,1175586304,-416197883,29,-1996494464,1396315883,-1996495054,201331691,-1073393646,1427254272,253807109,974269465,1917854353,544437093,541283141,1696624500,578054520,1511145216,1377862149,-870312217,543428384,1253583,90444388,1105670721,976311273,843128971,-171827738,-853507256,-416136928,501887553,-2092370494,1846705920,680656389,254582799,1378625892,1093407532,741490988,1567766,91755168,-381556927]},{"sector":7,"length":512,"data":[-1408454145,1411419907,1226859880,1344294210,1869836901,543973742,1886220099,1919251573,1701400608,1918986339,215941236,546243510,1936876886,544108393,808463921,692267040,2037411651,1751607666,1112088692,1866670157,824209522,3225657,62917905,1766596751,1936614755,1293968485,1919251553,543973737,1917853741,1634887535,1917853805,1919250543,1864399220,1112088678,220397645,546767823,977749331,253794336,1125482,64228661,1347240275,609437004,1330520807,222232610,545850334,258574,65539410,1347240275,609437004,1163469543,2130715219,-922488307,-935666400,304877856,253804346,739322895,547371537,-1069930481,371247674,974327596,1226973329,2248002,66850210,739778762,288099343,572559674,1936876880,1818324591,1836008224,1702131056,-822074766,-1090255347,738856736,550124049,439093775,-1858465492,680984352,-383134449,353315030,701304620,680984553,2734095,68161028,185540810,288102956,-14642886,-1290852202,539158825,538976288,1162432544,1380010051,538976340,538976288,-1761613534,699600680,437135872,253807108,739912716,546388497,254318335,-689362509,739577640,-383180785,254318335,1593846195,-905698290,739053344,974203930,-1761664879,699600680,538977001,1700143136,1869181810,774971502,538980400,572530720,680984553,2732815,70127237,235872458,288102956,-14642886,-737204074,685173033,254547215,-1496627,-1106302826,247005225]},{"sector":8,"length":512,"data":[549389368,288100111,253807162,739781649,546388497,692267042,1886339872,1734963833,1226863720,1126190402,544240239,825768241,250413090,549389378,288099855,253807162,739781655,546388497,1701990434,1931506547,1701011824,1918984736,544175136,1953394531,1702194793,251723810,545981516,585558238,550314018,1275994249,252575748,1296237654,-417323964,637591072,-1962647537,1145914144,552017956,-853532126,237013280,1107297366,-1962644977,1145914144,552017956,254318335,-853530341,237013280,1526727954,-1962642417,1145914144,552017956,539107362,545857741,296974,75370341,1443766409,259063812,546768008,-414759597,261750801,545981586,681049896,688132108,203484704,-399966160,3149030,-1759458016,1195725600,237013306,-1426062069,-1610310641,978325280,550124224,1190932,77991868,1210196113,541346895,572609609,-1341130496,572559620,659902297,1310737746,1428182095,1196312915,1162368032,1280262944,1194283599,1213219154,542327625,1229868877,542265172,1346454593,559039828,272039970,546374842,1229476898,1380982867,1095911247,1398087757,1193300805,1213219154,542327625,541347393,1431389522,1397051977,1095259168,1145118804,1163153473,2240082,79958112,1344413841,1397966162,1162368032,1095783200,1109411139,1411404353,1329799247,1313428558,573457749,-837785088,1394644740,2113947461,-1962616816,-420946400,-853532126,237013280,-1962933032,1124393488,539247693]}]],[[{"sector":1,"length":512,"data":[14557415,82579619,1296244875,-417323964,539107872,545857741,320014,83235007,1296244875,-417323964,680984352,539564815,545857741,332302,83890392,1296244875,-417323964,572531232,-1994339040,85069344,168878592,237013253,-369097502,-922416368,-134161120,-1794831344,-1994348768,84872736,219219200,546569733,909209634,286195746,545850638,332814,84873500,521085119,288100652,269582080,572559621,1397311572,1330794528,1296126535,1363497504,1163020629,1145118803,1129202006,1109410885,1128878913,539831584,541414229,1296912195,541347393,1396785703,658588489,549403170,288100111,-2110123732,317147424,471911456,-2093341912,547889210,332302,85070221,547823765,925833,298385408,549979411,974269457,1095966859,1162629197,585573459,575882585,-31404768,1634935436,1701605485,472654451,975176680,549396641,739322904,985676305,299630721,545654036,1678714962,608250921,694423336,2014437888,-234831867,-939160559,288100896,421576506,33558828,1275437074,839903058,-414035142,469773327,-2063226350,1769218592,543517812,1663067759,1953653096,609499938,-1273872896,572556549,544698216,2037277037,1702127904,1763734381,1751326830,578056801,1174425147,1392885266,1409290727,-2113550318,317147424,1310772256,-770540800,572556549,1701672302,543385970,1970037110,1848385637,577072481,1227379259,608250921,2705704,98308744,-380377261,692660306]},{"sector":2,"length":512,"data":[-434991616,-1442807035,-2113540078,317147424,1310772256,1227379258,676521769,1407985993,-1291812038,1090910738,1173298,100930233,315752640,550110734,336538643,680722410,-332848044,546388499,251667540,-1341777901,-350672864,7464,-1407716,609495186,689171497,405543402,422111785,1911019,-377152512,1411945215,334244132,740302889,740888591,4336660,102896413,-415031166,550248466,322830414,826345004,976372199,1105670721,676522290,334178627,-1035001877,265971862,1325433417,1090926099,1093199681,843180337,1305641,104862568,266819651,-1929385568,692142376,1380722923,693261290,1242792192,-413580538,-1416177,1094789257,1277750057,1381231186,329711657,-1845623212,1480796192,693715756,743592748,1105865746,1864231473,745997074,741491178,1567766,106828766,673222654,-1484733,1094789260,-853677271,-343913268,1126978131,-1979717031,692142376,-858972693,1407942732,1126967634,354480928,402657836,1275488276,1480845144,680329193,-349617855,-384823512,-366390701,-1828721899,673464616,975776067,1139235148,-1979717031,692142376,1381181675,688918505,1913927936,304138758,1498163433,740891124,1277749522,689566808,1092653370,692267044,343736379,548406908,1481386024,-349627916,-350671847,1498163240,-383182348,-366401262,1481386024,-349627916,-350623463,1093178111,692267044,-350671831,1498163240,-383182348,740894994,344260626,545457798,344981571]},{"sector":3,"length":512,"data":[550110864,304879375,-1542148096,1092784390,1752461166,1126199909,1953653096,1495801919,544370464,992094542,-1374370048,-417054458,545995486,585573441,550314018,437774,113382627,608247947,575546087,1092677408,1847781156,550314018,332302,114038015,608247947,576266983,1092677408,2032330532,550314018,358414,114693385,-1878122359,6,304880154,-1542148096,1092784390,1752461166,1126199909,1953653096,1495801919,544370464,992094542,-1374370048,-417054458,545995486,585573441,550314018,437774,113382627,608247947,575546087,1092677408,1847781156,550314018,332302,114038015,608247947,576266983,1092677408,2032330532,550314018,358414,114693385,-1878122359,1480796192,693715756,743592748,1105865746,1864231473,745997074,741491178,1567766,106828766,673222654,-1484733,1094789260,-853677271,-343913268,1126978131,-1979717031,692142376,-858972693,1407942732,1126967634,354480928,402657836,1275488276,1480845144,680329193,-349617855,-384823512,-366390701,-1828721899,673464616,975776067,1139235148,-1979717031,692142376,1381181675,688918505,1913927936,304138758,1498163433,740891124,1277749522,689566808,1092653370,692267044,343736379,548406908,1481386024,-349627916,-350671847,1498163240,-383182348,-366401262,1481386024,-349627916,-350623463,1093178111,692267044,-350671831,1498163240,-383182348,740894994,344260626,545457798,344981571]},{"sector":4,"length":512,"data":[-1408382977,1411419907,1226859880,1344294210,1869836901,543973742,1886220099,1919251573,1634751264,-184523421,-1895582195,1919243808,1852795251,808333600,1126703152,1886339881,1734963833,1226863720,1126190402,544240239,825768241,-1072814336,1277202179,1852138345,543450483,1702125901,1818323314,1344285984,1919381362,1344302433,1701867378,544830578,1226860143,1325419842,-1895577074,1953841440,544370536,777134125,1768245280,544826734,776806438,1818314784,1836213612,1627418209,-1761358066,1195725600,546840634,288123407,-737250560,1296126723,1397050448,1310910244,2097160783,-1996235250,66194976,-401698816,1296126723,1397050448,1495459620,2249541,66195133,987570377,739320008,549403154,288100111,-1606807252,975703840,550124224,319761430,572559674,575488585,-66134016,404802051,738987820,546388497,1919242274,1634627443,1866670188,1953853549,2257509,67505933,168763583,-902164180,738856736,974203930,-1761664879,701828904,254334697,-854643691,-1761613527,699928360,269435392,253807108,739912715,546388497,254318335,585705907,538976288,1394614304,1162035536,538976288,538976288,-1498592,-1290852202,258474025,550110234,439094287,-1858465492,680984352,-383143153,353315030,689966892,680984553,2732815,69472157,219095242,288102956,-14642886,-1290852202,539158825,1444945952,1769173605,824209007,540028974,538976288,-1761613534,699600680,772784896]},{"sector":5,"length":512,"data":[253807108,739912718,546388497,254318335,-689362476,739577640,-383136497,254318335,-150984258,-1090242545,739184416,550124049,405541135,-1858465492,1126703648,1866670121,1769109872,544499815,541934153,1886547779,943272224,721429041,-1090239984,739118880,550124049,405542671,-1858465492,1917854240,544437093,1667330163,1633820773,1869881458,1852793632,1970170228,1056973413,-1962652656,-420946400,-853532126,237013280,1275069516,1124357648,539247693,14557415,73404516,1296244875,-417323964,539107872,545857741,284174,74059904,1296244875,-417323964,680984352,539564815,545857741,332302,74715289,1296244875,-417323964,572531232,-1994339040,76025376,2115019520,237013252,-1358953386,-1761310704,1195725600,-671084057,-1962634736,-1744885728,68160552,552476713,687878156,806151912,550313984,1163075735,545864263,330510,77336809,1343168672,-902119366,304878624,-1508836864,572559620,1145851720,559171872,288817186,546374832,1431263522,541413927,542396238,1313428309,1213472839,1329799237,793923404,1346458183,1396918600,1313819936,1380930633,1094992160,1380275280,1962943009,-1861961199,1213473312,1344295753,1380405074,1428180289,542328147,1346458183,1396918600,1145979168,1363497504,1163020629,1213472851,1092637761,1414545732,573461061,-1005478400,572559620,1397051984,1213472851,1347625029,541410113,542261570,1126190932,1230261839,776295758,296222754]},{"sector":6,"length":512,"data":[546768078,4670803,81269180,-388095861,539108070,545857741,317454,81924553,608456003,-568269024,-334372608,1126206212,539247693,572661991,-1994339040,81923616,-166593280,1126206212,539247693,-1761664793,689639208,-1994339040,85069344,1185280,1126206213,539247693,539107559,550314018,302915721,304087045,545850634,320014,84611624,14491849,84677174,547823765,252584073,306380805,-1812069107,829432352,1291854390,-1996157422,85200416,252860928,253804293,739322911,314376209,546374928,1229476898,1380982867,1095911247,1163010125,1380537681,1092637509,1312904772,541345091,1230192962,757932099,1163089184,1297040160,1145979213,1094854432,1094928723,-1086709209,739184416,974203921,-414637950,550248466,975382556,-1474282877,85069344,303221504,-1491036923,237013280,117440512,-939191533,304877856,1394641722,1280331073,-417049787,1397053730,550314018,1931644158,1819307361,740455269,537126940,-1088380614,288102432,-1069936340,218136890,-1895492589,2014516480,-585053947,-2112673792,1226878213,-2042999062,472402208,2687776,93066040,739385544,549403153,1125401,93721512,-1845609792,748687144,740910095,304881167,489434156,2137417318,680525370,254582799,304884068,-29748692,1835147922,741357105,1697656881,1835151411,741357105,1747988529,975319091,254288048,1678716034,254339625,1678716094,974335017,254315006,1175399554,254339625]},{"sector":7,"length":512,"data":[-2112934722,4795433,94376940,287842480,-366407380,744754984,740935439,1178741777,254324794,688991333,-938530582,700911404,1110184748,682637894,288147727,472443433,254542124,338438599,4604460,95032327,386867402,540676908,1917854353,544437093,541283141,503331618,-905595884,739774240,579942931,1696624500,578054520,341573691,545392062,538175306,974594252,-414637950,550248466,-1812055533,1651319328,1949578860,1865758002,1664838205,1684284259,1717986595,593979171,1646485857,8600098,96998559,-1625781,52226952,843790849,-343343129,-29718001,827009160,691161900,-265533140,1226867258,538109745,-1777393460,-29719750,827009160,691161900,-265533140,-1174371526,1090900500,987686692,608247947,680984551,539564815,302915789,349896709,546833884,288123407,1092651834,585558052,550314018,537252366,237019450,1470,85596672,-1625781,52226952,843790849,-343343129,-29718001,827009160,691161900,-265533140,1226867258,538109745,-1777393460,-29719750,827009160,691161900,-265533140,-1174371526,472402208,2687776,93066040,739385544,549403153,1125401,93721512,-1845609792,748687144,740910095,304881167,489434156,2137417318,680525370,254582799,304884068,-29748692,1835147922,741357105,1697656881,1835151411,741357105,1747988529,975319091,254288048,1678716034,254339625,1678716094,974335017,254315006,1175399554,254339625]},{"sector":8,"length":512,"data":[-1408383233,1411419907,1226859880,1344294210,1869836901,543973742,1886220099,1919251573,1818313248,234094700,546243510,1936876886,544108393,808463921,692267040,2037411651,1751607666,1112088692,1866670157,824209522,3225657,62918182,1766596751,1936614755,1293968485,1919251553,543973737,1917853741,1634887535,1917853805,1919250543,1864399220,1112088678,238551117,546767823,977749331,253794336,1125482,64228938,1347240275,609437004,1330520807,240386082,545850334,258574,65539687,1347240275,609437004,1163469543,-1811930541,-922488306,-935666400,304877856,253804346,739322895,547371537,-1069930481,371247674,974327596,1226973329,2248002,66850487,739778762,288099343,572559674,1936876880,1818324591,1836008224,1702131056,-469753230,-1090255346,738856736,550124049,439093775,-1858465492,680984352,-383134449,353315030,701304620,680984553,2734095,68161305,185540810,288102956,-14642886,-1290852202,539158825,538976288,1109401632,541871169,538976288,538976288,-1761613534,699600680,437206784,253807108,739912716,546388497,254318335,-689362509,739577640,-383180785,254318335,1946167731,-905698289,739053344,974203930,-1761664879,699600680,538977001,1700143136,1869181810,774971502,538980400,572530720,680984553,2732815,70127514,235872458,288102956,-14642886,-737204074,685173033,254547215,-1496627,-1106302826,265158697,549389368]}]],[[{"sector":1,"length":512,"data":[288100111,253807162,739781649,546388497,692267042,1886339872,1734963833,1226863720,1126190402,544240239,825768241,268566562,549389378,288099855,253807162,739781655,546388497,1701990434,1931506547,1701011824,1918984736,544175136,1953394531,1702194793,269877282,545981516,585558238,550314018,1275994249,270729220,1296237654,-417323964,989912608,-1962647536,1145914144,552017956,-853532126,237013280,1459618902,-1962644976,1145914144,552017956,254318335,-853530341,237013280,1879049490,-1962642416,1145914144,552017956,539107362,545857741,296974,75370618,1443766409,277217284,546768008,-414759597,279904273,545981586,681049896,688132108,203484704,-399966160,3149030,-1759458016,1195725600,237013306,-1073740533,-1610310640,978325280,550124224,1190932,77992145,1210196113,541346895,572609609,-1341059584,572559620,659902297,1310737746,1428182095,1196312915,1162368032,1280262944,1194283599,1213219154,542327625,1229868877,542265172,1346454593,559039828,290193442,546374842,1229476898,1380982867,1095911247,1398087757,1193300805,1213219154,542327625,541347393,1431389522,1397051977,1095259168,1145118804,1163153473,2240082,79958389,1344413841,1397966162,1162368032,1095783200,1109411139,1411404353,1329799247,1313428558,573457749,-837714176,1394644740,-1828698299,-1962616815,-420946400,-853532126,237013280,-1610611496,1124393489,539247693,14557415]},{"sector":2,"length":512,"data":[82579896,1296244875,-417323964,539107872,545857741,320014,83235284,1296244875,-417323964,680984352,539564815,545857741,332302,83890669,1296244875,-417323964,572531232,-1994339040,85069344,168949504,237013253,-16775966,-922416367,218160416,-1794831342,-1994348768,84872736,219290112,546569733,909209634,304349218,545850638,332814,84873777,521085119,288100652,269652992,572559621,1397311572,1330794528,1296126535,1363497504,1163020629,1145118803,1129202006,1109410885,1128878913,539831584,541414229,1296912195,541347393,1396785703,658588489,549403170,288100111,-2110123732,317147424,471911456,-2093341912,547889210,332302,85070498,547823765,925833,316538880,549979411,974269457,1095966859,1162629197,585573459,575882585,-31404768,1634935436,1701605485,472654451,975176680,549396641,739322904,985676305,316932225,9372948,92410615,572560382,862742125,909145138,335553079,-1392145389,1525301536,545660986,404498498,540682497,675356806,2725391,93721386,549993152,974203922,739844287,550058513,322830557,-1845623392,-1609619424,694423340,738856748,324075539,-1879177814,-1609619424,694423340,321655596,-1273796096,545914373,748031784,-366388721,749342504,740912655,327483457,985662910,254288048,688991251,723265770,-1324405759,1110191145,-938238464,673230853,304878607,472443433,254542124,741091762,331481154]},{"sector":3,"length":512,"data":[550110674,254547983,579942923,1701990432,1159754611,1948271443,2019893359,572552297,332857403,545392092,336586584,471911456,-819986152,-83880672,1107682835,-416720856,-1401073,-2030098276,680132392,2048781144,696066265,-198616853,218114323,-2096762860,-414441414,1495284248,-1777342670,-99342592,673230853,338485007,254339625,-1357959939,739519529,1090537026,-1341783020,-1089525728,-366406612,752750376,740929295,1178741779,236215040,673230854,338468879,254339625,-1357960002,739388457,1761625666,-2113529836,300368928,304139296,571769856,266818310,-347805420,973145116,404547397,-347805183,66588,103552154,-413654910,550248531,550445125,-350623211,349765700,-413596106,693643330,-414310342,-357953752,-198626727,-1812055530,1028399648,844381004,1312503093,574311997,545988666,550314054,673220862,1496068696,1093413170,1075117312,545848838,1496078376,977349673,-416131040,1495284312,978970418,-353941984,-2095039982,1242894336,686246918,689498444,253817632,8600128,105846059,-555277247,1092651834,-1761614044,689639208,237030688,1308624146,-1744415723,745148192,545995281,-420993983,-853532126,105844256,547437088,403579017,6,1496062490,1093413170,1075117312,545848838,1496078376,977349673,-416131040,1495284312,978970418,-353941984,-2095039982,1242894336,686246918,689498444,253817632,8600128,105846059,-555277247,1092651834,-1761614044]},{"sector":4,"length":512,"data":[17717247,1411419904,1226859880,1344294210,1869836901,543973742,1886220099,1919251573,1836008224,243597421,546242562,1936876886,544108393,808463921,692267040,2037411651,1751607666,1112088692,1866670157,824209522,3225657,200375,1766596751,1936614755,1293968485,1919251553,543973737,1917853741,1634887535,1917853805,1919250543,1864399220,1112088678,248643661,546242564,1752462657,757101167,539905312,1377840707,1935764079,168753152,-585053952,549986362,974203921,253796384,-1088407000,288102432,985669690,1779376280,268439852,-2113926385,317147424,253807648,550058506,572664905,1694532410,-1157624817,548216890,979036737,1279346208,300369235,1381244986,-739818155,1279346208,540689747,1179012952,-1761614044,689114920,1331175482,-1629106,286206102,546650665,545857703,973196302,974251860,608715589,2237159,987050,1163075735,974251847,673221408,203986943,539558928,806101230,216475904,-853540816,253796384,-413910448,1295651855,608519247,576856807,1394644794,-1992669371,1969696,269468160,1226867200,-870313241,973737760,742990025,-2093342174,286259968,253807104,168766489,334255337,1176670522,540876849,1126182964,1297435727,538976334,538976288,843456544,941636896,1329799216,1313690956,268763170,546766866,4670803,1970204,1663180960,976317807,-15782878,1394644794,1140868933,-905959408,540676896,265166993,693430538,1329799712]},{"sector":5,"length":512,"data":[1314213197,1413563209,1397641033,1313164576,1912611413,-905956848,338433824,540693737,1126310033,1936682856,1852776549,1718558821,1701344288,1819239968,1769434988,574252910,1007721728,438356480,-385216724,-1860158892,540090912,1668506948,1953524082,544108393,1881171567,1919381362,2256225,4591815,265166993,693430538,540156448,544698180,1701736266,1699622771,1377858423,1769108581,1818326629,284033058,546373712,-385216562,572533076,1112088627,1699749965,1852797810,1126198369,1970302319,577922420,1511065600,-836726528,1424558607,874651689,1919243040,796091753,603988529,-1862245359,168807968,539579625,1411396898,1394623816,1129469263,1124082245,-1862242799,168807968,539579625,1327511074,1919248500,1919251232,1701013878,291504162,546373747,-385216562,572533076,1850023991,1919950948,1634887535,-1929371027,-905938927,974262048,-14642912,672082072,975787241,253807136,-384553966,974269524,1663180945,1667854184,3875429,7999908,-555277247,1092651834,572712740,237030688,-989855622,-1962902767,680722208,-416734143,550314002,-1616820,608250004,545864233,33294,8131042,1330454667,-417053372,539124258,1414275277,-1992683033,8523296,2098328576,-417054208,1093174271,739453988,1207970066,-1962901998,680918816,-416734142,-853525745,253796384,-413910488,985676305,286138505,-1590026240,-14644448,608315541,1007675177,-1608463072,978325280,336586580]},{"sector":6,"length":512,"data":[-1992638406,1117728,547437088,300373068,237013306,1375731842,-1996456174,7999008,-2112683520,1277201152,538502996,985669837,-836726496,1424558607,757211177,1297040160,1229870413,1230258499,1159745103,1145390158,975318304,975208736,545988769,-413905880,552542227,367481932,1277226784,689366868,237030688,975175910,545988769,317150284,-1927230176,34737696,237013306,976879626,545988769,-397128664,552542226,417748044,550314025,317148230,982589498,-836726496,693430548,1850286624,1768710518,1751326820,1701013871,1920213036,1734418553,577661281,-1944896512,1176537856,538109772,545398989,538109769,-1004789556,-2095039991,550117434,540676879,-1728110447,-383250648,1178216788,974251852,237013280,-1728053128,-1073704685,550117434,168766482,540693737,1428299921,542262611,1229342020,541345102,1263421772,545995298,350704716,-903820000,-384553952,-1860158892,1330913824,1330528544,1380272212,1296189728,1380274208,1095651155,1329799244,1414877261,2249285,9835464,739582154,743762196,546388498,1430340130,1095901252,572540244,546126395,973197582,1162892064,-417053627,-184540094,-905928685,338433568,304895209,572559674,1230127440,572545364,546126395,973197582,1380012064,609834057,2376423,11146293,739713226,743762196,546388498,1297436194,542262594,1109411407,542331977,542262608,1380010051,1163150145,992092242,237014330,1111097809,609440841]},{"sector":7,"length":512,"data":[2376423,11801708,739778762,743762196,546388498,1297436194,542262594,1394624079,542134100,1398032706,976953888,-787603315,1394620929,-417050540,-1325390782,-905922284,338434336,304895209,572559674,1380010051,1163150145,1159746386,1162823747,1330913348,1380143904,542000453,1311725864,992092201,237014330,540672465,608715589,2376423,12457201,168763594,1424561196,540676652,1143087249,543257697,1702129253,543450482,1920102243,1819566949,1495801977,539577903,-1925563614,30477856,609370938,2376423,13112600,1380130955,1310910244,552542242,-417050045,539127330,-1861345075,-1590026240,237014304,1493172704,-905915883,739577632,1329805844,1279870541,1126360868,976309583,1347676450,608453957,573317865,1380012265,609834057,573317865,1414087401,585704531,1407787564,2379860,14423405,1329799354,1279870541,1396776996,1188640,15078823,1414275211,-853535257,609046048,1699947239,1936025970,975319343,-703717235,549075457,1836016418,808663601,744827952,573713463,542327072,367984689,545980656,333927500,1310772512,585573453,544698180,1701736266,1699618931,1378841463,1769108581,1818326629,546126370,973198862,1663180986,976317807,741355571,574041189,542327072,371785777,545980666,384259148,1310772512,585573453,541411412,1381322579,975324483,-703717235,549075457,1836016418,808663601,744827952,1092624951,3219539,17045062,1394745530]},{"sector":8,"length":512,"data":[978211395,545398818,1347704143,1092637781,321069139,236343296,740346369,1778389548,1342248982,1163089217,1279346407,-1791343277,-1994348768,30150176,571900160,-417054207,545995486,585573442,550314018,81934,19666660,-1828773749,690242088,-853536026,-14644448,-2080429931,740573736,689056787,1141892905,237030688,975176130,1074667681,-1590026239,1109429024,-1761614044,539564328,550117581,680656684,317335825,-1858465236,572531232,550124091,680656684,317335825,301994540,-1862191593,739386144,976954434,1159760672,-417052605,539121954,1128603887,585573448,-853532039,321098016,992231980,1075258368,-14644479,689055907,237030688,1258291490,-1962849769,681901856,266742034,550314112,1398096208,1381295941,-1858452139,1479283235,608585295,392101947,608239956,673482215,304653567,304294953,393347113,545390952,538109769,-1828773684,690241832,1914157824,673221377,-14117377,608249987,304892204,266873129,552476703,1093174271,742992932,-420992750,254318335,539568397,-2080431889,740573480,689056841,680984551,539590415,-1710350131,400818177,545980796,1093174271,742992932,-1627886,168765590,550314025,1093174271,742992932,585574674,-167763424,-1862168553,679739168,1227629633,992547372,-1709703680,1226867457,-1541926400,-14644479,689055908,-853536282,19009056,-1374145024,1344310017,1163089217,1344326944,1163089217,1279346407,-1858452141,1479283235]}]],[[{"sector":1,"length":512,"data":[992235087,-1206370304,237013249,1610613026,-1744715240,745148192,-1155515887,546644026,545857703,973078542,237013280,-905969654,-1962816488,266851616,550314052,-903857472,738987808,978643225,572559648,1397311572,1330794528,1296126535,1363497504,1163020629,1213472851,-1858461115,-384512480,572533076,1314476865,1330792515,1398099790,1297040160,1229870413,1230258499,542330447,1346454593,777143636,-2128594398,-853975808,-719287551,538447847,985669837,253807136,304884748,572559674,1162092609,1162037590,1296651296,1414876997,1381123360,1210077775,1327518529,1381319491,776226130,546388514,1262570786,1431511109,1411401042,1210074440,1464095297,541413953,1126191945,1163022927,1498174531,546388514,1413829410,743462176,1162368032,1380982862,542331717,1163152965,992095826,237014330,540672465,11025088,30284131,428409000,608240081,975315687,585573442,1380137506,572712740,-374267846,-400277216,680984550,2690319,30546468,-555277247,545988666,585573441,550314018,536990222,-1960795846,680722208,-433511359,550314002,-1778442101,679739176,321659969,690557484,541331431,-1039261491,-1590026239,30543392,-1590026182,1092651808,-1644508,689514646,-1860121312,992231712,-1590026182,740346400,287871487,739437097,546388498,992092194,740346426,287871487,739437097,608320018,679739367,304882754,680722220,-366402494,1275078930,-1962814694,-400277216,680984550]},{"sector":2,"length":512,"data":[539561231,608248046,-1761614104,539564328,608313549,-383499545,1409295425,-1308503014,1828752954,-1073621478,550117434,202320914,540693737,1296965777,9517604,31464097,982596241,349053073,539579625,1344285986,1701011820,1970239776,1633886322,539782252,543452769,1702063721,1948284018,2254184,32119507,349053073,539579625,1881153570,1701736296,1667592736,1702259045,1852383346,1948282740,1830839656,1835361391,1919885356,453312546,546374127,1424561358,539107369,1769435936,543712116,1920298873,1952539680,1702043745,1919295604,1948282223,543911009,2256756,32774975,349053073,539579625,1679826978,778138721,1701336096,1919950958,544437093,1163152965,1869881426,1734697504,539913833,975314976,540709152,459866257,546374142,1424561358,757211177,1163022368,1176523603,1411395633,1330061391,542069792,1431192909,9517602,33561459,-787603315,460914689,9306627,34741146,-903857472,254546464,978643215,572559648,1129530692,1414547794,575557449,471584256,354470402,1424561196,546381882,544096546,1853453153,1869768803,1937076078,1836016416,1768846701,1769234787,1814064751,577465961,639368192,-836726526,693430548,1769415200,1646292076,1936007269,1818386804,1701344105,1700929636,1701148532,1752440942,587211365,-1862127588,-384512480,572533076,1701602675,1684370531,1919251232,1701013878,1684955424,1701344288,475267106,546374202,1424561358,1226973225]},{"sector":3,"length":512,"data":[1344294210,1330860613,541868366,1347243843,1380275285,1935745068,1819239968,1937207148,2063606330,-905821156,338434592,540693737,1109532817,543454561,1702125938,265173794,693430541,808465186,479854626,546374222,1424561358,1344413737,1953067617,-834985351,1424559631,574956073,1478278144,-836726526,693430548,1631855136,1646289268,577991785,235916859,992564457,-167758046,-1862114788,-384512480,572533076,1886352467,1953063456,-834985357,1424559631,824326953,1866735648,1867128951,745760110,1162368032,1431261984,574964562,1813844224,-836726526,1424559631,841097257,1699946528,1936025970,2240815,41295175,252649674,1424561196,546381882,1953517346,1936617321,1629500192,908092526,1819042080,1713403759,1948283503,1629513064,1702260578,494338082,546374272,1424561358,1663180841,1634885992,1919251555,1769239401,1948283747,1700929647,1886745376,1701407856,2036473956,497549346,546374282,1424561358,1948393513,1965057384,544367987,1679847284,1852401253,543236197,1835888483,1667853941,1869182049,-620748178,-1862101987,-384512480,572533076,1802398060,544175136,1701344367,1702043762,1667855986,1864397669,1868767346,1953853549,779317861,502333474,545981077,1162104653,1646454564,550314018,171534,43589159,336535754,1424561196,546381882,1970231586,1851876128,1818587936,544498533,1663053876,1836412015,1768169582,1634496627,1919885433,509149218,546374298,1424561358]},{"sector":4,"length":512,"data":[941760553,1868767280,1852667244,1936286752,2036427888,544825888,1936028272,1735289203,540100128,2257519,43720328,349053073,539579625,540165666,1868981602,1931502962,1667591269,1735289204,1852140832,1751326837,1701013871,-1224728018,-905798114,739774240,978643220,572559648,1397051984,1312890963,1162551385,1330913369,542066464,1293963092,576015941,517275707,1380123295,987686692,1380130955,572712740,237030688,975176351,9314465,437911552,43720328,349053073,539579625,540165666,1868981602,1931502962,1667591269,1735289204,1852140832,1751326837,1701013871,-1224728018,-905798114,739774240,978643220,572559648,1397051984,1312890963,1162551385,1330913369,542066464,1293963092,1819042080,1713403759,1948283503,1629513064,1702260578,494338082,546374272,1424561358,1663180841,1634885992,1919251555,1769239401,1948283747,1700929647,1886745376,1701407856,2036473956,497549346,546374282,1424561358,1948393513,1965057384,544367987,1679847284,1852401253,543236197,1835888483,1667853941,1869182049,-620748178,-1862101987,-384512480,572533076,1802398060,544175136,1701344367,1702043762,1667855986,1864397669,1868767346,1953853549,779317861,502333474,545981077,1162104653,1646454564,550314018,171534,43589159,336535754,1424561196,546381882,1970231586,1851876128,1818587936,544498533,1663053876,1836412015,1768169582,1634496627,1919885433,509149218,546374298,1424561358]},{"sector":5,"length":512,"pattern":-151587082,"data":[]},{"sector":6,"length":512,"pattern":-151587082,"data":[]},{"sector":7,"length":512,"pattern":-151587082,"data":[]},{"sector":8,"length":512,"pattern":-151587082,"data":[]}]],[[{"sector":1,"length":512,"pattern":-151587082,"data":[]},{"sector":2,"length":512,"pattern":-151587082,"data":[]},{"sector":3,"length":512,"pattern":-151587082,"data":[]},{"sector":4,"length":512,"pattern":-151587082,"data":[]},{"sector":5,"length":512,"pattern":-151587082,"data":[]},{"sector":6,"length":512,"pattern":-151587082,"data":[]},{"sector":7,"length":512,"pattern":-151587082,"data":[]},{"sector":8,"length":512,"pattern":-151587082,"data":[]}]]]
      • components.xsl
        <?xml version="1.0" encoding="UTF-8"?>
        <!-- author="Jeff Parsons (@jeffpar)" website="http://www.pcjs.org/" created="2012-05-05" modified="2014-02-23" license="http://www.gnu.org/licenses/gpl.html" -->
        <!DOCTYPE xsl:stylesheet [
        ]>
        <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        	<xsl:param name="rootDir" select="''"/>
        	<xsl:param name="generator" select="'client'"/>
        
        	<xsl:variable name="MACHINECLASS">pc</xsl:variable>
        	<xsl:variable name="APPCLASS">pcjs</xsl:variable>
        	<xsl:variable name="APPVERSION">1.18.3</xsl:variable>
        	<xsl:variable name="SITEHOST">www.pcjs.org</xsl:variable>
        
        	<xsl:template name="componentStyles">
        		<link rel="stylesheet" type="text/css" href="components.css"/>
        	</xsl:template>
        
        	<xsl:template name="componentScripts">
        		<xsl:param name="component"/>
        		<script type="text/javascript" src="{$component}.js"> </script>
        	</xsl:template>
        
        	<xsl:template name="componentIncludes">
        		<xsl:param name="component"/>
        		<xsl:call-template name="componentScripts"><xsl:with-param name="component" select="$component"/></xsl:call-template>
        	</xsl:template>
        
        	<xsl:template name="machine">
        		<xsl:param name="href">/devices/pc/machine/5150/mda/64kb/machine.xml</xsl:param>
        		<xsl:param name="state" select="''"/>
        		<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="$href"/></xsl:variable>
        		<xsl:apply-templates select="document($componentFile)/machine">
        			<xsl:with-param name="machineState" select="$state"/>
        		</xsl:apply-templates>
        	</xsl:template>
        
        	<xsl:template match="machine[@ref]">
        		<xsl:param name="machineState" select="''"/>
        		<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
        		<xsl:apply-templates select="document($componentFile)/machine">
        			<xsl:with-param name="machine" select="@id"/>
        			<xsl:with-param name="machineState">
        				<xsl:choose>
        					<xsl:when test="$machineState != ''"><xsl:value-of select="$machineState"/></xsl:when>
        					<xsl:otherwise><xsl:value-of select="@state"/></xsl:otherwise>
        				</xsl:choose>
        			</xsl:with-param>
        		</xsl:apply-templates>
        	</xsl:template>
        
        	<xsl:template match="machine[not(@ref)]">
        		<xsl:param name="machine"><xsl:value-of select="@id"/></xsl:param>
        		<xsl:param name="machineState" select="''"/>
        		<xsl:variable name="machineStyle">
        			<xsl:if test="@float">float:<xsl:value-of select="@float"/></xsl:if>
        		</xsl:variable>
        		<div id="{$machine}" class="machine {@class}js" style="{$machineStyle}">
        			<xsl:call-template name="component">
        				<xsl:with-param name="machine" select="$machine"/>
        				<xsl:with-param name="machineState">
        					<xsl:choose>
        						<xsl:when test="$machineState != ''"><xsl:value-of select="$machineState"/></xsl:when>
        						<xsl:otherwise><xsl:value-of select="@state"/></xsl:otherwise>
        					</xsl:choose>
        				</xsl:with-param>
        				<xsl:with-param name="component" select="'machine'"/>
        				<xsl:with-param name="class"><xsl:value-of select="@class"/>js</xsl:with-param>
        				<xsl:with-param name="parms"><xsl:if test="@parms">,<xsl:value-of select="@parms"/></xsl:if></xsl:with-param>
        				<xsl:with-param name="url"><xsl:value-of select="@url"/></xsl:with-param>
        			</xsl:call-template>
        		</div>
        	</xsl:template>
        
        	<xsl:template match="component[@ref]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
        		<xsl:apply-templates select="document($componentFile)/component">
        			<xsl:with-param name="machine" select="$machine"/>
        		</xsl:apply-templates>
        	</xsl:template>
        
        	<xsl:template match="component[not(@ref)]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:call-template name="component">
        			<xsl:with-param name="machine" select="$machine"/>
        			<xsl:with-param name="class" select="@class"/>
        			<xsl:with-param name="parms"><xsl:if test="@parms">,<xsl:value-of select="@parms"/></xsl:if></xsl:with-param>
        		</xsl:call-template>
        	</xsl:template>
        
        	<xsl:template name="component">
        		<xsl:param name="machine" select="''"/>
        		<xsl:param name="machineState" select="''"/>
        		<xsl:param name="component" select="name(.)"/>
        		<xsl:param name="class" select="''"/>
        		<xsl:param name="parms" select="''"/>
        		<xsl:param name="url" select="''"/>
        		<xsl:variable name="id">
        			<xsl:choose>
        				<xsl:when test="$component = 'machine'"><xsl:value-of select="$machine"/>.machine</xsl:when>
        				<xsl:when test="$machine != '' and @id"><xsl:value-of select="$machine"/>.<xsl:value-of select="@id"/></xsl:when>
        				<xsl:when test="$machine != ''"><xsl:value-of select="$machine"/>.<xsl:value-of select="$component"/></xsl:when>
        				<xsl:when test="@id"><xsl:value-of select="@id"/></xsl:when>
        				<xsl:otherwise><xsl:value-of select="$component"/></xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="componentURL">
        			<xsl:choose>
        				<xsl:when test="$component = 'machine'">url:'<xsl:value-of select="$url"/>'</xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="name">
        			<xsl:choose>
        				<xsl:when test="name"><xsl:value-of select="name"/></xsl:when>
        				<xsl:when test="@name"><xsl:value-of select="@name"/></xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="comment">
        			<xsl:choose>
        				<xsl:when test="@comment">,comment:'<xsl:value-of select="@comment"/>'</xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="border">
        			<xsl:choose>
        				<xsl:when test="@border = '1'">border:1px solid black;border-radius:15px;</xsl:when>
        				<xsl:when test="@border">border:<xsl:value-of select="@border"/>;</xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="left">
        			<xsl:choose>
        				<xsl:when test="@left">left:<xsl:value-of select="@left"/>;</xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="top">
        			<xsl:choose>
        				<xsl:when test="@top">top:<xsl:value-of select="@top"/>;</xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="width">
        			<xsl:choose>
        				<xsl:when test="@width">
        					<xsl:choose>
        						<xsl:when test="$left != '' or $top != ''">width:<xsl:value-of select="@width"/>;</xsl:when>
        						<xsl:otherwise>width:auto;max-width:<xsl:value-of select="@width"/>;</xsl:otherwise>
        					</xsl:choose>
        				</xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="height">
        			<xsl:choose>
        				<xsl:when test="@height">height:<xsl:value-of select="@height"/>;</xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="padding">
        			<xsl:choose>
        				<xsl:when test="@padding">padding:<xsl:value-of select="@padding"/>;</xsl:when>
        				<xsl:otherwise>
        					<xsl:if test="@padtop">padding-top:<xsl:value-of select="@padtop"/>;</xsl:if>
        					<xsl:if test="@padright">padding-right:<xsl:value-of select="@padright"/>;</xsl:if>
        					<xsl:if test="@padbottom">padding-bottom:<xsl:value-of select="@padbottom"/>;</xsl:if>
        					<xsl:if test="@padleft">padding-left:<xsl:value-of select="@padleft"/>;</xsl:if>
        				</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="pos">
        			<xsl:choose>
        				<xsl:when test="@pos = 'left'">float:left;</xsl:when>
        				<xsl:when test="@pos = 'right'">float:right;</xsl:when>
        				<xsl:when test="@pos = 'center'">margin:0 auto;</xsl:when>
        				<xsl:when test="@pos">position:<xsl:value-of select="@pos"/>;</xsl:when>
        				<xsl:when test="$left != '' or $top != ''">position:relative;</xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="style">
        			<xsl:if test="$component = 'machine'">overflow:auto;width:100%;</xsl:if>
        			<xsl:if test="@background">background-color:<xsl:value-of select="@background"/>;</xsl:if>
        			<xsl:if test="@style"><xsl:value-of select="@style"/></xsl:if>
        		</xsl:variable>
        		<xsl:variable name="componentClass">
        			<xsl:value-of select="$APPCLASS"/><xsl:text>-</xsl:text><xsl:value-of select="$component"/><xsl:text> </xsl:text><xsl:value-of select="$APPCLASS"/><xsl:text>-component</xsl:text>
        		</xsl:variable>
        		<div id="{$id}" class="{$componentClass}" style="{$width}{$height}{$pos}{$left}{$top}{$padding}" data-value="{$componentURL}">
        			<xsl:if test="$component = 'machine'">
        				<xsl:apply-templates select="name" mode="machine"/>
        			</xsl:if>
        			<xsl:if test="$component != 'machine'">
        				<xsl:apply-templates select="name" mode="component"/>
        			</xsl:if>
        			<div class="{$APPCLASS}-container" style="{$border}{$style}">
        				<xsl:if test="$component = 'machine'">
        					<xsl:apply-templates select="menu" mode="machine"/>
        				</xsl:if>
        				<xsl:if test="$component != 'machine'">
        					<xsl:apply-templates select="menu" mode="component"/>
        				</xsl:if>
        				<xsl:if test="$class != '' and $component != 'machine'">
        					<div class="{$APPCLASS}-{$class}-object" data-value="id:'{$id}',name:'{$name}'{$comment}{$parms}"> </div>
        				</xsl:if>
        				<xsl:if test="control">
        					<div class="{$APPCLASS}-controls">
        						<xsl:apply-templates select="control" mode="component"/>
        					</div>
        				</xsl:if>
        				<xsl:apply-templates>
        					<xsl:with-param name="machine" select="$machine"/>
        					<xsl:with-param name="machineState" select="$machineState"/>
        				</xsl:apply-templates>
        			</div>
        			<xsl:if test="$component = 'machine'">
        				<xsl:choose>
        					<xsl:when test="$url != ''"><div class="{$APPCLASS}-reference">[<a href="{$url}">XML</a>]</div></xsl:when>
        					<xsl:otherwise/>
        				</xsl:choose>
        				<div class="{$APPCLASS}-copyright">
        					<a href="http://{$SITEHOST}" target="_blank">PCjs</a> v<xsl:value-of select="$APPVERSION"/> © 2012-2015 by <a href="http://twitter.com/jeffpar" target="_blank">@jeffpar</a>
        				</div>
        				<div style="clear:both"> </div>
        			</xsl:if>
        		</div>
        	</xsl:template>
        
        	<xsl:template match="name" mode="machine">
        		<xsl:variable name="pos">
        			<xsl:choose>
        				<xsl:when test="@pos = 'center'">text-align:center;</xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<h2 style="{$pos}"><xsl:apply-templates/></h2>
        	</xsl:template>
        
        	<xsl:template match="name" mode="component">
        		<div class="{$APPCLASS}-name"><xsl:apply-templates/></div>
        	</xsl:template>
        
        	<xsl:template match="menu" mode="component">
        		<xsl:apply-templates mode="component"/>
        	</xsl:template>
        
        	<xsl:template match="title" mode="component">
        		<div class="{$APPCLASS}-menu"><xsl:apply-templates/></div>
        	</xsl:template>
        
        	<xsl:template match="control" mode="component">
        		<xsl:variable name="type">
        			<xsl:text>type:'</xsl:text><xsl:value-of select="@type"/><xsl:text>'</xsl:text>
        		</xsl:variable>
        		<xsl:variable name="binding">
        			<xsl:text>binding:'</xsl:text><xsl:value-of select="@binding"/><xsl:text>'</xsl:text>
        		</xsl:variable>
        		<xsl:variable name="border">
        			<xsl:choose>
        				<xsl:when test="@border = '1'">border:1px solid black;</xsl:when>
        				<xsl:when test="@border">border:<xsl:value-of select="@border"/>;</xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="width">
        			<xsl:choose>
        				<xsl:when test="@width">width:<xsl:value-of select="@width"/>;</xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="height">
        			<xsl:choose>
        				<xsl:when test="@height">height:<xsl:value-of select="@height"/>;</xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="left">
        			<xsl:choose>
        				<xsl:when test="@left">left:<xsl:value-of select="@left"/>;</xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="top">
        			<xsl:choose>
        				<xsl:when test="@top">top:<xsl:value-of select="@top"/>;</xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="padding">
        			<xsl:choose>
        				<xsl:when test="@padding">padding:<xsl:value-of select="@padding"/>;</xsl:when>
        				<xsl:otherwise>
        					<xsl:if test="@padtop">padding-top:<xsl:value-of select="@padtop"/>;</xsl:if>
        					<xsl:if test="@padright">padding-right:<xsl:value-of select="@padright"/>;</xsl:if>
        					<xsl:if test="@padbottom">padding-bottom:<xsl:value-of select="@padbottom"/>;</xsl:if>
        					<xsl:if test="@padleft">padding-left:<xsl:value-of select="@padleft"/>;</xsl:if>
        				</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="pos">
        			<xsl:choose>
        				<xsl:when test="@pos = 'left'">float:left;</xsl:when>
        				<xsl:when test="@pos = 'right'">float:right;</xsl:when>
        				<xsl:when test="@pos = 'center'">margin:0 auto;</xsl:when>
        				<xsl:when test="@pos">position:<xsl:value-of select="@pos"/>;</xsl:when>
        				<xsl:when test="$left != '' or $top != ''">position:relative;</xsl:when>
        				<xsl:otherwise><xsl:if test="$left = ''">float:left;</xsl:if></xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="style">
        			<xsl:choose>
        				<xsl:when test="@style"><xsl:value-of select="@style"/></xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="containerClass">
        			<xsl:if test="@type = 'container' and @class"><xsl:text> </xsl:text><xsl:value-of select="@class"/></xsl:if>
        		</xsl:variable>
        		<xsl:variable name="containerStyle">
        			<xsl:value-of select="$pos"/><xsl:value-of select="$left"/><xsl:value-of select="$top"/><xsl:value-of select="$padding"/>
        			<xsl:choose>
        				<xsl:when test="@type = 'container'"><xsl:value-of select="$border"/><xsl:value-of select="$width"/><xsl:value-of select="$height"/><xsl:value-of select="$style"/></xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<div class="{$APPCLASS}-control{$containerClass}" style="{$containerStyle}">
        			<xsl:variable name="fontsize">
        				<xsl:choose>
        					<xsl:when test="@size = 'large' or @size = 'small'">font-size:<xsl:value-of select="@size"/>;</xsl:when>
        					<xsl:otherwise/>
        				</xsl:choose>
        			</xsl:variable>
        			<xsl:variable name="subClass">
        				<xsl:if test="@label"><xsl:text> </xsl:text><xsl:value-of select="$APPCLASS"/><xsl:text>-label</xsl:text></xsl:if>
        			</xsl:variable>
        			<xsl:variable name="labelWidth">
        				<xsl:if test="@labelwidth">width:<xsl:value-of select="@labelwidth"/>;</xsl:if>
        			</xsl:variable>
        			<xsl:variable name="labelStyle">
        				<xsl:choose>
        					<xsl:when test="@labelstyle"><xsl:value-of select="@labelstyle"/></xsl:when>
        					<xsl:otherwise>text-align:right;</xsl:otherwise>
        				</xsl:choose>
        			</xsl:variable>
        			<xsl:if test="@label">
        				<xsl:if test="not(@labelpos) or @labelpos = 'left'">
        					<div class="{$APPCLASS}-label" style="{$labelWidth}{$labelStyle}"><xsl:value-of select="@label"/></div>
        				</xsl:if>
        			</xsl:if>
        			<xsl:choose>
        				<xsl:when test="@type = 'canvas'">
        					<canvas class="{$APPCLASS}-binding {$APPCLASS}-canvas" width="{@width}" height="{@height}" style="-webkit-user-select:none;{$border}{$fontsize}{$style}" data-value="{$type},{$binding}"><xsl:apply-templates/></canvas>
        				</xsl:when>
        				<xsl:when test="@type = 'button'">
        					<button class="{$APPCLASS}-binding" style="-webkit-user-select:none;{$border}{$width}{$height}{$fontsize}{$style}" data-value="{$type},{$binding}"><xsl:apply-templates/></button>
        				</xsl:when>
        				<xsl:when test="@type = 'list'">
        					<select class="{$APPCLASS}-binding" style="{$border}{$width}{$height}{$fontsize}{$style}" data-value="{$type},{$binding}">
        						<xsl:apply-templates select="disk|app|manifest" mode="component"/>
        					</select>
        				</xsl:when>
        				<xsl:when test="@type = 'text'">
        					<input class="{$APPCLASS}-binding" type="text" style="{$border}{$width}{$height}{$style}" data-value="{$type},{$binding}" value="{.}" autocapitalize="off" autocorrect="off"/>
        				</xsl:when>
        				<xsl:when test="@type = 'submit'">
        					<input class="{$APPCLASS}-binding" type="submit" style="{$border}{$fontsize}{$style}" data-value="{$type},{$binding}" value="{.}"/>
        				</xsl:when>
        				<xsl:when test="@type = 'textarea'">
        					<textarea class="{$APPCLASS}-binding" style="{$border}{$width}{$height}{$style}" data-value="{$type},{$binding}" readonly="readonly"> </textarea>
        				</xsl:when>
        				<xsl:when test="@type = 'heading'">
        					<div><xsl:value-of select="."/></div>
        				</xsl:when>
        				<xsl:when test="@type = 'file'">
        					<form class="{$APPCLASS}-binding" data-value="{$type},{$binding}">
        						<fieldset class="{$APPCLASS}-fieldset">
        							<input type="file"/>
        							<input type="submit" value="Mount" disabled="true"/>
        						</fieldset>
        					</form>
        				</xsl:when>
        				<xsl:when test="@type = 'led'">
        					<div class="{$APPCLASS}-binding {$APPCLASS}-{@type}" data-value="{$type},{$binding}"><xsl:value-of select="."/></div>
        				</xsl:when>
        				<xsl:when test="@type = 'separator'">
        					<hr/>
        				</xsl:when>
        				<xsl:when test="@type = 'container'">
        					<xsl:apply-templates mode="component"/>
        				</xsl:when>
        				<xsl:when test="not(@type)">
        					<div style="clear:both"> </div>
        				</xsl:when>
        				<xsl:otherwise>
        					<div class="{$APPCLASS}-binding{$subClass} {$APPCLASS}-{@type}" style="-webkit-user-select:none;{$border}{$width}{$height}{$fontsize}{$style}" data-value="{$type},{$binding}"><xsl:apply-templates/></div>
        				</xsl:otherwise>
        			</xsl:choose>
        			<xsl:if test="@label">
        				<xsl:if test="@labelpos = 'right'">
        					<div class="{$APPCLASS}-label" style="{$labelWidth}{$labelStyle}"><xsl:value-of select="@label"/></div>
        				</xsl:if>
        				<div style="clear:both"> </div>
        			</xsl:if>
        		</div>
        	</xsl:template>
        
        	<xsl:template match="disk[@ref]" mode="component">
        		<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
        		<xsl:apply-templates select="document($componentFile)/disk" mode="component"/>
        	</xsl:template>
        
        	<xsl:template match="disk[not(@ref)]" mode="component">
        		<xsl:variable name="desc">
        			<xsl:if test="@desc">
        				<xsl:text>desc:'</xsl:text><xsl:value-of select="@desc"/><xsl:text>'</xsl:text>
        				<xsl:if test="@href">
        					<xsl:text>,href:'</xsl:text><xsl:value-of select="@href"/><xsl:text>'</xsl:text>
        				</xsl:if>
        			</xsl:if>
        		</xsl:variable>
        		<option value="{@path}" data-value="{$desc}"><xsl:if test="name"><xsl:value-of select="name"/></xsl:if><xsl:if test="not(name)"><xsl:value-of select="."/></xsl:if></option>
        	</xsl:template>
        
        	<xsl:template match="app[@ref]" mode="component">
        		<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
        		<xsl:apply-templates select="document($componentFile)/app" mode="component"/>
        	</xsl:template>
        
        	<xsl:template match="app[not(@ref)]" mode="component">
        		<xsl:variable name="desc">
        			<xsl:if test="@desc">
        				<xsl:text>desc:'</xsl:text><xsl:value-of select="@desc"/><xsl:text>'</xsl:text>
        				<xsl:if test="@href">
        					<xsl:text>,href:'</xsl:text><xsl:value-of select="@href"/><xsl:text>'</xsl:text>
        				</xsl:if>
        			</xsl:if>
        		</xsl:variable>
        		<xsl:variable name="path">
        			<xsl:if test="@path"><xsl:value-of select="@path"/></xsl:if>
        		</xsl:variable>
        		<xsl:variable name="files">
        			<xsl:for-each select="file"><xsl:if test="position() = 1"><xsl:value-of select="$path"/></xsl:if><xsl:value-of select="@name"/><xsl:if test="position() != last()">;</xsl:if></xsl:for-each>
        		</xsl:variable>
        		<option value="{$files}" data-value="{$desc}"><xsl:value-of select="@name"/></option>
        	</xsl:template>
        
        	<xsl:template match="manifest[@ref]" mode="component">
        		<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
        		<xsl:apply-templates select="document($componentFile)/manifest" mode="component">
        			<xsl:with-param name="disk"><xsl:value-of select="@disk"/></xsl:with-param>
        		</xsl:apply-templates>
        	</xsl:template>
        
        	<xsl:template match="manifest[not(@ref)]" mode="component">
        		<xsl:param name="disk"><xsl:value-of select="@disk"/></xsl:param>
        		<xsl:if test="$disk != ''">
        			<xsl:variable name="prefix">
        				<xsl:if test="title/@prefix"><xsl:value-of select="title/@prefix"/><xsl:text>: </xsl:text></xsl:if>
        			</xsl:variable>
        			<xsl:for-each select="disk">
        				<xsl:if test="$disk = @id or $disk = '*'">
        					<xsl:variable name="name">
        						<xsl:choose>
        							<xsl:when test="name"><xsl:value-of select="$prefix"/><xsl:value-of select="name"/></xsl:when>
        							<xsl:when test="normalize-space(./text()) != ''">
        								<xsl:value-of select="$prefix"/><xsl:value-of select="normalize-space(./text())"/>
        							</xsl:when>
        							<xsl:otherwise>
        								<xsl:value-of select="../title"/><xsl:if test="../version != ''"><xsl:text> </xsl:text><xsl:value-of select="../version"/></xsl:if>
        							</xsl:otherwise>
        						</xsl:choose>
        					</xsl:variable>
        					<xsl:variable name="link">
        						<xsl:if test="link">
        							<xsl:text>desc:'</xsl:text><xsl:value-of select="link"/><xsl:text>'</xsl:text>
        							<xsl:if test="link/@href">
        								<xsl:text>,href:'</xsl:text><xsl:value-of select="link/@href"/><xsl:text>'</xsl:text>
        							</xsl:if>
        						</xsl:if>
        					</xsl:variable>
        					<xsl:if test="@href">
        						<option value="{@href}" data-value="{$link}"><xsl:value-of select="$name"/></option>
        					</xsl:if>
        					<xsl:if test="not(@href)">
        						<xsl:variable name="dir">
        							<xsl:if test="@dir"><xsl:value-of select="@dir"/></xsl:if>
        						</xsl:variable>
        						<xsl:variable name="files">
        							<xsl:for-each select="file"><xsl:if test="position() = 1"><xsl:value-of select="$dir"/></xsl:if><xsl:value-of select="@dir"/><xsl:value-of select="."/><xsl:if test="position() != last()">;</xsl:if></xsl:for-each>
        						</xsl:variable>
        						<option value="{$files}" data-value="{$link}"><xsl:value-of select="$name"/></option>
        					</xsl:if>
        				</xsl:if>
        			</xsl:for-each>
        		</xsl:if>
        	</xsl:template>
        
        	<xsl:template match="name">
        	</xsl:template>
        
        	<xsl:template match="title">
        	</xsl:template>
        
        	<xsl:template match="control">
        	</xsl:template>
        
        	<xsl:template match="cpu[@ref]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
        		<xsl:apply-templates select="document($componentFile)/cpu"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
        	</xsl:template>
        
        	<xsl:template match="cpu[not(@ref)]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:variable name="model">
        			<xsl:choose>
        				<xsl:when test="@model"><xsl:value-of select="@model"/></xsl:when>
        				<xsl:otherwise>8088</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="cycles">
        			<xsl:choose>
        				<xsl:when test="@cycles"><xsl:value-of select="@cycles"/></xsl:when>
        				<xsl:otherwise>0</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="multiplier">
        			<xsl:choose>
        				<xsl:when test="@multiplier"><xsl:value-of select="@multiplier"/></xsl:when>
        				<xsl:otherwise>1</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="autoStart">
        			<xsl:choose>
        				<xsl:when test="@autostart"><xsl:value-of select="@autostart"/></xsl:when>
        				<xsl:otherwise>null</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="csStart">
        			<xsl:choose>
        				<xsl:when test="@csstart"><xsl:value-of select="@csstart"/></xsl:when>
        				<xsl:otherwise>-1</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="csInterval">
        			<xsl:choose>
        				<xsl:when test="@csinterval"><xsl:value-of select="@csinterval"/></xsl:when>
        				<xsl:otherwise>-1</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="csStop">
        			<xsl:choose>
        				<xsl:when test="@csstop"><xsl:value-of select="@csstop"/></xsl:when>
        				<xsl:otherwise>-1</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:call-template name="component">
        			<xsl:with-param name="machine" select="$machine"/>
        			<xsl:with-param name="class" select="'cpu'"/>
        			<xsl:with-param name="parms">,model:<xsl:value-of select="$model"/>,cycles:<xsl:value-of select="$cycles"/>,multiplier:<xsl:value-of select="$multiplier"/>,autoStart:<xsl:value-of select="$autoStart"/>,csStart:<xsl:value-of select="$csStart"/>,csInterval:<xsl:value-of select="$csInterval"/>,csStop:<xsl:value-of select="$csStop"/></xsl:with-param>
        		</xsl:call-template>
        	</xsl:template>
        
        	<xsl:template match="chipset[@ref]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
        		<xsl:apply-templates select="document($componentFile)/chipset"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
        	</xsl:template>
        
        	<xsl:template match="chipset[not(@ref)]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:variable name="model">
        			<xsl:choose>
        				<xsl:when test="@model"><xsl:value-of select="@model"/></xsl:when>
        				<xsl:otherwise>5150</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="sw1">
        			<xsl:choose>
        				<xsl:when test="@sw1"><xsl:value-of select="@sw1"/></xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="sw2">
        			<xsl:choose>
        				<xsl:when test="@sw2"><xsl:value-of select="@sw2"/></xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="sound">
        			<xsl:choose>
        				<xsl:when test="@sound"><xsl:value-of select="@sound"/></xsl:when>
        				<xsl:otherwise>true</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="scaletimers">
        			<xsl:choose>
        				<xsl:when test="@scaletimers"><xsl:value-of select="@scaletimers"/></xsl:when>
        				<xsl:otherwise>false</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="floppies">
        			<xsl:choose>
        				<xsl:when test="@floppies"><xsl:value-of select="@floppies"/></xsl:when>
        				<xsl:otherwise>{}</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="monitor">
        			<xsl:choose>
        				<xsl:when test="@monitor"><xsl:value-of select="@monitor"/></xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="rtcdate">
        			<xsl:choose>
        				<xsl:when test="@rtcdate"><xsl:value-of select="@rtcdate"/></xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:call-template name="component">
        			<xsl:with-param name="machine" select="$machine"/>
        			<xsl:with-param name="class">chipset</xsl:with-param>
        			<xsl:with-param name="parms">,model:'<xsl:value-of select="$model"/>',scaleTimers:<xsl:value-of select="$scaletimers"/>,sw1:'<xsl:value-of select="$sw1"/>',sw2:'<xsl:value-of select="$sw2"/>',sound:<xsl:value-of select="$sound"/>,floppies:<xsl:value-of select="$floppies"/>,monitor:'<xsl:value-of select="$monitor"/>',rtcDate:'<xsl:value-of select="$rtcdate"/>'</xsl:with-param>
        		</xsl:call-template>
        	</xsl:template>
        
        	<xsl:template match="keyboard[@ref]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
        		<xsl:apply-templates select="document($componentFile)/keyboard"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
        	</xsl:template>
        
        	<xsl:template match="keyboard[not(@ref)]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:variable name="model">
        			<xsl:choose>
        				<xsl:when test="@model"><xsl:value-of select="@model"/></xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:call-template name="component">
        			<xsl:with-param name="machine" select="$machine"/>
        			<xsl:with-param name="class">keyboard</xsl:with-param>
        			<xsl:with-param name="parms">,model:'<xsl:value-of select="$model"/>'</xsl:with-param>
        		</xsl:call-template>
        	</xsl:template>
        
        	<xsl:template match="serial[@ref]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
        		<xsl:apply-templates select="document($componentFile)/serial"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
        	</xsl:template>
        
        	<xsl:template match="serial[not(@ref)]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:variable name="adapter">
        			<xsl:choose>
        				<xsl:when test="@adapter"><xsl:value-of select="@adapter"/></xsl:when>
        				<xsl:otherwise>0</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="binding">
        			<xsl:choose>
        				<xsl:when test="@binding"><xsl:value-of select="@binding"/></xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:call-template name="component">
        			<xsl:with-param name="machine" select="$machine"/>
        			<xsl:with-param name="class">serial</xsl:with-param>
        			<xsl:with-param name="parms">,adapter:<xsl:value-of select="$adapter"/>,binding:'<xsl:value-of select="$binding"/>'</xsl:with-param>
        		</xsl:call-template>
        	</xsl:template>
        
        	<xsl:template match="mouse[@ref]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
        		<xsl:apply-templates select="document($componentFile)/mouse"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
        	</xsl:template>
        
        	<xsl:template match="mouse[not(@ref)]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:variable name="serial">
        			<xsl:choose>
        				<xsl:when test="@serial"><xsl:value-of select="@serial"/></xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:call-template name="component">
        			<xsl:with-param name="machine" select="$machine"/>
        			<xsl:with-param name="class">mouse</xsl:with-param>
        			<xsl:with-param name="parms">,serial:'<xsl:value-of select="$serial"/>'</xsl:with-param>
        		</xsl:call-template>
        	</xsl:template>
        
        	<xsl:template match="fdc[@ref]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
        		<xsl:apply-templates select="document($componentFile)/fdc">
        			<xsl:with-param name="machine" select="$machine"/>
        			<xsl:with-param name="mount" select="@automount"/>
        		</xsl:apply-templates>
        	</xsl:template>
        
        	<xsl:template match="fdc[not(@ref)]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:param name="mount" select="''"/>
        		<xsl:variable name="automount">
        			<xsl:choose>
        				<xsl:when test="$mount != ''"><xsl:value-of select="$mount"/></xsl:when>
        				<xsl:otherwise><xsl:value-of select="@automount"/></xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:call-template name="component">
        			<xsl:with-param name="machine" select="$machine"/>
        			<xsl:with-param name="class">fdc</xsl:with-param>
        			<xsl:with-param name="parms">,autoMount:'<xsl:value-of select="$automount"/>'</xsl:with-param>
        		</xsl:call-template>
        	</xsl:template>
        
        	<xsl:template match="hdc[@ref]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
        		<xsl:apply-templates select="document($componentFile)/hdc"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
        	</xsl:template>
        
        	<xsl:template match="hdc[not(@ref)]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:variable name="drives">
        			<xsl:choose>
        				<xsl:when test="@drives"><xsl:value-of select="@drives"/></xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="type">
        			<xsl:choose>
        				<xsl:when test="@type"><xsl:value-of select="@type"/></xsl:when>
        				<xsl:otherwise>xt</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:call-template name="component">
        			<xsl:with-param name="machine" select="$machine"/>
        			<xsl:with-param name="class">hdc</xsl:with-param>
        			<xsl:with-param name="parms">,drives:'<xsl:value-of select="$drives"/>',type:'<xsl:value-of select="$type"/>'</xsl:with-param>
        		</xsl:call-template>
        	</xsl:template>
        
        	<xsl:template match="rom[@ref]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
        		<xsl:apply-templates select="document($componentFile)/rom"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
        	</xsl:template>
        
        	<xsl:template match="rom[not(@ref)]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:variable name="addr">
        			<xsl:choose>
        				<xsl:when test="@addr"><xsl:value-of select="@addr"/></xsl:when>
        				<xsl:otherwise>0</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="size">
        			<xsl:choose>
        				<xsl:when test="@size"><xsl:value-of select="@size"/></xsl:when>
        				<xsl:otherwise>0</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="alias">
        			<xsl:choose>
        				<xsl:when test="@alias"><xsl:value-of select="@alias"/></xsl:when>
        				<xsl:otherwise>null</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="file">
        			<xsl:choose>
        				<xsl:when test="@file"><xsl:value-of select="@file"/></xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="notify">
        			<xsl:choose>
        				<xsl:when test="@notify"><xsl:value-of select="@notify"/></xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:call-template name="component">
        			<xsl:with-param name="machine" select="$machine"/>
        			<xsl:with-param name="class">rom</xsl:with-param>
        			<xsl:with-param name="parms">,addr:<xsl:value-of select="$addr"/>,size:<xsl:value-of select="$size"/>,alias:<xsl:value-of select="$alias"/>,file:'<xsl:value-of select="$file"/>',notify:'<xsl:value-of select="$notify"/>'</xsl:with-param>
        		</xsl:call-template>
        	</xsl:template>
        
        	<xsl:template match="ram[@ref]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
        		<xsl:apply-templates select="document($componentFile)/ram"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
        	</xsl:template>
        
        	<xsl:template match="ram[not(@ref)]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:variable name="addr">
        			<xsl:choose>
        				<xsl:when test="@addr"><xsl:value-of select="@addr"/></xsl:when>
        				<xsl:otherwise>0</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="size">
        			<xsl:choose>
        				<xsl:when test="@size"><xsl:value-of select="@size"/></xsl:when>
        				<xsl:otherwise>0</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="test">
        			<xsl:choose>
        				<xsl:when test="@test"><xsl:value-of select="@test"/></xsl:when>
        				<xsl:otherwise>true</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:call-template name="component">
        			<xsl:with-param name="machine" select="$machine"/>
        			<xsl:with-param name="class">ram</xsl:with-param>
        			<xsl:with-param name="parms">,addr:<xsl:value-of select="$addr"/>,size:<xsl:value-of select="$size"/>,test:<xsl:value-of select="$test"/></xsl:with-param>
        		</xsl:call-template>
        	</xsl:template>
        
        	<xsl:template match="video[@ref]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
        		<xsl:apply-templates select="document($componentFile)/video"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
        	</xsl:template>
        
        	<xsl:template match="video[not(@ref)]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:variable name="model">
        			<xsl:choose>
        				<xsl:when test="@model"><xsl:value-of select="@model"/></xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="mode">
        			<xsl:choose>
        				<xsl:when test="@mode"><xsl:value-of select="@mode"/></xsl:when>
        				<xsl:otherwise>7</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="screenWidth">
        			<xsl:choose>
        				<xsl:when test="@screenwidth"><xsl:value-of select="@screenwidth"/></xsl:when>
        				<xsl:otherwise>256</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="screenHeight">
        			<xsl:choose>
        				<xsl:when test="@screenheight"><xsl:value-of select="@screenheight"/></xsl:when>
        				<xsl:otherwise>224</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="memory">
        			<xsl:choose>
        				<xsl:when test="@memory"><xsl:value-of select="@memory"/></xsl:when>
        				<xsl:otherwise>0</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="switches">
        			<xsl:choose>
        				<xsl:when test="@switches"><xsl:value-of select="@switches"/></xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="scale">
        			<xsl:choose>
        				<xsl:when test="@scale"><xsl:value-of select="@scale"/></xsl:when>
        				<xsl:otherwise>false</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="charCols">
        			<xsl:choose>
        				<xsl:when test="@cols"><xsl:value-of select="@cols"/></xsl:when>
        				<xsl:otherwise>80</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="charRows">
        			<xsl:choose>
        				<xsl:when test="@rows"><xsl:value-of select="@rows"/></xsl:when>
        				<xsl:otherwise>25</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="fontROM">
        			<xsl:choose>
        				<xsl:when test="@charset"><xsl:value-of select="@charset"/></xsl:when>
        				<xsl:when test="@fontrom"><xsl:value-of select="@fontrom"/></xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="screenColor">
        			<xsl:choose>
        				<xsl:when test="@screencolor"><xsl:value-of select="@screencolor"/></xsl:when>
        				<xsl:otherwise>black</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="touchScreen">
        			<xsl:choose>
        				<xsl:when test="@touchscreen"><xsl:value-of select="@touchscreen"/></xsl:when>
        				<xsl:otherwise>false</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="autoLock">
        			<xsl:choose>
        				<xsl:when test="@autolock"><xsl:value-of select="@autolock"/></xsl:when>
        				<xsl:otherwise>false</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:call-template name="component">
        			<xsl:with-param name="machine" select="$machine"/>
        			<xsl:with-param name="class">video</xsl:with-param>
        			<xsl:with-param name="parms">,model:'<xsl:value-of select="$model"/>',mode:<xsl:value-of select="$mode"/>,screenWidth:<xsl:value-of select="$screenWidth"/>,screenHeight:<xsl:value-of select="$screenHeight"/>,memory:<xsl:value-of select="$memory"/>,switches:'<xsl:value-of select="$switches"/>',scale:<xsl:value-of select="$scale"/>,charCols:<xsl:value-of select="$charCols"/>,charRows:<xsl:value-of select="$charRows"/>,fontROM:'<xsl:value-of select="$fontROM"/>',screenColor:'<xsl:value-of select="$screenColor"/>',touchScreen:<xsl:value-of select="$touchScreen"/>,autoLock:<xsl:value-of select="$autoLock"/></xsl:with-param>
        		</xsl:call-template>
        	</xsl:template>
        
        	<xsl:template match="debugger[@ref]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
        		<xsl:apply-templates select="document($componentFile)/debugger"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
        	</xsl:template>
        
        	<xsl:template match="debugger[not(@ref)]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:variable name="commands">
        			<xsl:choose>
        				<xsl:when test="@commands"><xsl:value-of select="@commands"/></xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="messages">
        			<xsl:choose>
        				<xsl:when test="@messages"><xsl:value-of select="@messages"/></xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:call-template name="component">
        			<xsl:with-param name="machine" select="$machine"/>
        			<xsl:with-param name="class">debugger</xsl:with-param>
        			<xsl:with-param name="parms">,commands:'<xsl:value-of select="$commands"/>',messages:'<xsl:value-of select="$messages"/>'</xsl:with-param>
        		</xsl:call-template>
        	</xsl:template>
        
        	<xsl:template match="panel[@ref]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
        		<xsl:apply-templates select="document($componentFile)/panel"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
        	</xsl:template>
        
        	<xsl:template match="panel[not(@ref)]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:call-template name="component">
        			<xsl:with-param name="machine" select="$machine"/>
        			<xsl:with-param name="class">panel</xsl:with-param>
        		</xsl:call-template>
        	</xsl:template>
        
        	<xsl:template match="computer[@ref]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:param name="machineState" select="''"/>
        		<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
        		<xsl:apply-templates select="document($componentFile)/computer">
        			<xsl:with-param name="machine" select="$machine"/>
        			<xsl:with-param name="machineState" select="$machineState"/>
        		</xsl:apply-templates>
        	</xsl:template>
        
        	<xsl:template match="computer[not(@ref)]">
        		<xsl:param name="machine" select="''"/>
        		<xsl:param name="machineState" select="''"/>
        		<xsl:variable name="busWidth">
        			<xsl:choose>
        				<xsl:when test="@buswidth"><xsl:value-of select="@buswidth"/></xsl:when>
        				<xsl:otherwise>20</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="resume">
        			<xsl:choose>
        				<xsl:when test="@resume and $machineState = ''"><xsl:value-of select="@resume"/></xsl:when>
        				<xsl:otherwise>0</xsl:otherwise>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:variable name="state">
        			<xsl:choose>
        				<xsl:when test="$machineState != ''"><xsl:value-of select="$machineState"/></xsl:when>
        				<xsl:when test="@state"><xsl:value-of select="@state"/></xsl:when>
        				<xsl:otherwise/>
        			</xsl:choose>
        		</xsl:variable>
        		<xsl:call-template name="component">
        			<xsl:with-param name="machine" select="$machine"/>
        			<xsl:with-param name="class">computer</xsl:with-param>
        			<xsl:with-param name="parms">,busWidth:<xsl:value-of select="$busWidth"/>,resume:<xsl:value-of select="$resume"/>,state:'<xsl:value-of select="$state"/>'</xsl:with-param>
        		</xsl:call-template>
        	</xsl:template>
        
        </xsl:stylesheet>
        
      • fd1.json
        [[[{"sector":1,"length":512,"data":[1183861995,1147495794,2118479,66050,1073770498,130305,65544,0,0,2686976,536870912,538976288,538976288,1095114784,540160340,6299680,65543,196608,655360,-50724864,-795951055,12441742,-530150020,612270331,-2013039105,-524802986,-1983869409,-1175483922,-1510801152,-528713238,-1898410465,14215376,1701147206,5459780,-1958328693,2123057238,-941936320,6307398,-398571890,946995394,196738865,2113125888,1604776791,440765222,-947713164,1031808544,1927771392,-1746382737,1095114752,1183711316,-1948569282,1183520382,1146522434,1476430312,102650482,12519199,-964056288,-972950015,1940778705,-754667260,266633448,1913649213,-1413467672,1474830094,1699422208,1818586738,1044811264,12507953,-1073107680,1212689268,-2129822069,-150929433,1246102503,-397650413,-445448138,218114536,1330594314,1919230036,805314930,-854143516,1370137,558843680,1586102304,59940,-617545632,281874100,1012313182,-1007454976,1397772886,-1430568524,609651285,829739652,762450893,-1437209727,-372168843,915219315,1552514461,240945420,1381652571,138709328,-1995811703,1150026844,-347950074,16781357,1515739904,-1970188206,1727404102,-235433702,410449554,-964111991,-909055610,1183500752,-18864104,-1193211708,1451885057,1930677540,-840683512,-346400749,190710664,-1064564877,-1911503744,-2091231040,-763166272,-411742464,1271095032,1162760773,1394614348,-1437248679]},{"sector":2,"length":512,"pattern":0,"data":[16777213,1610940480,8390400,184590345,-536018752,16781056,318840849,1611989312,25171713,453091353,-534969920,33562369,587341857,1613038144,41953026,721592361,-533921088,50343682,855842865,1614086976,58734339,990093369,-532872256,67124995,1124343873,1615135808,75515652,1258594377,-531823424,83906308,1392844881,1616184640,92296965,1527095385,-530774592,100687621,1661345889,1617233472,109078278,1795596393,-529725760,117468934,1929846897,1618282304,125859591,2064097401,-528676928,134250247,-2096619391,1619331136,142640904,-1962368887,-527628096,151031560,-1828118383,1620379968,159422217,-1693867879,65520]},{"sector":3,"length":512,"pattern":0,"data":[16777213,1610940480,8390400,184590345,-536018752,16781056,318840849,1611989312,25171713,453091353,-534969920,33562369,587341857,1613038144,41953026,721592361,-533921088,50343682,855842865,1614086976,58734339,990093369,-532872256,67124995,1124343873,1615135808,75515652,1258594377,-531823424,83906308,1392844881,1616184640,92296965,1527095385,-530774592,100687621,1661345889,1617233472,109078278,1795596393,-529725760,117468934,1929846897,1618282304,125859591,2064097401,-528676928,134250247,-2096619391,1619331136,142640904,-1962368887,-527628096,151031560,-1828118383,1620379968,159422217,-1693867879,65520]},{"sector":4,"length":512,"pattern":0,"data":[1112692052,538976335,541415493,225968128,1179731537,225968128,214609,156321,1296912357,541347393,5066563,1671188736,11851,-1297874944,2829677,87396,1162037733,541414222,5527636,1671189248,11851,1079771136,8464599,18427,1330927077,1128618053,5521730,1671188224,11851,-1417347072,9645642,67]},{"sector":5,"length":512,"pattern":0,"data":[]},{"sector":6,"length":512,"pattern":0,"data":[]},{"sector":7,"length":512,"pattern":0,"data":[]},{"sector":8,"length":512,"pattern":0,"data":[]}]],[[{"sector":1,"length":512,"pattern":0,"data":[]},{"sector":2,"length":512,"pattern":0,"data":[]},{"sector":3,"length":512,"data":[1329798123,1195984462,16777235,1962999810,1702065518,101124196,33752069,-1612519167,-1102067527,-141975666,-2135578338,84265100,98078208,-1064434136,-56232963,309100590,-1830325488,235842991,119473678,376086,1434472379,1481659851,50531105,1261724426,816337475,16669587,-570384684,-939523841,1124985855,1229344335,392007,33685760,-1672261505,-15846984,-855576389,1482398992,1997859511,45579,2077204264,2013259776,-840250624,-50219626,-369070360,131203406,1582354278,-218427540,1324601174,1190322732,-1778320666,913918270,783783783,874686215,-2020165338,-1647501659,1784878745,1392770996,1730084654,-872719616,-185924428,218066191,776996606,7937678,-2046425893,312557174,104539903,678756368,-234747284,69061394,313660476,789972687,-1217684985,-1007999232,520575231,1048653507,1968993895,1762191625,1342665918,502232474,61919064,-486482825,921220870,-83893590,822246633,-7983424,134275078,-854166080,-1073146113,4058996,41285490,2064650416,646458885,-1605608679,-619372957,1948254644,1965169335,-351834620,-14237206,-1658927826,222791682,36891135,-402504727,-385811197,-970063319,771772630,-466614723,-1007407905,-14229533,-850983542,-369565143,1864305075,1465274503,-1269606913,-1291798770,1532500743,1583308269,-915775331,-255387875,30992641,1397222272,-351945801,-1308349352,1275644754,-1307831956,1074842438,984749100,741611723,-886132196,606873632]},{"sector":4,"length":512,"data":[684401330,-1305727972,271633174,179450924,788805835,-11403204,-930341296,-425600882,104530431,712376808,-1982660724,-367620384,647334657,-459203649,1862674689,-1610638328,-100555529,1484130561,-316633510,-670687292,-1324036261,1344207625,1124090040,1896775807,-648511488,-508113121,-1089697490,-1626960850,1459604226,-351908674,173037127,92657353,1019228385,118418294,-1274957570,1745283842,-1100816894,-904198556,-1318386697,317454111,216788765,-568237541,-1732378601,1208304347,1887128163,-1784458671,-963361150,1887727266,83242623,-618498944,973621130,1719076095,31510936,513276870,-1796896429,1489402726,1425980924,-346466047,18997046,-32675958,-1961734261,-1047063465,-331902162,755924932,-1962842947,-1988252586,-1682697657,57739531,11838299,1482250877,-1928975522,1670507117,1282353431,-152337996,378220252,1858336907,-1058124018,-396947730,1515953157,91104922,60087302,793908400,-94790570,-619302837,657195230,1352487420,1834294866,280168028,922706206,-1660658397,-587047114,-675008855,1181886041,1576824839,-94873057,-1099337413,13344091,-385760944,1807423459,-1163510206,-1223658041,-619858858,-16381660,-370548153,1967914828,1625941757,-1089345281,162592784,552453366,-1157303947,-12184704,-11325321,-2011693107,1009788128,183349296,-2062020492,1958568233,34461220,-985867731,-1994434281,1397882623,-1976640719,-779154658,-1884363849,-386109448,1977483203,-85899746,393501174]},{"sector":5,"length":512,"data":[10574413,23658802,71368800,704905215,128,0,34,553320449,92786,13238272,12853385,12460169,12066953,11673737,11280521,10887305,10494089,10100873,9707657,9314441,8921225,8528009,8134793,7741577,7348361,6955145,6561929,39854217,57933824,2818048,4722427,5181179,7474939,9178875,10161915,11341563,12717819,15994619,21040891,22155003,25890555,28708603,31461115,33296123,35655419,38473467,39849723,41422587,47320827,53284603,55906043,58134267,63049467,66916091,67768059,68685563,72552187,74387195,77926139,78974715,83693307,87953147,90640123,93327099,106237691,107347968,76939264,110370953,117964800,119537664,138215424,142606336,175505408,183762944,220069888,222101504,227672064,241762304,242614272,257556480,315883520,357564416,365690880,366280704,368902144,11665408,24710996,30216020,31985492,33296212,33951572,36835156,37818196,1576788,2494329,5902201,398659449,417136640,416743424,415236096,407699456,406847488,405733376,405078016,435224576,506986496,502464512,494206976,492568576,490471424,489160704,485163008,482148352,480706560,479330304,476381184,475463680,474218496,464060416,446758912,540934144,534118400,559087616,556007424,638779392,633995264,633077760,626982912]},{"sector":6,"length":512,"data":[601358336,598278144,597164032,593100800,587988992,587137024,584843264,583925760,582811648,576847872,575668224,573374464,657522688,640352256,740950016,731643904,725745664,711065600,829423616,810483712,790757376,789708800,786563072,780992512,875233280,874905600,854392832,853803008,844103680,908263424,904200192,974127104,972947456,962920448,962265088,980287488,1087635456,463208448,455614601,455352457,454434953,454172809,453255305,452993161,452731017,452468873,452206729,451944585,443752585,443490441,443097225,442835081,442441865,442179721,441786505,441524361,441131145,440869001,440475785,440213641,439820425,439558281,438116489,437592201,1154687113,1153236992,1145962496,1132003328,1130954752,1123090432,1115160576,1112342528,1101660160,1168637952,1246101504,1273364480,1349320704,1346043904,1341849600,1340407808,1339097088,1333854208,1330708480,1329397760,1328611328,1326252032,1313275904,1303576576,1291714560,1289355264,1286733824,1374486528,1367998464,1366818816,1364656128,1350500352,1471217664,1465253888,1462566912,1460011008,1457258496,1450508288,1445527552,1444085760,1442578432,1440874496,1638596608,1688207360,1687224320,1741881344,1740242944,1728905216,1727135744,1724055552,1820852224,-2100690944,-2106195968,-2106851328,-2119761920,-2125594624,-2128871424,2145845248,-2044198912,-2073493504,-2075852800,-2077032448,-2079981568,-1969094656]},{"sector":7,"length":512,"pattern":0,"data":[-1969815552,-1970470912,-1823277056,-1824129024,-1818230784,-1641480192,-1646723072,-1651638272,-1672806400,-1691222016,-1693450240,-1401225216,-1403781120,-1406140416,-1407057920,-1435566080,-1438384128,-1451425792,-1388773376,-1389232128,-1316225024,-1301086208,-1235746816,-1240465408,-1241513984,-1248067584,-1252589568,-1253441536,-1137311744,-1145438208,-1147797504,-1069613056,-1074069504,-1076953088,-1085734912,-1088946176,-1106116608,-1115160576,-1118437376,-1121452032,-1122500608,-1011482624,-1012203520,-1016791040,-1022820352,-1023606784,-1029177344,-1029963776,-1035534336,-1041432576,-1047330816,-1048117248,-1052704768,-1065156608,-962985984,-887816192,-906297344,-913047552,-914554880,-948830208,-799539200,-801832960,1441792,2494337,4394881,8261505,9244545,16453505,18157441,252514177,265359233,265686913,267390849,294457217,-1482289279,-1481830527,-1481371775,-1480913023,-1478881407,-1477701759,-1475604607,-1474359423,-1472524415,-1472065663,-1471475839,-1468592255,-1467609215,-1464725631,-1464266879,-1463808127,-1462038655,-1460007039,-1458958463,7212929,7937185,40508577,41229473,73014433,73735329,4529313,6298983,8002919,8461671,16522599,17833327,18554223,11869551,12590465,22289793,23272833,699538817,700063135,-707650145]},{"sector":8,"length":512,"pattern":-1869574000,"data":[773884346,36443785,567095476,142987,2891403,748935822,705072128,639535360,1009682688,608093184,-1949857024,2147465688,1524870898,87565891,-847186315,-1982204032,-1191173106,-472711167,-2096577661,512358627,-628359128,1049356843,-8307716,124977408,-1996422977,-2126775234,1922539719,608043809,-1323601408,1206899460,309522235,1006386819,-1089571584,-281341952,-41220233,-2048326677,64981761,874416602,941525248,-85470464,-410266994,784348155,36439694,-1185672513,-819226720,1508420339,-431888155,2242303,2111231,1980159,1355669224,786763496,36445838,1286925451,-855488886,1431567137,-1962480501,1585906782,140412678,-1996333433,1589904478,105316102,-1222669786,-136064768,-1618268453,1585906188,-1654847740,-1869573949]}]],[[{"sector":1,"length":512,"data":[-1869574000,-1869574000,-1869574000,1085575312,-855637317,515490593,12226560,512634368,-370671060,243967,-22812592,11796480,-1023257952,45361357,-466479411,61374244,51118708,-855460669,684573462,382534068,-1073018508,-4716683,855829503,-1205943360,-661774199,201319400,-972524352,153350,-402599959,104005566,141886034,39257798,12511488,192155816,-968490824,268588806,-1476349975,-1207208928,113657088,-383778217,1084752032,12061556,1460061754,-1846984702,1946724352,1376187946,427100162,39272064,-401968120,1403191422,1427540226,8579074,1912602808,939571203,39257798,-1469846776,-164989948,67260934,1048582517,1946419799,5302282,-1996336221,-402500330,12058708,-1207733760,113646848,-352058793,1946396725,1376187947,427098882,39272064,-401968125,1403191330,1427540226,2549762,1912602808,704690179,39257798,-1878529277,38929968,-1021329357,-1900006626,74228184,74323595,-269958369,1427520511,-1559727358,378077779,734200405,453137158,755127574,-628948974,-1205943552,-661774199,201253864,536442048,-1120061,39261834,38934064,39257798,704658688,4007028,1025471517,443824128,1950679101,973094165,4001908,839611462,186043876,-1207732800,-842792961,-855526360,839283734,-350827036,-1957313550,1988843244,1381191684,50657030,-1960020992,-1031574700,-1702562300,276054016,-336718672,-1308512256,15462110,149623984,611140746,15462135]},{"sector":2,"length":512,"data":[554704580,117934118,1582848858,180829,1458342741,1342469771,-150580653,1946157828,1800702757,-167460221,1073781380,28313972,-336666958,-1965510144,135032132,-1006572562,639701022,1510410120,1566464091,-301989182,-528088853,15461954,-1018503034,116841267,1946313652,-1205976319,-661741568,-66060103,1960512420,-119362559,1465303839,-1207710022,-890764796,-1274611969,108331619,-402651720,243335101,-1006345292,857808958,-4396810,1672742646,-1107069950,-1343733760,-1017225217,-617413090,1672742646,1124168706,-1610565626,12173454,-1526980848,24435467,133751466,1465303839,-1207712582,1927808002,-989907969,-400482250,116850634,1946313652,1073790723,-1191199256,1458048770,-1017225217,-1964209323,11797574,-1006539032,639702046,1568614272,1426064066,1586162827,1862645764,-1006545176,639702046,1568614272,1426064066,-1957237621,-1937111946,76218522,10134656,33597823,-397342860,-1863712819,1878272,-2064251019,1946419361,-1545055993,-1870730241,470041847,-1006078976,639702046,-1962406016,-1047893164,-1040810204,-1274514048,16377856,-1953473557,1086453516,1007514624,-1157008113,-661912980,485212302,553918148,1008714790,-2096008702,71045315,-1014822286,1963408400,281248515,4243959,213386612,-1207702784,-930414576,108462074,-1325530136,663365120,-25171901,-169688834,-29824938,-1034068229,-1957363708,-1185458452,2126774288,-625279996,-1062015997,-922828406,1107356654,-1442780180,-625808158]},{"sector":3,"length":512,"data":[-1329548564,15461905,15461442,-321211734,548454578,1593895918,79846750,-326413056,-1006628679,-625343394,-1062015997,-922828406,637594606,-297597046,-253624085,-336719440,126494208,-1342116882,15461920,311901,508581718,-1910470216,1040631768,520094036,1344392536,545896478,113760398,21566,1583306783,-1990764853,-850128338,305040144,-1017225388,707013156,167782948,1162084608,4674882,270473,0,791644,0,2364517,0,4199610,0,4986641,0,333572,0,0,0,0,0,-1957363712,-61384980,110403886,-1064380274,147461772,147334793,147205769,1023986849,58064895,1342475425,76166911,146978846,304912976,-1432154239,-1407809272,1975651080,140568592,33965767,820877824,1659568128,136177808,-1945612824,-1077899560,12124792,-1143436287,12190584,26077185,33980035,-1365125260,-1308228856,146055944,145628868,147592843,145886859,76166795,-402241909,275972511,147334795,147205771,-4538317,20376063,146030219,147588750,-393214288,1048773602,1946159292,-1371618288,1031808520,-402230068,401082938,113716737,1738,-871971282,-970063866,1515014,76194192,-1593256285,-660405108,191162376,-401842712,-1969157235,-1944679676,206473988,2126784995,2105550344,443809797,1963277094,-1910110699,109838917,1508378978,130255875,-751075726,-947684748,-388308474,1802699857]},{"sector":4,"length":512,"data":[-1593835079,104531082,443877590,990153889,1963513862,-704198895,-248,1225034246,33980035,113723252,-63274,-1942552751,-1976107260,-1028121084,748310536,1494188306,-636757877,-1554964876,378079402,-186120020,-1365157626,-1979303160,-1593215740,104532144,1031013516,76156417,1979658985,-13768427,157431551,76166911,146978846,304912976,-1432154239,-1407809272,112846856,990424737,1963231750,145793289,76285499,-1964440716,125233406,-1593637912,378210474,1583286444,576093,145637060,637897254,-993262138,-1442267586,146540231,12779520,149070592,148905609,149167753,149423815,-637337600,149298825,148520585,148637324,-523124341,-523116335,-787947869,-205507607,152085419,147563054,-569492541,-385649144,-157089483,-333543160,-301560824,-266958584,-1983184120,-955715058,593414,113651200,-1577121588,-358414106,-197752568,32172040,150740617,150869641,150998665,150746763,148637326,638123681,1819608197,150224523,149816974,-1996037656,-1995897842,-1945565634,-1559689210,915081474,109971708,-23000868,1477384,67708425,1967841489,112654,-2097147718,109249222,-503183108,150905832,151000713,1024000673,1031012357,151914183,-1071448064,77673333,-200933111,150249736,150079035,-2064973197,149567115,149304891,109974900,-1960441636,-368671948,113705480,2318,-117484823,-2082960445,-472809501,152086527,1810367920,-1447302399,1282670720,1609042096]},{"sector":5,"length":512,"data":[-2084443391,50922046,915081076,619251974,104238079,17754121,148637326,1964475686,-65107169,150905096,1963402022,-366050339,1049297416,1044056298,124913892,-1425471839,-385912855,-1007091356,990447777,1963519494,149987605,-1593243485,104532230,108136684,150079035,922721650,922683656,-1205991162,-1706030838,260117036,-2139831797,1053034160,-471332602,37651200,678691593,-2080426519,593470,113707893,67854,-1075313488,-15800064,425603,-2136384395,-1341623296,11331591,-989922327,638125630,16001,292896717,21334822,-365068250,-1960442764,111346245,151560457,149816891,-257882507,151560968,151533311,151402239,151697438,304912976,-1039462527,112200820,151666372,-385849880,61931180,-385853976,11599524,-385856024,28376732,-385858072,45153940,-385860120,908852876,-561313556,-338492239,503571409,-427620134,-773402353,580160486,613190409,-2128166135,-855637954,638416191,1064579,638022656,1050254,-1007041544,150224523,149816974,1946185960,-467760333,106401032,149558843,-1910626441,-1995906530,38243391,-402307192,175308732,-2012902874,-970587065,-2095068155,101245958,149423871,452803,-385584152,244054974,719522024,-533281506,-398670840,208863116,-868384730,1149896309,92808708,-502872445,-526311448,149201672,149423815,113442816,-1950184418,-485955570,-533281518,1966881544,39074565,-964483468,536011270,206474014,1992628195]},{"sector":6,"length":512,"data":[92045320,990475264,990213436,141820500,-502872445,29982956,-1950152929,-1912014794,638116358,501759172,639857407,1976319360,71600669,-402290650,915080602,109971704,1019480290,-2012902874,-970587068,-1950102523,-485955570,-532772073,-502886904,76194056,76289675,-2096663377,-119405369,637977593,-773323378,130256126,-751047310,-1960384139,157459205,-1996296317,638122046,-1744484982,-1962345821,1946631384,1946696733,637935129,-1578617404,119473918,1015024498,637957580,-2012985974,-472834300,157591551,-1946198808,990153782,1963519542,-1976136891,-331990268,993751560,1929966134,-28645323,148637326,1964475686,-1976136953,-62658556,-389824462,451673897,144836295,-672661503,-1576614140,-2097151992,1963001470,105301765,922681344,922683746,-1205992310,-1706030838,260117036,150617731,-1962511097,1960446936,-397258661,1482358392,-636757877,-308672139,855638064,-1009634368,1342473889,150486667,-501314018,-399129592,-2144928272,108383292,637814154,1478427784,1912623165,-1610597089,3999090,840266432,-2036218944,-1610597116,1346226547,-1580961280,-1075116920,152059523,-1708231424,12525,152045255,243990529,-987887384,-2146901962,1996752252,641516558,1976319360,71600646,-2096789466,-404617530,-1010814433,149425803,-987883037,-1006051274,1031808572,-1979288116,-2010774460,113672965,-1021317662,1458342741,106335063,-904491270,-936998136,780925704,-1909585722,1376162846,-402266904]},{"sector":7,"length":512,"data":[367527280,-39655422,844808243,1048588022,1946158796,1221626627,1442485225,1465314443,512634398,1183516308,75931910,-2130405213,298510,650153474,1443470,775341094,-835286784,-804877304,-871971064,-939524344,565766,109981184,-1070397804,-164374386,-1190880065,-1510800896,-1910470216,507415512,-773336831,545896679,717150350,-1664646818,-1096440572,146756675,783002885,-1392066397,-1029493077,1413135878,-1526388545,1580121765,-1526387521,86032293,772115238,637977763,771900811,-1207515485,-1934944481,1595911112,46816606,116796928,1954547404,773769985,110370446,157419148,1776861836,1958743036,-1542550716,505209608,145110725,1963086907,641501964,1149765002,96871940,113673164,-1960842526,-485955570,918887964,1413155040,-1962117886,92939836,637813896,-2083781178,-354285882,-1572961505,326369288,-1977156725,654258717,-1983117882,-1945592258,-1995923450,520657950,-1405681717,-1439236344,-1363665400,-1205972984,-1706030926,260116987,292864011,145753742,147588748,1929108456,-1341748220,-1010824440,0,146540231,1317732352,-1542551284,-999955704,512297054,109840550,1397819560,126559750,259302190,38243110,259433262,259301678,76154427,772161653,259393166,-1929670680,846333888,76285499,-1070453643,33980035,1048787829,1962936508,1398474548,-1140406522,-1929379576,-1096612793,-1073312760,1053044232,367726452,-1003607061,101676094,1929072616,629810695,-872036826]},{"sector":8,"length":512,"data":[-1946046457,643499970,637880200,1493460872,1225180035,2045313908,1317782527,505733900,-2146928955,1946158460,-1908634860,367526468,1031808763,-1979288116,-2010774460,113672965,-1021320734,378130995,-1960441020,158776861,-1392489031,71025443,-964490380,-1175133692,-1070399487,38570691,1149955378,585380355,50560713,896844746,-242496002,-964567305,-13758331,-820990684,-317661168,1964012816,571548432,-1945009903,454137617,202446097,-1575941871,-1039029999,-1374619887,92939793,641483335,775688308,641467508,113740917,-62652,113738987,461636,-1946190871,1166681816,-1919707135,45679225,-1010171136,22907686,-1190954611,-905773053,2110006979,375041,1204013571,1569334850,-253526015,1965095808,-905756156,384518083,33945126,-347991947,100017677,1107784962,17167910,591528308,-1959496256,587940878,640449737,-2147394166,594788603,-1056242461,-478142997,117145799,-478145164,50036743,-75494028,-2146929661,57935611,637535757,-2147394166,45729763,-1057259520,79238259,-2131001344,-75494285,1225225222,1933638528,-905754367,178627,17167910,-1019149964,637534905,1963066870,-1178386175,-165281790,24381445,129549121,1103792896,113091,62456811,189047040,1946158909,57950441,50333368,1151452106,474379,1950406772,571605,-1019098485,-402287128,-1326972924,1053082373,-1977219958,1959541765,1959738419,1956396084,1956461653,1959607401,-1911652063,771817476]}]],[[{"sector":1,"length":512,"data":[113784575,-939079890,-402652922,-1892810222,-16332794,-385578490,1575682217,76154623,-1845063997,-1877046524,126559748,38767398,72846118,-1996191069,-1996190706,-2096853482,100962310,780369387,-1962802032,-1912303586,-1593535994,-1993997170,-1979252985,512475908,109970576,-1960442734,-16833273,-2096853341,33853446,76154623,1569334979,-771804671,-2082221597,33851910,76557955,-1874949370,-1845064188,76194052,76325291,76456363,-1014948181,-164756324,-2147038202,-1070397324,-343811954,126551196,520247179,-1996191069,-1006334954,637831742,16001,175390669,310745606,1654853505,-164707575,-2147038202,-2128199307,1950338365,1031808534,-1942718998,638149126,-1560197692,109839498,-389872500,535299211,18409472,-402634520,1048773726,1962870940,-1640053746,1031808520,-1610320436,-1012266852,567103924,77209225,-828259442,782444040,147890432,3187494,77078155,567103668,2812154,771780584,113772231,-389873661,434634893,113716736,1736,-850283269,-1742829279,-1709274364,-850349052,-1070349535,-327033717,-461175807,-1948741890,-1962469648,33602044,781231603,110370446,-1912300354,-1174893632,-1510800896,521598091,772054207,110364302,-217972551,512634533,-1909586284,-1962503162,236897251,-1900006625,110542528,-1106343122,-125063930,-1996125402,1166747140,38045954,-1526413693,-492058484,-1950146584,503617566,-628176244,-1064386509,772183742,113118859,653822893,1963087163]},{"sector":2,"length":512,"data":[71600912,1963277094,1185260808,535421510,1564026563,-1896713726,113673178,-1021322526,189146761,189273740,189410953,-1962641221,72321799,-1962518645,2139818615,141527820,-99596402,-1961207922,-321433,2013206135,309853972,-1912447093,-821787106,-935427282,175374598,1048784591,1946355400,1394528001,-1809936850,75021062,1200555913,72321282,-1996073079,2139687543,141527308,-1945221233,1200558151,340234002,-1944696945,1737038423,378468888,646646600,-1946481850,-2129966546,-16837017,76156671,1461634044,-544276685,-16749377,41287477,67487738,38636565,520040092,-1879439704,93258309,-851541970,359923718,74524288,113651327,1342179021,-466463149,1532892877,773807960,114034422,-818645759,-871464914,-164757242,-2113483770,-970057099,17222918,512634398,113706644,67754,145491655,-820051968,-871464914,-13729786,772194350,114036352,1048784386,1962936010,777199294,114034422,-1156156032,-611442551,1551122048,772436992,114034374,-350266494,512634526,2025522836,-1895331580,1334379079,106400004,-1995802743,1871252607,239570696,-1894758516,1200558663,373788436,-1994762356,-1896212377,-1962358250,-83310554,147205771,-871958994,1802862598,-871971282,-386170362,132708964,-1442396168,-956301048,568326,-1942552832,310745604,-861728895,1603948552,185565458,-1592625728,-397409140,1968701563,-1945748686,-336366588,-868810792,-1976107256,-1028121084,748310536,-1961918190]},{"sector":3,"length":512,"data":[1977224152,76325150,5367888,990410072,1946455046,-139531304,772320286,114034374,-1558385920,378079402,417859756,145662457,76154427,-1331572875,-1945748728,-1262062332,-1994273455,-1962633186,-1274766818,-400437936,501808529,519568381,1256786090,-1975612430,-1945727484,1031874052,1333010893,-851607258,642282515,281886081,-13745804,772196406,113772231,1441267713,110046971,1048643272,347735178,-164755596,17222662,1003195587,1963232286,922693361,-953284920,17221638,-43194368,-939094226,786164486,113903303,1195835393,637897254,1355548102,-13740282,772196406,113772231,1139277827,110046973,123668168,373015180,-529202036,76168763,643357301,-953285240,444934,116796928,-1023342900,-905511122,-13722618,-351881186,117386791,781977290,112205567,771758827,387858048,774468864,113903359,1951136896,782039076,113516287,1357679445,107382943,-13738664,772196878,114034422,-820349695,-1003552978,117321222,781981470,113516287,251539100,-342026466,-36967985,-1090517826,1555564184,-617406956,118414222,-1910528603,-58946109,-930305030,119471019,311235,-1207527234,857609308,650350299,108332347,-1510334706,505412517,-1957313785,509040364,-1962387829,-661976506,1452001931,105286404,15307418,-50040064,-66917383,206474232,1586370275,108432132,-1962391922,108202622,-117182205,-1527558322,1583292412,113754973,-43982,1412433607,-1950089217,-1588317674]},{"sector":4,"length":512,"data":[1439388720,-1205932917,508585635,-402229505,-899841071,-1957363710,820806636,1183651414,-241545008,370080513,1356088973,-83750502,108461838,-1341884673,-1070379008,60660304,-259322117,-2984193,295358582,185531138,-1173916426,-1031012353,1183523307,-263844882,1183519860,-1949158420,-1950338096,-919344546,-787234045,-4586005,1589808127,-1034033781,-1957363708,108462060,-8919026,108314635,-9967602,-14809109,2045249142,46816767,-326413056,1443032195,108956503,621037195,1183449087,1996431102,178184,80255568,-259322117,-1072970101,1317737854,-1193833474,-561293567,413850,177886720,1594817285,1575324510,1426065090,-14750581,635962486,840337919,1412473684,180829,-2081649835,1183649004,1239961848,1183668690,1441288436,1183537618,-129759752,33515137,8332799,1175052497,-79262977,-26836584,254148127,375040,1175052499,-96040194,-26836584,522584032,-28964608,-1258994038,-43613952,522583815,-773795584,165728736,1183513926,-2130660108,-132121498,-1191166171,-523042811,-1963178487,-388958394,1719730356,637526268,1174994975,-27882500,-1979955573,-1554763242,-443853776,-1957313699,82609132,108432214,-956014965,-352321273,1015039489,-2131069920,-176944836,16664263,-62470400,1290469376,-1711374719,1968142105,-58818297,1182243225,-1711374719,-2129890023,-1717961602,1015022965,-1959559371,1183579734,-1144441860,-1281753078,1375731945,-1744532912,56187801,-2083908648]},{"sector":5,"length":512,"data":[-779890493,-28407297,1190944393,2083536000,960266245,1015065214,-1962445824,130483294,1451950080,-62485506,1575324510,1426064578,-326898549,108461828,-402360577,1451884376,-62486018,242405899,-12778121,-1962445057,130483294,1183514624,1575324668,1426064578,-1957237621,-149021386,1979645956,71731980,989921061,-351177724,990153479,141820998,-2096904573,-545980356,-1744681846,46292318,-326413056,503871231,-16353537,580519030,990837509,544474182,1343457720,1412708095,-1200087064,-1588592639,347741312,98760448,-397386190,-443821327,442973,-2081649835,-1957276436,-1923742090,-11490234,1592263798,1346394575,-21784,1183646838,1810387116,190405071,1447065024,1353467533,1342179256,-1191211288,-1924136750,-397366202,1499057998,594919435,-28930730,178256,-9312176,637421195,378273536,-494855752,-1036255488,28837237,-1207047424,-11529308,-397134794,-1070368880,1575324510,1426064578,-1957237621,300614774,-14351221,105266047,-963967883,-964490517,-12811514,-1070339467,79846750,-326413056,1443556483,-62470313,1183514624,1412735752,478152447,-1172537183,-487129068,1348350469,1506928360,57982987,503367913,856192767,-929410880,-1961952508,2113866744,221558797,142016336,-378071064,-11075411,132646006,1975520255,9824515,-1172537183,-487129068,1348350469,1506910952,57982987,1459651817,1358317197,1342178488,-2080464152,1962931838,-159973529,-402229505,-259260595]},{"sector":6,"length":512,"data":[-1072970101,11551348,38046544,1358579337,-1996209013,-397345210,-997994857,-129594618,1945781819,-96040701,-25755817,-386238721,-1957167521,1177286726,1389507578,112720,91527760,-1679094021,-129594537,1347605043,1342177720,-83528550,-7870194,33310407,177886976,-15795451,-1961066482,1583348806,-1034033781,-1957363706,861361900,74907638,1506655464,-12060533,-14809482,-1705573258,251331915,745916219,503740159,1342231224,1342179256,-83539046,474382,1996428917,-1195893242,45633561,1268404224,1024391941,57933826,-1962933826,1566465990,1426064578,-326898549,-1957210622,-13433226,-1559738741,1344164916,1342178232,-83572582,-28931826,243122187,1343472056,1412708095,-378154008,1996423285,74907646,-1946194968,-1958482952,-359660,-1023998348,779452416,519993087,309334,88840784,71110395,-15436544,-14745994,1962869876,88840706,1144721147,-1090161662,48955393,1015283507,-2096663297,-16054586,1996470644,84581118,-16052485,-810018444,922701843,1709724724,922689141,1956271156,856619777,-1207702592,1583284225,-1034033781,-1880621050,-1256813655,473858915,478025985,1360631,-1023994252,141819908,18613959,250282027,18613959,116064306,18613959,1438842905,-950604661,220285446,-18432,908650576,-1207666945,-1202716384,-397410242,-259260679,20825739,-1206487808,-397410016,950206858,1742190676,74907472,10438042,1590070016,180829,1458342741]},{"sector":7,"length":512,"data":[558499527,-4718577,-471314177,74907445,1342251192,1342193336,-1946331416,1036422128,376766465,1342251192,-1560197656,-675785672,1996443751,-1622828540,-963969024,46292318,-326413056,1988843350,1979058948,-1958837494,57999403,184580329,-401967882,-1073008966,-1226237323,-1270971648,276103195,-1959637016,197626872,-1962574400,11594183,1333065227,1342314168,1660106495,184625384,-1203735360,-397384971,-1072995525,113718645,12721241,-1202667469,-1202713760,-1202711348,-1202713731,-1202716662,-1202716652,-397410300,-998018460,1968782350,35043414,10807376,-2090667101,2854206,548951156,922701825,-756526024,1958742784,1742190661,-20191152,980795403,475596487,-1070399293,190888016,350468176,192788560,702544,1357904,309328,1913579600,1007600771,-1207602087,216793087,1342251192,-1560262168,-1070377928,-1034068385,-1957363710,146691820,71731712,104005812,916673590,-149034156,22296070,-1592953856,-388934602,-1551629259,149640246,-783010143,1412867048,189712011,1591506368,180829,-2081649835,1465254636,-956008821,5518854,-1960776960,1149960828,-28931836,1586170859,-28901378,-1712834561,1338477567,-294273013,-2096707965,-613023940,1599354529,1575324510,1426064066,1996483723,-4921338,1946437179,112645,-1070398741,311901,-2081649835,-1705618708,251331184,-2130753912,6532926,-1348463244,-12174749,113641333,-352296017,1672454150,-956348792,-1607553466,1183326466]},{"sector":8,"length":512,"data":[-1371108433,1666909755,1572343669,1538805859,2028490851,-346465846,-1475228330,-1324715007,619237894,-339673597,67153922,-12174783,922697079,-1927912529,-1705988538,251331348,1353598605,1506408680,-964431733,1538807550,1183666275,-1847045968,113542093,259375115,1527105163,1538805859,552095843,1582913994,-1017256565,-2081649835,1465254636,1348710328,1506393320,-1202194293,-397384878,1599719857,-1202194429,-397384790,1599719845,1538848771,-1696051101,1183406537,63409150,1178336838,-1958511100,-953482170,738096779,1606844912,-1962087581,939476702,175711720,-2147125824,-277544900,-1207570813,-1957684806,-397393722,1499056555,-2011102560,76022852,1666955350,-912660400,1583307097,-1034033781,-1957363710,142016492,-394394904,1996488386,-10164220,-402229505,-1034060271,1397751814,503730769,-1118480554,-577888119,1413365379,-1223658496,-402410496,-822155969,45351095,1575302888,119496287,1482381658,1364414671,1444808274,-1984080553,870157856,-1145008448,-2144992143,113737511,87105,526278493,1532582407,12111704,-1977496269,1413522114,1413547719,28835840,-855592397,1816609,-900994992,1159104857,1413718868,558479374,1816656,-901126064,-1207516029,-397410269,-1990604243,-1554760682,-1207020486,-1202708198,-397410269,-997995989,922731270,922702917,465065027,417878016,113542090,1413232383,1413101311,1342186424,-2083911960,28837572,1075218995,-1021194924,558499527,113704961,2890841]}]],[[{"sector":1,"length":512,"data":[624082408,54329599,-2096663552,5521726,1458048628,1090963251,-1207959468,48955393,1355006003,106058067,1431787038,-1910470211,1583308253,1499072287,1439651931,-326898549,-164407804,12066795,870222660,105945801,28835840,870222660,1087013321,-1695141376,1616,100565830,280550524,1793609728,1451841993,-62486018,572766222,1095760,-915806128,-1274624893,-14562037,1996488310,1095932,-917116848,1577501827,-1017256565,-2081649835,1465274604,2117730099,-385646844,-1927937837,-11489210,-1399192458,1376747792,1948772432,-1929333271,-1705988026,6147,242597899,-1337553642,64199248,-1073017093,-1927923596,-11489210,-286783882,1979648801,9562371,1353729677,1353729677,10438042,74907392,-1337553642,281320016,1996427137,-1337553660,52226128,29322219,1493616384,-1207909348,-1924133460,-1202671546,1347420165,1342197944,1342187704,-1955747864,197561328,-2143978304,1962979454,74907413,-16573720,-1927936906,-1705988026,260116676,1183655915,1183666352,-1070378832,224049232,472639568,-963907445,75350027,216778379,11566720,1122567028,100710655,-443851169,311901,1458342741,279485015,-125104255,-352321090,1996430872,-1399171580,1376747792,2016667728,74760203,132892299,2130131782,1606431716,46292318,-326413056,16837761,8817942,1996443903,396466694,1347555201,-1586295576,-1432147230,8818021,1183535359,1241918214,-11517868,-325057418,-1979665366,-1238701546]},{"sector":2,"length":512,"data":[1220684544,-1874204592,-1034033781,1465253892,1665664711,1520500736,1443248980,-1593409964,1520653398,1415225684,1414137403,1252197245,1245610836,108331092,1414137543,1252065281,1409680212,1510357844,-1592623276,100881482,378229844,-802466726,1242956098,1245088596,114516,995497195,1968462390,178181,-1070398741,-11671472,1044072262,-427928492,1438867039,113765515,25416,855930623,820531392,46292479,1415225600,1414137403,1252068732,1409680212,1510357844,-402292908,200015708,1415198463,1342177976,-1006696728,-2081649835,1465255148,1415200395,-1990964575,-1070334906,-1989982045,113770054,1057098,475596487,922681541,922702934,1522029652,1253593172,-253210540,-1578071185,1178293322,-402295556,434896648,995383969,1460040903,-335580952,-28931319,1665664571,2028471156,1414177279,-1946401143,-1588307394,1183408968,-97282,-25095300,225707264,1946484355,100565768,-4287371,1606847487,1575324510,-1084795197,29229068,1444080384,-2129157734,-397389297,-952405655,-125107586,1446394694,-2081915308,75442431,49006475,378153136,-802542868,-1996635520,-1607800298,-695522581,-308100606,1980775466,-318323195,-308277206,-1979665366,-1238701290,1220684544,1599362211,-1957313698,-4303124,336108287,28839809,1415226112,-1705751901,260118429,-397125981,117440383,-2136925056,1358364,839246583,-1729605538,-1072997945,-4323980,-1204884481,-397410288,28871100,1944604672,-32577361]},{"sector":3,"length":512,"data":[-1946239512,1036422128,292880388,1415198463,-2129142886,73304847,1468598153,-2146500862,1095708,-1976899504,-2129307238,1590070031,180829,1458342741,1421786711,-352315969,105155358,1963345467,74907410,168150667,954748928,1448696260,1325442792,190760579,1608414719,79846750,-326413056,-1094822058,1425236,1149965803,71711494,1153894773,-956301310,1325400068,190760579,1609004543,46292318,-326413056,-1094822058,1425236,1586179819,138906374,1963476027,75399967,-1961265920,656838,96701264,-397410294,1499055002,74825739,183223947,1590068047,-831127797,1583333427,311901,1458342741,-2096859509,1815614,1149961844,71600392,856192255,-1276620608,1514440989,46292318,-326413056,1443032195,-2096859509,1946159228,96897834,-397410294,1149893750,1958742790,141885206,503739647,1183651414,-73772802,185565457,855930304,-1207702592,-1956773887,46292453,-326413056,1443163267,75402071,-1993729887,-1094779322,-62470316,-1226244075,142377728,-385649408,-397016921,-1072955501,-1662450828,1979648768,-963961250,1342179845,-402098945,243342677,33561324,857596648,501764288,403097480,-955493078,-971220730,1354773248,1342991544,1343007160,632082152,145882880,-1605310253,1519917799,-1605185533,1352145638,1342178488,-2090248216,-1952969532,-28931080,-1960175453,309703,774368955,108267323,-136166589,-13752341,1771623,4522051,671875145,670967814,-397006846]},{"sector":4,"length":512,"data":[-13434836,-397014037,99287076,-340078408,-61931755,-2090940797,1946221694,-12457725,-1560280648,1583305800,-1034033781,-1957363710,1342222572,1342201528,-402360577,-443825549,1415057151,180829,-1094756522,1424980,-947189013,1348388739,1325388776,-227150325,1218691123,1415095124,432015047,15204353,-1017225443,-1070167210,1480491801,1685323860,1415069315,-1961853183,6208198,-661921033,1416150915,1176597760,104580747,1148459456,2081881731,114179,1589298827,-1948059904,1757381592,-546045868,432027273,-1161393378,-487128994,1347709445,-397361101,-963961843,-150970694,-1948742686,-1554728313,-1075307750,479062102,-1957313698,1659667436,1187469142,-1962933856,-1339418562,1589137408,1183666176,-1394061150,113542081,454702847,-1994672408,-1548178874,1183666278,1894273196,-2091296319,40740926,1183648373,-722972510,-1605989891,1352812173,-397361101,-259261093,-1072970101,-397015180,-1041629464,-1602321664,863204608,-437759808,403097479,-401844950,-796153057,11847306,451387472,-805086568,-1268494176,-129792,259838011,451677825,-253230592,1354773275,-947508248,-954443514,1354773248,1342925752,1343008696,1342930360,631955176,145882880,-1605310253,1519917799,-1605185533,1352145638,1342178488,-2090375192,1497108164,1048791925,2098549848,1421786679,362694343,-2094667008,1962936444,6207513,1183667792,216551586,113542081,-51320746,1415055103,1325340907,1590068126,10387075,183227765]},{"sector":5,"length":512,"data":[1343012280,-397361101,1072195784,406751515,-1956749526,1438866917,-1957237621,401278070,-2096472437,-1962538426,126550615,1963480635,105265925,189662580,-1947896330,-1034068282,-1957363704,82609132,1623086934,71732052,872302217,-963961089,1342179845,-1710852865,260116652,-2098704302,-1796712852,1212056572,259326036,-397361101,-1072956213,-793246337,-952112198,1506374,2088972523,611581960,503609087,101041803,-396931072,-1072955527,1418400373,-1962636542,1468661342,-2096658174,1191640646,-2080616705,2122538694,-898301700,1583335307,-1034033781,-1070399486,-1558582621,-593290776,433759001,-1558589789,28842444,434152192,-1021721437,1458342741,-16484725,1458047092,108330934,1414674175,168150667,-963948544,1342180357,-397361101,1566466125,1426064066,-326898549,1577502466,-1962934188,-2145794018,1299447871,1414545027,508785920,922689107,-1205986858,-1202695076,-1706033151,260117850,-385923448,2122319292,443810047,-1258338678,-861714432,-1547685095,-995943968,1415488281,-384181597,28835964,1414570752,-346792285,-702641395,509465,1415317191,2122514432,1651834884,1415331459,507278336,434386687,-701038818,365795865,1183321985,90368255,16744064,1183455604,1208005887,857335971,434152384,-1558592349,45619674,-953488640,5529094,-1205867776,-11529103,-400959946,1499053751,-526139341,432317209,-1558586717,-1070392884,-4717589,1575324671,1426064066,-327029621,1465254662,16664263]},{"sector":6,"length":512,"data":[-91845376,432579580,-17135987,-1927686493,-1543636346,28842468,434283264,857327267,1414570944,-1705746781,260117512,-1272250976,-82408960,721466922,-195134,-1202433373,-1202716655,-1202716626,-1202716669,-1605348270,11807486,721163914,-1037369162,-1070378936,1668212816,-1912846711,1358756486,-1333240088,-91846656,-91846403,245502,-350626113,-963948946,-150993990,1120963554,721133634,50659508,-56602624,50377770,-39825214,1208005674,721199184,-1039990604,-1605353408,11807487,-216102064,21465642,-1974468428,11797319,112720,-85438384,138774964,1342185656,-5767448,-216102091,-1274574294,-1276620800,112820,-1467684784,185528195,-393316874,780402132,-1962650542,965318,-125050121,432195457,2013257611,-1271142392,-397361101,-963926060,208977931,1946157373,146721,887827060,475596487,1048772808,1946180983,1292293,314049515,558539520,113711851,13179993,558499527,216727572,475596487,113705162,1384778,-16353793,-1202433482,-1957691137,656839,96963408,-1957691380,1346388167,-402360833,1183407926,-1002535942,108331033,1414530759,1183514624,375290,774743995,125044539,-136166589,771799785,681983,67109120,553656320,791562496,791526190,-1959900882,1958742982,81164,37560692,-348687360,1342621515,-1207959468,-397410303,-1072956103,512440957,130423268,-2094339328,5529150,-2037568908,-1924071686,1358822022,1505530600,179801]},{"sector":7,"length":512,"data":[-1070395413,-49551280,176013323,33441479,-55121920,-259325205,1343865528,-1191392792,-397403696,-558302014,-1142403047,-1959859204,965318,-1039801609,-1410838503,-963950852,2080375613,-336186600,-1161393388,-487129074,1343865349,1325175272,46007165,-92372224,-385647616,-1027604843,-15930599,-622327691,-1537677134,-2129737853,1981406975,1161454,-2117146544,-386107649,1503310529,-2096135915,1946222206,-18422,1264838736,-1954838808,1583348294,-1017256565,-1094756522,-1472298156,863306349,1551122051,-402426880,2062060928,1425139,1170673131,-956301310,-2097151995,189685447,871331318,1414046656,-1705751389,257163784,1595312872,-1957313698,82609132,100712022,1840658175,1349003192,1505464040,-1241069735,-9951379,-9584586,-1704083914,260116620,-1979820407,-804520890,-1706018444,260116652,-1741100976,-25038709,510985728,1840527103,872314623,1877496000,-1205972971,-397383641,113710174,72319,-25092885,376770048,-1577058370,-200970828,475636481,1349003192,-397361101,-963943576,1575324510,-326412861,10546305,12539734,106334982,-1996208501,-1554756074,-12757940,184841727,-2094762798,1946158206,1279165214,142409812,-145470303,1414308824,1414413955,-1593279232,-654879666,-967553373,855683142,74856950,1605911925,1183666189,-1552208,-2091296327,1979647614,114195,1343058872,1353729677,1505356264,10742105,11552454,-1559869813,-1096738370,-1073345683,-385649299,-1477967731]},{"sector":8,"length":512,"data":[-18421506,-2097094935,2080375934,8120579,1343063736,1353729677,1505341928,108954457,-1106084096,-1833435135,1183666189,-1679273808,-346465863,229095510,-1337553584,-1181947824,-1927915175,1358913670,1414280959,-2129613670,-397389297,-2037553515,-1924071584,1358913670,1353729677,1505351912,189708368,-1177556912,-805086631,721439928,-2115481406,1619430896,1183666431,1139298480,-2141627975,1946202238,1354773290,1342918328,1353729677,1342929848,1342178744,1342180024,91551243,-352320072,309251,1617619024,-2129738621,1963327743,1312227085,1278672724,-237705132,2122578059,208928772,294531,2122516861,58654726,-1946303000,-1956749369,79846885,171868928,292880444,556678787,-2096466688,2855742,803734388,1048824694,1946165550,1969612803,-326412861,8973441,2022083926,568873215,-2114941959,1975177470,-1160726516,-1979824503,-2048263098,171868928,125108284,192329960,-1206880832,-397384779,1488498620,1827164260,-2096436370,36410174,-672660619,432662645,1458594792,2022083862,1996443903,114727428,1451819008,-62486018,-386926616,-790095425,775848729,91488289,-344659224,842957078,1969510433,1683535889,-1351948208,1348711864,-395437336,11569579,6207568,1415624784,-1191319472,-402209661,1452003841,-62485506,1575324510,1426064066,-1957237621,-131267514,409087,-661966729,-13704239,20045735,-147719118,-231602639,-315488719,245087793,1119754219,-1106056435,233508527,-351373378]}]],[[{"sector":1,"length":512,"data":[243842568,1639842795,-1070377458,1623386192,46292318,-326413056,10808449,1007304323,-1609927680,11822086,-338408728,-1472298224,108266093,556795591,-135790591,289388660,1821829200,-386957336,-739755393,21731892,-2065166508,978970676,-2081482776,3934782,-2037561484,-397344932,-2037666148,104595292,745890904,1342219192,1348753592,-10713459,-1200756656,-2096708477,40740926,-1548217740,-38252544,1488474212,1424511076,113542072,1342177720,-344656920,1942611996,1839742595,-1206750206,-1202716509,-1202690819,-397384616,-998000593,1575324422,-326412861,-1472298154,158597741,-402456088,-1075279555,1996430984,629252,-14807212,1872365174,-1961929728,197561328,-401900352,1055457051,-2007897873,-397015829,1048837825,1946316200,-2003507194,1586047976,311901,-2081649835,-1101658900,1996488703,-35002364,-1979820407,-801244090,1376416954,-63313840,-387387253,1590070134,-1034033781,-1957363710,82609132,1623086934,-1809922988,1606690308,-28931054,-1073979767,334168086,-1962781557,-27903228,1178273141,1325954300,190760579,-1947634177,-1956749369,1438866917,1465314443,-1207667061,-397384029,-125046786,-1072969845,-1548209548,1790464102,-387428268,-10921546,-400877002,1755517207,1715374420,1415624788,-213522352,443924491,1343101624,-397361101,199974664,1343109816,1348903864,-1101071384,-963966715,-1034068385,-1957363710,116163564,2123061078,-16892,16664263,1354773248,199902952,-385647168]},{"sector":2,"length":512,"data":[113705253,-58946,872062440,1347440832,261154896,1551122051,-402426880,-1205958663,-1706020632,257163273,-2129731174,-61437681,1039812233,1400242175,1979710083,33521989,-2096663287,5527614,113716852,13311065,-1202667469,-1202713749,-1202713088,-1202713731,-1202716667,-1202716662,-397410300,-998024012,1952005134,10217731,33441479,151109376,1996425707,-46143236,-16737559,-1259798922,-1160757774,2062091125,50299136,1460040969,-1946230552,-23140104,57982987,-1962342977,151072199,1996489789,-774337693,-1476448541,890778818,891041048,885798092,16416387,2122520182,276168956,-231681,-1863779722,-386888710,938177855,475596487,-1070399284,191608912,232110160,192788560,374864,702544,309328,1545005136,1007600771,-402295719,233568658,65795979,-939524162,18952198,1606847232,1575324510,1426064066,-326898549,-1957210622,-4324226,1036487679,41158915,1609041643,8579577,1839742595,-2096008190,6881086,2078802804,-1472298240,393544045,-1986547480,457047622,1029665792,125042777,1839742595,1460171778,-1953020952,-1202983952,-397344769,-947174330,1024000301,980877316,-472786805,-1649934546,-1489653707,-1154101707,1463139125,1040046312,510920965,1342177976,-1946328600,-2129400848,1963525375,-339725564,112643,-45291440,-963907445,-443851169,180829,1839742595,-401902592,1738209478,-401637104,1438872635,-326898549,-2147025072,478191900,-150989638,1580336610]},{"sector":3,"length":512,"data":[-1216747440,1975520089,1183651404,-1205972816,-397406631,1348056420,375443688,1353729677,-83635302,1975520014,220444685,-1337553584,1553918032,-2136924181,1358364,839246583,954749022,-1072997961,1183648629,1605914800,1961381899,-2146500612,1575324444,-326412861,1445260419,142510935,990791307,58460742,-2147446039,92044861,-352321096,-1983892734,-1924661690,1187503222,-352321288,537183758,-2012461430,1191117124,-2092546312,2081355902,-562655764,92933611,1183450248,21268492,-2142878137,-294322115,16678531,44043636,-1979414495,1149766726,-1958328831,1177226822,2130155782,-138245372,1079801382,-1946532215,1177226822,2130155782,1183399940,-92864516,-96040112,1342180613,-1912834305,860937286,1390956736,-1956749414,214064613,-1084795392,1166682629,-1962888182,138775280,-265617228,-1144616114,-140967922,1552065531,-487074933,1522961232,-140918229,-1554218434,-1023189896,-1973651805,11799365,-1240902262,1220684544,1552033527,-396589917,1048812375,1962958038,112654,599281744,1357402125,-1959662674,-346260938,495670816,-16549889,-1956850122,65262046,-10715106,2050424631,-2110324900,-20322212,1551540550,1552156163,-713046469,1438867039,-326898549,-1101572526,1149905413,-1979665398,11929684,-1991720405,1790508614,1183666188,-991407954,-1202103886,-397386618,-1957055891,994527224,561970814,-2046441589,-28955812,1342178053,1343876280,1353598605,1504827880,-739749799,-346465871,1552332813]},{"sector":4,"length":512,"data":[-1371108016,-1312495536,1790466393,1183666188,-1209511762,-1923524175,-1957646778,-1274574308,1944604672,-633437271,1182007388,-1554219871,934829270,1183666196,1357402286,-1923524174,1577299550,509694,-1274329974,-1963422976,11798852,28899371,-1923657728,-397365690,1348055517,-1371108009,112720,-1729632176,1149898219,1342223372,1342242744,-392556056,1583349387,-1017256565,1458342741,74877783,-351895925,708608018,1015027572,-1979288513,1963211269,-2142877923,91488317,1962949760,708608228,92934260,76173464,-805086568,-1070398348,28836843,1566465792,1426064578,-326898549,1996430864,1354773252,-263811760,-96039600,1591535696,1962934953,435075104,-96039600,-1315575728,-14788263,-1070398346,1183666256,1183666416,854085882,-263811743,1666365520,-9377712,74825739,199999539,1358579341,1348709048,-1946198552,46292453,-326413056,8711297,-1927915690,1358921350,1348710328,1348688824,1343877304,1343877816,375450856,1355826829,-83758694,1183651342,295325908,-1341195518,2105968640,2124650751,1557570396,-369983859,-2033844118,-167641219,1947265350,1023773473,1483997230,1965960765,-817445370,-972756097,-1585524922,104553686,326392956,-396943381,-1072955611,-694077836,2080783196,-16353956,-346237434,2114387786,-817445284,1557569917,-150991174,66096098,-10691530,-1973627386,76074822,-396994746,1499050155,995940001,2002549766,-2037574118,-11468930,-1191215690,-1706033136,251331485]},{"sector":5,"length":512,"pattern":-667035587,"data":[58048523,-35863,1996477046,34708176,1583288059,-1017256565,-2081649835,-145338132,542957062,-1205963520,860883886,-1578610496,-1547685032,2057526488,1551803228,-1554196829,-1209443110,1672460288,1666955344,1621354576,1558056577,-2034761704,-890744740,75400036,-1338215424,-1927917568,-1705988026,251331348,1353729677,1504692456,-1202261877,-1924113274,-397365178,-998001820,1958742790,-339725564,96897794,-11510650,-253229962,-396797521,-694026609,2080783196,-1207601572,48955393,-626802637,1958742876,1551671558,-2091067741,6084158,-164418690,-963963157,-150991174,-603585566,-773944484,-2145516573,1174899036,1557542459,922739836,922705110,99114112,-1547685029,2057526488,112732,1575324510,1426064066,2122574987,460587012,2114485888,1183519090,-754405112,105265896,28837237,855829248,-2145784896,1971128446,138840849,-388822863,1963345466,112645,-1070398741,442973,-2081649835,1465256172,100157127,1551540522,-375159,-1956849610,529266782,-16615425,-1956850122,-782444514,-2145516573,-13107364,-10716618,-396590538,915143391,113728728,270666,475596487,-622329813,-28931815,-557324208,922744971,1586191576,-14709768,922682231,512449750,-472818472,1551900163,922695679,922705018,-1662493566,768052218,557711339,-385649152,-661978614,-13704239,456906663,-667035588]},{"sector":6,"length":512,"data":[607981117,-96671427,-700654532,-667035588,-1153574851,1295893565,-12746435,-954433530,-853780218,340178944,1552332880,-128021680,-1274525814,328960,155683408,50659508,1354256384,683167744,-1779937280,200837972,-1586987777,347741312,98760448,-397386190,190427419,-1195870784,-11510650,-1070397834,74907472,-1553935640,556096734,2112768,512436597,529226880,-1199765562,-1202691158,-1957665966,-1956872162,-397393913,1499049455,-1389828016,-164406951,-16635159,1743259766,1975520253,-9967357,-333592,-1961066482,1036422135,58523647,-2097038103,57994239,-385744151,-4260023,33155583,1557544579,-385647104,-1628896785,-666991871,58654812,-16673559,-379791346,-660536947,104546396,58481878,-16678679,-379791354,-660536967,-2113520804,-385647268,-2103377555,-670684836,23325020,22839969,-1587750906,104553688,58547414,-1593749271,100883578,104553604,-696427306,22839969,-346260986,1557701069,1552156203,-346236765,1552064775,1557661185,1557675651,-1577944064,103373956,1048796282,2080398458,17819907,1551500999,115933184,-700546303,57999452,-1593770775,100752516,2057395416,-2079980708,-704234660,-1592754852,100752516,132865146,693928609,-1587750906,104553688,-260219690,-956248855,6084614,12839168,1557544579,-385646848,-694091591,-660387748,11528540,2113929091,-1946711262,-49722,-320273539,-16454912,-1587750898,100883578,104553604,-276931368,-2130671383]},{"sector":7,"length":512,"data":[16776806,201213579,-385649216,-397410183,-1990610833,753466950,206276,-1946401143,65262046,-1956872162,-13107425,-397345162,-1072956207,-660535692,48971868,-259276749,1031075339,-472785269,1551900163,939466635,-100609,-1427571594,1975520252,-336186588,-773944544,-2145516573,-14709924,-25755849,-386107649,-1072956275,914949748,132865240,-701088954,-1579516836,104553688,92101754,-346260829,1551540507,1552156163,1557661243,-660533633,-2079970468,-2113535140,1551541084,995916449,58063430,-1711498007,1552039671,1551504937,995916449,58063430,-386103063,2095708219,1606847484,1575324510,1426065090,1465314443,-16222465,1996424822,-61544444,-166989685,-1696005251,-773944576,-2145516573,-2145416356,1568439871,-472785269,1551900163,2139168651,1965960705,1666955297,-1423972272,1341688665,1666959233,-2127025,1522591799,-193675254,83398,45621227,-561295327,503571409,126573696,1538805824,2078822499,1348032938,1504343528,142016345,-386221592,2146039873,-2034753793,-1346875300,1538805859,-1070378909,-957853616,-773944486,-2145516573,1074236252,1552332880,-1438586800,79190361,-1962743040,1566465990,1426065090,-326898549,-950577564,65094,117440307,-2136925056,1358364,839246583,-1058516898,-1072997971,-4323724,22145535,294531,-14799756,-1070398346,1183666256,1183666414,-471314184,1558094679,1946158249,-297366266,-134330743,39640582,-1929153536,2122578046,192151560]},{"sector":8,"length":512,"data":[-16222465,-2065167754,-10921558,1996425846,-25755898,1563551831,-10690909,-2034759050,1760055388,-1587979862,556096734,2112768,79562357,14805248,103531659,-1207631824,-754667024,1551672296,-729030447,-494153685,-2136750965,1551671644,-150991174,735349730,-1948087344,1557963716,-1172537183,-487129068,1348350469,1504511720,175489035,-402098433,-1072957034,-4323723,8579583,1342178232,-1200676888,-397410303,115905750,478192119,-150989638,1580336610,-1395529648,1958742873,-16891,1996444139,108461832,-31463337,-963907445,1962935357,1342222398,-1639543530,51681872,1183649531,1659392158,1183406505,-2034741092,1183666268,-35106658,113542060,74760203,65781811,94127755,-11510650,-1998058890,-1202103895,-397410301,2090954564,-754667172,-1950088224,-2146500640,1606847260,1575324510,-2097149758,2855230,113642612,-972933666,37084934,-627044117,-1576860631,-610257442,-1576926167,1455633887,558499527,65732609,-401337112,-259320986,-12728693,200373503,-1207601674,49020927,-882981237,1241958230,-402652895,-259320847,-12728693,-940280577,505174278,1590070016,-326412853,116873046,8395500,29230452,-15013120,-1205991818,-1706009376,250347676,1348264120,1504218344,-964431733,702324745,-125108044,-1272325472,737684224,1048795134,1946168209,178181,-1070398741,519570271,1348264120,445331199,445200127,1342194872,-2091569688,1736510,-189266572,-1207702783,1174602528]}]],[[{"sector":1,"length":512,"data":[475636486,1558218182,1558231040,-1473255344,-336557223,-528169466,994451548,-1191805705,-628335392,-883073441,1458342741,-67352,1996424822,5289988,1370351696,113766539,1973337,2113928835,1989826055,1495113518,1979711107,-18427,1996425451,1413801988,1566490675,1426064578,-1957237621,-14809482,1996425334,80255492,-259322117,478154495,260044299,1343610808,-402098433,-4698044,-1962742785,-1034068282,-1957363706,1357677548,1493616470,-1207906788,-1202711057,-397386457,-1072955530,117393269,-2136925056,1358364,839246583,-1259843490,-1072997974,1183656821,666390704,-1070378915,224049232,-54794160,-963907445,2113929021,-2146500853,1989826076,1495113518,1979711107,-2146500855,-18404,1183648747,861294768,1525174464,-443851009,-1957311651,1357677548,1493616470,-1207906532,-1202711034,-397386457,-1072955650,117399669,-2136925056,1358364,839246583,1021857886,-1072997974,1183663221,666390704,-1070378915,224049232,-62658480,-963907445,2113929021,-2146500853,1989826076,1495113518,1962933891,1183651353,-744861520,185531139,-1928039232,-397365178,-1073000411,251595125,-4711296,-1928532993,1448128582,1342178232,1593755880,-883038837,-2081649835,1946159742,172395311,-1961196637,-2120021946,73319450,445318796,445193865,452992652,452855495,-324986239,-10541798,-1560133619,283843308,452992652,452855495,645995141,-48293140,444532423,-1034092544,-1957298168,-1976970698,161612612]},{"sector":2,"length":512,"data":[71600666,-1978004830,195166788,88377882,-1961227102,-1973048290,437101063,-1576974454,112728590,62410752,163074074,-1058516966,113542054,1342179000,1343880632,1343883704,-2086228248,-1205991740,-1706026270,496970993,-1017226919,435750598,1683005520,-1592132958,-358390777,-1858174182,527695915,-408813392,451322394,-31852128,451453640,451348166,435855361,-375194108,-1608455398,-1057084966,-1608849758,-1057084965,-1608849502,-922867236,-1608849246,-922867235,-1021646430,-1275051,1996424310,-491250170,-157659110,-1960992980,79846885,-326413056,503609087,1343939256,-1624441958,1575324445,1426064066,-326898549,-164407728,-397359477,1996450896,108461832,1722005534,1458301008,813023243,-1337553642,142016336,-402229505,1183666657,-85438288,1975520010,2001940,-33110245,-2128968422,521858086,-339725315,33603100,855930623,2011713728,454730751,150999528,-400888778,28850782,-443851264,442973,451683969,-943456289,18592774,470218496,1946159131,472285455,-2113931493,-15012826,125167,-2561853,-397361101,-1072992852,-4715148,2062045439,1343991860,-1023165976,-2081649835,1465255148,-1107001717,1048794302,1946178636,1278672677,279747156,1347555201,1722005534,1369827408,242597899,1414412031,-397361101,92929770,96929003,1170669566,-947714814,1480491779,1500774484,50218695,-62470400,1206583318,556163,-1548208268,-963948442,1342179845,1503946216,1975520089,1518109476]},{"sector":3,"length":512,"data":[1443329535,-387918360,1150025538,-972715686,-2096889275,1183450055,1564772606,-335657217,1564788228,-61931776,-2090940797,1962998910,-16398413,-1956749313,46292453,-326413056,2123061078,-1961039100,63341559,76221931,74777915,-129849,-2096904573,-294256836,-2096904317,-545915075,-1034068385,-1957363710,49054700,-1094822058,1279165268,192151636,-16490869,-29497289,-11252061,-1394080650,1490943,2088778731,829685853,-1268956022,62539776,-1948059904,73270232,-2080481655,108396095,-512300970,1586172907,-398983170,1149894147,-27358456,1149831051,-964472998,1979648862,-1956749375,46292453,-326413056,-1962385781,105265927,1183516022,1560740100,1426065090,-326898549,-1957210546,2123039862,-1203335928,-1577171319,103488270,-969204968,1152913267,-1070378986,1270278224,-1276526541,-1203335936,-26941360,453648068,1183637251,-1268872778,1404466943,-1950984565,1388708803,454598992,1346422571,508520424,-16353537,1996469878,1508398772,406192463,456833051,-396994736,1018756983,1448562715,-1191219480,1464867610,-10098602,11683527,-1961760000,-523128250,1343962629,1357403735,-1303969793,78806659,243394930,531228,451683969,-68620321,-15930569,1448607350,-2080428312,-1962672570,1065614942,-1913883137,-397363130,938016428,-16332847,-956300952,1815558,112640,-443851169,442973,-1094822058,1490772,2088769003,192151645,-10861369,71601151,1325941897,190760579,1609004543]},{"sector":4,"length":512,"data":[1465303902,-1084965186,283836438,6126720,1149961844,71600392,1590068047,-327811317,1438867039,1183509643,1342223364,1504072424,108461904,-1952329240,1958743013,112645,-1070398741,311901,-2081649835,-1957296404,-1956808394,169788614,-1932000485,1586101830,-79247620,1187416832,454559291,1187382898,854262010,-237884,-1977156538,-96040953,75309116,553273030,553287296,2122319477,175382779,-16497013,-1073019826,1183451252,-79263494,1183498219,-443851014,180829,-2081649835,1465256684,454702731,516212363,-670885110,-1979824500,552336478,-61931698,654073540,1183319946,108462071,-386435329,-1072955583,-12188043,82574406,-596249077,1568224905,1586233139,-1945690616,1586100806,-1004016648,-1977156514,-146372601,1190938367,-16353537,183039862,1958743039,-146372072,653811396,1191118728,909854712,91429656,1912897083,-128006962,509478,-443851169,442973,-2081649835,1465272044,1354385037,-1929627160,-1916563757,109886046,512301876,2122324786,141892356,450823879,485228288,-16482688,1183460468,-542926844,-1643722982,-1979711461,-1449655226,141885184,463341255,317390850,-16496906,113708148,72606,1187382507,117381892,516168832,503520010,-970581224,-2136925689,1358364,-661921033,1580763079,-1947664385,512401914,-150973766,-1948742686,-1553985145,297278234,968380416,-1969139685,1161758,2013651703,15224927,113542049,-1172403551,-487129082,-2020878197]},{"sector":5,"length":512,"data":[378216092,-494855444,-1039400977,-15012701,-399911370,-125069515,-397361101,28871372,-1612165120,770199690,454730123,454559291,413206134,454730523,475596487,-1205993442,-1706026270,496970988,-259303079,142407179,-472785269,486848395,451683969,116915647,72476,1183655540,32002234,472285692,-939524581,1815558,-16333056,-402652824,1048825466,1946180724,-347281405,-1590357528,347741312,98760448,-397386190,190423775,-385649472,2122383108,1333009156,-12728693,1027962111,125042689,1946157629,-1203967190,-1202692611,-1202711012,-397410272,45678050,-890744832,-2031595497,-1947169841,-49722,-974584964,-401282050,-259294597,-12728693,-385647361,65797812,855965886,-1008185152,1374179465,1122523018,1354773398,-7742488,-954433522,1782790,839304960,-1962934245,-1956749370,46292453,-2091428352,1812030,1219758196,1568675467,1583310797,-2091428157,1812030,1202980980,1568675467,1583310797,-2091428157,1812030,1049303412,-164422744,-561312277,1152697226,1568675467,994469837,1609528055,1465303902,463879811,-1274514432,-2146006203,1600638301,-1957313698,149717996,-1430300842,445489435,-1980086647,1048836166,1946164134,-1898237144,27179971,-1106801114,48955402,-24950970,638022418,87688330,-24907148,-955550702,1811974,-129579264,1048772608,1946164134,-851266486,868453223,-1710313006,60735,-1979820407,1452014662,71731974,1929270843,990213907,209124422]},{"sector":6,"length":512,"data":[-1946265973,1451883590,71731462,871909003,106314706,91688306,1979991611,71731974,-386382199,-930385964,1006257803,-1996261695,1183578702,-129614854,-1918694538,-1509505254,-352321509,-129594577,-1961194077,246500312,-1270617133,-1989685949,-1994676194,-396525546,-320274725,-851331842,869501799,2098629056,1568383837,-443851169,311901,-1275051,1996424822,1354773252,1354623056,1560692363,1426064578,-326898549,-1957210544,1606289022,140413707,1946173312,-336360700,-1705566630,251331539,74760203,1273755531,743390848,505246720,-1337553577,-1648236464,-1202693799,-397398961,-1705967706,251331539,611696651,1732460160,505443328,-1337553577,-1650595760,-1202693799,-397383869,-1705967742,251331539,57982987,1454405261,-402360577,1499045247,-443851169,442973,114262,464797315,-950242048,-803448570,1354773248,1342925752,1343285176,1348903864,1358954424,1342930360,1342178744,1342180024,1342178488,-2092706840,1033376452,628359195,1946177085,5848344,468386420,1023629288,91553793,-352321090,-336186622,-136583158,-335912472,-1946799358,1438867142,1465314443,855932555,-7804682,58048523,-956263191,-15001082,470206463,-402653157,1031850568,-385649408,1461584076,-83635302,1975520014,10479875,558499527,-4718582,669536511,-2147025146,478191900,-150989638,1580336610,-1616779184,1958742873,-2146500857,9627932,857411233,1779842002,1967027970,1745238790,-952731902,-786671354]},{"sector":7,"length":512,"data":[1354773248,1342925752,1343605176,-18345,192788560,374864,702544,309328,1124001872,1007862915,-1207536551,-1897267201,-11067904,505089590,1343953080,453785343,453654271,-83835494,-2081387762,6059070,-2081946764,-2146500633,-1107039460,-24969215,-955747071,1775622,-2093749504,242549502,1343602360,-397361101,-1070381992,245449195,1003631387,1996646934,990278929,1996646406,453943561,-1543504379,-396944616,-164378039,516166123,-2144986358,108337720,454571657,994445291,1914378294,-112793367,1593835960,46292318,-326413056,-402229505,-960999365,-1430761457,-1259843485,-1733733,1189610614,79846736,-326413056,1448275075,74877783,558499527,-4718583,-202878721,3964932,-1598093707,9562379,-929409506,-1458636031,108265473,-385089601,1048772735,1946168207,1183667742,-1662496592,1183651583,1956270256,370080513,1353729677,-1650829794,504298241,454598998,922701888,922688268,312089354,-1995506943,20819526,-1090161408,971705289,44990083,-574683787,-2094077173,1963175550,200195845,1048781803,1962941364,-73771507,1375731735,-921049008,-397015829,266914137,-171972560,-352321096,-1070377207,1127409744,1583333427,-1034033781,-1957363710,1988843244,1174530820,1948269696,3965178,28837237,1447291648,-1454423320,343212046,714749183,185531138,-1207601984,48955394,652984371,-1717938658,185531138,-2146142784,343146556,973175936,889130613,-83744102,-1207571698]},{"sector":8,"length":512,"data":[48955394,1566490675,1426064066,-326898549,1996445264,-43259900,-963907445,1979711293,-373279995,-167051119,113716341,6936,374341808,1353729677,-83684198,223655950,-1337553584,-1719343024,1183668569,-722972496,114223,1996426475,-1337553660,-1708267440,-1548199591,1183666278,1167741104,503316639,1348903864,451950335,451819263,-1624341862,147096349,-1204811544,-397344769,-1070388879,1347440720,-2114777624,-551883738,1354773503,191005672,-1341623104,-1746382821,856091640,-2048372544,1590070112,-1034033781,-1957363710,1357677548,1722005590,1312680016,1343993528,1348686520,1503233512,1958742873,11528451,1343052472,1348709048,1503228392,1958742873,10217731,1348903864,1353729677,1503235816,1493616473,-1207905764,-1924131586,-1202671546,-1202716665,-1202716669,-1202716592,-397410264,-259309632,-1072970101,1183651708,-1070378832,1522028624,1659392013,-1947169810,2109737926,-97522,-1070398347,-963968277,369141481,1353729677,-83635302,1958742798,-1337553648,1112008784,91602955,-1997946829,-1337553664,-1337553584,-1622828464,-1927938048,-11489210,-15011786,-1709511114,496971394,-16202621,-400888266,-1072956081,922698612,-1548215570,-1209511834,190405016,505246912,1348903864,451950335,451819263,-1203425048,-1202690397,-397383949,1499044039,-1204894488,-397344769,-1662507010,-164960013,-352321096,-1548214760,922701926,922688240,-2103829778,-2095210706,-4716348,-443851009,-1957313699,1357677548]}]],[[{"sector":1,"length":512,"data":[353286230,1007466576,5290064,1104799824,-963907445,1065140235,1346112696,-1924889112,-1202671546,860896268,1522028736,1793609741,-1947169811,2092960710,-1337553634,-36968368,91602955,-335544386,-217659890,-1070399386,1592191056,-1962540866,-443851066,-1957313699,-1561558548,-1957210624,297403974,-1948059904,-759198760,54889001,-2037841740,1996488542,1619430660,82333951,-1990633064,-1224801210,-1070334114,2139220048,1358954424,-402360577,1499043686,-166989685,1996425589,-1862604796,-973046807,-12189692,-303561610,-1744532848,343368,-661957001,-13704239,-615329881,-263002798,106101586,-1974267565,-1996442619,-335585658,21334601,-2037841740,1055653726,-1274919542,1585875200,-1976308737,11797317,-10582391,1166682347,-1996442620,-335585658,88443421,-2037841740,317456222,1954546934,-1744532979,1342209829,-397361101,-963935899,71731520,175437323,1065408651,-385649664,1583349580,-1034033781,-1957363708,-11053332,-399885258,-125071883,1342179768,622576289,-397410240,146300246,-1029615616,2106651,1565059152,1342179256,622576289,-397410288,512449850,1200237112,1342223363,-397361101,484998791,440447,74907472,-1946239000,-1976944610,11797575,163115147,32002048,112732,-541568944,-396996589,146313225,-303542272,112731,-424128432,-396996589,129535989,-639086592,112731,-323465136,-396996589,-396914719,1583320417,180829,1458342741,-968982441,57999387,-402618391]},{"sector":2,"length":512,"data":[-259281364,465712691,465712689,7390967,113706612,-58434,465569479,116850688,203714,113706612,72640,465700599,108265476,465569479,116850690,531394,113706612,203712,558505611,-472783919,-1063132207,65065243,1287621592,-1103217887,-2130217701,65471614,1048779893,1946164164,465871109,-544535317,465444489,-2020875311,-397401580,1583349444,180829,-2081649835,1819710,1183517301,465871620,-22353840,180829,-1947432107,-945617850,46292251,915101184,113712071,7111,-1017198965,-4696234,669536511,-1039743233,1048772701,1946164167,466067718,-402616855,-125063808,-1072969845,2112422773,1927829248,-2131719227,1820222,-24951180,-2096794373,494271230,-2085716248,74841086,65781811,1342177720,-1962046232,1355254776,-335574552,-16874679,1558714997,321513646,-947128181,-986716080,41861131,-396886221,720109418,1947205251,301892377,-24963980,-2096139248,175379710,1947467395,318669573,619187317,1459565486,-369193496,-947126411,-389849505,-1072955566,1048836468,1946164167,-13244411,113707499,7108,-1012008216,-2081649835,1589904620,1468737028,126559746,-2113929435,-1996423198,1183448662,9724,1106561,326422539,-1946265973,916550,13271296,-27883009,-1946401143,1183579734,1575324668,1426064578,922741899,1996430297,74907398,-1705983949,251331956,311901,-1275051,-14952138,1996424822,112644,91527760,-1034088709]},{"sector":3,"length":512,"data":[-1957363708,-650706964,1996430875,74907398,-83549542,79846670,-650707200,-675799525,62410845,580538368,185531141,-1207601984,48955393,1438892083,861334667,-400233482,-1072955433,-677371532,1178310749,-1106938620,48955393,-166988237,-660534923,1347590493,201295336,-1948748554,-1034068282,922681346,177871833,-1022428411,871140181,1320702144,1996443659,-18428,108461904,1342929848,1342180024,1342182584,1342180792,-1959099416,79846885,-326413056,1443163267,74877783,1573731979,1183434635,-28931588,1342922680,-823634346,3965173,297273973,-396996596,1499042747,-1070377442,80255568,-643625221,2143292187,220444683,-1947707824,11397631,467220223,-59310306,1342970808,1502822632,-1706016704,251331874,1342970808,-386107649,1499042634,662028299,467220223,-25755874,1343998648,1502812392,580538432,-1206977787,-11527222,602472054,190405011,-1207274304,1448088565,-335597080,-650707116,-1202250213,-1706033150,251331874,1946434944,336115722,333993552,859237375,-890744640,1958743038,1574746156,-667484336,-24713123,1342178744,201241832,-1206487872,-11510296,-396502986,28900976,-1628942336,1975520254,-339725564,-650707140,616046107,45633630,580538368,856619781,-397389632,378142254,547577378,1579458910,-150993990,64107490,324935686,-1990319594,-1554122474,28859895,-1956749568,46292453,-326413056,1443032195,-1173993845,-487129079,906227851,1149918671,21244418]},{"sector":4,"length":512,"data":[1183367422,21269247,76173464,1183666328,1183469823,-1325353980,232837896,-397410296,-1956738091,79846885,-326413056,467345035,512440319,2013224488,-5642236,-1962651905,512427078,126426075,673090384,41418590,1577030376,1426064066,1586228363,20414724,17299200,-1962183680,529204830,254019466,1586172395,-16282874,-1965520121,-771444473,1561273592,1426064578,1465314443,-1962639733,1048774262,1946164315,1527709449,1573167132,1465283051,-1560301336,255614404,1465259637,1358931176,-1628940458,-771444225,1490062048,1340850698,1573142144,1446933774,-7870377,1537425560,-396929508,-995950723,1963932765,-396929511,1448148849,-9705385,-523107151,173592714,1573167810,-996140565,-661940131,1575585674,-346176350,1573167114,-1965519976,1599990151,79846750,-326413056,175541078,721962635,-1960938298,-567605154,-972792317,-459276281,-972842915,1183535168,-11517946,2028471414,-1034068340,-1957363704,82609132,-164407466,1579038265,909708148,91512358,-351000386,507413270,91488350,-350997826,641630986,57933918,-1961611842,-1977886946,11799623,-1977644208,11796807,2030102608,729085451,-1738677600,-1605896053,-1986503197,1444871750,-1958926104,-802423210,1392268937,-28931241,1448562760,1342177720,1601673448,1575324510,-326412861,1448799363,-1505310889,1187446784,855638184,-1435072010,-1585917208,112860245,-1948059904,-541589544,-575144165,-69474277,-253208,-10629834,-396502986]},{"sector":5,"length":512,"data":[-845022208,-28931747,1183659499,1183666430,1927827626,-1387886338,1958742936,-15078654,-1957255050,1191159366,1183666342,-387428178,-1980353538,132884598,-2001910134,-1958302142,103546438,104553933,-1099145768,475741827,-4754176,-11097994,1183688310,-1192734546,-71964418,-744243149,1579590493,-1201791325,-1202692578,-397410302,649657224,45633630,2112376832,1574156539,112720,-76355504,1574125187,-1962248960,-954475746,-335544569,-852033725,1574150493,-150992454,1374179554,-335596549,512448268,2013224488,-47847420,-750896313,-1947304867,-2095326434,74841919,1991,467345035,512440319,2013224488,-50206718,1610507240,1575324510,-326412861,-1962518901,1347552326,-1172548191,-487129082,1515772043,467638153,467502985,-1172548191,-487129082,-1558454011,-661972005,-63545,1576968936,1426064578,1048833163,2080382037,475373863,-150993222,-1948742686,-1961107561,991681927,276105302,1963345467,75399179,-399739904,669777519,475348611,-1206684397,-1202716558,-1202709539,-397403165,-443838589,117376235,1996430421,108461832,1577021160,-2097150270,1856830,251598206,1436621909,440860,-519707913,467378971,-1006754072,-2081649835,-1957296916,-167050122,909855612,1165844004,62572171,870512384,537265106,571872094,-397389218,-440862203,62410845,770199552,-440918278,-1410838435,-27883015,-2080618871,91619322,1962934077,-25263348,-2094828033,1979645054,571902749,1579196766]},{"sector":6,"length":512,"data":[-2097075195,1347551442,-1191590680,-1202692635,-397410301,-1205929492,-397386267,-1956710038,46292453,-326413056,-402229505,1347616626,-402360577,-1034027279,-1957363708,1525449708,-912173226,-989447331,-1995738275,-979261370,-1404663459,-979301141,-1471772323,-1990342239,-878597050,-955892899,-1995738275,-945706426,-1371109027,-945746709,-1438217891,-1990341727,922725958,-1024972296,454730116,-1952037239,1575725694,1470658303,1470920447,1353729677,1342177720,-1955332632,1982573686,-1438217304,1957578299,1308748557,108197387,548436608,994506100,376680062,1183702667,-958921808,-1958343417,-1337553442,130471939,1996441098,-1337553498,182998608,1958743018,-1502215927,-1367459001,446799478,457614107,-1549384053,243342152,1055468,-1205692952,-397410302,1583305536,-1017256565,-2115204267,1442881260,142510935,990267019,158534214,-1995802997,1988692550,71731974,57853755,-1962899479,-1980199945,2112423030,175570688,108461911,1686539607,-1070378753,1934157904,1223423539,-472785269,-10189171,126605315,-1979776987,-1308663162,636015364,-1769271552,78774114,-1039408429,-10320247,-472785269,-10189171,126605315,184614693,-1946197370,-1914449442,67069078,1174899162,721831563,-969209274,1996467827,1996445450,-2037557498,860946276,-1830268736,2117814131,-385648892,1583349627,-1034033781,1465253896,-945569741,1573233501,-1560280648,-912040501,922701917,-1561829941,112758,1993140304,2002446416,1573207683]},{"sector":7,"length":512,"data":[-1207602176,65732632,-1560275016,1525162314,-1946645513,16721351,-1872369584,4341081,1048786293,1946181061,-986251501,-952696995,-919142563,-885588131,-19077027,-1554134623,-878617147,1573364573,1573205759,-919142576,-1008185251,1470491646,-1950612248,100566000,1048783221,1946181061,-986251501,-952696995,-919142563,-885588131,-23271331,-397361101,-397380030,-1070369072,-2097046807,92143614,-1863727221,1036421889,58064900,-1946198551,786682328,1588111359,1605590885,1593859762,1048797208,1996578249,-12523261,1573207683,-1592364032,104553929,225861061,-952697008,922701917,1072192971,-921763842,1573495133,-885588144,1974200413,1573207683,-385649408,-912130294,-989447331,-385650083,1340866302,-1738677344,1573455419,-269941897,-985758722,376701021,996002209,1935525126,922701837,-11510329,-396506314,117439982,-912171575,922701917,1525177803,-985758859,57999453,-1577141783,104553929,58154437,-86551,-10630858,-10631370,-10630858,-396506314,-1746272842,-885095426,58130781,-2080469527,6145342,-878635404,-955892899,-15894947,1348322614,1573467903,-41097136,1573467903,1573588735,1348324257,-2089486104,6145342,1474888565,1573626366,1573324347,1273561970,-1605374978,999841250,2002635526,-29562621,1573207683,-1592364032,104553931,225664455,1573205759,-919142576,1005080669,-919142403,-888733859,1573626205,1957161040,1573207683,-385649408,-878576122,-955892899,-385648803]},{"sector":8,"length":512,"data":[922746362,922705349,922705355,922705353,65560011,-35329539,1573207683,-385649408,12123610,-1017225218,-2081649835,1465255148,558499527,854065158,-1947169803,16721350,-1908545456,4406617,1470182773,-28931812,475465415,512425986,1200233431,1342223372,1200234379,1342223361,-395172376,-259261080,-1543616885,-25093033,410320384,1459145704,-1950753560,100631544,-1070398091,-2097092887,92143615,-588659061,201294592,1048779125,1962958366,-7804669,1579038463,1392177640,-96868272,-2080409111,427101439,1579564675,-385649408,922746730,-739746266,-397389062,1542060571,-750877697,57999453,-1946201623,-1961108706,637447,100918007,1183407567,1036487676,58064906,-1946208791,786682328,1627695103,1631871286,1630036250,1613783398,1613783088,1632788528,1586192732,55020284,82333848,-16193033,-1963172213,1352139847,-369690904,1586233082,88574716,-387428200,-18028042,-1963172213,1352140359,-369698072,28901086,-790081536,-19600906,1574123263,-369703192,1586233034,125304828,-397361101,-1142293837,-1956749314,-1581031963,104553941,695557585,1574241991,-626982912,-83477667,-1593477539,65756667,-1554130271,922705361,-14804007,1348324662,-83549542,-636551410,1574281565,1574242047,503568523,126508493,-326412861,1443032195,74877783,-1728074520,-947128181,-120388175,50333477,-2114942010,-352313369,-7084026,-1958345592,-1073000505,80147317,-8132608,-385988984,1183383421]}]],[[{"sector":1,"length":512,"data":[-28931073,-443851169,180829,-2081649835,-967433492,855694918,1574020032,-144845405,73260038,-1207470848,-397386243,922694774,922705401,-1763156489,-203560717,-1554130783,921198042,-28931841,-1996541720,451673926,1356744333,-1946195224,1576909040,-565801648,-2013730736,-1072998055,1183517309,-28377090,-596262901,1348337080,1356744333,1502076392,1958742873,2996237,112720,-107616176,-1202321173,-397410303,-1956710005,1438866917,-326898549,-1957210540,-164428674,-1557531487,909729320,594811991,475479683,-385647103,-8191676,-402230015,971634873,6600705,112720,-112334768,-1593758743,1183392074,202488062,-1404662448,-2019432368,-1477944999,-62486163,103531659,-2012938192,1576772602,103531659,-527737349,-844905333,1573888861,478152447,-1172537183,-487129068,1348350469,1502239464,91537419,-1796606413,1460061952,-1929379300,-397366202,-1072958613,-2132212875,1460061952,-1610612452,-1147642397,-140967934,707244795,-685863984,139954203,34097034,-27401466,172460224,-1738677600,-1728052549,213056503,512479274,1468537815,155683337,1575093762,1200144638,178187,1277356112,1342177720,-2089690648,91554559,-335647256,1962871579,1430160135,225836828,475608831,1342177720,-336040216,-167122941,-1946392088,63212528,-1956775162,-650214432,58589211,-877592,-2128838642,1962803454,178185,1282336848,28837867,921194496,-59310209,-1954719512,1252261446,-18399,-269424560]},{"sector":2,"length":512,"data":[475465415,-963969024,-443851169,180829,1458342741,108432215,1586233139,17286916,3964928,1065944949,1256966027,540835910,1015085684,-336235511,-1744532965,475969616,-2050693040,1580030297,-1311274212,65196804,1190693826,2083536000,960266245,1015077758,-2147124159,-780253636,1946172544,73304839,1991,1583335307,311901,-2081649835,1586173164,38243078,1183651408,-879079188,-1961956352,939460190,-163148522,13343312,1183649516,1874350326,1183666204,1996443884,-2049316860,-397387431,1499038994,-2062751664,-443852455,311901,-2081649835,1465259756,1996488499,-364475130,-2051938224,985160025,1183666176,535318762,-1957078651,197561328,-1929022016,418114166,1174406342,1357530765,-402360577,-125042934,-2096865653,175374399,74907478,-1979778584,-678691258,1610499723,1575324510,1426064578,516222091,-2128207608,1052791,-1744550262,116906123,33579957,95946100,-1962742929,-1591088957,180829,1348711864,-1602506776,1336042502,1443793508,-1257834652,1946157667,284786703,-109050508,-972720864,40129798,1683304074,1682904714,1679963786,11846282,1946157629,212257,121445492,-350784512,-1241271808,1978468905,-351817212,50167817,45220981,378023350,914908239,11559970,-1268506718,1678484224,-949738590,1348732678,171868928,678690876,1673084547,-2094959616,1864254,1048584309,1963418703,243717,129500139,18260736,477234887,116064257,1007290055,1048641536]},{"sector":3,"length":512,"data":[16711958,1048791412,1963393302,-1157171446,1946157411,-147985606,23312134,-1609140992,1336017174,-2097041308,33625662,45089397,-345746014,-1187085542,326369379,1673201399,192217089,18233087,872340712,-1207702592,-1195180031,-397384451,-202868052,1958743038,-1257834503,1946162275,1396605192,1962985572,-770801659,1455620395,1683333207,-1073020748,20778100,1024947200,175374338,767432427,692502315,1354632939,697089835,180225771,687914795,-118991018,-1017225378,-1579309592,-492610179,445489434,505078947,1343939256,-1624469350,-950445795,1775622,169788416,130426395,-585177062,922703555,-85458658,378100100,715349548,-336186530,-773944557,47331,-2128166770,-1878978881,1174893968,8453761,-25041028,310182016,1342177464,1342234040,18757375,-2088447256,-1017248060,1579955967,1579824895,18757375,-2088452376,-2084370748,3934782,111151220,-402607004,113745715,74032,-398464536,-655868869,-467474205,-390434840,-1008204433,-1957313537,116163564,2123061078,-831723516,-1954961176,-2147039248,201326364,184841727,186217718,-402098954,113658256,-402646074,532168197,-1070378987,725280848,1342177720,-390683928,-166985839,-16055179,1236810100,703090709,-1927915721,-1705969082,250347700,1358579341,-1204348952,-397404841,374748944,1358579341,-335498086,-96039666,922675280,1344042168,1463220200,1501427432,-443851169,180829,-2081649835,1963000958,222476319,920315984]},{"sector":4,"length":512,"data":[1344042168,-399059992,-1125598788,-15669244,1342177720,1501415144,-402360577,-1034027200,-1957363710,1996445420,-2112624636,-904492455,-1962887638,-938046734,721466922,-265599246,-11079983,1996424822,2104616964,79846750,-2091428352,-13974466,-1070398092,-1207923479,-397410290,45631308,1706577920,-1310175211,309503,17283152,-5838768,1342178744,1343582904,-1191207960,-1202716666,-397404786,28901264,-672641024,1463716716,1036487452,108331009,475465415,113704962,74058,475596487,-1293418495,-1947169812,1958742982,-1696049419,2047409,129502581,867717120,1307070476,1037298687,41746431,247002675,1843941376,1463716167,1606847260,-1957313698,1357677548,83934806,1007042179,-1206946816,-1924121588,-397365178,1499038083,-4715541,1183666431,-655863632,-1333886954,-1206946560,-1924133548,-397365178,1499038051,12452843,-1337553658,1354773328,224049232,-698619824,343785483,2113929021,-1192195326,-1924133548,-397365178,1499038007,1353729677,-1947816728,-443851066,1048822621,1962949636,1742190626,477542480,1742190672,-484972464,1742159488,-1207602176,48955393,77840435,-1206195396,860907479,-1202696000,-397403013,547959723,-955878144,3933190,71205632,175374396,1348982712,-1548466712,1048787972,1962949636,477542413,1742190672,-2134775728,-2084349607,1812030,1048654709,268442253,-1070398349,922692331,-722986355,2098628945,1568383837,359972875,721424568,693992198,-954561274]},{"sector":5,"length":512,"data":[6126342,2097610496,112733,-326412861,1443163267,-1218779049,-402483480,1458109493,-12392196,-396580888,1451839874,-62486018,190623976,-1207470656,-397410303,-924254798,1958742838,1051912199,125157387,1342177720,-156184,1996488310,-517019396,201289960,-1207470656,-397410303,-1511457402,-1290344390,-1576985440,116876368,1860533,480249972,-1560345599,-320314303,10729531,1683535952,1694349392,-2141591472,-402209661,446823438,730964737,-1203916056,-397402566,1038620516,-1946645506,83901895,1048784501,1962949636,138314535,544538684,-1947601432,197561328,-1206553152,860894683,-1863823168,-42866673,-963907445,-373495728,-1351358378,-12717941,-402031105,-1072960907,-24444300,1583335307,-1017256565,-2081649835,1465254636,856194699,-1004934154,-1977220002,-12154873,-2147203329,1948319614,-12154356,1179059592,2080964227,378594,-443851169,442973,478191958,-150989638,-2114941982,-2090978618,-14909378,2088964212,175439622,1342177720,-2108168106,-1017226919,-2081649835,1465281260,-1980742003,1989016134,478192032,-150989638,1580336610,-134330743,-2147482042,1183724148,173968136,-1986509172,-165243298,1954547015,-263811816,-1739158704,168149899,-397389312,1187512150,-352317692,71747352,300613646,294531,2122516092,92146692,218384071,73304832,-1081351215,887823490,1033373066,477364260,1946173501,-1977619710,1090782790,-347732856,-94467302,76023690,1190807295,-2131075445]},{"sector":6,"length":512,"data":[-311099329,92931563,1195771016,1962950016,313031,-1952996120,1678050374,-1706653440,478166659,-1207601665,116129791,-1946263925,1183385159,1958743036,475505003,-946059639,35411718,1354773248,1342931384,1352681101,1342938296,1342182584,768080,616753232,-1743862653,-1952561527,1470340166,-1635876068,-2094238638,-14909378,1586169972,105367550,-2068316160,247175680,1048776577,1962876032,-62485741,-1979818357,-1612183993,-1207571458,132841473,-392530177,1599700928,1575324510,2406595,2133059664,806783321,1580114782,1349215416,1501523944,808910787,775356254,2406494,2132142160,-1022966653,-1947432107,-14350778,4261120,-402241911,113743565,13835353,-1202667469,-1924132097,-1202715066,-1202712218,-1202709342,1347420180,1342178488,-1960570904,1964719333,-31397881,65781811,1560281528,-2097151286,1974334,512429940,2139102752,91554052,-352321096,-1547685118,1438850610,-1957237621,2088764534,275927053,67978378,189016241,67978378,222570673,1705909956,692554278,1997423674,239372828,693602854,-1057045974,-1978907608,-1977217468,-1037424297,1143521534,-1034068466,-1957363710,317490156,1988843350,-1983892732,1183446086,-297367048,-1962872855,196800070,65206016,1183387972,-1948742660,1183385415,-398983170,-1957069699,-193053704,2122908542,-163133452,1586167808,88574716,37552308,1023898624,225705987,1586174187,38243326,-336443767,-27358446,-1274001526,-230258432,1187448299]},{"sector":7,"length":512,"data":[-2097151758,1946219134,-263796902,1240137728,-2130944373,1963066751,-262239463,-1957436463,56163934,-661978041,317208575,-125085316,1183522027,768752,-661921033,-27358381,289866584,939513995,1501295848,2117859467,-1996259594,1191179902,-263812112,2096252475,-1960449105,1200290910,1023456261,175439876,-1946263925,-163149561,104664811,-1962314496,1200356958,-163149562,1005995659,58652742,-506231,1149955654,989901840,58650182,-1962998551,1140984900,-2000617968,2122518084,92143864,-352320840,-1950338302,1443099734,1086456824,-96040640,1946172547,-399180014,-1957069971,994527224,58653310,-1963295095,1174539076,-2000617734,1183452484,-2013068044,-397013180,1583349325,-1034033781,-1957363710,82609132,512448342,2139102752,57933828,-402603799,-1073017973,28837236,855829248,-28931648,505421451,17516486,17582022,1343047622,-788642166,-2000617760,113708615,286462,1793848883,196789899,-1948059904,538872824,293536542,-488098305,1183406458,-773944324,-24671261,-62520482,-1962933243,-472824866,1593739145,490883,-561302668,-2020940847,1174560510,123571198,-1962195064,-1977737186,1451888199,-4030210,1569440298,206014471,-402164225,1569455588,38258183,512443905,1200234016,989901840,-1953923130,-523108794,721440954,-773944368,-23623197,-16258210,-400678858,1583349172,-1017256565,-2081649835,1465254636,-955877749,65094,505421451,-1274001526,-336033024,74842933]},{"sector":8,"length":512,"data":[-952383861,-164428676,-167049237,-141884547,-1161393330,-487129077,-1957439349,1478369310,-1961801981,105379544,-1962642175,-15864890,1183579718,2093431806,-18236,-443851169,311901,-2081649835,1962869886,74907398,-955590936,18755590,46292224,-326413056,1988843350,-97532,512434036,1200234016,989901840,-1961722170,-954325954,-14801914,-1528277249,608078090,805750558,1593835550,46292318,-326413056,505689855,-16664,1996424822,-13047804,-1960958813,-1994514402,-397408953,-1034027122,512425988,1200299552,507028233,1887692880,-397361101,-873962334,538872589,55035422,113754881,7732,505941759,505548543,505945739,-472783919,1596491659,186523811,-1962380096,88574936,-1021434717,505421451,229248,2013206132,1882712073,-1956530712,-954327010,-63161,214982,-2080394264,1974334,512431732,2139299360,208994057,-1559672949,-397402568,116092937,506988231,-3932161,-400678858,512430505,2139102752,125108226,16926662,-1946313752,-2095177698,1979647359,-18416,112720,-26679216,-350346077,538872595,88574750,28856392,1407733760,505717758,-1960958815,-1994514402,2139292999,58064649,-1962329368,-2145509346,1962935167,-16062459,512428779,2013208096,1871702025,-326412861,74877782,505939711,505945739,-472783919,1596503945,141948427,505546439,82509824,505546495,505427593,46292318,-326413056,-1959138474,-786552802,-2082221597,6236351]}]],[[{"sector":1,"length":512,"data":[-706205835,570869758,-1962934242,-350345162,-773944558,-2082221597,6236351,117378676,189668898,-336955914,-19339261,505953923,-1962249216,1325335622,1975520004,-1034068298,1048772610,1963007522,538872663,75464734,-1587645184,196746788,-1948059904,512447448,56106528,-661974713,67520502,922699381,-387441116,-398595075,1048837770,1946164768,505717043,-150991942,1406700514,505421451,289866584,1207359627,74712070,401326131,505560707,-1949270271,-2145509346,1946158207,-28251971,-1023409736,-2081649835,1465255148,-1172429663,-487129077,512489611,2130910752,121998097,-1946401143,-1959293992,38243288,-151107959,1947207237,-1979384304,989901828,310181446,-352320314,-1962606835,-28951804,80151676,922681344,484974116,-1956749560,1438866917,-327029621,1465254022,614596403,71711518,-397404812,1183579443,505717508,505421451,1342523273,-1946351128,196740166,-1948059904,538872816,293012254,-1962720117,-786552802,-1981558301,-1973475705,11797828,1979713085,24832259,-472786805,1906835246,-495745677,2138327156,-495657101,-948679052,18756614,125600512,-385649408,512426321,1200234016,1073787915,2055637312,876512255,175374366,-1274067062,-2046736384,512491386,1200234016,50377740,1075717126,2089191744,121932799,-2095177565,1979454,-661970828,-1961664629,505717511,268846326,645990004,16719396,-1960958815,-1994514402,922682695,-924312032,538872829,75464734,-2143652606]},{"sector":2,"length":512,"data":[1946157695,2055637528,190286591,1191232042,2089191949,207063807,1191232042,2055637518,538872831,189237278,-8616310,-2146678904,1946157695,182997764,-118757127,872221928,-2115481408,10152202,-369201688,1149960337,2122746119,-2585601,1183646327,753422464,-1957078666,-33122,41418551,505421451,-1274329206,-1974452224,11799623,505677315,-1635037120,2013265790,71797508,-397350703,-125100976,-1072969845,-8185475,855799295,-2142859777,2124319568,41418751,1500897000,-164631719,1963460164,2124319498,41418751,857858536,105182975,-1928039040,-1957658554,-33122,-2081947017,190404981,-1962707776,-947190916,-443851169,180829,1458342741,75400023,860058624,-1959597066,768710,-125050121,505421451,-15630589,1894253686,-1974445703,1519911493,276156475,17188342,1166740085,475636489,300664459,538872646,273123870,-969211724,-4669057,1566466047,1426064066,-326898549,861361670,20048383,558499527,614531072,768542,-661921033,538872659,1191401502,-1948742895,1503856967,-537401316,637421193,-397410049,1183448942,-49668,48825204,-25755903,-1985687320,-12714938,-1559659009,-55042506,15460863,505421451,-1274787958,-1947170048,171834438,-385649152,-661978933,-13704239,1064681383,-160018314,1870010229,-2122941834,-2122940042,-378153610,538872693,273123870,-1202716492,-397410303,-1729496401,1354773248,1358954424,-369450264,-24969077,185299969,-2096138762]},{"sector":3,"length":512,"data":[1978942,1187448948,-369099014,-167051161,1827210100,-2094208256,192152062,242611723,506609283,-955812864,-132538,-167032853,922701685,28843556,1491619840,188935162,-12684042,-1205984202,-397344769,837548615,-562694645,-1172429663,-487129077,-1957439349,1478369310,-1961801981,125797336,-1592626176,1183391268,114682,1187448811,-335544326,1979649012,-20387581,1610237579,1575324510,-164407613,-561302037,-472783919,1596491659,186523811,-1960610624,159351768,-1962183169,55035608,-90970111,512430315,2013208096,1787291657,-397361101,994467360,2115905590,-336186427,-773944527,-1948003869,-1554044793,-1073013216,-661971084,-402032641,-1070372259,1585244240,505421451,-1559935093,28843556,-1041739776,909854215,-914481624,-1554271768,-1017242056,-2081649835,6245950,683163508,649613312,1354256479,-991408033,-1578792077,547561002,506241310,-1591860573,614669870,1593614622,-14800733,922682486,484974128,1593483523,-954324829,6245894,46292224,-326413056,1443425411,74907479,-2080397848,1976382,1183538812,505848580,1204213899,1005060101,939932507,-402295778,1038876419,871102003,-472785269,-2020875311,547577640,1958742814,674642721,-1962380258,159351768,-1961658881,-1960959970,614663495,-108271586,-397361101,994445056,2115905590,540967879,108331038,-369098824,1256718796,-129579019,-437714944,-44308480,-947128181,1040186413,58064899,-1962901783,786682328,2013308927]},{"sector":4,"length":512,"data":[2014935108,2013820953,-1980090392,384366662,-96024587,-1310064641,538872576,75464734,-402426623,922745054,-8184284,-1207601667,65732609,1358954424,-1946704408,-756525064,8841722,33048263,506896640,-1577433463,196746788,-1948059904,512447448,56106528,-661974713,-1962719349,-786552802,-1981558301,-346085753,-1696049323,-129594886,1249165323,-1172429663,-487129077,505421451,-1995356413,1183579718,-96040456,506740355,-1960086528,1183388487,-27358212,268847094,614468212,-60912866,149620616,-1960958815,126483550,-507416,-400677834,2122515039,57999608,872354537,-1960842250,673055710,572402462,-472825058,-2020875311,-561291482,503571409,1200168486,580994568,-969193442,581032317,639535902,105351454,505421451,-1962195062,-2011290082,512426823,1200234016,604373516,-1950286306,-2011290082,-16055225,1183520637,572427258,65261854,-1994512866,512428103,1207901734,-50363642,669735284,-1172429663,-487129077,505421451,-1995356413,-661914042,67520502,512431221,2139102752,175374340,-2080927256,1974334,1048826485,1946164768,-27358430,67520502,512432501,2139102752,259325956,505689855,-1946762520,-971102690,-1962867385,1583348294,-1034033781,1048772610,1946164768,538872602,159351582,-15698689,-2031613577,538872679,91750174,-1007251736,1458342741,75402071,505558667,125697803,359986699,990309198,721584126,-51882249,-31753,-1243085963,1566466047,1426064066]},{"sector":5,"length":512,"data":[-2091455349,6245950,683171445,1354256384,649613407,-655863713,113542000,-1558304607,547446522,506110750,-1558306143,614538796,506372894,505951883,-561308949,-472783919,1596491659,186523811,-1962380096,159351768,1308980735,-495061493,1593587337,-402360577,113770350,89934,46292318,-326413056,1183536982,505848582,505427595,505691787,-2080633112,1962935422,-14489597,505427593,505691785,-1034068385,113704964,24398,538872771,71797278,-1073020748,20778100,1024553984,393478146,512434411,126492198,418054324,505814667,-1274984566,-1962022144,-1977735650,11797063,-1070398741,538872771,189237790,-1974468428,11799623,222792272,-1974468428,11800135,-5904304,538872656,123702046,-1274984566,512446464,1602952736,55020039,860881076,28856512,-1494724608,538872678,155683102,-326412861,17886337,512448342,1200299552,-599357177,-1174124917,-487129077,2130966667,121998097,-1948367223,104531014,343219748,-1965269365,1183318599,-481916702,-2013050998,1189863750,84245888,1586172277,21465820,-387823992,1183448867,-164631568,1946224197,92110871,-1961790463,1200282718,-515471356,-1998371192,317448774,-1965269365,1183318855,-498693919,-2012919926,2105598790,158662917,126492043,-337623416,92110876,-1961724667,-472780706,-472783919,428115850,-337623416,-532232700,1446349600,1500404968,-1947580791,-2145509346,1962935423,75400019,-954960896,63558,-788242805]},{"sector":6,"length":512,"data":[-24671261,1183400030,-1961759758,-472841122,1593739147,-940030327,127558,-1980217717,1174665798,1183402218,73305084,-1948004029,-1990263161,1187509318,721420790,-1992232378,1156316742,84245888,28837236,855829248,-230258240,505421451,-1274198134,190286336,-1037369162,-1980611029,1183577158,1183399940,-129579018,1187446784,-1962933766,1177285702,1183400178,-62486018,14960327,-1976177920,1586225222,-1914449436,67039382,-1962440486,1178330182,990215416,92208198,-337557878,-498693629,-773562741,-241791517,-1998978050,-465109241,1004816011,-1015218618,84245888,1586179445,-773598736,-1964781085,-2011593081,-1946226554,-472780706,-472783919,428312458,-772514165,-258568733,-1998978050,-1958221049,1183447622,-330905628,904593408,1586168970,-1914449436,67039382,-2096658214,1962994814,973376028,359989829,32261831,-481916416,-773562741,-241791517,-1998978050,1191134727,3965156,512476789,1200234016,-1996442609,1200284742,-1979665395,11930455,-49954261,-431584769,1166734899,1208005637,277832,-1897331850,-774337792,-1476448541,2106097022,2112257461,2113109507,-1948361077,-297367289,268846582,-661976460,11798410,99342475,-1947312501,1407439135,1490968203,-1962653949,-348681256,-564229298,-1995225205,1173810758,141824006,126539915,99287220,-1947312501,768519,-661921033,-564229293,289866584,931911819,1586175467,41389022,1183385483,-1961825302,1200348766,-364476154,57982987]},{"sector":7,"length":512,"data":[-167610485,1948255813,-51882478,1527170592,1183645795,250106000,-166597855,1950352965,1183667726,1996443792,-1563236118,194016909,-162892554,1946289733,48780855,512448876,1468669472,-1962887665,-634657186,-1992042453,-619976610,-1014293890,-337361407,-1962636781,-472783778,-17787251,126409219,-465109178,1946172544,-465138936,2129020475,-227082272,-624897,1996485750,-259617290,-1070378754,1388570704,-443851169,180829,538872662,125274910,1358691048,-1274985334,-538423296,538872659,4162334,939461236,11797642,1658120272,-1957313698,2122536684,376700932,505421451,-1979228277,11797319,1354773328,-397199640,-164364362,-397015573,-1958282181,-1977737186,11800647,-293616069,46292318,-326413056,1443163267,548388695,301942470,16533191,-1958941952,-472777634,512395147,-150973766,-2114941982,-2141187130,695468092,-1204420778,-397410254,-544497212,939476807,1500183784,-1224780150,1992440576,-12154877,-2080618753,2081029246,-62455874,856622791,362807297,-12189133,396493572,857120819,-17021438,857252544,-1560525174,1583297306,-1017256565,-336819371,106859273,-16775226,1183516230,72285956,-311050229,311901,454730070,512401744,-150973766,1490586594,1611761545,1342181816,-1172403551,-487129071,1348433925,1343961528,-2090129688,-1969158460,440862,-259267849,513590913,622521505,76087312,1571738,72648960,1577206921,-326412861,-1962522881,154994246,-1962378240]},{"sector":8,"length":512,"data":[130417758,-1961170176,-472840610,512395147,-150973766,1611859426,74907472,-1955959064,79846885,-326413056,-164407466,-561305877,-2020875311,1387929226,-1948059904,331842040,4030560,-11070604,266863734,190404970,1174828224,2081029763,1962871765,378412,-472785269,512399243,-561310997,-1948004029,-1960932729,-1981558306,1176406663,2080964227,-773944343,-1969780253,1566465822,1426064066,-326898549,861361672,-1960317962,-1948003874,-1172403577,-487129006,-947783541,1031823379,504656896,1348903864,652760862,1975520027,-24951290,-2083226615,91490814,1962950016,112645,-1070398741,-2080881015,24447486,-773944498,-1970828317,-96040674,1348903864,1771694167,317413721,-783556981,-1970828317,-773944546,-1970828829,-167031266,1183574645,512402426,451065886,753375824,1499012511,16285315,645993076,-1107220,454690503,1810366464,9693694,-1172403551,-487129082,-1994482683,1078001222,-1694742903,6139,1006395019,1282736727,1215629115,-1172403551,-487129006,-2020878197,446914577,1161243,456767568,512401744,-150990406,1601701346,1768810576,-1593391997,112860810,-1948059904,-1668838440,-334066914,-270368486,-1547564033,669719276,1571738,-60912896,-1996335223,-27358457,1991,-1172403551,-487129071,1348433925,1342181816,1610463720,1575324510,-326412861,114262,-2147197301,494141503,558499527,-4718580,65556735,74907602,1342314168,1342233016,-1952787224,1962281968]}]],[[{"sector":1,"length":512,"data":[35043338,-1654069168,-1956449373,-1034068282,-1957363710,1357677548,1996445526,549697540,-1337553584,-898897840,-1337553642,-172482992,-1360506782,1958742809,11856131,1342314168,1660106495,194866408,-1207470912,-397384971,113770367,25331,11566720,-1880554635,-1337553664,-1337553584,-1622828464,-1927938048,-1705988026,251331539,225820683,1353729677,201281256,-345738048,1241958227,-1207955935,-397344769,1183699290,381178032,-642232318,-857190400,1958742936,-336186558,-773944544,-1970828317,5421598,-125050121,1611908993,1946172800,-1705566707,251331301,167674694,381213564,-1746382846,1660134300,1353729677,1348662712,1499965160,-972690599,6485254,1593835960,1575324510,1426064066,2122443915,1966279172,-67508221,180829,-2081649835,1465254636,-972783989,6693894,17104769,-8312196,612303117,-83507317,616059134,-1125625754,608076028,91488358,-352251457,16891659,-543030096,903782965,19777419,1129729,-1863777418,-774337791,-1476448541,-2088336542,-2065071160,-2065070871,-2065070871,-2065070871,-2065070871,-2065070871,-2087812127,-2085911458,1911063768,-370111538,616038750,1555583078,-1070378948,550418512,-1141118896,-963907445,58572811,-1207877143,-397384156,-259273639,-1072970101,803799935,-217659903,12451942,19196166,-1949502488,197561328,-385649216,-24968938,-385647105,-320274162,1713682432,1736947792,1354773328,1343052472,-1950635800,197561328,-385647168,-1205993234]},{"sector":2,"length":512,"data":[-1706007004,251331539,242532363,1348871352,185571560,-385649216,616038610,-991408026,1975520202,12904707,1348903864,1348871352,10438042,-1548214784,922701926,922688240,-2103829778,-2095210706,1122502852,-217659652,-4718490,2011713791,-1055528715,11562987,616046160,345657446,-1206977789,-397384156,-1990629939,54394438,-1962443264,596100824,934805606,616058895,1152929894,1491619840,-1947170033,277958,616052853,65556582,1713682450,-889001904,1946157373,146720,216728180,1343178680,-397361101,753602068,1348871352,1349035960,1499841256,-1720743,-167044373,300619390,-397361101,-259286685,-1072970101,48760444,-16719,91551243,1963261571,-16893,1583335051,-1034033781,-1957363710,1183536876,50605316,1979714365,34728195,-472786805,497549102,-544918139,629613957,629613959,629613959,193406343,1351034247,1713682566,828946512,1354773328,1344328120,-1950722840,197561328,-385647168,1048773078,1946168205,18921501,943128400,-1706039212,242532363,1348982712,194529512,-385649216,616038834,2145931366,1958742936,-217659826,-4718490,1139298559,-1720588,-1600654360,11822160,18613819,446762612,730964737,-397361101,317399536,992711073,1946229254,18522377,-399797853,985148660,1307070494,1975520252,22866179,-1207894807,-1202708267,-397383721,1499030707,-1207875095,-1202690089,-397384156,1499030691,1343189176,1348871352,1342197944,-1962021144,197561328]},{"sector":3,"length":512,"data":[-385647168,616038690,-1070378906,-776449968,-2031595488,-1947169863,2109737926,17361155,1713682462,64199248,-1073017093,616042100,1994936422,1975520013,15526147,1348871352,-1198033688,-397344769,-440470650,14215679,1344158392,1348871352,1499738856,608075865,225771622,1344331448,1348871352,1499733736,261404761,1713682512,5290064,225044560,-963907445,58572811,-1207919127,-397384156,1048580114,1946183204,1713682458,1354773328,551467088,-1191974832,-963907445,58572811,-1207929367,-397384156,-1072956584,616065652,985157734,-991408098,-1202103965,-1202651137,-397384156,1048639771,1962960420,223655949,1713682512,1671817296,-1205970599,508585508,1348903864,185920744,-1204980288,-397344769,616100605,48779366,-1205998647,-1202709704,-1202705428,-1202716670,-397410288,-1073017872,1290273652,-16706,92075531,-335544392,1590070018,180829,-1964209323,104465478,242508880,-1274788214,18653952,-397361101,12066888,46292229,-326413056,-16810,-1190902133,2042298376,121319047,1128466292,-1343621150,1744776704,-268442608,-50333441,33817087,67371780,-1719149564,-829966201,159892359,-1719136632,171869063,57933884,-402619927,-1024974962,-1293397811,-386888814,-4317501,7137791,-148139615,1086331864,-1590980189,446901137,719775745,-4696341,-68660993,705947889,1223422091,1006780033,91555328,-352254530,37650747,1963393084,4096819,91553852,-352321096,1354773250]},{"sector":4,"length":512,"data":[-1959589912,-349574858,1685531,116855019,287669,733480308,-1207702784,-397410254,-259260650,1566492299,1426064066,-326898549,-1101572606,512427264,-472834520,-1081351215,1183538984,-2347772,1979719997,23390467,-472786805,1504182062,-1651921272,-1651920504,-1651991160,-1651991160,1216929672,-1853254007,2022273929,-2021052023,2106163849,-544633719,1770614408,-1266043767,227107977,1082714761,-1266098295,-1266043767,1602805641,-18295,-248715184,84166283,-878510045,768565,100918007,1183397335,-2082960386,1962936191,-1948742905,199951223,1345706936,1342177720,-1947100440,2013265502,-387848185,-16722455,1961362550,-370111490,-8322870,108344074,-385548104,-8322880,125055890,1358945720,-1191237400,-397410224,-1477850214,184516864,-1207470797,-397410303,-8263469,125055890,1358945720,-1191246616,-397410228,-2081830026,-18432,-258414512,-1952270104,7662064,1006780033,1819608320,1358954424,-1578073624,297417726,-1948059904,-659059752,-1101665495,1357580288,-352255298,167886411,113133291,-1102976246,1022036993,-351533634,151305783,96350955,-1104286967,686491906,-351731266,151240227,1048780523,1946316200,-16891,-4713749,669536511,184663792,-1981282581,100712146,1583335051,-1034033781,-1957363710,71732204,1024196909,1467416582,-472786805,-710410450,-259398775,126487689,294262410,-1333126262,903848453,-399122782,921379254,1342177720,187248616,-2094500672,3932222]},{"sector":5,"length":512,"data":[-18341515,-400561375,401286189,-350064664,-1640699883,-840430101,-402396258,12099158,-1207702778,-1034027009,-1957363710,82609132,-16810,755254923,54332161,-385649152,-661979008,-13704239,1401572263,-1970636918,-1920303478,-397345722,-259286184,71157387,-15895296,1996488310,-1741362948,1391194251,2097151619,-401675443,-259284615,28853483,367546368,-1720803,144324843,504332564,1349079480,-2129255270,-27883249,-1694742903,260117849,16547459,-457700235,-1070378993,136243280,1996426475,-59310082,-1097342488,-963967488,1575324510,855638722,1776832704,1342222374,-1010930200,1458342741,75402071,-427690101,-25035008,125108480,-132323241,-2130681111,1963524350,854087430,-2125010006,1963589886,937973510,-2125796545,1963065598,1006954501,-25083925,108331776,-102569897,-25086997,108332032,-64100265,-25090069,108333824,-17635241,-25093141,108334080,-25499561,-25096213,108396288,-52697001,12059627,1566465797,1426064066,-327029621,1465254146,-16089461,-756544394,-259303074,2096577350,106859283,-695531637,-1036265685,-963967362,126469931,75400014,-2129497088,1963000062,1220971269,-963968277,-1995940213,140413703,1586169739,2097625862,140413706,1586169739,-1962440442,126552158,-1962516853,1255605015,226279995,-1962385781,1086794503,-1996071285,1354773255,1346955752,-1203144728,1347420161,-2096734581,91488319,-350164808,552253443,1506142288,1665539723,-1274853494]},{"sector":6,"length":512,"data":[-24737536,75400190,-1979223040,11797063,-2037709589,860946174,-51883840,209125189,-16742771,1583736912,1586190681,50825990,1036487672,92078336,-16743482,106859264,-1769142389,-1039925504,1465837648,-16861441,-397361101,-147110461,-759684227,-2037559284,-397345024,1499029031,-567550069,-16742771,130471939,8817920,770199807,2130131799,552384517,-357039125,501764128,140413783,1077938059,721837707,28856327,-219656192,112711,1209854032,1219160144,-443851169,705117,-2081649835,1465258732,-955613557,63558,1183433867,276234226,1499295976,1089488521,-802433909,-997465461,-113015,-397406090,1499028903,558505611,-772514167,-773598749,1351060451,-163149535,558505611,-472783919,-2016943151,270672,-15698177,-11071882,1586169974,-398983418,199884349,-196703486,-400471389,1183434817,786977018,-297367155,2113929021,33155331,1962935101,990219088,243134534,1451951499,-1036301812,100598909,1048787947,1946180983,-399114444,-1986479386,540932678,-2095811328,259260477,1577262475,-8421360,-16485088,-2082542843,1946221182,-297351412,1586233343,509702,-96040192,-1996423387,2122579014,1299447812,1912610877,106859336,1946173315,-1983892718,92926022,-1995940213,274631431,-1962932282,994577478,58716230,-1962843671,276169525,100599179,-1947187457,-802426794,1086753618,216553040,113541981,-1996732790,-297366780,1979719997,18082051,-472786805,27787054]},{"sector":7,"length":512,"data":[-393287538,193880718,-1097930609,1871645582,1166972814,-930198386,193923982,193923983,193923983,193923983,193923983,193923983,193923983,193923983,193899407,193923983,-393287537,378766,12577024,1208764043,1178273161,-385646608,1183514801,-385512976,1031995561,-385649408,234815649,-2097111831,1962935422,9693443,1178273163,-385647376,898302089,-1961855485,1448100038,1499201256,-263258279,-2097122071,1946158206,4031342,234842484,1979921803,-2082673904,1946158206,274631514,-956299322,61510,1187454955,-939524114,129094,-100609,-1125642122,-10921637,1726484598,1183406427,-1983892496,140413701,602605449,-401574145,-1957078191,276169712,1308748622,1980790331,540835845,-968428172,1187446788,-2097151496,2097147518,-125926629,-15371008,1996427382,1996445454,-1950338296,126420574,-63969200,16285315,-320273547,-163148803,-1980473717,-786347490,-773598749,1351059939,-18399,-996087728,-351242613,1015039489,1006269472,158601334,276234070,1499145960,276234073,1499123944,1979969675,82529808,1308624070,1913681467,540835845,113767028,23927,-1947048309,1583345222,-1034033781,-1957363698,49054700,1996445526,1519904772,-28931751,855932555,-2146964490,24510269,1031817030,-1946913536,-1948200506,-28931088,1583334955,-1034033781,-1957363710,116163564,1183536982,1161742,-259267849,701679233,294531,1183516276,38045956,-402492161,-1957078459,-1949856776]},{"sector":8,"length":512,"data":[121309278,1065943678,51005067,-1992292794,1586232390,50825992,50662470,-96040704,2080395325,-2080863467,2116661703,209594874,1187448957,-16777204,1352727622,1208005732,2147239483,1683005459,-33226572,-58815489,2116679723,-58840822,-2012461430,1183451204,155486218,-1996863862,1183451716,189040892,-1992284696,1996488262,523692046,1342177976,1342177720,-1203499800,-397410303,76236002,-1956428125,1583349318,-1034033781,-1957363700,116163564,-1983892650,1183448134,-28915718,1996423169,108461832,-1929087233,-1924072890,-1924072378,-1202651578,-397410303,-259261466,92075531,1963261571,1590070233,-1034033781,-1957363706,-1202235668,-11534326,1996425846,71732488,112720,242679632,-1946233880,209125368,-16484609,-1847064970,-1192195073,-397410294,-396943556,-963948495,-1034068385,-1957363700,-554925588,-950577664,64582,-13990202,209095936,2122526443,460718074,-13990259,1492641872,714509657,-1983773697,76283462,1190938249,-15865018,-2037515658,-397344982,1499027558,1183384715,189155066,-2084080192,1946221694,-60912808,1946173312,713461072,300437759,5029886,1996486699,-1438216708,1709725520,-1438216817,1486874704,-1913091239,-1946211706,-802423210,721453240,1355230146,66995851,1996443847,1496443134,1460061315,-1912703233,-397366714,-998024925,-968982522,896794651,-13990259,-38082480,-14383479,-16484609,1996424822,612797704,28856575,-1070379008,-36247472,-14514551]}]],[[{"sector":1,"length":512,"data":[-1929087233,1358899846,-339717144,713461007,-974630657,208320524,213837904,687747,11535733,-1593793047,-2037833398,1048837926,1963072599,1241958152,-352317151,1816606,175570768,1498923496,1958742873,1241958152,-352319711,1241958150,-402651103,-14302451,484986880,-2037884580,-1098842327,1946222377,696683197,-11495169,-1947727242,190404951,-1951697728,-1543559546,-4710070,1609060607,-968982335,259260443,-402360577,-1224794700,-1494679774,-2145260722,553593278,548406397,-2037775125,-2037842135,-2033713366,720683,-13990259,202565712,-14055798,-443851169,-1957313699,-1957210388,-4324226,1979649023,190824197,-1070336117,189708368,-11118768,2075657846,179851275,347623424,95965184,501764096,314868734,-1034068385,-1957363708,283935724,-1928825089,-397348282,1183418129,105266160,1178277234,-2096072956,1946219134,-263812598,-2012586357,-10753273,-1927936394,-1705970618,250347676,369391359,1358579341,-335504230,1354773262,1342918328,1358579341,1344335544,1358186125,1343521720,1342929848,-1271537760,-559919104,1073787957,374864,-39917488,-1961573245,126487134,1183383732,-230242320,1996423168,1996431088,10263048,1183518444,1575324658,1426065602,-1070338933,191608912,74907472,1358954424,1343528120,1342930360,-1271537760,-559919104,1073787957,309328,-45422512,1497163147,28837237,855829248,46292416,-326413056,-16222465,-559937930,1073787957,903848016,-11534156]},{"sector":2,"length":512,"data":[1183515766,178948,1358690201,1576850408,-2097150270,23284798,251593854,-1581030580,104555340,75326288,1665926911,1279165379,511574371,694373025,2137214470,1309067014,-1593835165,103375690,109011788,1665926855,-1581055999,104555340,1333617488,1666059915,1665797635,1666190907,243860599,1319199566,1241908067,104548451,427713360,996364449,2103659014,112645,1352730859,1241918307,1319321699,1276021603,1242432355,1343109987,-1962641821,-1989980146,-1016902642,1665941123,-955875839,23284742,1285669632,1342585699,-1593410205,1285776208,1048822627,1946182472,1208942340,117424995,-943496376,6506502,113754880,16802632,-326412861,-16810,197119464,-385649216,1860698268,1592283328,-2081387643,1962936958,9103619,-1559607669,1183540048,1665835784,-1962516853,1665966855,-1962647925,1666097927,238929547,-1957202176,786682328,-1791449089,-1789160106,-1786538626,-1786342010,-1786342010,-1787521658,-1788832391,-1788177051,-1159162513,-399774722,653000385,-335623448,-18094047,1072176363,-401085441,317456200,-335584024,-10033139,1239943403,-402396161,1285685072,106859363,1319176073,73304931,-963967095,146955614,-326413056,1443032195,75402071,-351897973,-1274770893,-1679273984,1183340888,-1274705154,-1880600576,1183340888,-28931329,1996441146,112645,1183456491,-12174594,-1070398349,1195774187,1946172544,4030469,76202869,1583284404,-1034033781,-1957363708,82609132,29251414]},{"sector":3,"length":512,"data":[-1161393408,-487129085,1005620032,-243399050,1988714475,-1957499908,-472777634,-1962648061,-28931833,737967755,-1960186882,65262047,939459678,-385976577,-1072955549,-544531852,1577313233,-1962439932,-773979169,73270243,-30734455,-746717429,-1946270069,-773979169,73270243,1191118729,-62485508,2080785979,-1144616026,-140967933,200313851,1603502070,1575324510,1426064578,-1957237621,32179830,-1744532922,1474947152,168069209,1592882624,182877,-1275051,-401734538,-1034027047,-1957363710,74907628,-1962510593,-11532218,1183517302,-504868852,1575324544,1426066114,861334667,1174531062,-16490812,-2144992186,-210436033,1566492299,1426064578,-326898549,140428292,-1979824500,1589967966,71761668,-1006138842,1191118942,126363144,-361381878,-1946265973,-443810746,574045,-2081649835,-1000995604,1183582814,-60913154,-963905997,71711558,1589909107,105316102,-1006138842,1191119454,126363146,-495599606,-1946265973,-1956709306,180510181,-326413056,638082756,1589905290,663365124,276086794,208987146,141935674,-16234753,-521468858,11846698,574045,1458342741,108956503,185104011,-349473546,792559644,1031800180,-1610255012,48963842,76023178,1205832518,1946173312,71731978,184831743,-958761536,1583284228,442973,-2081649835,1465276652,-1985198451,-13370298,1946844729,173968134,-2097150010,1946159230,140413702,-2097150010,1946158718,106859270,-2097150010,1946158206,73304838]},{"sector":4,"length":512,"data":[-1962932282,1175129158,-385452786,1191117237,207537164,541032486,1187443828,1187446954,-352321282,207537262,654204419,-930478198,1702150154,1914763648,-1262384622,-222801920,-1008185312,190404945,-2092600128,2158654,1860764532,1354773249,1342918328,1344339384,-1438216938,242679632,-401836289,-1202651523,-1202708227,-1202711126,-1202713733,-1202716662,-1202716652,-397410299,-997984104,20179220,-2080487681,2085682814,1183651468,1996443819,209125134,-1912716056,-397366458,-1957080687,-1438216720,1988751363,-1744532824,-1157625927,992909521,1124496391,-336076221,1744776770,704643086,788540928,1056979456,100686848,-308737127,43582104,43584409,47153561,74907392,309334,-24582064,1308624070,-410971925,1988886526,-2130187352,1308623311,76195819,440728,781789883,108267323,-136166589,-13744661,3175,3080234,4128826,-1723400100,-1723360921,-1721263806,1983617351,1176794620,1946172544,80707844,108461824,571478,-30873520,1308624070,1962949760,-2124616951,1308623311,1983620331,-1959365892,1015086198,1177449786,1065410187,-2130414592,-16774961,-1202321290,-397410239,80150002,282034432,175570688,1353401997,1342177976,-335684120,142016282,1353401997,1342194104,-1946300952,1065355358,-2130414592,-1962932017,-1956749369,214064613,-326413056,1191117803,73304838,-1979431169,106873863,168265766,-1947503168,-1014298538,442973,-2131981483,1952187518,75399174,-1207601873]},{"sector":5,"length":512,"data":[48955393,-1034043341,-1957363710,1988843244,1962281732,3964962,2088967540,393492993,1344006230,-1047719,-1008140428,1975519999,553820166,-1962636904,1566442566,1426064066,-326898549,-1957210620,1988823166,207537162,-1979824500,-166986658,1015031412,-14584832,1448345206,-1979750680,1183448662,-60898052,1065363019,-1962314694,130426584,-62456006,812973835,1946172800,-25755861,1476163327,-1979761944,1183448662,-60898052,126494283,-11737008,209043466,-1004469600,-2010710946,-62456057,425603,1996427892,-59310082,-402229505,1451884295,-62486018,294531,1996427892,-59310082,-402360577,1451884271,-62486018,654073540,1593837510,1575324510,1426066626,-327029621,1465254020,-8604019,-8616250,106859264,1962950528,40933898,1586171643,-1962440698,126485598,594828348,527707964,-16359797,-2037574089,-1705967748,251331348,-8485235,2089192784,1290293503,-10921649,-2037578634,-397344900,1499025022,1174434793,32243339,168135239,1007187136,1006924892,-1963887313,-12154875,-2147482170,1265970748,167855243,-1978567232,92864326,-963948969,1325787216,988502361,1962946109,-12154315,-347208312,1006930442,1007645788,1309373487,-1769093493,-1036255364,-2037519501,-969146500,1448546423,1498338024,-1979192487,92864326,1015084939,-385649664,-2037514363,-11468932,-1259862922,1599691086,1575324510,1426064578,-327029621,-11140948,1996425846,1418104072,-2037559041,-1924071588,-1924079546]},{"sector":6,"length":512,"data":[-397347770,1996487614,74907398,-10975603,-1639543472,-364475056,-96039600,-73078704,1357530765,1356875405,1498296808,1958742873,17295619,1358579341,1358186125,1498291688,1958742873,15984899,-83726182,-12154866,-11223424,-2146994944,16734398,-1098891404,1962999636,-12154349,-11237752,-11172154,1451673146,418054399,-10961280,-1978567424,-2037842106,-2033778856,-969212071,16734854,-11237750,-10975686,-1628896396,1555988480,158662911,10387072,-1830222987,-1639543552,1552321872,-1545056001,190404941,-385649216,-1224802179,669581148,1996443901,-48174946,844681354,-259286846,-10699136,186020864,-1206749706,-1924136914,1358912646,1498225128,1958742873,1418104077,-2037559041,-397344932,2122382833,359923870,292943371,1342189240,1352550029,1498214888,1958742873,1485212940,1183666431,-890744674,-1639543299,1552321872,669536511,190404941,855930048,-1207702592,-1956773887,146955749,-326413056,9759873,2123061078,-642296,-1591967738,347741312,98760448,-397386190,190402579,855995584,21490166,-1928694017,1358916742,1498222312,535318617,-2037573895,-1705967764,251331636,208977931,-9664883,-59840432,2150017,-9664883,23193680,-956829557,1316290584,1249181451,1946172800,1183668037,-857190212,-1923524276,-397362106,1183710272,-739749700,1183651576,882528444,185531140,-385649216,-1927937831,-1202668474,-1202691153,860906331,-397389632,405141966,2100480,-956829685]},{"sector":7,"length":512,"data":[779354136,2148087,1538795637,-1346875293,1183666275,1961382076,1348032844,1498131944,1183651417,882528444,185531140,-385649216,-830406519,-956891104,1098186756,425603,1996426868,1666365446,1279387728,116087129,1666320071,1048576042,1946182482,80642315,1666365440,-130226096,1344339896,1348686520,1498394856,1958742873,30310660,46593792,-13470464,-1430780810,15224931,-2141628084,6531646,-830403724,-1430781950,65556579,553629944,74907472,1498380520,1958742873,30310660,175570688,-16749336,-1961066482,-1956749370,146955749,-326413056,-1274788214,-402148594,-1034066017,-1957363710,1988843244,-2145588476,74841916,334186054,1963605120,1343074310,-1946168600,939476702,-2130720024,-545980356,46292318,-326413056,74907422,1348710328,1348688824,1348686520,1348709048,1576575464,1426064066,-14750581,-1346894730,1538805859,1387810915,-1430761373,-18329501,46292474,-326413056,-402229505,-1346830405,1538805859,-1696051101,142016507,1577044200,-1207958326,567097088,-1297956214,1949252707,33998341,1438854945,-326898549,1988843010,1782876676,1183383732,17102846,-1979157248,95747654,-1956192536,-472777122,1468784131,-25261480,-857210188,-1668510874,-402541568,914974403,-1956765390,46292453,-326413056,74877782,-1005042549,639698974,504383369,1359333003,378228736,-1014292214,1375750405,2013264,-154474416,96897822,-1957691252,-1591670250,-2080038648,-1202695680,-397410292]},{"sector":8,"length":512,"data":[-396953936,1566506865,1426064066,-1957237621,1996424310,317216262,-1702589851,1979923456,1946631175,8513795,10194058,516166795,-1977212664,-33520505,1958820544,348321587,-2144504832,527768057,10388619,855644603,1022621650,1007711240,-1341885170,1007348497,-1341754096,-1341986028,-1290685422,1711663104,606405771,277760,516173685,-2144984824,402687167,516164213,-2144984812,434896423,554966724,17793062,-1335143285,-1337790956,313847303,-857202509,-1034068379,-1957363708,-1528004116,1988843008,1552321796,1172852991,-118991296,-163149058,2133131444,-1701541376,-2130659840,989888482,-1978567230,973118340,141948742,995247243,242527814,10128512,1552321920,-396996353,-396951791,-396951943,-1956757500,46292453,861361664,-1946252298,1694213063,1007289913,-1511455884,1672847616,1207967525,1979715389,9890051,-472786805,900202286,1570854305,1923203745,-1029586271,-1449016671,-1029586271,-1029586271,-1029586271,-1851669855,-83441759,-351297436,-83441907,-1106272156,906559490,113713448,8492,113725675,450913531,556416643,-2143259648,6575422,1186871668,672039169,-352320479,-83441874,-2145435548,6575422,582885748,672039168,-352317407,-83441898,-2146459548,6575422,46008692,672039168,-1090516959,904404992,-82408678,64422756,-1765637674,1942108952,-339725564,412530763,433973328,1706301065,-2090487133,6617918,922685044,-924293893,504793369,555524897,192214539]}]],[[{"sector":1,"length":512,"data":[431614038,556144265,-2094979933,2174014,-16052364,-396948620,378083747,547561762,112673,1438867039,-326898549,915101188,908271912,-956865448,108331010,575223,516173172,-1977212636,-1262319081,-2116515072,-1325391645,-2114202875,-1275002677,1679157259,11846282,-478029685,196345887,-144439576,1946158278,605996059,549683489,-28931071,-1946394999,-28931117,45662350,1676011536,1099511,922684276,922689830,2095587620,-443851165,-1957248163,589375542,-144418762,1962934982,147257094,-1005620224,639698974,-999929974,639706142,-956889208,578027524,555228868,639616038,637958143,-1962641409,-1591663082,537207076,-1202695679,-397410287,-956828736,192151568,556152575,556021503,1583537128,-326412861,-150672253,35727366,-150440704,136390662,-1003588608,639706142,-1979623542,-1962887998,551780824,-754601728,13337083,-401886207,-1031118021,-661978956,2089857,753404852,671545187,1946158113,605996061,834896161,-28931071,-1946394999,-28931117,45662350,1661593616,116856811,1057064,378212212,614539558,1115425,-1729605550,1575324514,671545283,1946158113,605996063,-1752488415,-1960443580,-1006550393,639703070,637687689,113706889,8488,-326412861,1443163267,555228868,39291686,-1006138586,639706142,21272457,1116178726,404669441,532948513,71797542,105319206,516177269,-14278376,-14286217,641138487,607584033,2144289,-222894000,556144267]},{"sector":2,"length":512,"data":[86058145,516161568,-1993989852,-1993996713,-1014299577,555228868,39291174,856131878,404669686,532948513,73384998,-1979824500,200014942,654073540,-16775226,-2092499898,-260304386,1348795832,-2143503384,-2140825842,1348795832,1348795832,-1191464728,-397384451,-38208747,-1645719452,-990497988,639703070,-1004134460,1183581279,-60913154,1589906923,-62455812,4161574,-2092562827,-293858818,1964113539,-17700861,1575324510,671545283,1946157601,136234000,1200236065,605996134,1200104993,671545089,1946159137,136234000,1200236065,605996134,1200104993,671545089,1946158113,-19273691,555228868,639616038,637958143,-1962641409,-1591663082,822419748,-1202695679,-397410287,116912568,1057064,378212212,614539558,1115425,-840413102,-1957313696,82609132,171869014,661979196,516224563,1183588636,-60913154,1589906923,130492156,1182992160,-1589247236,-388930309,-361249221,1593792232,-1017256565,1672742646,-402426876,-1966907524,-1973114610,-1956321490,-2090575850,2174014,-109041548,-2145160691,511120377,1884919,-1023993740,259260420,1969276406,268009482,243271026,-402431052,1438867176,-327029621,-2037579612,-397344932,1988770660,-1370060041,-1224343368,-389467385,-443850557,-1957313699,317490156,1048794966,1946172426,11004163,103531659,327728,-62486020,-802433909,1451877003,1463714042,125042788,1348711864,-1956782104,862255926,-1956385793,-1956360938,-195655225,-1947056503]},{"sector":3,"length":512,"data":[-128546361,-990493047,52501534,-263811873,1005477513,74710134,65783435,-1979955573,-265552314,1996486659,-227082252,-92864738,-260118448,-1018113,1996484214,-159973384,-385976577,-14749588,1996487286,-294191120,-385976577,-166989732,-997484171,-1946401277,1463714016,125042788,1348711864,1599971816,1575324510,645945027,-386374732,-259325575,1348753592,188383208,-402164234,-1073020567,300421748,-20977412,1348711864,-386265112,132906083,1348711864,-386329880,113770248,8494,465962694,-1581031935,104555608,1316316413,1690633974,-1606781694,104490226,829777303,979694496,1969592326,1688903976,1699677755,1048584053,1962960066,1689297176,-388822863,1693648442,-1331688589,989901924,1919199750,1683535903,1694349392,-117708720,362812139,203342949,126363169,-1268429152,1599203328,1704529547,1223164340,805750623,-1023410143,556940929,125133749,1348711864,-398867480,-1360462224,1958742784,1683535887,-111482800,-386009624,132905677,1348753592,-940025112,18951686,-972634624,1048772635,1946165552,-12326909,-1070377277,-766449584,1342177720,868902632,1443228662,1174979560,2081619587,159312118,-1957313698,-1528004116,-18432,-765990832,-1593848088,1352794396,1326350436,2122547300,729022468,-10713459,960686160,1348711864,-1913130264,1358912646,1348711864,-1191693080,-397384779,-1246169191,568873059,-1207440583,-397384779,1760098496,1575324416,-1593834814,104555445,91579480]},{"sector":4,"length":512,"data":[-352321096,-1010814206,18364159,-399669016,-1073009237,11535477,-5242133,-1608909662,-16489392,-1574275422,1705126516,711172650,-1574284126,1134701138,708944426,1342179000,-1207472152,-397410297,146278248,1642614784,636935,123398224,144107715,872393192,1491620032,902215881,-917378992,1345706936,-397361101,112775671,28856320,1005080576,65517576,-1419188144,-1022744600,-2081649835,-1000994580,56991774,-1939495906,1586100806,-92864520,1996430931,-297801724,-362753,451475574,100745454,117400996,516187558,-1014930016,-1499396144,736153957,-28930856,-1946394999,-350143946,-60898290,38243110,-2096658138,1308818502,1183575925,-60898056,1577552166,-1034033781,-35127294,131087634,-1070398349,-793241365,-1326952441,-1575581422,1705026405,1344355512,-1191218712,1438842881,516222091,-1014930016,-1499396144,736153957,71732184,65065288,126559960,1705121419,180829,-2115204267,1442906860,-1962641781,104531526,91383206,-352320314,-11133382,-1159199114,-397389057,1444867457,-24736490,-1927917314,860945990,1520062656,-401637099,1035503492,-396996575,1499021378,-16873843,937973328,1582913856,-1034033781,-1957363708,82608620,-1957210622,-1232271746,28900860,1911050240,1958742793,4096868,1567948860,703018751,-1992850200,1044119110,209002810,1705522943,1085663318,99309913,1676170839,702783999,1449503395,103532427,1346380086,17071747,1048775541,1963025830,-339725564]},{"sector":5,"length":512,"data":[71731971,703438928,378142900,11938283,1346945579,-16106776,787021430,-1956749513,79846885,-326413056,33746049,557072003,-1928891136,-1543635322,1048798632,1962949632,336108080,922685313,922689850,-202873432,-1506344962,976682853,876019489,557234209,557365328,-1449215920,149547088,-2129307238,1575324431,-326412861,74877782,1080403617,-793059119,63974151,1002867698,1936040966,-336186620,-1539953916,142016357,-1207535873,-1202716662,-1202716665,-1202716416,-397410271,-1072962000,585826941,-402229505,190398337,-1207601728,317456383,208848443,1343644600,-397361101,-1041504260,1566490675,1426065090,-326898549,-11053558,-400475594,1451884081,-129594886,-689418158,1207471083,1705262633,871909003,-1610208302,14320485,-1577695607,1177249188,1992297462,-94991592,66602635,1380995783,-1577552129,1177249188,-2115481354,-1608596245,-826048155,-28931065,-1946394999,-345659850,-60898269,990350118,58128454,993995046,2099329590,-60898294,638028582,1308772233,50097795,-646580725,1705381631,996517537,2099329542,1958742796,-1207702782,983760897,910066465,310247713,51323624,1210136070,1705379387,251593854,1583292726,-1017256565,-2115204267,-1929314068,1358889094,-955704600,-1608754938,2000585472,91488349,-352315720,112643,-1205777757,-1924131200,1358889094,-397361101,-1072955749,535495293,-16742771,-56301488,-397361101,-1073017060,820511605,-18178,-841684912,-1946163784]},{"sector":6,"length":512,"data":[-1581031963,104538426,108881318,-385953560,-4653549,-1957313537,1208403948,-1711275933,260117512,855930623,1911050432,358193917,-1034088575,983629826,906378017,-1592951775,100868406,104538424,92217658,-335685912,336108076,922685313,922689850,-471308888,976683004,876512033,91488289,-352320840,112643,-47781808,-2129307238,-1957313777,49054188,876512002,125108257,-33651059,375761059,-33651059,976682832,-58726367,1189630034,1493616618,-956257508,18958854,378320896,-24736432,983650557,-1509541087,-1928430235,1358823046,1497199848,-352320763,1354773250,201170664,-352158272,557490478,1705379387,-152563587,-24736259,-1679273731,-12392197,-2037576725,-397345282,619248526,-18179,-859248560,-1946163784,1438866917,113765515,25416,-1560000885,-1073012428,-1070394252,232974416,1342177720,-1711010840,260117512,1503266283,-401637099,-1034027272,-1957363710,116163052,-1923656190,-1543635322,1049322920,916529466,-91846367,1665704445,-33782135,1342177720,872391912,1407733952,-504868825,1241958183,-956300511,-1323542266,-1506345216,943128421,557496353,557234256,-413800368,-963907445,2113929021,9038083,992032417,1962801798,-59119611,983639531,1959213857,1575507721,-25499394,-2037705237,104594940,192176968,557463295,1342177976,-1577333784,-2037833418,1049361914,1218519354,-58291869,-1178170371,-54853627,121319085,1128466036,703330274,174587694,393220]},{"sector":7,"length":512,"data":[1835015,-1374683107,-1373721065,-1374179810,-1946260504,-401937424,-259261046,-488111125,-97283,1290339196,1354773503,-1946230552,-1956749370,-943497755,18954758,-402396416,1048837277,2130797990,-69605130,-326412861,74877782,187882984,856061120,-35106624,2096499640,318669573,-963966594,1342228485,1589177320,180829,1458342741,75402071,-1274264182,-2081387776,2855230,2105544052,125042704,-1274198646,-1947170048,1566465990,1426064066,-326898549,75399940,-2096663552,2855230,1048779636,1962949630,-62470646,-28916011,-970593352,-958727098,-339739066,71731995,1006503483,1187383925,1187432188,149665278,-1006876986,-1258404154,1347469363,1183666256,28856572,1525174272,5224482,1354773328,1342197688,-1924087757,-1202651578,-397410303,-443866559,180829,-2081649835,1465256172,-1962641781,1161926,-125050121,701679489,-15341482,-1996339829,-1072956858,-396924812,-1072955598,1979670644,838592516,200820361,-2096794378,74777086,-12326826,-1274264182,-773795584,98619872,1183390084,-1965519876,-12154873,909843851,192232446,-1962520694,130481246,-1979520051,-92864753,11846026,838920272,-1946204534,126418014,-386369793,-397004379,1583349411,-1034033781,-1957363710,49054700,2123061078,-1161327868,-487129071,-964562805,-396940846,2089025151,141885188,-402361089,1810575729,175439627,1946288003,112645,-1070398741,-1962981752,11798596,1149915200,1073787913,172264016]},{"sector":8,"length":512,"data":[1346371764,-1274329974,1448099840,1358850536,1200233611,1342223361,1200233611,1342223363,-1743829878,-12154288,-1696051048,71600433,16744064,-396950412,1149959906,1342223374,1462014696,-1946286360,1583285316,-1034033781,-1957363710,-1957210388,-947190658,-150990406,-2114941982,1462358726,-2080513304,1962869884,74776338,-399452952,1153901138,1476394756,1610468072,46292318,-326413056,2123061078,-1161327868,-487129071,-964562805,-396940846,-396952149,-1957626414,21465628,-397410124,-396942882,1583349143,180829,1458342741,-1173993845,-487129071,-1207969653,2062035414,-2081387728,1946158206,112649,613476432,28837867,988303360,1592284722,-1034068432,922681348,922707380,-1766300238,314069016,-1205972992,-1202710144,-397410296,378085944,-1365023312,861324133,1443228662,1191130088,2081619587,112886,841738320,1706034887,113704960,26030,-1957313698,-164407572,993787553,678691910,-1560000885,909720574,141831057,-1107207192,350945281,1358954424,-1194812184,-397410303,-1070334542,-38999984,1006515967,872299496,1843941568,1590070051,180829,451065886,754031184,1499012511,451683969,1048637407,1946183331,1343991816,-342384152,1354773257,-386005016,1438851331,-1957237621,-4717450,1122521343,-236431672,1354773501,-2094814744,2855230,-167050124,-397014924,-396951885,-166986430,-1545075339,-402396161,1566443867,-2097151294,3931710,28837237,855829248,1006543808,730939011]}]],[[{"sector":1,"length":512,"data":[-402295808,350945452,1342177720,872222184,132665536,-29949955,-40441797,-1170473311,-487129071,-2020878197,1455630808,-1858174121,309592107,703334086,1683005441,-291308028,702390825,1760043755,1343654408,-1962887580,-141864966,-1957760981,-1560345402,-576574996,80186153,703505151,512879080,1343939256,-1624444518,1599691037,-1957313698,1988843244,770201092,1354773501,1445127656,1459485416,1593608680,180829,-1979645767,-2140909514,378207686,-1031773177,-1207453697,-991427072,1994965843,127002879,-397361101,28900756,-1914155008,586541309,57982987,-2080388632,2855230,113643124,-16766498,-398721482,871104205,702416582,-18431,-955258800,-397361101,28901252,2112376832,-24844033,-2096611608,3931710,922684789,-1578615810,1354773500,-1591618584,297417726,-1948059904,-662205480,-1957313751,71732204,-150990406,-2082960414,-14035265,28837236,855829248,46292416,1354773248,215136336,2275408,816048208,-326412861,1443425411,141986647,-955482485,702806086,1342177720,201308136,-385649216,113705171,25416,-1963434357,11799367,-1240901750,1220684544,-1996071285,119400455,990273163,-2096270329,41812284,233311487,10611199,949891,1586178421,74973176,-1993501464,1586232902,-1977644040,11797319,1354773328,-400666904,1996431075,762833150,989885161,58592894,-1961984373,2126985988,-2093184766,74776636,66759,1586168971,990315270,-1962180665,-1962474748]},{"sector":2,"length":512,"data":[1120938967,-4713471,-219655937,-1996190779,1187510854,-352321028,-92864730,1006257803,-2096073273,1946159742,178181,28836843,855829248,1459572928,-96010492,-1946401025,126551646,2113685051,-1956749360,214064613,-326413056,2123061078,175540996,-396996785,-1957087779,1993292744,-338744572,-1580649726,-1053072568,243860598,906191688,2122539848,158663174,1705647755,-352170102,-1440838905,55544421,11846026,1354773328,-1206027544,-11534335,1178142838,-1207601914,65741120,1344357048,1446053608,1445916648,1496678632,58181435,1610514152,146955614,-326413056,74877782,-2097150778,3931710,-1202318219,-1202711010,-397410049,113742790,89463,1048780011,1963015166,4096789,242548796,922703390,384311610,-397389068,1566499293,1426064066,-326898549,1996445198,-230257400,1695279184,-963907445,1913013819,74857234,2122517879,125042930,-1995809141,-11408585,-1927936394,-1705970618,250347676,369391359,1358579341,-335504230,1354773262,1342918328,1358579341,1344357560,1358186125,1343521720,1342929848,-1271537760,-559919104,1073787957,374864,-610604976,-954940285,62022,-16097653,1996430903,10263048,1183518444,-443851022,574045,-2081649835,1996431084,-498692852,1675552848,-1981393271,1446765638,1966043658,138820357,1451960434,-465138714,1996903995,990213405,376898630,14843523,1451954292,-465138714,-1995546997,126419543,1996445675,142016266,-398029546,8690256]},{"sector":3,"length":512,"data":[1996426988,74907398,-196702954,8690256,-1070395668,189708368,-196702896,558151760,-398029488,344176720,192657488,903848016,-1605369676,11810270,95965248,-504868864,348423130,14829255,241076992,-16615425,1996430903,8690188,1183518444,1575324642,1426066626,-326898549,1996445196,-163148538,-1375147952,-1928825089,-1202653626,-397410294,-259269273,1358317197,199236072,-1924104970,-1924073914,-397347770,1586212398,39291142,2122516361,729088244,-1202667469,-1202713778,-1202711385,-1605366917,11810271,903782480,1346371764,1342178744,-2082842648,-4321596,-1928532993,-11471290,-1326971786,-1957078733,-443851066,442973,558251651,-955745024,2180614,-1961825536,1248111126,992036513,-1996196158,-1021229546,558382723,-955745024,2181126,-1609307392,11822323,-1588932469,-1036312248,378078326,1438851400,-327029621,1465254220,1688800906,1007304323,-2146798336,192021753,1946679680,459663366,855761641,-149820426,1946157510,-351817724,-2011123710,1191100546,10550913,-1432229518,1210513252,1174799137,65065249,-1989890554,-939607418,1325315206,-1441887488,1175333732,-1266250975,1992375294,-336491772,-1263105276,-775517186,-1132033568,-1858173954,242483243,-1268494176,-260864,-21592439,-291499285,-1979665367,-1238766570,1220684544,-21592439,-1268452448,734563072,-1960753138,1006548614,-352160063,-1232172284,-1198618114,114686,-1962883863,1006549638,1935997702,-1132067990,-83477506]},{"sector":4,"length":512,"data":[-1961068700,-1591665130,-2046615268,1347616442,1619430678,-1224781569,-1779892548,-1956910114,-1591665130,-2046615268,1347616442,1619430678,-73314049,-1165612188,-1098479106,1911050494,-266957858,-1165587612,508580606,-10451315,-21068285,-1132033200,-1098503170,1374179582,-1961366562,-1956319210,1392425606,-2037574064,-11468960,-385958730,28892728,1448562688,1619430743,-1070378753,416016464,-21723509,360105531,1346422411,-1263075497,-2037557250,860946112,-1360506688,1688903960,-2046697263,994574010,2013182142,-13375229,28841707,-11055104,1476310198,-20937075,1354773328,1192789224,-21578181,-1029643146,-1962888092,-1948003880,-1973112689,-1962887999,1177955312,-1262122463,1208363776,-1199142623,1928727550,1925188368,-1263125748,990278654,1929295494,1354773260,1343991272,-350471192,-197722348,473098340,1346422411,-21461365,1659392064,-1956749541,1438866917,1465314443,730939011,-1609796608,11822160,-964431733,-1609438213,11807214,-324996981,721466409,-20544528,-1272320608,-1594324224,11807211,-1957693397,389874758,-385649152,-661979000,-13704239,-222723161,-1111885639,45728697,45744826,45744826,-1279664454,-323361095,45744825,45744826,45744826,45744826,-860224838,-1581656903,-953457494,-350140765,1175387970,-16454879,-400472570,871103774,558368455,183173120,-1268452448,-1547293952,113713480,8518,908663275,283844936,558380545,251595499,82518344,558368511,-386070040]},{"sector":5,"length":512,"data":[1583349033,180829,-18346,-1077876656,1342177720,-940104728,521951494,1241958144,-402652639,-397370555,-259301323,2097151619,-1455521772,124912740,1688813184,1457026311,-335612696,1590070226,-326412861,-1610421117,11822274,-472786805,1689290635,-1963047287,93912646,1185152947,2109737761,1174849286,-2097151967,2855230,1352666228,-1962888092,-54426680,-291500053,-1962888151,703373512,-936705868,-12154295,-779468648,-1037369162,186730659,-955875904,2181126,1575324416,-1373715261,1334453861,-4095959,730939011,-1979091968,83932353,1038876669,11846026,18097911,-1728046917,-936707081,1006648963,-2094893824,23438910,28640373,780797931,-981441114,986024703,168457153,-1979419411,-1325208627,-1262384639,-1957313792,71732204,1006634555,10689908,1975520060,320976901,699925483,702915347,1342177720,200800232,855930304,-402199616,28899192,46292224,4096768,91553852,-336667928,-69474301,28858051,-840413184,1958743031,4096803,477430076,1006515851,1358954424,-1195470616,-397410303,-790039492,-72357634,-197990314,-1957313698,705072876,73304832,2760235,-1706426184,1616,180829,1840133887,-1006641176,1840264959,-1006643224,728608929,862331398,-1710968366,60735,-326412861,1988843350,-754667260,71759854,24379407,1840292166,1713505835,108250683,-1031024077,1049301739,906061346,581002786,1840161638,-1070344309,-1034068385,-1343750142,2144472063]},{"sector":6,"length":512,"data":[184843274,855929792,-1190401088,-770965506,-937229707,-2084322933,1812030,580978804,1840161638,512432107,-919397608,453777035,-1709503839,59703,-1374254782,581026669,1840161638,-326412861,1342177720,1342180280,-1962641665,-1976918498,11797063,661121104,180829,-1206498584,-1202716667,-1202716666,-397404427,95955271,146296832,280514560,954748951,380090409,-4593584,-4696381,1005080831,1006543293,-150990406,-1948742686,-1557538681,213400578,99110912,-1421966349,91488307,-350755906,402112003,-1642165418,-1274574294,-806858752,-6756316,1342177976,382842960,686155856,1342177976,1342178232,1343675576,-1205283096,-1202716651,-1202716667,-397404441,113715399,21569,1342177720,1578659304,-326412861,-401806205,-1072995098,1874331764,247175680,1586171777,41418502,-196702954,10263120,95948524,1183666219,-1746382604,-1202104020,-1202716642,-1924136954,-397347770,922691703,922709454,-1927909940,-1705970618,250347652,1344996792,1358186125,1496082920,1423449,440400,-196702896,675932240,728615073,-1318205946,1357435654,-196702954,10263120,-1715990804,1183666198,937971956,-1202104020,-397404400,89730209,-1202716666,-1924136952,-397347770,-443865073,182877,-1275051,-776469386,-857190299,-1733844,-1229454218,448286821,770199552,899171,178256,1706473552,668854352,1343017656,1562756072,1426064066,1465314443,-1962508661,2105739381,309657614,1708243030]},{"sector":7,"length":512,"data":[744024144,-1072998055,-397015948,-1705574490,6147,661962763,-521279402,1348709048,1348686520,1343659448,1348843192,1496080104,-1746382759,1348032811,1496027624,1443687257,1348843192,1342184120,-1201490968,-1202716659,-1202716669,-397384266,-759683229,1239961612,-401713371,1583349407,182877,230643542,-1270971624,343146605,1840529025,209518848,1840529027,-1106938769,65734144,-2080374850,1869460542,1048776308,1962962356,71204954,1400176683,1840529027,-1090095761,12458017,-1863821554,1358077,768080,388216912,-1642165424,38242858,-2146631500,-152547328,138314532,91488316,-351797058,1241958170,-956301023,740055302,-1770002432,1534060624,2113929021,-2131719422,7185982,113706612,26879,1342180536,-1947121688,-1017225274,-4503372,105945855,-1014300672,-326412861,10939521,-4237482,1030399,-259856304,1343715000,-10713459,726788176,11557209,1183651408,345657516,-1928398077,-397366202,-1990645011,1040145030,142475267,61562509,509656,1353467533,-10713459,710731856,62413145,45633536,-2037559296,-397344932,-1950865861,-2037559273,-397344932,1499015935,1348903864,-1193315608,-397410262,1183670486,-2098704212,-1404662305,1552321872,468209919,-1202104022,1347420163,-10713459,637397072,857413793,374362834,1353467533,-335510374,-1404662514,396408912,1552321872,-1394061057,1348032810,1495918056,453943641,872414725,374362834,1353467533,-335510374,192526350]},{"sector":8,"length":512,"data":[-1404662448,399161424,1552321872,-1142402817,1348032809,1495905768,-1343729575,-1202104023,-1202716669,-1924136956,1358912646,-1591374104,78715816,374399187,1353467533,-335504230,379172878,-1404662448,397785168,1552321872,954749183,1348032810,1495888360,1810387033,-1202104023,-1202716669,-1924136955,1358912646,-14333208,-9581002,376294454,1353467533,-335510374,-1404662514,399685712,1552321872,-118992641,1348032809,1495871976,243801,505936,1552321872,283660543,406173733,1552321872,-722972417,-2091296471,7186494,1606288757,-2096108789,20163390,1304298869,-1107039464,-1923737514,1358912646,1495854568,1839767897,1996489533,-774337757,-1476448541,-1057308430,-1056653057,985579785,-1106384104,149624929,-350719042,411090435,1552321878,-1209511681,-1202104024,-1202716669,-1924136951,1358912646,-970680600,-2097107898,-15090114,-1096740492,1389507353,1183651408,-2070261588,-1592857600,101412286,91516352,-350664264,425703427,1552321872,820531455,-1923524311,-1924092858,1358917766,1495868136,243801,702544,1552321872,1088966911,1841471780,78762547,15548314,374362624,1353467533,-335510374,413120526,1552321872,-320319233,-1923524312,-1924092858,-397366202,-1168562031,-802488289,-10713459,-397225981,1499015375,1343789240,-10713459,671148112,62413145,213405696,-2037559296,-397344932,-996072481,1389507437,1183651408,-2070261588,-1206981632,-1924130623,1358912646,1495831272,-1404662439]}]],[[{"sector":1,"length":512,"data":[-1404662448,674752592,2079321,-2037526485,-805044388,678815826,-1732748967,-2037559272,-397344932,1499015078,1342178232,1342180792,-10713459,595978320,862857889,374362834,1353467533,-335510374,417576974,1552321872,954749183,-1923524312,-1924092858,-397366202,-1168562211,-802488289,-10713459,-397225981,1499015195,1343789240,-10713459,659351632,62413145,246960128,-2037559296,-397344932,748757803,-1311624338,-314598908,1347551232,-1404662506,8690256,95948524,-2037559271,-397344932,1499015127,1353467533,1353467533,1495760104,721428410,1552322000,1389364223,1495775976,412661849,1552321872,-337096449,-1202104026,-1202716669,-1924136945,1358912646,-1591555352,-768381394,1067058353,1375731949,1183651408,-2070261588,-1206981632,-1924130521,1358912646,1495758568,-1404662439,-1404662448,656140368,2079321,-2037526485,-805044388,660203602,-1732748967,-2037559272,-397344932,1499014794,1342178232,1342181560,-10713459,577366096,1839742595,-401312510,-768345166,1067058353,-1996488467,1183448662,-399709188,1347614778,463879811,-2146994944,4001598,-1070398348,245434347,403057435,1540502299,332923737,-28407350,872177289,67156178,1996443730,-59310082,15506586,-1927917568,-1705989050,250347676,1343658424,1353467533,1495665128,-1404662439,386971728,1552321872,-1192734465,1348032806,1495658984,243801,1226832,1552321872,-790081281,112673,1292368,389593168,-1642165424,38242858]},{"sector":2,"length":512,"data":[-397410124,28843969,1676169216,1241958161,-956301023,-669230842,-1857034240,1447028816,263780491,703090688,2097089516,-16637,1583335307,-1017256565,-2115204267,1442874092,997113687,1346099896,-402360577,1499014719,163203,495658101,1946173315,1004386309,-524811285,1979666491,74907396,1495621096,1474842713,-380020443,2105737437,410321666,1346102200,-402360577,1213801909,1342457347,1495661288,12577113,33717635,-558360715,905924667,-402360577,1499014434,622651472,-1561765543,41779968,-385649663,-340262765,1996443707,628615172,1174620249,-1125625852,-10921691,-2142859979,632416336,-259303079,1962949760,7334147,-2142871317,292814908,1352139914,1346105272,1495600616,1975520089,2125892073,1174531071,1946172544,-1744532975,1005566032,619767888,-1072998055,1015081332,-972721152,32178180,1005303886,2125922128,1005762815,74907472,1495568872,-1947709351,1348032804,1495565800,1015039577,-342067968,41779974,-2096729084,-202832185,-1956749314,46292453,-326413056,67169409,-67074419,-20649904,-1924087757,1358692486,-67074419,616294480,1793609817,-1547684991,1017322266,456827675,-400868958,12106246,1575324422,-326412861,1988843350,108956420,902643337,117819275,848208640,-1556843357,346240363,872915765,-1959552605,918983,-1557183581,1101213395,819634988,-1556992861,-947178735,-1560275707,27470814,884122418,1057343115,715039488,-1960128093,3212742,-1557483613]},{"sector":3,"length":512,"data":[665004685,96897834,2091057194,720610090,117819019,702784256,352700043,717267712,-1960175965,3671494,-1557527133,914959074,-963958318,-1560277499,-963958284,-1560273915,1805855288,710583082,-1960162909,2295238,1600498851,79846750,-326413056,10546305,607554390,1619445358,-2037579521,-1202651296,-1924130443,1358913670,-2138695448,16736446,1974996597,-2037559271,-397344928,1499014143,-10451315,-1704057693,260115318,1840529027,-1205701632,-11531158,-1922189770,-397365178,1499014107,588572752,1183668569,922702000,233336356,607553996,-443851154,883016541,1713545984,1207975073,-1586646877,-1556060638,-1581027922,-1398603734,-1547685011,-1432130124,-1982712979,-1553084906,113667532,-956076510,-1553062906,-905525402,-399527571,-1365115061,1713546093,-1023409736,1345249720,1345252280,1342439608,1358950584,-1192367896,-1202704669,860892915,-11513664,-13702858,-399579338,-407310746,-71806930,922701870,922693349,179973859,1388327680,-296949680,-1006633032,-2081649835,1465254636,-1107001717,-1705572864,6147,57982987,-2097121559,1815614,113726069,14031961,-1202667469,-1202713749,1464864976,1358954424,1343276728,1342930360,1342180024,309328,-914954160,-2011904893,2122383174,192240127,193528808,-1961525312,-2146309136,1968111486,2106058760,-343929368,234929667,100728449,-776464523,-206024603,-1461170074,1465473314,193470696,-1962770496,1606847472,1575324510,1426064066,-1957237621]},{"sector":4,"length":512,"data":[-1070398346,-382539696,1840529025,58458368,-2097118487,1869460542,2028536693,-1237909760,1747433581,577103952,1048795481,1946185144,1023391777,-1204355248,1023195245,1747433552,562620496,-397387431,1499013506,561834064,1048795481,1946185146,-1172403406,142081901,-1946223128,1036422128,695535104,1840527103,1840914059,-745863285,722518659,71762882,666377808,468209768,-1207243909,860907559,1038635200,1979059146,-18427,-963968277,46292318,793878784,100917457,378220373,-489607341,-1039932719,794629771,-489487183,378257923,95498071,-1039932717,794760843,-489486671,378257923,129052513,-1039932717,795154059,-489486159,378257923,162606951,-1039932717,795022987,-489485647,378257923,196161371,-1039932717,794367627,-489485135,1438892547,1465314443,478152447,-1172537183,-487129068,1348350469,1495552744,125091851,478154495,-402597143,1183476894,1847763460,1840514759,116785152,1946316322,272531466,57933885,872219368,-1983738926,-1553088490,-1130140226,-12720019,-1955714909,-1590762218,251997923,13796096,1587152049,-1560280851,378236460,-408867095,984366,-1325346173,-312567292,782434304,786538862,862857891,1841603520,862831267,-837383726,1842127725,-861464,-395434954,266917199,607584086,-714872722,1847867135,-2131498520,4001598,1048775797,1962941350,112645,-1070398741,190608547,-402295616,116126253,-1553587551,113733038,73968,-2130630758,-267991281]},{"sector":5,"length":512,"data":[-2097151968,6059070,837288820,-2146500622,1566465820,1426064066,1048636555,1946172588,75399436,91490817,-348345160,-214007793,91488358,-345574472,1722005507,180829,-2081649835,1465256172,-1107001717,-947126273,1024066093,58064902,-1962810135,786682328,-899373057,-868234056,-881406921,-868234177,-105330062,-1095217136,-340242323,-488091544,2109737963,36890883,1358954424,-2085666328,7186494,1048774516,1946183935,-1105279891,-28930963,1476157065,1358916840,1348871352,1495259880,1847894873,-801920096,1354825440,-989966104,109902942,512323008,1048800702,1962962356,-1472298233,561315949,-1946972696,-1270971408,57999469,-2130588183,1963852030,29681923,-50075562,-1142296437,833537,-447813552,1761543879,922681344,922709440,-1936036418,-1995472624,1183447638,1959791608,-92864699,1467541584,-963907445,1946550333,25487619,451677825,582484096,666390545,1223184488,-950445793,18513670,16824320,439811920,666377755,1206407272,-334593672,-385843174,-440532654,285849855,1354773328,-372809752,-1397227198,-1024962500,-1072998114,-1397223564,616058940,15224934,-346466017,1023522829,1713682512,519170128,-1212655271,616058895,1354256486,1021857792,-1947169848,2109737926,16836867,1713651328,-1206225920,860907044,-1202696000,-397406886,-259296307,-1072970101,-538377347,-1405190144,410320956,1713651328,504460288,1348903864,1713682462,-806361008,695517195,1713651328,504460544]},{"sector":6,"length":512,"data":[1348903864,1017952286,-807933872,292864011,1017952286,616046160,-957853594,1975520207,1773463555,1348871352,1346153656,1495162600,83934809,-402619927,-259263773,1459649001,1358812392,1348871352,1495155432,1847894873,20825995,1024226314,343149062,1946814269,-1607800036,-523226197,-397360898,418118821,-801920096,1343030496,-335767320,866885643,84205776,-57939888,-1947082264,-1270971408,208928877,234946177,-397015436,-259261603,1839611520,-1206815744,-397344769,-1202651799,-397383423,1499012567,1583335051,-1034033781,-1957363710,1048598252,1946185126,-1472298212,947126893,1358954424,1358773480,1349059000,1495103976,1958742873,67552803,112722219,1273516042,-1947169795,-49722,113641844,-1962923260,-972297274,2819078,-402360577,1566467792,1442841282,-2097131842,6881086,113721204,14097497,-1202667469,-1202713749,-1202712629,-1202713731,-1202716667,-1202716662,-397410300,-997997604,-259287026,1497220747,-402426624,-24942462,-955878373,6881030,1590070016,-1472298045,74777197,48990384,-777911888,-1472298188,75366509,48990384,-593362512,903591988,-1445599152,-326412861,74877782,2130706051,37128452,-2147025092,478191900,-150989638,1580336610,533588048,1958742873,83934723,1962933891,16679174,-1962642162,-2126773706,1963262206,-6952924,1048637579,1946170848,1006543120,-150990406,-1948742686,-349579129,83933187,-348388701,-1398347577,79283851,-838092032,1946630958]},{"sector":7,"length":512,"data":[-498908410,778497015,550911,458758,453574664,1607351502,-1194446642,-397344769,-1494701138,-940536900,3932678,-7804666,1342767544,-1946252312,-8590864,1358954424,-2085909016,3932222,-169343115,-336557090,-340465659,113766539,117455874,-1191224855,-397410303,-1073000485,1223232637,1743279871,-370111556,1566506818,1426064066,1465314443,-1274784118,1596050690,46292318,-326413056,1586170859,71761668,-555206657,73305087,1962950528,46292461,-326413056,1444605059,108956503,-392682776,29282473,13166848,-472785269,126491019,1672611386,-1696005260,-773944576,-1978037277,1352139079,1495245544,1023427117,58064910,-1962894103,786682328,-822827009,-819802342,-813183141,-813183097,-813183097,-813183097,-820850809,-813183097,113758051,80904,113733099,146440,-1205967381,508585943,-472785269,1077936523,-944248752,1742159488,1175942400,1178322571,504331524,1348982712,-773944546,-399376413,-677328999,77830247,-953357508,20711942,-953881856,18950662,505211648,1346112696,-773944546,-399376413,213436273,602427452,101107655,1174405436,2097444411,-13571837,1065360779,-14584832,1732491317,451799120,1136154969,1625837671,-1577013041,1386374058,1732491363,-814749616,-1952820504,138314736,57999420,-1207910423,-397406501,1048806590,1962941350,-1405190130,125042748,1342247352,-1582093848,84229128,1407733770,-1757157126,1840529027,-385649408,1048641686,16805300]},{"sector":8,"length":512,"data":[-1947663492,-1270971648,58027885,-2097118743,7191102,512438132,2013228474,-26351608,-397399888,512491093,2013228474,1183651330,-1667608346,-1928401920,-397351354,129564239,1223184445,288930046,-29235120,1840527103,-431583978,10263120,1183649516,753422566,1023981822,-31070128,1349003192,-1325523224,115888174,1343074558,-1325530904,-85438454,112893,-397013781,-1070334717,-1755256752,1583333427,-1017256565,1913203432,41219,-1022801688,10546305,-402056472,57872083,-1979671831,-1979666802,-1979667282,-1979667818,-2147440458,1946158207,105351952,-153553328,138871516,-351705342,-20316651,-20250931,1342671822,-587802378,33703682,39322471,47186632,-1946942740,-2147440962,42174,1988961652,1381373442,1355123281,-1979034904,853594305,1374684132,-1390471650,985792170,536377034,-1977554087,-773573951,64550880,1380976327,1355123281,-1979046168,-20895038,-773573952,-17300512,1995324101,144435374,10536065,-2130703166,-402611988,552077415,-385649906,-1903558487,-1366687570,-1769340756,-1232469846,2139095208,276037636,1342588811,-587802378,34096898,367724903,-838940162,-822162690,-162527349,48035544,1728184903,-939370493,-335359998,-1232342014,2123169958,-1531019262,829685760,1364350742,-397359734,1464928671,118883870,-792622561,65286880,-28859144,1992964801,1499406328,1364350726,-397359734,569051519,851544720,-136261148,113640408,-1974382000,1760055493,717392393]}]],[[{"sector":1,"length":512,"data":[851508929,65065444,986054384,-392202514,-998176807,214040736,-1595113216,128313344,2013208946,-1501132277,189237248,10796672,-401771520,192023883,2123171606,911362,-387698088,-998176859,79823008,22514176,1334507058,736965123,105988554,41418583,-397264897,-1974007557,-1964756473,-315489713,-784218069,-1963457568,1191224966,1610408618,2013222662,1379401474,1107876584,-1010048423,-402181400,326241515,-2012854646,1183450183,1962884100,88573955,-402014232,79824701,118614016,1913441000,209250307,-1022939928,1913062120,172291,-1022943000,1913059048,821789465,113707125,458756,233311467,35556096,-1547465984,-18350080,2139144966,158663200,288816979,271050752,176547931,185761675,-1958841089,1730807879,717553159,-1057094073,-141826826,-268177405,396939,119459371,-523131661,394793,-1961732213,-2097146338,225718523,1913804601,306653443,-350986357,-327040018,2028470435,-385650170,1342570785,11648708,-1324365949,-1930439932,1539769280,-1803056850,-942108967,1030,136218880,101107456,-1006632960,-1996445250,-1946145730,-1979699706,-1577015418,-1945698261,-1962931706,-1962889338,-2097106498,91492327,50335789,3227079,113707379,262148,-1560231703,-2037776370,715260077,1183651328,115888130,38177538,-1962925405,614690118,-1534686720,-1545565696,1183449126,-1650029996,2663168,10126987,-1207956317,-1903558622,-1040318291,-503906123,1207972101,-1560274269]},{"sector":2,"length":512,"data":[104529926,158466062,263879,1676345348,3193744,856396008,1876928,-33546589,2138816,1200209971,273123602,1200162697,2662662,-855717634,-1996339319,1204160583,1204158468,1183516427,206014810,10389131,-972142711,-1342037945,1090048,-1342172766,-1383167488,-2097105664,1200104131,-1929846240,-390056998,-998177419,247595171,88467456,-1276637838,705661701,-20895003,-390005052,-389872295,645006639,-1979300214,394986598,74760202,-805123842,74769418,-201143042,990664585,1962934814,-389903611,719850515,311813,1912930024,71731718,-402289176,46269721,82700288,2013203058,71731984,1477461897,-1039858456,-655884286,-402230780,-706215900,83093512,1392509634,1212291,1602947956,821789460,-336006539,67553031,-117437696,1465303899,989868222,1946162206,343903026,-1995028597,-969206203,1049168245,2089353238,-1962546412,343706096,1324683,-1995154295,817829495,343902464,1318537,1595301257,1827193694,-1961922044,1200161862,35535630,-402426624,2129136500,180740,1912885992,545226780,-2146011903,1962935422,1354773000,-351736344,168683528,-2115501198,72869897,-402652478,426902571,167782049,-1978501916,-75496354,-2012843006,-352311778,640059396,-387698176,46269489,67495936,648021362,-387698176,1438843937,-974590837,545896451,2126829710,37349380,642974880,10585480,642974369,-1593424503,-1993977088,-23002555,1166616146,1392288004,184912166]},{"sector":3,"length":512,"data":[-402295616,1173029239,-1929378631,-61687242,-1379892052,1364592244,1582944511,1558770146,26273793,-402541848,-1960443388,1392288517,71666470,642973347,-1560132213,-1960422656,44238405,-2054543789,77725857,35448915,1560498408,1442841794,-2144979571,57933884,637826445,-1993997175,-1017249188,-853933896,1964653584,-1211397283,1961691648,-774010342,-1948003869,642942599,-1962654327,642943111,-1979300471,-788482087,-1948003869,642942599,-2020932215,-1993977208,11534917,-1571635038,-1012772163,639470930,67575,1569524341,133637636,175374337,509734,-1022966272,113704786,-1023388998,313790643,-75493171,-1205570544,512557060,-511618438,-654114562,1659379595,29620223,-972589824,5423110,113640939,-973057341,5422342,64273091,1912623336,178185,-402652485,113704761,-1023388992,-402410310,829554745,-385876039,551748139,-1964197198,1893826760,-1157545544,-109051900,-1206684592,-109051711,-1207405552,65732673,-1157627464,-85458943,-1022966018,-1329397678,-331158001,1722867850,16824814,-2031288606,-58659104,-117345178,2105747139,796131332,1803386918,638219444,16926199,-350194688,1173825032,1962934530,93005334,71665446,637896998,637683083,637945223,-1023261303,75334438,-1172474880,-148503628,67141,-726006923,-6821885,-1070396813,71665958,105220390,-400716349,1569521671,124932,133637827,242483204,1388709517,-1207872792,427032608,-148497685,1946161159]},{"sector":4,"length":512,"data":[12079891,-2129605265,-1202309125,1968898560,118040067,509040323,-561056205,-1929117506,-1866921859,-51785472,1595909619,106414942,1389706948,503679526,-650212089,571730,-1924157710,726849798,-1947741704,1012064645,1007776784,1343058992,1391527565,1476454120,279970421,-2010751225,-1023368827,119473694,100080048,812908572,106256208,-1223610184,-838880768,1599932176,1958936152,1354926619,-927342090,1992375040,22984970,58114363,-1996386119,1476435597,10192264,11077003,-1207471102,281898756,547959531,-1977650176,71061829,121373810,-1115679627,1965817996,-2129654782,8671869,537662069,1166675691,-142662575,1946173445,4712451,10126728,12255412,1803387056,-1223789388,1006810296,1007055872,-1274907646,-1599764479,-1734506240,-150949888,1946157573,-1585056247,41226240,-2054619216,1166737570,-401241240,-2054617159,-1195179876,-1064435648,6660134,263193256,128975477,106387139,1036318859,-964431733,3964932,1957036916,1583286264,-1162193213,871467779,-2136412965,326499296,-319107445,-511662013,-1962380038,-1471943474,-67444608,707052382,707013156,17236481,1296976215,16797249,1381040128,102651734,-1979812097,1506016862,-1979818357,520617550,1499094623,119428035,1526726888,-642258047,-1801482706,1539541977,-1957340989,509040364,-521601968,-661892865,58048523,-972100615,50340102,2098942,7819,-1664919304,198741072,-29592384,1962942478,473858870,125108224]},{"sector":5,"length":512,"data":[1982083,-30903296,1392517126,1448432209,-16376233,117447710,1566465823,-27567782,-956293106,7174,503760640,1476395008,1595890077,-1018077858,138811,1200293236,-402199796,1200162406,507233036,91488258,-351385717,107210758,-1022474359,-2134341039,141885689,234873832,971710464,-2130704456,-1275059138,-1341426429,691961869,41163008,-109049936,-1977715710,-2134049056,419440958,116855668,262178,116853620,2097186,12059509,-2117904122,1426125036,-437719925,39291646,-1023535318,2123171606,-1274574254,65065216,71797496,2828022,741786910,-1963982080,-1977678780,-896924313,-1410137931,-189348578,-1928915456,503710334,1475839751,-4652880,1336865535,734497625,-2013688895,-1073018889,-930407820,1917909379,5290243,-1527529077,41308220,-1036365648,-1031142794,172460063,518244491,-1040000778,117631185,2123227345,519570258,1988960022,-125400574,-492133376,-1927929860,-11513274,939459191,-402163713,1256718351,-998154754,113377520,-352210944,-2097106942,-1957361428,-31004436,-1979431288,1177161798,-2000617970,2139097158,141885728,-402108790,1508573285,-1978906998,1317670486,13363208,168187528,1378186688,-1274132854,-991899392,-956099970,1996443654,209125134,17071744,31982964,-401282300,267060289,-503962959,-1962921979,105810648,-1979704088,1317668422,2127047176,139364360,-351386112,-38016857,147096413,-1610609982,1183318049,-1979665150,1193937990,139954695]},{"sector":6,"length":512,"data":[-33138902,-1964837182,1462373974,50378246,-1948200510,-268234121,-787589494,310297826,2122381827,108265732,102692743,1190528799,175374594,33703670,-1510798220,417861355,-85810176,-391903509,-85852145,17071744,-142145932,119473694,75399363,1191343105,-1966913853,-1342130479,-327040256,-1957363552,-48043796,1006913418,-385649408,653656302,100859947,-259325908,773754398,38046208,520316042,105876048,1476451048,1334494346,13756424,-1979548019,50378263,-1963326470,11862607,507628075,3022478,520373386,369452938,-1918110969,1343619654,-16222209,2013202039,-24254455,773754398,-1979414016,1344209252,-402239606,-1973944181,139430596,-1979677976,260702791,705326986,717291201,48812229,-18283832,38178253,-906080234,108527441,-402163713,1183710795,-11528702,-973207433,-11416186,954730359,22514430,773754398,91523584,56048159,-964022665,-402239606,1334444079,2746376,369247885,105351760,-397258672,1183710731,-1974462974,1347422279,-33691566,-840187138,1576809704,10536065,41848259,-506396491,1737160963,92878341,-326412861,-1090778136,2000224304,-1962183402,379786311,340035840,2139818475,340232982,-2095823479,1966085247,373787403,-1996483421,166401604,-1961590901,1166612039,541574678,-69474304,-1957248163,-1962933730,-2097146826,192164094,35683456,1955267956,1005644566,-400853794,-823591858,239569154,512351883,1200291842,47573004,-401717365]},{"sector":7,"length":512,"data":[-1017249060,10677377,-387151019,1334508424,-1979665144,11929175,-1958622677,1200231031,38176775,973227658,1064765767,369378957,142081872,41353042,-1946343704,734145478,-11526462,-11401097,417858166,75402749,-100402685,371128199,1464928031,1499375091,-251453690,1191112963,-390468862,-2124547275,-1023368508,-387151019,1468726044,-1979664888,11863631,-1975332565,653657927,-1056767960,-125050671,788110,705253258,-1040316593,681574581,-788483072,309824480,294528,1204168564,-167050976,-1957343628,-2097143506,1364198605,1048627851,1459617830,1593932264,56449113,-337911048,541574703,1962281730,119408167,1442285343,556698406,147686144,-896839344,641630246,-397017088,1499332938,-268214952,520544738,-385957912,-1034028395,2139095042,175374880,35669958,-385948184,-2134638936,1946230911,-19339254,18892742,-1006725144,10546305,-387151019,548469336,-1190434934,118882384,1459781261,-1973441549,1468662607,-20305407,369145281,41418583,-397264897,-1023476737,126611938,990660489,1962934814,22669315,1576675560,10536065,-2146209085,1963008127,310346509,-955812608,184550406,1925445888,310346509,-955812608,184550406,-1983645440,-1996488162,-1996483554,-1996483042,-1996488674,1602819167,1280099094,1374456661,102651734,-485601653,2203691,1183384588,201756162,105286144,2631414,-2146941438,-523173676,1048639627,-989855706,1854605942,5302274,1583292167,1145331033]},{"sector":8,"length":512,"data":[1275071170,-326412980,509040209,240028422,564145123,-1995961344,2126774854,105286154,2631414,-2146941438,-523173676,1048637579,-1912602586,-1962931170,199754350,1595868928,1146968414,705092,-149916334,1946157509,46528313,-214535168,-1169167451,-973667366,829685761,181751,-319148428,-76363568,1942540524,-486824453,-147854351,1946159301,-973650431,24379396,-286735545,-353852161,-335879425,-1841131,-925831942,-789775502,-1527024696,-2889477,-1017450782,-1269673645,-855591165,1522699024,1405311833,62149201,281870519,378257803,451412002,1532582400,-1957538877,-1224559408,1511050496,-1957575845,-855526200,-138192624,1946157506,101137674,213390197,-150017269,1946157762,6765832,129500021,-1125596410,71732216,-1159180282,-120067852,-402652478,192149675,-1072965492,28837237,-1593185536,113704964,4,-1007109912,1945669352,198741003,-1207601728,65732609,-402651999,-389810015,1114830967,184829579,-1207732800,-661979088,1912614973,436615956,755921664,582549552,-137219328,1959922673,67553032,-352319744,545226773,-955747072,83887110,-1593316608,512294912,1458044928,180984,-386389272,561184227,294784,113707125,589828,1183454187,1979661316,88574467,108956496,-420980986,-131602184,-402651966,108263419,-369098821,1317667145,-1966473708,-838987154,-32483702,242649802,681692926,1942501888,1944861218,1926314526,1943026202,1928673814,1945385490]}]],[[{"sector":1,"length":512,"data":[209616910,974418944,973370570,-955484690,50332678,-17664,1359020265,2756234,817561781,583238400,2129792,-169734284,67553113,-1157627392,-555089921,75399168,1496019968,717392465,-1967063359,-18535706,-773523772,235834336,101591808,1942502144,113727757,262148,-369098821,-919404371,294528,243992692,100728838,1334378502,-1983892718,1183453255,71796748,-2012592502,1183450439,189237256,105875801,-2146936951,1946158207,-20840952,-20250939,-1995470386,1049297495,2139684884,340248342,1048772656,1966080022,371099912,1142851840,822051584,1569260404,2001172,337545472,1176406272,541574656,172475905,75399168,-2145881088,1946158207,92241929,-402426625,2139158892,57999115,-1946407448,206014727,-1979863832,1183452743,-146479098,-1961998455,-154408765,-402648382,695400095,1966144387,67553032,-352319744,545226780,-2146011902,1962935422,1342287880,-335860248,-62003192,-756546702,-157816581,-402652478,1064498795,1318539,1949367171,545226780,1393390850,7817,1128191,1543482600,2115526,-350855285,-64755489,-1560274271,2122317830,192151556,532107,-1803040978,-1593835303,113704964,4,-1024047896,417857538,-70129418,2013204338,71731984,-1070379002,-1645719472,-165156864,-402652478,-1259801093,-1977453829,-1040838577,-2147126260,65734857,-1978873472,-1957624722,1342572102,-16222465,1843923574,-168302592,-402650942,-2065107509,-15633669]},{"sector":2,"length":512,"data":[1183515766,-11532794,1996425334,5171210,-1024075544,1200226312,105265154,527863952,1948304118,105285646,1187483792,-1879048190,-1976898672,105285639,1191088272,-1970237436,1178075975,1989185540,281212436,1200228980,71731201,99324048,-1878767992,-327040112,-1957363540,-181475092,12097163,11845316,1963246326,146994693,-1185473419,-1070399489,-1957122318,1237855183,11046537,11175561,11306636,-1977216277,1206727181,11046537,11189897,11306636,1963508470,79885835,-897579403,192383500,-1024016334,-1342016508,146994689,34341492,-167763550,57934530,-385949056,1720251746,105285636,-2037772405,-1073086286,-922876044,1183368450,-1333360124,1958742528,46726663,105285825,973358730,58065735,973358728,-2013039675,1183450182,38222342,1183318902,1942043142,105285635,11044491,-1962785143,-1073020346,1542128501,38767248,839274026,-935640595,-930413962,-1228595631,118882474,-1979154803,-466483642,-133963567,1946469110,-1024023551,-1979485176,-253580602,11187849,-1927915233,-1974466490,-1056831930,-11482882,1996424822,-169482236,688279040,-1914174898,-157488130,192152002,-1979431170,105285639,-151094296,309658306,-1979300214,1200161894,35535628,-402426624,-286721249,-998154765,180486316,-200939520,1928969960,276299537,100943499,108461904,-402098433,317259400,443124,-326412861,512428779,-472820978,-1755932673,-11333983,189992462,-1346112,-11336170,-11335658]},{"sector":3,"length":512,"data":[-11335146,-957873034,-1017292518,0,-1892810752,786828294,-435282292,705072892,8437248,-1406737358,-2017096640,915117014,-964493276,112898,2899584,-1911459325,-1962924538,847229438,-475073856,2146533494,-1207767933,-1023213567,-31080189,737971199,-1956613384,-1899983641,-1898935080,-213298752,-1430244700,-225976946,-1014244985,-398208885,125239321,317210738,1022981888,1007186976,1006924813,854095113,199551936,1107784896,1975519914,-528071935,-470171598,743025685,68121634,1968978978,574390279,1236009589,-373033461,56171344,512634570,512353806,54722590,-1946907685,1928014828,-1981445146,-486531026,7768334,906151299,-524285268,871396602,4622784,203882286,604933094,1206407424,-125085439,611631115,-1912136162,855647774,-1527513866,116951839,2635519,-2097075736,-661978428,2269959,58048523,857400297,-17984,-1014808695,648999426,-193657544,1438844809,1048833163,1965052686,112645,1183520235,236882692,-1981558445,-6859129,861081094,1560341440,-326412861,2123061078,105220868,999790755,-955746873,9934854,-1961825536,512427125,2005505944,-1751604988,1594246281,1438866782,1465314443,-1962639733,86574662,-150784629,1074153099,2089354377,-1751736062,108382011,-1751763319,-24442645,-1996063229,-963968395,-352320507,1566465792,-326412861,71732054,-14298573,14844415,-397389312,1499005177,-24907637,855930367,-1592202304,1149867926,71731970]},{"sector":4,"length":512,"data":[-1996191424,-1583901130,67475350,1577118464,-1957313699,1183536876,634532612,-494796801,1347551232,1493220584,-2081387687,74842110,367771699,-1751501175,-1751763319,1074022027,-963967863,-352320507,-1017291264,1458342741,75402071,91553547,1995767683,-339725564,96963418,-131792885,-2080863233,9935422,-396949643,-346423396,-1741255870,197561239,-1959693120,-2083026172,-1036310334,1448544626,1509886184,-1960514727,1925659396,-857188850,83843582,67487371,-1961825536,909837940,-814377064,-14817193,1593895769,1438866782,1183575179,-2116777212,989921514,-1559792702,-1070399440,113708011,524334,-335544392,1438866688,1183575179,106334980,3147267,-1962880381,12681672,13796097,175493643,108252219,3147399,113708011,524334,-335544392,1438866688,1996483723,-6297596,1560341337,-326412861,-1727773045,-1293397934,-337277953,197352704,-150110775,-2083391533,-779943485,-1876038912,74695427,268485249,78768522,-184359470,-388765558,-980758525,-889188571,209570059,-772287497,-2097036413,-722796335,74695467,268495489,78772618,-617420846,-393555157,-805050157,254133642,-1974351104,-754667032,-1966079000,-740062523,-888972821,254139530,266568448,41275707,1456194363,-1064988010,-470351244,1958774161,65468164,-470313272,-882978557,1458342741,2123103319,-1962467836,-1178586409,-1359806465,-1946192499,-4651394,-139529473,-2013713455,29816823,-1543343104,-202780343,-1543408731]},{"sector":5,"length":512,"data":[15450763,-1017291169,1458342741,-1979418997,-956889506,158597121,1958951596,1958748697,-1019564783,-1071509132,-482736012,-467531660,-1070338187,-1924790549,15466052,1438866782,1465314443,-1946417378,-1070463874,-218103879,-138310738,15419600,-1017291169,1458342741,-1898410921,-1070334784,2123094155,855083782,-17984,-772296974,1988886155,-1968770300,1569390404,-339530753,1566465792,-326412861,119428950,108956668,-1070401653,-218103879,-1949173842,-1527577474,-352041333,1566465792,-326412861,119428950,-1962639733,1183450702,-52393464,116727,165872756,-372160086,24357875,1566465962,-326412861,-16353537,1996425334,-3545084,1183573387,1560341252,-326412861,119428950,990135947,108201542,112893,872154091,74877888,-1962508661,-1073018802,-251459980,1341719374,116727,300090484,-265598556,-372115413,91465203,-133959677,1583348900,-1957313699,142016492,-16484609,-1461189002,-1947890689,15402054,-1957313699,-852839188,73304865,1586171785,39291140,-1957313699,-852708116,73304865,1586171785,39291140,-1957313699,49054700,2123061078,185015812,-1340443393,-1188722176,-218300417,1238497198,1049299828,-16056286,1979612809,-339725557,-28933332,-25261310,-16040565,92991348,-378224630,-378150854,964745611,-1948093123,-1494023050,-646591609,-339244217,-1956749568,1438866917,901049483,-855357814,-1933341919,1560341442,-326412861,1183458740,1455758852,522308870,1397801821]},{"sector":6,"length":512,"data":[503730769,777344854,36445838,-997462901,-6840669,1996424310,276233984,620906123,-11534081,-1952998378,273058277,526278493,1532582407,-1957310632,71732204,244817059,1357643448,1342186680,-1946180888,1438866917,1465314443,-1962654069,1570217510,119496287,1146837338,1583337284,-1957313699,861361900,-1070378816,5552208,37152848,-1962490749,780862534,-981231714,-2132440294,1526797390,1600019033,-821616803,-1017291169,233556275,-352321095,178440,62456811,1465275648,-108270453,-1962260853,1586170966,273582862,141936907,1769263627,1702157067,116727,-771023755,-621344135,-628893449,214926080,175753483,-604513801,-2097096317,-376765193,1459626169,-164364493,-757997359,-674113839,192085307,-214236041,-215284366,-499057381,-1007199257,108265474,-678705525,-1007162415,125042692,-654845193,1593891459,147479902,-135006464,1946157767,868387586,-2131956782,275976441,-522987381,-638131501,-753876608,-875361301,-1961825920,-742378544,-108999710,-1961856240,-739716134,-2133199126,-472706879,-2134129909,-1031073559,-388771277,-326412853,119428950,-812924276,-66814325,-1425783155,-1666461556,-930305192,38177707,4623275,-1413379157,-1951677813,-661869626,868388523,1593895872,1438866782,1465314443,-2096734581,-746388997,74877696,344894972,-1381113717,-1387221680,-393499312,-1376220243,-1901215602,-1947170020,1583337411,-1957313699,-1940433172,-54489384,-1962508661,138841079,501467275]},{"sector":7,"length":512,"data":[-1070409589,-651448590,-24392821,-217811317,-12285274,855596426,737970916,1593895875,1438866782,1465314443,-352026997,108432150,92933099,74777658,283887499,3964998,-2142769035,-445317059,15450163,-1017291169,-2081649835,1979647102,-18427,1183457771,-1962888188,294123224,208929875,-1274788214,2098432,132844011,-1274788214,1560341248,-326412861,-16482685,-4717195,-1977488385,11797574,-2013865845,1946702609,71731724,-536543052,-351671297,71731719,15401140,-1957313699,-1973987604,1183450214,106334984,15409613,-1017291169,-13371853,989858491,-150572077,-336427021,2144539,-757997359,-674113839,74841989,108196667,-545000661,-387825664,-970523453,-315424763,-636757877,-396947596,-2090860606,-1993985850,-347781323,1978469355,96937479,1162281008,-81011317,638184267,-2044328566,1263249921,197391743,638548434,1194132934,-789064969,-2097151739,-1309998894,1458342741,1187257943,-993883126,-1595406722,1583292415,576093,1458342741,-768401833,-1962508604,-1998058938,1583292415,445021,1458342741,2126782039,172395270,-5511015,1566465823,1426065098,1465314443,2126838814,175016710,-1325398854,-1949969660,266568669,39356298,-277525846,531234992,-899850657,-1957363706,1381061612,102651734,-1054535219,81152,1183532661,1958742532,989626431,431229300,413850,604302080,1010904287,858355457,650546934,84158090,477421626,-1202696186,-661774199,7134362]},{"sector":8,"length":512,"data":[1488980736,637957127,-351992670,32241923,1595869176,1532582494,180829,-1706819400,1616,1971372790,1071808526,-1237204352,-2115481030,-134091777,105945795,745668608,-1957538992,1140898008,413850,-2134706688,-1023994252,276037643,1352285876,1509949446,95967323,82573568,-128427174,-1707166525,1616,-326412861,505304918,-15704379,-13440969,-745862286,-398655304,1931476907,112645,-661969429,504254091,-1274652987,170559,1931415417,-4069368,-352320840,176080138,-1259862647,532689919,-899850657,-1957363698,509040364,207537438,-437766145,-1962118402,-1261882413,-10622916,-1207602401,971702273,1317787787,106349834,43663540,1913616640,1959275284,225790232,-1706819400,1616,1971372790,-10360824,-352320840,-10885108,62391667,855829248,1583292352,707165,1458342741,1589976663,-398983418,192085636,1102369675,413850,-1207602432,48955393,1595916339,80371038,-326413056,-987867306,2126775894,905913866,1929271272,-1705593847,1616,28837235,855829248,1583292352,576093,1458342741,1589976663,-398983418,208862768,12112779,105945667,74645504,49004595,1595916683,80371038,-326413056,-1273079978,105945647,-1014300672,106874142,1200359305,1595875074,80371038,-326413056,505304918,-1274652987,105945626,522125312,-899850657,-1957363708,509040364,-2147068278,57827834,-1239356800,1106935866,481567858,1089110098,413850,-12822016]}]],[[{"sector":1,"length":512,"data":[-397273996,242417072,-1270748544,105945614,-1070399488,-239598613,1583292415,182877,-1273079978,105945625,1090781184,-883007713,-1962467753,-1070400264,-218103879,-947171410,1547486047,792461940,-326412861,-987867306,-397408698,1213923290,-96733045,92933494,1979703272,-8552442,1191277882,96865674,-2454784,-46208969,1912603064,-1707363315,1616,-1070398350,-654900501,1595870600,80371038,-326413056,-987867306,126486110,427081738,1979685864,553820165,1631324907,2050754674,539755639,-347928696,1583292385,313949,1458342741,2126782039,96871942,172395008,158711818,1352276404,67108870,-1261401535,-840413126,112892,915232370,372923778,309616066,1573000840,1089110098,1352288180,1509949446,-947701134,-1392748797,1958742698,1610148610,-2013007997,21350165,1461607482,-83696230,-389575922,-125042942,-385923702,12123916,-1609862144,11804930,48956809,1595922679,113925470,-326413056,-987867306,1720322654,1977879048,-398983414,28900436,-1961659904,105810899,-1706113920,1616,-1070398350,-654900501,1566465823,1426065610,1465314443,-1547685090,1789067880,106874114,501757951,-1958710532,1023457491,1929156328,-1193768138,1352287232,-167772154,91521218,-335759640,545896482,45668494,868823874,105945810,124911616,-1996330845,-402494954,28900503,855829248,1583292352,313949,1430580355,1465314443,1247724830,-1041745921,-1955237125,989626375,431229812]},{"sector":2,"length":512,"data":[413850,-1270807552,-1994451398,1187381830,1988975620,-2133816827,1202995434,413850,-985042432,-1031058858,1224607208,1065408651,-1976273862,-32839673,-633664907,2139105652,594819839,126498815,1979578344,509443,1352285108,-1895825402,370242055,39226655,1352285108,-1207959546,48955393,1595916339,-998023842,313924,1458342741,1589976663,-398983416,28900144,-1960414720,105286355,208929596,-1595392588,1025012731,292880386,425600,-919401612,1352285364,1929379846,534312706,-899850657,-1957363706,509040364,-402235765,57867094,536584936,-899850657,-1957363710,509040364,-401842549,-71763138,-1961790721,1455752782,-1707101176,259588098,-654900621,1566465823,1426065610,1465314443,207522590,-1191504408,292749307,-989442421,1085540438,2030043802,-150834417,1583292376,576093,1458342741,1586175575,-85137396,1451954290,172919560,-1274657142,105945666,1595867136,147479902,-326413056,-1910614186,-1090508282,1992622209,-53923066,1958742700,-348018172,-1441943305,-2146531290,-1105263104,1556021377,687978496,1824465357,687978496,1595875789,80371038,705072640,782312960,1412211456,3186982,-1017893213,2754190,643050657,-1593823581,-1557769170,1438842928,1465314443,508826811,-1946449145,-67098090,-1426053471,-1426030408,-1196703093,-1951727524,1824041922,-1031034112,775356331,808910592,707168512,1378257748,106349885,-850722376,545896993,-1896162674,707169234,1352465236]},{"sector":3,"length":512,"data":[567095476,171820166,-1911390974,-1593824762,-1557790674,815857710,815998464,-1885513728,-1895813114,1912614406,-10622968,-352321352,-21458414,49971455,-55572108,1946745472,1610264578,80371038,-326413056,1187272534,1411818250,1411909260,-1559869756,109859874,646534180,646665258,1451965778,242649872,567104948,-1961867634,-1557787066,646643714,82334762,1566466047,1426066634,1370773334,132653517,707168767,378468948,646665252,-990161886,106178054,-1898213808,168216515,-1946060800,-889189362,-1910470216,-795936040,1412048523,-850545413,1566465825,1465275851,567103924,189537929,76824260,-1178586116,-1410138105,-1414806645,-1420548447,-1420547935,-1582606180,-1582607326,-1901374428,113714883,31916042,202279974,463098624,-1962934258,-1275057634,-954086064,40740870,189571328,1593839621,-1194631842,-661774199,-1949266182,-79867354,567102900,270441040,-1070395519,-1710535517,3552,-1957210539,185289758,-399149861,646577734,-1014082518,168216358,637677824,790156,567103668,-850657096,545896481,-1896163186,707169232,513473364,856654096,189572032,1839728327,1583284227,-58668195,-2147126209,158679292,1037601872,1935187968,105945606,1439367168,503732054,-1662219438,545897212,512678542,378208298,-360644606,-628224000,855670468,-2131678218,91504636,-352310808,-372158199,-207355533,-768386651,-1700933333,1616,2126838940,737555200,583921,119495325,-883073441]},{"sector":4,"length":512,"data":[-372158128,-1977218701,1149805573,638182399,-1985673845,-136118716,1388533849,-1202577914,-1706033149,251331784,190449660,-1020363584,-1705900462,6147,190449660,-955616064,6922758,8435712,503730883,1354773330,-83572582,1510472718,24952843,1030595,1962933821,899347,1962933309,9615627,1962933053,964867,1256833419,-2131001074,-1274711040,-64893634,-1705900349,6274,-2117924868,1962967291,-73791991,-67108841,12108551,-64893609,-2117877365,1962967291,1772266244,-1949660221,1107343568,-1006886451,-75415069,779419776,454565515,1772232235,-885313162,-880082314,102651734,-1030817653,-982932831,52103734,-205419536,1595869092,-1576664738,-1910586519,-1261401126,-64893633,855798559,1460061120,12446618,-1022886912,721426408,1030333446,225574917,1772357121,94000902,-67108675,-628309241,-1912586056,7119320,1455676046,-1380385705,223733761,856388584,1839637184,-1553094493,-828150324,1842652013,-1553082717,-56398352,1845404525,-1553071965,144928262,1846190702,-1553068381,648244752,1848156526,-1200770397,-492595970,1843700589,1843398343,113734592,-2084540846,1843791559,1709731776,1077837824,1434255470,1847723766,-1337035775,570881537,41222766,-1499331920,-1475950739,-352321171,-1270971589,343175021,1843543691,-1795227775,1049168500,512454074,495545942,-2086371352,7210558,-692451724,-1541347218,1846034051,-1173982208,333999910,177334436,1594668776,82365278]},{"sector":5,"length":512,"data":[-1547685109,1084386870,1849860718,-1553049437,1554214490,1851695982,-1553047389,1688432226,1840423278,-1586616157,1419996754,1007076974,113641070,-1341690306,605457156,638976878,-1568413586,1847858827,-392098328,922722672,-492737052,1843700589,-392464920,116824320,1965059618,977174540,91506542,-352316696,7923715,-1553092959,110063046,1474915812,1074185889,1035009902,1972926184,-1781798872,-402599704,229677256,1972922088,-402542575,313563289,1956141800,-401690380,347117709,-342325016,1024704267,-1394079970,10741909,-402589720,-236446813,50915330,-393217048,2045254598,81127427,-1469177184,-1475578879,-402295806,65767140,-1014633496,1849689798,-397955071,1659410501,6809749,-1332191256,-1741166572,854078128,11462808,-400860440,1721827855,1848943470,1849689798,-399527934,-1779918823,41609216,-2145698072,510540350,-2048391819,-1341789438,-1744836569,-402483736,1407750024,44886043,-1610415128,52719138,58000188,864366056,1848288192,-1553060701,-1195151826,-1226309568,2144521,-1410088909,171870502,1049175552,1085800486,-1806112768,1852194500,138316070,571392,647260136,1493321670,1848655497,866893964,-1414812736,644732577,-1946155869,-1200761338,1857748996,158591086,-1409286216,243385259,-2147455448,1852311182,1848116983,108267520,672039718,-1960443392,637536318,-1224516214,1099638272,1848812298,1849048707,-2146274048,40779838,465505140,-402186691,1558746223,-397824000]},{"sector":6,"length":512,"data":[1973196543,-1806440432,-402632984,313562960,1956048616,6678768,1852311182,-402411544,1973223556,-401297403,110008081,-1960415640,637536318,-1224516214,1848811776,172067110,1849048707,638219520,638089611,-1224516214,1099638272,1849205508,571587,647206888,1493321670,1848653451,73173286,1848655497,1848784523,108366118,1848778377,1745260227,77669998,1842782976,-1912001048,-1586599930,-1557762604,109838340,244018644,378236358,719875528,244040448,378236360,518548934,1745260032,77669998,1842651904,-1911999000,-1586599930,-1557762602,109838340,868445654,1842782683,-1593817624,1072197076,-1878618624,-335596690,221849103,-1993997451,1569334805,58297602,1854815803,-1899762827,1049306816,-1977221112,958792541,74777673,72452390,142183206,-361365749,303398,-613040117,3008707,1712243998,915089006,-836042742,-768349743,63099309,200925904,1241609682,540299,-1224516214,106006784,2877471,-919381309,1852311182,138316582,1569334784,-1929332989,-14285703,-953788619,1090519045,75336486,-445251829,1524825937,-1893310631,-335355,-1878618398,868234094,-335596581,92874250,39684646,990083469,1970179646,110019568,-1960415640,637536830,67437963,124512256,641632550,-1070349568,-395449181,109980835,-1557762448,1990262786,10692206,544270592,1849310848,-1962052335,997057086,1970136126,-81860343,-385851720,179833053,148367616,627976353,3998464,504984835]},{"sector":7,"length":512,"data":[1852317326,669323,2506379,-1048376181,-217637372,334176164,1852311182,2531622,644769443,637536929,-1912592733,644769798,671371,-787641562,882983401,-1958262930,529213151,-109848517,-501380826,1721877488,1845887854,53047918,1919841798,2114323235,52261486,1919845894,-1912208617,51475054,1919849990,-1643773173,1023767150,108199920,-385844296,-51902395,1715389694,1049175662,-987889652,862875150,-1644435210,1049175583,-987889650,862877198,-1645483786,1049175583,-987889648,862879246,-1646532362,1049175583,-987889646,862881294,-1647580938,1049175583,-987889644,862883342,-1648629514,1049175583,-987889642,862885390,-1649678090,1049175583,-987889640,862887438,-1650726666,1715374367,9693294,-1374763746,8448110,1857069855,-1240546018,7661678,1857594143,-1106328290,6875246,1858118431,-972110562,6088814,1858642719,1841694348,1852311182,444198,642798592,132807,1721841237,446899822,1856938240,1876774,644789921,-1593827677,-1557762370,-962527200,581117550,1851302144,2401062,91139745,78708751,-1029445421,1851302253,1857422851,-1016216413,-13371853,-1510741551,-1952185997,-2082867249,-1070395423,-1064523021,-271383375,-946931709,1745260227,1857069422,3318566,644790433,-1593822045,-1557762368,-928972746,950216302,-1960393984,637536318,-1224516214,650284032,637817225,185104779,104232191,63406935,637546472,540299,56461862,-1960443721,-1031010751]},{"sector":8,"length":512,"data":[-1977219233,11993949,105483046,108382475,104958246,-1053047317,-947666572,-1957313789,-353598996,-1233744640,-1583606040,79392214,-1233744640,1946253800,1842651427,-1929378629,1810413174,639661313,540299,56461862,-2094661449,-1207957895,57933892,-1929296151,119453310,-1593420055,112946602,-1233744640,1963015656,1842651431,303910,1842611852,-1191228440,-680198074,644732577,263815,-1938959197,862836230,16443903,-1917421939,-385915202,-1070359604,116838539,1946447394,67221530,-10054003,-1986251288,-1769081274,-991363226,67063,-1996434813,1451883590,1975651326,1723239758,381586943,-1685985025,-1920826440,-385935722,-1769104378,-1729560810,1086465015,-1232267915,-1097990298,1625882390,75741339,-15296883,-1919162904,-385935690,1988952256,19720374,1962849256,4634714,-1912652567,-1912641866,-385935682,-2085053645,378965378,-1682380545,1847723766,-1925155832,-385935722,17168195,13796096,-1980217719,1177287254,-27911172,-1232263822,1911095062,-1233744640,-1962877464,1452013638,15919354,1508379253,-402295298,334168422,-1962854168,-1769081274,-1511456922,-1233744639,-1929333272,-385935690,109969790,-1993970218,855650366,782444224,-499217664,-144381843,-1017256565,477413387,-1960394610,-2097149890,210371527,-1958613710,-1951992874,637957362,-521468021,-1957313720,1156350956,-1946257783,-162469674,-1912846711,-628310970,-1962917703,-806814626,4210166,2122401141,1968198844,-1099005634]}]],[[{"sector":1,"length":512,"data":[930428501,-388610421,-1014103333,-1946140488,-699495486,1586219051,-156964612,867989133,4241919,1586210035,-162404100,644732065,-1946155869,-1955736570,-1195155995,1451950152,75753982,138316582,63406848,-315487094,-1494002111,-1023314594,-1962916424,-385409282,-1957362597,1424786412,-1979955575,-1960378794,637539902,-1224254070,142183680,406731558,103838720,130515799,-391350643,123705820,-1339717082,-1403613952,-1919265304,-387404714,67061,989909635,-948765098,1178273143,-1950320900,-1950130715,-1955739634,-395459050,110033421,-1591317048,-727515132,446768749,984320,-388823887,-1056718452,-1016215389,520082664,-972648954,-164421779,244055859,-1561853926,-1591337063,251985946,-754667264,63016168,1841734593,644732577,-1946155869,-1016211962,1843412619,-2089746559,-396948873,1049205055,-1017156128,-385871176,703071133,1848025856,1847858825,1847725696,-155260893,-1912591384,644732422,83892897,78708751,-1047729965,-962346749,780387181,-1190367800,582877364,-1895877778,-210909178,-1262894172,-1074384128,119434786,1841831566,520529139,1841825411,1465303820,204323068,-402454808,-1070399196,-1553095006,-1432130136,1842783085,-1553067869,1048604216,1962949904,16824336,-1996418840,-1586623458,-1365021242,605457261,-194189202,-397158261,-2141457207,4001854,480448373,504793454,-972125330,537823597,470170478,994866542,1970150934,1847632198,-395458909,-2065169860,1048651508,1347682304]},{"sector":2,"length":512,"data":[-2128203403,1426063934,-1943505610,3926211,644721313,-1946155357,-1905415674,-971097149,-2133428883,4001854,512296053,1491627438,-1207047424,378208328,-1964413404,-1709512702,1024460486,40495104,650862175,-402646367,-1993998291,637547038,-402645855,-1993998303,637547550,-402645343,-1993998315,637548062,-402644831,-1993998327,637548574,83894945,78708751,-670832429,1839899075,-1107294533,468204827,47357,-1557785227,-1960443900,637536318,-1224516214,1099703808,-1547662332,950234582,-1365130386,1841734509,-1553092447,96693704,78708751,512485587,-670863930,1841831483,28837494,32499968,1841700489,-522987477,984515,-388823887,1841831563,507238443,108228038,-385875528,512295373,-523014712,1025687235,510551743,-1413467385,-1418869087,-1515470797,1859583873,-1144787083,65760870,-999371077,1925645119,990349576,125240391,105352131,1023512809,-176685072,1465274961,33601542,326567739,4055249,1005941280,84440839,-143450112,738193592,78709831,378267859,371944904,-1036292666,-1031074442,1191436499,1913076484,29526837,-1955740154,31642576,-745864105,-2089888069,-633665301,-987883916,64982031,868716280,-385928202,18847481,-471137721,1516134151,28885849,18082048,-1553045343,-692359738,-938046610,149652333,251987851,-1039104,-1325119607,736678660,264576720,-164380018,-1159135437,1468604310,1727758594,-1982433938,-1016215530,-1318137183,65590020,-1553018874]},{"sector":3,"length":512,"data":[1723559368,-971601042,264576621,-164380018,-2098659533,1468604310,84380418,78708751,-805050157,-2130132093,1970198267,-971601444,110019437,-928944698,-971601043,1958882157,268451113,-4717710,-754667249,868781024,-397323328,89191018,78708751,100788435,1498967494,1958820699,28885965,-1872958720,1847867019,1349441215,1486218984,-395389254,-692414866,-241964946,-1016199517,512219955,-387355130,1024566257,-1264336845,1840685933,-1553090397,-1990693446,-1989291994,-9579986,285657056,-1023410115,510621375,1870052871,-397355381,-1990683228,-1955743722,-482537202,-802780385,-768701587,-1554968979,-930386508,-482232642,-1073042425,-102565003,1840658057,-61385013,1839611520,-1207339776,-105185281,19393023,-2147354904,40740414,512435060,2062052782,1864808449,1872384030,185553920,-385649216,-397410115,-1202060959,-85327873,671545088,1946189934,268879365,512426301,-1014796758,-754667249,69075947,203293550,281248622,728608929,990278339,1936600070,-18423,-369099590,104530113,58093102,57552545,384324568,44113409,201720686,1049966,-13385586,-1582579661,-661754408,855639201,504269814,874417664,195359488,535524800,204930907,109990766,-1591317032,100859946,268791308,-1960423424,637537342,637683083,52837771,637537854,-1588591357,100888068,268791308,922701824,161115690,-1710271487,257163661,57544867,-1553071610,516189716,-953782766,247792711,105367334]},{"sector":4,"length":512,"data":[-694091776,1958742893,650153491,637540513,1705531,-1591341963,-370475004,-338654392,110006282,-13406762,1594075112,-466433186,-395463517,516161621,-1960415726,-771026345,1169425524,516188109,-1960415726,-1960432569,-1096602025,-1072264851,1958873965,1037155865,1958742700,-1274660339,-1408797587,-76169206,915009259,1456172470,-1070334889,-1553095006,279145896,-66983826,-1949606305,-1586647010,-668242516,1253359758,-1006886451,1458342741,5367895,-1962522997,-1073018794,-397934220,1583284903,313949,-881979743,-1959338869,-472841121,-1896052853,58048523,-1942122824,183002,1458342741,1586232407,15919114,637959876,1946172800,173968134,1593884904,113925470,238977792,24379502,-1547684925,113733134,1958778110,-345123167,650153564,1457803,-617365453,21334310,123570726,638089613,1588795,-1960382859,-352317890,1032005165,639923455,637957515,1586691,-1960437390,52822620,637539870,98179,1465256309,1501190,-2090967289,992348359,1962938430,77670092,1975520000,-1957313632,1357677548,1846413055,644746913,637618057,11544458,125799760,-391088499,-1923575076,1541976150,-1336504941,1167741522,-1962934113,-1922167266,119451774,-1962933016,868441573,-29979712,-1359052396,1443919758,1586666216,-1073042346,915012469,-782723842,-58226205,-472792178,-1081606349,-16019716,-141874060,1975519916,734432251,-1948808249,731184654,-217637170,-29455964,-1895908460,1846414987]},{"sector":5,"length":512,"data":[41359163,1128466217,1438906082,1465314443,-1961998709,-1360523178,52261376,-999419882,-1993995650,1435051525,108971010,-1207072474,1583349759,838237,-152321997,1458342741,172395351,-1005824373,-1993996674,1435051525,269888258,16902254,-661975182,-1081875503,1962970876,-1950338300,1566466000,-1962932022,1602959068,270412548,1842782574,309641227,992395406,1946167838,77669894,-1192367360,46858239,920423168,855918478,1048651456,1070399488,-1064558988,1846681284,240093990,-1047653661,268843814,638022656,1314443,-1064505621,-1962933558,-345123298,868453924,1049306843,-1960443882,637540366,1946240315,1569334806,142183687,-277481157,69110566,1977289472,-1950090792,103491271,-1960443882,637537854,1056395,-12745946,-1960435852,52823669,1912608822,1144727060,-1961986814,1277896394,637956614,1913146427,147292937,-730465477,-1960393735,1543710237,180781828,-991426589,-489159936,12445945,-102512501,-1960393845,-134206954,-702641213,-1910707347,372975299,242548778,772160294,639005184,2885179,-1960439950,184550430,870348251,-103773248,1049306819,-2094661618,108330813,38087462,-947714702,653257480,637682947,637957515,1586691,723965298,-814611388,1418405462,180781830,1290324107,-936689152,1581971571,39619366,371065638,1200301568,52871937,637537342,52829579,1912606238,1065559587,639464703,637951883,1580547,-1960439182,52822647,637539894,637617291]},{"sector":6,"length":512,"data":[-1022994549,-796147661,179054275,-1744668480,-1971379005,-1012128032,1458342741,570869335,113721454,8416734,1849427654,1040631302,113706862,1874882022,1843529415,-1070361344,-1553055070,-257724902,1275476845,-401509365,208797728,104631078,9300055,116066143,1842742926,109903667,1049194088,1583312384,1053084509,-1960442732,-1960439227,988288085,269888256,-19797906,105918578,637897510,-1006353405,637834302,638731579,638076299,639131019,1964656014,642468615,-1014298743,-1938942301,124655622,-993789864,644747806,618860427,1846545923,-784612978,992349812,1946161174,244000273,-420806642,141934603,172326,-1031011605,-326412861,637856899,50342561,-1989275642,379715142,-62486162,-1946401141,-1318184386,-1981295869,-1936654667,-1986985851,-1986985323,-7273339,-2123490810,-2140267970,641627136,-16040821,-1977206924,11993949,71928358,-1896063349,644749318,1183385483,1200301820,-27882750,1946272246,1468737034,-10229756,1224627849,1846548011,1946023656,1575324571,-1957311549,-61384980,-401230664,2126838047,16967696,-392883009,401091316,20178945,-401842492,-1070398615,189546115,-2145160192,1962935933,155579933,-1005095552,1065362973,-166759929,76877318,1048774773,1962972432,1589921793,126428680,283885619,1840658059,-401834300,1453428373,1941908846,1610144488,248143198,-326413056,1444211843,163118167,-123082730,-401965372,2123169932,712960236,-1006583576,-152566178]},{"sector":7,"length":512,"data":[1676404738,-392883010,1290297222,1049094205,921237383,-339725567,-1237939440,108971117,-1584512792,-1087541674,-125441933,-443851169,576093,-2081649835,1465259244,375372028,-386379032,2126838447,3336198,-387154291,1726491172,639484928,1963474816,1670375442,-1962261109,371919957,-320311792,855960572,-388985920,1583347771,-899816053,-1061289980,3574131,1446414741,-1915885458,1842757251,-385649664,-1967618872,-131077888,-1794242874,268879616,-956301163,194318854,977174528,108335726,-402648344,-2134670172,7223870,-1195179659,48824454,3574776,7399573,809239690,960239986,837293431,-145263984,-1554812198,1474860304,168069632,-398297920,1421577540,637245,611583802,-119389373,846546492,3729478,1922040808,1926952745,146725,305995890,-1558481152,149656850,134301578,1184173574,-1979705880,1975519748,3574206,914998165,-2017956266,-141825792,1958742700,1981824004,-993833225,126494237,1148390460,1081346108,1014238012,192219708,-1928903286,1843923548,1009642385,639071497,-1962784885,260704860,994176306,-1960675640,126372040,-957867029,173837161,-315438966,-466434934,166451203,-1960436284,1552745039,-1957210614,176014579,1583326451,1847239107,-326412853,-956541098,1080959494,1843791559,113668032,-956263154,194318854,108956416,-405601359,-1862875263,510902459,3401735,-1938571080,1566466010,1426064074,1465314443,-1324974453,-2115513597,-1953433913,499385429]},{"sector":8,"length":512,"data":[39815974,371065638,1200301568,1566465793,1426064074,-326898549,417118230,-1962860312,1183385157,641582334,-16040565,-1960440203,-1929377730,468190045,11593989,56461862,-165281609,1947206721,1502291475,1602954759,63144722,-1341850136,99477550,-402432627,-1977219854,11993949,-402359923,1174473982,1300965118,-1334451437,97380392,1360381827,-1977219497,-1960442811,-1960443299,126756413,-1930789239,-397349818,693636432,1586232910,403083006,1963239534,1959922436,532948483,-1981120883,1166805597,639484940,1946238848,105235984,1200236032,121997313,-352285464,1036761862,117734376,1950964063,-399724534,-947714713,-1332155643,90040361,-1795014972,-1951743950,1438866917,-326898549,599283476,3926041,2123233163,-1190715668,-1510801398,-2131984755,1962935933,235337239,91489429,-352295192,269388558,-402267243,65732822,-1006622488,848626238,-1956664640,-1547477531,113743112,16684294,-1795023223,-1794898292,170297688,204376469,-991887467,529147421,-472776910,1504182062,-1206136039,689580313,-652551910,790353690,1377557019,1612472348,-383984356,119339804,269388573,1976109973,639484934,-1006481525,116787805,1948357902,63039753,-400510909,1364395167,-167278042,1117064710,-466483084,72345753,-919403029,1493460456,-1008868773,-1960436284,-1960441737,-1910109601,1284187655,1277896200,499400964,74943270,106924838,-1995993562,38112309,21269030,-1341700728,72214568,-1342175768]}]],[[{"sector":1,"length":512,"data":[71690537,209059665,-16091649,1979647605,-399114494,93323077,-1895676529,1167001157,205885194,283330905,484977840,639484932,16926603,-857011643,-399986493,-919403509,637941188,1090942207,54296614,-1960439435,-620033444,-1960441484,-1910110092,-1947997433,1435175493,1591423756,1962281735,2088773132,91574786,-352319000,-1326652688,63564073,189813585,-1341229861,235337260,41160853,-1259848784,235337219,192155797,-402432883,984613554,1476633320,56396326,1888288951,1448235012,1141057030,172329217,638342537,637885579,638022795,495518862,637683084,-2013182070,1170605893,2129133574,1516111870,643390296,1124299915,-399986493,1573127003,1200301578,1032829698,1960292397,1033288474,-1156287416,1950891420,1034140430,-1157073848,1038630287,-400299262,749732408,-1341969688,52815911,638213572,170936202,-402230080,-347929833,-400051982,699400975,-402453783,1538285229,-1006435608,2005607965,1602954756,126756358,-1995809397,38112309,33965510,34031046,804295,868233984,-2080262702,-402295761,116064273,-2084188096,-1073086253,1571876213,184730345,1342665938,-1192743760,1166628866,3794954,-2084188096,-1073086253,797191540,-259315340,-2084188096,-1073086253,797181044,1213264501,990528905,1949085894,-399593465,783286915,-402489624,1113063427,1364414659,108396370,-1879211800,1499072069,-960276389,-402520507,48779294,235337310,1500842133,185222539,1265896517,-398611269]},{"sector":2,"length":512,"data":[1166737744,1279165196,527695883,76822212,641577403,1947485243,1035385625,239352614,-1145368460,1144727101,856126490,31189202,501744619,-399724543,1166737935,-388877558,699400649,-1157496087,99171752,205884161,-857159373,-398807039,1166737903,-372690166,-1964506689,173902685,-315486326,15984963,-1587708696,37590290,1023767040,58064914,-1929376840,-1229059491,-1954420625,-770979701,766510452,855749352,-33979438,238749308,75404562,1245825671,343918859,-1729613648,-399593471,316866963,-1930940240,-152354559,-503308312,-399593221,367526271,3964928,-770967435,-1329397387,23980101,-375799157,179044580,1308849600,1558786224,1560274945,-1962261109,-957805483,1559488512,-2143436613,1946159741,1036434179,-393197333,1569545441,112906,-393196053,1166761173,206932746,-1960436284,-1960440713,-1910108577,1976699655,1144727070,-1961330936,415663048,11996131,56396326,-502501235,56397303,-342882581,119443573,839879206,-1977203731,15329287,516159458,860611335,126494418,-1794242826,1008760065,186413856,-402426670,1364394039,598757458,1476444904,-392567758,1499070513,186116955,-402426414,-1073086437,548405877,1006675688,-402426585,-498925409,1976699836,15254276,665866240,1476431592,-154938633,1083510278,-661959563,259904011,-755510281,-2097036413,766509266,-1107267864,163134822,39074560,158795378,91429947,-503003517,800080368,472629502,1929532443,320603127]},{"sector":3,"length":512,"data":[-964492716,4319236,-154933022,43322886,-1336888203,3270692,506200,125074,-389773678,-997851134,-790048688,-790048536,256232,-485546920,1975519752,868436226,1009779913,67269178,-1000929785,-1433075138,-1795015031,-1794765057,123667316,170298307,204376981,136773525,1848156565,-1150427485,1642602094,772175228,-352233473,50906092,538915380,927276879,551373344,740441148,1008804412,574366242,-1006631745,-1200722410,149684223,1946499878,80184072,-193594821,2106271427,1745260034,1870052974,56461862,-1977220937,-1024064431,1460958224,125405990,310217510,-402405501,1153861008,-2090914049,-2048392249,3913861,1946731254,3061763,-378571078,1048637393,1963093562,-633437884,1962993261,1874239804,1874335371,829805067,763150347,2133266237,310056,180341043,1981712384,-134768273,-2010070400,-26249577,1271530186,-506400907,1849953928,1849296582,434684673,-5314436,-402652488,-970557281,-1336999353,2074732562,347138932,1434180841,-326898549,2079778836,-1792538938,-390057216,330332283,1971030760,163074918,-308287488,113661702,-400921026,113641300,-150507970,7219206,638219280,16940419,1424491380,906413670,-1230962283,1577462638,-1791515794,-1553039711,113677625,-402549464,1000542200,1024887189,-400904043,434666353,1527209744,38258214,-1791574446,-218101319,105638820,-402149293,2123201365,546564332,-970586277,-1924136377,1036257909,-1190819290,205258756]},{"sector":4,"length":512,"data":[138155379,179376500,192154172,548484235,57935676,-398390134,1347555228,50332856,-319035199,-1420252328,347120883,-2139419416,24001086,887686005,675184895,57933973,-1962525208,-389849627,113736468,38186,-402651976,1465087895,-402149370,1743289053,109832192,118444008,-970564769,-1420754361,-1330920821,2059659284,1849310848,-1949207551,194325054,-1908771585,644769798,-1912177269,-395401210,149452755,1009218937,639858001,637689227,-1910096501,252372999,-1792393589,1852311182,71665446,106268966,-342545757,330875838,-302978816,1013856928,1007252536,1006990396,-1023314900,38258214,-1000929702,-395418050,123670224,-1413313621,2054088899,-1792538938,7923712,1055396784,9300090,-51897424,-399411847,1387296651,1970926312,1178518546,245295214,-1986709597,-1332397802,-399447280,966987947,-401362795,-1595377139,-1791515888,468386736,191758497,-1559792448,45126969,-2036265493,-1791384722,-1792538938,-1577013247,1239979318,-401297408,1048607197,1946250810,675184784,57933973,-1023065624,-1553045855,-1070361296,-1198181725,1827143689,839319414,-401428331,-277579401,89057475,38112038,-392874845,1000541724,1024887189,378258325,1049335092,110007600,-141857176,38127142,1569334866,-1929332989,916456569,1962949781,1851302181,1848116983,192155648,1946286723,880033798,67108389,-1557302590,-1037341096,1852048939,37506539,-324983691,-1037350803,-149589440,7219206,-2096598000]},{"sector":5,"length":512,"data":[57934330,-1543504347,736849388,-385851208,138210489,512435317,-1993960146,54889783,-1953157469,644742174,637683595,1929533185,1488902,-1544776471,918459703,637333,251634931,57972018,-1006672919,2031020112,-394917656,-930449402,-2140506792,729043961,1968306560,898311750,39684902,638029350,1963146368,-437759946,-401493896,-622298947,2007820405,1396455797,-2141702795,24002622,-1960435340,-1912209035,644771846,134167683,-1175973515,11659384,1006709737,1007318049,-1207536606,317259780,9681132,-1192489751,115933334,1948335340,1948400880,196628716,1966073856,38258214,2021845075,-1506345128,1460032366,1594425064,-1336255737,2018240532,216543664,102004088,449112151,-2144991393,-1993997811,347078989,645411049,-402303607,10552085,1166616174,1975520003,-399265774,192247775,67993638,250090672,-2146178184,24002622,116852852,2125278,-2144992140,1048576269,1946250816,-399790065,57964467,-1342143511,2011425044,640464067,1015171,565449333,537261606,582224501,1074132518,1018430069,1484112954,1849310848,-2146995187,325990974,922699125,1460039334,139847763,1599862667,-1960945913,-1989253618,728655414,197624782,-1494016250,1969119007,102651683,1856376459,1856386697,-1960391125,109970813,520515240,520595187,-1341819553,2003560724,-385842248,1048832757,1962962432,-399986668,225802015,135102502,88459046,-2031550464,-331940096,-29950099,3604333,1849098094]},{"sector":6,"length":512,"data":[2001262,-29456018,226502253,1166747264,-1792236795,644769441,-1207614071,-1209532412,5826675,-386252056,109973051,1049325160,-2144965122,-1960411355,109969789,-1993970064,1990263365,92874350,1593965032,-1896198936,-1955698682,-1888616898,-1888616442,-1888616954,-1586631674,2453032,50347267,-1070397068,88442662,-1334942045,1992288532,-2081649835,109970156,1049325160,-538415618,-28931840,-1560219928,922709484,-1960405716,-947711155,1366614805,-1977198842,-1960442811,-1960443299,-1791581635,-1791279479,-1791156599,-402158042,1311310120,-28931074,410309131,728624289,671545282,1947205742,33194760,-31128716,1844225023,-1584056413,967011840,742296469,-1475965291,1936844910,-1792262519,-402650696,-970558732,-1101921721,163157302,1604645632,-947693305,-1953701371,644742718,1947207158,906413626,113706645,431415,-1553071967,-1960405703,2112357245,-1791253750,-1791158647,507587263,1931601927,-402650696,-970558808,-1101921721,163157302,-1583025408,104568108,1968729766,1856414467,-1017256565,637547752,1963197942,263435,17167910,1077936756,650130371,185687435,102200539,2106271319,126756367,155025446,-1960442252,-654900667,868419423,2105747136,309592067,-165281104,175378437,-165280592,41181189,-1960442192,635638605,365396823,1460031569,71666214,39684902,641567526,233310094,1476878080,-2091269885,-522058297,78168927,-1977209739,1300964869,1930050562,1946762279,1946696727]},{"sector":7,"length":512,"data":[1946631199,33129231,-108849548,-2096008190,208930041,79286667,79282944,-1009634560,-18775231,113496627,79188823,1852750592,1541862632,-4663413,-1014256641,638017451,-1023322743,-1157625672,-622301578,-1413467162,728673953,-1418830842,728678049,-1418829818,997087905,1970183686,-18429,1856938411,-1586602845,1621323454,1855889774,-1016178013,-1201704216,2126184456,-425990034,-1582579661,103509686,-1582600610,103509702,-1582600606,-1582600708,1587769014,1858511214,-1016175965,-1157625672,1860726406,-1413467162,1080973473,-31123852,1851302911,1852048939,-1413467221,1851302315,-1016175453,-385851208,113764333,38186,100668136,-107747241,-2134702241,946747966,350815093,-398741502,-1796705277,654556017,1970524136,1744776708,1423361,283621609,661082371,1042774045,571811813,767378221,1076721961,1208823013,734411822,36423212,-732942636,785646638,1429132291,-734581036,1900931118,1849310848,-1607961510,-2034274758,1950563328,6733575,125118780,1849165454,-395053079,1048604971,1951493690,833542,-991472407,644761150,637689227,-1910096501,1943464199,-1334586392,1940645903,-397293261,106498041,313540951,1953719016,279990769,-1334602520,1938810937,1509903080,638059496,1593990539,1347571975,138775334,71641894,-148343744,-1960545565,132573400,213405778,112896,638045928,638076303,638207375,637814159,1493583247,-1195130142,-689373162,708247526,775356309,808910741]},{"sector":8,"length":512,"data":[842465173,571541,45734707,127526912,1845247625,644769441,637814153,411079,105221376,110440099,309335,-1200641560,417867582,856121088,1845273536,-1791883633,-1792014705,-1792145777,-1792407921,-326412861,-2011763581,-488047002,1849335922,1962821178,-400576393,208958107,-1342146584,1922164756,1693181812,-395320088,158691623,91574588,-344794136,5957635,-1360512592,1745260146,-63009938,1435182701,650283778,1342326151,-1923676590,-689378690,-401428457,-210472365,-2031610960,235780210,1610584808,643324423,1979860283,1166616068,-401297406,141914675,980302496,-1049231802,-385988982,-443846051,-1947679907,-401362696,922710609,-1070371332,-395445085,110098583,113667580,856200502,-1791384640,-1191666711,-1092026346,708247525,4096917,1098186862,1399997416,855643320,244187,637960936,-1995291249,-1334969282,1909319693,1460023157,654185704,1963146624,-401690594,-1960414731,-1960443299,-1960440755,1642598517,-351838458,9746455,-1192923927,1726546067,868234213,870003666,-16695,39684390,138774822,173377830,206407974,239453990,-1993932801,1721831541,1166616174,1170679300,-1929379834,782435909,-1202256235,870842372,1042542,1776813919,-1547685119,110063100,-1597795030,1010593338,742136948,557586548,574362740,658247796,300427124,-401297153,-546016981,983571435,1950104686,1949056015,1948335115,1965177860,17885192,1946159080,-383274779,-1957334719,149717996]}]],[[{"sector":1,"length":512,"data":[1901783120,-395422488,477458514,309678908,104579212,343240296,54889254,1845233211,79170165,-459020032,-946929869,-1929871735,196672070,1842079744,-1989073944,1183644798,1204168446,-56536318,1166616173,1856413955,88443174,-1792133493,-1927509722,914950517,-1024944850,833902843,141828412,574378420,297009780,-400193498,2126774635,1962871800,2105747004,896794631,-1360522064,-397692816,-1977192279,-58801147,1963276838,-58815145,-2080868723,75696901,687728651,763577973,187466507,653819588,-351844981,-401297369,745893951,954747824,855929968,-1004409920,-165217154,578101253,637543912,638338443,67913091,654081732,-1341700727,1880221716,-1017256565,-385842248,-1749490735,-473175808,1852311182,1845247627,209552166,637957376,67913159,-2094611712,1962937469,-2094611711,1979650173,1166747149,1166616066,1166222864,-1960443390,-654900667,1356396368,79223947,1520363520,-1960421288,70061125,729314304,116689888,113849175,108396326,1569400385,1960512266,2106271241,126756360,123726315,-1977209621,-13499555,41779238,637957458,-351831669,75074841,123570982,175430411,21334822,-1929625463,-1960378816,-16053891,-891105163,-1960442017,-372175795,1363798481,-1378317395,858783929,1515514066,-402651976,-497460675,-1578726422,-1993970050,1460014661,1610264040,-2048343289,-1506345105,387182,1856374415,179851459,310016,-401799495,-1070398537,71665958,105220390,138774822]},{"sector":2,"length":512,"data":[-51901008,101741934,3467351,-1993996449,246417477,1483678952,494218300,451417008,-396949905,-2144928983,242354237,1594066920,1166616071,1435051524,582533894,-494147328,-2081649835,1187448556,-973078278,-956105146,64582,-1461171536,-972786322,-402194874,1191116923,-401428228,-210473321,83773174,109973108,1656712760,977174528,443880302,-1226304592,-88217490,83773174,-2144990091,1131676733,87916582,434650484,-1202695677,1727463429,-529012484,1586125400,-61961218,637896998,637687177,-2096865912,-253622841,33310347,347142726,1970157288,-8656637,-1946532213,-1195155995,-286719874,1803282657,-1972406594,1073787908,-1497642869,-533206930,1776919795,1852237934,1055406512,42985582,71666470,140348198,544597770,-388824143,-668210221,43968579,146296914,506112,637699816,637814159,-1022999153,-385869896,703127961,1849335918,1006667455,-1087736765,691798118,922690420,-1863815514,571647,-1191181125,1357384968,-1792368382,71665958,105221926,-1792393591,939953859,38201454,146296914,310016,-401798983,-1893334485,-1893333947,-706148795,1842538605,1894267312,-399739539,-1977157277,1946369029,1946434602,1946500134,34531362,146296914,8436480,-402651975,-1893334541,-1893333947,-1899821499,-1083295738,-1195179930,-18284520,1838082272,753405872,-1911655315,-1083295738,-1195179898,-420937703,65661152,-210382325,-277486582,-344670198,15122256,1849165454,1375844328]},{"sector":3,"length":512,"data":[1095760,-1191181893,-1662516724,1167009281,1167009292,-1070376178,71665958,105220390,140347686,172329254,25880643,381636690,939953665,25094254,213405778,637184,637626088,637814159,637945231,638076303,-1341504113,1826875664,-1200815128,-617414640,-402649159,1460011331,637619176,638338441,1376671113,571472,-1191173957,686292999,643455745,637820297,-1190767223,1396834303,146297425,1767237632,38258214,1532582480,-1951677557,-1047811134,-1413467221,1357386416,-1327795092,1820583950,-768360053,-1157408536,78118913,1598226804,1166550535,1569269249,650130178,637814153,637945225,638078345,-1022737015,-2081649835,2123180268,294643948,205488166,465045107,-540022528,988288944,-662794900,991000808,125168734,1178321036,-1207536402,-1293352934,-498693153,736384651,1444673094,-1207534088,-1628897252,-163148833,-386378101,-930479391,-1948105077,-689380266,-387872254,29033227,1946462208,145244935,1128465012,653033156,-393605750,1375754216,1095760,-1962917144,-1993935290,1183515717,1166616312,-498693370,138774822,652494475,638207369,638338447,-1961998961,-389849627,1692954143,1031808759,638087692,33717635,-1195179657,585695261,1927828447,-1993974819,1569269261,-947141886,1465107084,1746832926,138316654,-337956096,142183175,259325707,990076298,-243989423,520376717,532896607,-385840968,-1977164059,-771804643,-1476448541,805449698,813969416,805449860,805449730]},{"sector":4,"length":512,"data":[831009087,831009127,831009160,831009160,1673015688,-558634752,-2081649835,2122908908,-28930820,-386105715,594889116,1849310848,-400788467,126484925,-1002183630,992410750,91554373,-346711064,6600775,-1327596311,1793583117,654081732,638213515,638090635,-1960441970,723912781,2126775373,1569400572,2106271238,126756356,-396949935,123731816,125323609,-1293413712,-1326584982,1789650958,-1017256565,-2081649835,2122909420,-28930820,16402119,1031808512,639988995,818563,922689140,-1960415562,100732997,-1064538442,241011494,869269689,1430579410,1857422991,1726483888,977174634,1366560366,654079684,1963146368,1149969938,-96060656,45615477,-96075520,-397080344,1198876982,1131762236,644504552,989939083,1031141958,719852464,1569400426,2106271239,126756357,38112038,-386251263,347143872,1953093352,-401690449,2126801417,1166747388,-96064766,-1957379864,-1195155995,-2098659284,6666461,1440578793,-326898549,-1923676652,585690238,-386626801,123412983,-1974474520,67056348,-466422178,-1957400600,650337765,1208108427,7596112,839354970,1992440804,-2000516348,1087384327,1414457426,1416096088,-2081649835,1460016364,-387154291,-192213287,-398203416,-420994645,638017314,1963605376,1166681610,-161575679,645338088,-1929230965,367588958,1575324500,-326412861,-1928008573,-1561793410,1065362958,-1962248948,1435175493,1575324428,2013379,1440536809,-326898549,-327250668,-401702680]},{"sector":5,"length":512,"data":[499402587,155156518,1569392501,1575324426,6731971,199013609,1964734674,2028210710,168457487,839088320,45138880,-1023102781,-1329396048,-92028148,-2146208257,125173756,58310666,180552112,-1341949468,229688069,1942239939,-154892798,141820356,41157288,17621200,-326412861,-972362621,23988742,-1560280392,-1410830862,1844224474,862842531,1844749248,-1553074525,1049335104,1166765538,1845011202,-395445597,1183383758,674693116,89450606,-1879423351,-395452922,1183383738,71624950,1844192899,1745260286,-29455506,1979648877,12380174,-385988983,1183383869,639691768,1946420726,61204494,-385988983,1183384555,-401806344,1183383882,44099838,-1946663287,2095643718,-28931247,-1957610008,938015302,-163675311,695468141,-189011024,1368975469,-395446597,109990344,1049325160,-1960415746,-1960443011,128979029,-1202803736,-722992612,1844755281,-1957582872,887682630,-129594543,-1588529688,103509678,-397382052,-794733854,1841734510,-828129229,1859298158,1483606690,-1017256565,1848116983,292815104,1843543691,990004619,1953364486,1845142276,-1010814013,1849704064,-1201373952,2028470276,1842782545,-148455282,16787462,638219520,184550561,-336759360,34650129,1848116983,58000384,-402516808,-919383729,1842742926,-1064431637,203328294,1065559552,1090680063,77669894,1975520000,-1340808215,1353377946,870003544,12145106,1362618416,-1326652839,1352067157,-387610184,-324972383,1958742893]},{"sector":6,"length":512,"data":[-1294403833,1318250732,-1202696727,-1964446583,-396513200,1048596596,2080403008,-389304312,870928488,-1070483376,-1202687768,-655884276,1344596304,-2081649835,1437598956,-1202697240,1458103689,-569968816,1946158189,-334066927,-1327827091,1300424704,-402599752,-324972373,1958742893,-1294403833,1311697132,1852311182,1845378699,-1980697112,82378310,-62486031,323848998,-485111933,106385692,71666214,39684902,641567526,954730382,1499399936,-502937725,1745260260,-29455506,100017773,639333408,637760907,-1341107061,1293608967,-402515784,1957711939,-395447109,-2014818338,1575324495,-388461629,1311371536,-61462018,1979841155,671545100,1947205742,-60390652,79951614,-2144980619,729088829,209552166,1378120704,201213579,-1962707758,52886598,-944107451,1305405446,-1960394612,12127837,-388877360,190468121,-1023314478,-1157740917,-1310179644,1460058189,-1957732120,-1917125562,1302521918,-396945736,-1977200815,1963539461,1166747149,333989890,3192908,121384939,-544535947,-1202978072,569049180,326435644,209552166,638350336,-401586805,548948974,638249730,-402504309,280513506,1333389568,1852311182,1845378699,537261606,-994569356,1324869702,-504887632,-1030965170,-347149080,100017689,638809152,637760907,-1341107061,1276569607,-402514760,-1960423617,-620031651,-1960419212,-1910108291,92939783,762514492,695470140,544475964,1182075452,637983162,-167684854,41157314,-1960431946,-654900667]},{"sector":7,"length":512,"data":[-397616152,720062385,-348756034,912375319,21362214,-1106414328,-165267875,1963196741,911851011,839682606,-1976678675,1314580484,-1984366622,1315170540,1307073968,1745260110,-29455506,-279189395,-1011824501,17167910,-877657484,-922874397,-1957810200,1312549057,-397543959,-269922780,1183449933,1183515647,1187251710,163745020,-1946532213,1452014686,1397799166,-1202842392,250106449,1465301070,-1202845464,48760350,-397037490,-1984410132,1308092645,191753377,-150506304,-387140904,-1196405784,-1588735000,-617386392,866123961,1316743378,-388460872,-1947644463,-326518707,-1337079576,1303570525,-400619592,1605914045,1303898206,-396797256,1538805169,1303111768,-1779904592,1298196813,1077316382,1745260181,-803303826,-1961366674,-1977220484,11993949,71404326,208977931,-1962785655,-167050124,-1021319819,5421087,-385628285,681695119,1843307374,-387465240,1656447323,1670834231,602418037,922702076,922709486,-13734298,110035287,110063206,190475758,-1844742958,-1840442648,-397617688,28527854,868234179,51758043,1396676178,1163149206,937958997,1278755374,423573691,963193401,1295717407,1714240659,933449533,1446878257,-1773054651,1066812223,1430230569,-1776795754,1066817599,-398515881,1053057153,-29659578,-2094649742,779419709,-401735898,330326932,107179240,-10819497,243792,-1328199192,-544495092,638017368,1407720841,1282206028,-385855304,1371068121,-690755328,1428627128,-327029621]},{"sector":8,"length":512,"data":[1720189058,1664346367,-8485177,501743616,-27358977,-8479091,-1605640984,1178234426,1007252735,-400788204,-487890124,-8479091,-397678872,1021901618,1276962892,-1956438040,-1195155995,2122317909,57999614,-385846856,-1957308807,451707884,-949812248,59462,15091399,-327250688,-1207420184,-890765244,-21305246,-1326823799,1652942886,-1377302923,-398030338,49446528,1183518325,-159481622,-1959496448,803989574,-386906485,1183533982,1268312298,15236739,-340785036,-387555699,1586318330,1277880568,-387430773,1586318206,1277094118,-1957981720,1438866917,-326898549,1653270550,15353543,-327250688,-1207449880,1458044964,-28907422,49446528,2122321781,74776822,770424883,16271047,1262282752,1586359216,1269098730,1347112424,-387293555,1183534032,1260710128,1260447832,-386376051,870861760,1575324491,-326412861,-1206457213,-957855681,-364475906,-387154291,2122319719,477430514,-2132130165,1962997374,-129579224,-340787200,-386376051,-68662446,-263812790,-386376051,1183533948,1255205098,-386906485,-471315766,1575324490,-326412861,-394335101,1187471836,-1929379710,-1125585794,639484946,1913405312,155579916,-167349245,1948256581,6404102,-1193990935,-1897398250,-662794911,-1157559832,501758728,-1207536543,183042106,-2040624683,-1922983960,-269958018,-562135040,-2147060478,1946339966,-662794978,-1337304856,1185212416,-2142606616,1946339966,-998339318,-969100056,-1207957435,1055391780,-47257503]}]],[[{"sector":1,"length":512,"data":[-1920711031,1988997246,10873048,-1920434547,-1662466954,-1333883648,-1953991027,-1976662434,-1545076409,-1669427968,-387156339,2123169923,-998863480,-1929348376,1988992126,-401887096,2123169926,-663319160,-1929353496,1989012606,1081206920,45514368,2122321781,74711226,1240186931,12207815,-934900992,-1958097432,-941040570,-1270445239,-1958100504,-1142362042,-1913933751,602440286,-1503752886,-397782040,1586298965,1246423170,-393984373,1183533470,1234757792,-390439283,-1410840008,1575324489,702915,-1510799586,-1007661687,-1929005080,-1796674442,433056024,-2144216856,1946289789,1231284245,-1928772214,-806876579,207457609,-381026328,-1916581525,1988881534,122025606,-1308003064,1955213054,1212868866,771752376,-402434934,1166231475,-1070398966,72649262,-2092456216,-1023276435,205915394,621805568,405276685,-2115204267,-402607380,-1070374864,-1979824503,1183448134,1317439994,-495022593,640703464,638351243,638476171,1988691854,-129594122,134694390,1290273652,1222109209,602407088,1223747653,-11624819,-1337423640,1606936633,-402615576,-1634907938,1994981198,-72685496,-11624819,-1337430808,1601300500,1048583797,1948741178,977174551,276047470,1586359216,1225058554,-386113907,-991213260,1290282672,-1339001505,-94466581,-1924600344,501808222,1217456201,-11624819,-397924120,-1634862244,518586190,977174600,125052782,1458050224,-1326912673,1599072295,-11624819,-1924651288,1183578718,1221257468,-386244979]},{"sector":2,"length":512,"data":[1407731936,1575324488,-144906045,-397908248,1957822542,-387442768,-1340508834,-159468932,1946347846,-1301106684,1586319990,1216145660,1509961192,-924314960,-1978632866,-27357758,-1924634136,-1712784290,-1966806200,-1929300798,1474886750,-27357880,-1337423896,1591470355,-389120371,1580925977,-1943243274,-129614912,1183458677,124095209,989189864,494266694,192152744,31997360,172329800,-1337455383,174426684,-1203239703,787021898,7387346,1439836393,-326898549,1588783190,-1989283679,1187511878,-1929379670,-1930892674,639484943,1946304384,1065362956,-1207536637,-85393333,250381265,-257821557,205818221,1844459145,-1945609079,1166674500,1946396681,1965074462,17090074,-1962851192,1149831749,205884162,-1962654583,1149832773,-1203705082,15204356,33867332,302073030,855786633,71600576,-402242423,-1159182575,-1984278465,38046526,1480963048,168201402,38046704,-402652667,333989284,-1436644025,-1337545496,1571940370,1659437941,-400248577,-773300767,-1436643847,-1958308632,-257687994,-1436643987,-398021912,-443857178,-437730467,-512038819,-1336207640,1572333647,-1956990744,997083670,-1206422826,-1880621048,146298831,-1031033877,109533355,-374631104,1354254002,-786437888,-10637336,-395418058,753401866,1711705857,1184426350,-2081649835,922683628,113667686,-1340510660,1567090701,686295472,1946267741,-401952757,11558175,-5242252,-386316664,1048599207,1968336442,1178518598,100017774,638415888]},{"sector":3,"length":512,"data":[637754763,637631883,-303364210,-1476031962,-2145618686,1946220926,67314716,-112818174,54889254,-1929623927,-242292542,654202505,-352238197,6928440,-2133815063,1399732798,1053053813,-2094633402,1946161021,100017736,-398297984,-1960384746,-1960439971,-1910107779,1065362949,637957129,-150845557,-96040488,16350848,1187382397,-504888839,1550903388,393527306,-213260208,83460185,-654900619,-335919615,-214308858,-1963309431,-12781242,11537781,16481920,28312180,-1963374968,46235848,41026108,-315488335,1592312203,-109670962,431006963,1968977640,-16455421,1849427654,-401690618,-1000383391,728655374,1575324623,-338754621,-1977200317,1946172421,1946238001,-1879000799,57934396,651165881,637885835,-1960441973,-1960443043,786956629,130515782,-1960438293,2129133893,63406917,-1977218581,1642594629,1497843525,-1183450821,-326412861,-399840125,918838308,-424645050,-2013003226,263257670,-1923354392,1575545470,358541356,-488107856,-401166245,2123193309,743106774,33441526,1172833652,-402396395,1988957486,108822762,-2145815294,1962937212,1152641043,-1572688,-28931520,-401972086,199968009,-1975472920,135069254,-398136344,-443857738,-1957313699,686588908,-387154291,499387604,1007127078,1011577856,1011315716,1011053573,-2145815290,1946551933,2139301390,208994308,1849310848,-402295786,535498854,1458050736,-662794917,-387156339,1988952094,899475692,-401382680,-142142307,-1959082264]},{"sector":4,"length":512,"data":[-443874235,733528925,-826283776,-2144985916,259262015,-1377241209,1962379065,5695503,-398885655,45681915,155379969,4646998,1065363038,-2143390455,1963067005,-1239512264,640992367,973227147,640316679,-1996400758,38112309,1124554120,-951760408,1093,411078,542150,-2079767098,-1995811447,1166609501,1592312590,899934208,-2134696508,-2140265970,-2147462936,2137924134,-2144985660,275909695,242715430,207588134,-1996190170,38112285,3139779,-2144985660,561319231,33979776,-1494738316,1132193845,873022858,207457537,-1924930072,367528541,1132587332,2668739,-389155607,-1682243361,1509353537,2045258357,1200238170,351044353,1464923275,-991363445,1610058496,732424280,-1022049149,-385865288,448318917,-843060992,-253218640,-2081655463,-192211732,-385971369,-823656293,1610058552,-2144985916,-730527937,72321830,106924838,-1962439130,1200301785,1602954764,394995214,992353732,-1166734265,241142566,1964456742,949479601,-399194904,2105545538,561316358,33979520,1569397621,-754732790,173802475,1300891530,132218890,19196114,-348913944,1038084130,-152504441,993847350,-1746339961,6338626,-398233880,1170621107,1974472456,-2093773592,113448132,134874882,168560907,202246925,3336207,-398338885,527784212,777623528,-2097068150,-192211732,-24422576,-1962928152,-396861449,-998036795,-1009128684,197124,138019076,954730830,1107933952,1968758760,1499654175,21465646]},{"sector":5,"length":512,"data":[-1961563005,-1957211916,1960190,1482684299,-2094362392,-638905148,84019139,588252674,470037763,1107640583,1535502342,-1151965464,-1578614137,777287000,-1006544897,1065362973,-166431482,1080959494,-2094647179,1946158207,233891852,-401637400,-546043111,108888259,640578822,552945654,-672651404,1103620109,-389019208,-655867355,138790465,-378163185,45691569,115795968,-1205240343,988348458,9418956,315372777,1119834627,1397039618,1398097333,1173228897,71639632,-83671557,1187133253,1363619382,1245923146,1196042567,1447557903,1276666195,1257068617,-397697193,-1981281957,1177994328,1552623214,1955276293,76424711,1166810505,1200236034,121997313,411078,542150,1850095300,-1476097498,638415888,637754507,637629579,-320141426,192153768,637593320,16860299,-154990011,1080959494,-1960419467,1435042132,1006838794,1009546240,1008890881,-1340771326,1418405382,1050077187,-389640520,1170620753,501942281,55872294,-352253208,155567636,-972756159,637602117,-1996274549,1166806085,83240462,-1173392380,-689424188,155567679,172345128,-857145344,146008128,52742282,326369340,175374652,779354684,22856742,280707819,-1157371136,-1960443886,-1960443580,52822900,478881335,1962933123,-1579678914,100888080,-1064407550,-1960437013,1364197700,57969446,56396326,1888288951,15984644,-670869415,1946468854,532948483,1166655539,155551748,-1945477751,-1195176891,-823590773,570881738]},{"sector":6,"length":512,"data":[1165312110,1850482315,175495947,863945913,6285522,1170614251,1200226310,155551745,-1996339317,1200294469,205883652,-1996077173,1065356869,-1173392383,317208772,155567679,172345128,149487616,133163072,-1075292666,8120320,106939430,-1945477751,123604037,155567811,1456914,-1023314578,571033030,108956601,1745260118,-29979794,83240557,640972048,1946375227,-1194459602,786988683,1955276288,1552557571,-1929332989,917505136,641722344,1963984118,1413162510,-1207405565,183008651,-1948587264,256193,-389871778,78659545,17102374,112198260,641711081,637623435,794115,639601446,925187,105351974,403047206,-1094546432,244027646,384003610,225772603,1963086907,106728200,1847068302,147227587,-1950815518,-910432000,1852311182,1845507723,-1977216021,-13499556,637825165,1963984118,1955276296,1979058947,1048626153,1946316346,1177994312,478881390,41192230,-1996190170,-1938957794,644733958,918816650,-964465082,1946762244,1963408393,2144549,-1977219349,1106063884,1088995723,-1239512737,-74754193,119473694,520529139,1874247263,-2091448546,102632135,96012063,111538944,516185887,495545818,-956152436,1093,33965510,542150,21465638,205488166,1166739826,206932746,-1997776664,-1712781499,107341909,280007,138790400,1177994240,83240558,-402426864,11599391,-1995716989,38112309,101074374,-1593358968,1166634574,1850777872,-384678519,229660000]},{"sector":7,"length":512,"data":[-397068056,246479569,-397070103,-397388574,1012464663,-1023314940,-1003236120,126494237,1349848124,33979776,95436148,-402168438,334031903,1040181304,1273495728,-654854086,134694390,-138929292,1045424336,-388827208,95960649,1044637697,-394067784,-759677379,1043851264,859695849,735196096,1427835461,738912524,645204540,33979776,-420997772,833153072,-398610200,901265203,1040967904,-2093105431,1946161789,326467588,188531584,116861557,8416734,-1964452747,-402608067,146290514,1038346432,-402426696,-2135409187,1037560054,-1041727312,1032186173,-385865288,-1981233159,-78518188,-1003285272,1065362973,638350349,1946959744,2734114,-2134385431,1946289789,795338769,17397120,-2029369973,1166609477,1971569418,-2134703862,1946289789,1025763366,1877475504,-789137351,67585526,-138932364,122025680,-402230264,-138920595,1030219986,-146990359,1442253397,501793548,105236052,-1983892734,1170605125,1166544135,172329224,-385071735,-396942162,-544481295,1065363039,-1341688573,1402333201,1392927092,-957870672,-117512109,-1092088144,126494291,39291686,495519579,-2147334772,1962935933,155579928,185759104,637957330,1963087675,1200236040,121997313,1930181827,1963473924,1065362968,637956876,1963474816,1200236044,719867905,2145998898,4044854,-389612311,1170670683,-973078524,-1207957435,-1766191103,977174528,510984558,-1957211568,1379985651,-141834102,1968724575,1408860173,-2077882251]},{"sector":8,"length":512,"data":[-385649628,-1031012902,1439088873,-327029621,1239941324,-1070377133,-1979955575,-2037776826,2123235124,-1190715724,-1410138096,-790097744,-1592887982,1187475000,-1996458244,-1846935994,-394359552,-1342123800,1387653143,2123182453,12839124,49184384,2122321525,141886170,-1947056501,585883222,-387416435,-1557559,-729903818,-398737176,-1464322314,-2143819008,1963126398,-230257883,-802434933,-259312270,-288160847,-511653750,-771641337,-1270740768,-696008496,-176600576,2123176427,998762728,-1204371992,1357381796,1000138812,-13328755,-1338297112,1379526674,1961427829,-401559297,548950633,-389510400,1988975575,519801780,1604645639,-1979943228,38112309,280007,105235968,138790402,173902080,-13320573,-401574912,786968399,882806075,990505215,-1959051544,-389849627,-756538748,-58817744,-1005161216,1200301597,1602954764,529212942,-1996484603,1586101318,639485182,638338955,638476171,268771211,-62506240,1580927093,-385649154,448269130,-982521600,-402469144,-1125625348,178435,-385874968,2105549466,359925254,-2144985660,225773119,1962998144,172327684,-404110590,570881536,-160087954,101088640,-1628934284,139296826,16351233,1173764468,611651593,537478646,-1196422539,-398796824,451623417,17384950,2105740917,141885450,-386365000,116079313,-402616902,-109037187,-2145487614,-1207695283,1173805196,208994569,-155153224,1963460933,-796084221,-1494687486,978970682,17188294,218580422]}]],[[{"sector":1,"length":512,"data":[607686,641057987,-1460321142,-1470401278,-167349232,1946224453,1961691729,1964288015,1946265673,2088969797,1047855352,17319366,1946220928,-390549474,-1940833712,1552623296,268483062,-152513997,-109029062,-2136574718,-1341913011,-390004040,-1064551888,-161707226,857735353,987228370,-1883730965,-1000609536,101088640,1166739572,206932746,-1159174933,-164248575,1963001669,1552623146,1960512508,1955276322,1149970168,175490064,-1960382461,1846583604,1845626371,-1960394610,1351296512,640674562,49628406,-1960428171,52885108,637537334,637682827,52835467,637537846,-92072821,52458751,269913026,369305198,-109051862,-1845398272,33965510,218580422,-1995815543,-1195176875,-823590773,-326412861,-399971197,1441268007,1177994320,478881390,41192230,-1996190170,38112285,21465638,1460094344,317198256,-327250608,-400523288,2112368317,-401362935,2123190273,544139480,-399594264,279972204,-162533144,1080959494,2123186293,954198252,736624816,-397365195,2123184424,953149656,468191152,-402149323,-396412648,1183463643,-532280588,1166544676,155567624,-1983892696,1166608965,239438092,861869547,71666112,-1962326648,1166664262,-163149046,-972274295,-1962932667,1438866917,-326898549,6809602,-1001413656,-1334950346,67249892,-1325513080,1332733967,-400564248,279972064,-2142280472,1963067005,172329745,175498250,1183506570,951052542,1189613803,-402477000,1183462546,-402125570,1357396108]},{"sector":2,"length":512,"data":[122013240,-28903934,-972786687,-972683451,-2147416507,-973010867,-1962931899,-154968603,-1066524154,-1195179659,-1628897147,570881730,24477806,8763587,-2084400919,7213118,-1195179660,-2098659189,16312514,101088640,116790901,1967156770,639484967,294787,-538437516,91154435,1946224872,108888287,-166890240,1971325253,-1883716857,-1035212544,-385844552,1048625733,1968401978,1177994340,2088969838,1500774415,-2147158490,-1108847756,1242991438,-138811282,-1075251321,-1980266536,-1960441275,-1960439972,-1910107788,-1944221436,-1977220539,1166541127,105235975,138790400,1200301568,651753218,1963540352,952416780,-969511704,858261829,172329408,-348691736,5302275,101088640,499388277,75465510,-401116160,-840432834,6809604,2105599604,125108230,-2146875914,-1195179659,-1427570566,2156737,-2144985660,292816447,1946174696,108888307,-167283456,1971325253,2058928897,-1048057600,-1152692504,-1981264567,772044109,-1207867393,1927872532,1375930561,-1252834625,1196052805,692537923,1398097738,1257068641,-1605809128,255618618,289148788,356255092,-373095308,602472911,-326413054,-1004606333,1065362973,637957121,1963540352,108888076,-167348992,1954548037,7976966,-389997335,499404204,138906406,174033702,-1962439130,1200301784,-398030588,-1931321719,-1923619770,-1578570626,739764466,-387811699,113640827,-402362814,113641137,-1962906046,499408887,71797542,106924838,-1962439130,-1944221224]},{"sector":3,"length":512,"data":[-1977220539,1166541127,1200301575,-431585022,33979520,1149964149,-398054646,31876855,-1578563003,-398030080,702965495,1183517253,11790566,-152416632,1965033797,2093550112,-386431204,128988657,-2026750488,-364475657,1329577558,1577102056,-348791576,-386431142,11548117,-2026757656,-364475657,175947786,1329184342,1577093864,1300239851,-1162869752,-1959393304,317253190,-487081930,-1976169240,-142145467,-2026823192,899410167,-142147408,-2026812440,-125060873,537478646,62391156,157551352,-399121176,1149908375,135209992,1300236357,902045705,20742182,-2144991628,175442236,686297776,-385649332,280035028,-1957930776,197352933,-1324124992,408848,-919400844,1944637761,-1073001989,-5176716,1913666755,76230170,775262440,-402504565,-1959905911,897837060,71600942,1010138345,-2146208254,-1979578291,-391008032,-1959905939,-385741820,20723045,108269170,-402355410,-1959905959,894691588,-1948200509,-775552016,66554855,641058046,1946303616,1015031302,-398625533,1048595448,1963028026,-1075292359,1610058570,1379676277,-1960435339,1157693764,1552623114,1955276293,76424711,1166810505,1200236034,121997313,-1337211927,-163518208,-385844808,750305061,-1088427776,-2144985660,108267583,-385844808,1894301457,1268705532,108497702,73370406,-1996190170,38112285,21465638,-402176632,-1070399485,570881731,1232420974,-2144055064,1962935933,952416776,-348955416,108888082,-1206749951,-1696020599]},{"sector":4,"length":512,"data":[-1030834124,859084008,-349654336,-1962495981,-974648235,-963725263,-1959493400,145885765,411078,-1995876984,619252293,108888116,-1005816830,-1004139939,173902111,-972274292,-1023408571,425344,1173769332,1484062983,-2094654012,1946221695,178255,-1006515480,14084149,604587402,863234063,-59441370,-126579930,272927526,-398619718,116863592,159198,616040052,880666626,503298648,-382577688,45626299,26077184,-1171023640,-1427629825,866773298,2662694,-1962837272,641058014,83182838,-165276555,1946350916,1284187667,-74754058,1609439976,1924688363,-1107826432,-180029914,-402295792,468385884,-128677082,326423051,1845499451,1437599605,-348940312,1996470534,653490408,32851190,-1064557964,1852311099,-1699736204,-1942783000,1552623296,805353974,115921459,-1340544204,862382094,1642653872,650153011,-1175036789,-768409600,-382465816,-165268713,1948316996,122025504,103445761,1038661808,274580531,-1960394612,12127839,-388877360,-351849503,1156982294,343163125,-151015240,1963198277,-1070483453,-1338825496,856614992,17253878,1173757813,225772039,-399332120,101460821,115955636,-1070483405,-1204616984,-85372848,-397015502,678753130,56396582,-1961867893,1223168597,1578726692,2126821639,-1293364685,155567858,172345128,112721920,852224343,-385839176,499432693,108497702,73370406,-1996190170,38112285,252200390,205488166,-2144990093,108267583,188710950,-1977216907]},{"sector":5,"length":512,"data":[1170604359,1166541062,155567623,-2144943360,158665279,84297158,34031046,16824515,-399566616,686371345,-326413006,10153089,-1960430140,-964491188,-147004662,7200262,855799048,-96040512,-10058041,229638144,1464396008,-402237871,1577517089,96895833,-1341688759,1221847058,-1335891221,1221322766,-10051955,-1959681304,650337765,637813898,637688971,-1910098805,-59340537,-1912715636,78177918,1988977013,-311367428,-386107763,-1259855122,32499712,-1977213500,1930181639,1946696733,1946565657,1946631189,1946762262,1946827807,1946893352,701556777,-1763152779,-395646164,1860707757,-396397568,1525359991,-400166168,1383333985,-349825560,708765773,-353874965,-398005462,1589967183,126494460,913571900,292817212,594871100,-1030962293,-387441212,-349998046,-569968880,1962938477,639484942,1946763136,1751057,1002151145,-1930005219,38091712,-1880559755,71666473,-10051955,-147803927,195142,2105543284,74712326,67716598,639485123,482609034,1963407910,853051918,786682367,1399429119,-1195179659,1391001626,-1940681541,-1940681645,-1940681645,-732718765,-1990974381,-1991014061,-1991014061,1783859539,-1010814124,70976907,1166739061,38025986,509040323,885341636,-1491503705,401086069,-1391364864,-1861388881,199756515,-1509591808,-152960395,-1017225441,-1391430233,1193118502,1958742855,529212934,-1022936173,-2094654012,1946158207,1334519356,1602954756,126756358,-1960388213,-1960440761]},{"sector":6,"length":512,"data":[-1960440225,639419415,294787,-1960437132,-1960442801,-1910110625,651791111,1963738939,1602954759,389752334,-1996190781,38046469,-1023261303,70976907,1166739829,38025986,-993853067,1200301596,1602954756,126756358,-2094606197,1946157695,639484960,637814667,637951883,-661977202,41911078,-1962248960,-1962571516,1166606916,499434242,206015270,241142566,-1005090010,1195058716,638022924,638476171,-993847493,1065362972,-1021086964,-1912555845,-345098234,13024025,1849165454,-692383509,939953664,-1157108882,109969638,2105568824,880083462,-1962261109,992349269,142542423,992354428,443679815,173488934,310315132,138885926,-1977217929,101318983,1166569026,1287176967,-1177556736,1843267319,1182007298,-14265594,-14284169,-14284681,-14285193,-594869129,-402650952,1397764230,-401756078,250095906,-402608081,-1078973606,1513052136,12146779,805562448,-402600776,216543175,147096367,-1977219237,101318983,-202805694,1174857768,1850089156,-2128639194,775946211,1432323979,1571290926,5724245,-329376512,-396485376,140473344,73364481,5756161,-1873232384,-1806123520,5825792,5847296,5979136,677110272,744219137,6078721,6092032,6110720,6120960,206961920,5648384,5779968,5800192,6065408,5682944,5703168,5721856,5867520,5910784,5952256,-1738860544,-1671751679,-1604642815,-1537451519,-1470342655,5659137,676747776,1281203464,1348312321]},{"sector":7,"length":512,"data":[5995521,139853056,5651200,-326413056,1343548547,1964405736,-327250666,-401240088,1961426576,772794390,1541931184,-1207506134,1726529585,-790079442,773646382,-1017256565,-189011024,778365037,-1909584407,-1955698682,644742718,1948255734,-1142181877,1273523702,771025198,-385836360,-1957316511,686588908,371255376,-387154291,499447247,205488166,2123186034,369617112,1170675060,-973078524,-956168635,68165,804295,-402003200,1183454476,664856819,1511386856,-1913880947,652793974,-386430168,1166802397,1575324420,6863043,1438123241,-326898549,365226044,-387154291,-974646200,-662794987,-401289240,-2098659888,364308520,-389775731,-1343744848,678684925,-1961516312,1072230470,-599356627,-1959970328,870893638,24164397,-399639832,-443863738,-1957313699,1022133228,-1927973400,-102175618,360114195,-388465011,1843926000,-998339307,-401311768,719912312,358213672,-386906485,1183526134,753985756,-389527925,-2135413526,766633985,-1959985688,-1195155995,-1528299248,753985837,-2081649835,602417388,-327250667,-1928073752,317249662,354019328,2123233163,591259884,-1962654325,113466853,2005608019,1602954758,76424708,54493222,313531765,1967348456,-1983892714,1166541893,537049096,-402614086,-2014777305,638643192,-402503797,-2001196634,759031808,-1892908312,38113029,17188294,218580422,252200390,607686,-326412861,-399971197,2123175078,327346412,108497702,73370406,637832742]},{"sector":8,"length":512,"data":[1963147136,-401428452,360006391,-857189626,-1207477257,-1715847164,-272242688,-336058904,2013210135,739239938,1478968808,-1205256728,-722993012,739895340,-1961599256,-443874235,-1957313699,686588908,-1928050200,334031998,340453395,-388465011,1441272660,339339516,-399780632,-2001197302,748546048,-970202392,-973011387,-972224699,-972093371,-402650811,-141880442,-387154291,1166746171,1575324420,-326412861,-399971197,2123174906,316074220,-1928070168,99145854,-66656237,-1928074520,-2098664322,649652267,-388465011,-1343739015,9222182,-399752472,-443864178,-1957313699,351044588,331147344,-387154291,-337112442,330688547,-386906485,-396874926,1743268891,1575324459,-326412861,-398660477,2123174806,316008684,-1928095768,820566142,328132626,-389775731,-1863839080,642509051,-1961657624,401141830,-599356629,-1003810328,-1960388514,-397934009,1183524918,721479880,-402632520,333982663,1575324459,-326412861,-398660477,2123174722,300280044,-1928117272,1307105406,-79304686,-400162584,2123174708,306112708,-386189592,552084977,-263812333,-1960133144,-1209476026,-934900950,-1205161496,2028470356,717547563,-1017256565,-2081649835,-202878740,-327250670,638719976,205260682,116867700,8416734,-1360519820,510715933,-1193771379,-2031615977,-998339321,-385876040,-1934096515,-399250559,115875258,-662794972,-402648648,2123171689,-18236,-1207475992,384500196,-386217752,2123179377,-390057000,1187448653]}]],[[{"sector":1,"length":512,"data":[-1207959352,-397409916,2123174548,288221360,-1961720088,602468422,-599356630,-1960174104,401131590,-1270445270,-1003875864,-1960398754,-397934009,-396875978,468200143,1575324458,-326412861,-398660477,2123174474,294250732,-1928180760,-253175682,300869873,1006733498,-1173064692,171737488,-390460044,1946893313,6797318,1353995497,304277586,-389775731,350752971,-327250670,-1960203032,-1410807738,1961383977,700049450,1946958936,1946893342,105235981,122013189,292743170,1170611435,1170604294,1894253575,-972035311,-973011387,-972224699,-402650811,1170608490,1988955912,448587992,-2013675288,535423223,-1962654325,1438866917,-326898549,296282152,-387154291,-1410854724,611313913,-1928223768,1021892734,295036944,-386906485,1183525170,690809052,651714244,1208108939,-1205448216,-387448428,691333161,-1017256565,-2081649835,-397404948,2123174242,279046380,-401514776,-396875527,921184711,688973841,-1017256565,-2081649835,1072179436,-327250671,-401617688,2123174208,276162776,-1961807128,-806817722,-599356632,-1205286424,1589903652,1065363180,-1207733244,-2065170156,684779561,-1017256565,-2081649835,-1557268,-327250672,638553320,1963278208,284878923,-388465011,2123173748,283109572,-102233227,-117774321,-349983512,1200301578,631826434,-399996184,1183518927,678226160,-388217205,1183524966,677439688,-402543432,-1763170009,678488080,-1017256565,-385859656,-1957317927,686588908,278456400,-387154291]},{"sector":2,"length":512,"data":[2123173669,71682008,-2144993280,829687103,75465510,-401378048,-2135420811,-400788224,-1914171508,591390968,-1960437781,-1960442809,-1910110625,651725575,-402503797,283649326,274065448,-386906485,1183524850,669837532,-329333672,71270438,-268106892,682223871,-401598232,-443865102,-1957313699,351044588,270592080,-387154291,-2144989523,393545023,-1961879832,-1276579770,2095601703,267118632,-1960327704,-1195155995,787021887,-326412878,-401281917,2123173870,243001580,71270438,-454551179,-263812337,-1205370392,1223164268,263710760,-1960341016,-1195155995,-85393345,-326412879,-401281917,2123173818,239593708,-1961904408,1407774790,19970087,653024964,1946435456,18921475,-400027928,1474826109,1575324455,-326412861,-399971197,2123173766,236185836,71270438,-2115490187,-662794993,-401699864,1055455125,258861090,-386906485,1183524618,654633180,-402565960,988293067,655681551,-1017256565,-385859656,-1957318275,351044588,-1928380952,-890704770,255453197,-386906485,884483798,664659969,-401666840,-443865370,-1957313699,686588908,-1928391192,-1561793410,253159437,-388465011,149425739,-263812337,-1960401432,-1612129210,20494374,-400070936,-1343746347,1575324454,-326412861,1347480707,-1928405528,1793649790,1065362957,644117764,294787,-773300875,-662794994,-401781784,2123173576,231925956,-386477080,2123178373,245885104,834146676,648800448,-397389640,1491609253,-402396378,-1729622705]},{"sector":3,"length":512,"data":[-263812338,-1960430104,803789894,-934900954,-1960433176,602453062,-320317402,240904230,-1960430104,-1195155995,-1628897217,-326412880,12643457,-939637111,64582,-12548409,1172832256,-385649650,2123170074,-500766488,-2144985660,108266559,88047654,1810376309,71666462,-2144985660,108266559,-369342839,1317732583,15776510,-385729560,2123170050,-504174360,-954525464,50246,-1977213500,1963539463,440264724,-1927400984,-1070345090,-1207785240,-1880555304,1946827776,1963670532,-569968830,1946189933,413919261,-1927713304,397988990,42199040,-1195344243,2062090239,-2133542910,-1209507093,520349720,-1194033523,1726480401,-1065448190,-385876040,-591920547,1011215105,-401378036,1793652161,-729903840,1189658675,14465026,222047979,1458049141,-729903840,854114355,14727170,238820075,1122504821,-729903840,518570035,14989314,1085802219,-1349261056,-330921136,-1960509976,-135735226,-1002009820,1478816232,-400180504,-1634917114,-1628897472,221505572,501810037,221636863,-1157871989,-236453632,1084132620,614852863,-385988981,-18340465,618194956,-1017256565,-2115204267,-1996444436,1187511878,-956301060,16733318,216983552,-169278604,-394359552,-991124760,1065362973,637957124,1963278208,487909414,-1006353013,1065362973,-1996065788,-1024852922,-28407040,-402584390,-571932444,-394359552,-387158296,154930284,-404218763,609216540,-1960436284,-397934009,-122150534,621930496,-383492632,2123169926]},{"sector":4,"length":512,"data":[1963605204,-1643788527,105235968,122013189,-2131445758,188501483,96932213,1170604194,1170604294,-524811257,1010363137,-954895092,-973019643,-973011387,-972224699,-1207957179,535494908,359992892,18220487,17188294,34031046,607686,-352255816,4241414,-391223063,-387439453,1849205027,-972929655,-1928394683,401139830,-199497707,1156118407,71666458,-11231603,-400331544,58002433,-385924375,1183517699,47868,-1928609816,-385919842,1183523699,610134270,-401879832,-443866202,-1957313699,-1662221844,-28931840,-2114169207,1946223865,-386301578,644903936,294787,-1960416908,-1960442809,-1960442273,-129595105,-939893111,16737414,196012032,-387678579,1580927528,-1941277192,-95011902,854082421,-62485725,-400294168,-1634917558,-488046748,192407586,2095634036,-28931317,-1927079448,-385915746,-2085084433,594274500,1441268912,188999715,-1960632856,-1195155995,-2031550401,1751213,1353548009,-1326967888,158685241,-401975320,183104335,537716766,-1004343575,644761118,-1007214709,125140992,1847723766,-148998784,1967128771,570881543,292896878,1073734529,775541736,1636665227,-1951924434,8763489,1068314857,-1946156952,-1946076054,-1946075030,-1946074006,-671004566,-671000470,2130795626,-1895825308,1056964706,-1090518941,-1083958429,795092323,1610612836,1761607780,637534308,2046820453,2046885733,-1728053147,-1721600155,-1721599131,-1721598107,-513637531,822083685,828530535,828528487]},{"sector":5,"length":512,"data":[828531559,828532583,828535655,828533607,1835167591,1835159399,1533170535,1533183848,1096977256,1342177385,-1828716439,-402653079,1577058409,822133866,-681419929,587202663,1157628010,-1224687510,-1040187292,-100663196,-1442840476,2046820455,1811939941,1677721702,1744949376,1812059264,1677847680,1879175297,1946285184,2013395072,-2147353472,-2080243584,2080507008,-1946023808,-1946151736,-1946153256,-1996481840,-1744824096,-1670839808,-395764480,1256720722,639484951,1963736960,108888158,-1337691134,124094981,-389048600,1173756810,494209031,-1339985688,498919424,-390067784,2042110409,566487042,-388433992,1894326717,559147041,-1612185424,2406429,-400418072,1170612575,-2084368632,2030046333,868233997,172305362,-385067749,650317684,1963605888,108888096,-401247230,266867789,555214869,-1206215960,1927864629,556132641,2131977600,-569968701,1962967149,553380062,-1008205648,-427771878,-1339992856,557770879,-400489751,-2144991070,1031081023,1703544240,-823007225,-166009368,1963460421,550234134,401080496,-386418659,-400481048,1300242647,-389872632,11542709,-1206058520,2095579176,549578785,252200390,-569968701,1946189933,331868190,-401307160,350757009,-1070221286,-400495384,985143819,551807177,-400517399,1994920914,-402608096,-659023298,557705217,1344307945,-402124824,-2141317607,1946289789,542632000,-1545076560,122025500,-166038264,1963198277,1149971978,547612673,773871337,-402439030]},{"sector":6,"length":512,"data":[1290346632,1149972000,546301956,105155374,773884136,-402111349,887693441,76164640,1157863832,206902026,17716201,88129790,-763166719,-922812672,77128,-402597245,-1427634263,122013205,108888064,-401181694,11542501,-1206111768,1055451344,535947296,-823561552,174424848,207979265,131066112,-402165784,-1142356089,124774407,-1341686040,432334850,-949077855,-1996417531,-389873083,-504887294,1065363163,-400132850,-1570821,449046767,-1205890840,1558708584,530704416,17188294,34031046,252200390,607686,6994115,-391510807,820512545,-385699833,384309622,119924743,-2146102040,1946289789,-402214881,1170610530,2105541127,74776582,-1022736897,-1205911320,-1628905336,525461791,839599498,-372100124,-555217548,350218246,33979776,112203380,-401003032,11542297,-1206163992,1927857286,522578207,-2046147189,-372100156,-1957360312,351044588,1460098536,-387154291,-1494743448,-278468588,122611807,-402236440,1508381849,121497839,-2131986803,1963067005,108822542,-1962380030,1166608964,-401806580,-655877427,138709534,-972536568,-401799355,-443873662,-397360291,-1863842042,-397321753,15262680,37509127,112199796,-384260632,1609107086,-152007930,1080959494,-1959912331,518252548,-971073816,-973011387,-972683451,-973010875,-385873595,1793590886,71682022,1170604032,1170604550,516161544,53347476,-1960443300,-388877561,1139346576,111208454,-1607295256,1362914874,1128029812]},{"sector":7,"length":512,"data":[691821172,1088968308,639485158,1963147136,2139301458,1265893388,273124134,-167099135,1080959494,250094709,948681246,-1206050584,1726481803,505014302,17188294,101139910,17321344,607686,-286774037,173917413,-1910535386,644748294,199952267,-1058019241,643817355,855787403,72714706,33965510,-402107000,552078344,96004358,-402254360,1048588819,1951493690,-440539089,-1763172924,1200301568,172294416,1847723766,-401705664,1170611605,11535879,-350626328,-443815887,638213572,1441466251,-1064048553,-396370037,116785253,1967156770,-1196403920,1528675304,-1960394612,12127839,-388877360,-1934090655,498591962,-971150616,-973011387,-2146629819,-972748723,-352319163,-448796632,241142566,270402342,126559744,1962934077,337021742,71681902,1170604032,1170604550,1575485448,91613195,637854185,1963147136,2139301384,24379404,9681091,-1196977943,-1964441461,-1343729497,116874756,8416734,-13758092,260302900,-401600280,-622325550,772991772,-402492161,669519810,483125264,-1813512016,-1796712426,484042781,252200390,1944604867,309061636,108888158,-400722686,-1070395575,1649409665,-1925185164,-1729623459,-1962439872,-639106473,76343562,-956326936,-973011387,-972224699,-385873595,1170670714,-973078524,-972945851,-972945595,-956299195,-1036711355,1745634759,239453985,1170725538,-943124720,1073746501,-402376727,729089184,-402407448,-1108867929,393210092,-1206108952,149422452]},{"sector":8,"length":512,"data":[474867741,17188294,101139910,252200390,607686,-150725143,-2140283386,-1206356736,-454557172,472508444,17188294,67585478,252200390,-1207700759,-857177736,470935580,84297158,34031046,252200390,-402403351,-396950462,-544489735,1065363039,-402230008,887746349,2209796,-1767481111,1847723766,773616960,-1863842677,467003420,17188294,218580422,252200390,607686,-402414103,-1959861335,333972084,71681792,1170604032,1170604550,-706215928,59304201,1053105751,1166765586,508922652,259375115,1965049131,1959922449,12747054,722660112,41099333,-1320107981,65590020,254105808,441789184,1160449394,84701976,-360513520,855929601,-976079936,99294333,-947661057,1979648776,-754667017,-2083877950,-494669599,532744975,1426309983,39136006,1023689987,74579984,1107300397,74646827,1241518085,106793923,990010667,-1961266470,220922957,-1048378253,-633648368,141690487,74631227,-745815669,54585539,-402509848,-1595407553,264431874,-2081649835,736629996,40757251,53405783,-387154291,552075875,-1159176445,-263812326,-1206208024,-2132279232,449177627,17188294,84362694,252200390,607686,-1962764824,1438866917,-326898549,48818216,1459759848,-1929188376,-169284482,-353507327,-401233688,2123170524,31910104,-387260696,-924314215,12082946,392423425,-1961206552,1541992518,-599356646,-1206233624,484966456,442624027,252200390,-1017256565,-2081649835,-1813506836]}]],[[{"sector":1,"length":512,"data":[25356290,-401672472,544539269,-327250601,1593951976,-1961221912,535359558,3979290,-400890136,1170610731,-605352184,-1962775832,-389849627,1894252981,355199210,-402587464,-219670791,24950809,-400900376,1170610691,-1092022520,447866881,-971376920,-973011387,-972748987,-972093371,-385873595,116785606,1967156770,-2234360,17319366,-507778877,1846681284,877103910,71681945,1170604032,1170604550,-437780472,26798343,32172112,-1070396812,-402652998,434831796,637565160,1946500992,1211979786,-1205373695,-397409952,1927807447,1088968729,28305434,-971406616,-973011387,-973076667,-972093371,-385873595,1069023581,-1545344768,27846736,637548776,1963212672,27387939,1478049000,-400946456,1290273145,105235993,122013185,138790413,155567631,18671872,-385859656,686334893,296282337,-389866044,-2144927756,108266559,88047654,-1195179659,-1897332659,-2168669,155156518,-1195179659,2129199170,-3217245,205488166,-2094659467,1963065983,1656275713,-1553471232,-991894808,1065362973,-1023314680,-385859144,-35085483,1065363156,-1023314680,-385855816,-303520955,231860436,-1005711128,1065362973,-1023314679,-385858632,-706174163,1065363156,-1023315444,-385865800,-974609635,1065363156,-1023314676,-385866056,-1243045107,639485140,205260682,188483700,171705460,-1195179659,-219611057,-5576542,-385026328,-1343745814,-4790272,-402608407,-1108868954,10873343,-402612760,-1662386236,108888064]},{"sector":2,"length":512,"data":[-2147191552,-1015019187,-949077855,-1996456443,-1581055419,96955960,1166606470,950125314,-1643788434,38111488,1849205187,10618311,-1023261303,-949077855,-1996429819,-1581055419,96955960,1166606590,499434242,1007127078,-150309621,-2140283386,-1342016512,-1072970998,-1078978955,-1592253464,-617386440,-393215815,515381453,405006679,-149437975,23977478,-1207536640,-2132213560,229688088,-1339133207,778955026,-1561784912,-384913362,313536157,-1574004503,1189647682,217311245,1055455111,216786957,499447687,-1006138842,121251356,646581877,205362498,1024422928,1081409550,-2029221144,210102519,2105603975,410321414,33979520,-286780811,175892489,-420939897,175368201,418117511,1843267319,-428539776,-401988120,-142144886,-401990168,-142144894,-991541528,260711965,-754974280,1109297888,-771804523,-2021314845,460614973,-13444726,-472783919,33979776,2088765557,41222662,-13745341,-1200791641,2129199145,-2141290335,1867804,1048592,1048592,3145776,-2130739152,16646399,-2130804482,1835262,0,0,0,0,0,0,-1627389952,1399724653,2138167665,1148123758,695209839,1399859568,-512632463,1399970160,1399970161,-2140022415,177553982,-1662515853,-402396406,-142144827,-2029338392,1111392503,41226133,-253167737,374925326,-1790833014,1963981184,-1191737598,-109051732,-1204259840,-109051728,-1204784127,-109051724,-1205308414,-109051720,-2146929654]},{"sector":3,"length":512,"data":[57936889,-402604872,1156060927,138790422,-2139836401,194331198,1974469237,-402189079,753407719,138790422,1465303823,-1962249077,119409277,-1610608455,3970370,20723316,37501556,171720820,188486772,255594612,-142146955,-1358623827,-119404939,-1477246229,41222320,1048576432,1963693378,1593914370,118352222,-1425732691,283900642,600897453,-119362811,598542059,-85808379,-2134679969,9781822,1692933749,-386431222,-142144969,-401727768,1018697094,375252992,-971660568,-1022425019,33979520,1552615541,4161546,2105545076,527761926,-2146804341,393543743,-402247192,-1070396852,-1996012408,1149831748,73066508,-401249559,-142145045,-2029394200,231598327,-1206569496,216531012,357689366,252200390,-378193477,1448543778,-1962246773,119409268,-1790820736,-2029358080,895478007,820600670,-1979348474,1929642704,855617538,-398438172,1398289787,-1947389354,-1426355209,-213464438,-930455900,-213464534,1600019364,-1022730871,-2029490456,141158647,1117845383,1009825429,-1240173552,1930050584,1006679566,-1240960000,1946237984,-2146912766,1946486397,108822549,-166956027,1963067205,121959945,-402426878,1156972667,527696391,1375761128,-2029483544,142928119,-2028699160,235792631,-1043562408,-488097104,1377102612,-402100760,-1302719382,122948312,1307113351,-1594390765,272405826,171717236,45624946,288483328,1054718544,-401410072,1079512525,-400127302,-1632627980,-401304600,28316759,134759434]},{"sector":4,"length":512,"data":[968558661,86305141,134759562,1089013829,-269987308,-956933628,-2147257312,-1916598026,1284311645,-1790795766,175245884,108269628,-382226456,1760101663,-569968841,1946189933,119793677,518584199,-369654009,1117847302,1947221141,1930050587,1946172424,1963080708,142376975,-2146864128,1962936445,76867587,556160,-1092086155,-402608109,-142144122,-1340885784,226289665,736884615,-1494681721,-402608109,-142144146,-397192520,1353716733,-401348632,11539345,-1207084568,-639106983,1600043027,-1609308952,272405826,171709300,-927461518,339863553,-1156348184,1542026553,28883460,292814908,1006746810,-1173720063,37487040,-994442380,-389903615,1625887771,-569968877,1962950765,1111392352,125044885,-1790820736,-397249273,-142146219,-2029694744,321120503,-1928772214,1301088861,1111392268,74713237,-645463756,-1961655832,330492121,48822151,-386431213,1149899543,138741768,-1962254963,2112358980,207457555,-401849205,1149899636,155551753,79947971,-1092028537,-1963489532,1686767429,-1058674681,-1790820736,-1475841273,604271876,1342442497,-2029205016,-1008183049,-386431220,1048576826,1913296194,122025488,-402295544,1139474852,-352171288,122025534,-1341492216,245819397,-344751685,-2147110888,60113470,1048578420,1946457410,-402542590,2075856524,-1790795662,-523115470,-670834479,39291694,-13699193,-386431209,1149899375,138741768,1111392451,460458645,-1962261109,1143671893,206838538,-2147433855]},{"sector":5,"length":512,"data":[-2147419519,-1073020299,-402437399,1860894723,1109297808,-771804523,-1208013085,1166766619,206932746,-1962259317,801311836,963785842,1064451186,1399998322,1685217138,57829746,-1009577023,-753155797,875162051,-399227415,-1047841726,-2084318325,108273633,-757997359,-2084308254,108273633,-657331503,600046306,-1009572927,-754204405,868299715,1166656467,206932234,-2000711448,-1547499707,-1556086670,-1220007822,-668403854,154728306,288946035,299946355,-1259810445,-1275060110,-1275066254,-2147471246,1963067005,175997707,-1979353855,298248646,-2146470423,1963067005,172329774,661962763,-784217805,1241215976,460701707,-1173729911,971759825,34031094,834144372,296216786,-1716517397,-2146332696,1963067005,28332551,1510834664,34031094,-427818124,272361719,67652992,-3348285,1776915120,108888081,-2096401150,1963002493,-373126395,-1336798871,223406081,-385741736,2105545053,326434822,33979520,-353890955,172264208,1692940466,-1339299057,217507841,33979520,2088966005,292880394,-155186760,1963198277,-1073170429,-351197976,-1292400887,247261240,1069283207,122025589,-1157401598,-1679198919,7579905,678668560,343130136,410238976,410241536,544456704,477347840,544450816,141797632,812886272,2145931776,178190,1510813928,91551242,-1729505654,246212878,-402542510,-380105550,-202895057,-930498305,-1206863640,-1293297015,-1547685104,1168348483,108822677,-1956219646,1141574212,-1606912756]},{"sector":6,"length":512,"data":[171742530,188482676,2105552245,477429766,-2146425624,-1325987995,225372160,34227587,-402650950,1300237846,1407910152,-1206908696,1726533641,-2142704880,1962935933,267905056,34227587,-1307818869,242083896,-2097134616,-1962800531,951192132,-351379736,-402280414,-142144528,-402652488,951192713,-401738008,-21495776,209447167,-1075300174,-1141405939,-1477937863,-1790729984,-1593162359,1166644549,512410380,-13462206,-1959861295,175412359,1342731456,-392870981,-1973940222,1958742724,-1790592250,-1022364183,7697664,2138864767,2138864767,1016414880,1007973130,1007711232,1007449090,1007186951,1006924808,-2145094391,1946289788,108888094,-2145815550,1946159228,142442514,-2146601984,1947142268,142442502,-1023314929,-1962931527,-1996126460,46629636,-503134589,351241202,-1609240957,272405826,205261172,914359666,-1023306430,747979424,-958976502,-972880315,-2013264059,-1070397115,-1995815543,-152499131,2004186358,1953919858,2105311093,512401278,-13462206,-472783919,1966195585,-6422096,-350849821,-351111918,-351373554,-351636982,-351898874,-1342015998,-963012608,-1996486843,1435044421,-156243700,-1977213756,1946762247,1946827793,1946893328,1946369042,1946696724,-1326857443,19392515,-402541335,-672595598,-1933341951,639485122,1946369920,-1960393941,-1960442809,-1910110625,651725575,1963147136,-993883101,1065362973,639202568,637816715,637951883,-645199986,1962937064,-1994603513,38112285,1065363139]},{"sector":7,"length":512,"data":[991655171,-1945733672,1959410625,1334519313,1602954760,638051082,-645199986,-2134645269,1963132541,235923513,-1928772214,2078804573,207457550,-1206998040,1592262832,49002510,-1928439576,-1712846243,28358670,-401715992,1170607615,1300234502,1170604296,-2134704119,1946355325,231729217,425344,-2135290507,215738424,300466226,-2145850610,1946224253,-1968132084,317196901,139296782,-1073170431,-401733400,1170607547,1170604806,-1070369527,-1995815543,-389870523,11537805,-1207313944,1173749761,158598151,122025536,1073902600,172877888,411078,302597574,-1341504119,168093696,-1005749527,1065362973,-2142735092,1963067005,173903112,-349095704,108888115,-166365952,1963460421,122025495,-1173785596,1173749983,192152071,1005063600,-6821881,-402596934,31984929,221636620,84297158,34031046,-1007355927,-2144985660,913640511,33979776,1569524597,820504586,-349090072,-401756130,-286783742,-402608116,-860354246,230025217,-972227864,-973011387,-972093371,-385611963,-993790781,1065362973,-400526069,11537605,-1207530008,-1930919504,215083021,84297158,34031046,252200390,-1007382551,-2144985660,745867839,33979776,1569523829,820635658,-2081941525,210495488,-394152776,-1662513833,105235980,138790401,122013199,-194647804,108888259,-1923058430,1200294493,2147427592,20784756,1026519612,712459262,134154231,-2126699403,1025012287,326582398,98179,2139295093,125108227,79233200]},{"sector":8,"length":512,"data":[-1341330688,571652,45090283,-2013263175,-397342907,-396873536,1170607498,1170604038,1435075593,207456522,-1022474871,84311424,-1863835020,201320703,-167716422,1946289989,170440194,-773322923,201713674,84297158,34031046,-2134887485,1963067005,173902633,855642297,1125583826,200991299,-1206422062,-957874144,10532872,-401830168,1170607059,-1195176184,2105540640,477430278,2144336,-401973877,1170607374,1170604038,1435075593,207456522,1477330313,425344,499394165,38222630,333979252,2144260,-402096920,499387253,-1207393560,1021837400,193062924,252200390,16824515,33979776,1569398389,839354890,-397393692,1170607290,1170604038,1435075593,207456522,1477330313,16824515,84311424,-397403276,-1075249205,719869955,186902536,-402641736,887622639,138790411,2105590543,779354118,33979776,1569394549,839354890,-388877340,-135661244,184019186,-402169928,149424981,105235979,155567616,172345128,1170604032,-672595449,639485170,1963868032,108888121,-1206422270,1088946178,-1979600853,126421605,-972399223,-385874107,-488050031,16824325,-402149144,1220020905,192276480,-972375320,-384890811,-389811595,561315876,52750416,-402587464,-2031614067,-1209509878,5027847,-401912088,1170606739,1323896584,499434482,20938790,-1960435595,-1960442809,-1910110625,651725575,1963868032,639484941,1023559563,41353471,-154943429,1080959494,-2134703755,1962935933,105236217]}]],[[{"sector":1,"length":512,"data":[639484930,205260682,-1612183182,121997824,1006908905,-385649400,188481682,-1947726731,173903104,-382838808,171766260,2078805877,121997824,-401973875,-504811917,1963539697,173917205,839354918,-930397980,-399875352,1569259619,121422602,-219664267,-1194292474,1290272800,509040170,1975846686,-1963226358,854405838,-1968507968,-1314589750,717892128,531297230,1569283679,20759306,904403061,-1961658881,417874120,1125091370,1258297064,-385196663,-1984368275,-1809848064,-1960436284,1569522255,509040138,1975846686,-201618678,1583292324,639485123,-13492342,-13704239,-210058329,-210046086,-210050182,528151418,528194939,-142886789,528226427,528162683,-998563973,35698717,274172710,209683238,-2028636928,26536183,-1880557689,-1004506111,1095709,39291686,-142126512,-402545944,-142145270,105179224,165537880,-2146884887,1963067004,172264278,1963738123,122025518,-400002044,834144497,156231872,-1461190480,122025478,-2096270328,-1342043579,110749696,34237827,17321344,-402069783,1149962441,112388106,134694390,1166216820,1149960714,111339532,34237827,-2029467927,145221879,-402111350,-142146526,-2029478680,-390057225,-142146484,-402045814,-1528232658,-386431224,216595665,141879297,499447687,-1207588120,1156055132,143255817,33979520,1552619893,4161546,1592267125,13023752,839348456,145156288,-2029491479,-51779337,-402599192,-142145478,-1960436284,-397934009,817366382]},{"sector":2,"length":512,"data":[151382016,-2029499671,-64952073,-2029511192,416922359,34031094,951452276,-402172662,-1830287624,136964353,33979520,115875701,172264200,-2096762904,-1962800571,-437777340,172327685,239373058,-351937560,-386431160,11536357,-2029933080,142442743,-1207208960,921195346,-397365240,-890763232,142442503,-1341426688,135456856,-396731464,11536413,-2096793880,-1342043579,91088899,34227587,1692926640,174949125,129362180,-1960436284,20775495,1024160768,192151554,1946158141,1170653963,-960299001,-1023146171,201803206,583875,65599367,-1007188224,425344,1659375733,780295,1471415820,-385368856,-154990737,1947208005,948812296,-351903512,155579938,-166431712,1963002181,175997702,-1206881280,-1830238335,-1341789433,125495487,-1979278104,414189925,1963050230,-166678512,158663364,-990510928,-1342016248,2105590536,779420166,-1977213756,1569521991,-1779937270,180049963,1946303488,1007203080,-1291684608,-1957999868,-397211071,190514194,-369986085,2105542383,460652550,-1006156406,1194993180,638416129,-402501749,-68680003,114419971,-386225688,482608817,38243110,166259890,-477513723,-402193176,1018167331,-1207505944,482615129,21432870,41157288,-353878092,256006,-1207526679,-555139635,387078,-974533200,-569968890,1946189933,512630284,243494504,520159272,7649475,-393155351,65537621,107604224,425344,112789109,59042048,199753904,1397929984,-1341743896]},{"sector":3,"length":512,"data":[109504848,17202560,-930473868,-402587464,62390293,1042438,-402193736,1170604041,1170604294,180555528,-1979550519,56289476,425344,1166214517,-1950154230,1166609477,239438602,-1022605943,-1979232886,108888296,-1960282878,1435175493,80082444,-157808523,41157317,-973675470,-1727499000,1946338806,-1982713086,1435044421,860744460,-153996352,259261637,1963246070,-157765622,57934529,-152817480,326371525,1963508214,139296782,-157699580,57934529,-1949158982,1960446936,1347571991,-1341816600,30205952,845912,583768,1493535464,-1022923384,175423499,57992202,-385497879,-2134702672,1963067004,89385025,134694390,2088965237,242549002,818307,-21886859,-385594392,1149961555,-1259843062,1173772803,326371335,34227587,-1978907509,281706710,-2096914712,-385742227,-2024667857,84928759,-402111350,-142147446,-2029714200,-390057225,-142147404,-1966175654,-422573708,-422517040,-102175094,122025475,-2096008184,-1962800571,281706961,65464336,34237827,-402330903,65537229,81914112,425344,1173758581,578028551,134694390,1166216820,-4586998,63170608,34237827,-399441990,468386745,17202560,11535732,-167713304,1946683205,-397234171,1353712860,-972761112,-1023146427,134694390,27791989,78125172,44570996,145234548,-1595204748,108266920,208931496,11572971,-1342133783,10807554,-1612119632,-385634304,2105540762,1316291590,17188294,134694390,1488202613]},{"sector":4,"length":512,"data":[-2080374343,-1273531199,33864026,242532740,45701556,1958839297,-1185172475,1292370696,158173192,1642710154,375044,1488503172,-1190759334,1505231114,139266139,-385258104,-1329396647,714753,45152135,-2030028312,1149551607,-401574648,11535325,-2030032408,64219383,1355020167,1342719242,-957810809,1139300355,-386430977,11535293,-2030040600,1776834807,-1007187969,1173801098,913573895,425344,-994960267,-523181872,-259333936,-1342001944,-2132702580,-864025916,65792192,-706211605,178176,-1979696920,-402520895,95420616,-1041758741,-771641344,105236192,138741761,-1022800504,485017738,122025473,-2096139256,-1979577787,-402520895,1837302027,-2134703606,1962935933,172294404,108888259,292097,-1950152379,1166477893,172329228,-1579643965,-1020563986,1843267319,141824000,1946286979,-121597,-1955729757,191753246,990147803,-1560054845,-389845524,-1917124653,27453502,-396945736,1170604881,650315014,637683594,637816715,637951883,-645199986,73894438,-321780815,-1840957,11587723,-1342150680,51571024,-787854079,174949353,822065666,-503199512,2105590772,544538630,678756412,805914102,1166680693,37742601,1173791152,41223175,-571957072,33548546,17202560,1161433973,-1023314679,-523203918,-523181872,2112483466,122025473,201880836,174426800,-1962752791,-771028395,-1207170444,-1962760216,45345218,-536166220,-523181872,-536158000,-1561775696,1962949634,155579932]},{"sector":5,"length":512,"data":[-1978239696,-689436347,-157044735,1963198277,-391991294,-1763114380,-796347903,-790572832,-370111776,-930414304,-402602310,-1047854824,67585526,1659437940,38725890,33979776,-1031136395,67585526,84675444,-1962787864,1189677637,-1979446270,1055459941,46825474,-504760782,108888064,-1962314494,-897578427,-1876431934,-1241265536,13887760,33979776,-897576843,-1327330622,34596993,-385202805,-897580535,-384780797,-930414411,1975597976,-1327330804,32761987,-571883126,-1327330815,31975553,-487997045,-1966568703,-159337742,1946421061,-1736199663,175425595,2129166770,-373191936,1994916293,-373192192,-397409876,-2141652261,-829774614,-2146967168,158598905,91602955,-1561738613,-1731687679,225820987,-1958687104,26470594,2112471434,-2133950463,-2031566197,-373191935,1173750145,141824265,-2131059992,1055630570,-1325755672,22734908,1173782704,175440393,1173749936,41224201,-802013008,1173758187,57934855,-2147366272,1963001469,158665227,-1950298496,20703682,-402045558,1166671993,1964025865,114196505,913580200,-1476135296,-2094238459,1962936957,-373126385,-830471915,1948297222,100040707,-1744157301,1963607355,1087275022,-85409141,172329728,-2147425303,-1031044914,-167711512,1963264325,172329734,1359012073,-1961998965,1435176029,1342224650,67716598,12127349,155580112,-1190955712,1659408384,-1463592703,-1273793263,1963108406,-1473858552,-1274907384,-372995538,-2084372332,141835839,50464643]},{"sector":6,"length":512,"data":[-1022916321,283660371,803756032,4777984,34064219,38242560,-787510333,-2096335639,126550723,1370195,-1007361445,-2030040856,256247,868480903,71665600,276086795,-1202694394,-605552637,-1442795384,123710296,321731,-1023130231,728625825,1953418758,-1202256365,-1142423551,-1442664312,109561739,123694578,1958742979,1347880464,-402652232,313559202,1605064874,1460060935,178256,-1333227032,-1437029884,113444703,62410839,-2004817920,1487537840,-1022926933,1858999947,1460017031,571472,-1333237272,-1437029880,1605091979,395035399,58053131,516097929,1859133070,1468783243,1976699650,38242807,126599967,-1073019095,113443189,62410839,-2010060800,1487539376,-1960388469,-1993997753,-1073020289,123728501,-2147440189,-1259862412,2147427832,-392515504,-1587806352,12152376,114438960,854086487,-1194849536,-202899449,-1441746809,1487651211,-1413313621,113444703,384324439,-1194849536,-672661497,-1441877881,1487651211,-1413313621,-1899821217,862883846,-337955841,87762444,-1977206924,2039284317,-1908524285,1374582126,-1907351978,915089088,-964493304,76162563,-1958739788,132552,-395407685,1465419665,-203911509,1579114404,-1010332839,-1000974586,-1955680746,728652862,1926245335,-1946973426,-1494001720,1192391775,-1947043510,-1141666872,1525182126,-1527556217,1852350815,1853234827,371971979,1600024156,1460060935,-1949791402,1857469427,-209241880,123690660,112835,1857422981,1472397685]},{"sector":7,"length":512,"data":[-1144485114,518549174,-205507705,-1017182294,-397191418,-938737851,-1157625672,115896006,-1413379193,-1031034024,1857462699,1851655723,-1022926933,1848116983,242483456,-402652232,313558754,1845141930,28879680,-2032867328,-391506768,-1612185592,-370182912,857604297,-1949158455,-1955680706,-1905397194,-1402023906,-13444982,1772617518,-2054783098,-1937340282,-1400466298,-1148799866,-779696506,-1383672186,-336557226,-672440614,-739555514,-2096970109,-873790777,-1996260215,-695532204,113673132,1006880643,-2085063445,-1276443961,-2096642429,-1410661689,-964477815,-2086343934,-947714362,146899714,-964453909,80184070,-351747709,46564238,-1994421781,-1986704882,731204630,-1989235138,-1013626818,-1949748450,-1902818250,-345059298,22842138,1143670667,8469763,-2109928833,-972718849,1091239748,184906891,534935030,1438894347,-326898549,116858380,16805416,-90093196,-133813395,98619757,-1631911924,-2048923538,-143785823,7219206,855799042,512469952,1200319970,-1365136626,-196703890,1851524651,1845010859,-1409923447,728627873,1080948742,-125924949,-1577433460,-1363438264,-2053117842,1252087558,1857993621,-1987734296,1183644798,-1962450946,-1955701738,-1905397194,-1402023906,-13444982,-1582825682,-1115179129,-1014513529,-477641081,-142085497,797446791,-1383571064,-336557226,-672440614,-1512772700,1017958891,872772843,-1425820671,-1381307984,126605451,36554539,-964449536,-1531647228,-1948742739,1221012231,80118698]},{"sector":8,"length":512,"data":[-964450837,-1952388350,-1950209081,-993817393,-1515848578,2122951589,-1896248324,-1413467197,-947157525,-812924373,2126824332,-1515870724,-58816085,-1014040181,-1414807501,-1375770391,1311492235,-1993902346,-947128762,-1980479957,1460073598,1039695556,124911744,-2146646906,-1429961046,-213270478,-125924950,921241439,116858879,16805416,1183516276,1855890424,-1017256565,-1904424216,644769798,276223,-1557741517,-2085093372,-2049644414,1852315275,728614561,1025471682,57806848,1343225784,-754667182,868781024,102665152,494987374,-805087142,-1008149781,1745260165,110044782,-1494745084,1105773436,42461186,-1593813016,44264902,10283118,-1593491480,-1064407594,-402285848,-1591343700,-1073020924,-694030219,203328365,281248622,690405518,637544990,184550561,703690176,695075358,-1586625506,-660378154,255754349,57999421,-1585227032,-1365021242,-1070349459,-1586642269,-1064407594,238979878,378217984,-1070399472,3056422,-1993995541,1157834245,147292930,-227149253,3318054,2794278,1876262,2925350,-1325396219,32035588,644727302,184550561,-1011124800,-1107295557,283639824,1228288,-1996485912,-2089958370,678949115,1842782659,-1960394610,1418405436,638380802,52829577,275907165,990431107,653293050,184550561,-1008896576,-385863240,1307084033,205422593,57999421,-402551576,-1070398934,1842742926,3056422,1849165454,3056422,862836385,650153673,3817091,1360294912,1841706751]}]],[[{"sector":1,"length":512,"data":[-402652737,1172832631,-972648702,641816941,184550561,198866368,869365193,-1790008384,-946511709,479549958,50587648,-1550496095,-1511494142,66250755,-2096885528,9789502,-2034756236,-2077693822,-1941884744,309722,1845894795,857467368,-1788959808,-1788737849,1688403972,1443284885,-1593828203,-1064407594,1841706751,82378547,748758529,104539648,74645550,3055910,-1987954456,-392866786,401081339,1048782341,1962934318,90105861,-337113877,98494470,-402196504,-806877630,65988614,-402322968,110036313,-1591317050,-1073020924,-303519627,1614709510,57933973,-1903969816,644732422,-1560268127,1048604102,1946172686,-1789877999,-1789782389,1846025867,-394938136,-617405034,1846025863,-2139783448,4001086,484967284,255754272,57999421,-1585350935,-1365021242,-694041747,650153581,1318539,-1591857685,-661754410,538251,-1929132413,210371199,-213843787,-1592888154,-1073020924,-1205869451,2129199240,-1993990269,652184327,1449531,-1591292811,-1073020924,-1581008011,-1064407594,283705139,113714688,48,303398,-361381877,378218179,-771030992,-1477942924,651725684,83892897,-266010609,198325247,638612735,1838731,637553640,1969803,1392526312,1534393576,-2105612282,-1938503960,-16054333,-1993992075,637547038,-402645855,-1993998288,637547550,-402645343,-1993998300,637548062,-402644831,-1993998312,-1962919906,-378674626,-1048349406,-253656305,-763117309,252035840,-754667264]},{"sector":2,"length":512,"data":[-1009253400,-1905404255,650130368,637549219,637549731,1207975587,238979878,378217984,82509844,113738667,-126485957,303398,-747257845,1852311182,205425446,1032529408,238945062,100607488,973537062,109888256,-1591306906,-1960443850,637537854,1054347,637543656,3933697,3711270,272534310,378217984,250085394,100738560,-2094661570,14910,-1547449227,-1070361240,552334899,4031270,-14281867,251602437,1448214586,283641431,1583286016,1963140698,147292932,-596248005,1435182787,-338296060,1745260141,210445973,41716518,-1788475762,-478029429,52826111,637539358,-1040775282,24387584,12711744,-148933504,1947205825,12711738,638350656,1195523,17155878,640215808,1064451,-1040772117,141901824,205390630,1032529408,238945062,1032005120,638088703,-14285313,-2097137146,-231012154,-1581019275,-1064407594,647319201,855648931,1049306816,-1960443890,-352317418,1032005136,638022911,52823433,-947715515,1979333384,512435948,-2094661572,11838,-1557777548,251985966,-754667264,130253800,-338492495,104579843,58103136,647323811,637537953,788011,-338569077,-1023153199,855646213,748889819,984320,-388823887,-1790048767,1042154278,-773598976,1511916003,-2095484267,-258647490,-1591340425,-1073020924,1709769588,-1790008833,-1016216925,-385848392,45842673,1097216,-1996483352,-1097507810,182976530,-1004631808,-251952275,-1581044105,-1064407594,641501990]},{"sector":3,"length":512,"data":[-352168821,1032005138,638153983,52829577,275907165,990431107,652899834,184550561,-1009289792,-385863240,110002337,-1960415688,637538366,312673675,1841602926,-1325396219,65590020,-1553071610,-1581027836,1927845210,1478396286,-1789091435,-1988204312,-1955720162,-1083300810,-118984922,-2105362411,-395368774,649729662,1906567279,-1586624349,252024154,-1039104,512479795,518614536,916530802,512435712,-1960443854,637537854,1054347,-1591340053,-1960443848,637547550,1064587,303467302,1711705088,-1788304491,-1788076407,-164373709,-1960433685,-49915,1856181364,1780386197,1448235925,367527511,1583286016,52845402,52822621,-947714955,1979333384,643154901,50621835,11004398,-1788344690,647081254,-1389980755,-1834146158,-1788475762,-410912373,52826111,637539390,-1040775794,578060288,1073791479,52825717,637538846,512427779,1223388674,270402342,117646848,1845632651,-1040762133,661995520,775848742,326369280,805356023,-1014297228,-338564143,537248515,638905088,794115,38208294,639601446,925187,637993766,2760331,-1788199228,-1040713213,242552832,536920567,369299317,-1037331090,-139769784,1948254401,1001100034,-385649419,-1017249966,3318054,-1789649269,238979878,378217984,317390864,3449126,1846812299,272534310,378217984,-164429806,-2094652437,376766269,102651734,38636326,-1908569306,-389837096,520557737,52846175,-947715467,1979333384,-1591295015]},{"sector":4,"length":512,"data":[-1960443850,637544990,933515,269912870,638774016,-1962919775,644743710,1064587,303467302,-1788304640,418117171,-12745946,1448217460,283641431,1583286016,1963140698,147292932,-462030277,227223235,72715046,1049351683,636196182,-1788344690,325414,639071264,50742411,83306177,41160704,109985856,-1951689384,-964449341,1978809096,1446939095,-1591295083,1755512886,870003605,1049306870,-1960443890,-352317418,1032005144,1376482559,-402237610,1594294288,52845150,-947714955,1979333384,-1960393756,1435182605,-1948908796,-1910313989,647325702,536872183,-1960438668,-1056766396,325414,1073902608,1409715776,-964449387,1978809096,-1008759846,1580662558,1681325973,1647771541,109971093,857707860,1070446847,-1413467221,-1420252328,-1426051423,-788513631,245476320,201730816,-773271296,-1420252184,855640249,-1951665216,-1207956426,-1381285939,-2085758837,225771515,925187,-75292789,50492671,-1413248040,1001046066,1962937910,520560346,3055910,-1788738047,-1788602749,1017193984,31510784,-2087362042,9790486,2793766,-1013621085,-1789651317,739150630,136219392,345500014,378257459,-1960405676,-1962922482,-378665442,-1070394210,-1789651317,1007586086,-1948135168,-378665442,1053037706,-617386478,-1591768794,-1993960098,-1788829435,38111526,244040332,512464220,1323855368,338880532,-1986703197,-1902816746,647321606,1735,1520523853,984469,-388823887,566054,1845626371]},{"sector":5,"length":512,"data":[-1789124981,-1324366973,65786628,634948547,78708767,-1557733165,-1014824958,-754601697,512304875,1520500740,1846677,-388896559,434982,93674657,78708751,100919507,512454146,-1014796758,-754667249,69075947,1612579694,-1579668587,-1023185364,-4717709,178464511,1848549632,57918211,654311352,-1593832285,-1557762556,715194382,279127662,113714688,1835032,302434086,-1912602624,644769798,802443,38112038,641567526,933379,-1912274138,647321606,637539491,1443527,-953810944,6662,-1950184448,-1953146354,-378664930,109974365,-13406568,1855340091,-1977209228,130515717,443876668,1859567191,-15629336,-395458506,1609039901,-939094272,109993837,-1977192808,1088696837,-856950781,1859566275,-1199850263,-692452096,299690094,-395389254,1956867350,-388461675,-771026196,-264428171,-1558153217,-1259825808,1914603897,-1950338155,1880001491,1948158869,1836902549,-1787552117,-1200803095,-1242890195,2023931955,-1787190635,-1567262046,2124584315,-1786797419,-946500446,-1500154362,1852350825,1358031080,-1556086771,223909244,-2136768512,-1896467563,999649798,1939173430,-1465113050,740324609,1008497280,-1978108126,654258904,1220936621,781550755,-1817602049,-1786497397,-1194005690,1290338351,-493624577,-493624685,-845946221,-493548141,-493580653,-476847469,-493598573,-493452141,848691859,2067693718,57933973,-2137891352,9797438,-1075313804,-20752238,647329798,1963211948,2015791696]},{"sector":6,"length":512,"data":[1015096981,209014595,41713958,74794308,-1787156856,1128038694,638350675,1157790849,-2012973753,647330342,1094990977,-2128212875,1096024700,646448245,-2128177794,1968391228,2088838668,1967604994,2116454404,65286805,-2076820496,-1013157227,-1787230466,-1951586746,-1968429360,982874406,1972730374,2066122770,-1144878187,-1360499026,1913032312,974187413,1972731398,2133231626,1477837205,1175024238,-2076820666,-1010732395,-385863240,-1406730649,1702215690,104508454,1567987067,637718760,1347815085,1946344424,94431265,1362907509,-1960424075,2106271285,93201922,54296614,-1108853387,89712642,2145911787,1009808645,640447827,1946682870,2106271270,1879477761,1853268334,1074104102,643306869,1577207177,909854215,-1535994492,3389635,-1191315735,1049296947,110007686,-1595304590,39839865,1843942918,-399281150,544539767,477450556,641043238,637697419,-2144991858,208995132,-402501656,74777834,1534350140,-1962920776,-1902803394,-376081914,-1981253277,-396528896,-394984385,1064588092,-529182148,268826150,-1960440460,-1960443043,-1910111875,653126407,52692362,1015021753,-1190693888,20758528,1460058741,-1024933748,185032687,1569400513,1435182595,638970625,1963066870,-1940453729,-274208576,-1960442017,-768409251,-1787412853,1873215361,92871284,-1996333687,109249621,1577489782,909854215,57906564,-1006682391,-385862216,1048640799,1963356022,1093975578,2009007902,-1176597649,-1494024186,2005732212]},{"sector":7,"length":512,"data":[2097053960,-102009535,-796152381,-1946157128,113689560,637572492,2064005804,639792533,-1786600531,1851539083,244054019,-836004476,109970974,-216043856,520560292,-1785985338,113689345,637572492,2064005804,638875029,-1786600531,1851539083,132708355,-2076820736,-1007193451,1448127782,-1072976602,-397407628,1213792242,317454453,-930436058,102690098,1857029774,514126623,-695525625,1967675486,-1007514667,-1785971072,645100544,618695340,1020408828,-1172999036,-1002696704,12193396,1959279648,805353991,1383451708,-14308314,-2113535229,653822869,-154629460,1047890369,1967178230,179054087,1174501824,-466441178,108642314,-527794396,-661935066,-1040793549,637695236,52320173,-1905370050,57585694,-1839259899,989859304,1922401334,951632782,-68032256,1963114998,2065578528,185234837,-1953137658,-345082338,2132687401,189429141,-1953136634,-345078242,-1948004071,65262027,-1601762343,-1533607063,-1566602391,-49815,1398217332,571472,-395395397,-1420266039,-1031034024,-1901373269,-1013616122,1547567902,-1340174738,521505134,3717315,-1980004631,647333430,-2009691732,65286805,-1976137232,106414997,-919348429,-1786112373,-1786233205,-1787689330,494205499,1191545382,359940156,108159292,41384508,-2008866772,-26249593,-339213624,-2000092449,-2005961186,-1989262322,999655486,-1017182214,-523122549,-402652667,-1047825091,-1411329720,-1410088909,7071939,-385874968,-397409432,1968702050,309254]},{"sector":8,"length":512,"data":[1349957097,1870007946,88146101,-1056767997,-394982168,512360481,589721156,39357724,638028582,-544522359,-1430244437,-210798914,-212379228,-1899798614,-1955698682,191757366,-1961986570,191757878,638285302,669323,1955276483,-1960393980,-2134702732,24001086,-1195179659,1659437058,1870052982,-2010805722,843466532,92939995,108159292,41384508,76029996,-922859961,-855713790,-620566667,1849958024,977174723,997523822,1847723766,1446737216,16377943,1497116277,-1377298315,-401494014,-1561853307,93202175,171871014,28436480,983700085,1243515246,1178503534,1208388718,-1017225362,-385875016,1465284077,1946273000,12183586,-694084236,650153581,2506379,1946255080,77669902,1975520000,243948,-394935063,1497104495,-2098720139,642872576,2506379,1963023080,5892324,594891068,641043238,637697419,-2144991858,812974908,1962958056,16050219,501793653,1968389122,1007348511,639202643,1964115446,4188179,-1960440203,417858941,-392006399,-471138281,-1953132383,-1989287394,32434183,-1567256672,1583312442,-1785748797,1850351241,1850097289,1850214028,1851137675,-1785717111,-2147365911,292436542,-1041758603,-21239551,-264860733,-1005589651,-2081945484,-1956088832,-1955705802,914951284,-167023028,110029173,915107432,518745600,56396326,1888288951,1139299844,1031036416,1852311182,268760614,-1960441739,-167050380,-1960386955,637536310,-1224516470,74484992,637832742,671371]}]],[[{"sector":1,"length":512,"data":[7465046,-1911655330,644769798,184972427,1323070966,-1007275069,92048166,5630038,638088286,1963984118,-1007285501,57969446,1850619529,1850738316,75270950,3532886,639136862,1963146368,1552623122,1960512266,1955276297,126756360,-1018437909,1852311182,1845245579,-931793397,1845376651,-1468664309,171871014,1142852096,488842862,39422758,477420299,-1972406600,-1234209258,2139963904,-1947170045,1957098442,529212937,-294266101,-1977171125,-1144847801,-694063242,-1239971219,-1064418816,138316582,63406848,-208942453,175417075,303398,-428490741,1504756552,136219430,-1976646912,1139618319,840403502,983581686,121253486,-637336204,-1018562590,1013856928,1007121412,839087107,1592509376,973486736,-1023314834,26236139,505630466,606414628,842414386,792282167,341067593,307630933,240651607,442107737,257627738,291311708,912201566,982862712,1970158086,-1877218557,-1181025349,-1959919592,1958885911,-498908410,-1979336971,-370920762,1397781357,1465274961,570881542,125124718,1843543691,-395993624,914948771,76246614,578076682,645017660,360069436,477249852,141974076,309485884,846690876,-352293400,11528218,11539947,439095787,556534316,-13444982,-13706493,-1566850921,1049325114,898199010,1594343475,1532582494,95994712,1929111808,-1682269254,-1669751659,-1682269254,-1658479467,-1657430735,-1656906439,-1656382143,-1654809256,-1653760663,-1652187776,-1651401798,-1682268779]},{"sector":2,"length":512,"data":[-1650614887,-1682269192,862942911,1006930633,1008955952,1007580729,604664927,1916878047,2002402325,-109033967,1206023231,92848638,-402470658,243849195,-318607498,1849962120,245963967,753423879,41180926,-1950154320,126567390,74592316,-176801476,1007146984,1007580229,-2145225426,494153468,1948908672,1874246424,1913355496,10401798,-1996444951,-1200728522,1122566150,175761522,-1230828174,-1206482577,15120495,-1996452119,-1200728522,652804103,8435826,-1995962648,1131394590,76204339,578103100,168069702,1007776960,1174893863,658244746,126412917,-387235517,1851143817,-385873736,1581019633,-1975118987,122873860,-395001846,-2009058234,-348044537,1965243585,1364411924,1493830376,-1980992677,-1200728522,-1024917497,-434206351,-1239512211,-1206941585,1967718534,21465616,-1550195662,378105782,381185976,1843045121,-1553057631,45116892,-2146586429,58011388,1178996656,1175367875,1174778051,1174646979,1175630019,1174712515,-2145931069,158609148,-58715728,-1341950679,-1018804720,1181629600,-2146193213,58015228,1178998448,1175761091,-2146914109,158613244,-58717520,-1341950659,-1018804724,1181630112,-2146848573,58015228,1178995632,1176023235,1175433411,1175498947,1175826627,977174723,393549166,1049319254,898330082,-18749362,-1955710302,-1989287362,-1017225419,-402648391,58001840,-1107289927,1386299772,66620270,-2017444415,1386423159,-217637266,-902394972,68479085,1946172544,59172879]},{"sector":3,"length":512,"data":[1859534464,-401837056,-370474467,8370371,-1200572183,-1293352830,-499217552,-1405777043,510967818,-143253444,570881614,712327278,2067530891,675087988,1176466730,1828934,116841963,1967156770,74246160,1049350517,898199010,-351960600,-1564258624,1015059854,-385649628,-398065107,1014104797,1485277998,1958742946,634424110,1015054335,151418155,-345102330,758939659,-789112459,1848116769,-2147425663,1848120867,-2142892427,-965465028,771879145,-1568626689,-385871432,-1108840419,24373250,-1962812183,-2089950658,37053,-396947596,-51904051,74735361,9473535,8435907,-1955597079,-2089950658,37053,-1912666252,-1427570544,8435713,-395322135,-1628962110,-499217663,-1992980115,-1200728522,-692453375,99149934,-692452432,95938670,50378832,-395389254,-1168636458,937979606,77260804,1843543691,-389859957,1021837888,1592283137,1049319425,-2046857758,-1073020784,-396948619,1952383359,-1869742332,501793536,18475010,-638856969,-402476568,544342505,1485277998,1958742946,2147427607,1848120971,1948990592,758939655,-755562891,-1309949405,-385931799,79168046,1859566080,-1341824536,1859566085,87025750,16247134,1912759272,1976699700,67124528,-264426638,-1557760001,837316138,1025405442,427270144,-395432797,292684324,1848378939,4000626,-1559857248,-1091998162,-19863296,1849704064,-165184256,40772102,-2048383372,-692365823,-88414098,-148496267,33564678,639464448,3016391]},{"sector":4,"length":512,"data":[-379650049,297271437,1858070784,-385839688,62418617,1857284352,-385838920,1307078317,2942977,-393187861,-1073020861,-1101653131,210398934,-1589514958,-125079982,-1069694717,-1559791737,-1527550382,2142815070,1853614336,184556264,1444246720,850196363,-1947204636,728650254,-1985678386,1584288318,1049319107,119434836,1044103219,359951954,-315486838,-1101573823,-1493995818,74733919,-420742909,-2134679992,2073398846,179048821,1006990528,-1007192707,1963069928,840231921,-1394570524,108314634,1965697341,-68631564,-1192463103,115933194,852636270,168070134,1007973568,169702439,1007252982,1025143931,343157288,1390865222,1510068712,-2118591115,1843128576,-320088330,-1901967802,607944853,1380331893,1509967080,-1014355598,1006698681,1955631114,33536288,-1869607876,28907380,-1877853184,1007580304,1955631124,-1877591032,855798928,-397258295,1499135837,74771722,74764810,-2081697534,-1983657718,-395422154,314507320,856100514,227157723,283372850,-692169151,1587999598,-117241996,-370457789,-1679244295,1446414592,977006,1859534464,-1023314944,-385875272,-617386683,1597768842,-551286156,460472636,393697852,-2021113018,-75272490,-1978895297,1915763716,1983462406,-1998853141,-1016146402,-1996466712,862869046,1006930651,1008563744,1008301098,1008039037,1007055457,738359162,-695760864,-2092743058,-579514373,1859553222,434684672,85357056,-763166705,-1190235648,-355401724,-85796655,24433163]},{"sector":5,"length":512,"data":[132695033,1446414592,83487086,-1073085302,540807028,742131830,993789044,-347733131,1090634731,1140933121,1178944518,21319241,1279591493,1157973331,1179206734,1224820225,1145456901,1225147973,1162104390,1179190598,22302799,21823820,21954894,89325906,1162104405,5636422,4231168,33024,33792,2097152,1,0,33280,-2013233024,262146,1048576,-1634165096,-1633771880,-1633182056,-1634165049,-1625579809,-1622630594,-1618174093,-1614242152,-1634165096,-1634164722,1843535499,-1727248501,285492993,-2135357865,-1949158656,-1922176970,119410815,1844059787,745861947,540820140,-492170638,1189629939,1049186048,196636246,1809312000,-529265348,863242812,-663437302,-562750916,669731406,-1497869743,-1176859543,-936677978,1843535499,-401973365,1499094434,-1956010306,-1982331938,191752734,850228672,512469696,1468624354,1959922444,38272781,1842087555,-837385471,914948205,2005757416,1446414608,-1009644690,1846165120,-1957464832,-2123505090,1955053823,-487620273,239438080,-1913484457,-402615619,-396427033,1166630066,-1836741366,138774784,-1995422323,1851171589,1166655539,71665922,-1996077687,1166543941,-1870296816,1843962624,-1989285213,-378674626,1991794004,1796466944,-385873480,1049324301,1569418722,1556867082,-1911661173,644782086,637749129,-1023060087,1846165120,-1957989120,997057086,1953358910,-1866628287,1081409536,-1956834328,-2065167779,-490241700,-499218176]},{"sector":6,"length":512,"data":[-16809619,-1960676204,1851171589,-1962654325,1157826133,13796108,-401973877,-1070375795,-1553078109,-571904534,179880796,1788602624,-385842760,1631349397,2050754162,539755127,256195,-2030040600,520494839,119456519,-930436436,-1527517902,-1316669,-352320280,-1408819482,1975519914,-622279686,321791,119461355,852003500,849671149,-1396462912,1193642534,-868562806,-863370634,82046258,41264883,-775699398,1940255721,-37510143,-117182205,-372158642,1319371123,-56233137,-434205757,1036190573,125203392,-1061436629,-1547500689,1354984934,179106443,-1946454592,-1949684786,460225,-395405637,1465411657,-1413467222,-1974883413,-225727807,-1017600781,-2115204267,1442882284,1451820631,516983806,1959922183,-25785538,179100467,1007449280,1022719068,-1946979026,200272862,-167283493,527728834,-24382581,-1439780785,-2143185730,-889319454,179046260,-335841856,178957557,-1963297344,266567902,-768408203,-1224691479,-1948004096,-2143180105,-294387652,1971373814,-27882671,593175272,-562741054,1946172544,1589546457,852636671,-1394570524,141869066,91503420,-236240214,989626446,-58717836,-1341885348,1447209564,-1392609653,1975519914,-1923981574,-385917290,-1037870369,-1133225408,-1098041109,-768344226,-527768526,1958742700,-347952636,989626613,-58717836,-1341885348,-1958565284,-25785377,-1073042772,977013876,1547437172,-74714507,-1232212245,2123104094,5224958,1958742700,-119363069,-1951743950]},{"sector":7,"length":512,"data":[1583286210,-1017256565,567099828,-919354372,45666867,-64893630,-919383982,12112435,-64893630,1371757144,-1030879657,-638060149,856678787,128644032,-1048356513,-253656305,-1910631965,-1261401126,-64893632,990212639,-1023314495,-385871688,-1910609807,-1150440418,2139095045,91553560,567099060,-75283460,535786772,-1957210429,-134575120,-1957539615,-1947994170,-137917480,1523092449,64160600,-1017225263,-1957341354,1961561065,-1663366302,-772339079,-1048325129,13861633,2040320523,-137300214,67026,-1962880381,872123377,-1109707831,-774832095,-835988527,74702619,-552350205,-774843915,-361411118,-149980771,-2083260463,-746389055,91856128,2040335851,-137300214,67026,1560334979,-1195155873,-957808578,607944807,-347732875,-1070362561,-561262029,-315487094,-2143622784,645073601,-268385545,-783211403,1389548000,-773795504,-773795374,-1056745006,1506874201,-763117309,1174894592,-214184213,-1007091337,-768360397,210427531,1919023488,552173571,-2143622784,192023233,-2145916544,343082689,-1257586304,-773795580,-32673070,183924173,-756332863,24638267,-472136711,1406874451,1071242379,1258296507,-2124677771,-2129707037,1526939643,508757699,1011949139,1007645696,1007842305,-1709870078,480314435,614077419,-350445310,37657100,99294369,-1593681766,123468828,621299595,-12746753,-1023314817,-385839944,503736041,-1705959853,487194633,-2147219460,113475644,508960339,760403,1543249263]},{"sector":8,"length":512,"data":[-1947204857,-14350265,-523157377,1381172931,1394529419,508698192,825942,1526472065,113444699,41418579,1394489343,1107388826,123468829,-1073084733,508762996,-1469794221,1207324686,125075465,-1593688422,-1710888164,480313892,1394496347,1107363738,-1990460387,39291143,175366865,108380683,-385856328,-1022925223,0,-2147483648,1392918526,1394496286,1577059994,123468829,508757699,-1705828781,492699722,-1962451972,38216455,1074022179,-1195179660,518586444,1946303590,508757540,1012080211,1007383552,-1710328828,490864640,194645227,-350409216,7903749,1543249198,37536519,1392922996,1394496286,594804796,796132412,1107328666,123468829,-788117621,187986912,38210311,1963214603,5027882,-1704606487,487653477,-1962451972,-2135293369,-1710298241,487653680,-1962451972,-256244153,1002578815,-1009355582,-1425276898,-1434080559,-1425692042,-1432966489,-1436898641,-1434670484,-1442403618,-1427330330,43589,1095763515,1145391939,121438208,1196380752,5062994,1225666304,1162629197,1414415693,1330205761,849957710,1414416649,1095127621,17731,1314194503,21577,1313409331,1381123412,5525589,1091050240,1280267074,4543573,1158162432,1380275288,4997454,1174874880,1096241743,-1452129198,1398080585,-1449962683,1095501108,4998466,1191456000,5198927,1225142528,1313426510,581548869,1397048330,1129665108,-1303228588,1124802985,1414745679,1413698898,21071,1230374731]}]],[[{"sector":1,"length":512,"data":[1096111186,950618188,1245859590,-1017887931,1392722089,-1448455099,1229325353,-1446165172,1313407536,55443456,5394264,1392722432,-1451601336,1213399873,889192524,1146047747,52668906,810961220,1308833450,-1449178039,1330512695,973078612,928141058,1090722986,-1452981170,1230439501,-1437448108,1094911007,-1443543725,1414727235,1196312914,104770047,1329808722,17490,1179583033,85830171,1095914049,547962457,1313817349,-1438755757,1498678341,-1441512112,1096155978,631901778,1464812550,-1655745458,1157899946,-2025499828,1426409641,1279874126,104835547,1162888530,-1436396479,1329857060,88910370,1279871063,1185595973,-934325246,1174612650,-1430760881,1213465668,-1440133563,1179189806,137144974,1129207110,1313818964,154970699,1129271888,1381319749,665507653,1145980163,85895928,1229407554,222199886,24444989,2144963,-2097125400,1049168071,109876626,378115476,1726518678,-1785552639,-1325396219,32035588,-395459066,-2051538523,1662314626,971559475,-1740732160,-1710846827,149586837,-1784932727,-2147348504,37555518,-488107918,222199810,57803581,-402446616,-1024981992,81455108,-1587349016,-962357868,512476013,-1014075962,728615073,722826947,-1173260606,-12714000,-1324977393,-1948200188,-1006685232,-385875528,1379689225,-1030992523,-1977251290,1007625412,-163809535,242487492,57510694,25004838,4623910,20767467,-1960441996,-352316882,780871173,52822032,-1960443027,-12779450]},{"sector":2,"length":512,"data":[638350591,-1912519421,35032002,-1909527698,642837442,37488010,-1960425100,637537326,637627651,933515,8258342,1023773478,796196863,38142758,706120486,-1841394944,-1774306411,-1207537003,2129199105,-1899656094,-1416260602,-1951677813,-980702266,-1841395285,-1010463083,203328294,1066083840,1979711363,-1960393983,-1960443321,637537822,-1960443645,-1962923498,999658046,1922405950,112646,-1939719959,-1811509563,-1031033963,1353496747,-1411871573,-1785577847,1438893454,1842749067,-1343700082,512435967,-1960443894,1105842447,-1960426685,1962281783,642139685,-1958345590,344598270,-100403662,1917992007,2001943559,-18946045,637791875,-167037813,-790439051,69110566,1977289472,516119991,-1785577787,989857982,-2096728841,48761071,1438850816,1465314443,-544484813,-763109885,-773140224,-119307301,1468729227,39074050,74582903,91423801,-351746429,39139824,74910578,91620665,-351735933,2012691440,309528,495393931,-964486007,46629634,-276565278,1995914000,-25282108,1988561267,-6297346,972977803,108461174,-386105717,-443809903,-890715299,-1157161470,1072189440,46131202,-1593656088,-1064407594,708741926,244000256,-1960443860,-2097149922,800719811,1189611088,-1591343360,-1073020924,119463029,1845640843,1841565323,-1957677893,2877651,1845771915,1848249995,-1957676613,1829075,91105953,78708751,100919507,-125080060,1069271347,-388789424,-1329397759,39512096,-488061045]},{"sector":3,"length":512,"data":[508757505,1346681607,855753192,-1962679333,-1014281255,-388896559,-388896559,-1024932093,-389838079,1220215327,27322448,-1293368949,1347205889,1526830568,260711943,-1947669198,-400510975,-377290224,-150375662,-400510759,-102628860,-628422882,-402558488,-389873167,119407085,-397389893,-488111774,-1811509759,573077,-1342056216,31123488,-796152538,1592306982,-398807039,-1031077428,-1191095064,548405255,-503201816,-1951586567,112010968,669565070,909838081,-932014702,1842782659,-4603762,378218239,-1960443880,-352317890,1972053565,-97530,-234671756,-2095215834,661979131,38046502,91537723,770230411,642928896,-485995381,1543710224,1418405380,180781830,-503290904,-2091296005,992348359,1962938430,77670076,1975520000,1055441827,20703233,503730515,1349696263,117485032,136219430,63144704,-1342135832,19327016,52843355,-2097146338,-1880619069,119408128,-397376325,637993094,532107,-402406525,-85458822,861624576,-1977170963,-1073068540,-1073084552,-342345100,-1971379192,76162784,-318025658,-689437835,1388481280,-402651462,-1336278904,13559840,2793766,-1342155544,12773434,1256768395,-444381952,-670869501,-1427586238,11003904,-1883568354,1894480,1842742926,205425446,915088896,52822030,76228149,38077222,-1023403800,-1977200301,-339146225,-1977203959,8054791,-176829954,113466201,1381061463,-1185943365,-796195836,-1785184572,-1031093549,-1428746460,-193606146]},{"sector":4,"length":512,"data":[-1785184631,1599822170,1364443911,-661957038,-1107294791,473649126,-964491917,737665538,-2029291823,-400510774,-102629332,800115335,472629502,470022771,-402471293,-287178728,1532582494,-256158781,-686873521,-1341658277,190477,1460013744,-1785184572,-1740731990,-1673643115,1929863061,1397801729,244011601,333682072,-1785198905,378208256,-1070361190,1845894795,1526053352,-1017619623,1841706751,-400509208,1994916445,260171779,-1895470360,-1016216058,1458342741,63408983,-1519162,-1953029098,-16731938,1956063254,-202684925,28368779,-1758980353,-347143308,2012691443,639041290,995051159,970487543,158596734,-385976697,1988886462,-59360770,2123040374,-5183236,-1017256565,-1189193898,-503906295,-257822581,-1898410347,-201378880,1583292324,-1185458493,-963969015,-259268105,-503855221,-1910572917,-392826850,1579090198,1008634719,512630423,1465292578,-422448341,-405669077,92734603,1599997065,50381599,33751297,1444807427,-164409257,-1962931783,-1948125245,-266432776,-1073063787,-142146955,-1968096581,119801925,-527771858,604521610,987180551,1999532740,1962949680,105155348,1913013563,-1960675552,1161495620,-350850556,1963015192,71600906,2130986299,-1962218744,-351978748,-352210936,167817218,526278592,509040323,-150991687,-1578071071,-661744054,-13385586,1595909363,1465303902,-1962931015,-1948125242,-137917456,519605217,-1773527410,520114664,512450398,508270354,-1759764850,-215263402]},{"sector":5,"length":512,"data":[-422451503,-405669077,76277713,76088711,-1021354146,1347900958,213513779,-138179840,-1896313887,1486244382,41271306,1150023559,138754824,41025968,-1073086288,-1021354401,92669066,1195771016,-1262225694,-64893630,-1195179662,1927872528,-971076772,-1581019539,-1020564024,-1037363850,-256241290,268385791,78710387,-796139309,-1195114701,1256783873,252006748,13796096,-788527943,-489106966,-971600902,-938570899,1003105133,17201089,1500366342,112835,1398546665,-1962518703,-1950183720,-425525,-1190955505,-783216641,-773729823,868234209,1504441343,-1056718708,-651444082,1594350967,-1950131367,-1992293308,-503902132,-1729624206,240421375,8108227,-1101276951,163157474,-2103296,-1181350210,-689438714,-1776763137,-402651975,1019150285,833942,-1090534168,146380384,-4462592,-1181317954,-1293418491,-1768505601,-402650183,-1463877719,178582,-1090543384,79271610,-6821888,-1181299522,-1897398264,-1774149121,571712,-1787633161,-1979767064,-1583932394,378246914,146380548,-2112976640,-2084502634,216531154,-13375233,-1769990519,-946412895,26668550,-768393216,-1979779352,-1583944682,113743604,104192,-388877504,378142435,1319212798,-1779129450,-1198118237,77791248,-167327850,-788528491,-388877344,378142403,213423618,-1774542080,-1775499577,-523173886,-1394027981,941001214,1095830,-946446685,43405318,870371584,-23729966,-1772349815,1692979763,570854654,-1981099625,-1902691818]},{"sector":6,"length":512,"data":[-1080655866,-1279393784,8436048,-1329355277,136219393,868823918,-30414638,-1986670941,-1953116138,-2082960438,-779931453,-1774288128,108265622,-2096053373,512295121,243897832,-492726806,-232327275,332923797,-98661942,-66156139,-1779129963,-1778112777,-904669181,-1777590647,-1777463671,-141162847,60167718,-1983245352,-1986650594,-1583996914,653760024,-670853592,512346643,243897904,715232818,975632278,332923798,1109297610,1141803414,-1774411370,-1773394185,-904669181,-1772872055,-1772745079,-141144415,60186150,-1983245352,-1986632162,-1583978482,653760096,-670853520,512346643,243897976,503551610,236164866,512333572,243897994,-2069784948,-1809385578,332923798,-1675720246,-1643214442,-1768513130,-1767495945,-904669181,-1766973815,-1766846839,-141121375,60209190,-1983245352,-1986609122,-1583955442,653760186,-670853430,512346643,243898066,-861825324,-601426026,332923798,-165770806,-133265002,-1762614890,-1761597705,-904669181,-1763434871,-1763307895,-16729661,125293067,2013200445,1355320066,-1949988014,-255006505,-1054123942,-788473213,-773205527,65655273,197823481,-1009617464,1224887435,-1336858762,136219392,139234158,-402238325,-1957036887,-503902140,285623297,-1957361580,2089488492,-5904370,-490814627,-3348331,-392825666,113180614,-4134762,-392816450,717160378,-4921194,-392807234,1321140142,-5707626,-392798018,-2067857502,-6494058,-392774978,-859897962,-7280490,-392761154]},{"sector":7,"length":512,"data":[-557908086,-8066922,-1962889021,-1955723234,-1953116146,-392835562,1048837169,1946195606,-871971066,-1191178091,-628359120,-392847688,1048834062,1946195606,1095947,-759637364,-268638059,-1325435928,136219392,2047773550,2014743446,-67901290,-1953037663,1435960342,-1962932035,-392789954,-1767768333,-1734131562,-1768505706,-1577118232,-1556048216,-1463904598,-16193386,1448199005,-964485545,653079043,-1958343542,1100406846,-1763701247,-1763176959,-1763043709,168230656,-1912190569,529984518,-1070422797,520560298,-1017553313,1614118,436615974,643265536,1457803,-1977202197,1946369029,1963211780,-1777819342,-1776933129,178385035,512630423,76125716,54889254,637682825,-1996143221,-1960901564,80118775,-31768,-6942714,848693254,1300899565,-947699449,653853447,1588795,1388556402,-1771921066,-1771034889,581038219,512630422,1143707246,105154820,1778843423,1644625814,-1017487722,1654740562,1881601942,-1578071146,378246690,-1910598146,-1986630114,344523844,1166747167,651725570,1443331,1465274707,-947652469,653079047,-1958277750,-1953017290,-1953017826,513204246,-1762910578,-1494001839,309614943,1928477507,-337956092,-8617970,1189704704,1015085035,535393536,-164376013,494197515,135674690,855929494,-2095911982,-1910634810,999691294,-394977508,-1756097021,1499357002,512630363,1418303086,1516117762,1381061571,-1776639658,-1775753481,-768354165,139299622,-1960426781,1963140660,1837835780]},{"sector":8,"length":512,"data":[180847366,639536670,92939926,2025851463,149657603,-527794396,1191545382,1946157117,-1993373429,-2092825993,-268237629,534438469,-1776151039,-1776675327,1532582494,915089091,-1960443890,-1157623786,-230948865,-1960433037,-8190340,52196607,1015228153,638874879,1946311995,-294133,-1293417612,-19601154,-2080411928,-756348730,1962933123,-23074557,-1771396669,-1772210549,1545506334,205818262,-1777295073,-1778108789,35556894,138709398,-1760911073,-1583918941,1386452704,-1777294953,-392735581,-1960378874,637540366,1707579,2028471156,512435967,-1960443862,184561166,637892041,2887307,1543933446,1581157270,-1778474602,-1413248085,-1951678413,244034497,237737534,165910288,60182177,-342422522,-22986492,-1047811179,1645120427,82004374,65750855,-1951678413,1049340865,-947677692,33984002,-1274892138,244034308,378246936,-903112938,48480307,-1951677813,244034497,-481716728,-347650300,-1413467389,-1951678069,513170998,-1772347762,-1961997173,-1424028604,128696715,205425446,868233984,361440969,1962932867,512435734,-637337586,638028582,50484619,1334519490,113912578,-661925493,-1774567797,-1774713202,-1760162165,-1760293333,65257523,-1416162143,1202438539,-18361,-1413248085,128696971,-326412861,1443032195,-1758027433,654198409,-372174965,378218049,1128464422,188189478,-1960282890,63407102,-1977162702,1207436037,-1756875205,1048579702,1946261318,1995586308,270002179,187992870]}]],[[{"sector":1,"length":512,"data":[-489130506,-1780178483,-1757673941,-1712782473,973486848,-1207535977,-1360461701,868780884,-13433152,-1759377778,1988865011,906923006,-473027689,-963948254,-150992711,519605217,-1759764850,520373643,-1759902165,-125050671,1185662603,-941694375,26682886,671532977,-944684393,-392748026,1010207664,-465663081,803753877,470191862,439782295,-1948349545,731245582,-1960647730,-772068354,512630503,93034274,1958742815,573197,-125048841,-1962621053,-498684986,1583286238,-1017256565,1431393879,654216019,638670219,-401652341,-259322957,-2145481186,572310,-661920777,212929139,-645078317,-628174589,1334511498,534378243,1006633661,-1122798333,-1293418493,-2084009110,-165280575,41156869,106643777,-1779431794,-1080695647,-403242999,-1014237045,-1413051477,866894219,-980702272,117376938,117413348,1499305452,868441950,-1756847168,88357158,958806644,880022340,-967354797,26692102,323783462,91523878,-2093743322,914949318,-24406200,839108483,92940004,-397936637,-141881683,-502675837,1532911589,243992259,-481716764,-268005825,638869,-1779681653,-1780206037,1569400390,109970946,146314880,-1947994368,1359770584,-489485135,-788282996,643416718,1965899648,2005476868,-947714292,-773700087,1048822535,1963038518,1185006337,-1760648298,-1550434655,28874514,906377984,-385650025,-1185939257,-503906296,-1910581109,-1953031138,2005598847,1465261830,204901158,1963140608,1049306625,52822030]},{"sector":2,"length":512,"data":[-1910614212,-1953031138,1200292943,522160898,-1583922013,653760062,-125069748,-1936331615,1243516634,-1996125802,1300825181,-1960420602,1141057031,138774786,38767398,38546214,-165258402,41158660,1300875571,-2454006,-392827850,113704661,-1593796790,1017353700,-1779654249,194452131,-402426661,-1070334398,89951014,225762059,60180129,-1550430714,887658306,-324969987,515976085,-1773527410,520242569,-1774319873,-1773795585,820592728,236358655,1175358359,1319192982,63439766,1993423824,11004163,-1555512693,-1031039170,-1760426453,110575779,725701201,-1077769270,109969412,1202427676,-85835705,-1759115577,113750470,-1308322008,-1759246649,915124653,1049335570,-397437378,1499132842,-1759770994,79610507,2009152256,1015752213,-1757528533,-405674031,-1425881213,1074054787,-1031018517,103536779,653760320,-125069748,-1912289405,-1953084922,-886357551,990219046,991589059,722892738,-778617338,-1948200480,512630512,1149998876,-1993990398,214401797,-955786526,26686982,1141294848,-1023410025,-141148511,-1953084378,651310072,184835211,-1957530405,63341555,-1977160398,1190200076,41714470,115635200,1459915558,-1912601921,-1953030650,-225030642,1341116847,-1906325621,-1416214010,-1951678413,-21451838,-1070355457,-1962431573,60182038,-6928874,-6930938,-342473210,977177510,512630422,1435080248,-1950146812,-476670450,109971016,197105316,1166681600,1962949642,-1960421582,15621,-1912200076]},{"sector":3,"length":512,"data":[-1147750906,-470351870,-1960380277,768773,-125049865,2105550343,41222154,-1977165589,643762757,-2096478840,-1042150457,244040455,-108816746,-385649408,-1912209221,-1080646650,46006283,1032005120,641496064,-1912207989,-1164541946,-487129080,1946221187,268483343,-138245296,63147235,1489211096,-1960388469,109969735,-1993959754,46564100,-6903135,127314438,637896998,101074315,-1769994610,-150992710,16417762,12259188,-1031057392,-1014176777,-1014048765,651725656,117524363,105220390,-502544509,179852,-1767240053,103932745,-1766455666,117738278,1358957503,-1768550773,105199910,-947714700,-1577721333,-1054108010,109971008,-1993959754,-2091317500,-807271738,915129095,178361860,512630423,76125698,915088927,2045247496,-1778474505,-2087239005,-315489338,51153446,1273513713,-1773755906,-1583936349,279156286,-1779654249,-1550379869,-459172070,-1757633643,1252180019,-1758813545,-963163997,26691078,169773862,772196096,-1593835369,816027296,-94771049,-1768538493,103969792,-1765276018,-150993736,-1953055706,775848920,141820055,647442593,99288969,509734,-1758551808,38242598,-1765538049,-1766062337,-1779654393,-1550379357,-459172070,-1757633643,-1757018426,512435712,113704998,38702,169753382,-1593216000,816027296,-101586793,-1768538493,104690688,-1764096370,-150992712,-1953051098,650130392,-1993996407,1048773191,1946195758,-1758420727,71797030,-953809173,1095,647442081]},{"sector":4,"length":512,"data":[-16365687,-6892026,127323654,-1550455647,117348120,-1578592470,-78255877,112835,-1550455645,279156222,-1776114794,-1550432605,2091095658,-1769036906,-1550409565,-995912014,-1764318314,-1550391133,-89942262,1260816534,1141294999,-2013265769,-1953026778,-1905404386,112835,-1550371165,446928356,-1777818730,-1550434653,-2036099486,-1768381546,-1550407005,-828139844,-1763662954,647426723,540299,637781891,-134019702,876513607,-27858793,-532760,647364102,269963,125098763,-184096685,-391582885,585694580,-1090052355,-71789154,1048816466,1946195606,34191365,146277355,-392058110,-367621226,77206,-1426007421,-1582579061,-1421306102,-1953037663,-1181285354,-235470840,-1769692757,-1780309589,-1589164117,1202427470,1007027015,413248406,111258518,1319218070,1621207958,-1070355562,1048619947,1946261319,-1431590139,-1582626581,-1330942462,-1582585342,-2085906704,9868862,-1085859980,-1767795246,-1465799786,-947672170,-1766153980,-1764974165,171754411,-58710923,-1341885184,-2142049522,74777340,1240142000,1963261056,-351293436,117211200,363869557,205273067,-58708619,-1341885183,-2144670974,74777340,569051312,1963326592,-352014332,117211160,179307637,-58716181,-1341885171,1392962310,-682502725,-1008455077,141934603,74830347,-1023409736,-1960387961,1004177183,1953380374,178841605,509022323,-628164469,1703544202,-396419327,650379120,637949323,-402373237,-259324801,173378342,138775334]},{"sector":5,"length":512,"data":[503608040,-1979949371,1200162423,1166747144,55019778,-987839713,-1960379298,1200161349,1200113667,516103941,108888870,855930112,-1962677258,1590030966,1166747388,55019778,520517513,654311355,-2096728693,57999614,-1962888727,63407102,-1977162702,1207436037,641007398,1392671872,637930357,-695532401,-351582835,1435182600,1166747143,66447365,-1996189914,-2144929210,1951597180,1166747181,-294143,-1019534220,1344151671,-1896593781,-1147760098,-470351867,130472075,1200183360,55035649,-14745600,642839622,1392671872,-1960442251,82512205,55413542,513215137,-196703408,-1768808818,-150993477,-1948742685,1200224838,1200183299,197145089,-1342016055,520587392,-196673701,-1946973208,1962281969,-11540221,-1960436029,-1960441259,1692928069,650676995,425347,-164428683,1988821995,-1767857678,-1767495945,-1532897141,-2082959722,158597625,1204227977,-352321278,509705,38258432,2005467136,38177540,637945737,-1995422325,1204160583,-1960900598,-6905802,-6907898,513187846,654073541,-1996339829,2005467975,-4514042,1972053759,16679686,-1226243211,-2080470272,-466484281,50694694,-14268424,2088773172,192238338,76490246,1166923403,638118667,638014859,-402307701,-1893334333,-96040700,2088773200,477451010,272465958,113643644,-1560176851,1122539307,755418630,-1960443753,82512205,55413542,513215137,-196703408,-1768808818,-150993477,-1948742685,1200224838,1200183299,197145089]},{"sector":6,"length":512,"data":[-1342016055,100017792,639464464,490883,1275855988,1208746731,537261606,1108083316,1074132518,1091306100,1528760200,-386644225,-242486700,57996811,-46359,-1013502458,-1756690746,29681665,650284038,-386382453,642779182,637685131,637814155,-402238069,-165216934,1946285381,-351948284,-1006521854,-970523554,-1993986809,-2010774705,-1993996969,-953809337,268439111,21481254,643301376,117983113,1435182787,1166747142,30795780,-1977159541,1371847429,1589976791,108497404,38112038,520308617,-466477373,-682502725,-1979943227,-1960442300,1149829701,1166747139,138709252,105220902,638207113,-1995946613,-1960440764,1149831749,516103950,-939755835,394820,71666470,638076041,-1996071541,-1960441252,1149831237,1166747148,239372554,38112038,1006847113,-1341885180,1008528134,-166890238,74727623,267060656,199952816,1950402550,-352014332,-2012696574,1472405252,240487206,205884198,1963349563,71711493,552085364,-129595135,-2145481186,572310,-661920777,212929139,-645078317,-628174589,520898443,-336181623,-129579174,1183514634,-163149326,139299622,415728449,-24381557,839108483,92940004,508033027,-1760944501,-253564845,-1896593781,-1097428450,-420020219,-1990659957,-1960443580,1149830213,312835,1963063683,-2147170813,-196673761,-964429941,1606148616,-59325154,640222406,-1996339829,-1960443068,1149830213,1166747144,172263686,138775334,638207113,-1995815541,1183517764]},{"sector":7,"length":512,"data":[105155064,-1980348789,-1021375420,-1756676480,-971803391,9915142,-1758839168,-2144635647,1083657230,113648875,503682892,-956539195,1204229639,-956301311,262983,1073890955,-2096740471,1586038979,639508476,637949323,-402373237,-1605305498,1590007628,587712252,83911,88573952,38112038,1476609929,520505225,1975520195,1976699656,112644,-2024779069,529213146,373021319,91516472,1929768424,-1957210076,-628220168,41713702,638219603,2081439104,-351227900,-1979348478,1595867493,1526375400,-1064546109,91541563,79987544,1431328963,-326898549,1364612879,2088773203,209015554,272465958,1187382908,300617969,-1957212154,-1030880130,-2012902874,1482682694,75401991,-2147054074,572310,-661920777,212929139,-1047731501,-1030827773,-1979824500,-1977156514,130190343,57982986,637573609,1392671872,-2036263052,-196703850,-1986621791,1302458950,-2046426729,-1912209002,-247035242,-1960910710,1371847627,-1897888041,-1999008806,20717351,-1897396875,1012788218,-402295550,1424751297,91554620,-335833368,1963342923,-23795707,272384747,-1075313291,1010428924,1007186952,1006924804,-402295545,686554371,91556156,-335905816,1963736095,-45619195,222041835,238814324,149423477,1007283197,-402295537,15465861,1600018779,1482548619,-1023097725,134608422,1183516277,-196703750,-1756690746,873892609,189107607,-1979804952,650377286,1963081088,-1960393983,637537310,637623555,637687691,52830091]},{"sector":8,"length":512,"data":[637537822,-12777589,-1023314433,-2081649835,1392905708,1573135952,-967309809,184611654,-972786472,1476522822,1187448667,50331892,-62486078,2793766,855525001,100017856,-1342016248,-163149816,-1986590047,1048640070,1946261293,-298915837,40143398,604342822,1963211839,-129579253,1187381280,1961597175,963969084,32734848,113642101,-402548916,535560006,519587527,708739072,74776983,49835651,326992678,-972524544,26692614,-1325452824,-163182064,-336116088,-209813449,-972393215,93801478,-335606296,-129579233,1048576031,1963038506,-126975228,2105746946,141819923,-1756625210,-17242107,1175064752,-146372362,-812924020,-1779431794,-1080695647,-403242999,1183578251,1048620026,1963038509,-1758748411,1183515627,1183558648,1183558652,1183493118,110013175,916559644,573335,-125048841,-1416150367,-1582579317,-1951689236,-5508026,-1953024506,-3961095,-6953978,-1953108986,-1581031963,1183421924,-469303298,-335085675,-1760910955,-386120055,1452010792,-163148808,-1979904280,-1912145338,-1953107962,163577414,-1947732224,-62485512,-96040021,-1413379157,-1968454773,128643398,1963343043,-1009634557,24379964,-1957474109,63144922,-1977162702,1138230023,-1757143493,-768408459,1460020203,470191697,-1758027369,146786443,-1947732224,149914616,39664422,-1960380448,1599669333,-1017619705,1448235344,-2080470185,-1363278905,653079120,-1494020726,-1031004299,93799585,-2014838773,109970946,146445952]}]],[[{"sector":1,"length":512,"data":[-1948059904,-1759862280,172329254,1516134151,1438865497,-326898549,1381061391,-1977199017,-58719644,1999794768,-4181453,-392758730,1918436542,-247019996,1166747141,-129595134,-1996125402,-617351610,-1761997253,-1960441739,-1960442275,-286784435,11725310,1968307328,-247019963,1166747142,-129595134,-1996125402,-617351610,-823604941,-96039938,1996496957,9103619,-2147054074,573334,-125048841,212929139,-1047731501,-1030827773,654067339,117523849,-58693397,-396659374,1584530587,-1757135229,-1962052608,647447582,2081439616,-15407101,1460062347,-1476031962,638415888,637754763,637631883,-320141426,-1140936984,1607946725,1245609991,41222551,1183320076,651856881,-1996012149,-1960380346,1183384901,-29103882,-58717973,-402426029,1600060633,-1956947622,1371758053,-1927391402,-315489163,1091340838,-1762509173,-1762521599,-1761997311,-33124858,-1527570538,1595868958,1371756894,-1927391402,179897461,-230782208,-233963114,-99745386,109971094,-216033538,520560292,-1017553313,100787250,-964454940,76162563,100778238,-293366048,-569966845,-1960393834,637540406,1717819,-1960432012,838866494,1166681828,650182151,1912814976,1031808530,-15960316,26664454,-6889466,93718534,-134021113,-646775237,512435907,992346136,1962940958,1364443905,238455590,378217984,-4653040,1945254911,2089494060,-31994,-83681676,-12811482,-1960438156,100730949,-1960405478,-1053097403,117376628,-930376094]},{"sector":2,"length":512,"data":[-351746429,-1017423408,37584934,1405288821,-1960422831,637537310,637623555,52830091,637537822,1962884995,-402542509,117440310,-1960405442,-92073643,638612736,1024411019,125108224,326992678,-1960414208,-1919470570,28379973,100688616,-1004122029,1476792157,1532549131,638219271,1963460086,-469303548,1569400469,1960512261,58779651,-1017423526,1913555793,186704790,184841664,504919250,538873430,972436375,956658948,175374932,-502741373,1495228146,1284228089,71600902,-1994432776,1503087886,2088773315,175461122,272465958,280298620,372968427,74815284,24626747,-1030991165,1526703592,-1957300621,1464881900,-2091691690,-2144992020,1968374396,1031808522,-1257997296,-1258099952,-1770872576,-1757936069,28837490,1103096064,-150992710,-1980199966,-1945701818,537300674,-62485609,-1413313621,-1761339765,-1147731295,-201916408,-1070355648,117376939,2123077234,-2132528388,125108477,-1979348442,-1979520024,1370733509,33948119,68584343,-544538473,20759946,-1960436363,-1960442281,844170311,-11933495,173509414,138906406,1509900008,1006724841,1008694274,-15174397,647403526,688003,-2094659723,1946159231,-1442382071,-385619050,-4521822,1972053759,16679686,887686005,-263796991,1191116800,-390057232,-24379994,839108483,92940004,1363671043,641007398,1392671872,-2144987019,92016701,-1243065420,-1893333503,-1915319548,28379973,-1960441109,-1960442027,-919468731,654229224,643368079]},{"sector":3,"length":512,"data":[1392671872,-1960439692,-75300539,990344447,-16549949,-661917626,41713702,637957459,-351701621,1972053508,1979058947,109971081,2123077408,-263812110,105220390,-2046426873,10611094,74712636,1349849148,1946286464,-226587870,101238659,-1759508850,-1414807501,-1962431573,1913061371,33981334,377686167,637572868,637949323,1359234443,-905197429,-919468684,654193384,-2096607861,41156857,-346487829,-569507504,1240160662,141822012,74712124,292882236,106400550,71797542,-389467567,-346423805,1963932716,1468737064,1200301582,-27903220,1178278773,639006204,1074284427,-1769601535,537300486,-228684905,105351462,79987463,1600018779,-1017256565,642995974,637689227,-1910096501,629810695,-2147000485,1064438268,-1073080713,-1977217676,-466484155,-234487488,-399840362,636222457,1997274240,1958742544,-234454265,367725206,-335803160,268206096,158666103,91537418,535347250,-104597252,106125251,-1476031962,638415888,637754763,637631883,-320141426,611778876,-1960441996,-352316898,512435717,52822032,-1960443043,-49913,52826996,378208581,116092418,21349414,-336018804,1527249153,1364443999,-58698153,2002285136,-11737064,28332402,654031336,637687179,-919468661,-335740184,1375502398,28316533,654025192,637687179,-919468661,-335746328,1392279590,1894259061,-1340312833,-75175935,123046694,88443686,-857159374,-2146898948,58151932,1593577960,-1017423521,-1960421801]},{"sector":4,"length":512,"data":[1105842447,-1960426685,1962281783,-2080470241,-466484281,50694694,-1977202696,914948708,1911068466,881534719,-512362997,1600050914,76228291,-1773257077,-1030953007,-1759639922,-1912239834,653669058,184841355,-2095680266,-1977220154,1190265620,41714470,-1543168,-342475258,-459160606,-502922859,-435799147,-1560055147,144807398,101056918,168180630,-1560055146,446797322,403046806,470170518,-1560055146,1050777116,1007026582,1074150294,-1560055146,1654756928,1611006358,1678130070,-1560055146,-2036230556,-2079981162,-2012857450,-1560055146,-1734240632,-1777991274,-1710882410,-1767202410,-1767373311,-1767111167,26655905,999733766,1922481670,-1765891325,26660513,999738374,1922486278,-1764711677,26665121,-2087254522,9898006,-1763572165,-492633230,-1762483818,-1762654719,-1762392517,-190643342,-1070349418,-1550457693,446928392,-1774279786,-1550425437,-1734109562,-1767201898,-1550402397,-526149938,-1762483306,-1898410813,-1194183744,753402880,504793569,-768407913,-1931412760,-1953030138,-1177406526,-235470840,127350947,-1631600589,23378325,113748723,16815874,-1550383965,144938758,-1756913001,1842749067,117425038,117413454,117413562,-2115463476,1048782591,1946157102,1191626245,-1960443497,-402651082,-964429394,652489219,-268237686,875989318,-26613609,639535910,-30611456,-386290712,-1914111517,512435966,-620036092,1923198581,571798,252043767,-754667264,538348520,-1982856297,-2089957866,9868862]},{"sector":5,"length":512,"data":[-1070397323,-1550402909,12818124,0,118904662,-1174613461,-1510801404,-773795411,-1410805294,1583328146,-326412853,637820612,-16220287,-1003653761,-2128214946,-2147481985,1589910901,1065559556,-1005292288,-2094660514,1962934911,73319434,75465510,-1207602176,48955393,15450163,311901,-2081649835,1465260780,175555870,-1696039283,480313344,-1928956219,10155134,521969920,-1914145139,1183511678,-28954098,855525000,1183380038,-263812338,1039949451,712212479,2147482497,-1019537805,1317670003,-229734146,-1812963703,-619972729,854279799,1183577995,-263812612,-1979824501,1183576646,-62506000,1183521909,-28951566,1187452020,-1207959310,12255232,47360,-373292870,-1959395068,1552627204,1284191746,1418409476,15919366,1077789483,-1998094592,-1959336378,1569404421,1300968962,1435186692,-414792186,-428965888,-2011595768,-997529786,-544545910,-846530166,-695539062,1853882550,-411236122,132540032,-355397516,-607004207,1590745297,-431030553,-13897611,949888,53879157,1544762884,1276327426,1410545156,-781683962,-774254118,-791096869,1191176030,-2141656080,906097270,456524843,456524380,456524876,410191444,32667264,-772287753,-789064713,-169386250,-552351981,-686567661,167788734,1311013110,1724913268,-774843929,332517843,-2081392174,1979793646,-1878201360,15746759,-230242816,-803214592,-954996890,-820781293,91477779,1191172817,-260144656,510885887,15761027,2126782324]},{"sector":6,"length":512,"data":[-1817445366,-1834249813,-263812181,1175118033,-1412902414,1187452651,-343932944,-263796987,-1070923776,-930359157,-756297589,-443851169,707165,-1326675115,1996443648,175570700,-16222465,-401734026,-899809758,-1957363704,1342288108,-15960321,1996425846,108461832,-32970738,576093,-2081649835,1465260268,175555870,-1696039283,480313344,-1928956219,10155134,521969920,821972618,1586229838,-263812100,1937768253,-294609,995718015,-1828621629,309641227,-30555389,-351571393,-4222859,-2147435905,-13957653,721420474,-1948742720,23980488,16547459,-1927934860,-397350842,-1072956077,1122697844,638213828,-16226431,-230230145,158597375,638213828,554881,22276480,15761027,-1927934860,-397347770,-1072956125,317391476,-1954545729,1586230342,-129070090,-369469813,12189975,2147467200,1183422955,-1946211344,-151548977,1954608966,-397505786,-152406389,1954605894,-196214001,334919187,-146344193,1325495424,1183570731,-328796172,-233584637,-1962879101,-1072957370,1727469428,331875304,14124018,-134723957,-268178842,-746325485,-196703488,65955575,-2080762896,1183514835,-328796170,-99356669,-1962880125,-1072956858,1727466100,334496744,13861882,-1957246677,-163148815,65955575,-2082860040,1183514833,1958743032,-328796393,-636225533,-1962880637,1727526982,332923886,14058442,200951435,-148605760,-133961114,-779888109,14058240,-134592885,-670831514,-696006125,-96040192,65955575]},{"sector":7,"length":512,"data":[-1947069496,-1956735018,-770969474,-783348872,-774843930,-774778413,367448530,-746389504,13730560,1929433731,1205522691,2147483521,2112422770,-990409730,-1409545602,-1416516717,-778654830,-230290720,1605093585,1575324510,1426065610,-326898549,-950577624,64582,175555870,-1697087859,480313344,-1928956219,10151038,521969920,853689994,1183379014,-327775238,-2116008309,1937768446,2147433769,-167037325,-1073017228,-33214860,1925589823,-1874728171,-1098907718,-1072988160,-4583051,-1073693057,-768931349,-12716501,737113215,-1948742720,29747656,638213828,-16226431,-96012417,158597375,638213828,554881,29223296,737691273,-564753463,1005221515,721647602,1183531478,368506844,-854458367,-1979756920,-1957628346,1586226246,-1961761818,1177151574,-631367208,433870361,-220012938,-1981352098,-1819083706,-670832905,1183566355,65468392,13796296,1727501970,-2084174870,1579876562,-632415272,467420699,1586093654,-632387112,-1948498295,-151524746,737605521,-1038878254,-802436589,435443337,1585509966,-1957691137,1586226246,-1961761818,1177151574,-664921604,433739289,-220013450,-1830357154,65468307,-1949690920,-419960762,-763115517,-141127168,-972821914,721474179,1310456926,-632939560,-1982048741,1317665886,-632911400,-135629173,-151547402,335139371,-1983245374,1308750406,-162131468,-1761651184,-1830398325,-471310709,-62510837,433610265,-169682346,-1819089161,-670832905,1183566355,65468394]},{"sector":8,"length":512,"data":[13796289,469524011,1444665414,-60913190,-1948760439,-167516042,-2081786229,74645718,300669575,-791551023,-151530799,-772343917,-791096853,-17954,-779423349,-789064713,368434934,1578303488,-196209678,318141971,-355401898,-556724877,-607004207,-556738351,737691391,334889727,333386695,-2131291185,1451950290,-1107004168,-2126348288,1920991226,-31397629,2147482241,401146738,176080126,-1416385540,-1416189039,182505874,-925763002,-1956749397,147480037,-326413056,-987867306,2126776950,138709766,139823910,-523117781,-489563184,-930357296,786680331,1031790394,-1036307844,829893234,637944971,1963345211,71600925,71645990,1149965429,1161504258,-1962183422,87762436,-1070922635,158798571,158718730,-335544392,1977289223,112887,-350240757,1566465792,1426065610,509013131,-1962510651,1418396740,3965702,2088963957,158662658,91586472,1946273014,-2134900198,-763166508,-787451136,-2567718,-4519868,140256127,-1340968893,-1982125312,39618844,-1996209015,-350288300,-1161811193,-403996672,80371038,-326413056,1443556483,1992629847,-159478518,96012054,-1510736896,1183651359,-401714954,1586233221,-788483586,-774778653,-294421,-2128382849,2126545091,-294609,-1977451264,1183579518,-788822277,-773205789,108971227,-1416385540,1586108651,-1209806595,-339727361,-16729112,-504643541,-1070867669,1583340523,-899816053,-1957363704,509040364,-1962510651,62259524,873132066,145228917]}]],[[{"sector":1,"length":512,"data":[67444340,723088128,56365531,268786705,208865116,-1089977089,2082701311,191907592,80148516,21268736,-1995445473,39618844,-956015479,-2147482044,1583345387,313949,-2081649835,1465256684,175555870,385253005,375047,530969596,-163148522,-1981280688,-146371585,-1946583413,1451948878,-27358211,2147476353,2147482497,-1014936204,1115603968,134216577,-489665155,-623842351,-209008886,-271458421,-623781679,-607004207,-657330223,-640558383,1725029329,-788523778,-774319633,-774254118,108971227,-1416385540,-1416451183,12198379,-2096108800,-355368990,-897324335,-1174148128,1725038560,735760894,-1948677175,1607658433,1575324510,1426065610,1465314443,175555836,637831974,721573003,-773664266,47918046,-2144176930,578093054,-109057149,-225781040,-393554806,2126774449,-1413469434,-1834249813,-16411733,-1413084353,-661969685,-604513782,-348127045,197823447,-2096204600,-355434517,-770523133,-347355016,-1073628169,1583333611,576093,1458342741,1992629847,108971018,721835147,-773664320,2106457560,92874248,-355269199,-92184204,1148454911,-360640333,93455359,187056127,1418439429,266764293,1284240138,22842115,11543690,-741220143,-758001199,-741220143,-758001199,-741220143,-758001199,-1416516718,-1416451181,-1873286369,-2096735094,1544228835,39586564,12196875,-1280347072,-1968444656,-477952420,73141007,184704011,-1174047460,-1762934783,-2147134325,1284181990,22842115,78652554]},{"sector":2,"length":512,"data":[-456079106,-774777903,-193342957,366672,84616764,11557035,1583324907,576093,1458342741,1992629847,-1962636534,1284178524,106203908,48927,310170123,-922016385,-620027531,-1073013387,-164947595,-755548693,-738733577,-2081040137,-779943725,13796096,-1107295809,-771030976,-779679115,-2087466105,-219475730,55446392,333124544,2043810761,-20545035,199676223,-993078793,-1409546626,-1416516717,-1416189038,-899850657,-1957363704,509040364,-1089833275,2082701311,-17858296,1073709887,-16054145,-768929923,12190699,-1950340224,-339178536,106203977,-1962652533,76218972,1999695747,-1950119152,734694361,281510866,-410782850,1960834831,281510670,-640554287,-657335343,-151683249,1954548036,-134862063,-137234478,-170330157,-837558765,2126829075,-1817445370,-1834249813,149914539,1566465823,1426065610,-326898549,142016264,369522431,1358448269,-10295282,-1711651189,1979471419,-27903221,-1953364363,99350598,12238891,1575324544,1426064586,-326898549,142016264,369522431,1358448269,-13703154,-1946663285,1317796438,-28439556,-4717196,-1949266945,80371173,-326413056,-1962349437,1183386182,205949944,-1711651191,-1979951479,-1927872938,-11470778,1996425334,1877478918,1575324670,1426065610,-326898549,172395272,-1946663287,1183386694,-1983894534,1183448134,1183651582,1996443896,108461832,-29300722,-899816053,-1957363704,-1000909076,-1960441218,182135573,-1962379822,-1949594637,639036371]},{"sector":3,"length":512,"data":[637695371,-1979429493,-2131391746,-1031700250,-847233154,108971136,-1413469188,-1416189037,-1416451183,-899850657,-1957363704,509040364,-66423099,-1382830675,-1382896239,637045535,2116911103,169637439,-1978436124,-2132553497,-779943724,13796096,-1057091213,-4715147,721611775,-1949791296,-788075568,-773336606,108971226,-1834249813,1566465963,1426065610,-326898549,-1957210614,-167048586,41510260,-25043209,58069895,-1156347970,-568131577,-472783919,1374471041,-16615425,-163148489,-1751494634,-1323482623,-1074867453,-167030260,-288287372,1183648883,508565238,39361111,-947708767,-991433974,1342572102,385238669,176063312,-1710786304,480314435,1486489067,1595711746,1575324510,1426065098,-326898549,509040140,-66423099,-678691021,-544485493,-1980465527,1017968254,1013412400,744716089,-619997136,-922017419,-771021963,-1164501131,-487129078,-763103229,13730560,-1962880125,1174533702,-2117080076,1930218747,-405712852,-774778159,1364448209,-405711022,-774778159,-405679151,-774778159,56153041,-804038408,1489507160,-346499053,-163148869,-196738752,775722219,2122517365,91554038,-336179457,-125924987,-1980082551,1586101326,-193033218,74728764,913663292,-1968383181,1949121736,1948990497,1915763741,2000239644,-386170600,739406595,-472803280,-472788085,-637279279,-340994045,771326176,-604568971,-1927283965,1343682630,101074628,39504,12066114,2113420272,1358441229,101074628,1022544]},{"sector":4,"length":512,"data":[-1000923801,1342572102,1728057242,726177309,15403590,-443851169,576093,-2081649835,1465259244,-2088763208,2130710142,1226758,-1995553145,2126835270,-226588410,519325324,-1928300859,118945406,375292,-1960860173,-919863738,-774774575,638222020,-388952695,-12776844,-1173196161,48988159,2126828075,-1430246906,1944699531,1073687809,2097158973,2092960524,-330905848,1189806088,1292941968,-1265374473,-45708723,-453582640,-763116797,-2082932992,1451819218,-296338452,146718332,-1192088832,-264564736,-265613956,-163148464,261771286,1444767488,385238669,1022544,1720261991,2013680,738086442,-160003109,-1946648949,1452014150,284787708,-561311886,-125044853,-768884085,1947265411,-315927276,-657331503,-556671023,-573449263,-846466334,2123192157,-1861806346,-1767140437,-1196730197,-1851047938,-991142261,1988883070,655407366,179958263,-168390044,989197970,705327813,-1336917051,5892145,3663960,-1980998007,1183707774,-2142234890,2013330814,374347277,39504,1854086466,109920510,1344164464,-1593681766,-1950340324,-25263664,-1536016385,-385920279,-1970143231,190700,-157760118,808453617,-1979710744,1966095556,1962818308,1325378054,990542862,92204638,-1142308021,-261714946,-160104901,736035663,1031808734,991392565,1340568830,809336870,334230900,100542031,960331814,-29685386,-970526091,641937669,83398,15451019,-443851169,969309,-91491445,-201586914,-1948349532]},{"sector":5,"length":512,"data":[1448199127,-208992681,119470731,-56298499,-678699381,1499356935,-1224280125,-1023409918,45549303,-138215422,134395654,116900608,67109559,-286783372,-402426625,-138149918,177926,-2120432888,268613390,-1664901888,48695031,91553801,1509062,-418479872,-2130704126,6414,-389833471,468196319,-1767783676,9675522,45162123,43392649,-1560110175,-1281294187,43754242,243974955,-1053162827,-1047920010,-1593732189,-813038964,-360000973,-503842166,-1023163645,-1023243613,346210355,48896,503324089,-1426850809,1949504,-218103367,-18262,-1191174465,-1426915325,-1090480200,112787490,-1330908416,3063552,-218081351,587646890,-956293629,503530502,51749376,51775174,772195850,113640192,-951123917,218206470,-1962889206,-788351730,-1342129439,43531904,-1610255353,-1196031103,-1996321118,-1996321778,-1023244266,-1560095327,329450257,50963203,-1560081501,262341389,2269955,-1560271197,94568490,419874563,-973078528,197638,2361031,645988503,-268500297,-18237,503760464,1609105152,-17569790,-1591912472,-1767702381,9806082,-402482269,512435436,130417379,282650650,48569993,-2061071528,646562560,512426117,-1957494043,-956112098,-955642617,-1476359418,-1224280284,1946165250,-21829626,-967709861,-16771322,45549303,91557888,1509062,-1223786240,-972029950,16784646,1543409640,45549303,443875840,2373375,50607871,1528650216,50601608,605981019]},{"sector":6,"length":512,"data":[498526208,-672657685,-1224280305,1946173442,260368387,8726155,2367115,1979662208,-1896120053,-402296063,-387246405,-400844824,645995008,-9502695,-402548248,243335758,2097847,1912652264,2025477,-998979861,1392649403,2734930,-1191170630,-1578565624,19261693,-399798296,-488105124,1948269821,1946762249,854085637,512448512,-75431900,611516815,1962775272,-689418235,126375952,1963801667,473622537,-383871256,-1763173592,605980958,487778560,-148505111,6406,-2125171711,-16770778,-42800898,-1964488332,2400527,41075515,-1749362549,1004177152,-1978370854,1948269575,1946762251,1979661316,537380358,-1159140541,-634716009,915069575,-700841213,130421106,-889306359,-822212236,130477172,-1007490049,-399840280,2134645432,540804211,784025971,17286656,235374659,-1094823161,-402606815,173736159,1395750336,-1256002370,13756417,1975519835,-550058973,11883266,1526776552,343146812,91619132,401195403,3121406,57876540,-1007042510,208980222,52697275,651756505,-1007085685,-1677715736,-399867928,117316172,-2008874962,58039559,-352320792,710928534,861131125,371099867,244115456,-1979699525,1958742535,-1975300078,369524743,132645376,-922855424,-1017385099,1982080,-402426880,540811960,1441334130,-1336913906,240052318,-398457768,-1017639352,1640183,745865217,-343221453,1445514,-109042973,-972720637,5894,-2146553368,7742,-1981283468,-400510942]},{"sector":7,"length":512,"data":[-69071336,1445512,1375711683,1392520891,-1977198245,-1073068540,-393583756,616621440,1371668031,1125091923,74694954,1407961090,126505119,-1869610948,-847247755,-1876432096,1965082102,1086715422,1631329396,2101085810,539755127,1954596342,1916877837,2002729990,-2143278078,975626213,1175680260,1976172099,1537104065,-1342130855,-1342016257,39371521,-1245148479,-336526592,13101447,1640183,192151553,1648257,1323892734,-134515671,537048838,-402295808,-780850879,-2145265688,-16771266,113693556,-1140916201,512294912,512229386,1541931032,248965133,-398786373,1122504018,-418973940,1946159362,956349192,705502440,100711168,1275925736,543518313,285260544,1124927720,2124911,1962613480,419478285,1225586920,1919251310,266862708,-1156745989,-420995072,1684949260,7630437,1962607848,654359306,1410127080,-402627999,192215804,-399834949,1766198469,-402625428,259324669,-399507269,1851067573,1701080681,-150965138,537048838,-402295808,1987389581,33752224,-33549562,403061440,-1575652352,12255256,212658197,-1977545752,-1342130216,7333891,671371,141885195,2244155,175260788,788167,1049296897,1223164629,571378448,735195904,504198351,1359654919,2484311,510941535,792065,-401932101,-1041757086,203328288,-402280448,512426021,512294946,283705354,-1359807472,172102773,-134777390,537048838,-386960384,-378263555,1355006011,300417205,-989702144,-393606284]},{"sector":8,"length":512,"data":[367534256,1976434188,-75250695,1949347840,655407665,-1174399512,266863592,6601216,-1174402584,65536010,113152,-634666958,-1057094542,-637273877,809250820,-318110603,-838940812,-972303383,-16739834,973845480,-628424672,-1975258485,509495,-352014013,503760424,1397882880,-56825770,-967156898,-16769530,141917043,-402640992,-504689591,9578122,9569990,1019316736,-972786432,1019412487,-1978895102,-969277116,1157546867,1014164225,-1978501884,-969277116,126530420,1140654568,-352238338,1963146478,7071751,-1645479051,158678588,9578120,-349755416,1948400672,1948466188,1946237960,1963080708,4712454,-2130740503,302001982,1894365556,-1841397505,209059584,3139664,113703797,1476395154,1149948042,1912879617,-11409149,-2013182722,1124567575,-1963157016,-969277116,1021903731,24414975,-1962985751,-1073086140,1291720564,1065372417,-402427104,-1041760256,136316938,184528896,183026624,3270656,51709638,-396694784,-1511519408,1852392970,599392356,-18880253,-401915160,1699875476,1667329136,1769414757,-1174378380,-957807804,187295998,1326087144,1869182064,-1174375570,-1293417706,-1824617730,-385830143,-1226306938,-3872513,-956310808,-2147281658,-655883285,387901691,-1995786776,-956297186,6918,-485586176,952578,-720467200,34507010,51886848,-318099574,2129331061,126501776,343357756,275918892,179327128,1781495,-1547566246,1592459291,1008541416,-2147125929]}]],[[{"sector":1,"length":512,"data":[16979214,91575612,51711616,1968061444,353271813,1195115011,243272309,-2146958571,-553446106,91570748,51711616,1967930384,353271836,645931011,1375142677,51580555,3721,51449483,134793,1968389209,353271813,-838975485,1048806261,1996554267,453428998,-1962934016,-1610612194,279446293,512427124,-2136473600,682101876,512427125,512294928,988282896,-164990430,-2147281658,1676151924,352777728,41166851,251651307,41156635,-1957438229,-402649058,-396683614,1609111198,3336441,-166291992,-2147281658,116787060,1965556501,165603561,1393113576,1668440421,1953701992,1735289202,1953459744,1970234912,-385850258,378210596,-68681003,-484537591,167045378,619702355,116787828,1946288917,-1871713533,270437203,373352448,373090395,-166519832,33756422,-1930930059,476571657,1819305298,543515489,-835725016,2112041,-1190350104,-1360527356,-1155238620,-397344668,-497476018,251706353,-1190603288,-1763180540,-1156811484,-397344668,-497476042,-388895759,1592272016,464381961,108288316,1534348860,1508425451,-153884651,54857354,1398472885,52731985,-930430678,41111711,116837886,1963983637,270437124,1402886144,-1159199884,-1973855738,1958808261,54967046,-386514456,854071163,-402033372,645993480,-196583,51709686,1527018768,1539562119,-326412861,509040209,75416582,-66554171,520595187,1566137951,-1308620606,-1308431615,-571976961,141879316,-1000670325,-1945934538]},{"sector":2,"length":512,"data":[1959136192,210445885,1179007203,3288712,-1964506955,-1340705536,-964471295,-1947706620,529212928,1949615142,-338654692,80118552,1962962152,1459597320,-351998333,80118752,-806763541,7792887,-50071438,92992739,70919753,1048589428,1946157106,121251565,-92215179,-2029423615,8186078,-629804153,-317995778,-100464008,1925851983,-890551867,-1099773397,1207577409,-92225301,-402295807,-1233846186,-629814018,-1276584053,648276756,637695231,1461597439,-1006688536,41418534,641204006,637695231,350762239,-1031093249,-1259828328,1020365569,722435840,-812955654,47517227,-117632654,-100463125,48434827,57855787,-1007136959,1443256094,-521612921,-1010137090,-402454082,-1589442735,-1019543516,-1014300042,-1094515575,-336919797,-352121410,51363558,512483819,-571998174,-1962642681,-1996299490,-1107094754,-890765306,-183047937,-1593157911,295895074,310787,-1847005973,572427027,287213824,128903171,512427123,512295651,-303561965,308996340,-2129276183,268613430,169994496,-1961662488,-385677026,1575490526,186551059,332720387,-1961667608,-385676002,1239946186,253659923,331409667,-1961672728,-385674978,904401846,320768787,330098947,45549303,443809808,1124506856,512480139,300417028,512447232,166199302,-1019521024,-1007091086,-75381768,192348559,41343547,-397223285,-1017510243,1929364968,50063610,1509062,576514048,-1946157251,-352095016,1354993666,112322566,1049320199]},{"sector":3,"length":512,"data":[915079953,76153619,80107088,734956314,83592143,-2025782922,495577338,242416263,57985067,1577547081,-385578920,102692326,495511583,6503711,-873927299,1936278533,1969627243,-402625428,-605354556,-402639942,901511669,4161536,386320067,-639107072,-49887,24500363,-488090685,40888563,48434827,32883073,47779371,-2028041391,-622266112,-1956947965,-1962899690,-1983370294,721457166,486926538,488237212,-400395363,149422165,90236934,1869771333,1701978226,1852400737,1768300647,-402627220,1407780176,1958820853,-91516604,447743774,-234494980,1325495726,1138723663,51584649,512481927,512295047,512426769,-634716016,1441319819,12511475,-1946870295,-1962899690,721457182,-2016703526,1458174163,-1316861,-402393623,-1779953216,82503685,1852404304,1735289204,-1224280320,1946161154,319720204,287214339,1926839043,-719418616,-485586174,1003631106,-1975749671,-1023524089,645079100,222087934,154934900,548412533,-31767832,-1031122238,378142900,-218758397,1510014080,-806623115,686346802,-402099685,-1015799695,-1021282328,990053793,1912803590,320768780,1942174467,85887236,20834307,-1293408141,24963314,8855179,51451531,51453577,512350467,-746126573,44558584,51453579,-384724504,-389871673,-93126385,-386759448,512426318,512295047,-654114031,51584649,-401466904,-1528229916,283830279,-1961894936,-402643938,507184261,1550975761,51584571,1323849335]},{"sector":4,"length":512,"data":[503760626,512425984,-1779956975,51618048,2229817,1347955315,141869066,-972733208,183181319,9960321,-397736844,243336531,16777241,-1961845784,-402644450,-898431812,277801048,1967814,486983423,1072169216,316533245,1374208856,61663236,1330795077,1327512146,1864397941,1886593126,6644577,-972842007,-16769530,-2113938456,-50325210,258599167,1902278,572427009,281077760,-384655640,548467582,-11933360,-380632912,995295043,1946342686,-12088822,57936444,-1980699829,-402644450,-1749348557,203548672,130420085,-75414752,-244186737,-1996449861,1509958686,-1224280125,1962938370,-389810174,-1958542487,-402643946,-169343991,605981455,58976256,8855177,286690131,-633650685,51582603,-633665422,-1073085325,512429291,-634715375,8986249,-1017394293,-1962852120,-150959858,-2028565543,287214336,-1008185085,-389850640,116854684,1049271,250142068,287214577,49080323,2236041,2498187,51451531,1926904642,320244496,1943681795,572427016,639535360,320768768,286690051,1943677699,-880033023,1364448135,276359324,-396666467,512426201,512294946,512295697,837288723,99739918,2228997,2752550,131072,51577617,393220,51053321,51315469,1448170320,-1195654773,440591,-2127066322,1996590908,1913927942,1124335874,1592648259,-1017619623,-1464117158,964879,959941422,688420356,1929656596,-2096854782,-320732477,46735044,1962933123,-721016025]},{"sector":5,"length":512,"data":[-485586174,-720491774,1065559554,638940415,192284473,639052070,57870137,-2096658138,-437582653,-46742522,197233666,53376206,637719814,-108852085,-2094893825,359988985,75026955,225757243,158517307,-935605717,-21429389,210315007,-352074109,1405290454,-352095663,378245169,1380057827,735741778,1539541978,1926835024,8972547,-397225077,1499070519,-1991622309,1107485462,57985291,-370184216,55836482,378229721,1111622371,-634660217,1515965323,74762507,1257194984,-485062326,535380482,-652309505,-634696958,-205962638,1943612161,-2133261510,7742,-397201036,-1252326953,19720192,1314013527,977751625,568852512,18671861,1954112032,695412837,1717922848,-320339852,420380932,-1023409920,-385874968,1048637706,1962868766,-44046077,-990035991,-66930378,-1073042394,-389873291,887624691,-391371244,-24439761,-4603854,-1359807233,92939855,1952201807,1949252616,1946041092,1190628336,342354246,1659438878,22210580,704687592,1310730794,1917132911,1936879474,1970226720,-402627474,-1612119908,224061680,721482216,-1006447330,-2096969418,-847970306,-12811482,-2094610572,1576993916,-436269708,654301928,1962884227,637594548,503520395,-14286123,803734132,16181248,-1224280232,1962967042,4778003,1869771333,-402644878,-1561848822,2112019,-400796696,-437775169,420380947,-1023409920,5302355,-805202784,1342797032,1476473832,-143275778,50667145,1527723752,-401780247]},{"sector":6,"length":512,"data":[-2115502046,325576980,-384529688,-387443871,319875093,-385649944,1048578611,1979645982,322562322,1982080,-1828162560,-402485342,-1013770668,-719439029,-1979026942,1963801607,11987187,-719418429,1358555906,-1883351471,16365825,540847357,-12843404,154927732,1962734561,-561297919,-1017620130,1140841704,2365067,-1090488856,-745865065,-896805077,-5239581,-234414340,1241740718,512489451,-637337566,-484557885,1007448834,1124758797,171706250,977469813,-1595358272,386319881,12255232,-9639936,-401359896,12255460,-10426368,1007927273,1006990357,-1021676517,-385886232,707460914,1313415210,1381123412,1163153493,635961412,-282531329,41081403,1002689415,-2029882406,1464976339,48434827,-819201141,-661907338,-1325612914,1974399501,1006995981,1191277834,1610145675,1610203993,507233113,964035285,1023362954,1258386698,1023362954,1258779917,47521339,229644150,1962886968,507202313,-193527083,126486507,24447548,-719439037,-1962642686,-134032098,1405352387,1224839097,-242484853,1993026382,-49865202,28943603,1121159936,1543255528,-4631613,-1143763969,-634715761,-398324364,-1958020062,1138396107,-957589016,536973062,780845915,-118947437,-1090052599,855376358,-1949791260,26452208,-1073561346,-299112309,1364389419,-1979544415,855805710,-135623982,56252897,-1976695832,-27933950,-3544896,-402294711,65732707,1560342504,507412675,-445251840,190549,-1818180771,-390005247]},{"sector":7,"length":512,"data":[2018115495,-2133708181,197694,484981620,1007127049,1129935885,48438843,-1023520141,1640183,410320900,343214396,-1979665328,51808962,-20839933,-151849272,1490062050,50599482,24430706,419886923,1946158080,-152546527,2400765,41337659,-1992042357,1526730270,990430952,1929383454,12249467,378169579,-1259863292,990349832,1929569054,1947024473,540820309,154944371,548413557,43656842,1354956459,-1262319022,51808768,-2131560957,1482293500,786688736,1074055403,44318336,-2146667519,7742,-974650508,-2146768111,7742,-1444412556,1937783825,-1708750311,-1023497470,126524642,1962784488,507200267,-227147037,-437583125,-1341622207,-1708750304,-2136214782,7742,-829740172,-1962809666,-2012836099,-1908506622,57999106,-1161583117,-1951595558,-657396504,-319095950,-76293936,-486823019,15254509,236862216,-1967557632,-12827897,540813684,154937203,1074012532,44318336,-2146667519,7742,837288820,-2146768111,7742,367526772,-1341986031,-1708750304,-1092441342,-335577623,-402606092,-1749352329,420380928,-402652160,646053483,-327655,-1709885,-401890583,512428352,-1209466141,9943817,2367113,-401991703,-2126250843,1912705019,26131203,2367113,-972422167,5894,45561473,-960299007,5894,45561473,-960299006,5894,45561473,-2117926904,177974,914473732,134218423,322865859,303991296,-63903488,2236043,1929183208,148039877]},{"sector":8,"length":512,"data":[2236043,-386075672,-1175977979,1405351943,2236041,2033350,352765440,-672596224,352765449,-1017446400,2236043,1929180136,-1645718639,-806659320,990053793,1946342662,143583329,512477491,507183138,108266245,1107087336,512226539,-1801453534,973220865,-402426424,-1957430084,-402644450,-1628898124,-42342145,-393155749,922683480,512426018,-919403771,26480266,1843972606,-1661213956,-1644200728,1004434011,1929577758,-61151016,-1950100501,990053662,1946165790,568873973,-1041540344,-1962402840,855835934,-1810986295,48857089,-486788120,-391451653,-1801451516,-1966539263,-1949791512,-402455266,-838927332,512358773,512426757,233308194,-1979981060,-402644450,954730754,-706166006,26517511,-393557762,512477322,367526661,1976434428,85887481,572427011,-66656256,-806618142,50667147,47519371,57989691,-401997080,512427936,512295637,512294946,-1209531643,109242376,-1996449861,-385866722,-745863060,-840414646,990212859,-118262822,9943235,-402643805,611516392,2236041,-1157202200,-1111621481,161998884,922686067,113705099,616366219,-1895698968,-134182138,-393615165,1609060725,-1152814338,-2081947497,1259173096,-1879342781,-394562815,-193723593,2367113,-402126871,512485529,-1006764014,-402592792,233309700,572427015,-80812032,2236041,-402614341,283639969,420381182,-1023344640,-386023192,443869242,1258330043,605961027,-402164736,-193723669,-1662514965,-4986627]}]],[[{"sector":1,"length":512,"data":[-1360488981,-401020673,512431988,1038614562,616414975,1929971944,-401872888,-689372043,312525569,512446464,512294948,113639432,-402653154,512427676,-397213662,110100255,-1571291102,-1528299502,503760389,512491264,378208292,-634716152,-746076298,-83629998,1512048582,-193606914,-402233368,243336575,16777241,-1979909399,-402643938,2011694908,88271111,-1947744024,-402648546,512360476,-1006764014,-1947664590,572427257,-94705664,-2114237720,6414,-397163775,-1142421980,780537,-110303141,-401753112,1405292311,-83463,1542953192,168626119,512475971,-2125791196,1912641531,-12615436,512357492,-706150364,605981446,-75414784,-294518385,98494659,2760331,-1980155416,-1962925538,-385864674,1810431857,4188160,2367115,1913129192,-75414777,-193855089,2367113,-386796568,183042085,572427250,-101521408,-397197966,-1990523492,-973069794,7942,-402213400,48759936,-1961038855,1258300446,9960321,-1024928910,1274311175,9960321,-1226308238,1140093703,2367113,-1157215255,-185925481,-1946626840,605981635,-1329382656,-33393920,9282240,-75414709,829555087,2236043,1928946664,87484495,2236043,-1980147736,-973069794,7942,-402241048,-1749351404,605980928,123725824,-102118798,123201541,-2126265485,1912705019,-1925283827,-1133182976,1140356328,1055428331,-337153529,572427143,-113580032,-429659965,1961244904,-402018298,-389814156,-328007705,1342182048]},{"sector":2,"length":512,"data":[2367115,532105,1967814,79882240,2236043,-46733229,2236041,-16527640,-956265674,-1124037882,-11999196,9111183,2229903,1221208,-972836120,-16769530,1977997032,-81139453,2367115,530059,-1804150229,-397225081,130480393,-889300448,1843983477,59107332,-386201879,-1958479907,605981643,1993026304,-439097331,-117315503,-386276775,-389871951,-1749293627,605980928,86435840,-385887000,512427064,1397948450,1526224872,-634713998,1968950155,-379862238,770179860,572427012,-130095104,99156851,28920579,1007127040,1258452234,-390067647,-1578568307,215476235,-402549600,-437714478,1007127042,1007055904,1006793737,1592312831,-145233691,2365067,-746071493,-521620366,-401574657,57869845,-402588183,183040115,-369593594,512426229,99090466,-385649672,65536229,-92542725,585680107,-149165851,512476043,-667221980,-1041648525,-451942400,2367115,1977940200,10152195,9960321,-1847000203,-1998040320,-401902081,-1014237459,-667200677,-2125788046,1912641531,-9312248,-346295180,512318321,113639432,-402653154,312476496,922701824,512426018,-857210846,-1962052869,-1962925026,989857814,-118787110,2229903,1221208,1088986195,503760386,512491264,1486684168,1263545458,9960321,-1125644942,1509223415,9955713,1363348451,1509396712,-501217338,512312309,243335204,16777241,-2125784085,1929418747,-14227197,1979662208,-141957115,512355563,-2132279260]},{"sector":3,"length":512,"data":[62318839,-1023069976,1408726760,-1946796824,-667198525,-924259469,-387549698,-152307869,-385875272,28894534,-448730880,-385875016,-1259805382,2353401,45549303,91488288,1964091624,3598341,-1662390669,-107353863,-402650904,-76349400,-1963356439,838868238,85887981,125061379,1928761320,-1007033853,48438923,-159192893,512427123,497025763,-1811531264,-30968063,973085958,1946161670,42967780,48438843,1357383027,-2134640393,7742,-840432780,-151590903,-1007041544,-389510576,-346488919,1364414680,-1006217386,-1945961162,1959136192,119408203,116853424,262169,512427124,-1946353630,734759931,1090704654,1202647631,-1957168057,-485585925,-473224446,1336865283,-1960442023,-49916,-29552012,990409983,990147265,-2096598329,-420805690,638577656,-1576909686,-1866792284,-1700604158,1594358018,1482381662,-7739197,-138215053,268613382,-2146732800,7742,837288820,-145702135,67115270,991458560,1912803614,320748352,-2143653117,7742,1172833140,-1590105335,-1891827708,-1591970303,104529954,494011153,1023411873,292946319,989864609,1996690182,1003547404,-351898920,1926773735,507412678,57933824,1476974568,507412675,292814848,-1974119856,-390005051,-397806089,1516107574,29082456,-194713600,-385305624,-140768791,33560838,1343255808,-397258413,57868311,1526175464,-1655153831,-496244541,1929381608,-142219261,646010307,-16842727,1642113,113704962,142]},{"sector":4,"length":512,"data":[-1560079967,329318404,434947,2242187,-88681934,503355327,-1229063161,440591,-1959901883,926613598,108394208,48447369,1017966315,1010398221,-1341819393,-502273921,-3998038,-33518074,1011971278,-1966377719,51284674,-20905469,-167725880,717881073,-1330154292,-1023497473,812961534,-1427376158,-919396176,-1426862454,2367115,-2147402776,7998,2033350,-1609665025,-922877923,1181242,1576534898,-68421181,-386659352,1766650726,1948280174,1814065007,543649391,1380130861,1936615712,1702130277,1307050084,26196979,-386682648,552139253,39971071,-689387541,-210507549,419886915,1962934784,-1830239487,244011763,-903151474,2236043,1793590243,421954033,1509948672,1049303267,-1749155806,-66642432,1962884268,1964653819,-1440698366,854127330,-745847821,263765333,771753657,-1962903925,-1879342820,990869249,-1962772774,-397258278,1499132733,1162157193,-1587682846,295895044,434435,-1023208541,-8460205,48438923,-1158489624,-754777863,378209395,-396688679,378270594,-2098724139,-1075293197,572426738,-886351616,7923793,1509835752,-486500421,1124567561,-109772996,512358370,585826340,1357132432,-13440941,-225384357,2236041,-1748795045,605980928,452608,-385859096,-1749352948,-1827763712,-1965413631,67513027,975073795,706114241,46202561,-1576860666,-1818230012,-1563886079,-1528233965,1286901,67502787,50635267,1246918,-174987008,1982080,-1947634688]},{"sector":5,"length":512,"data":[-1593637602,-1019542827,94569846,-1176990973,507052033,57999394,1996531433,572406594,-402229760,-347999492,85887476,302433795,113639680,872349727,26517696,477282619,49906505,29038199,-237443072,103213137,-502824216,-108832264,-1023314175,989909737,1929388574,-225253368,-348038286,1978469106,-1810462123,717326849,-17790270,-29199674,-2146798130,-16771778,1693123445,-2134442352,846660350,779338282,704650656,-1574471994,512426013,-292945147,-229709742,-49616813,1976434267,85887476,-889300477,1185416,302942403,512475904,-1605827835,36438420,-1047867254,-930430422,-838991245,-487449624,85887483,4843523,2033350,-16193025,-1593849880,-922877923,104467828,125043092,57985278,-1962926686,-402455266,512356844,-1511521531,26517756,-1946446359,-1979675850,76164647,141836604,57984058,-101520570,486983363,1405288704,-2130667589,1946259451,-12615668,954729589,-347911182,9944046,1065353649,-1976666871,51808961,-20839933,-167725880,-20804878,180628168,1343648960,-235935663,-968664999,-1040253177,1945827712,1976106508,1136787178,1929050496,-195434299,704746400,-1962929402,-2130697186,67115278,-231282688,1648257,-1017380869,218169644,38469634,150784,1946157683,38273026,-16691200,196353,1358955081,38207490,151296,1962934903,42205186,-16681472,-16646399,-16646399,-16646399,-16646399,-16646399,22151170,33489407,50266623]},{"sector":6,"length":512,"pattern":0,"data":[134304512,-16646399,-16646399,-16646399,-16646399,-16646399,-16646399,-16646399,197328641,-1023475439,297928977,33489172,33489407,33489407,33489407,33489407,33489407,33489407,33489407,33489407,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19660800,331419073,29426881,96536257,398530753,314645185,297927617,68272659,-1039855166,297932817,51495442,-4063295,-1055452734,34718463,-1039461950,297930769,823247408,-1036906046,381760273,432082625,-1055321662,-1056456428,34325119,-1039463486,197268491,806076936,-1036973118,197276171,51102259,-1038742590,197269771,386646546,197328833,67879440,264374721,336577033,-4063295,-4063295,-1039396414,297928209,-1056128767,319537680,-1038413374,12721425,252691038,-1039790142,197268751,353092105]},{"sector":7,"length":512,"data":[0,0,417208221,425400565,372775300,373822980,386537095,363402971,380835251,389027524,76354975,296223885,195036301,419498922,193071992,194382732,412358087,444275351,456792830,188947277,420875046,184814447,186387223,231934753,256052624,200019049,220136589,435749241,366941651,76350605,76350605,123346417,129894318,472908401,167709179,473701430,368186859,246156966,1529626172,724184669,1027223341,2105223464,660349790,167714875,1094795585,1094795585,1701013836,1684370286,1952533792,1634300517,1344286316,1919381362,1344302433,1701867378,544830578,1109419631,1095520847,-953269170,-821912314,-1626945754,-953748478,654483718,-1559837145,2124480258,2133232131,16854275,-1610441821,646579068,-1767701635,50128898,1918975171,2004499462,-1021301758,771770600,1701990432,1008759667,1044599621,1501184,-109765828,1364414659,-11118766,1577229590,1532582495,1364443992,-11118766,1577230102,1532582495,1364414659,1347835730,44111615,1499094878,1438865499,1585966219,777034754,172165002,-402295616,-202637349,1476550279,1438866845,1585966219,781996034,172165002,1008039104,-402295936,132841700,604033000,-387419009,-471072849,1585928349,1354980610,623491923,1397753323,-64625733,-1073042394,-738261132,-335573272,-1017619470,-388877486,-1017511934,-1090103466,119407269,-1962929688,-2955017,-1017225465,-388877486,-1017511934,1381061456,102651734]},{"sector":8,"length":512,"data":[-661971186,-919339951,-1272550722,-20958713,454831040,-143457708,1410538499,80118530,74828030,74762507,1101672452,-579482370,74828043,1101672624,1487585331,-1054138618,1329663862,-133957749,-1952123907,-215961400,1595869098,1532582494,1111540568,-2036334577,655360001,65536000,6553600,655360,65536,1048576000,1946157732,-1543059960,1692991490,1048625921,1946223268,-1543059720,1273561346,-1539407871,-378273022,44304070,-1818210301,43688450,1048626008,1946288804,-1543059756,-1605369342,-1700658542,-2134681598,-16604354,410386352,119408158,60038798,-1054933210,1025443586,11599871,-922877324,-1023409883,1962825448,44278011,44238534,1979661567,503717407,-1809936889,520037891,520553157,209043466,44246664,-469106512,61866613,1489232946,1381322842,1476449256,108334396,43390602,171729131,-956429707,43791930,1038832758,175441980,43390522,-889304972,121390315,246679669,281935666,-1269678357,-1174457847,512360449,281871002,985857626,1979882262,-1776907743,986119682,1979882550,1389297173,-1979317832,-1962763714,-1962764786,-855467242,45373968,281935666,-661929123,24464195,57581763,-1073486798,-1073496061,-725601712,1967675402,1407642615,-397061551,112459836,1049231792,-292945254,43388554,43718283,41283130,281919538,1532582493,1381061571,1501269,-655685708,43098192,1476565666,-1868541757,43688450,62178136,281935666,1381061571,-858027]}]],[[{"sector":1,"length":512,"data":[-1979318088,-1962763714,-1693021494,1561382146,-1017423526,58761301,74841916,281874356,43386566,-1761163776,121372674,11751351,1946387134,59686432,376701500,41026620,-5045328,225706812,20719543,-1070463116,-2000813901,43557379,43589256,43728520,-1868364661,38046466,-1962765661,-1801255868,-854608894,-1744422384,-1610124286,-466484584,-379776819,1397817187,-729131694,369356934,45351574,281935666,1482381917,-1974316861,-855264048,-1017619935,134005992,1397801728,1465274961,1030406,1558710155,989626620,1128465525,431229163,1090789837,-1993983308,172443397,-2144045587,796154943,1949253504,96871978,1202997084,-360656758,519539520,567090950,638874143,1946172800,1031808526,1191408640,-970524693,-1975034875,-66459641,410132540,1459620537,103368895,-218364146,1952384942,-2010758393,-538228987,378406,1516134151,-1017619623,992750370,1530805564,-1910604707,-10032934,-1023314657,-1006238178,520320822,321692,-1021376611,116064690,48956082,-919350734,-1073085046,-2142824332,-193723654,41233980,1547489163,792462452,-919345547,-921967893,-771094668,-108327307,76162639,1195771272,-176832502,-1707100989,259588098,-1707035453,259588098,99287666,-117439768,1052004547,-1017634355,-851332016,163797025,151587081,151587081,151587081,151587081,151587081,151587081,151587081,-2012673783,134744072,134744072,134744072,1191708680,1195853639,1195853639,134744135]},{"sector":2,"length":512,"data":[134744072,858927408,808595760,875704880,825242933,858928688,842019120,134754864,134744072,319951120,269619472,336728592,286266645,319952400,303042832,134746640,151521288,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,101255433,1448235344,119428439,-1962728258,-167768002,268637446,378212212,-1119223806,995098623,-351438854,1477457,113920,1182005819,-466965252,1172555915,613076483,1946287232,839223824,1960814788,1006437128,-336431622,116807461,1967129365,352777740,175440899,-352289816,13690888,-1595407381,1596421120,-96731901,-1946565003,-352317410,352777817,125075459,54869632,17069312,-1962930130,-134213602,116801771,1950417685,4078375,-1977519360,788474397,701728758,1539339600,507202387,208797698,-14016630,-746064338,-1418375127,1050255,116842379,1947206421,270437124,1599993856,1482250846,1364247303,-836020654,-685043340,192399931,1957098492,-8617978,1593209857,-1017620134,788487562,701728758,973304848,17613760,1448300739,1006578428,991786225,-1407748870,1946238023,-12242190,-542577292,1569327733,-3348225,17621364,-1017619618,1431720784]},{"sector":3,"length":512,"data":[-247726294,-96771980,-1392747916,1946238023,-12242418,-542635660,-1545057163,-1153075713,-359978541,1001128118,772569073,1947149527,1959148277,1003522801,-1977649923,-684833019,-210497756,-277559750,326627643,33520768,-1036385164,-259387275,-247739157,1330054774,49004603,-712310516,1482382941,606741699,36316202,1157694731,1330923844,82,1429012666,1465314443,-975664098,76416630,-1912173522,44941100,100727784,60072735,84084641,614662295,47554816,-1962871576,-11204026,-1588568622,-654900523,-1593776920,-1758658524,50832128,-1106870588,-974650707,1595889664,-1161077410,-1477759672,-349351238,760658594,1840946667,-1164383443,-1813303921,918882078,1153893083,-1943946232,1807682124,1095939,648344572,57620165,-1190954049,-1527578599,113712902,60162773,47652492,48826055,512491566,-1348402453,-643610622,-139204606,-1009550872,48694983,-270008320,1508426707,119456724,57620165,-1190954049,-201588711,-400619868,-1326843206,516983763,-717321465,209584898,48434827,179359531,74730236,-109793550,103532427,-1950154027,-717356040,-1962467838,856338632,-230490670,-1946454866,1448199106,12499287,1604645884,29579614,16966406,16978182,16978694,16963846,16975110,16966918,16976134,16976646,16977158,-1006432506,-1945961162,1960709059,478881301,1962933123,-17071347,19268468,63341316,-2084312085,223550,1223164789,1048822775,1962935145,-145823739]},{"sector":4,"length":512,"data":[106374123,45956804,-16414170,1946380558,1360942610,57216651,-141877498,-1527514042,123608921,505332575,-1809936889,-14266365,-1912419042,1492159426,505332511,-1809936889,520037891,-1021377811,-1912136162,637768734,49356543,1448461087,-1909580201,-13857250,1583292370,-1957313699,105286636,24951389,-1957305109,1465261804,-1962508604,1451952734,512634380,-1175966578,526278650,52061,1869505089,1818324338,1869770784,1835102823,1919251488,1634625901,1852795252,2573,0,0,0,0,38816,0,0,1968439296,544170610,1668505936,1126198369,1768320623,1634891111,1852795252,1818838560,1712229,6423040,73865,496968124,451674114,204937,545856312,722075652,336009,545859840,18087942,467081,545849622,18350088,598153,545856678,18874378,729225,545857836,724369420,860297,545860432,692453390,991369,545859980,445448208,1122441,545856422,0,218169344,436279058,1920291840,1344302946,1633907553,1766858860,1277193059,544502633,1701603654,436214304,606741504,36316202,1225065732,536888644,1936876886,544108393,3485237,16711696,2,1572889,131073,142219,730791938,131075,274257,793968642,131077,405333,794624002,131079,536415,794886146,131081,667479,795148290,131083,799659,1024196609,131085,929505]},{"sector":5,"length":512,"pattern":0,"data":[786628612,262159,1060583,1024262145,65554,1252152,730660866,131092,1376540,18481154,131094,1518483,1024327681,131096,1650535,795017218,131098,1781595,1024393217,131100,19672921,747831364,8388909,19803351,760676480,8388911,19934679,820510848,524593,20066027,787677192,524595,20197115,1017905232,8388917,20328369,736886788,5243191,20454970,743374916,196607,65783,1611727586,1179650,204426,1601699993,3538948,6561436,457900044,65637,6691671,458817568,2097255,6822778,1562837072,196607,247,0,858927408,926299444,1111570744,1178944579,0,120466741,1465320027,770]},{"sector":6,"length":512,"pattern":0,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,545850488]},{"sector":7,"length":512,"pattern":0,"data":[]},{"sector":8,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,166723584,172493303,177146532,185993998,68382,131088,262159,524302,1048589,2097164,4194315,8388618,16777225,33554440,67108871,134217734,268435461,536870916,1073741827,-2147483646,1,226692420,227020150,217320840]}]],[[{"sector":1,"length":512,"data":[216993038,16518332,15990920,9175293,16646388,15990918,12845310,16646388,15990916,13631740,12845300,15990784,6422783,16253172,15991000,9240831,956236020,16003327,9386239,821952756,15991038,553001214,821952756,15995126,285159679,822052084,-2097929985,8388860,12976360,15728644,11010302,16253168,65680,2556135,16711681,65751,13107455,16711684,65737,885914879,-50395676,98842829,1020133375,-64036,84032973,13435135,16712962,65740,13500671,16711681,65691,15401215,15729406,66977904,14680316,16712702,50069737,15204607,16712956,49938666,10092799,15140090,38,15859966,16187392,16842947,12714231,16711939,16842959,181731326,16646146,14811244,7209214,16646368,14549158,10748158,16646366,14680236,11403518,16646370,14811306,101711871,-956366846,98319,6291710,16646145,65788,15991038,16646145,65688,15466748,16515073,131300,16253180,16515073,65692,5243120,15728641,65600,10486012,15073498,65542,12583166,956170482,15335622,16136446,16580842,15073385,-1357905921,16580836,15597672,11534576,16711916,240,14156024,244,65536,0,0,539885568,1701990432,-14650509,1129530627,3015935,1126178862,1769238127,1063613806,67053600]},{"sector":2,"length":512,"data":[788856665,-11664385,452995332,458119424,538979840,-11402241,1920230660,1919885433,1090780960,1868694783,4158578,1786194,1713401678,543517801,1701667182,1850277934,1768710518,1919164516,543520361,1679848047,1667592809,2037542772,1818838528,1919098981,1769234789,1696624239,1919906418,1818838528,1920409701,543519849,1869771365,1766195314,1663067500,1702063980,1920099616,1174434415,543517801,1914729321,543449445,2037149295,1381323776,1210994498,1409306700,1329746517,1396789280,541868355,1347175752,1279870496,1107308101,1212227705,1196433452,1464672300,1111695404,1245978668,1263542316,1851858988,1464279140,538451968,1635151433,543451500,1634038338,1768910955,2126958,1224998688,1852245247,744845935,1157889824,1634862335,539780467,-12385281,1634036740,1818304626,1633820780,-14668700,83841795,544237931,543976545,778330466,1162037504,1224743763,1919251310,1851859060,2036430713,1869566976,1851878688,1919033465,1886085477,1953393007,538968179,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,1124081696,1948741217,1852401184,1768300644,2123116,661545283,1667309684,1936942435,1867382816,1852121204,1751610735,1835363616,7959151,1095651150,1345209677,536892225,1735357008,544039282,1836213620,1952542313]},{"sector":3,"length":512,"data":[738223205,1852402720,1869881445,1868767343,1701605485,1428160632,544367987,1634038370,539754603,1735357040,544039282,1836213620,1952542313,536896613,2125417,1851867936,1713402919,543452777,1920298867,1713399139,744844393,1953391904,1847620197,1847621477,543518049,544165376,1969382756,1852383335,1629515622,1919950964,1634887535,1953701997,745828961,1853182496,2037276960,7954807,1679847246,1735746149,1718511904,1377840239,1629515381,1635219822,1867382905,1685021472,1701257317,1634887022,543450484,544370534,1936287860,1852402720,1917845605,1634887535,1868832877,1847620453,1663071343,1635020399,1713401449,543517801,1297040128,1128616019,1397703680,1920099616,1864397423,2019893358,1953850213,1124085349,1948741217,1853190688,1965056288,7629166,544173908,2037277037,1818846752,1835101797,1124103013,1948741217,1852401184,1480925284,1768300613,1124099436,1948741217,1634692128,1480925284,1768300613,1375757676,1140869376,1442858496,1275085312,1325420032,1291863296,536887552,1869903169,1769300512,1763730540,1919950958,1701996399,757101427,1124335392,762081908,537198403,-14650769,1920221955,1916939628,-9739931,1869881348,1769497888,1310720116,1310750565,543518049,1850023936,544367988,1701603654,1835093536,536879205,544695630,1701996868,1919906915,1342185593,543716449,544501614,1853189990,1126170724,1634561391,1277191278,543518313,1634885968,1702126957,2126706]},{"sector":4,"length":512,"data":[1852785440,543648102,1701603654,1226833952,1970037614,1142973796,1667592809,1769107316,2126693,1667846176,1766203499,1310745964,543518049,1682251776,1919906921,1650545696,2053722912,536879205,1835627088,544830049,1701603654,1110310944,1392528193,1668445551,1869422693,1768319332,539780197,1969382770,6581353,1651341651,1847618671,1713402991,1684960623,1698963456,1701734758,2035490916,1819239021,536879219,1702129221,1919950962,1684366191,543519349,1701667182,1394606112,1801675124,2053731104,1852383333,1954103840,2126693,1852394784,1836412265,1634027552,1767055472,1763730810,2034376814,544433524,1632444416,1970104696,1699225709,1394634849,543521385,1109421673,1936028793,1159725088,1969448312,1818386804,1766072421,1952671090,544830063,1649352704,1952671082,1919501344,1869898597,1936025970,1428160544,544500078,1701996868,1919906915,544433513,1968447488,544170610,1668505936,1142975585,1667592809,2037542772,1917124640,544370546,2125417,1969365036,1969430644,1852142194,1684349044,1713402985,543517801,544501614,1702257011,538979940,1702256979,1917132800,544370546,1919181889,544437093,1918981120,544499047,1919181921,544437093,544501614,1853189990,1411383396,1701278305,1684086900,1936028260,1868963955,6581877,1869771333,1409294450,543518841,1414092869,544175136,1970562418,1948282482,1968447599,544170610,1668505936,774794337,1850277934,1953654131,1936286752]},{"sector":5,"length":512,"data":[1953785195,1852383333,1769104416,2123126,1802725700,544434464,1953067639,1919954277,1667593327,543450484,1679847017,1702259058,1426079776,1869507438,1965059703,544500078,1679847023,1702259058,1140867104,543912809,1847620457,1914729583,2036621669,544106784,1986622052,4202597,1953067587,1818321769,1936286752,1919230059,544370546,1679847023,1702259058,1140867104,543257697,1702129257,1953067623,1919230073,544370546,1679847023,1702259058,1392525344,543909221,1869771365,1852776562,1769104416,1075864950,1802392832,1853321070,1684368672,1948279145,543518841,1679847017,1702259058,1392525344,1869898597,1869488242,1868963956,543452789,1679847023,1702259058,1342193696,1953393010,1864397413,1864397941,1634738278,7497072,1953067607,1634082917,544500853,1679847023,1702259058,1375748128,543449445,1819631974,1852776564,1769104416,1075864950,1918978048,1918990180,1634082917,1920298089,1852776549,1769104416,1075864950,1684095488,1835363616,544830063,1734438249,1718558821,1413563936,1952801824,1702126437,1917124708,544370546,1701012321,1852404595,539238503,1769366884,973104483,1684955424,1701998624,-14650509,1953383683,83849829,1701345056,1701978222,779707489,1633099776,543712116,1968119808,1953853556,1159725088,544500068,1699225600,2125932,1919243808,544826985,1917132800,544370546,1917001728,1667855465,1159752801,1919906418,1126170656,1768975727,1735289196,1226833952]},{"sector":6,"length":512,"data":[1919903342,1769234797,2125423,1818313504,1951604844,543908705,1701729536,1667592312,543450484,543452773,1713399407,543517801,2125423,1635151433,543451500,1718513507,1920296809,1869182049,1768300654,540697964,1851867904,1663071271,1952540018,1124081765,1948741217,1769109280,1948280180,536879215,1397768515,1310720032,2116949,1380143904,541871183,1986939136,1684630625,1818585120,1768300656,2123116,1868787273,1667592818,1702240372,1869181810,1718558830,1818585120,1768300656,2123116,1884645200,1147621423,1733296238,1409314901,1830842223,544829025,1701603686,1310720115,1830844261,543912801,1984241664,1635085409,2123124,2003127840,1818326560,2123125,1936020000,544500853,1851867904,1646294055,1869422693,1768319332,1107321957,1981834337,1702194273,1277173806,1818322789,1851879968,2123111,1919252047,1953067639,1107304549,1981834337,1702194273,1277173806,1818322789,1919903264,544498029,2021160994,2037987960,2259321,1869771333,1634934898,1735289206,1667854368,1768693867,1157657715,1919906418,1986097952,543649385,1718513507,1920296809,1869182049,1377828974,1835101797,1330520165,1162690894,1277165600,543449455,1701603654,1835093536,1224745061,1919251566,543973742,1869771333,539828338,1634036816,1914725747,1919905893,1869881460,1919894048,1684955500,1769497856,1919230068,544370546,738205757,1852405536,1869771365,540876914,1920291840,1344302946,1633907553]},{"sector":7,"length":512,"pattern":538976288,"data":[1866661996,1769109872,544499815,539583272,859322673,959520812,1646278968,1866596473,1851878514,1850286180,1852990836,1869182049,745300334,1668172064,1816723502,1634166124,1768300652,1847616876,979725665,1699872800,1696621665,1919906418,1869881344,1634476143,778397554,1918115872,1633906293,1426089332,1818386798,1869881445,1701867296,536879214,1684104530,1869365792,1176529763,544042866,1701603654,1461714976,1702127986,1869365792,1411410787,1766203503,2123116,1111565358,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,858927408,926299444,6240568,544501582,1970237029,1914726503,544042863,1763733364,1919251310,1702109300,1308652664,1696625775,1735749486,1869750376,1948282223,1684086895,1635197028,6841204,1684291872,1952536352,2123875,1768178976,1633099892,543712116,538987264,1229210880,542265172,536879130,538976288,538976288,1950556192,1110273138,1801545074,544175136,1953068401,538976288,538976288,538976288,1767984384,1768300654,3827052,1886220099,1852402793,1409301095,1818326127,538976288,1701603654,1852394496,1663071077,1768975727,979658092,538980384,538976288,3153952,1767994945,1818386796,1701650533,2037542765,536879162,1344282656,1936942450,2037276960,2036689696,2105376,538976288,538976288,538976288,538976288,538976288,538976288,1936028240,1851859059,1701519481,538976377]},{"sector":8,"length":512,"data":[538976288,1967325216,1852142194,1768169588,1952671090,544830063,1124081722,1701999221,1713402990,543517801,538976288,2112032,1701603654,2053731104,538976357,538976288,540680224,1397572864,1634956576,538994023,538976288,975183904,673185824,980967757,1766588448,544433518,1886220131,1684368489,536879162,1886220099,1852402793,1869881447,1936278560,536879211,1886220099,1852402793,1869881447,1835355424,544830063,1394614272,1701012341,538997619,538976288,975183904,1126178816,762081908,1634038338,538976363,975183904,1685013248,1763704933,1869488243,1986076788,1634494817,778398818,1852776448,1936286752,1763704939,1701650542,2037542765,1936269312,1634038304,1948285284,1970413679,536882798,1914729321,1768844917,3041134,1935763488,1836016416,1952803952,1914725477,1768844917,3041134,1954112032,1124103013,543515759,1702521203,538976288,538976288,538976288,538976288,538976288,538976288,1952531456,1769152609,538994042,538976288,538976288,538976288,538976288,538976288,1392517152,1801675124,2053731104,538976357,538976288,538976288,538976288,538976288,538976288,1852394752,1836412265,1634035744,1769152624,538994042,538976288,538976288,538976288,1291853856,1835628641,1746955637,544235877,1702521203,538976288,538976288,538976288,538976288,1853182464,1835627565,1919230053,544370546,1701080931,1342185504,1919381362,1696623969,544500088,1701080931]}]],[[{"sector":1,"length":512,"pattern":0,"data":[538976288,1381323776,1412321090,19536,0,0,-641679398,-1262242876,-641678654,-1262242876,-641678653,-1262242876,-641682238,-1262242876,-1127695415,-1177765171,-641682237,-1262242876,774766850,-65490,340852737,0,0,0,5224,0,0,341573632,0,0,0,3026478,707657770,65536,-15118336,255,0,0,0,0,-167419648,2132249,-1610612736,673220891,2069715753,574504061,673654562,19474986,-1994776831,-1994776544,553713952,572557594,18909466,-1994775807,-1994775520,620822816,639666458,18909466,-1994774784,-1994774496,687866144,706775322,35686682,-1994773760,-1994773216,32,0,0,16777216,-256,255,16776704,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16777216,5199,445582339,450830473,1095442569,1097859072,444923904,1099767945,0,0,0,545856015,545856678,-65536,0,1117388800,1125253120,0,0,0,0,8]},{"sector":2,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,439287808,8329,1396789294,65536,1296367616,1482184781,12376,1330511873,1162690894,-65536,0,0,707002368,639642148,606479910,-201317334,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16776960,256,825229312,892613426,959985462,1145258561,973096517,0,1431568394,776946258,20564,293666815,297472419,301404632,303501784,306909741,310121063,313070227,314905048,453841638,131072,-16776449,37486594,196352,1073742399,37552130,142592,1124074093,40894466,148480,771752467,35717122,137216,1560281706,40632322,139264,1107296833,39911426,156928,805306942,40108034,157184,1610613343,16646146,131063,196596,-196616,-131083,-983068,-524303,-2031649,-1966115,-65546,-1900561,-1245203,-1441814,-1835029,-1114136,-1638425,1208025052,1280,402739200,1258291456,33559298,67325184,852736,83892996,17385216,1325402368,167773706,302729472]},{"sector":3,"length":512,"data":[1358957312,201327372,885760,527990,106037256,117920512,1640192,486542876,1190400,939528989,256180244,1132032,593978,554631200,1441791,-2080369033,393543702,1537536,1023475293,-197394187,16531456,1057023085,-264044296,15822848,1778448196,-295304970,15416832,1610671967,-362741530,15548672,1677782082,-379256600,16464640,1812003432,-585039633,14553600,771809043,-518520608,14888960,788587040,521601054,16592128,56574,1917695,0,0,65535,0,0,0,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,131073,262147,393221,524295,-65536,65535,-1,-65536,65535,-1,-65536,65535,-1,-65536,65535,-1,-65536,757137407,1869357101,1713398881,543517801,2108717,0,0,0,0,0,0,0,0,757932032,1634692128,1768300644,757097836,8237,0,0,0,0,0,0,0,0,539831584,1684107116,1818846752,757932133,32,0,0,0,0,0,0,0,536870912,1814048045]},{"sector":4,"length":512,"data":[543449455,1701603686,539831584,0,0,0,0,0,0,0,0,757071872,1869357101,1713398881,543517801,2108717,0,0,0,0,0,0,0,0,757932032,1634692128,1768300644,757097836,8237,0,0,0,0,0,0,0,0,539831584,1684107116,1818846752,757932133,32,0,0,0,0,0,0,0,536870912,1814048045,543449455,1701603686,539831584,0,0,0,0,0,0,0,0,757071872,1869357101,1713398881,543517801,2108717,0,0,0,0,0,0,0,0,757932032,1634692128,1768300644,757097836,-771743699,941557022,-1642108129,69194015,1780496160,1409286176,1329746517,1262702638,707657728,1347694080,1381323776,1412321090,1431568464,776946258,4932432,2097169,2949136,742064128,1044130621,1566253692,1056973312,6029354,116,1024,1040,1125,1159,1192,0,0,0,0,1,1672806400,65536,65536,2112000,2097159,45,720896,0,131073,0,131072,1310740,131091,1179666,131073,327685]},{"sector":5,"length":512,"data":[393217,458759,393223,524296,393224,589833,589833,655370,655370,720907,720907,786444,786444,851981,851981,917518,917518,983055,983055,1048592,1048592,1114129,1114129,1376277,393217,1441814,1441814,1507351,1507351,1572888,1572888,1638425,1638425,1703962,1703962,1769499,1769499,1835036,1835036,1900573,1900573,581902928,591930107,599663460,606348302,591930417,613688356,581837998,618734793,622535938,631579965,643180008,646456149,658974431,669984666,681912415,1174667040,755302193,1886152008,67051552,83834182,1869568557,-14671763,-13220349,2001939716,1751348329,67051552,83834694,1634882605,538994019,944112639,1395459327,544236916,1174667040,755302201,1701536077,67051552,-13618874,1699556612,536900974,1398670335,1278018815,544499301,1577320224,755302212,1751607634,-14671756,-12231165,1884630276,67051552,83843166,2003780653,-14671762,-12493309,1867001092,538994029,1180566527,1160578303,536896622,980708417,1174667040,755302193,1953718604,1818585120,-14671760,-13416957,1766862084,538995555,910558207,1395459327,544235895,1174667040,755302201,1886220099,543517801,1476656928,1160578303,7629176,1174667040,755302193,1886152008,67051552,-10259643,1648438532,7631471,1577320224,755302227,1952867660]},{"sector":6,"length":512,"data":[67051552,83838046,1734955565,538997864,1197343743,1143801087,538995813,1214120959,1110246655,1936417633,1701011824,67051552,83843422,1818575917,1852402720,-14671771,-11379197,1699884292,1919906931,-14679963,-13548029,1699228932,538996844,877003775,1311573247,1830844261,543912801,402915104,-15001063,1749232900,1702063983,-14671840,-641451005,1395459327,1667591269,-14671756,1668498691,1093469439,1953656674,-14680032,1953251587,-13547987,1632382212,1746957427,7367781,1174667040,755302193,1886152008,67051520,83833158,1818576941,1852383344,544761188,402915104,-15066343,1766862084,1948281699,1667854447,67051552,-2505668,1866935556,544175136,1768976244,-14671773,1668498691,1160578303,544500088,1886152008,67051552,755302211,544503107,1632641062,6648947,1986089760,543649385,1953064005,1176531567,543517801,539893806,1277165614,1768186223,1159751534,1869900132,1766203506,773875052,773860896,1632837632,1735289206,1667846176,1766203499,773875052,773860896,1632837632,1735289206,1852785440,1969711462,1769234802,1176530543,543517801,539893806,1277165614,1768186223,1344300910,543908713,1701603654,773860896,536882720,1684107084,543649385,1718513475,1920296809,1869182049,1766203502,773875052,773860896,67051520,83833158,1818576941,-14671760,-13285885,1868180740,538996079,910558207,1395459327,1668573559,-14671768,808535555,1294796031]},{"sector":7,"length":512,"data":[544566885,1224998688,83850094,1684291885,67051552,-9673404,1698966788,1702126956,67051552,-2505668,1682255108,1998615657,1751348321,67051520,83838302,1851871277,544240928,1577320224,755302232,544104784,1853321060,67051552,83841886,1851871277,1717922848,-14671756,-12296701,1632644356,1769087086,7628903,1174667040,755302193,1886152008,67051552,83834182,1869568557,-14671763,-13220349,2001939716,1751348329,67051552,83834694,1634882605,538994019,944112639,1395459327,544236916,1174667040,755302201,1701536077,67051552,-13618874,1699556612,538998126,421004287,83827227,1851871277,-14680032,-13548029,1699228932,538996844,421004287,83827482,1919111981,543976559,67051552,-2505668,1767255300,1663072101,7105633,1174667040,755302193,1886152008,67051552,83834694,1634882605,538994019,944112639,1395459327,544236916,1174667040,83832881,1852132653,-14671755,1111577603,1127023871,1701602169,67051552,-2505668,1984244996,1635085409,536896884,826672127,1210909951,544238693,1174667040,755302199,1667330644,-14671771,-13089277,1951608068,538996837,826672127,755302192,1970169165,67051552,-12435116,2034445572,543517795,1006894880,83876292,1635140909,1952544108,-14671771,83827203,1919896877,1702109285,536900728,826672127,1210909951,544238693,1174667040,755302199,1667330644,-14671771,-13089277,1951608068,538996837]},{"sector":8,"length":512,"data":[826672127,755302192,1970169165,67051552,-12435116,2034445572,543517795,1006894880,83876292,1886339885,-14679943,-13548029,1699228932,538996844,927335423,1412236543,1701011826,67051552,83834950,1702122285,-14671760,808535555,1294796031,544566885,1409548064,83837505,1668891437,538994028,-1002699777,755302361,1768189773,536901990,826672127,1210909951,544238693,1174667040,755302197,1836019546,67051552,83834438,1769427757,543712116,1174667040,755302199,1667330644,-14671771,-13089277,1951608068,538996837,960889855,1294796031,543517537,1174667040,83832881,1852132653,-14671755,83827203,1919896877,1702109285,536900728,421004287,83827227,1987005741,1969430629,1919906674,67051552,-10259643,2017799428,1126200425,639661173,1935757344,1830839668,543515759,1107558176,1110246655,1852401509,1953850144,67051520,437983512,1294796031,543520367,1936880995,538997359,1933902847,755302243,1953069125,1953841952,1344284192,1702130529,1685024032,-14671771,83837443,1734689325,1663069801,538997877,-1002699777,755302361,1953718608,1702109285,29816,510727959,387927575,2132770583,1886396238,7434255,1887403776,28784,1886650368,1325400095,48,1886388224,28687,1313296128,7631951,1880060016,1879048192,7348080,117899264,1879508848,1879508751,259002119,124784399,251658255,117903119,7,7341839,7343872,0]}]],[[{"sector":1,"length":512,"data":[124784399,251658240,462607,1886388224,28687,1886416896,7,259000071,118452239,252145671,252645135,462704,252645120,7,118423552,251658352,112,252641280,1904,118427392,15,124784399,251658240,1011727,687865856,-60622,16778752,69711,117506336,-15523543,459007,102190864,16785409,322513166,83951615,356517135,1,2701312,16776960,1191708933,536871186,689242112,-60608,169739520,331050,822083584,-15513303,503644415,84748810,0,10524,83951615,407836672,2097152,2694144,16776960,1326991365,536870936,689700864,-65536,407110912,6216,469762080,-16777175,1057292543,1590296,8192,10538,83951615,6203,18874369,1361654016,16776979,657925,536872192,691994624,-60574,118751231,332603,822083616,-15513303,184549375,83886090,8192,10517,-1,255526675,1049861,1848196864,-237,1191381503,536872215,0,-60548,54853631,16848462,32,-16777216,16777215,17446656,8193,538976256,32,1946185743,258998272,7633008,1880060016,1879078008,2020609904,1886388340,1954050063,1879048192,983047,124782336,117444367,252145671,117440527,252643184,1879506944,986887,2013724672,671117312,2021132152,2021130352,1886943239,125304832,7370872,2013755392]},{"sector":2,"length":512,"pattern":0,"data":[-150966152,-30016715,305530677,506861878,758523446,1144404790,3557686,16777216,16777216,36408064,-1926532352,1929380395,36409131,-1859423488,1929380395,37555755,254505728,1929380413,973086251,-184541666,842419810,1026,9109504,53753438,4,35584,33554432,65535,65535,33554432,11201,56,736890789,131076,239285873,-1694236157,-2113894613,50545974,731186178,915472518,33753922,-2060738300,1412865536,67502861,8989680,22689447,-1492909564,-1275033045,51139382,735511552,139,-16646144,-16776961,255,-133824512,43]},{"sector":3,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1392508928,1143754512,1845501440,1143771920,2113936896,-2144545009,-1711268352,-2144512240,-2063589888,-2144479472,-1073734144,50746422,777454598,919928869,100862277,-1909563644,1228335616,67502858,9383527,123025151,1862534659,335581230,50876215,779551750,925434001,67309392,-1842628348,3619072,1090781184,11197,0,16776962,16776960,0,3047175,4194304,0,822086144,876098358,805306368,0,905969664,909325621,503316528,137292560,872416768,137294608,1358956032,137296656,1275069952,34820919,788726790,928448641,100799820,-2110846204,1211590400,67502612,8597267,0,16776962,16776960,0,3087107,16777216,256,256,256,16777216,16777472,36655360,1395356416]},{"sector":4,"length":512,"data":[1929380399,36656427,1462465280,1929380399,36657451,1529579264,1929380399,36658475,1596686080,-2097151441,36659499,1663792896,1929380399,36660523,1730900736,1929380399,43,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1324354304,251691055,1379366656,67240452,7679849,39008134,1862533634,-1795131857,33900855,796197890,933363831,33687366,2049932036,1329050112,67240461,12267399,138491843,-2130443774,-838805201,33969719,797770754,937558139,33687874,2083492612,1312290048,67240460,8204185,239417352,-1627127294,302037551,35406904,799343618,941883512,34276940,-1204835580,1127756288,201720323,8335409,189610054,1006895106,32815,33554432,65535,65535,234881024,12345,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1347694122,0]},{"sector":5,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,820514646,128,828903280,80,146700,905390971,136783,-1308622832,1396200192,268435991,11730944,407910492,1048578,1677767680,35210296,4096,181,-16646144,-16776961,255,-838598656,1832717617,35278136,838472707,947257526,33688140,2117191700,0,-65024,-65536,0,839844352,948043776,135235,1932579588,1278774016,67109403,12005925,289749138,973340674,-1644133332,51397688,785122304,950665255,100798288,-1791903732,1396225280,67109637,2686976,72497346,-1065089533,10289,16777216,65535,65535,117440512,12858,67116754,1,83888384,17104927,0,523763721,67072,150994944,2059008,263,589824,134225822,1,-788526848,17367071,0,537133065,68096,150994944,2111232,267,589824,201334890,1,-1660942080,17629216,0,953352201,131072,-16777216,255,-1677656064,436207666,1348962063,620756992,1346133007,-503316480,16862264,1024,955187211,66384,154339844,1312357376,67109137,786432,39008512,262145,218107136,17717049,857703430,957743119,100732740,305342340]},{"sector":6,"length":512,"data":[1127817216,67109136,1245184,307181867,1,872420352,-175815,1024,21,-16711680,-16776961,255,789118976,234881075,3976192,36940544,1093368576,167854905,0,961609833,656973,1778384896,1111056640,2567,7077888,38025575,-1392246262,1929407795,168314425,1024,964558958,67765584,1882433316,1194953728,2564,7405568,0,16776961,16776960,0,3388167,1094292736,67111937,10485760,38025648,12,-1124029952,201540921,1024,969408683,787538,-1409286144,3537408,17104896,0,89405915,12,-167731968,201737017,0,973865119,788310,-1392508928,0,-65280,-65536,0,873793536,268894208,5269841,975241216,139086,-1090519040,1396319744,544,12582912,557922860,2,49408,33554432,65535,65535,50331648,731067530,38091315,11,1224776192,184632122,0,979304601,101385030,-1540062580,1228566016,335675934,12397491,491993731,-1391197694,-1744782293,184894522,883622915,984154288,722002,-1358954496,0,-65280,-65536,0,884999936,985202688,590162,-1526726656,1346031360,2307,11010048,38222565,9,-83843328,151278650,0,990970011,591187,-1677721600,1429939968,1028,12451840,0,16776961,16776960]},{"sector":7,"length":512,"data":[0,3482118,1178287360,256,668562,4537154,6,1191185920,151015995,895746048,994771047,655427,1748238336,1329287936,512,7484039,4471643,218103819,1627428405,201343547,879558656,174,-16777216,-16776961,255,2030501888,53,257,0,0,0,0,0,1325400064,1325426278,1867710574,1635218534,939550066,792148016,942813240,1699545143,2037542765,1936278528,1699872875,1702388076,1951596644,1952672114,1869107968,1126200434,1969451625,1124103273,1819307375,6648933,1702132034,1919899392,892469348,1852402720,1768169573,1634496627,859046009,540030255,1701734764,1936286752,2036427888,1852785408,543648102,1869903201,1986097952,1682243685,1629516905,544175221,1702257011,1667318272,544241003,1701603686,1632895091,1769152610,1509975418,544042863,1684957559,7567215,1701995347,1931505253,6650473,1651668308,538976367,1768169504,1952671090,981037679,1163412736,1411393056,1679840592,1667592809,2037542772,1850277946,1685417059,1768169573,1952671090,1701409391,1426078323,544500078,1679826976,1667592809,1769107316,3830629,1701470799,538997859,1701996900,1919906915,980641129,1667846144,1768300651,1847616876,979725665,1920287488,1953391986,1667854368,1768300651,3827052,1667331155,1769152619,1275094394,538998639,1885431144,1835625504,1207989353,543713129,1885431144]},{"sector":8,"length":512,"data":[1835625504,1375761513,1701277281,1701339936,1852402531,1951596647,543908705,1667590243,1735289195,1328498944,1701339936,1852402531,1866858599,543515506,544366950,1819042147,1984888947,1634497125,1629516665,2003790956,1090544741,1852270956,1952539680,1633026145,1953705330,1735289202,1701339936,1852402531,1866596455,1634036847,1986338926,1635085409,1852795252,1836404224,1667854949,1869770784,1936942435,6778473,1819635013,1869182049,1698955374,543651170,1868983913,1952542066,7237481,1633906508,2037588076,1819239021,1866662003,1953064046,1634627433,1701060716,1701734758,1699545203,2037542765,2053731104,1392538469,1701668709,7566446,1818391888,7562089,1635018052,1684368489,1885424896,1818846752,1766588517,1646291822,1701209717,1866662002,1818849389,1275097701,1701539433,1850015858,1869769078,1852140910,1766064244,1952671090,1701409391,1632632947,1701667186,1936876916,1986089728,1886330981,1852795252,1699872883,1701409396,1864394102,1869182064,536900462,1701012818,1713402990,1936026729,1867251744,538993761,538976288,1342190406,543908713,1953251616,3360301,7824718,1702256979,538976288,843456544,1769101056,1948280180,1766064239,1952671090,7959151,1851877443,1679844711,1325429353,1752375379,7105637,1953068369,1092624416,1479373932,1836008192,1701603696,1816207392,960900468,1801538816,538976357,538976288,960897056,1769292288,1140876396,1769239397,1769234798]}]],[[{"sector":1,"length":512,"data":[1174433391,543452777,1869771365,1917845618,1918987625,1768300665,3827052,544499015,1868983913,1684291840,1952544544,538994787,538976288,538976288,1819440195,3622445,1701602628,1998611828,1751348321,1768178944,1635197044,6841204,1869440338,1629513078,1998613612,1751348321,1409315685,1818716015,1919033445,1886085477,1953393007,1950556192,1177382002,1816330296,544366949,543976545,1634038370,1768910955,7566446,2003134806,2019913248,1919033460,1886085477,1953393007,1852788224,1834156133,7631457,1635216449,1157657465,1970037110,543519841,538976288,1920221984,877014380,1818313472,1953701996,543908705,1126178848,762081908,1174418246,543452777,1668248176,1920296037,1850277989,1919378804,1684370529,1650811936,1768384373,1392535406,1684955508,1852796001,1701060709,1734833506,6778473,1886611780,544825708,1885435763,1735289200,1717916160,1752393074,1936286752,2036427888,1853182464,538976288,538976288,1126178848,762081908,1342191942,1919381362,1914727777,1952805733,1920221984,843459948,544163584,1663070068,1869836917,538976370,538976288,1409299526,1701011826,1953392928,538976367,538976288,927342624,1702122240,1986994288,538997349,538976288,538976288,1426077766,544367987,1701995379,538996325,1816207392,893791604,1818838528,1682243685,1375761513,1124101749,1768975727,1325426028,1869182064,1140880238,1735746149,1701986816,1999596385,1751348321,794361856]},{"sector":2,"length":512,"data":[249102336,12127,1024331469,247922688,12131,794234581,248053760,12117,795283141,248446976,12129,794496721,248709120,12113,793972419,224198656,12125,3787,248971267,143083,787677184,2,143099,800129024,1,262144,612040704,2894592,2097163309,612043277,2097160269,536873485,612040763,1229342020,2114894,8192,83886080,0,0,1095773738,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2764330,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,687876128,1345202688,687887169,8250,16777216,117440512,1196380752,105726290,1414748499,8080709,8061051,8061051,8061051,8061051,3211312,3211312,707002492,707013156,84216321,1347243843,1380273225,-1795293184,38011203,72171592,273811536,1079517267,-905953244,-520078438,-1769994763]},{"sector":3,"length":512,"data":[1111490712,-2036334577,655360001,65536000,6553600,655360,65536,100663296,1397705795,1225081925,1414877262,1414876934,72635728,1313165391,1279872515,1381257220,1396900904,1141131077,71779667,1195725651,1279346181,1409566035,88429906,774778408,1850278185,1768710518,1329864804,1969627219,1769235310,1663069807,6644847,1818838530,1869488229,1868963956,6581877,1952534531,1869488232,1868963956,6581877,1869566980,1851878688,1886331001,1713401445,1936026729,1766196480,1629513068,1936024419,1701060723,1684367726,1850279424,1768710518,1768300644,1746953580,1818521185,1309147237,1696625775,1735749486,1701650536,2037542765,1850280960,1768710518,1768300644,1629513068,1936024419,1868767347,251684196,1635151433,543451500,1986622052,1970151525,1919246957,1631784960,1953459822,1835364896,543520367,1920103779,544501349,1701996900,1919906915,1125187705,1869508193,1701978228,1701667182,1919115552,544437103,1986622052,1677751141,1802725700,1634038304,1919230052,7499634,1936278629,1920409707,543519849,1869771365,1181089906,543517801,544501614,1769173857,1684368999,1766221568,1847616876,1864397935,7234928,1818838632,1869488229,1886330996,1713401445,1763734127,1953853550,1766222080,1847616876,1864397935,544105840,544370534,1886680431,1778414709,1635151433,543451500,1701672302,543385970,1836216166,-1778355103,1802725700,544434464,1953067639,1919954277,1667593327]},{"sector":4,"length":512,"data":[6579572,1769096344,1847616886,1914729583,2036621669,1380162048,1919230019,544370546,1679847017,6386785,1936278684,1702043755,1696623461,1919906418,1699978752,1919906915,1953459744,1970234912,-1627364242,1852404304,544367988,544503151,1881171567,1919250529,1698996224,1701013878,1769109280,1713399156,1953264993,1698996480,1701013878,1634038304,1634082916,7629941,1918978210,1918990180,1634082917,1920298089,1153957989,1936291433,544108393,2048948578,7303781,1851871945,1663067495,1801676136,1920099616,-905940369,1667331155,1986994283,1818653285,1696626543,1919906418,1699269376,1864396897,1718773110,544698220,1869771365,1238106226,1818326638,1881171049,1953393007,1864397413,1634887024,1852795252,1816579328,1769234799,1881171822,1953393007,1702260512,1869375090,1187905655,1952542572,543649385,1852403568,1853169780,1718773092,7827308,1986939343,1684630625,1869375008,1852404833,1869619303,544501353,1919250543,1869182049,1339031662,1819436406,1830844769,1734438497,1847620197,1763734639,1635021678,1684368492,1984942336,1634497125,1768300665,1914725740,543449445,1869771365,1339162738,1667590754,1869488244,1852383348,1634301033,1702521196,1375731812,1769238133,1696621933,1919906418,1392771072,4607045,1448038484,1380206918,1546801489,1380010310,-30256815,1380141382,238178641,1380272454,372396369,1381189958,103960913,1381452102,-1573039791,1380010566,1073762641,1380141638]},{"sector":5,"length":512,"data":[-1073721007,1381190214,-2147462831,1380275717,1292186933,1397703763,1431323397,1124415032,926438736,5456208,4544581,5591124,4866639,5259597,5396047,747842639,760687831,1632906711,1952802674,1684300064,1936942450,1970234912,1325425774,1864397941,1701650534,2037542765,1701071104,1718187118,544367977,1701869669,1684370531,1802392832,1853321070,1701079328,1718187118,7497065,1819309380,1952539497,1684611173,1769238117,1919248742,1853444864,544760180,1869771365,1917124722,544370546,1914728041,543973733,1936617315,1953390964,1920091392,1763734127,1852383342,1701274996,1868767346,1635021678,1392538734,1852404340,1868767335,1635021678,1696625774,1701143416,1814066020,6647401,544173908,2037277037,1936027168,543450484,1701603686,1851064435,1701869669,1684370531,1684956448,543584032,1701603686,1852394496,1869881445,1869357167,1409312622,543518841,1852138601,1768319348,1696625253,1667592312,6579572,544173908,2037277037,1701867296,1768300654,7562604,1635151433,543451500,1701603686,1701667182,1818838528,1869488229,1868963956,6581877,1802725700,1819633184,1850277996,1768710518,1868767332,1818849389,1679848037,1667592809,1702259060,1869566976,1851878688,1768300665,7562604,1701080661,1701734758,2037653604,1763730800,1869619310,1702129257,1701060722,1768843622,1852795252,1918981632,1818386793,1684611173,1769238117,1919248742,1886938400,1702126437,1917124708]},{"sector":6,"length":512,"data":[544370546,1948282473,6647929,1970435155,1920300131,1869881445,1634476143,6645618,544499027,1702060386,1887007776,1970217061,1718558836,1851879968,1174431079,543517801,1886220131,1852141167,1830843252,1847621985,1646294127,1768300645,544433516,1864397423,1667590754,1224766324,1818326638,1931502697,1852404340,1701584999,1752459118,1886999552,1768759397,1952542067,1224763491,1818326638,1931502697,1634886261,543516526,1702060386,1887007776,1867251813,544367991,1853189986,1919361124,1702125925,1752440946,1965059681,1919250544,1970233888,1325425774,1852400754,1948281953,543518841,1701869669,1684370531,1953384704,1919248229,1852793632,1851880563,2019893364,1952671088,1124099173,1953721967,544501345,1701869669,1684370531,1953384704,1919248229,544370464,1818322290,1852793632,1851880563,2019893364,1952671088,1342202981,1953393007,1948283493,543518841,1852138601,1768319348,1696625253,1667592312,6579572,1635151433,543451500,1668183398,1852795252,1936028192,544500853,1701869940,1650543616,1763732581,1953391972,1701406313,2019893362,1952671088,1107321957,1313425221,1886938400,1702126437,1313144932,2019893316,1952671088,1224762469,1734702190,1696625253,1701998712,1869181811,2019893358,1952671088,1325425765,1852400754,1696623713,1701998712,1869181811,2019893358,1952671088,1107321957,1701605231,1696624225,1701998712,1869181811,2019893358,1952671088,1325425765,1634887024,1948279918]},{"sector":7,"length":512,"data":[1936027769,544171040,544501614,1668571501,1886330984,1952543333,1157657199,1919906418,544106784,1919973477,1769173861,1224765039,1734700140,1629514849,1734964083,1852140910,1766195316,543452261,1852138601,1768319348,1696625253,1667592312,6579572,1701470799,1713402979,543517801,544173940,1735549292,1851064421,1768318308,543450478,1702131813,1818324594,1986939136,1684630625,1784835872,544498533,1701603686,1667592736,6582895,1701080899,1734701856,1953391981,1869575200,1918987296,1140876647,543257697,1835492723,544501349,544173940,1735549292,1329856613,1886938400,1702126437,1850277988,1768710518,1431314532,1128877122,1717920800,1953066601,7237481,1635151433,543451500,1381259333,1701060686,1768843622,1852795252,1869566976,1851878688,1480925305,542003796,1768318308,1769236846,7564911,1696613967,1667592312,6579572,1163152969,1128351314,2019893317,1952671088,1224762469,1818326638,1914725481,1668246629,1650553953,1914725740,1919247973,1701015141,1162368000,2019893326,1952671088,1409311845,1919885391,1464812576,542069838,1701869669,1684370531,1684952320,1852401253,1713398885,1635218031,25714,1635151433,543451500,1701869940,1935762208,1766064244,1769171318,1646292591,1702502521,1224765298,1818326638,1713398889,543517801,1701869940,1851867904,544501614,1684104530,544370464,1953067607,1635131493,1650551154,544433516,1948280431,544434536,1701869940,1768902656]},{"sector":8,"length":512,"data":[1919251566,1918989856,1818386793,2019893349,1952671088,1392534629,1852404340,1635131495,1650551154,1696621932,1667592312,6579572,1769108563,1696622446,1701998712,1869181811,2019893358,1952671088,1124099173,1969451625,544366956,1953066613,1717924384,1852142181,1426089315,544500078,1701667182,1936289056,1668571501,1851064424,1981838441,1769173605,1830841967,1634562921,6841204,1768838400,1768300660,1713399148,1634562671,1919230068,7499634,1280331081,1313164613,1230258516,1696616015,1667592312,6579572,1936617283,1953390964,1684955424,1396785952,2037653573,544433520,1847619428,1830843503,1751348321,1667584512,543453807,1769103734,1701601889,1886938400,1702126437,1866661988,1635021678,1864397934,1864397941,1634869350,6645614,1701603654,1918989856,1818386793,2019893349,1952671088,1342202981,1953393007,1696625253,1701998712,1869181811,2019893358,1952671088,1224762469,1734702190,1864397413,1701978226,1696623713,1701998712,1869181811,2019893358,1952671088,1275094117,1818583649,1953459744,1953068832,544106856,1920103779,544501349,1668246626,1632370795,543974754,1701997665,544826465,1768318308,6579566,1701080661,1701734758,1634476132,543974754,1881173609,1701012850,1735289188,1635021600,1701668212,1881175150,7631457,1635151433,543451500,1918967872,1701672295,1426093166,542394702,1701869669,1684370531,574300672,1886938400,1702126437,975306852,2019893282,1952671088]}]],[[{"sector":1,"length":512,"data":[570451045,1696604716,1667592312,6579572,539109410,1701869669,1684370531,573121024,1886938400,1702126437,1025638500,2019893282,1952671088,570451045,539114810,1701869669,1684370531,576397824,544370464,573450274,1886938400,1702126437,1562509412,1919885346,690889248,2019893282,1952671088,570451045,1696604718,1667592312,6579572,573451810,1886938400,1702126437,1867776100,1634541679,1981839726,1634300513,1936026722,1986939136,1684630625,1380927008,1852793632,1819243124,1918989856,1818386793,1850277989,1701274996,1635131506,1650551154,1696621932,1667592312,6579572,1701603654,1684955424,1869770784,1969513827,1948280178,1936027769,1701994784,1953459744,1819042080,1684371311,1919248416,1951596645,1735289202,1852140576,543716455,1836280173,1751348321,1986939136,1684630625,1685221152,1852404325,1718558823,1701406240,7562348,1769108563,1663068014,1953721967,544501345,1701869669,1684370531,1953384704,1919248229,544370464,1818322290,1918989856,1818386793,2019893349,1952671088,1325425765,1852400754,1981836385,1634300513,543517794,1701869669,1684370531,1280198912,541412937,1869771365,1749221490,1667330657,544367988,1919973477,1769173861,1696624239,1667592312,6579572,544173908,2037277037,1818587680,1952539503,544108393,1835365481,115,1836008192,1634494832,1852795252,1868718368,1684370546,1396785920,1868767301,1635021678,1864397934,1864397941,1634869350,6645614]},{"sector":2,"length":512,"data":[1869771333,1852383346,1635021600,1701668212,1124103278,1869508193,1633886324,1629514860,1852383342,1920099700,544501877,1668248176,1920296037,1291845733,544502645,1763730786,808984686,1830827832,543515759,1663070068,1768975727,1948280172,7563624,1735549268,1629516901,1701995620,1847620467,1713402991,1684960623,1668172032,1701082476,1818846752,1629516645,1847616882,1629516911,2003790956,1746953317,6648421,1279872512,1886938400,1702126437,1850277988,1768710518,1970348132,1718185057,7497065,1635151433,543451500,1769103734,1701601889,1717924384,1852142181,1409312099,1830842223,544829025,1651341683,7564399,1952543827,1852140901,1634738292,1948284018,1814065007,1701278305,1766195200,544433516,1953723757,543515168,544366966,1634886000,1702126957,1409315698,1830842223,544829025,1684959075,1869182057,543973742,1651341683,7564399,1886611789,1701011820,1868767332,1953064046,1634627433,1768169580,1952671090,6649449,1229213253,1768169542,1952671090,543520361,1936943469,6778473,1869771333,1852383346,1768843552,1818323316,1852793632,1769236836,1818324591,1717920800,1936027241,1634027520,544367972,1936027492,1953459744,1952541984,1881172067,1769366898,544437615,1768318308,1769236846,1124101743,1769236850,543973731,1802725732,1920099616,1124102767,1869508193,1986338932,1635085409,1948280180,544434536,1919973477,1769173861,1157656175,1701998712,1869181811,1852383342]},{"sector":3,"length":512,"data":[1920102243,1819566949,1702109305,1852403058,1684370529,1986939136,1684630625,1919903264,544498029,1667592307,1701406313,1850278002,1768710518,1852383332,1701996900,1914729571,1919247973,1701015141,1920226048,1970561909,543450482,1769103734,1701601889,1918967923,1869488229,1818304628,1702326124,1701322852,1124099442,1869508193,1986338932,1635085409,1998611828,1869116521,1394635893,1702130553,1853169773,1124103273,1869508193,1667309684,1936942435,1768453152,2037588083,1819239021,1986939136,1684630625,1869375008,1852404833,1869619303,544501353,1919250543,1869182049,1631780974,1953459822,1836016416,1701603696,1702260512,2036427890,1869881459,1835363616,7959151,1668248144,1920296037,1919885413,1853187616,1869182051,1635131502,1650551154,1696621932,1667592312,6579572,1635151433,543451500,1668248176,1920296037,1919885413,1853187616,1869182051,1701978222,1701995878,6644590,1852727619,1864397935,1819436406,1948285281,544434536,1953066613,1869566976,1851878688,1701716089,1684370547,1868788512,7562608,1701603654,1667457312,544437093,1768842596,1325425765,1667590754,2037653620,1696621936,1667592312,6579572,1633906508,1651449964,1952671082,1887007776,1629516645,1847616882,1629516911,2003790956,1442866277,1431589449,1696615489,1667592312,6579572,1752458573,1763730543,1953391972,1701406313,2019893362,1952671088,1442866277,1970565737,1663069281,1953721967,1952675186,544436847]},{"sector":4,"length":512,"data":[543519329,544501614,1869376609,6579575,1936617283,1668641396,544370548,1852138601,1768319348,1696625253,1667592312,6579572,1953719620,1952675186,1763734127,1953391972,1701406313,2019893362,1952671088,1174430821,543975777,2037149295,1819042080,1684371311,1953068832,544106856,1936617315,1668641396,1936879476,655360000,6554600,65546,858927408,926299444,1111570744,1178944579,1951604782,544502369,1869894432,538976368,1735288140,1310746740,543518049,538976288,538976288,538976288,1816338464,74675041,1162104643,1413563396,1414726977,72041281,1346454856,541601795,807421955,572540930,1681989664,1936028260,538976371,538976288,1968185376,1667853410,2036473971,1818318368,1276208501,543518313,1651340654,544436837,544370534,1931487498,1701668709,471889006,1735357008,544039282,1920233061,1869619321,544501353,807433313,976236592,1392787457,4607045,0,67108864,65536,-2147483648,2147483647,83886080,131072,0,-128,100663423,262144,0,-8388608,142606335,65536,0,-16777216,150994944,131072,0,-16777216,167772415,262144,0,-16777216,234881023,262144,251658240,524288,268435456,655360,234881024,393216,671088640,65536,201326592,65536,0,-16777216,117440512,524288,184549376,524288,721420288,655360,637534208,16777216]},{"sector":5,"length":512,"data":[654311424,8388608,369099008,262144,50331904,16777216,587202815,262144,587202881,262144,587202885,262144,587202817,262144,587202821,0,134217991,134744080,134744072,268961800,269488136,773725184,623060519,235733782,688662533,16843053,18356481,18553345,319947025,33554433,50331649,1,10,100,1000,10000,100000,1000000,10000000,0,-1094967296,16409,-910228480,1077186075,728806814,-1647989336,-1495973783,524943311,1087619704,-2132177696,-1816508471,-561102424,-335831559,1129425534,-1508994617,-484859730,202852003,1971749237,1296615798,-985834011,-1635042467,-1751426414,1375898144,1965409376,0,-1094967296,147481,65540,262146,1,65536,131073,2,262144,262148,1,1048576,1048585,16,524288,524292,524297,1812004880,-690486826,30870785,3200804,924893184,959590710,808596789,16776704,-33619984,-124113412,33554688,134218752,805310464,16384,16771584,1297040368,5325136,0,0,-438566912,-438508068,0,538976256,538976288,555819040,539042081,538976288,538976288,538976288,538976288,1077936416,1077952576,1077952576,1077952576,33686080,33686018,1073873410,1077952576,336871488,336860180,67372036,67372036,67372036,67372036,67372036,1077952576]},{"sector":6,"length":512,"pattern":0,"data":[404242496,404232216,134744072,134744072,134744072,134744072,134744072,1077952576,32]},{"sector":7,"length":512,"pattern":-151587082,"data":[]},{"sector":8,"length":512,"pattern":-151587082,"data":[]}]]]
      • fd2.json
        [[[{"sector":1,"length":512,"data":[1183861995,1147495794,2118479,66050,1073770498,130305,65544,0,0,2686976,536870912,538976288,538976288,1095114784,540160340,6299680,65543,196608,655360,-50724864,-795951055,12441742,-530150020,612270331,-2013039105,-524802986,-1983869409,-1175483922,-1510801152,-528713238,-1898410465,14215376,1701147206,5459780,-1958328693,2123057238,-941936320,6307398,-398571890,946995394,196738865,2113125888,1604776791,440765222,-947713164,1031808544,1927771392,-1746382737,1095114752,1183711316,-1948569282,1183520382,1146522434,1476430312,102650482,12519199,-964056288,-972950015,1940778705,-754667260,266633448,1913649213,-1413467672,1474830094,1699422208,1818586738,1044811264,12507953,-1073107680,1212689268,-2129822069,-150929433,1246102503,-397650413,-445448138,218114536,1330594314,1919230036,805314930,-854143516,1370137,558843680,1586102304,59940,-617545632,281874100,1012313182,-1007454976,1397772886,-1430568524,609651285,829739652,762450893,-1437209727,-372168843,915219315,1552514461,240945420,1381652571,138709328,-1995811703,1150026844,-347950074,16781357,1515739904,-1970188206,1727404102,-235433702,410449554,-964111991,-909055610,1183500752,-18864104,-1193211708,1451885057,1930677540,-840683512,-346400749,190710664,-1064564877,-1911503744,-2091231040,-763166272,-411742464,1271095032,1162760773,1394614348,-1437248679]},{"sector":2,"length":512,"pattern":0,"data":[16777213,1610940480,8390400,184590345,-536018752,16781056,318840849,1611989312,25171713,453091353,-534969920,33562369,587341857,1613038144,41953026,721592361,-533921088,1048322]},{"sector":3,"length":512,"pattern":0,"data":[16777213,1610940480,8390400,184590345,-536018752,16781056,318840849,1611989312,25171713,453091353,-534969920,33562369,587341857,1613038144,41953026,721592361,-533921088,1048322]},{"sector":4,"length":512,"pattern":0,"data":[1112692052,538976335,541872212,229507072,1179731537,229507072,214609,44352,1296912357,541347393,5066563,1671188736,11851,-1297874944,2829677,87396,1162037733,541414222,5527636,1671189248,11851,1079771136,8464599,18427,1330927077,1128618053,5521730,1671188224,11851,-1417347072,9645642,67]},{"sector":5,"length":512,"pattern":0,"data":[]},{"sector":6,"length":512,"pattern":0,"data":[]},{"sector":7,"length":512,"pattern":0,"data":[]},{"sector":8,"length":512,"pattern":0,"data":[]}]],[[{"sector":1,"length":512,"pattern":0,"data":[]},{"sector":2,"length":512,"pattern":0,"data":[]},{"sector":3,"length":512,"data":[1329798123,1195984462,16777235,1962999810,1702065518,101124196,33752069,-1612519167,-1102067527,-141975666,-2135578338,84265100,98078208,-1064434136,-56232963,309100590,-1830325488,235842991,119473678,376086,1434472379,1481659851,50531105,1261724426,816337475,16669587,-570384684,-939523841,1124985855,1229344335,392007,33685760,-1672261505,-15846984,-855576389,1482398992,1997859511,45579,2077204264,2013259776,-840250624,-50219626,-369070360,131203406,1582354278,-218427540,1324601174,1190322732,-1778320666,913918270,783783783,874686215,-2020165338,-1647501659,1784878745,1392770996,1730084654,-872719616,-185924428,218066191,776996606,7937678,-2046425893,312557174,104539903,678756368,-234747284,69061394,313660476,789972687,-1217684985,-1007999232,520575231,1048653507,1968993895,1762191625,1342665918,502232474,61919064,-486482825,921220870,-83893590,822246633,-7983424,134275078,-854166080,-1073146113,4058996,41285490,2064650416,646458885,-1605608679,-619372957,1948254644,1965169335,-351834620,-14237206,-1658927826,222791682,36891135,-402504727,-385811197,-970063319,771772630,-466614723,-1007407905,-14229533,-850983542,-369565143,1864305075,1465274503,-1269606913,-1291798770,1532500743,1583308269,-915775331,-255387875,30992641,1397222272,-351945801,-1308349352,1275644754,-1307831956,1074842438,984749100,741611723,-886132196,606873632]},{"sector":4,"length":512,"data":[684401330,-1305727972,271633174,179450924,788805835,-11403204,-930341296,-425600882,104530431,712376808,-1982660724,-367620384,647334657,-459203649,1862674689,-1610638328,-100555529,1484130561,-316633510,-670687292,-1324036261,1344207625,1124090040,1896775807,-648511488,-508113121,-1089697490,-1626960850,1459604226,-351908674,173037127,92657353,1019228385,118418294,-1274957570,1745283842,-1100816894,-904198556,-1318386697,317454111,216788765,-568237541,-1732378601,1208304347,1887128163,-1784458671,-963361150,1887727266,83242623,-618498944,973621130,1719076095,31510936,513276870,-1796896429,1489402726,1425980924,-346466047,18997046,-32675958,-1961734261,-1047063465,-331902162,755924932,-1962842947,-1988252586,-1682697657,57739531,11838299,1482250877,-1928975522,1670507117,1282353431,-152337996,378220252,1858336907,-1058124018,-396947730,1515953157,91104922,60087302,793908400,-94790570,-619302837,657195230,1352487420,1834294866,280168028,922706206,-1660658397,-587047114,-675008855,1181886041,1576824839,-94873057,-1099337413,13344091,-385760944,1807423459,-1163510206,-1223658041,-619858858,-16381660,-370548153,1967914828,1625941757,-1089345281,162592784,552453366,-1157303947,-12184704,-11325321,-2011693107,1009788128,183349296,-2062020492,1958568233,34461220,-985867731,-1994434281,1397882623,-1976640719,-779154658,-1884363849,-386109448,1977483203,-85899746,393501174]},{"sector":5,"length":512,"data":[911560788,0,4195903,211028480,232000972,241503836,283578599,3953819,4320,4194908,0,0,0,0,0,0,101842974,113707124,144705674,159123814,162007442,164891070,154798372,135268842,2106,262144,128,327680,18219264,460361,32,218628096,6422532,591433,18219264,11929161,656969,67764228,101318664,34209800,67829770,17563654,-8388607,8388607,15073280,34342473,1,16711680,15073280,84674121,-2147483646,2147483647,15073280,101451337,2,-65536,15073280,218891849,4,-32768,15106047,460361,11927584,853577,1,65536,16646144,460361,16646176,34473545,1,16711680,18219008,460361,18219040,1609,1111556949,12591187,1090802944,-1135459260,1409286208,1347436806,2084851269,1426140672,1129464070,1817067860,1409286144,1397965062,676218697,1409286144,1330397705,1163021123,9192513,173277184,1129270338,1230133067,9454932,122748928,1280266050,-28425915,411904,1107579136,-1236970407,411904,1124356352,374489416,411905,1124422656,1380533320,27197552,1212351317,12597330,1124422656,1163087692,52,1329792081,10113101,21038665,1329792597,1413563214,20381844,1329792085,9460048,55902678,1750290243,1426154752,1163084548,-2076161977]},{"sector":6,"length":512,"data":[1141068801,8930117,106168320,1162626372,2377044,122945939,1347635524,340087631,1359063808,1431258118,-1773843390,1493584128,1141134593,1279739219,1426186816,1179600131,28704784,1329923157,806476,89391562,1396789829,15429,1157911552,1213483352,1426211328,1347962115,33489012,1480919121,1145980244,10372165,1609,1095107668,10243145,89129559,1397506374,1224801861,6,1426213888,1279870471,1397706821,21823508,1229326421,1230193996,1590618,139723272,1280067910,1380010051,45088856,1279657300,-2142743723,1426225664,1095910916,1627429955,1174885378,1296385362,5262661,106168938,1146373447,7098953,106169056,1297368391,5000517,72614433,1414283592,36634692,1229455957,37339312,1313407828,33588291,1225151491,1380275022,-922738604,1224955138,6313038,122749706,1163152969,-967686841,319179008,1225282819,1397051983,-1739305899,1426158656,1313164294,-2008525753,1426268096,1884179458,1426254848,-1404089342,1358954688,1313819655,1414416711,105447654,72614696,1263681869,43319320,1095567445,1096171864,1082412105,105907066,1230520653,15094862,2147419721,57671680,1095567952,1313819736,1414416711,105447654,2147483647,56099653,-1236449971,1627801856,1292391683,1447120197,-2142484159,1476631104,1296387332,1224795724,1476520966,1296387332,1224791639,1409537286,1145785605,7623241,72614562,1163284301,63504476,1162740566,-1157627817]},{"sector":7,"length":512,"data":[1325618435,-1070578620,55902968,1079199311,1426317632,1146244867,34914356,1095764565,1129136466,1414419791,68223144,1095764053,1397571922,10768980,39126006,12077392,122749651,1313427280,2119320916,-1090107136,1342461697,5526095,89588792,1414680400,53936471,1330643797,1476430931,1342461188,742671698,1426320576,1381257219,59293756,1095894613,1297040462,68812960,1095895380,1297040462,1615157833,1409503488,1095062020,-1979708348,1376146436,1279541573,-1560276914,1376014596,-1572060859,1074153728,1376211972,1095060549,1852755,106169386,1095648594,4212045,89391605,1163085138,2113940564,1376211972,1230133061,3163476,89391961,1229213010,1962965074,1376081156,1145984335,74170492,1431439444,1381123406,9982543,72614911,1262830931,81723448,1163069269,1329941317,-738195386,1393054980,1162560837,72240207,1426305024,1195725571,84951108,1163070036,1480938580,1179992660,83296404,1213401169,1230262863,10900558,84018761,1230177109,889218126,1392922885,1279741513,1224774213,1426373382,1514754822,1481002821,1426327744,1414550276,1312838738,1392727301,2380369,72680068,1414680915,86442076,1397949525,1079002949,55838100,1683117139,1426420992,1129665284,1589651523,1392792837,-1269808809,1359237056,1480938500,1224765012,1342531334,1431458820,1224801861,262,1426438912,1431458821,-1065860274,139724190,1314214484,1163149635,96796756,1498678869]},{"sector":8,"length":512,"data":[1179600208,85606592,1347749461,1163084099,78577692,1096155988,-1728026548,1459900676,-700165553,-1475983104,1459966981,1163151698,99352580,1381435220,1279611977,1644169294,1392924932,1163154265,1627390029,233,1376094976,1381388043,1162104643,1414744396,1,1224791552,1376092422,1381388043,1346454856,1163544915,513,1224791552,1376054278,1381388043,1430406468,1381257287,1025,1224769024,1376145670,1381388042,1346454856,21451343,8,105447638,173147642,1213355599,1347436869,167858772,-704643072,-939112192,1326076420,1162367574,1313165377,786756,14024704,102434377,1448020818,1095715922,1397312580,917844,14024704,46007881,1448021074,1397703762,1145979208,268518732,-704643072,-788117248,1326207493,1296388694,1312901203,21318724,18,105447638,122816063,1346454856,21451343,20,105447550,122816246,1346454856,22172752,24,105447550,122816176,1162170950,22172752,28,105447550,122816296,1162170950,21907789,32,105447638,156370788,1346454856,1330795077,2228562,8257536,103220809,1480919122,1380996169,637616975,2113929216,1007044864,1158173191,1129597272,21316687,42,105447622,156370703,1330795077,1145323858,2883922,8257536,87950921,1380976978,1481197125,21448019,48,105447638,173147654,1128354899,1296649291,838947913,-704643072,1342589184,1225282055]}]],[[{"sector":1,"length":512,"data":[1414877006,22234450,52,105447622,139593266,1145979218,1145390419,13825,1224795648,1376232198,1279870472,1146047813,3801413,11927552,125306441,1163135058,808997971,989935416,-1241513984,-469350144,1225085447,1414877262,0,1224764928,1376276230,1414876934,5526864,256,105447534,156370939,1163280723,810831433,33554480,8257536,110691913,1095960914,1313424726,3289172,516,105447550,156370894,1163280723,827608649,34078786,8257536,126748233,1095960914,1313424726,3355220,524,105447550,156370401,1163280723,844385865,34603060,8257536,115213897,1095960914,1313424726,3421012,532,105447550,156370561,1163280723,861163081,35127349,8257536,95487561,1095960914,1313424726,3552084,540,105447550,156371041,1163280723,861163081,35651639,8257536,129500745,1095960914,1313424726,3683156,548,105447550,156370981,1163280723,861163081,36175929,8257536,107546185,1095960914,1313424726,4272980,556,105447550,156371126,1163280723,861163081,36700226,8257536,147588681,1095960914,1313424726,4404052,564,105447550,156371170,1163280723,861163081,37224516,8257536,150472265,1095960914,1313424726,4535124,572,105447550,156371214,1163280723,861163081,37748806,8257536,156239433,1095960914,1313424726,3487572,580,105447550]},{"sector":2,"length":512,"data":[-1,0,13697024,14155776,16,262168,2031640,9240600,10027032,10813464,24,40,1703976,4063272,4980776,9240616,12124200,17104936,19922984,21102632,22872104,28377128,48,9306160,11403312,40108112,42008656,42991696,46006352,46268496,46596176,46923856,47251536,47579216,32,1572896,3276832,4718624,6488096,10944544,2752560,3735600,5898288,13566000,15401008,17367088,19202096,20709424,5177592,8,458760,1376264,3997704,6029512,3670184,5767352,176,1966240,13435032,15466648,15335640,200,168,184,160,10748056,15466648,14876888,8847448,144,7340176,7667856,13172880,216,3014872,3604696,11469016,232,1507560,208,262352,524496,786640,18415832,18874584,25231576,224,1507552,3277024,44302416,264,9634008,2294000,88,3342424,248,240,120,4915320,136,5898376,256,5308672,9568512,10944768,7995536,12910736,4522128,32702544,35455056,64,393280,1179712,1572928,2228288,2490432,2752576,3276864,786496,5898432,192,128,6488192,2621512,7929928,9240648,16580680,15335496]},{"sector":3,"length":512,"data":[25690184,36765768,47448136,1441880,272,280,304,4194608,6881584,9175344,262200,56,13041720,30146616,37945400,40697912,44826680,96,7995488,104,25362536,10092656,39059568,152,2359448,4194456,6553752,26476544,14417920,786512,9633872,551551264,498073888,48890152,57278760,15990816,28246048,34013184,-65144,5636096,-65480,1572864,-65536,11796480,-65528,50397184,-65160,34013184,-65536,22675456,-65536,50855936,-65536,4980736,-65448,74514432,-65168,47906816,-65176,9699328,-65464,17956864,-65528,54984704,-65488,57802752,-65456,8126464,-65520,9830400,-65520,9371648,-65520,41877504,-65472,17956864,-65472,4915200,-65496,7733248,-65496,3276800,-65512,10551296,-65464,12255232,-65464,11796480,-65464,4587520,-65520,28377088,-65456,9175040,-65512,6684672,-65520,3604480,-65536,8912896,-65520,15073280,-65520,1245184,-65536,1835008,-65480,3932160,-65480,640679936,-64128,68616192,-65296,10223616,-65496,3932160,0,38273024,0,0,0,0,0,0,0,1310720,0,0]},{"sector":4,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1392902144,1163154265,1101,309955693,1398362890,776815956,89342288,0,1292369920,776882497,88752719,0,1158152192,776163922,88752719,0,1443364864,776491585,88752719,0,1275592704,776425039,88752719,0,1208483840,777011525,88752719,0,1393033216,776491604,88752719,0,1393033216,776492101,88752719,0,1174929408,775435344,88752719,0,1174929408,776484916,88752719,0,1174929408,776353844,88752719,0,1174929408,776484664,88752719,0,1376256000,776228417,88752719,0,1141374976,777277001,88752719,0,1141374976,775435334,88752719,0,1141374976,775370822,88752719,0,1393033216,777277001,88752719,0,1393033216,775435334,88752719,0,1393033216,775370822,88752719,0,1409810432,776754243,88752719,0,1409810432,776163399,88752719,0,1409810432,777144387,88752719,0,1409810432,777147475,88752719,0,1409810432,776752962,88752719,0,1409810432,777277001,88752719,0,1409810432]},{"sector":5,"length":512,"data":[775435334,88752719,0,1409810432,775370822,88752719,0,1409810432,776885574,88752719,0,1174929408,776754243,88752719,0,1174929408,776885574,88752719,0,1174929408,777144644,88752719,0,1292369920,776490309,88752719,0,1342701568,777212481,88752719,0,1141374976,776491593,88752719,0,1124597760,777142600,88752719,0,1158152192,775305289,88752719,0,1158152192,775370825,88752719,0,1158152192,775305293,88752719,0,1158152192,775370829,88752719,0,1325924352,776489538,4866639,0,0,-1912602438,429274,-1947389184,1246660,-388823887,-1039936884,-1560280925,100859904,10682368,172800,637534883,754975393,44240896,48896,-1191060034,-57671662,901033006,495526349,-2097003124,-253623097,-1172369890,12058830,-1172189915,599261397,-1172189915,616038557,-1172189915,1069023430,522308901,503316664,-1202708912,1343095302,59406,59406,503316664,-1202708912,1343095302,59406,59406,-997983285,-410822650,-1765310177,972849152,-4258957,1421105151,-326426163,18239104,1515805528,526212958,-793194745,113541888,-927464469,-346334976,16758791,-617363149,-1912602438,10746842,197233408,-1591774013,-1073020928,-1064431244,270416678,637957120,-352316255,734235885,-2097151970,243863787,512294912]},{"sector":6,"length":512,"data":[516161538,-1064566784,326419211,10731571,172800,-1207959389,1343095058,-1194634490,1344143360,59406,503316664,15208016,48896,-1191060034,-57671662,632597550,-854211298,-947708127,-1577983484,101384192,695468034,-402526277,10551338,3336192,-402522437,44105758,4253696,1441282736,41216,-1157614104,132645379,41216,567102644,168266286,-402230080,-347930568,1689371635,-1325398040,190474,-466483989,805630454,2025552,-1010529704,-389772720,1347944449,-388889423,1476396008,805572388,41040444,-796260604,567084724,453116099,892609571,959985462,1027357498,1383415614,1769238133,1696621933,1919906418,1629487136,771760244,855640589,427968,1048824576,1962934272,10603265,59648,-1909001077,992346692,125764181,992351356,638546437,2080789819,638025480,1996768571,-910636287,59648,-265554805,-293532302,124912128,13883,-1194655374,15270090,-1931703552,2009413338,2143565322,1334523398,-1527514108,181066382,-1949791488,-1947169830,1356986362,-137983150,-1948742685,-1948125241,56122056,-875494445,199854933,190870763,175742171,-738733577,-2097036925,-771030829,-150308452,97712080,-763166719,-1947104512,868824059,2211291,-741223983,-551825877,-838663053,-772415725,1305661904,2040392309,-137234673,29459411,-1660890237,233506169,-150308451,97712080,-763166719,1573608704,-385824584,-511508480,-788106209,-489106966,-511456262]},{"sector":7,"length":512,"data":[-788106209,-489500192,-770978822,-789116291,17158903,13796096,920423371,-402372725,124911851,-745815669,-1207958838,15270091,920423168,906250123,-1945743420,25749699,113902450,13416448,-1962934039,2143565532,41220,-1593472730,-1993998334,80347717,920423168,637829060,10683787,1166747136,172802,10731571,313856,-1962789400,-992506938,721420350,721420822,1929379846,1049895,639757130,637949187,637687083,1023689987,74579984,1107300397,1929718566,1049860,147293002,-613023989,-889041688,-1962806808,-992506938,721420350,721420822,1929379846,1049904,640346954,637951371,990010667,639333082,637816203,74648875,1259389315,108517947,-935655310,-1047853966,-947661941,1979648776,33548498,-320319285,4113409,638577408,637951371,990010667,-2090896422,-16054073,-2014777995,-1949398271,35531743,928512,-2096860416,994775233,1913026522,1925724962,953118,35556096,64160512,1064385,271385714,10699264,35031296,1482484480,3723,134667,1347441780,7935,1256413329,-1953598135,-1960393767,723911757,-2096860403,994775233,1913026522,1925725070,227223178,39684902,-1056713981,1912606781,1060100,92874306,39160102,106248998,992348533,58000453,1476451560,-1007041544,863289355,50409192,1036059603,74579984,1107300397,138811,108469362,3643,372970610,242679810,104531570,108462080,16068,-1007071253]},{"sector":8,"length":512,"data":[39664422,91692658,1913469734,1564157463,1916237574,1295721990,640644868,-1960440437,233505373,39140134,91693170,1912945446,1429939737,1913681670,1161504262,638088964,637814155,-402238069,-947716011,1979648776,35011503,990868736,1962934278,952585,35555584,317244160,638546432,-1993994871,-1993997731,-1993997243,-1950153131,-2097151938,427034863,-288229493,-288231727,906227409,909836290,91619330,16009,-1950090813,-67108810,-1524194010,-1524194010,-1995903101,-1023410122,16011,292945675,15915,-164424843,147083,268486529,4074435,855798528,-2080928769,-271511578,-271454255,1040445393,1044054018,276234242,909837938,141754368,13963,147083,634424259,-355401713,-355341615,-1312560431,-1950166268,-253656118,185590403,-1946369087,920292572,906526660,-1408993339,852003498,-1901792275,314074,-1931703300,2009413338,2143565322,1334523398,-1053119484,-1047920010,852003498,-1901792275,707290,-1003037557,-1977219969,-891014651,-1946419196,920292572,906788804,-1979156539,920924676,184962955,-1190953015,-251461631,326287659,1334523456,2110327556,1003041538,-1962510655,855829441,-930370880,-628185869,-67106614,-628302709,142591030,74958134,839748134,2534637,638087941,-1962998330,64026305,-930461703,-628185869,-67107638,907992203,906524613,637829060,-315486838,-1404622365,695337276,-223606665,1327265198,-466477077,-802434677,-1958604430]}]],[[{"sector":1,"length":512,"data":[1957098440,63449870,1207501809,871396682,722004928,919047160,520374059,-67106614,-628302709,142066998,75482166,629810860,986221127,-1979550004,1959332556,-202558970,973239718,-891646268,-1946419192,2143565532,-1442729978,71797302,182954,-1931703300,2143565530,2009413130,1200305670,-930371068,-628185869,1426065098,-327029621,-1098055168,1461124864,101351108,112727,105286480,-401715128,2126839504,240584206,-1912665880,385745086,176079959,1996445446,16758790,-1310192048,-286781698,176080126,1996445446,1877478920,1575324670,1426066634,-327029621,2122514944,1132331014,-16728435,2126796566,-1202256374,-1957691391,1346897990,-25761778,-33505651,2126796566,-1957231094,1174603846,-4698106,-401715200,-401670564,2126839449,-1202256374,240124159,-1946281496,147480037,-594805760,-1003038068,-986314113,-1959393673,-813038497,-1070404302,-880104717,548513011,-819279062,-628184333,-67107126,-1003037557,280560767,-205507840,-594818133,109036598,71797302,-13444982,-338492495,-511653750,-771641337,17311456,-1962933558,2143565532,1200240136,1468675590,1926244868,-1966932449,-1308675368,-1964256509,132219080,-523107920,-805238746,13861824,-193606914,-67107638,-628302709,175621430,109036598,73370422,-315437174,-880086781,-628185869,-1962931510,2143565532,1200240132,853051912,-754732545,-2134340885,28313569,-2077826862,444929,-1931703300,2143565530,2009413128,1095940]},{"sector":2,"length":512,"data":[84616877,-1896226133,314074,-1931703300,2143565530,2009413128,1095940,651229101,-492108509,-891646217,-1946419196,920292572,906526660,-1190889531,648871952,-492108509,-891646215,-1946419196,920292572,906526660,-1190889531,-1477246960,147511950,-594805760,-1003038068,-986314625,280560759,187084032,41266949,-628164638,-2130704182,176161015,175862985,980972736,-1861912895,-678961529,-654917334,1735600188,1347797382,-461314422,870878080,-1331930937,-2133950464,-2147430527,1913190784,-1966831087,-1965061405,852921082,149520630,-922031381,-355399052,-657335343,-160052738,53967005,333321153,1573751767,-623834509,-657335343,544522750,-2097119227,-763166509,-1978699264,2145812673,-1950092022,-1948349503,-623787049,-344604162,-1054096391,-686039525,1935527307,-137169136,-170330157,-2097097853,-176160558,200969088,1962413051,2029390541,-773795401,-19738157,-369986103,-1073086210,-922027660,-1957300876,-2116602902,-2038431518,315687632,-2117563664,-2122317619,1384120527,74834954,225762059,678817034,611710475,-2015459439,-1966765073,-1947863356,-138048552,-2082995226,-896859950,-403192437,-763117309,-1870861568,1431393879,-326414253,1183500595,124188161,-108269429,1183570315,140965632,-99356669,1183570195,107411202,-99356669,-242493165,-150976885,-134018458,-250357229,-150845813,-134018970,-250357229,-150714741,-134019482,-250357229,1183578507,174520066,-233580541,1183578387,140965636]},{"sector":3,"length":512,"data":[-233580541,1183578387,174520068,-686569981,-1827879805,-167092903,-523171976,-758000687,-2115403447,8390016,-2097097853,57868498,-163456303,141902021,851544641,-1007824651,-661929933,180605067,1442149568,-684463477,-2147430527,-2147431039,-2147425663,-785726842,-1336741862,113154,108392251,41279035,108193082,-568597206,-757993701,-456126094,-707669039,-450174349,-283386341,-18093064,1376417992,1962934714,-348081435,-1312650271,1541460742,-144877222,-2083260464,125370354,-741224239,-2125868335,-377454399,861077351,91839191,1523765586,-2134444349,82315124,-183208960,1975597763,1958742542,1977039626,1977498374,-1008387582,-636757877,-292931468,175755787,-755511049,-2097151739,-661978926,184590520,-2029226542,177254611,-2046528010,193507570,-32999214,333120456,184056274,-2147256083,-1815904282,-886399055,-109031822,-28608737,-2130801983,-109018930,-1962446319,-2133707838,-109047575,-1978961399,-1964864828,-2131348778,-355399447,-906045231,208926837,141880586,-2097151739,276299986,175767306,-755511049,-2097151739,-1007157038,-1070349319,-389819853,997326848,59595,-1949616782,-1946973240,59642,181086578,-399870775,527564800,59595,59595,-402606645,158466048,-402541109,24248320,13613259,-1207959319,15270093,13154304,1459618025,15225174,1600018688,1364613059,1493172456,1472421726,15225174,1600018688,1364613059,1493172456,1019436894,-1958120536,-1946973240]},{"sector":4,"length":512,"data":[870593274,-2133707813,964067561,1913715072,-1947760116,-17702,-351213184,150569199,-477491854,-91562102,-4794742,168356224,-116689719,-607003951,-906044208,-685509259,-450699741,-876596533,240145234,-1946179352,-1946973240,1515935994,-889192216,-2081649835,-930412308,-91491445,1014284298,1971373814,-129595071,-1980080503,-1048511402,-2131111808,-1047887679,1183323180,-129594370,-1946526069,1491663958,-13113089,1397934334,59472,1509836346,-512532642,-561266293,-443820149,-1201812643,15270095,562149632,-1076190530,15255823,1958742528,-2131329021,1551002684,-1105099847,264231586,-427797943,59519,-401575334,1448607495,1541934673,1600018943,-151064344,57966790,-16853784,59593,-402427236,-906035501,1912602856,-2134770168,15237326,1919695872,22986505,-402651207,1922892470,1958742535,-2131329021,966613195,1624719263,-1842307773,1068132144,1859596840,-283301194,-804424648,2060455168,-2004318072,-1431601656,178956970,-167414592,108298438,-385822792,-2119106560,-1974419158,-75449919,-1074580546,15217924,-1949791488,-1191539725,-617414527,1189663283,1347638014,855671224,-2147435813,1493172456,15228766,34455296,-402651463,-1057095118,-1093500999,1925126135,59441,1347637849,-1718042230,-1191182104,-138489216,829603607,1493172456,15228766,1936145408,868233990,-875416613,-660764035,-377676407,976128930,954437245,1233019790,306783378,-858993282,-1417720628,715827882]},{"sector":5,"length":512,"data":[-1669282058,-1182800256,-138489216,829603607,1006633192,1381331848,-1057075117,15269813,1600018688,15225168,-1073063680,-922877324,-2015459439,59607,-1191009089,-1326972920,-372156159,-1185870221,868154241,889503731,1493172456,343064834,-1961855843,-1946973240,8501498,-768353485,-889192216,13482072,1828716777,1611734318,742813745,1954539006,-2071364554,1012102945,2049885183,-1789166126,-1205502947,2120439878,-34604010,-137199499,1429303831,-326898549,1975519750,13691139,-956905165,1090811008,1367336576,855671225,-385928202,208797696,-2015459439,59607,1363231065,-1102414151,1874848142,59404,-303561357,-1082660096,45679541,777474304,-1959916149,-1959918987,15205501,1918459648,315065096,-276568094,113738502,-1980086647,1451883614,-1959897090,1972055565,2106273282,-55187452,-1957670062,1586231878,-27882500,-1191182104,-164429695,15269683,-1949791488,1492814835,15227483,8841216,113738591,772639534,771913099,-402358901,-161939456,343147201,-1949791407,-1191539725,-1564794495,1225767642,1493172456,1946272246,-2133950461,-883038837,-858790017,-159427565,154182388,-1849595265,-1249901046,1148160670,975995520,1786778573,101355969,129,562036736,1225775778,-1952257923,-1904362962,1670265059,613566846,-847343031,1288490188,-1431655553,-440423766,375043,1364218706,-1949791401,-386233357,1499398144,1493173992,15294302,-326413056,-1996034941,1586100806,-27883012]},{"sector":6,"length":512,"data":[772115246,771906955,1359238539,1360063319,227225175,41257774,75336494,-1962934040,1988885070,-25261060,1593835752,113738585,-2118525470,871772928,59647,-1017256565,7999,0,2147450880,855638715,429823,109979136,-4653012,-1960379265,1958742533,926432539,-1960439691,1027342917,-461371275,1509720287,-1070391829,-562778382,-253312973,126477275,347684825,-1946230272,255796487,-1174192323,11539248,1481911669,28361787,-610589323,-388391965,-1678845541,-644089378,-522609728,-1680220517,-1952759843,45129223,851051892,-1576816621,378077184,516096000,884481806,702757,567137931,-1946426816,-1172189737,45088971,-1078320691,-847925248,936189729,775278051,1355481088,-253312974,-1595531088,1347952870,47134,1048631438,1962934272,909495559,99287046,407257,434331,102945014,142082056,2031516,-816308480,1950198011,-482882241,3028429,1499027712,16482651,1493398784,27810649,-927328907,1963239424,13482513,175442088,-1476342086,-1174178544,-376307505,-987889664,-1694494690,-1021341552,958803,-478095222,-1057259328,941884532,-997849332,-670300380,20489006,1946671421,131939664,-616739980,1028027439,1148458968,1947720765,534265151,-599967116,1026913311,225720280,1949817917,-488924408,-335566872,780217875,805241144,-385901592,-610598873,-102851614,37674395,44079872,134612992,1173504,-2132616293,-50329562,103209371,1478449920]},{"sector":7,"length":512,"data":[-438723633,37674395,44145408,1157671168,11080052,-1457818560,376701952,-1680286309,-1681658151,36625198,-908485888,-1678190181,180607453,841118912,-1964209463,-2132508442,-2143322619,1381007566,-919383725,-841184431,-852534468,180650813,-298463797,183272395,1020124299,1036861275,1493353603,-1957143973,2147427832,1983872557,1977879066,-790263263,13926625,-2097097853,242352338,-405675311,868997841,870003648,-1057043502,-843518347,59648,104740301,-1724068608,-855637970,138807,103691725,172288,267915,506973643,1036845058,-1962933599,-889191402,104740301,-1724068608,-855637970,902691893,-889190866,104740301,-1724068608,-855637970,902676533,-382022148,103691725,902679296,1053674490,-842297108,-879694274,-1863172403,-197210677,1053674384,-389312262,-1070399412,-1959338869,-620034977,-141425548,46830323,3598336,8435859,-167763783,175472838,-757996591,-203241218,-427769806,434686847,-1623405312,-855618298,1591,-840878643,969801013,-885142055,10616801,35556096,784894720,8726263,-506338863,-385687087,-754724605,-472783919,-217918717,-472709711,17167106,13796096,-1996488541,-1023409642,750027781,243868109,378077184,1472921602,198740988,-150110766,-2083325997,-763166269,-1439846400,-1325378882,1413164553,1996976642,473640460,-964491405,1976172036,-1329463572,784399919,456006699,-177012140,773587758,-2096999405,-22412090,-1947961911,-819241009]},{"sector":8,"length":512,"data":[-1698037565,-169803717,-1734967291,256000000,25600000,2560000,256000,25600,2560,256,868233984,-470404142,1031808601,638022699,1965899136,1229407749,-2144974621,1148462141,-2145547738,-1015006485,-148344054,1978663106,-523152591,1347605201,-757997359,-757997359,1539507035,844878611,-2084371457,309854418,1322115655,-789116299,17158903,13796096,-1007041544,-85767865,-2145547738,57827835,-2145326208,-1015006485,-2146733558,-1015015445,-2133822714,79104707,-757997359,-805383054,-1022691723,-338566585,-326412870,1460989059,2114713987,768259,2113272195,-673533,-1996599671,1460075638,384597645,13756423,1317603167,-25785350,209253899,1190819331,1187383417,787153132,-24912137,-1107070452,2055208971,1120286188,443678956,-32540594,2055269442,242629100,15483590,1187507947,-16764436,-164365754,-27882500,897110539,-2130950410,766509940,-95515734,91867403,-341167952,6154247,-109491798,1282724363,1101672112,816842356,-143308118,-398624694,-341180349,-165629705,1954610246,-1439846398,-1442827544,-1341492158,686336558,1967303168,-1438273287,1451961264,2043808762,-148000764,-1031034150,-84538702,-1422905339,727699339,1575324623,-331183421,1975519814,1311813635,1975519939,440589,-63950664,-1070421005,-427768918,-2144579457,-319402572,-1979710203,-930375484,-637959336,1363214709,-388368553,1499398468,74678588,1224853480,-2133950383,-936737615,175374512]}]],[[{"sector":1,"length":512,"data":[-606999855,-906045231,213841525,-1309767168,-2131897852,-2010763067,266764333,-783264942,-774647328,-773795374,1506988499,324649219,-787260967,-741220143,1313329873,-970535051,-1017577467,-2081649835,-1070397204,-1980217719,1183447622,643949564,1183319434,1948269822,1948990472,1965898756,-397850878,1215430786,175430411,400808755,775782438,954405237,775782438,1229402741,1912628712,-472123605,92939818,74728764,527787324,-397194937,1918566400,-1948777709,-230974990,1077742197,1023769856,58720192,1362226169,-1949595049,1586231366,-61436934,2111633792,-592359158,1493195752,-400244352,1499398228,-1073082766,2122320500,1979198974,-2133950461,-1017256565,971234099,738560550,1930036282,1229407024,-1739108013,59545,-208942965,1183578763,-94467080,-386115957,208797856,-1996488472,1586100294,-61437446,1935366495,-109001787,-2142667558,1149183737,173036370,41524425,-645211658,-1963138176,49008891,-1912655137,771931583,-1959918197,-1959919011,-511703979,-402164733,-906100652,-930350731,-91491445,1515935901,15270776,59648,8504313,0,142,10165312,1052516352,-1525677912,79063252,236702143,-339366717,-841994888,1405230030,964229598,736821567,499494312,-830748168,-1073069929,1448167796,-1971270016,1388327624,-355381165,-657335343,-606999855,56547537,-569155898,1943409502,-774188789,-2133274149,426901953,-2097119227,-763166509,-788040960,29458650,-427817102]},{"sector":2,"length":512,"data":[79792767,-1017553405,1,10,100,1000,10000,100000,1000000,10000000,0,-1094967296,16409,-910228480,1077186075,728806814,-1647989336,-1495973783,524943311,1087619704,-2132177696,-1816508471,-561102424,-335831559,1129425534,-1508994617,-484859730,202852003,1971749237,1296615798,-985834011,-1635042467,-1751426414,1375898144,1965409376,1983905792,-569676998,16442,0,2147450880,-1957358785,686588908,-25283123,781794509,936181912,-2091389826,58594041,-2097147207,58584825,-1979715911,-839058866,-196703427,636896905,695500799,1971322685,-226590419,175407104,-1421783368,-374714704,2122514768,58261750,-1196806736,-1330950583,1038723654,-129595135,-371702136,1183383729,1849150964,1073688044,-145944390,-128546326,721424824,32696514,-839109171,-2077320388,-650851072,-58836531,1190608333,1950417148,-1707291383,-16776138,1003354182,1586359414,-1106988584,1036845065,-1964293494,-2132225312,805638116,126432816,1968063299,931739371,16416387,2122517372,92022008,-285587769,-92894209,209253899,1190688259,1187383417,736821464,-24912137,-2145094894,-969549702,1912657986,259542554,-2133310722,1983502458,-666712562,-940643584,3266630,871909119,-94991370,897110539,16154243,766509945,-129070166,91867403,-341167952,7661575,-109491798,1517605387,1101672112,816842356,-143308118,-397707190,-341180326,-2095009545,2030106238]},{"sector":3,"length":512,"data":[-1439846398,-1442821656,-1341492158,1072212526,1967303168,-1438273287,1451961264,2043808760,-148000764,179874522,-151612828,-157748086,808453618,-1731818837,805696246,-812930256,-842060961,902685239,1036910190,-1017256565,1188577930,58048522,-1018285904,-2081649835,902629100,936246910,-1724068382,-855599058,1944317493,-2012902874,540867398,725354612,758908020,1229390453,6940753,249813811,1006996006,1191671086,5892169,995679223,-482052927,92939815,74728764,477455676,-397194937,1918566400,-1712157906,662041147,2098431805,-327598814,-670884482,1172882315,-75595776,-855411411,969793589,1036909694,167528183,-117345280,-840812595,-838963659,1575324477,-472173629,92939804,168049196,1020072819,265882,-62486120,-62506291,-347519165,4047842,-854819312,2049874748,-918893312,1024458797,209580032,781925581,986513530,268436985,-1072965493,41499508,-259270409,-788011389,-840511002,8690492,-773271296,-1092038168,250282016,125036753,748371149,-2083964211,-1073018170,-619975051,986514552,986563529,-1957313543,552371180,-1961998709,2123173974,-402188576,-1960968192,-1004595465,1451952254,205949702,41861691,-902053237,-896859522,41795899,-1426275957,141869355,-1329034415,1504375584,-1960860429,214588901,-326413056,638222020,-315486838,638182215,1965047168,-136165629,1912602856,-1962286334,172895183,-768360397,637959876,-899871351,-1957363704,1089242092,-1961867637]},{"sector":4,"length":512,"data":[1451954782,206474004,242862347,721422009,-108851634,-1190953218,2123235326,-402188608,-1960968192,-1004595465,1451952254,239504134,41861691,-902053237,-896859522,41795899,-1426275957,141869355,-1329034415,1504375584,-1960860429,281697765,-326413056,638222020,-315486838,638182215,1965047168,-136165629,1912602856,-1962155262,172895183,-617365453,2126828083,227091974,576093,-2081649835,1317748972,2043218700,571662,-2096214485,58654457,-1912602951,118931582,503316712,521598859,-1962377532,1183516246,2126658318,1002605314,-1962770742,2109815754,-54424830,1958816682,-930393848,-1426906960,530903897,-899816053,-1957363702,176080108,839748134,165890029,540901414,-498662539,59639,232981106,1311494027,-667300598,-840026675,108971069,1561168166,-1962932022,-1003086116,-986314625,872154231,-1330074688,-2135381033,-1070355712,-1918129237,-1934920635,364424128,-930305279,-1178586197,-1410138098,1984904364,-1974489086,-202558776,-1430244700,576031,-1003037557,-1959392641,-1993997241,-1959394235,-1993996729,-1959392187,-1993996217,-1070395835,138774822,172329254,-1174402358,149673905,-338185542,-676087293,-1003037557,-1960442753,-1321401787,1024619735,225761202,1960292413,444176,-352295424,1460032036,2418702,650130266,637687177,638076297,-1156954743,1256718352,637957120,-1342028345,314071,48955568,-594869840,75482166,41779494,410310577,41779494,141875122,1735]},{"sector":5,"length":512,"data":[418054247,1358672,1476400360,208977930,-402645829,-953810935,-676330939,100664522,643237463,-1073014273,10683252,-1022927104,907992203,855932869,-1207072311,2105621760,1960292610,-16601075,41779461,41211827,2105556148,158597168,-852470387,-1991282143,32618501,-645150413,-1325236863,-1960217385,1140897821,1186472397,-1933014270,-2134706485,2105610613,1977070338,2549763,855777720,-942044215,-676199867,-1944828535,1300829773,442337560,1713128903,508398594,-903888845,-768409596,495700275,-851311944,8400161,1929435779,868233988,-1949660206,-1206023216,567099904,8426893,-1962901319,-851463139,855798561,1004221376,-2145356584,436240569,-347929740,735284210,-17968,45620619,857853250,-1273132087,-1021194944,907992203,637829060,638342597,637816203,1068768651,275915213,172329254,-953761741,2117,313887,172345126,-286588928,907992203,637829060,856446405,1300702921,495658504,567099572,-1054144654,1706558324,80355072,517769984,75482166,206947622,-2027501261,-1960441779,-851397603,855798305,80355264,920423168,637829060,-75293301,-1274644988,1914817854,-893373694,1048772612,1962934272,2105615880,1977069826,1569400333,1435182600,2110006794,113754892,6815744,-633607189,-1977219724,-1950091263,2110011132,4057090,-633614197,447802485,1048822777,1962934272,2105615880,1977070082,1569400333,1435182600,2110006788,113754892,6881280,-2010715157]},{"sector":6,"length":512,"data":[-633650431,-1950154380,2110011132,508973314,-1912602438,1569269466,106366472,1577002583,1958742804,41731,-1960442017,-1960441275,-1960441763,-1004141483,1579093117,-594820263,75482166,1374181126,-401312257,440205168,1011027316,-386632435,171769700,1598226805,1569269255,-1960449272,2143565532,-396950012,175505256,-2048389712,-401952513,123731840,140347686,-594868501,75482166,444433190,-905743104,1048772612,1962934272,643237622,186146303,-1544784704,-404029440,-1003037557,1460012159,1962934504,59405,1598226802,1569269255,447793928,-594807317,142591030,105351734,72321846,15226630,1225749760,-1332344450,59424,-392758814,123666432,140347686,1426064586,-1004606325,1460014206,-989855512,12126326,-401246976,222035968,440143476,1094912628,990152774,-344652210,210301227,-1993996449,1562314845,1426065098,-1004606325,1460014206,1962934504,142001445,-66695541,736375468,-1341358392,59424,1149958626,-1947979009,-66591800,59564,123730402,140347686,113925407,920423168,906655743,-1207404545,-2143944665,1962935935,2930691,-13217778,-401734537,-998047744,313860,1431458820,1095107909,1430606668,-326898549,108971040,15226630,48640,15212917,1947876352,1998601242,-219462909,1006633192,1124890144,1948319363,-532510477,1609427782,1569269255,-473003256,-528577262,15206166,-486379008,444170,855665152,-1949267008,1439391205,-326898549,138840864]},{"sector":7,"length":512,"data":[-1928702325,118939774,-1006632728,1460014206,1962934504,105286431,226410795,-930352757,15212720,-1946557952,-529101362,-391366916,-119406592,-1993996449,-443873187,445021,-2081649835,2126790892,-396950010,12451840,-400460544,440139776,540809844,-347929737,59634,209068092,1090421571,1116271476,-303348032,-1993996449,-829749155,2123174627,-402188608,41025536,113708259,6946816,-661929933,-443821941,-1957311651,1089242092,-1962260853,1451953246,105810702,242862347,721422009,-108853170,-1190953218,2123235326,-402188608,2126774272,-396950000,527761408,721962635,-1962049855,-1329034255,59424,-829687326,-54495603,15248438,1610146304,1569269255,1575324424,1426066122,-326898549,108971072,15226630,48640,15212917,1947876352,1998601242,-219462909,1006633192,1124890144,1950416515,-1069381389,1609427782,1569269255,-473003256,-1065448171,15206166,-486379008,444174,-855610880,902682681,-1958883858,1439391205,-326898549,105810752,242862347,721422521,-108853170,-1190953218,2123235326,-402188608,2126774272,-396950006,527761408,721962635,-1962049855,-1329034255,59424,-829687326,-54495603,15248438,1610146304,1569269255,1575324424,-1325398838,-1324684541,-1324946686,-1325208831,920423168,100958148,59479,15211637,1947876352,29488665,222037108,-1040838540,1007121410,1124300576,11592939,28312299,-1993996449,80349277,517769984,142591030,74958134]},{"sector":8,"length":512,"data":[-1413467140,-1411927880,381272115,-1398017280,41307964,-930459728,-1527517902,531284018,-1610610486,1035206656,116118067,-1170472776,-1957363711,142525676,41779494,443865008,41779494,141875123,1735,887816294,1460032080,5040142,-2144970662,1946169469,1435311634,857671216,522309065,10684019,-1844319488,38127398,-1993943117,105286405,71665958,445021,-1003037557,954729599,856585472,495658697,567099572,10683251,313856,-1003037557,484967551,639071488,-75293301,-1274448380,1931595070,41731,38127398,80402352,2105615872,1960293122,444166,-1023383808,1689927604,-1274680576,6666816,-991130795,-588772738,505116159,106349906,72190758,-853701850,1914657313,1958820614,-1547531515,-899874816,1068695556,-352295751,-1186942203,-1957363611,276743404,1979688680,172395327,477413387,-148483810,-930413467,-1978902843,495658723,525935053,-768401550,74839846,-1945731388,1960250306,92874245,1178279147,-1994951670,-352321522,41745,-1945731388,1960250306,650130181,-899873399,-1957363698,176080108,1979665128,138840865,73791270,1183565963,1710695942,-1949695228,495658704,-851312456,-1560055007,-899874816,1156055048,638546432,-2096870005,108265977,-401679565,80347136,3008512,-1047850126,-1960389749,-108854195,856060929,15208155,313856,1912607464,465644299,-1341820205,313857,80396338,920423168,637960132,-1291682431,858486231,651310025]}]],[[{"sector":1,"length":512,"data":[28843403,1377946946,868823888,495658706,-851311944,1381587745,651397968,12066187,1495387458,113754971,6750208,-768360397,-594820103,1472542238,818053892,567099828,-1560055009,80347136,-326413056,508619907,-1928956219,118927486,1329376508,1336935030,-315438966,-1070422797,173458858,-1926184317,1454682238,1931420109,41733,-1927408405,521580662,-2096464188,-1392758585,1975519914,-443867142,576093,-628302709,175621430,109036598,72321846,1945582588,66126599,-45134087,-628185869,-1962931510,2143565532,1334523400,1200240134,-1426850812,1426065610,1452010635,1959922438,4843525,817115371,54272461,1912602808,429605,109979136,-13434836,87697148,-4651148,-340856065,63407092,12187531,-1850805759,102682870,142525471,-208557316,-899866716,-768409598,-1828715800,429771,8437504,839748134,-617396243,-2144990749,58138685,-1946688953,638182391,1981824384,-136165629,-970209397,1245906036,1438899829,-327029621,-1927413632,521568374,168576650,-1274645056,-31339239,80775872,1174702144,1547306183,1202996806,57876941,-1929378618,2126807158,105810696,-1392714957,108314634,25699907,-2010712606,-443867363,576093,-2115204267,-402620180,1183514721,1958742656,989626410,-551280523,-796245716,567086772,567089588,141869626,1735,199950351,8552064,1001653620,-1962914840,80371173,-326413056,8449153,-1275059992,3598393,-899816053,-1957363708]},{"sector":2,"length":512,"data":[-2131983892,780288,568867508,1575324416,503317706,-1928956219,118915198,2134682876,2142241394,-204960872,-1430244700,-1927363809,521568342,1931420109,41731,920423363,1006913418,1007055457,738359162,182816,-1107296024,12517376,1975519744,444172,-1107237376,12517376,59648,167772392,-1106676544,12517376,59648,-402645829,-4718592,59648,1701672270,543385970,1882025827,1701015410,1919906675,1902473760,1701996917,658788,201384583,1009787928,1818252360,-1668250504,46248,0,98304,314048512,-26940672,1271733130,47487608,-1207959552,1407909923,1545072827,-1196803287,1,-352308040,1757558082,265986593,713,4569088,-140955157,-1702560817,-26080,1454899200,-1407128832,-137244807,11629079,-1207959552,267059303,0,0,49153,503347384,-644953716,112852118,-2086276352,529927407,726685635,-1414792000,-1420252245,11846026,-1245487189,491644929,-54514857,-1263817813,28879808,28879680,-1017140480,1049319254,-276627240,-666990324,119408128,440828,1594336755,1465303902,14171787,-1995640957,503371838,235347462,112851999,128316160,-1017225441,915101526,-1174667048,-1510801402,14169737,1455644255,-667514025,-193164032,14171785,119408380,-218102087,1583286181,-1957210429,-1962878922,503774462,440583,205883309,133817003,650337887,-919927669,184549562,2131197120,-1073628407,-654896917]},{"sector":3,"length":512,"data":[-617938510,-372161647,48486609,1435105259,140347658,-1996077687,1300825165,-1022523134,-2096608117,176099577,-1073612415,-1070920065,146110955,-1206096152,1877704704,721837195,16352192,-338623363,1418451665,16352004,-489617282,-791555119,336328930,167924747,-1311110434,-686939636,217677824,-109038988,35746816,-109049268,-2145029116,544475641,1432567,-2145617664,1963002492,-2147467867,267100277,-803077710,-1014900214,-487882753,-2132808712,1963002492,651753218,1455621513,112852055,1604711168,-1913157794,1015089268,259964929,1073822849,218040957,-939582232,-1023409916,-1073675065,218645959,122013184,1441852288,1465314443,-2096608117,142544889,243255563,485212203,-1461188427,2147465243,1149962987,-2133199354,-388820799,17464448,-654900619,-2130162293,2126512633,33128725,51346752,-1073660479,20780670,-1995997888,1583286341,146129757,-1206162712,149635073,1625821365,-1073629157,-335677720,478881509,39095078,12173355,2043808512,-137169143,-2456613,1300824497,1095946,74830347,11655815,208982539,-773140159,-338112037,-1073628685,1300888547,106793224,-1996208759,361300565,139234243,2132867459,2110327603,33128764,-1290568000,-685891060,173801984,1946549120,150700043,-768932236,451658379,28889643,100368384,-654897035,183227127,-790099787,-2147436006,-1377189845,39619328,1544166410,71600897,-2147068789,276238569,-955596022,-768896365,2115027328,266436851]},{"sector":4,"length":512,"data":[-1101652509,-1026293761,-422330157,-937177461,-232537805,-972302797,-653598966,-1319174774,-686939636,217677824,-109031308,34829312,-109049268,-2143063036,1047792121,208854007,28379883,-653604830,2147468161,-2097151979,695795922,17464448,-92205451,141918208,1962934333,-1877546237,-1962973719,851562702,-1040840116,-385453055,-336003242,175931599,-150506239,-2082932782,-1993932838,1435051525,1448461058,637831974,637688971,637815947,-1123658613,-771031040,645862268,578144523,511040267,443924491,-339738178,-137169101,-137103407,-746326568,13730560,-1124019581,1086193665,1976699648,-2016311542,-293366837,2029185808,-1073525237,-921445613,-176565741,-1995805303,1435043957,72190214,-1996333687,-1017291259,1284200277,1073316616,-922011265,-108968323,327073793,505547955,1543635159,100368394,-75495052,721712136,723577837,-1193964563,-75497471,1977453317,-136775912,-137168941,-1257313323,425322504,729809085,-1948611630,9562563,-1962513269,1552614484,725388034,820609216,-1005971849,-955580236,-628360309,-315894389,2115027328,266436845,292870646,168870272,-772943420,-774123046,-488845089,571257330,-2147428594,812911865,1946220928,172753429,1946483072,167346211,-654893452,418057586,28413419,-1056256221,-1182793979,-116195328,-787228397,-394729197,175931543,-149785343,-137168939,-170330157,-2097097853,-712834862,-1817485568,-1783917909,149914539,1448461149,-1947302057,-108853170]},{"sector":5,"length":512,"data":[187465024,-2126152247,2126512633,571257107,33609486,-109049266,-2146667515,125044985,29285163,-1106121792,12255233,1946807168,-400509672,300619887,1183432747,38177024,-1996208503,1988691550,11593992,587217086,-775015439,-772877842,-2082539538,-24967226,-1274645241,-352155136,721586946,1342082011,453641852,-135578744,-2147418182,-355268639,591919755,168064464,-1250855717,404088864,212976179,14093858,1947007360,16351256,1308761716,83460106,-109048972,168195081,-349997606,-2147317689,1962936190,-10426049,209050378,141936517,-683945469,116123510,-683945469,-293347470,50953223,121800903,267115766,1116325635,2135311879,122847238,1945596416,1590819079,138870534,-1017291169,-1962654581,1552614996,172788232,1962949763,41714447,-1475775232,-167414401,259260868,-729759742,13796096,-623835789,-2092705583,847150787,16776065,-489613443,-607065648,-997532975,-695541110,-1834224758,82805675,142377411,159203329,1223166133,735193879,16759744,2088883435,2126512392,-401558267,-617933005,-1014246517,1465303275,-1960379386,1418405380,-772396286,735498722,1960706779,-98256,-343728012,-623838850,-729091446,11659402,-1070921954,-1416516693,-1416385646,1594338198,-661929122,-604513782,-348126789,197823448,-2096204600,-355434773,-770457597,-347354504,-1073628169,-1957182741,2089484612,88902403,-1962453878,62261340,873132066,145228917,67441012,14123776,-2147430013]},{"sector":6,"length":512,"data":[57868498,-2126259504,2114191043,-294590,608861447,-773664520,182112491,-1946973497,-772812321,-774188584,-774123047,-774319633,-774254118,172231387,-657330223,-640558383,-60826671,-1851026517,-2085907797,-1161623313,2088828928,2126512392,-351226605,142377228,360529921,-1241521990,372893704,-787852278,-1949750326,-339637287,134200265,-1940417045,-1899787048,-1950314789,-1070922156,-791551279,176000509,-754601557,-2124385046,1946681338,-2129611964,-1845231894,89426859,168814208,55348211,-1979622261,-788484060,-774647328,-774712879,-774647328,-774712879,-774647328,-1831677487,-1817472597,-1934912853,-1899787048,1606455003,106728131,185590659,1544225884,-1172567294,-880787455,-1968379120,-477952420,73141007,184704011,-1174047460,-1746157567,-2147134325,1284181990,22842115,78652554,-456079106,-774777903,-193342957,755020880,1487602686,-1679097680,-1510189226,-1381653083,20778123,84901184,259801086,-372121391,1605097681,-4668578,737274751,1458432960,-1945756073,-1899787048,-35942720,-1928825715,-1817376131,-472793045,-777269039,-2129627925,-1824522517,-1515870805,520617125,-1195155873,732676097,-1414812736,1391389611,106203990,2147476097,1410012171,72616706,-75292299,-2129103617,1073809535,1468731772,-1933050,186059647,1460339287,-129665788,-2084349346,1047855099,17334145,-1959297984,-494860713,386629631,184702731,645137495,990270603,511116887,1418402418,72825604,275911799]},{"sector":7,"length":512,"data":[990008459,175571543,344655474,41359163,-1252527221,344844289,-67107143,1610196467,28420843,11600619,-1913877675,1465317990,-1962379637,-1047918978,839533874,1183320644,138710010,1023958411,964509697,1073871745,-1019522947,1295124605,-142109942,1284113387,-78739446,-1995944821,-75367346,125747201,1077789483,-1957331456,39619332,-1962652533,719914580,-1957211391,75402207,1610550504,-2127138213,2084569595,-96040419,594919434,-4516629,172329727,-141835982,-402358645,359857897,1149895659,-79263734,33310407,-1951077568,-1964505986,16181750,-1946204536,39684869,-1962652277,1187382869,1853882622,427559167,-1963047288,-1964799292,-1963357473,-1964340531,-2147436842,2097741678,-10059545,-787450873,-774254102,-791096869,1325334110,737179135,-92372737,52262144,39588612,319048723,1735591508,-640558383,-657335343,-106800,1475083334,33257088,1545274411,72096514,1929794587,-76120040,-137169151,-137103407,-27330864,331813877,332338143,4243159,662238730,-803900338,-791544218,-774777903,-260451821,21032579,267123830,-411708917,33310407,-79247680,-803149056,-954991002,-820781293,91477779,1191172817,-58818052,578633729,33324673,-64717120,-1425768821,-1416516717,1183558546,1183493116,1583327995,-1034033781,146079750,33310407,-1257772224,-62470384,-924270591,-79247854,-1950340352,-1949791272,1438968784,1720577163,-61384962,-1962379637,1284114046,172831242]},{"sector":8,"length":512,"data":[-1946268024,1149962333,1073822984,-75421571,930955265,24953659,-1073660525,-1023208578,1073823048,1027621757,1350549505,1961365685,-1073629166,-1957217301,75402207,1610439912,2105620594,2126512392,1445194520,-1946157125,75402231,1593656552,2088837234,2143289608,75401997,-336270104,-402082461,28840503,75402048,-385986934,1357640903,-185800624,-404162681,5040372,14157443,-771006696,-783348872,-774843930,-774778413,367448530,-746389504,13730560,1929433731,1205522691,1073872769,-1309998468,2123102091,-1416385788,-1416451183,1183493014,-1426017026,-443851169,442973,780883797,-13958952,-141832309,-2146482442,1317734004,41323264,-2147268874,1308823412,242619148,1190592275,24412175,-1948570801,1727466566,331875076,14124018,185616011,-149457728,-939327386,-679218669,273058560,50489079,-2080762896,1183514835,107411212,-99356669,-1962880125,1727467078,334496516,13861882,185747083,-150309696,-268238746,-746325485,1456024320,1183576459,107411214,-636225533,-1962880637,-1073016762,1727469428,335020804,13730778,-149928309,-670890394,-696006125,306612992,611631115,50489079,-2082860040,-696057647,306612992,50620151,-2083908648,1183514838,107411218,-233584637,1587009163,1438866783,1720577163,140413944,-16353281,2013201527,725090050,1465274560,108956668,839534474,1183320645,141921277,-2130163829,2101346814,1073823038,-25079939,528400385,2126512445,1036397329]}]],[[{"sector":1,"length":512,"data":[259866625,2143289661,-401558201,28840087,-1257444416,-1258099960,277473284,-1975516744,2123103566,-216406012,-1962813975,75402231,1929079016,142574067,-763609087,-336390936,-1141666841,2123104255,-78649340,-856958350,738084489,-162100279,990279051,721647602,1183531478,368506868,-854458367,-1979953528,-1957627322,39684869,1435177443,-263837436,435314201,1981412438,1592976118,1183442679,-141323538,332923878,71666634,-939268361,-1845439869,107345814,-763116029,-262264064,468864539,1444672582,-262239754,-1980608887,1972106310,-1846085882,-768870665,331486201,-1982846006,1310324822,-60915462,93016064,-486384245,72715025,435045929,1444540510,-193586702,-144772382,-141323546,332923878,71666634,-939268361,-1845439869,107345814,-763116029,-295818496,468733467,1444672070,-295794188,-1980739959,1972105798,-1846085882,-768870665,331486201,-163149366,301485569,1443953238,1435211516,1569427970,688644868,1578757702,-229238288,-419957278,-419982446,-904669181,-150583925,-2084502554,1579876562,-263840786,-1980606949,1183444574,74812400,1972106755,14058246,-628685709,-472837653,-758001455,-141297929,-773074442,-1176579880,-242483201,-738733686,-554249993,5621,334913043,1981020238,-61467910,225700560,-640557359,-657335343,1191173840,50277374,331813878,332338143,13795575,1962825355,-2147435004,33194306,-385647552,2123103790,-1817445372,-1767140949,-1968467285,-1416037050]},{"sector":2,"length":512,"data":[-443851169,442973,1458342741,138709847,2126512445,1073823017,2088773757,745865226,-386840088,1049296951,1465254104,-41162666,-396994985,1291844080,-670661880,1583287296,-4471971,-385971201,-219416239,1424490933,-385971442,1170731222,-348126968,-1957210399,-1962878914,1435175005,71666438,-788378229,1124561915,-657331503,-92022319,1394439166,-1949660335,-101545000,-151527727,1995455310,-268220910,-779362607,-286538869,-774188551,1175972824,24375355,-1856284266,-768870665,-556666621,-1038886703,737990163,-1414819383,-1416451183,12102547,1583328000,1073873091,1090715970,-326412989,-1928694273,1465317990,1569392011,72190722,-955886197,64582,721976715,410847356,1200640747,2085567979,-60370438,-741220143,-770453039,-294053006,1996903483,1005023764,225903692,1547427954,1913026306,1912880089,-62455851,1545274411,72096514,184964123,197361663,1947039954,-523153596,-774777903,-176565741,1460173827,-1409909109,-1416516717,-1420252270,-1728166262,-718896981,130006016,-62485760,33455744,-654900619,-1976633309,135275925,1593890070,1575324510,-2016311357,-276589621,1976699664,-2016311382,284132299,-276573817,1976699664,-1073627238,-919875029,-1070867669,1418437099,-1933050,185863039,1410007636,-1254853628,216131585,-381353800,1435173009,-1933050,185928575,1426784853,-337349372,-326413028,1988843350,75401990,-1962392437,20777053,-2118419136,2101346811,1003523025,-1962770493]},{"sector":3,"length":512,"data":[33194451,-1975812416,1295649356,2135522314,2093169469,-1958969548,1161496132,-1255639802,-684842493,-1958841344,1161495620,-1961331452,1161495108,-2146405118,1265894141,87753867,12060021,1997859648,16351242,12061301,-2146899199,-160104199,-2013265736,1593890086,79846750,723290880,39619357,-1962779365,1562051676,-150374652,-2132573221,-907295628,1954603907,-1949504579,1998400284,-2133068023,-1368064793,-410995733,-341347076,1073789110,17333377,-2129428800,1073809532,12063101,175931393,-1207733247,646447104,-1950154539,-494860716,336297983,184701963,-562822060,-790101579,1157675019,12116203,142377280,327073793,17333377,-1206813376,2088764416,57999626,-2013134835,-1023355610,-1962606408,-494860716,336297983,184701963,-562822060,-352255816,1465275865,14167691,-1962916213,1317732958,106334980,1988886315,33456392,-2094959424,226488574,-1014237045,-896804469,-964439509,209667600,-640554287,-657335343,-236199983,12576721,331813632,332338143,4622807,-1996333431,1451820110,-1948284154,-151548977,1954546502,6195978,-788377973,-1949183517,1727463494,332923652,66524106,332010456,-1948677129,-1946801202,1727464006,332923652,66524106,332010456,4623351,50751223,332010456,332923895,-772336694,332338147,-1948677129,-1946801202,-520682426,-904669181,1183577875,40302342,-904669181,-670828781,-149698029,-150583669,-939326362,-15470061,-233584637,-1962879101,-520681914]},{"sector":4,"length":512,"data":[-99356669,-1996464503,1988690510,108955908,673478,542407,1566465792,-326412861,102651734,1727401136,797958,74843030,-1947380760,105840382,-1957200258,-1979656130,1160779333,-124983286,1569260937,72190210,1594250633,1426911107,14167691,773688110,771902859,772035979,772175243,973751690,880020038,453008939,1444610638,108403460,-688450445,-772287753,-2081039369,-763166511,14058240,1586037044,38701312,-1996204407,1183319670,-1913955062,285236737,1443955278,108400900,-8525475,14169739,-1382830596,-1382896239,-1985106537,-2029987786,1023355895,-149850879,-137168938,-170133551,-686567661,317454099,-773926407,-774254118,333386715,332862415,-660518921,-1416390912,-1416451183,-1416385642,-1426063176,1583292167,311901,8,0,0,-1430913024,-1431655766,10922,604176385,572662306,546,-458031104,13634816,13,141426689,775669579,0,1086717952,7051542,0,1158414337,45202,0,1171587072,214,0,524289,0,0,0,-120,2147483647,65536,-1431659866,178956970,0,1527047807,5965232,65536,26945263,106522,0,-1814245859,1183,65536,-146034417,8,0,209442819,0,65536,-387213848,-13697733,-1206622154,-397405078,922746423,1448476888,-2081030936,201381894,-48371517,-902365394,348960788]},{"sector":5,"length":512,"data":[-31856560,-345708349,-386069784,-907482199,-1775361,1757558211,265986593,457,2048,0,0,1459617792,1431655765,87381,-1107296000,858993458,819,2097152000,613566750,9,-1140850432,477218558,0,1543503872,6100735,0,-671088384,80571,0,167772160,1036,0,256,0,-35192832,-1124073217,-293874012,-5022620,-1258290945,1962690437,10555696,0,0,25165824,-1677721600,-1297062662,-18479331,-1677721345,-1297062662,-1702115,-184549121,1174686651,11306326,-436207616,-1121986194,-18220535,-1929379585,1539126651,-598652,2130706687,-620612139,13398912,1426063360,1720577163,1448564478,-1293396393,-28915722,-608239616,-25263339,-2027851005,-362092297,-11075961,-402597834,109312695,1024196824,141885440,-2080487681,-638907193,16678531,1843922293,-1956254976,776732254,171914,-2114036087,-1961480253,-386430981,-24647124,-666989738,1166890752,14197748,-222894000,-396994730,1374221433,1448499177,-873496,1442895926,-164108202,14157443,2287640,-2114027893,-2028598329,-370218761,922746503,1448476888,-2081258520,201381894,-443851169,1465303901,-2081834520,2145388668,-385971449,585886182,14171787,50873731,788220648,360265471,1343585208,1476151016,250107478,-670661644,1583287296,3523,0,0,50331648,0,4194304,-1459617792]},{"sector":6,"length":512,"data":[-1431655766,699050,2013265920,1431655765,87381,637534208,572662307,8738,469762048,763549739,728,-67108864,54539257,52,335544320,1077150546,3,503316480,775669612,0,1275068416,38783408,0,-1862270976,1762830,0,1358954496,73590,0,-989855744,2860,0,1426063360,780883798,2123170008,-666990092,-393746432,-396994985,780792657,2089484504,-520125688,76240766,-1962779509,1418396748,394086150,-640554287,-657335343,368409671,-746389504,13730560,-2097098109,201381934,-666989572,-1416385792,-1416451183,-1414807509,772599683,389887743,1343700920,-1577373976,1448083672,-218896298,14157443,1566465804,401652675,-1438963364,440,2304,0,0,1744830464,1431655765,349525,-1174405120,858993460,13107,-1493172224,613566659,585,1291845632,1908875869,28,603979776,1952246614,1,956301312,330427565,0,-50331648,17793238,0,-1258291200,1107066,0,1426063360,1979706507,-1957210616,39684869,-1962652277,-92207531,276280581,-741220143,-758001199,-16777026,367787598,-772287753,-654846985,13861877,-2097098365,29229266,201272064,-1827047982,-276589935,-1056996592,780398975,-1962147624,-402597826,770434902,-783348872,-774647328,2043810769,1381455605,-1957670063,8120564,-401057346,915138448,-997523240,-396996522]},{"sector":7,"length":512,"data":[-997985815,-25785076,14167683,-666989812,-405280768,1443657101,166221655,1996445680,-59310084,-2081307416,402708486,-443851169,-1957313699,-1957210388,-416225033,14169739,-1107285784,1038620761,-667513881,1955419648,-396995060,-11079275,1996488310,-242489090,14157443,-1956749544,1438866917,1465314443,-1073185661,780355198,-1962147624,-402597826,1174398532,1465341448,1458543592,719869783,-417077005,14163595,34097027,788035304,409286399,1343776696,-429336,1459673142,-247994282,-2096610049,402708486,-443851169,11649885,45156075,78709483,-326383730,14171787,1359637898,142443344,-2146730016,58000121,-370810904,2105737402,192823304,-941203224,2164293,-973035031,-1929377211,915010677,-24706856,-2014974232,141329406,-171841534,1183319844,-27358468,1946483584,-60947909,-2012748928,-338559906,-24702605,-2014984472,141329406,1465341442,-1980832792,-1962878914,-62458121,-402294269,65796775,-1963294232,-338625442,1022094288,33310454,-142143116,-2014997784,141329399,1465341442,-1980846104,-1962878914,-91625225,-1946911603,-62458170,-2029880829,1347852279,-232003497,-788767094,31686891,50232960,1580335988,173902079,14171785,-1899764341,-667513913,-193164032,14171785,-1947923480,20777028,1027112256,780058625,-561315663,-402162616,-544479745,11862449,1359638406,1509629160,1963063680,283660558,139329509,-396994985,-2007372240,914950764,-1950154536,175439870]},{"sector":8,"length":512,"data":[-1880819992,1291782724,-1897141496,-667513913,-193164032,14171785,-337313560,-1949856222,-1929324490,1049228412,-1712848680,-1911493660,-667513913,-193164032,14171785,-387658776,2105599375,427098122,1023952267,226410497,2101346621,-47978484,14169737,-352012861,-402541310,28836415,-1308718272,-456005632,1085859563,-1911624960,-667513913,-193164032,800595179,-1949856256,-1929324490,1049228412,-788594472,-396994730,915009361,-326434600,1342177464,1023952011,1316945932,2130690109,-452728742,-16235009,-2147428810,-218048730,14093952,-386430204,110094636,-1957691178,-447944452,-1928835841,1448545404,-314382249,1945686360,-2063284435,38061924,1153956318,-940363004,-1258027452,-24433685,-1528297291,1073854465,954728625,-1958679580,-474552066,80165355,1153892352,-956301310,1092,410823,1149845632,172279304,-1912698112,1323830389,1448564475,1458483432,-437758377,-25263892,-2147191551,-1996420492,-1962878922,-946945051,-1256685939,-1326871808,65140234,12631800,-2096304509,-873985297,-192983573,237751947,-293404456,12500738,1961480701,1202057986,-666990265,-946945280,-376766283,12048778,44010030,-667514112,738102016,-666990085,12630272,91541035,-202780164,410422693,-2081707800,-964490041,-192983798,-669086781,2005750528,-964471284,-1961563380,1392564254,1443657613,915081707,-1923743528,-1907159972,-201987897,14169737,-1021942136,14100096,-2147095556,-33499354,512477070]}]],[[{"sector":1,"length":512,"data":[-1923940136,-397013897,243332051,-2096955177,914951366,1720189144,-946945258,14169739,-1997243672,-1899817370,-667513913,-190126080,-1022474615,484580522,491724104,489102617,494869874,438180378,453188130,460659555,466230151,467278799,1347615995,1465275731,-1960947450,780744428,1992622302,1988734226,-1898476526,-1731425569,-587497325,-13755022,907915415,14171777,376897728,-567899338,123281152,1532845663,-1244702120,387073,-338892053,508645607,-727703786,-703690240,1071742976,171962752,585140933,-153079071,41158852,-1048305652,-2146693260,570479778,1965046977,1482235661,-1568725821,1495204052,45663064,908184885,13639305,-771322826,646657536,1495204062,1566465799,911890523,13643519,-1320005293,638235908,-947250037,-436803374,-685633614,-436813310,570486970,65721299,702914,-477896201,1522729743,1438866265,1465314443,155486758,-805273563,172329408,-1977219919,-523040700,181790930,-148434753,1955435495,-5707770,-703413501,-403187061,-137720941,315098087,49185750,67080680,13730755,-1957243374,-1847068710,-403180917,-134576237,333317090,-293380360,-9377790,-636239613,280951315,-1813579993,-419968373,-134576234,332268514,13796344,-385976693,-670826674,-2097098365,-763166505,4241408,225825291,1946161197,-2015918292,-338982919,1208711407,-774773807,-770451503,1988883833,-1994618372,2089353804,106203396,1594377353,1575324510,-1073628989,1364255979]},{"sector":2,"length":512,"data":[78734512,-1963788654,-771042092,-1830810908,-455996716,-427113462,-1017620053,1458342741,1150024791,-1961063672,1418396236,74746630,2080374845,3943736,863969148,-569640319,729225074,1799028353,595005298,1983904129,460785522,2012281731,738243606,2131756036,-1947760112,-1949398055,-338547726,-345510928,2098211950,-773140210,-774254114,-19083045,49446080,13861860,-2097098365,-763166506,280925696,-1846085849,-141297929,-10557194,-141438421,-151546890,-386467951,-745799856,-1846085743,1172895479,-137262081,-12654346,78711508,-1005919022,-25785430,-804633462,1583327944,11584349,-218101319,-1242895446,-37623800,-252995152,557916471,559227211,560341343,560800132,629089546,635905509,44369618,21170134,572269077,572727846,573317677,573841973,44369618,21170134,49088088,24643378,581378733,584131396,585179830,583082663,581378801,598221586,599073658,597369727,1491599797,91089405,-990501769,1123120416,-544422774,242532388,-678657988,2123040882,-1962707196,-1406790530,119857286,154940139,-953808523,-460718780,-385533207,14744924,1347615995,1465275731,-1960947450,780744428,1992556766,11685394,875343142,-1468856260,583010235,-1845746980,1942028160,1090486375,343151223,-75448277,638612742,309758381,1709956748,65776934,-1986483162,11997814,-13704239,52445351,1174604870,-337736696,205914952,-1945745917,54455262,1174604358,-338260984,172360500]},{"sector":3,"length":512,"data":[-1945745917,53144534,-561248186,1174610923,-337736698,205914908,367779468,-1944947063,-1898410288,29488832,401290100,-1945483773,-92236074,-1761512191,-796082034,-1040787314,-2145750015,57917693,-167732759,58007749,-1157482519,-652083194,1353187118,3717152,-388905694,-2137659183,712229117,14171787,-1995640957,-1157572546,-652083194,1486356270,-1898869728,835265,9297803,280613003,-1493225946,12001376,44010030,14196992,-1040787453,1959824132,735283970,46266102,213779316,638630144,1621557038,1381191712,-412948143,1364349776,-2081873687,1397755078,-284563119,1381191827,-414783151,1381191827,-354948783,587204285,549844713,-973716875,-166038256,1416956101,14171787,67105976,14328824,1344670648,1889992494,-666989792,-151550208,158664901,1344673208,2024210222,-637090016,-1207956480,777004555,544777983,570427576,-1192752187,-162519531,91558085,-2136539346,787973920,546350847,-1258066199,-78518271,637841859,-1560132469,-1960443692,14066436,1021903029,-666989573,217023232,-2082398232,201381934,-666989629,217023232,-2080657176,201381934,-666989629,217023232,-2082091800,201381934,8841411,-1207924504,103481536,212992216,-4590858,-922512897,732686547,-1414812736,-588725333,-667513857,1837835776,1439531510,-401609899,-964434582,180847372,-439228975,-277278348,-1070920725,-218102343,-773467733,-1007454747,637583551,-2096862069,-847162170,-305048235,192146897]},{"sector":4,"length":512,"data":[185265795,-336366099,-2081566449,1323830511,183403493,-244126255,14171785,-369310077,-694026445,-1581012224,-1070792488,-166940416,-1324931847,-1948200445,-2147429362,-401946651,-1950110831,-402597834,109306042,-1022623528,14169739,-2080651800,201381894,-667513917,-455809024,14157443,604095244,605365332,609952783,609952852,609166427,611066964,611787895,611787860,12002423,44010030,-667514112,-1275919616,-2132991464,-653654303,440828,-1029177554,-668040413,1049299968,-1510801192,-1090386199,82509836,49040,11861633,-24702860,-1321205320,-596514816,14169601,-947694101,-1948808436,-670159922,370045952,49185543,-50282817,-1510741551,-669646340,-164304128,796133317,-1528299083,-1960252423,-1962878914,-1425766651,-503134589,27912694,915144331,-1510801192,-1962828055,-667513858,-1985613056,-385820618,67371407,67372036,1028,0,134480896,67504134,134873090,168035332,619054084,620242155,301278456,620237362,1975544,4194351,6422609,8650867,400237816,358422739,619714131,620242168,271394040,257956234,89007352,620233275,1954555128,-960298742,-1023407548,317216598,-1017225251,15270325,622707705,623912276,626795839,532358511,786244096,612796298,-472803432,-22675666,-666989788,217023232,-1499988178,-666990300,15067392,14169739,364445323,-13742042,-1960532313,-1962878922,217023486,-1499988178,-666990300,12708096,14157443]},{"sector":5,"length":512,"data":[12183820,14171787,772568461,614897663,14169737,-1962891543,-1929324482,364383349,-13742042,-2145081689,-41934875,-1085639421,1049166016,28836056,-402607808,1972230915,49251082,1626113021,-218091335,-737753179,-952041472,1057019398,-637090045,-956301312,-1073686522,-536426752,-949132032,1962992134,-469317753,-352321280,50167825,113641333,-352321324,-402541307,837548059,-151590000,-243982395,755030177,212926656,119863798,-523107407,13897355,180872576,240028136,915409899,14300811,-667549386,1048655360,12583128,-1959391369,520150566,1583286105,1515739997,-286536497,560513589,-921707870,-1036697602,-626908824,1073727759,-4177408,-4175872,-4175360,1056964608,-102865787,-1257966797,16383,11632512,45156075,78709483,1441126811,1720577163,2128452606,1720359934,259170047,-109040011,-1694075646,-644097827,1948183528,-1693680882,781965533,1312473,-337323621,-639722740,114896539,-644153324,11004388,-1679697509,3070766,-908485888,-1241982565,-789831166,2128452589,1720359934,-780493057,-1004403792,-456071984,-66793264,-108998448,33846530,604026305,1946265607,-371287291,-577043477,-220619815,1946483072,2047060009,-908485885,-1681794661,-644101928,-925328439,-1681793381,-388957479,-986519344,-644152460,-102851616,-527814165,-461312816,1961177601,-522609917,477758376,-1681270373,-576985895,-157548930,1950416710,-639722741,114896539,65732654,-1946558821]},{"sector":6,"length":512,"data":[-1681695259,-1957304871,-26833428,-25240165,-10057061,74617246,1290476661,1216039540,-1680286309,170842926,-1690965248,781965790,11995,-644142357,-388391967,-1680746341,-1677820195,-1627429238,57926004,-1681270373,208925657,786116251,-560267254,49643753,1946338806,-522609917,-1017256565,-337061477,-321283320,-644152341,-908485651,-1678996651,1720575449,2128452598,1720359926,208838391,-990509708,-1692961790,82565341,159058804,-1680286309,403101998,-455501056,-644143893,2128321472,2122423286,1967128574,-58818286,192249856,-1679238757,-644093474,-1694241799,-443813415,-644103331,-352210454,-339137781,-371614969,15401393,-644152349,-438723639,-1913877675,-576980378,65272446,-1681270373,-1627691382,1964012179,-656565466,-577043485,-388391976,-486496279,-656565501,159058804,-1680286309,470210862,-455501056,-486502423,-908158205,-1679697509,538368046,2128452352,1190566906,192168443,-1678714469,-560207655,-1688147007,-644093735,2128190401,-36070406,268127872,-93398629,-2130912869,-1678509210,-1678086439,-1677961509,-644101671,-908485664,-1677862501,-560211491,-25263127,-1684963584,-644091687,-1042375704,1945923281,-617702647,-1694489554,-543438370,-644088762,-36070455,-153494117,108266183,-1679238757,-443813410,-1957313699,508973292,34031350,-973405836,1149960822,1010052351,-2096336120,75563758,1988731854,1998842626,549778982,-293392779,41322754,1184564422,-1071266678,-790048761]},{"sector":7,"length":512,"data":[887673064,-668596968,1579091081,1020222808,-2096531703,80151278,-957637744,59567339,61932448,65864630,67699711,3277838,3801142,27132203,26804628,33882622,-50658807,1426478672,1992617099,-1985141240,-600045450,-259323534,-13724008,1560504980,-816292345,243059966,-453637456,2061212566,183403278,-1013188739,-855706069,-610596484,-964489622,-1678513398,-352276285,28348419,-326414251,8313243,7768987,-67017088,-1694415352,-1694470439,-593760551,-1042375702,-1694468471,-1694470439,-576988706,1486553214,208046173,-639722557,-1693620598,-1693679907,-1995618678,-1681716154,-320087592,-338569061,-455500825,-644095253,2128452581,-1950115066,-24966538,-1005489663,-1064565154,158647051,673479,831071744,1443138507,59479,309485151,-1022639733,1317662324,140413190,-645151858,-443818005,13351005,-2097151767,1946159742,106873873,-1959687386,-1932817660,59587,-1070397070,-1996077431,-1949628346,-860332571,59648,-991130795,1586169982,652149510,-259324021,-628355957,-66292027,-628185869,1560774950,-1962931510,50782989,24445517,13809867,233,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,131072,0,565248,65536,53248,458800,53248,1638408,53248,1835018,53248,2097154,53248,2293772]},{"sector":8,"length":512,"data":[53248,2490390,53248,2687002,53248,3342366,36864,3539456,36864,7667712,18087936,8519680,18350080,8781824,36864,8978688,18087936,9830400,18612224,10092544,565248,14483456,53248,14876714,53248,15466510,53248,17104944,53248,17563692,53248,17825838,20480,3736029,20480,5505230,20480,6029525,20480,6553757,20480,7078086,20480,8126982,20480,9437702,20480,21299677,20480,23396847,20480,24183294,20480,25690627,53248,18087974,53248,18808870,53248,19005480,53248,19202100,20480,19398930,36864,19922944,18874368,20316160,36864,20513024,18874368,20905984,36864,21103104,53248,22806572,53248,23068718,53248,23789610,53248,24576046,53248,25296940,53248,26083370,53248,262196,53248,589876,53248,1048628,524288,1245184,524288,3866624,53248,4915250,524288,5505024,524288,9109504,524288,1441792,524288,3145728,53248,3735576,53248,4128794,53248,5373976,53248,5832730,53248,6160412,53248,7077916,53248,7340058,53248,7602200,53248,11534364,53248,11796506,53248,12058648]}]],[[{"sector":1,"length":512,"data":[53248,16384028,53248,18481178,53248,18743320,53248,20054040,53248,20316186,53248,21364760,53248,21626906,53248,22085666,53248,22347812,53248,22872098,53248,29687830,53248,30212116,53248,30605338,53248,31129624,53248,31522844,53248,37355546,53248,37748760,53248,38141976,53248,38404122,53248,40108060,53248,41353246,53248,41615386,53248,42008604,53248,42467356,53248,43515932,53248,43843612,53248,44367904,53248,44892190,53248,45482016,53248,46858270,53248,47120410,53248,47644696,53248,48037912,53248,48300058,36175872,65536,36438016,458752,36700160,1245184,36962304,1900544,37224448,2293760,37486592,2555904,37748736,2949120,37748736,3473408,524288,4063232,524288,4456448,524288,4849664,36175872,262144,36438016,917504,36700160,1572864,36962304,2228224,36438016,9043968,36438016,13565952,524288,15204352,36175872,15990784,37224448,17760256,37224448,19857408,37224448,20578304,36175872,21233664,524288,26542080,36700160,27787264,36175872,29753344,36962304,30146560,36175872,31653888,37486592,32374784,36700160,33161216]},{"sector":2,"length":512,"data":[36175872,33554432,36962304,37879808,37748736,38797312,4739072,21692766,4739072,30343693,4739072,40501924,4739072,51970997,37486592,39321600,36438016,40304640,36700160,42074112,36962304,43646976,524288,44171264,37224448,49610752,36962304,50266112,37224448,51314688,37224448,53215232,36700160,56754176,36175872,57409536,36962304,58195968,36175872,59572224,36438016,61210624,4739072,67372005,36700160,68485120,36700160,69206016,36175872,72220672,36700160,73007104,36175872,74121216,5263360,11010251,5263360,11468991,2134016,851970,53248,1245232,53248,9175099,2134016,9437184,2134016,12320768,2138112,13500416,53248,13893691,2134016,14417926,2134016,14811142,2134016,15073286,2134016,15466504,36864,15925764,2134016,16973824,5267456,17498112,40894464,19922944,2134016,20250640,2134016,20840462,5263360,22413624,5263360,26214712,2134016,27459586,2134016,27721730,2134016,27983880,2134016,28639240,2134016,29032454,2134016,29818882,2134016,30081026,5263360,31916034,524288,39976960,2134016,40304646,5263360,40697856,2134016,41025538,2134016,41353222,2134016,41549826,2134016,41811972,2134016,42205186]},{"sector":3,"length":512,"data":[2134016,42532866,2134016,42795012,2134016,43188230,5263360,43581440,2134016,44105734,2134016,44498950,5263360,44892160,2134016,45809670,5787648,3801165,5787648,5963909,53248,4128822,53248,5242934,53248,5505080,53248,8257590,53248,8519736,53248,9240630,53248,9502776,6311936,1441874,6836224,42992317,38273024,31391744,37486592,38076416,36175872,39583744,36700160,45481984,36962304,45678592,7360512,11010200,7360512,19071108,7360512,20512772,7360512,40173720,38273024,44826624,7360512,50200580,7360512,51839098,7360512,52953210,7360512,54984704,7360512,55574560,38010880,1179648,38273024,6488064,38535168,2752512,38797312,8060928,39059456,2162688,39321600,7471104,53248,9961524,53248,14876724,53248,17825844,9457664,2359573,9457664,21430769,9457664,22807110,9457664,24248865,9457664,25952870,53248,131124,53248,1966132,53248,4325428,53248,6160436,3710976,7798784,53248,9175092,53248,16646196,53248,17694772,39583744,589824,39845888,917504,40108032,3080192,40370176,3801088,40370176,4194304,39583744,655360,39845888,1376256,40108032,4325376]},{"sector":4,"length":512,"data":[40370176,5701632,40370176,6750208,11554816,720935,11554816,1376300,14155776,2031616,39583744,786432,39845888,1310720,39845888,2228224,38273024,4456448,53248,4980788,38010880,6946816,40108032,7471104,40370176,8650752,40370176,9502720,39583744,786432,39845888,1310720,39845888,2228224,38797312,4456448,53248,4980788,38535168,8650752,40108032,9175040,40370176,10354688,40370176,11206656,39583744,786432,39845888,1310720,39845888,2228224,39321600,4456448,53248,4980788,39059456,8192000,40108032,8716288,40370176,9895936,40370176,10747904,39583744,1507328,39845888,1835008,53248,3080250,53248,5570612,53248,7995444,53248,11141172,53248,13172788,53248,14549044,53248,18022452,53248,23593012,53248,23920692,53248,27983924,1572864,1179648,1572864,2949120,53248,8519732,53248,1179700,53248,4718644,53248,1835056,53248,5767216,53248,8060980,53248,14876724,41156608,65536,42209280,262144,42471424,458752,53248,983090,41684992,1310720,41947136,1507328,41418752,1703936,18370560,1114140,41156608,65536,42209280,524288,42471424,720896]},{"sector":5,"length":512,"data":[41418752,917504,40632320,1310720,786432,1703936,18894848,2031634,18894848,3145763,18894848,4259892,18894848,5374021,18894848,6488150,18894848,7602279,18894848,8716408,18894848,282136613,18894848,355800168,18894848,355996778,18894848,357766346,18894848,357962956,18894848,375854555,18894848,379715586,18894848,380180015,18894848,384374283,18894848,388371833,18894848,388568443,18894848,406722365,18894848,406918975,18894848,424220761,18894848,429660249,18894848,435820645,18894848,436017255,18894848,466288704,18894848,467337263,18894848,485425154,18894848,495721642,18894848,495852770,18894848,495983944,18894848,496115023,18894848,496246041,18894848,496377127,18894848,496508274,18894848,496639359,18894848,496769562,18894848,496900638,18894848,497031714,18894848,497163011,18894848,497294179,18894848,497425269,18894848,497556359,18894848,497687498,18894848,497818575,18894848,497949658,18894848,500768176,18894848,541073719,18894848,541204801,18894848,541335883,18894848,541466965,18894848,541598047,18894848,541729126,18894848,541860228,18894848,541991277,18894848,542123274,18894848,542254463,18894848,542385637,18894848,542516711,18894848,543171093,18894848,543302172,18894848,543433254]},{"sector":6,"length":512,"data":[18894848,543564323,18894848,543695405,18894848,543826476,18894848,543957557,18894848,544088628,18894848,545268397,18894848,545399463,18894848,542639826,18894848,542769829,18894848,542902230,18894848,543031619,18894848,544212690,18894848,544342693,18894848,544475094,18894848,544604483,18894848,544736856,18894848,544867053,18894848,544999218,18894848,545128824,18894848,557129792,18894848,565387344,18894848,567746648,18894848,569122912,18894848,569573378,18894848,571678816,18894848,576921712,18894848,578232440,18894848,579215480,18894848,580591744,18894848,581050512,18894848,545530692,18894848,545661649,18894848,545792694,18894848,545923809,18894848,546054823,18894848,546185921,18894848,546317041,18894848,546448039,18894848,546579218,18894848,546710440,18894848,546841466,18894848,546972597,18894848,547103615,18894848,547234715,18894848,568796688,18894848,571352592,18894848,576529931,18894848,577840661,18894848,578823691,18894848,579872277,18894848,602341378,18894848,603923394,18894848,599925761,18894848,600056916,18894848,600187925,18894848,600318991,18894848,600450139,18894848,600581204,18894848,600712283,18894848,600843355,18894848,600974415,18894848,601105492,18894848,601236588,18894848,601367671]},{"sector":7,"length":512,"data":[18894848,601498743,18894848,601629780,18894848,601760887,18894848,601891959,18894848,615387637,18894848,615518770,18894848,615907358,18894848,616038447,18894848,616169536,18894848,616300625,18894848,616431714,18894848,616562803,18894848,616693892,18894848,616962011,18894848,617093331,18894848,617223517,18894848,617354835,18894848,618008621,18894848,618142090,18894848,618270560,18894848,618530126,18894848,618660411,18894848,621945990,18894848,622535934,18894848,623322278,18894848,624764070,18894848,614868198,18894848,614999275,18894848,615130360,18894848,615261432,18894848,615654648,18894848,615785720,18894848,616834296,18894848,617489648,18894848,617620728,18894848,617751800,18894848,617882872,18894848,618407160,18894848,618800376,18894848,618931448,18894848,620635421,18894848,620766548,18894848,620897584,18894848,621028671,18894848,621159772,18894848,621290863,18894848,624371221,18894848,628565525,18894848,625681574,18894848,627451046,18894848,628958374,19419136,54920076,19419136,55051168,19419136,55182257,19419136,55313334,19419136,55444461,19419136,55575551,19419136,55706633,19419136,55837710,19419136,6946836,19419136,7864340,19419136,8847360,19419136,18874414,19419136,21954570]},{"sector":8,"length":512,"data":[19419136,22675456,19419136,25165834,19419136,30343192,19419136,38731804,19419136,40042528,19419136,46727204,19419136,55967794,19419136,56098870,19419136,56229946,19419136,56361259,19419136,56492446,19419136,56623508,19419136,56754585,19419136,56885758,19419136,57016837,19419136,57147913,19419136,59048810,42729472,2031616,524288,4063232,42991616,5439488,524288,6750208,524288,10092544,911560788,0,4194498,54723359,57344859,60162947,63898575,919348,864,4194314,0,0,0,0,0,0,126,0,23724032,37879808,0,0,15138816,388,314,0,28508160,0,0,268,194,0,213,47644672,35454976,33947648,0,0,652,44957696,50003968,460,31719424,0,613,248,0,0,0,1448019801,1095520837,1644167257,-721365633,1493172224,1398362886,5064020,15294720,0,1325748224,1263489622,14614758,0,139460608,1163023951,1380930130,14614758,-1,189792256,1314018895,1330009167,-431731115,-33497344,16777215,1326141440,1330532950,1330464077,15096146,-196385,65535,1448020560,1162824018,1380930130,14614758,-4]}]],[[{"sector":1,"length":512,"data":[240123904,1314018895,1397572943,1447645764,15094341,-327457,65535,1448021584,1162825298,1162695501,1498566477,14614758,-6,156368896,1381127759,1280660293,340,12976128,223,1448021074,1095914578,1431257936,33641550,-704643072,57088,1326207488,1330401878,1329808449,22302293,4,14614742,189923328,1179801167,1296387145,21316687,6,14614710,189857792,1381127759,1178878277,-146583979,100715777,-973077491,16834304,-553593344,512,1448020562,1095062098,1179992644,0,-855509248,1392508928,1381388039,1414090313,1033,0,100663296,1037,16777216,-553613824,512,1448020563,1229867346,1397572948,2057,0,100663296,1037,0,1392594944,1381388041,1112819027,201934421,0,0,67962368,0,-436207360,33611520,156434842,1196578383,1430410309,1050950,0,0,265478,14614758,0,1448020819,1413829458,1381254482,1313113,0,0,265478,0,15073281,587333855,1326142209,1162302038,1413829204,403265874,0,0,67962368,-553589248,0,1326142208,1279480406,1112686917,470369877,0,0,67962368,0,-16777216,150994943,268436736,134219776,134319104,134341632,134344448,134348800,132864,0,134221568,16776960,1074088192]},{"sector":2,"length":512,"data":[16776962,402775040,16776961,2048,0,1536,0,1024,0,0,0,1536,0,1498613248,1296389203,1325858816,1280460118,284993,1968577792,1448020754,1095520837,1095773785,1363,0,1163284235,1497451602,1245859630,5,184549376,1380275791,777211205,4866639,-1192916651,10092753,-1996488704,1354980844,1028150337,-2115204267,-67075348,16003,-1608551424,1183318016,10676478,-1444406925,-401313024,259195103,-369099080,1051984007,-4709939,-1954616321,20768984,-1070337934,2122437171,1968852472,-62485720,-150863686,-95515678,-511583753,-1054146049,1375787651,-1949660336,1107343568,199762381,1918523393,-125926979,-1233825708,1341816449,-1984989866,-1560281058,378077184,113704962,39452672,134796,184549537,1962934790,444170,-1945970944,503317006,235067578,624932895,857678285,41920,-899816053,-1927413756,385842878,9824263,817152799,54272461,-1910623630,-1912602594,855649310,-1073042186,179108725,-1376356928,-8470899,-544536810,-1073042772,1547438196,-544475531,-74714389,520116968,512630467,512622592,-164429780,234881215,375047,225748723,-1073042354,70974325,-115348875,3965123,-1097992076,118947710,-527777742,1958742700,1950039047,-219436540,989626446,-58718092,-1341950884,1444850268,1577060072,533623327,108447171,852003500,849671149,-1769100608,521600894]},{"sector":3,"length":512,"data":[-1258404214,-1021194947,-128545506,112795414,-851463168,41033505,868467003,408512,994472960,1962934278,172352,132651,1547,-594857099,71812150,-1897348468,408320,52589056,1912602630,429601,104539648,376897538,-1560280925,44236802,-1547685120,80347136,-18432,-38210069,-1578046465,103481344,1609039872,-594818304,71812150,1189659276,41728,-1593834294,1206386688,-1957311744,4097004,712245248,-1560280927,10551296,-1911297280,37546176,-1557741517,-1557790704,-1591345134,-1073020908,10742133,41728,-4666531,-1309217793,-739716348,14844362,-1010693136,-1059912527,-265957237,266503167,920423363,503596942,7819,16011,638633859,267915,101616422,1442560,34476800,1107343360,-1910103603,855642142,244000466,1068761096,1047667149,930267451,-1325396219,652792580,1050115,-768354162,168725286,-1273175296,1914817855,1925266205,870961430,109979382,-1375993840,19323019,871948863,-1207702592,-903937948,1439367170,1397812363,1465274961,12060190,-69693952,637689540,1854093311,91554306,-352308504,113607448,-2030025077,1183447622,2222080,-2030025077,1183447622,-1591321856,20774930,-4187392,117440542,1516134175,1566071641,458703,1048782336,1946157072,113714697,65554,117402091,-402259968,-1960443402,-2097149418,78712770,-805049645,-352204056,2112377396,429568,346105344,41728,306086694,259325952]},{"sector":4,"length":512,"data":[637594088,1050311,-1075314688,638446337,1183487,-402585368,-1070399155,2010131290,10553288,279127552,-16382464,117440542,863354891,-402575128,-402259844,109969779,-1960443904,-486534130,408348,1360425728,1048782416,1962934290,9496579,1493265896,-339672313,-373094435,10551296,1958742784,650153534,1054347,5691,-919390349,-1064415167,1351974,-193609717,-1593835357,10682368,-1588525312,-1557790720,109838356,669515776,403713,7596032,-1578704295,10682368,-2144943360,-369090498,-1960432268,-486538738,278996489,-389903360,-1960443719,637538334,790155,-67100481,39160614,-1951733072,-1014256702,-1007557973,540966950,712297728,-1960394612,855642134,8906953,34507046,244000256,549388300,-1960379392,-843579051,-1031034049,-1430244693,-1580994334,-1960443904,637538326,637538467,528011,870961473,-1036256010,-242547086,-35204786,102694539,-1064379762,520594931,540966950,309644544,637549800,790155,-67099713,63407019,-389809438,100728930,-1155661824,126550016,125091851,347854990,-1930171648,346236423,-389865728,-620036087,-2026503052,868418127,65754587,184577675,990934253,-193657770,184829577,-1947372069,1575611357,41411,208977931,-1591295858,103481360,124977152,721420449,-1023410170,565542,-1325396219,-1008151804,1481461061,811096152,104579123,57999360,-397415608,91488356,-335545416,7399493,-88603277,-398726145]},{"sector":5,"length":512,"data":[225640613,5771,1741505972,-335545160,2001705,-851528704,444193,-1946060544,-1006632434,-1560281082,109838338,113704964,6684672,134796,10731571,378260224,1169424384,113534925,10682370,33983488,1740163840,-1188967115,12451848,704256,-65073634,-1021335821,1741504948,7817,859832248,2001874,1966848,281248512,52872078,-2097149946,-1960443694,184552990,-1142524453,-201900032,1135925387,-456103987,378078322,1438842880,378268811,1202978816,10577869,63517440,83886086,-1064435696,-1591328432,-1073020914,-617353867,1359478579,637534369,637538467,1449609,406751526,106386176,2031366,1532954368,268879654,-150994944,-402099496,57802771,-1664097703,5771,1741506740,1575324573,378218179,-164429816,259391243,1477458,1140897792,-799381555,-1188465948,-819249152,41077307,-785659253,109970974,512622592,-201588736,-2128672860,1967128831,-13417725,-998911477,920423363,-1962653810,-1275068394,644336967,1449611,135695142,915088896,-13434856,725614777,1925856206,734694146,378229457,12058624,1516752196,393602058,512624158,-1910112256,-67104762,520594675,200684355,-1966246446,1357132484,5771,1741506740,182872,0,0,0,0,0,0,0,536576,458752,36873,9240576,544777,9372250,53248,10485764,544777,10617559,544777,11141848]},{"sector":6,"length":512,"data":[53248,983040,53257,1376262,53248,8519696,577545,8716290,577545,8978436,36873,9633794,53248,9830404,53248,10092550,53248,10878982,53257,11993088,53248,14024752,53248,17367088,544777,17956864,53248,26214416,53248,26607630,53248,26935318,53248,27197466,53248,27459608,53248,28573698,53248,28966920,53248,29360176,53248,30015500,53248,30212118,53248,30408730,53257,30736384,53248,31784972,53248,32047112,577545,33226752,577545,33619968,53248,34340880,53248,34734088,53248,34930698,53248,35127310,53248,36962318,53257,37158912,53248,40042512,53248,40304688,577545,41418754,577545,41680900,565257,48496640,53248,52297732,53257,53215234,53257,54591492,53248,56623118,53248,57081870,53248,60030986,36873,60686336,53248,61931534,577545,62652416,2097161,64552960,53248,64749582,53248,65732618,53248,66977806,53248,67174412,53248,67371018,53248,67698702,53248,68222990,53248,68681738,53248,69271560,53248,69468170,53248,76611594,53248,81592330,53248,81854478,53248,86179854]},{"sector":7,"length":512,"data":[53248,87097354,53248,87425036,53248,87687178,36873,4390912,1069065,4522361,53248,5767206,1069065,5898342,53248,786448,53248,3014674,53248,3866640,36873,4784130,53248,5046310,1085449,5242882,1085449,5505028,53248,6160424,53257,6488064,53248,6815762,1085449,7340034,53248,7536678,53248,7798824,1069065,8585216,1085449,9830400,53248,10420224,53248,10682416,53248,13369362,53248,13893650,53248,14352384,53248,14745648,53248,16318472,36873,17760256,53248,19529746,53248,21168146,1085449,23068672,53248,23330824,53248,25231378,53248,27787282,1085449,28835840,53248,30539794,911560788,0,4194498,107742740,108791420,110823052,112789177,1555,672,4194324,0,0,0,0,0,0,126,0,97584248,0,0,0,1206,90833978,806,64881466,0,40763392,27657501,36503552,48627712,0,1524,62391625,68222976,12714830,22348494,95289942,25494161,0,45678592,15925248,0,81134453,51445760,674,41944310,60293379,0,1380123481,-905969580,-788475490]},{"sector":8,"length":512,"data":[1493172224,1398362886,5064020,15294720,0,1107578880,-433048489,56064,0,1124356096,-433048497,16833280,0,1107578880,-433047465,33610496,0,1124356096,-433047473,50387712,0,1292128256,-431010225,117496576,0,1174884352,945049167,15087704,16777435,0,876806992,-620698064,256,1342177280,808993539,14352614,3,89128960,1128352834,-620698037,0,1342260736,1431060996,-620698043,256,1342177280,1163020037,15093317,131291,0,1497564240,15093313,196827,23330816,1163002704,-620698044,1024,1342247680,1195461895,1096044101,14352614,5,89128960,1464816194,-620698034,1536,1342177280,1195985929,1380406344,15096129,458971,0,1094977616,1380404050,15096129,524507,0,1229719888,1112819783,-431663796,151051008,-788529152,1275744256,1414022985,1162170951,-620698034,2560,1342177280,1195985929,1497584712,15093313,721115,0,1229719632,1381255239,15090757,786651,0,1229720656,1297369159,1313163073,15090004,852187,0,1163462224,1464814668,14352614,14,89128960,1414088791,-620698043,3840,1342177280,1229734405,15092558,8388827,14876672,1212353106,1112228677,1262568786,0,-620691968,1375731712,1162363656,1329941315,65606,16646144,26607835]}]],[[{"sector":1,"length":512,"data":[1229196114,1413694802,1162103126,131151,16646144,219,1212352850,1397441349,5721934,3,14352638,139591680,1414742348,1162104653,1024,-620702208,1375810304,1480938504,1414807892,393298,11927552,219,1230440274,1229800526,524366,14024704,50069723,1230440274,1095582798,655448,14024704,219,1396771155,1313294675,156521027,4,0,218497024,4,65536,14352494,1392583430,1497713418,1397051984,155469139,8,0,218497024,16646148,219,122880000,1145128274,156845387,12,0,218497024,18219012,219,139657689,1415071060,1162104653,4105,0,100663296,1037,16777216,-620706304,512,1230440019,1464812622,5129,0,100663296,1037,67108864,-620710400,11928064,-1241382693,33610496,14352566,1392604418,1414481670,156850255,24,0,218497024,4,131072,14352566,-620710398,32375296,1213662803,1480938053,7177,0,100663296,-1241512947,56064,1392508928,1162368774,156845394,32,0,218497024,11927556,219,106103240,1397902403,604590659,0,0,67962368,0,0,1124487936,1329943116,2623820,0,0,265478,0,37879808,1313408851,1313426515,2885957,0,0,265478]},{"sector":2,"length":512,"data":[0,28639232,1162086227,1313426508,3148101,0,0,265478,0,77004800,1163135315,1329812568,156389196,52,0,218497024,4,65536,14352566,1392640514,1480938510,1128350292,1330792267,155471445,56,0,218497024,4,65536,14352566,1392508930,1464814600,1162103126,3934543,0,0,265478,0,72941568,1229457747,1230391367,156190020,64,0,218497024,4,0,156434432,1297239886,1162103126,4458831,0,0,265478,0,93061120,1162085715,156844364,72,0,218497024,4,65536,14352598,1392508930,1431261957,1275675726,0,0,67962368,0,-704642816,33610496,122880535,1330859854,155471445,80,0,218497024,4,0,0,50200584,46792712,47972360,20774920,22151176,31784968,34668552,35454984,26345480,28049416,29360136,29687816,36241416,37945352,39518216,39911432,40304648,40763400,43384840,46333960,8,3145728,-65464,98762752,-64936,786432,0,524288,0,1124270080,21586,1398362886,72172884,-1981087744,1124536569,1345213522,348993,0,1380124416,1112485460,74,0,-387610283,12517376,240590336,-1090518808]},{"sector":3,"length":512,"data":[1461583872,154,48896,-401713378,12517376,-1705566720,0,-883037047,-739766348,1946631173,1979923466,243718,-402630936,146014369,-1142358222,616860165,303743,855638178,41664,-1577056862,-1572863994,1085800448,-1077899776,-1977221012,87696901,-1977156748,-18171,-1207812120,-141492169,-137219120,41969,-1172369890,465043711,522308901,4242115,-2144943474,-33519834,108267324,41026620,-1269824592,89450496,1961101912,286439469,1206386867,288405509,11665591,-2147140120,376777466,-2029092826,12058880,100710657,-1274730008,-400510190,-1262287582,85780495,288405584,11665591,1476727272,-771096399,414320757,41354044,-225836623,-889269110,-25165644,-1274907112,41729,136841,3720,1734,-1547685119,378077184,1354956800,47134,1048631438,1946157056,101107205,1478426880,104759503,24444928,101107395,28573696,108271309,382533812,1588655339,-1341974296,51636291,-855438872,920423203,-402372725,1860763427,303359,-905969502,-594870270,173509174,142051894,105876022,74418742,662163770,595064122,528009982,460902142,238733822,326565890,775605758,192348163,5769,3721,-905757208,12058632,4098566,953088,1477376,70576128,5771,-888987160,-1207757080,1049232896,-896860160,5770,-888923672,-351862344,100775939,49932368,4098648,952832,-1947301376,973078550,839022062]},{"sector":4,"length":512,"data":[66382016,920423371,906385290,-33261686,1442506,974615040,1996488726,47119889,1912602934,20331017,-402426112,80347838,45213696,103465610,-1057095680,44427467,103466634,-1057095679,920423371,-1476114550,604271856,-2139091953,1879048230,1544,-1962933558,1200240348,-1324932092,-2132749820,-1895825370,1544,-2147482934,-150994906,950475,-1597306880,10616836,-594818304,72846134,326423051,-946929869,-1962571226,-1962934242,452811,-889686710,975568898,-503155451,-594820103,73370422,-1170940488,-751108078,-201909645,1642387595,141886376,1642464012,1139193520,1122419594,1122420618,-469761334,-419683231,1048628065,1962934277,-855526392,1946202134,-889081854,-973077088,1286,309706762,382592050,175489034,337544,41280522,417858480,-594818050,2143630878,38127364,1170724784,-1929347068,-1996455803,1569459269,273008398,1301021481,809879058,80355072,517769984,75482422,-1157406280,-880081857,-1325236863,-955616041,-676199867,-1962668360,340101592,-1995027060,1301026909,474843418,857623948,80355264,-326413056,637959876,1241798027,1972053578,2110006792,-958713076,1286,-10688498,1006633401,1010070536,1009808403,1229222916,661920572,594805052,930350652,1182014012,1333005628,-814604228,-881534405,1124173862,989894888,-1950320930,196930547,-1330088741,8906760,-2098716496,-402083840,-498401155,1000664042,648049886,540803466,1793628530]},{"sector":5,"length":512,"data":[-270384384,1048613355,1946157056,25699978,-401937597,-953810866,1124732161,108971075,-1993949133,-1993996219,-899872163,-594870268,75482166,139299622,139274534,-1004135965,1048579197,1962934272,92939787,1191189736,65796066,-402613016,-1070334757,855639242,314048,48762288,1393209344,1342591569,1476424424,712247100,762579004,863243580,896797244,512362932,-13500416,1375732153,1510041064,372949758,544604160,5770,246683627,-352235032,1456659,-32672768,-1979061302,-352321514,583683,117452264,-1017423526,909821694,410386433,1381093118,-1979317832,-1962934210,-1962934258,-402653162,1499070742,839103683,17623551,-13499724,503383529,-1912586056,1343654872,-628416768,-1977157749,1946631173,1946696737,1946827820,1947024437,-1023523015,5690,1877490806,-6232064,5770,1676160235,-1202564864,-1008202233,-346465792,5564444,5690,-889318540,1206390763,-8853504,1072170987,1477120,-141867264,-1495082357,503329256,-1912586056,1343654360,-154760704,838879782,-1950219274,1662421960,-301027328,-980811541,15461954,-300961718,-1047920405,-1021317566,1668609851,509039185,735021830,1477326,3574272,4241408,-947201906,4859638,-1023148238,-125050671,378264203,-1031602077,-1207912442,4800128,-1274907385,-1910569296,-620036928,-1968433548,27847896,-319095947,-76283480,-72629365,116124898,-1414731894,520617186,-1017554337,106256214,1560744141]},{"sector":6,"length":512,"data":[12803679,0,0,0,5505024,262144,36870,458752,262144,851968,36870,1048576,18362374,1376256,36870,1704192,262144,2097152,36870,2294016,18624518,2621440,561152,2228228,36864,2424838,36864,2752513,561152,2949125,561152,3145734,36864,3407872,561152,5898240,36864,15073284,561152,15335426,36864,15597571,36864,15859714,36864,16252936,36864,16515082,565248,16908288,36864,17301504,561152,17760262,561152,18284550,561152,18808838,561152,21626884,36864,21823494,561152,24641538,561152,25165827,36864,25559048,36864,25821194,36864,26673158,36864,26935304,36864,27197450,36864,27656200,36864,28573702,36864,28966922,36864,30343174,36864,30605320,36864,30998538,36864,32702472,36864,33095690,36864,33619977,36864,34013195,36864,35127304,36864,35913737,36864,37289990,36864,37617670,36864,38862854,36864,39190534,36864,39649286,544768,6291711,544768,52167465,544768,53543777,544768,53740607,544768,54854670,36864,40042502,561152,40370180,36864,40566790,561152,42008576]},{"sector":7,"length":512,"data":[561152,46923781,561152,48037893,561152,48300037,561152,49414149,561152,58261509,36864,65536001,36864,69468162,36864,73924614,36864,74973194,36864,75366408,36864,76218376,36864,76873736,36864,78118923,36864,78970886,36864,79233032,36864,79495178,36864,83492874,36864,84279304,36864,85852168,36864,87228424,36864,92209155,36864,92471302,911560788,0,4194498,232590677,242552437,248254141,269160459,1593,144,4194310,2,0,0,0,0,0,126,134613072,3377,190187994,148244155,0,213453157,2684,0,41943040,151650986,198770688,184745984,2727,218957082,167772636,193004117,3103,47513794,28772945,133237545,216793088,195887104,0,205914879,19857728,17302579,3178,162728051,2089,24904197,0,3220,1329857369,-251658157,-788475634,1493172224,1398362886,5064020,15294720,0,1174818816,1381122371,-620698023,256,1342177280,1095779847,1498696018,14352614,4,173015040,1481982278,1095322697,15096146,1048795,14876672,1514538320,-431009211,1073797888,0,1174753280,1313294675,14352614,128,156237824,1163284294,1330398802,-620698025]},{"sector":8,"length":512,"data":[524288,1342177280,1129137672,1163087692,-620698044,14135296,1342177280,1229800967,1414877262,14352614,55217,139460608,1431260486,1414877268,14352614,55218,122683392,1313426758,-430680753,-1291789568,215,1376276480,1329873221,-430355378,16833280,0,1208373248,1162101833,-620698034,512,1342240000,1398362887,1162627398,14352614,4,139460608,1431064406,1145652557,14352614,8,156237824,1163020612,1380930627,-620698023,4096,1342177280,1129464071,1163282760,14352614,32,122683678,1180257857,-431666103,1057020672,0,1124487424,1414745423,-922597038,16911360,0,32512,-620698112,-2147481344,-620685824,-922601216,1359008000,1413566471,1381258056,13173364,66060,0,79,14352614,5242889,14352662,13173348,105972267,1397901636,43930196,34341065,1,4390912,15073280,590043,18219076,42860763,201,1095632721,1414743373,-922564270,16911360,0,2048,-620698112,150997248,-620685824,-922568448,1358954496,1415070982,-212708269,201378050,258,67108864,-436207616,151051008,369100032,-486483199,51458,1376342272,1397311301,1397900628,13173520,1310722,52560664,65536006,69469190,970,1480655442,822083592,-620702205,1375731712,140001794,54525954,14352598,38928384,67655747,-704426240,56064]}]],[[{"sector":1,"length":512,"data":[1141002752,395352,14025566,53543131,1346503250,1828718600,-620702205,1375948544,139023106,58458122,14352598,38929186,201869636,-704410880,1073797888,1141002755,919635,14025626,57475291,1397031506,-1459613688,-620702205,1375952384,1095517701,302535495,-704398592,2080430848,1090671107,2124,11928522,62587099,1212219986,-654311160,-620710397,1375971584,139215362,65536002,14352566,38929369,50874434,-1241254144,-1962878208,1124225539,264268,11928582,66519259,1212351058,352322824,-620710396,1375967744,139215874,69468166,14352566,38929429,117983300,-1241513984,56064,1174884608,1380273225,71451461,131273,71958656,394324,82642060,1144,106037248,1145979208,542028,-704354560,56064,1292128768,138757199,74973186,14352598,122815572,1396917586,138762825,76283908,14352598,122814464,1447645776,138761281,79429638,13173936,65548,1,26,14352614,1703937,14352566,13173920,139592807,1380275029,1096040772,-318758904,-922427132,16780288,256,4096,-620698112,268435712,-620710400,-922431232,1376041984,1296125444,3147845,84803584,786633,1,5177344,15073280,65755,18219088,83755227,26214601,1163134801,1430410328,-922404538,16780288,0,32512,-620698112,-2147483392,-620685824,-922408704,1359071488,1480938503,1128616532]},{"sector":2,"length":512,"data":[13174100,16777218,90572124,111673350,101189243,0,1095239250,1162626126,2030043144,-620702203,1375731712,1146047748,133189,14026122,91816155,1430390610,1514754886,264261,14026142,219,1380976466,1413568073,395333,14026162,92930267,1430390354,1397706822,-989853688,-620702203,1376085504,1179992582,138694213,98041866,14352598,106038706,1346786626,201871956,-351931648,134269189,956302349,-989804283,1325945349,1179534672,138628693,101187600,14352510,156370419,1431260745,1314211412,1312835,8259102,98042075,1279658322,1179145045,138628693,104071192,14352510,156370462,1397705795,1314211397,1837123,8259146,104071387,1398081618,1094996549,537411924,1862695680,201378054,16777472,268435456,-436207616,16833280,-1241509888,1593891584,1241565446,1308905990,138759489,111673392,13174428,65548,0,79,14352614,5242881,14352662,13174412,106038686,1179014466,-2146938299,956301312,51461,1393119488,1129464133,1128616520,13174476,2818050,115214036,6,1854,1837,1229325394,543820,-16315648,201378054,16777472,352321536,-436207616,16833280,-1241508608,-285156608,-570373882,1090802182,139613268,119275541,14352566,72484619,1162692948,754980360,-620698105,1376197632,1514754820,1706053,15075134,219,1095631954,503858509,1593835520,201378055]},{"sector":3,"length":512,"data":[258,201326592,-436207616,151051008,369102080,1325456129,1426114823,1141395713,1413829697,2068139337,33605895,-2097148928,101158151,-788012800,-1341669369,1375731719,1095063812,2130,14026654,126681307,1330447698,138957902,128974850,14352598,55705600,140067140,130023428,14352598,72482816,1381322568,-788527608,-620702201,1376230912,1313426691,-520091640,-620702201,1375731712,1128616707,2568,-620702208,1375731712,1397703688,1330795077,82,12976128,219,1329859155,1380275795,1313818963,1033,0,100663296,-704642035,56064,1392508928,1414416644,526674,0,0,265478,0,11927554,268566747,100714755,89326104,1329877837,788819,0,0,265478,0,51380225,393417,1191662336,1094997061,269043028,0,0,67962368,0,-704642048,100719360,14352598,-620702202,14026240,393435,1392988928,1094997061,336151892,0,0,67962368,0,-704642304,33610496,14352598,-620702206,512,1162282835,1296651348,1575237,0,0,265478,0,14024708,-704249637,100719360,14352598,-620702202,1536,1163069267,1296651348,1837381,0,0,265478,0,14024708,-704511781,33610496,14352598,-620702206,512,1162283347,1380074324,155926853,32]},{"sector":4,"length":512,"data":[0,218497024,4,65536,14352638,1392508934,1413829385,1163018819,604588865,0,0,67962368,0,-33554176,33610496,156434928,1448363335,1179210309,2623833,0,0,265478,0,16646145,393435,1393120000,1163285573,1497778514,11273,0,100663296,1037,16777216,-620691968,124453376,1229195347,1380338515,805913925,0,0,67962368,-620698112,-1241513728,33610496,139657216,1263749444,1163544915,13321,0,100663296,-436206579,16833280,-620710400,512,1162283091,1413563988,940134996,0,0,67962368,0,1644167680,100719360,14352598,1392508934,1413829384,1414807878,3934546,0,0,265478,0,6422530,-704249637,33610496,139657216,1179927879,1162692948,16393,0,100663296,1037,33554432,-620731904,15074816,637927643,1393054474,1413895237,155536713,68,0,218497024,4,131072,14352482,-620698106,512,1229326675,1229341774,156521298,72,0,218497024,4,196608,13173364,-620702206,114033152,1158021321,1174950661,1313099337,156522565,76,0,218497024,4,65536,13174476,1392508934,1347310858,1414218561,155536713,80,0,218497024,4,131072,14352614]},{"sector":5,"length":512,"data":[-922256638,1536,1095764051,1230261059,1409893709,0,0,67962368,0,2063598080,100714759,14352614,1393218054,1413826313,1448365641,1477002053,0,0,67962368,0,-1241513472,33610496,14352510,1393134598,1413829385,1448365641,1544110917,0,0,67962368,0,-1241513472,33610496,14352510,1392616194,1096241931,1128617552,1397903188,24585,0,100663296,1037,0,1392508928,1162169092,6555984,0,0,265478,0,14024705,-50200357,1157911307,155403608,104,0,218497024,4,131072,13173364,-922597118,512,1329859411,1230521683,1146045268,7080261,0,0,265478,14352598,0,1397098323,1129464133,7342408,0,0,265478,13173364,41156610,-2046689079,33610496,122882366,1347962182,155471425,116,0,218497024,41156612,65737,13173364,1392508930,1347634694,156518732,120,0,218497024,4,262144,13173364,-922575358,46728704,-217710391,100714754,139657216,1129729605,1414419791,31753,0,100663296,-973077491,56064,1392601344,1447970054,156390483,128,0,218497024,8781828,65755,14352582,1393075970,1413826310,156651077,132,0,218497024,8781828,65755]},{"sector":6,"length":512,"data":[14352518,-254,255,184551424,2048,4096,570429440,905973760,1526730752,6144,301996032,8192,251666432,10240,419440640,12288,603992064,14336,654325760,16384,1040203776,18432,1140869120,20480,402673664,22528,24576,26624,-1811912704,28672,30720,32768,34816,151029760,36864,83886080,-16777216,1811939583,-16775168,1912602879,-16777216,553648383,-16777216,486539519,-16777216,872415487,-16777216,1107296511,-16773120,1174405375,-16773120,2063597823,-16775168,2080375039,-16777216,721420543,-16777216,939524351,-16773120,436207871,-16775168,-1728052993,-16762880,1761607935,-16777216,-922746625,-16777216,1677721855,-16777216,1258291455,-16775168,1845494015,-16775168,33554687,0,0,0,0,0,0,0,0,0,0,0,67108864,0,0,0,0,0,50331648,5459780,1498613248,1296389203,-150994940,118659448,777211716,89342288,0,1443364864,777212485,88752719,0,1225261056,777147470,88752719,0,1409810432,776293705,88752719,0,1124597760,776688194,88752719,0,1443364864,776360517,88752719,0,1141374976,776688457,88752719,0,1174929408,777147457,88752719,0]},{"sector":7,"length":512,"data":[1174929408,776816980,88752719,0,1174929408,776228425,88752719,0,1342701568,776816980,88752719,0,1443364864,777274181,88752719,0,1393033216,777011543,88752719,0,1258815488,777012549,88752719,0,1158152192,776160600,88752719,0,1393033216,776487762,88752719,0,1158152192,776884312,88752719,0,1393033216,777276496,88752719,0,1158152192,777213518,88752719,0,1158152192,777410126,4866639,0,567095476,1499094731,1344385115,1448235347,-326427051,4570012,-617393394,1586158478,-773598964,505398755,142001491,-1387221508,-1951541109,-796152376,-1377268819,-125063856,-1901244243,1482563520,110939130,-326412969,-66027836,-1413248085,-1951678069,-1420252222,1487652491,-1411871573,-1420252328,113925407,-326413056,567093940,2126832690,-1031099642,-1425375548,2126825098,-997086450,1571492478,1426067658,1317792907,141986314,-1274653046,1562496299,1426065098,750054539,-466476595,2126824074,-963990778,-1425375548,2126823818,-980767986,-1424851260,1100381,-1964209323,1317669998,141986314,-1274653046,1562496301,1426065610,12119179,-1004417741,-2010773890,80370965,-326413056,-1207544182,567096065,182877,-1259566251,-1004417708,1571423870,1426064586,1183509643,-852577274,46816545,-326413056,-1274653046,-1960719050,-49712,-503905164,-899816457,-1957363710,106334956]},{"sector":8,"length":512,"data":[567097012,-796140917,1962934077,-136186108,46816739,-326413056,173458718,-1204764029,567100160,855929631,855829449,41920,-1861845308,147479979,-326413056,139904286,-1959738749,28837454,522308931,-1070398862,1560281251,1426065098,2126834827,495658506,-849936200,856060705,-338545719,-1547685118,2126774272,-1416496122,-899830894,-1957363704,176080108,-1960998106,1451951694,1459730440,41034189,10731571,147479808,-326413056,508619907,-1928563003,118927486,1329376508,1336935026,-1527541352,-978665422,448005718,1452089805,-1960896848,1320421966,-1004592691,552076926,1575324416,1426066122,-987829109,448005718,-1273028147,-1004417713,82314878,80370944,-2095222272,102637255,-1178586593,-218365696,-1965951314,-141865023,-1527513778,-1070391382,-1023410013,-991130795,-1946417538,162597958,-1140463405,1183558407,-754601716,992744,205949867,-1426055387,-1324726645,-1410804981,-1324726645,636015365,-1951727553,522521158,-1411329792,576093,518818645,-66423099,129772973,-523040335,95530386,-805052205,-1378876499,-523039823,95530387,-670834477,65589677,2126782403,-1416451322,576093,-1964209323,900991558,-1064558131,-66683196,-1416385645,445021,518818645,-1979296059,632556102,1562321357,-1090517302,649986048,1227008,-1406206832,567096756,-987868410,-853167083,93265697,-2097003121,-421395257,453116107,892609571,959985462,1027357498,1433747262,10611851,650153472]}]],[[{"sector":1,"length":512,"data":[136843,1183502379,-852380666,46816545,-326413056,9865,136844,16706689,7822,-1996477279,118944326,175556092,-1400734067,41045820,-1852289104,-1070422797,108447146,-16597363,1920875692,-1434537982,-1527541352,380243376,45518111,-193558017,1190551180,-1981645171,1183643774,687978746,2123178445,-58816046,-1191295348,567093505,-1920838003,12120670,1914817867,-1161809150,-628228096,2526202,35032576,10746624,147479808,-850545664,-1957311711,-973332756,-1968437642,67056344,243188958,-987867577,-1968436618,-202558776,-1430244700,1124120655,1108235973,1579098573,-1040775566,628359192,1192132292,494203707,-527777742,1950039212,-214193659,-58657675,-2134739910,-1116447492,-341156688,-993555528,-953479554,1562356296,1426065610,-65082229,-1408862523,-315438966,2126827011,1001211658,-2146338831,209009404,309485884,242711100,183181356,431246926,1090789837,1001077428,-2147126031,678714428,-796245972,1454005424,-1958235106,-853604617,1918770977,1031808531,1359836160,855637945,1336865472,1504337072,-1527525845,-978665422,-1958344074,179066878,1007776960,1007514716,1007055457,738359162,-353654240,1560182145,1325692206,-2128811185,774831741,2105546101,259349757,-2147225725,1950023549,1031819014,184186204,-2133690944,1966800765,-1436766205,727697291,531255239,313949,518818645,309773820,852527788,198872054,-2146470693,1952251768,-8880119,1258517562,1136193909]},{"sector":2,"length":512,"pattern":0,"data":[243188736,855648232,-2147030053,91500088,1977236291,571638,-401965372,-628424688,-1006631752,99092094,-899866880,-752156656,41075515,-1951743093,-203553848,-1007449180,686346803,-654863872,-326412853,106335006,-1962927384,840894199,16824768,-772362510,-1979154748,-1527534911,46816543,429568,109979136,-13434836,650130172,175375674,-1190693814,-1359806465,1438904299,-326898549,-973332960,2123171446,-1408821536,41295676,-1952964688,-796180280,1017908963,1007055457,738359162,-220026336,531250608,2002462,740199936,-2131348736,292814908,-1948221811,1957098442,179064328,-335841856,519998442,-1178586617,-1359871744,2126828022,-1430156790,-1960860429,80371173,0,0,544768,1114181,36864,1638400,36864,3932160,36864,1638400,36864,4194304,36864,7864320,36870,66048,5787648,262182,53254,262192,3182592,327680,3182592,589826,53254,1114160,3186688,8323072,3182592,8781824,3182592,9043970,36864,9306112,53254,3080240,53254,3407920,911560788,0,4194498,16449783,16974083,18743563,19988785,56,48,4194560,0,0,0,0,0,0,126]},{"sector":3,"length":512,"pattern":0,"data":[0,0,0,194,213,0,0,0,0,0,0,0,15138816,0,0,0,0,0,0,0,0,1380976473,1163152969,1543503954,-721365565,1493172224,1398362886,5064020,15294720,0,1275286016,21587,1845493760,57088,1280,805320704,16776960,65536,0,1380976384,1163152969,100663378,1414748499,281925,1263706624,1380977425,1163152969,1095773778,83,0,0,0,1414548484,-443984591,503316671,48983,10114830,-1090519040,1461583872,154,2001664,1140897792,-897572403,-1207912928,567100417,-883037047,0,0,36864,589824,20480,917504,18100234,1245184,36864,1572864,18624522,1900544,36864,2293760]},{"sector":4,"length":512,"data":[-352321096,-1010814206,18364159,-399669016,-1073009237,11535477,-5242133,-1608909662,-16489392,-1574275422,1705126516,711172650,-1574284126,1134701138,708944426,1342179000,-1207472152,-397410297,146278248,1642614784,636935,123398224,144107715,872393192,1491620032,902215881,-917378992,1345706936,-397361101,112775671,28856320,1005080576,65517576,-1419188144,-1022744600,-2081649835,-1000994580,56991774,-1939495906,1586100806,-92864520,1996430931,-297801724,-362753,451475574,100745454,117400996,516187558,-1014930016,-1499396144,736153957,-28930856,-1946394999,-350143946,-60898290,38243110,-2096658138,1308818502,1183575925,-60898056,1577552166,-1034033781,-35127294,131087634,-1070398349,-793241365,-1326952441,-1575581422,1705026405,1344355512,-1191218712,1438842881,516222091,-1014930016,-1499396144,736153957,71732184,65065288,126559960,1705121419,180829,-2115204267,1442906860,-1962641781,104531526,91383206,-352320314,-11133382,-1159199114,-397389057,1444867457,-24736490,-1927917314,860945990,1520062656,-401637099,1035503492,-396996575,1499021378,-16873843,937973328,1582913856,-1034033781,-1957363708,82608620,-1957210622,-1232271746,28900860,1911050240,1958742793,4096868,1567948860,703018751,-1992850200,1044119110,209002810,1705522943,1085663318,99309913,1676170839,702783999,1449503395,103532427,1346380086,17071747,1048775541,1963025830,-339725564]},{"sector":5,"length":512,"data":[71731971,703438928,378142900,11938283,1346945579,-16106776,787021430,-1956749513,79846885,-326413056,33746049,557072003,-1928891136,-1543635322,1048798632,1962949632,336108080,922685313,922689850,-202873432,-1506344962,976682853,876019489,557234209,557365328,-1449215920,149547088,-2129307238,1575324431,-326412861,74877782,1080403617,-793059119,63974151,1002867698,1936040966,-336186620,-1539953916,142016357,-1207535873,-1202716662,-1202716665,-1202716416,-397410271,-1072962000,585826941,-402229505,190398337,-1207601728,317456383,208848443,1343644600,-397361101,-1041504260,1566490675,1426065090,-326898549,-11053558,-400475594,1451884081,-129594886,-689418158,1207471083,1705262633,871909003,-1610208302,14320485,-1577695607,1177249188,1992297462,-94991592,66602635,1380995783,-1577552129,1177249188,-2115481354,-1608596245,-826048155,-28931065,-1946394999,-345659850,-60898269,990350118,58128454,993995046,2099329590,-60898294,638028582,1308772233,50097795,-646580725,1705381631,996517537,2099329542,1958742796,-1207702782,983760897,910066465,310247713,51323624,1210136070,1705379387,251593854,1583292726,-1017256565,-2115204267,-1929314068,1358889094,-955704600,-1608754938,2000585472,91488349,-352315720,112643,-1205777757,-1924131200,1358889094,-397361101,-1072955749,535495293,-16742771,-56301488,-397361101,-1073017060,820511605,-18178,-841684912,-1946163784]},{"sector":6,"length":512,"data":[-1581031963,104538426,108881318,-385953560,-4653549,-1957313537,1208403948,-1711275933,260117512,855930623,1911050432,358193917,-1034088575,983629826,906378017,-1592951775,100868406,104538424,92217658,-335685912,336108076,922685313,922689850,-471308888,976683004,876512033,91488289,-352320840,112643,-47781808,-2129307238,-1957313777,49054188,876512002,125108257,-33651059,375761059,-33651059,976682832,-58726367,1189630034,1493616618,-956257508,18958854,378320896,-24736432,983650557,-1509541087,-1928430235,1358823046,1497199848,-352320763,1354773250,201170664,-352158272,557490478,1705379387,-152563587,-24736259,-1679273731,-12392197,-2037576725,-397345282,619248526,-18179,-859248560,-1946163784,1438866917,113765515,25416,-1560000885,-1073012428,-1070394252,232974416,1342177720,-1711010840,260117512,1503266283,-401637099,-1034027272,-1957363710,116163052,-1923656190,-1543635322,1049322920,916529466,-91846367,1665704445,-33782135,1342177720,872391912,1407733952,-504868825,1241958183,-956300511,-1323542266,-1506345216,943128421,557496353,557234256,-413800368,-963907445,2113929021,9038083,992032417,1962801798,-59119611,983639531,1959213857,1575507721,-25499394,-2037705237,104594940,192176968,557463295,1342177976,-1577333784,-2037833418,1049361914,1218519354,-58291869,-1178170371,-54853627,121319085,1128466036,703330274,174587694,393220]},{"sector":7,"length":512,"data":[1835015,-1374683107,-1373721065,-1374179810,-1946260504,-401937424,-259261046,-488111125,-97283,1290339196,1354773503,-1946230552,-1956749370,-943497755,18954758,-402396416,1048837277,2130797990,-69605130,-326412861,74877782,187882984,856061120,-35106624,2096499640,318669573,-963966594,1342228485,1589177320,180829,1458342741,75402071,-1274264182,-2081387776,2855230,2105544052,125042704,-1274198646,-1947170048,1566465990,1426064066,-326898549,75399940,-2096663552,2855230,1048779636,1962949630,-62470646,-28916011,-970593352,-958727098,-339739066,71731995,1006503483,1187383925,1187432188,149665278,-1006876986,-1258404154,1347469363,1183666256,28856572,1525174272,5224482,1354773328,1342197688,-1924087757,-1202651578,-397410303,-443866559,180829,-2081649835,1465256172,-1962641781,1161926,-125050121,701679489,-15341482,-1996339829,-1072956858,-396924812,-1072955598,1979670644,838592516,200820361,-2096794378,74777086,-12326826,-1274264182,-773795584,98619872,1183390084,-1965519876,-12154873,909843851,192232446,-1962520694,130481246,-1979520051,-92864753,11846026,838920272,-1946204534,126418014,-386369793,-397004379,1583349411,-1034033781,-1957363710,49054700,2123061078,-1161327868,-487129071,-964562805,-396940846,2089025151,141885188,-402361089,1810575729,175439627,1946288003,112645,-1070398741,-1962981752,11798596,1149915200,1073787913,172264016]},{"sector":8,"length":512,"data":[1346371764,-1274329974,1448099840,1358850536,1200233611,1342223361,1200233611,1342223363,-1743829878,-12154288,-1696051048,71600433,16744064,-396950412,1149959906,1342223374,1462014696,-1946286360,1583285316,-1034033781,-1957363710,-1957210388,-947190658,-150990406,-2114941982,1462358726,-2080513304,1962869884,74776338,-399452952,1153901138,1476394756,1610468072,46292318,-326413056,2123061078,-1161327868,-487129071,-964562805,-396940846,-396952149,-1957626414,21465628,-397410124,-396942882,1583349143,180829,1458342741,-1173993845,-487129071,-1207969653,2062035414,-2081387728,1946158206,112649,613476432,28837867,988303360,1592284722,-1034068432,922681348,922707380,-1766300238,314069016,-1205972992,-1202710144,-397410296,378085944,-1365023312,861324133,1443228662,1191130088,2081619587,112886,841738320,1706034887,113704960,26030,-1957313698,-164407572,993787553,678691910,-1560000885,909720574,141831057,-1107207192,350945281,1358954424,-1194812184,-397410303,-1070334542,-38999984,1006515967,872299496,1843941568,1590070051,180829,451065886,754031184,1499012511,451683969,1048637407,1946183331,1343991816,-342384152,1354773257,-386005016,1438851331,-1957237621,-4717450,1122521343,-236431672,1354773501,-2094814744,2855230,-167050124,-397014924,-396951885,-166986430,-1545075339,-402396161,1566443867,-2097151294,3931710,28837237,855829248,1006543808,730939011]}]],[[{"sector":1,"length":512,"data":[-402295808,350945452,1342177720,872222184,132665536,-29949955,-40441797,-1170473311,-487129071,-2020878197,1455630808,-1858174121,309592107,703334086,1683005441,-291308028,702390825,1760043755,1343654408,-1962887580,-141864966,-1957760981,-1560345402,-576574996,80186153,703505151,512879080,1343939256,-1624444518,1599691037,-1957313698,1988843244,770201092,1354773501,1445127656,1459485416,1593608680,180829,-1979645767,-2140909514,378207686,-1031773177,-1207453697,-991427072,1994965843,127002879,-397361101,28900756,-1914155008,586541309,57982987,-2080388632,2855230,113643124,-16766498,-398721482,871104205,702416582,-18431,-955258800,-397361101,28901252,2112376832,-24844033,-2096611608,3931710,922684789,-1578615810,1354773500,-1591618584,297417726,-1948059904,-662205480,-1957313751,71732204,-150990406,-2082960414,-14035265,28837236,855829248,46292416,1354773248,215136336,2275408,816048208,-326412861,1443425411,141986647,-955482485,702806086,1342177720,201308136,-385649216,113705171,25416,-1963434357,11799367,-1240901750,1220684544,-1996071285,119400455,990273163,-2096270329,41812284,233311487,10611199,949891,1586178421,74973176,-1993501464,1586232902,-1977644040,11797319,1354773328,-400666904,1996431075,762833150,989885161,58592894,-1961984373,2126985988,-2093184766,74776636,66759,1586168971,990315270,-1962180665,-1962474748]},{"sector":2,"length":512,"data":[1120938967,-4713471,-219655937,-1996190779,1187510854,-352321028,-92864730,1006257803,-2096073273,1946159742,178181,28836843,855829248,1459572928,-96010492,-1946401025,126551646,2113685051,-1956749360,214064613,-326413056,2123061078,175540996,-396996785,-1957087779,1993292744,-338744572,-1580649726,-1053072568,243860598,906191688,2122539848,158663174,1705647755,-352170102,-1440838905,55544421,11846026,1354773328,-1206027544,-11534335,1178142838,-1207601914,65741120,1344357048,1446053608,1445916648,1496678632,58181435,1610514152,146955614,-326413056,74877782,-2097150778,3931710,-1202318219,-1202711010,-397410049,113742790,89463,1048780011,1963015166,4096789,242548796,922703390,384311610,-397389068,1566499293,1426064066,-326898549,1996445198,-230257400,1695279184,-963907445,1913013819,74857234,2122517879,125042930,-1995809141,-11408585,-1927936394,-1705970618,250347676,369391359,1358579341,-335504230,1354773262,1342918328,1358579341,1344357560,1358186125,1343521720,1342929848,-1271537760,-559919104,1073787957,374864,-610604976,-954940285,62022,-16097653,1996430903,10263048,1183518444,-443851022,574045,-2081649835,1996431084,-498692852,1675552848,-1981393271,1446765638,1966043658,138820357,1451960434,-465138714,1996903995,990213405,376898630,14843523,1451954292,-465138714,-1995546997,126419543,1996445675,142016266,-398029546,8690256]},{"sector":3,"length":512,"data":[1996426988,74907398,-196702954,8690256,-1070395668,189708368,-196702896,558151760,-398029488,344176720,192657488,903848016,-1605369676,11810270,95965248,-504868864,348423130,14829255,241076992,-16615425,1996430903,8690188,1183518444,1575324642,1426066626,-326898549,1996445196,-163148538,-1375147952,-1928825089,-1202653626,-397410294,-259269273,1358317197,199236072,-1924104970,-1924073914,-397347770,1586212398,39291142,2122516361,729088244,-1202667469,-1202713778,-1202711385,-1605366917,11810271,903782480,1346371764,1342178744,-2082842648,-4321596,-1928532993,-11471290,-1326971786,-1957078733,-443851066,442973,558251651,-955745024,2180614,-1961825536,1248111126,992036513,-1996196158,-1021229546,558382723,-955745024,2181126,-1609307392,11822323,-1588932469,-1036312248,378078326,1438851400,-327029621,1465254220,1688800906,1007304323,-2146798336,192021753,1946679680,459663366,855761641,-149820426,1946157510,-351817724,-2011123710,1191100546,10550913,-1432229518,1210513252,1174799137,65065249,-1989890554,-939607418,1325315206,-1441887488,1175333732,-1266250975,1992375294,-336491772,-1263105276,-775517186,-1132033568,-1858173954,242483243,-1268494176,-260864,-21592439,-291499285,-1979665367,-1238766570,1220684544,-21592439,-1268452448,734563072,-1960753138,1006548614,-352160063,-1232172284,-1198618114,114686,-1962883863,1006549638,1935997702,-1132067990,-83477506]},{"sector":4,"length":512,"data":[-1961068700,-1591665130,-2046615268,1347616442,1619430678,-1224781569,-1779892548,-1956910114,-1591665130,-2046615268,1347616442,1619430678,-73314049,-1165612188,-1098479106,1911050494,-266957858,-1165587612,508580606,-10451315,-21068285,-1132033200,-1098503170,1374179582,-1961366562,-1956319210,1392425606,-2037574064,-11468960,-385958730,28892728,1448562688,1619430743,-1070378753,416016464,-21723509,360105531,1346422411,-1263075497,-2037557250,860946112,-1360506688,1688903960,-2046697263,994574010,2013182142,-13375229,28841707,-11055104,1476310198,-20937075,1354773328,1192789224,-21578181,-1029643146,-1962888092,-1948003880,-1973112689,-1962887999,1177955312,-1262122463,1208363776,-1199142623,1928727550,1925188368,-1263125748,990278654,1929295494,1354773260,1343991272,-350471192,-197722348,473098340,1346422411,-21461365,1659392064,-1956749541,1438866917,1465314443,730939011,-1609796608,11822160,-964431733,-1609438213,11807214,-324996981,721466409,-20544528,-1272320608,-1594324224,11807211,-1957693397,389874758,-385649152,-661979000,-13704239,-222723161,-1111885639,45728697,45744826,45744826,-1279664454,-323361095,45744825,45744826,45744826,45744826,-860224838,-1581656903,-953457494,-350140765,1175387970,-16454879,-400472570,871103774,558368455,183173120,-1268452448,-1547293952,113713480,8518,908663275,283844936,558380545,251595499,82518344,558368511,-386070040]},{"sector":5,"length":512,"data":[1583349033,180829,-18346,-1077876656,1342177720,-940104728,521951494,1241958144,-402652639,-397370555,-259301323,2097151619,-1455521772,124912740,1688813184,1457026311,-335612696,1590070226,-326412861,-1610421117,11822274,-472786805,1689290635,-1963047287,93912646,1185152947,2109737761,1174849286,-2097151967,2855230,1352666228,-1962888092,-54426680,-291500053,-1962888151,703373512,-936705868,-12154295,-779468648,-1037369162,186730659,-955875904,2181126,1575324416,-1373715261,1334453861,-4095959,730939011,-1979091968,83932353,1038876669,11846026,18097911,-1728046917,-936707081,1006648963,-2094893824,23438910,28640373,780797931,-981441114,986024703,168457153,-1979419411,-1325208627,-1262384639,-1957313792,71732204,1006634555,10689908,1975520060,320976901,699925483,702915347,1342177720,200800232,855930304,-402199616,28899192,46292224,4096768,91553852,-336667928,-69474301,28858051,-840413184,1958743031,4096803,477430076,1006515851,1358954424,-1195470616,-397410303,-790039492,-72357634,-197990314,-1957313698,705072876,73304832,2760235,-1706426184,1616,180829,1840133887,-1006641176,1840264959,-1006643224,728608929,862331398,-1710968366,60735,-326412861,1988843350,-754667260,71759854,24379407,1840292166,1713505835,108250683,-1031024077,1049301739,906061346,581002786,1840161638,-1070344309,-1034068385,-1343750142,2144472063]},{"sector":6,"length":512,"data":[184843274,855929792,-1190401088,-770965506,-937229707,-2084322933,1812030,580978804,1840161638,512432107,-919397608,453777035,-1709503839,59703,-1374254782,581026669,1840161638,-326412861,1342177720,1342180280,-1962641665,-1976918498,11797063,661121104,180829,-1206498584,-1202716667,-1202716666,-397404427,95955271,146296832,280514560,954748951,380090409,-4593584,-4696381,1005080831,1006543293,-150990406,-1948742686,-1557538681,213400578,99110912,-1421966349,91488307,-350755906,402112003,-1642165418,-1274574294,-806858752,-6756316,1342177976,382842960,686155856,1342177976,1342178232,1343675576,-1205283096,-1202716651,-1202716667,-397404441,113715399,21569,1342177720,1578659304,-326412861,-401806205,-1072995098,1874331764,247175680,1586171777,41418502,-196702954,10263120,95948524,1183666219,-1746382604,-1202104020,-1202716642,-1924136954,-397347770,922691703,922709454,-1927909940,-1705970618,250347652,1344996792,1358186125,1496082920,1423449,440400,-196702896,675932240,728615073,-1318205946,1357435654,-196702954,10263120,-1715990804,1183666198,937971956,-1202104020,-397404400,89730209,-1202716666,-1924136952,-397347770,-443865073,182877,-1275051,-776469386,-857190299,-1733844,-1229454218,448286821,770199552,899171,178256,1706473552,668854352,1343017656,1562756072,1426064066,1465314443,-1962508661,2105739381,309657614,1708243030]},{"sector":7,"length":512,"data":[744024144,-1072998055,-397015948,-1705574490,6147,661962763,-521279402,1348709048,1348686520,1343659448,1348843192,1496080104,-1746382759,1348032811,1496027624,1443687257,1348843192,1342184120,-1201490968,-1202716659,-1202716669,-397384266,-759683229,1239961612,-401713371,1583349407,182877,230643542,-1270971624,343146605,1840529025,209518848,1840529027,-1106938769,65734144,-2080374850,1869460542,1048776308,1962962356,71204954,1400176683,1840529027,-1090095761,12458017,-1863821554,1358077,768080,388216912,-1642165424,38242858,-2146631500,-152547328,138314532,91488316,-351797058,1241958170,-956301023,740055302,-1770002432,1534060624,2113929021,-2131719422,7185982,113706612,26879,1342180536,-1947121688,-1017225274,-4503372,105945855,-1014300672,-326412861,10939521,-4237482,1030399,-259856304,1343715000,-10713459,726788176,11557209,1183651408,345657516,-1928398077,-397366202,-1990645011,1040145030,142475267,61562509,509656,1353467533,-10713459,710731856,62413145,45633536,-2037559296,-397344932,-1950865861,-2037559273,-397344932,1499015935,1348903864,-1193315608,-397410262,1183670486,-2098704212,-1404662305,1552321872,468209919,-1202104022,1347420163,-10713459,637397072,857413793,374362834,1353467533,-335510374,-1404662514,396408912,1552321872,-1394061057,1348032810,1495918056,453943641,872414725,374362834,1353467533,-335510374,192526350]},{"sector":8,"length":512,"data":[-1404662448,399161424,1552321872,-1142402817,1348032809,1495905768,-1343729575,-1202104023,-1202716669,-1924136956,1358912646,-1591374104,78715816,374399187,1353467533,-335504230,379172878,-1404662448,397785168,1552321872,954749183,1348032810,1495888360,1810387033,-1202104023,-1202716669,-1924136955,1358912646,-14333208,-9581002,376294454,1353467533,-335510374,-1404662514,399685712,1552321872,-118992641,1348032809,1495871976,243801,505936,1552321872,283660543,406173733,1552321872,-722972417,-2091296471,7186494,1606288757,-2096108789,20163390,1304298869,-1107039464,-1923737514,1358912646,1495854568,1839767897,1996489533,-774337757,-1476448541,-1057308430,-1056653057,985579785,-1106384104,149624929,-350719042,411090435,1552321878,-1209511681,-1202104024,-1202716669,-1924136951,1358912646,-970680600,-2097107898,-15090114,-1096740492,1389507353,1183651408,-2070261588,-1592857600,101412286,91516352,-350664264,425703427,1552321872,820531455,-1923524311,-1924092858,1358917766,1495868136,243801,702544,1552321872,1088966911,1841471780,78762547,15548314,374362624,1353467533,-335510374,413120526,1552321872,-320319233,-1923524312,-1924092858,-397366202,-1168562031,-802488289,-10713459,-397225981,1499015375,1343789240,-10713459,671148112,62413145,213405696,-2037559296,-397344932,-996072481,1389507437,1183651408,-2070261588,-1206981632,-1924130623,1358912646,1495831272,-1404662439]}]],[[{"sector":1,"length":512,"data":[-1404662448,674752592,2079321,-2037526485,-805044388,678815826,-1732748967,-2037559272,-397344932,1499015078,1342178232,1342180792,-10713459,595978320,862857889,374362834,1353467533,-335510374,417576974,1552321872,954749183,-1923524312,-1924092858,-397366202,-1168562211,-802488289,-10713459,-397225981,1499015195,1343789240,-10713459,659351632,62413145,246960128,-2037559296,-397344932,748757803,-1311624338,-314598908,1347551232,-1404662506,8690256,95948524,-2037559271,-397344932,1499015127,1353467533,1353467533,1495760104,721428410,1552322000,1389364223,1495775976,412661849,1552321872,-337096449,-1202104026,-1202716669,-1924136945,1358912646,-1591555352,-768381394,1067058353,1375731949,1183651408,-2070261588,-1206981632,-1924130521,1358912646,1495758568,-1404662439,-1404662448,656140368,2079321,-2037526485,-805044388,660203602,-1732748967,-2037559272,-397344932,1499014794,1342178232,1342181560,-10713459,577366096,1839742595,-401312510,-768345166,1067058353,-1996488467,1183448662,-399709188,1347614778,463879811,-2146994944,4001598,-1070398348,245434347,403057435,1540502299,332923737,-28407350,872177289,67156178,1996443730,-59310082,15506586,-1927917568,-1705989050,250347676,1343658424,1353467533,1495665128,-1404662439,386971728,1552321872,-1192734465,1348032806,1495658984,243801,1226832,1552321872,-790081281,112673,1292368,389593168,-1642165424,38242858]},{"sector":2,"length":512,"data":[-397410124,28843969,1676169216,1241958161,-956301023,-669230842,-1857034240,1447028816,263780491,703090688,2097089516,-16637,1583335307,-1017256565,-2115204267,1442874092,997113687,1346099896,-402360577,1499014719,163203,495658101,1946173315,1004386309,-524811285,1979666491,74907396,1495621096,1474842713,-380020443,2105737437,410321666,1346102200,-402360577,1213801909,1342457347,1495661288,12577113,33717635,-558360715,905924667,-402360577,1499014434,622651472,-1561765543,41779968,-385649663,-340262765,1996443707,628615172,1174620249,-1125625852,-10921691,-2142859979,632416336,-259303079,1962949760,7334147,-2142871317,292814908,1352139914,1346105272,1495600616,1975520089,2125892073,1174531071,1946172544,-1744532975,1005566032,619767888,-1072998055,1015081332,-972721152,32178180,1005303886,2125922128,1005762815,74907472,1495568872,-1947709351,1348032804,1495565800,1015039577,-342067968,41779974,-2096729084,-202832185,-1956749314,46292453,-326413056,67169409,-67074419,-20649904,-1924087757,1358692486,-67074419,616294480,1793609817,-1547684991,1017322266,456827675,-400868958,12106246,1575324422,-326412861,1988843350,108956420,902643337,117819275,848208640,-1556843357,346240363,872915765,-1959552605,918983,-1557183581,1101213395,819634988,-1556992861,-947178735,-1560275707,27470814,884122418,1057343115,715039488,-1960128093,3212742,-1557483613]},{"sector":3,"length":512,"data":[665004685,96897834,2091057194,720610090,117819019,702784256,352700043,717267712,-1960175965,3671494,-1557527133,914959074,-963958318,-1560277499,-963958284,-1560273915,1805855288,710583082,-1960162909,2295238,1600498851,79846750,-326413056,10546305,607554390,1619445358,-2037579521,-1202651296,-1924130443,1358913670,-2138695448,16736446,1974996597,-2037559271,-397344928,1499014143,-10451315,-1704057693,260115318,1840529027,-1205701632,-11531158,-1922189770,-397365178,1499014107,588572752,1183668569,922702000,233336356,607553996,-443851154,883016541,1713545984,1207975073,-1586646877,-1556060638,-1581027922,-1398603734,-1547685011,-1432130124,-1982712979,-1553084906,113667532,-956076510,-1553062906,-905525402,-399527571,-1365115061,1713546093,-1023409736,1345249720,1345252280,1342439608,1358950584,-1192367896,-1202704669,860892915,-11513664,-13702858,-399579338,-407310746,-71806930,922701870,922693349,179973859,1388327680,-296949680,-1006633032,-2081649835,1465254636,-1107001717,-1705572864,6147,57982987,-2097121559,1815614,113726069,14031961,-1202667469,-1202713749,1464864976,1358954424,1343276728,1342930360,1342180024,309328,-914954160,-2011904893,2122383174,192240127,193528808,-1961525312,-2146309136,1968111486,2106058760,-343929368,234929667,100728449,-776464523,-206024603,-1461170074,1465473314,193470696,-1962770496,1606847472,1575324510,1426064066,-1957237621]},{"sector":4,"length":512,"data":[-1070398346,-382539696,1840529025,58458368,-2097118487,1869460542,2028536693,-1237909760,1747433581,577103952,1048795481,1946185144,1023391777,-1204355248,1023195245,1747433552,562620496,-397387431,1499013506,561834064,1048795481,1946185146,-1172403406,142081901,-1946223128,1036422128,695535104,1840527103,1840914059,-745863285,722518659,71762882,666377808,468209768,-1207243909,860907559,1038635200,1979059146,-18427,-963968277,46292318,793878784,100917457,378220373,-489607341,-1039932719,794629771,-489487183,378257923,95498071,-1039932717,794760843,-489486671,378257923,129052513,-1039932717,795154059,-489486159,378257923,162606951,-1039932717,795022987,-489485647,378257923,196161371,-1039932717,794367627,-489485135,1438892547,1465314443,478152447,-1172537183,-487129068,1348350469,1495552744,125091851,478154495,-402597143,1183476894,1847763460,1840514759,116785152,1946316322,272531466,57933885,872219368,-1983738926,-1553088490,-1130140226,-12720019,-1955714909,-1590762218,251997923,13796096,1587152049,-1560280851,378236460,-408867095,984366,-1325346173,-312567292,782434304,786538862,862857891,1841603520,862831267,-837383726,1842127725,-861464,-395434954,266917199,607584086,-714872722,1847867135,-2131498520,4001598,1048775797,1962941350,112645,-1070398741,190608547,-402295616,116126253,-1553587551,113733038,73968,-2130630758,-267991281]},{"sector":5,"length":512,"data":[-2097151968,6059070,837288820,-2146500622,1566465820,1426064066,1048636555,1946172588,75399436,91490817,-348345160,-214007793,91488358,-345574472,1722005507,180829,-2081649835,1465256172,-1107001717,-947126273,1024066093,58064902,-1962810135,786682328,-899373057,-868234056,-881406921,-868234177,-105330062,-1095217136,-340242323,-488091544,2109737963,36890883,1358954424,-2085666328,7186494,1048774516,1946183935,-1105279891,-28930963,1476157065,1358916840,1348871352,1495259880,1847894873,-801920096,1354825440,-989966104,109902942,512323008,1048800702,1962962356,-1472298233,561315949,-1946972696,-1270971408,57999469,-2130588183,1963852030,29681923,-50075562,-1142296437,833537,-447813552,1761543879,922681344,922709440,-1936036418,-1995472624,1183447638,1959791608,-92864699,1467541584,-963907445,1946550333,25487619,451677825,582484096,666390545,1223184488,-950445793,18513670,16824320,439811920,666377755,1206407272,-334593672,-385843174,-440532654,285849855,1354773328,-372809752,-1397227198,-1024962500,-1072998114,-1397223564,616058940,15224934,-346466017,1023522829,1713682512,519170128,-1212655271,616058895,1354256486,1021857792,-1947169848,2109737926,16836867,1713651328,-1206225920,860907044,-1202696000,-397406886,-259296307,-1072970101,-538377347,-1405190144,410320956,1713651328,504460288,1348903864,1713682462,-806361008,695517195,1713651328,504460544]},{"sector":6,"length":512,"data":[1348903864,1017952286,-807933872,292864011,1017952286,616046160,-957853594,1975520207,1773463555,1348871352,1346153656,1495162600,83934809,-402619927,-259263773,1459649001,1358812392,1348871352,1495155432,1847894873,20825995,1024226314,343149062,1946814269,-1607800036,-523226197,-397360898,418118821,-801920096,1343030496,-335767320,866885643,84205776,-57939888,-1947082264,-1270971408,208928877,234946177,-397015436,-259261603,1839611520,-1206815744,-397344769,-1202651799,-397383423,1499012567,1583335051,-1034033781,-1957363710,1048598252,1946185126,-1472298212,947126893,1358954424,1358773480,1349059000,1495103976,1958742873,67552803,112722219,1273516042,-1947169795,-49722,113641844,-1962923260,-972297274,2819078,-402360577,1566467792,1442841282,-2097131842,6881086,113721204,14097497,-1202667469,-1202713749,-1202712629,-1202713731,-1202716667,-1202716662,-397410300,-997997604,-259287026,1497220747,-402426624,-24942462,-955878373,6881030,1590070016,-1472298045,74777197,48990384,-777911888,-1472298188,75366509,48990384,-593362512,903591988,-1445599152,-326412861,74877782,2130706051,37128452,-2147025092,478191900,-150989638,1580336610,533588048,1958742873,83934723,1962933891,16679174,-1962642162,-2126773706,1963262206,-6952924,1048637579,1946170848,1006543120,-150990406,-1948742686,-349579129,83933187,-348388701,-1398347577,79283851,-838092032,1946630958]},{"sector":7,"length":512,"data":[-498908410,778497015,550911,458758,453574664,1607351502,-1194446642,-397344769,-1494701138,-940536900,3932678,-7804666,1342767544,-1946252312,-8590864,1358954424,-2085909016,3932222,-169343115,-336557090,-340465659,113766539,117455874,-1191224855,-397410303,-1073000485,1223232637,1743279871,-370111556,1566506818,1426064066,1465314443,-1274784118,1596050690,46292318,-326413056,1586170859,71761668,-555206657,73305087,1962950528,46292461,-326413056,1444605059,108956503,-392682776,29282473,13166848,-472785269,126491019,1672611386,-1696005260,-773944576,-1978037277,1352139079,1495245544,1023427117,58064910,-1962894103,786682328,-822827009,-819802342,-813183141,-813183097,-813183097,-813183097,-820850809,-813183097,113758051,80904,113733099,146440,-1205967381,508585943,-472785269,1077936523,-944248752,1742159488,1175942400,1178322571,504331524,1348982712,-773944546,-399376413,-677328999,77830247,-953357508,20711942,-953881856,18950662,505211648,1346112696,-773944546,-399376413,213436273,602427452,101107655,1174405436,2097444411,-13571837,1065360779,-14584832,1732491317,451799120,1136154969,1625837671,-1577013041,1386374058,1732491363,-814749616,-1952820504,138314736,57999420,-1207910423,-397406501,1048806590,1962941350,-1405190130,125042748,1342247352,-1582093848,84229128,1407733770,-1757157126,1840529027,-385649408,1048641686,16805300]},{"sector":8,"length":512,"data":[-1947663492,-1270971648,58027885,-2097118743,7191102,512438132,2013228474,-26351608,-397399888,512491093,2013228474,1183651330,-1667608346,-1928401920,-397351354,129564239,1223184445,288930046,-29235120,1840527103,-431583978,10263120,1183649516,753422566,1023981822,-31070128,1349003192,-1325523224,115888174,1343074558,-1325530904,-85438454,112893,-397013781,-1070334717,-1755256752,1583333427,-1017256565,1913203432,41219,-1022801688,10546305,-402056472,57872083,-1979671831,-1979666802,-1979667282,-1979667818,-2147440458,1946158207,105351952,-153553328,138871516,-351705342,-20316651,-20250931,1342671822,-587802378,33703682,39322471,47186632,-1946942740,-2147440962,42174,1988961652,1381373442,1355123281,-1979034904,853594305,1374684132,-1390471650,985792170,536377034,-1977554087,-773573951,64550880,1380976327,1355123281,-1979046168,-20895038,-773573952,-17300512,1995324101,144435374,10536065,-2130703166,-402611988,552077415,-385649906,-1903558487,-1366687570,-1769340756,-1232469846,2139095208,276037636,1342588811,-587802378,34096898,367724903,-838940162,-822162690,-162527349,48035544,1728184903,-939370493,-335359998,-1232342014,2123169958,-1531019262,829685760,1364350742,-397359734,1464928671,118883870,-792622561,65286880,-28859144,1992964801,1499406328,1364350726,-397359734,569051519,851544720,-136261148,113640408,-1974382000,1760055493,717392393]}]],[[{"sector":1,"length":512,"data":[851508929,65065444,986054384,-392202514,-998176807,214040736,-1595113216,128313344,2013208946,-1501132277,189237248,10796672,-401771520,192023883,2123171606,911362,-387698088,-998176859,79823008,22514176,1334507058,736965123,105988554,41418583,-397264897,-1974007557,-1964756473,-315489713,-784218069,-1963457568,1191224966,1610408618,2013222662,1379401474,1107876584,-1010048423,-402181400,326241515,-2012854646,1183450183,1962884100,88573955,-402014232,79824701,118614016,1913441000,209250307,-1022939928,1913062120,172291,-1022943000,1913059048,821789465,113707125,458756,233311467,35556096,-1547465984,-18350080,2139144966,158663200,288816979,271050752,176547931,185761675,-1958841089,1730807879,717553159,-1057094073,-141826826,-268177405,396939,119459371,-523131661,394793,-1961732213,-2097146338,225718523,1913804601,306653443,-350986357,-327040018,2028470435,-385650170,1342570785,11648708,-1324365949,-1930439932,1539769280,-1803056850,-942108967,1030,136218880,101107456,-1006632960,-1996445250,-1946145730,-1979699706,-1577015418,-1945698261,-1962931706,-1962889338,-2097106498,91492327,50335789,3227079,113707379,262148,-1560231703,-2037776370,715260077,1183651328,115888130,38177538,-1962925405,614690118,-1534686720,-1545565696,1183449126,-1650029996,2663168,10126987,-1207956317,-1903558622,-1040318291,-503906123,1207972101,-1560274269]},{"sector":2,"length":512,"data":[104529926,158466062,263879,1676345348,3193744,856396008,1876928,-33546589,2138816,1200209971,273123602,1200162697,2662662,-855717634,-1996339319,1204160583,1204158468,1183516427,206014810,10389131,-972142711,-1342037945,1090048,-1342172766,-1383167488,-2097105664,1200104131,-1929846240,-390056998,-998177419,247595171,88467456,-1276637838,705661701,-20895003,-390005052,-389872295,645006639,-1979300214,394986598,74760202,-805123842,74769418,-201143042,990664585,1962934814,-389903611,719850515,311813,1912930024,71731718,-402289176,46269721,82700288,2013203058,71731984,1477461897,-1039858456,-655884286,-402230780,-706215900,83093512,1392509634,1212291,1602947956,821789460,-336006539,67553031,-117437696,1465303899,989868222,1946162206,343903026,-1995028597,-969206203,1049168245,2089353238,-1962546412,343706096,1324683,-1995154295,817829495,343902464,1318537,1595301257,1827193694,-1961922044,1200161862,35535630,-402426624,2129136500,180740,1912885992,545226780,-2146011903,1962935422,1354773000,-351736344,168683528,-2115501198,72869897,-402652478,426902571,167782049,-1978501916,-75496354,-2012843006,-352311778,640059396,-387698176,46269489,67495936,648021362,-387698176,1438843937,-974590837,545896451,2126829710,37349380,642974880,10585480,642974369,-1593424503,-1993977088,-23002555,1166616146,1392288004,184912166]},{"sector":3,"length":512,"data":[-402295616,1173029239,-1929378631,-61687242,-1379892052,1364592244,1582944511,1558770146,26273793,-402541848,-1960443388,1392288517,71666470,642973347,-1560132213,-1960422656,44238405,-2054543789,77725857,35448915,1560498408,1442841794,-2144979571,57933884,637826445,-1993997175,-1017249188,-853933896,1964653584,-1211397283,1961691648,-774010342,-1948003869,642942599,-1962654327,642943111,-1979300471,-788482087,-1948003869,642942599,-2020932215,-1993977208,11534917,-1571635038,-1012772163,639470930,67575,1569524341,133637636,175374337,509734,-1022966272,113704786,-1023388998,313790643,-75493171,-1205570544,512557060,-511618438,-654114562,1659379595,29620223,-972589824,5423110,113640939,-973057341,5422342,64273091,1912623336,178185,-402652485,113704761,-1023388992,-402410310,829554745,-385876039,551748139,-1964197198,1893826760,-1157545544,-109051900,-1206684592,-109051711,-1207405552,65732673,-1157627464,-85458943,-1022966018,-1329397678,-331158001,1722867850,16824814,-2031288606,-58659104,-117345178,2105747139,796131332,1803386918,638219444,16926199,-350194688,1173825032,1962934530,93005334,71665446,637896998,637683083,637945223,-1023261303,75334438,-1172474880,-148503628,67141,-726006923,-6821885,-1070396813,71665958,105220390,-400716349,1569521671,124932,133637827,242483204,1388709517,-1207872792,427032608,-148497685,1946161159]},{"sector":4,"length":512,"data":[12079891,-2129605265,-1202309125,1968898560,118040067,509040323,-561056205,-1929117506,-1866921859,-51785472,1595909619,106414942,1389706948,503679526,-650212089,571730,-1924157710,726849798,-1947741704,1012064645,1007776784,1343058992,1391527565,1476454120,279970421,-2010751225,-1023368827,119473694,100080048,812908572,106256208,-1223610184,-838880768,1599932176,1958936152,1354926619,-927342090,1992375040,22984970,58114363,-1996386119,1476435597,10192264,11077003,-1207471102,281898756,547959531,-1977650176,71061829,121373810,-1115679627,1965817996,-2129654782,8671869,537662069,1166675691,-142662575,1946173445,4712451,10126728,12255412,1803387056,-1223789388,1006810296,1007055872,-1274907646,-1599764479,-1734506240,-150949888,1946157573,-1585056247,41226240,-2054619216,1166737570,-401241240,-2054617159,-1195179876,-1064435648,6660134,263193256,128975477,106387139,1036318859,-964431733,3964932,1957036916,1583286264,-1162193213,871467779,-2136412965,326499296,-319107445,-511662013,-1962380038,-1471943474,-67444608,707052382,707013156,17236481,1296976215,16797249,1381040128,102651734,-1979812097,1506016862,-1979818357,520617550,1499094623,119428035,1526726888,-642258047,-1801482706,1539541977,-1957340989,509040364,-521601968,-661892865,58048523,-972100615,50340102,2098942,7819,-1664919304,198741072,-29592384,1962942478,473858870,125108224]},{"sector":5,"length":512,"data":[1982083,-30903296,1392517126,1448432209,-16376233,117447710,1566465823,-27567782,-956293106,7174,503760640,1476395008,1595890077,-1018077858,138811,1200293236,-402199796,1200162406,507233036,91488258,-351385717,107210758,-1022474359,-2134341039,141885689,234873832,971710464,-2130704456,-1275059138,-1341426429,691961869,41163008,-109049936,-1977715710,-2134049056,419440958,116855668,262178,116853620,2097186,12059509,-2117904122,1426125036,-437719925,39291646,-1023535318,2123171606,-1274574254,65065216,71797496,2828022,741786910,-1963982080,-1977678780,-896924313,-1410137931,-189348578,-1928915456,503710334,1475839751,-4652880,1336865535,734497625,-2013688895,-1073018889,-930407820,1917909379,5290243,-1527529077,41308220,-1036365648,-1031142794,172460063,518244491,-1040000778,117631185,2123227345,519570258,1988960022,-125400574,-492133376,-1927929860,-11513274,939459191,-402163713,1256718351,-998154754,113377520,-352210944,-2097106942,-1957361428,-31004436,-1979431288,1177161798,-2000617970,2139097158,141885728,-402108790,1508573285,-1978906998,1317670486,13363208,168187528,1378186688,-1274132854,-991899392,-956099970,1996443654,209125134,17071744,31982964,-401282300,267060289,-503962959,-1962921979,105810648,-1979704088,1317668422,2127047176,139364360,-351386112,-38016857,147096413,-1610609982,1183318049,-1979665150,1193937990,139954695]},{"sector":6,"length":512,"data":[-33138902,-1964837182,1462373974,50378246,-1948200510,-268234121,-787589494,310297826,2122381827,108265732,102692743,1190528799,175374594,33703670,-1510798220,417861355,-85810176,-391903509,-85852145,17071744,-142145932,119473694,75399363,1191343105,-1966913853,-1342130479,-327040256,-1957363552,-48043796,1006913418,-385649408,653656302,100859947,-259325908,773754398,38046208,520316042,105876048,1476451048,1334494346,13756424,-1979548019,50378263,-1963326470,11862607,507628075,3022478,520373386,369452938,-1918110969,1343619654,-16222209,2013202039,-24254455,773754398,-1979414016,1344209252,-402239606,-1973944181,139430596,-1979677976,260702791,705326986,717291201,48812229,-18283832,38178253,-906080234,108527441,-402163713,1183710795,-11528702,-973207433,-11416186,954730359,22514430,773754398,91523584,56048159,-964022665,-402239606,1334444079,2746376,369247885,105351760,-397258672,1183710731,-1974462974,1347422279,-33691566,-840187138,1576809704,10536065,41848259,-506396491,1737160963,92878341,-326412861,-1090778136,2000224304,-1962183402,379786311,340035840,2139818475,340232982,-2095823479,1966085247,373787403,-1996483421,166401604,-1961590901,1166612039,541574678,-69474304,-1957248163,-1962933730,-2097146826,192164094,35683456,1955267956,1005644566,-400853794,-823591858,239569154,512351883,1200291842,47573004,-401717365]},{"sector":7,"length":512,"data":[-1017249060,10677377,-387151019,1334508424,-1979665144,11929175,-1958622677,1200231031,38176775,973227658,1064765767,369378957,142081872,41353042,-1946343704,734145478,-11526462,-11401097,417858166,75402749,-100402685,371128199,1464928031,1499375091,-251453690,1191112963,-390468862,-2124547275,-1023368508,-387151019,1468726044,-1979664888,11863631,-1975332565,653657927,-1056767960,-125050671,788110,705253258,-1040316593,681574581,-788483072,309824480,294528,1204168564,-167050976,-1957343628,-2097143506,1364198605,1048627851,1459617830,1593932264,56449113,-337911048,541574703,1962281730,119408167,1442285343,556698406,147686144,-896839344,641630246,-397017088,1499332938,-268214952,520544738,-385957912,-1034028395,2139095042,175374880,35669958,-385948184,-2134638936,1946230911,-19339254,18892742,-1006725144,10546305,-387151019,548469336,-1190434934,118882384,1459781261,-1973441549,1468662607,-20305407,369145281,41418583,-397264897,-1023476737,126611938,990660489,1962934814,22669315,1576675560,10536065,-2146209085,1963008127,310346509,-955812608,184550406,1925445888,310346509,-955812608,184550406,-1983645440,-1996488162,-1996483554,-1996483042,-1996488674,1602819167,1280099094,1374456661,102651734,-485601653,2203691,1183384588,201756162,105286144,2631414,-2146941438,-523173676,1048639627,-989855706,1854605942,5302274,1583292167,1145331033]},{"sector":8,"length":512,"data":[1275071170,-326412980,509040209,240028422,564145123,-1995961344,2126774854,105286154,2631414,-2146941438,-523173676,1048637579,-1912602586,-1962931170,199754350,1595868928,1146968414,705092,-149916334,1946157509,46528313,-214535168,-1169167451,-973667366,829685761,181751,-319148428,-76363568,1942540524,-486824453,-147854351,1946159301,-973650431,24379396,-286735545,-353852161,-335879425,-1841131,-925831942,-789775502,-1527024696,-2889477,-1017450782,-1269673645,-855591165,1522699024,1405311833,62149201,281870519,378257803,451412002,1532582400,-1957538877,-1224559408,1511050496,-1957575845,-855526200,-138192624,1946157506,101137674,213390197,-150017269,1946157762,6765832,129500021,-1125596410,71732216,-1159180282,-120067852,-402652478,192149675,-1072965492,28837237,-1593185536,113704964,4,-1007109912,1945669352,198741003,-1207601728,65732609,-402651999,-389810015,1114830967,184829579,-1207732800,-661979088,1912614973,436615956,755921664,582549552,-137219328,1959922673,67553032,-352319744,545226773,-955747072,83887110,-1593316608,512294912,1458044928,180984,-386389272,561184227,294784,113707125,589828,1183454187,1979661316,88574467,108956496,-420980986,-131602184,-402651966,108263419,-369098821,1317667145,-1966473708,-838987154,-32483702,242649802,681692926,1942501888,1944861218,1926314526,1943026202,1928673814,1945385490]}]],[[{"sector":1,"length":512,"data":[209616910,974418944,973370570,-955484690,50332678,-17664,1359020265,2756234,817561781,583238400,2129792,-169734284,67553113,-1157627392,-555089921,75399168,1496019968,717392465,-1967063359,-18535706,-773523772,235834336,101591808,1942502144,113727757,262148,-369098821,-919404371,294528,243992692,100728838,1334378502,-1983892718,1183453255,71796748,-2012592502,1183450439,189237256,105875801,-2146936951,1946158207,-20840952,-20250939,-1995470386,1049297495,2139684884,340248342,1048772656,1966080022,371099912,1142851840,822051584,1569260404,2001172,337545472,1176406272,541574656,172475905,75399168,-2145881088,1946158207,92241929,-402426625,2139158892,57999115,-1946407448,206014727,-1979863832,1183452743,-146479098,-1961998455,-154408765,-402648382,695400095,1966144387,67553032,-352319744,545226780,-2146011902,1962935422,1342287880,-335860248,-62003192,-756546702,-157816581,-402652478,1064498795,1318539,1949367171,545226780,1393390850,7817,1128191,1543482600,2115526,-350855285,-64755489,-1560274271,2122317830,192151556,532107,-1803040978,-1593835303,113704964,4,-1024047896,417857538,-70129418,2013204338,71731984,-1070379002,-1645719472,-165156864,-402652478,-1259801093,-1977453829,-1040838577,-2147126260,65734857,-1978873472,-1957624722,1342572102,-16222465,1843923574,-168302592,-402650942,-2065107509,-15633669]},{"sector":2,"length":512,"data":[1183515766,-11532794,1996425334,5171210,-1024075544,1200226312,105265154,527863952,1948304118,105285646,1187483792,-1879048190,-1976898672,105285639,1191088272,-1970237436,1178075975,1989185540,281212436,1200228980,71731201,99324048,-1878767992,-327040112,-1957363540,-181475092,12097163,11845316,1963246326,146994693,-1185473419,-1070399489,-1957122318,1237855183,11046537,11175561,11306636,-1977216277,1206727181,11046537,11189897,11306636,1963508470,79885835,-897579403,192383500,-1024016334,-1342016508,146994689,34341492,-167763550,57934530,-385949056,1720251746,105285636,-2037772405,-1073086286,-922876044,1183368450,-1333360124,1958742528,46726663,105285825,973358730,58065735,973358728,-2013039675,1183450182,38222342,1183318902,1942043142,105285635,11044491,-1962785143,-1073020346,1542128501,38767248,839274026,-935640595,-930413962,-1228595631,118882474,-1979154803,-466483642,-133963567,1946469110,-1024023551,-1979485176,-253580602,11187849,-1927915233,-1974466490,-1056831930,-11482882,1996424822,-169482236,688279040,-1914174898,-157488130,192152002,-1979431170,105285639,-151094296,309658306,-1979300214,1200161894,35535628,-402426624,-286721249,-998154765,180486316,-200939520,1928969960,276299537,100943499,108461904,-402098433,317259400,443124,-326412861,512428779,-472820978,-1755932673,-11333983,189992462,-1346112,-11336170,-11335658]},{"sector":3,"length":512,"data":[-11335146,-957873034,-1017292518,0,-1892810752,786828294,-435282292,705072892,8437248,-1406737358,-2017096640,915117014,-964493276,112898,2899584,-1911459325,-1962924538,847229438,-475073856,2146533494,-1207767933,-1023213567,-31080189,737971199,-1956613384,-1899983641,-1898935080,-213298752,-1430244700,-225976946,-1014244985,-398208885,125239321,317210738,1022981888,1007186976,1006924813,854095113,199551936,1107784896,1975519914,-528071935,-470171598,743025685,68121634,1968978978,574390279,1236009589,-373033461,56171344,512634570,512353806,54722590,-1946907685,1928014828,-1981445146,-486531026,7768334,906151299,-524285268,871396602,4622784,203882286,604933094,1206407424,-125085439,611631115,-1912136162,855647774,-1527513866,116951839,2635519,-2097075736,-661978428,2269959,58048523,857400297,-17984,-1014808695,648999426,-193657544,1438844809,1048833163,1965052686,112645,1183520235,236882692,-1981558445,-6859129,861081094,1560341440,-326412861,2123061078,105220868,999790755,-955746873,9934854,-1961825536,512427125,2005505944,-1751604988,1594246281,1438866782,1465314443,-1962639733,86574662,-150784629,1074153099,2089354377,-1751736062,108382011,-1751763319,-24442645,-1996063229,-963968395,-352320507,1566465792,-326412861,71732054,-14298573,14844415,-397389312,1499005177,-24907637,855930367,-1592202304,1149867926,71731970]},{"sector":4,"length":512,"data":[-1996191424,-1583901130,67475350,1577118464,-1957313699,1183536876,634532612,-494796801,1347551232,1493220584,-2081387687,74842110,367771699,-1751501175,-1751763319,1074022027,-963967863,-352320507,-1017291264,1458342741,75402071,91553547,1995767683,-339725564,96963418,-131792885,-2080863233,9935422,-396949643,-346423396,-1741255870,197561239,-1959693120,-2083026172,-1036310334,1448544626,1509886184,-1960514727,1925659396,-857188850,83843582,67487371,-1961825536,909837940,-814377064,-14817193,1593895769,1438866782,1183575179,-2116777212,989921514,-1559792702,-1070399440,113708011,524334,-335544392,1438866688,1183575179,106334980,3147267,-1962880381,12681672,13796097,175493643,108252219,3147399,113708011,524334,-335544392,1438866688,1996483723,-6297596,1560341337,-326412861,-1727773045,-1293397934,-337277953,197352704,-150110775,-2083391533,-779943485,-1876038912,74695427,268485249,78768522,-184359470,-388765558,-980758525,-889188571,209570059,-772287497,-2097036413,-722796335,74695467,268495489,78772618,-617420846,-393555157,-805050157,254133642,-1974351104,-754667032,-1966079000,-740062523,-888972821,254139530,266568448,41275707,1456194363,-1064988010,-470351244,1958774161,65468164,-470313272,-882978557,1458342741,2123103319,-1962467836,-1178586409,-1359806465,-1946192499,-4651394,-139529473,-2013713455,29816823,-1543343104,-202780343,-1543408731]},{"sector":5,"length":512,"data":[15450763,-1017291169,1458342741,-1979418997,-956889506,158597121,1958951596,1958748697,-1019564783,-1071509132,-482736012,-467531660,-1070338187,-1924790549,15466052,1438866782,1465314443,-1946417378,-1070463874,-218103879,-138310738,15419600,-1017291169,1458342741,-1898410921,-1070334784,2123094155,855083782,-17984,-772296974,1988886155,-1968770300,1569390404,-339530753,1566465792,-326412861,119428950,108956668,-1070401653,-218103879,-1949173842,-1527577474,-352041333,1566465792,-326412861,119428950,-1962639733,1183450702,-52393464,116727,165872756,-372160086,24357875,1566465962,-326412861,-16353537,1996425334,-3545084,1183573387,1560341252,-326412861,119428950,990135947,108201542,112893,872154091,74877888,-1962508661,-1073018802,-251459980,1341719374,116727,300090484,-265598556,-372115413,91465203,-133959677,1583348900,-1957313699,142016492,-16484609,-1461189002,-1947890689,15402054,-1957313699,-852839188,73304865,1586171785,39291140,-1957313699,-852708116,73304865,1586171785,39291140,-1957313699,49054700,2123061078,185015812,-1340443393,-1188722176,-218300417,1238497198,1049299828,-16056286,1979612809,-339725557,-28933332,-25261310,-16040565,92991348,-378224630,-378150854,964745611,-1948093123,-1494023050,-646591609,-339244217,-1956749568,1438866917,901049483,-855357814,-1933341919,1560341442,-326412861,1183458740,1455758852,522308870,1397801821]},{"sector":6,"length":512,"data":[503730769,777344854,36445838,-997462901,-6840669,1996424310,276233984,620906123,-11534081,-1952998378,273058277,526278493,1532582407,-1957310632,71732204,244817059,1357643448,1342186680,-1946180888,1438866917,1465314443,-1962654069,1570217510,119496287,1146837338,1583337284,-1957313699,861361900,-1070378816,5552208,37152848,-1962490749,780862534,-981231714,-2132440294,1526797390,1600019033,-821616803,-1017291169,233556275,-352321095,178440,62456811,1465275648,-108270453,-1962260853,1586170966,273582862,141936907,1769263627,1702157067,116727,-771023755,-621344135,-628893449,214926080,175753483,-604513801,-2097096317,-376765193,1459626169,-164364493,-757997359,-674113839,192085307,-214236041,-215284366,-499057381,-1007199257,108265474,-678705525,-1007162415,125042692,-654845193,1593891459,147479902,-135006464,1946157767,868387586,-2131956782,275976441,-522987381,-638131501,-753876608,-875361301,-1961825920,-742378544,-108999710,-1961856240,-739716134,-2133199126,-472706879,-2134129909,-1031073559,-388771277,-326412853,119428950,-812924276,-66814325,-1425783155,-1666461556,-930305192,38177707,4623275,-1413379157,-1951677813,-661869626,868388523,1593895872,1438866782,1465314443,-2096734581,-746388997,74877696,344894972,-1381113717,-1387221680,-393499312,-1376220243,-1901215602,-1947170020,1583337411,-1957313699,-1940433172,-54489384,-1962508661,138841079,501467275]},{"sector":7,"length":512,"data":[-1070409589,-651448590,-24392821,-217811317,-12285274,855596426,737970916,1593895875,1438866782,1465314443,-352026997,108432150,92933099,74777658,283887499,3964998,-2142769035,-445317059,15450163,-1017291169,-2081649835,1979647102,-18427,1183457771,-1962888188,294123224,208929875,-1274788214,2098432,132844011,-1274788214,1560341248,-326412861,-16482685,-4717195,-1977488385,11797574,-2013865845,1946702609,71731724,-536543052,-351671297,71731719,15401140,-1957313699,-1973987604,1183450214,106334984,15409613,-1017291169,-13371853,989858491,-150572077,-336427021,2144539,-757997359,-674113839,74841989,108196667,-545000661,-387825664,-970523453,-315424763,-636757877,-396947596,-2090860606,-1993985850,-347781323,1978469355,96937479,1162281008,-81011317,638184267,-2044328566,1263249921,197391743,638548434,1194132934,-789064969,-2097151739,-1309998894,1458342741,1187257943,-993883126,-1595406722,1583292415,576093,1458342741,-768401833,-1962508604,-1998058938,1583292415,445021,1458342741,2126782039,172395270,-5511015,1566465823,1426065098,1465314443,2126838814,175016710,-1325398854,-1949969660,266568669,39356298,-277525846,531234992,-899850657,-1957363706,1381061612,102651734,-1054535219,81152,1183532661,1958742532,989626431,431229300,413850,604302080,1010904287,858355457,650546934,84158090,477421626,-1202696186,-661774199,7134362]},{"sector":8,"length":512,"data":[1488980736,637957127,-351992670,32241923,1595869176,1532582494,180829,-1706819400,1616,1971372790,1071808526,-1237204352,-2115481030,-134091777,105945795,745668608,-1957538992,1140898008,413850,-2134706688,-1023994252,276037643,1352285876,1509949446,95967323,82573568,-128427174,-1707166525,1616,-326412861,505304918,-15704379,-13440969,-745862286,-398655304,1931476907,112645,-661969429,504254091,-1274652987,170559,1931415417,-4069368,-352320840,176080138,-1259862647,532689919,-899850657,-1957363698,509040364,207537438,-437766145,-1962118402,-1261882413,-10622916,-1207602401,971702273,1317787787,106349834,43663540,1913616640,1959275284,225790232,-1706819400,1616,1971372790,-10360824,-352320840,-10885108,62391667,855829248,1583292352,707165,1458342741,1589976663,-398983418,192085636,1102369675,413850,-1207602432,48955393,1595916339,80371038,-326413056,-987867306,2126775894,905913866,1929271272,-1705593847,1616,28837235,855829248,1583292352,576093,1458342741,1589976663,-398983418,208862768,12112779,105945667,74645504,49004595,1595916683,80371038,-326413056,-1273079978,105945647,-1014300672,106874142,1200359305,1595875074,80371038,-326413056,505304918,-1274652987,105945626,522125312,-899850657,-1957363708,509040364,-2147068278,57827834,-1239356800,1106935866,481567858,1089110098,413850,-12822016]}]],[[{"sector":1,"length":512,"data":[-397273996,242417072,-1270748544,105945614,-1070399488,-239598613,1583292415,182877,-1273079978,105945625,1090781184,-883007713,-1962467753,-1070400264,-218103879,-947171410,1547486047,792461940,-326412861,-987867306,-397408698,1213923290,-96733045,92933494,1979703272,-8552442,1191277882,96865674,-2454784,-46208969,1912603064,-1707363315,1616,-1070398350,-654900501,1595870600,80371038,-326413056,-987867306,126486110,427081738,1979685864,553820165,1631324907,2050754674,539755639,-347928696,1583292385,313949,1458342741,2126782039,96871942,172395008,158711818,1352276404,67108870,-1261401535,-840413126,112892,915232370,372923778,309616066,1573000840,1089110098,1352288180,1509949446,-947701134,-1392748797,1958742698,1610148610,-2013007997,21350165,1461607482,-83696230,-389575922,-125042942,-385923702,12123916,-1609862144,11804930,48956809,1595922679,113925470,-326413056,-987867306,1720322654,1977879048,-398983414,28900436,-1961659904,105810899,-1706113920,1616,-1070398350,-654900501,1566465823,1426065610,1465314443,-1547685090,1789067880,106874114,501757951,-1958710532,1023457491,1929156328,-1193768138,1352287232,-167772154,91521218,-335759640,545896482,45668494,868823874,105945810,124911616,-1996330845,-402494954,28900503,855829248,1583292352,313949,1430580355,1465314443,1247724830,-1041745921,-1955237125,989626375,431229812]},{"sector":2,"length":512,"data":[413850,-1270807552,-1994451398,1187381830,1988975620,-2133816827,1202995434,413850,-985042432,-1031058858,1224607208,1065408651,-1976273862,-32839673,-633664907,2139105652,594819839,126498815,1979578344,509443,1352285108,-1895825402,370242055,39226655,1352285108,-1207959546,48955393,1595916339,-998023842,313924,1458342741,1589976663,-398983416,28900144,-1960414720,105286355,208929596,-1595392588,1025012731,292880386,425600,-919401612,1352285364,1929379846,534312706,-899850657,-1957363706,509040364,-402235765,57867094,536584936,-899850657,-1957363710,509040364,-401842549,-71763138,-1961790721,1455752782,-1707101176,259588098,-654900621,1566465823,1426065610,1465314443,207522590,-1191504408,292749307,-989442421,1085540438,2030043802,-150834417,1583292376,576093,1458342741,1586175575,-85137396,1451954290,172919560,-1274657142,105945666,1595867136,147479902,-326413056,-1910614186,-1090508282,1992622209,-53923066,1958742700,-348018172,-1441943305,-2146531290,-1105263104,1556021377,687978496,1824465357,687978496,1595875789,80371038,705072640,782312960,1412211456,3186982,-1017893213,2754190,643050657,-1593823581,-1557769170,1438842928,1465314443,508826811,-1946449145,-67098090,-1426053471,-1426030408,-1196703093,-1951727524,1824041922,-1031034112,775356331,808910592,707168512,1378257748,106349885,-850722376,545896993,-1896162674,707169234,1352465236]},{"sector":3,"length":512,"data":[567095476,171820166,-1911390974,-1593824762,-1557790674,815857710,815998464,-1885513728,-1895813114,1912614406,-10622968,-352321352,-21458414,49971455,-55572108,1946745472,1610264578,80371038,-326413056,1187272534,1411818250,1411909260,-1559869756,109859874,646534180,646665258,1451965778,242649872,567104948,-1961867634,-1557787066,646643714,82334762,1566466047,1426066634,1370773334,132653517,707168767,378468948,646665252,-990161886,106178054,-1898213808,168216515,-1946060800,-889189362,-1910470216,-795936040,1412048523,-850545413,1566465825,1465275851,567103924,189537929,76824260,-1178586116,-1410138105,-1414806645,-1420548447,-1420547935,-1582606180,-1582607326,-1901374428,113714883,31916042,202279974,463098624,-1962934258,-1275057634,-954086064,40740870,189571328,1593839621,-1194631842,-661774199,-1949266182,-79867354,567102900,270441040,-1070395519,-1710535517,3552,-1957210539,185289758,-399149861,646577734,-1014082518,168216358,637677824,790156,567103668,-850657096,545896481,-1896163186,707169232,513473364,856654096,189572032,1839728327,1583284227,-58668195,-2147126209,158679292,1037601872,1935187968,105945606,1439367168,503732054,-1662219438,545897212,512678542,378208298,-360644606,-628224000,855670468,-2131678218,91504636,-352310808,-372158199,-207355533,-768386651,-1700933333,1616,2126838940,737555200,583921,119495325,-883073441]},{"sector":4,"length":512,"data":[-372158128,-1977218701,1149805573,638182399,-1985673845,-136118716,1388533849,-1202577914,-1706033149,251331784,190449660,-1020363584,-1705900462,6147,190449660,-955616064,6922758,8435712,503730883,1354773330,-83572582,1510472718,24952843,1030595,1962933821,899347,1962933309,9615627,1962933053,964867,1256833419,-2131001074,-1274711040,-64893634,-1705900349,6274,-2117924868,1962967291,-73791991,-67108841,12108551,-64893609,-2117877365,1962967291,1772266244,-1949660221,1107343568,-1006886451,-75415069,779419776,454565515,1772232235,-885313162,-880082314,102651734,-1030817653,-982932831,52103734,-205419536,1595869092,-1576664738,-1910586519,-1261401126,-64893633,855798559,1460061120,12446618,-1022886912,721426408,1030333446,225574917,1772357121,94000902,-67108675,-628309241,-1912586056,7119320,1455676046,-1380385705,223733761,856388584,1839637184,-1553094493,-828150324,1842652013,-1553082717,-56398352,1845404525,-1553071965,144928262,1846190702,-1553068381,648244752,1848156526,-1200770397,-492595970,1843700589,1843398343,113734592,-2084540846,1843791559,1709731776,1077837824,1434255470,1847723766,-1337035775,570881537,41222766,-1499331920,-1475950739,-352321171,-1270971589,343175021,1843543691,-1795227775,1049168500,512454074,495545942,-2086371352,7210558,-692451724,-1541347218,1846034051,-1173982208,333999910,177334436,1594668776,82365278]},{"sector":5,"length":512,"data":[-1547685109,1084386870,1849860718,-1553049437,1554214490,1851695982,-1553047389,1688432226,1840423278,-1586616157,1419996754,1007076974,113641070,-1341690306,605457156,638976878,-1568413586,1847858827,-392098328,922722672,-492737052,1843700589,-392464920,116824320,1965059618,977174540,91506542,-352316696,7923715,-1553092959,110063046,1474915812,1074185889,1035009902,1972926184,-1781798872,-402599704,229677256,1972922088,-402542575,313563289,1956141800,-401690380,347117709,-342325016,1024704267,-1394079970,10741909,-402589720,-236446813,50915330,-393217048,2045254598,81127427,-1469177184,-1475578879,-402295806,65767140,-1014633496,1849689798,-397955071,1659410501,6809749,-1332191256,-1741166572,854078128,11462808,-400860440,1721827855,1848943470,1849689798,-399527934,-1779918823,41609216,-2145698072,510540350,-2048391819,-1341789438,-1744836569,-402483736,1407750024,44886043,-1610415128,52719138,58000188,864366056,1848288192,-1553060701,-1195151826,-1226309568,2144521,-1410088909,171870502,1049175552,1085800486,-1806112768,1852194500,138316070,571392,647260136,1493321670,1848655497,866893964,-1414812736,644732577,-1946155869,-1200761338,1857748996,158591086,-1409286216,243385259,-2147455448,1852311182,1848116983,108267520,672039718,-1960443392,637536318,-1224516214,1099638272,1848812298,1849048707,-2146274048,40779838,465505140,-402186691,1558746223,-397824000]},{"sector":6,"length":512,"data":[1973196543,-1806440432,-402632984,313562960,1956048616,6678768,1852311182,-402411544,1973223556,-401297403,110008081,-1960415640,637536318,-1224516214,1848811776,172067110,1849048707,638219520,638089611,-1224516214,1099638272,1849205508,571587,647206888,1493321670,1848653451,73173286,1848655497,1848784523,108366118,1848778377,1745260227,77669998,1842782976,-1912001048,-1586599930,-1557762604,109838340,244018644,378236358,719875528,244040448,378236360,518548934,1745260032,77669998,1842651904,-1911999000,-1586599930,-1557762602,109838340,868445654,1842782683,-1593817624,1072197076,-1878618624,-335596690,221849103,-1993997451,1569334805,58297602,1854815803,-1899762827,1049306816,-1977221112,958792541,74777673,72452390,142183206,-361365749,303398,-613040117,3008707,1712243998,915089006,-836042742,-768349743,63099309,200925904,1241609682,540299,-1224516214,106006784,2877471,-919381309,1852311182,138316582,1569334784,-1929332989,-14285703,-953788619,1090519045,75336486,-445251829,1524825937,-1893310631,-335355,-1878618398,868234094,-335596581,92874250,39684646,990083469,1970179646,110019568,-1960415640,637536830,67437963,124512256,641632550,-1070349568,-395449181,109980835,-1557762448,1990262786,10692206,544270592,1849310848,-1962052335,997057086,1970136126,-81860343,-385851720,179833053,148367616,627976353,3998464,504984835]},{"sector":7,"length":512,"data":[1852317326,669323,2506379,-1048376181,-217637372,334176164,1852311182,2531622,644769443,637536929,-1912592733,644769798,671371,-787641562,882983401,-1958262930,529213151,-109848517,-501380826,1721877488,1845887854,53047918,1919841798,2114323235,52261486,1919845894,-1912208617,51475054,1919849990,-1643773173,1023767150,108199920,-385844296,-51902395,1715389694,1049175662,-987889652,862875150,-1644435210,1049175583,-987889650,862877198,-1645483786,1049175583,-987889648,862879246,-1646532362,1049175583,-987889646,862881294,-1647580938,1049175583,-987889644,862883342,-1648629514,1049175583,-987889642,862885390,-1649678090,1049175583,-987889640,862887438,-1650726666,1715374367,9693294,-1374763746,8448110,1857069855,-1240546018,7661678,1857594143,-1106328290,6875246,1858118431,-972110562,6088814,1858642719,1841694348,1852311182,444198,642798592,132807,1721841237,446899822,1856938240,1876774,644789921,-1593827677,-1557762370,-962527200,581117550,1851302144,2401062,91139745,78708751,-1029445421,1851302253,1857422851,-1016216413,-13371853,-1510741551,-1952185997,-2082867249,-1070395423,-1064523021,-271383375,-946931709,1745260227,1857069422,3318566,644790433,-1593822045,-1557762368,-928972746,950216302,-1960393984,637536318,-1224516214,650284032,637817225,185104779,104232191,63406935,637546472,540299,56461862,-1960443721,-1031010751]},{"sector":8,"length":512,"data":[-1977219233,11993949,105483046,108382475,104958246,-1053047317,-947666572,-1957313789,-353598996,-1233744640,-1583606040,79392214,-1233744640,1946253800,1842651427,-1929378629,1810413174,639661313,540299,56461862,-2094661449,-1207957895,57933892,-1929296151,119453310,-1593420055,112946602,-1233744640,1963015656,1842651431,303910,1842611852,-1191228440,-680198074,644732577,263815,-1938959197,862836230,16443903,-1917421939,-385915202,-1070359604,116838539,1946447394,67221530,-10054003,-1986251288,-1769081274,-991363226,67063,-1996434813,1451883590,1975651326,1723239758,381586943,-1685985025,-1920826440,-385935722,-1769104378,-1729560810,1086465015,-1232267915,-1097990298,1625882390,75741339,-15296883,-1919162904,-385935690,1988952256,19720374,1962849256,4634714,-1912652567,-1912641866,-385935682,-2085053645,378965378,-1682380545,1847723766,-1925155832,-385935722,17168195,13796096,-1980217719,1177287254,-27911172,-1232263822,1911095062,-1233744640,-1962877464,1452013638,15919354,1508379253,-402295298,334168422,-1962854168,-1769081274,-1511456922,-1233744639,-1929333272,-385935690,109969790,-1993970218,855650366,782444224,-499217664,-144381843,-1017256565,477413387,-1960394610,-2097149890,210371527,-1958613710,-1951992874,637957362,-521468021,-1957313720,1156350956,-1946257783,-162469674,-1912846711,-628310970,-1962917703,-806814626,4210166,2122401141,1968198844,-1099005634]}]],[[{"sector":1,"length":512,"data":[930428501,-388610421,-1014103333,-1946140488,-699495486,1586219051,-156964612,867989133,4241919,1586210035,-162404100,644732065,-1946155869,-1955736570,-1195155995,1451950152,75753982,138316582,63406848,-315487094,-1494002111,-1023314594,-1962916424,-385409282,-1957362597,1424786412,-1979955575,-1960378794,637539902,-1224254070,142183680,406731558,103838720,130515799,-391350643,123705820,-1339717082,-1403613952,-1919265304,-387404714,67061,989909635,-948765098,1178273143,-1950320900,-1950130715,-1955739634,-395459050,110033421,-1591317048,-727515132,446768749,984320,-388823887,-1056718452,-1016215389,520082664,-972648954,-164421779,244055859,-1561853926,-1591337063,251985946,-754667264,63016168,1841734593,644732577,-1946155869,-1016211962,1843412619,-2089746559,-396948873,1049205055,-1017156128,-385871176,703071133,1848025856,1847858825,1847725696,-155260893,-1912591384,644732422,83892897,78708751,-1047729965,-962346749,780387181,-1190367800,582877364,-1895877778,-210909178,-1262894172,-1074384128,119434786,1841831566,520529139,1841825411,1465303820,204323068,-402454808,-1070399196,-1553095006,-1432130136,1842783085,-1553067869,1048604216,1962949904,16824336,-1996418840,-1586623458,-1365021242,605457261,-194189202,-397158261,-2141457207,4001854,480448373,504793454,-972125330,537823597,470170478,994866542,1970150934,1847632198,-395458909,-2065169860,1048651508,1347682304]},{"sector":2,"length":512,"data":[-2128203403,1426063934,-1943505610,3926211,644721313,-1946155357,-1905415674,-971097149,-2133428883,4001854,512296053,1491627438,-1207047424,378208328,-1964413404,-1709512702,1024460486,40495104,650862175,-402646367,-1993998291,637547038,-402645855,-1993998303,637547550,-402645343,-1993998315,637548062,-402644831,-1993998327,637548574,83894945,78708751,-670832429,1839899075,-1107294533,468204827,47357,-1557785227,-1960443900,637536318,-1224516214,1099703808,-1547662332,950234582,-1365130386,1841734509,-1553092447,96693704,78708751,512485587,-670863930,1841831483,28837494,32499968,1841700489,-522987477,984515,-388823887,1841831563,507238443,108228038,-385875528,512295373,-523014712,1025687235,510551743,-1413467385,-1418869087,-1515470797,1859583873,-1144787083,65760870,-999371077,1925645119,990349576,125240391,105352131,1023512809,-176685072,1465274961,33601542,326567739,4055249,1005941280,84440839,-143450112,738193592,78709831,378267859,371944904,-1036292666,-1031074442,1191436499,1913076484,29526837,-1955740154,31642576,-745864105,-2089888069,-633665301,-987883916,64982031,868716280,-385928202,18847481,-471137721,1516134151,28885849,18082048,-1553045343,-692359738,-938046610,149652333,251987851,-1039104,-1325119607,736678660,264576720,-164380018,-1159135437,1468604310,1727758594,-1982433938,-1016215530,-1318137183,65590020,-1553018874]},{"sector":3,"length":512,"data":[1723559368,-971601042,264576621,-164380018,-2098659533,1468604310,84380418,78708751,-805050157,-2130132093,1970198267,-971601444,110019437,-928944698,-971601043,1958882157,268451113,-4717710,-754667249,868781024,-397323328,89191018,78708751,100788435,1498967494,1958820699,28885965,-1872958720,1847867019,1349441215,1486218984,-395389254,-692414866,-241964946,-1016199517,512219955,-387355130,1024566257,-1264336845,1840685933,-1553090397,-1990693446,-1989291994,-9579986,285657056,-1023410115,510621375,1870052871,-397355381,-1990683228,-1955743722,-482537202,-802780385,-768701587,-1554968979,-930386508,-482232642,-1073042425,-102565003,1840658057,-61385013,1839611520,-1207339776,-105185281,19393023,-2147354904,40740414,512435060,2062052782,1864808449,1872384030,185553920,-385649216,-397410115,-1202060959,-85327873,671545088,1946189934,268879365,512426301,-1014796758,-754667249,69075947,203293550,281248622,728608929,990278339,1936600070,-18423,-369099590,104530113,58093102,57552545,384324568,44113409,201720686,1049966,-13385586,-1582579661,-661754408,855639201,504269814,874417664,195359488,535524800,204930907,109990766,-1591317032,100859946,268791308,-1960423424,637537342,637683083,52837771,637537854,-1588591357,100888068,268791308,922701824,161115690,-1710271487,257163661,57544867,-1553071610,516189716,-953782766,247792711,105367334]},{"sector":4,"length":512,"data":[-694091776,1958742893,650153491,637540513,1705531,-1591341963,-370475004,-338654392,110006282,-13406762,1594075112,-466433186,-395463517,516161621,-1960415726,-771026345,1169425524,516188109,-1960415726,-1960432569,-1096602025,-1072264851,1958873965,1037155865,1958742700,-1274660339,-1408797587,-76169206,915009259,1456172470,-1070334889,-1553095006,279145896,-66983826,-1949606305,-1586647010,-668242516,1253359758,-1006886451,1458342741,5367895,-1962522997,-1073018794,-397934220,1583284903,313949,-881979743,-1959338869,-472841121,-1896052853,58048523,-1942122824,183002,1458342741,1586232407,15919114,637959876,1946172800,173968134,1593884904,113925470,238977792,24379502,-1547684925,113733134,1958778110,-345123167,650153564,1457803,-617365453,21334310,123570726,638089613,1588795,-1960382859,-352317890,1032005165,639923455,637957515,1586691,-1960437390,52822620,637539870,98179,1465256309,1501190,-2090967289,992348359,1962938430,77670092,1975520000,-1957313632,1357677548,1846413055,644746913,637618057,11544458,125799760,-391088499,-1923575076,1541976150,-1336504941,1167741522,-1962934113,-1922167266,119451774,-1962933016,868441573,-29979712,-1359052396,1443919758,1586666216,-1073042346,915012469,-782723842,-58226205,-472792178,-1081606349,-16019716,-141874060,1975519916,734432251,-1948808249,731184654,-217637170,-29455964,-1895908460,1846414987]},{"sector":5,"length":512,"data":[41359163,1128466217,1438906082,1465314443,-1961998709,-1360523178,52261376,-999419882,-1993995650,1435051525,108971010,-1207072474,1583349759,838237,-152321997,1458342741,172395351,-1005824373,-1993996674,1435051525,269888258,16902254,-661975182,-1081875503,1962970876,-1950338300,1566466000,-1962932022,1602959068,270412548,1842782574,309641227,992395406,1946167838,77669894,-1192367360,46858239,920423168,855918478,1048651456,1070399488,-1064558988,1846681284,240093990,-1047653661,268843814,638022656,1314443,-1064505621,-1962933558,-345123298,868453924,1049306843,-1960443882,637540366,1946240315,1569334806,142183687,-277481157,69110566,1977289472,-1950090792,103491271,-1960443882,637537854,1056395,-12745946,-1960435852,52823669,1912608822,1144727060,-1961986814,1277896394,637956614,1913146427,147292937,-730465477,-1960393735,1543710237,180781828,-991426589,-489159936,12445945,-102512501,-1960393845,-134206954,-702641213,-1910707347,372975299,242548778,772160294,639005184,2885179,-1960439950,184550430,870348251,-103773248,1049306819,-2094661618,108330813,38087462,-947714702,653257480,637682947,637957515,1586691,723965298,-814611388,1418405462,180781830,1290324107,-936689152,1581971571,39619366,371065638,1200301568,52871937,637537342,52829579,1912606238,1065559587,639464703,637951883,1580547,-1960439182,52822647,637539894,637617291]},{"sector":6,"length":512,"data":[-1022994549,-796147661,179054275,-1744668480,-1971379005,-1012128032,1458342741,570869335,113721454,8416734,1849427654,1040631302,113706862,1874882022,1843529415,-1070361344,-1553055070,-257724902,1275476845,-401509365,208797728,104631078,9300055,116066143,1842742926,109903667,1049194088,1583312384,1053084509,-1960442732,-1960439227,988288085,269888256,-19797906,105918578,637897510,-1006353405,637834302,638731579,638076299,639131019,1964656014,642468615,-1014298743,-1938942301,124655622,-993789864,644747806,618860427,1846545923,-784612978,992349812,1946161174,244000273,-420806642,141934603,172326,-1031011605,-326412861,637856899,50342561,-1989275642,379715142,-62486162,-1946401141,-1318184386,-1981295869,-1936654667,-1986985851,-1986985323,-7273339,-2123490810,-2140267970,641627136,-16040821,-1977206924,11993949,71928358,-1896063349,644749318,1183385483,1200301820,-27882750,1946272246,1468737034,-10229756,1224627849,1846548011,1946023656,1575324571,-1957311549,-61384980,-401230664,2126838047,16967696,-392883009,401091316,20178945,-401842492,-1070398615,189546115,-2145160192,1962935933,155579933,-1005095552,1065362973,-166759929,76877318,1048774773,1962972432,1589921793,126428680,283885619,1840658059,-401834300,1453428373,1941908846,1610144488,248143198,-326413056,1444211843,163118167,-123082730,-401965372,2123169932,712960236,-1006583576,-152566178]},{"sector":7,"length":512,"data":[1676404738,-392883010,1290297222,1049094205,921237383,-339725567,-1237939440,108971117,-1584512792,-1087541674,-125441933,-443851169,576093,-2081649835,1465259244,375372028,-386379032,2126838447,3336198,-387154291,1726491172,639484928,1963474816,1670375442,-1962261109,371919957,-320311792,855960572,-388985920,1583347771,-899816053,-1061289980,3574131,1446414741,-1915885458,1842757251,-385649664,-1967618872,-131077888,-1794242874,268879616,-956301163,194318854,977174528,108335726,-402648344,-2134670172,7223870,-1195179659,48824454,3574776,7399573,809239690,960239986,837293431,-145263984,-1554812198,1474860304,168069632,-398297920,1421577540,637245,611583802,-119389373,846546492,3729478,1922040808,1926952745,146725,305995890,-1558481152,149656850,134301578,1184173574,-1979705880,1975519748,3574206,914998165,-2017956266,-141825792,1958742700,1981824004,-993833225,126494237,1148390460,1081346108,1014238012,192219708,-1928903286,1843923548,1009642385,639071497,-1962784885,260704860,994176306,-1960675640,126372040,-957867029,173837161,-315438966,-466434934,166451203,-1960436284,1552745039,-1957210614,176014579,1583326451,1847239107,-326412853,-956541098,1080959494,1843791559,113668032,-956263154,194318854,108956416,-405601359,-1862875263,510902459,3401735,-1938571080,1566466010,1426064074,1465314443,-1324974453,-2115513597,-1953433913,499385429]},{"sector":8,"length":512,"data":[39815974,371065638,1200301568,1566465793,1426064074,-326898549,417118230,-1962860312,1183385157,641582334,-16040565,-1960440203,-1929377730,468190045,11593989,56461862,-165281609,1947206721,1502291475,1602954759,63144722,-1341850136,99477550,-402432627,-1977219854,11993949,-402359923,1174473982,1300965118,-1334451437,97380392,1360381827,-1977219497,-1960442811,-1960443299,126756413,-1930789239,-397349818,693636432,1586232910,403083006,1963239534,1959922436,532948483,-1981120883,1166805597,639484940,1946238848,105235984,1200236032,121997313,-352285464,1036761862,117734376,1950964063,-399724534,-947714713,-1332155643,90040361,-1795014972,-1951743950,1438866917,-326898549,599283476,3926041,2123233163,-1190715668,-1510801398,-2131984755,1962935933,235337239,91489429,-352295192,269388558,-402267243,65732822,-1006622488,848626238,-1956664640,-1547477531,113743112,16684294,-1795023223,-1794898292,170297688,204376469,-991887467,529147421,-472776910,1504182062,-1206136039,689580313,-652551910,790353690,1377557019,1612472348,-383984356,119339804,269388573,1976109973,639484934,-1006481525,116787805,1948357902,63039753,-400510909,1364395167,-167278042,1117064710,-466483084,72345753,-919403029,1493460456,-1008868773,-1960436284,-1960441737,-1910109601,1284187655,1277896200,499400964,74943270,106924838,-1995993562,38112309,21269030,-1341700728,72214568,-1342175768]}]],[[{"sector":1,"length":512,"data":[71690537,209059665,-16091649,1979647605,-399114494,93323077,-1895676529,1167001157,205885194,283330905,484977840,639484932,16926603,-857011643,-399986493,-919403509,637941188,1090942207,54296614,-1960439435,-620033444,-1960441484,-1910110092,-1947997433,1435175493,1591423756,1962281735,2088773132,91574786,-352319000,-1326652688,63564073,189813585,-1341229861,235337260,41160853,-1259848784,235337219,192155797,-402432883,984613554,1476633320,56396326,1888288951,1448235012,1141057030,172329217,638342537,637885579,638022795,495518862,637683084,-2013182070,1170605893,2129133574,1516111870,643390296,1124299915,-399986493,1573127003,1200301578,1032829698,1960292397,1033288474,-1156287416,1950891420,1034140430,-1157073848,1038630287,-400299262,749732408,-1341969688,52815911,638213572,170936202,-402230080,-347929833,-400051982,699400975,-402453783,1538285229,-1006435608,2005607965,1602954756,126756358,-1995809397,38112309,33965510,34031046,804295,868233984,-2080262702,-402295761,116064273,-2084188096,-1073086253,1571876213,184730345,1342665938,-1192743760,1166628866,3794954,-2084188096,-1073086253,797191540,-259315340,-2084188096,-1073086253,797181044,1213264501,990528905,1949085894,-399593465,783286915,-402489624,1113063427,1364414659,108396370,-1879211800,1499072069,-960276389,-402520507,48779294,235337310,1500842133,185222539,1265896517,-398611269]},{"sector":2,"length":512,"data":[1166737744,1279165196,527695883,76822212,641577403,1947485243,1035385625,239352614,-1145368460,1144727101,856126490,31189202,501744619,-399724543,1166737935,-388877558,699400649,-1157496087,99171752,205884161,-857159373,-398807039,1166737903,-372690166,-1964506689,173902685,-315486326,15984963,-1587708696,37590290,1023767040,58064914,-1929376840,-1229059491,-1954420625,-770979701,766510452,855749352,-33979438,238749308,75404562,1245825671,343918859,-1729613648,-399593471,316866963,-1930940240,-152354559,-503308312,-399593221,367526271,3964928,-770967435,-1329397387,23980101,-375799157,179044580,1308849600,1558786224,1560274945,-1962261109,-957805483,1559488512,-2143436613,1946159741,1036434179,-393197333,1569545441,112906,-393196053,1166761173,206932746,-1960436284,-1960440713,-1910108577,1976699655,1144727070,-1961330936,415663048,11996131,56396326,-502501235,56397303,-342882581,119443573,839879206,-1977203731,15329287,516159458,860611335,126494418,-1794242826,1008760065,186413856,-402426670,1364394039,598757458,1476444904,-392567758,1499070513,186116955,-402426414,-1073086437,548405877,1006675688,-402426585,-498925409,1976699836,15254276,665866240,1476431592,-154938633,1083510278,-661959563,259904011,-755510281,-2097036413,766509266,-1107267864,163134822,39074560,158795378,91429947,-503003517,800080368,472629502,1929532443,320603127]},{"sector":3,"length":512,"data":[-964492716,4319236,-154933022,43322886,-1336888203,3270692,506200,125074,-389773678,-997851134,-790048688,-790048536,256232,-485546920,1975519752,868436226,1009779913,67269178,-1000929785,-1433075138,-1795015031,-1794765057,123667316,170298307,204376981,136773525,1848156565,-1150427485,1642602094,772175228,-352233473,50906092,538915380,927276879,551373344,740441148,1008804412,574366242,-1006631745,-1200722410,149684223,1946499878,80184072,-193594821,2106271427,1745260034,1870052974,56461862,-1977220937,-1024064431,1460958224,125405990,310217510,-402405501,1153861008,-2090914049,-2048392249,3913861,1946731254,3061763,-378571078,1048637393,1963093562,-633437884,1962993261,1874239804,1874335371,829805067,763150347,2133266237,310056,180341043,1981712384,-134768273,-2010070400,-26249577,1271530186,-506400907,1849953928,1849296582,434684673,-5314436,-402652488,-970557281,-1336999353,2074732562,347138932,1434180841,-326898549,2079778836,-1792538938,-390057216,330332283,1971030760,163074918,-308287488,113661702,-400921026,113641300,-150507970,7219206,638219280,16940419,1424491380,906413670,-1230962283,1577462638,-1791515794,-1553039711,113677625,-402549464,1000542200,1024887189,-400904043,434666353,1527209744,38258214,-1791574446,-218101319,105638820,-402149293,2123201365,546564332,-970586277,-1924136377,1036257909,-1190819290,205258756]},{"sector":4,"length":512,"data":[138155379,179376500,192154172,548484235,57935676,-398390134,1347555228,50332856,-319035199,-1420252328,347120883,-2139419416,24001086,887686005,675184895,57933973,-1962525208,-389849627,113736468,38186,-402651976,1465087895,-402149370,1743289053,109832192,118444008,-970564769,-1420754361,-1330920821,2059659284,1849310848,-1949207551,194325054,-1908771585,644769798,-1912177269,-395401210,149452755,1009218937,639858001,637689227,-1910096501,252372999,-1792393589,1852311182,71665446,106268966,-342545757,330875838,-302978816,1013856928,1007252536,1006990396,-1023314900,38258214,-1000929702,-395418050,123670224,-1413313621,2054088899,-1792538938,7923712,1055396784,9300090,-51897424,-399411847,1387296651,1970926312,1178518546,245295214,-1986709597,-1332397802,-399447280,966987947,-401362795,-1595377139,-1791515888,468386736,191758497,-1559792448,45126969,-2036265493,-1791384722,-1792538938,-1577013247,1239979318,-401297408,1048607197,1946250810,675184784,57933973,-1023065624,-1553045855,-1070361296,-1198181725,1827143689,839319414,-401428331,-277579401,89057475,38112038,-392874845,1000541724,1024887189,378258325,1049335092,110007600,-141857176,38127142,1569334866,-1929332989,916456569,1962949781,1851302181,1848116983,192155648,1946286723,880033798,67108389,-1557302590,-1037341096,1852048939,37506539,-324983691,-1037350803,-149589440,7219206,-2096598000]},{"sector":5,"length":512,"data":[57934330,-1543504347,736849388,-385851208,138210489,512435317,-1993960146,54889783,-1953157469,644742174,637683595,1929533185,1488902,-1544776471,918459703,637333,251634931,57972018,-1006672919,2031020112,-394917656,-930449402,-2140506792,729043961,1968306560,898311750,39684902,638029350,1963146368,-437759946,-401493896,-622298947,2007820405,1396455797,-2141702795,24002622,-1960435340,-1912209035,644771846,134167683,-1175973515,11659384,1006709737,1007318049,-1207536606,317259780,9681132,-1192489751,115933334,1948335340,1948400880,196628716,1966073856,38258214,2021845075,-1506345128,1460032366,1594425064,-1336255737,2018240532,216543664,102004088,449112151,-2144991393,-1993997811,347078989,645411049,-402303607,10552085,1166616174,1975520003,-399265774,192247775,67993638,250090672,-2146178184,24002622,116852852,2125278,-2144992140,1048576269,1946250816,-399790065,57964467,-1342143511,2011425044,640464067,1015171,565449333,537261606,582224501,1074132518,1018430069,1484112954,1849310848,-2146995187,325990974,922699125,1460039334,139847763,1599862667,-1960945913,-1989253618,728655414,197624782,-1494016250,1969119007,102651683,1856376459,1856386697,-1960391125,109970813,520515240,520595187,-1341819553,2003560724,-385842248,1048832757,1962962432,-399986668,225802015,135102502,88459046,-2031550464,-331940096,-29950099,3604333,1849098094]},{"sector":6,"length":512,"data":[2001262,-29456018,226502253,1166747264,-1792236795,644769441,-1207614071,-1209532412,5826675,-386252056,109973051,1049325160,-2144965122,-1960411355,109969789,-1993970064,1990263365,92874350,1593965032,-1896198936,-1955698682,-1888616898,-1888616442,-1888616954,-1586631674,2453032,50347267,-1070397068,88442662,-1334942045,1992288532,-2081649835,109970156,1049325160,-538415618,-28931840,-1560219928,922709484,-1960405716,-947711155,1366614805,-1977198842,-1960442811,-1960443299,-1791581635,-1791279479,-1791156599,-402158042,1311310120,-28931074,410309131,728624289,671545282,1947205742,33194760,-31128716,1844225023,-1584056413,967011840,742296469,-1475965291,1936844910,-1792262519,-402650696,-970558732,-1101921721,163157302,1604645632,-947693305,-1953701371,644742718,1947207158,906413626,113706645,431415,-1553071967,-1960405703,2112357245,-1791253750,-1791158647,507587263,1931601927,-402650696,-970558808,-1101921721,163157302,-1583025408,104568108,1968729766,1856414467,-1017256565,637547752,1963197942,263435,17167910,1077936756,650130371,185687435,102200539,2106271319,126756367,155025446,-1960442252,-654900667,868419423,2105747136,309592067,-165281104,175378437,-165280592,41181189,-1960442192,635638605,365396823,1460031569,71666214,39684902,641567526,233310094,1476878080,-2091269885,-522058297,78168927,-1977209739,1300964869,1930050562,1946762279,1946696727]},{"sector":7,"length":512,"data":[1946631199,33129231,-108849548,-2096008190,208930041,79286667,79282944,-1009634560,-18775231,113496627,79188823,1852750592,1541862632,-4663413,-1014256641,638017451,-1023322743,-1157625672,-622301578,-1413467162,728673953,-1418830842,728678049,-1418829818,997087905,1970183686,-18429,1856938411,-1586602845,1621323454,1855889774,-1016178013,-1201704216,2126184456,-425990034,-1582579661,103509686,-1582600610,103509702,-1582600606,-1582600708,1587769014,1858511214,-1016175965,-1157625672,1860726406,-1413467162,1080973473,-31123852,1851302911,1852048939,-1413467221,1851302315,-1016175453,-385851208,113764333,38186,100668136,-107747241,-2134702241,946747966,350815093,-398741502,-1796705277,654556017,1970524136,1744776708,1423361,283621609,661082371,1042774045,571811813,767378221,1076721961,1208823013,734411822,36423212,-732942636,785646638,1429132291,-734581036,1900931118,1849310848,-1607961510,-2034274758,1950563328,6733575,125118780,1849165454,-395053079,1048604971,1951493690,833542,-991472407,644761150,637689227,-1910096501,1943464199,-1334586392,1940645903,-397293261,106498041,313540951,1953719016,279990769,-1334602520,1938810937,1509903080,638059496,1593990539,1347571975,138775334,71641894,-148343744,-1960545565,132573400,213405778,112896,638045928,638076303,638207375,637814159,1493583247,-1195130142,-689373162,708247526,775356309,808910741]},{"sector":8,"length":512,"data":[842465173,571541,45734707,127526912,1845247625,644769441,637814153,411079,105221376,110440099,309335,-1200641560,417867582,856121088,1845273536,-1791883633,-1792014705,-1792145777,-1792407921,-326412861,-2011763581,-488047002,1849335922,1962821178,-400576393,208958107,-1342146584,1922164756,1693181812,-395320088,158691623,91574588,-344794136,5957635,-1360512592,1745260146,-63009938,1435182701,650283778,1342326151,-1923676590,-689378690,-401428457,-210472365,-2031610960,235780210,1610584808,643324423,1979860283,1166616068,-401297406,141914675,980302496,-1049231802,-385988982,-443846051,-1947679907,-401362696,922710609,-1070371332,-395445085,110098583,113667580,856200502,-1791384640,-1191666711,-1092026346,708247525,4096917,1098186862,1399997416,855643320,244187,637960936,-1995291249,-1334969282,1909319693,1460023157,654185704,1963146624,-401690594,-1960414731,-1960443299,-1960440755,1642598517,-351838458,9746455,-1192923927,1726546067,868234213,870003666,-16695,39684390,138774822,173377830,206407974,239453990,-1993932801,1721831541,1166616174,1170679300,-1929379834,782435909,-1202256235,870842372,1042542,1776813919,-1547685119,110063100,-1597795030,1010593338,742136948,557586548,574362740,658247796,300427124,-401297153,-546016981,983571435,1950104686,1949056015,1948335115,1965177860,17885192,1946159080,-383274779,-1957334719,149717996]}]],[[{"sector":1,"length":512,"data":[1901783120,-395422488,477458514,309678908,104579212,343240296,54889254,1845233211,79170165,-459020032,-946929869,-1929871735,196672070,1842079744,-1989073944,1183644798,1204168446,-56536318,1166616173,1856413955,88443174,-1792133493,-1927509722,914950517,-1024944850,833902843,141828412,574378420,297009780,-400193498,2126774635,1962871800,2105747004,896794631,-1360522064,-397692816,-1977192279,-58801147,1963276838,-58815145,-2080868723,75696901,687728651,763577973,187466507,653819588,-351844981,-401297369,745893951,954747824,855929968,-1004409920,-165217154,578101253,637543912,638338443,67913091,654081732,-1341700727,1880221716,-1017256565,-385842248,-1749490735,-473175808,1852311182,1845247627,209552166,637957376,67913159,-2094611712,1962937469,-2094611711,1979650173,1166747149,1166616066,1166222864,-1960443390,-654900667,1356396368,79223947,1520363520,-1960421288,70061125,729314304,116689888,113849175,108396326,1569400385,1960512266,2106271241,126756360,123726315,-1977209621,-13499555,41779238,637957458,-351831669,75074841,123570982,175430411,21334822,-1929625463,-1960378816,-16053891,-891105163,-1960442017,-372175795,1363798481,-1378317395,858783929,1515514066,-402651976,-497460675,-1578726422,-1993970050,1460014661,1610264040,-2048343289,-1506345105,387182,1856374415,179851459,310016,-401799495,-1070398537,71665958,105220390,138774822]},{"sector":2,"length":512,"data":[-51901008,101741934,3467351,-1993996449,246417477,1483678952,494218300,451417008,-396949905,-2144928983,242354237,1594066920,1166616071,1435051524,582533894,-494147328,-2081649835,1187448556,-973078278,-956105146,64582,-1461171536,-972786322,-402194874,1191116923,-401428228,-210473321,83773174,109973108,1656712760,977174528,443880302,-1226304592,-88217490,83773174,-2144990091,1131676733,87916582,434650484,-1202695677,1727463429,-529012484,1586125400,-61961218,637896998,637687177,-2096865912,-253622841,33310347,347142726,1970157288,-8656637,-1946532213,-1195155995,-286719874,1803282657,-1972406594,1073787908,-1497642869,-533206930,1776919795,1852237934,1055406512,42985582,71666470,140348198,544597770,-388824143,-668210221,43968579,146296914,506112,637699816,637814159,-1022999153,-385869896,703127961,1849335918,1006667455,-1087736765,691798118,922690420,-1863815514,571647,-1191181125,1357384968,-1792368382,71665958,105221926,-1792393591,939953859,38201454,146296914,310016,-401798983,-1893334485,-1893333947,-706148795,1842538605,1894267312,-399739539,-1977157277,1946369029,1946434602,1946500134,34531362,146296914,8436480,-402651975,-1893334541,-1893333947,-1899821499,-1083295738,-1195179930,-18284520,1838082272,753405872,-1911655315,-1083295738,-1195179898,-420937703,65661152,-210382325,-277486582,-344670198,15122256,1849165454,1375844328]},{"sector":3,"length":512,"data":[1095760,-1191181893,-1662516724,1167009281,1167009292,-1070376178,71665958,105220390,140347686,172329254,25880643,381636690,939953665,25094254,213405778,637184,637626088,637814159,637945231,638076303,-1341504113,1826875664,-1200815128,-617414640,-402649159,1460011331,637619176,638338441,1376671113,571472,-1191173957,686292999,643455745,637820297,-1190767223,1396834303,146297425,1767237632,38258214,1532582480,-1951677557,-1047811134,-1413467221,1357386416,-1327795092,1820583950,-768360053,-1157408536,78118913,1598226804,1166550535,1569269249,650130178,637814153,637945225,638078345,-1022737015,-2081649835,2123180268,294643948,205488166,465045107,-540022528,988288944,-662794900,991000808,125168734,1178321036,-1207536402,-1293352934,-498693153,736384651,1444673094,-1207534088,-1628897252,-163148833,-386378101,-930479391,-1948105077,-689380266,-387872254,29033227,1946462208,145244935,1128465012,653033156,-393605750,1375754216,1095760,-1962917144,-1993935290,1183515717,1166616312,-498693370,138774822,652494475,638207369,638338447,-1961998961,-389849627,1692954143,1031808759,638087692,33717635,-1195179657,585695261,1927828447,-1993974819,1569269261,-947141886,1465107084,1746832926,138316654,-337956096,142183175,259325707,990076298,-243989423,520376717,532896607,-385840968,-1977164059,-771804643,-1476448541,805449698,813969416,805449860,805449730]},{"sector":4,"length":512,"data":[831009087,831009127,831009160,831009160,1673015688,-558634752,-2081649835,2122908908,-28930820,-386105715,594889116,1849310848,-400788467,126484925,-1002183630,992410750,91554373,-346711064,6600775,-1327596311,1793583117,654081732,638213515,638090635,-1960441970,723912781,2126775373,1569400572,2106271238,126756356,-396949935,123731816,125323609,-1293413712,-1326584982,1789650958,-1017256565,-2081649835,2122909420,-28930820,16402119,1031808512,639988995,818563,922689140,-1960415562,100732997,-1064538442,241011494,869269689,1430579410,1857422991,1726483888,977174634,1366560366,654079684,1963146368,1149969938,-96060656,45615477,-96075520,-397080344,1198876982,1131762236,644504552,989939083,1031141958,719852464,1569400426,2106271239,126756357,38112038,-386251263,347143872,1953093352,-401690449,2126801417,1166747388,-96064766,-1957379864,-1195155995,-2098659284,6666461,1440578793,-326898549,-1923676652,585690238,-386626801,123412983,-1974474520,67056348,-466422178,-1957400600,650337765,1208108427,7596112,839354970,1992440804,-2000516348,1087384327,1414457426,1416096088,-2081649835,1460016364,-387154291,-192213287,-398203416,-420994645,638017314,1963605376,1166681610,-161575679,645338088,-1929230965,367588958,1575324500,-326412861,-1928008573,-1561793410,1065362958,-1962248948,1435175493,1575324428,2013379,1440536809,-326898549,-327250668,-401702680]},{"sector":5,"length":512,"data":[499402587,155156518,1569392501,1575324426,6731971,199013609,1964734674,2028210710,168457487,839088320,45138880,-1023102781,-1329396048,-92028148,-2146208257,125173756,58310666,180552112,-1341949468,229688069,1942239939,-154892798,141820356,41157288,17621200,-326412861,-972362621,23988742,-1560280392,-1410830862,1844224474,862842531,1844749248,-1553074525,1049335104,1166765538,1845011202,-395445597,1183383758,674693116,89450606,-1879423351,-395452922,1183383738,71624950,1844192899,1745260286,-29455506,1979648877,12380174,-385988983,1183383869,639691768,1946420726,61204494,-385988983,1183384555,-401806344,1183383882,44099838,-1946663287,2095643718,-28931247,-1957610008,938015302,-163675311,695468141,-189011024,1368975469,-395446597,109990344,1049325160,-1960415746,-1960443011,128979029,-1202803736,-722992612,1844755281,-1957582872,887682630,-129594543,-1588529688,103509678,-397382052,-794733854,1841734510,-828129229,1859298158,1483606690,-1017256565,1848116983,292815104,1843543691,990004619,1953364486,1845142276,-1010814013,1849704064,-1201373952,2028470276,1842782545,-148455282,16787462,638219520,184550561,-336759360,34650129,1848116983,58000384,-402516808,-919383729,1842742926,-1064431637,203328294,1065559552,1090680063,77669894,1975520000,-1340808215,1353377946,870003544,12145106,1362618416,-1326652839,1352067157,-387610184,-324972383,1958742893]},{"sector":6,"length":512,"data":[-1294403833,1318250732,-1202696727,-1964446583,-396513200,1048596596,2080403008,-389304312,870928488,-1070483376,-1202687768,-655884276,1344596304,-2081649835,1437598956,-1202697240,1458103689,-569968816,1946158189,-334066927,-1327827091,1300424704,-402599752,-324972373,1958742893,-1294403833,1311697132,1852311182,1845378699,-1980697112,82378310,-62486031,323848998,-485111933,106385692,71666214,39684902,641567526,954730382,1499399936,-502937725,1745260260,-29455506,100017773,639333408,637760907,-1341107061,1293608967,-402515784,1957711939,-395447109,-2014818338,1575324495,-388461629,1311371536,-61462018,1979841155,671545100,1947205742,-60390652,79951614,-2144980619,729088829,209552166,1378120704,201213579,-1962707758,52886598,-944107451,1305405446,-1960394612,12127837,-388877360,190468121,-1023314478,-1157740917,-1310179644,1460058189,-1957732120,-1917125562,1302521918,-396945736,-1977200815,1963539461,1166747149,333989890,3192908,121384939,-544535947,-1202978072,569049180,326435644,209552166,638350336,-401586805,548948974,638249730,-402504309,280513506,1333389568,1852311182,1845378699,537261606,-994569356,1324869702,-504887632,-1030965170,-347149080,100017689,638809152,637760907,-1341107061,1276569607,-402514760,-1960423617,-620031651,-1960419212,-1910108291,92939783,762514492,695470140,544475964,1182075452,637983162,-167684854,41157314,-1960431946,-654900667]},{"sector":7,"length":512,"data":[-397616152,720062385,-348756034,912375319,21362214,-1106414328,-165267875,1963196741,911851011,839682606,-1976678675,1314580484,-1984366622,1315170540,1307073968,1745260110,-29455506,-279189395,-1011824501,17167910,-877657484,-922874397,-1957810200,1312549057,-397543959,-269922780,1183449933,1183515647,1187251710,163745020,-1946532213,1452014686,1397799166,-1202842392,250106449,1465301070,-1202845464,48760350,-397037490,-1984410132,1308092645,191753377,-150506304,-387140904,-1196405784,-1588735000,-617386392,866123961,1316743378,-388460872,-1947644463,-326518707,-1337079576,1303570525,-400619592,1605914045,1303898206,-396797256,1538805169,1303111768,-1779904592,1298196813,1077316382,1745260181,-803303826,-1961366674,-1977220484,11993949,71404326,208977931,-1962785655,-167050124,-1021319819,5421087,-385628285,681695119,1843307374,-387465240,1656447323,1670834231,602418037,922702076,922709486,-13734298,110035287,110063206,190475758,-1844742958,-1840442648,-397617688,28527854,868234179,51758043,1396676178,1163149206,937958997,1278755374,423573691,963193401,1295717407,1714240659,933449533,1446878257,-1773054651,1066812223,1430230569,-1776795754,1066817599,-398515881,1053057153,-29659578,-2094649742,779419709,-401735898,330326932,107179240,-10819497,243792,-1328199192,-544495092,638017368,1407720841,1282206028,-385855304,1371068121,-690755328,1428627128,-327029621]},{"sector":8,"length":512,"data":[1720189058,1664346367,-8485177,501743616,-27358977,-8479091,-1605640984,1178234426,1007252735,-400788204,-487890124,-8479091,-397678872,1021901618,1276962892,-1956438040,-1195155995,2122317909,57999614,-385846856,-1957308807,451707884,-949812248,59462,15091399,-327250688,-1207420184,-890765244,-21305246,-1326823799,1652942886,-1377302923,-398030338,49446528,1183518325,-159481622,-1959496448,803989574,-386906485,1183533982,1268312298,15236739,-340785036,-387555699,1586318330,1277880568,-387430773,1586318206,1277094118,-1957981720,1438866917,-326898549,1653270550,15353543,-327250688,-1207449880,1458044964,-28907422,49446528,2122321781,74776822,770424883,16271047,1262282752,1586359216,1269098730,1347112424,-387293555,1183534032,1260710128,1260447832,-386376051,870861760,1575324491,-326412861,-1206457213,-957855681,-364475906,-387154291,2122319719,477430514,-2132130165,1962997374,-129579224,-340787200,-386376051,-68662446,-263812790,-386376051,1183533948,1255205098,-386906485,-471315766,1575324490,-326412861,-394335101,1187471836,-1929379710,-1125585794,639484946,1913405312,155579916,-167349245,1948256581,6404102,-1193990935,-1897398250,-662794911,-1157559832,501758728,-1207536543,183042106,-2040624683,-1922983960,-269958018,-562135040,-2147060478,1946339966,-662794978,-1337304856,1185212416,-2142606616,1946339966,-998339318,-969100056,-1207957435,1055391780,-47257503]}]],[[{"sector":1,"length":512,"data":[-1920711031,1988997246,10873048,-1920434547,-1662466954,-1333883648,-1953991027,-1976662434,-1545076409,-1669427968,-387156339,2123169923,-998863480,-1929348376,1988992126,-401887096,2123169926,-663319160,-1929353496,1989012606,1081206920,45514368,2122321781,74711226,1240186931,12207815,-934900992,-1958097432,-941040570,-1270445239,-1958100504,-1142362042,-1913933751,602440286,-1503752886,-397782040,1586298965,1246423170,-393984373,1183533470,1234757792,-390439283,-1410840008,1575324489,702915,-1510799586,-1007661687,-1929005080,-1796674442,433056024,-2144216856,1946289789,1231284245,-1928772214,-806876579,207457609,-381026328,-1916581525,1988881534,122025606,-1308003064,1955213054,1212868866,771752376,-402434934,1166231475,-1070398966,72649262,-2092456216,-1023276435,205915394,621805568,405276685,-2115204267,-402607380,-1070374864,-1979824503,1183448134,1317439994,-495022593,640703464,638351243,638476171,1988691854,-129594122,134694390,1290273652,1222109209,602407088,1223747653,-11624819,-1337423640,1606936633,-402615576,-1634907938,1994981198,-72685496,-11624819,-1337430808,1601300500,1048583797,1948741178,977174551,276047470,1586359216,1225058554,-386113907,-991213260,1290282672,-1339001505,-94466581,-1924600344,501808222,1217456201,-11624819,-397924120,-1634862244,518586190,977174600,125052782,1458050224,-1326912673,1599072295,-11624819,-1924651288,1183578718,1221257468,-386244979]},{"sector":2,"length":512,"data":[1407731936,1575324488,-144906045,-397908248,1957822542,-387442768,-1340508834,-159468932,1946347846,-1301106684,1586319990,1216145660,1509961192,-924314960,-1978632866,-27357758,-1924634136,-1712784290,-1966806200,-1929300798,1474886750,-27357880,-1337423896,1591470355,-389120371,1580925977,-1943243274,-129614912,1183458677,124095209,989189864,494266694,192152744,31997360,172329800,-1337455383,174426684,-1203239703,787021898,7387346,1439836393,-326898549,1588783190,-1989283679,1187511878,-1929379670,-1930892674,639484943,1946304384,1065362956,-1207536637,-85393333,250381265,-257821557,205818221,1844459145,-1945609079,1166674500,1946396681,1965074462,17090074,-1962851192,1149831749,205884162,-1962654583,1149832773,-1203705082,15204356,33867332,302073030,855786633,71600576,-402242423,-1159182575,-1984278465,38046526,1480963048,168201402,38046704,-402652667,333989284,-1436644025,-1337545496,1571940370,1659437941,-400248577,-773300767,-1436643847,-1958308632,-257687994,-1436643987,-398021912,-443857178,-437730467,-512038819,-1336207640,1572333647,-1956990744,997083670,-1206422826,-1880621048,146298831,-1031033877,109533355,-374631104,1354254002,-786437888,-10637336,-395418058,753401866,1711705857,1184426350,-2081649835,922683628,113667686,-1340510660,1567090701,686295472,1946267741,-401952757,11558175,-5242252,-386316664,1048599207,1968336442,1178518598,100017774,638415888]},{"sector":3,"length":512,"data":[637754763,637631883,-303364210,-1476031962,-2145618686,1946220926,67314716,-112818174,54889254,-1929623927,-242292542,654202505,-352238197,6928440,-2133815063,1399732798,1053053813,-2094633402,1946161021,100017736,-398297984,-1960384746,-1960439971,-1910107779,1065362949,637957129,-150845557,-96040488,16350848,1187382397,-504888839,1550903388,393527306,-213260208,83460185,-654900619,-335919615,-214308858,-1963309431,-12781242,11537781,16481920,28312180,-1963374968,46235848,41026108,-315488335,1592312203,-109670962,431006963,1968977640,-16455421,1849427654,-401690618,-1000383391,728655374,1575324623,-338754621,-1977200317,1946172421,1946238001,-1879000799,57934396,651165881,637885835,-1960441973,-1960443043,786956629,130515782,-1960438293,2129133893,63406917,-1977218581,1642594629,1497843525,-1183450821,-326412861,-399840125,918838308,-424645050,-2013003226,263257670,-1923354392,1575545470,358541356,-488107856,-401166245,2123193309,743106774,33441526,1172833652,-402396395,1988957486,108822762,-2145815294,1962937212,1152641043,-1572688,-28931520,-401972086,199968009,-1975472920,135069254,-398136344,-443857738,-1957313699,686588908,-387154291,499387604,1007127078,1011577856,1011315716,1011053573,-2145815290,1946551933,2139301390,208994308,1849310848,-402295786,535498854,1458050736,-662794917,-387156339,1988952094,899475692,-401382680,-142142307,-1959082264]},{"sector":4,"length":512,"data":[-443874235,733528925,-826283776,-2144985916,259262015,-1377241209,1962379065,5695503,-398885655,45681915,155379969,4646998,1065363038,-2143390455,1963067005,-1239512264,640992367,973227147,640316679,-1996400758,38112309,1124554120,-951760408,1093,411078,542150,-2079767098,-1995811447,1166609501,1592312590,899934208,-2134696508,-2140265970,-2147462936,2137924134,-2144985660,275909695,242715430,207588134,-1996190170,38112285,3139779,-2144985660,561319231,33979776,-1494738316,1132193845,873022858,207457537,-1924930072,367528541,1132587332,2668739,-389155607,-1682243361,1509353537,2045258357,1200238170,351044353,1464923275,-991363445,1610058496,732424280,-1022049149,-385865288,448318917,-843060992,-253218640,-2081655463,-192211732,-385971369,-823656293,1610058552,-2144985916,-730527937,72321830,106924838,-1962439130,1200301785,1602954764,394995214,992353732,-1166734265,241142566,1964456742,949479601,-399194904,2105545538,561316358,33979520,1569397621,-754732790,173802475,1300891530,132218890,19196114,-348913944,1038084130,-152504441,993847350,-1746339961,6338626,-398233880,1170621107,1974472456,-2093773592,113448132,134874882,168560907,202246925,3336207,-398338885,527784212,777623528,-2097068150,-192211732,-24422576,-1962928152,-396861449,-998036795,-1009128684,197124,138019076,954730830,1107933952,1968758760,1499654175,21465646]},{"sector":5,"length":512,"data":[-1961563005,-1957211916,1960190,1482684299,-2094362392,-638905148,84019139,588252674,470037763,1107640583,1535502342,-1151965464,-1578614137,777287000,-1006544897,1065362973,-166431482,1080959494,-2094647179,1946158207,233891852,-401637400,-546043111,108888259,640578822,552945654,-672651404,1103620109,-389019208,-655867355,138790465,-378163185,45691569,115795968,-1205240343,988348458,9418956,315372777,1119834627,1397039618,1398097333,1173228897,71639632,-83671557,1187133253,1363619382,1245923146,1196042567,1447557903,1276666195,1257068617,-397697193,-1981281957,1177994328,1552623214,1955276293,76424711,1166810505,1200236034,121997313,411078,542150,1850095300,-1476097498,638415888,637754507,637629579,-320141426,192153768,637593320,16860299,-154990011,1080959494,-1960419467,1435042132,1006838794,1009546240,1008890881,-1340771326,1418405382,1050077187,-389640520,1170620753,501942281,55872294,-352253208,155567636,-972756159,637602117,-1996274549,1166806085,83240462,-1173392380,-689424188,155567679,172345128,-857145344,146008128,52742282,326369340,175374652,779354684,22856742,280707819,-1157371136,-1960443886,-1960443580,52822900,478881335,1962933123,-1579678914,100888080,-1064407550,-1960437013,1364197700,57969446,56396326,1888288951,15984644,-670869415,1946468854,532948483,1166655539,155551748,-1945477751,-1195176891,-823590773,570881738]},{"sector":6,"length":512,"data":[1165312110,1850482315,175495947,863945913,6285522,1170614251,1200226310,155551745,-1996339317,1200294469,205883652,-1996077173,1065356869,-1173392383,317208772,155567679,172345128,149487616,133163072,-1075292666,8120320,106939430,-1945477751,123604037,155567811,1456914,-1023314578,571033030,108956601,1745260118,-29979794,83240557,640972048,1946375227,-1194459602,786988683,1955276288,1552557571,-1929332989,917505136,641722344,1963984118,1413162510,-1207405565,183008651,-1948587264,256193,-389871778,78659545,17102374,112198260,641711081,637623435,794115,639601446,925187,105351974,403047206,-1094546432,244027646,384003610,225772603,1963086907,106728200,1847068302,147227587,-1950815518,-910432000,1852311182,1845507723,-1977216021,-13499556,637825165,1963984118,1955276296,1979058947,1048626153,1946316346,1177994312,478881390,41192230,-1996190170,-1938957794,644733958,918816650,-964465082,1946762244,1963408393,2144549,-1977219349,1106063884,1088995723,-1239512737,-74754193,119473694,520529139,1874247263,-2091448546,102632135,96012063,111538944,516185887,495545818,-956152436,1093,33965510,542150,21465638,205488166,1166739826,206932746,-1997776664,-1712781499,107341909,280007,138790400,1177994240,83240558,-402426864,11599391,-1995716989,38112309,101074374,-1593358968,1166634574,1850777872,-384678519,229660000]},{"sector":7,"length":512,"data":[-397068056,246479569,-397070103,-397388574,1012464663,-1023314940,-1003236120,126494237,1349848124,33979776,95436148,-402168438,334031903,1040181304,1273495728,-654854086,134694390,-138929292,1045424336,-388827208,95960649,1044637697,-394067784,-759677379,1043851264,859695849,735196096,1427835461,738912524,645204540,33979776,-420997772,833153072,-398610200,901265203,1040967904,-2093105431,1946161789,326467588,188531584,116861557,8416734,-1964452747,-402608067,146290514,1038346432,-402426696,-2135409187,1037560054,-1041727312,1032186173,-385865288,-1981233159,-78518188,-1003285272,1065362973,638350349,1946959744,2734114,-2134385431,1946289789,795338769,17397120,-2029369973,1166609477,1971569418,-2134703862,1946289789,1025763366,1877475504,-789137351,67585526,-138932364,122025680,-402230264,-138920595,1030219986,-146990359,1442253397,501793548,105236052,-1983892734,1170605125,1166544135,172329224,-385071735,-396942162,-544481295,1065363039,-1341688573,1402333201,1392927092,-957870672,-117512109,-1092088144,126494291,39291686,495519579,-2147334772,1962935933,155579928,185759104,637957330,1963087675,1200236040,121997313,1930181827,1963473924,1065362968,637956876,1963474816,1200236044,719867905,2145998898,4044854,-389612311,1170670683,-973078524,-1207957435,-1766191103,977174528,510984558,-1957211568,1379985651,-141834102,1968724575,1408860173,-2077882251]},{"sector":8,"length":512,"data":[-385649628,-1031012902,1439088873,-327029621,1239941324,-1070377133,-1979955575,-2037776826,2123235124,-1190715724,-1410138096,-790097744,-1592887982,1187475000,-1996458244,-1846935994,-394359552,-1342123800,1387653143,2123182453,12839124,49184384,2122321525,141886170,-1947056501,585883222,-387416435,-1557559,-729903818,-398737176,-1464322314,-2143819008,1963126398,-230257883,-802434933,-259312270,-288160847,-511653750,-771641337,-1270740768,-696008496,-176600576,2123176427,998762728,-1204371992,1357381796,1000138812,-13328755,-1338297112,1379526674,1961427829,-401559297,548950633,-389510400,1988975575,519801780,1604645639,-1979943228,38112309,280007,105235968,138790402,173902080,-13320573,-401574912,786968399,882806075,990505215,-1959051544,-389849627,-756538748,-58817744,-1005161216,1200301597,1602954764,529212942,-1996484603,1586101318,639485182,638338955,638476171,268771211,-62506240,1580927093,-385649154,448269130,-982521600,-402469144,-1125625348,178435,-385874968,2105549466,359925254,-2144985660,225773119,1962998144,172327684,-404110590,570881536,-160087954,101088640,-1628934284,139296826,16351233,1173764468,611651593,537478646,-1196422539,-398796824,451623417,17384950,2105740917,141885450,-386365000,116079313,-402616902,-109037187,-2145487614,-1207695283,1173805196,208994569,-155153224,1963460933,-796084221,-1494687486,978970682,17188294,218580422]}]],[[{"sector":1,"length":512,"data":[607686,641057987,-1460321142,-1470401278,-167349232,1946224453,1961691729,1964288015,1946265673,2088969797,1047855352,17319366,1946220928,-390549474,-1940833712,1552623296,268483062,-152513997,-109029062,-2136574718,-1341913011,-390004040,-1064551888,-161707226,857735353,987228370,-1883730965,-1000609536,101088640,1166739572,206932746,-1159174933,-164248575,1963001669,1552623146,1960512508,1955276322,1149970168,175490064,-1960382461,1846583604,1845626371,-1960394610,1351296512,640674562,49628406,-1960428171,52885108,637537334,637682827,52835467,637537846,-92072821,52458751,269913026,369305198,-109051862,-1845398272,33965510,218580422,-1995815543,-1195176875,-823590773,-326412861,-399971197,1441268007,1177994320,478881390,41192230,-1996190170,38112285,21465638,1460094344,317198256,-327250608,-400523288,2112368317,-401362935,2123190273,544139480,-399594264,279972204,-162533144,1080959494,2123186293,954198252,736624816,-397365195,2123184424,953149656,468191152,-402149323,-396412648,1183463643,-532280588,1166544676,155567624,-1983892696,1166608965,239438092,861869547,71666112,-1962326648,1166664262,-163149046,-972274295,-1962932667,1438866917,-326898549,6809602,-1001413656,-1334950346,67249892,-1325513080,1332733967,-400564248,279972064,-2142280472,1963067005,172329745,175498250,1183506570,951052542,1189613803,-402477000,1183462546,-402125570,1357396108]},{"sector":2,"length":512,"data":[122013240,-28903934,-972786687,-972683451,-2147416507,-973010867,-1962931899,-154968603,-1066524154,-1195179659,-1628897147,570881730,24477806,8763587,-2084400919,7213118,-1195179660,-2098659189,16312514,101088640,116790901,1967156770,639484967,294787,-538437516,91154435,1946224872,108888287,-166890240,1971325253,-1883716857,-1035212544,-385844552,1048625733,1968401978,1177994340,2088969838,1500774415,-2147158490,-1108847756,1242991438,-138811282,-1075251321,-1980266536,-1960441275,-1960439972,-1910107788,-1944221436,-1977220539,1166541127,105235975,138790400,1200301568,651753218,1963540352,952416780,-969511704,858261829,172329408,-348691736,5302275,101088640,499388277,75465510,-401116160,-840432834,6809604,2105599604,125108230,-2146875914,-1195179659,-1427570566,2156737,-2144985660,292816447,1946174696,108888307,-167283456,1971325253,2058928897,-1048057600,-1152692504,-1981264567,772044109,-1207867393,1927872532,1375930561,-1252834625,1196052805,692537923,1398097738,1257068641,-1605809128,255618618,289148788,356255092,-373095308,602472911,-326413054,-1004606333,1065362973,637957121,1963540352,108888076,-167348992,1954548037,7976966,-389997335,499404204,138906406,174033702,-1962439130,1200301784,-398030588,-1931321719,-1923619770,-1578570626,739764466,-387811699,113640827,-402362814,113641137,-1962906046,499408887,71797542,106924838,-1962439130,-1944221224]},{"sector":3,"length":512,"data":[-1977220539,1166541127,1200301575,-431585022,33979520,1149964149,-398054646,31876855,-1578563003,-398030080,702965495,1183517253,11790566,-152416632,1965033797,2093550112,-386431204,128988657,-2026750488,-364475657,1329577558,1577102056,-348791576,-386431142,11548117,-2026757656,-364475657,175947786,1329184342,1577093864,1300239851,-1162869752,-1959393304,317253190,-487081930,-1976169240,-142145467,-2026823192,899410167,-142147408,-2026812440,-125060873,537478646,62391156,157551352,-399121176,1149908375,135209992,1300236357,902045705,20742182,-2144991628,175442236,686297776,-385649332,280035028,-1957930776,197352933,-1324124992,408848,-919400844,1944637761,-1073001989,-5176716,1913666755,76230170,775262440,-402504565,-1959905911,897837060,71600942,1010138345,-2146208254,-1979578291,-391008032,-1959905939,-385741820,20723045,108269170,-402355410,-1959905959,894691588,-1948200509,-775552016,66554855,641058046,1946303616,1015031302,-398625533,1048595448,1963028026,-1075292359,1610058570,1379676277,-1960435339,1157693764,1552623114,1955276293,76424711,1166810505,1200236034,121997313,-1337211927,-163518208,-385844808,750305061,-1088427776,-2144985660,108267583,-385844808,1894301457,1268705532,108497702,73370406,-1996190170,38112285,21465638,-402176632,-1070399485,570881731,1232420974,-2144055064,1962935933,952416776,-348955416,108888082,-1206749951,-1696020599]},{"sector":4,"length":512,"data":[-1030834124,859084008,-349654336,-1962495981,-974648235,-963725263,-1959493400,145885765,411078,-1995876984,619252293,108888116,-1005816830,-1004139939,173902111,-972274292,-1023408571,425344,1173769332,1484062983,-2094654012,1946221695,178255,-1006515480,14084149,604587402,863234063,-59441370,-126579930,272927526,-398619718,116863592,159198,616040052,880666626,503298648,-382577688,45626299,26077184,-1171023640,-1427629825,866773298,2662694,-1962837272,641058014,83182838,-165276555,1946350916,1284187667,-74754058,1609439976,1924688363,-1107826432,-180029914,-402295792,468385884,-128677082,326423051,1845499451,1437599605,-348940312,1996470534,653490408,32851190,-1064557964,1852311099,-1699736204,-1942783000,1552623296,805353974,115921459,-1340544204,862382094,1642653872,650153011,-1175036789,-768409600,-382465816,-165268713,1948316996,122025504,103445761,1038661808,274580531,-1960394612,12127839,-388877360,-351849503,1156982294,343163125,-151015240,1963198277,-1070483453,-1338825496,856614992,17253878,1173757813,225772039,-399332120,101460821,115955636,-1070483405,-1204616984,-85372848,-397015502,678753130,56396582,-1961867893,1223168597,1578726692,2126821639,-1293364685,155567858,172345128,112721920,852224343,-385839176,499432693,108497702,73370406,-1996190170,38112285,252200390,205488166,-2144990093,108267583,188710950,-1977216907]},{"sector":5,"length":512,"data":[1170604359,1166541062,155567623,-2144943360,158665279,84297158,34031046,16824515,-399566616,686371345,-326413006,10153089,-1960430140,-964491188,-147004662,7200262,855799048,-96040512,-10058041,229638144,1464396008,-402237871,1577517089,96895833,-1341688759,1221847058,-1335891221,1221322766,-10051955,-1959681304,650337765,637813898,637688971,-1910098805,-59340537,-1912715636,78177918,1988977013,-311367428,-386107763,-1259855122,32499712,-1977213500,1930181639,1946696733,1946565657,1946631189,1946762262,1946827807,1946893352,701556777,-1763152779,-395646164,1860707757,-396397568,1525359991,-400166168,1383333985,-349825560,708765773,-353874965,-398005462,1589967183,126494460,913571900,292817212,594871100,-1030962293,-387441212,-349998046,-569968880,1962938477,639484942,1946763136,1751057,1002151145,-1930005219,38091712,-1880559755,71666473,-10051955,-147803927,195142,2105543284,74712326,67716598,639485123,482609034,1963407910,853051918,786682367,1399429119,-1195179659,1391001626,-1940681541,-1940681645,-1940681645,-732718765,-1990974381,-1991014061,-1991014061,1783859539,-1010814124,70976907,1166739061,38025986,509040323,885341636,-1491503705,401086069,-1391364864,-1861388881,199756515,-1509591808,-152960395,-1017225441,-1391430233,1193118502,1958742855,529212934,-1022936173,-2094654012,1946158207,1334519356,1602954756,126756358,-1960388213,-1960440761]},{"sector":6,"length":512,"data":[-1960440225,639419415,294787,-1960437132,-1960442801,-1910110625,651791111,1963738939,1602954759,389752334,-1996190781,38046469,-1023261303,70976907,1166739829,38025986,-993853067,1200301596,1602954756,126756358,-2094606197,1946157695,639484960,637814667,637951883,-661977202,41911078,-1962248960,-1962571516,1166606916,499434242,206015270,241142566,-1005090010,1195058716,638022924,638476171,-993847493,1065362972,-1021086964,-1912555845,-345098234,13024025,1849165454,-692383509,939953664,-1157108882,109969638,2105568824,880083462,-1962261109,992349269,142542423,992354428,443679815,173488934,310315132,138885926,-1977217929,101318983,1166569026,1287176967,-1177556736,1843267319,1182007298,-14265594,-14284169,-14284681,-14285193,-594869129,-402650952,1397764230,-401756078,250095906,-402608081,-1078973606,1513052136,12146779,805562448,-402600776,216543175,147096367,-1977219237,101318983,-202805694,1174857768,1850089156,-2128639194,775946211,1432323979,1571290926,5724245,-329376512,-396485376,140473344,73364481,5756161,-1873232384,-1806123520,5825792,5847296,5979136,677110272,744219137,6078721,6092032,6110720,6120960,206961920,5648384,5779968,5800192,6065408,5682944,5703168,5721856,5867520,5910784,5952256,-1738860544,-1671751679,-1604642815,-1537451519,-1470342655,5659137,676747776,1281203464,1348312321]},{"sector":7,"length":512,"data":[5995521,139853056,5651200,-326413056,1343548547,1964405736,-327250666,-401240088,1961426576,772794390,1541931184,-1207506134,1726529585,-790079442,773646382,-1017256565,-189011024,778365037,-1909584407,-1955698682,644742718,1948255734,-1142181877,1273523702,771025198,-385836360,-1957316511,686588908,371255376,-387154291,499447247,205488166,2123186034,369617112,1170675060,-973078524,-956168635,68165,804295,-402003200,1183454476,664856819,1511386856,-1913880947,652793974,-386430168,1166802397,1575324420,6863043,1438123241,-326898549,365226044,-387154291,-974646200,-662794987,-401289240,-2098659888,364308520,-389775731,-1343744848,678684925,-1961516312,1072230470,-599356627,-1959970328,870893638,24164397,-399639832,-443863738,-1957313699,1022133228,-1927973400,-102175618,360114195,-388465011,1843926000,-998339307,-401311768,719912312,358213672,-386906485,1183526134,753985756,-389527925,-2135413526,766633985,-1959985688,-1195155995,-1528299248,753985837,-2081649835,602417388,-327250667,-1928073752,317249662,354019328,2123233163,591259884,-1962654325,113466853,2005608019,1602954758,76424708,54493222,313531765,1967348456,-1983892714,1166541893,537049096,-402614086,-2014777305,638643192,-402503797,-2001196634,759031808,-1892908312,38113029,17188294,218580422,252200390,607686,-326412861,-399971197,2123175078,327346412,108497702,73370406,637832742]},{"sector":8,"length":512,"data":[1963147136,-401428452,360006391,-857189626,-1207477257,-1715847164,-272242688,-336058904,2013210135,739239938,1478968808,-1205256728,-722993012,739895340,-1961599256,-443874235,-1957313699,686588908,-1928050200,334031998,340453395,-388465011,1441272660,339339516,-399780632,-2001197302,748546048,-970202392,-973011387,-972224699,-972093371,-402650811,-141880442,-387154291,1166746171,1575324420,-326412861,-399971197,2123174906,316074220,-1928070168,99145854,-66656237,-1928074520,-2098664322,649652267,-388465011,-1343739015,9222182,-399752472,-443864178,-1957313699,351044588,331147344,-387154291,-337112442,330688547,-386906485,-396874926,1743268891,1575324459,-326412861,-398660477,2123174806,316008684,-1928095768,820566142,328132626,-389775731,-1863839080,642509051,-1961657624,401141830,-599356629,-1003810328,-1960388514,-397934009,1183524918,721479880,-402632520,333982663,1575324459,-326412861,-398660477,2123174722,300280044,-1928117272,1307105406,-79304686,-400162584,2123174708,306112708,-386189592,552084977,-263812333,-1960133144,-1209476026,-934900950,-1205161496,2028470356,717547563,-1017256565,-2081649835,-202878740,-327250670,638719976,205260682,116867700,8416734,-1360519820,510715933,-1193771379,-2031615977,-998339321,-385876040,-1934096515,-399250559,115875258,-662794972,-402648648,2123171689,-18236,-1207475992,384500196,-386217752,2123179377,-390057000,1187448653]}]],[[{"sector":1,"length":512,"data":[-1207959352,-397409916,2123174548,288221360,-1961720088,602468422,-599356630,-1960174104,401131590,-1270445270,-1003875864,-1960398754,-397934009,-396875978,468200143,1575324458,-326412861,-398660477,2123174474,294250732,-1928180760,-253175682,300869873,1006733498,-1173064692,171737488,-390460044,1946893313,6797318,1353995497,304277586,-389775731,350752971,-327250670,-1960203032,-1410807738,1961383977,700049450,1946958936,1946893342,105235981,122013189,292743170,1170611435,1170604294,1894253575,-972035311,-973011387,-972224699,-402650811,1170608490,1988955912,448587992,-2013675288,535423223,-1962654325,1438866917,-326898549,296282152,-387154291,-1410854724,611313913,-1928223768,1021892734,295036944,-386906485,1183525170,690809052,651714244,1208108939,-1205448216,-387448428,691333161,-1017256565,-2081649835,-397404948,2123174242,279046380,-401514776,-396875527,921184711,688973841,-1017256565,-2081649835,1072179436,-327250671,-401617688,2123174208,276162776,-1961807128,-806817722,-599356632,-1205286424,1589903652,1065363180,-1207733244,-2065170156,684779561,-1017256565,-2081649835,-1557268,-327250672,638553320,1963278208,284878923,-388465011,2123173748,283109572,-102233227,-117774321,-349983512,1200301578,631826434,-399996184,1183518927,678226160,-388217205,1183524966,677439688,-402543432,-1763170009,678488080,-1017256565,-385859656,-1957317927,686588908,278456400,-387154291]},{"sector":2,"length":512,"data":[2123173669,71682008,-2144993280,829687103,75465510,-401378048,-2135420811,-400788224,-1914171508,591390968,-1960437781,-1960442809,-1910110625,651725575,-402503797,283649326,274065448,-386906485,1183524850,669837532,-329333672,71270438,-268106892,682223871,-401598232,-443865102,-1957313699,351044588,270592080,-387154291,-2144989523,393545023,-1961879832,-1276579770,2095601703,267118632,-1960327704,-1195155995,787021887,-326412878,-401281917,2123173870,243001580,71270438,-454551179,-263812337,-1205370392,1223164268,263710760,-1960341016,-1195155995,-85393345,-326412879,-401281917,2123173818,239593708,-1961904408,1407774790,19970087,653024964,1946435456,18921475,-400027928,1474826109,1575324455,-326412861,-399971197,2123173766,236185836,71270438,-2115490187,-662794993,-401699864,1055455125,258861090,-386906485,1183524618,654633180,-402565960,988293067,655681551,-1017256565,-385859656,-1957318275,351044588,-1928380952,-890704770,255453197,-386906485,884483798,664659969,-401666840,-443865370,-1957313699,686588908,-1928391192,-1561793410,253159437,-388465011,149425739,-263812337,-1960401432,-1612129210,20494374,-400070936,-1343746347,1575324454,-326412861,1347480707,-1928405528,1793649790,1065362957,644117764,294787,-773300875,-662794994,-401781784,2123173576,231925956,-386477080,2123178373,245885104,834146676,648800448,-397389640,1491609253,-402396378,-1729622705]},{"sector":3,"length":512,"data":[-263812338,-1960430104,803789894,-934900954,-1960433176,602453062,-320317402,240904230,-1960430104,-1195155995,-1628897217,-326412880,12643457,-939637111,64582,-12548409,1172832256,-385649650,2123170074,-500766488,-2144985660,108266559,88047654,1810376309,71666462,-2144985660,108266559,-369342839,1317732583,15776510,-385729560,2123170050,-504174360,-954525464,50246,-1977213500,1963539463,440264724,-1927400984,-1070345090,-1207785240,-1880555304,1946827776,1963670532,-569968830,1946189933,413919261,-1927713304,397988990,42199040,-1195344243,2062090239,-2133542910,-1209507093,520349720,-1194033523,1726480401,-1065448190,-385876040,-591920547,1011215105,-401378036,1793652161,-729903840,1189658675,14465026,222047979,1458049141,-729903840,854114355,14727170,238820075,1122504821,-729903840,518570035,14989314,1085802219,-1349261056,-330921136,-1960509976,-135735226,-1002009820,1478816232,-400180504,-1634917114,-1628897472,221505572,501810037,221636863,-1157871989,-236453632,1084132620,614852863,-385988981,-18340465,618194956,-1017256565,-2115204267,-1996444436,1187511878,-956301060,16733318,216983552,-169278604,-394359552,-991124760,1065362973,637957124,1963278208,487909414,-1006353013,1065362973,-1996065788,-1024852922,-28407040,-402584390,-571932444,-394359552,-387158296,154930284,-404218763,609216540,-1960436284,-397934009,-122150534,621930496,-383492632,2123169926]},{"sector":4,"length":512,"data":[1963605204,-1643788527,105235968,122013189,-2131445758,188501483,96932213,1170604194,1170604294,-524811257,1010363137,-954895092,-973019643,-973011387,-972224699,-1207957179,535494908,359992892,18220487,17188294,34031046,607686,-352255816,4241414,-391223063,-387439453,1849205027,-972929655,-1928394683,401139830,-199497707,1156118407,71666458,-11231603,-400331544,58002433,-385924375,1183517699,47868,-1928609816,-385919842,1183523699,610134270,-401879832,-443866202,-1957313699,-1662221844,-28931840,-2114169207,1946223865,-386301578,644903936,294787,-1960416908,-1960442809,-1960442273,-129595105,-939893111,16737414,196012032,-387678579,1580927528,-1941277192,-95011902,854082421,-62485725,-400294168,-1634917558,-488046748,192407586,2095634036,-28931317,-1927079448,-385915746,-2085084433,594274500,1441268912,188999715,-1960632856,-1195155995,-2031550401,1751213,1353548009,-1326967888,158685241,-401975320,183104335,537716766,-1004343575,644761118,-1007214709,125140992,1847723766,-148998784,1967128771,570881543,292896878,1073734529,775541736,1636665227,-1951924434,8763489,1068314857,-1946156952,-1946076054,-1946075030,-1946074006,-671004566,-671000470,2130795626,-1895825308,1056964706,-1090518941,-1083958429,795092323,1610612836,1761607780,637534308,2046820453,2046885733,-1728053147,-1721600155,-1721599131,-1721598107,-513637531,822083685,828530535,828528487]},{"sector":5,"length":512,"data":[828531559,828532583,828535655,828533607,1835167591,1835159399,1533170535,1533183848,1096977256,1342177385,-1828716439,-402653079,1577058409,822133866,-681419929,587202663,1157628010,-1224687510,-1040187292,-100663196,-1442840476,2046820455,1811939941,1677721702,1744949376,1812059264,1677847680,1879175297,1946285184,2013395072,-2147353472,-2080243584,2080507008,-1946023808,-1946151736,-1946153256,-1996481840,-1744824096,-1670839808,-395764480,1256720722,639484951,1963736960,108888158,-1337691134,124094981,-389048600,1173756810,494209031,-1339985688,498919424,-390067784,2042110409,566487042,-388433992,1894326717,559147041,-1612185424,2406429,-400418072,1170612575,-2084368632,2030046333,868233997,172305362,-385067749,650317684,1963605888,108888096,-401247230,266867789,555214869,-1206215960,1927864629,556132641,2131977600,-569968701,1962967149,553380062,-1008205648,-427771878,-1339992856,557770879,-400489751,-2144991070,1031081023,1703544240,-823007225,-166009368,1963460421,550234134,401080496,-386418659,-400481048,1300242647,-389872632,11542709,-1206058520,2095579176,549578785,252200390,-569968701,1946189933,331868190,-401307160,350757009,-1070221286,-400495384,985143819,551807177,-400517399,1994920914,-402608096,-659023298,557705217,1344307945,-402124824,-2141317607,1946289789,542632000,-1545076560,122025500,-166038264,1963198277,1149971978,547612673,773871337,-402439030]},{"sector":6,"length":512,"data":[1290346632,1149972000,546301956,105155374,773884136,-402111349,887693441,76164640,1157863832,206902026,17716201,88129790,-763166719,-922812672,77128,-402597245,-1427634263,122013205,108888064,-401181694,11542501,-1206111768,1055451344,535947296,-823561552,174424848,207979265,131066112,-402165784,-1142356089,124774407,-1341686040,432334850,-949077855,-1996417531,-389873083,-504887294,1065363163,-400132850,-1570821,449046767,-1205890840,1558708584,530704416,17188294,34031046,252200390,607686,6994115,-391510807,820512545,-385699833,384309622,119924743,-2146102040,1946289789,-402214881,1170610530,2105541127,74776582,-1022736897,-1205911320,-1628905336,525461791,839599498,-372100124,-555217548,350218246,33979776,112203380,-401003032,11542297,-1206163992,1927857286,522578207,-2046147189,-372100156,-1957360312,351044588,1460098536,-387154291,-1494743448,-278468588,122611807,-402236440,1508381849,121497839,-2131986803,1963067005,108822542,-1962380030,1166608964,-401806580,-655877427,138709534,-972536568,-401799355,-443873662,-397360291,-1863842042,-397321753,15262680,37509127,112199796,-384260632,1609107086,-152007930,1080959494,-1959912331,518252548,-971073816,-973011387,-972683451,-973010875,-385873595,1793590886,71682022,1170604032,1170604550,516161544,53347476,-1960443300,-388877561,1139346576,111208454,-1607295256,1362914874,1128029812]},{"sector":7,"length":512,"data":[691821172,1088968308,639485158,1963147136,2139301458,1265893388,273124134,-167099135,1080959494,250094709,948681246,-1206050584,1726481803,505014302,17188294,101139910,17321344,607686,-286774037,173917413,-1910535386,644748294,199952267,-1058019241,643817355,855787403,72714706,33965510,-402107000,552078344,96004358,-402254360,1048588819,1951493690,-440539089,-1763172924,1200301568,172294416,1847723766,-401705664,1170611605,11535879,-350626328,-443815887,638213572,1441466251,-1064048553,-396370037,116785253,1967156770,-1196403920,1528675304,-1960394612,12127839,-388877360,-1934090655,498591962,-971150616,-973011387,-2146629819,-972748723,-352319163,-448796632,241142566,270402342,126559744,1962934077,337021742,71681902,1170604032,1170604550,1575485448,91613195,637854185,1963147136,2139301384,24379404,9681091,-1196977943,-1964441461,-1343729497,116874756,8416734,-13758092,260302900,-401600280,-622325550,772991772,-402492161,669519810,483125264,-1813512016,-1796712426,484042781,252200390,1944604867,309061636,108888158,-400722686,-1070395575,1649409665,-1925185164,-1729623459,-1962439872,-639106473,76343562,-956326936,-973011387,-972224699,-385873595,1170670714,-973078524,-972945851,-972945595,-956299195,-1036711355,1745634759,239453985,1170725538,-943124720,1073746501,-402376727,729089184,-402407448,-1108867929,393210092,-1206108952,149422452]},{"sector":8,"length":512,"data":[474867741,17188294,101139910,252200390,607686,-150725143,-2140283386,-1206356736,-454557172,472508444,17188294,67585478,252200390,-1207700759,-857177736,470935580,84297158,34031046,252200390,-402403351,-396950462,-544489735,1065363039,-402230008,887746349,2209796,-1767481111,1847723766,773616960,-1863842677,467003420,17188294,218580422,252200390,607686,-402414103,-1959861335,333972084,71681792,1170604032,1170604550,-706215928,59304201,1053105751,1166765586,508922652,259375115,1965049131,1959922449,12747054,722660112,41099333,-1320107981,65590020,254105808,441789184,1160449394,84701976,-360513520,855929601,-976079936,99294333,-947661057,1979648776,-754667017,-2083877950,-494669599,532744975,1426309983,39136006,1023689987,74579984,1107300397,74646827,1241518085,106793923,990010667,-1961266470,220922957,-1048378253,-633648368,141690487,74631227,-745815669,54585539,-402509848,-1595407553,264431874,-2081649835,736629996,40757251,53405783,-387154291,552075875,-1159176445,-263812326,-1206208024,-2132279232,449177627,17188294,84362694,252200390,607686,-1962764824,1438866917,-326898549,48818216,1459759848,-1929188376,-169284482,-353507327,-401233688,2123170524,31910104,-387260696,-924314215,12082946,392423425,-1961206552,1541992518,-599356646,-1206233624,484966456,442624027,252200390,-1017256565,-2081649835,-1813506836]}]],[[{"sector":1,"length":512,"data":[25356290,-401672472,544539269,-327250601,1593951976,-1961221912,535359558,3979290,-400890136,1170610731,-605352184,-1962775832,-389849627,1894252981,355199210,-402587464,-219670791,24950809,-400900376,1170610691,-1092022520,447866881,-971376920,-973011387,-972748987,-972093371,-385873595,116785606,1967156770,-2234360,17319366,-507778877,1846681284,877103910,71681945,1170604032,1170604550,-437780472,26798343,32172112,-1070396812,-402652998,434831796,637565160,1946500992,1211979786,-1205373695,-397409952,1927807447,1088968729,28305434,-971406616,-973011387,-973076667,-972093371,-385873595,1069023581,-1545344768,27846736,637548776,1963212672,27387939,1478049000,-400946456,1290273145,105235993,122013185,138790413,155567631,18671872,-385859656,686334893,296282337,-389866044,-2144927756,108266559,88047654,-1195179659,-1897332659,-2168669,155156518,-1195179659,2129199170,-3217245,205488166,-2094659467,1963065983,1656275713,-1553471232,-991894808,1065362973,-1023314680,-385859144,-35085483,1065363156,-1023314680,-385855816,-303520955,231860436,-1005711128,1065362973,-1023314679,-385858632,-706174163,1065363156,-1023315444,-385865800,-974609635,1065363156,-1023314676,-385866056,-1243045107,639485140,205260682,188483700,171705460,-1195179659,-219611057,-5576542,-385026328,-1343745814,-4790272,-402608407,-1108868954,10873343,-402612760,-1662386236,108888064]},{"sector":2,"length":512,"data":[-2147191552,-1015019187,-949077855,-1996456443,-1581055419,96955960,1166606470,950125314,-1643788434,38111488,1849205187,10618311,-1023261303,-949077855,-1996429819,-1581055419,96955960,1166606590,499434242,1007127078,-150309621,-2140283386,-1342016512,-1072970998,-1078978955,-1592253464,-617386440,-393215815,515381453,405006679,-149437975,23977478,-1207536640,-2132213560,229688088,-1339133207,778955026,-1561784912,-384913362,313536157,-1574004503,1189647682,217311245,1055455111,216786957,499447687,-1006138842,121251356,646581877,205362498,1024422928,1081409550,-2029221144,210102519,2105603975,410321414,33979520,-286780811,175892489,-420939897,175368201,418117511,1843267319,-428539776,-401988120,-142144886,-401990168,-142144894,-991541528,260711965,-754974280,1109297888,-771804523,-2021314845,460614973,-13444726,-472783919,33979776,2088765557,41222662,-13745341,-1200791641,2129199145,-2141290335,1867804,1048592,1048592,3145776,-2130739152,16646399,-2130804482,1835262,0,0,0,0,0,0,-1627389952,1399724653,2138167665,1148123758,695209839,1399859568,-512632463,1399970160,1399970161,-2140022415,177553982,-1662515853,-402396406,-142144827,-2029338392,1111392503,41226133,-253167737,374925326,-1790833014,1963981184,-1191737598,-109051732,-1204259840,-109051728,-1204784127,-109051724,-1205308414,-109051720,-2146929654]},{"sector":3,"length":512,"data":[57936889,-402604872,1156060927,138790422,-2139836401,194331198,1974469237,-402189079,753407719,138790422,1465303823,-1962249077,119409277,-1610608455,3970370,20723316,37501556,171720820,188486772,255594612,-142146955,-1358623827,-119404939,-1477246229,41222320,1048576432,1963693378,1593914370,118352222,-1425732691,283900642,600897453,-119362811,598542059,-85808379,-2134679969,9781822,1692933749,-386431222,-142144969,-401727768,1018697094,375252992,-971660568,-1022425019,33979520,1552615541,4161546,2105545076,527761926,-2146804341,393543743,-402247192,-1070396852,-1996012408,1149831748,73066508,-401249559,-142145045,-2029394200,231598327,-1206569496,216531012,357689366,252200390,-378193477,1448543778,-1962246773,119409268,-1790820736,-2029358080,895478007,820600670,-1979348474,1929642704,855617538,-398438172,1398289787,-1947389354,-1426355209,-213464438,-930455900,-213464534,1600019364,-1022730871,-2029490456,141158647,1117845383,1009825429,-1240173552,1930050584,1006679566,-1240960000,1946237984,-2146912766,1946486397,108822549,-166956027,1963067205,121959945,-402426878,1156972667,527696391,1375761128,-2029483544,142928119,-2028699160,235792631,-1043562408,-488097104,1377102612,-402100760,-1302719382,122948312,1307113351,-1594390765,272405826,171717236,45624946,288483328,1054718544,-401410072,1079512525,-400127302,-1632627980,-401304600,28316759,134759434]},{"sector":4,"length":512,"data":[968558661,86305141,134759562,1089013829,-269987308,-956933628,-2147257312,-1916598026,1284311645,-1790795766,175245884,108269628,-382226456,1760101663,-569968841,1946189933,119793677,518584199,-369654009,1117847302,1947221141,1930050587,1946172424,1963080708,142376975,-2146864128,1962936445,76867587,556160,-1092086155,-402608109,-142144122,-1340885784,226289665,736884615,-1494681721,-402608109,-142144146,-397192520,1353716733,-401348632,11539345,-1207084568,-639106983,1600043027,-1609308952,272405826,171709300,-927461518,339863553,-1156348184,1542026553,28883460,292814908,1006746810,-1173720063,37487040,-994442380,-389903615,1625887771,-569968877,1962950765,1111392352,125044885,-1790820736,-397249273,-142146219,-2029694744,321120503,-1928772214,1301088861,1111392268,74713237,-645463756,-1961655832,330492121,48822151,-386431213,1149899543,138741768,-1962254963,2112358980,207457555,-401849205,1149899636,155551753,79947971,-1092028537,-1963489532,1686767429,-1058674681,-1790820736,-1475841273,604271876,1342442497,-2029205016,-1008183049,-386431220,1048576826,1913296194,122025488,-402295544,1139474852,-352171288,122025534,-1341492216,245819397,-344751685,-2147110888,60113470,1048578420,1946457410,-402542590,2075856524,-1790795662,-523115470,-670834479,39291694,-13699193,-386431209,1149899375,138741768,1111392451,460458645,-1962261109,1143671893,206838538,-2147433855]},{"sector":5,"length":512,"data":[-2147419519,-1073020299,-402437399,1860894723,1109297808,-771804523,-1208013085,1166766619,206932746,-1962259317,801311836,963785842,1064451186,1399998322,1685217138,57829746,-1009577023,-753155797,875162051,-399227415,-1047841726,-2084318325,108273633,-757997359,-2084308254,108273633,-657331503,600046306,-1009572927,-754204405,868299715,1166656467,206932234,-2000711448,-1547499707,-1556086670,-1220007822,-668403854,154728306,288946035,299946355,-1259810445,-1275060110,-1275066254,-2147471246,1963067005,175997707,-1979353855,298248646,-2146470423,1963067005,172329774,661962763,-784217805,1241215976,460701707,-1173729911,971759825,34031094,834144372,296216786,-1716517397,-2146332696,1963067005,28332551,1510834664,34031094,-427818124,272361719,67652992,-3348285,1776915120,108888081,-2096401150,1963002493,-373126395,-1336798871,223406081,-385741736,2105545053,326434822,33979520,-353890955,172264208,1692940466,-1339299057,217507841,33979520,2088966005,292880394,-155186760,1963198277,-1073170429,-351197976,-1292400887,247261240,1069283207,122025589,-1157401598,-1679198919,7579905,678668560,343130136,410238976,410241536,544456704,477347840,544450816,141797632,812886272,2145931776,178190,1510813928,91551242,-1729505654,246212878,-402542510,-380105550,-202895057,-930498305,-1206863640,-1293297015,-1547685104,1168348483,108822677,-1956219646,1141574212,-1606912756]},{"sector":6,"length":512,"data":[171742530,188482676,2105552245,477429766,-2146425624,-1325987995,225372160,34227587,-402650950,1300237846,1407910152,-1206908696,1726533641,-2142704880,1962935933,267905056,34227587,-1307818869,242083896,-2097134616,-1962800531,951192132,-351379736,-402280414,-142144528,-402652488,951192713,-401738008,-21495776,209447167,-1075300174,-1141405939,-1477937863,-1790729984,-1593162359,1166644549,512410380,-13462206,-1959861295,175412359,1342731456,-392870981,-1973940222,1958742724,-1790592250,-1022364183,7697664,2138864767,2138864767,1016414880,1007973130,1007711232,1007449090,1007186951,1006924808,-2145094391,1946289788,108888094,-2145815550,1946159228,142442514,-2146601984,1947142268,142442502,-1023314929,-1962931527,-1996126460,46629636,-503134589,351241202,-1609240957,272405826,205261172,914359666,-1023306430,747979424,-958976502,-972880315,-2013264059,-1070397115,-1995815543,-152499131,2004186358,1953919858,2105311093,512401278,-13462206,-472783919,1966195585,-6422096,-350849821,-351111918,-351373554,-351636982,-351898874,-1342015998,-963012608,-1996486843,1435044421,-156243700,-1977213756,1946762247,1946827793,1946893328,1946369042,1946696724,-1326857443,19392515,-402541335,-672595598,-1933341951,639485122,1946369920,-1960393941,-1960442809,-1910110625,651725575,1963147136,-993883101,1065362973,639202568,637816715,637951883,-645199986,1962937064,-1994603513,38112285,1065363139]},{"sector":7,"length":512,"data":[991655171,-1945733672,1959410625,1334519313,1602954760,638051082,-645199986,-2134645269,1963132541,235923513,-1928772214,2078804573,207457550,-1206998040,1592262832,49002510,-1928439576,-1712846243,28358670,-401715992,1170607615,1300234502,1170604296,-2134704119,1946355325,231729217,425344,-2135290507,215738424,300466226,-2145850610,1946224253,-1968132084,317196901,139296782,-1073170431,-401733400,1170607547,1170604806,-1070369527,-1995815543,-389870523,11537805,-1207313944,1173749761,158598151,122025536,1073902600,172877888,411078,302597574,-1341504119,168093696,-1005749527,1065362973,-2142735092,1963067005,173903112,-349095704,108888115,-166365952,1963460421,122025495,-1173785596,1173749983,192152071,1005063600,-6821881,-402596934,31984929,221636620,84297158,34031046,-1007355927,-2144985660,913640511,33979776,1569524597,820504586,-349090072,-401756130,-286783742,-402608116,-860354246,230025217,-972227864,-973011387,-972093371,-385611963,-993790781,1065362973,-400526069,11537605,-1207530008,-1930919504,215083021,84297158,34031046,252200390,-1007382551,-2144985660,745867839,33979776,1569523829,820635658,-2081941525,210495488,-394152776,-1662513833,105235980,138790401,122013199,-194647804,108888259,-1923058430,1200294493,2147427592,20784756,1026519612,712459262,134154231,-2126699403,1025012287,326582398,98179,2139295093,125108227,79233200]},{"sector":8,"length":512,"data":[-1341330688,571652,45090283,-2013263175,-397342907,-396873536,1170607498,1170604038,1435075593,207456522,-1022474871,84311424,-1863835020,201320703,-167716422,1946289989,170440194,-773322923,201713674,84297158,34031046,-2134887485,1963067005,173902633,855642297,1125583826,200991299,-1206422062,-957874144,10532872,-401830168,1170607059,-1195176184,2105540640,477430278,2144336,-401973877,1170607374,1170604038,1435075593,207456522,1477330313,425344,499394165,38222630,333979252,2144260,-402096920,499387253,-1207393560,1021837400,193062924,252200390,16824515,33979776,1569398389,839354890,-397393692,1170607290,1170604038,1435075593,207456522,1477330313,16824515,84311424,-397403276,-1075249205,719869955,186902536,-402641736,887622639,138790411,2105590543,779354118,33979776,1569394549,839354890,-388877340,-135661244,184019186,-402169928,149424981,105235979,155567616,172345128,1170604032,-672595449,639485170,1963868032,108888121,-1206422270,1088946178,-1979600853,126421605,-972399223,-385874107,-488050031,16824325,-402149144,1220020905,192276480,-972375320,-384890811,-389811595,561315876,52750416,-402587464,-2031614067,-1209509878,5027847,-401912088,1170606739,1323896584,499434482,20938790,-1960435595,-1960442809,-1910110625,651725575,1963868032,639484941,1023559563,41353471,-154943429,1080959494,-2134703755,1962935933,105236217]}]],[[{"sector":1,"length":512,"data":[639484930,205260682,-1612183182,121997824,1006908905,-385649400,188481682,-1947726731,173903104,-382838808,171766260,2078805877,121997824,-401973875,-504811917,1963539697,173917205,839354918,-930397980,-399875352,1569259619,121422602,-219664267,-1194292474,1290272800,509040170,1975846686,-1963226358,854405838,-1968507968,-1314589750,717892128,531297230,1569283679,20759306,904403061,-1961658881,417874120,1125091370,1258297064,-385196663,-1984368275,-1809848064,-1960436284,1569522255,509040138,1975846686,-201618678,1583292324,639485123,-13492342,-13704239,-210058329,-210046086,-210050182,528151418,528194939,-142886789,528226427,528162683,-998563973,35698717,274172710,209683238,-2028636928,26536183,-1880557689,-1004506111,1095709,39291686,-142126512,-402545944,-142145270,105179224,165537880,-2146884887,1963067004,172264278,1963738123,122025518,-400002044,834144497,156231872,-1461190480,122025478,-2096270328,-1342043579,110749696,34237827,17321344,-402069783,1149962441,112388106,134694390,1166216820,1149960714,111339532,34237827,-2029467927,145221879,-402111350,-142146526,-2029478680,-390057225,-142146484,-402045814,-1528232658,-386431224,216595665,141879297,499447687,-1207588120,1156055132,143255817,33979520,1552619893,4161546,1592267125,13023752,839348456,145156288,-2029491479,-51779337,-402599192,-142145478,-1960436284,-397934009,817366382]},{"sector":2,"length":512,"data":[151382016,-2029499671,-64952073,-2029511192,416922359,34031094,951452276,-402172662,-1830287624,136964353,33979520,115875701,172264200,-2096762904,-1962800571,-437777340,172327685,239373058,-351937560,-386431160,11536357,-2029933080,142442743,-1207208960,921195346,-397365240,-890763232,142442503,-1341426688,135456856,-396731464,11536413,-2096793880,-1342043579,91088899,34227587,1692926640,174949125,129362180,-1960436284,20775495,1024160768,192151554,1946158141,1170653963,-960299001,-1023146171,201803206,583875,65599367,-1007188224,425344,1659375733,780295,1471415820,-385368856,-154990737,1947208005,948812296,-351903512,155579938,-166431712,1963002181,175997702,-1206881280,-1830238335,-1341789433,125495487,-1979278104,414189925,1963050230,-166678512,158663364,-990510928,-1342016248,2105590536,779420166,-1977213756,1569521991,-1779937270,180049963,1946303488,1007203080,-1291684608,-1957999868,-397211071,190514194,-369986085,2105542383,460652550,-1006156406,1194993180,638416129,-402501749,-68680003,114419971,-386225688,482608817,38243110,166259890,-477513723,-402193176,1018167331,-1207505944,482615129,21432870,41157288,-353878092,256006,-1207526679,-555139635,387078,-974533200,-569968890,1946189933,512630284,243494504,520159272,7649475,-393155351,65537621,107604224,425344,112789109,59042048,199753904,1397929984,-1341743896]},{"sector":3,"length":512,"data":[109504848,17202560,-930473868,-402587464,62390293,1042438,-402193736,1170604041,1170604294,180555528,-1979550519,56289476,425344,1166214517,-1950154230,1166609477,239438602,-1022605943,-1979232886,108888296,-1960282878,1435175493,80082444,-157808523,41157317,-973675470,-1727499000,1946338806,-1982713086,1435044421,860744460,-153996352,259261637,1963246070,-157765622,57934529,-152817480,326371525,1963508214,139296782,-157699580,57934529,-1949158982,1960446936,1347571991,-1341816600,30205952,845912,583768,1493535464,-1022923384,175423499,57992202,-385497879,-2134702672,1963067004,89385025,134694390,2088965237,242549002,818307,-21886859,-385594392,1149961555,-1259843062,1173772803,326371335,34227587,-1978907509,281706710,-2096914712,-385742227,-2024667857,84928759,-402111350,-142147446,-2029714200,-390057225,-142147404,-1966175654,-422573708,-422517040,-102175094,122025475,-2096008184,-1962800571,281706961,65464336,34237827,-402330903,65537229,81914112,425344,1173758581,578028551,134694390,1166216820,-4586998,63170608,34237827,-399441990,468386745,17202560,11535732,-167713304,1946683205,-397234171,1353712860,-972761112,-1023146427,134694390,27791989,78125172,44570996,145234548,-1595204748,108266920,208931496,11572971,-1342133783,10807554,-1612119632,-385634304,2105540762,1316291590,17188294,134694390,1488202613]},{"sector":4,"length":512,"data":[-2080374343,-1273531199,33864026,242532740,45701556,1958839297,-1185172475,1292370696,158173192,1642710154,375044,1488503172,-1190759334,1505231114,139266139,-385258104,-1329396647,714753,45152135,-2030028312,1149551607,-401574648,11535325,-2030032408,64219383,1355020167,1342719242,-957810809,1139300355,-386430977,11535293,-2030040600,1776834807,-1007187969,1173801098,913573895,425344,-994960267,-523181872,-259333936,-1342001944,-2132702580,-864025916,65792192,-706211605,178176,-1979696920,-402520895,95420616,-1041758741,-771641344,105236192,138741761,-1022800504,485017738,122025473,-2096139256,-1979577787,-402520895,1837302027,-2134703606,1962935933,172294404,108888259,292097,-1950152379,1166477893,172329228,-1579643965,-1020563986,1843267319,141824000,1946286979,-121597,-1955729757,191753246,990147803,-1560054845,-389845524,-1917124653,27453502,-396945736,1170604881,650315014,637683594,637816715,637951883,-645199986,73894438,-321780815,-1840957,11587723,-1342150680,51571024,-787854079,174949353,822065666,-503199512,2105590772,544538630,678756412,805914102,1166680693,37742601,1173791152,41223175,-571957072,33548546,17202560,1161433973,-1023314679,-523203918,-523181872,2112483466,122025473,201880836,174426800,-1962752791,-771028395,-1207170444,-1962760216,45345218,-536166220,-523181872,-536158000,-1561775696,1962949634,155579932]},{"sector":5,"length":512,"data":[-1978239696,-689436347,-157044735,1963198277,-391991294,-1763114380,-796347903,-790572832,-370111776,-930414304,-402602310,-1047854824,67585526,1659437940,38725890,33979776,-1031136395,67585526,84675444,-1962787864,1189677637,-1979446270,1055459941,46825474,-504760782,108888064,-1962314494,-897578427,-1876431934,-1241265536,13887760,33979776,-897576843,-1327330622,34596993,-385202805,-897580535,-384780797,-930414411,1975597976,-1327330804,32761987,-571883126,-1327330815,31975553,-487997045,-1966568703,-159337742,1946421061,-1736199663,175425595,2129166770,-373191936,1994916293,-373192192,-397409876,-2141652261,-829774614,-2146967168,158598905,91602955,-1561738613,-1731687679,225820987,-1958687104,26470594,2112471434,-2133950463,-2031566197,-373191935,1173750145,141824265,-2131059992,1055630570,-1325755672,22734908,1173782704,175440393,1173749936,41224201,-802013008,1173758187,57934855,-2147366272,1963001469,158665227,-1950298496,20703682,-402045558,1166671993,1964025865,114196505,913580200,-1476135296,-2094238459,1962936957,-373126385,-830471915,1948297222,100040707,-1744157301,1963607355,1087275022,-85409141,172329728,-2147425303,-1031044914,-167711512,1963264325,172329734,1359012073,-1961998965,1435176029,1342224650,67716598,12127349,155580112,-1190955712,1659408384,-1463592703,-1273793263,1963108406,-1473858552,-1274907384,-372995538,-2084372332,141835839,50464643]},{"sector":6,"length":512,"data":[-1022916321,283660371,803756032,4777984,34064219,38242560,-787510333,-2096335639,126550723,1370195,-1007361445,-2030040856,256247,868480903,71665600,276086795,-1202694394,-605552637,-1442795384,123710296,321731,-1023130231,728625825,1953418758,-1202256365,-1142423551,-1442664312,109561739,123694578,1958742979,1347880464,-402652232,313559202,1605064874,1460060935,178256,-1333227032,-1437029884,113444703,62410839,-2004817920,1487537840,-1022926933,1858999947,1460017031,571472,-1333237272,-1437029880,1605091979,395035399,58053131,516097929,1859133070,1468783243,1976699650,38242807,126599967,-1073019095,113443189,62410839,-2010060800,1487539376,-1960388469,-1993997753,-1073020289,123728501,-2147440189,-1259862412,2147427832,-392515504,-1587806352,12152376,114438960,854086487,-1194849536,-202899449,-1441746809,1487651211,-1413313621,113444703,384324439,-1194849536,-672661497,-1441877881,1487651211,-1413313621,-1899821217,862883846,-337955841,87762444,-1977206924,2039284317,-1908524285,1374582126,-1907351978,915089088,-964493304,76162563,-1958739788,132552,-395407685,1465419665,-203911509,1579114404,-1010332839,-1000974586,-1955680746,728652862,1926245335,-1946973426,-1494001720,1192391775,-1947043510,-1141666872,1525182126,-1527556217,1852350815,1853234827,371971979,1600024156,1460060935,-1949791402,1857469427,-209241880,123690660,112835,1857422981,1472397685]},{"sector":7,"length":512,"data":[-1144485114,518549174,-205507705,-1017182294,-397191418,-938737851,-1157625672,115896006,-1413379193,-1031034024,1857462699,1851655723,-1022926933,1848116983,242483456,-402652232,313558754,1845141930,28879680,-2032867328,-391506768,-1612185592,-370182912,857604297,-1949158455,-1955680706,-1905397194,-1402023906,-13444982,1772617518,-2054783098,-1937340282,-1400466298,-1148799866,-779696506,-1383672186,-336557226,-672440614,-739555514,-2096970109,-873790777,-1996260215,-695532204,113673132,1006880643,-2085063445,-1276443961,-2096642429,-1410661689,-964477815,-2086343934,-947714362,146899714,-964453909,80184070,-351747709,46564238,-1994421781,-1986704882,731204630,-1989235138,-1013626818,-1949748450,-1902818250,-345059298,22842138,1143670667,8469763,-2109928833,-972718849,1091239748,184906891,534935030,1438894347,-326898549,116858380,16805416,-90093196,-133813395,98619757,-1631911924,-2048923538,-143785823,7219206,855799042,512469952,1200319970,-1365136626,-196703890,1851524651,1845010859,-1409923447,728627873,1080948742,-125924949,-1577433460,-1363438264,-2053117842,1252087558,1857993621,-1987734296,1183644798,-1962450946,-1955701738,-1905397194,-1402023906,-13444982,-1582825682,-1115179129,-1014513529,-477641081,-142085497,797446791,-1383571064,-336557226,-672440614,-1512772700,1017958891,872772843,-1425820671,-1381307984,126605451,36554539,-964449536,-1531647228,-1948742739,1221012231,80118698]},{"sector":8,"length":512,"data":[-964450837,-1952388350,-1950209081,-993817393,-1515848578,2122951589,-1896248324,-1413467197,-947157525,-812924373,2126824332,-1515870724,-58816085,-1014040181,-1414807501,-1375770391,1311492235,-1993902346,-947128762,-1980479957,1460073598,1039695556,124911744,-2146646906,-1429961046,-213270478,-125924950,921241439,116858879,16805416,1183516276,1855890424,-1017256565,-1904424216,644769798,276223,-1557741517,-2085093372,-2049644414,1852315275,728614561,1025471682,57806848,1343225784,-754667182,868781024,102665152,494987374,-805087142,-1008149781,1745260165,110044782,-1494745084,1105773436,42461186,-1593813016,44264902,10283118,-1593491480,-1064407594,-402285848,-1591343700,-1073020924,-694030219,203328365,281248622,690405518,637544990,184550561,703690176,695075358,-1586625506,-660378154,255754349,57999421,-1585227032,-1365021242,-1070349459,-1586642269,-1064407594,238979878,378217984,-1070399472,3056422,-1993995541,1157834245,147292930,-227149253,3318054,2794278,1876262,2925350,-1325396219,32035588,644727302,184550561,-1011124800,-1107295557,283639824,1228288,-1996485912,-2089958370,678949115,1842782659,-1960394610,1418405436,638380802,52829577,275907165,990431107,653293050,184550561,-1008896576,-385863240,1307084033,205422593,57999421,-402551576,-1070398934,1842742926,3056422,1849165454,3056422,862836385,650153673,3817091,1360294912,1841706751]}]],[[{"sector":1,"length":512,"data":[-402652737,1172832631,-972648702,641816941,184550561,198866368,869365193,-1790008384,-946511709,479549958,50587648,-1550496095,-1511494142,66250755,-2096885528,9789502,-2034756236,-2077693822,-1941884744,309722,1845894795,857467368,-1788959808,-1788737849,1688403972,1443284885,-1593828203,-1064407594,1841706751,82378547,748758529,104539648,74645550,3055910,-1987954456,-392866786,401081339,1048782341,1962934318,90105861,-337113877,98494470,-402196504,-806877630,65988614,-402322968,110036313,-1591317050,-1073020924,-303519627,1614709510,57933973,-1903969816,644732422,-1560268127,1048604102,1946172686,-1789877999,-1789782389,1846025867,-394938136,-617405034,1846025863,-2139783448,4001086,484967284,255754272,57999421,-1585350935,-1365021242,-694041747,650153581,1318539,-1591857685,-661754410,538251,-1929132413,210371199,-213843787,-1592888154,-1073020924,-1205869451,2129199240,-1993990269,652184327,1449531,-1591292811,-1073020924,-1581008011,-1064407594,283705139,113714688,48,303398,-361381877,378218179,-771030992,-1477942924,651725684,83892897,-266010609,198325247,638612735,1838731,637553640,1969803,1392526312,1534393576,-2105612282,-1938503960,-16054333,-1993992075,637547038,-402645855,-1993998288,637547550,-402645343,-1993998300,637548062,-402644831,-1993998312,-1962919906,-378674626,-1048349406,-253656305,-763117309,252035840,-754667264]},{"sector":2,"length":512,"data":[-1009253400,-1905404255,650130368,637549219,637549731,1207975587,238979878,378217984,82509844,113738667,-126485957,303398,-747257845,1852311182,205425446,1032529408,238945062,100607488,973537062,109888256,-1591306906,-1960443850,637537854,1054347,637543656,3933697,3711270,272534310,378217984,250085394,100738560,-2094661570,14910,-1547449227,-1070361240,552334899,4031270,-14281867,251602437,1448214586,283641431,1583286016,1963140698,147292932,-596248005,1435182787,-338296060,1745260141,210445973,41716518,-1788475762,-478029429,52826111,637539358,-1040775282,24387584,12711744,-148933504,1947205825,12711738,638350656,1195523,17155878,640215808,1064451,-1040772117,141901824,205390630,1032529408,238945062,1032005120,638088703,-14285313,-2097137146,-231012154,-1581019275,-1064407594,647319201,855648931,1049306816,-1960443890,-352317418,1032005136,638022911,52823433,-947715515,1979333384,512435948,-2094661572,11838,-1557777548,251985966,-754667264,130253800,-338492495,104579843,58103136,647323811,637537953,788011,-338569077,-1023153199,855646213,748889819,984320,-388823887,-1790048767,1042154278,-773598976,1511916003,-2095484267,-258647490,-1591340425,-1073020924,1709769588,-1790008833,-1016216925,-385848392,45842673,1097216,-1996483352,-1097507810,182976530,-1004631808,-251952275,-1581044105,-1064407594,641501990]},{"sector":3,"length":512,"data":[-352168821,1032005138,638153983,52829577,275907165,990431107,652899834,184550561,-1009289792,-385863240,110002337,-1960415688,637538366,312673675,1841602926,-1325396219,65590020,-1553071610,-1581027836,1927845210,1478396286,-1789091435,-1988204312,-1955720162,-1083300810,-118984922,-2105362411,-395368774,649729662,1906567279,-1586624349,252024154,-1039104,512479795,518614536,916530802,512435712,-1960443854,637537854,1054347,-1591340053,-1960443848,637547550,1064587,303467302,1711705088,-1788304491,-1788076407,-164373709,-1960433685,-49915,1856181364,1780386197,1448235925,367527511,1583286016,52845402,52822621,-947714955,1979333384,643154901,50621835,11004398,-1788344690,647081254,-1389980755,-1834146158,-1788475762,-410912373,52826111,637539390,-1040775794,578060288,1073791479,52825717,637538846,512427779,1223388674,270402342,117646848,1845632651,-1040762133,661995520,775848742,326369280,805356023,-1014297228,-338564143,537248515,638905088,794115,38208294,639601446,925187,637993766,2760331,-1788199228,-1040713213,242552832,536920567,369299317,-1037331090,-139769784,1948254401,1001100034,-385649419,-1017249966,3318054,-1789649269,238979878,378217984,317390864,3449126,1846812299,272534310,378217984,-164429806,-2094652437,376766269,102651734,38636326,-1908569306,-389837096,520557737,52846175,-947715467,1979333384,-1591295015]},{"sector":4,"length":512,"data":[-1960443850,637544990,933515,269912870,638774016,-1962919775,644743710,1064587,303467302,-1788304640,418117171,-12745946,1448217460,283641431,1583286016,1963140698,147292932,-462030277,227223235,72715046,1049351683,636196182,-1788344690,325414,639071264,50742411,83306177,41160704,109985856,-1951689384,-964449341,1978809096,1446939095,-1591295083,1755512886,870003605,1049306870,-1960443890,-352317418,1032005144,1376482559,-402237610,1594294288,52845150,-947714955,1979333384,-1960393756,1435182605,-1948908796,-1910313989,647325702,536872183,-1960438668,-1056766396,325414,1073902608,1409715776,-964449387,1978809096,-1008759846,1580662558,1681325973,1647771541,109971093,857707860,1070446847,-1413467221,-1420252328,-1426051423,-788513631,245476320,201730816,-773271296,-1420252184,855640249,-1951665216,-1207956426,-1381285939,-2085758837,225771515,925187,-75292789,50492671,-1413248040,1001046066,1962937910,520560346,3055910,-1788738047,-1788602749,1017193984,31510784,-2087362042,9790486,2793766,-1013621085,-1789651317,739150630,136219392,345500014,378257459,-1960405676,-1962922482,-378665442,-1070394210,-1789651317,1007586086,-1948135168,-378665442,1053037706,-617386478,-1591768794,-1993960098,-1788829435,38111526,244040332,512464220,1323855368,338880532,-1986703197,-1902816746,647321606,1735,1520523853,984469,-388823887,566054,1845626371]},{"sector":5,"length":512,"data":[-1789124981,-1324366973,65786628,634948547,78708767,-1557733165,-1014824958,-754601697,512304875,1520500740,1846677,-388896559,434982,93674657,78708751,100919507,512454146,-1014796758,-754667249,69075947,1612579694,-1579668587,-1023185364,-4717709,178464511,1848549632,57918211,654311352,-1593832285,-1557762556,715194382,279127662,113714688,1835032,302434086,-1912602624,644769798,802443,38112038,641567526,933379,-1912274138,647321606,637539491,1443527,-953810944,6662,-1950184448,-1953146354,-378664930,109974365,-13406568,1855340091,-1977209228,130515717,443876668,1859567191,-15629336,-395458506,1609039901,-939094272,109993837,-1977192808,1088696837,-856950781,1859566275,-1199850263,-692452096,299690094,-395389254,1956867350,-388461675,-771026196,-264428171,-1558153217,-1259825808,1914603897,-1950338155,1880001491,1948158869,1836902549,-1787552117,-1200803095,-1242890195,2023931955,-1787190635,-1567262046,2124584315,-1786797419,-946500446,-1500154362,1852350825,1358031080,-1556086771,223909244,-2136768512,-1896467563,999649798,1939173430,-1465113050,740324609,1008497280,-1978108126,654258904,1220936621,781550755,-1817602049,-1786497397,-1194005690,1290338351,-493624577,-493624685,-845946221,-493548141,-493580653,-476847469,-493598573,-493452141,848691859,2067693718,57933973,-2137891352,9797438,-1075313804,-20752238,647329798,1963211948,2015791696]},{"sector":6,"length":512,"data":[1015096981,209014595,41713958,74794308,-1787156856,1128038694,638350675,1157790849,-2012973753,647330342,1094990977,-2128212875,1096024700,646448245,-2128177794,1968391228,2088838668,1967604994,2116454404,65286805,-2076820496,-1013157227,-1787230466,-1951586746,-1968429360,982874406,1972730374,2066122770,-1144878187,-1360499026,1913032312,974187413,1972731398,2133231626,1477837205,1175024238,-2076820666,-1010732395,-385863240,-1406730649,1702215690,104508454,1567987067,637718760,1347815085,1946344424,94431265,1362907509,-1960424075,2106271285,93201922,54296614,-1108853387,89712642,2145911787,1009808645,640447827,1946682870,2106271270,1879477761,1853268334,1074104102,643306869,1577207177,909854215,-1535994492,3389635,-1191315735,1049296947,110007686,-1595304590,39839865,1843942918,-399281150,544539767,477450556,641043238,637697419,-2144991858,208995132,-402501656,74777834,1534350140,-1962920776,-1902803394,-376081914,-1981253277,-396528896,-394984385,1064588092,-529182148,268826150,-1960440460,-1960443043,-1910111875,653126407,52692362,1015021753,-1190693888,20758528,1460058741,-1024933748,185032687,1569400513,1435182595,638970625,1963066870,-1940453729,-274208576,-1960442017,-768409251,-1787412853,1873215361,92871284,-1996333687,109249621,1577489782,909854215,57906564,-1006682391,-385862216,1048640799,1963356022,1093975578,2009007902,-1176597649,-1494024186,2005732212]},{"sector":7,"length":512,"data":[2097053960,-102009535,-796152381,-1946157128,113689560,637572492,2064005804,639792533,-1786600531,1851539083,244054019,-836004476,109970974,-216043856,520560292,-1785985338,113689345,637572492,2064005804,638875029,-1786600531,1851539083,132708355,-2076820736,-1007193451,1448127782,-1072976602,-397407628,1213792242,317454453,-930436058,102690098,1857029774,514126623,-695525625,1967675486,-1007514667,-1785971072,645100544,618695340,1020408828,-1172999036,-1002696704,12193396,1959279648,805353991,1383451708,-14308314,-2113535229,653822869,-154629460,1047890369,1967178230,179054087,1174501824,-466441178,108642314,-527794396,-661935066,-1040793549,637695236,52320173,-1905370050,57585694,-1839259899,989859304,1922401334,951632782,-68032256,1963114998,2065578528,185234837,-1953137658,-345082338,2132687401,189429141,-1953136634,-345078242,-1948004071,65262027,-1601762343,-1533607063,-1566602391,-49815,1398217332,571472,-395395397,-1420266039,-1031034024,-1901373269,-1013616122,1547567902,-1340174738,521505134,3717315,-1980004631,647333430,-2009691732,65286805,-1976137232,106414997,-919348429,-1786112373,-1786233205,-1787689330,494205499,1191545382,359940156,108159292,41384508,-2008866772,-26249593,-339213624,-2000092449,-2005961186,-1989262322,999655486,-1017182214,-523122549,-402652667,-1047825091,-1411329720,-1410088909,7071939,-385874968,-397409432,1968702050,309254]},{"sector":8,"length":512,"data":[1349957097,1870007946,88146101,-1056767997,-394982168,512360481,589721156,39357724,638028582,-544522359,-1430244437,-210798914,-212379228,-1899798614,-1955698682,191757366,-1961986570,191757878,638285302,669323,1955276483,-1960393980,-2134702732,24001086,-1195179659,1659437058,1870052982,-2010805722,843466532,92939995,108159292,41384508,76029996,-922859961,-855713790,-620566667,1849958024,977174723,997523822,1847723766,1446737216,16377943,1497116277,-1377298315,-401494014,-1561853307,93202175,171871014,28436480,983700085,1243515246,1178503534,1208388718,-1017225362,-385875016,1465284077,1946273000,12183586,-694084236,650153581,2506379,1946255080,77669902,1975520000,243948,-394935063,1497104495,-2098720139,642872576,2506379,1963023080,5892324,594891068,641043238,637697419,-2144991858,812974908,1962958056,16050219,501793653,1968389122,1007348511,639202643,1964115446,4188179,-1960440203,417858941,-392006399,-471138281,-1953132383,-1989287394,32434183,-1567256672,1583312442,-1785748797,1850351241,1850097289,1850214028,1851137675,-1785717111,-2147365911,292436542,-1041758603,-21239551,-264860733,-1005589651,-2081945484,-1956088832,-1955705802,914951284,-167023028,110029173,915107432,518745600,56396326,1888288951,1139299844,1031036416,1852311182,268760614,-1960441739,-167050380,-1960386955,637536310,-1224516470,74484992,637832742,671371]}]],[[{"sector":1,"length":512,"data":[7465046,-1911655330,644769798,184972427,1323070966,-1007275069,92048166,5630038,638088286,1963984118,-1007285501,57969446,1850619529,1850738316,75270950,3532886,639136862,1963146368,1552623122,1960512266,1955276297,126756360,-1018437909,1852311182,1845245579,-931793397,1845376651,-1468664309,171871014,1142852096,488842862,39422758,477420299,-1972406600,-1234209258,2139963904,-1947170045,1957098442,529212937,-294266101,-1977171125,-1144847801,-694063242,-1239971219,-1064418816,138316582,63406848,-208942453,175417075,303398,-428490741,1504756552,136219430,-1976646912,1139618319,840403502,983581686,121253486,-637336204,-1018562590,1013856928,1007121412,839087107,1592509376,973486736,-1023314834,26236139,505630466,606414628,842414386,792282167,341067593,307630933,240651607,442107737,257627738,291311708,912201566,982862712,1970158086,-1877218557,-1181025349,-1959919592,1958885911,-498908410,-1979336971,-370920762,1397781357,1465274961,570881542,125124718,1843543691,-395993624,914948771,76246614,578076682,645017660,360069436,477249852,141974076,309485884,846690876,-352293400,11528218,11539947,439095787,556534316,-13444982,-13706493,-1566850921,1049325114,898199010,1594343475,1532582494,95994712,1929111808,-1682269254,-1669751659,-1682269254,-1658479467,-1657430735,-1656906439,-1656382143,-1654809256,-1653760663,-1652187776,-1651401798,-1682268779]},{"sector":2,"length":512,"data":[-1650614887,-1682269192,862942911,1006930633,1008955952,1007580729,604664927,1916878047,2002402325,-109033967,1206023231,92848638,-402470658,243849195,-318607498,1849962120,245963967,753423879,41180926,-1950154320,126567390,74592316,-176801476,1007146984,1007580229,-2145225426,494153468,1948908672,1874246424,1913355496,10401798,-1996444951,-1200728522,1122566150,175761522,-1230828174,-1206482577,15120495,-1996452119,-1200728522,652804103,8435826,-1995962648,1131394590,76204339,578103100,168069702,1007776960,1174893863,658244746,126412917,-387235517,1851143817,-385873736,1581019633,-1975118987,122873860,-395001846,-2009058234,-348044537,1965243585,1364411924,1493830376,-1980992677,-1200728522,-1024917497,-434206351,-1239512211,-1206941585,1967718534,21465616,-1550195662,378105782,381185976,1843045121,-1553057631,45116892,-2146586429,58011388,1178996656,1175367875,1174778051,1174646979,1175630019,1174712515,-2145931069,158609148,-58715728,-1341950679,-1018804720,1181629600,-2146193213,58015228,1178998448,1175761091,-2146914109,158613244,-58717520,-1341950659,-1018804724,1181630112,-2146848573,58015228,1178995632,1176023235,1175433411,1175498947,1175826627,977174723,393549166,1049319254,898330082,-18749362,-1955710302,-1989287362,-1017225419,-402648391,58001840,-1107289927,1386299772,66620270,-2017444415,1386423159,-217637266,-902394972,68479085,1946172544,59172879]},{"sector":3,"length":512,"data":[1859534464,-401837056,-370474467,8370371,-1200572183,-1293352830,-499217552,-1405777043,510967818,-143253444,570881614,712327278,2067530891,675087988,1176466730,1828934,116841963,1967156770,74246160,1049350517,898199010,-351960600,-1564258624,1015059854,-385649628,-398065107,1014104797,1485277998,1958742946,634424110,1015054335,151418155,-345102330,758939659,-789112459,1848116769,-2147425663,1848120867,-2142892427,-965465028,771879145,-1568626689,-385871432,-1108840419,24373250,-1962812183,-2089950658,37053,-396947596,-51904051,74735361,9473535,8435907,-1955597079,-2089950658,37053,-1912666252,-1427570544,8435713,-395322135,-1628962110,-499217663,-1992980115,-1200728522,-692453375,99149934,-692452432,95938670,50378832,-395389254,-1168636458,937979606,77260804,1843543691,-389859957,1021837888,1592283137,1049319425,-2046857758,-1073020784,-396948619,1952383359,-1869742332,501793536,18475010,-638856969,-402476568,544342505,1485277998,1958742946,2147427607,1848120971,1948990592,758939655,-755562891,-1309949405,-385931799,79168046,1859566080,-1341824536,1859566085,87025750,16247134,1912759272,1976699700,67124528,-264426638,-1557760001,837316138,1025405442,427270144,-395432797,292684324,1848378939,4000626,-1559857248,-1091998162,-19863296,1849704064,-165184256,40772102,-2048383372,-692365823,-88414098,-148496267,33564678,639464448,3016391]},{"sector":4,"length":512,"data":[-379650049,297271437,1858070784,-385839688,62418617,1857284352,-385838920,1307078317,2942977,-393187861,-1073020861,-1101653131,210398934,-1589514958,-125079982,-1069694717,-1559791737,-1527550382,2142815070,1853614336,184556264,1444246720,850196363,-1947204636,728650254,-1985678386,1584288318,1049319107,119434836,1044103219,359951954,-315486838,-1101573823,-1493995818,74733919,-420742909,-2134679992,2073398846,179048821,1006990528,-1007192707,1963069928,840231921,-1394570524,108314634,1965697341,-68631564,-1192463103,115933194,852636270,168070134,1007973568,169702439,1007252982,1025143931,343157288,1390865222,1510068712,-2118591115,1843128576,-320088330,-1901967802,607944853,1380331893,1509967080,-1014355598,1006698681,1955631114,33536288,-1869607876,28907380,-1877853184,1007580304,1955631124,-1877591032,855798928,-397258295,1499135837,74771722,74764810,-2081697534,-1983657718,-395422154,314507320,856100514,227157723,283372850,-692169151,1587999598,-117241996,-370457789,-1679244295,1446414592,977006,1859534464,-1023314944,-385875272,-617386683,1597768842,-551286156,460472636,393697852,-2021113018,-75272490,-1978895297,1915763716,1983462406,-1998853141,-1016146402,-1996466712,862869046,1006930651,1008563744,1008301098,1008039037,1007055457,738359162,-695760864,-2092743058,-579514373,1859553222,434684672,85357056,-763166705,-1190235648,-355401724,-85796655,24433163]},{"sector":5,"length":512,"data":[132695033,1446414592,83487086,-1073085302,540807028,742131830,993789044,-347733131,1090634731,1140933121,1178944518,21319241,1279591493,1157973331,1179206734,1224820225,1145456901,1225147973,1162104390,1179190598,22302799,21823820,21954894,89325906,1162104405,5636422,4231168,33024,33792,2097152,1,0,33280,-2013233024,262146,1048576,-1634165096,-1633771880,-1633182056,-1634165049,-1625579809,-1622630594,-1618174093,-1614242152,-1634165096,-1634164722,1843535499,-1727248501,285492993,-2135357865,-1949158656,-1922176970,119410815,1844059787,745861947,540820140,-492170638,1189629939,1049186048,196636246,1809312000,-529265348,863242812,-663437302,-562750916,669731406,-1497869743,-1176859543,-936677978,1843535499,-401973365,1499094434,-1956010306,-1982331938,191752734,850228672,512469696,1468624354,1959922444,38272781,1842087555,-837385471,914948205,2005757416,1446414608,-1009644690,1846165120,-1957464832,-2123505090,1955053823,-487620273,239438080,-1913484457,-402615619,-396427033,1166630066,-1836741366,138774784,-1995422323,1851171589,1166655539,71665922,-1996077687,1166543941,-1870296816,1843962624,-1989285213,-378674626,1991794004,1796466944,-385873480,1049324301,1569418722,1556867082,-1911661173,644782086,637749129,-1023060087,1846165120,-1957989120,997057086,1953358910,-1866628287,1081409536,-1956834328,-2065167779,-490241700,-499218176]},{"sector":6,"length":512,"data":[-16809619,-1960676204,1851171589,-1962654325,1157826133,13796108,-401973877,-1070375795,-1553078109,-571904534,179880796,1788602624,-385842760,1631349397,2050754162,539755127,256195,-2030040600,520494839,119456519,-930436436,-1527517902,-1316669,-352320280,-1408819482,1975519914,-622279686,321791,119461355,852003500,849671149,-1396462912,1193642534,-868562806,-863370634,82046258,41264883,-775699398,1940255721,-37510143,-117182205,-372158642,1319371123,-56233137,-434205757,1036190573,125203392,-1061436629,-1547500689,1354984934,179106443,-1946454592,-1949684786,460225,-395405637,1465411657,-1413467222,-1974883413,-225727807,-1017600781,-2115204267,1442882284,1451820631,516983806,1959922183,-25785538,179100467,1007449280,1022719068,-1946979026,200272862,-167283493,527728834,-24382581,-1439780785,-2143185730,-889319454,179046260,-335841856,178957557,-1963297344,266567902,-768408203,-1224691479,-1948004096,-2143180105,-294387652,1971373814,-27882671,593175272,-562741054,1946172544,1589546457,852636671,-1394570524,141869066,91503420,-236240214,989626446,-58717836,-1341885348,1447209564,-1392609653,1975519914,-1923981574,-385917290,-1037870369,-1133225408,-1098041109,-768344226,-527768526,1958742700,-347952636,989626613,-58717836,-1341885348,-1958565284,-25785377,-1073042772,977013876,1547437172,-74714507,-1232212245,2123104094,5224958,1958742700,-119363069,-1951743950]},{"sector":7,"length":512,"data":[1583286210,-1017256565,567099828,-919354372,45666867,-64893630,-919383982,12112435,-64893630,1371757144,-1030879657,-638060149,856678787,128644032,-1048356513,-253656305,-1910631965,-1261401126,-64893632,990212639,-1023314495,-385871688,-1910609807,-1150440418,2139095045,91553560,567099060,-75283460,535786772,-1957210429,-134575120,-1957539615,-1947994170,-137917480,1523092449,64160600,-1017225263,-1957341354,1961561065,-1663366302,-772339079,-1048325129,13861633,2040320523,-137300214,67026,-1962880381,872123377,-1109707831,-774832095,-835988527,74702619,-552350205,-774843915,-361411118,-149980771,-2083260463,-746389055,91856128,2040335851,-137300214,67026,1560334979,-1195155873,-957808578,607944807,-347732875,-1070362561,-561262029,-315487094,-2143622784,645073601,-268385545,-783211403,1389548000,-773795504,-773795374,-1056745006,1506874201,-763117309,1174894592,-214184213,-1007091337,-768360397,210427531,1919023488,552173571,-2143622784,192023233,-2145916544,343082689,-1257586304,-773795580,-32673070,183924173,-756332863,24638267,-472136711,1406874451,1071242379,1258296507,-2124677771,-2129707037,1526939643,508757699,1011949139,1007645696,1007842305,-1709870078,480314435,614077419,-350445310,37657100,99294369,-1593681766,123468828,621299595,-12746753,-1023314817,-385839944,503736041,-1705959853,487194633,-2147219460,113475644,508960339,760403,1543249263]},{"sector":8,"length":512,"data":[-1947204857,-14350265,-523157377,1381172931,1394529419,508698192,825942,1526472065,113444699,41418579,1394489343,1107388826,123468829,-1073084733,508762996,-1469794221,1207324686,125075465,-1593688422,-1710888164,480313892,1394496347,1107363738,-1990460387,39291143,175366865,108380683,-385856328,-1022925223,0,-2147483648,1392918526,1394496286,1577059994,123468829,508757699,-1705828781,492699722,-1962451972,38216455,1074022179,-1195179660,518586444,1946303590,508757540,1012080211,1007383552,-1710328828,490864640,194645227,-350409216,7903749,1543249198,37536519,1392922996,1394496286,594804796,796132412,1107328666,123468829,-788117621,187986912,38210311,1963214603,5027882,-1704606487,487653477,-1962451972,-2135293369,-1710298241,487653680,-1962451972,-256244153,1002578815,-1009355582,-1425276898,-1434080559,-1425692042,-1432966489,-1436898641,-1434670484,-1442403618,-1427330330,43589,1095763515,1145391939,121438208,1196380752,5062994,1225666304,1162629197,1414415693,1330205761,849957710,1414416649,1095127621,17731,1314194503,21577,1313409331,1381123412,5525589,1091050240,1280267074,4543573,1158162432,1380275288,4997454,1174874880,1096241743,-1452129198,1398080585,-1449962683,1095501108,4998466,1191456000,5198927,1225142528,1313426510,581548869,1397048330,1129665108,-1303228588,1124802985,1414745679,1413698898,21071,1230374731]}]],[[{"sector":1,"length":512,"data":[1096111186,950618188,1245859590,-1017887931,1392722089,-1448455099,1229325353,-1446165172,1313407536,55443456,5394264,1392722432,-1451601336,1213399873,889192524,1146047747,52668906,810961220,1308833450,-1449178039,1330512695,973078612,928141058,1090722986,-1452981170,1230439501,-1437448108,1094911007,-1443543725,1414727235,1196312914,104770047,1329808722,17490,1179583033,85830171,1095914049,547962457,1313817349,-1438755757,1498678341,-1441512112,1096155978,631901778,1464812550,-1655745458,1157899946,-2025499828,1426409641,1279874126,104835547,1162888530,-1436396479,1329857060,88910370,1279871063,1185595973,-934325246,1174612650,-1430760881,1213465668,-1440133563,1179189806,137144974,1129207110,1313818964,154970699,1129271888,1381319749,665507653,1145980163,85895928,1229407554,222199886,24444989,2144963,-2097125400,1049168071,109876626,378115476,1726518678,-1785552639,-1325396219,32035588,-395459066,-2051538523,1662314626,971559475,-1740732160,-1710846827,149586837,-1784932727,-2147348504,37555518,-488107918,222199810,57803581,-402446616,-1024981992,81455108,-1587349016,-962357868,512476013,-1014075962,728615073,722826947,-1173260606,-12714000,-1324977393,-1948200188,-1006685232,-385875528,1379689225,-1030992523,-1977251290,1007625412,-163809535,242487492,57510694,25004838,4623910,20767467,-1960441996,-352316882,780871173,52822032,-1960443027,-12779450]},{"sector":2,"length":512,"data":[638350591,-1912519421,35032002,-1909527698,642837442,37488010,-1960425100,637537326,637627651,933515,8258342,1023773478,796196863,38142758,706120486,-1841394944,-1774306411,-1207537003,2129199105,-1899656094,-1416260602,-1951677813,-980702266,-1841395285,-1010463083,203328294,1066083840,1979711363,-1960393983,-1960443321,637537822,-1960443645,-1962923498,999658046,1922405950,112646,-1939719959,-1811509563,-1031033963,1353496747,-1411871573,-1785577847,1438893454,1842749067,-1343700082,512435967,-1960443894,1105842447,-1960426685,1962281783,642139685,-1958345590,344598270,-100403662,1917992007,2001943559,-18946045,637791875,-167037813,-790439051,69110566,1977289472,516119991,-1785577787,989857982,-2096728841,48761071,1438850816,1465314443,-544484813,-763109885,-773140224,-119307301,1468729227,39074050,74582903,91423801,-351746429,39139824,74910578,91620665,-351735933,2012691440,309528,495393931,-964486007,46629634,-276565278,1995914000,-25282108,1988561267,-6297346,972977803,108461174,-386105717,-443809903,-890715299,-1157161470,1072189440,46131202,-1593656088,-1064407594,708741926,244000256,-1960443860,-2097149922,800719811,1189611088,-1591343360,-1073020924,119463029,1845640843,1841565323,-1957677893,2877651,1845771915,1848249995,-1957676613,1829075,91105953,78708751,100919507,-125080060,1069271347,-388789424,-1329397759,39512096,-488061045]},{"sector":3,"length":512,"data":[508757505,1346681607,855753192,-1962679333,-1014281255,-388896559,-388896559,-1024932093,-389838079,1220215327,27322448,-1293368949,1347205889,1526830568,260711943,-1947669198,-400510975,-377290224,-150375662,-400510759,-102628860,-628422882,-402558488,-389873167,119407085,-397389893,-488111774,-1811509759,573077,-1342056216,31123488,-796152538,1592306982,-398807039,-1031077428,-1191095064,548405255,-503201816,-1951586567,112010968,669565070,909838081,-932014702,1842782659,-4603762,378218239,-1960443880,-352317890,1972053565,-97530,-234671756,-2095215834,661979131,38046502,91537723,770230411,642928896,-485995381,1543710224,1418405380,180781830,-503290904,-2091296005,992348359,1962938430,77670076,1975520000,1055441827,20703233,503730515,1349696263,117485032,136219430,63144704,-1342135832,19327016,52843355,-2097146338,-1880619069,119408128,-397376325,637993094,532107,-402406525,-85458822,861624576,-1977170963,-1073068540,-1073084552,-342345100,-1971379192,76162784,-318025658,-689437835,1388481280,-402651462,-1336278904,13559840,2793766,-1342155544,12773434,1256768395,-444381952,-670869501,-1427586238,11003904,-1883568354,1894480,1842742926,205425446,915088896,52822030,76228149,38077222,-1023403800,-1977200301,-339146225,-1977203959,8054791,-176829954,113466201,1381061463,-1185943365,-796195836,-1785184572,-1031093549,-1428746460,-193606146]},{"sector":4,"length":512,"data":[-1785184631,1599822170,1364443911,-661957038,-1107294791,473649126,-964491917,737665538,-2029291823,-400510774,-102629332,800115335,472629502,470022771,-402471293,-287178728,1532582494,-256158781,-686873521,-1341658277,190477,1460013744,-1785184572,-1740731990,-1673643115,1929863061,1397801729,244011601,333682072,-1785198905,378208256,-1070361190,1845894795,1526053352,-1017619623,1841706751,-400509208,1994916445,260171779,-1895470360,-1016216058,1458342741,63408983,-1519162,-1953029098,-16731938,1956063254,-202684925,28368779,-1758980353,-347143308,2012691443,639041290,995051159,970487543,158596734,-385976697,1988886462,-59360770,2123040374,-5183236,-1017256565,-1189193898,-503906295,-257822581,-1898410347,-201378880,1583292324,-1185458493,-963969015,-259268105,-503855221,-1910572917,-392826850,1579090198,1008634719,512630423,1465292578,-422448341,-405669077,92734603,1599997065,50381599,33751297,1444807427,-164409257,-1962931783,-1948125245,-266432776,-1073063787,-142146955,-1968096581,119801925,-527771858,604521610,987180551,1999532740,1962949680,105155348,1913013563,-1960675552,1161495620,-350850556,1963015192,71600906,2130986299,-1962218744,-351978748,-352210936,167817218,526278592,509040323,-150991687,-1578071071,-661744054,-13385586,1595909363,1465303902,-1962931015,-1948125242,-137917456,519605217,-1773527410,520114664,512450398,508270354,-1759764850,-215263402]},{"sector":5,"length":512,"data":[-422451503,-405669077,76277713,76088711,-1021354146,1347900958,213513779,-138179840,-1896313887,1486244382,41271306,1150023559,138754824,41025968,-1073086288,-1021354401,92669066,1195771016,-1262225694,-64893630,-1195179662,1927872528,-971076772,-1581019539,-1020564024,-1037363850,-256241290,268385791,78710387,-796139309,-1195114701,1256783873,252006748,13796096,-788527943,-489106966,-971600902,-938570899,1003105133,17201089,1500366342,112835,1398546665,-1962518703,-1950183720,-425525,-1190955505,-783216641,-773729823,868234209,1504441343,-1056718708,-651444082,1594350967,-1950131367,-1992293308,-503902132,-1729624206,240421375,8108227,-1101276951,163157474,-2103296,-1181350210,-689438714,-1776763137,-402651975,1019150285,833942,-1090534168,146380384,-4462592,-1181317954,-1293418491,-1768505601,-402650183,-1463877719,178582,-1090543384,79271610,-6821888,-1181299522,-1897398264,-1774149121,571712,-1787633161,-1979767064,-1583932394,378246914,146380548,-2112976640,-2084502634,216531154,-13375233,-1769990519,-946412895,26668550,-768393216,-1979779352,-1583944682,113743604,104192,-388877504,378142435,1319212798,-1779129450,-1198118237,77791248,-167327850,-788528491,-388877344,378142403,213423618,-1774542080,-1775499577,-523173886,-1394027981,941001214,1095830,-946446685,43405318,870371584,-23729966,-1772349815,1692979763,570854654,-1981099625,-1902691818]},{"sector":6,"length":512,"data":[-1080655866,-1279393784,8436048,-1329355277,136219393,868823918,-30414638,-1986670941,-1953116138,-2082960438,-779931453,-1774288128,108265622,-2096053373,512295121,243897832,-492726806,-232327275,332923797,-98661942,-66156139,-1779129963,-1778112777,-904669181,-1777590647,-1777463671,-141162847,60167718,-1983245352,-1986650594,-1583996914,653760024,-670853592,512346643,243897904,715232818,975632278,332923798,1109297610,1141803414,-1774411370,-1773394185,-904669181,-1772872055,-1772745079,-141144415,60186150,-1983245352,-1986632162,-1583978482,653760096,-670853520,512346643,243897976,503551610,236164866,512333572,243897994,-2069784948,-1809385578,332923798,-1675720246,-1643214442,-1768513130,-1767495945,-904669181,-1766973815,-1766846839,-141121375,60209190,-1983245352,-1986609122,-1583955442,653760186,-670853430,512346643,243898066,-861825324,-601426026,332923798,-165770806,-133265002,-1762614890,-1761597705,-904669181,-1763434871,-1763307895,-16729661,125293067,2013200445,1355320066,-1949988014,-255006505,-1054123942,-788473213,-773205527,65655273,197823481,-1009617464,1224887435,-1336858762,136219392,139234158,-402238325,-1957036887,-503902140,285623297,-1957361580,2089488492,-5904370,-490814627,-3348331,-392825666,113180614,-4134762,-392816450,717160378,-4921194,-392807234,1321140142,-5707626,-392798018,-2067857502,-6494058,-392774978,-859897962,-7280490,-392761154]},{"sector":7,"length":512,"data":[-557908086,-8066922,-1962889021,-1955723234,-1953116146,-392835562,1048837169,1946195606,-871971066,-1191178091,-628359120,-392847688,1048834062,1946195606,1095947,-759637364,-268638059,-1325435928,136219392,2047773550,2014743446,-67901290,-1953037663,1435960342,-1962932035,-392789954,-1767768333,-1734131562,-1768505706,-1577118232,-1556048216,-1463904598,-16193386,1448199005,-964485545,653079043,-1958343542,1100406846,-1763701247,-1763176959,-1763043709,168230656,-1912190569,529984518,-1070422797,520560298,-1017553313,1614118,436615974,643265536,1457803,-1977202197,1946369029,1963211780,-1777819342,-1776933129,178385035,512630423,76125716,54889254,637682825,-1996143221,-1960901564,80118775,-31768,-6942714,848693254,1300899565,-947699449,653853447,1588795,1388556402,-1771921066,-1771034889,581038219,512630422,1143707246,105154820,1778843423,1644625814,-1017487722,1654740562,1881601942,-1578071146,378246690,-1910598146,-1986630114,344523844,1166747167,651725570,1443331,1465274707,-947652469,653079047,-1958277750,-1953017290,-1953017826,513204246,-1762910578,-1494001839,309614943,1928477507,-337956092,-8617970,1189704704,1015085035,535393536,-164376013,494197515,135674690,855929494,-2095911982,-1910634810,999691294,-394977508,-1756097021,1499357002,512630363,1418303086,1516117762,1381061571,-1776639658,-1775753481,-768354165,139299622,-1960426781,1963140660,1837835780]},{"sector":8,"length":512,"data":[180847366,639536670,92939926,2025851463,149657603,-527794396,1191545382,1946157117,-1993373429,-2092825993,-268237629,534438469,-1776151039,-1776675327,1532582494,915089091,-1960443890,-1157623786,-230948865,-1960433037,-8190340,52196607,1015228153,638874879,1946311995,-294133,-1293417612,-19601154,-2080411928,-756348730,1962933123,-23074557,-1771396669,-1772210549,1545506334,205818262,-1777295073,-1778108789,35556894,138709398,-1760911073,-1583918941,1386452704,-1777294953,-392735581,-1960378874,637540366,1707579,2028471156,512435967,-1960443862,184561166,637892041,2887307,1543933446,1581157270,-1778474602,-1413248085,-1951678413,244034497,237737534,165910288,60182177,-342422522,-22986492,-1047811179,1645120427,82004374,65750855,-1951678413,1049340865,-947677692,33984002,-1274892138,244034308,378246936,-903112938,48480307,-1951677813,244034497,-481716728,-347650300,-1413467389,-1951678069,513170998,-1772347762,-1961997173,-1424028604,128696715,205425446,868233984,361440969,1962932867,512435734,-637337586,638028582,50484619,1334519490,113912578,-661925493,-1774567797,-1774713202,-1760162165,-1760293333,65257523,-1416162143,1202438539,-18361,-1413248085,128696971,-326412861,1443032195,-1758027433,654198409,-372174965,378218049,1128464422,188189478,-1960282890,63407102,-1977162702,1207436037,-1756875205,1048579702,1946261318,1995586308,270002179,187992870]}]],[[{"sector":1,"length":512,"data":[-489130506,-1780178483,-1757673941,-1712782473,973486848,-1207535977,-1360461701,868780884,-13433152,-1759377778,1988865011,906923006,-473027689,-963948254,-150992711,519605217,-1759764850,520373643,-1759902165,-125050671,1185662603,-941694375,26682886,671532977,-944684393,-392748026,1010207664,-465663081,803753877,470191862,439782295,-1948349545,731245582,-1960647730,-772068354,512630503,93034274,1958742815,573197,-125048841,-1962621053,-498684986,1583286238,-1017256565,1431393879,654216019,638670219,-401652341,-259322957,-2145481186,572310,-661920777,212929139,-645078317,-628174589,1334511498,534378243,1006633661,-1122798333,-1293418493,-2084009110,-165280575,41156869,106643777,-1779431794,-1080695647,-403242999,-1014237045,-1413051477,866894219,-980702272,117376938,117413348,1499305452,868441950,-1756847168,88357158,958806644,880022340,-967354797,26692102,323783462,91523878,-2093743322,914949318,-24406200,839108483,92940004,-397936637,-141881683,-502675837,1532911589,243992259,-481716764,-268005825,638869,-1779681653,-1780206037,1569400390,109970946,146314880,-1947994368,1359770584,-489485135,-788282996,643416718,1965899648,2005476868,-947714292,-773700087,1048822535,1963038518,1185006337,-1760648298,-1550434655,28874514,906377984,-385650025,-1185939257,-503906296,-1910581109,-1953031138,2005598847,1465261830,204901158,1963140608,1049306625,52822030]},{"sector":2,"length":512,"data":[-1910614212,-1953031138,1200292943,522160898,-1583922013,653760062,-125069748,-1936331615,1243516634,-1996125802,1300825181,-1960420602,1141057031,138774786,38767398,38546214,-165258402,41158660,1300875571,-2454006,-392827850,113704661,-1593796790,1017353700,-1779654249,194452131,-402426661,-1070334398,89951014,225762059,60180129,-1550430714,887658306,-324969987,515976085,-1773527410,520242569,-1774319873,-1773795585,820592728,236358655,1175358359,1319192982,63439766,1993423824,11004163,-1555512693,-1031039170,-1760426453,110575779,725701201,-1077769270,109969412,1202427676,-85835705,-1759115577,113750470,-1308322008,-1759246649,915124653,1049335570,-397437378,1499132842,-1759770994,79610507,2009152256,1015752213,-1757528533,-405674031,-1425881213,1074054787,-1031018517,103536779,653760320,-125069748,-1912289405,-1953084922,-886357551,990219046,991589059,722892738,-778617338,-1948200480,512630512,1149998876,-1993990398,214401797,-955786526,26686982,1141294848,-1023410025,-141148511,-1953084378,651310072,184835211,-1957530405,63341555,-1977160398,1190200076,41714470,115635200,1459915558,-1912601921,-1953030650,-225030642,1341116847,-1906325621,-1416214010,-1951678413,-21451838,-1070355457,-1962431573,60182038,-6928874,-6930938,-342473210,977177510,512630422,1435080248,-1950146812,-476670450,109971016,197105316,1166681600,1962949642,-1960421582,15621,-1912200076]},{"sector":3,"length":512,"data":[-1147750906,-470351870,-1960380277,768773,-125049865,2105550343,41222154,-1977165589,643762757,-2096478840,-1042150457,244040455,-108816746,-385649408,-1912209221,-1080646650,46006283,1032005120,641496064,-1912207989,-1164541946,-487129080,1946221187,268483343,-138245296,63147235,1489211096,-1960388469,109969735,-1993959754,46564100,-6903135,127314438,637896998,101074315,-1769994610,-150992710,16417762,12259188,-1031057392,-1014176777,-1014048765,651725656,117524363,105220390,-502544509,179852,-1767240053,103932745,-1766455666,117738278,1358957503,-1768550773,105199910,-947714700,-1577721333,-1054108010,109971008,-1993959754,-2091317500,-807271738,915129095,178361860,512630423,76125698,915088927,2045247496,-1778474505,-2087239005,-315489338,51153446,1273513713,-1773755906,-1583936349,279156286,-1779654249,-1550379869,-459172070,-1757633643,1252180019,-1758813545,-963163997,26691078,169773862,772196096,-1593835369,816027296,-94771049,-1768538493,103969792,-1765276018,-150993736,-1953055706,775848920,141820055,647442593,99288969,509734,-1758551808,38242598,-1765538049,-1766062337,-1779654393,-1550379357,-459172070,-1757633643,-1757018426,512435712,113704998,38702,169753382,-1593216000,816027296,-101586793,-1768538493,104690688,-1764096370,-150992712,-1953051098,650130392,-1993996407,1048773191,1946195758,-1758420727,71797030,-953809173,1095,647442081]},{"sector":4,"length":512,"data":[-16365687,-6892026,127323654,-1550455647,117348120,-1578592470,-78255877,112835,-1550455645,279156222,-1776114794,-1550432605,2091095658,-1769036906,-1550409565,-995912014,-1764318314,-1550391133,-89942262,1260816534,1141294999,-2013265769,-1953026778,-1905404386,112835,-1550371165,446928356,-1777818730,-1550434653,-2036099486,-1768381546,-1550407005,-828139844,-1763662954,647426723,540299,637781891,-134019702,876513607,-27858793,-532760,647364102,269963,125098763,-184096685,-391582885,585694580,-1090052355,-71789154,1048816466,1946195606,34191365,146277355,-392058110,-367621226,77206,-1426007421,-1582579061,-1421306102,-1953037663,-1181285354,-235470840,-1769692757,-1780309589,-1589164117,1202427470,1007027015,413248406,111258518,1319218070,1621207958,-1070355562,1048619947,1946261319,-1431590139,-1582626581,-1330942462,-1582585342,-2085906704,9868862,-1085859980,-1767795246,-1465799786,-947672170,-1766153980,-1764974165,171754411,-58710923,-1341885184,-2142049522,74777340,1240142000,1963261056,-351293436,117211200,363869557,205273067,-58708619,-1341885183,-2144670974,74777340,569051312,1963326592,-352014332,117211160,179307637,-58716181,-1341885171,1392962310,-682502725,-1008455077,141934603,74830347,-1023409736,-1960387961,1004177183,1953380374,178841605,509022323,-628164469,1703544202,-396419327,650379120,637949323,-402373237,-259324801,173378342,138775334]},{"sector":5,"length":512,"data":[503608040,-1979949371,1200162423,1166747144,55019778,-987839713,-1960379298,1200161349,1200113667,516103941,108888870,855930112,-1962677258,1590030966,1166747388,55019778,520517513,654311355,-2096728693,57999614,-1962888727,63407102,-1977162702,1207436037,641007398,1392671872,637930357,-695532401,-351582835,1435182600,1166747143,66447365,-1996189914,-2144929210,1951597180,1166747181,-294143,-1019534220,1344151671,-1896593781,-1147760098,-470351867,130472075,1200183360,55035649,-14745600,642839622,1392671872,-1960442251,82512205,55413542,513215137,-196703408,-1768808818,-150993477,-1948742685,1200224838,1200183299,197145089,-1342016055,520587392,-196673701,-1946973208,1962281969,-11540221,-1960436029,-1960441259,1692928069,650676995,425347,-164428683,1988821995,-1767857678,-1767495945,-1532897141,-2082959722,158597625,1204227977,-352321278,509705,38258432,2005467136,38177540,637945737,-1995422325,1204160583,-1960900598,-6905802,-6907898,513187846,654073541,-1996339829,2005467975,-4514042,1972053759,16679686,-1226243211,-2080470272,-466484281,50694694,-14268424,2088773172,192238338,76490246,1166923403,638118667,638014859,-402307701,-1893334333,-96040700,2088773200,477451010,272465958,113643644,-1560176851,1122539307,755418630,-1960443753,82512205,55413542,513215137,-196703408,-1768808818,-150993477,-1948742685,1200224838,1200183299,197145089]},{"sector":6,"length":512,"data":[-1342016055,100017792,639464464,490883,1275855988,1208746731,537261606,1108083316,1074132518,1091306100,1528760200,-386644225,-242486700,57996811,-46359,-1013502458,-1756690746,29681665,650284038,-386382453,642779182,637685131,637814155,-402238069,-165216934,1946285381,-351948284,-1006521854,-970523554,-1993986809,-2010774705,-1993996969,-953809337,268439111,21481254,643301376,117983113,1435182787,1166747142,30795780,-1977159541,1371847429,1589976791,108497404,38112038,520308617,-466477373,-682502725,-1979943227,-1960442300,1149829701,1166747139,138709252,105220902,638207113,-1995946613,-1960440764,1149831749,516103950,-939755835,394820,71666470,638076041,-1996071541,-1960441252,1149831237,1166747148,239372554,38112038,1006847113,-1341885180,1008528134,-166890238,74727623,267060656,199952816,1950402550,-352014332,-2012696574,1472405252,240487206,205884198,1963349563,71711493,552085364,-129595135,-2145481186,572310,-661920777,212929139,-645078317,-628174589,520898443,-336181623,-129579174,1183514634,-163149326,139299622,415728449,-24381557,839108483,92940004,508033027,-1760944501,-253564845,-1896593781,-1097428450,-420020219,-1990659957,-1960443580,1149830213,312835,1963063683,-2147170813,-196673761,-964429941,1606148616,-59325154,640222406,-1996339829,-1960443068,1149830213,1166747144,172263686,138775334,638207113,-1995815541,1183517764]},{"sector":7,"length":512,"data":[105155064,-1980348789,-1021375420,-1756676480,-971803391,9915142,-1758839168,-2144635647,1083657230,113648875,503682892,-956539195,1204229639,-956301311,262983,1073890955,-2096740471,1586038979,639508476,637949323,-402373237,-1605305498,1590007628,587712252,83911,88573952,38112038,1476609929,520505225,1975520195,1976699656,112644,-2024779069,529213146,373021319,91516472,1929768424,-1957210076,-628220168,41713702,638219603,2081439104,-351227900,-1979348478,1595867493,1526375400,-1064546109,91541563,79987544,1431328963,-326898549,1364612879,2088773203,209015554,272465958,1187382908,300617969,-1957212154,-1030880130,-2012902874,1482682694,75401991,-2147054074,572310,-661920777,212929139,-1047731501,-1030827773,-1979824500,-1977156514,130190343,57982986,637573609,1392671872,-2036263052,-196703850,-1986621791,1302458950,-2046426729,-1912209002,-247035242,-1960910710,1371847627,-1897888041,-1999008806,20717351,-1897396875,1012788218,-402295550,1424751297,91554620,-335833368,1963342923,-23795707,272384747,-1075313291,1010428924,1007186952,1006924804,-402295545,686554371,91556156,-335905816,1963736095,-45619195,222041835,238814324,149423477,1007283197,-402295537,15465861,1600018779,1482548619,-1023097725,134608422,1183516277,-196703750,-1756690746,873892609,189107607,-1979804952,650377286,1963081088,-1960393983,637537310,637623555,637687691,52830091]},{"sector":8,"length":512,"data":[637537822,-12777589,-1023314433,-2081649835,1392905708,1573135952,-967309809,184611654,-972786472,1476522822,1187448667,50331892,-62486078,2793766,855525001,100017856,-1342016248,-163149816,-1986590047,1048640070,1946261293,-298915837,40143398,604342822,1963211839,-129579253,1187381280,1961597175,963969084,32734848,113642101,-402548916,535560006,519587527,708739072,74776983,49835651,326992678,-972524544,26692614,-1325452824,-163182064,-336116088,-209813449,-972393215,93801478,-335606296,-129579233,1048576031,1963038506,-126975228,2105746946,141819923,-1756625210,-17242107,1175064752,-146372362,-812924020,-1779431794,-1080695647,-403242999,1183578251,1048620026,1963038509,-1758748411,1183515627,1183558648,1183558652,1183493118,110013175,916559644,573335,-125048841,-1416150367,-1582579317,-1951689236,-5508026,-1953024506,-3961095,-6953978,-1953108986,-1581031963,1183421924,-469303298,-335085675,-1760910955,-386120055,1452010792,-163148808,-1979904280,-1912145338,-1953107962,163577414,-1947732224,-62485512,-96040021,-1413379157,-1968454773,128643398,1963343043,-1009634557,24379964,-1957474109,63144922,-1977162702,1138230023,-1757143493,-768408459,1460020203,470191697,-1758027369,146786443,-1947732224,149914616,39664422,-1960380448,1599669333,-1017619705,1448235344,-2080470185,-1363278905,653079120,-1494020726,-1031004299,93799585,-2014838773,109970946,146445952]}]],[[{"sector":1,"length":512,"data":[-1948059904,-1759862280,172329254,1516134151,1438865497,-326898549,1381061391,-1977199017,-58719644,1999794768,-4181453,-392758730,1918436542,-247019996,1166747141,-129595134,-1996125402,-617351610,-1761997253,-1960441739,-1960442275,-286784435,11725310,1968307328,-247019963,1166747142,-129595134,-1996125402,-617351610,-823604941,-96039938,1996496957,9103619,-2147054074,573334,-125048841,212929139,-1047731501,-1030827773,654067339,117523849,-58693397,-396659374,1584530587,-1757135229,-1962052608,647447582,2081439616,-15407101,1460062347,-1476031962,638415888,637754763,637631883,-320141426,-1140936984,1607946725,1245609991,41222551,1183320076,651856881,-1996012149,-1960380346,1183384901,-29103882,-58717973,-402426029,1600060633,-1956947622,1371758053,-1927391402,-315489163,1091340838,-1762509173,-1762521599,-1761997311,-33124858,-1527570538,1595868958,1371756894,-1927391402,179897461,-230782208,-233963114,-99745386,109971094,-216033538,520560292,-1017553313,100787250,-964454940,76162563,100778238,-293366048,-569966845,-1960393834,637540406,1717819,-1960432012,838866494,1166681828,650182151,1912814976,1031808530,-15960316,26664454,-6889466,93718534,-134021113,-646775237,512435907,992346136,1962940958,1364443905,238455590,378217984,-4653040,1945254911,2089494060,-31994,-83681676,-12811482,-1960438156,100730949,-1960405478,-1053097403,117376628,-930376094]},{"sector":2,"length":512,"data":[-351746429,-1017423408,37584934,1405288821,-1960422831,637537310,637623555,52830091,637537822,1962884995,-402542509,117440310,-1960405442,-92073643,638612736,1024411019,125108224,326992678,-1960414208,-1919470570,28379973,100688616,-1004122029,1476792157,1532549131,638219271,1963460086,-469303548,1569400469,1960512261,58779651,-1017423526,1913555793,186704790,184841664,504919250,538873430,972436375,956658948,175374932,-502741373,1495228146,1284228089,71600902,-1994432776,1503087886,2088773315,175461122,272465958,280298620,372968427,74815284,24626747,-1030991165,1526703592,-1957300621,1464881900,-2091691690,-2144992020,1968374396,1031808522,-1257997296,-1258099952,-1770872576,-1757936069,28837490,1103096064,-150992710,-1980199966,-1945701818,537300674,-62485609,-1413313621,-1761339765,-1147731295,-201916408,-1070355648,117376939,2123077234,-2132528388,125108477,-1979348442,-1979520024,1370733509,33948119,68584343,-544538473,20759946,-1960436363,-1960442281,844170311,-11933495,173509414,138906406,1509900008,1006724841,1008694274,-15174397,647403526,688003,-2094659723,1946159231,-1442382071,-385619050,-4521822,1972053759,16679686,887686005,-263796991,1191116800,-390057232,-24379994,839108483,92940004,1363671043,641007398,1392671872,-2144987019,92016701,-1243065420,-1893333503,-1915319548,28379973,-1960441109,-1960442027,-919468731,654229224,643368079]},{"sector":3,"length":512,"data":[1392671872,-1960439692,-75300539,990344447,-16549949,-661917626,41713702,637957459,-351701621,1972053508,1979058947,109971081,2123077408,-263812110,105220390,-2046426873,10611094,74712636,1349849148,1946286464,-226587870,101238659,-1759508850,-1414807501,-1962431573,1913061371,33981334,377686167,637572868,637949323,1359234443,-905197429,-919468684,654193384,-2096607861,41156857,-346487829,-569507504,1240160662,141822012,74712124,292882236,106400550,71797542,-389467567,-346423805,1963932716,1468737064,1200301582,-27903220,1178278773,639006204,1074284427,-1769601535,537300486,-228684905,105351462,79987463,1600018779,-1017256565,642995974,637689227,-1910096501,629810695,-2147000485,1064438268,-1073080713,-1977217676,-466484155,-234487488,-399840362,636222457,1997274240,1958742544,-234454265,367725206,-335803160,268206096,158666103,91537418,535347250,-104597252,106125251,-1476031962,638415888,637754763,637631883,-320141426,611778876,-1960441996,-352316898,512435717,52822032,-1960443043,-49913,52826996,378208581,116092418,21349414,-336018804,1527249153,1364443999,-58698153,2002285136,-11737064,28332402,654031336,637687179,-919468661,-335740184,1375502398,28316533,654025192,637687179,-919468661,-335746328,1392279590,1894259061,-1340312833,-75175935,123046694,88443686,-857159374,-2146898948,58151932,1593577960,-1017423521,-1960421801]},{"sector":4,"length":512,"data":[1105842447,-1960426685,1962281783,-2080470241,-466484281,50694694,-1977202696,914948708,1911068466,881534719,-512362997,1600050914,76228291,-1773257077,-1030953007,-1759639922,-1912239834,653669058,184841355,-2095680266,-1977220154,1190265620,41714470,-1543168,-342475258,-459160606,-502922859,-435799147,-1560055147,144807398,101056918,168180630,-1560055146,446797322,403046806,470170518,-1560055146,1050777116,1007026582,1074150294,-1560055146,1654756928,1611006358,1678130070,-1560055146,-2036230556,-2079981162,-2012857450,-1560055146,-1734240632,-1777991274,-1710882410,-1767202410,-1767373311,-1767111167,26655905,999733766,1922481670,-1765891325,26660513,999738374,1922486278,-1764711677,26665121,-2087254522,9898006,-1763572165,-492633230,-1762483818,-1762654719,-1762392517,-190643342,-1070349418,-1550457693,446928392,-1774279786,-1550425437,-1734109562,-1767201898,-1550402397,-526149938,-1762483306,-1898410813,-1194183744,753402880,504793569,-768407913,-1931412760,-1953030138,-1177406526,-235470840,127350947,-1631600589,23378325,113748723,16815874,-1550383965,144938758,-1756913001,1842749067,117425038,117413454,117413562,-2115463476,1048782591,1946157102,1191626245,-1960443497,-402651082,-964429394,652489219,-268237686,875989318,-26613609,639535910,-30611456,-386290712,-1914111517,512435966,-620036092,1923198581,571798,252043767,-754667264,538348520,-1982856297,-2089957866,9868862]},{"sector":5,"length":512,"data":[-1070397323,-1550402909,12818124,0,118904662,-1174613461,-1510801404,-773795411,-1410805294,1583328146,-326412853,637820612,-16220287,-1003653761,-2128214946,-2147481985,1589910901,1065559556,-1005292288,-2094660514,1962934911,73319434,75465510,-1207602176,48955393,15450163,311901,-2081649835,1465260780,175555870,-1696039283,480313344,-1928956219,10155134,521969920,-1914145139,1183511678,-28954098,855525000,1183380038,-263812338,1039949451,712212479,2147482497,-1019537805,1317670003,-229734146,-1812963703,-619972729,854279799,1183577995,-263812612,-1979824501,1183576646,-62506000,1183521909,-28951566,1187452020,-1207959310,12255232,47360,-373292870,-1959395068,1552627204,1284191746,1418409476,15919366,1077789483,-1998094592,-1959336378,1569404421,1300968962,1435186692,-414792186,-428965888,-2011595768,-997529786,-544545910,-846530166,-695539062,1853882550,-411236122,132540032,-355397516,-607004207,1590745297,-431030553,-13897611,949888,53879157,1544762884,1276327426,1410545156,-781683962,-774254118,-791096869,1191176030,-2141656080,906097270,456524843,456524380,456524876,410191444,32667264,-772287753,-789064713,-169386250,-552351981,-686567661,167788734,1311013110,1724913268,-774843929,332517843,-2081392174,1979793646,-1878201360,15746759,-230242816,-803214592,-954996890,-820781293,91477779,1191172817,-260144656,510885887,15761027,2126782324]},{"sector":6,"length":512,"data":[-1817445366,-1834249813,-263812181,1175118033,-1412902414,1187452651,-343932944,-263796987,-1070923776,-930359157,-756297589,-443851169,707165,-1326675115,1996443648,175570700,-16222465,-401734026,-899809758,-1957363704,1342288108,-15960321,1996425846,108461832,-32970738,576093,-2081649835,1465260268,175555870,-1696039283,480313344,-1928956219,10155134,521969920,821972618,1586229838,-263812100,1937768253,-294609,995718015,-1828621629,309641227,-30555389,-351571393,-4222859,-2147435905,-13957653,721420474,-1948742720,23980488,16547459,-1927934860,-397350842,-1072956077,1122697844,638213828,-16226431,-230230145,158597375,638213828,554881,22276480,15761027,-1927934860,-397347770,-1072956125,317391476,-1954545729,1586230342,-129070090,-369469813,12189975,2147467200,1183422955,-1946211344,-151548977,1954608966,-397505786,-152406389,1954605894,-196214001,334919187,-146344193,1325495424,1183570731,-328796172,-233584637,-1962879101,-1072957370,1727469428,331875304,14124018,-134723957,-268178842,-746325485,-196703488,65955575,-2080762896,1183514835,-328796170,-99356669,-1962880125,-1072956858,1727466100,334496744,13861882,-1957246677,-163148815,65955575,-2082860040,1183514833,1958743032,-328796393,-636225533,-1962880637,1727526982,332923886,14058442,200951435,-148605760,-133961114,-779888109,14058240,-134592885,-670831514,-696006125,-96040192,65955575]},{"sector":7,"length":512,"data":[-1947069496,-1956735018,-770969474,-783348872,-774843930,-774778413,367448530,-746389504,13730560,1929433731,1205522691,2147483521,2112422770,-990409730,-1409545602,-1416516717,-778654830,-230290720,1605093585,1575324510,1426065610,-326898549,-950577624,64582,175555870,-1697087859,480313344,-1928956219,10151038,521969920,853689994,1183379014,-327775238,-2116008309,1937768446,2147433769,-167037325,-1073017228,-33214860,1925589823,-1874728171,-1098907718,-1072988160,-4583051,-1073693057,-768931349,-12716501,737113215,-1948742720,29747656,638213828,-16226431,-96012417,158597375,638213828,554881,29223296,737691273,-564753463,1005221515,721647602,1183531478,368506844,-854458367,-1979756920,-1957628346,1586226246,-1961761818,1177151574,-631367208,433870361,-220012938,-1981352098,-1819083706,-670832905,1183566355,65468392,13796296,1727501970,-2084174870,1579876562,-632415272,467420699,1586093654,-632387112,-1948498295,-151524746,737605521,-1038878254,-802436589,435443337,1585509966,-1957691137,1586226246,-1961761818,1177151574,-664921604,433739289,-220013450,-1830357154,65468307,-1949690920,-419960762,-763115517,-141127168,-972821914,721474179,1310456926,-632939560,-1982048741,1317665886,-632911400,-135629173,-151547402,335139371,-1983245374,1308750406,-162131468,-1761651184,-1830398325,-471310709,-62510837,433610265,-169682346,-1819089161,-670832905,1183566355,65468394]},{"sector":8,"length":512,"data":[13796289,469524011,1444665414,-60913190,-1948760439,-167516042,-2081786229,74645718,300669575,-791551023,-151530799,-772343917,-791096853,-17954,-779423349,-789064713,368434934,1578303488,-196209678,318141971,-355401898,-556724877,-607004207,-556738351,737691391,334889727,333386695,-2131291185,1451950290,-1107004168,-2126348288,1920991226,-31397629,2147482241,401146738,176080126,-1416385540,-1416189039,182505874,-925763002,-1956749397,147480037,-326413056,-987867306,2126776950,138709766,139823910,-523117781,-489563184,-930357296,786680331,1031790394,-1036307844,829893234,637944971,1963345211,71600925,71645990,1149965429,1161504258,-1962183422,87762436,-1070922635,158798571,158718730,-335544392,1977289223,112887,-350240757,1566465792,1426065610,509013131,-1962510651,1418396740,3965702,2088963957,158662658,91586472,1946273014,-2134900198,-763166508,-787451136,-2567718,-4519868,140256127,-1340968893,-1982125312,39618844,-1996209015,-350288300,-1161811193,-403996672,80371038,-326413056,1443556483,1992629847,-159478518,96012054,-1510736896,1183651359,-401714954,1586233221,-788483586,-774778653,-294421,-2128382849,2126545091,-294609,-1977451264,1183579518,-788822277,-773205789,108971227,-1416385540,1586108651,-1209806595,-339727361,-16729112,-504643541,-1070867669,1583340523,-899816053,-1957363704,509040364,-1962510651,62259524,873132066,145228917]}]],[[{"sector":1,"length":512,"data":[67444340,723088128,56365531,268786705,208865116,-1089977089,2082701311,191907592,80148516,21268736,-1995445473,39618844,-956015479,-2147482044,1583345387,313949,-2081649835,1465256684,175555870,385253005,375047,530969596,-163148522,-1981280688,-146371585,-1946583413,1451948878,-27358211,2147476353,2147482497,-1014936204,1115603968,134216577,-489665155,-623842351,-209008886,-271458421,-623781679,-607004207,-657330223,-640558383,1725029329,-788523778,-774319633,-774254118,108971227,-1416385540,-1416451183,12198379,-2096108800,-355368990,-897324335,-1174148128,1725038560,735760894,-1948677175,1607658433,1575324510,1426065610,1465314443,175555836,637831974,721573003,-773664266,47918046,-2144176930,578093054,-109057149,-225781040,-393554806,2126774449,-1413469434,-1834249813,-16411733,-1413084353,-661969685,-604513782,-348127045,197823447,-2096204600,-355434517,-770523133,-347355016,-1073628169,1583333611,576093,1458342741,1992629847,108971018,721835147,-773664320,2106457560,92874248,-355269199,-92184204,1148454911,-360640333,93455359,187056127,1418439429,266764293,1284240138,22842115,11543690,-741220143,-758001199,-741220143,-758001199,-741220143,-758001199,-1416516718,-1416451181,-1873286369,-2096735094,1544228835,39586564,12196875,-1280347072,-1968444656,-477952420,73141007,184704011,-1174047460,-1762934783,-2147134325,1284181990,22842115,78652554]},{"sector":2,"length":512,"data":[-456079106,-774777903,-193342957,366672,84616764,11557035,1583324907,576093,1458342741,1992629847,-1962636534,1284178524,106203908,48927,310170123,-922016385,-620027531,-1073013387,-164947595,-755548693,-738733577,-2081040137,-779943725,13796096,-1107295809,-771030976,-779679115,-2087466105,-219475730,55446392,333124544,2043810761,-20545035,199676223,-993078793,-1409546626,-1416516717,-1416189038,-899850657,-1957363704,509040364,-1089833275,2082701311,-17858296,1073709887,-16054145,-768929923,12190699,-1950340224,-339178536,106203977,-1962652533,76218972,1999695747,-1950119152,734694361,281510866,-410782850,1960834831,281510670,-640554287,-657335343,-151683249,1954548036,-134862063,-137234478,-170330157,-837558765,2126829075,-1817445370,-1834249813,149914539,1566465823,1426065610,-326898549,142016264,369522431,1358448269,-10295282,-1711651189,1979471419,-27903221,-1953364363,99350598,12238891,1575324544,1426064586,-326898549,142016264,369522431,1358448269,-13703154,-1946663285,1317796438,-28439556,-4717196,-1949266945,80371173,-326413056,-1962349437,1183386182,205949944,-1711651191,-1979951479,-1927872938,-11470778,1996425334,1877478918,1575324670,1426065610,-326898549,172395272,-1946663287,1183386694,-1983894534,1183448134,1183651582,1996443896,108461832,-29300722,-899816053,-1957363704,-1000909076,-1960441218,182135573,-1962379822,-1949594637,639036371]},{"sector":3,"length":512,"data":[637695371,-1979429493,-2131391746,-1031700250,-847233154,108971136,-1413469188,-1416189037,-1416451183,-899850657,-1957363704,509040364,-66423099,-1382830675,-1382896239,637045535,2116911103,169637439,-1978436124,-2132553497,-779943724,13796096,-1057091213,-4715147,721611775,-1949791296,-788075568,-773336606,108971226,-1834249813,1566465963,1426065610,-326898549,-1957210614,-167048586,41510260,-25043209,58069895,-1156347970,-568131577,-472783919,1374471041,-16615425,-163148489,-1751494634,-1323482623,-1074867453,-167030260,-288287372,1183648883,508565238,39361111,-947708767,-991433974,1342572102,385238669,176063312,-1710786304,480314435,1486489067,1595711746,1575324510,1426065098,-326898549,509040140,-66423099,-678691021,-544485493,-1980465527,1017968254,1013412400,744716089,-619997136,-922017419,-771021963,-1164501131,-487129078,-763103229,13730560,-1962880125,1174533702,-2117080076,1930218747,-405712852,-774778159,1364448209,-405711022,-774778159,-405679151,-774778159,56153041,-804038408,1489507160,-346499053,-163148869,-196738752,775722219,2122517365,91554038,-336179457,-125924987,-1980082551,1586101326,-193033218,74728764,913663292,-1968383181,1949121736,1948990497,1915763741,2000239644,-386170600,739406595,-472803280,-472788085,-637279279,-340994045,771326176,-604568971,-1927283965,1343682630,101074628,39504,12066114,2113420272,1358441229,101074628,1022544]},{"sector":4,"length":512,"data":[-1000923801,1342572102,1728057242,726177309,15403590,-443851169,576093,-2081649835,1465259244,-2088763208,2130710142,1226758,-1995553145,2126835270,-226588410,519325324,-1928300859,118945406,375292,-1960860173,-919863738,-774774575,638222020,-388952695,-12776844,-1173196161,48988159,2126828075,-1430246906,1944699531,1073687809,2097158973,2092960524,-330905848,1189806088,1292941968,-1265374473,-45708723,-453582640,-763116797,-2082932992,1451819218,-296338452,146718332,-1192088832,-264564736,-265613956,-163148464,261771286,1444767488,385238669,1022544,1720261991,2013680,738086442,-160003109,-1946648949,1452014150,284787708,-561311886,-125044853,-768884085,1947265411,-315927276,-657331503,-556671023,-573449263,-846466334,2123192157,-1861806346,-1767140437,-1196730197,-1851047938,-991142261,1988883070,655407366,179958263,-168390044,989197970,705327813,-1336917051,5892145,3663960,-1980998007,1183707774,-2142234890,2013330814,374347277,39504,1854086466,109920510,1344164464,-1593681766,-1950340324,-25263664,-1536016385,-385920279,-1970143231,190700,-157760118,808453617,-1979710744,1966095556,1962818308,1325378054,990542862,92204638,-1142308021,-261714946,-160104901,736035663,1031808734,991392565,1340568830,809336870,334230900,100542031,960331814,-29685386,-970526091,641937669,83398,15451019,-443851169,969309,-91491445,-201586914,-1948349532]},{"sector":5,"length":512,"data":[1448199127,-208992681,119470731,-56298499,-678699381,1499356935,-1224280125,-1023409918,45549303,-138215422,134395654,116900608,67109559,-286783372,-402426625,-138149918,177926,-2120432888,268613390,-1664901888,48695031,91553801,1509062,-418479872,-2130704126,6414,-389833471,468196319,-1767783676,9675522,45162123,43392649,-1560110175,-1281294187,43754242,243974955,-1053162827,-1047920010,-1593732189,-813038964,-360000973,-503842166,-1023163645,-1023243613,346210355,48896,503324089,-1426850809,1949504,-218103367,-18262,-1191174465,-1426915325,-1090480200,112787490,-1330908416,3063552,-218081351,587646890,-956293629,503530502,51749376,51775174,772195850,113640192,-951123917,218206470,-1962889206,-788351730,-1342129439,43531904,-1610255353,-1196031103,-1996321118,-1996321778,-1023244266,-1560095327,329450257,50963203,-1560081501,262341389,2269955,-1560271197,94568490,419874563,-973078528,197638,2361031,645988503,-268500297,-18237,503760464,1609105152,-17569790,-1591912472,-1767702381,9806082,-402482269,512435436,130417379,282650650,48569993,-2061071528,646562560,512426117,-1957494043,-956112098,-955642617,-1476359418,-1224280284,1946165250,-21829626,-967709861,-16771322,45549303,91557888,1509062,-1223786240,-972029950,16784646,1543409640,45549303,443875840,2373375,50607871,1528650216,50601608,605981019]},{"sector":6,"length":512,"data":[498526208,-672657685,-1224280305,1946173442,260368387,8726155,2367115,1979662208,-1896120053,-402296063,-387246405,-400844824,645995008,-9502695,-402548248,243335758,2097847,1912652264,2025477,-998979861,1392649403,2734930,-1191170630,-1578565624,19261693,-399798296,-488105124,1948269821,1946762249,854085637,512448512,-75431900,611516815,1962775272,-689418235,126375952,1963801667,473622537,-383871256,-1763173592,605980958,487778560,-148505111,6406,-2125171711,-16770778,-42800898,-1964488332,2400527,41075515,-1749362549,1004177152,-1978370854,1948269575,1946762251,1979661316,537380358,-1159140541,-634716009,915069575,-700841213,130421106,-889306359,-822212236,130477172,-1007490049,-399840280,2134645432,540804211,784025971,17286656,235374659,-1094823161,-402606815,173736159,1395750336,-1256002370,13756417,1975519835,-550058973,11883266,1526776552,343146812,91619132,401195403,3121406,57876540,-1007042510,208980222,52697275,651756505,-1007085685,-1677715736,-399867928,117316172,-2008874962,58039559,-352320792,710928534,861131125,371099867,244115456,-1979699525,1958742535,-1975300078,369524743,132645376,-922855424,-1017385099,1982080,-402426880,540811960,1441334130,-1336913906,240052318,-398457768,-1017639352,1640183,745865217,-343221453,1445514,-109042973,-972720637,5894,-2146553368,7742,-1981283468,-400510942]},{"sector":7,"length":512,"data":[-69071336,1445512,1375711683,1392520891,-1977198245,-1073068540,-393583756,616621440,1371668031,1125091923,74694954,1407961090,126505119,-1869610948,-847247755,-1876432096,1965082102,1086715422,1631329396,2101085810,539755127,1954596342,1916877837,2002729990,-2143278078,975626213,1175680260,1976172099,1537104065,-1342130855,-1342016257,39371521,-1245148479,-336526592,13101447,1640183,192151553,1648257,1323892734,-134515671,537048838,-402295808,-780850879,-2145265688,-16771266,113693556,-1140916201,512294912,512229386,1541931032,248965133,-398786373,1122504018,-418973940,1946159362,956349192,705502440,100711168,1275925736,543518313,285260544,1124927720,2124911,1962613480,419478285,1225586920,1919251310,266862708,-1156745989,-420995072,1684949260,7630437,1962607848,654359306,1410127080,-402627999,192215804,-399834949,1766198469,-402625428,259324669,-399507269,1851067573,1701080681,-150965138,537048838,-402295808,1987389581,33752224,-33549562,403061440,-1575652352,12255256,212658197,-1977545752,-1342130216,7333891,671371,141885195,2244155,175260788,788167,1049296897,1223164629,571378448,735195904,504198351,1359654919,2484311,510941535,792065,-401932101,-1041757086,203328288,-402280448,512426021,512294946,283705354,-1359807472,172102773,-134777390,537048838,-386960384,-378263555,1355006011,300417205,-989702144,-393606284]},{"sector":8,"length":512,"data":[367534256,1976434188,-75250695,1949347840,655407665,-1174399512,266863592,6601216,-1174402584,65536010,113152,-634666958,-1057094542,-637273877,809250820,-318110603,-838940812,-972303383,-16739834,973845480,-628424672,-1975258485,509495,-352014013,503760424,1397882880,-56825770,-967156898,-16769530,141917043,-402640992,-504689591,9578122,9569990,1019316736,-972786432,1019412487,-1978895102,-969277116,1157546867,1014164225,-1978501884,-969277116,126530420,1140654568,-352238338,1963146478,7071751,-1645479051,158678588,9578120,-349755416,1948400672,1948466188,1946237960,1963080708,4712454,-2130740503,302001982,1894365556,-1841397505,209059584,3139664,113703797,1476395154,1149948042,1912879617,-11409149,-2013182722,1124567575,-1963157016,-969277116,1021903731,24414975,-1962985751,-1073086140,1291720564,1065372417,-402427104,-1041760256,136316938,184528896,183026624,3270656,51709638,-396694784,-1511519408,1852392970,599392356,-18880253,-401915160,1699875476,1667329136,1769414757,-1174378380,-957807804,187295998,1326087144,1869182064,-1174375570,-1293417706,-1824617730,-385830143,-1226306938,-3872513,-956310808,-2147281658,-655883285,387901691,-1995786776,-956297186,6918,-485586176,952578,-720467200,34507010,51886848,-318099574,2129331061,126501776,343357756,275918892,179327128,1781495,-1547566246,1592459291,1008541416,-2147125929]}]],[[{"sector":1,"length":512,"data":[16979214,91575612,51711616,1968061444,353271813,1195115011,243272309,-2146958571,-553446106,91570748,51711616,1967930384,353271836,645931011,1375142677,51580555,3721,51449483,134793,1968389209,353271813,-838975485,1048806261,1996554267,453428998,-1962934016,-1610612194,279446293,512427124,-2136473600,682101876,512427125,512294928,988282896,-164990430,-2147281658,1676151924,352777728,41166851,251651307,41156635,-1957438229,-402649058,-396683614,1609111198,3336441,-166291992,-2147281658,116787060,1965556501,165603561,1393113576,1668440421,1953701992,1735289202,1953459744,1970234912,-385850258,378210596,-68681003,-484537591,167045378,619702355,116787828,1946288917,-1871713533,270437203,373352448,373090395,-166519832,33756422,-1930930059,476571657,1819305298,543515489,-835725016,2112041,-1190350104,-1360527356,-1155238620,-397344668,-497476018,251706353,-1190603288,-1763180540,-1156811484,-397344668,-497476042,-388895759,1592272016,464381961,108288316,1534348860,1508425451,-153884651,54857354,1398472885,52731985,-930430678,41111711,116837886,1963983637,270437124,1402886144,-1159199884,-1973855738,1958808261,54967046,-386514456,854071163,-402033372,645993480,-196583,51709686,1527018768,1539562119,-326412861,509040209,75416582,-66554171,520595187,1566137951,-1308620606,-1308431615,-571976961,141879316,-1000670325,-1945934538]},{"sector":2,"length":512,"data":[1959136192,210445885,1179007203,3288712,-1964506955,-1340705536,-964471295,-1947706620,529212928,1949615142,-338654692,80118552,1962962152,1459597320,-351998333,80118752,-806763541,7792887,-50071438,92992739,70919753,1048589428,1946157106,121251565,-92215179,-2029423615,8186078,-629804153,-317995778,-100464008,1925851983,-890551867,-1099773397,1207577409,-92225301,-402295807,-1233846186,-629814018,-1276584053,648276756,637695231,1461597439,-1006688536,41418534,641204006,637695231,350762239,-1031093249,-1259828328,1020365569,722435840,-812955654,47517227,-117632654,-100463125,48434827,57855787,-1007136959,1443256094,-521612921,-1010137090,-402454082,-1589442735,-1019543516,-1014300042,-1094515575,-336919797,-352121410,51363558,512483819,-571998174,-1962642681,-1996299490,-1107094754,-890765306,-183047937,-1593157911,295895074,310787,-1847005973,572427027,287213824,128903171,512427123,512295651,-303561965,308996340,-2129276183,268613430,169994496,-1961662488,-385677026,1575490526,186551059,332720387,-1961667608,-385676002,1239946186,253659923,331409667,-1961672728,-385674978,904401846,320768787,330098947,45549303,443809808,1124506856,512480139,300417028,512447232,166199302,-1019521024,-1007091086,-75381768,192348559,41343547,-397223285,-1017510243,1929364968,50063610,1509062,576514048,-1946157251,-352095016,1354993666,112322566,1049320199]},{"sector":3,"length":512,"data":[915079953,76153619,80107088,734956314,83592143,-2025782922,495577338,242416263,57985067,1577547081,-385578920,102692326,495511583,6503711,-873927299,1936278533,1969627243,-402625428,-605354556,-402639942,901511669,4161536,386320067,-639107072,-49887,24500363,-488090685,40888563,48434827,32883073,47779371,-2028041391,-622266112,-1956947965,-1962899690,-1983370294,721457166,486926538,488237212,-400395363,149422165,90236934,1869771333,1701978226,1852400737,1768300647,-402627220,1407780176,1958820853,-91516604,447743774,-234494980,1325495726,1138723663,51584649,512481927,512295047,512426769,-634716016,1441319819,12511475,-1946870295,-1962899690,721457182,-2016703526,1458174163,-1316861,-402393623,-1779953216,82503685,1852404304,1735289204,-1224280320,1946161154,319720204,287214339,1926839043,-719418616,-485586174,1003631106,-1975749671,-1023524089,645079100,222087934,154934900,548412533,-31767832,-1031122238,378142900,-218758397,1510014080,-806623115,686346802,-402099685,-1015799695,-1021282328,990053793,1912803590,320768780,1942174467,85887236,20834307,-1293408141,24963314,8855179,51451531,51453577,512350467,-746126573,44558584,51453579,-384724504,-389871673,-93126385,-386759448,512426318,512295047,-654114031,51584649,-401466904,-1528229916,283830279,-1961894936,-402643938,507184261,1550975761,51584571,1323849335]},{"sector":4,"length":512,"data":[503760626,512425984,-1779956975,51618048,2229817,1347955315,141869066,-972733208,183181319,9960321,-397736844,243336531,16777241,-1961845784,-402644450,-898431812,277801048,1967814,486983423,1072169216,316533245,1374208856,61663236,1330795077,1327512146,1864397941,1886593126,6644577,-972842007,-16769530,-2113938456,-50325210,258599167,1902278,572427009,281077760,-384655640,548467582,-11933360,-380632912,995295043,1946342686,-12088822,57936444,-1980699829,-402644450,-1749348557,203548672,130420085,-75414752,-244186737,-1996449861,1509958686,-1224280125,1962938370,-389810174,-1958542487,-402643946,-169343991,605981455,58976256,8855177,286690131,-633650685,51582603,-633665422,-1073085325,512429291,-634715375,8986249,-1017394293,-1962852120,-150959858,-2028565543,287214336,-1008185085,-389850640,116854684,1049271,250142068,287214577,49080323,2236041,2498187,51451531,1926904642,320244496,1943681795,572427016,639535360,320768768,286690051,1943677699,-880033023,1364448135,276359324,-396666467,512426201,512294946,512295697,837288723,99739918,2228997,2752550,131072,51577617,393220,51053321,51315469,1448170320,-1195654773,440591,-2127066322,1996590908,1913927942,1124335874,1592648259,-1017619623,-1464117158,964879,959941422,688420356,1929656596,-2096854782,-320732477,46735044,1962933123,-721016025]},{"sector":5,"length":512,"data":[-485586174,-720491774,1065559554,638940415,192284473,639052070,57870137,-2096658138,-437582653,-46742522,197233666,53376206,637719814,-108852085,-2094893825,359988985,75026955,225757243,158517307,-935605717,-21429389,210315007,-352074109,1405290454,-352095663,378245169,1380057827,735741778,1539541978,1926835024,8972547,-397225077,1499070519,-1991622309,1107485462,57985291,-370184216,55836482,378229721,1111622371,-634660217,1515965323,74762507,1257194984,-485062326,535380482,-652309505,-634696958,-205962638,1943612161,-2133261510,7742,-397201036,-1252326953,19720192,1314013527,977751625,568852512,18671861,1954112032,695412837,1717922848,-320339852,420380932,-1023409920,-385874968,1048637706,1962868766,-44046077,-990035991,-66930378,-1073042394,-389873291,887624691,-391371244,-24439761,-4603854,-1359807233,92939855,1952201807,1949252616,1946041092,1190628336,342354246,1659438878,22210580,704687592,1310730794,1917132911,1936879474,1970226720,-402627474,-1612119908,224061680,721482216,-1006447330,-2096969418,-847970306,-12811482,-2094610572,1576993916,-436269708,654301928,1962884227,637594548,503520395,-14286123,803734132,16181248,-1224280232,1962967042,4778003,1869771333,-402644878,-1561848822,2112019,-400796696,-437775169,420380947,-1023409920,5302355,-805202784,1342797032,1476473832,-143275778,50667145,1527723752,-401780247]},{"sector":6,"length":512,"data":[-2115502046,325576980,-384529688,-387443871,319875093,-385649944,1048578611,1979645982,322562322,1982080,-1828162560,-402485342,-1013770668,-719439029,-1979026942,1963801607,11987187,-719418429,1358555906,-1883351471,16365825,540847357,-12843404,154927732,1962734561,-561297919,-1017620130,1140841704,2365067,-1090488856,-745865065,-896805077,-5239581,-234414340,1241740718,512489451,-637337566,-484557885,1007448834,1124758797,171706250,977469813,-1595358272,386319881,12255232,-9639936,-401359896,12255460,-10426368,1007927273,1006990357,-1021676517,-385886232,707460914,1313415210,1381123412,1163153493,635961412,-282531329,41081403,1002689415,-2029882406,1464976339,48434827,-819201141,-661907338,-1325612914,1974399501,1006995981,1191277834,1610145675,1610203993,507233113,964035285,1023362954,1258386698,1023362954,1258779917,47521339,229644150,1962886968,507202313,-193527083,126486507,24447548,-719439037,-1962642686,-134032098,1405352387,1224839097,-242484853,1993026382,-49865202,28943603,1121159936,1543255528,-4631613,-1143763969,-634715761,-398324364,-1958020062,1138396107,-957589016,536973062,780845915,-118947437,-1090052599,855376358,-1949791260,26452208,-1073561346,-299112309,1364389419,-1979544415,855805710,-135623982,56252897,-1976695832,-27933950,-3544896,-402294711,65732707,1560342504,507412675,-445251840,190549,-1818180771,-390005247]},{"sector":7,"length":512,"data":[2018115495,-2133708181,197694,484981620,1007127049,1129935885,48438843,-1023520141,1640183,410320900,343214396,-1979665328,51808962,-20839933,-151849272,1490062050,50599482,24430706,419886923,1946158080,-152546527,2400765,41337659,-1992042357,1526730270,990430952,1929383454,12249467,378169579,-1259863292,990349832,1929569054,1947024473,540820309,154944371,548413557,43656842,1354956459,-1262319022,51808768,-2131560957,1482293500,786688736,1074055403,44318336,-2146667519,7742,-974650508,-2146768111,7742,-1444412556,1937783825,-1708750311,-1023497470,126524642,1962784488,507200267,-227147037,-437583125,-1341622207,-1708750304,-2136214782,7742,-829740172,-1962809666,-2012836099,-1908506622,57999106,-1161583117,-1951595558,-657396504,-319095950,-76293936,-486823019,15254509,236862216,-1967557632,-12827897,540813684,154937203,1074012532,44318336,-2146667519,7742,837288820,-2146768111,7742,367526772,-1341986031,-1708750304,-1092441342,-335577623,-402606092,-1749352329,420380928,-402652160,646053483,-327655,-1709885,-401890583,512428352,-1209466141,9943817,2367113,-401991703,-2126250843,1912705019,26131203,2367113,-972422167,5894,45561473,-960299007,5894,45561473,-960299006,5894,45561473,-2117926904,177974,914473732,134218423,322865859,303991296,-63903488,2236043,1929183208,148039877]},{"sector":8,"length":512,"data":[2236043,-386075672,-1175977979,1405351943,2236041,2033350,352765440,-672596224,352765449,-1017446400,2236043,1929180136,-1645718639,-806659320,990053793,1946342662,143583329,512477491,507183138,108266245,1107087336,512226539,-1801453534,973220865,-402426424,-1957430084,-402644450,-1628898124,-42342145,-393155749,922683480,512426018,-919403771,26480266,1843972606,-1661213956,-1644200728,1004434011,1929577758,-61151016,-1950100501,990053662,1946165790,568873973,-1041540344,-1962402840,855835934,-1810986295,48857089,-486788120,-391451653,-1801451516,-1966539263,-1949791512,-402455266,-838927332,512358773,512426757,233308194,-1979981060,-402644450,954730754,-706166006,26517511,-393557762,512477322,367526661,1976434428,85887481,572427011,-66656256,-806618142,50667147,47519371,57989691,-401997080,512427936,512295637,512294946,-1209531643,109242376,-1996449861,-385866722,-745863060,-840414646,990212859,-118262822,9943235,-402643805,611516392,2236041,-1157202200,-1111621481,161998884,922686067,113705099,616366219,-1895698968,-134182138,-393615165,1609060725,-1152814338,-2081947497,1259173096,-1879342781,-394562815,-193723593,2367113,-402126871,512485529,-1006764014,-402592792,233309700,572427015,-80812032,2236041,-402614341,283639969,420381182,-1023344640,-386023192,443869242,1258330043,605961027,-402164736,-193723669,-1662514965,-4986627]}]],[[{"sector":1,"length":512,"data":[-1360488981,-401020673,512431988,1038614562,616414975,1929971944,-401872888,-689372043,312525569,512446464,512294948,113639432,-402653154,512427676,-397213662,110100255,-1571291102,-1528299502,503760389,512491264,378208292,-634716152,-746076298,-83629998,1512048582,-193606914,-402233368,243336575,16777241,-1979909399,-402643938,2011694908,88271111,-1947744024,-402648546,512360476,-1006764014,-1947664590,572427257,-94705664,-2114237720,6414,-397163775,-1142421980,780537,-110303141,-401753112,1405292311,-83463,1542953192,168626119,512475971,-2125791196,1912641531,-12615436,512357492,-706150364,605981446,-75414784,-294518385,98494659,2760331,-1980155416,-1962925538,-385864674,1810431857,4188160,2367115,1913129192,-75414777,-193855089,2367113,-386796568,183042085,572427250,-101521408,-397197966,-1990523492,-973069794,7942,-402213400,48759936,-1961038855,1258300446,9960321,-1024928910,1274311175,9960321,-1226308238,1140093703,2367113,-1157215255,-185925481,-1946626840,605981635,-1329382656,-33393920,9282240,-75414709,829555087,2236043,1928946664,87484495,2236043,-1980147736,-973069794,7942,-402241048,-1749351404,605980928,123725824,-102118798,123201541,-2126265485,1912705019,-1925283827,-1133182976,1140356328,1055428331,-337153529,572427143,-113580032,-429659965,1961244904,-402018298,-389814156,-328007705,1342182048]},{"sector":2,"length":512,"data":[2367115,532105,1967814,79882240,2236043,-46733229,2236041,-16527640,-956265674,-1124037882,-11999196,9111183,2229903,1221208,-972836120,-16769530,1977997032,-81139453,2367115,530059,-1804150229,-397225081,130480393,-889300448,1843983477,59107332,-386201879,-1958479907,605981643,1993026304,-439097331,-117315503,-386276775,-389871951,-1749293627,605980928,86435840,-385887000,512427064,1397948450,1526224872,-634713998,1968950155,-379862238,770179860,572427012,-130095104,99156851,28920579,1007127040,1258452234,-390067647,-1578568307,215476235,-402549600,-437714478,1007127042,1007055904,1006793737,1592312831,-145233691,2365067,-746071493,-521620366,-401574657,57869845,-402588183,183040115,-369593594,512426229,99090466,-385649672,65536229,-92542725,585680107,-149165851,512476043,-667221980,-1041648525,-451942400,2367115,1977940200,10152195,9960321,-1847000203,-1998040320,-401902081,-1014237459,-667200677,-2125788046,1912641531,-9312248,-346295180,512318321,113639432,-402653154,312476496,922701824,512426018,-857210846,-1962052869,-1962925026,989857814,-118787110,2229903,1221208,1088986195,503760386,512491264,1486684168,1263545458,9960321,-1125644942,1509223415,9955713,1363348451,1509396712,-501217338,512312309,243335204,16777241,-2125784085,1929418747,-14227197,1979662208,-141957115,512355563,-2132279260]},{"sector":3,"length":512,"data":[62318839,-1023069976,1408726760,-1946796824,-667198525,-924259469,-387549698,-152307869,-385875272,28894534,-448730880,-385875016,-1259805382,2353401,45549303,91488288,1964091624,3598341,-1662390669,-107353863,-402650904,-76349400,-1963356439,838868238,85887981,125061379,1928761320,-1007033853,48438923,-159192893,512427123,497025763,-1811531264,-30968063,973085958,1946161670,42967780,48438843,1357383027,-2134640393,7742,-840432780,-151590903,-1007041544,-389510576,-346488919,1364414680,-1006217386,-1945961162,1959136192,119408203,116853424,262169,512427124,-1946353630,734759931,1090704654,1202647631,-1957168057,-485585925,-473224446,1336865283,-1960442023,-49916,-29552012,990409983,990147265,-2096598329,-420805690,638577656,-1576909686,-1866792284,-1700604158,1594358018,1482381662,-7739197,-138215053,268613382,-2146732800,7742,837288820,-145702135,67115270,991458560,1912803614,320748352,-2143653117,7742,1172833140,-1590105335,-1891827708,-1591970303,104529954,494011153,1023411873,292946319,989864609,1996690182,1003547404,-351898920,1926773735,507412678,57933824,1476974568,507412675,292814848,-1974119856,-390005051,-397806089,1516107574,29082456,-194713600,-385305624,-140768791,33560838,1343255808,-397258413,57868311,1526175464,-1655153831,-496244541,1929381608,-142219261,646010307,-16842727,1642113,113704962,142]},{"sector":4,"length":512,"data":[-1560079967,329318404,434947,2242187,-88681934,503355327,-1229063161,440591,-1959901883,926613598,108394208,48447369,1017966315,1010398221,-1341819393,-502273921,-3998038,-33518074,1011971278,-1966377719,51284674,-20905469,-167725880,717881073,-1330154292,-1023497473,812961534,-1427376158,-919396176,-1426862454,2367115,-2147402776,7998,2033350,-1609665025,-922877923,1181242,1576534898,-68421181,-386659352,1766650726,1948280174,1814065007,543649391,1380130861,1936615712,1702130277,1307050084,26196979,-386682648,552139253,39971071,-689387541,-210507549,419886915,1962934784,-1830239487,244011763,-903151474,2236043,1793590243,421954033,1509948672,1049303267,-1749155806,-66642432,1962884268,1964653819,-1440698366,854127330,-745847821,263765333,771753657,-1962903925,-1879342820,990869249,-1962772774,-397258278,1499132733,1162157193,-1587682846,295895044,434435,-1023208541,-8460205,48438923,-1158489624,-754777863,378209395,-396688679,378270594,-2098724139,-1075293197,572426738,-886351616,7923793,1509835752,-486500421,1124567561,-109772996,512358370,585826340,1357132432,-13440941,-225384357,2236041,-1748795045,605980928,452608,-385859096,-1749352948,-1827763712,-1965413631,67513027,975073795,706114241,46202561,-1576860666,-1818230012,-1563886079,-1528233965,1286901,67502787,50635267,1246918,-174987008,1982080,-1947634688]},{"sector":5,"length":512,"data":[-1593637602,-1019542827,94569846,-1176990973,507052033,57999394,1996531433,572406594,-402229760,-347999492,85887476,302433795,113639680,872349727,26517696,477282619,49906505,29038199,-237443072,103213137,-502824216,-108832264,-1023314175,989909737,1929388574,-225253368,-348038286,1978469106,-1810462123,717326849,-17790270,-29199674,-2146798130,-16771778,1693123445,-2134442352,846660350,779338282,704650656,-1574471994,512426013,-292945147,-229709742,-49616813,1976434267,85887476,-889300477,1185416,302942403,512475904,-1605827835,36438420,-1047867254,-930430422,-838991245,-487449624,85887483,4843523,2033350,-16193025,-1593849880,-922877923,104467828,125043092,57985278,-1962926686,-402455266,512356844,-1511521531,26517756,-1946446359,-1979675850,76164647,141836604,57984058,-101520570,486983363,1405288704,-2130667589,1946259451,-12615668,954729589,-347911182,9944046,1065353649,-1976666871,51808961,-20839933,-167725880,-20804878,180628168,1343648960,-235935663,-968664999,-1040253177,1945827712,1976106508,1136787178,1929050496,-195434299,704746400,-1962929402,-2130697186,67115278,-231282688,1648257,-1017380869,218169644,38469634,150784,1946157683,38273026,-16691200,196353,1358955081,38207490,151296,1962934903,42205186,-16681472,-16646399,-16646399,-16646399,-16646399,-16646399,22151170,33489407,50266623]},{"sector":6,"length":512,"pattern":0,"data":[134304512,-16646399,-16646399,-16646399,-16646399,-16646399,-16646399,-16646399,197328641,-1023475439,297928977,33489172,33489407,33489407,33489407,33489407,33489407,33489407,33489407,33489407,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19660800,331419073,29426881,96536257,398530753,314645185,297927617,68272659,-1039855166,297932817,51495442,-4063295,-1055452734,34718463,-1039461950,297930769,823247408,-1036906046,381760273,432082625,-1055321662,-1056456428,34325119,-1039463486,197268491,806076936,-1036973118,197276171,51102259,-1038742590,197269771,386646546,197328833,67879440,264374721,336577033,-4063295,-4063295,-1039396414,297928209,-1056128767,319537680,-1038413374,12721425,252691038,-1039790142,197268751,353092105]},{"sector":7,"length":512,"data":[0,0,417208221,425400565,372775300,373822980,386537095,363402971,380835251,389027524,76354975,296223885,195036301,419498922,193071992,194382732,412358087,444275351,456792830,188947277,420875046,184814447,186387223,231934753,256052624,200019049,220136589,435749241,366941651,76350605,76350605,123346417,129894318,472908401,167709179,473701430,368186859,246156966,1529626172,724184669,1027223341,2105223464,660349790,167714875,1094795585,1094795585,1701013836,1684370286,1952533792,1634300517,1344286316,1919381362,1344302433,1701867378,544830578,1109419631,1095520847,-953269170,-821912314,-1626945754,-953748478,654483718,-1559837145,2124480258,2133232131,16854275,-1610441821,646579068,-1767701635,50128898,1918975171,2004499462,-1021301758,771770600,1701990432,1008759667,1044599621,1501184,-109765828,1364414659,-11118766,1577229590,1532582495,1364443992,-11118766,1577230102,1532582495,1364414659,1347835730,44111615,1499094878,1438865499,1585966219,777034754,172165002,-402295616,-202637349,1476550279,1438866845,1585966219,781996034,172165002,1008039104,-402295936,132841700,604033000,-387419009,-471072849,1585928349,1354980610,623491923,1397753323,-64625733,-1073042394,-738261132,-335573272,-1017619470,-388877486,-1017511934,-1090103466,119407269,-1962929688,-2955017,-1017225465,-388877486,-1017511934,1381061456,102651734]},{"sector":8,"length":512,"data":[-661971186,-919339951,-1272550722,-20958713,454831040,-143457708,1410538499,80118530,74828030,74762507,1101672452,-579482370,74828043,1101672624,1487585331,-1054138618,1329663862,-133957749,-1952123907,-215961400,1595869098,1532582494,1111540568,-2036334577,655360001,65536000,6553600,655360,65536,1048576000,1946157732,-1543059960,1692991490,1048625921,1946223268,-1543059720,1273561346,-1539407871,-378273022,44304070,-1818210301,43688450,1048626008,1946288804,-1543059756,-1605369342,-1700658542,-2134681598,-16604354,410386352,119408158,60038798,-1054933210,1025443586,11599871,-922877324,-1023409883,1962825448,44278011,44238534,1979661567,503717407,-1809936889,520037891,520553157,209043466,44246664,-469106512,61866613,1489232946,1381322842,1476449256,108334396,43390602,171729131,-956429707,43791930,1038832758,175441980,43390522,-889304972,121390315,246679669,281935666,-1269678357,-1174457847,512360449,281871002,985857626,1979882262,-1776907743,986119682,1979882550,1389297173,-1979317832,-1962763714,-1962764786,-855467242,45373968,281935666,-661929123,24464195,57581763,-1073486798,-1073496061,-725601712,1967675402,1407642615,-397061551,112459836,1049231792,-292945254,43388554,43718283,41283130,281919538,1532582493,1381061571,1501269,-655685708,43098192,1476565666,-1868541757,43688450,62178136,281935666,1381061571,-858027]}]],[[{"sector":1,"length":512,"data":[-1979318088,-1962763714,-1693021494,1561382146,-1017423526,58761301,74841916,281874356,43386566,-1761163776,121372674,11751351,1946387134,59686432,376701500,41026620,-5045328,225706812,20719543,-1070463116,-2000813901,43557379,43589256,43728520,-1868364661,38046466,-1962765661,-1801255868,-854608894,-1744422384,-1610124286,-466484584,-379776819,1397817187,-729131694,369356934,45351574,281935666,1482381917,-1974316861,-855264048,-1017619935,134005992,1397801728,1465274961,1030406,1558710155,989626620,1128465525,431229163,1090789837,-1993983308,172443397,-2144045587,796154943,1949253504,96871978,1202997084,-360656758,519539520,567090950,638874143,1946172800,1031808526,1191408640,-970524693,-1975034875,-66459641,410132540,1459620537,103368895,-218364146,1952384942,-2010758393,-538228987,378406,1516134151,-1017619623,992750370,1530805564,-1910604707,-10032934,-1023314657,-1006238178,520320822,321692,-1021376611,116064690,48956082,-919350734,-1073085046,-2142824332,-193723654,41233980,1547489163,792462452,-919345547,-921967893,-771094668,-108327307,76162639,1195771272,-176832502,-1707100989,259588098,-1707035453,259588098,99287666,-117439768,1052004547,-1017634355,-851332016,163797025,151587081,151587081,151587081,151587081,151587081,151587081,151587081,-2012673783,134744072,134744072,134744072,1191708680,1195853639,1195853639,134744135]},{"sector":2,"length":512,"data":[134744072,858927408,808595760,875704880,825242933,858928688,842019120,134754864,134744072,319951120,269619472,336728592,286266645,319952400,303042832,134746640,151521288,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,151587081,101255433,1448235344,119428439,-1962728258,-167768002,268637446,378212212,-1119223806,995098623,-351438854,1477457,113920,1182005819,-466965252,1172555915,613076483,1946287232,839223824,1960814788,1006437128,-336431622,116807461,1967129365,352777740,175440899,-352289816,13690888,-1595407381,1596421120,-96731901,-1946565003,-352317410,352777817,125075459,54869632,17069312,-1962930130,-134213602,116801771,1950417685,4078375,-1977519360,788474397,701728758,1539339600,507202387,208797698,-14016630,-746064338,-1418375127,1050255,116842379,1947206421,270437124,1599993856,1482250846,1364247303,-836020654,-685043340,192399931,1957098492,-8617978,1593209857,-1017620134,788487562,701728758,973304848,17613760,1448300739,1006578428,991786225,-1407748870,1946238023,-12242190,-542577292,1569327733,-3348225,17621364,-1017619618,1431720784]},{"sector":3,"length":512,"data":[-247726294,-96771980,-1392747916,1946238023,-12242418,-542635660,-1545057163,-1153075713,-359978541,1001128118,772569073,1947149527,1959148277,1003522801,-1977649923,-684833019,-210497756,-277559750,326627643,33520768,-1036385164,-259387275,-247739157,1330054774,49004603,-712310516,1482382941,606741699,36316202,1157694731,1330923844,82,1429012666,1465314443,-975664098,76416630,-1912173522,44941100,100727784,60072735,84084641,614662295,47554816,-1962871576,-11204026,-1588568622,-654900523,-1593776920,-1758658524,50832128,-1106870588,-974650707,1595889664,-1161077410,-1477759672,-349351238,760658594,1840946667,-1164383443,-1813303921,918882078,1153893083,-1943946232,1807682124,1095939,648344572,57620165,-1190954049,-1527578599,113712902,60162773,47652492,48826055,512491566,-1348402453,-643610622,-139204606,-1009550872,48694983,-270008320,1508426707,119456724,57620165,-1190954049,-201588711,-400619868,-1326843206,516983763,-717321465,209584898,48434827,179359531,74730236,-109793550,103532427,-1950154027,-717356040,-1962467838,856338632,-230490670,-1946454866,1448199106,12499287,1604645884,29579614,16966406,16978182,16978694,16963846,16975110,16966918,16976134,16976646,16977158,-1006432506,-1945961162,1960709059,478881301,1962933123,-17071347,19268468,63341316,-2084312085,223550,1223164789,1048822775,1962935145,-145823739]},{"sector":4,"length":512,"data":[106374123,45956804,-16414170,1946380558,1360942610,57216651,-141877498,-1527514042,123608921,505332575,-1809936889,-14266365,-1912419042,1492159426,505332511,-1809936889,520037891,-1021377811,-1912136162,637768734,49356543,1448461087,-1909580201,-13857250,1583292370,-1957313699,105286636,24951389,-1957305109,1465261804,-1962508604,1451952734,512634380,-1175966578,526278650,52061,1869505089,1818324338,1869770784,1835102823,1919251488,1634625901,1852795252,2573,0,0,0,0,38816,0,0,1968439296,544170610,1668505936,1126198369,1768320623,1634891111,1852795252,1818838560,1712229,6423040,73865,496968124,451674114,204937,545856312,722075652,336009,545859840,18087942,467081,545849622,18350088,598153,545856678,18874378,729225,545857836,724369420,860297,545860432,692453390,991369,545859980,445448208,1122441,545856422,0,218169344,436279058,1920291840,1344302946,1633907553,1766858860,1277193059,544502633,1701603654,436214304,606741504,36316202,1225065732,536888644,1936876886,544108393,3485237,16711696,2,1572889,131073,142219,730791938,131075,274257,793968642,131077,405333,794624002,131079,536415,794886146,131081,667479,795148290,131083,799659,1024196609,131085,929505]},{"sector":5,"length":512,"pattern":0,"data":[786628612,262159,1060583,1024262145,65554,1252152,730660866,131092,1376540,18481154,131094,1518483,1024327681,131096,1650535,795017218,131098,1781595,1024393217,131100,19672921,747831364,8388909,19803351,760676480,8388911,19934679,820510848,524593,20066027,787677192,524595,20197115,1017905232,8388917,20328369,736886788,5243191,20454970,743374916,196607,65783,1611727586,1179650,204426,1601699993,3538948,6561436,457900044,65637,6691671,458817568,2097255,6822778,1562837072,196607,247,0,858927408,926299444,1111570744,1178944579,0,120466741,1465320027,770]},{"sector":6,"length":512,"pattern":0,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,545850488]},{"sector":7,"length":512,"pattern":0,"data":[]},{"sector":8,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,166723584,172493303,177146532,185993998,68382,131088,262159,524302,1048589,2097164,4194315,8388618,16777225,33554440,67108871,134217734,268435461,536870916,1073741827,-2147483646,1,226692420,227020150,217320840]}]],[[{"sector":1,"length":512,"data":[216993038,16518332,15990920,9175293,16646388,15990918,12845310,16646388,15990916,13631740,12845300,15990784,6422783,16253172,15991000,9240831,956236020,16003327,9386239,821952756,15991038,553001214,821952756,15995126,285159679,822052084,-2097929985,8388860,12976360,15728644,11010302,16253168,65680,2556135,16711681,65751,13107455,16711684,65737,885914879,-50395676,98842829,1020133375,-64036,84032973,13435135,16712962,65740,13500671,16711681,65691,15401215,15729406,66977904,14680316,16712702,50069737,15204607,16712956,49938666,10092799,15140090,38,15859966,16187392,16842947,12714231,16711939,16842959,181731326,16646146,14811244,7209214,16646368,14549158,10748158,16646366,14680236,11403518,16646370,14811306,101711871,-956366846,98319,6291710,16646145,65788,15991038,16646145,65688,15466748,16515073,131300,16253180,16515073,65692,5243120,15728641,65600,10486012,15073498,65542,12583166,956170482,15335622,16136446,16580842,15073385,-1357905921,16580836,15597672,11534576,16711916,240,14156024,244,65536,0,0,539885568,1701990432,-14650509,1129530627,3015935,1126178862,1769238127,1063613806,67053600]},{"sector":2,"length":512,"data":[788856665,-11664385,452995332,458119424,538979840,-11402241,1920230660,1919885433,1090780960,1868694783,4158578,1786194,1713401678,543517801,1701667182,1850277934,1768710518,1919164516,543520361,1679848047,1667592809,2037542772,1818838528,1919098981,1769234789,1696624239,1919906418,1818838528,1920409701,543519849,1869771365,1766195314,1663067500,1702063980,1920099616,1174434415,543517801,1914729321,543449445,2037149295,1381323776,1210994498,1409306700,1329746517,1396789280,541868355,1347175752,1279870496,1107308101,1212227705,1196433452,1464672300,1111695404,1245978668,1263542316,1851858988,1464279140,538451968,1635151433,543451500,1634038338,1768910955,2126958,1224998688,1852245247,744845935,1157889824,1634862335,539780467,-12385281,1634036740,1818304626,1633820780,-14668700,83841795,544237931,543976545,778330466,1162037504,1224743763,1919251310,1851859060,2036430713,1869566976,1851878688,1919033465,1886085477,1953393007,538968179,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,538976288,1124081696,1948741217,1852401184,1768300644,2123116,661545283,1667309684,1936942435,1867382816,1852121204,1751610735,1835363616,7959151,1095651150,1345209677,536892225,1735357008,544039282,1836213620,1952542313]},{"sector":3,"length":512,"data":[738223205,1852402720,1869881445,1868767343,1701605485,1428160632,544367987,1634038370,539754603,1735357040,544039282,1836213620,1952542313,536896613,2125417,1851867936,1713402919,543452777,1920298867,1713399139,744844393,1953391904,1847620197,1847621477,543518049,544165376,1969382756,1852383335,1629515622,1919950964,1634887535,1953701997,745828961,1853182496,2037276960,7954807,1679847246,1735746149,1718511904,1377840239,1629515381,1635219822,1867382905,1685021472,1701257317,1634887022,543450484,544370534,1936287860,1852402720,1917845605,1634887535,1868832877,1847620453,1663071343,1635020399,1713401449,543517801,1297040128,1128616019,1397703680,1920099616,1864397423,2019893358,1953850213,1124085349,1948741217,1853190688,1965056288,7629166,544173908,2037277037,1818846752,1835101797,1124103013,1948741217,1852401184,1480925284,1768300613,1124099436,1948741217,1634692128,1480925284,1768300613,1375757676,1140869376,1442858496,1275085312,1325420032,1291863296,536887552,1869903169,1769300512,1763730540,1919950958,1701996399,757101427,1124335392,762081908,537198403,-14650769,1920221955,1916939628,-9739931,1869881348,1769497888,1310720116,1310750565,543518049,1850023936,544367988,1701603654,1835093536,536879205,544695630,1701996868,1919906915,1342185593,543716449,544501614,1853189990,1126170724,1634561391,1277191278,543518313,1634885968,1702126957,2126706]},{"sector":4,"length":512,"data":[1852785440,543648102,1701603654,1226833952,1970037614,1142973796,1667592809,1769107316,2126693,1667846176,1766203499,1310745964,543518049,1682251776,1919906921,1650545696,2053722912,536879205,1835627088,544830049,1701603654,1110310944,1392528193,1668445551,1869422693,1768319332,539780197,1969382770,6581353,1651341651,1847618671,1713402991,1684960623,1698963456,1701734758,2035490916,1819239021,536879219,1702129221,1919950962,1684366191,543519349,1701667182,1394606112,1801675124,2053731104,1852383333,1954103840,2126693,1852394784,1836412265,1634027552,1767055472,1763730810,2034376814,544433524,1632444416,1970104696,1699225709,1394634849,543521385,1109421673,1936028793,1159725088,1969448312,1818386804,1766072421,1952671090,544830063,1649352704,1952671082,1919501344,1869898597,1936025970,1428160544,544500078,1701996868,1919906915,544433513,1968447488,544170610,1668505936,1142975585,1667592809,2037542772,1917124640,544370546,2125417,1969365036,1969430644,1852142194,1684349044,1713402985,543517801,544501614,1702257011,538979940,1702256979,1917132800,544370546,1919181889,544437093,1918981120,544499047,1919181921,544437093,544501614,1853189990,1411383396,1701278305,1684086900,1936028260,1868963955,6581877,1869771333,1409294450,543518841,1414092869,544175136,1970562418,1948282482,1968447599,544170610,1668505936,774794337,1850277934,1953654131,1936286752]},{"sector":5,"length":512,"data":[1953785195,1852383333,1769104416,2123126,1802725700,544434464,1953067639,1919954277,1667593327,543450484,1679847017,1702259058,1426079776,1869507438,1965059703,544500078,1679847023,1702259058,1140867104,543912809,1847620457,1914729583,2036621669,544106784,1986622052,4202597,1953067587,1818321769,1936286752,1919230059,544370546,1679847023,1702259058,1140867104,543257697,1702129257,1953067623,1919230073,544370546,1679847023,1702259058,1392525344,543909221,1869771365,1852776562,1769104416,1075864950,1802392832,1853321070,1684368672,1948279145,543518841,1679847017,1702259058,1392525344,1869898597,1869488242,1868963956,543452789,1679847023,1702259058,1342193696,1953393010,1864397413,1864397941,1634738278,7497072,1953067607,1634082917,544500853,1679847023,1702259058,1375748128,543449445,1819631974,1852776564,1769104416,1075864950,1918978048,1918990180,1634082917,1920298089,1852776549,1769104416,1075864950,1684095488,1835363616,544830063,1734438249,1718558821,1413563936,1952801824,1702126437,1917124708,544370546,1701012321,1852404595,539238503,1769366884,973104483,1684955424,1701998624,-14650509,1953383683,83849829,1701345056,1701978222,779707489,1633099776,543712116,1968119808,1953853556,1159725088,544500068,1699225600,2125932,1919243808,544826985,1917132800,544370546,1917001728,1667855465,1159752801,1919906418,1126170656,1768975727,1735289196,1226833952]},{"sector":6,"length":512,"data":[1919903342,1769234797,2125423,1818313504,1951604844,543908705,1701729536,1667592312,543450484,543452773,1713399407,543517801,2125423,1635151433,543451500,1718513507,1920296809,1869182049,1768300654,540697964,1851867904,1663071271,1952540018,1124081765,1948741217,1769109280,1948280180,536879215,1397768515,1310720032,2116949,1380143904,541871183,1986939136,1684630625,1818585120,1768300656,2123116,1868787273,1667592818,1702240372,1869181810,1718558830,1818585120,1768300656,2123116,1884645200,1147621423,1733296238,1409314901,1830842223,544829025,1701603686,1310720115,1830844261,543912801,1984241664,1635085409,2123124,2003127840,1818326560,2123125,1936020000,544500853,1851867904,1646294055,1869422693,1768319332,1107321957,1981834337,1702194273,1277173806,1818322789,1851879968,2123111,1919252047,1953067639,1107304549,1981834337,1702194273,1277173806,1818322789,1919903264,544498029,2021160994,2037987960,2259321,1869771333,1634934898,1735289206,1667854368,1768693867,1157657715,1919906418,1986097952,543649385,1718513507,1920296809,1869182049,1377828974,1835101797,1330520165,1162690894,1277165600,543449455,1701603654,1835093536,1224745061,1919251566,543973742,1869771333,539828338,1634036816,1914725747,1919905893,1869881460,1919894048,1684955500,1769497856,1919230068,544370546,738205757,1852405536,1869771365,540876914,1920291840,1344302946,1633907553]},{"sector":7,"length":512,"pattern":538976288,"data":[1866661996,1769109872,544499815,539583272,859322673,959520812,1646278968,1866596473,1851878514,1850286180,1852990836,1869182049,745300334,1668172064,1816723502,1634166124,1768300652,1847616876,979725665,1699872800,1696621665,1919906418,1869881344,1634476143,778397554,1918115872,1633906293,1426089332,1818386798,1869881445,1701867296,536879214,1684104530,1869365792,1176529763,544042866,1701603654,1461714976,1702127986,1869365792,1411410787,1766203503,2123116,1111565358,1178944579,1246316615,1313688651,1381060687,1448432723,1515804759,858927408,926299444,6240568,544501582,1970237029,1914726503,544042863,1763733364,1919251310,1702109300,1308652664,1696625775,1735749486,1869750376,1948282223,1684086895,1635197028,6841204,1684291872,1952536352,2123875,1768178976,1633099892,543712116,538987264,1229210880,542265172,536879130,538976288,538976288,1950556192,1110273138,1801545074,544175136,1953068401,538976288,538976288,538976288,1767984384,1768300654,3827052,1886220099,1852402793,1409301095,1818326127,538976288,1701603654,1852394496,1663071077,1768975727,979658092,538980384,538976288,3153952,1767994945,1818386796,1701650533,2037542765,536879162,1344282656,1936942450,2037276960,2036689696,2105376,538976288,538976288,538976288,538976288,538976288,538976288,1936028240,1851859059,1701519481,538976377]},{"sector":8,"length":512,"data":[538976288,1967325216,1852142194,1768169588,1952671090,544830063,1124081722,1701999221,1713402990,543517801,538976288,2112032,1701603654,2053731104,538976357,538976288,540680224,1397572864,1634956576,538994023,538976288,975183904,673185824,980967757,1766588448,544433518,1886220131,1684368489,536879162,1886220099,1852402793,1869881447,1936278560,536879211,1886220099,1852402793,1869881447,1835355424,544830063,1394614272,1701012341,538997619,538976288,975183904,1126178816,762081908,1634038338,538976363,975183904,1685013248,1763704933,1869488243,1986076788,1634494817,778398818,1852776448,1936286752,1763704939,1701650542,2037542765,1936269312,1634038304,1948285284,1970413679,536882798,1914729321,1768844917,3041134,1935763488,1836016416,1952803952,1914725477,1768844917,3041134,1954112032,1124103013,543515759,1702521203,538976288,538976288,538976288,538976288,538976288,538976288,1952531456,1769152609,538994042,538976288,538976288,538976288,538976288,538976288,1392517152,1801675124,2053731104,538976357,538976288,538976288,538976288,538976288,538976288,1852394752,1836412265,1634035744,1769152624,538994042,538976288,538976288,538976288,1291853856,1835628641,1746955637,544235877,1702521203,538976288,538976288,538976288,538976288,1853182464,1835627565,1919230053,544370546,1701080931,1342185504,1919381362,1696623969,544500088,1701080931]}]],[[{"sector":1,"length":512,"pattern":0,"data":[538976288,1381323776,1412321090,19536,0,0,-641679398,-1262242876,-641678654,-1262242876,-641678653,-1262242876,-641682238,-1262242876,-1127695415,-1177765171,-641682237,-1262242876,774766850,-65490,340852737,0,0,0,5224,0,0,341573632,0,0,0,3026478,707657770,65536,-15118336,255,0,0,0,0,-167419648,2132249,-1610612736,673220891,2069715753,574504061,673654562,19474986,-1994776831,-1994776544,553713952,572557594,18909466,-1994775807,-1994775520,620822816,639666458,18909466,-1994774784,-1994774496,687866144,706775322,35686682,-1994773760,-1994773216,32,0,0,16777216,-256,255,16776704,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16777216,5199,445582339,450830473,1095442569,1097859072,444923904,1099767945,0,0,0,545856015,545856678,-65536,0,1117388800,1125253120,0,0,0,0,8]},{"sector":2,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,439287808,8329,1396789294,65536,1296367616,1482184781,12376,1330511873,1162690894,-65536,0,0,707002368,639642148,606479910,-201317334,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16776960,256,825229312,892613426,959985462,1145258561,973096517,0,1431568394,776946258,20564,293666815,297472419,301404632,303501784,306909741,310121063,313070227,314905048,453841638,131072,-16776449,37486594,196352,1073742399,37552130,142592,1124074093,40894466,148480,771752467,35717122,137216,1560281706,40632322,139264,1107296833,39911426,156928,805306942,40108034,157184,1610613343,16646146,131063,196596,-196616,-131083,-983068,-524303,-2031649,-1966115,-65546,-1900561,-1245203,-1441814,-1835029,-1114136,-1638425,1208025052,1280,402739200,1258291456,33559298,67325184,852736,83892996,17385216,1325402368,167773706,302729472]},{"sector":3,"length":512,"data":[1358957312,201327372,885760,527990,106037256,117920512,1640192,486542876,1190400,939528989,256180244,1132032,593978,554631200,1441791,-2080369033,393543702,1537536,1023475293,-197394187,16531456,1057023085,-264044296,15822848,1778448196,-295304970,15416832,1610671967,-362741530,15548672,1677782082,-379256600,16464640,1812003432,-585039633,14553600,771809043,-518520608,14888960,788587040,521601054,16592128,56574,1917695,0,0,65535,0,0,0,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,131073,262147,393221,524295,-65536,65535,-1,-65536,65535,-1,-65536,65535,-1,-65536,65535,-1,-65536,757137407,1869357101,1713398881,543517801,2108717,0,0,0,0,0,0,0,0,757932032,1634692128,1768300644,757097836,8237,0,0,0,0,0,0,0,0,539831584,1684107116,1818846752,757932133,32,0,0,0,0,0,0,0,536870912,1814048045]},{"sector":4,"length":512,"data":[543449455,1701603686,539831584,0,0,0,0,0,0,0,0,757071872,1869357101,1713398881,543517801,2108717,0,0,0,0,0,0,0,0,757932032,1634692128,1768300644,757097836,8237,0,0,0,0,0,0,0,0,539831584,1684107116,1818846752,757932133,32,0,0,0,0,0,0,0,536870912,1814048045,543449455,1701603686,539831584,0,0,0,0,0,0,0,0,757071872,1869357101,1713398881,543517801,2108717,0,0,0,0,0,0,0,0,757932032,1634692128,1768300644,757097836,-771743699,941557022,-1642108129,69194015,1780496160,1409286176,1329746517,1262702638,707657728,1347694080,1381323776,1412321090,1431568464,776946258,4932432,2097169,2949136,742064128,1044130621,1566253692,1056973312,6029354,116,1024,1040,1125,1159,1192,0,0,0,0,1,1672806400,65536,65536,2112000,2097159,45,720896,0,131073,0,131072,1310740,131091,1179666,131073,327685]},{"sector":5,"length":512,"data":[393217,458759,393223,524296,393224,589833,589833,655370,655370,720907,720907,786444,786444,851981,851981,917518,917518,983055,983055,1048592,1048592,1114129,1114129,1376277,393217,1441814,1441814,1507351,1507351,1572888,1572888,1638425,1638425,1703962,1703962,1769499,1769499,1835036,1835036,1900573,1900573,581902928,591930107,599663460,606348302,591930417,613688356,581837998,618734793,622535938,631579965,643180008,646456149,658974431,669984666,681912415,1174667040,755302193,1886152008,67051552,83834182,1869568557,-14671763,-13220349,2001939716,1751348329,67051552,83834694,1634882605,538994019,944112639,1395459327,544236916,1174667040,755302201,1701536077,67051552,-13618874,1699556612,536900974,1398670335,1278018815,544499301,1577320224,755302212,1751607634,-14671756,-12231165,1884630276,67051552,83843166,2003780653,-14671762,-12493309,1867001092,538994029,1180566527,1160578303,536896622,980708417,1174667040,755302193,1953718604,1818585120,-14671760,-13416957,1766862084,538995555,910558207,1395459327,544235895,1174667040,755302201,1886220099,543517801,1476656928,1160578303,7629176,1174667040,755302193,1886152008,67051552,-10259643,1648438532,7631471,1577320224,755302227,1952867660]},{"sector":6,"length":512,"data":[67051552,83838046,1734955565,538997864,1197343743,1143801087,538995813,1214120959,1110246655,1936417633,1701011824,67051552,83843422,1818575917,1852402720,-14671771,-11379197,1699884292,1919906931,-14679963,-13548029,1699228932,538996844,877003775,1311573247,1830844261,543912801,402915104,-15001063,1749232900,1702063983,-14671840,-641451005,1395459327,1667591269,-14671756,1668498691,1093469439,1953656674,-14680032,1953251587,-13547987,1632382212,1746957427,7367781,1174667040,755302193,1886152008,67051520,83833158,1818576941,1852383344,544761188,402915104,-15066343,1766862084,1948281699,1667854447,67051552,-2505668,1866935556,544175136,1768976244,-14671773,1668498691,1160578303,544500088,1886152008,67051552,755302211,544503107,1632641062,6648947,1986089760,543649385,1953064005,1176531567,543517801,539893806,1277165614,1768186223,1159751534,1869900132,1766203506,773875052,773860896,1632837632,1735289206,1667846176,1766203499,773875052,773860896,1632837632,1735289206,1852785440,1969711462,1769234802,1176530543,543517801,539893806,1277165614,1768186223,1344300910,543908713,1701603654,773860896,536882720,1684107084,543649385,1718513475,1920296809,1869182049,1766203502,773875052,773860896,67051520,83833158,1818576941,-14671760,-13285885,1868180740,538996079,910558207,1395459327,1668573559,-14671768,808535555,1294796031]},{"sector":7,"length":512,"data":[544566885,1224998688,83850094,1684291885,67051552,-9673404,1698966788,1702126956,67051552,-2505668,1682255108,1998615657,1751348321,67051520,83838302,1851871277,544240928,1577320224,755302232,544104784,1853321060,67051552,83841886,1851871277,1717922848,-14671756,-12296701,1632644356,1769087086,7628903,1174667040,755302193,1886152008,67051552,83834182,1869568557,-14671763,-13220349,2001939716,1751348329,67051552,83834694,1634882605,538994019,944112639,1395459327,544236916,1174667040,755302201,1701536077,67051552,-13618874,1699556612,538998126,421004287,83827227,1851871277,-14680032,-13548029,1699228932,538996844,421004287,83827482,1919111981,543976559,67051552,-2505668,1767255300,1663072101,7105633,1174667040,755302193,1886152008,67051552,83834694,1634882605,538994019,944112639,1395459327,544236916,1174667040,83832881,1852132653,-14671755,1111577603,1127023871,1701602169,67051552,-2505668,1984244996,1635085409,536896884,826672127,1210909951,544238693,1174667040,755302199,1667330644,-14671771,-13089277,1951608068,538996837,826672127,755302192,1970169165,67051552,-12435116,2034445572,543517795,1006894880,83876292,1635140909,1952544108,-14671771,83827203,1919896877,1702109285,536900728,826672127,1210909951,544238693,1174667040,755302199,1667330644,-14671771,-13089277,1951608068,538996837]},{"sector":8,"length":512,"data":[826672127,755302192,1970169165,67051552,-12435116,2034445572,543517795,1006894880,83876292,1886339885,-14679943,-13548029,1699228932,538996844,927335423,1412236543,1701011826,67051552,83834950,1702122285,-14671760,808535555,1294796031,544566885,1409548064,83837505,1668891437,538994028,-1002699777,755302361,1768189773,536901990,826672127,1210909951,544238693,1174667040,755302197,1836019546,67051552,83834438,1769427757,543712116,1174667040,755302199,1667330644,-14671771,-13089277,1951608068,538996837,960889855,1294796031,543517537,1174667040,83832881,1852132653,-14671755,83827203,1919896877,1702109285,536900728,421004287,83827227,1987005741,1969430629,1919906674,67051552,-10259643,2017799428,1126200425,639661173,1935757344,1830839668,543515759,1107558176,1110246655,1852401509,1953850144,67051520,437983512,1294796031,543520367,1936880995,538997359,1933902847,755302243,1953069125,1953841952,1344284192,1702130529,1685024032,-14671771,83837443,1734689325,1663069801,538997877,-1002699777,755302361,1953718608,1702109285,29816,510727959,387927575,2132770583,1886396238,7434255,1887403776,28784,1886650368,1325400095,48,1886388224,28687,1313296128,7631951,1880060016,1879048192,7348080,117899264,1879508848,1879508751,259002119,124784399,251658255,117903119,7,7341839,7343872,0]}]],[[{"sector":1,"length":512,"data":[124784399,251658240,462607,1886388224,28687,1886416896,7,259000071,118452239,252145671,252645135,462704,252645120,7,118423552,251658352,112,252641280,1904,118427392,15,124784399,251658240,1011727,687865856,-60622,16778752,69711,117506336,-15523543,459007,102190864,16785409,322513166,83951615,356517135,1,2701312,16776960,1191708933,536871186,689242112,-60608,169739520,331050,822083584,-15513303,503644415,84748810,0,10524,83951615,407836672,2097152,2694144,16776960,1326991365,536870936,689700864,-65536,407110912,6216,469762080,-16777175,1057292543,1590296,8192,10538,83951615,6203,18874369,1361654016,16776979,657925,536872192,691994624,-60574,118751231,332603,822083616,-15513303,184549375,83886090,8192,10517,-1,255526675,1049861,1848196864,-237,1191381503,536872215,0,-60548,54853631,16848462,32,-16777216,16777215,17446656,8193,538976256,32,1946185743,258998272,7633008,1880060016,1879078008,2020609904,1886388340,1954050063,1879048192,983047,124782336,117444367,252145671,117440527,252643184,1879506944,986887,2013724672,671117312,2021132152,2021130352,1886943239,125304832,7370872,2013755392]},{"sector":2,"length":512,"pattern":0,"data":[-150966152,-30016715,305530677,506861878,758523446,1144404790,3557686,16777216,16777216,36408064,-1926532352,1929380395,36409131,-1859423488,1929380395,37555755,254505728,1929380413,973086251,-184541666,842419810,1026,9109504,53753438,4,35584,33554432,65535,65535,33554432,11201,56,736890789,131076,239285873,-1694236157,-2113894613,50545974,731186178,915472518,33753922,-2060738300,1412865536,67502861,8989680,22689447,-1492909564,-1275033045,51139382,735511552,139,-16646144,-16776961,255,-133824512,43]},{"sector":3,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1392508928,1143754512,1845501440,1143771920,2113936896,-2144545009,-1711268352,-2144512240,-2063589888,-2144479472,-1073734144,50746422,777454598,919928869,100862277,-1909563644,1228335616,67502858,9383527,123025151,1862534659,335581230,50876215,779551750,925434001,67309392,-1842628348,3619072,1090781184,11197,0,16776962,16776960,0,3047175,4194304,0,822086144,876098358,805306368,0,905969664,909325621,503316528,137292560,872416768,137294608,1358956032,137296656,1275069952,34820919,788726790,928448641,100799820,-2110846204,1211590400,67502612,8597267,0,16776962,16776960,0,3087107,16777216,256,256,256,16777216,16777472,36655360,1395356416]},{"sector":4,"length":512,"data":[1929380399,36656427,1462465280,1929380399,36657451,1529579264,1929380399,36658475,1596686080,-2097151441,36659499,1663792896,1929380399,36660523,1730900736,1929380399,43,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1324354304,251691055,1379366656,67240452,7679849,39008134,1862533634,-1795131857,33900855,796197890,933363831,33687366,2049932036,1329050112,67240461,12267399,138491843,-2130443774,-838805201,33969719,797770754,937558139,33687874,2083492612,1312290048,67240460,8204185,239417352,-1627127294,302037551,35406904,799343618,941883512,34276940,-1204835580,1127756288,201720323,8335409,189610054,1006895106,32815,33554432,65535,65535,234881024,12345,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1347694122,0]},{"sector":5,"length":512,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,820514646,128,828903280,80,146700,905390971,136783,-1308622832,1396200192,268435991,11730944,407910492,1048578,1677767680,35210296,4096,181,-16646144,-16776961,255,-838598656,1832717617,35278136,838472707,947257526,33688140,2117191700,0,-65024,-65536,0,839844352,948043776,135235,1932579588,1278774016,67109403,12005925,289749138,973340674,-1644133332,51397688,785122304,950665255,100798288,-1791903732,1396225280,67109637,2686976,72497346,-1065089533,10289,16777216,65535,65535,117440512,12858,67116754,1,83888384,17104927,0,523763721,67072,150994944,2059008,263,589824,134225822,1,-788526848,17367071,0,537133065,68096,150994944,2111232,267,589824,201334890,1,-1660942080,17629216,0,953352201,131072,-16777216,255,-1677656064,436207666,1348962063,620756992,1346133007,-503316480,16862264,1024,955187211,66384,154339844,1312357376,67109137,786432,39008512,262145,218107136,17717049,857703430,957743119,100732740,305342340]},{"sector":6,"length":512,"data":[1127817216,67109136,1245184,307181867,1,872420352,-175815,1024,21,-16711680,-16776961,255,789118976,234881075,3976192,36940544,1093368576,167854905,0,961609833,656973,1778384896,1111056640,2567,7077888,38025575,-1392246262,1929407795,168314425,1024,964558958,67765584,1882433316,1194953728,2564,7405568,0,16776961,16776960,0,3388167,1094292736,67111937,10485760,38025648,12,-1124029952,201540921,1024,969408683,787538,-1409286144,3537408,17104896,0,89405915,12,-167731968,201737017,0,973865119,788310,-1392508928,0,-65280,-65536,0,873793536,268894208,5269841,975241216,139086,-1090519040,1396319744,544,12582912,557922860,2,49408,33554432,65535,65535,50331648,731067530,38091315,11,1224776192,184632122,0,979304601,101385030,-1540062580,1228566016,335675934,12397491,491993731,-1391197694,-1744782293,184894522,883622915,984154288,722002,-1358954496,0,-65280,-65536,0,884999936,985202688,590162,-1526726656,1346031360,2307,11010048,38222565,9,-83843328,151278650,0,990970011,591187,-1677721600,1429939968,1028,12451840,0,16776961,16776960]},{"sector":7,"length":512,"data":[0,3482118,1178287360,256,668562,4537154,6,1191185920,151015995,895746048,994771047,655427,1748238336,1329287936,512,7484039,4471643,218103819,1627428405,201343547,879558656,174,-16777216,-16776961,255,2030501888,53,257,0,0,0,0,0,1325400064,1325426278,1867710574,1635218534,939550066,792148016,942813240,1699545143,2037542765,1936278528,1699872875,1702388076,1951596644,1952672114,1869107968,1126200434,1969451625,1124103273,1819307375,6648933,1702132034,1919899392,892469348,1852402720,1768169573,1634496627,859046009,540030255,1701734764,1936286752,2036427888,1852785408,543648102,1869903201,1986097952,1682243685,1629516905,544175221,1702257011,1667318272,544241003,1701603686,1632895091,1769152610,1509975418,544042863,1684957559,7567215,1701995347,1931505253,6650473,1651668308,538976367,1768169504,1952671090,981037679,1163412736,1411393056,1679840592,1667592809,2037542772,1850277946,1685417059,1768169573,1952671090,1701409391,1426078323,544500078,1679826976,1667592809,1769107316,3830629,1701470799,538997859,1701996900,1919906915,980641129,1667846144,1768300651,1847616876,979725665,1920287488,1953391986,1667854368,1768300651,3827052,1667331155,1769152619,1275094394,538998639,1885431144,1835625504,1207989353,543713129,1885431144]},{"sector":8,"length":512,"data":[1835625504,1375761513,1701277281,1701339936,1852402531,1951596647,543908705,1667590243,1735289195,1328498944,1701339936,1852402531,1866858599,543515506,544366950,1819042147,1984888947,1634497125,1629516665,2003790956,1090544741,1852270956,1952539680,1633026145,1953705330,1735289202,1701339936,1852402531,1866596455,1634036847,1986338926,1635085409,1852795252,1836404224,1667854949,1869770784,1936942435,6778473,1819635013,1869182049,1698955374,543651170,1868983913,1952542066,7237481,1633906508,2037588076,1819239021,1866662003,1953064046,1634627433,1701060716,1701734758,1699545203,2037542765,2053731104,1392538469,1701668709,7566446,1818391888,7562089,1635018052,1684368489,1885424896,1818846752,1766588517,1646291822,1701209717,1866662002,1818849389,1275097701,1701539433,1850015858,1869769078,1852140910,1766064244,1952671090,1701409391,1632632947,1701667186,1936876916,1986089728,1886330981,1852795252,1699872883,1701409396,1864394102,1869182064,536900462,1701012818,1713402990,1936026729,1867251744,538993761,538976288,1342190406,543908713,1953251616,3360301,7824718,1702256979,538976288,843456544,1769101056,1948280180,1766064239,1952671090,7959151,1851877443,1679844711,1325429353,1752375379,7105637,1953068369,1092624416,1479373932,1836008192,1701603696,1816207392,960900468,1801538816,538976357,538976288,960897056,1769292288,1140876396,1769239397,1769234798]}]],[[{"sector":1,"length":512,"data":[1174433391,543452777,1869771365,1917845618,1918987625,1768300665,3827052,544499015,1868983913,1684291840,1952544544,538994787,538976288,538976288,1819440195,3622445,1701602628,1998611828,1751348321,1768178944,1635197044,6841204,1869440338,1629513078,1998613612,1751348321,1409315685,1818716015,1919033445,1886085477,1953393007,1950556192,1177382002,1816330296,544366949,543976545,1634038370,1768910955,7566446,2003134806,2019913248,1919033460,1886085477,1953393007,1852788224,1834156133,7631457,1635216449,1157657465,1970037110,543519841,538976288,1920221984,877014380,1818313472,1953701996,543908705,1126178848,762081908,1174418246,543452777,1668248176,1920296037,1850277989,1919378804,1684370529,1650811936,1768384373,1392535406,1684955508,1852796001,1701060709,1734833506,6778473,1886611780,544825708,1885435763,1735289200,1717916160,1752393074,1936286752,2036427888,1853182464,538976288,538976288,1126178848,762081908,1342191942,1919381362,1914727777,1952805733,1920221984,843459948,544163584,1663070068,1869836917,538976370,538976288,1409299526,1701011826,1953392928,538976367,538976288,927342624,1702122240,1986994288,538997349,538976288,538976288,1426077766,544367987,1701995379,538996325,1816207392,893791604,1818838528,1682243685,1375761513,1124101749,1768975727,1325426028,1869182064,1140880238,1735746149,1701986816,1999596385,1751348321,794361856]},{"sector":2,"length":512,"data":[249102336,12127,1024331469,247922688,12131,794234581,248053760,12117,795283141,248446976,12129,794496721,248709120,12113,793972419,224198656,12125,3787,248971267,143083,787677184,2,143099,800129024,1,262144,612040704,2894592,2097163309,612043277,2097160269,536873485,612040763,1229342020,2114894,8192,83886080,0,0,1095773738,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2764330,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,687876128,1345202688,687887169,8250,16777216,117440512,1196380752,105726290,1414748499,8080709,8061051,8061051,8061051,8061051,3211312,3211312,707002492,707013156,84216321,1347243843,1380273225,-1795293184,38011203,72171592,273811536,1079517267,-905953244,-520078438,-1769994763]},{"sector":3,"length":512,"data":[1111490712,-2036334577,655360001,65536000,6553600,655360,65536,100663296,1397705795,1225081925,1414877262,1414876934,72635728,1313165391,1279872515,1381257220,1396900904,1141131077,71779667,1195725651,1279346181,1409566035,88429906,774778408,1850278185,1768710518,1329864804,1969627219,1769235310,1663069807,6644847,1818838530,1869488229,1868963956,6581877,1952534531,1869488232,1868963956,6581877,1869566980,1851878688,1886331001,1713401445,1936026729,1766196480,1629513068,1936024419,1701060723,1684367726,1850279424,1768710518,1768300644,1746953580,1818521185,1309147237,1696625775,1735749486,1701650536,2037542765,1850280960,1768710518,1768300644,1629513068,1936024419,1868767347,251684196,1635151433,543451500,1986622052,1970151525,1919246957,1631784960,1953459822,1835364896,543520367,1920103779,544501349,1701996900,1919906915,1125187705,1869508193,1701978228,1701667182,1919115552,544437103,1986622052,1677751141,1802725700,1634038304,1919230052,7499634,1936278629,1920409707,543519849,1869771365,1181089906,543517801,544501614,1769173857,1684368999,1766221568,1847616876,1864397935,7234928,1818838632,1869488229,1886330996,1713401445,1763734127,1953853550,1766222080,1847616876,1864397935,544105840,544370534,1886680431,1778414709,1635151433,543451500,1701672302,543385970,1836216166,-1778355103,1802725700,544434464,1953067639,1919954277,1667593327]},{"sector":4,"length":512,"data":[6579572,1769096344,1847616886,1914729583,2036621669,1380162048,1919230019,544370546,1679847017,6386785,1936278684,1702043755,1696623461,1919906418,1699978752,1919906915,1953459744,1970234912,-1627364242,1852404304,544367988,544503151,1881171567,1919250529,1698996224,1701013878,1769109280,1713399156,1953264993,1698996480,1701013878,1634038304,1634082916,7629941,1918978210,1918990180,1634082917,1920298089,1153957989,1936291433,544108393,2048948578,7303781,1851871945,1663067495,1801676136,1920099616,-905940369,1667331155,1986994283,1818653285,1696626543,1919906418,1699269376,1864396897,1718773110,544698220,1869771365,1238106226,1818326638,1881171049,1953393007,1864397413,1634887024,1852795252,1816579328,1769234799,1881171822,1953393007,1702260512,1869375090,1187905655,1952542572,543649385,1852403568,1853169780,1718773092,7827308,1986939343,1684630625,1869375008,1852404833,1869619303,544501353,1919250543,1869182049,1339031662,1819436406,1830844769,1734438497,1847620197,1763734639,1635021678,1684368492,1984942336,1634497125,1768300665,1914725740,543449445,1869771365,1339162738,1667590754,1869488244,1852383348,1634301033,1702521196,1375731812,1769238133,1696621933,1919906418,1392771072,4607045,1448038484,1380206918,1546801489,1380010310,-30256815,1380141382,238178641,1380272454,372396369,1381189958,103960913,1381452102,-1573039791,1380010566,1073762641,1380141638]},{"sector":5,"length":512,"data":[-1073721007,1381190214,-2147462831,1380275717,1292186933,1397703763,1431323397,1124415032,926438736,5456208,4544581,5591124,4866639,5259597,5396047,747842639,760687831,1632906711,1952802674,1684300064,1936942450,1970234912,1325425774,1864397941,1701650534,2037542765,1701071104,1718187118,544367977,1701869669,1684370531,1802392832,1853321070,1701079328,1718187118,7497065,1819309380,1952539497,1684611173,1769238117,1919248742,1853444864,544760180,1869771365,1917124722,544370546,1914728041,543973733,1936617315,1953390964,1920091392,1763734127,1852383342,1701274996,1868767346,1635021678,1392538734,1852404340,1868767335,1635021678,1696625774,1701143416,1814066020,6647401,544173908,2037277037,1936027168,543450484,1701603686,1851064435,1701869669,1684370531,1684956448,543584032,1701603686,1852394496,1869881445,1869357167,1409312622,543518841,1852138601,1768319348,1696625253,1667592312,6579572,544173908,2037277037,1701867296,1768300654,7562604,1635151433,543451500,1701603686,1701667182,1818838528,1869488229,1868963956,6581877,1802725700,1819633184,1850277996,1768710518,1868767332,1818849389,1679848037,1667592809,1702259060,1869566976,1851878688,1768300665,7562604,1701080661,1701734758,2037653604,1763730800,1869619310,1702129257,1701060722,1768843622,1852795252,1918981632,1818386793,1684611173,1769238117,1919248742,1886938400,1702126437,1917124708]},{"sector":6,"length":512,"data":[544370546,1948282473,6647929,1970435155,1920300131,1869881445,1634476143,6645618,544499027,1702060386,1887007776,1970217061,1718558836,1851879968,1174431079,543517801,1886220131,1852141167,1830843252,1847621985,1646294127,1768300645,544433516,1864397423,1667590754,1224766324,1818326638,1931502697,1852404340,1701584999,1752459118,1886999552,1768759397,1952542067,1224763491,1818326638,1931502697,1634886261,543516526,1702060386,1887007776,1867251813,544367991,1853189986,1919361124,1702125925,1752440946,1965059681,1919250544,1970233888,1325425774,1852400754,1948281953,543518841,1701869669,1684370531,1953384704,1919248229,1852793632,1851880563,2019893364,1952671088,1124099173,1953721967,544501345,1701869669,1684370531,1953384704,1919248229,544370464,1818322290,1852793632,1851880563,2019893364,1952671088,1342202981,1953393007,1948283493,543518841,1852138601,1768319348,1696625253,1667592312,6579572,1635151433,543451500,1668183398,1852795252,1936028192,544500853,1701869940,1650543616,1763732581,1953391972,1701406313,2019893362,1952671088,1107321957,1313425221,1886938400,1702126437,1313144932,2019893316,1952671088,1224762469,1734702190,1696625253,1701998712,1869181811,2019893358,1952671088,1325425765,1852400754,1696623713,1701998712,1869181811,2019893358,1952671088,1107321957,1701605231,1696624225,1701998712,1869181811,2019893358,1952671088,1325425765,1634887024,1948279918]},{"sector":7,"length":512,"data":[1936027769,544171040,544501614,1668571501,1886330984,1952543333,1157657199,1919906418,544106784,1919973477,1769173861,1224765039,1734700140,1629514849,1734964083,1852140910,1766195316,543452261,1852138601,1768319348,1696625253,1667592312,6579572,1701470799,1713402979,543517801,544173940,1735549292,1851064421,1768318308,543450478,1702131813,1818324594,1986939136,1684630625,1784835872,544498533,1701603686,1667592736,6582895,1701080899,1734701856,1953391981,1869575200,1918987296,1140876647,543257697,1835492723,544501349,544173940,1735549292,1329856613,1886938400,1702126437,1850277988,1768710518,1431314532,1128877122,1717920800,1953066601,7237481,1635151433,543451500,1381259333,1701060686,1768843622,1852795252,1869566976,1851878688,1480925305,542003796,1768318308,1769236846,7564911,1696613967,1667592312,6579572,1163152969,1128351314,2019893317,1952671088,1224762469,1818326638,1914725481,1668246629,1650553953,1914725740,1919247973,1701015141,1162368000,2019893326,1952671088,1409311845,1919885391,1464812576,542069838,1701869669,1684370531,1684952320,1852401253,1713398885,1635218031,25714,1635151433,543451500,1701869940,1935762208,1766064244,1769171318,1646292591,1702502521,1224765298,1818326638,1713398889,543517801,1701869940,1851867904,544501614,1684104530,544370464,1953067607,1635131493,1650551154,544433516,1948280431,544434536,1701869940,1768902656]},{"sector":8,"length":512,"data":[1919251566,1918989856,1818386793,2019893349,1952671088,1392534629,1852404340,1635131495,1650551154,1696621932,1667592312,6579572,1769108563,1696622446,1701998712,1869181811,2019893358,1952671088,1124099173,1969451625,544366956,1953066613,1717924384,1852142181,1426089315,544500078,1701667182,1936289056,1668571501,1851064424,1981838441,1769173605,1830841967,1634562921,6841204,1768838400,1768300660,1713399148,1634562671,1919230068,7499634,1280331081,1313164613,1230258516,1696616015,1667592312,6579572,1936617283,1953390964,1684955424,1396785952,2037653573,544433520,1847619428,1830843503,1751348321,1667584512,543453807,1769103734,1701601889,1886938400,1702126437,1866661988,1635021678,1864397934,1864397941,1634869350,6645614,1701603654,1918989856,1818386793,2019893349,1952671088,1342202981,1953393007,1696625253,1701998712,1869181811,2019893358,1952671088,1224762469,1734702190,1864397413,1701978226,1696623713,1701998712,1869181811,2019893358,1952671088,1275094117,1818583649,1953459744,1953068832,544106856,1920103779,544501349,1668246626,1632370795,543974754,1701997665,544826465,1768318308,6579566,1701080661,1701734758,1634476132,543974754,1881173609,1701012850,1735289188,1635021600,1701668212,1881175150,7631457,1635151433,543451500,1918967872,1701672295,1426093166,542394702,1701869669,1684370531,574300672,1886938400,1702126437,975306852,2019893282,1952671088]}]],[[{"sector":1,"length":512,"data":[570451045,1696604716,1667592312,6579572,539109410,1701869669,1684370531,573121024,1886938400,1702126437,1025638500,2019893282,1952671088,570451045,539114810,1701869669,1684370531,576397824,544370464,573450274,1886938400,1702126437,1562509412,1919885346,690889248,2019893282,1952671088,570451045,1696604718,1667592312,6579572,573451810,1886938400,1702126437,1867776100,1634541679,1981839726,1634300513,1936026722,1986939136,1684630625,1380927008,1852793632,1819243124,1918989856,1818386793,1850277989,1701274996,1635131506,1650551154,1696621932,1667592312,6579572,1701603654,1684955424,1869770784,1969513827,1948280178,1936027769,1701994784,1953459744,1819042080,1684371311,1919248416,1951596645,1735289202,1852140576,543716455,1836280173,1751348321,1986939136,1684630625,1685221152,1852404325,1718558823,1701406240,7562348,1769108563,1663068014,1953721967,544501345,1701869669,1684370531,1953384704,1919248229,544370464,1818322290,1918989856,1818386793,2019893349,1952671088,1325425765,1852400754,1981836385,1634300513,543517794,1701869669,1684370531,1280198912,541412937,1869771365,1749221490,1667330657,544367988,1919973477,1769173861,1696624239,1667592312,6579572,544173908,2037277037,1818587680,1952539503,544108393,1835365481,115,1836008192,1634494832,1852795252,1868718368,1684370546,1396785920,1868767301,1635021678,1864397934,1864397941,1634869350,6645614]},{"sector":2,"length":512,"data":[1869771333,1852383346,1635021600,1701668212,1124103278,1869508193,1633886324,1629514860,1852383342,1920099700,544501877,1668248176,1920296037,1291845733,544502645,1763730786,808984686,1830827832,543515759,1663070068,1768975727,1948280172,7563624,1735549268,1629516901,1701995620,1847620467,1713402991,1684960623,1668172032,1701082476,1818846752,1629516645,1847616882,1629516911,2003790956,1746953317,6648421,1279872512,1886938400,1702126437,1850277988,1768710518,1970348132,1718185057,7497065,1635151433,543451500,1769103734,1701601889,1717924384,1852142181,1409312099,1830842223,544829025,1651341683,7564399,1952543827,1852140901,1634738292,1948284018,1814065007,1701278305,1766195200,544433516,1953723757,543515168,544366966,1634886000,1702126957,1409315698,1830842223,544829025,1684959075,1869182057,543973742,1651341683,7564399,1886611789,1701011820,1868767332,1953064046,1634627433,1768169580,1952671090,6649449,1229213253,1768169542,1952671090,543520361,1936943469,6778473,1869771333,1852383346,1768843552,1818323316,1852793632,1769236836,1818324591,1717920800,1936027241,1634027520,544367972,1936027492,1953459744,1952541984,1881172067,1769366898,544437615,1768318308,1769236846,1124101743,1769236850,543973731,1802725732,1920099616,1124102767,1869508193,1986338932,1635085409,1948280180,544434536,1919973477,1769173861,1157656175,1701998712,1869181811,1852383342]},{"sector":3,"length":512,"data":[1920102243,1819566949,1702109305,1852403058,1684370529,1986939136,1684630625,1919903264,544498029,1667592307,1701406313,1850278002,1768710518,1852383332,1701996900,1914729571,1919247973,1701015141,1920226048,1970561909,543450482,1769103734,1701601889,1918967923,1869488229,1818304628,1702326124,1701322852,1124099442,1869508193,1986338932,1635085409,1998611828,1869116521,1394635893,1702130553,1853169773,1124103273,1869508193,1667309684,1936942435,1768453152,2037588083,1819239021,1986939136,1684630625,1869375008,1852404833,1869619303,544501353,1919250543,1869182049,1631780974,1953459822,1836016416,1701603696,1702260512,2036427890,1869881459,1835363616,7959151,1668248144,1920296037,1919885413,1853187616,1869182051,1635131502,1650551154,1696621932,1667592312,6579572,1635151433,543451500,1668248176,1920296037,1919885413,1853187616,1869182051,1701978222,1701995878,6644590,1852727619,1864397935,1819436406,1948285281,544434536,1953066613,1869566976,1851878688,1701716089,1684370547,1868788512,7562608,1701603654,1667457312,544437093,1768842596,1325425765,1667590754,2037653620,1696621936,1667592312,6579572,1633906508,1651449964,1952671082,1887007776,1629516645,1847616882,1629516911,2003790956,1442866277,1431589449,1696615489,1667592312,6579572,1752458573,1763730543,1953391972,1701406313,2019893362,1952671088,1442866277,1970565737,1663069281,1953721967,1952675186,544436847]},{"sector":4,"length":512,"data":[543519329,544501614,1869376609,6579575,1936617283,1668641396,544370548,1852138601,1768319348,1696625253,1667592312,6579572,1953719620,1952675186,1763734127,1953391972,1701406313,2019893362,1952671088,1174430821,543975777,2037149295,1819042080,1684371311,1953068832,544106856,1936617315,1668641396,1936879476,655360000,6554600,65546,858927408,926299444,1111570744,1178944579,1951604782,544502369,1869894432,538976368,1735288140,1310746740,543518049,538976288,538976288,538976288,1816338464,74675041,1162104643,1413563396,1414726977,72041281,1346454856,541601795,807421955,572540930,1681989664,1936028260,538976371,538976288,1968185376,1667853410,2036473971,1818318368,1276208501,543518313,1651340654,544436837,544370534,1931487498,1701668709,471889006,1735357008,544039282,1920233061,1869619321,544501353,807433313,976236592,1392787457,4607045,0,67108864,65536,-2147483648,2147483647,83886080,131072,0,-128,100663423,262144,0,-8388608,142606335,65536,0,-16777216,150994944,131072,0,-16777216,167772415,262144,0,-16777216,234881023,262144,251658240,524288,268435456,655360,234881024,393216,671088640,65536,201326592,65536,0,-16777216,117440512,524288,184549376,524288,721420288,655360,637534208,16777216]},{"sector":5,"length":512,"data":[654311424,8388608,369099008,262144,50331904,16777216,587202815,262144,587202881,262144,587202885,262144,587202817,262144,587202821,0,134217991,134744080,134744072,268961800,269488136,773725184,623060519,235733782,688662533,16843053,18356481,18553345,319947025,33554433,50331649,1,10,100,1000,10000,100000,1000000,10000000,0,-1094967296,16409,-910228480,1077186075,728806814,-1647989336,-1495973783,524943311,1087619704,-2132177696,-1816508471,-561102424,-335831559,1129425534,-1508994617,-484859730,202852003,1971749237,1296615798,-985834011,-1635042467,-1751426414,1375898144,1965409376,0,-1094967296,147481,65540,262146,1,65536,131073,2,262144,262148,1,1048576,1048585,16,524288,524292,524297,1812004880,-690486826,30870785,3200804,924893184,959590710,808596789,16776704,-33619984,-124113412,33554688,134218752,805310464,16384,16771584,1297040368,5325136,0,0,-438566912,-438508068,0,538976256,538976288,555819040,539042081,538976288,538976288,538976288,538976288,1077936416,1077952576,1077952576,1077952576,33686080,33686018,1073873410,1077952576,336871488,336860180,67372036,67372036,67372036,67372036,67372036,1077952576]},{"sector":6,"length":512,"pattern":0,"data":[404242496,404232216,134744072,134744072,134744072,134744072,134744072,1077952576,32]},{"sector":7,"length":512,"pattern":-151587082,"data":[]},{"sector":8,"length":512,"pattern":-151587082,"data":[]}]]]
      • ibm-basic-1.00.json
        [233,143,126,232,167,107,203,232,2,101,203,193,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,46,148,13,104,115,91,17,
        89,21,102,55,62,22,143,17,237,16,182,16,248,18,12,46,206,16,53,17,95,17,45,46,72,19,80,47,53,31,27,45,254,17,88,30,240,27,
        145,34,133,46,190,7,190,7,83,30,67,19,46,31,0,0,138,30,95,17,156,46,157,46,163,46,243,46,223,54,169,18,88,18,57,34,184,18,
        216,34,251,15,254,15,1,16,4,16,217,20,4,61,48,61,160,93,0,0,0,0,0,0,169,61,63,36,158,36,4,64,82,67,108,65,109,65,206,65,47,
        83,231,82,38,93,19,70,51,70,41,88,13,88,209,71,205,71,147,81,42,80,23,84,104,41,165,41,177,41,28,101,128,126,150,125,241,
        112,135,120,14,122,12,115,132,98,244,121,173,122,205,122,140,43,61,30,122,27,232,40,23,38,233,41,248,40,11,41,128,34,71,41,
        13,38,18,38,117,27,173,107,81,107,130,107,156,101,250,85,152,86,18,87,192,68,152,68,172,68,55,1,72,1,87,1,139,1,180,1,217,
        1,229,1,244,1,249,1,21,2,22,2,26,2,80,2,98,2,109,2,134,2,169,2,170,2,223,2,35,3,58,3,67,3,77,3,101,3,105,3,106,3,85,84,207,
        170,78,196,238,66,211,6,84,206,14,83,195,21,0,83,65,86,197,194,76,79,65,196,195,69,69,208,197,0,79,76,79,210,191,76,79,83,
        197,187,79,78,212,153,76,69,65,210,146,83,82,76,73,206,219,73,78,212,28,83,78,199,29,68,66,204,30,79,211,12,72,82,164,22,
        65,76,204,179,76,211,192,0,69,76,69,84,197,169,65,84,193,132,73,205,134,69,70,83,84,210,172,69,70,73,78,212,173,69,70,83,
        78,199,174,69,70,68,66,204,175,69,198,151,0,76,83,197,161,78,196,129,82,65,83,197,165,68,73,212,166,82,82,79,210,167,82,204,
        212,82,210,213,88,208,11,79,198,35,81,214,241,0,79,210,130,206,209,82,197,15,73,216,31,0,79,84,207,137,79,32,84,207,137,79,
        83,85,194,141,0,69,88,164,26,0,78,80,85,212,133,198,139,78,83,84,210,216,78,212,5,78,208,16,77,208,242,78,75,69,89,164,222,
        0,0,69,217,201,0,79,67,65,84,197,202,80,82,73,78,212,157,76,73,83,212,158,80,79,211,27,69,212,136,73,78,197,176,79,65,196,
        188,73,83,212,147,79,199,10,79,195,36,69,206,18,69,70,84,164,1,79,198,37,0,79,84,79,210,193,69,82,71,197,189,79,196,243,73,
        68,164,3,0,69,88,212,131,69,215,148,79,212,211,0,80,69,206,186,85,212,156,206,149,210,239,67,84,164,25,80,84,73,79,206,184,
        70,198,221,0,82,73,78,212,145,79,75,197,152,79,211,17,69,69,203,23,83,69,212,198,82,69,83,69,212,199,79,73,78,212,220,69,
        206,32,0,0,85,206,138,69,84,85,82,206,142,69,65,196,135,69,83,84,79,82,197,140,69,205,143,69,83,85,77,197,168,73,71,72,84,
        164,2,78,196,8,69,78,85,205,171,65,78,68,79,77,73,90,197,185,0,67,82,69,69,206,200,84,79,208,144,87,65,208,164,65,86,197,
        190,80,67,168,210,84,69,208,207,71,206,4,81,210,7,73,206,9,84,82,164,19,84,82,73,78,71,164,214,80,65,67,69,164,24,79,85,78,
        196,196,84,73,67,203,33,84,82,73,199,34,0,72,69,206,205,82,79,206,162,82,79,70,198,163,65,66,168,206,207,204,65,206,13,0,
        83,73,78,199,215,83,210,208,0,65,204,20,65,82,80,84,210,218,0,73,68,84,200,160,65,73,212,150,72,73,76,197,177,69,78,196,178,
        82,73,84,197,183,0,79,210,240,0,0,0,171,233,173,234,170,235,175,236,222,237,220,244,167,217,190,230,189,231,188,232,0,121,
        121,124,124,127,80,70,60,50,40,122,123,130,107,0,0,173,107,59,100,81,107,168,102,3,99,83,108,32,99,116,101,18,99,25,99,65,
        99,40,99,49,100,106,99,79,99,137,99,215,24,180,101,0,78,69,88,84,32,119,105,116,104,111,117,116,32,70,79,82,0,83,121,110,
        116,97,120,32,101,114,114,111,114,0,82,69,84,85,82,78,32,119,105,116,104,111,117,116,32,71,79,83,85,66,0,79,117,116,32,111,
        102,32,68,65,84,65,0,73,108,108,101,103,97,108,32,102,117,110,99,116,105,111,110,32,99,97,108,108,0,79,118,101,114,102,108,
        111,119,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,85,110,100,101,102,105,110,101,100,32,108,105,110,101,32,110,
        117,109,98,101,114,0,83,117,98,115,99,114,105,112,116,32,111,117,116,32,111,102,32,114,97,110,103,101,0,68,117,112,108,105,
        99,97,116,101,32,68,101,102,105,110,105,116,105,111,110,0,68,105,118,105,115,105,111,110,32,98,121,32,122,101,114,111,0,73,
        108,108,101,103,97,108,32,100,105,114,101,99,116,0,84,121,112,101,32,109,105,115,109,97,116,99,104,0,79,117,116,32,111,102,
        32,115,116,114,105,110,103,32,115,112,97,99,101,0,83,116,114,105,110,103,32,116,111,111,32,108,111,110,103,0,83,116,114,105,
        110,103,32,102,111,114,109,117,108,97,32,116,111,111,32,99,111,109,112,108,101,120,0,67,97,110,39,116,32,99,111,110,116,105,
        110,117,101,0,85,110,100,101,102,105,110,101,100,32,117,115,101,114,32,102,117,110,99,116,105,111,110,0,78,111,32,82,69,83,
        85,77,69,0,82,69,83,85,77,69,32,119,105,116,104,111,117,116,32,101,114,114,111,114,0,85,110,112,114,105,110,116,97,98,108,
        101,32,101,114,114,111,114,0,77,105,115,115,105,110,103,32,111,112,101,114,97,110,100,0,76,105,110,101,32,98,117,102,102,
        101,114,32,111,118,101,114,102,108,111,119,0,68,101,118,105,99,101,32,84,105,109,101,111,117,116,0,68,101,118,105,99,101,
        32,70,97,117,108,116,0,70,79,82,32,87,105,116,104,111,117,116,32,78,69,88,84,0,79,117,116,32,111,102,32,80,97,112,101,114,
        0,63,0,87,72,73,76,69,32,119,105,116,104,111,117,116,32,87,69,78,68,0,87,69,78,68,32,119,105,116,104,111,117,116,32,87,72,
        73,76,69,0,70,73,69,76,68,32,111,118,101,114,102,108,111,119,0,73,110,116,101,114,110,97,108,32,101,114,114,111,114,0,66,
        97,100,32,102,105,108,101,32,110,117,109,98,101,114,0,70,105,108,101,32,110,111,116,32,102,111,117,110,100,0,66,97,100,32,
        102,105,108,101,32,109,111,100,101,0,70,105,108,101,32,97,108,114,101,97,100,121,32,111,112,101,110,0,63,0,68,101,118,105,
        99,101,32,73,47,79,32,69,114,114,111,114,0,70,105,108,101,32,97,108,114,101,97,100,121,32,101,120,105,115,116,115,0,63,0,
        63,0,68,105,115,107,32,102,117,108,108,0,73,110,112,117,116,32,112,97,115,116,32,101,110,100,0,66,97,100,32,114,101,99,111,
        114,100,32,110,117,109,98,101,114,0,66,97,100,32,102,105,108,101,32,110,97,109,101,0,63,0,68,105,114,101,99,116,32,115,116,
        97,116,101,109,101,110,116,32,105,110,32,102,105,108,101,0,84,111,111,32,109,97,110,121,32,102,105,108,101,115,0,0,0,0,195,
        30,16,0,82,199,79,128,82,199,79,128,228,0,203,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,1,0,0,80,56,0,114,7,254,255,15,7,10,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,7,7,32,0,0,0,0,0,0,0,0,0,0,
        1,24,24,0,0,0,0,80,0,1,0,0,0,7,7,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,32,105,110,32,0,
        79,107,255,13,0,66,114,101,97,107,0,187,4,0,3,220,67,138,7,67,60,177,117,7,185,6,0,3,217,235,241,60,130,116,1,195,138,15,
        67,138,47,67,83,139,217,11,210,135,218,116,4,135,218,59,218,185,16,0,91,116,230,3,217,235,207,185,181,8,233,145,0,205,134,
        139,30,46,0,138,199,34,195,254,192,116,9,160,79,3,10,192,178,19,117,77,233,189,38,178,61,185,178,57,185,178,54,185,178,53,
        185,178,52,185,178,51,185,178,62,185,178,55,185,178,64,185,178,63,185,178,50,185,178,67,185,178,58,235,34,139,30,55,3,137,
        30,46,0,178,2,185,178,11,185,178,1,185,178,10,185,178,18,185,178,20,185,178,6,185,178,22,185,178,13,50,192,162,54,5,162,95,
        0,162,98,4,162,96,0,139,30,46,0,137,30,71,3,50,192,162,101,4,162,107,4,138,199,34,195,254,192,116,4,137,30,73,3,185,12,8,
        139,30,69,3,233,177,37,89,138,194,138,202,162,40,0,139,30,67,3,137,30,75,3,135,218,139,30,71,3,138,199,34,195,254,192,116,
        10,137,30,84,3,135,218,137,30,86,3,139,30,77,3,11,219,135,218,187,79,3,116,11,34,7,117,7,254,15,135,218,233,115,6,50,192,
        136,7,138,209,232,8,36,187,180,3,205,135,138,194,60,68,115,8,60,50,115,6,60,31,114,6,176,40,44,19,138,208,46,138,7,67,10,
        192,117,248,75,67,254,202,117,242,83,139,30,71,3,94,135,222,86,205,136,46,138,7,60,63,117,6,91,187,180,3,235,212,232,190,
        114,91,186,254,255,59,218,205,137,117,3,233,238,117,138,199,34,195,254,192,116,3,232,153,92,176,255,232,241,34,176,89,205,
        138,50,192,162,111,0,232,59,60,232,154,35,187,45,7,232,140,114,160,40,0,44,2,117,3,232,238,45,205,139,187,255,255,137,30,
        46,0,160,62,3,10,192,116,73,139,30,63,3,83,232,101,92,90,82,232,119,1,176,42,114,2,176,32,232,172,34,232,132,40,90,115,14,
        50,192,162,62,3,235,176,50,192,162,62,3,235,21,139,30,65,3,3,218,114,241,82,186,249,255,59,218,90,115,232,137,30,63,3,160,
        247,1,10,192,116,170,233,168,45,232,81,40,114,162,232,233,5,254,192,254,200,116,153,156,232,45,7,115,8,232,147,38,117,3,233,
        118,254,232,56,4,138,7,60,32,117,3,232,240,91,82,232,49,1,90,157,137,30,67,3,205,140,114,3,233,111,59,82,81,232,238,61,232,
        176,5,10,192,156,137,22,73,3,232,240,0,114,9,157,156,117,3,233,176,7,10,192,81,156,83,232,173,26,91,157,89,81,115,3,232,214,
        24,90,157,82,116,71,90,160,107,4,10,192,117,8,139,30,10,3,137,30,47,3,139,30,88,3,94,135,222,86,89,83,3,217,83,232,21,91,
        91,137,30,88,3,135,218,136,63,89,90,83,67,67,137,23,67,67,186,184,0,73,73,73,73,139,242,172,136,7,67,66,73,138,193,10,197,
        117,242,205,141,90,232,30,0,139,30,233,4,137,30,82,3,232,73,35,205,142,139,30,82,3,137,30,233,4,233,216,254,139,30,48,0,135,
        218,138,254,138,218,138,7,67,10,7,117,1,195,67,67,67,138,7,10,192,116,16,60,32,115,245,60,11,114,241,232,253,4,232,249,4,
        235,236,67,135,218,137,23,235,212,186,0,0,82,116,23,60,44,116,19,90,232,35,6,82,116,29,60,44,116,25,232,175,35,234,116,2,
        60,44,186,250,255,116,3,232,12,6,116,7,60,44,116,3,233,99,253,137,30,59,3,135,218,90,94,135,222,86,83,139,30,48,0,139,203,
        138,7,67,10,7,159,75,158,116,149,67,67,139,31,59,218,139,217,139,31,245,116,136,245,115,133,235,226,50,192,162,253,2,162,
        252,2,205,143,185,59,1,186,184,0,138,7,10,192,117,32,187,64,1,138,195,42,193,138,200,138,199,26,197,138,232,187,183,0,50,
        192,139,250,170,66,139,250,170,66,139,250,170,195,60,34,117,3,233,51,0,60,32,116,9,160,252,2,10,192,138,7,116,47,67,80,232,
        84,2,88,44,58,116,6,60,74,117,8,176,1,162,252,2,162,253,2,44,85,117,172,80,138,7,10,192,88,116,170,58,7,116,218,80,138,7,
        67,232,44,2,235,236,67,10,192,120,146,75,60,63,176,145,82,81,117,3,233,226,0,186,107,3,232,210,14,232,41,36,115,3,233,46,
        1,83,186,94,11,232,32,0,117,62,232,240,3,186,98,11,232,21,0,176,137,117,3,233,8,0,186,101,11,232,8,0,117,38,176,141,89,233,
        173,0,139,242,46,172,10,192,117,1,195,138,200,232,149,14,58,193,117,246,67,66,235,234,71,79,32,0,84,79,0,85,66,0,91,232,127,
        14,83,205,144,187,3,1,44,65,2,192,138,200,181,0,3,217,46,139,23,91,67,83,232,102,14,138,200,139,242,46,172,36,127,117,3,233,
        171,1,67,58,193,117,80,139,242,46,172,66,10,192,121,226,138,193,60,40,116,29,139,242,46,172,60,209,116,21,60,208,116,17,232,
        54,14,60,46,116,3,232,199,21,176,0,114,3,233,122,1,88,139,242,46,172,205,145,10,192,121,3,233,35,0,89,90,12,128,80,176,255,
        232,81,1,50,192,162,253,2,88,232,72,1,233,178,254,91,139,242,46,172,66,10,192,121,247,66,235,141,75,80,205,146,186,12,12,
        138,200,139,242,46,172,10,192,116,23,66,58,193,117,243,235,20,140,170,171,169,166,168,212,161,138,147,158,137,142,205,141,
        0,50,192,235,2,176,1,162,253,2,88,89,90,60,161,80,117,3,232,250,0,88,60,177,117,5,232,244,0,176,233,60,217,116,3,233,198,
        0,80,232,229,0,176,143,232,226,0,88,80,233,173,254,138,7,60,46,116,14,60,58,114,3,233,144,0,60,48,115,3,233,137,0,160,253,
        2,10,192,138,7,89,90,121,3,233,98,254,116,39,60,46,117,3,233,89,254,176,14,232,173,0,82,232,232,3,232,253,0,94,135,222,86,
        135,218,138,195,232,155,0,138,199,91,232,149,0,233,255,253,82,81,138,7,232,31,93,232,223,0,89,90,83,160,251,2,60,2,117,26,
        139,30,163,4,138,199,10,192,176,2,117,14,138,195,138,251,179,15,60,10,115,200,4,17,235,203,80,208,200,4,27,232,92,0,187,163,
        4,232,79,14,114,3,187,159,4,88,80,138,7,232,74,0,88,67,254,200,117,244,91,233,173,253,186,106,3,66,139,242,46,172,36,127,
        117,3,233,107,0,66,58,7,139,242,46,172,117,235,233,111,0,60,38,116,3,233,197,253,83,232,11,2,91,232,215,12,60,72,176,11,117,
        2,176,12,232,11,0,82,81,232,217,12,89,233,92,255,176,58,139,250,170,66,73,138,193,10,197,116,1,195,178,23,233,155,250,205,
        147,91,75,254,200,162,253,2,89,90,232,160,12,232,222,255,67,232,153,12,232,240,33,115,244,60,58,115,8,60,48,115,236,60,46,
        116,232,233,51,253,138,7,60,32,115,10,60,9,116,6,60,10,116,2,176,32,80,160,253,2,254,192,116,2,254,200,233,159,254,75,138,
        7,60,32,116,249,60,9,116,245,60,10,116,241,67,195,176,100,162,57,3,232,210,41,232,85,32,231,82,137,22,59,3,160,251,2,80,232,
        123,9,88,83,232,41,16,187,86,4,232,69,86,91,90,89,83,232,157,3,137,30,53,3,187,2,0,3,220,232,115,249,117,30,3,217,82,75,138,
        55,75,138,23,67,67,83,139,30,53,3,59,218,91,90,117,229,90,139,227,137,30,69,3,177,90,135,218,177,8,232,227,30,83,139,30,53,
        3,94,135,222,86,83,139,30,46,0,94,135,222,86,232,237,31,204,232,26,13,117,3,233,198,249,114,3,233,193,249,156,232,14,9,157,
        83,120,3,233,28,0,232,138,93,94,135,222,86,186,1,0,138,7,60,207,117,3,232,212,16,82,83,135,218,232,198,86,235,39,232,18,93,
        232,177,85,91,81,82,185,0,129,138,241,138,214,205,148,138,7,60,207,176,1,117,14,232,207,8,83,232,244,92,232,147,85,232,18,
        109,91,81,82,138,200,232,186,12,138,232,81,75,232,171,0,116,3,233,71,249,232,129,22,232,160,0,83,83,139,30,90,4,137,30,46,
        0,139,30,59,3,94,135,222,86,181,130,81,159,134,196,80,134,196,159,134,196,80,134,196,233,207,100,181,130,81,235,66,233,203,
        248,233,18,249,195,232,117,0,235,80,205,149,233,99,15,233,213,2,10,192,117,235,67,138,7,67,10,7,116,224,67,139,23,67,137,
        22,46,0,246,6,118,4,255,116,38,83,176,91,232,202,28,135,218,232,112,86,176,93,232,192,28,91,235,19,205,150,232,155,29,137,
        38,69,3,137,30,67,3,138,7,60,58,117,191,67,138,7,60,58,114,171,186,232,14,82,116,164,44,129,114,171,60,74,115,162,50,228,
        2,192,139,240,205,151,46,255,180,37,0,67,138,7,60,58,114,1,195,60,32,116,244,114,8,60,48,245,254,192,254,200,195,10,192,116,
        251,60,11,114,114,60,30,117,6,160,0,3,10,192,195,60,16,116,60,80,67,162,0,3,44,28,115,57,44,245,115,7,60,254,117,27,138,7,
        67,137,30,254,2,183,0,138,216,137,30,2,3,176,2,162,1,3,187,4,0,88,10,192,195,138,7,67,67,137,30,254,2,75,138,63,235,225,232,
        55,0,139,30,254,2,235,147,254,192,208,192,162,1,3,82,81,186,2,3,135,218,138,232,232,19,85,135,218,89,90,137,30,254,2,88,187,
        4,0,10,192,195,60,9,114,3,233,105,255,60,48,245,254,192,254,200,195,160,0,3,60,15,115,23,60,13,114,19,139,30,2,3,117,10,67,
        67,67,138,23,67,138,55,135,218,233,106,84,160,1,3,162,251,2,60,8,116,17,139,30,2,3,137,30,163,4,139,30,4,3,137,30,165,4,195,
        187,2,3,233,157,84,178,3,185,178,2,185,178,4,185,178,8,232,58,31,185,190,7,81,114,229,44,65,138,200,138,232,232,5,255,60,
        234,117,15,232,254,254,232,33,31,114,208,44,65,138,232,232,242,254,138,197,42,193,114,195,254,192,94,135,222,86,187,96,3,
        181,0,3,217,136,23,67,254,200,117,249,91,138,7,60,44,117,168,232,206,254,235,181,232,201,254,232,179,14,121,155,178,5,233,
        122,247,138,7,60,46,139,22,73,3,117,3,233,178,254,75,232,174,254,60,14,116,2,60,13,139,22,2,3,117,3,233,159,254,50,192,162,
        0,3,75,186,0,0,232,147,254,114,1,195,83,159,80,187,152,25,59,218,114,27,138,254,138,218,3,218,3,219,3,218,3,219,88,158,44,
        48,138,208,182,0,3,218,135,218,91,235,213,88,158,91,195,117,3,233,124,28,60,14,116,7,60,13,116,3,233,163,48,232,117,28,185,
        232,14,235,30,177,3,232,2,28,232,149,255,89,83,83,139,30,46,0,94,135,222,86,176,141,159,134,196,80,134,196,81,235,4,81,232,
        123,255,160,0,3,60,13,135,218,116,188,60,14,116,3,233,190,246,135,218,83,139,30,254,2,94,135,222,86,232,81,0,67,83,139,30,
        46,0,59,218,91,115,3,232,79,249,114,3,232,70,249,115,13,73,176,13,162,61,3,91,232,252,18,139,217,195,178,8,233,163,246,205,
        152,117,246,182,255,232,250,245,139,227,137,30,69,3,60,141,178,3,116,3,233,139,246,91,137,30,46,0,187,232,14,94,135,222,86,
        176,91,177,58,235,2,177,0,181,0,138,193,138,205,138,232,75,232,176,253,10,192,116,190,58,197,116,186,67,60,34,116,233,254,
        192,116,236,44,140,117,231,58,197,18,198,138,240,235,223,88,4,3,235,20,232,220,37,232,95,28,231,137,22,59,3,82,160,251,2,
        80,232,133,5,88,94,135,222,86,138,232,160,251,2,58,197,138,197,116,6,232,37,12,160,251,2,186,163,4,60,5,114,3,186,159,4,83,
        60,3,117,49,139,30,163,4,83,67,139,23,139,30,48,0,59,218,115,17,139,30,92,3,59,218,90,115,17,187,44,3,59,218,115,10,176,90,
        232,230,22,135,218,232,51,20,232,222,22,94,135,222,86,232,190,82,90,91,195,60,167,117,50,232,24,253,232,236,27,137,232,95,
        254,11,210,116,13,232,79,248,138,245,138,209,91,114,3,233,19,255,137,22,77,3,114,218,160,79,3,10,192,138,194,116,209,160,
        40,0,138,208,233,206,245,232,229,12,138,7,138,232,60,141,116,5,232,178,27,137,75,138,202,254,201,138,197,117,3,233,185,252,
        232,26,254,60,44,117,167,235,238,186,79,3,139,242,172,10,192,117,3,233,104,245,254,192,162,40,0,139,250,170,138,7,60,131,
        116,16,232,245,253,117,133,11,210,116,3,233,113,254,254,192,235,6,232,151,252,116,1,195,139,30,75,3,135,218,139,30,71,3,137,
        30,46,0,135,218,117,237,138,7,10,192,117,4,67,67,67,67,67,233,178,254,232,112,12,117,218,10,192,117,3,233,164,253,233,32,
        245,186,10,0,82,116,31,232,157,253,135,218,94,135,222,86,116,22,135,218,232,38,27,44,139,22,65,3,116,8,232,147,253,116,3,
        233,225,244,135,218,138,199,10,195,117,3,233,113,253,137,30,65,3,162,62,3,91,137,30,63,3,89,233,219,245,232,44,4,138,7,60,
        44,117,3,232,25,252,60,137,116,5,232,233,26,205,75,83,232,210,81,91,116,25,232,6,252,117,1,195,60,14,117,3,233,204,253,60,
        13,116,3,233,224,251,139,30,2,3,195,182,1,232,41,254,10,192,116,246,232,228,251,60,161,117,242,254,206,117,238,235,209,232,
        106,1,235,3,232,155,49,75,232,206,251,117,3,232,29,25,117,3,233,63,1,60,215,117,3,233,107,39,60,206,117,3,233,171,0,60,210,
        117,3,233,164,0,83,60,44,116,109,60,59,117,3,233,23,1,89,232,169,3,83,232,163,7,116,15,232,65,93,232,194,18,198,7,32,139,
        30,163,4,254,7,205,153,139,30,163,4,83,232,57,28,116,13,232,49,1,120,3,233,49,0,232,129,69,235,3,160,41,0,138,232,254,192,
        116,35,232,30,28,116,7,232,102,69,138,7,235,3,232,104,59,91,83,10,192,116,14,2,7,245,115,4,254,200,58,197,114,3,232,153,24,
        91,232,222,18,91,233,107,255,205,154,185,50,0,139,30,233,4,3,217,232,232,27,138,7,117,24,160,42,0,138,232,232,50,59,60,255,
        116,12,58,197,114,3,232,108,24,114,3,233,135,0,44,14,115,252,246,208,235,114,80,232,7,251,232,241,10,88,80,60,210,116,1,74,
        138,198,10,192,120,3,233,3,0,186,0,0,83,232,166,27,116,13,232,158,0,120,3,233,21,0,232,238,68,235,3,160,41,0,138,216,254,
        192,116,7,183,0,232,124,81,135,218,91,232,161,25,41,75,88,44,210,83,116,19,185,50,0,139,30,233,4,3,217,232,111,27,138,7,117,
        3,232,190,58,246,208,2,194,114,16,254,192,116,25,232,246,23,138,194,254,200,121,3,233,13,0,254,192,138,232,176,32,232,24,
        23,254,205,117,249,91,232,136,250,233,188,254,205,155,50,192,83,82,81,232,134,44,89,90,50,192,138,248,138,216,137,30,233,
        4,91,195,83,50,192,159,134,196,80,134,196,232,233,42,116,3,233,226,242,83,185,46,0,178,2,182,253,3,217,136,55,176,0,91,233,
        230,41,232,51,46,10,192,195,60,133,116,3,233,162,51,232,17,25,133,60,35,117,3,233,40,48,232,48,29,232,115,0,232,122,34,232,
        68,79,82,83,232,167,28,90,89,115,3,233,69,25,81,82,181,0,232,69,17,91,176,3,233,147,252,63,82,101,100,111,32,102,114,111,
        109,32,115,116,97,114,116,13,0,67,138,7,10,192,117,3,233,146,242,60,34,117,242,233,155,0,91,91,235,12,205,156,160,58,3,10,
        192,116,3,233,115,242,89,187,16,21,232,11,102,139,30,67,3,195,232,148,47,83,187,246,1,233,224,0,60,35,116,242,232,190,28,
        185,140,21,81,60,34,176,0,176,255,162,95,4,117,223,232,219,16,138,7,60,44,117,10,50,192,162,95,4,232,157,249,235,4,232,111,
        24,59,83,232,48,17,91,195,83,160,95,4,10,192,116,10,176,63,232,12,22,176,32,232,7,22,232,2,28,89,115,3,233,161,24,81,50,192,
        162,58,3,198,7,44,135,218,91,83,82,82,75,176,128,162,57,3,232,94,249,232,165,34,138,7,75,60,40,117,32,67,181,0,254,197,232,
        76,249,117,3,233,232,241,60,34,117,3,233,69,255,60,40,116,235,60,41,117,233,254,205,117,229,232,49,249,116,7,60,44,116,3,
        233,201,241,94,135,222,86,138,7,60,44,116,3,233,49,255,176,1,162,169,4,232,98,0,160,169,4,254,200,116,3,233,31,255,83,232,
        13,5,117,3,232,140,18,91,75,232,251,248,94,135,222,86,138,7,60,44,116,139,91,75,232,236,248,10,192,91,116,3,233,10,255,198,
        7,44,235,6,83,139,30,94,3,13,50,192,162,58,3,94,135,222,86,235,4,232,162,23,44,232,24,33,94,135,222,86,82,138,7,60,44,116,
        10,160,58,3,10,192,116,3,233,139,0,13,50,192,162,82,4,232,98,25,116,3,233,139,46,232,169,4,80,117,56,232,155,248,138,240,
        138,232,60,34,116,14,160,58,3,10,192,138,240,116,2,182,58,181,44,75,232,182,15,88,4,3,138,200,160,82,4,10,192,117,1,195,138,
        193,135,218,187,202,22,94,135,222,86,82,233,240,250,232,99,248,88,80,60,5,185,155,22,81,115,3,233,249,82,233,253,82,75,232,
        79,248,116,7,60,44,116,3,233,96,254,94,135,222,86,75,232,62,248,116,3,233,107,255,90,160,58,3,10,192,135,218,116,3,233,53,
        23,82,91,233,162,253,232,98,250,10,192,117,21,67,138,7,67,10,7,178,4,117,3,233,206,240,67,139,23,67,137,22,55,3,232,8,248,
        60,132,117,221,233,79,255,232,213,22,231,233,4,0,232,206,22,40,75,182,0,82,177,1,232,165,21,205,157,232,178,1,50,192,162,
        168,4,137,30,82,3,139,30,82,3,89,138,7,137,30,49,3,60,230,115,1,195,60,233,114,117,44,233,138,208,117,12,160,251,2,60,3,138,
        194,117,3,233,214,16,60,12,115,229,187,128,3,182,0,3,218,138,197,46,138,55,58,198,115,213,81,185,62,23,81,138,198,205,158,
        60,127,116,100,60,81,114,109,36,254,60,122,116,103,160,251,2,44,3,117,3,233,61,240,10,192,255,54,163,4,121,3,233,17,0,255,
        54,165,4,122,3,233,8,0,255,54,159,4,255,54,161,4,4,3,138,202,138,232,81,185,35,24,81,139,30,49,3,233,99,255,182,0,44,230,
        114,52,60,3,115,48,60,1,208,208,50,198,58,198,138,240,115,3,233,222,239,137,30,49,3,232,54,247,235,224,232,101,83,232,55,
        76,185,41,101,182,127,235,201,82,232,179,83,90,83,185,49,27,235,190,138,197,60,100,114,1,195,81,82,186,4,100,187,3,27,83,
        232,17,3,116,3,233,118,255,139,30,163,4,83,185,200,37,235,156,89,138,193,162,252,2,160,251,2,58,197,117,13,60,2,116,40,60,
        4,117,3,233,127,0,115,57,138,240,138,197,60,8,116,46,138,198,60,8,116,87,138,197,60,4,116,102,138,198,60,3,117,3,233,124,
        239,115,101,187,170,3,181,0,3,217,3,217,46,138,15,67,46,138,47,90,139,30,163,4,81,195,232,12,83,232,37,76,91,137,30,161,4,
        91,137,30,159,4,89,90,232,90,75,232,247,82,187,150,3,160,252,2,208,192,2,195,138,216,18,199,42,195,138,248,46,139,31,255,
        227,138,197,80,232,246,75,88,162,251,2,60,4,116,211,91,137,30,163,4,235,209,232,151,82,89,90,187,160,3,235,205,91,232,97,
        75,232,101,74,232,40,75,91,137,30,165,4,91,137,30,163,4,235,229,83,135,218,232,80,74,91,232,69,75,232,73,74,233,59,76,232,
        51,246,117,3,233,228,238,115,3,233,204,80,232,78,22,114,3,233,219,0,60,32,115,3,233,127,246,205,159,254,192,117,3,233,106,
        1,254,200,60,233,116,213,60,234,117,3,233,175,0,60,34,117,3,233,45,13,60,211,117,3,233,236,1,60,38,117,3,233,209,0,60,213,
        117,12,232,232,245,160,40,0,83,232,67,2,91,195,60,212,117,13,232,216,245,83,139,30,71,3,232,247,74,91,195,60,218,117,46,232,
        199,245,232,155,20,40,60,35,117,13,232,184,5,83,232,64,38,135,218,91,233,3,0,232,249,30,232,131,20,41,83,135,218,11,219,117,
        3,233,221,246,232,141,75,91,195,60,208,117,3,233,0,2,60,216,117,3,233,139,16,60,200,117,3,233,208,59,60,220,117,3,233,76,
        46,60,222,117,3,233,249,18,60,214,117,3,233,112,15,60,133,117,3,233,56,42,60,219,117,3,233,164,59,60,209,117,3,233,126,2,
        232,96,253,232,46,20,41,195,182,125,232,93,253,139,30,82,3,83,232,214,99,91,195,232,148,29,83,135,218,137,30,163,4,232,65,
        1,116,3,232,175,74,91,195,138,7,60,97,114,249,60,123,115,245,36,95,195,60,38,116,3,233,108,246,186,0,0,232,24,245,232,229,
        255,60,79,116,57,60,72,117,52,181,5,67,138,7,232,213,255,232,42,21,135,218,115,10,60,58,115,77,44,48,114,73,235,6,60,71,115,
        67,44,55,3,219,3,219,3,219,3,219,10,195,138,216,135,218,254,205,117,209,233,140,237,75,232,213,244,135,218,115,36,60,56,114,
        3,233,107,237,185,208,7,81,3,219,114,156,3,219,114,152,3,219,114,148,89,181,0,44,48,138,200,3,217,135,218,235,213,232,153,
        74,135,218,195,67,138,7,44,129,60,7,117,14,83,232,154,244,60,40,91,116,3,233,224,73,176,7,181,0,208,192,138,200,81,232,134,
        244,138,193,60,5,115,34,232,131,252,232,81,19,44,232,148,73,135,218,139,30,163,4,94,135,222,86,83,135,218,232,101,4,135,218,
        94,135,222,86,235,33,232,254,254,94,135,222,86,138,195,60,12,114,11,60,27,205,161,83,115,3,232,123,80,91,186,213,25,82,176,
        1,162,168,4,185,185,0,205,160,3,217,46,255,39,254,206,60,234,116,133,60,45,116,129,254,198,60,43,117,1,195,60,233,116,251,
        159,75,158,195,254,192,18,192,89,34,197,4,255,26,192,232,248,73,235,15,182,90,232,18,252,232,146,80,247,211,137,30,163,4,
        89,233,25,252,160,251,2,60,8,254,200,254,200,254,200,195,138,197,80,232,118,80,88,90,60,122,117,3,233,137,74,60,123,117,3,
        233,102,72,185,12,101,81,60,70,117,3,11,218,195,60,80,117,3,35,218,195,60,60,117,3,51,218,195,60,50,117,5,51,218,247,211,
        195,247,211,35,218,247,211,195,43,218,233,207,72,160,99,0,235,3,232,175,51,254,192,138,216,50,192,138,248,233,132,73,232,
        46,0,82,232,49,254,94,135,222,86,139,23,128,250,255,117,3,233,188,244,14,187,7,101,83,255,54,80,3,82,160,251,2,80,60,3,117,
        3,232,247,12,88,135,218,187,163,4,203,232,97,243,185,0,0,60,27,115,16,60,17,114,12,232,83,243,160,2,3,10,192,208,208,138,
        200,135,218,187,18,0,3,217,135,218,195,232,217,255,82,232,16,18,231,232,194,6,94,135,222,86,137,23,91,195,60,208,116,233,
        60,209,116,28,232,249,17,83,232,245,17,69,232,241,17,71,140,218,116,7,232,233,17,231,232,155,6,137,22,80,3,195,232,243,1,
        232,224,1,135,218,137,23,135,218,138,7,60,40,116,3,233,50,245,232,241,242,232,63,27,138,7,60,41,117,3,233,35,245,232,185,
        17,44,235,238,232,201,1,160,251,2,10,192,80,137,30,82,3,135,218,139,31,11,219,117,3,233,116,235,138,7,60,40,116,3,233,206,
        0,232,187,242,137,30,49,3,135,218,139,30,82,3,232,133,17,40,50,192,80,83,135,218,176,128,162,57,3,232,240,26,135,218,94,135,
        222,86,160,251,2,80,82,232,155,250,137,30,82,3,91,137,30,49,3,88,232,65,1,177,4,232,55,16,187,248,255,3,220,139,227,232,249,
        71,160,251,2,80,139,30,82,3,138,7,60,41,116,19,232,59,17,44,83,139,30,49,3,232,50,17,44,235,177,88,162,228,3,88,10,192,116,
        78,162,251,2,187,0,0,3,220,232,191,71,187,8,0,3,220,139,227,90,179,3,254,195,74,139,242,172,10,192,120,246,74,74,74,160,251,
        2,2,195,138,232,160,228,3,138,200,2,197,60,100,114,3,233,84,243,80,138,195,181,0,187,230,3,3,217,138,200,232,223,0,185,197,
        28,81,81,233,153,244,139,30,82,3,232,250,241,83,139,30,49,3,232,201,16,41,176,82,137,30,49,3,160,124,3,4,4,80,208,200,138,
        200,232,150,15,88,138,200,246,208,254,192,138,216,183,255,3,220,139,227,83,186,122,3,232,158,0,91,137,30,122,3,139,30,228,
        3,137,30,124,3,139,203,187,126,3,186,230,3,232,134,0,138,248,138,216,137,30,228,3,139,30,80,4,67,137,30,80,4,138,199,10,195,
        162,77,4,139,30,49,3,232,144,249,75,232,141,241,116,3,233,41,234,232,141,253,117,17,186,44,3,139,30,163,4,59,218,114,6,232,
        124,8,232,230,8,139,30,122,3,138,247,138,211,67,67,138,15,67,138,47,65,65,65,65,187,122,3,232,47,0,135,218,139,227,139,30,
        80,4,75,137,30,80,4,138,199,10,195,162,77,4,91,88,83,36,7,187,140,3,138,200,181,0,3,217,232,252,252,91,195,139,242,172,136,
        7,67,66,73,138,197,10,193,117,242,195,83,139,30,46,0,67,11,219,91,117,244,178,12,233,206,233,232,231,15,209,176,128,162,57,
        3,10,7,138,200,233,91,25,60,126,116,3,233,157,233,67,138,7,67,60,131,117,3,233,164,12,60,160,117,3,233,175,55,60,162,117,
        3,233,192,56,233,129,233,232,117,4,135,218,236,233,57,253,232,97,4,82,232,167,15,44,232,203,0,90,195,232,240,255,238,195,
        232,235,255,82,80,178,0,75,232,186,240,116,7,232,140,15,44,232,176,0,88,138,240,94,135,222,86,160,94,0,10,192,117,11,135,
        218,236,135,218,50,194,34,198,116,238,91,195,233,52,233,60,35,116,60,232,150,248,232,145,252,117,88,232,125,32,138,198,182,
        0,246,208,10,192,121,3,233,179,241,138,208,82,232,72,15,44,232,108,0,90,159,134,196,80,134,196,83,82,138,194,2,192,138,208,
        176,20,159,134,196,80,134,196,233,8,32,232,80,240,232,76,0,80,232,32,15,44,232,68,0,88,83,82,232,199,32,232,50,58,10,192,
        121,3,233,113,241,67,90,136,23,91,195,232,46,0,232,184,51,162,41,0,44,14,115,252,4,28,246,208,254,192,2,194,162,42,0,195,
        232,19,240,232,26,248,83,232,156,76,135,218,91,138,198,10,192,195,232,1,240,232,8,248,232,235,255,116,3,233,50,241,75,232,
        242,239,138,194,195,232,127,245,75,232,232,239,205,162,89,232,242,234,81,232,25,40,139,30,59,3,75,232,214,239,116,14,232,
        168,14,44,232,195,31,178,2,50,192,232,150,33,187,255,255,137,30,46,0,232,117,16,117,5,176,1,162,111,0,91,90,138,15,67,138,
        47,67,138,197,10,193,117,3,233,61,233,232,90,16,117,3,232,7,13,81,138,15,67,138,47,67,81,94,135,222,86,135,218,59,218,89,
        115,3,233,30,233,94,135,222,86,83,81,135,218,137,30,73,3,232,170,69,91,138,7,60,9,116,5,176,32,232,243,11,232,24,0,187,247,
        1,232,5,0,232,179,12,235,151,138,7,10,192,117,1,195,232,105,23,67,235,243,185,247,1,182,255,50,192,162,252,2,50,192,162,94,
        4,232,121,39,235,6,65,67,254,206,116,223,138,7,10,192,139,249,170,116,214,60,11,114,40,60,32,138,208,114,56,60,34,117,10,
        160,252,2,52,1,162,252,2,176,34,60,58,117,16,160,252,2,208,216,114,7,208,208,36,253,162,252,2,176,58,10,192,121,3,233,60,
        0,138,208,60,46,116,9,232,87,1,115,4,50,192,235,24,160,94,4,10,192,116,15,254,192,117,11,176,32,139,249,170,65,254,206,117,
        1,195,176,1,162,94,4,138,194,60,11,114,7,60,32,115,3,233,55,1,139,249,170,235,130,160,252,2,208,216,114,67,208,216,208,216,
        115,82,138,7,60,217,83,81,187,165,32,83,117,207,73,139,241,172,60,77,117,199,73,139,241,172,60,69,117,191,73,139,241,172,
        60,82,117,183,73,139,241,172,60,58,117,175,88,88,91,254,198,254,198,254,198,254,198,235,45,89,91,138,7,233,53,255,160,252,
        2,12,2,162,252,2,50,192,195,160,252,2,12,4,235,243,208,208,114,231,138,7,60,132,117,3,232,225,255,60,143,117,3,232,229,255,
        138,7,254,192,138,7,117,5,67,138,7,36,127,67,60,161,117,3,232,248,67,60,177,117,10,138,7,67,60,233,176,177,116,1,75,83,81,
        82,205,163,187,54,1,138,232,177,64,254,193,67,138,247,138,211,46,138,7,10,192,116,242,159,67,158,121,244,46,138,7,58,197,
        117,232,135,218,60,208,116,2,60,209,138,193,90,89,138,208,117,12,160,94,4,10,192,176,0,162,94,4,235,21,60,91,117,7,50,192,
        162,94,4,235,29,160,94,4,10,192,176,255,162,94,4,116,13,176,32,139,249,170,65,254,206,117,3,233,164,5,138,194,235,6,46,138,
        7,67,138,208,36,127,139,249,170,65,254,206,117,3,233,141,5,10,194,121,233,60,168,117,5,50,192,162,94,4,91,233,100,254,232,
        191,13,114,1,195,60,48,114,251,60,58,245,195,75,232,136,237,82,81,80,232,33,238,88,185,181,33,81,60,11,117,3,233,96,66,60,
        12,117,3,233,99,66,139,30,2,3,233,19,79,89,90,160,0,3,178,79,60,11,116,6,60,12,178,72,117,20,176,38,139,249,170,65,254,206,
        116,192,138,194,139,249,170,65,254,206,116,182,160,1,3,60,4,178,0,114,6,178,33,116,2,178,35,138,7,60,32,117,3,232,82,67,138,
        7,67,10,192,116,42,139,249,170,65,254,206,116,143,160,1,3,60,4,114,234,159,73,158,139,241,172,159,65,158,117,4,60,46,116,
        8,60,68,116,4,60,69,117,211,178,0,235,207,138,194,10,192,116,9,139,249,170,65,254,206,117,1,195,139,30,254,2,233,174,253,
        232,241,231,81,232,245,1,89,90,81,81,232,32,232,115,11,138,247,138,211,94,135,222,86,83,59,218,114,3,233,0,238,187,45,7,232,
        246,88,89,187,221,9,94,135,222,86,135,218,139,30,88,3,139,242,172,139,249,170,65,66,59,218,117,244,139,217,137,30,88,3,195,
        232,50,0,232,195,36,30,142,30,80,3,138,7,31,233,238,248,232,22,0,82,232,177,36,232,89,11,44,232,125,252,90,6,142,6,80,3,139,
        250,170,7,195,232,122,244,83,232,4,0,135,218,91,195,185,173,107,81,232,105,248,120,246,205,164,160,166,4,60,144,117,237,232,
        171,88,120,232,232,130,72,185,128,145,186,0,0,233,58,64,185,10,0,81,138,245,138,213,116,53,60,44,116,11,82,232,116,237,138,
        238,138,202,90,116,38,232,0,11,44,232,102,237,116,29,88,232,246,10,44,82,232,104,237,116,3,233,182,228,11,210,117,3,233,74,
        237,135,218,94,135,222,86,135,218,81,232,76,231,90,82,81,232,70,231,139,217,90,59,218,135,218,115,3,233,44,237,90,89,88,83,
        82,235,21,3,217,115,3,233,30,237,135,218,83,187,249,255,59,218,91,115,3,233,16,237,82,139,23,11,210,135,218,90,116,12,138,
        7,67,10,7,159,75,158,135,218,117,213,81,232,36,0,89,90,91,82,139,23,67,11,210,116,20,135,218,94,135,222,86,135,218,67,137,
        23,135,218,3,217,135,218,91,235,228,185,181,8,81,60,13,50,192,162,61,3,139,30,48,0,75,67,138,7,67,10,7,117,1,195,67,139,23,
        67,232,123,235,10,192,116,236,138,200,160,61,3,10,192,138,193,116,91,205,165,60,167,117,24,232,99,235,60,137,117,228,232,
        92,235,60,14,117,221,82,232,172,236,11,210,117,10,235,41,60,14,117,204,82,232,158,236,83,232,140,230,159,73,158,176,13,114,
        63,232,120,8,187,252,35,82,232,105,87,91,232,96,65,89,91,83,81,232,81,65,91,90,75,235,163,85,110,100,101,102,105,110,101,
        100,32,108,105,110,101,32,0,60,13,117,234,82,232,97,236,83,135,218,67,67,67,138,15,67,138,47,176,14,187,247,35,83,139,30,
        254,2,83,75,136,47,75,136,15,75,136,7,91,195,160,61,3,10,192,116,248,233,73,255,232,178,9,66,232,174,9,65,232,170,9,83,232,
        166,9,69,160,93,4,10,192,116,3,233,110,227,83,139,30,90,3,135,218,139,30,92,3,59,218,116,3,233,92,227,91,138,7,44,48,115,
        3,233,73,227,60,2,114,3,233,66,227,162,92,4,254,192,162,93,4,232,150,234,195,46,138,7,10,192,116,248,232,3,0,67,235,243,159,
        134,196,80,134,196,233,25,7,116,9,232,132,242,83,232,6,71,235,32,83,187,210,36,232,165,86,232,225,12,90,115,3,233,143,9,82,
        67,138,7,232,0,69,138,7,10,192,117,228,232,228,70,137,30,12,0,232,158,63,91,195,82,97,110,100,111,109,32,110,117,109,98,101,
        114,32,115,101,101,100,32,40,45,51,50,55,54,56,32,116,111,32,51,50,55,54,55,41,0,177,29,235,2,177,26,181,0,135,218,139,30,
        46,0,137,30,90,4,135,218,254,197,75,232,12,234,116,23,60,34,117,11,232,3,234,10,192,116,12,60,34,117,245,60,161,116,29,60,
        205,117,228,10,192,117,21,67,138,7,67,10,7,138,209,117,3,233,157,226,67,139,23,67,137,22,90,4,232,215,233,60,143,117,7,81,
        232,17,236,89,235,217,60,132,117,7,81,232,2,236,89,235,206,138,193,60,26,138,7,116,13,60,177,116,163,60,178,117,161,254,205,
        117,157,195,60,130,116,150,60,131,117,148,254,205,116,243,232,157,233,116,168,135,218,139,30,46,0,83,139,30,90,4,137,30,46,
        0,135,218,81,232,215,17,89,75,232,129,233,186,42,37,116,8,232,80,8,44,75,186,121,37,94,135,222,86,137,30,46,0,91,82,195,159,
        80,160,168,4,162,169,4,88,158,159,80,50,192,162,168,4,88,158,195,232,219,2,138,7,67,138,15,67,138,47,90,81,80,232,214,2,88,
        138,240,138,23,67,138,15,67,138,47,91,138,194,10,198,117,1,195,138,198,44,1,114,249,50,192,58,194,254,192,115,241,254,206,
        254,202,139,241,172,65,58,7,159,67,158,116,220,245,233,114,63,232,247,61,235,8,232,252,61,235,3,232,174,74,232,47,0,232,137,
        2,185,23,41,81,138,7,67,83,232,171,0,91,138,15,67,138,47,232,13,0,83,138,216,232,91,2,90,195,176,1,232,149,0,187,44,3,83,
        136,7,67,137,23,91,195,75,181,34,138,245,83,177,255,67,138,7,254,193,10,192,116,8,58,198,116,4,58,197,117,239,60,34,117,3,
        232,177,232,83,138,197,60,44,117,13,254,193,254,201,116,7,75,138,7,60,32,116,245,91,94,135,222,86,67,135,218,138,193,232,
        180,255,186,44,3,176,82,139,30,12,3,137,30,163,4,176,3,162,251,2,232,23,62,186,47,3,59,218,137,30,12,3,91,138,7,117,155,186,
        16,0,233,34,225,67,232,146,255,232,236,1,232,124,62,254,198,254,206,116,133,139,241,172,232,217,4,60,13,117,3,232,165,5,65,
        235,236,10,192,235,2,88,158,159,80,139,30,92,3,135,218,139,30,47,3,246,208,138,200,181,255,3,217,67,59,218,114,15,137,30,
        47,3,67,135,218,88,158,195,88,134,196,158,195,88,158,186,14,0,117,3,233,202,224,58,192,159,80,185,218,38,81,139,30,10,3,137,
        30,47,3,187,0,0,83,139,30,92,3,83,187,14,3,139,22,12,3,59,218,185,42,39,116,3,233,156,0,187,226,3,137,30,78,4,139,30,90,3,
        137,30,75,4,139,30,88,3,139,22,75,4,59,218,116,27,138,7,67,67,67,80,232,69,19,88,60,3,117,5,232,113,0,50,192,138,208,182,
        0,3,218,235,221,139,30,78,4,139,23,11,210,139,30,90,3,116,25,135,218,137,30,78,4,67,67,139,23,67,67,135,218,3,218,137,30,
        75,4,135,218,235,183,89,139,22,92,3,59,218,117,3,233,108,0,138,7,67,80,67,67,232,248,18,138,15,67,138,47,67,88,83,3,217,60,
        3,117,221,137,30,51,3,91,138,15,181,0,3,217,3,217,67,135,218,139,30,51,3,135,218,59,218,116,196,185,197,39,81,50,192,10,7,
        159,67,158,138,23,159,67,158,138,55,159,67,158,117,1,195,139,203,139,30,47,3,59,218,139,217,114,243,91,94,135,222,86,59,218,
        94,135,222,86,83,139,217,115,227,89,88,88,83,82,81,195,90,91,11,219,116,249,75,138,47,75,138,15,83,75,138,31,183,0,3,217,
        138,245,138,209,75,139,203,139,30,47,3,232,160,60,91,136,15,67,136,47,139,217,75,233,224,254,81,83,139,30,163,4,94,135,222,
        86,232,160,240,94,135,222,86,232,237,59,138,7,83,139,30,163,4,83,2,7,186,15,0,115,3,233,120,223,232,219,253,90,232,72,0,94,
        135,222,86,232,63,0,83,139,30,45,3,135,218,232,14,0,232,11,0,187,58,23,94,135,222,86,83,233,7,254,91,94,135,222,86,138,7,
        67,138,15,67,138,47,138,216,254,195,254,203,117,1,195,139,241,172,139,250,170,65,66,235,241,232,146,59,139,30,163,4,135,218,
        232,32,0,135,218,117,229,82,138,245,138,209,74,138,15,139,30,47,3,59,218,117,10,50,192,138,232,3,217,137,30,47,3,91,195,205,
        238,139,30,12,3,75,138,47,75,138,15,75,59,218,117,238,137,30,12,3,195,185,127,27,81,232,183,255,50,192,138,240,138,7,10,192,
        195,185,127,27,81,232,237,255,117,3,233,85,231,67,139,23,139,242,172,195,232,46,253,232,14,246,139,30,45,3,136,23,89,233,
        114,253,232,255,229,232,211,4,40,232,247,245,82,232,203,4,44,232,250,237,232,196,4,41,94,135,222,86,83,232,236,241,116,5,
        232,225,245,235,3,232,185,255,90,232,5,0,232,213,245,176,32,80,138,194,232,236,252,138,232,88,254,197,254,205,116,188,139,
        30,45,3,136,7,67,254,205,117,249,235,175,232,163,0,50,192,94,135,222,86,138,200,176,83,83,138,7,58,197,114,3,138,197,186,
        177,0,81,232,81,253,89,91,83,67,138,47,67,138,63,138,221,181,0,3,217,139,203,232,168,252,138,216,232,247,254,90,232,13,255,
        233,232,252,232,102,0,90,82,139,242,172,42,197,235,188,135,218,138,7,232,92,0,254,197,254,205,117,3,233,152,230,81,232,181,
        1,88,134,196,158,94,135,222,86,185,117,41,81,254,200,58,7,181,0,114,1,195,138,200,138,7,42,193,58,194,138,232,114,243,138,
        234,195,232,0,255,117,3,233,142,241,138,208,67,139,31,83,3,218,138,47,136,55,94,135,222,86,81,75,232,23,229,232,190,63,89,
        91,136,47,195,135,218,232,225,3,41,89,90,81,138,234,195,232,0,229,232,3,237,232,2,241,176,1,80,116,22,88,232,243,244,10,192,
        117,3,233,38,230,80,232,189,3,44,232,236,236,232,253,57,232,179,3,44,83,139,30,163,4,94,135,222,86,232,217,236,232,163,3,
        41,83,232,80,254,135,218,89,91,88,81,185,7,101,81,185,127,27,81,80,82,232,68,254,90,88,138,232,254,200,138,200,58,7,176,0,
        115,162,139,242,172,10,192,138,197,116,153,138,7,67,138,47,67,138,63,138,221,181,0,3,217,42,193,138,232,81,82,94,135,222,
        86,138,15,67,139,23,91,83,82,81,139,242,172,58,7,117,30,66,254,201,116,12,67,254,205,117,239,90,90,89,90,50,192,195,91,90,
        90,89,138,197,42,199,2,193,254,192,195,89,90,91,67,254,205,117,208,235,229,232,33,3,40,232,151,12,232,97,57,83,82,135,218,
        67,139,23,139,30,92,3,59,218,114,18,139,30,48,0,59,218,115,10,91,83,232,46,251,91,83,232,190,57,91,94,135,222,86,232,241,
        2,44,232,21,244,10,192,117,3,233,75,229,80,138,7,232,102,0,82,232,4,236,83,232,138,253,135,218,91,89,88,138,232,94,135,222,
        86,83,187,7,101,94,135,222,86,138,193,10,192,116,144,138,7,42,197,115,3,233,27,229,254,192,58,193,114,2,138,193,138,205,254,
        201,181,0,82,67,138,23,67,138,63,138,218,3,217,138,232,90,135,218,138,15,67,139,31,135,218,138,193,10,192,117,1,195,139,242,
        172,136,7,66,67,254,201,116,244,254,205,117,241,195,178,255,60,41,116,7,232,113,2,44,232,149,243,232,106,2,41,195,232,150,
        239,116,3,233,6,0,232,18,253,232,124,251,139,22,92,3,139,30,47,3,233,203,239,205,180,159,134,196,80,134,196,83,232,37,4,116,
        3,233,221,23,91,88,134,196,158,81,159,80,60,8,117,16,232,103,35,10,192,116,25,254,200,232,99,35,176,8,235,56,60,9,117,16,
        176,32,232,202,255,232,78,35,36,7,117,244,88,158,89,195,60,32,114,32,160,41,0,138,232,232,58,35,254,197,116,11,254,205,58,
        197,117,3,232,114,0,116,9,60,255,116,5,254,192,232,39,35,88,158,89,159,80,88,158,232,124,34,195,205,181,232,188,3,116,61,
        232,182,23,115,243,81,82,83,160,54,5,36,200,162,54,5,232,204,24,91,90,89,160,107,4,10,192,116,3,233,10,49,160,239,4,10,192,
        116,7,187,232,14,83,233,237,0,83,81,82,187,45,7,232,2,79,90,89,176,13,91,195,232,18,33,195,232,204,34,10,192,116,248,235,
        11,198,7,0,232,106,3,187,246,1,117,7,205,182,176,13,232,45,255,232,91,3,116,3,50,192,195,50,192,232,172,34,50,192,195,205,
        183,160,94,0,10,192,117,1,195,232,196,255,117,3,232,220,1,233,144,1,232,125,226,83,232,175,32,116,33,232,176,255,10,192,117,
        16,80,176,2,232,139,249,139,30,45,3,90,137,23,233,208,249,80,232,123,249,88,138,208,232,74,252,187,6,0,137,30,163,4,176,3,
        162,251,2,91,195,83,139,30,10,3,181,0,3,217,3,217,176,38,42,195,138,216,176,255,26,199,138,248,114,6,3,220,91,115,1,195,139,
        30,44,0,75,75,137,30,69,3,186,7,0,233,212,218,57,30,47,3,115,233,81,82,83,232,6,250,91,90,89,57,30,47,3,115,218,235,227,117,
        214,139,30,48,0,232,121,1,162,100,4,162,62,3,162,61,3,136,7,67,136,7,67,137,30,88,3,205,174,139,30,48,0,75,205,175,137,30,
        59,3,160,101,4,10,192,117,23,50,192,162,93,4,162,92,4,181,26,187,96,3,205,176,198,7,4,67,254,205,117,248,186,7,0,187,11,0,
        232,198,55,50,192,162,79,3,138,216,138,248,137,30,77,3,137,30,86,3,139,30,10,3,160,107,4,10,192,117,4,137,30,47,3,50,192,
        232,124,0,139,30,88,3,137,30,90,3,137,30,92,3,160,101,4,10,192,117,3,232,180,21,160,54,5,36,1,117,3,162,54,5,89,139,30,44,
        0,75,75,137,30,69,3,67,67,205,177,139,227,187,14,3,137,30,12,3,232,243,247,232,202,230,50,192,138,248,138,216,137,30,124,
        3,162,77,4,137,30,228,3,137,30,80,4,137,30,122,3,162,57,3,83,81,139,30,59,3,195,59,218,195,94,139,251,252,46,166,86,139,223,
        117,10,138,7,60,58,114,1,195,233,28,225,233,178,217,135,218,139,30,48,0,116,17,135,218,232,82,226,83,232,74,220,139,217,90,
        114,3,233,11,227,75,137,30,94,3,135,218,195,117,253,254,192,235,9,117,247,156,117,3,232,31,21,157,137,30,67,3,187,14,3,137,
        30,12,3,187,12,255,89,139,30,46,0,83,156,138,195,34,199,254,192,116,12,137,30,84,3,139,30,67,3,137,30,86,3,232,245,253,157,
        187,50,7,116,3,233,20,218,233,65,218,176,15,80,176,94,232,41,253,88,4,64,232,35,253,233,236,253,139,30,86,3,11,219,186,17,
        0,117,3,233,69,217,139,22,84,3,137,22,46,0,195,184,50,192,162,118,4,195,232,200,8,82,83,187,110,4,232,11,54,139,30,90,3,94,
        135,222,86,232,108,236,80,232,55,255,44,232,173,8,88,138,232,232,94,236,58,197,116,3,233,8,217,94,135,222,86,135,218,83,139,
        30,90,3,59,218,117,19,90,91,94,135,222,86,82,232,210,53,91,186,110,4,232,203,53,91,195,233,102,225,176,1,162,57,3,232,115,
        8,117,243,83,162,57,3,138,253,138,217,73,73,73,139,241,172,73,10,192,120,248,73,73,3,218,135,218,139,30,92,3,59,218,139,242,
        172,139,249,170,159,66,158,159,65,158,117,240,73,139,217,137,30,92,3,91,138,7,60,44,117,183,232,226,223,235,182,88,134,196,
        158,91,195,138,7,60,65,114,249,60,91,245,195,233,238,253,116,251,60,44,116,9,232,251,224,75,232,192,223,116,238,232,146,254,
        44,116,232,139,22,44,0,60,44,116,3,232,71,0,75,232,169,223,82,116,78,232,122,254,44,116,72,232,55,0,75,232,153,223,116,3,
        233,53,216,94,135,222,86,83,187,238,0,59,218,115,45,91,232,54,0,114,39,83,139,30,88,3,185,20,0,3,217,59,218,115,25,135,218,
        137,30,10,3,91,137,30,44,0,91,235,150,232,240,242,11,210,117,3,233,152,224,195,233,47,253,139,22,44,0,43,22,10,3,235,186,
        139,195,43,194,139,208,195,205,178,83,139,30,233,4,11,219,91,195,1,48,78,48,225,48,253,47,241,47,91,48,48,48,27,48,139,30,
        86,0,232,74,0,116,1,195,235,4,176,1,235,2,176,255,162,112,0,254,192,232,101,1,183,1,232,11,0,117,232,232,11,31,232,94,0,50,
        192,195,160,92,0,58,195,116,248,115,7,138,216,50,192,233,245,30,254,195,233,240,30,160,91,0,58,195,116,227,176,1,58,195,116,
        221,254,203,233,222,30,160,41,0,58,199,116,209,254,199,233,210,30,139,30,91,0,183,1,137,30,88,0,233,197,30,139,30,86,0,232,
        9,0,117,182,160,41,0,138,248,235,197,176,1,58,199,116,169,254,207,233,170,30,160,91,0,138,248,160,92,0,138,216,42,199,114,
        150,254,192,80,232,153,0,160,88,0,254,195,58,195,254,203,115,13,58,199,114,9,117,2,176,1,254,200,162,88,0,88,254,200,117,
        3,233,3,0,232,222,30,195,160,91,0,138,216,160,92,0,138,248,42,195,114,241,254,192,80,232,127,0,160,88,0,58,195,114,16,58,
        199,120,3,233,9,0,117,2,176,255,254,192,162,88,0,88,254,200,116,207,233,187,30,139,30,91,0,160,93,0,138,232,138,197,58,195,
        115,2,138,216,58,199,115,2,138,248,138,199,183,0,42,195,254,192,186,114,0,80,135,218,3,218,136,7,67,136,7,67,254,200,117,
        249,135,218,88,50,192,162,88,0,162,89,0,162,90,0,233,43,255,80,232,55,0,181,1,138,200,138,197,139,250,170,74,139,242,172,
        138,233,138,200,88,254,200,117,1,195,80,235,234,80,181,1,232,23,0,138,200,138,197,139,250,170,66,139,242,172,138,233,138,
        200,88,254,200,116,226,80,235,235,83,186,116,0,183,0,254,203,3,218,138,7,135,218,91,34,192,195,83,186,116,0,183,0,254,203,
        3,218,136,7,135,218,91,195,205,166,232,65,1,139,30,86,0,137,30,88,0,160,41,0,254,192,235,30,176,63,232,12,250,176,32,232,
        7,250,50,192,162,39,0,205,167,232,30,1,139,30,86,0,137,30,88,0,138,199,162,90,0,232,225,4,254,203,116,5,176,1,232,175,255,
        232,12,35,232,65,35,232,164,27,232,8,35,232,56,35,60,27,117,2,176,21,10,192,117,3,232,113,28,80,139,30,88,0,135,218,139,30,
        86,0,138,195,58,194,117,22,138,199,58,198,115,4,137,30,88,0,160,90,0,58,199,115,5,138,199,162,90,0,88,232,41,0,114,10,116,
        181,232,253,1,232,147,249,235,173,60,3,249,116,1,245,187,246,1,195,60,59,117,251,233,248,220,75,67,254,201,120,242,46,58,
        7,117,246,195,187,148,50,177,14,232,236,255,121,3,233,7,0,80,50,192,162,114,0,88,187,162,50,177,12,232,216,255,121,3,233,
        32,0,80,138,193,10,192,208,192,138,200,50,192,138,232,187,174,50,3,217,46,138,23,67,46,138,55,88,82,139,30,86,0,195,60,32,
        114,3,34,192,195,60,7,116,249,60,9,116,245,60,11,116,241,60,12,116,237,60,28,114,4,60,32,114,229,50,192,195,13,2,6,5,3,11,
        12,28,29,30,31,14,127,21,9,10,8,18,2,6,5,3,13,14,127,21,255,52,86,52,202,52,57,51,175,51,7,53,37,53,77,53,1,52,119,52,243,
        50,193,51,232,13,253,116,200,88,181,254,187,247,1,232,65,249,136,7,60,13,116,17,60,10,117,6,138,197,60,254,116,237,67,254,
        205,117,232,254,205,50,192,136,7,187,246,1,195,160,114,0,10,192,116,58,232,97,254,80,135,218,198,7,0,135,218,254,195,232,
        41,3,160,41,0,42,199,116,11,254,192,80,232,245,0,88,254,200,117,247,139,30,86,0,232,59,254,88,138,200,50,192,139,250,170,
        66,138,193,139,250,170,50,192,195,176,10,10,192,195,232,90,2,186,247,1,181,254,160,88,0,58,195,183,1,160,41,0,117,19,139,
        30,88,0,82,232,9,254,90,160,41,0,116,5,160,90,0,254,200,162,90,0,232,60,2,138,197,34,192,116,16,82,232,238,253,90,117,9,183,
        1,254,195,160,41,0,235,228,135,218,176,254,42,198,138,240,75,138,7,60,32,116,8,10,192,117,7,254,206,116,3,75,235,239,67,198,
        7,0,135,218,176,13,80,183,1,232,124,27,176,13,232,252,247,187,246,1,88,249,195,50,192,162,247,1,232,167,253,117,4,254,195,
        235,247,176,3,235,221,138,199,254,200,36,248,4,8,254,192,138,232,160,41,0,58,197,115,2,138,232,138,197,160,114,0,10,192,138,
        197,117,12,58,199,116,5,138,248,232,54,27,50,192,195,42,199,116,251,80,160,80,0,232,20,0,232,170,247,88,254,200,117,241,195,
        160,114,0,246,208,162,114,0,50,192,195,83,139,30,86,0,80,160,114,0,10,192,116,3,232,3,0,88,91,195,160,88,0,58,195,117,16,
        83,187,90,0,254,7,160,41,0,58,7,115,2,136,7,91,160,80,0,138,200,232,143,1,114,16,116,220,80,50,192,232,40,253,254,195,232,
        230,1,88,254,203,254,195,183,1,235,227,83,160,41,0,58,199,117,11,183,0,160,93,0,58,195,117,0,254,195,254,199,232,9,0,91,83,
        232,173,26,50,192,91,195,176,1,58,199,116,4,254,207,235,20,83,254,203,116,14,160,41,0,138,248,232,208,252,117,4,94,135,222,
        86,91,232,136,26,160,88,0,58,195,117,10,160,90,0,254,200,116,3,162,90,0,232,66,1,83,232,174,252,117,17,254,195,183,1,232,
        5,2,94,135,222,86,232,251,1,91,235,230,91,232,85,26,50,192,195,232,145,252,117,11,160,91,0,58,195,116,4,254,195,235,240,160,
        41,0,138,248,160,80,0,138,200,81,232,34,26,89,254,207,116,10,10,192,116,243,58,193,116,239,254,199,254,199,232,36,26,50,192,
        195,232,148,0,183,1,232,25,26,83,160,80,0,232,173,1,91,254,199,160,41,0,254,192,58,199,117,237,232,65,252,117,165,183,1,254,
        195,235,226,50,192,162,112,0,235,8,232,229,25,232,74,1,114,15,232,64,0,116,197,235,241,232,214,25,232,59,1,115,7,232,49,0,
        116,182,235,241,50,192,195,50,192,162,112,0,235,8,232,189,25,232,34,1,115,15,232,38,0,116,235,235,241,232,174,25,232,19,1,
        114,7,232,23,0,116,220,235,241,232,2,0,235,211,139,30,86,0,232,196,250,117,204,183,1,233,150,250,139,30,86,0,232,223,250,
        117,190,160,41,0,138,248,233,154,250,254,203,116,5,232,193,251,116,247,254,195,195,81,160,90,0,58,199,114,26,232,103,25,232,
        22,0,139,250,170,66,94,135,222,86,254,207,94,135,222,86,116,4,254,199,235,223,89,195,10,192,117,2,176,32,195,232,69,0,80,
        232,138,251,116,21,88,34,192,116,241,60,32,116,237,160,80,0,58,193,116,230,138,193,34,192,195,88,249,195,160,41,0,58,199,
        116,25,254,199,232,196,0,83,254,207,232,187,0,91,254,199,160,41,0,254,192,58,199,117,235,254,207,160,80,0,232,167,0,195,83,
        81,232,164,0,89,80,138,193,232,154,0,88,138,200,160,41,0,254,192,254,199,58,199,117,231,138,193,91,195,83,160,92,0,42,195,
        114,47,116,34,139,30,91,0,94,135,222,86,83,138,195,162,91,0,160,93,0,162,92,0,232,90,250,91,94,135,222,86,137,30,91,0,91,
        83,183,1,232,249,24,91,176,1,233,6,251,139,30,86,0,254,203,116,3,232,171,24,232,254,249,91,254,203,195,60,48,114,251,60,58,
        114,18,60,65,114,243,60,91,114,10,60,97,114,235,60,123,114,2,249,195,34,192,195,83,183,1,160,41,0,138,232,81,232,101,24,89,
        60,255,116,8,254,199,254,205,117,241,91,195,91,83,183,1,232,164,24,91,195,233,67,24,233,73,24,162,40,0,139,30,71,3,10,199,
        34,195,254,192,135,218,116,232,235,19,187,246,1,116,225,249,156,67,233,117,210,232,124,217,116,3,233,114,217,91,137,22,73,
        3,232,120,211,114,3,233,60,218,139,217,67,67,139,23,67,67,83,135,218,232,78,46,91,138,7,60,9,116,5,176,32,232,151,244,232,
        188,232,187,247,1,232,169,232,232,87,245,139,30,86,0,254,203,116,9,254,203,116,5,232,53,250,116,247,254,195,232,240,23,233,
        160,209,60,10,116,3,233,107,244,83,139,30,233,4,138,199,10,195,91,176,10,117,8,80,176,13,232,87,244,88,195,232,82,244,176,
        13,232,77,244,176,10,195,75,232,190,215,117,1,195,232,143,246,44,185,91,55,81,176,200,235,2,50,192,162,250,2,138,15,205,179,
        232,201,247,115,3,233,63,208,50,192,138,232,162,142,0,67,138,7,60,46,114,66,116,13,60,58,115,4,60,48,115,5,232,171,247,114,
        51,138,232,81,181,255,186,142,0,12,128,254,197,139,250,170,66,67,138,7,60,58,115,4,60,48,115,237,232,139,247,115,232,60,46,
        116,228,138,197,60,39,114,3,233,245,207,89,162,142,0,138,7,60,38,115,30,186,3,56,82,182,2,60,37,116,132,254,198,60,36,117,
        1,195,254,198,60,33,116,249,182,8,60,35,116,243,88,138,193,36,127,138,208,182,0,83,187,31,3,3,218,138,55,91,75,138,198,162,
        251,2,232,18,215,160,57,3,254,200,117,3,233,122,1,120,3,233,16,0,138,7,44,40,117,3,233,205,0,44,51,117,3,233,198,0,50,192,
        162,57,3,83,160,77,4,10,192,162,74,4,116,30,139,30,124,3,186,126,3,3,218,137,30,75,4,135,218,233,247,45,160,74,4,10,192,116,
        36,50,192,162,74,4,139,30,90,3,137,30,75,4,139,30,88,3,233,220,45,232,4,255,195,50,192,138,240,138,208,89,94,135,222,86,195,
        91,94,135,222,86,82,186,106,56,59,218,116,231,186,218,25,59,218,90,116,73,94,135,222,86,83,81,160,251,2,138,232,160,142,0,
        2,197,254,192,138,200,81,181,0,65,65,65,139,30,92,3,83,3,217,89,83,232,25,44,91,137,30,92,3,139,217,137,30,90,3,75,198,7,
        0,59,218,117,248,90,136,55,67,90,137,23,67,232,221,1,135,218,66,91,195,50,192,162,166,4,138,248,138,216,137,30,163,4,232,
        64,226,117,7,187,6,0,137,30,163,4,91,195,83,139,30,250,2,94,135,222,86,138,240,82,81,186,142,0,139,242,172,10,192,116,61,
        135,218,4,2,208,216,138,200,232,195,243,138,193,138,15,67,138,47,67,81,254,200,117,245,83,160,142,0,80,135,218,232,40,215,
        88,137,30,181,0,91,4,2,208,216,89,75,136,47,75,136,15,254,200,117,245,139,30,181,0,235,8,232,10,215,50,192,162,142,0,160,
        92,4,10,192,116,8,11,210,117,3,233,95,0,74,89,88,134,196,158,135,218,94,135,222,86,83,135,218,254,192,138,240,138,7,60,44,
        116,136,60,41,116,7,60,93,116,3,233,64,206,232,156,213,137,30,82,3,91,137,30,250,2,178,0,82,235,7,83,159,134,196,80,134,196,
        139,30,90,3,233,175,44,160,250,2,10,192,116,3,233,32,206,88,134,196,158,139,203,117,3,233,85,43,42,7,117,3,233,152,0,186,
        9,0,233,25,206,160,251,2,136,7,67,138,208,182,0,88,134,196,158,117,3,233,202,0,136,15,67,136,47,232,211,0,67,138,200,232,
        245,242,67,67,137,30,49,3,136,15,67,160,250,2,208,208,138,193,114,15,159,80,160,92,4,52,11,138,200,181,0,88,158,115,4,89,
        159,65,158,136,15,159,80,67,136,47,67,232,122,42,88,158,254,200,117,218,159,80,138,238,138,202,135,218,3,218,115,3,233,207,
        242,232,220,242,137,30,92,3,75,198,7,0,59,218,117,248,50,192,65,138,240,139,30,49,3,138,23,135,218,3,219,3,217,135,218,75,
        75,137,23,67,67,88,158,114,70,138,232,138,200,138,7,67,182,91,139,23,67,67,94,135,222,86,80,59,218,114,3,233,79,255,232,29,
        42,3,218,88,254,200,139,203,117,227,160,251,2,139,203,3,219,44,4,114,8,3,219,10,192,116,11,3,219,10,192,122,3,233,2,0,3,217,
        89,3,217,135,218,139,30,82,3,195,249,26,192,91,195,138,7,67,81,181,0,138,200,3,217,89,195,81,82,159,80,186,142,0,139,242,
        172,138,232,254,197,139,242,172,66,67,136,7,254,205,117,245,88,158,90,89,195,232,90,220,232,106,41,232,32,243,59,135,218,
        139,30,163,4,235,10,160,58,3,10,192,116,17,90,135,218,83,50,192,162,58,3,254,192,156,82,138,47,10,197,117,3,233,95,213,67,
        139,31,235,36,138,213,83,177,2,138,7,67,60,92,117,3,233,157,1,60,32,117,6,254,193,254,205,117,236,91,138,234,176,92,232,214,
        1,232,130,240,50,192,138,208,138,240,232,202,1,138,240,138,7,67,60,33,117,3,233,111,1,60,35,116,82,60,38,117,3,233,96,1,254,
        205,117,3,233,46,1,60,43,176,8,116,217,75,138,7,67,60,46,116,85,60,95,117,3,233,55,1,60,92,116,156,58,7,117,182,60,36,116,
        24,60,42,117,174,138,197,67,60,2,114,4,138,7,60,36,176,32,117,10,254,205,254,194,190,50,192,4,16,67,254,194,2,198,138,240,
        254,194,177,0,254,205,116,97,138,7,67,60,46,116,30,60,35,116,237,60,44,117,35,138,198,12,64,138,240,235,225,138,7,60,35,176,
        46,116,3,233,101,255,177,1,67,254,193,254,205,116,54,138,7,67,60,35,116,243,82,186,244,59,82,138,247,138,211,60,94,116,1,
        195,58,7,117,251,67,58,7,117,246,67,58,7,117,241,67,138,197,44,4,114,234,90,90,138,232,254,198,67,235,3,135,218,90,138,198,
        75,254,194,36,8,117,28,254,202,138,197,10,192,116,20,138,7,44,45,116,6,60,254,117,10,176,8,4,4,2,198,138,240,254,205,91,157,
        116,101,81,82,232,2,219,90,89,81,83,138,234,138,197,2,193,60,25,114,3,233,35,212,138,198,12,128,232,92,59,232,119,234,91,
        75,232,216,210,249,116,17,162,58,3,60,59,116,7,60,44,116,3,233,104,203,232,196,210,89,135,218,91,83,156,82,138,7,42,197,67,
        182,0,138,208,139,31,3,218,138,197,10,192,116,3,233,173,254,235,6,232,123,0,232,39,239,91,157,116,3,233,88,254,115,3,232,
        231,239,94,135,222,86,232,28,236,91,233,3,216,195,232,93,0,254,205,138,7,67,232,4,239,235,202,177,0,235,5,177,1,235,1,88,
        254,205,232,69,0,91,157,116,208,81,232,110,218,232,127,39,89,81,83,139,30,163,4,138,233,177,0,138,197,80,138,197,10,192,116,
        3,232,161,236,232,228,233,139,30,163,4,88,10,192,117,3,233,94,255,42,7,138,232,176,32,254,197,254,205,117,3,233,79,255,232,
        177,238,235,244,80,138,198,10,192,176,43,116,3,232,163,238,88,195,137,30,53,3,232,236,231,232,15,210,135,218,232,102,0,159,
        68,158,159,68,158,117,8,3,217,139,227,137,30,69,3,139,30,46,0,83,139,30,53,3,83,82,235,40,116,3,233,137,202,135,218,232,63,
        0,117,103,139,227,137,30,69,3,139,22,46,0,137,22,90,4,67,67,139,23,67,67,139,31,137,30,46,0,135,218,232,204,217,83,232,132,
        39,91,116,9,185,177,0,138,233,81,233,125,209,139,30,90,4,137,30,46,0,91,89,89,233,111,209,187,4,0,3,220,67,138,7,67,185,130,
        0,58,193,117,7,185,16,0,3,217,235,238,185,177,0,58,193,116,1,195,57,23,185,6,0,116,248,3,217,235,219,186,30,0,233,47,202,
        232,58,7,75,232,109,209,116,85,232,114,217,83,232,108,221,116,61,232,10,51,232,139,232,139,30,163,4,67,138,23,67,138,55,139,
        242,172,60,32,117,9,66,136,55,75,136,23,75,254,15,232,220,232,91,75,232,58,209,116,34,60,59,116,5,232,8,240,44,75,232,44,
        209,176,44,232,175,237,235,186,176,34,232,168,237,232,186,232,176,34,232,160,237,235,215,232,103,238,233,139,214,205,168,
        83,138,242,232,135,1,116,9,60,58,116,15,232,126,1,121,247,138,214,91,50,192,176,252,205,171,195,138,198,42,194,254,200,60,
        2,115,5,205,172,233,97,201,60,5,114,3,233,90,201,89,82,81,138,200,138,232,186,156,62,94,135,222,86,83,138,7,60,97,114,6,60,
        123,115,2,44,32,81,138,232,139,242,46,172,67,66,58,197,89,117,21,254,201,117,226,139,242,46,172,10,192,120,3,233,6,0,91,91,
        90,10,192,195,10,192,120,235,139,242,46,172,10,192,159,66,158,121,245,138,205,91,83,139,242,46,172,10,192,117,182,233,254,
        200,75,89,66,68,255,83,67,82,78,254,76,80,84,49,253,67,65,83,49,252,0,123,88,145,88,167,88,189,88,205,169,83,82,159,134,196,
        80,134,196,186,46,0,3,218,176,255,42,7,2,192,138,208,205,170,182,0,187,177,62,3,218,46,138,23,67,46,138,55,88,134,196,158,
        138,216,183,0,3,218,46,138,23,67,46,138,55,135,218,90,94,135,222,86,195,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,232,17,216,83,232,140,233,138,7,10,192,116,79,67,138,23,67,138,63,138,218,138,208,50,192,162,255,6,232,219,254,159,134,
        196,80,134,196,185,240,4,182,11,254,194,254,202,116,77,138,7,60,32,114,38,60,46,116,40,139,249,170,65,67,254,206,117,233,
        88,134,196,158,159,134,196,80,134,196,138,240,160,240,4,254,192,116,6,88,134,196,158,91,195,233,40,200,67,235,202,176,1,162,
        255,6,138,198,60,11,116,239,60,3,114,235,116,236,176,32,139,249,170,65,254,206,235,234,176,32,139,249,170,65,254,206,117,
        246,235,186,138,7,67,254,202,195,232,122,223,138,216,160,223,4,58,195,115,3,233,233,199,183,0,3,219,135,218,139,30,224,4,
        3,218,139,31,160,54,5,254,192,116,219,138,7,10,192,116,213,83,186,46,0,3,218,138,7,60,9,115,5,205,220,233,192,199,91,138,
        7,10,192,249,195,75,232,53,207,60,35,117,3,232,46,207,232,42,223,94,135,222,86,83,232,171,255,117,3,233,155,199,137,30,233,
        4,195,185,152,20,81,232,28,215,138,7,60,44,117,89,83,232,145,232,138,7,10,192,117,3,233,124,199,67,139,31,138,7,36,223,178,
        1,60,73,116,21,178,2,60,79,116,15,178,4,60,82,116,9,178,8,60,65,116,3,233,84,199,91,82,232,175,237,44,60,35,117,3,232,208,
        206,232,204,222,232,161,237,44,138,194,10,192,117,3,233,61,199,80,232,178,254,88,89,138,209,205,221,233,131,0,232,169,254,
        138,7,60,130,178,4,117,89,232,165,206,60,133,178,1,116,77,60,79,116,32,60,73,116,55,232,107,237,65,232,103,237,80,232,99,
        237,80,232,95,237,69,232,91,237,78,232,87,237,68,178,8,235,44,232,120,206,232,76,237,85,232,72,237,84,232,68,237,80,232,64,
        237,85,232,60,237,84,178,2,235,17,232,93,206,232,49,237,66,232,45,237,77,178,32,75,232,79,206,232,35,237,65,232,31,237,83,
        82,138,7,60,35,117,3,232,61,206,232,57,222,10,192,117,3,233,176,198,205,222,180,82,75,138,208,232,41,206,116,3,233,197,198,
        94,135,222,86,138,194,159,134,196,80,134,196,83,232,156,254,116,3,233,149,198,90,138,198,60,9,205,223,115,3,233,131,198,83,
        185,46,0,3,217,136,55,176,0,91,233,145,253,83,10,192,117,10,160,54,5,36,1,116,3,233,70,3,232,107,254,116,21,137,30,233,4,
        83,176,2,115,3,233,113,253,205,224,233,80,198,232,36,3,91,83,186,49,0,3,218,136,7,138,248,138,216,137,30,233,4,91,2,7,198,
        7,0,91,195,249,235,3,13,50,192,159,80,232,159,253,205,233,88,158,159,80,116,20,138,7,44,44,10,192,117,12,232,150,205,232,
        106,236,82,88,158,249,159,80,159,80,50,192,178,1,232,84,255,139,30,233,4,185,49,0,3,217,88,158,26,192,36,128,12,1,162,54,
        5,88,158,159,80,26,192,162,239,4,138,7,10,192,121,3,233,216,0,88,158,116,3,232,87,235,50,192,232,44,254,233,5,199,232,66,
        253,205,234,75,232,70,205,178,128,249,117,3,232,121,5,116,24,232,16,236,44,60,80,178,146,117,6,232,47,205,249,235,8,232,0,
        236,65,10,192,178,2,159,80,138,194,36,16,162,98,4,88,158,159,80,254,192,162,95,0,50,192,232,221,254,88,158,83,139,30,233,
        4,138,7,91,36,128,117,3,233,20,221,83,232,99,225,160,98,4,10,192,116,3,232,121,4,139,30,88,3,137,30,4,7,139,30,48,0,83,139,
        30,233,4,232,198,0,10,192,121,3,233,22,0,233,77,197,160,98,4,10,192,116,3,232,162,4,91,50,192,162,98,4,233,200,254,91,232,
        2,0,235,231,232,160,0,60,252,117,3,233,13,26,205,235,233,31,197,139,30,48,0,10,192,232,3,0,233,70,0,159,80,232,131,0,60,252,
        117,3,233,54,26,88,158,205,236,233,0,197,88,158,195,36,32,162,99,4,88,158,117,3,233,241,196,232,119,234,160,99,4,162,100,
        4,232,171,0,50,192,232,241,252,198,7,128,137,30,233,4,232,75,0,10,192,120,179,205,237,233,211,196,160,100,4,10,192,116,3,
        232,40,4,232,39,199,67,67,137,30,88,3,232,90,234,50,192,162,54,5,232,67,254,160,239,4,10,192,116,3,233,249,203,233,196,197,
        135,218,139,30,47,3,135,218,59,218,114,152,232,28,234,50,192,162,54,5,233,235,233,83,82,139,30,233,4,186,46,0,3,218,138,7,
        90,91,195,117,30,83,81,80,186,38,67,82,81,10,192,195,88,89,254,200,121,240,91,195,89,91,138,7,60,44,117,247,232,228,203,81,
        138,7,60,35,117,3,232,218,203,232,214,219,94,135,222,86,83,186,46,67,82,249,255,227,185,40,65,160,223,4,235,191,160,54,5,
        10,192,120,204,185,40,65,50,192,160,223,4,235,174,50,192,138,232,138,197,232,49,252,198,7,0,160,223,4,254,197,42,197,115,
        239,50,192,162,54,5,232,149,233,139,30,48,0,75,198,7,0,233,219,195,91,88,134,196,158,83,82,81,159,134,196,80,134,196,139,
        30,233,4,176,6,232,5,0,205,227,233,235,195,159,134,196,80,134,196,82,135,218,187,46,0,3,218,138,7,135,218,90,60,9,115,3,233,
        202,0,88,134,196,158,94,135,222,86,91,233,228,250,81,83,82,139,30,233,4,176,8,232,206,255,205,228,233,180,195,90,91,89,195,
        232,48,203,232,4,234,36,232,0,234,40,83,139,30,233,4,83,187,0,0,137,30,233,4,91,94,135,222,86,232,18,219,82,138,7,60,44,117,
        11,232,9,203,232,205,251,91,50,192,138,7,159,80,232,211,233,41,88,158,94,135,222,86,159,80,138,195,10,192,117,3,233,38,204,
        83,232,7,226,135,218,89,88,158,159,80,116,40,232,22,232,60,3,116,19,136,7,67,254,201,117,236,88,158,89,91,137,30,233,4,81,
        233,51,226,88,158,139,30,46,0,137,30,71,3,91,233,6,195,232,106,255,115,3,233,48,195,235,213,205,229,232,18,0,83,181,1,232,
        2,0,91,195,50,192,136,7,67,254,205,117,249,195,139,30,233,4,186,51,0,3,218,195,88,134,196,158,195,232,7,251,117,3,233,250,
        194,176,10,115,3,233,18,250,205,230,233,238,194,232,243,250,117,3,233,230,194,176,12,115,3,233,254,249,205,231,233,218,194,
        232,223,250,117,3,233,210,194,176,14,115,3,233,234,249,205,232,233,198,194,232,255,234,117,3,233,31,202,50,192,232,71,252,
        178,66,233,242,194,60,35,117,173,232,44,218,232,4,233,44,138,194,83,232,0,251,91,138,7,195,185,236,45,81,50,192,233,36,252,
        232,30,214,185,155,22,186,32,44,117,27,138,214,235,23,185,152,20,81,232,204,255,232,81,242,232,27,31,82,185,138,17,50,192,
        138,240,138,208,80,81,83,232,165,254,115,3,233,107,194,60,32,117,6,254,198,254,206,117,238,60,34,117,19,138,232,138,194,60,
        44,138,197,117,9,138,245,138,213,232,129,254,114,83,187,247,1,181,255,138,200,138,198,60,34,138,193,116,46,60,13,83,116,89,
        91,60,10,117,36,138,200,138,194,60,44,138,193,116,3,232,137,0,83,232,85,254,91,114,38,60,13,117,12,138,194,60,32,116,21,60,
        44,176,13,116,15,10,192,116,11,58,198,116,14,58,194,116,10,232,99,0,83,232,47,254,91,115,178,83,60,34,116,4,60,32,117,37,
        232,32,254,114,32,60,32,116,247,60,44,116,24,60,13,117,4,205,225,116,16,139,30,233,4,138,200,176,18,232,221,253,205,226,233,
        195,193,91,198,7,0,187,246,1,138,194,44,32,116,7,181,0,232,102,224,91,195,232,55,213,159,80,232,42,201,88,158,159,80,115,
        3,232,196,35,88,158,114,3,232,196,35,91,195,10,192,116,251,136,7,67,254,205,117,244,89,235,197,232,70,0,162,96,0,254,192,
        116,3,233,158,193,83,81,178,2,232,198,250,91,232,59,252,50,192,162,96,0,233,26,252,232,38,0,10,192,116,7,254,192,117,3,233,
        125,193,254,200,162,96,0,83,81,50,192,178,1,232,158,250,91,232,46,252,50,192,162,96,0,91,233,204,250,232,180,248,82,75,232,
        185,200,90,117,3,176,1,195,82,232,134,231,44,232,43,0,82,75,232,166,200,117,5,89,90,50,192,195,232,115,231,44,232,24,0,89,
        135,218,3,217,137,30,4,7,135,218,75,232,137,200,116,3,233,37,193,90,176,255,195,232,135,208,83,232,17,220,90,135,218,195,
        185,11,13,139,30,48,0,135,218,139,30,88,3,59,218,117,1,195,187,23,98,138,195,2,193,138,216,138,199,20,0,138,248,139,242,172,
        42,197,46,50,7,80,187,118,97,138,195,2,197,138,216,138,199,20,0,138,248,88,46,50,7,2,193,139,250,170,66,254,201,117,2,177,
        11,254,205,117,188,181,13,235,184,185,11,13,139,30,48,0,135,218,139,30,88,3,59,218,116,175,187,118,97,138,195,2,197,138,216,
        138,199,20,0,138,248,139,242,172,42,193,46,50,7,80,187,23,98,138,195,2,193,138,216,138,199,20,0,138,248,88,46,50,7,2,197,
        139,250,170,66,254,201,117,2,177,11,254,205,117,189,181,13,235,185,83,139,30,46,0,138,199,34,195,91,254,192,116,1,195,159,
        80,160,100,4,10,192,116,3,233,245,200,88,158,195,138,7,60,64,117,3,232,173,199,185,0,0,138,245,138,209,60,234,116,31,138,
        7,60,207,156,117,3,232,152,199,232,108,230,40,232,126,215,82,232,100,230,44,232,118,215,232,93,230,41,89,157,83,139,30,61,
        5,116,3,187,0,0,159,3,217,209,222,158,209,214,137,30,61,5,137,30,55,5,139,203,139,30,59,5,116,3,187,0,0,3,218,137,30,59,5,
        137,30,57,5,135,218,91,195,50,192,235,2,176,3,80,232,164,255,88,232,46,0,83,232,40,3,115,6,232,127,2,232,85,2,91,195,232,
        49,199,232,140,255,83,232,20,3,187,255,255,115,10,232,104,2,232,27,2,138,216,183,0,232,7,29,91,195,176,3,81,82,138,208,75,
        232,12,199,116,11,232,222,229,44,60,44,116,3,232,254,214,138,194,83,232,193,2,115,3,233,48,200,91,90,89,233,239,198,139,30,
        55,5,138,195,42,193,138,216,138,199,26,197,138,248,115,197,50,192,42,195,138,216,26,199,42,195,138,248,249,195,139,30,57,
        5,138,195,42,194,138,216,138,199,26,198,138,248,235,222,83,139,30,57,5,135,218,137,30,57,5,91,195,232,240,255,83,81,139,30,
        55,5,94,135,222,86,137,30,55,5,89,91,195,232,226,254,81,82,232,106,229,234,232,237,254,232,118,255,90,89,116,83,232,92,229,
        44,232,88,229,66,117,3,233,96,0,232,79,229,70,83,232,93,2,232,193,255,232,87,2,232,156,255,115,3,232,169,255,67,83,232,114,
        255,115,3,232,175,255,67,83,232,156,1,90,89,82,81,232,219,0,80,83,135,218,232,105,2,91,88,232,215,0,232,248,0,89,90,73,138,
        197,10,193,117,227,91,195,81,82,83,232,69,0,139,30,61,5,137,30,55,5,139,30,59,5,137,30,57,5,91,90,89,195,83,139,30,57,5,83,
        82,135,218,232,218,255,91,137,30,57,5,135,218,232,208,255,91,137,30,57,5,139,30,55,5,81,139,203,232,193,255,91,137,30,55,
        5,139,203,232,183,255,91,195,205,184,232,207,1,232,51,255,232,201,1,232,14,255,115,3,232,40,255,82,83,232,228,254,135,218,
        187,241,73,115,3,187,5,74,94,135,222,86,59,218,115,20,137,30,253,6,91,137,30,247,6,187,213,73,137,30,249,6,135,218,235,22,
        94,135,222,86,137,30,249,6,187,213,73,137,30,247,6,135,218,137,30,253,6,91,90,83,137,30,251,6,232,211,0,90,82,232,5,0,89,
        65,233,32,2,138,198,10,192,208,216,138,240,138,194,208,216,138,208,195,139,30,243,6,160,245,6,195,137,30,243,6,162,245,6,
        195,139,30,243,6,129,251,0,32,114,9,129,235,0,32,137,30,243,6,195,129,195,80,32,137,30,243,6,195,139,30,243,6,129,251,0,32,
        114,9,129,235,176,31,137,30,243,6,195,129,195,0,32,137,30,243,6,195,138,193,138,14,85,0,210,14,245,6,138,200,114,1,195,255,
        6,243,6,195,138,193,138,14,85,0,210,6,245,6,138,200,114,1,195,255,14,243,6,195,140,198,191,0,184,142,199,139,30,243,6,38,
        138,7,138,22,245,6,34,194,138,14,85,0,210,234,114,4,210,232,235,248,142,198,195,140,198,191,0,184,142,199,139,30,243,6,139,
        233,160,245,6,246,208,38,34,7,138,14,246,6,34,14,245,6,10,193,38,136,7,139,205,142,198,195,139,233,209,234,159,139,218,177,
        2,211,226,3,211,177,4,211,226,158,115,4,129,194,0,32,137,22,243,6,139,213,138,202,246,6,85,0,1,116,20,176,7,34,200,176,128,
        210,232,162,245,6,177,3,211,234,1,22,243,6,195,176,3,34,200,2,201,176,192,210,232,162,245,6,177,2,211,234,1,22,243,6,195,
        160,72,0,199,6,59,5,100,0,60,6,116,18,115,28,60,4,114,24,198,6,85,0,2,199,6,61,5,160,0,195,198,6,85,0,1,199,6,61,5,64,1,195,
        198,6,85,0,0,195,60,4,115,15,246,6,85,0,1,116,12,36,1,246,216,162,246,6,248,195,233,93,197,36,3,177,85,246,225,162,246,6,
        248,195,160,85,0,10,192,116,235,10,237,120,39,187,128,2,132,6,1,0,116,3,187,64,1,59,203,159,114,3,75,139,203,10,246,120,12,
        129,250,200,0,114,4,186,199,0,195,158,195,51,210,195,51,201,159,235,232,140,198,191,0,184,142,199,139,211,11,210,116,108,
        139,30,243,6,38,138,47,160,245,6,138,224,246,208,138,14,85,0,138,30,246,6,34,232,138,252,34,251,10,239,74,116,64,210,200,
        210,204,115,239,139,30,243,6,38,136,47,255,6,243,6,136,38,245,6,139,202,209,233,209,233,246,6,85,0,1,117,6,129,226,3,0,235,
        6,129,226,7,0,209,233,227,171,252,160,246,6,139,62,243,6,243,170,137,62,243,6,235,155,139,30,243,6,38,136,47,136,38,245,6,
        142,198,195,232,127,254,3,22,253,6,59,22,251,6,114,9,43,22,251,6,62,255,22,249,6,62,255,22,247,6,226,227,195,83,232,163,207,
        91,195,83,232,39,25,91,195,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,180,15,205,16,162,72,0,180,40,60,2,114,13,
        180,80,60,7,117,7,185,12,11,137,14,104,0,136,38,41,0,250,140,219,137,30,80,3,30,186,0,0,142,218,137,30,16,5,187,52,77,137,
        30,108,0,187,68,87,137,30,112,0,140,14,110,0,140,14,114,0,31,232,50,0,187,24,2,185,0,0,142,193,185,122,0,38,140,143,2,0,38,
        199,7,148,76,131,195,4,224,241,140,219,142,195,232,72,225,251,180,1,205,23,232,119,6,187,155,76,232,223,46,233,99,50,190,
        237,76,187,83,6,185,10,0,83,252,46,172,136,7,67,10,192,117,246,91,131,195,16,224,239,195,207,62,255,46,0,7,203,84,104,101,
        32,73,66,77,32,80,101,114,115,111,110,97,108,32,67,111,109,112,117,116,101,114,32,66,97,115,105,99,255,13,86,101,114,115,
        105,111,110,32,67,49,46,48,48,32,67,111,112,121,114,105,103,104,116,32,73,66,77,32,67,111,114,112,32,49,57,56,49,255,13,0,
        50,53,45,65,112,114,45,56,49,76,73,83,84,32,0,82,85,78,13,0,76,79,65,68,34,0,83,65,86,69,34,0,67,79,78,84,13,0,44,34,76,80,
        84,49,58,34,13,0,84,82,79,78,13,0,84,82,79,70,70,13,0,75,69,89,32,0,83,67,82,69,69,78,32,48,44,48,44,48,13,0,156,80,30,82,
        186,0,0,142,218,142,30,16,5,232,58,10,136,22,106,0,254,202,136,22,94,0,90,31,88,157,207,86,160,94,0,10,192,117,17,160,106,
        0,10,192,117,10,180,1,205,22,176,0,116,2,254,200,94,195,160,94,0,10,192,116,8,50,192,162,94,0,176,3,195,86,87,160,106,0,10,
        192,117,116,180,0,205,22,10,192,116,3,95,94,195,83,128,252,59,114,5,128,252,69,114,60,139,30,46,0,67,11,219,117,19,187,52,
        78,177,26,46,58,39,116,12,67,254,192,254,201,117,244,50,192,91,235,211,50,228,208,224,139,216,46,139,159,3,1,137,30,107,0,
        254,14,106,0,208,232,4,65,140,14,109,0,235,224,80,134,196,44,59,179,16,246,227,187,83,6,3,216,246,7,255,88,116,204,137,30,
        107,0,140,30,109,0,254,14,106,0,235,12,83,254,200,117,7,162,106,0,176,32,235,178,30,197,30,107,0,138,7,31,255,6,107,0,10,
        192,116,2,121,160,180,1,140,203,138,30,110,0,58,223,115,2,254,204,136,38,106,0,36,127,117,138,91,95,94,233,58,255,30,48,46,
        32,18,33,34,35,23,36,37,38,50,49,24,25,16,19,31,20,22,47,17,45,21,44,83,81,86,190,108,78,177,14,252,46,172,58,224,116,9,70,
        254,201,117,244,50,192,235,2,46,172,94,89,91,195,71,11,72,30,75,29,77,28,80,31,28,10,116,6,115,2,118,1,82,18,83,127,79,14,
        117,5,119,12,31,30,29,28,13,12,11,10,156,83,81,82,80,60,7,116,77,60,13,117,10,246,6,111,0,255,116,3,232,139,0,232,44,2,116,
        4,60,255,116,57,60,12,116,34,187,135,78,185,8,0,67,254,201,120,28,46,58,7,117,246,208,225,139,217,185,233,78,81,46,255,183,
        225,47,139,30,86,0,195,232,14,4,235,14,232,62,0,232,14,0,232,13,225,235,3,232,36,9,88,90,89,91,157,195,80,138,62,73,0,138,
        30,78,0,185,1,0,180,9,205,16,88,195,83,232,113,0,232,231,255,91,195,83,232,104,0,180,8,205,16,91,195,232,243,255,138,232,
        138,204,195,139,30,86,0,137,30,86,0,156,83,232,77,0,91,157,195,160,87,0,254,200,195,80,138,14,41,0,42,14,87,0,254,193,181,
        0,138,62,73,0,138,30,79,0,176,32,180,9,205,16,139,22,86,0,134,242,254,206,254,202,180,2,205,16,88,195,83,232,21,0,138,62,
        73,0,138,30,79,0,138,14,41,0,181,0,176,32,180,9,205,16,91,80,82,139,211,134,242,254,206,254,202,138,62,73,0,180,2,205,16,
        90,88,195,83,82,177,0,138,239,138,243,232,27,0,180,6,205,16,235,15,83,82,177,0,138,235,138,247,232,10,0,180,7,205,16,232,
        28,0,90,91,195,232,17,0,138,22,41,0,254,202,254,206,254,205,176,1,138,62,79,0,195,160,73,0,235,3,160,74,0,232,6,1,117,32,
        138,38,72,0,128,252,7,116,23,82,186,0,8,128,252,2,114,2,208,230,50,228,247,226,30,142,218,163,78,4,31,90,195,156,83,82,80,
        186,0,0,180,0,205,23,246,196,32,117,14,246,196,4,117,13,246,196,1,116,13,178,24,235,6,178,27,235,2,178,25,233,190,183,88,
        80,60,13,117,5,176,10,232,206,255,88,90,91,157,195,60,147,116,96,60,149,116,70,60,221,116,70,232,227,206,10,192,116,56,254,
        200,60,10,115,50,186,16,0,246,226,138,208,129,194,83,6,82,232,162,221,44,232,209,198,83,232,76,216,138,15,128,249,15,114,
        2,177,15,67,139,55,91,95,83,181,0,252,243,164,136,45,232,117,0,91,195,233,225,191,176,255,235,2,176,0,58,6,113,0,162,113,
        0,116,3,232,94,0,232,144,190,195,83,190,83,6,185,10,0,254,197,86,176,70,232,8,219,81,138,221,183,0,232,171,20,176,32,232,
        251,218,89,94,86,81,252,172,10,192,116,5,232,19,0,235,245,176,13,232,231,218,89,94,131,198,16,254,201,117,206,91,235,192,
        86,60,13,117,2,176,27,232,209,218,94,195,80,160,72,0,60,7,116,4,60,4,115,2,50,192,10,192,88,195,83,205,173,182,24,178,0,138,
        62,73,0,180,2,205,16,160,113,0,10,192,117,19,138,30,79,0,138,14,41,0,181,0,180,9,205,16,232,13,254,91,195,179,7,232,192,255,
        117,9,160,76,0,10,192,117,2,179,112,190,83,6,181,5,160,41,0,60,40,176,49,116,2,181,10,80,83,138,30,78,0,232,55,0,91,86,177,
        6,81,252,172,10,192,156,86,117,2,50,192,232,37,0,94,157,117,1,78,89,254,201,117,232,232,22,0,94,131,198,16,88,254,192,60,
        58,114,2,176,48,254,205,117,199,232,175,253,91,195,50,192,83,10,192,117,6,176,32,138,30,79,0,60,13,117,2,176,27,81,185,1,
        0,180,9,205,16,254,194,180,2,205,16,89,91,195,138,14,73,0,181,0,138,38,72,0,246,196,1,116,3,128,205,128,128,252,4,114,9,254,
        197,128,252,6,114,2,254,197,81,60,44,116,12,232,97,205,89,138,232,81,232,92,189,116,64,232,45,220,44,60,44,116,21,232,77,
        205,10,192,116,2,176,128,89,128,229,3,10,232,81,232,63,189,116,35,232,16,220,44,60,44,116,12,232,48,205,89,138,200,81,232,
        43,189,116,15,232,252,219,44,232,32,205,138,240,89,235,6,233,85,190,89,138,241,138,38,41,0,138,197,36,127,10,192,116,10,50,
        210,10,214,10,209,117,230,235,27,128,252,40,116,12,128,254,4,115,218,128,249,4,114,12,235,211,128,254,8,115,206,128,249,8,
        115,201,138,209,10,192,116,32,128,62,72,0,7,116,92,177,6,60,2,180,80,116,42,180,40,254,201,254,200,117,172,246,197,128,117,
        29,254,201,235,25,177,2,128,252,40,116,9,246,197,128,116,13,254,193,235,9,254,201,246,197,128,117,2,254,201,136,38,41,0,161,
        72,0,136,14,72,0,137,22,73,0,58,193,116,26,184,7,0,163,75,0,134,196,163,77,0,136,38,79,0,232,58,254,116,3,162,79,0,232,110,
        0,160,74,0,180,5,205,16,195,58,6,41,0,116,52,138,38,72,0,60,80,116,7,60,40,116,3,233,152,189,128,252,7,117,4,176,80,235,28,
        128,244,2,128,252,7,117,2,254,204,80,162,41,0,136,38,72,0,199,6,73,0,0,0,232,45,0,88,195,83,232,218,252,178,39,128,62,41,
        0,40,116,2,178,79,182,24,138,62,79,0,185,0,0,138,193,180,6,205,16,186,0,0,138,62,73,0,180,2,205,16,235,15,83,185,0,0,137,
        14,73,0,160,72,0,180,0,205,16,232,189,221,232,193,253,232,138,247,232,157,252,91,195,232,164,253,116,91,177,0,190,81,0,128,
        62,72,0,6,117,3,233,22,189,138,44,86,81,232,212,187,116,64,60,44,116,7,232,201,203,89,138,232,81,89,81,83,138,249,138,221,
        128,255,0,117,8,128,251,8,114,3,128,203,16,180,11,205,16,91,232,171,187,116,3,232,165,187,89,94,136,44,116,8,70,254,193,128,
        249,4,114,189,198,6,79,0,0,195,89,94,195,255,54,77,0,255,54,75,0,60,44,116,16,232,126,203,60,32,115,24,89,138,200,81,232,
        117,187,116,44,232,70,218,44,60,44,116,19,232,102,203,60,16,114,3,233,156,188,89,138,232,81,232,90,187,116,17,232,43,218,
        44,232,79,203,60,16,115,233,89,90,138,208,82,81,89,90,138,241,128,230,15,137,14,75,0,138,197,208,224,36,16,10,194,128,229,
        7,208,229,208,229,208,229,208,229,246,193,16,116,3,128,205,128,10,238,83,138,216,183,0,36,15,162,77,0,136,46,78,0,136,46,
        79,0,180,11,205,16,91,195,255,54,86,0,60,44,116,32,232,250,202,10,192,116,91,60,26,115,87,138,38,113,0,10,228,116,4,60,25,
        115,75,90,138,208,82,232,225,186,116,123,232,178,217,44,60,44,116,24,232,210,202,10,192,116,51,138,38,41,0,58,224,114,43,
        90,138,240,82,232,193,186,116,91,255,54,104,0,232,142,217,44,60,44,116,25,232,174,202,10,192,176,0,117,2,176,32,89,10,232,
        81,232,161,186,116,45,235,3,233,213,187,232,109,217,44,232,145,202,60,32,115,242,89,128,229,32,10,232,138,200,81,232,131,
        186,116,15,232,84,217,44,232,120,202,60,32,115,217,89,138,200,81,89,81,128,229,15,137,14,104,0,89,180,1,205,16,90,137,22,
        86,0,134,242,254,206,254,202,83,138,62,73,0,180,2,205,16,91,195,80,176,0,235,3,80,176,32,156,81,83,80,232,61,250,88,91,139,
        14,104,0,246,6,114,0,255,116,2,181,4,10,232,180,1,205,16,89,157,88,195,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,
        255,80,156,232,201,251,116,75,83,81,82,140,198,191,0,0,142,199,38,255,54,124,0,38,255,54,126,0,38,199,6,124,0,248,84,38,140,
        14,126,0,142,198,176,129,2,6,114,0,179,131,138,62,73,0,185,1,0,180,9,205,16,140,198,191,0,0,142,199,38,143,6,126,0,38,143,
        6,124,0,142,198,90,89,91,157,88,195,232,189,185,160,86,0,233,114,246,232,180,185,232,101,0,10,238,117,86,10,234,10,233,116,
        80,138,38,41,0,58,226,114,72,128,249,26,115,67,160,113,0,10,192,116,5,128,249,25,115,55,83,138,241,254,206,254,202,138,62,
        73,0,180,2,205,16,180,8,205,16,91,80,232,119,185,60,44,116,4,176,0,235,7,232,66,216,44,232,102,201,80,232,58,216,41,88,10,
        192,88,116,2,138,196,233,18,246,233,144,186,232,5,0,232,37,216,41,195,232,32,216,40,232,50,201,82,232,24,216,44,232,42,201,
        89,195,232,56,185,60,149,116,8,232,8,216,221,50,192,235,5,232,41,185,176,255,162,52,0,195,160,52,0,10,192,116,48,232,27,201,
        60,10,115,41,83,86,186,26,86,82,50,228,209,224,139,240,46,255,180,29,86,195,94,91,195,52,86,63,86,70,86,76,86,107,86,114,
        86,120,86,128,86,136,86,144,86,233,37,186,187,53,0,138,7,198,7,0,233,159,245,139,30,55,0,233,198,14,160,57,0,233,140,245,
        180,4,205,16,80,10,228,116,12,137,30,58,0,136,46,60,0,137,22,63,0,88,138,196,254,200,246,208,233,115,245,139,30,58,0,233,
        154,14,160,60,0,233,96,245,160,62,0,254,192,233,88,245,160,61,0,254,192,233,80,245,160,64,0,254,192,233,72,245,160,63,0,254,
        192,233,64,245,232,132,200,10,192,116,18,60,4,115,84,180,0,83,187,65,0,3,216,138,7,91,233,39,245,83,186,1,2,185,1,1,187,15,
        0,250,238,236,36,15,58,195,225,249,227,11,50,195,138,225,80,254,199,50,216,235,236,10,255,116,26,138,215,187,65,0,185,4,0,
        88,246,212,2,226,208,232,115,2,136,39,67,226,247,254,202,117,232,251,91,160,65,0,233,225,244,233,95,185,232,32,184,60,149,
        116,8,232,240,214,221,50,192,235,5,232,17,184,176,255,162,69,0,195,160,69,0,10,192,116,222,232,3,200,60,4,115,215,168,1,116,
        14,180,16,254,200,116,2,180,64,232,208,0,233,172,244,83,187,70,0,10,192,116,1,67,138,7,198,7,0,91,233,154,244,156,80,85,86,
        87,30,186,0,0,142,218,142,30,16,5,161,102,0,10,196,116,9,255,14,102,0,117,3,232,39,0,160,52,0,10,192,116,3,232,54,0,160,69,
        0,10,192,116,3,232,105,0,31,95,94,93,88,157,207,198,6,101,0,0,161,102,0,11,192,116,24,82,250,246,6,101,0,255,117,7,186,97,
        0,236,36,252,238,199,6,102,0,0,0,251,90,195,83,81,82,180,4,205,16,80,10,228,116,12,137,30,58,0,136,46,60,0,137,22,63,0,88,
        160,54,0,50,196,116,25,10,228,136,38,54,0,116,17,137,30,55,0,136,46,57,0,137,22,61,0,176,255,162,53,0,90,89,91,195,83,187,
        70,0,128,63,0,117,7,180,16,232,17,0,136,7,67,128,63,0,117,7,180,64,232,4,0,136,7,91,195,82,186,1,2,236,34,196,254,200,152,
        138,196,90,195,232,9,0,184,211,5,186,4,0,82,235,56,139,22,102,0,10,242,116,7,198,6,101,0,255,235,241,195,232,222,198,131,
        250,37,114,18,82,232,191,213,44,232,113,202,89,82,11,210,117,7,90,233,59,255,233,19,184,232,208,255,186,18,0,184,220,52,247,
        241,246,6,101,0,255,117,8,80,186,67,0,176,182,238,88,186,66,0,238,138,196,238,117,7,186,97,0,236,12,3,238,90,137,22,102,0,
        198,6,101,0,0,195,10,90,77,65,89,16,89,16,25,90,89,16,89,16,89,16,89,16,45,90,89,16,52,90,77,65,89,16,69,90,89,16,89,16,89,
        16,89,16,89,16,89,16,93,90,99,90,77,65,89,16,124,90,89,16,89,16,89,16,89,16,89,16,89,16,170,90,177,90,110,91,89,16,171,91,
        240,91,89,16,89,16,108,92,89,16,118,92,89,16,34,194,117,34,156,80,83,137,30,233,4,136,23,131,195,45,198,7,0,67,67,136,47,
        67,198,7,0,67,136,15,67,198,7,0,91,88,157,195,233,152,174,88,91,195,128,250,128,117,2,178,2,195,88,134,196,158,89,90,91,195,
        90,91,89,195,131,195,46,138,7,246,208,195,139,30,233,4,131,195,43,195,139,30,233,4,131,195,50,195,139,30,233,4,138,135,47,
        0,195,86,87,81,198,6,63,5,165,190,240,4,191,64,5,185,8,0,252,164,226,253,89,95,94,195,83,81,187,64,5,177,8,128,63,32,117,
        13,67,254,201,117,246,190,92,5,191,72,5,235,16,190,84,5,191,64,5,177,8,252,166,117,39,254,201,117,249,138,5,58,4,116,9,10,
        192,117,25,246,4,1,117,20,138,4,139,30,233,4,136,135,49,0,187,244,89,232,14,0,50,192,235,7,187,254,89,232,4,0,249,89,91,195,
        83,139,30,46,0,67,11,219,116,2,91,195,187,83,5,83,67,177,8,138,7,232,213,244,67,254,201,117,246,176,46,232,203,244,91,131,
        195,9,176,68,246,7,225,116,23,176,80,246,7,32,117,16,176,66,246,7,128,117,9,176,65,246,7,64,117,2,176,77,91,232,165,244,46,
        138,7,67,10,192,117,245,195,32,70,111,117,110,100,46,255,13,0,32,83,107,105,112,112,101,100,46,255,13,0,185,0,0,136,14,82,
        5,176,234,232,189,254,233,227,254,187,82,5,138,7,198,7,0,10,192,117,5,232,70,243,10,192,233,226,254,136,14,82,5,233,163,235,
        232,200,254,138,46,41,0,177,0,176,237,232,145,254,233,183,254,88,80,134,196,232,68,244,138,14,87,0,254,201,139,30,233,4,136,
        143,50,0,233,170,254,88,134,196,233,73,248,138,46,98,0,177,0,232,147,254,176,109,232,98,254,232,175,254,160,99,0,136,7,233,
        128,254,88,80,134,196,232,3,0,233,129,254,232,106,245,187,99,0,60,13,116,15,254,7,83,232,149,254,91,56,7,114,7,176,13,235,
        231,198,7,0,138,7,232,124,254,136,7,195,88,134,196,162,98,0,195,160,97,0,10,192,116,3,233,232,172,128,226,251,117,2,178,1,
        162,81,5,254,192,162,80,5,138,202,128,225,128,128,233,1,245,26,201,128,225,128,246,194,16,116,3,128,201,32,160,96,0,10,192,
        116,2,177,1,10,201,117,9,246,6,95,0,255,116,2,177,64,136,14,72,5,181,255,176,104,232,210,253,138,39,232,46,254,246,196,1,
        117,12,246,193,129,117,3,232,47,0,176,255,235,31,232,51,0,232,48,254,114,248,139,30,233,4,246,135,49,0,129,117,10,232,17,
        1,115,5,198,6,80,5,0,176,1,162,97,0,232,231,253,198,7,1,233,186,253,187,63,5,185,17,0,180,3,205,21,195,187,83,5,185,17,0,
        83,180,2,205,21,115,3,233,2,1,91,160,94,0,10,192,117,6,128,63,165,117,230,195,233,41,172,160,97,0,254,192,116,11,50,192,162,
        97,0,162,96,0,233,205,229,139,30,233,4,246,135,49,0,129,117,234,232,59,0,232,31,1,235,226,83,187,97,0,56,39,117,13,139,30,
        233,4,246,135,49,0,129,91,117,1,195,233,233,171,180,255,232,227,255,88,80,134,196,232,3,0,233,77,253,232,38,0,136,7,254,193,
        116,11,232,93,253,136,15,195,232,87,253,138,15,187,83,5,181,0,254,201,65,136,15,180,3,205,21,232,68,253,198,7,1,195,232,61,
        253,138,15,181,0,187,83,5,3,217,195,180,1,232,158,255,232,3,0,233,20,253,160,80,5,44,1,115,1,195,187,81,5,138,7,198,7,0,10,
        192,116,1,195,232,10,0,115,7,198,6,80,5,0,10,192,195,232,195,255,138,7,254,193,232,252,252,136,15,232,239,252,58,15,116,3,
        10,192,195,128,63,0,117,221,80,232,2,0,88,195,187,83,5,185,0,1,180,2,205,21,114,21,160,83,5,232,203,252,136,7,232,206,252,
        198,7,1,254,200,249,116,1,248,195,128,252,4,117,5,178,24,233,111,171,233,37,171,160,80,5,44,1,26,192,233,147,8,136,14,81,
        5,233,90,233,198,6,95,0,0,83,137,30,77,5,139,22,80,3,137,22,75,5,139,14,4,7,43,203,137,14,73,5,81,82,232,164,254,90,89,91,
        160,96,0,10,192,6,116,2,142,194,180,3,205,21,7,232,137,0,186,5,0,185,0,0,73,117,253,74,117,250,232,118,0,195,190,83,5,139,
        140,10,0,160,96,0,10,192,156,81,117,13,80,83,81,86,3,217,232,22,230,94,89,91,88,60,1,117,4,139,156,14,0,6,10,192,116,14,139,
        148,12,0,254,200,116,4,139,22,80,3,142,194,180,2,205,21,7,114,18,89,157,117,11,139,30,48,0,3,217,67,137,30,88,3,233,128,229,
        80,232,5,208,88,128,252,4,117,5,178,24,233,181,170,233,107,170,75,232,243,177,117,5,160,100,0,235,3,232,232,193,10,192,117,
        4,176,1,235,2,176,0,162,100,0,138,224,205,21,195,205,219,249,235,1,248,139,243,156,139,14,165,4,138,195,50,193,162,167,4,
        138,199,50,228,138,221,50,255,157,115,7,3,195,45,1,1,235,2,43,195,10,228,120,13,61,128,0,114,21,139,222,131,196,2,233,93,
        23,5,128,0,121,11,139,222,131,196,2,233,223,29,5,128,0,162,166,4,187,165,4,128,15,128,139,222,50,255,128,203,128,195,198,
        6,57,3,128,232,198,217,83,139,218,232,234,6,232,4,197,137,30,94,4,177,32,232,27,207,91,232,96,177,116,23,232,49,208,40,232,
        167,217,82,138,7,60,44,117,5,232,76,177,235,241,232,30,208,41,137,30,59,3,14,184,233,93,80,255,54,80,3,255,54,94,4,203,139,
        30,59,3,195,83,232,14,5,60,108,116,10,60,76,116,6,60,113,116,2,60,81,91,195,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,
        38,38,38,38,38,38,38,38,38,38,37,37,37,36,36,36,35,35,35,34,34,34,34,33,33,33,32,32,32,31,31,31,31,30,30,30,29,29,29,29,28,
        28,28,27,27,27,26,26,26,25,25,25,25,24,24,24,23,23,23,23,22,22,22,22,21,21,21,20,20,20,19,19,19,19,18,18,18,17,17,17,16,16,
        16,16,15,15,15,14,14,14,13,13,13,13,12,12,12,11,11,11,10,10,10,10,9,9,9,8,8,8,7,7,7,6,6,6,6,5,5,5,4,4,4,3,3,3,3,2,2,2,1,1,
        1,0,0,0,0,255,255,255,254,254,254,253,253,253,253,252,252,252,251,251,251,250,250,250,250,249,249,249,248,248,248,247,247,
        247,247,246,246,246,245,245,245,244,244,244,244,243,243,243,242,242,242,241,241,241,241,240,240,240,239,239,239,238,238,238,
        238,237,237,237,236,236,236,235,235,235,235,234,234,234,233,233,233,232,232,232,231,231,231,231,230,230,230,229,229,229,228,
        228,228,228,227,227,227,226,226,226,225,225,225,225,224,35,199,83,237,220,199,89,2,118,92,84,20,234,28,8,6,147,115,105,153,
        36,36,42,9,120,208,195,191,45,173,84,12,75,98,218,151,60,236,4,16,222,250,208,189,75,39,38,19,149,57,69,173,30,177,79,22,
        253,67,75,44,179,206,1,26,253,20,94,247,95,66,34,29,60,154,53,245,247,210,74,32,203,0,131,242,181,135,125,35,127,224,145,
        183,209,116,30,39,158,88,118,37,6,18,70,42,198,238,211,174,135,150,119,45,60,117,68,205,20,190,26,49,139,146,149,0,154,109,
        65,52,45,247,186,128,0,201,113,55,124,218,116,80,160,29,23,59,27,17,146,100,8,229,60,62,98,149,182,125,74,30,108,65,94,29,
        146,142,238,146,19,69,181,164,54,50,170,119,56,72,226,77,196,190,148,149,102,75,173,176,58,247,124,29,16,79,217,92,9,53,220,
        36,52,82,15,180,75,66,19,46,97,85,137,80,111,9,204,188,12,89,172,36,203,11,255,235,47,92,214,237,189,206,254,230,91,95,166,
        180,54,65,95,112,9,99,207,97,132,17,119,204,43,102,67,122,229,213,148,191,86,105,106,108,175,5,189,55,6,109,133,71,27,71,
        172,197,39,112,102,25,226,88,23,183,81,115,224,79,141,151,110,18,3,119,216,163,112,61,10,215,35,122,205,204,204,204,204,204,
        76,125,0,0,0,0,0,0,0,129,0,0,0,0,0,0,32,132,0,0,0,0,0,0,72,135,0,0,0,0,0,0,122,138,0,0,0,0,0,64,28,142,0,0,0,0,0,80,67,145,
        0,0,0,0,0,36,116,148,0,0,0,0,128,150,24,152,0,0,0,0,32,188,62,155,0,0,0,0,40,107,110,158,0,0,0,0,249,2,21,162,0,0,0,64,183,
        67,58,165,0,0,0,16,165,212,104,168,0,0,0,42,231,132,17,172,0,0,128,244,32,230,53,175,0,0,160,49,169,95,99,178,0,0,4,191,201,
        27,14,182,0,0,197,46,188,162,49,185,0,64,118,58,107,11,94,188,0,232,137,4,35,199,10,192,0,98,172,197,235,120,45,195,128,122,
        23,183,38,215,88,198,144,172,110,50,120,134,7,202,181,87,10,63,22,104,41,205,162,237,204,206,27,194,83,208,133,20,64,97,81,
        89,4,212,166,25,144,185,165,111,37,215,16,32,244,39,143,203,78,218,10,148,248,120,57,63,1,222,12,185,54,215,7,143,33,225,
        79,103,4,205,201,242,73,228,35,129,69,64,124,111,124,231,182,112,43,168,173,197,29,235,228,76,54,18,25,55,69,238,28,224,195,
        86,223,132,118,241,18,108,58,150,11,19,26,245,22,7,201,123,206,151,64,248,220,72,187,26,194,189,112,251,137,13,181,80,153,
        118,22,255,0,0,0,0,0,0,0,128,241,4,53,128,4,154,247,25,131,36,99,67,131,117,205,141,132,169,127,131,130,4,0,0,0,129,226,176,
        77,131,10,114,17,131,244,4,53,127,24,114,49,128,46,101,69,37,35,33,68,100,44,48,0,128,198,164,126,141,3,0,64,122,16,243,90,
        0,0,160,114,78,24,9,0,0,16,165,212,232,0,0,0,232,118,72,23,0,0,0,228,11,84,2,0,0,0,202,154,59,0,0,0,0,225,245,5,0,0,0,128,
        150,152,0,0,0,0,64,66,15,0,0,0,0,64,66,15,160,134,1,16,39,0,16,39,232,3,100,0,10,0,1,0,0,0,128,144,255,255,255,255,255,255,
        127,255,255,255,255,255,255,255,255,255,59,170,56,129,7,124,136,89,116,224,151,38,119,196,29,30,122,94,80,99,124,26,254,117,
        126,24,114,49,128,0,0,0,129,5,251,215,30,134,101,38,153,135,88,52,35,135,225,93,165,134,219,15,73,131,2,215,179,93,129,0,
        0,128,129,4,98,53,131,126,80,36,76,126,121,169,170,127,0,0,0,129,11,68,78,110,131,249,34,126,253,67,3,195,158,38,1,0,0,48,
        49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,186,59,170,187,56,129,232,114,10,160,166,4,60,136,114,10,128,38,165,4,128,116,
        71,233,205,24,60,104,114,82,160,165,4,10,192,121,9,36,127,162,165,4,187,235,98,83,255,54,163,4,255,54,165,4,232,70,16,138,
        226,128,196,129,116,27,80,50,228,232,212,17,88,91,90,80,232,150,4,187,23,98,232,123,18,91,51,210,138,218,233,32,10,131,196,
        4,50,228,136,38,167,4,233,241,17,186,0,0,187,0,129,233,234,5,191,163,4,51,192,252,171,199,5,0,129,195,233,26,172,205,185,
        128,54,165,4,128,128,54,177,4,128,233,138,3,205,186,135,217,233,90,4,205,187,135,217,233,71,4,205,188,232,51,25,233,27,5,
        135,217,233,177,5,205,189,137,30,163,4,233,107,8,205,190,82,152,139,208,232,238,8,90,195,205,191,135,217,233,183,9,205,192,
        135,217,233,237,13,129,251,0,128,117,19,205,193,232,211,8,51,210,187,128,144,232,5,4,232,75,26,233,69,8,247,219,83,3,218,
        112,4,88,233,153,1,205,194,232,181,8,90,255,54,163,4,255,54,165,4,232,169,8,91,90,233,234,3,139,195,82,247,234,90,114,5,139,
        216,233,118,1,205,195,83,232,145,8,90,255,54,163,4,255,54,165,4,232,133,8,91,90,233,82,9,11,219,117,12,136,54,167,4,198,6,
        251,2,4,233,45,17,137,30,163,4,184,0,0,163,165,4,146,11,192,121,3,186,255,255,11,219,121,6,199,6,165,4,255,255,247,62,163,
        4,139,216,233,42,1,135,217,232,215,24,135,217,195,83,232,69,26,91,131,195,4,195,139,22,163,4,139,14,165,4,195,156,83,232,
        25,26,91,131,195,4,157,195,232,171,190,137,30,163,4,233,103,10,232,161,190,137,30,163,4,233,101,10,205,196,139,23,139,159,
        2,0,233,77,3,94,255,54,163,4,255,54,165,4,255,230,205,197,135,217,232,160,24,135,217,195,232,100,23,116,3,233,147,163,195,
        135,218,232,205,0,50,192,181,152,205,198,187,166,4,138,200,136,47,181,0,67,136,47,208,208,205,199,115,3,232,32,1,138,229,
        138,217,233,51,16,232,146,254,83,51,219,137,30,163,4,183,129,137,30,165,4,198,6,251,2,4,232,4,20,91,198,6,251,2,4,195,139,
        193,247,226,146,115,3,233,37,213,195,187,171,4,186,183,100,233,6,0,187,171,4,186,185,100,82,186,163,4,232,247,22,114,3,186,
        159,4,195,138,205,50,237,235,8,135,218,160,251,2,152,139,200,252,139,242,139,251,243,164,139,214,139,223,195,232,54,200,139,
        241,139,251,253,43,202,65,243,164,139,218,139,207,65,252,195,156,73,157,195,232,188,22,117,3,233,235,162,205,200,120,3,233,
        131,22,161,163,4,11,192,116,6,176,1,121,2,176,255,195,51,192,11,219,117,243,195,91,195,152,139,216,198,6,251,2,2,137,30,163,
        4,195,198,6,251,2,4,195,232,196,255,233,231,255,205,201,91,90,233,181,3,232,37,6,91,90,233,11,12,185,4,0,233,136,255,156,
        138,23,67,157,156,138,55,67,139,15,67,157,156,67,157,195,83,187,40,7,232,6,22,91,185,182,38,81,232,181,255,50,192,205,202,
        162,49,3,187,180,4,198,7,32,10,7,67,198,7,48,233,106,11,205,203,160,165,4,235,9,205,204,232,229,23,116,8,246,208,208,224,
        26,192,116,61,195,205,205,128,54,167,4,128,51,219,246,221,139,195,27,194,139,208,138,195,26,193,138,200,195,232,3,22,120,
        250,205,206,232,207,21,120,3,233,213,24,232,2,24,232,207,24,233,252,23,139,195,43,194,116,14,112,7,120,7,50,192,254,192,195,
        120,249,249,26,192,195,59,218,117,5,51,219,233,38,0,139,194,137,30,163,4,11,219,199,6,165,4,0,0,121,6,199,6,165,4,255,255,
        11,192,186,0,0,121,3,186,255,255,247,62,163,4,139,218,137,30,163,4,195,173,58,225,116,17,70,2,4,254,192,152,3,240,59,245,
        117,239,139,214,233,57,210,58,6,251,2,117,233,58,44,117,229,70,138,208,172,58,6,142,0,116,4,2,194,235,220,10,192,116,16,152,
        145,191,143,0,243,166,145,116,6,3,240,138,194,235,200,139,214,91,195,139,243,139,46,75,4,252,235,190,139,243,139,46,92,3,
        252,233,13,0,173,58,225,116,17,70,172,152,3,240,173,3,240,59,238,117,239,139,222,233,83,211,58,6,251,2,117,233,58,44,117,
        229,70,172,58,6,142,0,117,223,10,192,116,14,152,145,191,143,0,243,166,145,116,4,3,240,235,208,173,139,208,139,222,233,5,211,
        232,24,22,195,161,165,4,10,228,116,245,128,54,165,4,128,205,215,176,0,162,158,4,162,170,4,160,178,4,10,192,116,226,161,165,
        4,10,228,116,216,139,30,177,4,128,14,165,4,128,128,14,177,4,128,138,204,42,207,162,167,4,116,34,115,18,134,195,246,217,162,
        167,4,136,62,166,4,80,81,232,111,21,89,88,128,249,56,115,95,83,248,232,33,21,160,167,4,91,50,195,187,158,4,190,170,4,185,
        4,0,248,252,120,30,173,17,7,67,67,226,249,115,18,187,166,4,254,7,116,52,75,75,185,4,0,209,31,75,75,226,250,233,233,17,173,
        25,7,67,67,226,249,115,26,246,151,1,0,185,4,0,75,75,247,23,226,250,185,4,0,255,7,117,6,67,67,226,248,116,200,233,244,12,233,
        141,13,160,167,4,36,128,128,38,165,4,127,8,6,165,4,195,137,30,165,4,137,22,163,4,195,161,165,4,10,228,116,240,128,54,165,
        4,128,10,255,116,239,161,165,4,10,228,116,224,51,201,139,54,163,4,162,167,4,138,204,42,207,115,13,246,217,134,223,137,30,
        166,4,134,223,147,135,214,138,224,50,227,156,180,128,10,196,10,220,50,228,138,252,11,201,116,70,131,249,25,114,18,157,137,
        54,163,4,138,38,167,4,37,127,128,10,196,162,165,4,195,128,249,8,114,28,138,226,138,214,138,243,50,219,128,233,8,246,196,31,
        116,208,128,204,32,235,203,128,204,32,226,3,235,14,248,208,219,209,218,208,220,246,196,16,117,237,226,243,157,121,37,42,204,
        138,225,27,242,139,214,26,195,138,216,115,47,246,22,167,4,246,212,247,210,246,211,254,196,117,33,66,117,30,254,195,117,26,
        235,6,3,214,18,216,115,12,254,6,166,4,116,9,208,219,209,218,208,220,233,36,17,233,169,12,233,104,12,232,37,19,195,160,177,
        4,162,167,4,233,167,12,246,6,166,4,255,116,240,246,6,178,4,255,116,229,139,30,177,4,232,243,244,137,30,177,4,187,164,4,248,
        232,161,19,187,176,4,248,232,154,19,255,54,166,4,232,94,21,143,6,166,4,185,64,0,81,235,8,81,248,187,170,4,232,119,19,139,
        252,131,236,8,131,239,2,190,176,4,185,4,0,253,243,165,190,120,4,185,4,0,187,170,4,248,252,173,25,7,67,67,226,249,115,16,185,
        4,0,139,244,191,170,4,252,243,165,139,230,248,235,4,131,196,8,249,187,158,4,232,56,19,89,226,182,246,6,165,4,128,116,9,255,
        6,166,4,117,9,233,7,12,187,158,4,232,31,19,233,49,16,232,148,18,117,7,136,30,167,4,233,0,12,10,255,117,3,233,122,18,232,87,
        244,139,250,51,210,138,254,139,243,138,223,185,32,0,85,139,46,163,4,160,165,4,138,231,235,5,248,209,215,209,214,86,87,43,
        253,27,240,115,4,95,94,235,4,131,196,4,248,245,209,210,209,211,226,228,11,219,121,10,254,6,166,4,117,8,93,233,165,11,209,
        210,209,211,138,226,138,214,138,243,138,223,93,233,13,16,19,249,83,87,81,44,48,80,232,80,18,88,152,121,30,139,30,163,4,129,
        251,205,12,115,25,139,203,209,227,209,227,3,217,209,227,3,216,120,11,137,30,163,4,235,72,80,114,8,235,51,80,232,36,2,235,
        20,199,6,124,4,0,36,199,6,126,4,116,148,187,126,4,232,131,19,121,22,232,60,18,90,255,54,163,4,255,54,165,4,232,139,2,91,90,
        232,204,253,235,19,232,231,1,232,35,18,232,238,18,90,232,119,2,232,218,1,232,238,252,89,95,91,195,205,217,50,192,233,9,0,
        205,218,176,1,198,6,251,2,8,198,6,168,4,1,190,180,37,86,51,255,139,207,139,247,247,209,80,232,134,17,88,10,192,117,5,198,
        6,251,2,2,138,7,60,38,117,3,233,7,176,60,45,156,116,5,60,43,116,1,75,232,251,248,115,6,232,61,255,233,245,255,189,163,97,
        51,210,139,242,46,58,134,0,0,116,10,129,253,156,97,116,36,77,233,239,255,129,237,156,97,209,229,46,255,166,48,106,75,106,
        95,106,95,106,103,106,109,106,115,106,64,106,64,106,50,192,232,156,0,232,65,0,233,45,0,65,117,247,232,81,17,121,175,81,83,
        87,232,72,1,95,91,89,233,163,255,232,140,243,116,225,233,219,255,232,221,0,233,11,0,232,188,0,233,5,0,50,192,232,182,0,157,
        117,13,232,45,19,232,33,17,122,5,83,232,237,18,91,195,11,246,121,2,247,218,43,215,112,75,116,72,120,8,131,250,39,114,29,233,
        61,10,82,131,194,38,90,121,19,82,186,176,106,82,186,2,95,235,18,90,131,194,38,131,250,218,120,37,185,3,0,211,226,129,194,
        50,96,135,218,82,232,218,16,114,8,232,187,17,232,133,1,235,10,121,5,83,232,201,0,91,232,5,17,91,195,233,138,16,159,128,62,
        251,2,8,117,4,158,233,8,0,158,83,87,232,92,0,95,91,51,246,139,214,232,4,248,114,19,60,45,117,4,247,214,235,5,60,43,116,1,
        195,232,242,247,114,1,195,129,250,204,12,114,5,186,255,127,235,239,80,184,10,0,247,226,90,128,234,48,50,246,3,208,235,223,
        12,1,156,83,87,232,78,0,95,91,51,246,139,214,232,76,255,157,117,5,83,232,13,0,91,67,195,232,88,16,120,249,233,111,156,116,
        49,232,78,16,123,86,117,3,233,123,156,205,207,121,5,232,63,0,235,72,176,4,162,251,2,138,30,165,4,136,30,167,4,139,22,163,
        4,138,38,162,4,128,204,64,128,203,128,233,213,13,232,29,16,115,37,117,3,233,74,156,205,208,121,3,232,14,0,176,8,162,251,2,
        51,192,163,159,4,163,161,4,195,82,86,139,22,163,4,232,131,0,94,90,195,232,242,15,121,5,139,30,163,4,195,205,209,117,3,233,
        24,156,160,166,4,60,144,114,49,116,3,233,6,156,160,165,4,10,192,120,3,233,252,155,186,0,0,187,0,128,232,138,251,232,203,6,
        232,205,17,186,0,0,187,128,144,232,236,16,116,3,233,223,155,187,0,128,235,45,160,165,4,10,192,156,121,5,36,127,162,165,4,
        186,0,0,187,0,128,232,103,251,160,166,4,60,144,117,6,157,120,219,233,183,155,232,231,6,139,218,157,121,2,247,219,137,30,163,
        4,198,6,251,2,2,195,51,219,50,228,190,167,4,198,132,255,255,144,198,4,0,11,210,121,5,247,218,198,4,128,138,222,138,242,138,
        215,198,6,251,2,4,233,75,8,205,214,160,166,4,10,192,116,10,160,178,4,10,192,117,4,233,248,14,195,139,30,177,4,232,218,240,
        255,54,166,4,137,30,177,4,232,86,17,139,240,163,166,4,187,120,4,163,178,4,189,171,4,139,0,11,192,116,44,191,0,0,139,207,139,
        0,247,35,83,139,222,3,223,129,195,151,4,3,7,115,1,66,3,193,115,1,66,137,7,139,202,91,131,255,6,116,4,71,71,235,219,139,193,
        83,187,159,4,137,0,91,131,254,6,116,4,70,70,235,190,190,157,4,253,185,7,0,172,10,192,225,251,116,5,128,14,158,4,32,160,165,
        4,10,192,143,6,166,4,120,15,187,158,4,185,4,0,209,23,67,67,226,250,233,25,12,254,6,166,4,117,247,233,221,7,232,115,14,116,
        4,10,255,117,3,233,96,14,232,58,240,139,14,165,4,50,237,161,163,4,138,253,83,81,82,81,80,247,226,139,202,88,247,227,3,200,
        115,1,66,139,218,90,88,247,226,3,200,115,1,66,3,218,90,88,246,226,3,216,115,13,209,219,209,217,254,6,166,4,117,3,233,144,
        7,10,255,121,9,254,6,166,4,117,7,233,131,7,209,209,209,211,138,213,138,243,138,223,138,225,233,236,11,195,83,176,8,114,2,
        176,17,138,232,138,200,81,156,232,72,2,10,192,116,2,121,12,157,89,80,123,11,4,16,88,121,26,235,9,157,89,235,38,4,7,88,121,
        15,80,232,246,11,88,138,224,2,225,126,22,2,232,235,12,2,197,254,197,58,232,181,3,114,12,138,232,254,197,176,2,235,4,2,197,
        181,3,254,200,254,200,91,80,156,50,201,232,77,0,198,7,48,117,1,67,232,232,0,75,128,63,48,116,250,128,63,46,116,1,67,157,88,
        116,43,156,80,232,191,13,180,69,123,2,180,68,136,39,67,88,157,198,7,43,121,5,198,7,45,246,216,180,47,254,196,44,10,115,250,
        4,58,67,134,196,137,7,67,67,198,7,0,135,217,187,180,4,195,254,205,121,22,137,30,82,3,198,7,46,67,198,7,48,254,197,117,248,
        67,51,201,235,26,254,205,117,12,198,7,46,137,30,82,3,67,51,201,235,10,254,201,117,6,198,7,44,67,177,3,137,14,129,4,195,180,
        5,189,245,97,232,217,255,46,139,150,0,0,69,69,139,54,163,4,176,47,254,192,43,242,115,250,3,242,136,7,67,137,54,163,4,254,
        204,117,221,232,182,255,198,7,0,195,185,1,3,190,6,0,235,6,185,4,4,190,4,0,191,179,4,252,187,116,98,139,22,163,4,86,138,198,
        50,228,211,224,134,224,46,215,170,211,226,138,205,78,117,238,198,5,0,187,179,4,89,254,201,128,63,48,117,3,67,226,248,195,
        232,233,12,123,119,81,83,190,159,4,191,171,4,185,4,0,252,243,165,232,117,3,83,187,177,4,232,253,13,91,190,171,4,191,159,4,
        185,4,0,252,243,165,116,3,232,206,12,138,14,166,4,128,233,184,246,217,248,232,90,3,91,89,190,166,97,176,9,232,46,255,80,176,
        47,80,88,254,192,80,232,148,0,115,247,232,163,0,88,60,58,117,9,198,7,49,67,198,7,48,235,2,136,7,67,88,254,200,117,215,81,
        190,159,4,191,163,4,185,2,0,252,243,165,89,235,41,83,81,232,24,15,232,113,3,90,91,232,153,13,116,11,137,30,165,4,137,22,163,
        4,232,115,12,176,1,232,178,3,137,30,165,4,137,22,163,4,89,91,176,3,186,236,97,232,199,254,80,83,82,232,94,13,93,176,47,80,
        88,254,192,80,232,23,14,115,247,46,3,150,0,0,46,18,158,2,0,69,69,69,232,56,13,88,135,213,91,136,7,67,88,254,200,117,206,66,
        66,139,234,180,4,233,179,254,81,86,185,7,0,191,159,4,248,252,46,172,24,5,71,226,249,94,89,195,81,185,7,0,191,159,4,248,252,
        46,172,16,5,71,226,249,89,195,83,81,51,255,87,187,2,94,160,166,4,46,215,10,192,116,35,95,152,43,248,87,139,216,209,227,209,
        227,209,227,129,195,50,96,232,188,11,115,5,232,246,11,235,217,232,152,12,232,98,252,235,209,187,102,96,232,113,12,232,22,
        13,115,6,232,207,11,95,79,87,232,153,11,114,14,187,122,96,232,119,12,232,65,252,88,44,9,235,1,88,89,91,10,192,195,187,180,
        4,138,47,177,32,138,38,131,4,246,196,32,116,13,58,233,177,42,117,7,246,196,4,117,2,138,233,136,15,232,191,242,116,50,189,
        165,97,46,58,134,0,0,116,9,129,253,156,97,116,38,77,235,240,129,237,156,97,209,229,46,255,166,97,112,117,112,117,112,121,
        112,121,112,121,112,121,112,117,112,121,112,60,112,60,112,75,198,7,48,138,38,131,4,246,196,16,116,4,75,198,7,36,246,196,4,
        117,5,75,136,47,50,237,195,10,192,235,6,198,7,48,67,254,200,117,248,195,232,137,253,198,7,48,67,254,200,117,245,195,187,180,
        4,198,7,32,83,232,193,10,91,156,121,10,198,7,45,83,232,236,12,91,12,1,67,198,7,48,157,195,205,216,232,221,255,117,8,67,198,
        7,0,187,180,4,195,232,200,10,121,18,185,0,7,51,192,163,131,4,137,14,129,4,232,94,253,233,49,255,233,120,252,232,129,10,121,
        3,233,96,159,117,1,195,160,166,4,208,232,80,198,6,166,4,64,208,22,166,4,187,171,4,232,9,13,185,4,0,81,232,55,13,139,22,171,
        4,139,30,173,4,232,187,247,90,91,232,75,246,254,14,166,4,89,116,10,226,227,88,4,192,0,6,166,4,195,233,47,10,191,190,37,87,
        191,168,4,198,5,1,232,44,10,117,3,233,54,241,121,7,10,255,117,10,233,147,3,10,255,117,3,233,13,10,10,219,121,36,128,255,153,
        114,3,233,239,158,82,83,255,54,163,4,255,54,165,4,232,52,1,91,90,232,92,11,232,63,11,91,90,116,3,233,211,158,160,165,4,10,
        192,121,9,191,195,113,87,36,127,162,165,4,83,82,128,203,127,156,255,54,165,4,255,54,163,4,232,4,1,90,91,232,44,11,117,30,
        82,83,186,0,0,187,0,144,232,31,11,91,90,121,15,157,90,91,233,60,0,186,0,0,187,0,129,233,18,247,157,121,14,83,82,232,47,1,
        138,194,232,197,2,90,91,208,216,143,6,163,4,143,6,165,4,159,128,38,165,4,127,158,115,4,191,176,125,87,83,82,232,21,1,90,91,
        232,3,251,233,133,240,83,82,232,255,0,137,22,178,4,199,6,163,4,0,0,199,6,165,4,0,129,209,46,178,4,115,7,90,91,83,82,232,222,
        250,247,6,178,4,255,255,116,21,90,91,232,33,12,232,141,10,232,203,250,90,91,232,22,12,232,130,10,235,214,90,91,195,138,14,
        166,4,128,233,184,115,57,246,217,156,187,164,4,138,135,1,0,136,135,3,0,10,192,156,12,128,136,135,1,0,198,135,2,0,184,157,
        156,121,3,232,34,0,50,237,232,18,0,157,121,3,232,38,0,198,6,158,4,0,157,115,3,233,189,1,195,81,83,248,232,122,9,91,89,226,
        246,195,83,187,159,4,131,47,1,115,4,67,67,235,247,91,195,83,187,159,4,254,7,117,3,67,235,249,91,195,138,14,166,4,128,233,
        152,115,65,246,217,156,139,22,163,4,139,30,165,4,10,219,156,136,30,167,4,198,6,166,4,152,128,203,128,157,156,121,6,131,234,
        1,128,219,0,50,237,10,201,116,6,208,235,209,218,226,250,157,159,121,5,66,117,2,254,195,157,115,5,50,228,233,169,1,158,121,
        10,247,210,246,211,131,194,1,128,211,0,195,177,152,42,14,166,4,248,235,170,232,102,8,126,81,186,0,0,187,0,129,232,190,9,117,
        9,137,22,163,4,137,22,165,4,195,160,166,4,44,128,152,80,198,6,166,4,128,232,27,11,187,118,97,232,24,2,90,91,232,16,11,232,
        124,9,187,135,97,232,10,2,90,91,232,145,245,90,232,254,10,232,217,248,90,91,232,26,244,187,49,128,186,24,114,233,157,249,
        233,244,156,233,92,148,159,134,224,80,176,1,235,2,50,192,162,85,4,88,134,196,158,186,0,0,137,30,83,4,116,3,232,233,195,137,
        30,59,3,232,172,147,117,215,139,227,139,54,83,4,57,55,117,205,82,138,167,2,0,80,82,131,195,4,246,135,255,255,128,120,65,185,
        2,0,252,139,243,191,163,4,243,165,91,86,83,246,6,85,4,255,117,15,190,86,4,131,239,4,185,2,0,243,165,50,192,116,3,232,75,240,
        95,190,163,4,185,2,0,252,243,165,94,139,20,139,140,2,0,131,198,4,86,232,73,240,235,39,131,195,4,139,15,67,67,94,139,20,246,
        6,85,4,255,117,6,139,22,86,4,235,4,3,209,112,53,137,20,82,139,23,67,67,88,83,232,165,241,91,89,42,197,232,31,241,116,11,137,
        22,46,0,139,209,135,211,233,124,154,139,227,137,30,69,3,139,30,59,3,128,63,44,117,9,232,230,154,232,66,255,233,147,147,233,
        168,154,81,83,86,87,82,178,56,187,158,4,191,165,4,190,166,4,235,25,83,185,4,0,248,209,23,67,67,226,250,91,246,7,64,117,41,
        254,12,116,42,254,202,116,38,246,5,255,120,33,117,224,128,44,8,118,26,128,234,8,118,21,190,164,4,185,7,0,253,243,164,128,
        38,158,4,32,235,190,128,15,32,235,210,90,95,94,91,89,118,3,233,116,4,233,192,6,138,62,166,4,185,3,0,10,219,120,44,117,18,
        128,239,8,114,29,138,222,138,242,138,212,128,228,32,226,234,116,16,248,208,212,209,210,208,211,246,196,64,117,7,254,207,117,
        216,233,155,6,128,204,32,235,244,136,62,166,4,233,120,4,83,232,2,0,91,195,232,45,0,187,10,4,235,12,83,232,2,0,91,195,232,
        31,0,187,99,4,128,62,168,4,1,120,7,117,18,198,6,168,4,2,232,129,175,176,13,232,137,175,176,10,232,132,175,195,252,10,255,
        190,3,98,116,10,246,6,167,4,128,121,3,190,11,98,232,123,6,114,8,191,159,4,185,4,0,235,9,131,198,4,191,163,4,185,2,0,46,165,
        226,252,195,232,13,9,83,232,129,7,232,182,247,91,232,5,0,90,91,233,173,247,46,138,7,152,232,246,8,80,67,46,139,7,163,163,
        4,131,195,2,46,139,7,163,165,4,131,195,2,88,90,89,72,116,28,81,82,80,83,135,217,232,131,247,91,83,46,139,23,46,139,159,2,
        0,232,234,241,91,131,195,4,235,222,195,83,208,232,115,3,233,9,1,187,178,96,232,214,6,232,47,7,114,9,91,232,35,251,75,198,
        7,37,195,232,243,5,181,16,115,2,181,7,232,189,5,116,3,232,4,250,91,120,63,138,208,2,197,42,6,130,4,121,5,246,216,232,194,
        250,50,201,232,177,0,255,54,129,4,82,232,218,248,90,143,6,129,4,255,54,129,4,50,192,10,194,116,6,232,179,250,232,57,248,143,
        6,129,4,255,54,129,4,160,129,4,233,114,2,138,208,160,129,4,10,192,116,2,254,200,138,240,2,194,138,200,120,4,50,192,138,200,
        121,17,80,81,82,83,232,169,5,91,90,89,88,254,192,120,241,138,225,138,194,42,193,2,197,121,23,160,130,4,232,90,250,198,7,46,
        67,50,201,50,192,42,194,42,197,232,75,250,235,22,160,130,4,82,255,54,129,4,42,197,42,194,2,193,120,3,232,54,250,232,39,0,
        255,54,129,4,232,81,248,160,130,4,143,6,129,4,10,192,88,90,117,7,139,30,82,3,233,103,1,2,194,254,200,120,3,232,15,250,233,
        91,1,138,197,2,194,42,193,254,192,138,232,44,3,127,252,4,3,138,200,160,131,4,36,64,117,2,138,200,195,232,254,4,180,7,114,
        2,180,16,232,200,4,91,249,116,9,83,80,232,11,249,90,91,138,230,156,80,139,22,129,4,10,246,156,10,210,116,2,254,202,2,242,
        157,116,9,246,6,131,4,4,117,2,254,206,42,244,138,230,80,120,3,233,78,0,83,80,80,232,225,4,88,254,196,117,247,232,191,4,232,
        142,7,88,80,185,3,0,210,228,232,166,4,114,16,138,196,152,187,178,96,3,216,232,107,5,232,85,6,235,14,187,110,96,138,196,152,
        3,216,232,83,5,232,248,5,88,91,120,17,88,89,254,193,81,80,83,80,232,157,4,88,91,235,2,50,228,246,220,160,130,4,2,224,254,
        196,10,192,116,9,246,6,131,4,4,117,2,254,204,138,236,50,201,88,255,54,129,4,80,136,46,130,4,232,94,247,88,10,228,126,5,138,
        196,232,63,249,88,163,129,4,10,192,117,12,75,138,7,60,46,116,1,67,137,30,82,3,88,157,114,21,2,196,138,38,130,4,42,196,10,
        228,116,9,246,6,131,4,4,117,2,254,192,10,192,232,74,246,139,217,233,71,0,138,224,246,196,64,180,3,117,2,50,228,163,131,4,
        137,14,129,4,138,224,187,180,4,198,7,32,246,196,8,116,3,198,7,43,83,232,182,3,91,121,8,198,7,45,83,232,226,5,91,67,198,7,
        48,232,209,3,161,131,4,139,14,129,4,120,3,233,179,253,233,104,0,83,232,59,248,91,116,3,136,47,67,198,7,0,187,179,4,67,139,
        62,82,3,139,22,129,4,160,130,4,50,228,43,251,43,248,116,67,138,7,60,32,116,230,60,42,116,226,180,1,75,83,80,232,234,234,50,
        228,60,45,116,246,60,43,116,242,60,36,116,238,60,48,117,22,67,232,212,234,115,16,75,235,3,75,136,7,88,10,228,116,248,131,
        196,2,235,179,88,10,228,116,251,91,198,7,37,195,161,131,4,138,204,181,6,208,232,139,22,129,4,115,11,83,82,232,69,243,50,192,
        90,233,63,254,138,198,44,5,120,3,232,38,248,82,232,218,245,88,80,10,192,117,1,75,254,200,120,6,232,20,248,198,7,0,143,6,129,
        4,233,89,255,232,235,2,116,109,121,12,161,163,4,163,11,0,160,165,4,162,13,0,161,11,0,46,247,38,107,98,139,248,138,202,160,
        109,98,50,228,247,38,11,0,2,200,50,228,160,13,0,46,247,38,107,98,2,200,50,228,46,139,22,110,98,3,215,46,138,30,111,98,18,
        217,136,38,167,4,176,128,162,166,4,137,22,11,0,136,30,13,0,176,4,162,251,2,233,184,251,187,179,4,185,32,0,3,7,67,67,226,250,
        36,254,163,11,0,235,161,139,22,11,0,138,30,13,0,51,192,176,128,162,166,4,136,38,167,4,233,143,251,83,81,187,158,4,129,7,128,
        0,185,3,0,115,14,67,67,255,7,117,8,226,248,254,6,166,4,209,31,89,116,32,246,6,158,4,255,117,5,128,38,159,4,254,187,165,4,
        138,7,138,167,2,0,36,127,128,228,128,10,224,136,39,91,195,131,196,4,233,136,251,128,228,224,128,196,128,115,28,156,66,117,
        18,157,254,195,117,19,249,208,219,254,6,166,4,117,10,88,233,106,251,157,117,3,128,226,254,86,190,163,4,137,20,70,70,138,62,
        167,4,129,227,127,128,10,223,136,28,94,195,139,241,232,180,4,139,206,81,232,9,2,114,9,128,62,166,4,184,121,15,235,7,128,62,
        166,4,152,121,6,232,0,2,232,207,4,187,134,4,232,81,4,89,81,191,142,4,187,134,4,232,53,4,187,134,4,232,93,4,232,253,1,232,
        178,4,187,134,4,232,52,4,232,251,1,187,148,4,232,197,1,115,3,131,235,4,232,87,4,89,117,4,254,193,235,204,139,233,232,117,
        4,139,205,195,128,38,165,4,127,232,143,0,186,219,15,187,73,131,232,250,242,186,219,15,187,73,129,232,101,237,161,165,4,128,
        252,119,115,1,195,10,192,121,9,36,127,162,165,4,184,176,125,80,232,100,0,160,166,4,60,116,115,9,186,219,15,187,73,131,233,
        200,242,51,210,187,128,127,128,227,127,232,150,2,120,42,128,203,128,232,41,237,232,40,1,156,120,16,51,210,187,128,128,232,
        27,237,232,26,1,120,3,232,80,3,51,210,187,0,127,232,11,237,157,120,3,232,66,3,187,165,4,50,192,10,7,156,121,3,128,55,128,
        187,52,98,232,190,250,157,121,6,187,165,4,128,55,128,195,187,99,98,232,247,1,232,255,240,232,190,241,232,173,3,232,164,247,
        232,0,2,232,195,3,232,246,235,232,7,3,232,184,240,195,255,54,165,4,255,54,163,4,232,86,255,90,91,255,54,163,4,255,54,165,
        4,232,249,1,232,44,255,91,90,233,17,238,161,165,4,10,192,121,9,191,176,125,87,36,127,162,165,4,128,252,129,114,12,191,57,
        123,87,51,210,187,0,129,232,240,237,186,162,48,187,9,127,232,225,1,120,58,191,66,123,87,255,54,163,4,255,54,165,4,186,215,
        179,187,93,129,232,101,236,91,90,255,54,163,4,255,54,165,4,232,163,1,187,73,98,232,49,250,91,90,255,54,163,4,255,54,165,4,
        232,144,1,91,90,232,171,237,187,82,98,233,6,250,186,219,15,187,73,129,233,37,236,186,146,10,187,6,128,233,40,236,232,87,176,
        60,13,117,3,232,35,177,46,138,7,67,10,192,117,238,195,191,159,4,185,4,0,184,0,0,252,243,171,195,184,0,0,163,163,4,163,165,
        4,195,232,42,0,121,14,161,163,4,11,192,116,32,176,1,121,28,246,216,195,205,212,160,166,4,10,192,116,16,160,165,4,10,192,116,
        7,176,1,121,5,246,216,195,12,1,195,160,251,2,60,8,254,200,254,200,254,200,195,232,241,255,114,12,83,187,106,97,232,206,0,
        232,237,234,91,195,51,210,187,0,128,232,172,235,195,232,215,255,187,42,96,114,17,235,8,232,205,255,187,58,96,114,7,232,171,
        0,232,117,240,195,255,54,165,4,255,54,163,4,198,6,251,2,8,232,156,0,232,112,239,90,91,232,6,241,195,185,4,0,209,23,67,67,
        226,250,195,185,4,0,209,31,75,75,226,250,195,128,143,2,0,32,226,1,195,187,176,4,128,249,8,114,38,81,185,7,0,187,170,4,138,
        39,138,135,1,0,136,7,67,226,247,50,192,136,7,89,128,233,8,128,228,32,116,217,8,38,170,4,233,210,255,10,201,116,15,81,248,
        232,183,255,89,246,135,2,0,16,117,185,226,191,195,190,159,4,191,171,4,252,185,4,0,139,5,165,137,132,254,255,226,247,195,191,
        124,4,185,2,0,235,6,191,120,4,185,4,0,252,46,139,7,171,67,67,226,248,139,223,75,75,195,191,171,4,235,234,191,159,4,235,229,
        191,171,4,185,4,0,135,222,252,243,165,135,222,195,81,83,87,187,159,4,191,171,4,185,4,0,232,233,255,95,91,89,195,81,83,87,
        187,171,4,191,159,4,235,235,137,22,163,4,137,30,165,4,195,139,22,163,4,139,30,165,4,195,232,207,254,114,63,233,137,0,83,87,
        138,195,50,6,165,4,120,63,10,219,120,22,161,165,4,43,195,114,66,117,58,161,163,4,43,194,114,57,117,49,50,192,235,95,139,195,
        43,6,165,4,114,43,117,35,139,194,43,6,163,4,114,33,117,25,50,192,235,71,83,87,191,165,4,139,7,50,6,165,4,121,19,138,38,165,
        4,10,228,120,6,176,1,10,192,235,44,176,255,249,235,39,81,185,2,0,135,222,160,165,4,10,192,121,2,135,247,253,167,117,6,226,
        251,176,0,235,13,115,6,176,1,10,192,235,5,176,255,10,192,249,89,95,91,195,187,177,4,83,87,191,165,4,138,5,50,7,121,2,235,
        179,81,185,4,0,235,196,187,255,97,232,242,254,232,151,255,117,11,198,6,251,2,2,199,6,163,4,0,128,195,46,43,150,0,0,46,26,
        158,2,0,195,232,9,254,120,8,160,165,4,10,192,120,14,195,161,163,4,11,192,120,17,195,232,244,253,120,8,205,210,128,54,165,
        4,128,195,161,163,4,61,0,128,117,10,205,211,83,232,219,237,91,233,230,255,247,30,163,4,195,187,121,4,232,51,0,191,151,4,185,
        8,0,184,0,0,252,243,171,162,120,4,162,170,4,195,232,183,253,114,3,233,162,254,139,23,139,159,2,0,195,185,4,0,232,165,253,
        114,3,233,150,254,185,2,0,233,144,254,185,4,0,135,251,187,159,4,232,143,253,114,3,233,128,254,135,223,185,2,0,191,163,4,135,
        251,233,115,254,185,4,0,191,159,4,232,116,253,114,3,233,101,254,185,2,0,191,163,4,233,92,254,232,99,253,114,3,233,29,255,
        233,205,254,232,88,253,185,4,0,115,3,185,2,0,93,191,165,4,255,53,79,79,226,250,85,195,191,171,4,185,4,0,235,17,232,57,253,
        191,159,4,185,4,0,115,6,191,163,4,185,2,0,88,143,5,71,71,226,250,80,195,232,31,253,121,1,195,205,213,114,3,233,180,243,233,
        27,244,0,0,250,186,96,0,142,218,142,194,142,210,50,192,162,100,4,181,145,187,0,0,186,154,6,139,242,46,172,136,7,67,66,254,
        205,117,244,188,14,7,205,18,250,187,64,0,247,227,140,219,43,195,187,0,0,246,196,240,117,6,177,4,211,224,139,216,75,137,30,
        44,0,139,227,233,34,205,176,44,162,246,1,187,183,0,198,7,58,50,192,162,249,2,162,6,0,162,107,4,162,101,4,162,40,0,187,14,
        3,137,30,12,3,187,122,3,137,30,226,3,139,30,44,0,75,137,30,10,3,75,83,187,14,7,176,4,162,223,4,83,137,30,224,4,160,223,4,
        254,192,2,192,138,208,182,0,3,218,90,135,218,139,30,224,4,136,23,67,136,55,67,160,223,4,185,52,0,10,192,116,14,135,218,3,
        217,135,218,137,23,67,67,254,200,117,242,135,218,3,217,67,83,254,200,162,54,5,139,30,224,4,139,23,187,51,0,3,218,137,30,228,
        4,91,67,137,30,48,0,137,30,69,3,90,138,194,36,254,138,208,138,194,42,195,138,216,138,198,26,199,138,248,115,3,233,104,173,
        177,3,211,235,138,199,60,2,114,3,187,0,2,138,194,42,195,138,216,138,198,26,199,138,248,115,3,233,74,173,137,30,10,3,135,218,
        137,30,44,0,137,30,47,3,139,227,137,30,69,3,139,30,48,0,135,218,232,61,173,43,218,75,75,83,91,232,128,229,187,220,127,232,
        127,251,232,152,172,233,143,195,32,66,121,116,101,115,32,102,114,101,101,0,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0] 
        
      • ibm-basic-1.10.json
        [233,143,126,232,167,107,203,232,2,101,203,93,232,199,47,116,13,139,54,233,4,138,68,46,60,254,116,2,60,253,195,0,0,0,0,0,0,
        51,46,148,13,104,115,91,17,89,21,102,55,62,22,143,17,237,16,182,16,248,18,12,46,206,16,53,17,95,17,45,46,72,19,80,47,53,31,
        27,45,254,17,88,30,240,27,145,34,133,46,190,7,190,7,83,30,67,19,46,31,0,0,138,30,95,17,156,46,157,46,163,46,243,46,223,54,
        169,18,88,18,57,34,184,18,216,34,251,15,254,15,1,16,4,16,217,20,4,61,48,61,160,93,0,0,0,0,0,0,169,61,63,36,158,36,4,64,82,
        67,108,65,109,65,206,65,47,83,231,82,38,93,19,70,51,70,41,88,13,88,209,71,205,71,147,81,42,80,23,84,104,41,165,41,177,41,
        28,101,128,126,150,125,241,112,135,120,14,122,12,115,132,98,244,121,173,122,205,122,140,43,61,30,122,27,232,40,23,38,233,
        41,248,40,11,41,128,34,71,41,13,38,18,38,117,27,173,107,81,107,130,107,156,101,250,85,152,86,18,87,192,68,152,68,172,68,55,
        1,72,1,87,1,139,1,180,1,217,1,229,1,244,1,249,1,21,2,22,2,26,2,80,2,98,2,109,2,134,2,169,2,170,2,223,2,35,3,58,3,67,3,77,
        3,101,3,105,3,106,3,85,84,207,170,78,196,238,66,211,6,84,206,14,83,195,21,0,83,65,86,197,194,76,79,65,196,195,69,69,208,197,
        0,79,76,79,210,191,76,79,83,197,187,79,78,212,153,76,69,65,210,146,83,82,76,73,206,219,73,78,212,28,83,78,199,29,68,66,204,
        30,79,211,12,72,82,164,22,65,76,204,179,76,211,192,0,69,76,69,84,197,169,65,84,193,132,73,205,134,69,70,83,84,210,172,69,
        70,73,78,212,173,69,70,83,78,199,174,69,70,68,66,204,175,69,198,151,0,76,83,197,161,78,196,129,82,65,83,197,165,68,73,212,
        166,82,82,79,210,167,82,204,212,82,210,213,88,208,11,79,198,35,81,214,241,0,79,210,130,206,209,82,197,15,73,216,31,0,79,84,
        207,137,79,32,84,207,137,79,83,85,194,141,0,69,88,164,26,0,78,80,85,212,133,198,139,78,83,84,210,216,78,212,5,78,208,16,77,
        208,242,78,75,69,89,164,222,0,0,69,217,201,0,79,67,65,84,197,202,80,82,73,78,212,157,76,73,83,212,158,80,79,211,27,69,212,
        136,73,78,197,176,79,65,196,188,73,83,212,147,79,199,10,79,195,36,69,206,18,69,70,84,164,1,79,198,37,0,79,84,79,210,193,69,
        82,71,197,189,79,196,243,73,68,164,3,0,69,88,212,131,69,215,148,79,212,211,0,80,69,206,186,85,212,156,206,149,210,239,67,
        84,164,25,80,84,73,79,206,184,70,198,221,0,82,73,78,212,145,79,75,197,152,79,211,17,69,69,203,23,83,69,212,198,82,69,83,69,
        212,199,79,73,78,212,220,69,206,32,0,0,85,206,138,69,84,85,82,206,142,69,65,196,135,69,83,84,79,82,197,140,69,205,143,69,
        83,85,77,197,168,73,71,72,84,164,2,78,196,8,69,78,85,205,171,65,78,68,79,77,73,90,197,185,0,67,82,69,69,206,200,84,79,208,
        144,87,65,208,164,65,86,197,190,80,67,168,210,84,69,208,207,71,206,4,81,210,7,73,206,9,84,82,164,19,84,82,73,78,71,164,214,
        80,65,67,69,164,24,79,85,78,196,196,84,73,67,203,33,84,82,73,199,34,0,72,69,206,205,82,79,206,162,82,79,70,198,163,65,66,
        168,206,207,204,65,206,13,0,83,73,78,199,215,83,210,208,0,65,204,20,65,82,80,84,210,218,0,73,68,84,200,160,65,73,212,150,
        72,73,76,197,177,69,78,196,178,82,73,84,197,183,0,79,210,240,0,0,0,171,233,173,234,170,235,175,236,222,237,220,244,167,217,
        190,230,189,231,188,232,0,121,121,124,124,127,80,70,60,50,40,122,123,130,107,0,0,173,107,59,100,81,107,168,102,3,99,83,108,
        32,99,116,101,18,99,25,99,65,99,40,99,49,100,106,99,79,99,137,99,215,24,180,101,0,78,69,88,84,32,119,105,116,104,111,117,
        116,32,70,79,82,0,83,121,110,116,97,120,32,101,114,114,111,114,0,82,69,84,85,82,78,32,119,105,116,104,111,117,116,32,71,79,
        83,85,66,0,79,117,116,32,111,102,32,68,65,84,65,0,73,108,108,101,103,97,108,32,102,117,110,99,116,105,111,110,32,99,97,108,
        108,0,79,118,101,114,102,108,111,119,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,85,110,100,101,102,105,110,101,
        100,32,108,105,110,101,32,110,117,109,98,101,114,0,83,117,98,115,99,114,105,112,116,32,111,117,116,32,111,102,32,114,97,110,
        103,101,0,68,117,112,108,105,99,97,116,101,32,68,101,102,105,110,105,116,105,111,110,0,68,105,118,105,115,105,111,110,32,
        98,121,32,122,101,114,111,0,73,108,108,101,103,97,108,32,100,105,114,101,99,116,0,84,121,112,101,32,109,105,115,109,97,116,
        99,104,0,79,117,116,32,111,102,32,115,116,114,105,110,103,32,115,112,97,99,101,0,83,116,114,105,110,103,32,116,111,111,32,
        108,111,110,103,0,83,116,114,105,110,103,32,102,111,114,109,117,108,97,32,116,111,111,32,99,111,109,112,108,101,120,0,67,
        97,110,39,116,32,99,111,110,116,105,110,117,101,0,85,110,100,101,102,105,110,101,100,32,117,115,101,114,32,102,117,110,99,
        116,105,111,110,0,78,111,32,82,69,83,85,77,69,0,82,69,83,85,77,69,32,119,105,116,104,111,117,116,32,101,114,114,111,114,0,
        85,110,112,114,105,110,116,97,98,108,101,32,101,114,114,111,114,0,77,105,115,115,105,110,103,32,111,112,101,114,97,110,100,
        0,76,105,110,101,32,98,117,102,102,101,114,32,111,118,101,114,102,108,111,119,0,68,101,118,105,99,101,32,84,105,109,101,111,
        117,116,0,68,101,118,105,99,101,32,70,97,117,108,116,0,70,79,82,32,87,105,116,104,111,117,116,32,78,69,88,84,0,79,117,116,
        32,111,102,32,80,97,112,101,114,0,63,0,87,72,73,76,69,32,119,105,116,104,111,117,116,32,87,69,78,68,0,87,69,78,68,32,119,
        105,116,104,111,117,116,32,87,72,73,76,69,0,70,73,69,76,68,32,111,118,101,114,102,108,111,119,0,73,110,116,101,114,110,97,
        108,32,101,114,114,111,114,0,66,97,100,32,102,105,108,101,32,110,117,109,98,101,114,0,70,105,108,101,32,110,111,116,32,102,
        111,117,110,100,0,66,97,100,32,102,105,108,101,32,109,111,100,101,0,70,105,108,101,32,97,108,114,101,97,100,121,32,111,112,
        101,110,0,63,0,68,101,118,105,99,101,32,73,47,79,32,69,114,114,111,114,0,70,105,108,101,32,97,108,114,101,97,100,121,32,101,
        120,105,115,116,115,0,63,0,63,0,68,105,115,107,32,102,117,108,108,0,73,110,112,117,116,32,112,97,115,116,32,101,110,100,0,
        66,97,100,32,114,101,99,111,114,100,32,110,117,109,98,101,114,0,66,97,100,32,102,105,108,101,32,110,97,109,101,0,63,0,68,
        105,114,101,99,116,32,115,116,97,116,101,109,101,110,116,32,105,110,32,102,105,108,101,0,84,111,111,32,109,97,110,121,32,
        102,105,108,101,115,0,0,0,0,195,30,16,0,82,199,79,128,82,199,79,128,228,0,203,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,1,0,0,80,56,0,114,7,254,255,15,7,10,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,
        0,0,7,7,32,0,0,0,0,0,0,0,0,0,0,1,24,24,0,0,0,0,80,0,1,0,0,0,7,7,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
        1,1,1,1,1,1,1,32,105,110,32,0,79,107,255,13,0,66,114,101,97,107,0,187,4,0,3,220,67,138,7,67,60,177,117,7,185,6,0,3,217,235,
        241,60,130,116,1,195,138,15,67,138,47,67,83,139,217,11,210,135,218,116,4,135,218,59,218,185,16,0,91,116,230,3,217,235,207,
        185,181,8,233,145,0,205,134,139,30,46,0,138,199,34,195,254,192,116,9,160,79,3,10,192,178,19,117,77,233,189,38,178,61,185,
        178,57,185,178,54,185,178,53,185,178,52,185,178,51,185,178,62,185,178,55,185,178,64,185,178,63,185,178,50,185,178,67,185,
        178,58,235,34,139,30,55,3,137,30,46,0,178,2,185,178,11,185,178,1,185,178,10,185,178,18,185,178,20,185,178,6,185,178,22,185,
        178,13,50,192,162,54,5,162,95,0,162,98,4,162,96,0,139,30,46,0,137,30,71,3,50,192,162,101,4,162,107,4,138,199,34,195,254,192,
        116,4,137,30,73,3,185,12,8,139,30,69,3,233,177,37,89,138,194,138,202,162,40,0,139,30,67,3,137,30,75,3,135,218,139,30,71,3,
        138,199,34,195,254,192,116,10,137,30,84,3,135,218,137,30,86,3,139,30,77,3,11,219,135,218,187,79,3,116,11,34,7,117,7,254,15,
        135,218,233,115,6,50,192,136,7,138,209,232,8,36,187,180,3,205,135,138,194,60,68,115,8,60,50,115,6,60,31,114,6,176,40,44,19,
        138,208,46,138,7,67,10,192,117,248,75,67,254,202,117,242,83,139,30,71,3,94,135,222,86,205,136,46,138,7,60,63,117,6,91,187,
        180,3,235,212,232,190,114,91,186,254,255,59,218,205,137,117,3,233,238,117,138,199,34,195,254,192,116,3,232,153,92,176,255,
        232,241,34,176,89,205,138,50,192,162,111,0,232,59,60,232,154,35,187,45,7,232,140,114,160,40,0,44,2,117,3,232,238,45,205,139,
        187,255,255,137,30,46,0,160,62,3,10,192,116,73,139,30,63,3,83,232,101,92,90,82,232,119,1,176,42,114,2,176,32,232,172,34,232,
        132,40,90,115,14,50,192,162,62,3,235,176,50,192,162,62,3,235,21,139,30,65,3,3,218,114,241,82,186,249,255,59,218,90,115,232,
        137,30,63,3,160,247,1,10,192,116,170,233,168,45,232,81,40,114,162,232,233,5,254,192,254,200,116,153,156,232,45,7,115,8,232,
        147,38,117,3,233,118,254,232,56,4,138,7,60,32,117,3,232,240,91,82,232,49,1,90,157,137,30,67,3,205,140,114,3,233,111,59,82,
        81,232,238,61,232,176,5,10,192,156,137,22,73,3,232,240,0,114,9,157,156,117,3,233,176,7,10,192,81,156,83,232,173,26,91,157,
        89,81,115,3,232,214,24,90,157,82,116,71,90,160,107,4,10,192,117,8,139,30,10,3,137,30,47,3,139,30,88,3,94,135,222,86,89,83,
        3,217,83,232,21,91,91,137,30,88,3,135,218,136,63,89,90,83,67,67,137,23,67,67,186,184,0,73,73,73,73,139,242,172,136,7,67,66,
        73,138,193,10,197,117,242,205,141,90,232,30,0,139,30,233,4,137,30,82,3,232,73,35,205,142,139,30,82,3,137,30,233,4,233,216,
        254,139,30,48,0,135,218,138,254,138,218,138,7,67,10,7,117,1,195,67,67,67,138,7,10,192,116,16,60,32,115,245,60,11,114,241,
        232,253,4,232,249,4,235,236,67,135,218,137,23,235,212,186,0,0,82,116,23,60,44,116,19,90,232,35,6,82,116,29,60,44,116,25,232,
        175,35,234,116,2,60,44,186,250,255,116,3,232,12,6,116,7,60,44,116,3,233,99,253,137,30,59,3,135,218,90,94,135,222,86,83,139,
        30,48,0,139,203,138,7,67,10,7,159,75,158,116,149,67,67,139,31,59,218,139,217,139,31,245,116,136,245,115,133,235,226,50,192,
        162,253,2,162,252,2,205,143,185,59,1,186,184,0,138,7,10,192,117,32,187,64,1,138,195,42,193,138,200,138,199,26,197,138,232,
        187,183,0,50,192,139,250,170,66,139,250,170,66,139,250,170,195,60,34,117,3,233,51,0,60,32,116,9,160,252,2,10,192,138,7,116,
        47,67,80,232,84,2,88,44,58,116,6,60,74,117,8,176,1,162,252,2,162,253,2,44,85,117,172,80,138,7,10,192,88,116,170,58,7,116,
        218,80,138,7,67,232,44,2,235,236,67,10,192,120,146,75,60,63,176,145,82,81,117,3,233,226,0,186,107,3,232,210,14,232,41,36,
        115,3,233,46,1,83,186,94,11,232,32,0,117,62,232,240,3,186,98,11,232,21,0,176,137,117,3,235,11,144,186,101,11,232,8,0,117,
        38,176,141,89,233,173,0,139,242,46,172,10,192,117,1,195,138,200,232,149,14,58,193,117,246,67,66,235,234,71,79,32,0,84,79,
        0,85,66,0,91,232,127,14,83,205,144,187,3,1,44,65,2,192,138,200,181,0,3,217,46,139,23,91,67,83,232,102,14,138,200,139,242,
        46,172,36,127,117,3,233,171,1,67,58,193,117,80,139,242,46,172,66,10,192,121,226,138,193,60,40,116,29,139,242,46,172,60,209,
        116,21,60,208,116,17,232,54,14,60,46,116,3,232,199,21,176,0,114,3,233,122,1,88,139,242,46,172,205,145,10,192,121,3,233,35,
        0,89,90,12,128,80,176,255,232,81,1,50,192,162,253,2,88,232,72,1,233,178,254,91,139,242,46,172,66,10,192,121,247,66,235,141,
        75,80,205,146,186,12,12,138,200,139,242,46,172,10,192,116,23,66,58,193,117,243,235,20,140,170,171,169,166,168,212,161,138,
        147,158,137,142,205,141,0,50,192,235,2,176,1,162,253,2,88,89,90,60,161,80,117,3,232,250,0,88,60,177,117,5,232,244,0,176,233,
        60,217,116,3,233,198,0,80,232,229,0,176,143,232,226,0,88,80,233,173,254,138,7,60,46,116,14,60,58,114,3,233,144,0,60,48,115,
        3,233,137,0,160,253,2,10,192,138,7,89,90,121,3,233,98,254,116,39,60,46,117,3,233,89,254,176,14,232,173,0,82,232,232,3,232,
        253,0,94,135,222,86,135,218,138,195,232,155,0,138,199,91,232,149,0,233,255,253,82,81,138,7,232,31,93,232,223,0,89,90,83,160,
        251,2,60,2,117,26,139,30,163,4,138,199,10,192,176,2,117,14,138,195,138,251,179,15,60,10,115,200,4,17,235,203,80,208,200,4,
        27,232,92,0,187,163,4,232,79,14,114,3,187,159,4,88,80,138,7,232,74,0,88,67,254,200,117,244,91,233,173,253,186,106,3,66,139,
        242,46,172,36,127,117,3,233,107,0,66,58,7,139,242,46,172,117,235,233,111,0,60,38,116,3,233,197,253,83,232,11,2,91,232,215,
        12,60,72,176,11,117,2,176,12,232,11,0,82,81,232,217,12,89,233,92,255,176,58,139,250,170,66,73,138,193,10,197,116,1,195,178,
        23,233,155,250,205,147,91,75,254,200,162,253,2,89,90,232,160,12,232,222,255,67,232,153,12,232,240,33,115,244,60,58,115,8,
        60,48,115,236,60,46,116,232,233,51,253,138,7,60,32,115,10,60,9,116,6,60,10,116,2,176,32,80,160,253,2,254,192,116,2,254,200,
        233,159,254,75,138,7,60,32,116,249,60,9,116,245,60,10,116,241,67,195,176,100,162,57,3,232,210,41,232,85,32,231,82,137,22,
        59,3,160,251,2,80,232,123,9,88,83,232,41,16,187,86,4,232,69,86,91,90,89,83,232,157,3,137,30,53,3,187,2,0,3,220,232,115,249,
        117,30,3,217,82,75,138,55,75,138,23,67,67,83,139,30,53,3,59,218,91,90,117,229,90,139,227,137,30,69,3,177,90,135,218,177,8,
        232,227,30,83,139,30,53,3,94,135,222,86,83,139,30,46,0,94,135,222,86,232,237,31,204,232,26,13,117,3,233,198,249,114,3,233,
        193,249,156,232,14,9,157,83,120,3,233,28,0,232,138,93,94,135,222,86,186,1,0,138,7,60,207,117,3,232,212,16,82,83,135,218,232,
        198,86,235,39,232,18,93,232,177,85,91,81,82,185,0,129,138,241,138,214,205,148,138,7,60,207,176,1,117,14,232,207,8,83,232,
        244,92,232,147,85,232,18,109,91,81,82,138,200,232,186,12,138,232,81,75,232,171,0,116,3,233,71,249,232,129,22,232,160,0,83,
        83,139,30,90,4,137,30,46,0,139,30,59,3,94,135,222,86,181,130,81,159,134,196,80,134,196,159,134,196,80,134,196,233,207,100,
        181,130,81,235,66,233,203,248,233,18,249,195,232,117,0,235,80,205,149,233,99,15,233,213,2,10,192,117,235,67,138,7,67,10,7,
        116,224,67,139,23,67,137,22,46,0,246,6,118,4,255,116,38,83,176,91,232,202,28,135,218,232,112,86,176,93,232,192,28,91,235,
        19,205,150,232,155,29,137,38,69,3,137,30,67,3,138,7,60,58,117,191,67,138,7,60,58,114,171,186,232,14,82,116,164,44,129,114,
        171,60,74,115,162,50,228,2,192,139,240,205,151,46,255,180,37,0,67,138,7,60,58,114,1,195,60,32,116,244,114,8,60,48,245,254,
        192,254,200,195,10,192,116,251,60,11,114,114,60,30,117,6,160,0,3,10,192,195,60,16,116,60,80,67,162,0,3,44,28,115,57,44,245,
        115,7,60,254,117,27,138,7,67,137,30,254,2,183,0,138,216,137,30,2,3,176,2,162,1,3,187,4,0,88,10,192,195,138,7,67,67,137,30,
        254,2,75,138,63,235,225,232,55,0,139,30,254,2,235,147,254,192,208,192,162,1,3,82,81,186,2,3,135,218,138,232,232,19,85,135,
        218,89,90,137,30,254,2,88,187,4,0,10,192,195,60,9,114,3,233,105,255,60,48,245,254,192,254,200,195,160,0,3,60,15,115,23,60,
        13,114,19,139,30,2,3,117,10,67,67,67,138,23,67,138,55,135,218,233,106,84,160,1,3,162,251,2,60,8,116,17,139,30,2,3,137,30,
        163,4,139,30,4,3,137,30,165,4,195,187,2,3,233,157,84,178,3,185,178,2,185,178,4,185,178,8,232,58,31,185,190,7,81,114,229,44,
        65,138,200,138,232,232,5,255,60,234,117,15,232,254,254,232,33,31,114,208,44,65,138,232,232,242,254,138,197,42,193,114,195,
        254,192,94,135,222,86,187,96,3,181,0,3,217,136,23,67,254,200,117,249,91,138,7,60,44,117,168,232,206,254,235,181,232,201,254,
        232,179,14,121,155,178,5,233,122,247,138,7,60,46,139,22,73,3,117,3,233,178,254,75,232,174,254,60,14,116,2,60,13,139,22,2,
        3,117,3,233,159,254,50,192,162,0,3,75,186,0,0,232,147,254,114,1,195,83,159,80,187,152,25,59,218,114,27,138,254,138,218,3,
        218,3,219,3,218,3,219,88,158,44,48,138,208,182,0,3,218,135,218,91,235,213,88,158,91,195,117,3,233,124,28,60,14,116,7,60,13,
        116,3,233,163,48,232,117,28,185,232,14,235,30,177,3,232,2,28,232,149,255,89,83,83,139,30,46,0,94,135,222,86,176,141,159,134,
        196,80,134,196,81,235,4,81,232,123,255,160,0,3,60,13,135,218,116,188,60,14,116,3,233,190,246,135,218,83,139,30,254,2,94,135,
        222,86,232,81,0,67,83,139,30,46,0,59,218,91,115,3,232,79,249,114,3,232,70,249,115,13,73,176,13,162,61,3,91,232,252,18,139,
        217,195,178,8,233,163,246,205,152,117,246,182,255,232,250,245,139,227,137,30,69,3,60,141,178,3,116,3,233,139,246,91,137,30,
        46,0,187,232,14,94,135,222,86,176,91,177,58,235,2,177,0,181,0,138,193,138,205,138,232,75,232,176,253,10,192,116,190,58,197,
        116,186,67,60,34,116,233,254,192,116,236,44,140,117,231,58,197,18,198,138,240,235,223,88,4,3,235,20,232,220,37,232,95,28,
        231,137,22,59,3,82,160,251,2,80,232,133,5,88,94,135,222,86,138,232,160,251,2,58,197,138,197,116,6,232,37,12,160,251,2,186,
        163,4,60,5,114,3,186,159,4,83,60,3,117,49,139,30,163,4,83,67,139,23,139,30,48,0,59,218,115,17,139,30,92,3,59,218,90,115,17,
        187,44,3,59,218,115,10,176,90,232,230,22,135,218,232,51,20,232,222,22,94,135,222,86,232,190,82,90,91,195,60,167,117,50,232,
        24,253,232,236,27,137,232,95,254,11,210,116,13,232,79,248,138,245,138,209,91,114,3,233,19,255,137,22,77,3,114,218,160,79,
        3,10,192,138,194,116,209,160,40,0,138,208,233,206,245,232,229,12,138,7,138,232,60,141,116,5,232,178,27,137,75,138,202,254,
        201,138,197,117,3,233,185,252,232,26,254,60,44,117,167,235,238,160,79,3,10,192,117,8,51,192,163,77,3,233,102,245,254,192,
        162,40,0,128,63,131,116,18,232,247,253,117,12,11,210,116,16,232,115,254,50,192,162,79,3,195,232,151,252,117,250,235,7,50,
        192,162,79,3,254,192,161,71,3,163,46,0,139,30,75,3,117,229,128,63,0,117,3,131,195,4,67,233,23,25,232,112,12,117,218,10,192,
        117,3,233,164,253,233,32,245,186,10,0,82,116,31,232,157,253,135,218,94,135,222,86,116,22,135,218,232,38,27,44,139,22,65,3,
        116,8,232,147,253,116,3,233,225,244,135,218,138,199,10,195,117,3,233,113,253,137,30,65,3,162,62,3,91,137,30,63,3,89,233,219,
        245,232,44,4,138,7,60,44,117,3,232,25,252,60,137,116,5,232,233,26,205,75,83,232,210,81,91,116,25,232,6,252,117,1,195,60,14,
        117,3,233,204,253,60,13,116,3,233,224,251,139,30,2,3,195,182,1,232,41,254,10,192,116,246,232,228,251,60,161,117,242,254,206,
        117,238,235,209,232,106,1,235,3,232,155,49,75,232,206,251,117,3,232,29,25,117,3,233,63,1,60,215,117,3,233,107,39,60,206,117,
        3,233,171,0,60,210,117,3,233,164,0,83,60,44,116,109,60,59,117,3,233,23,1,89,232,169,3,83,232,163,7,116,15,232,65,93,232,194,
        18,198,7,32,139,30,163,4,254,7,205,153,139,30,163,4,83,232,57,28,116,13,232,49,1,120,3,233,49,0,232,129,69,235,3,160,41,0,
        138,232,254,192,116,35,232,30,28,116,7,232,102,69,138,7,235,3,232,104,59,91,83,10,192,116,14,2,7,245,115,4,254,200,58,197,
        114,3,232,153,24,91,232,222,18,91,233,107,255,205,154,185,50,0,139,30,233,4,3,217,232,232,27,138,7,117,24,160,42,0,138,232,
        232,50,59,60,255,116,12,58,197,114,3,232,108,24,114,3,233,135,0,44,14,115,252,246,208,235,114,80,232,7,251,232,241,10,88,
        80,60,210,116,1,74,138,198,10,192,120,3,233,3,0,186,0,0,83,232,166,27,116,13,232,158,0,120,3,233,21,0,232,238,68,235,3,160,
        41,0,138,216,254,192,116,7,183,0,232,124,81,135,218,91,232,161,25,41,75,88,44,210,83,116,19,185,50,0,139,30,233,4,3,217,232,
        111,27,138,7,117,3,232,190,58,246,208,2,194,114,16,254,192,116,25,232,246,23,138,194,254,200,121,3,233,13,0,254,192,138,232,
        176,32,232,24,23,254,205,117,249,91,232,136,250,233,188,254,205,155,50,192,83,82,81,232,134,44,89,90,50,192,138,248,138,216,
        137,30,233,4,91,195,83,50,192,159,134,196,80,134,196,232,233,42,116,3,233,226,242,83,185,46,0,178,2,182,253,3,217,136,55,
        176,0,91,233,230,41,232,51,46,10,192,195,60,133,116,3,233,162,51,232,17,25,133,60,35,117,3,233,40,48,232,48,29,232,115,0,
        232,122,34,232,68,79,82,83,232,167,28,90,89,115,3,233,69,25,81,82,181,0,232,69,17,91,176,3,233,147,252,63,82,101,100,111,
        32,102,114,111,109,32,115,116,97,114,116,13,0,67,138,7,10,192,117,3,233,146,242,60,34,117,242,233,155,0,91,91,235,12,205,
        156,160,58,3,10,192,116,3,233,115,242,89,187,16,21,232,11,102,139,30,67,3,195,232,148,47,83,187,246,1,233,224,0,60,35,116,
        242,232,190,28,185,140,21,81,60,34,176,0,176,255,162,95,4,117,223,232,219,16,138,7,60,44,117,10,50,192,162,95,4,232,157,249,
        235,4,232,111,24,59,83,232,48,17,91,195,83,160,95,4,10,192,116,10,176,63,232,12,22,176,32,232,7,22,232,2,28,89,115,3,233,
        161,24,81,50,192,162,58,3,198,7,44,135,218,91,83,82,82,75,176,128,162,57,3,232,94,249,232,165,34,138,7,75,60,40,117,32,67,
        181,0,254,197,232,76,249,117,3,233,232,241,60,34,117,3,233,69,255,60,40,116,235,60,41,117,233,254,205,117,229,232,49,249,
        116,7,60,44,116,3,233,201,241,94,135,222,86,138,7,60,44,116,3,233,49,255,176,1,162,169,4,232,98,0,160,169,4,254,200,116,3,
        233,31,255,83,232,13,5,117,3,232,140,18,91,75,232,251,248,94,135,222,86,138,7,60,44,116,139,91,75,232,236,248,10,192,91,116,
        3,233,10,255,198,7,44,235,6,83,139,30,94,3,13,50,192,162,58,3,94,135,222,86,235,4,232,162,23,44,232,24,33,94,135,222,86,82,
        138,7,60,44,116,10,160,58,3,10,192,116,3,233,139,0,13,50,192,162,82,4,232,98,25,116,3,233,139,46,232,169,4,80,117,56,232,
        155,248,138,240,138,232,60,34,116,14,160,58,3,10,192,138,240,116,2,182,58,181,44,75,232,182,15,88,4,3,138,200,160,82,4,10,
        192,117,1,195,138,193,135,218,187,202,22,94,135,222,86,82,233,240,250,232,99,248,88,80,60,5,185,155,22,81,115,3,233,249,82,
        233,253,82,75,232,79,248,116,7,60,44,116,3,233,96,254,94,135,222,86,75,232,62,248,116,3,233,107,255,90,160,58,3,10,192,135,
        218,116,3,233,53,23,82,91,233,162,253,232,98,250,10,192,117,21,67,138,7,67,10,7,178,4,117,3,233,206,240,67,139,23,67,137,
        22,55,3,232,8,248,60,132,117,221,233,79,255,232,213,22,231,233,4,0,232,206,22,40,75,182,0,82,177,1,232,165,21,205,157,232,
        178,1,50,192,162,168,4,137,30,82,3,139,30,82,3,89,138,7,137,30,49,3,60,230,115,1,195,60,233,114,117,44,233,138,208,117,12,
        160,251,2,60,3,138,194,117,3,233,214,16,60,12,115,229,187,128,3,182,0,3,218,138,197,46,138,55,58,198,115,213,81,185,62,23,
        81,138,198,205,158,60,127,116,100,60,81,114,109,36,254,60,122,116,103,160,251,2,44,3,117,3,233,61,240,10,192,255,54,163,4,
        121,3,233,17,0,255,54,165,4,122,3,233,8,0,255,54,159,4,255,54,161,4,4,3,138,202,138,232,81,185,35,24,81,139,30,49,3,233,99,
        255,182,0,44,230,114,52,60,3,115,48,60,1,208,208,50,198,58,198,138,240,115,3,233,222,239,137,30,49,3,232,54,247,235,224,232,
        101,83,232,55,76,185,41,101,182,127,235,201,82,232,179,83,90,83,185,49,27,235,190,138,197,60,100,114,1,195,81,82,186,4,100,
        187,3,27,83,232,17,3,116,3,233,118,255,139,30,163,4,83,185,200,37,235,156,89,138,193,162,252,2,160,251,2,58,197,117,13,60,
        2,116,40,60,4,117,3,233,127,0,115,57,138,240,138,197,60,8,116,46,138,198,60,8,116,87,138,197,60,4,116,102,138,198,60,3,117,
        3,233,124,239,115,101,187,170,3,181,0,3,217,3,217,46,138,15,67,46,138,47,90,139,30,163,4,81,195,232,12,83,232,37,76,91,137,
        30,161,4,91,137,30,159,4,89,90,232,90,75,232,247,82,187,150,3,160,252,2,208,192,2,195,138,216,18,199,42,195,138,248,46,139,
        31,255,227,138,197,80,232,246,75,88,162,251,2,60,4,116,211,91,137,30,163,4,235,209,232,151,82,89,90,187,160,3,235,205,91,
        232,97,75,232,101,74,232,40,75,91,137,30,165,4,91,137,30,163,4,235,229,83,135,218,232,80,74,91,232,69,75,232,73,74,233,59,
        76,232,51,246,117,3,233,228,238,115,3,233,204,80,232,78,22,114,3,233,219,0,60,32,115,3,233,127,246,205,159,254,192,117,3,
        233,106,1,254,200,60,233,116,213,60,234,117,3,233,175,0,60,34,117,3,233,45,13,60,211,117,3,233,236,1,60,38,117,3,233,209,
        0,60,213,117,12,232,232,245,160,40,0,83,232,67,2,91,195,60,212,117,13,232,216,245,83,139,30,71,3,232,247,74,91,195,60,218,
        117,46,232,199,245,232,155,20,40,60,35,117,13,232,184,5,83,232,64,38,135,218,91,233,3,0,232,249,30,232,131,20,41,83,135,218,
        11,219,117,3,233,221,246,232,141,75,91,195,60,208,117,3,233,0,2,60,216,117,3,233,139,16,60,200,117,3,233,208,59,60,220,117,
        3,233,76,46,60,222,117,3,233,249,18,60,214,117,3,233,112,15,60,133,117,3,233,56,42,60,219,117,3,233,164,59,60,209,117,3,233,
        126,2,232,96,253,232,46,20,41,195,182,125,232,93,253,139,30,82,3,83,232,214,99,91,195,232,148,29,83,135,218,137,30,163,4,
        232,65,1,116,3,232,175,74,91,195,138,7,60,97,114,249,60,123,115,245,36,95,195,60,38,116,3,233,108,246,186,0,0,232,24,245,
        232,229,255,60,79,116,57,60,72,117,52,181,5,67,138,7,232,213,255,232,42,21,135,218,115,10,60,58,115,77,44,48,114,73,235,6,
        60,71,115,67,44,55,3,219,3,219,3,219,3,219,10,195,138,216,135,218,254,205,117,209,233,140,237,75,232,213,244,135,218,115,
        36,60,56,114,3,233,107,237,185,208,7,81,3,219,114,156,3,219,114,152,3,219,114,148,89,181,0,44,48,138,200,3,217,135,218,235,
        213,232,153,74,135,218,195,67,138,7,44,129,60,7,117,14,83,232,154,244,60,40,91,116,3,233,224,73,176,7,181,0,208,192,138,200,
        81,232,134,244,138,193,60,5,115,34,232,131,252,232,81,19,44,232,148,73,135,218,139,30,163,4,94,135,222,86,83,135,218,232,
        101,4,135,218,94,135,222,86,235,33,232,254,254,94,135,222,86,138,195,60,12,114,11,60,27,205,161,83,115,3,232,123,80,91,186,
        213,25,82,176,1,162,168,4,185,185,0,205,160,3,217,46,255,39,254,206,60,234,116,133,60,45,116,129,254,198,60,43,117,1,195,
        60,233,116,251,159,75,158,195,254,192,18,192,89,34,197,4,255,26,192,232,248,73,235,15,182,90,232,18,252,232,146,80,247,211,
        137,30,163,4,89,233,25,252,160,251,2,60,8,254,200,254,200,254,200,195,138,197,80,232,118,80,88,90,60,122,117,3,233,137,74,
        60,123,117,3,233,102,72,185,12,101,81,60,70,117,3,11,218,195,60,80,117,3,35,218,195,60,60,117,3,51,218,195,60,50,117,5,51,
        218,247,211,195,247,211,35,218,247,211,195,43,218,233,207,72,160,99,0,235,3,232,175,51,254,192,138,216,50,192,138,248,233,
        132,73,232,46,0,82,232,49,254,94,135,222,86,139,23,128,250,255,117,3,233,188,244,14,187,7,101,83,255,54,80,3,82,160,251,2,
        80,60,3,117,3,232,247,12,88,135,218,187,163,4,203,232,97,243,185,0,0,60,27,115,16,60,17,114,12,232,83,243,160,2,3,10,192,
        208,208,138,200,135,218,187,18,0,3,217,135,218,195,232,217,255,82,232,16,18,231,232,194,6,94,135,222,86,137,23,91,195,60,
        208,116,233,60,209,116,28,232,249,17,83,232,245,17,69,232,241,17,71,140,218,116,7,232,233,17,231,232,155,6,137,22,80,3,195,
        232,243,1,232,224,1,135,218,137,23,135,218,138,7,60,40,116,3,233,50,245,232,241,242,232,63,27,138,7,60,41,117,3,233,35,245,
        232,185,17,44,235,238,232,201,1,160,251,2,10,192,80,137,30,82,3,135,218,139,31,11,219,117,3,233,116,235,138,7,60,40,116,3,
        233,206,0,232,187,242,137,30,49,3,135,218,139,30,82,3,232,133,17,40,50,192,80,83,135,218,176,128,162,57,3,232,240,26,135,
        218,94,135,222,86,160,251,2,80,82,232,155,250,137,30,82,3,91,137,30,49,3,88,232,65,1,177,4,232,55,16,187,248,255,3,220,139,
        227,232,249,71,160,251,2,80,139,30,82,3,138,7,60,41,116,19,232,59,17,44,83,139,30,49,3,232,50,17,44,235,177,88,162,228,3,
        88,10,192,116,78,162,251,2,187,0,0,3,220,232,191,71,187,8,0,3,220,139,227,90,179,3,254,195,74,139,242,172,10,192,120,246,
        74,74,74,160,251,2,2,195,138,232,160,228,3,138,200,2,197,60,100,114,3,233,84,243,80,138,195,181,0,187,230,3,3,217,138,200,
        232,223,0,185,197,28,81,81,233,153,244,139,30,82,3,232,250,241,83,139,30,49,3,232,201,16,41,176,82,137,30,49,3,160,124,3,
        4,4,80,208,200,138,200,232,150,15,88,138,200,246,208,254,192,138,216,183,255,3,220,139,227,83,186,122,3,232,158,0,91,137,
        30,122,3,139,30,228,3,137,30,124,3,139,203,187,126,3,186,230,3,232,134,0,138,248,138,216,137,30,228,3,139,30,80,4,67,137,
        30,80,4,138,199,10,195,162,77,4,139,30,49,3,232,144,249,75,232,141,241,116,3,233,41,234,232,141,253,117,17,186,44,3,139,30,
        163,4,59,218,114,6,232,124,8,232,230,8,139,30,122,3,138,247,138,211,67,67,138,15,67,138,47,65,65,65,65,187,122,3,232,47,0,
        135,218,139,227,139,30,80,4,75,137,30,80,4,138,199,10,195,162,77,4,91,88,83,36,7,187,140,3,138,200,181,0,3,217,232,252,252,
        91,195,139,242,172,136,7,67,66,73,138,197,10,193,117,242,195,83,139,30,46,0,67,11,219,91,117,244,178,12,233,206,233,232,231,
        15,209,176,128,162,57,3,10,7,138,200,233,91,25,60,126,116,3,233,157,233,67,138,7,67,60,131,117,3,233,164,12,60,160,117,3,
        233,175,55,60,162,117,3,233,192,56,233,129,233,232,117,4,135,218,236,233,57,253,232,97,4,82,232,167,15,44,232,203,0,90,195,
        232,240,255,238,195,232,235,255,82,80,178,0,75,232,186,240,116,7,232,140,15,44,232,176,0,88,138,240,94,135,222,86,160,94,
        0,10,192,117,11,135,218,236,135,218,50,194,34,198,116,238,91,195,233,52,233,60,35,116,60,232,150,248,232,145,252,117,88,232,
        125,32,138,198,182,0,246,208,10,192,121,3,233,179,241,138,208,82,232,72,15,44,232,108,0,90,159,134,196,80,134,196,83,82,138,
        194,2,192,138,208,176,20,159,134,196,80,134,196,233,8,32,232,80,240,232,76,0,80,232,32,15,44,232,68,0,88,83,82,232,199,32,
        232,50,58,10,192,121,3,233,113,241,67,90,136,23,91,195,232,46,0,232,184,51,162,41,0,44,14,115,252,4,28,246,208,254,192,2,
        194,162,42,0,195,232,19,240,232,26,248,83,232,156,76,135,218,91,138,198,10,192,195,232,1,240,232,8,248,232,235,255,116,3,
        233,50,241,75,232,242,239,138,194,195,232,127,245,75,232,232,239,205,162,89,232,242,234,81,232,25,40,139,30,59,3,75,232,214,
        239,116,14,232,168,14,44,232,195,31,178,2,50,192,232,150,33,187,255,255,137,30,46,0,232,117,16,117,5,176,1,162,111,0,91,90,
        138,15,67,138,47,67,138,197,10,193,117,3,233,61,233,232,144,224,117,3,232,7,13,81,138,15,67,138,47,67,81,94,135,222,86,135,
        218,59,218,89,115,3,233,30,233,94,135,222,86,83,81,135,218,137,30,73,3,232,170,69,91,138,7,60,9,116,5,176,32,232,243,11,232,
        24,0,187,247,1,232,5,0,232,179,12,235,151,138,7,10,192,117,1,195,232,105,23,67,235,243,185,247,1,182,255,50,192,162,252,2,
        50,192,162,94,4,232,121,39,235,6,65,67,254,206,116,223,138,7,10,192,139,249,170,116,214,60,11,114,40,60,32,138,208,114,56,
        60,34,117,10,160,252,2,52,1,162,252,2,176,34,60,58,117,16,160,252,2,208,216,114,7,208,208,36,253,162,252,2,176,58,10,192,
        121,3,233,60,0,138,208,60,46,116,9,232,87,1,115,4,50,192,235,24,160,94,4,10,192,116,15,254,192,117,11,176,32,139,249,170,
        65,254,206,117,1,195,176,1,162,94,4,138,194,60,11,114,7,60,32,115,3,233,55,1,139,249,170,235,130,160,252,2,208,216,114,67,
        208,216,208,216,115,82,138,7,60,217,83,81,187,165,32,83,117,207,73,139,241,172,60,77,117,199,73,139,241,172,60,69,117,191,
        73,139,241,172,60,82,117,183,73,139,241,172,60,58,117,175,88,88,91,254,198,254,198,254,198,254,198,235,45,89,91,138,7,233,
        53,255,160,252,2,12,2,162,252,2,50,192,195,160,252,2,12,4,235,243,208,208,114,231,138,7,60,132,117,3,232,225,255,60,143,117,
        3,232,229,255,138,7,254,192,138,7,117,5,67,138,7,36,127,67,60,161,117,3,232,248,67,60,177,117,10,138,7,67,60,233,176,177,
        116,1,75,83,81,82,205,163,187,54,1,138,232,177,64,254,193,67,138,247,138,211,46,138,7,10,192,116,242,159,67,158,121,244,46,
        138,7,58,197,117,232,135,218,60,208,116,2,60,209,138,193,90,89,138,208,117,12,160,94,4,10,192,176,0,162,94,4,235,21,60,91,
        117,7,50,192,162,94,4,235,29,160,94,4,10,192,176,255,162,94,4,116,13,176,32,139,249,170,65,254,206,117,3,233,164,5,138,194,
        235,6,46,138,7,67,138,208,36,127,139,249,170,65,254,206,117,3,233,141,5,10,194,121,233,60,168,117,5,50,192,162,94,4,91,233,
        100,254,232,191,13,114,1,195,60,48,114,251,60,58,245,195,75,232,136,237,82,81,80,232,33,238,88,185,181,33,81,60,11,117,3,
        233,96,66,60,12,117,3,233,99,66,139,30,2,3,233,19,79,89,90,160,0,3,178,79,60,11,116,6,60,12,178,72,117,20,176,38,139,249,
        170,65,254,206,116,192,138,194,139,249,170,65,254,206,116,182,160,1,3,60,4,178,0,114,6,178,33,116,2,178,35,138,7,60,32,117,
        3,232,82,67,138,7,67,10,192,116,42,139,249,170,65,254,206,116,143,160,1,3,60,4,114,234,159,73,158,139,241,172,159,65,158,
        117,4,60,46,116,8,60,68,116,4,60,69,117,211,178,0,235,207,138,194,10,192,116,9,139,249,170,65,254,206,117,1,195,139,30,254,
        2,233,174,253,232,241,231,81,232,245,1,89,90,81,81,232,32,232,115,11,138,247,138,211,94,135,222,86,83,59,218,114,3,233,0,
        238,187,45,7,232,246,88,89,187,221,9,94,135,222,86,135,218,139,30,88,3,139,242,172,139,249,170,65,66,59,218,117,244,139,217,
        137,30,88,3,195,232,50,0,232,195,36,30,142,30,80,3,138,7,31,233,238,248,232,22,0,82,232,177,36,232,89,11,44,232,125,252,90,
        6,142,6,80,3,139,250,170,7,195,232,122,244,83,232,4,0,135,218,91,195,185,173,107,81,232,105,248,120,246,205,164,160,166,4,
        60,144,117,237,232,171,88,120,232,232,130,72,185,128,145,186,0,0,233,58,64,185,10,0,81,138,245,138,213,116,53,60,44,116,11,
        82,232,116,237,138,238,138,202,90,116,38,232,0,11,44,232,102,237,116,29,88,232,246,10,44,82,232,104,237,116,3,233,182,228,
        11,210,117,3,233,74,237,135,218,94,135,222,86,135,218,81,232,76,231,90,82,81,232,70,231,139,217,90,59,218,135,218,115,3,233,
        44,237,90,89,88,83,82,235,21,3,217,115,3,233,30,237,135,218,83,187,249,255,59,218,91,115,3,233,16,237,82,139,23,11,210,135,
        218,90,116,12,138,7,67,10,7,159,75,158,135,218,117,213,81,232,36,0,89,90,91,82,139,23,67,11,210,116,20,135,218,94,135,222,
        86,135,218,67,137,23,135,218,3,217,135,218,91,235,228,185,181,8,81,60,13,50,192,162,61,3,139,30,48,0,75,67,138,7,67,10,7,
        117,1,195,67,139,23,67,232,123,235,10,192,116,236,138,200,160,61,3,10,192,138,193,116,91,205,165,60,167,117,24,232,99,235,
        60,137,117,228,232,92,235,60,14,117,221,82,232,172,236,11,210,117,10,235,41,60,14,117,204,82,232,158,236,83,232,140,230,159,
        73,158,176,13,114,63,232,120,8,187,252,35,82,232,105,87,91,232,96,65,89,91,83,81,232,81,65,91,90,75,235,163,85,110,100,101,
        102,105,110,101,100,32,108,105,110,101,32,0,60,13,117,234,82,232,97,236,83,135,218,67,67,67,138,15,67,138,47,176,14,187,247,
        35,83,139,30,254,2,83,75,136,47,75,136,15,75,136,7,91,195,160,61,3,10,192,116,248,233,73,255,232,178,9,66,232,174,9,65,232,
        170,9,83,232,166,9,69,160,93,4,10,192,116,3,233,110,227,83,139,30,90,3,135,218,139,30,92,3,59,218,116,3,233,92,227,91,138,
        7,44,48,115,3,233,73,227,60,2,114,3,233,66,227,162,92,4,254,192,162,93,4,232,150,234,195,46,138,7,10,192,116,248,232,3,0,
        67,235,243,159,134,196,80,134,196,233,25,7,116,9,232,132,242,83,232,6,71,235,32,83,187,210,36,232,165,86,232,225,12,90,115,
        3,233,143,9,82,67,138,7,232,0,69,138,7,10,192,117,228,232,228,70,137,30,12,0,232,158,63,91,195,82,97,110,100,111,109,32,110,
        117,109,98,101,114,32,115,101,101,100,32,40,45,51,50,55,54,56,32,116,111,32,51,50,55,54,55,41,0,177,29,235,2,177,26,181,0,
        135,218,139,30,46,0,137,30,90,4,135,218,254,197,75,232,12,234,116,23,60,34,117,11,232,3,234,10,192,116,12,60,34,117,245,60,
        161,116,29,60,205,117,228,10,192,117,21,67,138,7,67,10,7,138,209,117,3,233,157,226,67,139,23,67,137,22,90,4,232,215,233,60,
        143,117,7,81,232,17,236,89,235,217,60,132,117,7,81,232,2,236,89,235,206,138,193,60,26,138,7,116,13,60,177,116,163,60,178,
        117,161,254,205,117,157,195,60,130,116,150,60,131,117,148,254,205,116,243,232,157,233,116,168,135,218,139,30,46,0,83,139,
        30,90,4,137,30,46,0,135,218,81,232,215,17,89,75,232,129,233,186,42,37,116,8,232,80,8,44,75,186,121,37,94,135,222,86,137,30,
        46,0,91,82,195,159,80,160,168,4,162,169,4,88,158,159,80,50,192,162,168,4,88,158,195,232,219,2,138,7,67,138,15,67,138,47,90,
        81,80,232,214,2,88,138,240,138,23,67,138,15,67,138,47,91,138,194,10,198,117,1,195,138,198,44,1,114,249,50,192,58,194,254,
        192,115,241,254,206,254,202,139,241,172,65,58,7,159,67,158,116,220,245,233,114,63,232,247,61,235,8,232,252,61,235,3,232,174,
        74,232,47,0,232,137,2,185,23,41,81,138,7,67,83,232,171,0,91,138,15,67,138,47,232,13,0,83,138,216,232,91,2,90,195,176,1,232,
        149,0,187,44,3,83,136,7,67,137,23,91,195,75,181,34,138,245,83,177,255,67,138,7,254,193,10,192,116,8,58,198,116,4,58,197,117,
        239,60,34,117,3,232,177,232,83,138,197,60,44,117,13,254,193,254,201,116,7,75,138,7,60,32,116,245,91,94,135,222,86,67,135,
        218,138,193,232,180,255,186,44,3,176,82,139,30,12,3,137,30,163,4,176,3,162,251,2,232,23,62,186,47,3,59,218,137,30,12,3,91,
        138,7,117,155,186,16,0,233,34,225,67,232,146,255,232,236,1,232,124,62,254,198,254,206,116,133,139,241,172,232,217,4,60,13,
        117,3,232,165,5,65,235,236,10,192,235,2,88,158,159,80,139,30,92,3,135,218,139,30,47,3,246,208,138,200,181,255,3,217,67,59,
        218,114,15,137,30,47,3,67,135,218,88,158,195,88,134,196,158,195,88,158,186,14,0,117,3,233,202,224,58,192,159,80,185,218,38,
        81,139,30,10,3,137,30,47,3,187,0,0,83,139,30,92,3,83,187,14,3,139,22,12,3,59,218,185,42,39,116,3,233,156,0,187,226,3,137,
        30,78,4,139,30,90,3,137,30,75,4,139,30,88,3,139,22,75,4,59,218,116,27,138,7,67,67,67,80,232,69,19,88,60,3,117,5,232,113,0,
        50,192,138,208,182,0,3,218,235,221,139,30,78,4,139,23,11,210,139,30,90,3,116,25,135,218,137,30,78,4,67,67,139,23,67,67,135,
        218,3,218,137,30,75,4,135,218,235,183,89,139,22,92,3,59,218,117,3,233,108,0,138,7,67,80,67,67,232,248,18,138,15,67,138,47,
        67,88,83,3,217,60,3,117,221,137,30,51,3,91,138,15,181,0,3,217,3,217,67,135,218,139,30,51,3,135,218,59,218,116,196,185,197,
        39,81,50,192,10,7,159,67,158,138,23,159,67,158,138,55,159,67,158,117,1,195,139,203,139,30,47,3,59,218,139,217,114,243,91,
        94,135,222,86,59,218,94,135,222,86,83,139,217,115,227,89,88,88,83,82,81,195,90,91,11,219,116,249,75,138,47,75,138,15,83,75,
        138,31,183,0,3,217,138,245,138,209,75,139,203,139,30,47,3,232,160,60,91,136,15,67,136,47,139,217,75,233,224,254,81,83,139,
        30,163,4,94,135,222,86,232,160,240,94,135,222,86,232,237,59,138,7,83,139,30,163,4,83,2,7,186,15,0,115,3,233,120,223,232,219,
        253,90,232,72,0,94,135,222,86,232,63,0,83,139,30,45,3,135,218,232,14,0,232,11,0,187,58,23,94,135,222,86,83,233,7,254,91,94,
        135,222,86,138,7,67,138,15,67,138,47,138,216,254,195,254,203,117,1,195,139,241,172,139,250,170,65,66,235,241,232,146,59,139,
        30,163,4,135,218,232,32,0,135,218,117,229,82,138,245,138,209,74,138,15,139,30,47,3,59,218,117,10,50,192,138,232,3,217,137,
        30,47,3,91,195,205,238,139,30,12,3,75,138,47,75,138,15,75,59,218,117,238,137,30,12,3,195,185,127,27,81,232,183,255,50,192,
        138,240,138,7,10,192,195,185,127,27,81,232,237,255,117,3,233,85,231,67,139,23,139,242,172,195,232,46,253,232,14,246,139,30,
        45,3,136,23,89,233,114,253,232,255,229,232,211,4,40,232,247,245,82,232,203,4,44,232,250,237,232,196,4,41,94,135,222,86,83,
        232,236,241,116,5,232,225,245,235,3,232,185,255,90,232,5,0,232,213,245,176,32,80,138,194,232,236,252,138,232,88,254,197,254,
        205,116,188,139,30,45,3,136,7,67,254,205,117,249,235,175,232,163,0,50,192,94,135,222,86,138,200,176,83,83,138,7,58,197,114,
        3,138,197,186,177,0,81,232,81,253,89,91,83,67,138,47,67,138,63,138,221,181,0,3,217,139,203,232,168,252,138,216,232,247,254,
        90,232,13,255,233,232,252,232,102,0,90,82,139,242,172,42,197,235,188,135,218,138,7,232,92,0,254,197,254,205,117,3,233,152,
        230,81,232,181,1,88,134,196,158,94,135,222,86,185,117,41,81,254,200,58,7,181,0,114,1,195,138,200,138,7,42,193,58,194,138,
        232,114,243,138,234,195,232,0,255,117,3,233,142,241,138,208,67,139,31,83,3,218,138,47,136,55,94,135,222,86,81,75,232,23,229,
        232,190,63,89,91,136,47,195,135,218,232,225,3,41,89,90,81,138,234,195,232,0,229,232,3,237,232,2,241,176,1,80,116,22,88,232,
        243,244,10,192,117,3,233,38,230,80,232,189,3,44,232,236,236,232,253,57,232,179,3,44,83,139,30,163,4,94,135,222,86,232,217,
        236,232,163,3,41,83,232,80,254,135,218,89,91,88,81,185,7,101,81,185,127,27,81,80,82,232,68,254,90,88,138,232,254,200,138,
        200,58,7,176,0,115,162,139,242,172,10,192,138,197,116,153,138,7,67,138,47,67,138,63,138,221,181,0,3,217,42,193,138,232,81,
        82,94,135,222,86,138,15,67,139,23,91,83,82,81,139,242,172,58,7,117,30,66,254,201,116,12,67,254,205,117,239,90,90,89,90,50,
        192,195,91,90,90,89,138,197,42,199,2,193,254,192,195,89,90,91,67,254,205,117,208,235,229,232,33,3,40,232,151,12,232,97,57,
        83,82,135,218,67,139,23,139,30,92,3,59,218,114,18,139,30,48,0,59,218,115,10,91,83,232,46,251,91,83,232,190,57,91,94,135,222,
        86,232,241,2,44,232,21,244,10,192,117,3,233,75,229,80,138,7,232,102,0,82,232,4,236,83,232,138,253,135,218,91,89,88,138,232,
        94,135,222,86,83,187,7,101,94,135,222,86,138,193,10,192,116,144,138,7,42,197,115,3,233,27,229,254,192,58,193,114,2,138,193,
        138,205,254,201,181,0,82,67,138,23,67,138,63,138,218,3,217,138,232,90,135,218,138,15,67,139,31,135,218,138,193,10,192,117,
        1,195,139,242,172,136,7,66,67,254,201,116,244,254,205,117,241,195,178,255,60,41,116,7,232,113,2,44,232,149,243,232,106,2,
        41,195,232,150,239,116,3,233,6,0,232,18,253,232,124,251,139,22,92,3,139,30,47,3,233,203,239,205,180,159,134,196,80,134,196,
        83,232,37,4,116,3,233,221,23,91,88,134,196,158,81,159,80,235,18,50,192,162,79,3,233,147,229,25,254,200,232,99,35,176,8,235,
        56,60,9,117,16,176,32,232,202,255,232,78,35,36,7,117,244,88,158,89,195,60,32,114,32,160,41,0,138,232,232,58,35,254,197,116,
        11,254,205,58,197,117,3,232,114,0,116,9,60,255,116,5,254,192,232,39,35,88,158,89,159,80,88,158,232,124,34,195,205,181,232,
        188,3,116,61,232,182,23,115,243,81,82,83,160,54,5,36,200,162,54,5,232,204,24,91,90,89,160,107,4,10,192,116,3,233,10,49,160,
        239,4,10,192,116,7,187,232,14,83,233,237,0,83,81,82,187,45,7,232,2,79,90,89,176,13,91,195,232,18,33,195,232,204,34,10,192,
        116,248,235,11,198,7,0,232,106,3,187,246,1,117,7,205,182,176,13,232,45,255,232,91,3,116,3,50,192,195,50,192,232,172,34,50,
        192,195,205,183,160,94,0,10,192,117,1,195,232,196,255,117,3,232,220,1,233,144,1,232,239,50,83,232,175,32,116,33,232,176,255,
        10,192,117,16,80,176,2,232,139,249,139,30,45,3,90,137,23,233,208,249,80,232,123,249,88,138,208,232,74,252,187,6,0,137,30,
        163,4,176,3,162,251,2,91,195,83,139,30,10,3,181,0,3,217,3,217,176,38,42,195,138,216,176,255,26,199,138,248,114,6,3,220,91,
        115,1,195,139,30,44,0,75,75,137,30,69,3,186,7,0,233,212,218,57,30,47,3,115,233,81,82,83,232,6,250,91,90,89,57,30,47,3,115,
        218,235,227,117,214,139,30,48,0,232,121,1,162,100,4,162,62,3,162,61,3,136,7,67,136,7,67,137,30,88,3,205,174,139,30,48,0,75,
        205,175,137,30,59,3,160,101,4,10,192,117,23,50,192,162,93,4,162,92,4,181,26,187,96,3,205,176,198,7,4,67,254,205,117,248,186,
        7,0,187,11,0,232,198,55,50,192,162,79,3,138,216,138,248,137,30,77,3,137,30,86,3,139,30,10,3,160,107,4,10,192,117,4,137,30,
        47,3,50,192,232,124,0,139,30,88,3,137,30,90,3,137,30,92,3,160,101,4,10,192,117,3,232,180,21,160,54,5,36,1,117,3,162,54,5,
        89,139,30,44,0,75,75,137,30,69,3,67,67,205,177,139,227,187,14,3,137,30,12,3,232,243,247,232,202,230,50,192,138,248,138,216,
        137,30,124,3,162,77,4,137,30,228,3,137,30,80,4,137,30,122,3,162,57,3,83,81,139,30,59,3,195,59,218,195,94,139,251,252,46,166,
        86,139,223,117,10,138,7,60,58,114,1,195,233,28,225,233,178,217,135,218,139,30,48,0,116,17,135,218,232,82,226,83,232,74,220,
        139,217,90,114,3,233,11,227,75,137,30,94,3,135,218,195,117,253,254,192,235,9,117,247,156,117,3,232,159,10,157,137,30,67,3,
        187,14,3,137,30,12,3,187,12,255,89,139,30,46,0,83,156,138,195,34,199,254,192,116,12,137,30,84,3,139,30,67,3,137,30,86,3,232,
        245,253,157,187,50,7,116,3,233,20,218,233,65,218,176,15,80,176,94,232,41,253,88,4,64,232,35,253,233,236,253,139,30,86,3,11,
        219,186,17,0,117,3,233,69,217,139,22,84,3,137,22,46,0,195,184,50,192,162,118,4,195,232,200,8,82,83,187,110,4,232,11,54,139,
        30,90,3,94,135,222,86,232,108,236,80,232,55,255,44,232,173,8,88,138,232,232,94,236,58,197,116,3,233,8,217,94,135,222,86,135,
        218,83,139,30,90,3,59,218,117,19,90,91,94,135,222,86,82,232,210,53,91,186,110,4,232,203,53,91,195,233,102,225,176,1,162,57,
        3,232,115,8,117,243,83,162,57,3,138,253,138,217,73,73,73,139,241,172,73,10,192,120,248,73,73,3,218,135,218,139,30,92,3,59,
        218,139,242,172,139,249,170,159,66,158,159,65,158,117,240,73,139,217,137,30,92,3,91,138,7,60,44,117,183,232,226,223,235,182,
        88,134,196,158,91,195,138,7,60,65,114,249,60,91,245,195,233,238,253,116,251,60,44,116,9,232,251,224,75,232,192,223,116,238,
        232,146,254,44,116,232,139,22,44,0,60,44,116,3,232,71,0,75,232,169,223,82,116,78,232,122,254,44,116,72,232,55,0,75,232,153,
        223,116,3,233,53,216,94,135,222,86,83,187,238,0,59,218,115,45,91,232,54,0,114,39,83,139,30,88,3,185,20,0,3,217,59,218,115,
        25,135,218,137,30,10,3,91,137,30,44,0,91,235,150,232,240,242,11,210,117,3,233,152,224,195,233,47,253,139,22,44,0,43,22,10,
        3,235,186,139,195,43,194,139,208,195,205,178,83,139,30,233,4,11,219,91,195,1,48,78,48,225,48,253,47,241,47,91,48,48,48,27,
        48,139,30,86,0,232,74,0,116,1,195,235,4,176,1,235,2,176,255,162,112,0,254,192,232,101,1,183,1,232,11,0,117,232,232,11,31,
        232,94,0,50,192,195,160,92,0,58,195,116,248,115,7,138,216,50,192,233,245,30,254,195,233,240,30,160,91,0,58,195,116,227,176,
        1,58,195,116,221,254,203,233,222,30,160,41,0,58,199,116,209,254,199,233,210,30,139,30,91,0,183,1,137,30,88,0,233,197,30,139,
        30,86,0,232,9,0,117,182,160,41,0,138,248,235,197,176,1,58,199,116,169,254,207,233,170,30,160,91,0,138,248,160,92,0,138,216,
        42,199,114,150,254,192,80,232,153,0,160,88,0,254,195,58,195,254,203,115,13,58,199,114,9,117,2,176,1,254,200,162,88,0,88,254,
        200,117,3,233,3,0,232,222,30,195,160,91,0,138,216,160,92,0,138,248,42,195,114,241,254,192,80,232,127,0,160,88,0,58,195,114,
        16,58,199,120,3,233,9,0,117,2,176,255,254,192,162,88,0,88,254,200,116,207,233,187,30,139,30,91,0,160,93,0,138,232,138,197,
        58,195,115,2,138,216,58,199,115,2,138,248,138,199,183,0,42,195,254,192,186,114,0,80,135,218,3,218,136,7,67,136,7,67,254,200,
        117,249,135,218,88,50,192,162,88,0,162,89,0,162,90,0,233,43,255,80,232,55,0,181,1,138,200,138,197,139,250,170,74,139,242,
        172,138,233,138,200,88,254,200,117,1,195,80,235,234,80,181,1,232,23,0,138,200,138,197,139,250,170,66,139,242,172,138,233,
        138,200,88,254,200,116,226,80,235,235,83,186,116,0,183,0,254,203,3,218,138,7,135,218,91,34,192,195,83,186,116,0,183,0,254,
        203,3,218,136,7,135,218,91,195,205,166,232,65,1,139,30,86,0,137,30,88,0,160,41,0,254,192,235,30,176,63,232,12,250,176,32,
        232,7,250,50,192,162,39,0,205,167,232,30,1,139,30,86,0,137,30,88,0,138,199,162,90,0,232,225,4,254,203,116,5,176,1,232,175,
        255,232,12,35,232,65,35,232,164,27,232,8,35,232,56,35,10,192,117,3,232,119,28,80,139,30,86,0,138,38,41,0,254,196,58,30,88,
        0,117,18,58,62,89,0,115,4,136,62,89,0,58,62,90,0,118,6,138,231,136,38,90,0,88,232,47,0,114,16,116,187,232,3,2,232,153,249,
        235,179,1,232,147,249,235,173,60,3,249,116,1,245,187,246,1,195,60,59,117,251,233,248,220,75,67,254,201,120,242,46,58,7,117,
        246,195,187,148,50,177,14,232,236,255,121,3,233,7,0,80,50,192,162,114,0,88,187,162,50,177,12,232,216,255,121,3,233,32,0,80,
        138,193,10,192,208,192,138,200,50,192,138,232,187,174,50,3,217,46,138,23,67,46,138,55,88,82,139,30,86,0,195,10,192,195,3,
        34,192,195,139,30,86,0,128,255,1,117,11,254,203,232,215,254,117,7,138,62,41,0,232,144,28,233,222,249,195,13,2,6,5,3,11,12,
        28,29,30,31,14,127,27,9,10,8,18,2,6,5,3,13,14,127,27,255,52,86,52,202,52,57,51,175,51,7,53,37,53,77,53,1,52,119,52,243,50,
        193,51,232,13,253,116,200,88,181,254,187,247,1,232,65,249,136,7,60,13,116,17,60,10,117,6,138,197,60,254,116,237,67,254,205,
        117,232,254,205,50,192,136,7,187,246,1,195,160,114,0,10,192,116,58,232,97,254,80,135,218,198,7,0,135,218,254,195,232,41,3,
        160,41,0,42,199,116,11,254,192,80,232,245,0,88,254,200,117,247,139,30,86,0,232,59,254,88,138,200,50,192,139,250,170,66,138,
        193,139,250,170,50,192,195,176,10,10,192,195,232,90,2,186,247,1,181,254,160,88,0,58,195,183,1,160,41,0,117,19,139,30,88,0,
        82,232,9,254,90,160,41,0,116,5,160,90,0,254,200,162,90,0,232,60,2,138,197,34,192,116,16,82,232,238,253,90,117,9,183,1,254,
        195,160,41,0,235,228,135,218,176,254,42,198,138,240,75,138,7,60,32,116,8,10,192,117,7,254,206,116,3,75,235,239,67,198,7,0,
        135,218,176,13,80,183,1,232,124,27,176,13,232,252,247,187,246,1,88,249,195,50,192,162,247,1,232,167,253,117,4,254,195,235,
        247,176,3,235,221,138,199,254,200,36,248,4,8,254,192,138,232,160,41,0,58,197,115,2,138,232,138,197,160,114,0,10,192,138,197,
        117,12,58,199,116,5,138,248,232,54,27,50,192,195,42,199,116,251,80,160,80,0,232,20,0,232,170,247,88,254,200,117,241,195,160,
        114,0,246,208,162,114,0,50,192,195,83,139,30,86,0,80,160,114,0,10,192,116,3,232,3,0,88,91,195,160,88,0,58,195,117,16,83,187,
        90,0,254,7,160,41,0,58,7,115,2,136,7,91,160,80,0,138,200,232,143,1,114,16,116,220,80,50,192,232,40,253,254,195,232,230,1,
        88,254,203,254,195,183,1,235,227,83,160,41,0,58,199,117,11,183,0,160,93,0,58,195,117,0,254,195,254,199,232,9,0,91,83,232,
        173,26,50,192,91,195,176,1,58,199,116,4,254,207,235,20,83,254,203,116,14,160,41,0,138,248,232,208,252,117,4,94,135,222,86,
        91,232,136,26,160,88,0,58,195,117,10,160,90,0,254,200,116,3,162,90,0,232,66,1,83,232,174,252,117,17,254,195,183,1,232,5,2,
        94,135,222,86,232,251,1,91,235,230,91,232,85,26,50,192,195,232,145,252,117,11,160,91,0,58,195,116,4,254,195,235,240,160,41,
        0,138,248,160,80,0,138,200,81,232,34,26,89,10,192,116,12,58,193,116,8,254,199,232,42,26,50,192,195,254,207,116,244,235,229,
        232,148,0,183,1,232,25,26,83,160,80,0,232,173,1,91,254,199,160,41,0,254,192,58,199,117,237,232,65,252,117,165,183,1,254,195,
        235,226,198,6,112,0,0,235,8,232,229,25,232,74,1,114,15,232,64,0,116,19,235,241,232,214,25,232,59,1,115,7,232,49,0,116,4,235,
        241,50,192,195,50,192,162,112,0,235,8,232,189,25,232,34,1,115,15,232,38,0,116,235,235,241,232,174,25,232,19,1,114,7,232,23,
        0,116,220,235,241,232,2,0,235,211,139,30,86,0,232,196,250,117,204,183,1,233,150,250,139,30,86,0,232,223,250,117,190,160,41,
        0,138,248,233,154,250,254,203,116,5,232,193,251,116,247,254,195,195,81,160,90,0,58,199,114,26,232,103,25,232,22,0,139,250,
        170,66,94,135,222,86,254,207,94,135,222,86,116,4,254,199,235,223,89,195,10,192,117,2,176,32,195,232,69,0,80,232,138,251,116,
        21,88,34,192,116,241,60,32,116,237,160,80,0,58,193,116,230,138,193,34,192,195,88,249,195,160,41,0,58,199,116,25,254,199,232,
        196,0,83,254,207,232,187,0,91,254,199,160,41,0,254,192,58,199,117,235,254,207,160,80,0,232,167,0,195,83,81,232,164,0,89,80,
        138,193,232,154,0,88,138,200,160,41,0,254,192,254,199,58,199,117,231,138,193,91,195,83,160,92,0,42,195,114,47,116,34,139,
        30,91,0,94,135,222,86,83,138,195,162,91,0,160,93,0,162,92,0,232,90,250,91,94,135,222,86,137,30,91,0,91,83,183,1,232,249,24,
        91,176,1,233,6,251,139,30,86,0,254,203,116,3,232,171,24,232,254,249,91,254,203,195,60,48,114,251,60,58,114,18,60,65,114,243,
        60,91,114,10,60,97,114,235,60,123,114,2,249,195,34,192,195,83,183,1,160,41,0,138,232,81,232,101,24,89,60,255,116,8,254,199,
        254,205,117,241,91,195,91,83,183,1,232,164,24,91,195,233,67,24,233,73,24,162,40,0,139,30,71,3,10,199,34,195,254,192,135,218,
        116,232,235,19,187,246,1,116,225,249,156,67,233,117,210,232,124,217,116,3,233,114,217,91,137,22,73,3,232,120,211,114,3,233,
        60,218,139,217,67,67,139,23,67,67,83,135,218,232,78,46,91,138,7,60,9,116,5,176,32,232,151,244,232,188,232,187,247,1,232,169,
        232,232,95,251,139,30,86,0,254,203,116,9,254,203,116,5,232,53,250,116,247,254,195,232,240,23,233,160,209,60,10,116,3,233,
        107,244,83,139,30,233,4,138,199,10,195,91,176,10,117,8,80,176,13,232,87,244,88,195,232,82,244,176,13,232,77,244,176,10,195,
        75,232,190,215,117,1,195,232,143,246,44,185,91,55,81,176,200,235,2,50,192,162,250,2,138,15,205,179,232,201,247,115,3,233,
        63,208,50,192,138,232,162,142,0,67,138,7,60,46,114,66,116,13,60,58,115,4,60,48,115,5,232,171,247,114,51,138,232,81,181,255,
        186,142,0,12,128,254,197,139,250,170,66,67,138,7,60,58,115,4,60,48,115,237,232,139,247,115,232,60,46,116,228,138,197,60,39,
        114,3,233,245,207,89,162,142,0,138,7,60,38,115,30,186,3,56,82,182,2,60,37,116,132,254,198,60,36,117,1,195,254,198,60,33,116,
        249,182,8,60,35,116,243,88,138,193,36,127,138,208,182,0,83,187,31,3,3,218,138,55,91,75,138,198,162,251,2,232,18,215,160,57,
        3,254,200,117,3,233,122,1,120,3,233,16,0,138,7,44,40,117,3,233,205,0,44,51,117,3,233,198,0,50,192,162,57,3,83,160,77,4,10,
        192,162,74,4,116,30,139,30,124,3,186,126,3,3,218,137,30,75,4,135,218,233,247,45,160,74,4,10,192,116,36,50,192,162,74,4,139,
        30,90,3,137,30,75,4,139,30,88,3,233,220,45,232,4,255,195,50,192,138,240,138,208,89,94,135,222,86,195,91,94,135,222,86,82,
        186,106,56,59,218,116,231,186,218,25,59,218,90,116,73,94,135,222,86,83,81,160,251,2,138,232,160,142,0,2,197,254,192,138,200,
        81,181,0,65,65,65,139,30,92,3,83,3,217,89,83,232,25,44,91,137,30,92,3,139,217,137,30,90,3,75,198,7,0,59,218,117,248,90,136,
        55,67,90,137,23,67,232,221,1,135,218,66,91,195,232,134,66,235,8,198,6,79,3,0,233,120,10,232,64,226,117,7,187,6,0,137,30,163,
        4,91,195,83,139,30,250,2,94,135,222,86,138,240,82,81,186,142,0,139,242,172,10,192,116,61,135,218,4,2,208,216,138,200,232,
        195,243,138,193,138,15,67,138,47,67,81,254,200,117,245,83,160,142,0,80,135,218,232,40,215,88,137,30,181,0,91,4,2,208,216,
        89,75,136,47,75,136,15,254,200,117,245,139,30,181,0,235,8,232,10,215,50,192,162,142,0,160,92,4,10,192,116,8,11,210,117,3,
        233,95,0,74,89,88,134,196,158,135,218,94,135,222,86,83,135,218,254,192,138,240,138,7,60,44,116,136,60,41,116,7,60,93,116,
        3,233,64,206,232,156,213,137,30,82,3,91,137,30,250,2,178,0,82,235,7,83,159,134,196,80,134,196,139,30,90,3,233,175,44,160,
        250,2,10,192,116,3,233,32,206,88,134,196,158,139,203,117,3,233,85,43,42,7,117,3,233,152,0,186,9,0,233,25,206,160,251,2,136,
        7,67,138,208,182,0,88,134,196,158,117,3,233,202,0,136,15,67,136,47,232,211,0,67,138,200,232,245,242,67,67,137,30,49,3,136,
        15,67,160,250,2,208,208,138,193,114,15,159,80,160,92,4,52,11,138,200,181,0,88,158,115,4,89,159,65,158,136,15,159,80,67,136,
        47,67,232,122,42,88,158,254,200,117,218,159,80,138,238,138,202,135,218,3,218,115,3,233,207,242,232,220,242,137,30,92,3,75,
        198,7,0,59,218,117,248,50,192,65,138,240,139,30,49,3,138,23,135,218,3,219,3,217,135,218,75,75,137,23,67,67,88,158,114,70,
        138,232,138,200,138,7,67,182,91,139,23,67,67,94,135,222,86,80,59,218,114,3,233,79,255,232,29,42,3,218,88,254,200,139,203,
        117,227,160,251,2,139,203,3,219,44,4,114,8,3,219,10,192,116,11,3,219,10,192,122,3,233,2,0,3,217,89,3,217,135,218,139,30,82,
        3,195,249,26,192,91,195,138,7,67,81,181,0,138,200,3,217,89,195,81,82,159,80,186,142,0,139,242,172,138,232,254,197,139,242,
        172,66,67,136,7,254,205,117,245,88,158,90,89,195,232,90,220,232,106,41,232,32,243,59,135,218,139,30,163,4,235,10,160,58,3,
        10,192,116,17,90,135,218,83,50,192,162,58,3,254,192,156,82,138,47,10,237,117,3,233,95,213,67,139,31,235,36,138,213,83,177,
        2,138,7,67,60,92,117,3,233,157,1,60,32,117,6,254,193,254,205,117,236,91,138,234,176,92,232,214,1,232,130,240,50,192,138,208,
        138,240,232,202,1,138,240,138,7,67,60,33,117,3,233,111,1,60,35,116,82,60,38,117,3,233,96,1,254,205,117,3,233,46,1,60,43,176,
        8,116,217,75,138,7,67,60,46,116,85,60,95,117,3,233,55,1,60,92,116,156,58,7,117,182,60,36,116,24,60,42,117,174,138,197,67,
        60,2,114,4,138,7,60,36,176,32,117,10,254,205,254,194,190,50,192,4,16,67,254,194,2,198,138,240,254,194,177,0,254,205,116,97,
        138,7,67,60,46,116,30,60,35,116,237,60,44,117,35,138,198,12,64,138,240,235,225,138,7,60,35,176,46,116,3,233,101,255,177,1,
        67,254,193,254,205,116,54,138,7,67,60,35,116,243,82,186,244,59,82,138,247,138,211,60,94,116,1,195,58,7,117,251,67,58,7,117,
        246,67,58,7,117,241,67,138,197,44,4,114,234,90,90,138,232,254,198,67,235,3,135,218,90,138,198,75,254,194,36,8,117,28,254,
        202,138,197,10,192,116,20,138,7,44,45,116,6,60,254,117,10,176,8,4,4,2,198,138,240,254,205,91,157,116,101,81,82,232,2,219,
        90,89,81,83,138,234,138,197,2,193,60,25,114,3,233,35,212,138,198,12,128,232,92,59,232,119,234,91,75,232,216,210,249,116,17,
        162,58,3,60,59,116,7,60,44,116,3,233,104,203,232,196,210,89,135,218,91,83,156,82,138,7,42,197,67,182,0,138,208,139,31,3,218,
        138,197,10,192,116,3,233,173,254,235,6,232,123,0,232,39,239,91,157,116,3,233,88,254,115,3,232,231,239,94,135,222,86,232,28,
        236,91,233,3,216,195,232,93,0,254,205,138,7,67,232,4,239,235,202,177,0,235,5,177,1,235,1,88,254,205,232,69,0,91,157,116,208,
        81,232,110,218,232,127,39,89,81,83,139,30,163,4,138,233,177,0,138,197,80,138,197,10,192,116,3,232,161,236,232,228,233,139,
        30,163,4,88,10,192,117,3,233,94,255,42,7,138,232,176,32,254,197,254,205,117,3,233,79,255,232,177,238,235,244,80,138,198,10,
        192,176,43,116,3,232,163,238,88,195,137,30,53,3,232,236,231,232,15,210,135,218,232,102,0,159,68,158,159,68,158,117,8,3,217,
        139,227,137,30,69,3,139,30,46,0,83,139,30,53,3,83,82,235,40,116,3,233,137,202,135,218,232,63,0,117,103,139,227,137,30,69,
        3,139,22,46,0,137,22,90,4,67,67,139,23,67,67,139,31,137,30,46,0,135,218,232,204,217,83,232,132,39,91,116,9,185,177,0,138,
        233,81,233,125,209,139,30,90,4,137,30,46,0,91,89,89,233,111,209,187,4,0,3,220,67,138,7,67,185,130,0,58,193,117,7,185,18,0,
        3,217,235,238,185,177,0,58,193,116,1,195,57,23,185,6,0,116,248,3,217,235,219,186,30,0,233,47,202,232,58,7,75,232,109,209,
        116,85,232,114,217,83,232,108,221,116,61,232,10,51,232,139,232,139,30,163,4,67,138,23,67,138,55,139,242,172,60,32,117,9,66,
        136,55,75,136,23,75,254,15,232,220,232,91,75,232,58,209,116,34,60,59,116,5,232,8,240,44,75,232,44,209,176,44,232,175,237,
        235,186,176,34,232,168,237,232,186,232,176,34,232,160,237,235,215,232,103,238,233,139,214,205,168,83,138,242,232,135,1,116,
        9,60,58,116,15,232,126,1,121,247,138,214,91,50,192,176,252,205,171,195,138,198,42,194,254,200,60,2,115,5,205,172,233,97,201,
        60,5,114,3,233,90,201,89,82,81,138,200,138,232,186,156,62,94,135,222,86,83,138,7,60,97,114,6,60,123,115,2,44,32,81,138,232,
        139,242,46,172,67,66,58,197,89,117,21,254,201,117,226,139,242,46,172,10,192,120,3,233,6,0,91,91,90,10,192,195,10,192,120,
        235,139,242,46,172,10,192,159,66,158,121,245,138,205,91,83,139,242,46,172,10,192,117,182,233,254,200,75,89,66,68,255,83,67,
        82,78,254,76,80,84,49,253,67,65,83,49,252,0,123,88,145,88,167,88,189,88,205,169,83,82,159,134,196,80,134,196,186,46,0,3,218,
        176,255,42,7,2,192,138,208,205,170,182,0,187,177,62,3,218,46,138,23,67,46,138,55,88,134,196,158,138,216,183,0,3,218,46,138,
        23,67,46,138,55,135,218,90,94,135,222,86,195,71,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,232,17,216,83,232,140,233,
        138,7,10,192,116,79,67,138,23,67,138,63,138,218,138,208,50,192,162,255,6,232,219,254,159,134,196,80,134,196,185,240,4,182,
        11,254,194,254,202,116,77,138,7,60,32,114,38,60,46,116,40,139,249,170,65,67,254,206,117,233,88,134,196,158,159,134,196,80,
        134,196,138,240,160,240,4,254,192,116,6,88,134,196,158,91,195,233,40,200,67,235,202,176,1,162,255,6,138,198,60,11,116,239,
        60,3,114,235,116,236,176,32,139,249,170,65,254,206,235,234,176,32,139,249,170,65,254,206,117,246,235,186,138,7,67,254,202,
        195,232,122,223,138,216,160,223,4,58,195,115,3,233,233,199,183,0,3,219,135,218,139,30,224,4,3,218,139,31,160,54,5,254,192,
        116,219,138,7,10,192,116,213,83,186,46,0,3,218,138,7,60,9,115,5,205,220,233,192,199,91,138,7,10,192,249,195,75,232,53,207,
        60,35,117,3,232,46,207,232,42,223,94,135,222,86,83,232,171,255,117,3,233,155,199,137,30,233,4,195,185,152,20,81,232,28,215,
        138,7,60,44,117,89,83,232,145,232,138,7,10,192,117,3,233,124,199,67,139,31,138,7,36,223,178,1,60,73,116,21,178,2,60,79,116,
        15,178,4,60,82,116,9,178,8,60,65,116,3,233,84,199,91,82,232,175,237,44,60,35,117,3,232,208,206,232,204,222,232,161,237,44,
        138,194,10,192,117,3,233,61,199,80,232,178,254,88,89,138,209,205,221,233,131,0,232,169,254,138,7,60,130,178,4,117,89,232,
        165,206,60,133,178,1,116,77,60,79,116,32,60,73,116,55,232,107,237,65,232,103,237,80,232,99,237,80,232,95,237,69,232,91,237,
        78,232,87,237,68,178,8,235,44,232,120,206,232,76,237,85,232,72,237,84,232,68,237,80,232,64,237,85,232,60,237,84,178,2,235,
        17,232,93,206,232,49,237,66,232,45,237,77,178,32,75,232,79,206,232,35,237,65,232,31,237,83,82,138,7,60,35,117,3,232,61,206,
        232,57,222,10,192,117,3,233,176,198,205,222,180,82,75,138,208,232,41,206,116,3,233,197,198,94,135,222,86,138,194,159,134,
        196,80,134,196,83,232,156,254,116,3,233,149,198,90,138,198,60,9,205,223,115,3,233,131,198,83,185,46,0,3,217,136,55,176,0,
        91,233,145,253,83,10,192,117,10,160,54,5,36,1,116,3,233,70,3,232,107,254,116,21,137,30,233,4,83,176,2,115,3,233,113,253,205,
        224,233,80,198,232,36,3,91,83,186,49,0,3,218,136,7,138,248,138,216,137,30,233,4,91,2,7,198,7,0,91,195,249,235,3,13,50,192,
        159,80,232,159,253,205,233,88,158,159,80,116,20,138,7,44,44,10,192,117,12,232,150,205,232,106,236,82,88,158,249,159,80,159,
        80,50,192,178,1,232,84,255,139,30,233,4,185,49,0,3,217,88,158,26,192,36,128,12,1,162,54,5,88,158,159,80,26,192,162,239,4,
        138,7,10,192,121,3,233,216,0,88,158,116,3,232,87,235,50,192,232,44,254,233,5,199,232,66,253,205,234,75,232,70,205,178,128,
        249,117,3,232,121,5,116,24,232,16,236,44,60,80,178,146,117,6,232,47,205,249,235,8,232,0,236,65,10,192,178,2,159,80,138,194,
        36,16,162,98,4,88,158,159,80,254,192,162,95,0,50,192,232,221,254,88,158,83,139,30,233,4,138,7,91,36,128,117,3,233,20,221,
        83,232,99,225,160,98,4,10,192,116,3,232,121,4,139,30,88,3,137,30,4,7,139,30,48,0,83,139,30,233,4,232,198,0,10,192,121,3,233,
        22,0,233,77,197,160,98,4,10,192,116,3,232,162,4,91,50,192,162,98,4,233,200,254,91,232,2,0,235,231,232,160,0,60,252,117,3,
        233,13,26,205,235,233,31,197,139,30,48,0,10,192,232,3,0,233,70,0,159,80,232,131,0,60,252,117,3,233,54,26,88,158,205,236,233,
        0,197,88,158,195,36,32,162,99,4,88,158,117,3,233,241,196,232,119,234,160,99,4,162,100,4,232,171,0,50,192,232,241,252,198,
        7,128,137,30,233,4,232,75,0,10,192,120,179,205,237,233,211,196,160,100,4,10,192,116,3,232,40,4,232,39,199,67,67,137,30,88,
        3,232,90,234,50,192,162,54,5,232,67,254,160,239,4,10,192,116,3,233,249,203,233,196,197,135,218,139,30,47,3,135,218,59,218,
        114,152,232,28,234,50,192,162,54,5,233,235,233,83,82,139,30,233,4,186,46,0,3,218,138,7,90,91,195,117,30,83,81,80,186,38,67,
        82,81,10,192,195,88,89,254,200,121,240,91,195,89,91,138,7,60,44,117,247,232,228,203,81,138,7,60,35,117,3,232,218,203,232,
        214,219,94,135,222,86,83,186,46,67,82,249,255,227,185,40,65,160,223,4,235,191,160,54,5,10,192,120,204,185,40,65,50,192,160,
        223,4,235,174,50,192,138,232,138,197,232,49,252,198,7,0,160,223,4,254,197,42,197,115,239,50,192,162,54,5,232,149,233,139,
        30,48,0,75,198,7,0,233,219,195,91,88,134,196,158,83,82,81,159,134,196,80,134,196,139,30,233,4,176,6,232,5,0,205,227,233,235,
        195,159,134,196,80,134,196,82,135,218,187,46,0,3,218,138,7,135,218,90,60,9,115,3,233,202,0,88,134,196,158,94,135,222,86,91,
        233,228,250,81,83,82,139,30,233,4,176,8,232,206,255,205,228,233,180,195,90,91,89,195,232,48,203,232,4,234,36,232,0,234,40,
        83,139,30,233,4,83,187,0,0,137,30,233,4,91,94,135,222,86,232,18,219,82,138,7,60,44,117,11,232,9,203,232,205,251,91,50,192,
        138,7,159,80,232,211,233,41,88,158,94,135,222,86,159,80,138,195,10,192,117,3,233,38,204,83,232,7,226,135,218,89,88,158,159,
        80,116,40,232,22,232,60,3,116,19,136,7,67,254,201,117,236,88,158,89,91,137,30,233,4,81,233,51,226,88,158,139,30,46,0,137,
        30,71,3,91,233,6,195,232,106,255,115,3,233,48,195,235,213,205,229,232,18,0,83,181,1,232,2,0,91,195,50,192,136,7,67,254,205,
        117,249,195,139,30,233,4,186,51,0,3,218,195,88,134,196,158,195,232,7,251,117,3,233,250,194,176,10,115,3,233,18,250,205,230,
        233,238,194,232,243,250,117,3,233,230,194,176,12,115,3,233,254,249,205,231,233,218,194,232,223,250,117,3,233,210,194,176,
        14,115,3,233,234,249,205,232,233,198,194,232,255,234,117,3,233,31,202,50,192,232,71,252,178,66,233,242,194,60,35,117,173,
        232,44,218,232,4,233,44,138,194,83,232,0,251,91,138,7,195,185,236,45,81,50,192,233,36,252,232,30,214,185,155,22,186,32,44,
        117,27,138,214,235,23,185,152,20,81,232,204,255,232,81,242,232,27,31,82,185,138,17,50,192,138,240,138,208,80,81,83,232,165,
        254,115,3,233,107,194,60,32,117,6,254,198,254,206,117,238,60,34,117,19,138,232,138,194,60,44,138,197,117,9,138,245,138,213,
        232,129,254,114,83,187,247,1,181,255,138,200,138,198,60,34,138,193,116,46,60,13,83,116,89,91,60,10,117,36,138,200,138,194,
        60,44,138,193,116,3,232,137,0,83,232,85,254,91,114,38,60,13,117,12,138,194,60,32,116,21,60,44,176,13,116,15,10,192,116,11,
        58,198,116,14,58,194,116,10,232,99,0,83,232,47,254,91,115,178,83,60,34,116,4,60,32,117,37,232,32,254,114,32,60,32,116,247,
        60,44,116,24,60,13,117,4,205,225,116,16,139,30,233,4,138,200,176,18,232,221,253,205,226,233,195,193,91,198,7,0,187,246,1,
        138,194,44,32,116,7,181,0,232,102,224,91,195,232,55,213,159,80,232,42,201,88,158,159,80,115,3,232,196,35,88,158,114,3,232,
        196,35,91,195,10,192,116,251,136,7,67,254,205,117,244,89,235,197,232,70,0,162,96,0,254,192,116,3,233,158,193,83,81,178,2,
        232,198,250,91,232,59,252,50,192,162,96,0,233,26,252,232,38,0,10,192,116,7,254,192,117,3,233,125,193,254,200,162,96,0,83,
        81,50,192,178,1,232,158,250,91,232,46,252,50,192,162,96,0,91,233,204,250,232,180,248,82,75,232,185,200,90,117,3,176,1,195,
        82,232,134,231,44,232,43,0,82,75,232,166,200,117,5,89,90,50,192,195,232,115,231,44,232,24,0,89,135,218,3,217,137,30,4,7,135,
        218,75,232,137,200,116,3,233,37,193,90,176,255,195,232,135,208,83,232,17,220,90,135,218,195,185,11,13,139,30,48,0,135,218,
        139,30,88,3,59,218,117,1,195,187,23,98,138,195,2,193,138,216,138,199,20,0,138,248,139,242,172,42,197,46,50,7,80,187,118,97,
        138,195,2,197,138,216,138,199,20,0,138,248,88,46,50,7,2,193,139,250,170,66,254,201,117,2,177,11,254,205,117,188,181,13,235,
        184,185,11,13,139,30,48,0,135,218,139,30,88,3,59,218,116,175,187,118,97,138,195,2,197,138,216,138,199,20,0,138,248,139,242,
        172,42,193,46,50,7,80,187,23,98,138,195,2,193,138,216,138,199,20,0,138,248,88,46,50,7,2,197,139,250,170,66,254,201,117,2,
        177,11,254,205,117,189,181,13,235,185,83,139,30,46,0,138,199,34,195,91,254,192,116,1,195,159,80,160,100,4,10,192,116,3,233,
        245,200,88,158,195,138,7,60,64,117,3,232,173,199,185,0,0,138,245,138,209,60,234,116,31,138,7,60,207,156,117,3,232,152,199,
        232,108,230,40,232,126,215,82,232,100,230,44,232,118,215,232,93,230,41,89,157,83,139,30,61,5,116,3,187,0,0,159,3,217,209,
        222,158,209,214,137,30,61,5,137,30,55,5,139,203,139,30,59,5,116,3,187,0,0,3,218,137,30,59,5,137,30,57,5,135,218,91,195,50,
        192,235,2,176,3,80,232,164,255,88,232,46,0,83,232,40,3,115,6,232,127,2,232,85,2,91,195,232,49,199,232,140,255,83,232,20,3,
        187,255,255,115,10,232,104,2,232,27,2,138,216,183,0,232,7,29,91,195,176,3,81,82,138,208,75,232,12,199,116,11,232,222,229,
        44,60,44,116,3,232,254,214,138,194,83,232,193,2,115,3,233,48,200,91,90,89,233,239,198,139,30,55,5,138,195,42,193,138,216,
        138,199,26,197,138,248,115,197,50,192,42,195,138,216,26,199,42,195,138,248,249,195,139,30,57,5,138,195,42,194,138,216,138,
        199,26,198,138,248,235,222,83,139,30,57,5,135,218,137,30,57,5,91,195,232,240,255,83,81,139,30,55,5,94,135,222,86,137,30,55,
        5,89,91,195,232,226,254,81,82,232,106,229,234,232,237,254,232,118,255,90,89,116,83,232,92,229,44,232,88,229,66,117,3,233,
        96,0,232,79,229,70,83,232,93,2,232,193,255,232,87,2,232,156,255,115,3,232,169,255,67,83,232,114,255,115,3,232,175,255,67,
        83,232,156,1,90,89,82,81,232,219,0,80,83,135,218,232,105,2,91,88,232,215,0,232,248,0,89,90,73,138,197,10,193,117,227,91,195,
        81,82,83,232,69,0,139,30,61,5,137,30,55,5,139,30,59,5,137,30,57,5,91,90,89,195,83,139,30,57,5,83,82,135,218,232,218,255,91,
        137,30,57,5,135,218,232,208,255,91,137,30,57,5,139,30,55,5,81,139,203,232,193,255,91,137,30,55,5,139,203,232,183,255,91,195,
        205,184,232,207,1,232,51,255,232,201,1,232,14,255,115,3,232,40,255,82,83,232,228,254,135,218,187,241,73,115,3,187,5,74,94,
        135,222,86,59,218,115,20,137,30,253,6,91,137,30,247,6,187,213,73,137,30,249,6,135,218,235,22,94,135,222,86,137,30,249,6,187,
        213,73,137,30,247,6,135,218,137,30,253,6,91,90,83,137,30,251,6,232,211,0,90,82,232,5,0,89,65,233,32,2,138,198,10,192,208,
        216,138,240,138,194,208,216,138,208,195,139,30,243,6,160,245,6,195,137,30,243,6,162,245,6,195,139,30,243,6,129,251,0,32,114,
        9,129,235,0,32,137,30,243,6,195,129,195,80,32,137,30,243,6,195,139,30,243,6,129,251,0,32,114,9,129,235,176,31,137,30,243,
        6,195,129,195,0,32,137,30,243,6,195,138,193,138,14,85,0,210,14,245,6,138,200,114,1,195,255,6,243,6,195,138,193,138,14,85,
        0,210,6,245,6,138,200,114,1,195,255,14,243,6,195,140,198,191,0,184,142,199,139,30,243,6,38,138,7,138,22,245,6,34,194,138,
        14,85,0,210,234,114,4,210,232,235,248,142,198,195,140,198,191,0,184,142,199,139,30,243,6,139,233,160,245,6,246,208,38,34,
        7,138,14,246,6,34,14,245,6,10,193,38,136,7,139,205,142,198,195,139,233,209,234,159,139,218,177,2,211,226,3,211,177,4,211,
        226,158,115,4,129,194,0,32,137,22,243,6,139,213,138,202,246,6,85,0,1,116,20,176,7,34,200,176,128,210,232,162,245,6,177,3,
        211,234,1,22,243,6,195,176,3,34,200,2,201,176,192,210,232,162,245,6,177,2,211,234,1,22,243,6,195,160,72,0,199,6,59,5,100,
        0,60,6,116,18,115,28,60,4,114,24,198,6,85,0,2,199,6,61,5,160,0,195,198,6,85,0,1,199,6,61,5,64,1,195,198,6,85,0,0,195,60,4,
        115,15,246,6,85,0,1,116,12,36,1,246,216,162,246,6,248,195,233,93,197,36,3,177,85,246,225,162,246,6,248,195,160,85,0,10,192,
        116,235,10,237,120,39,187,128,2,132,6,1,0,116,3,187,64,1,59,203,159,114,3,75,139,203,10,246,120,12,129,250,200,0,114,4,186,
        199,0,195,158,195,51,210,195,51,201,159,235,232,140,198,191,0,184,142,199,139,211,11,210,116,108,139,30,243,6,38,138,47,160,
        245,6,138,224,246,208,138,14,85,0,138,30,246,6,34,232,138,252,34,251,10,239,74,116,64,210,200,210,204,115,239,139,30,243,
        6,38,136,47,255,6,243,6,136,38,245,6,139,202,209,233,209,233,246,6,85,0,1,117,6,129,226,3,0,235,6,129,226,7,0,209,233,227,
        171,252,160,246,6,139,62,243,6,243,170,137,62,243,6,235,155,139,30,243,6,38,136,47,136,38,245,6,142,198,195,232,127,254,3,
        22,253,6,59,22,251,6,114,9,43,22,251,6,62,255,22,249,6,62,255,22,247,6,226,227,195,83,232,163,207,91,195,83,232,39,25,91,
        195,246,128,62,113,0,0,116,3,233,249,4,195,160,41,0,138,208,232,255,210,233,237,4,0,0,0,180,15,205,16,162,72,0,180,40,60,
        2,114,13,180,80,60,7,117,7,185,12,11,137,14,104,0,136,38,41,0,250,140,219,137,30,80,3,30,186,0,0,142,218,137,30,16,5,187,
        52,77,137,30,108,0,187,68,87,137,30,112,0,140,14,110,0,140,14,114,0,31,232,50,0,187,24,2,185,0,0,142,193,185,122,0,38,140,
        143,2,0,38,199,7,148,76,131,195,4,224,241,140,219,142,195,232,72,225,251,180,1,205,23,232,119,6,187,155,76,232,223,46,233,
        99,50,190,237,76,187,83,6,185,10,0,83,252,46,172,136,7,67,10,192,117,246,91,131,195,16,224,239,195,207,62,255,46,0,7,203,
        84,104,101,32,73,66,77,32,80,101,114,115,111,110,97,108,32,67,111,109,112,117,116,101,114,32,66,97,115,105,99,255,13,86,101,
        114,115,105,111,110,32,67,49,46,49,48,32,67,111,112,121,114,105,103,104,116,32,73,66,77,32,67,111,114,112,32,49,57,56,49,
        255,13,0,50,53,45,65,112,114,45,56,49,76,73,83,84,32,0,82,85,78,13,0,76,79,65,68,34,0,83,65,86,69,34,0,67,79,78,84,13,0,44,
        34,76,80,84,49,58,34,13,0,84,82,79,78,13,0,84,82,79,70,70,13,0,75,69,89,32,0,83,67,82,69,69,78,32,48,44,48,44,48,13,0,156,
        80,30,82,186,0,0,142,218,142,30,16,5,232,58,10,136,22,106,0,254,202,136,22,94,0,90,31,88,157,207,86,160,94,0,10,192,117,17,
        160,106,0,10,192,117,10,180,1,205,22,176,0,116,2,254,200,94,195,160,94,0,10,192,116,8,50,192,162,94,0,176,3,195,86,87,160,
        106,0,10,192,117,116,180,0,205,22,10,192,116,3,95,94,195,83,128,252,59,114,5,128,252,69,114,60,139,30,46,0,67,11,219,117,
        19,187,52,78,177,26,46,58,39,116,12,67,254,192,254,201,117,244,50,192,91,235,211,50,228,208,224,139,216,46,139,159,3,1,137,
        30,107,0,254,14,106,0,208,232,4,65,140,14,109,0,235,224,80,134,196,44,59,179,16,246,227,187,83,6,3,216,246,7,255,88,116,204,
        137,30,107,0,140,30,109,0,254,14,106,0,235,12,83,254,200,117,7,162,106,0,176,32,235,178,30,197,30,107,0,138,7,31,255,6,107,
        0,10,192,116,2,121,160,50,228,140,203,138,30,110,0,58,223,114,4,254,196,36,127,136,38,106,0,10,192,117,136,91,233,119,17,
        30,48,46,32,18,33,34,35,23,36,37,38,50,49,24,25,16,19,31,20,22,47,17,45,21,44,83,81,86,190,108,78,177,14,252,46,172,58,224,
        116,9,70,254,201,117,244,50,192,235,2,46,172,94,89,91,195,71,11,72,30,75,29,77,28,80,31,28,10,116,6,115,2,118,1,82,18,83,
        127,79,14,117,5,119,12,31,30,29,28,13,12,11,10,156,83,81,82,80,60,7,116,77,60,13,117,10,246,6,111,0,255,116,3,232,139,0,232,
        44,2,116,4,60,255,116,57,60,12,116,34,187,135,78,185,8,0,67,254,201,120,28,46,58,7,117,246,208,225,139,217,185,233,78,81,
        46,255,183,225,47,139,30,86,0,195,232,14,4,235,14,232,62,0,232,14,0,232,13,225,235,3,232,36,9,88,90,89,91,157,195,80,138,
        62,73,0,138,30,78,0,185,1,0,180,9,205,16,88,195,83,232,113,0,232,231,255,91,195,83,232,104,0,180,8,205,16,91,195,232,243,
        255,138,232,138,204,195,139,30,86,0,137,30,86,0,156,83,232,77,0,91,157,195,160,87,0,254,200,195,80,138,14,41,0,42,14,87,0,
        254,193,181,0,138,62,73,0,138,30,79,0,176,32,180,9,205,16,139,22,86,0,134,242,254,206,254,202,180,2,205,16,88,195,83,232,
        21,0,138,62,73,0,138,30,79,0,138,14,41,0,181,0,176,32,180,9,205,16,91,80,82,139,211,134,242,254,206,254,202,138,62,73,0,180,
        2,205,16,90,88,195,83,82,177,0,138,239,138,243,232,27,0,180,6,205,16,235,15,83,82,177,0,138,235,138,247,232,10,0,180,7,205,
        16,232,28,0,90,91,195,232,17,0,138,22,41,0,254,202,254,206,254,205,176,1,138,62,79,0,195,160,73,0,235,3,160,74,0,232,6,1,
        117,32,138,38,72,0,128,252,7,116,23,82,186,0,8,128,252,2,114,2,208,230,50,228,247,226,30,142,218,163,78,4,31,90,195,156,83,
        82,80,186,0,0,180,0,205,23,138,196,128,228,40,128,252,40,116,13,246,196,8,117,12,168,1,116,13,178,24,235,6,178,27,235,2,178,
        25,233,186,183,88,80,60,13,233,93,15,88,90,91,157,195,60,147,116,96,60,149,116,70,60,221,116,70,232,227,206,10,192,116,56,
        254,200,60,10,115,50,186,16,0,246,226,138,208,129,194,83,6,82,232,162,221,44,232,209,198,83,232,76,216,138,15,128,249,15,
        114,2,177,15,67,139,55,91,95,83,181,0,252,243,164,136,45,232,114,251,91,195,233,225,191,176,255,235,2,176,0,58,6,113,0,162,
        113,0,116,3,232,94,0,232,144,190,195,83,190,83,6,185,10,0,254,197,86,176,70,232,8,219,81,138,221,183,0,232,171,20,176,32,
        232,251,218,89,94,86,81,252,172,10,192,116,5,232,19,0,235,245,176,13,232,231,218,89,94,131,198,16,254,201,117,206,91,235,
        192,86,60,13,117,2,176,27,232,209,218,94,195,80,160,72,0,60,7,116,4,60,4,115,2,50,192,10,192,88,195,83,205,173,182,24,178,
        0,138,62,73,0,180,2,205,16,160,113,0,10,192,117,19,138,30,79,0,138,14,41,0,181,0,180,9,205,16,232,13,254,91,195,179,7,232,
        192,255,117,9,160,76,0,10,192,117,2,179,112,190,83,6,181,5,160,41,0,60,40,176,49,116,2,181,10,80,83,138,30,78,0,232,55,0,
        91,86,177,6,81,252,172,10,192,156,86,117,2,50,192,232,37,0,94,157,117,1,78,89,254,201,117,232,232,22,0,94,131,198,16,88,254,
        192,60,58,114,2,176,48,254,205,117,199,232,175,253,91,195,50,192,83,10,192,117,6,176,32,138,30,79,0,60,13,117,2,176,27,81,
        185,1,0,180,9,205,16,254,194,180,2,205,16,89,91,195,138,14,73,0,181,0,138,38,72,0,246,196,1,116,3,128,205,128,128,252,4,114,
        9,254,197,128,252,6,114,2,254,197,81,60,44,116,12,232,97,205,89,138,232,81,232,92,189,116,64,232,45,220,44,60,44,116,21,232,
        77,205,10,192,116,2,176,128,89,128,229,3,10,232,81,232,63,189,116,35,232,16,220,44,60,44,116,12,232,48,205,89,138,200,81,
        232,43,189,116,15,232,252,219,44,232,32,205,138,240,89,235,6,233,85,190,89,138,241,138,38,41,0,138,197,36,127,10,192,116,
        10,50,210,10,214,10,209,117,230,235,27,128,252,40,116,12,128,254,4,115,218,128,249,4,114,12,235,211,128,254,8,115,206,128,
        249,8,115,201,138,209,10,192,116,32,128,62,72,0,7,116,92,177,6,60,2,180,80,116,42,180,40,254,201,254,200,117,172,246,197,
        128,117,29,254,201,235,25,177,2,128,252,40,116,9,246,197,128,116,13,254,193,235,9,254,201,246,197,128,117,2,254,201,136,38,
        41,0,161,72,0,136,14,72,0,137,22,73,0,58,193,116,26,184,7,0,163,75,0,134,196,163,77,0,136,38,79,0,232,58,254,116,3,162,79,
        0,232,110,0,160,74,0,180,5,205,16,195,58,6,41,0,116,52,138,38,72,0,60,80,116,7,60,40,116,3,233,152,189,128,252,7,117,4,176,
        80,235,28,128,244,2,128,252,7,117,2,254,204,80,162,41,0,136,38,72,0,199,6,73,0,0,0,232,45,0,88,195,83,232,218,252,178,39,
        128,62,41,0,40,116,2,178,79,182,24,138,62,79,0,185,0,0,138,193,180,6,205,16,186,0,0,138,62,73,0,180,2,205,16,235,15,83,185,
        0,0,137,14,73,0,160,72,0,180,0,205,16,232,189,221,232,201,248,232,138,247,232,157,252,91,195,232,164,253,116,91,177,0,190,
        81,0,128,62,72,0,6,117,3,233,22,189,138,44,86,81,232,212,187,116,64,60,44,116,7,232,201,203,89,138,232,81,89,81,83,138,249,
        138,221,128,255,0,117,8,128,251,8,114,3,128,203,16,180,11,205,16,91,232,171,187,116,3,232,165,187,89,94,136,44,116,8,70,254,
        193,128,249,4,114,189,198,6,79,0,0,195,89,94,195,255,54,77,0,255,54,75,0,60,44,116,16,232,126,203,60,32,115,24,89,138,200,
        81,232,117,187,116,44,232,70,218,44,60,44,116,19,232,102,203,60,16,114,3,233,156,188,89,138,232,81,232,90,187,116,17,232,
        43,218,44,232,79,203,60,16,115,233,89,90,138,208,82,81,89,90,138,241,128,230,15,137,14,75,0,138,197,208,224,36,16,10,194,
        128,229,7,208,229,208,229,208,229,208,229,246,193,16,116,3,128,205,128,10,238,83,138,216,183,0,36,15,162,77,0,136,46,78,0,
        136,46,79,0,180,11,205,16,91,195,255,54,86,0,60,44,116,32,232,250,202,10,192,116,91,60,26,115,87,138,38,113,0,10,228,116,
        4,60,25,115,75,90,138,208,82,232,225,186,116,123,232,178,217,44,60,44,116,24,232,210,202,10,192,116,51,138,38,41,0,58,224,
        114,43,90,138,240,82,232,193,186,116,91,255,54,104,0,232,142,217,44,60,44,116,25,232,174,202,10,192,176,0,117,2,176,32,89,
        10,232,81,232,161,186,116,45,235,3,233,213,187,232,109,217,44,232,145,202,60,32,115,242,89,128,229,32,10,232,138,200,81,232,
        131,186,116,15,232,84,217,44,232,120,202,60,32,115,217,89,138,200,81,89,81,128,229,15,137,14,104,0,89,180,1,205,16,90,137,
        22,86,0,134,242,254,206,254,202,83,138,62,73,0,180,2,205,16,91,195,80,176,0,235,3,80,176,32,156,81,83,80,232,61,250,88,91,
        139,14,104,0,246,6,114,0,255,116,2,181,4,10,232,180,1,205,16,89,157,88,195,0,0,0,0,255,255,255,255,255,255,255,255,255,255,
        255,255,80,156,232,201,251,116,75,83,81,82,140,198,191,0,0,142,199,38,255,54,124,0,38,255,54,126,0,38,199,6,124,0,248,84,
        38,140,14,126,0,142,198,176,129,2,6,114,0,179,131,138,62,73,0,185,1,0,180,9,205,16,140,198,191,0,0,142,199,38,143,6,126,0,
        38,143,6,124,0,142,198,90,89,91,157,88,195,232,189,185,160,86,0,233,114,246,232,180,185,232,101,0,10,238,117,86,10,234,10,
        233,116,80,138,38,41,0,58,226,114,72,128,249,26,115,67,160,113,0,10,192,116,5,128,249,25,115,55,83,138,241,254,206,254,202,
        138,62,73,0,180,2,205,16,180,8,205,16,91,80,232,119,185,60,44,116,4,176,0,235,7,232,66,216,44,232,102,201,80,232,58,216,41,
        88,10,192,88,116,2,138,196,233,18,246,233,144,186,232,5,0,232,37,216,41,195,232,32,216,40,232,50,201,82,232,24,216,44,232,
        42,201,89,195,232,56,185,60,149,116,8,232,8,216,221,50,192,235,5,232,41,185,176,255,162,52,0,195,160,52,0,10,192,116,48,232,
        27,201,60,10,115,41,83,86,186,26,86,82,50,228,209,224,139,240,46,255,180,29,86,195,94,91,195,52,86,63,86,70,86,76,86,107,
        86,114,86,120,86,128,86,136,86,144,86,233,37,186,187,53,0,138,7,198,7,0,233,159,245,139,30,55,0,233,198,14,160,57,0,233,140,
        245,180,4,205,16,80,10,228,116,12,137,30,58,0,136,46,60,0,137,22,63,0,88,138,196,254,200,246,208,233,115,245,139,30,58,0,
        233,154,14,160,60,0,233,96,245,160,62,0,254,192,233,88,245,160,61,0,254,192,233,80,245,160,64,0,254,192,233,72,245,160,63,
        0,254,192,233,64,245,232,132,200,10,192,116,18,60,4,115,84,180,0,83,187,65,0,3,216,138,7,91,233,39,245,83,186,1,2,185,1,1,
        187,15,0,250,238,236,36,15,58,195,225,249,227,11,50,195,138,225,80,254,199,50,216,235,236,10,255,116,26,138,215,187,65,0,
        185,4,0,88,246,212,2,226,208,232,115,2,136,39,67,226,247,254,202,117,232,251,91,160,65,0,233,225,244,233,95,185,232,32,184,
        60,149,116,8,232,240,214,221,50,192,235,5,232,17,184,176,255,162,69,0,195,160,69,0,10,192,116,222,232,3,200,60,4,115,215,
        168,1,116,14,180,16,254,200,116,2,180,64,232,208,0,233,172,244,83,187,70,0,10,192,116,1,67,138,7,198,7,0,91,233,154,244,156,
        80,85,86,87,30,186,0,0,142,218,142,30,16,5,161,102,0,10,196,116,9,255,14,102,0,117,3,232,39,0,160,52,0,10,192,116,3,232,54,
        0,160,69,0,10,192,116,3,232,105,0,31,95,94,93,88,157,207,198,6,101,0,0,161,102,0,11,192,116,24,82,250,246,6,101,0,255,117,
        7,186,97,0,236,36,252,238,199,6,102,0,0,0,251,90,195,83,81,82,180,4,205,16,80,10,228,116,12,137,30,58,0,136,46,60,0,137,22,
        63,0,88,160,54,0,50,196,116,25,10,228,136,38,54,0,116,17,137,30,55,0,136,46,57,0,137,22,61,0,176,255,162,53,0,90,89,91,195,
        83,187,70,0,128,63,0,117,7,180,16,232,17,0,136,7,67,128,63,0,117,7,180,64,232,4,0,136,7,91,195,82,186,1,2,236,34,196,254,
        200,152,138,196,90,195,232,9,0,184,211,5,186,4,0,82,235,56,139,22,102,0,10,242,116,7,198,6,101,0,255,235,241,195,232,222,
        198,131,250,37,114,18,82,232,191,213,44,232,113,202,89,82,11,210,117,7,90,233,59,255,233,19,184,232,208,255,186,18,0,184,
        220,52,247,241,246,6,101,0,255,117,8,80,186,67,0,176,182,238,88,186,66,0,238,138,196,238,117,7,186,97,0,236,12,3,238,90,137,
        22,102,0,198,6,101,0,0,195,10,90,77,65,89,16,89,16,25,90,89,16,89,16,89,16,89,16,45,90,89,16,52,90,77,65,89,16,69,90,89,16,
        89,16,89,16,89,16,89,16,89,16,93,90,99,90,77,65,89,16,124,90,89,16,89,16,89,16,89,16,89,16,89,16,170,90,177,90,110,91,89,
        16,171,91,240,91,89,16,89,16,108,92,89,16,118,92,89,16,34,194,117,34,156,80,83,137,30,233,4,136,23,131,195,45,198,7,0,67,
        67,136,47,67,198,7,0,67,136,15,67,198,7,0,91,88,157,195,233,152,174,88,91,195,128,250,128,117,2,178,2,195,88,134,196,158,
        89,90,91,195,90,91,89,195,131,195,46,138,7,246,208,195,139,30,233,4,131,195,43,195,139,30,233,4,131,195,50,195,139,30,233,
        4,138,135,47,0,195,86,87,81,198,6,63,5,165,190,240,4,191,64,5,185,8,0,252,164,226,253,89,95,94,195,83,81,187,64,5,177,8,128,
        63,32,117,13,67,254,201,117,246,190,92,5,191,72,5,235,16,190,84,5,191,64,5,177,8,252,166,117,39,254,201,117,249,138,5,58,
        4,116,9,10,192,117,25,246,4,1,117,20,138,4,139,30,233,4,136,135,49,0,187,244,89,232,14,0,50,192,235,7,187,254,89,232,4,0,
        249,89,91,195,83,139,30,46,0,67,11,219,116,2,91,195,187,83,5,83,67,177,8,138,7,232,213,244,67,254,201,117,246,176,46,232,
        203,244,91,131,195,9,176,68,246,7,225,116,23,176,80,246,7,32,117,16,176,66,246,7,128,117,9,176,65,246,7,64,117,2,176,77,91,
        232,165,244,46,138,7,67,10,192,117,245,195,32,70,111,117,110,100,46,255,13,0,32,83,107,105,112,112,101,100,46,255,13,0,185,
        0,0,136,14,82,5,176,234,232,189,254,233,227,254,187,82,5,138,7,198,7,0,10,192,117,5,232,70,243,10,192,233,226,254,136,14,
        82,5,233,163,235,232,200,254,138,46,41,0,177,0,176,237,232,145,254,233,183,254,88,80,134,196,232,68,244,138,14,87,0,254,201,
        139,30,233,4,136,143,50,0,233,170,254,88,134,196,233,73,248,138,46,98,0,177,0,232,147,254,176,109,232,98,254,232,175,254,
        160,99,0,136,7,233,128,254,88,80,134,196,232,3,0,233,129,254,232,106,245,187,99,0,60,13,117,3,233,228,4,60,32,115,1,195,254,
        7,83,232,141,254,91,254,192,116,244,254,200,56,7,233,197,4,88,134,196,162,98,0,195,160,97,0,10,192,116,3,233,232,172,128,
        226,251,117,2,178,1,162,81,5,254,192,162,80,5,138,202,128,225,128,128,233,1,245,26,201,128,225,128,246,194,16,116,3,128,201,
        32,160,96,0,10,192,116,2,177,1,10,201,117,9,246,6,95,0,255,116,2,177,64,136,14,72,5,181,255,176,104,232,210,253,138,39,232,
        46,254,246,196,1,117,12,246,193,129,117,3,232,47,0,176,255,235,31,232,51,0,232,48,254,114,248,139,30,233,4,246,135,49,0,129,
        117,10,232,17,1,115,5,198,6,80,5,0,176,1,162,97,0,232,231,253,198,7,1,233,186,253,187,63,5,185,17,0,180,3,205,21,195,187,
        83,5,185,17,0,83,180,2,205,21,115,3,233,2,1,91,160,94,0,10,192,117,6,128,63,165,117,230,195,233,41,172,160,97,0,254,192,116,
        11,50,192,162,97,0,162,96,0,233,205,229,139,30,233,4,246,135,49,0,129,117,234,232,59,0,232,31,1,235,226,83,187,97,0,56,39,
        117,13,139,30,233,4,246,135,49,0,129,91,117,1,195,233,233,171,180,255,232,227,255,88,80,134,196,232,3,0,233,77,253,232,38,
        0,136,7,254,193,116,11,232,93,253,136,15,195,232,87,253,138,15,187,83,5,181,0,254,201,65,136,15,180,3,205,21,232,68,253,198,
        7,1,195,232,61,253,138,15,181,0,187,83,5,3,217,195,180,1,232,158,255,232,3,0,233,20,253,160,80,5,44,1,115,1,195,187,81,5,
        138,7,198,7,0,10,192,116,1,195,232,10,0,115,7,198,6,80,5,0,10,192,195,232,195,255,138,7,254,193,232,252,252,136,15,232,239,
        252,58,15,116,3,10,192,195,128,63,0,117,221,80,232,2,0,88,195,187,83,5,185,0,1,180,2,205,21,114,21,160,83,5,232,203,252,136,
        7,232,206,252,198,7,1,254,200,249,116,1,248,195,128,252,4,117,5,178,24,233,111,171,233,37,171,160,80,5,44,1,26,192,233,147,
        8,136,14,81,5,233,90,233,198,6,95,0,0,83,137,30,77,5,139,22,80,3,137,22,75,5,139,14,4,7,43,203,137,14,73,5,81,82,232,164,
        254,90,89,91,160,96,0,10,192,6,116,2,142,194,180,3,205,21,7,232,137,0,186,5,0,185,0,0,73,117,253,74,117,250,232,118,0,195,
        190,83,5,139,140,10,0,160,96,0,10,192,156,81,117,13,80,83,81,86,3,217,232,22,230,94,89,91,88,60,1,117,4,139,156,14,0,6,10,
        192,116,14,139,148,12,0,254,200,116,4,139,22,80,3,142,194,180,2,205,21,7,114,18,89,157,117,11,139,30,48,0,3,217,67,137,30,
        88,3,233,128,229,80,232,5,208,88,128,252,4,117,5,178,24,233,181,170,233,107,170,75,232,243,177,117,5,160,100,0,235,3,232,
        232,193,10,192,117,4,176,1,235,2,176,0,162,100,0,138,224,205,21,195,205,219,249,235,1,248,139,243,156,139,14,165,4,138,195,
        50,193,162,167,4,138,199,50,228,138,221,50,255,157,115,7,3,195,45,1,1,235,2,43,195,10,228,120,13,61,128,0,114,21,139,222,
        131,196,2,233,93,23,5,128,0,121,11,139,222,131,196,2,233,223,29,5,128,0,162,166,4,187,165,4,128,15,128,139,222,50,255,128,
        203,128,195,198,6,57,3,128,232,198,217,83,139,218,232,234,6,232,4,197,137,30,94,4,177,32,232,27,207,91,232,96,177,116,23,
        232,49,208,40,232,167,217,82,138,7,60,44,117,5,232,76,177,235,241,232,30,208,41,137,30,59,3,14,184,233,93,80,255,54,80,3,
        255,54,94,4,203,139,30,59,3,195,83,232,14,5,60,108,116,10,60,76,116,6,60,113,116,2,60,81,91,195,38,38,38,38,38,38,38,38,38,
        38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,37,37,37,36,36,36,35,35,35,34,34,34,34,33,33,33,32,32,32,31,31,31,31,30,30,
        30,29,29,29,29,28,28,28,27,27,27,26,26,26,25,25,25,25,24,24,24,23,23,23,23,22,22,22,22,21,21,21,20,20,20,19,19,19,19,18,18,
        18,17,17,17,16,16,16,16,15,15,15,14,14,14,13,13,13,13,12,12,12,11,11,11,10,10,10,10,9,9,9,8,8,8,7,7,7,6,6,6,6,5,5,5,4,4,4,
        3,3,3,3,2,2,2,1,1,1,0,0,0,0,255,255,255,254,254,254,253,253,253,253,252,252,252,251,251,251,250,250,250,250,249,249,249,248,
        248,248,247,247,247,247,246,246,246,245,245,245,244,244,244,244,243,243,243,242,242,242,241,241,241,241,240,240,240,239,239,
        239,238,238,238,238,237,237,237,236,236,236,235,235,235,235,234,234,234,233,233,233,232,232,232,231,231,231,231,230,230,230,
        229,229,229,228,228,228,228,227,227,227,226,226,226,225,225,225,225,224,11,246,121,2,247,218,43,215,112,61,116,58,83,232,
        144,28,156,115,3,232,106,12,11,210,120,15,131,250,39,114,29,157,115,3,232,61,12,91,233,177,21,131,250,218,125,14,131,194,
        38,131,250,218,124,17,232,19,0,186,218,255,232,13,0,157,115,3,232,29,12,91,195,232,31,28,235,243,11,210,156,121,2,247,218,
        185,3,0,211,226,129,194,50,96,135,218,232,37,29,157,120,3,233,236,12,232,236,28,233,212,8,114,9,176,13,144,233,15,251,198,
        7,0,138,7,232,164,249,136,7,195,117,6,176,10,144,232,105,240,88,90,91,157,195,128,62,106,0,0,116,18,30,83,197,30,107,0,128,
        63,0,91,31,117,5,198,6,106,0,0,233,114,175,95,94,233,190,237,117,16,91,136,54,167,4,187,0,16,198,6,251,2,4,233,40,21,199,
        6,165,4,0,0,195,16,91,136,54,167,4,187,0,16,198,6,251,2,4,233,16,21,199,6,165,4,0,0,195,92,214,237,189,206,254,230,91,95,
        166,180,54,65,95,112,9,99,207,97,132,17,119,204,43,102,67,122,229,213,148,191,86,105,106,108,175,5,189,55,6,109,133,71,27,
        71,172,197,39,112,102,25,226,88,23,183,81,115,224,79,141,151,110,18,3,119,216,163,112,61,10,215,35,122,205,204,204,204,204,
        204,76,125,0,0,0,0,0,0,0,129,0,0,0,0,0,0,32,132,0,0,0,0,0,0,72,135,0,0,0,0,0,0,122,138,0,0,0,0,0,64,28,142,0,0,0,0,0,80,67,
        145,0,0,0,0,0,36,116,148,0,0,0,0,128,150,24,152,0,0,0,0,32,188,62,155,0,0,0,0,40,107,110,158,0,0,0,0,249,2,21,162,0,0,0,64,
        183,67,58,165,0,0,0,16,165,212,104,168,0,0,0,42,231,132,17,172,0,0,128,244,32,230,53,175,0,0,160,49,169,95,99,178,0,0,4,191,
        201,27,14,182,0,0,197,46,188,162,49,185,0,64,118,58,107,11,94,188,0,232,137,4,35,199,10,192,0,98,172,197,235,120,45,195,128,
        122,23,183,38,215,88,198,144,172,110,50,120,134,7,202,181,87,10,63,22,104,41,205,162,237,204,206,27,194,83,208,133,20,64,
        97,81,89,4,212,166,25,144,185,165,111,37,215,16,32,244,39,143,203,78,218,10,148,248,120,57,63,1,222,12,185,54,215,7,143,33,
        225,79,103,4,205,201,242,73,228,35,129,69,64,124,111,124,231,182,112,43,168,173,197,29,235,228,76,54,18,25,55,69,238,28,224,
        195,86,223,132,118,241,18,108,58,150,11,19,26,245,22,7,201,123,206,151,64,248,220,72,187,26,194,189,112,251,137,13,181,80,
        153,118,22,255,0,0,0,0,0,0,0,128,241,4,53,128,4,154,247,25,131,36,99,67,131,117,205,141,132,169,127,131,130,4,0,0,0,129,226,
        176,77,131,10,114,17,131,244,4,53,127,24,114,49,128,46,101,69,37,35,33,68,100,44,48,0,128,198,164,126,141,3,0,64,122,16,243,
        90,0,0,160,114,78,24,9,0,0,16,165,212,232,0,0,0,232,118,72,23,0,0,0,228,11,84,2,0,0,0,202,154,59,0,0,0,0,225,245,5,0,0,0,
        128,150,152,0,0,0,0,64,66,15,0,0,0,0,64,66,15,160,134,1,16,39,0,16,39,232,3,100,0,10,0,1,0,0,0,128,144,255,255,255,255,255,
        255,127,255,255,255,255,255,255,255,255,255,59,170,56,129,7,124,136,89,116,224,151,38,119,196,29,30,122,94,80,99,124,26,254,
        117,126,24,114,49,128,0,0,0,129,5,251,215,30,134,101,38,153,135,88,52,35,135,225,93,165,134,219,15,73,131,2,215,179,93,129,
        0,0,128,129,4,98,53,131,126,80,36,76,126,121,169,170,127,0,0,0,129,11,68,78,110,131,249,34,126,253,67,3,195,158,38,1,0,0,
        48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,186,59,170,187,56,129,232,114,10,160,166,4,60,136,115,60,60,104,114,75,255,
        54,163,4,255,54,165,4,232,96,16,138,226,128,196,129,116,35,80,246,6,167,4,128,232,67,16,50,228,232,230,17,88,91,90,80,232,
        168,4,187,23,98,232,141,18,91,51,210,138,218,233,50,10,131,196,4,128,38,165,4,128,116,3,233,145,24,50,228,136,38,167,4,233,
        249,17,191,163,4,144,51,192,252,171,199,5,0,129,195,232,175,24,117,3,233,222,164,195,252,171,199,5,0,129,195,233,26,172,205,
        185,128,54,165,4,128,128,54,177,4,128,233,138,3,205,186,135,217,233,90,4,205,187,135,217,233,71,4,205,188,232,51,25,233,27,
        5,135,217,233,177,5,205,189,137,30,163,4,233,107,8,205,190,82,152,139,208,232,238,8,90,195,205,191,135,217,233,183,9,205,
        192,135,217,233,237,13,129,251,0,128,117,19,205,193,232,211,8,51,210,187,128,144,232,5,4,232,75,26,233,69,8,247,219,83,3,
        218,112,4,88,233,153,1,205,194,232,181,8,90,255,54,163,4,255,54,165,4,232,169,8,91,90,233,234,3,139,195,82,247,234,90,114,
        5,139,216,233,118,1,205,195,83,232,145,8,90,255,54,163,4,255,54,165,4,232,133,8,91,90,233,82,9,11,219,117,12,136,54,167,4,
        198,6,251,2,4,233,45,17,137,30,163,4,184,0,0,163,165,4,146,11,192,121,3,186,255,255,11,219,121,6,199,6,165,4,255,255,247,
        62,163,4,139,216,233,42,1,135,217,232,215,24,135,217,195,83,232,69,26,91,131,195,4,195,139,22,163,4,139,14,165,4,195,156,
        83,232,25,26,91,131,195,4,157,195,232,171,190,137,30,163,4,233,103,10,232,161,190,137,30,163,4,233,101,10,205,196,139,23,
        139,159,2,0,233,77,3,94,255,54,163,4,255,54,165,4,255,230,205,197,135,217,232,160,24,135,217,195,232,100,23,116,3,233,147,
        163,195,135,218,232,205,0,50,192,181,152,205,198,187,166,4,138,200,136,47,181,0,67,136,47,208,208,205,199,115,3,232,32,1,
        138,229,138,217,233,51,16,232,146,254,83,51,219,137,30,163,4,183,129,137,30,165,4,198,6,251,2,4,232,4,20,91,198,6,251,2,4,
        195,139,193,247,226,146,115,3,233,37,213,195,187,171,4,186,183,100,233,6,0,187,171,4,186,185,100,82,186,163,4,232,247,22,
        114,3,186,159,4,195,138,205,50,237,235,8,135,218,160,251,2,152,139,200,252,139,242,139,251,243,164,139,214,139,223,195,232,
        54,200,139,241,139,251,253,43,202,65,243,164,139,218,139,207,65,252,195,156,73,157,195,232,188,22,117,3,233,235,162,205,200,
        120,3,233,131,22,161,163,4,11,192,116,6,176,1,121,2,176,255,195,51,192,11,219,117,243,195,91,195,152,139,216,198,6,251,2,
        2,137,30,163,4,195,198,6,251,2,4,195,232,196,255,233,231,255,205,201,91,90,233,181,3,232,37,6,91,90,233,11,12,185,4,0,233,
        136,255,156,138,23,67,157,156,138,55,67,139,15,67,157,156,67,157,195,83,187,40,7,232,6,22,91,185,182,38,81,232,181,255,50,
        192,205,202,162,49,3,187,180,4,198,7,32,10,7,67,198,7,48,233,106,11,205,203,160,165,4,235,9,205,204,232,229,23,116,8,246,
        208,208,224,26,192,116,61,195,205,205,128,54,167,4,128,51,219,246,221,139,195,27,194,139,208,138,195,26,193,138,200,195,232,
        3,22,120,250,205,206,232,207,21,120,3,233,213,24,232,2,24,232,207,24,233,252,23,139,195,43,194,116,14,112,7,120,7,50,192,
        254,192,195,120,249,249,26,192,195,59,218,117,5,51,219,233,38,0,139,194,137,30,163,4,11,219,232,211,249,144,144,144,121,6,
        199,6,165,4,255,255,11,192,186,0,0,121,3,186,255,255,247,62,163,4,139,218,137,30,163,4,195,173,58,225,116,17,70,2,4,254,192,
        152,3,240,59,245,117,239,139,214,233,57,210,58,6,251,2,117,233,58,44,117,229,70,138,208,172,58,6,142,0,116,4,2,194,235,220,
        10,192,116,16,152,145,191,143,0,243,166,145,116,6,3,240,138,194,235,200,139,214,91,195,139,243,139,46,75,4,252,235,190,139,
        243,139,46,92,3,252,233,13,0,173,58,225,116,17,70,172,152,3,240,173,3,240,59,238,117,239,139,222,233,83,211,58,6,251,2,117,
        233,58,44,117,229,70,172,58,6,142,0,117,223,10,192,116,14,152,145,191,143,0,243,166,145,116,4,3,240,235,208,173,139,208,139,
        222,233,5,211,232,24,22,195,161,165,4,10,228,116,245,128,54,165,4,128,205,215,176,0,162,158,4,162,170,4,160,178,4,10,192,
        116,226,161,165,4,10,228,116,216,139,30,177,4,128,14,165,4,128,128,14,177,4,128,138,204,42,207,162,167,4,116,34,115,18,134,
        195,246,217,162,167,4,136,62,166,4,80,81,232,111,21,89,88,128,249,57,115,95,83,248,232,33,21,160,167,4,91,50,195,187,158,
        4,190,170,4,185,4,0,248,252,120,30,173,17,7,67,67,226,249,115,18,187,166,4,254,7,116,52,75,75,185,4,0,209,31,75,75,226,250,
        233,233,17,173,25,7,67,67,226,249,115,26,246,151,1,0,185,4,0,75,75,247,23,226,250,185,4,0,255,7,117,6,67,67,226,248,116,200,
        233,244,12,233,141,13,160,167,4,36,128,128,38,165,4,127,8,6,165,4,195,137,30,165,4,137,22,163,4,195,161,165,4,10,228,116,
        240,128,54,165,4,128,10,255,116,239,161,165,4,10,228,116,224,51,201,139,54,163,4,162,167,4,138,204,42,207,115,13,246,217,
        134,223,137,30,166,4,134,223,147,135,214,138,224,50,227,156,180,128,10,196,10,220,50,228,138,252,11,201,116,70,131,249,25,
        114,18,157,137,54,163,4,138,38,167,4,37,127,128,10,196,162,165,4,195,128,249,8,114,28,233,5,3,144,138,243,50,219,128,233,
        8,246,196,31,116,208,128,204,32,235,203,128,204,32,226,3,235,14,248,208,219,209,218,208,220,246,196,16,117,237,226,243,157,
        121,37,42,204,138,225,27,242,139,214,26,195,138,216,115,47,246,22,167,4,246,212,247,210,246,211,254,196,117,33,66,117,30,
        254,195,117,26,235,6,3,214,18,216,115,12,254,6,166,4,116,9,208,219,209,218,208,220,233,36,17,233,169,12,233,104,12,232,37,
        19,195,160,177,4,162,167,4,233,167,12,246,6,166,4,255,116,240,246,6,178,4,255,116,229,139,30,177,4,232,243,244,137,30,177,
        4,187,164,4,248,232,161,19,187,176,4,248,232,154,19,255,54,166,4,232,94,21,143,6,166,4,185,64,0,81,235,8,81,248,187,170,4,
        232,119,19,139,252,131,236,8,131,239,2,190,176,4,185,4,0,253,243,165,190,120,4,185,4,0,187,170,4,248,252,173,25,7,67,67,226,
        249,115,16,185,4,0,139,244,191,170,4,252,243,165,139,230,248,235,4,131,196,8,249,187,158,4,232,56,19,89,226,182,246,6,165,
        4,128,116,9,255,6,166,4,117,9,233,7,12,187,158,4,232,31,19,233,49,16,232,148,18,117,7,136,30,167,4,233,0,12,10,255,117,3,
        233,122,18,232,87,244,139,250,51,210,138,254,139,243,138,223,185,32,0,85,139,46,163,4,160,165,4,138,231,235,5,248,209,215,
        209,214,86,87,43,253,27,240,115,4,95,94,235,4,131,196,4,248,245,209,210,209,211,226,228,11,219,121,10,254,6,166,4,117,8,93,
        233,165,11,209,210,209,211,138,226,138,214,138,243,138,223,93,233,13,16,19,249,83,87,81,44,48,80,232,80,18,88,152,121,30,
        139,30,163,4,129,251,205,12,115,25,139,203,209,227,209,227,3,217,209,227,3,216,120,11,137,30,163,4,235,72,80,114,8,235,51,
        80,232,36,2,235,20,199,6,124,4,0,36,199,6,126,4,116,148,187,126,4,232,131,19,121,22,232,60,18,90,255,54,163,4,255,54,165,
        4,232,139,2,91,90,232,204,253,235,19,232,231,1,232,35,18,232,238,18,90,232,119,2,232,218,1,232,238,252,89,95,91,195,205,217,
        50,192,233,9,0,205,218,176,1,198,6,251,2,8,198,6,168,4,1,190,180,37,86,51,255,139,207,139,247,247,209,80,232,134,17,88,10,
        192,117,5,198,6,251,2,2,138,7,60,38,117,3,233,7,176,60,45,156,116,5,60,43,116,1,75,232,251,248,115,6,232,61,255,233,245,255,
        189,163,97,51,210,139,242,46,58,134,0,0,116,10,129,253,156,97,116,36,77,233,239,255,129,237,156,97,209,229,46,255,166,48,
        106,75,106,95,106,95,106,103,106,109,106,115,106,64,106,64,106,50,192,232,156,0,232,65,0,233,45,0,65,117,247,232,81,17,121,
        175,81,83,87,232,72,1,95,91,89,233,163,255,232,140,243,116,225,233,219,255,67,235,219,233,11,0,232,188,0,233,5,0,50,192,232,
        182,0,157,117,13,232,45,19,232,33,17,122,5,83,232,237,18,91,195,233,118,244,198,6,85,4,255,232,137,164,139,212,233,227,8,
        10,255,117,5,232,232,16,249,195,160,166,4,10,192,117,8,138,195,246,208,232,228,16,249,195,232,228,255,93,114,20,235,16,83,
        139,31,232,217,255,91,93,114,8,83,87,191,165,4,144,85,195,254,192,44,1,195,246,196,255,138,226,116,3,128,204,32,138,214,233,
        237,252,16,159,128,62,251,2,8,117,4,158,233,8,0,158,83,87,232,92,0,95,91,51,246,139,214,232,4,248,114,19,60,45,117,4,247,
        214,235,5,60,43,116,1,195,232,242,247,114,1,195,129,250,204,12,114,5,186,255,127,235,239,80,184,10,0,247,226,90,128,234,48,
        50,246,3,208,235,223,12,1,83,87,117,7,232,28,0,235,5,144,144,232,70,0,95,91,51,246,139,214,232,189,243,67,195,232,88,16,120,
        249,233,111,156,116,49,232,78,16,123,86,117,3,233,123,156,205,207,121,5,232,63,0,235,72,176,4,162,251,2,138,30,165,4,136,
        30,167,4,139,22,163,4,138,38,162,4,128,204,64,128,203,128,233,213,13,232,29,16,115,37,117,3,233,74,156,205,208,121,3,232,
        14,0,176,8,162,251,2,51,192,163,159,4,163,161,4,195,82,86,139,22,163,4,232,131,0,94,90,195,232,242,15,121,5,139,30,163,4,
        195,205,209,117,3,233,24,156,160,166,4,60,144,114,49,116,3,233,6,156,160,165,4,10,192,120,3,233,252,155,186,0,0,187,0,128,
        232,138,251,232,203,6,232,205,17,186,0,0,187,128,144,232,236,16,116,3,233,223,155,187,0,128,235,45,160,165,4,10,192,156,121,
        5,36,127,162,165,4,186,0,0,187,0,128,232,103,251,160,166,4,60,144,117,6,157,120,219,233,183,155,232,231,6,139,218,157,121,
        2,247,219,137,30,163,4,198,6,251,2,2,195,51,219,50,228,190,167,4,198,132,255,255,144,198,4,0,11,210,121,5,247,218,198,4,128,
        138,222,138,242,138,215,198,6,251,2,4,233,75,8,205,214,160,166,4,10,192,116,10,160,178,4,10,192,117,4,233,248,14,195,139,
        30,177,4,232,218,240,255,54,166,4,137,30,177,4,232,86,17,139,240,163,166,4,187,120,4,163,178,4,189,171,4,139,0,11,192,116,
        44,191,0,0,139,207,139,0,247,35,83,139,222,3,223,129,195,151,4,3,7,115,1,66,3,193,115,1,66,137,7,139,202,91,131,255,6,116,
        4,71,71,235,219,139,193,83,187,159,4,137,0,91,131,254,6,116,4,70,70,235,190,190,157,4,253,185,7,0,172,10,192,225,251,116,
        5,128,14,158,4,32,160,165,4,10,192,143,6,166,4,120,15,187,158,4,185,4,0,209,23,67,67,226,250,233,25,12,254,6,166,4,117,247,
        233,221,7,232,115,14,116,4,10,255,117,3,233,96,14,232,58,240,139,14,165,4,50,237,161,163,4,138,253,83,81,82,81,80,247,226,
        139,202,88,247,227,3,200,115,1,66,139,218,90,88,247,226,3,200,115,1,66,3,218,90,88,246,226,3,216,115,13,209,219,209,217,254,
        6,166,4,117,3,233,144,7,10,255,121,9,254,6,166,4,117,7,233,131,7,209,209,209,211,138,213,138,243,138,223,138,225,233,236,
        11,195,83,176,8,114,2,176,17,138,232,138,200,81,156,232,72,2,10,192,116,2,121,12,157,89,80,123,11,4,16,88,121,26,235,9,157,
        89,235,38,4,7,88,121,15,80,232,246,11,88,138,224,2,225,126,22,2,232,235,12,2,197,254,197,58,232,181,3,114,12,138,232,254,
        197,176,2,235,4,2,197,181,3,254,200,254,200,91,80,156,50,201,232,77,0,198,7,48,117,1,67,232,232,0,75,128,63,48,116,250,128,
        63,46,116,1,67,157,88,116,43,156,80,232,191,13,180,69,123,2,180,68,136,39,67,88,157,198,7,43,121,5,198,7,45,246,216,180,47,
        254,196,44,10,115,250,4,58,67,134,196,137,7,67,67,198,7,0,135,217,187,180,4,195,254,205,121,22,137,30,82,3,198,7,46,67,198,
        7,48,254,197,117,248,67,51,201,235,26,254,205,117,12,198,7,46,137,30,82,3,67,51,201,235,10,254,201,117,6,198,7,44,67,177,
        3,137,14,129,4,195,180,5,189,245,97,232,217,255,46,139,150,0,0,69,69,139,54,163,4,176,47,254,192,43,242,115,250,3,242,136,
        7,67,137,54,163,4,254,204,117,221,232,182,255,198,7,0,195,185,1,3,190,6,0,235,6,185,4,4,190,4,0,191,179,4,252,187,116,98,
        139,22,163,4,86,138,198,50,228,211,224,134,224,46,215,170,211,226,138,205,78,117,238,198,5,0,187,179,4,89,254,201,128,63,
        48,117,3,67,226,248,195,232,233,12,123,119,81,83,190,159,4,191,171,4,185,4,0,252,243,165,232,117,3,83,187,177,4,232,253,13,
        91,190,171,4,191,159,4,185,4,0,252,243,165,116,3,232,206,12,138,14,166,4,128,233,184,246,217,248,232,90,3,91,89,190,166,97,
        176,9,232,46,255,80,176,47,80,88,254,192,80,232,148,0,115,247,232,163,0,88,235,11,117,9,198,7,49,67,198,7,48,235,2,136,7,
        67,88,254,200,117,215,81,190,159,4,191,163,4,185,2,0,252,243,165,89,235,41,83,81,232,24,15,232,113,3,90,91,232,153,13,116,
        11,137,30,165,4,137,22,163,4,232,115,12,176,1,232,178,3,137,30,165,4,137,22,163,4,89,91,176,3,186,236,97,232,199,254,80,83,
        82,232,94,13,93,176,47,80,88,254,192,80,232,23,14,115,247,46,3,150,0,0,46,18,158,2,0,69,69,69,232,56,13,88,135,213,91,136,
        7,67,88,254,200,117,206,66,66,139,234,180,4,233,179,254,81,86,185,7,0,191,159,4,248,252,46,172,24,5,71,226,249,94,89,195,
        81,185,7,0,191,159,4,248,252,46,172,16,5,71,226,249,89,195,83,81,51,255,87,187,2,94,160,166,4,46,215,10,192,116,12,95,152,
        43,248,87,139,208,232,50,239,235,232,187,102,96,232,136,12,232,45,13,115,6,232,230,11,95,79,87,232,176,11,114,31,187,122,
        96,232,142,12,232,88,252,88,44,9,80,187,246,127,232,109,12,232,87,13,118,7,232,185,11,88,254,192,80,88,89,91,10,192,195,88,
        89,91,10,192,195,187,180,4,138,47,177,32,138,38,131,4,246,196,32,116,13,58,233,177,42,117,7,246,196,4,117,2,138,233,136,15,
        232,191,242,116,50,189,165,97,46,58,134,0,0,116,9,129,253,156,97,116,38,77,235,240,129,237,156,97,209,229,46,255,166,97,112,
        117,112,117,112,121,112,121,112,121,112,121,112,117,112,121,112,60,112,60,112,75,198,7,48,138,38,131,4,246,196,16,116,4,75,
        198,7,36,246,196,4,117,5,75,136,47,50,237,195,10,192,235,6,198,7,48,67,254,200,117,248,195,232,137,253,198,7,48,67,254,200,
        117,245,195,187,180,4,198,7,32,83,232,193,10,91,156,121,10,198,7,45,83,232,236,12,91,12,1,67,198,7,48,157,195,205,216,232,
        221,255,117,8,67,198,7,0,187,180,4,195,232,200,10,121,18,185,0,7,51,192,163,131,4,137,14,129,4,232,94,253,233,49,255,233,
        120,252,232,129,10,121,3,233,96,159,117,1,195,160,166,4,208,232,80,198,6,166,4,64,208,22,166,4,187,171,4,232,9,13,185,4,0,
        81,232,55,13,139,22,171,4,139,30,173,4,232,187,247,90,91,232,75,246,254,14,166,4,89,116,10,226,227,88,4,192,0,6,166,4,195,
        233,47,10,191,190,37,87,191,168,4,198,5,1,232,44,10,117,3,233,54,241,121,7,10,255,117,10,233,147,3,10,255,117,3,233,13,10,
        10,219,121,38,128,62,166,4,153,114,3,233,237,158,82,83,255,54,163,4,255,54,165,4,232,50,1,91,90,232,90,11,232,61,11,91,90,
        116,3,233,209,158,160,165,4,10,192,121,9,191,196,113,87,36,127,162,165,4,83,82,128,203,127,156,255,54,165,4,255,54,163,4,
        232,2,1,90,91,232,42,11,117,28,82,83,51,210,187,0,144,232,30,11,91,90,121,14,157,90,91,235,60,144,51,210,187,0,129,233,18,
        247,157,121,14,83,82,232,47,1,138,194,232,197,2,90,91,208,216,143,6,163,4,143,6,165,4,159,128,38,165,4,127,158,115,4,191,
        176,125,87,83,82,232,21,1,90,91,232,3,251,233,133,240,83,82,232,255,0,137,22,178,4,199,6,163,4,0,0,199,6,165,4,0,129,209,
        46,178,4,115,7,90,91,83,82,232,222,250,247,6,178,4,255,255,116,21,90,91,232,33,12,232,141,10,232,203,250,90,91,232,22,12,
        232,130,10,235,214,90,91,195,138,14,166,4,128,233,184,115,57,246,217,156,187,164,4,138,135,1,0,136,135,3,0,10,192,156,12,
        128,136,135,1,0,198,135,2,0,184,157,156,121,3,232,34,0,50,237,232,18,0,157,121,3,232,38,0,198,6,158,4,0,157,115,3,233,189,
        1,195,81,83,248,232,122,9,91,89,226,246,195,83,187,159,4,131,47,1,115,4,67,67,235,247,91,195,83,187,159,4,254,7,117,3,67,
        235,249,91,195,138,14,166,4,128,233,152,115,65,246,217,156,139,22,163,4,139,30,165,4,10,219,156,136,30,167,4,198,6,166,4,
        152,128,203,128,157,156,121,6,131,234,1,128,219,0,50,237,10,201,116,6,208,235,209,218,226,250,157,159,121,5,66,117,2,254,
        195,157,115,5,50,228,233,169,1,158,121,10,247,210,246,211,131,194,1,128,211,0,195,177,152,42,14,166,4,248,235,170,232,102,
        8,126,81,186,0,0,187,0,129,232,190,9,117,9,137,22,163,4,137,22,165,4,195,160,166,4,44,128,152,80,198,6,166,4,128,232,27,11,
        187,118,97,232,24,2,90,91,232,16,11,232,124,9,187,135,97,232,10,2,90,91,232,145,245,90,232,254,10,232,217,248,90,91,232,26,
        244,187,49,128,186,24,114,233,157,249,233,244,156,233,92,148,159,134,224,80,176,1,235,2,50,192,162,85,4,88,134,196,158,186,
        0,0,137,30,83,4,116,3,232,233,195,137,30,59,3,232,172,147,117,215,139,227,139,54,83,4,57,55,117,205,82,138,167,2,0,80,82,
        131,195,4,246,135,255,255,128,120,65,185,2,0,252,139,243,191,163,4,243,165,91,86,83,246,6,85,4,255,117,15,190,86,4,131,239,
        4,185,2,0,243,165,50,192,116,3,232,75,240,95,190,163,4,185,2,0,252,243,165,94,139,20,139,140,2,0,131,198,4,86,232,73,240,
        235,39,131,195,4,139,15,67,67,94,139,20,246,6,85,4,255,117,6,139,22,86,4,235,4,3,209,112,53,137,20,82,139,23,67,67,88,83,
        232,165,241,91,89,42,197,232,31,241,116,11,137,22,46,0,139,209,135,211,233,124,154,139,227,137,30,69,3,139,30,59,3,128,63,
        44,117,9,232,85,246,232,66,255,233,147,147,233,168,154,81,83,86,87,82,178,57,187,158,4,191,165,4,190,166,4,235,25,83,185,
        4,0,248,209,23,67,67,226,250,91,246,7,64,117,41,254,12,116,42,254,202,116,38,246,5,255,120,33,117,224,128,44,8,118,26,128,
        234,8,118,21,190,164,4,185,7,0,253,243,164,128,38,158,4,32,235,190,128,15,32,235,210,90,95,94,91,89,118,3,233,116,4,233,192,
        6,138,62,166,4,185,4,0,10,219,120,33,117,17,128,239,8,114,23,138,222,138,242,138,212,50,228,226,235,116,11,248,208,212,209,
        210,208,211,254,207,117,222,233,161,6,136,62,166,4,233,131,4,204,32,235,244,136,62,166,4,233,120,4,83,232,2,0,91,195,232,
        45,0,187,10,4,235,12,83,232,2,0,91,195,232,31,0,187,99,4,128,62,168,4,1,120,7,117,18,198,6,168,4,2,232,129,175,176,13,232,
        137,175,176,10,232,132,175,195,252,10,255,190,3,98,116,10,246,6,167,4,128,121,3,190,11,98,232,123,6,114,8,191,159,4,185,4,
        0,235,9,131,198,4,191,163,4,185,2,0,46,165,226,252,195,232,13,9,83,232,129,7,232,182,247,91,232,5,0,90,91,233,173,247,46,
        138,7,152,232,246,8,80,67,46,139,7,163,163,4,131,195,2,46,139,7,163,165,4,131,195,2,88,90,89,72,116,28,81,82,80,83,135,217,
        232,131,247,91,83,46,139,23,46,139,159,2,0,232,234,241,91,131,195,4,235,222,195,83,208,232,115,3,233,9,1,187,178,96,232,214,
        6,232,47,7,114,9,91,232,35,251,75,198,7,37,195,232,243,5,181,16,115,2,181,7,232,189,5,116,3,232,4,250,91,120,63,138,208,2,
        197,42,6,130,4,121,5,246,216,232,194,250,50,201,232,177,0,255,54,129,4,82,232,218,248,90,143,6,129,4,255,54,129,4,50,192,
        10,194,116,6,232,179,250,232,57,248,143,6,129,4,255,54,129,4,160,129,4,233,114,2,138,208,160,129,4,10,192,116,2,254,200,138,
        240,2,194,138,200,120,4,50,192,138,200,121,17,80,81,82,83,232,169,5,91,90,89,88,254,192,120,241,138,225,138,194,42,193,2,
        197,121,23,160,130,4,232,90,250,198,7,46,137,30,82,3,67,50,201,138,198,42,197,233,161,9,160,130,4,82,255,54,129,4,42,197,
        42,194,2,193,120,3,232,54,250,232,39,0,255,54,129,4,232,81,248,160,130,4,143,6,129,4,10,192,88,90,117,7,139,30,82,3,233,103,
        1,2,194,254,200,120,3,232,15,250,233,91,1,138,197,2,194,42,193,254,192,138,232,44,3,127,252,4,3,138,200,160,131,4,36,64,117,
        2,138,200,195,232,254,4,180,7,114,2,180,16,232,200,4,91,249,116,9,83,80,232,11,249,90,91,138,230,156,80,139,22,129,4,10,246,
        156,10,210,116,2,254,202,2,242,157,116,9,246,6,131,4,4,117,2,254,206,42,244,138,230,80,120,3,233,78,0,83,80,80,232,225,4,
        88,254,196,117,247,232,191,4,232,142,7,88,80,185,3,0,210,228,232,166,4,114,16,138,196,152,187,178,96,3,216,232,107,5,232,
        85,6,235,14,187,110,96,138,196,152,3,216,232,83,5,232,248,5,88,91,120,17,88,89,254,193,81,80,83,80,232,157,4,88,91,235,2,
        50,228,246,220,160,130,4,2,224,254,196,10,192,116,9,246,6,131,4,4,117,2,254,204,138,236,50,201,88,255,54,129,4,80,136,46,
        130,4,232,94,247,88,10,228,126,5,138,196,232,63,249,88,163,129,4,10,192,117,12,75,138,7,60,46,116,1,67,137,30,82,3,88,157,
        114,21,2,196,138,38,130,4,42,196,10,228,116,9,246,6,131,4,4,117,2,254,192,10,192,232,74,246,139,217,233,71,0,138,224,246,
        196,64,180,3,117,2,50,228,163,131,4,137,14,129,4,138,224,187,180,4,198,7,32,246,196,8,116,3,198,7,43,83,232,182,3,91,121,
        8,198,7,45,83,232,226,5,91,67,198,7,48,232,209,3,161,131,4,139,14,129,4,120,3,233,179,253,233,104,0,83,232,59,248,91,116,
        3,136,47,67,198,7,0,187,179,4,67,139,62,82,3,139,22,129,4,160,130,4,50,228,43,251,43,248,116,67,138,7,60,32,116,230,60,42,
        116,226,180,1,75,83,80,232,234,234,50,228,60,45,116,246,60,43,116,242,60,36,116,238,60,48,117,22,67,232,212,234,115,16,75,
        235,3,75,136,7,88,10,228,116,248,131,196,2,235,179,88,10,228,116,251,91,198,7,37,195,161,131,4,138,204,181,6,208,232,139,
        22,129,4,115,11,83,82,232,69,243,50,192,90,233,63,254,138,198,44,5,120,3,232,38,248,82,232,218,245,88,80,10,192,117,1,75,
        254,200,120,6,232,20,248,198,7,0,143,6,129,4,233,89,255,232,235,2,116,109,121,12,161,163,4,163,11,0,160,165,4,162,13,0,161,
        11,0,46,247,38,107,98,139,248,138,202,46,160,109,98,246,38,11,0,2,200,46,160,13,0,46,246,38,107,98,2,200,50,192,46,139,22,
        110,98,3,215,46,138,30,112,98,18,217,162,167,4,176,128,162,166,4,137,22,11,0,136,30,13,0,176,4,162,251,2,233,187,251,0,0,
        0,187,179,4,185,32,0,3,7,67,67,226,250,36,254,163,11,0,235,161,139,22,11,0,138,30,13,0,51,192,176,128,162,166,4,136,38,167,
        4,233,143,251,83,81,187,158,4,129,7,128,0,185,3,0,115,14,67,67,255,7,117,8,226,248,254,6,166,4,209,31,89,116,32,246,6,158,
        4,255,117,5,128,38,159,4,254,187,165,4,138,7,138,167,2,0,36,127,128,228,128,10,224,136,39,91,195,144,144,144,233,136,251,
        128,228,224,128,196,128,115,28,156,66,117,18,157,254,195,117,19,249,208,219,254,6,166,4,117,10,144,233,106,251,157,117,3,
        128,226,254,86,190,163,4,137,20,70,70,138,62,167,4,129,227,127,128,10,223,136,28,94,195,139,241,232,180,4,139,206,81,232,
        9,2,114,9,128,62,166,4,184,121,15,235,7,128,62,166,4,152,121,6,232,0,2,232,207,4,187,134,4,232,81,4,89,81,191,142,4,187,134,
        4,232,53,4,187,134,4,232,93,4,232,253,1,232,178,4,187,134,4,232,52,4,232,251,1,187,148,4,232,197,1,115,3,131,235,4,232,87,
        4,89,117,4,254,193,235,204,139,233,232,117,4,139,205,195,128,38,165,4,127,232,134,0,232,165,0,198,6,178,4,127,232,163,236,
        232,132,0,235,27,101,237,161,165,4,128,252,119,115,1,195,10,192,121,9,36,127,162,165,4,184,176,125,80,232,91,0,160,166,4,
        10,192,116,5,128,6,166,4,2,232,97,0,161,177,4,128,252,130,156,246,196,1,117,2,168,64,156,232,73,0,157,116,9,187,50,96,232,
        55,2,232,72,236,128,46,166,4,2,115,3,232,0,1,232,3,241,160,166,4,60,116,115,11,186,219,15,187,73,131,232,142,242,235,6,187,
        52,98,232,198,250,157,117,5,128,54,165,4,128,195,187,99,98,232,0,2,232,8,241,232,199,241,232,6,0,232,8,236,233,25,3,232,173,
        3,232,164,247,232,0,2,232,195,3,195,187,50,96,233,222,1,184,240,195,255,54,165,4,255,54,163,4,232,86,255,90,91,255,54,163,
        4,255,54,165,4,232,249,1,232,44,255,91,90,233,17,238,161,165,4,10,192,121,9,191,176,125,87,36,127,162,165,4,128,252,129,114,
        12,191,57,123,87,51,210,187,0,129,232,240,237,186,162,48,187,9,127,232,225,1,120,58,191,66,123,87,255,54,163,4,255,54,165,
        4,186,215,179,187,93,129,232,101,236,91,90,255,54,163,4,255,54,165,4,232,163,1,187,73,98,232,49,250,91,90,255,54,163,4,255,
        54,165,4,232,144,1,91,90,232,171,237,187,82,98,233,6,250,186,219,15,187,73,129,233,37,236,186,146,10,187,6,128,233,40,236,
        232,87,176,60,13,117,3,232,35,177,46,138,7,67,10,192,117,238,195,191,159,4,185,4,0,184,0,0,252,243,171,195,184,0,0,163,163,
        4,163,165,4,195,232,120,231,121,14,161,163,4,11,192,116,32,176,1,121,28,246,216,195,205,212,160,166,4,10,192,116,16,160,165,
        4,10,192,116,7,176,1,121,5,246,216,195,12,1,195,160,251,2,60,8,254,200,254,200,254,200,195,232,241,255,114,12,83,187,106,
        97,232,206,0,232,237,234,91,195,51,210,187,0,128,232,172,235,195,232,215,255,187,42,96,114,17,235,8,232,205,255,187,58,96,
        114,7,232,171,0,232,117,240,195,255,54,165,4,255,54,163,4,198,6,251,2,8,232,156,0,232,112,239,90,91,232,6,241,195,185,4,0,
        209,23,67,67,226,250,195,185,4,0,209,31,75,75,226,250,195,128,143,2,0,32,226,1,195,187,176,4,128,249,8,114,38,81,185,7,0,
        187,170,4,138,39,138,135,1,0,136,7,67,226,247,50,192,136,7,89,128,233,8,128,228,32,116,217,8,38,170,4,233,210,255,10,201,
        116,15,81,248,232,183,255,89,246,135,2,0,16,117,185,226,191,195,190,159,4,191,171,4,252,185,4,0,139,5,165,137,132,254,255,
        226,247,195,191,124,4,185,2,0,235,6,191,120,4,185,4,0,252,46,139,7,171,67,67,226,248,139,223,75,75,195,191,171,4,235,234,
        191,159,4,235,229,191,171,4,185,4,0,135,222,252,243,165,135,222,195,81,83,87,187,159,4,191,171,4,185,4,0,232,233,255,95,91,
        89,195,81,83,87,187,171,4,191,159,4,235,235,137,22,163,4,137,30,165,4,195,139,22,163,4,139,30,165,4,195,232,207,254,114,63,
        233,137,0,232,215,237,83,87,138,195,50,6,165,4,120,60,10,219,120,16,161,165,4,43,195,114,63,117,55,161,163,4,43,194,235,16,
        139,195,43,6,165,4,114,46,117,38,139,194,43,6,163,4,114,36,117,28,50,192,235,74,192,235,71,232,163,237,144,144,139,7,50,6,
        165,4,121,19,138,38,165,4,10,228,120,6,176,1,10,192,235,44,176,255,249,235,39,81,185,2,0,135,222,160,165,4,10,192,121,2,135,
        247,253,167,117,6,226,251,176,0,235,13,115,6,176,1,10,192,235,5,176,255,10,192,249,89,95,91,195,187,177,4,232,86,237,144,
        144,138,5,50,7,121,2,235,179,81,185,4,0,235,196,187,255,97,232,242,254,232,151,255,117,11,198,6,251,2,2,199,6,163,4,0,128,
        195,46,43,150,0,0,46,26,158,2,0,195,232,9,254,120,8,160,165,4,10,192,120,14,195,161,163,4,11,192,120,17,195,232,244,253,120,
        8,205,210,128,54,165,4,128,195,161,163,4,61,0,128,117,10,205,211,83,232,219,237,91,233,230,255,247,30,163,4,195,187,121,4,
        232,51,0,191,151,4,185,8,0,184,0,0,252,243,171,162,120,4,162,170,4,195,232,183,253,114,3,233,162,254,139,23,139,159,2,0,195,
        185,4,0,232,165,253,114,3,233,150,254,185,2,0,233,144,254,185,4,0,135,251,187,159,4,232,143,253,114,3,233,128,254,135,223,
        185,2,0,191,163,4,135,251,233,115,254,185,4,0,191,159,4,232,116,253,114,3,233,101,254,185,2,0,191,163,4,233,92,254,232,99,
        253,114,3,233,29,255,233,205,254,232,88,253,185,4,0,115,3,185,2,0,93,191,165,4,255,53,79,79,226,250,85,195,191,171,4,185,
        4,0,235,17,232,57,253,191,159,4,185,4,0,115,6,191,163,4,185,2,0,88,143,5,71,71,226,250,80,195,232,31,253,121,1,195,205,213,
        114,3,233,180,243,233,27,244,0,0,250,186,96,0,142,218,142,194,142,210,50,192,162,100,4,181,145,187,0,0,186,154,6,139,242,
        46,172,136,7,67,66,254,205,117,244,188,14,7,205,18,250,187,64,0,247,227,140,219,43,195,187,0,0,246,196,240,117,6,177,4,211,
        224,139,216,75,137,30,44,0,139,227,233,34,205,176,44,162,246,1,187,183,0,198,7,58,50,192,162,249,2,162,6,0,162,107,4,162,
        101,4,162,40,0,187,14,3,137,30,12,3,187,122,3,137,30,226,3,139,30,44,0,75,137,30,10,3,75,83,187,14,7,176,4,162,223,4,83,137,
        30,224,4,160,223,4,254,192,2,192,138,208,182,0,3,218,90,135,218,139,30,224,4,136,23,67,136,55,67,160,223,4,185,52,0,10,192,
        116,14,135,218,3,217,135,218,137,23,67,67,254,200,117,242,135,218,3,217,67,83,254,200,162,54,5,139,30,224,4,139,23,187,51,
        0,3,218,137,30,228,4,91,67,137,30,48,0,137,30,69,3,90,138,194,36,254,138,208,138,194,42,195,138,216,138,198,26,199,138,248,
        115,3,233,104,173,177,3,211,235,138,199,60,2,114,3,187,0,2,138,194,42,195,138,216,138,198,26,199,138,248,115,3,233,74,173,
        137,30,10,3,135,218,137,30,44,0,137,30,47,3,139,227,137,30,69,3,139,30,48,0,135,218,232,61,173,43,218,75,75,83,91,232,128,
        229,187,220,127,232,127,251,232,152,172,233,143,195,32,66,121,116,101,115,32,102,114,101,101,0,20,232,165,240,51,201,82,255,
        54,129,4,233,104,246,253,255,3,191,201,27,14,182,0,0] 
        
      • ibm-ega-128kb-lock.xml
        <?xml version="1.0" encoding="UTF-8"?>
        <video id="videoEGA" model="ega" memory="0x20000" screenwidth="640" screenheight="350" autolock="true" pos="center" padding="8px">
        	<menu>
        		<title>Enhanced Color Display</title>
        		<control type="container" pos="right">
        			<control type="led" label="Caps" binding="caps-lock" padleft="8px"/>
        			<control type="led" label="Num" binding="num-lock" padleft="8px"/>
        			<control type="led" label="Scroll" binding="scroll-lock" padleft="8px"/>
        			<control type="button" binding="fullScreen" padleft="8px">Full Screen</control>
        		</control>
        	</menu>
        </video>
        
      • ibm-ega-640-128kb-lock.xml
        <?xml version="1.0" encoding="UTF-8"?>
        <video id="videoEGA" model="ega" memory="0x20000" screenwidth="640" screenheight="350" width="640px" autolock="true" pos="center" padding="8px">
        	<menu>
        		<title>Enhanced Color Display</title>
        		<control type="container" pos="right">
        			<control type="led" label="Caps" binding="caps-lock" padleft="8px"/>
        			<control type="led" label="Num" binding="num-lock" padleft="8px"/>
        			<control type="led" label="Scroll" binding="scroll-lock" padleft="8px"/>
        			<control type="button" binding="lockPointer" padleft="8px">Lock Pointer</control>
        		</control>
        	</menu>
        </video>
        
      • ibm-ega.json
        {"bytes":[
        85,170,32,235,40,50,52,48,48,54,50,55,55,51,53,54,
        32,40,67,41,67,79,80,89,82,73,71,72,84,32,73,66,
        77,32,49,57,56,52,57,47,49,51,47,56,52,182,3,178,
        218,236,178,186,236,178,192,176,0,238,43,210,142,218,250,199,
        6,64,0,215,12,140,14,66,0,199,6,8,1,101,240,199,
        6,10,1,0,240,199,6,168,4,12,1,140,14,170,4,199,
        6,124,0,96,53,140,14,126,0,199,6,12,1,96,49,140,
        14,14,1,251,198,6,135,4,4,232,31,0,136,30,136,4,
        232,75,0,8,6,136,4,138,30,136,4,232,101,0,233,179,
        1,203,238,80,88,236,36,16,208,232,195,182,3,178,194,176,
        1,238,176,13,232,235,255,208,232,208,232,208,232,138,216,176,
        9,232,222,255,208,232,208,232,10,216,176,5,232,211,255,208,
        232,10,216,176,1,232,202,255,10,216,128,227,15,195,182,3,
        178,186,176,1,238,178,218,238,178,194,236,36,96,208,232,138,
        216,178,186,176,2,238,178,218,238,178,194,236,36,96,208,224,
        10,195,195,42,255,128,227,15,209,227,82,182,3,138,230,90,
        128,228,1,254,196,246,212,46,255,167,40,1,23,7,0,192,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,115,1,126,1,126,1,137,1,
        148,1,168,1,188,1,199,1,199,1,210,1,221,1,241,1,
        4,2,4,2,4,2,4,2,128,38,16,4,207,128,14,16,
        4,16,184,1,0,205,16,195,128,38,16,4,207,128,14,16,
        4,32,184,3,0,205,16,195,128,14,16,4,48,184,7,0,
        205,16,195,32,38,135,4,232,206,255,232,235,255,195,32,38,
        135,4,232,211,255,232,224,255,195,32,38,135,4,232,200,255,
        232,213,255,195,182,3,178,194,176,0,238,246,212,8,38,135,
        4,232,196,255,232,161,255,195,182,3,178,194,176,0,238,246,
        212,8,38,135,4,232,176,255,232,157,255,195,32,38,135,4,
        232,165,255,232,130,255,195,32,38,135,4,232,154,255,232,135,
        255,195,32,38,135,4,232,143,255,232,124,255,195,182,3,178,
        194,176,0,238,246,212,8,38,135,4,232,91,255,232,120,255,
        195,182,3,178,194,176,0,238,246,212,8,38,135,4,232,87,
        255,232,100,255,195,83,187,127,0,139,251,80,232,29,0,139,
        240,88,80,232,32,0,88,80,232,17,0,59,199,88,117,3,
        235,5,144,51,192,91,195,184,1,0,91,195,82,139,208,176,
        14,238,66,236,90,195,80,82,139,208,180,14,176,127,232,212,
        10,90,88,195,232,183,10,246,6,135,4,2,117,18,184,180,
        3,232,177,255,61,1,0,116,3,233,187,0,180,48,235,16,
        184,212,3,232,159,255,61,1,0,116,3,233,169,0,180,32,
        80,187,0,176,186,184,3,185,0,16,176,1,128,252,48,116,
        8,183,184,178,216,181,64,254,200,238,139,46,114,4,129,253,
        52,18,142,195,116,7,142,219,232,68,0,117,46,88,80,184,
        32,112,43,255,185,40,0,243,171,88,80,128,252,48,186,186,
        3,116,2,178,218,180,8,43,201,236,34,196,117,4,226,249,
        235,9,43,201,236,34,196,116,10,226,249,186,2,1,232,247,
        3,235,6,177,3,210,236,117,222,88,235,59,185,0,64,252,
        139,217,184,170,170,186,85,255,43,255,243,170,79,253,139,247,
        139,203,172,50,196,117,30,138,194,170,226,246,34,228,116,19,
        138,224,134,242,34,228,117,4,138,212,235,224,252,71,116,222,
        79,235,217,176,0,252,195,131,236,10,139,236,232,223,9,176,
        48,230,67,176,0,230,64,246,6,135,4,2,116,31,232,55,
        254,199,70,2,94,1,199,70,4,153,141,199,70,6,98,184,
        178,180,180,1,176,39,232,204,9,178,186,235,42,232,248,253,
        232,71,11,115,17,178,212,180,1,176,20,232,183,9,199,70,
        2,94,1,235,6,144,199,70,2,200,0,199,70,4,172,160,
        199,70,6,96,196,178,218,184,0,5,205,16,43,201,236,168,
        8,117,7,226,249,179,0,233,190,0,176,0,230,64,43,219,
        51,201,236,168,8,116,7,226,249,179,1,233,170,0,43,201,
        236,168,1,116,21,168,8,117,35,226,245,179,2,233,152,0,
        179,3,233,147,0,179,4,233,142,0,168,8,117,242,236,168,
        1,225,251,227,240,67,116,4,168,8,116,210,176,0,230,67,
        59,94,2,116,4,179,5,235,111,228,64,138,224,144,228,64,
        134,224,144,144,59,70,4,125,4,179,6,235,91,59,70,6,
        126,4,179,7,235,82,184,219,9,187,15,0,185,80,0,205,
        16,236,82,178,192,180,15,176,63,232,9,9,184,15,0,90,
        80,82,178,192,180,50,232,252,8,90,88,43,201,236,168,48,
        117,9,226,249,179,16,10,220,235,30,144,43,201,236,168,48,
        116,8,226,249,179,32,10,220,235,14,254,196,128,252,48,116,
        37,128,204,15,138,196,235,200,185,6,0,186,3,1,232,119,
        2,131,196,10,176,54,230,67,42,192,230,64,144,144,230,64,
        189,1,0,233,43,252,232,149,8,184,0,5,205,16,176,54,
        230,67,42,192,230,64,144,144,230,64,131,196,10,189,0,0,
        30,232,122,8,246,6,135,4,2,116,18,128,14,16,4,48,
        184,15,0,128,14,135,4,96,184,15,0,235,13,128,38,16,
        4,207,128,14,16,4,32,184,14,0,205,16,131,236,6,139,
        236,184,0,160,142,216,142,192,199,70,2,0,0,199,70,4,
        0,0,182,3,178,196,184,1,2,232,73,8,178,206,184,0,
        4,232,65,8,82,178,218,236,178,192,184,0,50,232,53,8,
        232,172,1,128,252,0,116,3,233,226,0,232,235,0,128,252,
        0,116,3,233,215,0,90,178,196,184,2,2,232,22,8,178,
        206,184,1,4,232,14,8,82,178,218,236,178,192,184,0,50,
        232,2,8,199,70,4,0,0,232,116,1,128,252,0,116,3,
        233,170,0,232,179,0,128,252,0,116,3,233,159,0,90,178,
        196,184,4,2,232,222,7,82,178,206,184,2,4,232,213,7,
        178,218,236,178,192,184,0,50,232,202,7,199,70,4,0,0,
        232,60,1,128,252,0,116,3,235,115,144,232,123,0,128,252,
        0,116,3,235,104,144,90,178,196,184,8,2,232,166,7,178,
        206,184,3,4,232,158,7,82,178,218,236,178,192,184,0,50,
        232,146,7,199,70,4,0,0,232,4,1,128,252,0,117,61,
        232,70,0,128,252,0,117,53,85,189,0,0,94,90,232,93,
        7,54,139,92,2,177,6,211,235,75,177,5,211,227,128,227,
        96,128,38,135,4,159,8,30,135,4,128,14,135,4,4,138,
        30,136,4,232,45,251,131,196,6,31,233,196,250,186,3,1,
        232,245,0,85,189,1,0,235,195,187,0,160,142,219,142,195,
        139,70,4,138,232,42,201,209,225,232,15,0,128,252,0,117,
        9,139,70,4,1,70,2,184,0,0,195,85,252,43,255,43,
        192,232,250,6,139,30,114,4,129,251,52,18,140,194,142,218,
        116,98,129,251,33,67,116,92,136,5,138,5,50,196,117,64,
        254,196,138,196,117,242,139,233,184,85,170,139,216,186,170,85,
        243,171,79,79,253,139,247,139,205,173,51,195,117,34,139,194,
        171,226,246,139,205,252,70,70,139,254,173,51,194,117,17,171,
        226,248,253,78,78,139,205,173,11,192,117,4,226,249,235,17,
        139,200,50,228,10,237,116,2,180,1,10,201,116,3,128,196,
        2,93,252,195,80,82,182,3,178,196,184,15,2,232,149,6,
        90,88,243,171,232,119,6,137,30,114,4,142,218,235,226,140,
        218,43,219,142,194,43,255,184,85,170,139,200,38,137,5,176,
        15,38,139,5,51,193,117,20,185,0,32,243,171,129,194,0,
        4,131,195,16,128,254,176,117,218,235,1,144,128,254,160,116,
        6,1,94,4,184,0,0,195,156,250,30,232,48,6,10,246,
        116,11,179,6,232,73,6,226,254,254,206,117,245,179,1,232,
        62,6,226,254,254,202,117,245,226,254,226,254,31,157,195,179,
        14,239,16,87,17,134,17,157,17,164,18,14,21,176,21,210,
        23,153,24,221,24,117,26,203,27,159,28,1,29,133,29,197,
        29,152,31,191,32,24,33,40,24,8,0,8,11,3,0,3,
        35,55,39,45,55,49,21,4,17,0,7,6,7,0,0,0,
        0,225,36,199,20,8,224,240,163,255,0,1,2,3,4,5,
        6,7,16,17,18,19,20,21,22,23,8,0,15,0,0,0,
        0,0,0,16,14,0,255,40,24,8,0,8,11,3,0,3,
        35,55,39,45,55,49,21,4,17,0,7,6,7,0,0,0,
        0,225,36,199,20,8,224,240,163,255,0,1,2,3,4,5,
        6,7,16,17,18,19,20,21,22,23,8,0,15,0,0,0,
        0,0,0,16,14,0,255,80,24,8,0,16,1,3,0,3,
        35,112,79,92,47,95,7,4,17,0,7,6,7,0,0,0,
        0,225,36,199,40,8,224,240,163,255,0,1,2,3,4,5,
        6,7,16,17,18,19,20,21,22,23,8,0,15,0,0,0,
        0,0,0,16,14,0,255,80,24,8,0,16,1,3,0,3,
        35,112,79,92,47,95,7,4,17,0,7,6,7,0,0,0,
        0,225,36,199,40,8,224,240,163,255,0,1,2,3,4,5,
        6,7,16,17,18,19,20,21,22,23,8,0,15,0,0,0,
        0,0,0,16,14,0,255,40,24,8,0,64,11,3,0,2,
        35,55,39,45,55,48,20,4,17,0,1,0,0,0,0,0,
        0,225,36,199,20,0,224,240,162,255,0,19,21,23,2,4,
        6,7,16,17,18,19,20,21,22,23,1,0,3,0,0,0,
        0,0,0,48,15,0,255,40,24,8,0,64,11,3,0,2,
        35,55,39,45,55,48,20,4,17,0,1,0,0,0,0,0,
        0,225,36,199,20,0,224,240,162,255,0,19,21,23,2,4,
        6,7,16,17,18,19,20,21,22,23,1,0,3,0,0,0,
        0,0,0,48,15,0,255,80,24,8,0,64,1,1,0,6,
        35,112,79,89,45,94,6,4,17,0,1,0,0,0,0,0,
        0,224,35,199,40,0,223,239,194,255,0,23,23,23,23,23,
        23,23,23,23,23,23,23,23,23,23,1,0,1,0,0,0,
        0,0,0,0,13,0,255,80,24,14,0,16,0,3,0,3,
        166,96,79,86,58,81,96,112,31,0,13,11,12,0,0,0,
        0,94,46,93,40,13,94,110,163,255,0,8,8,8,8,8,
        8,8,16,24,24,24,24,24,24,24,14,0,15,8,0,0,
        0,0,0,16,10,0,255,40,24,8,0,64,0,0,0,3,
        35,55,39,45,55,49,21,4,17,0,7,6,7,0,0,0,
        0,225,36,199,20,8,224,240,163,255,0,1,2,3,4,5,
        6,7,16,17,18,19,20,21,22,23,8,0,15,0,0,0,
        0,0,0,16,14,0,255,40,24,8,0,64,0,0,0,3,
        35,55,39,45,55,49,21,4,17,0,7,6,7,0,0,0,
        0,225,36,199,20,8,224,240,163,255,0,1,2,3,4,5,
        6,7,16,17,18,19,20,21,22,23,8,0,15,0,0,0,
        0,0,0,16,14,0,255,40,24,8,0,64,0,0,0,3,
        35,55,39,45,55,49,21,4,17,0,7,6,7,0,0,0,
        0,225,36,199,20,8,224,240,163,255,0,1,2,3,4,5,
        6,7,16,17,18,19,20,21,22,23,8,0,15,0,0,0,
        0,0,0,16,14,0,255,80,24,8,0,16,1,4,0,7,
        35,112,79,92,47,95,7,4,17,0,7,6,7,0,0,0,
        0,225,36,199,40,8,224,240,163,255,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,
        0,0,0,0,4,0,255,80,24,14,0,16,0,4,0,7,
        166,96,79,86,58,81,96,112,31,0,13,11,12,0,0,0,
        0,94,46,93,40,13,94,110,163,255,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,14,0,15,8,0,0,
        0,0,0,0,4,0,255,40,24,8,0,32,11,15,0,6,
        35,55,39,45,55,48,20,4,17,0,0,0,0,0,0,0,
        0,225,36,199,20,0,224,240,227,255,0,1,2,3,4,5,
        6,7,16,17,18,19,20,21,22,23,1,0,15,0,0,0,
        0,0,0,0,5,15,255,80,24,8,0,64,1,15,0,6,
        35,112,79,89,45,94,6,4,17,0,0,0,0,0,0,0,
        0,224,35,199,40,0,223,239,227,255,0,1,2,3,4,5,
        6,7,16,17,18,19,20,21,22,23,1,0,15,0,0,0,
        0,0,0,0,5,15,255,80,24,14,0,128,5,15,0,0,
        162,96,79,86,26,80,224,112,31,0,0,0,0,0,0,0,
        0,94,46,93,20,13,94,110,139,255,0,8,0,0,24,24,
        0,0,0,8,0,0,0,24,0,0,11,0,5,0,0,0,
        0,0,0,16,7,15,255,80,24,14,0,128,5,15,0,0,
        167,91,79,83,23,80,186,108,31,0,0,0,0,0,0,0,
        0,94,43,93,20,15,95,10,139,255,0,1,0,0,4,7,
        0,0,0,1,0,0,4,7,0,0,1,0,5,0,0,0,
        0,0,0,16,7,15,255,80,24,14,0,128,1,15,0,6,
        162,96,79,86,58,80,96,112,31,0,0,0,0,0,0,0,
        0,94,46,93,40,13,94,110,227,255,0,8,0,0,24,24,
        0,0,0,8,0,0,0,24,0,0,11,0,5,0,0,0,
        0,0,0,0,5,15,255,80,24,14,0,128,1,15,0,6,
        167,91,79,83,55,82,0,108,31,0,0,0,0,0,0,0,
        0,94,43,93,40,15,95,10,227,255,0,1,2,3,4,5,
        20,7,56,57,58,59,60,61,62,63,1,0,15,0,0,0,
        0,0,0,0,5,15,255,40,24,14,0,8,11,3,0,3,
        167,45,39,43,45,40,109,108,31,0,13,6,7,0,0,0,
        0,94,43,93,20,15,94,10,163,255,0,1,2,3,4,5,
        20,7,56,57,58,59,60,61,62,63,8,0,15,0,0,0,
        0,0,0,16,14,0,255,40,24,14,0,8,11,3,0,3,
        167,45,39,43,45,40,109,108,31,0,13,6,7,0,0,0,
        0,94,43,93,20,15,94,10,163,255,0,1,2,3,4,5,
        20,7,56,57,58,59,60,61,62,63,8,0,15,0,0,0,
        0,0,0,16,14,0,255,80,24,14,0,16,1,3,0,3,
        167,91,79,83,55,81,91,108,31,0,13,6,7,0,0,0,
        0,94,43,93,40,15,94,10,163,255,0,1,2,3,4,5,
        20,7,56,57,58,59,60,61,62,63,8,0,15,0,0,0,
        0,0,0,16,14,0,255,80,24,14,0,16,1,3,0,3,
        167,91,79,83,55,81,91,108,31,0,13,6,7,0,0,0,
        0,94,43,93,40,15,94,10,163,255,0,1,2,3,4,5,
        20,7,56,57,58,59,60,61,62,63,8,0,15,0,0,0,
        0,0,0,16,14,0,255,251,252,85,6,30,82,81,83,86,
        87,80,138,196,50,228,209,224,139,240,61,40,0,114,6,88,
        205,66,233,169,20,232,6,0,88,46,255,164,239,6,80,43,
        192,142,216,88,195,30,232,245,255,139,22,99,4,128,226,240,
        128,202,10,31,195,134,196,238,66,134,196,238,74,195,238,195,
        82,186,67,0,176,182,232,245,255,184,51,5,74,232,238,255,
        138,196,232,233,255,186,97,0,236,138,224,12,3,232,222,255,
        43,201,226,254,254,203,117,250,138,196,232,209,255,90,195,232,
        172,255,196,30,168,4,38,196,31,195,81,82,232,240,255,138,
        38,73,4,246,6,135,4,96,116,24,128,252,15,117,7,129,
        195,64,4,235,51,144,128,252,16,117,7,129,195,128,4,235,
        39,144,128,252,3,119,20,160,136,4,36,15,60,3,116,7,
        60,9,116,3,235,5,144,129,195,192,4,138,14,73,4,42,
        237,227,5,131,195,64,226,251,90,89,195,232,172,255,131,195,
        5,182,3,178,196,184,1,0,250,232,89,255,38,138,7,254,
        196,232,81,255,254,196,67,38,138,7,232,72,255,128,252,5,
        114,242,38,138,7,67,178,194,238,178,196,184,3,0,232,52,
        255,251,139,22,99,4,42,228,38,138,7,232,39,255,67,254,
        196,128,252,25,114,242,38,139,71,241,134,224,163,96,4,139,
        243,232,1,255,236,178,192,42,228,38,138,7,134,224,238,134,
        224,238,67,254,196,128,252,20,114,239,176,0,238,30,6,196,
        62,168,4,38,196,125,4,140,192,11,199,116,9,31,30,185,
        16,0,243,164,70,164,7,31,178,204,176,0,238,178,202,176,
        1,238,178,206,42,228,38,138,7,232,201,254,67,254,196,128,
        252,9,114,242,195,160,135,4,168,128,117,57,186,0,184,160,
        73,4,60,6,118,10,186,0,176,60,7,116,3,186,0,160,
        187,32,7,60,4,114,6,60,7,116,2,43,219,142,194,139,
        14,76,4,227,16,185,0,128,128,254,160,116,2,181,64,139,
        195,43,255,243,171,195,232,30,15,195,80,30,232,95,254,160,
        136,4,31,36,15,60,3,116,7,60,9,116,3,88,248,195,
        88,249,195,250,199,6,12,1,96,49,140,14,14,1,251,128,
        38,135,4,243,80,246,6,135,4,2,116,44,161,16,4,36,
        48,60,48,116,72,198,6,132,4,24,199,6,133,4,8,0,
        88,128,14,135,4,8,60,1,118,9,60,4,115,5,128,14,
        135,4,4,205,66,233,166,18,161,16,4,36,48,60,48,117,
        64,198,6,132,4,24,199,6,133,4,14,0,88,205,66,199,
        6,96,4,12,11,128,14,135,4,8,233,129,18,88,80,182,
        3,36,128,128,38,135,4,127,8,6,135,4,88,36,127,60,
        15,116,2,176,7,162,73,4,178,180,137,22,99,4,235,28,
        144,88,80,182,3,36,128,128,38,135,4,127,8,6,135,4,
        88,36,127,162,73,4,178,212,137,22,99,4,199,6,78,4,
        0,0,198,6,98,4,0,185,8,0,191,80,4,30,7,43,
        192,243,171,232,228,253,38,138,7,42,228,163,74,4,38,138,
        71,1,162,132,4,38,138,71,2,42,228,163,133,4,38,139,
        71,3,163,76,4,43,219,176,1,138,38,73,4,128,252,7,
        116,12,128,252,3,119,53,232,240,254,114,2,176,2,232,253,
        14,232,74,253,138,38,73,4,128,252,7,116,3,235,29,144,
        189,48,48,187,0,14,14,7,38,139,86,0,11,210,116,12,
        185,1,0,69,232,31,15,131,197,14,235,234,232,204,253,232,
        115,254,232,177,254,232,22,253,128,62,73,4,15,114,6,199,
        6,12,1,48,34,128,62,73,4,7,119,9,116,75,128,62,
        73,4,3,118,68,196,30,168,4,131,195,12,38,196,31,140,
        192,11,195,116,50,190,7,0,38,138,0,60,255,116,122,58,
        6,73,4,116,3,70,235,240,250,38,138,7,254,200,162,132,
        4,38,139,71,1,163,133,4,38,139,71,3,163,12,1,38,
        139,71,5,163,14,1,251,235,80,196,30,168,4,131,195,8,
        38,196,31,140,192,11,195,116,64,190,11,0,38,138,0,60,
        255,116,54,58,6,73,4,116,3,70,235,240,38,138,39,38,
        138,71,1,38,139,79,2,38,139,87,4,38,139,111,6,38,
        142,71,8,83,139,216,184,16,17,205,16,91,38,138,71,10,
        60,255,116,5,254,200,162,132,4,232,98,252,128,62,73,4,
        7,119,30,187,200,16,160,73,4,42,228,3,216,46,138,7,
        162,101,4,176,48,128,62,73,4,6,117,2,176,63,162,102,
        4,139,14,96,4,235,40,144,44,40,45,41,42,46,30,41,
        128,253,0,117,4,254,193,235,10,254,193,58,14,133,4,114,
        2,42,201,81,42,205,128,249,16,89,117,2,254,193,195,180,
        10,137,14,96,4,246,6,135,4,8,117,51,138,197,36,96,
        60,32,117,5,185,0,30,235,38,246,6,135,4,1,117,31,
        128,62,73,4,3,119,21,232,128,253,115,16,128,253,4,118,
        3,128,197,5,128,249,4,118,3,128,193,5,232,161,255,232,
        3,0,233,105,16,139,22,99,4,138,197,232,215,251,254,196,
        138,193,232,208,251,195,83,139,216,138,196,246,38,74,4,50,
        255,3,195,209,224,91,195,232,3,0,233,65,16,138,207,50,
        237,209,225,139,241,137,148,80,4,56,62,98,4,117,5,139,
        194,232,1,0,195,232,206,255,139,200,3,14,78,4,209,249,
        180,14,232,176,255,195,138,223,50,255,209,227,139,151,80,4,
        139,14,96,4,95,94,91,88,88,31,7,93,207,160,73,4,
        60,7,119,55,246,6,135,4,2,116,7,60,7,116,44,235,
        5,144,60,6,118,37,205,66,95,94,131,196,6,31,7,93,
        207,6,6,7,7,5,5,4,5,0,0,0,0,0,5,6,
        4,4,4,4,6,6,4,7,4,7,4,139,22,99,4,131,
        194,6,236,168,4,180,0,116,3,233,165,0,168,2,117,3,
        233,168,0,180,16,139,22,99,4,138,196,238,66,80,236,138,
        232,88,74,254,196,138,196,238,66,236,138,229,138,30,73,4,
        42,255,46,138,159,193,17,43,195,139,30,78,4,209,235,43,
        195,121,2,43,192,177,3,128,62,73,4,4,114,77,128,62,
        73,4,7,116,70,128,62,73,4,6,119,40,117,2,209,232,
        178,40,246,242,138,232,2,237,138,220,42,255,128,62,73,4,
        6,117,4,177,4,208,228,211,227,138,212,138,240,208,238,208,
        238,235,44,144,153,247,54,74,4,139,218,211,227,139,200,82,
        153,247,54,133,4,90,138,240,235,21,144,246,54,74,4,138,
        240,138,212,138,220,50,255,211,227,246,38,133,4,139,200,180,
        1,82,139,22,99,4,131,194,7,238,90,95,94,131,196,6,
        31,7,93,207,162,98,4,139,14,76,4,152,80,247,225,163,
        78,4,139,200,138,30,73,4,128,251,7,119,2,209,249,180,
        12,232,113,254,91,209,227,139,135,80,4,232,167,254,233,205,
        14,80,138,230,42,229,254,196,58,224,88,117,2,42,192,195,
        83,30,232,25,250,139,30,74,4,31,81,138,202,42,237,86,
        87,243,164,95,94,3,243,3,251,89,226,238,91,195,83,30,
        232,251,249,139,30,74,4,31,81,138,202,42,237,86,87,243,
        164,95,94,43,243,43,251,89,226,238,91,195,82,182,3,178,
        196,184,15,2,232,238,249,90,43,192,138,202,42,237,87,243,
        170,95,138,198,82,182,3,178,196,180,2,232,215,249,90,176,
        255,138,202,87,243,170,95,195,182,3,178,196,184,15,2,232,
        195,249,195,30,232,167,249,138,247,42,255,80,82,139,195,247,
        38,133,4,139,216,90,88,31,232,177,255,30,232,143,249,3,
        62,74,4,31,75,117,241,232,206,255,195,30,232,127,249,138,
        247,42,255,80,82,139,195,247,38,133,4,139,216,90,88,31,
        232,137,255,30,232,103,249,43,62,74,4,31,75,117,241,232,
        166,255,195,138,216,232,67,3,128,252,4,114,8,128,252,7,
        116,3,233,191,0,83,139,193,232,55,0,116,49,3,240,138,
        230,42,227,232,108,0,3,245,3,253,254,204,117,245,88,176,
        32,232,103,0,3,253,254,203,117,247,232,33,249,128,62,73,
        4,7,116,7,160,101,4,186,216,3,238,233,176,13,138,222,
        235,220,246,6,135,4,4,116,18,82,182,3,178,218,80,236,
        168,8,116,251,176,37,178,216,238,88,90,232,56,253,3,6,
        78,4,139,248,139,240,43,209,254,198,254,194,50,237,139,46,
        74,4,3,237,138,195,246,38,74,4,3,192,6,31,128,251,
        0,195,138,202,86,87,243,165,95,94,195,138,202,87,243,171,
        95,195,253,138,216,232,163,2,83,139,194,232,164,255,116,32,
        43,240,138,230,42,227,232,217,255,43,245,43,253,254,204,117,
        245,88,176,32,232,212,255,43,253,254,203,117,247,233,106,255,
        138,222,235,237,138,216,139,193,232,44,2,139,248,43,209,129,
        194,1,1,208,230,208,230,128,62,73,4,6,115,4,208,226,
        209,231,6,31,42,237,208,227,208,227,116,45,138,195,180,80,
        246,228,139,247,3,240,138,230,42,227,232,32,0,129,238,176,
        31,129,239,176,31,254,204,117,241,138,199,232,40,0,129,239,
        176,31,254,203,117,245,233,213,12,138,222,235,236,138,202,86,
        87,243,164,95,94,129,198,0,32,129,199,0,32,86,87,138,
        202,243,164,95,94,195,138,202,87,243,170,95,129,199,0,32,
        87,138,202,243,170,95,195,80,30,232,2,248,138,38,135,4,
        128,228,96,31,88,116,2,249,195,248,195,233,149,254,232,192,
        253,138,38,73,4,128,252,7,118,241,128,252,13,115,23,233,
        124,12,186,0,160,189,17,5,128,252,15,114,8,232,199,255,
        115,3,189,1,5,195,82,232,232,255,142,194,90,138,216,139,
        193,83,138,62,98,4,232,125,1,91,139,248,43,209,129,194,
        1,1,42,228,138,195,82,247,38,133,4,247,38,74,4,139,
        247,3,240,6,31,90,10,219,116,63,138,206,42,203,42,237,
        30,232,138,247,80,82,139,193,247,38,133,4,139,200,90,88,
        31,82,139,197,182,3,178,206,232,138,247,178,196,184,15,2,
        232,130,247,90,232,73,253,82,77,139,197,182,3,178,206,232,
        115,247,90,232,173,253,233,245,11,138,222,235,246,233,146,254,
        232,30,253,138,38,73,4,128,252,3,118,241,128,252,7,116,
        236,128,252,13,115,12,128,252,6,119,4,180,7,205,66,233,
        204,11,253,138,216,82,232,73,255,142,194,90,139,194,254,196,
        83,138,62,98,4,232,222,0,91,43,6,74,4,139,248,43,
        209,129,194,1,1,42,228,138,195,82,247,38,133,4,247,38,
        74,4,139,247,43,240,6,31,90,10,219,116,64,138,206,42,
        203,42,237,30,232,231,246,80,82,139,193,247,38,133,4,139,
        200,90,88,31,82,139,197,182,3,178,206,232,231,246,178,196,
        184,15,2,232,223,246,90,232,196,252,82,77,139,197,182,3,
        178,206,232,208,246,90,232,50,253,252,233,81,11,138,222,235,
        245,138,207,50,237,139,241,209,230,139,132,80,4,51,219,227,
        6,3,30,76,4,226,250,232,220,250,3,216,195,128,227,3,
        138,195,81,185,3,0,208,224,208,224,10,216,226,248,138,251,
        89,195,82,81,83,43,210,185,1,0,139,216,35,217,11,211,
        209,224,209,225,139,216,35,217,11,211,209,225,115,236,139,194,
        91,89,90,195,161,80,4,83,139,216,138,196,246,38,74,4,
        209,224,209,224,42,255,3,195,91,195,83,138,223,42,255,209,
        227,139,135,80,4,91,83,81,82,42,237,138,207,139,216,138,
        196,246,38,74,4,247,38,133,4,42,255,3,195,139,30,76,
        4,227,4,3,195,226,252,90,89,91,195,190,0,184,139,62,
        16,4,129,231,48,0,131,255,48,117,3,190,0,176,142,198,
        195,232,231,255,232,74,255,139,243,139,22,99,4,131,194,6,
        246,6,135,4,4,6,31,116,11,236,168,1,117,251,250,236,
        168,1,116,251,173,233,118,10,138,36,138,68,1,185,0,192,
        178,0,133,193,248,116,1,249,208,210,209,233,209,233,115,242,
        136,86,0,69,195,232,163,255,232,89,255,139,240,131,236,8,
        139,236,128,62,73,4,6,6,31,114,26,182,4,138,4,136,
        70,0,69,138,132,0,32,136,70,0,69,131,198,80,254,206,
        117,235,235,23,144,209,230,182,4,232,172,255,129,198,0,32,
        232,165,255,129,238,176,31,254,206,117,238,30,232,111,245,196,
        62,12,1,31,131,237,8,139,245,252,176,0,22,31,186,128,
        0,86,87,185,8,0,243,166,95,94,116,29,254,192,131,199,
        8,74,117,237,60,0,116,17,232,67,245,196,62,124,0,140,
        192,11,199,116,4,176,128,235,211,131,196,8,233,207,9,233,
        47,255,138,38,73,4,128,252,7,116,244,128,252,3,118,239,
        128,252,6,119,3,233,93,255,128,252,15,114,82,232,7,253,
        114,77,235,10,128,252,13,115,70,176,0,233,160,9,186,0,
        160,142,194,232,180,254,139,240,139,30,133,4,43,227,139,236,
        83,36,1,138,200,176,5,210,224,180,7,182,3,178,206,232,
        243,244,184,24,5,232,237,244,38,138,4,246,208,136,70,0,
        69,3,54,74,4,75,117,240,91,184,16,5,235,50,144,186,
        0,160,142,194,232,115,254,139,240,139,30,133,4,43,227,139,
        236,182,3,178,206,184,8,5,232,186,244,83,38,138,4,246,
        208,136,70,0,69,3,54,74,4,75,117,240,91,184,0,5,
        232,162,244,196,62,12,1,43,235,139,245,252,176,0,22,31,
        186,0,1,86,87,139,203,243,166,95,94,116,7,254,192,3,
        251,74,117,239,3,227,233,5,9,232,98,244,138,38,73,4,
        128,252,4,114,8,128,252,7,116,3,235,116,144,232,59,254,
        138,227,80,81,232,154,253,139,251,89,91,139,22,99,4,131,
        194,6,246,6,135,4,4,116,11,236,168,1,117,251,250,236,
        168,1,116,251,139,195,171,251,226,232,233,193,8,232,30,244,
        138,38,73,4,128,252,4,114,8,128,252,7,116,3,235,48,
        144,232,247,253,80,81,232,88,253,139,251,89,91,139,22,99,
        4,131,194,6,246,6,135,4,4,116,11,236,168,1,117,251,
        250,236,168,1,116,251,138,195,170,251,71,226,231,233,126,8,
        128,252,7,114,3,233,175,0,232,192,253,180,0,80,232,115,
        253,139,248,88,60,128,115,6,197,54,12,1,235,6,44,128,
        197,54,124,0,209,224,209,224,209,224,3,240,30,232,174,243,
        128,62,73,4,6,31,114,44,87,86,182,4,172,246,195,128,
        117,22,170,172,38,136,133,255,31,131,199,79,254,206,117,236,
        94,95,71,226,227,233,38,8,38,50,5,170,172,38,50,133,
        255,31,235,224,138,211,209,231,232,226,252,87,86,182,4,172,
        232,239,252,35,195,246,194,128,116,7,38,50,37,38,50,69,
        1,38,136,37,38,136,69,1,172,232,214,252,35,195,246,194,
        128,116,10,38,50,165,0,32,38,50,133,1,32,38,136,165,
        0,32,38,136,133,1,32,131,199,80,254,206,117,193,94,95,
        71,71,226,183,233,199,7,128,252,15,114,14,232,24,251,114,
        9,128,227,133,138,227,208,228,10,220,42,228,247,38,133,4,
        80,232,198,252,139,248,139,46,133,4,186,0,160,142,194,197,
        54,12,1,88,3,240,182,3,246,195,128,116,11,178,206,184,
        24,3,232,0,243,235,30,144,87,178,196,184,15,2,232,244,
        242,43,192,81,139,205,30,232,212,242,170,3,62,74,4,79,
        226,248,31,89,95,178,196,180,2,138,195,232,215,242,87,83,
        81,139,221,30,232,183,242,139,14,74,4,31,138,4,38,138,
        37,38,136,5,70,3,249,75,117,242,89,91,43,245,95,71,
        226,166,178,206,184,0,3,232,171,242,178,196,184,15,2,232,
        163,242,233,41,7,128,62,99,4,180,116,9,246,6,135,4,
        2,116,5,205,66,233,22,7,43,192,139,232,196,62,168,4,
        131,199,4,38,196,61,140,192,11,199,116,1,69,232,32,3,
        10,255,117,101,138,251,160,102,4,36,224,128,227,31,10,195,
        162,102,4,138,223,128,231,8,208,231,138,232,128,229,239,10,
        237,128,227,15,138,251,208,227,128,227,16,128,231,7,10,223,
        160,73,4,60,3,118,14,180,0,138,195,232,193,2,11,237,
        116,3,38,136,29,128,62,73,4,3,119,5,232,171,243,114,
        7,180,17,138,195,232,167,2,11,237,116,4,38,136,93,16,
        138,221,128,227,32,177,5,210,235,128,62,73,4,3,118,74,
        160,102,4,36,223,128,227,1,116,2,12,32,162,102,4,36,
        16,12,2,10,216,180,1,138,195,232,115,2,11,237,116,4,
        38,136,93,1,254,195,254,195,180,2,138,195,232,96,2,11,
        237,116,4,38,136,93,2,254,195,254,195,180,3,138,195,232,
        77,2,11,237,116,4,38,136,93,3,232,90,2,233,62,6,
        247,38,74,4,81,209,233,209,233,209,233,3,193,138,223,42,
        255,139,203,139,30,76,4,227,4,3,195,226,252,89,139,216,
        128,225,7,176,128,210,232,195,83,80,176,40,82,128,226,254,
        246,226,90,246,194,1,116,3,5,0,32,139,240,88,139,209,
        187,192,2,185,2,3,128,62,73,4,6,114,6,187,128,1,
        185,3,7,34,234,211,234,3,242,138,247,42,201,208,200,2,
        205,254,207,117,248,138,227,210,236,91,195,128,62,73,4,7,
        119,42,82,186,0,184,142,194,90,80,80,232,170,255,210,232,
        34,196,38,138,12,91,246,195,128,117,13,246,212,34,204,10,
        193,38,136,4,88,233,166,5,50,193,235,245,128,62,73,4,
        15,114,13,232,241,248,114,8,36,133,138,224,208,228,10,196,
        80,139,194,232,74,255,182,3,178,206,180,8,232,246,240,82,
        186,0,160,142,194,90,88,138,232,246,197,128,116,10,180,3,
        176,24,232,224,240,235,18,144,178,196,180,2,176,255,232,212,
        240,38,138,7,42,192,38,136,7,178,196,180,2,138,197,36,
        15,232,193,240,38,138,7,176,255,38,136,7,232,182,240,178,
        206,180,3,42,192,232,173,240,180,8,176,255,232,166,240,233,
        44,5,80,82,186,0,160,142,194,90,88,139,194,232,224,254,
        181,7,42,233,43,210,176,0,195,138,205,180,4,82,182,3,
        178,206,232,128,240,90,38,138,39,210,236,128,228,1,195,128,
        62,73,4,7,119,24,82,186,0,184,142,194,90,232,216,254,
        38,138,4,34,196,210,224,138,206,210,192,233,224,4,128,62,
        73,4,15,114,37,232,47,248,114,32,232,165,255,232,185,255,
        10,212,208,228,10,212,176,2,232,174,255,208,228,208,228,10,
        212,208,228,10,212,138,194,233,180,4,232,133,255,232,153,255,
        138,200,210,228,10,212,254,192,60,3,118,241,138,194,233,157,
        4,80,138,62,98,4,83,138,223,50,255,209,227,139,151,80,
        4,91,60,13,116,92,60,10,116,92,60,8,116,76,60,7,
        116,92,180,10,185,1,0,205,16,254,194,58,22,74,4,117,
        53,42,210,58,54,132,4,117,43,232,33,244,160,73,4,60,
        4,114,6,42,255,60,7,117,6,180,8,205,16,138,252,184,
        1,6,43,201,138,54,132,4,138,22,74,4,254,202,205,16,
        88,233,58,4,254,198,180,2,235,244,10,210,116,248,254,202,
        235,244,42,210,235,240,58,54,132,4,117,232,235,187,179,2,
        232,157,239,235,219,138,38,74,4,138,62,98,4,160,135,4,
        36,128,10,6,73,4,95,94,89,89,90,31,7,93,207,80,
        232,98,239,250,236,168,8,116,251,88,178,192,134,196,238,134,
        196,238,176,32,238,251,195,232,6,0,178,192,176,32,238,195,
        232,66,239,236,195,246,6,135,4,2,117,7,128,62,99,4,
        180,116,51,138,224,10,228,117,48,43,237,196,62,168,4,131,
        199,4,38,196,61,140,192,11,199,116,1,69,232,209,255,138,
        227,138,199,232,169,255,232,190,255,11,237,116,9,138,199,42,
        255,3,251,38,136,5,233,149,3,254,204,117,45,43,237,196,
        62,168,4,131,199,4,38,196,61,140,192,11,199,116,1,69,
        232,157,255,180,17,138,199,232,117,255,232,138,255,11,237,116,
        213,131,199,17,38,136,61,233,100,3,254,204,117,64,30,6,
        196,62,168,4,131,199,4,38,196,61,140,192,11,199,116,9,
        31,30,139,242,185,17,0,243,164,7,31,139,218,232,96,255,
        42,228,38,138,7,232,55,255,254,196,67,128,252,16,114,242,
        254,196,38,138,7,232,39,255,232,60,255,233,32,3,254,204,
        117,41,83,232,212,238,131,195,51,38,138,7,91,10,219,117,
        10,128,38,101,4,223,36,247,235,12,144,254,203,117,7,128,
        14,101,4,32,12,8,180,16,232,244,254,233,240,2,80,85,
        83,81,82,6,232,71,238,160,73,4,80,60,7,116,7,198,
        6,73,4,11,235,5,198,6,73,4,12,232,221,238,232,45,
        238,88,162,73,4,7,90,89,91,93,88,10,192,116,23,14,
        7,43,210,185,0,1,254,200,117,7,183,14,189,48,34,235,
        5,183,8,189,96,49,6,31,82,186,0,160,142,194,90,81,
        177,5,211,226,89,10,219,116,8,129,194,0,64,254,203,117,
        248,138,199,42,228,139,250,139,245,227,13,81,139,200,243,164,
        43,248,131,199,32,89,226,243,195,232,210,237,163,133,4,139,
        22,99,4,128,62,73,4,7,117,5,180,20,232,214,237,254,
        200,180,9,232,207,237,254,200,138,232,138,200,254,193,180,1,
        205,16,138,30,73,4,184,94,1,128,251,3,119,8,232,57,
        239,114,3,184,200,0,153,247,54,133,4,72,162,132,4,254,
        192,42,228,247,38,133,4,72,139,22,99,4,180,18,232,148,
        237,160,132,4,254,192,246,38,74,4,209,224,5,0,1,163,
        76,4,232,1,239,233,6,2,60,16,115,55,60,3,115,23,
        232,11,255,232,5,238,232,237,238,232,82,237,139,14,96,4,
        180,1,205,16,233,231,1,117,23,182,3,178,196,184,1,0,
        232,82,237,180,3,138,195,232,75,237,184,3,0,232,69,237,
        233,203,1,60,32,115,38,44,16,60,2,119,243,80,83,232,
        204,254,232,198,237,91,88,138,224,10,228,138,199,116,9,176,
        8,128,252,1,117,2,176,14,42,228,233,44,255,60,48,115,
        106,44,32,117,17,43,210,142,218,250,137,46,124,0,140,6,
        126,0,251,233,136,1,82,43,210,142,218,90,60,3,119,243,
        254,200,116,20,14,7,254,200,117,8,185,14,0,189,48,34,
        235,6,185,8,0,189,96,49,250,137,46,12,1,140,6,14,
        1,251,232,185,236,137,14,133,4,138,195,187,103,32,10,192,
        117,5,138,194,235,9,144,60,3,118,2,176,2,46,215,254,
        200,162,132,4,233,55,1,0,14,25,43,60,48,116,3,233,
        44,1,139,14,133,4,138,22,132,4,128,255,7,119,240,128,
        255,1,119,24,82,43,210,142,218,90,10,255,117,7,196,46,
        124,0,235,26,144,196,46,12,1,235,19,144,128,239,2,138,
        223,42,255,209,227,129,195,183,32,46,139,47,14,7,95,94,
        91,88,88,31,88,88,207,48,34,96,49,96,53,48,48,128,
        251,16,114,81,116,27,128,251,32,116,3,233,208,0,43,210,
        142,218,250,199,6,20,0,167,33,140,14,22,0,251,233,189,
        0,138,62,135,4,128,231,2,208,239,160,135,4,36,96,177,
        5,210,232,138,216,138,14,136,4,138,233,128,225,15,208,237,
        208,237,208,237,208,237,128,229,15,95,94,90,90,90,31,7,
        93,207,233,137,0,233,134,0,60,4,115,249,227,247,83,138,
        223,42,255,209,227,139,183,80,4,91,86,80,184,0,2,205,
        16,88,81,83,80,134,224,38,138,70,0,69,60,13,116,61,
        60,10,116,57,60,8,116,53,60,7,116,49,185,1,0,128,
        252,2,114,5,38,138,94,0,69,180,9,205,16,254,194,58,
        22,74,4,114,17,58,54,132,4,117,7,184,10,14,205,16,
        254,206,254,198,42,210,184,0,2,205,16,235,14,180,14,205,
        16,138,223,42,255,209,227,139,151,80,4,88,91,89,226,162,
        90,60,1,116,9,60,3,116,5,184,0,2,205,16,95,94,
        91,89,90,31,7,93,207,251,30,80,83,81,82,232,78,235,
        128,62,0,5,1,116,99,198,6,0,5,1,180,15,205,16,
        138,204,138,46,132,4,254,197,232,85,0,81,180,3,205,16,
        89,82,51,210,180,2,205,16,180,8,205,16,10,192,117,2,
        176,32,82,51,210,50,228,205,23,90,246,196,41,117,33,254,
        194,58,202,117,223,50,210,138,226,82,232,35,0,90,254,198,
        58,238,117,208,90,180,2,205,16,198,6,0,5,0,235,10,
        90,180,2,205,16,198,6,0,5,255,90,89,91,88,31,207,
        51,210,50,228,176,13,205,23,50,228,176,10,205,23,195,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        126,129,165,129,129,189,153,129,126,0,0,0,0,0,126,255,
        219,255,255,195,231,255,126,0,0,0,0,0,0,108,254,254,
        254,254,124,56,16,0,0,0,0,0,0,16,56,124,254,124,
        56,16,0,0,0,0,0,0,24,60,60,231,231,231,24,24,
        60,0,0,0,0,0,24,60,126,255,255,126,24,24,60,0,
        0,0,0,0,0,0,0,24,60,60,24,0,0,0,0,0,
        255,255,255,255,255,231,195,195,231,255,255,255,255,255,0,0,
        0,0,60,102,66,66,102,60,0,0,0,0,255,255,255,255,
        195,153,189,189,153,195,255,255,255,255,0,0,30,14,26,50,
        120,204,204,204,120,0,0,0,0,0,60,102,102,102,60,24,
        126,24,24,0,0,0,0,0,63,51,63,48,48,48,112,240,
        224,0,0,0,0,0,127,99,127,99,99,99,103,231,230,192,
        0,0,0,0,24,24,219,60,231,60,219,24,24,0,0,0,
        0,0,128,192,224,248,254,248,224,192,128,0,0,0,0,0,
        2,6,14,62,254,62,14,6,2,0,0,0,0,0,24,60,
        126,24,24,24,126,60,24,0,0,0,0,0,102,102,102,102,
        102,102,0,102,102,0,0,0,0,0,127,219,219,219,123,27,
        27,27,27,0,0,0,0,124,198,96,56,108,198,198,108,56,
        12,198,124,0,0,0,0,0,0,0,0,0,254,254,254,0,
        0,0,0,0,24,60,126,24,24,24,126,60,24,126,0,0,
        0,0,24,60,126,24,24,24,24,24,24,0,0,0,0,0,
        24,24,24,24,24,24,126,60,24,0,0,0,0,0,0,0,
        24,12,254,12,24,0,0,0,0,0,0,0,0,0,48,96,
        254,96,48,0,0,0,0,0,0,0,0,0,0,192,192,192,
        254,0,0,0,0,0,0,0,0,0,40,108,254,108,40,0,
        0,0,0,0,0,0,0,16,56,56,124,124,254,254,0,0,
        0,0,0,0,0,254,254,124,124,56,56,16,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        24,60,60,60,24,24,0,24,24,0,0,0,0,102,102,102,
        36,0,0,0,0,0,0,0,0,0,0,0,108,108,254,108,
        108,108,254,108,108,0,0,0,24,24,124,198,194,192,124,6,
        134,198,124,24,24,0,0,0,0,0,194,198,12,24,48,102,
        198,0,0,0,0,0,56,108,108,56,118,220,204,204,118,0,
        0,0,0,48,48,48,96,0,0,0,0,0,0,0,0,0,
        0,0,12,24,48,48,48,48,48,24,12,0,0,0,0,0,
        48,24,12,12,12,12,12,24,48,0,0,0,0,0,0,0,
        102,60,255,60,102,0,0,0,0,0,0,0,0,0,24,24,
        126,24,24,0,0,0,0,0,0,0,0,0,0,0,0,0,
        24,24,24,48,0,0,0,0,0,0,0,0,254,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,24,24,0,
        0,0,0,0,2,6,12,24,48,96,192,128,0,0,0,0,
        0,0,124,198,206,222,246,230,198,198,124,0,0,0,0,0,
        24,56,120,24,24,24,24,24,126,0,0,0,0,0,124,198,
        6,12,24,48,96,198,254,0,0,0,0,0,124,198,6,6,
        60,6,6,198,124,0,0,0,0,0,12,28,60,108,204,254,
        12,12,30,0,0,0,0,0,254,192,192,192,252,6,6,198,
        124,0,0,0,0,0,56,96,192,192,252,198,198,198,124,0,
        0,0,0,0,254,198,6,12,24,48,48,48,48,0,0,0,
        0,0,124,198,198,198,124,198,198,198,124,0,0,0,0,0,
        124,198,198,198,126,6,6,12,120,0,0,0,0,0,0,24,
        24,0,0,0,24,24,0,0,0,0,0,0,0,24,24,0,
        0,0,24,24,48,0,0,0,0,0,6,12,24,48,96,48,
        24,12,6,0,0,0,0,0,0,0,0,126,0,0,126,0,
        0,0,0,0,0,0,96,48,24,12,6,12,24,48,96,0,
        0,0,0,0,124,198,198,12,24,24,0,24,24,0,0,0,
        0,0,124,198,198,222,222,222,220,192,124,0,0,0,0,0,
        16,56,108,198,198,254,198,198,198,0,0,0,0,0,252,102,
        102,102,124,102,102,102,252,0,0,0,0,0,60,102,194,192,
        192,192,194,102,60,0,0,0,0,0,248,108,102,102,102,102,
        102,108,248,0,0,0,0,0,254,102,98,104,120,104,98,102,
        254,0,0,0,0,0,254,102,98,104,120,104,96,96,240,0,
        0,0,0,0,60,102,194,192,192,222,198,102,58,0,0,0,
        0,0,198,198,198,198,254,198,198,198,198,0,0,0,0,0,
        60,24,24,24,24,24,24,24,60,0,0,0,0,0,30,12,
        12,12,12,12,204,204,120,0,0,0,0,0,230,102,108,108,
        120,108,108,102,230,0,0,0,0,0,240,96,96,96,96,96,
        98,102,254,0,0,0,0,0,198,238,254,254,214,198,198,198,
        198,0,0,0,0,0,198,230,246,254,222,206,198,198,198,0,
        0,0,0,0,56,108,198,198,198,198,198,108,56,0,0,0,
        0,0,252,102,102,102,124,96,96,96,240,0,0,0,0,0,
        124,198,198,198,198,214,222,124,12,14,0,0,0,0,252,102,
        102,102,124,108,102,102,230,0,0,0,0,0,124,198,198,96,
        56,12,198,198,124,0,0,0,0,0,126,126,90,24,24,24,
        24,24,60,0,0,0,0,0,198,198,198,198,198,198,198,198,
        124,0,0,0,0,0,198,198,198,198,198,198,108,56,16,0,
        0,0,0,0,198,198,198,198,214,214,254,124,108,0,0,0,
        0,0,198,198,108,56,56,56,108,198,198,0,0,0,0,0,
        102,102,102,102,60,24,24,24,60,0,0,0,0,0,254,198,
        140,24,48,96,194,198,254,0,0,0,0,0,60,48,48,48,
        48,48,48,48,60,0,0,0,0,0,128,192,224,112,56,28,
        14,6,2,0,0,0,0,0,60,12,12,12,12,12,12,12,
        60,0,0,0,16,56,108,198,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,
        48,48,24,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,120,12,124,204,204,118,0,0,0,0,0,224,96,
        96,120,108,102,102,102,124,0,0,0,0,0,0,0,0,124,
        198,192,192,198,124,0,0,0,0,0,28,12,12,60,108,204,
        204,204,118,0,0,0,0,0,0,0,0,124,198,254,192,198,
        124,0,0,0,0,0,56,108,100,96,240,96,96,96,240,0,
        0,0,0,0,0,0,0,118,204,204,204,124,12,204,120,0,
        0,0,224,96,96,108,118,102,102,102,230,0,0,0,0,0,
        24,24,0,56,24,24,24,24,60,0,0,0,0,0,6,6,
        0,14,6,6,6,6,102,102,60,0,0,0,224,96,96,102,
        108,120,108,102,230,0,0,0,0,0,56,24,24,24,24,24,
        24,24,60,0,0,0,0,0,0,0,0,236,254,214,214,214,
        198,0,0,0,0,0,0,0,0,220,102,102,102,102,102,0,
        0,0,0,0,0,0,0,124,198,198,198,198,124,0,0,0,
        0,0,0,0,0,220,102,102,102,124,96,96,240,0,0,0,
        0,0,0,118,204,204,204,124,12,12,30,0,0,0,0,0,
        0,220,118,102,96,96,240,0,0,0,0,0,0,0,0,124,
        198,112,28,198,124,0,0,0,0,0,16,48,48,252,48,48,
        48,54,28,0,0,0,0,0,0,0,0,204,204,204,204,204,
        118,0,0,0,0,0,0,0,0,102,102,102,102,60,24,0,
        0,0,0,0,0,0,0,198,198,214,214,254,108,0,0,0,
        0,0,0,0,0,198,108,56,56,108,198,0,0,0,0,0,
        0,0,0,198,198,198,198,126,6,12,248,0,0,0,0,0,
        0,254,204,24,48,102,254,0,0,0,0,0,14,24,24,24,
        112,24,24,24,14,0,0,0,0,0,24,24,24,24,0,24,
        24,24,24,0,0,0,0,0,112,24,24,24,14,24,24,24,
        112,0,0,0,0,0,118,220,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,16,56,108,198,198,254,0,0,0,0,
        0,0,60,102,194,192,192,194,102,60,12,6,124,0,0,0,
        204,204,0,204,204,204,204,204,118,0,0,0,0,12,24,48,
        0,124,198,254,192,198,124,0,0,0,0,16,56,108,0,120,
        12,124,204,204,118,0,0,0,0,0,204,204,0,120,12,124,
        204,204,118,0,0,0,0,96,48,24,0,120,12,124,204,204,
        118,0,0,0,0,56,108,56,0,120,12,124,204,204,118,0,
        0,0,0,0,0,0,60,102,96,102,60,12,6,60,0,0,
        0,16,56,108,0,124,198,254,192,198,124,0,0,0,0,0,
        204,204,0,124,198,254,192,198,124,0,0,0,0,96,48,24,
        0,124,198,254,192,198,124,0,0,0,0,0,102,102,0,56,
        24,24,24,24,60,0,0,0,0,24,60,102,0,56,24,24,
        24,24,60,0,0,0,0,96,48,24,0,56,24,24,24,24,
        60,0,0,0,0,198,198,16,56,108,198,198,254,198,198,0,
        0,0,56,108,56,0,56,108,198,198,254,198,198,0,0,0,
        24,48,96,0,254,102,96,124,96,102,254,0,0,0,0,0,
        0,0,204,118,54,126,216,216,110,0,0,0,0,0,62,108,
        204,204,254,204,204,204,206,0,0,0,0,16,56,108,0,124,
        198,198,198,198,124,0,0,0,0,0,198,198,0,124,198,198,
        198,198,124,0,0,0,0,96,48,24,0,124,198,198,198,198,
        124,0,0,0,0,48,120,204,0,204,204,204,204,204,118,0,
        0,0,0,96,48,24,0,204,204,204,204,204,118,0,0,0,
        0,0,198,198,0,198,198,198,198,126,6,12,120,0,0,198,
        198,56,108,198,198,198,198,108,56,0,0,0,0,198,198,0,
        198,198,198,198,198,198,124,0,0,0,0,24,24,60,102,96,
        96,102,60,24,24,0,0,0,0,56,108,100,96,240,96,96,
        96,230,252,0,0,0,0,0,102,102,60,24,126,24,126,24,
        24,0,0,0,0,248,204,204,248,196,204,222,204,204,198,0,
        0,0,0,14,27,24,24,24,126,24,24,24,24,216,112,0,
        0,24,48,96,0,120,12,124,204,204,118,0,0,0,0,12,
        24,48,0,56,24,24,24,24,60,0,0,0,0,24,48,96,
        0,124,198,198,198,198,124,0,0,0,0,24,48,96,0,204,
        204,204,204,204,118,0,0,0,0,0,118,220,0,220,102,102,
        102,102,102,0,0,0,118,220,0,198,230,246,254,222,206,198,
        198,0,0,0,0,60,108,108,62,0,126,0,0,0,0,0,
        0,0,0,56,108,108,56,0,124,0,0,0,0,0,0,0,
        0,0,48,48,0,48,48,96,198,198,124,0,0,0,0,0,
        0,0,0,0,254,192,192,192,0,0,0,0,0,0,0,0,
        0,0,254,6,6,6,0,0,0,0,0,192,192,198,204,216,
        48,96,220,134,12,24,62,0,0,192,192,198,204,216,48,102,
        206,158,62,6,6,0,0,0,24,24,0,24,24,60,60,60,
        24,0,0,0,0,0,0,0,54,108,216,108,54,0,0,0,
        0,0,0,0,0,0,216,108,54,108,216,0,0,0,0,0,
        17,68,17,68,17,68,17,68,17,68,17,68,17,68,85,170,
        85,170,85,170,85,170,85,170,85,170,85,170,221,119,221,119,
        221,119,221,119,221,119,221,119,221,119,24,24,24,24,24,24,
        24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,248,
        24,24,24,24,24,24,24,24,24,24,24,248,24,248,24,24,
        24,24,24,24,54,54,54,54,54,54,54,246,54,54,54,54,
        54,54,0,0,0,0,0,0,0,254,54,54,54,54,54,54,
        0,0,0,0,0,248,24,248,24,24,24,24,24,24,54,54,
        54,54,54,246,6,246,54,54,54,54,54,54,54,54,54,54,
        54,54,54,54,54,54,54,54,54,54,0,0,0,0,0,254,
        6,246,54,54,54,54,54,54,54,54,54,54,54,246,6,254,
        0,0,0,0,0,0,54,54,54,54,54,54,54,254,0,0,
        0,0,0,0,24,24,24,24,24,248,24,248,0,0,0,0,
        0,0,0,0,0,0,0,0,0,248,24,24,24,24,24,24,
        24,24,24,24,24,24,24,31,0,0,0,0,0,0,24,24,
        24,24,24,24,24,255,0,0,0,0,0,0,0,0,0,0,
        0,0,0,255,24,24,24,24,24,24,24,24,24,24,24,24,
        24,31,24,24,24,24,24,24,0,0,0,0,0,0,0,255,
        0,0,0,0,0,0,24,24,24,24,24,24,24,255,24,24,
        24,24,24,24,24,24,24,24,24,31,24,31,24,24,24,24,
        24,24,54,54,54,54,54,54,54,55,54,54,54,54,54,54,
        54,54,54,54,54,55,48,63,0,0,0,0,0,0,0,0,
        0,0,0,63,48,55,54,54,54,54,54,54,54,54,54,54,
        54,247,0,255,0,0,0,0,0,0,0,0,0,0,0,255,
        0,247,54,54,54,54,54,54,54,54,54,54,54,55,48,55,
        54,54,54,54,54,54,0,0,0,0,0,255,0,255,0,0,
        0,0,0,0,54,54,54,54,54,247,0,247,54,54,54,54,
        54,54,24,24,24,24,24,255,0,255,0,0,0,0,0,0,
        54,54,54,54,54,54,54,255,0,0,0,0,0,0,0,0,
        0,0,0,255,0,255,24,24,24,24,24,24,0,0,0,0,
        0,0,0,255,54,54,54,54,54,54,54,54,54,54,54,54,
        54,63,0,0,0,0,0,0,24,24,24,24,24,31,24,31,
        0,0,0,0,0,0,0,0,0,0,0,31,24,31,24,24,
        24,24,24,24,0,0,0,0,0,0,0,63,54,54,54,54,
        54,54,54,54,54,54,54,54,54,255,54,54,54,54,54,54,
        24,24,24,24,24,255,24,255,24,24,24,24,24,24,24,24,
        24,24,24,24,24,248,0,0,0,0,0,0,0,0,0,0,
        0,0,0,31,24,24,24,24,24,24,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,255,
        255,255,255,255,255,255,240,240,240,240,240,240,240,240,240,240,
        240,240,240,240,15,15,15,15,15,15,15,15,15,15,15,15,
        15,15,255,255,255,255,255,255,255,0,0,0,0,0,0,0,
        0,0,0,0,0,118,220,216,216,220,118,0,0,0,0,0,
        0,0,124,198,252,198,198,252,192,192,64,0,0,0,254,198,
        198,192,192,192,192,192,192,0,0,0,0,0,0,0,254,108,
        108,108,108,108,108,0,0,0,0,0,254,198,96,48,24,48,
        96,198,254,0,0,0,0,0,0,0,0,126,216,216,216,216,
        112,0,0,0,0,0,0,0,102,102,102,102,124,96,96,192,
        0,0,0,0,0,0,118,220,24,24,24,24,24,0,0,0,
        0,0,126,24,60,102,102,102,60,24,126,0,0,0,0,0,
        56,108,198,198,254,198,198,108,56,0,0,0,0,0,56,108,
        198,198,198,108,108,108,238,0,0,0,0,0,30,48,24,12,
        62,102,102,102,60,0,0,0,0,0,0,0,0,126,219,219,
        126,0,0,0,0,0,0,0,3,6,126,219,219,243,126,96,
        192,0,0,0,0,0,28,48,96,96,124,96,96,48,28,0,
        0,0,0,0,0,124,198,198,198,198,198,198,198,0,0,0,
        0,0,0,254,0,0,254,0,0,254,0,0,0,0,0,0,
        0,24,24,126,24,24,0,0,255,0,0,0,0,0,48,24,
        12,6,12,24,48,0,126,0,0,0,0,0,12,24,48,96,
        48,24,12,0,126,0,0,0,0,0,14,27,27,24,24,24,
        24,24,24,24,24,24,24,24,24,24,24,24,24,24,216,216,
        112,0,0,0,0,0,0,24,24,0,126,0,24,24,0,0,
        0,0,0,0,0,0,118,220,0,118,220,0,0,0,0,0,
        0,56,108,108,56,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,24,24,0,0,0,0,0,0,0,0,0,0,
        0,0,0,24,0,0,0,0,0,0,0,15,12,12,12,12,
        12,236,108,60,28,0,0,0,0,216,108,108,108,108,108,0,
        0,0,0,0,0,0,0,112,216,48,96,200,248,0,0,0,
        0,0,0,0,0,0,0,0,124,124,124,124,124,124,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        29,0,0,0,0,36,102,255,102,36,0,0,0,0,0,34,
        0,99,99,99,34,0,0,0,0,0,0,0,0,0,43,0,
        0,0,24,24,24,255,24,24,24,0,0,0,0,45,0,0,
        0,0,0,0,255,0,0,0,0,0,0,0,77,0,0,195,
        231,255,219,195,195,195,195,195,0,0,0,84,0,0,255,219,
        153,24,24,24,24,24,60,0,0,0,86,0,0,195,195,195,
        195,195,195,102,60,24,0,0,0,87,0,0,195,195,195,195,
        219,219,255,102,102,0,0,0,88,0,0,195,195,102,60,24,
        60,102,195,195,0,0,0,89,0,0,195,195,195,102,60,24,
        24,24,60,0,0,0,90,0,0,255,195,134,12,24,48,97,
        195,255,0,0,0,109,0,0,0,0,0,230,255,219,219,219,
        219,0,0,0,118,0,0,0,0,0,195,195,195,102,60,24,
        0,0,0,119,0,0,0,0,0,195,195,219,219,255,102,0,
        0,0,145,0,0,0,0,110,59,27,126,216,220,119,0,0,
        0,155,0,24,24,126,195,192,192,195,126,24,24,0,0,0,
        157,0,0,195,102,60,24,255,24,255,24,24,0,0,0,158,
        0,252,102,102,124,98,102,111,102,102,243,0,0,0,241,0,
        0,24,24,24,255,24,24,24,0,255,0,0,0,246,0,0,
        24,24,0,0,255,0,0,24,24,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,126,129,165,129,189,153,129,126,
        126,255,219,255,195,231,255,126,108,254,254,254,124,56,16,0,
        16,56,124,254,124,56,16,0,56,124,56,254,254,124,56,124,
        16,16,56,124,254,124,56,124,0,0,24,60,60,24,0,0,
        255,255,231,195,195,231,255,255,0,60,102,66,66,102,60,0,
        255,195,153,189,189,153,195,255,15,7,15,125,204,204,204,120,
        60,102,102,102,60,24,126,24,63,51,63,48,48,112,240,224,
        127,99,127,99,99,103,230,192,153,90,60,231,231,60,90,153,
        128,224,248,254,248,224,128,0,2,14,62,254,62,14,2,0,
        24,60,126,24,24,126,60,24,102,102,102,102,102,0,102,0,
        127,219,219,123,27,27,27,0,62,99,56,108,108,56,204,120,
        0,0,0,0,126,126,126,0,24,60,126,24,126,60,24,255,
        24,60,126,24,24,24,24,0,24,24,24,24,126,60,24,0,
        0,24,12,254,12,24,0,0,0,48,96,254,96,48,0,0,
        0,0,192,192,192,254,0,0,0,36,102,255,102,36,0,0,
        0,24,60,126,255,255,0,0,0,255,255,126,60,24,0,0,
        0,0,0,0,0,0,0,0,48,120,120,48,48,0,48,0,
        108,108,108,0,0,0,0,0,108,108,254,108,254,108,108,0,
        48,124,192,120,12,248,48,0,0,198,204,24,48,102,198,0,
        56,108,56,118,220,204,118,0,96,96,192,0,0,0,0,0,
        24,48,96,96,96,48,24,0,96,48,24,24,24,48,96,0,
        0,102,60,255,60,102,0,0,0,48,48,252,48,48,0,0,
        0,0,0,0,0,48,48,96,0,0,0,252,0,0,0,0,
        0,0,0,0,0,48,48,0,6,12,24,48,96,192,128,0,
        124,198,206,222,246,230,124,0,48,112,48,48,48,48,252,0,
        120,204,12,56,96,204,252,0,120,204,12,56,12,204,120,0,
        28,60,108,204,254,12,30,0,252,192,248,12,12,204,120,0,
        56,96,192,248,204,204,120,0,252,204,12,24,48,48,48,0,
        120,204,204,120,204,204,120,0,120,204,204,124,12,24,112,0,
        0,48,48,0,0,48,48,0,0,48,48,0,0,48,48,96,
        24,48,96,192,96,48,24,0,0,0,252,0,0,252,0,0,
        96,48,24,12,24,48,96,0,120,204,12,24,48,0,48,0,
        124,198,222,222,222,192,120,0,48,120,204,204,252,204,204,0,
        252,102,102,124,102,102,252,0,60,102,192,192,192,102,60,0,
        248,108,102,102,102,108,248,0,254,98,104,120,104,98,254,0,
        254,98,104,120,104,96,240,0,60,102,192,192,206,102,62,0,
        204,204,204,252,204,204,204,0,120,48,48,48,48,48,120,0,
        30,12,12,12,204,204,120,0,230,102,108,120,108,102,230,0,
        240,96,96,96,98,102,254,0,198,238,254,254,214,198,198,0,
        198,230,246,222,206,198,198,0,56,108,198,198,198,108,56,0,
        252,102,102,124,96,96,240,0,120,204,204,204,220,120,28,0,
        252,102,102,124,108,102,230,0,120,204,224,112,28,204,120,0,
        252,180,48,48,48,48,120,0,204,204,204,204,204,204,252,0,
        204,204,204,204,204,120,48,0,198,198,198,214,254,238,198,0,
        198,198,108,56,56,108,198,0,204,204,204,120,48,48,120,0,
        254,198,140,24,50,102,254,0,120,96,96,96,96,96,120,0,
        192,96,48,24,12,6,2,0,120,24,24,24,24,24,120,0,
        16,56,108,198,0,0,0,0,0,0,0,0,0,0,0,255,
        48,48,24,0,0,0,0,0,0,0,120,12,124,204,118,0,
        224,96,96,124,102,102,220,0,0,0,120,204,192,204,120,0,
        28,12,12,124,204,204,118,0,0,0,120,204,252,192,120,0,
        56,108,96,240,96,96,240,0,0,0,118,204,204,124,12,248,
        224,96,108,118,102,102,230,0,48,0,112,48,48,48,120,0,
        12,0,12,12,12,204,204,120,224,96,102,108,120,108,230,0,
        112,48,48,48,48,48,120,0,0,0,204,254,254,214,198,0,
        0,0,248,204,204,204,204,0,0,0,120,204,204,204,120,0,
        0,0,220,102,102,124,96,240,0,0,118,204,204,124,12,30,
        0,0,220,118,102,96,240,0,0,0,124,192,120,12,248,0,
        16,48,124,48,48,52,24,0,0,0,204,204,204,204,118,0,
        0,0,204,204,204,120,48,0,0,0,198,214,254,254,108,0,
        0,0,198,108,56,108,198,0,0,0,204,204,204,124,12,248,
        0,0,252,152,48,100,252,0,28,48,48,224,48,48,28,0,
        24,24,24,0,24,24,24,0,224,48,48,28,48,48,224,0,
        118,220,0,0,0,0,0,0,0,16,56,108,198,198,254,0,
        120,204,192,204,120,24,12,120,0,204,0,204,204,204,126,0,
        28,0,120,204,252,192,120,0,126,195,60,6,62,102,63,0,
        204,0,120,12,124,204,126,0,224,0,120,12,124,204,126,0,
        48,48,120,12,124,204,126,0,0,0,120,192,192,120,12,56,
        126,195,60,102,126,96,60,0,204,0,120,204,252,192,120,0,
        224,0,120,204,252,192,120,0,204,0,112,48,48,48,120,0,
        124,198,56,24,24,24,60,0,224,0,112,48,48,48,120,0,
        198,56,108,198,254,198,198,0,48,48,0,120,204,252,204,0,
        28,0,252,96,120,96,252,0,0,0,127,12,127,204,127,0,
        62,108,204,254,204,204,206,0,120,204,0,120,204,204,120,0,
        0,204,0,120,204,204,120,0,0,224,0,120,204,204,120,0,
        120,204,0,204,204,204,126,0,0,224,0,204,204,204,126,0,
        0,204,0,204,204,124,12,248,195,24,60,102,102,60,24,0,
        204,0,204,204,204,204,120,0,24,24,126,192,192,126,24,24,
        56,108,100,240,96,230,252,0,204,204,120,252,48,252,48,48,
        248,204,204,250,198,207,198,199,14,27,24,60,24,24,216,112,
        28,0,120,12,124,204,126,0,56,0,112,48,48,48,120,0,
        0,28,0,120,204,204,120,0,0,28,0,204,204,204,126,0,
        0,248,0,248,204,204,204,0,252,0,204,236,252,220,204,0,
        60,108,108,62,0,126,0,0,56,108,108,56,0,124,0,0,
        48,0,48,96,192,204,120,0,0,0,0,252,192,192,0,0,
        0,0,0,252,12,12,0,0,195,198,204,222,51,102,204,15,
        195,198,204,219,55,111,207,3,24,24,0,24,24,24,24,0,
        0,51,102,204,102,51,0,0,0,204,102,51,102,204,0,0,
        34,136,34,136,34,136,34,136,85,170,85,170,85,170,85,170,
        219,119,219,238,219,119,219,238,24,24,24,24,24,24,24,24,
        24,24,24,24,248,24,24,24,24,24,248,24,248,24,24,24,
        54,54,54,54,246,54,54,54,0,0,0,0,254,54,54,54,
        0,0,248,24,248,24,24,24,54,54,246,6,246,54,54,54,
        54,54,54,54,54,54,54,54,0,0,254,6,246,54,54,54,
        54,54,246,6,254,0,0,0,54,54,54,54,254,0,0,0,
        24,24,248,24,248,0,0,0,0,0,0,0,248,24,24,24,
        24,24,24,24,31,0,0,0,24,24,24,24,255,0,0,0,
        0,0,0,0,255,24,24,24,24,24,24,24,31,24,24,24,
        0,0,0,0,255,0,0,0,24,24,24,24,255,24,24,24,
        24,24,31,24,31,24,24,24,54,54,54,54,55,54,54,54,
        54,54,55,48,63,0,0,0,0,0,63,48,55,54,54,54,
        54,54,247,0,255,0,0,0,0,0,255,0,247,54,54,54,
        54,54,55,48,55,54,54,54,0,0,255,0,255,0,0,0,
        54,54,247,0,247,54,54,54,24,24,255,0,255,0,0,0,
        54,54,54,54,255,0,0,0,0,0,255,0,255,24,24,24,
        0,0,0,0,255,54,54,54,54,54,54,54,63,0,0,0,
        24,24,31,24,31,0,0,0,0,0,31,24,31,24,24,24,
        0,0,0,0,63,54,54,54,54,54,54,54,255,54,54,54,
        24,24,255,24,255,24,24,24,24,24,24,24,248,0,0,0,
        0,0,0,0,31,24,24,24,255,255,255,255,255,255,255,255,
        0,0,0,0,255,255,255,255,240,240,240,240,240,240,240,240,
        15,15,15,15,15,15,15,15,255,255,255,255,0,0,0,0,
        0,0,118,220,200,220,118,0,0,120,204,248,204,248,192,192,
        0,252,204,192,192,192,192,0,0,254,108,108,108,108,108,0,
        252,204,96,48,96,204,252,0,0,0,126,216,216,216,112,0,
        0,102,102,102,102,124,96,192,0,118,220,24,24,24,24,0,
        252,48,120,204,204,120,48,252,56,108,198,254,198,108,56,0,
        56,108,198,198,108,108,238,0,28,48,24,124,204,204,120,0,
        0,0,126,219,219,126,0,0,6,12,126,219,219,126,96,192,
        56,96,192,248,192,96,56,0,120,204,204,204,204,204,204,0,
        0,252,0,252,0,252,0,0,48,48,252,48,48,0,252,0,
        96,48,24,48,96,0,252,0,24,48,96,48,24,0,252,0,
        14,27,27,24,24,24,24,24,24,24,24,24,24,216,216,112,
        48,48,0,252,0,48,48,0,0,118,220,0,118,220,0,0,
        56,108,108,56,0,0,0,0,0,0,0,24,24,0,0,0,
        0,0,0,0,24,0,0,0,15,12,12,12,236,108,60,28,
        120,108,108,108,108,0,0,0,112,24,48,96,120,0,0,0,
        0,0,60,60,60,60,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,70]
        ,"symbols":{"VIDEO_SETUP":{"o":3},"POR_1":{"o":146},"RD_SWS":{"o":155},"F_BTS":{"o":206},"MK_ENV":{"o":243},"ENV_X":{"o":328,"c":"SET 40x25 COLOR ALPHA"}}}
      • ibm-mda-cga.json
        [0,0,0,0,0,0,0,0,0,0,126,129,165,129,129,189,0,0,126,255,219,255,255,195,0,0,0,54,127,127,127,127,0,0,0,8,28,62,127,62,0,0,
        24,60,60,231,231,231,0,0,24,60,126,255,255,126,0,0,0,0,0,24,60,60,255,255,255,255,255,231,195,195,0,0,0,0,60,102,66,66,255,
        255,255,255,195,153,189,189,0,0,15,7,13,25,60,102,0,0,60,102,102,102,60,24,0,0,63,51,63,48,48,48,0,0,127,99,127,99,99,99,
        0,0,24,24,219,60,231,60,0,0,64,96,112,124,127,124,0,0,1,3,7,31,127,31,0,0,24,60,126,24,24,24,0,0,51,51,51,51,51,51,0,0,127,
        219,219,219,123,27,0,62,99,48,28,54,99,99,0,0,0,0,0,0,0,0,0,0,24,60,126,24,24,24,0,0,24,60,126,24,24,24,0,0,24,24,24,24,24,
        24,0,0,0,0,12,6,127,6,0,0,0,0,24,48,127,48,0,0,0,0,0,96,96,96,0,0,0,0,36,102,255,102,0,0,0,8,28,28,62,62,0,0,0,127,127,62,
        62,28,0,0,0,0,0,0,0,0,0,0,24,60,60,60,24,24,0,99,99,99,34,0,0,0,0,0,54,54,127,54,54,54,12,12,62,99,97,96,62,3,0,0,0,0,97,
        99,6,12,0,0,28,54,54,28,59,110,0,48,48,48,96,0,0,0,0,0,12,24,48,48,48,48,0,0,24,12,6,6,6,6,0,0,0,0,102,60,255,60,0,0,0,24,
        24,24,255,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,1,3,6,12,24,48,0,0,62,99,103,111,123,115,0,0,12,28,60,
        12,12,12,0,0,62,99,3,6,12,24,0,0,62,99,3,3,30,3,0,0,6,14,30,54,102,127,0,0,127,96,96,96,126,3,0,0,28,48,96,96,126,99,0,0,
        127,99,3,6,12,24,0,0,62,99,99,99,62,99,0,0,62,99,99,99,63,3,0,0,0,24,24,0,0,0,0,0,0,24,24,0,0,0,0,0,6,12,24,48,96,48,0,0,
        0,0,0,126,0,0,0,0,96,48,24,12,6,12,0,0,62,99,99,6,12,12,0,0,62,99,99,111,111,111,0,0,8,28,54,99,99,127,0,0,126,51,51,51,62,
        51,0,0,30,51,97,96,96,96,0,0,124,54,51,51,51,51,0,0,127,51,49,52,60,52,0,0,127,51,49,52,60,52,0,0,30,51,97,96,96,111,0,0,
        99,99,99,99,127,99,0,0,60,24,24,24,24,24,0,0,15,6,6,6,6,6,0,0,115,51,54,54,60,54,0,0,120,48,48,48,48,48,0,0,195,231,255,219,
        195,195,0,0,99,115,123,127,111,103,0,0,28,54,99,99,99,99,0,0,126,51,51,51,62,48,0,0,62,99,99,99,99,107,0,0,126,51,51,51,62,
        54,0,0,62,99,99,48,28,6,0,0,255,219,153,24,24,24,0,0,99,99,99,99,99,99,0,0,195,195,195,195,195,195,0,0,195,195,195,195,219,
        219,0,0,195,195,102,60,24,60,0,0,195,195,195,102,60,24,0,0,255,195,134,12,24,48,0,0,60,48,48,48,48,48,0,0,64,96,112,56,28,
        14,0,0,60,12,12,12,12,12,8,28,54,99,0,0,0,0,0,0,0,0,0,0,0,0,24,24,12,0,0,0,0,0,0,0,0,0,0,60,6,62,0,0,112,48,48,60,54,51,0,
        0,0,0,0,62,99,96,0,0,14,6,6,30,54,102,0,0,0,0,0,62,99,127,0,0,28,54,50,48,124,48,0,0,0,0,0,59,102,102,0,0,112,48,48,54,59,
        51,0,0,12,12,0,28,12,12,0,0,6,6,0,14,6,6,0,0,112,48,48,51,54,60,0,0,28,12,12,12,12,12,0,0,0,0,0,230,255,219,0,0,0,0,0,110,
        51,51,0,0,0,0,0,62,99,99,0,0,0,0,0,110,51,51,0,0,0,0,0,59,102,102,0,0,0,0,0,110,59,51,0,0,0,0,0,62,99,56,0,0,8,24,24,126,
        24,24,0,0,0,0,0,102,102,102,0,0,0,0,0,195,195,195,0,0,0,0,0,195,195,219,0,0,0,0,0,99,54,28,0,0,0,0,0,99,99,99,0,0,0,0,0,127,
        102,12,0,0,14,24,24,24,112,24,0,0,24,24,24,24,0,24,0,0,112,24,24,24,14,24,0,0,59,110,0,0,0,0,0,0,0,0,8,28,54,99,0,0,30,51,
        97,96,96,97,0,0,102,102,0,102,102,102,0,6,12,24,0,62,99,127,0,8,28,54,0,60,6,62,0,0,102,102,0,60,6,62,0,48,24,12,0,60,6,62,
        0,28,54,28,0,60,6,62,0,0,0,0,60,102,96,102,0,8,28,54,0,62,99,127,0,0,102,102,0,62,99,127,0,48,24,12,0,62,99,127,0,0,102,102,
        0,56,24,24,0,24,60,102,0,56,24,24,0,96,48,24,0,56,24,24,0,99,99,8,28,54,99,99,28,54,28,0,28,54,99,99,12,24,48,0,127,51,48,
        62,0,0,0,0,110,59,27,126,0,0,31,54,102,102,127,102,0,8,28,54,0,62,99,99,0,0,99,99,0,62,99,99,0,48,24,12,0,62,99,99,0,24,60,
        102,0,102,102,102,0,48,24,12,0,102,102,102,0,0,99,99,0,99,99,99,0,99,99,28,54,99,99,99,0,99,99,0,99,99,99,99,0,24,24,126,
        195,192,192,195,0,28,54,50,48,120,48,48,0,0,195,102,60,24,255,24,0,252,102,102,124,98,102,111,0,14,27,24,24,24,126,24,0,12,
        24,48,0,60,6,62,0,12,24,48,0,56,24,24,0,12,24,48,0,62,99,99,0,12,24,48,0,102,102,102,0,0,59,110,0,110,51,51,59,110,0,99,115,
        123,127,111,0,60,108,108,62,0,126,0,0,56,108,108,56,0,124,0,0,0,24,24,0,24,24,48,0,0,0,0,0,0,127,96,0,0,0,0,0,0,127,3,0,96,
        224,99,102,108,24,48,0,96,224,99,102,108,24,51,0,0,24,24,0,24,24,60,0,0,0,0,27,54,108,54,0,0,0,0,108,54,27,54,17,68,17,68,
        17,68,17,68,85,170,85,170,85,170,85,170,221,119,221,119,221,119,221,119,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,248,
        24,24,24,24,24,248,24,248,54,54,54,54,54,54,54,246,0,0,0,0,0,0,0,254,0,0,0,0,0,248,24,248,54,54,54,54,54,246,6,246,54,54,
        54,54,54,54,54,54,0,0,0,0,0,254,6,246,54,54,54,54,54,246,6,254,54,54,54,54,54,54,54,254,24,24,24,24,24,248,24,248,0,0,0,0,
        0,0,0,248,24,24,24,24,24,24,24,31,24,24,24,24,24,24,24,255,0,0,0,0,0,0,0,255,24,24,24,24,24,24,24,31,0,0,0,0,0,0,0,255,24,
        24,24,24,24,24,24,255,24,24,24,24,24,31,24,31,54,54,54,54,54,54,54,55,54,54,54,54,54,55,48,63,0,0,0,0,0,63,48,55,54,54,54,
        54,54,247,0,255,0,0,0,0,0,255,0,247,54,54,54,54,54,55,48,55,0,0,0,0,0,255,0,255,54,54,54,54,54,247,0,247,24,24,24,24,24,255,
        0,255,54,54,54,54,54,54,54,255,0,0,0,0,0,255,0,255,0,0,0,0,0,0,0,255,54,54,54,54,54,54,54,63,24,24,24,24,24,31,24,31,0,0,
        0,0,0,31,24,31,0,0,0,0,0,0,0,63,54,54,54,54,54,54,54,255,24,24,24,24,24,255,24,255,24,24,24,24,24,24,24,248,0,0,0,0,0,0,0,
        31,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,255,240,240,240,240,240,240,240,240,15,15,15,15,15,15,15,15,255,255,255,
        255,255,255,255,0,0,0,0,0,0,59,110,108,0,0,0,0,62,99,126,99,0,0,127,99,99,96,96,96,0,0,0,0,127,54,54,54,0,0,127,99,48,24,
        12,24,0,0,0,0,0,63,108,108,0,0,0,0,51,51,51,51,0,0,0,0,59,110,12,12,0,0,126,24,60,102,102,102,0,0,28,54,99,99,127,99,0,0,
        28,54,99,99,99,54,0,0,30,48,24,12,62,102,0,0,0,0,0,126,219,219,0,0,3,6,126,219,219,243,0,0,28,48,96,96,124,96,0,0,0,62,99,
        99,99,99,0,0,0,127,0,0,127,0,0,0,24,24,24,255,24,24,0,0,48,24,12,6,12,24,0,0,12,24,48,96,48,24,0,0,14,27,27,24,24,24,24,24,
        24,24,24,24,24,24,0,0,24,24,0,0,255,0,0,0,0,0,59,110,0,59,0,56,108,108,56,0,0,0,0,0,0,0,0,0,24,24,0,0,0,0,0,0,0,24,0,15,12,
        12,12,12,12,236,0,216,108,108,108,108,108,0,0,112,216,48,96,200,248,0,0,0,0,0,62,62,62,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        153,129,126,0,0,0,0,0,231,255,126,0,0,0,0,0,62,28,8,0,0,0,0,0,28,8,0,0,0,0,0,0,24,24,60,0,0,0,0,0,24,24,60,0,0,0,0,0,24,0,
        0,0,0,0,0,0,231,255,255,255,255,255,0,0,102,60,0,0,0,0,0,0,153,195,255,255,255,255,0,0,102,102,60,0,0,0,0,0,126,24,24,0,0,
        0,0,0,112,240,224,0,0,0,0,0,103,231,230,192,0,0,0,0,219,24,24,0,0,0,0,0,112,96,64,0,0,0,0,0,7,3,1,0,0,0,0,0,126,60,24,0,0,
        0,0,0,0,51,51,0,0,0,0,0,27,27,27,0,0,0,0,0,54,28,6,99,62,0,0,0,127,127,127,0,0,0,0,0,126,60,24,126,0,0,0,0,24,24,24,0,0,0,
        0,0,126,60,24,0,0,0,0,0,12,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,36,0,0,0,0,0,0,0,127,127,0,0,0,0,0,0,28,8,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,24,24,0,0,0,0,0,0,0,0,0,0,0,0,0,127,54,54,0,0,0,0,0,67,99,62,12,12,0,0,0,24,51,99,0,0,0,0,0,102,
        102,59,0,0,0,0,0,0,0,0,0,0,0,0,0,48,24,12,0,0,0,0,0,6,12,24,0,0,0,0,0,102,0,0,0,0,0,0,0,24,24,0,0,0,0,0,0,24,24,24,48,0,0,
        0,0,0,0,0,0,0,0,0,0,0,24,24,0,0,0,0,0,96,64,0,0,0,0,0,0,99,99,62,0,0,0,0,0,12,12,63,0,0,0,0,0,48,99,127,0,0,0,0,0,3,99,62,
        0,0,0,0,0,6,6,15,0,0,0,0,0,3,99,62,0,0,0,0,0,99,99,62,0,0,0,0,0,24,24,24,0,0,0,0,0,99,99,62,0,0,0,0,0,3,6,60,0,0,0,0,0,24,
        24,0,0,0,0,0,0,24,24,48,0,0,0,0,0,24,12,6,0,0,0,0,0,126,0,0,0,0,0,0,0,24,48,96,0,0,0,0,0,0,12,12,0,0,0,0,0,110,96,62,0,0,
        0,0,0,99,99,99,0,0,0,0,0,51,51,126,0,0,0,0,0,97,51,30,0,0,0,0,0,51,54,124,0,0,0,0,0,49,51,127,0,0,0,0,0,48,48,120,0,0,0,0,
        0,99,51,29,0,0,0,0,0,99,99,99,0,0,0,0,0,24,24,60,0,0,0,0,0,102,102,60,0,0,0,0,0,54,51,115,0,0,0,0,0,49,51,127,0,0,0,0,0,195,
        195,195,0,0,0,0,0,99,99,99,0,0,0,0,0,99,54,28,0,0,0,0,0,48,48,120,0,0,0,0,0,111,62,6,7,0,0,0,0,51,51,115,0,0,0,0,0,99,99,
        62,0,0,0,0,0,24,24,60,0,0,0,0,0,99,99,62,0,0,0,0,0,102,60,24,0,0,0,0,0,255,102,102,0,0,0,0,0,102,195,195,0,0,0,0,0,24,24,
        60,0,0,0,0,0,97,195,255,0,0,0,0,0,48,48,60,0,0,0,0,0,7,3,1,0,0,0,0,0,12,12,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,
        0,0,0,0,0,0,0,0,102,102,59,0,0,0,0,0,51,51,110,0,0,0,0,0,96,99,62,0,0,0,0,0,102,102,59,0,0,0,0,0,96,99,62,0,0,0,0,0,48,48,
        120,0,0,0,0,0,102,62,6,102,60,0,0,0,51,51,115,0,0,0,0,0,12,12,30,0,0,0,0,0,6,6,102,102,60,0,0,0,54,51,115,0,0,0,0,0,12,12,
        30,0,0,0,0,0,219,219,219,0,0,0,0,0,51,51,51,0,0,0,0,0,99,99,62,0,0,0,0,0,51,62,48,48,120,0,0,0,102,62,6,6,15,0,0,0,48,48,
        120,0,0,0,0,0,14,99,62,0,0,0,0,0,24,27,14,0,0,0,0,0,102,102,59,0,0,0,0,0,102,60,24,0,0,0,0,0,219,255,102,0,0,0,0,0,28,54,
        99,0,0,0,0,0,99,63,3,6,60,0,0,0,24,51,127,0,0,0,0,0,24,24,14,0,0,0,0,0,24,24,24,0,0,0,0,0,24,24,112,0,0,0,0,0,0,0,0,0,0,0,
        0,0,99,127,0,0,0,0,0,0,51,30,6,3,62,0,0,0,102,102,59,0,0,0,0,0,96,99,62,0,0,0,0,0,102,102,59,0,0,0,0,0,102,102,59,0,0,0,0,
        0,102,102,59,0,0,0,0,0,102,102,59,0,0,0,0,0,60,12,6,60,0,0,0,0,96,99,62,0,0,0,0,0,96,99,62,0,0,0,0,0,96,99,62,0,0,0,0,0,24,
        24,60,0,0,0,0,0,24,24,60,0,0,0,0,0,24,24,60,0,0,0,0,0,127,99,99,0,0,0,0,0,127,99,99,0,0,0,0,0,48,51,127,0,0,0,0,0,216,220,
        119,0,0,0,0,0,102,102,103,0,0,0,0,0,99,99,62,0,0,0,0,0,99,99,62,0,0,0,0,0,99,99,62,0,0,0,0,0,102,102,59,0,0,0,0,0,102,102,
        59,0,0,0,0,0,99,63,3,6,60,0,0,0,99,54,28,0,0,0,0,0,99,99,62,0,0,0,0,0,126,24,24,0,0,0,0,0,48,115,126,0,0,0,0,0,255,24,24,
        0,0,0,0,0,102,102,243,0,0,0,0,0,24,24,24,216,112,0,0,0,102,102,59,0,0,0,0,0,24,24,60,0,0,0,0,0,99,99,62,0,0,0,0,0,102,102,
        59,0,0,0,0,0,51,51,51,0,0,0,0,0,103,99,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,99,62,0,0,0,0,0,96,96,0,0,0,0,0,0,
        3,3,0,0,0,0,0,0,110,195,6,12,31,0,0,0,103,207,31,3,3,0,0,0,60,60,24,0,0,0,0,0,27,0,0,0,0,0,0,0,108,0,0,0,0,0,0,0,17,68,17,
        68,17,68,0,0,85,170,85,170,85,170,0,0,221,119,221,119,221,119,0,0,24,24,24,24,24,24,0,0,24,24,24,24,24,24,0,0,24,24,24,24,
        24,24,0,0,54,54,54,54,54,54,0,0,54,54,54,54,54,54,0,0,24,24,24,24,24,24,0,0,54,54,54,54,54,54,0,0,54,54,54,54,54,54,0,0,54,
        54,54,54,54,54,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,24,24,24,24,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        24,24,24,24,24,24,0,0,24,24,24,24,24,24,0,0,0,0,0,0,0,0,0,0,24,24,24,24,24,24,0,0,24,24,24,24,24,24,0,0,54,54,54,54,54,54,
        0,0,0,0,0,0,0,0,0,0,54,54,54,54,54,54,0,0,0,0,0,0,0,0,0,0,54,54,54,54,54,54,0,0,54,54,54,54,54,54,0,0,0,0,0,0,0,0,0,0,54,
        54,54,54,54,54,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,24,24,24,24,24,0,0,54,54,54,54,54,54,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,24,24,24,24,24,24,0,0,54,54,54,54,54,54,0,0,54,54,54,54,54,54,0,0,24,24,24,24,24,24,0,0,0,0,0,0,0,0,0,0,24,24,24,24,
        24,24,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,240,240,240,240,240,240,0,0,15,15,15,15,15,15,0,0,0,0,0,
        0,0,0,0,0,108,110,59,0,0,0,0,0,99,126,96,96,32,0,0,0,96,96,96,0,0,0,0,0,54,54,54,0,0,0,0,0,48,99,127,0,0,0,0,0,108,108,56,
        0,0,0,0,0,62,48,48,96,0,0,0,0,12,12,12,0,0,0,0,0,60,24,126,0,0,0,0,0,99,54,28,0,0,0,0,0,54,54,119,0,0,0,0,0,102,102,60,0,
        0,0,0,0,126,0,0,0,0,0,0,0,126,96,192,0,0,0,0,0,96,48,28,0,0,0,0,0,99,99,99,0,0,0,0,0,0,127,0,0,0,0,0,0,24,0,255,0,0,0,0,0,
        48,0,126,0,0,0,0,0,12,0,126,0,0,0,0,0,24,24,24,24,24,24,0,0,216,216,112,0,0,0,0,0,0,24,24,0,0,0,0,0,110,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,108,60,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,62,62,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,126,129,165,129,189,153,129,126,126,255,219,255,195,231,255,126,108,254,254,254,124,56,16,0,16,56,
        124,254,124,56,16,0,56,124,56,254,254,214,16,56,16,16,56,124,254,124,16,56,0,0,24,60,60,24,0,0,255,255,231,195,195,231,255,
        255,0,60,102,66,66,102,60,0,255,195,153,189,189,153,195,255,15,3,5,125,132,132,132,120,60,66,66,66,60,24,126,24,63,33,63,
        32,32,96,224,192,63,33,63,33,35,103,230,192,24,219,60,231,231,60,219,24,128,224,248,254,248,224,128,0,2,14,62,254,62,14,2,
        0,24,60,126,24,24,126,60,24,36,36,36,36,36,0,36,0,127,146,146,114,18,18,18,0,62,99,56,68,68,56,204,120,0,0,0,0,126,126,126,
        0,24,60,126,24,126,60,24,255,16,56,124,84,16,16,16,0,16,16,16,84,124,56,16,0,0,24,12,254,12,24,0,0,0,48,96,254,96,48,0,0,
        0,0,64,64,64,126,0,0,0,36,102,255,102,36,0,0,0,16,56,124,254,254,0,0,0,254,254,124,56,16,0,0,0,0,0,0,0,0,0,0,16,56,56,16,
        16,0,16,0,36,36,36,0,0,0,0,0,36,36,126,36,126,36,36,0,24,62,64,60,2,124,24,0,0,98,100,8,16,38,70,0,48,72,48,86,136,136,118,
        0,16,16,32,0,0,0,0,0,16,32,64,64,64,32,16,0,32,16,8,8,8,16,32,0,0,68,56,254,56,68,0,0,0,16,16,124,16,16,0,0,0,0,0,0,0,16,
        16,32,0,0,0,126,0,0,0,0,0,0,0,0,0,16,16,0,0,2,4,8,16,32,64,0,60,66,70,74,82,98,60,0,16,48,80,16,16,16,124,0,60,66,2,12,48,
        66,126,0,60,66,2,28,2,66,60,0,8,24,40,72,254,8,28,0,126,64,124,2,2,66,60,0,28,32,64,124,66,66,60,0,126,66,4,8,16,16,16,0,
        60,66,66,60,66,66,60,0,60,66,66,62,2,4,56,0,0,16,16,0,0,16,16,0,0,16,16,0,0,16,16,32,8,16,32,64,32,16,8,0,0,0,126,0,0,126,
        0,0,16,8,4,2,4,8,16,0,60,66,2,4,8,0,8,0,60,66,94,82,94,64,60,0,24,36,66,66,126,66,66,0,124,34,34,60,34,34,124,0,28,34,64,
        64,64,34,28,0,120,36,34,34,34,36,120,0,126,34,40,56,40,34,126,0,126,34,40,56,40,32,112,0,28,34,64,64,78,34,30,0,66,66,66,
        126,66,66,66,0,56,16,16,16,16,16,56,0,14,4,4,4,68,68,56,0,98,36,40,48,40,36,99,0,112,32,32,32,32,34,126,0,99,85,73,65,65,
        65,65,0,98,82,74,70,66,66,66,0,24,36,66,66,66,36,24,0,124,34,34,60,32,32,112,0,60,66,66,66,74,60,3,0,124,34,34,60,40,36,114,
        0,60,66,64,60,2,66,60,0,127,73,8,8,8,8,28,0,66,66,66,66,66,66,60,0,65,65,65,65,34,20,8,0,65,65,65,73,73,73,54,0,65,34,20,
        8,20,34,65,0,65,34,20,8,8,8,28,0,127,66,4,8,16,33,127,0,120,64,64,64,64,64,120,0,128,64,32,16,8,4,2,0,120,8,8,8,8,8,120,0,
        16,40,68,130,0,0,0,0,0,0,0,0,0,0,0,255,16,16,8,0,0,0,0,0,0,0,60,2,62,66,63,0,96,32,32,46,49,49,46,0,0,0,60,66,64,66,60,0,
        6,2,2,58,70,70,59,0,0,0,60,66,126,64,60,0,12,18,16,56,16,16,56,0,0,0,61,66,66,62,2,124,96,32,44,50,34,34,98,0,16,0,48,16,
        16,16,56,0,2,0,6,2,2,66,66,60,96,32,36,40,48,40,38,0,48,16,16,16,16,16,56,0,0,0,118,73,73,73,73,0,0,0,92,98,66,66,66,0,0,
        0,60,66,66,66,60,0,0,0,108,50,50,44,32,112,0,0,54,76,76,52,4,14,0,0,108,50,34,32,112,0,0,0,62,64,60,2,124,0,16,16,124,16,
        16,18,12,0,0,0,66,66,66,70,58,0,0,0,65,65,34,20,8,0,0,0,65,73,73,73,54,0,0,0,68,40,16,40,68,0,0,0,66,66,66,62,2,124,0,0,124,
        8,16,32,124,0,12,16,16,96,16,16,12,0,16,16,16,0,16,16,16,0,48,8,8,6,8,8,48,0,50,76,0,0,0,0,0,0,0,8,20,34,65,65,127,0,60,66,
        64,66,60,12,2,60,0,68,0,68,68,68,62,0,12,0,60,66,126,64,60,0,60,66,56,4,60,68,62,0,66,0,56,4,60,68,62,0,48,0,56,4,60,68,62,
        0,16,0,56,4,60,68,62,0,0,0,60,64,64,60,6,28,60,66,60,66,126,64,60,0,66,0,60,66,126,64,60,0,48,0,60,66,126,64,60,0,36,0,24,
        8,8,8,28,0,124,130,48,16,16,16,56,0,48,0,24,8,8,8,28,0,66,24,36,66,126,66,66,0,24,24,0,60,66,126,66,0,12,0,124,32,56,32,124,
        0,0,0,51,12,63,68,59,0,31,36,68,127,68,68,71,0,24,36,0,60,66,66,60,0,0,66,0,60,66,66,60,0,32,16,0,60,66,66,60,0,24,36,0,66,
        66,66,60,0,32,16,0,66,66,66,60,0,0,66,0,66,66,62,2,60,66,24,36,66,66,36,24,0,66,0,66,66,66,66,60,0,8,8,62,64,64,62,8,8,24,
        36,32,112,32,66,124,0,68,40,124,16,124,16,16,0,248,76,120,68,79,68,69,230,28,18,16,124,16,16,144,96,12,0,56,4,60,68,62,0,
        12,0,24,8,8,8,28,0,4,8,0,60,66,66,60,0,0,4,8,66,66,66,60,0,50,76,0,124,66,66,66,0,52,76,0,98,82,74,70,0,60,68,68,62,0,126,
        0,0,56,68,68,56,0,124,0,0,16,0,16,32,64,66,60,0,0,0,0,126,64,64,0,0,0,0,0,126,2,2,0,0,66,196,72,246,41,67,140,31,66,196,74,
        246,42,95,130,2,0,16,0,16,16,16,16,0,0,18,36,72,36,18,0,0,0,72,36,18,36,72,0,0,34,136,34,136,34,136,34,136,85,170,85,170,
        85,170,85,170,219,119,219,238,219,119,219,238,16,16,16,16,16,16,16,16,16,16,16,16,240,16,16,16,16,16,240,16,240,16,16,16,
        20,20,20,20,244,20,20,20,0,0,0,0,252,20,20,20,0,0,240,16,240,16,16,16,20,20,244,4,244,20,20,20,20,20,20,20,20,20,20,20,0,
        0,252,4,244,20,20,20,20,20,244,4,252,0,0,0,20,20,20,20,252,0,0,0,16,16,240,16,240,0,0,0,0,0,0,0,240,16,16,16,16,16,16,16,
        31,0,0,0,16,16,16,16,255,0,0,0,0,0,0,0,255,16,16,16,16,16,16,16,31,16,16,16,0,0,0,0,255,0,0,0,16,16,16,16,255,16,16,16,16,
        16,31,16,31,16,16,16,20,20,20,20,23,20,20,20,20,20,23,16,31,0,0,0,0,0,31,16,23,20,20,20,20,20,247,0,255,0,0,0,0,0,255,0,247,
        20,20,20,20,20,23,16,23,20,20,20,0,0,255,0,255,0,0,0,20,20,247,0,247,20,20,20,16,16,255,0,255,0,0,0,20,20,20,20,255,0,0,0,
        0,0,255,0,255,16,16,16,0,0,0,0,255,20,20,20,20,20,20,20,31,0,0,0,16,16,31,16,31,0,0,0,0,0,31,16,31,16,16,16,0,0,0,0,31,20,
        20,20,20,20,20,20,255,20,20,20,16,16,255,16,255,16,16,16,16,16,16,16,240,0,0,0,0,0,0,0,31,16,16,16,255,255,255,255,255,255,
        255,255,0,0,0,0,255,255,255,255,240,240,240,240,240,240,240,240,15,15,15,15,15,15,15,15,255,255,255,255,0,0,0,0,0,0,49,74,
        68,74,49,0,0,60,66,124,66,124,64,64,0,126,66,64,64,64,64,0,0,63,84,20,20,20,20,0,126,66,32,24,32,66,126,0,0,0,62,72,72,72,
        48,0,0,68,68,68,122,64,64,128,0,51,76,8,8,8,8,0,124,16,56,68,68,56,16,124,24,36,66,126,66,36,24,0,24,36,66,66,36,36,102,0,
        28,32,24,60,66,66,60,0,0,98,149,137,149,98,0,0,2,4,60,74,82,60,64,128,12,16,32,60,32,16,12,0,60,66,66,66,66,66,66,0,0,126,
        0,126,0,126,0,0,16,16,124,16,16,0,124,0,16,8,4,8,16,0,126,0,8,16,32,16,8,0,126,0,12,18,18,16,16,16,16,16,16,16,16,16,16,144,
        144,96,24,24,0,126,0,24,24,0,0,50,76,0,50,76,0,0,48,72,72,48,0,0,0,0,0,0,0,24,24,0,0,0,0,0,0,0,24,0,0,0,15,8,8,8,8,200,40,
        24,120,68,68,68,68,0,0,0,48,72,16,32,120,0,0,0,0,0,60,60,60,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,126,129,165,129,189,153,
        129,126,126,255,219,255,195,231,255,126,108,254,254,254,124,56,16,0,16,56,124,254,124,56,16,0,56,124,56,254,254,214,16,56,
        16,16,56,124,254,124,16,56,0,0,24,60,60,24,0,0,255,255,231,195,195,231,255,255,0,60,102,66,66,102,60,0,255,195,153,189,189,
        153,195,255,15,7,15,125,204,204,204,120,60,102,102,102,60,24,126,24,63,51,63,48,48,112,240,224,127,99,127,99,99,103,230,192,
        24,219,60,231,231,60,219,24,128,224,248,254,248,224,128,0,2,14,62,254,62,14,2,0,24,60,126,24,24,126,60,24,102,102,102,102,
        102,0,102,0,127,219,219,123,27,27,27,0,62,99,56,108,108,56,204,120,0,0,0,0,126,126,126,0,24,60,126,24,126,60,24,255,24,60,
        126,24,24,24,24,0,24,24,24,24,126,60,24,0,0,24,12,254,12,24,0,0,0,48,96,254,96,48,0,0,0,0,192,192,192,254,0,0,0,36,102,255,
        102,36,0,0,0,24,60,126,255,255,0,0,0,255,255,126,60,24,0,0,0,0,0,0,0,0,0,0,48,120,120,48,48,0,48,0,108,108,108,0,0,0,0,0,
        108,108,254,108,254,108,108,0,48,124,192,120,12,248,48,0,0,198,204,24,48,102,198,0,56,108,56,118,220,204,118,0,96,96,192,
        0,0,0,0,0,24,48,96,96,96,48,24,0,96,48,24,24,24,48,96,0,0,102,60,255,60,102,0,0,0,48,48,252,48,48,0,0,0,0,0,0,0,48,48,96,
        0,0,0,252,0,0,0,0,0,0,0,0,0,48,48,0,6,12,24,48,96,192,128,0,124,198,206,222,246,230,124,0,48,112,48,48,48,48,252,0,120,204,
        12,56,96,204,252,0,120,204,12,56,12,204,120,0,28,60,108,204,254,12,30,0,252,192,248,12,12,204,120,0,56,96,192,248,204,204,
        120,0,252,204,12,24,48,48,48,0,120,204,204,120,204,204,120,0,120,204,204,124,12,24,112,0,0,48,48,0,0,48,48,0,0,48,48,0,0,
        48,48,96,24,48,96,192,96,48,24,0,0,0,252,0,0,252,0,0,96,48,24,12,24,48,96,0,120,204,12,24,48,0,48,0,124,198,222,222,222,192,
        120,0,48,120,204,204,252,204,204,0,252,102,102,124,102,102,252,0,60,102,192,192,192,102,60,0,248,108,102,102,102,108,248,
        0,254,98,104,120,104,98,254,0,254,98,104,120,104,96,240,0,60,102,192,192,206,102,62,0,204,204,204,252,204,204,204,0,120,48,
        48,48,48,48,120,0,30,12,12,12,204,204,120,0,230,102,108,120,108,102,230,0,240,96,96,96,98,102,254,0,198,238,254,254,214,198,
        198,0,198,230,246,222,206,198,198,0,56,108,198,198,198,108,56,0,252,102,102,124,96,96,240,0,120,204,204,204,220,120,28,0,
        252,102,102,124,108,102,230,0,120,204,96,48,24,204,120,0,252,180,48,48,48,48,120,0,204,204,204,204,204,204,252,0,204,204,
        204,204,204,120,48,0,198,198,198,214,254,238,198,0,198,198,108,56,56,108,198,0,204,204,204,120,48,48,120,0,254,198,140,24,
        50,102,254,0,120,96,96,96,96,96,120,0,192,96,48,24,12,6,2,0,120,24,24,24,24,24,120,0,16,56,108,198,0,0,0,0,0,0,0,0,0,0,0,
        255,48,48,24,0,0,0,0,0,0,0,120,12,124,204,118,0,224,96,96,124,102,102,220,0,0,0,120,204,192,204,120,0,28,12,12,124,204,204,
        118,0,0,0,120,204,252,192,120,0,56,108,96,240,96,96,240,0,0,0,118,204,204,124,12,248,224,96,108,118,102,102,230,0,48,0,112,
        48,48,48,120,0,12,0,12,12,12,204,204,120,224,96,102,108,120,108,230,0,112,48,48,48,48,48,120,0,0,0,204,254,254,214,198,0,
        0,0,248,204,204,204,204,0,0,0,120,204,204,204,120,0,0,0,220,102,102,124,96,240,0,0,118,204,204,124,12,30,0,0,220,118,102,
        96,240,0,0,0,124,192,120,12,248,0,16,48,124,48,48,52,24,0,0,0,204,204,204,204,118,0,0,0,204,204,204,120,48,0,0,0,198,214,
        254,254,108,0,0,0,198,108,56,108,198,0,0,0,204,204,204,124,12,248,0,0,252,152,48,100,252,0,28,48,48,224,48,48,28,0,24,24,
        24,0,24,24,24,0,224,48,48,28,48,48,224,0,118,220,0,0,0,0,0,0,0,16,56,108,198,198,254,0,120,204,192,204,120,24,12,120,0,204,
        0,204,204,204,126,0,28,0,120,204,252,192,120,0,126,195,60,6,62,102,63,0,204,0,120,12,124,204,126,0,224,0,120,12,124,204,126,
        0,48,48,120,12,124,204,126,0,0,0,120,192,192,120,12,56,126,195,60,102,126,96,60,0,204,0,120,204,252,192,120,0,224,0,120,204,
        252,192,120,0,204,0,112,48,48,48,120,0,124,198,56,24,24,24,60,0,224,0,112,48,48,48,120,0,198,56,108,198,254,198,198,0,48,
        48,0,120,204,252,204,0,28,0,252,96,120,96,252,0,0,0,127,12,127,204,127,0,62,108,204,254,204,204,206,0,120,204,0,120,204,204,
        120,0,0,204,0,120,204,204,120,0,0,224,0,120,204,204,120,0,120,204,0,204,204,204,126,0,0,224,0,204,204,204,126,0,0,204,0,204,
        204,124,12,248,195,24,60,102,102,60,24,0,204,0,204,204,204,204,120,0,24,24,126,192,192,126,24,24,56,108,100,240,96,230,252,
        0,204,204,120,252,48,252,48,48,248,204,204,250,198,207,198,199,14,27,24,60,24,24,216,112,28,0,120,12,124,204,126,0,56,0,112,
        48,48,48,120,0,0,28,0,120,204,204,120,0,0,28,0,204,204,204,126,0,0,248,0,248,204,204,204,0,252,0,204,236,252,220,204,0,60,
        108,108,62,0,126,0,0,56,108,108,56,0,124,0,0,48,0,48,96,192,204,120,0,0,0,0,252,192,192,0,0,0,0,0,252,12,12,0,0,195,198,204,
        222,51,102,204,15,195,198,204,219,55,111,207,3,24,24,0,24,24,24,24,0,0,51,102,204,102,51,0,0,0,204,102,51,102,204,0,0,34,
        136,34,136,34,136,34,136,85,170,85,170,85,170,85,170,219,119,219,238,219,119,219,238,24,24,24,24,24,24,24,24,24,24,24,24,
        248,24,24,24,24,24,248,24,248,24,24,24,54,54,54,54,246,54,54,54,0,0,0,0,254,54,54,54,0,0,248,24,248,24,24,24,54,54,246,6,
        246,54,54,54,54,54,54,54,54,54,54,54,0,0,254,6,246,54,54,54,54,54,246,6,254,0,0,0,54,54,54,54,254,0,0,0,24,24,248,24,248,
        0,0,0,0,0,0,0,248,24,24,24,24,24,24,24,31,0,0,0,24,24,24,24,255,0,0,0,0,0,0,0,255,24,24,24,24,24,24,24,31,24,24,24,0,0,0,
        0,255,0,0,0,24,24,24,24,255,24,24,24,24,24,31,24,31,24,24,24,54,54,54,54,55,54,54,54,54,54,55,48,63,0,0,0,0,0,63,48,55,54,
        54,54,54,54,247,0,255,0,0,0,0,0,255,0,247,54,54,54,54,54,55,48,55,54,54,54,0,0,255,0,255,0,0,0,54,54,247,0,247,54,54,54,24,
        24,255,0,255,0,0,0,54,54,54,54,255,0,0,0,0,0,255,0,255,24,24,24,0,0,0,0,255,54,54,54,54,54,54,54,63,0,0,0,24,24,31,24,31,
        0,0,0,0,0,31,24,31,24,24,24,0,0,0,0,63,54,54,54,54,54,54,54,255,54,54,54,24,24,255,24,255,24,24,24,24,24,24,24,248,0,0,0,
        0,0,0,0,31,24,24,24,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,240,240,240,240,240,240,240,240,15,15,15,15,15,
        15,15,15,255,255,255,255,0,0,0,0,0,0,118,220,200,220,118,0,0,120,204,248,204,248,192,192,0,252,204,192,192,192,192,0,0,254,
        108,108,108,108,108,0,252,204,96,48,96,204,252,0,0,0,126,216,216,216,112,0,0,102,102,102,102,124,96,192,0,118,220,24,24,24,
        24,0,252,48,120,204,204,120,48,252,56,108,198,254,198,108,56,0,56,108,198,198,108,108,238,0,28,48,24,124,204,204,120,0,0,
        0,126,219,219,126,0,0,6,12,126,219,219,126,96,192,56,96,192,248,192,96,56,0,120,204,204,204,204,204,204,0,0,252,0,252,0,252,
        0,0,48,48,252,48,48,0,252,0,96,48,24,48,96,0,252,0,24,48,96,48,24,0,252,0,14,27,27,24,24,24,24,24,24,24,24,24,24,216,216,
        112,48,48,0,252,0,48,48,0,0,118,220,0,118,220,0,0,56,108,108,56,0,0,0,0,0,0,0,24,24,0,0,0,0,0,0,0,24,0,0,0,15,12,12,12,236,
        108,60,28,120,108,108,108,108,0,0,0,112,24,48,96,120,0,0,0,0,0,60,60,60,60,0,0,0,0,0,0,0,0,0,0] 
        
      • ibm-vga-lockfs.xml
        <?xml version="1.0" encoding="UTF-8"?>
        <video id="videoVGA" model="vga" screenwidth="640" screenheight="480" scale="true" pos="center" padding="8px">
        	<menu>
        		<title>VGA Color Display</title>
        		<control type="container" pos="right">
        			<control type="led" label="Caps" binding="caps-lock" padleft="8px"/>
        			<control type="led" label="Num" binding="num-lock" padleft="8px"/>
        			<control type="led" label="Scroll" binding="scroll-lock" padleft="8px"/>
        			<control type="button" binding="lockPointer" padleft="8px">Lock Pointer</control>
        			<control type="button" binding="fullScreen" padleft="8px">Full Screen</control>
        		</control>
        	</menu>
        </video>
        
      • ibm-vga.json
        [85,170,48,235,54,55,52,48,48,56,50,50,50,53,53,52,32,40,67,41,67,79,80,89,82,73,71,72,84,32,73,66,77,32,67,111,114,112,46,
        32,49,57,56,52,44,32,49,57,56,54,32,49,48,47,50,55,47,56,54,85,46,142,30,28,7,184,1,18,179,50,205,16,250,199,6,64,0,225,6,
        140,14,66,0,199,6,180,1,228,6,140,14,182,1,199,6,8,1,101,240,199,6,10,1,0,240,199,6,168,4,198,5,140,14,170,4,199,6,124,0,
        141,59,140,14,126,0,199,6,12,1,141,55,140,14,14,1,251,198,6,137,4,17,198,6,135,4,96,232,107,0,250,186,232,70,184,22,0,239,
        186,2,1,184,1,0,239,186,232,70,184,14,0,239,186,232,74,51,192,239,251,14,7,191,180,3,187,2,22,246,6,135,4,2,117,6,191,212,
        3,187,66,22,137,62,99,4,232,89,16,50,192,238,232,115,4,51,237,232,12,1,232,250,1,232,133,2,246,6,137,4,1,117,3,232,215,3,
        232,124,4,36,240,162,136,4,232,87,0,232,64,2,131,253,2,114,2,91,203,93,203,183,0,186,204,3,236,36,254,186,194,3,238,178,212,
        232,165,1,117,11,176,3,183,32,128,14,135,4,2,235,26,186,204,3,236,12,1,186,194,3,238,178,180,232,137,1,117,27,176,7,183,48,
        128,38,135,4,253,128,38,137,4,254,128,38,16,4,207,8,62,16,4,180,0,205,66,195,246,6,137,4,1,116,24,128,14,135,4,2,246,6,135,
        4,8,117,12,246,6,137,4,4,117,5,128,38,135,4,253,246,6,135,4,2,117,7,187,9,32,176,3,235,5,187,11,48,176,7,128,38,16,4,207,
        8,62,16,4,128,38,136,4,240,8,30,136,4,138,30,135,4,128,38,135,4,247,138,62,137,4,128,38,137,4,254,180,0,205,16,128,231,1,
        8,62,137,4,246,195,8,116,51,246,6,137,4,1,117,44,176,7,187,3,48,246,6,135,4,2,116,5,176,3,187,5,32,128,38,16,4,207,8,62,16,
        4,128,38,136,4,240,8,30,136,4,128,14,135,4,8,180,0,205,16,195,139,22,99,4,128,194,6,187,1,0,176,48,230,67,176,0,230,64,180,
        2,51,201,236,168,8,116,5,226,249,233,165,0,250,236,168,8,117,5,226,249,233,154,0,254,204,117,229,176,0,230,64,51,201,236,
        168,9,224,251,227,24,185,255,255,236,168,1,225,251,227,14,236,168,8,117,11,168,1,224,247,227,3,67,117,232,235,111,176,0,230,
        67,228,64,138,224,235,0,228,64,134,224,251,129,251,154,1,119,90,129,251,134,1,114,84,61,140,110,114,79,61,29,135,119,74,252,
        184,0,160,142,192,51,255,185,40,0,184,255,255,243,171,183,15,179,192,236,134,218,176,50,238,138,199,238,134,211,51,201,236,
        168,48,117,4,226,249,235,32,51,201,236,168,48,116,4,226,249,235,21,128,199,16,128,255,63,117,215,176,54,230,67,42,192,230,
        64,235,0,230,64,195,251,186,3,1,232,223,2,189,2,0,235,231,176,15,238,179,255,66,236,80,176,26,238,235,0,236,60,26,117,8,176,
        37,238,235,0,236,138,216,88,238,128,251,37,195,184,0,160,142,192,187,0,128,190,0,0,232,12,0,116,9,186,3,1,232,164,2,189,2,
        0,195,252,184,170,170,139,203,51,255,243,171,139,203,51,255,243,175,117,15,184,85,85,139,203,51,255,243,171,139,203,51,255,
        243,175,156,139,198,139,203,51,255,243,171,157,195,184,0,198,142,192,190,212,3,38,138,36,38,198,4,40,186,212,3,30,31,236,
        38,136,36,60,40,195,183,7,246,6,135,4,2,117,2,183,8,179,0,246,6,137,4,1,117,18,179,1,246,6,135,4,2,116,9,179,2,232,195,255,
        117,2,179,6,232,252,6,162,138,4,195,180,26,232,125,0,232,142,0,117,10,180,37,232,115,0,232,132,0,116,9,186,3,1,232,18,2,189,
        2,0,186,198,3,176,0,238,180,0,232,90,0,180,0,232,233,14,190,84,4,185,1,0,232,114,0,116,32,190,80,4,185,1,0,232,103,0,116,
        37,128,14,135,4,8,128,14,137,4,6,190,88,4,185,5,0,232,82,0,235,30,128,38,137,4,251,190,40,4,185,5,0,232,66,0,235,14,128,14,
        137,4,6,190,60,4,185,5,0,232,50,0,116,9,186,3,1,232,174,1,131,197,1,195,186,200,3,176,0,238,185,0,3,186,201,3,138,196,238,
        235,0,226,251,195,186,199,3,238,185,0,3,186,201,3,236,58,196,117,2,226,249,195,46,138,4,46,138,100,1,46,138,92,2,81,232,81,
        0,89,131,198,4,46,58,68,255,117,2,226,229,195,20,20,20,16,45,20,20,0,20,45,20,0,20,20,45,0,45,45,45,0,4,18,4,16,30,18,4,0,
        4,45,4,0,4,22,21,0,0,0,0,16,4,18,4,16,18,18,18,16,4,4,4,16,16,4,4,0,4,16,4,0,4,4,16,0,16,16,16,0,80,139,22,99,4,128,194,6,
        138,250,51,201,250,236,168,8,224,251,51,201,236,168,8,225,251,176,0,186,200,3,238,88,186,201,3,238,235,0,138,196,238,235,
        0,138,195,238,138,215,51,201,236,168,1,224,251,178,194,235,0,236,36,16,80,176,0,186,200,3,238,235,0,186,201,3,238,235,0,238,
        235,0,238,251,88,195,191,0,184,186,216,3,187,0,32,246,6,135,4,2,117,9,191,0,176,186,184,3,187,0,8,142,199,160,101,4,36,247,
        238,190,32,7,232,9,254,116,9,186,2,1,232,161,0,189,2,0,184,32,112,51,255,185,40,0,243,171,128,194,2,180,8,128,250,218,116,
        2,180,1,51,201,236,34,196,117,4,226,249,235,9,43,201,236,34,196,116,11,226,249,186,2,1,232,110,0,189,2,0,177,3,210,236,117,
        221,186,216,3,185,40,0,246,6,135,4,2,117,3,186,184,3,184,32,7,51,255,243,171,160,101,4,238,195,236,185,20,0,178,192,180,0,
        187,101,22,138,196,238,254,196,46,138,7,238,67,226,244,176,20,238,50,192,238,176,32,238,195,139,22,99,4,128,194,6,179,194,
        176,1,238,235,0,134,218,236,36,96,208,232,138,224,134,211,176,2,238,235,0,134,218,236,36,96,208,224,10,196,195,156,250,11,
        237,116,2,51,210,10,246,116,20,179,5,185,51,5,232,226,0,51,201,226,254,254,206,117,240,51,201,226,254,10,210,116,16,179,1,
        185,51,5,232,202,0,51,201,226,254,254,202,117,240,157,195,66,19,0,192,0,0,0,0,0,0,0,0,0,0,0,0,226,5,0,192,0,0,0,0,0,0,0,0,
        26,0,211,10,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,251,30,80,83,81,82,46,142,30,28,7,128,62,0,5,1,116,99,198,6,0,5,
        1,180,15,205,16,138,204,138,46,132,4,254,197,232,85,0,81,180,3,205,16,89,82,51,210,180,2,205,16,180,8,205,16,10,192,117,2,
        176,32,82,51,210,50,228,205,23,90,246,196,41,117,33,254,194,58,202,117,223,50,210,138,226,82,232,35,0,90,254,198,58,238,117,
        208,90,180,2,205,16,198,6,0,5,0,235,10,90,180,2,205,16,198,6,0,5,255,90,89,91,88,31,207,51,210,50,228,176,13,205,23,50,228,
        176,10,205,23,195,176,182,230,67,138,193,230,66,138,197,230,66,228,97,138,224,12,3,230,97,51,201,226,254,254,203,117,248,
        138,196,230,97,195,130,26,152,30,47,31,120,31,143,31,168,31,211,31,167,34,253,36,37,39,138,41,59,42,69,50,3,51,254,51,20,
        8,180,43,89,53,46,8,163,52,19,7,19,7,19,7,19,7,19,7,19,7,45,10,252,10,161,12,205,109,207,251,252,85,6,30,82,81,83,86,87,80,
        138,196,152,209,224,139,240,88,131,254,58,115,10,46,142,30,28,7,46,255,164,167,6,95,94,91,89,90,31,7,93,205,66,207,235,0,
        95,94,91,89,90,31,7,93,207,0,0,0,160,0,184,30,46,142,30,28,7,139,22,99,4,128,194,6,31,195,46,142,30,28,7,196,30,168,4,38,
        196,31,195,86,139,240,209,238,209,238,209,238,209,238,209,238,209,238,209,238,209,238,209,230,129,254,40,0,115,45,46,255,
        164,94,7,134,7,134,7,134,7,134,7,174,7,174,7,174,7,134,7,166,7,174,7,174,7,174,7,174,7,174,7,174,7,170,7,170,7,162,7,162,
        7,174,7,246,6,137,4,16,117,25,160,136,4,36,15,60,3,116,20,60,9,116,16,128,252,7,116,11,235,13,144,176,3,235,10,176,2,235,
        6,176,1,235,2,176,0,94,195,246,6,135,4,128,117,57,186,0,184,160,73,4,60,6,118,10,186,0,176,60,7,116,3,186,0,160,142,194,187,
        32,7,60,4,114,6,60,7,116,2,43,219,139,14,76,4,227,16,185,0,128,128,254,160,116,2,181,64,139,195,43,255,243,171,195,139,243,
        131,198,35,30,6,196,62,168,4,38,196,125,4,140,192,11,199,116,9,31,30,185,16,0,243,164,70,164,7,31,195,138,38,74,4,138,62,
        98,4,160,135,4,36,128,10,6,73,4,95,94,89,89,90,31,7,93,207,128,251,16,116,61,128,251,32,116,113,128,251,48,117,3,235,121,
        144,128,251,49,117,3,233,13,1,128,251,50,117,3,233,27,1,128,251,51,117,3,233,40,1,128,251,52,117,3,233,54,1,128,251,53,117,
        3,233,73,1,128,251,54,117,55,233,171,1,138,62,135,4,128,231,2,208,239,160,135,4,36,96,208,232,208,232,208,232,208,232,208,
        232,138,216,138,14,136,4,138,233,128,225,15,208,237,208,237,208,237,208,237,95,94,90,90,90,31,7,93,207,50,192,233,106,254,
        250,199,6,20,0,252,5,140,14,22,0,251,233,91,254,246,6,135,4,8,117,229,246,6,137,4,1,117,78,60,0,117,15,246,6,135,4,2,117,
        211,176,8,187,0,239,235,40,144,254,200,117,17,176,9,187,0,239,246,6,135,4,2,116,23,176,11,235,19,144,254,200,117,178,176,
        9,187,16,239,246,6,135,4,2,116,2,176,11,32,62,137,4,8,30,137,4,128,38,136,4,240,8,6,136,4,235,61,144,60,0,117,16,176,8,187,
        128,239,246,6,135,4,2,116,220,176,11,235,216,254,200,117,16,176,9,187,0,111,246,6,135,4,2,116,200,176,11,235,196,254,200,
        117,143,176,9,187,16,111,246,6,135,4,2,116,180,176,11,235,176,176,18,233,190,253,60,1,117,7,128,14,137,4,8,235,240,60,0,117,
        72,128,38,137,4,247,235,229,186,232,70,60,0,117,5,176,14,238,235,217,60,1,117,49,50,192,238,235,208,60,1,117,7,128,38,137,
        4,253,235,197,60,0,117,29,128,14,137,4,2,235,186,60,1,117,7,128,14,135,4,1,235,175,60,0,117,7,128,38,135,4,254,235,164,50,
        192,233,98,253,10,192,117,23,246,6,137,4,64,117,240,12,128,205,66,246,6,137,4,64,116,229,232,43,0,235,132,60,1,116,220,246,
        6,137,4,64,116,213,60,2,117,6,232,23,0,233,111,255,60,3,117,199,250,139,218,232,246,3,186,232,70,176,14,238,251,233,91,255,
        250,139,218,232,161,3,250,196,30,8,1,137,30,180,1,140,6,182,1,199,6,8,1,228,6,140,14,10,1,251,186,232,70,176,6,238,251,195,
        180,32,60,1,116,6,180,0,60,0,117,3,232,80,8,233,35,255,60,0,116,6,60,1,116,22,235,28,160,138,4,232,89,0,232,118,0,95,94,89,
        89,90,31,7,93,176,26,207,232,14,0,162,138,4,176,26,95,94,91,89,90,31,7,93,207,139,211,134,251,139,195,232,34,0,187,0,0,38,
        138,12,50,237,131,198,4,38,59,0,116,13,38,59,16,116,8,131,195,2,226,241,176,255,195,208,235,138,195,195,196,54,168,4,38,196,
        180,16,0,38,196,180,2,0,195,232,238,255,38,58,4,114,4,187,255,255,195,131,198,4,50,228,209,224,3,240,38,139,28,128,251,0,
        117,2,134,223,195,128,255,0,116,23,160,16,4,36,48,60,48,116,7,246,195,1,117,7,235,7,246,195,1,117,2,134,223,195,16,1,8,0,
        0,0,0,1,0,2,2,1,0,4,4,1,0,5,2,5,0,6,1,6,5,6,0,8,1,8,0,7,2,7,6,7,50,192,233,23,252,11,219,117,247,38,199,5,145,12,71,71,38,
        140,13,71,71,190,73,4,185,30,0,243,164,190,132,4,138,4,254,192,38,136,5,70,71,185,2,0,243,164,160,138,4,6,232,106,255,7,38,
        136,29,71,38,136,61,160,73,4,50,228,139,240,209,230,129,198,85,12,46,139,28,71,38,137,29,71,141,54,125,12,3,240,46,138,28,
        71,38,136,29,134,196,232,227,251,71,38,136,5,186,196,3,176,3,238,66,236,138,224,80,128,228,16,208,236,208,236,36,3,10,196,
        71,38,136,5,88,128,228,32,208,236,208,236,208,236,36,12,208,232,208,232,10,196,71,38,136,5,176,16,232,142,251,232,180,31,
        232,212,31,128,228,8,208,228,208,228,160,135,4,36,1,52,1,177,4,210,224,10,196,138,38,137,4,128,228,15,10,196,71,38,136,5,
        50,192,71,38,136,5,71,38,136,5,71,38,136,5,160,135,4,36,96,177,5,210,232,71,38,136,5,6,50,201,196,30,168,4,6,38,196,119,4,
        140,192,11,198,116,3,128,201,2,7,6,38,196,119,8,140,192,11,198,116,3,128,201,4,7,6,38,196,119,12,140,192,11,198,116,3,128,
        201,8,7,38,196,119,16,140,192,11,198,116,47,6,139,222,38,196,119,6,140,192,11,198,116,3,128,201,1,7,6,38,196,119,10,140,192,
        11,198,116,3,128,201,16,7,38,196,119,2,140,192,140,203,59,195,116,3,128,201,32,7,71,38,136,13,71,185,13,0,50,192,243,170,
        176,27,233,190,250,16,0,16,0,16,0,16,0,4,0,4,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,16,0,0,0,16,0,2,0,16,0,0,1,8,8,8,8,1,1,1,
        8,0,0,0,0,0,8,4,2,2,1,1,1,255,224,15,0,0,0,0,7,2,8,255,14,0,0,63,0,60,0,117,2,235,18,60,1,117,2,235,88,60,2,117,79,233,169,
        0,176,28,233,90,250,184,32,0,51,210,247,193,7,0,116,60,247,193,1,0,116,6,5,70,0,131,210,0,247,193,2,0,116,6,5,58,0,131,210,
        0,247,193,4,0,116,6,5,3,3,131,210,0,187,64,0,247,243,131,250,0,116,1,64,139,216,95,94,88,176,28,89,90,31,7,93,207,176,0,233,
        14,250,139,211,131,194,32,247,193,1,0,116,28,81,83,38,137,23,139,218,131,194,70,82,139,62,99,4,30,46,142,30,30,7,232,4,2,
        31,90,91,89,247,193,2,0,116,18,81,83,38,137,87,2,139,218,131,194,58,82,232,91,0,90,91,89,247,193,4,0,116,182,38,137,87,4,
        139,218,139,62,99,4,232,237,1,232,20,30,233,87,255,247,193,1,0,116,17,81,83,38,139,31,30,46,142,30,30,7,232,76,3,31,91,89,
        247,193,2,0,116,11,81,83,38,139,95,2,232,94,0,91,89,247,193,4,0,116,14,38,139,95,4,139,62,99,4,232,79,3,233,27,255,233,100,
        255,6,139,251,160,16,4,36,48,38,136,5,71,141,54,73,4,185,30,0,243,164,141,54,132,4,185,7,0,243,164,141,54,168,4,250,232,110,
        0,141,54,20,0,232,103,0,141,54,116,0,232,96,0,141,54,124,0,232,89,0,141,54,12,1,232,82,0,251,7,195,38,138,7,128,38,16,4,207,
        8,6,16,4,6,140,216,6,31,139,243,142,192,70,141,62,73,4,185,30,0,243,164,141,62,132,4,185,7,0,243,164,141,62,168,4,250,232,
        31,0,141,62,20,0,232,24,0,141,62,116,0,232,17,0,141,62,124,0,232,10,0,141,62,12,1,232,3,0,251,7,195,185,4,0,243,164,195,85,
        80,80,189,184,18,37,15,0,209,224,3,232,46,139,110,0,88,134,196,50,228,209,224,3,232,46,139,110,0,129,237,66,19,3,221,88,93,
        195,60,0,116,19,60,2,116,22,189,141,63,183,14,128,252,7,117,20,128,203,128,235,15,189,141,55,183,8,235,8,189,186,78,183,16,
        128,203,128,185,0,1,186,0,0,14,31,195,0,64,128,192,32,96,160,224,81,177,5,211,226,89,142,192,139,250,139,243,129,230,7,0,
        46,138,180,140,14,50,210,3,250,139,245,139,234,138,199,42,228,227,13,81,139,200,243,164,43,248,131,199,32,89,226,243,246,
        195,128,116,30,138,20,10,210,116,24,50,246,81,177,5,211,226,89,3,213,139,250,70,139,200,243,164,43,248,131,199,32,235,226,
        195,86,134,196,50,228,139,240,46,138,132,7,15,139,240,209,230,46,139,132,255,14,94,195,255,255,141,55,141,63,186,78,0,0,0,
        0,1,1,1,0,3,1,1,1,1,1,1,2,2,3,3,1,80,86,134,196,50,228,139,240,46,128,188,7,15,0,94,88,195,232,199,0,232,87,0,232,235,0,139,
        215,128,194,6,131,195,35,189,1,0,232,249,31,195,232,12,0,185,0,1,51,255,131,195,3,232,166,31,195,139,215,128,194,6,236,178,
        192,176,20,156,250,238,66,236,157,38,136,71,65,186,199,3,236,36,1,38,136,7,134,196,186,200,3,236,10,228,116,2,254,200,38,
        136,71,1,186,198,3,236,38,136,71,2,195,83,186,196,3,131,195,5,185,4,0,176,1,232,18,1,91,178,204,236,38,136,71,9,178,202,236,
        38,136,71,4,139,215,83,131,195,10,185,25,0,50,192,232,245,0,91,139,215,128,194,6,156,250,236,82,178,192,176,16,238,66,236,
        38,136,71,51,90,236,82,178,192,176,18,238,66,236,38,136,71,53,90,236,178,192,176,19,238,66,236,157,38,136,71,54,83,178,206,
        131,195,55,185,9,0,50,192,232,182,0,91,195,38,137,127,64,186,196,3,236,38,136,7,186,212,3,236,38,136,71,1,186,206,3,236,38,
        136,71,2,139,215,128,194,6,236,186,192,3,236,38,136,71,3,195,186,196,3,176,2,156,250,238,66,236,74,80,184,2,15,239,176,4,
        238,66,236,74,80,184,4,7,239,178,206,176,6,238,66,236,74,80,184,6,4,239,176,5,238,66,236,74,80,184,5,1,239,176,4,238,66,236,
        74,80,190,255,255,198,4,0,184,4,0,239,138,4,38,136,71,66,184,4,1,239,138,4,38,136,71,67,184,4,2,239,138,4,38,136,71,68,184,
        4,3,239,138,4,38,136,71,69,88,134,196,176,4,239,88,134,196,176,5,239,88,134,196,176,6,239,178,196,88,134,196,176,4,239,88,
        134,196,176,2,239,157,195,156,250,238,66,80,236,38,136,7,88,157,74,254,192,67,73,117,238,195,232,252,0,38,139,127,64,232,
        96,0,139,215,128,194,6,38,138,71,4,238,83,131,195,35,185,16,0,51,255,189,1,0,232,49,30,91,232,176,0,195,38,138,71,2,186,198,
        3,238,87,185,0,1,51,255,83,131,195,3,186,0,0,232,214,29,91,95,232,1,0,195,139,215,128,194,6,236,178,192,38,138,39,176,20,
        239,38,138,71,1,38,138,39,10,228,116,6,186,199,3,238,235,4,186,200,3,238,195,186,196,3,184,0,1,156,250,239,83,131,195,5,185,
        4,0,176,1,232,197,0,91,178,194,38,138,71,9,238,178,196,184,0,3,239,157,139,215,176,17,50,228,239,83,131,195,10,185,25,0,50,
        192,232,163,0,91,139,215,128,194,6,82,156,250,236,178,192,176,16,238,38,138,71,51,238,176,18,238,38,138,71,53,238,176,19,
        238,38,138,71,54,238,157,83,178,206,131,195,55,185,9,0,50,192,232,112,0,91,90,195,186,196,3,38,138,7,238,186,212,3,38,138,
        71,1,238,186,206,3,38,138,71,2,238,38,139,87,64,128,194,6,236,186,192,3,38,138,71,3,238,195,186,196,3,184,4,7,239,178,206,
        184,6,4,239,184,5,0,239,190,255,255,178,196,184,2,0,239,38,138,71,66,136,4,184,2,1,239,38,138,71,67,136,4,184,2,2,239,38,
        138,71,68,136,4,184,2,4,239,38,138,71,69,136,4,184,2,15,239,138,4,195,38,138,39,239,254,192,67,73,117,246,195,80,82,186,196,
        3,184,2,4,239,184,4,7,239,178,206,184,5,0,239,184,6,4,239,184,4,2,239,139,209,128,226,240,128,202,10,236,178,192,176,0,238,
        90,88,195,80,82,186,196,3,184,2,3,239,184,4,3,239,178,206,184,5,16,239,176,6,180,10,129,249,180,3,116,2,180,14,239,184,4,
        0,239,90,88,195,186,196,3,176,3,138,227,239,195,38,138,0,60,255,116,7,58,196,116,5,70,235,242,249,195,248,195,186,196,3,176,
        1,238,66,236,80,37,223,32,10,224,74,176,1,239,88,134,196,195,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,3,0,0,0,0,0,0,0,0,0,3,0,3,0,
        3,0,3,0,3,0,3,0,4,0,192,18,232,18,10,19,28,19,66,19,130,19,194,19,2,20,66,20,130,20,194,20,0,0,0,0,130,21,194,21,2,22,66,
        22,130,22,194,22,0,0,0,0,0,0,0,0,66,26,2,24,66,24,130,24,194,24,0,0,0,0,0,0,2,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,130,23,194,23,
        2,25,2,25,66,25,66,25,0,0,0,0,0,0,130,25,66,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194,25,
        2,26,40,24,8,0,8,9,3,0,2,99,45,39,40,144,43,160,191,31,0,199,6,7,0,0,0,0,156,142,143,20,31,150,185,163,255,0,1,2,3,4,5,6,
        7,16,17,18,19,20,21,22,23,8,0,15,0,0,0,0,0,0,16,14,0,255,40,24,8,0,8,9,3,0,2,99,45,39,40,144,43,160,191,31,0,199,6,7,0,0,
        0,0,156,142,143,20,31,150,185,163,255,0,1,2,3,4,5,6,7,16,17,18,19,20,21,22,23,8,0,15,0,0,0,0,0,0,16,14,0,255,80,24,8,0,16,
        1,3,0,2,99,95,79,80,130,85,129,191,31,0,199,6,7,0,0,0,0,156,142,143,40,31,150,185,163,255,0,1,2,3,4,5,6,7,16,17,18,19,20,
        21,22,23,8,0,15,0,0,0,0,0,0,16,14,0,255,80,24,8,0,16,1,3,0,2,99,95,79,80,130,85,129,191,31,0,199,6,7,0,0,0,0,156,142,143,
        40,31,150,185,163,255,0,1,2,3,4,5,6,7,16,17,18,19,20,21,22,23,8,0,15,0,0,0,0,0,0,16,14,0,255,40,24,8,0,64,9,3,0,2,99,45,39,
        40,144,43,128,191,31,0,193,0,0,0,0,0,0,156,142,143,20,0,150,185,162,255,0,19,21,23,2,4,6,7,16,17,18,19,20,21,22,23,1,0,3,
        0,0,0,0,0,0,48,15,0,255,40,24,8,0,64,9,3,0,2,99,45,39,40,144,43,128,191,31,0,193,0,0,0,0,0,0,156,142,143,20,0,150,185,162,
        255,0,19,21,23,2,4,6,7,16,17,18,19,20,21,22,23,1,0,3,0,0,0,0,0,0,48,15,0,255,80,24,8,0,64,1,1,0,6,99,95,79,80,130,84,128,
        191,31,0,193,0,0,0,0,0,0,156,142,143,40,0,150,185,194,255,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,1,0,1,0,0,0,0,0,
        0,0,13,0,255,80,24,14,0,16,0,3,0,3,166,95,79,80,130,85,129,191,31,0,77,11,12,0,0,0,0,131,133,93,40,13,99,186,163,255,0,8,
        8,8,8,8,8,8,16,24,24,24,24,24,24,24,14,0,15,8,0,0,0,0,0,16,10,0,255,80,24,16,0,125,33,15,0,6,99,95,79,80,130,85,129,191,31,
        0,64,0,0,0,0,0,0,156,142,143,40,31,150,185,227,255,0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63,1,0,15,0,0,0,0,0,0,0,5,15,255,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,40,24,8,0,64,0,0,0,3,35,55,39,45,55,49,21,4,17,0,71,6,7,0,0,0,0,225,36,199,20,8,224,240,163,255,0,1,2,3,4,5,6,7,16,
        17,18,19,20,21,22,23,8,0,15,0,0,0,0,0,0,16,14,0,255,80,0,0,0,0,41,15,0,6,98,95,79,80,130,85,129,191,31,0,64,0,0,0,0,0,0,156,
        142,143,40,31,150,185,227,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,1,0,15,0,0,0,15,0,0,8,5,15,255,80,0,0,0,0,41,15,0,6,99,95,
        79,80,130,85,129,191,31,0,64,0,0,0,0,0,0,156,142,143,40,31,150,185,227,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,1,0,15,0,0,0,
        15,0,0,8,5,15,255,40,24,8,0,32,9,15,0,6,99,45,39,40,144,43,128,191,31,0,192,0,0,0,0,0,0,156,142,143,20,0,150,185,227,255,
        0,1,2,3,4,5,6,7,16,17,18,19,20,21,22,23,1,0,15,0,0,0,0,0,0,0,5,15,255,80,24,8,0,64,1,15,0,6,99,95,79,80,130,84,128,191,31,
        0,192,0,0,0,0,0,0,156,142,143,40,0,150,185,227,255,0,1,2,3,4,5,6,7,16,17,18,19,20,21,22,23,1,0,15,0,0,0,0,0,0,0,5,15,255,
        80,24,14,0,128,5,15,0,0,162,96,79,86,26,80,224,112,31,0,0,0,0,0,0,0,0,94,46,93,20,0,94,110,139,255,0,8,0,0,24,24,0,0,0,8,
        0,0,0,24,0,0,11,0,5,0,0,0,0,0,0,16,7,15,255,80,24,14,0,128,5,15,0,0,167,91,79,83,23,80,186,108,31,0,0,0,0,0,0,0,0,94,43,93,
        20,15,95,10,139,255,0,1,0,0,4,7,0,0,0,1,0,0,4,7,0,0,1,0,5,0,0,0,0,0,0,16,7,15,255,80,24,14,0,128,1,15,0,6,162,95,79,80,130,
        84,128,191,31,0,64,0,0,0,0,0,0,131,133,93,40,15,99,186,227,255,0,8,0,0,24,24,0,0,0,8,0,0,0,24,0,0,11,0,5,0,0,0,0,0,0,0,5,
        5,255,80,24,14,0,128,1,15,0,6,163,95,79,80,130,84,128,191,31,0,64,0,0,0,0,0,0,131,133,93,40,15,99,186,227,255,0,1,2,3,4,5,
        20,7,56,57,58,59,60,61,62,63,1,0,15,0,0,0,0,0,0,0,5,15,255,40,24,14,0,8,9,3,0,2,163,45,39,40,144,43,160,191,31,0,77,11,12,
        0,0,0,0,131,133,93,20,31,99,186,163,255,0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63,8,0,15,0,0,0,0,0,0,16,14,0,255,40,24,14,
        0,8,9,3,0,2,163,45,39,40,144,43,160,191,31,0,77,11,12,0,0,0,0,131,133,93,20,31,99,186,163,255,0,1,2,3,4,5,20,7,56,57,58,59,
        60,61,62,63,8,0,15,0,0,0,0,0,0,16,14,0,255,80,24,14,0,16,1,3,0,2,163,95,79,80,130,85,129,191,31,0,77,11,12,0,0,0,0,131,133,
        93,40,31,99,186,163,255,0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63,8,0,15,0,0,0,0,0,0,16,14,0,255,80,24,14,0,16,1,3,0,2,163,
        95,79,80,130,85,129,191,31,0,77,11,12,0,0,0,0,131,133,93,40,31,99,186,163,255,0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63,8,
        0,15,0,0,0,0,0,0,16,14,0,255,40,24,16,0,8,8,3,0,2,103,45,39,40,144,43,160,191,31,0,79,13,14,0,0,0,0,156,142,143,20,31,150,
        185,163,255,0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63,12,0,15,8,0,0,0,0,0,16,14,0,255,80,24,16,0,16,0,3,0,2,103,95,79,80,130,
        85,129,191,31,0,79,13,14,0,0,0,0,156,142,143,40,31,150,185,163,255,0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63,12,0,15,8,0,0,
        0,0,0,16,14,0,255,80,24,16,0,16,0,3,0,2,102,95,79,80,130,85,129,191,31,0,79,13,14,0,0,0,0,156,142,143,40,15,150,185,163,255,
        0,8,8,8,8,8,8,8,16,24,24,24,24,24,24,24,14,0,15,8,0,0,0,0,0,16,10,0,255,80,29,16,0,160,1,15,0,6,227,95,79,80,130,84,128,11,
        62,0,64,0,0,0,0,0,0,234,140,223,40,0,231,4,195,255,0,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,1,0,15,0,0,0,0,0,0,0,5,
        1,255,80,29,16,0,160,1,15,0,6,227,95,79,80,130,84,128,11,62,0,64,0,0,0,0,0,0,234,140,223,40,0,231,4,227,255,0,1,2,3,4,5,20,
        7,56,57,58,59,60,61,62,63,1,0,15,0,0,0,0,0,0,0,5,15,255,40,24,8,0,32,1,15,0,14,99,95,79,80,130,84,128,191,31,0,65,0,0,0,0,
        0,0,156,142,143,40,64,150,185,163,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,65,0,15,0,0,0,0,0,0,64,5,15,255,80,36,127,60,
        19,88,119,24,80,36,128,128,38,135,4,127,8,6,135,4,88,36,127,58,6,73,4,117,6,233,150,0,233,110,236,246,6,137,4,1,117,3,233,
        137,0,138,30,136,4,129,227,15,0,46,138,159,136,30,138,251,139,22,99,4,60,7,116,57,60,15,116,53,129,250,212,3,116,104,138,
        38,16,4,128,228,48,128,252,48,116,31,128,38,135,4,253,186,212,3,128,251,255,144,116,78,138,62,137,4,208,231,245,128,211,0,
        128,38,137,4,127,235,48,176,7,235,57,129,250,180,3,116,51,138,38,16,4,128,228,48,128,252,48,117,37,128,14,135,4,2,186,180,
        3,128,251,255,144,116,25,128,231,128,128,38,137,4,127,8,62,137,4,128,38,136,4,240,8,30,136,4,235,2,176,0,250,199,6,12,1,141,
        55,140,14,14,1,251,128,38,135,4,243,162,73,4,138,38,16,4,128,228,48,128,252,48,117,101,246,6,135,4,2,116,23,186,180,3,60,
        15,116,115,60,7,116,111,198,6,73,4,7,128,38,135,4,127,235,99,198,6,132,4,24,199,6,133,4,14,0,160,73,4,180,0,205,66,199,6,
        96,4,12,11,128,14,135,4,8,233,125,235,198,6,132,4,24,199,6,133,4,8,0,160,73,4,180,0,128,14,135,4,8,60,1,118,9,60,4,115,5,
        128,14,135,4,4,205,66,233,86,235,246,6,135,4,2,117,210,186,212,3,60,15,116,4,60,7,117,10,198,6,73,4,0,128,38,135,4,127,137,
        22,99,4,199,6,78,4,0,0,198,6,98,4,0,185,8,0,191,80,4,30,7,43,192,243,171,138,38,73,4,232,67,235,232,51,235,232,53,242,38,
        138,7,42,228,163,74,4,38,138,71,1,162,132,4,38,138,71,2,163,133,4,38,139,71,3,163,76,4,38,139,71,20,134,196,163,96,4,139,
        62,99,4,232,249,244,50,192,238,250,236,186,192,3,176,20,238,50,192,238,251,180,32,232,56,246,80,246,6,137,4,8,117,41,185,
        22,0,51,255,189,1,0,83,131,195,35,232,201,234,232,181,18,91,232,147,235,138,38,73,4,232,215,234,138,216,160,137,4,36,6,208,
        232,232,223,17,232,60,235,88,232,0,246,138,38,73,4,232,154,242,116,79,199,6,96,4,0,0,232,92,242,187,12,1,250,137,7,140,79,
        2,251,196,30,168,4,38,196,95,12,140,192,11,195,116,43,190,7,0,138,38,73,4,232,186,245,114,31,38,138,7,254,200,162,132,4,38,
        139,71,1,163,133,4,250,38,139,71,3,163,12,1,38,139,71,5,163,14,1,251,233,242,0,139,14,99,4,232,51,245,138,38,73,4,232,94,
        234,179,0,232,120,241,184,0,160,232,169,241,46,142,30,28,7,196,30,168,4,38,196,95,8,140,192,11,195,116,68,190,11,0,138,38,
        73,4,232,96,245,114,56,38,138,39,38,138,71,1,38,139,79,2,38,139,87,4,38,139,111,6,38,142,95,8,6,83,139,216,184,0,160,232,
        105,241,232,190,25,91,7,38,138,71,10,60,255,116,10,254,200,46,142,30,28,7,162,132,4,196,30,168,4,38,196,95,16,140,192,11,
        195,116,104,38,196,95,6,140,192,11,195,116,94,190,7,0,138,38,73,4,232,4,245,114,82,138,38,133,4,38,58,39,117,73,38,138,39,
        38,138,71,1,185,0,1,186,0,0,38,139,111,3,38,142,95,5,6,83,139,216,128,227,127,184,0,160,232,3,241,91,7,176,3,186,196,3,238,
        66,236,74,36,19,138,200,38,138,71,1,208,224,208,224,138,224,208,228,36,12,128,228,32,10,224,10,225,176,3,239,46,142,30,28,
        7,139,14,99,4,232,116,244,46,142,30,28,7,196,30,168,4,38,196,95,16,140,192,11,195,117,3,235,119,144,38,196,95,10,140,192,
        11,195,116,108,190,20,0,138,38,73,4,232,122,244,114,96,38,139,79,4,227,27,6,83,38,139,127,6,38,196,95,8,51,237,232,29,233,
        246,6,137,4,8,117,3,232,2,17,91,7,38,139,79,12,227,31,6,83,38,139,127,14,38,196,95,16,138,22,137,4,128,226,6,208,234,246,
        6,137,4,8,117,3,232,159,16,91,7,38,138,7,10,192,116,19,120,8,138,38,133,4,254,204,235,2,180,31,176,20,139,22,99,4,239,46,
        142,30,28,7,232,22,13,128,62,73,4,7,119,30,187,128,30,160,73,4,42,228,3,216,46,138,7,162,101,4,176,48,128,62,73,4,6,117,2,
        176,63,162,102,4,233,147,232,44,40,45,41,42,46,30,41,255,255,255,255,255,255,139,139,139,11,72,72,255,255,255,255,232,3,0,
        233,117,232,137,14,96,4,246,6,135,4,8,117,35,138,197,36,96,60,32,117,5,185,0,30,235,22,246,6,135,4,1,117,15,138,38,73,4,232,
        87,240,117,6,160,133,4,232,6,0,176,10,232,137,0,195,247,193,224,224,117,86,138,208,254,202,138,242,254,206,58,205,114,18,
        138,229,10,225,58,224,115,21,58,202,116,62,58,238,116,58,235,11,128,249,0,116,51,138,234,134,205,235,45,128,249,3,118,40,
        138,229,128,196,2,58,225,114,16,42,233,2,234,138,202,60,14,124,21,129,233,1,1,235,15,128,253,2,119,4,138,202,235,6,138,232,
        208,237,138,202,195,232,3,0,233,222,231,138,207,50,237,209,225,139,241,137,148,80,4,56,62,98,4,117,5,139,194,232,1,0,195,
        232,23,0,139,200,3,14,78,4,209,249,176,14,139,22,99,4,138,229,239,254,192,138,225,239,195,83,139,216,138,196,246,38,74,4,
        50,255,3,195,209,224,91,195,138,223,50,255,209,227,139,151,80,4,139,14,96,4,95,94,91,88,88,31,7,93,207,246,6,135,4,8,117,
        5,43,192,233,120,231,180,4,205,66,95,94,131,196,6,31,7,93,207,162,98,4,139,14,76,4,152,80,247,225,163,78,4,139,200,128,62,
        73,4,7,119,2,209,249,176,12,232,148,255,91,209,227,139,135,80,4,232,125,255,233,64,231,232,3,0,233,58,231,232,18,5,138,38,
        73,4,139,240,209,238,209,238,209,238,209,238,209,238,209,238,209,238,209,238,209,230,46,139,180,144,18,209,230,129,254,10,
        0,115,5,46,255,148,7,32,195,6,32,17,32,167,32,47,33,247,33,138,216,232,9,10,139,193,232,81,0,232,1,0,195,83,50,237,128,251,
        0,116,49,3,240,138,230,42,227,232,44,0,3,245,3,253,254,204,117,245,88,176,32,232,39,0,3,253,254,203,117,247,46,142,30,28,
        7,128,62,73,4,7,116,7,160,101,4,186,216,3,238,195,138,222,235,220,138,202,86,87,243,165,95,94,195,138,202,87,243,171,95,195,
        246,6,135,4,4,116,18,82,182,3,178,218,80,236,168,8,116,251,176,37,178,216,238,88,90,232,223,254,3,6,78,4,139,248,139,240,
        43,209,254,198,254,194,139,46,74,4,3,237,138,195,246,38,74,4,3,192,6,31,195,138,216,232,115,9,139,193,232,20,5,139,248,43,
        209,129,194,1,1,208,230,208,230,128,62,73,4,6,115,4,208,226,209,231,232,1,0,195,6,31,50,237,208,227,208,227,116,43,138,195,
        180,80,246,228,139,247,3,240,138,230,42,227,232,30,0,129,238,176,31,129,239,176,31,254,204,117,241,138,199,232,38,0,129,239,
        176,31,254,203,117,245,195,138,222,235,238,138,202,86,87,243,164,95,94,129,198,0,32,129,199,0,32,86,87,138,202,243,164,95,
        94,195,138,202,87,243,170,95,129,199,0,32,87,138,202,243,170,95,195,138,216,184,0,160,142,192,139,193,83,138,62,98,4,232,
        57,5,91,139,248,43,209,129,194,1,1,139,46,133,4,139,14,74,4,232,1,0,195,6,31,138,195,42,228,82,247,229,247,225,139,247,3,
        240,90,139,193,10,219,116,47,80,138,206,42,203,50,237,82,139,193,247,229,139,200,186,206,3,184,5,1,239,178,196,184,2,15,239,
        90,88,232,19,0,82,80,186,206,3,184,5,0,239,88,90,232,24,0,195,138,222,235,248,81,138,202,50,237,86,87,243,164,95,94,3,240,
        3,248,89,226,238,195,138,247,42,255,80,82,139,195,247,229,139,216,90,88,80,232,14,0,88,3,248,75,117,246,186,196,3,184,2,15,
        239,195,82,186,196,3,184,2,15,239,90,43,192,138,202,50,237,87,243,170,95,138,230,82,186,196,3,176,2,239,90,176,255,138,202,
        87,243,170,95,195,138,216,184,0,160,142,192,139,193,83,82,232,216,4,90,91,139,248,43,209,129,194,1,1,139,46,133,4,139,14,
        74,4,232,1,0,195,6,31,138,195,42,228,82,247,229,247,225,209,224,209,224,209,224,139,247,3,240,90,139,193,10,219,116,23,80,
        138,206,42,203,50,237,82,139,193,247,229,139,200,90,88,232,8,0,232,38,0,195,138,222,235,248,80,209,224,209,224,209,224,81,
        138,202,50,237,209,225,209,225,209,225,86,87,243,164,95,94,3,240,3,248,89,226,232,88,195,138,247,42,255,80,82,139,195,247,
        229,139,216,90,88,232,14,0,80,209,224,209,224,209,224,3,248,75,88,117,240,195,80,43,192,138,202,50,237,209,225,209,225,209,
        225,138,198,87,243,170,95,88,195,232,3,0,233,102,228,232,62,2,138,38,73,4,139,240,209,238,209,238,209,238,209,238,209,238,
        209,238,209,238,209,238,209,230,46,139,180,144,18,209,230,129,254,10,0,115,5,46,255,148,219,34,195,218,34,229,34,49,35,150,
        35,64,36,253,138,216,232,52,7,139,194,232,124,253,232,1,0,195,83,50,237,128,251,0,116,49,43,240,138,230,42,227,232,87,253,
        43,245,43,253,254,204,117,245,88,176,32,232,82,253,43,253,254,203,117,247,46,142,30,28,7,128,62,73,4,7,116,7,160,101,4,186,
        216,3,238,195,138,222,235,220,253,138,216,232,232,6,139,194,232,137,2,139,248,43,209,129,194,1,1,208,230,208,230,128,62,73,
        4,6,115,5,208,226,209,231,71,232,1,0,195,6,31,50,237,129,199,240,0,208,227,208,227,116,44,138,195,180,80,246,228,139,247,
        43,240,138,230,42,227,232,142,253,129,238,80,32,129,239,80,32,254,204,117,241,138,199,232,150,253,129,239,80,32,254,203,117,
        245,252,195,138,222,235,237,253,138,216,184,0,160,142,192,139,194,254,196,83,138,62,98,4,232,207,2,91,43,6,74,4,139,248,43,
        209,129,194,1,1,139,46,133,4,139,14,74,4,232,1,0,195,6,31,138,195,42,228,82,247,229,247,225,139,247,43,240,90,139,193,10,
        219,116,48,80,138,206,42,203,50,237,82,139,193,247,229,139,200,186,206,3,184,5,1,239,178,196,184,2,15,239,90,88,232,20,0,
        82,80,186,206,3,184,5,0,239,88,90,232,25,0,252,195,138,222,235,247,81,138,202,50,237,86,87,243,164,95,94,43,240,43,248,89,
        226,238,195,138,247,42,255,80,82,139,195,247,229,139,216,90,88,80,232,159,253,88,43,248,75,117,246,186,196,3,184,2,15,239,
        195,253,138,216,184,0,160,142,192,139,194,254,196,83,82,232,140,2,90,139,30,74,4,209,227,209,227,209,227,43,195,5,7,0,91,
        139,248,43,209,129,194,1,1,139,46,133,4,139,14,74,4,232,1,0,195,6,31,138,195,42,228,82,247,229,247,225,209,224,209,224,209,
        224,139,247,43,240,90,139,193,10,219,116,24,80,138,206,42,203,50,237,82,139,193,247,229,139,200,90,88,232,9,0,232,39,0,252,
        195,138,222,235,247,80,209,224,209,224,209,224,81,138,202,50,237,209,225,209,225,209,225,86,87,243,164,95,94,43,240,43,248,
        89,226,232,88,195,138,247,42,255,80,82,139,195,247,229,139,216,90,88,232,178,253,80,209,224,209,224,209,224,43,248,75,88,
        117,240,195,80,138,230,42,229,254,196,58,224,88,117,2,42,192,195,232,3,0,233,16,226,160,73,4,50,228,209,224,139,240,46,139,
        180,144,18,209,230,129,254,10,0,115,5,46,255,148,31,37,195,30,37,41,37,121,37,45,38,177,38,232,243,4,50,237,138,207,139,249,
        209,231,139,133,80,4,139,30,76,4,139,22,74,4,232,31,0,139,247,139,22,99,4,131,194,6,246,6,135,4,4,6,31,116,11,236,168,1,117,
        251,250,236,168,1,116,251,173,195,51,255,227,4,3,251,226,252,139,200,138,196,246,226,50,237,3,193,209,224,3,248,195,232,163,
        4,161,80,4,232,67,0,139,240,138,38,73,4,6,31,131,236,8,139,236,232,70,0,46,142,30,28,7,30,196,62,12,1,184,0,0,186,128,0,187,
        8,0,232,92,4,31,114,22,196,62,124,0,140,192,11,199,116,12,184,128,0,186,128,0,187,8,0,232,67,4,131,196,8,195,83,139,216,138,
        196,246,38,74,4,209,224,209,224,42,255,3,195,91,195,128,252,6,117,25,182,4,138,4,136,70,0,69,138,132,0,32,136,70,0,69,131,
        198,80,254,206,117,235,235,22,209,230,182,4,232,19,0,129,198,0,32,232,12,0,129,238,176,31,254,206,117,238,131,237,8,195,138,
        36,138,68,1,185,0,192,178,0,133,193,248,116,1,249,208,210,209,233,209,233,115,242,136,86,0,69,195,186,0,160,142,194,139,243,
        209,238,209,238,209,238,209,238,209,238,209,238,209,238,209,238,209,230,139,132,80,4,232,44,0,139,240,139,30,133,4,43,227,
        139,236,186,206,3,184,5,8,239,139,14,74,4,232,57,0,184,5,0,239,196,62,12,1,184,0,0,186,0,1,232,142,3,3,227,195,83,81,82,42,
        237,138,207,139,216,138,196,246,38,74,4,247,38,133,4,42,255,3,195,139,30,76,4,227,4,3,195,226,252,90,89,91,195,83,38,138,
        4,246,208,136,70,0,69,3,241,75,117,242,91,43,235,195,186,0,160,142,194,161,80,4,232,33,0,139,240,139,30,133,4,43,227,139,
        236,139,22,74,4,232,40,0,196,62,12,1,184,0,0,186,0,1,232,42,3,3,227,195,139,216,138,196,246,38,74,4,247,38,133,4,2,195,128,
        212,0,209,224,209,224,209,224,195,83,83,183,128,42,228,185,8,0,38,138,4,60,0,116,2,10,231,208,207,70,226,242,136,102,0,69,
        131,238,8,139,202,209,225,209,225,209,225,3,241,91,75,117,213,91,43,235,195,232,3,0,233,232,223,138,38,73,4,128,252,17,117,
        6,128,227,128,128,203,63,139,240,209,238,209,238,209,238,209,238,209,238,209,238,209,238,209,238,209,230,46,139,180,144,18,
        209,230,129,254,10,0,115,5,46,255,148,97,39,195,96,39,107,39,171,39,154,40,50,41,232,177,2,138,227,80,81,50,237,138,207,139,
        249,209,231,139,133,80,4,139,30,76,4,139,22,74,4,232,217,253,89,91,139,22,99,4,131,194,6,246,6,135,4,4,116,11,236,168,1,117,
        251,250,236,168,1,116,251,139,195,171,251,226,232,195,232,113,2,138,54,73,4,50,228,80,161,80,4,232,10,254,139,248,88,60,128,
        115,6,197,54,12,1,235,6,44,128,197,54,124,0,128,254,6,114,5,232,6,0,235,3,232,51,0,195,209,224,209,224,209,224,3,240,87,86,
        182,4,172,246,195,128,117,20,170,172,38,136,133,255,31,131,199,79,254,206,117,236,94,95,71,226,227,195,38,50,5,170,172,38,
        50,133,255,31,235,226,209,224,209,224,209,224,3,240,138,211,209,231,128,227,3,138,195,81,185,3,0,208,224,208,224,10,216,226,
        248,138,251,89,87,86,182,4,172,232,66,0,35,195,246,194,128,116,7,38,50,37,38,50,69,1,38,136,37,38,136,69,1,172,232,41,0,35,
        195,246,194,128,116,10,38,50,165,0,32,38,50,133,1,32,38,136,165,0,32,38,136,133,1,32,131,199,80,254,206,117,193,94,95,71,
        71,226,183,195,82,81,83,43,210,185,1,0,139,216,35,217,11,211,209,224,209,225,139,216,35,217,11,211,209,225,115,236,139,194,
        91,89,90,195,50,228,247,38,133,4,80,139,243,209,238,209,238,209,238,209,238,209,238,209,238,209,238,209,238,209,230,139,132,
        80,4,232,189,253,139,248,186,0,160,142,194,139,46,74,4,139,22,133,4,197,54,12,1,88,3,240,232,1,0,195,246,195,128,116,11,82,
        186,206,3,184,3,24,239,90,235,23,87,82,186,196,3,184,2,15,239,90,43,192,81,139,202,170,3,253,79,226,250,89,95,82,186,196,
        3,138,227,176,2,239,90,87,83,81,139,218,139,205,138,4,38,138,37,38,136,5,70,3,249,75,117,242,89,91,43,242,95,71,226,178,186,
        206,3,184,3,0,239,178,196,184,2,15,239,195,246,38,133,4,80,83,161,80,4,232,159,253,139,248,186,0,160,142,194,91,88,139,22,
        133,4,139,46,74,4,197,54,12,1,3,240,83,81,87,86,232,10,0,94,95,131,199,8,89,91,226,240,195,82,85,209,229,209,229,209,229,
        252,172,138,224,87,185,8,0,138,195,208,228,114,2,138,199,170,226,245,95,3,253,74,117,232,93,90,195,232,3,0,233,131,221,138,
        38,73,4,139,240,209,238,209,238,209,238,209,238,209,238,209,238,209,238,209,238,209,230,46,139,180,144,18,209,230,129,254,
        10,0,115,5,46,255,148,187,41,195,186,41,197,41,171,39,154,40,50,41,232,87,0,80,81,50,237,138,207,139,249,209,231,139,133,
        80,4,139,30,76,4,139,22,74,4,232,129,251,89,91,139,22,99,4,131,194,6,246,6,135,4,4,116,11,236,168,1,117,251,250,236,168,1,
        116,251,138,195,170,251,71,226,231,195,252,22,31,139,245,86,87,139,203,243,166,95,94,116,10,64,3,251,74,117,240,43,192,248,
        195,249,195,190,0,184,139,62,16,4,129,231,48,0,131,255,48,117,3,190,0,176,142,198,195,102,38,133,75,20,14,128,62,99,4,180,
        116,9,246,6,135,4,8,116,5,205,66,233,197,220,51,237,196,62,168,4,131,199,4,38,196,61,140,192,11,199,116,1,69,232,19,1,10,
        255,117,85,138,251,160,102,4,36,224,128,227,31,10,195,162,102,4,138,223,138,232,128,227,15,138,251,208,227,128,227,16,128,
        231,7,10,223,128,62,73,4,3,118,17,180,0,138,195,232,138,220,232,149,0,11,237,116,3,38,136,29,180,17,138,195,232,121,220,232,
        132,0,11,237,116,4,38,136,93,16,138,221,128,227,32,177,5,210,235,128,62,73,4,3,118,83,160,102,4,36,223,128,227,1,116,2,12,
        32,162,102,4,36,16,12,2,10,216,180,1,138,195,232,66,220,232,77,0,11,237,116,4,38,136,93,1,254,195,254,195,180,2,138,195,232,
        44,220,232,55,0,11,237,116,4,38,136,93,2,254,195,254,195,180,3,138,195,232,22,220,232,33,0,11,237,116,4,38,136,93,3,232,84,
        0,233,246,219,81,51,201,180,5,236,168,8,117,7,226,249,254,204,117,245,249,89,195,82,83,139,216,232,230,255,156,250,236,178,
        192,139,195,134,196,238,134,196,238,176,32,238,157,91,90,195,82,83,139,216,232,203,255,156,250,236,82,139,195,178,192,238,
        66,235,0,236,138,224,90,236,235,0,178,192,176,32,238,157,91,90,195,232,6,0,178,192,176,32,238,195,232,168,219,236,195,195,
        43,253,43,45,44,103,44,19,7,19,7,19,7,155,44,168,44,181,44,19,7,19,7,19,7,19,7,19,7,19,7,194,44,19,7,218,44,247,44,19,7,58,
        45,19,7,78,45,98,45,107,45,124,45,169,45,152,139,240,209,230,131,254,56,115,60,46,255,164,124,43,128,62,73,4,19,116,48,51,
        237,196,62,168,4,131,199,4,38,196,61,140,192,11,199,116,1,69,232,151,255,138,227,138,199,232,59,219,232,70,255,232,129,255,
        11,237,116,9,138,199,42,255,3,251,38,136,5,233,22,219,51,237,196,62,168,4,131,199,4,38,196,61,140,192,11,199,116,1,69,232,
        100,255,180,17,138,199,232,8,219,232,19,255,232,78,255,11,237,116,6,131,199,17,38,136,61,233,230,218,128,62,73,4,19,116,48,
        30,6,196,62,168,4,131,199,4,38,196,61,140,192,11,199,116,9,31,30,139,242,185,17,0,243,164,7,31,139,218,191,0,0,185,17,0,51,
        237,232,196,218,232,176,2,232,10,255,233,172,218,250,232,12,255,186,192,3,176,16,238,66,236,251,10,219,117,10,128,38,101,
        4,223,36,247,235,12,144,254,203,117,7,128,14,101,4,32,12,8,180,16,232,144,218,232,155,254,232,214,254,233,120,218,138,195,
        232,130,218,232,168,254,138,252,233,203,0,176,17,232,117,218,232,155,254,138,252,233,190,0,139,218,232,104,218,51,237,232,
        125,2,233,81,218,246,6,137,4,6,116,3,232,36,1,82,232,82,218,232,74,254,90,232,93,1,233,57,218,139,251,139,218,180,32,232,
        151,229,138,22,137,4,128,226,6,208,234,80,232,227,1,88,232,134,229,233,28,218,176,16,232,38,218,232,76,254,10,219,117,24,
        138,196,12,128,10,255,117,2,36,127,180,16,232,16,218,232,27,254,232,86,254,233,248,217,138,199,246,196,128,117,8,36,3,208,
        224,208,224,235,2,36,15,180,20,232,241,217,232,252,253,232,55,254,233,217,217,232,229,217,232,221,253,232,135,0,95,94,91,
        88,88,138,208,31,7,93,207,139,251,139,218,180,32,232,35,229,80,232,157,1,88,232,27,229,233,177,217,186,198,3,139,195,238,
        233,168,217,186,198,3,236,50,228,139,216,95,94,88,89,90,31,7,93,207,232,163,217,176,16,232,199,253,138,220,128,227,128,177,
        7,210,235,176,20,232,144,217,232,182,253,138,252,10,219,117,9,128,231,12,208,239,208,239,235,207,128,231,15,235,202,180,32,
        232,204,228,80,232,7,0,88,232,196,228,233,90,217,81,83,232,12,0,232,47,0,232,112,0,91,67,89,226,240,195,186,199,3,138,195,
        238,186,201,3,156,235,0,250,236,235,0,36,63,138,224,236,235,0,36,63,138,232,236,157,36,63,138,200,138,244,50,210,195,83,138,
        198,80,138,197,80,138,193,37,63,0,51,219,51,201,46,247,38,57,42,3,216,19,202,88,37,63,0,46,247,38,55,42,3,216,19,202,88,37,
        63,0,46,247,38,53,42,3,216,19,202,3,219,19,201,129,195,0,128,131,209,0,138,241,138,233,91,195,82,138,195,186,200,3,238,186,
        201,3,88,138,196,156,250,238,235,0,138,197,238,235,0,138,193,238,157,139,208,195,80,186,198,3,236,60,255,116,3,176,255,238,
        128,251,0,185,64,0,116,24,88,80,128,252,15,116,5,128,252,7,117,6,190,177,48,235,87,144,190,177,47,235,59,144,88,80,128,252,
        19,116,6,190,49,48,235,46,144,88,80,187,32,0,232,102,3,190,17,49,185,16,0,187,16,0,232,249,0,190,241,48,185,16,0,187,0,0,
        88,80,168,3,116,32,131,198,16,232,228,0,88,235,27,144,88,80,168,3,116,16,131,198,64,185,64,0,187,0,0,232,206,0,88,235,5,144,
        88,232,140,0,195,139,194,81,38,138,55,67,38,138,47,67,38,138,15,67,83,139,223,80,169,3,0,116,3,232,2,255,232,67,255,88,91,
        89,71,226,222,195,81,83,139,223,232,203,254,91,71,38,136,55,67,38,136,47,67,38,136,15,67,89,226,232,195,82,236,139,199,134,
        224,128,252,16,116,15,127,28,38,138,7,90,82,232,10,252,254,196,67,226,236,11,237,116,1,67,254,196,38,138,7,90,232,247,251,
        195,90,195,139,251,42,219,138,195,232,6,252,38,136,37,254,195,71,128,251,16,114,240,11,237,116,1,71,176,17,232,241,251,38,
        136,37,195,179,0,81,183,3,46,138,36,70,176,0,246,196,4,116,2,4,42,246,196,32,116,2,4,21,80,208,228,254,207,117,233,88,138,
        200,88,138,232,88,138,240,86,83,50,255,232,166,254,91,94,254,195,89,58,217,124,201,195,3,203,81,46,138,12,138,233,138,241,
        86,83,232,141,254,91,94,70,67,89,59,217,124,234,195,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,
        27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,5,17,28,
        8,11,37,40,2,7,27,32,15,20,40,44,12,17,37,42,20,30,50,54,15,19,39,44,27,32,52,57,6,11,31,36,19,24,44,48,9,13,33,38,21,26,
        46,51,19,23,43,48,31,36,56,61,14,24,45,50,32,36,56,63,0,1,2,3,4,5,20,7,0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63,56,57,58,
        59,60,61,62,63,0,1,2,3,4,5,20,7,0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63,56,57,58,59,60,61,62,63,0,5,17,28,8,11,20,40,0,5,
        17,28,8,11,20,40,14,24,45,50,32,36,56,63,14,24,45,50,32,36,56,63,0,5,17,28,8,11,20,40,0,5,17,28,8,11,20,40,14,24,45,50,32,
        36,56,63,14,24,45,50,32,36,56,63,0,0,0,0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,63,63,63,63,63,63,63,63,0,0,0,0,0,0,0,0,
        7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,63,63,63,63,63,63,63,63,0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63,0,5,17,28,8,11,20,40,14,
        24,45,50,32,36,56,63,0,5,8,11,14,17,20,24,28,32,36,40,45,50,56,63,0,16,31,47,63,63,63,63,63,63,63,63,63,47,31,16,0,0,0,0,
        0,0,0,0,31,39,47,55,63,63,63,63,63,63,63,63,63,55,47,39,31,31,31,31,31,31,31,31,45,49,54,58,63,63,63,63,63,63,63,63,63,58,
        54,49,45,45,45,45,45,45,45,45,0,7,14,21,28,28,28,28,28,28,28,28,28,21,14,7,0,0,0,0,0,0,0,0,14,17,21,24,28,28,28,28,28,28,
        28,28,28,24,21,17,14,14,14,14,14,14,14,14,20,22,24,26,28,28,28,28,28,28,28,28,28,26,24,22,20,20,20,20,20,20,20,20,0,4,8,12,
        16,16,16,16,16,16,16,16,16,12,8,4,0,0,0,0,0,0,0,0,8,10,12,14,16,16,16,16,16,16,16,16,16,14,12,10,8,8,8,8,8,8,8,8,11,12,13,
        15,16,16,16,16,16,16,16,16,16,15,13,12,11,11,11,11,11,11,11,11,139,235,185,9,0,190,33,49,81,187,0,0,83,46,138,48,128,195,
        8,128,251,24,124,3,128,235,24,46,138,8,128,195,8,128,251,24,124,3,128,235,24,46,138,40,86,80,139,221,168,3,116,3,232,192,
        251,232,1,252,88,94,69,91,254,195,128,251,24,124,199,131,198,24,89,226,189,195,138,38,73,4,139,240,81,177,8,211,238,89,209,
        230,46,139,180,144,18,209,230,129,254,10,0,115,5,46,255,164,104,50,233,171,212,19,7,19,7,114,50,154,50,235,50,46,142,6,32,
        7,80,80,232,23,1,210,232,34,196,38,138,12,91,246,195,128,117,13,246,212,34,204,10,193,38,136,4,88,233,125,212,50,193,235,
        245,80,139,194,232,54,1,186,206,3,138,224,176,8,239,46,142,6,30,7,88,138,232,246,197,128,116,6,184,3,24,239,235,14,178,196,
        184,2,255,239,38,138,7,42,192,38,136,7,178,196,176,2,138,229,128,228,15,239,38,138,39,180,255,38,136,39,239,178,206,184,3,
        0,239,184,8,255,239,134,224,233,40,212,80,139,194,187,64,1,247,227,3,193,139,240,88,46,142,6,30,7,38,136,4,233,16,212,138,
        38,73,4,139,240,81,177,8,211,238,89,209,230,46,139,180,144,18,209,230,129,254,10,0,115,5,46,255,164,38,51,233,237,211,19,
        7,19,7,48,51,70,51,123,51,46,142,6,32,7,232,91,0,38,138,4,34,196,210,224,138,206,210,192,233,205,211,46,142,6,30,7,139,194,
        232,134,0,181,7,42,233,43,210,180,0,138,205,176,4,82,186,206,3,239,90,38,138,7,210,232,36,1,138,204,210,224,10,208,254,196,
        128,252,3,118,226,138,194,233,152,211,80,139,194,187,64,1,247,227,3,193,139,248,88,46,142,6,30,7,38,138,5,233,128,211,83,
        80,176,40,82,128,226,254,246,226,90,246,194,1,116,3,5,0,32,139,240,88,139,209,187,192,2,185,2,3,128,62,73,4,6,114,6,187,128,
        1,185,3,7,34,234,211,234,3,242,138,247,42,201,208,200,2,205,254,207,117,248,138,227,210,236,91,195,247,38,74,4,81,209,233,
        209,233,209,233,3,193,138,223,42,255,139,203,139,30,76,4,227,4,3,195,226,252,89,139,216,128,225,7,176,128,210,232,195,138,
        62,98,4,139,243,177,8,211,238,209,230,139,148,80,4,232,3,0,233,255,210,80,60,13,118,95,30,83,82,185,1,0,232,110,245,90,91,
        31,254,194,58,22,74,4,117,70,50,210,58,54,132,4,117,60,232,253,234,138,38,73,4,232,220,218,116,4,180,0,235,7,30,83,232,185,
        240,91,31,138,30,98,4,136,62,98,4,83,138,252,176,1,43,201,138,54,132,4,138,22,74,4,254,202,30,232,112,235,31,91,136,30,98,
        4,88,195,254,198,232,191,234,235,247,116,19,60,10,116,19,60,7,116,23,60,8,117,147,10,210,116,233,74,235,230,50,210,235,226,
        58,54,132,4,117,218,235,156,185,51,5,179,1,232,229,209,235,204,60,4,115,75,227,73,139,243,81,177,8,211,238,89,209,230,255,
        180,80,4,86,80,81,82,232,119,234,90,89,88,94,81,83,80,134,224,38,138,70,0,69,60,8,116,12,60,13,116,8,60,10,116,4,60,7,117,
        25,86,82,6,85,30,232,48,255,31,93,7,90,94,139,148,80,4,88,91,89,235,77,233,30,210,185,1,0,128,252,2,114,5,38,138,94,0,69,
        86,82,6,85,30,232,33,242,31,93,7,90,94,88,91,89,254,194,58,22,74,4,114,37,138,22,132,4,254,194,254,198,58,242,178,0,114,23,
        254,206,80,83,81,82,86,6,85,30,176,10,232,221,254,31,93,7,94,90,89,91,88,86,80,81,82,232,239,233,90,89,88,94,226,10,90,168,
        1,117,161,232,225,233,235,156,233,105,255,60,0,117,4,6,31,235,103,60,1,117,2,235,97,60,2,117,2,235,91,60,3,117,3,235,93,144,
        60,4,117,4,254,200,235,76,60,16,117,5,6,31,235,82,144,60,17,117,3,235,75,144,60,18,117,3,235,68,144,60,20,117,4,254,200,235,
        59,60,32,117,3,233,151,0,60,33,117,3,233,164,0,60,34,117,3,233,157,0,60,35,117,3,233,150,0,60,36,117,3,233,143,0,60,48,117,
        3,233,227,0,233,75,209,138,224,232,20,0,233,67,209,232,140,220,233,61,209,138,224,128,236,16,232,3,0,233,50,209,30,81,46,
        142,30,28,7,139,14,99,4,232,29,220,89,31,128,252,0,116,33,183,14,189,141,63,128,252,1,116,15,183,8,189,141,55,128,252,2,116,
        5,183,16,189,186,78,186,0,0,185,0,1,14,31,80,128,227,127,184,0,160,232,115,216,88,168,16,116,3,232,195,0,46,142,30,28,7,139,
        14,99,4,232,3,220,232,54,245,195,44,32,46,142,30,28,7,250,137,46,124,0,140,6,126,0,251,233,198,208,44,32,46,142,30,28,7,254,
        200,116,32,14,7,254,200,117,8,185,14,0,189,141,63,235,18,254,200,117,8,185,8,0,189,141,55,235,6,185,16,0,189,186,78,250,137,
        46,12,1,140,6,14,1,251,137,14,133,4,138,195,187,164,54,10,192,117,5,138,194,235,9,144,60,3,118,2,176,2,46,215,254,200,162,
        132,4,233,111,208,0,14,25,43,139,14,133,4,138,22,132,4,128,255,7,119,236,128,255,1,119,23,46,142,30,28,7,10,255,117,7,196,
        46,124,0,235,26,144,196,46,12,1,235,19,144,128,239,2,138,223,42,255,209,227,129,195,129,55,46,139,47,14,7,95,94,91,88,88,
        31,88,88,207,46,142,30,28,7,138,199,50,228,163,133,4,254,200,139,22,99,4,138,224,176,20,128,62,73,4,7,117,1,239,80,176,9,
        238,66,236,36,224,10,224,74,176,9,239,88,138,204,254,204,138,236,128,249,13,124,4,129,233,1,1,137,14,96,4,176,10,232,41,232,
        138,38,73,4,232,6,208,138,216,184,200,0,128,251,0,116,11,184,94,1,128,251,1,116,3,184,144,1,153,247,54,133,4,72,162,132,4,
        254,192,42,228,247,38,133,4,128,251,0,117,2,209,224,72,139,22,99,4,138,224,176,18,239,160,132,4,254,192,246,38,74,4,209,224,
        5,0,1,163,76,4,195,141,63,141,55,141,59,141,77,186,78,186,94,0,0,0,0,0,0,0,0,126,129,165,129,189,153,129,126,126,255,219,
        255,195,231,255,126,108,254,254,254,124,56,16,0,16,56,124,254,124,56,16,0,56,124,56,254,254,124,56,124,16,16,56,124,254,124,
        56,124,0,0,24,60,60,24,0,0,255,255,231,195,195,231,255,255,0,60,102,66,66,102,60,0,255,195,153,189,189,153,195,255,15,7,15,
        125,204,204,204,120,60,102,102,102,60,24,126,24,63,51,63,48,48,112,240,224,127,99,127,99,99,103,230,192,153,90,60,231,231,
        60,90,153,128,224,248,254,248,224,128,0,2,14,62,254,62,14,2,0,24,60,126,24,24,126,60,24,102,102,102,102,102,0,102,0,127,219,
        219,123,27,27,27,0,62,99,56,108,108,56,204,120,0,0,0,0,126,126,126,0,24,60,126,24,126,60,24,255,24,60,126,24,24,24,24,0,24,
        24,24,24,126,60,24,0,0,24,12,254,12,24,0,0,0,48,96,254,96,48,0,0,0,0,192,192,192,254,0,0,0,36,102,255,102,36,0,0,0,24,60,
        126,255,255,0,0,0,255,255,126,60,24,0,0,0,0,0,0,0,0,0,0,48,120,120,48,48,0,48,0,108,108,108,0,0,0,0,0,108,108,254,108,254,
        108,108,0,48,124,192,120,12,248,48,0,0,198,204,24,48,102,198,0,56,108,56,118,220,204,118,0,96,96,192,0,0,0,0,0,24,48,96,96,
        96,48,24,0,96,48,24,24,24,48,96,0,0,102,60,255,60,102,0,0,0,48,48,252,48,48,0,0,0,0,0,0,0,48,48,96,0,0,0,252,0,0,0,0,0,0,
        0,0,0,48,48,0,6,12,24,48,96,192,128,0,124,198,206,222,246,230,124,0,48,112,48,48,48,48,252,0,120,204,12,56,96,204,252,0,120,
        204,12,56,12,204,120,0,28,60,108,204,254,12,30,0,252,192,248,12,12,204,120,0,56,96,192,248,204,204,120,0,252,204,12,24,48,
        48,48,0,120,204,204,120,204,204,120,0,120,204,204,124,12,24,112,0,0,48,48,0,0,48,48,0,0,48,48,0,0,48,48,96,24,48,96,192,96,
        48,24,0,0,0,252,0,0,252,0,0,96,48,24,12,24,48,96,0,120,204,12,24,48,0,48,0,124,198,222,222,222,192,120,0,48,120,204,204,252,
        204,204,0,252,102,102,124,102,102,252,0,60,102,192,192,192,102,60,0,248,108,102,102,102,108,248,0,254,98,104,120,104,98,254,
        0,254,98,104,120,104,96,240,0,60,102,192,192,206,102,62,0,204,204,204,252,204,204,204,0,120,48,48,48,48,48,120,0,30,12,12,
        12,204,204,120,0,230,102,108,120,108,102,230,0,240,96,96,96,98,102,254,0,198,238,254,254,214,198,198,0,198,230,246,222,206,
        198,198,0,56,108,198,198,198,108,56,0,252,102,102,124,96,96,240,0,120,204,204,204,220,120,28,0,252,102,102,124,108,102,230,
        0,120,204,224,112,28,204,120,0,252,180,48,48,48,48,120,0,204,204,204,204,204,204,252,0,204,204,204,204,204,120,48,0,198,198,
        198,214,254,238,198,0,198,198,108,56,56,108,198,0,204,204,204,120,48,48,120,0,254,198,140,24,50,102,254,0,120,96,96,96,96,
        96,120,0,192,96,48,24,12,6,2,0,120,24,24,24,24,24,120,0,16,56,108,198,0,0,0,0,0,0,0,0,0,0,0,255,48,48,24,0,0,0,0,0,0,0,120,
        12,124,204,118,0,224,96,96,124,102,102,220,0,0,0,120,204,192,204,120,0,28,12,12,124,204,204,118,0,0,0,120,204,252,192,120,
        0,56,108,96,240,96,96,240,0,0,0,118,204,204,124,12,248,224,96,108,118,102,102,230,0,48,0,112,48,48,48,120,0,12,0,12,12,12,
        204,204,120,224,96,102,108,120,108,230,0,112,48,48,48,48,48,120,0,0,0,204,254,254,214,198,0,0,0,248,204,204,204,204,0,0,0,
        120,204,204,204,120,0,0,0,220,102,102,124,96,240,0,0,118,204,204,124,12,30,0,0,220,118,102,96,240,0,0,0,124,192,120,12,248,
        0,16,48,124,48,48,52,24,0,0,0,204,204,204,204,118,0,0,0,204,204,204,120,48,0,0,0,198,214,254,254,108,0,0,0,198,108,56,108,
        198,0,0,0,204,204,204,124,12,248,0,0,252,152,48,100,252,0,28,48,48,224,48,48,28,0,24,24,24,0,24,24,24,0,224,48,48,28,48,48,
        224,0,118,220,0,0,0,0,0,0,0,16,56,108,198,198,254,0,120,204,192,204,120,24,12,120,0,204,0,204,204,204,126,0,28,0,120,204,
        252,192,120,0,126,195,60,6,62,102,63,0,204,0,120,12,124,204,126,0,224,0,120,12,124,204,126,0,48,48,120,12,124,204,126,0,0,
        0,120,192,192,120,12,56,126,195,60,102,126,96,60,0,204,0,120,204,252,192,120,0,224,0,120,204,252,192,120,0,204,0,112,48,48,
        48,120,0,124,198,56,24,24,24,60,0,224,0,112,48,48,48,120,0,198,56,108,198,254,198,198,0,48,48,0,120,204,252,204,0,28,0,252,
        96,120,96,252,0,0,0,127,12,127,204,127,0,62,108,204,254,204,204,206,0,120,204,0,120,204,204,120,0,0,204,0,120,204,204,120,
        0,0,224,0,120,204,204,120,0,120,204,0,204,204,204,126,0,0,224,0,204,204,204,126,0,0,204,0,204,204,124,12,248,195,24,60,102,
        102,60,24,0,204,0,204,204,204,204,120,0,24,24,126,192,192,126,24,24,56,108,100,240,96,230,252,0,204,204,120,252,48,252,48,
        48,248,204,204,250,198,207,198,199,14,27,24,60,24,24,216,112,28,0,120,12,124,204,126,0,56,0,112,48,48,48,120,0,0,28,0,120,
        204,204,120,0,0,28,0,204,204,204,126,0,0,248,0,248,204,204,204,0,252,0,204,236,252,220,204,0,60,108,108,62,0,126,0,0,56,108,
        108,56,0,124,0,0,48,0,48,96,192,204,120,0,0,0,0,252,192,192,0,0,0,0,0,252,12,12,0,0,195,198,204,222,51,102,204,15,195,198,
        204,219,55,111,207,3,24,24,0,24,24,24,24,0,0,51,102,204,102,51,0,0,0,204,102,51,102,204,0,0,34,136,34,136,34,136,34,136,85,
        170,85,170,85,170,85,170,219,119,219,238,219,119,219,238,24,24,24,24,24,24,24,24,24,24,24,24,248,24,24,24,24,24,248,24,248,
        24,24,24,54,54,54,54,246,54,54,54,0,0,0,0,254,54,54,54,0,0,248,24,248,24,24,24,54,54,246,6,246,54,54,54,54,54,54,54,54,54,
        54,54,0,0,254,6,246,54,54,54,54,54,246,6,254,0,0,0,54,54,54,54,254,0,0,0,24,24,248,24,248,0,0,0,0,0,0,0,248,24,24,24,24,24,
        24,24,31,0,0,0,24,24,24,24,255,0,0,0,0,0,0,0,255,24,24,24,24,24,24,24,31,24,24,24,0,0,0,0,255,0,0,0,24,24,24,24,255,24,24,
        24,24,24,31,24,31,24,24,24,54,54,54,54,55,54,54,54,54,54,55,48,63,0,0,0,0,0,63,48,55,54,54,54,54,54,247,0,255,0,0,0,0,0,255,
        0,247,54,54,54,54,54,55,48,55,54,54,54,0,0,255,0,255,0,0,0,54,54,247,0,247,54,54,54,24,24,255,0,255,0,0,0,54,54,54,54,255,
        0,0,0,0,0,255,0,255,24,24,24,0,0,0,0,255,54,54,54,54,54,54,54,63,0,0,0,24,24,31,24,31,0,0,0,0,0,31,24,31,24,24,24,0,0,0,0,
        63,54,54,54,54,54,54,54,255,54,54,54,24,24,255,24,255,24,24,24,24,24,24,24,248,0,0,0,0,0,0,0,31,24,24,24,255,255,255,255,
        255,255,255,255,0,0,0,0,255,255,255,255,240,240,240,240,240,240,240,240,15,15,15,15,15,15,15,15,255,255,255,255,0,0,0,0,0,
        0,118,220,200,220,118,0,0,120,204,248,204,248,192,192,0,252,204,192,192,192,192,0,0,254,108,108,108,108,108,0,252,204,96,
        48,96,204,252,0,0,0,126,216,216,216,112,0,0,102,102,102,102,124,96,192,0,118,220,24,24,24,24,0,252,48,120,204,204,120,48,
        252,56,108,198,254,198,108,56,0,56,108,198,198,108,108,238,0,28,48,24,124,204,204,120,0,0,0,126,219,219,126,0,0,6,12,126,
        219,219,126,96,192,56,96,192,248,192,96,56,0,120,204,204,204,204,204,204,0,0,252,0,252,0,252,0,0,48,48,252,48,48,0,252,0,
        96,48,24,48,96,0,252,0,24,48,96,48,24,0,252,0,14,27,27,24,24,24,24,24,24,24,24,24,24,216,216,112,48,48,0,252,0,48,48,0,0,
        118,220,0,118,220,0,0,56,108,108,56,0,0,0,0,0,0,0,24,24,0,0,0,0,0,0,0,24,0,0,0,15,12,12,12,236,108,60,28,120,108,108,108,
        108,0,0,0,112,24,48,96,120,0,0,0,0,0,60,60,60,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,126,129,165,129,129,
        189,153,129,126,0,0,0,0,0,126,255,219,255,255,195,231,255,126,0,0,0,0,0,0,108,254,254,254,254,124,56,16,0,0,0,0,0,0,16,56,
        124,254,124,56,16,0,0,0,0,0,0,24,60,60,231,231,231,24,24,60,0,0,0,0,0,24,60,126,255,255,126,24,24,60,0,0,0,0,0,0,0,0,24,60,
        60,24,0,0,0,0,0,255,255,255,255,255,231,195,195,231,255,255,255,255,255,0,0,0,0,60,102,66,66,102,60,0,0,0,0,255,255,255,255,
        195,153,189,189,153,195,255,255,255,255,0,0,30,14,26,50,120,204,204,204,120,0,0,0,0,0,60,102,102,102,60,24,126,24,24,0,0,
        0,0,0,63,51,63,48,48,48,112,240,224,0,0,0,0,0,127,99,127,99,99,99,103,231,230,192,0,0,0,0,24,24,219,60,231,60,219,24,24,0,
        0,0,0,0,128,192,224,248,254,248,224,192,128,0,0,0,0,0,2,6,14,62,254,62,14,6,2,0,0,0,0,0,24,60,126,24,24,24,126,60,24,0,0,
        0,0,0,102,102,102,102,102,102,0,102,102,0,0,0,0,0,127,219,219,219,123,27,27,27,27,0,0,0,0,124,198,96,56,108,198,198,108,56,
        12,198,124,0,0,0,0,0,0,0,0,0,254,254,254,0,0,0,0,0,24,60,126,24,24,24,126,60,24,126,0,0,0,0,24,60,126,24,24,24,24,24,24,0,
        0,0,0,0,24,24,24,24,24,24,126,60,24,0,0,0,0,0,0,0,24,12,254,12,24,0,0,0,0,0,0,0,0,0,48,96,254,96,48,0,0,0,0,0,0,0,0,0,0,192,
        192,192,254,0,0,0,0,0,0,0,0,0,40,108,254,108,40,0,0,0,0,0,0,0,0,16,56,56,124,124,254,254,0,0,0,0,0,0,0,254,254,124,124,56,
        56,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,60,60,60,24,24,0,24,24,0,0,0,0,102,102,102,36,0,0,0,0,0,0,0,0,0,0,0,108,
        108,254,108,108,108,254,108,108,0,0,0,24,24,124,198,194,192,124,6,134,198,124,24,24,0,0,0,0,0,194,198,12,24,48,102,198,0,
        0,0,0,0,56,108,108,56,118,220,204,204,118,0,0,0,0,48,48,48,96,0,0,0,0,0,0,0,0,0,0,0,12,24,48,48,48,48,48,24,12,0,0,0,0,0,
        48,24,12,12,12,12,12,24,48,0,0,0,0,0,0,0,102,60,255,60,102,0,0,0,0,0,0,0,0,0,24,24,126,24,24,0,0,0,0,0,0,0,0,0,0,0,0,0,24,
        24,24,48,0,0,0,0,0,0,0,0,254,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,24,0,0,0,0,0,2,6,12,24,48,96,192,128,0,0,0,0,0,0,124,198,
        206,222,246,230,198,198,124,0,0,0,0,0,24,56,120,24,24,24,24,24,126,0,0,0,0,0,124,198,6,12,24,48,96,198,254,0,0,0,0,0,124,
        198,6,6,60,6,6,198,124,0,0,0,0,0,12,28,60,108,204,254,12,12,30,0,0,0,0,0,254,192,192,192,252,6,6,198,124,0,0,0,0,0,56,96,
        192,192,252,198,198,198,124,0,0,0,0,0,254,198,6,12,24,48,48,48,48,0,0,0,0,0,124,198,198,198,124,198,198,198,124,0,0,0,0,0,
        124,198,198,198,126,6,6,12,120,0,0,0,0,0,0,24,24,0,0,0,24,24,0,0,0,0,0,0,0,24,24,0,0,0,24,24,48,0,0,0,0,0,6,12,24,48,96,48,
        24,12,6,0,0,0,0,0,0,0,0,126,0,0,126,0,0,0,0,0,0,0,96,48,24,12,6,12,24,48,96,0,0,0,0,0,124,198,198,12,24,24,0,24,24,0,0,0,
        0,0,124,198,198,222,222,222,220,192,124,0,0,0,0,0,16,56,108,198,198,254,198,198,198,0,0,0,0,0,252,102,102,102,124,102,102,
        102,252,0,0,0,0,0,60,102,194,192,192,192,194,102,60,0,0,0,0,0,248,108,102,102,102,102,102,108,248,0,0,0,0,0,254,102,98,104,
        120,104,98,102,254,0,0,0,0,0,254,102,98,104,120,104,96,96,240,0,0,0,0,0,60,102,194,192,192,222,198,102,58,0,0,0,0,0,198,198,
        198,198,254,198,198,198,198,0,0,0,0,0,60,24,24,24,24,24,24,24,60,0,0,0,0,0,30,12,12,12,12,12,204,204,120,0,0,0,0,0,230,102,
        108,108,120,108,108,102,230,0,0,0,0,0,240,96,96,96,96,96,98,102,254,0,0,0,0,0,198,238,254,254,214,198,198,198,198,0,0,0,0,
        0,198,230,246,254,222,206,198,198,198,0,0,0,0,0,56,108,198,198,198,198,198,108,56,0,0,0,0,0,252,102,102,102,124,96,96,96,
        240,0,0,0,0,0,124,198,198,198,198,214,222,124,12,14,0,0,0,0,252,102,102,102,124,108,102,102,230,0,0,0,0,0,124,198,198,96,
        56,12,198,198,124,0,0,0,0,0,126,126,90,24,24,24,24,24,60,0,0,0,0,0,198,198,198,198,198,198,198,198,124,0,0,0,0,0,198,198,
        198,198,198,198,108,56,16,0,0,0,0,0,198,198,198,198,214,214,254,124,108,0,0,0,0,0,198,198,108,56,56,56,108,198,198,0,0,0,
        0,0,102,102,102,102,60,24,24,24,60,0,0,0,0,0,254,198,140,24,48,96,194,198,254,0,0,0,0,0,60,48,48,48,48,48,48,48,60,0,0,0,
        0,0,128,192,224,112,56,28,14,6,2,0,0,0,0,0,60,12,12,12,12,12,12,12,60,0,0,0,16,56,108,198,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,255,0,48,48,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,120,12,124,204,204,118,0,0,0,0,0,224,96,96,120,108,102,102,102,
        124,0,0,0,0,0,0,0,0,124,198,192,192,198,124,0,0,0,0,0,28,12,12,60,108,204,204,204,118,0,0,0,0,0,0,0,0,124,198,254,192,198,
        124,0,0,0,0,0,56,108,100,96,240,96,96,96,240,0,0,0,0,0,0,0,0,118,204,204,204,124,12,204,120,0,0,0,224,96,96,108,118,102,102,
        102,230,0,0,0,0,0,24,24,0,56,24,24,24,24,60,0,0,0,0,0,6,6,0,14,6,6,6,6,102,102,60,0,0,0,224,96,96,102,108,120,108,102,230,
        0,0,0,0,0,56,24,24,24,24,24,24,24,60,0,0,0,0,0,0,0,0,236,254,214,214,214,198,0,0,0,0,0,0,0,0,220,102,102,102,102,102,0,0,
        0,0,0,0,0,0,124,198,198,198,198,124,0,0,0,0,0,0,0,0,220,102,102,102,124,96,96,240,0,0,0,0,0,0,118,204,204,204,124,12,12,30,
        0,0,0,0,0,0,220,118,102,96,96,240,0,0,0,0,0,0,0,0,124,198,112,28,198,124,0,0,0,0,0,16,48,48,252,48,48,48,54,28,0,0,0,0,0,
        0,0,0,204,204,204,204,204,118,0,0,0,0,0,0,0,0,102,102,102,102,60,24,0,0,0,0,0,0,0,0,198,198,214,214,254,108,0,0,0,0,0,0,0,
        0,198,108,56,56,108,198,0,0,0,0,0,0,0,0,198,198,198,198,126,6,12,248,0,0,0,0,0,0,254,204,24,48,102,254,0,0,0,0,0,14,24,24,
        24,112,24,24,24,14,0,0,0,0,0,24,24,24,24,0,24,24,24,24,0,0,0,0,0,112,24,24,24,14,24,24,24,112,0,0,0,0,0,118,220,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,16,56,108,198,198,254,0,0,0,0,0,0,60,102,194,192,192,194,102,60,12,6,124,0,0,0,204,204,0,204,204,204,204,
        204,118,0,0,0,0,12,24,48,0,124,198,254,192,198,124,0,0,0,0,16,56,108,0,120,12,124,204,204,118,0,0,0,0,0,204,204,0,120,12,
        124,204,204,118,0,0,0,0,96,48,24,0,120,12,124,204,204,118,0,0,0,0,56,108,56,0,120,12,124,204,204,118,0,0,0,0,0,0,0,60,102,
        96,102,60,12,6,60,0,0,0,16,56,108,0,124,198,254,192,198,124,0,0,0,0,0,204,204,0,124,198,254,192,198,124,0,0,0,0,96,48,24,
        0,124,198,254,192,198,124,0,0,0,0,0,102,102,0,56,24,24,24,24,60,0,0,0,0,24,60,102,0,56,24,24,24,24,60,0,0,0,0,96,48,24,0,
        56,24,24,24,24,60,0,0,0,0,198,198,16,56,108,198,198,254,198,198,0,0,0,56,108,56,0,56,108,198,198,254,198,198,0,0,0,24,48,
        96,0,254,102,96,124,96,102,254,0,0,0,0,0,0,0,204,118,54,126,216,216,110,0,0,0,0,0,62,108,204,204,254,204,204,204,206,0,0,
        0,0,16,56,108,0,124,198,198,198,198,124,0,0,0,0,0,198,198,0,124,198,198,198,198,124,0,0,0,0,96,48,24,0,124,198,198,198,198,
        124,0,0,0,0,48,120,204,0,204,204,204,204,204,118,0,0,0,0,96,48,24,0,204,204,204,204,204,118,0,0,0,0,0,198,198,0,198,198,198,
        198,126,6,12,120,0,0,198,198,56,108,198,198,198,198,108,56,0,0,0,0,198,198,0,198,198,198,198,198,198,124,0,0,0,0,24,24,60,
        102,96,96,102,60,24,24,0,0,0,0,56,108,100,96,240,96,96,96,230,252,0,0,0,0,0,102,102,60,24,126,24,126,24,24,0,0,0,0,248,204,
        204,248,196,204,222,204,204,198,0,0,0,0,14,27,24,24,24,126,24,24,24,24,216,112,0,0,24,48,96,0,120,12,124,204,204,118,0,0,
        0,0,12,24,48,0,56,24,24,24,24,60,0,0,0,0,24,48,96,0,124,198,198,198,198,124,0,0,0,0,24,48,96,0,204,204,204,204,204,118,0,
        0,0,0,0,118,220,0,220,102,102,102,102,102,0,0,0,118,220,0,198,230,246,254,222,206,198,198,0,0,0,0,60,108,108,62,0,126,0,0,
        0,0,0,0,0,0,56,108,108,56,0,124,0,0,0,0,0,0,0,0,0,48,48,0,48,48,96,198,198,124,0,0,0,0,0,0,0,0,0,254,192,192,192,0,0,0,0,
        0,0,0,0,0,0,254,6,6,6,0,0,0,0,0,192,192,198,204,216,48,96,220,134,12,24,62,0,0,192,192,198,204,216,48,102,206,158,62,6,6,
        0,0,0,24,24,0,24,24,60,60,60,24,0,0,0,0,0,0,0,54,108,216,108,54,0,0,0,0,0,0,0,0,0,216,108,54,108,216,0,0,0,0,0,17,68,17,68,
        17,68,17,68,17,68,17,68,17,68,85,170,85,170,85,170,85,170,85,170,85,170,85,170,221,119,221,119,221,119,221,119,221,119,221,
        119,221,119,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,248,24,24,24,24,24,24,24,24,24,24,24,248,24,248,
        24,24,24,24,24,24,54,54,54,54,54,54,54,246,54,54,54,54,54,54,0,0,0,0,0,0,0,254,54,54,54,54,54,54,0,0,0,0,0,248,24,248,24,
        24,24,24,24,24,54,54,54,54,54,246,6,246,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,0,0,0,0,0,254,6,246,54,
        54,54,54,54,54,54,54,54,54,54,246,6,254,0,0,0,0,0,0,54,54,54,54,54,54,54,254,0,0,0,0,0,0,24,24,24,24,24,248,24,248,0,0,0,
        0,0,0,0,0,0,0,0,0,0,248,24,24,24,24,24,24,24,24,24,24,24,24,24,31,0,0,0,0,0,0,24,24,24,24,24,24,24,255,0,0,0,0,0,0,0,0,0,
        0,0,0,0,255,24,24,24,24,24,24,24,24,24,24,24,24,24,31,24,24,24,24,24,24,0,0,0,0,0,0,0,255,0,0,0,0,0,0,24,24,24,24,24,24,24,
        255,24,24,24,24,24,24,24,24,24,24,24,31,24,31,24,24,24,24,24,24,54,54,54,54,54,54,54,55,54,54,54,54,54,54,54,54,54,54,54,
        55,48,63,0,0,0,0,0,0,0,0,0,0,0,63,48,55,54,54,54,54,54,54,54,54,54,54,54,247,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,247,54,54,
        54,54,54,54,54,54,54,54,54,55,48,55,54,54,54,54,54,54,0,0,0,0,0,255,0,255,0,0,0,0,0,0,54,54,54,54,54,247,0,247,54,54,54,54,
        54,54,24,24,24,24,24,255,0,255,0,0,0,0,0,0,54,54,54,54,54,54,54,255,0,0,0,0,0,0,0,0,0,0,0,255,0,255,24,24,24,24,24,24,0,0,
        0,0,0,0,0,255,54,54,54,54,54,54,54,54,54,54,54,54,54,63,0,0,0,0,0,0,24,24,24,24,24,31,24,31,0,0,0,0,0,0,0,0,0,0,0,31,24,31,
        24,24,24,24,24,24,0,0,0,0,0,0,0,63,54,54,54,54,54,54,54,54,54,54,54,54,54,255,54,54,54,54,54,54,24,24,24,24,24,255,24,255,
        24,24,24,24,24,24,24,24,24,24,24,24,24,248,0,0,0,0,0,0,0,0,0,0,0,0,0,31,24,24,24,24,24,24,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,0,0,0,0,0,0,0,255,255,255,255,255,255,255,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
        15,15,15,15,15,15,15,15,15,15,15,15,15,15,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,118,220,216,216,220,118,0,0,
        0,0,0,0,0,124,198,252,198,198,252,192,192,64,0,0,0,254,198,198,192,192,192,192,192,192,0,0,0,0,0,0,0,254,108,108,108,108,
        108,108,0,0,0,0,0,254,198,96,48,24,48,96,198,254,0,0,0,0,0,0,0,0,126,216,216,216,216,112,0,0,0,0,0,0,0,102,102,102,102,124,
        96,96,192,0,0,0,0,0,0,118,220,24,24,24,24,24,0,0,0,0,0,126,24,60,102,102,102,60,24,126,0,0,0,0,0,56,108,198,198,254,198,198,
        108,56,0,0,0,0,0,56,108,198,198,198,108,108,108,238,0,0,0,0,0,30,48,24,12,62,102,102,102,60,0,0,0,0,0,0,0,0,126,219,219,126,
        0,0,0,0,0,0,0,3,6,126,219,219,243,126,96,192,0,0,0,0,0,28,48,96,96,124,96,96,48,28,0,0,0,0,0,0,124,198,198,198,198,198,198,
        198,0,0,0,0,0,0,254,0,0,254,0,0,254,0,0,0,0,0,0,0,24,24,126,24,24,0,0,255,0,0,0,0,0,48,24,12,6,12,24,48,0,126,0,0,0,0,0,12,
        24,48,96,48,24,12,0,126,0,0,0,0,0,14,27,27,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,216,216,112,0,0,0,0,0,0,24,
        24,0,126,0,24,24,0,0,0,0,0,0,0,0,118,220,0,118,220,0,0,0,0,0,0,56,108,108,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,24,0,0,0,0,
        0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,15,12,12,12,12,12,236,108,60,28,0,0,0,0,216,108,108,108,108,108,0,0,0,0,0,0,0,0,112,216,
        48,96,200,248,0,0,0,0,0,0,0,0,0,0,0,124,124,124,124,124,124,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29,0,0,0,0,36,102,255,102,
        36,0,0,0,0,0,34,0,99,99,99,34,0,0,0,0,0,0,0,0,0,43,0,0,0,24,24,24,255,24,24,24,0,0,0,0,45,0,0,0,0,0,0,255,0,0,0,0,0,0,0,77,
        0,0,195,231,255,219,195,195,195,195,195,0,0,0,84,0,0,255,219,153,24,24,24,24,24,60,0,0,0,86,0,0,195,195,195,195,195,195,102,
        60,24,0,0,0,87,0,0,195,195,195,195,219,219,255,102,102,0,0,0,88,0,0,195,195,102,60,24,60,102,195,195,0,0,0,89,0,0,195,195,
        195,102,60,24,24,24,60,0,0,0,90,0,0,255,195,134,12,24,48,97,195,255,0,0,0,109,0,0,0,0,0,230,255,219,219,219,219,0,0,0,118,
        0,0,0,0,0,195,195,195,102,60,24,0,0,0,119,0,0,0,0,0,195,195,219,219,255,102,0,0,0,145,0,0,0,0,110,59,27,126,216,220,119,0,
        0,0,155,0,24,24,126,195,192,192,195,126,24,24,0,0,0,157,0,0,195,102,60,24,255,24,255,24,24,0,0,0,158,0,252,102,102,124,98,
        102,111,102,102,243,0,0,0,241,0,0,24,24,24,255,24,24,24,0,255,0,0,0,246,0,0,24,24,0,0,255,0,0,24,24,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,126,129,165,129,129,189,153,129,129,126,0,0,0,0,0,0,126,255,219,255,255,195,231,255,255,126,0,0,0,0,
        0,0,0,0,108,254,254,254,254,124,56,16,0,0,0,0,0,0,0,0,16,56,124,254,124,56,16,0,0,0,0,0,0,0,0,24,60,60,231,231,231,24,24,
        60,0,0,0,0,0,0,0,24,60,126,255,255,126,24,24,60,0,0,0,0,0,0,0,0,0,0,24,60,60,24,0,0,0,0,0,0,255,255,255,255,255,255,231,195,
        195,231,255,255,255,255,255,255,0,0,0,0,0,60,102,66,66,102,60,0,0,0,0,0,255,255,255,255,255,195,153,189,189,153,195,255,255,
        255,255,255,0,0,30,14,26,50,120,204,204,204,204,120,0,0,0,0,0,0,60,102,102,102,102,60,24,126,24,24,0,0,0,0,0,0,63,51,63,48,
        48,48,48,112,240,224,0,0,0,0,0,0,127,99,127,99,99,99,99,103,231,230,192,0,0,0,0,0,0,24,24,219,60,231,60,219,24,24,0,0,0,0,
        0,128,192,224,240,248,254,248,240,224,192,128,0,0,0,0,0,2,6,14,30,62,254,62,30,14,6,2,0,0,0,0,0,0,24,60,126,24,24,24,126,
        60,24,0,0,0,0,0,0,0,102,102,102,102,102,102,102,0,102,102,0,0,0,0,0,0,127,219,219,219,123,27,27,27,27,27,0,0,0,0,0,124,198,
        96,56,108,198,198,108,56,12,198,124,0,0,0,0,0,0,0,0,0,0,0,254,254,254,254,0,0,0,0,0,0,24,60,126,24,24,24,126,60,24,126,0,
        0,0,0,0,0,24,60,126,24,24,24,24,24,24,24,0,0,0,0,0,0,24,24,24,24,24,24,24,126,60,24,0,0,0,0,0,0,0,0,0,24,12,254,12,24,0,0,
        0,0,0,0,0,0,0,0,0,48,96,254,96,48,0,0,0,0,0,0,0,0,0,0,0,0,192,192,192,254,0,0,0,0,0,0,0,0,0,0,0,40,108,254,108,40,0,0,0,0,
        0,0,0,0,0,0,16,56,56,124,124,254,254,0,0,0,0,0,0,0,0,0,254,254,124,124,56,56,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,24,60,60,60,24,24,24,0,24,24,0,0,0,0,0,102,102,102,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,108,108,254,108,108,108,254,108,108,
        0,0,0,0,24,24,124,198,194,192,124,6,6,134,198,124,24,24,0,0,0,0,0,0,194,198,12,24,48,96,198,134,0,0,0,0,0,0,56,108,108,56,
        118,220,204,204,204,118,0,0,0,0,0,48,48,48,96,0,0,0,0,0,0,0,0,0,0,0,0,0,12,24,48,48,48,48,48,48,24,12,0,0,0,0,0,0,48,24,12,
        12,12,12,12,12,24,48,0,0,0,0,0,0,0,0,0,102,60,255,60,102,0,0,0,0,0,0,0,0,0,0,0,24,24,126,24,24,0,0,0,0,0,0,0,0,0,0,0,0,0,
        0,0,24,24,24,48,0,0,0,0,0,0,0,0,0,0,254,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,24,0,0,0,0,0,0,0,0,2,6,12,24,48,96,192,128,
        0,0,0,0,0,0,56,108,198,198,214,214,198,198,108,56,0,0,0,0,0,0,24,56,120,24,24,24,24,24,24,126,0,0,0,0,0,0,124,198,6,12,24,
        48,96,192,198,254,0,0,0,0,0,0,124,198,6,6,60,6,6,6,198,124,0,0,0,0,0,0,12,28,60,108,204,254,12,12,12,30,0,0,0,0,0,0,254,192,
        192,192,252,6,6,6,198,124,0,0,0,0,0,0,56,96,192,192,252,198,198,198,198,124,0,0,0,0,0,0,254,198,6,6,12,24,48,48,48,48,0,0,
        0,0,0,0,124,198,198,198,124,198,198,198,198,124,0,0,0,0,0,0,124,198,198,198,126,6,6,6,12,120,0,0,0,0,0,0,0,0,24,24,0,0,0,
        24,24,0,0,0,0,0,0,0,0,0,24,24,0,0,0,24,24,48,0,0,0,0,0,0,0,6,12,24,48,96,48,24,12,6,0,0,0,0,0,0,0,0,0,126,0,0,126,0,0,0,0,
        0,0,0,0,0,0,96,48,24,12,6,12,24,48,96,0,0,0,0,0,0,124,198,198,12,24,24,24,0,24,24,0,0,0,0,0,0,0,124,198,198,222,222,222,220,
        192,124,0,0,0,0,0,0,16,56,108,198,198,254,198,198,198,198,0,0,0,0,0,0,252,102,102,102,124,102,102,102,102,252,0,0,0,0,0,0,
        60,102,194,192,192,192,192,194,102,60,0,0,0,0,0,0,248,108,102,102,102,102,102,102,108,248,0,0,0,0,0,0,254,102,98,104,120,
        104,96,98,102,254,0,0,0,0,0,0,254,102,98,104,120,104,96,96,96,240,0,0,0,0,0,0,60,102,194,192,192,222,198,198,102,58,0,0,0,
        0,0,0,198,198,198,198,254,198,198,198,198,198,0,0,0,0,0,0,60,24,24,24,24,24,24,24,24,60,0,0,0,0,0,0,30,12,12,12,12,12,204,
        204,204,120,0,0,0,0,0,0,230,102,102,108,120,120,108,102,102,230,0,0,0,0,0,0,240,96,96,96,96,96,96,98,102,254,0,0,0,0,0,0,
        198,238,254,254,214,198,198,198,198,198,0,0,0,0,0,0,198,230,246,254,222,206,198,198,198,198,0,0,0,0,0,0,124,198,198,198,198,
        198,198,198,198,124,0,0,0,0,0,0,252,102,102,102,124,96,96,96,96,240,0,0,0,0,0,0,124,198,198,198,198,198,198,214,222,124,12,
        14,0,0,0,0,252,102,102,102,124,108,102,102,102,230,0,0,0,0,0,0,124,198,198,96,56,12,6,198,198,124,0,0,0,0,0,0,126,126,90,
        24,24,24,24,24,24,60,0,0,0,0,0,0,198,198,198,198,198,198,198,198,198,124,0,0,0,0,0,0,198,198,198,198,198,198,198,108,56,16,
        0,0,0,0,0,0,198,198,198,198,214,214,214,254,238,108,0,0,0,0,0,0,198,198,108,124,56,56,124,108,198,198,0,0,0,0,0,0,102,102,
        102,102,60,24,24,24,24,60,0,0,0,0,0,0,254,198,134,12,24,48,96,194,198,254,0,0,0,0,0,0,60,48,48,48,48,48,48,48,48,60,0,0,0,
        0,0,0,0,128,192,224,112,56,28,14,6,2,0,0,0,0,0,0,60,12,12,12,12,12,12,12,12,60,0,0,0,0,16,56,108,198,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,48,48,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,120,12,124,204,204,204,118,0,0,0,0,0,0,
        224,96,96,120,108,102,102,102,102,124,0,0,0,0,0,0,0,0,0,124,198,192,192,192,198,124,0,0,0,0,0,0,28,12,12,60,108,204,204,204,
        204,118,0,0,0,0,0,0,0,0,0,124,198,254,192,192,198,124,0,0,0,0,0,0,56,108,100,96,240,96,96,96,96,240,0,0,0,0,0,0,0,0,0,118,
        204,204,204,204,204,124,12,204,120,0,0,0,224,96,96,108,118,102,102,102,102,230,0,0,0,0,0,0,24,24,0,56,24,24,24,24,24,60,0,
        0,0,0,0,0,6,6,0,14,6,6,6,6,6,6,102,102,60,0,0,0,224,96,96,102,108,120,120,108,102,230,0,0,0,0,0,0,56,24,24,24,24,24,24,24,
        24,60,0,0,0,0,0,0,0,0,0,236,254,214,214,214,214,198,0,0,0,0,0,0,0,0,0,220,102,102,102,102,102,102,0,0,0,0,0,0,0,0,0,124,198,
        198,198,198,198,124,0,0,0,0,0,0,0,0,0,220,102,102,102,102,102,124,96,96,240,0,0,0,0,0,0,118,204,204,204,204,204,124,12,12,
        30,0,0,0,0,0,0,220,118,102,96,96,96,240,0,0,0,0,0,0,0,0,0,124,198,96,56,12,198,124,0,0,0,0,0,0,16,48,48,252,48,48,48,48,54,
        28,0,0,0,0,0,0,0,0,0,204,204,204,204,204,204,118,0,0,0,0,0,0,0,0,0,102,102,102,102,102,60,24,0,0,0,0,0,0,0,0,0,198,198,214,
        214,214,254,108,0,0,0,0,0,0,0,0,0,198,108,56,56,56,108,198,0,0,0,0,0,0,0,0,0,198,198,198,198,198,198,126,6,12,248,0,0,0,0,
        0,0,254,204,24,48,96,198,254,0,0,0,0,0,0,14,24,24,24,112,24,24,24,24,14,0,0,0,0,0,0,24,24,24,24,0,24,24,24,24,24,0,0,0,0,
        0,0,112,24,24,24,14,24,24,24,24,112,0,0,0,0,0,0,118,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,56,108,198,198,198,254,0,0,0,0,
        0,0,0,60,102,194,192,192,192,194,102,60,12,6,124,0,0,0,0,204,0,0,204,204,204,204,204,204,118,0,0,0,0,0,12,24,48,0,124,198,
        254,192,192,198,124,0,0,0,0,0,16,56,108,0,120,12,124,204,204,204,118,0,0,0,0,0,0,204,0,0,120,12,124,204,204,204,118,0,0,0,
        0,0,96,48,24,0,120,12,124,204,204,204,118,0,0,0,0,0,56,108,56,0,120,12,124,204,204,204,118,0,0,0,0,0,0,0,0,60,102,96,96,102,
        60,12,6,60,0,0,0,0,16,56,108,0,124,198,254,192,192,198,124,0,0,0,0,0,0,198,0,0,124,198,254,192,192,198,124,0,0,0,0,0,96,48,
        24,0,124,198,254,192,192,198,124,0,0,0,0,0,0,102,0,0,56,24,24,24,24,24,60,0,0,0,0,0,24,60,102,0,56,24,24,24,24,24,60,0,0,
        0,0,0,96,48,24,0,56,24,24,24,24,24,60,0,0,0,0,0,198,0,16,56,108,198,198,254,198,198,198,0,0,0,0,56,108,56,0,56,108,198,198,
        254,198,198,198,0,0,0,0,24,48,96,0,254,102,96,124,96,96,102,254,0,0,0,0,0,0,0,0,0,204,118,54,126,216,216,110,0,0,0,0,0,0,
        62,108,204,204,254,204,204,204,204,206,0,0,0,0,0,16,56,108,0,124,198,198,198,198,198,124,0,0,0,0,0,0,198,0,0,124,198,198,
        198,198,198,124,0,0,0,0,0,96,48,24,0,124,198,198,198,198,198,124,0,0,0,0,0,48,120,204,0,204,204,204,204,204,204,118,0,0,0,
        0,0,96,48,24,0,204,204,204,204,204,204,118,0,0,0,0,0,0,198,0,0,198,198,198,198,198,198,126,6,12,120,0,0,198,0,124,198,198,
        198,198,198,198,198,124,0,0,0,0,0,198,0,198,198,198,198,198,198,198,198,124,0,0,0,0,0,24,24,60,102,96,96,96,102,60,24,24,
        0,0,0,0,0,56,108,100,96,240,96,96,96,96,230,252,0,0,0,0,0,0,102,102,60,24,126,24,126,24,24,24,0,0,0,0,0,248,204,204,248,196,
        204,222,204,204,204,198,0,0,0,0,0,14,27,24,24,24,126,24,24,24,24,24,216,112,0,0,0,24,48,96,0,120,12,124,204,204,204,118,0,
        0,0,0,0,12,24,48,0,56,24,24,24,24,24,60,0,0,0,0,0,24,48,96,0,124,198,198,198,198,198,124,0,0,0,0,0,24,48,96,0,204,204,204,
        204,204,204,118,0,0,0,0,0,0,118,220,0,220,102,102,102,102,102,102,0,0,0,0,118,220,0,198,230,246,254,222,206,198,198,198,0,
        0,0,0,0,60,108,108,62,0,126,0,0,0,0,0,0,0,0,0,0,56,108,108,56,0,124,0,0,0,0,0,0,0,0,0,0,0,48,48,0,48,48,96,192,198,198,124,
        0,0,0,0,0,0,0,0,0,0,254,192,192,192,192,0,0,0,0,0,0,0,0,0,0,0,254,6,6,6,6,0,0,0,0,0,0,192,192,194,198,204,24,48,96,220,134,
        12,24,62,0,0,0,192,192,194,198,204,24,48,102,206,158,62,6,6,0,0,0,0,24,24,0,24,24,24,60,60,60,24,0,0,0,0,0,0,0,0,0,54,108,
        216,108,54,0,0,0,0,0,0,0,0,0,0,0,216,108,54,108,216,0,0,0,0,0,0,17,68,17,68,17,68,17,68,17,68,17,68,17,68,17,68,85,170,85,
        170,85,170,85,170,85,170,85,170,85,170,85,170,221,119,221,119,221,119,221,119,221,119,221,119,221,119,221,119,24,24,24,24,
        24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,248,24,24,24,24,24,24,24,24,24,24,24,24,24,248,24,248,24,24,24,24,
        24,24,24,24,54,54,54,54,54,54,54,246,54,54,54,54,54,54,54,54,0,0,0,0,0,0,0,254,54,54,54,54,54,54,54,54,0,0,0,0,0,248,24,248,
        24,24,24,24,24,24,24,24,54,54,54,54,54,246,6,246,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,
        0,0,0,0,0,254,6,246,54,54,54,54,54,54,54,54,54,54,54,54,54,246,6,254,0,0,0,0,0,0,0,0,54,54,54,54,54,54,54,254,0,0,0,0,0,0,
        0,0,24,24,24,24,24,248,24,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,31,0,0,0,0,0,
        0,0,0,24,24,24,24,24,24,24,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,31,24,24,24,
        24,24,24,24,24,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,24,24,24,24,24,24,24,255,24,24,24,24,24,24,24,24,24,24,24,24,24,31,24,31,
        24,24,24,24,24,24,24,24,54,54,54,54,54,54,54,55,54,54,54,54,54,54,54,54,54,54,54,54,54,55,48,63,0,0,0,0,0,0,0,0,0,0,0,0,0,
        63,48,55,54,54,54,54,54,54,54,54,54,54,54,54,54,247,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,247,54,54,54,54,54,54,54,54,54,
        54,54,54,54,55,48,55,54,54,54,54,54,54,54,54,0,0,0,0,0,255,0,255,0,0,0,0,0,0,0,0,54,54,54,54,54,247,0,247,54,54,54,54,54,
        54,54,54,24,24,24,24,24,255,0,255,0,0,0,0,0,0,0,0,54,54,54,54,54,54,54,255,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,255,24,24,24,24,
        24,24,24,24,0,0,0,0,0,0,0,255,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,63,0,0,0,0,0,0,0,0,24,24,24,24,24,31,24,31,0,0,
        0,0,0,0,0,0,0,0,0,0,0,31,24,31,24,24,24,24,24,24,24,24,0,0,0,0,0,0,0,63,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,255,
        54,54,54,54,54,54,54,54,24,24,24,24,24,255,24,255,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,248,0,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,31,24,24,24,24,24,24,24,24,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,255,255,
        255,255,255,255,255,255,255,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,15,15,15,15,15,15,15,15,15,15,
        15,15,15,15,15,15,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118,220,216,216,216,220,118,0,0,0,0,0,0,120,204,
        204,204,216,204,198,198,198,204,0,0,0,0,0,0,254,198,198,192,192,192,192,192,192,192,0,0,0,0,0,0,0,0,254,108,108,108,108,108,
        108,108,0,0,0,0,0,0,0,254,198,96,48,24,48,96,198,254,0,0,0,0,0,0,0,0,0,126,216,216,216,216,216,112,0,0,0,0,0,0,0,0,102,102,
        102,102,102,124,96,96,192,0,0,0,0,0,0,0,118,220,24,24,24,24,24,24,0,0,0,0,0,0,0,126,24,60,102,102,102,60,24,126,0,0,0,0,0,
        0,0,56,108,198,198,254,198,198,108,56,0,0,0,0,0,0,56,108,198,198,198,108,108,108,108,238,0,0,0,0,0,0,30,48,24,12,62,102,102,
        102,102,60,0,0,0,0,0,0,0,0,0,126,219,219,219,126,0,0,0,0,0,0,0,0,0,3,6,126,219,219,243,126,96,192,0,0,0,0,0,0,28,48,96,96,
        124,96,96,96,48,28,0,0,0,0,0,0,0,124,198,198,198,198,198,198,198,198,0,0,0,0,0,0,0,0,254,0,0,254,0,0,254,0,0,0,0,0,0,0,0,
        0,24,24,126,24,24,0,0,255,0,0,0,0,0,0,0,48,24,12,6,12,24,48,0,126,0,0,0,0,0,0,0,12,24,48,96,48,24,12,0,126,0,0,0,0,0,0,14,
        27,27,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,216,216,216,112,0,0,0,0,0,0,0,0,24,24,0,126,0,24,24,0,0,0,
        0,0,0,0,0,0,0,118,220,0,118,220,0,0,0,0,0,0,0,56,108,108,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,24,0,0,0,0,0,0,0,0,0,0,
        0,0,0,0,0,24,0,0,0,0,0,0,0,0,15,12,12,12,12,12,236,108,108,60,28,0,0,0,0,0,216,108,108,108,108,108,0,0,0,0,0,0,0,0,0,0,112,
        216,48,96,200,248,0,0,0,0,0,0,0,0,0,0,0,0,0,124,124,124,124,124,124,124,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29,0,0,
        0,0,0,36,102,255,102,36,0,0,0,0,0,0,48,0,0,60,102,195,195,219,219,195,195,102,60,0,0,0,0,77,0,0,195,231,255,255,219,195,195,
        195,195,195,0,0,0,0,84,0,0,255,219,153,24,24,24,24,24,24,60,0,0,0,0,86,0,0,195,195,195,195,195,195,195,102,60,24,0,0,0,0,
        87,0,0,195,195,195,195,195,219,219,255,102,102,0,0,0,0,88,0,0,195,195,102,60,24,24,60,102,195,195,0,0,0,0,89,0,0,195,195,
        195,102,60,24,24,24,24,60,0,0,0,0,90,0,0,255,195,134,12,24,48,96,193,195,255,0,0,0,0,109,0,0,0,0,0,230,255,219,219,219,219,
        219,0,0,0,0,118,0,0,0,0,0,195,195,195,195,102,60,24,0,0,0,0,119,0,0,0,0,0,195,195,195,219,219,255,102,0,0,0,0,120,0,0,0,0,
        0,195,102,60,24,60,102,195,0,0,0,0,145,0,0,0,0,0,110,59,27,126,216,220,119,0,0,0,0,155,0,24,24,126,195,192,192,192,195,126,
        24,24,0,0,0,0,157,0,0,195,102,60,24,255,24,255,24,24,24,0,0,0,0,158,0,252,102,102,124,98,102,111,102,102,102,243,0,0,0,0,
        171,0,192,192,194,198,204,24,48,96,206,155,6,12,31,0,0,172,0,192,192,194,198,204,24,48,102,206,150,62,6,6,0,0,0,0,30] 
        
      • ibm-xebec-1982.json
        [85,170,16,235,30,53,48,48,48,48,53,57,32,40,67,41,67,79,80,89,82,73,71,72,84,32,32,73,66,77,32,49,57,56,50,43,192,142,216,
        250,161,76,0,163,0,1,161,78,0,163,2,1,199,6,76,0,86,2,140,14,78,0,184,96,7,163,52,0,140,14,54,0,199,6,100,0,134,1,140,14,
        102,0,199,6,4,1,231,3,140,14,6,1,251,184,64,0,142,216,198,6,116,0,0,198,6,117,0,0,198,6,67,0,0,198,6,119,0,0,185,37,0,232,
        242,0,115,5,226,249,233,191,0,185,1,0,186,128,0,184,0,18,205,19,115,3,233,175,0,184,0,20,205,19,115,3,233,165,0,199,6,108,
        0,0,0,161,114,0,61,52,18,117,6,199,6,108,0,154,1,228,33,36,254,230,33,232,180,0,114,7,184,0,16,205,19,115,11,161,108,0,61,
        190,1,114,236,235,117,144,185,1,0,186,128,0,184,0,17,205,19,114,103,184,0,9,205,19,114,96,184,0,200,142,192,43,219,184,0,
        15,205,19,114,82,254,6,117,0,186,19,2,176,0,238,186,33,3,236,36,15,60,15,116,6,199,6,108,0,164,1,186,19,2,176,255,238,185,
        1,0,186,129,0,43,192,205,19,114,64,184,0,17,205,19,115,11,161,108,0,61,190,1,114,235,235,47,144,184,0,9,205,19,114,39,254,
        6,117,0,129,250,129,0,115,29,66,235,212,189,15,0,43,192,139,240,185,6,0,144,183,0,46,138,132,104,1,180,14,205,16,70,226,244,
        249,250,228,33,12,1,230,33,251,232,165,0,203,49,55,48,49,13,10,81,82,248,185,0,1,232,7,6,238,232,3,6,236,36,2,116,3,226,242,
        249,90,89,195,43,192,142,216,250,199,6,4,1,231,3,140,14,6,1,199,6,120,0,1,2,140,14,122,0,251,185,3,0,81,43,210,43,192,205,
        19,114,15,184,1,2,43,210,142,194,187,0,124,185,1,0,205,19,89,115,10,128,252,128,116,10,226,222,235,6,144,234,0,124,0,0,43,
        192,43,210,205,19,185,3,0,81,186,128,0,43,192,205,19,114,18,184,1,2,43,219,142,195,187,0,124,186,128,0,185,1,0,205,19,89,
        114,8,161,254,125,61,85,170,116,203,226,215,205,24,207,2,37,2,8,42,255,80,246,25,4,30,184,64,0,142,216,138,38,119,0,80,198,
        6,119,0,0,232,105,5,42,192,238,198,6,119,0,4,232,94,5,42,192,238,198,6,119,0,8,232,83,5,42,192,238,198,6,119,0,12,232,72,
        5,42,192,238,176,7,230,10,250,228,33,12,32,230,33,251,88,136,38,119,0,31,195,128,250,128,115,5,205,64,202,2,0,251,10,228,
        117,9,205,64,42,228,128,250,129,119,239,128,252,8,117,3,233,26,1,83,81,82,30,6,86,87,232,106,0,80,232,136,255,184,64,0,142,
        216,88,138,38,116,0,128,252,1,245,95,94,7,31,90,89,91,202,2,0,56,3,77,3,86,3,96,3,106,3,114,3,121,3,128,3,48,3,39,4,207,4,
        221,4,242,4,56,3,249,4,7,5,21,5,28,5,35,5,42,5,49,5,198,6,116,0,0,81,138,234,128,202,1,254,202,208,226,136,22,119,0,138,213,
        128,226,1,177,5,210,226,10,214,136,22,67,0,89,195,80,184,64,0,142,216,88,128,252,1,117,3,235,85,144,128,234,128,128,250,8,
        115,47,232,194,255,254,201,198,6,66,0,0,136,14,68,0,136,46,69,0,162,70,0,160,118,0,162,71,0,80,138,196,50,228,209,224,139,
        240,61,42,0,88,115,5,46,255,164,156,2,198,6,116,0,1,176,0,195,232,67,4,238,232,63,4,236,36,2,116,6,198,6,116,0,5,195,233,
        218,0,160,116,0,198,6,116,0,0,195,176,71,198,6,66,0,8,233,229,1,176,75,198,6,66,0,10,233,219,1,198,6,66,0,5,233,196,1,198,
        6,66,0,6,235,12,198,6,66,0,7,235,5,198,6,66,0,4,160,68,0,36,192,162,68,0,233,166,1,30,6,83,43,192,142,216,196,30,4,1,184,
        64,0,142,216,128,234,128,128,250,8,115,47,232,27,255,232,223,3,114,39,3,216,38,139,7,45,2,0,138,232,37,0,3,209,232,209,232,
        12,17,138,200,38,138,119,2,254,206,138,22,117,0,43,192,91,7,31,202,2,0,198,6,116,0,7,180,7,42,192,43,210,43,201,249,235,234,
        50,1,2,50,1,0,0,11,0,12,180,40,0,0,0,0,119,1,8,119,1,0,0,11,5,12,180,40,0,0,0,0,50,1,6,128,0,0,1,11,5,12,180,40,0,0,0,0,50,
        1,4,50,1,0,0,11,5,12,180,40,0,0,0,0,198,6,66,0,12,198,6,67,0,0,232,16,0,114,13,198,6,66,0,12,198,6,67,0,32,232,1,0,195,42,
        192,232,25,1,115,1,195,30,43,192,142,216,196,30,4,1,31,232,52,3,114,87,3,216,191,1,0,232,95,0,114,77,191,0,0,232,87,0,114,
        69,191,2,0,232,79,0,114,61,191,4,0,232,71,0,114,53,191,3,0,232,63,0,114,45,191,6,0,232,55,0,114,37,191,5,0,232,47,0,114,29,
        191,7,0,232,39,0,114,21,191,8,0,38,138,1,162,118,0,43,201,232,211,2,236,168,2,117,9,226,246,198,6,116,0,7,249,195,232,181,
        2,236,36,2,117,241,195,232,197,1,114,7,232,167,2,38,138,1,238,195,232,25,0,114,107,198,6,66,0,229,176,71,235,104,232,11,0,
        114,93,198,6,66,0,230,176,75,235,90,160,70,0,60,128,245,195,198,6,66,0,11,235,61,198,6,66,0,14,198,6,70,0,1,176,71,235,62,
        198,6,66,0,15,198,6,70,0,1,176,75,235,48,198,6,66,0,0,235,26,198,6,66,0,1,235,19,198,6,66,0,224,235,12,198,6,66,0,227,235,
        5,198,6,66,0,228,176,2,232,39,0,114,33,235,22,198,6,116,0,9,195,232,87,1,114,245,176,3,232,19,0,114,13,176,3,230,10,228,33,
        36,223,230,33,232,170,1,232,59,0,195,190,66,0,232,27,2,238,232,28,2,238,43,201,232,12,2,236,36,15,60,13,116,9,226,247,198,
        6,116,0,128,249,195,252,185,6,0,232,232,1,172,238,226,249,232,238,1,236,168,1,116,6,198,6,116,0,32,249,195,160,116,0,10,192,
        117,1,195,184,64,0,142,192,43,192,139,248,198,6,66,0,3,42,192,232,171,255,114,35,185,4,0,232,203,0,114,32,232,173,1,236,38,
        136,69,66,71,232,177,1,226,237,232,184,0,114,13,232,154,1,236,168,2,116,15,198,6,116,0,255,249,195,26,6,39,6,106,6,119,6,
        38,138,30,66,0,138,195,36,15,128,227,48,42,255,177,3,211,235,46,255,167,227,5,0,32,64,32,128,0,32,0,64,16,16,2,0,4,64,0,0,
        17,11,1,2,32,32,16,187,2,6,60,9,115,99,46,215,162,116,0,195,187,11,6,139,200,60,10,115,84,46,215,162,116,0,128,225,8,128,
        249,8,117,42,198,6,66,0,13,42,192,232,27,255,114,30,232,62,0,114,25,232,32,1,236,138,200,232,51,0,114,14,232,21,1,236,168,
        1,116,6,198,6,116,0,32,249,138,193,195,187,21,6,60,2,115,19,46,215,162,116,0,195,187,23,6,60,3,115,6,46,215,162,116,0,195,
        198,6,116,0,187,195,81,43,201,232,238,0,236,168,1,117,8,226,249,198,6,116,0,128,249,89,195,80,160,70,0,60,129,88,114,2,249,
        195,81,250,230,12,80,88,230,11,140,192,177,4,211,192,138,232,36,240,3,195,115,2,254,197,80,230,6,138,196,230,6,138,197,36,
        15,230,130,160,70,0,208,224,254,200,138,224,176,255,80,160,66,0,60,229,116,7,60,230,116,3,88,235,17,88,184,4,2,83,42,255,
        138,30,70,0,82,247,227,90,91,72,80,230,7,138,196,230,7,251,89,88,3,193,89,195,251,83,81,6,86,30,43,192,142,216,196,54,4,1,
        31,42,255,38,138,92,9,138,38,66,0,128,252,4,117,6,38,138,92,10,235,9,128,252,227,117,4,38,138,92,11,43,201,232,68,0,236,36,
        32,60,32,116,10,226,244,75,117,241,198,6,116,0,128,232,35,0,236,36,2,8,6,116,0,232,48,0,50,192,238,94,7,89,91,195,80,176,
        32,230,32,176,7,230,10,228,33,12,32,230,33,88,207,186,32,3,80,42,228,160,119,0,3,208,88,195,232,240,255,66,195,232,248,255,
        66,195,232,248,255,66,195,232,243,255,236,80,232,233,255,236,36,2,88,117,22,138,38,67,0,128,228,32,117,4,208,232,208,232,
        36,3,177,4,210,224,42,228,195,249,195,48,56,47,49,54,47,56,50,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,201] 
        
      • sample1.xml
        <?xml version="1.0" encoding="UTF-8"?>
        <machine id="sample1" class="pc" width="720px">
        	<computer id="pc" name="IBM PC" resume="1"/>
        	<cpu id="cpu8088" model="8088" autostart="true"/>
        	<ram id="ramLow" addr="0x00000" size="0x10000"/>
        	<rom id="romBASIC" addr="0xf6000" size="0x8000" file="ibm-basic-1.00.json"/>
        	<rom id="romBIOS" addr="0xfe000" size="0x2000" file="1981-04-24.json"/>
        	<keyboard id="keyboard"/>
        	<video id="videoMDA" screenwidth="720" screenheight="350" charset="ibm-mda-cga.json">
        		<menu>
        			<title>Monochrome Display</title>
        		</menu>
        	</video>
        	<chipset id="chipset" model="5150" sw1="01000001" sw2="11110000"/>
        </machine>
        
      • sample2.xml
        <?xml version="1.0" encoding="UTF-8"?>
        <machine id="sample2" class="pc" width="720px">
        	<computer id="pc" name="IBM PC"/>
        	<ram id="ramLow" addr="0x00000" size="0x10000"/>
        	<rom id="romBASIC" addr="0xf6000" size="0x8000" file="ibm-basic-1.00.json"/>
        	<rom id="romBIOS" addr="0xfe000" size="0x2000" file="1981-04-24.json"/>
        	<keyboard id="keyboard"/>
        	<video id="videoMDA" screenwidth="720" screenheight="350" charset="ibm-mda-cga.json">
        		<menu>
        			<title>Monochrome Display</title>
        		</menu>
        	</video>
        	<cpu id="cpu8088" model="8088" autostart="true" pos="left">
        		<control type="button" binding="run">Run</control>
        	</cpu>
        	<fdc id="fdcNEC" automount='{A: {name: "PC-DOS 1.00", path: "PCDOS100.json"}}' pos="left">
        		<control type="container">
        			<control type="list" binding="listDrives"/>
        			<control type="list" binding="listDisks">
        				<disk path="">None</disk>
        				<disk path="PCDOS100.json">PC-DOS 1.00</disk>
        			</control>
        			<control type="button" binding="loadDrive">Load</control>
        		</control>
        	</fdc>
        	<chipset id="chipset" model="5150" sw1="01000001" sw2="11110000"/>
        </machine>
        
      • sample3a.xml
        <?xml version="1.0" encoding="UTF-8"?>
        <machine id="sample3" class="pc" border="0" width="900px">
        	<computer id="pc" name="IBM PC"/>
        	<cpu id="cpu8088" model="8088" autostart="true"/>
        	<debugger id="debugger"/>
        	<ram id="ramLow" addr="0x00000" size="0x10000"/>
        	<rom id="romBASIC" addr="0xf6000" size="0x8000" file="ibm-basic-1.00.json"/>
        	<rom id="romBIOS" addr="0xfe000" size="0x2000" file="1981-04-24.json"/>
        	<keyboard id="keyboard"/>
        	<video id="videoMDA" screenwidth="720" screenheight="350" charset="ibm-mda-cga.json">
        		<menu>
        			<title>Monochrome Display</title>
        		</menu>
        	</video>
        	<panel id="panel" padtop="8px">
        		<name>Control Panel</name>
        		<control type="container" width="500px">
        			<control type="textarea" binding="print" width="480px" height="280px"/>
        			<control type="container">
        				<control type="text" binding="debugInput" width="380px"/>
        				<control type="button" binding="debugEnter">Enter</control>
        				<control type="button" binding="clear">Clear</control>
        			</control>
        		</control>
        		<control type="container" width="320px">
        			<control type="register" label="AX" binding="AX" width="40px" padright="8px" padbottom="8px">0000</control>
        			<control type="register" label="BX" binding="BX" width="40px" padright="8px" padbottom="8px">0000</control>
        			<control type="register" label="CX" binding="CX" width="40px" padright="8px" padbottom="8px">0000</control>
        			<control type="register" label="DX" binding="DX" width="40px" padright="8px" padbottom="8px">0000</control>
        			<control type="register" label="SP" binding="SP" width="40px" padright="8px" padbottom="8px">0000</control>
        			<control type="register" label="BP" binding="BP" width="40px" padright="8px" padbottom="8px">0000</control>
        			<control type="register" label="SI" binding="SI" width="40px" padright="8px" padbottom="8px">0000</control>
        			<control type="register" label="DI" binding="DI" width="40px" padright="8px" padbottom="8px">0000</control>
        			<control type="register" label="DS" binding="DS" width="40px" padright="8px" padbottom="8px">0000</control>
        			<control type="register" label="ES" binding="ES" width="40px" padright="8px" padbottom="8px">0000</control>
        			<control type="register" label="SS" binding="SS" width="40px" padright="8px" padbottom="8px">0000</control>
        			<control type="register" label="CS" binding="CS" width="40px" padright="8px" padbottom="8px">0000</control>
        			<control type="register" label="IP" binding="IP" width="40px" padright="8px" padbottom="8px">0000</control>
        			<control type="flag" label="V" binding="V" width="8px" padright="4px" padbottom="8px">0</control>
        			<control type="flag" label="D" binding="D" width="8px" padright="4px" padbottom="8px">0</control>
        			<control type="flag" label="I" binding="I" width="8px" padright="4px" padbottom="8px">0</control>
        			<control type="flag" label="T" binding="T" width="8px" padright="4px" padbottom="8px">0</control>
        			<control type="flag" label="S" binding="S" width="8px" padright="4px" padbottom="8px">0</control>
        			<control type="flag" label="Z" binding="Z" width="8px" padright="4px" padbottom="8px">0</control>
        			<control type="flag" label="A" binding="A" width="8px" padright="4px" padbottom="8px">0</control>
        			<control type="flag" label="P" binding="P" width="8px" padright="4px" padbottom="8px">0</control>
        			<control type="flag" label="C" binding="C" left="0px" width="8px" padright="4px" padbottom="8px">0</control>
        			<control type="status" binding="speed" left="0px" padbottom="8px">Stopped</control>
        			<control type="button" binding="run">Run</control>
        			<control type="button" binding="step">Step</control>
        			<control type="button" binding="reset">Reset</control>
        			<control type="button" binding="setSpeed">Fast</control>
        		</control>
        	</panel>
        	<fdc id="fdcNEC" automount='{A: {name: "PC-DOS 1.00", path: "PCDOS100.json"}, B: {name: "VisiCalc", path: "visicalc.json"}}' width="320px" pos="left" padtop="16px">
        		<control type="container">
        			<control type="list" binding="listDrives"/>
        			<control type="list" binding="listDisks">
        				<disk path="">None</disk>
        				<disk path="PCDOS100.json">PC-DOS 1.00</disk>
        				<disk path="visicalc.json" href="http://www.bricklin.com/history/vclicense.htm" desc="VisiCalc License">VisiCalc</disk>
        			</control>
        			<control type="button" binding="loadDrive">Load</control>
        			<control type="description" binding="descDisk" padleft="8px"/>
        		</control>
        	</fdc>
        	<chipset id="chipset" model="5150" sw1="01000001" sw2="11110000" pos="left">
        		<control type="container" padtop="16px">
        			<control type="switches" label="SW1" binding="sw1" left="0px"/>
        			<control type="switches" label="SW2" binding="sw2" left="0px"/>
        			<control type="description" binding="swdesc" left="0px" padtop="8px"/>
        		</control>
        	</chipset>
        </machine>
        
      • turbo-ega.xml
        <?xml version="1.0" encoding="UTF-8"?>
        <machine id="sample2" class="pc" width="720px">
        
        	<computer id="pc" name="IBM PC" resume="1"/>
        
        	<cpu id="cpu8088" model="8088" autostart="true"/>
        
        	<ram id="ramLow" addr="0x00000" test="false" size="0xa0000" comment="0xa0000 (640Kb) size overrides SW1|ROM BIOS memory test has been disabled"/>
        
        	<rom id="romEGA" addr="0xc0000" size="0x4000" file="ibm-ega.json" notify="videoEGA"/>
        	<rom id="romHDC" addr="0xc8000" size="0x2000" file="ibm-xebec-1982.json"/>
        	<rom id="romEGA" addr="0xc0000" size="0x4000" file="ibm-ega.json" notify="videoEGA"/>
        	<rom id="romBASIC" addr="0xf6000" size="0x8000" file="ibm-basic-1.10.json"/>
        	<rom id="romBIOS" addr="0xfe000" size="0x2000" file="1982-11-08.json"/>
        
        	<keyboard id="keyboard"/>
        
        	<video id="videoEGA" model="ega" memory="0x20000" screenwidth="640" screenheight="350" autolock="true" pos="center" padding="8px">
            <menu>
              <title>Enhanced Color Display</title>
              <control type="container" pos="right">
                <control type="led" label="Caps" binding="caps-lock" padleft="8px"/>
                <control type="led" label="Num" binding="num-lock" padleft="8px"/>
                <control type="led" label="Scroll" binding="scroll-lock" padleft="8px"/>
                <control type="button" binding="fullScreen" padleft="8px">Full Screen</control>
              </control>
            </menu>
          </video>
        
        	<fdc id="fdcNEC" automount='{A: {name: "MSDOS 3.20", path: "MSDOS320-DISK1.json"}}' pos="right">
        		<control type="container">
        			<control type="list" binding="listDrives"/>
        			<control type="list" binding="listDisks">
        				<disk path="">None</disk>
        				<disk path="MSDOS320-DISK1.json">MSDOS 3.20</disk>
        				<disk path="fd1.json">Turbo 1</disk>
        				<disk path="fd2.json">Turbo 2</disk>
        			</control>
        			<control type="button" binding="loadDrive">Load</control>
        		</control>
        	</fdc>
        
        	<hdc id="hdcXT" drives='[{name:"10Mb Hard Disk",path:"10mb-ega.json",type:3}]'/>
        
        	<chipset id="chipset" model="5160" sw1="01001101"/>
        
        </machine>
        
      • turbo.xml
        <?xml version="1.0" encoding="UTF-8"?>
        <machine id="turbo-vga" class="pc" width="800px">
        
        <!-- buswidth="32" -->
        	<computer id="deskpro386-vga-4096k" name="Compaq DeskPro 386"  resume="1"/>
        
        <!-- 80386 -- >
          <cpu id="cpu386" model="8088" autostart="true"/>
        
        	<ram id="ramLow" addr="0x00000" test="true" size="0xa0000" comment="ROM BIOS memory test has NOT been disabled"/>
        	<ram id="ramCPQ" addr="0xfa0000" size="0x60000" comment="Compaq memory at 0xFA0000"/>
        	<ram id="ramExt" addr="0x100000" size="0x300000" comment="Extended memory at 0x100000"/>
        
        <!--
        	turbo-EGA  ROM section (for 8088)
        
        	<rom id="romEGA" addr="0xc0000" size="0x4000" file="ibm-ega.json" notify="videoEGA"/>
        	<rom id="romHDC" addr="0xc8000" size="0x2000" file="ibm-xebec-1982.json"/>
        	<rom id="romEGA" addr="0xc0000" size="0x4000" file="ibm-ega.json" notify="videoEGA"/>
        	<rom id="romBASIC" addr="0xf6000" size="0x8000" file="ibm-basic-1.10.json"/>
        	<rom id="romBIOS" addr="0xfe000" size="0x2000" file="1982-11-08.json"/>
        -->
        
        	<rom id="romVGA" addr="0xc0000" size="0x6000" file="ibm-vga.json" notify="videoVGA[0x378d,0x3f8d]"/>
        	<rom id="romBIOS" addr="0xf8000" size="0x8000" alias="[0xf0000,0xffff0000,0xffff8000]" file="1988-01-28.json"/>
        
        
        	<keyboard id="keyboard"/>
        
        <!-- turbo-EGA video
        
        	<video id="videoEGA" model="ega" memory="0x20000" screenwidth="640" screenheight="350" autolock="true" pos="center" padding="8px">
            <menu>
              <title>Enhanced Color Display</title>
              <control type="container" pos="right">
                <control type="led" label="Caps" binding="caps-lock" padleft="8px"/>
                <control type="led" label="Num" binding="num-lock" padleft="8px"/>
                <control type="led" label="Scroll" binding="scroll-lock" padleft="8px"/>
                <control type="button" binding="fullScreen" padleft="8px">Full Screen</control>
              </control>
            </menu>
          </video>
        -->
        <video id="videoVGA" model="vga" screenwidth="640" screenheight="480" scale="true" pos="center" padding="8px">
        	<menu>
        		<title>VGA Color Display</title>
        		<control type="container" pos="right">
        			<control type="led" label="Caps" binding="caps-lock" padleft="8px"/>
        			<control type="led" label="Num" binding="num-lock" padleft="8px"/>
        			<control type="led" label="Scroll" binding="scroll-lock" padleft="8px"/>
        			<control type="button" binding="lockPointer" padleft="8px">Lock Pointer</control>
        			<control type="button" binding="fullScreen" padleft="8px">Full Screen</control>
        		</control>
        	</menu>
        </video>
        
        
        	<fdc id="fdcNEC" automount='{A: {name: "MSDOS 3.20", path: "MSDOS320-DISK1.json"}}' pos="right">
        		<control type="container">
        			<control type="list" binding="listDrives"/>
        			<control type="list" binding="listDisks">
        				<disk path="">None</disk>
        				<disk path="MSDOS320-DISK1.json">MSDOS 3.20</disk>
        				<disk path="fd1.json">Turbo 1</disk>
        				<disk path="fd2.json">Turbo 2</disk>
        			</control>
        			<control type="button" binding="loadDrive">Load</control>
        		</control>
        	</fdc>
        
        <!--	turbo-EGA  HDD
        	<hdc id="hdcXT" drives='[{name:"10Mb Hard Disk",path:"10mb-ega.json",type:3}]'/>
        -->
        
        	<hdc id="hdcAT" type="at" drives='[{name:"68Mb Hard Disk",type:4,path:"68mb.json"}]'/>
        
        <!-- turbo-EGA chipset
        	<chipset id="chipset" model="5160" sw1="01001101"/>
        -->
        
        	<chipset id="chipset" model="deskpro386" floppies="[1200,1200]" monitor="vga"/>
        
        	<serial id="com1" adapter="1"/>
        	<serial id="com2" adapter="2" binding="print"/>
        	<mouse serial="com1"/>
        
        </machine>
        
      • visicalc.json
        [[[{sector:1,data:[1234239211,538987842,3157553,65794,1073758210,130561,65544]},{sector:2,data:[67108862,1610940480,8390400,184590345,3758948544,16781056,318840849,1611989312,25171713,453091353,3759997376,33562369,587341857,1613038144,41953026,721592361,3761046208,50343682,855842865,1614086976,4293932803,4095]},{sector:3,data:[67108862,1610940480,8390400,184590345,3758948544,16781056,318840849,1611989312,25171713,453091353,3759997376,33562369,587341857,1613038144,41953026,721592361,3761046208,50343682,855842865,1614086976,4293932803,4095]},{sector:4,data:[538985302,538976288,5066563,0,0,3087007744,131984,27520,1145128274,538985805,5527636,0,0,1441988608,3686760,97,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229]},{sector:5,data:[229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229]},{sector:6,data:[229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229]},{sector:7,data:[229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229,0,0,0,0,0,0,0,229]},{sector:8,data:[587205097,808464432,2150641712,3633236108,3230584974,1922041484,3161137896,646542236,4259869326,8382567,3892365032,646668259,2296935054,7333888,3899212776,512444074,3822155095,3146734985,3280172380,3540300047,31100139,2313408979,3337130333,2969679171,1113778177,3903741321,108215989,3914781160,2515075066,2220723010,1124075462,2952792006,1510533129,1166558128,2281812128,1149775428,1304623,3909092328,1424498244,1903213312,1903042185,3190337769,3854527757,709150316,725927679,312896,2147566790,3137384643,2847566949,2091008,3127709115,384303175,1834203904,3892621754,512425997,1555723607,432015477,2295564243,4132061959,4151607494,2281746627,2289277958,2289278214,3899950598,48848254,1569843202,109576368,2311287709,2960368670,2735114495,2258617203,3766898912,1969074920,3766900741,1381221278,3898037841,2196266421,3892540509,1583284660,1482381913,3281969286,3909092328,2258567188,3766898912,109576368,2253943710,3905134304,1364394409,1493173992,2839906907,4289652931,1939670666,141869064,2952886248,11004187,1939736202,74760200,3282650506,1939867274,1939932808,863289352,1954940554,109766794,3896013188,11537266,1939867272,401149360,2215021056,3049818737,1904589568,3254700801,109625738,126513540,2315279593,141794310,3909317824,1173749988,57966776,3138749928,662729638,1557391487,99092596,3910905857,2028470325,2316792669,141795846,3893131456,417857873]}]],[[{sector:1,data:[1940044546,3917483904,109641687,3314185119,2155061947,2258599719,3766898912,1483111912,3902726278,109707285,3221779363,1166673524,125097,2753465283,2330197875,2290135272,2322832902,620736965,3766919039,2329970256,141795078,1477080256,3919503494,82378788,3766900736,1963474078,1008447490,1007055425,2969728858,1915763713,2000239622,3909267714,3142647828,11862961,121243057,3768402844,41245177,1166540977,2839906472,192045372,125270588,539754929,2326349192,2856683713,50397891,4276618756,2955507035,2806351872,1939801736,1918851048,1954489353,4283689219,54264752,11534965,3903276424,2646301642,2148499571,2969466089,2651228160,109757299,3221779357,3905094004,2884108298,1939716955,3279949696,3899129832,11534759,2292336008,2289279750,2289279494,3899891206,109731017,3221779356,11540852,1939605128,1935551976,2330495502,3221792581,3314156917,3282519432,2158120320,2158185856,2155060411,3905126415,12281162,1694623746,2310299019,2322835486,3901404741,3894967728,1940784776,2277199676,2298966893,3916671518,1166671913,2025851066,2315940876,16824016,2820573651,2969613683,2820574031,432015475,2854128075,2286923891,2339614214,2322836510,1979661511,2854128398,2919664243,1705175155,2332043753,2339613726,141797902,1405819328,512476042,2313712554,2919664229,3358087539,1940784776,1940659851,3278208232,1399100904,1954940554,427343880,3901364084,3626520752,74901560,1954940554]},{sector:2,data:[3899753915,1944610132,1019710052,3892540674,3898303953,1760126019,2873461348,276348936,1954940554,91799560,1441268596,256356,4167323624,3125119683,276348936,3632926324,2277114039,2312307053,3279137822,1018578314,2332587133,512341085,3150148524,512360447,3150148524,2277141896,8173933,2280884124,2767453434,4203213703,3058040477,1018840458,4261836031,99203661,2289872896,512473669,3347739564,91553596,2887682379,2696659827,2148499571,2155061691,11567119,1904477832,2281746627,2289278982,3279134982,2701560568,2042628211,3049519361,3137384458,126383073,1976434243,2258617337,3766898912,3138041169,3954865121,2333051507,4623082,3247048584,1183378059,4265755392,1508537805,2665514584,1944173507,1942625929,109579440,3905123276,74579975,4177506536,3422980803,1975519347,2289217544,4185153030,3390999491,702835,3405892353,2345895755,24365598,3390998987,109726579,221017036,179427574,2280884124,2767453690,4203213703,1976106653,3422980845,2294873715,4168338438,4285196483,1942750858,930548540,3640003628,3128161723,179925995,4085750784,4093442695,2280884132,3372129786,512486517,179925962,432015360,3390998987,3422980723,2294349427,3279145990,1942750858,141822780,109605552,3287905254,1323877368,4293978623,209305608,132700406,2298458112,3279153414,1356891807,854122630,3766900991,3766919070,3051390544,1919171584,4267977734,2297853381,2322851078,3859187909,2281877619]},{sector:3,data:[3899910662,2253914688,3905134304,2258567201,3766898912,4134791611,41189383,2258622710,3766898912,1509901032,2665514584,2328085898,141813254,4160910784,3926297283,1929460851,4160794628,2315941315,1014228486,4160910180,4184125635,3926297283,1975519347,3859188240,1975519347,32110596,803862784,1963015168,3859188232,602536051,1963080704,3859188254,1929591923,128629522,11980938,109761281,117601253,4177527273,4177527273,1356891807,3303596166,3766900990,1677771678,3451519176,256371,3144931258,179925985,4085750784,4093442695,2280884132,3150159354,65631181,1943517952,4265076819,1944173147,2617248441,4203213703,2275734524,2650441715,85584067,1944454794,58048520,2331930345,141815814,3909318080,109772390,3901387764,1944716938,57796648,2030427113,3906532869,104660408,2666070898,3766918912,3152053840,11891691,3405891722,745794490,2329474566,2617292232,4203213703,2275734524,2650441715,2665514584,11593866,158911998,1183378059,4092150272,3909520127,2328398451,812905222,2160129736,1525163893,2330626816,117571654,1681704960,1680607090,48824753,2332078336,4622570,3455992387,719970165,9299968,904397683,2877693,1183509131,671558144,67598792,3909202276,11599874,1183378059,4265755392,3907089869,2749956224,17492221,3053395689,3120607496,3954930657,109757299,3901387753,1945306762,24438840,2160457411,82315124,4110513152,4026960579,2330495603,141813254]},{sector:4,data:[939947456,233423848,147163648,2315744704,947119622,109757416,2150396916,109766794,2150396906,24438840,1944500931,3044274363,2043543046,3284154371,1183509131,2617719296,1956465482,109757420,3221779434,3237350265,3909317952,149488781,1086387712,1407779700,1944632317,126486709,57982984,1258293481,4067806718,2315545833,1963338949,3901408001,1944716938,109635584,3321263082,3106108800,3221749765,3787115289,2617815411,4203213703,2275734524,2650441715,2298478779,3916687134,3870949411,80054899,3049818630,4085750784,4093508231,2280884132,103587322,797496199,1975582283,109757433,3221779430,109709940,2150921193,1944651400,52291779,1929309160,4225951747,3908859369,3722969871,3892540414,1743387604,50456828,3908571112,109707907,3901387754,1945372298,109635584,2998629321,1944828531,1381172917,2330626897,3221749830,3364495732,3044270522,1364349702,1183509131,149457408,3892540608,1515782235,4265820763,1508275661,1128422234,3396718078,3908832744,3216767845,2316219763,1958742023,583939,1976434251,57403890,1942554250,204269568,1944716936,2977162938,4085750790,2768108167,4203213703,3247086921,3983917064,1942488714,1944651400,12276675,3067447808,1944702976,2329084172,2019830979,2328362500,3504525528,750947030,4261705828,2328922822,1975519425,1540589532,3489662858,74605628,3338560556,2319648648,1022361607,738685540,3909203556,11927554,2319648648,1975519430,149472230]},{sector:5,data:[4145473538,1944454794,58048520,2315445225,141815814,3909318080,1961425743,3926297089,2330495603,678687750,3372648680,1945221747,3111383227,2275147782,4261054451,4085753075,2963143303,3943073792,3037180275,1944173320,126484662,4026589392,124937276,28730412,3053454057,1124567040,3866480126,3681929726,1944585866,611696648,3128158139,129594344,4085750784,4093508231,2280884132,109616634,109736929,3237901257,1942554248,2306077371,2960371486,2969995272,1941551987,1364396213,3128156603,146371514,4085750784,4093442695,2280884132,2159648250,3250213120,2938014579,2969995891,3907553907,192413015,146901593,1374194408,3137369320,146109377,3221749937,41093002,3905971204,4266329992,1508996557,3922773386,512476021,2303423407,3144920862,268334001,126376793,1976434251,1941093265,3111379386,2275147784,4244277235,4085753075,2325609095,745785606,3926296578,4267501683,2331803880,1014228486,739209828,3859187812,2281812083,3899909894,3133406444,3267064811,2969995891,2315302259,432015560,2984807115,2330626816,120193094,125421608,28402692,2969567977,2297072384,1111687238,3782594046,3909520067,2330495603,812905222,3355871464,1941093235,11540149,4265805704,3287905741,504629760,1178350120,2321832528,1014221830,3892670988,3287939576,109757432,205288396,3924297330,1042937,1944454794,1929439464,2294544386,1534322182,109757433,205288396,3387426418,977401,1944454794,1912647400]},{sector:6,data:[109626113,4183520230,3422980803,1913338995,1913404432,4188465155,109605552,904492006,9955328,109710707,2598925296,3271652096,2281708777,2322851334,3899912198,124977289,1944454794,1006635241,2315548017,2289296902,3899912198,4183554323,3422980803,1913338995,1913404432,4183222275,109605552,971600870,3859188224,3532915,109710706,753431536,3271651840,2281708777,2322851334,3899912198,124911643,1944454794,1006635241,2315548017,2289296902,3899912198,4183554239,1920154819,1019475970,2952950640,2328099186,3899909638,109576197,1019442150,2669113968,2253447302,1920154848,3766900745,3916607646,2253914116,2965610208,3138041088,126383073,1976434243,3219702777,4168411640,2331955176,745794054,2044261893,104645377,3135832946,2315302391,1944173512,11586305,4266329992,3925440969,11598628,1944651400,4275955907,3908665320,2145974327,4187220217,3908879336,2330525626,4223789305,3908800488,2699622791,3909520121,2042628211,4185122822,3287913192,4182698067,2969003240,4167886849,134711899,1394309312,1543061992,1392516328,3908799208,1357445487,4182239481,3925573352,3706322910,48782327,1407450880,3120003304,3126525958,2275177441,4244277235,4085753075,2325609095,3926296583,126501747,1944651400,3504915267,806552575,2828894,3303588608,1426661119,16915993,3102262016,1547773183,16977423,2900935424,1612727551,16857351,109757184,3771757546,1952646792,1944454794,225643068,3555199664]},{sector:7,data:[4211206391,4269040571,2281746447,3279153670,3925280488,2984835823,3909520125,2042628211,4153469187,1944454794,58048520,3908535785,1491664824,1296171775,16977942,4207273984,2969070568,4153206785,3908665064,28375165,3908534760,2783508631,4139641083,3908483816,3035167395,322092022,3909022184,1404827240,4276676627,3908798440,109771403,1139307619,4167690487,16713448,0,3909091378,2179529015,4281264383,3908725481,434699564,4200720639,1944651402,1952974472,3908463336,109772358,3221779560,4289726585,3908503016,4025022507,4195281143,3908575976,887684856,3892490490,636024574,4131252475,3909038568,196147148,2683760104,2253447302,4212058336,2665514584,2258567724,3766898912,3908490728,2253977579,20750048,2258571124,3766898912,3908548840,3572102592,4209174783,2968910568,4138788865,3908552424,2850616748,3892424953,3102275234,4207339767,1944716938,2213077200,4153272566,2331485928,1014229510,2316006401,141813254,3909317824,109770330,3921376230,2148005491,3640001140,1356891807,4176011398,3766900981,2298007710,1936976390,3893014536,2162751058,2162738169,3859188476,1728481395,3909519988,1711704179,4114278516,1944454794,1952777864,1944651402,1952712328,1952712330,1551482888,1952908938,209043464,3908414184,28374439,3287682536,3908373480,669578571,4161202429,2431125876,4119718133,3908425193,109770119,103576554,91871478,266928304,3049818624,1944173312,126536449,3637573840]},{sector:8,data:[1952712328,2968834024,3909519360,2419059,1952777866,477478920,1952843402,242794504,1952908938,108314632,3925163752,954791065,4118866421,3908983784,1592326347,1678150398,2290099316,3279153414,2331738088,2289297670,3899942918,3236494540,4253214964,3908881128,2045310068,4187416829,1743258800,4240042229,2331805160,2675172870,2253447302,4108970208,2665514584,443799760,1356891807,1307107462,3766900989,1926811806,4097501187,3925289704,3637510151,770179955,3926297336,2042628211,1946106887,3270915,3908329192,1958477138,4237879315,2331524840,141814278,2316992192,2675173638,2253447302,4102940896,4092068272,3766900980,3909519518,1745259123,2330495604,812902662,3909519592,3790127987,4126009596,3909043689,1072231443,4090161407,3925863400,2028533996,252,3276800,4268157184,2331682792,611576070,1762035840,2281746548,3899910406,190315607,1179059790,2582118400,3895423990,28374051,3908340200,108263052,3925087976,2112418910,4239714547,3908532200,2917725579,1762036479,2285898868,3916720390,4108845059,3926297331,2042628211,1929329668,4086687774,3908864488,3048993679,4224509971,3153282024,3286766558,4167231739,3153553128,133592169,3892933696,837351212,4114475260,1953040010,3901390884,1944651402,109635632,3905123305,233373530,4229097719,3908378345,109771256,2149872617,1953040008,109576368,28341225,3908300264,326366704,1953040010,109592588,3722998889,4160940274,3892315113]}]],[[{sector:1,data:[109769575,3221779434,4282124153,2397635443,4077250815,3908827624,129757951,4215072788,3153245160,870847536,4157794555,3925268200,526516077,138294086,224329473,189137679,1445462017,56433938,840564481,322715409,201261056,1560305182,805241097,1308954881,872415504,221649243,16711944,0,4278190337,0,65792,1111638595,4278194242,555819297,16732961,689594921,4294902114,958356503,16646731,873091925,4294771250,990127652,16515388,270868305,4294593583,1598051327,19147269,222826496,21448024,1029772543,19726368,1109466880,17378653,1193030143,2378524,1079181056,606733663,1661206529,1296849164,929300225,924262402,660013057,237850927,65281,16777216,1493106689,1345082888,1593835850,307516695,939524609,823345951,1375732023,926298687,889192711,1498823200,4278190093,743835738,84560,1310798910,131371,1480008513,88109,235214341,70241,0,65792,4055099647,109605808,3905123302,1957753257,1944454792,4168804547,1944454794,91583292,48854192,2289283072,141813254,3504915392,3859188472,1953709171,4026960388,3766919027,3907028560,2253976011,109616864,3221779430,4172146883,1944454794,74740796,1945110154,1356891807,2833834118,3766900977,3859187870,3284142195,2683571176,2253447302,4052871392,2665514584,4158384323,2328035699,3899909638,309590211,1945110154,1945680616,4161923081,3925856744,1491599385]},{sector:2,data:[3859188472,1945156467,2258569018,3766898912,1492211432,1973346438,4282443782,3892315113,3221815108,4290111683,1088947058,3639133183,4288211191,602408563,256511,150939624,3924345792,3892540159,3905158947,2078865339,3892737791,65666822,4278904832,3905142792,57868265,3288270568,1945587944,109757185,1899787238,3823634037,256510,150923240,921224128,3271652343,1944454794,108360252,3925789160,3454533635,3284142334,74776636,2143380864,2147513064,2155852645,2155855973,2155856229,2323629413,260719407,4130835011,108298437,3913449192,3247046658,2294564232,3321282117,2150986816,4135633229,74719429,2160086400,1947256310,3008200708,147191424,1300236916,3321266373,3271652368,583353738,1166590277,3209021121,3279259648,2305688763,1166720093,3192228036,3766919107,3907028560,2253914433,1166581472,2315302331,376749000,260754177,1127189059,1922436745,3321245578,2147972368,3917460325,1300234244,2680389811,2253447302,1397903840,1922440843,1526731752,141777242,2665514584,387577,2665514584,3825189880,22584,1746339840,403898446,134217728,4278245399,6437,2721280,385613824,134217936,21915671,1124567643,41533448,2800280575,4294044159,3221751690,3905094009,3913547673,806158322,2684326121,2253447302,1098770656,2253973642,199859936,3907553792,3894952303,548464778,24759806,4285262019,2332030441,171752261,3488154485,1964260353,38463747,3275833320,141888828]},{sector:3,data:[2952814824,310307085,1356891807,2800279686,3192228352,108380168,2665514584,3372139513,2344502664,2253962333,126394080,3160246595,1166722040,3192203972,79423626,2026765934,3892808200,1933770773,2316268276,3456024173,2965569913,256032,1405351027,304539729,4139998041,1971372357,1702937345,1173782465,58032325,2332015593,4282172229,2328035701,1569375101,1372711103,2322465979,1160430661,3225810622,3892737152,65622725,1387980800,4139664778,1954594885,1392371718,3892315113,2160284390,2155921485,3279995213,2143315328,3087004905,3766918914,1373668944,870863698,1499093842,2665514584,2667689923,2253447302,1397903840,1532108264,2253936986,1371774688,2108745866,2327201066,1078585544,292997176,46238291,3632971589,2328067466,1376315589,2680379739,2253447302,3026029536,146425226,1962884288,1920810007,3979864067,3048885642,1837611776,1174326017,1305018,146163082,4128011712,1971370309,3766900742,1489238430,2292113542,3026029319,3026028867,4172697086,884491658,2873460991,2875556035,4294949759,1940659849,602409648,3093659901,3110436991,3076882559,2286274175,1837611776,3048496521,3060631677,4290397638,4291684547,2332017129,171752261,2447901556,985893439,141931589,1161480074,3271652789,321619,3286922075,1018578314,2333373565,3221795933,548406388,2303395720,1174320221,4190369974,4240238787,3925791976,770243878,2953540160,4293781519,3909009640,3905158765,24330254,677153731]},{sector:4,data:[2315672713,2258615109,3766898912,1916817896,3893342219,2598960262,304867582,2665514584,4177327848,3766919107,3907028560,2253979329,3739852512,4263555326,3001595461,3058564862,4041786360,4286114047,3966822595,968558194,3904628762,109576368,669545580,3766918912,2967504464,2735114240,1812367987,2042628212,3766900750,3892359326,11598882,1478034665,3281969286,1953113737,266865328,4278839548,2147533800,2138336806,2144494976,1946512872,4127689273,779387072,108392508,3909361384,3913023592,3237355636,2317055040,1021322472,2316793280,3038717125,3150481920,3405860250,2149844874,1300235381,3619389650,774367305,4127440104,1954599493,1022552078,219865984,1006443238,3909032675,456976484,1239944821,63564008,1625883507,4287097342,1929545448,83421193,82314357,1995031296,3766919167,3907028560,91417494,2665514584,2298458307,2339668742,4185156134,3766919107,1021347408,3893261573,4289783812,1953236616,1953113739,3766900931,645972894,3900666990,2109074339,3050401160,1892662143,2966379913,1124567295,4185247230,2305709243,11586909,1421606581,1867692654,2336425864,4622570,1976434242,3026029555,1867652745,2305871803,3278787614,3766918995,2329970256,3221803333,243274357,3900732526,2280193895,3766900797,1108382,1489984907,2292113542,1569276679,3511549647,2337456987,394972509,1261931075,1183509131,3905116672,2867396407,1037690902,3892321512,4108926377,3766918943,2967504464,1829144831]},{sector:5,data:[3766900852,1304734,2670446568,2253447302,2281746656,1484025094,3902726278,317200894,2281746432,3899785734,233373792,256042,3895068649,3941133174,2282795049,3899785734,62598709,4261906546,3041124173,1944173062,1183509131,1975519232,3455992325,3871011445,2330626931,1882980422,28639858,259575294,1183509131,1124567040,3746430538,2315251177,130473309,260066303,1421591424,1125616238,2336438154,4623082,4050968636,2160129619,394925685,2335672899,4623082,141950780,109580464,3277550082,2336039400,512351581,1264284783,1884272971,1843941715,2321242368,931808023,1364410691,1183509131,1019225088,2317186432,4134825222,343179456,3918221657,4127213194,141852864,1323881351,3270912,1125616210,378091402,2337961074,1400139550,2330626907,126353478,58064700,1107301865,512447299,3221779570,3833058073,1864272219,4288080244,3119012697,512475964,2394584175,432015474,3892540115,3905108976,1284193589,677153604,3892365194,3280662666,3498756096,2318554249,3221762628,4282129780,1149901171,1958742067,1933589522,1864272654,1026025588,1953439369,2952793577,1864272833,1124567156,1953439369,3527800515,3894113664,3491969600,512327966,2183039360,1006444031,788340361,1614814719,2447965983,3766919141,2967504464,1946585343,3766900852,3527800478,2670032000,2253447302,2281746656,1484026886,1017045126,3909317923,557580741,3974693749,1965964289,36563203,296812725,21824443,3143259083]},{sector:6,data:[3405860116,1356891807,2253971590,2258607840,3766898912,3388885579,2253916793,4243103456,991750652,3799320378,1953760906,3935037578,805324426,1490254056,1017045126,3893523774,99154189,966191333,4280119101,820580016,1966881792,4176996373,3907317736,1950169472,494485021,3910119679,3247046679,2952794089,911629,149490864,3909857280,3387424771,1930378468,3923774469,2258567183,3766898912,199815088,3766900989,4244957342,2147519721,2340403045,1421528413,432015470,1867692755,126538497,2319419971,4209240280,3050265995,940018431,2282058984,4294306095,3445459907,1413268362,1156056437,1271134716,1125616203,3330946954,91607048,4194054888,1569278915,3478489549,4177504488,976677059,3909066985,24321373,728754371,3053229544,1944173318,3221751690,126487924,1140622824,4134915582,1124074985,3900034558,4142415592,2155113990,2565342580,3905157631,1702952805,1390968759,3445459731,1312605066,394926965,2268564035,2332014035,1961375751,1127188486,3909088489,3689544635,2302886713,1435225437,1125615823,3125491592,3221778004,1387975449,2345861487,394835029,4164388931,516417731,2364015731,1569440763,991422671,243272563,3900732526,2615802747,3479013689,3909058793,108200021,3925568232,1552628106,878479656,3896122856,1569390636,3897248717,15210278,4281723391,3896111848,753473316,3815696639,3893771752,1911089356,4186040571,3924353256,468254487,4177687808,604474051,1971338432,32110596]},{sector:7,data:[3905157376,24379368,980937155,2328714635,1968454851,2320220929,529156871,3624466570,4292864195,4108846707,957671930,2301123723,4038079580,3908985576,925775780,1223229215,3271652351,2301779083,1911043676,3893326623,4125686475,4269140194,3912820201,3287810049,3941089456,3445459958,583763,3892605787,3287940715,3897360571,24328137,1294318275,1929385704,3247096577,334020620,4271630587,674712552,4177469335,2332078531,3935013981,1006651018,4177688063,619219651,1963407999,1166689053,1977104564,3041233425,175503416,1954596342,3921934338,3913416708,3935043536,1107314314,1954595062,3921805045,3739811773,671934464,3892316648,1994930353,4294044151,2330071784,1170646853,3221749927,2258571380,3766898912,1492673256,3919503494,1173751895,460685474,2158183926,3555198580,171436058,2158314998,1676150388,946857994,3892315113,3216717426,916711497,2166481024,1233265263,577708569,4246761243,4246292779,4246292781,4246292771,4246292782,4246292800,555305256,1530804976,544223009,991981325,3288227137,3897155003,1882142309,577187104,1126214210,239345879,848250190,1193337926,1967726971,1303989582,1381160784,1800622019,1580422228,1478541142,1146561281,3169386075,2290135287,3585837637,908322891,2149754125,3908969125,1300297639,62619832,4125157377,3897291707,3909039625,3150182291,3686419425,905504843,4261490265,2281707240,1307156293,911396,108314632,3902096776,2666072466,1270856503]},{sector:8,data:[3894871272,2258624856,3766898912,1491155944,3147751558,129311066,91555642,3372139914,3455994819,3915117173,2258581270,3766898912,1018905994,2953147653,4111722528,804609512,2253946950,1421582048,2315302177,2328560072,4110149895,709436484,3142341191,2800241178,466479142,1558709875,15919415,3895930088,1552615800,677153074,3140953065,1525172872,562971445,1327613522,3980796329,2562457120,645130314,1914279912,1912814602,1011083270,3892884713,2313762458,1252375350,1379216616,3141738934,1387331105,2952790761,2688911427,3909680360,3082492195,890234954,1294062401,3908968923,1702893850,2160295841,3279987021,3892905960,3051945987,888334390,35783169,4228063802,573834273,4263662342,3916238270,247332867,675580525,1964131386,2330495503,1144663620,3909317138,3314155588,58050814,973093865,58134596,2281714665,230565956,4140034413,3916238270,247332867,675580525,1144701182,3909317162,1149763604,1829617192,2968954089,675579905,3911795848,230618777,1236002925,2968948969,1237760912,2952791529,1237367680,3901375880,2582128013,4128892982,1166674613,1962884291,4133152773,3314160821,3908455144,108209411,3909629672,1038628349,581242164,33983231,3766919026,3907028560,1166680689,1954364598,2319813164,1912735368,3127740347,2108715523,1958102314,2315302161,4085750984,4093442695,2280884132,4289764858,1183378059,575858688,4092068723,3766900981,2025851038,401729795,2290135235,2766768709]}]],[[{sector:1,data:[1283963903,1043584232,878060311,591022115,555973421,3908969339,1170669121,1149895307,2294873640,4266002500,4067789645,1843940942,119793973,3916238526,230555651,230577773,3892555885,3857201222,745692695,1971324150,1997945872,1912683555,2294349343,300483652,2001353728,1913011219,1426491407,2281877613,1157497924,944891950,3278704062,1953834633,3139726824,1390955237,596659251,4263862355,3897226682,364586077,611051595,1929602024,80668931,3190459624,57896205,3892359401,12312718,677153024,3908349672,57877462,3120602345,2277188942,2354940269,1929104104,1019316768,1008759808,2332652801,2347297909,4292143360,158663228,3907941771,3353935998,19523839,3909075433,1170604323,1149895307,776208936,1149815038,1308509736,1324316043,484501582,2330883467,1149775428,1829617192,3892379880,1111285278,4142408565,3967126272,2284733578,230565956,1566829,3892331752,1972044001,675610350,1970081214,3753371862,3893794537,109764036,3221779357,2344812917,3899946278,4092125086,4292995389,3892360424,3051880593,3892540183,1149829093,1829617192,3892354537,2062032909,1962884096,1963015254,9431078,3908293352,574414276,2850554741,586541277,1270111627,574359434,921174901,4265994482,3892322025,2733171015,3909317398,1592328093,1894400,2464744307,4133349631,2330526579,3967126527,3190310142,1122528525,3282072320,1446115304,3909035266,3991462267,925713713,1412900942,1665537113,753467156]},{sector:2,data:[3905157394,854127459,374597632,1323828083,2615551,1944188136,4282640387,256195,3892314344,904462125,3709790429,58006332,1023356137,3271652621,3909085417,540859680,742130292,3287810676,3923574760,1095041005,1163313492,1380930627,1347769555,4292035916,3897229242,884679309,580642891,3894862523,57868704,3137534953,3253226249,3892736814,3303617214,682354688,3169387379,3893997568,132706314,1111577841,806176076,571289900,1163267362,1380930627,741346643,3967126400,3892353512,571338982,1431571746,1397050448,2150379533,3907941771,3488088194,572657136,1413563405,741346625,572656944,1552646157,677153070,770749928,221260849,4000680832,976635018,230565956,2336649837,1149955189,675579950,3899461054,1329787026,3900706132,2646334472,2148005491,753468276,3967126272,976635018,242362436,3899461054,1972043820,675610348,1972099445,675610350,1970081214,4032358563,222580549,795339136,708199562,3237881924,3916238270,921175792,33983006,2042628210,4029999123,221260849,3605561378,4029212676,3279949090,821043688,2045280300,3859188239,1919958131,652065600,61931701,91490106,1976172107,652131319,126536449,1356891807,373088390,4024961397,2148348399,3892315881,221310950,3766900864,174057630,3906971368,2148397014,3049304515,3893669892,3353872004,223743471,1936900992,369193332,1229193239,1129742406,1179206688,1061573200,2159034175,3911640762,2159018021,3911643066]},{sector:3,data:[2159018013,3911641530,1085276181,3911640762,1085276173,3911641530,1085276165,2284252346,2306111238,3899947030,1827205487,2953016096,1166721795,3766919080,3907028560,2253970188,2042339040,309543,1134298938,1979310237,2025731,3892509160,24313891,3795139,1019412850,3137959184,3303548913,3271651903,3421029369,2984900656,67175423,1996917254,1967144052,2164688915,3598452,2328035699,2289336582,4168382214,3058010819,3640032556,1954285192,2305656763,2322889246,2322889734,2315302344,2339665670,2339665942,3916724766,2159032771,1953957512,1946144488,3150182402,115886931,669210927,3664701695,2955960808,3905157379,24379315,987490499,4173529459,2766688963,3935001328,1006651018,3892802573,3913477709,3588816880,675676718,19414788,1057171519,675218984,3657361663,1939670666,74760200,3287876272,1946091496,1963146255,3909267461,3901358084,3287876528,3905094832,3925356542,95485888,1085326329,1953957512,2301029562,2306111510,2322889246,2080803009,4282902644,3766919107,3907028560,2253928942,54304480,2328035701,686406632,1011025802,940668159,4128077032,74809351,4294437187,4293454147,1356891807,2958286982,3975997450,552466920,3075309696,3991988352,1330795077,2149595730,3766900827,1979661470,3990677520,542060361,1869771365,250183794,4127689216,125141184,1139636456,3909087977,1609095977,3648710703,4193223400,1631717315,1768300644,1847616876,2154130785,1818838529,1869488229]},{sector:4,data:[1868963956,2154065525,1634030092,1919230052,2154983282,1769101070,1881171316,1702129522,1684370531,1766065536,1713400691,2154589301,1986348054,543515497,544501614,1767994977,1818386796,1344110693,2004054881,543453807,1970365810,1684370025,1699881088,1864393825,544828526,1701603686,2035490688,1835365491,1818846752,1141735525,1702259058,1920099616,58749551,109641600,2380821632,1954397144,1954547702,1894407,1954547338,1933138920,4274120717,109609136,3925439389,2331508737,3279192070,141893692,4269047483,3287833351,175377724,1929390568,3921894146,2142961691,2148005492,28314997,1954416264,1929384424,3150142210,662729855,2281746559,3279191558,2155118523,2109440015,4163883124,1954416266,527745032,1954547338,1356891807,548462726,1543468008,109627274,124941440,4269047483,2682352911,2253447302,1954397152,2253924304,2680397536,2253447302,1954528224,3145672576,260076669,2281746560,1484029446,3281969286,2155118011,3905126183,1055457283,496035886,3894248936,3941080466,1074980909,3892463336,1702887501,334004131,2571471360,158646280,3895664872,451411974,775547187,2141545856,3895312616,11546182,2953069704,88377344,4261436392,1149896004,189020677,1157558898,71600644,1913275450,775350498,3073267689,2320413440,1340645445,3894456383,2464759631,776136733,1189610354,2571471360,158646280,3895640296,3135766585,1166721842,3766919071,3907028560,2253914120,1166581472,1525203871]},{sector:5,data:[2317120301,2258615109,3766898912,2955825640,3934840847,1491978728,3902726278,4140034811,1954587461,3991454465,3940608045,2328035699,2258615109,3766898912,1609043888,518378,2665514584,3907703529,3035164054,423880922,2318205160,3221760324,1149896052,1975519272,10479875,1912735370,846774280,3151667432,126513667,427343880,1126051304,2322851514,619219463,2297072511,1245904966,1954596342,749857006,1837811966,3909136799,4030464440,2151435380,1166681973,1975519391,2504362499,376767804,3044148155,1007127040,1124496639,4108961278,3905260287,585755399,1972386816,3007706650,2316334208,1014104838,3892671743,4218617869,3892315113,3905093637,3150130252,126513667,1979661379,1405351938,1542082792,3905155187,1149954989,1958742057,3007706678,2315940992,3905995845,3186157706,692357866,439091381,3321759102,83884009,2328398362,1958742213,1074548999,1508513000,1074577802,2330594536,3221760068,2280134004,2323689946,3221760324,3232825972,61866677,3271620584,2318135528,1144663364,2315875625,1144663108,3271652648,2301123723,1166683228,3766919099,2967504464,3910461445,3909057512,2253914157,2229903072,733735145,2679850378,2253447302,3893014752,317253878,3766900736,3916032158,1912735370,2286006467,2328046916,171752261,1166674548,1958742175,4099860483,1018905994,2953147653,3916949536,1912735370,58245128,2315275753,1014104582,2317317504,171752261,87823732,2749893749,1277698281,3917488169]},{sector:6,data:[2548563973,3917488873,2419916517,1166680437,1946827963,1963277335,3917539341,758065184,3917488169,1944584198,2150445033,3288252649,1018905994,1007514634,3892933893,673245534,2149591382,3910765544,2280129552,3036917977,3921719554,65536000,3641567488,1356891807,3897680006,1482231522,2292113542,1837631301,139298822,4128201960,1954591557,138802699,2953147776,3905415200,134628746,2315679168,1166579013,1963342854,139296772,3859188288,1919958131,3007706685,2953147776,3902793792,1944454794,28378806,74805564,11600822,74806076,380700086,74806332,397477558,1173800586,91570184,3908429905,3921775193,1166672701,1963146246,50718979,4256894133,134711916,1258649024,4118138366,4263669128,4261640653,109709637,3221779433,1170605177,4273340187,2282309002,3221759301,3455977081,50647286,4263789960,188490829,3455976050,1157809546,642091015,134825354,2282059968,11541573,2317174152,20710981,45091189,2149666176,1006638057,2953409794,558727168,452992,706889098,3221752133,11534969,1008747912,3037032961,527272191,34030986,1160387397,3909318940,359989757,2149664246,1173752180,57966623,2281853417,1166548805,524616224,1173809290,712343585,2031961346,30664963,1173801098,443908131,2149402102,1161434228,2316268322,1157768773,952696347,3909317320,3314155953,1931494714,558233100,3909317760,1166541318,541403680,4226351993,509968385,558233215,2316924032,476941000]},{sector:7,data:[3221800330,209043850,3221809290,1300235892,3372122142,1074284022,1166541685,59674,35407242,1157767237,1827846941,3498705078,205312769,1381197683,4265803957,1930181824,3912206341,1532690420,3053826131,459264,1913273584,3054119943,190721,126353590,4266328240,1541831114,126353584,762638344,3137342393,4256853244,4085750892,4093508231,2280884132,28351994,4262282632,1173752133,108298275,3911337470,1340735134,1827847166,2953469321,205883404,1308500144,3892738074,4125746845,457570047,3038147712,507901485,2315875456,3221753157,816841333,2129184138,507901670,2953147520,3866355760,3894177162,1173749882,91521055,1659383472,4261458150,41426245,3253209461,541982438,2332029161,1474830445,3007706624,3897586816,11872311,79415434,2328559982,3388886000,126489720,809271076,775746420,758968180,548406389,2133067656,594878524,2319696382,1014965255,4263015728,3247064001,259256376,2133067658,125120572,2957756926,3272050720,108580350,3909092584,1405353974,173902673,135021962,2316072128,1308508935,173902092,2952790761,3862358016,4139998041,1954554181,6088963,2149795318,1407779700,592281600,642091648,2953266568,155551745,2969406952,3852462149,2149926390,766510452,3152385256,1569287410,2282532874,1166675013,738243876,4261771274,4294437317,2258569732,3766898912,3221800330,3588752244,3766900965,3855542686,3471392432,3909520101,2025850995,2323625241,141814278]},{sector:8,data:[1007648448,2315678977,2322851334,3895111912,2965628362,3845646400,2315340264,2317296647,3150482152,3455995173,133565816,1124365696,1140848617,2332028905,3900646407,133621009,1124365696,3053449449,1301986048,126536449,91521060,4142409904,652788708,1850915584,3905772937,1569444020,2302886861,126537053,2319419971,1962412248,3479013641,3909096680,2328100833,611372806,1971338432,3895177221,3905152189,971515581,1851046633,3541680136,24072890,3025505235,2286098312,2025850935,7727116,78975664,2582233265,1086387963,2414412661,1979661312,4047291137,1019412853,3892868592,774825158,4140007470,58007744,4143919337,980750528,3137940968,3364506900,3405840565,611453756,544411196,1356891807,126541958,1491355880,1017045126,2953147659,190782,921189808,387556,787023754,2011743204,2151628772,3554928835,2315269608,393537543,4265803957,2148005573,3456039028,4269008570,1259108557,3934979978,1241532040,3288330473,3892317672,2850563881,777817081,3274202249,2328714635,1066025735,2965624970,2215020544,2231797876,2248575092,870693748,2952837353,2231798015,856210292,3892355305,15263191,2181466362,2298458228,2960425990,2231797760,3058010740,58031420,2952830697,2248574976,19327092,1954678410,209240072,2957643195,2231798015,911732,108363836,3913942971,4139450371,355199049,1954678410,108576776,3912435899,2151415821,1874527861,256290,3894568891,2258567233,3766898912]}]],[[{sector:1,data:[1491429096,3281969286,1954940554,477413384,3716868234,2226782391,2966618481,1963407904,3455994629,3314218869,1954940552,2967870185,2248574976,2298458228,2306114566,2960426782,3125119231,1929389032,216646401,124928,387267,4175762152,2298458307,3899950598,2213073487,345565204,109757432,3221779357,3706193273,3905157631,4000514098,1929474792,3498108970,2305656763,2108732509,2327201160,141657094,2316399808,4268852230,2215020744,3892671601,4017291537,3288317929,3897168827,1273500729,589752340,4248038427,2153265165,3925816262,367525943,877658403,53783810,3842257886,1911095091,942336206,2045297656,4177228544,13625539,3287874419,1018578314,3892671869,3287824409,4175742440,1954921411,3221751690,1166673524,256425,3903341962,540855864,2134640498,99156851,937879552,2258617336,3766898912,1954940554,1166723210,2968029878,4175964285,2101135360,3471313266,3766900791,1489238174,3902726278,3287868357,1929381864,934799363,2108736504,1974879546,2344876290,2320217181,3766918919,3907028560,109765710,3221779590,3364495220,3632922805,2243559607,2329084273,1272154871,2280884124,2767453690,4203213703,3766900893,2231797918,2248575601,2294349428,4168386054,518339,1525154675,2328098871,141854214,4177688000,2231798467,3813402737,1954940554,11913354,2322695610,1138395902,2280884124,2767453434,4203213703,2248575645,2294873716,4168386054,2215021251,2042628212,3444500483,3909017576]},{sector:2,data:[11587740,1954743944,4160752616,1954743946,24756232,512476153,3825169543,3894656488,3454533649,590080035,1021683688,3909317887,2311311567,3144976678,1569287764,1901116365,3906166153,3102264532,2722494160,2333766784,2322486302,2160129543,512429429,126512726,58064700,4177314536,3445459907,3795027,3443886683,58054712,3909092329,1569456107,1019448019,1259893840,139134858,2299164096,126538589,24509500,20179139,4177518569,3892555971,3236495579,3844532479,1971372278,4235585543,3271568872,24510268,1086387907,686294645,1894656,3762090020,2062091125,1021322240,3909318080,132645140,2301004544,3491621236,1137532299,3445459267,3840075971,2319648650,3906505279,317203337,239790288,3905094003,2562394772,178548,126536449,41533448,4131636217,41189383,126534648,3121841640,112292838,3388869813,4265810808,2668071629,2253447302,2340365536,4622570,3766900810,2042628254,3905157345,3353928836,3766918916,3051390544,3150481920,3405860099,3221751690,1971372278,6547459,2665514584,58001724,1006646761,3909317898,1676148782,2328398591,1849480005,1357448053,3051475199,1285274368,1435224833,2617422291,4203213703,2275734524,2650441715,3285407113,1020478858,3271652688,1272143243,139134858,3892540608,126493048,108396348,3906166153,2344877846,3280655197,359944252,134711883,1259238592,2329107849,3908602399,3806977928,3790128127,4277201123,3364495140,2595946677,2328559949]},{sector:3,data:[3152138247,3405860029,2319658890,618498623,3892606240,1405345628,3908994792,1918567299,4273596675,3286191080,48853424,2675093504,2253447302,3470256352,2665514584,1944454792,3404223427,1569283022,2281746687,1569391173,2319664077,1066025735,126539914,393605180,1929546216,4276667137,2332652034,32046941,4294109663,4261421545,1166672453,3766918914,2346747472,3897818973,2304507415,2253979485,1166581472,3738888194,1929578216,3988505521,4288538887,3892734395,3169386391,38111950,3150914025,2296907757,38111999,3922662888,3921400636,1392553993,1356891807,1055449222,3766900942,3909519518,2953229683,1944173155,1183378059,3455992320,1068562037,1944716936,4283623771,2953443259,4291553791,3555197360,3892424910,2565394126,3487688957,3906138088,3001601948,42592461,1156121459,30205954,3905094003,1055392413,3893129730,2598948799,3520194767,3909087209,57803367,3271697129,3908919016,1618084443,1912709608,38922331,1173771891,1349877761,1926586600,1702937345,48791299,3894505986,2258620528,3766898912,1489893096,1990123654,4217211656,132714494,55410688,4292536704,4140687080,1971323717,3447449610,109605296,2344842214,268368733,4278017419,4250069255,3892426473,2260458421,4284320020,3288240104,3151732456,1569264809,4269992191,4242139331,1929500392,2289217544,4185122310,5236931,4226286963,2328099072,2675172870,2253447302,3447580896,2665514584,443904828,3908872936,91423143,4194184936]},{sector:4,data:[14674115,619185522,3921934846,3538419735,3892671232,3287940631,3908863720,91357571,4194175720,3905157315,3905147840,1894317171,3892867841,4108897587,3905157629,91422870,4177565160,3909520067,2366015603,3456493684,3555199091,8448253,3982329,2377845620,2148005492,149488501,4257015808,4177553896,2330495683,2675215110,2253447302,2349239008,3766919028,2329970256,2332461253,1955380084,3145672576,1569274296,4255836415,4134833339,58032135,1493008872,2292113542,1484033030,2292113542,3279194886,4134833339,57966599,3150751465,268334219,2632516468,1955380172,3279949696,3285382120,2298898875,1709768541,3905157373,2162752443,11921868,3892375528,1836195729,2301123723,3890756700,3771918587,1568010300,3908820456,1994916052,2337436191,1552492636,4224510014,977159306,259341380,3127719611,1821011253,1829682751,3137342697,918187317,1047300717,2288848318,1569260653,4250241531,977028234,91373124,48889776,2281811968,230555973,1012697965,4163394697,3427854531,2348513001,126548829,2147567094,1161432180,4177687300,3925848259,1161429001,4177688068,2667688131,2253447302,1776833504,4261638907,1482359365,43966598,4161243143,3761170627,1964032246,7137286,4177527529,1963605187,4214024197,154977272,602407797,3334732283,2315422533,1820998724,1044678718,1178365064,1972063742,3914223342,1569455930,1124567757,3632938890,2705716931,3271652480,3894239464,12054516,565202867,788850771]},{sector:5,data:[3896184763,2958757353,789375008,3908022505,3186100609,3757304075,255594276,1569394549,1125616333,1112225674,1183509131,954778368,16181469,2680357235,2253447302,463399136,976965645,3909040976,2253970719,3287916256,1490884328,4171161734,911555,3905845225,1496128380,996748091,6285567,3905094003,1144833772,1161561204,3538440053,3335186650,756767720,2821405592,1001095739,4282094363,3894190056,3287927507,3906647272,57868428,4143968489,780760,3906643176,57868412,2684346601,2253447302,18344160,2665514584,2282308866,2397571397,3150182400,1927826683,3271652123,3905566952,3521642589,1011249691,2147972398,3917486413,254083056,1166677365,1963736076,424015372,4261639296,3655928141,4127240447,1971329349,155581955,1308551306,2332850188,797444701,173902147,4261413865,3051949125,3139839,4273718264,4288604236,3905094003,3049507615,976915,1166544048,1827846924,3272236425,4005240757,2281746540,3455992583,3905157493,1166723437,29423113,1166689140,1975519245,156106268,3127702459,196701426,4085750784,4093442695,2280884132,468295162,155581952,3127704763,196701437,4085750784,4093508231,2280884132,11574778,1183378059,155552256,109639888,112554986,3127702203,126514150,3364544720,3771785424,37996544,3934995207,1241532040,3866480126,3905713129,3871014753,1827847027,3934979761,1241532042,170655925,3321759096,83884009,1127188490,4265805704,2330165193,7596550]},{sector:6,data:[155551936,135087498,2317710784,3221753413,4089126516,1827846764,2617248697,4203213703,2275734524,2650441715,1166540976,156106264,3680889027,3906805736,225574937,219783144,1312439630,3924361021,3676170266,417907705,3905157339,484973423,3766918912,2346747472,1552492636,459139122,1476864232,1939792006,449636355,426174659,2168322432,1967013257,4181458237,1480071997,3302156542,752402664,692357184,2328145384,20752965,1166684021,3635144873,1009337482,3909317123,4072348295,3067120189,2329084160,2839906871,4026548268,57819196,2283433705,2011703620,4267370692,1625883507,675579930,58048520,1008359145,3909317375,1166678607,1964719273,440789251,436257784,2187873844,3076882588,3674466431,3906968808,1441328640,3974031556,991481832,454770208,1042710590,3905157375,3287932891,3911132392,3236429830,59875,3909078761,2850610212,1480071960,3763202303,1592264307,4293847519,2346761448,1552492636,412018740,977175309,1563311747,1051269950,3770804479,1760036467,4292667871,219706344,1966751349,1048189758,441313535,1357431800,3746425055,2969551337,3692620016,3336544488,2315422533,1149776964,910460978,2337144390,1313796469,3906990056,3437821976,3743541503,3909059561,1552669604,844925224,3923761128,1702952838,1284210660,911510324,4030252426,3247052917,175296568,2162445696,2285259912,230372436,3764226413,3247096824,410374200,4030252426,1300236914,1820885220,896829495,2305625787]},{sector:7,data:[3287867485,1569440761,147294852,3271652800,4263774090,130470026,931808000,2298480582,3899952662,4218617863,1922041486,1829617347,1955464842,101380132,259290255,1955470987,2315182976,3514076702,2328071915,611618310,2399537904,4177687924,2383842243,770200180,1435193857,214076032,3905980929,2304377126,1517587990,2340443529,1098029070,1922567817,1569440760,2384365952,1829617268,1955464842,101380132,259290255,1955470987,2315182976,3514076702,2328071915,611618310,2399537904,3892737396,24313876,13822147,2340443529,1232246798,1922567817,1273545720,4177688320,1370307,3905045480,3263824052,3933471012,3892314298,3287810222,3117112715,3221749762,1569311513,2384366027,1829617268,1955464842,101380132,259290255,1955470987,2315182976,3514076702,3284373227,1003183499,3200502109,1569418509,4276322447,2307874185,2339672094,230600285,47725,1922569865,2749946508,3377826048,2332037306,3511929181,1539542763,1002555368,1937018910,4280018964,443942,3247177984,2210500161,3823698627,1829617407,2298478779,1569423453,29590473,2315182976,1569442141,3411904911,1922041486,2334573560,3271557142,1476902,99140352,2416348672,1381221234,47953,3111426234,102629392,2275149599,4244277235,4085753075,513669767,1493638918,1405311834,2562412882,47732,2617249977,4203213703,2275734524,2650441715,3277544025,3280163155,3540300047,3657521643,3286421851,42681798,975717514,108146756]},{sector:8,data:[3916238270,4266000394,3967126349,3287830094,3899461054,1284184006,501764400,158554368,2305625534,401092684,3766918935,3907028560,786962368,3766900743,1170654110,1157497483,4177687848,809798339,1932018746,675580419,1982481466,2294544642,1149773892,1308509760,1323005323,2315302478,3271436628,2315255995,3905955908,3540058739,3604013776,4067803144,3620791248,2438302547,3666664075,3542737617,3822183377,22733777,3666629587,2348762600,2438302682,1996545256,3287898883,3901707659,57802961,2311321947,2304493917,2900902492,2925366270,1922702985,2298478779,971515996,12314626,2344812915,1128498269,2340707721,2666049109,2347397632,1435189852,1078758318,2317896841,1958742209,2328493643,1958742213,2966289981,126372608,2315749451,809777857,3314166131,1932608570,2336901666,4623082,11536264,1183378059,2336375552,4623082,11536264,1183378059,3913960192,1821048765,4289718593,2302827659,1284222557,24569920,2345227659,3520761050,3520276962,3521368547,2585168867,432015474,3489969619,4275818735,2281207245,2552138707,432015474,2552138195,2328098930,1961900231,3280651009,2344865848,512328797,2830857358,2148499572,1955468939,1955731081,4134840507,108363783,3925729256,3666542599,2319652746,2383841591,1829617268,1955464842,101380132,259290255,1955470987,2315182976,3514076702,2328071915,611618310,2399537904,2333766772,2339671574,3661220189,300418675,3271652096,2155129019,2615770919]}]],[[{sector:1,data:[2416348927,378127218,2515039382,4235389181,1569394547,3378350510,1922041486,4194127592,4255377603,1955468939,1955862153,1955731083,4134840507,745897991,1955468937,2322402750,611618310,2399537904,2333045876,2155122206,512360163,3956372622,378258318,870872212,780797,378264203,394818708,2335672387,2306119190,3195309590,109735181,4028920974,1955530250,512429940,3816846478,2384366078,2397819252,3053564611,4244170752,2348538088,2306118678,3195309590,109735181,4028920974,1955530250,512429940,3816846478,2384366078,2397819252,1284096963,2438302512,3666664075,3542737617,3822183377,3058951121,30509568,1523778003,2292997513,3448374605,3788505269,3280655824,1183378059,3347726848,1183378059,3405857280,1963281918,1149944809,809777704,1149907059,826554921,1435183219,2363132817,702730714,3521368531,3051606499,676104704,3405892353,1284120459,30081321,2220722635,12305400,2220722432,3186148345,3138089983,1569259520,2384365954,529253236,2307022217,3195309598,109735181,4028920974,1955530250,512429940,3816846478,2384366078,2397819252,2382793411,183510132,1970573062,32110852,3200514048,2984799501,2316530687,254050885,2963228040,33982704,2416348786,45859698,2837350770,4226476148,3044317883,2836826894,2332527220,4622570,108330812,3455992387,378138485,4282152105,2984784244,2383841787,1829617268,1955464842,101380132,259290255,1955470987,2315182976,3514076702,2328071915]},{sector:2,data:[611618310,2399537904,2326426996,2322727430,2282693864,3314196293,109637668,109998594,3049484944,3748497548,45875120,2953283698,33982704,32031602,230605568,4278904941,142951818,3893458368,158596038,1922041486,4190018536,4293257667,3908676584,2258567283,3766898912,1569412467,2582139780,1569283065,33983108,1022370930,1007514624,3892933648,2666068356,2812415,1356891807,110026886,2565370512,3583764721,2665514584,125108284,1912735368,3906331624,108199975,3908655080,1552678769,777816360,2316469736,611451398,33982704,2416348786,3842369650,2665514584,2416348867,3873302642,1912735370,4028950666,2292139274,2339504646,3314189405,4030525476,1166676085,1124567199,126353584,1922041486,512345080,2830857358,2148499572,2305950395,2339679262,2306117142,3899959830,158595428,1922041486,4189964264,2383842243,378229364,2830857386,2148005492,378087797,230585486,2382793325,183510132,1953795846,2384366351,4276322420,1955470985,3280923601,4197771354,2332035305,394812122,2302117955,3195309590,109735181,4028920974,1955530250,512429940,3816846478,2384366078,2397819252,1956166595,1124075462,2332035014,3044322326,2330626830,2286092358,1962884103,3455992325,378138485,2258597036,3766898912,3153726696,662729896,3766900863,1962884254,4282902787,1922041486,2179515384,1892661971,1912735370,1081413692,2328972798,611451654,2297072511,3141664838,11891203,1971324918,3321774854,2332030441]},{sector:3,data:[1958742213,604473874,2297072511,1112211526,4275129854,3119412685,1508404822,5630208,4134667195,74809351,4294437187,3713894723,2322486969,1927335943,2148005390,1189611125,4294306048,2315263209,1962884103,1978612764,3401734,3489663465,1927336160,2615299,3892323560,3404267536,1892662271,3150929289,1569287764,3263873997,1183377803,3330949376,1183377803,2328051968,2297072391,1111687238,3285274110,48857264,2281746432,1038650181,1205798159,4249341979,2152193293,3909044189,1166719640,1975519371,2823129606,2315256809,540846405,2134640498,2196243315,4291750350,1942951144,3499223045,3253322745,2965633279,3451447296,3286927592,2315255739,3279203870,2315255738,3279066134,2298544059,3279065630,1922178699,3892319465,3548844105,1922178699,3541680136,1256784757,2329118464,2258615109,3766898912,3894653011,512478578,2319676590,1960315079,1944603402,3462457550,2340429882,1131582494,3624454026,3897231988,1273548382,2149595854,2451474779,3461408882,2665514584,2345514728,3497170974,3503804643,2329399523,3041833927,1913273344,4262079494,2683730373,2253447302,1019579104,2669441802,2253447302,1678150368,1958742124,4263555079,4843723,2665514584,2281709545,3043779590,751173120,1930050570,2680946424,2253447302,3905260256,2253914149,518561504,3766900736,1566878,1922631306,242597896,1922565770,108204092,3897405515,214159091,3471697968,2311308286,1166726493,1967340704,1832237839,2322413242]},{sector:4,data:[1284124780,846129,3127719611,1821011253,810322481,2295819656,1569314893,3679816153,3934978224,2952808072,3646786304,3924297608,4212582584,2317756018,603980294,2416348912,1962949746,261416983,3906297227,158584100,3893338088,1122569962,261548047,4275658123,3611658759,3380021050,4275789195,3628435975,3010922298,2316248297,1014228486,2953146992,3284142080,1944716938,1077682180,921176946,2289217724,2960385542,2330495488,141814022,2042989248,3275754498,3901390628,2149900496,1944651400,1059374474,109633540,2160292842,1700946252,1632403564,980182370,1885688352,1769234789,1451255662,1702194273,1836008320,1684955501,1128407098,1195787588,1380994377,1465275475,1632403501,980182370,1885688352,1769234789,1283483502,1818583649,1818318464,1535141237,1953064005,1866956893,980382752,1869562656,1852400754,2154132577,1819305298,1952539497,1394621029,1668445551,1634869349,543516526,1159754351,1380275278,1885688448,1633905004,540697972,1735549268,1914729573,1701277281,1885688448,1633905004,540697972,1867398478,1634222880,744843118,1379750432,1952541797,2154133097,1651469383,540699745,542056515,2152079442,1970040643,1998614125,1752458345,1701139072,543973750,1701081679,1377843826,1384137504,1818321765,1092631139,1468026144,1868852841,1210071671,824202784,1428181792,1953059968,980641132,1444956192,1310736928,1952531584,1394621025,543520353,1684107084,1952531584,1869357153,1149264993]},{sector:5,data:[543257697,1702257011,2003782784,1914729061,1952999273,1818838656,1869881445,1634683936,1867284580,1852400737,1867284583,1852400737,2150244455,1701603654,1919903264,1986089760,2154262121,1701603654,544175136,1701602628,1182819700,543517801,1936291941,539915124,1869881433,1885696544,1701011820,1818576000,543519845,1701603654,1869894528,1701273970,1769296256,541884532,541335635,2149785681,1702063689,1149269106,1952803941,542277733,542277699,1919885379,1414415648,1300255301,979727983,1869760032,774778477,1182822228,1634562671,1142962804,1226852128,1377848352,706749472,1634484864,1132489582,1918985580,1886999680,542711909,1663070068,1768320623,679505266,824191299,741947193,825768241,1718571808,1918990196,1916870757,539784052,778268233,538976288,825049942,844707383,1296189741,1397052461,1350574164,1953393010,1867259962,544367991,1751607666,572533876,1970562387,757083248,2149982252,1852404304,1176517236,744844393,1769099296,1919251566,1769099392,540701806,1970562387,1919885424,1414415648,1350586949,1953393010,1766203450,1634624876,1484809581,1769099392,1919251566,1953459744,1634038304,964720996,4278834776,3976264704,84461831,2248867338,4244700688,1108681984,773152533,3709160213,758589460,4231503415,4097294903,2755149879,4164399927,1208885773,51509777,3272744978,370331410,2601488911,302961167,1662277906,1746169108,3088417301,3308825400,2184784696,4286775086]},{sector:6,data:[2164228482,8421504,0,0,0,2633003,791293227,1009527134,1010712124,1170296381,3528413778,1322079571,1229837904,3628158414,1263488844,1329844309,1104432725,1095910742,1313457479,3544334804,1137592659,1096078159,1230193102,1329807822,1096040915,1196379342,3461132337,1355831365,1381061577,1431459028,1279346373,1330562387,1314081236,1163086273,3528413778,1338265153,1137068498,1397706568,65477,2155905152,2692776064,2694881440,2694881440,2684395680,2694840320,2155905184,11331712,2163821952,3897274299,3504929345,4041468106,1642660723,3764226826,3907804553,1552614633,677153078,1945309672,1972093697,4143952108,1954604101,3909201925,1291714563,4131751990,2285126794,1149957189,4114974774,3916238270,2545549493,4192200779,1929383144,1300284161,4289757431,3892350185,2663055426,145745995,1380865347,3908980315,820510770,1268956106,1124637928,1532120661,1314590030,4283328027,3904109544,3840477678,1829682175,3137340393,1569287437,73394412,3287925752,2146919808,2146985344,2147050880,4150624451,1267776127,3908662504,24379297,3967126467,976110730,24260676,1829617347,2301648011,1972054108,676134638,3899461054,24375914,4165828803,2281812096,1972106821,776243948,2331264392,3372101700,2348107144,11595381,3190310024,1239969037,4114975411,4277421354,3880093888,3135832949,3967126281,2163623414,1166673524,256500,2297775498,230565956,4111394925,142951818]},{sector:7,data:[3909318080,31984021,4148557557,3892540544,1569452020,1125616260,4132124554,1954608965,47625,2286098312,1435061047,4032662002,3904038888,1435235540,2220723184,178515,2280884124,2767453434,4203213703,3142736541,45706455,4085750784,4093442695,2280884132,2304482810,1972105309,675580652,2297840938,1308502084,1829617383,1972090485,675610350,975717514,57880644,3204399337,1166699789,3766919075,2162198096,3145769805,1173770783,158695672,2158052854,3183149941,4181715023,2665514584,3903014280,3119111419,39839962,3152760041,1055410732,452856,417858418,3303588843,4007127240,3905094003,540722878,1246608256,2348294376,1552495708,3765799738,2330293641,1166554692,1829617379,1944989928,3857236737,912034778,3894959241,24375526,2681027,3287810675,4276450699,1157510212,910461494,1965704250,911015427,4265231498,230570564,3812964973,3287865202,2345151208,1552497244,3686721576,986075624,1552646176,677153076,3906711528,774817346,1552646190,677153078,3906707432,540722738,3017795712,2302303371,451422300,33983220,3796207730,108576776,3909103080,45809687,1892661874,2617278393,4203213703,2275734524,2650441715,3766919160,3907028560,2253969984,24354528,11004355,3905437928,4176016345,3684755675,1354465205,2281746544,3455992583,3001612661,1851046880,2345491849,512341085,1702915922,1300266936,3924328633,1962884297,1019225173,2152101248,3900749645,2531832891,3008358624]},{sector:8,data:[3897189819,592315861,1360417361,4283971611,3909558248,938016746,3136016384,3540086864,2155876224,3900684133,1387921446,2329084271,1066025735,1726535818,3763857607,3909093608,2783510436,2344876249,1128516957,3285015945,3134021003,3221778004,3334722329,2315422533,1149776964,709114408,230556786,1143653229,944015418,2337144390,1313793397,1021461898,3137959168,1552482304,6350916,2298478779,1972058204,2281812192,230570052,2960844909,149046666,3893131456,24365387,3991747,3892324073,3485201261,1912781424,2617278393,4203213703,2275734524,2650441715,3935043504,3892332168,24376164,3765799875,2317894910,1144662084,1829617206,3287855990,2335726731,3347727436,3901417472,3355493258,1284098186,114878532,2302303371,2263361628,4106414322,3272007656,2328714635,1066025735,3905149066,109769329,3221778946,115868536,2951407616,3908241385,2749953180,3365332998,108396348,3909529576,3223636292,1853194300,3909076456,1972045617,675580652,1928611130,4129387869,1954608709,4148557339,3893326976,3249602470,2957182856,3909585137,1166671936,2681333,1995785530,4182111753,3909317760,1161429036,4128404981,1971385925,4165334540,2315482496,65664069,4131717632,3190310024,1552641293,844925224,3909049832,230557429,4270319725,2331997929,222096453,247137909,256365,2305625531,3150179933,4276636748,1392264707,4283623248,3137370857,79254584,452864,3109305531,1374158850,649685,3897325499]}]],[[{sector:1,data:[367588613,3909317588,2364069224,3609454789,3897306043,1948386245,1412376147,4283705901,1929453288,3795203,1877483184,910461634,1915241530,793020969,3895018632,24314076,927238851,1915307066,3289901067,4275566824,3883215172,4142402992,675610306,166317941,452608,3920552936,11535574,3905039848,3287879402,3897319867,485029005,4095338693,1939670666,57982984,3909083113,2277224124,2954791277,977012,3924297330,4294306261,3923162344,1391001450,1969110016,4974632,1631354660,3743679090,1124338408,3863499735,1407011923,1163124818,3697169379,2965078099,2953838196,3905157214,522453025,3272257731,2965573040,317244187,2986772480,780404,109762698,4169823410,2332292585,2339680286,435729493,1476817619,4187938950,2954791875,1124567668,1957699209,4259890168,1939717037,1954547702,4282575107,11584504,2952790761,50759808,4275628405,978604624,3337114170,3907905779,2344812915,1552495196,74836022,42681798,976635018,91433028,4184673726,1308509891,1324184971,3150182478,2042252166,40167499,1146400339,2082690180,1450658851,4267086161,3897246907,1843983229,3909317586,3787183072,1265482315,1493319144,3908981925,3085501342,236972045,3102278515,884720595,4082362443,1943163880,3551979779,3689421232,809798336,2317894792,1149776196,2907367465,1939670666,58310664,3892369641,3001549822,33983215,1978678386,2672134663,158646280,3892410344,3488143301,66512896,1965640958]},{sector:2,data:[676134604,2481504629,827797441,1330065165,2688912000,3904977128,789430658,2961199687,2705716801,2952950912,3240355917,2315295208,3221789253,1793590132,2571471368,1651818504,801200616,1173782616,141852827,230574261,387437,247355061,239372909,3188474922,2258595085,3766898912,3806905738,3766900928,3621185694,3892335080,1001390163,3904950504,1223165985,2655357440,91602952,3202890672,2638608064,3892868224,1462747394,3917483347,686292995,2156544,2147485929,2138354470,2147485161,2155131662,1930207720,3003577866,57966708,3285363688,2196311472,2504362688,578076680,3364487349,18961595,2668071627,2253447302,3233081568,2152089391,2665514584,3904920808,2749956050,1128738752,2470808192,3906422760,1149960130,323226130,1284194420,4843536,42681798,135414922,4263998656,675580104,1829617238,3892330472,1412415598,83254912,2953147776,190792,3897972400,2213068813,4266024703,3430255437,1284197966,649224,2298891403,233384012,4274388480,676104641,801125864,1051754584,3904889064,984667540,3149912297,2330479381,3497191665,3991470963,2914576593,109576624,334066869,1273084672,3897262522,2656632894,3723034198,363063571,4269061563,3324802319,3032158215,2148005492,130421364,1266268672,3153147112,1458064162,1042929,3137275846,585649017,1261091825,3287368936,3908114664,2112418089,2303557803,126507904,2042628163,1979595824,20900099,125173052,2139710848,1023404009]},{sector:3,data:[2315613695,3277039941,1161461540,2315875754,636070213,190720,384385859,2839886336,1173753717,57966729,3920306152,48824332,2151891712,3917515085,394985388,2268564035,2313420755,1435208029,2354416052,1166540976,2869618830,359996220,2326458344,3221786181,3287876213,4274084328,417959501,1632256,1166673267,2328098985,3538463045,4261638846,3320352325,4291422634,2324258187,2042628103,1962884112,981410839,41265733,132760568,2839886336,3287810677,4292864323,1166722041,1975519374,2344876290,126520413,2354940227,4170075646,3053881539,126507892,74809404,443742531,109768842,4030231734,2319649653,931808023,1945686919,1128481541,3825196149,451463050,3271652096,3771785424,3771785424,1958151816,115917706,1958198016,616761098,1918975103,1021256706,4177687344,1916419267,1933655053,1019476226,3271651911,254019372,199803896,2853365760,65586169,4294830336,4178822120,692357827,58048520,2328036272,4140012357,1954587205,3334691585,2315422533,3221750852,1144661364,33977876,65603652,272892416,230557043,147061101,4261574080,709114560,230557042,2294544749,4266010692,3413478221,1911049806,3905157355,1170604071,1149895307,776243240,1174815880,1972063742,2320387825,1166580293,3225151646,3904875240,2615798737,2655357651,1956267322,80996358,2345790696,1552494172,3223054632,512446803,1284206958,1127188520,2302873480,1500605982,1364443995,1903042187,1259309643,1284059018]},{sector:4,data:[1847494952,3277543793,4127198184,1954587205,3905157378,4289724665,3334686088,2315422533,3221760068,1144660596,974156562,91689028,4184673726,272902851,704646633,1144653892,3188029204,3287903501,1913275450,1829617157,1149813753,1308509700,1321497995,4277397582,2327707880,1140982852,3276113932,1284112565,1834203909,126536449,3904849288,1166606023,2328099012,619219463,1971338432,616925712,692357183,2282195523,4165675076,2281812163,1149773892,2160326953,2155132942,2147485161,2138355750,1958217462,2315809920,54320965,2315257321,54317381,3287876211,1958217462,4262032512,1308548941,453087,4275129854,1284231501,146901554,2952951232,1929329665,1140764674,3314157448,41271304,1077674416,1068499570,2148286244,1124567115,3905157187,3890741318,2638607872,2335995008,1552489052,2621830658,3188094080,65629453,1829682688,973620362,477370948,1444562056,1577280744,973620362,57872452,3187949800,2884136205,55568384,3278704062,42681798,2315275752,3221754436,1144655988,2316006952,1144655940,3892540168,1149895701,1958742056,306461222,1149903218,172243460,4276620402,72154627,3909633278,1144651789,4261967636,1157498956,1189049604,1972063742,3276689075,2282243210,1149895236,1975519272,138708998,973093353,108204612,2282777738,1144653932,3892541200,1143604153,2316006152,3372099652,3909633160,1144651792,2316005898,1143613508,2294349322,1149896772,138684968,3271836808,2158314998]},{sector:5,data:[2280194932,38046415,1963476010,54823450,1963541546,20759297,149488501,1979661316,65923331,2315262697,54823656,1963541562,1019578896,3909317889,4282123115,1944650613,3477661955,3897213883,3091790737,1539462747,1398502193,1851087706,1166736987,1975519385,4242336003,2157792640,3909213416,1702887897,2328067997,3221788997,2965569909,2571470848,2325628296,65573701,3469469952,1356891807,1153884294,11535116,2282570888,1166580037,2640674970,239388287,256165400,172279376,3766900758,36432286,1958295177,3916238270,914948103,247362745,2571471469,57982984,2315348201,37487684,1592329075,2147808769,1702890357,1300266908,149520539,2622324736,2607120512,2571501183,3144448954,62483576,4085750784,4093442695,2280884132,599432698,1829878637,2617250489,4203213703,2275734524,2650441715,3144510906,448359763,4085750784,4093442695,2280884132,1149935098,71565832,1149815038,239372826,2334147720,2306128158,1400158518,106728286,2333629577,2306128158,1400158518,71600734,4262085768,83242572,3037623424,3150481920,3405868371,65603466,205783552,2282636424,1149902404,172239388,2317108360,1143611460,2147808798,104617844,2380858227,1829617152,4261476584,1149897540,3766918923,3907028560,2253914406,1144692448,2317972491,2473429704,3314208254,3247047484,2258573938,3766898912,115918218,3766900737,189020830,1174275700,16050323,3892360424,183042286,1929460736,3598595,3893251326]},{sector:6,data:[2666004492,452608,3909130472,915000649,1173779641,108298395,3916238270,247332867,172264045,739525674,3892541698,230555997,230605677,4265338989,3204122089,4293487885,256250,2331727849,3221788997,4025025397,3449219322,2298498280,4134844726,1954585669,1829617158,3187672041,1149922574,3766918952,2346747472,2306128158,1400158518,106728286,2334678153,2306128158,1400158518,3766900830,2638608030,2281927808,230565956,3441420397,2327532777,20224581,3130672520,2025548923,3892557164,599392275,1829878637,149426869,1835907584,3043840955,2330626842,260702278,3247048584,1183378059,4265755392,3286922701,1016284554,2952950531,1921006595,2290069506,1149932357,1834203917,71501704,2971317507,1124567041,1157808638,256129683,125045874,2966027851,3909584896,3455975428,1284039541,1959394827,4274255874,1166709581,1929591955,3150182846,2733132501,1581861112,1314804566,1178754681,183041630,3107358976,1829617268,2298480617,3195320630,1149922574,272926728,2284340362,1157501508,272902674,3188999304,1300262157,585728165,1170626298,182977163,1308509696,1324840331,2680381006,2253447302,2773319904,2281746560,1149768260,340035600,2665514584,340036291,1149812990,3053565700,846082,4262085770,71600328,28705463,34358410,2258572356,3766898912,4169857024,1477270666,10412166,2331020016,256150227,2316125226,172264136,739525674,3907553794,3890744316,2281746681,2258568516,3766898912]},{sector:7,data:[1489763304,4271825030,189020864,3790203250,189041401,1149815038,2470808069,3498760438,233374385,356813312,1149812990,2471856645,1149895089,2328363029,3137385928,3405868371,2089426826,12814860,2328922832,189041399,739591210,2316530690,33599720,3456013125,3364551029,3892997258,1877478318,172264185,1149815038,3414616068,2030324990,4185057784,3334085552,3441800287,3439506465,2282759190,3899982342,15270225,3092258304,3633184768,1361477720,3273621252,12079134,1490587136,72420992,516104064,47184,4133017742,2147766534,1344193311,2382364856,243292376,528483409,3439506639,974136342,1953825286,28623617,3032684237,605474050,33962512,2282321013,1953825286,6547715,382534068,4108911477,3439375360,1963146262,5236995,1962811019,1962942089,1929386472,14280963,266872712,3909317376,126353615,1958416000,4289980800,1962804991,1962819201,108360956,1962804935,512455868,507213054,225801468,1962942091,1962811017,4178291688,3905157315,1139277957,4286572799,4286310595,3287876213,134223336,2315744457,3909136617,1139277832,3909317376,3287875555,1962673919,1962688129,108360956,1962673863,512455868,797603068,1962673919,1962688129,108360956,1962673863,512455868,260732156,1962810939,645924213,3279910075,4290495882,440672,4183885242,74778426,387576,3795993155,2332521203,1124567770,3351457674,3161783302,4261857140,2155134068,2138356518,3137795779,1304658036]},{sector:8,data:[1196443723,2147647571,2147713025,425988,51281928,1491632245,8436225,567089844,12079134,1490587136,72361600,615522175,3026356154,3894529317,3905093637,3452109086,3223605265,3906078385,109625598,3833623833,3523654080,438733036,3833616501,2297221134,3279231782,1356891807,109764742,3962122,2253916276,347119328,2253964281,109616864,1323922698,1364414464,13690962,1482381658,1963591304,1963923081,3044355514,1019316736,2953147921,17623303,225755144,2280884124,2767453434,4203213703,2332930205,4622570,3899993531,57869885,3892373481,57868327,2315313129,1014303494,3909317956,1379664209,2749956981,1968192515,78571779,58017596,4177827817,1964947651,3110211771,817496067,2943074,109578610,243299595,3279975692,1142956064,1142956097,1142956098,1142956099,1142956100,1347702860,1380798275,1196708432,2315016022,2306162182,2339717134,2339716670,1074695155,1973875573,4161047046,63135327,1131757598,3815953209,3277742073,1963591306,41222204,512476152,3825169672,4160750312,2281746627,3145009670,512320195,512324868,512324870,516125960,47184,2337855630,1963080903,3910578181,3932171,246416757,2952790761,1342605322,1343127556,11567108,129027871,1356891807,3035160710,3766900991,2965633438,2328099074,1014303238,3909317888,109772785,1144812811,128976244,3137328617,330563676,2817008077,1958742016,4285327368,3219718576,4286179583,222086136,401087093]}]],[[{sector:1,data:[3271652096,1963722486,4127945856,2155152134,3921871989,179306498,1963335307,149480447,3271652096,4134799932,69110723,3907256181,57868413,2164227561,2138377254,1964451456,405176447,2380824437,10479616,1964508918,3892802688,280035099,11584505,8128136,2315279546,1014303238,3892737408,65601720,13690880,1005126515,369527039,8436597,1964252809,2305060027,3899983902,3287810444,12079134,1490587136,72353526,2148430976,2130989094,72353418,132733727,2328043519,1014308358,2953278752,3925849088,1076625412,109633674,646447196,104494354,74872089,3287881392,582730744,1007127157,2953082144,3121055786,146079837,3137346793,126514474,192225340,1964050166,2332324992,3128233758,62193765,2315256041,1965702151,77457667,91569980,1964510848,2297072512,1111687238,3816148478,263504888,1676157389,2042628351,4177637380,1109819587,716930933,69110117,3271667829,567087028,150947304,3271652800,3019922618,3894529302,3221815094,95421561,3401303033,102664548,3271602293,108363836,3909108712,109707327,3221779734,2129139316,2668720896,2253447302,2812128,1493033704,3281969286,1929388008,3572024065,386332413,292913269,3152576688,3909317884,384368134,3271652350,1555743683,3440423936,4275103777,91865096,3957850544,2258617341,3766898912,1964445312,3766900864,337546142,1124567157,1964377738,2151465214,317197173,3271652096,2952822971,369526784,337545589,3133405301]},{sector:2,data:[364118108,2280137165,1958742270,2281746445,3899987462,95485254,11584505,3036709051,1124567168,4185247230,512476152,109737236,3372119318,116797557,1954575682,4188419,3019922618,3894529300,3221814854,20714356,719913845,1946369024,2025731,1967263360,3145773184,109576320,126514454,337545539,1975519349,518403,179356664,2952790761,3622326275,3287898364,1963591306,41254972,1488700409,102664550,1651293045,1963466377,1929392872,4245481731,1929400296,4244826371,1929414632,4244433155,1964770954,1710818952,11847934,23476411,486968003,3322382453,1382451462,1965145027,540805002,109709173,48850425,976235520,1987386118,4179013638,2281702889,4168424454,582681027,1007127157,3271652640,41173564,2336474105,1713421251,3120562873,401106488,2281992956,3279232262,822096177,808649013,53491202,839135793,942933300,120994054,11928066,1964775050,109759230,95515933,118284498,348979380,2160391928,3287875956,1967326856,11927988,1710823050,349031166,1967326858,3892315880,3899916300,3304519875,3271652764,74630137,3271675008,4193857768,548425923,1965098632,1720270464,3909317970,109772526,2151445770,3287876213,2305234107,3145008670,512320108,468219144,3909317376,954792954,3909317376,109771762,109606172,113665780,3276826249,2322932155,1965046791,4094069255,190822,104476716,108426522,3925415600,109576197,3287840028,3053564929,471239168,3452632693]},{sector:3,data:[3304519703,2953016321,4173592854,1974060278,3287925505,1967392392,4102684852,1727272586,399362814,1967392394,3909083368,3899981648,220105155,4167166069,1964115594,108396348,567089588,109625598,31981660,767214336,10479733,3019922618,3894529297,4282186802,28312693,1323877369,3271652600,1912621032,317244161,6076928,567087796,1023152616,2967696895,1019476227,3271652613,1356891807,3897680006,1482291910,1017045126,2315613443,977349,91554364,99156912,3909136384,1499004928,800769017,8502133,552077493,2335092736,4622570,9026370,283640757,2332930048,4622570,2339712442,4285861150,1007127267,2332783648,4622570,3455992387,79949685,2297072448,2957115462,2297072442,3049455686,1964947983,3892349672,24313878,3270851,3905094003,24313907,1947024579,3284400386,1964948051,1072170165,1526887168,1966750915,3913505285,78970889,3899989690,4166713427,1965210307,535365813,1949187072,286162952,300515445,716849920,3892557173,24313866,287736003,3287842677,126505299,3892326376,74776649,3287833433,1929401064,3277543683,1183378059,1532576256,1976434243,4161243867,2334175427,4622570,1976434242,1631372278,2050754162,539755127,2336207043,4622570,1976434242,403603700,3150151797,79259853,2617719296,4192247107,539889091,1759689530,973095097,2638453767,24443360,1650574329,1717920867,1785292903,1852664939,1920036975,1987409011,2054781047,1145258561]},{sector:4,data:[1212630597,1280002633,1347374669,1414746705,1482118741,825252441,892613426,959985462,250096191,1294368768,45121397,281870516,3439414249,875570193,2148431152,2138395686,1967457991,199864320,1410236416,113737845,3087037765,1353914807,1226738115,2315302517,3540431319,2315302114,3540300231,3520070112,3489708000,2311258595,3279243038,1967726219,401130435,1292795904,1465286773,1967601291,915013259,552105291,3277741824,1967982326,3271652736,1967990400,1465274495,1967863435,82378379,1482579712,109971139,2350806341,1409742529,242516085,3959675578,4218749352,27847930,3650026356,2149579693,91555836,48853172,2332537856,1409742536,242516085,3959675578,4218749352,27847930,3247176564,3272080299,4283557968,4287686744,1158057478,3892819061,3272015894,4282247248,4286376024,1158057478,3899700341,3272015874,1195281239,4140338037,2155172870,3669626484,27847683,3975871349,4218683816,4222337419,1967589119,1967589119,1967720191,129287007,3019899625,4281919600,24444988,109971139,3901388101,3897624458,1129971638,4101361150,468239111,3020075263,3071331584,2988160512,3439506432,47888,3288253160,1023345128,3271652608,129296522,300490928,4277200896,24444988,3035138755,3911233648,512425984,2337502537,1400194846,1158057478,3897643125,1482293086,4118138366,512318215,2304472391,3279243550,2348709608,2960476446,3923257424,4253089706,3271652608,1962998144,4243112705,106386944]},{sector:5,data:[1967457934,158793272,3892360168,65601650,3074048,3277741831,1962999168,4185965313,3271652608,1442894568,109971031,3661133125,2313685366,4777984,3892315113,1594294276,116835166,1954575700,64666126,1963501804,3123032315,4243456984,1968049801,3892346344,117309553,117339475,244020561,3456005454,116844149,1954575700,3123294214,3287155672,1968441078,3121509504,2834039770,2969269512,64535077,243924462,1072198990,3401728,1968377598,1968246526,1968049803,3866480126,1968441078,2953213056,64535081,3405890542,3422474238,1968184969,3472804353,378129150,516126034,1967464078,3273631219,1968184971,2348644072,2339718966,3900002846,1049361771,244020551,11892046,1309575619,1344178549,1377208693,113754997,83916117,3338667753,7689478,3065051666,109790182,1122399573,1122419850,3767165412,1642464012,3104289787,4276228096,4151692286,1642513546,35556291,512314112,3905123671,12189708,3070407680,3440430336,1203356448,2347356523,16826353,3282367484]},{sector:6,data:[543515987,1886680168,1999580986,1647212407,1801677170,778987884,795701091,1953720680,796488303,2019910518,1953850213,1701601889,1836345390,1919903264,1919905056,1852383333,1836216166,1869182049,1650532462,544503151,1936287860,1886413088,1633905004,1852795252,46]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]],[[{sector:1,data:[]},{sector:2,data:[]},{sector:3,data:[]},{sector:4,data:[]},{sector:5,data:[]},{sector:6,data:[]},{sector:7,data:[]},{sector:8,data:[]}]]]
    • embed
      • embed.ts
        declare var require;
        
        module shell {
        
          function start(complete: () => string) {
        
            document.body.style.color = 'gray';
            //document.body.style.overflow = 'hidden';
            //document.body.parentElement.style.overflow = 'hidden';
        
            var drive: persistence.Drive = require('nodrive');
        
            var pcjsScope = redirectWindow(drive, window, '/cache/', '/demos/');
        
            var comp;
        
            (<any>pcjsScope).pcjs(loadedComp => {
              comp = loadedComp;
              (<any>nowin).nodrive = drive;
              (<any>nowin).computer = comp;
              console.log('nodrive: ', drive, ' computer: ', comp);
              var width = nowin.innerWidth || (nowin.document.body.parentElement ? nowin.document.body.parentElement.clientWidth : 0) || nowin.document.body.clientWidth;
              var height = nowin.innerHeight || (nowin.document.body.parentElement ? nowin.document.body.parentElement.clientHeight : 0) || nowin.document.body.clientHeight;
              updateSize(width, height);
              installAutosave();
              var textar = document.getElementsByTagName('textarea')[0];
              if (textar) {
                setTimeout(() => textar.focus(), 400);
              }
              complete();
            });
            var embedPC = (<any>pcjsScope).embedPC;
        
            var root = document.createElement('div');
            root.id = 'root';
            document.body.appendChild(root);
        
        
            var rootInner = document.createElement('div');
            rootInner.id = require('uniqueKey');;
            root.appendChild(rootInner);
        
            var emb = embedPC(
              root.id,
              '/demos/turbo.xml',
            //'/demos/sample1.xml',
            //'/demos/sample3a.xml',
            //'/demos/sample2.xml',
            //'/devices/pc/machine/5170/ega/1152kb/rev3/machine.xml');
              '/demos/components.xsl');
        
        
            if (pcjsScope.onload)
              (<any>pcjsScope).onload();
        
            var nowin: Window = require('nowindow');
            nowin.onunload = (e) => {
              if (pcjsScope.onunload)
                pcjsScope.onunload(e);
            };
            nowin.onbeforeunload = (e) => {
              if (pcjsScope.onbeforeunload)
                pcjsScope.onbeforeunload(e);
            };
        
            var resizeMod = require('resize');
            resizeMod.on(winMetrics => {
              winMetrics.windowWidth;
              winMetrics.windowHeight;
              updateSize(winMetrics.windowWidth, winMetrics.windowHeight);
            });
        
            function updateSize(width: number, height: number) {
              root = <any>document.getElementById('root');
              root.style.overflow = 'hidden';
              var display = <HTMLDivElement>root.children[0];
              if (display) {
                display.style.maxWidth = Math.min((height - 40) * 640 / 480 /*EGA 350*/, width - 10) + 'px';
                display.style.overflow = 'hidden';
                var links = display.getElementsByTagName('a');
                for (var i = 0; i < links.length; i++) {
                  var a = links[i];
                  if (a.innerHTML === 'XML') {
                    a.innerHTML = 'Save';
                    a.href = '';
                    a.onclick = (e: Event) => {
                      if (e.cancelable) e.cancelBubble = true;
                      if (e.preventDefault) e.preventDefault();
                      save();
                    };
                  }
                }
              }
            }
        
            function installAutosave() {
              return;
              setTimeout(() => {
                var root = document.getElementById('root');
                if (!root) return;
                var canv = root.getElementsByTagName('canvas')[0];
                if (!canv) return;
                var textar = root.getElementsByTagName('textarea')[0];
                if (!textar) return;
        
                canv.addEventListener('mousemove', () => eventDelaySave(), true);
                canv.addEventListener('touchmove', () => eventDelaySave(), true);
                textar.addEventListener('keydown', () => eventDelaySave(), true);
        
                try {
                  var snapshot = canv.toDataURL('image/png');
                }
                catch (error) {
                  return;
                }
        
                var _delaySave = 0;
                eventDelaySave(30 * 1000);
                console.log('Installed autosave');
        
        
                function eventDelaySave(time?: number) {
                  time = time || 30 * 983;
                  clearTimeout(_delaySave);
                  _delaySave = setTimeout(checkStableAndSave, time);
                }
        
                function checkStableAndSave() {
                  var newSnapshot = canv.toDataURL('image/png');
                  if (newSnapshot !== snapshot) { // TODO: pass on small changes too
                    snapshot = newSnapshot;
                    eventDelaySave();
                    console.log('Screen is not stable, continue watching...');
                    return;
                  }
        
                  console.log('Saving snapshot...');
                  drive.write('/splash.img', snapshot);
                  comp.powerOff(true, true);
                  setTimeout(() => {
                    comp.powerOn(true);
                    eventDelaySave(5 * 60 * 1000);
                    console.log('Snapshot saved, continue watching...');
                  }, 50);
                }
        
              }, 3 * 60 * 1000); // install after half a minute
            }
        
            function save() {
              nowin.console.log('poweroff...');
              comp.powerOff(true, true);
              var root = document.getElementById('root');
              if (root) {
                var canv = root.getElementsByTagName('canvas')[0];
                if (canv) {
                  try {
                    var dt = canv.toDataURL('image/png');
                    drive.write('/splash.img', dt);
                  }
                  catch (errorCanv) {
                    console.error('Snapshot of the screen failed');
                  }
                }
                root.style.opacity = '0.2';
              }
        
              setTimeout(() => {
                nowin.console.log('save HTML...');
                saveHTML();
                comp.powerOn(true);
                if (root) {
                  root.style.opacity = '1';
                }
              }, 5000);
        
              function saveHTML() {
        
                var filename = saveFileName();
                exportBlob(filename, ['<!doctype html>\n', nowin.document.documentElement.outerHTML]);
        
                function exportBlob(filename: string, textChunks: string[]) {
                  try {
                    var blob: Blob = new (<any>Blob)(textChunks, { type: 'application/octet-stream' });
                  }
                  catch (blobError) {
                    exportDocumentWrite(filename, textChunks.join(''));
                    return;
                  }
        
                  exportBlobHTML5(filename, blob);
                }
        
                function exportBlobHTML5(filename, blob: Blob) {
                  var url = URL.createObjectURL(blob);
                  var a = document.createElement('a');
                  a.href = url;
                  a.setAttribute('download', filename);
                  try {
                    // safer save method, supposed to work with FireFox
                    var evt = document.createEvent("MouseEvents");
                    (<any>evt).initMouseEvent("click", true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
                    a.dispatchEvent(evt);
                  }
                  catch (e) {
                    a.click();
                  }
                }
        
                function exportDocumentWrite(filename: string, content: string) {
                  var win = document.createElement('iframe');
                  win.style.width = '100px';
                  win.style.height = '100px';
                  win.style.display = 'none';
                  document.body.appendChild(win);
        
                  setTimeout(() => {
                    var doc = win.contentDocument || (<any>win).document;
                    doc.open();
                    doc.write(content);
                    doc.close();
        
                    doc.execCommand('SaveAs', null, filename);
                  }, 200);
        
                }
        
                function saveFileName() {
        
                  if (nowin.location.protocol.toLowerCase() === 'blob:')
                    return 'pcjs-app.html';
        
                  var urlParts = nowin.location.pathname.split('/');
                  var currentFileName = decodeURI(urlParts[urlParts.length - 1]);
                  var lastDot = currentFileName.indexOf('.');
                  if (lastDot > 0) {
                    currentFileName = currentFileName.slice(0, lastDot) + '.html';
                  }
                  else {
                    currentFileName += '.html';
                  }
                  return currentFileName;
                }
              }
            }
          }
        
          (<any>shell).start = start;
        
        }
      • redirectLocalStorage.ts
        module shell {
        
          export function redirectLocalStorage(drive: persistence.Drive, cachePath: string) {
        
            var keys: string[] = null;
        
            function updateKeys() {
              if (keys) return;
              keys = [];
              var files = drive.files();
              for (var i = 0; i < files.length; i++) {
                if (files[i].length > cachePath.length && files[i].slice(0, cachePath.length) === cachePath) {
                  keys.push(files[i].slice(cachePath.length));
                }
              }
            }
        
            class LocalStorageOverride {
        
              constructor() {
                Object.defineProperty(this, 'length', {
                  get: () => {
                    updateKeys();
                    return keys.length;
                  }
                });
              }
        
              key(index: number) {
                updateKeys();
                return keys[index];
              }
        
              getItem(key: string) {
                console.log('localStorage.getItem(', key, ')');
                return drive.read(cachePath + key);
              }
        
              setItem(key: string, value: string) {
                console.log('localStorage.setItem(', key, ', ', value, ')');
                drive.write(cachePath + key, value || '');
                keys = null;
              }
        
              removeItem(key: string) {
                console.log('localStorage.removeItem(', key, ')');
                drive.write(cachePath + key, null);
                keys = null;
              }
            }
        
            return new LocalStorageOverride();
          }
        
        }
      • redirectWindow.ts
        module shell {
        
          export function redirectWindow(drive: persistence.Drive, window: Window, cachePath: string, cwd: string) {
        
            function WindowOverride() {
              var _this = this;
        
              var xhrOverride = redirectXMLHttpRequest(drive, cwd);
              var lsOverride = redirectLocalStorage(drive, cachePath);
              Object.defineProperty(this, 'XMLHttpRequest', { get: function() { return xhrOverride; } });
              Object.defineProperty(this, 'localStorage', { get: function() { return lsOverride; } });
              Object.defineProperty(this, 'window', { get: function() { return _this; } });
              var _onload;
              Object.defineProperty(this, 'onload', { get: function() { return _onload; }, set: function(v) { _onload = v; } });
              Object.defineProperty(this, 'addEventListener', {
                get: function() {
                  return function(evtName: string, handler: any, other: any) {
                    if (evtName === 'unload') {
                      _this.onunload = handler;
                    }
                    else if (evtName === 'onbeforeunload') {
                      _this.onbeforeunload = handler;
                    }
                    else {
                      window.addEventListener(evtName, handler, other);
                    }
                  }
                }
              });
              Object.defineProperty(this, 'alert', { get: function() { function redirectAlert(msg) { window.console.log('alert', msg); }; return redirectAlert; } });
        
              function defineProxy(k) {
                Object.defineProperty(_this, k, {
                  get: function() {
                    var res: any = window[k];
                    if (typeof res === 'function' && !/pcjs/.test(k)) {
                      return (<Function>res).bind(window);
                    }
                    return res;
                  },
                  set: function(v) {
                    window[k] = v;
                  }
                });
              }
              for (var k in window) {
                if (!(k in this)) {
                  defineProxy(k);
                }
              }
              if (Object.getOwnPropertyNames) {
                var props = Object.getOwnPropertyNames(window)
                for (var i = 0; i < props.length; i++) {
                  if (!(props[i] in this)) {
                    defineProxy(props[i]);
                  }
                }
              }
        
        
            }
        
            var win: Window = new WindowOverride();
        
            return win;
          }
        
        }
      • redirectXMLHttpRequest.ts
        module shell {
        
          export function redirectXMLHttpRequest(drive: persistence.Drive, cwd?: string) {
        
            class XMLHttpRequestOverride {
        
              private _url: string;
        
              status = 0;
              readyState = 0;
              responseText: string = null;
              onreadystatechange: () => void = null;
        
              open(method: string, url: string) { this._url = url; }
        
              send() {
                var path = '/pcjs-embed' + (this._url.charAt(0) === '/' ? '' : cwd) + this._url;
                this.responseText = drive.read(path);
                if (this.responseText) {
                  console.log('responding ' + path + ' [' + this.responseText.length + ']');
                }
                else {
                  console.log('failed to load ' + path);
                }
                this.status = 200;
                this.readyState = 4;
                setTimeout(() => this.onreadystatechange());
              }
            }
        
            return XMLHttpRequestOverride;
        
          }
        }
    • modules
      • pcjs
        • lib
          • README.md
            PCjs Sources
            ===
            
            Structure
            ---
            These JavaScript files divide PCjs functionality into major PC components.  Most of the files are device
            components, implementing a specific device (or set of devices, in the case of [chipset.js](chipset.js)).
            
            Be aware that *component* is an overloaded term, since **Component** is also the name of the
            shared base class in [component.js](../../shared/lib/component.js) used by most machine components.
            A few low-level components (eg, the **Memory** and **State** components, the Card class of the **Video**
            component, the Color and Rectangle classes of the **Panel** component, etc) do not extend **Component**,
            so don't assume that every PCjs object has access to [component.js](../../shared/lib/component.js) methods.
            
            Examples of non-device components include UI components like [panel.js](panel.js) and [debugger.js](debugger.js),
            and sub-components like [x86ops.js](x86ops.js) and [x86func.js](x86func.js) that separate the CPU
            functionality of [x86.js](x86.js) into more manageable pieces.
            
            These components should always be loaded or compiled in the order listed by the *pcJSFiles* property in
            [package.json](../../../package.json), which includes all the necessary *shared* components as well.
            At the time of this writing, the recommended order is:
            
            * [shared/defines.js](../../shared/lib/defines.js)
            * [shared/diskapi.js](../../shared/lib/diskapi.js)
            * [shared/dumpapi.js](../../shared/lib/dumpapi.js)
            * [shared/reportapi.js](../../shared/lib/reportapi.js)
            * [shared/userapi.js](../../shared/lib/userapi.js)
            * [shared/strlib.js](../../shared/lib/strlib.js)
            * [shared/usrlib.js](../../shared/lib/usrlib.js)
            * [shared/weblib.js](../../shared/lib/weblib.js)
            * [shared/component.js](../../shared/lib/component.js)
            * [pcjs/defines.js](defines.js)
            * [pcjs/interrupts.js](interrupts.js)
            * [pcjs/messages.js](messages.js)
            * [pcjs/panel.js](panel.js)
            * [pcjs/bus.js](bus.js)
            * [pcjs/memory.js](memory.js)
            * [pcjs/cpu.js](cpu.js)
            * [pcjs/x86.js](x86.js)
            * [pcjs/x86seg.js](x86seg.js)
            * [pcjs/x86cpu.js](x86cpu.js)
            * [pcjs/x86ops.js](x86ops.js)
            * [pcjs/x86op0f.js](x86op0f.js)
            * [pcjs/x86func.js](x86func.js)
            * [pcjs/x86modb.js](x86modb.js)
            * [pcjs/x86modw.js](x86modw.js)
            * [pcjs/x86modb16.js](x86modb16.js)
            * [pcjs/x86modw16.js](x86modw16.js)
            * [pcjs/x86modb32.js](x86modb32.js)
            * [pcjs/x86modw32.js](x86modw32.js)
            * [pcjs/x86modsib.js](x86modsib.js)
            * [pcjs/chipset.js](chipset.js)
            * [pcjs/rom.js](rom.js)
            * [pcjs/ram.js](ram.js)
            * [pcjs/keyboard.js](keyboard.js)
            * [pcjs/video.js](video.js)
            * [pcjs/serialport.js](serialport.js)
            * [pcjs/mouse.js](mouse.js)
            * [pcjs/disk.js](disk.js)
            * [pcjs/fdc.js](fdc.js)
            * [pcjs/hdc.js](hdc.js)
            * [pcjs/debugger.js](debugger.js)
            * [pcjs/state.js](state.js)
            * [pcjs/computer.js](computer.js)
            * [shared/embed.js](../../shared/lib/embed.js)
            
            Some of the components *can* be reordered or even omitted (eg, [debugger.js](debugger.js) or
            [embed.js](../../shared/lib/embed.js)), but you should observe the following:
            
            * [component.js](../../shared/lib/component.js) must be listed before any component that extends **Component**
            * [panel.js](panel.js) should be loaded early to initialize the Control Panel (if any) as soon as possible
            * [computer.js](computer.js) should be the last device component, as it supervises and notifies all the other device components
            
            To minimize ordering requirements, the init() handlers and constructors of all components should avoid
            referencing other components.  Device components should define an initBus() notification handler, which the
            *Computer* component will call after it has created/initialized the *Bus* component.
            
            Features
            ---
            
            [List of major existing features goes here]
            
            ### BackTrack Support
            
            The next major feature to be implemented is referred to as BackTrack Support, or simply BackTracks.  When BackTracks
            are enabled, every memory location (at the byte level) and every general-purpose byte register may have an optional link
            back to its source.  These links are called BackTrack indexes.
            
            All the code that a virtual machine initially executes enters the machine either via ROM or disk sectors, and as that
            code executes, the machine is loading data into registers from memory locations and/or I/O ports and writing the results
            to other memory locations and/or I/O ports.  BackTracks keep track of that data flow, allowing us to examine the history
            of any piece of data at any time, down to the byte level; while this feature could be extended to the bit level, it
            would make the feature dramatically more expensive, both in terms of size and speed.
            
            A BackTrack index is encoded as a 32-bit value with three parts:
            
            - Bits 0-8: 9-bit BackTrack object offset (0-511)
            - Bits 9-15: 7-bit type and access info
            - Bits 16-30: 15-bit BackTrack object number (1-32767, 0 reserved for dynamic data)
            
            This represents a total of 31 bits, with bit 31 reserved.
            
            For example, look at one of the last things a ROM does during boot: loading a disk sector into RAM.  It will be up to the
            disk controller (or DMA controller, if used) to create a BackTrack object representing the sector that was read,
            adding that object to the global BackTrack object array, and then associating the corresponding BackTrack index with
            the first byte of RAM where the sector was loaded.  Subsequent bytes of RAM containing the rest of the sector will refer
            to the same BackTrack object, using BackTrack indexes containing offsets 1-511.
            
          • bus.js
            /**
             * @fileoverview Implements the PCjs Bus component.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Sep-04
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var str         = require("../../shared/lib/strlib");
                var usr         = require("../../shared/lib/usrlib");
                var Component   = require("../../shared/lib/component");
                var Memory      = require("./memory");
                var Messages    = require("./messages");
                var State       = require("./state");
                var X86         = require("./x86");
            }
            
            /**
             * Bus(cpu, dbg)
             *
             * The Bus component manages physical memory and I/O address spaces.
             *
             * The Bus component has no UI elements, so it does not require an init() handler,
             * but it still inherits from the Component class and must be allocated like any
             * other device component.  It's currently allocated by the Computer's init() handler,
             * which then calls the initBus() method of all the other components.
             *
             * When initMemory() initializes the entire address space, it also passes aMemBlocks
             * to the CPU object, so that the CPU can perform its own address-to-block calculations
             * (essential, for example, when the CPU enables paging).
             *
             * For memory beyond the simple needs of the ROM and RAM components (ie, memory-mapped
             * devices), the address space must still be allocated through the Bus component via
             * addMemory().  If the component needs something more than simple read/write storage,
             * it must provide a controller with getMemoryBuffer() and getMemoryAccess() methods.
             *
             * By contrast, all port (I/O) operations are defined by external handlers; they register
             * with us, and we manage those registrations, as well as support for I/O breakpoints,
             * but unlike memory accesses, we're not involved with port data accesses.
             *
             * @constructor
             * @extends Component
             * @param {Object} parmsBus
             * @param {X86CPU} cpu
             * @param {Debugger} dbg
             */
            function Bus(parmsBus, cpu, dbg)
            {
                Component.call(this, "Bus", parmsBus, Bus);
            
                this.cpu = cpu;
                this.dbg = dbg;
            
                this.nBusWidth = parmsBus['buswidth'] || 20;
            
                /*
                 * Compute all Bus memory block parameters, based on the width of the bus.
                 *
                 * Regarding blockTotal, we want to avoid using block overflow expressions like:
                 *
                 *      iBlock < this.nBlockTotal? iBlock : 0
                 *
                 * As long as we know that blockTotal is a power of two (eg, 256 or 0x100, in the case of
                 * nBusWidth == 20 and blockSize == 4096), we can define blockMask as (blockTotal - 1) and
                 * rewrite the previous expression as:
                 *
                 *      iBlock & this.nBlockMask
                 *
                 * Similarly, we mask addresses with busMask to enforce "A20 wrap" on 20-bit busses.
                 * For larger busses, A20 wrap can be simulated by either clearing bit 20 of busMask or by
                 * changing all the block entries for the 2nd megabyte to match those in the 1st megabyte.
                 *
                 *      Bus Property        Old hard-coded values (when nBusWidth was always 20)
                 *      ------------        ----------------------------------------------------
                 *      this.nBusLimit      0xfffff
                 *      this.nBusMask       [same as busLimit]
                 *      this.nBlockSize     4096
                 *      this.nBlockLen      (this.nBlockSize >> 2)
                 *      this.nBlockShift    12
                 *      this.nBlockLimit    0xfff
                 *      this.nBlockTotal    ((this.nBusLimit + this.nBlockSize) / this.nBlockSize) | 0
                 *      this.nBlockMask     (this.nBlockTotal - 1) [ie, 0xff]
                 *
                 * Note that we choose a nBlockShift value (and thus a physical memory block size) based on "buswidth":
                 *
                 *      Bus Width                       Block Shift     Block Size
                 *      ---------                       -----------     ----------
                 *      20 bits (1Mb address space):    12              4Kb (256 maximum blocks)
                 *      24 bits (16Mb address space):   14              16Kb (1K maximum blocks)
                 *      32 bits (4Gb address space);    15              32Kb (128K maximum blocks)
                 *
                 * The coarser block granularities (ie, 16Kb and 32Kb) may cause problems for certain RAM and/or ROM
                 * allocations that are contiguous but are allocated out of order, or that have different controller
                 * requirements.  Your choices, for the moment, are either to ensure the allocations are performed in
                 * order, or to choose smaller nBlockShift values (at the expense of a generating a larger block array).
                 *
                 * Note that if PAGEBLOCKS is set, then for a bus width of 32 bits, the block size is fixed at 4Kb.
                 */
                this.addrTotal = Math.pow(2, this.nBusWidth);
                this.nBusLimit = this.nBusMask = (this.addrTotal - 1) | 0;
                this.nBlockShift = (PAGEBLOCKS && this.nBusWidth == 32 || this.nBusWidth <= 20)? 12 : (this.nBusWidth <= 24? 14 : 15);
                this.nBlockSize = 1 << this.nBlockShift;
                this.nBlockLen = this.nBlockSize >> 2;
                this.nBlockLimit = this.nBlockSize - 1;
                this.nBlockTotal = (this.addrTotal / this.nBlockSize) | 0;
                this.nBlockMask = this.nBlockTotal - 1;
                this.assert(this.nBlockMask <= Bus.BlockInfo.num.mask);
            
                /*
                 * Lists of I/O notification functions: aPortInputNotify and aPortOutputNotify are arrays, indexed by
                 * port, of sub-arrays which contain:
                 *
                 *      [0]: registered component
                 *      [1]: registered function to call for every I/O access
                 *
                 * The registered function is called with the port address, and if the access was triggered by the CPU,
                 * the linear instruction pointer (LIP) at the point of access.
                 *
                 * WARNING: Unlike the (old) read and write memory notification functions, these support only one
                 * pair of input/output functions per port.  A more sophisticated architecture could support a list
                 * of chained functions across multiple components, but I doubt that will be necessary here.
                 *
                 * UPDATE: The Debugger now piggy-backs on these arrays to indicate ports for which it wants notification
                 * of I/O.  In those cases, the registered component/function elements may or may not be set, but the following
                 * additional element will be set:
                 *
                 *      [2]: true to break on I/O, false to ignore I/O
                 *
                 * The false case is important if fPortInputBreakAll and/or fPortOutputBreakAll is set, because it allows the
                 * Debugger to selectively ignore specific ports.
                 */
                this.aPortInputNotify = [];
                this.aPortOutputNotify = [];
                this.fPortInputBreakAll = this.fPortOutputBreakAll = false;
            
                /*
                 * Allocate empty Memory blocks to span the entire physical address space.
                 */
                this.initMemory();
            
                if (BACKTRACK) {
                    this.abtObjects = [];
                    this.cbtDeletions = 0;
                    this.ibtLastAlloc = -1;
                    this.ibtLastDelete = 0;
                }
            
                this.setReady();
            }
            
            Component.subclass(Bus);
            
            if (BACKTRACK) {
                /**
                 * BackTrack object definition
                 *
                 *  obj:        reference to the source object (eg, ROM object, Sector object)
                 *  off:        the offset within the source object that this object refers to
                 *  slot:       the slot (+1) in abtObjects which this object currently occupies
                 *  refs:       the number of memory references, as recorded by writeBackTrack()
                 *
                 * @typedef {{
                 *  obj:        Object,
                 *  off:        number,
                 *  slot:       number,
                 *  refs:       number
                 * }}
                 */
                var BackTrack;
            
                /*
                 * BackTrack indexes are 31-bit values, where bits 0-8 store an object offset (0-511) and bits 16-30 store
                 * an object number (1-32767).  Object number 0 is reserved for dynamic data (ie, data created independent
                 * of any source); examples include zero values produced by instructions such as "SUB AX,AX" or "XOR AX,AX".
                 * We must special-case instructions like that, because even though AX will almost certainly contain some source
                 * data prior to the instruction, the result no longer has any connection to the source.  Similarly, "SBB AX,AX"
                 * may produce 0 or -1, depending on carry, but since we don't track the source of individual bits (including the
                 * carry flag), AX is now source-less.  TODO: This is an argument for maintaining source info on selected flags,
                 * even though it would be rather expensive.
                 *
                 * The 7 middle bits (9-15) record type and access information, as follows:
                 *
                 *      bit 15: set to indicate a "data" byte, clear to indicate a "code" byte
                 *
                 * All bytes start out as "data" bytes; only once they've been executed do they become "code" bytes.  For code
                 * bytes, the remaining 6 middle bits (9-14) represent an execution count that starts at 1 (on the byte's initial
                 * transition from data to code) and tops out at 63.
                 *
                 * For data bytes, the remaining middle bits indicate any transformations the data has undergone; eg:
                 *
                 *      bit 14: ADD/SUB/INC/DEC
                 *      bit 13: MUL/DIV
                 *      bit 12: OR/AND/XOR/NOT
                 *
                 * We make no attempt to record the original data or the transformation data, only that the transformation occurred.
                 *
                 * Other middle bits indicate whether the data was ever read and/or written:
                 *
                 *      bit 11: READ
                 *      bit 10: WRITE
                 *
                 * Bit 9 is reserved for now.
                 */
                Bus.BACKTRACK = {
                    SLOT_MAX:       32768,
                    SLOT_SHIFT:     16,
                    TYPE_DATA:      0x8000,
                    TYPE_ADDSUB:    0x4000,
                    TYPE_MULDIV:    0x2000,
                    TYPE_LOGICAL:   0x1000,
                    TYPE_READ:      0x0800,
                    TYPE_WRITE:     0x0400,
                    TYPE_COUNT_INC: 0x0200,
                    TYPE_COUNT_MAX: 0x7E00,
                    TYPE_MASK:      0xFE00,
                    TYPE_SHIFT:     9,
                    OFF_MAX:        512,
                    OFF_MASK:       0x1FF
                };
            }
            
            /**
             * @typedef {number}
             */
            var BlockInfo;
            
            /**
             * This defines the BlockInfo bit fields used by scanMemory() when it creates the aBlocks array.
             *
             * @typedef {{
             *  num:    BitField,
             *  count:  BitField,
             *  btmod:  BitField,
             *  type:   BitField
             * }}
             */
            Bus.BlockInfo = usr.defineBitFields({num:20, count:8, btmod:1, type:3});
            
            /**
             * BusInfo object definition (returned by scanMemory())
             *
             *  cbTotal:    total bytes allocated
             *  cBlocks:    total Memory blocks allocated
             *  aBlocks:    array of allocated Memory block numbers
             *
             * @typedef {{
             *  cbTotal:    number,
             *  cBlocks:    number,
             *  aBlocks:    Array.<BlockInfo>
             * }}
             */
            var BusInfo;
            
            /**
             * initMemory()
             *
             * Allocate enough (empty) Memory blocks to span the entire physical address space.
             *
             * @this {Bus}
             */
            Bus.prototype.initMemory = function()
            {
                var block = new Memory();
                this.aMemBlocks = new Array(this.nBlockTotal);
                for (var iBlock = 0; iBlock < this.nBlockTotal; iBlock++) {
                    this.aMemBlocks[iBlock] = block;
                }
                this.cpu.initMemory(this.aMemBlocks, this.nBlockShift);
                this.cpu.setAddressMask(this.nBusMask);
            };
            
            /**
             * reset()
             *
             * @this {Bus}
             */
            Bus.prototype.reset = function()
            {
                this.setA20(true);
                if (BACKTRACK) this.ibtLastDelete = 0;
            };
            
            /**
             * powerUp(data, fRepower)
             *
             * We don't need a powerDown() handler, because for largely historical reasons, our state (including the A20 state)
             * is saved by saveMemory().
             *
             * However, we do need a powerUp() handler, because on resumable machines, the Computer's onReset() function calls
             * everyone's powerUp() handler rather than their reset() handler.
             *
             * TODO: Perhaps Computer should be smarter: if there's no powerUp() handler, then fallback to the reset() handler.
             * In that case, however, we'd either need to remove the powerUp() stub in Component, or detect the existence of the stub.
             *
             * @this {Bus}
             * @param {Object|null} data (always null because we supply no powerDown() handler)
             * @param {boolean} [fRepower]
             * @return {boolean} true if successful, false if failure
             */
            Bus.prototype.powerUp = function(data, fRepower)
            {
                if (!fRepower) this.reset();
                return true;
            };
            
            /**
             * addMemory(addr, size, type, controller)
             *
             * Adds new Memory blocks to the specified address range.  Any Memory blocks previously
             * added to that range must first be removed via removeMemory(); otherwise, you'll get
             * an allocation conflict error.  This helps prevent address calculation errors, redundant
             * allocations, etc.
             *
             * We've relaxed some of the original requirements (ie, that addresses must start at a
             * block-granular address, or that sizes must be equal to exactly one or more blocks), because
             * machines with large block sizes can make it impossible to load certain ROMs at at their
             * required addresses.
             *
             * Even so, Bus memory management does NOT provide a general-purpose heap.  Most memory
             * allocations occur during machine initialization and never change.  The only notable
             * exception is the Video frame buffer, which ranges from 4Kb (MDA) to 16Kb (CGA) to
             * 32Kb/64Kb/128Kb (EGA), and only the EGA changes its buffer address post-initialization.
             *
             * Each Memory block keeps track of a single address (addr) and length (used), indicating
             * the used space within the block; any free space that precedes or follows that used space
             * can be allocated later, by simply extending the beginning or ending of the previously used
             * space.  However, any holes that might have existed between the original allocation and an
             * extension are subsumed by the extension.
             *
             * @this {Bus}
             * @param {number} addr is the starting physical address of the request
             * @param {number} size of the request, in bytes
             * @param {number} type is one of the Memory.TYPE constants
             * @param {Object} [controller] is an optional memory controller component
             * @return {boolean} true if successful, false if not
             */
            Bus.prototype.addMemory = function(addr, size, type, controller)
            {
                var iBlock = addr >>> this.nBlockShift;
                while (size > 0 && iBlock < this.aMemBlocks.length) {
                    var block = this.aMemBlocks[iBlock];
                    var addrBlock = iBlock * this.nBlockSize;
                    var sizeBlock = size > this.nBlockSize? this.nBlockSize : size;
            
                    if (block && block.size) {
                        if (block.type == type && block.controller == controller) {
                            /*
                             * Where there is already a block with a non-zero size, we can allow the allocation only if:
                             *
                             *   1) addr + size <= block.addr (the request precedes the used portion of the current block)
                             * or:
                             *   2) addr >= block.addr + block.used (the request follows the used portion of the current block)
                             */
                            if (addr + size <= block.addr) {
                                block.used += (block.addr - addr);
                                block.addr = addr;
                                return true;
                            }
                            if (addr >= block.addr + block.used) {
                                var sizeAvail = block.size - (addr - addrBlock);
                                if (sizeAvail > size) sizeAvail = size;
                                block.used = addr - block.addr + sizeAvail;
                                size -= sizeAvail;
                                addr = addrBlock + this.nBlockSize;
                                continue;
                            }
                        }
                        return this.reportError(1, addr, size);
                    }
                    block = this.aMemBlocks[iBlock++] = new Memory(addr, sizeBlock, this.nBlockSize, type, controller);
                    if (DEBUGGER && this.dbg) {
                        block.setDebugger(this.dbg, addr, this.nBlockSize);
                    }
                    size -= sizeBlock;
                    addr = addrBlock + this.nBlockSize;
                }
                if (size > 0) {
                    return this.reportError(2, addr, size);
                }
                return true;
            };
            
            /**
             * cleanMemory(addr, size)
             *
             * @this {Bus}
             * @param {number} addr
             * @param {number} size
             * @return {boolean} true if all blocks were clean, false if dirty; all blocks are cleaned in the process
             */
            Bus.prototype.cleanMemory = function(addr, size)
            {
                var fClean = true;
                var iBlock = addr >>> this.nBlockShift;
                while (size > 0 && iBlock < this.aMemBlocks.length) {
                    if (this.aMemBlocks[iBlock].fDirty) {
                        this.aMemBlocks[iBlock].fDirty = fClean = false;
                        this.aMemBlocks[iBlock].fDirtyEver = true;
                    }
                    size -= this.nBlockSize;
                    iBlock++;
                }
                return fClean;
            };
            
            /**
             * scanMemory(info, addr, size)
             *
             * Returns a BusInfo object for the specified address range.
             *
             * @this {Bus}
             * @param {Object} [info] previous BusInfo, if any
             * @param {number} [addr] starting address of range (0 if none provided)
             * @param {number} [size] size of range, in bytes (up to end of address space if none provided)
             * @return {Object} updated info (or new info if no previous info provided)
             */
            Bus.prototype.scanMemory = function(info, addr, size)
            {
                if (addr == null) addr = 0;
                if (size == null) size = (this.addrTotal - addr) | 0;
                if (info == null) info = {cbTotal: 0, cBlocks: 0, aBlocks: []};
            
                var iBlock = addr >>> this.nBlockShift;
                var iBlockMax = ((addr + size - 1) >>> this.nBlockShift);
            
                info.cbTotal = 0;
                info.cBlocks = 0;
                while (iBlock <= iBlockMax) {
                    var block = this.aMemBlocks[iBlock];
                    info.cbTotal += block.size;
                    if (block.size) {
                        var btmod = (BACKTRACK && block.modBackTrack(false)? 1 : 0);
                        info.aBlocks.push(usr.initBitFields(Bus.BlockInfo, iBlock, 0, btmod, block.type));
                        info.cBlocks++
                    }
                    iBlock++;
                }
                return info;
            };
            
            /**
             * getA20()
             *
             * @this {Bus}
             * @return {boolean} true if enabled, false if disabled
             */
            Bus.prototype.getA20 = function()
            {
                return !this.aBlocks2Mb && this.nBusLimit == this.nBusMask;
            };
            
            /**
             * setA20(fEnable)
             *
             * On 32-bit bus machines, I've adopted the approach that Compaq took with DeskPro 386 machines,
             * which is to map the 1st Mb to the 2nd Mb whenever A20 is disabled, rather than blindly masking
             * the A20 address bit from all addresses; in fact, this is what the DeskPro 386 ROM BIOS requires.
             *
             * For 24-bit bus machines, we take the same approach that most if not all 80286 systems took, which
             * is simply masking the A20 address bit.  A lot of 32-bit machines probably took the same approach.
             *
             * TODO: On machines with a 32-bit bus, look into whether we can eliminate address masking altogether,
             * which seems feasible, provided all incoming addresses are already pre-truncated to 32 bits.  Also,
             * confirm that DeskPro 386 machines mapped the ENTIRE 1st Mb to the 2nd, and not simply the first 64Kb,
             * which is technically all that 8086 address wrap-around compatibility would require.
             *
             * @this {Bus}
             * @param {boolean} fEnable is true to enable A20 (default), false to disable
             */
            Bus.prototype.setA20 = function(fEnable)
            {
                if (this.nBusWidth == 32) {
                    if (fEnable) {
                        if (this.aBlocks2Mb) {
                            this.setMemoryBlocks(0x100000, 0x100000, this.aBlocks2Mb);
                            this.aBlocks2Mb = null;
                        }
                    } else {
                        if (!this.aBlocks2Mb) {
                            this.aBlocks2Mb = this.getMemoryBlocks(0x100000, 0x100000);
                            this.setMemoryBlocks(0x100000, 0x100000, this.getMemoryBlocks(0x0, 0x100000));
                        }
                    }
                }
                else if (this.nBusWidth > 20) {
                    var addrMask = (this.nBusMask & ~0x100000) | (fEnable? 0x100000 : 0);
                    if (addrMask != this.nBusMask) {
                        this.nBusMask = addrMask;
                        if (this.cpu) this.cpu.setAddressMask(addrMask);
                    }
                }
            };
            
            /**
             * getWidth()
             *
             * @this {Bus}
             * @return {number}
             */
            Bus.prototype.getWidth = function()
            {
                return this.nBusWidth;
            };
            
            /**
             * setMemoryAccess(addr, size)
             *
             * Updates the access functions in every block of the specified address range.  Since the only components
             * that should be dynamically modifying the memory access functions are those that use addMemory() with a custom
             * memory controller, we require that the block(s) being updated do in fact have a controller.
             *
             * @this {Bus}
             * @param {number} addr
             * @param {number} size
             * @param {Array.<function()>} [afn]
             * @return {boolean} true if successful, false if not
             */
            Bus.prototype.setMemoryAccess = function(addr, size, afn)
            {
                if (!(addr & this.nBlockLimit) && size && !(size & this.nBlockLimit)) {
                    var iBlock = addr >>> this.nBlockShift;
                    while (size > 0) {
                        var block = this.aMemBlocks[iBlock];
                        if (!block.controller) {
                            return this.reportError(5, addr, size);
                        }
                        block.setAccess(afn);
                        size -= this.nBlockSize;
                        iBlock++;
                    }
                    return true;
                }
                return this.reportError(3, addr, size);
            };
            
            /**
             * removeMemory(addr, size)
             *
             * Replaces every block in the specified address range with empty Memory blocks that will ignore all reads/writes.
             *
             * TODO: Update the removeMemory() interface to reflect the relaxed requirements of the addMemory() interface.
             *
             * @this {Bus}
             * @param {number} addr
             * @param {number} size
             * @return {boolean} true if successful, false if not
             */
            Bus.prototype.removeMemory = function(addr, size)
            {
                if (!(addr & this.nBlockLimit) && size && !(size & this.nBlockLimit)) {
                    var iBlock = addr >>> this.nBlockShift;
                    while (size > 0) {
                        addr = iBlock * this.nBlockSize;
                        var block = this.aMemBlocks[iBlock++] = new Memory(addr);
                        if (DEBUGGER && this.dbg) {
                            block.setDebugger(this.dbg, addr, this.nBlockSize);
                        }
                        size -= this.nBlockSize;
                    }
                    return true;
                }
                return this.reportError(4, addr, size);
            };
            
            /**
             * getMemoryBlocks(addr, size)
             *
             * @this {Bus}
             * @param {number} addr is the starting physical address
             * @param {number} size of the request, in bytes
             * @return {Array} of Memory blocks
             */
            Bus.prototype.getMemoryBlocks = function(addr, size)
            {
                var aBlocks = [];
                var iBlock = addr >>> this.nBlockShift;
                while (size > 0 && iBlock < this.aMemBlocks.length) {
                    aBlocks.push(this.aMemBlocks[iBlock++]);
                    size -= this.nBlockSize;
                }
                return aBlocks;
            };
            
            /**
             * setMemoryBlocks(addr, size, aBlocks, type)
             *
             * If no type is specified, then specified address range uses all the provided blocks as-is;
             * this form of setMemoryBlocks() is used for complete physical aliases.
             *
             * Otherwise, new blocks are allocated with the specified type; the underlying memory from the
             * provided blocks is still used, but the new blocks may have different access to that memory.
             *
             * @this {Bus}
             * @param {number} addr is the starting physical address
             * @param {number} size of the request, in bytes
             * @param {Array} aBlocks as returned by getMemoryBlocks()
             * @param {number} [type] is one of the Memory.TYPE constants
             */
            Bus.prototype.setMemoryBlocks = function(addr, size, aBlocks, type)
            {
                var i = 0;
                var iBlock = addr >>> this.nBlockShift;
                while (size > 0 && iBlock < this.aMemBlocks.length) {
                    var block = aBlocks[i++];
                    this.assert(block);
                    if (!block) break;
                    if (type !== undefined) {
                        var blockNew = new Memory(addr);
                        if (DEBUGGER && this.dbg) {
                            blockNew.setDebugger(this.dbg, addr, this.nBlockSize);
                        }
                        blockNew.clone(block, type);
                        block = blockNew;
                    }
                    this.aMemBlocks[iBlock++] = block;
                    size -= this.nBlockSize;
                }
            };
            
            /**
             * getByte(addr)
             *
             * For physical addresses only; for linear addresses, use cpu.getByte().
             *
             * @this {Bus}
             * @param {number} addr is a physical address
             * @return {number} byte (8-bit) value at that address
             */
            Bus.prototype.getByte = function(addr)
            {
                return this.aMemBlocks[(addr & this.nBusMask) >>> this.nBlockShift].readByte(addr & this.nBlockLimit, addr);
            };
            
            /**
             * getByteDirect(addr)
             *
             * This is useful for the Debugger and other components that want to bypass getByte() breakpoint detection.
             *
             * @this {Bus}
             * @param {number} addr is a physical address
             * @return {number} byte (8-bit) value at that address
             */
            Bus.prototype.getByteDirect = function(addr)
            {
                return this.aMemBlocks[(addr & this.nBusMask) >>> this.nBlockShift].readByteDirect(addr & this.nBlockLimit, addr);
            };
            
            /**
             * getShort(addr)
             *
             * For physical addresses only; for linear addresses, use cpu.getShort().
             *
             * @this {Bus}
             * @param {number} addr is a physical address
             * @return {number} word (16-bit) value at that address
             */
            Bus.prototype.getShort = function(addr)
            {
                var off = addr & this.nBlockLimit;
                var iBlock = (addr & this.nBusMask) >>> this.nBlockShift;
                if (off != this.nBlockLimit) {
                    return this.aMemBlocks[iBlock].readShort(off, addr);
                }
                return this.aMemBlocks[iBlock++].readByte(off, addr) | (this.aMemBlocks[iBlock & this.nBlockMask].readByte(0, addr + 1) << 8);
            };
            
            /**
             * getShortDirect(addr)
             *
             * This is useful for the Debugger and other components that want to bypass getShort() breakpoint detection.
             *
             * @this {Bus}
             * @param {number} addr is a physical address
             * @return {number} word (16-bit) value at that address
             */
            Bus.prototype.getShortDirect = function(addr)
            {
                var off = addr & this.nBlockLimit;
                var iBlock = (addr & this.nBusMask) >>> this.nBlockShift;
                if (off != this.nBlockLimit) {
                    return this.aMemBlocks[iBlock].readShortDirect(off, addr);
                }
                return this.aMemBlocks[iBlock++].readByteDirect(off, addr) | (this.aMemBlocks[iBlock & this.nBlockMask].readByteDirect(0, addr + 1) << 8);
            };
            
            /**
             * getLong(addr)
             *
             * For physical addresses only; for linear addresses, use cpu.getLong().
             *
             * @this {Bus}
             * @param {number} addr is a physical address
             * @return {number} long (32-bit) value at that address
             */
            Bus.prototype.getLong = function(addr)
            {
                var off = addr & this.nBlockLimit;
                var iBlock = (addr & this.nBusMask) >>> this.nBlockShift;
                if (off < this.nBlockLimit - 2) {
                    return this.aMemBlocks[iBlock].readLong(off, addr);
                }
                var nShift = (off & 0x3) << 3;
                return (this.aMemBlocks[iBlock].readLong(off & ~0x3, addr) >>> nShift) | (this.aMemBlocks[(iBlock + 1) & this.nBlockMask].readLong(0, addr + 3) << (32 - nShift));
            };
            
            /**
             * getLongDirect(addr)
             *
             * This is useful for the Debugger and other components that want to bypass getLong() breakpoint detection.
             *
             * @this {Bus}
             * @param {number} addr is a physical address
             * @return {number} long (32-bit) value at that address
             */
            Bus.prototype.getLongDirect = function(addr)
            {
                var off = addr & this.nBlockLimit;
                var iBlock = (addr & this.nBusMask) >>> this.nBlockShift;
                if (off < this.nBlockLimit - 2) {
                    return this.aMemBlocks[iBlock].readLongDirect(off, addr);
                }
                var nShift = (off & 0x3) << 3;
                return (this.aMemBlocks[iBlock].readLongDirect(off & ~0x3, addr) >>> nShift) | (this.aMemBlocks[(iBlock + 1) & this.nBlockMask].readLongDirect(0, addr + 3) << (32 - nShift));
            };
            
            /**
             * setByte(addr, b)
             *
             * For physical addresses only; for linear addresses, use cpu.setByte().
             *
             * @this {Bus}
             * @param {number} addr is a physical address
             * @param {number} b is the byte (8-bit) value to write (we truncate it to 8 bits to be safe)
             */
            Bus.prototype.setByte = function(addr, b)
            {
                this.aMemBlocks[(addr & this.nBusMask) >>> this.nBlockShift].writeByte(addr & this.nBlockLimit, b & 0xff, addr);
            };
            
            /**
             * setByteDirect(addr, b)
             *
             * This is useful for the Debugger and other components that want to bypass breakpoint detection AND read-only
             * memory protection (for example, this is an interface the ROM component could use to initialize ROM contents).
             *
             * @this {Bus}
             * @param {number} addr is a physical address
             * @param {number} b is the byte (8-bit) value to write (we truncate it to 8 bits to be safe)
             */
            Bus.prototype.setByteDirect = function(addr, b)
            {
                this.aMemBlocks[(addr & this.nBusMask) >>> this.nBlockShift].writeByteDirect(addr & this.nBlockLimit, b & 0xff, addr);
            };
            
            /**
             * setShort(addr, w)
             *
             * For physical addresses only; for linear addresses, use cpu.setShort().
             *
             * @this {Bus}
             * @param {number} addr is a physical address
             * @param {number} w is the word (16-bit) value to write (we truncate it to 16 bits to be safe)
             */
            Bus.prototype.setShort = function(addr, w)
            {
                var off = addr & this.nBlockLimit;
                var iBlock = (addr & this.nBusMask) >>> this.nBlockShift;
                if (off != this.nBlockLimit) {
                    this.aMemBlocks[iBlock].writeShort(off, w & 0xffff, addr);
                    return;
                }
                this.aMemBlocks[iBlock++].writeByte(off, w & 0xff, addr);
                this.aMemBlocks[iBlock & this.nBlockMask].writeByte(0, (w >> 8) & 0xff, addr + 1);
            };
            
            /**
             * setShortDirect(addr, w)
             *
             * This is useful for the Debugger and other components that want to bypass breakpoint detection AND read-only
             * memory protection (for example, this is an interface the ROM component could use to initialize ROM contents).
             *
             * @this {Bus}
             * @param {number} addr is a physical address
             * @param {number} w is the word (16-bit) value to write (we truncate it to 16 bits to be safe)
             */
            Bus.prototype.setShortDirect = function(addr, w)
            {
                var off = addr & this.nBlockLimit;
                var iBlock = (addr & this.nBusMask) >>> this.nBlockShift;
                if (off != this.nBlockLimit) {
                    this.aMemBlocks[iBlock].writeShortDirect(off, w & 0xffff, addr);
                    return;
                }
                this.aMemBlocks[iBlock++].writeByteDirect(off, w & 0xff, addr);
                this.aMemBlocks[iBlock & this.nBlockMask].writeByteDirect(0, (w >> 8) & 0xff, addr + 1);
            };
            
            /**
             * setLong(addr, l)
             *
             * For physical addresses only; for linear addresses, use cpu.setLong().
             *
             * @this {Bus}
             * @param {number} addr is a physical address
             * @param {number} l is the long (32-bit) value to write
             */
            Bus.prototype.setLong = function(addr, l)
            {
                var off = addr & this.nBlockLimit;
                var iBlock = (addr & this.nBusMask) >>> this.nBlockShift;
                if (off < this.nBlockLimit - 2) {
                    this.aMemBlocks[iBlock].writeLong(off, l);
                    return;
                }
                var lPrev, nShift = (off & 0x3) << 3;
                off &= ~0x3;
                lPrev = this.aMemBlocks[iBlock].readLong(off, addr);
                this.aMemBlocks[iBlock].writeLong(off, (lPrev & ~((0xffffffff|0) << nShift)) | (l << nShift), addr);
                iBlock = (iBlock + 1) & this.nBlockMask;
                addr += 3;
                lPrev = this.aMemBlocks[iBlock].readLong(0, addr);
                this.aMemBlocks[iBlock].writeLong(0, (lPrev & ((0xffffffff|0) << nShift)) | (l >>> (32 - nShift)), addr);
            };
            
            /**
             * setLongDirect(addr, l)
             *
             * This is useful for the Debugger and other components that want to bypass breakpoint detection AND read-only
             * memory protection (for example, this is an interface the ROM component could use to initialize ROM contents).
             *
             * @this {Bus}
             * @param {number} addr is a physical address
             * @param {number} l is the long (32-bit) value to write
             */
            Bus.prototype.setLongDirect = function(addr, l)
            {
                var off = addr & this.nBlockLimit;
                var iBlock = (addr & this.nBusMask) >>> this.nBlockShift;
                if (off < this.nBlockLimit - 2) {
                    this.aMemBlocks[iBlock].writeLongDirect(off, l, addr);
                    return;
                }
                var lPrev, nShift = (off & 0x3) << 3;
                off &= ~0x3;
                lPrev = this.aMemBlocks[iBlock].readLongDirect(off, addr);
                this.aMemBlocks[iBlock].writeLongDirect(off, (lPrev & ~((0xffffffff|0) << nShift)) | (l << nShift), addr);
                iBlock = (iBlock + 1) & this.nBlockMask;
                addr += 3;
                lPrev = this.aMemBlocks[iBlock].readLongDirect(0, addr);
                this.aMemBlocks[iBlock].writeLongDirect(0, (lPrev & ((0xffffffff|0) << nShift)) | (l >>> (32 - nShift)), addr);
            };
            
            /**
             * addBackTrackObject(obj, bto, off)
             *
             * If bto is null, then we create bto (ie, an object that wraps obj and records off).
             *
             * If bto is NOT null, then we verify that off is within the given bto's range; if not,
             * then we must create a new bto and return that instead.
             *
             * @this {Bus}
             * @param {Object} obj
             * @param {BackTrack} bto
             * @param {number} off (the offset within obj that this wrapper object is relative to)
             * @return {BackTrack|null}
             */
            Bus.prototype.addBackTrackObject = function(obj, bto, off)
            {
                if (BACKTRACK && obj) {
                    var cbtObjects = this.abtObjects.length;
                    if (!bto) {
                        /*
                         * Try the most recently created bto, on the off-chance it's what the caller needs
                         */
                        if (this.ibtLastAlloc >= 0) bto = this.abtObjects[this.ibtLastAlloc];
                    }
                    if (!bto || bto.obj != obj || off < bto.off || off >= bto.off + Bus.BACKTRACK.OFF_MAX) {
            
                        bto = {obj: obj, off: off, slot: 0, refs: 0};
            
                        var slot;
                        if (!this.cbtDeletions) {
                            slot = cbtObjects;
                        } else {
                            for (slot = this.ibtLastDelete; slot < cbtObjects; slot++) {
                                var btoTest = this.abtObjects[slot];
                                if (!btoTest || !btoTest.refs && !this.isBackTrackWeak(slot << Bus.BACKTRACK.SLOT_SHIFT)) {
                                    this.ibtLastDelete = slot + 1;
                                    this.cbtDeletions--;
                                    break;
                                }
                            }
                            /*
                             * There's no longer any guarantee that simply because cbtDeletions was non-zero that there WILL
                             * be an available (existing) slot, because cbtDeletions also counts weak references that may still
                             * be weak.
                             *
                             *      this.assert(slot < cbtObjects);
                             */
                        }
                        this.assert(slot < Bus.BACKTRACK.SLOT_MAX);
                        this.ibtLastAlloc = slot;
                        bto.slot = slot + 1;
                        if (slot == cbtObjects) {
                            this.abtObjects.push(bto);
                        } else {
                            this.abtObjects[slot] = bto;
                        }
                    }
                    return bto;
                }
                return null;
            };
            
            /**
             * getBackTrackIndex(bto, off)
             *
             * @this {Bus}
             * @param {BackTrack|null} bto
             * @param {number} off
             * @return {number}
             */
            Bus.prototype.getBackTrackIndex = function(bto, off)
            {
                var bti = 0;
                if (BACKTRACK && bto) {
                    bti = (bto.slot << Bus.BACKTRACK.SLOT_SHIFT) | Bus.BACKTRACK.TYPE_DATA | (off - bto.off);
                }
                return bti;
            };
            
            /**
             * writeBackTrackObject(addr, bto, off)
             *
             * @this {Bus}
             * @param {number} addr is a physical address
             * @param {BackTrack|null} bto
             * @param {number} off
             */
            Bus.prototype.writeBackTrackObject = function(addr, bto, off)
            {
                if (BACKTRACK && bto) {
                    this.assert(off - bto.off >= 0 && off - bto.off < Bus.BACKTRACK.OFF_MAX);
                    var bti = (bto.slot << Bus.BACKTRACK.SLOT_SHIFT) | Bus.BACKTRACK.TYPE_DATA | (off - bto.off);
                    this.writeBackTrack(addr, bti);
                }
            };
            
            /**
             * readBackTrack(addr)
             *
             * @this {Bus}
             * @param {number} addr is a physical address
             * @return {number}
             */
            Bus.prototype.readBackTrack = function(addr)
            {
                if (BACKTRACK) {
                    return this.aMemBlocks[(addr & this.nBusMask) >>> this.nBlockShift].readBackTrack(addr & this.nBlockLimit);
                }
                return 0;
            };
            
            /**
             * writeBackTrack(addr, bti)
             *
             * @this {Bus}
             * @param {number} addr is a physical address
             * @param {number} bti
             */
            Bus.prototype.writeBackTrack = function(addr, bti)
            {
                if (BACKTRACK) {
                    var slot = bti >>> Bus.BACKTRACK.SLOT_SHIFT;
                    var iBlock = (addr & this.nBusMask) >>> this.nBlockShift;
                    var btiPrev = this.aMemBlocks[iBlock].writeBackTrack(addr & this.nBlockLimit, bti);
                    var slotPrev = btiPrev >>> Bus.BACKTRACK.SLOT_SHIFT;
                    if (slot != slotPrev) {
                        this.aMemBlocks[iBlock].modBackTrack(true);
                        if (btiPrev && slotPrev) {
                            var btoPrev = this.abtObjects[slotPrev-1];
                            if (!btoPrev) {
                                if (DEBUGGER && this.dbg && this.dbg.messageEnabled(Messages.WARN)) {
                                    this.dbg.message("writeBackTrack(%" + str.toHex(addr) + ',' + str.toHex(bti) + "): previous index (" + str.toHex(btiPrev) + ") refers to empty slot (" + slotPrev + ")");
                                }
                            }
                            else if (btoPrev.refs <= 0) {
                                if (DEBUGGER && this.dbg && this.dbg.messageEnabled(Messages.WARN)) {
                                    this.dbg.message("writeBackTrack(%" + str.toHex(addr) + ',' + str.toHex(bti) + "): previous index (" + str.toHex(btiPrev) + ") refers to object with bad ref count (" + btoPrev.refs + ")");
                                }
                            } else if (!--btoPrev.refs) {
                                /*
                                 * We used to just slam a null into the previous slot and consider it gone, but there may still
                                 * be "weak references" to that slot (ie, it may still be associated with a register bti).
                                 *
                                 * The easiest way to handle weak references is to leave the slot allocated, with the object's ref
                                 * count sitting at zero, and change addBackTrackObject() to look for both empty slots AND non-empty
                                 * slots with a ref count of zero; in the latter case, it should again check for weak references,
                                 * after which we can re-use the slot if all its weak references are now gone.
                                 */
                                if (!this.isBackTrackWeak(btiPrev)) this.abtObjects[slotPrev-1] = null;
                                /*
                                 * TODO: Consider what the appropriate trigger should be for resetting ibtLastDelete to zero;
                                 * if we don't OCCASIONALLY set it to zero, we may never clear out obsolete weak references,
                                 * whereas if we ALWAYS set it to zero, we may be forcing addBackTrackObject() to scan the entire
                                 * table too often.
                                 *
                                 * I'd prefer to do something like this:
                                 *
                                 *      if (this.ibtLastDelete > slotPrev-1) this.ibtLastDelete = slotPrev-1;
                                 *
                                 * or even this:
                                 *
                                 *      if (this.ibtLastDelete > slotPrev-1) this.ibtLastDelete = 0;
                                 *
                                 * But neither one of those guarantees that we will at least occasionally scan the entire table.
                                 */
                                this.ibtLastDelete = 0;
                                this.cbtDeletions++;
                            }
                        }
                        if (bti && slot) {
                            var bto = this.abtObjects[slot-1];
                            if (bto) {
                                this.assert(slot == bto.slot);
                                bto.refs++;
                            }
                        }
                    }
                }
            };
            
            /**
             * isBackTrackWeak(bti)
             *
             * @param {number} bti
             * @returns {boolean} true if the given bti is still referenced by a register, false if not
             */
            Bus.prototype.isBackTrackWeak = function(bti)
            {
                var bt = this.cpu.backTrack;
                var slot = bti >> Bus.BACKTRACK.SLOT_SHIFT;
                return (bt.btiAL   >> Bus.BACKTRACK.SLOT_SHIFT == slot ||
                        bt.btiAH   >> Bus.BACKTRACK.SLOT_SHIFT == slot ||
                        bt.btiBL   >> Bus.BACKTRACK.SLOT_SHIFT == slot ||
                        bt.btiBH   >> Bus.BACKTRACK.SLOT_SHIFT == slot ||
                        bt.btiCL   >> Bus.BACKTRACK.SLOT_SHIFT == slot ||
                        bt.btiCH   >> Bus.BACKTRACK.SLOT_SHIFT == slot ||
                        bt.btiDL   >> Bus.BACKTRACK.SLOT_SHIFT == slot ||
                        bt.btiDH   >> Bus.BACKTRACK.SLOT_SHIFT == slot ||
                        bt.btiBPLo >> Bus.BACKTRACK.SLOT_SHIFT == slot ||
                        bt.btiBPHi >> Bus.BACKTRACK.SLOT_SHIFT == slot ||
                        bt.btiSILo >> Bus.BACKTRACK.SLOT_SHIFT == slot ||
                        bt.btiSIHi >> Bus.BACKTRACK.SLOT_SHIFT == slot ||
                        bt.btiDILo >> Bus.BACKTRACK.SLOT_SHIFT == slot ||
                        bt.btiDIHi >> Bus.BACKTRACK.SLOT_SHIFT == slot
                );
            };
            
            /**
             * updateBackTrackCode(addr, bti)
             *
             * @this {Bus}
             * @param {number} addr is a physical address
             * @param {number} bti
             */
            Bus.prototype.updateBackTrackCode = function(addr, bti)
            {
                if (BACKTRACK) {
                    if (bti & Bus.BACKTRACK.TYPE_DATA) {
                        bti = (bti & ~Bus.BACKTRACK.TYPE_MASK) | Bus.BACKTRACK.TYPE_COUNT_INC;
                    } else if ((bti & Bus.BACKTRACK.TYPE_MASK) < Bus.BACKTRACK.TYPE_COUNT_MAX) {
                        bti += Bus.BACKTRACK.TYPE_COUNT_INC;
                    } else {
                        return;
                    }
                    this.aMemBlocks[(addr & this.nBusMask) >>> this.nBlockShift].writeBackTrack(addr & this.nBlockLimit, bti);
                }
            };
            
            /**
             * getBackTrackObject(bti)
             *
             * @this {Bus}
             * @param {number} bti
             * @return {Object|null}
             */
            Bus.prototype.getBackTrackObject = function(bti)
            {
                if (BACKTRACK) {
                    var slot = bti >>> Bus.BACKTRACK.SLOT_SHIFT;
                    if (slot) return this.abtObjects[slot-1];
                }
                return null;
            };
            
            /**
             * getBackTrackObjectFromAddr(addr)
             *
             * @this {Bus}
             * @param {number} addr
             * @return {Object|null}
             */
            Bus.prototype.getBackTrackObjectFromAddr = function(addr)
            {
                return BACKTRACK? this.getBackTrackObject(this.readBackTrack(addr)) : null;
            };
            
            /**
             * getBackTrackInfo(bti)
             *
             * @this {Bus}
             * @param {number} bti
             * @return {string|null}
             */
            Bus.prototype.getBackTrackInfo = function(bti)
            {
                if (BACKTRACK) {
                    var bto = this.getBackTrackObject(bti);
                    if (bto) {
                        var off = bti & Bus.BACKTRACK.OFF_MASK;
                        var file = bto.obj.file;
                        if (file) {
                            this.assert(!bto.off);
                            return file.sName + '[' + str.toHexLong(bto.obj.offFile + off) + ']';
                        }
                        return bto.obj.idComponent + '[' + str.toHexLong(bto.off + off) + ']';
                    }
                }
                return null;
            };
            
            /**
             * getBackTrackInfoFromAddr(addr)
             *
             * @this {Bus}
             * @param {number} addr
             * @return {string|null}
             */
            Bus.prototype.getBackTrackInfoFromAddr = function(addr)
            {
                return BACKTRACK? this.getBackTrackInfo(this.readBackTrack(addr)) : null;
            };
            
            /**
             * saveMemory()
             *
             * The only memory blocks we save are those marked as dirty; most likely all of RAM will have been marked dirty,
             * and even if our dirty-memory flags were as smart as our dirty-sector flags (ie, were set only when a write changed
             * what was already there), it's unlikely that would reduce the number of RAM blocks we must save/restore.  At least
             * all the ROM blocks should be clean (except in the unlikely event that the Debugger was used to modify them).
             *
             * All dirty blocks will be stored in a single array, as pairs of block numbers and data arrays, like so:
             *
             *      [iBlock0, [dw0, dw1, ...], iBlock1, [dw0, dw1, ...], ...]
             *
             * In a normal 4Kb block, there will be 1K DWORD values in the data array.  Remember that each DWORD is a signed 32-bit
             * integer (because they are formed using bit-wise operator rather than floating-point math operators), so don't be
             * surprised to see negative numbers in the data.
             *
             * The above example assumes "uncompressed" data arrays.  If we choose to use "compressed" data arrays, the data arrays
             * will look like:
             *
             *      [count0, dw0, count1, dw1, ...]
             *
             * where each count indicates how many times the following DWORD value occurs.  A data array length less than 1K indicates
             * that it's compressed, since we'll only store them in compressed form if they actually shrank, and we'll use State
             * helper methods compress() and decompress() to create and expand the compressed data arrays.
             *
             * @this {Bus}
             * @return {Array} a
             */
            Bus.prototype.saveMemory = function()
            {
                var i = 0;
                var a = [];
                for (var iBlock = 0; iBlock < this.nBlockTotal; iBlock++) {
                    var block = this.aMemBlocks[iBlock];
                    /*
                     * We have to check both fDirty and fDirtyEver, because we may have called cleanMemory() on some of
                     * the memory blocks (eg, video memory), and while cleanMemory() will clear a dirty block's fDirty flag,
                     * it also sets the dirty block's fDirtyEver flag, which is left set for the lifetime of the machine.
                     */
                    if (block.fDirty || block.fDirtyEver) {
                        a[i++] = iBlock;
                        a[i++] = State.compress(block.save());
                    }
                }
                a[i] = this.getA20();
                return a;
            };
            
            /**
             * restoreMemory(a)
             *
             * This restores the contents of all Memory blocks; called by X86CPU.restore().
             *
             * In theory, we ONLY have to save/restore block contents.  Other block attributes,
             * like the type, the memory controller (if any), and the active memory access functions,
             * should already be restored, since every component (re)allocates all the memory blocks
             * it was using when it's restored.  And since the CPU is guaranteed to be the last
             * component to be restored, all those blocks (and their attributes) should be in place now.
             *
             * See saveMemory() for a description of how the memory block contents are saved.
             *
             * @this {Bus}
             * @param {Array} a
             * @return {boolean} true if successful, false if not
             */
            Bus.prototype.restoreMemory = function(a)
            {
                var i;
                for (i = 0; i < a.length - 1; i += 2) {
                    var iBlock = a[i];
                    var adw = a[i+1];
                    if (adw && adw.length < this.nBlockLen) {
                        adw = State.decompress(adw, this.nBlockLen);
                    }
                    var block = this.aMemBlocks[iBlock];
                    if (!block || !block.restore(adw)) {
                        /*
                         * Either the block to restore hasn't been allocated, indicating a change in the machine
                         * configuration since it was last saved (the most likely explanation) or there's some internal
                         * inconsistency (eg, the block size is wrong).
                         */
                        Component.error("Unable to restore memory block " + iBlock);
                        return false;
                    }
                }
                if (a[i] !== undefined) this.setA20(a[i]);
                return true;
            };
            
            /**
             * addMemBreak(addr, fWrite)
             *
             * @this {Bus}
             * @param {number} addr
             * @param {boolean} fWrite is true for a memory write breakpoint, false for a memory read breakpoint
             */
            Bus.prototype.addMemBreak = function(addr, fWrite)
            {
                if (DEBUGGER) {
                    var iBlock = addr >>> this.nBlockShift;
                    this.aMemBlocks[iBlock].addBreakpoint(addr & this.nBlockLimit, fWrite);
                }
            };
            
            /**
             * removeMemBreak(addr, fWrite)
             *
             * @this {Bus}
             * @param {number} addr
             * @param {boolean} fWrite is true for a memory write breakpoint, false for a memory read breakpoint
             */
            Bus.prototype.removeMemBreak = function(addr, fWrite)
            {
                if (DEBUGGER) {
                    var iBlock = addr >>> this.nBlockShift;
                    this.aMemBlocks[iBlock].removeBreakpoint(addr & this.nBlockLimit, fWrite);
                }
            };
            
            /**
             * addPortInputBreak(port)
             *
             * @this {Bus}
             * @param {number} [port]
             * @return {boolean} true if break on port input enabled, false if disabled
             */
            Bus.prototype.addPortInputBreak = function(port)
            {
                if (port === undefined) {
                    this.fPortInputBreakAll = !this.fPortInputBreakAll;
                    return this.fPortInputBreakAll;
                }
                if (this.aPortInputNotify[port] === undefined) {
                    this.aPortInputNotify[port] = [null, null, false];
                }
                this.aPortInputNotify[port][2] = !this.aPortInputNotify[port][2];
                return this.aPortInputNotify[port][2];
            };
            
            /**
             * addPortInputNotify(start, end, component, fn)
             *
             * Add a port input-notification handler to the list of such handlers.
             *
             * @this {Bus}
             * @param {number} start port address
             * @param {number} end port address
             * @param {Component} component
             * @param {function(number,number)} fn is called with the port and LIP values at the time of the input
             */
            Bus.prototype.addPortInputNotify = function(start, end, component, fn)
            {
                if (fn !== undefined) {
                    for (var port = start; port <= end; port++) {
                        if (this.aPortInputNotify[port] !== undefined) {
                            Component.warning("Input port " + str.toHexWord(port) + " registered by " + this.aPortInputNotify[port][0].id + ", ignoring " + component.id);
                            continue;
                        }
                        this.aPortInputNotify[port] = [component, fn, false, false];
                        if (MAXDEBUG) this.log("addPortInputNotify(" + str.toHexWord(port) + "," + component.id + ")");
                    }
                }
            };
            
            /**
             * addPortInputTable(component, table, offset)
             *
             * Add port input-notification handlers from the specified table (a batch version of addPortInputNotify)
             *
             * @this {Bus}
             * @param {Component} component
             * @param {Object} table
             * @param {number} [offset] is an optional port offset
             */
            Bus.prototype.addPortInputTable = function(component, table, offset)
            {
                if (offset === undefined) offset = 0;
                for (var port in table) {
                    this.addPortInputNotify(+port + offset, +port + offset, component, table[port]);
                }
            };
            
            /**
             * checkPortInputNotify(port, addrLIP)
             *
             * @this {Bus}
             * @param {number} port
             * @param {number} [addrLIP] is the LIP value at the time of the input
             * @return {number} simulated port value (0xff if none)
             *
             * NOTE: It seems that at least parts of the ROM BIOS (like the RS-232 probes around F000:E5D7 in the 5150 BIOS)
             * assume that ports for non-existent hardware return 0xff rather than 0x00, hence my new default (0xff) below.
             */
            Bus.prototype.checkPortInputNotify = function(port, addrLIP)
            {
                var bIn = 0xff;
                var aNotify = this.aPortInputNotify[port];
            
                if (BACKTRACK) {
                    this.cpu.backTrack.btiIO = 0;
                }
                if (aNotify !== undefined) {
                    if (aNotify[1]) {
                        var b = aNotify[1].call(aNotify[0], port, addrLIP);
                        if (b !== undefined) bIn = b;
                    }
                    if (DEBUGGER && this.dbg && this.fPortInputBreakAll != aNotify[2]) {
                        this.dbg.checkPortInput(port, bIn);
                    }
                }
                else {
                    if (DEBUGGER && this.dbg) {
                        this.dbg.messageIO(this, port, null, addrLIP);
                        if (this.fPortInputBreakAll) this.dbg.checkPortInput(port, bIn);
                    }
                }
                return bIn;
            };
            
            /**
             * removePortInputNotify(start, end, component, fn)
             *
             * Remove a port input-notification handler from the list of such handlers (to be ENABLED later if needed)
             *
             * @this {Bus}
             * @param {number} start address
             * @param {number} end address
             * @param {Component} component
             * @param {function(number,number)} fn of previously added handler
             *
            Bus.prototype.removePortInputNotify = function(start, end, component, fn)
             {
                for (var port = start; port < end; port++) {
                    if (this.aPortInputNotify[port] && this.aPortInputNotify[port][0] == component && this.aPortInputNotify[port][1] == fn) {
                        this.aPortInputNotify[port] = undefined;
                    }
                }
            };
             */
            
            /**
             * addPortOutputBreak(port)
             *
             * @this {Bus}
             * @param {number} [port]
             * @return {boolean} true if break on port output enabled, false if disabled
             */
            Bus.prototype.addPortOutputBreak = function(port)
            {
                if (port === undefined) {
                    this.fPortOutputBreakAll = !this.fPortOutputBreakAll;
                    return this.fPortOutputBreakAll;
                }
                if (this.aPortOutputNotify[port] === undefined) {
                    this.aPortOutputNotify[port] = [null, null, false];
                }
                this.aPortOutputNotify[port][2] = !this.aPortOutputNotify[port][2];
                return this.aPortOutputNotify[port][2];
            };
            
            /**
             * addPortOutputNotify(start, end, component, fn)
             *
             * Add a port output-notification handler to the list of such handlers.
             *
             * @this {Bus}
             * @param {number} start port address
             * @param {number} end port address
             * @param {Component} component
             * @param {function(number,number)} fn is called with the port and LIP values at the time of the output
             */
            Bus.prototype.addPortOutputNotify = function(start, end, component, fn)
            {
                if (fn !== undefined) {
                    for (var port = start; port <= end; port++) {
                        if (this.aPortOutputNotify[port] !== undefined) {
                            Component.warning("Output port " + str.toHexWord(port) + " registered by " + this.aPortOutputNotify[port][0].id + ", ignoring " + component.id);
                            continue;
                        }
                        this.aPortOutputNotify[port] = [component, fn, false, false];
                        if (MAXDEBUG) this.log("addPortOutputNotify(" + str.toHexWord(port) + "," + component.id + ")");
                    }
                }
            };
            
            /**
             * addPortOutputTable(component, table, offset)
             *
             * Add port output-notification handlers from the specified table (a batch version of addPortOutputNotify)
             *
             * @this {Bus}
             * @param {Component} component
             * @param {Object} table
             * @param {number} [offset] is an optional port offset
             */
            Bus.prototype.addPortOutputTable = function(component, table, offset)
            {
                if (offset === undefined) offset = 0;
                for (var port in table) {
                    this.addPortOutputNotify(+port + offset, +port + offset, component, table[port]);
                }
            };
            
            /**
             * checkPortOutputNotify(port, bOut, addrLIP)
             *
             * @this {Bus}
             * @param {number} port
             * @param {number} bOut
             * @param {number} [addrLIP] is the LIP value at the time of the output
             */
            Bus.prototype.checkPortOutputNotify = function(port, bOut, addrLIP)
            {
                var aNotify = this.aPortOutputNotify[port];
                if (aNotify !== undefined) {
                    if (aNotify[1]) {
                        aNotify[1].call(aNotify[0], port, bOut, addrLIP);
                    }
                    if (DEBUGGER && this.dbg && this.fPortOutputBreakAll != aNotify[2]) {
                        this.dbg.checkPortOutput(port, bOut);
                    }
                }
                else {
                    if (DEBUGGER && this.dbg) {
                        this.dbg.messageIO(this, port, bOut, addrLIP);
                        if (this.fPortOutputBreakAll) this.dbg.checkPortOutput(port, bOut);
                    }
                }
            };
            
            /**
             * removePortOutputNotify(start, end, component, fn)
             *
             * Remove a port output-notification handler from the list of such handlers (to be ENABLED later if needed)
             *
             * @this {Bus}
             * @param {number} start address
             * @param {number} end address
             * @param {Component} component
             * @param {function(number,number)} fn of previously added handler
             *
            Bus.prototype.removePortOutputNotify = function(start, end, component, fn)
             {
                for (var port = start; port < end; port++) {
                    if (this.aPortOutputNotify[port] && this.aPortOutputNotify[port][0] == component && this.aPortOutputNotify[port][1] == fn) {
                        this.aPortOutputNotify[port] = undefined;
                    }
                }
            };
             */
            
            /**
             * reportError(op, addr, size)
             *
             * @this {Bus}
             * @param {number} op
             * @param {number} addr
             * @param {number} size
             * @return {boolean} false
             */
            Bus.prototype.reportError = function(op, addr, size)
            {
                Component.error("Memory block error (" + op + "," + str.toHex(addr) + "," + str.toHex(size) + ")");
                return false;
            };
            
            if (typeof module !== 'undefined') module.exports = Bus;
            
          • chipset.js
            /**
             * @fileoverview Implements the PCjs ChipSet component.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Sep-14
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var str         = require("../../shared/lib/strlib");
                var usr         = require("../../shared/lib/usrlib");
                var web         = require("../../shared/lib/weblib");
                var Component   = require("../../shared/lib/component");
                var Interrupts  = require("./interrupts");
                var Messages    = require("./messages");
                var State       = require("./state");
            }
            
            /**
             * ChipSet(parmsChipSet)
             *
             * The ChipSet component has the following component-specific (parmsChipSet) properties:
             *
             *      model:          "5150", "5160", "5170" or "deskpro386" (should be a member of ChipSet.MODELS)
             *      sw1:            8-character binary string representing the SW1 DIP switches (SW1[1-8])
             *      sw2:            8-character binary string representing the SW2 DIP switches (SW2[1-8]) (MODEL_5150 only)
             *      sound:          true to enable (experimental) sound support (default); false to disable
             *      scaleTimers:    true to divide timer cycle counts by the CPU's cycle multiplier (default is false)
             *      floppies:       array of floppy drive sizes in Kb (default is "[360, 360]" if no sw1 value provided)
             *      monitor:        none|tv|color|mono|ega|vga (if no sw1 value provided, default is "ega" for 5170, "mono" otherwise)
             *      rtcDate:        optional RTC date/time (in GMT) to use on reset; use the ISO 8601 format; eg: "2014-10-01T08:00:00"
             *
             * The conventions used for the sw1 and sw2 strings are that the left-most character represents DIP switch [1],
             * the right-most character represents DIP switch [8], and "1" means the DIP switch is ON and "0" means it is OFF.
             *
             * Internally, we convert the above strings into binary values that the 8255A PPI returns, where DIP switch [1]
             * is bit 0 and DIP switch [8] is bit 7, and 0 indicates the switch is ON and 1 indicates it is OFF.
             *
             * For reference, here's how the SW1 and SW2 switches correspond to the internal 8255A PPI bit values:
             *
             *      SW1[1]    (bit 0)     "0xxxxxxx" (1):  IPL,  "1xxxxxxx" (0):  No IPL
             *      SW1[2]    (bit 1)     reserved
             *      SW1[3,4]  (bits 3-2)  "xx11xxxx" (00): 16Kb, "xx01xxxx" (01): 32Kb,  "xx10xxxx" (10): 48Kb,  "xx00xxxx" (11): 64Kb
             *      SW1[5,6]  (bits 5-4)  "xxxx11xx" (00): none, "xxxx01xx" (01): tv,    "xxxx10xx" (10): color, "xxxx00xx" (11): mono
             *      SW1[7,8]  (bits 7-6)  "xxxxxx11" (00): 1 FD, "xxxxxx01" (01): 2 FD,  "xxxxxx10" (10): 3 FD,  "xxxxxx00" (11): 4 FD
             *
             * Note: FD refers to floppy drive, and IPL refers to an "Initial Program Load" floppy drive.
             *
             *      SW2[1-4]    (bits 3-0)  "NNNNxxxx": number of 32Kb blocks of I/O expansion RAM present
             *
             * TODO: There are cryptic references to SW2[5] in the original (5150) TechRef, and apparently the 8255A PPI can
             * be programmed to return it (which we support), but its purpose remains unclear to me (see PPI_B.ENABLE_SW2).
             *
             * For example, sw1="01110011" indicates that all SW1 DIP switches are ON, except for SW1[1], SW1[5] and SW1[6],
             * which are OFF.  Internally, the order of these bits must reversed (to 11001110) and then inverted (to 00110001)
             * to yield the value that the 8255A PPI returns.  Reading the final value right-to-left, 00110001 indicates an
             * IPL floppy drive, 1X of RAM (where X is 16Kb on a MODEL_5150 and 64Kb on a MODEL_5160), MDA, and 1 floppy drive.
             *
             * WARNING: It is possible to set SW1 to indicate more memory than the RAM component has been configured to provide.
             * This is a configuration error which will cause the machine to crash after reporting a "201" error code (memory
             * test failure), which is presumably what a real machine would do if it was similarly misconfigured.  Surprisingly,
             * the BIOS forges ahead, setting SP to the top of the memory range indicated by SW1 (via INT 0x12), but the lack of
             * a valid stack causes the system to crash after the next IRET.  The BIOS should have either halted or modified
             * the actual memory size to match the results of the memory test.
             *
             * This module provides support for many of the following components (except where a separate component is noted).
             * This list is taken from p.1-8 ("System Unit") of the IBM 5160 (PC XT) Technical Reference Manual (as revised
             * April 1983), only because I didn't see a similar listing in the original 5150 TechRef.
             *
             *      Port(s)         Description
             *      -------         -----------
             *      000-00F         DMA Chip 8237A-5                                [see below]
             *      020-021         Interrupt 8259A                                 [see below]
             *      040-043         Timer 8253-5                                    [see below]
             *      060-063         PPI 8255A-5                                     [see below]
             *      080-083         DMA Page Registers                              [see below]
             *          0Ax [1]     NMI Mask Register                               [see below]
             *          0Cx         Reserved
             *          0Ex         Reserved
             *      200-20F         Game Control
             *      210-217         Expansion Unit
             *      220-24F         Reserved
             *      278-27F         Reserved
             *      2F0-2F7         Reserved
             *      2F8-2FF         Asynchronous Communications (Secondary)         [see the SerialPort component]
             *      300-31F         Prototype Card
             *      320-32F         Hard Drive Controller (XTC)                     [see the HDC component]
             *      378-37F         Printer
             *      380-38C [2]     SDLC Communications
             *      380-389 [2]     Binary Synchronous Communications (Secondary)
             *      3A0-3A9         Binary Synchronous Communications (Primary)
             *      3B0-3BF         IBM Monochrome Display/Printer                  [see the Video component]
             *      3C0-3CF         Reserved
             *      3D0-3DF         Color/Graphics (Motorola 6845)                  [see the Video component]
             *      3EO-3E7         Reserved
             *      3FO-3F7         Floppy Drive Controller                         [see the FDC component]
             *      3F8-3FF         Asynchronous Communications (Primary)           [see the SerialPort component]
             *
             * [1] At power-on time, NMI is masked off, perhaps because models 5150 and 5160 also tie coprocessor
             * interrupts to NMI.  Suppressing NMI by default seems odd, because that would also suppress memory
             * parity errors.  TODO: Determine whether "power-on time" refers to the initial power-on state of the
             * NMI Mask Register or the state that the BIOS "POST" (Power-On Self-Test) sets.
             *
             * [2] These devices cannot be used together since their port addresses overlap.
             *
             *      MODEL_5170      Description
             *      ----------      -----------
             *          070 [3]     CMOS Address                                    ChipSet.CMOS.ADDR.PORT
             *          071         CMOS Data                                       ChipSet.CMOS.DATA.PORT
             *          0F0         Coprocessor Clear Busy (output 0x00)
             *          0F1         Coprocessor Reset (output 0x00)
             *      1F0-1F7         Hard Drive Controller (ATC)                     [see the HDC component]
             *
             * [3] Port 0x70 doubles as the NMI Mask Register: output a CMOS address with bit 7 clear to enable NMI
             * or with bit 7 set to disable NMI (apparently the inverse of the older NMI Mask Register at port 0xA0).
             * Also, apparently unlike previous models, the MODEL_5170 POST leaves NMI enabled.  And fortunately, the
             * coprocessor interrupt line is no longer tied to NMI (it uses IRQ 13).
             *
             * @constructor
             * @extends Component
             * @param {Object} parmsChipSet
             */
            function ChipSet(parmsChipSet)
            {
                Component.call(this, "ChipSet", parmsChipSet, ChipSet, Messages.CHIPSET);
            
                this.model = parmsChipSet['model'];
                this.model = this.model && ChipSet.MODELS[this.model] || ChipSet.MODEL_5150;
            
                /*
                 * SW1 describes the number of floppy drives, the amount of base memory, the primary monitor type,
                 * and (on the MODEL_5160) whether or not a coprocessor is installed.  If no SW1 settings are provided,
                 * we look for individual 'floppies' and 'monitor' settings and build a default SW1 value.
                 *
                 * The defaults below select max memory, monochrome monitor (EGA monitor for MODEL_5170), and two floppies.
                 * Don't get too excited about "max memory" either: on a MODEL_5150, the max was 64Kb, and on a MODEL_5160,
                 * the max was 256Kb.  However, the RAM component is free to install as much base memory as it likes,
                 * overriding the SW1 memory setting.
                 *
                 * Given that the ROM BIOS is hard-coded to load boot sectors @0000:7C00, the minimum amount of system RAM
                 * required to boot is therefore 32Kb.  Whether that's actually enough to run any or all versions of PC-DOS is
                 * a separate question.  FYI, with only 16Kb, the ROM BIOS will still try to boot, and fail miserably.
                 */
                this.sw1Init = 0;
                var sw1 = parmsChipSet['sw1'];
                if (sw1) {
                    this.sw1Init = this.parseSwitches(sw1, ChipSet.PPI_SW.MEMORY.X4 | ChipSet.PPI_SW.MONITOR.MONO);
                } else {
                    this.aFloppyDrives = [360, 360];
                    var aFloppyDrives = parmsChipSet['floppies'];
                    if (aFloppyDrives && aFloppyDrives.length) this.aFloppyDrives = aFloppyDrives;
                    var nDrives = this.aFloppyDrives.length;
                    if (nDrives) {
                        this.sw1Init |= ChipSet.PPI_SW.FDRIVE.IPL;
                        nDrives--;
                        this.sw1Init |= ((nDrives & 0x3) << ChipSet.PPI_SW.FDRIVE.SHIFT);
                    }
                    var sMonitor = parmsChipSet['monitor'] || (this.model < ChipSet.MODEL_5170? "mono" : "ega");
                    if (sMonitor && ChipSet.aMonitorSwitches[sMonitor] !== undefined) {
                        this.sw1Init |= (ChipSet.aMonitorSwitches[sMonitor] << ChipSet.PPI_SW.MONITOR.SHIFT);
                    }
                }
            
                /*
                 * SW2 describes the number of 32Kb blocks of I/O expansion RAM that's present in the system. The MODEL_5150
                 * ROM BIOS only checked/supported the first four switches, so the maximum amount of additional RAM specifiable
                 * was 15 * 32Kb, or 480Kb.  With a maximum of 64Kb on the motherboard, the MODEL_5150 ROM BIOS could support
                 * a grand total of 544Kb.
                 *
                 * For MODEL_5160 (PC XT) and up, memory expansion cards had their own configuration switches, and the motherboard
                 * SW2 switches for I/O expansion RAM were eliminated.  Instead, the ROM BIOS scans the entire address space
                 * (up to 0xA0000) looking for additional memory.  As a result, the only mechanism we provide for adding RAM
                 * (above the maximum of 256Kb supported on the motherboard) is the "size" parameter of the RAM component.
                 *
                 * NOTE: If you use the "size" parameter, you will not be able to dynamically alter the memory configuration;
                 * the RAM component will ignore any changes to SW1.
                 */
                this.sw2Init = this.parseSwitches(parmsChipSet['sw2'] || "11110000", 0);
            
                /*
                 * The SW1 memory setting is actually just a multiplier: it's multiplied by 16Kb on a MODEL_5150, 64Kb otherwise.
                 */
                this.kbSW = (this.model == ChipSet.MODEL_5150? 16 : 64);
            
                this.cDMACs = this.cPICs = 1;
                if (this.model >= ChipSet.MODEL_5170) {
                    this.cDMACs = this.cPICs = 2;
                }
            
                this.fScaleTimers = parmsChipSet['scaleTimers'] || false;
                this.sRTCDate = parmsChipSet['rtcDate'];
            
                /*
                 * Here, I'm finally getting around to trying the Web Audio API.  Fortunately, based on what little I know about
                 * sound generation, using the API to make the same noises as the IBM PC speaker seems straightforward.
                 *
                 * To start, we create an audio context, unless the 'sound' parameter has been explicitly set to false.
                 *
                 * From:
                 *
                 *      http://developer.apple.com/library/safari/#documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/PlayingandSynthesizingSounds/PlayingandSynthesizingSounds.html
                 *
                 * "Similar to how HTML5 canvas requires a context on which lines and curves are drawn, Web Audio requires an audio context
                 *  on which sounds are played and manipulated. This context will be the parent object of further audio objects to come....
                 *  Your audio context is typically created when your page initializes and should be long-lived. You can play multiple sounds
                 *  coming from multiple sources within the same context, so it is unnecessary to create more than one audio context per page."
                 */
                this.fSpeaker = false;
                if (parmsChipSet['sound']) {
                    this.classAudio = this.contextAudio = null;
                    if (window) {
                        this.classAudio = window['AudioContext'] || window['webkitAudioContext'];
                    }
                    if (this.classAudio) {
                        this.contextAudio = new this.classAudio();
                    } else {
                        if (DEBUG) this.log("AudioContext not available");
                    }
                }
            
                /*
                 * I used to defer ChipSet's reset() to powerUp(), which then gave us the option of doing either
                 * reset() OR restore(), instead of both.  However, on MODEL_5170 machines, the initial CMOS data
                 * needs to be created earlier, so that when other components are initializing their state (eg, when
                 * HDC calls setCMOSDriveType() or RAM calls addCMOSMemory()), the CMOS will be ready to take their calls.
                 */
                this.reset(true);
            
                this.setReady();
            }
            
            Component.subclass(ChipSet);
            
            /*
             * Supported model numbers
             *
             * Unless otherwise noted, all BIOS references refer to the *original* BIOS released with each model.
             */
            ChipSet.MODEL_5150      = 5150;         // used in reference to the 1st 5150 BIOS, dated Apr 24, 1981
            ChipSet.MODEL_5160      = 5160;         // used in reference to the 1st 5160 BIOS, dated Nov 8, 1982
            ChipSet.MODEL_5170      = 5170;         // used in reference to the 1st 5170 BIOS, dated Jan 10, 1984
            
            /*
             * The following are fake model numbers, used only to document issues/features in later IBM PC AT BIOS revisions.
             */
            ChipSet.MODEL_5170_REV2 = 5170.2;       // used in reference to the 2nd 5170 BIOS, dated Jun 10, 1985
            ChipSet.MODEL_5170_REV3 = 5170.3;       // used in reference to the 3rd 5170 BIOS, dated Nov 15, 1985
            
            /*
             * The following are even more fake model numbers, as we begin to depart from the IBM lineage.  All that
             * really matters at this point is that MODEL_DESKPRO386 > MODEL_5170.
             */
            ChipSet.MODEL_DESKPRO386 = 5180;
            
            /*
             * Last but not least, a complete list of supported model strings, and corresponding internal model numbers.
             */
            ChipSet.MODELS = {
                "5150":         ChipSet.MODEL_5150,
                "5160":         ChipSet.MODEL_5160,
                "5170":         ChipSet.MODEL_5170,
                "deskpro386":   ChipSet.MODEL_DESKPRO386
            };
            
            /*
             * Values returned by ChipSet.getSWVideoMonitor()
             */
            ChipSet.MONITOR = {
                NONE:               0,
                TV:                 1,  // Composite monitor (lower resolution; no support)
                COLOR:              2,  // Color Display (5153)
                MONO:               3,  // Monochrome Display (5151)
                EGACOLOR:           4,  // Enhanced Color Display (5154) in High-Res Mode
                EGAEMULATION:       6,  // Enhanced Color Display (5154) in Emulation Mode
                VGACOLOR:           7   // VGA Color Display
            };
            
            /*
             * Lookup table for converting ChipSet "monitor" values into the corresponding SW1 switch bits
             * (they must be shifted left by ChipSet.PPI_SW.MONITOR.SHIFT before OR'ing them into sw1/sw1Init).
             */
            ChipSet.aMonitorSwitches = {
                "none":             0x0,
                "tv":               0x1,
                "color":            0x2,
                "mono":             0x3,
                "ega":              0x0,
                "vga":              0x0
            };
            
            /*
             *  8237A DMA Controller (DMAC) I/O ports
             *
             *  MODEL_5150 and up uses DMA channel 0 for memory refresh cycles and channel 2 for the FDC.
             *
             *  MODEL_5160 and up uses DMA channel 3 for HDC transfers (XTC only).
             *
             *  DMA0 refers to the original DMA controller found on all models, and DMA1 refers to the additional
             *  controller found on MODEL_5170 and up; channel 4 on DMA1 is used to "cascade" channels 0-3 from DMA0,
             *  so only channels 5-7 are available on DMA1.
             *
             *  For FDC DMA notes, refer to http://wiki.osdev.org/ISA_DMA
             *  For general DMA notes, refer to http://www.freebsd.org/doc/en/books/developers-handbook/dma.html
             *
             *  TODO: Determine why the MODEL_5150 ROM BIOS sets the DMA channel 1 page register (port 0x83) to zero.
             */
            ChipSet.DMA0 = {
                INDEX:              0,
                PORT: {
                    CH0_ADDR:       0x00,   // OUT: starting address        IN: current address
                    CH0_COUNT:      0x01,   // OUT: starting word count     IN: remaining word count
                    CH1_ADDR:       0x02,   // OUT: starting address        IN: current address
                    CH1_COUNT:      0x03,   // OUT: starting word count     IN: remaining word count
                    CH2_ADDR:       0x04,   // OUT: starting address        IN: current address
                    CH2_COUNT:      0x05,   // OUT: starting word count     IN: remaining word count
                    CH3_ADDR:       0x06,   // OUT: starting address        IN: current address
                    CH3_COUNT:      0x07,   // OUT: starting word count     IN: remaining word count
                    CMD_STATUS:     0x08,   // OUT: command register        IN: status register
                    REQUEST:        0x09,
                    MASK:           0x0A,
                    MODE:           0x0B,
                    RESET_FF:       0x0C,   // reset flip-flop
                    MASTER_CLEAR:   0x0D,   // master clear
                    MASK_CLEAR:     0x0E,   // TODO: Provide handlers
                    MASK_ALL:       0x0F,   // TODO: Provide handlers
                    CH2_PAGE:       0x81,   // OUT: DMA channel 2 page register
                    CH3_PAGE:       0x82,   // OUT: DMA channel 3 page register
                    CH1_PAGE:       0x83,   // OUT: DMA channel 1 page register
                    CH0_PAGE:       0x87    // OUT: DMA channel 0 page register (unusable; See "The Inside Out" book, p.246)
                }
            };
            ChipSet.DMA1 = {
                INDEX:              1,
                PORT: {
                    CH6_PAGE:       0x89,   // OUT: DMA channel 6 page register (MODEL_5170)
                    CH7_PAGE:       0x8A,   // OUT: DMA channel 7 page register (MODEL_5170)
                    CH5_PAGE:       0x8B,   // OUT: DMA channel 5 page register (MODEL_5170)
                    CH4_PAGE:       0x8F,   // OUT: DMA channel 4 page register (MODEL_5170; unusable; aka "Refresh" page register?)
                    CH4_ADDR:       0xC0,   // OUT: starting address        IN: current address
                    CH4_COUNT:      0xC2,   // OUT: starting word count     IN: remaining word count
                    CH5_ADDR:       0xC4,   // OUT: starting address        IN: current address
                    CH5_COUNT:      0xC6,   // OUT: starting word count     IN: remaining word count
                    CH6_ADDR:       0xC8,   // OUT: starting address        IN: current address
                    CH6_COUNT:      0xCA,   // OUT: starting word count     IN: remaining word count
                    CH7_ADDR:       0xCC,   // OUT: starting address        IN: current address
                    CH7_COUNT:      0xCE,   // OUT: starting word count     IN: remaining word count
                    CMD_STATUS:     0xD0,   // OUT: command register        IN: status register
                    REQUEST:        0xD2,
                    MASK:           0xD4,
                    MODE:           0xD6,
                    RESET_FF:       0xD8,   // reset flip-flop
                    MASTER_CLEAR:   0xDA,   // master clear
                    MASK_CLEAR:     0xDC,   // TODO: Provide handlers
                    MASK_ALL:       0xDE    // TODO: Provide handlers
                }
            };
            
            ChipSet.DMA_CMD = {
                M2M_ENABLE:         0x01,
                CH0HOLD_ENABLE:     0x02,
                CTRL_DISABLE:       0x04,
                COMP_TIMING:        0x08,
                ROT_PRIORITY:       0x10,
                EXT_WRITE_SEL:      0x20,
                DREQ_ACTIVE_LO:     0x40,
                DACK_ACTIVE_HI:     0x80
            };
            
            ChipSet.DMA_STATUS = {
                CH0_TC:             0x01,   // Channel 0 has reached Terminal Count (TC)
                CH1_TC:             0x02,   // Channel 1 has reached Terminal Count (TC)
                CH2_TC:             0x04,   // Channel 2 has reached Terminal Count (TC)
                CH3_TC:             0x08,   // Channel 3 has reached Terminal Count (TC)
                ALL_TC:             0x0f,   // all TC bits are cleared whenever DMA_STATUS is read
                CH0_REQ:            0x10,   // Channel 0 DMA requested
                CH1_REQ:            0x20,   // Channel 1 DMA requested
                CH2_REQ:            0x40,   // Channel 2 DMA requested
                CH3_REQ:            0x80    // Channel 3 DMA requested
            };
            
            ChipSet.DMA_MASK = {
                CHANNEL:            0x03,
                CHANNEL_SET:        0x04
            };
            
            ChipSet.DMA_MODE = {
                CHANNEL:            0x03,   // bits 0-1 select 1 of 4 possible channels
                TYPE:               0x0C,   // bits 2-3 select 1 of 3 valid (4 possible) transfer types
                TYPE_VERIFY:        0x00,   // pseudo transfer (generates addresses, responds to EOP, but nothing is moved)
                TYPE_WRITE:         0x04,   // write to memory (move data FROM an I/O device; eg, reading a sector from a disk)
                TYPE_READ:          0x08,   // read from memory (move data TO an I/O device; eg, writing a sector to a disk)
                AUTOINIT:           0x10,
                DECREMENT:          0x20,   // clear for INCREMENT
                MODE:               0xC0,   // bits 6-7 select 1 of 4 possible transfer modes
                MODE_DEMAND:        0x00,
                MODE_SINGLE:        0x40,
                MODE_BLOCK:         0x80,
                MODE_CASCADE:       0xC0
            };
            
            ChipSet.DMA_REFRESH   = 0x00;   // DMA channel assigned to memory refresh
            ChipSet.DMA_FDC       = 0x02;   // DMA channel assigned to the Floppy Drive Controller (FDC)
            ChipSet.DMA_HDC       = 0x03;   // DMA channel assigned to the Hard Drive Controller (HDC; XTC only)
            
            /*
             * 8259A Programmable Interrupt Controller (PIC) I/O ports
             *
             * Internal registers:
             *
             *      ICW1    Initialization Command Word 1 (sent to port ChipSet.PIC_LO)
             *      ICW2    Initialization Command Word 2 (sent to port ChipSet.PIC_HI)
             *      ICW3    Initialization Command Word 3 (sent to port ChipSet.PIC_HI)
             *      ICW4    Initialization Command Word 4 (sent to port ChipSet.PIC_HI)
             *      IMR     Interrupt Mask Register
             *      IRR     Interrupt Request Register
             *      ISR     Interrupt Service Register
             *      IRLow   (IR having lowest priority; IR+1 will have highest priority; default is 7)
             *
             * Note that ICW2 effectively contains the starting IDT vector number (ie, for IRQ 0),
             * which must be multiplied by 4 to calculate the vector offset, since every vector is 4 bytes long.
             *
             * Also, since the low 3 bits of ICW2 are ignored in 8086/8088 mode (ie, they are effectively
             * treated as zeros), this means that the starting IDT vector can only be a multiple of 8.
             *
             * So, if ICW2 is set to 0x08, the starting vector number (ie, for IRQ 0) will be 0x08, and the
             * 4-byte address for the corresponding ISR will be located at offset 0x20 in the real-mode IDT.
             *
             * ICW4 is typically set to 0x09, indicating 8086 mode, non-automatic EOI, buffered/slave mode.
             *
             * TODO: Determine why the original ROM BIOS chose buffered/slave over buffered/master.
             * Did it simply not matter in pre-AT systems with only one PIC, or am I misreading something?
             *
             * TODO: Consider support for level-triggered PIC interrupts, even though the original IBM PCs
             * (up through MODEL_5170) used only edge-triggered interrupts.
             */
            ChipSet.PIC0 = {                // all models: the "master" PIC
                INDEX:              0,
                PORT_LO:            0x20,
                PORT_HI:            0x21
            };
            
            ChipSet.PIC1 = {                // MODEL_5170 and up: the "slave" PIC
                INDEX:              1,
                PORT_LO:            0xA0,
                PORT_HI:            0xA1
            };
            
            ChipSet.PIC_LO = {              // ChipSet.PIC1.PORT_LO or ChipSet.PIC2.PORT_LO
                ICW1:               0x10,   // set means ICW1
                ICW1_ICW4:          0x01,   // ICW4 needed (otherwise ICW4 must be sent)
                ICW1_SNGL:          0x02,   // single PIC (and therefore no ICW3; otherwise there is another "cascaded" PIC)
                ICW1_ADI:           0x04,   // call address interval is 4 (otherwise 8; presumably ignored in 8086/8088 mode)
                ICW1_LTIM:          0x08,   // level-triggered interrupt mode (otherwise edge-triggered mode, which is what PCs use)
                OCW2:               0x00,   // bit 3 (PIC_LO.OCW3) and bit 4 (ChipSet.PIC_LO.ICW1) are clear in an OCW2 command byte
                OCW2_IR_LVL:        0x07,
                OCW2_OP_MASK:       0xE0,   // of the following valid OCW2 operations, the first 4 are EOI commands (all have ChipSet.PIC_LO.OCW2_EOI set)
                OCW2_EOI:           0x20,   // non-specific EOI (end-of-interrupt)
                OCW2_EOI_SPEC:      0x60,   // specific EOI
                OCW2_EOI_ROT:       0xA0,   // rotate on non-specific EOI
                OCW2_EOI_ROTSPEC:   0xE0,   // rotate on specific EOI
                OCW2_SET_ROTAUTO:   0x80,   // set rotate in automatic EOI mode
                OCW2_CLR_ROTAUTO:   0x00,   // clear rotate in automatic EOI mode
                OCW2_SET_PRI:       0xC0,   // bits 0-2 specify the lowest priority interrupt
                OCW3:               0x08,   // bit 3 (PIC_LO.OCW3) is set and bit 4 (PIC_LO.ICW1) clear in an OCW3 command byte (bit 7 should be clear, too)
                OCW3_READ_IRR:      0x02,   // read IRR register
                OCW3_READ_ISR:      0x03,   // read ISR register
                OCW3_READ_CMD:      0x03,
                OCW3_POLL_CMD:      0x04,   // poll
                OCW3_SMM_RESET:     0x40,   // special mask mode: reset
                OCW3_SMM_SET:       0x60,   // special mask mode: set
                OCW3_SMM_CMD:       0x60
            };
            
            ChipSet.PIC_HI = {              // ChipSet.PIC1.PORT_HI or ChipSet.PIC2.PORT_HI
                ICW2_VECTOR:        0xF8,   // starting vector number (bits 0-2 are effectively treated as zeros in 8086/8088 mode)
                ICW4_8086:          0x01,
                ICW4_AUTO_EOI:      0x02,
                ICW4_MASTER:        0x04,
                ICW4_BUFFERED:      0x08,
                ICW4_FULLY_NESTED:  0x10,
                OCW1_IMR:           0xFF
            };
            
            /*
             * The priorities of IRQs 0-7 are normally high to low, unless the master PIC has been reprogrammed.
             * Also, if a slave PIC is present, the priorities of IRQs 8-15 fall between the priorities of IRQs 1 and 3.
             *
             * As the MODEL_5170 TechRef states:
             *
             *      "Interrupt requests are prioritized, with IRQ9 through IRQ12 and IRQ14 through IRQ15 having the
             *      highest priority (IRQ9 is the highest) and IRQ3 through IRQ7 having the lowest priority (IRQ7 is
             *      the lowest).
             *
             *      Interrupt 13 (IRQ.COPROC) is used on the system board and is not available on the I/O channel.
             *      Interrupt 8 (IRQ.RTC) is used for the real-time clock."
             *
             * This priority scheme is a byproduct of IRQ8 through IRQ15 (slave PIC interrupts) being tied to IRQ2 of
             * the master PIC.  As a result, the two other system board interrupts, IRQ0 and IRQ1, continue to have the
             * highest priority, by default.
             */
            ChipSet.IRQ = {
                TIMER0:             0x00,
                KBD:                0x01,
                SLAVE:              0x02,   // MODEL_5170
                COM2:               0x03,
                COM1:               0x04,
                XTC:                0x05,   // MODEL_5160 uses IRQ 5 for HDC (XTC version)
                LPT2:               0x05,   // MODEL_5170 uses IRQ 5 for LPT2
                FDC:                0x06,
                LPT1:               0x07,
                RTC:                0x08,   // MODEL_5170
                IRQ2:               0x09,   // MODEL_5170
                COPROC:             0x0D,   // MODEL_5170
                ATC:                0x0E    // MODEL_5170 uses IRQ 14 for HDC (ATC version)
            };
            
            /*
             * 8253 Programmable Interval Timer (PIT) I/O ports
             *
             * Although technically, a PIT provides 3 "counters" rather than 3 "timers", we have
             * adopted IBM's TechRef nomenclature, which refers to the PIT's counters as TIMER0,
             * TIMER1, and TIMER2.  For machines with a second PIT (eg, the DeskPro 386), we refer
             * to those additional counters as TIMER3, TIMER4, and TIMER5.
             *
             * In addition, if there's a need to refer to a specfic PIT, use PIT0 for the first PIT
             * and PIT1 for the second.  This mirrors how we refer to multiple DMA controllers
             * (eg, DMA0 and DMA1) and multiple PICs (eg, PIC0 and PIC1).
             *
             * This differs from Compaq's nomenclature, which used "Timer 1" to refer to the first
             * PIT, and "Timer 2" for the second PIT, and then referred to "Counter 0", "Counter 1",
             * and "Counter 2" within each PIT.
             */
            ChipSet.PIT0 = {
                PORT:               0x40,
                TIMER0:             0,      // used for time-of-day (prior to MODEL_5170)
                TIMER1:             1,      // used for memory refresh
                TIMER2:             2       // used for speaker tone generation
            };
            
            ChipSet.PIT1 = {
                PORT:               0x48,   // MODEL_DESKPRO386 only
                TIMER3:             0,      // used for fail-safe clock
                TIMER4:             1,      // N/A
                TIMER5:             2       // used for refresher request extend/speed control
            };
            
            ChipSet.PIT_CTRL = {
                PORT1:              0x43,   // write-only control register (use the Read-Back command to get status)
                PORT2:              0x4B,   // write-only control register (use the Read-Back command to get status)
                BCD:                0x01,
                MODE:               0x0E,
                MODE0:              0x00,   // interrupt on Terminal Count (TC)
                MODE1:              0x02,   // programmable one-shot
                MODE2:              0x04,   // rate generator
                MODE3:              0x06,   // square wave generator
                MODE4:              0x08,   // software-triggered strobe
                MODE5:              0x0A,   // hardware-triggered strobe
                RW:                 0x30,
                RW_LATCH:           0x00,
                RW_LSB:             0x10,
                RW_MSB:             0x20,
                RW_BOTH:            0x30,
                SC:                 0xC0,
                SC_CTR0:            0x00,
                SC_CTR1:            0x40,
                SC_CTR2:            0x80,
                SC_BACK:            0xC0
            };
            
            ChipSet.TIMER_TICKS_PER_SEC = 1193181;
            
            /*
             * 8255A Programmable Peripheral Interface (PPI) I/O ports, for Cassette/Speaker/Keyboard/SW1/etc
             *
             * Normally, 0x99 is written to PPI_CTRL.PORT, indicating that PPI_A.PORT and PPI_C.PORT are INPUT ports
             * and PPI_B.PORT is an OUTPUT port.
             *
             * However, the MODEL_5160 ROM BIOS initially writes 0x89 instead, making PPI_A.PORT an OUTPUT port.
             * I'm guessing that's just part of some "diagnostic mode", because all it writes to PPI_A.PORT are a series
             * of "checkpoint" values (ie, 0x01, 0x02, and 0x03) before updating PPI_CTRL.PORT with the usual 0x99.
             */
            ChipSet.PPI_A = {               // this.bPPIA (port 0x60)
                PORT:               0x60    // INPUT: keyboard scan code (PPI_B.CLEAR_KBD must be clear)
            };
            
            ChipSet.PPI_B = {               // this.bPPIB (port 0x61)
                PORT:               0x61,   // OUTPUT (although it has to be treated as INPUT, too: the keyboard interrupt handler reads it, OR's PPI_B.CLEAR_KBD, writes it, and then rewrites the original read value)
                CLK_TIMER2:         0x01,   // ALL: set to enable clock to TIMER2
                SPK_TIMER2:         0x02,   // ALL: set to connect output of TIMER2 to speaker (MODEL_5150: clear for cassette)
                ENABLE_SW2:         0x04,   // MODEL_5150: set to enable SW2[1-4] through PPI_C.PORT, clear to enable SW2[5]; MODEL_5160: unused (there is no SW2 switch block on the MODEL_5160 motherboard)
                CASS_MOTOR_OFF:     0x08,   // MODEL_5150: cassette motor off
                ENABLE_SW_HI:       0x08,   // MODEL_5160: clear to read SW1[1-4], set to read SW1[5-8]
                DISABLE_RW_MEM:     0x10,   // ALL: clear to enable RAM parity check, set to disable
                DISABLE_IO_CHK:     0x20,   // ALL: clear to enable I/O channel check, set to disable
                CLK_KBD:            0x40,   // ALL: clear to force keyboard clock low
                CLEAR_KBD:          0x80    // ALL: clear to enable keyboard scan codes (MODEL_5150: set to enable SW1 through PPI_A.PORT)
            };
            
            ChipSet.PPI_C = {               // this.bPPIC (port 0x62)
                PORT:               0x62,   // INPUT (see below)
                SW:                 0x0F,   // MODEL_5150: SW2[1-4] or SW2[5], depending on whether PPI_B.ENABLE_SW2 is set or clear; MODEL_5160: SW1[1-4] or SW1[5-8], depending on whether PPI_B.ENABLE_SW_HI is clear or set
                CASS_DATA_IN:       0x10,
                TIMER2_OUT:         0x20,
                IO_CHANNEL_CHK:     0x40,   // used by NMI handler to detect I/O channel errors
                RW_PARITY_CHK:      0x80    // used by NMI handler to detect R/W memory parity errors
            };
            
            ChipSet.PPI_CTRL = {            // this.bPPICtrl (port 0x63)
                PORT:               0x63,   // OUTPUT: initialized to 0x99, defining PPI_A and PPI_C as INPUT and PPI_B as OUTPUT
                A_IN:               0x10,
                B_IN:               0x02,
                C_IN_LO:            0x01,
                C_IN_HI:            0x08,
                B_MODE:             0x04,
                A_MODE:             0x60
            };
            
            /*
             * On the MODEL_5150, the following PPI_SW bits are exposed through PPI_A.
             *
             * On the MODEL_5160, either the low or high 4 bits are exposed through PPI_C.SW, if PPI_B.ENABLE_SW_HI is clear or set.
             */
            ChipSet.PPI_SW = {
                FDRIVE: {
                    IPL:            0x01,   // MODEL_5150: IPL ("Initial Program Load") floppy drive attached; MODEL_5160: "Loop on POST"
                    ONE:            0x00,   // 1 floppy drive attached (or 0 drives if PPI_SW.FDRIVE_IPL is not set -- MODEL_5150 only)
                    TWO:            0x40,   // 2 floppy drives attached
                    THREE:          0x80,   // 3 floppy drives attached
                    FOUR:           0xC0,   // 4 floppy drives attached
                    MASK:           0xC0,
                    SHIFT:          6
                },
                COPROC:             0x02,   // MODEL_5150: reserved; MODEL_5160: coprocessor installed
                MEMORY: {                   // MODEL_5150: "X" is 16Kb; MODEL_5160: "X" is 64Kb
                    X1:             0x00,   // 16Kb or 64Kb
                    X2:             0x04,   // 32Kb or 128Kb
                    X3:             0x08,   // 48Kb or 192Kb
                    X4:             0x0C,   // 64Kb or 256Kb
                    MASK:           0x0C,
                    SHIFT:          2
                },
                MONITOR: {
                    TV:             0x10,
                    COLOR:          0x20,
                    MONO:           0x30,
                    MASK:           0x30,
                    SHIFT:          4
                }
            };
            
            /*
             * 8042 Keyboard Controller I/O ports (MODEL_5170)
             *
             * On the MODEL_5170, port 0x60 is designated KBC.DATA rather than PPI_A, although the BIOS also refers to it
             * as "PORT_A: 8042 KEYBOARD SCAN/DIAG OUTPUTS").  This is the 8042's output buffer and should be read only when
             * KBC.STATUS.OUTBUFF_FULL is set.
             *
             * Similarly, port 0x61 is designated KBC.RWREG rather than PPI_B; the BIOS also refers to it as "PORT_B: 8042
             * READ WRITE REGISTER", but it is not otherwise discussed in the MODEL_5170 TechRef's 8042 documentation.
             *
             * There are brief references to bits 0 and 1 (KBC.RWREG.CLK_TIMER2 and KBC.RWREG.SPK_TIMER2), and the BIOS sets
             * bits 2-7 to "DISABLE PARITY CHECKERS" (principally KBC.RWREG.DISABLE_NMI, which are bits 2 and 3); why the BIOS
             * also sets bits 4-7 (or if those bits are even settable) is unclear, since it uses 11111100b rather than defined
             * constants.
             *
             * The bottom line: on a MODEL_5170, port 0x61 is still used for speaker control and parity checking, so we use
             * the same register (bPPIB) but install different I/O handlers.  It's also bi-directional: at one point, the BIOS
             * reads KBC.RWREG.REFRESH_BIT (bit 4) to verify that it's alternating.
             *
             * PPI_C and PPI_CTRL don't seem to be documented or used by the MODEL_5170 BIOS, so I'm assuming they're obsolete.
             *
             * NOTE: For more information on the 8042 Controller, including information on undocumented commands, refer to the
             * documents in /devices/pc/keyboard, as well as the following websites:
             *
             *      http://halicery.com/8042/8042_INTERN_TXT.htm
             *      http://www.os2museum.com/wp/ibm-pcat-8042-keyboard-controller-commands/
             */
            ChipSet.KBC = {
                DATA: {                     // this.b8042OutBuff (PPI_A on previous models, still referred to as "PORT A" by the MODEL_5170 BIOS)
                    PORT:           0x60,
                    CMD: {                  // this.b8042CmdData (KBC.DATA.CMD "data bytes" written to port 0x60, after writing a KBC.CMD byte to port 0x64)
                        INT_ENABLE: 0x01,   // generate an interrupt when the controller places data in the output buffer
                        SYS_FLAG:   0x04,   // this value is propagated to ChipSet.KBC.STATUS.SYS_FLAG
                        NO_INHIBIT: 0x08,   // disable inhibit function
                        NO_CLOCK:   0x10,   // disable keyboard by driving "clock" line low
                        PC_MODE:    0x20,
                        PC_COMPAT:  0x40    // generate IBM PC-compatible scan codes
                    },
                    SELF_TEST: {            // result of ChipSet.KBC.CMD.SELF_TEST command (0xAA)
                        OK:         0x55
                    },
                    INTF_TEST: {            // result of ChipSet.KBC.CMD.INTF_TEST command (0xAB)
                        OK:         0x00,   // no error
                        CLOCK_LO:   0x01,   // keyboard clock line stuck low
                        CLOCK_HI:   0x02,   // keyboard clock line stuck high
                        DATA_LO:    0x03,   // keyboard data line stuck low
                        DATA_HI:    0x04    // keyboard data line stuck high
                    }
                },
                INPORT: {                   // this.b8042InPort
                    COMPAQ_50MHZ:   0x01,   // 50Mhz system clock enabled (0=48Mhz); see Compaq 386/25 TechRef p2-106
                    UNDEFINED:      0x02,   // undefined
                    COMPAQ_NO80387: 0x04,   // 80387 coprocessor NOT installed; see Compaq 386/25 TechRef p2-106
                    COMPAQ_NOWEITEK:0x08,   // Weitek coprocessor NOT installed; see Compaq 386/25 TechRef p2-106
                    ENABLE_256KB:   0x10,   // enable 2nd 256Kb of system board RAM
                    COMPAQ_HISPEED: 0x10,   // high-speed enabled (0=auto); see Compaq 386/25 TechRef p2-106
                    MFG_OFF:        0x20,   // manufacturing jumper not installed
                    COMPAQ_DIP5OFF: 0x20,   // system board DIP switch #5 OFF (0=ON); see Compaq 386/25 TechRef p2-106
                    MONO:           0x40,   // monochrome monitor is primary display
                    COMPAQ_NONDUAL: 0x40,   // Compaq Dual-Mode monitor NOT installed; see Compaq 386/25 TechRef p2-106
                    KBD_UNLOCKED:   0x80    // keyboard not inhibited (in Compaq parlance: security lock is unlocked)
                },
                OUTPORT: {                  // this.b8042OutPort
                    NO_RESET:       0x01,   // set by default
                    A20_ON:         0x02,   // set by default
                    COMPAQ_SLOWD:   0x08,   // SL0WD* NOT asserted (refer to timer 2, counter 2); see Compaq 386/25 TechRef p2-105
                    OUTBUFF_FULL:   0x10,   // output buffer full
                    INBUFF_EMPTY:   0x20,   // input buffer empty
                    KBD_CLOCK:      0x40,   // keyboard clock (output)
                    KBD_DATA:       0x80    // keyboard data (output)
                },
                TESTPORT: {                 // generated "on the fly"
                    KBD_CLOCK:      0x01,   // keyboard clock (input)
                    KBD_DATA:       0x02    // keyboard data (input)
                },
                RWREG: {                    // this.bPPIB (since CLK_TIMER2 and SPK_TIMER2 are in both PPI_B and RWREG)
                    PORT:           0x61,
                    CLK_TIMER2:     0x01,   // set to enable clock to TIMER2 (R/W)
                    SPK_TIMER2:     0x02,   // set to connect output of TIMER2 to speaker (R/W)
                    COMPAQ_FSNMI:   0x04,   // set to disable RAM/FS NMI (R/W, DESKPRO386)
                    COMPAQ_IONMI:   0x08,   // set to disable IOCHK NMI (R/W, DESKPRO386)
                    DISABLE_NMI:    0x0C,   // set to disable IOCHK and RAM/FS NMI, clear to enable (R/W)
                    REFRESH_BIT:    0x10,   // 0 if RAM refresh occurring, 1 if RAM not in refresh cycle (R/O)
                    OUT_TIMER2:     0x20,   // state of TIMER2 output signal (R/O, DESKPRO386)
                    IOCHK_NMI:      0x40,   // IOCHK NMI (R/O); to reset, pulse bit 3 (0x08)
                    RAMFS_NMI:      0x80,   // RAM/FS (parity or fail-safe) NMI (R/O); to reset, pulse bit 2 (0x04)
                    NMI_ERROR:      0xC0
                },
                CMD: {                      // this.b8042InBuff (on write to port 0x64, interpret this as a CMD)
                    PORT:           0x64,
                    READ_CMD:       0x20,   // sends the current CMD byte (this.b8042CmdData) to KBC.DATA.PORT
                    WRITE_CMD:      0x60,   // followed by a command byte written to KBC.DATA.PORT (see KBC.DATA.CMD)
                    COMPAQ_SLOWD:   0xA3,   // enable system slow down; see Compaq 386/25 TechRef p2-111
                    COMPAQ_TOGGLE:  0xA4,   // toggle speed-control bit; see Compaq 386/25 TechRef p2-111
                    COMPAQ_SPCREAD: 0xA5,   // special read of "port 2"; see Compaq 386/25 TechRef p2-111
                    SELF_TEST:      0xAA,   // self-test (KBC.DATA.SELF_TEST.OK is placed in the output buffer if no errors)
                    INTF_TEST:      0xAB,   // interface test
                    DIAG_DUMP:      0xAC,   // diagnostic dump
                    DISABLE_KBD:    0xAD,   // disable keyboard
                    ENABLE_KBD:     0xAE,   // enable keyboard
                    READ_INPORT:    0xC0,   // read input port and place data in output buffer (use only if output buffer empty)
                    READ_OUTPORT:   0xD0,   // read output port and place data in output buffer (use only if output buffer empty)
                    WRITE_OUTPORT:  0xD1,   // next byte written to KBC.DATA.PORT (port 0x60) is placed in the output port (see KBC.OUTPORT)
                    READ_TEST:      0xE0,
                    PULSE_OUTPORT:  0xF0    // this is the 1st of 16 commands (0xF0-0xFF) that pulse bits 0-3 of the output port
                },
                STATUS: {                   // this.b8042Status (on read from port 0x64)
                    PORT:           0x64,
                    OUTBUFF_FULL:   0x01,
                    INBUFF_FULL:    0x02,   // set if the controller has received but not yet read data from the input buffer (not normally set)
                    SYS_FLAG:       0x04,
                    CMD_FLAG:       0x08,   // set on write to KBC.CMD (port 0x64), clear on write to KBC.DATA (port 0x60)
                    NO_INHIBIT:     0x10,   // (in Compaq parlance: security lock not engaged)
                    XMT_TIMEOUT:    0x20,
                    RCV_TIMEOUT:    0x40,
                    PARITY_ERR:     0x80,   // last byte of data received had EVEN parity (ODD parity is normally expected)
                    OUTBUFF_DELAY:  0x100
                }
            };
            
            /*
             * MC146818A RTC/CMOS Ports (MODEL_5170)
             *
             * Write a CMOS address to ChipSet.CMOS.ADDR.PORT, then read/write data from/to ChipSet.CMOS.DATA.PORT.
             *
             * The ADDR port also controls NMI: write an address with bit 7 clear to enable NMI or set to disable NMI.
             */
            ChipSet.CMOS = {
                ADDR: {                     // this.bCMOSAddr
                    PORT:           0x70,
                    RTC_SEC:        0x00,
                    RTC_SEC_ALRM:   0x01,
                    RTC_MIN:        0x02,
                    RTC_MIN_ALRM:   0x03,
                    RTC_HOUR:       0x04,
                    RTC_HOUR_ALRM:  0x05,
                    RTC_WEEK_DAY:   0x06,
                    RTC_MONTH_DAY:  0x07,
                    RTC_MONTH:      0x08,
                    RTC_YEAR:       0x09,
                    STATUSA:        0x0A,
                    STATUSB:        0x0B,
                    STATUSC:        0x0C,
                    STATUSD:        0x0D,
                    DIAG:           0x0E,
                    SHUTDOWN:       0x0F,
                    FDRIVE:         0x10,
                    HDRIVE:         0x12,
                    EQUIP:          0x14,
                    BASEMEM_LO:     0x15,
                    BASEMEM_HI:     0x16,   // the BASEMEM values indicate the total Kb of base memory, up to 0x280 (640Kb)
                    EXTMEM_LO:      0x17,
                    EXTMEM_HI:      0x18,   // the EXTMEM values indicate the total Kb of extended memory, up to 0x3C00 (15Mb)
                    CHKSUM_HI:      0x2E,
                    CHKSUM_LO:      0x2F,   // CMOS bytes included in the checksum calculation: 0x10-0x2D
                    EXTMEM2_LO:     0x30,
                    EXTMEM2_HI:     0x31,
                    CENTURY_DATE:   0x32,   // BCD value for the current century (eg, 0x19 for 20th century, 0x20 for 21st century)
                    BOOT_INFO:      0x33,   // 0x80 if 128Kb expansion memory installed, 0x40 if Setup Utility wants an initial setup message
                    MASK:           0x3F,
                    TOTAL:          0x40,
                    NMI_DISABLE:    0x80
                },
                DATA: {                     // this.abCMOSData
                    PORT:           0x71
                },
                STATUSA: {                  // abCMOSData[ChipSet.CMOS.ADDR.STATUSA]
                    UIP:            0x80,   // bit 7: 1 indicates Update-In-Progress, 0 indicates date/time ready to read
                    DV:             0x70,   // bits 6-4 (DV2-DV0) are programmed to 010 to select a 32.768Khz time base
                    RS:             0x0F    // bits 3-0 (RS3-RS0) are programmed to 0110 to select a 976.562us interrupt rate
                },
                STATUSB: {                  // abCMOSData[ChipSet.CMOS.ADDR.STATUSB]
                    SET:            0x80,   // bit 7: 1 to set any/all of the 14 time-bytes
                    PIE:            0x40,   // bit 6: 1 for Periodic Interrupt Enable
                    AIE:            0x20,   // bit 5: 1 for Alarm Interrupt Enable
                    UIE:            0x10,   // bit 4: 1 for Update Interrupt Enable
                    SQWE:           0x08,   // bit 3: 1 for Square Wave Enabled (as set by the STATUSA rate selection bits)
                    BINARY:         0x04,   // bit 2: 1 for binary Date Mode, 0 for BCD Date Mode
                    HOUR24:         0x02,   // bit 1: 1 for 24-hour mode, 0 for 12-hour mode
                    DST:            0x01    // bit 0: 1 for Daylight Savings Time enabled
                },
                STATUSC: {                  // abCMOSData[ChipSet.CMOS.ADDR.STATUSC]
                    IRQF:           0x80,   // bit 7: 1 indicates one or more of the following bits (PF, AF, UF) are set
                    PF:             0x40,   // bit 6: 1 indicates Periodic Interrupt
                    AF:             0x20,   // bit 5: 1 indicates Alarm Interrupt
                    UF:             0x10,   // bit 4: 1 indicates Update Interrupt
                    RESERVED:       0x0F
                },
                STATUSD: {                  // abCMOSData[ChipSet.CMOS.ADDR.STATUSD]
                    VRB:            0x80,   // bit 7: 1 indicates Valid RAM Bit (0 implies power was and/or is lost)
                    RESERVED:       0x7F
                },
                DIAG: {                     // abCMOSData[ChipSet.CMOS.ADDR.DIAG]
                    RTCFAIL:        0x80,   // bit 7: 1 indicates RTC lost power
                    CHKSUMFAIL:     0x40,   // bit 6: 1 indicates bad CMOS checksum
                    CONFIGFAIL:     0x20,   // bit 5: 1 indicates bad CMOS configuration info
                    MEMSIZEFAIL:    0x10,   // bit 4: 1 indicates memory size miscompare
                    HDRIVEFAIL:     0x08,   // bit 3: 1 indicates hard drive controller or drive init failure
                    TIMEFAIL:       0x04,   // bit 2: 1 indicates time failure
                    RESERVED:       0x03
                },
                FDRIVE: {                   // abCMOSData[ChipSet.CMOS.ADDR.FDRIVE]
                    D0_MASK:        0xF0,   // Drive 0 type in high nibble
                    D1_MASK:        0x0F,   // Drive 1 type in lower nibble
                    NONE:           0,      // no drive
                    /*
                     * There's at least one floppy drive type that IBM didn't bother defining a CMOS drive type for:
                     * single-sided drives that were only capable of storing 160Kb (or 180Kb when using 9 sectors/track).
                     * So, as you can see in getSWFloppyDriveType(), we lump all standard diskette capacities <= 360Kb
                     * into the FD360 bucket.
                     */
                    FD360:          1,      // 5.25-inch double-sided double-density (DSDD 48TPI) drive: 40 tracks, 9 sectors/track, 360Kb max
                    FD1200:         2,      // 5.25-inch double-sided high-density (DSHD 96TPI) drive: 80 tracks, 15 sectors/track, 1200Kb max
                    FD720:          3,      // 3.5-inch drive capable of storing 80 tracks and up to 9 sectors/track, 720Kb max
                    FD1440:         4       // 3.5-inch drive capable of storing 80 tracks and up to 18 sectors/track, 1440Kb max
                },
                /*
                 * HDRIVE types are defined by table in the HDC component, which uses setCMOSDriveType() to update the CMOS
                 */
                HDRIVE: {                   // abCMOSData[ChipSet.CMOS.ADDR.HDRIVE]
                    D0_MASK:        0xF0,   // Drive 0 type in high nibble
                    D1_MASK:        0x0F    // Drive 1 type in lower nibble
                },
                /*
                 * The CMOS equipment flags use the same format as the older PPI equipment flags
                 */
                EQUIP: {                    // abCMOSData[ChipSet.CMOS.ADDR.EQUIP]
                    MONITOR:        ChipSet.PPI_SW.MONITOR,         // PPI_SW.MONITOR.MASK == 0x30
                    COPROC:         ChipSet.PPI_SW.COPROC,          // PPI_SW.COPROC == 0x02
                    FDRIVE:         ChipSet.PPI_SW.FDRIVE           // PPI_SW.FDRIVE.IPL == 0x01 and PPI_SW.FDRIVE.MASK = 0xC0
                }
            };
            
            /*
             * DMA Page Registers
             *
             * The MODEL_5170 TechRef lists 0x80-0x9F as the range for DMA page registers, but that may be a bit
             * overbroad.  There are a total of 8 (7 usable) DMA channels on the MODEL_5170, each of which has the
             * following assigned DMA page registers:
             *
             *      Channel #   Page Reg
             *      ---------   --------
             *          0         0x87
             *          1         0x83
             *          2         0x81
             *          3         0x82
             *          4         0x8F (not usable; the 5170 TechRef refers to this as the "Refresh" page register)
             *          5         0x8B
             *          6         0x89
             *          7         0x8A
             *
             * That leaves 0x80, 0x84, 0x85, 0x86, 0x88, 0x8C, 0x8D and 0x8E unaccounted for in the range 0x80-0x8F.
             * (I'm saving the question of what, if anything, is available in the range 0x90-0x9F for another day.)
             *
             * As for port 0x80, the TechRef says:
             *
             *      "I/O address hex 080 is used as a diagnostic-checkpoint port or register.
             *      This port corresponds to a read/write register in the DMA page register (74LS612)."
             *
             * so I used to have dedicated handlers and storage (bMFGData) for the register at port 0x80, but I've since
             * appended it to abDMAPageSpare, an 8-element array that captures all I/O to the 8 unassigned (aka "spare")
             * DMA page registers.  The 5170 BIOS uses 0x80 as a "checkpoint" register, and the DESKPRO386 uses 0x84 in a
             * similar fashion.  The 5170 also contains "MFG_TST" code that uses other unassigned DMA page registers as
             * scratch registers, which come in handy when RAM hasn't been tested/initialized yet.
             *
             * Here's our mapping of entries in the abDMAPageSpare array to the unassigned ("spare") DMA page registers:
             *
             *      Index #     Page Reg
             *      --------    --------
             *          0         0x84
             *          1         0x85
             *          2         0x86
             *          3         0x88
             *          4         0x8C
             *          5         0x8D
             *          6         0x8E
             *          7         0x80
             *
             * The only reason port 0x80 is out of sequence (ie, at the end of the array, at index 7 instead of index 0) is
             * because it was added the array later, and the entire array gets written to our save/restore data structures, so
             * reordering the elements would be a bad idea.
             */
            
            /*
             * NMI Mask Register (MODEL_5150 and MODEL_5160 only)
             */
            ChipSet.NMI = {                 // this.bNMI
                PORT:               0xA0,
                ENABLE:             0x80,
                DISABLE:            0x00
            };
            
            /*
             * Coprocessor Control Registers (MODEL_5170)
             */
            ChipSet.COPROC = {              // TODO: Define a variable for this
                PORT_CLEAR:         0xF0,   // clear the coprocessor's "busy" state
                PORT_RESET:         0xF1    // reset the coprocessor
            };
            
            /**
             * @this {ChipSet}
             * @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
             * @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "sw1")
             * @param {Object} control is the HTML control DOM object (eg, HTMLButtonElement)
             * @return {boolean} true if binding was successful, false if unrecognized binding request
             */
            ChipSet.prototype.setBinding = function(sHTMLType, sBinding, control)
            {
                switch (sBinding) {
                    case "sw1":
                        this.bindings[sBinding] = control;
                        this.addSwitches(sBinding, control, 8, this.sw1Init, {
                            0: (this.model == ChipSet.MODEL_5150? "Bootable Floppy Drive" : "Loop on POST"),
                            1: (this.model == ChipSet.MODEL_5150? "Reserved" : "Coprocessor"),
                            2: "Base Memory Size",          // up to 64Kb on a MODEL_5150, 256Kb on a MODEL_5160
                            4: "Monitor Type",
                            6: "Number of Floppy Drives"
                        });
                        return true;
                    case "sw2":
                        if (this.model == ChipSet.MODEL_5150) {
                            this.bindings[sBinding] = control;
                            this.addSwitches(sBinding, control, 8, this.sw2Init, {
                                0: "Expansion Memory Size", // up to 480Kb, which, when combined with 64Kb of MODEL_5150 base memory, gives a maximum of 544Kb
                                4: "Reserved"
                            });
                            return true;
                        }
                        break;
                    case "swdesc":
                        this.bindings[sBinding] = control;
                        return true;
                    default:
                        break;
                }
                return false;
            };
            
            /**
             * initBus(cmp, bus, cpu, dbg)
             *
             * @this {ChipSet}
             * @param {Computer} cmp
             * @param {Bus} bus
             * @param {X86CPU} cpu
             * @param {Debugger} dbg
             */
            ChipSet.prototype.initBus = function(cmp, bus, cpu, dbg)
            {
                this.bus = bus;
                this.cpu = cpu;
                this.dbg = dbg;
                this.cmp = cmp;
                this.kbd = cmp.getComponentByType("Keyboard");
                /*
                 * This divisor is invariant, so we calculate it as soon as we're able to query the CPU's base speed.
                 */
                this.nTicksDivisor = (cpu.getCyclesPerSecond() / ChipSet.TIMER_TICKS_PER_SEC);
            
                bus.addPortInputTable(this, ChipSet.aPortInput);
                bus.addPortOutputTable(this, ChipSet.aPortOutput);
                if (this.model < ChipSet.MODEL_5170) {
                    bus.addPortInputTable(this, ChipSet.aPortInput5150);
                    bus.addPortOutputTable(this, ChipSet.aPortOutput5150);
                } else {
                    bus.addPortInputTable(this, ChipSet.aPortInput5170);
                    bus.addPortOutputTable(this, ChipSet.aPortOutput5170);
                }
                if (DEBUGGER) {
                    if (dbg) {
                        var chipset = this;
                        /*
                         * TODO: Add more "dumpers" (eg, for DMA, RTC, 8042, etc)
                         */
                        dbg.messageDump(Messages.PIC, function onDumpPIC() {
                            chipset.dumpPIC();
                        });
                        dbg.messageDump(Messages.TIMER, function onDumpTimer() {
                            chipset.dumpTimer();
                        });
                        dbg.messageDump(Messages.CMOS, function onDumpCMOS() {
                            chipset.dumpCMOS();
                        });
                    }
                    cpu.addIntNotify(Interrupts.RTC.VECTOR, this, this.intBIOSRTC);
                }
            };
            
            /**
             * powerUp(data, fRepower)
             *
             * @this {ChipSet}
             * @param {Object|null} data
             * @param {boolean} [fRepower]
             * @return {boolean} true if successful, false if failure
             */
            ChipSet.prototype.powerUp = function(data, fRepower)
            {
                if (!fRepower) {
                    if (!data) {
                        this.reset();
                    } else {
                        if (!this.restore(data)) return false;
                    }
                }
                return true;
            };
            
            /**
             * powerDown(fSave, fShutdown)
             *
             * @this {ChipSet}
             * @param {boolean} fSave
             * @param {boolean} [fShutdown]
             * @return {Object|boolean} component state if fSave; otherwise, true if successful, false if failure
             */
            ChipSet.prototype.powerDown = function(fSave, fShutdown)
            {
                return fSave && this.save? this.save() : true;
            };
            
            /**
             * reset(fHard)
             *
             * @this {ChipSet}
             * @param {boolean} [fHard] true on the initial reset (not a normal "soft" reset)
             */
            ChipSet.prototype.reset = function(fHard)
            {
                /*
                 * We propagate the sw1Init/sw2Init values to sw1/sw2 at reset; the user is only
                 * allowed to tweak sw1Init/sw2Init, which doesn't take effect until the next reset.
                 */
                var i;
                this.sw1 = this.sw1Init;
                this.sw2 = this.sw2Init;
                this.updateSwitchDesc();
            
                /*
                 * DMA (Direct Memory Access) Controller initialization
                 */
                this.aDMACs = new Array(this.cDMACs);
                for (i = 0; i < this.cDMACs; i++) {
                    this.initDMAController(i);
                }
            
                /*
                 * PIC (Programmable Interupt Controller) initialization
                 */
                this.aPICs = new Array(this.cPICs);
                this.initPIC(ChipSet.PIC0.INDEX, ChipSet.PIC0.PORT_LO);
                if (this.cPICs > 1) {
                    this.initPIC(ChipSet.PIC1.INDEX, ChipSet.PIC1.PORT_LO);
                }
            
                /*
                 * PIT (Programmable Interval Timer) initialization
                 *
                 * Although the DeskPro 386 refers to the timers in the first PIT as "Timer 1, Counter 0",
                 * "Timer 1, Counter 1" and "Timer 1, Counter 2", we're sticking with IBM's nomenclature:
                 * TIMER0, TIMER1 and TIMER2.  Which means that we refer to the "counters" in the second PIT
                 * as TIMER3, TIMER4 and TIMER5; that numbering also matches their indexes in the aTimers array.
                 */
                this.bPIT1Ctrl = null;          // tracks writes to port 0x43
                this.bPIT2Ctrl = null;          // tracks writes to port 0x4B (MODEL_DESKPRO386 only)
                this.aTimers = new Array(this.model == ChipSet.MODEL_DESKPRO386? 6 : 3);
                for (i = 0; i < this.aTimers.length; i++) {
                    this.initTimer(i);
                }
            
                /*
                 * PPI and other misc ports
                 */
                this.bPPIA = null;              // tracks writes to port 0x60, in case PPI_CTRL.A_IN is not set
                this.bPPIB = null;              // tracks writes to port 0x61, in case PPI_CTRL.B_IN is not set
                this.bPPIC = null;              // tracks writes to port 0x62, in case PPI_CTRL.C_IN_LO or PPI_CTRL.C_IN_HI is not set
                this.bPPICtrl = null;           // tracks writes to port 0x63 (eg, 0x99); read-only
                this.bNMI = ChipSet.NMI.DISABLE;// tracks writes to the NMI Mask Register
            
                /*
                 * ChipSet state introduced by the MODEL_5170
                 */
                if (this.model >= ChipSet.MODEL_5170) {
                    /*
                     * The 8042 input buffer is treated as a "command byte" when written via port 0x64 and as a "data byte"
                     * when written via port 0x60.  So, whenever the KBC.CMD.WRITE_CMD "command byte" is written to the input
                     * buffer, the subsequent command data byte is saved in b8042CmdData.  Similarly, for KBC.CMD.WRITE_OUTPORT,
                     * the subsequent data byte is saved in b8042OutPort.
                     *
                     * TODO: Consider a UI for the Keyboard INHIBIT switch.  By default, our keyboard is never inhibited
                     * (ie, locked).  Also, note that the hardware changes this bit only when new data is sent to b8042OutBuff.
                     */
                    this.b8042Status = ChipSet.KBC.STATUS.NO_INHIBIT;
                    this.b8042InBuff = 0;
                    this.b8042CmdData = ChipSet.KBC.DATA.CMD.NO_CLOCK;
                    this.b8042OutBuff = 0;
            
                    /*
                     * TODO: Provide more control over these 8042 "Input Port" bits (eg, the keyboard lock)
                     */
                    this.b8042InPort = ChipSet.KBC.INPORT.MFG_OFF | ChipSet.KBC.INPORT.KBD_UNLOCKED;
            
                    if (this.getSWMemorySize() >= 512) {
                        this.b8042InPort |= ChipSet.KBC.INPORT.ENABLE_256KB;
                    }
            
                    if (this.getSWVideoMonitor() == ChipSet.MONITOR.MONO) {
                        this.b8042InPort |= ChipSet.KBC.INPORT.MONO;
                    }
            
                    if (COMPAQ386 && this.model == ChipSet.MODEL_DESKPRO386) {
                        this.b8042InPort |= ChipSet.KBC.INPORT.COMPAQ_NO80387 | ChipSet.KBC.INPORT.COMPAQ_NOWEITEK;
                    }
            
                    this.b8042OutPort = ChipSet.KBC.OUTPORT.NO_RESET | ChipSet.KBC.OUTPORT.A20_ON;
            
                    this.abDMAPageSpare = new Array(8);
            
                    this.bCMOSAddr = 0;         // NMI is enabled, since the ChipSet.CMOS.ADDR.NMI_DISABLE bit is not set in bCMOSAddr
            
                    /*
                     * Now that we call reset() from the ChipSet constructor, enabling other components to update
                     * their own CMOS information as needed, we must distinguish between the initial ("hard") reset
                     * and any later ("soft") resets (eg, from powerUp() calls), and make sure the latter preserves
                     * existing CMOS information.
                     */
                    if (fHard) {
                        this.abCMOSData = new Array(ChipSet.CMOS.ADDR.TOTAL);
                    }
            
                    this.initRTCTime(this.sRTCDate);
            
                    /*
                     * initCMOSData() will initialize a variety of "legacy" CMOS bytes, but it will NOT overwrite any memory
                     * size or hard drive type information that might have been set, via addCMOSMemory() or setCMOSDriveType().
                     */
                    this.initCMOSData();
                }
            
                if (DEBUGGER && MAXDEBUG) {
                    /*
                     * Arrays for interrupt counts (one count per IRQ) and timer data
                     */
                    this.acInterrupts = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
                    this.acTimersFired = [0, 0, 0];
                    this.acTimer0Counts = [];
                }
            };
            
            /**
             * initRTCTime(sDate)
             *
             * Initialize the RTC portion of the CMOS registers to match the specified date/time (or if none is specified,
             * the current date/time).  The date/time should be expressed in the ISO 8601 format; eg: "2011-10-10T14:48:00".
             *
             * NOTE: There are two approaches we could take here: always store the RTC bytes in binary, and convert them
             * to/from BCD on-demand (ie, as the simulation reads/writes the CMOS RTC registers); or init/update them in the
             * format specified by CMOS.STATUSB.BINARY (1 for binary, 0 for BCD).  Both approaches require BCD conversion
             * functions, but the former seems more efficient, in part because the periodic calls to updateRTCTime() won't
             * require any conversions.
             *
             * We take the same approach with the CMOS.STATUSB.HOUR24 setting: internally, we always operate in 24-hour mode,
             * but externally, we convert the RTC hour values to the 12-hour format as needed.
             *
             * Thus, all I/O to the RTC bytes must be routed through the getRTCByte() and setRTCByte() functions, to ensure
             * that all the necessary on-demand conversions occur.
             *
             * @this {ChipSet}
             * @param {string} [sDate]
             */
            ChipSet.prototype.initRTCTime = function(sDate)
            {
                /*
                 * NOTE: I've already been burned once by a JavaScript library function that did NOT treat an undefined
                 * parameter (ie, a parameter === undefined) the same as an omitted parameter (eg, the async parameter in
                 * xmlHTTP.open() in IE), so I'm taking no chances here: if sDate is undefined, then explicitly call Date()
                 * with no parameters.
                 */
                var date = sDate? new Date(sDate) : new Date();
            
                /*
                 * Example of a valid Date string:
                 *
                 *      2014-10-01T08:00:00 (interpreted as GMT, resulting in "Wed Oct 01 2014 01:00:00 GMT-0700 (PDT)")
                 *
                 * Examples of INVALID Date strings:
                 *
                 *      2014-10-01T08:00:00PST
                 *      2014-10-01T08:00:00-0700 (actually, this DOES work in Chrome, but NOT in Safari)
                 *
                 * In the case of INVALID Date strings, the Date object is invalid, but there's no obvious test for an "invalid"
                 * object, so I've adapted the following test from StackOverflow.
                 *
                 * See http://stackoverflow.com/questions/1353684/detecting-an-invalid-date-date-instance-in-javascript
                 */
                if (Object.prototype.toString.call(date) !== "[object Date]" || isNaN(date.getTime())) {
                    date = new Date();
                    this.println("CMOS date invalid (" + sDate + "), using " + date);
                } else if (sDate) {
                    this.println("CMOS date: " + date);
                }
            
                this.abCMOSData[ChipSet.CMOS.ADDR.RTC_SEC] = date.getSeconds();
                this.abCMOSData[ChipSet.CMOS.ADDR.RTC_SEC_ALRM] = 0;
                this.abCMOSData[ChipSet.CMOS.ADDR.RTC_MIN] = date.getMinutes();
                this.abCMOSData[ChipSet.CMOS.ADDR.RTC_MIN_ALRM] = 0;
                this.abCMOSData[ChipSet.CMOS.ADDR.RTC_HOUR] = date.getHours();
                this.abCMOSData[ChipSet.CMOS.ADDR.RTC_HOUR_ALRM] = 0;
                this.abCMOSData[ChipSet.CMOS.ADDR.RTC_WEEK_DAY] = date.getDay() + 1;
                this.abCMOSData[ChipSet.CMOS.ADDR.RTC_MONTH_DAY] = date.getDate();
                this.abCMOSData[ChipSet.CMOS.ADDR.RTC_MONTH] = date.getMonth() + 1;
                var nYear = date.getFullYear();
                this.abCMOSData[ChipSet.CMOS.ADDR.RTC_YEAR] = nYear % 100;
                var nCentury = (nYear / 100);
                this.abCMOSData[ChipSet.CMOS.ADDR.CENTURY_DATE] = (nCentury % 10) | ((nCentury / 10) << 4);
            
                this.abCMOSData[ChipSet.CMOS.ADDR.STATUSA] = 0x26;                          // hard-coded default; refer to ChipSet.CMOS.STATUSA.DV and ChipSet.CMOS.STATUSA.RS
                this.abCMOSData[ChipSet.CMOS.ADDR.STATUSB] = ChipSet.CMOS.STATUSB.HOUR24;   // default to BCD mode (ChipSet.CMOS.STATUSB.BINARY not set)
                this.abCMOSData[ChipSet.CMOS.ADDR.STATUSC] = 0x00;
                this.abCMOSData[ChipSet.CMOS.ADDR.STATUSD] = ChipSet.CMOS.STATUSD.VRB;
            
                this.nRTCCyclesLastUpdate = this.nRTCCyclesNextUpdate = 0;
                this.nRTCPeriodsPerSecond = this.nRTCCyclesPerPeriod = null;
            };
            
            /**
             * getRTCByte(iRTC)
             *
             * @param {number} iRTC
             * @return {number} b
             */
            ChipSet.prototype.getRTCByte = function(iRTC)
            {
                this.assert(iRTC >= 0 && iRTC <= ChipSet.CMOS.ADDR.STATUSD);
            
                var b = this.abCMOSData[iRTC];
            
                if (iRTC < ChipSet.CMOS.ADDR.STATUSA) {
                    var f12HourValue = false;
                    if (iRTC == ChipSet.CMOS.ADDR.RTC_HOUR || iRTC == ChipSet.CMOS.ADDR.RTC_HOUR_ALRM) {
                        if (!(this.abCMOSData[ChipSet.CMOS.ADDR.STATUSB] & ChipSet.CMOS.STATUSB.HOUR24)) {
                            if (b < 12) {
                                b = (!b? 12 : b);
                            } else {
                                b -= 12;
                                b = (!b? 0x8c : b + 0x80);
                            }
                            f12HourValue = true;
                        }
                    }
                    if (!(this.abCMOSData[ChipSet.CMOS.ADDR.STATUSB] & ChipSet.CMOS.STATUSB.BINARY)) {
                        /*
                         * We're in BCD mode, so we must convert b from BINARY to BCD.  But first:
                         *
                         *      If b is a 12-hour value (ie, we're in 12-hour mode) AND the hour is a PM value
                         *      (ie, in the range 0x81-0x8C), then it must be adjusted to yield 81-92 in BCD.
                         *
                         *      AM hour values (0x01-0x0C) need no adjustment; they naturally convert to 01-12 in BCD.
                         */
                        if (f12HourValue && b > 0x80) {
                            b -= (0x81 - 81);
                        }
                        b = (b % 10) | ((b / 10) << 4);
                    }
                } else {
                    if (iRTC == ChipSet.CMOS.ADDR.STATUSA) {
                        /*
                         * HACK: Perform a mindless toggling of the "Update-In-Progress" bit, so that it's flipped
                         * on the next read; this makes the MODEL_5170 BIOS ("POST2_RTCUP") happy.
                         */
                        this.abCMOSData[iRTC] ^= ChipSet.CMOS.STATUSA.UIP;
                    }
                }
                return b;
            };
            
            /**
             * setRTCByte(iRTC, b)
             *
             * @param {number} iRTC
             * @param {number} b proposed byte to write
             * @return {number} actual byte to write
             */
            ChipSet.prototype.setRTCByte = function(iRTC, b)
            {
                this.assert(iRTC >= 0 && iRTC <= ChipSet.CMOS.ADDR.STATUSD);
            
                if (iRTC < ChipSet.CMOS.ADDR.STATUSA) {
                    var fBCD = false;
                    if (!(this.abCMOSData[ChipSet.CMOS.ADDR.STATUSB] & ChipSet.CMOS.STATUSB.BINARY)) {
                        /*
                         * We're in BCD mode, so we must convert b from BCD to BINARY (we assume it's valid
                         * BCD; ie, that both nibbles contain only 0-9, not A-F).
                         */
                        b = (b >> 4) * 10 + (b & 0xf);
                        fBCD = true;
                    }
                    if (iRTC == ChipSet.CMOS.ADDR.RTC_HOUR || iRTC == ChipSet.CMOS.ADDR.RTC_HOUR_ALRM) {
                        if (fBCD) {
                            /*
                             * If the original BCD hour was 0x81-0x92, then the previous BINARY-to-BCD conversion
                             * transformed it to 0x51-0x5C, so we must add 0x30.
                             */
                            if (b > 23) {
                                this.assert(b >= 0x51 && b <= 0x5c);
                                b += 0x30;
                            }
                        }
                        if (!(this.abCMOSData[ChipSet.CMOS.ADDR.STATUSB] & ChipSet.CMOS.STATUSB.HOUR24)) {
                            if (b <= 12) {
                                b = (b == 12? 0 : b);
                            } else {
                                b -= (0x80 - 12);
                                b = (b == 24? 12 : b);
                            }
                        }
                    }
                }
                return b;
            };
            
            /**
             * calcRTCCyclePeriod()
             *
             * This should be called whenever the timings in STATUSA may have changed.
             *
             * TODO: 1024 is a hard-coded number of periods per second based on the default interrupt rate of 976.562us
             * (ie, 1000000 / 976.562).  Calculate the actual number based on the values programmed in the STATUSA register.
             *
             * @this {ChipSet}
             */
            ChipSet.prototype.calcRTCCyclePeriod = function()
            {
                this.nRTCCyclesLastUpdate = this.cpu.getCycles(this.fScaleTimers);
                this.nRTCPeriodsPerSecond = 1024;
                this.nRTCCyclesPerPeriod = Math.floor(this.cpu.getCyclesPerSecond() / this.nRTCPeriodsPerSecond);
                this.setRTCCycleLimit();
            };
            
            /**
             * getRTCCycleLimit(nCycles)
             *
             * This is called by the CPU to determine the maximum number of cycles it can process for the current burst.
             *
             * @this {ChipSet}
             * @param {number} nCycles desired
             * @return {number} maximum number of cycles (<= nCycles)
             */
            ChipSet.prototype.getRTCCycleLimit = function(nCycles)
            {
                if (this.abCMOSData && this.abCMOSData[ChipSet.CMOS.ADDR.STATUSB] & ChipSet.CMOS.STATUSB.PIE) {
                    var nCyclesUpdate = this.nRTCCyclesNextUpdate - this.cpu.getCycles(this.fScaleTimers);
                    if (nCyclesUpdate > 0) {
                        if (nCycles > nCyclesUpdate) {
                            if (DEBUG && this.messageEnabled(Messages.RTC)) {
                                this.printMessage("getRTCCycleLimit(" + nCycles + "): reduced to " + nCyclesUpdate + " cycles", true);
                            }
                            nCycles = nCyclesUpdate;
                        } else {
                            if (DEBUG && this.messageEnabled(Messages.RTC)) {
                                this.printMessage("getRTCCycleLimit(" + nCycles + "): already less than " + nCyclesUpdate + " cycles", true);
                            }
                        }
                    } else {
                        if (DEBUG && this.messageEnabled(Messages.RTC)) {
                            this.printMessage("RTC next update has passed by " + nCyclesUpdate + " cycles", true);
                        }
                    }
                }
                return nCycles;
            };
            
            /**
             * setRTCCycleLimit(nCycles)
             *
             * This should be called when PIE becomes set in STATUSB (and whenever PF is cleared in STATUSC while PIE is still set).
             *
             * @this {ChipSet}
             * @param {number} [nCycles]
             */
            ChipSet.prototype.setRTCCycleLimit = function(nCycles)
            {
                if (nCycles === undefined) nCycles = this.nRTCCyclesPerPeriod;
                this.nRTCCyclesNextUpdate = this.cpu.getCycles(this.fScaleTimers) + nCycles;
                if (this.abCMOSData[ChipSet.CMOS.ADDR.STATUSB] & ChipSet.CMOS.STATUSB.PIE) {
                    this.cpu.setBurstCycles(nCycles);
                }
            };
            
            /**
             * updateRTCTime()
             *
             * @this {ChipSet}
             */
            ChipSet.prototype.updateRTCTime = function()
            {
                var nCyclesPerSecond = this.cpu.getCyclesPerSecond();
                var nCyclesUpdate = this.cpu.getCycles(this.fScaleTimers);
            
                /*
                 * We must arrange for the very first calcRTCCyclePeriod() call to occur here, on the very first
                 * updateRTCTime() call, because this is the first point we can be guaranteed that CPU cycle counts
                 * are initialized (the CPU is the last component to be powered up/restored).
                 *
                 * TODO: A side-effect of this is that it undermines the save/restore code's preservation of last
                 * and next RTC cycle counts, which may affect when the next RTC event is delivered.
                 */
                if (this.nRTCCyclesPerPeriod == null) this.calcRTCCyclePeriod();
            
                /*
                 * Step 1: Deal with Periodic Interrupts
                 */
                if (nCyclesUpdate >= this.nRTCCyclesNextUpdate) {
                    var bPrev = this.abCMOSData[ChipSet.CMOS.ADDR.STATUSC];
                    this.abCMOSData[ChipSet.CMOS.ADDR.STATUSC] |= ChipSet.CMOS.STATUSC.PF;
                    if (this.abCMOSData[ChipSet.CMOS.ADDR.STATUSB] & ChipSet.CMOS.STATUSB.PIE) {
                        /*
                         * When PIE is set, setBurstCycles() should be getting called as needed to ensure
                         * that updateRTCTime() is called more frequently, so let's assert that we don't have
                         * an excess of cycles and thus possibly some missed Periodic Interrupts.
                         */
                        if (DEBUG) {
                            if (nCyclesUpdate - this.nRTCCyclesNextUpdate > this.nRTCCyclesPerPeriod) {
                                if (bPrev & ChipSet.CMOS.STATUSC.PF) {
                                    this.printMessage("RTC interrupt handler failed to clear STATUSC", Messages.RTC);
                                } else {
                                    this.printMessage("CPU took too long trigger new RTC periodic interrupt", Messages.RTC);
                                }
                            }
                        }
                        this.abCMOSData[ChipSet.CMOS.ADDR.STATUSC] |= ChipSet.CMOS.STATUSC.IRQF;
                        this.setIRR(ChipSet.IRQ.RTC);
                        /*
                         * We could also call setRTCCycleLimit() at this point, but I don't think there's any
                         * benefit until the interrupt had been acknowledged and STATUSC has been read, thereby
                         * clearing the way for another Periodic Interrupt; it seems to me that when STATUSC
                         * is read, that's the more appropriate time to call setRTCCycleLimit().
                         */
                    }
                    this.nRTCCyclesNextUpdate = nCyclesUpdate + this.nRTCCyclesPerPeriod;
                }
            
                /*
                 * Step 2: Deal with Alarm Interrupts
                 */
                if (this.abCMOSData[ChipSet.CMOS.ADDR.RTC_SEC] == this.abCMOSData[ChipSet.CMOS.ADDR.RTC_SEC_ALRM]) {
                    if (this.abCMOSData[ChipSet.CMOS.ADDR.RTC_MIN] == this.abCMOSData[ChipSet.CMOS.ADDR.RTC_MIN_ALRM]) {
                        if (this.abCMOSData[ChipSet.CMOS.ADDR.RTC_HOUR] == this.abCMOSData[ChipSet.CMOS.ADDR.RTC_HOUR_ALRM]) {
                            this.abCMOSData[ChipSet.CMOS.ADDR.STATUSC] |= ChipSet.CMOS.STATUSC.AF;
                            if (this.abCMOSData[ChipSet.CMOS.ADDR.STATUSB] & ChipSet.CMOS.STATUSB.AIE) {
                                this.abCMOSData[ChipSet.CMOS.ADDR.STATUSC] |= ChipSet.CMOS.STATUSC.IRQF;
                                this.setIRR(ChipSet.IRQ.RTC);
                            }
                        }
                    }
                }
            
                /*
                 * Step 3: Update the RTC date/time and deal with Update Interrupts
                 */
                var nCyclesDelta = nCyclesUpdate - this.nRTCCyclesLastUpdate;
                // DEBUG: this.assert(nCyclesDelta >= 0);
                var nSecondsDelta = Math.floor(nCyclesDelta / nCyclesPerSecond);
            
                /*
                 * We trust that updateRTCTime() is being called as part of updateAllTimers(), and is therefore
                 * being called often enough to ensure that nSecondsDelta will never be greater than one.  In fact,
                 * it would always be LESS than one if it weren't also for the fact that we plow any "unused" cycles
                 * (nCyclesDelta % nCyclesPerSecond) back into nRTCCyclesLastUpdate, so that we will eventually
                 * see a one-second delta.
                 */
                // DEBUG: this.assert(nSecondsDelta <= 1);
            
                /*
                 * Make sure that CMOS.STATUSB.SET isn't set; if it is, then the once-per-second RTC updates must be
                 * disabled so that software can write new RTC date/time values without interference.
                 */
                if (nSecondsDelta && !(this.abCMOSData[ChipSet.CMOS.ADDR.STATUSB] & ChipSet.CMOS.STATUSB.SET)) {
                    while (nSecondsDelta--) {
                        if (++this.abCMOSData[ChipSet.CMOS.ADDR.RTC_SEC] >= 60) {
                            this.abCMOSData[ChipSet.CMOS.ADDR.RTC_SEC] = 0;
                            if (++this.abCMOSData[ChipSet.CMOS.ADDR.RTC_MIN] >= 60) {
                                this.abCMOSData[ChipSet.CMOS.ADDR.RTC_MIN] = 0;
                                if (++this.abCMOSData[ChipSet.CMOS.ADDR.RTC_HOUR] >= 24) {
                                    this.abCMOSData[ChipSet.CMOS.ADDR.RTC_HOUR] = 0;
                                    this.abCMOSData[ChipSet.CMOS.ADDR.RTC_WEEK_DAY] = (this.abCMOSData[ChipSet.CMOS.ADDR.RTC_WEEK_DAY] % 7) + 1;
                                    var nDayMax = usr.getMonthDays(this.abCMOSData[ChipSet.CMOS.ADDR.RTC_MONTH], this.abCMOSData[ChipSet.CMOS.ADDR.RTC_YEAR]);
                                    if (++this.abCMOSData[ChipSet.CMOS.ADDR.RTC_MONTH_DAY] > nDayMax) {
                                        this.abCMOSData[ChipSet.CMOS.ADDR.RTC_MONTH_DAY] = 1;
                                        if (++this.abCMOSData[ChipSet.CMOS.ADDR.RTC_MONTH] > 12) {
                                            this.abCMOSData[ChipSet.CMOS.ADDR.RTC_MONTH] = 1;
                                            this.abCMOSData[ChipSet.CMOS.ADDR.RTC_YEAR] = (this.abCMOSData[ChipSet.CMOS.ADDR.RTC_YEAR] + 1) % 100;
                                        }
                                    }
                                }
                            }
                        }
                    }
                    this.abCMOSData[ChipSet.CMOS.ADDR.STATUSC] |= ChipSet.CMOS.STATUSC.UF;
                    if (this.abCMOSData[ChipSet.CMOS.ADDR.STATUSB] & ChipSet.CMOS.STATUSB.UIE) {
                        this.abCMOSData[ChipSet.CMOS.ADDR.STATUSC] |= ChipSet.CMOS.STATUSC.IRQF;
                        this.setIRR(ChipSet.IRQ.RTC);
                    }
                }
            
                this.nRTCCyclesLastUpdate = nCyclesUpdate - (nCyclesDelta % nCyclesPerSecond);
            };
            
            /**
             * initCMOSData()
             *
             * Initialize all the CMOS configuration bytes in the range 0x0E-0x2F (TODO: Decide what to do about 0x30-0x3F)
             *
             * Note that the MODEL_5170 "SETUP" utility is normally what sets all these bytes, including the checksum, and then
             * the BIOS verifies it, but since we want our machines to pass BIOS verification "out of the box", we go the extra
             * mile here, even though it's not really our responsibility.
             *
             * @this {ChipSet}
             */
            ChipSet.prototype.initCMOSData = function()
            {
                /*
                 * On all reset() calls, the RAM component(s) will (re)add their totals, so we have to make sure that
                 * the addition always starts with 0.  That also means that ChipSet must always be initialized before RAM.
                 */
                var iCMOS;
                for (iCMOS = ChipSet.CMOS.ADDR.BASEMEM_LO; iCMOS <= ChipSet.CMOS.ADDR.EXTMEM_HI; iCMOS++) {
                    this.abCMOSData[iCMOS] = 0;
                }
            
                /*
                 * Make sure all the "checksummed" CMOS bytes are initialized (not just the handful we set below) to ensure
                 * that the checksum will be valid.
                 */
                for (iCMOS = ChipSet.CMOS.ADDR.DIAG; iCMOS < ChipSet.CMOS.ADDR.CHKSUM_HI; iCMOS++) {
                    if (this.abCMOSData[iCMOS] === undefined) this.abCMOSData[iCMOS] = 0;
                }
            
                /*
                 * We propagate all compatible "legacy" SW1 bits to the CMOS.EQUIP byte using the old SW masks, but any further
                 * access to CMOS.ADDR.EQUIP should use the new CMOS_EQUIP flags (eg, CMOS.EQUIP.COPROC, CMOS.EQUIP.MONITOR.CGA80, etc).
                 */
                this.abCMOSData[ChipSet.CMOS.ADDR.EQUIP] = this.sw1 & (ChipSet.PPI_SW.MONITOR.MASK | ChipSet.PPI_SW.COPROC | ChipSet.PPI_SW.FDRIVE.IPL | ChipSet.PPI_SW.FDRIVE.MASK);
                this.abCMOSData[ChipSet.CMOS.ADDR.FDRIVE] = (this.getSWFloppyDriveType(0) << 4) | this.getSWFloppyDriveType(1);
            
                /*
                 * The final step is calculating the CMOS checksum, which we then store into the CMOS as a courtesy, so that the
                 * user doesn't get unnecessary CMOS errors.
                 */
                this.updateCMOSChecksum();
            };
            
            /**
             * setCMOSByte(iCMOS, b)
             *
             * This is ONLY for use by components that need to update CMOS configuration bytes to match their internal configuration.
             *
             * @this {ChipSet}
             * @param {number} iCMOS
             * @param {number} b
             * @return {boolean} true if successful, false if not (eg, CMOS not initialized yet, or no CMOS on this machine)
             */
            ChipSet.prototype.setCMOSByte = function(iCMOS, b)
            {
                if (this.abCMOSData) {
                    this.assert(iCMOS >= ChipSet.CMOS.ADDR.FDRIVE && iCMOS < ChipSet.CMOS.ADDR.CHKSUM_HI);
                    this.abCMOSData[iCMOS] = b;
                    this.updateCMOSChecksum();
                    return true;
                }
                return false;
            };
            
            /**
             * addCMOSMemory(addr, size)
             *
             * For use by the RAM component, to dynamically update the CMOS memory configuration.
             *
             * @this {ChipSet}
             * @param {number} addr (if 0, BASEMEM_LO/BASEMEM_HI is updated; if >= 0x100000, then EXTMEM_LO/EXTMEM_HI is updated)
             * @param {number} size (in bytes; we convert to Kb)
             * @return {boolean} true if successful, false if not (eg, CMOS not initialized yet, or no CMOS on this machine)
             */
            ChipSet.prototype.addCMOSMemory = function(addr, size)
            {
                if (this.abCMOSData) {
                    var iCMOS = (addr < 0x100000? ChipSet.CMOS.ADDR.BASEMEM_LO : ChipSet.CMOS.ADDR.EXTMEM_LO);
                    var wKb = this.abCMOSData[iCMOS] | (this.abCMOSData[iCMOS+1] << 8);
                    wKb += (size >> 10);
                    this.abCMOSData[iCMOS] = wKb & 0xff;
                    this.abCMOSData[iCMOS+1] = wKb >> 8;
                    this.updateCMOSChecksum();
                    return true;
                }
                return false;
            };
            
            /**
             * setCMOSDriveType(iDrive, bType)
             *
             * For use by the HDC component, to update the CMOS drive configuration to match HDC's internal configuration.
             *
             * TODO: Consider extending this to support FDC drive updates, so that the FDC can specify diskette drive types
             * (ie, FD360 or FD1200) in the same way that HDC does.  However, historically, the ChipSet has been responsible for
             * floppy drive configuration, at least in terms of *number* of drives, through the use of SW1 settings, and we've
             * continued that tradition with the addition of the ChipSet 'floppies' parameter, which allows both the number *and*
             * capacity of drives to be specified with a simple array (eg, [360, 360] for two 360Kb drives).
             *
             * @this {ChipSet}
             * @param {number} iDrive
             * @param {number} bType
             * @return {boolean} true if successful, false if not (eg, CMOS not initialized yet, or no CMOS on this machine)
             */
            ChipSet.prototype.setCMOSDriveType = function(iDrive, bType)
            {
                if (this.abCMOSData) {
                    var b = this.abCMOSData[ChipSet.CMOS.ADDR.HDRIVE];
                    this.assert(bType > 0 && bType < 0xf);
                    if (iDrive) {
                        b = (b & ChipSet.CMOS.HDRIVE.D0_MASK) | bType;
                    } else {
                        b = (b & ChipSet.CMOS.HDRIVE.D1_MASK) | (bType << 4);
                    }
                    this.setCMOSByte(ChipSet.CMOS.ADDR.HDRIVE, b);
                    return true;
                }
                return false;
            };
            
            /**
             * updateCMOSChecksum()
             *
             * This sums all the CMOS bytes from 0x10-0x2D, creating a 16-bit checksum.  That's a total of 30 (unsigned) 8-bit
             * values which could sum to at most 30*255 or 7650 (0x1DE2).  Since there's no way that can overflow 16 bits, we don't
             * worry about masking it with 0xffff.
             *
             * WARNING: The IBM PC AT TechRef, p.1-53 (p.75) claims that the checksum is on bytes 0x10-0x20, but that's simply wrong.
             *
             * @this {ChipSet}
             */
            ChipSet.prototype.updateCMOSChecksum = function()
            {
                var wChecksum = 0;
                for (var iCMOS = ChipSet.CMOS.ADDR.FDRIVE; iCMOS < ChipSet.CMOS.ADDR.CHKSUM_HI; iCMOS++) {
                    wChecksum += this.abCMOSData[iCMOS];
                }
                this.abCMOSData[ChipSet.CMOS.ADDR.CHKSUM_LO] = wChecksum & 0xff;
                this.abCMOSData[ChipSet.CMOS.ADDR.CHKSUM_HI] = wChecksum >> 8;
            };
            
            /**
             * save()
             *
             * @this {ChipSet}
             * @return {Object}
             *
             * This implements save support for the ChipSet component.
             */
            ChipSet.prototype.save = function()
            {
                var state = new State(this);
                state.set(0, [this.sw1Init, this.sw2Init, this.sw1, this.sw2]);
                state.set(1, [this.saveDMAControllers()]);
                state.set(2, [this.savePICs()]);
                state.set(3, [this.bPIT1Ctrl, this.saveTimers(), this.bPIT2Ctrl]);
                state.set(4, [this.bPPIA, this.bPPIB, this.bPPIC, this.bPPICtrl, this.bNMI]);
                if (this.model >= ChipSet.MODEL_5170) {
                    state.set(5, [this.b8042Status, this.b8042InBuff, this.b8042CmdData,
                                  this.b8042OutBuff, this.b8042InPort, this.b8042OutPort]);
                    state.set(6, [this.abDMAPageSpare[7], this.abDMAPageSpare, this.bCMOSAddr, this.abCMOSData, this.nRTCCyclesLastUpdate, this.nRTCCyclesNextUpdate]);
                }
                return state.data();
            };
            
            /**
             * restore(data)
             *
             * @this {ChipSet}
             * @param {Object} data
             * @return {boolean} true if successful, false if failure
             *
             * This implements restore support for the ChipSet component.
             */
            ChipSet.prototype.restore = function(data)
            {
                var a, i;
                a = data[0];
                this.sw1Init = a[0];
                this.sw2Init = a[1];
                this.sw1 = a[2];
                this.sw2 = a[3];
            
                a = data[1];
                for (i = 0; i < this.cDMACs; i++) {
                    this.initDMAController(i, a.length == 1? a[0][i] : a);
                }
            
                a = data[2];
                for (i = 0; i < this.cPICs; i++) {
                    this.initPIC(i, i === 0? ChipSet.PIC0.PORT_LO : ChipSet.PIC1.PORT_LO, a[0][i]);
                }
            
                a = data[3];
                this.bPIT1Ctrl = a[0];
                this.bPIT2Ctrl = a[2];
                for (i = 0; i < this.aTimers.length; i++) {
                    this.initTimer(i, a[1][i]);
                }
            
                a = data[4];
                this.bPPIA = a[0];
                this.bPPIB = a[1];
                this.bPPIC = a[2];
                this.bPPICtrl = a[3];
                this.bNMI  = a[4];
            
                a = data[5];
                if (a) {
                    this.assert(this.model >= ChipSet.MODEL_5170);
                    this.b8042Status = a[0];
                    this.b8042InBuff = a[1];
                    this.b8042CmdData = a[2];
                    this.b8042OutBuff = a[3];
                    this.b8042InPort = a[4];
                    this.b8042OutPort = a[5];
                }
            
                a = data[6];
                if (a) {
                    this.assert(this.model >= ChipSet.MODEL_5170);
                    this.abDMAPageSpare = a[1];
                    this.abDMAPageSpare[7] = a[0];  // formerly bMFGData
                    this.bCMOSAddr = a[2];
                    this.abCMOSData = a[3];
                    this.nRTCCyclesLastUpdate = a[4];
                    this.nRTCCyclesNextUpdate = a[5];
                    /*
                     * TODO: Decide whether restore() should faithfully preserve the RTC date/time that save() saved,
                     * or always reinitialize the date/time, or give the user (or the machine configuration) the option.
                     *
                     * For now, we're always reinitializing the RTC date.  Alternatively, we could selectively update
                     * the CMOS bytes above, instead of overwriting them all, in which case this extra call to initRTCTime()
                     * could be avoided.
                     */
                    this.initRTCTime();
                }
                return true;
            };
            
            ChipSet.aDMAControllerInit = [0, null, null, 0, new Array(4)];
            
            /**
             * initDMAController(iDMAC, aState)
             *
             * @this {ChipSet}
             * @param {number} iDMAC
             * @param {Array} [aState]
             */
            ChipSet.prototype.initDMAController = function(iDMAC, aState)
            {
                var controller = this.aDMACs[iDMAC];
                if (!controller) {
                    this.assert(!aState);
                    controller = {
                        aChannels: new Array(4)
                    };
                }
                var a = aState && aState.length == 5? aState : ChipSet.aDMAControllerInit;
                controller.bStatus = a[0];
                controller.bCmd = a[1];
                controller.bReq = a[2];
                controller.bIndex = a[3];
                controller.nChannelBase = iDMAC << 2;
                for (var iChannel = 0; iChannel < controller.aChannels.length; iChannel++) {
                    this.initDMAChannel(controller, iChannel, a[4][iChannel]);
                }
                this.aDMACs[iDMAC] = controller;
            };
            
            ChipSet.aDMAChannelInit = [true, [0,0], [0,0], [0,0], [0,0]];
            
            /**
             * initDMAChannel(controller, iChannel, aState)
             *
             * @this {ChipSet}
             * @param {Object} controller
             * @param {number} iChannel
             * @param {Array} [aState]
             */
            ChipSet.prototype.initDMAChannel = function(controller, iChannel, aState)
            {
                var channel = controller.aChannels[iChannel];
                if (!channel) {
                    this.assert(!aState);
                    channel = {
                        addrInit: [0,0],
                        countInit: [0,0],
                        addrCurrent: [0,0],
                        countCurrent: [0,0]
                    };
                }
                var a = aState && aState.length == 8? aState : ChipSet.aDMAChannelInit;
                channel.masked = a[0];
                channel.addrInit[0] = a[1][0]; channel.addrInit[1] = a[1][1];
                channel.countInit[0] = a[2][0];  channel.countInit[1] = a[2][1];
                channel.addrCurrent[0] = a[3][0]; channel.addrCurrent[1] = a[3][1];
                channel.countCurrent[0] = a[4][0]; channel.countCurrent[1] = a[4][1];
                channel.mode = a[5];
                channel.bPage = a[6];
                // a[7] is deprecated
                channel.controller = controller;
                channel.iChannel = iChannel;
                this.initDMAFunction(channel, a[8], a[9]);
                controller.aChannels[iChannel] = channel;
            };
            
            /**
             * initDMAFunction(channel)
             *
             * @param {Object} channel
             * @param {Component|string} [component]
             * @param {string} [sFunction]
             * @param {Object} [obj]
             * @return {*}
             */
            ChipSet.prototype.initDMAFunction = function(channel, component, sFunction, obj)
            {
                if (typeof component == "string") {
                    component = Component.getComponentByID(component);
                }
                if (component) {
                    channel.done = null;
                    channel.sDevice = component.id;
                    channel.sFunction = sFunction;
                    channel.component = component;
                    channel.fnTransfer = component[sFunction];
                    channel.obj = obj;
                }
                return channel.fnTransfer;
            };
            
            /**
             * saveDMAControllers()
             *
             * @this {ChipSet}
             * @return {Array}
             */
            ChipSet.prototype.saveDMAControllers = function()
            {
                var data = [];
                for (var iDMAC = 0; iDMAC < this.aDMACs; iDMAC++) {
                    var controller = this.aDMACs[iDMAC];
                    data[iDMAC] = [
                        controller.bStatus,
                        controller.bCmd,
                        controller.bReq,
                        controller.bIndex,
                        this.saveDMAChannels(controller)
                    ];
                }
                return data;
            };
            
            /**
             * saveDMAChannels(controller)
             *
             * @this {ChipSet}
             * @param {Object} controller
             * @return {Array}
             */
            ChipSet.prototype.saveDMAChannels = function(controller)
            {
                var data = [];
                for (var iChannel = 0; iChannel < controller.aChannels.length; iChannel++) {
                    var channel = controller.aChannels[iChannel];
                    data[iChannel] = [
                        channel.masked,
                        channel.addrInit,
                        channel.countInit,
                        channel.addrCurrent,
                        channel.countCurrent,
                        channel.mode,
                        channel.bPage,
                        channel.sDevice,
                        channel.sFunction
                    ];
                }
                return data;
            };
            
            ChipSet.aPICInit = [0, new Array(4)];
            
            /**
             * initPIC(iPIC, port, aState)
             *
             * @this {ChipSet}
             * @param {number} iPIC
             * @param {number} port
             * @param {Array} [aState]
             */
            ChipSet.prototype.initPIC = function(iPIC, port, aState)
            {
                var pic = this.aPICs[iPIC];
                if (!pic) {
                    pic = {
                        aICW:   [null,null,null,null]
                    };
                }
                var a = aState && aState.length == 8? aState : ChipSet.aPICInit;
                pic.port = port;
                pic.nIRQBase = iPIC << 3;
                pic.nDelay = a[0];
                pic.aICW[0] = a[1][0]; pic.aICW[1] = a[1][1]; pic.aICW[2] = a[1][2]; pic.aICW[3] = a[1][3];
                pic.nICW = a[2];
                pic.bIMR = a[3];
                pic.bIRR = a[4];
                pic.bISR = a[5];
                pic.bIRLow = a[6];
                pic.bOCW3 = a[7];
                this.aPICs[iPIC] = pic;
            };
            
            /**
             * savePICs()
             *
             * @this {ChipSet}
             * @return {Array}
             */
            ChipSet.prototype.savePICs = function()
            {
                var data = [];
                for (var iPIC = 0; iPIC < this.aPICs.length; iPIC++) {
                    var pic = this.aPICs[iPIC];
                    data[iPIC] = [
                        pic.nDelay,
                        pic.aICW,
                        pic.nICW,
                        pic.bIMR,
                        pic.bIRR,
                        pic.bISR,
                        pic.bIRLow,
                        pic.bOCW3
                    ];
                }
                return data;
            };
            
            ChipSet.aTimerInit = [[0,0], [0,0], [0,0], [0,0]];
            
            /**
             * initTimer(iTimer, aState)
             *
             * @this {ChipSet}
             * @param {number} iTimer
             * @param {Array} [aState]
             */
            ChipSet.prototype.initTimer = function(iTimer, aState)
            {
                var timer = this.aTimers[iTimer];
                if (!timer) {
                    timer = {
                        countInit: [0,0],
                        countStart: [0,0],
                        countCurrent: [0,0],
                        countLatched: [0,0]
                    };
                }
                var a = aState && aState.length == 13? aState : ChipSet.aTimerInit;
                timer.countInit[0] = a[0][0]; timer.countInit[1] = a[0][1];
                timer.countStart[0] = a[1][0]; timer.countStart[1] = a[1][1];
                timer.countCurrent[0] = a[2][0]; timer.countCurrent[1] = a[2][1];
                timer.countLatched[0] = a[3][0]; timer.countLatched[1] = a[3][1];
                timer.bcd = a[4];
                timer.mode = a[5];
                timer.rw = a[6];
                timer.countIndex = a[7];
                timer.countBytes = a[8];
                timer.fOUT = a[9];
                timer.fLatched = a[10];
                timer.fCounting = a[11];
                timer.nCyclesStart = a[12];
                this.aTimers[iTimer] = timer;
            };
            
            /**
             * saveTimers()
             *
             * @this {ChipSet}
             * @return {Array}
             */
            ChipSet.prototype.saveTimers = function()
            {
                var data = [];
                for (var iTimer = 0; iTimer < this.aTimers.length; iTimer++) {
                    var timer = this.aTimers[iTimer];
                    data[iTimer] = [
                        timer.countInit,
                        timer.countStart,
                        timer.countCurrent,
                        timer.countLatched,
                        timer.bcd,
                        timer.mode,
                        timer.rw,
                        timer.countIndex,
                        timer.countBytes,
                        timer.fOUT,
                        timer.fLatched,
                        timer.fCounting,
                        timer.nCyclesStart
                    ];
                }
                return data;
            };
            
            /**
             * getSWMemorySize(fInit)
             *
             * @this {ChipSet}
             * @param {boolean} [fInit] is true for init switch value(s) only, current value(s) otherwise
             * @return {number} number of Kb of specified memory (NOT necessarily the same as installed memory; see RAM component)
             */
            ChipSet.prototype.getSWMemorySize = function(fInit)
            {
                var sw1 = (fInit? this.sw1Init : this.sw1);
                var sw2 = (fInit? this.sw2Init : this.sw2);
                return (((sw1 & ChipSet.PPI_SW.MEMORY.MASK) >> ChipSet.PPI_SW.MEMORY.SHIFT) + 1) * this.kbSW + (sw2 & ChipSet.PPI_C.SW) * 32;
            };
            
            /**
             * getSWFloppyDrives(fInit)
             *
             * @this {ChipSet}
             * @param {boolean} [fInit] is true for init switch value(s) only, current value(s) otherwise
             * @return {number} number of floppy drives specified by SW1 (range is 0 to 4)
             */
            ChipSet.prototype.getSWFloppyDrives = function(fInit)
            {
                var sw1 = (fInit? this.sw1Init : this.sw1);
                return ((this.model != ChipSet.MODEL_5150) || (sw1 & ChipSet.PPI_SW.FDRIVE.IPL))? ((sw1 & ChipSet.PPI_SW.FDRIVE.MASK) >> ChipSet.PPI_SW.FDRIVE.SHIFT) + 1 : 0;
            };
            
            /**
             * getSWFloppyDriveType(iDrive)
             *
             * @this {ChipSet}
             * @param {number} iDrive (0-based)
             * @return {number} one of the ChipSet.CMOS.FDRIVE.FD* values (FD360, FD1200, etc)
             */
            ChipSet.prototype.getSWFloppyDriveType = function(iDrive)
            {
                if (iDrive < this.getSWFloppyDrives()) {
                    if (!this.aFloppyDrives) {
                        return ChipSet.CMOS.FDRIVE.FD360;
                    }
                    if (iDrive < this.aFloppyDrives.length) {
                        switch(this.aFloppyDrives[iDrive]) {
                        case 160:
                        case 180:
                        case 320:
                        case 360:
                            return ChipSet.CMOS.FDRIVE.FD360;
                        case 720:
                            return ChipSet.CMOS.FDRIVE.FD720;
                        case 1200:
                            return ChipSet.CMOS.FDRIVE.FD1200;
                        case 1440:
                            return ChipSet.CMOS.FDRIVE.FD1440;
                        }
                    }
                    this.assert(false);  // we should never get here (else something is out of out sync)
                }
                return ChipSet.CMOS.FDRIVE.NONE;
            };
            
            /**
             * getSWFloppyDriveSize(iDrive)
             *
             * @this {ChipSet}
             * @param {number} iDrive (0-based)
             * @return {number} capacity of drive in Kb (eg, 360, 1200, 1440, etc), or 0 if none
             */
            ChipSet.prototype.getSWFloppyDriveSize = function(iDrive)
            {
                if (iDrive < this.getSWFloppyDrives()) {
                    if (!this.aFloppyDrives) {
                        return 360;
                    }
                    if (iDrive < this.aFloppyDrives.length) {
                        return this.aFloppyDrives[iDrive];
                    }
                    this.assert(false);  // we should never get here (else something is out of out sync)
                }
                return 0;
            };
            
            /**
             * getSWVideoMonitor(fInit)
             *
             * @this {ChipSet}
             * @param {boolean} [fInit] is true for init switch value(s) only, current value(s) otherwise
             * @return {number} one of ChipSet.MONITOR.*
             */
            ChipSet.prototype.getSWVideoMonitor = function(fInit)
            {
                var sw1 = (fInit? this.sw1Init : this.sw1);
                return (sw1 & ChipSet.PPI_SW.MONITOR.MASK) >> ChipSet.PPI_SW.MONITOR.SHIFT;
            };
            
            /**
             * addSwitches(s, control, n, v, oTips)
             *
             * @this {ChipSet}
             * @param {string} s is the name of the control
             * @param {Object} control is the HTML control DOM object
             * @param {number} n is the number of switches to add
             * @param {number} v contains the current value(s) of the switches
             * @param {Object} oTips contains tooltips for the various cells
             */
            ChipSet.prototype.addSwitches = function(s, control, n, v, oTips)
            {
                var sHTML = "";
                var sCellClass = PCJSCLASS + "-bitCell";
                for (var i = 1; i <= n; i++) {
                    var sCellClasses = sCellClass;
                    if (!i) sCellClasses += " " + PCJSCLASS + "-bitCellLeft";
                    var sCellID = s + "-" + i;
                    sHTML += "<div id=\"" + sCellID + "\" class=\"" + sCellClasses + "\" data-value=\"0\">" + i + "</div>\n";
                }
                control.innerHTML = sHTML;
                var aeCells = Component.getElementsByClass(control, sCellClass);
                var sTip = null;
                for (i = 0; i < aeCells.length; i++) {
                    if (oTips != null && oTips[i] != null) {
                        sTip = oTips[i];
                    }
                    if (sTip) aeCells[i].setAttribute("title", sTip);
                    this.setSwitch(aeCells[i], (v & (0x1 << i))? false : true);
                    aeCells[i].onclick = function(chipset, eSwitch) {
                        /*
                         *  If we defined the onclick handler below as "function(e)" instead of simply "function()", then we could
                         *  also receive an event object (e); however, IE reportedly requires that we examine a global (window.event)
                         *  instead.  If that's true, and if we ever care to get more details about the click event, then we might
                         *  have to worry about that (eg, define a local var: "var event = window.event || e").
                         */
                        return function onClickSwitch() {
                            chipset.toggleSwitch(eSwitch);
                        };
                    }(this, aeCells[i]);
                }
            };
            
            /**
             * getSwitch(control)
             *
             * @this {ChipSet}
             * @param {Object} control is an HTML control DOM object
             * @return {boolean} true if the switch represented by e is "on", false if "off"
             */
            ChipSet.prototype.getSwitch = function(control)
            {
                return control.getAttribute("data-value") == "1";
            };
            
            /**
             * setSwitch(control, f)
             *
             * @this {ChipSet}
             * @param {Object} control is an HTML control DOM object
             * @param {boolean} f is true if the switch represented by control should be "on", false if "off"
             */
            ChipSet.prototype.setSwitch = function(control, f)
            {
                control.setAttribute("data-value", f? "1" : "0");
                control.style.color = (f? "#ffffff" : "#000000");
                control.style.backgroundColor = (f? "#000000" : "#ffffff");
            };
            
            /**
             * toggleSwitch(control)
             *
             * @this {ChipSet}
             * @param {Object} control is an HTML control DOM object
             */
            ChipSet.prototype.toggleSwitch = function(control)
            {
                var f = !this.getSwitch(control);
                this.setSwitch(control, f);
                var sID = control.getAttribute("id");
                var asParts = sID.split("-");
                var b = (0x1 << (+asParts[1] - 1));
                switch (asParts[0]) {
                case "sw1":
                    this.sw1Init = (this.sw1Init & ~b) | (f? 0 : b);
                    break;
                case "sw2":
                    this.sw2Init = (this.sw2Init & ~b) | (f? 0 : b);
                    break;
                default:
                    break;
                }
                this.updateSwitchDesc();
            };
            
            /**
             * updateSwitchDesc()
             *
             * @this {ChipSet}
             */
            ChipSet.prototype.updateSwitchDesc = function()
            {
                var controlDesc = this.bindings["swdesc"];
                /*
                 * TODO: Monitor type 0 used to be "No" (as in "No Monitor"), which was correct in the pre-EGA world,
                 * but in the post-EGA world, it depends.  We could ask the Video component for a definitive answer, but
                 * but what we print here isn't that critical, because most people won't bother with a Control Panel,
                 * which is really the only beneficiary of this code.
                 */
                var asMonitorTypes = {
                    0: "Enhanced Color",
                    1: "TV",
                    2: "Color",
                    3: "Monochrome"
                };
                if (controlDesc != null) {
                    var sText = "";
                    sText += this.getSWMemorySize(true) + "Kb";
                    sText += ", " + asMonitorTypes[this.getSWVideoMonitor(true)] + " Monitor";
                    sText += ", " + this.getSWFloppyDrives(true) + " Floppy Drives";
                    if (this.sw1 != null && this.sw1 != this.sw1Init || this.sw2 != null && this.sw2 != this.sw2Init) {
                        sText += " (Reset required)";
                    }
                    controlDesc.textContent = sText;
                }
            };
            
            /**
             * dumpPIC()
             *
             * @this {ChipSet}
             */
            ChipSet.prototype.dumpPIC = function()
            {
                if (DEBUGGER) {
                    for (var iPIC = 0; iPIC < this.aPICs.length; iPIC++) {
                        var pic = this.aPICs[iPIC];
                        var sDump = "PIC" + iPIC + ":";
                        for (var i = 0; i < pic.aICW.length; i++) {
                            var b = pic.aICW[i];
                            sDump += " IC" + (i + 1) + '=' + str.toHexByte(b);
                        }
                        sDump += " IMR=" + str.toHexByte(pic.bIMR) + " IRR=" + str.toHexByte(pic.bIRR) + " ISR=" + str.toHexByte(pic.bISR) + " DELAY=" + pic.nDelay;
                        this.dbg.println(sDump);
                    }
                }
            };
            
            /**
             * dumpTimer()
             *
             * @this {ChipSet}
             */
            ChipSet.prototype.dumpTimer = function()
            {
                if (DEBUGGER) {
                    for (var iTimer = 0; iTimer < this.aTimers.length; iTimer++) {
                        this.updateTimer(iTimer);
                        var timer = this.aTimers[iTimer];
                        var sDump = "TIMER" + iTimer + ":";
                        var count = 0;
                        if (timer.countBytes != null) {
                            for (var i = 0; i <= timer.countBytes; i++) {
                                count |= (timer.countCurrent[i] << (i * 8));
                            }
                        }
                        sDump += " mode=" + timer.mode + " bytes=" + timer.countBytes + " count=" + str.toHexWord(count);
                        this.dbg.println(sDump);
                    }
                }
            };
            
            /**
             * dumpCMOS()
             *
             * @this {ChipSet}
             */
            ChipSet.prototype.dumpCMOS = function()
            {
                if (DEBUGGER) {
                    var sDump = "";
                    for (var iCMOS = 0; iCMOS < ChipSet.CMOS.ADDR.TOTAL; iCMOS++) {
                        var b = (iCMOS <= ChipSet.CMOS.ADDR.STATUSD? this.getRTCByte(iCMOS) : this.abCMOSData[iCMOS]);
                        if (sDump) sDump += '\n';
                        sDump += "CMOS[" + str.toHexByte(iCMOS) + "]: " + str.toHexByte(b);
                    }
                    this.dbg.println(sDump);
                }
            };
            
            /**
             * inDMAChannelAddr(iDMAC, iChannel, port, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} iDMAC
             * @param {number} iChannel
             * @param {number} port (0x00, 0x02, 0x04, 0x06 for DMAC 0, 0xC0, 0xC4, 0xC8, 0xCC for DMAC 1)
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             * @return {number} simulated port value
             */
            ChipSet.prototype.inDMAChannelAddr = function(iDMAC, iChannel, port, addrFrom)
            {
                var controller = this.aDMACs[iDMAC];
                var channel = controller.aChannels[iChannel];
                var b = channel.addrCurrent[controller.bIndex];
                if (this.messageEnabled(Messages.DMA | Messages.PORT)) {
                    this.printMessageIO(port, null, addrFrom, "DMA" + iDMAC + ".CHANNEL" + iChannel + ".ADDR[" + controller.bIndex + "]", b, true);
                }
                controller.bIndex ^= 0x1;
                /*
                 * Technically, aTimers[1].fOut is what drives DMA requests for DMA channel 0 (ChipSet.DMA_REFRESH),
                 * every 15us, once the BIOS has initialized the channel's "mode" with MODE_SINGLE, INCREMENT, AUTOINIT,
                 * and TYPE_READ (0x58) and initialized TIMER1 appropriately.
                 *
                 * However, we don't need to be that particular.  Simply simulate an ever-increasing address after every
                 * read of the full DMA channel 0 address.
                 */
                if (!iDMAC && iChannel == ChipSet.DMA_REFRESH && !controller.bIndex) {
                    channel.addrCurrent[0]++;
                    if (channel.addrCurrent[0] > 0xff) {
                        channel.addrCurrent[0] = 0;
                        channel.addrCurrent[1]++;
                        if (channel.addrCurrent[1] > 0xff) {
                            channel.addrCurrent[1] = 0;
                        }
                    }
                }
                return b;
            };
            
            /**
             * outDMAChannelAddr(iDMAC, iChannel, port, bOut, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} iDMAC
             * @param {number} iChannel
             * @param {number} port (0x00, 0x02, 0x04, 0x06 for DMAC 0, 0xC0, 0xC4, 0xC8, 0xCC for DMAC 1)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             */
            ChipSet.prototype.outDMAChannelAddr = function outDMAChannelAddr(iDMAC, iChannel, port, bOut, addrFrom)
            {
                var controller = this.aDMACs[iDMAC];
                if (this.messageEnabled(Messages.DMA | Messages.PORT)) {
                    this.printMessageIO(port, bOut, addrFrom, "DMA" + iDMAC + ".CHANNEL" + iChannel + ".ADDR[" + controller.bIndex + "]", null, true);
                }
                var channel = controller.aChannels[iChannel];
                channel.addrCurrent[controller.bIndex] = channel.addrInit[controller.bIndex] = bOut;
                controller.bIndex ^= 0x1;
            };
            
            /**
             * inDMAChannelCount(iDMAC, iChannel, port, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} iDMAC
             * @param {number} iChannel
             * @param {number} port (0x01, 0x03, 0x05, 0x07 for DMAC 0, 0xC2, 0xC6, 0xCA, 0xCE for DMAC 1)
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             * @return {number} simulated port value
             */
            ChipSet.prototype.inDMAChannelCount = function(iDMAC, iChannel, port, addrFrom)
            {
                var controller = this.aDMACs[iDMAC];
                var channel = controller.aChannels[iChannel];
                var b = channel.countCurrent[controller.bIndex];
                if (this.messageEnabled(Messages.DMA | Messages.PORT)) {
                    this.printMessageIO(port, null, addrFrom, "DMA" + iDMAC + ".CHANNEL" + iChannel + ".COUNT[" + controller.bIndex + "]", b, true);
                }
                controller.bIndex ^= 0x1;
                /*
                 * Technically, aTimers[1].fOut is what drives DMA requests for DMA channel 0 (ChipSet.DMA_REFRESH),
                 * every 15us, once the BIOS has initialized the channel's "mode" with MODE_SINGLE, INCREMENT, AUTOINIT,
                 * and TYPE_READ (0x58) and initialized TIMER1 appropriately.
                 *
                 * However, we don't need to be that particular.  Simply simulate an ever-decreasing count after every
                 * read of the full DMA channel 0 count.
                 */
                if (!iDMAC && iChannel == ChipSet.DMA_REFRESH && !controller.bIndex) {
                    channel.countCurrent[0]--;
                    if (channel.countCurrent[0] < 0) {
                        channel.countCurrent[0] = 0xff;
                        channel.countCurrent[1]--;
                        if (channel.countCurrent[1] < 0) {
                            channel.countCurrent[1] = 0xff;
                            /*
                             * This is the logical point to indicate Terminal Count (TC), but again, there's no need to be
                             * so particular; inDMAStatus() has its own logic for periodically signalling TC.
                             */
                        }
                    }
                }
                return b;
            };
            
            /**
             * outDMAChannelCount(iDMAC, iChannel, port, bOut, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} iDMAC
             * @param {number} iChannel (ports 0x01, 0x03, 0x05, 0x07)
             * @param {number} port (0x01, 0x03, 0x05, 0x07 for DMAC 0, 0xC2, 0xC6, 0xCA, 0xCE for DMAC 1)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             */
            ChipSet.prototype.outDMAChannelCount = function(iDMAC, iChannel, port, bOut, addrFrom)
            {
                var controller = this.aDMACs[iDMAC];
                if (this.messageEnabled(Messages.DMA | Messages.PORT)) {
                    this.printMessageIO(port, bOut, addrFrom, "DMA" + iDMAC + ".CHANNEL" + iChannel + ".COUNT[" + controller.bIndex + "]", null, true);
                }
                var channel = controller.aChannels[iChannel];
                channel.countCurrent[controller.bIndex] = channel.countInit[controller.bIndex] = bOut;
                controller.bIndex ^= 0x1;
            };
            
            /**
             * inDMAStatus(iDMAC, port, addrFrom)
             *
             * From the 8237A spec:
             *
             * "The Status register is available to be read out of the 8237A by the microprocessor.
             * It contains information about the status of the devices at this point. This information includes
             * which channels have reached Terminal Count (TC) and which channels have pending DMA requests.
             *
             * Bits 0–3 are set every time a TC is reached by that channel or an external EOP is applied.
             * These bits are cleared upon Reset and on each Status Read.
             *
             * Bits 4–7 are set whenever their corresponding channel is requesting service."
             *
             * TRIVIA: This hook wasn't installed when I was testing with the MODEL_5150 ROM BIOS, and it
             * didn't matter, but the MODEL_5160 ROM BIOS checks it several times, including @F000:E156, where
             * it verifies that TIMER1 didn't request service on channel 0.
             *
             * @this {ChipSet}
             * @param {number} iDMAC
             * @param {number} port (0x08 for DMAC 0, 0xD0 for DMAC 1)
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             * @return {number} simulated port value
             */
            ChipSet.prototype.inDMAStatus = function(iDMAC, port, addrFrom)
            {
                /*
                 * HACK: Unlike the MODEL_5150, the MODEL_5160 ROM BIOS checks DMA channel 0 for TC (@F000:E4DF)
                 * after running a number of unrelated tests, since enough time would have passed for channel 0 to
                 * have reached TC at least once.  So I simply OR in a hard-coded TC bit for channel 0 every time
                 * status is read.
                 */
                var controller = this.aDMACs[iDMAC];
                var b = controller.bStatus | ChipSet.DMA_STATUS.CH0_TC;
                controller.bStatus &= ~ChipSet.DMA_STATUS.ALL_TC;
                if (this.messageEnabled(Messages.DMA | Messages.PORT)) {
                    this.printMessageIO(port, null, addrFrom, "DMA" + iDMAC + ".STATUS", b, true);
                }
                return b;
            };
            
            /**
             * outDMACmd(iDMAC, port, bOut, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} iDMAC
             * @param {number} port (0x08 for DMAC 0, 0xD0 for DMAC 1)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             */
            ChipSet.prototype.outDMACmd = function(iDMAC, port, bOut, addrFrom)
            {
                if (this.messageEnabled(Messages.DMA | Messages.PORT)) {
                    this.printMessageIO(port, bOut, addrFrom, "DMA" + iDMAC + ".CMD", null, true);
                }
                this.aDMACs[iDMAC].bCmd = bOut;
            };
            
            /**
             * outDMAReq(iDMAC, port, bOut, addrFrom)
             *
             * From the 8237A spec:
             *
             * "The 8237A can respond to requests for DMA service which are initiated by software as well as by a DREQ.
             * Each channel has a request bit associated with it in the 4-bit Request register. These are non-maskable and subject
             * to prioritization by the Priority Encoder network. Each register bit is set or reset separately under software
             * control or is cleared upon generation of a TC or external EOP. The entire register is cleared by a Reset.
             *
             * To set or reset a bit the software loads the proper form of the data word.... In order to make a software request,
             * the channel must be in Block Mode."
             *
             * @this {ChipSet}
             * @param {number} iDMAC
             * @param {number} port (0x09 for DMAC 0, 0xD2 for DMAC 1)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             */
            ChipSet.prototype.outDMAReq = function(iDMAC, port, bOut, addrFrom)
            {
                var controller = this.aDMACs[iDMAC];
                if (this.messageEnabled(Messages.DMA | Messages.PORT)) {
                    this.printMessageIO(port, bOut, addrFrom, "DMA" + iDMAC + ".REQ", null, true);
                }
                /*
                 * Bits 0-1 contain the channel number
                 */
                var iChannel = (bOut & 0x3);
                /*
                 * Bit 2 is the request bit (0 to reset, 1 to set), which must be propagated to the corresponding bit (4-7) in the status register
                 */
                var iChannelBit = ((bOut & 0x4) << (iChannel + 2));
                controller.bStatus = (controller.bStatus & ~(0x10 << iChannel)) | iChannelBit;
                controller.bReq = bOut;
            };
            
            /**
             * outDMAMask(iDMAC, port, bOut, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} iDMAC
             * @param {number} port (0x0A for DMAC 0, 0xD4 for DMAC 1)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             */
            ChipSet.prototype.outDMAMask = function(iDMAC, port, bOut, addrFrom)
            {
                var controller = this.aDMACs[iDMAC];
                if (this.messageEnabled(Messages.DMA | Messages.PORT)) {
                    this.printMessageIO(port, bOut, addrFrom, "DMA" + iDMAC + ".MASK", null, true);
                }
                var iChannel = bOut & ChipSet.DMA_MASK.CHANNEL;
                var channel = controller.aChannels[iChannel];
                channel.masked = !!(bOut & ChipSet.DMA_MASK.CHANNEL_SET);
                if (!channel.masked) this.requestDMA(controller.nChannelBase + iChannel);
            };
            
            /**
             * outDMAMode(iDMAC, port, bOut, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} iDMAC
             * @param {number} port (0x0B for DMAC 0, 0xD6 for DMAC 1)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             */
            ChipSet.prototype.outDMAMode = function(iDMAC, port, bOut, addrFrom)
            {
                if (this.messageEnabled(Messages.DMA | Messages.PORT)) {
                    this.printMessageIO(port, bOut, addrFrom, "DMA" + iDMAC + ".MODE", null, true);
                }
                var iChannel = bOut & ChipSet.DMA_MODE.CHANNEL;
                this.aDMACs[iDMAC].aChannels[iChannel].mode = bOut;
            };
            
            /**
             * outDMAResetFF(iDMAC, port, bOut, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} iDMAC
             * @param {number} port (0x0C for DMAC 0, 0xD8 for DMAC 1)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             *
             * Any write to this port simply resets the controller's "first/last flip-flop", which determines whether
             * the even or odd byte of a DMA address or count register will be accessed next.
             */
            ChipSet.prototype.outDMAResetFF = function(iDMAC, port, bOut, addrFrom)
            {
                if (this.messageEnabled(Messages.DMA | Messages.PORT)) {
                    this.printMessageIO(port, bOut, addrFrom, "DMA" + iDMAC + ".RESET_FF", null, true);
                }
                this.aDMACs[iDMAC].bIndex = 0;
            };
            
            /**
             * outDMAMasterClear(iDMAC, port, bOut, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} iDMAC
             * @param {number} port (0x0D for DMAC 0, 0xDA for DMAC 1)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             */
            ChipSet.prototype.outDMAMasterClear = function(iDMAC, port, bOut, addrFrom)
            {
                if (this.messageEnabled(Messages.DMA | Messages.PORT)) {
                    this.printMessageIO(port, bOut, addrFrom, "DMA" + iDMAC + ".MASTER_CLEAR", null, true);
                }
                /*
                 * The value written to this port doesn't matter; any write triggers a "master clear" operation
                 *
                 * TODO: Can't we just call initDMAController(), which would also take care of clearing controller.bStatus?
                 */
                var controller = this.aDMACs[iDMAC];
                for (var i = 0; i < controller.aChannels.length; i++) {
                    this.initDMAChannel(controller, i);
                }
            };
            
            /**
             * inDMAPageReg(iDMAC, iChannel, port, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} iDMAC
             * @param {number} iChannel
             * @param {number} port
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             * @return {number} simulated port value
             */
            ChipSet.prototype.inDMAPageReg = function(iDMAC, iChannel, port, addrFrom)
            {
                var bIn = this.aDMACs[iDMAC].aChannels[iChannel].bPage;
                if (this.messageEnabled(Messages.DMA | Messages.PORT)) {
                    this.printMessageIO(port, null, addrFrom, "DMA" + iDMAC + ".CHANNEL" + iChannel + ".PAGE", bIn, true);
                }
                return bIn;
            };
            
            /**
             * outDMAPageReg(iDMAC, iChannel, port, bOut, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} iDMAC
             * @param {number} iChannel
             * @param {number} port
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             */
            ChipSet.prototype.outDMAPageReg = function(iDMAC, iChannel, port, bOut, addrFrom)
            {
                if (this.messageEnabled(Messages.DMA | Messages.PORT)) {
                    this.printMessageIO(port, bOut, addrFrom, "DMA" + iDMAC + ".CHANNEL" + iChannel + ".PAGE", null, true);
                }
                this.aDMACs[iDMAC].aChannels[iChannel].bPage = bOut;
            };
            
            /**
             * inDMAPageSpare(iSpare, port, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} iSpare
             * @param {number} port
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             * @return {number} simulated port value
             */
            ChipSet.prototype.inDMAPageSpare = function(iSpare, port, addrFrom)
            {
                var bIn = this.abDMAPageSpare[iSpare];
                if (this.messageEnabled(Messages.DMA | Messages.PORT)) {
                    this.printMessageIO(port, null, addrFrom, "DMA.SPARE" + iSpare + ".PAGE", bIn, true);
                }
                return bIn;
            };
            
            /**
             * outDMAPageSpare(iSpare, port, bOut, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} iSpare
             * @param {number} port
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             */
            ChipSet.prototype.outDMAPageSpare = function(iSpare, port, bOut, addrFrom)
            {
                /*
                 * TODO: Remove this DEBUG-only DESKPRO386 code once we're done debugging DeskPro 386 ROMs;
                 * it enables logging of all DeskPro ROM checkpoint I/O to port 0x84.
                 */
                if (this.messageEnabled(Messages.DMA | Messages.PORT) || DEBUG && this.model == ChipSet.MODEL_DESKPRO386 && port == 0x84) {
                    this.printMessageIO(port, bOut, addrFrom, "DMA.SPARE" + iSpare + ".PAGE", null, true);
                }
                this.abDMAPageSpare[iSpare] = bOut;
            };
            
            /**
             * checkDMA()
             *
             * Called by the CPU whenever INTR.DMA is set.
             *
             * @return {boolean} true if one or more async DMA channels are still active (unmasked), false to reset INTR.DMA
             */
            ChipSet.prototype.checkDMA = function()
            {
                var fActive = false;
                for (var iDMAC = 0; iDMAC < this.aDMACs; iDMAC++) {
                    var controller = this.aDMACs[iDMAC];
                    for (var iChannel = 0; iChannel < controller.aChannels.length; iChannel++) {
                        var channel = controller.aChannels[iChannel];
                        if (!channel.masked) {
                            this.advanceDMA(channel);
                            if (!channel.masked) fActive = true;
                        }
                    }
                }
                return fActive;
            };
            
            /**
             * connectDMA(iDMAChannel, component, sFunction, obj)
             *
             * @param {number} iDMAChannel
             * @param {Component|string} component
             * @param {string} sFunction
             * @param {Object} obj (eg, when the HDC connects, it passes a drive object)
             */
            ChipSet.prototype.connectDMA = function(iDMAChannel, component, sFunction, obj)
            {
                var iDMAC = iDMAChannel >> 2;
                var controller = this.aDMACs[iDMAC];
            
                var iChannel = iDMAChannel & 0x3;
                var channel = controller.aChannels[iChannel];
            
                this.initDMAFunction(channel, component, sFunction, obj);
            };
            
            /**
             * requestDMA(iDMAChannel, done)
             *
             * @this {ChipSet}
             * @param {number} iDMAChannel
             * @param {function(boolean)} [done]
             *
             * For DMA_MODE.TYPE_WRITE transfers, fnTransfer(-1) must return bytes as long as we request them (although it may
             * return -1 if it runs out of bytes prematurely).
             *
             * Similarly, for DMA_MODE.TYPE_READ transfers, fnTransfer(b) must accept bytes as long as we deliver them (although
             * it is certainly free to ignore bytes it no longer wants).
             */
            ChipSet.prototype.requestDMA = function(iDMAChannel, done)
            {
                var iDMAC = iDMAChannel >> 2;
                var controller = this.aDMACs[iDMAC];
            
                var iChannel = iDMAChannel & 0x3;
                var channel = controller.aChannels[iChannel];
            
                if (!channel.component || !channel.fnTransfer || !channel.obj) {
                    if (DEBUG && this.messageEnabled(Messages.DMA | Messages.DATA)) {
                        this.printMessage("requestDMA(" + iDMAChannel + "): not connected to a component", true);
                    }
                    if (done) done(true);
                    return;
                }
            
                /*
                 * We can't simply slam done into channel.done; that would be fine if requestDMA() was called only by functions
                 * like HDC.doRead() and HDC.doWrite(), but we're also called whenever a DMA channel is unmasked, and in those cases,
                 * we need to preserve whatever handler may have been previously set.
                 *
                 * However, in an effort to ensure we don't end up with stale done handlers, connectDMA() will reset channel.done.
                 */
                if (done) channel.done = done;
            
                if (channel.masked) {
                    if (DEBUG && this.messageEnabled(Messages.DMA | Messages.DATA)) {
                        this.printMessage("requestDMA(" + iDMAChannel + "): channel masked, request queued", true);
                    }
                    return;
                }
            
                /*
                 * Let's try to do async DMA without asking the CPU for help...
                 *
                 *      this.cpu.setDMA(true);
                 */
                this.advanceDMA(channel, true);
            };
            
            /**
             * advanceDMA(channel, fInit)
             *
             * @this {ChipSet}
             * @param {Object} channel
             * @param {boolean} [fInit]
             */
            ChipSet.prototype.advanceDMA = function(channel, fInit)
            {
                if (fInit) {
                    channel.count = (channel.countCurrent[1] << 8) | channel.countCurrent[0];
                    channel.type = (channel.mode & ChipSet.DMA_MODE.TYPE);
                    channel.fWarning = channel.fError = false;
                    if (DEBUG && DEBUGGER) {
                        channel.cbDebug = channel.count + 1;
                        channel.sAddrDebug = (DEBUG && DEBUGGER? null : undefined);
                    }
                }
                /*
                 * To support async DMA without requiring help from the CPU (ie, without relying upon cpu.setDMA()), we require that
                 * the data transfer functions provide an fAsync parameter to their callbacks; fAsync must be true if the callback was
                 * truly asynchronous (ie, it had to wait for a remote I/O request to finish), or false if the data was already available
                 * and the callback was performed synchronously.
                 *
                 * Whenever a callback is issued asynchronously, we will immediately daisy-chain another pair of updateDMA()/advanceDMA()
                 * calls, which will either finish the DMA operation if no more remote I/O requests are required, or will queue up another
                 * I/O request, which will in turn trigger another async callback.  Thus, the DMA request keeps itself going without
                 * requiring any special assistance from the CPU via setDMA().
                 */
                var bto = null;
                var chipset = this;
                var fAsyncRequest = false;
                var controller = channel.controller;
                var iDMAChannel = controller.nChannelBase + channel.iChannel;
            
                while (true) {
                    if (channel.count >= 0) {
                        var b;
                        var addr = (channel.bPage << 16) | (channel.addrCurrent[1] << 8) | channel.addrCurrent[0];
                        if (DEBUG && DEBUGGER && channel.sAddrDebug === null) {
                            channel.sAddrDebug = str.toHex(addr >> 4, 4) + ":" + str.toHex(addr & 0xf, 4);
                            if (this.messageEnabled(this.messageBitsDMA(iDMAChannel)) && channel.type != ChipSet.DMA_MODE.TYPE_WRITE) {
                                this.printMessage("advanceDMA(" + iDMAChannel + ") transferring " + channel.cbDebug + " bytes from " + channel.sAddrDebug, true);
                                this.dbg.doDump("db", channel.sAddrDebug, "l" + channel.cbDebug);
                            }
                        }
                        if (channel.type == ChipSet.DMA_MODE.TYPE_WRITE) {
                            fAsyncRequest = true;
                            (function advanceDMAWrite(addrCur) {
                                channel.fnTransfer.call(channel.component, channel.obj, -1, function onTransferDMA(b, fAsync, obj, off) {
                                    if (b < 0) {
                                        if (!channel.fWarning) {
                                            if (DEBUG && chipset.messageEnabled(Messages.DMA)) {
                                                chipset.printMessage("advanceDMA(" + iDMAChannel + ") ran out of data, assuming 0xff", true);
                                            }
                                            channel.fWarning = true;
                                        }
                                        /*
                                         * TODO: Determine whether to abort, as we do for DMA_MODE.TYPE_READ.
                                         */
                                        b = 0xff;
                                    }
                                    if (!channel.masked) {
                                        chipset.bus.setByte(addrCur, b);
                                        if (BACKTRACK) {
                                            if (!off && obj.file && chipset.messageEnabled(Messages.DISK)) {
                                                chipset.printMessage("loading " + obj.file.sPath + '[' + obj.offFile + "] at %" + str.toHex(addrCur), true);
                                            }
                                            bto = chipset.bus.addBackTrackObject(obj, bto, off);
                                            chipset.bus.writeBackTrackObject(addrCur, bto, off);
                                        }
                                    }
                                    fAsyncRequest = fAsync;
                                    if (fAsync) {
                                        setTimeout(function() {
                                            if (!chipset.updateDMA(channel)) chipset.advanceDMA(channel);
                                        }, 0);
                                    }
                                });
                            }(addr));
                        }
                        else if (channel.type == ChipSet.DMA_MODE.TYPE_READ) {
                            /*
                             * TODO: Determine whether we should support async dmaWrite() functions (currently not required)
                             */
                            b = chipset.bus.getByte(addr);
                            if (channel.fnTransfer.call(channel.component, channel.obj, b) < 0) {
                                /*
                                 * In this case, I think I have no choice but to terminate the DMA operation in response to a failure,
                                 * because the ROM BIOS FDC.REG_DATA.CMD.FORMAT_TRACK command specifies a count that is MUCH too large
                                 * (a side-effect of the ROM BIOS using the same "DMA_SETUP" code for reads, writes AND formats).
                                 */
                                channel.fError = true;
                            }
                        }
                        else if (channel.type == ChipSet.DMA_MODE.TYPE_VERIFY) {
                            /*
                             * Nothing to read or write; just call updateDMA()
                             */
                        }
                        else {
                            if (DEBUG && this.messageEnabled(Messages.DMA | Messages.WARN)) {
                                this.printMessage("advanceDMA(" + iDMAChannel + ") unsupported transfer type: " + str.toHexWord(channel.type), true);
                            }
                            channel.fError = true;
                        }
                    }
                    if (fAsyncRequest || this.updateDMA(channel)) break;
                }
            };
            
            /**
             * updateDMA(channel)
             *
             * @this {ChipSet}
             * @param {Object} channel
             * @return {boolean} true if DMA operation complete, false if not
             */
            ChipSet.prototype.updateDMA = function(channel)
            {
                if (!channel.fError && --channel.count >= 0) {
                    if (channel.mode & ChipSet.DMA_MODE.DECREMENT) {
                        channel.addrCurrent[0]--;
                        if (channel.addrCurrent[0] < 0) {
                            channel.addrCurrent[0] = 0xff;
                            channel.addrCurrent[1]--;
                            if (channel.addrCurrent[1] < 0) channel.addrCurrent[1] = 0xff;
                        }
                    } else {
                        channel.addrCurrent[0]++;
                        if (channel.addrCurrent[0] > 0xff) {
                            channel.addrCurrent[0] = 0x00;
                            channel.addrCurrent[1]++;
                            if (channel.addrCurrent[1] > 0xff) channel.addrCurrent[1] = 0x00;
                        }
                    }
                    /*
                     * In situations where an HDC DMA operation took too long, the Fixed Disk BIOS would give up, but the DMA operation would continue.
                     *
                     * TODO: Verify that the Fixed Disk BIOS shuts down (ie, re-masks) a DMA channel for failed requests, and that this handles those failures.
                     */
                    if (!channel.masked) return false;
                }
            
                var controller = channel.controller;
                var iDMAChannel = controller.nChannelBase + channel.iChannel;
                controller.bStatus = (controller.bStatus & ~(0x10 << channel.iChannel)) | (0x1 << channel.iChannel);
            
                /*
                 * EOP is supposed to automatically (re)mask the channel, unless it's set for auto-initialize.
                 */
                if (!(channel.mode & ChipSet.DMA_MODE.AUTOINIT)) {
                    channel.masked = true;
                    channel.component = channel.obj = null;
                }
            
                if (DEBUG && this.messageEnabled(this.messageBitsDMA(iDMAChannel)) && channel.type == ChipSet.DMA_MODE.TYPE_WRITE && channel.sAddrDebug) {
                    this.printMessage("updateDMA(" + iDMAChannel + ") transferred " + channel.cbDebug + " bytes to " + channel.sAddrDebug, true);
                    this.dbg.doDump("db", channel.sAddrDebug, "l" + channel.cbDebug);
                }
            
                if (channel.done) {
                    channel.done(!channel.fError);
                    channel.done = null;
                }
            
                /*
                 * While it might make sense to call cpu.setDMA() here, it's simpler to let the CPU issue one more call
                 * to chipset.checkDMA() and let the CPU update INTR.DMA on its own, based on the return value from checkDMA().
                 */
                return true;
            };
            
            /**
             * inPICLo(iPIC, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} iPIC
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             * @return {number} simulated port value
             */
            ChipSet.prototype.inPICLo = function(iPIC, addrFrom)
            {
                var b = 0;
                var pic = this.aPICs[iPIC];
                if (pic.bOCW3 != null) {
                    var bReadReg = pic.bOCW3 & ChipSet.PIC_LO.OCW3_READ_CMD;
                    switch (bReadReg) {
                        case ChipSet.PIC_LO.OCW3_READ_IRR:
                            b = pic.bIRR;
                            break;
                        case ChipSet.PIC_LO.OCW3_READ_ISR:
                            b = pic.bISR;
                            break;
                        default:
                            break;
                    }
                }
                if (this.messageEnabled(Messages.PIC | Messages.PORT | Messages.CHIPSET)) {
                    this.printMessageIO(pic.port, null, addrFrom, "PIC" + iPIC, b, true);
                }
                return b;
            };
            
            /**
             * outPICLo(iPIC, bOut, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} iPIC
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             */
            ChipSet.prototype.outPICLo = function(iPIC, bOut, addrFrom)
            {
                var pic = this.aPICs[iPIC];
                if (this.messageEnabled(Messages.PIC | Messages.PORT | Messages.CHIPSET)) {
                    this.printMessageIO(pic.port, bOut, addrFrom, "PIC" + iPIC, null, true);
                }
                if (bOut & ChipSet.PIC_LO.ICW1) {
                    /*
                     * This must be an ICW1...
                     */
                    pic.nICW = 0;
                    pic.aICW[pic.nICW++] = bOut;
                    /*
                     * I used to do the rest of this initialization in outPICHi(), once all the ICW commands had been received,
                     * but a closer reading of the 8259A spec indicates that that should happen now, on receipt on ICW1.
                     *
                     * Also, on p.10 of that spec, it says "The Interrupt Mask Register is cleared".  I originally took that to
                     * mean that all interrupts were masked, but based on what MS-DOS 4.0M expects to happen after this code runs:
                     *
                     *      0070:44C6 B013          MOV      AL,13
                     *      0070:44C8 E620          OUT      20,AL
                     *      0070:44CA B050          MOV      AL,50
                     *      0070:44CC E621          OUT      21,AL
                     *      0070:44CE B009          MOV      AL,09
                     *      0070:44D0 E621          OUT      21,AL
                     *
                     * (ie, it expects its next call to INT 0x13 will still generate an interrupt), I've decided the spec
                     * must be read literally, meaning that all IMR bits must be zeroed.  Unmasking all possible interrupts by
                     * default seems unwise to me, but who am I to judge....
                     */
                    pic.bIMR = 0x00;
                    pic.bIRLow = 7;
                    /*
                     * TODO: I'm also zeroing both IRR and ISR, even though that's not actually mentioned as part of the ICW
                     * sequence, because they need to be (re)initialized at some point.  However, if some component is currently
                     * requesting an interrupt, what should I do about that?  Originally, I had decided to clear them ONLY if they
                     * were still undefined, but that change appeared to break the ROM BIOS handling of CTRL-ALT-DEL, so I'm back
                     * to unconditionally zeroing them.
                     */
                    pic.bIRR = pic.bISR = 0;
                    /*
                     * The spec also says that "Special Mask Mode is cleared and Status Read is set to IRR".  I attempt to insure
                     * the latter, but as for special mask mode... well, that mode isn't supported yet.
                     */
                    pic.bOCW3 = ChipSet.PIC_LO.OCW3 | ChipSet.PIC_LO.OCW3_READ_IRR;
                }
                else if (!(bOut & ChipSet.PIC_LO.OCW3)) {
                    /*
                     * This must be an OCW2...
                     */
                    var bOCW2 = bOut & ChipSet.PIC_LO.OCW2_OP_MASK;
                    if (bOCW2 & ChipSet.PIC_LO.OCW2_EOI) {
                        /*
                         * This OCW2 must be an EOI command...
                         */
                        var nIRL, bIREnd = 0;
                        if ((bOCW2 & ChipSet.PIC_LO.OCW2_EOI_SPEC) == ChipSet.PIC_LO.OCW2_EOI_SPEC) {
                            /*
                             * More "specifically", a specific EOI command...
                             */
                            nIRL = bOut & ChipSet.PIC_LO.OCW2_IR_LVL;
                            bIREnd = 1 << nIRL;
                        } else {
                            /*
                             * Less "specifically", a non-specific EOI command.  The search for the highest priority in-service
                             * interrupt must start with whichever interrupt is opposite the lowest priority interrupt (normally 7,
                             * but technically whatever bIRLow is currently set to).  For example:
                             *
                             *      If bIRLow is 7, then the priority order is: 0, 1, 2, 3, 4, 5, 6, 7.
                             *      If bIRLow is 6, then the priority order is: 7, 0, 1, 2, 3, 4, 5, 6.
                             *      If bIRLow is 5, then the priority order is: 6, 7, 0, 1, 2, 3, 4, 5.
                             *      etc.
                             */
                            nIRL = pic.bIRLow + 1;
                            while (true) {
                                nIRL &= 0x7;
                                var bIR = 1 << nIRL;
                                if (pic.bISR & bIR) {
                                    bIREnd = bIR;
                                    break;
                                }
                                if (nIRL++ == pic.bIRLow) break;
                            }
                            if (DEBUG && !bIREnd) nIRL = null;      // for unexpected non-specific EOI commands, there's no IRQ to report
                        }
                        var nIRQ = (nIRL == null? undefined : pic.nIRQBase + nIRL);
                        if (pic.bISR & bIREnd) {
                            if (DEBUG && this.messageEnabled(this.messageBitsIRQ(nIRQ))) {
                                this.printMessage("outPIC" + iPIC + '(' + str.toHexByte(pic.port) + "): IRQ " + nIRQ + " ending @" + this.dbg.hexOffset(this.cpu.getIP(), this.cpu.getCS()) + " stack=" + this.dbg.hexOffset(this.cpu.getSP(), this.cpu.getSS()), true);
                            }
                            pic.bISR &= ~bIREnd;
                            this.checkIRR();
                        } else {
                            if (DEBUG && this.messageEnabled(Messages.PIC | Messages.WARN)) {
                                this.printMessage("outPIC" + iPIC + '(' + str.toHexByte(pic.port) + "): unexpected EOI command, IRQ " + nIRQ + " not in service", true);
                                if (!SAMPLER && MAXDEBUG) this.dbg.stopCPU();
                            }
                        }
                        /*
                         * TODO: Support EOI commands with automatic rotation (eg, ChipSet.PIC_LO.OCW2_EOI_ROT and ChipSet.PIC_LO.OCW2_EOI_ROTSPEC)
                         */
                        if (bOCW2 & ChipSet.PIC_LO.OCW2_SET_ROTAUTO) {
                            this.notice("PIC" + iPIC + '(' + str.toHexByte(pic.port) + "): unsupported OCW2 rotate command: " + str.toHexByte(bOut));
                        }
                    }
                    else  if (bOCW2 == ChipSet.PIC_LO.OCW2_SET_PRI) {
                        /*
                         * This OCW2 changes the lowest priority interrupt to the specified level (the default is 7)
                         */
                        pic.bIRLow = bOut & ChipSet.PIC_LO.OCW2_IR_LVL;
                    }
                    else {
                        /*
                         * TODO: Remaining commands to support: ChipSet.PIC_LO.OCW2_SET_ROTAUTO and ChipSet.PIC_LO.OCW2_CLR_ROTAUTO
                         */
                        this.notice("PIC" + iPIC + '(' + str.toHexByte(pic.port) + "): unsupported OCW2 automatic EOI command: " + str.toHexByte(bOut));
                    }
                } else {
                    /*
                     * This must be an OCW3 request. If it's a "Read Register" command (PIC_LO.OCW3_READ_CMD), inPICLo() will take care it.
                     *
                     * TODO: If OCW3 specified a "Poll" command (PIC_LO.OCW3_POLL_CMD) or a "Special Mask Mode" command (PIC_LO.OCW3_SMM_CMD),
                     * that's unfortunate, because I don't support them yet.
                     */
                    if (bOut & (ChipSet.PIC_LO.OCW3_POLL_CMD | ChipSet.PIC_LO.OCW3_SMM_CMD)) {
                        this.notice("PIC" + iPIC + '(' + str.toHexByte(pic.port) + "): unsupported OCW3 command: " + str.toHexByte(bOut));
                    }
                    pic.bOCW3 = bOut;
                }
            };
            
            /**
             * inPICHi(iPIC, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} iPIC
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             * @return {number} simulated port value
             */
            ChipSet.prototype.inPICHi = function(iPIC, addrFrom)
            {
                var pic = this.aPICs[iPIC];
                var b = pic.bIMR;
                if (this.messageEnabled(Messages.PIC | Messages.PORT | Messages.CHIPSET)) {
                    this.printMessageIO(pic.port+1, null, addrFrom, "PIC" + iPIC, b, true);
                }
                return b;
            };
            
            /**
             * outPICHi(iPIC, bOut, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} iPIC
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             */
            ChipSet.prototype.outPICHi = function(iPIC, bOut, addrFrom)
            {
                var pic = this.aPICs[iPIC];
                if (this.messageEnabled(Messages.PIC | Messages.PORT | Messages.CHIPSET)) {
                    this.printMessageIO(pic.port+1, bOut, addrFrom, "PIC" + iPIC, null, true);
                }
                if (pic.nICW < pic.aICW.length) {
                    pic.aICW[pic.nICW++] = bOut;
                    if (pic.nICW == 2 && (pic.aICW[0] & ChipSet.PIC_LO.ICW1_SNGL))
                        pic.nICW++;
                    if (pic.nICW == 3 && !(pic.aICW[0] & ChipSet.PIC_LO.ICW1_ICW4))
                        pic.nICW++;
                }
                else {
                    /*
                     * We have all our ICW "words" (ie, bytes), so this must be an OCW1 write (which is simply an IMR write)
                     */
                    pic.bIMR = bOut;
                    /*
                     * See the CPU's delayINTR() function for an explanation of why this explicit delay is necessary.
                     */
                    this.cpu.delayINTR();
                    /*
                     * Alas, we need a longer delay for the MODEL_5170's "KBD_RESET" function (F000:17D2), which must drop
                     * into a loop and decrement CX at least once after unmasking the KBD IRQ.  The "KBD_RESET" function on
                     * previous models could be handled with a 4-instruction delay provided by the Keyboard.resetDevice() call
                     * to setIRR(), but the MODEL_5170 needs a roughly 6-instruction delay after it unmasks the KBD IRQ.
                     */
                    this.checkIRR(!iPIC && bOut == 0xFD? 6 : 0);
                }
            };
            
            /**
             * checkIMR(nIRQ)
             *
             * @this {ChipSet}
             * @param {number} nIRQ
             * @return {boolean} true if the specified IRQ is masked, false if not
             */
            ChipSet.prototype.checkIMR = function(nIRQ)
            {
                var iPIC = nIRQ >> 3;
                var nIRL = nIRQ & 0x7;
                var pic = this.aPICs[iPIC];
                return (pic.bIMR & (0x1 << nIRL))? true : false;
            };
            
            /**
             * setIRR(nIRQ, nDelay)
             *
             * @this {ChipSet}
             * @param {number} nIRQ (IRQ 0-7 implies iPIC 0, and IRQ 8-15 implies iPIC 1)
             * @param {number} [nDelay] is an optional number of instructions to delay acknowledgment of the IRQ (see getIRRVector)
             */
            ChipSet.prototype.setIRR = function(nIRQ, nDelay)
            {
                var iPIC = nIRQ >> 3;
                var nIRL = nIRQ & 0x7;
                var pic = this.aPICs[iPIC];
                var bIRR = (1 << nIRL);
                if (!(pic.bIRR & bIRR)) {
                    pic.bIRR |= bIRR;
                    if (DEBUG && this.messageEnabled(this.messageBitsIRQ(nIRQ) | Messages.CHIPSET)) {
                        this.printMessage("setIRR(" + nIRQ + ")", true);
                    }
                    pic.nDelay = nDelay || 0;
                    this.checkIRR();
                }
            };
            
            /**
             * clearIRR(nIRQ)
             *
             * @this {ChipSet}
             * @param {number} nIRQ (IRQ 0-7 implies iPIC 0, and IRQ 8-15 implies iPIC 1)
             */
            ChipSet.prototype.clearIRR = function(nIRQ)
            {
                var iPIC = nIRQ >> 3;
                var nIRL = nIRQ & 0x7;
                var pic = this.aPICs[iPIC];
                var bIRR = (1 << nIRL);
                if (pic.bIRR & bIRR) {
                    pic.bIRR &= ~bIRR;
                    if (DEBUG && this.messageEnabled(this.messageBitsIRQ(nIRQ) | Messages.CHIPSET)) {
                        this.printMessage("clearIRR(" + nIRQ + ")", true);
                    }
                    this.checkIRR();
                }
            };
            
            /**
             * checkIRR(nDelay)
             *
             * @this {ChipSet}
             * @param {number} [nDelay] is an optional number of instructions to delay acknowledgment of a pending interrupt
             */
            ChipSet.prototype.checkIRR = function(nDelay)
            {
                /*
                 * Look for any IRR bits that aren't masked and aren't already in service; in theory, all we'd have to
                 * check is the master PIC (which is the *only* PIC on pre-5170 models), because when any IRQs are set or
                 * cleared on the slave, that would automatically be reflected in IRQ.SLAVE on the master; that's what
                 * setIRR() and clearIRR() used to do.
                 *
                 * Unfortunately, despite setIRR() and clearIRR()'s efforts, whenever a slave interrupt is acknowledged,
                 * getIRRVector() ends up clearing the IRR bits for BOTH the slave's IRQ and the master's IRQ.SLAVE.
                 * So if another lower-priority slave IRQ is waiting to be dispatched, that fact is no longer reflected
                 * in IRQ.SLAVE.
                 *
                 * Since checkIRR() is called on every EOI, we can resolve that problem here, by first checking the slave
                 * PIC for any unmasked, unserviced interrupts and updating the master's IRQ.SLAVE.
                 *
                 * And since this is ALSO called by both setIRR() and clearIRR(), those functions no longer need to perform
                 * their own IRQ.SLAVE updates.  This function consolidates the propagation of slave interrupts to the master.
                 */
                var pic;
                var bIR = -1;
            
                if (this.cPICs > 1) {
                    pic = this.aPICs[1];
                    bIR = ~(pic.bISR | pic.bIMR) & pic.bIRR;
                }
            
                pic = this.aPICs[0];
            
                if (bIR >= 0) {
                    if (bIR) {
                        pic.bIRR |= (1 << ChipSet.IRQ.SLAVE);
                    } else {
                        pic.bIRR &= ~(1 << ChipSet.IRQ.SLAVE);
                    }
                }
            
                bIR = ~(pic.bISR | pic.bIMR) & pic.bIRR;
            
                this.cpu.updateINTR(!!bIR);
            
                if (bIR && nDelay) pic.nDelay = nDelay;
            };
            
            /**
             * getIRRVector()
             *
             * getIRRVector() is called by the CPU whenever PS_IF is set and OP_NOINTR is clear.  Ordinarily, an immediate
             * response would seem perfectly reasonable, but unfortunately, there are places in the original ROM BIOS like
             * "KBD_RESET" (F000:E688) that enable interrupts but still expect nothing to happen for several more instructions.
             *
             * So, in addition to the two normal responses (an IDT vector #, or -1 indicating no pending interrupts), we must
             * support a third response (-2) that basically means: don't change the CPU interrupt state, just keep calling until
             * we return one of the first two responses.  The number of times we delay our normal response is determined by the
             * component that originally called setIRR with an optional delay parameter.
             *
             * @this {ChipSet}
             * @param {number} [iPIC]
             * @return {number} IDT vector # of the next highest-priority interrupt, -1 if none, or -2 for "please try your call again later"
             */
            ChipSet.prototype.getIRRVector = function(iPIC)
            {
                if (iPIC === undefined) iPIC = 0;
            
                /*
                 * Look for any IRR bits that aren't masked and aren't already in service...
                 */
                var nIDT = -1;
                var pic = this.aPICs[iPIC];
                if (!pic.nDelay) {
                    var bIR = pic.bIRR & ((pic.bISR | pic.bIMR) ^ 0xff);
                    /*
                     * The search for the next highest priority requested interrupt (that's also not in-service and not masked)
                     * must start with whichever interrupt is opposite the lowest priority interrupt (normally 7, but technically
                     * whatever bIRLow is currently set to).  For example:
                     *
                     *      If bIRLow is 7, then the priority order is: 0, 1, 2, 3, 4, 5, 6, 7.
                     *      If bIRLow is 6, then the priority order is: 7, 0, 1, 2, 3, 4, 5, 6.
                     *      If bIRLow is 5, then the priority order is: 6, 7, 0, 1, 2, 3, 4, 5.
                     *      etc.
                     *
                     * This process is similar to the search performed by non-specific EOIs, except those apply only to a single
                     * PIC (which is why a slave interrupt must be EOI'ed twice: once for the slave PIC and again for the master),
                     * whereas here we must search across all PICs.
                     */
                    var nIRL = pic.bIRLow + 1;
                    while (true) {
                        nIRL &= 0x7;
            
                        var bIRNext = 1 << nIRL;
                        if (bIR & bIRNext) {
            
                            if (!iPIC && nIRL == ChipSet.IRQ.SLAVE) {
                                /*
                                 * Slave interrupts are tied to the master PIC on IRQ2; query the slave PIC for the vector #
                                 */
                                nIDT = this.getIRRVector(1);
                            } else {
                                /*
                                 * Get the starting IDT vector # from ICW2 and add the IR level to obtain the target IDT vector #
                                 */
                                nIDT = pic.aICW[1] + nIRL;
                            }
            
                            if (nIDT >= 0) {
                                pic.bISR |= bIRNext;
            
                                /*
                                 * Setting the ISR implies clearing the IRR, but clearIRR() has side-effects we don't want
                                 * (eg, clearing the slave IRQ, notifying the CPU, etc), so we clear the IRR ourselves.
                                 */
                                pic.bIRR &= ~bIRNext;
            
                                var nIRQ = pic.nIRQBase + nIRL;
                                if (DEBUG && this.messageEnabled(this.messageBitsIRQ(nIRQ))) {
                                    this.printMessage("getIRRVector(): IRQ " + nIRQ + " interrupting @" + this.dbg.hexOffset(this.cpu.getIP(), this.cpu.getCS()) + " stack=" + this.dbg.hexOffset(this.cpu.getSP(), this.cpu.getSS()), true);
                                }
                                if (MAXDEBUG && DEBUGGER) {
                                    this.acInterrupts[nIRQ]++;
                                }
                            }
                            break;
                        }
            
                        if (nIRL++ == pic.bIRLow) break;
                    }
                } else {
                    nIDT = -2;
                    pic.nDelay--;
                }
                return nIDT;
            };
            
            /**
             * inTimer(iTimer, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} iTimer
             * @param {number} port (0x40, 0x41, 0x42, etc)
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             * @return {number} simulated port value
             */
            ChipSet.prototype.inTimer = function(iTimer, port, addrFrom)
            {
                var b;
                var timer = this.aTimers[iTimer];
                if (timer.countIndex == timer.countBytes) this.resetTimerIndex(iTimer);
                if (timer.fLatched) {
                    return timer.countLatched[timer.countIndex++];
                }
                this.updateTimer(iTimer);
                b = timer.countCurrent[timer.countIndex++];
                if (this.messageEnabled(Messages.TIMER | Messages.PORT)) {
                    this.printMessageIO(port, null, addrFrom, "TIMER" + iTimer, b, true);
                }
                return b;
            };
            
            /**
             * outTimer(iTimer, port, bOut, addrFrom)
             *
             * We now rely EXCLUSIVELY on setBurstCycles() to address situations where quick timer interrupt turn-around
             * is expected; eg, by the ROM BIOS POST when it sets TIMER0 to a low test count (0x16); since we typically
             * don't update any of the timers until after we've finished a burst of CPU cycles, we must reduce the current
             * burst cycle count, so that the current instruction burst will end at the same time a timer interrupt is expected.
             *
             * Note that in some cases, if the number of cycles remaining in the current burst is less than the target,
             * this may have the effect of *lengthening* the current burst instead of shortening it, but stepCPU() should be
             * OK with that.
             *
             * @this {ChipSet}
             * @param {number} iTimer
             * @param {number} port (0x40, 0x41, 0x42, etc)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             */
            ChipSet.prototype.outTimer = function(iTimer, port, bOut, addrFrom)
            {
                if (this.messageEnabled(Messages.TIMER | Messages.PORT)) {
                    this.printMessageIO(port, bOut, addrFrom, "TIMER" + iTimer, null, true);
                }
                var timer = this.aTimers[iTimer];
                if (timer.countIndex == timer.countBytes) this.resetTimerIndex(iTimer);
                timer.countInit[timer.countIndex++] = bOut;
                if (timer.countIndex == timer.countBytes) {
                    /*
                     * In general, writing a new count to a timer that's already counting isn't supposed to affect the current
                     * count, with the notable exceptions of MODE0 and MODE4.
                     */
                    if (!timer.fCounting || timer.mode == ChipSet.PIT_CTRL.MODE0 || timer.mode == ChipSet.PIT_CTRL.MODE4) {
                        timer.fLatched = false;
                        timer.countCurrent[0] = timer.countStart[0] = timer.countInit[0];
                        timer.countCurrent[1] = timer.countStart[1] = timer.countInit[1];
                        timer.nCyclesStart = this.cpu.getCycles(this.fScaleTimers);
                        timer.fCounting = true;
            
                        /*
                         * I believe MODE0 is the only mode where "OUT" (fOUT) starts out "low" (false); for the rest of the modes,
                         * "OUT" (fOUT) starts "high" (true).  It's also my understanding that the way edge-triggered interrupts work
                         * on the original PC is that an interrupt is requested only when the corresponding "OUT" transitions from
                         * "low" to "high".
                         */
                        timer.fOUT = (timer.mode != ChipSet.PIT_CTRL.MODE0);
            
                        if (iTimer == ChipSet.PIT0.TIMER0) {
                            /*
                             * TODO: Determine if there are situations/modes where I should NOT automatically clear IRQ0 on behalf of TIMER0.
                             */
                            this.clearIRR(ChipSet.IRQ.TIMER0);
                            var countInit = this.getTimerInit(ChipSet.PIT0.TIMER0);
                            var nCyclesRemain = (countInit * this.nTicksDivisor) | 0;
                            if (timer.mode == ChipSet.PIT_CTRL.MODE3) nCyclesRemain >>= 1;
                            this.cpu.setBurstCycles(nCyclesRemain);
                        }
                    }
            
                    if (iTimer == ChipSet.PIT0.TIMER2) this.setSpeaker();
                }
            };
            
            /**
             * inPIT1Ctrl(port, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} port (0x43)
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             * @return {number|null} simulated port value
             */
            ChipSet.prototype.inPIT1Ctrl = function(port, addrFrom)
            {
                this.printMessageIO(port, null, addrFrom, "PIT1_CTRL", null, Messages.TIMER);
                if (DEBUG) this.printMessage("PIT1_CTRL: Read-Back command not supported (yet)", Messages.TIMER);
                return null;
            };
            
            /**
             * outPIT1Ctrl(port, bOut, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} port (0x43)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             */
            ChipSet.prototype.outPIT1Ctrl = function(port, bOut, addrFrom)
            {
                this.bPIT1Ctrl = bOut;
                this.printMessageIO(port, bOut, addrFrom, "PIT1_CTRL", null, Messages.TIMER);
                /*
                 * Extract the SC (Select Counter) bits
                 */
                var iTimer = (bOut & ChipSet.PIT_CTRL.SC) >> 6;
                if (iTimer == 0x3) {
                    if (DEBUG) this.printMessage("PIT1_CTRL: Read-Back command not supported (yet)", Messages.TIMER);
                    return;
                }
                /*
                 * Extract the BCD, MODE, and RW bits, which we simply store as-is (see setTimerMode)
                 */
                var bcd = (bOut & ChipSet.PIT_CTRL.BCD);
                var mode = (bOut & ChipSet.PIT_CTRL.MODE);
                var rw = (bOut & ChipSet.PIT_CTRL.RW);
                if (!rw) {
                    this.latchTimer(iTimer);
                } else {
                    this.setTimerMode(iTimer, bcd, mode, rw);
            
                    /*
                     * The 5150 ROM BIOS code @F000:E285 ("TEST.7") would fail after a warm boot (eg, after a CTRL-ALT-DEL) because
                     * it assumed that no TIMER0 interrupt would occur between the point it unmasked the TIMER0 interrupt and the
                     * point it started reprogramming TIMER0.
                     *
                     * Similarly, the 5160 ROM BIOS @F000:E35D ("8253 TIMER CHECKOUT") would fail after initializing the EGA BIOS,
                     * because the EGA BIOS uses TIMER0 during its diagnostics; as in the previous example, by the time the 8253
                     * test code runs later, there's now a pending TIMER0 interrupt, which triggers an interrupt as soon as IRQ0 is
                     * unmasked @F000:E364.
                     *
                     * After looking at this problem at bit more closely the second time around (while debugging the EGA BIOS),
                     * it turns out I missed an important 8253 feature: whenever a new MODE0 control word OR a new MODE0 count
                     * is written, fOUT (which is what drives IRQ0) goes low.  So, by simply adding an appropriate clearIRR() call
                     * both here and in outTimer(), this annoying problem seems to be gone.
                     *
                     * TODO: Determine if there are situations/modes where I should NOT automatically clear IRQ0 on behalf of TIMER0.
                     */
                    if (iTimer == ChipSet.PIT0.TIMER0) this.clearIRR(ChipSet.IRQ.TIMER0);
            
                    /*
                     * Another TIMER0 HACK: The "CASSETTE DATA WRAP TEST" @F000:E51E occasionally reports an error when the second of
                     * two TIMER0 counts it latches is greater than the first.  You would think the ROM BIOS would expect this, since
                     * TIMER0 can reload its count at any time.  Is the ROM BIOS assuming that TIMER0 was initialized sufficiently
                     * recently that this should never happen?  I'm not sure, but for now, let's try resetting TIMER0's count immediately
                     * after TIMER2 has been reprogrammed for the test in question (ie, when interrupts are masked and PPIB is set as
                     * shown below).
                     *
                     * FWIW, I believe the cassette hardware was discontinued after MODEL_5150, and even if the test fails, it's non-fatal;
                     * the ROM BIOS displays an error (131) and moves on.
                     */
                    if (iTimer == ChipSet.PIT0.TIMER2) {
                        var pic = this.aPICs[0];
                        if (pic.bIMR == 0xff && this.bPPIB == (ChipSet.PPI_B.CLK_TIMER2 | ChipSet.PPI_B.ENABLE_SW2 | ChipSet.PPI_B.CASS_MOTOR_OFF | ChipSet.PPI_B.CLK_KBD)) {
                            var timer = this.aTimers[0];
                            timer.countStart[0] = timer.countInit[0];
                            timer.countStart[1] = timer.countInit[1];
                            timer.nCyclesStart = this.cpu.getCycles(this.fScaleTimers);
                            if (DEBUG && this.messageEnabled(Messages.TIMER)) {
                                this.printMessage("TIMER0 count reset @" + timer.nCyclesStart + " cycles", true);
                            }
                        }
                    }
                }
            };
            
            /**
             * getTimerInit(iTimer)
             *
             * @this {ChipSet}
             * @param {number} iTimer
             * @return {number} initial timer count
             */
            ChipSet.prototype.getTimerInit = function(iTimer)
            {
                var timer = this.aTimers[iTimer];
                var countInit = (timer.countInit[1] << 8) | timer.countInit[0];
                if (!countInit) countInit = (timer.countBytes == 1? 0x100 : 0x10000);
                return countInit;
            };
            
            /**
             * getTimerStart(iTimer)
             *
             * @this {ChipSet}
             * @param {number} iTimer
             * @return {number} starting timer count (from the initial timer count for the current countdown)
             */
            ChipSet.prototype.getTimerStart = function(iTimer)
            {
                var timer = this.aTimers[iTimer];
                var countStart = (timer.countStart[1] << 8) | timer.countStart[0];
                if (!countStart) countStart = (timer.countBytes == 1? 0x100 : 0x10000);
                return countStart;
            };
            
            /**
             * getTimerCycleLimit(iTimer, nCycles)
             *
             * This is called by the CPU to determine the maximum number of cycles it can process for the current burst.
             * It's presumed that no instructions have been executed since the last updateTimer(iTimer) call.
             *
             * @this {ChipSet}
             * @param {number} iTimer
             * @param {number} nCycles desired
             * @return {number} maximum number of cycles remaining for the specified timer (<= nCycles)
             */
            ChipSet.prototype.getTimerCycleLimit = function(iTimer, nCycles)
            {
                var timer = this.aTimers[iTimer];
                if (timer.fCounting) {
                    var nCyclesUpdate = this.cpu.getCycles(this.fScaleTimers);
                    var ticksElapsed = ((nCyclesUpdate - timer.nCyclesStart) / this.nTicksDivisor) | 0;
                    // DEBUG: this.assert(ticksElapsed >= 0);
                    var countStart = this.getTimerStart(iTimer);
                    var count = countStart - ticksElapsed;
                    if (timer.mode == ChipSet.PIT_CTRL.MODE3) count -= ticksElapsed;
                    // DEBUG: this.assert(count > 0);
                    var nCyclesRemain = (count * this.nTicksDivisor) | 0;
                    if (timer.mode == ChipSet.PIT_CTRL.MODE3) nCyclesRemain >>= 1;
                    if (nCycles > nCyclesRemain) nCycles = nCyclesRemain;
                }
                return nCycles;
            };
            
            /**
             * latchTimer(iTimer)
             *
             * @this {ChipSet}
             * @param {number} iTimer
             */
            ChipSet.prototype.latchTimer = function(iTimer)
            {
                /*
                 * Update the timer's current count
                 */
                this.updateTimer(iTimer);
            
                /*
                 * Now we can latch it
                 */
                var timer = this.aTimers[iTimer];
                timer.countLatched[0] = timer.countCurrent[0];
                timer.countLatched[1] = timer.countCurrent[1];
                timer.fLatched = true;
            
                /*
                 * VERIFY: That a latch request resets the timer index
                 */
                this.resetTimerIndex(iTimer);
            };
            
            /**
             * setTimerMode(iTimer, bcd, mode, rw)
             *
             * FYI: After setting a timer's mode, the CPU must set the timer's count before it becomes operational;
             * ie, before fCounting becomes true.
             *
             * @this {ChipSet}
             * @param {number} iTimer
             * @param {number} bcd
             * @param {number} mode
             * @param {number} rw
             */
            ChipSet.prototype.setTimerMode = function(iTimer, bcd, mode, rw)
            {
                var timer = this.aTimers[iTimer];
                timer.rw = rw;
                timer.mode = mode;
                timer.bcd = bcd;
                timer.countInit = [0, 0];
                timer.countCurrent = [0, 0];
                timer.countLatched = [0, 0];
                timer.fOUT = false;
                timer.fLatched = false;
                timer.fCounting = false;
                this.resetTimerIndex(iTimer);
            };
            
            /**
             * resetTimerIndex(iTimer)
             *
             * @this {ChipSet}
             * @param {number} iTimer
             */
            ChipSet.prototype.resetTimerIndex = function(iTimer)
            {
                var timer = this.aTimers[iTimer];
                timer.countIndex = (timer.rw == ChipSet.PIT_CTRL.RW_MSB? 1 : 0);
                timer.countBytes = (timer.rw == ChipSet.PIT_CTRL.RW_BOTH? 2 : 1);
            };
            
            /**
             * updateTimer(iTimer, fCycleReset)
             *
             * updateTimer() calculates and updates a timer's current count purely on an "on-demand" basis; we don't
             * actually adjust timer counters every 4 CPU cycles on a 4.77Mhz PC, since updating timers that frequently
             * would be prohibitively slow.  If you're single-stepping the CPU, then yes, updateTimer() will be called
             * after every stepCPU(), via updateAllTimers(), but if we're doing our job correctly here, the frequency
             * of calls to updateTimer() should not affect timer counts across otherwise identical runs.
             *
             * TODO: Implement support for all TIMER modes, and verify that all the modes currently implemented are
             * "up to spec"; they're close enough to make the ROM BIOS happy, but beyond that, I've done very little.
             *
             * @this {ChipSet}
             * @param {number} iTimer
             *      0: Time-of-Day interrupt (~18.2 interrupts/second)
             *      1: DMA refresh
             *      2: Sound/Cassette
             * @param {boolean} [fCycleReset] is true if a cycle-count reset is about to occur
             * @return {Object} timer
             */
            ChipSet.prototype.updateTimer = function(iTimer, fCycleReset)
            {
                var timer = this.aTimers[iTimer];
            
                /*
                 * Every timer's counting state is gated by its own fCounting flag; TIMER2 is further gated by PPI_B's
                 * CLK_TIMER2 bit.
                 */
                if (timer.fCounting && (iTimer != ChipSet.PIT0.TIMER2 || (this.bPPIB & ChipSet.PPI_B.CLK_TIMER2))) {
                    /*
                     * We determine the current timer count based on how many instruction cycles have elapsed since we started
                     * the timer.  Timers are supposed to be "ticking" at a rate of 1193181.8181 times per second, which is
                     * the system clock of 14.31818Mhz, divided by 12.
                     *
                     * Similarly, for an 8088, there are supposed to be 4.77Mhz instruction cycles per second, which comes from
                     * the system clock of 14.31818Mhz, divided by 3.
                     *
                     * If we divide 4,772,727 CPU cycles per second by 1,193,181 ticks per second, we get 4 cycles per tick,
                     * which agrees with the ratio of the clock divisors: 12 / 3 == 4.
                     *
                     * However, if getCycles() is being called with fScaleTimers == true AND the CPU is running faster than its
                     * base cycles-per-second setting, then getCycles() will divide the cycle count by the CPU's cycle multiplier,
                     * so that the timers fire with the same real-world frequency that the user expects.  However, that will
                     * break any code (eg, the ROM BIOS diagnostics) that assumes that the timers are ticking once every 4 cycles
                     * (or more like every 5 cycles on a 6Mhz 80286).
                     *
                     * So, when using a machine with the ChipSet "scaletimers" property set, make sure you reset the machine's
                     * speed prior to rebooting, otherwise you're likely to see ROM BIOS errors.  Ditto for any application code
                     * that makes similar assumptions about the relationship between CPU and timer speeds.
                     *
                     * In general, you're probably better off NOT using the "scaletimers" property, and simply allowing the timers
                     * to tick faster as you increase CPU speed (which is why fScaleTimers defaults to false).
                     */
                    var nCycles = this.cpu.getCycles(this.fScaleTimers);
            
                    /*
                     * Instead of maintaining partial tick counts, we calculate a fresh countCurrent from countStart every
                     * time we're called, using the cycle count recorded when the timer was initialized.  countStart is set
                     * to countInit when fCounting is first set, and then it is refreshed from countInit at the expiration of
                     * every count, so that if someone loaded a new countInit in the meantime (eg, BASICA), we'll pick it up.
                     *
                     * For the original MODEL_5170, the number of cycles per tick is approximately 6,000,000 / 1,193,181,
                     * or 5.028575, so we can no longer always divide cycles by 4 with a simple right-shift by 2.  The proper
                     * divisor (eg, 4 for MODEL_5150 and MODEL_5160, 5 for MODEL_5170, etc) is nTicksDivisor, which initBus()
                     * calculates using the base CPU speed returned by cpu.getCyclesPerSecond().
                     */
                    var ticksElapsed = ((nCycles - timer.nCyclesStart) / this.nTicksDivisor) | 0;
            
                    if (ticksElapsed < 0) {
                        if (DEBUG && this.messageEnabled(Messages.TIMER)) {
                            this.printMessage("updateTimer(" + iTimer + "): negative tick count (" + ticksElapsed + ")", true);
                        }
                        timer.nCyclesStart = nCycles;
                        ticksElapsed = 0;
                    }
            
                    var countInit = this.getTimerInit(iTimer);
                    var countStart = this.getTimerStart(iTimer);
            
                    var fFired = false;
                    var count = countStart - ticksElapsed;
            
                    /*
                     * NOTE: This mode is used by ROM BIOS test code that wants to verify timer interrupts are arriving
                     * neither too slowly nor too quickly.  As a result, I've had to add some corresponding trickery
                     * in outTimer() to force interrupt simulation immediately after a low initial count (0x16) has been set.
                     */
                    if (timer.mode == ChipSet.PIT_CTRL.MODE0) {
                        if (count <= 0) count = 0;
                        if (DEBUG && this.messageEnabled(Messages.TIMER)) {
                            this.printMessage("updateTimer(" + iTimer + "): MODE0 timer count=" + count, true);
                        }
                        if (!count) {
                            timer.fOUT = true;
                            timer.fCounting = false;
                            if (!iTimer) {
                                fFired = true;
                                this.setIRR(ChipSet.IRQ.TIMER0);
                                if (MAXDEBUG && DEBUGGER) this.acTimersFired[iTimer]++;
                            }
                        }
                    }
                    /*
                     * Early implementation of this mode was minimal because when using this mode, the ROM BIOS simply wanted
                     * to see the count changing; it wasn't looking for interrupts.  See ROM BIOS "TEST.03" code @F000:E0DE,
                     * where TIMER1 is programmed for MODE2, LSB (the same settings, incidentally, used immediately afterward
                     * for TIMER1 in conjunction with DMA channel 0 memory refreshes).
                     *
                     * Now this mode generates interrupts.  Note that "OUT" goes "low" when the count reaches 1, then "high"
                     * one tick later, at which point the count is reloaded and counting continues.
                     *
                     * Chances are, we will often miss the exact point at which the count becomes 1 (or more importantly, one
                     * tick later, when the count *would* become 0, since that's when "OUT" transitions from "low" to "high"),
                     * but as with MODE3, hopefully no one will mind.
                     *
                     * FYI, technically, it appears that the count is never supposed to reach 0, and that an initial count of 1
                     * is "illegal", whatever that means.
                     */
                    else if (timer.mode == ChipSet.PIT_CTRL.MODE2) {
                        timer.fOUT = (count != 1);          // yes, this line does seem rather pointless....
                        if (count <= 0) {
                            count = countInit + count;
                            if (count <= 0) {
                                /*
                                 * TODO: Consider whether we ever care about TIMER1 or TIMER2 underflow
                                 */
                                if (DEBUG && this.messageEnabled(Messages.TIMER) && !iTimer) {
                                    this.printMessage("updateTimer(" + iTimer + "): mode=2, underflow=" + count, true);
                                }
                                count = countInit;
                            }
                            timer.countStart[0] = count & 0xff;
                            timer.countStart[1] = count >> 8;
                            timer.nCyclesStart = nCycles;
                            if (!iTimer && timer.fOUT) {
                                fFired = true;
                                this.setIRR(ChipSet.IRQ.TIMER0);
                                if (MAXDEBUG && DEBUGGER) this.acTimersFired[iTimer]++;
                            }
                        }
                    }
                    /*
                     * NOTE: This is the normal mode for TIMER0, which the ROM BIOS uses to generate h/w interrupts roughly
                     * 18.2 times per second.  In this mode, the count must be decremented twice as fast (hence the extra ticks
                     * subtraction below, in addition to the subtraction above), but IRQ_TIMER0 is raised only on alternate
                     * iterations; ie, only when fOUT transitions to true ("high").  The equal alternating fOUT states is why
                     * this mode is referred to as "square wave" mode.
                     *
                     * TODO: Implement the correct behavior for this mode when the count is ODD.  In that case, fOUT is supposed
                     * to be "high" for (N + 1) / 2 ticks and "low" for (N - 1) / 2 ticks.
                     */
                    else if (timer.mode == ChipSet.PIT_CTRL.MODE3) {
                        count -= ticksElapsed;
                        if (count <= 0) {
                            timer.fOUT = !timer.fOUT;
                            count = countInit + count;
                            if (count <= 0) {
                                /*
                                 * TODO: Consider whether we ever care about TIMER1 or TIMER2 underflow
                                 */
                                if (DEBUG && this.messageEnabled(Messages.TIMER) && !iTimer) {
                                    this.printMessage("updateTimer(" + iTimer + "): mode=3, underflow=" + count, true);
                                }
                                count = countInit;
                            }
                            if (MAXDEBUG && DEBUGGER && !iTimer) {
                                var nCycleDelta = 0;
                                if (this.acTimer0Counts.length > 0) nCycleDelta = nCycles - this.acTimer0Counts[0][1];
                                this.acTimer0Counts.push([count, nCycles, nCycleDelta]);
                            }
                            timer.countStart[0] = count & 0xff;
                            timer.countStart[1] = count >> 8;
                            timer.nCyclesStart = nCycles;
                            if (!iTimer && timer.fOUT) {
                                fFired = true;
                                this.setIRR(ChipSet.IRQ.TIMER0);
                                if (MAXDEBUG && DEBUGGER) this.acTimersFired[iTimer]++;
                            }
                        }
                    }
            
                    if (DEBUG && this.messageEnabled(Messages.TIMER | Messages.LOG)) {
                        this.log("TIMER" + iTimer + " count: " + count + ", ticks: " + ticksElapsed + ", fired: " + (fFired? "true" : "false"));
                    }
            
                    timer.countCurrent[0] = count & 0xff;
                    timer.countCurrent[1] = count >> 8;
                    if (fCycleReset) this.nCyclesStart = 0;
                }
                return timer;
            };
            
            /**
             * updateAllTimers(fCycleReset)
             *
             * @this {ChipSet}
             * @param {boolean} [fCycleReset] is true if a cycle-count reset is about to occur
             */
            ChipSet.prototype.updateAllTimers = function(fCycleReset)
            {
                for (var iTimer = 0; iTimer < this.aTimers.length; iTimer++) {
                    this.updateTimer(iTimer, fCycleReset);
                }
                if (this.model >= ChipSet.MODEL_5170) this.updateRTCTime();
            };
            
            /**
             * inPPIA(port, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} port (0x60)
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             * @return {number} simulated port value
             */
            ChipSet.prototype.inPPIA = function(port, addrFrom)
            {
                var b = this.bPPIA;
                if (this.bPPICtrl & ChipSet.PPI_CTRL.A_IN) {
                    if (this.bPPIB & ChipSet.PPI_B.CLEAR_KBD) {
                        b = this.sw1;
                    }
                    else if (this.kbd) {
                        b = this.kbd.readScanCode();
                    }
                }
                this.printMessageIO(port, null, addrFrom, "PPI_A", b);
                return b;
            };
            
            /**
             * outPPIA(port, bOut, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} port (0x60)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             */
            ChipSet.prototype.outPPIA = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, "PPI_A");
                this.bPPIA = bOut;
            };
            
            /**
             * inPPIB(port, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} port (0x61)
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             * @return {number} simulated port value
             */
            ChipSet.prototype.inPPIB = function(port, addrFrom)
            {
                var b = this.bPPIB;
                this.printMessageIO(port, null, addrFrom, "PPI_B", b);
                return b;
            };
            
            /**
             * outPPIB(port, bOut, addrFrom)
             *
             * This is the original (MODEL_5150 and MODEL_5160) handler for port 0x61.  Functionality common
             * to all models must be placed in updatePPIB().
             *
             * @this {ChipSet}
             * @param {number} port (0x61)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             */
            ChipSet.prototype.outPPIB = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, "PPI_B");
                this.updatePPIB(bOut);
            };
            
            /**
             * updatePPIB(bOut)
             *
             * On MODEL_5170 and up, this updates the "simulated" PPI_B.  The only common (and well-documented) PPI_B bits
             * across all models are PPI_B.CLK_TIMER2 and PPI_B.SPK_TIMER2, so its possible that this function may need to
             * limit its updates to just those bits, and move any model-specific requirements back into the appropriate I/O
             * handlers (PPIB or 8042RWReg).  We'll see.
             *
             * UPDATE: The WOLF3D keyboard interrupt handler toggles the CLEAR_KBD bit of port 0x61 (ie, it sets and then
             * clears the bit) after reading the scan code from port 0x60; assuming that they use the same interrupt handler
             * for all machine models (which I haven't verified), the clear implication is that updatePPIB() also needs to
             * support CLEAR_KBD and CLK_KBD, so I've moved that code from outPPIB() to updatePPIB().
             *
             * @this {ChipSet}
             * @param {number} bOut
             */
            ChipSet.prototype.updatePPIB = function(bOut)
            {
                var fNewSpeaker = !!(bOut & ChipSet.PPI_B.SPK_TIMER2);
                var fOldSpeaker = !!(this.bPPIB & ChipSet.PPI_B.SPK_TIMER2);
                this.bPPIB = bOut;
                if (this.kbd) this.kbd.setEnabled(!(bOut & ChipSet.PPI_B.CLEAR_KBD), !!(bOut & ChipSet.PPI_B.CLK_KBD));
                if (fNewSpeaker != fOldSpeaker) {
                    /*
                     * Originally, this code didn't catch the "ERROR_BEEP" case @F000:EC34, which first turns both PPI_B.CLK_TIMER2 (0x01)
                     * and PPI_B.SPK_TIMER2 (0x02) off, then turns on only PPI_B.SPK_TIMER2 (0x02), then restores the original port value.
                     *
                     * So, when the ROM BIOS keyboard buffer got full, we didn't issue a BEEP alert.  I've fixed that by limiting the test
                     * to PPI_B.SPK_TIMER2 and ignoring PPI_B.CLK_TIMER2.
                     */
                    this.setSpeaker(fNewSpeaker);
                }
            };
            
            /**
             * inPPIC(port, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} port (0x62)
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             * @return {number} simulated port value
             */
            ChipSet.prototype.inPPIC = function(port, addrFrom)
            {
                var b = 0;
            
                /*
                 * If you ever wanted to simulate I/O channel errors or R/W memory parity errors, you could
                 * add either PPI_C.IO_CHANNEL_CHK (0x40) or PPI_C.RW_PARITY_CHK (0x80) to the return value (b).
                 */
                if (this.model == ChipSet.MODEL_5150) {
                    if (this.bPPIB & ChipSet.PPI_B.ENABLE_SW2) {
                        b |= this.sw2 & ChipSet.PPI_C.SW;
                    } else {
                        b |= (this.sw2 >> 4) & 0x1;     // QUESTION: Does any component actually care about SW2[5] on a MODEL_5150?
                    }
                } else {
                    if (this.bPPIB & ChipSet.PPI_B.ENABLE_SW_HI) {
                        b |= this.sw1 >> 4;
                    } else {
                        b |= this.sw1 & 0xf;
                    }
                }
            
                if (this.bPPIB & ChipSet.PPI_B.CLK_TIMER2) {
                    var timer = this.updateTimer(ChipSet.PIT0.TIMER2);
                    if (timer.fOUT) {
                        if (this.bPPIB & ChipSet.PPI_B.SPK_TIMER2)
                            b |= ChipSet.PPI_C.TIMER2_OUT;
                        else
                            b |= ChipSet.PPI_C.CASS_DATA_IN;
                    }
                }
            
                /*
                 * The ROM BIOS polls this port incessantly during its memory tests, checking for memory parity errors
                 * (which of course we never report), so we further restrict these port messages to Messages.MEM.
                 */
                this.printMessageIO(port, null, addrFrom, "PPI_C", b, Messages.CHIPSET | Messages.MEM);
                return b;
            };
            
            /**
             * outPPIC(port, bOut, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} port (0x62)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             */
            ChipSet.prototype.outPPIC = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, "PPI_C");
                this.bPPIC = bOut;
            };
            
            /**
             * inPPICtrl(port, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} port (0x63)
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             * @return {number} simulated port value
             */
            ChipSet.prototype.inPPICtrl = function(port, addrFrom)
            {
                var b = this.bPPICtrl;
                this.printMessageIO(port, null, addrFrom, "PPI_CTRL", b);
                return b;
            };
            
            /**
             * outPPICtrl(port, bOut, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} port (0x63)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined if the Debugger is trying to write the specified port)
             */
            ChipSet.prototype.outPPICtrl = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, "PPI_CTRL");
                this.bPPICtrl = bOut;
            };
            
            /**
             * in8042OutBuff(port, addrFrom)
             *
             * Return the contents of the OUTBUFF register and clear the OUTBUFF_FULL status bit.
             *
             * This function then calls kbd.checkScanCode(), on the theory that the next buffered scan
             * code, if any, can now be delivered to OUTBUFF.  However, there are applications like
             * BASICA that install a keyboard interrupt handler that reads OUTBUFF, do some scan code
             * preprocessing, and then pass control on to the ROM's interrupt handler.  As a result,
             * OUTBUFF is read multiple times during a single interrupt, so filling it with new data
             * after every read would result in lost scan codes.
             *
             * To avoid that problem, kbd.checkScanCode() also requires that kbd.setEnabled() be called
             * before it supplies any more data via notifyKbdData().  That will happen as soon as the
             * ROM re-enables the controller, and is why KBC.CMD.ENABLE_KBD processing also ends with a
             * call to kbd.checkScanCode().
             *
             * Note that, the foregoing notwithstanding, I still clear the OUTBUFF_FULL bit here (as I
             * believe I should); fortunately, none of the interrupt handlers rely on OUTBUFF_FULL as a
             * prerequisite for reading OUTBUFF (not the BASICA handler, and not the ROM).  The assumption
             * seems to be that if an interrupt occurred, OUTBUFF must contain data, regardless of the
             * state of OUTBUFF_FULL.
             *
             * @this {ChipSet}
             * @param {number} port (0x60)
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             * @return {number} simulated port value
             */
            ChipSet.prototype.in8042OutBuff = function(port, addrFrom)
            {
                var b = this.b8042OutBuff;
                this.printMessageIO(port, null, addrFrom, "8042_OUTBUFF", b, Messages.C8042);
                this.b8042Status &= ~(ChipSet.KBC.STATUS.OUTBUFF_FULL | ChipSet.KBC.STATUS.OUTBUFF_DELAY);
                if (this.kbd) this.kbd.checkScanCode();
                return b;
            };
            
            /**
             * out8042InBuffData(port, bOut, addrFrom)
             *
             * This writes to the 8042's input buffer; using this port (ie, 0x60 instead of 0x64) designates the
             * the byte as a KBC.DATA.CMD "data byte".  Before clearing KBC.STATUS.CMD_FLAG, however, we see if it's set,
             * and then based on the previous KBC.CMD "command byte", we do whatever needs to be done with this "data byte".
             *
             * @this {ChipSet}
             * @param {number} port (0x60)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined if the Debugger is trying to write the specified port)
             */
            ChipSet.prototype.out8042InBuffData = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, "8042_INBUF.DATA", null, Messages.C8042);
            
                if (this.b8042Status & ChipSet.KBC.STATUS.CMD_FLAG) {
                    switch (this.b8042InBuff) {
            
                    case ChipSet.KBC.CMD.WRITE_CMD:
                        this.set8042CmdData(bOut);
                        break;
            
                    case ChipSet.KBC.CMD.WRITE_OUTPORT:
                        this.set8042OutPort(bOut);
                        break;
            
                    /*
                     * This case is reserved for command bytes that the 8042 is not expecting, which should therefore be passed on
                     * to the Keyboard itself.
                     *
                     * Here's some relevant MODEL_5170 ROM BIOS code, "XMIT_8042" (missing from the original MODEL_5170 ROM BIOS listing),
                     * which sends a command code in AL to the Keyboard and waits for a response, returning it in AL.  Note that
                     * the only "success" exit path from this function involves LOOPing 64K times before finally reading the Keyboard's
                     * response; either the hardware and/or this code seems a bit brain-damaged if that's REALLY what you had to do to ensure
                     * a valid response....
                     *
                     *      F000:1B25 86E0          XCHG     AH,AL
                     *      F000:1B27 2BC9          SUB      CX,CX
                     *      F000:1B29 E464          IN       AL,64
                     *      F000:1B2B A802          TEST     AL,02      ; WAIT FOR INBUFF_FULL TO BE CLEAR
                     *      F000:1B2D E0FA          LOOPNZ   1B29
                     *      F000:1B2F E334          JCXZ     1B65       ; EXIT WITH ERROR (CX == 0)
                     *      F000:1B31 86E0          XCHG     AH,AL
                     *      F000:1B33 E660          OUT      60,AL      ; SAFE TO WRITE KEYBOARD CMD TO INBUFF NOW
                     *      F000:1B35 2BC9          SUB      CX,CX
                     *      F000:1B37 E464          IN       AL,64
                     *      F000:1B39 8AE0          MOV      AH,AL
                     *      F000:1B3B A801          TEST     AL,01
                     *      F000:1B3D 7402          JZ       1B41
                     *      F000:1B3F E460          IN       AL,60      ; READ PORT 0x60 IF OUTBUFF_FULL SET ("FLUSH"?)
                     *      F000:1B41 F6C402        TEST     AH,02
                     *      F000:1B44 E0F1          LOOPNZ   1B37
                     *      F000:1B46 751D          JNZ      1B65       ; EXIT WITH ERROR (CX == 0)
                     *      F000:1B48 B306          MOV      BL,06
                     *      F000:1B4A 2BC9          SUB      CX,CX
                     *      F000:1B4C E464          IN       AL,64
                     *      F000:1B4E A801          TEST     AL,01
                     *      F000:1B50 E1FA          LOOPZ    1B4C
                     *      F000:1B52 7508          JNZ      1B5C       ; PROCEED TO EXIT NOW THAT OUTBUFF_FULL IS SET
                     *      F000:1B54 FECB          DEC      BL
                     *      F000:1B56 75F4          JNZ      1B4C
                     *      F000:1B58 FEC3          INC      BL
                     *      F000:1B5A EB09          JMP      1B65       ; EXIT WITH ERROR (CX == 0)
                     *      F000:1B5C 2BC9          SUB      CX,CX
                     *      F000:1B5E E2FE          LOOP     1B5E       ; LOOOOOOPING....
                     *      F000:1B60 E460          IN       AL,60
                     *      F000:1B62 83E901        SUB      CX,0001    ; EXIT WITH SUCCESS (CX != 0)
                     *      F000:1B65 C3            RET
                     *
                     * But WAIT, the FUN doesn't end there.  After this function returns, "KBD_RESET" waits for a Keyboard interrupt
                     * to occur, hoping for scan code 0xAA as the Keyboard's final response.  "KBD_RESET" also returns CX to the caller,
                     * and the caller ("TEST.21") assumes there was no interrupt if CX is zero.
                     *
                     *              MOV     AL,0FDH
                     *              OUT     INTA01,AL
                     *              MOV     INTR_FLAG,0
                     *              STI
                     *              MOV     BL,10
                     *              SUB     CX,CX
                     *      G11:    TEST    [1NTR_FLAG],02H
                     *              JNZ     G12
                     *              LOOP    G11
                     *              DEC     BL
                     *              JNZ     G11
                     *              ...
                     *
                     * However, if [INTR_FLAG] is set immediately, the above code will exit immediately, without ever decrementing CX.
                     * CX can be zero not only if the loop exhausted it, but also if no looping was required; the latter is not an
                     * error, but "TEST.21" assumes that it is.
                     */
                    default:
                        this.set8042CmdData(this.b8042CmdData & ~ChipSet.KBC.DATA.CMD.NO_CLOCK);
                        if (this.kbd) this.set8042OutBuff(this.kbd.sendCmd(bOut));
                        break;
                    }
                }
                this.b8042InBuff = bOut;
                this.b8042Status &= ~ChipSet.KBC.STATUS.CMD_FLAG;
            };
            
            /**
             * in8042RWReg(port, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} port (0x61)
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             * @return {number} simulated port value
             */
            ChipSet.prototype.in8042RWReg = function(port, addrFrom)
            {
                /*
                 * Normally, we return whatever was last written to this port, but we do need to mask the
                 * two upper-most bits (KBC.RWREG.NMI_ERROR), as those are output-only bits used to signal
                 * parity errors.
                 *
                 * Also, "TEST.09" of the MODEL_5170 BIOS expects the REFRESH_BIT to alternate, so we used to
                 * do this:
                 *
                 *      this.bPPIB ^= ChipSet.KBC.RWREG.REFRESH_BIT;
                 *
                 * However, the MODEL_5170_REV3 BIOS not only checks REFRESH_BIT in "TEST.09", but includes
                 * an additional test right before "TEST.11A", which requires the bit change "a bit less"
                 * frequently.  This new test sets CX to zero, and at the end of the test (@F000:05B8), CX
                 * must be in the narrow range of 0xF600 through 0xF9FD.
                 *
                 * In fact, the new "WAITF" function @F000:1A3A tells us exactly how frequently REFRESH_BIT
                 * is expected to change now.  That function performs a "FIXED TIME WAIT", where CX is a
                 * "COUNT OF 15.085737us INTERVALS TO WAIT".
                 *
                 * So we now tie the state of the REFRESH_BIT to bit 6 of the current CPU cycle count,
                 * effectively toggling the bit after every 64 cycles.  On an 8Mhz CPU that can do 8 cycles
                 * in 1us, 64 cycles represents 8us, so that might be a bit fast for "WAITF", but bit 6
                 * is the only choice that also satisfies the pre-"TEST.11A" test as well.
                 */
                var b = this.bPPIB & ~(ChipSet.KBC.RWREG.NMI_ERROR | ChipSet.KBC.RWREG.REFRESH_BIT) | ((this.cpu.getCycles() & 0x40)? ChipSet.KBC.RWREG.REFRESH_BIT : 0);
                /*
                 * Thanks to the WAITF function, this has become a very "busy" port, so if this generates too
                 * many messages, try adding Messages.LOG to the criteria.
                 */
                this.printMessageIO(port, null, addrFrom, "8042_RWREG", b, Messages.C8042);
                return b;
            };
            
            /**
             * out8042RWReg(port, bOut, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} port (0x61)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             */
            ChipSet.prototype.out8042RWReg = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, "8042_RWREG", null, Messages.C8042);
                this.updatePPIB(bOut);
            };
            
            /**
             * in8042Status(port, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} port (0x64)
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             * @return {number} simulated port value
             */
            ChipSet.prototype.in8042Status = function(port, addrFrom)
            {
                this.printMessageIO(port, null, addrFrom, "8042_STATUS", this.b8042Status, Messages.C8042);
                var b = this.b8042Status & 0xff;
                /*
                 * There's code in the 5170 BIOS (F000:03BF) that writes an 8042 command (0xAA), waits for
                 * KBC.STATUS.INBUFF_FULL to go clear (which it always is, because we always accept commands
                 * immediately), then checks KBC.STATUS.OUTBUFF_FULL and performs a "flush" on port 0x60 if
                 * it's set, then waits for KBC.STATUS.OUTBUFF_FULL *again*.  Unfortunately, the "flush" throws
                 * away our response if we respond immediately.
                 *
                 * So now when out8042InBuffCmd() has a response, it sets KBC.STATUS.OUTBUFF_DELAY instead
                 * (which is outside the 0xff range of bits we return); when we see KBC.STATUS.OUTBUFF_DELAY,
                 * we clear it and set KBC.STATUS.OUTBUFF_FULL, which will be returned on the next read.
                 *
                 * This provides a single poll delay, so that the aforementioned "flush" won't toss our response.
                 * If longer delays are needed down the road, we may need to set a delay count in the upper (hidden)
                 * bits of b8042Status, instead of using a single delay bit.
                 */
                if (this.b8042Status & ChipSet.KBC.STATUS.OUTBUFF_DELAY) {
                    this.b8042Status |= ChipSet.KBC.STATUS.OUTBUFF_FULL;
                    this.b8042Status &= ~ChipSet.KBC.STATUS.OUTBUFF_DELAY;
                }
                return b;
            };
            
            /**
             * out8042InBuffCmd(port, bOut, addrFrom)
             *
             * This writes to the 8042's input buffer; using this port (ie, 0x64 instead of 0x60) designates the
             * the byte as a "command byte".  We immediately set KBC.STATUS.CMD_FLAG, and then see if we can act upon
             * the command immediately (some commands requires us to wait for a "data byte").
             *
             * @this {ChipSet}
             * @param {number} port (0x64)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined if the Debugger is trying to write the specified port)
             */
            ChipSet.prototype.out8042InBuffCmd = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, "8042_INBUFF.CMD", null, Messages.C8042);
                this.assert(!(this.b8042Status & ChipSet.KBC.STATUS.INBUFF_FULL));
                this.b8042InBuff = bOut;
            
                this.b8042Status |= ChipSet.KBC.STATUS.CMD_FLAG;
            
                var bPulseBits = 0;
                if (this.b8042InBuff >= ChipSet.KBC.CMD.PULSE_OUTPORT) {
                    bPulseBits = (this.b8042InBuff ^ 0xf);
                    /*
                     * Now that we have isolated the bit(s) to pulse, map all pulse commands to KBC.CMD.PULSE_OUTPORT
                     */
                    this.b8042InBuff = ChipSet.KBC.CMD.PULSE_OUTPORT;
                }
            
                switch (this.b8042InBuff) {
                case ChipSet.KBC.CMD.READ_CMD:          // 0x20
                    this.set8042OutBuff(this.b8042CmdData);
                    break;
            
                case ChipSet.KBC.CMD.WRITE_CMD:         // 0x60
                    /*
                     * No further action required for this command; more data is expected via out8042InBuffData()
                     */
                    break;
            
                case ChipSet.KBC.CMD.DISABLE_KBD:       // 0xAD
                    this.set8042CmdData(this.b8042CmdData | ChipSet.KBC.DATA.CMD.NO_CLOCK);
                    if (DEBUG) this.printMessage("keyboard disabled", Messages.KEYBOARD | Messages.PORT);
                    /*
                     * NOTE: The MODEL_5170 BIOS calls "KBD_RESET" (F000:17D2) while the keyboard interface is disabled,
                     * yet we must still deliver the Keyboard's CMDRES.BAT_OK response code?  Seems like an odd thing for
                     * a "disabled interface" to do.
                     */
                    break;
            
                case ChipSet.KBC.CMD.ENABLE_KBD:        // 0xAE
                    this.set8042CmdData(this.b8042CmdData & ~ChipSet.KBC.DATA.CMD.NO_CLOCK);
                    if (DEBUG) this.printMessage("keyboard re-enabled", Messages.KEYBOARD | Messages.PORT);
                    if (this.kbd) this.kbd.checkScanCode();
                    break;
            
                case ChipSet.KBC.CMD.SELF_TEST:         // 0xAA
                    if (this.kbd) this.kbd.flushScanCode();
                    this.set8042CmdData(this.b8042CmdData | ChipSet.KBC.DATA.CMD.NO_CLOCK);
                    if (DEBUG) this.printMessage("keyboard disabled on reset", Messages.KEYBOARD | Messages.PORT);
                    this.set8042OutBuff(ChipSet.KBC.DATA.SELF_TEST.OK);
                    this.set8042OutPort(ChipSet.KBC.OUTPORT.NO_RESET | ChipSet.KBC.OUTPORT.A20_ON);
                    break;
            
                case ChipSet.KBC.CMD.INTF_TEST:         // 0xAB
                    /*
                     * TODO: Determine all the side-effects of the Interface Test, if any.
                     */
                    this.set8042OutBuff(ChipSet.KBC.DATA.INTF_TEST.OK);
                    break;
            
                case ChipSet.KBC.CMD.READ_INPORT:       // 0xC0
                    this.set8042OutBuff(this.b8042InPort);
                    break;
            
                case ChipSet.KBC.CMD.READ_OUTPORT:      // 0xD0
                    this.set8042OutBuff(this.b8042OutPort);
                    break;
            
                case ChipSet.KBC.CMD.WRITE_OUTPORT:     // 0xD1
                    /*
                     * No further action required for this command; more data is expected via out8042InBuffData()
                     */
                    break;
            
                case ChipSet.KBC.CMD.READ_TEST:         // 0xE0
                    this.set8042OutBuff((this.b8042CmdData & ChipSet.KBC.DATA.CMD.NO_CLOCK)? 0 : ChipSet.KBC.TESTPORT.KBD_CLOCK);
                    break;
            
                case ChipSet.KBC.CMD.PULSE_OUTPORT:     // 0xF0-0xFF
                    if (bPulseBits & 0x1) {
                        /*
                         * Bit 0 of the 8042's output port is connected to RESET.  If it's pulsed, the processor resets.
                         * We don't want to clear *all* CPU state (eg, cycle counts), so we call cpu.resetRegs() instead
                         * of cpu.reset().
                         */
                        this.cpu.resetRegs();
                    }
                    break;
            
                default:
                    if (DEBUG && this.messageEnabled(Messages.C8042)) {
                        this.printMessage("unrecognized 8042 command: " + str.toHexByte(this.b8042InBuff), true);
                        this.dbg.stopCPU();
                    }
                    break;
                }
            };
            
            /**
             * set8042CmdData(b)
             *
             * @this {ChipSet}
             * @param {number} b
             */
            ChipSet.prototype.set8042CmdData = function(b)
            {
                this.b8042CmdData = b;
                this.assert(ChipSet.KBC.DATA.CMD.SYS_FLAG === ChipSet.KBC.STATUS.SYS_FLAG);
                this.b8042Status = (this.b8042Status & ~ChipSet.KBC.STATUS.SYS_FLAG) | (b & ChipSet.KBC.DATA.CMD.SYS_FLAG);
                if (this.kbd) {
                    /*
                     * This seems to be what the doctor ordered for the MODEL_5170_REV3 BIOS @F000:0A6D, where it
                     * sends ChipSet.KBC.CMD.WRITE_CMD to port 0x64, followed by 0x4D to port 0x60, which clears NO_CLOCK
                     * and enables the keyboard.  The BIOS then waits for OUTBUFF_FULL to be set, at which point it seems
                     * to be anticipating an 0xAA response in the output buffer.
                     *
                     * And indeed, if we call the original MODEL_5150/MODEL_5160 setEnabled() Keyboard interface here,
                     * and both the data and clock lines have transitioned high (ie, both parameters are true), then it
                     * will call resetDevice(), generating a Keyboard.CMDRES.BAT_OK response.
                     *
                     * This agrees with my understanding of what happens when the 8042 toggles the clock line high
                     * (ie, clears NO_CLOCK): the TechRef's "Basic Assurance Test" section says that when the Keyboard is
                     * powered on, it performs the BAT, and then when the clock and data lines go high, the keyboard sends
                     * a completion code (eg, 0xAA for success, or 0xFC or something else for failure).
                     */
                    this.kbd.setEnabled(!!(b & ChipSet.KBC.DATA.CMD.NO_INHIBIT), !(b & ChipSet.KBC.DATA.CMD.NO_CLOCK));
                }
            };
            
            /**
             * set8042OutBuff(b, fNoDelay)
             *
             * The 5170 ROM BIOS assumed there would be a slight delay after certain 8042 commands, like SELF_TEST
             * (0xAA), before there was an OUTBUFF response; in fact, there is BIOS code that will fail without such
             * a delay.  This is discussed in greater detail in in8042Status().
             *
             * So we default to a "single poll" delay, setting OUTBUFF_DELAY instead of OUTBUFF_FULL, unless the caller
             * explicitly asks for no delay.  The fNoDelay parameter was added later, so that notifyKbdData() could
             * request immediate delivery of keyboard scan codes, because some operating systems (eg, Microport's 1986
             * version of Unix for PC AT machines) poll the status port only once, immediately giving up if no data is
             * available.
             *
             * TODO: Determine if we should invert the fNoDelay default (from false to true) and delay only in specific
             * cases; ie, perhaps only the SELF_TEST command required a delay.
             *
             * @this {ChipSet}
             * @param {number} b
             * @param {boolean} [fNoDelay]
             */
            ChipSet.prototype.set8042OutBuff = function(b, fNoDelay)
            {
                if (b >= 0) {
                    this.b8042OutBuff = b;
                    if (fNoDelay) {
                        this.b8042Status |= ChipSet.KBC.STATUS.OUTBUFF_FULL;
                    } else {
                        this.b8042Status &= ~ChipSet.KBC.STATUS.OUTBUFF_FULL;
                        this.b8042Status |= ChipSet.KBC.STATUS.OUTBUFF_DELAY;
                    }
                    if (DEBUG && this.messageEnabled(Messages.KEYBOARD | Messages.PORT)) {
                        this.printMessage("set8042OutBuff(" + str.toHexByte(b) + ',' + (fNoDelay? "no" : "") + "delay)", true);
                    }
                }
            };
            
            /**
             * set8042OutPort(b)
             *
             * @this {ChipSet}
             * @param {number} b
             */
            ChipSet.prototype.set8042OutPort = function(b)
            {
                this.b8042OutPort = b;
            
                this.bus.setA20(!!(b & ChipSet.KBC.OUTPORT.A20_ON));
            
                if (!(b & ChipSet.KBC.OUTPORT.NO_RESET)) {
                    /*
                     * Bit 0 of the 8042's output port is connected to RESET.  Normally, it's "pulsed" with the
                     * KBC.CMD.PULSE_OUTPORT command, so if a RESET is detected via this command, we should try to
                     * determine if that's what the caller intended.
                     */
                    if (DEBUG && this.messageEnabled(Messages.C8042)) {
                        this.printMessage("unexpected 8042 output port reset: " + str.toHexByte(b), true);
                        this.dbg.stopCPU();
                    }
                    this.cpu.resetRegs();
                }
            };
            
            /**
             * notifyKbdData(b)
             *
             * In the old days of PCjs, the Keyboard component would simply call setIRR() when it had some data for the
             * keyboard controller.  However, the Keyboard's sole responsibility is to emulate an actual keyboard and call
             * notifyKbdData() whenever it has some data; it's not allowed to mess with IRQ lines.
             *
             * If there's an 8042, we check (this.b8042CmdData & ChipSet.KBC.DATA.CMD.NO_CLOCK); if NO_CLOCK is clear,
             * we can raise the IRQ immediately.  Well, not quite immediately....
             *
             * Notes regarding the MODEL_5170 (eg, /devices/pc/machine/5170/ega/1152kb/rev3/machine.xml):
             *
             * The "Rev3" BIOS, dated 11-Nov-1985, contains the following code in the keyboard interrupt handler at K26A:
             *
             *      F000:3704 FA            CLI
             *      F000:3705 B020          MOV      AL,20
             *      F000:3707 E620          OUT      20,AL
             *      F000:3709 B0AE          MOV      AL,AE
             *      F000:370B E88D02        CALL     SHIP_IT
             *      F000:370E FA            CLI                     <-- window of opportunity
             *      F000:370F 07            POP      ES
             *      F000:3710 1F            POP      DS
             *      F000:3711 5F            POP      DI
             *      F000:3712 5E            POP      SI
             *      F000:3713 5A            POP      DX
             *      F000:3714 59            POP      CX
             *      F000:3715 5B            POP      BX
             *      F000:3716 58            POP      AX
             *      F000:3717 5D            POP      BP
             *      F000:3718 CF            IRET
             *
             * and SHIP_IT looks like this:
             *
             *      F000:399B 50            PUSH     AX
             *      F000:399C FA            CLI
             *      F000:399D 2BC9          SUB      CX,CX
             *      F000:399F E464          IN       AL,64
             *      F000:39A1 A802          TEST     AL,02
             *      F000:39A3 E0FA          LOOPNZ   399F
             *      F000:39A5 58            POP      AX
             *      F000:39A6 E664          OUT      64,AL
             *      F000:39A8 FB            STI
             *      F000:39A9 C3            RET
             *
             * This code *appears* to be trying to ensure that another keyboard interrupt won't occur until after the IRET,
             * but sadly, it looks to me like the CLI following the call to SHIP_IT is too late.  SHIP_IT should have been
             * written with PUSHF/CLI and POPF intro/outro sequences, thereby honoring the first CLI at the top of K26A and
             * eliminating the need for the second CLI (@F000:370E).
             *
             * Of course, in "real life", this was probably never a problem, because the 8042 probably wasn't fast enough to
             * generate another interrupt so soon after receiving the ChipSet.KBC.CMD.ENABLE_KBD command.  In my case, I ran
             * into this problem by 1) turning on "kbd" Debugger messages and 2) rapidly typing lots of keys.  The Debugger
             * messages bogged the machine down enough for me to hit the "window of opportunity", generating this message in
             * PC-DOS 3.20:
             *
             *      "FATAL: Internal Stack Failure, System Halted."
             *
             * and halting the system @0070:0923 (JMP 0923).
             *
             * That wasn't the only spot in the BIOS where I hit this problem; here's another "window of opportunity":
             *
             *      F000:3975 FA            CLI
             *      F000:3976 B020          MOV      AL,20
             *      F000:3978 E620          OUT      20,AL
             *      F000:397A B0AE          MOV      AL,AE
             *      F000:397C E81C00        CALL     SHIP_IT
             *      F000:397F B80291        MOV      AX,9102        <-- window of opportunity
             *      F000:3982 CD15          INT      15
             *      F000:3984 80269600FC    AND      [0096],FC
             *      F000:3989 E982FD        JMP      370E
             *
             * In this second, lengthier, example, I counted about 60 instructions being executed from the EOI @F000:3978 to
             * the final IRET @F000:3718, most of them in the INT 0x15 handler.  So, I'm going to double that count to 120
             * instructions, just to be safe, and pass that along to every setIRR() call we make here.
             *
             * @this {ChipSet}
             * @param {number} b
             */
            ChipSet.prototype.notifyKbdData = function(b)
            {
                if (DEBUG && this.messageEnabled(Messages.KEYBOARD | Messages.PORT)) {
                    this.printMessage("notifyKbdData(" + str.toHexByte(b) + ')', true);
                }
                if (this.model < ChipSet.MODEL_5170) {
                    /*
                     * TODO: Should we be checking bPPI for PPI_B.CLK_KBD on these older machines, before calling setIRR()?
                     */
                    this.setIRR(ChipSet.IRQ.KBD, 4);
                }
                else {
                    if (!(this.b8042CmdData & ChipSet.KBC.DATA.CMD.NO_CLOCK)) {
                        /*
                         * The next read of b8042OutBuff will clear both of these bits and call kbd.checkScanCode(),
                         * which will call notifyKbdData() again if there's still keyboard data to process.
                         */
                        if (!(this.b8042Status & (ChipSet.KBC.STATUS.OUTBUFF_FULL | ChipSet.KBC.STATUS.OUTBUFF_DELAY))) {
                            this.set8042OutBuff(b, true);
                            this.kbd.shiftScanCode();
                            /*
                             * A delay of 4 instructions was originally requested as part of the the Keyboard's resetDevice()
                             * response, but a larger delay (120) is now needed for MODEL_5170 machines, per the discussion above.
                             */
                            this.setIRR(ChipSet.IRQ.KBD, 120);
                        }
                        else {
                            if (DEBUG && this.messageEnabled(Messages.KEYBOARD | Messages.PORT)) {
                                this.printMessage("notifyKbdData(" + str.toHexByte(b) + "): output buffer full", true);
                            }
                        }
                    } else {
                        if (DEBUG && this.messageEnabled(Messages.KEYBOARD | Messages.PORT)) {
                            this.printMessage("notifyKbdData(" + str.toHexByte(b) + "): disabled", true);
                        }
                    }
                }
            };
            
            /**
             * inCMOSAddr(port, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} port (0x70)
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             * @return {number} simulated port value
             */
            ChipSet.prototype.inCMOSAddr = function(port, addrFrom)
            {
                this.printMessageIO(port, null, addrFrom, "CMOS.ADDR", this.bCMOSAddr, Messages.CMOS);
                return this.bCMOSAddr;
            };
            
            /**
             * outCMOSAddr(port, bOut, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} port (0x70)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined if the Debugger is trying to write the specified port)
             */
            ChipSet.prototype.outCMOSAddr = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, "CMOS.ADDR", null, Messages.CMOS);
                this.bCMOSAddr = bOut;
                this.bNMI = (bOut & ChipSet.CMOS.ADDR.NMI_DISABLE)? ChipSet.NMI.DISABLE : ChipSet.NMI.ENABLE;
            };
            
            /**
             * inCMOSData(port, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} port (0x71)
             * @param {number} [addrFrom] (not defined if the Debugger is trying to read the specified port)
             * @return {number} simulated port value
             */
            ChipSet.prototype.inCMOSData = function(port, addrFrom)
            {
                var bAddr = this.bCMOSAddr & ChipSet.CMOS.ADDR.MASK;
                var bIn = (bAddr <= ChipSet.CMOS.ADDR.STATUSD? this.getRTCByte(bAddr) : this.abCMOSData[bAddr]);
                if (this.messageEnabled(Messages.CMOS | Messages.PORT)) {
                    this.printMessageIO(port, null, addrFrom, "CMOS.DATA[" + str.toHexByte(bAddr) + "]", bIn, true);
                }
                if (addrFrom != null) {
                    if (bAddr == ChipSet.CMOS.ADDR.STATUSC) {
                        /*
                         * When software reads the STATUSC port, all interrupt bits (PF, AF, and UF) are automatically
                         * cleared, which in turn clears the IRQF bit, which in turn clears the IRQ.
                         */
                        this.abCMOSData[bAddr] &= ChipSet.CMOS.STATUSC.RESERVED;
                        if (bIn & ChipSet.CMOS.STATUSC.IRQF) this.clearIRR(ChipSet.IRQ.RTC);
                        /*
                         * If we just cleared PF, and PIE is still set, then we need to make sure the next Periodic Interrupt
                         * occurs in a timely manner, too.
                         */
                        if ((bIn & ChipSet.CMOS.STATUSC.PF) && (this.abCMOSData[ChipSet.CMOS.ADDR.STATUSB] & ChipSet.CMOS.STATUSB.PIE)) {
                            if (DEBUG) this.printMessage("RTC periodic interrupt cleared", Messages.RTC);
                            this.setRTCCycleLimit();
                        }
                    }
                }
                return bIn;
            };
            
            /**
             * outCMOSData(port, bOut, addrFrom)
             *
             * @this {ChipSet}
             * @param {number} port (0x71)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined if the Debugger is trying to write the specified port)
             */
            ChipSet.prototype.outCMOSData = function(port, bOut, addrFrom)
            {
                var bAddr = this.bCMOSAddr & ChipSet.CMOS.ADDR.MASK;
                if (this.messageEnabled(Messages.CMOS | Messages.PORT)) {
                    this.printMessageIO(port, bOut, addrFrom, "CMOS.DATA[" + str.toHexByte(bAddr) + "]", null, true);
                }
                var bDelta = bOut ^ this.abCMOSData[bAddr];
                this.abCMOSData[bAddr] = (bAddr <= ChipSet.CMOS.ADDR.STATUSD? this.setRTCByte(bAddr, bOut) : bOut);
                if (bAddr == ChipSet.CMOS.ADDR.STATUSB && (bDelta & ChipSet.CMOS.STATUSB.PIE)) {
                    if (bOut & ChipSet.CMOS.STATUSB.PIE) {
                        if (DEBUG) this.printMessage("RTC periodic interrupts enabled", Messages.RTC);
                        this.setRTCCycleLimit();
                    } else {
                        if (DEBUG) this.printMessage("RTC periodic interrupts disabled", Messages.RTC);
                    }
                }
            };
            
            /**
             * outNMI(port, bOut, addrFrom)
             *
             * This handler is installed only for models before MODEL_5170.
             *
             * @this {ChipSet}
             * @param {number} port (0xA0)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined if the Debugger is trying to write the specified port)
             */
            ChipSet.prototype.outNMI = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, "NMI");
                this.bNMI = bOut;
            };
            
            /**
             * outCoprocClear(port, bOut, addrFrom)
             *
             * This handler is installed only for MODEL_5170.
             *
             * @this {ChipSet}
             * @param {number} port (0xF0)
             * @param {number} bOut (0x00 is the only expected output)
             * @param {number} [addrFrom] (not defined if the Debugger is trying to write the specified port)
             */
            ChipSet.prototype.outCoprocClear = function(port, bOut, addrFrom)
            {
                /*
                 * TODO: Implement
                 */
                this.printMessageIO(port, bOut, addrFrom, "COPROC.CLEAR");
                this.assert(!bOut);
            };
            
            /**
             * outCoprocReset(port, bOut, addrFrom)
             *
             * This handler is installed only for MODEL_5170.
             *
             * @this {ChipSet}
             * @param {number} port (0xF1)
             * @param {number} bOut (0x00 is the only expected output)
             * @param {number} [addrFrom] (not defined if the Debugger is trying to write the specified port)
             */
            ChipSet.prototype.outCoprocReset = function(port, bOut, addrFrom)
            {
                /*
                 * TODO: Implement
                 */
                this.printMessageIO(port, bOut, addrFrom, "COPROC.RESET");
                this.assert(!bOut);
            };
            
            /**
             * intBIOSRTC(addr)
             *
             * INT 0x1A Quick Reference:
             *
             *      AH
             *      ----
             *      0x00    Get current clock count in CX:DX
             *      0x01    Set current clock count from CX:DX
             *      0x02    Get real-time clock using BCD (CH=hours, CL=minutes, DH=seconds)
             *      0x03    Set real-time clock using BCD (CH=hours, CL=minutes, DH=seconds, DL=1 if Daylight Savings Time option)
             *      0x04    Get real-time date using BCD (CH=century, CL=year, DH=month, DL=day)
             *      0x05    Set real-time date using BCD (CH=century, CL=year, DH=month, DL=day)
             *      0x06    Set alarm using BCD (CH=hours, CL=minutes, DH=seconds)
             *      0x07    Reset alarm
             *
             * @this {ChipSet}
             * @param {number} addr
             * @return {boolean} true to proceed with the INT 0x1A software interrupt, false to skip
             */
            ChipSet.prototype.intBIOSRTC = function(addr)
            {
                if (DEBUGGER) {
                    if (this.messageEnabled(Messages.RTC) && this.dbg.messageInt(Interrupts.RTC.VECTOR, addr)) {
                        /*
                         * By computing AH now, we get the incoming AH value; if we computed it below, along with
                         * the rest of the register values, we'd get the outgoing AH value, which is not what we want.
                         */
                        var AH = this.cpu.regEAX >> 8;
                        this.cpu.addIntReturn(addr, function(chipset, nCycles) {
                            return function onBIOSRTCReturn(nLevel) {
                                nCycles = chipset.cpu.getCycles() - nCycles;
                                var sResult;
                                var CL = chipset.cpu.regEDX & 0xff;
                                var CH = chipset.cpu.regEDX >> 8;
                                var DL = chipset.cpu.regEDX & 0xff;
                                var DH = chipset.cpu.regEDX >> 8;
                                if (AH == 0x02 || AH == 0x03) {
                                    sResult = " CH(hour)=" + str.toHexWord(CH) + " CL(min)=" + str.toHexByte(CL) + " DH(sec)=" + str.toHexByte(DH);
                                } else if (AH == 0x04 || AH == 0x05) {
                                    sResult = " CX(year)=" + str.toHexWord(chipset.cpu.regECX) + " DH(month)=" + str.toHexByte(DH) + " DL(day)=" + str.toHexByte(DL);
                                }
                                chipset.dbg.messageIntReturn(Interrupts.RTC.VECTOR, nLevel, nCycles, sResult);
                            };
                        }(this, this.cpu.getCycles()));
                    }
                }
                return true;
            };
            
            /**
             * parseSwitches(s, def)
             *
             * @this {ChipSet}
             * @param {string|undefined} s describing switch settings
             * @param {number} def is a default value to use if s is undefined
             * @return {number} value representing the switch settings
             */
            ChipSet.prototype.parseSwitches = function(s, def)
            {
                if (s === undefined) return def;
                /*
                 * NOTE: We can't simply use parseInt() with a base of 2, because the bit order is reversed, as well as the bit sense.
                 */
                var b = 0, bit = 0x1;
                for (var i = 0; i < s.length; i++) {
                    if (s.charAt(i) == "0") b |= bit;
                    bit <<= 1;
                }
                return b;
            };
            
            /**
             * setSpeaker(fOn)
             *
             * @this {ChipSet}
             * @param {boolean} [fOn] true to turn speaker on, false to turn off, otherwise update as appropriate
             */
            ChipSet.prototype.setSpeaker = function(fOn)
            {
                if (this.contextAudio) {
                    try {
                        if (fOn !== undefined) {
                            this.fSpeaker = fOn;
                        } else {
                            fOn = this.fSpeaker && this.cpu && this.cpu.isRunning();
                        }
                        var freq = Math.round(ChipSet.TIMER_TICKS_PER_SEC / this.getTimerInit(ChipSet.PIT0.TIMER2));
                        /*
                         * Treat frequencies outside the normal hearing range (below 20hz or above 20Khz) as a clever attempt
                         * to turn sound off; we have to explicitly turn the sound off in those cases, to prevent the Audio API
                         * from "easing" the audio to the target frequency and creating odd sound effects.
                         */
                        if (freq < 20 || freq > 20000) fOn = false;
                        if (fOn) {
                            if (this.sourceAudio) {
                                this.sourceAudio['frequency']['value'] = freq;
                                if (this.messageEnabled(Messages.SPEAKER)) this.printMessage("speaker set to " + freq + "hz", true);
                            } else {
                                this.sourceAudio = this.contextAudio['createOscillator']();
                                if (this.sourceAudio) {
                                    if (typeof this.sourceAudio['type'] == "number") {
                                        this.sourceAudio['type'] = 1;   // deprecated: 0: "sine", 1: "square", 2: "sawtooth", 3: "triangle"
                                    } else {
                                        this.sourceAudio['type'] = "square";
                                    }
                                    this.sourceAudio['connect'](this.contextAudio['destination']);
                                    this.sourceAudio['frequency']['value'] = freq;
                                    if ('start' in this.sourceAudio) {
                                        this.sourceAudio['start'](0);
                                    } else {
                                        this.sourceAudio['noteOn'](0);  // deprecated: this.sourceAudio['noteOn'](0)
                                    }
                                    if (this.messageEnabled(Messages.SPEAKER)) this.printMessage("speaker on at  " + freq + "hz", true);
                                }
                            }
                        } else {
                            if (this.sourceAudio) {
                                if ('stop' in this.sourceAudio) {
                                    this.sourceAudio['stop'](0);
                                } else {
                                    this.sourceAudio['noteOff'](0);     // deprecated: this.sourceAudio['noteOff'](0)
                                }
                                this.sourceAudio['disconnect']();       // QUESTION: is this automatic following a stop(), since this particular source cannot be started again?
                                delete this.sourceAudio;                // QUESTION: ditto?
                                if (this.messageEnabled(Messages.SPEAKER)) this.printMessage("speaker off at " + freq + "hz", true);
                            }
                        }
                    } catch(e) {
                        this.notice("AudioContext exception: " + e.message);
                        this.contextAudio = null;
                    }
                } else if (fOn) {
                    this.printMessage("BEEP", Messages.SPEAKER);
                }
            };
            
            /**
             * messageBitsDMA(iChannel)
             *
             * @this {ChipSet}
             * @param {number} [iChannel] if the message is associated with a particular IRQ #
             * @return {number}
             */
            ChipSet.prototype.messageBitsDMA = function(iChannel)
            {
                var bitsMessage = Messages.DATA;
                if (iChannel == ChipSet.DMA_FDC) {
                    bitsMessage |= Messages.FDC;
                } else if (iChannel == ChipSet.DMA_HDC) {
                    bitsMessage |= Messages.HDC;
                }
                return bitsMessage;
            };
            
            /**
             * messageBitsIRQ(nIRQ)
             *
             * @this {ChipSet}
             * @param {number|undefined} [nIRQ] if the message is associated with a particular IRQ #
             * @return {number}
             */
            ChipSet.prototype.messageBitsIRQ = function(nIRQ)
            {
                var bitsMessage = Messages.PIC;
                if (nIRQ == ChipSet.IRQ.TIMER0) {           // IRQ 0
                    bitsMessage |= Messages.TIMER;
                } else if (nIRQ == ChipSet.IRQ.KBD) {       // IRQ 1
                    bitsMessage |= Messages.KEYBOARD;
                } else if (nIRQ == ChipSet.IRQ.SLAVE) {     // IRQ 2 (MODEL_5170 and up)
                    bitsMessage |= Messages.CHIPSET;
                } else if (nIRQ == ChipSet.IRQ.COM1 || nIRQ == ChipSet.IRQ.COM2) {
                    bitsMessage |= Messages.SERIAL;
                } else if (nIRQ == ChipSet.IRQ.XTC) {       // IRQ 5 (MODEL_5160)
                    bitsMessage |= Messages.HDC;
                } else if (nIRQ == ChipSet.IRQ.FDC) {       // IRQ 6
                    bitsMessage |= Messages.FDC;
                } else if (nIRQ == ChipSet.IRQ.RTC) {       // IRQ 8 (MODEL_5170 and up)
                    bitsMessage |= Messages.RTC;
                } else if (nIRQ == ChipSet.IRQ.ATC) {       // IRQ 14 (MODEL_5170 and up)
                    bitsMessage |= Messages.HDC;
                }
                return bitsMessage;
            };
            
            /*
             * Port input notification tables
             */
            ChipSet.aPortInput = {
                0x00: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAChannelAddr(ChipSet.DMA0.INDEX, 0, port, addrFrom); },
                0x01: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAChannelCount(ChipSet.DMA0.INDEX, 0, port, addrFrom); },
                0x02: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAChannelAddr(ChipSet.DMA0.INDEX, 1, port, addrFrom); },
                0x03: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAChannelCount(ChipSet.DMA0.INDEX, 1, port, addrFrom); },
                0x04: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAChannelAddr(ChipSet.DMA0.INDEX, 2, port, addrFrom); },
                0x05: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAChannelCount(ChipSet.DMA0.INDEX, 2, port, addrFrom); },
                0x06: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAChannelAddr(ChipSet.DMA0.INDEX, 3, port, addrFrom); },
                0x07: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAChannelCount(ChipSet.DMA0.INDEX, 3, port, addrFrom); },
                0x08: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAStatus(ChipSet.DMA0.INDEX, port, addrFrom); },
                0x20: /** @this {ChipSet} */ function(port, addrFrom) { return this.inPICLo(ChipSet.PIC0.INDEX, addrFrom); },
                0x21: /** @this {ChipSet} */ function(port, addrFrom) { return this.inPICHi(ChipSet.PIC0.INDEX, addrFrom); },
                0x40: /** @this {ChipSet} */ function(port, addrFrom) { return this.inTimer(ChipSet.PIT0.TIMER0, port, addrFrom); },
                0x41: /** @this {ChipSet} */ function(port, addrFrom) { return this.inTimer(ChipSet.PIT0.TIMER1, port, addrFrom); },
                0x42: /** @this {ChipSet} */ function(port, addrFrom) { return this.inTimer(ChipSet.PIT0.TIMER2, port, addrFrom); },
                0x43: ChipSet.prototype.inPIT1Ctrl,
                0x81: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAPageReg(ChipSet.DMA0.INDEX, 2, port, addrFrom); },
                0x82: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAPageReg(ChipSet.DMA0.INDEX, 3, port, addrFrom); },
                0x83: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAPageReg(ChipSet.DMA0.INDEX, 1, port, addrFrom); },
                0x87: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAPageReg(ChipSet.DMA0.INDEX, 0, port, addrFrom); }
            };
            
            ChipSet.aPortInput5150 = {
                0x60: ChipSet.prototype.inPPIA,
                0x61: ChipSet.prototype.inPPIB,
                0x62: ChipSet.prototype.inPPIC,
                0x63: ChipSet.prototype.inPPICtrl   // technically, not actually readable, but I want the Debugger to be able to read this
            };
            
            ChipSet.aPortInput5170 = {
                0x60: ChipSet.prototype.in8042OutBuff,
                0x61: ChipSet.prototype.in8042RWReg,
                0x64: ChipSet.prototype.in8042Status,
                0x70: ChipSet.prototype.inCMOSAddr,
                0x71: ChipSet.prototype.inCMOSData,
                0x80: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAPageSpare(7, port, addrFrom); },
                0x84: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAPageSpare(0, port, addrFrom); },
                0x85: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAPageSpare(1, port, addrFrom); },
                0x86: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAPageSpare(2, port, addrFrom); },
                0x88: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAPageSpare(3, port, addrFrom); },
                0x89: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAPageReg(ChipSet.DMA1.INDEX, 2, port, addrFrom); },
                0x8A: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAPageReg(ChipSet.DMA1.INDEX, 3, port, addrFrom); },
                0x8B: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAPageReg(ChipSet.DMA1.INDEX, 1, port, addrFrom); },
                0x8C: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAPageSpare(4, port, addrFrom); },
                0x8D: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAPageSpare(5, port, addrFrom); },
                0x8E: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAPageSpare(6, port, addrFrom); },
                0x8F: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAPageReg(ChipSet.DMA1.INDEX, 0, port, addrFrom); },
                0xA0: /** @this {ChipSet} */ function(port, addrFrom) { return this.inPICLo(ChipSet.PIC1.INDEX, addrFrom); },
                0xA1: /** @this {ChipSet} */ function(port, addrFrom) { return this.inPICHi(ChipSet.PIC1.INDEX, addrFrom); },
                0xC0: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAChannelAddr(ChipSet.DMA1.INDEX, 0, port, addrFrom); },
                0xC2: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAChannelCount(ChipSet.DMA1.INDEX, 0, port, addrFrom); },
                0xC4: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAChannelAddr(ChipSet.DMA1.INDEX, 1, port, addrFrom); },
                0xC6: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAChannelCount(ChipSet.DMA1.INDEX, 1, port, addrFrom); },
                0xC8: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAChannelAddr(ChipSet.DMA1.INDEX, 2, port, addrFrom); },
                0xCA: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAChannelCount(ChipSet.DMA1.INDEX, 2, port, addrFrom); },
                0xCC: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAChannelAddr(ChipSet.DMA1.INDEX, 3, port, addrFrom); },
                0xCE: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAChannelCount(ChipSet.DMA1.INDEX, 3, port, addrFrom); },
                0xD0: /** @this {ChipSet} */ function(port, addrFrom) { return this.inDMAStatus(ChipSet.DMA1.INDEX, port, addrFrom); }
            };
            
            /*
             * Port output notification tables
             */
            ChipSet.aPortOutput = {
                0x00: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAChannelAddr(ChipSet.DMA0.INDEX, 0, port, bOut, addrFrom); },
                0x01: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAChannelCount(ChipSet.DMA0.INDEX, 0, port, bOut, addrFrom); },
                0x02: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAChannelAddr(ChipSet.DMA0.INDEX, 1, port, bOut, addrFrom); },
                0x03: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAChannelCount(ChipSet.DMA0.INDEX, 1, port, bOut, addrFrom); },
                0x04: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAChannelAddr(ChipSet.DMA0.INDEX, 2, port, bOut, addrFrom); },
                0x05: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAChannelCount(ChipSet.DMA0.INDEX, 2, port, bOut, addrFrom); },
                0x06: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAChannelAddr(ChipSet.DMA0.INDEX, 3, port, bOut, addrFrom); },
                0x07: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAChannelCount(ChipSet.DMA0.INDEX, 3, port, bOut, addrFrom); },
                0x08: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMACmd(ChipSet.DMA0.INDEX, port, bOut, addrFrom); },
                0x09: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAReq(ChipSet.DMA0.INDEX, port, bOut, addrFrom); },
                0x0A: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAMask(ChipSet.DMA0.INDEX, port, bOut, addrFrom); },
                0x0B: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAMode(ChipSet.DMA0.INDEX, port, bOut, addrFrom); },
                0x0C: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAResetFF(ChipSet.DMA0.INDEX, port, bOut, addrFrom); },
                0x0D: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAMasterClear(ChipSet.DMA0.INDEX, port, bOut, addrFrom); },
                0x20: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outPICLo(ChipSet.PIC0.INDEX, bOut, addrFrom); },
                0x21: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outPICHi(ChipSet.PIC0.INDEX, bOut, addrFrom); },
                0x40: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outTimer(ChipSet.PIT0.TIMER0, port, bOut, addrFrom); },
                0x41: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outTimer(ChipSet.PIT0.TIMER1, port, bOut, addrFrom); },
                0x42: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outTimer(ChipSet.PIT0.TIMER2, port, bOut, addrFrom); },
                0x43: ChipSet.prototype.outPIT1Ctrl,
                0x81: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAPageReg(ChipSet.DMA0.INDEX, 2, port, bOut, addrFrom); },
                0x82: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAPageReg(ChipSet.DMA0.INDEX, 3, port, bOut, addrFrom); },
                0x83: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAPageReg(ChipSet.DMA0.INDEX, 1, port, bOut, addrFrom); },
                0x87: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAPageReg(ChipSet.DMA0.INDEX, 0, port, bOut, addrFrom); }
            };
            
            ChipSet.aPortOutput5150 = {
                0x60: ChipSet.prototype.outPPIA,
                0x61: ChipSet.prototype.outPPIB,
                0x62: ChipSet.prototype.outPPIC,
                0x63: ChipSet.prototype.outPPICtrl,
                0xA0: ChipSet.prototype.outNMI
            };
            
            ChipSet.aPortOutput5170 = {
                0x60: ChipSet.prototype.out8042InBuffData,
                0x61: ChipSet.prototype.out8042RWReg,
                0x64: ChipSet.prototype.out8042InBuffCmd,
                0x70: ChipSet.prototype.outCMOSAddr,
                0x71: ChipSet.prototype.outCMOSData,
                0x80: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAPageSpare(7, port, bOut, addrFrom); },
                0x84: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAPageSpare(0, port, bOut, addrFrom); },
                0x85: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAPageSpare(1, port, bOut, addrFrom); },
                0x86: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAPageSpare(2, port, bOut, addrFrom); },
                0x88: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAPageSpare(3, port, bOut, addrFrom); },
                0x89: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAPageReg(ChipSet.DMA1.INDEX, 2, port, bOut, addrFrom); },
                0x8A: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAPageReg(ChipSet.DMA1.INDEX, 3, port, bOut, addrFrom); },
                0x8B: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAPageReg(ChipSet.DMA1.INDEX, 1, port, bOut, addrFrom); },
                0x8C: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAPageSpare(4, port, bOut, addrFrom); },
                0x8D: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAPageSpare(5, port, bOut, addrFrom); },
                0x8E: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAPageSpare(6, port, bOut, addrFrom); },
                0x8F: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAPageReg(ChipSet.DMA1.INDEX, 0, port, bOut, addrFrom); },
                0xA0: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outPICLo(ChipSet.PIC1.INDEX, bOut, addrFrom); },
                0xA1: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outPICHi(ChipSet.PIC1.INDEX, bOut, addrFrom); },
                0xC0: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAChannelAddr(ChipSet.DMA1.INDEX, 0, port, bOut, addrFrom); },
                0xC2: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAChannelCount(ChipSet.DMA1.INDEX, 0, port, bOut, addrFrom); },
                0xC4: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAChannelAddr(ChipSet.DMA1.INDEX, 1, port, bOut, addrFrom); },
                0xC6: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAChannelCount(ChipSet.DMA1.INDEX, 1, port, bOut, addrFrom); },
                0xC8: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAChannelAddr(ChipSet.DMA1.INDEX, 2, port, bOut, addrFrom); },
                0xCA: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAChannelCount(ChipSet.DMA1.INDEX, 2, port, bOut, addrFrom); },
                0xCC: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAChannelAddr(ChipSet.DMA1.INDEX, 3, port, bOut, addrFrom); },
                0xCE: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAChannelCount(ChipSet.DMA1.INDEX, 3, port, bOut, addrFrom); },
                0xD0: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMACmd(ChipSet.DMA1.INDEX, port, bOut, addrFrom); },
                0xD2: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAReq(ChipSet.DMA1.INDEX, port, bOut, addrFrom); },
                0xD4: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAMask(ChipSet.DMA1.INDEX, port, bOut, addrFrom); },
                0xD6: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAMode(ChipSet.DMA1.INDEX, port, bOut, addrFrom); },
                0xD8: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAResetFF(ChipSet.DMA1.INDEX, port, bOut, addrFrom); },
                0xDA: /** @this {ChipSet} */ function(port, bOut, addrFrom) { this.outDMAMasterClear(ChipSet.DMA1.INDEX, port, bOut, addrFrom); },
                0xF0: ChipSet.prototype.outCoprocClear,
                0xF1: ChipSet.prototype.outCoprocReset
            };
            
            /**
             * ChipSet.init()
             *
             * This function operates on every HTML element of class "chipset", extracting the
             * JSON-encoded parameters for the ChipSet constructor from the element's "data-value"
             * attribute, invoking the constructor to create a ChipSet component, and then binding
             * any associated HTML controls to the new component.
             */
            ChipSet.init = function()
            {
                var aeChipSet = Component.getElementsByClass(window.document, PCJSCLASS, "chipset");
                for (var iChip = 0; iChip < aeChipSet.length; iChip++) {
                    var eChipSet = aeChipSet[iChip];
                    var parmsChipSet = Component.getComponentParms(eChipSet);
                    var chipset = new ChipSet(parmsChipSet);
                    Component.bindComponentControls(chipset, eChipSet, PCJSCLASS);
                    chipset.updateSwitchDesc();
                }
            };
            
            /*
             * Initialize every ChipSet module on the page.
             */
            web.onInit(ChipSet.init);
            
            if (typeof module !== 'undefined') module.exports = ChipSet;
            
          • computer.js
            /**
             * @fileoverview Implements the PCjs Computer component.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Jun-15
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            /*
             * BUILD INSTRUCTIONS
             *
             * To build PCjs (pc.js), run Google's Closure Compiler, replacing "*.js" with
             * the input file sequence defined by the "pcJSFiles" property in package.json:
             *
             *      java -jar compiler.jar
             *          --compilation_level ADVANCED_OPTIMIZATIONS
             *          --define='DEBUG=false'
             *          --warning_level=VERBOSE
             *          --js *.js
             *          --js_output_file pc.js
             *
             * Google's Closure Compiler (compiler.jar) is documented at
             * https://developers.google.com/closure/compiler/ and is available
             * for download here:
             *
             *      http://closure-compiler.googlecode.com/files/compiler-latest.zip
             *
             * The PCjs JavaScript files do have some initialization-order dependencies.
             * If you load the files individually, it's recommended that you load them in
             * the same order that they're compiled.
             *
             * Generally speaking, component.js should be first, computer.js should be
             * last (of the files based on component.js), and panel.js should be listed
             * early so that the Control Panel is ready as soon as possible.
             *
             * Another recent ordering requirement is that rom.js must be loaded before
             * ram.js; this was true before, but now it's required, because I'm starting
             * to add ROM BIOS Data Area definitions to rom.js, and since the data area
             * is in RAM, ram.js may want access to some of those definitions.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var str         = require("../../shared/lib/strlib");
                var usr         = require("../../shared/lib/usrlib");
                var web         = require("../../shared/lib/weblib");
                var UserAPI     = require("../../shared/lib/userapi");
                var ReportAPI   = require("../../shared/lib/reportapi");
                var Component   = require("../../shared/lib/component");
                var Messages    = require("./messages");
                var Bus         = require("./bus");
                var State       = require("./state");
            }
            
            /**
             * Computer(parmsComputer, parmsMachine, fSuspended)
             *
             * @constructor
             * @extends Component
             * @param {Object} parmsComputer
             * @param {Object} [parmsMachine]
             * @param {boolean} [fSuspended]
             *
             * The Computer component has no required (parmsComputer) properties, but does
             * support the following:
             *
             *      busWidth: number of memory address lines (address bits) on the computer's "bus";
             *      20 is the minimum (and the default), which implies 8086/8088 real-mode addressing,
             *      while 24 is required for 80286 protected-mode addressing.  This value is passed
             *      directly through to the Bus component; see that component for more details.
             *
             *      resume: one of the Computer.RESUME constants, which are as follows:
             *          '0' if resume disabled (default)
             *          '1' if enabled without prompting
             *          '2' if enabled with prompting
             *          '3' if enabled with prompting and auto-delete
             *          or a string containing the path of a predefined JSON-encoded state
             *
             *      state: the path to JSON-encoded state file (see details regarding 'state' below)
             *
             * If a predefined state is supplied AND it's successfully loaded, then resume behavior
             * defaults to '1' (ie, resume enabled without prompting).
             *
             * This component insures that all components are ready before "powering" them.
             *
             * Different components become ready at different times, and initialization order (ie,
             * the order the scripts are combined on the page) only partially determines readiness.
             * This is because components like ROM and Video must finish loading their resource files
             * before they are ready.  Other components become ready after we call their initBus()
             * function, because they have a Bus or CPU dependency, such as access to memory management
             * functions.  And other components, like CPU and Panel, are ready as soon as their
             * constructor finishes.
             *
             * Once a component has indicated it's ready, we call its powerUp() notification
             * function (if it has one--it's optional).  We call the CPU's powerUp() function last,
             * so that the CPU is assured that all other components are ready and "powered".
             */
            function Computer(parmsComputer, parmsMachine, fSuspended) {
            
                Component.call(this, "Computer", parmsComputer, Computer, Messages.COMPUTER);
            
                this.aFlags.fPowered = false;
                /*
                 * TODO: Deprecate 'buswidth' (it should have always used camelCase)
                 */
                this.nBusWidth = parmsComputer['busWidth'] || parmsComputer['buswidth'];
                this.resume = Computer.RESUME_NONE;
                this.sStateData = null;
                this.fServerState = false;
                this.url = parmsMachine? parmsMachine['url'] : null;
            
                /*
                 * Generate a random number x (where 0 <= x < 1), add 0.1 so that it's guaranteed to be
                 * non-zero, convert to base 36, and chop off the leading digit and "decimal" point.
                 */
                this.sMachineID = (Math.random() + 0.1).toString(36).substr(2,12);
                this.sUserID = this.queryUserID();
            
                /*
                 * Find the appropriate CPU (and Debugger and Control Panel, if any)
                 *
                 * CLOSURE COMPILER TIP: To override the type of a right-hand expression (as we need to do here,
                 * where we know getComponentByType() will only return an X86CPU object or null), wrap the expression
                 * in parentheses.  I never knew this until I stumbled across it in "Closure: The Definitive Guide".
                 */
                this.cpu = /** @type {X86CPU} */ (Component.getComponentByType("CPU", this.id));
                if (!this.cpu) {
                    Component.error("Unable to find CPU component");
                    return;
                }
                this.dbg = /** @type {Debugger} */ (Component.getComponentByType("Debugger", this.id));
            
                /*
                 * Initialize the Bus component
                 */
                this.bus = new Bus({'id': this.idMachine + '.bus', 'buswidth': this.nBusWidth}, this.cpu, this.dbg);
            
                /*
                 * Iterate through all the components and connect them to the Control Panel, if any
                 */
                var iComponent, component;
                var aComponents = Component.getComponents(this.id);
                this.panel = Component.getComponentByType("Panel", this.id);
            
                if (this.panel && this.panel.controlPrint) {
                    for (iComponent = 0; iComponent < aComponents.length; iComponent++) {
                        component = aComponents[iComponent];
                        /*
                         * I can think of many "cleaner" ways for the Control Panel component to pass its
                         * notice(), println(), etc, overrides on to all the other components, but it's just
                         * too darn convenient to slam those overrides into the components directly.
                         */
                        component.notice = this.panel.notice;
                        component.println = this.panel.println;
                        component.controlPrint = this.panel.controlPrint;
                    }
                }
            
                if (DEBUG && this.messageEnabled()) this.printMessage("PREFETCH: " + PREFETCH + ", TYPEDARRAYS: " + TYPEDARRAYS);
            
                /*
                 * Iterate through all the components again and call their initBus() handler, if any
                 */
                for (iComponent = 0; iComponent < aComponents.length; iComponent++) {
                    component = aComponents[iComponent];
                    if (component.initBus) component.initBus(this, this.bus, this.cpu, this.dbg);
                }
            
                var sStatePath = null;
                var sResume = parmsComputer['resume'];
                if (sResume !== undefined) {
                    /*
                     * DEPRECATE: This goofiness is a holdover from when the 'resume' property was a string (either a
                     * single-digit string or a path); now it's always a number, so it never has a 'length' property and
                     * the call to parseInt() is unnecessary.
                     */
                    if (sResume.length > 1) {
                        sStatePath = this.sResumePath = sResume;
                    } else {
                        this.resume = parseInt(sResume, 10);
                    }
                }
            
                /*
                 * The Computer 'state' property allows a state file to be specified independent of the 'resume' feature;
                 * previously, you could only use 'resume' to load a state file -- which we still support, but loading a state
                 * file that way prevents the machine's state from being saved, since we always resume from the 'resume' file.
                 *
                 * The other wrinkle is on the restore side: we need to IGNORE the 'state' property if a saved state now exists.
                 * So we have to peek at localStorage, and unfortunately, the only way to "peek" is to actually load the data,
                 * but we're not ready to use it yet, so powerUp() has been changed to use any existing stateComputer that we've
                 * already loaded.
                 *
                 * However, there's now a wrinkle to the wrinkle: if a 'state' parameter has been passed via the URL, then that
                 * OVERRIDES everything; it overrides any 'state' Computer parameter AND it disables resume of any saved state in
                 * localStorage (in other words, it prevents fAllowResume from being true, and forcing resume off).
                 */
                var fAllowResume;
                var sState = Component.parmsURL && Component.parmsURL['state'] || (fAllowResume = true) && parmsComputer['state'];
            
                if (sState) {
                    sStatePath = this.sStatePath = sState;
                    if (!fAllowResume) {
                        this.fServerState = true;
                        this.resume = Computer.RESUME_NONE;
                    }
                    if (this.resume) {
                        this.stateComputer = new State(this, Computer.sAppVer);
                        if (this.stateComputer.load()) {
                            sStatePath = null;
                        } else {
                            delete this.stateComputer;
                        }
                    }
                }
            
                /*
                 * If sStatePath is set, we must use it.  But if there's no sStatePath AND resume is set,
                 * then we have the option of resuming from a server-side state, assuming a valid USERID.
                 */
                if (!sStatePath && this.resume) {
                    sStatePath = this.getServerStatePath();
                    if (sStatePath) this.fServerState = true;
                }
            
                if (!sStatePath) {
                    this.setReady();
                } else {
                    web.loadResource(sStatePath, true, null, this, this.onLoadSetReady);
                }
            
                if (!fSuspended) {
                    /*
                     * Power "up" the computer, giving every component the opportunity to reset or restore itself.
                     */
                    this.wait(this.powerOn);
                }
            }
            
            Component.subclass(Computer);
            
            /*
             * NOTE: 1.01 is the first version to provide limited save/restore support using localStorage.
             * From this point on, care must be taken to insure that any new version that's incompatible with
             * previous localStorage data be released with a version number that is at least 1 greater,
             * since we're tagging the localStorage data with the integer portion of the version string.
             */
            Computer.sAppName = APPNAME || "PCjs";
            Computer.sAppVer = APPVERSION;
            Computer.sCopyright = "Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>";
            
            /*
             * I think it's a good idea to also display a GPL notice, putting people on notice that even
             * the "compiled" source code has all the same GPL requirements as the uncompiled source code.
             */
            Computer.LICENSE = "License: GPL version 3 or later <http://gnu.org/licenses/gpl.html>";
            
            Computer.STATE_FAILSAFE  = "failsafe";
            Computer.STATE_VALIDATE  = "validate";
            Computer.STATE_TIMESTAMP = "timestamp";
            Computer.STATE_VERSION   = "version";
            Computer.STATE_HOSTURL   = "url";
            Computer.STATE_BROWSER   = "browser";
            Computer.STATE_USERID    = "user";
            
            /*
             * The following constants define all the resume options.  Negative values (eg, RESUME_REPOWER) are for
             * internal use only, and RESUME_DELETE is not documented (it provides a way of deleting ALL saved states
             * whenever a resume is declined).  As a result, the only "end-user" values are 0, 1 and 2.
             */
            Computer.RESUME_REPOWER = -1;   // resume without changing any state (for internal use only)
            Computer.RESUME_NONE    = 0;    // default (no resume)
            Computer.RESUME_AUTO    = 1;    // automatically save/restore state
            Computer.RESUME_PROMPT  = 2;    // automatically save but conditionally restore (WARNING: if restore is declined, any state is discarded)
            Computer.RESUME_DELETE  = 3;    // same as RESUME_PROMPT but discards ALL machines states whenever ANY machine restore is declined (undocumented)
            
            /**
             * getMachineID()
             *
             * @return {string}
             */
            Computer.prototype.getMachineID = function()
            {
                return this.sMachineID;
            };
            
            /**
             * getUserID()
             *
             * @return {string}
             */
            Computer.prototype.getUserID = function()
            {
                return this.sUserID? this.sUserID : "";
            };
            
            /**
             * onLoadSetReady(sStateFile, sStateData, nErrorCode)
             *
             * @this {Computer}
             * @param {string} sStateFile
             * @param {string} sStateData
             * @param {number} nErrorCode
             */
            Computer.prototype.onLoadSetReady = function(sStateFile, sStateData, nErrorCode)
            {
                if (!nErrorCode) {
                    this.sStateData = sStateData;
                    if (DEBUG && this.messageEnabled()) {
                        this.printMessage("loaded state file " + sStateFile.replace(this.sUserID || "xxx", "xxx"));
                    }
                } else {
                    this.sResumePath = null;
                    this.fServerState = false;
                    this.notice('Unable to load machine state from server (error ' + nErrorCode + (sStateData? ': ' + str.trim(sStateData) : '') + ')');
                }
                this.setReady();
            };
            
            /**
             * wait(fn, parms)
             *
             * wait() waits until every component is ready (including ourselves, the last component we check),
             * then calls the specified Computer method.
             *
             * TODO: As with web.loadResource(), the Closure Compiler makes it difficult for us to define
             * a function type for "fn" that works in all cases; sometimes we want to pass a function that takes
             * only a "number", and other times we want to pass a function that takes only an "Array" (the type
             * will mirror that of the "parms" parameter). However, the Closure Compiler insists that both functions
             * must be declared as accepting both types of parameters. So once again, we must use an untyped function
             * declaration, instead of something stricter like:
             *
             *      param {function(this:Computer, (number|Array|undefined)): undefined} fn
             *
             * @this {Computer}
             * @param {function(...)} fn
             * @param {number|Array} [parms] optional parameters
             */
            Computer.prototype.wait = function(fn, parms)
            {
                var computer = this;
                var aComponents = Component.getComponents(this.id);
                for (var iComponent = 0; iComponent <= aComponents.length; iComponent++) {
                    var component = (iComponent < aComponents.length ? aComponents[iComponent] : this);
                    if (!component.isReady()) {
                        component.isReady(function onComponentReady() {
                            computer.wait(fn, parms);
                        });
                        return;
                    }
                }
                if (DEBUG && this.messageEnabled()) this.printMessage("Computer.wait(ready)");
                fn.call(this, parms);
            };
            
            /**
             * validateState(stateComputer)
             *
             * NOTE: We clear() stateValidate only when there's no stateComputer.
             *
             * @this {Computer}
             * @param {State|null} [stateComputer]
             * @return {boolean} true if state passes validation, false if not
             */
            Computer.prototype.validateState = function(stateComputer)
            {
                var fValid = true;
                var stateValidate = new State(this, Computer.sAppVer, Computer.STATE_VALIDATE);
                if (stateValidate.load() && stateValidate.parse()) {
                    var sTimestampValidate = stateValidate.get(Computer.STATE_TIMESTAMP);
                    var sTimestampComputer = stateComputer ? stateComputer.get(Computer.STATE_TIMESTAMP) : "unknown";
                    if (sTimestampValidate != sTimestampComputer) {
                        this.notice("Machine state may be out-of-date\n(" + sTimestampValidate + " vs. " + sTimestampComputer + ")\nCheck your browser's local storage limits");
                        fValid = false;
                        if (!stateComputer) stateValidate.clear();
                    } else {
                        if (DEBUG && this.messageEnabled()) {
                            this.printMessage("Last state: " + sTimestampComputer + " (validate: " + sTimestampValidate + ")");
                        }
                    }
                }
                return fValid;
            };
            
            /**
             * powerOn(resume)
             *
             * Power every component "up", applying any previously available state information.
             *
             * @this {Computer}
             * @param {number} [resume] is a valid RESUME value; default is this.resume
             */
            Computer.prototype.powerOn = function(resume)
            {
                if (resume === undefined) {
                    resume = this.resume || (this.sStateData? Computer.RESUME_AUTO : Computer.RESUME_NONE);
                }
            
                if (DEBUG && this.messageEnabled()) {
                    this.printMessage("Computer.powerOn(" + (resume == Computer.RESUME_REPOWER ? "repower" : (resume ? "resume" : "")) + ")");
                }
            
                var fRepower = false;
                var fRestore = false;
                this.fRestoreError = false;
                var stateComputer = this.stateComputer || new State(this, Computer.sAppVer);
            
                if (resume == Computer.RESUME_REPOWER) {
                    fRepower = true;
                }
                else if (resume > Computer.RESUME_NONE) {
                    if (stateComputer.load(this.sStateData)) {
                        /*
                         * Since we're resuming something (either a predefined state or a state from localStorage), let's
                         * create a "failsafe" checkpoint in localStorage, and destroy it at the end of a successful powerOn().
                         * Which means, of course, that if a previous "failsafe" checkpoint already exists, something bad
                         * may have happened the last time around.
                         */
                        this.stateFailSafe = new State(this, Computer.sAppVer, Computer.STATE_FAILSAFE);
                        if (this.stateFailSafe.load()) {
                            this.powerReport(stateComputer);
                            /*
                             * We already know resume is something other than RESUME_NONE, so we'll go ahead and bump it
                             * all the way to RESUME_PROMPT, so that the user will be prompted, and if the user declines to
                             * restore, the state will be removed.
                             */
                            resume = Computer.RESUME_PROMPT;
                            /*
                             * To ensure that the set() below succeeds, we need to call unload(), otherwise it may fail
                             * with a "read only" error (eg, "TypeError: Cannot assign to read only property 'timestamp'").
                             */
                            this.stateFailSafe.unload();
                        }
            
                        this.stateFailSafe.set(Computer.STATE_TIMESTAMP, usr.getTimestamp());
                        this.stateFailSafe.store();
            
                        var fValidate = this.resume && !this.fServerState;
                        if (resume == Computer.RESUME_AUTO || web.confirmUser("Click OK to restore the previous " + Computer.sAppName + " machine state, or CANCEL to reset the machine.")) {
                            fRestore = stateComputer.parse();
                            if (fRestore) {
                                var sCode = stateComputer.get(UserAPI.RES.CODE);
                                var sData = stateComputer.get(UserAPI.RES.DATA);
                                if (sCode) {
                                    if (sCode == UserAPI.CODE.OK) {
                                        stateComputer.load(sData);
                                    } else {
                                        /*
                                         * A missing (or not yet created) state file is no cause for alarm, but other errors might be
                                         */
                                        if (sCode == UserAPI.CODE.FAIL && sData != UserAPI.FAIL.NOSTATE) {
                                            this.notice("Error: " + sData);
                                            if (sData == UserAPI.FAIL.VERIFY) this.resetUserID();
                                        } else {
                                            this.println(sCode + ": " + sData);
                                        }
                                        /*
                                         * Try falling back to the state that we should have saved in localStorage, as a backup to the
                                         * server-side state.
                                         */
                                        stateComputer.unload();     // discard the invalid server-side state first
                                        if (stateComputer.load()) {
                                            fRestore = stateComputer.parse();
                                            fValidate = true;
                                        } else {
                                            fRestore = false;       // hmmm, there was nothing in localStorage either
                                        }
                                    }
                                }
                            }
                            /*
                             * If the load/parse was successful, and it was from localStorage (not sStateData),
                             * then we should to try verify that localStorage snapshot is current.  One reason it may
                             * NOT be current is if localStorage was full and we got a quota error during the last
                             * powerOff().
                             */
                            if (fValidate) this.validateState(fRestore? stateComputer : null);
                        } else {
                            /*
                             * RESUME_PROMPT indicates we should delete the state if they clicked Cancel to confirm() above.
                             */
                            if (resume == Computer.RESUME_PROMPT) stateComputer.clear();
                        }
                    } else {
                        /*
                         * If there's no state, then there should also be no validation timestamp; if there is, then once again,
                         * we're probably dealing with a quota error.
                         */
                        this.validateState();
                    }
                    delete this.sStateData;
                    delete this.stateComputer;
                }
            
                /*
                 * Start powering all components, including any data they may need to restore their state;
                 * we restore power to the CPU last.
                 */
                var aComponents = Component.getComponents(this.id);
                for (var iComponent = 0; iComponent < aComponents.length; iComponent++) {
                    var component = aComponents[iComponent];
                    if (component !== this && component != this.cpu) {
                        fRestore = this.powerRestore(component, stateComputer, fRepower, fRestore);
                    }
                }
            
                /*
                 * Assuming this is not a repower, we must perform another wait, because some components may
                 * have marked themselves as "not ready" again (eg, the FDC component, if the restore forced it
                 * to mount one or more additional disk images).
                 */
                var aParms = [stateComputer, resume, fRestore];
            
                if (resume != Computer.RESUME_REPOWER) {
                    this.wait(this.donePowerOn, aParms);
                    return;
                }
                this.donePowerOn(aParms);
            };
            
            /**
             * powerRestore(component, stateComputer, fRepower, fRestore)
             *
             * @this {Computer}
             * @param {Component} component
             * @param {State} stateComputer
             * @param {boolean} fRepower
             * @param {boolean} fRestore
             * @return {boolean} true if restore should continue, false if not
             */
            Computer.prototype.powerRestore = function(component, stateComputer, fRepower, fRestore)
            {
                if (!component.aFlags.fPowered) {
            
                    component.aFlags.fPowered = true;
            
                    if (component.powerUp) {
            
                        var data = null;
                        if (fRestore) {
                            data = stateComputer.get(component.id);
                            if (!data) {
                                /*
                                 * This is a hack that makes it possible for a machine whose ID has been
                                 * supplemented with a suffix (a single letter or digit) to find object IDs
                                 * in states created from a machine without the suffix.
                                 *
                                 * For example, if a state file was created from a machine with ID "ibm5160"
                                 * but the current machine is "ibm5160a", this attempts a second lookup with
                                 * "ibm5160", enabling us to find objects that match the original machine ID
                                 * (eg, "ibm5160.romEGA").
                                 */
                                data = stateComputer.get(component.id.replace(/[a-z0-9]\./i, '.'));
                            }
                        }
            
                        /*
                         * State.get() will return whatever was originally passed to State.set() (eg, an
                         * Object or a string), but components are supposed to store only Objects, so if a
                         * string comes back, something went wrong.  By explicitly eliminating "string" data,
                         * the Closure Compiler stops complaining that we might be passing strings to our
                         * powerUp() functions (even though we know we're not).
                         *
                         * TODO: Determine if there's some way to coerce the Closure Compiler into treating
                         * data as Object or null, without having to include this runtime check.  An assert
                         * would be a good idea, but this is overkill.
                         */
                        if (typeof data === "string") data = null;
            
                        /*
                         * If computer is null, this is simply a repower notification, which most components
                         * don't do anything with.  Exceptions include: CPU (since it may be halted) and Video
                         * (since its screen may be "turned off").
                         */
                        if (!component.powerUp(data, fRepower) && data) {
            
                            Component.error("Unable to restore state for " + component.type);
                            /*
                             * If this is a resume error for a machine that also has a predefined state
                             * AND we're not restoring from that state, then throw away the current state,
                             * prevent any new state from being created, and then force a reload, which will
                             * hopefully restore us to the functioning predefined state.
                             *
                             * TODO: Considering doing this in ALL cases, not just in situations where a
                             * 'state' exists but we're not actually resuming from it.
                             */
                            if (this.sStatePath && !this.sStateData) {
                                stateComputer.clear();
                                this.resume = Computer.RESUME_NONE;
                                web.reloadPage();
                            } else {
                                /*
                                 * In all other cases, we set fRestoreError, which should trigger a call to
                                 * powerReport() and then delete the offending state.
                                 */
                                this.fRestoreError = true;
                            }
                            /*
                             * Any failure triggers an automatic to call powerUp() again, without any state,
                             * in the hopes that the component can recover by performing a reset.
                             */
                            component.powerUp(null);
                            /*
                             * We also disable the rest of the restore operation, because it's not clear
                             * the remaining state information can be trusted;  the machine is already in an
                             * inconsistent state, so we're not likely to make things worse, and the only
                             * alternative (starting over and performing a state-less reset) isn't likely to make
                             * the user any happier.  But, we'll see... we need some experience with the code.
                             */
                            fRestore = false;
                        }
                    }
            
                    if (!fRepower && component.comment) {
                        var asComments = component.comment.split("|");
                        for (var i = 0; i < asComments.length; i++) {
                            component.status(asComments[i]);
                        }
                    }
                }
                return fRestore;
            };
            
            /**
             * donePowerOn(aParms)
             *
             * This is nothing more than a continuation of powerOn(), giving us the option of calling wait() one more time.
             *
             * @this {Computer}
             * @param {Array} aParms containing [stateComputer, resume, fRestore]
             */
            Computer.prototype.donePowerOn = function(aParms)
            {
                var stateComputer = aParms[0];
                var fRepower = (aParms[1] < 0);
                var fRestore = aParms[2];
            
                if (DEBUG && this.aFlags.fPowered && this.messageEnabled()) {
                    this.printMessage("Computer.donePowerOn(): redundant");
                }
            
                this.aFlags.fPowered = true;
            
                if (!this.fInitialized) {
                    this.println(Computer.sAppName + " v" + Computer.sAppVer + "\n" + Computer.sCopyright + "\n" + Computer.LICENSE);
                    this.fInitialized = true;
                }
            
                /*
                 * Once we get to this point, we're guaranteed that all components are ready, so it's safe to power the CPU;
                 * the CPU should begin executing immediately, unless a debugger is attached.
                 */
                if (this.cpu) {
                    /*
                     * TODO: Do we not care about the return value here? (ie, is checking fRestoreError sufficient)?
                     */
                    this.powerRestore(this.cpu, stateComputer, fRepower, fRestore);
                    this.cpu.autoStart();
                }
            
                /*
                 * If the state was bad, offer to report it and then delete it.  Deleting may be moot, since invariably a new
                 * state will be created on powerOff() before the next powerOn(), but it seems like good paranoia all the same.
                 */
                if (this.fRestoreError) {
                    this.powerReport(stateComputer);
                    stateComputer.clear();
                }
            
                if (!fRepower && this.stateFailSafe) {
                    this.stateFailSafe.clear();
                    delete this.stateFailSafe;
                }
            };
            
            /**
             * checkPower()
             *
             * @this {Computer}
             * @return {boolean} true if the computer is fully powered, false otherwise
             */
            Computer.prototype.checkPower = function()
            {
                if (this.aFlags.fPowered) return true;
            
                var component = null, iComponent;
                var aComponents = Component.getComponents(this.id);
                for (iComponent = 0; iComponent < aComponents.length; iComponent++) {
                    component = aComponents[iComponent];
                    if (component !== this && !component.aFlags.fReady) break;
                }
                if (iComponent == aComponents.length) {
                    for (iComponent = 0; iComponent < aComponents.length; iComponent++) {
                        component = aComponents[iComponent];
                        if (component !== this && !component.aFlags.fPowered) break;
                    }
                }
                if (iComponent == aComponents.length) component = this;
                var s = "The " + component.type + " component (" + component.id + ") is not " + (!component.aFlags.fReady? "ready yet" + (component.fnReady? " (waiting for notification)" : "") : "powered yet") + ".";
                web.alertUser(s);
                return false;
            };
            
            /**
             * powerReport(stateComputer)
             *
             * @this {Computer}
             * @param {State} stateComputer
             */
            Computer.prototype.powerReport = function(stateComputer)
            {
                if (web.confirmUser("There may be a problem with your " + Computer.sAppName + " machine.\n\nTo help us diagnose it, click OK to send this " + Computer.sAppName + " machine state to http://" + SITEHOST + ".")) {
                    web.sendReport(Computer.sAppName, Computer.sAppVer, this.url, this.getUserID(), ReportAPI.TYPE.BUG, stateComputer.toString());
                }
            };
            
            /**
             * powerOff(fSave, fShutdown)
             *
             * Power every component "down" and optionally save the machine state.
             *
             * There's one scenario that powerOff() isn't currently able to deal with very effectively: what to do when
             * the user switches away while it's still being restored, causing Disk loadResource() calls to fail.  The
             * Disk component calls notify() when that happens -- see Disk.mount() -- but the FDC and HDC controllers don't
             * notify *us* of those problems, so Computer assumes that the restore was completely successful, when in fact
             * it was only partially successful.
             *
             * Then we immediately arrive here to perform a save, following that incomplete restore.  It would be wrong to
             * deal with that incomplete restore by setting fRestoreError, because we don't want to trigger a powerReport()
             * and the deletion of the previous state, because the state itself was presumably OK.  Unfortunately, the new
             * state we now save will no longer include manually mounted disk images whose remounts were interrupted, so future
             * restores won't remount them either.
             *
             * We could perhaps solve this by having the Disk component notify us in those situations, set a new flag
             * (fRestoreIncomplete?), and set fSave to false if that's ever set.  Be careful though: when fSave is false,
             * that means MORE than not saving; it also means deleting any previous state, which is NOT what you'd want to
             * do in a "fRestoreIncomplete" situation.  Also, we have to worry about Disk operations that fail for other reasons,
             * making sure those failures don't interfere with the save process in the same way.
             *
             * As it stands, the worst that happens is any manually mounted disk images might have to be manually remounted,
             * which doesn't seem like a huge problem.
             *
             * @this {Computer}
             * @param {boolean} fSave
             * @param {boolean} [fShutdown] is true if the machine is being shut down
             * @return {string|null} string representing the captured state (or null if error)
             */
            Computer.prototype.powerOff = function(fSave, fShutdown)
            {
                var data;
                var sState = "none";
            
                if (DEBUG && this.messageEnabled()) {
                    this.printMessage("Computer.powerOff(" + (fSave ? "save" : "nosave") + (fShutdown ? ",shutdown" : "") + ")");
                }
            
                var stateComputer = new State(this, Computer.sAppVer);
                var stateValidate = new State(this, Computer.sAppVer, Computer.STATE_VALIDATE);
            
                var sTimestamp = usr.getTimestamp();
                stateValidate.set(Computer.STATE_TIMESTAMP, sTimestamp);
                stateComputer.set(Computer.STATE_TIMESTAMP, sTimestamp);
                stateComputer.set(Computer.STATE_VERSION, APPVERSION);
                stateComputer.set(Computer.STATE_HOSTURL, web.getHostURL());
                stateComputer.set(Computer.STATE_BROWSER, web.getUserAgent());
            
                /*
                 * Always power the CPU "down" first, just to insure it doesn't ask other
                 * components to do anything after they're no longer ready.
                 */
                if (this.cpu && this.cpu.powerDown) {
                    if (fShutdown) this.cpu.stopCPU();
                    data = this.cpu.powerDown(fSave, fShutdown);
                    if (typeof data === "object") stateComputer.set(this.cpu.id, data);
                    if (fShutdown) {
                        this.cpu.aFlags.fPowered = false;
                        if (data === false) sState = null;
                    }
                }
            
                var aComponents = Component.getComponents(this.id);
                for (var iComponent = 0; iComponent < aComponents.length; iComponent++) {
                    var component = aComponents[iComponent];
                    if (component.aFlags.fPowered) {
                        if (component.powerDown) {
                            data = component.powerDown(fSave, fShutdown);
                            if (typeof data === "object") stateComputer.set(component.id, data);
                        }
                        if (fShutdown) {
                            component.aFlags.fPowered = false;
                            if (data === false) sState = null;
                        }
                    }
                }
            
                if (sState) {
                    if (fShutdown) {
                        var fClear = false;
                        var fClearAll = false;
                        if (fSave) {
                            if (this.sUserID) {
                                this.saveServerState(this.sUserID, stateComputer.toString());
                            }
                            if (!stateValidate.store() || !stateComputer.store()) {
                                sState = null;
                                /*
                                 * New behavior as of v1.13.2:  if it appears that localStorage is full, we blow it ALL away.
                                 * Dedicated server-side storage is the only way we'll ever be able to reliably preserve a
                                 * particular machine's state.  Historically, attempting to limp along with whatever localStorage
                                 * is left just generates the same useless and annoying warnings over and over.
                                 */
                                fClear = fClearAll = true;
                            }
                        }
                        else {
                            /*
                             * I used to ALWAYS clear (ie, delete) any associated computer state, but now I do this only if the
                             * current machine is "resumable", because there are situations where I have two configurations
                             * for the same machine -- one resumable and one not -- and I don't want the latter throwing away the
                             * state of the former.
                             *
                             * So this code is here now strictly for callers to delete the state of a "resumable" machine, not as
                             * some paranoid clean-up operation.
                             *
                             * An undocumented feature of this operation is that if your configuration uses the special 'resume="3"'
                             * value, and you click the "Reset" button, and then you click OK to reset the everything, this will
                             * actually reset EVERYTHING (ie, all localStorage for ALL configs will be reclaimed).
                             */
                            if (this.resume) {
                                fClear = true;
                                fClearAll = (this.resume == Computer.RESUME_DELETE);
                            }
                        }
                        if (fClear) {
                            stateComputer.clear(fClearAll);
                        }
                    } else {
                        sState = stateComputer.toString();
                    }
                }
            
                if (fShutdown) this.aFlags.fPowered = false;
            
                return sState;
            };
            
            /**
             * reset()
             *
             * Notify all (other) components with a reset() method that the Computer is being reset.
             *
             * NOTE: We'd like to reset the Bus first (due to the importance of the A20 line), but since we
             * allocated the Bus object ourselves, after all the other components were allocated, it ends
             * up near the end of Component's list of components.  Hence the special case for this.bus below.
             *
             * @this {Computer}
             */
            Computer.prototype.reset = function()
            {
                if (this.bus && this.bus.reset) {
                    /*
                     * TODO: Why does WebStorm think that this.bus.type is undefined? The base class (Component)
                     * constructor defines it.
                     */
                    this.printMessage("Resetting " + this.bus.type);
                    this.bus.reset();
                }
                var aComponents = Component.getComponents(this.id);
                for (var iComponent = 0; iComponent < aComponents.length; iComponent++) {
                    var component = aComponents[iComponent];
                    if (component !== this && component !== this.bus && component.reset) {
                        this.printMessage("Resetting " + component.type);
                        component.reset();
                    }
                }
            };
            
            /**
             * start(ms, nCycles)
             *
             * Notify all (other) components with a start() method that the CPU has started.
             *
             * Note that we're called by runCPU(), which is why we exclude the CPU component,
             * as well as ourselves.
             *
             * @this {Computer}
             * @param {number} ms
             * @param {number} nCycles
             */
            Computer.prototype.start = function(ms, nCycles)
            {
                var aComponents = Component.getComponents(this.id);
                for (var iComponent = 0; iComponent < aComponents.length; iComponent++) {
                    var component = aComponents[iComponent];
                    if (component.type == "CPU" || component === this) continue;
                    if (component.start) {
                        component.start(ms, nCycles);
                    }
                }
            };
            
            /**
             * stop(ms, nCycles)
             *
             * Notify all (other) components with a stop() method that the CPU has stopped.
             *
             * Note that we're called by runCPU(), which is why we exclude the CPU component,
             * as well as ourselves.
             *
             * @this {Computer}
             * @param {number} ms
             * @param {number} nCycles
             */
            Computer.prototype.stop = function(ms, nCycles)
            {
                var aComponents = Component.getComponents(this.id);
                for (var iComponent = 0; iComponent < aComponents.length; iComponent++) {
                    var component = aComponents[iComponent];
                    if (component.type == "CPU" || component === this) continue;
                    if (component.stop) {
                        component.stop(ms, nCycles);
                    }
                }
            };
            
            /**
             * setBinding(sHTMLType, sBinding, control)
             *
             * @this {Computer}
             * @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
             * @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "reset")
             * @param {Object} control is the HTML control DOM object (eg, HTMLButtonElement)
             * @return {boolean} true if binding was successful, false if unrecognized binding request
             */
            Computer.prototype.setBinding = function(sHTMLType, sBinding, control)
            {
                var computer = this;
                switch (sBinding) {
                    case "save":
                        this.bindings[sBinding] = control;
                        control.onclick = function onClickSave() {
                            var sUserID = computer.queryUserID(true);
                            if (sUserID) {
                                var fSave = !!(computer.resume && !computer.sResumePath);
                                var sState = computer.powerOff(fSave);
                                if (fSave) {
                                    computer.saveServerState(sUserID, sState);
                                } else {
                                    computer.notice("Resume disabled, machine state not saved");
                                }
                            }
                        };
                        return true;
                    case "reset":
                        this.bindings[sBinding] = control;
                        control.onclick = function onClickReset() {
                            computer.onReset();
                        };
                        return true;
                    default:
                        break;
                }
                return false;
            };
            
            /**
             * resetUserID()
             */
            Computer.prototype.resetUserID = function()
            {
                web.setLocalStorageItem(Computer.STATE_USERID, "");
                this.sUserID = null;
            };
            
            /**
             * queryUserID(fPrompt)
             *
             * @param {boolean} [fPrompt]
             * @returns {string|null|undefined}
             */
            Computer.prototype.queryUserID = function(fPrompt)
            {
                var sUserID = this.sUserID;
                if (!sUserID) {
                    sUserID = web.getLocalStorageItem(Computer.STATE_USERID);
                    if (sUserID !== undefined) {
                        if (!sUserID && fPrompt) {
                            sUserID = web.promptUser("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.");
                            if (sUserID) {
                                sUserID = this.verifyUserID(sUserID);
                                if (!sUserID) this.notice("The user ID is invalid.");
                            }
                        }
                    } else if (fPrompt) {
                        this.notice("Browser local storage is not available");
                    }
                }
                return sUserID;
            };
            
            /**
             * verifyUserID(sUserID)
             *
             * @this {Computer}
             * @param {string} sUserID
             * @return {string} validated user ID, or null if error
             */
            Computer.prototype.verifyUserID = function(sUserID)
            {
                this.sUserID = null;
                var fMessages = DEBUG && this.messageEnabled();
                if (fMessages) this.printMessage("verifyUserID(" + sUserID + ")");
                var sRequest = web.getHost() + UserAPI.ENDPOINT + '?' + UserAPI.QUERY.REQ + '=' + UserAPI.REQ.VERIFY + '&' + UserAPI.QUERY.USER + '=' + sUserID;
                var response = web.loadResource(sRequest);
                var nErrorCode = response[0];
                var sResponse = response[1];
                if (!nErrorCode && sResponse) {
                    try {
                        response = eval("(" + sResponse + ")");
                        if (response.code && response.code == UserAPI.CODE.OK) {
                            web.setLocalStorageItem(Computer.STATE_USERID, response.data);
                            if (fMessages) this.printMessage(Computer.STATE_USERID + " updated: " + response.data);
                            this.sUserID = response.data;
                        } else {
                            if (fMessages) this.printMessage(response.code + ": " + response.data);
                        }
                    } catch (e) {
                        Component.error(e.message + " (" + sResponse + ")");
                    }
                } else {
                    if (fMessages) this.printMessage("invalid response (error " + nErrorCode + ")");
                }
                return this.sUserID;
            };
            
            /**
             * getServerStatePath()
             *
             * @this {Computer}
             * @return {string|null} sStatePath (null if no localStorage or no USERID stored in localStorage)
             */
            Computer.prototype.getServerStatePath = function()
            {
                var sStatePath = null;
                if (this.sUserID) {
                    if (DEBUG && this.messageEnabled()) {
                        this.printMessage(Computer.STATE_USERID + " for load: " + this.sUserID);
                    }
                    sStatePath = web.getHost() + UserAPI.ENDPOINT + '?' + UserAPI.QUERY.REQ + '=' + UserAPI.REQ.LOAD + '&' + UserAPI.QUERY.USER + '=' + this.sUserID + '&' + UserAPI.QUERY.STATE + '=' + State.key(this, Computer.sAppVer);
                } else {
                    if (DEBUG && this.messageEnabled()) {
                        this.printMessage(Computer.STATE_USERID + " unavailable");
                    }
                }
                return sStatePath;
            };
            
            /**
             * saveServerState(sUserID, sState)
             *
             * @param {string} sUserID
             * @param {string|null} sState
             */
            Computer.prototype.saveServerState = function(sUserID, sState)
            {
                /*
                 * We must pass fSync == true, because (as I understand it) browsers will blow off any async
                 * requests when a page is being closed.  Since our request is synchronous, storeServerState()
                 * should also return a result, but there's not much we can do with it, since browsers ALSO
                 * tend to blow off alerts() and the like when closing down.
                 */
                if (sState) {
                    if (DEBUG && this.messageEnabled()) {
                        this.printMessage("size of server state: " + sState.length + " bytes");
                    }
                    var response = this.storeServerState(sUserID, sState, true);
                    if (response && response[UserAPI.RES.CODE] == UserAPI.CODE.OK) {
                        this.notice("Machine state saved to server");
                    } else if (sState) {
                        var sError = (response && response[UserAPI.RES.DATA]) || UserAPI.FAIL.BADSTORE;
                        if (response[UserAPI.RES.CODE] == UserAPI.CODE.FAIL) {
                            sError = "Error: " + sError;
                        } else {
                            sError = "Error " + response[UserAPI.RES.CODE] + ": " + sError;
                        }
                        this.notice(sError);
                        this.resetUserID();
                    }
                } else {
                    if (DEBUG && this.messageEnabled()) {
                        this.printMessage("no state to store");
                    }
                }
            };
            
            /**
             * storeServerState(sUserID, sState, fSync)
             *
             * @this {Computer}
             * @param {string} sUserID
             * @param {string} sState
             * @param {boolean} [fSync] is true if we're powering down and should perform a synchronous request (default is async)
             * @return {*} server response if fSync is true and a response was received; otherwise null
             */
            Computer.prototype.storeServerState = function(sUserID, sState, fSync)
            {
                if (DEBUG && this.messageEnabled()) {
                    this.printMessage(Computer.STATE_USERID + " for store: " + sUserID);
                }
                /*
                 * TODO: Determine whether or not any browsers cancel our request if we're called during a browser "shutdown" event,
                 * and whether or not it matters if we do an async request (currently, we're not, to try to ensure the request goes through).
                 */
                var data = {};
                data[UserAPI.QUERY.REQ] = UserAPI.REQ.STORE;
                data[UserAPI.QUERY.USER] = sUserID;
                data[UserAPI.QUERY.STATE] = State.key(this, Computer.sAppVer);
                data[UserAPI.QUERY.DATA] = sState;
                var sRequest = web.getHost() + UserAPI.ENDPOINT;
                if (!fSync) {
                    web.loadResource(sRequest, true, data);
                } else {
                    var response = web.loadResource(sRequest, false, data);
                    var sResponse = response[1];
                    if (response[0]) {
                        if (sResponse) {
                            var i = sResponse.indexOf('\n');
                            if (i > 0) sResponse = sResponse.substr(0, i);
                            if (!sResponse.indexOf("Error: ")) sResponse = sResponse.substr(7);
                        }
                        sResponse = '{"' + UserAPI.RES.CODE + '":' + response[0] + ',"' + UserAPI.RES.DATA + '":"' + sResponse + '"}';
                    }
                    if (DEBUG && this.messageEnabled()) this.printMessage(sResponse);
                    return JSON.parse(sResponse);
                }
                return null;
            };
            
            /**
             * onReset()
             *
             * @this {Computer}
             */
            Computer.prototype.onReset = function()
            {
                /*
                 * If this is a "resumable" machine (and it's not using a predefined state), then we overload the reset
                 * operation to offer an explicit "save or discard" option first.  This is currently the only UI we offer to
                 * discard a machine's state, including any disk changes.  The traditional "reset" operation is still available
                 * for non-resumable machines.
                 *
                 * TODO: Break this behavior out into a separate "discard" operation, in case the designer of the machine really
                 * wants to clutter the UI with confusing options. ;-)
                 */
                if (this.resume && !this.sResumePath) {
                    /*
                     * I used to bypass the prompt if this.resume == Computer.RESUME_AUTO, setting fSave to true automatically,
                     * but that gives the user no means of resetting a resumable machine that contains errors in its resume state.
                     */
                    var fSave = (/* this.resume == Computer.RESUME_AUTO || */ web.confirmUser("Click OK to save changes to this " + Computer.sAppName + " machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded."));
                    this.powerOff(fSave, true);
                    /*
                     * Forcing the page to reload is an expedient option, but ugly. It's preferable to call powerOn()
                     * and rely on all the components to reset themselves to their default state.  The components with
                     * the greatest burden here are FDC and HDC, which must rely on the fReload flag to determine whether
                     * or not to unload/reload all their original auto-mounted disk images.
                     *
                     * However, if we started with a predefined state (ie, sStatePath is set), we take this shortcut, because
                     * we don't (yet) have code in place to gracefully reload the initial state (requires calling loadResource()
                     * again); alternatively, we could avoid throwing that state away, but it seems better to save the memory.
                     *
                     * TODO: Make this more graceful, so that we can stop using the reloadPage() sledgehammer.
                     */
                    if (!fSave && this.sStatePath) {
                        web.reloadPage();
                        return;
                    }
                    if (!fSave) this.fReload = true;
                    this.powerOn(Computer.RESUME_NONE);
                    this.fReload = false;
                } else {
                    this.reset();
                    if (this.cpu) this.cpu.autoStart();
                }
            };
            
            /**
             * getComponentByType(sType, componentPrev)
             *
             * @this {Computer}
             * @param {string} sType
             * @param {Component|null} [componentPrev] of previously returned component, if any
             * @return {Component|null}
             */
            Computer.prototype.getComponentByType = function(sType, componentPrev)
            {
                var aComponents = Component.getComponents(this.id);
                for (var iComponent = 0; iComponent < aComponents.length; iComponent++) {
                    var component = aComponents[iComponent];
                    if (componentPrev) {
                        if (componentPrev == component) componentPrev = null;
                        continue;
                    }
                    if (component.type == sType) return component;
                }
                return null;
            };
            
            /**
             * Computer.init()
             *
             * For every machine represented by an HTML element of class "pcjs-machine", this function
             * locates the HTML element of class "computer", extracting the JSON-encoded parameters for the
             * Computer constructor from the element's "data-value" attribute, invoking the constructor to
             * create a Computer component, and then binding any associated HTML controls to the new component.
             */
            Computer.init = function()
            {
                var aeMachines = Component.getElementsByClass(window.document, PCJSCLASS + "-machine");
            
                for (var iMachine = 0; iMachine < aeMachines.length; iMachine++) {
            
                    var eMachine = aeMachines[iMachine];
                    var parmsMachine = Component.getComponentParms(eMachine);
            
                    var aeComputers = Component.getElementsByClass(eMachine, PCJSCLASS, "computer");
            
                    for (var iComputer = 0; iComputer < aeComputers.length; iComputer++) {
            
                        var eComputer = aeComputers[iComputer];
                        var parmsComputer = Component.getComponentParms(eComputer);
            
                        /*
                         * We set fSuspended in the Computer constructor because we want to "power up" the
                         * computer ourselves, after any/all bindings are in place.
                         */
                        var computer = new Computer(parmsComputer, parmsMachine, true);
            
                        if (DEBUG && computer.messageEnabled()) {
                            computer.printMessage("onInit(" + computer.aFlags.fPowered + ")");
                        }
            
                        /*
                         * For now, all we support are "reset" and "save" buttons. We may eventually add a "power"
                         * button to manually suspend/resume the machine.  An "erase" button was also considered, but
                         * "reset" now provides a way to force the machine to start from scratch again, so "erase"
                         * might be redundant now.
                         */
                        Component.bindComponentControls(computer, eComputer, PCJSCLASS);
            
                        /*
                         * Power "up" the computer, giving every component the opportunity to reset or restore itself.
                         */
                        computer.wait(computer.powerOn);
                    }
                }
            };
            
            /**
             * Computer.show()
             *
             * When exit() is using an "onbeforeunload" handler, this "onpageshow" handler allows us to repower everything,
             * without either resetting or restoring.  We call powerOn() with a special resume value (RESUME_REPOWER) if the
             * computer is already marked as "ready", meaning the browser didn't change anything.  This "repower" process
             * should be very quick, essentially just marking all components as powered again (so that, for example, the Video
             * component will start drawing again) and firing the CPU up again.
             */
            Computer.show = function()
            {
                var aeComputers = Component.getElementsByClass(window.document, PCJSCLASS, "computer");
                for (var iComputer = 0; iComputer < aeComputers.length; iComputer++) {
                    var eComputer = aeComputers[iComputer];
                    var parmsComputer = Component.getComponentParms(eComputer);
                    var computer = Component.getComponentByType("Computer", parmsComputer['id']);
                    if (computer) {
            
                        if (DEBUG && computer.messageEnabled()) {
                            computer.printMessage("onShow(" + computer.fInitialized + "," + computer.aFlags.fPowered + ")");
                        }
            
                        if (computer.fInitialized && !computer.aFlags.fPowered) {
                            /**
                             * Repower the computer, notifying every component to continue running as-is.
                             */
                            computer.powerOn(Computer.RESUME_REPOWER);
                        }
                    }
                }
            };
            
            /**
             * Computer.exit()
             *
             * The Computer is currently the only component that uses an "exit" handler, which web.onExit() defines as
             * either an "unload" or "onbeforeunload" handler.  This gives us the opportunity to save the machine state,
             * using our powerOff() function, before the page goes away.
             *
             * It's worth noting that "onbeforeunload" offers one nice feature when used instead of "onload": the entire
             * page (and therefore this entire application) is retained in its current state by the browser (well, some
             * browsers), so that if you go to a new URL, either by entering a new URL in the same window/tab, or by pressing
             * the FORWARD button, and then you press the BACK button, the page is immediately restored to its previous state.
             *
             * In fact, that's how some browsers operate whether you have an "onbeforeunload" handler or not; in other words,
             * an "onbeforeunload" handler doesn't change the page retention behavior of the browser.  By contrast, the mere
             * presence of an "onunload" handler generally causes a browser to throw the page away once the handler returns.
             *
             * However, in order to safely use "onbeforeunload", we must add yet another handler ("onpageshow") to repower
             * everything, without either resetting or restoring.  Hence, the Computer.show() function, which calls powerOn()
             * with a special resume value (RESUME_REPOWER) if the computer is already marked as "ready", meaning the browser
             * didn't change anything.  This "repower" process should be very quick, essentially just marking all components as
             * powered again (so that, for example, the Video component will start drawing again) and firing the CPU up again.
             *
             * Reportedly, some browsers (eg, Opera) don't support "onbeforeunload", in which case Component will have to use
             * "unload" instead.  But even when the page must be rebuilt from scratch, the combination of browser cache and
             * localStorage means the simulation should be restored and become operational almost immediately.
             */
            Computer.exit = function()
            {
                var aeComputers = Component.getElementsByClass(window.document, PCJSCLASS, "computer");
                for (var iComputer = 0; iComputer < aeComputers.length; iComputer++) {
                    var eComputer = aeComputers[iComputer];
                    var parmsComputer = Component.getComponentParms(eComputer);
                    var computer = Component.getComponentByType("Computer", parmsComputer['id']);
                    if (computer) {
            
                        if (DEBUG && computer.messageEnabled()) {
                            computer.printMessage("onExit(" + computer.aFlags.fPowered + ")");
                        }
            
                        if (computer.aFlags.fPowered) {
                            /**
                             * Power "down" the computer, giving every component an opportunity to save its state,
                             * but only if 'resume' has been set AND there is no valid resume path (because if a valid resume
                             * path exists, we'll always load our state from there, and not from whatever we save here).
                             */
                            computer.powerOff(!!(computer.resume && !computer.sResumePath), true);
                        }
                    }
                }
            };
            
            /*
             * Initialize every Computer on the page.
             */
            web.onInit(Computer.init);
            web.onShow(Computer.show);
            web.onExit(Computer.exit);
            
            if (typeof module !== 'undefined') module.exports = Computer;
            
          • cpu.js
            /**
             * @fileoverview Implements the PCjs CPU component.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Sep-04
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var str         = require("../../shared/lib/strlib");
                var usr         = require("../../shared/lib/usrlib");
                var Component   = require("../../shared/lib/component");
                var Messages    = require("./messages");
            }
            
            /**
             * CPU(parmsCPU, nCyclesDefault)
             *
             * The CPU class supports the following (parmsCPU) properties:
             *
             *      cycles: the machine's base cycles per second; the X86CPU constructor will
             *      provide us with a default (based on the CPU model) to use as a fallback
             *
             *      multiplier: base cycle multiplier; default is 1
             *
             *      autoStart: true to automatically start, false to not, or null (default)
             *      to make the autoStart decision based on whether or not a Debugger is
             *      installed (if there's no Debugger AND no "Run" button, then auto-start,
             *      otherwise don't)
             *
             *      csStart: the number of cycles that runCPU() must wait before generating
             *      checksum records; -1 if disabled. checksum records are a diagnostic aid
             *      used to help compare one CPU run to another.
             *
             *      csInterval: the number of cycles that runCPU() must execute before
             *      generating a checksum record; -1 if disabled.
             *
             *      csStop: the number of cycles to stop generating checksum records.
             *
             * This component is primarily responsible for interfacing the CPU with the outside
             * world (eg, Panel and Debugger components), and managing overall CPU operation.
             *
             * It is extended by the X86CPU component, where all the x86-specific logic resides.
             *
             * @constructor
             * @extends Component
             * @param {Object} parmsCPU
             * @param {number} nCyclesDefault
             */
            function CPU(parmsCPU, nCyclesDefault)
            {
                Component.call(this, "CPU", parmsCPU, CPU, Messages.CPU);
            
                var nCycles = parmsCPU['cycles'] || nCyclesDefault;
            
                var nMultiplier = parmsCPU['multiplier'] || 1;
            
                this.aCounts = {};
                this.aCounts.nCyclesPerSecond = nCycles;
            
                /*
                 * nCyclesMultiplier replaces the old "speed" variable (0, 1, 2) and eliminates the need for
                 * the constants (SPEED_SLOW, SPEED_FAST and SPEED_MAX).  The UI simply doubles the multiplier
                 * until we've exceeded the host's speed limit and then starts the multiplier over at 1.
                 */
                this.aCounts.nCyclesMultiplier = nMultiplier;
                this.aCounts.mhzDefault = Math.round(this.aCounts.nCyclesPerSecond / 10000) / 100;
                /*
                 * TODO: Take care of this with an initial setSpeed() call instead?
                 */
                this.aCounts.mhzTarget = this.aCounts.mhzDefault * this.aCounts.nCyclesMultiplier;
            
                /*
                 * We add a number of flags to the set initialized by Component
                 */
                this.aFlags.fRunning = false;
                this.aFlags.fStarting = false;
                this.aFlags.fAutoStart = parmsCPU['autoStart'];
            
                /*
                 * TODO: Add some UI for fDisplayLiveRegs (either an XML property, or a UI checkbox, or both)
                 */
                this.aFlags.fDisplayLiveRegs = false;
            
                /*
                 * Provide a power-saving URL-based way of overriding the 'autostart' setting;
                 * if an "autostart" parameter is specified on the URL, anything other than "true"
                 * or "false" is treated as the null setting (see above for details).
                 */
                var sAutoStart = Component.parmsURL['autostart'];
                if (sAutoStart !== undefined) {
                    this.aFlags.fAutoStart = (sAutoStart == "true"? true : (sAutoStart  == "false"? false : null));
                }
            
                /*
                 * Get checksum parameters, if any. runCPU() behavior is not affected until fChecksum
                 * is true, which won't happen until resetChecksum() is called with nCyclesChecksumInterval
                 * ("csInterval") set to a positive value.
                 *
                 * As above, any of these parameters can also be set with the Debugger's execution options
                 * command ("x"); for example, "x cs int 5000" will set nCyclesChecksumInterval to 5000
                 * and call resetChecksum().
                 */
                this.aFlags.fChecksum = false;
                this.aCounts.nChecksum = this.aCounts.nCyclesChecksumNext = 0;
                this.aCounts.nCyclesChecksumStart = parmsCPU["csStart"];
                this.aCounts.nCyclesChecksumInterval = parmsCPU["csInterval"];
                this.aCounts.nCyclesChecksumStop = parmsCPU["csStop"];
            
                /*
                 * Initially, no video devices are attached that require CPU-driven updates.  initBus() will update this.
                 */
                this.aVideo = [];
            
                var cpu = this;
                this.onRunTimeout = function() { cpu.runCPU(); };
            
                this.setReady();
            }
            
            Component.subclass(CPU);
            
            /*
             * Constants that control the frequency at which various updates should occur.
             *
             * These values do NOT control the simulation directly.  Instead, they are used by
             * calcCycles(), which uses the nCyclesPerSecond passed to the constructor as a starting
             * point and computes the following variables:
             *
             *      this.aCounts.nCyclesPerYield         (this.aCounts.nCyclesPerSecond / CPU.YIELDS_PER_SECOND)
             *      this.aCounts.nCyclesPerVideoUpdate   (this.aCounts.nCyclesPerSecond / CPU.VIDEO_UPDATES_PER_SECOND)
             *      this.aCounts.nCyclesPerStatusUpdate  (this.aCounts.nCyclesPerSecond / CPU.STATUS_UPDATES_PER_SECOND)
             *
             * The above variables are also multiplied by any cycle multiplier in effect, via setSpeed(),
             * and then they're used to initialize another set of variables for each runCPU() iteration:
             *
             *      this.aCounts.nCyclesNextYield        <= this.aCounts.nCyclesPerYield
             *      this.aCounts.nCyclesNextVideoUpdate  <= this.aCounts.nCyclesPerVideoUpdate
             *      this.aCounts.nCyclesNextStatusUpdate <= this.aCounts.nCyclesPerStatusUpdate
             */
            CPU.YIELDS_PER_SECOND         = 30;
            CPU.VIDEO_UPDATES_PER_SECOND  = 60;     // WARNING: if you change this, beware of side-effects in the Video component
            CPU.STATUS_UPDATES_PER_SECOND = 2;
            
            /**
             * initBus(cmp, bus, cpu, dbg)
             *
             * @this {CPU}
             * @param {Computer} cmp
             * @param {Bus} bus
             * @param {CPU} cpu
             * @param {Debugger} dbg
             */
            CPU.prototype.initBus = function(cmp, bus, cpu, dbg)
            {
                this.bus = bus;
                this.dbg = dbg;
                this.cmp = cmp;
                /*
                 * Attach the Video component to the CPU, so that the CPU can periodically update
                 * the video display via updateVideo(), as cycles permit.
                 */
                for (var video = null; (video = cmp.getComponentByType("Video", video));) {
                    this.aVideo.push(video);
                }
                /*
                 * Attach the ChipSet component to the CPU, so that it can obtain the IDT vector number of
                 * pending hardware interrupts, in response to ChipSet's updateINTR() notifications.
                 *
                 * We must also call chipset.updateAllTimers() periodically; stepCPU() takes care of that.
                 */
                this.chipset = cmp.getComponentByType("ChipSet");
                this.setReady();
            };
            
            /**
             * reset()
             *
             * This is a placeholder for reset (overridden by the X86CPU component).
             *
             * @this {CPU}
             */
            CPU.prototype.reset = function()
            {
            };
            
            /**
             * save()
             *
             * This is a placeholder for save support (overridden by the X86CPU component).
             *
             * @this {CPU}
             * @return {Object|null}
             */
            CPU.prototype.save = function()
            {
                return null;
            };
            
            /**
             * restore(data)
             *
             * This is a placeholder for restore support (overridden by the X86CPU component).
             *
             * @this {CPU}
             * @param {Object} data
             * @return {boolean} true if restore successful, false if not
             */
            CPU.prototype.restore = function(data)
            {
                return false;
            };
            
            /**
             * powerUp(data, fRepower)
             *
             * @this {CPU}
             * @param {Object|null} data
             * @param {boolean} [fRepower]
             * @return {boolean} true if successful, false if failure
             */
            CPU.prototype.powerUp = function(data, fRepower)
            {
                if (!fRepower) {
                    if (!data || !this.restore) {
                        this.reset();
                    } else {
                        this.resetCycles();
                        if (!this.restore(data)) return false;
                        this.resetChecksum();
                    }
                    /*
                     * Give the Debugger a chance to do/print something once we've powered up
                     */
                    if (DEBUGGER && this.dbg) {
                        this.dbg.init();
                    } else {
                        /*
                         * The Computer (this.cmp) knows if there's a Control Panel (this.cmp.panel), and the Control Panel
                         * knows if there's a "print" control (this.cmp.panel.controlPrint), and if there IS a "print" control
                         * but no debugger, the machine is probably misconfigured (most likely, the page simply neglected to
                         * load the Debugger component).
                         *
                         * However, we don't actually need to check all that; it's always safe use println(), regardless whether
                         * a Control Panel with a "print" control is present or not.
                         */
                        this.println("No debugger detected");
                    }
                }
                /*
                 * The Computer component (which is responsible for all powerDown and powerUp notifications)
                 * is now responsible for managing a component's fPowered flag, not us.
                 *
                 *      this.aFlags.fPowered = true;
                 */
                this.updateCPU();
                return true;
            };
            
            /**
             * powerDown(fSave, fShutdown)
             *
             * @this {CPU}
             * @param {boolean} fSave
             * @param {boolean} [fShutdown]
             * @return {Object|boolean} component state if fSave; otherwise, true if successful, false if failure
             */
            CPU.prototype.powerDown = function(fSave, fShutdown)
            {
                /*
                 * The Computer component (which is responsible for all powerDown and powerUp notifications)
                 * is now responsible for managing a component's fPowered flag, not us.
                 *
                 *      this.aFlags.fPowered = false;
                 */
                return fSave && this.save ? this.save() : true;
            };
            
            /**
             * autoStart()
             *
             * @this {CPU}
             * @return {boolean} true if started, false if not
             */
            CPU.prototype.autoStart = function()
            {
                if (this.aFlags.fAutoStart === true || this.aFlags.fAutoStart === null && (!DEBUGGER || !this.dbg) && this.bindings["run"] === undefined) {
                    this.runCPU();      // start running automatically on power-up, assuming there's no Debugger and no "Run" button
                    return true;
                }
                return false;
            };
            
            /**
             * isPowered()
             *
             * @this {CPU}
             * @return {boolean}
             */
            CPU.prototype.isPowered = function()
            {
                if (!this.aFlags.fPowered) {
                    this.println(this.toString() + " not powered");
                    return false;
                }
                return true;
            };
            
            /**
             * isRunning()
             *
             * @this {CPU}
             * @return {boolean}
             */
            CPU.prototype.isRunning = function()
            {
                return this.aFlags.fRunning;
            };
            
            /**
             * getChecksum()
             *
             * This will be implemented by the X86CPU component.
             *
             * @this {CPU}
             * @return {number} a 32-bit summation of key elements of the current CPU state (used by the CPU checksum code)
             */
            CPU.prototype.getChecksum = function()
            {
                return 0;
            };
            
            /**
             * resetChecksum()
             *
             * If checksum generation is enabled (fChecksum is true), this resets the running 32-bit checksum and the
             * cycle counter that will trigger the next displayChecksum(); called by resetCycles(), which is called whenever
             * the CPU is reset or restored.
             *
             * @this {CPU}
             * @return {boolean} true if checksum generation enabled, false if not
             */
            CPU.prototype.resetChecksum = function()
            {
                if (this.aCounts.nCyclesChecksumStart === undefined) this.aCounts.nCyclesChecksumStart = 0;
                if (this.aCounts.nCyclesChecksumInterval === undefined) this.aCounts.nCyclesChecksumInterval = -1;
                if (this.aCounts.nCyclesChecksumStop === undefined) this.aCounts.nCyclesChecksumStop = -1;
                this.aFlags.fChecksum = (this.aCounts.nCyclesChecksumStart >= 0 && this.aCounts.nCyclesChecksumInterval > 0);
                if (this.aFlags.fChecksum) {
                    this.aCounts.nChecksum = 0;
                    this.aCounts.nCyclesChecksumNext = this.aCounts.nCyclesChecksumStart - this.nTotalCycles;
                    // this.aCounts.nCyclesChecksumNext = this.aCounts.nCyclesChecksumStart + this.aCounts.nCyclesChecksumInterval - (this.nTotalCycles % this.aCounts.nCyclesChecksumInterval);
                    return true;
                }
                return false;
            };
            
            /**
             * updateChecksum(nCycles)
             *
             * When checksum generation is enabled (fChecksum is true), runCPU() asks stepCPU() to execute a minimum
             * number of cycles (1), effectively limiting execution to a single instruction, and then we're called with
             * the exact number cycles that were actually executed.  This should give us instruction-granular checksums
             * at precise intervals that are 100% repeatable.
             *
             * @this {CPU}
             * @param {number} nCycles
             */
            CPU.prototype.updateChecksum = function(nCycles)
            {
                if (this.aFlags.fChecksum) {
                    /*
                     * Get a 32-bit summation of the current CPU state and add it to our running 32-bit checksum
                     */
                    var fDisplay = false;
                    this.aCounts.nChecksum = (this.aCounts.nChecksum + this.getChecksum())|0;
                    this.aCounts.nCyclesChecksumNext -= nCycles;
                    if (this.aCounts.nCyclesChecksumNext <= 0) {
                        this.aCounts.nCyclesChecksumNext += this.aCounts.nCyclesChecksumInterval;
                        fDisplay = true;
                    }
                    if (this.aCounts.nCyclesChecksumStop >= 0) {
                        if (this.aCounts.nCyclesChecksumStop <= this.getCycles()) {
                            this.aCounts.nCyclesChecksumInterval = this.aCounts.nCyclesChecksumStop = -1;
                            this.resetChecksum();
                            this.stopCPU();
                            fDisplay = true;
                        }
                    }
                    if (fDisplay) this.displayChecksum();
                }
            };
            
            /**
             * displayChecksum()
             *
             * When checksum generation is enabled (fChecksum is true), this is called to provide a crude log of all
             * checksums generated at the specified cycle intervals, as specified by the "csStart" and "csInterval" parmsCPU
             * properties).
             *
             * @this {CPU}
             */
            CPU.prototype.displayChecksum = function()
            {
                this.println(this.getCycles() + " cycles: " + "checksum=" + str.toHex(this.aCounts.nChecksum));
            };
            
            /**
             * displayValue(sLabel, nValue, cch)
             *
             * This is principally for displaying register values, but in reality, it can be used to display any
             * numeric (hex) value bound to the given label.
             *
             * @this {CPU}
             * @param {string} sLabel
             * @param {number} nValue
             * @param {number} cch
             */
            CPU.prototype.displayValue = function(sLabel, nValue, cch)
            {
                if (this.bindings[sLabel]) {
                    if (nValue === undefined) {
                        this.setError("Value for " + sLabel + " is invalid");
                        this.stopCPU();
                    }
                    var sVal;
                    if (!this.aFlags.fRunning || this.aFlags.fDisplayLiveRegs) {
                        sVal = str.toHex(nValue, cch);
                    } else {
                        sVal = "--------".substr(0, cch);
                    }
                    /*
                     * TODO: Determine if this test actually avoids any redrawing when a register hasn't changed, and/or if
                     * we should maintain our own (numeric) cache of displayed register values (to avoid creating these temporary
                     * string values that will have to garbage-collected), and/or if this is actually slower, and/or if I'm being
                     * too obsessive.
                     */
                    if (this.bindings[sLabel].textContent != sVal) this.bindings[sLabel].textContent = sVal;
                }
            };
            
            /**
             * updateStatus(fForce)
             *
             * This provides periodic Control Panel updates (eg, a few times per second; see STATUS_UPDATES_PER_SECOND).
             * The X86CPU subclasses updateStatus() to take care of any DOM updates (eg, register values) while the CPU is running.
             *
             * @this {CPU}
             * @param {boolean} [fForce]
             */
            CPU.prototype.updateStatus = function(fForce)
            {
                if (this.cmp && this.cmp.panel) this.cmp.panel.updateStatus();
            };
            
            /**
             * updateVideo()
             *
             * Any high-frequency updates should be performed here.  Avoid DOM updates, since updateVideo() can be called up to
             * 60 times per second (see VIDEO_UPDATES_PER_SECOND).
             *
             * @this {CPU}
             */
            CPU.prototype.updateVideo = function()
            {
                for (var i = 0; i < this.aVideo.length; i++) {
                    this.aVideo[i].updateScreen();
                }
                if (this.cmp && this.cmp.panel) this.cmp.panel.updateAnimation();
            };
            
            /**
             * setFocus()
             *
             * @this {CPU}
             */
            CPU.prototype.setFocus = function()
            {
                if (this.aVideo.length) this.aVideo[0].setFocus();
            };
            
            /**
             * setBinding(sHTMLType, sBinding, control)
             *
             * @this {CPU}
             * @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
             * @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "run")
             * @param {Object} control is the HTML control DOM object (eg, HTMLButtonElement)
             * @return {boolean} true if binding was successful, false if unrecognized binding request
             */
            CPU.prototype.setBinding = function(sHTMLType, sBinding, control)
            {
                var cpu = this;
                var fBound = false;
                switch (sBinding) {
                case "run":
                    this.bindings[sBinding] = control;
                    control.onclick = function onClickRun() {
                        if (!cpu.cmp || !cpu.cmp.checkPower()) return;
                        if (!cpu.aFlags.fRunning)
                            cpu.runCPU(true);
                        else
                            cpu.stopCPU(true);
                    };
                    fBound = true;
                    break;
            
                case "reset":
                    /*
                     * A "reset" button is really a function of the entire computer, not just the CPU, but
                     * it's not always convenient to stick a reset button in the computer component definition,
                     * so we support a "reset" binding both here AND in the Computer component.
                     */
                    this.bindings[sBinding] = control;
                    control.onclick = function onClickReset() {
                        if (cpu.cmp) cpu.cmp.onReset();
                    };
                    fBound = true;
                    break;
            
                case "speed":
                    this.bindings[sBinding] = control;
                    fBound = true;
                    break;
            
                case "setSpeed":
                    this.bindings[sBinding] = control;
                    control.onclick = function onClickSetSpeed() {
                        cpu.setSpeed(cpu.aCounts.nCyclesMultiplier << 1, true);
                    };
                    control.textContent = this.getSpeedTarget();
                    fBound = true;
                    break;
            
                default:
                    break;
                }
                return fBound;
            };
            
            /**
             * setBurstCycles(nCycles)
             *
             * This function is used by the ChipSet component whenever a very low timer count is set,
             * in anticipation of the timer requiring an update sooner than the normal nCyclesPerYield
             * period in runCPU() would normally provide.
             *
             * @this {CPU}
             * @param {number} nCycles is the target number of cycles to drop the current burst to
             * @return {boolean}
             */
            CPU.prototype.setBurstCycles = function(nCycles)
            {
                if (this.aFlags.fRunning) {
                    var nDelta = this.nStepCycles - nCycles;
                    /*
                     * NOTE: If nDelta is negative, we will actually be increasing nStepCycles and nBurstCycles.
                     * Which is OK, but if we're also taking snapshots of the cycle counts, to make sure that instruction
                     * costs are being properly assessed, then we need to update nSnapCycles as well.
                     *
                     * TODO: If the delta is negative, we could simply ignore the request, but we must first carefully
                     * consider the impact on the ChipSet timers.
                     */
                    if (DEBUG) this.nSnapCycles -= nDelta;
                    this.nStepCycles -= nDelta;
                    this.nBurstCycles -= nDelta;
                    return true;
                }
                return false;
            };
            
            /**
             * addCycles(nCycles, fEndStep)
             *
             * @this {CPU}
             * @param {number} nCycles
             * @param {boolean} [fEndStep]
             */
            CPU.prototype.addCycles = function(nCycles, fEndStep)
            {
                this.nTotalCycles += nCycles;
                if (fEndStep) {
                    this.nBurstCycles = this.nStepCycles = 0;
                }
            };
            
            /**
             * calcCycles(fRecalc)
             *
             * Calculate the number of cycles to process for each "burst" of CPU activity.  The size of a burst
             * is driven by the following values:
             *
             *      CPU.YIELDS_PER_SECOND (eg, 30)
             *      CPU.VIDEO_UPDATES_PER_SECOND (eg, 60)
             *      CPU.STATUS_UPDATES_PER_SECOND (eg, 5)
             *
             * The largest of the above values forces the size of the burst to its smallest value.  Let's say that
             * largest value is 30.  Assuming nCyclesPerSecond is 1,000,000, that results in bursts of 33,333 cycles.
             *
             * At the end of each burst, we subtract burst cycles from yield, video, and status cycle "threshold"
             * counters. Whenever the "next yield" cycle counter goes to (or below) zero, we compare elapsed time
             * to the time we expected the virtual hardware to take (eg, 1000ms/50 or 20ms), and if we still have time
             * remaining, we sleep the remaining time (or 0ms if there's no remaining time), and then restart runCPU().
             *
             * Similarly, whenever the "next video update" cycle counter goes to (or below) zero, we call updateVideo(),
             * and whenever the "next status update" cycle counter goes to (or below) zero, we call updateStatus().
             *
             * @this {CPU}
             * @param {boolean} [fRecalc] is true if the caller wants to recalculate thresholds based on the most recent
             * speed calculation (see calcSpeed).
             */
            CPU.prototype.calcCycles = function(fRecalc)
            {
                /*
                 * Calculate the most cycles we're allowed to execute in a single "burst"
                 */
                var nMostUpdatesPerSecond = CPU.YIELDS_PER_SECOND;
                if (nMostUpdatesPerSecond < CPU.VIDEO_UPDATES_PER_SECOND) nMostUpdatesPerSecond = CPU.VIDEO_UPDATES_PER_SECOND;
                if (nMostUpdatesPerSecond < CPU.STATUS_UPDATES_PER_SECOND) nMostUpdatesPerSecond = CPU.STATUS_UPDATES_PER_SECOND;
            
                /*
                 * Calculate cycle "per" values for the yield, video update, and status update cycle counters
                 */
                var vMultiplier = 1;
                if (fRecalc) {
                    if (this.aCounts.nCyclesMultiplier > 1 && this.aCounts.mhz) {
                        vMultiplier = (this.aCounts.mhz / this.aCounts.mhzDefault);
                    }
                }
            
                this.aCounts.msPerYield = Math.round(1000 / CPU.YIELDS_PER_SECOND);
                this.aCounts.nCyclesPerBurst = Math.floor(this.aCounts.nCyclesPerSecond / nMostUpdatesPerSecond * vMultiplier);
                this.aCounts.nCyclesPerYield = Math.floor(this.aCounts.nCyclesPerSecond / CPU.YIELDS_PER_SECOND * vMultiplier);
                this.aCounts.nCyclesPerVideoUpdate = Math.floor(this.aCounts.nCyclesPerSecond / CPU.VIDEO_UPDATES_PER_SECOND * vMultiplier);
                this.aCounts.nCyclesPerStatusUpdate = Math.floor(this.aCounts.nCyclesPerSecond / CPU.STATUS_UPDATES_PER_SECOND * vMultiplier);
            
                /*
                 * And initialize "next" yield, video update, and status update cycle "threshold" counters to those "per" values
                 */
                if (!fRecalc) {
                    this.aCounts.nCyclesNextYield = this.aCounts.nCyclesPerYield;
                    this.aCounts.nCyclesNextVideoUpdate = this.aCounts.nCyclesPerVideoUpdate;
                    this.aCounts.nCyclesNextStatusUpdate = this.aCounts.nCyclesPerStatusUpdate;
                }
                this.aCounts.nCyclesRecalc = 0;
            };
            
            /**
             * getCycles(fScaled)
             *
             * getCycles() returns the number of cycles executed so far.  Note that we can be called after
             * runCPU() OR during runCPU(), perhaps from a handler triggered during the current run's stepCPU(),
             * so nRunCycles must always be adjusted by number of cycles stepCPU() was asked to run (nBurstCycles),
             * less the number of cycles it has yet to run (nStepCycles).
             *
             * nRunCycles is zeroed whenever the CPU is halted or the CPU speed is changed, which is why we also
             * have nTotalCycles, which accumulates all nRunCycles before we zero it.  However, nRunCycles and
             * nTotalCycles eventually get reset by calcSpeed(), to avoid overflow, so components that rely on
             * getCycles() returning steadily increasing values should also be prepared for a reset at any time.
             *
             * @this {CPU}
             * @param {boolean} [fScaled] is true if the caller wants a cycle count relative to a multiplier of 1
             * @return {number}
             */
            CPU.prototype.getCycles = function(fScaled)
            {
                var nCycles = this.nTotalCycles + this.nRunCycles + this.nBurstCycles - this.nStepCycles;
                if (fScaled && this.aCounts.nCyclesMultiplier > 1 && this.aCounts.mhz > this.aCounts.mhzDefault) {
                    /*
                     * We could scale the current cycle count by the current effective speed (this.aCounts.mhz); eg:
                     *
                     *      nCycles = Math.round(nCycles / (this.aCounts.mhz / this.aCounts.mhzDefault));
                     *
                     * but that speed will fluctuate somewhat: large fluctuations at first, but increasingly smaller
                     * fluctuations after each burst of instructions that runCPU() executes.
                     *
                     * Alternatively, we can scale the cycle count by the multiplier, which is good in that the
                     * multiplier doesn't vary once the user changes it, but a potential downside is that the
                     * multiplier might be set too high, resulting in a target speed that's higher than the effective
                     * speed is able to reach.
                     *
                     * Also, if multipliers were always limited to a power-of-two, then this could be calculated
                     * with a simple shift.  However, only the "setSpeed" UI binding limits it that way; the Debugger
                     * interface allows any value, as does the CPU "multiplier" parmsCPU property (from the machine's
                     * XML file).
                     */
                    nCycles = Math.round(nCycles / this.aCounts.nCyclesMultiplier);
                }
                return nCycles;
            };
            
            /**
             * getCyclesPerSecond()
             *
             * This returns the CPU's "base" speed (ie, the original cycles per second defined for the machine)
             *
             * @this {CPU}
             * @return {number}
             */
            CPU.prototype.getCyclesPerSecond = function()
            {
                return this.aCounts.nCyclesPerSecond;
            };
            
            /**
             * resetCycles()
             *
             * Resets speed and cycle information as part of any reset() or restore(); this typically occurs during powerUp().
             * It's important that this be called BEFORE the actual restore() call, because restore() may want to call setSpeed(),
             * which in turn assumes that all the cycle counts have been initialized to sensible values.
             *
             * @this {CPU}
             */
            CPU.prototype.resetCycles = function()
            {
                this.aCounts.mhz = 0;
                this.nTotalCycles = this.nRunCycles = this.nBurstCycles = this.nStepCycles = 0;
                this.resetChecksum();
                this.setSpeed(1);
            };
            
            /**
             * getSpeed()
             *
             * @this {CPU}
             * @return {number} the current speed multiplier
             */
            CPU.prototype.getSpeed = function()
            {
                return this.aCounts.nCyclesMultiplier;
            };
            
            /**
             * getSpeedCurrent()
             *
             * @this {CPU}
             * @return {string} the current speed, in mhz, as a string formatted to two decimal places
             */
            CPU.prototype.getSpeedCurrent = function()
            {
                /*
                 * TODO: Has toFixed() been "fixed" in all browsers (eg, IE) to return a rounded value now?
                 */
                return ((this.aFlags.fRunning && this.aCounts.mhz)? (this.aCounts.mhz.toFixed(2) + "Mhz") : "Stopped");
            };
            
            /**
             * getSpeedTarget()
             *
             * @this {CPU}
             * @return {string} the target speed, in mhz, as a string formatted to two decimal places
             */
            CPU.prototype.getSpeedTarget = function()
            {
                /*
                 * TODO: Has toFixed() been "fixed" in all browsers (eg, IE) to return a rounded value now?
                 */
                return this.aCounts.mhzTarget.toFixed(2) + "Mhz";
            };
            
            /**
             * setSpeed(nMultiplier, fOnClick)
             *
             * NOTE: This used to return the target speed, in mhz, but no callers appear to care at this point.
             *
             * @this {CPU}
             * @param {number} [nMultiplier] is the new proposed multiplier (reverts to 1 if the target was too high)
             * @param {boolean} [fOnClick] is true if called from a click handler that might have stolen focus
             * @desc Whenever the speed is changed, the running cycle count and corresponding start time must be reset,
             * so that the next effective speed calculation obtains sensible results.  In fact, when runCPU() initially calls
             * setSpeed() with no parameters, that's all this function does (it doesn't change the current speed setting).
             */
            CPU.prototype.setSpeed = function(nMultiplier, fOnClick)
            {
                if (nMultiplier !== undefined) {
                    /*
                     * If we couldn't reach at least 80% (0.8) of the current target speed,
                     * then revert the multiplier back to one.
                     */
                    if (this.aCounts.mhz / this.aCounts.mhzTarget < 0.8) nMultiplier = 1;
                    this.aCounts.nCyclesMultiplier = nMultiplier;
                    var mhz = this.aCounts.mhzDefault * this.aCounts.nCyclesMultiplier;
                    if (this.aCounts.mhzTarget != mhz) {
                        this.aCounts.mhzTarget = mhz;
                        var sSpeed = this.getSpeedTarget();
                        var controlSpeed = this.bindings["setSpeed"];
                        if (controlSpeed) controlSpeed.textContent = sSpeed;
                        this.println("target speed: " + sSpeed);
                    }
                    if (fOnClick) this.setFocus();
                }
                this.addCycles(this.nRunCycles);
                this.nRunCycles = 0;
                this.aCounts.msStartRun = usr.getTime();
                this.aCounts.msEndThisRun = 0;
                this.calcCycles();
            };
            
            /**
             * calcSpeed(nCycles, msElapsed)
             *
             * @this {CPU}
             * @param {number} nCycles
             * @param {number} msElapsed
             */
            CPU.prototype.calcSpeed = function(nCycles, msElapsed)
            {
                if (msElapsed) {
                    this.aCounts.mhz = Math.round(nCycles / (msElapsed * 10)) / 100;
                    if (msElapsed >= 86400000) {
                        this.nTotalCycles = 0;
                        if (this.chipset) this.chipset.updateAllTimers(true);
                        this.setSpeed();        // reset all counters once per day so that we never have to worry about overflow
                    }
                }
            };
            
            /**
             * calcStartTime()
             *
             * @this {CPU}
             */
            CPU.prototype.calcStartTime = function()
            {
                if (this.aCounts.nCyclesRecalc >= this.aCounts.nCyclesPerSecond) {
                    this.calcCycles(true);
                }
                this.aCounts.nCyclesThisRun = 0;
                this.aCounts.msStartThisRun = usr.getTime();
            
                /*
                 * Try to detect situations where the browser may have throttled us, such as when the user switches
                 * to a different tab; in those situations, Chrome and Safari may restrict setTimeout() callbacks
                 * to roughly one per second.
                 *
                 * Another scenario: the user resizes the browser window.  setTimeout() callbacks are not throttled,
                 * but there can still be enough of a lag between the callbacks that CPU speed will be noticeably
                 * erratic if we don't compensate for it here.
                 *
                 * We can detect throttling/lagging by verifying that msEndThisRun (which was set at the end of the
                 * previous run and includes any requested sleep time) is comparable to the current msStartThisRun;
                 * if the delta is significant, we compensate by bumping msStartRun forward by that delta.
                 *
                 * This shouldn't be triggered when the Debugger halts the CPU, because setSpeed() -- which is called
                 * whenever the CPU starts running again -- zeroes msEndThisRun.
                 *
                 * This also won't do anything about other internal delays; for example, Debugger message() calls.
                 * By the time the message() function has called yieldCPU(), the cost of the message has already been
                 * incurred, so it will be end up being charged against the instruction(s) that triggered it.
                 *
                 * TODO: Consider calling yieldCPU() sooner from message(), so that it can arrange for the msEndThisRun
                 * "snapshot" to occur sooner; it's unclear, however, whether that will really improve the CPU's ability
                 * to hit its target speed, since you would expect any instruction that displays a message to be an
                 * EXTREMELY slow instruction.
                 */
                if (this.aCounts.msEndThisRun) {
                    var msDelta = this.aCounts.msStartThisRun - this.aCounts.msEndThisRun;
                    if (msDelta > this.aCounts.msPerYield) {
                        if (MAXDEBUG) this.println("large time delay: " + msDelta + "ms");
                        this.aCounts.msStartRun += msDelta;
                        /*
                         * Bumping msStartRun forward should NEVER cause it to exceed msStartThisRun; however, just
                         * in case, I make absolutely sure it cannot happen, since doing so could result in negative
                         * speed calculations.
                         */
                        this.assert(this.aCounts.msStartRun <= this.aCounts.msStartThisRun);
                        if (this.aCounts.msStartRun > this.aCounts.msStartThisRun) {
                            this.aCounts.msStartRun = this.aCounts.msStartThisRun;
                        }
                    }
                }
            };
            
            /**
             * calcRemainingTime()
             *
             * @this {CPU}
             * @return {number}
             */
            CPU.prototype.calcRemainingTime = function()
            {
                this.aCounts.msEndThisRun = usr.getTime();
            
                var msYield = this.aCounts.msPerYield;
                if (this.aCounts.nCyclesThisRun) {
                    /*
                     * Normally, we would assume we executed a full quota of work over msPerYield, but since the CPU
                     * now has the option of calling yieldCPU(), that might not be true.  If nCyclesThisRun is correct, then
                     * the ratio of nCyclesThisRun/nCyclesPerYield should represent the percentage of work we performed,
                     * and so applying that percentage to msPerYield should give us a better estimate of work vs. time.
                     */
                    msYield = Math.round(msYield * this.aCounts.nCyclesThisRun / this.aCounts.nCyclesPerYield);
                }
            
                var msElapsedThisRun = this.aCounts.msEndThisRun - this.aCounts.msStartThisRun;
                var msRemainsThisRun = msYield - msElapsedThisRun;
            
                /*
                 * We could pass only "this run" results to calcSpeed():
                 *
                 *      nCycles = this.aCounts.nCyclesThisRun;
                 *      msElapsed = msElapsedThisRun;
                 *
                 * but it seems preferable to use longer time periods and hopefully get a more accurate speed.
                 *
                 * Also, if msRemainsThisRun >= 0 && this.aCounts.nCyclesMultiplier == 1, we could pass these results instead:
                 *
                 *      nCycles = this.aCounts.nCyclesThisRun;
                 *      msElapsed = this.aCounts.msPerYield;
                 *
                 * to insure that we display a smooth, constant N Mhz.  But for now, I prefer seeing any fluctuations.
                 */
                var nCycles = this.nRunCycles;
                var msElapsed = this.aCounts.msEndThisRun - this.aCounts.msStartRun;
            
                if (MAXDEBUG && msRemainsThisRun < 0 && this.aCounts.nCyclesMultiplier > 1) {
                    this.println("warning: updates @" + msElapsedThisRun + "ms (prefer " + Math.round(msYield) + "ms)");
                }
            
                this.calcSpeed(nCycles, msElapsed);
            
                if (msRemainsThisRun < 0 || this.aCounts.mhz < this.aCounts.mhzTarget) {
                    /*
                     * If the last burst took MORE time than we allotted (ie, it's taking more than 1 second to simulate
                     * nCyclesPerSecond), all we can do is yield for as little time as possible (ie, 0ms) and hope that the
                     * simulation is at least usable.
                     */
                    msRemainsThisRun = 0;
                }
            
                /*
                 * Last but not least, update nCyclesRecalc, so that when runCPU() starts up again and calls calcStartTime(),
                 * it'll be ready to decide if calcCycles() should be called again.
                 */
                this.aCounts.nCyclesRecalc += this.aCounts.nCyclesThisRun;
            
                if (DEBUG && this.messageEnabled(Messages.LOG) && msRemainsThisRun) {
                    this.log("calcRemainingTime: " + msRemainsThisRun + "ms to sleep after " + this.aCounts.msEndThisRun + "ms");
                }
            
                this.aCounts.msEndThisRun += msRemainsThisRun;
                return msRemainsThisRun;
            };
            
            /**
             * runCPU(fOnClick)
             *
             * @this {CPU}
             * @param {boolean} [fOnClick] is true if called from a click handler that might have stolen focus
             */
            CPU.prototype.runCPU = function(fOnClick)
            {
                if (!this.setBusy(true)) {
                    this.updateCPU();
                    if (this.cmp) this.cmp.stop(usr.getTime(), this.getCycles());
                    return;
                }
            
                this.startCPU(fOnClick);
            
                /*
                 *  calcStartTime() initializes the cycle counter and timestamp for this runCPU() invocation, and optionally
                 *  recalculates the the maximum number of cycles for each burst if the nCyclesRecalc threshold has been reached.
                 */
                this.calcStartTime();
                try {
                    do {
                        var nCyclesPerBurst = (this.aFlags.fChecksum? 1 : this.aCounts.nCyclesPerBurst);
            
                        if (this.chipset) {
                            this.chipset.updateAllTimers();
                            nCyclesPerBurst = this.chipset.getTimerCycleLimit(0, nCyclesPerBurst);
                            nCyclesPerBurst = this.chipset.getRTCCycleLimit(nCyclesPerBurst);
                        }
            
                        /*
                         * nCyclesPerBurst is how many cycles we WANT to run on each iteration of stepCPU(), but it may run
                         * significantly less (or slightly more, since we can't execute partial instructions).
                         */
                        this.stepCPU(nCyclesPerBurst);
            
                        /*
                         * nBurstCycles, less any remaining nStepCycles, is how many cycles stepCPU() ACTUALLY ran (nCycles).
                         * We add that to nCyclesThisRun, as well as nRunCycles, which is the cycle count since the CPU first
                         * started running.
                         */
                        var nCycles = this.nBurstCycles - this.nStepCycles;
                        this.nRunCycles += nCycles;
                        this.aCounts.nCyclesThisRun += nCycles;
                        this.addCycles(0, true);
                        this.updateChecksum(nCycles);
            
                        this.aCounts.nCyclesNextVideoUpdate -= nCycles;
                        if (this.aCounts.nCyclesNextVideoUpdate <= 0) {
                            this.aCounts.nCyclesNextVideoUpdate += this.aCounts.nCyclesPerVideoUpdate;
                            this.updateVideo();
                        }
            
                        this.aCounts.nCyclesNextStatusUpdate -= nCycles;
                        if (this.aCounts.nCyclesNextStatusUpdate <= 0) {
                            this.aCounts.nCyclesNextStatusUpdate += this.aCounts.nCyclesPerStatusUpdate;
                            this.updateStatus();
                        }
            
                        this.aCounts.nCyclesNextYield -= nCycles;
                        if (this.aCounts.nCyclesNextYield <= 0) {
                            this.aCounts.nCyclesNextYield += this.aCounts.nCyclesPerYield;
                            break;
                        }
                    } while (this.aFlags.fRunning);
                }
                catch (e) {
                    this.stopCPU();
                    this.updateCPU();
                    if (this.cmp) this.cmp.stop(usr.getTime(), this.getCycles());
                    this.setBusy(false);
                    this.setError(e.stack || e.message);
                    return;
                }
                setTimeout(this.onRunTimeout, this.calcRemainingTime());
            };
            
            /**
             * startCPU(fSetFocus)
             *
             * WARNING: Other components must use runCPU() to get the CPU running; this is a runCPU() helper function only.
             *
             * @param {boolean} [fSetFocus]
             */
            CPU.prototype.startCPU = function(fSetFocus)
            {
                if (!this.aFlags.fRunning) {
                    /*
                     *  setSpeed() without a speed parameter leaves the selected speed in place, but also resets the
                     *  cycle counter and timestamp for the current series of runCPU() calls, calculates the maximum number
                     *  of cycles for each burst based on the last known effective CPU speed, and resets the nCyclesRecalc
                     *  threshold counter.
                     */
                    this.setSpeed();
                    if (this.cmp) this.cmp.start(this.aCounts.msStartRun, this.getCycles());
                    this.aFlags.fRunning = true;
                    this.aFlags.fStarting = true;
                    if (this.chipset) this.chipset.setSpeaker();
                    var controlRun = this.bindings["run"];
                    if (controlRun) controlRun.textContent = "Halt";
                    this.updateStatus(true);
                    if (fSetFocus) this.setFocus();
                }
            };
            
            /**
             * stepCPU(nMinCycles)
             *
             * This will be implemented by the X86CPU component.
             *
             * @this {CPU}
             * @param {number} nMinCycles (0 implies a single-step, and therefore breakpoints should be ignored)
             * @return {number} of cycles executed; 0 indicates that the last instruction was not executed
             */
            CPU.prototype.stepCPU = function(nMinCycles)
            {
                return 0;
            };
            
            /**
             * stopCPU(fComplete)
             *
             * For use by any component that wants to stop the CPU.
             *
             * This similar to yieldCPU(), but it doesn't need to zero nCyclesNextYield to break out of runCPU();
             * it simply needs to clear fRunning (well, "simply" may be oversimplifying a bit....)
             *
             * @this {CPU}
             * @param {boolean} [fComplete]
             */
            CPU.prototype.stopCPU = function(fComplete)
            {
                this.isBusy(true);
                this.nBurstCycles -= this.nStepCycles;
                this.nStepCycles = 0;
                this.addCycles(this.nRunCycles);
                this.nRunCycles = 0;
                if (this.aFlags.fRunning) {
                    this.aFlags.fRunning = false;
                    if (this.chipset) this.chipset.setSpeaker();
                    var controlRun = this.bindings["run"];
                    if (controlRun) controlRun.textContent = "Run";
                }
                this.aFlags.fComplete = fComplete;
            };
            
            /**
             * updateCPU()
             *
             * This used to be performed at the end of every stepCPU(), but runCPU() -- which relies upon
             * stepCPU() -- needed to have more control over when these updates are performed.  However, for
             * other callers of stepCPU(), such as the Debugger, the combination of stepCPU() + updateCPU()
             * provides the old behavior.
             *
             * @this {CPU}
             */
            CPU.prototype.updateCPU = function()
            {
                this.updateVideo();
                this.updateStatus();
            };
            
            /**
             * yieldCPU()
             *
             * Similar to stopCPU() with regard to how it resets various cycle countdown values, but the CPU
             * remains in a "running" state.
             *
             * @this {CPU}
             */
            CPU.prototype.yieldCPU = function()
            {
                this.aCounts.nCyclesNextYield = 0;  // this will break us out of runCPU(), once we break out of stepCPU()
                this.nBurstCycles -= this.nStepCycles;
                this.nStepCycles = 0;               // this will break us out of stepCPU()
                if (DEBUG) this.nSnapCycles = this.nBurstCycles;
                /*
                 * The Debugger calls yieldCPU() after every message() to ensure browser responsiveness, but it looks
                 * odd for those messages to show CPU state changes but for the CPU's own status display to not (ditto
                 * for the Video display), so I've added this call to try to keep things looking synchronized.
                 */
                this.updateCPU();
            };
            
            if (typeof module !== 'undefined') module.exports = CPU;
            
          • debugger.js
            /**
             * @fileoverview Implements the PCjs Debugger component.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Jun-21
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (DEBUGGER) {
                if (typeof module !== 'undefined') {
                    var str         = require("../../shared/lib/strlib");
                    var usr         = require("../../shared/lib/usrlib");
                    var web         = require("../../shared/lib/weblib");
                    var Component   = require("../../shared/lib/component");
                    var Interrupts  = require("./interrupts");
                    var Messages    = require("./messages");
                    var Bus         = require("./bus");
                    var Memory      = require("./memory");
                    var Keyboard    = require("./keyboard");
                    var State       = require("./state");
                    var CPU         = require("./cpu");
                    var X86         = require("./x86");
                    var X86Seg      = require("./x86seg");
                }
            }
            
            /**
             * Debugger Address Object
             *
             * When off is null, the entire address is considered invalid.
             *
             * When sel is null, addr must be set to a valid linear address.
             *
             * When addr is null (or reset to null), it will be recomputed from sel:off.
             *
             * NOTE: I originally tried to define DbgAddr as a record typedef, which allowed me to reference the type
             * as {DbgAddr} instead of {{DbgAddr}}, but my IDE (WebStorm) did not recognize all instances of {DbgAddr}.
             * Using this @class definition is a bit cleaner, and it makes both WebStorm and the Closure Compiler happier,
             * at the expense of making all references {{DbgAddr}}.  Defining a typedef based on this class doesn't help.
             *
             * @class DbgAddr
             * @property {number|null|undefined} off (offset, if any)
             * @property {number|null|undefined} sel (selector, if any)
             * @property {number|null|undefined} addr (linear address, if any)
             * @property {boolean|undefined} fData32 (true if 32-bit operand size in effect)
             * @property {boolean|undefined} fAddr32 (true if 32-bit address size in effect)
             * @property {number|undefined} cOverrides (non-zero if any overrides were processed with this address)
             * @property {boolean|undefined} fComplete (true if a complete instruction was processed with this address)
             * @property {boolean|undefined} fTempBreak (true if this is a temporary breakpoint address)
             */
            
            /**
             * Debugger(parmsDbg)
             *
             * @constructor
             * @extends Component
             * @param {Object} parmsDbg
             *
             * The Debugger component supports the following optional (parmsDbg) properties:
             *
             *      commands: string containing zero or more commands, separated by ';'
             *
             *      messages: string containing zero or more message categories to enable;
             *      multiple categories must be separated by '|' or ';'.  Parsed by messageInit().
             *
             * The Debugger component is an optional component that implements a variety of user
             * commands for controlling the CPU, dumping and editing memory, etc.
             */
            function Debugger(parmsDbg)
            {
                if (DEBUGGER) {
            
                    Component.call(this, "Debugger", parmsDbg, Debugger);
            
                    /*
                     * These keep track of instruction activity, but only when tracing or when Debugger checks
                     * have been enabled (eg, one or more breakpoints have been set).
                     *
                     * They are zeroed by the reset() notification handler.  cInstructions is advanced by
                     * stepCPU() and checkInstruction() calls.  nCycles is updated by every stepCPU() or stop()
                     * call and simply represents the number of cycles performed by the last run of instructions.
                     */
                    this.nCycles = -1;
                    this.cInstructions = -1;
            
                    /*
                     * Default number of hex chars in a register and a linear address (ie, for real-mode);
                     * updated by initBus().
                     */
                    this.cchReg = 4;
                    this.maskReg = 0xffff;
                    this.cchAddr = 5;
                    this.maskAddr = 0xfffff;
            
                    /*
                     * Most commands that require an address call parseAddr(), which defaults to dbgAddrNextCode
                     * or dbgAddrNextData when no address has been given.  doDump() and doUnassemble(), in turn,
                     * update dbgAddrNextData and dbgAddrNextCode, respectively, when they're done.
                     *
                     * All dbgAddr variables contain properties off, sel, and addr, where sel:off represents the
                     * segmented address and addr is the corresponding linear address (if known).  For certain
                     * segmented addresses (eg, breakpoint addresses), we pre-compute the linear address and save
                     * that in addr, so that the breakpoint will still operate as intended even if the mode changes
                     * later (eg, from real-mode to protected-mode).
                     *
                     * Finally, for TEMPORARY breakpoint addresses, we set fTempBreak to true, so that they can be
                     * automatically cleared when they're hit.
                     */
                    this.dbgAddrNextCode = this.newAddr();
                    this.dbgAddrNextData = this.newAddr();
            
                    /*
                     * This maintains command history.  New commands are inserted at index 0 of the array.
                     * When Enter is pressed on an empty input buffer, we default to the command at aPrevCmds[0].
                     */
                    this.iPrevCmd = -1;
                    this.aPrevCmds = [];
            
                    /*
                     * fAssemble is true when "assemble mode" is active, false when not.
                     */
                    this.fAssemble = false;
                    this.dbgAddrAssemble = this.newAddr();
            
                    /*
                     * aSymbolTable is an array of 4-element arrays, one per ROM or other chunk of address space.
                     * Each 4-element arrays contains:
                     *
                     *      [0]: addr
                     *      [1]: size
                     *      [2]: aSymbols
                     *      [3]: aOffsetPairs
                     *
                     * See addSymbols() for more details, since that's how callers add sets of symbols to the table.
                     */
                    this.aSymbolTable = [];
            
                    /*
                     * clearBreakpoints() initializes the breakpoints lists: aBreakExec is a list of addresses
                     * to halt on whenever attempting to execute an instruction at the corresponding address,
                     * and aBreakRead and aBreakWrite are lists of addresses to halt on whenever a read or write,
                     * respectively, occurs at the corresponding address.
                     *
                     * NOTE: Curiously, after upgrading the Google Closure Compiler from v20141215 to v20150609,
                     * the resulting compiled code would crash in clearBreakpoints(), because the (renamed) aBreakRead
                     * property was already defined.  To eliminate whatever was confusing the Closure Compiler, I've
                     * explicitly initialized all the properties that clearBreakpoints() (re)initializes.
                     */
                    this.aBreakExec = this.aBreakRead = this.aBreakWrite = [];
                    this.clearBreakpoints();
            
                    /*
                     * Execution history is allocated by historyInit() whenever checksEnabled() conditions change.
                     * Execution history is updated whenever the CPU calls checkInstruction(), which will happen
                     * only when checksEnabled() returns true (eg, whenever one or more breakpoints have been set).
                     * This ensures that, by default, the CPU runs as fast as possible.
                     */
                    this.historyInit();
            
                    /*
                     * Initialize Debugger message support
                     */
                    this.messageInit(parmsDbg['messages']);
            
                    /*
                     * The instruction trace buffer is a lightweight logging mechanism with minimal impact
                     * on the browser (unlike printing to either console.log or an HTML control, which can
                     * make the browser unusable if printing is too frequent).  The Debugger's info command
                     * ("n dump [#]") dumps this buffer.  Note that dumping too much at once can also bog
                     * things down, but by that point, you've presumably already captured the info you need
                     * and are willing to wait.
                     */
                    if (DEBUG) this.traceInit();
            
                    this.sInitCommands = parmsDbg['commands'];
            
                    /*
                     * Make it easier to access Debugger commands from an external REPL (eg, the WebStorm
                     * "live" console window); eg:
                     *
                     *      $('r')
                     *      $('dw 0:0')
                     *      $('h')
                     *      ...
                     */
                    var dbg = this;
                    if (window) {
                        if (window['$'] === undefined) {
                            window['$'] = function(s) { return dbg.doCommand(s); };
                        }
                    } else {
                        if (global['$'] === undefined) {
                            global['$'] = function(s) { return dbg.doCommand(s); };
                        }
                    }
            
                }   // endif DEBUGGER
            }
            
            if (DEBUGGER) {
            
                Component.subclass(Debugger);
            
                /*
                 * Information regarding interrupts of interest (used by messageInt() and others)
                 */
                Debugger.INT_MESSAGES = {
                    0x10:       Messages.VIDEO,
                    0x13:       Messages.FDC,
                    0x15:       Messages.CHIPSET,
                    0x16:       Messages.KEYBOARD,
                 // 0x1a:       Messages.RTC,       // ChipSet contains its own custom messageInt() handler for the RTC
                    0x1c:       Messages.TIMER,
                    0x21:       Messages.DOS,
                    0x33:       Messages.MOUSE
                };
            
                Debugger.COMMANDS = {
                    '?':     "help/print",
                    'a [#]': "assemble",
                    'b [#]': "breakpoint",
                    'c':     "clear output",
                    'd [#]': "dump memory",
                    'e [#]': "edit memory",
                    'f':     "frequencies",
                    'g [#]': "go [to #]",
                    'h [#]': "halt/history",
                    'i [#]': "input port #",
                    'k':     "stack trace",
                    'l':     "load sector(s)",
                    'm':     "messages",
                    'o [#]': "output port #",
                    'p':     "step over",
                    'r':     "dump/edit registers",
                    't [#]': "step instruction(s)",
                    'u [#]': "unassemble",
                    'x':     "execution options",
                    'reset': "reset computer",
                    'ver':   "display version"
                };
            
                /*
                 * Address types for parseAddr(), to help choose between dbgAddrNextCode and dbgAddrNextData
                 */
                Debugger.ADDR_CODE = 1;
                Debugger.ADDR_DATA = 2;
            
                /*
                 * Instruction ordinals
                 */
                Debugger.INS = {
                    NONE:   0,   AAA:    1,   AAD:    2,   AAM:    3,   AAS:    4,   ADC:    5,   ADD:    6,   AND:    7,
                    ARPL:   8,   AS:     9,   BOUND:  10,  BSF:    11,  BSR:    12,  BT:     13,  BTC:    14,  BTR:    15,
                    BTS:    16,  CALL:   17,  CBW:    18,  CLC:    19,  CLD:    20,  CLI:    21,  CLTS:   22,  CMC:    23,
                    CMP:    24,  CMPSB:  25,  CMPSW:  26,  CS:     27,  CWD:    28,  DAA:    29,  DAS:    30,  DEC:    31,
                    DIV:    32,  DS:     33,  ENTER:  34,  ES:     35,  ESC:    36,  FADD:   37,  FBLD:   38,  FBSTP:  39,
                    FCOM:   40,  FCOMP:  41,  FDIV:   42,  FDIVR:  43,  FIADD:  44,  FICOM:  45,  FICOMP: 46,  FIDIV:  47,
                    FIDIVR: 48,  FILD:   49,  FIMUL:  50,  FIST:   51,  FISTP:  52,  FISUB:  53,  FISUBR: 54,  FLD:    55,
                    FLDCW:  56,  FLDENV: 57,  FMUL:   58,  FNSAVE: 59,  FNSTCW: 60,  FNSTENV:61,  FNSTSW: 62,  FRSTOR: 63,
                    FS:     64,  FST:    65,  FSTP:   66,  FSUB:   67,  FSUBR:  68,  GS:     69,  HLT:    70,  IDIV:   71,
                    IMUL:   72,  IN:     73,  INC:    74,  INS:    75,  INT:    76,  INT3:   77,  INTO:   78,  IRET:   79,
                    JBE:    80,  JC:     81,  JCXZ:   82,  JG:     83,  JGE:    84,  JL:     85,  JLE:    86,  JMP:    87,
                    JA:     88,  JNC:    89,  JNO:    90,  JNP:    91,  JNS:    92,  JNZ:    93,  JO:     94,  JP:     95,
                    JS:     96,  JZ:     97,  LAHF:   98,  LAR:    99,  LDS:    100, LEA:    101, LEAVE:  102, LES:    103,
                    LFS:    104, LGDT:   105, LGS:    106, LIDT:   107, LLDT:   108, LMSW:   109, LOADALL:110, LOCK:   111,
                    LODSB:  112, LODSW:  113, LOOP:   114, LOOPNZ: 115, LOOPZ:  116, LSL:    117, LSS:    118, LTR:    119,
                    MOV:    120, MOVSB:  121, MOVSW:  122, MOVSX:  123, MOVZX:  124, MUL:    125, NEG:    126, NOP:    127,
                    NOT:    128, OR:     129, OS:     130, OUT:    131, OUTS:   132, POP:    133, POPA:   134, POPF:   135,
                    PUSH:   136, PUSHA:  137, PUSHF:  138, RCL:    139, RCR:    140, REPNZ:  141, REPZ:   142, RET:    143,
                    RETF:   144, ROL:    145, ROR:    146, SAHF:   147, SALC:   148, SAR:    149, SBB:    150, SCASB:  151,
                    SCASW:  152, SETBE:  153, SETC:   154, SETG:   155, SETGE:  156, SETL:   157, SETLE:  158, SETNBE: 159,
                    SETNC:  160, SETNO:  161, SETNP:  162, SETNS:  163, SETNZ:  164, SETO:   165, SETP:   166, SETS:   167,
                    SETZ:   168, SGDT:   169, SHL:    170, SHLD:   171, SHR:    172, SHRD:   173, SIDT:   174, SLDT:   175,
                    SMSW:   176, SS:     177, STC:    178, STD:    179, STI:    180, STOSB:  181, STOSW:  182, STR:    183,
                    SUB:    184, TEST:   185, VERR:   186, VERW:   187, WAIT:   188, XCHG:   189, XLAT:   190, XOR:    191,
                    GRP1B:  192, GRP1W:  193, GRP1SW: 194, GRP2B:  195, GRP2W:  196, GRP2B1: 197, GRP2W1: 198, GRP2BC: 199,
                    GRP2WC: 200, GRP3B:  201, GRP3W:  202, GRP4B:  203, GRP4W:  204, OP0F:   205, GRP6:   206, GRP7:   207,
                    GRP8:   208
                };
            
                /*
                 * Instruction names (mnemonics), indexed by instruction ordinal (above)
                 */
                Debugger.INS_NAMES = [
                    "INVALID","AAA",    "AAD",    "AAM",    "AAS",    "ADC",    "ADD",    "AND",
                    "ARPL",   "AS:",    "BOUND",  "BSF",    "BSR",    "BT",     "BTC",    "BTR",
                    "BTS",    "CALL",   "CBW",    "CLC",    "CLD",    "CLI",    "CLTS",   "CMC",
                    "CMP",    "CMPSB",  "CMPSW",  "CS:",    "CWD",    "DAA",    "DAS",    "DEC",
                    "DIV",    "DS:",    "ENTER",  "ES:",    "ESC",    "FADD",   "FBLD",   "FBSTP",
                    "FCOM",   "FCOMP",  "FDIV",   "FDIVR",  "FIADD",  "FICOM",  "FICOMP", "FIDIV",
                    "FIDIVR", "FILD",   "FIMUL",  "FIST",   "FISTP",  "FISUB",  "FISUBR", "FLD",
                    "FLDCW",  "FLDENV", "FMUL",   "FNSAVE", "FNSTCW", "FNSTENV","FNSTSW", "FRSTOR",
                    "FS:",    "FST",    "FSTP",   "FSUB",   "FSUBR",  "GS:",    "HLT",    "IDIV",
                    "IMUL",   "IN",     "INC",    "INS",    "INT",    "INT3",   "INTO",   "IRET",
                    "JBE",    "JC",     "JCXZ",   "JG",     "JGE",    "JL",     "JLE",    "JMP",
                    "JA",     "JNC",    "JNO",    "JNP",    "JNS",    "JNZ",    "JO",     "JP",
                    "JS",     "JZ",     "LAHF",   "LAR",    "LDS",    "LEA",    "LEAVE",  "LES",
                    "LFS",    "LGDT",   "LGS",    "LIDT",   "LLDT",   "LMSW",   "LOADALL","LOCK",
                    "LODSB",  "LODSW",  "LOOP",   "LOOPNZ", "LOOPZ",  "LSL",    "LSS",    "LTR",
                    "MOV",    "MOVSB",  "MOVSW",  "MOVSX",  "MOVZX",  "MUL",    "NEG",    "NOP",
                    "NOT",    "OR",     "OS:",    "OUT",    "OUTS",   "POP",    "POPA",   "POPF",
                    "PUSH",   "PUSHA",  "PUSHF",  "RCL",    "RCR",    "REPNZ",  "REPZ",   "RET",
                    "RETF",   "ROL",    "ROR",    "SAHF",   "SALC",   "SAR",    "SBB",    "SCASB",
                    "SCASW",  "SETBE",  "SETC",   "SETG",   "SETGE",  "SETL",   "SETLE",  "SETNBE",
                    "SETNC",  "SETNO",  "SETNP",  "SETNS",  "SETNZ",  "SETO",   "SETP",   "SETS",
                    "SETZ",   "SGDT",   "SHL",    "SHLD",   "SHR",    "SHRD",   "SIDT",   "SLDT",
                    "SMSW",   "SS:",    "STC",    "STD",    "STI",    "STOSB",  "STOSW",  "STR",
                    "SUB",    "TEST",   "VERR",   "VERW",   "WAIT",   "XCHG",   "XLAT",   "XOR"
                ];
            
                Debugger.CPU_8086  = 0;
                Debugger.CPU_80186 = 1;
                Debugger.CPU_80286 = 2;
                Debugger.CPU_80386 = 3;
                Debugger.CPUS = [8086, 80186, 80286, 80386];
            
                /*
                 * ModRM masks and definitions
                 */
                Debugger.REG_AL  = 0x00;             // bits 0-2 are standard Reg encodings
                Debugger.REG_CL  = 0x01;
                Debugger.REG_DL  = 0x02;
                Debugger.REG_BL  = 0x03;
                Debugger.REG_AH  = 0x04;
                Debugger.REG_CH  = 0x05;
                Debugger.REG_DH  = 0x06;
                Debugger.REG_BH  = 0x07;
                Debugger.REG_AX  = 0x08;
                Debugger.REG_CX  = 0x09;
                Debugger.REG_DX  = 0x0A;
                Debugger.REG_BX  = 0x0B;
                Debugger.REG_SP  = 0x0C;
                Debugger.REG_BP  = 0x0D;
                Debugger.REG_SI  = 0x0E;
                Debugger.REG_DI  = 0x0F;
                Debugger.REG_SEG = 0x10;
                Debugger.REG_IP  = 0x16;
                Debugger.REG_PS  = 0x17;
                Debugger.REG_EAX = 0x18;
                Debugger.REG_ECX = 0x19;
                Debugger.REG_EDX = 0x1A;
                Debugger.REG_EBX = 0x1B;
                Debugger.REG_ESP = 0x1C;
                Debugger.REG_EBP = 0x1D;
                Debugger.REG_ESI = 0x1E;
                Debugger.REG_EDI = 0x1F;
                Debugger.REG_CR0 = 0x20;
                Debugger.REG_CR1 = 0x21;
                Debugger.REG_CR2 = 0x22;
                Debugger.REG_CR3 = 0x23;
            
                Debugger.REGS = [
                    "AL",  "CL",  "DL",  "BL",  "AH",  "CH",  "DH",  "BH",
                    "AX",  "CX",  "DX",  "BX",  "SP",  "BP",  "SI",  "DI",
                    "ES",  "CS",  "SS",  "DS",  "FS",  "GS",  "IP",  "PS",
                    "EAX", "ECX", "EDX", "EBX", "ESP", "EBP", "ESI", "EDI",
                    "CR0", "CR1", "CR2", "CR3"
                ];
            
                Debugger.REG_ES         = 0x00;     // bits 0-1 are standard SegReg encodings
                Debugger.REG_CS         = 0x01;
                Debugger.REG_SS         = 0x02;
                Debugger.REG_DS         = 0x03;
                Debugger.REG_FS         = 0x04;
                Debugger.REG_GS         = 0x05;
                Debugger.REG_UNKNOWN    = 0x00;
            
                Debugger.MOD_NODISP     = 0x00;     // use RM below, no displacement
                Debugger.MOD_DISP8      = 0x01;     // use RM below + 8-bit displacement
                Debugger.MOD_DISP16     = 0x02;     // use RM below + 16-bit displacement
                Debugger.MOD_REGISTER   = 0x03;     // use REG above
            
                Debugger.RM_BXSI        = 0x00;
                Debugger.RM_BXDI        = 0x01;
                Debugger.RM_BPSI        = 0x02;
                Debugger.RM_BPDI        = 0x03;
                Debugger.RM_SI          = 0x04;
                Debugger.RM_DI          = 0x05;
                Debugger.RM_BP          = 0x06;
                Debugger.RM_IMMOFF      = Debugger.RM_BP;       // only if MOD_NODISP
                Debugger.RM_BX          = 0x07;
            
                Debugger.RMS = [
                    "BX+SI", "BX+DI", "BP+SI", "BP+DI", "SI",    "DI",    "BP",    "BX",
                    "EAX",   "ECX",   "EDX",   "EBX",   "ESP",   "EBP",   "ESI",   "EDI"
                ];
            
                /*
                 * Operand type descriptor masks and definitions
                 *
                 * Note that the letters in () in the comments refer to Intel's
                 * nomenclature used in Appendix A of the 80386 Programmers Reference Manual.
                 */
                Debugger.TYPE_SIZE      = 0x000F;   // size field
                Debugger.TYPE_MODE      = 0x00F0;   // mode field
                Debugger.TYPE_IREG      = 0x0F00;   // implied register field
                Debugger.TYPE_OTHER     = 0xF000;   // "other" field
            
                /*
                 * TYPE_SIZE values.  Some of the values (eg, TYPE_WORDIB and TYPE_WORDIW)
                 * imply the presence of a third operand, for those weird cases....
                 */
                Debugger.TYPE_NONE      = 0x0000;   //     (all other TYPE fields ignored)
                Debugger.TYPE_BYTE      = 0x0001;   // (b) byte, regardless of operand size
                Debugger.TYPE_SBYTE     = 0x0002;   //     byte sign-extended to word
                Debugger.TYPE_WORD      = 0x0003;   // (w) word, regardless...
                Debugger.TYPE_VWORD     = 0x0004;   // (v) word or double-word, depending...
                Debugger.TYPE_DWORD     = 0x0005;   // (d) double-word, regardless...
                Debugger.TYPE_SEGP      = 0x0006;   // (p) 32-bit or 48-bit pointer
                Debugger.TYPE_FARP      = 0x0007;   // (p) 32-bit or 48-bit pointer for JMP/CALL
                Debugger.TYPE_2WORD     = 0x0008;   // (a) two memory operands (BOUND only)
                Debugger.TYPE_DESC      = 0x0009;   // (s) 6 byte pseudo-descriptor
                Debugger.TYPE_WORDIB    = 0x000A;   //     two source operands (eg, IMUL)
                Debugger.TYPE_WORDIW    = 0x000B;   //     two source operands (eg, IMUL)
                Debugger.TYPE_PREFIX    = 0x000F;   //     (treat similarly to TYPE_NONE)
            
                /*
                 * TYPE_MODE values.  Order is somewhat important, as all values implying
                 * the presence of a ModRM byte are assumed to be >= TYPE_MODRM.
                 */
                Debugger.TYPE_IMM       = 0x0000;   // (I) immediate data
                Debugger.TYPE_ONE       = 0x0010;   //     implicit 1 (eg, shifts/rotates)
                Debugger.TYPE_IMMOFF    = 0x0020;   // (A) immediate offset
                Debugger.TYPE_IMMREL    = 0x0030;   // (J) immediate relative
                Debugger.TYPE_DSSI      = 0x0040;   // (X) memory addressed by DS:SI
                Debugger.TYPE_ESDI      = 0x0050;   // (Y) memory addressed by ES:DI
                Debugger.TYPE_IMPREG    = 0x0060;   //     implicit register in TYPE_IREG
                Debugger.TYPE_IMPSEG    = 0x0070;   //     implicit segment register in TYPE_IREG
                Debugger.TYPE_MODRM     = 0x0080;   // (E) standard ModRM decoding
                Debugger.TYPE_MODMEM    = 0x0090;   // (M) ModRM refers to memory only
                Debugger.TYPE_MODREG    = 0x00A0;   // (R) ModRM refers to register only
                Debugger.TYPE_REG       = 0x00B0;   // (G) standard Reg decoding
                Debugger.TYPE_SEGREG    = 0x00C0;   // (S) Reg selects segment register
                Debugger.TYPE_CTLREG    = 0x00D0;   // (C) Reg selects control register
                Debugger.TYPE_DBGREG    = 0x00E0;   // (D) Reg selects debug register
                Debugger.TYPE_TSTREG    = 0x00F0;   // (T) Reg selects test register
            
                /*
                 * TYPE_IREG values, based on the REG_* constants.
                 * For convenience, they include TYPE_IMPREG or TYPE_IMPSEG as appropriate.
                 */
                Debugger.TYPE_AL = (Debugger.REG_AL << 8 | Debugger.TYPE_IMPREG | Debugger.TYPE_BYTE);
                Debugger.TYPE_CL = (Debugger.REG_CL << 8 | Debugger.TYPE_IMPREG | Debugger.TYPE_BYTE);
                Debugger.TYPE_DL = (Debugger.REG_DL << 8 | Debugger.TYPE_IMPREG | Debugger.TYPE_BYTE);
                Debugger.TYPE_BL = (Debugger.REG_BL << 8 | Debugger.TYPE_IMPREG | Debugger.TYPE_BYTE);
                Debugger.TYPE_AH = (Debugger.REG_AH << 8 | Debugger.TYPE_IMPREG | Debugger.TYPE_BYTE);
                Debugger.TYPE_CH = (Debugger.REG_CH << 8 | Debugger.TYPE_IMPREG | Debugger.TYPE_BYTE);
                Debugger.TYPE_DH = (Debugger.REG_DH << 8 | Debugger.TYPE_IMPREG | Debugger.TYPE_BYTE);
                Debugger.TYPE_BH = (Debugger.REG_BH << 8 | Debugger.TYPE_IMPREG | Debugger.TYPE_BYTE);
                Debugger.TYPE_AX = (Debugger.REG_AX << 8 | Debugger.TYPE_IMPREG | Debugger.TYPE_VWORD);
                Debugger.TYPE_CX = (Debugger.REG_CX << 8 | Debugger.TYPE_IMPREG | Debugger.TYPE_VWORD);
                Debugger.TYPE_DX = (Debugger.REG_DX << 8 | Debugger.TYPE_IMPREG | Debugger.TYPE_VWORD);
                Debugger.TYPE_BX = (Debugger.REG_BX << 8 | Debugger.TYPE_IMPREG | Debugger.TYPE_VWORD);
                Debugger.TYPE_SP = (Debugger.REG_SP << 8 | Debugger.TYPE_IMPREG | Debugger.TYPE_VWORD);
                Debugger.TYPE_BP = (Debugger.REG_BP << 8 | Debugger.TYPE_IMPREG | Debugger.TYPE_VWORD);
                Debugger.TYPE_SI = (Debugger.REG_SI << 8 | Debugger.TYPE_IMPREG | Debugger.TYPE_VWORD);
                Debugger.TYPE_DI = (Debugger.REG_DI << 8 | Debugger.TYPE_IMPREG | Debugger.TYPE_VWORD);
                Debugger.TYPE_ES = (Debugger.REG_ES << 8 | Debugger.TYPE_IMPSEG | Debugger.TYPE_WORD);
                Debugger.TYPE_CS = (Debugger.REG_CS << 8 | Debugger.TYPE_IMPSEG | Debugger.TYPE_WORD);
                Debugger.TYPE_SS = (Debugger.REG_SS << 8 | Debugger.TYPE_IMPSEG | Debugger.TYPE_WORD);
                Debugger.TYPE_DS = (Debugger.REG_DS << 8 | Debugger.TYPE_IMPSEG | Debugger.TYPE_WORD);
                Debugger.TYPE_FS = (Debugger.REG_FS << 8 | Debugger.TYPE_IMPSEG | Debugger.TYPE_WORD);
                Debugger.TYPE_GS = (Debugger.REG_GS << 8 | Debugger.TYPE_IMPSEG | Debugger.TYPE_WORD);
            
                /*
                 * TYPE_OTHER bit definitions
                 */
                Debugger.TYPE_IN    = 0x1000;        // operand is input
                Debugger.TYPE_OUT   = 0x2000;        // operand is output
                Debugger.TYPE_BOTH  = (Debugger.TYPE_IN | Debugger.TYPE_OUT);
                Debugger.TYPE_8086  = (Debugger.CPU_8086 << 14);
                Debugger.TYPE_80186 = (Debugger.CPU_80186 << 14);
                Debugger.TYPE_80286 = (Debugger.CPU_80286 << 14);
                Debugger.TYPE_80386 = (Debugger.CPU_80386 << 14);
                Debugger.TYPE_CPU_SHIFT = 14;
            
                /*
                 * Message categories supported by the messageEnabled() function and other assorted message
                 * functions. Each category has a corresponding bit value that can be combined (ie, OR'ed) as
                 * needed.  The Debugger's message command ("m") is used to turn message categories on and off,
                 * like so:
                 *
                 *      m port on
                 *      m port off
                 *      ...
                 *
                 * NOTE: The order of these categories can be rearranged, alphabetized, etc, as desired; just be
                 * aware that changing the bit values could break saved Debugger states (not a huge concern, just
                 * something to be aware of).
                 */
                Debugger.MESSAGES = {
                    "cpu":      Messages.CPU,
                    "seg":      Messages.SEG,
                    "desc":     Messages.DESC,
                    "tss":      Messages.TSS,
                    "int":      Messages.INT,
                    "fault":    Messages.FAULT,
                    "bus":      Messages.BUS,
                    "mem":      Messages.MEM,
                    "port":     Messages.PORT,
                    "dma":      Messages.DMA,
                    "pic":      Messages.PIC,
                    "timer":    Messages.TIMER,
                    "cmos":     Messages.CMOS,
                    "rtc":      Messages.RTC,
                    "8042":     Messages.C8042,
                    "chipset":  Messages.CHIPSET,   // ie, anything else in ChipSet besides DMA, PIC, TIMER, CMOS, RTC and 8042
                    "keyboard": Messages.KEYBOARD,
                    "key":      Messages.KEYS,      // using "keys" instead of "key" causes an unfortunate JavaScript property collision
                    "video":    Messages.VIDEO,
                    "fdc":      Messages.FDC,
                    "hdc":      Messages.HDC,
                    "disk":     Messages.DISK,
                    "serial":   Messages.SERIAL,
                    "speaker":  Messages.SPEAKER,
                    "state":    Messages.STATE,
                    "mouse":    Messages.MOUSE,
                    "computer": Messages.COMPUTER,
                    "dos":      Messages.DOS,
                    "data":     Messages.DATA,
                    "log":      Messages.LOG,
                    "warn":     Messages.WARN,
                    /*
                     * Now we turn to message actions rather than message types; for example, setting "halt"
                     * on or off doesn't enable "halt" messages, but rather halts the CPU on any message above.
                     */
                    "halt":     Messages.HALT
                };
            
                /*
                 * Instruction trace categories supported by the traceLog() function.  The Debugger's info
                 * command ("n") is used to turn trace categories on and off, like so:
                 *
                 *      n shl on
                 *      n shl off
                 *      ...
                 *
                 * Note that there are usually multiple entries for each category (one for each supported operand size);
                 * all matching entries are enabled or disabled as a group.
                 */
                Debugger.TRACE = {
                    ROLB:   {ins: Debugger.INS.ROL,  size: 8},
                    ROLW:   {ins: Debugger.INS.ROL,  size: 16},
                    RORB:   {ins: Debugger.INS.ROR,  size: 8},
                    RORW:   {ins: Debugger.INS.ROR,  size: 16},
                    RCLB:   {ins: Debugger.INS.RCL,  size: 8},
                    RCLW:   {ins: Debugger.INS.RCL,  size: 16},
                    RCRB:   {ins: Debugger.INS.RCR,  size: 8},
                    RCRW:   {ins: Debugger.INS.RCR,  size: 16},
                    SHLB:   {ins: Debugger.INS.SHL,  size: 8},
                    SHLW:   {ins: Debugger.INS.SHL,  size: 16},
                    MULB:   {ins: Debugger.INS.MUL,  size: 16}, // dst is 8-bit (AL), src is 8-bit (operand), result is 16-bit (AH:AL)
                    IMULB:  {ins: Debugger.INS.IMUL, size: 16}, // dst is 8-bit (AL), src is 8-bit (operand), result is 16-bit (AH:AL)
                    DIVB:   {ins: Debugger.INS.DIV,  size: 16}, // dst is 16-bit (AX), src is 8-bit (operand), result is 16-bit (AH:AL, remainder:quotient)
                    IDIVB:  {ins: Debugger.INS.IDIV, size: 16}, // dst is 16-bit (AX), src is 8-bit (operand), result is 16-bit (AH:AL, remainder:quotient)
                    MULW:   {ins: Debugger.INS.MUL,  size: 32}, // dst is 16-bit (AX), src is 16-bit (operand), result is 32-bit (DX:AX)
                    IMULW:  {ins: Debugger.INS.IMUL, size: 32}, // dst is 16-bit (AX), src is 16-bit (operand), result is 32-bit (DX:AX)
                    DIVW:   {ins: Debugger.INS.DIV,  size: 32}, // dst is 32-bit (DX:AX), src is 16-bit (operand), result is 32-bit (DX:AX, remainder:quotient)
                    IDIVW:  {ins: Debugger.INS.IDIV, size: 32}  // dst is 32-bit (DX:AX), src is 16-bit (operand), result is 32-bit (DX:AX, remainder:quotient)
                };
            
                Debugger.TRACE_LIMIT = 100000;
                Debugger.HISTORY_LIMIT = 100000;
            
                /*
                 * Opcode 0x0F has a distinguished history:
                 *
                 *      On the 8086, it functioned as POP CS
                 *      On the 80186, it generated an Invalid Opcode (UD_FAULT) exception
                 *      On the 80286, it introduced a new (and growing) series of two-byte opcodes
                 *
                 * Based on the active CPU model, we make every effort to execute and disassemble this (and every other)
                 * opcode appropriately, by setting the opcode's entry in aaOpDescs accordingly.  0x0F in aaOpDescs points
                 * to the 8086 table: aOpDescPopCS.
                 *
                 * Note that we must NOT modify aaOpDescs directly.  this.aaOpDescs will point to Debugger.aaOpDescs
                 * if the processor is an 8086, because that's the processor that the hard-coded contents of the table
                 * represent; for all other processors, this.aaOpDescs will contain a copy of the table that we can modify.
                 */
                Debugger.aOpDescPopCS     = [Debugger.INS.POP,  Debugger.TYPE_CS   | Debugger.TYPE_OUT];
                Debugger.aOpDescUndefined = [Debugger.INS.NONE, Debugger.TYPE_NONE];
                Debugger.aOpDesc0F        = [Debugger.INS.OP0F, Debugger.TYPE_WORD | Debugger.TYPE_BOTH];
            
                /*
                 * The aaOpDescs array is indexed by opcode, and each element is a sub-array (aOpDesc) that describes
                 * the corresponding opcode. The sub-elements are as follows:
                 *
                 *      [0]: {number} of the opcode name (see INS.*)
                 *      [1]: {number} containing the destination operand descriptor bit(s), if any
                 *      [2]: {number} containing the source operand descriptor bit(s), if any
                 *      [3]: {number} containing the occasional third operand descriptor bit(s), if any
                 *
                 * These sub-elements are all optional. If [0] is not present, the opcode is undefined; if [1] is not
                 * present (or contains zero), the opcode has no (or only implied) operands; if [2] is not present, the
                 * opcode has only a single operand.  And so on.
                 */
                Debugger.aaOpDescs = [
                /* 0x00 */ [Debugger.INS.ADD,   Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH, Debugger.TYPE_REG   | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x01 */ [Debugger.INS.ADD,   Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_REG   | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x02 */ [Debugger.INS.ADD,   Debugger.TYPE_REG    | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH, Debugger.TYPE_MODRM | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x03 */ [Debugger.INS.ADD,   Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x04 */ [Debugger.INS.ADD,   Debugger.TYPE_AL     | Debugger.TYPE_BOTH,   Debugger.TYPE_IMM | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x05 */ [Debugger.INS.ADD,   Debugger.TYPE_AX     | Debugger.TYPE_BOTH,   Debugger.TYPE_IMM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x06 */ [Debugger.INS.PUSH,  Debugger.TYPE_ES     | Debugger.TYPE_IN],
                /* 0x07 */ [Debugger.INS.POP,   Debugger.TYPE_ES     | Debugger.TYPE_OUT],
            
                /* 0x08 */ [Debugger.INS.OR,    Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH, Debugger.TYPE_REG   | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x09 */ [Debugger.INS.OR,    Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_REG   | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x0A */ [Debugger.INS.OR,    Debugger.TYPE_REG    | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH, Debugger.TYPE_MODRM | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x0B */ [Debugger.INS.OR,    Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x0C */ [Debugger.INS.OR,    Debugger.TYPE_AL     | Debugger.TYPE_BOTH,   Debugger.TYPE_IMM | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x0D */ [Debugger.INS.OR,    Debugger.TYPE_AX     | Debugger.TYPE_BOTH,   Debugger.TYPE_IMM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x0E */ [Debugger.INS.PUSH,  Debugger.TYPE_CS     | Debugger.TYPE_IN],
                /* 0x0F */ Debugger.aOpDescPopCS,
            
                /* 0x10 */ [Debugger.INS.ADC,   Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH, Debugger.TYPE_REG   | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x11 */ [Debugger.INS.ADC,   Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_REG   | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x12 */ [Debugger.INS.ADC,   Debugger.TYPE_REG    | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH, Debugger.TYPE_MODRM | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x13 */ [Debugger.INS.ADC,   Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x14 */ [Debugger.INS.ADC,   Debugger.TYPE_AL     | Debugger.TYPE_BOTH,   Debugger.TYPE_IMM | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x15 */ [Debugger.INS.ADC,   Debugger.TYPE_AX     | Debugger.TYPE_BOTH,   Debugger.TYPE_IMM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x16 */ [Debugger.INS.PUSH,  Debugger.TYPE_SS     | Debugger.TYPE_IN],
                /* 0x17 */ [Debugger.INS.POP,   Debugger.TYPE_SS     | Debugger.TYPE_OUT],
            
                /* 0x18 */ [Debugger.INS.SBB,   Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH, Debugger.TYPE_REG   | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x19 */ [Debugger.INS.SBB,   Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_REG   | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x1A */ [Debugger.INS.SBB,   Debugger.TYPE_REG    | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH, Debugger.TYPE_MODRM | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x1B */ [Debugger.INS.SBB,   Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x1C */ [Debugger.INS.SBB,   Debugger.TYPE_AL     | Debugger.TYPE_BOTH,   Debugger.TYPE_IMM | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x1D */ [Debugger.INS.SBB,   Debugger.TYPE_AX     | Debugger.TYPE_BOTH,   Debugger.TYPE_IMM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x1E */ [Debugger.INS.PUSH,  Debugger.TYPE_DS     | Debugger.TYPE_IN],
                /* 0x1F */ [Debugger.INS.POP,   Debugger.TYPE_DS     | Debugger.TYPE_OUT],
            
                /* 0x20 */ [Debugger.INS.AND,   Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH, Debugger.TYPE_REG   | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x21 */ [Debugger.INS.AND,   Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_REG   | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x22 */ [Debugger.INS.AND,   Debugger.TYPE_REG    | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH, Debugger.TYPE_MODRM | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x23 */ [Debugger.INS.AND,   Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x24 */ [Debugger.INS.AND,   Debugger.TYPE_AL     | Debugger.TYPE_BOTH,   Debugger.TYPE_IMM | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x25 */ [Debugger.INS.AND,   Debugger.TYPE_AX     | Debugger.TYPE_BOTH,   Debugger.TYPE_IMM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x26 */ [Debugger.INS.ES,    Debugger.TYPE_PREFIX],
                /* 0x27 */ [Debugger.INS.DAA],
            
                /* 0x28 */ [Debugger.INS.SUB,   Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH, Debugger.TYPE_REG   | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x29 */ [Debugger.INS.SUB,   Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_REG   | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x2A */ [Debugger.INS.SUB,   Debugger.TYPE_REG    | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH, Debugger.TYPE_MODRM | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x2B */ [Debugger.INS.SUB,   Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x2C */ [Debugger.INS.SUB,   Debugger.TYPE_AL     | Debugger.TYPE_BOTH,   Debugger.TYPE_IMM | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x2D */ [Debugger.INS.SUB,   Debugger.TYPE_AX     | Debugger.TYPE_BOTH,   Debugger.TYPE_IMM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x2E */ [Debugger.INS.CS,    Debugger.TYPE_PREFIX],
                /* 0x2F */ [Debugger.INS.DAS],
            
                /* 0x30 */ [Debugger.INS.XOR,   Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH, Debugger.TYPE_REG   | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x31 */ [Debugger.INS.XOR,   Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_REG   | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x32 */ [Debugger.INS.XOR,   Debugger.TYPE_REG    | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH, Debugger.TYPE_MODRM | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x33 */ [Debugger.INS.XOR,   Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x34 */ [Debugger.INS.XOR,   Debugger.TYPE_AL     | Debugger.TYPE_BOTH,   Debugger.TYPE_IMM | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x35 */ [Debugger.INS.XOR,   Debugger.TYPE_AX     | Debugger.TYPE_BOTH,   Debugger.TYPE_IMM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x36 */ [Debugger.INS.SS,    Debugger.TYPE_PREFIX],
                /* 0x37 */ [Debugger.INS.AAA],
            
                /* 0x38 */ [Debugger.INS.CMP,   Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_IN,   Debugger.TYPE_REG   | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x39 */ [Debugger.INS.CMP,   Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_IN,   Debugger.TYPE_REG   | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x3A */ [Debugger.INS.CMP,   Debugger.TYPE_REG    | Debugger.TYPE_BYTE  | Debugger.TYPE_IN,   Debugger.TYPE_MODRM | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x3B */ [Debugger.INS.CMP,   Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_IN,   Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x3C */ [Debugger.INS.CMP,   Debugger.TYPE_AL     | Debugger.TYPE_IN,     Debugger.TYPE_IMM | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x3D */ [Debugger.INS.CMP,   Debugger.TYPE_AX     | Debugger.TYPE_IN,     Debugger.TYPE_IMM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x3E */ [Debugger.INS.DS,    Debugger.TYPE_PREFIX],
                /* 0x3F */ [Debugger.INS.AAS],
            
                /* 0x40 */ [Debugger.INS.INC,   Debugger.TYPE_AX     | Debugger.TYPE_BOTH],
                /* 0x41 */ [Debugger.INS.INC,   Debugger.TYPE_CX     | Debugger.TYPE_BOTH],
                /* 0x42 */ [Debugger.INS.INC,   Debugger.TYPE_DX     | Debugger.TYPE_BOTH],
                /* 0x43 */ [Debugger.INS.INC,   Debugger.TYPE_BX     | Debugger.TYPE_BOTH],
                /* 0x44 */ [Debugger.INS.INC,   Debugger.TYPE_SP     | Debugger.TYPE_BOTH],
                /* 0x45 */ [Debugger.INS.INC,   Debugger.TYPE_BP     | Debugger.TYPE_BOTH],
                /* 0x46 */ [Debugger.INS.INC,   Debugger.TYPE_SI     | Debugger.TYPE_BOTH],
                /* 0x47 */ [Debugger.INS.INC,   Debugger.TYPE_DI     | Debugger.TYPE_BOTH],
            
                /* 0x48 */ [Debugger.INS.DEC,   Debugger.TYPE_AX     | Debugger.TYPE_BOTH],
                /* 0x49 */ [Debugger.INS.DEC,   Debugger.TYPE_CX     | Debugger.TYPE_BOTH],
                /* 0x4A */ [Debugger.INS.DEC,   Debugger.TYPE_DX     | Debugger.TYPE_BOTH],
                /* 0x4B */ [Debugger.INS.DEC,   Debugger.TYPE_BX     | Debugger.TYPE_BOTH],
                /* 0x4C */ [Debugger.INS.DEC,   Debugger.TYPE_SP     | Debugger.TYPE_BOTH],
                /* 0x4D */ [Debugger.INS.DEC,   Debugger.TYPE_BP     | Debugger.TYPE_BOTH],
                /* 0x4E */ [Debugger.INS.DEC,   Debugger.TYPE_SI     | Debugger.TYPE_BOTH],
                /* 0x4F */ [Debugger.INS.DEC,   Debugger.TYPE_DI     | Debugger.TYPE_BOTH],
            
                /* 0x50 */ [Debugger.INS.PUSH,  Debugger.TYPE_AX     | Debugger.TYPE_IN],
                /* 0x51 */ [Debugger.INS.PUSH,  Debugger.TYPE_CX     | Debugger.TYPE_IN],
                /* 0x52 */ [Debugger.INS.PUSH,  Debugger.TYPE_DX     | Debugger.TYPE_IN],
                /* 0x53 */ [Debugger.INS.PUSH,  Debugger.TYPE_BX     | Debugger.TYPE_IN],
                /* 0x54 */ [Debugger.INS.PUSH,  Debugger.TYPE_SP     | Debugger.TYPE_IN],
                /* 0x55 */ [Debugger.INS.PUSH,  Debugger.TYPE_BP     | Debugger.TYPE_IN],
                /* 0x56 */ [Debugger.INS.PUSH,  Debugger.TYPE_SI     | Debugger.TYPE_IN],
                /* 0x57 */ [Debugger.INS.PUSH,  Debugger.TYPE_DI     | Debugger.TYPE_IN],
            
                /* 0x58 */ [Debugger.INS.POP,   Debugger.TYPE_AX     | Debugger.TYPE_OUT],
                /* 0x59 */ [Debugger.INS.POP,   Debugger.TYPE_CX     | Debugger.TYPE_OUT],
                /* 0x5A */ [Debugger.INS.POP,   Debugger.TYPE_DX     | Debugger.TYPE_OUT],
                /* 0x5B */ [Debugger.INS.POP,   Debugger.TYPE_BX     | Debugger.TYPE_OUT],
                /* 0x5C */ [Debugger.INS.POP,   Debugger.TYPE_SP     | Debugger.TYPE_OUT],
                /* 0x5D */ [Debugger.INS.POP,   Debugger.TYPE_BP     | Debugger.TYPE_OUT],
                /* 0x5E */ [Debugger.INS.POP,   Debugger.TYPE_SI     | Debugger.TYPE_OUT],
                /* 0x5F */ [Debugger.INS.POP,   Debugger.TYPE_DI     | Debugger.TYPE_OUT],
            
                /* 0x60 */ [Debugger.INS.PUSHA, Debugger.TYPE_NONE   | Debugger.TYPE_80286],
                /* 0x61 */ [Debugger.INS.POPA,  Debugger.TYPE_NONE   | Debugger.TYPE_80286],
                /* 0x62 */ [Debugger.INS.BOUND, Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_IN   | Debugger.TYPE_80286, Debugger.TYPE_MODRM | Debugger.TYPE_2WORD | Debugger.TYPE_IN],
                /* 0x63 */ [Debugger.INS.ARPL,  Debugger.TYPE_MODRM  | Debugger.TYPE_WORD  | Debugger.TYPE_OUT,                        Debugger.TYPE_REG   | Debugger.TYPE_WORD  | Debugger.TYPE_IN],
                /* 0x64 */ [Debugger.INS.FS,    Debugger.TYPE_PREFIX | Debugger.TYPE_80386],
                /* 0x65 */ [Debugger.INS.GS,    Debugger.TYPE_PREFIX | Debugger.TYPE_80386],
                /* 0x66 */ [Debugger.INS.OS,    Debugger.TYPE_PREFIX | Debugger.TYPE_80386],
                /* 0x67 */ [Debugger.INS.AS,    Debugger.TYPE_PREFIX | Debugger.TYPE_80386],
            
                /* 0x68 */ [Debugger.INS.PUSH,  Debugger.TYPE_IMM    | Debugger.TYPE_VWORD | Debugger.TYPE_IN   | Debugger.TYPE_80286],
                /* 0x69 */ [Debugger.INS.IMUL,  Debugger.TYPE_REG    | Debugger.TYPE_WORD  | Debugger.TYPE_BOTH | Debugger.TYPE_80286,   Debugger.TYPE_MODRM | Debugger.TYPE_WORDIW | Debugger.TYPE_IN],
                /* 0x6A */ [Debugger.INS.PUSH,  Debugger.TYPE_IMM    | Debugger.TYPE_SBYTE | Debugger.TYPE_IN   | Debugger.TYPE_80286],
                /* 0x6B */ [Debugger.INS.IMUL,  Debugger.TYPE_REG    | Debugger.TYPE_WORD  | Debugger.TYPE_BOTH | Debugger.TYPE_80286,   Debugger.TYPE_MODRM | Debugger.TYPE_WORDIB | Debugger.TYPE_IN],
                /* 0x6C */ [Debugger.INS.INS,   Debugger.TYPE_ESDI   | Debugger.TYPE_BYTE  | Debugger.TYPE_OUT  | Debugger.TYPE_80286,   Debugger.TYPE_DX    | Debugger.TYPE_IN],
                /* 0x6D */ [Debugger.INS.INS,   Debugger.TYPE_ESDI   | Debugger.TYPE_VWORD | Debugger.TYPE_OUT  | Debugger.TYPE_80286,   Debugger.TYPE_DX    | Debugger.TYPE_IN],
                /* 0x6E */ [Debugger.INS.OUTS,  Debugger.TYPE_DX     | Debugger.TYPE_IN    | Debugger.TYPE_80286,   Debugger.TYPE_DSSI | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x6F */ [Debugger.INS.OUTS,  Debugger.TYPE_DX     | Debugger.TYPE_IN    | Debugger.TYPE_80286,   Debugger.TYPE_DSSI | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
            
                /* 0x70 */ [Debugger.INS.JO,    Debugger.TYPE_IMMREL | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x71 */ [Debugger.INS.JNO,   Debugger.TYPE_IMMREL | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x72 */ [Debugger.INS.JC,    Debugger.TYPE_IMMREL | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x73 */ [Debugger.INS.JNC,   Debugger.TYPE_IMMREL | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x74 */ [Debugger.INS.JZ,    Debugger.TYPE_IMMREL | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x75 */ [Debugger.INS.JNZ,   Debugger.TYPE_IMMREL | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x76 */ [Debugger.INS.JBE,   Debugger.TYPE_IMMREL | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x77 */ [Debugger.INS.JA,    Debugger.TYPE_IMMREL | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
            
                /* 0x78 */ [Debugger.INS.JS,    Debugger.TYPE_IMMREL | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x79 */ [Debugger.INS.JNS,   Debugger.TYPE_IMMREL | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x7A */ [Debugger.INS.JP,    Debugger.TYPE_IMMREL | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x7B */ [Debugger.INS.JNP,   Debugger.TYPE_IMMREL | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x7C */ [Debugger.INS.JL,    Debugger.TYPE_IMMREL | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x7D */ [Debugger.INS.JGE,   Debugger.TYPE_IMMREL | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x7E */ [Debugger.INS.JLE,   Debugger.TYPE_IMMREL | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x7F */ [Debugger.INS.JG,    Debugger.TYPE_IMMREL | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
            
                /* 0x80 */ [Debugger.INS.GRP1B, Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH, Debugger.TYPE_IMM   | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x81 */ [Debugger.INS.GRP1W, Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_IMM   | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x82 */ [Debugger.INS.GRP1B, Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH, Debugger.TYPE_IMM   | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x83 */ [Debugger.INS.GRP1SW,Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_IMM   | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x84 */ [Debugger.INS.TEST,  Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_IN,   Debugger.TYPE_REG   | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x85 */ [Debugger.INS.TEST,  Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_IN,   Debugger.TYPE_REG   | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x86 */ [Debugger.INS.XCHG,  Debugger.TYPE_REG    | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH, Debugger.TYPE_MODRM | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH],
                /* 0x87 */ [Debugger.INS.XCHG,  Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH],
            
                /* 0x88 */ [Debugger.INS.MOV,   Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_OUT,  Debugger.TYPE_REG    | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x89 */ [Debugger.INS.MOV,   Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_OUT,  Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x8A */ [Debugger.INS.MOV,   Debugger.TYPE_REG    | Debugger.TYPE_BYTE  | Debugger.TYPE_OUT,  Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0x8B */ [Debugger.INS.MOV,   Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_OUT,  Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x8C */ [Debugger.INS.MOV,   Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_OUT,  Debugger.TYPE_SEGREG | Debugger.TYPE_WORD  | Debugger.TYPE_IN],
                /* 0x8D */ [Debugger.INS.LEA,   Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_OUT,  Debugger.TYPE_MODMEM | Debugger.TYPE_VWORD],
                /* 0x8E */ [Debugger.INS.MOV,   Debugger.TYPE_SEGREG | Debugger.TYPE_WORD  | Debugger.TYPE_OUT,  Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0x8F */ [Debugger.INS.POP,   Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_OUT],
            
                /* 0x90 */ [Debugger.INS.NOP],
                /* 0x91 */ [Debugger.INS.XCHG,  Debugger.TYPE_AX     | Debugger.TYPE_BOTH, Debugger.TYPE_CX | Debugger.TYPE_BOTH],
                /* 0x92 */ [Debugger.INS.XCHG,  Debugger.TYPE_AX     | Debugger.TYPE_BOTH, Debugger.TYPE_DX | Debugger.TYPE_BOTH],
                /* 0x93 */ [Debugger.INS.XCHG,  Debugger.TYPE_AX     | Debugger.TYPE_BOTH, Debugger.TYPE_BX | Debugger.TYPE_BOTH],
                /* 0x94 */ [Debugger.INS.XCHG,  Debugger.TYPE_AX     | Debugger.TYPE_BOTH, Debugger.TYPE_SP | Debugger.TYPE_BOTH],
                /* 0x95 */ [Debugger.INS.XCHG,  Debugger.TYPE_AX     | Debugger.TYPE_BOTH, Debugger.TYPE_BP | Debugger.TYPE_BOTH],
                /* 0x96 */ [Debugger.INS.XCHG,  Debugger.TYPE_AX     | Debugger.TYPE_BOTH, Debugger.TYPE_SI | Debugger.TYPE_BOTH],
                /* 0x97 */ [Debugger.INS.XCHG,  Debugger.TYPE_AX     | Debugger.TYPE_BOTH, Debugger.TYPE_DI | Debugger.TYPE_BOTH],
            
                /* 0x98 */ [Debugger.INS.CBW],
                /* 0x99 */ [Debugger.INS.CWD],
                /* 0x9A */ [Debugger.INS.CALL,  Debugger.TYPE_IMM    | Debugger.TYPE_FARP | Debugger.TYPE_IN],
                /* 0x9B */ [Debugger.INS.WAIT],
                /* 0x9C */ [Debugger.INS.PUSHF],
                /* 0x9D */ [Debugger.INS.POPF],
                /* 0x9E */ [Debugger.INS.SAHF],
                /* 0x9F */ [Debugger.INS.LAHF],
            
                /* 0xA0 */ [Debugger.INS.MOV,   Debugger.TYPE_AL     | Debugger.TYPE_OUT,    Debugger.TYPE_IMMOFF | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0xA1 */ [Debugger.INS.MOV,   Debugger.TYPE_AX     | Debugger.TYPE_OUT,    Debugger.TYPE_IMMOFF | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0xA2 */ [Debugger.INS.MOV,   Debugger.TYPE_IMMOFF | Debugger.TYPE_BYTE  | Debugger.TYPE_OUT,     Debugger.TYPE_AL    | Debugger.TYPE_IN],
                /* 0xA3 */ [Debugger.INS.MOV,   Debugger.TYPE_IMMOFF | Debugger.TYPE_VWORD | Debugger.TYPE_OUT,     Debugger.TYPE_AX    | Debugger.TYPE_IN],
                /* 0xA4 */ [Debugger.INS.MOVSB, Debugger.TYPE_ESDI   | Debugger.TYPE_BYTE  | Debugger.TYPE_OUT,     Debugger.TYPE_DSSI  | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0xA5 */ [Debugger.INS.MOVSW, Debugger.TYPE_ESDI   | Debugger.TYPE_VWORD | Debugger.TYPE_OUT,     Debugger.TYPE_DSSI  | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0xA6 */ [Debugger.INS.CMPSB, Debugger.TYPE_ESDI   | Debugger.TYPE_BYTE  | Debugger.TYPE_IN,      Debugger.TYPE_DSSI  | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0xA7 */ [Debugger.INS.CMPSW, Debugger.TYPE_ESDI   | Debugger.TYPE_VWORD | Debugger.TYPE_IN,      Debugger.TYPE_DSSI  | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
            
                /* 0xA8 */ [Debugger.INS.TEST,  Debugger.TYPE_AL     | Debugger.TYPE_IN,     Debugger.TYPE_IMM  | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0xA9 */ [Debugger.INS.TEST,  Debugger.TYPE_AX     | Debugger.TYPE_IN,     Debugger.TYPE_IMM  | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0xAA */ [Debugger.INS.STOSB, Debugger.TYPE_ESDI   | Debugger.TYPE_BYTE  | Debugger.TYPE_OUT,   Debugger.TYPE_AL    | Debugger.TYPE_IN],
                /* 0xAB */ [Debugger.INS.STOSW, Debugger.TYPE_ESDI   | Debugger.TYPE_VWORD | Debugger.TYPE_OUT,   Debugger.TYPE_AX    | Debugger.TYPE_IN],
                /* 0xAC */ [Debugger.INS.LODSB, Debugger.TYPE_AL     | Debugger.TYPE_OUT,    Debugger.TYPE_DSSI | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0xAD */ [Debugger.INS.LODSW, Debugger.TYPE_AX     | Debugger.TYPE_OUT,    Debugger.TYPE_DSSI | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0xAE */ [Debugger.INS.SCASB, Debugger.TYPE_AL     | Debugger.TYPE_IN,     Debugger.TYPE_ESDI | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0xAF */ [Debugger.INS.SCASW, Debugger.TYPE_AX     | Debugger.TYPE_IN,     Debugger.TYPE_ESDI | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
            
                /* 0xB0 */ [Debugger.INS.MOV,   Debugger.TYPE_AL     | Debugger.TYPE_OUT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                /* 0xB1 */ [Debugger.INS.MOV,   Debugger.TYPE_CL     | Debugger.TYPE_OUT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                /* 0xB2 */ [Debugger.INS.MOV,   Debugger.TYPE_DL     | Debugger.TYPE_OUT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                /* 0xB3 */ [Debugger.INS.MOV,   Debugger.TYPE_BL     | Debugger.TYPE_OUT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                /* 0xB4 */ [Debugger.INS.MOV,   Debugger.TYPE_AH     | Debugger.TYPE_OUT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                /* 0xB5 */ [Debugger.INS.MOV,   Debugger.TYPE_CH     | Debugger.TYPE_OUT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                /* 0xB6 */ [Debugger.INS.MOV,   Debugger.TYPE_DH     | Debugger.TYPE_OUT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                /* 0xB7 */ [Debugger.INS.MOV,   Debugger.TYPE_BH     | Debugger.TYPE_OUT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
            
                /* 0xB8 */ [Debugger.INS.MOV,   Debugger.TYPE_AX     | Debugger.TYPE_OUT, Debugger.TYPE_IMM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0xB9 */ [Debugger.INS.MOV,   Debugger.TYPE_CX     | Debugger.TYPE_OUT, Debugger.TYPE_IMM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0xBA */ [Debugger.INS.MOV,   Debugger.TYPE_DX     | Debugger.TYPE_OUT, Debugger.TYPE_IMM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0xBB */ [Debugger.INS.MOV,   Debugger.TYPE_BX     | Debugger.TYPE_OUT, Debugger.TYPE_IMM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0xBC */ [Debugger.INS.MOV,   Debugger.TYPE_SP     | Debugger.TYPE_OUT, Debugger.TYPE_IMM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0xBD */ [Debugger.INS.MOV,   Debugger.TYPE_BP     | Debugger.TYPE_OUT, Debugger.TYPE_IMM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0xBE */ [Debugger.INS.MOV,   Debugger.TYPE_SI     | Debugger.TYPE_OUT, Debugger.TYPE_IMM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0xBF */ [Debugger.INS.MOV,   Debugger.TYPE_DI     | Debugger.TYPE_OUT, Debugger.TYPE_IMM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
            
                /* 0xC0 */ [Debugger.INS.GRP2B, Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH | Debugger.TYPE_80186, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                /* 0xC1 */ [Debugger.INS.GRP2W, Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH | Debugger.TYPE_80186, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                /* 0xC2 */ [Debugger.INS.RET,   Debugger.TYPE_IMM    | Debugger.TYPE_WORD  | Debugger.TYPE_IN],
                /* 0xC3 */ [Debugger.INS.RET],
                /* 0xC4 */ [Debugger.INS.LES,   Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_OUT, Debugger.TYPE_MODMEM | Debugger.TYPE_SEGP  | Debugger.TYPE_IN],
                /* 0xC5 */ [Debugger.INS.LDS,   Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_OUT, Debugger.TYPE_MODMEM | Debugger.TYPE_SEGP  | Debugger.TYPE_IN],
                /* 0xC6 */ [Debugger.INS.MOV,   Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_OUT, Debugger.TYPE_IMM    | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0xC7 */ [Debugger.INS.MOV,   Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_OUT, Debugger.TYPE_IMM    | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
            
                /* 0xC8 */ [Debugger.INS.ENTER, Debugger.TYPE_IMM    | Debugger.TYPE_WORD  | Debugger.TYPE_IN | Debugger.TYPE_80286,  Debugger.TYPE_IMM   | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                /* 0xC9 */ [Debugger.INS.LEAVE, Debugger.TYPE_NONE   | Debugger.TYPE_80286],
                /* 0xCA */ [Debugger.INS.RETF,  Debugger.TYPE_IMM    | Debugger.TYPE_WORD  | Debugger.TYPE_IN],
                /* 0xCB */ [Debugger.INS.RETF],
                /* 0xCC */ [Debugger.INS.INT3],
                /* 0xCD */ [Debugger.INS.INT,   Debugger.TYPE_IMM    | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0xCE */ [Debugger.INS.INTO],
                /* 0xCF */ [Debugger.INS.IRET],
            
                /* 0xD0 */ [Debugger.INS.GRP2B1,Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH, Debugger.TYPE_ONE    | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                /* 0xD1 */ [Debugger.INS.GRP2W1,Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_ONE    | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                /* 0xD2 */ [Debugger.INS.GRP2BC,Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH, Debugger.TYPE_IMPREG | Debugger.TYPE_CL |   Debugger.TYPE_IN],
                /* 0xD3 */ [Debugger.INS.GRP2WC,Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_IMPREG | Debugger.TYPE_CL |   Debugger.TYPE_IN],
                /* 0xD4 */ [Debugger.INS.AAM,   Debugger.TYPE_IMM    | Debugger.TYPE_BYTE],
                /* 0xD5 */ [Debugger.INS.AAD,   Debugger.TYPE_IMM    | Debugger.TYPE_BYTE],
                /* 0xD6 */ [Debugger.INS.SALC],
                /* 0xD7 */ [Debugger.INS.XLAT],
            
                /* 0xD8 */ [Debugger.INS.ESC,   Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0xD9 */ [Debugger.INS.ESC,   Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0xDA */ [Debugger.INS.ESC,   Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0xDB */ [Debugger.INS.ESC,   Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0xDC */ [Debugger.INS.ESC,   Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0xDD */ [Debugger.INS.ESC,   Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0xDE */ [Debugger.INS.ESC,   Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0xDF */ [Debugger.INS.ESC,   Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
            
                /* 0xE0 */ [Debugger.INS.LOOPNZ,Debugger.TYPE_IMMREL | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0xE1 */ [Debugger.INS.LOOPZ, Debugger.TYPE_IMMREL | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0xE2 */ [Debugger.INS.LOOP,  Debugger.TYPE_IMMREL | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0xE3 */ [Debugger.INS.JCXZ,  Debugger.TYPE_IMMREL | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0xE4 */ [Debugger.INS.IN,    Debugger.TYPE_AL     | Debugger.TYPE_OUT,    Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                /* 0xE5 */ [Debugger.INS.IN,    Debugger.TYPE_AX     | Debugger.TYPE_OUT,    Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                /* 0xE6 */ [Debugger.INS.OUT,   Debugger.TYPE_IMM    | Debugger.TYPE_BYTE  | Debugger.TYPE_IN,   Debugger.TYPE_AL   | Debugger.TYPE_IN],
                /* 0xE7 */ [Debugger.INS.OUT,   Debugger.TYPE_IMM    | Debugger.TYPE_BYTE  | Debugger.TYPE_IN,   Debugger.TYPE_AX   | Debugger.TYPE_IN],
            
                /* 0xE8 */ [Debugger.INS.CALL,  Debugger.TYPE_IMMREL | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0xE9 */ [Debugger.INS.JMP,   Debugger.TYPE_IMMREL | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                /* 0xEA */ [Debugger.INS.JMP,   Debugger.TYPE_IMM    | Debugger.TYPE_FARP  | Debugger.TYPE_IN],
                /* 0xEB */ [Debugger.INS.JMP,   Debugger.TYPE_IMMREL | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                /* 0xEC */ [Debugger.INS.IN,    Debugger.TYPE_AL     | Debugger.TYPE_OUT,    Debugger.TYPE_DX | Debugger.TYPE_IN],
                /* 0xED */ [Debugger.INS.IN,    Debugger.TYPE_AX     | Debugger.TYPE_OUT,    Debugger.TYPE_DX | Debugger.TYPE_IN],
                /* 0xEE */ [Debugger.INS.OUT,   Debugger.TYPE_DX     | Debugger.TYPE_IN,     Debugger.TYPE_AL | Debugger.TYPE_IN],
                /* 0xEF */ [Debugger.INS.OUT,   Debugger.TYPE_DX     | Debugger.TYPE_IN,     Debugger.TYPE_AX | Debugger.TYPE_IN],
            
                /* 0xF0 */ [Debugger.INS.LOCK,  Debugger.TYPE_PREFIX],
                /* 0xF1 */ [Debugger.INS.NONE],
                /* 0xF2 */ [Debugger.INS.REPNZ, Debugger.TYPE_PREFIX],
                /* 0xF3 */ [Debugger.INS.REPZ,  Debugger.TYPE_PREFIX],
                /* 0xF4 */ [Debugger.INS.HLT],
                /* 0xF5 */ [Debugger.INS.CMC],
                /* 0xF6 */ [Debugger.INS.GRP3B, Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH],
                /* 0xF7 */ [Debugger.INS.GRP3W, Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH],
            
                /* 0xF8 */ [Debugger.INS.CLC],
                /* 0xF9 */ [Debugger.INS.STC],
                /* 0xFA */ [Debugger.INS.CLI],
                /* 0xFB */ [Debugger.INS.STI],
                /* 0xFC */ [Debugger.INS.CLD],
                /* 0xFD */ [Debugger.INS.STD],
                /* 0xFE */ [Debugger.INS.GRP4B, Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH],
                /* 0xFF */ [Debugger.INS.GRP4W, Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH]
                ];
            
                Debugger.aaOp0FDescs = {
                    0x00: [Debugger.INS.GRP6,   Debugger.TYPE_MODRM  | Debugger.TYPE_WORD  | Debugger.TYPE_BOTH],
                    0x01: [Debugger.INS.GRP7,   Debugger.TYPE_MODRM  | Debugger.TYPE_WORD  | Debugger.TYPE_BOTH],
                    0x02: [Debugger.INS.LAR,    Debugger.TYPE_REG    | Debugger.TYPE_WORD  | Debugger.TYPE_OUT  | Debugger.TYPE_80286, Debugger.TYPE_MODMEM | Debugger.TYPE_WORD | Debugger.TYPE_IN],
                    0x03: [Debugger.INS.LSL,    Debugger.TYPE_REG    | Debugger.TYPE_WORD  | Debugger.TYPE_OUT  | Debugger.TYPE_80286, Debugger.TYPE_MODMEM | Debugger.TYPE_WORD | Debugger.TYPE_IN],
                    0x05: [Debugger.INS.LOADALL,Debugger.TYPE_80286],
                    0x06: [Debugger.INS.CLTS,   Debugger.TYPE_80286],
                    0x20: [Debugger.INS.MOV,    Debugger.TYPE_MODREG | Debugger.TYPE_DWORD | Debugger.TYPE_OUT  | Debugger.TYPE_80386, Debugger.TYPE_CTLREG | Debugger.TYPE_DWORD | Debugger.TYPE_IN],
                    0x22: [Debugger.INS.MOV,    Debugger.TYPE_CTLREG | Debugger.TYPE_DWORD | Debugger.TYPE_OUT  | Debugger.TYPE_80386, Debugger.TYPE_MODREG | Debugger.TYPE_DWORD | Debugger.TYPE_IN],
                    0x80: [Debugger.INS.JO,     Debugger.TYPE_IMMREL | Debugger.TYPE_VWORD | Debugger.TYPE_IN   | Debugger.TYPE_80386],
                    0x81: [Debugger.INS.JNO,    Debugger.TYPE_IMMREL | Debugger.TYPE_VWORD | Debugger.TYPE_IN   | Debugger.TYPE_80386],
                    0x82: [Debugger.INS.JC,     Debugger.TYPE_IMMREL | Debugger.TYPE_VWORD | Debugger.TYPE_IN   | Debugger.TYPE_80386],
                    0x83: [Debugger.INS.JNC,    Debugger.TYPE_IMMREL | Debugger.TYPE_VWORD | Debugger.TYPE_IN   | Debugger.TYPE_80386],
                    0x84: [Debugger.INS.JZ,     Debugger.TYPE_IMMREL | Debugger.TYPE_VWORD | Debugger.TYPE_IN   | Debugger.TYPE_80386],
                    0x85: [Debugger.INS.JNZ,    Debugger.TYPE_IMMREL | Debugger.TYPE_VWORD | Debugger.TYPE_IN   | Debugger.TYPE_80386],
                    0x86: [Debugger.INS.JBE,    Debugger.TYPE_IMMREL | Debugger.TYPE_VWORD | Debugger.TYPE_IN   | Debugger.TYPE_80386],
                    0x87: [Debugger.INS.JA,     Debugger.TYPE_IMMREL | Debugger.TYPE_VWORD | Debugger.TYPE_IN   | Debugger.TYPE_80386],
                    0x88: [Debugger.INS.JS,     Debugger.TYPE_IMMREL | Debugger.TYPE_VWORD | Debugger.TYPE_IN   | Debugger.TYPE_80386],
                    0x89: [Debugger.INS.JNS,    Debugger.TYPE_IMMREL | Debugger.TYPE_VWORD | Debugger.TYPE_IN   | Debugger.TYPE_80386],
                    0x8A: [Debugger.INS.JP,     Debugger.TYPE_IMMREL | Debugger.TYPE_VWORD | Debugger.TYPE_IN   | Debugger.TYPE_80386],
                    0x8B: [Debugger.INS.JNP,    Debugger.TYPE_IMMREL | Debugger.TYPE_VWORD | Debugger.TYPE_IN   | Debugger.TYPE_80386],
                    0x8C: [Debugger.INS.JL,     Debugger.TYPE_IMMREL | Debugger.TYPE_VWORD | Debugger.TYPE_IN   | Debugger.TYPE_80386],
                    0x8D: [Debugger.INS.JGE,    Debugger.TYPE_IMMREL | Debugger.TYPE_VWORD | Debugger.TYPE_IN   | Debugger.TYPE_80386],
                    0x8E: [Debugger.INS.JLE,    Debugger.TYPE_IMMREL | Debugger.TYPE_VWORD | Debugger.TYPE_IN   | Debugger.TYPE_80386],
                    0x8F: [Debugger.INS.JG,     Debugger.TYPE_IMMREL | Debugger.TYPE_VWORD | Debugger.TYPE_IN   | Debugger.TYPE_80386],
                    0x90: [Debugger.INS.SETO,   Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_OUT  | Debugger.TYPE_80386],
                    0x91: [Debugger.INS.SETNO,  Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_OUT  | Debugger.TYPE_80386],
                    0x92: [Debugger.INS.SETC,   Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_OUT  | Debugger.TYPE_80386],
                    0x93: [Debugger.INS.SETNC,  Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_OUT  | Debugger.TYPE_80386],
                    0x94: [Debugger.INS.SETZ,   Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_OUT  | Debugger.TYPE_80386],
                    0x95: [Debugger.INS.SETNZ,  Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_OUT  | Debugger.TYPE_80386],
                    0x96: [Debugger.INS.SETBE,  Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_OUT  | Debugger.TYPE_80386],
                    0x97: [Debugger.INS.SETNBE, Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_OUT  | Debugger.TYPE_80386],
                    0x98: [Debugger.INS.SETS,   Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_OUT  | Debugger.TYPE_80386],
                    0x99: [Debugger.INS.SETNS,  Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_OUT  | Debugger.TYPE_80386],
                    0x9A: [Debugger.INS.SETP,   Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_OUT  | Debugger.TYPE_80386],
                    0x9B: [Debugger.INS.SETNP,  Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_OUT  | Debugger.TYPE_80386],
                    0x9C: [Debugger.INS.SETL,   Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_OUT  | Debugger.TYPE_80386],
                    0x9D: [Debugger.INS.SETGE,  Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_OUT  | Debugger.TYPE_80386],
                    0x9E: [Debugger.INS.SETLE,  Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_OUT  | Debugger.TYPE_80386],
                    0x9F: [Debugger.INS.SETG,   Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_OUT  | Debugger.TYPE_80386],
                    0xA0: [Debugger.INS.PUSH,   Debugger.TYPE_FS     | Debugger.TYPE_IN    | Debugger.TYPE_80386],
                    0xA1: [Debugger.INS.POP,    Debugger.TYPE_FS     | Debugger.TYPE_OUT   | Debugger.TYPE_80386],
                    0xA3: [Debugger.INS.BT,     Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_IN   | Debugger.TYPE_80386, Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                    0xA4: [Debugger.INS.SHLD,   Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_OUT  | Debugger.TYPE_80386, Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_IN, Debugger.TYPE_IMM    | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    0xA5: [Debugger.INS.SHLD,   Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_OUT  | Debugger.TYPE_80386, Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_IN, Debugger.TYPE_IMPREG | Debugger.TYPE_CL   | Debugger.TYPE_IN],
                    0xA8: [Debugger.INS.PUSH,   Debugger.TYPE_GS     | Debugger.TYPE_IN    | Debugger.TYPE_80386],
                    0xA9: [Debugger.INS.POP,    Debugger.TYPE_GS     | Debugger.TYPE_OUT   | Debugger.TYPE_80386],
                    0xAB: [Debugger.INS.BTS,    Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_OUT  | Debugger.TYPE_80386, Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                    0xAC: [Debugger.INS.SHRD,   Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_OUT  | Debugger.TYPE_80386, Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_IN, Debugger.TYPE_IMM    | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    0xAD: [Debugger.INS.SHRD,   Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_OUT  | Debugger.TYPE_80386, Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_IN, Debugger.TYPE_IMPREG | Debugger.TYPE_CL   | Debugger.TYPE_IN],
                    0xAF: [Debugger.INS.IMUL,   Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH | Debugger.TYPE_80386, Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                    0xB2: [Debugger.INS.LSS,    Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_OUT,                        Debugger.TYPE_MODMEM | Debugger.TYPE_SEGP  | Debugger.TYPE_IN],
                    0xB3: [Debugger.INS.BTR,    Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_OUT  | Debugger.TYPE_80386, Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                    0xB4: [Debugger.INS.LFS,    Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_OUT,                        Debugger.TYPE_MODMEM | Debugger.TYPE_SEGP  | Debugger.TYPE_IN],
                    0xB5: [Debugger.INS.LGS,    Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_OUT,                        Debugger.TYPE_MODMEM | Debugger.TYPE_SEGP  | Debugger.TYPE_IN],
                    0xB6: [Debugger.INS.MOVZX,  Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_OUT  | Debugger.TYPE_80386, Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                    0xB7: [Debugger.INS.MOVZX,  Debugger.TYPE_REG    | Debugger.TYPE_DWORD | Debugger.TYPE_OUT  | Debugger.TYPE_80386, Debugger.TYPE_MODRM  | Debugger.TYPE_WORD  | Debugger.TYPE_IN],
                    0xBA: [Debugger.INS.GRP8,   Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH | Debugger.TYPE_80386, Debugger.TYPE_IMM    | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                    0xBB: [Debugger.INS.BTC,    Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_OUT  | Debugger.TYPE_80386, Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                    0xBC: [Debugger.INS.BSF,    Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_OUT  | Debugger.TYPE_80386, Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                    0xBD: [Debugger.INS.BSR,    Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_OUT  | Debugger.TYPE_80386, Debugger.TYPE_MODRM  | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                    0xBE: [Debugger.INS.MOVSX,  Debugger.TYPE_REG    | Debugger.TYPE_VWORD | Debugger.TYPE_OUT  | Debugger.TYPE_80386, Debugger.TYPE_MODRM  | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                    0xBF: [Debugger.INS.MOVSX,  Debugger.TYPE_REG    | Debugger.TYPE_DWORD | Debugger.TYPE_OUT  | Debugger.TYPE_80386, Debugger.TYPE_MODRM  | Debugger.TYPE_WORD  | Debugger.TYPE_IN]
                };
            
                Debugger.aaGrpDescs = [
                  [
                    /* GRP1B */
                    [Debugger.INS.ADD,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.OR,   Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.ADC,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.SBB,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.AND,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.SUB,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.XOR,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.CMP,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_IN,   Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN]
                  ],
                  [
                    /* GRP1W */
                    [Debugger.INS.ADD,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_IMM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                    [Debugger.INS.OR,   Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_IMM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                    [Debugger.INS.ADC,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_IMM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                    [Debugger.INS.SBB,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_IMM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                    [Debugger.INS.AND,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_IMM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                    [Debugger.INS.SUB,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_IMM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                    [Debugger.INS.XOR,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_IMM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                    [Debugger.INS.CMP,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_IN,   Debugger.TYPE_IMM | Debugger.TYPE_VWORD | Debugger.TYPE_IN]
                  ],
                  [
                    /* GRP1SW */
                    [Debugger.INS.ADD,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_IMM | Debugger.TYPE_SBYTE | Debugger.TYPE_IN],
                    [Debugger.INS.OR,   Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_IMM | Debugger.TYPE_SBYTE | Debugger.TYPE_IN],
                    [Debugger.INS.ADC,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_IMM | Debugger.TYPE_SBYTE | Debugger.TYPE_IN],
                    [Debugger.INS.SBB,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_IMM | Debugger.TYPE_SBYTE | Debugger.TYPE_IN],
                    [Debugger.INS.AND,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_IMM | Debugger.TYPE_SBYTE | Debugger.TYPE_IN],
                    [Debugger.INS.SUB,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_IMM | Debugger.TYPE_SBYTE | Debugger.TYPE_IN],
                    [Debugger.INS.XOR,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_IMM | Debugger.TYPE_SBYTE | Debugger.TYPE_IN],
                    [Debugger.INS.CMP,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_IN,   Debugger.TYPE_IMM | Debugger.TYPE_SBYTE | Debugger.TYPE_IN]
                  ],
                  [
                    /* GRP2B */
                    [Debugger.INS.ROL,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH | Debugger.TYPE_80286, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.ROR,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH | Debugger.TYPE_80286, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.RCL,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH | Debugger.TYPE_80286, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.RCR,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH | Debugger.TYPE_80286, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.SHL,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH | Debugger.TYPE_80286, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.SHR,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH | Debugger.TYPE_80286, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                     Debugger.aOpDescUndefined,
                    [Debugger.INS.SAR,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH | Debugger.TYPE_80286, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN]
                  ],
                  [
                    /* GRP2W */
                    [Debugger.INS.ROL,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH | Debugger.TYPE_80286, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.ROR,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH | Debugger.TYPE_80286, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.RCL,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH | Debugger.TYPE_80286, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.RCR,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH | Debugger.TYPE_80286, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.SHL,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH | Debugger.TYPE_80286, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.SHR,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH | Debugger.TYPE_80286, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                     Debugger.aOpDescUndefined,
                    [Debugger.INS.SAR,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH | Debugger.TYPE_80286, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN]
                  ],
                  [
                    /* GRP2B1 */
                    [Debugger.INS.ROL,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH, Debugger.TYPE_ONE | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.ROR,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH, Debugger.TYPE_ONE | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.RCL,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH, Debugger.TYPE_ONE | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.RCR,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH, Debugger.TYPE_ONE | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.SHL,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH, Debugger.TYPE_ONE | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.SHR,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH, Debugger.TYPE_ONE | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                     Debugger.aOpDescUndefined,
                    [Debugger.INS.SAR,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH, Debugger.TYPE_ONE | Debugger.TYPE_BYTE | Debugger.TYPE_IN]
                  ],
                  [
                    /* GRP2W1 */
                    [Debugger.INS.ROL,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_ONE | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.ROR,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_ONE | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.RCL,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_ONE | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.RCR,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_ONE | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.SHL,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_ONE | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.SHR,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_ONE | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                     Debugger.aOpDescUndefined,
                    [Debugger.INS.SAR,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_ONE | Debugger.TYPE_BYTE | Debugger.TYPE_IN]
                  ],
                  [
                    /* GRP2BC */
                    [Debugger.INS.ROL,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH, Debugger.TYPE_IMPREG | Debugger.TYPE_CL | Debugger.TYPE_IN],
                    [Debugger.INS.ROR,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH, Debugger.TYPE_IMPREG | Debugger.TYPE_CL | Debugger.TYPE_IN],
                    [Debugger.INS.RCL,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH, Debugger.TYPE_IMPREG | Debugger.TYPE_CL | Debugger.TYPE_IN],
                    [Debugger.INS.RCR,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH, Debugger.TYPE_IMPREG | Debugger.TYPE_CL | Debugger.TYPE_IN],
                    [Debugger.INS.SHL,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH, Debugger.TYPE_IMPREG | Debugger.TYPE_CL | Debugger.TYPE_IN],
                    [Debugger.INS.SHR,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH, Debugger.TYPE_IMPREG | Debugger.TYPE_CL | Debugger.TYPE_IN],
                     Debugger.aOpDescUndefined,
                    [Debugger.INS.SAR,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE | Debugger.TYPE_BOTH, Debugger.TYPE_IMPREG | Debugger.TYPE_CL | Debugger.TYPE_IN]
                  ],
                  [
                    /* GRP2WC */
                    [Debugger.INS.ROL,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_IMPREG | Debugger.TYPE_CL | Debugger.TYPE_IN],
                    [Debugger.INS.ROR,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_IMPREG | Debugger.TYPE_CL | Debugger.TYPE_IN],
                    [Debugger.INS.RCL,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_IMPREG | Debugger.TYPE_CL | Debugger.TYPE_IN],
                    [Debugger.INS.RCR,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_IMPREG | Debugger.TYPE_CL | Debugger.TYPE_IN],
                    [Debugger.INS.SHL,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_IMPREG | Debugger.TYPE_CL | Debugger.TYPE_IN],
                    [Debugger.INS.SHR,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_IMPREG | Debugger.TYPE_CL | Debugger.TYPE_IN],
                     Debugger.aOpDescUndefined,
                    [Debugger.INS.SAR,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH, Debugger.TYPE_IMPREG | Debugger.TYPE_CL | Debugger.TYPE_IN]
                  ],
                  [
                    /* GRP3B */
                    [Debugger.INS.TEST, Debugger.TYPE_MODRM | Debugger.TYPE_BYTE  | Debugger.TYPE_IN,   Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                     Debugger.aOpDescUndefined,
                    [Debugger.INS.NOT,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH],
                    [Debugger.INS.NEG,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH],
                    [Debugger.INS.MUL,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                    [Debugger.INS.IMUL, Debugger.TYPE_MODRM | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH],
                    [Debugger.INS.DIV,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE  | Debugger.TYPE_IN],
                    [Debugger.INS.IDIV, Debugger.TYPE_MODRM | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH]
                  ],
                  [
                    /* GRP3W */
                    [Debugger.INS.TEST, Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_IN,   Debugger.TYPE_IMM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                     Debugger.aOpDescUndefined,
                    [Debugger.INS.NOT,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH],
                    [Debugger.INS.NEG,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH],
                    [Debugger.INS.MUL,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                    [Debugger.INS.IMUL, Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH],
                    [Debugger.INS.DIV,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                    [Debugger.INS.IDIV, Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH]
                  ],
                  [
                    /* GRP4B */
                    [Debugger.INS.INC,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH],
                    [Debugger.INS.DEC,  Debugger.TYPE_MODRM | Debugger.TYPE_BYTE  | Debugger.TYPE_BOTH],
                     Debugger.aOpDescUndefined,
                     Debugger.aOpDescUndefined,
                     Debugger.aOpDescUndefined,
                     Debugger.aOpDescUndefined,
                     Debugger.aOpDescUndefined,
                     Debugger.aOpDescUndefined
                  ],
                  [
                    /* GRP4W */
                    [Debugger.INS.INC,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH],
                    [Debugger.INS.DEC,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_BOTH],
                    [Debugger.INS.CALL, Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                    [Debugger.INS.CALL, Debugger.TYPE_MODRM | Debugger.TYPE_FARP  | Debugger.TYPE_IN],
                    [Debugger.INS.JMP,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                    [Debugger.INS.JMP,  Debugger.TYPE_MODRM | Debugger.TYPE_FARP  | Debugger.TYPE_IN],
                    [Debugger.INS.PUSH, Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_IN],
                     Debugger.aOpDescUndefined
                  ],
                  [ /* OP0F */ ],
                  [
                    /* GRP6 */
                    [Debugger.INS.SLDT, Debugger.TYPE_MODRM | Debugger.TYPE_WORD | Debugger.TYPE_OUT | Debugger.TYPE_80286],
                    [Debugger.INS.STR,  Debugger.TYPE_MODRM | Debugger.TYPE_WORD | Debugger.TYPE_OUT | Debugger.TYPE_80286],
                    [Debugger.INS.LLDT, Debugger.TYPE_MODRM | Debugger.TYPE_WORD | Debugger.TYPE_IN  | Debugger.TYPE_80286],
                    [Debugger.INS.LTR,  Debugger.TYPE_MODRM | Debugger.TYPE_WORD | Debugger.TYPE_IN  | Debugger.TYPE_80286],
                    [Debugger.INS.VERR, Debugger.TYPE_MODRM | Debugger.TYPE_WORD | Debugger.TYPE_IN  | Debugger.TYPE_80286],
                    [Debugger.INS.VERW, Debugger.TYPE_MODRM | Debugger.TYPE_WORD | Debugger.TYPE_IN  | Debugger.TYPE_80286],
                     Debugger.aOpDescUndefined,
                     Debugger.aOpDescUndefined
                  ],
                  [
                    /* GRP7 */
                    [Debugger.INS.SGDT, Debugger.TYPE_MODRM | Debugger.TYPE_WORD | Debugger.TYPE_OUT | Debugger.TYPE_80286],
                    [Debugger.INS.SIDT, Debugger.TYPE_MODRM | Debugger.TYPE_WORD | Debugger.TYPE_OUT | Debugger.TYPE_80286],
                    [Debugger.INS.LGDT, Debugger.TYPE_MODRM | Debugger.TYPE_WORD | Debugger.TYPE_IN  | Debugger.TYPE_80286],
                    [Debugger.INS.LIDT, Debugger.TYPE_MODRM | Debugger.TYPE_WORD | Debugger.TYPE_IN  | Debugger.TYPE_80286],
                    [Debugger.INS.SMSW, Debugger.TYPE_MODRM | Debugger.TYPE_WORD | Debugger.TYPE_OUT | Debugger.TYPE_80286],
                     Debugger.aOpDescUndefined,
                    [Debugger.INS.LMSW, Debugger.TYPE_MODRM | Debugger.TYPE_WORD | Debugger.TYPE_IN  | Debugger.TYPE_80286],
                     Debugger.aOpDescUndefined
                  ],
                  [
                    /* GRP8 */
                     Debugger.aOpDescUndefined,
                     Debugger.aOpDescUndefined,
                     Debugger.aOpDescUndefined,
                     Debugger.aOpDescUndefined,
                    [Debugger.INS.BT,  Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_IN  | Debugger.TYPE_80386, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.BTS, Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_OUT | Debugger.TYPE_80386, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.BTR, Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_OUT | Debugger.TYPE_80386, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN],
                    [Debugger.INS.BTC, Debugger.TYPE_MODRM | Debugger.TYPE_VWORD | Debugger.TYPE_OUT | Debugger.TYPE_80386, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_IN]
                  ]
                ];
            
                Debugger.INT_FUNCS = {
                    0x13: {
                        0x00: "disk reset",
                        0x01: "get status",
                        0x02: "read drive %DL (%CH:%DH:%CL,%AL) into %ES:%BX",
                        0x03: "write drive %DL (%CH:%DH:%CL,%AL) from %ES:%BX",
                        0x04: "verify drive %DL (%CH:%DH:%CL,%AL)",
                        0x05: "format drive %DL using %ES:%BX",
                        0x08: "read drive %DL parameters into %ES:%DI",
                        0x15: "get drive %DL DASD type",
                        0x16: "get drive %DL change line status",
                        0x17: "set drive %DL DASD type",
                        0x18: "set drive %DL media type"
                    },
                    0x15: {
                        0x80: "open device",
                        0x81: "close device",
                        0x82: "program termination",
                        0x83: "wait %CX:%DXus for event",
                        0x84: "joystick support",
                        0x85: "SYSREQ pressed",
                        0x86: "wait %CX:%DXus",
                        0x87: "move block (%CX words)",
                        0x88: "get extended memory size",
                        0x89: "processor to virtual mode",
                        0x90: "device busy loop",
                        0x91: "interrupt complete flag set"
                    },
                    0x21: {
                        0x00: "terminate program",
                        0x01: "read character (AL) from stdin with echo",
                        0x02: "write character #%DL to stdout",
                        0x03: "read character (AL) from stdaux",                                // eg, COM1
                        0x04: "write character #%DL to stdaux",                                 // eg, COM1
                        0x05: "write character #%DL to stdprn",                                 // eg, LPT1
                        0x06: "direct console output (input if %DL=FF)",
                        0x07: "direct console input without echo",
                        0x08: "read character (AL) from stdin without echo",
                        0x09: "write string $%DS:%DX to stdout",
                        0x0A: "buffered input (DS:DX)",                                         // byte 0 is maximum chars, byte 1 is number of previous characters, byte 2 is number of characters read
                        0x0B: "get stdin status",
                        0x0C: "flush buffer and read stdin",                                    // AL is a function # (0x01, 0x06, 0x07, 0x08, or 0x0A)
                        0x0D: "disk reset",
                        0x0E: "select default drive %DL",                                       // returns # of available drives in AL
                        0x0F: "open file using FCB ^%DS:%DX",                                   // DS:DX -> unopened File Control Block
                        0x10: "close file using FCB ^%DS:%DX",
                        0x11: "find first matching file using FCB ^%DS:%DX",
                        0x12: "find next matching file using FCB ^%DS:%DX",
                        0x13: "delete file using FCB ^%DS:%DX",
                        0x14: "sequential read from file using FCB ^%DS:%DX",
                        0x15: "sequential write to file using FCB ^%DS:%DX",
                        0x16: "create or truncate file using FCB ^%DS:%DX",
                        0x17: "rename file using FCB ^%DS:%DX",
                        0x19: "get current default drive (AL)",
                        0x1A: "set disk transfer area (DTA=%DS:%DX)",
                        0x1B: "get allocation information for default drive",
                        0x1C: "get allocation information for specific drive %DL",
                        0x1F: "get drive parameter block for default drive",
                        0x21: "read random record from file using FCB ^%DS:%DX",
                        0x22: "write random record to file using FCB ^%DS:%DX",
                        0x23: "get file size using FCB ^%DS:%DX",
                        0x24: "set random record number for FCB ^%DS:%DX",
                        0x25: "set address %DS:%DX of interrupt vector %AL",
                        0x26: "create new PSP at segment %DX",
                        0x27: "random block read from file using FCB ^%DS:%DX",
                        0x28: "random block write to file using FCB ^%DS:%DX",
                        0x29: "parse filename $%DS:%SI into FCB %ES:%DI using %AL",
                        0x2A: "get system date (year=CX, mon=DH, day=DL)",
                        0x2B: "set system date (year=%CX, mon=%DH, day=%DL)",
                        0x2C: "get system time (hour=CH, min=CL, sec=DH, 100ths=DL)",
                        0x2D: "set system time (hour=%CH, min=%CL, sec=%DH, 100ths=%DL)",
                        0x2E: "set verify flag %AL",
                        0x2F: "get disk transfer area (DTA=ES:BX)",                             // DOS 2.00+
                        0x30: "get DOS version (AL=major, AH=minor)",
                        0x31: "terminate and stay resident",
                        0x32: "get drive parameter block (DPB=DS:BX) for drive %DL",
                        0x33: "extended break check",
                        0x34: "get address (ES:BX) of InDOS flag",
                        0x35: "get address (ES:BX) of interrupt vector %AL",
                        0x36: "get free disk space of drive %DL",
                        0x37: "get(0)/set(1) switch character %DL (%AL)",
                        0x38: "get country-specific information",
                        0x39: "create subdirectory $%DS:%DX",
                        0x3A: "remove subdirectory $%DS:%DX",
                        0x3B: "set current directory $%DS:%DX",
                        0x3C: "create or truncate file $%DS:%DX with attributes %CX",
                        0x3D: "open file $%DS:%DX with mode %AL",
                        0x3E: "close file %BX",
                        0x3F: "read %CX bytes from file %BX into buffer %DS:%DX",
                        0x40: "write %CX bytes to file %BX from buffer %DS:%DX",
                        0x41: "delete file $%DS:%DX",
                        0x42: "set position %CX:%DX of file %BX relative to %AL",
                        0x43: "get(0)/set(1) attributes %CX of file $%DS:%DX (%AL)",
                        0x44: "get device information (IOCTL)",
                        0x45: "duplicate file handle %BX",
                        0x46: "force file handle %CX to duplicate file handle %BX",
                        0x47: "get current directory (DS:SI) for drive %DL",
                        0x48: "allocate memory segment with %BX paragraphs",
                        0x49: "free memory segment %ES",
                        0x4A: "resize memory segment %ES to %BX paragraphs",
                        0x4B: "load program $%DS:%DX using parameter block %ES:%BX",
                        0x4C: "terminate with return code %AL",
                        0x4D: "get return code (AL)",
                        0x4E: "find first matching file $%DS:%DX with attributes %CX",
                        0x4F: "find next matching file",
                        0x50: "set current PSP %BX",
                        0x51: "get current PSP (bx)",
                        0x52: "get system variables (ES:BX)",
                        0x53: "translate BPB %DS:%SI to DPB (ES:BP)",
                        0x54: "get verify flag (AL)",
                        0x55: "create child PSP at segment %DX",
                        0x56: "rename file $%DS:%DX to $%ES:%DI",
                        0x57: "get(0)/set(1) file %BX date %DX and time %CX (%AL)",
                        0x58: "get(0)/set(1) memory allocation strategy (%AL)",                 // DOS 2.11+
                        0x59: "get extended error information",                                 // DOS 3.00+
                        0x5A: "create temporary file $%DS:%DX with attributes %CX",             // DOS 3.00+
                        0x5B: "create file $%DS:%DX with attributes %CX",                       // DOS 3.00+ (doesn't truncate existing files like 0x3C)
                        0x5C: "lock(0)/unlock(1) file %BX region %CX:%DX length %SI:%DI (%AL)", // DOS 3.00+
                        0x5D: "critical error information (%AL)",                               // DOS 3.00+ (undocumented)
                        0x60: "get fully-qualified filename from $%DS:%SI",                     // DOS 3.00+ (undocumented)
                        0x63: "get lead byte table (%AL)",                                      // DOS 2.25 and 3.20+
                        0x6C: "extended open file $%DS:%SI"                                     // DOS 4.00+
                    }
                };
            
                /**
                 * initBus(bus, cpu, dbg)
                 *
                 * @this {Debugger}
                 * @param {Computer} cmp
                 * @param {Bus} bus
                 * @param {X86CPU} cpu
                 * @param {Debugger} dbg
                 */
                Debugger.prototype.initBus = function(cmp, bus, cpu, dbg)
                {
                    this.bus = bus;
                    this.cpu = cpu;
                    this.cmp = cmp;
                    this.fdc = cmp.getComponentByType("FDC");
                    this.hdc = cmp.getComponentByType("HDC");
                    if (MAXDEBUG) this.chipset = cmp.getComponentByType("ChipSet");
            
                    this.cchAddr = bus.getWidth() >> 2;
                    this.maskAddr = bus.nBusLimit;
            
                    this.aaOpDescs = Debugger.aaOpDescs;
                    if (this.cpu.model >= X86.MODEL_80186) {
                        this.aaOpDescs = Debugger.aaOpDescs.slice();
                        this.aaOpDescs[0x0F] = Debugger.aOpDescUndefined;
                        if (this.cpu.model >= X86.MODEL_80286) {
                            this.aaOpDescs[0x0F] = Debugger.aOpDesc0F;
                            if (I386 && this.cpu.model >= X86.MODEL_80386) {
                                this.cchReg = 8;
                                this.maskReg = 0xffffffff|0;
                            }
                        }
                    }
            
                    this.messageDump(Messages.BUS,  function onDumpBus(s)  { dbg.dumpBus(s); });
                    this.messageDump(Messages.DESC, function onDumpDesc(s) { dbg.dumpDesc(s); });
                    this.messageDump(Messages.TSS,  function onDumpTSS(s)  { dbg.dumpTSS(s); });
                    this.messageDump(Messages.DOS,  function onDumpDOS(s)  { dbg.dumpDOS(s); });
            
                    this.setReady();
                };
            
                /**
                 * setBinding(sHTMLType, sBinding, control)
                 *
                 * @this {Debugger}
                 * @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
                 * @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "debugInput")
                 * @param {Object} control is the HTML control DOM object (eg, HTMLButtonElement)
                 * @return {boolean} true if binding was successful, false if unrecognized binding request
                 */
                Debugger.prototype.setBinding = function(sHTMLType, sBinding, control)
                {
                    var dbg = this;
                    switch (sBinding) {
            
                    case "debugInput":
                        this.bindings[sBinding] = control;
                        this.controlDebug = control;
                        /*
                         * For halted machines, this is fine, but for auto-start machines, it can be annoying.
                         *
                         *      control.focus();
                         */
                        control.onkeydown = function onKeyDownDebugInput(event) {
                            var sInput;
                            if (event.keyCode == Keyboard.KEYCODE.CR) {
                                sInput = control.value;
                                control.value = "";
                                var a = dbg.parseCommand(sInput, true);
                                for (var s in a) dbg.doCommand(a[s]);
                            }
                            else if (event.keyCode == Keyboard.KEYCODE.ESC) {
                                control.value = sInput = "";
                            }
                            else {
                                if (event.keyCode == Keyboard.KEYCODE.UP) {
                                    if (dbg.iPrevCmd < dbg.aPrevCmds.length - 1) {
                                        sInput = dbg.aPrevCmds[++dbg.iPrevCmd];
                                    }
                                }
                                else if (event.keyCode == Keyboard.KEYCODE.DOWN) {
                                    if (dbg.iPrevCmd > 0) {
                                        sInput = dbg.aPrevCmds[--dbg.iPrevCmd];
                                    } else {
                                        sInput = "";
                                        dbg.iPrevCmd = -1;
                                    }
                                }
                                if (sInput != null) {
                                    var cch = sInput.length;
                                    control.value = sInput;
                                    control.setSelectionRange(cch, cch);
                                }
                            }
                            if (sInput != null && event.preventDefault) event.preventDefault();
                        };
                        return true;
            
                    case "debugEnter":
                        this.bindings[sBinding] = control;
                        web.onClickRepeat(
                            control,
                            500, 100,
                            function onClickDebugEnter(fRepeat) {
                                if (dbg.controlDebug) {
                                    var sInput = dbg.controlDebug.value;
                                    dbg.controlDebug.value = "";
                                    var a = dbg.parseCommand(sInput, true);
                                    for (var s in a) dbg.doCommand(a[s]);
                                    return true;
                                }
                                if (DEBUG) dbg.log("no debugger input buffer");
                                return false;
                            }
                        );
                        return true;
            
                    case "step":
                        this.bindings[sBinding] = control;
                        web.onClickRepeat(
                            control,
                            500, 100,
                            function onClickStep(fRepeat) {
                                var fCompleted = false;
                                if (!dbg.isBusy(true)) {
                                    dbg.setBusy(true);
                                    fCompleted = dbg.stepCPU(fRepeat? 1 : 0);
                                    dbg.setBusy(false);
                                }
                                return fCompleted;
                            }
                        );
                        return true;
            
                    default:
                        break;
                    }
                    return false;
                };
            
                /**
                 * setFocus()
                 *
                 * @this {Debugger}
                 */
                Debugger.prototype.setFocus = function()
                {
                    if (this.controlDebug) this.controlDebug.focus();
                };
            
                /**
                 * getSegment(sel)
                 *
                 * If the selector matches that of any of the CPU segment registers, then return the CPU's segment
                 * register, instead of creating our own dummy segment register.  This makes it possible for us to
                 * see what the CPU is seeing at certain critical junctures, such as after an LMSW instruction has
                 * switched the processor from real to protected mode.  Actually loading the selector from the GDT/LDT
                 * should be done only as a last resort.
                 *
                 * @param {number|null|undefined} sel
                 * @return {X86Seg|null} seg
                 */
                Debugger.prototype.getSegment = function(sel)
                {
                    if (sel === this.cpu.getCS()) return this.cpu.segCS;
                    if (sel === this.cpu.getDS()) return this.cpu.segDS;
                    if (sel === this.cpu.getES()) return this.cpu.segES;
                    if (sel === this.cpu.getSS()) return this.cpu.segSS;
                    if (I386 && this.cpu.model >= X86.MODEL_80386) {
                        if (sel === this.cpu.getFS()) return this.cpu.segFS;
                        if (sel === this.cpu.getGS()) return this.cpu.segGS;
                    }
                    if (this.nSuppressBreaks) return null;
                    var seg = new X86Seg(this.cpu, X86Seg.ID.DEBUG, "DBG");
                    /*
                     * Note the load() function's fSuppress parameter, which the Debugger should ALWAYS set to true
                     * to avoid triggering a fault.
                     *
                     * TODO: Confirm that it's OK for getSegment() to drop any error from seg.load() on the floor....
                     */
                    seg.load(sel, true);
                    return seg;
                };
            
                /**
                 * getAddr(dbgAddr, fWrite, cb)
                 *
                 * @this {Debugger}
                 * @param {{DbgAddr}} dbgAddr
                 * @param {boolean} [fWrite]
                 * @param {number} [cb] is number of bytes to check (1, 2 or 4); default is 1
                 * @return {number} is the corresponding linear address, or X86.ADDR_INVALID
                 */
                Debugger.prototype.getAddr = function(dbgAddr, fWrite, cb)
                {
                    /*
                     * Some addresses (eg, breakpoint addresses) save their original linear address in dbgAddr.addr,
                     * so we want to use that if it's there, but otherwise, dbgAddr is assumed to be a segmented address
                     * whose linear address must always be (re)calculated based on current machine state (mode, active
                     * descriptor tables, etc).
                     */
                    var addr = dbgAddr.addr;
                    if (addr == null) {
                        addr = X86.ADDR_INVALID;
                        var seg = this.getSegment(dbgAddr.sel);
                        if (seg) {
                            if (!fWrite) {
                                addr = seg.checkRead(dbgAddr.off, cb || 1, true);
                            } else {
                                addr = seg.checkWrite(dbgAddr.off, cb || 1, true);
                            }
                            dbgAddr.addr = addr;
                        }
                    }
                    return addr;
                };
            
                /**
                 * getByte(dbgAddr, inc)
                 *
                 * We must route all our memory requests through the CPU now, in case paging is enabled.
                 *
                 * @this {Debugger}
                 * @param {{DbgAddr}} dbgAddr
                 * @param {number} [inc]
                 * @return {number}
                 */
                Debugger.prototype.getByte = function(dbgAddr, inc)
                {
                    var b = 0xff;
                    var addr = this.getAddr(dbgAddr, false, 1);
                    if (addr !== X86.ADDR_INVALID) {
                        b = this.cpu.probeAddr(addr) | 0;
                        if (inc) this.incAddr(dbgAddr, inc);
                    }
                    return b;
                };
            
                /**
                 * getWord(dbgAddr, fAdvance)
                 *
                 * @this {Debugger}
                 * @param {{DbgAddr}} dbgAddr
                 * @param {boolean} [fAdvance]
                 * @return {number}
                 */
                Debugger.prototype.getWord = function(dbgAddr, fAdvance)
                {
                    if (!dbgAddr.fData32) {
                        return this.getShort(dbgAddr, fAdvance? 2 : 0);
                    }
                    return this.getLong(dbgAddr, fAdvance? 4 : 0);
                };
            
                /**
                 * getShort(dbgAddr, inc)
                 *
                 * @this {Debugger}
                 * @param {{DbgAddr}} dbgAddr
                 * @param {number} [inc]
                 * @return {number}
                 */
                Debugger.prototype.getShort = function(dbgAddr, inc)
                {
                    var w = 0xffff;
                    var addr = this.getAddr(dbgAddr, false, 2);
                    if (addr !== X86.ADDR_INVALID) {
                        w = this.cpu.probeAddr(addr) | (this.cpu.probeAddr(addr + 1) << 8);
                        if (inc) this.incAddr(dbgAddr, inc);
                    }
                    return w;
                };
            
                /**
                 * getLong(dbgAddr, inc)
                 *
                 * @this {Debugger}
                 * @param {{DbgAddr}} dbgAddr
                 * @param {number} [inc]
                 * @return {number}
                 */
                Debugger.prototype.getLong = function(dbgAddr, inc)
                {
                    var l = -1;
                    var addr = this.getAddr(dbgAddr, false, 4);
                    if (addr !== X86.ADDR_INVALID) {
                        l = this.cpu.probeAddr(addr) | (this.cpu.probeAddr(addr + 1) << 8) | (this.cpu.probeAddr(addr + 2) << 16) | (this.cpu.probeAddr(addr + 3) << 24);
                        if (inc) this.incAddr(dbgAddr, inc);
                    }
                    return l;
                };
            
                /**
                 * setByte(dbgAddr, b, inc)
                 *
                 * @this {Debugger}
                 * @param {{DbgAddr}} dbgAddr
                 * @param {number} b
                 * @param {number} [inc]
                 */
                Debugger.prototype.setByte = function(dbgAddr, b, inc)
                {
                    var addr = this.getAddr(dbgAddr, true, 1);
                    if (addr !== X86.ADDR_INVALID) {
                        this.cpu.setByte(addr, b);
                        if (inc) this.incAddr(dbgAddr, inc);
                        this.cpu.updateCPU();
                    }
                };
            
                /**
                 * setShort(dbgAddr, w, inc)
                 *
                 * @this {Debugger}
                 * @param {{DbgAddr}} dbgAddr
                 * @param {number} w
                 * @param {number} [inc]
                 */
                Debugger.prototype.setShort = function(dbgAddr, w, inc)
                {
                    var addr = this.getAddr(dbgAddr, true, 2);
                    if (addr !== X86.ADDR_INVALID) {
                        this.cpu.setShort(addr, w);
                        if (inc) this.incAddr(dbgAddr, inc);
                        this.cpu.updateCPU();
                    }
                };
            
                /**
                 * newAddr(off, sel, addr, fData32, fAddr32)
                 *
                 * @this {Debugger}
                 * @param {number|null|undefined} [off] (default is zero)
                 * @param {number|null|undefined} [sel] (default is undefined)
                 * @param {number|null|undefined} [addr] (default is undefined)
                 * @param {boolean} [fData32] (default is false)
                 * @param {boolean} [fAddr32] (default is false)
                 * @return {{DbgAddr}}
                 */
                Debugger.prototype.newAddr = function(off, sel, addr, fData32, fAddr32)
                {
                    if (fData32 === undefined) fData32 = (this.cpu && this.cpu.segCS.dataSize == 4);
                    if (fAddr32 === undefined) fAddr32 = (this.cpu && this.cpu.segCS.addrSize == 4);
                    return {off: off || 0, sel: sel, addr: addr, fTempBreak: false, fData32: fData32 || false, fAddr32: fAddr32 || false};
                };
            
                /**
                 * packAddr(dbgAddr)
                 *
                 * @this {Debugger}
                 * @param {{DbgAddr}} dbgAddr
                 * @return {Array}
                 */
                Debugger.prototype.packAddr = function(dbgAddr)
                {
                    return [dbgAddr.off, dbgAddr.sel, dbgAddr.addr, dbgAddr.fTempBreak, dbgAddr.fData32, dbgAddr.fAddr32, dbgAddr.cOverrides, dbgAddr.fComplete];
                };
            
                /**
                 * unpackAddr(aAddr)
                 *
                 * @this {Debugger}
                 * @param {Array} aAddr
                 * @return {{DbgAddr}}
                 */
                Debugger.prototype.unpackAddr = function(aAddr)
                {
                    return {off: aAddr[0], sel: aAddr[1], addr: aAddr[2], fTempBreak: aAddr[3], fData32: aAddr[4], fAddr32: aAddr[5], cOverrides: aAddr[6], fComplete: aAddr[7]};
                };
            
                /**
                 * checkLimit(dbgAddr)
                 *
                 * @this {Debugger}
                 * @param {{DbgAddr}} dbgAddr
                 */
                Debugger.prototype.checkLimit = function(dbgAddr)
                {
                    if (dbgAddr.sel != null) {
                        var seg = this.getSegment(dbgAddr.sel);
                        if (!seg || dbgAddr.off > seg.limit) {
                            /*
                             * TODO: This automatic wrap-to-zero is OK for normal segments, but for expand-down segments, not so much.
                             */
                            dbgAddr.off = 0;
                            dbgAddr.addr = null;
                        }
                    }
                };
            
                /**
                 * incAddr(dbgAddr, inc)
                 *
                 * @this {Debugger}
                 * @param {{DbgAddr}} dbgAddr
                 * @param {number} [inc] contains value to increment dbgAddr by (default is 1)
                 */
                Debugger.prototype.incAddr = function(dbgAddr, inc)
                {
                    inc = inc || 1;
                    if (dbgAddr.addr != null) {
                        dbgAddr.addr += inc;
                    }
                    if (dbgAddr.sel != null) {
                        dbgAddr.off += inc;
                        this.checkLimit(dbgAddr);
                    }
                };
            
                /**
                 * hexOffset(off, sel, fAddr32)
                 *
                 * @this {Debugger}
                 * @param {number|null} [off]
                 * @param {number|null} [sel]
                 * @param {boolean} [fAddr32] is true for 32-bit ADDRESS size
                 * @return {string} the hex representation of off (or sel:off)
                 */
                Debugger.prototype.hexOffset = function(off, sel, fAddr32)
                {
                    if (sel != null) {
                        return str.toHex(sel, 4) + ":" + str.toHex(off, (off & ~0xffff) || fAddr32? 8 : 4);
                    }
                    return str.toHex(off);
                };
            
                /**
                 * hexAddr(dbgAddr)
                 *
                 * @this {Debugger}
                 * @param {{DbgAddr}} dbgAddr
                 * @return {string} the hex representation of the address
                 */
                Debugger.prototype.hexAddr = function(dbgAddr)
                {
                    return dbgAddr.sel == null? ("%" + str.toHex(dbgAddr.addr)) : this.hexOffset(dbgAddr.off, dbgAddr.sel, dbgAddr.fAddr32);
                };
            
                /**
                 * getSZ(dbgAddr, cchMax)
                 *
                 * Get zero-terminated (aka "ASCIIZ") string from dbgAddr.  It also stops at the first '$', in case this is
                 * a '$'-terminated string -- mainly because I'm lazy and didn't feel like writing a separate get() function.
                 * Yes, a zero-terminated string containing a '$' will be prematurely terminated, and no, I don't care.
                 *
                 * @this {Debugger}
                 * @param {{DbgAddr}} dbgAddr
                 * @param {number} [cchMax] (default is 256)
                 * @return {string} (and dbgAddr advanced past the terminating zero)
                 */
                Debugger.prototype.getSZ = function(dbgAddr, cchMax)
                {
                    var s = "";
                    cchMax = cchMax || 256;
                    while (s.length < cchMax) {
                        var b = this.getByte(dbgAddr, 1);
                        if (!b || b == 0x24) break;
                        s += (b >= 32 && b < 128? String.fromCharCode(b) : ".");
                    }
                    return s;
                };
            
                /**
                 * dumpDOS(s)
                 *
                 * This dumps DOS MCBs (Memory Control Blocks).
                 *
                 * @this {Debugger}
                 * @param {string} [s]
                 */
                Debugger.prototype.dumpDOS = function(s)
                {
                    if (!s) {
                        this.println("no MCB");
                        return;
                    }
            
                    this.println("dumpDOS(" + s + ")");
            
                    /*
                     * If s is provided and str.parseInt(s) succeeds, then we assume it represents a starting
                     * MCB (Memory Control Block) segment, and we dump the corresponding blocks.
                     */
                    var sel = this.parseValue(s);
                    while (sel) {
                        var dbgAddr = this.newAddr(0, sel);
                        var bSig = this.getByte(dbgAddr, 1);
                        var wPID = this.getShort(dbgAddr, 2);
                        var wParas = this.getShort(dbgAddr, 5);
                        if (bSig != 0x4D && bSig != 0x5A) break;
                        this.println(this.hexOffset(0, sel) + ": '" + String.fromCharCode(bSig) + "' PID=" + str.toHexWord(wPID) + " LEN=" + str.toHexWord(wParas) + ' "' + this.getSZ(dbgAddr, 8) + '"');
                        sel += 1 + wParas;
                    }
                };
            
                Debugger.aTSSFields = {
                    "PREV_TSS":     0x00,
                    "CPL0_SP":      0x02,
                    "CPL0_SS":      0x04,
                    "CPL1_SP":      0x06,
                    "CPL1_SS":      0x08,
                    "CPL2_SP":      0x0a,
                    "CPL2_SS":      0x0c,
                    "TASK_IP":      0x0e,
                    "TASK_PS":      0x10,
                    "TASK_AX":      0x12,
                    "TASK_CX":      0x14,
                    "TASK_DX":      0x16,
                    "TASK_BX":      0x18,
                    "TASK_SP":      0x1a,
                    "TASK_BP":      0x1c,
                    "TASK_SI":      0x1e,
                    "TASK_DI":      0x20,
                    "TASK_ES":      0x22,
                    "TASK_CS":      0x24,
                    "TASK_SS":      0x26,
                    "TASK_DS":      0x28,
                    "TASK_LDT":     0x2a
                };
            
                /**
                 * dumpBus(s)
                 *
                 * This dumps Bus allocations.
                 *
                 * @this {Debugger}
                 * @param {string} [s]
                 */
                Debugger.prototype.dumpBus = function(s)
                {
                    this.println("id       physaddr   blkaddr   used    size    type");
                    this.println("-------- ---------  --------  ------  ------  ----");
                    for (var i = 0; i < this.cpu.aMemBlocks.length; i++) {
                        var block = this.cpu.aBusBlocks[i];
                        if (block.type === Memory.TYPE.NONE) continue;
                        this.println(str.toHex(block.id) + " %" + str.toHex(i << this.cpu.nBlockShift) + ": " + str.toHex(block.addr) + "  " + str.toHexWord(block.used) + "  " + str.toHexWord(block.size) + "  " + Memory.TYPE.NAMES[block.type]);
                    }
                };
            
                Debugger.SYSDESCS = {
                    0x0100: ["tss286",       false],
                    0x0200: ["ldt",          false],
                    0x0300: ["busy tss286",  false],
                    0x0400: ["call gate",    true],
                    0x0500: ["task gate",    true],
                    0x0600: ["int gate286",  true],
                    0x0700: ["trap gate286", true],
                    0x0900: ["tss386",       false],
                    0x0B00: ["busy tss386",  false],
                    0x0C00: ["call gate386", true],
                    0x0E00: ["int gate386",  true],
                    0x0F00: ["trap gate386", true]
                };
            
                /**
                 * dumpDesc(s)
                 *
                 * This dumps a descriptor for the given selector.
                 *
                 * @this {Debugger}
                 * @param {string} [s]
                 */
                Debugger.prototype.dumpDesc = function(s)
                {
                    if (!s) {
                        this.println("no selector");
                        return;
                    }
            
                    var sel = this.parseValue(s);
                    if (sel === undefined) {
                        this.println("invalid selector: " + s);
                        return;
                    }
            
                    var seg = this.getSegment(sel);
                    this.println("dumpDesc(" + str.toHexWord(seg? seg.sel : sel) + "): %" + str.toHex(seg? seg.addrDesc : null, this.cchAddr));
                    if (!seg) return;
            
                    var sType;
                    var fGate = false;
                    if (seg.type & X86.DESC.ACC.TYPE.SEG) {
                        if (seg.type & X86.DESC.ACC.TYPE.CODE) {
                            sType = "code";
                            sType += (seg.type & X86.DESC.ACC.TYPE.READABLE)? ",readable" : ",execonly";
                            if (seg.type & X86.DESC.ACC.TYPE.CONFORMING) sType += ",conforming";
                        }
                        else {
                            sType = "data";
                            sType += (seg.type & X86.DESC.ACC.TYPE.WRITABLE)? ",writable" : ",readonly";
                            if (seg.type & X86.DESC.ACC.TYPE.EXPDOWN) sType += ",expdown";
                        }
                        if (seg.type & X86.DESC.ACC.TYPE.ACCESSED) sType += ",accessed";
                    }
                    else {
                        var sysDesc = Debugger.SYSDESCS[seg.type];
                        if (sysDesc) {
                            sType = sysDesc[0];
                            fGate = sysDesc[1];
                        }
                    }
            
                    if (sType && !(seg.acc & X86.DESC.ACC.PRESENT)) sType += ",not present";
            
                    var sDump;
                    if (fGate) {
                        sDump = "seg=" + str.toHexWord(seg.base & 0xffff) + " off=" + str.toHexWord(seg.limit);
                    } else {
                        sDump = "base=" + str.toHex(seg.base, this.cchAddr) + " limit=" + this.getLimitString(seg.limit);
                    }
                    /*
                     * When we dump the EXT word, we mask off the LIMIT1619 and BASE2431 bits, because those have already
                     * been incorporated into the limit and base properties of the segment register; all we care about here
                     * are whether EXT contains any of the AVAIL (0x10), BIG (0x40) or LIMITPAGES (0x80) bits.
                     */
                    this.println(sDump + " type=" + str.toHexByte(seg.type >> 8) + " (" + sType + ")" + " ext=" + str.toHexWord(seg.ext & ~(X86.DESC.EXT.LIMIT1619 | X86.DESC.EXT.BASE2431)) + " dpl=" + str.toHexByte(seg.dpl));
                };
            
                /**
                 * dumpHistory(sCount, cLines)
                 *
                 * @this {Debugger}
                 * @param {string} [sCount] is the number of instructions to rewind to (default is 10)
                 * @param {number} [cLines] is the number of instructions to print (default is, again, 10)
                 */
                Debugger.prototype.dumpHistory = function(sCount, cLines)
                {
                    var sMore = "";
                    cLines = cLines || 10;
                    var cHistory = 0;
                    var iHistory = this.iOpcodeHistory;
                    var aHistory = this.aOpcodeHistory;
                    if (aHistory.length) {
                        var n = (sCount === undefined? this.nextHistory : +sCount);
                        if (isNaN(n))
                            n = cLines;
                        else
                            sMore = "more ";
                        if (n > aHistory.length) {
                            this.println("note: only " + aHistory.length + " available");
                            n = aHistory.length;
                        }
                        iHistory -= n;
                        if (iHistory < 0) {
                            if (aHistory[aHistory.length - 1][1] != null) {
                                iHistory += aHistory.length;
                            } else {
                                n = iHistory + n;
                                iHistory = 0;
                            }
                        }
                        if (sCount !== undefined) {
                            this.println(n + " instructions earlier:");
                        }
                        /*
                         * TODO: The following is necessary to prevent dumpHistory() from causing additional (or worse, recursive)
                         * faults due to segmented addresses that are no longer valid, but the only alternative is to dramatically
                         * increase the amount of memory used to store instruction history (eg, storing copies of all the instruction
                         * bytes alongside the execution addresses).
                         *
                         * For now, we're living dangerously, so that our history dumps actually work.
                         *
                         *      this.nSuppressBreaks++;
                         *
                         * If you re-enable this protection, be sure to re-enable the decrement below, too.
                         */
                        var fData32 = null, fAddr32 = null;
                        while (cLines > 0 && iHistory != this.iOpcodeHistory) {
                            var dbgAddr = aHistory[iHistory++];
                            if (dbgAddr.sel == null) break;
                            /*
                             * We must create a new dbgAddr from the address in aHistory, because dbgAddr was
                             * a reference, not a copy, and we don't want getInstruction() modifying the original.
                             */
                            dbgAddr = this.newAddr(dbgAddr.off, dbgAddr.sel, dbgAddr.addr, fData32 == null? dbgAddr.fData32 : fData32, fAddr32 == null? dbgAddr.fAddr32 : fAddr32);
                            this.println(this.getInstruction(dbgAddr, "history", n--));
                            /*
                             * If there were OPERAND or ADDRESS overrides on the previous instruction, getInstruction()
                             * will have automatically disassembled additional bytes, so skip additional history entries.
                             */
                            if (!dbgAddr.cOverrides) {
                                fData32 = fAddr32 = null;
                            } else {
                                iHistory += dbgAddr.cOverrides; cLines -= dbgAddr.cOverrides; n -= dbgAddr.cOverrides;
                                fData32 = dbgAddr.fData32; fAddr32 = dbgAddr.fAddr32;
                            }
                            if (iHistory >= aHistory.length) iHistory = 0;
                            this.nextHistory = n;
                            cHistory++;
                            cLines--;
                        }
                        /*
                         * See comments above.
                         *
                         *      this.nSuppressBreaks--;
                         */
                    }
                    if (!cHistory) {
                        this.println("no " + sMore + "history available");
                        this.nextHistory = undefined;
                    }
                };
            
                /**
                 * dumpTSS(s)
                 *
                 * This dumps a TSS using the given selector.  If none is specified, the current TR is used.
                 *
                 * @this {Debugger}
                 * @param {string} [s]
                 */
                Debugger.prototype.dumpTSS = function(s)
                {
                    var seg;
                    if (!s) {
                        seg = this.cpu.segTSS;
                    } else {
                        var sel = this.parseValue(s);
                        if (sel === undefined) {
                            this.println("invalid task selector: " + s);
                            return;
                        }
                        seg = this.getSegment(sel);
                    }
            
                    this.println("dumpTSS(" + str.toHexWord(seg? seg.sel : sel) + "): %" + str.toHex(seg? seg.base : null, this.cchAddr));
                    if (!seg) return;
            
                    var sDump = "";
                    for (var sField in Debugger.aTSSFields) {
                        var off = Debugger.aTSSFields[sField];
                        var ch = (sField.length < 8? ' ' : '');
                        var addr = seg.base + off;
                        var w = this.cpu.probeAddr(addr) | (this.cpu.probeAddr(addr + 1) << 8);
                        if (sDump) sDump += '\n';
                        sDump += str.toHexWord(off) + " " + sField + ": " + ch + str.toHexWord(w);
                    }
            
                    this.println(sDump);
                };
            
                /**
                 * messageInit(sEnable)
                 *
                 * @this {Debugger}
                 * @param {string|undefined} sEnable contains zero or more message categories to enable, separated by '|'
                 */
                Debugger.prototype.messageInit = function(sEnable)
                {
                    this.dbg = this;
                    this.bitsMessage = this.bitsWarning = Messages.WARN;
                    this.sMessagePrev = null;
                    this.afnDumpers = [];
                    var aEnable = this.parseCommand(sEnable.replace("keys","key").replace("kbd","keyboard"), false, '|');
                    if (aEnable.length) {
                        for (var m in Debugger.MESSAGES) {
                            if (usr.indexOf(aEnable, m) >= 0) {
                                this.bitsMessage |= Debugger.MESSAGES[m];
                                this.println(m + " messages enabled");
                            }
                        }
                    }
                    this.historyInit();     // call this just in case Messages.INT was turned on
                };
            
                /**
                 * messageDump(bitMessage, fnDumper)
                 *
                 * @this {Debugger}
                 * @param {number} bitMessage is one Messages category flag
                 * @param {function(string)} fnDumper is a function the Debugger can use to dump data for that category
                 * @return {boolean} true if successfully registered, false if not
                 */
                Debugger.prototype.messageDump = function(bitMessage, fnDumper)
                {
                    for (var m in Debugger.MESSAGES) {
                        if (bitMessage == Debugger.MESSAGES[m]) {
                            this.afnDumpers[m] = fnDumper;
                            return true;
                        }
                    }
                    return false;
                };
            
                /**
                 * getRegIndex(sReg, off)
                 *
                 * @this {Debugger}
                 * @param {string} sReg
                 * @param {number} [off] optional offset into sReg
                 * @return {number} register index, or -1 if not found
                 */
                Debugger.prototype.getRegIndex = function(sReg, off) {
                    off = off || 0;
                    var i = usr.indexOf(Debugger.REGS, sReg.substr(off, 3).toUpperCase());
                    if (i < 0) i = usr.indexOf(Debugger.REGS, sReg.substr(off, 2).toUpperCase());
                    return i;
                };
            
                /**
                 * getRegValue(iReg)
                 *
                 * @this {Debugger}
                 * @param {number} iReg
                 * @return {string}
                 */
                Debugger.prototype.getRegValue = function(iReg) {
                    var s = "??";
                    if (iReg >= 0) {
                        var n, cch;
                        var cpu = this.cpu;
                        switch(iReg) {
                        case Debugger.REG_AL:
                            n = cpu.regEAX;  cch = 2;
                            break;
                        case Debugger.REG_CL:
                            n = cpu.regECX;  cch = 2;
                            break;
                        case Debugger.REG_DL:
                            n = cpu.regEDX;  cch = 2;
                            break;
                        case Debugger.REG_BL:
                            n = cpu.regEBX;  cch = 2;
                            break;
                        case Debugger.REG_AH:
                            n = cpu.regEAX >> 8; cch = 2;
                            break;
                        case Debugger.REG_CH:
                            n = cpu.regECX >> 8; cch = 2;
                            break;
                        case Debugger.REG_DH:
                            n = cpu.regEDX >> 8; cch = 2;
                            break;
                        case Debugger.REG_BH:
                            n = cpu.regEBX >> 8; cch = 2;
                            break;
                        case Debugger.REG_AX:
                            n = cpu.regEAX;  cch = 4;
                            break;
                        case Debugger.REG_CX:
                            n = cpu.regECX;  cch = 4;
                            break;
                        case Debugger.REG_DX:
                            n = cpu.regEDX;  cch = 4;
                            break;
                        case Debugger.REG_BX:
                            n = cpu.regEBX;  cch = 4;
                            break;
                        case Debugger.REG_SP:
                            n = cpu.getSP(); cch = 4;
                            break;
                        case Debugger.REG_BP:
                            n = cpu.regEBP;  cch = 4;
                            break;
                        case Debugger.REG_SI:
                            n = cpu.regESI;  cch = 4;
                            break;
                        case Debugger.REG_DI:
                            n = cpu.regEDI;  cch = 4;
                            break;
                        case Debugger.REG_IP:
                            n = cpu.getIP(); cch = this.cchReg;
                            break;
                        case Debugger.REG_PS:
                            n = cpu.getPS(); cch = this.cchReg;
                            break;
                        case Debugger.REG_SEG + Debugger.REG_ES:
                            n = cpu.getES(); cch = 4;
                            break;
                        case Debugger.REG_SEG + Debugger.REG_CS:
                            n = cpu.getCS(); cch = 4;
                            break;
                        case Debugger.REG_SEG + Debugger.REG_SS:
                            n = cpu.getSS(); cch = 4;
                            break;
                        case Debugger.REG_SEG + Debugger.REG_DS:
                            n = cpu.getDS(); cch = 4;
                            break;
                        }
                        if (!cch) {
                            if (this.cpu.model == X86.MODEL_80286) {
                                if (iReg == Debugger.REG_CR0) {
                                    n = cpu.regCR0;  cch = 4;
                                }
                            }
                            else if (I386 && this.cpu.model >= X86.MODEL_80386) {
                                switch(iReg) {
                                case Debugger.REG_EAX:
                                    n = cpu.regEAX;  cch = 8;
                                    break;
                                case Debugger.REG_ECX:
                                    n = cpu.regECX;  cch = 8;
                                    break;
                                case Debugger.REG_EDX:
                                    n = cpu.regEDX;  cch = 8;
                                    break;
                                case Debugger.REG_EBX:
                                    n = cpu.regEBX;  cch = 8;
                                    break;
                                case Debugger.REG_ESP:
                                    n = cpu.getSP(); cch = 8;
                                    break;
                                case Debugger.REG_EBP:
                                    n = cpu.regEBP;  cch = 8;
                                    break;
                                case Debugger.REG_ESI:
                                    n = cpu.regESI;  cch = 8;
                                    break;
                                case Debugger.REG_EDI:
                                    n = cpu.regEDI;  cch = 8;
                                    break;
                                case Debugger.REG_CR0:
                                    n = cpu.regCR0;  cch = 8;
                                    break;
                                case Debugger.REG_CR1:
                                    n = cpu.regCR1;  cch = 8;
                                    break;
                                case Debugger.REG_CR2:
                                    n = cpu.regCR2;  cch = 8;
                                    break;
                                case Debugger.REG_CR3:
                                    n = cpu.regCR3;  cch = 8;
                                    break;
                                case Debugger.REG_SEG + Debugger.REG_FS:
                                    n = cpu.getFS(); cch = 4;
                                    break;
                                case Debugger.REG_SEG + Debugger.REG_GS:
                                    n = cpu.getGS(); cch = 4;
                                    break;
                                }
                            }
                        }
                        if (cch) s = str.toHex(n, cch);
                    }
                    return s;
                };
            
                /**
                 * replaceRegs(s)
                 *
                 * @this {Debugger}
                 * @param {string} s
                 * @return {string}
                 */
                Debugger.prototype.replaceRegs = function(s) {
                    /*
                     * Replace every %XX (or %XXX), where XX (or XXX) is a register, with the register's value.
                     */
                    var i = 0;
                    var b, sChar, sAddr, dbgAddr, sReplace;
                    while ((i = s.indexOf('%', i)) >= 0) {
                        var iReg = this.getRegIndex(s, i+1);
                        if (iReg >= 0) {
                            s = s.replace('%' + Debugger.REGS[iReg], this.getRegValue(iReg));
                        }
                        i++;
                    }
                    /*
                     * Replace every #XX, where XX is a hex byte value, with the corresponding ASCII character (if printable).
                     */
                    i = 0;
                    while ((i = s.indexOf('#', i)) >= 0) {
                        sChar = s.substr(i+1, 2);
                        b = str.parseInt(sChar, 16);
                        if (b != null && b >= 32 && b < 128) {
                            sReplace = sChar + " '" + String.fromCharCode(b) + "'";
                            s = s.replace('#' + sChar, sReplace);
                            i += sReplace.length;
                            continue;
                        }
                        i++;
                    }
                    /*
                     * Replace every $XXXX:XXXX, where XXXX:XXXX is a segmented address, with the zero-terminated string at that address.
                     */
                    i = 0;
                    while ((i = s.indexOf('$', i)) >= 0) {
                        sAddr = s.substr(i+1, 9);
                        dbgAddr = this.parseAddr(sAddr);
                        sReplace = sAddr + ' "' + this.getSZ(dbgAddr) + '"';
                        s = s.replace('$' + sAddr, sReplace);
                        i += sReplace.length;
                    }
                    /*
                     * Replace every ^XXXX:XXXX, where XXXX:XXXX is a segmented address, with the FCB filename stored at that address.
                     */
                    i = 0;
                    while ((i = s.indexOf('^', i)) >= 0) {
                        sAddr = s.substr(i+1, 9);
                        dbgAddr = this.parseAddr(sAddr);
                        this.incAddr(dbgAddr);
                        sReplace = sAddr + ' "' + this.getSZ(dbgAddr, 11) + '"';
                        s = s.replace('^' + sAddr, sReplace);
                        i += sReplace.length;
                    }
                    return s;
                };
            
                /**
                 * message(sMessage, fAddress)
                 *
                 * @this {Debugger}
                 * @param {string} sMessage is any caller-defined message string
                 * @param {boolean} [fAddress] is true to display the current CS:IP
                 */
                Debugger.prototype.message = function(sMessage, fAddress)
                {
                    if (fAddress) {
                        sMessage += " @" + this.hexOffset(this.cpu.getIP(), this.cpu.getCS());
                    }
            
                    if (this.sMessagePrev && sMessage == this.sMessagePrev) return;
            
                    if (!SAMPLER) this.println(sMessage);   // + " (" + this.cpu.getCycles() + " cycles)"
            
                    this.sMessagePrev = sMessage;
            
                    if (this.cpu) {
                        if (this.bitsMessage & Messages.HALT) {
                            this.stopCPU();
                        }
                        /*
                         * We have no idea what the frequency of println() calls might be; all we know is that they easily
                         * screw up the CPU's careful assumptions about cycles per burst.  So we call yieldCPU() after every
                         * message, to effectively end the current burst and start fresh.
                         *
                         * TODO: See CPU.calcStartTime() for a discussion of why we might want to call yieldCPU() *before*
                         * we display the message.
                         */
                        this.cpu.yieldCPU();
                    }
                };
            
                /**
                 * messageInt(nInt, addr)
                 *
                 * @this {Debugger}
                 * @param {number} nInt
                 * @param {number} addr (LIP after the "INT n" instruction has been fetched but not dispatched)
                 * @return {boolean} true if message generated (which in turn triggers addIntReturn() inside checkIntNotify()), false if not
                 */
                Debugger.prototype.messageInt = function(nInt, addr)
                {
                    var AH;
                    var fMessage = false;
                    var nCategory = Debugger.INT_MESSAGES[nInt];
                    if (nCategory) {
                        AH = this.cpu.regEAX >> 8;
                        if (this.messageEnabled(nCategory)) {
                            fMessage = true;
                        } else {
                            fMessage = (nCategory == Messages.FDC && this.messageEnabled(nCategory = Messages.HDC));
                        }
                    }
                    if (fMessage) {
                        var DL = this.cpu.regEDX & 0xff;
                        if (nInt == Interrupts.DOS.VECTOR && AH == 0x0b ||
                            nCategory == Messages.FDC && DL >= 0x80 || nCategory == Messages.HDC && DL < 0x80) {
                            fMessage = false;
                        }
                    }
                    if (fMessage) {
                        var aFuncs = Debugger.INT_FUNCS[nInt];
                        var sFunc = (aFuncs && aFuncs[AH]) || "";
                        if (sFunc) sFunc = ' ' + this.replaceRegs(sFunc);
                        /*
                         * For display purposes only, rewind addr to the address of the responsible "INT n" instruction;
                         * we know it's the two-byte "INT n" instruction because that's the only opcode handler that calls
                         * checkIntNotify() at the moment.
                         */
                        addr -= 2;
                        this.message("INT " + str.toHexByte(nInt) + ": AH=" + str.toHexByte(AH) + " @" + this.hexOffset(addr - this.cpu.segCS.base, this.cpu.getCS()) + sFunc);
                    }
                    return fMessage;
                };
            
                /**
                 * messageIntReturn(nInt, nLevel, nCycles)
                 *
                 * @this {Debugger}
                 * @param {number} nInt
                 * @param {number} nLevel
                 * @param {number} nCycles
                 * @param {string} [sResult]
                 */
                Debugger.prototype.messageIntReturn = function(nInt, nLevel, nCycles, sResult)
                {
                    this.message("INT " + str.toHexByte(nInt) + ": C=" + (this.cpu.getCF()? 1 : 0) + (sResult || "") + " (cycles=" + nCycles + (nLevel? ",level=" + (nLevel+1) : "") + ")");
                };
            
                /**
                 * messageIO(component, port, bOut, addrFrom, name, bIn, bitsMessage)
                 *
                 * @this {Debugger}
                 * @param {Component} component
                 * @param {number} port
                 * @param {number|null} bOut if an output operation
                 * @param {number|null} [addrFrom]
                 * @param {string|null} [name] of the port, if any
                 * @param {number|null} [bIn] is the input value, if known, on an input operation
                 * @param {number} [bitsMessage] is one or more Messages category flag(s)
                 */
                Debugger.prototype.messageIO = function(component, port, bOut, addrFrom, name, bIn, bitsMessage)
                {
                    bitsMessage |= Messages.PORT;
                    if (addrFrom == null || (this.bitsMessage & bitsMessage) == bitsMessage) {
                        var selFrom = null;
                        if (addrFrom != null) {
                            selFrom = this.cpu.getCS();
                            addrFrom -= this.cpu.segCS.base;
                        }
                        this.message(component.idComponent + "." + (bOut != null? "outPort" : "inPort") + '(' + str.toHexWord(port) + ',' + (name? name : "unknown") + (bOut != null? ',' + str.toHexByte(bOut) : "") + ")" + (bIn != null? (": " + str.toHexByte(bIn)) : "") + (addrFrom != null? (" @" + this.hexOffset(addrFrom, selFrom)) : ""));
                    }
                };
            
                /**
                 * traceInit()
                 *
                 * @this {Debugger}
                 */
                Debugger.prototype.traceInit = function()
                {
                    if (DEBUG) {
                        this.traceEnabled = {};
                        for (var prop in Debugger.TRACE) {
                            this.traceEnabled[prop] = false;
                        }
                        this.iTraceBuffer = 0;
                        this.aTraceBuffer = [];     // we now defer TRACE_LIMIT allocation until the first traceLog() call
                    }
                };
            
                /**
                 * traceLog(prop, dst, src, flagsIn, flagsOut, resultLo, resultHi)
                 *
                 * @this {Debugger}
                 * @param {string} prop
                 * @param {number} dst
                 * @param {number} src
                 * @param {number|null} flagsIn
                 * @param {number|null} flagsOut
                 * @param {number} resultLo
                 * @param {number} [resultHi]
                 */
                Debugger.prototype.traceLog = function(prop, dst, src, flagsIn, flagsOut, resultLo, resultHi)
                {
                    if (DEBUG) {
                        if (this.traceEnabled !== undefined && this.traceEnabled[prop]) {
                            var trace = Debugger.TRACE[prop];
                            var len = (trace.size >> 2);
                            var s = this.hexOffset(this.cpu.opLIP - this.cpu.segCS.base, this.cpu.getCS()) + " " + Debugger.INS_NAMES[trace.ins] + "(" + str.toHex(dst, len) + "," + str.toHex(src, len) + "," + (flagsIn === null? "-" : str.toHexWord(flagsIn)) + ") " + str.toHex(resultLo, len) + "," + (flagsOut === null? "-" : str.toHexWord(flagsOut));
                            if (!this.aTraceBuffer.length) this.aTraceBuffer = new Array(Debugger.TRACE_LIMIT);
                            this.aTraceBuffer[this.iTraceBuffer++] = s;
                            if (this.iTraceBuffer >= this.aTraceBuffer.length) {
                                /*
                                 * Instead of wrapping the buffer, we're going to turn all tracing off.
                                 *
                                 *      this.iTraceBuffer = 0;
                                 */
                                for (prop in this.traceEnabled) {
                                    this.traceEnabled[prop] = false;
                                }
                                this.println("trace buffer full");
                            }
                        }
                    }
                };
            
                /**
                 * init()
                 *
                 * @this {Debugger}
                 */
                Debugger.prototype.init = function()
                {
                    this.println("Type ? for list of debugger commands");
                    this.updateStatus();
                    if (this.sInitCommands) {
                        var a = this.parseCommand(this.sInitCommands);
                        delete this.sInitCommands;
                        for (var s in a) this.doCommand(a[s]);
                    }
                };
            
                /**
                 * historyInit()
                 *
                 * This function is intended to be called by the constructor, reset(), addBreakpoint(), findBreakpoint()
                 * and any other function that changes the checksEnabled() criteria used to decide whether checkInstruction()
                 * should be called.
                 *
                 * That is, if the history arrays need to be allocated and haven't already been allocated, then allocate them,
                 * and if the arrays are no longer needed, then deallocate them.
                 *
                 * @this {Debugger}
                 */
                Debugger.prototype.historyInit = function()
                {
                    var i;
                    if (!this.checksEnabled()) {
                        if (this.aOpcodeHistory && this.aOpcodeHistory.length) this.println("instruction history buffer freed");
                        this.iOpcodeHistory = 0;
                        this.aOpcodeHistory = [];
                        this.aaOpcodeCounts = [];
                        return;
                    }
                    if (!this.aOpcodeHistory || !this.aOpcodeHistory.length) {
                        this.aOpcodeHistory = new Array(Debugger.HISTORY_LIMIT);
                        for (i = 0; i < this.aOpcodeHistory.length; i++) {
                            /*
                             * Preallocate dummy Addr (Array) objects in every history slot, so that
                             * checkInstruction() doesn't need to call newAddr() on every slot update.
                             */
                            this.aOpcodeHistory[i] = this.newAddr();
                        }
                        this.iOpcodeHistory = 0;
                        this.println("instruction history buffer allocated");
                    }
                    if (!this.aaOpcodeCounts || !this.aaOpcodeCounts.length) {
                        this.aaOpcodeCounts = new Array(256);
                        for (i = 0; i < this.aaOpcodeCounts.length; i++) {
                            this.aaOpcodeCounts[i] = [i, 0];
                        }
                    }
                };
            
                /**
                 * runCPU(fOnClick)
                 *
                 * @this {Debugger}
                 * @param {boolean} [fOnClick] is true if called from a click handler that might have stolen focus
                 * @return {boolean} true if run request successful, false if not
                 */
                Debugger.prototype.runCPU = function(fOnClick)
                {
                    if (!this.isCPUAvail()) return false;
                    this.cpu.runCPU(fOnClick);
                    return true;
                };
            
                /**
                 * stepCPU(nCycles, fRegs, fUpdateCPU)
                 *
                 * @this {Debugger}
                 * @param {number} nCycles (0 for one instruction without checking breakpoints)
                 * @param {boolean} [fRegs] is true to display registers after step (default is false)
                 * @param {boolean} [fUpdateCPU] is false to disable calls to updateCPU() (default is true)
                 * @return {boolean}
                 */
                Debugger.prototype.stepCPU = function(nCycles, fRegs, fUpdateCPU)
                {
                    if (!this.isCPUAvail()) return false;
            
                    this.nCycles = 0;
                    do {
                        if (!nCycles) {
                            /*
                             * When single-stepping, the CPU won't call checkInstruction(), which is good for
                             * avoiding breakpoints, but bad for instruction data collection if checks are enabled.
                             * So we call checkInstruction() ourselves.
                             */
                            if (this.checksEnabled()) this.checkInstruction(this.cpu.regLIP, 0);
                        }
                        try {
                            var nCyclesStep = this.cpu.stepCPU(nCycles);
                            if (nCyclesStep > 0) {
                                this.nCycles += nCyclesStep;
                                this.cpu.addCycles(nCyclesStep, true);
                                this.cpu.updateChecksum(nCyclesStep);
                                this.cInstructions++;
                            }
                        }
                        catch (e) {
                            this.nCycles = 0;
                            this.cpu.setError(e.stack || e.message);
                        }
                    } while (this.cpu.opFlags & X86.OPFLAG_PREFIXES);
            
                    /*
                     * Because we called cpu.stepCPU() and not cpu.runCPU(), we must nudge the cpu's update code,
                     * and then update our own state.  Normally, the only time fUpdateCPU will be false is when doStep()
                     * is calling us in a loop, in which case it will perform its own updateCPU() when it's done.
                     */
                    if (fUpdateCPU !== false) this.cpu.updateCPU();
            
                    this.updateStatus(fRegs || false, false);
                    return (this.nCycles > 0);
                };
            
                /**
                 * stopCPU()
                 *
                 * @this {Debugger}
                 * @param {boolean} [fComplete]
                 */
                Debugger.prototype.stopCPU = function(fComplete)
                {
                    if (this.cpu) this.cpu.stopCPU(fComplete);
                };
            
                /**
                 * updateStatus(fRegs, fCompact)
                 *
                 * @this {Debugger}
                 * @param {boolean} [fRegs] (default is true)
                 * @param {boolean} [fCompact] (default is true)
                 */
                Debugger.prototype.updateStatus = function(fRegs, fCompact)
                {
                    if (fRegs === undefined) fRegs = true;
                    if (fCompact === undefined) fCompact = true;
            
                    this.dbgAddrNextCode = this.newAddr(this.cpu.getIP(), this.cpu.getCS());
                    /*
                     * this.fProcStep used to be a simple boolean, but now it's 0 (or undefined)
                     * if inactive, 1 if stepping over an instruction without a register dump, or 2
                     * if stepping over an instruction with a register dump.
                     */
                    if (!fRegs || this.fProcStep == 1)
                        this.doUnassemble();
                    else {
                        this.doRegisters(null, fCompact);
                    }
                };
            
                /**
                 * isCPUAvail()
                 *
                 * Make sure the CPU is ready (finished initializing), not busy (already running), and not in an error state.
                 *
                 * @this {Debugger}
                 * @return {boolean}
                 */
                Debugger.prototype.isCPUAvail = function()
                {
                    if (!this.cpu)
                        return false;
                    if (!this.cpu.isReady())
                        return false;
                    if (!this.cpu.isPowered())
                        return false;
                    if (this.cpu.isBusy())
                        return false;
                    return !this.cpu.isError();
                };
            
                /**
                 * powerUp(data, fRepower)
                 *
                 * @this {Debugger}
                 * @param {Object|null} data
                 * @param {boolean} [fRepower]
                 * @return {boolean} true if successful, false if failure
                 */
                Debugger.prototype.powerUp = function(data, fRepower)
                {
                    if (!fRepower) {
                        /*
                         * Because Debugger save/restore support is somewhat limited (and didn't always exist),
                         * we deviate from the typical save/restore design pattern: instead of reset OR restore,
                         * we always reset and then perform a (potentially limited) restore.
                         */
                        this.reset(true);
            
                        // this.println(data? "resuming" : "powering up");
            
                        if (data && this.restore) {
                            if (!this.restore(data)) return false;
                        }
                    }
                    return true;
                };
            
                /**
                 * powerDown(fSave, fShutdown)
                 *
                 * @this {Debugger}
                 * @param {boolean} fSave
                 * @param {boolean} [fShutdown]
                 * @return {Object|boolean}
                 */
                Debugger.prototype.powerDown = function(fSave, fShutdown)
                {
                    if (fShutdown) this.println(fSave? "suspending" : "shutting down");
                    return fSave && this.save? this.save() : true;
                };
            
                /**
                 * reset(fQuiet)
                 *
                 * This is a notification handler, called by the Computer, to inform us of a reset.
                 *
                 * @this {Debugger}
                 * @param {boolean} fQuiet (true only when called from our own powerUp handler)
                 */
                Debugger.prototype.reset = function(fQuiet)
                {
                    this.historyInit();
                    this.cInstructions = 0;
                    this.sMessagePrev = null;
                    this.nCycles = 0;
                    this.dbgAddrNextCode = this.newAddr(this.cpu.getIP(), this.cpu.getCS());
                    /*
                     * fRunning is set by start() and cleared by stop().  In addition, we clear
                     * it here, so that if the CPU is reset while running, we can prevent stop()
                     * from unnecessarily dumping the CPU state.
                     */
                    if (this.aFlags.fRunning !== undefined && !fQuiet) this.println("reset");
                    this.aFlags.fRunning = false;
                    this.clearTempBreakpoint();
                    if (!fQuiet) this.updateStatus();
                };
            
                /**
                 * save()
                 *
                 * This implements (very rudimentary) save support for the Debugger component.
                 *
                 * @this {Debugger}
                 * @return {Object}
                 */
                Debugger.prototype.save = function()
                {
                    var state = new State(this);
                    state.set(0, this.packAddr(this.dbgAddrNextCode));
                    state.set(1, this.packAddr(this.dbgAddrAssemble));
                    state.set(2, [this.aPrevCmds, this.fAssemble, this.bitsMessage]);
                    return state.data();
                };
            
                /**
                 * restore(data)
                 *
                 * This implements (very rudimentary) restore support for the Debugger component.
                 *
                 * @this {Debugger}
                 * @param {Object} data
                 * @return {boolean} true if successful, false if failure
                 */
                Debugger.prototype.restore = function(data)
                {
                    var i = 0;
                    if (data[2] !== undefined) {
                        this.dbgAddrNextCode = this.unpackAddr(data[i++]);
                        this.dbgAddrAssemble = this.unpackAddr(data[i++]);
                        this.aPrevCmds = data[i][0];
                        if (typeof this.aPrevCmds == "string") this.aPrevCmds = [this.aPrevCmds];
                        this.fAssemble = data[i][1];
                        if (!this.bitsMessage) {
                            /*
                             * It's actually kind of annoying that a restored (or predefined) state will trump my initial state,
                             * at least in situations where I've changed the initial state, if I want to diagnose something.
                             * Perhaps I should save/restore both the initial and current bitsMessageEnabled, and if the initial
                             * values don't agree, then leave the current value alone.
                             *
                             * But, it's much easier to just leave bitsMessageEnabled alone whenever it already contains set bits.
                             */
                            this.bitsMessage = data[i][2];
                        }
                    }
                    return true;
                };
            
                /**
                 * start(ms, nCycles)
                 *
                 * This is a notification handler, called by the Computer, to inform us the CPU has started.
                 *
                 * @this {Debugger}
                 * @param {number} ms
                 * @param {number} nCycles
                 */
                Debugger.prototype.start = function(ms, nCycles)
                {
                    if (!this.fProcStep) this.println("running");
                    this.aFlags.fRunning = true;
                    this.msStart = ms;
                    this.nCyclesStart = nCycles;
                };
            
                /**
                 * stop(ms, nCycles)
                 *
                 * This is a notification handler, called by the Computer, to inform us the CPU has now stopped.
                 *
                 * @this {Debugger}
                 * @param {number} ms
                 * @param {number} nCycles
                 */
                Debugger.prototype.stop = function(ms, nCycles)
                {
                    if (this.aFlags.fRunning) {
                        this.aFlags.fRunning = false;
                        this.nCycles = nCycles - this.nCyclesStart;
                        if (!this.fProcStep) {
                            var sStopped = "stopped";
                            if (this.nCycles) {
                                var msTotal = ms - this.msStart;
                                var nCyclesPerSecond = (msTotal > 0? Math.round(this.nCycles * 1000 / msTotal) : 0);
                                sStopped += " (";
                                if (this.checksEnabled()) {
                                    sStopped += this.cInstructions + " ops, ";
                                    this.cInstructions = 0;     // remove this line if you want to maintain a longer total
                                }
                                sStopped += this.nCycles + " cycles, " + msTotal + " ms, " + nCyclesPerSecond + " hz)";
                                if (MAXDEBUG && this.chipset) {
                                    var i, c, n;
                                    for (i = 0; i < this.chipset.acInterrupts.length; i++) {
                                        c = this.chipset.acInterrupts[i];
                                        if (!c) continue;
                                        n = c / Math.round(msTotal / 1000);
                                        this.println("IRQ" + i + ": " + c + " interrupts (" + n + " per sec)");
                                        this.chipset.acInterrupts[i] = 0;
                                    }
                                    for (i = 0; i < this.chipset.acTimersFired.length; i++) {
                                        c = this.chipset.acTimersFired[i];
                                        if (!c) continue;
                                        n = c / Math.round(msTotal / 1000);
                                        this.println("TIMER" + i + ": " + c + " fires (" + n + " per sec)");
                                        this.chipset.acTimersFired[i] = 0;
                                    }
                                    n = 0;
                                    for (i = 0; i < this.chipset.acTimer0Counts.length; i++) {
                                        var a = this.chipset.acTimer0Counts[i];
                                        n += a[0];
                                        this.println("TIMER0 update #" + i + ": [" + a[0] + "," + a[1] + "," + a[2] + "]");
                                    }
                                    this.chipset.acTimer0Counts = [];
                                }
                            }
                            this.println(sStopped);
                        }
                        this.updateStatus(true, this.fProcStep != 2);
                        this.setFocus();
                        this.clearTempBreakpoint(this.cpu.regLIP);
                    }
                };
            
                /**
                 * checksEnabled(fRelease)
                 *
                 * This "check" function is called by the CPU; we indicate whether or not every instruction needs to be checked.
                 *
                 * Originally, this returned true even when there were only read and/or write breakpoints, but those breakpoints
                 * no longer require the intervention of checkInstruction(); the Bus component automatically swaps in/out appropriate
                 * functions to deal with those breakpoints in the appropriate memory blocks.  So I've simplified the test below.
                 *
                 * @this {Debugger}
                 * @param {boolean} [fRelease] is true for release criteria only; default is false (any criteria)
                 * @return {boolean} true if every instruction needs to pass through checkInstruction(), false if not
                 */
                Debugger.prototype.checksEnabled = function(fRelease)
                {
                    return ((DEBUG && !fRelease)? true : (this.aBreakExec.length > 1 || this.messageEnabled(Messages.INT) /* || this.aBreakRead.length > 1 || this.aBreakWrite.length > 1 */));
                };
            
                /**
                 * checkInstruction(addr, nState)
                 *
                 * This "check" function is called by the CPU to inform us about the next instruction to be executed,
                 * giving us an opportunity to look for "exec" breakpoints and update opcode frequencies and instruction history.
                 *
                 * @this {Debugger}
                 * @param {number} addr
                 * @param {number} nState is < 0 if stepping, 0 if starting, or > 0 if running
                 * @return {boolean} true if breakpoint hit, false if not
                 */
                Debugger.prototype.checkInstruction = function(addr, nState)
                {
                    if (nState > 0) {
                        if (this.checkBreakpoint(addr, this.aBreakExec)) {
                            return true;
                        }
                        /*
                         * Halt if running with interrupts disabled and IOPL < CPL, because that's likely an error
                         */
                        if (!(this.cpu.regPS & X86.PS.IF) && this.cpu.nIOPL < this.cpu.segCS.cpl) {
                            this.printMessage("interrupts disabled at IOPL " + this.cpu.nIOPL + " and CPL " + this.cpu.segCS.cpl, true);
                            return true;
                        }
                    }
            
                    /*
                     * The rest of the instruction tracking logic can only be performed if historyInit() has allocated the
                     * necessary data structures.  Note that there is no explicit UI for enabling/disabling history, other than
                     * adding/removing breakpoints, simply because it's breakpoints that trigger the call to checkInstruction();
                     * well, OK, and a few other things now, like enabling Messages.INT messages.
                     */
                    if (nState >= 0 && this.aaOpcodeCounts.length) {
                        this.cInstructions++;
                        var bOpcode = this.cpu.probeAddr(addr);
                        if (bOpcode != null) {
                            this.aaOpcodeCounts[bOpcode][1]++;
                            var dbgAddr = this.aOpcodeHistory[this.iOpcodeHistory];
                            dbgAddr.off = this.cpu.getIP();
                            dbgAddr.sel = this.cpu.getCS();
                            dbgAddr.addr = addr;
                            dbgAddr.fData32 = (this.cpu && this.cpu.segCS.dataSize == 4);
                            dbgAddr.fAddr32 = (this.cpu && this.cpu.segCS.addrSize == 4);
                            if (++this.iOpcodeHistory == this.aOpcodeHistory.length) this.iOpcodeHistory = 0;
                        }
                    }
                    return false;
                };
            
                /**
                 * checkMemoryRead(addr)
                 *
                 * This "check" function is called by a Memory block to inform us that a memory read occurred, giving us an
                 * opportunity to track the read if we want, and look for a matching "read" breakpoint, if any.
                 *
                 * @this {Debugger}
                 * @param {number} addr
                 * @return {boolean} true if breakpoint hit, false if not
                 */
                Debugger.prototype.checkMemoryRead = function(addr)
                {
                    if (this.checkBreakpoint(addr, this.aBreakRead)) {
                        this.stopCPU(true);
                        return true;
                    }
                    return false;
                };
            
                /**
                 * checkMemoryWrite(addr)
                 *
                 * This "check" function is called by a Memory block to inform us that a memory write occurred, giving us an
                 * opportunity to track the write if we want, and look for a matching "write" breakpoint, if any.
                 *
                 * @this {Debugger}
                 * @param {number} addr
                 * @return {boolean} true if breakpoint hit, false if not
                 */
                Debugger.prototype.checkMemoryWrite = function(addr)
                {
                    if (this.checkBreakpoint(addr, this.aBreakWrite)) {
                        this.stopCPU(true);
                        return true;
                    }
                    return false;
                };
            
                /**
                 * checkPortInput(port, bIn)
                 *
                 * This "check" function is called by the Bus component to inform us that port input occurred.
                 *
                 * @this {Debugger}
                 * @param {number} port
                 * @param {number} bIn
                 * @return {boolean} true if breakpoint hit, false if not
                 */
                Debugger.prototype.checkPortInput = function(port, bIn)
                {
                    /*
                     * We trust that the Bus component won't call us unless we told it to, so we halt unconditionally
                     */
                    this.println("break on input from port " + str.toHexWord(port) + ": " + str.toHexByte(bIn));
                    this.stopCPU(true);
                    return true;
                };
            
                /**
                 * checkPortOutput(port, bOut)
                 *
                 * This "check" function is called by the Bus component to inform us that port output occurred.
                 *
                 * @this {Debugger}
                 * @param {number} port
                 * @param {number} bOut
                 * @return {boolean} true if breakpoint hit, false if not
                 */
                Debugger.prototype.checkPortOutput = function(port, bOut)
                {
                    /*
                     * We trust that the Bus component won't call us unless we told it to, so we halt unconditionally
                     */
                    this.println("break on output to port " + str.toHexWord(port) + ": " + str.toHexByte(bOut));
                    this.stopCPU(true);
                    return true;
                };
            
                /**
                 * clearBreakpoints()
                 *
                 * @this {Debugger}
                 */
                Debugger.prototype.clearBreakpoints = function()
                {
                    var i;
                    this.aBreakExec = ["exec"];
                    if (this.aBreakRead !== undefined) {
                        for (i = 1; i < this.aBreakRead.length; i++) {
                            this.bus.removeMemBreak(this.getAddr(this.aBreakRead[i]), false);
                        }
                    }
                    this.aBreakRead = ["read"];
                    if (this.aBreakWrite !== undefined) {
                        for (i = 1; i < this.aBreakWrite.length; i++) {
                            this.bus.removeMemBreak(this.getAddr(this.aBreakWrite[i]), true);
                        }
                    }
                    this.aBreakWrite = ["write"];
                    /*
                     * nSuppressBreaks ensures we can't get into an infinite loop where a breakpoint lookup requires
                     * reading a segment descriptor via getSegment(), and that triggers more memory reads, which triggers
                     * more breakpoint checks.
                     */
                    this.nSuppressBreaks = 0;
                };
            
                /**
                 * addBreakpoint(aBreak, dbgAddr, fTemp)
                 *
                 * @this {Debugger}
                 * @param {Array} aBreak
                 * @param {{DbgAddr}} dbgAddr
                 * @param {boolean} [fTemp]
                 * @return {boolean} true if breakpoint added, false if already exists
                 */
                Debugger.prototype.addBreakpoint = function(aBreak, dbgAddr, fTemp)
                {
                    if (!this.findBreakpoint(aBreak, dbgAddr)) {
                        dbgAddr.fTempBreak = fTemp;
                        aBreak.push(dbgAddr);
                        if (aBreak != this.aBreakExec) {
                            this.bus.addMemBreak(this.getAddr(dbgAddr), aBreak == this.aBreakWrite);
                        }
                        if (fTemp) {
                            /*
                             * Force temporary breakpoints to be interpreted as linear breakpoints
                             * (hence the assertion that there IS a linear address stored in dbgAddr);
                             * this allows us to step over calls or interrupts that change the processor mode
                             */
                            dbgAddr.sel = null;
                            this.assert(dbgAddr.addr);
                        } else {
                            this.println("breakpoint enabled: " + this.hexAddr(dbgAddr) + " (" + aBreak[0] + ")");
                        }
                        if (!fTemp) this.historyInit();
                        return true;
                    }
                    return false;
                };
            
                /**
                 * findBreakpoint(aBreak, dbgAddr, fRemove)
                 *
                 * @this {Debugger}
                 * @param {Array} aBreak
                 * @param {{DbgAddr}} dbgAddr
                 * @param {boolean} [fRemove]
                 * @return {boolean} true if found, false if not
                 */
                Debugger.prototype.findBreakpoint = function(aBreak, dbgAddr, fRemove)
                {
                    var fFound = false;
                    var addr = this.mapBreakpoint(this.getAddr(dbgAddr));
                    for (var i = 1; i < aBreak.length; i++) {
                        var dbgAddrBreak = aBreak[i];
                        if (addr == this.mapBreakpoint(this.getAddr(dbgAddrBreak))) {
                            fFound = true;
                            if (fRemove) {
                                aBreak.splice(i, 1);
                                if (aBreak != this.aBreakExec) {
                                    this.bus.removeMemBreak(addr, aBreak == this.aBreakWrite);
                                }
                                if (!dbgAddrBreak.fTempBreak) this.println("breakpoint cleared: " + this.hexAddr(dbgAddrBreak) + " (" + aBreak[0] + ")");
                                this.historyInit();
                                break;
                            }
                            this.println("breakpoint exists: " + this.hexAddr(dbgAddrBreak) + " (" + aBreak[0] + ")");
                            break;
                        }
                    }
                    return fFound;
                };
            
                /**
                 * listBreakpoints(aBreak)
                 *
                 * TODO: We may need to start listing linear addresses also, because segmented address can be ambiguous.
                 *
                 * @this {Debugger}
                 * @param {Array} aBreak
                 * @return {number} of breakpoints listed, 0 if none
                 */
                Debugger.prototype.listBreakpoints = function(aBreak)
                {
                    for (var i = 1; i < aBreak.length; i++) {
                        this.println("breakpoint enabled: " + this.hexAddr(aBreak[i]) + " (" + aBreak[0] + ")");
                    }
                    return aBreak.length - 1;
                };
            
                /**
                 * redoBreakpoints()
                 *
                 * This function is for the Memory component: whenever the Bus allocates a new Memory block, it calls
                 * the block's setDebugger() method, which clears the memory block's breakpoint counts.  setDebugger(),
                 * in turn, must call this function to re-apply any existing breakpoints to that block.
                 *
                 * This ensures that, even if a memory region is remapped (which creates new Memory blocks in the process),
                 * any breakpoints that were previously applied to that region will still work.
                 *
                 * @this {Debugger}
                 * @param {number} addr of memory block
                 * @param {number} size of memory block
                 * @param {Array} [aBreak]
                 */
                Debugger.prototype.redoBreakpoints = function(addr, size, aBreak)
                {
                    if (aBreak === undefined) {
                        this.redoBreakpoints(addr, size, this.aBreakRead);
                        this.redoBreakpoints(addr, size, this.aBreakWrite);
                        return;
                    }
                    for (var i = 1; i < aBreak.length; i++) {
                        var addrBreak = this.getAddr(aBreak[i]);
                        if (addrBreak >= addr && addrBreak < addr + size) {
                            this.bus.addMemBreak(addrBreak, aBreak == this.aBreakWrite);
                        }
                    }
                };
            
                /**
                 * setTempBreakpoint(dbgAddr)
                 *
                 * @this {Debugger}
                 * @param {{DbgAddr}} dbgAddr of new temp breakpoint
                 */
                Debugger.prototype.setTempBreakpoint = function(dbgAddr)
                {
                    this.addBreakpoint(this.aBreakExec, dbgAddr, true);
                };
            
                /**
                 * clearTempBreakpoint(addr)
                 *
                 * @this {Debugger}
                 * @param {number|undefined} [addr] clear all temp breakpoints if no address specified
                 */
                Debugger.prototype.clearTempBreakpoint = function(addr)
                {
                    if (addr !== undefined) {
                        this.checkBreakpoint(addr, this.aBreakExec, true);
                        this.fProcStep = 0;
                    } else {
                        for (var i = 1; i < this.aBreakExec.length; i++) {
                            var dbgAddrBreak = this.aBreakExec[i];
                            if (dbgAddrBreak.fTempBreak) {
                                if (!this.findBreakpoint(this.aBreakExec, dbgAddrBreak, true)) break;
                                i = 0;
                            }
                        }
                    }
                };
            
                /**
                 * mapBreakpoint(addr)
                 *
                 * @this {Debugger}
                 * @param {number} addr
                 * @return {number}
                 */
                Debugger.prototype.mapBreakpoint = function(addr)
                {
                    /*
                     * Map addresses in the top 64Kb at the top of the address space (assuming either a 16Mb or 4Gb
                     * address space) to the top of the 1Mb range.
                     *
                     * The fact that those two 64Kb regions are aliases of each other on an 80286 is a pain in the BUTT,
                     * because any CS-based breakpoint you set immediately after a CPU reset will have a physical address
                     * in the top 16Mb, yet after the first inter-segment JMP, you will be running in the first 1Mb.
                     */
                    var mask = (this.maskAddr & ~0xffff);
                    if ((addr & mask) == mask) addr &= 0x000fffff;
                    return addr;
                };
            
                /**
                 * checkBreakpoint(addr, aBreak, fTemp)
                 *
                 * @this {Debugger}
                 * @param {number} addr
                 * @param {Array} aBreak
                 * @param {boolean} [fTemp]
                 * @return {boolean} true if breakpoint has been hit, false if not
                 */
                Debugger.prototype.checkBreakpoint = function(addr, aBreak, fTemp)
                {
                    /*
                     * Time to check for execution breakpoints; note that this should be done BEFORE updating frequency
                     * or history data (see checkInstruction), since we might not actually execute the current instruction.
                     */
                    var fBreak = false;
                    if (!this.nSuppressBreaks++) {
            
                        addr = this.mapBreakpoint(addr);
            
                        /*
                         * As discussed in opINT3(), I decided to check for INT3 instructions here: we'll tell the CPU to
                         * stop on INT3 whenever both the INT and HALT message bits are set; a simple "g" command allows you
                         * to continue.
                         */
                        if (this.messageEnabled(Messages.INT | Messages.HALT)) {
                            if (this.cpu.probeAddr(addr) == X86.OPCODE.INT3) {
                                fBreak = true;
                            }
                        }
            
                        for (var i = 1; !fBreak && i < aBreak.length; i++) {
            
                            var dbgAddrBreak = aBreak[i];
            
                            /*
                             * We need to zap the linear address field of the breakpoint address before
                             * calling getAddr(), to force it to recalculate the linear address every time,
                             * unless this is a breakpoint on a linear address (as indicated by a null sel).
                             */
                            if (dbgAddrBreak.sel != null) dbgAddrBreak.addr = null;
            
                            /*
                             * We used to calculate the linear address of the breakpoint at the time the
                             * breakpoint was added, so that a breakpoint set in one mode (eg, in real-mode)
                             * would still work as intended if the mode changed later (eg, to protected-mode).
                             *
                             * However, that created difficulties setting protected-mode breakpoints in segments
                             * that might not be defined yet, or that could move in physical memory.
                             *
                             * If you want to create a real-mode breakpoint that will break regardless of mode,
                             * use the physical address of the real-mode memory location instead.
                             */
                            if (addr == this.mapBreakpoint(this.getAddr(dbgAddrBreak))) {
                                if (dbgAddrBreak.fTempBreak) {
                                    this.findBreakpoint(aBreak, dbgAddrBreak, true);
                                } else if (!fTemp) {
                                    this.println("breakpoint hit: " + this.hexAddr(dbgAddrBreak) + " (" + aBreak[0] + ")");
                                }
                                fBreak = true;
                            }
                        }
                    }
                    this.nSuppressBreaks--;
                    return fBreak;
                };
            
                /**
                 * getInstruction(dbgAddr, sComment, nSequence)
                 *
                 * @this {Debugger}
                 * @param {{DbgAddr}} dbgAddr
                 * @param {string} [sComment] is an associated comment
                 * @param {number} [nSequence] is an associated sequence number, undefined if none
                 * @return {string} (and dbgAddr is updated to the next instruction)
                 */
                Debugger.prototype.getInstruction = function(dbgAddr, sComment, nSequence)
                {
                    var dbgAddrIns = this.newAddr(dbgAddr.off, dbgAddr.sel, dbgAddr.addr);
            
                    var bOpcode = this.getByte(dbgAddr, 1);
            
                    /*
                     * Incorporate OS and AS prefixes into the current instruction.
                     *
                     * And the verdict is in: redundant OS and AS prefixes must be ignored;
                     * see opOS() and opAS() for details.  We limit the amount of redundancy
                     * to something reasonable (ie, 4).
                     */
                    var cMax = 4;
                    var fDataPrefix = false, fAddrPrefix = false;
                    while ((bOpcode == X86.OPCODE.OS || bOpcode == X86.OPCODE.AS) && cMax--) {
                        if (bOpcode == X86.OPCODE.OS) {
                            if (!fDataPrefix) {
                                dbgAddr.fData32 = !dbgAddr.fData32;
                                fDataPrefix = true;
                            }
                        } else {
                            if (!fAddrPrefix) {
                                dbgAddr.fAddr32 = !dbgAddr.fAddr32;
                                fAddrPrefix = true;
                            }
                        }
                        bOpcode = this.getByte(dbgAddr, 1);
                    }
            
                    var aOpDesc = this.aaOpDescs[bOpcode];
                    var iIns = aOpDesc[0];
                    var bModRM = -1;
            
                    if (iIns == Debugger.INS.OP0F) {
                        var b = this.getByte(dbgAddr, 1);
                        aOpDesc = Debugger.aaOp0FDescs[b] || Debugger.aOpDescUndefined;
                        bOpcode |= (b << 8);
                        iIns = aOpDesc[0];
                    }
            
                    if (iIns >= Debugger.INS_NAMES.length) {
                        bModRM = this.getByte(dbgAddr, 1);
                        aOpDesc = Debugger.aaGrpDescs[iIns - Debugger.INS_NAMES.length][(bModRM >> 3) & 0x7];
                    }
            
                    var sOpcode = Debugger.INS_NAMES[aOpDesc[0]];
                    var cOperands = aOpDesc.length - 1;
                    var sOperands = "";
                    if (this.isStringIns(bOpcode)) {
                        cOperands = 0;              // suppress display of operands for string instructions
                        if (dbgAddr.fData32 && sOpcode.slice(-1) == 'W') sOpcode = sOpcode.slice(0, -1) + 'D';
                    }
            
                    var typeCPU = null;
                    var fNonPrefix = true;
            
                    for (var iOperand = 1; iOperand <= cOperands; iOperand++) {
            
                        var disp, offset, cch;
                        var sOperand = "";
                        var type = aOpDesc[iOperand];
                        if (type === undefined) continue;
            
                        if (typeCPU == null) typeCPU = type >> Debugger.TYPE_CPU_SHIFT;
            
                        var typeSize = type & Debugger.TYPE_SIZE;
                        if (typeSize == Debugger.TYPE_NONE) {
                            continue;
                        }
                        if (typeSize == Debugger.TYPE_PREFIX) {
                            fNonPrefix = false;
                            continue;
                        }
                        var typeMode = type & Debugger.TYPE_MODE;
                        if (typeMode >= Debugger.TYPE_MODRM) {
                            if (bModRM < 0) {
                                bModRM = this.getByte(dbgAddr, 1);
                            }
                            if (typeMode < Debugger.TYPE_MODREG) {
                                /*
                                 * This test also encompasses TYPE_MODMEM, which is basically the inverse of the case
                                 * below (ie, only Mod values *other* than 11 are allowed); however, I believe that in
                                 * some cases that's merely a convention, and that if you try to execute an instruction
                                 * like "LEA AX,BX", it will actually do something (on some if not all processors), so
                                 * there's probably some diagnostic value in allowing those cases to be disassembled.
                                 */
                                sOperand = this.getModRMOperand(bModRM, type, dbgAddr);
                            }
                            else if (typeMode == Debugger.TYPE_MODREG) {
                                /*
                                 * TYPE_MODREG instructions assume that Mod is 11 (only certain early 80486 steppings
                                 * actually *required* that Mod contain 11) and always treat RM as a register (which we
                                 * could also simulate by setting Mod to 11 and letting getModRMOperand() do its thing).
                                 */
                                sOperand = this.getRegOperand(bModRM & 0x7, type, dbgAddr);
                            }
                            else {
                                /*
                                 * All the remaining cases are Reg-centric; getRegOperand() will figure out which case.
                                 */
                                sOperand = this.getRegOperand((bModRM >> 3) & 0x7, type, dbgAddr);
                            }
                        }
                        else if (typeMode == Debugger.TYPE_ONE) {
                            sOperand = "1";
                        }
                        else if (typeMode == Debugger.TYPE_IMM) {
                            sOperand = this.getImmOperand(type, dbgAddr);
                        }
                        else if (typeMode == Debugger.TYPE_IMMOFF) {
                            if (!dbgAddr.fAddr32) {
                                cch = 4;
                                offset = this.getShort(dbgAddr, 2);
                            } else {
                                cch = 8;
                                offset = this.getLong(dbgAddr, 4);
                            }
                            sOperand = "[" + str.toHex(offset, cch) + "]";
                        }
                        else if (typeMode == Debugger.TYPE_IMMREL) {
                            if (typeSize == Debugger.TYPE_BYTE) {
                                disp = ((this.getByte(dbgAddr, 1) << 24) >> 24);
                            }
                            else {
                                disp = this.getWord(dbgAddr, true);
                            }
                            offset = (dbgAddr.off + disp) & (dbgAddr.fData32? -1 : 0xffff);
                            var aSymbol = this.findSymbolAtAddr(this.newAddr(offset, dbgAddr.sel));
                            sOperand = aSymbol[0] || str.toHex(offset, dbgAddr.fData32? 8: 4);
                        }
                        else if (typeMode == Debugger.TYPE_IMPREG) {
                            sOperand = this.getRegOperand((type & Debugger.TYPE_IREG) >> 8, type, dbgAddr);
                        }
                        else if (typeMode == Debugger.TYPE_IMPSEG) {
                            sOperand = this.getRegOperand((type & Debugger.TYPE_IREG) >> 8, Debugger.TYPE_SEGREG, dbgAddr);
                        }
                        else if (typeMode == Debugger.TYPE_DSSI) {
                            sOperand = "DS:[SI]";
                        }
                        else if (typeMode == Debugger.TYPE_ESDI) {
                            sOperand = "ES:[DI]";
                        }
                        if (!sOperand || !sOperand.length) {
                            sOperands = "INVALID";
                            break;
                        }
                        if (sOperands.length > 0) sOperands += ",";
                        sOperands += sOperand;
                    }
            
                    var sLine = this.hexAddr(dbgAddrIns) + " ";
                    var sBytes = "";
                    if (dbgAddrIns.addr != X86.ADDR_INVALID && dbgAddr.addr != X86.ADDR_INVALID) {
                        do {
                            sBytes += str.toHex(this.getByte(dbgAddrIns, 1), 2);
                        } while (dbgAddrIns.addr != dbgAddr.addr);
                    }
            
                    sLine += str.pad(sBytes, dbgAddrIns.fAddr32? 24 : 16);
                    sLine += str.pad(sOpcode, 8);
                    if (sOperands) sLine += " " + sOperands;
            
                    if (this.cpu.model < Debugger.CPUS[typeCPU]) {
                        sComment = Debugger.CPUS[typeCPU] + " CPU only";
                    }
            
                    if (sComment && fNonPrefix) {
                        sLine = str.pad(sLine, dbgAddrIns.fAddr32? 68 : 56) + ';' + sComment;
                        if (!this.cpu.aFlags.fChecksum) {
                            sLine += (nSequence != null? '=' + nSequence.toString() : "");
                        } else {
                            var nCycles = this.cpu.getCycles();
                            sLine += "cycles=" + nCycles.toString() + " cs=" + str.toHex(this.cpu.aCounts.nChecksum);
                        }
                    }
            
                    this.initAddrSize(dbgAddr, fNonPrefix, (fDataPrefix? 1 : 0) + (fAddrPrefix? 1 : 0));
                    return sLine;
                };
            
                /**
                 * getImmOperand(type, dbgAddr)
                 *
                 * @this {Debugger}
                 * @param {number} type
                 * @param {{DbgAddr}} dbgAddr
                 * @return {string} operand
                 */
                Debugger.prototype.getImmOperand = function(type, dbgAddr)
                {
                    var sOperand = " ";
                    var typeSize = type & Debugger.TYPE_SIZE;
                    switch (typeSize) {
                    case Debugger.TYPE_BYTE:
                        /*
                         * There's the occasional immediate byte we don't need to display (eg, the 0x0A
                         * following an AAM or AAD instruction), so we suppress the byte if it lacks a TYPE_IN
                         * or TYPE_OUT designation (and TYPE_BOTH, as the name implies, includes both).
                         */
                        if (type & Debugger.TYPE_BOTH) {
                            sOperand = str.toHex(this.getByte(dbgAddr, 1), 2);
                        }
                        break;
                    case Debugger.TYPE_SBYTE:
                        sOperand = str.toHex((this.getByte(dbgAddr, 1) << 24) >> 24, 4);
                        break;
                    case Debugger.TYPE_VWORD:
                    case Debugger.TYPE_2WORD:
                        if (dbgAddr.fData32) {
                            sOperand = str.toHex(this.getLong(dbgAddr, 4));
                            break;
                        }
                        /* falls through */
                    case Debugger.TYPE_WORD:
                        sOperand = str.toHex(this.getShort(dbgAddr, 2), 4);
                        break;
                    case Debugger.TYPE_FARP:
                        sOperand = this.hexAddr(this.newAddr(this.getWord(dbgAddr, true), this.getShort(dbgAddr, 2), null, dbgAddr.fData32, dbgAddr.fAddr32));
                        break;
                    default:
                        sOperand = "imm(" + str.toHexWord(type) + ")";
                        break;
                    }
                    return sOperand;
                };
            
                /**
                 * getRegOperand(bReg, type, dbgAddr)
                 *
                 * @this {Debugger}
                 * @param {number} bReg
                 * @param {number} type
                 * @param {{DbgAddr}} dbgAddr
                 * @return {string} operand
                 */
                Debugger.prototype.getRegOperand = function(bReg, type, dbgAddr)
                {
                    var typeMode = type & Debugger.TYPE_MODE;
                    if (typeMode == Debugger.TYPE_SEGREG) {
                        if (bReg > Debugger.REG_GS ||
                            bReg >= Debugger.REG_FS && this.cpu.model < X86.MODEL_80386) return "??";
                        bReg += Debugger.REG_SEG;
                    }
                    else if (typeMode == Debugger.TYPE_CTLREG) {
                        bReg += Debugger.REG_CR0;
                    }
                    else {
                        var typeSize = type & Debugger.TYPE_SIZE;
                        if (typeSize >= Debugger.TYPE_WORD) {
                            if (bReg < Debugger.REG_AX) {
                                bReg += Debugger.REG_AX - Debugger.REG_AL;
                            }
                            if (typeSize == Debugger.TYPE_DWORD || typeSize == Debugger.TYPE_VWORD && dbgAddr.fData32) {
                                bReg += Debugger.REG_EAX - Debugger.REG_AX;
                            }
                        }
                    }
                    return Debugger.REGS[bReg];
                };
            
                /**
                 * getSIBOperand(bMod, dbgAddr)
                 *
                 * @this {Debugger}
                 * @param {number} bMod
                 * @param {{DbgAddr}} dbgAddr
                 * @return {string} operand
                 */
                Debugger.prototype.getSIBOperand = function(bMod, dbgAddr)
                {
                    var bSIB = this.getByte(dbgAddr, 1);
                    var bScale = bSIB >> 6;
                    var bIndex = (bSIB >> 3) & 0x7;
                    var bBase = bSIB & 0x7;
                    var sOperand = "";
                    /*
                     * Unless bMod is zero AND bBase is 5, there's always a base register.
                     */
                    if (bMod || bBase != 5) {
                        sOperand = Debugger.RMS[bBase + 8];
                    }
                    if (bIndex != 4) {
                        if (sOperand) sOperand += '+';
                        sOperand += Debugger.RMS[bIndex + 8];
                        if (bScale) sOperand += '*' + (0x1 << bScale);
                    }
                    /*
                     * If bMod is zero AND bBase is 5, there's a 32-bit displacement instead of a base register.
                     */
                    if (!bMod && bBase == 5) {
                        if (sOperand) sOperand += '+';
                        sOperand += str.toHex(this.getLong(dbgAddr, 4));
                    }
                    return sOperand;
                };
            
                /**
                 * getModRMOperand(bModRM, type, dbgAddr)
                 *
                 * @this {Debugger}
                 * @param {number} bModRM
                 * @param {number} type
                 * @param {{DbgAddr}} dbgAddr
                 * @return {string} operand
                 */
                Debugger.prototype.getModRMOperand = function(bModRM, type, dbgAddr)
                {
                    var sOperand = "";
                    var bMod = bModRM >> 6;
                    var bRM = bModRM & 0x7;
                    if (bMod < 3) {
                        var disp;
                        if (!bMod && (!dbgAddr.fAddr32 && bRM == 6 || dbgAddr.fAddr32 && bRM == 5)) {
                            bMod = 2;
                        } else {
                            if (dbgAddr.fAddr32) {
                                if (bRM != 4) {
                                    bRM += 8;
                                } else {
                                    sOperand = this.getSIBOperand(bMod, dbgAddr);
                                }
                            }
                            if (!sOperand) sOperand = Debugger.RMS[bRM];
                        }
                        if (bMod == 1) {
                            disp = this.getByte(dbgAddr, 1);
                            if (!(disp & 0x80)) {
                                sOperand += "+" + str.toHex(disp, 2);
                            }
                            else {
                                disp = ((disp << 24) >> 24);
                                sOperand += "-" + str.toHex(-disp, 2);
                            }
                        }
                        else if (bMod == 2) {
                            if (sOperand) sOperand += '+';
                            if (!dbgAddr.fAddr32) {
                                disp = this.getShort(dbgAddr, 2);
                                sOperand += str.toHex(disp, 4);
                            } else {
                                disp = this.getLong(dbgAddr, 4);
                                sOperand += str.toHex(disp);
                            }
                        }
                        sOperand = "[" + sOperand + "]";
                        if ((type & Debugger.TYPE_SIZE) == Debugger.TYPE_FARP) sOperand = "FAR " + sOperand;
                    }
                    else {
                        sOperand = this.getRegOperand(bRM, type, dbgAddr);
                    }
                    return sOperand;
                };
            
                /**
                 * parseInstruction(sOp, sOperand, addr)
                 *
                 * This generally requires an exact match of both the operation code (sOp) and mode operand
                 * (sOperand) against the aOps[] and aOpMods[] arrays, respectively; however, the regular
                 * expression built from aOpMods and stored in regexOpModes does relax the matching criteria
                 * slightly; ie, a 4-digit hex value ("nnnn") will be satisfied with either 3 or 4 digits, and
                 * similarly, a 2-digit hex address (nn) will be satisfied with either 1 or 2 digits.
                 *
                 * Note that this function does not actually store the instruction into memory, even though it requires
                 * a target address (addr); that parameter is currently needed ONLY for "branch" instructions, because in
                 * order to calculate the branch displacement, it needs to know where the instruction will ultimately be
                 * stored, relative to its target address.
                 *
                 * Another handy feature of this function is its ability to display all available modes for a particular
                 * operation. For example, while in "assemble mode", if one types:
                 *
                 *      ldy?
                 *
                 * the Debugger will display:
                 *
                 *      supported opcodes:
                 *           A0: LDY nn
                 *           A4: LDY [nn]
                 *           AC: LDY [nnnn]
                 *           B4: LDY [nn+X]
                 *           BC: LDY [nnnn+X]
                 *
                 * Use of a trailing "?" on any opcode will display all variations of that opcode; no instruction will be
                 * assembled, and the operand parameter, if any, will be ignored.
                 *
                 * Although this function is capable of reporting numerous errors, roughly half of them indicate internal
                 * consistency errors, not user errors; the former should really be asserts, but I'm not comfortable bombing
                 * out because of my error as opposed to their error.  The only errors a user should expect to see:
                 *
                 *      "unknown operation":    sOp is not a valid operation (per aOps)
                 *      "unknown operand":      sOperand is not a valid operand (per aOpMods)
                 *      "unknown instruction":  the combination of sOp + sOperand does not exist (per aaOpDescs)
                 *      "branch out of range":  the branch address, relative to addr, is too far away
                 *
                 * @this {Debugger}
                 * @param {string} sOp
                 * @param {string|undefined} sOperand
                 * @param {{DbgAddr}} dbgAddr of memory where this instruction is being assembled
                 * @return {Array.<number>} of opcode bytes; if the instruction can't be parsed, the array will be empty
                 */
                Debugger.prototype.parseInstruction = function(sOp, sOperand, dbgAddr)
                {
                    var aOpBytes = [];
                    this.println("not supported yet");
                    return aOpBytes;
                };
            
                /**
                 * getFlagStr(sFlag)
                 *
                 * @this {Debugger}
                 * @param {string} sFlag
                 * @return {string} value of flag
                 */
                Debugger.prototype.getFlagStr = function(sFlag)
                {
                    var b;
                    switch (sFlag) {
                    case "V":
                        b = this.cpu.getOF();
                        break;
                    case "D":
                        b = this.cpu.getDF();
                        break;
                    case "I":
                        b = this.cpu.getIF();
                        break;
                    case "T":
                        b = this.cpu.getTF();
                        break;
                    case "S":
                        b = this.cpu.getSF();
                        break;
                    case "Z":
                        b = this.cpu.getZF();
                        break;
                    case "A":
                        b = this.cpu.getAF();
                        break;
                    case "P":
                        b = this.cpu.getPF();
                        break;
                    case "C":
                        b = this.cpu.getCF();
                        break;
                    default:
                        b = 0;
                        break;
                    }
                    return sFlag + (b? '1' : '0') + ' ';
                };
            
                /**
                 * getLimitString(l)
                 *
                 * @this {Debugger}
                 * @param {number} l
                 * @return {string}
                 */
                Debugger.prototype.getLimitString = function(l)
                {
                    return str.toHex(l, (l & ~0xffff)? 8 : 4);
                };
            
                /**
                 * getRegString(iReg)
                 *
                 * @this {Debugger}
                 * @param {number} iReg
                 * @return {string}
                 */
                Debugger.prototype.getRegString = function(iReg)
                {
                    if (iReg >= Debugger.REG_AX && iReg <= Debugger.REG_DI && this.cchReg > 4) iReg += Debugger.REG_EAX - Debugger.REG_AX;
                    var sReg = Debugger.REGS[iReg];
                    if (iReg == Debugger.REG_CR0 && this.cpu.model == X86.MODEL_80286) sReg = "MS";
                    return sReg + '=' + this.getRegValue(iReg) + ' ';
                };
            
                /**
                 * getSegString(seg, fProt)
                 *
                 * @this {Debugger}
                 * @param {X86Seg} seg
                 * @param {boolean} [fProt]
                 * @return {string}
                 */
                Debugger.prototype.getSegString = function(seg, fProt)
                {
                    return seg.sName + '=' + str.toHex(seg.sel, 4) + (fProt? '[' + str.toHex(seg.base, this.cchAddr) + ',' + this.getLimitString(seg.limit) + ']' : "");
                };
            
                /**
                 * getDTRString(sName, sel, addr, addrLimit)
                 *
                 * @this {Debugger}
                 * @param {string} sName
                 * @param {number|null} sel
                 * @param {number} addr
                 * @param {number} addrLimit
                 * @return {string}
                 */
                Debugger.prototype.getDTRString = function(sName, sel, addr, addrLimit)
                {
                    return sName + '=' + (sel != null? str.toHex(sel, 4) : "") + '[' + str.toHex(addr, this.cchAddr) + ',' + str.toHex(addrLimit - addr, 4) + ']';
                };
            
                /**
                 * getRegDump(fProt)
                 *
                 * Sample 8086 and 80286 real-mode register dump:
                 *
                 *      AX=0000 BX=0000 CX=0000 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
                 *      SS=0000 DS=0000 ES=0000 PS=0002 V0 D0 I0 T0 S0 Z0 A0 P0 C0
                 *      F000:FFF0 EA5BE000F0    JMP      F000:E05B
                 *
                 * Sample 80386 real-mode register dump:
                 *
                 *      EAX=00000000 EBX=00000000 ECX=00000000 EDX=00000000
                 *      ESP=00000000 EBP=00000000 ESI=00000000 EDI=00000000
                 *      SS=0000 DS=0000 ES=0000 FS=0000 GS=0000 PS=00000002 V0 D0 I0 T0 S0 Z0 A0 P0 C0
                 *      F000:FFF0 EA05F900F0    JMP      F000:F905
                 *
                 * Sample 80286 protected-mode register dump:
                 *
                 *      AX=0000 BX=0000 CX=0000 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
                 *      SS=0000[000000,FFFF] DS=0000[000000,FFFF] ES=0000[000000,FFFF] A20=ON
                 *      CS=F000[FF0000,FFFF] LD=0000[000000,FFFF] GD=[000000,FFFF] ID=[000000,03FF]
                 *      TR=0000 MS=FFF0 PS=0002 V0 D0 I0 T0 S0 Z0 A0 P0 C0
                 *      F000:FFF0 EA5BE000F0    JMP      F000:E05B
                 *
                 * Sample 80386 protected-mode register dump:
                 *
                 *      EAX=00000000 EBX=00000000 ECX=00000000 EDX=00000000
                 *      ESP=00000000 EBP=00000000 ESI=00000000 EDI=00000000
                 *      SS=0000[00000000,FFFF] DS=0000[00000000,FFFF] ES=0000[00000000,FFFF]
                 *      CS=F000[FFFF0000,FFFF] FS=0000[00000000,FFFF] GS=0000[00000000,FFFF]
                 *      LD=0000[00000000,FFFF] GD=[00000000,FFFF] ID=[00000000,03FF] TR=0000 A20=ON
                 *      CR0=00000010 CR2=00000000 CR3=00000000 PS=00000002 V0 D0 I0 T0 S0 Z0 A0 P0 C0
                 *      F000:0000FFF0 EA05F900F0    JMP      F000:0000F905
                 *
                 * This no longer includes CS in real-mode (or EIP in any mode), because that information can be obtained from the
                 * first line of disassembly, which an "r" or "rp" command will also display.
                 *
                 * Note that even when the processor is in real mode, you can always use the "rp" command to force a protected-mode
                 * dump, in case you need to verify any selector base or limit values, since those do affect real-mode operation.
                 *
                 * @this {Debugger}
                 * @param {boolean} [fProt]
                 * @return {string}
                 */
                Debugger.prototype.getRegDump = function(fProt)
                {
                    var s;
                    if (fProt === undefined) {
                        fProt = !!(this.cpu.regCR0 & X86.CR0.MSW.PE);
                    }
                    s = this.getRegString(Debugger.REG_AX) +
                        this.getRegString(Debugger.REG_BX) +
                        this.getRegString(Debugger.REG_CX) +
                        this.getRegString(Debugger.REG_DX) + (this.cchReg > 4? '\n' : '') +
                        this.getRegString(Debugger.REG_SP) +
                        this.getRegString(Debugger.REG_BP) +
                        this.getRegString(Debugger.REG_SI) +
                        this.getRegString(Debugger.REG_DI) + '\n' +
                        this.getSegString(this.cpu.segSS, fProt) + ' ' +
                        this.getSegString(this.cpu.segDS, fProt) + ' ' +
                        this.getSegString(this.cpu.segES, fProt) + ' ';
                    if (fProt) {
                        var sTR = "TR=" + str.toHex(this.cpu.segTSS.sel, 4);
                        var sA20 = "A20=" + (this.bus.getA20()? "ON " : "OFF ");
                        if (this.cpu.model < X86.MODEL_80386) {
                            sTR = '\n' + sTR;
                            s += sA20; sA20 = '';
                        }
                        s += '\n' + this.getSegString(this.cpu.segCS, fProt) + ' ';
                        if (I386 && this.cpu.model >= X86.MODEL_80386) {
                            sA20 += '\n';
                            s += this.getSegString(this.cpu.segFS, fProt) + ' ' +
                                 this.getSegString(this.cpu.segGS, fProt) + '\n';
                        }
                        s += this.getDTRString("LD", this.cpu.segLDT.sel, this.cpu.segLDT.base, this.cpu.segLDT.base + this.cpu.segLDT.limit) + ' ' +
                             this.getDTRString("GD", null, this.cpu.addrGDT, this.cpu.addrGDTLimit) + ' ' +
                             this.getDTRString("ID", null, this.cpu.addrIDT, this.cpu.addrIDTLimit) + ' ';
                        s += sTR + ' ' + sA20;
                        s += this.getRegString(Debugger.REG_CR0);
                        if (I386 && this.cpu.model >= X86.MODEL_80386) {
                            s += this.getRegString(Debugger.REG_CR2) + this.getRegString(Debugger.REG_CR3);
                        }
                    } else {
                        if (I386 && this.cpu.model >= X86.MODEL_80386) {
                            s += this.getSegString(this.cpu.segFS, fProt) + ' ' +
                                 this.getSegString(this.cpu.segGS, fProt) + ' ';
                        }
                    }
                    s += this.getRegString(Debugger.REG_PS) +
                         this.getFlagStr("V") + this.getFlagStr("D") + this.getFlagStr("I") + this.getFlagStr("T") +
                         this.getFlagStr("S") + this.getFlagStr("Z") + this.getFlagStr("A") + this.getFlagStr("P") + this.getFlagStr("C");
                    return s;
                };
            
                /**
                 * parseAddr(sAddr, type)
                 *
                 * As discussed above, dbgAddr variables contain one or more of: off, sel, and addr.  They represent
                 * a segmented address (sel:off) when sel is defined or a linear address (addr) when sel is undefined
                 * (or null).
                 *
                 * To create a segmented address, specify two values separated by ":"; for a linear address, use
                 * a "%" prefix.  We check for ":" after "%", so if for some strange reason you specify both, the
                 * address will be treated as segmented, not linear.
                 *
                 * The "%" syntax is similar to that used by the Windows 80386 kernel debugger (wdeb386) for linear
                 * addresses.  If/when we add support for processors with page tables, we will likely adopt the same
                 * convention for linear addresses and provide a different syntax (eg, "%%") physical memory references.
                 *
                 * Address evaluation and validation (eg, range checks) are no longer performed at this stage.  That's
                 * done later, by getAddr(), which returns X86.ADDR_INVALID for invalid segments, out-of-range offsets,
                 * etc.  The Debugger's low-level get/set memory functions verify all getAddr() results, but even if an
                 * invalid address is passed through to the Bus memory interfaces, the address will simply be masked with
                 * Bus.nBusLimit; in the case of X86.ADDR_INVALID, that will generally refer to the top of the physical
                 * address space.
                 *
                 * @this {Debugger}
                 * @param {string|undefined} sAddr
                 * @param {number|undefined} [type] is the address segment type, in case sAddr doesn't specify a segment
                 * @return {{DbgAddr}}
                 */
                Debugger.prototype.parseAddr = function(sAddr, type)
                {
                    var dbgAddr;
                    var dbgAddrNext = (type === Debugger.ADDR_CODE? this.dbgAddrNextCode : this.dbgAddrNextData);
                    var off = dbgAddrNext.off, sel = dbgAddrNext.sel, addr = dbgAddrNext.addr;
            
                    if (sAddr !== undefined) {
            
                        if (sAddr.charAt(0) == '%') {
                            sAddr = sAddr.substr(1);
                            off = 0;
                            sel = null;
                            addr = 0;
                        }
            
                        dbgAddr = this.findSymbolAddr(sAddr);
                        if (dbgAddr && dbgAddr.off != null) return dbgAddr;
            
                        var iColon = sAddr.indexOf(":");
                        if (iColon < 0) {
                            if (sel != null) {
                                off = this.parseValue(sAddr);
                                addr = null;
                            } else {
                                addr = this.parseValue(sAddr);
                            }
                        }
                        else {
                            sel = this.parseValue(sAddr.substring(0, iColon));
                            off = this.parseValue(sAddr.substring(iColon + 1));
                            addr = null;
                        }
                    }
            
                    dbgAddr = this.newAddr(off, sel, addr);
                    this.checkLimit(dbgAddr);
                    return dbgAddr;
                };
            
                Debugger.aBinOpPrecedence = {
                    '|':    0,      // bitwise OR
                    '^':    1,      // bitwise XOR
                    '&':    2,      // bitwise AND
                    '-':    4,      // subtraction
                    '+':    4,      // addition
                    '%':    5,      // remainder
                    '/':    5,      // division
                    '*':    5       // multiplication
                };
            
                /**
                 * evalExpression(aVals, aOps, cOps)
                 *
                 * @this {Debugger}
                 * @param {Array.<number>} aVals
                 * @param {Array.<string>} aOps
                 * @param {number} [cOps] (default is all)
                 * @return {boolean} true if successful, false if error
                 */
                Debugger.prototype.evalExpression = function(aVals, aOps, cOps)
                {
                    cOps = cOps || -1;
                    while (cOps-- && aOps.length) {
                        var chOp = aOps.pop();
                        if (aVals.length < 2) return false;
                        var valNew;
                        var val2 = aVals.pop();
                        var val1 = aVals.pop();
                        switch(chOp) {
                        case '+':
                            valNew = val1 + val2;
                            break;
                        case '-':
                            valNew = val1 - val2;
                            break;
                        case '*':
                            valNew = val1 * val2;
                            break;
                        case '/':
                            if (!val2) return false;
                            valNew = val1 / val2;
                            break;
                        case '%':
                            if (!val2) return false;
                            valNew = val1 % val2;
                            break;
                        case '&':
                            valNew = val1 & val2;
                            break;
                        case '^':
                            valNew = val1 ^ val2;
                            break;
                        case '|':
                            valNew = val1 | val2;
                            break;
                        default:
                            return false;
                        }
                        aVals.push(valNew|0);
                    }
                    return true;
                };
            
                /**
                 * parseExpression(sExp, fPrint)
                 *
                 * A quick-and-dirty expression parser.  It takes an expression like:
                 *
                 *      EDX+EDX*4+12345678
                 *
                 * and builds value (aVals) and "binop" operator (aOps) stacks:
                 *
                 *      EDX         +
                 *      EDX         *
                 *      4           +
                 *      ...
                 *
                 * We pop 1 "binop" and 2 values whenever a "binop" of lower priority than its predecessor is encountered,
                 * evaluate and push the result.
                 *
                 * @this {Debugger}
                 * @param {string|undefined} sExp
                 * @param {boolean} [fPrint] is true to print all resolved values
                 * @return {number|undefined} numeric value, or undefined if sExp contains any undefined or invalid values
                 */
                Debugger.prototype.parseExpression = function(sExp, fPrint)
                {
                    var value;
                    var fError = false;
                    var sExpOrig = sExp;
                    var aVals = [], aOps = [];
                    var asValues = sExp.split(/[|^&+%\/*-]/);       // RegExp of "binops" only (unary and others saved for a rainy day)
                    for (var i = 0; i < asValues.length; i++) {
                        var sValue = asValues[i];
                        var s = str.trim(asValues[i]);
                        if (!s) {
                            fError = true;
                            break;
                        }
                        var v = this.parseValue(s);
                        if (v === undefined) {
                            fError = true;
                            break;
                        }
                        aVals.push(v);
                        var chOp = sExp.substr(sValue.length, 1);
                        if (!chOp) break;
                        this.assert(Debugger.aBinOpPrecedence[chOp] != null);
                        if (aOps.length && Debugger.aBinOpPrecedence[chOp] < Debugger.aBinOpPrecedence[aOps[aOps.length-1]]) {
                            this.evalExpression(aVals, aOps, 1);
                        }
                        aOps.push(chOp);
                        sExp = sExp.substr(sValue.length + 1);
                    }
                    if (!this.evalExpression(aVals, aOps) || aVals.length != 1) {
                        fError = true;
                    }
                    if (!fError) {
                        value = aVals.pop();
                        if (fPrint) this.println(sExpOrig + "=" + value + " (" + str.toHexLong(value) + ")");
                    } else {
                        if (fPrint) this.println("error parsing '" + sExpOrig + "' at character " + (sExpOrig.length - sExp.length));
                    }
                    return value;
                };
            
                /**
                 * parseValue(sValue, sName)
                 *
                 * @this {Debugger}
                 * @param {string|undefined} sValue
                 * @param {string} [sName] is the name of the value, if any
                 * @return {number|undefined} numeric value, or undefined if sValue is either undefined or invalid
                 */
                Debugger.prototype.parseValue = function(sValue, sName)
                {
                    var value;
                    if (sValue !== undefined) {
                        var iReg = this.getRegIndex(sValue);
                        if (iReg >= 0) sValue = this.getRegValue(iReg);
                        value = str.parseInt(sValue);
                        if (value === undefined) this.println("invalid " + (sName? sName : "value") + ": " + sValue);
                    } else {
                        this.println("missing " + (sName || "value"));
                    }
                    return value;
                };
            
                /**
                 * addSymbols(addr, size, aSymbols)
                 *
                 * As filedump.js (formerly convrom.php) explains, aSymbols is a JSON-encoded object whose properties consist
                 * of all the symbols (in upper-case), and the values of those properties are objects containing any or all of
                 * the following properties:
                 *
                 *      "v": the value of an absolute (unsized) value
                 *      "b": either 1, 2, 4 or undefined if an unsized value
                 *      "s": either a hard-coded segment or undefined
                 *      "o": the offset of the symbol within the associated address space
                 *      "l": the original-case version of the symbol, present only if it wasn't originally upper-case
                 *      "a": annotation for the specified offset; eg, the original assembly language, with optional comment
                 *
                 * To that list of properties, we also add:
                 *
                 *      "p": the physical address (calculated whenever both "s" and "o" properties are defined)
                 *
                 * Note that values for any "v", "b", "s" and "o" properties are unquoted decimal values, and the values
                 * for any "l" or "a" properties are quoted strings. Also, if double-quotes were used in any of the original
                 * annotation ("a") values, they will have been converted to two single-quotes, so we're responsible for
                 * converting them back to individual double-quotes.
                 *
                 * For example:
                 *      {
                 *          "HF_PORT": {
                 *              "v":800
                 *          },
                 *          "HDISK_INT": {
                 *              "b":4, "s":0, "o":52
                 *          },
                 *          "ORG_VECTOR": {
                 *              "b":4, "s":0, "o":76
                 *          },
                 *          "CMD_BLOCK": {
                 *              "b":1, "s":64, "o":66
                 *          },
                 *          "DISK_SETUP": {
                 *              "o":3
                 *          },
                 *          ".40": {
                 *              "o":40, "a":"MOV AX,WORD PTR ORG_VECTOR ;GET DISKETTE VECTOR"
                 *          }
                 *      }
                 *
                 * If a symbol only has an offset, then that offset value can be assigned to the symbol property directly:
                 *
                 *          "DISK_SETUP": 3
                 *
                 * The last property is an example of an "anonymous" entry, for offsets where there is no associated symbol.
                 * Such entries are identified by a period followed by a unique number (usually the offset of the entry), and
                 * they usually only contain offset ("o") and annotation ("a") properties.  I could eliminate the leading
                 * period, but it offers a very convenient way of quickly discriminating among genuine vs. anonymous symbols.
                 *
                 * We add all these entries to our internal symbol table, which is an array of 4-element arrays, each of which
                 * look like:
                 *
                 *      [addr, size, aSymbols, aOffsetPairs]
                 *
                 * There are two basic symbol operations: findSymbolAddr(), which takes a string and attempts to match it
                 * to a non-anonymous symbol with a matching offset ("o") property, and findSymbolAtAddr(), which takes an
                 * address and finds the symbol, if any, at that address.
                 *
                 * To implement findSymbolAtAddr() efficiently, addSymbols() creates an array of [offset, sSymbol] pairs
                 * (aOffsetPairs), one pair for each symbol that corresponds to an offset within the specified address space.
                 *
                 * We guarantee the elements of aOffsetPairs are in offset order, because we build it using binaryInsert();
                 * it's quite likely that the MAP file already ordered all its symbols in offset order, but since they're
                 * hand-edited files, we can't assume that.  This insures that findSymbolAtAddr()'s binarySearch() will operate
                 * properly.
                 *
                 * @this {Debugger}
                 * @param {number} addr is the physical address of the region where the given symbols are located
                 * @param {number} size is the size of the region, in bytes
                 * @param {Object} aSymbols is the collection of symbols (the format of this object is described below)
                 */
                Debugger.prototype.addSymbols = function(addr, size, aSymbols)
                {
                    var dbgAddr = {};
                    var aOffsetPairs = [];
                    var fnComparePairs = function(p1, p2) {
                        return p1[0] > p2[0]? 1 : p1[0] < p2[0]? -1 : 0;
                    };
                    for (var sSymbol in aSymbols) {
                        var symbol = aSymbols[sSymbol];
                        if (typeof symbol == "number") {
                            aSymbols[sSymbol] = symbol = {'o': symbol};
                        }
                        var off = symbol['o'];
                        var sel = symbol['s'];
                        var sAnnotation = symbol['a'];
                        if (off !== undefined) {
                            if (sel !== undefined) {
                                dbgAddr.off = off;
                                dbgAddr.sel = sel;
                                dbgAddr.addr = null;
                                /*
                                 * getAddr() computes the corresponding physical address and saves it in dbgAddr.addr.
                                 */
                                this.getAddr(dbgAddr);
                                /*
                                 * The physical address for any symbol located in the top 64Kb of the machine's address space
                                 * should be relocated to the top 64Kb of the first 1Mb, so that we're immune from any changes
                                 * to the A20 line.
                                 */
                                if ((dbgAddr.addr & ~0xffff) == (this.bus.nBusLimit & ~0xffff)) {
                                    dbgAddr.addr &= 0x000fffff;
                                }
                                symbol['p'] = dbgAddr.addr;
                            }
                            usr.binaryInsert(aOffsetPairs, [off, sSymbol], fnComparePairs);
                        }
                        if (sAnnotation) symbol['a'] = sAnnotation.replace(/''/g, "\"");
                    }
                    this.aSymbolTable.push([addr, size, aSymbols, aOffsetPairs]);
                };
            
                /**
                 * dumpSymbols()
                 *
                 * TODO: Add "numerical" and "alphabetical" dump options. This is simply dumping them in whatever
                 * order they appeared in the original MAP file.
                 *
                 * @this {Debugger}
                 */
                Debugger.prototype.dumpSymbols = function()
                {
                    for (var i = 0; i < this.aSymbolTable.length; i++) {
                        var addr = this.aSymbolTable[i][0];
                      //var size = this.aSymbolTable[i][1];
                        var aSymbols = this.aSymbolTable[i][2];
                        for (var sSymbol in aSymbols) {
                            if (sSymbol.charAt(0) == '.') continue;
                            var symbol = aSymbols[sSymbol];
                            var off = symbol['o'];
                            if (off === undefined) continue;
                            var sel = symbol['s'];
                            if (sel === undefined) sel = (addr >>> 4);
                            var sSymbolOrig = aSymbols[sSymbol]['l'];
                            if (sSymbolOrig) sSymbol = sSymbolOrig;
                            this.println(this.hexOffset(off, sel) + " " + sSymbol);
                        }
                    }
                };
            
                /**
                 * findSymbolAddr(sSymbol)
                 *
                 * Search aSymbolTable for sSymbol, and if found, return a dbgAddr (same as parseAddr())
                 *
                 * @this {Debugger}
                 * @param {string} sSymbol
                 * @return {{DbgAddr}|null} a valid dbgAddr if a valid symbol, an empty dbgAddr if an unknown symbol, or null if not a symbol
                 */
                Debugger.prototype.findSymbolAddr = function(sSymbol)
                {
                    var dbgAddr = null;
                    if (sSymbol.match(/^[a-z_][a-z0-9_]*$/i)) {
                        dbgAddr = {};
                        var sUpperCase = sSymbol.toUpperCase();
                        for (var i = 0; i < this.aSymbolTable.length; i++) {
                            var addr = this.aSymbolTable[i][0];
                            //var size = this.aSymbolTable[i][1];
                            var aSymbols = this.aSymbolTable[i][2];
                            var symbol = aSymbols[sUpperCase];
                            if (symbol !== undefined) {
                                var off = symbol['o'];
                                if (off !== undefined) {
                                    /*
                                     * We assume that every ROM is ORG'ed at 0x0000, and therefore unless the symbol has an
                                     * explicitly-defined segment, we return the segment as "addr >>> 4".  Down the road, we may
                                     * want/need to support a special symbol entry (eg, ".ORG") that defines an alternate origin.
                                     */
                                    var sel = symbol['s'];
                                    if (sel === undefined) sel = addr >>> 4;
                                    // dbgAddr = this.newAddr(off, sel);
                                    dbgAddr.off = off;
                                    dbgAddr.sel = sel;
                                    if (symbol['p'] !== undefined) dbgAddr.addr = symbol['p'];
                                }
                                /*
                                 * The symbol matched, but it wasn't for an address (no "o" offset), and there's no point
                                 * looking any farther, since each symbol appears only once, so we indicate it's an unknown symbol.
                                 */
                                break;
                            }
                        }
                    }
                    return dbgAddr;
                };
            
                /**
                 * findSymbolAtAddr(dbgAddr, fNearest)
                 *
                 * Search aSymbolTable for dbgAddr, and return an Array for the corresponding symbol (empty if not found).
                 *
                 * If fNearest is true, and no exact match was found, then the Array returned will contain TWO sets of
                 * entries: [0]-[3] will refer to closest preceding symbol, and [4]-[7] will refer to the closest subsequent symbol.
                 *
                 * @this {Debugger}
                 * @param {{DbgAddr}} dbgAddr
                 * @param {boolean} [fNearest]
                 * @return {Array|null} where [0] == symbol name, [1] == symbol value, [2] == any annotation, and [3] == any associated comment
                 */
                Debugger.prototype.findSymbolAtAddr = function(dbgAddr, fNearest)
                {
                    var aSymbol = [];
                    var addr = this.getAddr(dbgAddr);
                    for (var iTable = 0; iTable < this.aSymbolTable.length; iTable++) {
                        var addrSymbol = this.aSymbolTable[iTable][0];
                        var sizeSymbol = this.aSymbolTable[iTable][1];
                        if (addr >= addrSymbol && addr < addrSymbol + sizeSymbol) {
                            var offset = dbgAddr.off;
                            var aOffsetPairs = this.aSymbolTable[iTable][3];
                            var fnComparePairs = function(p1, p2)
                            {
                                return p1[0] > p2[0]? 1 : p1[0] < p2[0]? -1 : 0;
                            };
                            var result = usr.binarySearch(aOffsetPairs, [offset], fnComparePairs);
                            if (result >= 0) {
                                this.returnSymbol(iTable, result, aSymbol);
                            }
                            else if (fNearest) {
                                result = ~result;
                                this.returnSymbol(iTable, result-1, aSymbol);
                                this.returnSymbol(iTable, result, aSymbol);
                            }
                            break;
                        }
                    }
                    return aSymbol;
                };
            
                /**
                 * returnSymbol(iTable, iOffset, aSymbol)
                 *
                 * Helper function for findSymbolAtAddr().
                 *
                 * @param {number} iTable
                 * @param {number} iOffset
                 * @param {Array} aSymbol is updated with the specified symbol, if it exists
                 */
                Debugger.prototype.returnSymbol = function(iTable, iOffset, aSymbol)
                {
                    var symbol = {};
                    var aOffsetPairs = this.aSymbolTable[iTable][3];
                    var offset = 0, sSymbol = null;
                    if (iOffset >= 0 && iOffset < aOffsetPairs.length) {
                        offset = aOffsetPairs[iOffset][0];
                        sSymbol = aOffsetPairs[iOffset][1];
                    }
                    if (sSymbol) {
                        symbol = this.aSymbolTable[iTable][2][sSymbol];
                        sSymbol = (sSymbol.charAt(0) == '.'? null : (symbol['l'] || sSymbol));
                    }
                    aSymbol.push(sSymbol);
                    aSymbol.push(offset);
                    aSymbol.push(symbol['a']);
                    aSymbol.push(symbol['c']);
                };
            
                /**
                 * doHelp()
                 *
                 * @this {Debugger}
                 */
                Debugger.prototype.doHelp = function()
                {
                    var s = "commands:";
                    for (var sCommand in Debugger.COMMANDS) {
                        s += '\n' + str.pad(sCommand, 7) + Debugger.COMMANDS[sCommand];
                    }
                    if (!this.checksEnabled()) s += "\nnote: frequency/history disabled if no exec breakpoints";
                    this.println(s);
                };
            
                /**
                 * doAssemble(asArgs)
                 *
                 * This always receives the complete argument array, where the order of the arguments is:
                 *
                 *      [0]: the assemble command (assumed to be "a")
                 *      [1]: the target address (eg, "200")
                 *      [2]: the operation code, aka instruction name (eg, "adc")
                 *      [3]: the operation mode operand, if any (eg, "14", "[1234]", etc)
                 *
                 * The Debugger enters "assemble mode" whenever only the first (or first and second) arguments are present.
                 * As long as "assemble mode is active, the user can omit the first two arguments on all later assemble commands
                 * until "assemble mode" is cancelled with an empty command line; the command processor automatically prepends "a"
                 * and the next available target address to the argument array.
                 *
                 * Entering "assemble mode" is optional; one could enter a series of fully-qualified assemble commands; eg:
                 *
                 *      a ff00 cld
                 *      a ff01 ldx 28
                 *      ...
                 *
                 * without ever entering "assemble mode", but of course, that requires more typing and doesn't take advantage
                 * of automatic target address advancement (see dbgAddrAssemble).
                 *
                 * NOTE: As the previous example implies, you can even assemble new instructions into ROM address space;
                 * as our setByte() function explains, the ROM write-notification handlers only refuse writes from the CPU.
                 *
                 * @this {Debugger}
                 * @param {Array.<string>} asArgs is the complete argument array, beginning with the "a" command in asArgs[0]
                 */
                Debugger.prototype.doAssemble = function(asArgs)
                {
                    var dbgAddr = this.parseAddr(asArgs[1], Debugger.ADDR_CODE);
                    if (dbgAddr.off == null) return;
            
                    this.dbgAddrAssemble = dbgAddr;
                    if (asArgs[2] === undefined) {
                        this.println("begin assemble @" + this.hexAddr(dbgAddr));
                        this.fAssemble = true;
                        this.cpu.updateCPU();
                        return;
                    }
            
                    var aOpBytes = this.parseInstruction(asArgs[2], asArgs[3], dbgAddr);
                    if (aOpBytes.length) {
                        for (var i = 0; i < aOpBytes.length; i++) {
                            this.setByte(dbgAddr, aOpBytes[i], 1);
                        }
                        /*
                         * Since getInstruction() also updates the specified address, dbgAddrAssemble is automatically advanced.
                         */
                        this.println(this.getInstruction(this.dbgAddrAssemble));
                    }
                };
            
                /**
                 * doBreak(sCmd, sAddr)
                 *
                 * As the "help" output below indicates, the following breakpoint commands are supported:
                 *
                 *      bp [a]  set exec breakpoint on linear addr [a]
                 *      br [a]  set read breakpoint on linear addr [a]
                 *      bw [a]  set write breakpoint on linear addr [a]
                 *      bc [a]  clear breakpoint on linear addr [a] (use "*" for all breakpoints)
                 *      bl      list breakpoints
                 *
                 * to which we have recently added the following I/O breakpoint commands:
                 *
                 *      bi [p]  toggle input breakpoint on port [p] (use "*" for all input ports)
                 *      bo [p]  toggle output breakpoint on port [p] (use "*" for all output ports)
                 *
                 * These two new commands operate as toggles so that if "*" is used to trap all input (or output),
                 * you can also use these commands to NOT trap specific ports.
                 *
                 * @this {Debugger}
                 * @param {string} sCmd
                 * @param {string} [sAddr]
                 */
                Debugger.prototype.doBreak = function(sCmd, sAddr)
                {
                    var sParm = sCmd.charAt(1);
                    if (!sParm || sParm == "?") {
                        this.println("\nbreakpoint commands:");
                        this.println("\tbi [p]\ttoggle break on input port [p]");
                        this.println("\tbo [p]\ttoggle break on output port [p]");
                        this.println("\tbp [a]\tset exec breakpoint at addr [a]");
                        this.println("\tbr [a]\tset read breakpoint at addr [a]");
                        this.println("\tbw [a]\tset write breakpoint at addr [a]");
                        this.println("\tbc [a]\tclear breakpoint at addr [a]");
                        this.println("\tbl\tlist all breakpoints");
                        return;
                    }
                    if (sParm == "l") {
                        var cBreaks = 0;
                        cBreaks += this.listBreakpoints(this.aBreakExec);
                        cBreaks += this.listBreakpoints(this.aBreakRead);
                        cBreaks += this.listBreakpoints(this.aBreakWrite);
                        if (!cBreaks) this.println("no breakpoints");
                        return;
                    }
                    if (sAddr === undefined) {
                        this.println("missing breakpoint address");
                        return;
                    }
                    var dbgAddr = {};
                    if (sAddr != "*") {
                        dbgAddr = this.parseAddr(sAddr, Debugger.ADDR_CODE);
                        if (dbgAddr.off == null) return;
                    }
                    sAddr = (dbgAddr.off == null? sAddr : str.toHexWord(dbgAddr.off));
                    if (sParm == "c") {
                        if (dbgAddr.off == null) {
                            this.clearBreakpoints();
                            this.println("all breakpoints cleared");
                            return;
                        }
                        if (this.findBreakpoint(this.aBreakExec, dbgAddr, true))
                            return;
                        if (this.findBreakpoint(this.aBreakRead, dbgAddr, true))
                            return;
                        if (this.findBreakpoint(this.aBreakWrite, dbgAddr, true))
                            return;
                        this.println("breakpoint missing: " + this.hexAddr(dbgAddr));
                        return;
                    }
                    if (sParm == "i") {
                        this.println("breakpoint " + (this.bus.addPortInputBreak(dbgAddr.off)? "enabled" : "cleared") + ": port " + sAddr + " (input)");
                        return;
                    }
                    if (sParm == "o") {
                        this.println("breakpoint " + (this.bus.addPortOutputBreak(dbgAddr.off)? "enabled" : "cleared") + ": port " + sAddr + " (output)");
                        return;
                    }
                    if (dbgAddr.off == null) return;
                    if (sParm == "p") {
                        this.addBreakpoint(this.aBreakExec, dbgAddr);
                        return;
                    }
                    if (sParm == "r") {
                        this.addBreakpoint(this.aBreakRead, dbgAddr);
                        return;
                    }
                    if (sParm == "w") {
                        this.addBreakpoint(this.aBreakWrite, dbgAddr);
                        return;
                    }
                    this.println("unknown breakpoint command: " + sParm);
                };
            
                /**
                 * doClear(sCmd)
                 *
                 * @this {Debugger}
                 * @param {string} sCmd (eg, "cls" or "clear")
                 */
                Debugger.prototype.doClear = function(sCmd)
                {
                    /*
                     * TODO: There should be a clear() component method that the Control Panel overrides to perform this function.
                     */
                    if (this.controlPrint) this.controlPrint.value = "";
                };
            
                /**
                 * doDump(sCmd, sAddr, sLen)
                 *
                 * While sLen is interpreted as a number of bytes or words, it's converted to the appropriate number of lines,
                 * because we always display whole lines.  If sLen is omitted/undefined, then we default to 8 lines, regardless
                 * whether dumping bytes or words.
                 *
                 * Also, unlike sAddr, sLen is interpreted as a decimal number, unless a radix specifier is included (eg, "0x100");
                 * sLen also supports the DEBUG.COM-style syntax of a preceding "l" (eg, "l16").
                 *
                 * @this {Debugger}
                 * @param {string} sCmd
                 * @param {string|undefined} sAddr
                 * @param {string|undefined} sLen (if present, it can be preceded by an "l", which we simply ignore)
                 */
                Debugger.prototype.doDump = function(sCmd, sAddr, sLen)
                {
                    var m;
                    if (sAddr == "?") {
                        var sDumpers = "";
                        for (m in Debugger.MESSAGES) {
                            if (this.afnDumpers[m]) {
                                if (sDumpers) sDumpers += ",";
                                sDumpers = sDumpers + m;
                            }
                        }
                        sDumpers += ",state,symbols";
                        this.println("\ndump commands:");
                        this.println("\tdb [a] [#]    dump # bytes at address a");
                        this.println("\tdw [a] [#]    dump # words at address a");
                        this.println("\tdd [a] [#]    dump # dwords at address a");
                        this.println("\tdh [#] [#]    dump # instructions prior");
                        if (BACKTRACK) {
                            this.println("\tdi [a]        dump backtrack info at address a");
                        }
                        if (sDumpers.length) this.println("dump extensions:\n\t" + sDumpers);
                        return;
                    }
                    if (sAddr == "state") {
                        this.println(this.cmp.powerOff(true));
                        return;
                    }
                    if (sAddr == "symbols") {
                        this.dumpSymbols();
                        return;
                    }
                    var cLines = 0;
                    if (sLen) {
                        if (sLen.charAt(0) == "l") sLen = sLen.substr(1);
                        cLines = +sLen;
                    }
                    if (sCmd == "dh") {
                        this.dumpHistory(sAddr, cLines);
                        return;
                    }
                    if (sCmd == "ds") {     // transform a "ds" command into a "d desc" command
                        sCmd = 'd';
                        sLen = sAddr;
                        sAddr = "desc";
                    }
                    for (m in Debugger.MESSAGES) {
                        if (sAddr == m) {
                            var fnDumper = this.afnDumpers[m];
                            if (fnDumper) {
                                fnDumper(sLen);
                            } else {
                                this.println("no dump registered for " + sAddr);
                            }
                            return;
                        }
                    }
                    var dbgAddr = this.parseAddr(sAddr, Debugger.ADDR_DATA);
                    if (dbgAddr.off == null || dbgAddr.sel == null && dbgAddr.addr == null) return;
            
                    var sDump = "";
                    if (BACKTRACK && sCmd == "di") {
                        var addr = this.getAddr(dbgAddr);
                        sDump += '%' + str.toHex(addr) + ": ";
                        var sInfo = this.bus.getBackTrackInfoFromAddr(addr);
                        sDump += sInfo || "no information";
                    }
                    else {
                        var cBytes = (sCmd == "dd"? 4 : (sCmd == "dw"? 2 : 1));
                        var cNumbers = (16 / cBytes)|0;
                        if (!cLines) {
                            cLines = 8;
                        } else {
                            cLines = ((cLines + cNumbers - 1) / cNumbers)|0;
                            if (!cLines) cLines = 1;
                        }
                        for (var iLine = 0; iLine < cLines; iLine++) {
                            var data = 0, iByte = 0;
                            var sData = "", sChars = "";
                            sAddr = this.hexAddr(dbgAddr);
                            for (var i = 0; i < 16; i++) {
                                var b = this.getByte(dbgAddr, 1);
                                data |= (b << (iByte++ << 3));
                                if (iByte == cBytes) {
                                    sData += str.toHex(data, cBytes * 2);
                                    sData += (cBytes == 1? (i == 7? '-' : ' ') : "  ");
                                    data = iByte = 0;
                                }
                                sChars += (b >= 32 && b < 128? String.fromCharCode(b) : ".");
                            }
                            if (sDump) sDump += "\n";
                            sDump += sAddr + "  " + sData + " " + sChars;
                        }
                    }
                    if (sDump) this.println(sDump);
                    this.dbgAddrNextData = dbgAddr;
                };
            
                /**
                 * doEdit(asArgs)
                 *
                 * @this {Debugger}
                 * @param {Array.<string>} asArgs
                 */
                Debugger.prototype.doEdit = function(asArgs)
                {
                    var sAddr = asArgs[1];
                    if (sAddr === undefined) {
                        this.println("missing address");
                        return;
                    }
                    var dbgAddr = this.parseAddr(sAddr, Debugger.ADDR_DATA);
                    if (dbgAddr.off == null) return;
                    for (var i = 2; i < asArgs.length; i++) {
                        var b = str.parseInt(asArgs[i], 16);
                        if (b === undefined) {
                            this.println("unrecognized value: " + str.toHexByte(b));
                            break;
                        }
                        this.println("setting " + this.hexAddr(dbgAddr) + " to " + str.toHexByte(b));
                        this.setByte(dbgAddr, b, 1);
                    }
                };
            
                /**
                 * doFreqs(sParm)
                 *
                 * @this {Debugger}
                 * @param {string|undefined} sParm
                 */
                Debugger.prototype.doFreqs = function(sParm)
                {
                    if (sParm == "?") {
                        this.println("\nfrequency commands:");
                        this.println("\tclear\tclear all frequency counts");
                        return;
                    }
                    var i;
                    var cData = 0;
                    if (this.aaOpcodeCounts) {
                        if (sParm == "clear") {
                            for (i = 0; i < this.aaOpcodeCounts.length; i++)
                                this.aaOpcodeCounts[i] = [i, 0];
                            this.println("frequency data cleared");
                            cData++;
                        }
                        else if (sParm !== undefined) {
                            this.println("unknown frequency command: " + sParm);
                            cData++;
                        }
                        else {
                            var aaSortedOpcodeCounts = this.aaOpcodeCounts.slice();
                            aaSortedOpcodeCounts.sort(function(p, q) {
                                return q[1] - p[1];
                            });
                            for (i = 0; i < aaSortedOpcodeCounts.length; i++) {
                                var bOpcode = aaSortedOpcodeCounts[i][0];
                                var cFreq = aaSortedOpcodeCounts[i][1];
                                if (cFreq) {
                                    this.println((Debugger.INS_NAMES[this.aaOpDescs[bOpcode][0]] + "  ").substr(0, 5) + " (" + str.toHexByte(bOpcode) + "): " + cFreq + " times");
                                    cData++;
                                }
                            }
                        }
                    }
                    if (!cData) {
                        this.println("no frequency data available");
                    }
                };
            
                /**
                 * doHalt(sCount)
                 *
                 * If the CPU is running and no count is provided, we halt the CPU; otherwise we treat this as a history command.
                 *
                 * @this {Debugger}
                 * @param {string|undefined} sCount is the number of instructions to rewind to (default is 10)
                 */
                Debugger.prototype.doHalt = function(sCount)
                {
                    if (this.aFlags.fRunning && sCount === undefined) {
                        this.println("halting");
                        this.stopCPU();
                        return;
                    }
                    this.dumpHistory(sCount);
                };
            
                /**
                 * doInfo(asArgs)
                 *
                 * Prints the contents of the Debugger's instruction trace buffer.
                 *
                 * Examples:
                 *
                 *      n shl
                 *      n shl on
                 *      n shl off
                 *      n dump 100
                 *
                 * @this {Debugger}
                 * @param {Array.<string>} asArgs
                 * @return {boolean} true only if the instruction info command ("n") is supported
                 */
                Debugger.prototype.doInfo = function(asArgs)
                {
                    if (DEBUG) {
                        var sCategory = asArgs[1];
                        if (sCategory !== undefined) {
                            sCategory = sCategory.toUpperCase();
                        }
                        var sEnable = asArgs[2];
                        var fPrint = false;
                        if (sCategory == "DUMP") {
                            var sDump = "";
                            var cLines = (sEnable === undefined? -1 : +sEnable);
                            var i = this.iTraceBuffer;
                            do {
                                var s = this.aTraceBuffer[i++];
                                if (s !== undefined) {
                                    /*
                                     * The browser is MUCH happier if we buffer all the lines for one single enormous print
                                     *
                                     *      this.println(s);
                                     */
                                    sDump += (sDump? "\n" : "") + s;
                                    cLines--;
                                }
                                if (i >= this.aTraceBuffer.length)
                                    i = 0;
                            } while (cLines && i != this.iTraceBuffer);
                            if (!sDump) sDump = "nothing to dump";
                            this.println(sDump);
                            this.println("msPerYield: " + this.cpu.aCounts.msPerYield);
                            this.println("nCyclesPerBurst: " + this.cpu.aCounts.nCyclesPerBurst);
                            this.println("nCyclesPerYield: " + this.cpu.aCounts.nCyclesPerYield);
                            this.println("nCyclesPerVideoUpdate: " + this.cpu.aCounts.nCyclesPerVideoUpdate);
                            this.println("nCyclesPerStatusUpdate: " + this.cpu.aCounts.nCyclesPerStatusUpdate);
                        } else {
                            var fEnable = (sEnable == "on");
                            for (var prop in this.traceEnabled) {
                                var trace = Debugger.TRACE[prop];
                                if (sCategory === undefined || sCategory == "ALL" || sCategory == Debugger.INS_NAMES[trace.ins]) {
                                    if (fEnable !== undefined) {
                                        this.traceEnabled[prop] = fEnable;
                                    }
                                    this.println(Debugger.INS_NAMES[trace.ins] + trace.size + ": " + (this.traceEnabled[prop]? "on" : "off"));
                                    fPrint = true;
                                }
                            }
                            if (!fPrint) this.println("no match");
                        }
                        return true;
                    }
                    return false;
                };
            
                /**
                 * doInput(sPort)
                 *
                 * @this {Debugger}
                 * @param {string|undefined} sPort
                 */
                Debugger.prototype.doInput = function(sPort)
                {
                    if (!sPort || sPort == "?") {
                        this.println("\ninput commands:");
                        this.println("\ti [p]\tread port [p]");
                        /*
                         * TODO: Regarding this warning, consider adding an "unchecked" version of
                         * bus.checkPortInputNotify(), since all Debugger memory accesses are unchecked, too.
                         *
                         * All port I/O handlers ARE aware when the Debugger is calling (addrFrom is undefined),
                         * but changing them all to be non-destructive would take time, and situations where you
                         * actually want to affect the hardware state are just as likely as not....
                         */
                        this.println("warning: port accesses can affect hardware state");
                        return;
                    }
                    var port = this.parseValue(sPort);
                    if (port !== undefined) {
                        var bIn = this.bus.checkPortInputNotify(port);
                        this.println(str.toHexWord(port) + ": " + str.toHexByte(bIn));
                    }
                };
            
                /**
                 * doList(sSymbol)
                 *
                 * @this {Debugger}
                 * @param {string} sSymbol
                 */
                Debugger.prototype.doList = function(sSymbol)
                {
                    var dbgAddr = this.parseAddr(sSymbol, Debugger.ADDR_CODE);
            
                    if (dbgAddr.off == null && dbgAddr.addr == null) return;
            
                    var addr = this.getAddr(dbgAddr);
                    sSymbol = sSymbol? (sSymbol + ": ") : "";
                    this.println(sSymbol + this.hexAddr(dbgAddr) + " (%" + str.toHex(addr, this.cchAddr) + ")");
            
                    var aSymbol = this.findSymbolAtAddr(dbgAddr, true);
                    if (aSymbol.length) {
                        var nDelta, sDelta;
                        if (aSymbol[0]) {
                            sDelta = "";
                            nDelta = dbgAddr.off - aSymbol[1];
                            if (nDelta) sDelta = " + " + str.toHexWord(nDelta);
                            this.println(aSymbol[0] + " (" + this.hexOffset(aSymbol[1], dbgAddr.sel) + ")" + sDelta);
                        }
                        if (aSymbol.length > 4 && aSymbol[4]) {
                            sDelta = "";
                            nDelta = aSymbol[5] - dbgAddr.off;
                            if (nDelta) sDelta = " - " + str.toHexWord(nDelta);
                            this.println(aSymbol[4] + " (" + this.hexOffset(aSymbol[5], dbgAddr.sel) + ")" + sDelta);
                        }
                    } else {
                        this.println("no symbols");
                    }
                };
            
                /**
                 * doLoad(asArgs)
                 *
                 * The format of this command mirrors the DOS DEBUG "L" command:
                 *
                 *      l [address] [drive #] [sector #] [# sectors]
                 *
                 * The only optional parameter is the last, which defaults to 1 sector if not specified.
                 *
                 * As a quick-and-dirty way of getting the current contents of a disk image as a JSON dump
                 * (which you can then save as .json disk image file), I also allow this command format:
                 *
                 *      l json [drive #]
                 *
                 * @this {Debugger}
                 * @param {Array.<string>} asArgs
                 */
                Debugger.prototype.doLoad = function(asArgs)
                {
                    if (asArgs[0] == 'l' && asArgs[1] === undefined || asArgs[1] == "?") {
                        this.println("\nlist/load commands:");
                        this.println("\tl [address] [drive #] [sector #] [# sectors]");
                        this.println("\tln [address] lists symbol(s) nearest to address");
                        return;
                    }
            
                    if (asArgs[0] == "ln") {
                        this.doList(asArgs[1]);
                        return;
                    }
            
                    var fJSON = (asArgs[1] == "json");
                    var iDrive, iSector = 0, nSectors = 0;
                    var dbgAddr = (fJSON? {} : this.parseAddr(asArgs[1], Debugger.ADDR_DATA));
            
                    iDrive = this.parseValue(asArgs[2], "drive #");
                    if (iDrive === undefined) return;
                    if (!fJSON) {
                        iSector = this.parseValue(asArgs[3], "sector #");
                        if (iSector === undefined) return;
                        nSectors = this.parseValue(asArgs[4], "# of sectors");
                        if (nSectors === undefined) nSectors = 1;
                    }
            
                    /*
                     * We choose the disk controller very simplistically: FDC for drives 0 or 1, and HDC for drives 2
                     * and up, unless no HDC is present, in which case we assume FDC for all drive numbers.
                     *
                     * Both controllers must obviously support the same interfaces; ie, copyDrive(), seekDrive(),
                     * and readByte().  We also rely on the disk property to determine whether the drive is "loaded".
                     *
                     * In the case of the HDC, if the drive is valid, then by definition it is also "loaded", since an HDC
                     * drive and its disk are inseparable; it's certainly possible that its disk object may be empty at
                     * this point, but that will only affect whether the read succeeds or not.
                     */
                    var dc = this.fdc;
                    if (iDrive >= 2 && this.hdc) {
                        iDrive -= 2;
                        dc = this.hdc;
                    }
                    if (dc) {
                        var drive = dc.copyDrive(iDrive);
                        if (drive) {
                            if (drive.disk) {
                                if (fJSON) {
                                    /*
                                     * This is an interim solution to dumping disk images in JSON.  It has many problems, the
                                     * "biggest" being that the large disk images really need to be compressed first, because they
                                     * get "inflated" with use.  See the dump() method in the Disk component for more details.
                                     */
                                    this.println(drive.disk.toJSON());
                                    return;
                                }
                                if (dc.seekDrive(drive, iSector, nSectors)) {
                                    var cb = 0;
                                    var fAbort = false;
                                    var sAddr = this.hexAddr(dbgAddr);
                                    while (!fAbort && drive.nBytes-- > 0) {
                                        (function(dbg, dbgAddrCur) {
                                            dc.readByte(drive, function(b, fAsync) {
                                                if (b < 0) {
                                                    dbg.println("out of data at address " + dbg.hexAddr(dbgAddrCur));
                                                    fAbort = true;
                                                    return;
                                                }
                                                dbg.setByte(dbgAddrCur, b, 1);
                                                cb++;
                                            });
                                        }(this, dbgAddr));
                                    }
                                    this.println(cb + " bytes read at " + sAddr);
                                } else {
                                    this.println("sector " + iSector + " request out of range");
                                }
                            } else {
                                this.println("drive " + iDrive + " not loaded");
                            }
                        } else {
                            this.println("invalid drive: " + iDrive);
                        }
                    } else {
                        this.println("disk controller not present");
                    }
                };
            
                /**
                 * doMessages(asArgs)
                 *
                 * @this {Debugger}
                 * @param {Array.<string>} asArgs
                 */
                Debugger.prototype.doMessages = function(asArgs)
                {
                    var m;
                    var fCriteria = null;
                    var sCategory = asArgs[1];
                    if (sCategory == "?") sCategory = undefined;
            
                    if (sCategory !== undefined) {
                        var bitsMessage = 0;
                        if (sCategory == "all") {
                            bitsMessage = (0xffffffff|0) & ~(Messages.HALT | Messages.KEYS | Messages.LOG);
                            sCategory = null;
                        } else if (sCategory == "on") {
                            fCriteria = true;
                            sCategory = null;
                        } else if (sCategory == "off") {
                            fCriteria = false;
                            sCategory = null;
                        } else {
                            if (sCategory == "keys") sCategory = "key";
                            if (sCategory == "kbd") sCategory = "keyboard";
                            for (m in Debugger.MESSAGES) {
                                if (sCategory == m) {
                                    bitsMessage = Debugger.MESSAGES[m];
                                    fCriteria = !!(this.bitsMessage & bitsMessage);
                                    break;
                                }
                            }
                            if (!bitsMessage) {
                                this.println("unknown message category: " + sCategory);
                                return;
                            }
                        }
                        if (bitsMessage) {
                            if (asArgs[2] == "on") {
                                this.bitsMessage |= bitsMessage;
                                fCriteria = true;
                            }
                            else if (asArgs[2] == "off") {
                                this.bitsMessage &= ~bitsMessage;
                                fCriteria = false;
                            }
                        }
                    }
            
                    /*
                     * Display those message categories that match the current criteria (on or off)
                     */
                    var n = 0;
                    var sCategories = "";
                    for (m in Debugger.MESSAGES) {
                        if (!sCategory || sCategory == m) {
                            var bitMessage = Debugger.MESSAGES[m];
                            var fEnabled = !!(this.bitsMessage & bitMessage);
                            if (fCriteria !== null && fCriteria != fEnabled) continue;
                            if (sCategories) sCategories += ",";
                            if (!(++n % 10)) sCategories += "\n\t";     // jshint ignore:line
                            if (m == "key") m = "keys";
                            sCategories += m;
                        }
                    }
            
                    if (sCategory === undefined) {
                        this.println("\nmessage commands:\n\tm [category] [on|off]\tturn categories on/off");
                    }
            
                    this.println((fCriteria !== null? (fCriteria? "messages on:  " : "messages off: ") : "message categories:\n\t") + (sCategories || "none"));
            
                    this.historyInit();     // call this just in case Messages.INT was turned on
                };
            
                /**
                 * doExecOptions(asArgs)
                 *
                 * @this {Debugger}
                 * @param {Array.<string>} asArgs
                 */
                Debugger.prototype.doExecOptions = function(asArgs)
                {
                    if (asArgs[1] === undefined || asArgs[1] == "?") {
                        this.println("\nexecution options:");
                        this.println("\tcs int #\tset checksum cycle interval to #");
                        this.println("\tcs start #\tset checksum cycle start count to #");
                        this.println("\tcs stop #\tset checksum cycle stop count to #");
                        this.println("\tsp #\t\tset speed multiplier to #");
                        return;
                    }
                    switch (asArgs[1]) {
                        case "cs":
                            var nCycles;
                            if (asArgs[3] !== undefined) nCycles = +asArgs[3];
                            switch (asArgs[2]) {
                                case "int":
                                    this.cpu.aCounts.nCyclesChecksumInterval = nCycles;
                                    break;
                                case "start":
                                    this.cpu.aCounts.nCyclesChecksumStart = nCycles;
                                    break;
                                case "stop":
                                    this.cpu.aCounts.nCyclesChecksumStop = nCycles;
                                    break;
                                default:
                                    this.println("unknown cs option");
                                    return;
                            }
                            if (nCycles !== undefined) {
                                this.cpu.resetChecksum();
                            }
                            this.println("checksums " + (this.cpu.aFlags.fChecksum? "enabled" : "disabled"));
                            break;
                        case "sp":
                            if (asArgs[2] !== undefined) {
                                this.cpu.setSpeed(+asArgs[2]);
                            }
                            this.println("target speed: " + this.cpu.getSpeedTarget() + " (" + this.cpu.getSpeed() + "x)");
                            break;
                        default:
                            this.println("unknown option: " + asArgs[1]);
                            break;
                    }
                };
            
                /**
                 * doOutput(sPort, sByte)
                 *
                 * @this {Debugger}
                 * @param {string|undefined} sPort
                 * @param {string|undefined} sByte (string representation of 1 byte)
                 */
                Debugger.prototype.doOutput = function(sPort, sByte)
                {
                    if (!sPort || sPort == "?") {
                        this.println("\noutput commands:");
                        this.println("\to [p] [b]\twrite byte [b] to port [p]");
                        /*
                         * TODO: Regarding this warning, consider adding an "unchecked" version of
                         * bus.checkPortOutputNotify(), since all Debugger memory accesses are unchecked, too.
                         *
                         * All port I/O handlers ARE aware when the Debugger is calling (addrFrom is undefined),
                         * but changing them all to be non-destructive would take time, and situations where you
                         * actually want to affect the hardware state are just as likely as not....
                         */
                        this.println("warning: port accesses can affect hardware state");
                        return;
                    }
                    var port = this.parseValue(sPort, "port #");
                    var bOut = this.parseValue(sByte);
                    if (port !== undefined && bOut !== undefined) {
                        this.bus.checkPortOutputNotify(port, bOut);
                        this.println(str.toHexWord(port) + ": " + str.toHexByte(bOut));
                    }
                };
            
                /**
                 * doRegisters(asArgs, fCompact)
                 *
                 * @this {Debugger}
                 * @param {Array.<string>} [asArgs]
                 * @param {boolean} [fCompact]
                 */
                Debugger.prototype.doRegisters = function(asArgs, fCompact)
                {
                    if (asArgs && asArgs[1] == "?") {
                        this.println("\nregister commands:");
                        this.println("\tr\t\tdisplay all registers");
                        this.println("\tr [target=#]\tmodify target register");
                        this.println("supported targets:");
                        this.println("\tall registers and flags V,D,I,S,Z,A,P,C");
                        return;
                    }
                    var fIns = true, fProt;
                    if (asArgs != null && asArgs.length > 1) {
                        var sReg = asArgs[1];
                        if (sReg == 'p') {
                            fProt = (this.cpu.model >= X86.MODEL_80286);
                        } else {
                         // fIns = false;
                            var sValue = null;
                            var i = sReg.indexOf("=");
                            if (i > 0) {
                                sValue = sReg.substr(i + 1);
                                sReg = sReg.substr(0, i);
                            }
                            else if (asArgs.length > 2) {
                                sValue = asArgs[2];
                            }
                            else {
                                this.println("missing value for " + asArgs[1]);
                                return;
                            }
                            var fValid = false;
                            var w = str.parseInt(sValue, 16);
                            if (w !== undefined) {
                                fValid = true;
                                var sRegMatch = sReg.toUpperCase();
                                if (sRegMatch.charAt(0) == 'E' && this.cchReg <= 4) {
                                    sRegMatch = null;
                                }
                                switch (sRegMatch) {
                                case "AL":
                                    this.cpu.regEAX = (this.cpu.regEAX & ~0xff) | (w & 0xff);
                                    break;
                                case "AH":
                                    this.cpu.regEAX = (this.cpu.regEAX & ~0xff00) | ((w << 8) & 0xff);
                                    break;
                                case "AX":
                                    this.cpu.regEAX = (this.cpu.regEAX & ~0xffff) | (w & 0xffff);
                                    break;
                                case "BL":
                                    this.cpu.regEBX = (this.cpu.regEBX & ~0xff) | (w & 0xff);
                                    break;
                                case "BH":
                                    this.cpu.regEBX = (this.cpu.regEBX & ~0xff00) | ((w << 8) & 0xff);
                                    break;
                                case "BX":
                                    this.cpu.regEBX = (this.cpu.regEBX & ~0xffff) | (w & 0xffff);
                                    break;
                                case "CL":
                                    this.cpu.regECX = (this.cpu.regECX & ~0xff) | (w & 0xff);
                                    break;
                                case "CH":
                                    this.cpu.regECX = (this.cpu.regECX & ~0xff00) | ((w << 8) & 0xff);
                                    break;
                                case "CX":
                                    this.cpu.regECX = (this.cpu.regECX & ~0xffff) | (w & 0xffff);
                                    break;
                                case "DL":
                                    this.cpu.regEDX = (this.cpu.regEDX & ~0xff) | (w & 0xff);
                                    break;
                                case "DH":
                                    this.cpu.regEDX = (this.cpu.regEDX & ~0xff00) | ((w << 8) & 0xff);
                                    break;
                                case "DX":
                                    this.cpu.regEDX = (this.cpu.regEDX & ~0xffff) | (w & 0xffff);
                                    break;
                                case "SP":
                                    this.cpu.setSP((this.cpu.getSP() & ~0xffff) | (w & 0xffff));
                                    break;
                                case "BP":
                                    this.cpu.regEBP = (this.cpu.regEBP & ~0xffff) | (w & 0xffff);
                                    break;
                                case "SI":
                                    this.cpu.regESI = (this.cpu.regESI & ~0xffff) | (w & 0xffff);
                                    break;
                                case "DI":
                                    this.cpu.regEDI = (this.cpu.regEDI & ~0xffff) | (w & 0xffff);
                                    break;
                                case "DS":
                                    this.cpu.setDS(w);
                                    break;
                                case "ES":
                                    this.cpu.setES(w);
                                    break;
                                case "SS":
                                    this.cpu.setSS(w);
                                    break;
                                case "CS":
                                 // fIns = true;
                                    this.cpu.setCS(w);
                                    this.dbgAddrNextCode = this.newAddr(this.cpu.getIP(), this.cpu.getCS());
                                    break;
                                case "IP":
                                 // fIns = true;
                                    this.cpu.setIP(w);
                                    this.dbgAddrNextCode = this.newAddr(this.cpu.getIP(), this.cpu.getCS());
                                    break;
                                /*
                                 * I used to alias "PC" to "IP", until I discovered that early (perhaps ALL) versions of
                                 * DEBUG.COM treat "PC" as an alias for the 16-bit flags register.  I, of course, prefer "PS".
                                 */
                                case "PC":
                                case "PS":
                                    this.cpu.setPS(w);
                                    break;
                                case "C":
                                    if (w) this.cpu.setCF(); else this.cpu.clearCF();
                                    break;
                                case "P":
                                    if (w) this.cpu.setPF(); else this.cpu.clearPF();
                                    break;
                                case "A":
                                    if (w) this.cpu.setAF(); else this.cpu.clearAF();
                                    break;
                                case "Z":
                                    if (w) this.cpu.setZF(); else this.cpu.clearZF();
                                    break;
                                case "S":
                                    if (w) this.cpu.setSF(); else this.cpu.clearSF();
                                    break;
                                case "I":
                                    if (w) this.cpu.setIF(); else this.cpu.clearIF();
                                    break;
                                case "D":
                                    if (w) this.cpu.setDF(); else this.cpu.clearDF();
                                    break;
                                case "V":
                                    if (w) this.cpu.setOF(); else this.cpu.clearOF();
                                    break;
                                default:
                                    var fUnknown = true;
                                    if (this.cpu.model >= X86.MODEL_80286) {
                                        fUnknown = false;
                                        switch(sRegMatch){
                                        case "MS":
                                            this.cpu.setMSW(w);
                                            break;
                                        case "TR":
                                            if (this.cpu.segTSS.load(w, true) === X86.ADDR_INVALID) {
                                                fValid = false;
                                            }
                                            break;
                                        /*
                                         * TODO: Add support for GDTR (addr and limit), IDTR (addr and limit), and perhaps
                                         * even the ability to edit descriptor information associated with each segment register.
                                         */
                                        default:
                                            fUnknown = true;
                                            if (I386 && this.cpu.model >= X86.MODEL_80386) {
                                                fUnknown = false;
                                                switch(sRegMatch){
                                                case "EAX":
                                                    this.cpu.regEAX = w;
                                                    break;
                                                case "EBX":
                                                    this.cpu.regEBX = w;
                                                    break;
                                                case "ECX":
                                                    this.cpu.regECX = w;
                                                    break;
                                                case "EDX":
                                                    this.cpu.regEDX = w;
                                                    break;
                                                case "ESP":
                                                    this.cpu.setSP(w);
                                                    break;
                                                case "EBP":
                                                    this.cpu.regEBP = w;
                                                    break;
                                                case "ESI":
                                                    this.cpu.regESI = w;
                                                    break;
                                                case "EDI":
                                                    this.cpu.regEDI = w;
                                                    break;
                                                case "FS":
                                                    this.cpu.setFS(w);
                                                    break;
                                                case "GS":
                                                    this.cpu.setGS(w);
                                                    break;
                                                case "CR0":
                                                    this.cpu.regCR0 = w;
                                                    X86.fnLCR0.call(this.cpu, w);
                                                    break;
                                                case "CR2":
                                                    this.cpu.regCR2 = w;
                                                    break;
                                                case "CR3":
                                                    this.cpu.regCR3 = w;
                                                    X86.fnLCR3.call(this.cpu, w);
                                                    break;
                                                /*
                                                 * TODO: Add support for DR0-DR7 and TR6-TR7.
                                                 */
                                                default:
                                                    fUnknown = true;
                                                    break;
                                                }
                                            }
                                            break;
                                        }
                                    }
                                    if (fUnknown) {
                                        this.println("unknown register: " + sReg);
                                        return;
                                    }
                                }
                            }
                            if (!fValid) {
                                this.println("invalid value: " + sValue);
                                return;
                            }
                            this.cpu.updateCPU();
                            this.println("\nupdated registers:");
                            fCompact = true;
                        }
                    }
            
                    this.println((fCompact? '' : '\n') + this.getRegDump(fProt));
            
                    if (fIns) {
                        this.dbgAddrNextCode = this.newAddr(this.cpu.getIP(), this.cpu.getCS());
                        this.doUnassemble(this.hexAddr(this.dbgAddrNextCode));
                    }
                };
            
                /**
                 * doRun(sAddr)
                 *
                 * @this {Debugger}
                 * @param {string} sAddr
                 */
                Debugger.prototype.doRun = function(sAddr)
                {
                    if (sAddr !== undefined) {
                        var dbgAddr = this.parseAddr(sAddr, Debugger.ADDR_CODE);
                        if (dbgAddr.off == null) return;
                        this.setTempBreakpoint(dbgAddr);
                    }
                    if (!this.runCPU(true)) {
                        this.println('cpu busy, "g" command ignored');
                    }
                };
            
                /**
                 * doProcStep(sCmd)
                 *
                 * @this {Debugger}
                 * @param {string} [sCmd] "p" or "pr"
                 */
                Debugger.prototype.doProcStep = function(sCmd)
                {
                    var fCallStep = true;
                    var fRegs = (sCmd == "pr"? 1 : 0);
                    /*
                     * Set up the value for this.fProcStep (ie, 1 or 2) depending on whether the user wants
                     * a subsequent register dump ("pr") or not ("p").
                     */
                    var fProcStep = 1 + fRegs;
                    if (!this.fProcStep) {
                        var fPrefix;
                        var fRepeat = false;
                        var dbgAddr = this.newAddr(this.cpu.getIP(), this.cpu.getCS());
                        do {
                            fPrefix = false;
                            var bOpcode = this.getByte(dbgAddr);
                            switch (bOpcode) {
                            case X86.OPCODE.ES:
                            case X86.OPCODE.CS:
                            case X86.OPCODE.SS:
                            case X86.OPCODE.DS:
                            case X86.OPCODE.FS:     // I386 only
                            case X86.OPCODE.GS:     // I386 only
                            case X86.OPCODE.OS:     // I386 only
                            case X86.OPCODE.AS:     // I386 only
                            case X86.OPCODE.LOCK:
                                this.incAddr(dbgAddr, 1);
                                fPrefix = true;
                                break;
                            case X86.OPCODE.INT3:
                            case X86.OPCODE.INTO:
                                this.fProcStep = fProcStep;
                                this.incAddr(dbgAddr, 1);
                                break;
                            case X86.OPCODE.INTn:
                            case X86.OPCODE.LOOPNZ:
                            case X86.OPCODE.LOOPZ:
                            case X86.OPCODE.LOOP:
                                this.fProcStep = fProcStep;
                                this.incAddr(dbgAddr, 2);
                                break;
                            case X86.OPCODE.CALL:
                                if (fCallStep) {
                                    this.fProcStep = fProcStep;
                                    this.incAddr(dbgAddr, 3);
                                }
                                break;
                            case X86.OPCODE.CALLF:
                                if (fCallStep) {
                                    this.fProcStep = fProcStep;
                                    this.incAddr(dbgAddr, 5);
                                }
                                break;
                            case X86.OPCODE.GRP4W:
                                if (fCallStep) {
                                    var w = this.getWord(dbgAddr) & X86.OPCODE.CALLMASK;
                                    if (w == X86.OPCODE.CALLW || w == X86.OPCODE.CALLFDW) {
                                        this.fProcStep = fProcStep;
                                        this.getInstruction(dbgAddr);       // advance dbgAddr past this variable-length CALL
                                    }
                                }
                                break;
                            case X86.OPCODE.REPZ:
                            case X86.OPCODE.REPNZ:
                                this.incAddr(dbgAddr, 1);
                                fRepeat = fPrefix = true;
                                break;
                            case X86.OPCODE.INSB:
                            case X86.OPCODE.INSW:
                            case X86.OPCODE.OUTSB:
                            case X86.OPCODE.OUTSW:
                            case X86.OPCODE.MOVSB:
                            case X86.OPCODE.MOVSW:
                            case X86.OPCODE.CMPSB:
                            case X86.OPCODE.CMPSW:
                            case X86.OPCODE.STOSB:
                            case X86.OPCODE.STOSW:
                            case X86.OPCODE.LODSB:
                            case X86.OPCODE.LODSW:
                            case X86.OPCODE.SCASB:
                            case X86.OPCODE.SCASW:
                                if (fRepeat) {
                                    this.fProcStep = fProcStep;
                                    this.incAddr(dbgAddr, 1);
                                }
                                break;
                            default:
                                break;
                            }
                        } while (fPrefix);
            
                        if (this.fProcStep) {
                            this.setTempBreakpoint(dbgAddr);
                            if (!this.runCPU()) {
                                this.cpu.setFocus();
                                this.fProcStep = 0;
                            }
                            /*
                             * A successful run will ultimately call stop(), which will in turn call clearTempBreakpoint(),
                             * which will clear fProcStep, so there's your assurance that fProcStep will be reset.  Now we may
                             * have stopped for reasons unrelated to the temporary breakpoint, but that's OK.
                             */
                        } else {
                            this.doStep(fRegs? "tr" : "t");
                        }
                    } else {
                        this.println("step in progress");
                    }
                };
            
                /**
                 * getCall(dbgAddr, fFar)
                 *
                 * @this {Debugger}
                 * @param {{DbgAddr}} dbgAddr
                 * @param {boolean} [fFar]
                 * @return {string|null} CALL instruction at or near dbgAddr, or null if none
                 */
                Debugger.prototype.getCall = function(dbgAddr, fFar)
                {
                    var sCall = null;
                    var off = dbgAddr.off;
                    var offOrig = off;
                    for (var n = 1; n <= 6; n++) {
                        if (n > 2) {
                            dbgAddr.off = off;
                            dbgAddr.addr = null;
                            var s = this.getInstruction(dbgAddr);
                            if (s.indexOf("CALL") > 0 || fFar && s.indexOf("INT") > 0) {
                                sCall = s;
                                break;
                            }
                        }
                        if (!--off) break;
                    }
                    dbgAddr.off = offOrig;
                    return sCall;
                };
            
                /**
                 * doStackTrace()
                 *
                 * @this {Debugger}
                 */
                Debugger.prototype.doStackTrace = function()
                {
                    var nFrames = 10, cFrames = 0;
                    var selCode = this.cpu.segCS.sel;
                    var dbgAddrCall = this.newAddr();
                    var dbgAddrStack = this.newAddr(this.cpu.getSP(), this.cpu.getSS());
                    this.println("stack trace for " + this.hexAddr(dbgAddrStack));
                    while (cFrames < nFrames) {
                        var sCall = null, cTests = 256;
                        while ((dbgAddrStack.off >>> 0) < (this.cpu.regLSPLimit >>> 0)) {
                            dbgAddrCall.off = this.getWord(dbgAddrStack, true);
                            /*
                             * Because we're using the auto-increment feature of getWord(), and because that will automatically
                             * wrap the offset around the end of the segment, we must also check the addr property to detect the wrap.
                             */
                            if (dbgAddrStack.addr == null || !cTests--) break;
                            dbgAddrCall.sel = selCode;
                            sCall = this.getCall(dbgAddrCall);
                            if (sCall) {
                                break;
                            }
                            dbgAddrCall.sel = this.getWord(dbgAddrStack);
                            sCall = this.getCall(dbgAddrCall, true);
                            if (sCall) {
                                selCode = this.getWord(dbgAddrStack, true);
                                /*
                                 * It's not strictly necessary that we skip over the flags word that's pushed as part of any INT
                                 * instruction, but it reduces the risk of misinterpreting it as a return address on the next iteration.
                                 */
                                if (sCall.indexOf("INT") > 0) this.getWord(dbgAddrStack, true);
                                break;
                            }
                        }
                        if (!sCall) break;
                        sCall = str.pad(sCall, 50) + ";stack=" + this.hexAddr(dbgAddrStack) + " return=" + this.hexAddr(dbgAddrCall);
                        this.println(sCall);
                        cFrames++;
                    }
                    if (!cFrames) this.println("no return addresses found");
                };
            
                /**
                 * doStep(sCmd, sCount)
                 *
                 * @this {Debugger}
                 * @param {string} [sCmd] "t" or "tr"
                 * @param {string} [sCount] # of instructions to step
                 */
                Debugger.prototype.doStep = function(sCmd, sCount)
                {
                    var dbg = this;
                    var fRegs = (sCmd == "tr");
                    var count = (sCount != null? +sCount : 1);
                    var nCycles = (count == 1? 0 : 1);
                    web.onCountRepeat(
                        count,
                        function onCountStep() {
                            return dbg.setBusy(true) && dbg.stepCPU(nCycles, fRegs, false);
                        },
                        function onCountStepComplete() {
                            /*
                             * We explicitly called stepCPU() with fUpdateCPU === false, because repeatedly
                             * calling updateCPU() can be very slow, especially when fDisplayLiveRegs is true,
                             * so once the repeat count has been exhausted, we must perform a final updateCPU().
                             */
                            dbg.cpu.updateCPU();
                            dbg.setBusy(false);
                        }
                    );
                };
            
                /**
                 * initAddrSize(dbgAddr, fNonPrefix, cOverrides)
                 *
                 * @this {Debugger}
                 * @param {{DbgAddr}} dbgAddr
                 * @param {boolean} fNonPrefix
                 * @param {number} [cOverrides]
                 */
                Debugger.prototype.initAddrSize = function(dbgAddr, fNonPrefix, cOverrides)
                {
                    /*
                     * Use cOverrides to record whether we previously processed any OPERAND or ADDRESS overrides.
                     */
                    dbgAddr.cOverrides = cOverrides;
                    /*
                     * For proper disassembly of instructions preceded by an OPERAND (0x66) size prefix, we set
                     * dbgAddr.fData32 to true whenever the operand size is 32-bit; similarly, for an ADDRESS (0x67)
                     * size prefix, we set dbgAddr.fAddr32 to true whenever the address size is 32-bit.  Initially,
                     * both fields must be set to match the size of the current code segment.
                     */
                    if (fNonPrefix) {
                        dbgAddr.fData32 = (this.cpu.segCS.dataSize == 4);
                        dbgAddr.fAddr32 = (this.cpu.segCS.addrSize == 4);
                    }
                    /*
                     * We also use dbgAddr.fComplete to record whether the caller (ie, getInstruction()) is reporting that
                     * it processed a complete instruction (ie, a non-prefix) or not.
                     */
                    dbgAddr.fComplete = fNonPrefix;
                };
            
                /**
                 * isStringIns(bOpcode)
                 *
                 * @this {Debugger}
                 * @param {number} bOpcode
                 * @return {boolean} true if string instruction, false if not
                 */
                Debugger.prototype.isStringIns = function(bOpcode)
                {
                    return (bOpcode >= X86.OPCODE.MOVSB && bOpcode <= X86.OPCODE.CMPSW || bOpcode >= X86.OPCODE.STOSB && bOpcode <= X86.OPCODE.SCASW);
                };
            
                /**
                 * doUnassemble(sAddr, sAddrEnd, n)
                 *
                 * @this {Debugger}
                 * @param {string} [sAddr]
                 * @param {string} [sAddrEnd]
                 * @param {number} [n]
                 */
                Debugger.prototype.doUnassemble = function(sAddr, sAddrEnd, n)
                {
                    var dbgAddr = this.parseAddr(sAddr, Debugger.ADDR_CODE);
                    if (dbgAddr.off == null) return;
            
                    if (n === undefined) n = 1;
                    var dbgAddrEnd = this.newAddr(this.maskReg, dbgAddr.sel, this.bus.nBusLimit);
            
                    var cb = 0x100;
                    if (sAddrEnd !== undefined) {
            
                        dbgAddrEnd = this.parseAddr(sAddrEnd, Debugger.ADDR_CODE);
                        if (dbgAddrEnd.off == null || dbgAddrEnd.off < dbgAddr.off) return;
            
                        cb = dbgAddrEnd.off - dbgAddr.off;
                        if (!DEBUG && cb > 0x100) {
                            /*
                             * Limiting the amount of disassembled code to 256 bytes in non-DEBUG builds is partly to
                             * prevent the user from wedging the browser by dumping too many lines, but also a recognition
                             * that, in non-DEBUG builds, this.println() keeps print output buffer truncated to 8Kb anyway.
                             */
                            this.println("range too large");
                            return;
                        }
                        n = -1;
                    }
            
                    var fBlank = (dbgAddr.off != this.dbgAddrNextCode.off);
            
                    var cLines = 0;
                    this.initAddrSize(dbgAddr, true);
            
                    while (cb > 0 && n--) {
            
                        var bOpcode = this.getByte(dbgAddr);
                        var addr = dbgAddr.addr;
                        var nSequence = (this.isBusy(false) || this.fProcStep)? this.nCycles : null;
                        var sComment = (nSequence != null? "cycles" : null);
                        var aSymbol = this.findSymbolAtAddr(dbgAddr);
            
                        if (aSymbol[0]) {
                            var sLabel = aSymbol[0] + ":";
                            fBlank = false;
                            if (aSymbol[2]) sLabel += " " + aSymbol[2];
                            this.println(sLabel);
                        }
            
                        if (fBlank) this.println();
            
                        if (aSymbol[3]) {
                            sComment = aSymbol[3];
                            nSequence = null;
                        }
            
                        var sIns = this.getInstruction(dbgAddr, sComment, nSequence);
            
                        /*
                         * If getInstruction() reported that it did not yet process a complete instruction (via dbgAddr.fComplete),
                         * then bump the instruction count by one, so that we display one more line (and hopefully the complete
                         * instruction).
                         */
                        if (!dbgAddr.fComplete && !n) n++;
            
                        this.println(sIns);
                        this.dbgAddrNextCode = dbgAddr;
                        cb -= dbgAddr.addr - addr;
                        fBlank = false;
                        cLines++;
                    }
                };
            
                /**
                 * parseCommand(sCmd, fSave, chSep)
                 *
                 * @this {Debugger}
                 * @param {string|undefined} sCmd
                 * @param {boolean} [fSave] is true to save the command, false if not
                 * @param {string} [chSep] is the command separator character (default is ';')
                 * @return {Array.<string>}
                 */
                Debugger.prototype.parseCommand = function(sCmd, fSave, chSep)
                {
                    if (fSave) {
                        if (!sCmd) {
                            sCmd = this.aPrevCmds[this.iPrevCmd+1];
                        } else {
                            if (this.iPrevCmd < 0 && this.aPrevCmds.length) {
                                this.iPrevCmd = 0;
                            }
                            if (this.iPrevCmd < 0 || sCmd != this.aPrevCmds[this.iPrevCmd]) {
                                this.aPrevCmds.splice(0, 0, sCmd);
                                this.iPrevCmd = 0;
                            }
                            this.iPrevCmd--;
                        }
                    }
                    var a = (sCmd? sCmd.split(chSep || ';') : ['']);
                    for (var s in a) {
                        a[s] = str.trim(a[s]);
                    }
                    return a;
                };
            
                /**
                 * doCommand(sCmd, fQuiet)
                 *
                 * @this {Debugger}
                 * @param {string} sCmd
                 * @param {boolean} [fQuiet]
                 * @return {boolean} true if command processed, false if unrecognized
                 */
                Debugger.prototype.doCommand = function(sCmd, fQuiet)
                {
                    var result = true;
            
                    try {
                        if (!sCmd.length) {
                            if (this.fAssemble) {
                                this.println("ended assemble @" + this.hexAddr(this.dbgAddrAssemble));
                                this.dbgAddrNextCode = this.dbgAddrAssemble;
                                this.fAssemble = false;
                            } else {
                                sCmd = '?';
                            }
                        }
            
                        sCmd = sCmd.toLowerCase();
            
                        /*
                         * I'm going to try relaxing the !isBusy() requirement for doCommand(), to maximize our
                         * ability to issue Debugger commands externally.
                         */
                        if (this.isReady() /* && !this.isBusy(true) */ && sCmd.length > 0) {
            
                            if (this.fAssemble) {
                                sCmd = "a " + this.hexAddr(this.dbgAddrAssemble) + " " + sCmd;
                            }
                            else {
                                /*
                                 * Process any "whole" commands here first (eg, "debug", "nodebug", "reset", etc.)
                                 *
                                 * For all other commands, if they lack a space between the command and argument portions,
                                 * insert a space before the first non-alpha character, so that split() will have the desired effect.
                                 */
                                if (!COMPILED) {
                                    if (sCmd == "debug") {
                                        window.DEBUG = true;
                                        this.println("DEBUG checks on");
                                        return true;
                                    }
                                    else if (sCmd == "nodebug") {
                                        window.DEBUG = false;
                                        this.println("DEBUG checks off");
                                        return true;
                                    }
                                }
            
                                var ch, ch0, i;
                                switch (sCmd) {
                                case "reset":
                                    if (this.cmp) this.cmp.reset();
                                    return true;
                                case "ver":
                                    this.println((APPNAME || "PCjs") + " version " + APPVERSION + " (" + this.cpu.model + (COMPILED? ",RELEASE" : (DEBUG? ",DEBUG" : ",NODEBUG")) + (PREFETCH? ",PREFETCH" : ",NOPREFETCH") + (TYPEDARRAYS? ",TYPEDARRAYS" : (FATARRAYS? ",FATARRAYS" : ",LONGARRAYS")) + (BACKTRACK? ",BACKTRACK" : ",NOBACKTRACK") + ")");
                                    return true;
                                default:
                                    ch0 = sCmd.charAt(0);
                                    for (i = 1; i < sCmd.length; i++) {
                                        ch = sCmd.charAt(i);
                                        if (ch == ' ') break;
                                        if (ch0 == '?' || ch0 == 'r' || ch < 'a' || ch > 'z') {
                                            sCmd = sCmd.substring(0, i) + " " + sCmd.substring(i);
                                            break;
                                        }
                                    }
                                    break;
                                }
                            }
            
                            var asArgs = sCmd.split(" ");
                            switch (asArgs[0].charAt(0)) {
                            case "a":
                                this.doAssemble(asArgs);
                                break;
                            case "b":
                                this.doBreak(asArgs[0], asArgs[1]);
                                break;
                            case "c":
                                this.doClear(asArgs[0]);
                                break;
                            case "d":
                                this.doDump(asArgs[0], asArgs[1], asArgs[2]);
                                break;
                            case "e":
                                this.doEdit(asArgs);
                                break;
                            case "f":
                                this.doFreqs(asArgs[1]);
                                break;
                            case "g":
                                this.doRun(asArgs[1]);
                                break;
                            case "h":
                                this.doHalt(asArgs[1]);
                                break;
                            case "i":
                                this.doInput(asArgs[1]);
                                break;
                            case "k":
                                this.doStackTrace();
                                break;
                            case "l":
                                this.doLoad(asArgs);
                                break;
                            case "m":
                                this.doMessages(asArgs);
                                break;
                            case "o":
                                this.doOutput(asArgs[1], asArgs[2]);
                                break;
                            case "p":
                            case "pr":
                                this.doProcStep(asArgs[0]);
                                break;
                            case "r":
                                this.doRegisters(asArgs);
                                break;
                            case "t":
                            case "tr":
                                this.doStep(asArgs[0], asArgs[1]);
                                break;
                            case "u":
                                this.doUnassemble(asArgs[1], asArgs[2], 8);
                                break;
                            case "x":
                                this.doExecOptions(asArgs);
                                break;
                            case "?":
                                if (asArgs[1]) {
                                    this.parseExpression(asArgs[1], true);
                                    break;
                                }
                                this.doHelp();
                                break;
                            case "n":
                                if (this.doInfo(asArgs)) break;
                                /* falls through */
                            default:
                                if (!fQuiet) this.println("unknown command: " + sCmd);
                                result = false;
                                break;
                            }
                        }
                    } catch(e) {
                        this.println("debugger error: " + (e.stack || e.message));
                        result = false;
                    }
                    return result;
                };
            
                /**
                 * Debugger.init()
                 *
                 * This function operates on every HTML element of class "debugger", extracting the
                 * JSON-encoded parameters for the Debugger constructor from the element's "data-value"
                 * attribute, invoking the constructor to create a Debugger component, and then binding
                 * any associated HTML controls to the new component.
                 */
                Debugger.init = function()
                {
                    var aeDbg = Component.getElementsByClass(window.document, PCJSCLASS, "debugger");
                    for (var iDbg = 0; iDbg < aeDbg.length; iDbg++) {
                        var eDbg = aeDbg[iDbg];
                        var parmsDbg = Component.getComponentParms(eDbg);
                        var dbg = new Debugger(parmsDbg);
                        Component.bindComponentControls(dbg, eDbg, PCJSCLASS);
                    }
                };
            
                /*
                 * Initialize every Debugger module on the page (as IF there's ever going to be more than one ;-))
                 */
                web.onInit(Debugger.init);
            
            }   // endif DEBUGGER
            
            if (typeof module !== 'undefined') module.exports = Debugger;
            
          • defines.js
            /**
             * @fileoverview PCjs-specific compile-time definitions.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2014-May-08
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            /**
             * @define {string}
             */
            var PCJSCLASS = "pcjs";         // this @define is the default application class (formerly APPCLASS) to use for PCjs
            
            /**
             * @define {boolean}
             *
             * WARNING: DEBUGGER needs to accurately reflect whether or not the Debugger component is (or will be) loaded.
             * In the compiled case, we rely on the Closure Compiler to override DEBUGGER as appropriate.  When it's *false*,
             * nearly all of debugger.js will be conditionally removed by the compiler, reducing it to little more than a
             * "type skeleton", which also solves some type-related warnings we would otherwise have if we tried to remove
             * debugger.js from the compilation process altogether.
             *
             * However, when we're in "development mode" and running uncompiled code in debugger-less configurations,
             * I would like to skip loading debugger.js altogether.  When doing that, we must ALSO arrange for an additional file
             * (nodebugger.js) to be loaded immediately after this file, which *explicitly* overrides DEBUGGER with *false*.
             */
            var DEBUGGER = true;            // this @define is overridden by the Closure Compiler to remove Debugger-related support
            
            /**
             * @define {boolean}
             *
             * PREFETCH enables the use of a prefetch queue.
             *
             * See the Bus component for details.
             */
            var PREFETCH = false;
            
            /**
             * @define {boolean}
             *
             * FATARRAYS is a Closure Compiler compile-time option that allocates an Array of numbers for every Memory block,
             * where each a number represents ONE byte; very wasteful, but potentially slightly faster.
             *
             * See the Memory component for details.
             */
            var FATARRAYS = false;
            
            /**
             * TYPEDARRAYS enables use of typed arrays for Memory blocks.  This used to be a compile-time-only option, but I've
             * added Memory access functions for typed arrays (see Memory.afnTypedArray), so support can be enabled dynamically.
             *
             * See the Memory component for details.
             */
            var TYPEDARRAYS = (typeof ArrayBuffer !== 'undefined');
            
            /**
             * @define {boolean}
             *
             * BACKTRACK enables backtracking: a mechanism that allows us to tag every byte of incoming data and follow the
             * flow of that data.
             *
             * This is set to !COMPILED, disabling backtracking in all compiled versions, but we may eventually set it to
             * match the DEBUGGER setting -- unless it slows down machines using the built-in Debugger too much, in which case
             * we'll have to rethink that choice OR provide a Debugger command that dynamically enables/disables as much of
             * the backtracking support as possible.
             */
            var BACKTRACK = false; // !COMPILED;
            
            /**
             * @define {boolean}
             *
             * SAMPLER enables instruction sampling (a work-in-progress).  This was used briefly as an internal debugging aid,
             * to periodically record LIP values in a fixed-length sampling buffer, halting execution once the sampling buffer
             * was full, and then compare those sampled LIP values to corresponding LIP values on subsequent runs, to look
             * for deviations.  In theory, every run is supposed to be absolutely identical, even if you interrupt execution
             * with the Debugger or enable/disable different sets of messages, but in practice, that's hard to guarantee.
             */
            var SAMPLER = false;
            
            /**
             * @define {boolean}
             *
             * BUGS_8086 enables support for known 8086 bugs.  It's turned off by default, because 1) it adds overhead, and
             * 2) it's hard to imagine any software actually being dependent on any of the bugs covered by this (eg, the failure
             * to properly restart string instructions with multiple prefixes, or the failure to inhibit hardware interrupts
             * following SS segment loads).
             */
            var BUGS_8086 = false;
            
            /**
             * @define {boolean}
             *
             * I386 enables 80386 support.  My preference continues to be one "binary" that supports all implemented CPUs, but
             * I'm providing this to enable a slimmed-down binary, at least until 80386 support is actually finished; at the
             * moment, there's just a lot of scaffolding that bloats the compiled version without adding any real functionality.
             */
            var I386 = true;
            
            /**
             * @define {boolean}
             *
             * COMPAQ386 enables Compaq DeskPro 386 support.
             */
            var COMPAQ386 = true;
            
            /**
             * @define {boolean}
             *
             * PAGEBLOCKS enables 80386 paging support with assistance from the Bus component.  This affects how the Bus component
             * defines physical memory parameters for a 32-bit bus.  With the 8086 and 80286 processors, the Bus component was free
             * to choose any block size for physical memory allocations that made sense for the bus width (eg, 4Kb blocks for a
             * 20-bit bus, or 16Kb blocks for 24-bit bus).
             *
             * However, for the 80386 processor, it makes more sense to choose a block size that matches the page size (ie, 4Kb),
             * because then we have the option of altering the address-to-memory mapping for any block to match whatever page table
             * mapping is in effect for that address, if any, without requiring another layer of address translation.
             */
            var PAGEBLOCKS = I386;
            
            if (typeof module !== 'undefined') {
                global.PCJSCLASS = PCJSCLASS;
                global.DEBUGGER = DEBUGGER;
                global.PREFETCH = PREFETCH;
                global.FATARRAYS = FATARRAYS;
                global.TYPEDARRAYS = TYPEDARRAYS;
                global.BACKTRACK = BACKTRACK;
                global.SAMPLER = SAMPLER;
                global.BUGS_8086 = BUGS_8086;
                global.I386 = I386;
                global.COMPAQ386 = COMPAQ386;
                global.PAGEBLOCKS = PAGEBLOCKS;
                /*
                 * TODO: When we're "required" by Node, should we return anything via module.exports?
                 */
            }
            
          • disk.js
            /**
             * @fileoverview Implements disk image support for both FDC and HDC.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Nov-26
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            /*
             *  The Disk component provides methods for:
             *
             *      1) creating an empty disk: create()
             *      2) loading a disk image: load()
             *      3) getting disk information: info()
             *      4) seeking a disk sector: seek()
             *      5) reading data from a sector: read()
             *      6) writing data to a sector: write()
             *      7) save disk deltas: save()
             *      8) restore disk deltas: restore()
             *      9) converting disk contents: toJSON()
             *
             *  More functionality may be factored out of the FDC and HDC components later and moved here, to
             *  further reduce some of the duplication between them, but the above functionality is a good start.
             */
            
            /*
             * Client/Server Disk I/O
             *
             * To support large disks without consuming large amounts of client-side memory, and to push
             * client-side disk changes back the server, we need a DiskIO API that can be used in place of
             * the DiskDump API.
             *
             * Use of the DiskIO API and any associated disk images must be tightly coupled to per-user
             * storage and specific machine configurations, to prevent the disk images from being corrupted
             * by inconsistent I/O operations.  Our basic User API (userapi.js) already provides some
             * per-user storage that we can use to get the design rolling.
             *
             * The DiskIO API must also provide the ability to create new (empty) hard disk images in per-user
             * storage and automatically associate them with the machine configurations that requested them.
             *
             * Principles
             * ---
             * Originally, when the Disk class was given a disk image to load and mount, it would request the
             * ENTIRE disk image from the DiskDump module.  That works well for small (floppy) disk images, but
             * for larger disks -- let's just say anything stored on the server as an "img" file -- we'd prefer
             * to interact with that disk using "On-Demand I/O".  Any "img" file on the same server as the PCjs
             * application should be a candidate for on-demand access.
             *
             * On-Demand I/O means that nothing is initially transferred from the server.  As sectors are
             * requested by the PCjs machine, PCjs requests them from the server, and maintains an MRU cache
             * of sectors, periodically discarding the least-used clean sectors above a certain memory limit.
             * Dirty sectors (ie, those that the PCjs machine has written to) must be periodically sent
             * back to the server and then marked as clean, so that they can be discarded like any other
             * sector.
             *
             * We also support "local" init-only disk images, which means that dirty sectors are never sent
             * back to the server and are instead retained by the client for the lifetime of the app; such
             * images are "read-only" as far as the server is concerned, but "read-write" as far as the client
             * is concerned.  Reloading/restarting an app with an "local" disk will return the disk to its
             * initial state.
             *
             * Practice
             * ---
             * Let's first look at what we *already* do for the HDC component:
             *
             *  1) Creating new (empty) disk images
             *  2) Pre-loading pre-built JSON-encoded disk images (converting them to JSON on the fly as needed)
             *
             * An example of #1 is in /devices/pc/machine/5160/cga/256kb/demo/machine.xml:
             *
             *      <hdc id="hdcXT" drives='[{name:"10Mb Hard Disk",type:3}]'/>
             *
             * and an example of #2 is in /disks/pc/fixed/win101.xml:
             *
             *      <hdc id="hdcXT" drives='[{name:"10Mb Hard Disk",path:"/disks/pc/fixed/win101/10mb.json",type:3}]'/>
             *
             * The HDC component expects an array of drive entries.  Array position determines drive numbering
             * (the first entry is drive 0, the second is drive 1, etc), and each entry contains the following
             * properties:
             *
             *      'name': user-friendly name for the disk, if any
             *      'path': URL of the disk image, if any
             *      'type': a drive type
             *
             * Of those properties, only 'type' is required, which provides an index into an HDC "Drive Type"
             * table that determines disk geometry and therefore disk size.  As we add support for larger disks and
             * newer disk controllers, the 'type' parameter will be superseded by either a user-defined 'geometry'
             * parameter that will define number of heads, cylinders, tracks, sectors per track, and (max) bytes per
             * sector, or perhaps a generic 'size' parameter that leaves geometry choices to the HDC component,
             * which will then pass those decisions on to the Disk component.
             *
             * We will enable on-demand I/O for a disk image with a new 'mode' parameter that looks like:
             *
             *      'mode': one of "local", "preload", "demandrw", "demandro"
             *
             * "preload" means the disk image will be completely preloaded, exactly as before; "demandrw" enables
             * full on-demand I/O support; and "demandro" enables on-demand I/O for reads only (all writes are retained
             * and never written back to the server).
             *
             * "ro" will be the fallback for "rw" unless TWO other important criteria are met: 1) the user has a
             * private user key, and therefore per-user storage; and 2) the disk image 'path' contains an asterisk (*)
             * that the server can internally remap to a directory in the user's storage; eg:
             *
             *      'path': <asterisk>/10mb.img (path components following the asterisk are optional)
             *
             * If the disk image does not already exist, it will be created (but not formatted).
             *
             * This preserves the promise that EVERYTHING a user does within a PCjs machine is private (ie, not
             * visible to any other PCjs users).  I don't want to be in the business of saving any user machine
             * states or disk changes, but at least those operations are limited to users who have asked for (and
             * received) a private user key.
             *
             * Another important consideration at this stage is dealing with multiple machines writing to the same
             * disk image; even though we're limiting the "demandrw" mode to per-user images, a single user may still
             * inadvertently start up multiple machines that refer to the same disk image.
             *
             * So, every PCjs machine needs to generate a unique token and include that token with every Disk I/O API
             * operation, so that the server can revoke a previous machine's "rw" access to a disk image when a new
             * machine requests "rw" access to the same disk image.
             *
             * From the client's perspective, revocation can be quietly dealt with by reverting to "demandro" mode;
             * that client becomes stuck with all their dirty sectors until they can reclaim "rw" access, which should
             * only happen if no intervening writes to the disk image on the server have occurred (if I bother allowing
             * reclamation at all).
             *
             * The real challenge here is avoiding revocation of a machine that still has critical changes to commit,
             * but since we can't even solve the problem of a user closing their browser at an inopportune time
             * and potentially leaving a disk image in an inconsistent state, premature revocation is the least of
             * our problems.  Since a real hard disk could suffer the same fate if the machine's power was turned off
             * at the wrong time, you could say that we're simply providing a faithful simulation of reality.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var str         = require("../../shared/lib/strlib");
                var usr         = require("../../shared/lib/usrlib");
                var web         = require("../../shared/lib/weblib");
                var DiskAPI     = require("../../shared/lib/diskapi");
                var DumpAPI     = require("../../shared/lib/dumpapi");
                var Component   = require("../../shared/lib/component");
                var Messages    = require("./messages");
            }
            
            /**
             * Disk(controller, drive, mode)
             *
             * Disk contents are stored as an array (aDiskData) of cylinders, each of which is an array of
             * heads, each of which is an array of sector objects; the latter contain sector numbers and
             * sector data, where sector data is an array of dwords.  The format does not impose any
             * limitations on number of cylinders, number of heads, sectors per track, or bytes per sector.
             *
             * WARNING: All accesses to disk sector properties must be via their string names, not their
             * "dot" names, otherwise code will break after it's been processed by the Closure Compiler,
             * and any dumped disks may be unmountable.  This is a side-effect of how we mount and dump
             * disk images (ie, as JSON-encoded streams).
             *
             * This means, for example, that all references to "track[iSector].data" must actually appear as
             * "track[iSector]['data']".
             *
             * @constructor
             * @extends Component
             * @param {HDC|FDC} controller
             * @param {Object} drive
             * @param {string} mode
             */
            function Disk(controller, drive, mode)
            {
                Component.call(this, "Disk", {'id': controller.idMachine + ".disk" + (++Disk.nDisks)}, Disk, Messages.DISK);
            
                /*
                 * Route all non-Debugger messages (eg, notice() and println() calls) through
                 * this.controller (eg, controller.notice() and controller.println()), because
                 * the Computer component is unaware of any Disk objects and therefore will not
                 * set up the usual overrides when a Control Panel is installed.
                 */
                this.controller = controller;
                this.cmp = controller.cmp;
                this.dbg = controller.dbg;
                this.drive = drive;
            
                /*
                 * We pull out a number of drive properties that we may or may not need as defaults
                 */
                this.sDiskName = drive.name;
                this.fRemovable = drive.fRemovable;
                this.fOnDemand = this.fRemote = false;
            
                /*
                 * Initialize the disk contents
                 */
                this.create(mode, drive.nCylinders, drive.nHeads, drive.nSectors, drive.cbSector);
            
                /*
                 * The following dirty sector and timer properties are used only with fOnDemand disks,
                 * assuming fRemote was successfully set.
                 */
                this.aDirtySectors = [];
                this.aDirtyTimestamps = [];         // this array is parallel to aDirtySectors
                this.timerWrite = null;             // REMOTE_WRITE_DELAY timer in effect, if any
                this.msTimerWrite = 0;              // the time that the write timer, if any, is set to fire
                this.fWriteInProgress = false;
            
                this.setReady();
            }
            
            /**
             * @typedef {{
             *  sPath:  string,
             *  sName:  string,
             *  bAttr:  number,
             *  cbSize: number,
             *  apba:   Array.<number>,
             *  disk:   Disk
             * }}
             */
            var FileInfo;
            
            /**
             * Every Sector object (once loaded and fully parsed) should have ALL of the following named properties:
             *
             *      'sector':   sector number
             *      'length':   size of the sector, in bytes
             *      'data':     array of dwords
             *      'pattern':  dword pattern to use for empty or partial sectors (or null if sector still needs to be loaded)
             *
             * initSector() also sets the following properties, to help us quickly identify its location within aDiskData:
             *
             *      iCylinder
             *      iHead
             *
             * In addition, we will maintain the following information on a per-sector basis, as sectors are modified:
             *
             *      iModify:    index of first modified dword in sector
             *      cModify:    number of modified dwords in sector
             *      fDirty:     true if sector is dirty, false if clean (or cleaning in progress)
             *
             * fDirty is used in conjunction with "demandrw" disks; it is set to true whenever the sector is modified, and is
             * set to false whenever the sector has been sent to the server.  If the server write succeeds and fDirty is still
             * false, then the sector modifications are removed (cModify is set to zero).  If the write succeeds but fDirty was
             * set to true again in the meantime, then all the sector modifications (even those that were just written) remain
             * in place (since we don't keep track of more than one modification range within a sector).  And if the write failed,
             * then fDirty is set back to true and again all modifications remain in place; the best we can do is schedule another
             * write attempt.
             *
             * TODO: Perhaps we should also maintain a failure count and stop trying to write sectors that reach a certain
             * threshold.  Error-handling, as usual, is the thorniest problem.
             *
             * @typedef {{
             *  sector:     number,
             *  length:     number,
             *  data:       Array.<number>,
             *  pattern:    (number|null),
             *  iCylinder:  number,
             *  iHead:      number,
             *  iModify:    number,
             *  cModify:    number
             * }}
             */
            var SectorData;
            
            /**
             * @class SectorInfo
             * @property {number} 0 contains iCylinder
             * @property {number} 1 contains iHead
             * @property {number} 2 contains iSector
             * @property {number} 3 contains nSectors
             * @property {boolean} 4 contains fAsync
             * @property {function(nErrorCode:number,fAsync:boolean)} 5 contains done
             */
            
            /**
             * The default number of milliseconds to wait before writing a dirty sector back to a remote disk image
             *
             * @const {number}
             */
            Disk.REMOTE_WRITE_DELAY = 2000;         // 2-second delay
            
            /*
             * A global disk count, used to form unique Disk component IDs
             */
            Disk.nDisks = 0;
            
            Component.subclass(Disk);
            
            /**
             * initBus(cmp, bus, cpu, dbg)
             *
             * We have no real interest in this notification, other than to obtain a reference to the Debugger
             * for every disk loaded BEFORE the initBus() phase; any disk loaded AFTER that point will get its Debugger
             * reference, if any, from the disk controller passed to the Disk() constructor.
             *
             * @this {ChipSet}
             * @param {Computer} cmp
             * @param {Bus} bus
             * @param {X86CPU} cpu
             * @param {Debugger} dbg
             */
            Disk.prototype.initBus = function(cmp, bus, cpu, dbg) {
                this.dbg = dbg;
            };
            
            /**
             * isRemote()
             *
             * @this {Disk}
             * @return {boolean} true if remote disk, false if not
             */
            Disk.prototype.isRemote = function() {
                /*
                 * Ironically, we can't rely on fRemote, because that is cleared and set across disconnect and
                 * reconnect operations.  fOnDemand is the next best thing.
                 */
                return this.fOnDemand;
            };
            
            /**
             * powerUp(data, fRepower)
             *
             * As with powerDown(), our sole concern here is for REMOTE disks: if a powerDown() call disconnected an
             * "on-demand" disk, we need to get reconnected.  Calling our own load() function should get the job done.
             *
             * The HDC component could have triggered this as well, but its powerUp() function only calls autoMount()
             * in case of page (ie, application) reload, which is fine for local disks but insufficient for remote disks,
             * which have a server connection that must be re-established.
             *
             * @this {Disk}
             * @param {Object|null} data
             * @param {boolean} [fRepower]
             * @return {boolean} true if successful, false if failure
             */
            Disk.prototype.powerUp = function(data, fRepower) {
                if (!fRepower) {
                    if (this.fOnDemand && !this.fRemote) {
                        this.setReady(false);
                        this.load(this.sDiskName, this.sDiskPath, null, this.donePowerUp, this);
                    }
                }
                return true;
            };
            
            /**
             * donePowerUp(drive, disk, sDiskName, sDiskPath)
             *
             * This is a callback issued by the Disk component once the load() from powerUp() has finished.
             *
             * @this {HDC}
             * @param {Object} drive
             * @param {Disk} disk is set if the disk was successfully mounted, null if not
             * @param {string} sDiskName
             * @param {string} sDiskPath
             */
            Disk.prototype.donePowerUp = function(drive, disk, sDiskName, sDiskPath)
            {
                this.setReady(true);
            };
            
            /**
             * powerDown(fSave, fShutdown)
             *
             * Our sole concern here is for REMOTE disks, making sure any unwritten changes get flushed to
             * the server during a shutdown.  No local state is ever returned, so fSave is ignored.
             *
             * Local disks are managed by the controller (ie, FDC or HDC) that mounted them; the controller's
             * powerDown() handler will take care of calling save() as needed.
             *
             * TODO: Consider taking responsibility for saving the state of local disks as well; the only reason
             * the controllers still take care of them is historical, because this component originally didn't
             * exist, and even after it was created, it didn't originally receive powerDown() notifications.
             *
             * @this {Disk}
             * @param {boolean} fSave
             * @param {boolean} [fShutdown]
             * @return {Object|boolean}
             */
            Disk.prototype.powerDown = function(fSave, fShutdown)
            {
                /*
                 * If we're connected to a remote disk, take this opportunity to flush any remaining unwritten
                 * changes and then close the connection.
                 */
                if (this.fRemote) {
                    var response;
                    var nErrorCode = 0;
                    if (this.fWriteInProgress) {
                        /*
                         * TODO: Verify that the Computer's powerOff() handler will actually honor a false return value.
                         */
                        if (!web.confirmUser("Disk writes are still in progress, shut down anyway?")) {
                            return false;
                        }
                    }
                    while ((response = this.findDirtySectors(false))) {
                        if ((nErrorCode = response[0])) {
                            this.controller.notice('Unable to save "' + this.sDiskName + '" (error ' + nErrorCode + ')');
                            break;
                        }
                    }
                    if (fShutdown) {
                        this.disconnectRemoteDisk();
                    }
                    /*
                     * I only report that changes to the disk have been "saved" if fSave is true, to avoid confusing
                     * users who might not understand the difference between discarding local changes (which should restore
                     * all diskettes to their original state) and discarding remote changes (which could leave the remote disk
                     * in a bad state).
                     */
                    if (!nErrorCode && fSave) this.controller.notice(this.sDiskName + " saved");
                }
                return true;
            };
            
            /**
             * create()
             *
             * @param {string} mode
             * @param {number} nCylinders
             * @param {number} nHeads
             * @param {number} nSectors (per track)
             * @param {number} cbSector
             *
             * Initializes the disk contents according to the current drive mode and parameters.
             */
            Disk.prototype.create = function(mode, nCylinders, nHeads, nSectors, cbSector)
            {
                this.mode = mode;
                this.nCylinders = nCylinders;
                this.nHeads = nHeads;
                this.nSectors = nSectors;
                this.cbSector = cbSector;
                this.aDiskData = [];
                /*
                 * If the drive is using PRELOAD mode, then it will use the load()/mount() process to initialize the disk contents;
                 * it wouldn't hurt to let create() do its thing, too, but it's a waste of time.
                 */
                if (this.mode != DiskAPI.MODE.PRELOAD) {
                    if (DEBUG && this.messageEnabled()) {
                        this.printMessage("blank disk for \"" + this.sDiskName + "\": " + this.nCylinders + " cylinders, " + this.nHeads + " head(s)");
                    }
                    var aCylinders = new Array(this.nCylinders);
                    for (var iCylinder = 0; iCylinder < aCylinders.length; iCylinder++) {
                        var aHeads = new Array(this.nHeads);
                        for (var iHead = 0; iHead < aHeads.length; iHead++) {
                            var aSectors = new Array(this.nSectors);
                            for (var iSector = 1; iSector <= aSectors.length; iSector++) {
                                /*
                                 * Now that our read() and write() functions can deal with unallocated data
                                 * arrays, and can read/write the specified pattern on-the-fly, we no longer need
                                 * to pre-allocate and pre-initialize the 'data' array.
                                 *
                                 * For "local" disks, we can assume a 'pattern' of 0, but for "demandrw" and "demandro"
                                 * disks, 'pattern' is set to null, as yet another indication that I/O is required to load
                                 * the sector from the server (or to write it back to the server).
                                 */
                                aSectors[iSector - 1] = this.initSector(null, iCylinder, iHead, iSector, this.cbSector, (this.mode == DiskAPI.MODE.LOCAL? 0 : null));
                            }
                            aHeads[iHead] = aSectors;
                        }
                        aCylinders[iCylinder] = aHeads;
                    }
                    this.aDiskData = aCylinders;
                }
                this.dwChecksum = null;
            };
            
            /**
             * load(sDiskName, sDiskPath, file, fnNotify)
             *
             * TODO: Figure out how we can strongly type fnNotify, because the Closure Compiler has issues with:
             *
             *      param {function(Component,Object,Disk,string,string)} fnNotify
             *
             * for:
             *
             *     this.fnNotify.call(this.controller, this.drive, disk, this.sDiskName, this.sDiskPath);
             *
             * Also, while we're at it, learn if there are ways to:
             *
             *      1) declare a function taking NO parameters (ie, generate a warning if any parameters are specified)
             *      2) declare a type for a function's return value
             *
             * @this {Disk}
             * @param {string} sDiskName
             * @param {string} sDiskPath
             * @param {File} [file] is set if there's an associated File object
             * @param {function(...)} [fnNotify]
             * @param {Component} [controller]
             */
            Disk.prototype.load = function(sDiskName, sDiskPath, file, fnNotify, controller)
            {
                var sDiskURL = sDiskPath;
            
                /*
                 * We could use this.log() as well, but it wouldn't display which component initiated the load.
                 */
                if (DEBUG) {
                    var sMessage = 'load("' + sDiskName + '","' + sDiskPath + '")';
                    this.controller.log(sMessage);
                    this.printMessage(sMessage);
                }
            
                if (this.fnNotify) {
                    if (DEBUG) this.controller.log('too many load requests for "' + sDiskName + '" (' + sDiskPath + ')');
                    return;
                }
            
                this.sDiskName = sDiskName;
                this.sDiskPath = sDiskPath;
                this.fnNotify = fnNotify;
                this.controllerNotify = controller || this.controller;
            
                if (file) {
                    var disk = this;
                    var reader = new FileReader();
                    reader.onload = function() {
                        disk.build(reader.result, true);
                    };
                    reader.readAsArrayBuffer(file);
                    return;
                }
            
                /*
                 * If there's an occurrence of API_ENDPOINT anywhere in the path, we assume we can use it as-is;
                 * ie, that the user has already formed a URL of the type we use ourselves for unconverted disk images.
                 */
                if (sDiskPath.indexOf(DumpAPI.ENDPOINT) < 0) {
                    /*
                     * If the selected disk image has a "json" extension, then we assume it's a pre-converted
                     * JSON-encoded disk image, so we load it as-is; otherwise, we ask our server-side disk image
                     * converter to return the corresponding JSON-encoded data.
                     */
                    var sDiskExt = str.getExtension(sDiskPath);
                    if (sDiskExt == DumpAPI.FORMAT.JSON) {
                        sDiskURL = encodeURI(sDiskPath);
                    } else {
                        if (this.mode == DiskAPI.MODE.DEMANDRW || this.mode == DiskAPI.MODE.DEMANDRO) {
                            sDiskURL = this.connectRemoteDisk(sDiskPath);
                            this.fOnDemand = true;
                        } else {
                            var sDiskParm = DumpAPI.QUERY.PATH;
                            var sSizeParm = '&' + DumpAPI.QUERY.MBHD + "=10";
                            /*
                             * 'mbhd' is a new parm added for hard disk support.  In the case of 'file' or 'dir' requests,
                             * 'mbhd' informs DumpAPI.ENDPOINT that it should create a hard disk image, and one not larger than
                             * the specified size (eg, 10mb).  In fact, until DumpAPI.ENDPOINT is changed to create custom hard
                             * disk BPBs, you'll always get a standard PC XT 10mb disk image, so if the 'file' or 'dir' contains
                             * more than 10mb of data, the request will fail.  Ultimately, I want to honor the controller's
                             * driveConfig 'size' parm, or to match the capacity required by the driveConfig 'type' parameter.
                             *
                             * If a 'disk' is specified, we pass mbhd=0, because the actual size will depend on the image.
                             * However, I don't currently have any "dsk" or "img" files containing hard disk images; those formats
                             * were really intended for floppy disk images.  If I never create any hard disk image files, then
                             * we can simply eliminate sSizeParm in the 'disk' case.
                             *
                             * Added more extensions to the list of paths-treated-as-disk-images, so that URLs to files located here:
                             *
                             *      ftp://ftp.oldskool.org/pub/TOPBENCH/dskimage/
                             *
                             * can be used as-is.  TODO: There's a TODO in netlib.getFile() regarding remote support that needs
                             * to be resolved first; DiskDump relies on that function for its remote requests, and it currently
                             * supports only HTTP.
                             */
                            if (!sDiskPath.indexOf("http:") || !sDiskPath.indexOf("ftp:") || ["dsk", "ima", "img", "360", "720", "12", "144"].indexOf(sDiskExt) >= 0) {
                                sDiskParm = DumpAPI.QUERY.DISK;
                                sSizeParm = '&' + DumpAPI.QUERY.MBHD + "=0";
                            } else if (str.endsWith(sDiskPath, '/')) {
                                sDiskParm = DumpAPI.QUERY.DIR;
                            }
                            sDiskURL = web.getHost() + DumpAPI.ENDPOINT + '?' + sDiskParm + '=' + encodeURIComponent(sDiskPath) + (this.fRemovable ? "" : sSizeParm) + "&" + DumpAPI.QUERY.FORMAT + "=" + DumpAPI.FORMAT.JSON;
                        }
                    }
                }
                web.loadResource(sDiskURL, true, null, this, this.doneLoad, sDiskPath);
            };
            
            /**
             *
             * build(buffer, fModified)
             *
             * Builds a disk image from an ArrayBuffer (eg, from a FileReader object), rather than from JSON-encoded data.
             *
             * @this {Disk}
             * @param {?} buffer (we KNOW this is an ArrayBuffer, but we can't seem to convince the Closure Compiler)
             * @param {boolean} [fModified] is true if we should mark the entire disk modified (to ensure that we save/restore it)
             */
            Disk.prototype.build = function(buffer, fModified)
            {
                var disk;
                var cbDiskData = buffer? buffer.byteLength : 0;
                var disketteFormat = DiskAPI.DISKETTE_FORMATS[cbDiskData];
            
                if (disketteFormat) {
                    this.nCylinders = disketteFormat[0];
                    this.nHeads = disketteFormat[1];
                    this.nSectors = disketteFormat[2];
                    this.cbSector = 512;
            
                    var cdw = this.cbSector >> 2, dwPattern = 0, dwChecksum = 0;
                    var ib = 0;
                    var dv = new DataView(buffer, 0, cbDiskData);
            
                    this.aDiskData = new Array(this.nCylinders);
                    for (var iCylinder = 0; iCylinder < this.aDiskData.length; iCylinder++) {
                        var cylinder = this.aDiskData[iCylinder] = new Array(this.nHeads);
                        for (var iHead = 0; iHead < cylinder.length; iHead++) {
                            var head = cylinder[iHead] = new Array(this.nSectors);
                            for (var iSector = 0; iSector < head.length; iSector++) {
                                var sector = this.initSector(null, iCylinder, iHead, iSector + 1, this.cbSector, dwPattern);
                                var adw = sector['data'];
                                for (var idw = 0; idw < cdw; idw++, ib += 4) {
                                    var dw = adw[idw] = dv.getInt32(ib, true);
                                    dwChecksum = (dwChecksum + dw) & (0xffffffff|0);
                                }
                                if (fModified) sector.cModify = cdw;
                                head[iSector] = sector;
                            }
                        }
                    }
                    this.dwChecksum = dwChecksum;
                    disk = this;
                } else {
                    this.notice("Unrecognized diskette format (" + cbDiskData + " bytes)");
                }
            
                if (this.fnNotify) {
                    this.fnNotify.call(this.controller, this.drive, disk, this.sDiskName, this.sDiskPath);
                    this.fnNotify = null;
                }
            };
            
            /**
             * doneLoad(sDiskFile, sDiskData, nErrorCode, sDiskPath)
             *
             * This function was originally called mount().  If the mount is successful, we pass the Disk object to the
             * caller's fnNotify handler; otherwise, we pass null.
             *
             * @this {Disk}
             * @param {string} sDiskFile
             * @param {string} sDiskData
             * @param {number} nErrorCode (response from server if anything other than 200)
             * @param {string} sDiskPath (passed through from load() to loadResource())
             */
            Disk.prototype.doneLoad = function(sDiskFile, sDiskData, nErrorCode, sDiskPath)
            {
                var disk = null;
                this.fWriteProtected = false;
                var fPrintOnly = (nErrorCode < 0 && this.cmp && !this.cmp.aFlags.fPowered);
            
                this.sDiskFile = sDiskFile;
            
                if (this.fOnDemand) {
                    if (!nErrorCode) {
                        if (DEBUG && this.messageEnabled()) {
                            this.printMessage('doneLoad("' + sDiskFile + '","' + sDiskPath + '")');
                        }
                        this.fRemote = true;
                        this.buildFileTable();
                        disk = this;
                    } else {
                        this.controller.notice('Unable to connect to disk "' + sDiskPath + '" (error ' + nErrorCode + ': ' + sDiskData + ')', fPrintOnly);
                    }
                }
                else if (nErrorCode) {
                    /*
                     * This can happen for innocuous reasons, such as the user switching away too quickly, forcing
                     * the request to be cancelled.  And unfortunately, the browser cancels XMLHttpRequest requests
                     * BEFORE it notifies any page event handlers, so if the Computer's being powered down, we won't know
                     * that yet.  For now, we rely on the lack of a specific error (nErrorCode < 0), and suppress the
                     * notify() alert if there's no specific error AND the computer is not powered up yet.
                     */
                    this.controller.notice("Unable to load disk \"" + this.sDiskName + "\" (error " + nErrorCode + ")", fPrintOnly);
                } else {
                    if (DEBUG && this.messageEnabled()) {
                        this.printMessage('doneLoad("' + sDiskFile + '","' + sDiskPath + '")');
                    }
                    try {
                        /*
                         * The following code was a hack to turn on write-protection for a disk image if there was
                         * an initial comment line containing the string "write-protected".  However, since comments
                         * are technically not allowed in JSON, I needed an alternative solution.  So, if the basename
                         * contains the suffix "-readonly", then I'll turn on write-protection for that disk as well.
                         *
                         * TODO: Provide some UI for turning write-protection on/off for disks at will, and provide
                         * an XML-based solution (ie, a per-disk XML configuration option) for controlling it as well.
                         */
                        var sBaseName = str.getBaseName(sDiskFile, true).toLowerCase();
                        if (sBaseName.indexOf("-readonly") > 0) {
                            this.fWriteProtected = true;
                        } else {
                            var iEOL = sDiskData.indexOf("\n");
                            if (iEOL > 0 && iEOL < 1024) {
                                var sConfig = sDiskData.substring(0, iEOL);
                                if (sConfig.indexOf("write-protected") > 0) {
                                    this.fWriteProtected = true;
                                }
                            }
                        }
                        /*
                         * The most likely source of any exception will be here, where we're parsing the disk data.
                         *
                         * TODO: IE9 is rather unfriendly and restrictive with regard to how much data it's willing to
                         * eval().  In particular, the 10Mb disk image we use for the Windows 1.01 demo config fails in
                         * IE9 with an "Out of memory" exception.  One work-around would be to chop the data into chunks
                         * (perhaps one track per chunk, using regular expressions) and then manually re-assemble it.
                         *
                         * However, it turns out that using JSON.parse(sDiskData) instead of eval("(" + sDiskData + ")")
                         * is a much easier fix. The only drawback is that we must first quote any unquoted property names
                         * and remove any comments, because while eval() was cool with them, JSON.parse() is more particular;
                         * the following RegExp replacements take care of those requirements.
                         *
                         * The use of hex values is something else that eval() was OK with, but JSON.parse() is not, and
                         * while I've stopped using hex values in DumpAPI responses (at least when "format=json" is specified),
                         * I can't guarantee they won't show up in "legacy" images, and there's no simple RegExp replacement
                         * for transforming hex values into decimal values, so I cop out and fall back to eval() if I detect
                         * any hex prefixes ("0x") in the sequence.  Ditto for error messages, which appear like so:
                         *
                         *      ["unrecognized disk path: test.img"]
                         */
                        var aDiskData;
                        if (sDiskData.substr(0, 1) == "<") {        // if the "data" begins with a "<"...
                            /*
                             * Early server configs reported an error (via the nErrorCode parameter) if a disk URL was invalid,
                             * but more recent server configs now display a somewhat friendlier HTML error page.  The downside,
                             * however, is that the original error has been buried, and we've received "data" that isn't actually
                             * disk data.
                             *
                             * So, if the data we've received appears to be "HTML-like", all we can really do is assume that the
                             * disk image is missing.  And so we pretend we received an error message to that effect.
                             */
                            aDiskData = ["Missing disk image: " + this.sDiskName];
                        } else {
                            if (sDiskData.indexOf("0x") < 0 && sDiskData.substr(0, 2) != "[\"") {
                                aDiskData = JSON.parse(sDiskData.replace(/([a-z]+):/gm, "\"$1\":").replace(/\/\/[^\n]*/gm, ""));
                            } else {
                                aDiskData = eval("(" + sDiskData + ")");
                            }
                        }
            
                        if (!aDiskData.length) {
                            Component.error("Empty disk image: " + this.sDiskName);
                        }
                        else if (aDiskData.length == 1) {
                            Component.error(aDiskData[0]);
                        }
                        /*
                         * aDiskData is an array of cylinders, each of which is an array of heads, each of which
                         * is an array of sector objects.  The format does not impose any limitations on number of
                         * cylinders, number of heads, or number of bytes in any of the sector object byte-arrays.
                         *
                         * WARNING: All accesses to sector object properties must be via their string names, not their
                         * "dot" names, otherwise code will break after it's been processed by the Closure Compiler.
                         *
                         * Sector object properties include:
                         *
                         *      'sector'    the sector number (1-based, not required to be sequential)
                         *      'length'    the byte-length (ie, formatted length) of the sector
                         *      'data'      the dword-array containing the sector data
                         *      'pattern'   if the dword-array length is less than 'length'/4, this value must be used
                         *                  to pad out the sector; if no 'pattern' is specified, it's assumed to be zero
                         *
                         * We still support the older JSON encoding, where sector data was encoded as an array of 'bytes'
                         * rather than a dword 'data' array.  However, our support is strictly limited to an on-the-fly
                         * conversion to a forward-compatible 'data' array.
                         */
                        else {
                            if (MAXDEBUG && this.messageEnabled()) {
                                var sCylinders = aDiskData.length + " track" + (aDiskData.length > 1 ? "s" : "");
                                var nHeads = aDiskData[0].length;
                                var sHeads = nHeads + " head" + (nHeads > 1 ? "s" : "");
                                var nSectorsPerTrack = aDiskData[0][0].length;
                                var sSectorsPerTrack = nSectorsPerTrack + " sector" + (nSectorsPerTrack > 1 ? "s" : "") + "/track";
                                this.printMessage(sCylinders + ", " + sHeads + ", " + sSectorsPerTrack);
                            }
                            /*
                             * Before the image is usable, we must "normalize" all the sectors.  In the past, this meant
                             * "inflating" them all.  However, that's no longer strictly necessary.  Mainly, it just means
                             * setting 'length', 'data', and 'pattern' properties, so that all the sectors are well-defined.
                             * This includes detecting sector data in older formats (eg, the old array of 'bytes' instead
                             * of the new 'data' array of dwords) and converting them on-the-fly to the current format.
                             */
                            this.nCylinders = aDiskData.length;
                            this.nHeads = aDiskData[0].length;
                            this.nSectors = aDiskData[0][0].length;
                            var sector = aDiskData[0][0][0];
                            this.cbSector = (sector && sector['length']) || 512;
            
                            var dwChecksum = 0;
                            for (var iCylinder = 0; iCylinder < this.nCylinders; iCylinder++) {
                                for (var iHead = 0; iHead < this.nHeads; iHead++) {
                                    for (var iSector = 0; iSector < this.nSectors; iSector++) {
                                        sector = aDiskData[iCylinder][iHead][iSector];
                                        if (!sector) continue;          // non-standard (eg, XDF) disk images may have "unused" (null) sectors
                                        var length = sector['length'];
                                        if (length === undefined) {     // provide backward-compatibility with older JSON...
                                            length = sector['length'] = 512;
                                        }
                                        length >>= 2;                   // convert length from a byte-length to a dword-length
                                        var dwPattern = sector['pattern'];
                                        if (dwPattern === undefined) {
                                            dwPattern = sector['pattern'] = 0;
                                        }
                                        var adw = sector['data'];
                                        if (adw === undefined) {
                                            var ab = sector['bytes'];
                                            if (ab === undefined || !ab.length) {
                                                /*
                                                 * It would be odd if there was neither a 'bytes' nor 'data' array; I'm just
                                                 * being paranoid.  It's more likely that the 'bytes' array is simply empty,
                                                 * in which case we need only create an empty 'data' array and turn the byte
                                                 * pattern, if any, into a dword pattern.
                                                 */
                                                adw = [];
                                                this.assert((dwPattern & 0xff) == dwPattern);
                                                dwPattern = sector['pattern'] = (dwPattern | (dwPattern << 8) | (dwPattern << 16) | (dwPattern << 24));
                                                sector['data'] = adw;
                                            } else {
                                                /*
                                                 * To keep the conversion code simple, we'll do any necessary pattern-filling first,
                                                 * to fully "inflate" the sector, eliminating the possibility of partial dwords and
                                                 * saving any code downstream from dealing with byte-size patterns.
                                                 */
                                                var cb = length << 2;
                                                for (var ib = ab.length; ib < cb; ib++) {
                                                    ab[ib] = dwPattern; // the pattern for byte-arrays was only a byte
                                                }
                                                this.fill(sector, ab, 0);
                                            }
                                            delete sector['bytes'];
                                        }
                                        this.initSector(sector, iCylinder, iHead);
                                        /*
                                         * For the disk as a whole, we maintain a checksum of the original unmodified data:
                                         *
                                         *      dwChecksum: summation of all dwords in all non-empty sectors
                                         *
                                         * Pattern-filling of sectors is deferred until absolutely necessary (eg, when a sector is
                                         * being written).  So all we need to do at this point is checksum all the initial sector data.
                                         */
                                        for (var idw = 0; idw < adw.length; idw++) {
                                            dwChecksum = (dwChecksum + adw[idw]) & (0xffffffff|0);
                                        }
                                    }
                                }
                            }
                            this.aDiskData = aDiskData;
                            this.dwChecksum = dwChecksum;
                            this.buildFileTable();
                            disk = this;
                        }
                    } catch (e) {
                        Component.error("Disk image error: " + e.message);
                    }
                }
            
                if (this.fnNotify) {
                    this.fnNotify.call(this.controllerNotify, this.drive, disk, this.sDiskName, this.sDiskPath);
                    this.fnNotify = null;
                }
            };
            
            /**
             * buildFileTable()
             *
             * This function builds a complete file table from the (first) FAT volume found on the current disk, and
             * then updates all the sector objects to point back to the corresponding file.  Used for BACKTRACK support.
             *
             * Note that while most of the methods in this module use CHS-style parameters, because our primary clients
             * are old disk controllers that deal exclusively with cylinder/head/sector values, here we use 0-based
             * "logical" sector numbers for volume-relative block addresses (aka LBAs or Logical Block Addresses), and
             * 0-based "physical" sector numbers for disk-relative block addresses (aka PBAs or Physical Block Addresses).
             *
             * Also, our use of the term LBA differs from that of more modern disk controllers; in the pre-modern world
             * of PCjs, what we call PBA numbers are what those controllers would later call LBA numbers.
             *
             * @this {Disk}
             */
            Disk.prototype.buildFileTable = function()
            {
                if (BACKTRACK) {
                    var i, off, dir = {};
            
                    this.aFileTable = [];
            
                    dir.pbaVolume = dir.lbaTotal = 0;
            
                    var cbDisk = this.nCylinders * this.nHeads * this.nSectors * this.cbSector;
            
                    /*
                     * At this point, if this is a remote disk, you may see some warning messages in your browser's console,
                     * like this message from Chrome:
                     *
                     *      "Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects
                     *      to the end user's experience. For more help, check http://xhr.spec.whatwg.org/."
                     *
                     * This is because I was lazy and made the buildFileTable() worker function getSector() use the synchronous
                     * form of seek().  For development purposes, that was fine, but...  TODO: Eventually change buildFileTable()
                     * to use async I/O.
                     */
                    if (this.fRemote) this.log("ignore any synchronous XMLHttpRequest warnings here (for now)");
            
                    var sectorBoot = this.getSector(0);
                    if (!sectorBoot) {
                        if (DEBUG && this.messageEnabled()) {
                            this.printMessage("buildFileTable(): unable to read boot sector");
                        }
                        return;
                    }
            
                    dir.cbSector = this.getSectorData(sectorBoot, DiskAPI.BPB.SECTOR_BYTES, 2);
            
                    var fValid = true;
                    if (dir.cbSector != this.cbSector) {
                        /*
                         * When the first sector doesn't appear to contain a valid BPB, the most likely explanations are:
                         *
                         *      1. The image is from a diskette formatted by DOS 1.xx, which didn't use BPBs
                         *      2. The image is a fixed (partitioned) disk and the first sector is actually an MBR
                         *      3. The image is from a diskette that used a non-standard sector size (ie, not 512)
                         *
                         * To start, if this is an 160Kb disk (circa DOS 1.00) or a 320Kb disk (circa DOS 1.10), then we'll
                         * assume it's a 12-bit FAT, set assorted BPB values accordingly, and see if our assumption holds up.
                         */
                        fValid = false;
                        dir.lbaFAT = 1;
                        dir.nFATBits = 12;
                        dir.lbaRoot = dir.lbaFAT + 2;   // both 160Kb and 320Kb disks contained 2 FATs, each containing 1 sector
                        dir.nClusterSecs = 1;
                        dir.cbSector = this.cbSector;
            
                        if (cbDisk == 160 * 1024 && this.getClusterEntry(dir, 0, 0) == DiskAPI.FAT.MEDIA_160KB) {
                            dir.lbaTotal = 320;
                            dir.nEntries = 64;
                            fValid = true;
                        }
                        else if (cbDisk == 320 * 1024 && this.getClusterEntry(dir, 0, 0) == DiskAPI.FAT.MEDIA_320KB) {
                            dir.lbaTotal = 640;
                            dir.nEntries = 112;
                            fValid = true;
                        }
                        else {
                            /*
                             * So, this is either a fixed (partitioned) disk, or a disk using a non-standard sector size; let's assume
                             * the former and check for an MBR.  For now, we're only going to process the first active partition we find.
                             */
                            off = DiskAPI.MBR.PARTITIONS.OFFSET;
                            for (i = 0; i < 4; i++) {
                                var bStatus = this.getSectorData(sectorBoot, off + DiskAPI.MBR.PARTITIONS.ENTRY.STATUS, 1);
                                if (bStatus == DiskAPI.MBR.PARTITIONS.STATUS.ACTIVE) {
                                    dir.pbaVolume = this.getSectorData(sectorBoot, off + DiskAPI.MBR.PARTITIONS.ENTRY.LBA_FIRST, 4);
                                    sectorBoot = this.getSector(dir.pbaVolume);
                                    if (sectorBoot) fValid = true;
                                    break;
                                }
                                off += DiskAPI.MBR.PARTITIONS.ENTRY.LENGTH;
                            }
                        }
                        if (!fValid) {
                            if (DEBUG && this.messageEnabled()) {
                                this.printMessage("buildFileTable(): unrecognized " + cbDisk + "-byte disk image with " + this.cbSector + "-byte sectors");
                            }
                            return;
                        }
                    }
            
                    if (!dir.lbaTotal) {
                        dir.lbaTotal = this.getSectorData(sectorBoot, DiskAPI.BPB.TOTAL_SECS, 2) || this.getSectorData(sectorBoot, DiskAPI.BPB.LARGE_SECS, 4);
                        dir.lbaFAT = this.getSectorData(sectorBoot, DiskAPI.BPB.RESERVED_SECS, 2);
                        dir.lbaRoot = dir.lbaFAT + this.getSectorData(sectorBoot, DiskAPI.BPB.FAT_SECS, 2) * this.getSectorData(sectorBoot, DiskAPI.BPB.TOTAL_FATS, 1);
                        dir.nEntries = this.getSectorData(sectorBoot, DiskAPI.BPB.ROOT_DIRENTS, 2);
                        dir.nClusterSecs = this.getSectorData(sectorBoot, DiskAPI.BPB.CLUSTER_SECS, 1);
                    }
            
                    dir.lbaData = dir.lbaRoot + (((dir.nEntries * DiskAPI.DIRENT.LENGTH + (dir.cbSector - 1)) / dir.cbSector) | 0);
                    dir.nClusters = (((dir.lbaTotal - dir.lbaData) / dir.nClusterSecs) | 0);
            
                    /*
                     * In all FATs, the first valid cluster number is 2, as 0 is used to indicate a free cluster and 1 is reserved.
                     *
                     * In a 12-bit FAT chain, the largest valid cluster number (iClusterMax) is 0xFF6; 0xFF7 is reserved for marking
                     * bad clusters and should NEVER appear in a cluster chain, and 0xFF8-0xFFF are used to indicate the end of a chain.
                     * Reports that cluster numbers 0xFF0-0xFF6 are "reserved" (eg, http://support.microsoft.com/KB/65541) should be
                     * ignored; those numbers may have been considered "reserved" at some early point in FAT's history, but no longer.
                     *
                     * Since 12 bits yield 4096 possible values, and since 11 of the values (0, 1, and 0xFF7-0xFFF) cannot be used to
                     * refer to an actual cluster, that leaves a theoretical maximum of 4085 clusters for a 12-bit FAT.  However, for
                     * reasons that only a small (and shrinking -- RIP AAR) number of people know, the actual cut-off is 4084.
                     *
                     * So, a FAT volume with 4084 or fewer clusters uses a 12-bit FAT, a FAT volume with 4085 to 65524 clusters uses
                     * a 16-bit FAT, and a FAT volume with more than 65524 clusters uses a 32-bit FAT.
                     *
                     * TODO: Eventually add support for FAT32.
                     */
                    dir.nFATBits = (dir.nClusters <= DiskAPI.FAT12.MAX_CLUSTERS? 12 : 16);
                    dir.iClusterMax = (dir.nFATBits == 12? DiskAPI.FAT12.CLUSNUM_MAX : DiskAPI.FAT16.CLUSNUM_MAX);
            
                    if (DEBUG && this.messageEnabled()) {
                        this.printMessage("buildFileTable()\n\tlbaFAT: " + dir.lbaFAT + "\n\tlbaRoot: " + dir.lbaRoot + "\n\tlbaData: " + dir.lbaData + "\n\tlbaTotal: " + dir.lbaTotal + "\n\tnClusterSecs: " + dir.nClusterSecs + "\n\tnClusters: " + dir.nClusters);
                    }
            
                    /*
                     * The following assertion is here only to catch anomalies; it is NOT a requirement that the number of data sectors
                     * be a perfect multiple of nClusterSecs, but if it ever happens, it's worth verifying we didn't miscalculate something.
                     */
                    i = (dir.lbaTotal - dir.lbaData) % dir.nClusterSecs;
                    if (i) {
                        if (DEBUG && this.messageEnabled()) {
                            this.printMessage("buildFileTable(): " + cbDisk + "-byte disk image wasting " + i + " sectors");
                        }
                    }
            
                    /*
                     * Similarly, it is NOT a requirement that the size of all root directory entries be a perfect multiple of the sector
                     * size (cbSector), but it may indicate a problem if it's not.  Note that when it comes time to read the root directory,
                     * we treat it exactly like any other directory; that is, we ignore the nEntries value and scan the entire contents of
                     * every sector allocated to the directory.  TODO: Determine whether DOS reads all root sector contents or only nEntries
                     * (ie, create a test volume where nEntries * 32 is NOT a multiple of cbSector and watch what happens).
                     */
                    this.assert(!((dir.nEntries * DiskAPI.DIRENT.LENGTH) % dir.cbSector));
            
                    var apba = [];
                    for (var lba = dir.lbaRoot; lba < dir.lbaData; lba++) apba.push(dir.pbaVolume + lba);
                    this.getDir(dir, this.sDiskFile, "", apba);
            
                    /*
                     * Create the sector-to-file mappings now.
                     */
                    for (i = 0; i < this.aFileTable.length; i++) {
                        var file = this.aFileTable[i];
                        off = 0;
                        for (var iSector = 0; iSector < file.apba.length; iSector++) {
                            this.updateSector(file, file.apba[iSector], off);
                            off += this.cbSector;
                        }
                    }
                }
            };
            
            /**
             * getDir(dir, sDisk, sDir, apba)
             *
             * @this {Disk}
             * @param {Object} dir
             * @param {string} sDisk
             * @param {string} sDir
             * @param {Array.<number>} apba
             */
            Disk.prototype.getDir = function(dir, sDisk, sDir, apba)
            {
                var iStart = this.aFileTable.length;
                var nEntriesPerSector = (dir.cbSector / DiskAPI.DIRENT.LENGTH) | 0;
            
                dir.sDir = sDir + "\\";
            
                if (DEBUG && this.messageEnabled()) this.printMessage('getDir("' + sDisk + '","' + dir.sDir + '")');
            
                for (var iSector = 0; iSector < apba.length; iSector++) {
                    var pba = apba[iSector];
                    for (var iEntry = 0; iEntry < nEntriesPerSector; iEntry++) {
                        if (!this.getDirEntry(dir, pba, iEntry)) {
                            iSector = apba.length;
                            break;
                        }
                        if (dir.sName == null || dir.sName == "." || dir.sName == "..") continue;
                        var sPath = dir.sDir + dir.sName;
                        if (DEBUG && this.messageEnabled(Messages.DISK | Messages.DATA)) {
                            this.printMessage('"' + sPath + '" size=' + dir.cbSize + ' cluster=' + dir.iCluster + ' sectors=' + JSON.stringify(dir.apba));
                            if (dir.apba.length) this.printMessage(this.dumpSector(this.getSector(dir.apba[0]), dir.apba[0], sPath));
                        }
                        this.aFileTable.push({sPath: sPath, sName: dir.sName, bAttr: dir.bAttr, cbSize: dir.cbSize, apba: dir.apba, disk: this});
                    }
                }
            
                var iEnd = this.aFileTable.length;
            
                for (var i = iStart; i < iEnd; i++) {
                    var file = this.aFileTable[i];
                    if (file.bAttr & DiskAPI.ATTR.SUBDIR && file.apba.length) this.getDir(dir, sDisk, sDir + "\\" + file.sName, file.apba);
                }
            };
            
            /**
             * getDirEntry(dir, pba, i)
             *
             * This sets the following properties on the 'dir' object:
             *
             *      sName (null if invalid/deleted entry)
             *      bAttr
             *      cbSize
             *      iCluster
             *      apba (ie, array of physical block addresses)
             *
             * On return, it's the caller's responsibility to copy out any data into a new object
             * if it wants to preserve any of the above information.
             *
             * This function also caches the following properties in the 'dir' object:
             *
             *      pbaDirCache (of the last directory sector read, if any)
             *      sectorDirCache (of the last directory sector read, if any)
             *
             * Also, the caller must also set the following 'dir' helper properties, so that clusters
             * can be located and converted to sectors (see convertClusterToSectors):
             *
             *      lbaFAT
             *      lbaData
             *      cbSector
             *      iClusterMax
             *      nClusterSecs
             *      nFATBits
             *
             * @this {Disk}
             * @param {Object} dir (to be filled in)
             * @param {number} pba (a sector of the directory)
             * @param {number} i (an entry in the directory sector, 0-based)
             * @returns {boolean} true if entry was returned (even if invalid/deleted), false if no more entries
             */
            Disk.prototype.getDirEntry = function(dir, pba, i)
            {
                if (!dir.sectorDirCache || !dir.pbaDirCache || dir.pbaDirCache != pba) {
                    dir.pbaDirCache = pba;
                    dir.sectorDirCache = this.getSector(dir.pbaDirCache);
                    if (DEBUG && this.messageEnabled(Messages.DISK | Messages.DATA)) {
                        this.printMessage(this.dumpSector(dir.sectorDirCache, dir.pbaDirCache, dir.sDir));
                    }
                }
                if (dir.sectorDirCache) {
                    var off = i * DiskAPI.DIRENT.LENGTH;
                    var b = this.getSectorData(dir.sectorDirCache, off, 1);
                    if (b == DiskAPI.DIRENT.UNUSED) {
                        return false;
                    }
                    if (b == DiskAPI.DIRENT.INVALID) {
                        dir.sName = null;
                        return true;
                    }
                    dir.sName = str.trim(this.getSectorString(dir.sectorDirCache, off + DiskAPI.DIRENT.NAME, 8));
                    var s = str.trim(this.getSectorString(dir.sectorDirCache, off + DiskAPI.DIRENT.EXT, 3));
                    if (s.length) dir.sName += '.' + s;
                    dir.bAttr = this.getSectorData(dir.sectorDirCache, off + DiskAPI.DIRENT.ATTR, 1);
                    dir.cbSize = this.getSectorData(dir.sectorDirCache, off + DiskAPI.DIRENT.SIZE, 2);
                    dir.iCluster = this.getSectorData(dir.sectorDirCache, off + DiskAPI.DIRENT.CLUSTER, 2);
                    dir.apba = this.convertClusterToSectors(dir);
                    return true;
                }
                return false;
            };
            
            /**
             * convertClusterToSectors(dir)
             *
             * @this {Disk}
             * @param {Object} dir
             * @return {Array.<number>} of PBAs (physical block addresses)
             */
            Disk.prototype.convertClusterToSectors = function(dir)
            {
                var apba = [];
                var iCluster = dir.iCluster;
                if (iCluster) {
                    do {
                        if (iCluster < DiskAPI.FAT12.CLUSNUM_MIN) {
                            this.assert(false);
                            break;
                        }
                        var lba = dir.lbaData + ((iCluster - DiskAPI.FAT12.CLUSNUM_MIN) * dir.nClusterSecs);
                        for (var i = 0; i < dir.nClusterSecs; i++) {
                            apba.push(dir.pbaVolume + lba++);
                        }
                        iCluster = this.getClusterEntry(dir, iCluster, 0) | this.getClusterEntry(dir, iCluster, 1);
                    } while (iCluster <= dir.iClusterMax);
                    this.assert(iCluster != dir.iClusterMax + 1);       // make sure we never see CLUSNUM_BAD in a cluster chain
                }
                return apba;
            };
            
            /**
             * getClusterEntry(dir, iCluster, iByte)
             *
             * @this {Disk}
             * @param {Object} dir
             * @param {number} iCluster
             * @param {number} iByte (0 for low byte of cluster entry, 1 for high byte)
             * @return {number}
             */
            Disk.prototype.getClusterEntry = function(dir, iCluster, iByte)
            {
                var w = 0;
                var cbitsSector = dir.cbSector * 8;
                var offBits = dir.nFATBits * iCluster + (iByte? 8 : 0);
                var iSector = (offBits / cbitsSector) | 0;
                if (!dir.sectorFATCache || !dir.lbaFATCache || dir.lbaFATCache != dir.lbaFAT + iSector) {
                    dir.lbaFATCache = dir.lbaFAT + iSector;
                    dir.sectorFATCache = this.getSector(dir.pbaVolume + dir.lbaFATCache);
                }
                if (dir.sectorFATCache) {
                    offBits = (offBits % cbitsSector) | 0;
                    var off = (offBits >> 3);
                    w = this.getSectorData(dir.sectorFATCache, off, 1);
                    if (!iByte) {
                        if (offBits & 0x7) w >>= 4;
                    } else {
                        if (dir.nFATBits == 16) {
                            w <<= 8;
                        } else {
                            this.assert(dir.nFATBits == 12);
                            if (offBits & 0x7) {
                                w <<= 4;
                            } else {
                                w = (w & 0xf) << 8;
                            }
                        }
                    }
                }
                return w;
            };
            
            /**
             * getSector(pba)
             *
             * @this {Disk}
             * @param {number} pba (physical block address)
             * @return {Object} sector
             */
            Disk.prototype.getSector = function(pba)
            {
                var nSectorsPerCylinder = this.nHeads * this.nSectors;
                var iCylinder = (pba / nSectorsPerCylinder) | 0;
                this.assert(iCylinder < this.nCylinders);
                var nSectorsRemaining = (pba % nSectorsPerCylinder);
                var iHead = (nSectorsRemaining / this.nSectors) | 0;
                /*
                 * PBA numbers are 0-based, but the sector numbers in CHS addressing are 1-based, so add one to iSector
                 */
                var iSector = (nSectorsRemaining % this.nSectors) + 1;
                return this.seek(iCylinder, iHead, iSector);
            };
            
            /**
             * updateSector(file, pba, off)
             *
             * Like getSector(), this must convert a PBA into CHS values; consider factoring that conversion code out.
             *
             * @this {Disk}
             * @param {Object} file
             * @param {number} pba (physical block address from the file's apba)
             * @param {number} off (file offset corresponding to the given pba of the given file)
             * @return {boolean} true if successfully updated, false if not
             */
            Disk.prototype.updateSector = function(file, pba, off)
            {
                var nSectorsPerCylinder = this.nHeads * this.nSectors;
                var iCylinder = (pba / nSectorsPerCylinder) | 0;
                var nSectorsRemaining = (pba % nSectorsPerCylinder);
                var iHead = (nSectorsRemaining / this.nSectors) | 0;
                var iSector = (nSectorsRemaining % this.nSectors);
                var cylinder, head, sector;
                if ((cylinder = this.aDiskData[iCylinder]) && (head = cylinder[iHead]) && (sector = head[iSector])) {
                    this.assert(sector['sector'] == iSector +1);
                    if (sector['file']) {
                        if (DEBUG && this.messageEnabled()) {
                            this.printMessage('"' + sector['file'].sPath + '" cross-linked at offset ' + sector['file'].offFile + ' with "' + file.sPath + '" at offset ' + off);
                        }
                        return false;
                    }
                    sector['file'] = file;
                    sector.offFile = off;
                    return true;
                }
                if (DEBUG && this.messageEnabled()) this.printMessage("unable to map PBA " + pba + " to CHS");
                return false;
            };
            
            /**
             * getSectorData(sector, off, len)
             *
             * NOTE: Yes, this function is not the most efficient way to read a byte/word/dword value from within a sector,
             * but given the different states a sector may be in, it's certainly the simplest and safest, and since this is
             * only used by buildFileTable() and its progeny, it's not clear that we need to be superfast anyway.
             *
             * @this {Disk}
             * @param {Object} sector
             * @param {number} off (byte offset)
             * @param {number} len (1 to 4 bytes)
             * @return {number}
             */
            Disk.prototype.getSectorData = function(sector, off, len)
            {
                var dw = 0;
                var nShift = 0;
                this.assert(len > 0 && len <= 4);
                while (len--) {
                    this.assert(off < sector['length']);
                    var b = this.read(sector, off++);
                    this.assert(b >= 0);
                    if (b < 0) break;
                    dw |= (b << nShift);
                    nShift += 8;
                }
                return dw;
            };
            
            /**
             * getSectorString(sector, off, len)
             *
             * @this {Disk}
             * @param {Object} sector
             * @param {number} off (byte offset)
             * @param {number} len (use -1 to read a null-terminated string)
             * @return {string}
             */
            Disk.prototype.getSectorString = function(sector, off, len)
            {
                var s = "";
                while (len--) {
                    var b = this.read(sector, off++);
                    if (b <= 0) break;
                    s += String.fromCharCode(b);
                }
                return s;
            };
            
            /**
             * initSector(sector, iCylinder, iHead, iSector, cbSector, dwPattern)
             *
             * Ensures every sector has ALL the properties of a proper Sector object; ie:
             *
             *      'sector':   sector number
             *      'length':   size of the sector, in bytes
             *      'data':     array of dwords
             *      'pattern':  dword pattern to use for empty or partial sectors (null for unread remote sectors)
             *
             * In addition, we will maintain the following information on a per-sector basis,
             * as sectors are modified:
             *
             *      iModify:    index of first modified dword in sector
             *      cModify:    number of modified dwords in sector
             *      fDirty:     true if sector is dirty, false if clean (or cleaning in progress)
             *
             * @param {Object} sector
             * @param {number} iCylinder
             * @param {number} iHead
             * @param {number} [iSector]
             * @param {number} [cbSector]
             * @param {number|null} [dwPattern]
             * @return {Object}
             */
            Disk.prototype.initSector = function(sector, iCylinder, iHead, iSector, cbSector, dwPattern)
            {
                if (!sector) {
                    sector = {'sector': iSector, 'length': cbSector, 'data': [], 'pattern': dwPattern};
                }
                sector.iCylinder = iCylinder;
                sector.iHead = iHead;
                sector.iModify = sector.cModify = 0;
                sector.fDirty = false;
                return sector;
            };
            
            /**
             * connectRemoteDisk(sDiskPath)
             *
             * Unlike disconnect(), we don't issue the connect request ourselves; instead, we piggyback on the existing
             * preload code in load() to establish the connection.  That, in turn, will trigger a call to mount(), which
             * will check fOnDemand and set fRemote if the connection was successful.
             *
             * @this {Disk}
             * @param {string} sDiskPath
             * @return {string} is the URL connection string required to connect to sDiskPath
             */
            Disk.prototype.connectRemoteDisk = function(sDiskPath)
            {
                var sParms = DiskAPI.QUERY.ACTION + '=' + DiskAPI.ACTION.OPEN;
                sParms += '&' + DiskAPI.QUERY.VOLUME + '=' + sDiskPath;
                sParms += '&' + DiskAPI.QUERY.MODE + '=' + this.mode;
                sParms += '&' + DiskAPI.QUERY.CHS + '=' + this.nCylinders + ':' + this.nHeads + ':' + this.nSectors + ':' + this.cbSector;
                sParms += '&' + DiskAPI.QUERY.MACHINE + '=' + this.controller.getMachineID();
                sParms += '&' + DiskAPI.QUERY.USER + '=' + this.controller.getUserID();
                return web.getHost() + DiskAPI.ENDPOINT + '?' + sParms;
            };
            
            /**
             * readRemoteSectors(iCylinder, iHead, iSector, nSectors, fAsync, done)
             *
             * @param {number} iCylinder
             * @param {number} iHead
             * @param {number} iSector
             * @param {number} nSectors (to read)
             * @param {boolean} fAsync
             * @param {function(number,boolean)} [done]
             */
            Disk.prototype.readRemoteSectors = function(iCylinder, iHead, iSector, nSectors, fAsync, done)
            {
                if (DEBUG && this.messageEnabled()) {
                    this.printMessage("readRemoteSectors(CHS=" + iCylinder + ':' + iHead + ':' + iSector + ",N=" + nSectors + ")");
                }
            
                if (this.fRemote) {
                    var sParms = DiskAPI.QUERY.ACTION + '=' + DiskAPI.ACTION.READ;
                    sParms += '&' + DiskAPI.QUERY.VOLUME + '=' + this.sDiskPath;
                    sParms += '&' + DiskAPI.QUERY.CHS + '=' + this.nCylinders + ':' + this.nHeads + ':' + this.nSectors + ':' + this.cbSector;
                    sParms += '&' + DiskAPI.QUERY.ADDR + '=' + iCylinder + ':' + iHead + ':' + iSector + ':' + nSectors;
                    sParms += '&' + DiskAPI.QUERY.MACHINE + '=' + this.controller.getMachineID();
                    sParms += '&' + DiskAPI.QUERY.USER + '=' + this.controller.getUserID();
                    var sDiskURL = web.getHost() + DiskAPI.ENDPOINT + '?' + sParms;
                    web.loadResource(sDiskURL, fAsync, null, this, this.doneReadRemoteSectors, [iCylinder, iHead, iSector, nSectors, fAsync, done]);
                    return;
                }
                if (done) done(-1, false);
            };
            
            /**
             * doneReadRemoteSectors(sURLName, sURLData, nErrorCode, sectorInfo)
             *
             * @param {string} sURLName
             * @param {string} sURLData
             * @param {number} nErrorCode
             * @param {Array} sectorInfo
             */
            Disk.prototype.doneReadRemoteSectors = function(sURLName, sURLData, nErrorCode, sectorInfo)
            {
                var fAsync = false;
            
                var iCylinder = sectorInfo[0];
                var iHead = sectorInfo[1];
                var iSector = sectorInfo[2];
                var nSectors = sectorInfo[3];
            
                if (!nErrorCode) {
                    var abData = JSON.parse(sURLData);
                    var offData = 0;
                    while (nSectors--) {
                        /*
                         * We call seek with fWrite == true to prevent seek() from triggering another call
                         * to readRemoteSectors() and endlessly recursing.  That also forces seek() to:
                         *
                         *  1) zero the sector's 'pattern'
                         *  2) disable warning about reading an uninitialized sector
                         *
                         * We KNOW this is an uninitialized sector, because we're about to initialize it.
                         */
                        var sector = this.seek(iCylinder, iHead, iSector, true);
                        if (!sector) {
                            if (DEBUG && this.messageEnabled()) {
                                this.printMessage("doneReadRemoteSectors(): seek(CHS=" + iCylinder + ':' + iHead + ':' + iSector + ") failed");
                            }
                            break;
                        }
                        this.fill(sector, abData, offData);
                        offData += sector['length'];
                        /*
                         * We happen to know that when seek() calls readRemoteSectors(), it limits the number of sectors
                         * to the current track, so the only variable we need to advance is iSector.
                         */
                        iSector++;
                    }
                    fAsync = sectorInfo[4];
                } else {
                    if (DEBUG && this.messageEnabled()) {
                        this.printMessage("doneReadRemoteSectors(CHS=" + iCylinder + ':' + iHead + ':' + iSector + ",N=" + nSectors + ") returned error " + nErrorCode);
                    }
                }
                var done = sectorInfo[5];
                if (done) done(nErrorCode, fAsync);
            };
            
            /**
             * writeRemoteSectors(iCylinder, iHead, iSector, nSectors, abSectors, fAsync)
             *
             * Writes to a remote disk are performed on a timer-driven basis.  When a sector is modified for the first time,
             * a reference to that sector is "pushed" onto (ie, appended to the end of) aDirtySectors, and if aDirtySectors was
             * originally empty, then a REMOTE_WRITE_DELAY timer is set.
             *
             * When the timer fires, the first batch of contiguous sectors is sent off the server, and when the server responds
             * (ie, when cleanDirtySectors() is called), if the response indicates success, every sector that was sent is marked
             * clean -- unless one or more writes to the sector occurred in the meantime, which we track through a per-sector
             * fDirty flag.
             *
             * @param {number} iCylinder
             * @param {number} iHead
             * @param {number} iSector
             * @param {number} nSectors (to write)
             * @param {Array.<number>} abSectors
             * @param {boolean} fAsync
             * @return {boolean|Array}
             */
            Disk.prototype.writeRemoteSectors = function(iCylinder, iHead, iSector, nSectors, abSectors, fAsync)
            {
                if (DEBUG && this.messageEnabled()) {
                    this.printMessage("writeRemoteSectors(CHS=" + iCylinder + ':' + iHead + ':' + iSector + ",N=" + nSectors + ")");
                }
            
                if (this.fRemote) {
                    var data = {};
                    this.fWriteInProgress = true;
                    data[DiskAPI.QUERY.ACTION] = DiskAPI.ACTION.WRITE;
                    data[DiskAPI.QUERY.VOLUME] = this.sDiskPath;
                    data[DiskAPI.QUERY.CHS] = this.nCylinders + ':' + this.nHeads + ':' + this.nSectors + ':' + this.cbSector;
                    data[DiskAPI.QUERY.ADDR] = iCylinder + ':' + iHead + ':' + iSector + ':' + nSectors;
                    data[DiskAPI.QUERY.MACHINE] = this.controller.getMachineID();
                    data[DiskAPI.QUERY.USER] = this.controller.getUserID();
                    data[DiskAPI.QUERY.DATA] = JSON.stringify(abSectors);
                    var sDiskURL = web.getHost() + DiskAPI.ENDPOINT;
                    return web.loadResource(sDiskURL, fAsync, data, this, this.doneWriteRemoteSectors, [iCylinder, iHead, iSector, nSectors, fAsync]);
                }
                return false;
            };
            
            /**
             * doneWriteRemoteSectors(sURLName, sURLData, nErrorCode, sectorInfo)
             *
             * @param {string} sURLName
             * @param {string} sURLData
             * @param {number} nErrorCode
             * @param {Array} sectorInfo
             */
            Disk.prototype.doneWriteRemoteSectors = function(sURLName, sURLData, nErrorCode, sectorInfo)
            {
                var iCylinder = sectorInfo[0];
                var iHead = sectorInfo[1];
                var iSector = sectorInfo[2];
                var nSectors = sectorInfo[3];
                var fAsync = sectorInfo[4];
                this.fWriteInProgress = false;
            
                if (iCylinder >= 0 && iCylinder < this.aDiskData.length && iHead >= 0 && iHead < this.aDiskData[iCylinder].length) {
                    for (var i = iSector - 1; nSectors-- > 0 && i >= 0 && i < this.aDiskData[iCylinder][iHead].length; i++) {
                        var sector = this.aDiskData[iCylinder][iHead][i];
            
                        if (!nErrorCode) {
                            if (!sector.fDirty) {
                                sector.iModify = sector.cModify = 0;
                            }
                        } else {
                            if (DEBUG && this.messageEnabled()) {
                                this.printMessage("doneWriteRemoteSectors(CHS=" + iCylinder + ':' + iHead + ':' + sector['sector'] + ") returned error " + nErrorCode);
                            }
                            this.queueDirtySector(sector, false);
                        }
                    }
                }
                if (fAsync) this.updateWriteTimer();
            };
            
            /**
             * disconnectRemoteDisk()
             *
             * This is called by our powerDown() notification handler.  If fRemote is true, we issue the disconnect
             * request and then immediately set fRemote to false; we don't wait for (or test) the response.
             *
             * @this {Disk}
             */
            Disk.prototype.disconnectRemoteDisk = function()
            {
                if (this.fRemote) {
                    var sParms = DiskAPI.QUERY.ACTION + '=' + DiskAPI.ACTION.CLOSE;
                    sParms += '&' + DiskAPI.QUERY.VOLUME + '=' + this.sDiskPath;
                    sParms += '&' + DiskAPI.QUERY.MACHINE + '=' + this.controller.getMachineID();
                    sParms += '&' + DiskAPI.QUERY.USER + '=' + this.controller.getUserID();
                    var sDiskURL = web.getHost() + DiskAPI.ENDPOINT + '?' + sParms;
                    web.loadResource(sDiskURL, true);
                    this.fRemote = false;
                }
            };
            
            /**
             * queueDirtySector(sector, fAsync)
             *
             * Mark the specified sector as dirty, add it to the queue (aDirtySectors) if not already added,
             * and establish a timeout handler (findDirtySectors) if not already established.
             *
             * A freshly dirtied sector should sit in the queue for a short period of time (eg, 2 seconds)
             * before we attempt to write it; that is, a REMOTE_WRITE_DELAY timer should start ticking again
             * for any sector that is rewritten.  However, there will be exceptions; for example, when a sector
             * is finally written, we want to take advantage of the write request to write any additional dirty
             * sectors that follow it, even if those additional sectors were written less than 2 seconds ago.
             *
             * @param {Object} sector
             * @param {boolean} fAsync (true to update write timer, false to not)
             * @return {boolean} true if write timer set, false if not
             */
            Disk.prototype.queueDirtySector = function(sector, fAsync)
            {
                sector.fDirty = true;
            
                var j = this.aDirtySectors.indexOf(sector);
                if (j >= 0) {
                    this.aDirtySectors.splice(j, 1);
                    this.aDirtyTimestamps.splice(j, 1);
                }
                this.aDirtySectors.push(sector);
                this.aDirtyTimestamps.push(usr.getTime());
            
                if (DEBUG && this.messageEnabled()) {
                    this.printMessage("queueDirtySector(CHS=" + sector.iCylinder + ':' + sector.iHead + ':' + sector['sector'] + "): " + this.aDirtySectors.length + " dirty");
                }
            
                return fAsync && this.updateWriteTimer();
            };
            
            /**
             * updateWriteTimer()
             *
             * If a timer is already active, make sure it's still valid (ie, the time the timer is scheduled to fire is
             * >= the timestamp of the next dirty sector + REMOTE_WRITE_DELAY); if not, cancel the timer and start a new one.
             *
             * @return {boolean} true if write timer set, false if not
             */
            Disk.prototype.updateWriteTimer = function()
            {
                if (this.aDirtySectors.length) {
                    var msWrite = this.aDirtyTimestamps[0] + Disk.REMOTE_WRITE_DELAY;
                    if (this.timerWrite) {
                        if (this.msTimerWrite < msWrite) {
                            clearTimeout(this.timerWrite);
                            this.timerWrite = null;
                        }
                    }
                    if (!this.timerWrite) {
                        var obj = this;
                        var msNow = usr.getTime();
                        var msDelay = msWrite - msNow;
                        if (msDelay < 0) msDelay = 0;
                        if (msDelay > Disk.REMOTE_WRITE_DELAY) msDelay = Disk.REMOTE_WRITE_DELAY;
                        this.timerWrite = setTimeout(function() {
                            obj.findDirtySectors(true);
                        }, msDelay);
                        this.msTimerWrite = msNow + msDelay;
                    }
                } else {
                    if (this.timerWrite) {
                        clearTimeout(this.timerWrite);
                        this.timerWrite = null;
                    }
                }
                return this.timerWrite !== null;
            };
            
            /**
             * findDirtySectors(fAsync)
             *
             * @param {boolean} fAsync is true if this function is being called asynchronously, false otherwise
             * @return {boolean|Array} false if no dirty sectors, otherwise true (or a response array if not fAsync)
             *
             * Starting with the oldest dirty sector in the queue (aDirtySectors), determine the longest contiguous stretch of
             * dirty sectors (currently limited to the same track), mark them all as not dirty, and then call writeRemoteSectors().
             */
            Disk.prototype.findDirtySectors = function(fAsync)
            {
                if (fAsync) {
                    this.timerWrite = null;
                }
                var sector = this.aDirtySectors[0];
                if (sector) {
                    var iCylinder = sector.iCylinder;
                    var iHead = sector.iHead;
                    var iSector = sector['sector'];
                    var nSectors = 0;
                    var abSectors = [];
                    for (var i = iSector - 1; i < this.aDiskData[iCylinder][iHead].length; i++) {
                        var sectorNext = this.aDiskData[iCylinder][iHead][i];
                        if (!sectorNext.fDirty) break;
                        var j = this.aDirtySectors.indexOf(sectorNext);
                        this.assert(j >= 0, "findDirtySectors(CHS=" + iCylinder + ':' + iHead + ':' + sectorNext['sector'] + ") missing from aDirtySectors");
                        if (DEBUG && this.messageEnabled()) {
                            this.printMessage("findDirtySectors(CHS=" + iCylinder + ':' + iHead + ':' + sectorNext['sector'] + ")");
                        }
                        this.aDirtySectors.splice(j, 1);
                        this.aDirtyTimestamps.splice(j, 1);
                        abSectors = abSectors.concat(this.toBytes(sectorNext));
                        sectorNext.fDirty = false;
                        nSectors++;
                    }
                    this.assert(!!abSectors.length, "no data for dirty sector (CHS=" + iCylinder + ':' + iHead + ':' + sector['sector'] + ")");
                    var response = this.writeRemoteSectors(iCylinder, iHead, iSector, nSectors, abSectors, fAsync);
                    return fAsync || response;
                }
                return false;
            };
            
            /**
             * info()
             *
             * @this {Disk}
             * @return {Array} containing: [nCylinders, nHeads, nSectorsPerTrack, nBytesPerSector]
             */
            Disk.prototype.info = function()
            {
                if (!this.aDiskData.length) {
                    return [0, 0, 0, 0];
                }
                return [this.aDiskData.length, this.aDiskData[0].length, this.aDiskData[0][0].length, this.aDiskData[0][0][0]['length']];
            };
            
            /**
             * seek(iCylinder, iHead, iSector, fWrite, done)
             *
             * TODO: There's some dodgy code in seek() that allows floppy images to be dynamically
             * reconfigured with more heads and/or sectors/track, and it does so by peeking at more drive
             * properties.  That code used to be in the FDC component, where it was perfectly reasonable
             * to access those properties.  We need a cleaner interface back to the drive, similar to the
             * info() interface we provide to the controller.
             *
             * Whether or not the "dynamic reconfiguration" feature itself is perfectly reasonable is,
             * of course, a separate question.
             *
             * @this {Disk}
             * @param {number} iCylinder
             * @param {number} iHead
             * @param {number} iSector
             * @param {boolean} [fWrite]
             * @param {function(Object,boolean)} [done]
             * @return {Object|null} is the requested sector, or null if not found (or not available yet)
             */
            Disk.prototype.seek = function(iCylinder, iHead, iSector, fWrite, done)
            {
                var sector = null;
                var drive = this.drive;
                var cylinder = this.aDiskData[iCylinder];
                if (cylinder) {
                    var i;
                    var track = cylinder[iHead];
                    /*
                     * The following code allows a single-sided diskette image to be reformatted (ie, "expanded")
                     * as a double-sided image, provided the drive has more than one head (see drive.nHeads).
                     */
                    if (!track && drive.bFormatting && iHead < drive.nHeads) {
                        track = cylinder[iHead] = new Array(drive.bSectorEnd);
                        for (i = 0; i < track.length; i++) {
                            track[i] = this.initSector(null, iCylinder, iHead, i + 1, drive.nBytes, 0);
                        }
                    }
                    if (track) {
                        for (i = 0; i < track.length; i++) {
                            if (track[i] && track[i]['sector'] == iSector) {
                                /*
                                 * If the sector's pattern is null, then this sector's true contents have not yet
                                 * been fetched from the server.
                                 */
                                sector = track[i];
                                if (sector['pattern'] === null) {
                                    if (fWrite) {
                                        /*
                                         * Optimization: if the caller has explicitly told us that they're about to WRITE to the
                                         * sector, then we shouldn't need to read it from the server; assume a zero pattern and return.
                                         */
                                        sector['pattern'] = 0;
                                    } else {
                                        var nSectors = 1;
                                        /*
                                         * We know we need to read at least 1 sector, but let's count the number of trailing sectors
                                         * on the same track that may also be required.
                                         */
                                        while (++i < track.length) {
                                            if (track[i]['pattern'] === null) nSectors++;
                                        }
                                        this.readRemoteSectors(iCylinder, iHead, iSector, nSectors, done != null, function onReadRemoteComplete(err, fAsync) {
                                            if (err) sector = null;
                                            if (done) { //noinspection JSReferencingMutableVariableFromClosure
                                                done(sector, fAsync);
                                            }
                                        });
                                        return done? null : sector;
                                    }
                                }
                                break;
                            }
                        }
                        /*
                         * The following code allows an 8-sector track to be reformatted (ie, "expanded") as a 9-sector track.
                         */
                        if (!sector && drive.bFormatting && drive.bSector == 9) {
                            sector = track[i] = this.initSector(null, iCylinder, iHead, drive.bSector, drive.nBytes, 0);
                        }
                    }
                }
                if (done) done(sector, false);
                return sector;
            };
            
            /**
             * fill(sector, ab, off)
             *
             * @param {Object} sector
             * @param {*} ab (technically, this should be typed as Array.<number> but I'm having trouble coercing JSON.parse() to that)
             * @param {number} off
             */
            Disk.prototype.fill = function(sector, ab, off)
            {
                var cdw = sector['length'] >> 2;
                var adw = new Array(cdw);
                for (var idw = 0; idw < cdw; idw++) {
                    adw[idw] = ab[off] | (ab[off + 1] << 8) | (ab[off + 2] << 16) | (ab[off + 3] << 24);
                    off += 4;
                }
                sector['data'] = adw;
                /*
                 * TODO: Consider taking this opportunity to shrink 'data' down by the number of dwords at the end of the buffer that
                 * contain the same pattern, and setting 'pattern' accordingly.
                 */
            };
            
            /**
             * toBytes(sector)
             *
             * @param {Object} sector
             * @return {Array.<number>} is an array of bytes
             */
            Disk.prototype.toBytes = function(sector)
            {
                var cb = sector['length'];
                var ab = new Array(cb);
                var ib = 0;
                var cdw = cb >> 2;
                var adw = sector['data'];
                var dwPattern = sector['pattern'];
                for (var idw = 0; idw < cdw; idw++) {
                    var dw = (idw < adw.length? adw[idw] : dwPattern);
                    ab[ib++] = dw & 0xff;
                    ab[ib++] = (dw >> 8) & 0xff;
                    ab[ib++] = (dw >> 16) & 0xff;
                    ab[ib++] = (dw >> 24) & 0xff;
                }
                return ab;
            };
            
            /**
             * read(sector, ibSector, fCompare)
             *
             * @this {Disk}
             * @param {Object} sector (returned from a previous seek)
             * @param {number} ibSector a byte index within the given sector
             * @param {boolean} [fCompare] is true if this write-compare read
             * @return {number} the specified (unsigned) byte, or -1 if no more data in the sector
             */
            Disk.prototype.read = function(sector, ibSector, fCompare)
            {
                var b = -1;
                if (sector) {
                    if (DEBUG && !ibSector && !fCompare && this.messageEnabled()) {
                        this.printMessage('read("' + this.sDiskFile + '",CHS=' + sector.iCylinder + ':' + sector.iHead + ':' + sector['sector'] + ')');
                    }
                    if (ibSector < sector['length']) {
                        var adw = sector['data'];
                        var idw = ibSector >> 2;
                        var dw = (idw < adw.length ? adw[idw] : sector['pattern']);
                        b = ((dw >> ((ibSector & 0x3) << 3)) & 0xff);
                    }
                }
                return b;
            };
            
            /**
             * write(sector, ibSector, b)
             *
             * @this {Disk}
             * @param {Object} sector (returned from a previous seek)
             * @param {number} ibSector a byte index within the given sector
             * @param {number} b the byte value to write
             * @return {boolean|null} true if write successful, false if write-protected, null if out of bounds
             */
            Disk.prototype.write = function(sector, ibSector, b)
            {
                if (this.fWriteProtected)
                    return false;
            
                if (DEBUG && !ibSector && this.messageEnabled()) {
                    this.printMessage('write("' + this.sDiskFile + '",CHS=' + sector.iCylinder + ':' + sector.iHead + ':' + sector['sector'] + ')');
                }
            
                if (ibSector < sector['length']) {
                    if (b != this.read(sector, ibSector, true)) {
                        var adw = sector['data'];
                        var dwPattern = sector['pattern'];
                        var idw = ibSector >> 2;
                        var nShift = (ibSector & 0x3) << 3;
                        /*
                         * Ensure every byte up to the specified byte is properly initialized.
                         */
                        for (var i = adw.length; i <= idw; i++) adw[i] = dwPattern;
            
                        if (!sector.cModify) {
                            sector.iModify = idw;
                            sector.cModify = 1;
                        } else if (idw < sector.iModify) {
                            sector.cModify += sector.iModify - idw;
                            sector.iModify = idw;
                        } else if (idw >= sector.iModify + sector.cModify) {
                            sector.cModify += idw - (sector.iModify + sector.cModify) + 1;
                        }
                        adw[idw] = (adw[idw] & ~(0xff << nShift)) | (b << nShift);
            
                        if (this.fRemote) this.queueDirtySector(sector, true);
                    }
                    return true;
                }
                return null;
            };
            
            /**
             * save()
             *
             * The first array entry contains some disk information:
             *
             *      [sDiskPath, dwChecksum, nCylinders, nHeads, nSectors, cbSector]
             *
             * Each subsequent entry in the returned array contains the following:
             *
             *      [iCylinder, iHead, iSector, iModify, [...]]
             *
             * where [...] is an array of modified dword(s) in the corresponding sector.
             *
             * @this {Disk}
             * @return {Array} of modified sectors
             */
            Disk.prototype.save = function()
            {
                var i = 0;
                var deltas = [];
                deltas[i++] = [this.sDiskPath, this.dwChecksum, this.nCylinders, this.nHeads, this.nSectors, this.cbSector];
                if (!this.fRemote && !this.fWriteProtected) {
                    var aDiskData = this.aDiskData;
                    for (var iCylinder = 0; iCylinder < aDiskData.length; iCylinder++) {
                        for (var iHead = 0; iHead < aDiskData[iCylinder].length; iHead++) {
                            for (var iSector = 0; iSector < aDiskData[iCylinder][iHead].length; iSector++) {
                                var sector = aDiskData[iCylinder][iHead][iSector];
                                if (sector && sector.cModify) {
                                    var mods = [], n = 0;
                                    var iModify = sector.iModify, iModifyLimit = sector.iModify + sector.cModify;
                                    while (iModify < iModifyLimit) {
                                        mods[n++] = sector['data'][iModify++];
                                    }
                                    deltas[i++] = [iCylinder, iHead, iSector, sector.iModify, mods];
                                }
                            }
                        }
                    }
                }
                if (DEBUG && this.messageEnabled()) {
                    this.printMessage('save("' + this.sDiskName + '"): saved ' + (deltas.length - 1) + ' change(s)');
                }
                return deltas;
            };
            
            /**
             * restore(deltas)
             *
             * The first array entry contains some disk information:
             *
             *      [sDiskPath, dwChecksum, nCylinders, nHeads, nSectors, cbSector]
             *
             * Each subsequent entry in the supplied array contains the following:
             *
             *      [iCylinder, iHead, iSector, iModify, [...]]
             *
             * where [...] is an array of modified dword(s) in the corresponding sector.
             *
             * @this {Disk}
             * @param {Array} deltas
             * @return {number} 0 if no changes applied, -1 if an error occurred, otherwise the number of sectors modified
             */
            Disk.prototype.restore = function(deltas)
            {
                /*
                 * If deltas is undefined, that's not necessarily an error;  the controller may simply be (re)initializing
                 * itself (although neither controller should be calling restore() under those conditions anymore).
                 */
                var nChanges = 0;
                var sReason = "unsupported restore format";
                /*
                 * I originally added a check for aDiskData here on the assumption that if there was an error loading
                 * a disk image, we will have already notified the user, so any additional errors about differing checksums,
                 * failure to restore the disk state, etc, would just be annoying.  HOWEVER, HDC will create an empty disk
                 * image if its initialization code discovers that no disk was loaded earlier (see verifyDrive).  So while
                 * checking aDiskData is still a good idea, be aware that it won't necessarily avoid redundant error messages
                 * (at least in the case of HDC).
                 */
                if (deltas && deltas.length > 0) {
            
                    var i = 0;
                    var aDiskInfo = deltas[i++];
            
                    if (aDiskInfo && aDiskInfo.length >= 2) {
                        /*
                         * Before getting to the checksum, we have to deal with a new situation: restoring an uninitialized
                         * disk image from a complete set of deltas.  And that is only possible if the disk was saved with the
                         * original disk geometry.
                         */
                        if (!this.aDiskData.length && aDiskInfo.length >= 6) {
                            this.create(DiskAPI.MODE.LOCAL, aDiskInfo[2], aDiskInfo[3], aDiskInfo[4], aDiskInfo[5]);
                            /*
                             * TODO: Consider setting a flag here that we can check at the end of the restore() function
                             * that indicates we should recalculate dwChecksum, because we currently have an inconsistency
                             * between local disks that are mounted via build() and the same disks that are "remounted"
                             * later by this code; the former has the correct checksum, while the latter has a null checksum.
                             *
                             * As you can see below, we currently deal with this by simply ignoring null checksums....
                             */
                        }
                        /*
                         * v1.01 failed to indicate an error if either one of these failure conditions occurred.  Although maybe that's
                         * just as well, since v1.01 also failed to properly deal with situations where the user mounted different diskette(s)
                         * prior to exiting (hopefully fixed in v1.02).
                         */
                        else if (aDiskInfo[1] != null && this.dwChecksum != null && aDiskInfo[1] != this.dwChecksum) {
                            sReason = "original checksum (" + aDiskInfo[1] + ") differs from current checksum (" + this.dwChecksum + ")";
                            nChanges = -2;
                        }
                        /*
                         * Checksum is more important than disk path, and for now, I want the flexibility to move disk images.
                         *
                        else if (aDiskInfo[0] != this.sDiskPath) {
                            sReason = "original path '" + aDiskInfo[0] + "' differs from current path '" + this.sDiskPath + "'";
                            nChanges = -1;
                        }
                         */
                    }
            
                    if (!this.aDiskData.length) nChanges = -1;
            
                    while (i < deltas.length && nChanges >= 0) {
                        var m = 0;
                        var mod = deltas[i++];
                        var iCylinder = mod[m++];
                        var iHead = mod[m++];
                        var iSector = mod[m++];
                        /*
                         * Note the buried test for write-protection.  Yes, an invariant condition should be tested
                         * outside the loop, not inside, but (a) it's a trivial test, (b) the test should never fail
                         * because save() should never generate any mods for a write-protected disk, and (c) it
                         * centralizes all the failure conditions we're currently checking (which, admittedly, ain't much).
                         */
                        if (iCylinder >= this.aDiskData.length || iHead >= this.aDiskData[iCylinder].length || iSector >= this.aDiskData[iCylinder][iHead].length) {
                            sReason = "sector (CHS=" + iCylinder + ':' + iHead + ':' + iSector + ") out of range (" + nChanges + " changes applied)";
                            nChanges = -1;
                            break;
                        }
                        if (this.fWriteProtected) {
                            sReason = "unable to modify write-protected disk";
                            nChanges = -1;
                            break;
                        }
                        var iModify = mod[m++];
                        var mods = mod[m++];
                        var iModifyLimit = iModify + mods.length;
                        var sector = this.aDiskData[iCylinder][iHead][iSector];
                        if (!sector) continue;
                        /*
                         * Since write() now deals with empty/partial sectors, we no longer need to completely "inflate" the sector prior
                         * to applying modifications.  So let's just make sure that the sector is "inflated" up to iModify.
                         */
                        var idw = sector['data'].length;
                        while (idw < iModify) {
                            sector['data'][idw++] = sector['pattern'];
                        }
                        var n = 0;
                        sector.iModify = iModify;
                        sector.cModify = mods.length;
                        while (iModify < iModifyLimit) {
                            sector['data'][iModify++] = mods[n++];
                        }
                        nChanges++;
                    }
                }
            
                if (nChanges < 0) {
                    /*
                     * We're suppressing checksum messages for the general public for now....
                     */
                    if (DEBUG || nChanges != -2) {
                        this.controller.notice("Unable to restore disk '" + this.sDiskName + ": " + sReason);
                    }
                } else {
                    if (DEBUG && this.messageEnabled()) {
                        this.printMessage('restore("' + this.sDiskName + '"): restored ' + nChanges + ' change(s)');
                    }
                }
                return nChanges;
            };
            
            /**
             * toJSON()
             *
             * We perform some RegExp massaging on the JSON data to eliminate unnecessary properties
             * (eg, 'length' values of 512, 'pattern' values of 0, quotes around the property names, etc).
             * Sectors that were initially compressed should remain compressed unless/until they were modified.
             *
             * TODO: Check sectors (or at least modified sectors) to see if they can be recompressed.
             *
             * @this {Disk}
             * @return {string} containing the entire disk image as JSON-encoded data
             */
            Disk.prototype.toJSON = function()
            {
                var s = JSON.stringify(this.aDiskData, function(key, value) {
                    /*
                     * If BACKTRACK support is enabled, we have to filter out any 'file' properties that may
                     * be attached to the sector objects, lest we risk blowing the stack due to circular references.
                     */
                    if (key == 'file') {
                        return undefined;
                    }
                    return value;
                });
                s = s.replace(/,"length":512/gm, "").replace(/,"pattern":0/gm, "");
                /*
                 * I don't really want to strip quotes from disk image property names, since I would have to put them
                 * back again during mount() -- or whenever JSON.parse() is used instead of eval().  But I still remove
                 * them temporarily, so that any remaining property names (eg, "iModify", "cModify", "fDirty") can
                 * easily be stripped out, by virtue of their being the only quoted properties left.  We then "requote"
                 * all the property names that remain.
                 */
                s = s.replace(/"(sector|length|data|pattern)":/gm, "$1:");
                /*
                 * The next line will remove any other numeric or boolean properties that were added at runtime, although
                 * they may have completely different ("minified") names if the code has been compiled.
                 */
                s = s.replace(/,"[^"]*":([0-9]+|true|false)/gm, "");
                s = s.replace(/(sector|length|data|pattern):/gm, "\"$1\":");
                return s;
            };
            
            /**
             * dumpSector(sector, pba, sDesc)
             *
             * @param {Object} sector (returned from a previous seek)
             * @param {number} [pba]
             * @param {string} [sDesc]
             * @return {string}
             */
            Disk.prototype.dumpSector = function(sector, pba, sDesc)
            {
                var sDump = "";
                if (DEBUG && sector) {
                    if (pba != null) sDump += "sector " + pba + (sDesc? (" for " + sDesc) : "") + ':';
                    var sBytes = "", sChars = "";
                    var cbSector = sector['length'];
                    var cdwData = sector['data'].length;
                    var dw = 0;
                    for (var i = 0; i < cbSector; i++) {
                        if ((i % 16) === 0) {
                            if (sDump) sDump += sBytes + ' ' + sChars + '\n';
                            sDump += str.toHex(i, 4) + ": ";
                            sBytes = sChars = "";
                        }
                        if ((i % 4) === 0) {
                            var idw = i >> 2;
                            dw = (idw < cdwData? sector['data'][idw] : sector['pattern']);
                        }
                        var b = dw & 0xff;
                        dw >>>= 8;
                        sBytes += str.toHex(b, 2) + (i % 16 == 7? "-" : " ");
                        sChars += (b >= 32 && b < 128? String.fromCharCode(b) : ".");
                    }
                    if (sBytes) sDump += sBytes + ' ' + sChars;
                }
                return sDump;
            };
            
            if (typeof module !== 'undefined') module.exports = Disk;
            
          • fdc.js
            /**
             * @fileoverview Implements the PCjs Floppy Drive Controller (FDC) component.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Aug-09
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var str         = require("../../shared/lib/strlib");
                var web         = require("../../shared/lib/weblib");
                var DiskAPI     = require("../../shared/lib/diskapi");
                var Component   = require("../../shared/lib/component");
                var Messages    = require("./messages");
                var ChipSet     = require("./chipset");
                var Disk        = require("./disk");
                var Computer    = require("./computer");
                var State       = require("./state");
            }
            
            /*
             * FDC Terms (see FDC.TERMS)
             *
             *      C       Cylinder Number         the current or selected cylinder number
             *
             *      D       Data                    the data pattern to be written to a sector
             *
             *      DS      Drive Select            the selected driver number encoded the same as bits 0 and 1 of the Digital Output
             *                                      Register (DOR); eg, DS0, DS1, DS2, or DS3
             *
             *      DTL     Data Length             when N is 00, DTL is the data length to be read from or written to a sector
             *
             *      EOT     End Of Track            the final sector number on a cylinder
             *
             *      GPL     Gap Length              the length of gap 3 (spacing between sectors excluding the VCO synchronous field)
             *
             *      H       Head Address            the head number, either 0 or 1, as specified in the ID field
             *
             *      HD      Head                    the selected head number, 0 or 1 (H = HD in all command words)
             *
             *      HLT     Head Load Time          the head load time in the selected drive (2 to 256 milliseconds in 2-millisecond
             *                                      increments for the 1.2M-byte drive and 4 to 512 milliseconds in 4 millisecond increments
             *                                      for the 320K-byte drive)
             *
             *      HUT     Head Unload Time        the head unload time after a read or write operation (0 to 240 milliseconds in
             *                                      16-millisecond increments for the 1.2M-byte drive and 0 to 480 milliseconds in
             *                                      32-millisecond increments for the 320K-byte drive)
             *
             *      MF      FM or MFM Mode          0 selects FM mode and 1 selects MFM (MFM is selected only if it is implemented)
             *
             *      MT      Multitrack              1 selects multitrack operation (both HD0 and HD1 will be read or written)
             *
             *      N       Number                  the number of data bytes written in a sector
             *
             *      NCN     New Cylinder Number     the new cylinder number for a SEEK operation
             *
             *      ND      Non-Data Mode           indicates an operation in the non-data mode
             *
             *      PCN     Present Cylinder Number the cylinder number at the completion of a SENSE INTERRUPT STATUS command
             *                                      (present position of the head)
             *
             *      R       Record                  the sector number to be read or written
             *
             *      SC      Sectors Per Cylinder    the number of sectors per cylinder
             *
             *      SK      Skip                    this stands for skip deleted-data address mark
             *
             *      SRT     Stepping Rate           this 4 bit byte indicates the stepping rate for the diskette drive as follows:
             *                                      1.2M-Byte Diskette Drive: 1111=1ms, 1110=2ms, 1101=3ms
             *                                      320K-Byte Diskette Drive: 1111=2ms, 1110=4ms, 1101=6ms
             *
             *      STP     STP Scan Test           if STP is 1, the data in contiguous sectors is compared with the data sent
             *                                      by the processor during a scan operation; if STP is 2, then alternate sections
             *                                      are read and compared
             */
            
            /**
             * FDC(parmsFDC)
             *
             * The FDC component simulates a NEC µPD765A or Intel 8272A compatible floppy disk controller, and has one
             * component-specific property:
             *
             *      autoMount: one or more JSON-encoded objects, each containing 'name' and 'path' properties
             *
             * Regarding early diskette drives: the IBM PC Model 5150 originally shipped with single-sided drives,
             * and therefore supported only 160Kb diskettes.  That's the only diskette format PC-DOS 1.00 supported, too.
             *
             * At some point, 5150's started shipping with double-sided drives, but I'm not sure whether the ROMs changed;
             * they probably did NOT change, because the original ROM BIOS already supported drives with multiple heads.
             * However, what the ROM BIOS did NOT do was provide any indication of drive type, which as far as I can tell,
             * meant you had to simply read/write/format tracks with the second head and check for errors.
             *
             * Presumably at the same time double-sided drives started shipping, PC-DOS 1.10 shipped, which added
             * support for 320Kb diskettes.  And the FORMAT command changed as well, defaulting to a double-sided format
             * operation UNLESS you specified "FORMAT /1".  If I run PC-DOS 1.10 and try to simulate a single-sided drive
             * (by setting drive.nHeads = 1 in initDrive), FORMAT will balk with "Track 0 bad - disk unusable".  I have to
             * wonder if everyone with single-sided drives who upgraded to PC-DOS 1.10 also got that error, forcing them
             * to always specify "FORMAT /1", or if I'm doing something wrong wrt single-sided drive simulation.
             *
             * I've noticed that if I turn FDC messages on ("m fdc on"), and then run "FORMAT B:/1", the command still
             * tries to format head 1/track 0, followed by head 0/track 0, and then the FDC is reset, and the format operation
             * proceeds with only head 0 for all tracks 0 through 39.  FORMAT successfully creates a 160Kb single-sided diskette,
             * but why it also tries to initially format track 0 using the second head remains a bit of a mystery.
             *
             * @constructor
             * @extends Component
             * @param {Object} parmsFDC
             */
            function FDC(parmsFDC) {
                /*
                 * TODO: Indicate the type of diskette image being loaded (this might help folks understand what's going
                 * on when they try to load a diskette image that's larger than what the selected operating system supports).
                 */
                Component.call(this, "FDC", parmsFDC, FDC, Messages.FDC);
            
                this['dmaRead'] = this.dmaRead;
                this['dmaWrite'] = this.dmaWrite;
                this['dmaFormat'] = this.dmaFormat;
            
                this.configMount = null;
                if (parmsFDC['autoMount']) {
                    this.configMount = parmsFDC['autoMount'];
                    if (typeof this.configMount == "string") {
                        try {
                            /*
                             * The most likely source of any exception will be right here, where we're parsing
                             * the JSON-encoded diskette data.
                             */
                            this.configMount = eval("(" + parmsFDC['autoMount'] + ")");
                        } catch (e) {
                            Component.error("FDC auto-mount error: " + e.message + " (" + parmsFDC['autoMount'] + ")");
                            this.configMount = null;
                        }
                    }
                }
            
                /*
                 * The following array keeps track of every disk image we've ever mounted.  Each entry in the
                 * array is another array whose elements are:
                 *
                 *      [0]: name of disk
                 *      [1]: path of disk
                 *      [2]: array of deltas, uninitialized until the disk is unmounted and/or all state is saved
                 *
                 * See functions addDiskHistory() and updateDiskHistory().
                 */
                this.aDiskHistory = [];
            
                /*
                 * Support for local disk images is currently limited to desktop browsers with FileReader support;
                 * when this flag is set, setBinding() allows local disk bindings and informs initBus() to update the
                 * "listDisks" binding accordingly.
                 */
                this.fLocalDisks = (!web.isMobile() && window && 'FileReader' in window);
            
                /*
                 * The remainder of FDC initialization now takes place in our initBus() handler, largely because we
                 * want initController() to have access to the ChipSet component, so that it can query switches and/or CMOS
                 * settings that determine the number of drives and their characteristics (eg, 40-track vs. 80-track),
                 * which it can then pass on to initDrive().
                 */
            }
            
            Component.subclass(FDC);
            
            FDC.DEFAULT_DRIVE_NAME = "Floppy Drive";
            
            if (DEBUG) {
                FDC.TERMS = {
                    C:   "C",       // Cylinder Number
                    D:   "D",       // Data (eg, pattern to be written to a sector)
                    H:   "H",       // Head Address
                    R:   "R",       // Record (ie, sector number to be read or written)
                    N:   "N",       // Number (ie, number of data bytes to write)
                    DS:  "DS",      // Drive Select
                    SC:  "SC",      // Sectors per Cylinder
                    DTL: "DTL",     // Data Length
                    EOT: "EOT",     // End of Track
                    GPL: "GPL",     // Gap Length
                    HLT: "HLT",     // Head Load Time
                    NCN: "NCN",     // New Cylinder Number
                    PCN: "PCN",     // Present Cylinder Number
                    SRT: "SRT",     // Stepping Rate
                    ST0: "ST0",     // Status Register 0
                    ST1: "ST1",     // Status Register 1
                    ST2: "ST2",     // Status Register 2
                    ST3: "ST3"      // Status Register 3
                };
            } else {
                FDC.TERMS = {};
            }
            
            /*
             * FDC Digital Output Register (DOR) (0x3F2, write-only)
             *
             * NOTE: Reportedly, a drive's MOTOR had to be ON before the drive could be selected; however, outFDCOutput() no
             * longer verifies that.  Also, motor start time for original drives was 500ms, but we make no attempt to simulate that.
             *
             * On the MODEL_5170 "PC AT Fixed Disk and Diskette Drive Adapter", this port is called the Digital Output Register
             * or DOR.  It uses the same bit definitions as the original FDC Output Register, except that only two diskette drives
             * are supported, hence bit 1 is always 0 (ie, FDC.REG_OUTPUT.DS2 and FDC.REG_OUTPUT.DS3 are not supported) and bits
             * 6 and 7 are unused (FDC.REG_OUTPUT.MOTOR_D2 and FDC.REG_OUTPUT.MOTOR_D3 are not supported).
             */
            FDC.REG_OUTPUT = {
                PORT:      0x3F2,
                DS:         0x03,   // drive select bits
                DS0:        0x00,
                DS1:        0x01,
                DS2:        0x02,   // reserved on the MODEL_5170
                DS3:        0x03,   // reserved on the MODEL_5170
                ENABLE:     0x04,   // clearing this bit resets the FDC
                INT_ENABLE: 0x08,   // enables both FDC and DMA (Channel 2) interrupt requests (IRQ 6)
                MOTOR_D0:   0x10,
                MOTOR_D1:   0x20,
                MOTOR_D2:   0x40,   // reserved on the MODEL_5170
                MOTOR_D3:   0x80    // reserved on the MODEL_5170
            };
            
            /*
             * FDC Main Status Register (0x3F4, read-only)
             *
             * On the MODEL_5170 "PC AT Fixed Disk and Diskette Drive Adapter", bits 2 and 3 are reserved, since that adapter
             * supported a maximum of two diskette drives.
             */
            FDC.REG_STATUS = {
                PORT:      0x3F4,
                BUSY_A:     0x01,
                BUSY_B:     0x02,
                BUSY_C:     0x04,   // reserved on the MODEL_5170
                BUSY_D:     0x08,   // reserved on the MODEL_5170
                BUSY:       0x10,   // a read or write command is in progress
                NON_DMA:    0x20,   // FDC is in non-DMA mode
                READ_DATA:  0x40,   // transfer is from FDC Data Register to processor (if clear, then transfer is from processor to the FDC Data Register)
                RQM:        0x80    // indicates FDC Data Register is ready to send or receive data to or from the processor (Request for Master)
            };
            
            /*
             * FDC Data Register (0x3F5, read-write)
             */
            FDC.REG_DATA = {
                PORT:      0x3F5,
                /*
                 * FDC Commands
                 *
                 * NOTE: FDC command bytes need to be masked with FDC.REG_DATA.CMD.MASK before comparing to the values below, since a
                 * number of commands use the following additional bits as follows:
                 *
                 *      SK (0x20): Skip Deleted Data Address Mark
                 *      MF (0x40): Modified Frequency Modulation (as opposed to FM or Frequency Modulation)
                 *      MT (0x80): multi-track operation (ie, data processed under both head 0 and head 1)
                 *
                 * We don't support MT (Multi-Track) operations at this time, and the MF and SK designations cannot be supported as long
                 * as our diskette images contain only the original data bytes without any formatting information.
                 */
                CMD: {
                    READ_TRACK:     0x02,
                    SPECIFY:        0x03,
                    SENSE_DRIVE:    0x04,
                    WRITE_DATA:     0x05,
                    READ_DATA:      0x06,
                    RECALIBRATE:    0x07,
                    SENSE_INT:      0x08,       // this command is used to clear the FDC interrupt following the clearing/setting of FDC.REG_OUTPUT.ENABLE
                    WRITE_DEL_DATA: 0x09,
                    READ_ID:        0x0A,
                    READ_DEL_DATA:  0x0C,
                    FORMAT_TRACK:   0x0D,
                    SEEK:           0x0F,
                    SCAN_EQUAL:     0x11,
                    SCAN_LO_EQUAL:  0x19,
                    SCAN_HI_EQUAL:  0x1D,
                    MASK:           0x1F,
                    SK:             0x20,       // SK (Skip Deleted Data Address Mark)
                    MF:             0x40,       // MF (Modified Frequency Modulation)
                    MT:             0x80        // MT (Multi-Track; ie, data under both heads will be processed)
                },
                /*
                 * FDC status/error results, generally assigned according to the corresponding ST0, ST1, ST2 or ST3 status bit.
                 *
                 * TODO: Determine when EQUIP_CHECK is *really* set; also, "77 step pulses" sounds suspiciously like a typo (it's not 79?)
                 */
                RES: {
                    NONE:           0x00000000, // ST0 (IC): Normal termination of command (NT)
                    NOT_READY:      0x00000008, // ST0 (NR): When the FDD is in the not-ready state and a read or write command is issued, this flag is set; if a read or write command is issued to side 1 of a single sided drive, then this flag is set
                    EQUIP_CHECK:    0x00000010, // ST0 (EC): If a fault signal is received from the FDD, or if the track 0 signal fails to occur after 77 step pulses (recalibrate command), then this flag is set
                    SEEK_END:       0x00000020, // ST0 (SE): When the FDC completes the Seek command, this flag is set to 1 (high)
                    INCOMPLETE:     0x00000040, // ST0 (IC): Abnormal termination of command (AT); execution of command was started, but was not successfully completed
                    RESET:          0x000000C0, // ST0 (IC): Abnormal termination because during command execution the ready signal from the drive changed state
                    INVALID:        0x00000080, // ST0 (IC): Invalid command issue (IC); command which was issued was never started
                    ST0:            0x000000FF,
                    NO_ID_MARK:     0x00000100, // ST1 (MA): If the FDC cannot detect the ID Address Mark, this flag is set; at the same time, the MD (Missing Address Mark in Data Field) of Status Register 2 is set
                    NOT_WRITABLE:   0x00000200, // ST1 (NW): During Execution of a Write Data, Write Deleted Data, or Format a Cylinder command, if the FDC detects a write protect signal from the FDD, then this flag is set
                    NO_DATA:        0x00000400, // ST1 (ND): FDC cannot find specified sector (or specified ID if READ_ID command)
                    DMA_OVERRUN:    0x00001000, // ST1 (OR): If the FDC is not serviced by the main systems during data transfers within a certain time interval, this flag is set
                    CRC_ERROR:      0x00002000, // ST1 (DE): When the FDC detects a CRC error in either the ID field or the data field, this flag is set
                    END_OF_CYL:     0x00008000, // ST1 (EN): When the FDC tries to access a sector beyond the final sector of a cylinder, this flag is set
                    ST1:            0x0000FF00,
                    NO_DATA_MARK:   0x00010000, // ST2 (MD): When data is read from the medium, if the FDC cannot find a Data Address Mark or Deleted Data Address Mark, then this flag is set
                    BAD_CYL:        0x00020000, // ST2 (BC): This bit is related to the ND bit, and when the contents of C on the medium are different from that stored in the ID Register, and the content of C is FF, then this flag is set
                    SCAN_FAILED:    0x00040000, // ST2 (SN): During execution of the Scan command, if the FDC cannot find a sector on the cylinder which meets the condition, then this flag is set
                    SCAN_EQUAL:     0x00080000, // ST2 (SH): During execution of the Scan command, if the condition of "equal" is satisfied, this flag is set
                    WRONG_CYL:      0x00100000, // ST2 (WC): This bit is related to the ND bit, and when the contents of C on the medium are different from that stored in the ID Register, this flag is set
                    DATA_FIELD:     0x00200000, // ST2 (DD): If the FDC detects a CRC error in the data, then this flag is set
                    STRL_MARK:      0x00400000, // ST2 (CM): During execution of the Read Data or Scan command, if the FDC encounters a sector which contains a Deleted Data Address Mark, this flag is set
                    ST2:            0x00FF0000,
                    DRIVE:          0x03000000, // ST3 (Ux): Status of the "Drive Select" signals from the diskette drive
                    HEAD:           0x04000000, // ST3 (HD): Status of the "Side Select" signal from the diskette drive
                    TWOSIDE:        0x08000000, // ST3 (TS): Status of the "Two Side" signal from the diskette drive
                    TRACK0:         0x10000000, // ST3 (T0): Status of the "Track 0" signal from the diskette drive
                    READY:          0x20000000, // ST3 (RY): Status of the "Ready" signal from the diskette drive
                    WRITEPROT:      0x40000000, // ST3 (WP): Status of the "Write Protect" signal from the diskette drive
                    FAULT:          0x80000000|0, // ST3 (FT): Status of the "Fault" signal from the diskette drive
                    ST3:            0xFF000000|0
                }
            };
            
            /*
             * FDC "Fixed Disk" Register (0x3F6, write-only)
             *
             * Since this register's functions are all specific to the Hard Disk Controller, see the HDC component for details.
             * The fact that this HDC register is in the middle of the FDC I/O port range is an oddity of the "HFCOMBO" controller.
             */
            
            /*
             * FDC Digital Input Register (0x3F7, read-only, MODEL_5170 only)
             *
             * Bit 7 indicates a diskette change (the MODEL_5170 introduced change-line support).  Bits 0-6 are for the selected
             * hard disk drive, so this port must be shared with the HDC; bits 0-6 are valid for 50 microseconds after a write to
             * the Drive Head Register.
             */
            FDC.REG_INPUT = {
                PORT:      0x3F7,
                DS0:        0x01,   // Drive Select 0
                DS1:        0x02,   // Drive Select 1
                HS0:        0x04,   // Head Select 0
                HS1:        0x08,   // Head Select 1
                HS2:        0x10,   // Head Select 2
                HS3:        0x20,   // Head Select 3
                WRITE_GATE: 0x40,   // Write Gate
                DISK_CHANGE:0x80    // Diskette Change
            };
            
            /*
             * FDC Diskette Control Register (0x3F7, write-only, MODEL_5170 only)
             *
             * Only bits 0-1 are used; bits 2-7 are reserved.
             */
            FDC.REG_CONTROL = {
                PORT:      0x3F7,
                RATE500K:   0x00,   // 500,000 bps
                RATE300K:   0x02,   // 300,000 bps
                RATE250K:   0x01,   // 250,000 bps
                RATEUNUSED: 0x03
            };
            
            /*
             * FDC Command Sequences
             *
             * For each command, cbReq indicates the total number of bytes in the command request sequence,
             * including the first (command) byte; cbRes indicates total number of bytes in the response sequence.
             */
            if (DEBUG) {
                FDC.CMDS = {
                    SPECIFY:      "SPECIFY",
                    SENSE_DRIVE:  "SENSE DRIVE",
                    WRITE_DATA:   "WRITE DATA",
                    READ_DATA:    "READ DATA",
                    RECALIBRATE:  "RECALIBRATE",
                    SENSE_INT:    "SENSE INTERRUPT",
                    READ_ID:      "READ ID",
                    FORMAT:       "FORMAT",
                    SEEK:         "SEEK"
                };
            } else {
                FDC.CMDS = {};
            }
            
            FDC.aCmdInfo = {
                0x03: {cbReq: 3, cbRes: 0, name: FDC.CMDS.SPECIFY},
                0x04: {cbReq: 2, cbRes: 1, name: FDC.CMDS.SENSE_DRIVE},
                0x05: {cbReq: 9, cbRes: 7, name: FDC.CMDS.WRITE_DATA},
                0x06: {cbReq: 9, cbRes: 7, name: FDC.CMDS.READ_DATA},
                0x07: {cbReq: 2, cbRes: 0, name: FDC.CMDS.RECALIBRATE},
                0x08: {cbReq: 1, cbRes: 2, name: FDC.CMDS.SENSE_INT},
                0x0A: {cbReq: 2, cbRes: 7, name: FDC.CMDS.READ_ID},
                0x0D: {cbReq: 6, cbRes: 7, name: FDC.CMDS.FORMAT},
                0x0F: {cbReq: 3, cbRes: 0, name: FDC.CMDS.SEEK}
            };
            
            /**
             * setBinding(sHTMLType, sBinding, control)
             *
             * @this {FDC}
             * @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
             * @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "listDisks")
             * @param {Object} control is the HTML control DOM object (eg, HTMLButtonElement)
             * @return {boolean} true if binding was successful, false if unrecognized binding request
             */
            FDC.prototype.setBinding = function(sHTMLType, sBinding, control)
            {
                var fdc = this;
            
                switch (sBinding) {
            
                case "listDisks":
                    this.bindings[sBinding] = control;
            
                    control.onchange = function onChangeListDisks(event) {
                        var controlDesc = fdc.bindings["descDisk"];
                        var controlOption = control.options[control.selectedIndex];
                        if (controlDesc && controlOption) {
                            var dataValue = {};
                            var sValue = controlOption.getAttribute("data-value");
                            if (sValue) {
                                try {
                                    dataValue = eval("({" + sValue + "})");
                                } catch (e) {
                                    Component.error("FDC option error: " + e.message);
                                }
                            }
                            var sHTML = dataValue['desc'];
                            if (sHTML === undefined) sHTML = "";
                            var sHRef = dataValue['href'];
                            if (sHRef !== undefined) sHTML = "<a href=\"" + sHRef + "\" target=\"_blank\">" + sHTML + "</a>";
                            controlDesc.innerHTML = sHTML;
                        }
                    };
                    return true;
            
                case "descDisk":
                case "listDrives":
                    this.bindings[sBinding] = control;
                    /*
                     * I tried going with onclick instead of onchange, so that if you wanted to confirm what's
                     * loaded in a particular drive, you could click the drive control without having to change it.
                     * However, that doesn't seem to work for all browsers, so I've reverted to onchange.
                     */
                    control.onchange = function onChangeListDrives(event) {
                        var iDrive = str.parseInt(control.value, 10);
                        if (iDrive != null) fdc.displayDiskette(iDrive);
                    };
                    return true;
            
                case "loadDrive":
                    this.bindings[sBinding] = control;
                    control.onclick = function onClickLoadDrive(event) {
                        var controlDisks = fdc.bindings["listDisks"];
                        if (controlDisks) {
                            var sDisketteName = controlDisks.options[controlDisks.selectedIndex].text;
                            var sDiskettePath = controlDisks.value;
                            fdc.loadSelectedDrive(sDisketteName, sDiskettePath);
                        }
                    };
                    return true;
            
                case "mountDrive":
                    if (this.fLocalDisks) {
                        this.bindings[sBinding] = control;
                        /*
                         * Enable "Mount" button only if a file is actually selected
                         */
                        control.addEventListener('change', function() {
                            var fieldset = control.children[0];
                            var files = fieldset.children[0].files;
                            var submit = fieldset.children[1];
                            submit.disabled = !files.length;
                        });
            
                        control.onsubmit = function(event) {
                            var file = event.currentTarget[1].files[0];
                            if (file) {
                                var sDiskettePath = file.name;
                                var sDisketteName = str.getBaseName(sDiskettePath, true);
                                fdc.loadSelectedDrive(sDisketteName, sDiskettePath, file);
                            }
                            /*
                             * Prevent reloading of web page after form submission
                             */
                            return false;
                        };
                    }
                    else {
                        if (DEBUG) this.log("Local file support not available");
                        control.parentNode.removeChild(control);
                    }
                    return true;
            
                default:
                    break;
                }
                return false;
            };
            
            /**
             * initBus(cmp, bus, cpu, dbg)
             *
             * @this {FDC}
             * @param {Computer} cmp
             * @param {Bus} bus
             * @param {X86CPU} cpu
             * @param {Debugger} dbg
             */
            FDC.prototype.initBus = function(cmp, bus, cpu, dbg)
            {
                this.bus = bus;
                this.cpu = cpu;
                this.dbg = dbg;
                this.cmp = cmp;
            
                this.chipset = cmp.getComponentByType("ChipSet");
            
                /*
                 * If we didn't need auto-mount support, we could defer controller initialization until we received a powerUp() notification,
                 * at which point reset() would call initController(), or restore() would restore the controller; in that case, all we'd need
                 * to do here is call setReady().
                 */
                this.initController();
            
                bus.addPortInputTable(this, FDC.aPortInput);
                bus.addPortOutputTable(this, FDC.aPortOutput);
            
                if (this.fLocalDisks) {
                    this.addDiskette("Local Disk", "?");
                }
                this.addDiskette("Remote Disk", "??");
            
                if (!this.autoMount()) this.setReady();
            };
            
            /**
             * powerUp(data, fRepower)
             *
             * @this {FDC}
             * @param {Object|null} data
             * @param {boolean} [fRepower]
             * @return {boolean} true if successful, false if failure
             */
            FDC.prototype.powerUp = function(data, fRepower)
            {
                if (!fRepower) {
                    if (!data || !this.restore) {
                        this.reset();
                        if (this.cmp.fReload) {
                            /*
                             * If the computer's fReload flag is set, we're required to toss all currently
                             * loaded disks and remount all disks specified in the auto-mount configuration.
                             */
                            this.unloadAllDrives(true);
                            this.autoMount(true);
                        }
                    } else {
                        if (!this.restore(data)) return false;
                    }
                    /*
                     * Populate the HTML controls to match the actual (well, um, specified) number of floppy drives.
                     */
                    var controlDrives;
                    if ((controlDrives = this.bindings['listDrives'])) {
                        while (controlDrives.firstChild) {
                            controlDrives.removeChild(controlDrives.firstChild);
                        }
                        controlDrives.textContent = "";
                        for (var iDrive = 0; iDrive < this.nDrives; iDrive++) {
                            var controlOption = window.document.createElement("option");
                            controlOption['value'] = iDrive;
                            /*
                             * TODO: This conversion of drive number to drive letter, starting with A:, is very simplistic
                             * and will NOT match the drive mappings that DOS ultimately uses.  We'll need to spiff this up at
                             * some point.
                             */
                            controlOption.textContent = String.fromCharCode(0x41 + iDrive) + ":";
                            controlDrives.appendChild(controlOption);
                        }
                        if (this.nDrives > 0) {
                            controlDrives.value = "0";
                            this.displayDiskette(0);
                        }
                    }
                }
                return true;
            };
            
            /**
             * powerDown(fSave, fShutdown)
             *
             * @this {FDC}
             * @param {boolean} fSave
             * @param {boolean} [fShutdown]
             * @return {Object|boolean} component state if fSave; otherwise, true if successful, false if failure
             */
            FDC.prototype.powerDown = function(fSave, fShutdown)
            {
                return fSave && this.save? this.save() : true;
            };
            
            /**
             * reset()
             *
             * NOTE: initController() establishes the maximum possible number of drives, but it's not until
             * we interrogate the current SW1 settings that we will have an ACTUAL number of drives (nDrives),
             * at which point we can also update the contents of the "listDrives" HTML control, if any.
             *
             * @this {FDC}
             */
            FDC.prototype.reset = function()
            {
                /*
                 * NOTE: The controller is also initialized by the constructor, to assist with auto-mount support,
                 * so think about whether we can skip powerUp initialization.
                 */
                this.initController();
            };
            
            /**
             * save()
             *
             * This implements save support for the FDC component.
             *
             * @this {FDC}
             * @return {Object}
             */
            FDC.prototype.save = function()
            {
                var state = new State(this);
                state.set(0, this.saveController());
                return state.data();
            };
            
            /**
             * restore(data)
             *
             * This implements restore support for the FDC component.
             *
             * @this {FDC}
             * @param {Object} data
             * @return {boolean} true if successful, false if failure
             */
            FDC.prototype.restore = function(data)
            {
                return this.initController(data[0]);
            };
            
            /**
             * initController(data)
             *
             * @this {FDC}
             * @param {Array} [data]
             * @return {boolean} true if successful, false if failure
             */
            FDC.prototype.initController = function(data)
            {
                var i = 0, iDrive;
                var fSuccess = true;
            
                if (data === undefined) {
                    data = [0, 0, FDC.REG_STATUS.RQM, new Array(9), 0, 0, 0, []];
                }
            
                /*
                 * Selected drive (from regOutput), which can only be selected if its motor is on (see regOutput).
                 */
                this.iDrive = data[i++];
                i++;                        // unused slot (if reused, bias by +4, since it was formerly a unit #)
            
                /*
                 * Defaults to FDC.REG_STATUS.RQM set (ready for command) and FDC.REG_STATUS.READ_DATA clear (data direction
                 * is from processor to the FDC Data Register).
                 */
                this.regStatus = data[i++];
            
                /*
                 * There can be up to 9 command bytes, and 7 result bytes, so 9 data registers are sufficient for communicating
                 * in both directions (hence, the new Array(9) default above).
                 */
                this.regDataArray = data[i++];
            
                /*
                 * Determines the next data byte to be received.
                 */
                this.regDataIndex = data[i++];
            
                /*
                 * Determines the next data byte to be sent (internally, we use regDataIndex to read data bytes, up to this total).
                 */
                this.regDataTotal = data[i++];
                this.regOutput = data[i++];
                var dataDrives = data[i++];
            
                /*
                 * Initialize the disk history (if available) before initializing the drives, so that any disk deltas can be
                 * applied to disk images that are already loaded.
                 */
                var aDiskHistory = data[i++];
                if (aDiskHistory != null) this.aDiskHistory = aDiskHistory;
            
                if (this.aDrives === undefined) {
                    this.nDrives = 4;                       // default to the maximum number of drives
                    if (this.chipset) this.nDrives = this.chipset.getSWFloppyDrives();
                    /*
                     * I would prefer to allocate only nDrives, but as discussed in the handling of the FDC.REG_DATA.CMD.SENSE_INT
                     * command, we're faced with situations where the controller must respond to any drive in the range 0-3, regardless
                     * how many drives are actually installed.  We still rely upon nDrives to determine the number of drives displayed
                     * to the user, however.
                     */
                    this.aDrives = new Array(4);
                }
            
                for (iDrive = 0; iDrive < this.aDrives.length; iDrive++) {
                    var drive = this.aDrives[iDrive];
                    if (drive === undefined) {
                        /*
                         * The first time each drive is initialized, we query its capacity (based on switches or CMOS) and set
                         * the drive's physical limits accordingly (ie, max tracks, max heads, and max sectors/track).
                         */
                        drive = this.aDrives[iDrive] = {};
                        var nKb = (this.chipset? this.chipset.getSWFloppyDriveSize(iDrive) : 0);
                        switch(nKb) {
                        case 160:
                        case 180:
                            drive.nHeads = 1;       // required for single-sided drives only (all others default to double-sided)
                            /* falls through */
                        case 320:
                        case 360:
                            /* falls through */
                        default:                    // drives that don't have a recognized capacity default to 360
                            drive.nCylinders = 40;
                            drive.nSectors = 9;     // drives capable of writing 8 sectors/track can also write 9 sectors/track
                            break;
                        case 720:
                            drive.nCylinders = 80;
                            drive.nSectors = 9;
                            break;
                        case 1200:
                            drive.nCylinders = 80;
                            drive.nSectors = 15;
                            break;
                        case 1440:
                            drive.nCylinders = 80;
                            drive.nSectors = 18;
                            break;
                        }
                    }
                    if (!this.initDrive(drive, iDrive, dataDrives[iDrive])) {
                        fSuccess = false;
                    }
                }
            
                /*
                 * regInput and regControl (port 0x3F7) were not present on controllers prior to MODEL_5170, which is why
                 * we don't include initializers for them in the default data array; we could eliminate them on older models,
                 * but we don't have access to the model info right now, and there's no real cost to always including them
                 * in the FDC state.
                 *
                 * The bigger compatibility question is whether to always include hooks for them (see aPortInput and aPortOutput).
                 */
                this.regInput = data[i++] || 0;                             // TODO: Determine if we should default to FDC.REG_INPUT.DISK_CHANGE instead of 0
                this.regControl = data[i] || FDC.REG_CONTROL.RATE500K;      // default to maximum data rate
            
                if (DEBUG && this.messageEnabled()) {
                    this.printMessage("FDC initialized for " + this.aDrives.length + " drive(s)");
                }
                return fSuccess;
            };
            
            /**
             * saveController()
             *
             * @this {FDC}
             * @return {Array}
             */
            FDC.prototype.saveController = function()
            {
                var i = 0;
                var data = [];
                data[i++] = this.iDrive;
                data[i++] = 0;
                data[i++] = this.regStatus;
                data[i++] = this.regDataArray;
                data[i++] = this.regDataIndex;
                data[i++] = this.regDataTotal;
                data[i++] = this.regOutput;
                data[i++] = this.saveDrives();
                data[i++] = this.saveDeltas();
                data[i++] = this.regInput;
                data[i] = this.regControl;
                return data;
            };
            
            /**
             * initDrive(drive, iDrive, data)
             *
             * TODO: Consider a separate Drive class that both FDC and HDC can use, since there's a lot of commonality
             * between the drive objects created by both controllers.  This will clean up overall drive management and allow
             * us to factor out some common Drive methods (eg, advanceSector()).
             *
             * @this {FDC}
             * @param {Object} drive
             * @param {number} iDrive
             * @param {Array|undefined} data
             * @return {boolean} true if successful, false if failure
             */
            FDC.prototype.initDrive = function(drive, iDrive, data)
            {
                var i = 0;
                var fSuccess = true;
            
                drive.iDrive = iDrive;
                drive.fBusy = drive.fLocal = false;
            
                if (data === undefined) {
                    /*
                     * We set a default of two heads (MODEL_5150 PCs originally shipped with single-sided drives,
                     * but the ROM BIOS appears to have always supported both drive types).
                     */
                    data = [FDC.REG_DATA.RES.RESET, true, 0, 2, 0];
                }
            
                if (typeof data[1] == "boolean") {
                    /*
                     * Note that when no data is provided (eg, when the controller is being reinitialized), we now take
                     * care to preserve any drive defaults that initController() already obtained for us, falling back to
                     * bare minimums only when all else fails.
                     */
                    data[1] = [
                        FDC.DEFAULT_DRIVE_NAME, // a[0]
                        drive.nCylinders || 40, // a[1]
                        drive.nHeads || data[3],// a[2]
                        drive.nSectors || 9,    // a[3]
                        drive.cbSector || 512,  // a[4]
                        data[1],                // a[5]
                        drive.nDiskCylinders,   // a[6]
                        drive.nDiskHeads,       // a[7]
                        drive.nDiskSectors      // a[8]
                    ];
                }
            
                /*
                 * resCode used to be an FDC global, but in order to insulate FDC state from the operation of various functions
                 * that operate on drive objects (eg, readData and writeData), I've made it a per-drive variable.  This choice,
                 * similar to my choice for handling PCN, may be contrary to how the actual hardware works, but I prefer this
                 * approach, as long as it doesn't expose any incompatibilities that any software actually cares about.
                 */
                drive.resCode = data[i++];
            
                /*
                 * Some additional drive properties/defaults that are largely for the Disk component's benefit.
                 */
                var a = data[i++];
                drive.name = a[0];
                drive.nCylinders = a[1];          // cylinders
                drive.nHeads = a[2];              // heads/cylinders
                drive.nSectors = a[3];            // sectors/track
                drive.cbSector = a[4];            // bytes/sector
                drive.fRemovable = a[5];
                /*
                 * If we have current media parameters, restore them; otherwise, default to the drive's physical parameters.
                 */
                if (drive.nDiskCylinders = a[6]) {
                    drive.nDiskHeads = a[7];
                    drive.nDiskSectors = a[8];
                } else {
                    drive.nDiskCylinders = drive.nCylinders;
                    drive.nDiskHeads = drive.nHeads;
                    drive.nDiskSectors = drive.nSectors;
                }
            
                /*
                 * The next group of properties are set by various FDC command sequences.
                 *
                 * We initialize this.iDrive (above) and drive.bHead and drive.bCylinder (below) to zero, but leave the rest undefined,
                 * awaiting their first FDC command.  We do this because the initial SENSE_INT command returns a PCN, which will also
                 * be undefined unless we have at least zeroed both the current drive and the "present" cylinder on that drive.
                 *
                 * Alternatively, I could make PCN a global FDC variable.  That may be closer to how the actual hardware operates,
                 * but I'm using per-drive variables so that the FDC component can be a good client to both the CPU and other components.
                 *
                 * COMPATIBILITY ALERT: The MODEL_5170 BIOS ("DSKETTE_SETUP") attempts to discern the drive type (double-density vs.
                 * high-capacity) by "slapping" the heads around -- "litrally" (it uses a constant named "TRK_SLAP" equal to 48).
                 * After seeking to "TRK_SLAP", the BIOS performs a series of seeks, looking for the precise point where the heads
                 * return to track 0.
                 *
                 * Here's how it works: the BIOS seeks to track 48 (which is fine on an 80-track 1.2Mb high-capacity drive, but 9 tracks
                 * too far on a 40-track 360Kb double-density drive), then seeks to track 10, and then seeks in single-track increments
                 * up to 10 more times until the SENSE_DRIVE command returns ST3 with the TRACK0 bit set.
                 *
                 * This implies that SEEK isn't really seeking to a specified cylinder, but rather it is calculating a delta from
                 * the previous cylinder to the specified cylinder, and stepping over that number of tracks.  Which means that SEEK
                 * is updating a "logical" cylinder number, not the "physical" (actual) cylinder number.  Presumably a RECALIBRATE
                 * command will bring the logical and physical values into sync, but once an out-of-bounds cylinder is requested, they
                 * will be out of sync.
                 *
                 * To simulate this, bCylinder is now treated as the "physical" cylinder (since that's how it's ALWAYS been used here),
                 * and bCylinderSeek will now track (pun intended) the "logical" cylinder that's programmed via SEEK commands.
                 */
                drive.bHead = data[i++];
                drive.bCylinderSeek = data[i++];        // the data[] slot where we used to store drive.nHeads (or -1)
                drive.bCylinder = data[i++];
                if (drive.bCylinderSeek >= 100) {       // verify that the saved bCylinderSeek is valid, otherwise sync it with bCylinder
                    drive.bCylinderSeek -= 100;
                } else {
                    drive.bCylinderSeek -= drive.bCylinder;
                }
                drive.bSector = data[i++];
                drive.bSectorEnd = data[i++];           // aka EOT
                drive.nBytes = data[i++];
            
                /*
                 * We no longer reinitialize drive.disk, in order to retain previously mounted diskette across resets.
                 */
            
                /*
                 * The next group of properties are managed by worker functions (eg, doRead()) to maintain state across DMA requests.
                 */
                drive.ibSector = data[i++];             // location of the next byte to be accessed in the current sector
                drive.sector = null;
            
                if (!drive.disk) {
                    drive.sDiskettePath = "";           // ensure this is initialized to a default that displayDiskette() can deal with
                }
            
                var deltas = data[i++];
                if (deltas == 102) deltas = false;      // v1.02 backward-compatibility
            
                if (typeof deltas == "boolean") {
                    var fLocal = deltas;
                    var sDisketteName = data[i++];
                    var sDiskettePath = data[i];
                    /*
                     * If we're restoring a local disk image, then the entire disk contents should be captured in aDiskHistory,
                     * so all we have to do is mount a blank diskette and let disk.restore() do the rest; ie, there's nothing to
                     * "load" (it's a purely synchronous operation).
                     *
                     * Otherwise, we must call loadDiskette(); in the common case, loadDiskette() will have already "auto-mounted"
                     * the diskette, so it will return true, and then we restore any deltas to the current image.
                     *
                     * However, if loadDiskette() returns false, then it has initiated the load for a *different* disk image,
                     * so we must mark ourselves as "not ready" again, and add another "wait for ready" test in Computer before
                     * finally powering the CPU.
                     */
                    if (fLocal) {
                        this.mountDiskette(iDrive, sDisketteName, sDiskettePath);
                    }
                    else if (this.loadDiskette(iDrive, sDisketteName, sDiskettePath, true)) {
                        if (drive.disk) {
                            if (sDiskettePath) {
                                this.addDiskHistory(sDisketteName, sDiskettePath, drive.disk);
                            } else {
                                if (DEBUG) Component.warning("Disk '" + (drive.disk.sDiskName || sDisketteName) + "' not recorded properly in drive " + iDrive);
                            }
                        }
                    } else {
                        this.setReady(false);
                    }
                } else if (deltas !== undefined) {
                    /*
                     * If there's any data at all (ie, if this is a restore and not a reset), then it must be in the
                     * pre-v1.02 save/restore format, so we'll restore as best we can, but be aware that if disk.restore()
                     * notices that the currently mounted disk image differs from the disk image that these deltas belong to,
                     * it will return false, and the restore operation will be aborted.
                     */
                    if (drive.disk && drive.disk.restore(deltas) < 0) {
                        fSuccess = false;
                    }
                }
            
                /*
                 * TODO: If loadDiskette() returned true, then this can happen immediately.  Otherwise, loadDiskette()
                 * will have merely "queued up" the load request and drive.disk won't be ready yet, so figure out how/when
                 * we can properly restore drive.sector in that case.
                 */
                if (fSuccess && drive.disk && drive.ibSector !== undefined) {
                    drive.sector = drive.disk.seek(drive.bCylinder, drive.bHead, drive.bSector);
                }
                return fSuccess;
            };
            
            /**
             * saveDrives()
             *
             * @this {FDC}
             * @return {Array}
             */
            FDC.prototype.saveDrives = function()
            {
                var i = 0;
                var data = [];
                for (var iDrive = 0; iDrive < this.aDrives.length; iDrive++) {
                    data[i++] = this.saveDrive(this.aDrives[iDrive]);
                }
                return data;
            };
            
            /**
             * saveDrive(drive)
             *
             * @this {FDC}
             * @return {Array}
             */
            FDC.prototype.saveDrive = function(drive)
            {
                var i = 0;
                var data = [];
                data[i++] = drive.resCode;
                data[i++] = [drive.name, drive.nCylinders, drive.nHeads, drive.nSectors, drive.cbSector, drive.fRemovable, drive.nDiskCylinders, drive.nDiskHeads, drive.nDiskSectors];
                data[i++] = drive.bHead;
                /*
                 * We used to store drive.nHeads in the next slot, but now we store bCylinderSeek,
                 * and we bias it by +100 so that initDrive() can distinguish it from older values.
                 */
                data[i++] = drive.bCylinderSeek + 100;
                data[i++] = drive.bCylinder;
                data[i++] = drive.bSector;
                data[i++] = drive.bSectorEnd;
                data[i++] = drive.nBytes;
                data[i++] = drive.ibSector;
                /*
                 * Now we deviate from the 1.01a save format: instead of next storing all the deltas for the
                 * currently mounted disk (if any), we store only the name and path of the currently mounted disk
                 * (if any).  Deltas for ALL disks, both currently mounted and previously mounted, are stored later.
                 *
                 *      data[i++] = drive.disk? drive.disk.save() : null;
                 *
                 * To indicate this deviation, we store neither a null nor a delta array, but a boolean (fLocal);
                 * if that boolean is not present, then the restore code will know it's dealing with a pre-v1.02 state.
                 */
                data[i++] = drive.fLocal;
                data[i++] = drive.sDisketteName;
                data[i] = drive.sDiskettePath;
                if (DEBUG && !drive.sDiskettePath && drive.disk && drive.disk.sDiskPath) {
                    Component.warning("Disk '" + drive.disk.sDiskName + "' not saved properly in drive " + drive.iDrive);
                }
                return data;
            };
            
            /**
             * saveDeltas()
             *
             * This returns an array of entries, one for each disk image we've ever mounted, including any deltas; ie:
             *
             *      [name, path, deltas]
             *
             * aDiskHistory contains exactly that, except that deltas may not be up-to-date for any currently mounted
             * disk image(s), so we call updateHistory() for all those disks, and then aDiskHistory is ready to be saved.
             *
             * @this {FDC}
             * @return {Array}
             */
            FDC.prototype.saveDeltas = function()
            {
                for (var iDrive = 0; iDrive < this.aDrives.length; iDrive++) {
                    var drive = this.aDrives[iDrive];
                    if (drive.disk) {
                        this.updateDiskHistory(drive.sDisketteName, drive.sDiskettePath, drive.disk);
                    }
                }
                return this.aDiskHistory;
            };
            
            /**
             * copyDrive(iDrive)
             *
             * @this {FDC}
             * @param {number} iDrive
             * @return {Object|undefined} drive (which may be undefined if the requested drive does not exist)
             */
            FDC.prototype.copyDrive = function(iDrive)
            {
                var driveNew;
                var driveOld = this.aDrives[iDrive];
                if (driveOld !== undefined) {
                    driveNew = {};
                    for (var p in driveOld) {
                        driveNew[p] = driveOld[p];
                    }
                }
                return driveNew;
            };
            
            /**
             * seekDrive(drive, iSector, nSectors)
             *
             * The FDC doesn't need this function, since all FDC requests from the CPU are handled by doCmd().  This function
             * is used by other components (eg, Debugger) to mimic an FDC request, using a drive object obtained from copyDrive(),
             * to avoid disturbing the internal state of the FDC's drive objects.
             *
             * Also note that in an actual FDC request, drive.nBytes is initialized to the size of a single sector; the extent
             * of the entire transfer is actually determined by a count that has been pre-loaded into the DMA controller.  The FDC
             * isn't even aware of the extent of the transfer, so in the case of a read request, all readData() can do is return
             * bytes until the current track (or, in the case of a multi-track request, the current cylinder) has been exhausted.
             *
             * Since seekDrive() is for use with non-DMA requests, we use nBytes to specify the length of the entire transfer.
             *
             * @this {FDC}
             * @param {Object} drive
             * @param {number} iSector (a "logical" sector number, relative to the entire disk, NOT a physical sector number)
             * @param {number} nSectors
             * @return {boolean} true if successful, false if invalid position request
             */
            FDC.prototype.seekDrive = function(drive, iSector, nSectors)
            {
                if (drive.disk) {
                    var aDiskInfo = drive.disk.info();
                    var nCylinders = aDiskInfo[0];
                    var nHeads = aDiskInfo[1];
                    var nSectorsPerTrack = aDiskInfo[2];
                    var nSectorsPerCylinder = nHeads * nSectorsPerTrack;
                    var nSectorsPerDisk = nCylinders * nSectorsPerCylinder;
                    if (iSector + nSectors <= nSectorsPerDisk) {
                        drive.bCylinder = Math.floor(iSector / nSectorsPerCylinder);
                        iSector %= nSectorsPerCylinder;
                        drive.bHead = Math.floor(iSector / nSectorsPerTrack);
                        drive.bSector = (iSector % nSectorsPerTrack) + 1;
                        drive.nBytes = nSectors * aDiskInfo[3];
                        /*
                         * NOTE: We don't set bSectorEnd, as an FDC command would, but it's irrelevant, because we don't actually
                         * do anything with bSectorEnd at this point.  Perhaps someday, when we faithfully honor/restrict requests
                         * to a single track (or a single cylinder, in the case of multi-track requests).
                         */
                        drive.resCode = FDC.REG_DATA.RES.NONE;
                        /*
                         * At this point, we've finished simulating what an FDC.REG_DATA.CMD.READ_DATA command would have performed,
                         * up through doRead().  Now it's the caller responsibility to call readData(), just like the DMA Controller would.
                         */
                        return true;
                    }
                }
                return false;
            };
            
            /**
             * autoMount(fRemount)
             *
             * @this {FDC}
             * @param {boolean} [fRemount] is true if we're remounting all auto-mounted diskettes
             * @return {boolean} true if one or more diskette images are being auto-mounted, false if none
             */
            FDC.prototype.autoMount = function(fRemount)
            {
                if (!fRemount) this.cAutoMount = 0;
                if (this.configMount) {
                    for (var sDrive in this.configMount) {
                        var configDrive = this.configMount[sDrive];
                        if (configDrive['name'] && configDrive['path']) {
                            /*
                             * WARNING: This conversion of drive letter to drive number, starting with A:, is very simplistic
                             * and is not guaranteed to match the drive mapping that DOS ultimately uses.
                             */
                            var iDrive = sDrive.charCodeAt(0) - 0x41;
                            if (iDrive >= 0 && iDrive < this.aDrives.length) {
                                if (!this.loadDiskette(iDrive, configDrive['name'], configDrive['path'], true) && fRemount) {
                                    this.setReady(false);
                                }
                                continue;
                            }
                        }
                        this.notice("Unrecognized auto-mount specification for drive " + sDrive);
                    }
                }
                return !!this.cAutoMount;
            };
            
            /**
             * loadSelectedDrive(sDisketteName, sDiskettePath, file)
             *
             * @this {FDC}
             * @param {string} sDisketteName
             * @param {string} sDiskettePath
             * @param {File} [file] is set if there's an associated File object
             */
            FDC.prototype.loadSelectedDrive = function(sDisketteName, sDiskettePath, file)
            {
                var iDrive;
                var controlDrives = this.bindings["listDrives"];
                if (controlDrives && !isNaN(iDrive = str.parseInt(controlDrives.value, 10)) && iDrive >= 0 && iDrive < this.aDrives.length) {
            
                    if (!sDiskettePath) {
                        this.unloadDrive(iDrive);
                        return;
                    }
            
                    if (sDiskettePath == "?") {
                        this.notice('Use "Choose File" and "Mount" to select and load a local disk.');
                        return;
                    }
            
                    /*
                     * If the special path of "??" is selected, then we want to prompt the user for a URL.  Oh, and
                     * make sure we pass an empty string as the 2nd parameter to prompt(), so that IE won't display
                     * "undefined" -- because after all, undefined and "undefined" are EXACTLY the same thing, right?
                     *
                     * TODO: This is literally all I've done to support remote disk images. There's probably more
                     * I should do, like dynamically updating "listDisks" to include new entries, and adding new entries
                     * to the save/restore data.
                     */
                    if (sDiskettePath == "??") {
                        sDiskettePath = window.prompt("Enter the URL of a remote disk image.", "") || "";
                        if (!sDiskettePath) return;
                        sDisketteName = str.getBaseName(sDiskettePath);
                        this.println("Attempting to load " + sDiskettePath + " as \"" + sDisketteName + "\"");
                    }
            
                    this.println("loading disk " + sDiskettePath + "...");
            
                    while (this.loadDiskette(iDrive, sDisketteName, sDiskettePath, false, file)) {
                        if (!window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)")) {
                            return;
                        }
                        /*
                         * So here's the story: loadDiskette() returned true, which it does ONLY if the specified disk is already
                         * mounted, AND the user clicked OK to reload the original disk image.  So we must toss any history we have
                         * for the disk, unload it, and then loop back around to loadDiskette().
                         *
                         * loadDiskette() should NEVER return true the second time, since no disk is loaded. In other words,
                         * this isn't really a loop so much as a one-time retry operation.
                         */
                        this.removeDiskHistory(sDisketteName, sDiskettePath);
                        this.unloadDrive(iDrive, false, true);
                    }
                    return;
                }
                this.notice("Nothing to load");
            };
            
            /**
             * mountDiskette(iDrive, sDisketteName, sDiskettePath)
             *
             * @this {FDC}
             * @param {number} iDrive
             * @param {string} sDisketteName
             * @param {string} sDiskettePath
             */
            FDC.prototype.mountDiskette = function(iDrive, sDisketteName, sDiskettePath)
            {
                var drive = this.aDrives[iDrive];
                this.unloadDrive(iDrive, true, true);
                drive.fLocal = true;
                var disk = new Disk(this, drive, DiskAPI.MODE.PRELOAD);
                this.doneLoadDiskette(drive, disk, sDisketteName, sDiskettePath, true);
            };
            
            /**
             * loadDiskette(iDrive, sDisketteName, sDiskettePath, fAutoMount, file)
             *
             * NOTE: If sDiskettePath is already loaded in the drive, nothing needs to be done.
             *
             * @this {FDC}
             * @param {number} iDrive
             * @param {string} sDisketteName
             * @param {string} sDiskettePath
             * @param {boolean} [fAutoMount]
             * @param {File} [file] is set if there's an associated File object
             * @return {boolean} true if diskette (already) loaded, false if queued up (or busy)
             */
            FDC.prototype.loadDiskette = function(iDrive, sDisketteName, sDiskettePath, fAutoMount, file)
            {
                var drive = this.aDrives[iDrive];
                if (sDiskettePath && drive.sDiskettePath != sDiskettePath) {
                    this.unloadDrive(iDrive, fAutoMount, true);
                    if (drive.fBusy) {
                        this.notice("Drive " + iDrive + " busy");
                        return true;
                    }
                    drive.fBusy = true;
                    if (fAutoMount) {
                        drive.fAutoMount = true;
                        this.cAutoMount++;
                        if (this.messageEnabled()) this.printMessage("loading diskette '" + sDisketteName + "'");
                    }
                    drive.fLocal = !!file;
                    var disk = new Disk(this, drive, DiskAPI.MODE.PRELOAD);
                    disk.load(sDisketteName, sDiskettePath, file, this.doneLoadDiskette);
                    return false;
                }
                return true;
            };
            
            /**
             * doneLoadDiskette(drive, disk, sDisketteName, sDiskettePath, fAutoMount)
             *
             * @this {FDC}
             * @param {Object} drive
             * @param {Disk} disk is set if the disk was successfully loaded, null if not
             * @param {string} sDisketteName
             * @param {string} sDiskettePath
             * @param {boolean} [fAutoMount]
             */
            FDC.prototype.doneLoadDiskette = function onFDCLoadNotify(drive, disk, sDisketteName, sDiskettePath, fAutoMount)
            {
                var aDiskInfo;
            
                drive.fBusy = false;
            
                if (disk) {
                    /*
                     * We shouldn't mount the diskette unless the drive is able to handle it; for example, FD360 (40-track)
                     * drives cannot read FD1200 (80-track) diskettes.  However, I no longer require that the diskette's
                     * sectors/track fall within the drive's standard maximum, because XDF diskettes use 19 physical sectors/track
                     * on the first cylinder (1 more than the typical 18 sectors/track found on 1.44Mb diskettes) but declare
                     * a larger logical size (23 512-byte sectors/track) to reflect the actual capacity of XDF tracks beyond the
                     * first cylinder (ie, one 8Kb sector, one 2Kb sector, one 1Kb sector, and one 512-byte sector).
                     */
                    aDiskInfo = disk.info();
                    if (disk && aDiskInfo[0] > drive.nCylinders || aDiskInfo[1] > drive.nHeads /* || aDiskInfo[2] > drive.nSectors */) {
                        this.notice("Diskette \"" + sDisketteName + "\" too large for drive " + String.fromCharCode(0x41 + drive.iDrive));
                        disk = null;
                    }
                }
            
                if (disk) {
                    drive.disk = disk;
                    drive.sDisketteName = sDisketteName;
                    drive.sDiskettePath = sDiskettePath;
            
                    /*
                     * Adding local disk image names to the disk list seems like a nice idea, but it's too confusing,
                     * because then it looks like the "Mount" button should be able to (re)load them, and that can NEVER
                     * happen, for security reasons; local disk images can ONLY be loaded via the "Mount" button after
                     * the user has selected them via the "Choose File" button.
                     *
                     *      this.addDiskette(sDisketteName, sDiskettePath);
                     *
                     * So we're going to take a different approach: when displayDiskette() is asked to display the name
                     * of a local disk image, it will map all such disks to "Local Disk", and any attempt to "Mount" such
                     * a disk, will essentially result in a "Disk not found" error.
                     */
            
                    this.addDiskHistory(sDisketteName, sDiskettePath, disk);
            
                    /*
                     * For a local disk (ie, one loaded via mountDiskette()), the disk.restore() performed by addDiskHistory()
                     * may have altered the disk geometry, so refresh the disk info.
                     */
                    aDiskInfo = disk.info();
            
                    /*
                     * Clearly, a successful mount implies a disk change, and I suppose that, technically, an *unsuccessful*
                     * mount should imply the same, but what would the real-world analog be?  Inserting a piece of cardboard
                     * instead of an actual diskette?  In any case, if we can do the user a favor by pretending (as far as the
                     * disk change line is concerned) that an unsuccessful mount never happened, let's do it.
                     *
                     * Successful unmounts are a different story, however; those *do* trigger a change. See unloadDrive().
                     */
                    this.regInput |= FDC.REG_INPUT.DISK_CHANGE;
            
                    /*
                     * With the addition of notify(), users are now "alerted" whenever a diskette has finished loading;
                     * notify() is selective about its output, using print() if a print window is open, alert() otherwise.
                     *
                     * WARNING: This conversion of drive number to drive letter, starting with A:, is very simplistic
                     * and will not match the drive mappings that DOS ultimately uses (ie, for drives beyond B:).
                     */
                    this.notice("Mounted diskette \"" + sDisketteName + "\" in drive " + String.fromCharCode(0x41 + drive.iDrive), drive.fAutoMount || fAutoMount);
            
                    /*
                     * Update the drive's current media parameters to match the disk's.
                     */
                    drive.nDiskCylinders = aDiskInfo[0];
                    drive.nDiskHeads = aDiskInfo[1];
                    drive.nDiskSectors = aDiskInfo[2];
                }
                else {
                    drive.fLocal = false;
                }
            
                if (drive.fAutoMount) {
                    drive.fAutoMount = false;
                    if (!--this.cAutoMount) this.setReady();
                }
            
                this.displayDiskette(drive.iDrive);
            };
            
            /**
             * addDiskette(sName, sPath)
             *
             * @param {string} sName
             * @param {string} sPath
             */
            FDC.prototype.addDiskette = function(sName, sPath)
            {
                var controlDisks = this.bindings["listDisks"];
                if (controlDisks) {
                    for (var i = 0; i < controlDisks.options.length; i++) {
                        if (controlDisks.options[i].value == sPath) return;
                    }
                    var controlOption = window.document.createElement("option");
                    controlOption['value'] = sPath;
                    controlOption.textContent = sName;
                    controlDisks.appendChild(controlOption);
                }
            };
            
            /**
             * displayDiskette(iDrive, fUpdateDrive)
             *
             * @this {FDC}
             * @param {number} iDrive (unvalidated)
             * @param {boolean} [fUpdateDrive] is true to update the drive list to match the specified drive (eg, the auto-mount case)
             */
            FDC.prototype.displayDiskette = function(iDrive, fUpdateDrive)
            {
                /*
                 * First things first: validate iDrive.
                 */
                if (iDrive >= 0 && iDrive < this.aDrives.length) {
                    var drive = this.aDrives[iDrive];
                    var controlDisks = this.bindings["listDisks"];
                    var controlDrives = this.bindings["listDrives"];
                    /*
                     * Next, make sure controls for both drives and disks exist.
                     */
                    if (controlDisks && controlDrives) {
                        /*
                         * Next, make sure the drive whose disk we're updating is the currently selected drive.
                         */
                        var i;
                        var iDriveSelected = str.parseInt(controlDrives.value, 10);
                        var sTargetPath = (drive.fLocal? "?" : drive.sDiskettePath);
                        if (!isNaN(iDriveSelected) && iDriveSelected == iDrive) {
                            for (i = 0; i < controlDisks.options.length; i++) {
                                if (controlDisks.options[i].value == sTargetPath) {
                                    if (controlDisks.selectedIndex != i) {
                                        controlDisks.selectedIndex = i;
                                    }
                                    break;
                                }
                            }
                            if (i == controlDisks.options.length) controlDisks.selectedIndex = 0;
                        }
                        if (fUpdateDrive) {
                            for (i = 0; i < controlDrives.options.length; i++) {
                                if (str.parseInt(controlDrives.options[i].value, 10) == drive.iDrive) {
                                    if (controlDrives.selectedIndex != i) {
                                        controlDrives.selectedIndex = i;
                                    }
                                    break;
                                }
                            }
                        }
                    }
                }
            };
            
            /**
             * unloadDrive(iDrive, fAutoUnload, fQuiet)
             *
             * @this {FDC}
             * @param {number} iDrive (pre-validated)
             * @param {boolean} [fAutoUnload] is true if this unload is being forced as part of an automount and/or restored mount
             * @param {boolean} [fQuiet]
             */
            FDC.prototype.unloadDrive = function(iDrive, fAutoUnload, fQuiet)
            {
                var drive = this.aDrives[iDrive];
                if (drive.disk) {
                    /*
                     * Before we toss the disk's information, capture any deltas that may have occurred.
                     */
                    this.updateDiskHistory(drive.sDisketteName, drive.sDiskettePath, drive.disk);
                    drive.sDisketteName = "";
                    drive.sDiskettePath = "";
                    drive.disk = null;
                    drive.fLocal = false;
            
                    this.regInput |= FDC.REG_INPUT.DISK_CHANGE;
            
                    /*
                     * WARNING: This conversion of drive number to drive letter, starting with A:, is very simplistic
                     * and is not guaranteed to match the drive mapping that DOS ultimately uses.
                     */
                    if (!fQuiet) {
                        this.notice("Drive " + String.fromCharCode(0x41 + iDrive) + " unloaded", fAutoUnload);
                    }
                    /*
                     * Try to avoid any unnecessary hysteresis regarding the diskette display if this unload is merely
                     * a prelude to another load.
                     */
                    if (!fAutoUnload && !fQuiet) {
                        this.displayDiskette(iDrive);
                    }
                }
            };
            
            /**
             * unloadAllDrives(fDiscard)
             *
             * @this {FDC}
             * @param {boolean} fDiscard to discard all disk history before unloading
             */
            FDC.prototype.unloadAllDrives = function(fDiscard)
            {
                if (fDiscard) {
                    this.aDiskHistory = [];
                }
                for (var iDrive = 0; iDrive < this.aDrives.length; iDrive++) {
                    this.unloadDrive(iDrive, true);
                }
            };
            
            /**
             * addDiskHistory(sDisketteName, sDiskettePath, disk)
             *
             * @this {FDC}
             * @param {string} sDisketteName
             * @param {string} sDiskettePath
             * @param {Disk} disk containing corresponding disk image
             */
            FDC.prototype.addDiskHistory = function(sDisketteName, sDiskettePath, disk)
            {
                var i;
                this.assert(!!sDiskettePath);
                for (i = 0; i < this.aDiskHistory.length; i++) {
                    if (this.aDiskHistory[i][1] == sDiskettePath) {
                        var nChanges = disk.restore(this.aDiskHistory[i][2]);
                        if (DEBUG && this.messageEnabled()) {
                            this.printMessage("disk '" + sDisketteName + "' restored from history (" + nChanges + " changes)");
                        }
                        return;
                    }
                }
                if (DEBUG && this.messageEnabled()) {
                    this.printMessage("disk '" + sDisketteName + "' added to history (nothing to restore)");
                }
                this.aDiskHistory[i] = [sDisketteName, sDiskettePath, []];
            };
            
            /**
             * removeDiskHistory(sDisketteName, sDiskettePath)
             *
             * @this {FDC}
             * @param {string} sDisketteName
             * @param {string} sDiskettePath
             */
            FDC.prototype.removeDiskHistory = function(sDisketteName, sDiskettePath)
            {
                var i;
                for (i = 0; i < this.aDiskHistory.length; i++) {
                    if (this.aDiskHistory[i][1] == sDiskettePath) {
                        this.aDiskHistory.splice(i, 1);
                        if (DEBUG && this.messageEnabled()) {
                            this.printMessage("disk '" + sDisketteName + "' removed from history");
                        }
                        return;
                    }
                }
                if (DEBUG && this.messageEnabled()) {
                    this.printMessage("unable to remove disk '" + sDisketteName + "' from history (" + sDiskettePath + ")");
                }
            };
            
            /**
             * updateDiskHistory(sDisketteName, sDiskettePath, disk)
             *
             * @this {FDC}
             * @param {string} sDisketteName
             * @param {string} sDiskettePath
             * @param {Disk} disk containing corresponding disk image, with possible deltas
             */
            FDC.prototype.updateDiskHistory = function(sDisketteName, sDiskettePath, disk)
            {
                var i;
                for (i = 0; i < this.aDiskHistory.length; i++) {
                    if (this.aDiskHistory[i][1] == sDiskettePath) {
                        this.aDiskHistory[i][2] = disk.save();
                        if (DEBUG && this.messageEnabled()) {
                            this.printMessage("disk '" + sDisketteName + "' updated in history");
                        }
                        return;
                    }
                }
                /*
                 * I used to report this as an error (at least in the DEBUG release), but it's no longer really
                 * an error, because if we're trying to re-mount a clean copy of a disk, we toss its history, then
                 * unload, and then reload/remount.  And since unloadDrive's normal behavior is to call updateDiskHistory()
                 * before unloading, the fact that the disk is no longer listed here can't be treated as an error.
                 */
                if (DEBUG && this.messageEnabled()) {
                    this.printMessage("unable to update disk '" + sDisketteName + "' in history (" + sDiskettePath + ")");
                }
            };
            
            /**
             * outFDCOutput(port, bOut, addrFrom)
             *
             * @this {FDC}
             * @param {number} port (0x3F2, output only)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             */
            FDC.prototype.outFDCOutput = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, "OUTPUT");
                if (!(bOut & FDC.REG_OUTPUT.ENABLE)) {
                    this.initController();
                    /*
                     * initController() resets, among other things, the selected drive (this.iDrive), so if we were
                     * still updating this.iDrive below based on the "drive select" bits in regOutput, we would want
                     * to make sure those bits now match what initController() set.  But since we no longer do that
                     * (see below), this is no longer needed either.
                     *
                     *      bOut = (bOut & ~FDC.REG_OUTPUT.DS) | this.iDrive;
                     */
                }
                else if (!(this.regOutput & FDC.REG_OUTPUT.ENABLE)) {
                    /*
                     * When FDC.REG_OUTPUT.ENABLE transitions from 0 to 1, generate an interrupt.
                     */
                    if (this.regOutput & FDC.REG_OUTPUT.INT_ENABLE) {
                        if (this.chipset) this.chipset.setIRR(ChipSet.IRQ.FDC);
                    }
                }
                /*
                 * This no longer updates the internally selected drive (this.iDrive) based on regOutput, because (a) there seems
                 * to be no point, as all drive-related commands include their own "drive select" bits, and (b) it breaks the
                 * MODEL_5170 boot code.  Here's why:
                 *
                 * Unlike previous models, the MODEL_5170 BIOS probes all installed diskette drives to determine drive type;
                 * ie, FD360 (40-track) or FD1200 (80-track).  So if there are two drives, the last selected drive will be drive 1.
                 * Immediately before booting, the BIOS issues an INT 0x13/AH=0 reset, which writes regOutput two times: first
                 * with FDC.REG_OUTPUT.ENABLE clear, and then with it set.  However, both times, it ALSO loads the last selected
                 * drive number into regOutput's "drive select" bits.
                 *
                 * If we switched our selected drive to match regOutput, then the ST0 value we returned on an SENSE_INT command
                 * following the regOutput reset operation would indicate drive 1 instead of drive 0.  But the BIOS requires
                 * the ST0 result from the SENSE_INT command ALWAYS be 0xC0 (not 0xC1), so the controller must not be propagating
                 * regOutput's "drive select" bits in the way I originally assumed.
                 *
                 *      var iDrive = bOut & FDC.REG_OUTPUT.DS;
                 *      if (bOut & (FDC.REG_OUTPUT.MOTOR_D0 << iDrive)) this.iDrive = iDrive;
                 */
                this.regOutput = bOut;
            };
            
            /**
             * inFDCStatus(port, addrFrom)
             *
             * @this {FDC}
             * @param {number} port (0x3F4, input only)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number} simulated port value
             */
            FDC.prototype.inFDCStatus = function(port, addrFrom)
            {
                this.printMessageIO(port, null, addrFrom, "STATUS", this.regStatus);
                return this.regStatus;
            };
            
            /**
             * inFDCData(port, addrFrom)
             *
             * @this {FDC}
             * @param {number} port (0x3F5, input/output)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number} simulated port value
             */
            FDC.prototype.inFDCData = function(port, addrFrom)
            {
                var bIn = 0;
                if (this.regDataIndex < this.regDataTotal) {
                    bIn = this.regDataArray[this.regDataIndex];
                }
                /*
                 * As per the discussion in doCmd(), once the first byte of the Result Phase has been read, the interrupt must be cleared.
                 */
                if (this.regOutput & FDC.REG_OUTPUT.INT_ENABLE) {
                    if (this.chipset) this.chipset.clearIRR(ChipSet.IRQ.FDC);
                }
                if (this.messageEnabled()) {
                    this.printMessageIO(port, null, addrFrom, "DATA[" + this.regDataIndex + "]", bIn);
                }
                if (++this.regDataIndex >= this.regDataTotal) {
                    this.regStatus &= ~(FDC.REG_STATUS.READ_DATA | FDC.REG_STATUS.BUSY);
                    this.regDataIndex = this.regDataTotal = 0;
                }
                return bIn;
            };
            
            /**
             * outFDCData(port, bOut, addrFrom)
             *
             * @this {FDC}
             * @param {number} port (0x3F5, input/output)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             */
            FDC.prototype.outFDCData = function(port, bOut, addrFrom)
            {
                if (this.messageEnabled()) {
                    this.printMessageIO(port, bOut, addrFrom, "DATA[" + this.regDataTotal + "]");
                }
            
                if (this.regDataTotal < this.regDataArray.length) {
                    this.regDataArray[this.regDataTotal++] = bOut;
                }
                var bCmd = this.regDataArray[0];
                var bCmdMasked = bCmd & FDC.REG_DATA.CMD.MASK;
                if (FDC.aCmdInfo[bCmdMasked] !== undefined) {
                    if (this.regDataTotal >= FDC.aCmdInfo[bCmdMasked].cbReq) {
                        this.doCmd();
                    }
                    return;
                }
                if (DEBUG && this.messageEnabled()) {
                    this.printMessage("unsupported FDC command: " + str.toHexByte(bCmd));
                    this.dbg.stopCPU();
                }
            };
            
            /**
             * inFDCInput(port, addrFrom)
             *
             * @this {FDC}
             * @param {number} port (0x3F7, input only, MODEL_5170 only)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number} simulated port value
             */
            FDC.prototype.inFDCInput = function(port, addrFrom)
            {
                var bIn = this.regInput;
                /*
                 * TODO: Determine when the DISK_CHANGE bit is *really* cleared (this is just a guess)
                 */
                this.regInput &= ~FDC.REG_INPUT.DISK_CHANGE;
                this.printMessageIO(port, null, addrFrom, "INPUT", bIn);
                return bIn;
            };
            
            /**
             * outFDCControl(port, bOut, addrFrom)
             *
             * @this {FDC}
             * @param {number} port (0x3F7, output only, MODEL_5170 only)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             */
            FDC.prototype.outFDCControl = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, "CONTROL");
                this.regControl  = bOut;
            };
            
            /**
             * doCmd()
             *
             * @this {FDC}
             */
            FDC.prototype.doCmd = function()
            {
                var fIRQ = false;
                this.regDataIndex = 0;
                var bCmd = this.popCmd();
                var drive, bDrive, bHead, c, h, r, n;
            
                /*
                 * NOTE: We currently ignore the FDC.REG_DATA.CMD.SK, FDC.REG_DATA.CMD.MF and FDC.REG_DATA.CMD.MT bits of every command.
                 * The only command bit of possible interest down the road might be the FDC.REG_DATA.CMD.MT (Multi-Track); the rest relate
                 * to storage format details that we cannot emulate as long as our diskette images contain nothing more than sector
                 * data without any formatting data.
                 *
                 * Similarly, we ignore parameters like SRT, HUT, HLT and the like, since our "motors" don't require physical delays;
                 * however, if timing issues become compatibility issues, we'll have to revisit those delays.  In any case, the maximum
                 * speed of the simulation will still be limited by various spin-loops in the ROM BIOS that wait prescribed times, so even
                 * with infinitely fast hardware, the simulation will never run as fast as it theoretically could, unless we opt to identify
                 * those spin-loops and either patch them or skip over them.
                 */
                var bCmdMasked = bCmd & FDC.REG_DATA.CMD.MASK;
            
                switch (bCmdMasked) {
                case FDC.REG_DATA.CMD.SPECIFY:                      // 0x03
                    this.popSRT();                                  // SRT and HUT (encodings?)
                    this.popHLT();                                  // HLT and ND (encodings?)
                    this.beginResult();
                    /*
                     * No results are provided by this command, and fIRQ should remain false
                     */
                    break;
            
                case FDC.REG_DATA.CMD.SENSE_DRIVE:                  // 0x04
                    bDrive = this.popCmd(FDC.TERMS.DS);
                    bHead = (bDrive >> 2) & 0x1;
                    this.iDrive = (bDrive & 0x3);
                    drive = this.aDrives[this.iDrive];
                    this.beginResult();
                    this.pushST3(drive);
                    break;
            
                case FDC.REG_DATA.CMD.WRITE_DATA:                   // 0x05
                case FDC.REG_DATA.CMD.READ_DATA:                    // 0x06
                    bDrive = this.popCmd(FDC.TERMS.DS);             // Drive Select
                    bHead = (bDrive >> 2) & 0x1;                    // isolate HD (Head Select) bits
                    this.iDrive = (bDrive & 0x3);                   // isolate DS (Drive Select, aka Unit Select) bits
                    drive = this.aDrives[this.iDrive];
                    drive.bHead = bHead;
                    c = drive.bCylinder = this.popCmd(FDC.TERMS.C); // C
                    h = this.popCmd(FDC.TERMS.H);                   // H
                    /*
                     * Controller docs say that H should always match HD, so I assert that, but what if someone
                     * made a mistake and didn't program them identically -- what would happen?  Which should we honor?
                     */
                    this.assert(h == bHead);
                    r = drive.bSector = this.popCmd(FDC.TERMS.R);   // R
                    n = this.popCmd(FDC.TERMS.N);                   // N
                    drive.nBytes = 128 << n;                        // 0 => 128, 1 => 256, 2 => 512, 3 => 1024
                    drive.bSectorEnd = this.popCmd(FDC.TERMS.EOT);  // EOT (final sector number on a cylinder)
                    this.popCmd(FDC.TERMS.GPL);                     // GPL (spacing between sectors, excluding VCO Sync Field; 3)
                    this.popCmd(FDC.TERMS.DTL);                     // DTL (when N is 0, DTL stands for the data length to read out or write into the sector)
                    if (bCmdMasked == FDC.REG_DATA.CMD.READ_DATA)
                        this.doRead(drive);
                    else
                        this.doWrite(drive);
                    this.pushResults(drive, bCmd, bHead, c, h, r, n);
                    fIRQ = true;
                    break;
            
                case FDC.REG_DATA.CMD.RECALIBRATE:                  // 0x07
                    bDrive = this.popCmd(FDC.TERMS.DS);
                    this.iDrive = (bDrive & 0x3);
                    drive = this.aDrives[this.iDrive];
                    drive.bCylinder = drive.bCylinderSeek = 0;
                    drive.resCode = FDC.REG_DATA.RES.SEEK_END | FDC.REG_DATA.RES.TRACK0;
                    this.beginResult();                             // no results provided; this command is typically followed by FDC.REG_DATA.CMD.SENSE_INT
                    fIRQ = true;
                    break;
            
                case FDC.REG_DATA.CMD.SENSE_INT:                    // 0x08
                    drive = this.aDrives[this.iDrive];
                    drive.bHead = 0;                                // this command is documented as ALWAYS returning a head address of 0 in ST0; see pushST0()
                    this.beginResult();
                    this.pushST0(drive);
                    this.pushResult(drive.bCylinder, FDC.TERMS.PCN);
                    /*
                     * For some strange reason, the "DISK_RESET" function in the MODEL_5170_REV3 BIOS resets the
                     * adapter and then issues FOUR -- that's right, not ONE but FOUR -- SENSE INTERRUPT STATUS commands
                     * in a row, and expects ST0 to contain a different drive number after each command (first 0, then 1,
                     * then 2, and finally 3).  What makes this doubly weird is SENSE INTERRUPT STATUS (unlike SENSE
                     * DRIVE STATUS) is a drive-agnostic command.
                     *
                     * Didn't the original PC AT "HFCOMBO" controller limit support to TWO diskette drives max?
                     * And even if the PC AT supported other FDC controllers that DID support up to FOUR diskette drives,
                     * why should "DISK_RESET" hard-code a 4-drive loop?
                     *
                     * Well, whatever.  All this head-scratching doesn't change the fact that I apparently have to
                     * "auto-increment" the internal drive number (this.iDrive) after each SENSE INTERRUPT STATUS command.
                     */
                    this.iDrive = (this.iDrive + 1) & 0x3;
                    /*
                     * No interrupt is generated by this command, so fIRQ should remain false.
                     */
                    break;
            
                case FDC.REG_DATA.CMD.READ_ID:                      // 0x0A
                    /*
                     * This command is used by "SETUP_DBL" in the MODEL_5170_REV3 BIOS to determine if a double-density
                     * (40-track) diskette has been inserted in a high-density (80-track) drive; ie, whether "double stepping"
                     * is required, since only 40 of the 80 possible "steps" are valid for a double-density diskette.
                     *
                     * To start, we'll focus on making this work in the normal case (80-track diskette in 80-track drive).
                     */
                    bDrive = this.popCmd(FDC.TERMS.DS);
                    bHead = (bDrive >> 2) & 0x1;
                    this.iDrive = (bDrive & 0x3);
                    drive = this.aDrives[this.iDrive];
                    c = drive.bCylinder;
                    h = drive.bHead = bHead;
                    r = drive.bSector = 1;
                    n = 0;
                    drive.resCode = FDC.REG_DATA.RES.NONE;
                    if (drive.disk && (drive.sector = drive.disk.seek(drive.bCylinder, drive.bHead, drive.bSector))) {
                        n = drive.sector.length;
                    } else {
                        /*
                         * TODO: Determine the appropriate response code(s) for the possible errors that can occur here.
                         */
                        drive.resCode = FDC.REG_DATA.RES.NOT_READY | FDC.REG_DATA.RES.INCOMPLETE;
                    }
                    this.pushResults(drive, bCmd, bHead, c, h, r, n);
                    fIRQ = true;
                    break;
            
                case FDC.REG_DATA.CMD.FORMAT_TRACK:                 // 0x0D
                    bDrive = this.popCmd(FDC.TERMS.DS);
                    bHead = (bDrive >> 2) & 0x1;
                    this.iDrive = (bDrive & 0x3);
                    drive = this.aDrives[this.iDrive];
                    c = drive.bCylinder;
                    h = drive.bHead = bHead;
                    r = 1;
                    n = this.popCmd(FDC.TERMS.N);                   // N
                    drive.nBytes = 128 << n;                        // 0 => 128, 1 => 256, 2 => 512, 3 => 1024 (bytes/sector)
                    drive.bSectorEnd = this.popCmd(FDC.TERMS.SC);   // SC (sectors/track)
                    this.popCmd(FDC.TERMS.GPL);                     // GPL (spacing between sectors, excluding VCO Sync Field; 3)
                    drive.bFiller = this.popCmd(FDC.TERMS.D);       // D (filler byte)
                    this.doFormat(drive);
                    this.pushResults(drive, bCmd, bHead, c, h, r, n);
                    fIRQ = true;
                    break;
            
                case FDC.REG_DATA.CMD.SEEK:                         // 0x0F
                    bDrive = this.popCmd(FDC.TERMS.DS);
                    bHead = (bDrive >> 2) & 0x1;
                    this.iDrive = (bDrive & 0x3);
                    drive = this.aDrives[this.iDrive];
                    drive.bHead = bHead;
                    /*
                     * As discussed in initDrive(), we can no longer simply set bCylinder to the specified NCN;
                     * instead, we must calculate the delta between bCylinderSeek and the NCN, and adjust bCylinder
                     * by that amount.  Then we simply move the NCN into bCylinderSeek without any range checking.
                     *
                     * Since bCylinder is now expressly defined as the "physical" cylinder number, it must never
                     * be allowed to exceed the physical boundaries of the drive (ie, never lower than 0, and never
                     * greater than or equal to nCylinders).
                     */
                    c = this.popCmd(FDC.TERMS.NCN);
                    drive.bCylinder += c - drive.bCylinderSeek;
                    if (drive.bCylinder < 0) drive.bCylinder = 0;
                    if (drive.bCylinder >= drive.nCylinders) drive.bCylinder = drive.nCylinders - 1;
                    drive.bCylinderSeek = c;
                    drive.resCode = FDC.REG_DATA.RES.SEEK_END;
                    /*
                     * TODO: To properly support ALL the ST3 result bits (not just TRACK0), we need a resCode
                     * update() function that all FDC commands can use.  This code is merely sufficient to get us
                     * through the "DSKETTE_SETUP" gauntlet in the MODEL_5170 BIOS.
                     */
                    if (!drive.bCylinder) {
                        drive.resCode |= FDC.REG_DATA.RES.TRACK0;
                    }
                    this.beginResult();                             // like FDC.REG_DATA.CMD.RECALIBRATE, no results are provided
                    fIRQ = true;
                    break;
            
                default:
                    if (DEBUG && this.messageEnabled()) {
                        this.printMessage("FDC operation unsupported (command=" + str.toHexByte(bCmd) + ")");
                        this.dbg.stopCPU();
                    }
                    break;
                }
            
                if (this.regDataTotal > 0) this.regStatus |= (FDC.REG_STATUS.READ_DATA | FDC.REG_STATUS.BUSY);
            
                /*
                 * After the Execution Phase (eg, DMA Terminal Count has occurred, or the EOT sector has been read/written),
                 * an interrupt is supposed to occur, signaling the beginning of the Result Phase.  Once the first byte of the
                 * result has been read, the interrupt is cleared (see inFDCData).
                 *
                 * TODO: Technically, interrupt request status should be cleared by the FDC.REG_DATA.CMD.SENSE_INT command; in fact,
                 * if that command is issued and no interrupt was pending, then FDC.REG_DATA.RES.INVALID should be returned (via ST0).
                 */
                if (this.regOutput & FDC.REG_OUTPUT.INT_ENABLE) {
                    if (drive && !(drive.resCode & FDC.REG_DATA.RES.NOT_READY) && fIRQ) {
                        if (this.chipset) this.chipset.setIRR(ChipSet.IRQ.FDC);
                    }
                }
            };
            
            /**
             * pushResults(drive, bCmd, bHead, c, h, r, n)
             *
             * @param {Object} drive
             * @param {number} bCmd
             * @param {number} bHead
             * @param {number} c
             * @param {number} h
             * @param {number} r
             * @param {number} n
             */
            FDC.prototype.pushResults = function(drive, bCmd, bHead, c, h, r, n)
            {
                this.beginResult();
                this.pushST0(drive);
                this.pushST1(drive);
                this.pushST2(drive);
                /*
                 * NOTE: I used to set the following C/H/R/N results using the values that advanceSector() had "advanced"
                 * them to, which seemed logical but was technically incorrect.  For non-multi-track reads, they should match
                 * the programmed C/H/R/N values, except when EOT has been reached, in which case C = C + 1 and R = 1.
                 *
                 * For multi-track, the LSB of H should be complemented whenever EOT has been reached, which I "informally"
                 * detect by testing if the drive's current bCylinder and/or bHead positions advanced to a new cylinder or head,
                 * and apparently, C should never be advanced if H was initially 0.
                 *
                 * I don't do strict EOT comparisons here or elsewhere, because it allows the controller to work with a wider
                 * range of disks (eg, "fake" XDF disk images that contain 23 512-byte sectors/track).
                 */
                var i = 0;
                if (c != drive.bCylinder || h != drive.bHead) {
                    i = r = 1;
                }
                if (bCmd & FDC.REG_DATA.CMD.MT) {
                    h ^= i;
                    if (!bHead) i = 0;
                }
                c += i;
                this.pushResult(c, FDC.TERMS.C);                // formerly drive.bCylinder
                this.pushResult(h, FDC.TERMS.H);                // formerly drive.bHead
                this.pushResult(r, FDC.TERMS.R);                // formerly drive.bSector
                this.pushResult(n, FDC.TERMS.N);
            };
            
            /**
             * popCmd(name)
             *
             * @this {FDC}
             * @param {string|undefined} [name]
             * @return {number}
             */
            FDC.prototype.popCmd = function(name)
            {
                this.assert((!this.regDataIndex || name !== undefined) && this.regDataIndex < this.regDataTotal);
                var bCmd = this.regDataArray[this.regDataIndex];
                if (DEBUG && this.messageEnabled(Messages.PORT | Messages.FDC)) {
                    var bCmdMasked = bCmd & FDC.REG_DATA.CMD.MASK;
                    if (!name && !this.regDataIndex && FDC.aCmdInfo[bCmdMasked]) name = FDC.aCmdInfo[bCmdMasked].name;
                    this.printMessage("FDC.CMD[" + (name || this.regDataIndex) + "]: " + str.toHexByte(bCmd), true);
                }
                this.regDataIndex++;
                return bCmd;
            };
            
            /**
             * popHLT()
             *
             * NOTE: This byte is actually a combination of HLT (Head Load Time) and ND (Non-DMA Mode)
             *
             * @this {FDC}
             */
            FDC.prototype.popHLT = function()
            {
                this.popCmd(FDC.TERMS.HLT);
             // this.nHLT = this.popCmd(FDC.TERMS.HLT);
            };
            
            /**
             * popSRT()
             *
             * NOTE: This byte is actually a combination of SRT (Step Rate Time) and HUT (Head Unload Time)
             *
             * @this {FDC}
             */
            FDC.prototype.popSRT = function()
            {
                this.popCmd(FDC.TERMS.SRT);
             // this.nSRT = this.popCmd(FDC.TERMS.SRT);
            };
            
            /**
             * beginResult()
             *
             * @this {FDC}
             */
            FDC.prototype.beginResult = function()
            {
                this.regDataIndex = this.regDataTotal = 0;
            };
            
            /**
             * pushResult(bResult, name)
             *
             * @this {FDC}
             * @param {number} bResult
             * @param {string|undefined} [name]
             */
            FDC.prototype.pushResult = function(bResult, name)
            {
                if (DEBUG && this.messageEnabled(Messages.PORT | Messages.FDC)) {
                    this.printMessage("FDC.RES[" + (name || this.regDataTotal) + "]: " + str.toHexByte(bResult), true);
                }
                this.regDataArray[this.regDataTotal++] = bResult;
            };
            
            /**
             * pushST0(drive)
             *
             * @this {FDC}
             * @param {Object} drive
             */
            FDC.prototype.pushST0 = function(drive)
            {
                this.pushResult(drive.iDrive | (drive.bHead << 2) | (drive.resCode & FDC.REG_DATA.RES.ST0), FDC.TERMS.ST0);
            };
            
            /**
             * pushST1(drive)
             *
             * @this {FDC}
             * @param {Object} drive
             */
            FDC.prototype.pushST1 = function(drive)
            {
                this.pushResult((drive.resCode & FDC.REG_DATA.RES.ST1) >>> 8, FDC.TERMS.ST1);
            };
            
            /**
             * pushST2(drive)
             *
             * @this {FDC}
             * @param {Object} drive
             */
            FDC.prototype.pushST2 = function(drive)
            {
                this.pushResult((drive.resCode & FDC.REG_DATA.RES.ST2) >>> 16, FDC.TERMS.ST2);
            };
            
            /**
             * pushST3(drive)
             *
             * @this {FDC}
             * @param {Object} drive
             */
            FDC.prototype.pushST3 = function(drive)
            {
                this.pushResult((drive.resCode & FDC.REG_DATA.RES.ST3) >>> 24, FDC.TERMS.ST3);
            };
            
            /**
             * dmaRead(drive, b, done)
             *
             * @this {FDC}
             * @param {Object} drive
             * @param {number} b
             * @param {function(number,boolean)} done
             */
            FDC.prototype.dmaRead = function(drive, b, done)
            {
                if (b === undefined || b < 0) {
                    this.readData(drive, done);
                    return;
                }
                /*
                 * The DMA controller should be ASKING for data, not GIVING us data; this suggests an internal DMA miscommunication
                 */
                if (DEBUG) this.printMessage("dmaRead(): invalid DMA acknowledgement");
                done(-1, false);
            };
            
            /**
             * dmaWrite(drive, b)
             *
             * @this {FDC}
             * @param {Object} drive
             * @param {number} b
             * @return {number}
             */
            FDC.prototype.dmaWrite = function(drive, b)
            {
                if (b !== undefined && b >= 0)
                    return this.writeData(drive, b);
                /*
                 * The DMA controller should be GIVING us data, not ASKING for data; this suggests an internal DMA miscommunication
                 */
                if (DEBUG) this.printMessage("dmaWrite(): invalid DMA acknowledgement");
                return -1;
            };
            
            /**
             * dmaFormat(drive, b)
             *
             * @this {FDC}
             * @param {Object} drive
             * @param {number} b
             * @returns {number}
             */
            FDC.prototype.dmaFormat = function(drive, b)
            {
                if (b !== undefined && b >= 0)
                    return this.writeFormat(drive, b);
                /*
                 * The DMA controller should be GIVING us data, not ASKING for data; this suggests an internal DMA miscommunication
                 */
                if (DEBUG) this.printMessage("dmaFormat(): invalid DMA acknowledgement");
                return -1;
            };
            
            /**
             * doRead(drive)
             *
             * @this {FDC}
             * @param {Object} drive
             */
            FDC.prototype.doRead = function(drive)
            {
                /*
                 * With only NOT_READY and INCOMPLETE set, an empty drive causes DOS to report "General Failure";
                 * with the addition of NO_DATA, DOS reports "Sector not found".  The traditional "Drive not ready"
                 * error message is not triggered by anything we return here, but simply by BIOS commands timing out.
                 */
                drive.resCode = FDC.REG_DATA.RES.NOT_READY | FDC.REG_DATA.RES.INCOMPLETE;
            
                if (drive.disk) {
                    if (DEBUG && this.messageEnabled()) {
                        this.printMessage("FDC.doRead(CHS=" + drive.bCylinder + ':' + drive.bHead + ':' + drive.bSector + ",PBA=" + (drive.bCylinder * (drive.disk.nHeads * drive.disk.nSectors) + drive.bHead * drive.disk.nSectors + drive.bSector-1) + ')');
                    }
                    drive.sector = null;
                    drive.resCode = FDC.REG_DATA.RES.NONE;
                    if (this.chipset) {
                        this.chipset.connectDMA(ChipSet.DMA_FDC, this, 'dmaRead', drive);
                        this.chipset.requestDMA(ChipSet.DMA_FDC);
                    }
                }
            };
            
            /**
             * doWrite(drive)
             *
             * @this {FDC}
             * @param {Object} drive
             */
            FDC.prototype.doWrite = function(drive)
            {
                drive.resCode = FDC.REG_DATA.RES.NOT_READY | FDC.REG_DATA.RES.INCOMPLETE;
            
                if (drive.disk) {
                    if (DEBUG && this.messageEnabled()) {
                        this.printMessage("FDC.doWrite(CHS=" + drive.bCylinder + ':' + drive.bHead + ':' + drive.bSector + ",PBA=" + (drive.bCylinder * (drive.disk.nHeads * drive.disk.nSectors) + drive.bHead * drive.disk.nSectors + drive.bSector-1) + ')');
                    }
                    if (drive.disk.fWriteProtected) {
                        drive.resCode = FDC.REG_DATA.RES.NOT_WRITABLE | FDC.REG_DATA.RES.INCOMPLETE;
                        return;
                    }
                    drive.sector = null;
                    drive.resCode = FDC.REG_DATA.RES.NONE;
                    if (this.chipset) {
                        this.chipset.connectDMA(ChipSet.DMA_FDC, this, 'dmaWrite', drive);
                        this.chipset.requestDMA(ChipSet.DMA_FDC);
                    }
                }
            };
            
            /**
             * doFormat(drive)
             *
             * drive is initialized by doCmd() to the following extent:
             *
             *      drive.bHead (ignored)
             *      drive.nBytes (bytes/sector)
             *      drive.bSectorEnd (sectors/track)
             *      drive.bFiller (fill byte)
             *
             * and we expect the DMA controller to provide C, H, R and N (ie, 4 bytes) for each sector to be formatted.
             *
             * @this {FDC}
             * @param {Object} drive
             */
            FDC.prototype.doFormat = function(drive)
            {
                drive.resCode = FDC.REG_DATA.RES.NOT_READY | FDC.REG_DATA.RES.INCOMPLETE;
            
                if (drive.disk) {
                    drive.sector = null;
                    drive.resCode = FDC.REG_DATA.RES.NONE;
                    if (this.chipset) {
                        drive.cbFormat = 0;
                        drive.abFormat = new Array(4);
                        drive.bFormatting = true;
                        drive.cSectorsFormatted = 0;
                        this.chipset.connectDMA(ChipSet.DMA_FDC, this, 'dmaFormat', drive);
                        this.chipset.requestDMA(ChipSet.DMA_FDC);
                        drive.bFormatting = false;
                    }
                }
            };
            
            /**
             * readData(drive, done)
             *
             * The following drive properties must have been setup prior to our first call:
             *
             *      drive.bHead
             *      drive.bCylinder
             *      drive.bSector
             *      drive.sector (initialized to null)
             *
             * On the first readData() request, since drive.sector will be null, we ask the Disk object to look
             * up the first sector of the request.  We then ask the Disk for bytes from that sector until the sector
             * is exhausted, and then we look up the next sector and continue the process.
             *
             * NOTE: Since the FDC isn't aware of the extent of the transfer, all readData() can do is return bytes
             * until the current track (or, in the case of a multi-track request, the current cylinder) has been exhausted.
             *
             * TODO: Research the requirements, if any, for multi-track I/O and determine what else needs to be done.
             *
             * @this {FDC}
             * @param {Object} drive
             * @param {function(number,boolean,Object,number)} done (number is next available byte from drive, or -1 if no more bytes available)
             */
            FDC.prototype.readData = function(drive, done)
            {
                var b = -1;
                var obj = null, off = 0;    // these variables are purely for BACKTRACK purposes
            
                if (!drive.resCode && drive.disk) {
                    do {
                        if (drive.sector) {
                            off = drive.ibSector;
                            if ((b = drive.disk.read(drive.sector, drive.ibSector++)) >= 0) {
                                obj = drive.sector;
                                break;
                            }
                        }
                        /*
                         * Locate the next sector, and then try reading again.
                         */
                        drive.sector = drive.disk.seek(drive.bCylinder, drive.bHead, drive.bSector);
                        if (!drive.sector) {
                            drive.resCode = FDC.REG_DATA.RES.NO_DATA | FDC.REG_DATA.RES.INCOMPLETE;
                            break;
                        }
                        drive.ibSector = 0;
                        /*
                         * We "pre-advance" bSector et al now, instead of waiting to advance it right before the seek().
                         * This allows the initial call to readData() to perform a seek without triggering an unwanted advance.
                         */
                        this.advanceSector(drive);
                    } while (true);
                }
                done(b, false, obj, off);
            };
            
            /**
             * writeData(drive, b)
             *
             * The following drive properties must have been setup prior to our first call:
             *
             *      drive.bHead
             *      drive.bCylinder
             *      drive.bSector
             *      drive.sector (initialized to null)
             *
             * On the first writeData() request, since drive.sector will be null, we ask the Disk object to look
             * up the first sector of the request.  We then send the Disk bytes for that sector until the sector
             * is full, and then we look up the next sector and continue the process.
             *
             * NOTE: Since the FDC isn't aware of the extent of the transfer, all writeData() can do is accept bytes
             * until the current track (or, in the case of a multi-track request, the current cylinder) has been exhausted.
             *
             * TODO: Research the requirements, if any, for multi-track I/O and determine what else needs to be done.
             *
             * @this {FDC}
             * @param {Object} drive
             * @param {number} b containing next byte to write
             * @return {number} (b unchanged; return -1 if command should be terminated)
             */
            FDC.prototype.writeData = function(drive, b)
            {
                if (drive.resCode || !drive.disk) return -1;
                do {
                    if (drive.sector) {
                        if (drive.disk.write(drive.sector, drive.ibSector++, b))
                            break;
                    }
                    /*
                     * Locate the next sector, and then try writing again.
                     */
                    drive.sector = drive.disk.seek(drive.bCylinder, drive.bHead, drive.bSector);
                    if (!drive.sector) {
                        /*
                         * TODO: Determine whether this should be FDC.REG_DATA.RES.CRC_ERROR or FDC.REG_DATA.RES.DATA_FIELD
                         */
                        drive.resCode = FDC.REG_DATA.RES.CRC_ERROR | FDC.REG_DATA.RES.INCOMPLETE;
                        b = -1;
                        break;
                    }
                    drive.ibSector = 0;
                    /*
                     * We "pre-advance" bSector et al now, instead of waiting to advance it right before the seek().
                     * This allows the initial call to writeData() to perform a seek without triggering an unwanted advance.
                     */
                    this.advanceSector(drive);
                } while (true);
                return b;
            };
            
            /**
             * advanceSector(drive)
             *
             * This increments the sector number; when the sector number reaches drive.nDiskSectors on the current track, we
             * increment drive.bHead and reset drive.bSector, and when drive.bHead reaches drive.nDiskHeads, we reset drive.bHead
             * and increment drive.bCylinder.
             *
             * @this {FDC}
             * @param {Object} drive
             */
            FDC.prototype.advanceSector = function(drive)
            {
                this.assert(drive.bCylinder < drive.nDiskCylinders);
                drive.bSector++;
                var bSectorStart = 1;
                if (drive.bSector >= drive.nDiskSectors + bSectorStart) {
                    drive.bSector = bSectorStart;
                    drive.bHead++;
                    if (drive.bHead >= drive.nDiskHeads) {
                        drive.bHead = 0;
                        drive.bCylinder++;
                    }
                }
            };
            
            /**
             * writeFormat(drive, b)
             *
             * @this {FDC}
             * @param {Object} drive
             * @param {number} b containing a format command byte
             * @return {number} (b if successful, -1 if command should be terminated)
             */
            FDC.prototype.writeFormat = function(drive, b)
            {
                if (drive.resCode) return -1;
                drive.abFormat[drive.cbFormat++] = b;
                if (drive.cbFormat == drive.abFormat.length) {
                    drive.bCylinder = drive.abFormat[0];    // C
                    drive.bHead = drive.abFormat[1];        // H
                    drive.bSector = drive.abFormat[2];      // R
                    drive.nBytes = 128 << drive.abFormat[3];// N (0 => 128, 1 => 256, 2 => 512, 3 => 1024)
                    drive.cbFormat = 0;
                    if (DEBUG && this.messageEnabled()) {
                        this.printMessage("writeFormat(head=" + str.toHexByte(drive.bHead) + ",cyl=" + str.toHexByte(drive.bCylinder) + ",sec=" + str.toHexByte(drive.bSector) + ",len=" + str.toHexWord(drive.nBytes) + ")");
                    }
                    for (var i = 0; i < drive.nBytes; i++) {
                        if (this.writeData(drive, drive.bFiller) < 0) {
                            return -1;
                        }
                    }
                    drive.cSectorsFormatted++;
                }
                if (drive.cSectorsFormatted >= drive.bSectorEnd) b = -1;
                return b;
            };
            
            /*
             * Port input notification table
             *
             * TODO: Even though port 0x3F7 was not present on controllers prior to MODEL_5170, I'm taking the easy
             * way out and always emulating it.  So, consider an FDC parameter to disable that feature for stricter compatibility.
             */
            FDC.aPortInput = {
                0x3F4: FDC.prototype.inFDCStatus,
                0x3F5: FDC.prototype.inFDCData,
                0x3F7: FDC.prototype.inFDCInput
            };
            
            /*
             * Port output notification table
             *
             * TODO: Even though port 0x3F7 was not present on controllers prior to MODEL_5170, I'm taking the easy
             * way out and always emulating it.  So, consider an FDC parameter to disable that feature for stricter compatibility.
             */
            FDC.aPortOutput = {
                0x3F2: FDC.prototype.outFDCOutput,
                0x3F5: FDC.prototype.outFDCData,
                0x3F7: FDC.prototype.outFDCControl
            };
            
            /**
             * FDC.init()
             *
             * This function operates on every HTML element of class "fdc", extracting the
             * JSON-encoded parameters for the FDC constructor from the element's "data-value"
             * attribute, invoking the constructor to create a FDC component, and then binding
             * any associated HTML controls to the new component.
             */
            FDC.init = function() {
                var aeFDC = Component.getElementsByClass(window.document, PCJSCLASS, "fdc");
                for (var iFDC = 0; iFDC < aeFDC.length; iFDC++) {
                    var eFDC = aeFDC[iFDC];
                    var parmsFDC = Component.getComponentParms(eFDC);
                    var fdc = new FDC(parmsFDC);
                    Component.bindComponentControls(fdc, eFDC, PCJSCLASS);
                }
            };
            
            /*
             * Initialize every Floppy Drive Controller (FDC) module on the page.
             */
            web.onInit(FDC.init);
            
            if (typeof module !== 'undefined') module.exports = FDC;
            
          • hdc.js
            /**
             * @fileoverview Implements the PCjs Hard Drive Controller (HDC) component.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Nov-26
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var str         = require("../../shared/lib/strlib");
                var web         = require("../../shared/lib/weblib");
                var DiskAPI     = require("../../shared/lib/diskapi");
                var Component   = require("../../shared/lib/component");
                var Messages    = require("./messages");
                var ChipSet     = require("./chipset");
                var Disk        = require("./disk");
                var State       = require("./state");
            }
            
            /**
             * HDC(parmsHDC)
             *
             * The HDC component simulates an STC-506/412 interface to an IBM-compatible fixed disk drive. The first
             * such drive was a 10Mb 5.25-inch drive containing two platters and 4 heads. Data spanned 306 cylinders
             * for a total of 1224 tracks, with 17 sectors/track and 512 bytes/sector.  Support has since been expanded
             * to include the original PC AT Western Digital controller.
             *
             * HDC supports the following component-specific properties:
             *
             *      drives: an array of driveConfig objects, each containing 'name', 'path', 'size' and 'type' properties
             *      type:   either 'xt' (for the PC XT Xebec controller) or 'at' (for the PC AT Western Digital controller)
             *
             * The 'type' parameter defaults to 'xt'.  All ports for the PC XT controller are referred to as XTC ports,
             * and similarly, all PC AT controller ports are referred to as ATC ports.
             *
             * If 'path' is empty, a scratch disk image is created; otherwise, we make a note of the path, but we will NOT
             * pre-load it like we do for floppy disk images.
             *
             * My current plan is to read all disk data on-demand, keeping a cache of what we've read, and possibly adding
             * some read-ahead as well. Any portions of the disk image that are written before being read will never be read.
             *
             * TRIVIA: On p.1-179 of the PC XT Technical Reference Manual (revised APR83), it reads:
             *
             *      "WARNING: The last cylinder on the fixed disk drive is reserved for diagnostic use.
             *      Diagnostic write tests will destroy any data on this cylinder."
             *
             * Does FDISK insure that the last cylinder is reserved?  I'm sure we'll eventually find out.
             *
             * @constructor
             * @extends Component
             * @param {Object} parmsHDC
             */
            function HDC(parmsHDC) {
            
                Component.call(this, "HDC", parmsHDC, HDC, Messages.HDC);
            
                this['dmaRead'] = this.dmaRead;
                this['dmaWrite'] = this.dmaWrite;
                this['dmaWriteBuffer'] = this.dmaWriteBuffer;
                this['dmaWriteFormat'] = this.dmaWriteFormat;
            
                this.aDriveConfigs = [];
            
                if (parmsHDC['drives']) {
                    try {
                        /*
                         * The most likely source of any exception will be right here, where we're parsing
                         * the JSON-encoded drive data.
                         */
                        this.aDriveConfigs = eval("(" + parmsHDC['drives'] + ")");
                        /*
                         * Nothing more to do with aDriveConfigs now. initController() and autoMount() (if there are
                         * any disk image "path" properties to process) will take care of the rest.
                         */
                    } catch (e) {
                        Component.error("HDC drive configuration error: " + e.message + " (" + parmsHDC['drives'] + ")");
                    }
                }
            
                /*
                 * Set fATC (AT Controller flag) according to the 'type' parameter.  This in turn determines other
                 * defaults.  For example, the default XT drive type is 3 (for a 10Mb disk drive), whereas the default
                 * AT drive type is 2 (for a 20Mb disk drive).
                 */
                this.fATC = (parmsHDC['type'] == "at");
                this.iHDC = this.fATC? 1 : 0;
                this.iDriveTypeDefault = this.fATC? 2 : 3;
            
                /*
                 * The remainder of HDC initialization now takes place in our initBus() handler
                 */
            }
            
            Component.subclass(HDC);
            
            /*
             * HDC defaults, in case drive parameters weren't specified
             */
            HDC.DEFAULT_DRIVE_NAME = "Hard Drive";
            
            /*
             * Each of the following DriveType entries contain (up to) 4 values:
             *
             *      [0]: total cylinders
             *      [1]: total heads
             *      [2]: total sectors/tracks (optional; default is 17)
             *      [3]: total bytes/sector (optional; default is 512)
             *
             * verifyDrive() attempts to confirm that these values agree with the programmed drive characteristics.
             *
             * NOTE: For the record, in the world of PCjs, 1Kb is 1 kilobyte aka 1,024 bytes (NOT 1,000), and 1Mb
             * is 1 megabyte aka 1024*1024 or 1,048,576 bytes (NOT 1,000,000).
             *
             * Apparently, in 1998, it was decided that a kilobyte should be 1,000 bytes and a megabyte should be
             * 1,000,000 bytes, and that if you really meant 2^10 (1,024) or 2^20 (1,048,576), you should use "kibibyte"
             * (KiB) or "mebibyte" (MiB) instead.  Well, since PCjs simulates machines that pre-date 1998, I feel
             * perfectly justified in retaining my original understanding of Kb and Mb and completely ignoring the
             * existence of KiB and MiB.
             *
             * Besides, I suspect these changes were nothing more than a self-serving push by hard disk manufacturers,
             * who wanted to exaggerate their disk capacities by treating Mb as 1,000,000 bytes.
             *
             * Also, I capitalize only the first letter of units like Kb and Mb, because kilobyte and megabyte are
             * single words; if they were two words, or even a pair of hyphenated words, then I might -- but they're not.
             */
            HDC.aDriveTypes = [
                {
                    0x00: [306, 2],
                    0x01: [375, 8],
                    0x02: [306, 6],
                    0x03: [306, 4]          // 10Mb (10.16Mb: 306*4*17*512 or 10,653,696 bytes) (default XTC drive type)
                },
                /*
                 * Sadly, drive types differ across controller models (XTC drive types don't match ATC drive types),
                 * so aDriveTypes must first be indexed by a controller index (this.iHDC).
                 *
                 * The following is a more complete description of the drive types supported by the MODEL_5170, where C is
                 * Cylinders, H is Heads, WP is Write Pre-Comp, and LZ is Landing Zone (in practice, we don't need WP or LZ).
                 *
                 * Type    C    H   WP   LZ
                 * ----  ---   --  ---  ---
                 *   1   306    4  128  305
                 *   2   615    4  300  615
                 *   3   615    6  300  615
                 *   4   940    8  512  940
                 *   5   940    6  512  940
                 *   6   615    4   no  615
                 *   7   462    8  256  511
                 *   8   733    5   no  733
                 *   9   900   15  no8  901
                 *  10   820    3   no  820
                 *  11   855    5   no  855
                 *  12   855    7   no  855
                 *  13   306    8  128  319
                 *  14   733    7   no  733
                 *  15  (reserved--all zeros)
                 */
                {
                    0x01: [306, 4],         // 10Mb (10.16Mb:  306*4*17*512 or 10,653,696 bytes)
                    0x02: [615, 4],         // 20Mb (20.42Mb:  615*4*17*512 or 21,411,840 bytes) (default ATC drive type)
                    0x03: [615, 6],         // 31Mb (30.63Mb:  615*6*17*512 or 32,117,760 bytes)
                 // 0x04: [940, 8],         // 62Mb (62.42Mb:  940*8*17*512 or 65,454,080 bytes)
                    0x04: [1023,8],         // 68Mb (67.93Mb: 1023*8*17*512 or 71,233,536 bytes) (this is what a type 4 drive yields on a Compaq DeskPro 386)
                    0x05: [940, 6],         // 47Mb (46.82Mb:  940*6*17*512 or 49,090,560 bytes)
                    0x06: [615, 4],
                    0x07: [462, 8],
                    0x08: [733, 5],
                    0x09: [900,15],
                    0x0A: [820, 3],
                    0x0B: [855, 5],
                    0x0C: [855, 7],
                    0x0D: [306, 8],
                    0x0E: [733, 7]
                }
            ];
            
            /*
             * ATC (AT Controller) Registers
             *
             * The "IBM Personal Computer AT Fixed Disk and Diskette Drive Adapter", aka the HFCOMBO card, contains what we refer
             * to here as the ATC (AT Controller).  Even though that card contains both Fixed Disk and Diskette Drive controllers,
             * this component (HDC) still deals only with the "Fixed Disk" portion.  Fortunately, the "Diskette Drive Adapter"
             * portion of the card is compatible with the existing FDC component, so that component continues to be responsible
             * for all diskette operations.
             *
             * ATC ports default to their primary addresses; secondary port addresses are 0x80 lower (eg, 0x170 instead of 0x1F0).
             *
             * It's important to know that the MODEL_5170 BIOS has a special relationship with the "Combo Hard File/Diskette
             * (HFCOMBO) Card" (see @F000:144C).  Initially, the ChipSet component intercepted reads for HFCOMBO's STATUS port
             * and returned the BUSY bit clear to reduce boot time; however, it turned out that was also a prerequisite for the
             * BIOS to write test patterns to the CYLLO port and set the "DUAL" bit (bit 0) of the "HFCNTRL" byte at 40:8Fh if
             * those CYLLO operations succeeded (now that the HDC is "ATC-aware", those ChipSet port intercepts have been removed).
             *
             * Without the "DUAL" bit set, when it came time later to report the diskette drive type, the "DISK_TYPE" function
             * (@F000:273D) would branch to one of two almost-identical blocks of code -- specifically, a block that disallowed
             * diskette drive types >= 2 (ChipSet.CMOS.FDRIVE.FD360) instead of >= 3 (ChipSet.CMOS.FDRIVE.FD1200).
             *
             * In other words, the "Fixed Disk" portion of the HFCOMBO controller has to be present and operational if the user
             * wants to use high-capacity (80-track) diskettes with "Diskette Drive" portion of the controller.  This may not be
             * immediately obvious to anyone creating a 5170 machine configuration with the FDC component but no HDC component.
             *
             * TODO: Investigate what a MODEL_5170 can do, if anything, with diskettes if an "HFCOMBO card" was NOT installed
             * (eg, was there Diskette-only Controller that could be installed, and if so, did it support high-capacity diskettes?)
             * Also, consider making the FDC component able to detect when the HDC is missing and provide the same minimal HFCOMBO
             * port intercepts that ChipSet once provided (this is not a compatibility requirement, just a usability improvement).
             */
            HDC.ATC = {
                DATA:   { PORT: 0x1F0},     // no register (read-write)
                DIAG:   {                   // this.regError (read-only)
                    PORT:       0x1F1,
                    NO_ERROR:    0x01,
                    CTRL_ERROR:  0x02,
                    SEC_ERROR:   0x03,
                    ECC_ERROR:   0x04,
                    PROC_ERROR:  0x05
                },
                ERROR: {                    // this.regError (read-only)
                    PORT:       0x1F1,
                    NONE:        0x00,
                    NO_DAM:      0x01,      // Data Address Mark (DAM) not found
                    NO_TRK0:     0x02,      // Track 0 not detected
                    CMD_ABORT:   0x04,      // Aborted Command
                    NO_CHS:      0x10,      // ID field with the specified C:H:S not found
                    ECC_ERR:     0x40,      // Data ECC Error
                    BAD_BLOCK:   0x80       // Bad Block Detect
                },
                WPREC:  { PORT: 0x1F1},     // this.regWPreC (write-only)
                SECCNT: { PORT: 0x1F2},     // this.regSecCnt (read-write; 0 implies a 256-sector request)
                SECNUM: { PORT: 0x1F3},     // this.regSecNum (read-write)
                CYLLO:  { PORT: 0x1F4},     // this.regCylLo (read-write; all 8 bits are used)
                CYLHI:  {                   // this.regCylHi (read-write; only bits 0-1 are used, for a total of 10 bits, or 1024 max cylinders)
                    PORT:       0x1F5,
                    MASK:        0x03
                },
                DRVHD:  {                   // this.regDrvHd (read-write)
                    PORT:       0x1F6,
                    HEAD_MASK:   0x0F,      // set this to the max number of heads before issuing a SET PARAMETERS command
                    DRIVE_MASK:  0x10,
                    SET_MASK:    0xE0,
                    SET_BITS:    0xA0       // for whatever reason, these bits must always be set
                },
                STATUS: {                   // this.regStatus (read-only; reading clears IRQ.ATC)
                    PORT:       0x1F7,
                    ERROR:       0x01,      // set when the previous command ended in an error; one or more bits are set in the ERROR register (the next command to the controller resets the ERROR bit)
                    INDEX:       0x02,      // set once for every revolution of the disk
                    CORRECTED:   0x04,
                    DATA_REQ:    0x08,      // indicates that "the sector buffer requires servicing during a Read or Write command. If either bit 7 (BUSY) or this bit is active, a command is being executed. Upon receipt of any command, this bit is reset."
                    SEEK_OK:     0x10,      // seek operation complete
                    WFAULT:      0x20,      // write fault
                    READY:       0x40,      // if this is set (along with the SEEK_OK bit), the drive is ready to read/write/seek again
                    BUSY:        0x80       // if this is set, no other STATUS bits are valid
                },
                COMMAND: {                  // this.regCommand (write-only)
                    PORT:       0x1F7,
                    RESTORE:     0x10,      // low nibble x 500us equal stepping rate (except for 0, which corresponds to 35us) (aka RECALIBRATE)
                    READ_DATA:   0x20,      // also supports NO_RETRIES and WITH_ECC
                    WRITE_DATA:  0x30,      // also supports NO_RETRIES and WITH_ECC
                    READ_VERF:   0x40,      // also supports NO_RETRIES
                    FORMAT_TRK:  0x50,      // TODO
                    SEEK:        0x70,      // low nibble x 500us equal stepping rate (except for 0, which corresponds to 35us)
                    DIAGNOSE:    0x90,
                    SETPARMS:    0x91,
                    NO_RETRIES:  0x01,
                    WITH_ECC:    0x02,
                    MASK:        0xF0
                },
                FDR: {                      // this.regFDR
                    PORT:       0x3F6,
                    INT_DISABLE: 0x02,      // a logical 0 enables fixed disk interrupts
                    RESET:       0x04,      // a logical 1 enables reset fixed disk function
                    HS3:         0x08,      // a logical 1 enables head select 3 (a logical 0 enables reduced write current)
                    RESERVED:    0xF1
                }
            };
            
            /*
             * XTC (XT Controller) Registers
             */
            HDC.XTC = {
                /*
                 * XTC Data Register (0x320, read-write)
                 *
                 * Writes to this register are discussed below; see HDC Commands.
                 *
                 * Reads from this register after a command has been executed retrieve a "status byte",
                 * which must NOT be confused with the Status Register (see below).  This data "status byte"
                 * contains only two bits of interest: XTC.DATA.STATUS.ERROR and XTC.DATA.STATUS.UNIT.
                 */
                DATA: {
                    PORT:          0x320,   // port address
                    STATUS: {
                        OK:         0x00,   // no error
                        ERROR:      0x02,   // error occurred during command execution
                        UNIT:       0x20    // logical unit number of the drive
                    },
                    /*
                     * XTC Commands, as issued to XTC_DATA
                     *
                     * Commands are multi-byte sequences sent to XTC_DATA, starting with a XTC_DATA.CMD byte,
                     * and followed by 5 more bytes, for a total of 6 bytes, which collectively are called a
                     * Device Control Block (DCB).  Not all commands use all 6 bytes, but all 6 bytes must be present;
                     * unused bytes are simply ignored.
                     *
                     *      XTC_DATA.CMD    (3-bit class code, 5-bit operation code)
                     *      XTC_DATA.HEAD   (1-bit drive number, 5-bit head number)
                     *      XTC_DATA.CLSEC  (upper bits of 10-bit cylinder number, 6-bit sector number)
                     *      XTC_DATA.CH     (lower bits of 10-bit cylinder number)
                     *      XTC_DATA.COUNT  (8-bit interleave or block count)
                     *      XTC_DATA.CTRL   (8-bit control field)
                     *
                     * One command, HDC.XTC.DATA.CMD.INIT_DRIVE, must include 8 additional bytes following the DCB:
                     *
                     *      maximum number of cylinders (high)
                     *      maximum number of cylinders (low)
                     *      maximum number of heads
                     *      start reduced write current cylinder (high)
                     *      start reduced write current cylinder (low)
                     *      start write precompensation cylinder (high)
                     *      start write precompensation cylinder (low)
                     *      maximum ECC data burst length
                     *
                     * Note that the 3 word values above are stored in "big-endian" format (high byte followed by low byte),
                     * rather than the more typical "little-endian" format (low byte followed by high byte).
                     */
                    CMD: {
                        TEST_READY:     0x00,       // Test Drive Ready
                        RECALIBRATE:    0x01,       // Recalibrate
                        REQUEST_SENSE:  0x03,       // Request Sense Status
                        FORMAT_DRIVE:   0x04,       // Format Drive
                        READ_VERF:      0x05,       // Read Verify
                        FORMAT_TRK:     0x06,       // Format Track
                        FORMAT_BAD:     0x07,       // Format Bad Track
                        READ_DATA:      0x08,       // Read
                        WRITE_DATA:     0x0A,       // Write
                        SEEK:           0x0B,       // Seek
                        INIT_DRIVE:     0x0C,       // Initialize Drive Characteristics
                        READ_ECC_BURST: 0x0D,       // Read ECC Burst Error Length
                        READ_BUFFER:    0x0E,       // Read Data from Sector Buffer
                        WRITE_BUFFER:   0x0F,       // Write Data to Sector Buffer
                        RAM_DIAGNOSTIC: 0xE0,       // RAM Diagnostic
                        DRV_DIAGNOSTIC: 0xE3,       // HDC BIOS: CHK_DRV_CMD
                        CTL_DIAGNOSTIC: 0xE4,       // HDC BIOS: CNTLR_DIAG_CMD
                        READ_LONG:      0xE5,       // HDC BIOS: RD_LONG_CMD
                        WRITE_LONG:     0xE6        // HDC BIOS: WR_LONG_CMD
                    },
                    ERR: {
                        /*
                         * HDC error conditions, as returned in byte 0 of the (4) bytes returned by the Request Sense Status command
                         */
                        NONE:           0x00,
                        NO_INDEX:       0x01,       // no index signal detected
                        SEEK_INCOMPLETE:0x02,       // no seek-complete signal
                        WRITE_FAULT:    0x03,
                        NOT_READY:      0x04,       // after the controller selected the drive, the drive did not respond with a ready signal
                        NO_TRACK:       0x06,       // after stepping the max number of cylinders, the controller did not receive the track 00 signal from the drive
                        STILL_SEEKING:  0x08,
                        ECC_ID_ERROR:   0x10,
                        ECC_DATA_ERROR: 0x11,
                        NO_ADDR_MARK:   0x12,
                        NO_SECTOR:      0x14,
                        BAD_SEEK:       0x15,       // seek error: the cylinder and/or head address did not compare with the expected target address
                        ECC_CORRECTABLE:0x18,       // correctable data error
                        BAD_TRACK:      0x19,
                        BAD_CMD:        0x20,
                        BAD_DISK_ADDR:  0x21,
                        RAM:            0x30,
                        CHECKSUM:       0x31,
                        POLYNOMIAL:     0x32,
                        MASK:           0x3F
                    },
                    SENSE: {
                        ADDR_VALID:     0x80
                    }
                },
                /*
                 * XTC Status Register (0x321, read-only)
                 *
                 * WARNING: The IBM Technical Reference Manual *badly* confuses the XTC_DATA "status byte" (above)
                 * that the controller sends following an HDC.XTC.DATA.CMD operation with the Status Register (below).
                 * In fact, it's so badly confused that it completely fails to document any of the Status Register
                 * bits below; I'm forced to guess at their meanings from the HDC BIOS listing.
                 */
                STATUS: {
                    PORT:          0x321,   // port address
                    NONE:           0x00,
                    REQ:            0x01,   // HDC BIOS: request bit
                    IOMODE:         0x02,   // HDC BIOS: mode bit (GUESS: set whenever XTC_DATA contains a response?)
                    BUS:            0x04,   // HDC BIOS: command/data bit (GUESS: set whenever XTC_DATA ready for request?)
                    BUSY:           0x08,   // HDC BIOS: busy bit
                    INTERRUPT:      0x20    // HDC BIOS: interrupt bit
                }
            };
            
            /*
             * XTC Config Register (0x322, read-only)
             *
             * This register is used to read HDC card switch settings that defined the "Drive Type" for
             * drives 0 and 1.  SW[1],SW[2] (for drive 0) and SW[3],SW[4] (for drive 1) are set as follows:
             *
             *      ON,  ON     Drive Type 0   (306 cylinders, 2 heads)
             *      ON,  OFF    Drive Type 1   (375 cylinders, 8 heads)
             *      OFF, ON     Drive Type 2   (306 cylinders, 6 heads)
             *      OFF, OFF    Drive Type 3   (306 cylinders, 4 heads)
             */
            
            /*
             * HDC Command Sequences
             *
             * Unlike the FDC, all the HDC commands have fixed-length command request sequences (well, OK, except for
             * HDC.XTC.DATA.CMD.INIT_DRIVE) and fixed-length response sequences (well, OK, except for HDC.XTC.DATA.CMD.REQUEST_SENSE),
             * so a table of byte-lengths isn't much use, but having names for all the commands is still handy for debugging.
             */
            if (DEBUG) {
                HDC.aATCCommands = {
                    0x10: "Restore (Recalibrate)",
                    0x20: "Read",
                    0x30: "Write",
                    0x40: "Read Verify",
                    0x50: "Format Track",
                    0x70: "Seek",
                    0x90: "Diagnose",
                    0x91: "Set Parameters"
                };
                HDC.aXTCCommands = {
                    0x00: "Test Drive Ready",
                    0x01: "Recalibrate",
                    0x03: "Request Sense Status",
                    0x04: "Format Drive",
                    0x05: "Read Verify",
                    0x06: "Format Track",
                    0x07: "Format Bad Track",
                    0x08: "Read",
                    0x0A: "Write",
                    0x0B: "Seek",
                    0x0C: "Initialize Drive Characteristics",
                    0x0D: "Read ECC Burst Error Length",
                    0x0E: "Read Data from Sector Buffer",
                    0x0F: "Write Data to Sector Buffer",
                    0xE0: "RAM Diagnostic",
                    0xE3: "Drive Diagnostic",
                    0xE4: "Controller Diagnostic",
                    0xE5: "Read Long",
                    0xE6: "Write Long"
                };
            }
            
            /*
             * HDC BIOS interrupts, functions, and other parameters
             *
             * When the HDC BIOS overwrites the ROM BIOS INT 0x13 address, it saves the original INT 0x13 address
             * in the INT 0x40 vector.
             */
            HDC.BIOS = {
                INT_DISK:       0x13,
                INT_DISKETTE:   0x40
            };
            
            /*
             * NOTE: These are useful values for reference, but they're not actually used for anything at the moment.
             */
            HDC.BIOS.DISK_CMD = {
                RESET:          0x00,
                GET_STATUS:     0x01,
                READ_SECTORS:   0x02,
                WRITE_SECTORS:  0x03,
                VERIFY_SECTORS: 0x04,
                FORMAT_TRK:     0x05,
                FORMAT_BAD:     0x06,
                FORMAT_DRIVE:   0x07,
                GET_DRIVEPARMS: 0x08,
                SET_DRIVEPARMS: 0x09,
                READ_LONG:      0x0A,
                WRITE_LONG:     0x0B,
                SEEK:           0x0C,
                ALT_RESET:      0x0D,
                READ_BUFFER:    0x0E,
                WRITE_BUFFER:   0x0F,
                TEST_READY:     0x10,
                RECALIBRATE:    0x11,
                RAM_DIAGNOSTIC: 0x12,
                DRV_DIAGNOSTIC: 0x13,
                CTL_DIAGNOSTIC: 0x14
            };
            
            /**
             * setBinding(sHTMLType, sBinding, control)
             *
             * @this {HDC}
             * @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
             * @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "listDisks")
             * @param {Object} control is the HTML control DOM object (eg, HTMLButtonElement)
             * @return {boolean} true if binding was successful, false if unrecognized binding request
             */
            HDC.prototype.setBinding = function(sHTMLType, sBinding, control)
            {
                /*
                 * This is reserved for future use; for now, hard disk images can be specified during initialization only (no "hot-swapping")
                 */
                return false;
            };
            
            /**
             * initBus(cmp, bus, cpu, dbg)
             *
             * @this {HDC}
             * @param {Computer} cmp
             * @param {Bus} bus
             * @param {X86CPU} cpu
             * @param {Debugger} dbg
             */
            HDC.prototype.initBus = function(cmp, bus, cpu, dbg)
            {
                this.bus = bus;
                this.cpu = cpu;
                this.dbg = dbg;
                this.cmp = cmp;
            
                /*
                 * We need access to the ChipSet component, because we need to communicate with
                 * the PIC and DMA controller.
                 */
                this.chipset = cmp.getComponentByType("ChipSet");
            
                bus.addPortInputTable(this, this.fATC? HDC.aATCPortInput : HDC.aXTCPortInput);
                bus.addPortOutputTable(this, this.fATC? HDC.aATCPortOutput : HDC.aXTCPortOutput);
            
                cpu.addIntNotify(HDC.BIOS.INT_DISK, this, this.intBIOSDisk);
                cpu.addIntNotify(HDC.BIOS.INT_DISKETTE, this, this.intBIOSDiskette);
            
                /*
                 * The following code used to be performed in the HDC constructor, but now we need to wait for information
                 * about the Computer to be available (eg, getMachineID() and getUserID()) before we start loading and/or
                 * connecting to disk images.
                 *
                 * If we didn't need auto-mount support, we could defer controller initialization until we received a powerUp()
                 * notification, at which point reset() would call initController(), or restore() would restore the controller;
                 * in that case, all we'd need to do here is call setReady().
                 */
                this.reset();
            
                if (!this.autoMount()) this.setReady();
            };
            
            /**
             * powerUp(data, fRepower)
             *
             * @this {HDC}
             * @param {Object|null} data
             * @param {boolean} [fRepower]
             * @return {boolean} true if successful, false if failure
             */
            HDC.prototype.powerUp = function(data, fRepower)
            {
                if (!fRepower) {
                    if (!data || !this.restore) {
                        this.initController();
                        if (this.cmp.fReload) {
                            /*
                             * If the computer's fReload flag is set, we're required to toss all currently
                             * loaded disks and remount all disks specified in the auto-mount configuration.
                             */
                            this.autoMount(true);
                        }
                    } else {
                        if (!this.restore(data)) return false;
                    }
                }
                return true;
            };
            
            /**
             * powerDown(fSave, fShutdown)
             *
             * @this {HDC}
             * @param {boolean} fSave
             * @param {boolean} [fShutdown]
             * @return {Object|boolean}
             */
            HDC.prototype.powerDown = function(fSave, fShutdown)
            {
                return fSave && this.save? this.save() : true;
            };
            
            /**
             * getMachineID()
             *
             * @return {string}
             */
            HDC.prototype.getMachineID = function()
            {
                return this.cmp? this.cmp.getMachineID() : "";
            };
            
            /**
             * getUserID()
             *
             * @return {string}
             */
            HDC.prototype.getUserID = function()
            {
                return this.cmp? this.cmp.getUserID() : "";
            };
            
            /**
             * reset()
             *
             * @this {HDC}
             */
            HDC.prototype.reset = function()
            {
                /*
                 * TODO: The controller is also initialized by the constructor, to assist with auto-mount support,
                 * so think about whether we can skip powerUp initialization.
                 */
                this.initController(null, true);
            };
            
            /**
             * save()
             *
             * This implements save support for the HDC component.
             *
             * @this {HDC}
             * @return {Object}
             */
            HDC.prototype.save = function()
            {
                var state = new State(this);
                state.set(0, this.saveController());
                return state.data();
            };
            
            /**
             * restore(data)
             *
             * This implements restore support for the HDC component.
             *
             * @this {HDC}
             * @param {Object} data
             * @return {boolean} true if successful, false if failure
             */
            HDC.prototype.restore = function(data)
            {
                return this.initController(data[0]);
            };
            
            /**
             * initController(data, fHard)
             *
             * @this {HDC}
             * @param {Array} [data]
             * @param {boolean} [fHard] true if a machine reset (not just a controller reset)
             * @return {boolean} true if successful, false if failure
             */
            HDC.prototype.initController = function(data, fHard)
            {
                var i = 0;
                var fSuccess = true;
            
                /*
                 * At this point, it's worth calling into question my decision to NOT split the HDC component into separate XTC
                 * and ATC components, given all the differences, and given that I'm about to write some "if (ATC) else (XTC) ..."
                 * code.  And all I can say in my defense is, yes, it's definitely worth calling that into question.
                 *
                 * However, there's also some common code, mostly in the area of disk management rather than controller management,
                 * and if the components were split, then I'd have to create a third component for that common code (although again,
                 * disk management probably belongs in its own component anyway).
                 *
                 * However, let's not forget that since my overall plan is to have only one PCjs "binary", everything's going to end
                 * up in the same bucket anyway, so let's not be too obsessive about organizational details.  As long as the number
                 * of these conditionals is small and they're not performance-critical, this seems much ado about nothing.
                 */
                if (this.fATC) {
                    /*
                     * Since there's no way (and never will be a way) for an HDC to change its "personality" (from 'xt' to 'at'
                     * or vice versa), we're under no obligation to use the same number of registers, or save/restore format, etc,
                     * as the original XT controller.
                     */
                    if (data == null) data = [0, 0, 0, 0, 0, 0, 0, 0, HDC.ATC.STATUS.READY, 0];
                    this.regError   = data[i++];
                    this.regWPreC   = data[i++];
                    this.regSecCnt  = data[i++];
                    this.regSecNum  = data[i++];
                    this.regCylLo   = data[i++];
                    this.regCylHi   = data[i++];
                    this.regDrvHd   = data[i++];
                    this.regStatus  = data[i++];
                    this.regCommand = data[i++];
                    this.regFDR     = data[i++];
                    /*
                     * Additional state is maintained by the Drive object (eg, abSector, ibSector)
                     */
                } else {
                    if (data == null) data = [0, HDC.XTC.STATUS.NONE, new Array(14), 0, 0];
                    this.regConfig    = data[i++];
                    this.regStatus    = data[i++];
                    this.regDataArray = data[i++];  // there can be up to 14 command bytes (6 for normal commands, plus 8 more for HDC.XTC.DATA.CMD.INIT_DRIVE)
                    this.regDataIndex = data[i++];  // used to control the next data byte to be received
                    this.regDataTotal = data[i++];  // used to control the next data byte to be sent (internally, we use regDataIndex to read data bytes, up to this total)
                    this.regReset     = data[i++];
                    this.regPulse     = data[i++];
                    this.regPattern   = data[i++];
                    /*
                     * Initialize iDriveAllowFail only if it's never been initialized, otherwise its entire purpose will be defeated.
                     * See the related HACK in intBIOSDisk() for more details.
                     */
                    var iDriveAllowFail = data[i++];
                    if (iDriveAllowFail !== undefined) {
                        this.iDriveAllowFail = iDriveAllowFail;
                    } else {
                        if (this.iDriveAllowFail === undefined) this.iDriveAllowFail = -1;
                    }
                }
            
                if (this.aDrives === undefined) {
                    this.aDrives = new Array(this.aDriveConfigs.length);
                }
            
                var dataDrives = data[i];
                if (dataDrives === undefined) dataDrives = [];
            
                for (var iDrive = 0; iDrive < this.aDrives.length; iDrive++) {
                    if (this.aDrives[iDrive] === undefined) {
                        this.aDrives[iDrive] = {};
                    }
                    var drive = this.aDrives[iDrive];
                    var driveConfig = this.aDriveConfigs[iDrive];
                    if (!this.initDrive(iDrive, drive, driveConfig, dataDrives[iDrive], fHard)) {
                        fSuccess = false;
                    }
                    /*
                     * XTC only: the original STC-506/412 controller had two pairs of DIP switches to indicate a drive
                     * type (0, 1, 2 or 3) for drives 0 and 1.  Those switch settings are recorded in regConfig, now that
                     * drive.type has been validated by initDrive().
                     */
                    if (this.regConfig != null && iDrive <= 1) {
                        this.regConfig |= (drive.type & 0x3) << ((1 - iDrive) << 1);
                    }
                }
                if (DEBUG && this.messageEnabled()) {
                    this.printMessage("HDC initialized for " + this.aDrives.length + " drive(s)");
                }
                return fSuccess;
            };
            
            /**
             * saveController()
             *
             * @this {HDC}
             * @return {Array}
             */
            HDC.prototype.saveController = function()
            {
                var i = 0;
                var data = [];
                if (this.fATC) {
                    data[i++] = this.regError;
                    data[i++] = this.regWPreC;
                    data[i++] = this.regSecCnt;
                    data[i++] = this.regSecNum;
                    data[i++] = this.regCylLo;
                    data[i++] = this.regCylHi;
                    data[i++] = this.regDrvHd;
                    data[i++] = this.regStatus;
                    data[i++] = this.regCommand;
                    data[i++] = this.regFDR;
                } else {
                    data[i++] = this.regConfig;
                    data[i++] = this.regStatus;
                    data[i++] = this.regDataArray;
                    data[i++] = this.regDataIndex;
                    data[i++] = this.regDataTotal;
                    data[i++] = this.regReset;
                    data[i++] = this.regPulse;
                    data[i++] = this.regPattern;
                    data[i++] = this.iDriveAllowFail;
                }
                data[i] = this.saveDrives();
                return data;
            };
            
            /**
             * initDrive(iDrive, drive, driveConfig, data, fHard)
             *
             * TODO: Consider a separate Drive class that both FDC and HDC can use, since there's a lot of commonality
             * between the drive objects created by both controllers.  This will clean up overall drive management and allow
             * us to factor out some common Drive methods (eg, advanceSector()).
             *
             * @this {HDC}
             * @param {number} iDrive
             * @param {Object} drive
             * @param {Object} driveConfig (contains one or more of the following properties: 'name', 'path', 'size', 'type')
             * @param {Array} [data]
             * @param {boolean} [fHard] true if a machine reset (not just a controller reset)
             * @return {boolean} true if successful, false if failure
             */
            HDC.prototype.initDrive = function(iDrive, drive, driveConfig, data, fHard)
            {
                var i = 0;
                var fSuccess = true;
                if (data === undefined) data = [HDC.XTC.DATA.ERR.NONE, 0, false, new Array(8)];
            
                drive.iDrive = iDrive;
            
                /*
                 * errorCode could be an HDC global, but in order to insulate HDC state from the operation of various functions
                 * that operate on drive objects (eg, readData and writeData), I've made it a per-drive variable.  This choice may
                 * be contrary to how the actual hardware works, but I prefer this approach, as long as it doesn't expose any
                 * incompatibilities that any software actually cares about.
                 */
                drive.errorCode = data[i++];
                drive.senseCode = data[i++];
                drive.fRemovable = data[i++];
                drive.abDriveParms = data[i++];         // captures drive parameters programmed via HDC.XTC.DATA.CMD.INIT_DRIVE
            
                /*
                 * TODO: Make abSector a DWORD array rather than a BYTE array (we could even allocate a Memory block for it);
                 * alternatively, eliminate the buffer entirely and re-establish a reference to the appropriate Disk sector object.
                 */
                drive.abSector = data[i++];
            
                /*
                 * The next group of properties are set by various HDC command sequences.
                 */
                drive.bHead = data[i++];
                drive.nHeads = data[i++];
                drive.wCylinder = data[i++];
                drive.bSector = data[i++];
                drive.bSectorEnd = data[i++];           // aka EOT
                drive.nBytes = data[i++];
                drive.bSectorBias = (this.fATC? 0: 1);
            
                drive.name = driveConfig['name'];
                if (drive.name === undefined) drive.name = HDC.DEFAULT_DRIVE_NAME;
                drive.path = driveConfig['path'];
            
                /*
                 * If no 'mode' is specified, we fall back to the original behavior, which is to completely preload
                 * any specific disk image, or create an empty (purely local) disk image.
                 */
                drive.mode = driveConfig['mode'] || (drive.path? DiskAPI.MODE.PRELOAD : DiskAPI.MODE.LOCAL);
            
                /*
                 * On-demand I/O of raw disk images is supported only if there's a valid user ID; fall back to an empty
                 * local disk image if there's not.
                 */
                if (drive.mode == DiskAPI.MODE.DEMANDRO || drive.mode == DiskAPI.MODE.DEMANDRW) {
                    if (!this.getUserID()) drive.mode = DiskAPI.MODE.LOCAL;
                }
            
                drive.type = driveConfig['type'];
                if (drive.type === undefined || HDC.aDriveTypes[this.iHDC][drive.type] === undefined) drive.type = this.iDriveTypeDefault;
            
                var driveType = HDC.aDriveTypes[this.iHDC][drive.type];
                drive.nSectors = driveType[2] || 17;    // sectors/track
                drive.cbSector = driveType[3] || 512;   // bytes/sector (default is 512 if unspecified in the table)
            
                /*
                 * On a full machine reset, pass the current drive type to setCMOSDriveType() (a no-op on pre-CMOS machines)
                 */
                if (fHard && this.chipset) {
                    this.chipset.setCMOSDriveType(iDrive, drive.type);
                }
            
                /*
                 * The next group of properties are set by user requests to load/unload disk images.
                 *
                 * We no longer reinitialize drive.disk, in order to retain previously mounted disk across resets.
                 */
                if (drive.disk === undefined) {
                    drive.disk = null;
                    this.notice("Type " + drive.type + " \"" + drive.name + "\" is fixed disk " + iDrive, true);
                }
            
                /*
                 * With the advent of save/restore, we need to verify every drive at initialization, not just whenever
                 * drive characteristics are initialized.  Thus, if we've restored a sensible set of drive characteristics,
                 * then verifyDrive will create an empty disk if none has been provided, insuring we are ready for
                 * disk.restore().
                 */
                this.verifyDrive(drive);
            
                /*
                 * The next group of properties are managed by worker functions (eg, doDMARead()) to maintain state across DMA requests.
                 */
                drive.ibSector = data[i++];             // location of the next byte to be accessed in the above sector
                drive.sector = null;                    // initialized to null by worker, and then set to the next sector satisfying the request
            
                if (drive.disk) {
                    var deltas = data[i];
                    if (deltas !== undefined && drive.disk.restore(deltas) < 0) {
                        fSuccess = false;
                    }
                    if (fSuccess && drive.ibSector !== undefined) {
                        drive.sector = drive.disk.seek(drive.wCylinder, drive.bHead, drive.bSector + drive.bSectorBias);
                    }
                }
                return fSuccess;
            };
            
            /**
             * saveDrives()
             *
             * @this {HDC}
             * @return {Array}
             */
            HDC.prototype.saveDrives = function()
            {
                var i = 0;
                var data = [];
                for (var iDrive = 0; iDrive < this.aDrives.length; iDrive++) {
                    data[i++] = this.saveDrive(this.aDrives[iDrive]);
                }
                return data;
            };
            
            /**
             * saveDrive(drive)
             *
             * @this {HDC}
             * @return {Array}
             */
            HDC.prototype.saveDrive = function(drive)
            {
                var i = 0;
                var data = [];
                data[i++] = drive.errorCode;
                data[i++] = drive.senseCode;
                data[i++] = drive.fRemovable;
                data[i++] = drive.abDriveParms;
                data[i++] = drive.abSector;
                data[i++] = drive.bHead;
                data[i++] = drive.nHeads;
                data[i++] = drive.wCylinder;
                data[i++] = drive.bSector;
                data[i++] = drive.bSectorEnd;
                data[i++] = drive.nBytes;
                data[i++] = drive.ibSector;
                data[i] = drive.disk? drive.disk.save() : null;
                return data;
            };
            
            /**
             * copyDrive(iDrive)
             *
             * @this {HDC}
             * @param {number} iDrive
             * @return {Object|undefined} (undefined if the requested drive does not exist)
             */
            HDC.prototype.copyDrive = function(iDrive)
            {
                var driveNew;
                var driveOld = this.aDrives[iDrive];
                if (driveOld !== undefined) {
                    driveNew = {};
                    for (var p in driveOld) {
                        driveNew[p] = driveOld[p];
                    }
                }
                return driveNew;
            };
            
            /**
             * verifyDrive(drive, type)
             *
             * If no disk image is attached, create an empty disk with the specified drive characteristics.
             * Normally, we'd rely on the drive characteristics programmed via the HDC.XTC.DATA.CMD.INIT_DRIVE
             * command, but if an explicit drive type is specified, then we use the characteristics (geometry)
             * associated with that type.
             *
             * @this {HDC}
             * @param {Object} drive
             * @param {number} [type] to create a disk of the specified type, if no disk exists yet
             */
            HDC.prototype.verifyDrive = function(drive, type)
            {
                if (drive) {
                    var nHeads = 0, nCylinders = 0;
                    if (type == null) {
                        /*
                         * If the caller wants us to use the programmed drive parameters, we use those,
                         * but if there aren't any drive parameters (yet), then use default parameters based
                         * on drive.type.
                         *
                         * We used to do the last step ONLY if there was no drive.path -- otherwise, we'd waste
                         * time creating an empty disk if autoMount() was going to load an image from drive.path;
                         * but hopefully the Disk component is smarter now.
                         */
                        nHeads = drive.abDriveParms[2];
                        if (nHeads) {
                            nCylinders = (drive.abDriveParms[0] << 8) | drive.abDriveParms[1];
                        } else {
                            type = drive.type;
                        }
                    }
                    if (type != null && !nHeads) {
                        nHeads = HDC.aDriveTypes[this.iHDC][type][1];
                        nCylinders = HDC.aDriveTypes[this.iHDC][type][0];
                    }
                    if (nHeads) {
                        /*
                         * The assumption here is that if the 3rd drive parameter byte (abDriveParms[2]) has been set
                         * (ie, if nHeads is valid) then the first two bytes (ie, the low and high cylinder byte values)
                         * must have been set as well.
                         *
                         * Do these values agree with those for the given drive type?  Even if they don't, all we do is warn.
                         */
                        var driveType = HDC.aDriveTypes[this.iHDC][drive.type];
                        if (driveType) {
                            if (nCylinders != driveType[0] && nHeads != driveType[1]) {
                                this.notice("Warning: drive parameters (" + nCylinders + "," + nHeads + ") do not match drive type " + drive.type + " (" + driveType[0] + "," + driveType[1] + ")");
                            }
                        }
                        drive.nCylinders = nCylinders;
                        drive.nHeads = nHeads;
                        if (drive.disk == null) {
                            drive.disk = new Disk(this, drive, drive.mode);
                        }
                    }
                }
            };
            
            /**
             * seekDrive(drive, iSector, nSectors)
             *
             * The HDC doesn't need this function, since all HDC requests from the CPU are handled by doXTCmd().  This function
             * is used by other components (eg, Debugger) to mimic an HDC request, using a drive object obtained from copyDrive(),
             * to avoid disturbing the internal state of the HDC's drive objects.
             *
             * Also note that in an actual HDC request, drive.nBytes is initialized to the size of a single sector; the extent
             * of the entire transfer is actually determined by a count that has been pre-loaded into the DMA controller.  The HDC
             * isn't aware of the extent of the transfer, so in the case of a read request, all readData() can do is return bytes
             * until the current track (or, in the case of a multi-track request, the current cylinder) has been exhausted.
             *
             * Since seekDrive() is for use with non-DMA requests, we use nBytes to specify the length of the entire transfer.
             *
             * @this {HDC}
             * @param {Object} drive
             * @param {number} iSector (a "logical" sector number, relative to the entire disk, NOT a physical sector number)
             * @param {number} nSectors
             * @return {boolean} true if successful, false if invalid position request
             */
            HDC.prototype.seekDrive = function(drive, iSector, nSectors)
            {
                if (drive.disk) {
                    var aDiskInfo = drive.disk.info();
                    var nCylinders = aDiskInfo[0];
                    /*
                     * If nCylinders is zero, we probably have an empty disk image, awaiting initialization (see verifyDrive())
                     */
                    if (nCylinders) {
                        var nHeads = aDiskInfo[1];
                        var nSectorsPerTrack = aDiskInfo[2];
                        var nSectorsPerCylinder = nHeads * nSectorsPerTrack;
                        var nSectorsPerDisk = nCylinders * nSectorsPerCylinder;
                        if (iSector + nSectors <= nSectorsPerDisk) {
                            drive.wCylinder = Math.floor(iSector / nSectorsPerCylinder);
                            iSector %= nSectorsPerCylinder;
                            drive.bHead = Math.floor(iSector / nSectorsPerTrack);
                            /*
                             * Important difference between the FDC and the XTC: the XTC uses 0-based sector numbers, so unlike
                             * FDC.seekDrive(), we must NOT add 1 to bSector below.  I could change how sector numbers are stored in
                             * hard disk images, but it seems preferable to keep the image format consistent and controller-independent.
                             */
                            drive.bSector = (iSector % nSectorsPerTrack);
                            drive.nBytes = nSectors * aDiskInfo[3];
                            /*
                             * NOTE: We don't set nSectorEnd, as an HDC command would, but it's irrelevant, because we don't actually
                             * do anything with nSectorEnd at this point.  Perhaps someday, when we faithfully honor/restrict requests
                             * to a single track (or a single cylinder, in the case of multi-track requests).
                             */
                            drive.errorCode = HDC.XTC.DATA.ERR.NONE;
                            /*
                             * At this point, we've finished simulating what an HDC.XTC.DATA.CMD.READ_DATA command would have performed,
                             * up through doDMARead().  Now it's the caller responsibility to call readData(), like the DMA Controller would.
                             */
                            return true;
                        }
                    }
                }
                return false;
            };
            
            /**
             * autoMount(fRemount)
             *
             * @this {HDC}
             * @param {boolean} [fRemount] is true if we're remounting all auto-mounted disks
             * @return {boolean} true if one or more disk images are being auto-mounted, false if none
             */
            HDC.prototype.autoMount = function(fRemount)
            {
                if (!fRemount) this.cAutoMount = 0;
            
                for (var iDrive = 0; iDrive < this.aDrives.length; iDrive++) {
                    var drive = this.aDrives[iDrive];
                    if (drive.name && drive.path) {
            
                        if (fRemount && drive.disk && drive.disk.isRemote()) {
                            /*
                             * The Disk component has its own logic for remounting remote disks, so skip this disk.
                             *
                             * TODO: Consider rewriting how ALL disks are automounted/remounted, now that the Disk component
                             * is receiving its own powerDown() and powerUp() notifications (originally, it didn't receive them).
                             */
                            continue;
                        }
            
                        if (!this.loadDisk(iDrive, drive.name, drive.path, true) && fRemount)
                            this.setReady(false);
                        continue;
                    }
                    if (fRemount && drive.type !== undefined) {
                        drive.disk = null;
                        this.verifyDrive(drive, drive.type);
                    }
                }
                return !!this.cAutoMount;
            };
            
            /**
             * loadDisk(iDrive, sDiskName, sDiskPath, fAutoMount)
             *
             * @this {HDC}
             * @param {number} iDrive
             * @param {string} sDiskName
             * @param {string} sDiskPath
             * @param {boolean} fAutoMount
             * @return {boolean} true if disk (already) loaded, false if queued up (or busy)
             */
            HDC.prototype.loadDisk = function(iDrive, sDiskName, sDiskPath, fAutoMount)
            {
                var drive = this.aDrives[iDrive];
                if (drive.fBusy) {
                    this.notice("Drive " + iDrive + " busy");
                    return true;
                }
                drive.fBusy = true;
                if (fAutoMount) {
                    drive.fAutoMount = true;
                    this.cAutoMount++;
                    if (this.messageEnabled()) this.printMessage("loading " + sDiskName);
                }
                var disk = drive.disk || new Disk(this, drive, drive.mode);
                disk.load(sDiskName, sDiskPath, null, this.doneLoadDisk);
                return false;
            };
            
            /**
             * doneLoadDisk(drive, disk, sDiskName, sDiskPath)
             *
             * This is a callback issued by the Disk component once the load() operation has finished.
             *
             * @this {HDC}
             * @param {Object} drive
             * @param {Disk} disk is set if the disk was successfully mounted, null if not
             * @param {string} sDiskName
             * @param {string} sDiskPath
             */
            HDC.prototype.doneLoadDisk = function(drive, disk, sDiskName, sDiskPath)
            {
                drive.fBusy = false;
                if ((drive.disk = disk)) {
                    /*
                     * With the addition of notify(), users are now "alerted" whenever a diskette has finished loading;
                     * notify() is selective about its output, using print() if a print window is open, otherwise alert().
                     *
                     * WARNING: This conversion of drive number to drive letter, starting with "C:" (0x43), is very simplistic
                     * and is not guaranteed to match the drive mapping that DOS ultimately uses.
                     */
                    this.notice("Mounted disk \"" + sDiskName + "\" in drive " + String.fromCharCode(0x43 + drive.iDrive), drive.fAutoMount);
                }
                if (drive.fAutoMount) {
                    drive.fAutoMount = false;
                    if (!--this.cAutoMount) this.setReady();
                }
            };
            
            /**
             * unloadDrive(iDrive)
             *
             * NOTE: At the moment, we support only auto-mounts; there is no user interface for selecting hard disk images,
             * let alone unloading them, so there is currently no need for the following function.
             *
             * @this {HDC}
             * @param {number} iDrive
             *
             HDC.prototype.unloadDrive = function(iDrive)
             {
                this.aDrives[iDrive].disk = null;
                //
                // WARNING: This conversion of drive number to drive letter, starting with "C:" (0x43), is very simplistic
                // and is not guaranteed to match the drive mapping that DOS ultimately uses.
                //
                this.notice("Drive " + String.fromCharCode(0x43 + iDrive) + " unloaded");
            };
             */
            
            /**
             * intXTCData(port, addrFrom)
             *
             * @this {HDC}
             * @param {number} port (0x320)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number} simulated port value
             */
            HDC.prototype.inXTCData = function(port, addrFrom)
            {
                var bIn = 0;
                if (this.regDataIndex < this.regDataTotal) {
                    bIn = this.regDataArray[this.regDataIndex];
                }
                if (this.chipset) this.chipset.clearIRR(ChipSet.IRQ.XTC);
                this.regStatus &= ~HDC.XTC.STATUS.INTERRUPT;
            
                this.printMessageIO(port, null, addrFrom, "DATA[" + this.regDataIndex + "]", bIn);
                if (++this.regDataIndex >= this.regDataTotal) {
                    this.regDataIndex = this.regDataTotal = 0;
                    this.regStatus &= ~(HDC.XTC.STATUS.IOMODE | HDC.XTC.STATUS.BUS | HDC.XTC.STATUS.BUSY);
                }
                return bIn;
            };
            
            /**
             * outXTCData(port, bOut, addrFrom)
             *
             * @this {HDC}
             * @param {number} port (0x320)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to write the specified port)
             */
            HDC.prototype.outXTCData = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, "DATA[" + this.regDataTotal + "]");
                if (this.regDataTotal < this.regDataArray.length) {
                    this.regDataArray[this.regDataTotal++] = bOut;
                }
                var bCmd = this.regDataArray[0];
                var cbCmd = (bCmd != HDC.XTC.DATA.CMD.INIT_DRIVE? 6 : this.regDataArray.length);
                if (this.regDataTotal == 6) {
                    /*
                     * XTC.STATUS.REQ must be CLEAR following any 6-byte command sequence that the HDC BIOS "COMMAND" function outputs,
                     * yet it must also be SET before the HDC BIOS will proceed with the remaining the 8-byte sequence that's part of
                     * HDC.XTC.DATA.CMD.INIT_DRIVE command. See inXTCStatus() for HACK details.
                     */
                    this.regStatus &= ~HDC.XTC.STATUS.REQ;
                }
                if (this.regDataTotal >= cbCmd) {
                    /*
                     * It's essential that XTC.STATUS.IOMODE be set here, at least after the final 8-byte HDC.XTC.DATA.CMD.INIT_DRIVE sequence.
                     */
                    this.regStatus |= HDC.XTC.STATUS.IOMODE;
                    this.regStatus &= ~HDC.XTC.STATUS.REQ;
                    this.doXTC();
                }
            };
            
            /**
             * inXTCStatus(port, addrFrom)
             *
             * @this {HDC}
             * @param {number} port (0x321)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number} simulated port value
             */
            HDC.prototype.inXTCStatus = function(port, addrFrom)
            {
                var b = this.regStatus;
                this.printMessageIO(port, null, addrFrom, "STATUS", b);
                /*
                 * HACK: The HDC BIOS will not finish the HDC.XTC.DATA.CMD.INIT_DRIVE sequence unless it sees XTC.STATUS.REQ set again, nor will
                 * it read any of the XTC.DATA bytes returned from a HDC.XTC.DATA.CMD.REQUEST_SENSE command unless XTC.STATUS.REQ is set again, so
                 * we turn it back on if there are unprocessed data bytes.
                 */
                if (this.regDataIndex < this.regDataTotal) {
                    this.regStatus |= HDC.XTC.STATUS.REQ;
                }
                return b;
            };
            
            /**
             * outXTCReset(port, bOut, addrFrom)
             *
             * @this {HDC}
             * @param {number} port (0x321)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to write the specified port)
             */
            HDC.prototype.outXTCReset = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, "RESET");
                /*
                 * Not sure what to do with this value, and the value itself may be "don't care", but we'll save it anyway.
                 */
                this.regReset = bOut;
                if (this.chipset) this.chipset.clearIRR(ChipSet.IRQ.XTC);
                this.initController();
            };
            
            /**
             * inXTCConfig(port, addrFrom)
             *
             * @this {HDC}
             * @param {number} port (0x322)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number} simulated port value
             */
            HDC.prototype.inXTCConfig = function(port, addrFrom)
            {
                this.printMessageIO(port, null, addrFrom, "CONFIG", this.regConfig);
                return this.regConfig;
            };
            
            /**
             * outXTCPulse(port, bOut, addrFrom)
             *
             * @this {HDC}
             * @param {number} port (0x322)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to write the specified port)
             */
            HDC.prototype.outXTCPulse = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, "PULSE");
                /*
                 * Not sure what to do with this value, and the value itself may be "don't care", but we'll save it anyway.
                 */
                this.regPulse = bOut;
                /*
                 * The HDC BIOS "COMMAND" function (@C800:0562) waits for these ALL status bits after writing to both regPulse
                 * and regPattern, so we must oblige it.
                 *
                 * TODO: Figure out exactly when either XTC.STATUS.BUS or XTC.STATUS.BUSY are supposed to be cleared.
                 * The HDC BIOS doesn't care much about them, except for the one location mentioned above. However, MS-DOS 4.0
                 * (aka the unreleased "multitasking" version of MS-DOS) cares, so I'm going to start by clearing them at the
                 * same point I clear XTC.STATUS.IOMODE.
                 */
                this.regStatus = HDC.XTC.STATUS.REQ | HDC.XTC.STATUS.BUS | HDC.XTC.STATUS.BUSY;
            };
            
            /**
             * outXTCPattern(port, bOut, addrFrom)
             *
             * @this {HDC}
             * @param {number} port (0x323)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to write the specified port)
             */
            HDC.prototype.outXTCPattern = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, "PATTERN");
                this.regPattern = bOut;
            };
            
            /**
             * outXTCNoise(port, bOut, addrFrom)
             *
             * @this {HDC}
             * @param {number} port (0x327, 0x32B or 0x32F)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to write the specified port)
             */
            HDC.prototype.outXTCNoise = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, "NOISE");
            };
            
            /**
             * inATCData(port, addrFrom)
             *
             * @this {HDC}
             * @param {number} port (0x1F0)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number} simulated port value
             */
            HDC.prototype.inATCData = function(port, addrFrom)
            {
                var bIn = -1;
            
                if (this.drive) {
                    /*
                     * We use the synchronous form of readData() at this point because we have no choice; an I/O instruction
                     * has just occurred and cannot be delayed.  The good news is that doATCommand() should have already primed
                     * the pump; all we can do is assert that the pump has something in it.  If bIn is inexplicably negative,
                     * well, then the caller will get 0xff.
                     */
                    var hdc = this;
                    bIn = this.readData(this.drive, function onATCReadData(b, fAsync, obj, off) {
                        hdc.assert(!fAsync);
                        if (BACKTRACK) {
                            if (!off && obj.file && hdc.messageEnabled(Messages.DISK)) {
                                hdc.printMessage("loading " + obj.file.sPath + '[' + obj.offFile + "] via port " + str.toHexWord(port), true);
                            }
                            /*
                             * TODO: We could define a cached BTO that's reset prior to a new ATC command, and then pass that
                             * to addBackTrackObject() here instead of null; but for now, we're going to rely on that function's
                             * simplistic MRU logic.  If that fails, the worst that will (or should) happen is we'll burn through
                             * more BackTrack wrapper objects than necessary, and risk running out.
                             */
                            var bto = hdc.bus.addBackTrackObject(obj, null, off);
                            hdc.cpu.backTrack.btiIO = hdc.bus.getBackTrackIndex(bto, off);
                        }
                    });
                    this.assert(bIn >= 0);
            
                    if (this.drive.ibSector == 1 || this.drive.ibSector == this.drive.cbSector) {
                        /*
                         * printMessageIO() calls, if enabled, can be overwhelming for this port, so limit them to the first
                         * and last bytes of each sector.
                         */
                        if (this.messageEnabled(Messages.PORT | Messages.HDC)) {
                            this.printMessageIO(port, null, addrFrom, "DATA[" + this.drive.ibSector + "]", bIn);
                        }
                        if (this.drive.ibSector > 1) {      // in other words, if this.drive.ibSector == this.drive.cbSector...
                            if (this.messageEnabled(Messages.DATA | Messages.HDC)) {
                                var sDump = this.drive.disk.dumpSector(this.drive.sector);
                                if (sDump) this.dbg.message(sDump);
                            }
                            /*
                             * Now that we've supplied a full sector of data, see if the caller's expecting additional sectors;
                             * if so, prime the pump again.  The caller should not poll us again until another interrupt's delivered.
                             */
                            this.drive.nBytes -= this.drive.cbSector;
                            this.regSecCnt = (this.regSecCnt - 1) & 0xff;
                            /*
                             * TODO: If the WITH_ECC bit is set in the READ_DATA command, then we need to support "stuffing" 4
                             * additional bytes into the inATCData() stream.  And we must first set DATA_REQ in the STATUS register.
                             */
                            if (this.drive.nBytes >= this.drive.cbSector) {
                                /*
                                 * FYI, with regard to regStatus, I'm simply aping what the ATC.COMMAND.READ_DATA setup code does
                                 * for the first sector, which may not strictly be necessary for subsequent sectors....
                                 */
                                hdc.regStatus = HDC.ATC.STATUS.BUSY;
                                this.readData(this.drive, function onATCReadDataNext(b, fAsync) {
                                    if (b >= 0) {
                                        hdc.setATCIRR();
                                        /*
                                         * FYI, I'm taking a shotgun approach to these status bits: I need to clear STATUS.BUSY and
                                         * set STATUS.DATA_REQ, because otherwise CompaqDeskPro386 reads will fail, and I need to set
                                         * the STATUS.READY and STATUS.SEEK_OK bits, because otherwise MODEL_5170_REV3 reads will fail.
                                         */
                                        hdc.regStatus = HDC.ATC.STATUS.READY | HDC.ATC.STATUS.SEEK_OK | HDC.ATC.STATUS.DATA_REQ;
            
                                    } else {
                                        /*
                                         * TODO: It would be nice to be a bit more specific about the error (if any) that just occurred.
                                         * Consult drive.errorCode (it uses older XTC error codes, but mapping those codes should be trivial).
                                         */
                                        hdc.regStatus = HDC.ATC.STATUS.ERROR;
                                        hdc.regError = HDC.ATC.ERROR.NO_CHS;
                                        if (DEBUG) hdc.printMessage("HDC.inATCData(): read failed");
                                    }
                                }, false);
                            } else {
                                this.assert(!this.drive.nBytes);
                                this.regStatus = HDC.ATC.STATUS.READY | HDC.ATC.STATUS.SEEK_OK;
                            }
                        }
                    }
                }
                return bIn;
            };
            
            /**
             * outATCData(port, bOut, addrFrom)
             *
             * @this {HDC}
             * @param {number} port (0x1F0)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to write the specified port)
             */
            HDC.prototype.outATCData = function(port, bOut, addrFrom)
            {
                if (this.drive) {
                    if (this.drive.nBytes >= this.drive.cbSector) {
                        if (this.writeData(this.drive, bOut) < 0) {
                            /*
                             * TODO: It would be nice to be a bit more specific about the error (if any) that just occurred.
                             * Consult drive.errorCode (it uses older XTC error codes, but mapping those codes should be trivial).
                             */
                            this.regStatus = HDC.ATC.STATUS.ERROR;
                            this.regError = HDC.ATC.ERROR.NO_CHS;
                            if (DEBUG && this.messageEnabled()) {
                                this.printMessage("HDC.outATCData(" + str.toHexByte(bOut) + "): write failed");
                            }
                        }
                        else if (this.drive.ibSector == 1 || this.drive.ibSector == this.drive.cbSector) {
                            /*
                             * printMessageIO() calls, if enabled, can be overwhelming for this port, so limit them to the first
                             * and last bytes of each sector.
                             */
                            if (this.messageEnabled(Messages.PORT | Messages.HDC)) {
                                this.printMessageIO(port, bOut, addrFrom, "DATA[" + this.drive.ibSector + "]");
                            }
                            if (this.drive.ibSector > 1) {      // in other words, if this.drive.ibSector == this.drive.cbSector...
                                if (this.messageEnabled(Messages.DATA | Messages.HDC)) {
                                    var sDump = this.drive.disk.dumpSector(this.drive.sector);
                                    if (sDump) this.dbg.message(sDump);
                                }
                                this.drive.nBytes -= this.drive.cbSector;
                                this.regSecCnt = (this.regSecCnt - 1) & 0xff;
                                this.setATCIRR(true);
                                this.regStatus = HDC.ATC.STATUS.READY | HDC.ATC.STATUS.SEEK_OK;
                                if (this.drive.nBytes >= this.drive.cbSector) {
                                    this.regStatus |= HDC.ATC.STATUS.DATA_REQ;
                                } else {
                                    this.assert(!this.drive.nBytes);
                                }
                            }
                        }
                    } else {
                        /*
                         * TODO: What to do about unexpected writes? The number of bytes has exceeded what the command specified.
                         */
                        if (DEBUG && this.messageEnabled()) {
                            this.printMessage("HDC.outATCData(" + str.toHexByte(bOut) + "): write exceeds count (" + this.drive.nBytes + ")");
                        }
                    }
                } else {
                    /*
                     * TODO: What to do about unexpected writes? No command was specified.
                     */
                    if (DEBUG && this.messageEnabled()) {
                        this.printMessage("HDC.outATCData(" + str.toHexByte(bOut) + "): write without command");
                    }
                }
            };
            
            /**
             * inATCError(port, addrFrom)
             *
             * @this {HDC}
             * @param {number} port (0x1F1)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number} simulated port value
             */
            HDC.prototype.inATCError = function(port, addrFrom)
            {
                var bIn = this.regError;
                this.printMessageIO(port, null, addrFrom, "ERROR", bIn);
                return bIn;
            };
            
            /**
             * outATCWPreC(port, bOut, addrFrom)
             *
             * @this {HDC}
             * @param {number} port (0x1F1)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to write the specified port)
             */
            HDC.prototype.outATCWPreC = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, "WPREC");
                this.regWPreC = bOut;
            };
            
            /**
             * inATCSecCnt(port, addrFrom)
             *
             * @this {HDC}
             * @param {number} port (0x1F2)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number} simulated port value
             */
            HDC.prototype.inATCSecCnt = function(port, addrFrom)
            {
                var bIn = this.regSecCnt;
                this.printMessageIO(port, null, addrFrom, "SECCNT", bIn);
                return bIn;
            };
            
            /**
             * outATCSecCnt(port, bOut, addrFrom)
             *
             * @this {HDC}
             * @param {number} port (0x1F2)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to write the specified port)
             */
            HDC.prototype.outATCSecCnt = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, "SECCNT");
                this.regSecCnt = bOut;
            };
            
            /**
             * inATCSecNum(port, addrFrom)
             *
             * @this {HDC}
             * @param {number} port (0x1F3)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number} simulated port value
             */
            HDC.prototype.inATCSecNum = function(port, addrFrom)
            {
                var bIn = this.regSecNum;
                this.printMessageIO(port, null, addrFrom, "SECNUM", bIn);
                return bIn;
            };
            
            /**
             * outATCSecNum(port, bOut, addrFrom)
             *
             * @this {HDC}
             * @param {number} port (0x1F3)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to write the specified port)
             */
            HDC.prototype.outATCSecNum = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, "SECNUM");
                this.regSecNum = bOut;
            };
            
            /**
             * inATCCylLo(port, addrFrom)
             *
             * @this {HDC}
             * @param {number} port (0x1F4)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number} simulated port value
             */
            HDC.prototype.inATCCylLo = function(port, addrFrom)
            {
                var bIn = this.regCylLo;
                this.printMessageIO(port, null, addrFrom, "CYLLO", bIn);
                return bIn;
            };
            
            /**
             * outATCCylLo(port, bOut, addrFrom)
             *
             * @this {HDC}
             * @param {number} port (0x1F4)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to write the specified port)
             */
            HDC.prototype.outATCCylLo = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, "CYLLO");
                this.regCylLo = bOut;
            };
            
            /**
             * inATCCylHi(port, addrFrom)
             *
             * @this {HDC}
             * @param {number} port (0x1F5)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number} simulated port value
             */
            HDC.prototype.inATCCylHi = function(port, addrFrom)
            {
                var bIn = this.regCylHi;
                this.printMessageIO(port, null, addrFrom, "CYLHI", bIn);
                return bIn;
            };
            
            /**
             * outATCCylHi(port, bOut, addrFrom)
             *
             * @this {HDC}
             * @param {number} port (0x1F5)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to write the specified port)
             */
            HDC.prototype.outATCCylHi = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, "CYLHI");
                this.regCylHi = bOut;
            };
            
            /**
             * inATCDrvHd(port, addrFrom)
             *
             * @this {HDC}
             * @param {number} port (0x1F6)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number} simulated port value
             */
            HDC.prototype.inATCDrvHd = function(port, addrFrom)
            {
                var bIn = this.regDrvHd;
                this.printMessageIO(port, null, addrFrom, "DRVHD", bIn);
                return bIn;
            };
            
            /**
             * outATCDrvHd(port, bOut, addrFrom)
             *
             * @this {HDC}
             * @param {number} port (0x1F6)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to write the specified port)
             */
            HDC.prototype.outATCDrvHd = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, "DRVHD");
                this.regDrvHd = bOut;
                /*
                 * The MODEL_5170_REV3 BIOS (see "POST2_CHK_HF2" @F000:14FC) probes for a 2nd hard drive when the number
                 * of configured hard drives is something other than 2, using INT 0x13/AH=0x10.  This in turn calls the
                 * BIOS "TST_RDY" function, which selects the drive in this register (see DRIVE_MASK), and then immediately
                 * expects regStatus to reflect success or failure.
                 *
                 * We were always returning success, because no ATC command was actually issued, and so the user would
                 * always get a spurious CMOS configuration error: "System Options Not Set-(Run SETUP)".
                 *
                 * So now we update regStatus here.  I'm not sure which status bits are normally set to indicate failure,
                 * but it should be sufficient to set or clear the READY bit according to whether the drive exists or not.
                 *
                 * TODO: Dig into the ATC documentation some more, and determine what other situations, if any, regStatus
                 * needs to be updated.
                 *
                 * UPDATE: The Compaq DeskPro 386 ROM BIOS requires setting STATUS.SEEK_OK in addition to STATUS.READY;
                 * a quick retest of the MODEL_5170_REV3 BIOS suggests that it's happy with that change, so it's quite likely
                 * that was the appropriate change all along.
                 */
                var iDrive = (this.regDrvHd & HDC.ATC.DRVHD.DRIVE_MASK? 1 : 0);
                if (this.aDrives[iDrive]) {
                    this.regStatus |= HDC.ATC.STATUS.READY | HDC.ATC.STATUS.SEEK_OK;
                } else {
                    this.regStatus &= ~HDC.ATC.STATUS.READY;
                }
            };
            
            /**
             * inATCStatus(port, addrFrom)
             *
             * @this {HDC}
             * @param {number} port (0x1F7)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number} simulated port value
             */
            HDC.prototype.inATCStatus = function(port, addrFrom)
            {
                var bIn = this.regStatus;
                this.printMessageIO(port, null, addrFrom, "STATUS", bIn);
                /*
                 * Despite what IBM's documentation for the "Personal Computer AT Fixed Disk and Diskette Drive Adapter"
                 * (August 31, 1984) says (ie, "A read of the status register clears interrupt request 14"), we cannot
                 * unilaterally clear the IRQ on any read of STATUS.  For starters, that would completely break the PC AT
                 * ROM BIOS; here's what it does for multi-sector reads:
                 *
                 *      (1) read sector (REP INSW)
                 *      (2) check STATUS
                 *      (3) check sector count, exit if done
                 *      (4) wait for interrupt
                 *      (5) repeat
                 *
                 * Since we set the IRR immediately after (1), we cannot immediately clear the IRR at (2), otherwise the
                 * interrupt at (4) never happens.  So, maybe there are SOME situations where IRR should be cleared on
                 * a read, but I don't know what they are.
                 *
                 *      if (this.chipset) this.chipset.clearIRR(ChipSet.IRQ.ATC);
                 */
                return bIn;
            };
            
            /**
             * outATCCommand(port, bOut, addrFrom)
             *
             * @this {HDC}
             * @param {number} port (0x1F7)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to write the specified port)
             */
            HDC.prototype.outATCCommand = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, "COMMAND");
                this.regCommand = bOut;
                if (this.chipset) this.chipset.clearIRR(ChipSet.IRQ.ATC);
                this.doATC();
            };
            
            /**
             * outATCFDR(port, bOut, addrFrom)
             *
             * This is referred to in IBM's docs as the "Fixed Disk Register" (write-only)
             *
             * @this {HDC}
             * @param {number} port (0x3F6)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to write the specified port)
             */
            HDC.prototype.outATCFDR = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, "FDR");
                /*
                 * I'm not really sure if I should set HDC.ATC.DIAG.NO_ERROR in regError after *every* write where
                 * HDC.ATC.FDR.RESET is clear, or only after it has transitioned from set to clear; since the BIOS only
                 * requires the latter, I'm going to be conservative and restrict regError updates to the latter.
                 */
                if ((this.regFDR & HDC.ATC.FDR.RESET) && !(bOut & HDC.ATC.FDR.RESET)) this.regError = HDC.ATC.DIAG.NO_ERROR;
                this.regFDR = bOut;
            };
            
            /**
             * doATC()
             *
             * Handles ATC (AT Controller) commands
             *
             * @this {HDC}
             */
            HDC.prototype.doATC = function()
            {
                var hdc = this;
                var fInterrupt = false;
                var bCmd = this.regCommand;
                var iDrive = (this.regDrvHd & HDC.ATC.DRVHD.DRIVE_MASK? 1 : 0);
                var nHead = this.regDrvHd & HDC.ATC.DRVHD.HEAD_MASK;
                var nCylinder = this.regCylLo | ((this.regCylHi & HDC.ATC.CYLHI.MASK) << 8);
                var nSector = this.regSecNum;
                var nSectors = this.regSecCnt || 256;
            
                this.drive = null;
                this.regError = HDC.ATC.ERROR.NONE;
                this.regStatus = HDC.ATC.STATUS.READY | HDC.ATC.STATUS.SEEK_OK;
            
                var drive = this.aDrives[iDrive];
                if (!drive) {
                    bCmd = -1;
                } else {
                    /*
                     * Update the Drive object with the new positional information associated with this command.
                     */
                    drive.wCylinder = nCylinder;
                    drive.bHead = nHead;
                    drive.bSector = nSector;
                    drive.nBytes = nSectors * drive.cbSector;
                    bCmd = (bCmd >= HDC.ATC.COMMAND.DIAGNOSE? bCmd : (bCmd & HDC.ATC.COMMAND.MASK));
                    /*
                     * Since the ATC doesn't use DMA, we must now set some additional Drive state for the benefit of any
                     * follow-up I/O instructions.  For example, any subsequent inATCData() and outATCData() calls need to
                     * know which drive to talk to ("this.drive"), to issue their own readData() and writeData() calls.
                     *
                     * The XTC didn't need this, because it used doDMARead(), doDMAWrite(), doDMAFormat() helper functions,
                     * which reset the current drive's "sector" and "errorCode" properties themselves and then used DMA
                     * functions that delivered drive data with direct calls to readData() and writeData().
                     */
                    drive.sector = null;
                    drive.ibSector = 0;
                    drive.errorCode = 0;
                    this.drive = drive;
                }
            
                if (DEBUG && this.messageEnabled(Messages.HDC)) {
                    this.printMessage("HDC.doATC(" + str.toHexByte(bCmd) + "): " + HDC.aATCCommands[bCmd], true);
                }
            
                switch (bCmd & HDC.ATC.COMMAND.MASK) {
            
                case HDC.ATC.COMMAND.RESTORE:               // 0x10
                    /*
                     * Physically, this retracts the heads to cylinder 0, but logically, there isn't anything to do.
                     */
                    fInterrupt = true;
                    break;
            
                case HDC.ATC.COMMAND.READ_DATA:             // 0x20
                    if (DEBUG && this.messageEnabled(Messages.HDC)) {
                        this.printMessage("HDC.doRead(" + iDrive + ',' + drive.wCylinder + ':' + drive.bHead + ':' + drive.bSector + ',' + nSectors + ")", true);
                    }
                    /*
                     * We're using a call to readData() that disables auto-increment, so that once we've got the first
                     * byte of the next sector, we can signal an interrupt without also consuming the first byte, allowing
                     * inATCData() to begin with that byte.
                     */
                    hdc.regStatus = HDC.ATC.STATUS.BUSY;
                    this.readData(drive, function onATCReadDataFirst(b, fAsync) {
                        if (b >= 0 && hdc.chipset) {
                            hdc.setATCIRR();
                            /*
                             * Bytes from the requested sector(s) will now be delivered via inATCData().
                             *
                             * FYI, I'm taking a shotgun approach to these status bits: I need to clear STATUS.BUSY and
                             * set STATUS.DATA_REQ, because otherwise CompaqDeskPro386 reads will fail, and I need to set
                             * the STATUS.READY and STATUS.SEEK_OK bits, because otherwise MODEL_5170_REV3 reads will fail.
                             */
                            hdc.regStatus = HDC.ATC.STATUS.READY | HDC.ATC.STATUS.SEEK_OK | HDC.ATC.STATUS.DATA_REQ;
                        } else {
                            /*
                             * TODO: It would be nice to be a bit more specific about the error (if any) that just occurred.
                             * Consult drive.errorCode (it uses older XTC error codes, but mapping those codes should be trivial).
                             */
                            hdc.regStatus = HDC.ATC.STATUS.ERROR;
                            hdc.regError = HDC.ATC.ERROR.NO_CHS;
                        }
                    }, false);
                    break;
            
                case HDC.ATC.COMMAND.WRITE_DATA:            // 0x30
                    if (DEBUG && this.messageEnabled(Messages.HDC)) {
                        this.printMessage("HDC.doWrite(" + iDrive + ',' + drive.wCylinder + ':' + drive.bHead + ':' + drive.bSector + ',' + nSectors + ")", true);
                    }
                    this.regStatus = HDC.ATC.STATUS.DATA_REQ;
                    break;
            
                case HDC.ATC.COMMAND.READ_VERF:             // 0x40
                    /*
                     * Since the READ VERIFY command returns no data, once again, logically, there isn't much we HAVE to
                     * to do, but... TODO: Verify that all the disk parameters are valid, and return an error if they're not.
                     */
                    fInterrupt = true;
                    break;
            
                case HDC.ATC.COMMAND.SEEK:                  // 0x70
                    /*
                     * Physically, this moves the head(s) to the requested cylinder, but logically, there isn't anything to do;
                     * in fact, we didn't even need this command for the MODEL_5170 ROM BIOS (the Compaq DeskPro 386 ROM BIOS was
                     * another story).
                     */
                    fInterrupt = true;
                    break;
            
                case HDC.ATC.COMMAND.DIAGNOSE:              // 0x90
                    this.regError = HDC.ATC.DIAG.NO_ERROR;
                    fInterrupt = true;
                    break;
            
                case HDC.ATC.COMMAND.SETPARMS:              // 0x91
                    /*
                     * The documentation implies that the only parameters this command really affects are the number
                     * of heads (from regDrvHd) and sectors/track (from regSecCnt) -- this despite the fact that the BIOS
                     * programs all the other registers.  For a type 2 drive, that includes:
                     *
                     *      WPREC:   0x4B
                     *      SECCNT:  0x11 (for 17 sectors per track)
                     *      CYL:    0x100 (256 -- huh?)
                     *      SECNUM:  0x0C (12 -- huh?)
                     *      DRVHD:   0xA3 (max head of 0x03, for 4 total heads)
                     *
                     * The importance of SECCNT (nSectors) and DRVHD (nHeads) is controlling how multi-sector operations
                     * advance to the next sector; see advanceSector().
                     */
                    this.assert(drive.nHeads == nHead + 1);
                    this.assert(drive.nSectors == nSectors);
                    drive.nHeads = nHead + 1;
                    drive.nSectors = nSectors;
                    fInterrupt = true;
                    break;
            
                default:
                    if (DEBUG && this.messageEnabled()) {
                        this.printMessage("HDC.doATC(" + str.toHexByte(this.regCommand) + "): " + (bCmd < 0? ("invalid drive (" + iDrive + ")") : "unsupported operation"));
                        if (bCmd >= 0) this.dbg.stopCPU();
                    }
                    break;
                }
            
                if (fInterrupt) this.setATCIRR();
            };
            
            /**
             * setATCIRR(fWrite)
             *
             * Raise the ATC's IRQ, provided ATC interrupts are enabled.
             *
             * @this {HDC}
             * @param {boolean} [fWrite] is true on completion of a write to the sector buffer
             */
            HDC.prototype.setATCIRR = function(fWrite)
            {
                if (this.chipset) {
                    if (!(this.regFDR & HDC.ATC.FDR.INT_DISABLE)) {
                        /*
                         * TODO: Determine what the "correct" instruction delay should be here.  When the OS/2 1.0 Install Disk
                         * begins copying files to the hard disk, at one point it performs the following 125-sector write (use the
                         * Debugger's "m hdc on" and "m pic on" commands to enable HDC and PIC messages, along with "m data on"
                         * if you also want to see the actual sector data being written):
                         *
                         *      HDC.doATC(0x30): Write
                         *      HDC.doWrite(0,2:0:5,125)
                         *
                         * As the write progresses, you'll notice that the HDC interrupt after each sector occurs at decreasingly
                         * lower points in the stack, until we eventually start overwriting non-stack data:
                         *
                         *      getIRRVector(): IRQ 14 interrupting @0090:52A6 stack=0050:1906
                         *      getIRRVector(): IRQ 14 interrupting @0318:196B stack=0050:18D6
                         *      getIRRVector(): IRQ 14 interrupting @0318:196B stack=0050:18A6
                         *      ...
                         *      getIRRVector(): IRQ 14 interrupting @0318:196B stack=0050:1156
                         *
                         * At roughly this point, very bad things start happening.  I decided to try an arbitrarily large delay
                         * on the setIRR() call here (120), and the problem vanished, so it seems likely that the OS/2 disk driver
                         * has a low tolerance for fast controller interrupts during multi-sector operations.
                         */
                        this.chipset.setIRR(ChipSet.IRQ.ATC, 120);
                        if (DEBUG) this.printMessage("HDC.setATCIRR(): enabled", Messages.PIC | Messages.HDC);
                    } else {
                        if (DEBUG) this.printMessage("HDC.setATCIRR(): disabled", Messages.PIC | Messages.HDC);
                    }
                }
            };
            
            /**
             * doXTC()
             *
             * Handles XTC (XT Controller) commands
             *
             * @this {HDC}
             */
            HDC.prototype.doXTC = function()
            {
                var hdc = this;
                this.regDataIndex = 0;
            
                var bCmd = this.popCmd();
                var bCmdOrig = bCmd;
                var b1 = this.popCmd();
                var bDrive = b1 & 0x20;
                var iDrive = (bDrive >> 5);
            
                var bHead = b1 & 0x1f;
                var b2 = this.popCmd();
                var b3 = this.popCmd();
                var wCylinder = ((b2 << 2) & 0x300) | b3;
                var bSector = b2 & 0x3f;
                var bCount = this.popCmd();             // block count or interleave count, depending on the command
                var bControl = this.popCmd();
                var bParm, bDataStatus;
            
                var drive = this.aDrives[iDrive];
                if (drive) {
                    drive.wCylinder = wCylinder;
                    drive.bHead = bHead;
                    drive.bSector = bSector;
                    drive.nBytes = bCount * drive.cbSector;
                }
            
                /*
                 * I tried to save normal command processing from having to deal with invalid drives,
                 * but the HDC BIOS initializes both drive 0 AND drive 1 on a HDC.XTC.DATA.CMD.INIT_DRIVE command,
                 * and apparently that particular command has no problem with non-existent drives.
                 *
                 * So I've separated the commands into two groups: drive-ambivalent commands should be
                 * processed in the first group, and all the rest should be processed in the second group.
                 */
                switch (bCmd) {
            
                case HDC.XTC.DATA.CMD.REQUEST_SENSE:        // 0x03
                    this.beginResult(drive? drive.errorCode : HDC.XTC.DATA.ERR.NOT_READY);
                    this.pushResult(b1);
                    this.pushResult(b2);
                    this.pushResult(b3);
                    /*
                     * Although not terribly clear from IBM's "Fixed Disk Adapter" documentation, a data "status byte"
                     * also follows the 4 "sense bytes".  Interestingly, The HDC BIOS checks that data status byte for
                     * XTC.DATA.STATUS.ERROR, but I have to wonder if it would have ever been set for this command....
                     *
                     * The whole point of the HDC.XTC.DATA.CMD.REQUEST_SENSE command is to obtain details about a
                     * previous error, so if HDC.XTC.DATA.CMD.REQUEST_SENSE itself reports an error, what would that mean?
                     */
                    this.pushResult(HDC.XTC.DATA.STATUS.OK | bDrive);
                    bCmd = -1;                              // mark the command as complete
                    break;
            
                case HDC.XTC.DATA.CMD.INIT_DRIVE:           // 0x0C
                    /*
                     * Pop off all the extra "Initialize Drive Characteristics" bytes and store them, for the benefit of
                     * other functions, like verifyDrive().
                     */
                    var i = 0;
                    while ((bParm = this.popCmd()) >= 0) {
                        if (drive && i < drive.abDriveParms.length) {
                            drive.abDriveParms[i++] = bParm;
                        }
                    }
                    if (drive) this.verifyDrive(drive);
                    bDataStatus = HDC.XTC.DATA.STATUS.OK;
                    if (!drive && this.iDriveAllowFail == iDrive) {
                        this.iDriveAllowFail = -1;
                        if (DEBUG) this.printMessage("HDC.doXTC(): fake failure triggered");
                        bDataStatus = HDC.XTC.DATA.STATUS.ERROR;
                    }
                    this.beginResult(bDataStatus | bDrive);
                    bCmd = -1;                              // mark the command as complete
                    break;
            
                case HDC.XTC.DATA.CMD.RAM_DIAGNOSTIC:       // 0xE0
                case HDC.XTC.DATA.CMD.CTL_DIAGNOSTIC:       // 0xE4
                    this.beginResult(HDC.XTC.DATA.STATUS.OK | bDrive);
                    bCmd = -1;                              // mark the command as complete
                    break;
            
                default:
                    break;
                }
            
                if (bCmd >= 0) {
                    if (drive === undefined) {
                        bCmd = -1;
                    } else {
                        /*
                         * In preparation for this command, zero out the drive's errorCode and senseCode.
                         * Commands that require a disk address should update senseCode with HDC.XTC.DATA.SENSE_ADDR_VALID.
                         * And of course, any command that encounters an error should set the appropriate error code.
                         */
                        drive.errorCode = HDC.XTC.DATA.ERR.NONE;
                        drive.senseCode = 0;
                    }
                    switch (bCmd) {
                    case HDC.XTC.DATA.CMD.TEST_READY:       // 0x00
                        this.beginResult(HDC.XTC.DATA.STATUS.OK | bDrive);
                        break;
            
                    case HDC.XTC.DATA.CMD.RECALIBRATE:      // 0x01
                        drive.bControl = bControl;
                        if (DEBUG && this.messageEnabled()) {
                            this.printMessage("HDC.doXTC(): drive " + iDrive + " control byte: " + str.toHexByte(bControl));
                        }
                        this.beginResult(HDC.XTC.DATA.STATUS.OK | bDrive);
                        break;
            
                    case HDC.XTC.DATA.CMD.READ_VERF:        // 0x05
                        /*
                         * This is a non-DMA operation, so we simply pretend everything is OK for now.  TODO: Revisit.
                         */
                        this.beginResult(HDC.XTC.DATA.STATUS.OK | bDrive);
                        break;
            
                    case HDC.XTC.DATA.CMD.READ_DATA:        // 0x08
                        this.doDMARead(drive, function onXTCReadDataCommand(bStatus) {
                            hdc.beginResult(bStatus | bDrive);
                        });
                        break;
            
                    case HDC.XTC.DATA.CMD.WRITE_DATA:       // 0x0A
                        /*
                         * QUESTION: The IBM TechRef (p.1-188) implies that bCount is used as part of HDC.XTC.DATA.CMD.WRITE_DATA command,
                         * but it is omitted from the HDC.XTC.DATA.CMD.READ_DATA command.  Is that correct?  Note that, as far as the length
                         * of the transfer is concerned, we rely exclusively on the DMA controller being programmed with the appropriate byte count.
                         */
                        this.doDMAWrite(drive, function onXTCWriteDataCommand(bStatus) {
                            hdc.beginResult(bStatus | bDrive);
                        });
                        break;
            
                    case HDC.XTC.DATA.CMD.WRITE_BUFFER:     // 0x0F
                        this.doDMAWriteBuffer(drive, function onXTCWriteBufferCommand(bStatus) {
                            hdc.beginResult(bStatus | bDrive);
                        });
                        break;
            
                    default:
                        this.beginResult(HDC.XTC.DATA.STATUS.ERROR | bDrive);
                        if (DEBUG && this.messageEnabled()) {
                            this.printMessage("HDC.doXTC(" + str.toHexByte(bCmdOrig) + "): " + (bCmd < 0? ("invalid drive (" + iDrive + ")") : "unsupported operation"));
                            if (bCmd >= 0) this.dbg.stopCPU();
                        }
                        break;
                    }
                }
            };
            
            /**
             * popCmd()
             *
             * @this {HDC}
             * @return {number}
             */
            HDC.prototype.popCmd = function()
            {
                var bCmd = -1;
                var bCmdIndex = this.regDataIndex;
                if (bCmdIndex < this.regDataTotal) {
                    bCmd = this.regDataArray[this.regDataIndex++];
                    if (DEBUG && this.messageEnabled((bCmdIndex > 0? Messages.PORT : 0) | Messages.HDC)) {
                        this.printMessage("HDC.CMD[" + bCmdIndex + "]: " + str.toHexByte(bCmd) + (!bCmdIndex && HDC.aXTCCommands[bCmd]? (" (" + HDC.aXTCCommands[bCmd] + ")") : ""), true);
                    }
                }
                return bCmd;
            };
            
            /**
             * beginResult(bResult)
             *
             * @this {HDC}
             * @param {number} [bResult]
             */
            HDC.prototype.beginResult = function(bResult)
            {
                this.regDataIndex = this.regDataTotal = 0;
            
                if (bResult !== undefined) {
                    if (DEBUG && this.messageEnabled()) {
                        this.printMessage("HDC.beginResult(" + str.toHexByte(bResult) + ")");
                    }
                    this.pushResult(bResult);
                }
                /*
                 * After the Execution phase (eg, DMA Terminal Count has occurred, or the EOT sector has been read/written),
                 * an interrupt is supposed to occur, signaling the beginning of the Result Phase.  Once the data "status byte"
                 * has been read from XTC.DATA, the interrupt is cleared (see inXTCData).
                 */
                if (this.chipset) this.chipset.setIRR(ChipSet.IRQ.XTC);
                this.regStatus |= HDC.XTC.STATUS.INTERRUPT;
            };
            
            /**
             * pushResult(bResult)
             *
             * @this {HDC}
             * @param {number} bResult
             */
            HDC.prototype.pushResult = function(bResult)
            {
                if (DEBUG && this.messageEnabled((this.regDataTotal > 0? Messages.PORT : 0) | Messages.HDC)) {
                    this.printMessage("HDC.RES[" + this.regDataTotal + "]: " + str.toHexByte(bResult), true);
                }
                this.regDataArray[this.regDataTotal++] = bResult;
            };
            
            /**
             * dmaRead(drive, b, done)
             *
             * @this {HDC}
             * @param {Object} drive
             * @param {number} b
             * @param {function(number,boolean)} done
             */
            HDC.prototype.dmaRead = function(drive, b, done)
            {
                if (b === undefined || b < 0) {
                    this.readData(drive, done);
                    return;
                }
                /*
                 * The DMA controller should be ASKING for data, not GIVING us data; this suggests an internal DMA miscommunication
                 */
                if (DEBUG) this.printMessage("dmaRead(): invalid DMA acknowledgement");
                done(-1, false);
            };
            
            /**
             * dmaWrite(drive, b)
             *
             * @this {HDC}
             * @param {Object} drive
             * @param {number} b
             * @return {number}
             */
            HDC.prototype.dmaWrite = function(drive, b)
            {
                if (b !== undefined && b >= 0)
                    return this.writeData(drive, b);
                /*
                 * The DMA controller should be GIVING us data, not ASKING for data; this suggests an internal DMA miscommunication
                 */
                if (DEBUG) this.printMessage("dmaWrite(): invalid DMA acknowledgement");
                return -1;
            };
            
            /**
             * dmaWriteBuffer(drive, b)
             *
             * @this {HDC}
             * @param {Object} drive
             * @param {number} b
             * @return {number}
             */
            HDC.prototype.dmaWriteBuffer = function(drive, b)
            {
                if (b !== undefined && b >= 0)
                    return this.writeBuffer(drive, b);
                /*
                 * The DMA controller should be GIVING us data, not ASKING for data; this suggests an internal DMA miscommunication
                 */
                if (DEBUG) this.printMessage("dmaWriteBuffer(): invalid DMA acknowledgement");
                return -1;
            };
            
            /**
             * dmaWriteFormat(drive, b)
             *
             * @this {HDC}
             * @param {Object} drive
             * @param {number} b
             * @returns {number}
             */
            HDC.prototype.dmaWriteFormat = function(drive, b)
            {
                if (b !== undefined && b >= 0)
                    return this.writeFormat(drive, b);
                /*
                 * The DMA controller should be GIVING us data, not ASKING for data; this suggests an internal DMA miscommunication
                 */
                if (DEBUG) this.printMessage("dmaWriteFormat(): invalid DMA acknowledgement");
                return -1;
            };
            
            /**
             * doDMARead(drive, done)
             *
             * @this {HDC}
             * @param {Object} drive
             * @param {function(number)} done (dataStatus is XTC.DATA.STATUS.OK or XTC.DATA.STATUS.ERROR; if error, then drive.errorCode should be set as well)
             */
            HDC.prototype.doDMARead = function(drive, done)
            {
                drive.errorCode = HDC.XTC.DATA.ERR.NOT_READY;
            
                if (DEBUG && this.messageEnabled()) {
                    this.printMessage("HDC.doDMARead(" + drive.iDrive + ',' + drive.wCylinder + ':' + drive.bHead + ':' + drive.bSector + ',' + ((drive.nBytes / drive.cbSector)|0) + ")");
                }
            
                if (drive.disk) {
                    drive.sector = null;
                    if (this.chipset) {
                        /*
                         * We need to reverse the original logic, and default to success unless/until an actual error occurs;
                         * otherwise dmaRead()/readData() will bail on us.  The original approach used to work because requestDMA()
                         * would immediately call us back with fComplete set to true EVEN if the DMA channel was not yet unmasked;
                         * now the callback is deferred until the DMA channel has been unmasked and the DMA request has finished.
                         */
                        drive.errorCode = HDC.XTC.DATA.ERR.NONE;
                        this.chipset.connectDMA(ChipSet.DMA_HDC, this, 'dmaRead', drive);
                        this.chipset.requestDMA(ChipSet.DMA_HDC, function onDMAReadRequest(fComplete) {
                            if (!fComplete) {
                                /*
                                 * If an incomplete request wasn't triggered by an explicit error, then let's make explicit
                                 * (ie, revert to the default failure code that we originally set above).
                                 */
                                if (drive.errorCode == HDC.XTC.DATA.ERR.NONE) {
                                    drive.errorCode = HDC.XTC.DATA.ERR.NOT_READY;
                                }
                            }
                            done(drive.errorCode? HDC.XTC.DATA.STATUS.ERROR : HDC.XTC.DATA.STATUS.OK);
                        });
                        return;
                    }
                }
                done(drive.errorCode? HDC.XTC.DATA.STATUS.ERROR : HDC.XTC.DATA.STATUS.OK);
            };
            
            /**
             * doDMAWrite(drive, done)
             *
             * @this {HDC}
             * @param {Object} drive
             * @param {function(number)} done (dataStatus is XTC.DATA.STATUS.OK or XTC.DATA.STATUS.ERROR; if error, then drive.errorCode should be set as well)
             */
            HDC.prototype.doDMAWrite = function(drive, done)
            {
                drive.errorCode = HDC.XTC.DATA.ERR.NOT_READY;
            
                if (DEBUG && this.messageEnabled()) {
                    this.printMessage("HDC.doDMAWrite(" + drive.iDrive + ',' + drive.wCylinder + ':' + drive.bHead + ':' + drive.bSector + ',' + ((drive.nBytes / drive.cbSector)|0) + ")");
                }
            
                if (drive.disk) {
                    drive.sector = null;
                    if (this.chipset) {
                        /*
                         * We need to reverse the original logic, and default to success unless/until an actual error occurs;
                         * otherwise dmaWrite()/writeData() will bail on us.  The original approach would work because requestDMA()
                         * would immediately call us back with fComplete set to true EVEN if the DMA channel was not yet unmasked;
                         * now the callback is deferred until the DMA channel has been unmasked and the DMA request has finished.
                         */
                        drive.errorCode = HDC.XTC.DATA.ERR.NONE;
                        this.chipset.connectDMA(ChipSet.DMA_HDC, this, 'dmaWrite', drive);
                        this.chipset.requestDMA(ChipSet.DMA_HDC, function onDMAWriteRequest(fComplete) {
                            if (!fComplete) {
                                /*
                                 * If an incomplete request wasn't triggered by an explicit error, then let's make explicit
                                 * (ie, revert to the default failure code that we originally set above).
                                 */
                                if (drive.errorCode == HDC.XTC.DATA.ERR.NONE) {
                                    drive.errorCode = HDC.XTC.DATA.ERR.NOT_READY;
                                }
                                /*
                                 * Mask any error that's the result of an attempt to write beyond the end of the track (which is
                                 * something the MS-DOS 4.0M's FORMAT utility seems to like to do).
                                 */
                                if (drive.errorCode == HDC.XTC.DATA.ERR.NO_SECTOR) {
                                    drive.errorCode = HDC.XTC.DATA.ERR.NONE;
                                }
                            }
                            done(drive.errorCode? HDC.XTC.DATA.STATUS.ERROR : HDC.XTC.DATA.STATUS.OK);
                        });
                        return;
                    }
                }
                done(drive.errorCode? HDC.XTC.DATA.STATUS.ERROR : HDC.XTC.DATA.STATUS.OK);
            };
            
            /**
             * doDMAWriteBuffer(drive, done)
             *
             * @this {HDC}
             * @param {Object} drive
             * @param {function(number)} done (dataStatus is XTC.DATA.STATUS.OK or XTC.DATA.STATUS.ERROR; if error, then drive.errorCode should be set as well)
             */
            HDC.prototype.doDMAWriteBuffer = function(drive, done)
            {
                drive.errorCode = HDC.XTC.DATA.ERR.NOT_READY;
            
                if (DEBUG) this.printMessage("HDC.doDMAWriteBuffer()");
            
                if (!drive.abSector || drive.abSector.length != drive.nBytes) {
                    drive.abSector = new Array(drive.nBytes);
                }
                drive.ibSector = 0;
                if (this.chipset) {
                    /*
                     * We need to reverse the original logic, and default to success unless/until an actual error occurs;
                     * otherwise dmaWriteBuffer() will bail on us.  The original approach would work because requestDMA()
                     * would immediately call us back with fComplete set to true EVEN if the DMA channel was not yet unmasked;
                     * now the callback is deferred until the DMA channel has been unmasked and the DMA request has finished.
                     */
                    drive.errorCode = HDC.XTC.DATA.ERR.NONE;
                    this.chipset.connectDMA(ChipSet.DMA_HDC, this, 'dmaWriteBuffer', drive);
                    this.chipset.requestDMA(ChipSet.DMA_HDC, function onDMAWriteBufferRequest(fComplete) {
                        if (!fComplete) {
                            /*
                             * If an incomplete request wasn't triggered by an explicit error, then let's make explicit
                             * (ie, revert to the default failure code that we originally set above).
                             */
                            if (drive.errorCode == HDC.XTC.DATA.ERR.NONE) {
                                drive.errorCode = HDC.XTC.DATA.ERR.NOT_READY;
                            }
                        }
                        done(drive.errorCode? HDC.XTC.DATA.STATUS.ERROR : HDC.XTC.DATA.STATUS.OK);
                    });
                    return;
                }
                done(drive.errorCode? HDC.XTC.DATA.STATUS.ERROR : HDC.XTC.DATA.STATUS.OK);
            };
            
            /**
             * doDMAFormat(drive, done)
             *
             * The drive variable is initialized by doXTC() to the following extent:
             *
             *      drive.bHead (ignored)
             *      drive.nBytes (bytes/sector)
             *      drive.bSectorEnd (sectors/track)
             *      drive.bFiller (fill byte)
             *
             * and we expect the DMA controller to provide C, H, R and N (ie, 4 bytes) for each sector to be formatted.
             *
             * NOTE: This function is not currently used.
             *
             * @this {HDC}
             * @param {Object} drive
             * @param {function(number)} done (dataStatus is XTC.DATA.STATUS.OK or XTC.DATA.STATUS.ERROR; if error, then drive.errorCode should be set as well)
             *
            HDC.prototype.doDMAFormat = function(drive, done)
            {
                drive.errorCode = HDC.XTC.DATA.ERR.NOT_READY;
            
                if (drive.disk) {
                    drive.sector = null;
                    if (this.chipset) {
                        drive.cbFormat = 0;
                        drive.abFormat = new Array(4);
                        drive.bFormatting = true;
                        drive.cSectorsFormatted = 0;
                        //
                        // We need to reverse the original logic, and default to success unless/until an actual error occurs;
                        // otherwise dmaWriteFormat() will bail on us.  The original approach would work because requestDMA()
                        // would immediately call us back with fComplete set to true EVEN if the DMA channel was not yet unmasked;
                        // now the callback is deferred until the DMA channel has been unmasked and the DMA request has finished.
                        //
                        drive.errorCode = HDC.XTC.DATA.ERR.NONE;
                        this.chipset.connectDMA(ChipSet.DMA_HDC, this, 'dmaWriteFormat', drive);
                        this.chipset.requestDMA(ChipSet.DMA_HDC, function onDMAFormat(fComplete) {
                            if (!fComplete) {
                                //
                                // If an incomplete request wasn't triggered by an explicit error, then let's make explicit
                                // (ie, revert to the default failure code that we originally set above).
                                //
                                if (drive.errorCode == HDC.XTC.DATA.ERR.NONE) {
                                    drive.errorCode = HDC.XTC.DATA.ERR.NOT_READY;
                                }
                            }
                            drive.bFormatting = false;
                            done(drive.errorCode? HDC.XTC.DATA.STATUS.ERROR : HDC.XTC.DATA.STATUS.OK);
                        });
                        return;
                    }
                }
                done(drive.errorCode? HDC.XTC.DATA.STATUS.ERROR : HDC.XTC.DATA.STATUS.OK);
            };
             */
            
            /**
             * readData(drive, done)
             *
             * The following drive variable properties must have been setup prior to our first call:
             *
             *      drive.wCylinder
             *      drive.bHead
             *      drive.bSector
             *      drive.sector (initialized to null)
             *
             * On the first readData() request, since drive.sector will be null, we ask the Disk object to look
             * up the first sector of the request.  We then ask the Disk for bytes from that sector until the sector
             * is exhausted, and then we look up the next sector and continue the process.
             *
             * NOTE: Since the HDC isn't aware of the extent of the transfer, all readData() can do is return bytes
             * until the current track (or, in the case of a multi-track request, the current cylinder) has been exhausted.
             *
             * @this {HDC}
             * @param {Object} drive
             * @param {function(number,boolean,Object,number)} [done] (number is next available byte from drive, or -1 if no more bytes available)
             * @param {boolean} [fAutoInc] (default is true to auto-increment)
             * @return {number} the requested byte, or -1 if unavailable
             */
            HDC.prototype.readData = function(drive, done, fAutoInc)
            {
                var b = -1;
                var obj = null, off = 0;    // these variables are purely for BACKTRACK purposes
            
                if (drive.errorCode) {
                    if (done) done(b, false, obj, off);
                    return b;
                }
            
                var inc = (fAutoInc !== false? 1 : 0);
            
                if (drive.sector) {
                    off = drive.ibSector;
                    b = drive.disk.read(drive.sector, drive.ibSector);
                    drive.ibSector += inc;
                    if (b >= 0) {
                        obj = drive.sector;
                        if (done) done(b, false, obj, off);
                        return b;
                    }
                }
            
                /*
                 * Locate the next sector, and then try reading again.
                 *
                 * Important difference between the FDC and the XTC: the XTC uses 0-based sector numbers,
                 * hence the bSectorBias below.  I could change how sector numbers are stored in the image,
                 * but it seems preferable to keep the image format consistent and controller-independent.
                 */
                if (done) {
                    var hdc = this;
                    if (drive.disk) {
                        drive.disk.seek(drive.wCylinder, drive.bHead, drive.bSector + drive.bSectorBias, false, function onReadDataSeek(sector, fAsync) {
                            if ((drive.sector = sector)) {
                                obj = sector;
                                off = drive.ibSector = 0;
                                /*
                                 * We "pre-advance" bSector et al now, instead of waiting to advance it right before the seek().
                                 * This allows the initial call to readData() to perform a seek without triggering an unwanted advance.
                                 */
                                hdc.advanceSector(drive);
                                b = drive.disk.read(drive.sector, drive.ibSector);
                                drive.ibSector += inc;
                            } else {
                                drive.errorCode = HDC.XTC.DATA.ERR.NO_SECTOR;
                            }
                            done(b, fAsync, obj, off);
                        });
                        return b;
                    }
                    drive.errorCode = HDC.XTC.DATA.ERR.NO_SECTOR;
                    done(b, false, obj, off);
                }
                return b;
            };
            
            /**
             * writeData(drive, b)
             *
             * The following drive variable properties must have been setup prior to our first call:
             *
             *      drive.wCylinder
             *      drive.bHead
             *      drive.bSector
             *      drive.sector (initialized to null)
             *
             * On the first writeData() request, since drive.sector will be null, we ask the Disk object to look
             * up the first sector of the request.  We then send the Disk bytes for that sector until the sector
             * is full, and then we look up the next sector and continue the process.
             *
             * NOTE: Since the HDC isn't aware of the extent of the transfer, all writeData() can do is accept bytes
             * until the current track (or, in the case of a multi-track request, the current cylinder) has been exhausted.
             *
             * @this {HDC}
             * @param {Object} drive
             * @param {number} b containing next byte to write
             * @return {number} (b unchanged; return -1 if command should be terminated)
             */
            HDC.prototype.writeData = function(drive, b)
            {
                if (drive.errorCode) return -1;
                do {
                    if (drive.sector) {
                        if (drive.disk.write(drive.sector, drive.ibSector++, b))
                            break;
                    }
                    /*
                     * Locate the next sector, and then try writing again.
                     *
                     * Important difference between the FDC and the XTC: the XTC uses 0-based sector numbers,
                     * hence the bSectorBias below.  I could change how sector numbers are stored in the image,
                     * but it seems preferable to keep the image format consistent and controller-independent.
                     */
                    if (drive.disk) {
                        drive.disk.seek(drive.wCylinder, drive.bHead, drive.bSector + drive.bSectorBias, true, function onWriteDataSeek(sector, fAsync) {
                            drive.sector = sector;
                        });
                    }
                    if (!drive.sector) {
                        drive.errorCode = HDC.XTC.DATA.ERR.NO_SECTOR;
                        b = -1;
                        break;
                    }
                    drive.ibSector = 0;
                    /*
                     * We "pre-advance" bSector et al now, instead of waiting to advance it right before the seek().
                     * This allows the initial call to writeData() to perform a seek without triggering an unwanted advance.
                     */
                    this.advanceSector(drive);
                } while (true);
                return b;
            };
            
            /**
             * advanceSector(drive)
             *
             * This increments the sector number; when the sector number reaches drive.nSectors on the current track, we
             * increment drive.bHead and reset drive.bSector, and when drive.bHead reaches drive.nHeads, we reset drive.bHead
             * and increment drive.wCylinder.
             *
             * One wrinkle is that the ATC uses 1-based sector numbers (bSectorBias is 0), whereas the XTC uses 0-based sector
             * numbers (bSectorBias is 1).  Thus, the correct "reset" value for bSector is (1 - bSectorBias), and the correct
             * limit for bSector is (nSectors + bSectorStart).
             *
             * @this {HDC}
             * @param {Object} drive
             */
            HDC.prototype.advanceSector = function(drive)
            {
                this.assert(drive.wCylinder < drive.nCylinders);
                drive.bSector++;
                var bSectorStart = (1 - drive.bSectorBias);
                if (drive.bSector >= drive.nSectors + bSectorStart) {
                    drive.bSector = bSectorStart;
                    drive.bHead++;
                    if (drive.bHead >= drive.nHeads) {
                        drive.bHead = 0;
                        drive.wCylinder++;
                    }
                }
            };
            
            /**
             * writeBuffer(drive, b)
             *
             * NOTE: Since the HDC isn't aware of the extent of the transfer, all writeBuffer() can do is accept bytes
             * until the buffer is full.
             *
             * TODO: Support for HDC.XTC.DATA.CMD.READ_BUFFER is missing, and support for HDC.XTC.DATA.CMD.WRITE_BUFFER may not be complete;
             * tests required.
             *
             * @this {HDC}
             * @param {Object} drive
             * @param {number} b containing next byte to write
             * @return {number} (b unchanged; return -1 if command should be terminated)
             */
            HDC.prototype.writeBuffer = function(drive, b)
            {
                if (drive.ibSector < drive.abSector.length) {
                    drive.abSector[drive.ibSector++] = b;
                } else {
                    /*
                     * TODO: Determine the proper error code to return here.
                     */
                    drive.errorCode = HDC.XTC.DATA.ERR.NO_SECTOR;
                    b = -1;
                }
                return b;
            };
            
            /**
             * writeFormat(drive, b)
             *
             * @this {HDC}
             * @param {Object} drive
             * @param {number} b containing a format command byte
             * @return {number} (b if successful, -1 if command should be terminated)
             */
            HDC.prototype.writeFormat = function(drive, b)
            {
                if (drive.errorCode) return -1;
                drive.abFormat[drive.cbFormat++] = b;
                if (drive.cbFormat == drive.abFormat.length) {
                    drive.wCylinder = drive.abFormat[0];    // C
                    drive.bHead = drive.abFormat[1];        // H
                    drive.bSector = drive.abFormat[2];      // R
                    drive.nBytes = 128 << drive.abFormat[3];// N (0 => 128, 1 => 256, 2 => 512, 3 => 1024)
                    drive.cbFormat = 0;
            
                    if (DEBUG && this.messageEnabled()) {
                        this.printMessage("HDC.writeFormat(" + drive.wCylinder + ":" + drive.bHead + ":" + drive.bSector + ":" + drive.nBytes + ")");
                    }
            
                    for (var i = 0; i < drive.nBytes; i++) {
                        if (this.writeData(drive, drive.bFiller) < 0) {
                            return -1;
                        }
                    }
                    drive.cSectorsFormatted++;
                }
                if (drive.cSectorsFormatted >= drive.bSectorEnd) b = -1;
                return b;
            };
            
            /**
             * intBIOSDisk(addr)
             *
             * NOTE: This function differentiates HDC requests from FDC requests, based on whether the INT 0x13 drive number
             * in DL is >= 0x80.
             *
             * HACK: The HDC BIOS code for both INT 0x13/AH=0x00 and INT 0x13/AH=0x09 calls "INIT_DRV" @C800:0427, which is
             * hard-coded to issue the HDC.XTC.DATA.CMD.INIT_DRIVE command for BOTH drives 0 and 1 (aka drive numbers 0x80 and
             * 0x81), regardless of the drive number specified in DL; this means that the HDC.XTC.DATA.CMD.INIT_DRIVE command
             * must always succeed for drive 1 if it also succeeds for drive 0 -- even if there is no drive 1.  Bizarre, but OK,
             * whatever.
             *
             * So assuming we a have drive 0, when the power-on diagnostics in "DISK_SETUP" @C800:0003 call INT 0x13/AH=0x09
             * (@C800:00DB) for drive 0, it must succeed.  No problem.  But when "DISK_SETUP" starts probing for additional drives,
             * it first issues INT 0x13/AH=0x00, followed by INT 0x13/AH=0x11, and finally INT 0x13/AH=0x09.  If the first
             * (AH=0x00) or third (AH=0x09) INT 0x13 fails, it quickly moves on (ie, it jumps to "POD_DONE").  But as we just
             * discussed, both those operations call "INIT_DRV", which can't return an error.  This means the only function that
             * can return an error in this context is the recalibrate function (AH=0x11).  That sucks, because the way the HDC
             * BIOS is written, it will loop for anywhere from 1.5 seconds to 25 seconds (depending on whether the controller
             * is part of the "System Unit" or not; see port 0x213), attempting to recalibrate drive 1 until it finally times out.
             *
             * Normally, you'll only experience the 1.5 second delay, but even so, it's a ridiculous waste of time and a lot of
             * useless INT 0x13 calls.  So I monitor INT 0x13/AH=0x00 for DL >= 0x80 and set a special HDC.XTC.DATA.CMD.INIT_DRIVE
             * override flag (iDriveAllowFail) that will allow that command to fail, and in theory, make the the HDC BIOS
             * "DISK_SETUP" code much more efficient.
             *
             * @this {HDC}
             * @param {number} addr
             * @return {boolean} true to proceed with the INT 0x13 software interrupt, false to skip
             */
            HDC.prototype.intBIOSDisk = function(addr)
            {
                var AH = this.cpu.regEAX >> 8;
                var DL = this.cpu.regEDX & 0xff;
                if (!AH && DL > 0x80) this.iDriveAllowFail = DL - 0x80;
                return true;
            };
            
            /**
             * intBIOSDiskette(addr)
             *
             * When the HDC BIOS overwrites the ROM BIOS INT 0x13 address, it saves the original INT 0x13 address
             * in the INT 0x40 vector.  This function intercepts calls to that vector to work around a minor nuisance.
             *
             * The HDC BIOS's plan was simple, albeit slightly flawed: assign fixed disks drive numbers >= 0x80,
             * and whenever someone calls INT 0x13 with a drive number < 0x80, invoke the original INT 0x13 diskette
             * code via INT 0x40 and return via RET 2.
             *
             * Unfortunately, not all original INT 0x13 functions required a drive number in DL (eg, the "reset"
             * function, where AH=0).  And the HDC BIOS knew this, which is why, in the case of the "reset" function,
             * the HDC BIOS performs BOTH an INT 0x40 diskette reset AND an HDC reset -- it can't be sure which
             * controller the caller really wants to reset.
             *
             * An unfortunate side-effect of this behavior: when the HDC BIOS is initialized for the first time, it may
             * issue several resets internally, depending on whether there are 0, 1 or 2 hard disks installed, and each
             * of those resets also triggers completely useless diskette resets, each wasting up to two seconds waiting
             * for the FDC to interrupt.  The FDC tries to interrupt, but it can't, because at this early stage of
             * ROM BIOS initialization, IRQ.FDC hasn't been unmasked yet.
             *
             * My work-around: have the HDC component hook INT 0x40, and every time an INT 0x40 is issued with AH=0 and
             * IRQ.FDC masked, bypass the INT 0x40 interrupt.  This is as close as PCjs has come to patching any BIOS code
             * (something I've refused to do), and even here, I'm not doing it out of necessity, just annoyance.
             *
             * @this {HDC}
             * @param {number} addr
             * @return {boolean} true to proceed with the INT 0x40 software interrupt, false to skip
             */
            HDC.prototype.intBIOSDiskette = function(addr)
            {
                var AH = this.cpu.regEAX >> 8;
                if ((!AH && this.chipset && this.chipset.checkIMR(ChipSet.IRQ.FDC))) {
                    if (DEBUG) this.printMessage("HDC.intBIOSDiskette(): skipping useless INT 0x40 diskette reset");
                    return false;
                }
                return true;
            };
            
            /*
             * Port input notification tables
             */
            HDC.aXTCPortInput = {
                0x320:  HDC.prototype.inXTCData,
                0x321:  HDC.prototype.inXTCStatus,
                0x322:  HDC.prototype.inXTCConfig
            };
            
            HDC.aATCPortInput = {
                0x1F0:  HDC.prototype.inATCData,
                0x1F1:  HDC.prototype.inATCError,
                0x1F2:  HDC.prototype.inATCSecCnt,
                0x1F3:  HDC.prototype.inATCSecNum,
                0x1F4:  HDC.prototype.inATCCylLo,
                0x1F5:  HDC.prototype.inATCCylHi,
                0x1F6:  HDC.prototype.inATCDrvHd,
                0x1F7:  HDC.prototype.inATCStatus
            };
            
            /*
             * Port output notification tables
             */
            HDC.aXTCPortOutput = {
                0x320:  HDC.prototype.outXTCData,
                0x321:  HDC.prototype.outXTCReset,
                0x322:  HDC.prototype.outXTCPulse,
                0x323:  HDC.prototype.outXTCPattern,
                /*
                 * The PC XT Fixed Disk BIOS includes some additional "housekeeping" that it performs
                 * not only on port 0x323 but also on three additional ports, at increments of 4 (see all
                 * references to "RESET INT/DMA MASK" in the Fixed Disk BIOS).  It's not clear to me if
                 * those ports refer to additional HDC controllers, and I haven't seen other references to
                 * them, but in any case, they represent a lot of "I/O noise" that we simply squelch here.
                 */
                0x327:  HDC.prototype.outXTCNoise,
                0x32B:  HDC.prototype.outXTCNoise,
                0x32F:  HDC.prototype.outXTCNoise
            };
            
            HDC.aATCPortOutput = {
                0x1F0:  HDC.prototype.outATCData,
                0x1F1:  HDC.prototype.outATCWPreC,
                0x1F2:  HDC.prototype.outATCSecCnt,
                0x1F3:  HDC.prototype.outATCSecNum,
                0x1F4:  HDC.prototype.outATCCylLo,
                0x1F5:  HDC.prototype.outATCCylHi,
                0x1F6:  HDC.prototype.outATCDrvHd,
                0x1F7:  HDC.prototype.outATCCommand,
                0x3F6:  HDC.prototype.outATCFDR
            };
            
            /**
             * HDC.init()
             *
             * This function operates on every HTML element of class "hdc", extracting the
             * JSON-encoded parameters for the HDC constructor from the element's "data-value"
             * attribute, invoking the constructor to create a HDC component, and then binding
             * any associated HTML controls to the new component.
             */
            HDC.init = function()
            {
                var aeHDC = Component.getElementsByClass(window.document, PCJSCLASS, "hdc");
                for (var iHDC = 0; iHDC < aeHDC.length; iHDC++) {
                    var eHDC = aeHDC[iHDC];
                    var parmsHDC = Component.getComponentParms(eHDC);
                    var hdc = new HDC(parmsHDC);
                    Component.bindComponentControls(hdc, eHDC, PCJSCLASS);
                }
            };
            
            /*
             * Initialize every Hard Drive Controller (HDC) module on the page.
             */
            web.onInit(HDC.init);
            
            if (typeof module !== 'undefined') module.exports = HDC;
            
          • interrupts.js
            /**
             * @fileoverview PCjs-specific BIOS/DOS interrupt definitions.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2014-Dec-11
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            /*
             * Components that previously used Debugger interrupt definitions by including:
             *
             *     var Debugger = require("./debugger");
             *
             * and using:
             *
             *      Debugger.INT.FOO
             *
             * must now instead include:
             *
             *      var Interrupts = require("./interrupts");
             *
             * and then replace all occurrences of "Debugger.INT.FOO" with "Interrupts.FOO.VECTOR".
             */
            
            var Interrupts = {
                VIDEO: {
                    VECTOR: 0x10
                },
                DISK: {
                    VECTOR: 0x13
                },
                CASSETTE: {
                    VECTOR: 0x15
                },
                KBD: {
                    VECTOR: 0x16
                },
                RTC: {
                    VECTOR: 0x1a
                },
                TIMER_TICK: {
                    VECTOR: 0x1c
                },
                DOS: {
                    VECTOR: 0x21
                },
                MOUSE: {
                    VECTOR: 0x33
                }
            };
            
            if (typeof module !== 'undefined') module.exports = Interrupts;
            
          • keyboard.js
            /**
             * @fileoverview Implements the PCjs Keyboard component.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Jun-20
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var str         = require("../../shared/lib/strlib");
                var web         = require("../../shared/lib/weblib");
                var Component   = require("../../shared/lib/component");
                var Messages    = require("./messages");
                var ChipSet     = require("./chipset");
                var State       = require("./state");
                var CPU         = require("./cpu");
            }
            
            /**
             * Keyboard(parmsKbd)
             *
             * The Keyboard component can be configured with the following (parmsKbd) properties:
             *
             *      model: model string; should be one of:
             *
             *          us83 (default)
             *          us84 (TODO: awaiting implementation)
             *          us101 (TODO: awaiting implementation)
             *
             * Its main purpose is to receive binding requests for various keyboard events, and to use those events
             * to simulate the PC's keyboard hardware.
             *
             * @constructor
             * @extends Component
             * @param {Object} parmsKbd
             */
            function Keyboard(parmsKbd)
            {
                Component.call(this, "Keyboard", parmsKbd, Keyboard, Messages.KEYBOARD);
            
                this.nDefaultModel = parmsKbd['model'];
            
                this.fMobile = web.isMobile();
                this.fMSIE = web.isUserAgent("MSIE");
                this.printMessage("mobile keyboard support: " + (this.fMobile? "true" : "false"));
            
                /*
                 * This is count of the number of "soft keyboard" keys present.  At the moment, its only
                 * purpose is to signal findBinding() whether to waste any time looking for SOFTCODE matches.
                 */
                this.cSoftCodes = 0;
            
                /*
                 * Updated by onFocusChange()
                 */
                this.fHasFocus = true;
            
                /*
                 * This is true whenever the physical Escape key is disabled (eg, by pointer locking code),
                 * giving us the opportunity to map a different physical key to machine's virtual Escape key.
                 */
                this.fEscapeDisabled = false;
            
                /*
                 * This is set whenever we notice a discrepancy between our internal CAPS_LOCK state and its
                 * apparent state; we check whenever aKeysActive has been emptied.
                 */
                this.fToggleCapsLock = false;
            
                /*
                 * New unified approach to key event processing: When we process a key on the "down" event,
                 * we check the aKeysActive array: if the key is already active, do nothing; otherwise, insert
                 * it into the table, generate the "make" scan code(s), and set a timeout for "repeat" if it's
                 * a repeatable key (most are).
                 *
                 * Similarly, when a key goes "up", if it's already not active, do nothing; otherwise, generate
                 * the "break" scan code(s), cancel any pending timeout, and remove it from the active key table.
                 *
                 * If a "press" event is received, then if the key is already active, remove it and (re)insert
                 * it at the head of the table, generate the "make" scan code(s), set nRepeat to -1, and set a
                 * timeout for "break".
                 *
                 * This requires an aKeysActive array that keeps track of the status of every active key; only the
                 * first entry in the array is allowed to repeat.  Each entry is a key object with the following
                 * properties:
                 *
                 *      simCode:    our simulated keyCode from onKeyDown, onKeyUp, or onKeyPress
                 *      fDown:      next state to simulate (true for down, false for up)
                 *      nRepeat:    > 0 if timer should generate more "make" scan code(s), -1 for "break" scan code(s)
                 *      timer:      timer for next key operation, if any
                 *
                 * Keys are inserted at the head of aKeysActive, using splice(0, 0, key), but not before zeroing
                 * nRepeat of any repeating key that already occupies the head (index 0), so that at most only one
                 * key (ie, the most recent) will ever be in a repeating state.
                 *
                 * IBM PC keyboard repeat behavior: when pressing CTRL, then C, and then releasing CTRL while still
                 * holding C, the repeated CTRL_C characters turn into 'c' characters.  We emulate that behavior.
                 * However, when pressing C, then CTRL, all repeating stops: not a single CTRL_C is generated, and
                 * even if the CTRL is released before the C, no more more 'c' characters are generated either.
                 * We do NOT fully emulate that behavior -- we DO stop the repeating, but we also generate one CTRL_C.
                 * More investigation is required, because I need to confirm whether the IBM keyboard automatically
                 * "breaks" all non-shift keys before it "makes" the CTRL.
                 */
                this.aKeysActive = [];
            
                this.msAutoRepeat   = 500;
                this.msNextRepeat   = 100;
                this.msAutoRelease  = 50;
                this.msInjectDelay  = 300;          // number of milliseconds between injected keystrokes
            
                /*
                 * HACK: We set fAllDown to false to ignore all down/up events for keys not explicitly marked as ONDOWN;
                 * even though that prevents those keys from being repeated properly (ie, at the simulation's repeat rate
                 * rather than the browser's repeat rate), it's the safest thing to do when dealing with international keyboards,
                 * because our mapping tables are designed for US keyboards, and testing all the permutations of international
                 * keyboards and web browsers is more work than I can take on right now.  TODO: Dig into this some day.
                 */
                this.fAllDown = false;
            
                this.setReady();
            }
            
            Component.subclass(Keyboard);
            
            /**
             * Alphanumeric and other common (printable) ASCII codes.
             *
             * TODO: Determine what we can do to get ALL constants like these inlined (enum doesn't seem to
             * get the job done); the problem seems to be limited to property references that use quotes, which
             * is why I've 'unquoted' as many of them as possible.
             *
             * @enum {number}
             */
            Keyboard.ASCII = {
             CTRL_A:  1, CTRL_C:  3, CTRL_Z: 26,
                ' ': 32,    '!': 33,    '"': 34,    '#': 35,    '$': 36,    '%': 37,    '&': 38,    "'": 39,
                '(': 40,    ')': 41,    '*': 42,    '+': 43,    ',': 44,    '-': 45,    '.': 46,    '/': 47,
                '0': 48,    '1': 49,    '2': 50,    '3': 51,    '4': 52,    '5': 53,    '6': 54,    '7': 55,
                '8': 56,    '9': 57,    ':': 58,    ';': 59,    '<': 60,    '=': 61,    '>': 62,    '?': 63,
                '@': 64,     A:  65,     B:  66,     C:  67,     D:  68,     E:  69,     F:  70,     G:  71,
                 H:  72,     I:  73,     J:  74,     K:  75,     L:  76,     M:  77,     N:  78,     O:  79,
                 P:  80,     Q:  81,     R:  82,     S:  83,     T:  84,     U:  85,     V:  86,     W:  87,
                 X:  88,     Y:  89,     Z:  90,    '[': 91,    '\\':92,    ']': 93,    '^': 94,    '_': 95,
                '`': 96,     a:  97,     b:  98,     c:  99,     d: 100,     e: 101,     f: 102,     g: 103,
                 h:  104,    i: 105,     j: 106,     k: 107,     l: 108,     m: 109,     n: 110,     o: 111,
                 p:  112,    q: 113,     r: 114,     s: 115,     t: 116,     u: 117,     v: 118,     w: 119,
                 x:  120,    y: 121,     z: 122,    '{':123,    '|':124,    '}':125,    '~':126
            };
            
            /**
             * Browser keyCodes we must pay particular attention to.  For the most part, these are
             * non-alphanumeric or function keys, some which may require special treatment (eg,
             * preventDefault() if returning false on the initial keyDown event is insufficient).
             *
             * keyCodes for most common ASCII keys can simply use the appropriate ASCII code above.
             *
             * Most of these represent non-ASCII keys (eg, the LEFT arrow key), yet for some reason,
             * browsers defined them using ASCII codes (eg, the LEFT arrow key uses the ASCII code
             * for '%' or 37).  This conflict is discussed further in the definition of CLICKCODE below.
             *
             * @enum {number}
             */
            Keyboard.KEYCODE = {
                /* 0x08 */ BS:          8,
                /* 0x09 */ TAB:         9,
                /* 0x0A */ LF:          10,
                /* 0x0D */ CR:          13,
                /* 0x10 */ SHIFT:       16,
                /* 0x11 */ CTRL:        17,
                /* 0x12 */ ALT:         18,
                /* 0x13 */ PAUSE:       19,         // PAUSE/BREAK
                /* 0x14 */ CAPS_LOCK:   20,
                /* 0x1B */ ESC:         27,
                /* 0x21 */ PGUP:        33,
                /* 0x22 */ PGDN:        34,
                /* 0x23 */ END:         35,
                /* 0x24 */ HOME:        36,
                /* 0x25 */ LEFT:        37,
                /* 0x26 */ UP:          38,
                /* 0x27 */ RIGHT:       39,
                /* 0x27 */ FF_QUOTE:    39,
                /* 0x28 */ DOWN:        40,
                /* 0x2C */ FF_COMMA:    44,
                /* 0x2C */ PRTSC:       44,
                /* 0x2D */ INS:         45,
                /* 0x2E */ DEL:         46,
                /* 0x2E */ FF_PERIOD:   46,
                /* 0x2F */ FF_SLASH:    47,
                /* 0x3B */ FF_SEMI:     59,
                /* 0x3D */ FF_EQUALS:   61,
                /* 0x5B */ CMD:         91,         // aka WIN
                /* 0x5B */ FF_LBRACK:   91,
                /* 0x5C */ FF_BSLASH:   92,
                /* 0x5D */ RCMD:        93,         // aka MENU
                /* 0x5D */ FF_RBRACK:   93,
                /* 0x60 */ NUM_INS:     96,         // 0
                /* 0x60 */ FF_BQUOTE:   96,
                /* 0x61 */ NUM_END:     97,         // 1
                /* 0x62 */ NUM_DOWN:    98,         // 2
                /* 0x63 */ NUM_PGDN:    99,         // 3
                /* 0x64 */ NUM_LEFT:    100,        // 4
                /* 0x65 */ NUM_CENTER:  101,        // 5
                /* 0x66 */ NUM_RIGHT:   102,        // 6
                /* 0x67 */ NUM_HOME:    103,        // 7
                /* 0x68 */ NUM_UP:      104,        // 8
                /* 0x69 */ NUM_PGUP:    105,        // 9
                /* 0x6A */ NUM_MUL:     106,
                /* 0x6B */ NUM_ADD:     107,
                /* 0x6D */ NUM_SUB:     109,
                /* 0x6E */ NUM_DEL:     110,        // .
                /* 0x6F */ NUM_DIV:     111,
                /* 0x70 */ F1:          112,
                /* 0x71 */ F2:          113,
                /* 0x72 */ F3:          114,
                /* 0x73 */ F4:          115,
                /* 0x74 */ F5:          116,
                /* 0x75 */ F6:          117,
                /* 0x76 */ F7:          118,
                /* 0x77 */ F8:          119,
                /* 0x78 */ F9:          120,
                /* 0x79 */ F10:         121,
                /* 0x7A */ F11:         122,
                /* 0x7B */ F12:         123,
                /* 0x90 */ NUM_LOCK:    144,
                /* 0x91 */ SCROLL_LOCK: 145,
                /* 0xAD */ FF_DASH:     173,
                /* 0xBA */ SEMI:        186,        // Firefox: 59
                /* 0xBB */ EQUALS:      187,        // Firefox: 61
                /* 0xBC */ COMMA:       188,        // Firefox: 44
                /* 0xBD */ DASH:        189,        // Firefox: 173
                /* 0xBE */ PERIOD:      190,        // Firefox: 46
                /* 0xBF */ SLASH:       191,        // Firefox: 47
                /* 0xC0 */ BQUOTE:      192,        // Firefox: 96
                /* 0xDB */ LBRACK:      219,        // Firefox: 91
                /* 0xDC */ BSLASH:      220,        // Firefox: 92
                /* 0xDD */ RBRACK:      221,        // Firefox: 93
                /* 0xDE */ QUOTE:       222,        // Firefox: 39
                /* 0xE0 */ FF_CMD:      224,        // Firefox only (used for both CMD and RCMD)
                //
                // The following biases use what I'll call Decimal Coded Binary or DCB (the opposite of BCD),
                // where the thousands digit is used to store the sum of "binary" digits 1 and/or 2 and/or 4.
                //
                // Technically, that makes it DCO (Decimal Coded Octal), but then again, BCD should have really
                // been called HCD (Hexadecimal Coded Decimal), so if "they" can take liberties, so can I.
                //
                // ONDOWN is a bias we add to browser keyCodes that we want to handle on "down" rather than on "press".
                //
                ONDOWN:                 1000,
                //
                // ONRIGHT is a bias we add to browser keyCodes that need to check for a "right" location (default is "left")
                //
                ONRIGHT:                2000,
                //
                // FAKE is a bias we add to signal these are fake keyCodes corresponding to internal keystroke combinations.
                // The actual values are for internal use only and merely need to be unique and used consistently.
                //
                FAKE:                   4000
            };
            
            /*
             * Maps "stupid" keyCodes to their "non-stupid" counterparts
             */
            Keyboard.STUPID_KEYCODES = {};
            Keyboard.STUPID_KEYCODES[Keyboard.KEYCODE.SEMI]    = Keyboard.ASCII[';'];   // 186 -> 59
            Keyboard.STUPID_KEYCODES[Keyboard.KEYCODE.EQUALS]  = Keyboard.ASCII['='];   // 187 -> 61
            Keyboard.STUPID_KEYCODES[Keyboard.KEYCODE.COMMA]   = Keyboard.ASCII[','];   // 188 -> 44
            Keyboard.STUPID_KEYCODES[Keyboard.KEYCODE.DASH]    = Keyboard.ASCII['-'];   // 189 -> 45
            Keyboard.STUPID_KEYCODES[Keyboard.KEYCODE.PERIOD]  = Keyboard.ASCII['.'];   // 190 -> 46
            Keyboard.STUPID_KEYCODES[Keyboard.KEYCODE.SLASH]   = Keyboard.ASCII['/'];   // 191 -> 47
            Keyboard.STUPID_KEYCODES[Keyboard.KEYCODE.BQUOTE]  = Keyboard.ASCII['`'];   // 192 -> 96
            Keyboard.STUPID_KEYCODES[Keyboard.KEYCODE.LBRACK]  = Keyboard.ASCII['['];   // 219 -> 91
            Keyboard.STUPID_KEYCODES[Keyboard.KEYCODE.BSLASH]  = Keyboard.ASCII['\\'];  // 220 -> 92
            Keyboard.STUPID_KEYCODES[Keyboard.KEYCODE.RBRACK]  = Keyboard.ASCII[']'];   // 221 -> 93
            Keyboard.STUPID_KEYCODES[Keyboard.KEYCODE.QUOTE]   = Keyboard.ASCII["'"];   // 222 -> 39
            Keyboard.STUPID_KEYCODES[Keyboard.KEYCODE.FF_DASH] = Keyboard.ASCII['-'];
            
            /*
             * Maps unshifted keyCodes to their shifted counterparts; to be used when a shift-key is down.
             * Alphabetic characters are handled in code, since they must also take CAPS_LOCK into consideration.
             */
            Keyboard.SHIFTED_KEYCODES = {};
            Keyboard.SHIFTED_KEYCODES[Keyboard.ASCII['1']]     = Keyboard.ASCII['!'];
            Keyboard.SHIFTED_KEYCODES[Keyboard.ASCII['2']]     = Keyboard.ASCII['@'];
            Keyboard.SHIFTED_KEYCODES[Keyboard.ASCII['3']]     = Keyboard.ASCII['#'];
            Keyboard.SHIFTED_KEYCODES[Keyboard.ASCII['4']]     = Keyboard.ASCII['$'];
            Keyboard.SHIFTED_KEYCODES[Keyboard.ASCII['5']]     = Keyboard.ASCII['%'];
            Keyboard.SHIFTED_KEYCODES[Keyboard.ASCII['6']]     = Keyboard.ASCII['^'];
            Keyboard.SHIFTED_KEYCODES[Keyboard.ASCII['7']]     = Keyboard.ASCII['&'];
            Keyboard.SHIFTED_KEYCODES[Keyboard.ASCII['8']]     = Keyboard.ASCII['*'];
            Keyboard.SHIFTED_KEYCODES[Keyboard.ASCII['9']]     = Keyboard.ASCII['('];
            Keyboard.SHIFTED_KEYCODES[Keyboard.ASCII['0']]     = Keyboard.ASCII[')'];
            Keyboard.SHIFTED_KEYCODES[Keyboard.KEYCODE.SEMI]   = Keyboard.ASCII[':'];
            Keyboard.SHIFTED_KEYCODES[Keyboard.KEYCODE.EQUALS] = Keyboard.ASCII['+'];
            Keyboard.SHIFTED_KEYCODES[Keyboard.KEYCODE.COMMA]  = Keyboard.ASCII['<'];
            Keyboard.SHIFTED_KEYCODES[Keyboard.KEYCODE.DASH]   = Keyboard.ASCII['_'];
            Keyboard.SHIFTED_KEYCODES[Keyboard.KEYCODE.PERIOD] = Keyboard.ASCII['>'];
            Keyboard.SHIFTED_KEYCODES[Keyboard.KEYCODE.SLASH]  = Keyboard.ASCII['?'];
            Keyboard.SHIFTED_KEYCODES[Keyboard.KEYCODE.BQUOTE] = Keyboard.ASCII['~'];
            Keyboard.SHIFTED_KEYCODES[Keyboard.KEYCODE.LBRACK] = Keyboard.ASCII['{'];
            Keyboard.SHIFTED_KEYCODES[Keyboard.KEYCODE.BSLASH] = Keyboard.ASCII['|'];
            Keyboard.SHIFTED_KEYCODES[Keyboard.KEYCODE.RBRACK] = Keyboard.ASCII['}'];
            Keyboard.SHIFTED_KEYCODES[Keyboard.KEYCODE.QUOTE]  = Keyboard.ASCII['"'];
            Keyboard.SHIFTED_KEYCODES[Keyboard.KEYCODE.FF_DASH]   = Keyboard.ASCII['_'];
            Keyboard.SHIFTED_KEYCODES[Keyboard.KEYCODE.FF_EQUALS] = Keyboard.ASCII['+'];
            Keyboard.SHIFTED_KEYCODES[Keyboard.KEYCODE.FF_SEMI]   = Keyboard.ASCII[':'];
            
            Keyboard.SIMCODE = {
                BS:           Keyboard.KEYCODE.BS          + Keyboard.KEYCODE.ONDOWN,
                TAB:          Keyboard.KEYCODE.TAB         + Keyboard.KEYCODE.ONDOWN,
                SHIFT:        Keyboard.KEYCODE.SHIFT       + Keyboard.KEYCODE.ONDOWN,
                RSHIFT:       Keyboard.KEYCODE.SHIFT       + Keyboard.KEYCODE.ONDOWN + Keyboard.KEYCODE.ONRIGHT,
                CTRL:         Keyboard.KEYCODE.CTRL        + Keyboard.KEYCODE.ONDOWN,
                ALT:          Keyboard.KEYCODE.ALT         + Keyboard.KEYCODE.ONDOWN,
                CAPS_LOCK:    Keyboard.KEYCODE.CAPS_LOCK   + Keyboard.KEYCODE.ONDOWN,
                ESC:          Keyboard.KEYCODE.ESC         + Keyboard.KEYCODE.ONDOWN,
                F1:           Keyboard.KEYCODE.F1          + Keyboard.KEYCODE.ONDOWN,
                F2:           Keyboard.KEYCODE.F2          + Keyboard.KEYCODE.ONDOWN,
                F3:           Keyboard.KEYCODE.F3          + Keyboard.KEYCODE.ONDOWN,
                F4:           Keyboard.KEYCODE.F4          + Keyboard.KEYCODE.ONDOWN,
                F5:           Keyboard.KEYCODE.F5          + Keyboard.KEYCODE.ONDOWN,
                F6:           Keyboard.KEYCODE.F6          + Keyboard.KEYCODE.ONDOWN,
                F7:           Keyboard.KEYCODE.F7          + Keyboard.KEYCODE.ONDOWN,
                F8:           Keyboard.KEYCODE.F8          + Keyboard.KEYCODE.ONDOWN,
                F9:           Keyboard.KEYCODE.F9          + Keyboard.KEYCODE.ONDOWN,
                F10:          Keyboard.KEYCODE.F10         + Keyboard.KEYCODE.ONDOWN,
                F11:          Keyboard.KEYCODE.F11         + Keyboard.KEYCODE.ONDOWN,
                F12:          Keyboard.KEYCODE.F12         + Keyboard.KEYCODE.ONDOWN,
                NUM_LOCK:     Keyboard.KEYCODE.NUM_LOCK    + Keyboard.KEYCODE.ONDOWN,
                SCROLL_LOCK:  Keyboard.KEYCODE.SCROLL_LOCK + Keyboard.KEYCODE.ONDOWN,
                PRTSC:        Keyboard.KEYCODE.PRTSC       + Keyboard.KEYCODE.ONDOWN,
                HOME:         Keyboard.KEYCODE.HOME        + Keyboard.KEYCODE.ONDOWN,
                UP:           Keyboard.KEYCODE.UP          + Keyboard.KEYCODE.ONDOWN,
                PGUP:         Keyboard.KEYCODE.PGUP        + Keyboard.KEYCODE.ONDOWN,
                NUM_SUB:      Keyboard.KEYCODE.NUM_SUB     + Keyboard.KEYCODE.ONDOWN,
                LEFT:         Keyboard.KEYCODE.LEFT        + Keyboard.KEYCODE.ONDOWN,
                NUM_CENTER:   Keyboard.KEYCODE.NUM_CENTER  + Keyboard.KEYCODE.ONDOWN,
                RIGHT:        Keyboard.KEYCODE.RIGHT       + Keyboard.KEYCODE.ONDOWN,
                NUM_ADD:      Keyboard.KEYCODE.NUM_ADD     + Keyboard.KEYCODE.ONDOWN,
                END:          Keyboard.KEYCODE.END         + Keyboard.KEYCODE.ONDOWN,
                DOWN:         Keyboard.KEYCODE.DOWN        + Keyboard.KEYCODE.ONDOWN,
                PGDN:         Keyboard.KEYCODE.PGDN        + Keyboard.KEYCODE.ONDOWN,
                INS:          Keyboard.KEYCODE.INS         + Keyboard.KEYCODE.ONDOWN,
                DEL:          Keyboard.KEYCODE.DEL         + Keyboard.KEYCODE.ONDOWN,
                CMD:          Keyboard.KEYCODE.CMD         + Keyboard.KEYCODE.ONDOWN,
                RCMD:         Keyboard.KEYCODE.RCMD        + Keyboard.KEYCODE.ONDOWN,
                FF_CMD:       Keyboard.KEYCODE.FF_CMD      + Keyboard.KEYCODE.ONDOWN,
                CTRL_C:       Keyboard.ASCII.CTRL_C        + Keyboard.KEYCODE.FAKE,
                CTRL_BREAK:   Keyboard.KEYCODE.BS          + Keyboard.KEYCODE.FAKE,
                CTRL_ALT_DEL: Keyboard.KEYCODE.DEL         + Keyboard.KEYCODE.FAKE
            };
            
            /*
             * Scan code constants
             */
            Keyboard.SCANCODE = {
                /* 0x01 */ ESC:         1,
                /* 0x02 */ ONE:         2,
                /* 0x03 */ TWO:         3,
                /* 0x04 */ THREE:       4,
                /* 0x05 */ FOUR:        5,
                /* 0x06 */ FIVE:        6,
                /* 0x07 */ SIX:         7,
                /* 0x08 */ SEVEN:       8,
                /* 0x09 */ EIGHT:       9,
                /* 0x0A */ NINE:        10,
                /* 0x0B */ ZERO:        11,
                /* 0x0C */ DASH:        12,
                /* 0x0D */ EQUALS:      13,
                /* 0x0E */ BS:          14,
                /* 0x0F */ TAB:         15,
                /* 0x10 */ Q:           16,
                /* 0x11 */ W:           17,
                /* 0x12 */ E:           18,
                /* 0x13 */ R:           19,
                /* 0x14 */ T:           20,
                /* 0x15 */ Y:           21,
                /* 0x16 */ U:           22,
                /* 0x17 */ I:           23,
                /* 0x18 */ O:           24,
                /* 0x19 */ P:           25,
                /* 0x1A */ LBRACK:      26,
                /* 0x1B */ RBRACK:      27,
                /* 0x1C */ ENTER:       28,
                /* 0x1D */ CTRL:        29,
                /* 0x1E */ A:           30,
                /* 0x1F */ S:           31,
                /* 0x20 */ D:           32,
                /* 0x21 */ F:           33,
                /* 0x22 */ G:           34,
                /* 0x23 */ H:           35,
                /* 0x24 */ J:           36,
                /* 0x25 */ K:           37,
                /* 0x26 */ L:           38,
                /* 0x27 */ SEMI:        39,
                /* 0x28 */ QUOTE:       40,
                /* 0x29 */ BQUOTE:      41,
                /* 0x2A */ SHIFT:       42,
                /* 0x2B */ BSLASH:      43,
                /* 0x2C */ Z:           44,
                /* 0x2D */ X:           45,
                /* 0x2E */ C:           46,
                /* 0x2F */ V:           47,
                /* 0x30 */ B:           48,
                /* 0x31 */ N:           49,
                /* 0x32 */ M:           50,
                /* 0x33 */ COMMA:       51,
                /* 0x34 */ PERIOD:      52,
                /* 0x35 */ SLASH:       53,
                /* 0x36 */ RSHIFT:      54,
                /* 0x37 */ PRTSC:       55,         // unshifted '*'; becomes dedicated 'Print Screen' key on 101-key keyboards
                /* 0x38 */ ALT:         56,
                /* 0x39 */ SPACE:       57,
                /* 0x3A */ CAPS_LOCK:   58,
                /* 0x3B */ F1:          59,
                /* 0x3C */ F2:          60,
                /* 0x3D */ F3:          61,
                /* 0x3E */ F4:          62,
                /* 0x3F */ F5:          63,
                /* 0x40 */ F6:          64,
                /* 0x41 */ F7:          65,
                /* 0x42 */ F8:          66,
                /* 0x43 */ F9:          67,
                /* 0x44 */ F10:         68,
                /* 0x45 */ NUM_LOCK:    69,
                /* 0x46 */ SCROLL_LOCK: 70,
                /* 0x47 */ NUM_HOME:    71,
                /* 0x48 */ NUM_UP:      72,
                /* 0x49 */ NUM_PGUP:    73,
                /* 0x4A */ NUM_SUB:     74,
                /* 0x4B */ NUM_LEFT:    75,
                /* 0x4C */ NUM_CENTER:  76,
                /* 0x4D */ NUM_RIGHT:   77,
                /* 0x4E */ NUM_ADD:     78,
                /* 0x4F */ NUM_END:     79,
                /* 0x50 */ NUM_DOWN:    80,
                /* 0x51 */ NUM_PGDN:    81,
                /* 0x52 */ NUM_INS:     82,
                /* 0x53 */ NUM_DEL:     83,
                /* 0x54 */ SYSREQ:      84,         // 84-key keyboard only (simulated with 'alt'+'prtsc' on 101-key keyboards)
                /* 0x54 */ PAUSE:       84,         // 101-key keyboard only
                /* 0x57 */ F11:         87,
                /* 0x58 */ F12:         88,
                /* 0x5B */ WIN:         91,         // aka CMD
                /* 0x5C */ RWIN:        92,
                /* 0x5D */ MENU:        93,         // aka CMD + ONRIGHT
                /* 0x7F */ MAKE:        127,
                /* 0x80 */ BREAK:       128,
                /* 0xE0 */ EXTEND1:     224,
                /* 0xE1 */ EXTEND2:     225
            };
            
            /**
             * The set of values that a browser may store in the 'location' property of a keyboard event object
             * which we also support.
             *
             * @enum {number}
             */
            Keyboard.LOCATION = {
                LEFT:           1,
                RIGHT:          2,
                NUMPAD:         3
            };
            
            /**
             * These internal "shift key" states are used to indicate BOTH the physical shift-key states (in bitsState)
             * and the simulated shift-key states (in bitsStateSim).  The LOCK keys are problematic in both cases: the
             * browsers give us no way to query the LOCK key states, so we can only infer them, and because they are "soft"
             * locks, the machine's notion of their state is subject to change at any time as well.  Granted, the IBM PC
             * ROM BIOS will store its LOCK states in the ROM BIOS Data Area (@0040:0017), but that's just a BIOS convention.
             *
             * Also, because this is purely for internal use, don't make the mistake of thinking that these bits have any
             * connection to the ROM BIOS bits @0040:0017 (they don't).  We emulate hardware, not ROMs.
             *
             * TODO: Consider taking notice of the ROM BIOS Data Area state anyway, even though I'd rather remain ROM-agnostic;
             * at the very least, it would help us keep our LOCK LEDs in sync with the machine's LOCK states.  However, the LED
             * issue will be largely moot (at least for MODEL_5170 machines) once we add support for PC AT keyboard LED commands.
             *
             * Note that right-hand state bits are equal to the left-hand bits shifted right 1 bit; makes sense, "right"? ;-)
             *
             * @enum {number}
             */
            Keyboard.STATE = {
                RSHIFT:         0x0001,
                SHIFT:          0x0002,
                RCTRL:          0x0004,             // 101-key keyboard only
                CTRL:           0x0008,
                CTRLS:          0x000c,
                RALT:           0x0010,             // 101-key keyboard only
                ALT:            0x0020,
                ALTS:           0x0030,
                RCMD:           0x0040,             // 101-key keyboard only
                CMD:            0x0080,             // 101-key keyboard only
                CMDS:           0x00c0,
                ALL_RIGHT:      0x0055,             // RSHIFT | RCTRL | RALT | RCMD
                ALL_SHIFT:      0x00ff,             // SHIFT | RSHIFT | CTRL | RCTRL | ALT | RALT | CMD | RCMD
                INSERT:         0x0100,             // TODO: Placeholder (we currently have no notion of any "insert" states)
                CAPS_LOCK:      0x0200,
                NUM_LOCK:       0x0400,
                SCROLL_LOCK:    0x0800,
                ALL_LOCKS:      0x0e00              // CAPS_LOCK | NUM_LOCK | SCROLL_LOCK
            };
            
            /**
             * Maps KEYCODES of shift/modifier keys to their corresponding (default) STATES bit above.
             *
             * @enum {number}
             */
            Keyboard.KEYSTATES = {};
            Keyboard.KEYSTATES[Keyboard.SIMCODE.RSHIFT]      = Keyboard.STATE.RSHIFT;
            Keyboard.KEYSTATES[Keyboard.SIMCODE.SHIFT]       = Keyboard.STATE.SHIFT;
            Keyboard.KEYSTATES[Keyboard.SIMCODE.CTRL]        = Keyboard.STATE.CTRL;
            Keyboard.KEYSTATES[Keyboard.SIMCODE.ALT]         = Keyboard.STATE.ALT;
            Keyboard.KEYSTATES[Keyboard.SIMCODE.CMD]         = Keyboard.STATE.CMD;
            Keyboard.KEYSTATES[Keyboard.SIMCODE.RCMD]        = Keyboard.STATE.RCMD;
            Keyboard.KEYSTATES[Keyboard.SIMCODE.FF_CMD]      = Keyboard.STATE.CMD;
            Keyboard.KEYSTATES[Keyboard.SIMCODE.CAPS_LOCK]   = Keyboard.STATE.CAPS_LOCK;
            Keyboard.KEYSTATES[Keyboard.SIMCODE.NUM_LOCK]    = Keyboard.STATE.NUM_LOCK;
            Keyboard.KEYSTATES[Keyboard.SIMCODE.SCROLL_LOCK] = Keyboard.STATE.SCROLL_LOCK;
            
            /**
             * Maps CLICKCODE (string) to SIMCODE (number).
             *
             * @enum {number}
             */
            Keyboard.CLICKCODES = {
                'TAB':          Keyboard.SIMCODE.TAB,
                'ESC':          Keyboard.SIMCODE.ESC,
                'F1':           Keyboard.SIMCODE.F1,
                'F2':           Keyboard.SIMCODE.F2,
                'F3':           Keyboard.SIMCODE.F3,
                'F4':           Keyboard.SIMCODE.F4,
                'F5':           Keyboard.SIMCODE.F5,
                'F6':           Keyboard.SIMCODE.F6,
                'F7':           Keyboard.SIMCODE.F7,
                'F8':           Keyboard.SIMCODE.F8,
                'F9':           Keyboard.SIMCODE.F9,
                'F10':          Keyboard.SIMCODE.F10,
                'LEFT':         Keyboard.SIMCODE.LEFT,      // formerly "left-arrow"
                'UP':           Keyboard.SIMCODE.UP,        // formerly "up-arrow"
                'RIGHT':        Keyboard.SIMCODE.RIGHT,     // formerly "right-arrow"
                'DOWN':         Keyboard.SIMCODE.DOWN,      // formerly "down-arrow"
                /*
                 * These bindings are for convenience (common key combinations that can be bound to a single control)
                 */
                'CTRL_C':       Keyboard.SIMCODE.CTRL_C,
                'CTRL_BREAK':   Keyboard.SIMCODE.CTRL_BREAK,
                'CTRL_ALT_DEL': Keyboard.SIMCODE.CTRL_ALT_DEL
            };
            
            /**
             * Maps SOFTCODE (string) to KEYCODE or SIMCODE (number).
             *
             * We define identifiers for all possible keys, based on their primary (unshifted) character or function.
             * This also serves as a definition of all supported keys, making it possible to create full-featured
             * "soft keyboards".
             *
             * One exception to the (unshifted) rule above is 'prtsc': on the original IBM 83-key and 84-key keyboards,
             * its primary (unshifted) character was '*', but on 101-key keyboards, it became a separate key ('prtsc',
             * now labeled "Print Screen"), as did the num-pad '*' ('num-mul'), so 'prtsc' seems worthy of an exception
             * to the rule.
             *
             * On 83-key and 84-key keyboards, 'ctrl'+'num-lock' triggered a "pause" operation and 'ctrl'+'scroll-lock'
             * triggered a "break" operation.
             *
             * On 101-key keyboards, IBM decided to move both those special operations to a new 'pause' ("Pause/Break")
             * key, near the new dedicated 'prtsc' ("Print Screen/SysRq") key -- and to drop the "e" from "SysReq".
             * Those keys behave as follows:
             *
             *      When 'pause' is pressed alone, it generates 0xe1 0x1d 0x45 0xe1 0x9d 0xc5 on make (nothing on break),
             *      which essentially simulates the make-and-break of the 'ctrl' and 'num-lock' keys (ignoring the 0xe1),
             *      triggering a "pause" operation.
             *
             *      When 'pause' is pressed with 'ctrl', it generates 0xe0 0x46 0xe0 0xc6 on make (nothing on break) and
             *      does not repeat, which essentially simulates the make-and-break of 'scroll-lock', which, in conjunction
             *      with the separate make-and-break of 'ctrl', triggers a "break" operation.
             *
             *      When 'prtsc' is pressed alone, it generates 0xe0 0x2a 0xe0 0x37, simulating the make of both 'shift'
             *      and 'prtsc'; when pressed with 'shift' or 'ctrl', it generates only 0xe0 0x37; and when pressed with
             *      'alt', it generates only 0x54 (to simulate 'sysreq').
             *
             *      TODO: Implement the above behaviors.
             *
             * All key identifiers must be quotable using single-quotes, because that's how components.xsl will encode them
             * *inside* the "data-value" attribute of the corresponding HTML control.  Which, in turn, is why the single-quote
             * key is defined as 'quote' rather than "'".  Similarly, if there was unshifted "double-quote" key, it could
             * not be called '"', because components.xsl quotes the *entire* "data-value" attribute using double-quotes.
             *
             * In the (informal) numbering of keys below, two keys are deliberately numbered 84, reflecting the fact that
             * the 'sysreq' key was added to the 84-key keyboard but then dropped from the 101-key keyboard as a stand-alone key.
             *
             * @enum {number}
             */
            Keyboard.SOFTCODES = {
                /*  1 */    'esc':          Keyboard.SIMCODE.ESC,
                /*  2 */    '1':            Keyboard.ASCII['1'],
                /*  3 */    '2':            Keyboard.ASCII['2'],
                /*  4 */    '3':            Keyboard.ASCII['3'],
                /*  5 */    '4':            Keyboard.ASCII['4'],
                /*  6 */    '5':            Keyboard.ASCII['5'],
                /*  7 */    '6':            Keyboard.ASCII['6'],
                /*  8 */    '7':            Keyboard.ASCII['7'],
                /*  9 */    '8':            Keyboard.ASCII['8'],
                /* 10 */    '9':            Keyboard.ASCII['9'],
                /* 11 */    '0':            Keyboard.ASCII['0'],
                /* 12 */    '-':            Keyboard.ASCII['-'],
                /* 13 */    '=':            Keyboard.ASCII['='],
                /* 14 */    'bs':           Keyboard.SIMCODE.BS,
                /* 15 */    'tab':          Keyboard.SIMCODE.TAB,
                /* 16 */    'q':            Keyboard.ASCII.Q,
                /* 17 */    'w':            Keyboard.ASCII.W,
                /* 18 */    'e':            Keyboard.ASCII.E,
                /* 19 */    'r':            Keyboard.ASCII.R,
                /* 20 */    't':            Keyboard.ASCII.T,
                /* 21 */    'y':            Keyboard.ASCII.Y,
                /* 22 */    'u':            Keyboard.ASCII.U,
                /* 23 */    'i':            Keyboard.ASCII.I,
                /* 24 */    'o':            Keyboard.ASCII.O,
                /* 25 */    'p':            Keyboard.ASCII.P,
                /* 26 */    '[':            Keyboard.ASCII['['],
                /* 27 */    ']':            Keyboard.ASCII[']'],
                /* 28 */    'enter':        Keyboard.KEYCODE.CR,
                /* 29 */    'ctrl':         Keyboard.SIMCODE.CTRL,
                /* 30 */    'a':            Keyboard.ASCII.A,
                /* 31 */    's':            Keyboard.ASCII.S,
                /* 32 */    'd':            Keyboard.ASCII.D,
                /* 33 */    'f':            Keyboard.ASCII.F,
                /* 34 */    'g':            Keyboard.ASCII.G,
                /* 35 */    'h':            Keyboard.ASCII.H,
                /* 36 */    'j':            Keyboard.ASCII.J,
                /* 37 */    'k':            Keyboard.ASCII.K,
                /* 38 */    'l':            Keyboard.ASCII.L,
                /* 39 */    ';':            Keyboard.ASCII[';'],
                /* 40 */    'quote':        Keyboard.ASCII["'"],            // formerly "squote"
                /* 41 */    '`':            Keyboard.ASCII['`'],            // formerly "bquote"
                /* 42 */    'shift':        Keyboard.SIMCODE.SHIFT,         // formerly "lshift"
                /* 43 */    '\\':           Keyboard.ASCII['\\'],           // formerly "bslash"
                /* 44 */    'z':            Keyboard.ASCII.Z,
                /* 45 */    'x':            Keyboard.ASCII.X,
                /* 46 */    'c':            Keyboard.ASCII.C,
                /* 47 */    'v':            Keyboard.ASCII.V,
                /* 48 */    'b':            Keyboard.ASCII.B,
                /* 49 */    'n':            Keyboard.ASCII.N,
                /* 50 */    'm':            Keyboard.ASCII.M,
                /* 51 */    ',':            Keyboard.ASCII[','],
                /* 52 */    '.':            Keyboard.ASCII['.'],
                /* 53 */    '/':            Keyboard.ASCII['/'],
                /* 54 */    'right-shift':  Keyboard.SIMCODE.RSHIFT,        // formerly "rshift"
                /* 55 */    'prtsc':        Keyboard.SIMCODE.PRTSC,         // unshifted '*'; becomes dedicated 'Print Screen' key on 101-key keyboards
                /* 56 */    'alt':          Keyboard.SIMCODE.ALT,
                /* 57 */    'space':        Keyboard.ASCII[' '],
                /* 58 */    'caps-lock':    Keyboard.SIMCODE.CAPS_LOCK,
                /* 59 */    'f1':           Keyboard.SIMCODE.F1,
                /* 60 */    'f2':           Keyboard.SIMCODE.F2,
                /* 61 */    'f3':           Keyboard.SIMCODE.F3,
                /* 62 */    'f4':           Keyboard.SIMCODE.F4,
                /* 63 */    'f5':           Keyboard.SIMCODE.F5,
                /* 64 */    'f6':           Keyboard.SIMCODE.F6,
                /* 65 */    'f7':           Keyboard.SIMCODE.F7,
                /* 66 */    'f8':           Keyboard.SIMCODE.F8,
                /* 67 */    'f9':           Keyboard.SIMCODE.F9,
                /* 68 */    'f10':          Keyboard.SIMCODE.F10,
                /* 69 */    'num-lock':     Keyboard.SIMCODE.NUM_LOCK,
                /* 70 */    'scroll-lock':  Keyboard.SIMCODE.SCROLL_LOCK,   // TODO: 0xe046 on 101-key keyboards?
                /* 71 */    'num-home':     Keyboard.SIMCODE.HOME,          // formerly "home"
                /* 72 */    'num-up':       Keyboard.SIMCODE.UP,            // formerly "up-arrow"
                /* 73 */    'num-pgup':     Keyboard.SIMCODE.PGUP,          // formerly "page-up"
                /* 74 */    'num-sub':      Keyboard.SIMCODE.NUM_SUB,       // formerly "num-minus"
                /* 75 */    'num-left':     Keyboard.SIMCODE.LEFT,          // formerly "left-arrow"
                /* 76 */    'num-center':   Keyboard.SIMCODE.NUM_CENTER,    // formerly "center"
                /* 77 */    'num-right':    Keyboard.SIMCODE.RIGHT,         // formerly "right-arrow"
                /* 78 */    'num-add':      Keyboard.SIMCODE.NUM_ADD,       // formerly "num-plus"
                /* 79 */    'num-end':      Keyboard.SIMCODE.END,           // formerly "end"
                /* 80 */    'num-down':     Keyboard.SIMCODE.DOWN,          // formerly "down-arrow"
                /* 81 */    'num-pgdn':     Keyboard.SIMCODE.PGDN,          // formerly "page-down"
                /* 82 */    'num-ins':      Keyboard.SIMCODE.INS,           // formerly "ins"
                /* 83 */    'num-del':      Keyboard.SIMCODE.DEL            // formerly "del"
            //  /* 84 */    'sysreq':       Keyboard.SCANCODE.SYSREQ,       // 84-key keyboard only (simulated with 'alt'+'prtsc' on 101-key keyboards)
            //  /* 84 */    'pause':        Keyboard.SCANCODE.PAUSE,        // 101-key keyboard only
            //  /* 85 */    'f11':          Keyboard.SCANCODE.F11,
            //  /* 86 */    'f12':          Keyboard.SCANCODE.F12,
            //  /* 87 */    'num-enter':    Keyboard.SCANCODE.EXTEND1 | (Keyboard.SCANCODE.ENTER << 8),
            //  /* 88 */    'right-ctrl':   Keyboard.SCANCODE.EXTEND1 | (Keyboard.SCANCODE.CTRL << 8),
            //  /* 89 */    'num-div':      Keyboard.SCANCODE.EXTEND1 | (Keyboard.SCANCODE.SLASH << 8),
            //  /* 90 */    'num-mul':      Keyboard.SCANCODE.EXTEND1 | (Keyboard.SCANCODE.PRTSC << 8),
            //  /* 91 */    'right-alt':    Keyboard.SCANCODE.EXTEND1 | (Keyboard.SCANCODE.ALT << 8),
            //  /* 92 */    'home':         Keyboard.SCANCODE.EXTEND1 | (Keyboard.SCANCODE.NUM_HOME << 8),
            //  /* 93 */    'up':           Keyboard.SCANCODE.EXTEND1 | (Keyboard.SCANCODE.NUM_UP << 8),
            //  /* 94 */    'pgup':         Keyboard.SCANCODE.EXTEND1 | (Keyboard.SCANCODE.NUM_PGUP << 8),
            //  /* 95 */    'left':         Keyboard.SCANCODE.EXTEND1 | (Keyboard.SCANCODE.NUM_LEFT << 8),
            //  /* 96 */    'right':        Keyboard.SCANCODE.EXTEND1 | (Keyboard.SCANCODE.NUM_RIGHT << 8),
            //  /* 97 */    'end':          Keyboard.SCANCODE.EXTEND1 | (Keyboard.SCANCODE.NUM_END << 8),
            //  /* 98 */    'down':         Keyboard.SCANCODE.EXTEND1 | (Keyboard.SCANCODE.NUM_DOWN << 8),
            //  /* 99 */    'pgdn':         Keyboard.SCANCODE.EXTEND1 | (Keyboard.SCANCODE.NUM_PGDN << 8),
            //  /*100 */    'ins':          Keyboard.SCANCODE.EXTEND1 | (Keyboard.SCANCODE.NUM_INS << 8),
            //  /*101 */    'del':          Keyboard.SCANCODE.EXTEND1 | (Keyboard.SCANCODE.NUM_DEL << 8),
            //              'win':          Keyboard.SCANCODE.EXTEND1 | (Keyboard.SCANCODE.WIN << 8),
            //              'right-win':    Keyboard.SCANCODE.EXTEND1 | (Keyboard.SCANCODE.RWIN << 8),
            //              'menu':         Keyboard.SCANCODE.EXTEND1 | (Keyboard.SCANCODE.MENU << 8)
            };
            
            /**
             * Maps "soft-key" definitions (above) of shift/modifier keys to their corresponding (default) STATES bit.
             *
             * @enum {number}
             */
            Keyboard.LEDSTATES = {
                'caps-lock':    Keyboard.STATE.CAPS_LOCK,
                'num-lock':     Keyboard.STATE.NUM_LOCK,
                'scroll-lock':  Keyboard.STATE.SCROLL_LOCK
            };
            
            /**
             * Maps SIMCODE (number) to SCANCODE (number(s)).
             *
             * This array is used by keySimulate() to lookup a given SIMCODE and convert it to a SCANCODE
             * (lower byte), plus any required shift key SCANCODES (upper bytes).
             *
             * Using keyCodes from keyPress events proved to be more robust than using keyCodes from keyDown and
             * keyUp events, in part because of differences in the way browsers generate the keyDown and keyUp events.
             * For example, Safari on iOS devices will not generate up/down events for shift keys, and for other keys,
             * the up/down events are usually generated after the actual press is complete, and in rapid succession.
             *
             * The other problem (which is more of a problem with keyboards like the C1P than any IBM keyboards) is
             * that the shift/modifier state for a character on the "source" keyboard may not match the shift/modifier
             * state for the same character on the "target" keyboard.  And since this code is inherited from C1Pjs,
             * we've inherited the same solution: keySimulate() has the ability to "undo" any states in bitsState
             * that conflict with the state(s) required for the character in question.
             *
             * @enum {number}
             */
            Keyboard.SIMCODES = {};
            Keyboard.SIMCODES[Keyboard.SIMCODE.ESC]          = Keyboard.SCANCODE.ESC;
            Keyboard.SIMCODES[Keyboard.ASCII['1']]           = Keyboard.SCANCODE.ONE;
            Keyboard.SIMCODES[Keyboard.ASCII['!']]           = Keyboard.SCANCODE.ONE    | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII['2']]           = Keyboard.SCANCODE.TWO;
            Keyboard.SIMCODES[Keyboard.ASCII['@']]           = Keyboard.SCANCODE.TWO    | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII['3']]           = Keyboard.SCANCODE.THREE;
            Keyboard.SIMCODES[Keyboard.ASCII['#']]           = Keyboard.SCANCODE.THREE  | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII['4']]           = Keyboard.SCANCODE.FOUR;
            Keyboard.SIMCODES[Keyboard.ASCII['$']]           = Keyboard.SCANCODE.FOUR   | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII['5']]           = Keyboard.SCANCODE.FIVE;
            Keyboard.SIMCODES[Keyboard.ASCII['%']]           = Keyboard.SCANCODE.FIVE   | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII['6']]           = Keyboard.SCANCODE.SIX;
            Keyboard.SIMCODES[Keyboard.ASCII['^']]           = Keyboard.SCANCODE.SIX    | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII['7']]           = Keyboard.SCANCODE.SEVEN;
            Keyboard.SIMCODES[Keyboard.ASCII['&']]           = Keyboard.SCANCODE.SEVEN  | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII['8']]           = Keyboard.SCANCODE.EIGHT;
            Keyboard.SIMCODES[Keyboard.ASCII['*']]           = Keyboard.SCANCODE.EIGHT  | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII['9']]           = Keyboard.SCANCODE.NINE;
            Keyboard.SIMCODES[Keyboard.ASCII['(']]           = Keyboard.SCANCODE.NINE   | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII['0']]           = Keyboard.SCANCODE.ZERO;
            Keyboard.SIMCODES[Keyboard.ASCII[')']]           = Keyboard.SCANCODE.ZERO   | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII['-']]           = Keyboard.SCANCODE.DASH;
            Keyboard.SIMCODES[Keyboard.ASCII['_']]           = Keyboard.SCANCODE.DASH   | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII['=']]           = Keyboard.SCANCODE.EQUALS;
            Keyboard.SIMCODES[Keyboard.ASCII['+']]           = Keyboard.SCANCODE.EQUALS | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.SIMCODE.BS]           = Keyboard.SCANCODE.BS;
            Keyboard.SIMCODES[Keyboard.SIMCODE.TAB]          = Keyboard.SCANCODE.TAB;
            Keyboard.SIMCODES[Keyboard.ASCII.q]              = Keyboard.SCANCODE.Q;
            Keyboard.SIMCODES[Keyboard.ASCII.Q]              = Keyboard.SCANCODE.Q      | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII.w]              = Keyboard.SCANCODE.W;
            Keyboard.SIMCODES[Keyboard.ASCII.W]              = Keyboard.SCANCODE.W      | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII.e]              = Keyboard.SCANCODE.E;
            Keyboard.SIMCODES[Keyboard.ASCII.E]              = Keyboard.SCANCODE.E      | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII.r]              = Keyboard.SCANCODE.R;
            Keyboard.SIMCODES[Keyboard.ASCII.R]              = Keyboard.SCANCODE.R      | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII.t]              = Keyboard.SCANCODE.T;
            Keyboard.SIMCODES[Keyboard.ASCII.T]              = Keyboard.SCANCODE.T      | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII.y]              = Keyboard.SCANCODE.Y;
            Keyboard.SIMCODES[Keyboard.ASCII.Y]              = Keyboard.SCANCODE.Y      | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII.u]              = Keyboard.SCANCODE.U;
            Keyboard.SIMCODES[Keyboard.ASCII.U]              = Keyboard.SCANCODE.U      | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII.i]              = Keyboard.SCANCODE.I;
            Keyboard.SIMCODES[Keyboard.ASCII.I]              = Keyboard.SCANCODE.I      | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII.o]              = Keyboard.SCANCODE.O;
            Keyboard.SIMCODES[Keyboard.ASCII.O]              = Keyboard.SCANCODE.O      | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII.p]              = Keyboard.SCANCODE.P;
            Keyboard.SIMCODES[Keyboard.ASCII.P]              = Keyboard.SCANCODE.P      | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII['[']]           = Keyboard.SCANCODE.LBRACK;
            Keyboard.SIMCODES[Keyboard.ASCII['{']]           = Keyboard.SCANCODE.LBRACK | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII[']']]           = Keyboard.SCANCODE.RBRACK;
            Keyboard.SIMCODES[Keyboard.ASCII['}']]           = Keyboard.SCANCODE.RBRACK | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.KEYCODE.CR]           = Keyboard.SCANCODE.ENTER;
            Keyboard.SIMCODES[Keyboard.SIMCODE.CTRL]         = Keyboard.SCANCODE.CTRL;
            Keyboard.SIMCODES[Keyboard.ASCII.a]              = Keyboard.SCANCODE.A;
            Keyboard.SIMCODES[Keyboard.ASCII.A]              = Keyboard.SCANCODE.A      | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII.s]              = Keyboard.SCANCODE.S;
            Keyboard.SIMCODES[Keyboard.ASCII.S]              = Keyboard.SCANCODE.S      | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII.d]              = Keyboard.SCANCODE.D;
            Keyboard.SIMCODES[Keyboard.ASCII.D]              = Keyboard.SCANCODE.D      | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII.f]              = Keyboard.SCANCODE.F;
            Keyboard.SIMCODES[Keyboard.ASCII.F]              = Keyboard.SCANCODE.F      | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII.g]              = Keyboard.SCANCODE.G;
            Keyboard.SIMCODES[Keyboard.ASCII.G]              = Keyboard.SCANCODE.G      | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII.h]              = Keyboard.SCANCODE.H;
            Keyboard.SIMCODES[Keyboard.ASCII.H]              = Keyboard.SCANCODE.H      | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII.j]              = Keyboard.SCANCODE.J;
            Keyboard.SIMCODES[Keyboard.ASCII.J]              = Keyboard.SCANCODE.J      | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII.k]              = Keyboard.SCANCODE.K;
            Keyboard.SIMCODES[Keyboard.ASCII.K]              = Keyboard.SCANCODE.K      | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII.l]              = Keyboard.SCANCODE.L;
            Keyboard.SIMCODES[Keyboard.ASCII.L]              = Keyboard.SCANCODE.L      | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII[';']]           = Keyboard.SCANCODE.SEMI;
            Keyboard.SIMCODES[Keyboard.ASCII[':']]           = Keyboard.SCANCODE.SEMI   | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII["'"]]           = Keyboard.SCANCODE.QUOTE;
            Keyboard.SIMCODES[Keyboard.ASCII['"']]           = Keyboard.SCANCODE.QUOTE  | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII['`']]           = Keyboard.SCANCODE.BQUOTE;
            Keyboard.SIMCODES[Keyboard.ASCII['~']]           = Keyboard.SCANCODE.BQUOTE | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.SIMCODE.SHIFT]        = Keyboard.SCANCODE.SHIFT;
            Keyboard.SIMCODES[Keyboard.ASCII['\\']]          = Keyboard.SCANCODE.BSLASH;
            Keyboard.SIMCODES[Keyboard.ASCII['|']]           = Keyboard.SCANCODE.BSLASH | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII.z]              = Keyboard.SCANCODE.Z;
            Keyboard.SIMCODES[Keyboard.ASCII.Z]              = Keyboard.SCANCODE.Z      | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII.x]              = Keyboard.SCANCODE.X;
            Keyboard.SIMCODES[Keyboard.ASCII.X]              = Keyboard.SCANCODE.X      | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII.c]              = Keyboard.SCANCODE.C;
            Keyboard.SIMCODES[Keyboard.ASCII.C]              = Keyboard.SCANCODE.C      | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII.v]              = Keyboard.SCANCODE.V;
            Keyboard.SIMCODES[Keyboard.ASCII.V]              = Keyboard.SCANCODE.V      | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII.b]              = Keyboard.SCANCODE.B;
            Keyboard.SIMCODES[Keyboard.ASCII.B]              = Keyboard.SCANCODE.B      | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII.n]              = Keyboard.SCANCODE.N;
            Keyboard.SIMCODES[Keyboard.ASCII.N]              = Keyboard.SCANCODE.N      | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII.m]              = Keyboard.SCANCODE.M;
            Keyboard.SIMCODES[Keyboard.ASCII.M]              = Keyboard.SCANCODE.M      | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII[',']]           = Keyboard.SCANCODE.COMMA;
            Keyboard.SIMCODES[Keyboard.ASCII['<']]           = Keyboard.SCANCODE.COMMA  | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII['.']]           = Keyboard.SCANCODE.PERIOD;
            Keyboard.SIMCODES[Keyboard.ASCII['>']]           = Keyboard.SCANCODE.PERIOD | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.ASCII['/']]           = Keyboard.SCANCODE.SLASH;
            Keyboard.SIMCODES[Keyboard.ASCII['?']]           = Keyboard.SCANCODE.SLASH  | (Keyboard.SCANCODE.SHIFT << 8);
            Keyboard.SIMCODES[Keyboard.SIMCODE.RSHIFT]       = Keyboard.SCANCODE.RSHIFT;
            Keyboard.SIMCODES[Keyboard.SIMCODE.PRTSC]        = Keyboard.SCANCODE.PRTSC;
            Keyboard.SIMCODES[Keyboard.SIMCODE.ALT]          = Keyboard.SCANCODE.ALT;
            Keyboard.SIMCODES[Keyboard.ASCII[' ']]           = Keyboard.SCANCODE.SPACE;
            Keyboard.SIMCODES[Keyboard.SIMCODE.CAPS_LOCK]    = Keyboard.SCANCODE.CAPS_LOCK;
            Keyboard.SIMCODES[Keyboard.SIMCODE.F1]           = Keyboard.SCANCODE.F1;
            Keyboard.SIMCODES[Keyboard.SIMCODE.F2]           = Keyboard.SCANCODE.F2;
            Keyboard.SIMCODES[Keyboard.SIMCODE.F3]           = Keyboard.SCANCODE.F3;
            Keyboard.SIMCODES[Keyboard.SIMCODE.F4]           = Keyboard.SCANCODE.F4;
            Keyboard.SIMCODES[Keyboard.SIMCODE.F5]           = Keyboard.SCANCODE.F5;
            Keyboard.SIMCODES[Keyboard.SIMCODE.F6]           = Keyboard.SCANCODE.F6;
            Keyboard.SIMCODES[Keyboard.SIMCODE.F7]           = Keyboard.SCANCODE.F7;
            Keyboard.SIMCODES[Keyboard.SIMCODE.F8]           = Keyboard.SCANCODE.F8;
            Keyboard.SIMCODES[Keyboard.SIMCODE.F9]           = Keyboard.SCANCODE.F9;
            Keyboard.SIMCODES[Keyboard.SIMCODE.F10]          = Keyboard.SCANCODE.F10;
            Keyboard.SIMCODES[Keyboard.SIMCODE.NUM_LOCK]     = Keyboard.SCANCODE.NUM_LOCK;
            Keyboard.SIMCODES[Keyboard.SIMCODE.SCROLL_LOCK]  = Keyboard.SCANCODE.SCROLL_LOCK;
            Keyboard.SIMCODES[Keyboard.SIMCODE.HOME]         = Keyboard.SCANCODE.NUM_HOME;
            Keyboard.SIMCODES[Keyboard.SIMCODE.UP]           = Keyboard.SCANCODE.NUM_UP;
            Keyboard.SIMCODES[Keyboard.SIMCODE.PGUP]         = Keyboard.SCANCODE.NUM_PGUP;
            Keyboard.SIMCODES[Keyboard.SIMCODE.NUM_SUB]      = Keyboard.SCANCODE.NUM_SUB;
            Keyboard.SIMCODES[Keyboard.SIMCODE.LEFT]         = Keyboard.SCANCODE.NUM_LEFT;
            Keyboard.SIMCODES[Keyboard.SIMCODE.NUM_CENTER]   = Keyboard.SCANCODE.NUM_CENTER;
            Keyboard.SIMCODES[Keyboard.SIMCODE.RIGHT]        = Keyboard.SCANCODE.NUM_RIGHT;
            Keyboard.SIMCODES[Keyboard.SIMCODE.NUM_ADD]      = Keyboard.SCANCODE.NUM_ADD;
            Keyboard.SIMCODES[Keyboard.SIMCODE.END]          = Keyboard.SCANCODE.NUM_END;
            Keyboard.SIMCODES[Keyboard.SIMCODE.DOWN]         = Keyboard.SCANCODE.NUM_DOWN;
            Keyboard.SIMCODES[Keyboard.SIMCODE.PGDN]         = Keyboard.SCANCODE.NUM_PGDN;
            Keyboard.SIMCODES[Keyboard.SIMCODE.INS]          = Keyboard.SCANCODE.NUM_INS;
            Keyboard.SIMCODES[Keyboard.SIMCODE.DEL]          = Keyboard.SCANCODE.NUM_DEL;
            /*
             * Entries beyond this point are for keys that existed only on 101-key keyboards (well, except for 'sysreq',
             * which also existed on the 84-key keyboard), which ALSO means that these keys essentially did not exist
             * for a MODEL_5150 or MODEL_5160 machine, because those machines could use only 83-key keyboards.  Remember
             * that IBM machines and IBM keyboards are our reference point here, so while there were undoubtedly 5150/5160
             * clones that could use newer keyboards, as well as 3rd-party keyboards that could work with older machines,
             * support for non-IBM configurations is left for another day.
             *
             * TODO: The only relevance of newer keyboards to older machines is the fact that you're probably using a newer
             * keyboard with your browser, which raises the question of what to do with newer keys that older machines
             * wouldn't understand.  I don't attempt to filter out any of the entries below based on machine model, but that
             * would seem like a wise thing to do.
             *
             * TODO: Add entries for 'num-mul', 'num-div', 'num-enter', the stand-alone arrow keys, etc, AND at the same time,
             * make sure that keys with multi-byte sequences (eg, 0xe0 0x1c) work properly.
             */
            Keyboard.SIMCODES[Keyboard.SIMCODE.F11]          = Keyboard.SCANCODE.F11;
            Keyboard.SIMCODES[Keyboard.SIMCODE.F12]          = Keyboard.SCANCODE.F12;
            Keyboard.SIMCODES[Keyboard.SIMCODE.CMD]          = Keyboard.SCANCODE.WIN;
            Keyboard.SIMCODES[Keyboard.SIMCODE.RCMD]         = Keyboard.SCANCODE.MENU;
            Keyboard.SIMCODES[Keyboard.SIMCODE.FF_CMD]       = Keyboard.SCANCODE.WIN;
            
            Keyboard.SIMCODES[Keyboard.SIMCODE.CTRL_C]       = Keyboard.SCANCODE.C           | (Keyboard.SCANCODE.CTRL << 8);
            Keyboard.SIMCODES[Keyboard.SIMCODE.CTRL_BREAK]   = Keyboard.SCANCODE.SCROLL_LOCK | (Keyboard.SCANCODE.CTRL << 8);
            Keyboard.SIMCODES[Keyboard.SIMCODE.CTRL_ALT_DEL] = Keyboard.SCANCODE.NUM_DEL     | (Keyboard.SCANCODE.CTRL << 8) | (Keyboard.SCANCODE.ALT << 16);
            
            /**
             * Commands that can be sent to the Keyboard via the 8042; see sendCmd()
             *
             * @enum {number}
             */
            Keyboard.CMD = {
                RESET:      0xFF,
                RESEND:     0xFE,
                DEF_ON:     0xF6,
                DEF_OFF:    0xF5,
                ENABLE:     0xF4,
                SET_RATE:   0xF3,
                ECHO:       0xEE,
                SET_LEDS:   0xED
            };
            
            /**
             * Command responses returned to the Keyboard via the 8042; see sendCmd()
             *
             * @enum {number}
             */
            Keyboard.CMDRES = {
                OVERRUN:    0x00,
                LOAD_TEST:  0x65,   // undocumented "LOAD MANUFACTURING TEST REQUEST" response code
                BAT_OK:     0xAA,   // Basic Assurance Test (BAT) succeeded
                ECHO:       0xEE,
                BREAK_PREF: 0xF0,   // break prefix
                ACK:        0xFA,
                BAT_FAIL:   0xFC,   // Basic Assurance Test (BAT) failed
                DIAG_FAIL:  0xFD,
                RESEND:     0xFE,
                BUFF_FULL:  0xFF    // TODO: Verify this response code (is it just for older 83-key keyboards?)
            };
            
            Keyboard.LIMIT = {
                MAX_SCANCODES: 20   // TODO: Verify this limit for newer keyboards (84-key and up)
            };
            
            /**
             * setBinding(sHTMLType, sBinding, control)
             *
             * @this {Keyboard}
             * @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
             * @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "esc")
             * @param {Object} control is the HTML control DOM object (eg, HTMLButtonElement)
             * @return {boolean} true if binding was successful, false if unrecognized binding request
             */
            Keyboard.prototype.setBinding = function(sHTMLType, sBinding, control)
            {
                /*
                 * There's a special binding that the Video component uses ("kbd") to effectively bind its
                 * screen to the entire keyboard, in Video.powerUp(); ie:
                 *
                 *      video.kbd.setBinding("canvas", "kbd", video.canvasScreen);
                 * or:
                 *      video.kbd.setBinding("textarea", "kbd", video.textareaScreen);
                 *
                 * However, it's also possible for the keyboard XML definition to define a control that serves
                 * a similar purpose; eg:
                 *
                 *      <control type="text" binding="kbd" width="2em">Kbd</control>
                 *
                 * The latter is purely experimental, while we work on finding ways to trigger the soft keyboard on
                 * certain pesky devices (like the Kindle Fire).  Note that even if you use the latter, the former will
                 * still be enabled (there's currently no way to configure the Video component to not bind its screen,
                 * but we could certainly add one if the need ever arose).
                 */
                var kbd = this;
                var id = sHTMLType + '-' + sBinding;
            
                if (this.bindings[id] === undefined) {
                    switch (sBinding) {
                    case "kbd":
                        /*
                         * Recording the binding ID prevents multiple controls (or components) from attempting to erroneously
                         * bind a control to the same ID, but in the case of a "dual display" configuration, we actually want
                         * to allow BOTH video components to call setBinding() for "kbd", so that it doesn't matter which
                         * display the user gives focus to.
                         *
                         *      this.bindings[id] = control;
                         */
                        control.onkeydown = function onKeyDown(event) {
                            return kbd.onKeyDown(event, true);
                        };
                        control.onkeypress = function onKeyPressKbd(event) {
                            return kbd.onKeyPress(event);
                        };
                        control.onkeyup = function onKeyUp(event) {
                            return kbd.onKeyDown(event, false);
                        };
                        return true;
            
                    case "caps-lock":
                        this.bindings[id] = control;
                        control.onclick = function onClickCapsLock(event) {
                            if (kbd.cpu) kbd.cpu.setFocus();
                            return kbd.toggleCapsLock();
                        };
                        return true;
            
                    case "num-lock":
                        this.bindings[id] = control;
                        control.onclick = function onClickNumLock(event) {
                            if (kbd.cpu) kbd.cpu.setFocus();
                            return kbd.toggleNumLock();
                        };
                        return true;
            
                    case "scroll-lock":
                        this.bindings[id] = control;
                        control.onclick = function onClickScrollLock(event) {
                            if (kbd.cpu) kbd.cpu.setFocus();
                            return kbd.toggleScrollLock();
                        };
                        return true;
            
                    default:
                        /*
                         * Maintain support for older button codes; eg, map button code "ctrl-c" to CLICKCODE "CTRL_C"
                         */
                        var sCode = sBinding.toUpperCase().replace(/-/g, '_');
                        if (Keyboard.CLICKCODES[sCode] !== undefined && sHTMLType == "button") {
                            this.bindings[id] = control;
                            control.onclick = function(kbd, sKey, simCode) {
                                return function onClickKeyboard(event) {
                                    if (!COMPILED && kbd.messageEnabled()) kbd.printMessage(sKey + " clicked", Messages.KEYS);
                                    if (kbd.cpu) kbd.cpu.setFocus();
                                    kbd.updateShiftState(simCode, true);    // future-proofing if/when any LOCK keys are added to CLICKCODES
                                    kbd.addActiveKey(simCode, true);
                                };
                            }(this, sCode, Keyboard.CLICKCODES[sCode]);
                            return true;
                        } else if (Keyboard.SOFTCODES[sBinding] !== undefined) {
                            this.cSoftCodes++;
                            this.bindings[id] = control;
                            var fnDown = function(kbd, sKey, simCode) {
                                return function onMouseOrTouchDownKeyboard(event) {
                                    kbd.addActiveKey(simCode);
                                };
                            }(this, sBinding, Keyboard.SOFTCODES[sBinding]);
                            var fnUp = function (kbd, sKey, simCode) {
                                return function onMouseOrTouchUpKeyboard(event) {
                                    kbd.removeActiveKey(simCode);
                                };
                            }(this, sBinding, Keyboard.SOFTCODES[sBinding]);
                            if ('ontouchstart' in window) {
                                control.ontouchstart = fnDown;
                                control.ontouchend = fnUp;
                            } else {
                                control.onmousedown = fnDown;
                                control.onmouseup = control.onmouseout = fnUp;
                            }
                            return true;
                        }
                        break;
                    }
                }
                return false;
            };
            
            /**
             * findBinding(simCode, sType, fDown)
             *
             * TODO: This function is woefully inefficient, because the SOFTCODES table is designed for converting
             * soft key presses into SIMCODES, whereas this function is doing the reverse: looking for the soft key,
             * if any, that corresponds to a SIMCODE, simply so we can provide visual feedback of keys activated
             * by other means (eg, real keyboard events, button clicks that generate key sequences like CTRL_ALT_DEL,
             * etc).
             *
             * To minimize this function's cost, we would want to dynamically create a reverse-lookup table after
             * all the setBinding() calls for the soft keys have been established; note that the reverse-lookup table
             * would contain MORE entries than the SOFTCODES table, because there are multiple simCodes that correspond
             * to a given soft key (eg, '1' and '!' both map to the same soft key).
             *
             * @this {Keyboard}
             * @param {number} simCode
             * @param {string} sType is the type of control (eg, "button" or "key")
             * @param {boolean} [fDown] is true if the key is going down, false if up, or undefined if unchanged
             * @return {Object} is the HTML control DOM object (eg, HTMLButtonElement), or undefined if no such control exists
             */
            Keyboard.prototype.findBinding = function(simCode, sType, fDown)
            {
                var control;
                if (this.cSoftCodes) {
                    for (var code in Keyboard.SHIFTED_KEYCODES) {
                        if (simCode == Keyboard.SHIFTED_KEYCODES[code]) {
                            simCode = +code;
                            code = Keyboard.STUPID_KEYCODES[code];
                            if (code) simCode = code;
                            break;
                        }
                    }
                    for (var sBinding in Keyboard.SOFTCODES) {
                        if (Keyboard.SOFTCODES[sBinding] == simCode || Keyboard.SOFTCODES[sBinding] == this.toUpperKey(simCode)) {
                            var id = sType + '-' + sBinding;
                            control = this.bindings[id];
                            if (control && fDown !== undefined) {
                                this.setSoftKeyState(control, fDown);
                            }
                            break;
                        }
                    }
                }
                return control;
            };
            
            /**
             * initBus(cmp, bus, cpu, dbg)
             *
             * @this {Keyboard}
             * @param {Computer} cmp
             * @param {Bus} bus
             * @param {X86CPU} cpu
             * @param {Debugger} dbg
             */
            Keyboard.prototype.initBus = function(cmp, bus, cpu, dbg)
            {
                this.bus = bus;
                this.cpu = cpu;
                this.dbg = dbg;
                this.chipset = cmp.getComponentByType("ChipSet");
            };
            
            /**
             * notifyEscape(fDisabled, fAllDown)
             *
             * When ESC is used by the browser to disable pointer lock, this gives us the option of mapping a different key to ESC.
             *
             * @this {Keyboard}
             * @param {boolean} fDisabled
             * @param {boolean} [fAllDown] (an experimental option to re-enable processing of all onkeydown/onkeyup events)
             */
            Keyboard.prototype.notifyEscape = function(fDisabled, fAllDown)
            {
                this.fEscapeDisabled = fDisabled;
                if (fAllDown !== undefined) this.fAllDown = fAllDown;
            };
            
            /**
             * setModel(nModel)
             *
             * @this {Keyboard}
             * @param {number} nModel
             */
            Keyboard.prototype.setModel = function(nModel)
            {
            };
            
            /**
             * resetDevice(fNotify)
             *
             * @this {Keyboard}
             * @param {boolean} [fNotify]
             */
            Keyboard.prototype.resetDevice = function(fNotify)
            {
                /*
                 * TODO: There's more to reset, like LED indicators, default type rate, and emptying the scan code buffer.
                 */
                this.printMessage("keyboard reset", Messages.KEYBOARD | Messages.PORT);
                this.abBuffer = [Keyboard.CMDRES.BAT_OK];
                this.fAdvance = true;
                if (fNotify && this.chipset) this.chipset.notifyKbdData(this.abBuffer[0]);
            };
            
            /**
             * setEnabled(fData, fClock)
             *
             * This is the ChipSet's primary interface for toggling keyboard "data" and "clock" lines.
             * For MODEL_5150 and MODEL_5160 machines, this function is called from the ChipSet's PPI_B
             * output handler.  For MODEL_5170 machines, this function is called when selected CMD
             * "data bytes" have been written.
             *
             * @this {Keyboard}
             * @param {boolean} fData is true if the keyboard simulated data line should be enabled
             * @param {boolean} fClock is true if the keyboard's simulated clock line should be enabled
             * @return {boolean} true if keyboard was re-enabled, false if not (or no change)
             */
            Keyboard.prototype.setEnabled = function(fData, fClock)
            {
                var fReset = false;
                if (this.fClock !== fClock) {
                    if (!COMPILED && this.messageEnabled(Messages.KEYBOARD | Messages.PORT)) {
                        this.printMessage("keyboard clock line changing to " + fClock, true);
                    }
                    /*
                     * Toggling the clock line low and then high signals a "reset", which we acknowledge once the
                     * data line is high as well.
                     */
                    this.fClock = this.fResetOnEnable = fClock;
                    /*
                     * Allow the next buffered scan code, if any, to advance.
                     */
                    if (fClock) this.fAdvance = true;
                }
                if (this.fData !== fData) {
                    if (!COMPILED && this.messageEnabled(Messages.KEYBOARD | Messages.PORT)) {
                        this.printMessage("keyboard data line changing to " + fData, true);
                    }
                    this.fData = fData;
                    /*
                     * TODO: Review this code; it was added during the early days of MODEL_5150 testing and may not be
                     * *exactly* what's called for here.
                     */
                    if (fData && !this.fResetOnEnable) {
                        this.shiftScanCode(true);
                    }
                }
                if (this.fData && this.fResetOnEnable) {
                    this.resetDevice(true);
                    this.fResetOnEnable = false;
                    fReset = true;
                }
                return fReset;
            };
            
            /**
             * sendCmd(bCmd)
             *
             * This is the ChipSet's primary interface for controlling "Model M" keyboards (ie, those used
             * with MODEL_5170 machines).  Commands are delivered through the ChipSet's 8042 Keyboard Controller.
             *
             * @this {Keyboard}
             * @param {number} bCmd should be one of the Keyboard.CMD.* command codes (Model M keyboards only)
             * @return {number} response should be one of the Keyboard.CMDRES.* response codes, or -1 if unrecognized
             */
            Keyboard.prototype.sendCmd = function(bCmd)
            {
                var b = -1;
                switch(bCmd) {
                case Keyboard.CMD.RESET:
                    b = Keyboard.CMDRES.ACK;
                    this.resetDevice();
                    break;
                default:
                    break;
                }
                return b;
            };
            
            /**
             * checkScanCode()
             *
             * This is the ChipSet's interface for checking data availability.
             *
             * Note that even if we have data, we don't provide it unless fAdvance is set as well.
             * This ensures that we wait until the ROM to disable and re-enable the controller before
             * making more data available.
             *
             * @this {Keyboard}
             * @return {number} next scan code, or 0 if none
             */
            Keyboard.prototype.checkScanCode = function()
            {
                var b = 0;
                if (this.abBuffer.length && this.fAdvance) {
                    b = this.abBuffer[0];
                    if (this.chipset) this.chipset.notifyKbdData(b);
                }
                if (this.messageEnabled()) this.printMessage("scan code " + str.toHexByte(b) + " available");
                return b;
            };
            
            /**
             * readScanCode()
             *
             * This is the ChipSet's interface for reading scan codes.
             *
             * @this {Keyboard}
             * @return {number} next scan code, or 0 if none
             */
            Keyboard.prototype.readScanCode = function()
            {
                var b = 0;
                if (this.abBuffer.length) {
                    b = this.abBuffer[0];
                }
                if (this.messageEnabled()) this.printMessage("scan code " + str.toHexByte(b) + " delivered");
                return b;
            };
            
            /**
             * flushScanCode()
             *
             * This is the ChipSet's interface to flush scan codes.
             *
             * @this {Keyboard}
             */
            Keyboard.prototype.flushScanCode = function()
            {
                this.abBuffer = [];
                if (this.messageEnabled()) this.printMessage("scan codes flushed");
            };
            
            /**
             * shiftScanCode(fNotify)
             *
             * This is the ChipSet's interface to advance scan codes.
             *
             * @this {Keyboard}
             * @param {boolean} [fNotify] is true to notify ChipSet if more data is available.
             */
            Keyboard.prototype.shiftScanCode = function(fNotify)
            {
                if (this.abBuffer.length > 0) {
                    /*
                     * The keyboard interrupt service routine toggles the enable bit after reading a scan code, so
                     * presumably this is the proper point at which to shift the last scan code out, and then assert
                     * another interrupt if more scan codes exist.
                     */
                    this.abBuffer.shift();
                    this.fAdvance = fNotify;
                    if (fNotify) {
                        if (!this.abBuffer.length || !this.chipset) {
                            fNotify = false;
                        } else {
                            this.chipset.notifyKbdData(this.abBuffer[0]);
                        }
                    }
                    if (this.messageEnabled()) this.printMessage("scan codes shifted, notify " + (fNotify? "true" : "false"));
                }
            };
            
            /**
             * powerUp(data, fRepower)
             *
             * @this {Keyboard}
             * @param {Object|null} data
             * @param {boolean} [fRepower]
             * @return {boolean} true if successful, false if failure
             */
            Keyboard.prototype.powerUp = function(data, fRepower)
            {
                if (!fRepower) {
                    /*
                     * TODO: Save/restore support for Keyboard is the barest minimum.  In fact, originally, I wasn't
                     * saving/restoring anything, and that was OK, but if we don't at least re-initialize fClock/fData,
                     * we can get a spurious reset following a restore.  In an ideal world, we might choose to save/restore
                     * abBuffer as well, but realistically, I think it's going to be safer to always start with an
                     * empty buffer--and who's going to notice anyway?
                     *
                     * So, like Debugger, we deviate from the typical save/restore pattern: instead of reset OR restore,
                     * we always reset and then perform a (very limited) restore.
                     */
                    this.reset();
                    if (data && this.restore) {
                        if (!this.restore(data)) return false;
                    }
                }
                return true;
            };
            
            /**
             * powerDown(fSave, fShutdown)
             *
             * @this {Keyboard}
             * @param {boolean} fSave
             * @param {boolean} [fShutdown]
             * @return {Object|boolean} component state if fSave; otherwise, true if successful, false if failure
             */
            Keyboard.prototype.powerDown = function(fSave, fShutdown)
            {
                return fSave && this.save? this.save() : true;
            };
            
            /**
             * reset()
             *
             * @this {Keyboard}
             */
            Keyboard.prototype.reset = function()
            {
                this.setModel(this.nDefaultModel);
            
                this.initState();
            
                /*
                 * The current (assumed) physical (and simulated) states of the various shift/lock keys.
                 *
                 * TODO: Determine how (or whether) we can query the browser's initial shift/lock key states.
                 */
                this.bitsState = this.bitsStateSim = 0;
            
                /*
                 * New scan codes are "pushed" onto abBuffer and then "shifted" off.
                 */
                this.abBuffer = [];
                this.fAdvance = true;
            
                this.prevCharDown = 0;
                this.prevKeyDown = 0;
            
                /*
                 * Make sure the auto-injection buffer is empty (an injection could have been in progress on any reset after the first).
                 */
                this.sInjectBuffer = "";
            };
            
            /**
             * save()
             *
             * This implements save support for the Keyboard component.
             *
             * @this {Keyboard}
             * @return {Object}
             */
            Keyboard.prototype.save = function()
            {
                var state = new State(this);
                state.set(0, this.saveState());
                return state.data();
            };
            
            /**
             * restore(data)
             *
             * This implements restore support for the Keyboard component.
             *
             * @this {Keyboard}
             * @param {Object} data
             * @return {boolean} true if successful, false if failure
             */
            Keyboard.prototype.restore = function(data)
            {
                return this.initState(data[0]);
            };
            
            /**
             * initState(data)
             *
             * @this {Keyboard}
             * @param {Array} [data]
             * @return {boolean} true if successful, false if failure
             */
            Keyboard.prototype.initState = function(data)
            {
                var i = 0;
                if (data === undefined) data = [];
                this.fClock = this.fAdvance = data[i++];
                this.fData = data[i];
                return true;
            };
            
            /**
             * saveState()
             *
             * @this {Keyboard}
             * @return {Array}
             */
            Keyboard.prototype.saveState = function()
            {
                var i = 0;
                var data = [];
                data[i++] = this.fClock;
                data[i] = this.fData;
                return data;
            };
            
            /**
             * setSoftKeyState(control, f)
             *
             * @this {Keyboard}
             * @param {Object} control is an HTML control DOM object
             * @param {boolean} f is true if the key represented by e should be "on", false if "off"
             */
            Keyboard.prototype.setSoftKeyState = function(control, f)
            {
                control.style.color = (f? "#ffffff" : "#000000");
                control.style.backgroundColor = (f? "#000000" : "#ffffff");
            };
            
            /**
             * addScanCode(bScan)
             *
             * @this {Keyboard}
             * @param {number} bScan
             */
            Keyboard.prototype.addScanCode = function(bScan)
            {
                /*
                 * Prepare for the possibility that our reset() function may not have been called yet.
                 *
                 * TODO: Determine whether we need to reset() the Keyboard sooner (ie, in the constructor),
                 * or if we need to protect other methods from prematurely accessing certain Keyboard structures,
                 * as a result of calls from any of the key event handlers established by setBinding().
                 */
                if (this.abBuffer) {
                    if (this.abBuffer.length < Keyboard.LIMIT.MAX_SCANCODES) {
                        if (this.messageEnabled()) this.printMessage("scan code " + str.toHexByte(bScan) + " buffered");
                        this.abBuffer.push(bScan);
                        if (this.abBuffer.length == 1) {
                            if (this.chipset) this.chipset.notifyKbdData(bScan);
                        }
                        return;
                    }
                    if (this.abBuffer.length == Keyboard.LIMIT.MAX_SCANCODES) {
                        this.abBuffer.push(Keyboard.CMDRES.BUFF_FULL);
                    }
                    this.printMessage("scan code buffer overflow");
                }
            };
            
            /**
             * injectKeys(sKeyCodes, msDelay)
             *
             * @this {Keyboard}
             * @param {string} sKeyCodes
             * @param {number|undefined} [msDelay] is an optional injection delay (default is msInjectDelay)
             */
            Keyboard.prototype.injectKeys = function(sKeyCodes, msDelay)
            {
                this.sInjectBuffer = sKeyCodes;
                if (!COMPILED) this.log("injectKeys(" + this.sInjectBuffer.split("\n").join("\\n") + ")");
                this.injectKeysFromBuffer(msDelay || this.msInjectDelay);
            };
            
            /**
             * injectKeysFromBuffer(msDelay)
             *
             * @this {Keyboard}
             * @param {number} msDelay is the delay between injected keys
             */
            Keyboard.prototype.injectKeysFromBuffer = function(msDelay)
            {
                if (this.sInjectBuffer.length > 0) {
                    var ch = this.sInjectBuffer.charCodeAt(0);
                    /*
                     * I could require all callers to supply CRs instead of LFs, but this is friendlier.
                     */
                    if (ch == 0x0a) ch = 0x0d;
            
                    this.sInjectBuffer = this.sInjectBuffer.substr(1);
                    this.addActiveKey(ch, true);
                }
                if (this.sInjectBuffer.length > 0) {
                    setTimeout(function (kbd) {
                        return function onInjectKeyTimeout() {
                            kbd.injectKeysFromBuffer(msDelay);
                        };
                    }(this), msDelay);
                }
            };
            
            /**
             * setLED(control, f)
             *
             * @this {Keyboard}
             * @param {Object} control is an HTML control DOM object
             * @param {boolean} f is true if the LED represented by control should be "on", false if "off"
             */
            Keyboard.prototype.setLED = function(control, f)
            {
                control.style.backgroundColor = (f? "#00ff00" : "#000000");
            };
            
            /**
             * updateLEDs(bitState)
             *
             * Updates any and all shift-related LEDs with the corresponding state in bitsStateSim.
             *
             * @this {Keyboard}
             * @param {number} [bitState] is the bit in bitsStateSim that may have changed, if known; undefined if not
             */
            Keyboard.prototype.updateLEDs = function(bitState)
            {
                var control;
                for (var sBinding in Keyboard.LEDSTATES) {
                    var id = "led-" + sBinding;
                    var bitLED = Keyboard.LEDSTATES[sBinding];
                    if ((!bitState || bitState == bitLED) && (control = this.bindings[id])) {
                        this.setLED(control, !!(this.bitsStateSim & bitLED));
                    }
                }
            };
            
            /**
             * toggleCapsLock()
             *
             * @this {Keyboard}
             */
            Keyboard.prototype.toggleCapsLock = function()
            {
                this.addActiveKey(Keyboard.SIMCODE.CAPS_LOCK, true);
            };
            
            /**
             * toggleNumLock()
             *
             * @this {Keyboard}
             */
            Keyboard.prototype.toggleNumLock = function()
            {
                this.addActiveKey(Keyboard.SIMCODE.NUM_LOCK, true);
            };
            
            /**
             * toggleScrollLock()
             *
             * @this {Keyboard}
             */
            Keyboard.prototype.toggleScrollLock = function()
            {
                this.addActiveKey(Keyboard.SIMCODE.SCROLL_LOCK, true);
            };
            
            /**
             * updateShiftState(simCode, fSim, fDown)
             *
             * For non-locking shift keys, this function is straightforward: when fDown is true, the corresponding bitState
             * is set, and when fDown is false, it's cleared.  However, for LOCK keys, fDown true means toggle, and fDown false
             * means no change.
             *
             * @this {Keyboard}
             * @param {number} simCode (includes any ONDOWN and/or ONRIGHT modifiers)
             * @param {boolean} [fSim] is true to update simulated state only
             * @param {boolean|null} [fDown] is true for down, false for up, undefined for toggle
             * @return {boolean} true if simCode was a shift key, false if not
             */
            Keyboard.prototype.updateShiftState = function(simCode, fSim, fDown)
            {
                if (Keyboard.SIMCODES[simCode]) {
                    var fRight = (Math.floor(simCode / 1000) & 2);
                    var bitState = Keyboard.KEYSTATES[simCode] || 0;
                    if (bitState) {
                        if (fRight && !(bitState & Keyboard.STATE.ALL_RIGHT)) {
                            bitState >>= 1;
                        }
                        if (bitState & Keyboard.STATE.ALL_LOCKS) {
                            if (fDown === false) return true;
                            fDown = null;
                        }
                        if (fDown == null) {        // ie, null or undefined
                            fDown = !((fSim? this.bitsStateSim : this.bitsState) & bitState);
                        }
                        else if (!fDown) {
                            /*
                             * In current webkit browsers, pressing and then releasing both left and right shift keys together
                             * (or both alt keys, or both cmd/windows keys, or presumably both ctrl keys) results in 4 events, as
                             * you would expect, but 3 of the 4 are "down" events; only the last of the 4 is an "up" event.
                             *
                             * Perhaps this is a browser accessibility feature (ie, deliberately suppressing the "up" event
                             * of one of the shift keys to implement a "sticky shift mode"?), but in any case, to maintain our
                             * internal consistency, if this is an "up" event and the shift state bit is any of ALL_SHIFT, then
                             * we set it to ALL_SHIFT, so that we'll automatically clear ALL shift states.
                             *
                             * TODO: The only downside to this work-around is that the simulation will still think a shift key is
                             * down.  So in effect, we have enabled a "sticky shift mode" inside the simulation, whether or not that
                             * was the browser's intent.  To fix that, we would have to identify the shift key that never went up
                             * and simulate the "up".  That's more work than I think the problem merits.  The user just needs to tap
                             * a single shift key to get out that mode.
                             */
                            if (bitState & Keyboard.STATE.ALL_SHIFT) bitState = Keyboard.STATE.ALL_SHIFT;
                        }
                        if (!fSim) {
                            this.bitsState &= ~bitState;
                            if (fDown) this.bitsState |= bitState;
                        } else {
                            this.bitsStateSim &= ~bitState;
                            if (fDown) this.bitsStateSim |= bitState;
                            this.updateLEDs(bitState);
                        }
                        return true;
                    }
                }
                return false;
            };
            
            /**
             * addActiveKey(simCode, fPress)
             *
             * @this {Keyboard}
             * @param {number} simCode
             * @param {boolean} [fPress]
             */
            Keyboard.prototype.addActiveKey = function(simCode, fPress)
            {
                if (!Keyboard.SIMCODES[simCode]) {
                    if (!COMPILED && this.messageEnabled(Messages.KEYS)) {
                        this.printMessage("addActiveKey(" + simCode + "," + (fPress? "press" : "down") + "): unrecognized", true);
                    }
                    return;
                }
            
                /*
                 * Ignore all active keys if the CPU is not running.
                 */
                if (!this.cpu || !this.cpu.isRunning()) return;
            
                /*
                 * If this simCode is in the KEYSTATE table, then stop all repeating.
                 */
                if (Keyboard.KEYSTATES[simCode] && this.aKeysActive.length) {
                    if (this.aKeysActive[0].nRepeat > 0) this.aKeysActive[0].nRepeat = 0;
                }
            
                var key;
                for (var i = 0; i < this.aKeysActive.length; i++) {
                    key = this.aKeysActive[i];
                    if (key.simCode == simCode) {
                        /*
                         * This key is already active, so if this a "down" request (or a "press" for a key we already
                         * processed as a "down"), ignore it.
                         */
                        if (!fPress || key.nRepeat >= 0) {
                            i = -1;
                            break;
                        }
                        if (i > 0) {
                            if (this.aKeysActive[0].nRepeat > 0) this.aKeysActive[0].nRepeat = 0;
                            this.aKeysActive.splice(i, 1);
                        }
                        break;
                    }
                }
            
                if (!COMPILED && this.messageEnabled(Messages.KEYS)) {
                    this.printMessage("addActiveKey(" + simCode + "," + (fPress? "press" : "down") + "): " + (i < 0? "already active" : (i == this.aKeysActive.length? "adding" : "updating")), true);
                }
            
                if (i < 0) return;
            
                if (i == this.aKeysActive.length) {
                    key = {};
                    key.simCode = simCode;
                    key.bitsState = this.bitsState;
                    this.findBinding(simCode, "key", true);
                    i++;
                }
                if (i > 0) {
                    this.aKeysActive.splice(0, 0, key);
                }
            
                key.fDown = true;
                key.nRepeat = (fPress? -1: (Keyboard.KEYSTATES[simCode]? 0 : 1));
            
                this.updateActiveKey(key);
            };
            
            /**
             * checkActiveKey()
             *
             * @this {Keyboard}
             * @return {number} simCode of active key, 0 if none
             */
            Keyboard.prototype.checkActiveKey = function()
            {
                return this.aKeysActive.length? this.aKeysActive[0].simCode : 0;
            };
            
            /**
             * checkActiveKeyShift()
             *
             * @this {Keyboard}
             * @return {number|null} bitsState for active key, null if none
             *
            Keyboard.prototype.checkActiveKeyShift = function()
            {
                return this.aKeysActive.length? this.aKeysActive[0].bitsState : null;
            };
             */
            
            /**
             * isAlphaKey(code)
             *
             * @this {Keyboard}
             * @param {number} code
             * @returns {boolean} true if alpha key, false if not
             */
            Keyboard.prototype.isAlphaKey = function(code)
            {
                return (code >= Keyboard.ASCII.A && code <= Keyboard.ASCII.Z || code >= Keyboard.ASCII.a && code <= Keyboard.ASCII.z);
            };
            
            /**
             * toUpperKey(code)
             *
             * @this {Keyboard}
             * @param {number} code
             * @returns {number}
             */
            Keyboard.prototype.toUpperKey = function(code)
            {
                if (code >= Keyboard.ASCII.a && code <= Keyboard.ASCII.z) {
                    code -= (Keyboard.ASCII.a - Keyboard.ASCII.A);
                }
                return code;
            };
            
            /**
             * clearActiveKeys()
             *
             * Force all active keys to "self-deactivate".
             *
             * TODO: Consider limiting this to non-shift keys only.
             *
             * @this {Keyboard}
             */
            Keyboard.prototype.clearActiveKeys = function()
            {
                for (var i = 0; i < this.aKeysActive.length; i++) {
                    var key = this.aKeysActive[i];
                    key.fDown = false;
                    if (key.nRepeat > 0) key.nRepeat = 0;
                }
            };
            
            /**
             * removeActiveKey(simCode, fFlush)
             *
             * @param {number} simCode
             * @param {boolean} [fFlush] is true whenever the key must be removed, independent of other factors
             * @return {boolean} true if successfully removed, false if not
             */
            Keyboard.prototype.removeActiveKey = function(simCode, fFlush)
            {
                if (!Keyboard.SIMCODES[simCode]) {
                    if (!COMPILED && this.messageEnabled(Messages.KEYS)) {
                        this.printMessage("removeActiveKey(" + simCode + "): unrecognized", true);
                    }
                    return false;
                }
            
                /*
                 * Ignore all active keys if the CPU is not running.
                 */
                if (!fFlush && (!this.cpu || !this.cpu.isRunning())) return false;
            
                var fRemoved = false;
                for (var i = 0; i < this.aKeysActive.length; i++) {
                    var key = this.aKeysActive[i];
                    if (key.simCode == simCode || key.simCode == Keyboard.SHIFTED_KEYCODES[simCode]) {
                        this.aKeysActive.splice(i, 1);
                        if (key.timer) clearTimeout(key.timer);
                        if (key.fDown && !fFlush) this.keySimulate(key.simCode, false);
                        this.findBinding(simCode, "key", false);
                        fRemoved = true;
                        break;
                    }
                }
                if (!COMPILED && !fFlush && this.messageEnabled(Messages.KEYS)) {
                    this.printMessage("removeActiveKey(" + simCode + "): " + (fRemoved? "removed" : "not active"), true);
                }
                if (!this.aKeysActive.length && this.fToggleCapsLock) {
                    if (!COMPILED) this.printMessage("removeActiveKey(): inverting caps-lock now", Messages.KEYS);
                    this.updateShiftState(Keyboard.SIMCODE.CAPS_LOCK);
                    this.fToggleCapsLock = false;
                }
                return fRemoved;
            };
            
            /**
             * updateActiveKey(key, msTimer)
             *
             * @param {Object} key
             * @param {number} [msTimer]
             */
            Keyboard.prototype.updateActiveKey = function(key, msTimer)
            {
                /*
                 * All active keys are automatically removed once the CPU stops running.
                 */
                if (!this.cpu || !this.cpu.isRunning()) {
                    this.removeActiveKey(key.simCode, true);
                    return;
                }
            
                if (!COMPILED && this.messageEnabled(Messages.KEYS)) {
                    this.printMessage((msTimer? '\n' : "") + "updateActiveKey(" + key.simCode + (msTimer? "," + msTimer + "ms" : "") + "): " + (key.fDown? "down" : "up"), true);
                }
            
                this.keySimulate(key.simCode, key.fDown);
            
                if (!key.nRepeat) return;
            
                var ms;
                if (key.nRepeat < 0) {
                    if (!key.fDown) {
                        this.removeActiveKey(key.simCode);
                        return;
                    }
                    key.fDown = false;
                    ms = this.msAutoRelease;
                }
                else {
                    ms = (key.nRepeat++ == 1? this.msAutoRepeat : this.msNextRepeat);
                }
                key.timer = setTimeout(function(kbd) {
                    return function onUpdateActiveKey() {
                        kbd.updateActiveKey(key, ms);
                    };
                }(this), ms);
            };
            
            /**
             * getSimCode(keyCode)
             *
             * @this {Keyboard}
             * @param {number} keyCode
             * @param {boolean} fShifted
             * @return {number} simCode
             */
            Keyboard.prototype.getSimCode = function(keyCode, fShifted)
            {
                var code;
                var simCode = keyCode;
            
                if (keyCode >= Keyboard.ASCII.A && keyCode <= Keyboard.ASCII.Z) {
                    if (!(this.bitsState & (Keyboard.STATE.SHIFT | Keyboard.STATE.RSHIFT | Keyboard.STATE.CAPS_LOCK)) == fShifted) {
                        simCode = keyCode + (Keyboard.ASCII.a - Keyboard.ASCII.A);
                    }
                }
                else if (keyCode >= Keyboard.ASCII.a && keyCode <= Keyboard.ASCII.z) {
                    if (!!(this.bitsState & (Keyboard.STATE.SHIFT | Keyboard.STATE.RSHIFT | Keyboard.STATE.CAPS_LOCK)) == fShifted) {
                        simCode = keyCode - (Keyboard.ASCII.a - Keyboard.ASCII.A);
                    }
                }
                else if (!!(this.bitsState & (Keyboard.STATE.SHIFT | Keyboard.STATE.RSHIFT)) == fShifted) {
                    if (code = Keyboard.SHIFTED_KEYCODES[keyCode]) {
                        simCode = code;
                    }
                }
                else {
                    if (code = Keyboard.STUPID_KEYCODES[keyCode]) {
                        simCode = code;
                    }
                }
                return simCode;
            };
            
            /**
             * onFocusChange(fFocus)
             *
             * @this {Keyboard}
             * @param {boolean} fFocus is true if gaining focus, false if losing it
             */
            Keyboard.prototype.onFocusChange = function(fFocus)
            {
                if (this.fHasFocus != fFocus && !COMPILED && this.messageEnabled(Messages.KEYS)) {
                    this.printMessage("onFocusChange(" + (fFocus? "true" : "false") + ")", true);
                }
                this.fHasFocus = fFocus;
                /*
                 * Since we can't be sure of any shift states after losing focus, we clear them all.
                 */
                if (!fFocus) this.bitsState &= ~Keyboard.STATE.ALL_SHIFT;
            };
            
            /**
             * onKeyDown(event, fDown)
             *
             * @this {Keyboard}
             * @param {Object} event
             * @param {boolean} fDown is true for a keyDown event, false for a keyUp event
             * @return {boolean} true to pass the event along, false to consume it
             */
            Keyboard.prototype.onKeyDown = function(event, fDown)
            {
                var fPass = true;
                var fPress = false;
                var fIgnore = false;
            
                var keyCode = event.keyCode;
            
                /*
                 * Although it would be nice to pay attention ONLY to these "up" and "down" events, and ignore "press"
                 * events, iOS devices force us to process "press" events, because they don't give us shift-key events,
                 * so we have to infer the shift state from the character code in the "press" event.
                 *
                 * So, to seamlessly blend "up" and "down" events with "press" events, we must convert any keyCodes we
                 * receive here to a compatibly shifted simCode.
                 */
                var simCode = this.getSimCode(keyCode, true);
            
                if (this.fEscapeDisabled && simCode == Keyboard.ASCII['`']) {
                    keyCode = simCode = Keyboard.KEYCODE.ESC;
                }
            
                if (Keyboard.SIMCODES[keyCode + Keyboard.KEYCODE.ONDOWN]) {
            
                    simCode += Keyboard.KEYCODE.ONDOWN;
                    if (event.location == Keyboard.LOCATION.RIGHT) {
                        simCode += Keyboard.KEYCODE.ONRIGHT;
                    }
            
                    if (this.updateShiftState(simCode, false, fDown)) {
            
                        if (keyCode == Keyboard.KEYCODE.CAPS_LOCK || keyCode == Keyboard.KEYCODE.NUM_LOCK || keyCode == Keyboard.KEYCODE.SCROLL_LOCK) {
                            /*
                             * FYI, "lock" keys generate a "down" event ONLY when getting locked and an "up" event ONLY
                             * when getting unlocked--which is a little odd, since the key did go UP and DOWN each time.
                             *
                             * We must treat each event like a "down", and also as a "press", so that addActiveKey() will
                             * automatically generate both the "make" and "break".
                             *
                             * Of course, there have to be exceptions, most notably MSIE, which sends both "up" and down"
                             * on every press, so there's no need for trickery.
                             */
                            if (!this.fMSIE) {
                                fDown = fPress = true;
                            }
                        }
                        /*
                         * As a safeguard, whenever the CMD key goes up, clear all active keys, because there appear to be
                         * cases where we don't always get notification of a CMD key's companion key going up (this probably
                         * overlaps with most if not all situations where we also lose focus).
                         */
                        if (!fDown && (keyCode == Keyboard.KEYCODE.CMD || keyCode == Keyboard.KEYCODE.RCMD)) {
                            this.clearActiveKeys();
                        }
                    }
                    else {
                        /*
                         * Here we have all the non-shift keys in the ONDOWN category; eg, BS, TAB, ESC, UP, DOWN, LEFT, RIGHT,
                         * and many more.
                         *
                         * For various reasons (some of which are discussed below), we don't want to pass these on (ie, we want
                         * to suppress their "press" event), which means we must perform all key simulation on the "up" and "down"
                         * events.
                         *
                         * Regarding BS: I never want the browser to act on BS, since it does double-duty as the BACK button,
                         * leaving the current page.
                         *
                         * Regarding TAB: If I don't consume TAB on the "down" event, then that's all I'll see, because the browser
                         * act on it by giving focus to the next control.
                         *
                         * Regarding ESC: This key generates "down" and "up" events (LOTS of "down" events for that matter), but no
                         * "press" event.
                         */
            
                        /*
                         * HACK for simulating CTRL_BREAK using CTRL_DEL (Mac) or CTRL_BS (Windows)
                         */
                        if (keyCode == Keyboard.KEYCODE.BS && (this.bitsState & (Keyboard.STATE.CTRL|Keyboard.STATE.ALT)) == Keyboard.STATE.CTRL) {
                            simCode = Keyboard.SIMCODE.CTRL_BREAK;
                        }
            
                        /*
                         * There are a number of other common key sequences that interfere with our machines; for example,
                         * the up/down arrows have a "default" behavior of scrolling the web page up and down, which is
                         * definitely NOT a behavior we want.  Since we mark those keys as ONDOWN, we'll catch them all here.
                         */
                        fPass = false;
                    }
                }
                else {
                    /*
                     * When I have defined system-wide CTRL-key sequences to perform common editing operations (eg, CTRL_W
                     * and CTRL_Z to scroll pages of text), the browser likes to act on those operations, so let's set fPass
                     * to false to prevent that.
                     *
                     * Also, we don't want to set fIgnore in such cases, because the browser may not give us a press event for
                     * these CTRL-key sequences, so we can't risk ignoring them.
                     */
                    if (Keyboard.SIMCODES[simCode] && (this.bitsState & (Keyboard.STATE.CTRLS | Keyboard.STATE.ALTS))) {
                        fPass = false;
                    }
            
                    /*
                     * Don't simulate any key not explicitly marked ONDOWN, as well as any key sequence with the CMD key held.
                     */
                    if (!this.fAllDown && fPass && fDown || !!(this.bitsState & Keyboard.STATE.CMDS)) fIgnore = true;
                }
            
                if (!fPass) {
                    event.preventDefault();
                }
            
                if (!COMPILED && this.messageEnabled(Messages.KEYS)) {
                    this.printMessage("\nonKey" + (fDown? "Down" : "Up") + "(" + keyCode + "): " + (fIgnore? "ignore" : (fPass? "true" : "false")), true);
                }
            
                /*
                 * Mobile (eg, iOS) keyboards don't fully support onKeyDown/onKeyUp events; for example, they usually
                 * don't generate ANY events when a shift key is pressed, and even for normal keys, they seem to generate
                 * rapid (ie, fake) "up" and "down" events around "press" events, probably more to satisfy compatibility
                 * issues rather than making a serious effort to indicate when a key ACTUALLY went down or up.
                 */
                if (!fIgnore && (!this.fMobile || !fPass)) {
                    if (fDown) {
                        this.addActiveKey(simCode, fPress);
                    } else {
                        if (!this.removeActiveKey(simCode)) {
                            var code = this.getSimCode(keyCode, false);
                            if (code != simCode) this.removeActiveKey(code);
                        }
                    }
                }
            
                return fPass;
            };
            
            /**
             * onKeyPress(event)
             *
             * @this {Keyboard}
             * @param {Object} event
             * @return {boolean} true to pass the event along, false to consume it
             */
            Keyboard.prototype.onKeyPress = function(event)
            {
                event = event || window.event;
                var keyCode = event.which || event.keyCode;
            
                if (this.fAllDown) {
                    var simCode = this.checkActiveKey();
                    if (simCode && this.isAlphaKey(simCode) && this.isAlphaKey(keyCode) && simCode != keyCode) {
                        if (!COMPILED && this.messageEnabled(Messages.KEYS)) {
                            this.printMessage("onKeyPress(" + keyCode + ") out of sync with " + simCode + ", invert caps-lock", true);
                        }
                        this.fToggleCapsLock = true;
                        keyCode = simCode;
                    }
                }
            
                /*
                 * Let's stop any injection currently in progress, too
                 */
                this.sInjectBuffer = "";
            
                var fPass = !Keyboard.SIMCODES[keyCode] || !!(this.bitsState & Keyboard.STATE.CMD);
            
                if (!COMPILED && this.messageEnabled(Messages.KEYS)) {
                    this.printMessage("\nonKeyPress(" + keyCode + "): " + (fPass? "true" : "false"), true);
                }
            
                if (!fPass) {
                    this.addActiveKey(keyCode, true);
                }
            
                return fPass;
            };
            
            /**
             * keySimulate(simCode, fDown)
             *
             * @this {Keyboard}
             * @param {number} simCode
             * @param {boolean} fDown
             * @return {boolean} true if successfully simulated, false if unrecognized/unsupported key
             */
            Keyboard.prototype.keySimulate = function(simCode, fDown)
            {
                var fSimulated = false;
            
                this.updateShiftState(simCode, true, fDown);
            
                var wCode = Keyboard.SIMCODES[simCode] || Keyboard.SIMCODES[simCode + Keyboard.KEYCODE.ONDOWN];
            
                if (wCode !== undefined) {
            
                    /*
                     * Hack to transform the IBM "BACKSPACE" key (which we normally map to KEYCODE_DELETE) to the IBM "DEL" key
                     * whenever both CTRL and ALT are pressed as well, so that it's easier to simulate that old favorite: CTRL_ALT_DEL
                     */
                    if (wCode == Keyboard.SCANCODE.BS) {
                        if ((this.bitsState & (Keyboard.STATE.CTRL | Keyboard.STATE.ALT)) == (Keyboard.STATE.CTRL | Keyboard.STATE.ALT)) {
                            wCode = Keyboard.SCANCODE.NUM_DEL;
                        }
                    }
            
                    var abScanCodes = [];
                    var bCode = wCode & 0xff;
                    abScanCodes.push(bCode | (fDown? 0 : Keyboard.SCANCODE.BREAK));
            
                    var fAlpha = (simCode >= Keyboard.ASCII.A && simCode <= Keyboard.ASCII.Z || simCode >= Keyboard.ASCII.a && simCode <= Keyboard.ASCII.z);
            
                    while (wCode >>>= 8) {
                        var bShift = 0;
                        var bScan = wCode & 0xff;
                        /*
                         * TODO: The handling of SIMCODE entries with "extended" codes still needs to be tested, and
                         * moreover, if any of them need to perform any shift-state modifications, those modifications
                         * may need to be encoded differently.
                         */
                        if (bCode == Keyboard.SCANCODE.EXTEND1 || bCode == Keyboard.SCANCODE.EXTEND2) {
                            abScanCodes.push(bCode | (fDown? 0 : Keyboard.SCANCODE.BREAK));
                            continue;
                        }
                        if (bScan == Keyboard.SCANCODE.SHIFT) {
                            if (!(this.bitsStateSim & (Keyboard.STATE.SHIFT | Keyboard.STATE.RSHIFT))) {
                                if (!(this.bitsStateSim & Keyboard.STATE.CAPS_LOCK) || !fAlpha) {
                                    bShift = bScan;
                                }
                            }
                        } else if (bScan == Keyboard.SCANCODE.CTRL) {
                            if (!(this.bitsStateSim & (Keyboard.STATE.CTRL | Keyboard.STATE.RCTRL))) {
                                bShift = bScan;
                            }
                        } else if (bScan == Keyboard.SCANCODE.ALT) {
                            if (!(this.bitsStateSim & (Keyboard.STATE.ALT | Keyboard.STATE.RALT))) {
                                bShift = bScan;
                            }
                        } else {
                            abScanCodes.push(bCode | (fDown? 0 : Keyboard.SCANCODE.BREAK));
            
                        }
                        if (bShift) {
                            if (fDown)
                                abScanCodes.unshift(bShift);
                            else
                                abScanCodes.push(bShift | Keyboard.SCANCODE.BREAK);
                        }
                    }
            
                    for (var i = 0; i < abScanCodes.length; i++) {
                        this.addScanCode(abScanCodes[i]);
                    }
            
                    fSimulated = true;
                }
            
                if (!COMPILED && this.messageEnabled(Messages.KEYS)) {
                    this.printMessage("keySimulate(" + simCode + "," + (fDown? "down" : "up") + "): " + (fSimulated? "true" : "false"), true);
                }
            
                return fSimulated;
            };
            
            /**
             * Keyboard.init()
             *
             * This function operates on every HTML element of class "keyboard", extracting the
             * JSON-encoded parameters for the Keyboard constructor from the element's "data-value"
             * attribute, invoking the constructor to create a Keyboard component, and then binding
             * any associated HTML controls to the new component.
             */
            Keyboard.init = function()
            {
                var aeKbd = Component.getElementsByClass(window.document, PCJSCLASS, "keyboard");
                for (var iKbd = 0; iKbd < aeKbd.length; iKbd++) {
                    var eKbd = aeKbd[iKbd];
                    var parmsKbd = Component.getComponentParms(eKbd);
                    var kbd = new Keyboard(parmsKbd);
                    Component.bindComponentControls(kbd, eKbd, PCJSCLASS);
                }
            };
            
            /*
             * Initialize every Keyboard module on the page.
             */
            web.onInit(Keyboard.init);
            
            if (typeof module !== 'undefined') module.exports = Keyboard;
            
          • memory.js
            /**
             * @fileoverview Implements the PCjs "physical" Memory component.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Sep-04
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var str         = require("../../shared/lib/strlib");
                var Component   = require("../../shared/lib/component");
                var Messages    = require("./messages");
                var X86         = require("./x86");
            }
            
            /**
             * @class DataView
             * @property {function(number,boolean):number} getUint8
             * @property {function(number,number,boolean)} setUint8
             * @property {function(number,boolean):number} getUint16
             * @property {function(number,number,boolean)} setUint16
             * @property {function(number,boolean):number} getInt32
             * @property {function(number,number,boolean)} setInt32
             */
            
            var littleEndian = (TYPEDARRAYS? (function() {
                var buffer = new ArrayBuffer(2);
                new DataView(buffer).setUint16(0, 256, true);
                return new Uint16Array(buffer)[0] === 256;
            })() : false);
            
            /**
             * Memory(addr, used, size, type, controller)
             *
             * The Bus component allocates Memory objects so that each has a memory buffer with a
             * block-granular starting address and an address range equal to bus.nBlockSize; however,
             * the size of any given Memory object's underlying buffer can be either zero or bus.nBlockSize;
             * memory read/write functions for empty (buffer-less) blocks are mapped to readNone/writeNone.
             *
             * The Bus allocates empty blocks for the entire address space during initialization, so that
             * any reads/writes to undefined addresses will have no effect.  Later, the ROM and RAM
             * components will ask the Bus to allocate memory for specific ranges, and the Bus will allocate
             * as many new blockSize Memory objects as the ranges require.  Partial Memory blocks could
             * also be supported in theory, but in practice, they're not.
             *
             * Because Memory blocks now allow us to have a "sparse" address space, we could choose to
             * take the memory hit of allocating 4K arrays per block, where each element stores only one byte,
             * instead of the more frugal but slightly slower approach of allocating arrays of 32-bit dwords
             * (LONGARRAYS) and shifting/masking bytes/words to/from dwords; in theory, byte accesses would
             * be faster and word accesses somewhat less faster.
             *
             * However, preliminary testing of that feature (FATARRAYS) did not yield significantly faster
             * performance, so it is OFF by default to minimize our memory consumption.  Using TYPEDARRAYS
             * would seem best, but as discussed in defines.js, it's off by default, because it doesn't perform
             * as well as LONGARRAYS; the other advantage of TYPEDARRAYS is that it should theoretically use
             * about 1/2 the memory of LONGARRAYS (32-bit elements vs 64-bit numbers), but I value speed over
             * size at this point.  Also, not all JavaScript implementations support TYPEDARRAYS (IE9 is probably
             * the only real outlier: it lacks typed arrays but otherwise has all the necessary HTML5 support).
             *
             * WARNING: Since Memory blocks are low-level objects that have no UI requirements, they
             * do not inherit from the Component class, so if you want to use any Component class methods,
             * such as Component.assert(), use the corresponding Debugger methods instead (assuming a debugger
             * is available).
             *
             * @constructor
             * @param {number|null} [addr] of lowest used address in block
             * @param {number} [used] portion of block in bytes (0 for none); must be a multiple of 4
             * @param {number} [size] of block's buffer in bytes (0 for none); must be a multiple of 4
             * @param {number} [type] is one of the Memory.TYPE constants (default is Memory.TYPE.NONE)
             * @param {Object} [controller] is an optional memory controller component
             * @param {X86CPU} [cpu] is required for UNPAGED memory blocks, so that the CPU can map it to a PAGED block
             */
            function Memory(addr, used, size, type, controller, cpu)
            {
                var i;
                this.id = (Memory.idBlock += 2);
                this.adw = null;
                this.offset = 0;
                this.addr = addr;
                this.used = used;
                this.size = size || 0;
                this.type = type || Memory.TYPE.NONE;
                this.fReadOnly = (type == Memory.TYPE.ROM);
                this.controller = null;
                this.cpu = cpu;
                this.fDirty = this.fDirtyEver = false;
                this.setPhysBlock();
            
                if (BACKTRACK) {
                    if (!size || controller) {
                        this.fModBackTrack = false;
                        this.readBackTrack = this.readBackTrackNone;
                        this.writeBackTrack = this.writeBackTrackNone;
                        this.modBackTrack = this.modBackTrackNone;
                    } else {
                        this.fModBackTrack = true;
                        this.readBackTrack = this.readBackTrackIndex;
                        this.writeBackTrack = this.writeBackTrackIndex;
                        this.modBackTrack = this.modBackTrackIndex;
                        this.abtIndexes = new Array(size);
                        for (i = 0; i < size; i++) this.abtIndexes[i] = 0;
                    }
                }
            
                /*
                 * For empty memory blocks, all we need to do is ensure all access functions
                 * are mapped to "none" handlers (or "unpaged" handlers if paging is enabled).
                 */
                if (!size) {
                    this.setAccess();
                    return;
                }
            
                /*
                 * When a controller is specified, the controller must provide a buffer,
                 * via getMemoryBuffer(), and memory access functions, via getMemoryAccess().
                 */
                if (controller) {
                    this.controller = controller;
                    var a = controller.getMemoryBuffer(addr);
                    this.adw = a[0];
                    this.offset = a[1];
                    this.setAccess(controller.getMemoryAccess());
                    return;
                }
            
                /*
                 * This is the normal case: allocate a buffer that provides 8 bits of data per address;
                 * no controller is required because our default memory access functions (see afnMemory)
                 * know how to deal with this simple 1-1 mapping of addresses to bytes and words.
                 *
                 * TODO: Consider initializing the memory array to random (or pseudo-random) values in DEBUG
                 * mode; pseudo-random might be best, to help make any bugs reproducible.
                 */
                if (TYPEDARRAYS) {
                    this.buffer = new ArrayBuffer(size);
                    this.dv = new DataView(this.buffer, 0, size);
                    /*
                     * If littleEndian is true, we can use ab[], aw[] and adw[] directly; well, we can use them
                     * whenever the offset is a multiple of 1, 2 or 4, respectively.  Otherwise, we must fallback to
                     * dv.getUint8()/dv.setUint8(), dv.getUint16()/dv.setUint16() and dv.getInt32()/dv.setInt32().
                     */
                    this.ab = new Uint8Array(this.buffer, 0, size);
                    this.aw = new Uint16Array(this.buffer, 0, size >> 1);
                    this.adw = new Int32Array(this.buffer, 0, size >> 2);
                    this.setAccess(littleEndian? Memory.afnLittleEndian : Memory.afnBigEndian);
                } else {
                    if (FATARRAYS) {
                        this.ab = new Array(size);
                    } else {
                        /*
                         * NOTE: This is the default mode of operation (!TYPEDARRAYS && !FATARRAYS), because it
                         * seems to provide the best performance; and although in theory, that performance might
                         * come at twice the overhead of TYPEDARRAYS, it's increasingly likely that the JavaScript
                         * runtime will notice that all we ever store are 32-bit values, and optimize accordingly.
                         */
                        this.adw = new Array(size >> 2);
                        for (i = 0; i < this.adw.length; i++) this.adw[i] = 0;
                    }
                    this.setAccess(Memory.afnMemory);
                }
            }
            
            /*
             * Basic memory types
             *
             * RAM is the most conventional memory type, providing full read/write capability to x86-compatible (ie,
             * 'little endian") storage.  ROM is equally conventional, except that the fReadOnly property is set,
             * disabling writes.  VIDEO is treated exactly like RAM, unless a controller is provided.  Both RAM and
             * VIDEO memory are always considered writable, and even ROM can be written using the Bus setByteDirect()
             * interface (which in turn uses the Memory writeByteDirect() interface), allowing the ROM component to
             * initialize its own memory.  The CTRL type is used to identify memory-mapped devices that do not need
             * any default storage and always provide their own controller.
             *
             * UNPAGED and PAGED blocks are created by the CPU when paging is enabled; the role of an UNPAGED block
             * is simply to perform page translation and replace itself with a PAGED block, which redirects read/write
             * requests to the physical page located during translation.  UNPAGED and PAGED blocks are considered
             * "logical" blocks that don't contain any storage of their own; all other block types represent "physical"
             * memory (or a memory-mapped device).
             *
             * Unallocated regions of the address space contain a special memory block of type NONE that contains
             * no storage.  Mapping every addressible location to a memory block allows all accesses to be routed in
             * exactly the same manner, without resorting to any range or processor checks.
             *
             * Originally, the Debugger always went through the Bus interfaces, and could therefore modify ROMs as well,
             * but with the introduction of protected mode memory segmentation (and later paging), where logical and
             * phsycial addresses were no longer the same, that is no longer true.  For coherency, all Debugger memory
             * accesses now go through the X86Seg and X86CPU memory interfaces, so that the user sees the same segment
             * and page translation that the CPU sees.  However, the Debugger uses special "fSuppress" flags to prevent
             * those X86 interfaces from triggering segment and/or page faults when invalid or not-present segments
             * or pages are accessed.
             *
             * These types are not mutually exclusive.  For example, VIDEO memory could be allocated as RAM, with or
             * without a custom controller (the original Monochrome and CGA video cards used read/write storage that
             * was indistiguishable from RAM), and CTRL memory could be allocated as an empty block of any type, with
             * a custom controller.  A few types are required for certain features (eg, ROM is required if you want
             * read-only memory), but the larger purpose of these types is to help document the caller's intent and to
             * provide the Control Panel with the ability to highlight memory regions accordingly.
             */
            Memory.TYPE = {
                NONE:       0,
                RAM:        1,
                ROM:        2,
                VIDEO:      3,
                CTRL:       4,
                UNPAGED:    5,
                PAGED:      6,
                NAMES:      ["NONE",  "RAM",  "ROM",   "VIDEO", "H/W", "UNPAGED", "PAGED"],
                COLORS:     ["black", "blue", "green", "cyan"]
            };
            
            /*
             * Last used block ID (used for debugging only)
             */
            Memory.idBlock = 0;
            
            /**
             * adjustEndian(dw)
             *
             * @param {number} dw
             * @return {number}
             */
            Memory.adjustEndian = function(dw) {
                if (TYPEDARRAYS && !littleEndian) {
                    dw = (dw << 24) | ((dw << 8) & 0x00ff0000) | ((dw >> 8) & 0x0000ff00) | (dw >>> 24);
                }
                return dw;
            };
            
            Memory.prototype = {
                constructor: Memory,
                parent: null,
                /**
                 * clone(mem, type)
                 *
                 * Converts the current Memory block (this) into a clone of the given Memory block (mem),
                 * and optionally overrides the current block's type with the specified type.
                 *
                 * @this {Memory}
                 * @param {Memory} mem
                 * @param {number} [type]
                 */
                clone: function(mem, type) {
                    /*
                     * Original memory block IDs are even; cloned memory block IDs are odd;
                     * the original ID of the current block is lost, but that's OK, since it was presumably
                     * produced merely to become a clone.
                     */
                    this.id = mem.id | 0x1;
                    this.used = mem.used;
                    this.size = mem.size;
                    if (type) {
                        this.type = type;
                        this.fReadOnly = (type == Memory.TYPE.ROM);
                    }
                    if (TYPEDARRAYS) {
                        this.buffer = mem.buffer;
                        this.dv = mem.dv;
                        this.ab = mem.ab;
                        this.aw = mem.aw;
                        this.adw = mem.adw;
                        this.setAccess(littleEndian? Memory.afnLittleEndian : Memory.afnBigEndian);
                    } else {
                        if (FATARRAYS) {
                            this.ab = mem.ab;
                        } else {
                            this.adw = mem.adw;
                        }
                        this.setAccess(Memory.afnMemory);
                    }
                },
                /**
                 * save()
                 *
                 * This gets the contents of a Memory block as an array of 32-bit values;
                 * used by Bus.saveMemory(), which in turn is called by X86CPU.save().
                 *
                 * Memory blocks with custom memory controllers do NOT save their contents;
                 * that's the responsibility of the controller component.
                 *
                 * @this {Memory}
                 * @return {Array|Int32Array|null}
                 */
                save: function() {
                    var adw, i;
                    if (this.controller) {
                        adw = null;
                    }
                    else if (FATARRAYS) {
                        adw = new Array(this.size >> 2);
                        var off = 0;
                        for (i = 0; i < adw.length; i++) {
                            adw[i] = this.ab[off] | (this.ab[off + 1] << 8) | (this.ab[off + 2] << 16) | (this.ab[off + 3] << 24);
                            off += 4;
                        }
                    }
                    else if (TYPEDARRAYS) {
                        /*
                         * It might be tempting to just return a copy of Int32Array(this.buffer, 0, this.size >> 2),
                         * but we can't be sure of the "endianness" of an Int32Array -- which would be OK if the array
                         * was always saved/restored on the same machine, but there's no guarantee of that, either.
                         * So we use getInt32() and require little-endian values.
                         *
                         * Moreover, an Int32Array isn't treated by JSON.stringify() and JSON.parse() exactly like
                         * a normal array; it's serialized as an Object rather than an Array, so it lacks a "length"
                         * property and causes problems for State.store() and State.parse().
                         */
                        adw = new Array(this.size >> 2);
                        for (i = 0; i < adw.length; i++) {
                            adw[i] = this.dv.getInt32(i << 2, true);
                        }
                    }
                    else {
                        adw = this.adw;
                    }
                    return adw;
                },
                /**
                 * restore(adw)
                 *
                 * This restores the contents of a Memory block from an array of 32-bit values;
                 * used by Bus.restoreMemory(), which is called by X86CPU.restore(), after all other
                 * components have been restored and thus all Memory blocks have been allocated
                 * by their respective components.
                 *
                 * @this {Memory}
                 * @param {Array|null} adw
                 * @return {boolean} true if successful, false if block size mismatch
                 */
                restore: function(adw) {
                    if (this.controller) {
                        return (adw == null);
                    }
                    /*
                     * At this point, it's a consistency error for adw to be null; it's happened once already,
                     * when there was a restore bug in the Video component that added the frame buffer at the video
                     * card's "spec'ed" address instead of the programmed address, so there were no controller-owned
                     * memory blocks installed at the programmed address, and so we arrived here at a block with
                     * no controller AND no data.
                     */
                    // DEBUG: Component.assert(adw != null);
            
                    if (adw && this.size == adw.length << 2) {
                        var i;
                        if (FATARRAYS) {
                            var off = 0;
                            for (i = 0; i < adw.length; i++) {
                                this.ab[off] = adw[i] & 0xff;
                                this.ab[off + 1] = (adw[i] >> 8) & 0xff;
                                this.ab[off + 2] = (adw[i] >> 16) & 0xff;
                                this.ab[off + 3] = (adw[i] >> 24) & 0xff;
                                off += 4;
                            }
                        } else if (TYPEDARRAYS) {
                            for (i = 0; i < adw.length; i++) {
                                this.dv.setInt32(i << 2, adw[i], true);
                            }
                        } else {
                            this.adw = adw;
                        }
                        this.fDirty = true;
                        return true;
                    }
                    return false;
                },
                /**
                 * setAccess(afn)
                 *
                 * If no function table is specified, a default is selected based on the Memory type.
                 *
                 * @this {Memory}
                 * @param {Array.<function()>} [afn] function table
                 */
                setAccess: function(afn) {
                    if (!afn) {
                        if (this.type == Memory.TYPE.UNPAGED) {
                            afn = Memory.afnUnpaged;
                        }
                        else if (this.type == Memory.TYPE.PAGED) {
                            afn = Memory.afnPaged;
                        } else {
                            Component.assert(this.type == Memory.TYPE.NONE);
                            afn = Memory.afnNone;
                        }
                    }
                    this.setReadAccess(afn, true);
                    this.setWriteAccess(afn, true);
                },
                /**
                 * setReadAccess(afn, fDirect)
                 *
                 * @this {Memory}
                 * @param {Array.<function()>} afn
                 * @param {boolean} [fDirect]
                 */
                setReadAccess: function(afn, fDirect) {
                    this.readByte = afn[0] || this.readNone;
                    this.readShort = afn[1] || this.readShortDefault;
                    this.readLong = afn[2] || this.readLongDefault;
                    if (fDirect) {
                        this.readByteDirect = afn[0] || this.readNone;
                        this.readShortDirect = afn[1] || this.readShortDefault;
                        this.readLongDirect = afn[2] || this.readLongDefault;
                    }
                },
                /**
                 * setWriteAccess(afn, fDirect)
                 *
                 * @this {Memory}
                 * @param {Array.<function()>} afn
                 * @param {boolean} [fDirect]
                 */
                setWriteAccess: function(afn, fDirect) {
                    this.writeByte = !this.fReadOnly && afn[3] || this.writeNone;
                    this.writeShort = !this.fReadOnly && afn[4] || this.writeShortDefault;
                    this.writeLong = !this.fReadOnly && afn[5] || this.writeLongDefault;
                    if (fDirect) {
                        this.writeByteDirect = afn[3] || this.writeNone;
                        this.writeShortDirect = afn[4] || this.writeShortDefault;
                        this.writeLongDirect = afn[5] || this.writeLongDefault;
                    }
                },
                /**
                 * resetReadAccess()
                 *
                 * @this {Memory}
                 */
                resetReadAccess: function() {
                    this.readByte = this.readByteDirect;
                    this.readShort = this.readShortDirect;
                    this.readLong = this.readLongDirect;
                },
                /**
                 * resetWriteAccess()
                 *
                 * @this {Memory}
                 */
                resetWriteAccess: function() {
                    this.writeByte = this.fReadOnly? this.writeNone : this.writeByteDirect;
                    this.writeShort = this.fReadOnly? this.writeNone : this.writeShortDirect;
                    this.writeLong = this.fReadOnly? this.writeNone : this.writeLongDirect;
                },
                /**
                 * setDebugger(dbg, addr, size)
                 *
                 * @this {Memory}
                 * @param {Debugger} dbg
                 * @param {number} addr of block
                 * @param {number} size of block
                 */
                setDebugger: function(dbg, addr, size) {
                    if (DEBUGGER) {
                        this.dbg = dbg;
                        this.cReadBreakpoints = this.cWriteBreakpoints = 0;
                        Component.assert(this.dbg);
                        this.dbg.redoBreakpoints(addr, size);
                    }
                },
                /**
                 * getPageBlock(addr, fWrite)
                 *
                 * @this {Memory}
                 * @param {number} addr
                 * @param {boolean} fWrite (true if called for a write, false if for a read)
                 * @return {Memory}
                 */
                getPageBlock: function(addr, fWrite) {
                    var block = this.cpu.mapPageBlock(addr, fWrite);
                    /*
                     * If mapPageBlock() fails -- which can easily happen if the page is not present or has insufficient
                     * privileges -- then a fault will be triggered and block will be null.  We still have to return a block,
                     * but it will be our old "unpaged" self.
                     */
                    return block || this;
                },
                /**
                 * setPhysBlock(blockPhys, blockPDE, offPDE, blockPTE, offPTE)
                 *
                 * @this {Memory}
                 * @param {Memory|null} [blockPhys]
                 * @param {Memory|null} [blockPDE]
                 * @param {number} [offPDE]
                 * @param {Memory|null} [blockPTE]
                 * @param {number} [offPTE]
                 */
                setPhysBlock: function(blockPhys, blockPDE, offPDE, blockPTE, offPTE) {
                    this.blockPhys = blockPhys;
                    this.blockPDE = blockPDE;
                    this.iPDE = offPDE >> 2;    // convert offPDE into iPDE (an adw index)
                    this.blockPTE = blockPTE;
                    this.iPTE = offPTE >> 2;    // convert offPTE into iPTE (an adw index)
                    this.bitPTEDirty = blockPhys? Memory.adjustEndian(X86.PTE.ACCESSED | X86.PTE.DIRTY) : 0;
                    this.bitPTEAccessed = blockPhys? Memory.adjustEndian(X86.PTE.ACCESSED) : 0;
                },
                /**
                 * addBreakpoint(off, fWrite)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {boolean} fWrite
                 */
                addBreakpoint: function(off, fWrite) {
                    if (DEBUGGER && this.dbg) {
                        if (!fWrite) {
                            if (this.cReadBreakpoints++ === 0) {
                                this.setReadAccess(Memory.afnChecked);
                            }
                            if (DEBUG) this.dbg.println("read breakpoint added to memory block " + str.toHex(this.addr));
                        }
                        else {
                            if (this.cWriteBreakpoints++ === 0) {
                                this.setWriteAccess(Memory.afnChecked);
                            }
                            if (DEBUG) this.dbg.println("write breakpoint added to memory block " + str.toHex(this.addr));
                        }
                    }
                },
                /**
                 * removeBreakpoint(off, fWrite)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {boolean} fWrite
                 */
                removeBreakpoint: function(off, fWrite) {
                    if (DEBUGGER && this.dbg) {
                        if (!fWrite) {
                            if (--this.cReadBreakpoints === 0) {
                                this.resetReadAccess();
                                if (DEBUG) this.dbg.println("all read breakpoints removed from memory block " + str.toHex(this.addr));
                            }
                            this.dbg.assert(this.cReadBreakpoints >= 0);
                        }
                        else {
                            if (--this.cWriteBreakpoints === 0) {
                                this.resetWriteAccess();
                                if (DEBUG) this.dbg.println("all write breakpoints removed from memory block " + str.toHex(this.addr));
                            }
                            this.dbg.assert(this.cWriteBreakpoints >= 0);
                        }
                    }
                },
                /**
                 * readNone(off)
                 *
                 * Previously, this always returned 0x00, but the initial memory probe by the Compaq DeskPro 386 ROM BIOS
                 * writes 0x0000 to the first word of every 64Kb block in the nearly 16Mb address space it supports, and
                 * if it reads back 0x0000, it will initially think that LOTS of RAM exists, only to be disappointed later
                 * when it performs a more exhaustive memory test, generating unwanted error messages in the process.
                 *
                 * TODO: Determine if we should have separate readByteNone(), readShortNone() and readLongNone() functions
                 * to return 0xff, 0xffff and 0xffffffff|0, respectively.  This seems sufficient for now, as it seems unlikely
                 * that a system would require nonexistent memory locations to return ALL bits set.
                 *
                 * Also, I'm reluctant to address that potential issue by simply returning -1, because to date, the above
                 * Memory interfaces have always returned values that are properly masked to 8, 16 or 32 bits, respectively.
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} addr
                 * @return {number}
                 */
                readNone: function readNone(off, addr) {
                    if (DEBUGGER && this.dbg && this.dbg.messageEnabled(Messages.MEM) /* && !off */) {
                        this.dbg.message("attempt to read invalid block %" + str.toHex(this.addr), true);
                    }
                    return 0xff;
                },
                /**
                 * writeNone(off, v, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} v (could be either a byte or word value, since we use the same handler for both kinds of accesses)
                 * @param {number} addr
                 */
                writeNone: function writeNone(off, v, addr) {
                    if (DEBUGGER && this.dbg && this.dbg.messageEnabled(Messages.MEM) /* && !off */) {
                        this.dbg.message("attempt to write " + str.toHexWord(v) + " to invalid block %" + str.toHex(this.addr), true);
                    }
                },
                /**
                 * readShortDefault(off, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} addr
                 * @return {number}
                 */
                readShortDefault: function readShortDefault(off, addr) {
                    return this.readByte(off, addr) | (this.readByte(off + 1, addr) << 8);
                },
                /**
                 * readLongDefault(off, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} addr
                 * @return {number}
                 */
                readLongDefault: function readLongDefault(off, addr) {
                    return this.readByte(off, addr) | (this.readByte(off + 1, addr) << 8) | (this.readByte(off + 2, addr) << 16) | (this.readByte(off + 3, addr) << 24);
                },
                /**
                 * writeShortDefault(off, w, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} w
                 * @param {number} addr
                 */
                writeShortDefault: function writeShortDefault(off, w, addr) {
                    // DEBUG: Component.assert(!(w & ~0xffff));
                    this.writeByte(off, w & 0xff, addr);
                    this.writeByte(off + 1, w >> 8, addr);
                },
                /**
                 * writeLongDefault(off, w, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} w
                 * @param {number} addr
                 */
                writeLongDefault: function writeLongDefault(off, w, addr) {
                    this.writeByte(off, w & 0xff, addr);
                    this.writeByte(off + 1, (w >> 8) & 0xff, addr);
                    this.writeByte(off + 2, (w >> 16) & 0xff, addr);
                    this.writeByte(off + 3, (w >>> 24), addr);
                },
                /**
                 * readByteMemory(off, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} addr
                 * @return {number}
                 */
                readByteMemory: function readByteMemory(off, addr) {
                    // DEBUG: Component.assert(off >= 0 && off < this.size);
                    if (FATARRAYS) {
                        return this.ab[off];
                    }
                    return ((this.adw[off >> 2] >>> ((off & 0x3) << 3)) & 0xff);
                },
                /**
                 * readShortMemory(off, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} addr
                 * @return {number}
                 */
                readShortMemory: function readShortMemory(off, addr) {
                    // DEBUG: Component.assert(off >= 0 && off < this.size - 1);
                    if (FATARRAYS) {
                        return this.ab[off] | (this.ab[off + 1] << 8);
                    }
                    var w;
                    var idw = off >> 2;
                    var nShift = (off & 0x3) << 3;
                    var dw = (this.adw[idw] >> nShift);
                    if (nShift < 24) {
                        w = dw & 0xffff;
                    } else {
                        w = (dw & 0xff) | ((this.adw[idw + 1] & 0xff) << 8);
                    }
                    return w;
                },
                /**
                 * readLongMemory(off, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} addr
                 * @return {number}
                 */
                readLongMemory: function readLongMemory(off, addr) {
                    // DEBUG: Component.assert(off >= 0 && off < this.size - 3);
                    if (FATARRAYS) {
                        return this.ab[off] | (this.ab[off + 1] << 8) | (this.ab[off + 2] << 16) | (this.ab[off + 3] << 24);
                    }
                    var idw = off >> 2;
                    var nShift = (off & 0x3) << 3;
                    var l = this.adw[idw];
                    if (nShift) {
                        l >>>= nShift;
                        l |= this.adw[idw + 1] << (32 - nShift);
                    }
                    return l;
                },
                /**
                 * writeByteMemory(off, b, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} b
                 * @param {number} addr
                 */
                writeByteMemory: function writeByteMemory(off, b, addr) {
                    // DEBUG: Component.assert(off >= 0 && off < this.size && (b & 0xff) == b);
                    if (FATARRAYS) {
                        this.ab[off] = b;
                    } else {
                        var idw = off >> 2;
                        var nShift = (off & 0x3) << 3;
                        this.adw[idw] = (this.adw[idw] & ~(0xff << nShift)) | (b << nShift);
                    }
                    this.fDirty = true;
                },
                /**
                 * writeShortMemory(off, w, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} w
                 * @param {number} addr
                 */
                writeShortMemory: function writeShortMemory(off, w, addr) {
                    // DEBUG: Component.assert(off >= 0 && off < this.size - 1 && (w & 0xffff) == w);
                    if (FATARRAYS) {
                        this.ab[off] = (w & 0xff);
                        this.ab[off + 1] = (w >> 8);
                    } else {
                        var idw = off >> 2;
                        var nShift = (off & 0x3) << 3;
                        if (nShift < 24) {
                            this.adw[idw] = (this.adw[idw] & ~(0xffff << nShift)) | (w << nShift);
                        } else {
                            this.adw[idw] = (this.adw[idw] & 0x00ffffff) | (w << 24);
                            idw++;
                            this.adw[idw] = (this.adw[idw] & (0xffffff00|0)) | (w >> 8);
                        }
                    }
                    this.fDirty = true;
                },
                /**
                 * writeLongMemory(off, l, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} l
                 * @param {number} addr
                 */
                writeLongMemory: function writeLongMemory(off, l, addr) {
                    // DEBUG: Component.assert(off >= 0 && off < this.size - 3);
                    if (FATARRAYS) {
                        this.ab[off] = (l & 0xff);
                        this.ab[off + 1] = (l >> 8) & 0xff;
                        this.ab[off + 2] = (l >> 16) & 0xff;
                        this.ab[off + 3] = (l >> 24) & 0xff;
                    } else {
                        var idw = off >> 2;
                        var nShift = (off & 0x3) << 3;
                        if (!nShift) {
                            this.adw[idw] = l;
                        } else {
                            var mask = (0xffffffff|0) << nShift;
                            this.adw[idw] = (this.adw[idw] & ~mask) | (l << nShift);
                            idw++;
                            this.adw[idw] = (this.adw[idw] & mask) | (l >>> (32 - nShift));
                        }
                    }
                    this.fDirty = true;
                },
                /**
                 * readByteChecked(off, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} addr
                 * @return {number}
                 */
                readByteChecked: function readByteChecked(off, addr) {
                    if (DEBUGGER && this.dbg) this.dbg.checkMemoryRead(addr);
                    return this.readByteDirect(off, addr);
                },
                /**
                 * readShortChecked(off, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} addr
                 * @return {number}
                 */
                readShortChecked: function readShortChecked(off, addr) {
                    if (DEBUGGER && this.dbg) {
                        this.dbg.checkMemoryRead(addr) ||
                        this.dbg.checkMemoryRead(addr + 1);
                    }
                    return this.readShortDirect(off, addr);
                },
                /**
                 * readLongChecked(off, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} addr
                 * @return {number}
                 */
                readLongChecked: function readLongChecked(off, addr) {
                    if (DEBUGGER && this.dbg) {
                        this.dbg.checkMemoryRead(addr) ||
                        this.dbg.checkMemoryRead(addr + 1) ||
                        this.dbg.checkMemoryRead(addr + 2) ||
                        this.dbg.checkMemoryRead(addr + 3);
                    }
                    return this.readLongDirect(off, addr);
                },
                /**
                 * writeByteChecked(off, b, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} addr
                 * @param {number} b
                 */
                writeByteChecked: function writeByteChecked(off, b, addr) {
                    if (DEBUGGER && this.dbg) this.dbg.checkMemoryWrite(addr);
                    if (this.fReadOnly) this.writeNone(off, b, addr); else this.writeByteDirect(off, b, addr);
                },
                /**
                 * writeShortChecked(off, w, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} addr
                 * @param {number} w
                 */
                writeShortChecked: function writeShortChecked(off, w, addr) {
                    if (DEBUGGER && this.dbg) {
                        this.dbg.checkMemoryWrite(addr) ||
                        this.dbg.checkMemoryWrite(addr + 1);
                    }
                    if (this.fReadOnly) this.writeNone(off, w, addr); else this.writeShortDirect(off, w, addr);
                },
                /**
                 * writeLongChecked(off, l, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} l
                 * @param {number} addr
                 */
                writeLongChecked: function writeLongChecked(off, l, addr) {
                    if (DEBUGGER && this.dbg) {
                        this.dbg.checkMemoryWrite(this.addr + off) ||
                        this.dbg.checkMemoryWrite(this.addr + off + 1) ||
                        this.dbg.checkMemoryWrite(this.addr + off + 2) ||
                        this.dbg.checkMemoryWrite(this.addr + off + 3);
                    }
                    if (this.fReadOnly) this.writeNone(off, l, addr); else this.writeLongDirect(off, l, addr);
                },
                /**
                 * readBytePaged(off, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} addr
                 * @return {number}
                 */
                readBytePaged: function readBytePaged(off, addr) {
                    this.blockPDE.adw[this.iPDE] |= this.bitPTEAccessed;
                    this.blockPTE.adw[this.iPTE] |= this.bitPTEAccessed;
                    return this.blockPhys.readByte(off, addr);
                },
                /**
                 * readShortPaged(off, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} addr
                 * @return {number}
                 */
                readShortPaged: function readShortPaged(off, addr) {
                    this.blockPDE.adw[this.iPDE] |= this.bitPTEAccessed;
                    this.blockPTE.adw[this.iPTE] |= this.bitPTEAccessed;
                    return this.blockPhys.readShort(off, addr);
                },
                /**
                 * readLongPaged(off, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} addr
                 * @return {number}
                 */
                readLongPaged: function readLongPaged(off, addr) {
                    this.blockPDE.adw[this.iPDE] |= this.bitPTEAccessed;
                    this.blockPTE.adw[this.iPTE] |= this.bitPTEAccessed;
                    return this.blockPhys.readLong(off, addr);
                },
                /**
                 * writeBytePaged(off, b, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} b
                 * @param {number} addr
                 */
                writeBytePaged: function writeBytePaged(off, b, addr) {
                    this.blockPDE.adw[this.iPDE] |= this.bitPTEAccessed;
                    this.blockPTE.adw[this.iPTE] |= this.bitPTEDirty;
                    this.blockPhys.writeByte(off, b, addr);
                },
                /**
                 * writeShortPaged(off, w, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} w
                 * @param {number} addr
                 */
                writeShortPaged: function writeShortPaged(off, w, addr) {
                    this.blockPDE.adw[this.iPDE] |= this.bitPTEAccessed;
                    this.blockPTE.adw[this.iPTE] |= this.bitPTEDirty;
                    this.blockPhys.writeShort(off, w, addr);
                },
                /**
                 * writeLongPaged(off, l, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} l
                 * @param {number} addr
                 */
                writeLongPaged: function writeLongPaged(off, l, addr) {
                    this.blockPDE.adw[this.iPDE] |= this.bitPTEAccessed;
                    this.blockPTE.adw[this.iPTE] |= this.bitPTEDirty;
                    this.blockPhys.writeLong(off, l, addr);
                },
                /**
                 * readByteUnpaged(off, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} addr
                 * @return {number}
                 */
                readByteUnpaged: function readByteUnpaged(off, addr) {
                    return this.getPageBlock(addr, false).readByte(off, addr);
                },
                /**
                 * readShortUnpaged(off, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} addr
                 * @return {number}
                 */
                readShortUnpaged: function readShortUnpaged(off, addr) {
                    return this.getPageBlock(addr, false).readShort(off, addr);
                },
                /**
                 * readLongUnpaged(off, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} addr
                 * @return {number}
                 */
                readLongUnpaged: function readLongUnpaged(off, addr) {
                    return this.getPageBlock(addr, false).readLong(off, addr);
                },
                /**
                 * writeByteUnpaged(off, b, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} b
                 * @param {number} addr
                 */
                writeByteUnpaged: function writeByteUnpaged(off, b, addr) {
                    this.getPageBlock(addr, true).writeByte(off, b, addr);
                },
                /**
                 * writeShortUnpaged(off, w, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} w
                 * @param {number} addr
                 */
                writeShortUnpaged: function writeShortUnpaged(off, w, addr) {
                    this.getPageBlock(addr, true).writeShort(off, w, addr);
                },
                /**
                 * writeLongUnpaged(off, l, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} l
                 * @param {number} addr
                 */
                writeLongUnpaged: function writeLongUnpaged(off, l, addr) {
                    this.getPageBlock(addr, true).writeLong(off, l, addr);
                },
                /**
                 * readByteBigEndian(off, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} addr
                 * @return {number}
                 */
                readByteBigEndian: function readByteBigEndian(off, addr) {
                    // DEBUG: Component.assert(off >= 0 && off < this.size);
                    return this.ab[off];
                },
                /**
                 * readByteLittleEndian(off, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} addr
                 * @return {number}
                 */
                readByteLittleEndian: function readByteLittleEndian(off, addr) {
                    // DEBUG: Component.assert(off >= 0 && off < this.size);
                    return this.ab[off];
                },
                /**
                 * readShortBigEndian(off, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} addr
                 * @return {number}
                 */
                readShortBigEndian: function readShortBigEndian(off, addr) {
                    // DEBUG: Component.assert(off >= 0 && off < this.size - 1);
                    return this.dv.getUint16(off, true);
                },
                /**
                 * readShortLittleEndian(off, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} addr
                 * @return {number}
                 */
                readShortLittleEndian: function readShortLittleEndian(off, addr) {
                    // DEBUG: Component.assert(off >= 0 && off < this.size - 1);
                    /*
                     * TODO: It remains to be seen if there's any advantage to checking the offset
                     * for an aligned read vs. always reading the bytes separately; it seems a safe bet
                     * for longs, but it's less clear for shorts.
                     */
                    return (off & 0x1)? (this.ab[off] | (this.ab[off+1] << 8)) : this.aw[off >> 1];
                },
                /**
                 * readLongBigEndian(off, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} addr
                 * @return {number}
                 */
                readLongBigEndian: function readLongBigEndian(off, addr) {
                    // DEBUG: Component.assert(off >= 0 && off < this.size - 3);
                    return this.dv.getInt32(off, true);
                },
                /**
                 * readLongLittleEndian(off, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} addr
                 * @return {number}
                 */
                readLongLittleEndian: function readLongLittleEndian(off, addr) {
                    // DEBUG: Component.assert(off >= 0 && off < this.size - 3);
                    /*
                     * TODO: It remains to be seen if there's any advantage to checking the offset
                     * for an aligned read vs. always reading the bytes separately; it seems a safe bet
                     * for longs, but it's less clear for shorts.
                     */
                    return (off & 0x3)? (this.ab[off] | (this.ab[off+1] << 8) | (this.ab[off+2] << 16) | (this.ab[off+3] << 24)) : this.adw[off >> 2];
                },
                /**
                 * writeByteBigEndian(off, b, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} b
                 * @param {number} addr
                 */
                writeByteBigEndian: function writeByteBigEndian(off, b, addr) {
                    // DEBUG: Component.assert(off >= 0 && off < this.size);
                    this.ab[off] = b;
                    this.fDirty = true;
                },
                /**
                 * writeByteLittleEndian(off, b, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} addr
                 * @param {number} b
                 */
                writeByteLittleEndian: function writeByteLittleEndian(off, b, addr) {
                    // DEBUG: Component.assert(off >= 0 && off < this.size);
                    this.ab[off] = b;
                    this.fDirty = true;
                },
                /**
                 * writeShortBigEndian(off, w, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} addr
                 * @param {number} w
                 */
                writeShortBigEndian: function writeShortBigEndian(off, w, addr) {
                    // DEBUG: Component.assert(off >= 0 && off < this.size - 1);
                    this.dv.setUint16(off, w, true);
                    this.fDirty = true;
                },
                /**
                 * writeShortLittleEndian(off, w, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} addr
                 * @param {number} w
                 */
                writeShortLittleEndian: function writeShortLittleEndian(off, w, addr) {
                    // DEBUG: Component.assert(off >= 0 && off < this.size - 1);
                    /*
                     * TODO: It remains to be seen if there's any advantage to checking the offset
                     * for an aligned write vs. always writing the bytes separately; it seems a safe bet
                     * for longs, but it's less clear for shorts.
                     */
                    if (off & 0x1) {
                        this.ab[off] = w;
                        this.ab[off+1] = w >> 8;
                    } else {
                        this.aw[off >> 1] = w;
                    }
                    this.fDirty = true;
                },
                /**
                 * writeLongBigEndian(off, l, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} l
                 * @param {number} addr
                 */
                writeLongBigEndian: function writeLongBigEndian(off, l, addr) {
                    // DEBUG: Component.assert(off >= 0 && off < this.size - 3);
                    this.dv.setInt32(off, l, true);
                    this.fDirty = true;
                },
                /**
                 * writeLongLittleEndian(off, l, addr)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} l
                 * @param {number} addr
                 */
                writeLongLittleEndian: function writeLongLittleEndian(off, l, addr) {
                    // DEBUG: Component.assert(off >= 0 && off < this.size - 3);
                    /*
                     * TODO: It remains to be seen if there's any advantage to checking the offset
                     * for an aligned write vs. always writing the bytes separately; it seems a safe bet
                     * for longs, but it's less clear for shorts.
                     */
                    if (off & 0x3) {
                        this.ab[off] = l;
                        this.ab[off+1] = (l >> 8);
                        this.ab[off+2] = (l >> 16);
                        this.ab[off+3] = (l >> 24);
                    } else {
                        this.adw[off >> 2] = l;
                    }
                    this.fDirty = true;
                },
                /**
                 * readBackTrackNone(off)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @return {number}
                 */
                readBackTrackNone: function readBackTrackNone(off) {
                    return 0;
                },
                /**
                 * writeBackTrackNone(off, bti)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} bti
                 */
                writeBackTrackNone: function writeBackTrackNone(off, bti) {
                },
                /**
                 * modBackTrackNone(fMod)
                 *
                 * @this {Memory}
                 * @param {boolean} fMod
                 */
                modBackTrackNone: function modBackTrackNone(fMod) {
                    return false;
                },
                /**
                 * readBackTrackIndex(off)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @return {number}
                 */
                readBackTrackIndex: function readBackTrackIndex(off) {
                    // DEBUG: Component.assert(off >= 0 && off < this.size);
                    return this.abtIndexes[off];
                },
                /**
                 * writeBackTrackIndex(off, bti)
                 *
                 * @this {Memory}
                 * @param {number} off
                 * @param {number} bti
                 * @return {number} previous bti (0 if none)
                 */
                writeBackTrackIndex: function writeBackTrackIndex(off, bti) {
                    var btiPrev;
                    // DEBUG: Component.assert(off >= 0 && off < this.size);
                    btiPrev = this.abtIndexes[off];
                    this.abtIndexes[off] = bti;
                    return btiPrev;
                },
                /**
                 * modBackTrackIndex(fMod)
                 *
                 * @this {Memory}
                 * @param {boolean} fMod
                 * @return {boolean} previous value
                 */
                modBackTrackIndex: function modBackTrackIndex(fMod) {
                    var fModPrev = this.fModBackTrack;
                    this.fModBackTrack = fMod;
                    return fModPrev;
                }
            };
            
            /*
             * This is the effective definition of afnNone, but we need not fully define it, because setAccess()
             * uses these defaults when any of the 6 handlers (ie, 3 read handlers and 3 write handlers) are undefined.
             *
            Memory.afnNone              = [Memory.prototype.readNone,        Memory.prototype.readShortDefault, Memory.prototype.readLongDefault, Memory.prototype.writeNone,        Memory.prototype.writeShortDefault, Memory.prototype.writeLongDefault];
             */
            
            Memory.afnNone              = [];
            Memory.afnMemory            = [Memory.prototype.readByteMemory,  Memory.prototype.readShortMemory,  Memory.prototype.readLongMemory,  Memory.prototype.writeByteMemory,  Memory.prototype.writeShortMemory,  Memory.prototype.writeLongMemory];
            Memory.afnChecked           = [Memory.prototype.readByteChecked, Memory.prototype.readShortChecked, Memory.prototype.readLongChecked, Memory.prototype.writeByteChecked, Memory.prototype.writeShortChecked, Memory.prototype.writeLongChecked];
            
            if (PAGEBLOCKS) {
                Memory.afnPaged         = [Memory.prototype.readBytePaged,   Memory.prototype.readShortPaged,   Memory.prototype.readLongPaged,   Memory.prototype.writeBytePaged,   Memory.prototype.writeShortPaged,   Memory.prototype.writeLongPaged];
                Memory.afnUnpaged       = [Memory.prototype.readByteUnpaged, Memory.prototype.readShortUnpaged, Memory.prototype.readLongUnpaged, Memory.prototype.writeByteUnpaged, Memory.prototype.writeShortUnpaged, Memory.prototype.writeLongUnpaged];
            }
            
            if (TYPEDARRAYS) {
                Memory.afnBigEndian     = [Memory.prototype.readByteBigEndian,    Memory.prototype.readShortBigEndian,    Memory.prototype.readLongBigEndian,    Memory.prototype.writeByteBigEndian,    Memory.prototype.writeShortBigEndian,    Memory.prototype.writeLongBigEndian];
                Memory.afnLittleEndian  = [Memory.prototype.readByteLittleEndian, Memory.prototype.readShortLittleEndian, Memory.prototype.readLongLittleEndian, Memory.prototype.writeByteLittleEndian, Memory.prototype.writeShortLittleEndian, Memory.prototype.writeLongLittleEndian];
            }
            
            if (typeof module !== 'undefined') module.exports = Memory;
            
          • messages.js
            /**
             * @fileoverview PCjs-specific message definitions.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2014-Dec-11
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            /*
             * Components that previously used Debugger messages definitions by including:
             *
             *     var Debugger = require("./debugger");
             *
             * and using:
             *
             *      Debugger.MESSAGE.FOO
             *
             * must now instead include:
             *
             *      var Messages = require("./messages");
             *
             * and then replace all occurrences of "Debugger.MESSAGE.FOO" with "Messages.FOO".
             */
            
            var Messages = {
                CPU:        0x00000001,
                SEG:        0x00000002,
                DESC:       0x00000004,
                TSS:        0x00000008,
                INT:        0x00000010,
                FAULT:      0x00000020,
                BUS:        0x00000040,
                MEM:        0x00000080,
                PORT:       0x00000100,
                DMA:        0x00000200,
                PIC:        0x00000400,
                TIMER:      0x00000800,
                CMOS:       0x00001000,
                RTC:        0x00002000,
                C8042:      0x00004000,
                CHIPSET:    0x00008000,
                KEYBOARD:   0x00010000,
                KEYS:       0x00020000,
                VIDEO:      0x00040000,
                FDC:        0x00080000,
                HDC:        0x00100000,
                DISK:       0x00200000,
                SERIAL:     0x00400000,
                SPEAKER:    0x00800000,
                STATE:      0x01000000,
                MOUSE:      0x02000000,
                COMPUTER:   0x04000000,
                DOS:        0x08000000,
                DATA:       0x10000000,
                LOG:        0x20000000,
                WARN:       0x40000000,
                HALT:       0x80000000|0
            };
            
            if (typeof module !== 'undefined') module.exports = Messages;
            
          • mouse.js
            /**
             * @fileoverview Implements the PCjs Mouse component.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Jul-01
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var str         = require("../../shared/lib/strlib");
                var web         = require("../../shared/lib/weblib");
                var Component   = require("../../shared/lib/component");
                var Messages    = require("./messages");
                var SerialPort  = require("./serialport");
                var State       = require("./state");
            }
            
            /**
             * Mouse(parmsMouse)
             *
             * The Mouse component has the following component-specific (parmsMouse) properties:
             *
             *      serial: the ID of the corresponding serial component
             *
             * Since the first version of this component supports ONLY emulation of the original Microsoft
             * serial mouse, a valid serial component ID is required.  It's possible that future versions
             * of this component may support other types of simulated hardware (eg, the Microsoft InPort
             * bus mouse adapter), or a virtual driver interface that would eliminate the need for any
             * intermediate hardware simulation (at the expense of writing an intermediate software layer or
             * virtual driver for each supported operating system).  However, those possibilities are extremely
             * unlikely in the near term.
             *
             * If the 'serial' property is specified, then communication will be established with the
             * SerialPort component, requesting access to the corresponding serial component ID.  If the
             * SerialPort component is not installed and/or the specified serial component ID is not present,
             * a configuration error will be reported.
             *
             * TODO: Just out of curiosity, verify that the Microsoft Bus Mouse used ports 0x23D and 0x23F,
             * because I saw Windows v1.01 probing those ports immediately prior to probing COM2 (and then COM1)
             * for a serial mouse.
             *
             * @constructor
             * @extends Component
             * @param {Object} parmsMouse
             */
            function Mouse(parmsMouse)
            {
                Component.call(this, "Mouse", parmsMouse, Mouse, Messages.MOUSE);
            
                this.idAdapter = parmsMouse['serial'];
                if (this.idAdapter) {
                    this.sAdapterType = "SerialPort";
                }
                this.setActive(false);
                this.fCaptured = this.fLocked = false;
            
                /*
                 * Initially, no video devices, and therefore no input devices, are attached.  initBus() will update aVideo,
                 * and powerUp() will update aInput.
                 */
                this.aVideo = [];
                this.aInput = [];
                this.setReady();
            }
            
            /*
             * From http://paulbourke.net/dataformats/serialmouse:
             *
             *      The old MicroSoft serial mouse, while no longer in general use, can be employed to provide a low cost input device,
             *      for example, coupling the internal mechanism to other moving objects. The serial protocol for the mouse is:
             *
             *          1200 baud, 7 bit, 1 stop bit, no parity.
             *
             *      The pinout of the connector follows the standard serial interface, as shown below:
             *
             *          Pin     Abbr    Description
             *          1       DCD     Data Carrier Detect
             *          2       RD      Receive Data            [serial data from mouse to host]
             *          3       TD      Transmit Data
             *          4       DTR     Data Terminal Ready     [used to provide positive voltage to mouse, plus reset/detection]
             *          5       SG      Signal Ground
             *          6       DSR     Data Set Ready
             *          7       RTS     Request To Send         [used to provide positive voltage to mouse]
             *          8       CTS     Clear To Send
             *          9       RI      Ring
             *
             *      Every time the mouse changes state (moved or button pressed) a three byte "packet" is sent to the serial interface.
             *      For reasons known only to the engineers, the data is arranged as follows, most notably the two high order bits for the
             *      x and y coordinates share the first byte with the button status.
             *
             *                      D6  D5  D4  D3  D2  D1  D0
             *          1st byte    1   LB  RB  Y7  Y6  X7  X6
             *          2nd byte    0   X5  X4  X3  X2  X1  X0
             *          3rd byte    0   Y5  Y4  Y3  Y2  Y1  Y0
             *
             *      where:
             *
             *          LB is the state of the left button, 1 = pressed, 0 = released.
             *          RB is the state of the right button, 1 = pressed, 0 = released
             *          X0-7 is movement of the mouse in the X direction since the last packet. Positive movement is toward the right.
             *          Y0-7 is movement of the mouse in the Y direction since the last packet. Positive movement is back, toward the user.
             *
             * From http://www.kryslix.com/nsfaq/Q.12.html:
             *
             *      The Microsoft serial mouse is the most popular 2-button mouse. It is supported by all major operating systems.
             *      The maximum tracking rate for a Microsoft mouse is 40 reports/second * 127 counts per report, in other words, 5080 counts
             *      per second. The most common range for mice is is 100 to 400 CPI (counts per inch) but can be up to 1000 CPI. A 100 CPI mouse
             *      can discriminate motion up to 50.8 inches/second while a 400 CPI mouse can only discriminate motion up to 12.7 inches/second.
             *
             *          9-pin  25-pin    Line    Comments
             *          shell  1         GND
             *          3      2         TD      Serial data from host to mouse (only for power)
             *          2      3         RD      Serial data from mouse to host
             *          7      4         RTS     Positive voltage to mouse
             *          8      5         CTS
             *          6      6         DSR
             *          5      7         SGND
             *          4      20        DTR     Positive voltage to mouse and reset/detection
             *
             *      To function correctly, both the RTS and DTR lines must be positive. DTR/DSR and RTS/CTS must NOT be shorted.
             *      RTS may be toggled negative for at least 100ms to reset the mouse. (After a cold boot, the RTS line is usually negative.
             *      This provides an automatic toggle when RTS is brought positive). When DTR is toggled the mouse should send a single byte
             *      (0x4D, ASCII 'M').
             *
             *      Serial data parameters: 1200bps, 7 data bits, 1 stop bit
             *
             *      Data is sent in 3 byte packets for each event (a button is pressed or released, or the mouse moves):
             *
             *                  D7  D6  D5  D4  D3  D2  D1  D0
             *          Byte 1  X   1   LB  RB  Y7  Y6  X7  X6
             *          Byte 2  X   0   X5  X4  X3  X2  X1  X0
             *          Byte 3  X   0   Y5  Y4  Y3  Y2  Y1  Y0
             *
             *      LB is the state of the left button (1 means down).
             *      RB is the state of the right button (1 means down).
             *      X7-X0 movement in X direction since last packet (signed byte).
             *      Y7-Y0 movement in Y direction since last packet (signed byte).
             *      The high order bit of each byte (D7) is ignored. Bit D6 indicates the start of an event, which allows the software to
             *      synchronize with the mouse.
             */
            
            Component.subclass(Mouse);
            
            Mouse.ID_SERIAL = 0x4D;
            
            /**
             * initBus(cmp, bus, cpu, dbg)
             *
             * @this {Mouse}
             * @param {Computer} cmp
             * @param {Bus} bus
             * @param {X86CPU} cpu
             * @param {Debugger} dbg
             */
            Mouse.prototype.initBus = function(cmp, bus, cpu, dbg)
            {
                this.cmp = cmp;
                this.bus = bus;
                this.cpu = cpu;
                this.dbg = dbg;
                /*
                 * Attach the Video component to the CPU, so that the CPU can periodically update
                 * the video display via updateVideo(), as cycles permit.
                 */
                for (var video = null; (video = cmp.getComponentByType("Video", video));) {
                    this.aVideo.push(video);
                }
            };
            
            /**
             * isActive()
             *
             * @this {Mouse}
             * @return {boolean} true if active, false if not
             */
            Mouse.prototype.isActive = function()
            {
                return this.fActive && (this.cpu? this.cpu.isRunning() : false);
            };
            
            /**
             * setActive(fActive)
             *
             * @this {Mouse}
             * @param {boolean} fActive is true if active, false if not
             */
            Mouse.prototype.setActive = function(fActive)
            {
                this.fActive = fActive;
                /*
                 * It's currently not possible to automatically lock the pointer outside the context of a user action
                 * (eg, a button or screen click), so this code is for naught.
                 *
                 *      if (this.aVideo.length) this.aVideo[0].notifyPointerActive(fActive);
                 *
                 * We now rely on similar code in clickMouse().
                 */
            };
            
            /**
             * powerUp(data, fRepower)
             *
             * @this {Mouse}
             * @param {Object|null} data
             * @param {boolean} [fRepower]
             * @return {boolean} true if successful, false if failure
             */
            Mouse.prototype.powerUp = function(data, fRepower)
            {
                if (!fRepower) {
                    if (!data || !this.restore) {
                        this.reset();
                    } else {
                        if (!this.restore(data)) return false;
                    }
                    if (this.sAdapterType && !this.componentAdapter) {
                        var componentAdapter = null;
                        while ((componentAdapter = this.cmp.getComponentByType(this.sAdapterType, componentAdapter))) {
                            if (componentAdapter.attachMouse) {
                                this.componentAdapter = componentAdapter.attachMouse(this.idAdapter, this);
                                if (this.componentAdapter) {
                                    /*
                                     * It's possible that the SerialPort we've just attached to might want to bring us "up to speed"
                                     * on the adapter's state, which is why I envisioned a subsequent syncMouse() call.  And you would
                                     * want to do that as a separate call, not as part of attachMouse(), because componentAdapter
                                     * isn't set until attachMouse() returns.
                                     *
                                     * However, syncMouse() seems unnecessary, given that SerialPort initializes its MCR to an "inactive"
                                     * state, and even when restoring a previous state, if we've done our job properly, both SerialPort
                                     * and Mouse should be restored in sync, making any explicit attempt at sync'ing unnecessary (or so I hope).
                                     */
                                    // this.componentAdapter.syncMouse();
                                    break;
                                }
                            }
                        }
                        if (this.componentAdapter) {
                            this.aInput = [];       // ensure the input device array is empty before (re)filling it
                            for (var i = 0; i < this.aVideo.length; i++) {
                                var input = this.aVideo[i].getInput(this);
                                if (input) this.aInput.push(input);
                            }
                        } else {
                            Component.warning(this.id + ": " + this.sAdapterType + " " + this.idAdapter + " unavailable");
                        }
                    }
                    if (this.fActive) {
                        this.captureAll();
                    } else {
                        this.releaseAll();
                    }
                }
                return true;
            };
            
            /**
             * powerDown(fSave, fShutdown)
             *
             * @this {Mouse}
             * @param {boolean} fSave
             * @param {boolean} [fShutdown]
             * @return {Object|boolean} component state if fSave; otherwise, true if successful, false if failure
             */
            Mouse.prototype.powerDown = function(fSave, fShutdown)
            {
                return fSave && this.save? this.save() : true;
            };
            
            /**
             * reset()
             *
             * @this {Mouse}
             */
            Mouse.prototype.reset = function()
            {
                this.initState();
            };
            
            /**
             * save()
             *
             * This implements save support for the Mouse component.
             *
             * @this {Mouse}
             * @return {Object}
             */
            Mouse.prototype.save = function()
            {
                var state = new State(this);
                state.set(0, this.saveState());
                return state.data();
            };
            
            /**
             * restore(data)
             *
             * This implements restore support for the Mouse component.
             *
             * @this {Mouse}
             * @param {Object} data
             * @return {boolean} true if successful, false if failure
             */
            Mouse.prototype.restore = function(data)
            {
                return this.initState(data[0]);
            };
            
            /**
             * initState(data)
             *
             * @this {Mouse}
             * @param {Array} [data]
             * @return {boolean} true if successful, false if failure
             */
            Mouse.prototype.initState = function(data)
            {
                var i = 0;
                if (data === undefined) data = [false, -1, -1, 0, 0, false, false, 0];
                this.setActive(data[i++]);
                this.xMouse = data[i++];
                this.yMouse = data[i++];
                this.xDelta = data[i++];
                this.yDelta = data[i++];
                this.fButton1 = data[i++];      // FYI, we consider button1 to be the LEFT button
                this.fButton2 = data[i++];      // FYI, we consider button2 to be the RIGHT button
                this.bMCR = data[i];
                return true;
            };
            
            /**
             * saveState()
             *
             * @this {Mouse}
             * @return {Array}
             */
            Mouse.prototype.saveState = function()
            {
                var i = 0;
                var data = [];
                data[i++] = this.fActive;
                data[i++] = this.xMouse;
                data[i++] = this.yMouse;
                data[i++] = this.xDelta;
                data[i++] = this.yDelta;
                data[i++] = this.fButton1;
                data[i++] = this.fButton2;
                data[i] = this.bMCR;
                return data;
            };
            
            /**
             * notifyPointerLocked()
             *
             * @this {Mouse}
             * @param {boolean} fLocked
             */
            Mouse.prototype.notifyPointerLocked = function(fLocked)
            {
                this.fLocked = fLocked;
            };
            
            /**
             * captureAll()
             *
             * @this {Mouse}
             */
            Mouse.prototype.captureAll = function()
            {
                if (!this.fCaptured) {
                    for (var i = 0; i < this.aInput.length; i++) {
                        if (this.captureMouse(this.aInput[i])) this.fCaptured = true;
                    }
                }
            };
            
            /**
             * releaseAll()
             *
             * @this {Mouse}
             */
            Mouse.prototype.releaseAll = function()
            {
                if (this.fCaptured) {
                    for (var i = 0; i < this.aInput.length; i++) {
                        if (this.releaseMouse(this.aInput[i])) this.fCaptured = false;
                    }
                }
            };
            
            /**
             * captureMouse(control)
             *
             * NOTE: addEventListener() wasn't supported in Internet Explorer until IE9, but that's OK, because
             * IE9 is the oldest IE we support anyway (since versions prior to IE9 lack the necessary HTML5 support).
             *
             * @this {Mouse}
             * @param {Object} control from the HTML DOM (eg, the control for the simulated screen)
             * @return {boolean} true if event handlers were actually added, false if not
             */
            Mouse.prototype.captureMouse = function(control)
            {
                if (control) {
                    var mouse = this;
                    control.addEventListener(
                        'mousemove',
                        function onMouseMove(event) {
                            mouse.moveMouse(event);
                        },
                        false               // we'll specify false for the 'useCapture' parameter for now...
                    );
                    control.addEventListener(
                        'mousedown',
                        function onMouseDown(event) {
                            mouse.clickMouse(event.button, true);
                        },
                        false               // we'll specify false for the 'useCapture' parameter for now...
                    );
                    control.addEventListener(
                        'mouseup',
                        function onMouseUp(event) {
                            mouse.clickMouse(event.button, false);
                        },
                        false               // we'll specify false for the 'useCapture' parameter for now...
                    );
                    /*
                     * None of these tricks seemed to work for IE10, so I'm giving up hiding the browser's mouse pointer in IE for now.
                     *
                     *      control['style']['cursor'] = "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjbQg61aAAAADUlEQVQYV2P4//8/IwAI/QL/+TZZdwAAAABJRU5ErkJggg=='), url('/versions/images/current/blank.cur'), none";
                     *
                     * Setting the cursor style to "none" may not be a standard, but it works in Safari, Firefox and Chrome, so that's pretty
                     * good for a non-standard!
                     *
                     * TODO: The reference to '/versions/images/current/blank.cur' is also problematic for anyone who might want
                     * to run this app from a different server, so think about that as well.
                     */
                    control['style']['cursor'] = "none";
                    return true;
                }
                return false;
            };
            
            /**
             * releaseMouse(control)
             *
             * TODO: Use removeEventListener() to clean up our handlers; since I'm currently using anonymous functions,
             * and since I'm not seeing any compelling reason to remove the handlers once they've been established, it's
             * less code to leave them in place.
             *
             * @this {Mouse}
             * @param {Object} control from the HTML DOM
             * @return {boolean} true if event handlers were actually released, false if not
             */
            Mouse.prototype.releaseMouse = function(control)
            {
                if (control) {
                    control['style']['cursor'] = "auto";
                }
                return false;
            };
            
            /**
             * moveMouse(event)
             *
             * MouseEvent objects contain, among other things, the following properties:
             *
             *      clientX
             *      clientY
             *
             * I've selected the above properties because they're widely supported, not because I need
             * client-area coordinates.  In fact, layerX and layerY are probably closer to what I really want,
             * but I don't think they're available in all browsers.  screenX and screenY would work as well.
             *
             * This is because all we care about are deltas.  We record clientX and clientY (as xMouse and yMouse)
             * merely to calculate xDelta and yDelta.
             *
             * @this {Mouse}
             * @param {Object} event object from a 'mousemove' event (specifically, a MouseEvent object)
             */
            Mouse.prototype.moveMouse = function(event)
            {
                if (this.isActive()) {
                    if (this.xMouse < 0 || this.yMouse < 0) {
                        this.xMouse = event.clientX;
                        this.yMouse = event.clientY;
                    }
                    if (this.fLocked) {
                        this.xDelta = event['movementX'] || event['mozMovementX'] || event['webkitMovementX'] || 0;
                        this.yDelta = event['movementY'] || event['mozMovementY'] || event['webkitMovementY'] || 0;
                    } else {
                        this.xDelta = event.clientX - this.xMouse;
                        this.yDelta = event.clientY - this.yMouse;
                    }
                    if (this.xDelta || this.yDelta) {
                        /*
                         * As sendPacket() indicates, any x and y coordinates we supply are for diagnostic purposes only.
                         * sendPacket() only cares about the xDelta and yDelta properties, which it then zeroes on completion.
                         */
                        this.sendPacket(null, event.clientX, event.clientY);
                    }
                    this.xMouse = event.clientX;
                    this.yMouse = event.clientY;
                }
            };
            
            /**
             * clickMouse(iButton, fDown)
             *
             * @this {Mouse}
             * @param {number} iButton is 0 for fButton1 (the LEFT button), 2 for fButton2 (the RIGHT button)
             * @param {boolean} fDown
             */
            Mouse.prototype.clickMouse = function(iButton, fDown)
            {
                if (this.isActive()) {
                    if (this.fLocked === false) {
                        /*
                         * If there's no support for automatic pointer locking in the Video component, then notifyPointerActive()
                         * will return false, and we will set fLocked to null, ensuring that we never attempt this again.
                         */
                        if (!this.aVideo.length || !this.aVideo[0].notifyPointerActive(true)) {
                            this.fLocked = null;
                        }
                    }
                    var sDiag = DEBUGGER? ("mouse button" + iButton + ' ' + (fDown? "dn" : "up")) : null;
                    switch (iButton) {
                    case 0:
                        if (this.fButton1 != fDown) {
                            this.fButton1 = fDown;
                            this.sendPacket(sDiag);
                        }
                        break;
                    case 2:
                        if (this.fButton2 != fDown) {
                            this.fButton2 = fDown;
                            this.sendPacket(sDiag);
                        }
                        break;
                    default:
                        break;
                    }
                }
            };
            
            /**
             * sendPacket(sDiag, xDiag, yDiag)
             *
             * If we're called, something changed.
             *
             * Let's review the 3-byte packet format:
             *
             *              D7  D6  D5  D4  D3  D2  D1  D0
             *      Byte 1  X   1   LB  RB  Y7  Y6  X7  X6
             *      Byte 2  X   0   X5  X4  X3  X2  X1  X0
             *      Byte 3  X   0   Y5  Y4  Y3  Y2  Y1  Y0
             *
             * @this {Mouse}
             * @param {string|null} [sDiag] diagnostic message
             * @param {number} [xDiag] original x-coordinate (optional; for diagnostic use only)
             * @param {number} [yDiag] original y-coordinate (optional; for diagnostic use only)
             */
            Mouse.prototype.sendPacket = function(sDiag, xDiag, yDiag)
            {
                var b1 = 0x40 | (this.fButton1? 0x20 : 0) | (this.fButton2? 0x10 : 0) | ((this.yDelta & 0xC0) >> 4) | ((this.xDelta & 0xC0) >> 6);
                var b2 = this.xDelta & 0x3F;
                var b3 = this.yDelta & 0x3F;
                if (this.messageEnabled(Messages.SERIAL)) {
                    this.printMessage((sDiag? (sDiag + ": ") : "") + (yDiag !== undefined? ("mouse (" + xDiag + "," + yDiag + "): ") : "") + "serial packet [" + str.toHexByte(b1) + "," + str.toHexByte(b2) + "," + str.toHexByte(b3) + "]", 0, true);
                }
                this.componentAdapter.sendRBR([b1, b2, b3]);
                this.xDelta = this.yDelta = 0;
            };
            
            /**
             * notifyMCR(bMCR)
             *
             * The SerialPort notifies us whenever SerialPort.MCR.DTR or SerialPort.MCR.RTS changes.
             *
             * During normal serial mouse operation, both RTS and DTR must be "positive".
             *
             * Setting RTS "negative" for 100ms resets the mouse.  Toggling DTR requests an identification byte (ID_SERIAL).
             *
             * NOTES: The above 3rd-party information notwithstanding, I've observed that Windows v1.01 initially writes 0x01
             * to the MCR (DTR on, RTS off), spins in a loop that reads the RBR (probably to avoid a bogus identification byte
             * sitting in the RBR), and then writes 0x0B to the MCR (DTR on, RTS on).  This last step is consistent with making
             * the mouse "active", but it is NOT consistent with "toggling DTR", so I conclude that a reset is ALSO sufficient
             * for sending the identification byte.  Right or wrong, this gets the ball rolling for Windows v1.01.
             *
             * @this {Mouse}
             * @param {number} bMCR
             */
            Mouse.prototype.notifyMCR = function(bMCR)
            {
                var fActive = ((bMCR & (SerialPort.MCR.DTR | SerialPort.MCR.RTS)) == (SerialPort.MCR.DTR | SerialPort.MCR.RTS));
                if (fActive) {
                    if (!this.fActive) {
                        var fIdentify = false;
                        if (!(this.bMCR & SerialPort.MCR.RTS)) {
                            this.reset();
                            this.printMessage("serial mouse reset");
                            fIdentify = true;
                        }
                        if (!(this.bMCR & SerialPort.MCR.DTR)) {
                            this.printMessage("serial mouse ID requested");
                            fIdentify = true;
                        }
                        if (fIdentify) {
                            /*
                             * HEADS UP: Everything I'd read about the (original) Microsoft Serial Mouse "reset" protocol says
                             * that the device sends a single byte (0x4D aka 'M').  It's not surprising to think that newer mice
                             * might send additional bytes, but you would think that newer mouse drivers (eg, MOUSE.COM v8.20)
                             * would always be able to deal with mice that sent only one byte.
                             *
                             * You would be wrong.  On an INT 0x33 reset, the v8.20 driver looks for an 'M', then it waits for
                             * another byte (0x42 aka 'B').  If it doesn't receive a 'B', it will accept another 'M'.  But if it
                             * receives something else (or nothing at all), it will spend a long time waiting for it, and then
                             * return an error.
                             *
                             * It's entirely possible that I've done something wrong and inadvertently "tricked" MOUSE.COM into
                             * using the wrong detection logic.  But given the other problems I've seen in MOUSE.COM v8.20, including
                             * its failure to properly terminate-and-stay-resident when its initial INT 0x33 reset returns an error,
                             * I'm not in the mood to give it the benefit of the doubt.
                             *
                             * So, anyway, I solve the terminate-and-stay-resident bug in MOUSE.COM v8.20 by feeding it *two* ID_SERIAL
                             * bytes on a reset.  This doesn't seem to adversely affect serial mouse emulation for Windows 1.01, so
                             * I'm calling this good enough for now.
                             */
                            this.componentAdapter.sendRBR([Mouse.ID_SERIAL, Mouse.ID_SERIAL]);
                            this.printMessage("serial mouse ID sent");
                        }
                        this.captureAll();
                        this.setActive(fActive);
                    }
                } else {
                    if (this.fActive) {
                        /*
                         * Although this would seem nice (ie, for the Windows v1.01 mouse driver to turn RTS off when its mouse
                         * driver shuts down and Windows exits, since it DID turn RTS on), that doesn't appear to actually happen.
                         * At the very least, Windows will have (re)masked the serial port's IRQ, so what does it matter?  Not much,
                         * I just would have preferred that fActive properly reflect whether we should continue dispatching mouse
                         * events, displaying MOUSE messages, etc.
                         *
                         * We could ask the ChipSet component to notify the SerialPort component whenever its IRQ is masked/unmasked,
                         * and then have the SerialPort pass that notification on to us, but I'm assuming that in the real world,
                         * a mouse device that's still powered may still send event data to the serial port, and if there was software
                         * polling the serial port, it might expect to see that data.  Unlikely, but not impossible.
                         */
                        this.printMessage("serial mouse inactive");
                        this.releaseAll();
                        this.setActive(fActive);
                    }
                }
                this.bMCR = bMCR;
            };
            
            /**
             * Mouse.init()
             *
             * This function operates on every HTML element of class "mouse", extracting the
             * JSON-encoded parameters for the Mouse constructor from the element's "data-value"
             * attribute, invoking the constructor to create a Mouse component, and then binding
             * any associated HTML controls to the new component.
             */
            Mouse.init = function()
            {
                var aeMouse = Component.getElementsByClass(window.document, PCJSCLASS, "mouse");
                for (var iMouse = 0; iMouse < aeMouse.length; iMouse++) {
                    var eMouse = aeMouse[iMouse];
                    var parmsMouse = Component.getComponentParms(eMouse);
                    var mouse = new Mouse(parmsMouse);
                    Component.bindComponentControls(mouse, eMouse, PCJSCLASS);
                }
            };
            
            /*
             * Initialize every Mouse module on the page.
             */
            web.onInit(Mouse.init);
            
            if (typeof module !== 'undefined') module.exports = Mouse;
            
          • nodebugger.js
            /**
             * @fileoverview Compile-time definitions for Debugger-less configurations.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2014-May-08
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            /*
             * WARNING: DEBUGGER needs to accurately reflect whether or not the Debugger component is (or will be) loaded.
             * In the compiled case, we rely on the Closure Compiler to override DEBUGGER as appropriate.  When it's *false*,
             * nearly all of debugger.js will be conditionally removed by the compiler, reducing it to little more than a
             * "type skeleton", which also solves some type-related warnings we would otherwise have if we tried to remove
             * debugger.js from the compilation process altogether.
             *
             * However, when we're in "development mode" and running uncompiled code in debugger-less configurations,
             * I would still like to skip loading debugger.js altogether.  To do that, we must arrange for this additional file,
             * nodebugger.js, to be loaded as early as possible, which explicitly UPDATES the value of DEBUGGER to false.
             */
            var DEBUGGER = false;
            
          • panel.js
            /**
             * @fileoverview Implements the PCjs Panel component.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Jun-19
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var str         = require("../../shared/lib/strlib");
                var usr         = require("../../shared/lib/usrlib");
                var web         = require("../../shared/lib/weblib");
                var Component   = require("../../shared/lib/component");
                var Bus         = require("./bus");
                var Memory      = require("./memory");
                var X86         = require("./x86");
            }
            
            /**
             * Panel(parmsPanel)
             *
             * The Panel component has no required (parmsPanel) properties.
             *
             * @constructor
             * @extends Component
             * @param {Object} parmsPanel
             */
            function Panel(parmsPanel)
            {
                Component.call(this, "Panel", parmsPanel, Panel);
            
                this.canvas = null;
                this.lockMouse = -1;
                this.fMouseDown = false;
                this.xMouse = this.yMouse = -1;
                if (BACKTRACK) {
                    this.busInfo = null;
                    this.fBackTrack = false;
                }
            }
            
            Component.subclass(Panel);
            
            /*
             * The "Live" canvases that we create internally have the following fixed dimensions, to make drawing
             * simpler.  We then render, via drawImage(), these canvases onto the supplied canvas, which will automatically
             * stretch the live images to fit.
             */
            Panel.LIVECANVAS = {
                CX:         1280,
                CY:         720,
                FONT:       {
                    CY:     18,
                    FACE:   "Monaco, Lucida Console, Courier New"
                }
            };
            
            Panel.LIVEMEM = {
                CX: (Panel.LIVECANVAS.CX * 3) >> 2,
                CY: (Panel.LIVECANVAS.CY)
            };
            
            Panel.LIVEREGS = {
                CX:     (Panel.LIVECANVAS.CX - Panel.LIVEMEM.CX),
                CY:     (Panel.LIVECANVAS.CY),
                COLOR:  "black"
            };
            
            Panel.LIVEDUMP = {
                CX: (Panel.LIVECANVAS.CX - Panel.LIVEMEM.CX),
                CY: (Panel.LIVECANVAS.CY >> 1)
            };
            
            /*
             * findRegions() records block numbers in bits 0-14, a BackTrack "mod" bit in bit 15, and the block type at bit 16.
             */
            Panel.REGION = {
                MASK:           0x7fff,
                BTMOD_SHIFT:    15,
                TYPE_SHIFT:     16
            };
            
            /**
             * Color(r, g, b, a)
             *
             * @constructor
             * @param {number} [r]
             * @param {number} [g]
             * @param {number} [b]
             * @param {number} [a]
             */
            function Color(r, g, b, a)
            {
                this.rgb = [r, g, b, a];
                this.sValue = null;
                if (r === undefined) this.randomize();
            }
            
            /**
             * getRandom(nLimit)
             *
             * @this {Color}
             * @param {number} [nLimit]
             */
            Color.prototype.getRandom = function(nLimit)
            {
                return (Math.random() * (nLimit || 0x100)) | 0;
            };
            
            /**
             * randomize()
             *
             * @this {Color}
             */
            Color.prototype.randomize = function()
            {
                this.rgb[0] = this.getRandom(); this.rgb[1] = this.getRandom(); this.rgb[2] = this.getRandom(); this.rgb[3] = 0xff;
                this.sValue = null;
            };
            
            /**
             * toString()
             *
             * @this {Color}
             * @return {string}
             */
            Color.prototype.toString = function()
            {
                if (!this.sValue) this.sValue = '#' + str.toHex(this.rgb[0], 2) + str.toHex(this.rgb[1], 2) + str.toHex(this.rgb[2], 2);
                return this.sValue;
            };
            
            /**
             * Rectangle(x, y, cx, cy)
             *
             * @constructor
             * @param {number} x
             * @param {number} y
             * @param {number} cx
             * @param {number} cy
             */
            function Rectangle(x, y, cx, cy)
            {
                this.x = x;
                this.y = y;
                this.cx = cx;
                this.cy = cy;
            }
            
            /**
             * contains(x, y)
             *
             * @param {number} x
             * @param {number} y
             * @return {boolean} true if (x,y) lies within the rectangle, false if not
             */
            Rectangle.prototype.contains = function(x, y)
            {
                return (x >= this.x && x < this.x + this.cx && y >= this.y && y < this.y + this.cy);
            };
            
            /**
             * subDivide(units, unitsTotal, fHorizontal)
             *
             * Return a new rectangle that is a subset of the current rectangle, based on the ratio of
             * units to unitsTotal, and then update the dimensions of the current rectangle.  Whether the
             * original rectangle is divided horizontally or vertically is entirely arbitrary; currently,
             * the criteria is horizontal if the ratio is 1/4 or more, vertical otherwise.
             *
             * @this {Rectangle}
             * @param {number} units
             * @param {number} unitsTotal
             * @param {boolean} [fHorizontal]
             * @return {Rectangle}
             */
            Rectangle.prototype.subDivide = function(units, unitsTotal, fHorizontal)
            {
                var rect;
                if (fHorizontal === undefined) {
                    fHorizontal = units >= (unitsTotal >> 2);
                }
                if (fHorizontal) {
                    rect = new Rectangle(this.x, this.y, this.cx, ((this.cy * units) / unitsTotal) | 0);
                    this.y += rect.cy;
                    this.cy -= rect.cy;
                    Component.assert(this.cy >= 0);
                } else {
                    rect = new Rectangle(this.x, this.y, ((this.cx * units) / unitsTotal) | 0, this.cy);
                    this.x += rect.cx;
                    this.cx -= rect.cx;
                    Component.assert(this.cx >= 0);
                }
                return rect;
            };
            
            /**
             * drawWith(context, color)
             *
             * @param {Object} context
             * @param {Color|string} [color]
             */
            Rectangle.prototype.drawWith = function(context, color)
            {
                if (!color) color = new Color();
                context.strokeStyle = "black";
                context.strokeRect(this.x, this.y, this.cx, this.cy);
                context.fillStyle = (typeof color == "string"? color : color.toString());
                context.fillRect(this.x, this.y, this.cx, this.cy);
            };
            
            /**
             * setBinding(sHTMLType, sBinding, control)
             *
             * Most panel layouts don't have bindings of their own, so we pass along all binding requests to the
             * Computer, CPU, Keyboard and Debugger components first.  The order shouldn't matter, since any component
             * that doesn't recognize the specified binding should simply ignore it.
             *
             * @this {Panel}
             * @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
             * @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "reset")
             * @param {Object} control is the HTML control DOM object (eg, HTMLButtonElement)
             * @return {boolean} true if binding was successful, false if unrecognized binding request
             */
            Panel.prototype.setBinding = function(sHTMLType, sBinding, control)
            {
                if (this.cmp && this.cmp.setBinding(sHTMLType, sBinding, control)) return true;
                if (this.cpu && this.cpu.setBinding(sHTMLType, sBinding, control)) return true;
                if (this.kbd && this.kbd.setBinding(sHTMLType, sBinding, control)) return true;
                if (DEBUGGER && this.dbg && this.dbg.setBinding(sHTMLType, sBinding, control)) return true;
            
                if (!this.canvas && sHTMLType == "canvas") {
            
                    var panel = this;
                    var fPanel = false;
            
                    if (BACKTRACK && sBinding == "btpanel") {
                        this.fBackTrack = fPanel = true;
                    }
            
                    if (fPanel) {
                        this.canvas = control;
                        this.context = this.canvas.getContext("2d");
            
                        /*
                         * Employ the same gross onresize() hack for IE9/IE10 that we had to use for the Video canvas
                         */
                        if (web.getUserAgent().indexOf("MSIE") >= 0) {
                            this.canvas.onresize = function(canvas, cx, cy) {
                                return function onResizeVideo() {
                                    canvas.style.height = (((canvas.clientWidth * cy) / cx) | 0) + "px";
                                };
                            }(this.canvas, this.canvas.width, this.canvas.height);
                            this.canvas.onresize();
                        }
            
                        this.xMem = this.yMem = 0;
                        this.cxMem = ((this.canvas.width * Panel.LIVEMEM.CX) / Panel.LIVECANVAS.CX) | 0;
                        this.cyMem = this.canvas.height;
            
                        this.xReg = this.cxMem;
                        this.yReg = 0;
                        this.cxReg = this.canvas.width - this.cxMem;
                        this.cyReg = this.canvas.height;
            
                        this.xDump = this.xReg;
                        this.yDump = ((this.canvas.height * (Panel.LIVEREGS.CY - Panel.LIVEDUMP.CY)) / Panel.LIVECANVAS.CY) | 0;
                        this.cxDump = this.cxReg;
                        this.cyDump = ((this.canvas.height * Panel.LIVEDUMP.CY) / Panel.LIVECANVAS.CY) | 0;
            
                        this.canvasLiveMem = window.document.createElement("canvas");
                        this.canvasLiveMem.width = Panel.LIVEMEM.CX;
                        this.canvasLiveMem.height = Panel.LIVEMEM.CY;
                        this.contextLiveMem = this.canvasLiveMem.getContext("2d");
                        this.imageLiveMem = this.contextLiveMem.createImageData(this.canvasLiveMem.width, this.canvasLiveMem.height);
            
                        this.canvasLiveRegs = window.document.createElement("canvas");
                        this.canvasLiveRegs.width = Panel.LIVEREGS.CX;
                        this.canvasLiveRegs.height = Panel.LIVEREGS.CY;
                        this.contextLiveRegs = this.canvasLiveRegs.getContext("2d");
            
                        this.canvas.addEventListener(
                            'mousemove',
                            function onMouseMove(event) {
                                panel.moveMouse(event);
                            },
                            false               // we'll specify false for the 'useCapture' parameter for now...
                        );
                        this.canvas.addEventListener(
                            'mousedown',
                            function onMouseDown(event) {
                                panel.clickMouse(event, true);
                            },
                            false               // we'll specify false for the 'useCapture' parameter for now...
                        );
                        this.canvas.addEventListener(
                            'mouseup',
                            function onMouseUp(event) {
                                panel.clickMouse(event, false);
                            },
                            false               // we'll specify false for the 'useCapture' parameter for now...
                        );
            
                        this.fRedraw = true;
                        return true;
                    }
                }
                return this.parent.setBinding.call(this, sHTMLType, sBinding, control);
            };
            
            /**
             * initBus(cmp, bus, cpu, dbg)
             *
             * @this {Panel}
             * @param {Computer} cmp
             * @param {Bus} bus
             * @param {X86CPU} cpu
             * @param {Debugger} dbg
             */
            Panel.prototype.initBus = function(cmp, bus, cpu, dbg)
            {
                this.cmp = cmp;
                this.bus = bus;
                this.cpu = cpu;
                this.dbg = dbg;
                this.kbd = cmp.getComponentByType("Keyboard");
            };
            
            /**
             * powerUp(data, fRepower)
             *
             * @this {Panel}
             * @param {Object|null} data
             * @param {boolean} [fRepower]
             * @return {boolean} true if successful, false if failure
             */
            Panel.prototype.powerUp = function(data, fRepower)
            {
                if (!fRepower) Panel.init();
                return true;
            };
            
            /**
             * powerDown(fSave, fShutdown)
             *
             * @this {Panel}
             * @param {boolean} fSave
             * @param {boolean} [fShutdown]
             * @return {Object|boolean} component state if fSave; otherwise, true if successful, false if failure
             */
            Panel.prototype.powerDown = function(fSave, fShutdown)
            {
                return true;
            };
            
            /**
             * clickMouse(event, fDown)
             *
             * @this {Panel}
             * @param {Object} event object from a 'mousedown' or 'mouseup' event
             * @param {boolean} fDown
             */
            Panel.prototype.clickMouse = function(event, fDown)
            {
                /*
                 * event.button is 0 for the LEFT button and 2 for the RIGHT button
                 */
                if (!event.button) {
                    this.lockMouse = fDown? 0 : -1;
                    this.fMouseDown = fDown;
                    this.updateMouse(event, fDown);
                }
            };
            
            /**
             * moveMouse(event)
             *
             * @this {Panel}
             * @param {Object} event object from a 'mousemove' event
             */
            Panel.prototype.moveMouse = function(event)
            {
                this.updateMouse(event);
            };
            
            /**
             * updateMouse(event, fDown)
             *
             * MouseEvent objects contain, among other things, the following properties:
             *
             *      clientX
             *      clientY
             *
             * I've selected the above properties because they're widely supported, not because I need
             * client-area coordinates.  In fact, layerX and layerY are probably closer to what I really want,
             * but I don't think they're available in all browsers.  screenX and screenY would work as well.
             *
             * @this {Panel}
             * @param {Object} event object from a mouse event (specifically, a MouseEvent object)
             * @param {boolean} [fDown] is true or false if this was a click event, otherwise it's just a move event
             */
            Panel.prototype.updateMouse = function(event, fDown)
            {
                /*
                 * Due to the responsive nature of our pages, the displayed size of the canvas may be smaller than the
                 * allocated size, and the coordinates we receive from mouse events are based on the currently displayed size.
                 */
                var xScale = Panel.LIVECANVAS.CX / this.canvas.offsetWidth;
                var yScale = Panel.LIVECANVAS.CY / this.canvas.offsetHeight;
            
                var rect = this.canvas.getBoundingClientRect();
                var x = ((event.clientX - rect.left) * xScale) | 0;
                var y = ((event.clientY - rect.top) * yScale) | 0;
            
                if (fDown == null) {
                    if (!this.lockMouse) {
                        this.lockMouse = Math.abs(this.xMouse - x) > Math.abs(this.yMouse - y)? 1 : 2;
                    }
                    if (this.lockMouse == 1) {
                        y = this.yMouse;
                    } else if (this.lockMouse == 2) {
                        x = this.xMouse;
                    }
                }
            
                this.xMouse = x;
                this.yMouse = y;
            
                if (MAXDEBUG) this.log("Panel.moveMouse(" + x + "," + y + ")");
            
                if (x >= 0 && x < Panel.LIVECANVAS.CX && y >= 0 && y < Panel.LIVECANVAS.CY) {
                    /*
                     * Convert the mouse position into the corresponding memory address, assuming it's over the live memory area
                     */
                    var addr = this.findAddress(x, y);
                    if (addr !== X86.ADDR_INVALID) {
                        addr &= ~0xf;
                        if (addr != this.addrDumpLast) {
                            this.dumpMemory(addr, true);
                            this.addrDumpLast = addr;
                        }
                    }
                }
            };
            
            /**
             * findAddress(x, y)
             *
             * @this {Panel}
             * @param {number} x
             * @param {number} y
             * @return {number} address corresponding to (x,y) canvas coordinates, or ADDR_INVALID if none
             */
            Panel.prototype.findAddress = function(x, y)
            {
                if (x < Panel.LIVEMEM.CX && this.busInfo && this.busInfo.aRects) {
                    var i, rect;
                    for (i = 0; i < this.busInfo.aRects.length; i++) {
                        rect = this.busInfo.aRects[i];
                        if (rect.contains(x, y)) {
                            x -= rect.x;
                            y -= rect.y;
                            var region = this.busInfo.aRegions[i];
                            var iBlock = usr.getBitField(Bus.BlockInfo.num, this.busInfo.aBlocks[region.iBlock]);
                            var addr = iBlock * this.bus.nBlockSize;
                            var addrLimit = (iBlock + region.cBlocks) * this.bus.nBlockSize - 1;
            
                            /*
                             * If you want memory to be arranged "vertically" instead of "horizontally", do this:
                             *
                             *      if (x > 0) addr += rect.cy * (x - 1) * this.ratioMemoryToPixels;
                             *      addr += (y * this.ratioMemoryToPixels);
                             */
                            if (y > 0) addr += rect.cx * (y - 1) * this.ratioMemoryToPixels;
                            addr += (x * this.ratioMemoryToPixels);
            
                            addr |= 0;
                            if (addr > addrLimit) addr = addrLimit;
                            if (MAXDEBUG) this.log("Panel.findAddress(" + x + "," + y + ") found type " + Memory.TYPE.NAMES[region.type] + ", address %" + str.toHex(addr));
                            return addr;
                        }
                    }
                }
                return X86.ADDR_INVALID;
            };
            
            /**
             * updateAnimation()
             *
             * If the given Control Panel contains a canvas requiring animation (eg, "btpanel"), then this is where that happens.
             *
             * @this {Panel}
             */
            Panel.prototype.updateAnimation = function()
            {
                if (this.fRedraw) {
            
                    this.initPen(10, Panel.LIVECANVAS.FONT.CY, this.canvasLiveMem, this.contextLiveMem, this.canvas.style.color);
            
                    if (this.fBackTrack) {
                        if (DEBUG) this.log("begin scanMemory()");
                        this.busInfo = this.bus.scanMemory(this.busInfo);
                        /*
                         * Calculate the pixel-to-memory-address ratio
                         */
                        this.ratioMemoryToPixels = (this.busInfo.cBlocks * this.bus.nBlockSize) / (Panel.LIVEMEM.CX * Panel.LIVEMEM.CY);
                        /*
                         * Update the BusInfo object with region information (cRegions and aRegions); return true if region
                         * information has changed since the last call.
                         */
                        if (this.findRegions()) {
                            /*
                             * For each region, I choose a slice of the LiveMem canvas and record the corresponding rectangle
                             * within an aRects array (parallel to the aRegions array) in the BusInfo object.
                             *
                             * I don't need a sophisticated Treemap algorithm, because at this level, the data is not hierarchical.
                             * subDivide() makes a simple horizontal or vertical slicing decision based on the ratio of region blocks
                             * to remaining blocks.
                             */
                            var i, rect;
                            var rectAvail = new Rectangle(0, 0, this.canvasLiveMem.width, this.canvasLiveMem.height);
                            this.busInfo.aRects = [];
                            var cBlocksRemaining = this.busInfo.cBlocks;
            
                            for (i = 0; i < this.busInfo.cRegions; i++) {
                                var cBlocksRegion = this.busInfo.aRegions[i].cBlocks;
                                this.busInfo.aRects.push(rect = rectAvail.subDivide(cBlocksRegion, cBlocksRemaining, !i));
                                if (MAXDEBUG) this.log("region " + i + " rectangle: (" + rect.x + "," + rect.y + " " + rect.cx + "," + rect.cy + ")");
                                cBlocksRemaining -= cBlocksRegion;
                            }
            
                            /*
                             * Assert that not only did all the specified regions account for all the specified blocks, but also that
                             * the series of subDivide() calls exhausted the original rectangle to one of either zero width or zero height.
                             */
                            this.assert(!cBlocksRemaining && (!rectAvail.cx || !rectAvail.cy));
            
                            /*
                             * Now draw all the rectangles produced by the series of subDivide() calls.
                             */
                            for (i = 0; i < this.busInfo.aRects.length; i++) {
                                var region = this.busInfo.aRegions[i];
                                rect = this.busInfo.aRects[i];
                                rect.drawWith(this.contextLiveMem, Memory.TYPE.COLORS[region.type]);
                                this.centerPen(rect);
                                this.centerText(Memory.TYPE.NAMES[region.type] + " (" + (((region.cBlocks * this.bus.nBlockSize) / 1024) | 0) + "Kb)");
                            }
                        }
                        if (DEBUG) this.log("end scanMemory(): total bytes: " + this.busInfo.cbTotal + ", total blocks: " + this.busInfo.cBlocks + ", total regions: " + this.busInfo.cRegions);
                    } else {
                        this.drawText("This space intentionally left blank");
                    }
                    this.context.drawImage(this.canvasLiveMem, 0, 0, this.canvasLiveMem.width, this.canvasLiveMem.height, this.xMem, this.yMem, this.cxMem, this.cyMem);
                    this.fRedraw = false;
                }
            };
            
            /**
             * updateStatus()
             *
             * Update function for Control Panels containing DOM elements with low-frequencyxt display requirements.
             *
             * For the time being, the X86CPU component has its own updateStatus() handler, and displays all CPU registers itself.
             *
             * @this {Panel}
             */
            Panel.prototype.updateStatus = function()
            {
                if (this.canvas) {
                    this.dumpRegisters();
                }
            };
            
            /**
             * findRegions()
             *
             * This takes the BusInfo object produced by scanMemory() and adds the following:
             *
             *      cRegions:   number of contiguous memory regions
             *      aRegions:   array of aBlocks [index, count, type] objects
             *
             * It calls addRegion() for each discrete region (set of contiguous blocks with the same type) that it finds.
             *
             * @this {Panel}
             * @return {boolean} true if current region checksum differed from previous checksum (ie, one or more regions changed)
             */
            Panel.prototype.findRegions = function()
            {
                var checksum = 0;
                this.busInfo.cRegions = 0;
                if (!this.busInfo.aRegions) this.busInfo.aRegions = [];
            
                var typeRegion = -1, iBlockRegion = 0, addrRegion = 0, nBlockPrev = -1;
            
                for (var iBlock = 0; iBlock < this.busInfo.cBlocks; iBlock++) {
                    var blockInfo = this.busInfo.aBlocks[iBlock];
                    var typeBlock = usr.getBitField(Bus.BlockInfo.type, blockInfo);
                    var nBlockCurr = usr.getBitField(Bus.BlockInfo.num, blockInfo);
                    if (typeBlock != typeRegion || nBlockCurr != nBlockPrev + 1) {
                        var cBlocks = iBlock - iBlockRegion;
                        if (cBlocks) {
                            checksum += this.addRegion(addrRegion, iBlockRegion, cBlocks, typeRegion);
                        }
                        typeRegion = typeBlock;
                        iBlockRegion = iBlock;
                        addrRegion = nBlockCurr << this.bus.nBlockShift;
                    }
                    nBlockPrev = nBlockCurr;
                }
            
                checksum += this.addRegion(addrRegion, iBlockRegion, iBlock - iBlockRegion, typeRegion);
            
                var fChanged = (this.busInfo.checksumRegions != checksum);
                this.busInfo.checksumRegions = checksum;
                return fChanged;
            };
            
            /**
             * Region object definition
             *
             *  iBlock:     starting block number
             *  cBlocks:    number of blocks spanned by region
             *  type:       type of all blocks in the region (see Memory.TYPE.*)
             *
             * @typedef {{
             *  iBlock:     number,
             *  cBlocks:    number,
             *  type:       number
             * }}
             */
            var Region;
            
            /**
             * addRegion(addr, iBlock, cBlocks, type)
             *
             * @this {Panel}
             * @param {number} addr
             * @param {number} iBlock
             * @param {number} cBlocks
             * @param {number} type
             * @return {number} bitfield containing the above values (used for checksum)
             */
            Panel.prototype.addRegion = function(addr, iBlock, cBlocks, type)
            {
                if (DEBUG) this.log("region " + this.busInfo.cRegions + " (addr " + str.toHexLong(addr) + ", type " + Memory.TYPE.NAMES[type] + ") contains " + cBlocks + " blocks");
                this.busInfo.aRegions[this.busInfo.cRegions++] = {iBlock: iBlock, cBlocks: cBlocks, type: type};
                return usr.initBitFields(Bus.BlockInfo, iBlock, cBlocks, 0, type);
            };
            
            /**
             * dumpRegisters()
             *
             * Updates the live register portion of the panel.
             *
             * @this {Panel}
             */
            Panel.prototype.dumpRegisters = function()
            {
                if (this.context && this.canvasLiveRegs && this.contextLiveRegs) {
            
                    var x = 0, y = 0, cx = this.canvasLiveRegs.width, cy = this.canvasLiveRegs.height;
            
                    this.contextLiveRegs.fillStyle = Panel.LIVEREGS.COLOR;
                    this.contextLiveRegs.fillRect(x, y, cx, cy);
            
                    this.initPen(x + 10, y + Panel.LIVECANVAS.FONT.CY, this.canvasLiveRegs, this.contextLiveRegs, this.canvas.style.color);
                    this.initCols(3);
                    this.drawText("CPU");
                    this.drawText("Target");
                    this.drawText("Current");
                    this.skipLines();
                    this.drawText(this.cpu.model);
                    this.drawText(this.cpu.getSpeedTarget());
                    this.drawText(this.cpu.getSpeedCurrent());
                    this.skipLines(2);
                    this.initCols(8);
                    this.initNumberFormat(16, this.cpu.model < X86.MODEL_80386? 4 : 8);
                    this.drawText("AX", this.cpu.regEAX, 2);
                    this.drawText("DS", this.cpu.getDS(), 0, 1);
                    this.drawText("DX", this.cpu.regEDX, 2);
                    this.drawText("SI", this.cpu.regESI, 0, 1.5);
                    this.drawText("BX", this.cpu.regEBX, 2);
                    this.drawText("ES", this.cpu.getES(), 0, 1);
                    this.drawText("CX", this.cpu.regECX, 2);
                    this.drawText("DI", this.cpu.regEDI, 0, 1.5);
                    this.drawText("CS", this.cpu.getCS(), 2);
                    this.drawText("SS", this.cpu.getSS(), 0, 1);
                    this.drawText("IP", this.cpu.getIP(), 2);
                    this.drawText("SP", this.cpu.getSP(), 0, 1.5);
                    var regPS;
                    this.drawText("PS", regPS = this.cpu.getPS(), 2);
                    this.drawText("BP", this.cpu.regEBP, 0, 1.5);
                    if (this.cpu.model >= X86.MODEL_80386) {
                        this.drawText("FS", this.cpu.getFS(), 2);
                        this.drawText("CR0", this.cpu.regCR0, 0, 1);
                        this.drawText("GS", this.cpu.getGS(), 2);
                        this.drawText("CR3", this.cpu.regCR3, 0, 1.5);
                    }
                    this.initCols(9);
                    this.drawText("V" + ((regPS & X86.PS.OF)? 1 : 0));
                    this.drawText("D" + ((regPS & X86.PS.DF)? 1 : 0));
                    this.drawText("I" + ((regPS & X86.PS.IF)? 1 : 0));
                    this.drawText("T" + ((regPS & X86.PS.TF)? 1 : 0));
                    this.drawText("S" + ((regPS & X86.PS.SF)? 1 : 0));
                    this.drawText("Z" + ((regPS & X86.PS.ZF)? 1 : 0));
                    this.drawText("A" + ((regPS & X86.PS.AF)? 1 : 0));
                    this.drawText("P" + ((regPS & X86.PS.PF)? 1 : 0));
                    this.drawText("C" + ((regPS & X86.PS.CF)? 1 : 0), 0, 2);
            
                    this.dumpMemory(this.addrDumpLast);
            
                    this.context.drawImage(this.canvasLiveRegs, x, y, cx, cy, this.xReg, this.yReg, this.cxReg, this.cyReg);
                }
            };
            
            /**
             * dumpMemory(addr, fDraw)
             *
             * @this {Panel}
             * @param {number} addr
             * @param {boolean} [fDraw]
             */
            Panel.prototype.dumpMemory = function(addr, fDraw)
            {
                if (this.context && this.canvasLiveRegs && this.contextLiveRegs) {
            
                    var x = 0, y = Panel.LIVEREGS.CY - Panel.LIVEDUMP.CY, cx = this.canvasLiveRegs.width, cy = Panel.LIVEDUMP.CY;
            
                    this.contextLiveRegs.fillStyle = Panel.LIVEREGS.COLOR;
                    this.contextLiveRegs.fillRect(x, y, cx, cy);
            
                    this.initPen(x + 10, y + Panel.LIVECANVAS.FONT.CY, this.canvasLiveRegs, this.contextLiveRegs, this.canvas.style.color);
                    this.initCols(24);
                    if (addr == null) {
                        this.drawText("Mouse over memory to dump");
                    } else {
                        this.drawText(str.toHexLong(addr), null, 0, 1);
                        for (var iLine = 1; iLine <= 16; iLine++) {
                            var sChars = "";
                            for (var iCol = 1; iCol <= 8; iCol++) {
                                var b = this.bus.getByteDirect(addr++);
                                this.drawText(str.toHex(b, 2), null, 1);
                                sChars += (b >= 32 && b < 128? String.fromCharCode(b) : ".");
                            }
                            this.drawText(sChars, null, 0, 1);
                        }
                    }
            
                    if (fDraw) this.context.drawImage(this.canvasLiveRegs, x, y, cx, cy, this.xDump, this.yDump, this.cxDump, this.cyDump);
                }
            };
            
            /**
             * initPen(xLeft, yTop, canvas, context, sColor, cyFont, sFontFace)
             *
             * @this {Panel}
             * @param {number} xLeft
             * @param {number} yTop
             * @param {HTMLCanvasElement} [canvas]
             * @param {Object} [context]
             * @param {string} [sColor]
             * @param {number} [cyFont]
             * @param {string} [sFontFace]
             */
            Panel.prototype.initPen = function(xLeft, yTop, canvas, context, sColor, cyFont, sFontFace)
            {
                this.setPen(this.xLeftMargin = xLeft, yTop);
                this.heightText = this.heightDefault = cyFont || Panel.LIVECANVAS.FONT.CY;
                if (!sFontFace) sFontFace = this.fontDefault || (this.heightDefault + "px " + Panel.LIVECANVAS.FONT.FACE);
                this.fontText = this.fontDefault = sFontFace;
                if (canvas) {
                    this.canvasText = canvas;
                }
                if (context) {
                    this.contextText = context;
                    this.colorText = sColor || "white";
                }
            };
            
            /**
             * setPen(x, y)
             *
             * @this {Panel}
             * @param {number} x
             * @param {number} y
             */
            Panel.prototype.setPen = function(x, y)
            {
                this.xText = x;
                this.yText = y;
            };
            
            /**
             * centerPen(rect)
             *
             * @this {Panel}
             * @param {Rectangle} rect
             */
            Panel.prototype.centerPen = function(rect)
            {
                this.fontText = this.fontDefault;
                this.heightText = this.heightDefault;
                var x = rect.x + (rect.cx >> 1);
                var y = rect.y + (rect.cy >> 1);
                var maxText = rect.cy;
                if (rect.cx < rect.cy) {
                    maxText = rect.cx;
                    this.fVerticalText = true;
                    this.contextText.save();
                    this.contextText.translate(x, y);
                    this.contextText.rotate(-Math.PI/2);
                    x = y = 0;
                }
                if (maxText < this.heightText) {
                    this.heightText = maxText;
                    this.fontText = this.heightText + "px " + Panel.LIVECANVAS.FONT.FACE;
                }
                this.setPen(x, y);
            };
            
            /**
             * initCols(nCols)
             *
             * @this {Panel}
             * @param {number} nCols
             */
            Panel.prototype.initCols = function(nCols)
            {
                this.cxColumn = (this.canvasText.width / nCols) | 0;
            };
            
            /**
             * skipCols(nCols)
             *
             * @this {Panel}
             * @param {number} nCols
             */
            Panel.prototype.skipCols = function(nCols)
            {
                this.xText += this.cxColumn * nCols;
            };
            
            /**
             * skipLines(nLines)
             *
             * @this {Panel}
             * @param {number} [nLines]
             */
            Panel.prototype.skipLines = function(nLines)
            {
                this.xText = this.xLeftMargin;
                this.yText += (this.heightText + 2) * (nLines || 1);
            };
            
            /**
             * initNumberFormat(nBase, nDigits)
             *
             * @this {Panel}
             * @param {number} nBase
             * @param {number} nDigits
             */
            Panel.prototype.initNumberFormat = function(nBase, nDigits)
            {
                this.nDefaultBase = nBase;
                this.nDefaultDigits = nDigits;
            };
            
            /**
             * drawText(sText)
             *
             * @this {Panel}
             * @param {string} sText
             * @param {number|null} [nValue]
             * @param {number} [nColsSkip]
             * @param {number} [nLinesSkip]
             */
            Panel.prototype.drawText = function(sText, nValue, nColsSkip, nLinesSkip)
            {
                this.contextText.font = this.fontText;
                this.contextText.fillStyle = this.colorText;
                this.contextText.fillText(sText, this.xText, this.yText);
                this.xText += this.cxColumn;
                if (nValue != null) {
                    var sValue;
                    if (this.nDefaultBase != 16) {
                        sValue = nValue.toString();
                    } else {
                        sValue = this.nDefaultDigits < 8? "0x" : "";
                        sValue += str.toHex(nValue, this.nDefaultDigits);
                    }
                    this.contextText.fillText(sValue, this.xText, this.yText);
                    this.xText += this.cxColumn;
                }
                if (nColsSkip) this.skipCols(nColsSkip);
                if (nLinesSkip) this.skipLines(nLinesSkip);
            };
            
            /**
             * centerText(sText)
             *
             * To center text within a given Rectangle:
             *
             *      centerPen(rect)
             *      centerText(sText)
             *
             * centerPen() sets xLeft and yTop to the center of the specified rectangle, and centerText() calculates
             * the width of the text, adjusting the horizontal centering by its width and the vertical centering by the
             * default font height.  Then it calls drawText().
             *
             * @this {Panel}
             * @param {string} sText
             */
            Panel.prototype.centerText = function(sText)
            {
                this.contextText.font = this.fontText;
                var tm = this.contextText.measureText(sText);
                this.xText -= tm.width >> 1;
                this.yText += (this.heightText >> 1) - 2;
                this.drawText(sText);
                if (this.fVerticalText) {
                    this.contextText.restore();
                    this.fVerticalText = false;
                }
            };
            
            /**
             * Panel.init()
             *
             * This function operates on every HTML element of class "panel", extracting the
             * JSON-encoded parameters for the Panel constructor from the element's "data-value"
             * attribute, invoking the constructor to create a Panel component, and then binding
             * any associated HTML controls to the new component.
             *
             * NOTE: Unlike most other component init() functions, this one is designed to be
             * called multiple times: once at load time, so that we can binding our print()
             * function to the panel's output control ASAP, and again when the Computer component
             * is verifying that all components are ready and invoking their powerUp() functions.
             *
             * Our powerUp() method gives us a second opportunity to notify any components that
             * that might care (eg, CPU, Keyboard, and Debugger) that we have some controls they
             * might want to use.
             */
            Panel.init = function()
            {
                var fReady = false;
                var aePanels = Component.getElementsByClass(window.document, PCJSCLASS, "panel");
                for (var iPanel=0; iPanel < aePanels.length; iPanel++) {
                    var ePanel = aePanels[iPanel];
                    var parmsPanel = Component.getComponentParms(ePanel);
                    var panel = Component.getComponentByID(parmsPanel['id']);
                    if (!panel) {
                        fReady = true;
                        panel = new Panel(parmsPanel);
                    }
                    Component.bindComponentControls(panel, ePanel, PCJSCLASS);
                    if (fReady) panel.setReady();
                }
            };
            
            /*
             * Initialize every Panel module on the page.
             */
            web.onInit(Panel.init);
            
            if (typeof module !== 'undefined') module.exports = Panel;
            
          • ram.js
            /**
             * @fileoverview Implements the PCjs RAM component.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Jun-15
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var str         = require("../../shared/lib/strlib");
                var web         = require("../../shared/lib/weblib");
                var Component   = require("../../shared/lib/component");
                var Memory      = require("./memory");
                var ROM         = require("./rom");
            }
            
            /**
             * RAM(parmsRAM)
             *
             * The RAM component expects the following (parmsRAM) properties:
             *
             *      addr: starting physical address of RAM
             *      size: amount of RAM, in bytes (optional)
             *
             * NOTE: We make a note of the specified size, but no memory is initially allocated
             * for the RAM until the Computer component calls powerUp().
             *
             * @constructor
             * @extends Component
             * @param {Object} parmsRAM
             */
            function RAM(parmsRAM)
            {
                Component.call(this, "RAM", parmsRAM, RAM);
            
                this.addrRAM = parmsRAM['addr'];
                this.sizeRAM = parmsRAM['size'];
                this.fTestRAM = parmsRAM['test'];
                this.fInstalled = (!!this.sizeRAM); // 0 is the default value for 'size' when none is specified
                this.fAllocated = false;
            }
            
            Component.subclass(RAM);
            
            /**
             * initBus(cmp, bus, cpu, dbg)
             *
             * @this {RAM}
             * @param {Computer} cmp
             * @param {Bus} bus
             * @param {X86CPU} cpu
             * @param {Debugger} dbg
             */
            RAM.prototype.initBus = function(cmp, bus, cpu, dbg)
            {
                this.bus = bus;
                this.cpu = cpu;
                this.dbg = dbg;
                this.chipset = cmp.getComponentByType("ChipSet");
                this.setReady();
            };
            
            /**
             * powerUp(data, fRepower)
             *
             * @this {RAM}
             * @param {Object|null} data
             * @param {boolean} [fRepower]
             * @return {boolean} true if successful, false if failure
             */
            RAM.prototype.powerUp = function(data, fRepower)
            {
                if (!fRepower) {
                    /*
                     * The Computer powers up the CPU last, at which point the X86 state is restored,
                     * which includes the Bus state, and since we use the Bus to allocate all our memory,
                     * memory contents are already restored for us, so we don't need the usual restore
                     * logic.  We just need to call reset(), to allocate memory for the RAM.
                     *
                    if (!data || !this.restore) {
                        this.reset();
                    } else {
                        if (!this.restore(data)) return false;
                    }
                     */
                    this.reset();
                }
                return true;
            };
            
            /**
             * powerDown(fSave, fShutdown)
             *
             * @this {RAM}
             * @param {boolean} fSave
             * @param {boolean} [fShutdown]
             * @return {Object|boolean} component state if fSave; otherwise, true if successful, false if failure
             */
            RAM.prototype.powerDown = function(fSave, fShutdown)
            {
                /*
                 * The Computer powers down the CPU first, at which point the X86 state is saved,
                 * which includes the Bus state, and since we use the Bus component to allocate all
                 * our memory, memory contents are already saved for us, so we don't need the usual
                 * save logic.
                 *
                return fSave && this.save ? this.save() : true;
                 */
                return true;
            };
            
            /**
             * reset()
             *
             * NOTE: When we were initialized, we were given an amount of INSTALLED memory (see sizeRAM above).
             * The ChipSet component, on the other hand, tells us how much SPECIFIED memory there is -- which,
             * like a real PC, may not match the amount of installed memory (due to either user error or perhaps
             * an attempt to prevent some portion of the installed memory from being used).
             *
             * However, since we're a virtual machine, we can defer allocation of RAM until we're able to query the
             * ChipSet component, and then allocate an amount of memory that matches the SPECIFIED memory, making
             * it easy to reconfigure the machine on the fly and prevent mismatches.
             *
             * But, we do that ONLY for the RAM instance configured with an addrRAM of 0x0000, and ONLY if that RAM
             * object was not given a specific size (see fInstalled).  If there are other RAM objects in the system,
             * they must necessarily specify a non-conflicting, non-zero start address, in which case their sizeRAM
             * value will never be affected by the ChipSet settings.
             *
             * @this {RAM}
             */
            RAM.prototype.reset = function()
            {
                if (!this.addrRAM && !this.fInstalled && this.chipset) {
                    var baseRAM = this.chipset.getSWMemorySize() * 1024;
                    if (this.sizeRAM && baseRAM != this.sizeRAM) {
                        this.bus.removeMemory(this.addrRAM, this.sizeRAM);
                        this.fAllocated = false;
                    }
                    this.sizeRAM = baseRAM;
                }
                if (!this.fAllocated && this.sizeRAM) {
                    if (this.bus.addMemory(this.addrRAM, this.sizeRAM, Memory.TYPE.RAM)) {
                        this.fAllocated = true;
            
                        this.status(Math.floor(this.sizeRAM / 1024) + "Kb allocated");
            
                        /*
                         * NOTE: I'm specifying MAXDEBUG for status() messages because I'm not yet sure I want these
                         * messages buried in the app, since they're seen only when a Control Panel is active.  Another
                         * and perhaps better alternative is to add "comment" attributes to the XML configuration file
                         * for these components, which the Computer component will display as it "powers up" components.
                         */
                        if (MAXDEBUG && this.fInstalled) this.status("specified size overrides SW1");
            
                        /*
                         * Memory with an ID of "ramCPQ" is reserved for built-in memory located just below the 16Mb
                         * boundary on Compaq DeskPro 386 machines.
                         *
                         * Technically, that memory is part of the first 1Mb of memory that also provides up to 640Kb
                         * of conventional memory (ie, memory below 1Mb).
                         *
                         * However, PCjs doesn't support individual memory allocations that (a) are discontiguous
                         * or (b) dynamically change location.  Components must simulate those features by performing
                         * a separate allocation for each starting address, and removing/adding memory allocations
                         * whenever their starting address changes.
                         *
                         * Therefore, a DeskPro 386's first 1Mb of physical memory is allocated by PCjs in two pieces,
                         * and the second piece must have an ID of "ramCPQ", triggering the additional allocation of
                         * Compaq-specific memory-mapped registers.
                         *
                         * See CompaqController for more details.
                         */
                        if (COMPAQ386) {
                            if (this.idComponent == "ramCPQ") {
                                this.controller = new CompaqController(this);
                                this.bus.addMemory(CompaqController.ADDR, 1, Memory.TYPE.CTRL, this.controller);
                            }
                        }
                    }
                }
                if (this.fAllocated) {
                    if (!this.fTestRAM) {
                        /*
                         * HACK: Set the word at 40:72 in the ROM BIOS Data Area (RBDA) to 0x1234 to bypass the ROM BIOS
                         * memory storage tests. See rom.js for all RBDA definitions.
                         */
                        if (MAXDEBUG) this.status("ROM BIOS memory test has been disabled");
                        this.bus.setShortDirect(ROM.BIOS.RESET_FLAG, ROM.BIOS.RESET_FLAG_WARMBOOT);
                    }
                    /*
                     * Don't add the "ramCPQ" memory to the CMOS total, because addCMOSMemory() will add it to the extended
                     * memory total, which will just confuse the Compaq BIOS.
                     */
                    if (!COMPAQ386 || this.idComponent != "ramCPQ") {
                        if (this.chipset) this.chipset.addCMOSMemory(this.addrRAM, this.sizeRAM);
                    }
                } else {
                    Component.error("No RAM allocated");
                }
            };
            
            /**
             * RAM.init()
             *
             * This function operates on every HTML element of class "ram", extracting the
             * JSON-encoded parameters for the RAM constructor from the element's "data-value"
             * attribute, invoking the constructor to create a RAM component, and then binding
             * any associated HTML controls to the new component.
             */
            RAM.init = function()
            {
                var aeRAM = Component.getElementsByClass(window.document, PCJSCLASS, "ram");
                for (var iRAM = 0; iRAM < aeRAM.length; iRAM++) {
                    var eRAM = aeRAM[iRAM];
                    var parmsRAM = Component.getComponentParms(eRAM);
                    var ram = new RAM(parmsRAM);
                    Component.bindComponentControls(ram, eRAM, PCJSCLASS);
                }
            };
            
            /**
             * CompaqController(ram)
             *
             * DeskPro 386 machines came with a minimum of 1Mb of RAM, which could be configured (via jumpers)
             * for 256Kb, 512Kb or 640Kb of conventional memory, starting at address 0x00000000, with the
             * remainder (768Kb, 512Kb, or 384Kb) accessible only at an address just below 0x01000000.  In PCjs,
             * this second chunk of RAM must be separately allocated, with an ID of "ramCPQ".
             *
             * The typical configuration was 640Kb of conventional memory, leaving 384Kb accessible at 0x00FA0000.
             * Presumably, the other configurations (256Kb and 512Kb) would leave 768Kb and 512Kb accessible at
             * 0x00F40000 and 0x00F80000, respectively.
             *
             * The DeskPro 386 also contained two memory-mapped registers at 0x80C00000.  The first is a write-only
             * mapping register that provides the ability to map the 128Kb at 0x00FE0000 to 0x000E0000, replacing
             * any ROMs in the range 0x000E0000-0x000FFFFF, and optionally write-protecting that 128Kb; internally,
             * this register corresponds to wMappings.
             *
             * The second register is a read-only diagnostics register that indicates jumper configuration and
             * parity errors; internally, this register corresponds to wSettings.
             *
             * To emulate the memory-mapped registers at 0x80C00000, the RAM component allocates a block at that
             * address using this custom controller once it sees an allocation for "ramCPQ".
             *
             * Later, when the addressibility of "ramCPQ" memory is altered, we record the blocks in all the
             * memory slots spanning 0x000E0000-0x000FFFFF, and then update those slots with the blocks from
             * 0x00FE0000-0x00FFFFFF.  Note that only the top 128Kb of "ramCPQ" addressibility is affected; the
             * rest of that memory, ranging anywhere from 256Kb to 640Kb, remains addressible at its original
             * location.  Compaq's CEMM and VDISK utilities were generally the only software able to access that
             * remaining memory (what Compaq refers to as "Compaq Built-in Memory").
             *
             * @constructor
             * @param {RAM} ram
             */
            function CompaqController(ram)
            {
                this.ram = ram;
                this.wMappings = CompaqController.MAPPINGS.DEFAULT;
                /*
                 * TODO: wSettings needs to reflect the actual amount of configured memory....
                 */
                this.wSettings = CompaqController.SETTINGS.DEFAULT;
                this.wRAMSetup = CompaqController.RAMSETUP.DEFAULT;
                this.aBlocksDst = null;
            }
            
            CompaqController.ADDR       = 0x80C00000|0;
            CompaqController.MAP_SRC    = 0x00FE0000;
            CompaqController.MAP_DST    = 0x000E0000;
            CompaqController.MAP_SIZE   = 0x00020000;
            
            /*
             * Bit definitions for the 16-bit write-only memory-mapping register (wMappings)
             *
             * NOTE: Although Compaq says the memory at %FE0000 is "relocated", it actually remains addressable
             * at %FE0000; it simply becomes addressable at %0E0000 as well, displacing any ROMs that used to be
             * addressable at %0E0000 through %0FFFFF.
             */
            CompaqController.MAPPINGS = {
                UNMAPPED:   0x0001,             // is this bit is CLEAR, the last 128Kb (at 0x00FE0000) is mapped to 0x000E0000
                READWRITE:  0x0002,             // if this bit is CLEAR, the last 128Kb (at 0x00FE0000) is read-only (ie, write-protected)
                RESERVED:   0xFFFC,             // the remaining 6 bits are reserved and should always be SET
                DEFAULT:    0xFFFF              // our default settings (no mapping, no write-protection)
            };
            
            /*
             * Bit definitions for the 16-bit read-only settings/diagnostics register (wSettings)
             *
             * SW1-7 and SW1-8 are mapped to bits 5 and 4 of wSettings, respectively, as follows:
             *
             *      SW1-7   SW1-8   Bit5    Bit4    Amount (of base memory provided by the Compaq 32-bit memory board)
             *      -----   -----   ----    ----    ------
             *        ON      ON      0       0     640Kb
             *        ON      OFF     0       1     Invalid
             *        OFF     ON      1       0     512Kb
             *        OFF     OFF     1       1     256Kb
             *
             * Other SW1 switches include:
             *
             *      SW1-1:  ON enables fail-safe timer
             *      SW1-2:  ON indicates 80387 coprocessor installed
             *      SW1-3:  ON sets memory from 0xC00000 to 0xFFFFFF (between 12 and 16 megabytes) non-cacheable
             *      SW1-4:  ON selects AUTO system speed (OFF selects HIGH system speed)
             *      SW1-5:  RESERVED (however, the system can read its state; see below)
             *      SW1-6:  Compaq Dual-Mode Monitor or Color Monitor (OFF selects Monochrome monitor other than Compaq)
             *
             * While SW1-7 and SW1-8 are connected to this memory-mapped register, other SW1 DIP switches are accessible
             * through the 8042 Keyboard Controller's KBC.INPORT register, as follows:
             *
             *      SW1-1:  TODO: Determine
             *      SW1-2:  ChipSet.KBC.INPORT.COMPAQ_NO80387 clear if ON, set (0x04) if OFF
             *      SW1-3:  TODO: Determine
             *      SW1-4:  ChipSet.KBC.INPORT.COMPAQ_HISPEED clear if ON, set (0x10) if OFF
             *      SW1-5:  ChipSet.KBC.INPORT.COMPAQ_DIP5OFF clear if ON, set (0x20) if OFF
             *      SW1-6:  ChipSet.KBC.INPORT.COMPAQ_NONDUAL clear if ON, set (0x40) if OFF
             */
            CompaqController.SETTINGS = {
                B0_PARITY:  0x0001,         // parity OK in byte 0
                B1_PARITY:  0x0002,         // parity OK in byte 1
                B2_PARITY:  0x0004,         // parity OK in byte 2
                B3_PARITY:  0x0008,         // parity OK in byte 3
                BASE_640KB: 0x0000,         // SW1-7,8: ON  ON   Bits 5,4: 00
                BASE_ERROR: 0x0010,         // SW1-7,8: ON  OFF  Bits 5,4: 01
                BASE_512KB: 0x0020,         // SW1-7,8: OFF ON   Bits 5,4: 10
                BASE_256KB: 0x0030,         // SW1-7,8: OFF OFF  Bits 5,4: 11
                /*
                 * TODO: The DeskPro 386/25 TechRef says bit 6 (0x40) is always set,
                 * but setting it results in memory configuration errors; review.
                 */
                ADDED_1MB:  0x0040,
                /*
                 * TODO: The DeskPro 386/25 TechRef says bit 7 (0x80) is always clear; review.
                 */
                PIGGYBACK:  0x0080,
                SYS_4MB:    0x0100,         // 4Mb on system board
                SYS_1MB:    0x0200,         // 1Mb on system board
                SYS_NONE:   0x0300,         // no memory on system board
                MODA_4MB:   0x0400,         // 4Mb on module A board
                MODA_1MB:   0x0800,         // 1Mb on module A board
                MODA_NONE:  0x0C00,         // no memory on module A board
                MODB_4MB:   0x1000,         // 4Mb on module B board
                MODB_1MB:   0x2000,         // 1Mb on module B board
                MODB_NONE:  0x3000,         // no memory on module B board
                MODC_4MB:   0x4000,         // 4Mb on module C board
                MODC_1MB:   0x8000,         // 1Mb on module C board
                MODC_NONE:  0xC000,         // no memory on module C board
                /*
                 * NOTE: It doesn't seem to matter to the ROM whether I set any of bits 8-15 or not....
                 */
                DEFAULT:    0x0A0F          // our default settings (ie, parity OK, 640Kb base memory, 1Mb system memory, 1Mb module A memory)
            };
            
            CompaqController.RAMSETUP = {
                SETUP:      0x000F,
                CACHE:      0x0040,
                RESERVED:   0xFFB0,
                DEFAULT:    0x0002          // our default settings (ie, 2Mb, cache disabled)
            };
            
            /**
             * readByte(off, addr)
             *
             * @this {Memory}
             * @param {number} off (relative to 0x80C00000)
             * @param {number} [addr]
             * @return {number}
             */
            CompaqController.readByte = function readCompaqControllerByte(off, addr)
            {
                var b = 0xff;
                if (off < 0x02) {
                    b = (off & 0x1)? (this.controller.wSettings >> 8) : (this.controller.wSettings & 0xff);
                }
                else if (off < 0x4) {
                    b = (off & 0x1)? (this.controller.wRAMSetup >> 8) : (this.controller.wRAMSetup & 0xff);
                }
                if (DEBUG) {
                    this.controller.ram.printMessage("CompaqController.readByte(" + str.toHexWord(off) + ") returned " + str.toHexByte(b), 0, true);
                    if (MAXDEBUG && DEBUGGER && off >= 0x2) this.dbg.stopCPU();
                }
                return b;
            };
            
            /**
             * writeByte(off, b, addr)
             *
             * @this {Memory}
             * @param {number} off (relative to 0x80C00000)
             * @param {number} b
             * @param {number} [addr]
             */
            CompaqController.writeByte = function writeCompaqControllerByte(off, b, addr)
            {
                var controller = this.controller;
            
                /*
                 * Check for write to 0x80C00000
                 */
                if (!off) {
                    if (b != (controller.wMappings & 0xff)) {
                        var bus = controller.ram.bus;
                        if (!(b & CompaqController.MAPPINGS.UNMAPPED)) {
                            if (!controller.aBlocksDst) {
                                controller.aBlocksDst = bus.getMemoryBlocks(CompaqController.MAP_DST, CompaqController.MAP_SIZE);
                            }
                            /*
                             * You might think that the next three lines could ALSO be moved to the preceding IF,
                             * but it's possible for the write-protection feature to be enabled/disabled separately
                             * from the mapping feature.  We could avoid executing this code as well by checking the
                             * current read-write state, but this is an infrequent operation, so there's no point.
                             */
                            var aBlocks = bus.getMemoryBlocks(CompaqController.MAP_SRC, CompaqController.MAP_SIZE);
                            var type = (b & CompaqController.MAPPINGS.READWRITE)? Memory.TYPE.RAM : Memory.TYPE.ROM;
                            bus.setMemoryBlocks(CompaqController.MAP_DST, CompaqController.MAP_SIZE, aBlocks, type);
                        }
                        else {
                            if (controller.aBlocksDst) {
                                bus.setMemoryBlocks(CompaqController.MAP_DST, CompaqController.MAP_SIZE, controller.aBlocksDst);
                                controller.aBlocksDst = null;
                            }
                        }
                        controller.wMappings = (controller.wMappings & ~0xff) | b;
                        if (MAXDEBUG && DEBUGGER) this.dbg.stopCPU();
                    }
                }
                /*
                 * Check for write to 0x80C00002
                 */
                else if (off == 0x2) {
                    controller.wRAMSetup = (controller.wRAMSetup & ~0xff) | b;
                    if (MAXDEBUG && DEBUGGER) this.dbg.stopCPU();
                }
                /*
                 * All bits in 0x80C00001 and 0x80C00003 are reserved, so we can simply ignore those writes.
                 */
                if (DEBUG) {
                    this.controller.ram.printMessage("CompaqController.writeByte(" + str.toHexWord(off) + "," + str.toHexByte(b) + ")", 0, true);
                }
            };
            
            CompaqController.BUFFER = [null, 0];
            CompaqController.ACCESS = [CompaqController.readByte, null, null, CompaqController.writeByte, null, null];
            
            /**
             * getMemoryBuffer(addr)
             *
             * @this {CompaqController}
             * @param {number} addr
             * @return {Array} containing the buffer (and an offset within that buffer)
             */
            CompaqController.prototype.getMemoryBuffer = function(addr)
            {
                return CompaqController.BUFFER;
            };
            
            /**
             * getMemoryAccess()
             *
             * @this {CompaqController}
             * @return {Array.<function()>}
             */
            CompaqController.prototype.getMemoryAccess = function()
            {
                return CompaqController.ACCESS;
            };
            
            /*
             * Initialize all the RAM modules on the page.
             */
            web.onInit(RAM.init);
            
            if (typeof module !== 'undefined') module.exports = RAM;
            
          • rom.js
            /**
             * @fileoverview Implements the PCjs ROM component.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Jun-15
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var str         = require("../../shared/lib/strlib");
                var web         = require("../../shared/lib/weblib");
                var DumpAPI     = require("../../shared/lib/dumpapi");
                var Component   = require("../../shared/lib/component");
                var Memory      = require("./memory");
            }
            
            /**
             * ROM(parmsROM)
             *
             * The ROM component expects the following (parmsROM) properties:
             *
             *      addr: physical address of ROM
             *      size: amount of ROM, in bytes
             *      alias: physical alias address (null if none)
             *      file: name of ROM data file
             *      notify: ID of a component to notify once the ROM is in place (optional)
             *
             * NOTE: The ROM data will not be copied into place until the Bus is ready (see initBus()) AND the
             * ROM data file has finished loading (see onLoadROM()).
             *
             * Also, while the size parameter may seem redundant, I consider it useful to confirm that the ROM you received
             * is the ROM you expected.
             *
             * @constructor
             * @extends Component
             * @param {Object} parmsROM
             */
            function ROM(parmsROM)
            {
                Component.call(this, "ROM", parmsROM, ROM);
            
                this.abROM = null;
                this.addrROM = parmsROM['addr'];
                this.sizeROM = parmsROM['size'];
            
                /*
                 * The new 'alias' property can now be EITHER a single physical address (like 'addr') OR an array of
                 * physical addresses; eg:
                 *
                 *      [0xf0000,0xffff0000,0xffff8000]
                 *
                 * We could have overloaded 'addr' to accomplish the same thing, but I think it's better to have any
                 * aliased locations listed under a separate property.
                 *
                 * Most ROMs are not aliased, in which case the 'alias' property should have the default value of null.
                 */
                this.addrAlias = parmsROM['alias'];
            
                this.sFilePath = parmsROM['file'];
                this.sFileName = str.getBaseName(this.sFilePath);
            
                /*
                 * The 'notify' property can now (as of v1.18.2) contain an array of parameters that the notified
                 * component (typically Video) may use as it sees fit.  For example, the Video component is generally
                 * interested in knowing the offsets of specific font tables within the ROM, which used to be hard-coded
                 * when all we supported were a few specific IBM video cards, but that's no longer feasible as we move
                 * beyond the original handful of IBM cards.
                 *
                 * It's up to the notified component to decide how to interpret the parameters it receives, if any.
                 */
                this.idNotify = parmsROM['notify'];
                this.aNotifyParms = null;
                if (this.idNotify) {
                    var i = this.idNotify.indexOf('[');
                    if (i > 0) {
                        try {
                            this.aNotifyParms = eval(this.idNotify.substr(i));
                        } catch (e) {}
                        this.idNotify = this.idNotify.substr(0, i);
                    }
                }
                if (this.sFilePath) {
                    var sFileURL = this.sFilePath;
                    if (DEBUG) this.log('load("' + sFileURL + '")');
                    /*
                     * If the selected ROM file has a ".json" extension, then we assume it's pre-converted
                     * JSON-encoded ROM data, so we load it as-is; ditto for ROM files with a ".hex" extension.
                     * Otherwise, we ask our server-side ROM converter to return the file in a JSON-compatible format.
                     */
                    var sFileExt = str.getExtension(this.sFileName);
                    if (sFileExt != DumpAPI.FORMAT.JSON && sFileExt != DumpAPI.FORMAT.HEX) {
                        sFileURL = web.getHost() + DumpAPI.ENDPOINT + '?' + DumpAPI.QUERY.FILE + '=' + this.sFilePath + '&' + DumpAPI.QUERY.FORMAT + '=' + DumpAPI.FORMAT.BYTES + '&' + DumpAPI.QUERY.DECIMAL + '=true';
                    }
                    web.loadResource(sFileURL, true, null, this, ROM.prototype.onLoadROM);
                }
            }
            
            Component.subclass(ROM);
            
            /*
             * ROM BIOS Data Area (RBDA) definitions, in physical address form, using the same ALL-CAPS names
             * found in the original IBM PC ROM BIOS listing.  TODO: Fill in remaining RBDA holes.
             */
            ROM.BIOS = {
                RS232_BASE:     0x400,              // 4 (word) I/O addresses of RS-232 adapters
                PRINTER_BASE:   0x408,              // 4 (word) I/O addresses of printer adapters
                EQUIP_FLAG:     0x410,              // installed hardware (word)
                MFG_TEST:       0x412,              // initialization flag (byte)
                MEMORY_SIZE:    0x413,              // memory size in K-bytes (word)
                RESET_FLAG:     0x472               // set to 0x1234 if keyboard reset underway (word)
            };
            
            // RESET_FLAG is the traditional end of the RBDA, as originally defined at real-mode segment 0x40.
            
            ROM.BIOS.RESET_FLAG_WARMBOOT = 0x1234;  // value stored at ROM.BIOS.RESET_FLAG to indicate a "warm boot", bypassing memory tests
            
            /*
             * NOTE: There's currently no need for this component to have a reset() function, since
             * once the ROM data is loaded, it can't be changed, so there's nothing to reinitialize.
             *
             * OK, well, I take that back, because the Debugger, if installed, has the ability to modify
             * ROM contents, so in that case, having a reset() function that restores the original ROM data
             * might be useful; then again, it might not, depending on what you're trying to debug.
             *
             * If we do add reset(), then we'll want to change copyROM() to hang onto the original
             * ROM data; currently, we release it after copying it into the read-only memory allocated
             * via bus.addMemory().
             */
            
            /**
             * initBus(cmp, bus, cpu, dbg)
             *
             * @this {ROM}
             * @param {Computer} cmp
             * @param {Bus} bus
             * @param {X86CPU} cpu
             * @param {Debugger} dbg
             */
            ROM.prototype.initBus = function(cmp, bus, cpu, dbg)
            {
                this.bus = bus;
                this.cpu = cpu;
                this.dbg = dbg;
                this.copyROM();
            };
            
            /**
             * powerUp(data, fRepower)
             *
             * @this {ROM}
             * @param {Object|null} data
             * @param {boolean} [fRepower]
             * @return {boolean} true if successful, false if failure
             */
            ROM.prototype.powerUp = function(data, fRepower)
            {
                if (this.aSymbols) {
                    if (this.dbg) {
                        this.dbg.addSymbols(this.addrROM, this.sizeROM, this.aSymbols);
                    }
                    /*
                     * Our only role in the handling of symbols is to hand them off to the Debugger at our
                     * first opportunity. Now that we've done that, our copy of the symbols, if any, are toast.
                     */
                    delete this.aSymbols;
                }
                return true;
            };
            
            /**
             * powerDown(fSave, fShutdown)
             *
             * Since we have nothing to do on powerDown(), and no state to return, we could simply omit
             * this function.  But it doesn't hurt anything, and maybe we'll use our state to save something
             * useful down the road, like user-defined symbols (ie, symbols that the Debugger may have
             * created, above and beyond those symbols we automatically loaded, if any, along with the ROM).
             *
             * @this {ROM}
             * @param {boolean} fSave
             * @param {boolean} [fShutdown]
             * @return {Object|boolean} component state if fSave; otherwise, true if successful, false if failure
             */
            ROM.prototype.powerDown = function(fSave, fShutdown)
            {
                return true;
            };
            
            /**
             * onLoadROM(sROMFile, sROMData, nErrorCode)
             *
             * @this {ROM}
             * @param {string} sROMFile
             * @param {string} sROMData
             * @param {number} nErrorCode (response from server if anything other than 200)
             */
            ROM.prototype.onLoadROM = function(sROMFile, sROMData, nErrorCode)
            {
                if (nErrorCode) {
                    this.notice("Unable to load system ROM (error " + nErrorCode + ")");
                    return;
                }
                if (sROMData.charAt(0) == "[" || sROMData.charAt(0) == "{") {
                    try {
                        /*
                         * The most likely source of any exception will be here: parsing the JSON-encoded ROM data.
                         */
                        var rom = eval("(" + sROMData + ")");
                        var ab = rom['bytes'];
                        var adw = rom['data'];
            
                        if (ab) {
                            this.abROM = ab;
                        }
                        else if (adw) {
                            /*
                             * Convert all the DWORDs into BYTEs, so that subsequent code only has to deal with abROM.
                             */
                            this.abROM = new Array(adw.length * 4);
                            for (var idw = 0, ib = 0; idw < adw.length; idw++) {
                                this.abROM[ib++] = adw[idw] & 0xff;
                                this.abROM[ib++] = (adw[idw] >> 8) & 0xff;
                                this.abROM[ib++] = (adw[idw] >> 16) & 0xff;
                                this.abROM[ib++] = (adw[idw] >> 24) & 0xff;
                            }
                        }
                        else {
                            this.abROM = rom;
                        }
            
                        this.aSymbols = rom['symbols'];
            
                        if (!this.abROM.length) {
                            Component.error("Empty ROM: " + sROMFile);
                            return;
                        }
                        else if (this.abROM.length == 1) {
                            Component.error(this.abROM[0]);
                            return;
                        }
                    } catch (e) {
                        this.notice("ROM data error: " + e.message);
                        return;
                    }
                }
                else {
                    /*
                     * Parse the ROM data manually; we assume it's in "simplified" hex form (a series of hex byte-values
                     * separated by whitespace).
                     */
                    var sHexData = sROMData.replace(/\n/gm, " ").replace(/ +$/, "");
                    var asHexData = sHexData.split(" ");
                    this.abROM = new Array(asHexData.length);
                    for (var i = 0; i < asHexData.length; i++) {
                        this.abROM[i] = str.parseInt(asHexData[i], 16);
                    }
                }
                this.copyROM();
            };
            
            /**
             * copyROM()
             *
             * This function is called by both initBus() and onLoadROM(), but it cannot copy the the ROM data into place
             * until after initBus() has received the Bus component AND onloadROM() has received the abROM data.  When both
             * those criteria are satisfied, the component becomes "ready".
             *
             * @this {ROM}
             */
            ROM.prototype.copyROM = function()
            {
                if (!this.isReady()) {
                    if (!this.sFilePath) {
                        this.setReady();
                    }
                    else if (this.abROM && this.bus) {
                        if (this.abROM.length != this.sizeROM) {
                            /*
                             * Note that setError() sets the component's fError flag, which in turn prevents setReady() from
                             * marking the component ready.  TODO: Revisit this decision.  On the one hand, it sounds like a
                             * good idea to stop the machine in its tracks whenever a setError() occurs, but there may also be
                             * times when we'd like to forge ahead anyway.
                             */
                            this.setError("ROM size (" + str.toHexLong(this.abROM.length) + ") does not match specified size (" + str.toHexLong(this.sizeROM) + ")");
                        }
                        else if (this.addROM(this.addrROM)) {
            
                            var aliases = [];
                            if (typeof this.addrAlias == "number") {
                                aliases.push(this.addrAlias);
                            } else if (this.addrAlias != null && this.addrAlias.length) {
                                aliases = this.addrAlias;
                            }
                            for (var i = 0; i < aliases.length; i++) {
                                this.cloneROM(aliases[i]);
                            }
                            /*
                             * If there's a component we should notify, notify it now, and give it the internal byte array, so that
                             * it doesn't have to ask the CPU for the data.  Currently, the only component that uses this notification
                             * option is the Video component, and only when the associated ROM contains font data that it needs.
                             */
                            if (this.idNotify) {
                                var component = Component.getComponentByID(this.idNotify, this.id);
                                if (component) {
                                    component.onROMLoad(this.abROM, this.aNotifyParms);
                                } else {
                                    this.notice("Unable to find component: " + this.idNotify);
                                }
                            }
                            /*
                             * We used to hang onto the original ROM data so that we could restore any bytes the CPU overwrote,
                             * using memory write-notification handlers, but with the introduction of read-only memory blocks, that's
                             * no longer necessary.
                             *
                             * TODO: Consider an option to retain the ROM data, and give the user some way of restoring ROMs.
                             * That may be useful for "resumable" machines that save/restore all dirty block of memory, regardless
                             * whether they're ROM or RAM.  However, the only way to modify a machine's ROM is with the Debugger,
                             * and Debugger users should know better.
                             */
                            delete this.abROM;
                        }
                        this.setReady();
                    }
                }
            };
            
            /**
             * addROM(addr)
             *
             * @this {ROM}
             * @param {number} addr
             * @return {boolean}
             */
            ROM.prototype.addROM = function(addr)
            {
                if (this.bus.addMemory(addr, this.sizeROM, Memory.TYPE.ROM)) {
                    if (DEBUG) this.log("addROM(): copying ROM to " + str.toHexLong(addr) + " (" + str.toHexLong(this.abROM.length) + " bytes)");
                    var bto = null;
                    for (var off = 0; off < this.abROM.length; off++) {
                        this.bus.setByteDirect(addr + off, this.abROM[off]);
                        if (BACKTRACK) {
                            bto = this.bus.addBackTrackObject(this, bto, off);
                            this.bus.writeBackTrackObject(addr + off, bto, off);
                        }
                    }
                    return true;
                }
                /*
                 * We don't need to report an error here, because addMemory() already takes care of that.
                 */
                return false;
            };
            
            /**
             * cloneROM(addr)
             *
             * For ROMs with one or more alias addresses, we used to call addROM() for each address.  However,
             * that obviously wasted memory, since each alias was an independent copy, and if you used the
             * Debugger to edit the ROM in one location, the changes would not appear in the other location(s).
             *
             * Now that the Bus component provides low-level getMemoryBlocks() and setMemoryBlocks() methods
             * to manually get and set the blocks of any memory range, it is now possible to create true aliases.
             *
             * @this {ROM}
             * @param {number} addr
             */
            ROM.prototype.cloneROM = function(addr)
            {
                var aBlocks = this.bus.getMemoryBlocks(this.addrROM, this.sizeROM);
                this.bus.setMemoryBlocks(addr, this.sizeROM, aBlocks);
            };
            
            /**
             * ROM.init()
             *
             * This function operates on every HTML element of class "rom", extracting the
             * JSON-encoded parameters for the ROM constructor from the element's "data-value"
             * attribute, invoking the constructor to create a ROM component, and then binding
             * any associated HTML controls to the new component.
             */
            ROM.init = function()
            {
                var aeROM = Component.getElementsByClass(window.document, PCJSCLASS, "rom");
                for (var iROM = 0; iROM < aeROM.length; iROM++) {
                    var eROM = aeROM[iROM];
                    var parmsROM = Component.getComponentParms(eROM);
                    var rom = new ROM(parmsROM);
                    Component.bindComponentControls(rom, eROM, PCJSCLASS);
                }
            };
            
            /*
             * Initialize all the ROM modules on the page.
             */
            web.onInit(ROM.init);
            
            if (typeof module !== 'undefined') module.exports = ROM;
            
          • serialport.js
            /**
             * @fileoverview Implements the PCjs SerialPort component.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Jul-01
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var web         = require("../../shared/lib/weblib");
                var Component   = require("../../shared/lib/component");
                var Messages    = require("./messages");
                var ChipSet     = require("./chipset");
                var State       = require("./state");
            }
            
            /**
             * SerialPort(parmsSerial)
             *
             * The SerialPort component has the following component-specific (parmsSerial) properties:
             *
             *      adapter: 1 (for port 0x3F8) or 2 (for port 0x2F8); 0 if not defined
             *
             * WARNING: Since the XSL file defines 'adapter' as a number, not a string, there's no need to
             * use parseInt(), and as an added benefit, we don't need to worry about whether a hex or decimal
             * format was used.
             *
             * This hard-coded approach mimics the original IBM PC Asynchronous Adapter configuration, which
             * contained a pair of "shunt modules" that allowed the user to select a port address of either
             * 0x3F8 ("Primary") or 0x2F8 ("Secondary").
             *
             * DOS typically names the Primary adapter "COM1" and the Secondary adapter "COM2", but I prefer
             * to stick to adapter numbers, since not all operating systems follow those naming conventions.
             *
             * @constructor
             * @extends Component
             * @param {Object} parmsSerial
             */
            function SerialPort(parmsSerial) {
            
                this.iAdapter = parmsSerial['adapter'];
            
                switch (this.iAdapter) {
                case 1:
                    this.portBase = 0x3F8;
                    this.nIRQ = ChipSet.IRQ.COM1;
                    break;
                case 2:
                    this.portBase = 0x2F8;
                    this.nIRQ = ChipSet.IRQ.COM2;
                    break;
                default:
                    Component.warning("Unrecognized serial adapter #" + this.iAdapter);
                    return;
                }
            
                /**
                 * controlIOBuffer is a DOM element, if any, bound to the port (currently for output purposes only; see echoByte())
                 *
                 * @type {Object}
                 */
                this.controlIOBuffer = null;
            
                Component.call(this, "SerialPort", parmsSerial, SerialPort, Messages.SERIAL);
            
                Component.bindExternalControl(this, parmsSerial['binding'], SerialPort.sIOBuffer);
            }
            
            /*
             * class SerialPort
             * property {number} iAdapter
             * property {number} portBase
             * property {number} nIRQ
             * property {Object} controlIOBuffer is a DOM element, if any, bound to the port (for rudimentary output; see echoByte())
             *
             * NOTE: This class declaration started as a way of informing the code inspector of the controlIOBuffer property,
             * which remained undefined until a setBinding() call set it later, but I've since decided that explicitly
             * initializing such properties in the constructor is a better way to go -- even though it's more code -- because
             * JavaScript compilers are supposed to be happier when the underlying object structures aren't constantly changing.
             *
             * Besides, I'm not sure I want to get into documenting every property this way, for this or any/every other class,
             * let alone getting into which ones should be considered private or protected, because PCjs isn't really a library
             * for third-party apps.
             */
            
            Component.subclass(SerialPort);
            
            /*
             * Internal name used for the I/O buffer control, if any, that we bind to the SerialPort.
             *
             * Alternatively, if SerialPort wants to use another component's control (eg, the Panel's
             * "print" control), it can specify the name of that control with the 'binding' property.
             *
             * For that binding to succeed, we also need to know the target component; for now, that's
             * been hard-coded to "Panel", in part because that's one of the few components we can rely
             * upon initializing before we do, but it would be a simple matter to include a component type
             * or ID as part of the 'binding' property as well, if we need more flexibility later.
             */
            SerialPort.sIOBuffer = "buffer";
            
            /*
             * 8250 I/O register offsets (add these to a I/O base address to obtain an I/O port address)
             *
             * NOTE: DLL.REG and DLM.REG form a 16-bit divisor into a clock input frequency of 1.8432Mhz.  The following
             * values should be used for the corresponding baud rates.  Rates above 9600 are discouraged by the IBM Tech Ref,
             * but rates as high as 128000 are listed on the NS8250A data sheet.
             *
             *      Divisor     Rate        Percent Error
             *      0x0900      50
             *      0x0600      75
             *      0x0417      110         0.026%
             *      0x0359      134.5       0.058%
             *      0x0300      150
             *      0x0180      300
             *      0x00C0      600
             *      0x0060      1200
             *      0x0040      1800
             *      0x003A      2000        0.69%
             *      0x0030      2400
             *      0x0020      3600
             *      0x0018      4800
             *      0x0010      7200
             *      0x000C      9600
             *      0x0006      19200
             *      0x0003      38400
             *      0x0002      56000       2.86%
             *      0x0001      128000
             */
            SerialPort.DLL = {REG: 0};              // Divisor Latch LSB (only when SerialPort.LCR.DLAB is set)
            SerialPort.THR = {REG: 0};              // Transmitter Holding Register (write)
            SerialPort.DL_DEFAULT       = 0x180;    // we select an arbitrary default Divisor Latch equivalent to 300 baud
            
            /*
             * The divisor is stored in wDL.  If we take the frequency value 1843200 and divide it by wDL*128, we get the
             * maximum number of bytes per second that the SerialPort interface should generate.  For example, if a baud
             * rate of 1200 is being used, the divisor will be 0x60 (96), so we calculate 1843200/(96*128) = 150, which means
             * there should be a 1000ms/150 or 6.667ms delay between bytes delivered.
             *
             * TODO: Enforce that delay.  However, the delay should be converted from real-world milliseconds to the
             * appropriate number of CPU cycles we can pass to setBurstCycles().  This will also require the CPU to call
             * us at the start of each burst, to see if advanceRBR() has more data to deliver.  For now, I'm throttling
             * SerialPort interrupts by passing a hard-coded delay to setIRR().  The setIRR() delay does not ensure any
             * particular baud rate, it simply gives the underlying Interrupt Service Routine (ISR) some breathing room.
             *
             * The Microsoft Windows 1.01 serial mouse driver ISR issues an EOI before it has safely exited, relying solely
             * on the fact that a 1200 baud serial device would not normally interrupt frequently enough to blow the stack.
             * However, in PCjs, all you have to do is enable Debugger messages on every serial interrupt and mouse event,
             * eg:
             *
             *      m serial on;m pic on;m mouse on
             *
             * to slow the machine down to the point where serial mouse interrupts overwhelm the ISR.  The Debugger messages
             * display the current stack pointer, which you can watch drop to zero and then wrap around, no doubt trampling
             * lots of code and data along the way.
             *
             * This problem can also occur without being forced by the Debugger; eg, whenever the physical machine's mouse is
             * configured for a high interrupt rate.
             */
            
            /*
             * Receiver Buffer Register (RBR.REG, offset 0; eg, 0x3F8 or 0x2F8)
             */
            SerialPort.RBR = {REG: 0};              // (read)
            
            /*
             * Interrupt Enable Register (IER.REG, offset 1; eg, 0x3F9 or 0x2F9)
             */
            SerialPort.IER = {};
            SerialPort.IER.REG          = 1;        // Interrupt Enable Register
            SerialPort.IER.RBR_AVAIL    = 0x01;
            SerialPort.IER.THR_EMPTY    = 0x02;
            SerialPort.IER.LSR_DELTA    = 0x04;
            SerialPort.IER.MSR_DELTA    = 0x08;
            SerialPort.IER.UNUSED       = 0xF0;     // always zero
            
            SerialPort.DLM = {REG: 1};              // Divisor Latch MSB (only when SerialPort.LCR.DLAB is set)
            
            /*
             * Interrupt ID Register (IIR.REG, offset 2; eg, 0x3FA or 0x2FA)
             *
             * All interrupt conditions cleared by reading the corresponding register (or, in the case of IRR_INT_THR, writing a new value to THR.REG)
             */
            SerialPort.IIR = {};
            SerialPort.IIR.REG          = 2;        // Interrupt ID Register (read-only)
            SerialPort.IIR.NO_INT       = 0x01;
            SerialPort.IIR.INT_LSR      = 0x06;     // Line Status (highest priority: Overrun error, Parity error, Framing error, or Break Interrupt)
            SerialPort.IIR.INT_RBR      = 0x04;     // Receiver Data Available
            SerialPort.IIR.INT_THR      = 0x02;     // Transmitter Holding Register Empty
            SerialPort.IIR.INT_MSR      = 0x00;     // Modem Status Register (lowest priority: Clear To Send, Data Set Ready, Ring Indicator, or Data Carrier Detect)
            SerialPort.IIR.INT_BITS     = 0x06;
            SerialPort.IIR.UNUSED       = 0xF8;     // always zero (the ROM BIOS relies on these bits "floating to 1" when no SerialPort is present)
            
            /*
             * Line Control Register (LCR.REG, offset 3; eg, 0x3FB or 0x2FB)
             */
            SerialPort.LCR = {};
            SerialPort.LCR.REG          = 3;        // Line Control Register
            SerialPort.LCR.DATA_5BITS   = 0x00;
            SerialPort.LCR.DATA_6BITS   = 0x01;
            SerialPort.LCR.DATA_7BITS   = 0x02;
            SerialPort.LCR.DATA_8BITS   = 0x03;
            SerialPort.LCR.STOP_BITS    = 0x04;     // clear: 1 stop bit; set: 1.5 stop bits for LCR_DATA_5BITS, 2 stop bits for all other data lengths
            SerialPort.LCR.PARITY_BIT   = 0x08;     // if set, a parity bit is inserted/expected between the last data bit and the first stop bit; no parity bit if clear
            SerialPort.LCR.PARITY_EVEN  = 0x10;     // if set, even parity is selected (ie, the parity bit insures an even number of set bits); if clear, odd parity
            SerialPort.LCR.PARITY_STICK = 0x20;     // if set, parity bit is transmitted inverted; if clear, parity bit is transmitted normally
            SerialPort.LCR.BREAK        = 0x40;     // if set, serial output (SOUT) signal is forced to logical 0 for the duration
            SerialPort.LCR.DLAB         = 0x80;     // Divisor Latch Access Bit; if set, DLL.REG and DLM.REG can be read or written
            
            /*
             * Modem Control Register (MCR.REG, offset 4; eg, 0x3FC or 0x2FC)
             */
            SerialPort.MCR = {};
            SerialPort.MCR.REG          = 4;        // Modem Control Register
            SerialPort.MCR.DTR          = 0x01;     // when set, DTR goes high, indicating ready to establish link (looped back to DSR in loop-back mode)
            SerialPort.MCR.RTS          = 0x02;     // when set, RTS goes high, indicating ready to exchange data (looped back to CTS in loop-back mode)
            SerialPort.MCR.OUT1         = 0x04;     // when set, OUT1 goes high (looped back to RI in loop-back mode)
            SerialPort.MCR.OUT2         = 0x08;     // when set, OUT2 goes high (looped back to RLSD in loop-back mode)
            SerialPort.MCR.LOOPBACK     = 0x10;     // when set, enables loop-back mode
            SerialPort.MCR.UNUSED       = 0xE0;     // always zero
            
            /*
             * Line Status Register (LSR.REG, offset 5; eg, 0x3FD or 0x2FD)
             *
             * NOTE: I've seen different specs for the LSR_TSRE.  I'm following the IBM Tech Ref's lead here, but the data sheet I have calls it TEMT
             * instead of TSRE, and claims that it is set whenever BOTH the THR and TSR are empty, and clear whenever EITHER the THR or TSR contain data.
             */
            SerialPort.LSR = {};
            SerialPort.LSR.REG          = 5;        // Line Status Register
            SerialPort.LSR.DR           = 0x01;     // Data Ready (set when new data in RBR.REG; cleared when RBR.REG read)
            SerialPort.LSR.OE           = 0x02;     // Overrun Error (set when new data arrives in RBR.REG before previous data read; cleared when LSR.REG read)
            SerialPort.LSR.PE           = 0x04;     // Parity Error (set when new data has incorrect parity; cleared when LSR.REG read)
            SerialPort.LSR.FE           = 0x08;     // Framing Error (set when new data has invalid stop bit; cleared when LSR.REG read)
            SerialPort.LSR.BI           = 0x10;     // Break Interrupt (set when new data exceeded normal transmission time; cleared LSR.REG when read)
            SerialPort.LSR.THRE         = 0x20;     // Transmitter Holding Register Empty (set when UART ready to accept new data; cleared when THR.REG written)
            SerialPort.LSR.TSRE         = 0x40;     // Transmitter Shift Register Empty (set when the TSR is empty; cleared when the THR is transferred to the TSR)
            SerialPort.LSR.UNUSED       = 0x80;     // always zero
            
            /*
             * Modem Status Register (MSR.REG, offset 6; eg, 0x3FE or 0x2FE)
             */
            SerialPort.MSR = {};
            SerialPort.MSR.REG          = 6;        // Modem Status Register
            SerialPort.MSR.DCTS         = 0x01;     // when set, CTS (Clear To Send) has changed since last read
            SerialPort.MSR.DDSR         = 0x02;     // when set, DSR (Data Set Ready) has changed since last read
            SerialPort.MSR.TERI         = 0x04;     // when set, TERI (Trailing Edge Ring Indicator) indicates RI has changed from 1 to 0
            SerialPort.MSR.DRLSD        = 0x08;     // when set, RLSD (Received Line Signal Detector) has changed
            SerialPort.MSR.CTS          = 0x10;     // when set, the modem or data set is ready to exchange data (complement of the Clear To Send input signal)
            SerialPort.MSR.DSR          = 0x20;     // when set, the modem or data set is ready to establish link (complement of the Data Set Ready input signal)
            SerialPort.MSR.RI           = 0x40;     // complement of the RI (Ring Indicator) input
            SerialPort.MSR.RLSD         = 0x80;     // complement of the RLSD (Received Line Signal Detect) input
            
            /*
             * Scratch Register (SCR.REG, offset 7; eg, 0x3FF or 0x2FF)
             */
            SerialPort.SCR = {REG: 7};
            
            /**
             * attachMouse(id, mouse)
             *
             * @this {SerialPort}
             * @param {string} id
             * @param {Mouse} mouse component
             * @return {Component} this or null, based on whether or not the specified ID matches
             */
            SerialPort.prototype.attachMouse = function(id, mouse)
            {
                if (id == this.idComponent) {
                    this.mouse = mouse;
                    return this;
                }
                return null;
            };
            
            /**
             * syncMouse()
             *
             * NOTE: This is probably obsolete, but the Mouse component still might discover a need for it.  See Mouse.powerUp().
             *
             * @this {SerialPort}
             *
            SerialPort.prototype.syncMouse = function()
             {
                if (this.mouse) this.mouse.notifyMCR(this.bMCR);
            };
             */
            
            /**
             * setBinding(sHTMLType, sBinding, control)
             *
             * @this {SerialPort}
             * @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
             * @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "buffer")
             * @param {Object} control is the HTML control DOM object (eg, HTMLButtonElement)
             * @return {boolean} true if binding was successful, false if unrecognized binding request
             */
            SerialPort.prototype.setBinding = function(sHTMLType, sBinding, control)
            {
                var serial = this;
            
                switch (sBinding) {
                case SerialPort.sIOBuffer:
                    this.bindings[sBinding] = this.controlIOBuffer = control;
                    /*
                     * By establishing an onkeypress handler here, we make it possible for DOS commands like
                     * "CTTY COM1" to more or less work (use "CTTY CON" to restore control to the DOS console).
                     *
                     * WARNING: This isn't really a supported feature yet; very much a work-in-progress.
                     */
                    control.onkeydown = function onKeyDownSerial(event) {
                        /*
                         * This is required in addition to onkeypress, because it's the only way to prevent
                         * BACKSPACE from being interpreted by the browser as a "Back" operation.
                         */
                        event = event || window.event;
                        var keyCode = event.keyCode;
                        if (keyCode === 8) {
                            if (event.preventDefault) event.preventDefault();
                            serial.sendRBR([keyCode]);
                        }
                    };
                    control.onkeypress = function onKeyPressSerial(event) {
                        /*
                         * Browser-independent keyCode extraction (refer to keyPress() and the other key
                         * event handlers in keyboard.js).
                         */
                        event = event || window.event;
                        var keyCode = event.which || event.keyCode;
                        serial.sendRBR([keyCode]);
                    };
                    return true;
            
                default:
                    break;
                }
                return false;
            };
            
            /**
             * initBus(cmp, bus, cpu, dbg)
             *
             * @this {SerialPort}
             * @param {Computer} cmp
             * @param {Bus} bus
             * @param {X86CPU} cpu
             * @param {Debugger} dbg
             */
            SerialPort.prototype.initBus = function(cmp, bus, cpu, dbg)
            {
                this.bus = bus;
                this.cpu = cpu;
                this.dbg = dbg;
                this.chipset = cmp.getComponentByType("ChipSet");
                bus.addPortInputTable(this, SerialPort.aPortInput, this.portBase);
                bus.addPortOutputTable(this, SerialPort.aPortOutput, this.portBase);
                this.setReady();
            };
            
            /**
             * powerUp(data, fRepower)
             *
             * @this {SerialPort}
             * @param {Object|null} data
             * @param {boolean} [fRepower]
             * @return {boolean} true if successful, false if failure
             */
            SerialPort.prototype.powerUp = function(data, fRepower)
            {
                if (!fRepower) {
                    if (!data || !this.restore) {
                        this.reset();
                    } else {
                        if (!this.restore(data)) return false;
                    }
                }
                return true;
            };
            
            /**
             * powerDown(fSave, fShutdown)
             *
             * @this {SerialPort}
             * @param {boolean} fSave
             * @param {boolean} [fShutdown]
             * @return {Object|boolean} component state if fSave; otherwise, true if successful, false if failure
             */
            SerialPort.prototype.powerDown = function(fSave, fShutdown)
            {
                return fSave && this.save ? this.save() : true;
            };
            
            /**
             * reset()
             *
             * @this {SerialPort}
             */
            SerialPort.prototype.reset = function()
            {
                this.initState();
            };
            
            /**
             * save()
             *
             * This implements save support for the SerialPort component.
             *
             * @this {SerialPort}
             * @return {Object}
             */
            SerialPort.prototype.save = function()
            {
                var state = new State(this);
                state.set(0, this.saveRegisters());
                return state.data();
            };
            
            /**
             * restore(data)
             *
             * This implements restore support for the SerialPort component.
             *
             * @this {SerialPort}
             * @param {Object} data
             * @return {boolean} true if successful, false if failure
             */
            SerialPort.prototype.restore = function(data)
            {
                return this.initState(data[0]);
            };
            
            /**
             * initState(data)
             *
             * @this {SerialPort}
             * @param {Array} [data]
             * @return {boolean} true if successful, false if failure
             */
            SerialPort.prototype.initState = function(data)
            {
                /*
                 * The NS8250A spec doesn't explicitly say what the RBR and THR are initialized to on a reset,
                 * but I think we can safely assume zeros.  Similarly, we reset the baud rate Divisor Latch (wDL)
                 * to an arbitrary but consistent default (DL_DEFAULT).
                 */
                var i = 0;
                if (data === undefined) {
                    data = [
                        0,                                          // RBR
                        0,                                          // THR
                        SerialPort.DL_DEFAULT,                      // DL
                        0,                                          // IER
                        SerialPort.IIR.NO_INT,                      // IIR
                        0,                                          // LCR
                        0,                                          // MCR
                        SerialPort.LSR.THRE | SerialPort.LSR.TSRE,  // LSR
                        SerialPort.MSR.CTS | SerialPort.MSR.DSR,    // MSR (instead of the normal 0 default, we indicate a state of readiness -- to be revisited)
                        []
                    ];
                }
                this.bRBR = data[i++];
                this.bTHR = data[i++];
                this.wDL =  data[i++];
                this.bIER = data[i++];
                this.bIIR = data[i++];
                this.bLCR = data[i++];
                this.bMCR = data[i++];
                this.bLSR = data[i++];
                this.bMSR = data[i++];
                this.abReceive = data[i];
                return true;
            };
            
            /**
             * saveRegisters()
             *
             * @this {SerialPort}
             * @return {Array}
             */
            SerialPort.prototype.saveRegisters = function()
            {
                var i = 0;
                var data = [];
                data[i++] = this.bRBR;
                data[i++] = this.bTHR;
                data[i++] = this.wDL;
                data[i++] = this.bIER;
                data[i++] = this.bIIR;
                data[i++] = this.bLCR;
                data[i++] = this.bMCR;
                data[i++] = this.bLSR;
                data[i++] = this.bMSR;
                data[i] = this.abReceive;
                return data;
            };
            
            /**
             * sendRBR(ab)
             *
             * @this {SerialPort}
             * @param {Array} ab is an array of bytes to propagate to the bRBR (Receiver Buffer Register)
             */
            SerialPort.prototype.sendRBR = function(ab)
            {
                this.abReceive = this.abReceive.concat(ab);
                this.advanceRBR();
            };
            
            /**
             * advanceRBR()
             *
             * @this {SerialPort}
             */
            SerialPort.prototype.advanceRBR = function()
            {
                if (this.abReceive.length > 0 && !(this.bLSR & SerialPort.LSR.DR)) {
                    this.bRBR = this.abReceive.shift();
                    this.bLSR |= SerialPort.LSR.DR;
                }
                this.updateIRR();
            };
            
            /**
             * inRBR(port, addrFrom)
             *
             * @this {SerialPort}
             * @param {number} port (0x3F8 or 0x2F8)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number} simulated port value
             */
            SerialPort.prototype.inRBR = function(port, addrFrom)
            {
                var b = ((this.bLCR & SerialPort.LCR.DLAB) ? (this.wDL & 0xff) : this.bRBR);
                this.printMessageIO(port, null, addrFrom, (this.bLCR & SerialPort.LCR.DLAB) ? "DLL" : "RBR", b);
                this.bLSR &= ~SerialPort.LSR.DR;
                this.advanceRBR();
                return b;
            };
            
            /**
             * inIER(port, addrFrom)
             *
             * @this {SerialPort}
             * @param {number} port (0x3F9 or 0x2F9)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number} simulated port value
             */
            SerialPort.prototype.inIER = function(port, addrFrom)
            {
                var b = ((this.bLCR & SerialPort.LCR.DLAB) ? (this.wDL >> 8) : this.bIER);
                this.printMessageIO(port, null, addrFrom, (this.bLCR & SerialPort.LCR.DLAB) ? "DLM" : "IER", b);
                return b;
            };
            
            /**
             * inIIR(port, addrFrom)
             *
             * @this {SerialPort}
             * @param {number} port (0x3FA or 0x2FA)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number} simulated port value
             */
            SerialPort.prototype.inIIR = function(port, addrFrom)
            {
                var b = this.bIIR;
                this.printMessageIO(port, null, addrFrom, "IIR", b);
                return b;
            };
            
            /**
             * inLCR(port, addrFrom)
             *
             * @this {SerialPort}
             * @param {number} port (0x3FB or 0x2FB)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number} simulated port value
             */
            SerialPort.prototype.inLCR = function(port, addrFrom)
            {
                var b = this.bLCR;
                this.printMessageIO(port, null, addrFrom, "LCR", b);
                return b;
            };
            
            /**
             * inMCR(port, addrFrom)
             *
             * @this {SerialPort}
             * @param {number} port (0x3FC or 0x2FC)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number} simulated port value
             */
            SerialPort.prototype.inMCR = function(port, addrFrom)
            {
                var b = this.bMCR;
                this.printMessageIO(port, null, addrFrom, "MCR", b);
                return b;
            };
            
            /**
             * inLSR(port, addrFrom)
             *
             * @this {SerialPort}
             * @param {number} port (0x3FD or 0x2FD)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number} simulated port value
             */
            SerialPort.prototype.inLSR = function(port, addrFrom)
            {
                var b = this.bLSR;
                this.printMessageIO(port, null, addrFrom, "LSR", b);
                return b;
            };
            
            /**
             * inMSR(port, addrFrom)
             *
             * @this {SerialPort}
             * @param {number} port (0x3FE or 0x2FE)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number} simulated port value
             */
            SerialPort.prototype.inMSR = function(port, addrFrom)
            {
                var b = this.bMSR;
                this.printMessageIO(port, null, addrFrom, "MSR", b);
                return b;
            };
            
            /**
             * outTHR(port, bOut, addrFrom)
             *
             * @this {SerialPort}
             * @param {number} port (0x3F8 or 0x2F8)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to write the specified port)
             */
            SerialPort.prototype.outTHR = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, (this.bLCR & SerialPort.LCR.DLAB) ? "DLL" : "THR");
                if (this.bLCR & SerialPort.LCR.DLAB) {
                    this.wDL = (this.wDL & ~0xff) | bOut;
                } else {
                    this.bTHR = bOut;
                    this.bLSR &= ~(SerialPort.LSR.THRE | SerialPort.LSR.TSRE);
                    if (this.echoByte(bOut)) {
                        this.bLSR |= (SerialPort.LSR.THRE | SerialPort.LSR.TSRE);
                        /*
                         * QUESTION: Does this mean we should also flush/zero bTHR?
                         */
                    }
                }
            };
            
            /**
             * outIER(port, bOut, addrFrom)
             *
             * @this {SerialPort}
             * @param {number} port (0x3F9 or 0x2F9)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to write the specified port)
             */
            SerialPort.prototype.outIER = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, (this.bLCR & SerialPort.LCR.DLAB) ? "DLM" : "IER");
                if (this.bLCR & SerialPort.LCR.DLAB) {
                    this.wDL = (this.wDL & 0xff) | (bOut << 8);
                } else {
                    this.bIER = bOut;
                }
            };
            
            /**
             * outLCR(port, bOut, addrFrom)
             *
             * @this {SerialPort}
             * @param {number} port (0x3FB or 0x2FB)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to write the specified port)
             */
            SerialPort.prototype.outLCR = function(port, bOut, addrFrom)
            {
                this.printMessageIO(port, bOut, addrFrom, "LCR");
                this.bLCR = bOut;
            };
            
            /**
             * outMCR(port, bOut, addrFrom)
             *
             * @this {SerialPort}
             * @param {number} port (0x3FC or 0x2FC)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to write the specified port)
             */
            SerialPort.prototype.outMCR = function(port, bOut, addrFrom)
            {
                var bPrev = this.bMCR;
                this.printMessageIO(port, bOut, addrFrom, "MCR");
                this.bMCR = bOut;
                if (this.mouse && (bPrev ^ bOut) & (SerialPort.MCR.DTR | SerialPort.MCR.RTS)) {
                    this.mouse.notifyMCR(this.bMCR);
                }
            };
            
            /**
             * updateIRR()
             *
             * @this {SerialPort}
             */
            SerialPort.prototype.updateIRR = function()
            {
                var bIIR = -1;
                if ((this.bLSR & SerialPort.LSR.DR) && (this.bIER & SerialPort.IER.RBR_AVAIL)) {
                    bIIR = SerialPort.IIR.INT_RBR;
                }
                if (bIIR >= 0) {
                    this.bIIR &= ~(SerialPort.IIR.NO_INT | SerialPort.IIR.INT_BITS);
                    this.bIIR |= bIIR;
                    /*
                     * TODO: Remove this arbitrary 100-instruction delay once we've added support for baud rate throttling
                     * (see TODO above regarding baud rate).
                     */
                    if (this.chipset && this.nIRQ) this.chipset.setIRR(this.nIRQ, 100);
                } else {
                    this.bIIR |= SerialPort.IIR.NO_INT;
                    if (this.chipset && this.nIRQ) this.chipset.clearIRR(this.nIRQ);
                }
            };
            
            /**
             * echoByte(b)
             *
             * @this {SerialPort}
             * @param {number} b
             * @return {boolean} true if echoed, false if not
             */
            SerialPort.prototype.echoByte = function(b)
            {
                if (this.controlIOBuffer) {
                    if (b != 0x0D) {
                        if (b == 0x08) {
                            this.controlIOBuffer.value = this.controlIOBuffer.value.slice(0, -1);
                        } else {
                            this.controlIOBuffer.value += String.fromCharCode(b);
                            this.controlIOBuffer.scrollTop = this.controlIOBuffer.scrollHeight;
                        }
                    }
                    return true;
                }
                return false;
            };
            
            /*
             * Port input notification table
             */
            SerialPort.aPortInput = {
                0x0: SerialPort.prototype.inRBR,    // or DLL if DLAB set
                0x1: SerialPort.prototype.inIER,    // or DLM if DLAB set
                0x2: SerialPort.prototype.inIIR,
                0x3: SerialPort.prototype.inLCR,
                0x4: SerialPort.prototype.inMCR,
                0x5: SerialPort.prototype.inLSR,
                0x6: SerialPort.prototype.inMSR
            };
            
            /*
             * Port output notification table
             */
            SerialPort.aPortOutput = {
                0x0: SerialPort.prototype.outTHR,   // or DLL if DLAB set
                0x1: SerialPort.prototype.outIER,   // or DLM if DLAB set
                0x3: SerialPort.prototype.outLCR,
                0x4: SerialPort.prototype.outMCR
            };
            
            /**
             * SerialPort.init()
             *
             * This function operates on every HTML element of class "serial", extracting the
             * JSON-encoded parameters for the SerialPort constructor from the element's "data-value"
             * attribute, invoking the constructor to create a SerialPort component, and then binding
             * any associated HTML controls to the new component.
             */
            SerialPort.init = function()
            {
                var aeSerial = Component.getElementsByClass(window.document, PCJSCLASS, "serial");
                for (var iSerial = 0; iSerial < aeSerial.length; iSerial++) {
                    var eSerial = aeSerial[iSerial];
                    var parmsSerial = Component.getComponentParms(eSerial);
                    var serial = new SerialPort(parmsSerial);
                    Component.bindComponentControls(serial, eSerial, PCJSCLASS);
                }
            };
            
            /*
             * Initialize every SerialPort module on the page.
             */
            web.onInit(SerialPort.init);
            
            if (typeof module !== 'undefined') module.exports = SerialPort;
            
          • state.js
            /**
             * @fileoverview The State class used by C1Pjs and PCjs.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-May-14
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var web       = require("./../../shared/lib/weblib");
                var Component = require("./../../shared/lib/component");
                var Messages  = require("./messages");
            }
            
            /**
             * State(component, sVersion, sSuffix)
             *
             * State objects are used by components to save/restore their state.
             *
             * During a save operation, components add data to a State object via set(),
             * and then return the resulting data using data().
             *
             * During a restore operation, the Computer component passes the results of each
             * data() call back to the originating component.
             *
             * WARNING: Since State objects are low-level objects that have no UI requirements,
             * they do not inherit from the Component class, so you should only use class methods
             * of Component, such as Component.assert(), or Debugger methods if the Debugger
             * is available.
             *
             * @constructor
             * @param {Component} component
             * @param {string} [sVersion] is used to append a major version number to the key
             * @param {string} [sSuffix] is used to append any additional suffixes to the key
             */
            function State(component, sVersion, sSuffix) {
                this.id = component.id;
                this.key = State.key(component, sVersion, sSuffix);
                this.dbg = component.dbg;
                this.unload(component.parms);
            }
            
            /**
             * State.key(component, sVersion, sSuffix)
             *
             * This encapsulates the key generation code.
             *
             * @param {Component} component
             * @param {string} [sVersion] is used to append a major version number to the key
             * @param {string} [sSuffix] is used to append any additional suffixes to the key
             * @return {string} key
             */
            State.key = function(component, sVersion, sSuffix) {
                var key = component.id;
                if (sVersion) {
                    var i = sVersion.indexOf('.');
                    if (i > 0) key += ".v" + sVersion.substr(0, i);
                }
                if (sSuffix) {
                    key += "." + sSuffix;
                }
                return key;
            };
            
            /**
             * State.compress(aSrc)
             *
             * @param {Array.<number>|null} aSrc
             * @return {Array.<number>|null} is either the original array (aSrc), or a smaller array of "count, value" pairs (aComp)
             */
            State.compress = function(aSrc) {
                if (aSrc) {
                    var iSrc = 0;
                    var iComp = 0;
                    var aComp = [];
                    while (iSrc < aSrc.length) {
                        var n = aSrc[iSrc];
                        Component.assert(n !== undefined);
                        var iCompare = iSrc + 1;
                        while (iCompare < aSrc.length && aSrc[iCompare] === n) iCompare++;
                        aComp[iComp++] = iCompare - iSrc;
                        aComp[iComp++] = n;
                        iSrc = iCompare;
                    }
                    if (aComp.length < aSrc.length) return aComp;
                }
                return aSrc;
            };
            
            /**
             * State.decompress(aComp)
             *
             * @param {Array.<number>} aComp
             * @param {number} nLength is expected length of decompressed data
             * @return {Array.<number>}
             */
            State.decompress = function(aComp, nLength) {
                var iDst = 0;
                var aDst = new Array(nLength);
                var iComp = 0;
                while (iComp < aComp.length - 1) {
                    var c = aComp[iComp++];
                    var n = aComp[iComp++];
                    while (c--) {
                        aDst[iDst++] = n;
                    }
                }
                Component.assert(aDst.length == nLength);
                return aDst;
            };
            
            /**
             * State.compressEvenOdd(aSrc)
             *
             * This is a very simple variation on compress() that compresses all the EVEN elements of aSrc first,
             * followed by all the ODD elements.  This tends to work better on EGA video memory, because when odd/even
             * addressing is enabled (eg, for text modes), the DWORD values tend to alternate, which is the worst case
             * for compress(), but the best case for compressEvenOdd().
             *
             * One wrinkle we support: if the first element is uninitialized, then we assume the entire array is undefined,
             * and return an empty compressed array.  Conversely, decompressEvenOdd() will take an empty compressed array
             * and return an uninitialized array.
             *
             * @param {Array.<number>|null} aSrc
             * @return {Array.<number>|null} is either the original array (aSrc), or a smaller array of "count, value" pairs (aComp)
             */
            State.compressEvenOdd = function(aSrc) {
                if (aSrc) {
                    var iComp = 0, aComp = [];
                    if (aSrc[0] !== undefined) {
                        for (var off = 0; off < 2; off++) {
                            var iSrc = off;
                            while (iSrc < aSrc.length) {
                                var n = aSrc[iSrc];
                                var iCompare = iSrc + 2;
                                while (iCompare < aSrc.length && aSrc[iCompare] === n) iCompare += 2;
                                aComp[iComp++] = (iCompare - iSrc) >> 1;
                                aComp[iComp++] = n;
                                iSrc = iCompare;
                            }
                        }
                    }
                    if (aComp.length < aSrc.length) return aComp;
                }
                return aSrc;
            };
            
            /**
             * State.decompressEvenOdd(aComp, nLength)
             *
             * This is the counterpart to compressEvenOdd().  Note that because there's nothing in the compressed sequence
             * that differentiates a compress() sequence from a compressEvenOdd() sequence, you simply have to be consistent:
             * if you used even/odd compression, then you must use even/odd decompression.
             *
             * @param {Array.<number>} aComp
             * @param {number} nLength is expected length of decompressed data
             * @return {Array.<number>}
             */
            State.decompressEvenOdd = function(aComp, nLength) {
                var iDst = 0;
                var aDst = new Array(nLength);
                var iComp = 0;
                while (iComp < aComp.length - 1) {
                    var c = aComp[iComp++];
                    var n = aComp[iComp++];
                    while (c--) {
                        aDst[iDst] = n;
                        iDst += 2;
                    }
                    /*
                     * The output of a "count,value" pair will never exceed the end of the output array, so as soon as we reach it
                     * the first time, we know it's time to switch to ODD elements, and as soon as we reach it again, we should be
                     * done.
                     */
                    Component.assert(iDst <= nLength || iComp == aComp.length);
                    if (iDst == nLength) iDst = 1;
                }
                Component.assert(aDst.length == nLength);
                return aDst;
            };
            
            State.prototype = {
                constructor: State,
                /**
                 * set(id, data)
                 *
                 * @this {State}
                 * @param {number|string} id
                 * @param {Object|string} data
                 */
                set: function(id, data) {
                    try {
                        this[this.id][id] = data;
                    } catch(e) {
                        Component.log(e.message);
                    }
                },
                /**
                 * get(id)
                 *
                 * @this {State}
                 * @param {number|string} id
                 * @return {Object|string|null}
                 */
                get: function(id) {
                    return this[this.id][id] || null;
                },
                /**
                 * value()
                 *
                 * Use this instead of data() if you haven't called parse() yet.
                 *
                 * @this {State}
                 * @return {string}
                 */
                value: function() {
                    return this[this.id];
                },
                /**
                 * data()
                 *
                 * @this {State}
                 * @return {Object}
                 */
                data: function() {
                    return this[this.id];
                },
                /**
                 * load(s)
                 *
                 * WARNING: Make sure you follow this call with either a call to parse() or unload(),
                 * because any stringified data that we've loaded isn't usable until it's been parsed.
                 *
                 * @this {State}
                 * @param {Object|string|null} [s]
                 * @return {boolean} true if state exists in localStorage, false if not
                 */
                load: function(s) {
                    if (s) {
                        this[this.id] = s;
                        this.fLoaded = true;
                        return true;
                    }
                    if (this.fLoaded) {
                        /*
                         * This is assumed to be a redundant load().
                         */
                        return true;
                    }
                    if (web.hasLocalStorage()) {
                        s = web.getLocalStorageItem(this.key);
                        if (s) {
                            this[this.id] = s;
                            this.fLoaded = true;
                            if (DEBUG && this.messageEnabled()) {
                                this.printMessage("localStorage(" + this.key + "): " + s.length + " bytes loaded");
                            }
                            return true;
                        }
                    }
                    return false;
                },
                /**
                 * parse()
                 *
                 * This completes the load() operation, by parsing what was loaded, on the assumption there
                 * might be some benefit to deferring parsing until we've given the user a chance to confirm.
                 * Otherwise, load() could have just as easily done this, too.
                 *
                 * @this {State}
                 * @return {boolean} true if successful, false if error
                 */
                parse: function() {
                    var fSuccess = true;
                    try {
                        this[this.id] = JSON.parse(this[this.id]);
                    } catch (e) {
                        Component.error(e.message || e);
                        fSuccess = false;
                    }
                    return fSuccess;
                },
                /**
                 * store()
                 *
                 * @this {State}
                 * @return {boolean} true if successful, false if error
                 */
                store: function() {
                    var fSuccess = true;
                    if (web.hasLocalStorage()) {
                        var s = JSON.stringify(this[this.id]);
                        if (web.setLocalStorageItem(this.key, s)) {
                            if (DEBUG && this.messageEnabled()) {
                                this.printMessage("localStorage(" + this.key + "): " + s.length + " bytes stored");
                            }
                        } else {
                            /*
                             * WARNING: Because browsers tend to disable all alerts() during an "unload" operation,
                             * it's unlikely anyone will ever see the "quota" errors that occur at this point.  Need to
                             * think of some way to notify the user that there's a problem, and offer a way of cleaning
                             * up old states.
                             */
                            Component.error("Unable to store " + s.length + " bytes in browser local storage");
                            fSuccess = false;
                        }
                    }
                    return fSuccess;
                },
                /**
                 * toString()
                 *
                 * We can't know whether this might be called before parse() or after parse(), so we check.
                 * If before, then this[this.id] will still be in string form; if after, it will be an Object.
                 *
                 * @this {State}
                 * @return {string} JSON-encoded state
                 */
                toString: function() {
                    var value = this[this.id];
                    return (typeof value == "string"? value : JSON.stringify(value));
                },
                /**
                 * unload(parms)
                 *
                 * This discards any data saved via set() or loaded via load(), creating an empty State object.
                 * Note that you have to follow this call with an explicit call to store() if you want to remove
                 * the state from localStorage as well.
                 *
                 * @this {State}
                 * @param {Object} [parms]
                 */
                unload: function(parms) {
                    this[this.id] = {};
                    if (parms) this.set("parms", parms);
                    this.fLoaded = false;
                },
                /**
                 * clear(fAll)
                 *
                 * This unloads the current state, and then clears ALL localStorage for the current machine,
                 * independent of version, to reduce the chance of orphaned states wasting part of our limited allocation.
                 *
                 * @this {State}
                 * @param {boolean} [fAll] true to unconditionally clear ALL localStorage for the current domain
                 */
                clear: function(fAll) {
                    this.unload();
                    var aKeys = web.getLocalStorageKeys();
                    for (var i = 0; i < aKeys.length; i++) {
                        var sKey = aKeys[i];
                        if (sKey && (fAll || sKey.substr(0, this.key.length) == this.key)) {
                            web.removeLocalStorageItem(sKey);
                            if (DEBUG && this.messageEnabled()) {
                                this.printMessage("localStorage(" + sKey + ") removed");
                            }
                            aKeys.splice(i, 1);
                            i = 0;
                        }
                    }
                },
                /**
                 * messageEnabled(bitsMessage)
                 *
                 * @this {State}
                 * @param {number} [bitsMessage] is one or more Messages category flag(s)
                 * @return {boolean}
                 */
                messageEnabled: function(bitsMessage) {
                    if (DEBUGGER && this.dbg) {
                        if (bitsMessage == null) {
                            bitsMessage = Messages.STATE;
                        } else {
                            bitsMessage |= Messages.STATE;
                        }
                        return this.dbg.messageEnabled(bitsMessage);
                    }
                    return false;
                },
                /**
                 * printMessage(sMessage)
                 *
                 * @this {State}
                 * @param {string} sMessage is any caller-defined message string
                 */
                printMessage: function(sMessage) {
                    if (DEBUGGER && this.dbg) this.dbg.message(sMessage);
                }
            };
            
            if (typeof module !== 'undefined') module.exports = State;
            
          • video.js
            /**
             * @fileoverview Implements the PCjs Video component.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Jun-15
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var str         = require("../../shared/lib/strlib");
                var web         = require("../../shared/lib/weblib");
                var DumpAPI     = require("../../shared/lib/dumpapi");
                var Component   = require("../../shared/lib/component");
                var Memory      = require("./memory");
                var Messages    = require("./messages");
                var ChipSet     = require("./chipset");
                var Keyboard    = require("./keyboard");
                var State       = require("./state");
            }
            
            /**
             * Video(parmsVideo, canvas, context, textarea, container)
             *
             * The Video component can be configured with the following (parmsVideo) properties:
             *
             *      model: model (eg, "mda" for Monochrome Display Adapter)
             *      mode: mode number (hardware-specific, 7 is the default)
             *      memory: amount of installed memory (ignored for MDA/CGA)
             *      screenWidth: width of the screen canvas, in pixels
             *      screenHeight: height of the screen canvas, in pixels
             *      scale: true for font scaling, false (default) to center the display on the screen
             *      charCols: number of character columns
             *      charRows: number of character rows
             *      fontROM: path to .rom file (or a JSON representation) that defines the character set
             *      screenColor: background color of the screen canvas (default is black)
             *      autoLock: true to (attempt to) automatically lock the mouse to the canvas (default is false)
             *
             * An EGA may specify the following additional properties:
             *
             *      switches: string representing EGA switches (see "SW1-SW4" documentation below)
             *      memory: the size of the EGA's on-board memory (overrides EGA's Video.cardSpecs)
             *
             * This calls the Bus to allocate a video buffer at the appropriate memory location whenever
             * a reset() or setMode() occurs; setMode() is called whenever a mode change is detected at
             * the port level, and whenever reset() is called.  setMode() also invokes updateScreen(true),
             * which forces reallocation of our internal buffer (aCellCache) that mirrors the video buffer.
             *
             * The CPU periodically calls updateScreen(), at an assumed rate of 60 times/second,
             * to update any blinking elements (the cursor and any characters with the blink attribute),
             * to compare/update the contents of our internal buffer with the video buffer, and to render
             * any differences between the two buffers into the associated screen canvas, via either
             * updateChar() or setPixel().
             *
             * Thanks to the CPU's new block-based memory manager that allows us to sparse-allocate memory
             * (in 4Kb increments on 20-bit buses, 16Kb increments on 24-bit buses), updateScreen()
             * can also ask the CPU for the "dirty" state of all the blocks underlying the video buffer,
             * bypassing the update completely if the buffer is still clean.
             *
             * Unfortunately, that optimization is defeated if our count of active blink elements is non-zero,
             * because we must rescan the entire buffer to locate and redraw them all; I'm assuming for now
             * that, more often than not, blink attributes will not be present, and therefore they're not worth
             * a separate caching mechanism.  If the only blinking element is the cursor, that's no problem,
             * as we redraw only the one cell containing the cursor (assuming the buffer is otherwise clean).
             *
             * @constructor
             * @extends Component
             * @param {Object} parmsVideo
             * @param {Object} [canvas]
             * @param {Object} [context]
             * @param {Object} [textarea]
             * @param {Object} [container]
             */
            function Video(parmsVideo, canvas, context, textarea, container)
            {
                Component.call(this, "Video", parmsVideo, Video, Messages.VIDEO);
            
                /*
                 * This records the model specified (eg, "mda", "cga", "ega", "vga" or "" if none specified);
                 * when a model is specified, it overrides whatever model we infer from the ChipSet's switches
                 * (since those motherboard switches tell us only the type of monitor, not the type of card).
                 */
                this.model = parmsVideo['model'];
                this.nCard = Video.CARD.NAMES[this.model] || Video.CARD.MDA;
            
                this.cbMemory = parmsVideo['memory'] || 0;  // zero means fallback to the cardSpec's default size
                this.sSwitches = parmsVideo['switches'];
            
                /*
                 * powerUp() uses the default mode ONLY if ChipSet doesn't give us a default.
                 */
                this.nModeDefault = parmsVideo['mode'];
                if (this.nModeDefault === undefined || Video.aModeParms[this.nModeDefault] === undefined) {
                    this.nModeDefault = Video.MODE.MDA_80X25;
                }
            
                /*
                 * setDimensions() uses these values ONLY if it doesn't recognize the video mode.
                 */
                this.nColsDefault = parmsVideo['charCols'];
                this.nRowsDefault = parmsVideo['charRows'];
                if (this.nColsDefault === undefined || this.nRowsDefault === undefined) {
                    this.nColsDefault = Video.aModeParms[this.nModeDefault][0];
                    this.nRowsDefault = Video.aModeParms[this.nModeDefault][1];
                }
            
                /*
                 * setDimensions() uses these values unconditionally, as the machine has no idea what the
                 * physical screen size should be.
                 */
                this.cxScreen = parmsVideo['screenWidth'];
                this.cyScreen = parmsVideo['screenHeight'];
            
                /*
                 * We might consider another component parameter to specify the font-doubling setting.
                 * For now, it's based on whether the default SCREEN cell size is sufficiently larger than
                 * the default FONT cell size.
                 */
                this.fScaleFont = parmsVideo['scale'];
                this.fDoubleFont = Math.round(this.cxScreen / this.nColsDefault) >= 12;
            
                this.fTouchScreen = parmsVideo['touchScreen'];
            
                this.canvasScreen = canvas;
                this.contextScreen = context;
                this.textareaScreen = textarea;
                this.inputScreen = textarea || canvas || null;
            
                /*
                 * If a Mouse exists, we'll be notified when it requests our canvas, and we make a note of it
                 * so that if lockPointer() is ever invoked, we can notify the Mouse.
                 */
                this.mouse = null;
                this.fAutoLock = parmsVideo['autoLock'];
            
                /*
                 * Originally, setMode() would map/unmap the video buffer ONLY when the active card changed,
                 * because as long as an MDA or CGA remained active, its video buffer never changed.  However,
                 * since the EGA can change its video buffer on the fly, setMode() must also compare the card's
                 * hard-coded and/or programmed buffer address/size to the "active" address/size; the latter
                 * is recorded here.
                 */
                this.addrBuffer = this.sizeBuffer = 0;
            
                /*
                 * aFonts is an array of font objects indexed by FONT ID.  Font characters are arranged
                 * in 16x16 grids, with one grid per canvas object in the aCanvas array of each font object.
                 *
                 * Each element is a Font object that describes the font size and provides bitmaps for all the font
                 * color permutations.  aFonts.length will be non-zero if ANY fonts are loaded, but do NOT assume
                 * that EVERY font has been loaded; check for the existence of a font by checking for its unique ID
                 * within this sparse array.
                 */
                this.aFonts = [];
            
                /*
                 * Instead of (re)allocating a new color array every time getCardColors() is called, we preallocate
                 * an array and simply update the entries as needed.  Note that for an EGA (or a VGA operating in an
                 * EGA-compatible mode), only the first 16 entries get used (derived from the ATC); only when a VGA
                 * is operating in an 8bpp mode are 256 entries used (derived from the DAC rather than the ATC).
                 */
                this.aRGB = new Array(this.nCard == Video.CARD.VGA? 256 : 16);
                this.fRGBValid = false;     // whenever this is false, it signals getCardColors() to rebuild aRGB
            
                /*
                 * Since I've not found clear documentation on a reliable way to check whether a particular DOM element
                 * (other than the BODY element) has focus at any given time, I've added onfocus() and onblur() handlers
                 * to the screen to maintain my own focus state.
                 */
                this.fHasFocus = false;
            
                var video = this;
            
                /*
                 * Here's the gross code to handle full-screen support across all supported browsers.  The lack of standards
                 * is exasperating; browsers can't agree on 'full' or 'Full, 'request' or 'Request', 'screen' or 'Screen', and
                 * while some browsers honor other browser prefixes, most browsers don't.
                 */
                this.fGecko = web.isUserAgent("Gecko/");
                var i, sEvent, asPrefixes = ['', 'moz', 'webkit', 'ms'];
            
                this.container = container;
                if (this.container) {
                    this.container.doFullScreen = container['requestFullscreen'] || container['msRequestFullscreen'] || container['mozRequestFullScreen'] || container['webkitRequestFullscreen'];
                    if (this.container.doFullScreen) {
                        for (i = 0; i < asPrefixes.length; i++) {
                            sEvent = asPrefixes[i] + 'fullscreenchange';
                            if ('on' + sEvent in document) {
                                var onFullScreenChange = function() {
                                    var fFullScreen = (document['fullscreenElement'] || document['mozFullScreenElement'] || document['webkitFullscreenElement'] || document['msFullscreenElement']);
                                    video.notifyFullScreen(fFullScreen? true : false);
                                };
                                document.addEventListener(sEvent, onFullScreenChange, false);
                                break;
                            }
                        }
                        for (i = 0; i < asPrefixes.length; i++) {
                            sEvent = asPrefixes[i] + 'fullscreenerror';
                            if ('on' + sEvent in document) {
                                var onFullScreenError = function() {
                                    video.notifyFullScreen(null);
                                };
                                document.addEventListener(sEvent, onFullScreenError, false);
                                break;
                            }
                        }
                    }
                }
            
                /*
                 * More gross code to handle pointer-locking support across all supported browsers.
                 *
                 * TODO: Consider "upgrading" this code to use the same asPrefixes array as above, especially once Microsoft
                 * finally releases a browser that supports pointer-locking (post-Windows 10?)
                 */
                if (this.inputScreen) {
                    this.inputScreen.onfocus = function onFocusScreen() {
                        return video.onFocusChange(true);
                    };
                    this.inputScreen.onblur = function onBlurScreen() {
                        return video.onFocusChange(false);
                    };
                    this.inputScreen.lockPointer = this.inputScreen['requestPointerLock'] || this.inputScreen['mozRequestPointerLock'] || this.inputScreen['webkitRequestPointerLock'];
                    this.inputScreen.unlockPointer = this.inputScreen['exitPointerLock'] || this.inputScreen['mozExitPointerLock'] || this.inputScreen['webkitExitPointerLock'];
                    if (this.inputScreen.lockPointer) {
                        var onPointerLockChange = function() {
                            var fLocked = (
                                document['pointerLockElement'] === video.inputScreen ||
                                document['mozPointerLockElement'] === video.inputScreen ||
                                document['webkitPointerLockElement'] === video.inputScreen);
                            video.notifyPointerLocked(fLocked);
                        };
                        if ('onpointerlockchange' in document) {
                            document.addEventListener('pointerlockchange', onPointerLockChange, false);
                        } else if ('onmozpointerlockchange' in document) {
                            document.addEventListener('mozpointerlockchange', onPointerLockChange, false);
                        } else if ('onwebkitpointerlockchange' in document) {
                            document.addEventListener('webkitpointerlockchange', onPointerLockChange, false);
                        }
                    }
                }
            
                /*
                 * As far as overall image quality of scaled fonts, these options don't seem necessary for Safari (and
                 * don't have any discernible effect anyway). Turning 'webkitImageSmoothingEnabled' off DOES have an effect
                 * on Chrome, but it's not really a positive effect overall, so I'm leaving these off for now.
                 *
                 *  if (this.contextScreen) {
                 *      this.contextScreen['mozImageSmoothingEnabled'] = false;
                 *      this.contextScreen['webkitImageSmoothingEnabled'] = false;
                 *  }
                 */
            
                var sFileURL = parmsVideo['fontROM'];
                if (sFileURL) {
                    var sFileExt = str.getExtension(sFileURL);
                    if (sFileExt != "json") {
                        sFileURL = web.getHost() + DumpAPI.ENDPOINT + '?' + DumpAPI.QUERY.FILE + '=' + sFileURL + '&' + DumpAPI.QUERY.FORMAT + '=' + DumpAPI.FORMAT.BYTES;
                    }
                    web.loadResource(sFileURL, true, null, this, this.onLoadSetFonts);
                }
            }
            
            Component.subclass(Video);
            
            Video.TRAPALL = true;           // monitor all I/O by default (not just deltas)
            
            /*
             * MDA/CGA Support
             *
             * Since there's a lot of similarity between the MDA and CGA (eg, their text-mode video buffer
             * format, and their use of the 6845 CRT controller), since the MDA ROM contains the fonts used
             * by both devices, and since the same ROM BIOS supports both (in fact, the BIOS indiscriminately
             * initializes both, regardless which is actually installed), this same component emulates both
             * devices.
             *
             * When no model is specified, this component supports the ability to dynamically switch between
             * MDA and CGA emulation, by simply toggling the SW1 motherboard "monitor type" switch settings
             * and resetting the machine.  In that model-less configuration, we install I/O port handlers for
             * both MDA and CGA cards, regardless which monitor type is initially selected.
             *
             * To simulate an IBM PC containing both an MDA and CGA (ie, a "dual display" system), the machine
             * configuration simply defines two video components, one with model "mda" and the other with model
             * "cga", resulting in two displays; setting a specific model forces each instance of this component
             * to register only those I/O ports belonging to that model.
             *
             * In a single-display system, dynamically switching cards (ie, between MDA and CGA) creates some
             * visual challenges.  For one, the MDA prefers a native screen size of 720x350, as it supports only
             * one video mode, 80x25, with a 9x14 cell size.  The CGA, on the other hand, has an 8x8 cell size,
             * so when using an MDA-size screen, an 80x25 CGA screen will end up with 40-pixel borders on the
             * left and right, and 75-pixel borders on the top and bottom.  The result is a rather tiny CGA font
             * surrounded by lots of wasted space, so it's best to turn on font scaling (see the "scale" property)
             * and go with a larger screen size of, say, 960x400 (50% larger in width, 100% larger in height).
             *
             * I've also added support for font-doubling in createFont().  We use the 8x8 font for 80-column
             * modes and the "doubled" 16x16 font for 40-column modes OR whenever the screen is large enough
             * to use the 16x16 font, since font rendering without scaling provides the sharpest results.
             * In fact, there's special logic in setDimensions() to ignore fScaleFont in certain cases (eg,
             * 40-column modes, to improve sharpness and avoid stretching the font beyond readability).
             *
             * Graphics modes, on the other hand, are always scaled to the screen size.  Pixels are captured
             * in an off-screen buffer, which is then drawn to match the size of the virtual screen.
             *
             * TODO: Whenever there are borders, they should be filled with the CGA's overscan colors.  However,
             * in the case of graphics modes (and text modes whenever font scaling is enabled), we don't reserve
             * any space for borders, so if borders are important, explicit border support will be required.
             */
            
            /*
             * EGA Support
             *
             * EGA support piggy-backs on the existing MDA/CGA support.  All the existing MDA/CGA port handlers
             * now refer to either cardMono or cardColor (instead of directly to cardMDA or cardCGA), enabling
             * the handlers to be redirected to cardMDA, cardCGA or cardEGA as appropriate.
             *
             * Note that an MDA card supported only a Monochrome Display and a CGA card supported only a Color
             * Display (well, OK, *or* a TV monitor, which we don't currently support), but the EGA is much
             * more flexible: the Enhanced Color Display was the preferred display, but the EGA also supported
             * older displays; a Color Display on EGA wasn't ideal (same low resolutions but with more colors),
             * but the EGA also brought high-resolution graphics to Monochrome displays, which was nice.  Anyway,
             * while all those EGA/monitor combinations will be nice to support, our virtual display support
             * will focus initially on the Enhanced Color Display.
             *
             * TODO: Add support for jumpers P1 and P3 (see EGA TechRef p.85).  P1 selects either 5-color-output
             * for a CGA monitor or 6-color-output for an EGA monitor; we would presumably use this only to
             * control certain assumptions about the virtual display's capabilities (ie, Color Display vs. Enhanced
             * Color Display).  P3 can switch all the I/O ports from 0x3nn to 0x2nn; the default is 0x3nn, and
             * that's the only port range the EGA ROM supports as well.
             */
            
            /*
             * VGA Support
             *
             * More will be said here about PCjs VGA support later.  But first, a word from IBM: "Video Graphics Array [VGA]
             * Programming Considerations":
             *
             *      Certain internal timings must be guaranteed by the user, in order to have the CRTC perform properly.
             *      This is due to the physical design of the chip. These timings can be guaranteed by ensuring that the
             *      rules listed below are followed when programming the CRTC.
             *
             *           1. The Horizontal Total [HTOTAL] register (R0) must be greater than or equal to a value of
             *              25 decimal.
             *
             *           2. The minimum positive pulse width of the HSYNC output must be four character clock units.
             *
             *           3. Register R5, Horizontal Sync End [HRETRACE_END], must be programmed such that the HSYNC
             *              output goes to a logic 0 a minimum of one character clock time before the 'horizontal display enable'
             *              signal goes to a logical 1.
             *
             *           4. Register R16, Vsync Start [VRETRACE_START], must be a minimum of one horizontal scan line greater
             *              than register R18 [VDISP_END].  Register R18 defines where the 'vertical display enable' signal ends.
             *
             *     When bit 5 of the Attribute Mode Control register equals 1, a successful line compare (see Line Compare
             *     [LINE_COMPARE] register) in the CRT Controller forces the output of the PEL Panning register to 0's until Vsync
             *     occurs.  When Vsync occurs, the output returns to the programmed value.  This allows the portion of the screen
             *     indicated by the Line Compare register to be operated on by the PEL Panning register.
             *
             *     A write to the Character Map Select register becomes valid on the next whole character line.  No deformed
             *     characters are displayed by changing character generators in the middle of a character scan line.
             *
             *     For 256-color 320 x 200 graphics mode hex 13, the attribute controller is configured so that the 8-bit attribute
             *     stored in video memory for each PEL becomes the 8-bit address (P0 - P7) into the integrated DAC.  The user should
             *     not modify the contents of the internal Palette registers when using this mode.
             *
             *     The following sequence should be followed when accessing any of the Attribute Data registers pointed to by the
             *     Attribute Index register:
             *
             *           1. Disable interrupts
             *           2. Reset read/write flip/flop
             *           3. Write to Index register
             *           4. Read from or write to a data register
             *           5. Enable interrupts
             *
             *      The Color Select register in the Attribute Controller section may be used to rapidly switch between sets of colors
             *      in the video DAC.  When bit 7 of the Attribute Mode Control register equals 0, the 8-bit color value presented to the
             *      video DAC is composed of 6 bits from the internal Palette registers and bits 2 and 3 from the Color Select register.
             *      When bit 7 of the Attribute Mode Control register equals 1, the 8-bit color value presented to the video DAC is
             *      composed of the lower four bits from the internal Palette registers and the four bits in the Color Select register.
             *      By changing the value in the Color Select register, software rapidly switches between sets of colors in the video DAC.
             *      Note that BIOS does not support multiple sets of colors in the video DAC.  The user must load these colors if this
             *      function is to be used.  Also see the Attribute Controller block diagram on page 4-26.  Note that the above discussion
             *      applies to all modes except 256 Color Graphics mode.  In this mode the Color Select register is not used to switch
             *      between sets of colors.
             *
             *      An application that saves the "Video State" must store the 4 bytes of information contained in the system microprocessor
             *      latches in the graphics controller subsection. These latches are loaded with 32 bits from video memory (8 bits per map)
             *      each time the system microprocessor does a read from video memory.  The application needs to:
             *
             *           1. Use write mode 1 to write the values in the latches to a location in video memory that is not part of
             *              the display buffer.  The last location in the address range is a good choice.
             *
             *           2. Save the values of the latches by reading them back from video memory.
             *
             *           Note: If in a chain 4 or odd/even mode, it will be necessary to reconfigure the memory organization as four
             *           sequential maps prior to performing the sequence above.  BIOS provides support for completely saving and
             *           restoring video state.  See the IBM Personal System/2 and Personal Computer BIOS Interface Technical Reference
             *           for more information.
             *
             *      The description of the Horizontal PEL Panning register includes a figure showing the number of PELs shifted left
             *      for each valid value of the PEL Panning register and each valid video mode.  Further panning beyond that shown in
             *      the figure may be accomplished by changing the start address in the CRT Controller registers, Start Address High
             *      and Start Address Low.  The sequence involved in further panning would be as follows:
             *
             *           1. Use the PEL Panning register to shift the maximum number of bits to the left. See Figure 4-103 on page
             *              4-106 for the appropriate values.
             *
             *           2. Increment the start address.
             *
             *           3. If you are not using Modes 0 + , 1 + , 2 + , 3 + ,7, or7 + , set the PEL Panning register to 0.  If you
             *              are using these modes, set the PEL Panning register to 8.  The screen will now be shifted one PEL left
             *              of the position it was in at the end of step 1.  Step 1 through Step 3 may be repeated as desired.
             *
             *      The Line Compare register (CRTC register hex 18) should be programmed with even values in 200 line modes when
             *      used in split screen applications that scroll a second screen on top of a first screen.  This is a requirement
             *      imposed by the scan doubling logic in the CRTC.
             *
             *      If the Cursor Start register (CRTC register hex 0A) is programmed with a value greater than that in the Cursor End
             *      register (CRTC register hex 0B), then no cursor is displayed.  A split cursor is not possible.
             *
             *      In 8-dot character modes, the underline attribute produces a solid line across adjacent characters, as in the IBM
             *      Color/Graphics Monitor Adapter, Monochrome Display Adapter and the Enhanced Graphics Adapter.  In 9-dot modes, the
             *      underline across adjacent characters is dashed, as in the IBM 327X display terminals.  In 9-dot modes, the line
             *      graphics characters (C0 - DF character codes) have solid underlines.
             *
             *      For compatibility with the IBM Enhanced Graphics Adapter (EGA), the internal VGA palette is programmed the same
             *      as the EGA.  The video DAC is programmed by BIOS so that the compatible values in the internal VGA palette produce
             *      a color compatible with what was produced by EGA.  Mode hex 13 (256 colors) is programmed so that the first 16
             *      locations in the DAC produce compatible colors.
             *
             *      Summing: When BIOS is used to load the video DAC palette for a color mode and a monochrome display is connected
             *      to the system unit, the color palette is changed.  The colors are summed to produce shades of gray that allow
             *      color applications to produce a readable screen.
             *
             *      There are 4 bits that should not be modified unless the sequencer is reset by setting bit 1 of the Reset register
             *      to 0.  These bits are:
             *
             *           • Bit 3, or bit 0 of the Clocking Mode register
             *           • Bit 3, or bit 2 of the Miscellaneous Output register
             */
            
            /*
             * Supported Cards
             *
             * Note that we choose IDs that match the default font ID for each card as well, for convenience.
             */
            Video.CARD = {
                MDA: 1,
                CGA: 3,
                EGA: 5,
                VGA: 7,
                NAMES: {
                    "mda": 1,
                    "cga": 3,
                    "ega": 5,
                    "vga": 7
                }
            };
            
            /*
             * Supported Modes
             *
             * Although this component is designed to be a video hardware emulation, not a BIOS simulation, we DO
             * look for changes to the hardware state that correspond to standard BIOS mode settings, so our internal
             * mode setting will normally match the current BIOS mode setting; however, this a debugging convenience,
             * not an attempt to monitor or emulate the BIOS.
             *
             * We do have some BIOS awareness (eg, when loading ROM-based fonts, and some special code to ensure all
             * the BIOS diagnostics pass), but for the most part, we treat the BIOS like any other application code.
             *
             * As we expand support to include more programmable cards like the EGA, it becomes quite easy for the card
             * to enter a "mode" that has no BIOS counterpart (eg, non-standard combinations of video buffer address,
             * memory access modes, fonts, display regions, etc).  Our hardware emulation routines will cope with those
             * situations as best they can (and when they don't, it should be considered a bug if some application is
             * broken as a result), but realistically, our hardware emulation is never likely to be 100% accurate.
             */
            Video.MODE = {
                CGA_40X25_BW:       0,
                CGA_40X25:          1,
                CGA_80X25_BW:       2,
                CGA_80X25:          3,
                CGA_320X200:        4,
                CGA_320X200_BW:     5,
                CGA_640X200:        6,
                MDA_80X25:          7,
                EGA_320X200:        0x0D,   // mapped at A000:0000, color, 4bpp, planar
                EGA_640X200:        0x0E,   // mapped at A000:0000, color, 4bpp, planar
                EGA_640X350_MONO:   0x0F,   // mapped at A000:0000, mono,  2bpp, planar
                EGA_640X350:        0x10,   // mapped at A000:0000, color, 4bpp, planar
                VGA_640X480_MONO:   0x11,   // mapped at A000:0000, mono,  2bpp, planar
                VGA_640X480:        0x12,   // mapped at A000:0000, color, 4bpp, planar
                VGA_320X200:        0x13,   // mapped at A000:0000, color, 8bpp, linear
                VGA_320X240:        0x78,   // mapped at A000:0000, color, 8bpp, planar ("Mode X")
                VGA_320X400:        0x7A,   // mapped at A000:0000, color, 8bpp, planar
                UNKNOWN:            0xFF
            };
            
            /*
             * Supported Monitors
             *
             * The MDA monitor displays 350 lines of vertical resolution, 720 lines of horizontal resolution, and refreshes
             * at ~50Hz.  The CGA monitor displays 200 lines vertically, 640 horizontally, and refreshes at ~60Hz.
             *
             * Based on actual MDA timings (see http://diylab.atwebpages.com/pressureDev.htm), the total horizontal
             * period (drawing a line and retracing) is ~54.25uSec (1000000uSec / 18432) and the horizontal retrace interval
             * is about 15% of that, or ~8.14uSec.  Vertical sync occurs once every 370 horizontal periods.  Of those 370,
             * only 354 represent actively drawn lines (and of those, only 350 are visible); the remaining 16 horizontal
             * periods, or 4% of the 370 total, represent the vertical retrace interval.
             *
             * I don't have similar numbers for the CGA or EGA, so for now, I assume similar percentages; ie, 15% of
             * the horizontal period will represent horizontal retrace, and 4% of the vertical pixel maximum (262) will
             * represent vertical retrace.  However, 24% of the CGA's 262 vertical maximum represents non-visible lines,
             * whereas only 5% of the MDA's 370 maximum represents non-visible lines; is there really that much "overscan"
             * on the CGA?
             *
             * For each monitor type, there's a Video.monitorSpecs object that describes the horizontal and vertical
             * timings, along with my assumptions about the percentage of time that drawing is "active" within those periods,
             * and then based on the selected monitor type, I compute the number of CPU cycles that each period lasts,
             * as well as the number of CPU cycles that drawing lasts within each period, so that the horizontal and vertical
             * retrace status flags can be quickly calculated.
             *
             * For reference, here are some important numbers to know (from https://github.com/reenigne/reenigne/blob/master/8088/cga/register_values.txt):
             *
             *              CGA          MDA
             *  Pixel clock 14.318 MHz   16.257 MHz (aka "maximum video bandwidth", as IBM Tech Refs sometimes call it)
             *  Horizontal  15.700 KHz   18.432 KHz (aka "horizontal drive", as IBM Tech Refs sometimes call it)
             *  Vertical    59.923 Hz    49.816 Hz
             *  Usage       53.69%       77.22%
             *  H pix       912 = 114*8  882 = 98*9
             *  V pix       262          370
             *  Dots        238944       326340
             */
            
            /**
             * @class MonitorSpecs
             * @property {number} nHorzPeriodsPerSec
             * @property {number} nHorzPeriodsPerFrame
             * @property {number} percentHorzActive
             * @property {number} percentVertActive
             *
             * From these monitor specs, we calculate the following values for a given Card:
             *
             *      nCyclesPerSecond = cpu.getCyclesPerSecond();      // eg, 4772727
             *      nCyclesHorzPeriod = (nCyclesPerSecond / monitorSpecs.nHorzPeriodsPerSec) | 0;
             *      nCyclesHorzActive = (nCyclesHorzPeriod * monitorSpecs.percentHorzActive / 100) | 0;
             *      nCyclesVertPeriod = nCyclesHorzPeriod * monitorSpecs.nHorzPeriodsPerFrame;
             *      nCyclesVertActive = (nCyclesVertPeriod * monitorSpecs.percentVertActive / 100) | 0;
             */
            
            /**
             * @type {Object}
             */
            Video.monitorSpecs = {};
            
            /**
             * NOTE: Based on trial-and-error, 208 is the magic number of horizontal syncs per vertical sync that
             * yielded the necessary number of "horizontal enables" (200 or 0xC8) in the EGA ROM BIOS at C000:03D0.
             *
             * @type {{MonitorSpecs}}
             */
            Video.monitorSpecs[ChipSet.MONITOR.COLOR] = {
                nHorzPeriodsPerSec: 15700,
                nHorzPeriodsPerFrame: 208,
                percentHorzActive: 85,
                percentVertActive: 96
            };
            
            /**
             * NOTE: Based on trial-and-error, 364 is the magic number of horizontal syncs per vertical sync that
             * yielded the necessary number of "horizontal enables" (350 or 0x15E) in the EGA ROM BIOS at C000:03D0.
             *
             * @type {{MonitorSpecs}}
             */
            Video.monitorSpecs[ChipSet.MONITOR.MONO] = {
                nHorzPeriodsPerSec: 18432,
                nHorzPeriodsPerFrame: 364,
                percentHorzActive: 85,
                percentVertActive: 96
            };
            
            /**
             * @type {{MonitorSpecs}}
             */
            Video.monitorSpecs[ChipSet.MONITOR.EGACOLOR] = {
                nHorzPeriodsPerSec: 21850,
                nHorzPeriodsPerFrame: 364,
                percentHorzActive: 85,
                percentVertActive: 96
            };
            
            /**
             * NOTE: As above, the following values are based purely on trial-and-error, to yield results that fall
             * squarely within the bounds of the IBM VGA ROM timing requirements; see the IBM VGA ROM code at C000:024A.
             *
             * @type {{MonitorSpecs}}
             */
            Video.monitorSpecs[ChipSet.MONITOR.VGACOLOR] = {
                nHorzPeriodsPerSec: 16700,
                nHorzPeriodsPerFrame: 480,
                percentHorzActive: 85,
                percentVertActive: 83
            };
            
            /*
             * EGA Miscellaneous ports and SW1-Sw4
             *
             * The Card.MISC.CLOCK_SELECT bits determine which of the EGA board's 4 configuration switches are
             * returned via Card.STATUS0.SWSENSE (when SWSENSE is zero, the switch is closed):
             *
             *      0xC: return SW1
             *      0x8: return SW2
             *      0x4: return SW3
             *      0x0: return SW4
             *
             * These 4 bits are also copied to the byte at 40:88h by the EGA BIOS, where bit 0 is SW1, bit 1 is SW2,
             * bit 2 is SW3 and bit 3 is SW4.  Our switch settings come from bEGASwitches, which in turn comes from
             * sSwitches, which in turn comes from the "switches" property passed to the Video component, if any.
             *
             * As usual, the switch settings are reversed in both direction and sense from the switch settings; the
             * good news, however, is that we can use the parseSwitches() method in the ChipSet component to parse them.
             *
             * The set of valid EGA switch values, after conversion, is stored in the table below.  For each value,
             * there is an array that defines the corresponding monitor type(s) for the EGA adapter and any secondary
             * adapter.  The third value is a boolean indicating whether the EGA is the primary adapter.
             */
            Video.aEGAMonitorSwitches = {
                0x06: [ChipSet.MONITOR.TV,           ChipSet.MONITOR.MONO,  true],  // "1001"
                0x07: [ChipSet.MONITOR.COLOR,        ChipSet.MONITOR.MONO,  true],  // "0001"
                0x08: [ChipSet.MONITOR.EGAEMULATION, ChipSet.MONITOR.MONO,  true],  // "1110"
                0x09: [ChipSet.MONITOR.EGACOLOR,     ChipSet.MONITOR.MONO,  true],  // "0110" [our default; see bEGASwitches below]
                0x0a: [ChipSet.MONITOR.MONO,         ChipSet.MONITOR.TV,    true],  // "1010"
                0x0b: [ChipSet.MONITOR.MONO,         ChipSet.MONITOR.COLOR, true],  // "0010"
                0x00: [ChipSet.MONITOR.TV,           ChipSet.MONITOR.MONO,  false], // "1111"
                0x01: [ChipSet.MONITOR.COLOR,        ChipSet.MONITOR.MONO,  false], // "0111"
                0x02: [ChipSet.MONITOR.EGAEMULATION, ChipSet.MONITOR.MONO,  false], // "1011"
                0x03: [ChipSet.MONITOR.EGACOLOR,     ChipSet.MONITOR.MONO,  false], // "0011"
                0x04: [ChipSet.MONITOR.MONO,         ChipSet.MONITOR.TV,    false], // "1101"
                0x05: [ChipSet.MONITOR.MONO,         ChipSet.MONITOR.COLOR, false]  // "0101"
            };
            
            /**
             * @class Font
             * @property {number} cxCell
             * @property {number} cyCell
             * @property {Array} aCSSColors
             * @property {Array} aRGBColors
             * @property {Array} aColorMap
             * @property {Array} aCanvas
             */
            
            /*
             * Supported Fonts
             *
             * Once we've finished loading the standard 8K font file, aFonts[] should contain one or more of the
             * entries listed below.  For the standard MDA/CGA font ROM, the first (MDA) font resides in the first 4Kb,
             * and the second and third (CGA) fonts reside in the two 2K halves of the second 4Kb.
             *
             * It may seem odd that the cell size for FONT_CGAD is *larger* than the cell size for FONT_CGA,
             * since 40-column mode is actually lower resolution, but since we don't shrink the screen canvas when we
             * shrink the mode, the characters must be drawn larger, and they look better if we don't have to scale them.
             *
             * From the IBM EGA Manual (p.5):
             *
             *     "In alphanumeric modes, characters are formed from one of two ROM (Read Only Memory) character
             *      generators on the adapter. One character generator defines 7x9 characters in a 9x14 character box.
             *      For Enhanced Color Display support, the 9x14 character set is modified to provide an 8x14 character set.
             *      The second character generator defines 7x7 characters in an 8x8 character box. These generators contain
             *      dot patterns for 256 different characters. The character sets are identical to those provided by the
             *      IBM Monochrome Display Adapter and the IBM Color/Graphics Monitor Adapter."
             */
            Video.FONT = {
                MDA:    1,          // 9x14 monochrome font
                MDAD:   2,          // 18x28 monochrome font (this is the 9x14 font doubled)
                CGA:    3,          // 8x8 color font
                CGAD:   6,          // 16x16 color font (this is the 8x8 CGA font doubled)
                EGA:    5,          // 8x14 color font
                EGAD:   10,         // 16x28 color font (this is the 8x14 EGA font doubled)
                VGA:    7,          // 8x16 color font
                VGAD:   14          // 16x32 color font (this is the 8x16 VGA font doubled)
            };
            
            /*
             * For each video mode, we need to know the following pieces of information:
             *
             *      0: # of columns (nCols)
             *      1: # of rows (nRows)
             *      2: # cells per word (nCellsPerWord: # of characters or pixels per word)
             *      3: # bytes of visible screen padding, if any (used for CGA graphics modes only)
             *      4: font ID (nFont: undefined if graphics mode)
             *
             * For MDA and CGA modes, a "word" of memory is 16 bits of CPU-addressable data, so by calculating
             * ([0] * [1]) / [2], we obtain the number of words that mode actively displays; for example, the
             * amount of visible memory used by mode 0x04 is (320 * 200) / 4, or 16000.
             *
             * However, for EGA and VGA graphics modes, a "word" of memory is a single element in the video buffer
             * containing 32 bits of pixel data.
             *
             * The MODES.CGA_40X25 modes specify FONT_CGA instead of FONT_CGAD because we don't automatically
             * load the FONT_CGAD unless the screen is large enough to accommodate it (see the fDoubleFont calculation).
             *
             * To compensate, we have code in setDimensions() that automatically switches to FONT_CGAD if it's loaded AND
             * the cell size warrants the larger font.  We could hard-code FONT_CGAD here, but then we'd always load it,
             * and it might not always be the best fit.
             */
            Video.aModeParms = [];                                                                              // Mode
            Video.aModeParms[Video.MODE.CGA_40X25]          = [ 40,  25,  1,   0, Video.FONT.CGA];              // 0x00
            Video.aModeParms[Video.MODE.CGA_80X25]          = [ 80,  25,  1,   0, Video.FONT.CGA];              // 0x02
            Video.aModeParms[Video.MODE.CGA_320X200]        = [320, 200,  8, 192];                              // 0x04
            Video.aModeParms[Video.MODE.CGA_640X200]        = [640, 200, 16, 192];                              // 0x06
            Video.aModeParms[Video.MODE.MDA_80X25]          = [ 80,  25,  1,   0, Video.FONT.MDA];              // 0x07
            Video.aModeParms[Video.MODE.EGA_320X200]        = [320, 200,  8];                                   // 0x0D
            Video.aModeParms[Video.MODE.EGA_640X200]        = [640, 200,  8];                                   // 0x0E
            Video.aModeParms[Video.MODE.EGA_640X350_MONO]   = [640, 350,  8];                                   // 0x0F
            Video.aModeParms[Video.MODE.EGA_640X350]        = [640, 350,  8];                                   // 0x10
            Video.aModeParms[Video.MODE.VGA_640X480_MONO]   = [640, 480,  8];                                   // 0x11
            Video.aModeParms[Video.MODE.VGA_640X480]        = [640, 480,  8];                                   // 0x12
            Video.aModeParms[Video.MODE.VGA_320X200]        = [320, 200,  1];                                   // 0x13
            Video.aModeParms[Video.MODE.VGA_320X240]        = [320, 240,  4];                                   // 0x78
            Video.aModeParms[Video.MODE.VGA_320X400]        = [320, 400,  4];                                   // 0x7A
            
            Video.aModeParms[Video.MODE.CGA_40X25_BW]       = Video.aModeParms[Video.MODE.CGA_40X25];           // 0x01
            Video.aModeParms[Video.MODE.CGA_80X25_BW]       = Video.aModeParms[Video.MODE.CGA_80X25];           // 0x03
            Video.aModeParms[Video.MODE.CGA_320X200_BW]     = Video.aModeParms[Video.MODE.CGA_320X200];         // 0x05
            
            /*
             * MDA attribute byte definitions
             *
             * For MDA, only the following group of ATTR definitions are supported; any FGND/BGND value combinations
             * outside this group will be treated as "normal" (ATTR_FGND_WHITE | ATTR_BGND_BLACK).
             *
             * NOTE: Assuming MDA.MODE.BLINK_ENABLE is set (which the ROM BIOS sets by default), ATTR_BGND_BLINK will
             * cause the *foreground* element of the cell to blink, even though it is part of the *background* attribute bits.
             *
             * Regarding blink rate, characters are supposed to blink every 16 vertical frames, which amounts to .26667 blinks
             * per second, assuming a 60Hz vertical refresh rate.  So roughly every 267ms, we need to take care of any blinking
             * characters.  updateScreen() maintains a global count (cBlinkVisible) of blinking characters, to simplify the
             * decision of when to redraw the screen.
             */
            Video.ATTRS = {};
            Video.ATTRS.FGND_BLACK  = 0x00;
            Video.ATTRS.FGND_ULINE  = 0x01;
            Video.ATTRS.FGND_WHITE  = 0x07;
            Video.ATTRS.FGND_BRIGHT = 0x08;
            Video.ATTRS.BGND_BLACK  = 0x00;
            Video.ATTRS.BGND_WHITE  = 0x70;
            Video.ATTRS.BGND_BLINK  = 0x80;
            Video.ATTRS.BGND_BRIGHT = 0x80;
            Video.ATTRS.DRAW_FGND   = 0x100;        // this is an internal attribute bit, indicating the foreground should be drawn
            Video.ATTRS.DRAW_CURSOR = 0x200;        // this is an internal attribute bit, indicating when the cursor should be drawn
            
            /*
             * Here's a "cheat sheet" for attribute byte combinations that the IBM MDA could have supported.  The original (Aug 1981)
             * IBM Tech Ref is very terse and implies that only those marked with * are actually supported.
             *
             *     *0x00: non-display                       ATTR_FGND_BLACK |                    ATTR_BGND_BLACK
             *     *0x01: underline                         ATTR_FGND_ULINE |                    ATTR_BGND_BLACK
             *     *0x07: normal (white on black)           ATTR_FGND_WHITE |                    ATTR_BGND_BLACK
             *    **0x09: bright underline                  ATTR_FGND_ULINE | ATTR_FGND_BRIGHT | ATTR_BGND_BLACK
             *    **0x0F: bold (bright white on black)      ATTR_FGND_WHITE | ATTR_FGND_BRIGHT | ATTR_BGND_BLACK
             *     *0x70: reverse (black on white)          ATTR_FGND_BLACK |                  | ATTR_BGND_WHITE
             *      0x81: blinking underline                ATTR_FGND_ULINE |                  | ATTR_BGND_BLINK (or dim background if blink disabled)
             *    **0x87: blinking normal                   ATTR_FGND_WHITE |                  | ATTR_BGND_BLINK (or dim background if blink disabled)
             *      0x89: blinking bright underline         ATTR_FGND_ULINE | ATTR_FGND_BRIGHT | ATTR_BGND_BLINK (or dim background if blink disabled)
             *    **0x8F: blinking bold                     ATTR_FGND_WHITE | ATTR_FGND_BRIGHT | ATTR_BGND_BLINK (or dim background if blink disabled)
             *    **0xF0: blinking reverse                  ATTR_FGND_WHITE | ATTR_FGND_BRIGHT | ATTR_BGND_BLINK (or bright background if blink disabled)
             *
             * Unsupported attributes reportedly display as "normal" (ATTR_FGND_WHITE | ATTR_BGND_BLACK).  However, precisely which
             * attributes are unsupported on the MDA varies depending on the source.  Some sources (eg, the IBM Tech Ref) imply that
             * only those marked by * are supported, while others (eg, some--but not all--Peter Norton guides) include those marked
             * by **, and still others include ALL the combinations listed above.
             *
             * Furthermore, according to http://www.seasip.info/VintagePC/mda.html:
             *
             *      Attributes 0x00, 0x08, 0x80 and 0x88 display as black space;
             *      Attribute 0x78 displays as dark green on green; depending on the monitor, there may be a green "halo" where the dark and bright bits meet;
             *      Attribute 0xF0 displays as a blinking version of 0x70 if blink enabled, and black on bright green otherwise;
             *      Attribute 0xF8 displays as a blinking version of 0x78 if blink enabled, and as dark green on bright green otherwise.
             *
             * However, I'm rather skeptical about supporting 0x78 and 0xF8, until I see some evidence that "bright black" actually
             * produced dark green on IBM equipment; it also doesn't sound like a combination many people would have used.  I'll probably
             * treat all of 0x08, 0x80 and 0x88 the same as 0x00, only because it seems logical (they're all "black on black" combinations
             * with only BRIGHT and/or BLINK bits set). Beyond that, I'll likely treat any other combination not listed in the above cheat
             * sheet as "normal".
             *
             * All the discrepancies/disagreements I've found are probably due in part to the proliferation of IBM and non-IBM MDA
             * cards, combined with IBM and non-IBM monochrome monitors, and people assuming that their non-IBM card and/or monitor
             * behaved exactly like the original IBM equipment, which probably wasn't true in all cases.
             *
             * I would like to limit my MDA display support to EXACTLY everything that the IBM MDA supported and nothing more, but
             * since there will be combinations that will logically "fall out" unless I specifically exclude them, it's very likely
             * this implementation will end up being a superset.
             */
            
            /*
             * CGA attribute byte definitions; these simply extend the set of MDA attributes, with the exception of ATTR_FNGD_ULINE,
             * which the CGA can treat only as ATTR_FGND_BLUE.
             */
            Video.ATTRS.FGND_BLUE       = 0x01;
            Video.ATTRS.FGND_GREEN      = 0x02;
            Video.ATTRS.FGND_CYAN       = 0x03;
            Video.ATTRS.FGND_RED        = 0x04;
            Video.ATTRS.FGND_MAGENTA    = 0x05;
            Video.ATTRS.FGND_BROWN      = 0x06;
            
            Video.ATTRS.BGND_BLUE       = 0x10;
            Video.ATTRS.BGND_GREEN      = 0x20;
            Video.ATTRS.BGND_CYAN       = 0x30;
            Video.ATTRS.BGND_RED        = 0x40;
            Video.ATTRS.BGND_MAGENTA    = 0x50;
            Video.ATTRS.BGND_BROWN      = 0x60;
            
            /*
             * For the MDA, the number of unique "colors" is 5, based on the following supported FGND attribute values:
             *
             *      0x0: black font (attribute value 0x8 is mapped to 0x0)
             *      0x1: green font with underline
             *      0x7: green font without underline (attribute values 0x2-0x6 are mapped to 0x7)
             *      0x9: bright green font with underline
             *      0xf: bright green font without underline (attribute values 0xa-0xe are mapped to 0xf)
             *
             * I'm still not sure about 0x8 (dark green?); for now, I'm mapping it to 0x0, but it may become a 6th supported color.
             *
             * MDA attributes form an index into aMDAColorMap, which in turn provides an index (0-4) into aMDAColors.
             */
            Video.aMDAColors = [
                [0x00, 0x00, 0x00, 0xff],
                [0x7f, 0xc0, 0x7f, 0xff],
                [0x7f, 0xc0, 0x7f, 0xff],
                [0x7f, 0xff, 0x7f, 0xff],
                [0x7f, 0xff, 0x7f, 0xff]
            ];
            Video.aMDAColorMap = [0x0, 0x1, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x0, 0x3, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4];
            
            Video.aCGAColors = [
                [0x00, 0x00, 0x00, 0xff],   // 0x00: ATTR_FGND_BLACK
                [0x00, 0x00, 0xaa, 0xff],   // 0x01: ATTR_FGND_BLUE
                [0x00, 0xaa, 0x00, 0xff],   // 0x02: ATTR_FGND_GREEN
                [0x00, 0xaa, 0xaa, 0xff],   // 0x03: ATTR_FGND_CYAN
                [0xaa, 0x00, 0x00, 0xff],   // 0x04: ATTR_FGND_RED
                [0xaa, 0x00, 0xaa, 0xff],   // 0x05: ATTR_FGND_MAGENTA
                [0xaa, 0x55, 0x00, 0xff],   // 0x06: ATTR_FGND_BROWN
                [0xaa, 0xaa, 0xaa, 0xff],   // 0x07: ATTR_FGND_WHITE                      (aka light gray)
                [0x55, 0x55, 0x55, 0xff],   // 0x08: ATTR_FGND_BLACK   | ATTR_FGND_BRIGHT (aka gray)
                [0x55, 0x55, 0xff, 0xff],   // 0x09: ATTR_FGND_BLUE    | ATTR_FGND_BRIGHT
                [0x55, 0xff, 0x55, 0xff],   // 0x0A: ATTR_FGND_GREEN   | ATTR_FGND_BRIGHT
                [0x55, 0xff, 0xff, 0xff],   // 0x0B: ATTR_FGND_CYAN    | ATTR_FGND_BRIGHT
                [0xff, 0x55, 0x55, 0xff],   // 0x0C: ATTR_FGND_RED     | ATTR_FGND_BRIGHT
                [0xff, 0x55, 0xff, 0xff],   // 0x0D: ATTR_FGND_MAGENTA | ATTR_FGND_BRIGHT
                [0xff, 0xff, 0x55, 0xff],   // 0x0E: ATTR_FGND_BROWN   | ATTR_FGND_BRIGHT (aka yellow)
                [0xff, 0xff, 0xff, 0xff]    // 0x0F: ATTR_FGND_WHITE   | ATTR_FGND_BRIGHT (aka white)
            ];
            
            Video.aCGAColorSet1 = [Video.ATTRS.FGND_GREEN, Video.ATTRS.FGND_RED,     Video.ATTRS.FGND_BROWN];
            Video.aCGAColorSet2 = [Video.ATTRS.FGND_CYAN,  Video.ATTRS.FGND_MAGENTA, Video.ATTRS.FGND_WHITE];
            
            /*
             * Here is the EGA BIOS default ATC palette register set for color text modes, from which getCardColors()
             * builds a default RGB array, similar to aCGAColors above.
             */
            Video.aEGAPalDef = [0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F];
            
            Video.aEGAByteToDW = [
                  0x00000000,   0x000000ff,   0x0000ff00,   0x0000ffff,
                  0x00ff0000,   0x00ff00ff,   0x00ffff00,   0x00ffffff,
                  0xff000000|0, 0xff0000ff|0, 0xff00ff00|0, 0xff00ffff|0,
                  0xffff0000|0, 0xffff00ff|0, 0xffffff00|0, 0xffffffff|0
            ];
            
            Video.aEGADWToByte = [];
            Video.aEGADWToByte[0x00000000]   = 0x0;
            Video.aEGADWToByte[0x00000080]   = 0x1;
            Video.aEGADWToByte[0x00008000]   = 0x2;
            Video.aEGADWToByte[0x00008080]   = 0x3;
            Video.aEGADWToByte[0x00800000]   = 0x4;
            Video.aEGADWToByte[0x00800080]   = 0x5;
            Video.aEGADWToByte[0x00808000]   = 0x6;
            Video.aEGADWToByte[0x00808080]   = 0x7;
            Video.aEGADWToByte[0x80000000|0] = 0x8;
            Video.aEGADWToByte[0x80000080|0] = 0x9;
            Video.aEGADWToByte[0x80008000|0] = 0xa;
            Video.aEGADWToByte[0x80008080|0] = 0xb;
            Video.aEGADWToByte[0x80800000|0] = 0xc;
            Video.aEGADWToByte[0x80800080|0] = 0xd;
            Video.aEGADWToByte[0x80808000|0] = 0xe;
            Video.aEGADWToByte[0x80808080|0] = 0xf;
            
            /**
             * Card(video, iCard, data, cbMemory)
             *
             * Creates an object representing an initial video card state;
             * can also restore a video card from state data created by saveCard().
             *
             * WARNING: Since Card objects are low-level objects that have no UI requirements,
             * they do not inherit from the Component class, so you should only use class methods
             * of Component, such as Component.assert(), or methods of the parent (video) object.
             *
             * @constructor
             * @param {Video} [video]
             * @param {number} [iCard] (see Video.CARD.*)
             * @param {Array|null} [data]
             * @param {number} [cbMemory] is specified if the card must allocate its own memory buffer
             */
            function Card(video, iCard, data, cbMemory)
            {
                /*
                 * If a card was originally not present (eg, EGA), then the state will be empty,
                 * so we need to detect that case and continue indicating that the card is not present.
                 */
                if (iCard !== undefined && (!data || data.length)) {
            
                    this.video = video;
            
                    var specs = Video.cardSpecs[iCard];
                    var nMonitorType = video.nMonitorType || specs[5];
            
                    if (!data || data.length < 6) {
                        data = [false, 0, null, null, 0, new Array(iCard < Video.CARD.EGA? Card.CRTC.TOTAL_REGS : Card.CRTC.EGA.TOTAL_REGS)];
                    }
            
                    /*
                     * If a Debugger is present, we want to stash a bit more info in each Card.
                     */
                    if (DEBUGGER) {
                        this.dbg = video.dbg;
                        this.type = specs[0];
                        this.port = specs[1];
                    }
            
                    this.nCard = iCard;
                    this.addrBuffer = specs[2];     // default (physical) video buffer address
                    this.sizeBuffer = specs[3];     // default video buffer length (this is the total size, not the current visible size; this.cbScreen is calculated on the fly to reflect the latter)
            
                    /*
                     * If no memory size is specified, then setMode() will use addMemory() to automatically add enough
                     * memory blocks to cover the video buffer specified above; otherwise, it instructs addMemory() to call
                     * getMemoryBuffer(), which will return a portion of the buffer (adwMemory) allocated below.  This allows
                     * a card like the EGA to move/resize its video buffer as needed, as well as giving it total control over
                     * the underlying memory.
                     */
                    this.cbMemory = cbMemory || specs[4];
            
                    /*
                     * All of our cardSpec video buffer sizes are based on the default text mode (eg, 4Kb for an MDA, 16Kb for
                     * a CGA), but for a card with 64Kb or more of memory (ie, any EGA card), the default text mode video buffer
                     * size should be dynamically recalculated as the smaller of: cbMemory divided by 4, or 32Kb.
                     */
                    if (this.cbMemory >= 0x10000 && this.addrBuffer >= 0xB0000) {
                        this.sizeBuffer = Math.min(this.cbMemory >> 2, 0x8000);
                    }
            
                    this.fActive    = data[0];
                    this.regMode    = data[1];      // see MDA.MODE* or CGA.MODE_* (use (MDA.MODE.HIRES | MDA.MODE.VIDEO_ENABLE | MDA.MODE.BLINK_ENABLE) if you want to test blinking immediately after the initial power-on reset)
                    this.regColor   = data[2];      // see CGA.COLOR.* (undefined on MDA)
                    this.regStatus  = data[3];      // see MDA.STATUS.* or CGA.STATUS.*
                    this.regCRTIndx = data[4] & 0xff;
                    this.regCRTPrev = (data[4] >> 8) & 0xff;
                    this.regCRTData = data[5];
                    this.nCRTCRegs  = Card.CRTC.TOTAL_REGS;
                    this.asCRTCRegs = DEBUGGER? Card.CRTC.REGS : [];
            
                    if (iCard >= Video.CARD.EGA) {
                        this.nCRTCRegs = Card.CRTC.EGA.TOTAL_REGS;
                        this.asCRTCRegs = DEBUGGER? Card.CRTC.EGA_REGS : [];
                        this.initEGA(data[6], nMonitorType);
                    }
            
                    var monitorSpecs = Video.monitorSpecs[nMonitorType] || Video.monitorSpecs[ChipSet.MONITOR.MONO];
            
                    var nCyclesPerSecond = video.cpu.getCyclesPerSecond();      // eg, 4772727
                    this.nCyclesHorzPeriod = (nCyclesPerSecond / monitorSpecs.nHorzPeriodsPerSec)|0;
                    this.nCyclesHorzActive = (this.nCyclesHorzPeriod * monitorSpecs.percentHorzActive / 100)|0;
                    this.nCyclesVertPeriod = (this.nCyclesHorzPeriod * monitorSpecs.nHorzPeriodsPerFrame)|0;
                    this.nCyclesVertActive = (this.nCyclesVertPeriod * monitorSpecs.percentVertActive / 100)|0;
                    this.nInitCycles = (data[7] || 0);
                }
            }
            
            /*
             * MDA Registers (ports 0x3B4, 0x3B5, 0x3B8, and 0x3BA)
             */
            Card.MDA = {
                CRTC: {
                    INDX: {
                        PORT:           0x3B4,      // NOTE: the low byte of this port address (0xB4) is mirrored at 40:0063 (0x0463)
                        MASK:           0x1F
                    },
                    DATA: {
                        PORT:           0x3B5
                    }
                },
                MODE: {
                    PORT:               0x3B8,      // Mode Select Register, aka CRT Control Port 1 (write-only); the BIOS mirrors this register at 40:0065 (0x0465)
                    HIRES:              0x01,
                    VIDEO_ENABLE:       0x08,
                    BLINK_ENABLE:       0x20
                },
                STATUS: {
                    PORT:               0x3BA,
                    HDRIVE:             0x01,
                    BWVIDEO:            0x08
                },
                /*
                 * TODO: Add support for parallel port(s) someday....
                 */
                PRT_DATA: {
                    PORT:               0x3BC
                },
                PRT_STATUS: {
                    PORT:               0x3BD
                },
                PRT_CTRL: {
                    PORT:               0x3BE
                }
            };
            
            /*
             * CGA Registers (ports 0x3D4, 0x3D5, 0x3D8, 0x3D9, and 0x3DA)
             */
            Card.CGA = {
                CRTC: {
                    INDX: {
                        PORT:           0x3D4,      // NOTE: the low byte of this port address (0xB4) is mirrored at 40:0063 (0x0463)
                        MASK:           0x1F
                    },
                    DATA: {
                        PORT:           0x3D5
                    }
                },
                MODE: {
                    PORT:               0x3D8,      // Mode Select Register (write-only); the BIOS mirrors this register at 40:0065 (0x0465)
                    _80X25:             0x01,
                    GRAPHIC_SEL:        0x02,
                    BW_SEL:             0x04,
                    VIDEO_ENABLE:       0x08,       // same as MDA.MODE.VIDEO_ENABLE
                    HIRES_BW:           0x10,
                    BLINK_ENABLE:       0x20        // same as MDA.MODE.BLINK_ENABLE
                },
                COLOR: {
                    PORT:               0x3D9,      // write-only
                    BORDER:             0x07,
                    BRIGHT:             0x08,
                    BGND_ALT:           0x10,       // alternate, intensified background colors in text mode
                    COLORSET2:          0x20        // selects aCGAColorSet2 colors for 320x200 graphics mode; aCGAColorSet1 otherwise
                },
                STATUS: {
                    PORT:               0x3DA,      // read-only; same for EGA (although the EGA calls this STATUS1, to distinguish it from STATUS0)
                    RETRACE:            0x01,
                    PEN_TRIGGER:        0x02,
                    PEN_ON:             0x04,
                    VRETRACE:           0x08        // when set, this indicates the CGA is performing a vertical retrace
                },
                /*
                 * TODO: Add support for light pen port(s) someday....
                 */
                CLEAR_PEN: {
                    PORT:               0x3DB
                },
                PRESET_PEN: {
                    PORT:               0x3DC
                }
            };
            
            /*
             * Common CRT hardware registers (ports 0x3B4/0x3B5 or 0x3D4/0x3D5)
             *
             * NOTE: In this implementation, because we have to make at least two of the registers readable (CURSOR_ADDR_HI and CURSOR_ADDR_LO),
             * we end up making ALL the registers readable, otherwise we would have to explicitly block any register marked write-only.  I don't
             * think making the CRT registers fully readable presents any serious compatibility issues, and it actually offers some benefits
             * (eg, improved debugging).
             *
             * However, some things are broken: the (readable) light pen registers on the EGA are overloaded as (writable) vertical retrace
             * registers, so the vertical retrace registers cannot actually be read that way.  I'm sure the VGA solved that problem, but I haven't
             * looked into it yet.
             */
            Card.CRTC = {
                HTOTAL:                 0x00,
                HDISP:                  0x01,
                HSYNC_POS:              0x02,
                HSYNC_WIDTH:            0x03,
                VTOTAL:                 0x04,
                VTOTAL_ADJ:             0x05,
                VDISP_TOTAL:            0x06,
                VSYNC_POS:              0x07,
                INTERLACE_POS:          0x08,
                MAX_SCAN: {
                    INDX:               0x09,
                    MASK:               0x1F
                },
                CURSOR_START: {
                    INDX:               0x0A,
                    MASK:               0x1F,
                    /*
                     * I don't entirely understand these cursor blink control bits.  Here's what the MC6845 datasheet says:
                     *
                     *      Bit 5 is the blink timing control.  When bit 5 is low, the blink frequency is 1/16 of the vertical field rate,
                     *      and when bit 5 is high, the blink frequency is 1/32 of the vertical field rate.  Bit 6 is used to enable a blink.
                     */
                    BLINKON:            0x00,       // (supposedly, 0x04 has the same effect as 0x00)
                    BLINKOFF:           0x20,       // if blinking is disabled, the cursor is effectively hidden
                    BLINKFAST:          0x60        // default is 1/16 of the frame rate; this switches to 1/32 of the frame rate
                },
                CURSOR_END: {
                    INDX:               0x0B,
                    MASK:               0x1F
                },
                START_ADDR_HI:          0x0C,
                START_ADDR_LO:          0x0D,
                CURSOR_ADDR_HI:         0x0E,
                CURSOR_ADDR_LO:         0x0F,
                LIGHT_PEN_HI:           0x10,
                LIGHT_PEN_LO:           0x11,
                TOTAL_REGS:             0x12,       // total CRT registers on MDA/CGA
                EGA: {
                    HDISP_END:          0x01,
                    HBLANK_START:       0x02,
                    HBLANK_END:         0x03,
                    HRETRACE_START:     0x04,
                    HRETRACE_END:       0x05,
                    VTOTAL:             0x06,
                    OVERFLOW: {
                    INDX:               0x07,
                    VTOTAL_BIT8:        0x01,       // bit 8 of register 0x06
                    VDISP_END_BIT8:     0x02,       // bit 8 of register 0x12
                    VRETRACE_START_BIT8:0x04,       // bit 8 of register 0x10
                    VBLANK_START_BIT8:  0x08,       // bit 8 of register 0x15
                    LINE_COMPARE_BIT8:  0x10,       // bit 8 of register 0x18
                    CURSOR_START_BIT8:  0x20,       // bit 8 of register 0x0A (EGA only)
                    VTOTAL_BIT9:        0x20,       // bit 9 of register 0x06 (VGA only)
                    VDISP_END_BIT9:     0x40,       // bit 9 of register 0x12 (VGA only, unused on EGA)
                    VRETRACE_START_BIT9:0x80        // bit 9 of register 0x10 (VGA only, unused on EGA)
                    },
                    PRESET_SCAN:        0x08,
                    /*
                     * NOTE: EGA/VGA CRTC registers 0x09-0x0F are the same as the MDA/CGA CRTC registers defined above
                     */
                    MAX_SCAN: {
                    INDX:               0x09,
                    SCAN_LINE:          0x1f,
                    VBLANK_START_BIT9:  0x20,
                    LINE_COMPARE_BIT9:  0x40,
                    CONVERT400:         0x80        // 200-to-400 scan-line conversion is in effect
                    },
                    CURSOR_START: {
                        INDX:           0x0A,
                        MASK:           0x1F,
                        BLINKON:        0x00,       // (supposedly, 0x04 has the same effect as 0x00)
                        BLINKOFF:       0x20,       // if blinking is disabled, the cursor is effectively hidden
                        BLINKFAST:      0x60        // default is 1/16 of the frame rate; this switches to 1/32 of the frame rate
                    },
                    CURSOR_END: {
                        INDX:           0x0B,
                        MASK:           0x1F
                    },
                    START_ADDR_HI:      0x0C,
                    START_ADDR_LO:      0x0D,
                    CURSOR_ADDR_HI:     0x0E,
                    CURSOR_ADDR_LO:     0x0F,
                    VRETRACE_START:     0x10,
                    VRETRACE_END:       0x11,
                    VDISP_END:          0x12,
                    /*
                     * The OFFSET register (bits 0-7) specifies the logical line width of the screen.  The starting memory address
                     * for the next character row is larger than the current character row by two or four times this amount.
                     * The OFFSET register is programmed with a word address.  Depending on the method of clocking the CRT Controller,
                     * this word address is [effectively] either a word or double-word address. #IBMVGATechRef
                     */
                    OFFSET:             0x13,
                    UNDERLINE: {
                        INDX:           0x14,
                        ROWSCAN:        0x1f,
                        COUNTBY4:       0x20,
                        DWORD:          0x40
                    },
                    VBLANK_START:       0x15,
                    VBLANK_END:         0x16,
                    MODE_CTRL: {
                        INDX:           0x17,
                        COMPAT_MODE:    0x01,       // Compatibility Mode Support (CGA A13 control)
                        SEL_ROW_SCAN:   0x02,       // Select Row Scan Counter
                        SEL_HRETRACE:   0x04,       // Horizontal Retrace Select
                        COUNTBY2:       0x08,       // Count By Two
                        OUTPUT_CTRL:    0x10,       // Output Control
                        ADDR_WRAP:      0x20,       // Address Wrap (in Word mode, 1 maps A15 to A0 and 0 maps A13; use the latter when only 64Kb is installed)
                        BYTE_MODE:      0x40,       // Byte Mode (1 selects Byte Mode; 0 selects Word Mode)
                        HARD_RESET:     0x80        // Hardware Reset
                    },
                    LINE_COMPARE:       0x18,
                    TOTAL_REGS:         0x19        // total CRT registers on EGA/VGA
                },
                ADDR_HI_MASK:           0x3F
            };
            
            if (DEBUGGER) {
                Card.CRTC.REGS      = ["HTOTAL","HDISP","HSYNC_POS","HSYNC_WIDTH","VTOTAL","VTOTAL_ADJ",
                                       "VDISP","VSYNC_POS","INTERLACE_POS","MAX_SCAN","CURSOR_START","CURSOR_END",
                                       "START_ADDR_HI","START_ADDR_LO","CURSOR_ADDR_HI","CURSOR_ADDR_LO","LIGHT_PEN_HI","LIGHT_PEN_LO"];
            
                Card.CRTC.EGA_REGS  = ["HTOTAL","HDISP_END","HBLANK_START","HBLANK_END","HRETRACE_START","HRETRACE_END",
                                       "VTOTAL","OVERFLOW","PRESET_SCAN","MAX_SCAN","CURSOR_START","CURSOR_END",
                                       "START_ADDR_HI","START_ADDR_LO","CURSOR_ADDR_HI","CURSOR_ADDR_LO","VRETRACE_START","VRETRACE_END",
                                       "VDISP_END","OFFSET","UNDERLINE","VBLANK_START","VBLANK_END","MODE_CTRL","LINE_COMPARE"];
            }
            
            /*
             * EGA/VGA Input Status 1 Register (port 0x3DA)
             *
             * STATUS1 bit 0 has confusing documentation: the EGA Tech Ref says "Logical 0 indicates the CRT raster is in a
             * horizontal or vertical retrace interval", whereas the VGA Tech Ref says "Logical 1 indicates a horizontal or
             * vertical retrace interval," but then clarifies: "This bit is the real-time status of the INVERTED display enable
             * signal".  So, instead of calling bit 0 DISP_ENABLE (or more precisely, DISP_ENABLE_INVERTED), it's simply RETRACE.
             *
             * STATUS1 diagnostic bits 5 and 4 are set according to the Card.ATC.PLANES.MUX bits:
             *
             *      MUX     Bit 5   Bit 4
             *      ---     ----    ----
             *      00:     Red     Blue
             *      01:     SecBlue Green
             *      10:     SecRed  SecGreen
             *      11:     unused  unused
             */
            Card.STATUS1 = {
                PORT:                   0x3DA,
                RETRACE:                0x01,       // bit 0: logical OR of horizontal and vertical retrace
                VRETRACE:               0x08,       // bit 3: set during vertical retrace interval
                DIAGNOSTIC:             0x30,       // bits 5,4 are controlled by the Card.ATC.PLANES.MUX bits
                RESERVED:               0xC6
            };
            
            /*
             * EGA/VGA Attribute Controller Registers (port 0x3C0: regATCIndx and regATCData)
             *
             * The current ATC INDX value is stored in cardEGA.regATCIndx (including the Card.ATC.INDX_ENABLE bit), and the
             * ATC DATA values are stored in cardEGA.regATCData.  The state of the ATC INDX/DATA flip-flop is stored in fATCData.
             *
             * Note that the ATC palette registers (0x0-0xf) all use the following 6 bit assignments, with bits 6 and 7 unused:
             *
             *      0: Blue
             *      1: Green
             *      2: Red
             *      3: SecBlue (or mono video)
             *      4: SecGreen (or intensity)
             *      5: SecRed
             */
            Card.ATC = {
                PORT:                   0x3C0,      // ATC Index/Data Port
                INDX_MASK:              0x1F,
                INDX_PAL_ENABLE:        0x20,       // must be clear when loading palette registers
                PALETTE: {
                    INDX:               0x00,       // 16 registers: 0x00 - 0x0F
                    MASK:               0x3f,
                    BLUE:               0x01,
                    GREEN:              0x02,
                    RED:                0x04,
                    SECBLUE:            0x08,
                    BRIGHT:             0x10,       // NOTE: The IBM EGA manual (p.56) also calls this the "intensity" bit
                    SECGREEN:           0x10,
                    SECRED:             0x20
                },
                PALETTE_REGS:           0x10,       // 16 total palette registers
                MODE: {
                    INDX:               0x10,       // ATC Mode Control Register
                    GRAPHICS:           0x01,       // bit 0: set for graphics mode, clear for alphanumeric mode
                    MONOEM:             0x02,       // bit 1: set for monochrome emulation mode, clear for color emulation
                    TEXT_9DOT:          0x04,       // bit 2: set for 9-dot replication in character codes 0xC0-0xDF
                    BLINK_ENABLE:       0x08,       // bit 3: set for text/graphics blink, clear for background intensity
                    RESERVED:           0x10,       // bit 4: reserved
                    PANCOMPAT:          0x20,       // bit 5: set for pixel-panning compatibility
                    PELWIDTH:           0x40,       // bit 6: set for 256-color modes, clear for all other modes
                    COLORSEL_ALL:       0x80        // bit 7: set to enable all COLORSEL bits (ie, COLORSEL.DAC_BIT5 and COLORSEL.DAC_BIT4)
                },
                OVERSCAN: {
                    INDX:               0x11        // ATC Overscan Color Register
                },
                PLANES: {
                    INDX:               0x12,       // ATC Color Plane Enable Register
                    MASK:               0x0F,
                    MUX:                0x30,
                    RESERVED:           0xC0
                },
                HPAN: {
                    INDX:               0x13,       // ATC Horizontal PEL Panning Register
                    SHIFT_LEFT:         0x0F        // bits 0-3 indicate # of pixels to shift left
                },
                COLORSEL: {
                    INDX:               0x14,       // ATC Color Select Register (VGA only)
                    DAC_BIT7:           0x08,       // specifies bit 7 of DAC values (ignored in 256-color modes)
                    DAC_BIT6:           0x04,       // specifies bit 6 of DAC values (ignored in 256-color modes)
                    DAC_BIT5:           0x02,       // specifies bit 5 of DAC values (if ATC.MODE.COLORSEL_ALL is set; ignored in 256-color modes)
                    DAC_BIT4:           0x01        // specifies bit 4 of DAC values (if ATC.MODE.COLORSEL_ALL is set; ignored in 256-color modes)
                },
                TOTAL_REGS:             0x14
            };
            
            if (DEBUGGER) {
                Card.ATC.REGS = ["PAL00","PAL01","PAL02","PAL03","PAL04","PAL05","PAL06","PAL07",
                                 "PAL08","PAL09","PAL0A","PAL0B","PAL0C","PAL0D","PAL0E","PAL0F", "MODE","OVERSCAN","PLANES","HPAN"];
            }
            
            /*
             * EGA/VGA Feature Control Register (port 0x3BA or 0x3DA: regFeat)
             *
             * The EGA BIOS writes 0x1 to Card.FEAT_CTRL.BITS and reads Card.STATUS0.FEAT, then writes 0x2 to
             * Card.FEAT_CTRL.BITS and reads Card.STATUS0.FEAT.  The bits from the first and second reads are shifted
             * into the high nibble of the byte at 40:88h.
             */
            Card.FEAT_CTRL = {
                PORT_MONO:              0x3BA,      // write port address (other than the two bits below, the rest are reserved and/or unused)
                PORT_COLOR:             0x3DA,      // write port address (other than the two bits below, the rest are reserved and/or unused)
                PORT_READ:              0x3CA,      // read port address (VGA only)
                BITS:                   0x03        // feature control bits
            };
            
            /*
             * EGA/VGA Miscellaneous Output Register (port 0x3C2: regMisc)
             */
            Card.MISC = {
                PORT_WRITE:             0x3C2,      // write port address (EGA and VGA)
                PORT_READ:              0x3CC,      // read port addresss (VGA only)
                IO_SELECT:              0x01,       // 0 sets CRT ports to 0x3Bn, 1 sets CRT ports to 0x3Dn
                ENABLE_RAM:             0x02,       // 0 disables video RAM, 1 enables
                CLOCK_SELECT:           0x0C,       // 0x0: 14Mhz I/O clock, 0x4: 16Mhz on-board clock, 0x8: external clock, 0xC: unused
                DISABLE_DRV:            0x10,       // 0 activates internal video drivers, 1 activates feature connector direct drive outputs
                PAGE_ODD_EVEN:          0x20,       // 0 selects the low 64Kb page of video RAM for text modes, 1 selects the high page
                HPOLARITY:              0x40,       // 0 selects positive horizontal retrace
                VPOLARITY:              0x80        // 0 selects positive vertical retrace
            };
            
            /*
             * EGA/VGA Input Status 0 Register (port 0x3C2: regStatus0)
             */
            Card.STATUS0 = {
                PORT:                   0x3C2,      // read-only (aka STATUS0, to distinguish it from PORT_CGA_STATUS)
                RESERVED:               0x0F,
                SWSENSE:                0x10,
                SWSENSE_SHIFT:          4,
                FEAT:                   0x60,       // VGA: reserved
                INTERRUPT:              0x80        // 1: video is being displayed; 0: vertical retrace is occurring
            };
            
            /*
             * VGA Subsystem Enable Register (port 0x3C3: regVGAEnable)
             */
            Card.VGA_ENABLE = {
                PORT:                   0x3C3,
                ENABLED:                0x01,       // when set, all VGA I/O and memory decoding is enabled; otherwise disabled (TODO: Implement)
                RESERVED:               0xFE
            };
            
            /*
             * EGA/VGA Sequencer Registers (ports 0x3C4/0x3C5: regSEQIndx and regSEQData)
             */
            Card.SEQ = {
                INDX: {
                    PORT:               0x3C4,      // Sequencer Index Port
                    MASK:               0x07
                },
                DATA: {
                    PORT:               0x3C5       // Sequencer Data Port
                },
                RESET: {
                    INDX:               0x00,       // Sequencer Reset Register
                    ASYNC:              0x01,
                    SYNC:               0x02
                },
                CLOCKING: {
                    INDX:               0x01,       // Sequencer Clocking Mode Register
                    DOTS8:              0x01,       // 1: 8 dots; 0: 9 dots
                    BANDWIDTH:          0x02,       // 0: CRTC has access 4 out of every 5 cycles (for high-res modes); 1: CRTC has access 2 out of 5 (VGA: reserved)
                    SHIFTLOAD:          0x04,
                    DOTCLOCK:           0x08,       // 0: normal dot clock; 1: master clock divided by two (used for 320x200 modes: 0, 1, 4, 5, and D)
                    SHIFT4:             0x10,       // VGA only
                    SCREEN_OFF:         0x20,       // VGA only
                    RESERVED:           0xC0
                },
                MAPMASK: {
                    INDX:               0x02,       // Sequencer Map Mask Register
                    PL0:                0x01,
                    PL1:                0x02,
                    PL2:                0x04,
                    PL3:                0x08,
                    MAPS:               0x0F,
                    RESERVED:           0xF0
                },
                CHARMAP: {
                    INDX:               0x03,       // Sequencer Character Map Select Register
                    SELB:               0x03,       // 0x0: 1st 8Kb of plane 2; 0x1: 2nd 8Kb; 0x2: 3rd 8Kb; 0x3: 4th 8Kb
                    SELA:               0x0C,       // 0x0: 1st 8Kb of plane 2; 0x4: 2nd 8Kb; 0x8: 3rd 8Kb; 0xC: 4th 8Kb
                    SELB_HIGH:          0x10,       // VGA only
                    SELA_HIGH:          0x20        // VGA only
                },
                MEMMODE: {
                    INDX:               0x04,       // Sequencer Memory Mode Register
                    ALPHA:              0x01,       // set for alphanumeric (A/N) mode, clear for graphics (APA or "All Points Addressable") mode (EGA only)
                    EXT:                0x02,       // set if memory expansion installed, clear if not installed
                    SEQUENTIAL:         0x04,       // set for sequential memory access, clear for mapping even addresses to planes 0/2, odd addresses to planes 1/3
                    CHAIN4:             0x08        // VGA only: set to select memory map (plane) based on low 2 bits of address
                },
                TOTAL_REGS:             0x05
            };
            
            if (DEBUGGER) Card.SEQ.REGS = ["RESET","CLOCKING","MAPMASK","CHARMAP","MEMMODE"];
            
            /*
             * VGA Digital-to-Analog Converter (DAC) Registers (regDACMask, regDACState, regDACAddr, and regDACData)
             *
             * To write DAC data, write an address to DAC.ADDR.PORT_WRITE, then write 3 bytes to DAC.DATA.PORT; the low 6 bits
             * of each byte will be concatenated to form an 18-bit DAC value (red is least significant, followed by green, then blue).
             * When the final byte is received, the 18-bit DAC value is updated and regDACAddr is auto-incremented.
             *
             * To read DAC data, the process is similar, but the initial address is written to DAC.ADDR.PORT_READ instead.
             *
             * DAC.STATE.PORT and DAC.ADDR.PORT_WRITE can be read at any time and will not interfere with a read or write operation
             * in progress.  To prevent "snow", reading or writing DAC values should be limited to retrace intervals (see regStatus1),
             * or by using the SCREEN_OFF bit in the SEQ.CLOCKING register.
             */
            Card.DAC = {
                MASK: {
                    PORT:               0x3C6,      // initialized to 0xFF and should not be changed
                    DEFAULT:            0xFF
                },
                STATE: {
                    PORT:               0x3C7,
                    MODE_WRITE:         0x00,       // the DAC is in write mode if bits 0 and 1 are clear
                    MODE_READ:          0x03        // the DAC is in read mode if bits 0 and 1 are set
                },
                ADDR: {
                    PORT_READ:          0x3C7,      // write to initiate a read
                    PORT_WRITE:         0x3C8       // write to initiate a write; read to determine the current ADDR
                },
                DATA: {
                    PORT:               0x3C9
                },
                TOTAL_REGS:             0x100
            };
            
            /*
             * EGA/VGA Graphics Controller Registers (ports 0x3CE/0x3CF: regGRCIndx and regGRCData)
             *
             * The VGA added Write Mode 3, which is described as follows:
             *
             *      "Each map is written with 8 bits of the value contained in the Set/Reset register for that map
             *      (the Enable Set/Reset register has no effect). Rotated system microprocessor data is ANDed with the
             *      Bit Mask register data to form an 8-bit value that performs the same function as the Bit Mask register
             *      does in write modes 0 and 2."
             */
            Card.GRC = {
                POS1_PORT:              0x3CC,      // EGA only, write-only
                POS2_PORT:              0x3CA,      // EGA only, write-only
                INDX: {
                    PORT:               0x3CE,      // GRC Index Port
                    MASK:               0x0F
                },
                DATA: {
                    PORT:               0x3CF       // GRC Data Port
                },
                SRESET: {
                    INDX:               0x00        // GRC Set/Reset Register (write-only; each bit used only if WRITE.MODE0 and corresponding ESR bit set)
                },
                ESRESET: {
                    INDX:               0x01        // GRC Enable Set/Reset Register
                },
                COLORCMP: {
                    INDX:               0x02        // GRC Color Compare Register
                },
                DATAROT: {
                    INDX:               0x03,       // GRC Data Rotate Register
                    COUNT:              0x07,
                    AND:                0x08,
                    OR:                 0x10,
                    XOR:                0x18,
                    FUNC:               0x18,
                    MASK:               0x1F
                },
                READMAP: {
                    INDX:               0x04,       // GRC Read Map Select Register
                    NUM:                0x03
                },
                MODE: {
                    INDX:               0x05,       // GRC Mode Register
                    WRITE: {
                        MODE0:          0x00,       // write mode 0: each plane written with CPU data, rotated as needed, unless SR enabled
                        MODE1:          0x01,       // write mode 1: each plane written with contents of the processor latches (loaded by a read)
                        MODE2:          0x02,       // write mode 2: memory plane N is written with 8 bits matching data bit N
                        MODE3:          0x03,       // write mode 3: VGA only
                        MASK:           0x03
                    },
                    TEST:               0x04,
                    READ: {
                        MODE0:          0x00,       // read mode 0: read map mode
                        MODE1:          0x08,       // read mode 1: color compare mode
                        MASK:           0x08
                    },
                    EVENODD:            0x10,
                    SHIFT:              0x20,
                    COLOR256:           0x40        // VGA only
                },
                MISC: {
                    INDX:               0x06,       // GRC Miscellaneous Register
                    GRAPHICS:           0x01,       // set for graphics mode addressing, clear for text mode addressing
                    CHAIN:              0x02,       // set for odd/even planes selected with odd/even values of the processor AO bit
                    MAPMEM:             0x0C,       //
                    MAPA0128:           0x00,       //
                    MAPA064:            0x04,       //
                    MAPB032:            0x08,       //
                    MAPB832:            0x0C        //
                },
                COLORDC: {
                    INDX:               0x07        // GRC Color "Don't Care" Register
                },
                BITMASK: {
                    INDX:               0x08        // GRC Bit Mask Register
                },
                TOTAL_REGS:             0x09
            };
            
            if (DEBUGGER) Card.GRC.REGS = ["SRESET","ESRESET","COLORCMP","DATAROT","READMAP","MODE","MISC","COLORDC","BITMASK"];
            
            /*
             * EGA Memory Access Functions
             *
             * Here's where we define all the getMemoryAccess() functions that know how to deal with "planar" EGA memory,
             * which consists of 32-bit values for every byte of address space, allowing us to internally store plane 0
             * bytes in bits 0-7, plane 1 bytes in bits 8-15, plane 2 bytes in bits 16-23, and plane 3 bytes in bits 24-31.
             *
             * All our functions have slightly more overhead than the standard Bus memory access functions, because the
             * offset (off) parameter is block-relative, which we must transform into a buffer-relative offset.  Fortunately,
             * all our Memory objects know this and have already recorded their buffer-relative offset in "this.offset".
             *
             * Also, the EGA includes a set of latches, one for each plane, which must be updated on most reads/writes;
             * we rely on the Memory object's "this.controller" property to give us access to the Card's state.
             *
             * And we take a little extra time to conditionally set fDirty on writes, meaning if a write did not actually
             * change the value of the memory, we will not set fDirty.  The default write functions in memory.js don't take
             * that performance hit, but here, it may be worthwhile, because if it results in fewer dirty blocks, display
             * updates may be faster.
             *
             * Note that we don't have to worry about dealing with word accesses that straddle block boundaries, because
             * the Bus component automatically breaks those accesses into separate byte requests.  Similarly, byte and word
             * values for the write functions have already been pre-masked by the Bus component to 8 and 16 bits, respectively.
             *
             * My motto: Be paranoid, but also be careful not to do any more work than you absolutely have to.
             *
             *
             * CGA Emulation on the EGA
             *
             * Modes 4/5 (320x200 low-res graphics) emulate the same buffer format that the CGA uses.  To recap: 1 byte contains
             * 4 pixels (pixel 0 in bits 7-6, pixel 1 in bits 5-4, etc), and thus one row of pixels is 80 (0x50) bytes long.
             * Moreover, all even rows are stored in the first 8K of the video buffer (at 0xB8000), and all odd rows are stored
             * in the second 8K (at 0xBA000).  Of each 8K, only 8000 (0x1F40) bytes are used (80 bytes X 100 rows); the remaining
             * 192 bytes of each 8K are unused.
             *
             * For these modes, the EGA's GRC.MODE is programmed with 0x30: Card.GRC.MODE.EVENODD and Card.GRC.MODE.SHIFT.
             * The latter claims to work by forming each 2-bit pixel with even bits from plane 0 and odd bits from plane 1;
             * however, I'm unclear how that works if even bytes are only written to plane 0 and odd bytes are only written to
             * plane 1, as Card.GRC.MODE.EVENODD implies, because plane 0 would never have any bits for the odd bytes, and
             * plane 1 would never have any bits for the even bytes.  TODO: Figure this out.
             *
             *
             * Even/Odd Memory Access Functions
             *
             * The "EVENODD" functions deal with the EGA's default text-mode addressing, where EVEN addresses are mapped to
             * plane 0 (and 2) and ODD addresses are mapped to plane 1 (and 3).  This occurs when SEQ.MEMMODE.SEQUENTIAL is
             * clear (and GRC.MODE.EVENODD is set), turning address bit 0 (A0) into a "plane select" bit.  Whether A0 is also
             * used as a memory address bit depends on CRTC.MODE_CTRL.BYTE_MODE: if it's set, then we're in "Byte Mode" and A0 is
             * used as-is; if it's clear, then we're in "Word Mode", and either A15 (when CRTC.MODE_CTRL.ADDR_WRAP is set) or A13
             * (when CRTC.MODE_CTRL.ADDR_WRAP is clear, typically when only 64Kb of EGA memory is installed) is substituted for A0.
             *
             * Note that A13 remains clear until addresses reach 8K, at which point we've spanned 32Kb of EGA memory, so it makes
             * sense to propagate A13 to A0 at that point, so that the next 8K of addresses start using ODD instead of EVEN bytes,
             * and no memory is wasted on a 64Kb EGA card.
             *
             * These functions, however, don't yet deal with all those subtleties: A0 is currently used only as a "plane select"
             * bit and set to zero for addressing purposes, meaning that only the EVEN bytes in EGA memory will ever be used.
             * TODO: Implement the subtleties.
             */
            
            /*
             * Values returned by getAccess(); the high byte describes the read mode, and the low byte describes the write mode.
             *
             * V2 should never appear in any values used by getAccess() or setAccess()/setMemoryAccess(); the sole purpose of V2 is
             * to distinguish newer (V2) access values from older (V1) access values in saved contexts.  It's set when the context
             * is saved, and cleared when the context is restored.  Thus, if V2 is not set on restore, we assume we're dealing with
             * a V1 value, so we run it through the V1 table (below) to produce a V2 value.  Hopefully at some point V1 contexts
             * can be deprecated, and the V2 bit can be eliminated/repurposed.
             */
            Card.ACCESS = {
                READ: {                             // READ values are designed to be OR'ed with WRITE values
                    MODE0:              0x0400,
                    MODE1:              0x0500,
                    EVENODD:            0x1000,
                    CHAIN4:             0x4000,
                    MASK:               0xFF00
                },
                WRITE: {                            // and WRITE values are designed to be OR'ed with READ values
                    MODE0:              0x0000,
                    MODE1:              0x0001,
                    MODE2:              0x0002,
                    MODE3:              0x0003,     // VGA only
                    CHAIN4:             0x0004,
                    EVENODD:            0x0010,
                    ROT:                0x0020,
                    AND:                0x0060,
                    OR:                 0x00A0,
                    XOR:                0x00E0,
                    MASK:               0x00FF
                },
                V2:             (0x80000000|0)      // this is a signature bit used ONLY to differentiate V2 access values from V1
            };
            
            /*
             * Table of older (V1) access values and their corresponding new values; the new values are similar but more orthogonal
             */
            Card.ACCESS.V1 = [];
            Card.ACCESS.V1[0x0002] = Card.ACCESS.READ.MODE0;
            Card.ACCESS.V1[0x0003] = Card.ACCESS.READ.MODE0  | Card.ACCESS.READ.EVENODD;
            Card.ACCESS.V1[0x0010] = Card.ACCESS.READ.MODE1;
            Card.ACCESS.V1[0x0200] = Card.ACCESS.WRITE.MODE0;
            Card.ACCESS.V1[0x0400] = Card.ACCESS.WRITE.MODE0 | Card.ACCESS.WRITE.ROT;
            Card.ACCESS.V1[0x0600] = Card.ACCESS.WRITE.MODE0 | Card.ACCESS.WRITE.AND;
            Card.ACCESS.V1[0x0A00] = Card.ACCESS.WRITE.MODE0 | Card.ACCESS.WRITE.OR;
            Card.ACCESS.V1[0x0E00] = Card.ACCESS.WRITE.MODE0 | Card.ACCESS.WRITE.XOR;
            Card.ACCESS.V1[0x0300] = Card.ACCESS.WRITE.MODE0 | Card.ACCESS.WRITE.EVENODD;
            Card.ACCESS.V1[0x1000] = Card.ACCESS.WRITE.MODE1;
            Card.ACCESS.V1[0x2000] = Card.ACCESS.WRITE.MODE2;
            Card.ACCESS.V1[0x6000] = Card.ACCESS.WRITE.MODE2 | Card.ACCESS.WRITE.AND;
            Card.ACCESS.V1[0xA000] = Card.ACCESS.WRITE.MODE2 | Card.ACCESS.WRITE.OR;
            Card.ACCESS.V1[0xE000] = Card.ACCESS.WRITE.MODE2 | Card.ACCESS.WRITE.XOR;
            
            /**
             * readByteMode0(off, addr)
             *
             * @this {Memory}
             * @param {number} off
             * @param {number} [addr]
             * @return {number}
             */
            Card.ACCESS.readByteMode0 = function readByteMode0(off, addr)
            {
                off += this.offset;
                var dw = this.controller.latches = this.adw[off];
                return (dw >> this.controller.nReadMapShift) & 0xff;
            };
            
            /**
             * readByteMode0Chain4(off, addr)
             *
             * See writeByteMode0Chain4 for a description of how writes are distributed across planes.
             *
             * @this {Memory}
             * @param {number} off
             * @param {number} [addr]
             * @return {number}
             */
            Card.ACCESS.readByteMode0Chain4 = function readByteMode0Chain4(off, addr)
            {
                var idw = (off & ~0x3) + this.offset;
                var shift = (off & 0x3) << 3;
                return ((this.controller.latches = this.adw[idw]) >> shift) & 0xff;
            };
            
            /**
             * readByteMode0EvenOdd(off, addr)
             *
             * @this {Memory}
             * @param {number} off
             * @param {number} [addr]
             * @return {number}
             */
            Card.ACCESS.readByteMode0EvenOdd = function readByteMode0EvenOdd(off, addr)
            {
                /*
                 * TODO: As discussed in getAccess(), we need to run some tests on real EGA/VGA hardware to determine
                 * exactly what gets latched (ie, from which address) when EVENODD is in effect.  Whatever we learn may
                 * also dictate a special EVENODD function for READ.MODE1 as well.
                 */
                off += this.offset;
                var idw = off & ~0x1;
                var dw = this.controller.latches = this.adw[idw];
                return (!(off & 1)? dw : (dw >> 8)) & 0xff;
            };
            
            /**
             * readByteMode1(off, addr)
             *
             * This mode requires us to step through each of the 8 sets of 4 bits in the specified DWORD of video memory,
             * returning a 1 wherever all 4 match the Color Compare (COLORCMP) Register and a 0 otherwise.  An added wrinkle
             * is that the Color Don't Care (COLORDC) Register can specify that any/all/none of the 4 bits must be ignored.
             *
             * We perform the comparison from most to least significant bit, because that matches how the nColorCompare and
             * nColorDontCare masks are initialized; we could have gone either way, but this is more consistent with the rest
             * of the component (eg, pixels are drawn across the screen from left to right, starting with the most significant
             * bit of each byte).
             *
             * Also note that, while not well-documented, this mode also affects the internal latches, so we make sure those
             * are updated as well.
             *
             * @this {Memory}
             * @param {number} off
             * @param {number} [addr]
             * @return {number}
             */
            Card.ACCESS.readByteMode1 = function readByteMode1(off, addr)
            {
                off += this.offset;
                var dw = this.controller.latches = this.adw[off];
                /*
                 * Minor optimization: we could pre-mask nColorCompare with nColorDontCare, whenever either register
                 * is updated, but that's a drop in the bucket compared to all the other work this function must do.
                 */
                var mask = this.controller.nColorDontCare;
                var color = this.controller.nColorCompare & mask;
                var b = 0, bit = 0x80;
                while (bit) {
                    if ((dw & mask) == color) b |= bit;
                    color >>>= 1;  mask >>>= 1;  bit >>= 1;
                }
                return b;
            };
            
            /**
             * writeByteMode0(off, b, addr)
             *
             * Supporting Set/Reset means that for every plane for which Set/Reset is enabled, we must
             * replace the corresponding byte in dw with a byte of zeros or ones.  This is accomplished with
             * nSetMapMask, nSetMapData, and nSetMapBits.  nSetMapMask is the inverse of the ESRESET bits,
             * because we use it to mask the processor data, nSetMapData records the desired SRESET bits,
             * and nSetMapBits contains the bits to replace those that we masked in the processor data.
             *
             * We could have done this:
             *
             *      dw = (dw & this.controller.nSetMapMask) | (this.controller.nSetMapData & ~this.controller.nSetMapMask)
             *
             * but by maintaining nSetMapBits equal to (nSetMapData & ~nSetMapMask), we are able to make
             * the writes slightly more efficient.
             *
             * @this {Memory}
             * @param {number} off
             * @param {number} b (which should already be pre-masked to 8 bits; see Bus.prototype.setByteDirect)
             * @param {number} [addr]
             */
            Card.ACCESS.writeByteMode0 = function writeByteMode0(off, b, addr)
            {
                var idw = off + this.offset;
                var dw = b | (b << 8) | (b << 16) | (b << 24);
                dw = (dw & this.controller.nSetMapMask) | this.controller.nSetMapBits;
                dw = (dw & this.controller.nBitMapMask) | (this.controller.latches & ~this.controller.nBitMapMask);
                dw = (dw & this.controller.nSeqMapMask) | (this.adw[idw] & ~this.controller.nSeqMapMask);
                if (this.adw[idw] != dw) {
                    this.adw[idw] = dw;
                    this.fDirty = true;
                }
            };
            
            /**
             * writeByteMode0Chain4(off, b, addr)
             *
             * This is how we distribute writes of 0xff across the address space to the planes (assuming that all
             * planes are enabled by the Sequencer's MAPMASK register):
             *
             *      off     idw     adw[idw]
             *      ------  ------  ----------
             *      0x0000: 0x0000  0x000000ff
             *      0x0001: 0x0000  0x0000ff00
             *      0x0002: 0x0000  0x00ff0000
             *      0x0003: 0x0000  0xff000000
             *      0x0004: 0x0004  0x000000ff
             *      0x0005: 0x0004  0x0000ff00
             *      0x0006: 0x0004  0x00ff0000
             *      0x0007: 0x0004  0xff000000
             *      ...
             *
             * Some VGA emulations calculate the video buffer index (idw) by shifting the offset (off) right 2 bits,
             * instead of simply masking off the low 2 bits, as we do here.  That would be a more "pleasing" arrangement,
             * because we would be using sequential video buffer locations, instead of multiples of 4, and would match how
             * pixels are stored in "Mode X".  However, I don't think that's how CHAIN4 modes operate (although that still
             * needs to be confirmed, because multiple sources conflict on this point).  TODO: Confirm CHAIN4 operation on
             * actual VGA hardware, including the extent to which ALU and other writeByteMode0() functionality needs to
             * be folded into this.
             *
             * Address decoding may not matter that much, as long as both the read and write CHAIN4 functions decode their
             * addresses in exactly the same manner; we'd only get into trouble with software that "unchained" or otherwise
             * reconfigured the planes and then made assumptions about existing data in the video buffer.
             *
             * @this {Memory}
             * @param {number} off
             * @param {number} b (which should already be pre-masked to 8 bits; see Bus.prototype.setByteDirect)
             * @param {number} [addr]
             */
            Card.ACCESS.writeByteMode0Chain4 = function writeByteMode0Chain4(off, b, addr)
            {
                var idw = (off & ~0x3) + this.offset;
                var shift = (off & 0x3) << 3;
                /*
                 * TODO: Consider adding a separate "unmasked" version of this CHAIN4 write function when nSeqMapMask is -1
                 * (or removing nSeqMapMask from the equation altogether, if CHAIN4 is never used with any planes disabled).
                 */
                var dw = ((b << shift) & this.controller.nSeqMapMask) | (this.adw[idw] & ~((0xff << shift) & this.controller.nSeqMapMask));
                if (this.adw[idw] != dw) {
                    this.adw[idw] = dw;
                    this.fDirty = true;
                }
            };
            
            /**
             * writeByteMode0EvenOdd(off, b, addr)
             *
             * @this {Memory}
             * @param {number} off
             * @param {number} b (which should already be pre-masked to 8 bits; see Bus.prototype.setByteDirect)
             * @param {number} [addr]
             */
            Card.ACCESS.writeByteMode0EvenOdd = function writeByteMode0EvenOdd(off, b, addr)
            {
                off += this.offset;
                var dw = b | (b << 8) | (b << 16) | (b << 24);
                /*
                 * When even/odd addressing is enabled, nSeqMapMask must be cleared for planes 1
                 * and 3 if the address is even, and cleared for planes 0 and 2 if the address is odd.
                 */
                var idw = off & ~0x1;
                dw = (dw & this.controller.nBitMapMask) | (this.controller.latches & ~this.controller.nBitMapMask);
                var maskMaps = this.controller.nSeqMapMask & (idw == off? 0x00ff00ff : (0xff00ff00|0));
                dw = (dw & maskMaps) | (this.adw[idw] & ~maskMaps);
                if (this.adw[idw] != dw) {
                    this.adw[idw] = dw;
                    this.fDirty = true;
                }
            };
            
            /**
             * writeByteMode0Rot(off, b, addr)
             *
             * @this {Memory}
             * @param {number} off
             * @param {number} b (which should already be pre-masked to 8 bits; see Bus.prototype.setByteDirect)
             * @param {number} [addr]
             */
            Card.ACCESS.writeByteMode0Rot = function writeByteMode0Rot(off, b, addr)
            {
                var idw = off + this.offset;
                b = ((b >> this.controller.nDataRotate) | (b << (8 - this.controller.nDataRotate)) & 0xff);
                var dw = b | (b << 8) | (b << 16) | (b << 24);
                dw = (dw & this.controller.nSetMapMask) | this.controller.nSetMapBits;
                dw = (dw & this.controller.nBitMapMask) | (this.controller.latches & ~this.controller.nBitMapMask);
                dw = (dw & this.controller.nSeqMapMask) | (this.adw[idw] & ~this.controller.nSeqMapMask);
                if (this.adw[idw] != dw) {
                    this.adw[idw] = dw;
                    this.fDirty = true;
                }
            };
            
            /**
             * writeByteMode0And(off, b, addr)
             *
             * @this {Memory}
             * @param {number} off
             * @param {number} b (which should already be pre-masked to 8 bits; see Bus.prototype.setByteDirect)
             * @param {number} [addr]
             */
            Card.ACCESS.writeByteMode0And = function writeByteMode0And(off, b, addr)
            {
                var idw = off + this.offset;
                b = ((b >> this.controller.nDataRotate) | (b << (8 - this.controller.nDataRotate)) & 0xff);
                var dw = b | (b << 8) | (b << 16) | (b << 24);
                dw = (dw & this.controller.nSetMapMask) | this.controller.nSetMapBits;
                dw &= this.controller.latches;
                dw = (dw & this.controller.nBitMapMask) | (this.controller.latches & ~this.controller.nBitMapMask);
                dw = (dw & this.controller.nSeqMapMask) | (this.adw[idw] & ~this.controller.nSeqMapMask);
                if (this.adw[idw] != dw) {
                    this.adw[idw] = dw;
                    this.fDirty = true;
                }
            };
            
            /**
             * writeByteMode0Or(off, b, addr)
             *
             * @this {Memory}
             * @param {number} off
             * @param {number} b (which should already be pre-masked to 8 bits; see Bus.prototype.setByteDirect)
             * @param {number} [addr]
             */
            Card.ACCESS.writeByteMode0Or = function writeByteMode0Or(off, b, addr)
            {
                var idw = off + this.offset;
                b = ((b >> this.controller.nDataRotate) | (b << (8 - this.controller.nDataRotate)) & 0xff);
                var dw = b | (b << 8) | (b << 16) | (b << 24);
                dw = (dw & this.controller.nSetMapMask) | this.controller.nSetMapBits;
                dw |= this.controller.latches;
                dw = (dw & this.controller.nBitMapMask) | (this.controller.latches & ~this.controller.nBitMapMask);
                dw = (dw & this.controller.nSeqMapMask) | (this.adw[idw] & ~this.controller.nSeqMapMask);
                if (this.adw[idw] != dw) {
                    this.adw[idw] = dw;
                    this.fDirty = true;
                }
            };
            
            /**
             * writeByteMode0Xor(off, b, addr)
             *
             * @this {Memory}
             * @param {number} off
             * @param {number} b (which should already be pre-masked to 8 bits; see Bus.prototype.setByteDirect)
             * @param {number} [addr]
             */
            Card.ACCESS.writeByteMode0Xor = function writeByteMode0Xor(off, b, addr)
            {
                var idw = off + this.offset;
                b = ((b >> this.controller.nDataRotate) | (b << (8 - this.controller.nDataRotate)) & 0xff);
                var dw = b | (b << 8) | (b << 16) | (b << 24);
                dw = (dw & this.controller.nSetMapMask) | this.controller.nSetMapBits;
                dw ^= this.controller.latches;
                dw = (dw & this.controller.nBitMapMask) | (this.controller.latches & ~this.controller.nBitMapMask);
                dw = (dw & this.controller.nSeqMapMask) | (this.adw[idw] & ~this.controller.nSeqMapMask);
                if (this.adw[idw] != dw) {
                    this.adw[idw] = dw;
                    this.fDirty = true;
                }
            };
            
            /**
             * writeByteMode1(off, b, addr)
             *
             * @this {Memory}
             * @param {number} off
             * @param {number} b (ignored; the EGA latches provide the source data)
             * @param {number} [addr]
             */
            Card.ACCESS.writeByteMode1 = function writeByteMode1(off, b, addr)
            {
                var idw = off + this.offset;
                var dw = (this.adw[idw] & ~this.controller.nSeqMapMask) | (this.controller.latches & this.controller.nSeqMapMask);
                if (this.adw[idw] != dw) {
                    this.adw[idw] = dw;
                    this.fDirty = true;
                }
            };
            
            /**
             * writeByteMode1EvenOdd(off, b, addr)
             *
             * @this {Memory}
             * @param {number} off
             * @param {number} b (ignored; the EGA latches provide the source data)
             * @param {number} [addr]
             */
            Card.ACCESS.writeByteMode1EvenOdd = function writeByteMode1EvenOdd(off, b, addr)
            {
                /*
                 * TODO: As discussed in getAccess(), we need to run some tests on real EGA/VGA hardware to
                 * determine exactly where latches are written (ie, to which address) when EVENODD is in effect.
                 */
                off += this.offset;
                //
                // When even/odd addressing is enabled, nSeqMapMask must be cleared for planes 1 and 3 if
                // the address is even, and cleared for planes 0 and 2 if the address is odd.
                //
                var idw = off & ~0x1;
                var maskMaps = this.controller.nSeqMapMask & (idw == off? 0x00ff00ff : (0xff00ff00|0));
                var dw = (this.adw[idw] & ~maskMaps) | (this.controller.latches & maskMaps);
                if (this.adw[idw] != dw) {
                    this.adw[idw] = dw;
                    this.fDirty = true;
                }
            };
            
            /**
             * writeByteMode2(off, b, addr)
             *
             * @this {Memory}
             * @param {number} off
             * @param {number} b (which should already be pre-masked to 8 bits; see Bus.prototype.setByteDirect)
             * @param {number} [addr]
             */
            Card.ACCESS.writeByteMode2 = function writeByteMode2(off, b, addr)
            {
                var idw = off + this.offset;
                var dw = Video.aEGAByteToDW[b & 0xf];
                dw = (dw & this.controller.nBitMapMask) | (this.controller.latches & ~this.controller.nBitMapMask);
                dw = (dw & this.controller.nSeqMapMask) | (this.adw[idw] & ~this.controller.nSeqMapMask);
                if (this.adw[idw] != dw) {
                    this.adw[idw] = dw;
                    this.fDirty = true;
                }
            };
            
            /**
             * writeByteMode2And(off, b, addr)
             *
             * @this {Memory}
             * @param {number} off
             * @param {number} b (which should already be pre-masked to 8 bits; see Bus.prototype.setByteDirect)
             * @param {number} [addr]
             */
            Card.ACCESS.writeByteMode2And = function writeByteMode2And(off, b, addr)
            {
                var idw = off + this.offset;
                var dw = Video.aEGAByteToDW[b & 0xf];
                dw &= this.controller.latches;
                dw = (dw & this.controller.nBitMapMask) | (this.controller.latches & ~this.controller.nBitMapMask);
                dw = (dw & this.controller.nSeqMapMask) | (this.adw[idw] & ~this.controller.nSeqMapMask);
                if (this.adw[idw] != dw) {
                    this.adw[idw] = dw;
                    this.fDirty = true;
                }
            };
            
            /**
             * writeByteMode2Or(off, b, addr)
             *
             * @this {Memory}
             * @param {number} off
             * @param {number} b (which should already be pre-masked to 8 bits; see Bus.prototype.setByteDirect)
             * @param {number} [addr]
             */
            Card.ACCESS.writeByteMode2Or = function writeByteMode2Or(off, b, addr)
            {
                var idw = off + this.offset;
                var dw = Video.aEGAByteToDW[b & 0xf];
                dw |= this.controller.latches;
                dw = (dw & this.controller.nBitMapMask) | (this.controller.latches & ~this.controller.nBitMapMask);
                dw = (dw & this.controller.nSeqMapMask) | (this.adw[idw] & ~this.controller.nSeqMapMask);
                if (this.adw[idw] != dw) {
                    this.adw[idw] = dw;
                    this.fDirty = true;
                }
            };
            
            /**
             * writeByteMode2Xor(off, b, addr)
             *
             * @this {Memory}
             * @param {number} off
             * @param {number} b (which should already be pre-masked to 8 bits; see Bus.prototype.setByteDirect)
             * @param {number} [addr]
             */
            Card.ACCESS.writeByteMode2Xor = function writeByteMode2Xor(off, b, addr)
            {
                var idw = off + this.offset;
                var dw = Video.aEGAByteToDW[b & 0xf];
                dw ^= this.controller.latches;
                dw = (dw & this.controller.nBitMapMask) | (this.controller.latches & ~this.controller.nBitMapMask);
                dw = (dw & this.controller.nSeqMapMask) | (this.adw[idw] & ~this.controller.nSeqMapMask);
                if (this.adw[idw] != dw) {
                    this.adw[idw] = dw;
                    this.fDirty = true;
                }
            };
            
            /**
             * writeByteMode3(off, b, addr)
             *
             * In MODE3, Set/Reset is always enabled, so the ESRESET bits (and therefore nSetMapMask and nSetMapBits)
             * are ignored; we look only at the SRESET bits, which are stored in nSetMapData.
             *
             * Unlike MODE0, we currently have no non-rotate function for MODE3.  If performance dictates, we can add one;
             * ditto for other features like the Sequencer's MAPMASK register (nSeqMapMask).
             *
             * @this {Memory}
             * @param {number} off
             * @param {number} b (which should already be pre-masked to 8 bits; see Bus.prototype.setByteDirect)
             * @param {number} [addr]
             */
            Card.ACCESS.writeByteMode3 = function writeByteMode3(off, b, addr)
            {
                var idw = off + this.offset;
                b = ((b >> this.controller.nDataRotate) | (b << (8 - this.controller.nDataRotate)) & 0xff);
                var dw = b | (b << 8) | (b << 16) | (b << 24);
                var dwMask = (dw & this.controller.nBitMapMask);
                dw = (this.controller.nSetMapData & dwMask) | (this.controller.latches & ~dwMask);
                dw = (dw & this.controller.nSeqMapMask) | (this.adw[idw] & ~this.controller.nSeqMapMask);
                if (this.adw[idw] != dw) {
                    this.adw[idw] = dw;
                    this.fDirty = true;
                }
            };
            
            /*
             * Mappings from getAccess() values to access functions above
             */
            Card.ACCESS.afn = [];
            
            Card.ACCESS.afn[Card.ACCESS.READ.MODE0]  = Card.ACCESS.readByteMode0;
            Card.ACCESS.afn[Card.ACCESS.READ.MODE0  |  Card.ACCESS.READ.CHAIN4]  = Card.ACCESS.readByteMode0Chain4;
            Card.ACCESS.afn[Card.ACCESS.READ.MODE0  |  Card.ACCESS.READ.EVENODD] = Card.ACCESS.readByteMode0EvenOdd;
            Card.ACCESS.afn[Card.ACCESS.READ.MODE1]  = Card.ACCESS.readByteMode1;
            
            Card.ACCESS.afn[Card.ACCESS.WRITE.MODE0] = Card.ACCESS.writeByteMode0;
            Card.ACCESS.afn[Card.ACCESS.WRITE.MODE0 |  Card.ACCESS.WRITE.ROT] = Card.ACCESS.writeByteMode0Rot;
            Card.ACCESS.afn[Card.ACCESS.WRITE.MODE0 |  Card.ACCESS.WRITE.AND] = Card.ACCESS.writeByteMode0And;
            Card.ACCESS.afn[Card.ACCESS.WRITE.MODE0 |  Card.ACCESS.WRITE.OR]  = Card.ACCESS.writeByteMode0Or;
            Card.ACCESS.afn[Card.ACCESS.WRITE.MODE0 |  Card.ACCESS.WRITE.XOR] = Card.ACCESS.writeByteMode0Xor;
            Card.ACCESS.afn[Card.ACCESS.WRITE.MODE0 |  Card.ACCESS.WRITE.CHAIN4]  = Card.ACCESS.writeByteMode0Chain4;
            Card.ACCESS.afn[Card.ACCESS.WRITE.MODE0 |  Card.ACCESS.WRITE.EVENODD] = Card.ACCESS.writeByteMode0EvenOdd;
            Card.ACCESS.afn[Card.ACCESS.WRITE.MODE1] = Card.ACCESS.writeByteMode1;
            Card.ACCESS.afn[Card.ACCESS.WRITE.MODE1 |  Card.ACCESS.WRITE.EVENODD] = Card.ACCESS.writeByteMode1EvenOdd;
            Card.ACCESS.afn[Card.ACCESS.WRITE.MODE2] = Card.ACCESS.writeByteMode2;
            Card.ACCESS.afn[Card.ACCESS.WRITE.MODE2 |  Card.ACCESS.WRITE.AND] = Card.ACCESS.writeByteMode2And;
            Card.ACCESS.afn[Card.ACCESS.WRITE.MODE2 |  Card.ACCESS.WRITE.OR]  = Card.ACCESS.writeByteMode2Or;
            Card.ACCESS.afn[Card.ACCESS.WRITE.MODE2 |  Card.ACCESS.WRITE.XOR] = Card.ACCESS.writeByteMode2Xor;
            Card.ACCESS.afn[Card.ACCESS.WRITE.MODE3] = Card.ACCESS.writeByteMode3;
            
            /**
             * initEGA(data)
             *
             * Another one of my frustrations with JSON is that it encodes empty arrays with non-zero lengths as
             * arrays of nulls, which means that any uninitialized register arrays whose elements were all originally
             * undefined come back via the JSON round-trip as *initialized* arrays whose elements are now all null.
             *
             * I'm a bit surprised, because JavaScript purists tell us to always use the '===' operator (eg, use
             * 'aReg[i] === undefined' to determine if an element is initialized), but because of this JSON stupidity,
             * that would require all such tests to become 'aReg[i] === undefined || aReg[i] === null'.  I'm puzzled
             * why the coercion of '==' is considered evil but JSON's coercion of undefined to null is perfectly fine.
             *
             * The simple solution is to change such comparisons to 'aReg[i] == null', because undefined is coerced
             * to null, whereas numeric values are not.
             *
             * [What do I mean by "another" frustration?  Let me talk to you some day about disallowing hex constants,
             * or insisting that property names be quoted, or refusing to allow comments.  I think it's fine for
             * JSON.stringify() to produce output that adheres to rules like that -- although some parameters to control
             * the output would be nice -- but it's completely unnecessary for JSON.parse() to refuse to parse objects
             * that are perfectly valid.]
             *
             * @this {Card}
             * @param {Array|undefined} data
             * @param {number} nMonitorType
             */
            Card.prototype.initEGA = function(data, nMonitorType)
            {
                if (data === undefined) {
                    data = [
                        /* 0*/  false,
                        /* 1*/  0,
                        /* 2*/  new Array(Card.ATC.TOTAL_REGS),
                        /* 3*/  0,
                        /* 4*/  (nMonitorType == ChipSet.MONITOR.MONO? 0: Card.MISC.IO_SELECT),
                        /* 5*/  0,
                        /* 6*/  0,
                        /* 7*/  new Array(Card.SEQ.TOTAL_REGS),
                        /* 8*/  0,
                        /* 9*/  0,
                        /*10*/  0,
                        /*11*/  new Array(Card.GRC.TOTAL_REGS),
                        /*12*/  0,
                        /*13*/  [this.addrBuffer, this.sizeBuffer, this.cbMemory],
                        /*14*/  new Array(this.cbMemory >> 2),      // divide cbMemory by 4 since this is an array of DWORDs (8 bits for each of 4 planes)
                        /*
                         * Card.ACCESS.WRITE.MODE0 by itself is a pretty good default, but if we choose to "randomize" the screen with
                         * text characters prior to starting the machine, defaulting to Card.ACCESS.WRITE.EVENODD is more faithful to how
                         * characters and attributes are typically stored (ie, in planes 0 and 1, respectively).  As soon as the machine
                         * starts up and initializes the hardware itself, these defaults won't matter.
                         */
                        /*15*/  Card.ACCESS.READ.MODE0 | Card.ACCESS.READ.EVENODD | Card.ACCESS.WRITE.MODE0 | Card.ACCESS.WRITE.EVENODD | Card.ACCESS.V2,
                        /*16*/  0,
                        /*17*/  0xffffffff|0,
                        /*18*/  0,
                        /*19*/  0xffffffff|0,
                        /*20*/  0,
                        /*21*/  0xffffffff|0,
                        /*22*/  0,
                        /*23*/  0,
                        /*24*/  0,
                        /*25*/  0,
                        /*26*/  Card.VGA_ENABLE.ENABLED,
                        /*27*/  Card.DAC.MASK.DEFAULT,
                        /*28*/  0,
                        /*29*/  0,
                        /*30*/  Card.DAC.STATE.MODE_WRITE,
                        /*31*/  new Array(Card.DAC.TOTAL_REGS)
                    ];
                }
            
                this.fATCData   = data[0];
                this.regATCIndx = data[1];
                this.regATCData = data[2];
                this.asATCRegs  = DEBUGGER? Card.ATC.REGS : [];
                this.regStatus0 = data[3];      // aka STATUS0 (not to be confused with this.regStatus, which the EGA refers to as STATUS1)
                this.regMisc    = data[4];
                this.regFeat    = data[5];      // for feature control bits, see Card.FEAT_CTRL.BITS; for feature status bits, see Card.STATUS0.FEAT
                this.regSEQIndx = data[6];
                this.regSEQData = data[7];
                this.asSEQRegs  = DEBUGGER? Card.SEQ.REGS : [];
                this.regGRCPos1 = data[8];
                this.regGRCPos2 = data[9];
                this.regGRCIndx = data[10];
                this.regGRCData = data[11];
                this.asGRCRegs  = DEBUGGER? Card.GRC.REGS : [];
                this.latches    = data[12];
            
                /*
                 * Since we originally neglected to save/restore the card's active video buffer address and length,
                 * we're now stashing all that information in data[13].  So if we're presented with an old data entry
                 * that contains only the card's memory size, fix it up.
                 *
                 * TODO: This code just creates the required array; the correct video buffer address and length would
                 * still need to be calculated from the current GRC registers; checkMode() knows how to do that, but I'm
                 * not prepared to shoehorn in a call to checkMode() here, and potentially create more issues, for an
                 * old problem that will eventually disappear anyway.
                 */
                var a = data[13];
                if (typeof a == "number") {
                    a = [this.addrBuffer, this.sizeBuffer, a];
                }
                this.addrBuffer = a[0];
                this.sizeBuffer = a[1];
                this.video.assert(this.cbMemory === a[2]);
            
                var cdw = this.cbMemory >> 2;
                this.adwMemory  = data[14];
                if (this.adwMemory && this.adwMemory.length < cdw) {
                    this.adwMemory = State.decompressEvenOdd(this.adwMemory, cdw);
                }
            
                var nAccess = data[15];
                if (nAccess) {
                    if (nAccess & Card.ACCESS.V2) {
                        nAccess &= ~Card.ACCESS.V2;
                    } else {
                        this.video.assert(Card.ACCESS.V1[nAccess & 0xff00] !== undefined && Card.ACCESS.V1[nAccess & 0xff] !== undefined);
                        nAccess = Card.ACCESS.V1[nAccess & 0xff00] | Card.ACCESS.V1[nAccess & 0xff];
                    }
                }
                this.setMemoryAccess(nAccess);
            
                /*
                 * nReadMapShift must perfectly track how the GRC.READMAP register is programmed, so that Card.ACCESS.READ.MODE0
                 * memory read functions read the appropriate plane.  This default is not terribly critical, unless Card.ACCESS.WRITE.MODE0
                 * is chosen as our default AND you want the screen randomizer to work.
                 */
                this.nReadMapShift  = data[16];
            
                /*
                 * Similarly, nSeqMapMask must perfectly track how the SEQ.MAPMASK register is programmed, so that memory write
                 * functions write the appropriate plane(s).  Again, this default is not terribly critical, unless Card.ACCESS.WRITE.MODE0
                 * is chosen as our default AND you want the screen randomizer to work.
                 */
                this.nSeqMapMask    = data[17];
                this.nDataRotate    = data[18];
                this.nBitMapMask    = data[19];
                this.nSetMapData    = data[20];
                this.nSetMapMask    = data[21];
                this.nSetMapBits    = data[22];
                this.nColorCompare  = data[23];
                this.nColorDontCare = data[24];
                this.offStartAddr   = data[25];     // this is the last CRTC start address latched from CRTC.START_ADDR_HI,CRTC.START_ADDR_LO
            
                this.nVertPeriods = this.nVertPeriodsStartAddr = 0;
            
                if (this.nCard == Video.CARD.VGA) {
                    this.regVGAEnable   = data[26];
                    this.regDACMask     = data[27];
                    this.regDACAddr     = data[28];
                    this.regDACShift    = data[29];
                    this.regDACState    = data[30];
                    this.regDACData     = data[31];
                }
            };
            
            /**
             * saveCard()
             *
             * @this {Card}
             * @return {Array}
             */
            Card.prototype.saveCard = function()
            {
                var data = [];
                if (this.nCard !== undefined) {
                    data[0] = this.fActive;
                    data[1] = this.regMode;
                    data[2] = this.regColor;
                    data[3] = this.regStatus;
                    data[4] = this.regCRTIndx | (this.regCRTPrev << 8);
                    data[5] = this.regCRTData;
                    if (this.nCard >= Video.CARD.EGA) {
                        data[6] = this.saveEGA();
                    }
                    data[7] = this.nInitCycles;
                }
                return data;
            };
            
            /**
             * saveEGA()
             *
             * @this {Card}
             * @return {Array}
             */
            Card.prototype.saveEGA = function()
            {
                var data = [];
                data[0]  = this.fATCData;
                data[1]  = this.regATCIndx;
                data[2]  = this.regATCData;
                data[3]  = this.regStatus0;
                data[4]  = this.regMisc;
                data[5]  = this.regFeat;
                data[6]  = this.regSEQIndx;
                data[7]  = this.regSEQData;
                data[8]  = this.regGRCPos1;
                data[9]  = this.regGRCPos2;
                data[10] = this.regGRCIndx;
                data[11] = this.regGRCData;
                data[12] = this.latches;
                data[13] = [this.addrBuffer, this.sizeBuffer, this.cbMemory];
                data[14] = State.compressEvenOdd(this.adwMemory);
                data[15] = this.nAccess | Card.ACCESS.V2;
                data[16] = this.nReadMapShift;
                data[17] = this.nSeqMapMask;
                data[18] = this.nDataRotate;
                data[19] = this.nBitMapMask;
                data[20] = this.nSetMapData;
                data[21] = this.nSetMapMask;
                data[22] = this.nSetMapBits;
                data[23] = this.nColorCompare;
                data[24] = this.nColorDontCare;
                data[25] = this.offStartAddr;
            
                if (this.nCard == Video.CARD.VGA) {
                    data[26] = this.regVGAEnable;
                    data[27] = this.regDACMask;
                    data[28] = this.regDACAddr;
                    data[29] = this.regDACShift;
                    data[30] = this.regDACState;
                    data[31] = this.regDACData;
                }
                return data;
            };
            
            /**
             * dumpRegs()
             *
             * Since we don't pre-allocate the register arrays (eg, ATC, CRTC, GRC, etc) on a Card, we can't
             * rely on their array length, so we instead rely on the number of register names supplied in asRegs.
             *
             * @this {Card}
             * @param {string} sName
             * @param {number} iReg
             * @param {Array} [aRegs]
             * @param {Array} [asRegs]
             */
            Card.prototype.dumpRegs = function(sName, iReg, aRegs, asRegs)
            {
                if (DEBUGGER) {
                    if (!aRegs) {
                        this.dbg.println(sName + ": " + str.toHexByte(iReg));
                        return;
                    }
                    var i, cchMax = 19, s = "";
                    /*
                    var s = "", i, cchMax = 0;
                    for (i = 0; i < asRegs.length; i++) {
                        if (cchMax < asRegs[i].length) cchMax = asRegs[i].length;
                    }
                    cchMax++;
                     */
                    for (i = 0; i < asRegs.length; i++) {
                        if (s) s += '\n';
                        s += sName + "[" + str.toHexByte(i) + "]: " + str.pad(asRegs[i], cchMax) + str.toHexByte(aRegs[i]) + (i === iReg? "*" : "");
                    }
                    this.dbg.println(s);
                }
            };
            
            /**
             * dumpCard()
             *
             * @this {Card}
             */
            Card.prototype.dumpCard = function()
            {
                if (DEBUGGER) {
                    /*
                     * Start with registers that are common to all cards....
                     */
                    this.dumpRegs("CRTC", this.regCRTIndx, this.regCRTData, this.asCRTCRegs);
            
                    if (this.nCard >= Video.CARD.EGA) {
                        this.dumpRegs(" GRC", this.regGRCIndx, this.regGRCData, this.asGRCRegs);
                        this.dumpRegs(" SEQ", this.regSEQIndx, this.regSEQData, this.asSEQRegs);
                        this.dumpRegs(" ATC", this.regATCIndx, this.regATCData, this.asATCRegs);
                        this.dbg.println("   ATCDATA: " + this.fATCData);
                        this.dumpRegs("      FEAT", this.regFeat);
                        this.dumpRegs("      MISC", this.regMisc);
                        this.dumpRegs("   STATUS0", this.regStatus0);
                        /*
                         * There are few more EGA regs we could dump, like GRCPos1, GRCPos2, but does anyone care?
                         */
                    }
            
                    /*
                     * TODO: This simply dumps the last value read from the STATUS1 register, not necessarily
                     * its current state; consider dumping getRetraceBits() instead of (or in addition to) this.
                     */
                    this.dumpRegs("   STATUS1", this.regStatus);
            
                    if (this.nCard == Video.CARD.MDA || this.nCard == Video.CARD.CGA) {
                        this.dumpRegs("   MODEREG", this.regMode);
                    }
            
                    if (this.nCard == Video.CARD.CGA) {
                        this.dumpRegs("     COLOR", this.regColor);
                    }
            
                    if (this.nCard >= Video.CARD.EGA) {
                        this.dbg.println("   LATCHES: 0x" + str.toHex(this.latches));
                        this.dbg.println("    ACCESS: " + str.toHexWord(this.nAccess));
                        this.dbg.println("Use 'dump video [addr]' to dump video memory");
                        /*
                         * There are few more EGA regs we could dump, like GRCPos1, GRCPos2, but does anyone care?
                         */
                    }
                }
            };
            
            /**
             * dumpBuffer()
             *
             * @this {Card}
             * @param {string} sParm
             */
            Card.prototype.dumpBuffer = function(sParm)
            {
                if (DEBUGGER) {
                    if (!this.adwMemory) {
                        this.dbg.println("no buffer");
                        return;
                    }
                    var idw = str.parseInt(sParm);
                    idw = (idw !== undefined? idw - this.addrBuffer : (this.prevDump || 0));
                    if (idw < 0) idw = 0;
                    var cLines = 8, sDump = "";
                    for (var iLine = 0; iLine < cLines; iLine++) {
                        var sData = str.toHex(this.addrBuffer + idw) + ":";
                        for (var i = 0; i < 8 && idw < this.adwMemory.length; i++) {
                            var dw = this.adwMemory[idw++];
                            sData += " " + str.toHex(dw);
                        }
                        if (sDump) sDump += "\n";
                        sDump += sData;
                    }
                    if (sDump) this.dbg.println(sDump);
                    this.prevDump = idw;
                }
            };
            
            /**
             * getMemoryBuffer(addr)
             *
             * If we passed a controller object (ie, this card) to addMemory(), then each allocated Memory block
             * will call this function to obtain a buffer.
             *
             * @this {Card}
             * @param {number} addr
             * @return {Array} containing the buffer (and the offset within that buffer that corresponds to the requested block)
             */
            Card.prototype.getMemoryBuffer = function(addr)
            {
                return [this.adwMemory, addr - this.addrBuffer];
            };
            
            /**
             * getMemoryAccess()
             *
             * Return the last set of memory access functions recorded by setMemoryAccess().
             *
             * @this {Card}
             * @return {Array.<function()>}
             */
            Card.prototype.getMemoryAccess = function()
            {
                return this.afnAccess;
            };
            
            /**
             * setMemoryAccess(nAccess)
             *
             * This transforms the memory access value that getAccess() returns into the best available set of
             * memory access functions, which are then returned via getMemoryAccess() to any memory blocks we allocate
             * or modify.
             *
             * @this {Card}
             * @param {number|undefined} nAccess
             */
            Card.prototype.setMemoryAccess = function(nAccess)
            {
                if (nAccess != null && nAccess != this.nAccess) {
            
                    var nReadAccess = nAccess & Card.ACCESS.READ.MASK;
                    var fnReadByte = Card.ACCESS.afn[nReadAccess];
                    if (!fnReadByte) {
                        if (DEBUG && this.dbg) {
                            this.dbg.message("Card.setMemoryAccess(" + str.toHexWord(nAccess) + "): missing readByte handler");
                            /*
                             * I've taken a look, and the cases I've seen so far stem from the order in which the IBM VGA BIOS
                             * reprograms registers during a mode change: it reprograms the Sequencer registers BEFORE the Graphics
                             * Controller registers, so if GRC.MODE was set to READ.MODE1 prior to the mode change and the new mode
                             * clears SEQ.MEMMODE.SEQUENTIAL, we will briefly be in an "odd" (unsupported) state.
                             *
                             * This didn't used to occur when we relied on the GRC.MODE register instead of the SEQ.MEMMODE for
                             * determining the EVENODD state.  But, as explained in getAccess(), we've run into inconsistencies in
                             * how GRC.MODE.EVENODD is programmed, so we must live with this warning.
                             *
                             * The ultimate solution is to provide a EVENODD handler for READ.MODE1, since there is the remote
                             * possibility of third-party software that relies on that "odd" combination.
                             *
                             *      this.dbg.stopCPU();     // let's take a look
                             */
                        }
                        if (nReadAccess & Card.ACCESS.READ.EVENODD) {
                            fnReadByte = Card.ACCESS.afn[Card.ACCESS.READ.EVENODD];
                        }
                    }
                    var nWriteAccess = nAccess & Card.ACCESS.WRITE.MASK;
                    var fnWriteByte = Card.ACCESS.afn[nWriteAccess];
                    if (!fnWriteByte) {
                        if (DEBUG && this.dbg) {
                            this.dbg.message("Card.setMemoryAccess(" + str.toHexWord(nAccess) + "): missing writeByte handler");
                            /*
                             * I've taken a look, and the cases I've seen so far stem from the order in which the IBM VGA BIOS
                             * reprograms registers during a mode change: it reprograms the Sequencer registers BEFORE the Graphics
                             * Controller registers, so if GRC.MODE was set to WRITE.MODE2 prior to the mode change and the new mode
                             * clears SEQ.MEMMODE.SEQUENTIAL, we will briefly be in an "odd" (unsupported) state.
                             *
                             * This didn't used to occur when we relied on the GRC.MODE register instead of the SEQ.MEMMODE for
                             * determining the EVENODD state.  But, as explained in getAccess(), we've run into inconsistencies in
                             * how GRC.MODE.EVENODD is programmed, so we must live with this warning.
                             *
                             * The ultimate solution is to provide EVENODD handlers for all modes other than WRITE.MODE0, since there
                             * is the remote possibility of third-party software that relies on one of those "odd" combinations.
                             *
                             *      this.dbg.stopCPU();     // let's take a look
                             */
                        }
                        if (nWriteAccess & Card.ACCESS.WRITE.EVENODD) {
                            fnWriteByte = Card.ACCESS.afn[Card.ACCESS.WRITE.EVENODD];
                        }
                    }
                    if (!this.afnAccess) this.afnAccess = new Array(6);
                    this.afnAccess[0] = fnReadByte;
                    this.afnAccess[3] = fnWriteByte;
                    this.nAccess = nAccess;
                }
            };
            
            /*
             * Card Specifications
             *
             * We support dynamically switching between MDA and CGA cards by simply flipping switches on
             * the virtual SW1 switch block and resetting the machine.  However, I'm not sure I'll support
             * dynamically switching the EGA card the same way; there's certainly no UI for it at this point.
             *
             * For each supported card, there is a cardSpec array that the Card class uses to initialize the
             * card's defaults:
             *
             *      [0]: card descriptor
             *      [1]: default CRTC port address
             *      [2]: default video buffer address
             *      [3]: default video buffer size
             *      [4]: total on-board memory (if no "memory" parm was specified)
             *      [5]: default monitor type
             *
             * If total on-board memory is zero, then addMemory() will simply add the specified video buffer
             * to the address space; otherwise, we will allocate an internal buffer (adwMemory) and tell addMemory()
             * to map it to the video buffer address.  The latter approach gives us total control over the buffer;
             * refer to getMemoryAccess().
             *
             * TODO: Consider allocating our own buffer for all video cards, not just EGA/VGA.  For MDA/CGA, I'm not
             * sure it would offer any benefits, other than allowing our internal update functions, like updateScreen(),
             * to access the buffer directly, instead of going through the Bus memory interface.
             */
            Video.cardSpecs = [];
            Video.cardSpecs[Video.CARD.MDA] = ["MDA", Card.MDA.CRTC.INDX.PORT, 0xB0000, 0x01000, 0, ChipSet.MONITOR.MONO];
            Video.cardSpecs[Video.CARD.CGA] = ["CGA", Card.CGA.CRTC.INDX.PORT, 0xB8000, 0x04000, 0, ChipSet.MONITOR.COLOR];
            Video.cardSpecs[Video.CARD.EGA] = ["EGA", Card.CGA.CRTC.INDX.PORT, 0xB8000, 0x04000, 0x10000, ChipSet.MONITOR.EGACOLOR];
            Video.cardSpecs[Video.CARD.VGA] = ["VGA", Card.CGA.CRTC.INDX.PORT, 0xB8000, 0x04000, 0x40000, ChipSet.MONITOR.VGACOLOR];
            
            /**
             * initBus(cmp, bus, cpu, dbg)
             *
             * This is a notification issued by the Computer component, after all the other components (notably the CPU)
             * have had a chance to initialize.
             *
             * @this {Video}
             * @param {Computer} cmp
             * @param {Bus} bus
             * @param {X86CPU} cpu
             * @param {Debugger} dbg
             */
            Video.prototype.initBus = function(cmp, bus, cpu, dbg)
            {
                this.bus = bus;
                this.cpu = cpu;
                this.dbg = dbg;
            
                /*
                 * The only time we do NOT want to trap MDA ports is when the model has been explicitly set to CGA.
                 */
                if (Video.CARD.NAMES[this.model] != Video.CARD.CGA) {
                    bus.addPortInputTable(this, Video.aMDAPortInput);
                    bus.addPortOutputTable(this, Video.aMDAPortOutput);
                }
            
                /*
                 * Similarly, the only time we do NOT want to trap CGA ports is when the model is explicitly set to MDA.
                 */
                if (Video.CARD.NAMES[this.model] != Video.CARD.MDA) {
                    bus.addPortInputTable(this, Video.aCGAPortInput);
                    bus.addPortOutputTable(this, Video.aCGAPortOutput);
                }
            
                /*
                 * Note that in the case of EGA and VGA models, the above code ensures that we will trap both MDA and CGA
                 * port ranges -- which is good, because both the EGA and VGA can be reprogrammed to respond to those ports,
                 * but also potentially bad if you want to simulate a "dual display" system, where one of the displays is
                 * driven by either an MDA or CGA.
                 *
                 * However, you should still be able to make that work by loading the MDA or CGA video component first, because
                 * components should be initialized in the order they appear in the machine configuration file.  Any attempt
                 * by another component to trap the same ports should be ignored.
                 */
                if (this.nCard >= Video.CARD.EGA) {
                    bus.addPortInputTable(this, Video.aEGAPortInput);
                    bus.addPortOutputTable(this, Video.aEGAPortOutput);
                }
            
                if (this.nCard == Video.CARD.VGA) {
                    bus.addPortInputTable(this, Video.aVGAPortInput);
                    bus.addPortOutputTable(this, Video.aVGAPortOutput);
                }
            
                if (DEBUGGER && dbg) {
                    var video = this;
                    dbg.messageDump(Messages.VIDEO, function onDumpVideo(sParm) {
                        video.dumpVideo(sParm);
                    });
                }
            
                /*
                 * If we have an associated keyboard, then ensure that the keyboard will be notified whenever the canvas
                 * gets focus and receives input.
                 */
                this.kbd = cmp.getComponentByType("Keyboard");
                if (this.kbd && this.canvasScreen) {
                    for (var s in this.bindings) {
                        if (s.indexOf("lock") > 0) this.kbd.setBinding("led", s, this.bindings[s]);
                    }
                    this.kbd.setBinding(this.textareaScreen? "textarea" : "canvas", "kbd", this.inputScreen);
                }
            
                this.bEGASwitches = 0x09;   // our default "switches" setting (see aEGAMonitorSwitches)
                this.chipset = cmp.getComponentByType("ChipSet");
                if (this.chipset && this.sSwitches) {
                    if (this.nCard == Video.CARD.EGA) this.bEGASwitches = this.chipset.parseSwitches(this.sSwitches, this.bEGASwitches);
                }
            
                if (this.kbd && this.fTouchScreen) this.captureTouch();
            };
            
            /**
             * setBinding(sHTMLType, sBinding, control)
             *
             * @this {Video}
             * @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
             * @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "refresh")
             * @param {Object} control is the HTML control DOM object (eg, HTMLButtonElement)
             * @return {boolean} true if binding was successful, false if unrecognized binding request
             */
            Video.prototype.setBinding = function(sHTMLType, sBinding, control)
            {
                var video = this;
            
                if (!this.bindings[sBinding]) {
            
                    /*
                     * We now save every binding that comes in, so that if there are bindings for "caps-lock' and the like,
                     * we can forward them to the Keyboard.
                     */
                    this.bindings[sBinding] = control;
            
                    switch (sBinding) {
            
                    case "fullScreen":
                        if (this.container && this.container.doFullScreen) {
                            control.onclick = function onClickFullScreen() {
                                if (DEBUG) video.printMessage("fullScreen()");
                                video.doFullScreen();
                            };
                        } else {
                            if (DEBUG) this.log("FullScreen API not available");
                            control.parentNode.removeChild(control);
                        }
                        return true;
            
                    case "lockPointer":
                        this.sLockMessage = control.textContent;
                        if (this.inputScreen && this.inputScreen.lockPointer) {
                            control.onclick = function onClickLockPointer() {
                                if (DEBUG) video.printMessage("lockPointer()");
                                video.lockPointer(true);
                            };
                        } else {
                            if (DEBUG) this.log("Pointer Lock API not available");
                            control.parentNode.removeChild(control);
                        }
                        return true;
            
                    case "refresh":
                        control.onclick = function onClickRefresh() {
                            if (DEBUG) video.printMessage("refreshScreen()");
                            video.updateScreen(true);
                        };
                        return true;
            
                    default:
                        break;
                    }
                }
                return false;
            };
            
            /**
             * setFocus()
             *
             * @this {Video}
             */
            Video.prototype.setFocus = function()
            {
                if (this.inputScreen) this.inputScreen.focus();
            };
            
            /**
             * getInput()
             *
             * This is an interface used by the Mouse component, so that it can invoke capture/release mouse events from the screen element.
             *
             * @this {Video}
             * @param {Mouse} [mouse]
             * @return {Object|undefined}
             */
            Video.prototype.getInput = function(mouse)
            {
                this.mouse = mouse;
                return this.inputScreen;
            };
            
            /**
             * doFullScreen()
             *
             * @this {Video}
             * @return {boolean} true if request successful, false if not (eg, failed OR not supported)
             */
            Video.prototype.doFullScreen = function()
            {
                var fSuccess = false;
                if (this.container) {
                    if (this.container.doFullScreen) {
                        /*
                         * Styling the container with a width of "100%" and a height of "auto" works great when the aspect ratio
                         * of our virtual screen is at least roughly equivalent to the physical screen's aspect ratio, but now that
                         * we support virtual VGA screens with an aspect ratio of 1.33, that's very much out of step with modern
                         * wide-screen monitors, which usually have an aspect ratio of 1.6 or greater.
                         *
                         * And unfortunately, none of the browsers I've tested appear to make any attempt to scale our container to
                         * the physical screen's dimensions, so the bottom of our screen gets clipped.  To prevent that, I reduce
                         * the width from 100% to whatever percentage will accommodate the entire height of the virtual screen.
                         *
                         * NOTE: Mozilla recommends both a width and a height of "100%", but all my tests suggest that using "auto"
                         * for height works equally well, so I'm sticking with it, because "auto" is also consistent with how I've
                         * implemented a responsive canvas when the browser window is being resized.
                         */
                        var sWidth = "100%";
                        var sHeight = "auto";
                        if (screen && screen.width && screen.height) {
                            var aspectPhys = screen.width / screen.height;
                            var aspectVirt = this.cxScreen / this.cyScreen;
                            if (aspectPhys > aspectVirt) {
                                sWidth = Math.round(aspectVirt / aspectPhys * 100) + '%';
                            }
                            // TODO: We may need to someday consider the case of a physical screen with an aspect ratio < 1.0....
                        }
                        if (!this.fGecko) {
                            this.container.style.width = sWidth;
                            this.container.style.height = sHeight;
                        } else {
                            /*
                             * Sadly, the above code doesn't work for Firefox, because as http://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Using_full_screen_mode
                             * explains:
                             *
                             *      'It's worth noting a key difference here between the Gecko and WebKit implementations at this time:
                             *      Gecko automatically adds CSS rules to the element to stretch it to fill the screen: "width: 100%; height: 100%".
                             *
                             * Which would be OK if Gecko did that BEFORE we're called, but apparently it does that AFTER, effectively
                             * overwriting our careful calculations.  So we style the inner element (canvasScreen) instead, which
                             * requires even more work to ensure that the canvas is properly centered.  FYI, this solution is consistent
                             * with Mozilla's recommendation for working around their automatic CSS rules:
                             *
                             *      '[I]f you're trying to emulate WebKit's behavior on Gecko, you need to place the element you want
                             *      to present inside another element, which you'll make fullscreen instead, and use CSS rules to adjust
                             *      the inner element to match the appearance you want.'
                             */
                            this.canvasScreen.style.width = sWidth;
                            this.canvasScreen.style.width = sWidth;
                            this.canvasScreen.style.display = "block";
                            this.canvasScreen.style.margin = "auto";
                        }
                        this.container.style.backgroundColor = "black";
                        this.container.doFullScreen();
                        fSuccess = true;
                    }
                    this.setFocus();
                }
                return fSuccess;
            };
            
            /**
             * notifyFullScreen(fFullScreen)
             *
             * @this {Video}
             * @param {boolean|null} fFullScreen (null if there was a full-screen error)
             */
            Video.prototype.notifyFullScreen = function(fFullScreen)
            {
                if (!fFullScreen && this.container) {
                    if (!this.fGecko) {
                        this.container.style.width = this.container.style.height = "";
                    } else {
                        this.canvasScreen.style.width = this.canvasScreen.style.height = "";
                    }
                }
                this.printMessage("notifyFullScreen(" + fFullScreen + ")", true);
                if (this.kbd) this.kbd.notifyEscape(fFullScreen);
            };
            
            /**
             * lockPointer()
             *
             * @this {Video}
             * @param {boolean} fLock
             * @return {boolean} true if request successful, false if not (eg, failed OR not supported)
             */
            Video.prototype.lockPointer = function(fLock)
            {
                var fSuccess = false;
                if (this.inputScreen) {
                    if (fLock) {
                        if (this.inputScreen.lockPointer) {
                            this.inputScreen.lockPointer();
                            this.mouse.notifyPointerLocked(true);
                            fSuccess = true;
                        }
                    } else {
                        if (this.inputScreen.unlockPointer) {
                            this.inputScreen.unlockPointer();
                            this.mouse.notifyPointerLocked(false);
                            fSuccess = true;
                        }
                    }
                    this.setFocus();
                }
                return fSuccess;
            };
            
            /**
             * notifyPointerActive(fActive)
             *
             * @this {Video}
             * @param {boolean} fActive
             * @return {boolean} true if autolock enabled AND pointer lock supported, false if not
             */
            Video.prototype.notifyPointerActive = function(fActive)
            {
                if (this.fAutoLock) {
                    return this.lockPointer(fActive);
                }
                return false;
            };
            
            /**
             * notifyPointerLocked(fLocked)
             *
             * @this {Video}
             * @param {boolean} fLocked
             */
            Video.prototype.notifyPointerLocked = function(fLocked)
            {
                if (this.mouse) {
                    this.mouse.notifyPointerLocked(fLocked);
                    if (this.kbd) this.kbd.notifyEscape(fLocked);
                }
                var control = this.bindings["lockPointer"];
                if (control) control.textContent = (fLocked? "Press Esc to Unlock Pointer" : this.sLockMessage);
            };
            
            /**
             * captureTouch()
             *
             * @this {Video}
             */
            Video.prototype.captureTouch = function()
            {
                var control = this.inputScreen;
                if (control) {
                    var video = this;
                    if (!this.fCaptured) {
                        control.addEventListener(
                            'touchstart',
                            function onTouchStart(event) { video.onTouchStart(event); },
                            false                   // we'll specify false for the 'useCapture' parameter for now...
                        );
                        control.addEventListener(
                            'touchmove',
                            function onTouchMove(event) { video.onTouchMove(event); },
                            true
                        );
                        control.addEventListener(
                            'touchend',
                            function onTouchEnd(event) { video.onTouchEnd(event); },
                            false                   // we'll specify false for the 'useCapture' parameter for now...
                        );
                        if (DEBUG) {
                            /*
                             */
                            control.addEventListener(
                                'mousedown',
                                function onMouseDown(event) { video.onTouchStart(event); },
                                false               // we'll specify false for the 'useCapture' parameter for now...
                            );
                            /*
                            control.addEventListener(
                                'mousemove',
                                function onMouseMove(event) { video.onTouchMove(event); },
                                true
                            );
                            control.addEventListener(
                                'mouseup',
                                function onMouseUp(event) { video.onTouchEnd(event); },
                                false               // we'll specify false for the 'useCapture' parameter for now...
                            );
                             */
                        }
                        // this.log("touch events captured");
                        this.fCaptured = true;
                    }
                }
            };
            
            /**
             * onFocusChange(fFocus)
             *
             * @this {Video}
             * @param {boolean} fFocus is true if gaining focus, false if losing it
             */
            Video.prototype.onFocusChange = function(fFocus)
            {
                /*
                 * As per http://stackoverflow.com/questions/6740253/disable-scrolling-when-changing-focus-form-elements-ipad-web-app,
                 * I decided to try this work-around to prevent the webpage from scrolling around whenever the canvas is given
                 * focus.  That sort of scrolling-into-view sounds great in principle, but in practice, if you were reading some other
                 * portion of the page, it can be irritating to be scrolled away from that portion when refreshing/returning to the page.
                 *
                 * However, this work-around doesn't seem to work with the latest version of Safari (or else I misunderstood something).
                 *
                 *  if (fFocus) {
                 *      window.scrollTo(0, 0);
                 *      window.document.body.scrollTop = 0;
                 *  }
                 */
                this.fHasFocus = fFocus;
                if (this.kbd) this.kbd.onFocusChange(fFocus);
            };
            
            /*
            Video.prototype.releaseTouch = function()
            {
            };
            */
            
            /**
             * onTouchStart(event)
             *
             * @this {Video}
             * @param {Event} event object from a 'touch' event
             */
            Video.prototype.onTouchStart = function(event)
            {
                if (DEBUG) this.printMessage("onTouchStart()");
                this.processTouchEvent(event, true);
            };
            
            /**
             * onTouchMove(event)
             *
             * @this {Video}
             * @param {Event} event object from a 'touch' event
             */
            Video.prototype.onTouchMove = function(event)
            {
                if (DEBUG) this.printMessage("onTouchMove()");
                this.processTouchEvent(event, false);
            };
            
            /**
             * onTouchEnd(event)
             *
             * @this {Video}
             * @param {Event} event object from a 'touch' event
             */
            Video.prototype.onTouchEnd = function(event)
            {
                if (DEBUG) this.printMessage("onTouchEnd()");
            };
            
            /**
             * processTouchEvent(event, fStart)
             *
             * @this {Video}
             * @param {Event} event object from a 'touch' event
             * @param {boolean} fStart if this is a 'touchstart' event
             */
            Video.prototype.processTouchEvent = function(event, fStart)
            {
                // if (!event) event = window.event;
                /*
                 * My thinking here is that if the canvas does NOT yet have focus, then we should actually SKIP
                 * the usual preventDefault() call, so that everything the user has come to expect (eg, activation of
                 * the soft keyboard) will work as before.
                 *
                 * The process of touching the canvas means it should ultimately receive focus, and as long as it
                 * retains focus, preventDefault() will always be called.
                 */
                if (this.fHasFocus) event.preventDefault();
            
                /*
                 * Touch coordinates (that is, the pageX and pageY properties) are relative to the page, so to make
                 * them relative to the canvas, we must subtract the canvas's left and top positions.  This Apple web page:
                 *
                 *      https://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/HTML-canvas-guide/AddingMouseandTouchControlstoCanvas/AddingMouseandTouchControlstoCanvas.html
                 *
                 * makes it sound simple, but it turns out we have to walk the canvas' entire "parentage" of DOM elements
                 * to get the exact offsets.
                 *
                 * TODO: Determine whether the getBoundingClientRect() code used in panel.js for mouse events can also
                 * be used here to simplify this annoyingly complicated code for touch events.
                 */
                var xTouchOffset = 0;
                var yTouchOffset = 0;
                var eCurrent = this.canvasScreen;
                do {
                    if (!isNaN(eCurrent.offsetLeft)) {
                        xTouchOffset += eCurrent.offsetLeft;
                        yTouchOffset += eCurrent.offsetTop;
                    }
                } while ((eCurrent = eCurrent.offsetParent));
            
                /*
                 * Due to the responsive nature of our pages, the displayed size of the canvas may be smaller than the
                 * allocated size, and the coordinates we receive from touch events are based on the currently displayed size.
                 */
                var xScale =  this.cxScreen / this.canvasScreen.offsetWidth;
                var yScale = this.cyScreen / this.canvasScreen.offsetHeight;
            
                /**
                 * @name Event
                 * @property {Array} targetTouches
                 */
                var xTouch, yTouch;
                if (!event.targetTouches) {
                    xTouch = event.pageX;
                    yTouch = event.pageY;
                } else {
                    xTouch = event.targetTouches[0].pageX;
                    yTouch = event.targetTouches[0].pageY;
                }
                xTouch = ((xTouch - xTouchOffset) * xScale);
                yTouch = ((yTouch - yTouchOffset) * yScale);
                var xThird = (xTouch / (this.cxScreen / 3)) | 0;
                var yThird = (yTouch / (this.cyScreen / 3)) | 0;
            
                /*
                 * At this point, xThird and yThird should both be one of 0, 1 or 2, indicating which horizontal and vertical
                 * third of the virtual screen the touch event occurred.
                 */
                if (/* xThird == 1 && */ yThird != 1) {
                    if (!yThird) {
                        this.kbd.addActiveKey(Keyboard.CLICKCODES.UP, true);
                    } else {
                        this.kbd.addActiveKey(Keyboard.CLICKCODES.DOWN, true);
                    }
                } else if (/* yThird == 1 && */ xThird != 1) {
                    if (!xThird) {
                        this.kbd.addActiveKey(Keyboard.CLICKCODES.LEFT, true);
                    } else {
                        this.kbd.addActiveKey(Keyboard.CLICKCODES.RIGHT, true);
                    }
                }
            };
            
            /**
             * powerUp(data, fRepower)
             *
             * @this {Video}
             * @param {Object|null} data
             * @param {boolean} [fRepower]
             * @return {boolean} true if successful, false if failure
             */
            Video.prototype.powerUp = function(data, fRepower)
            {
                if (!fRepower) {
                    if (!data || !this.restore) {
                        this.reset();
                    } else {
                        if (!this.restore(data)) return false;
                    }
                }
                return true;
            };
            
            /**
             * powerDown(fSave, fShutdown)
             *
             * This is where we might add some method of blanking the display, without the disturbing the video
             * buffer contents, and blocking all further updates to the display.
             *
             * @this {Video}
             * @param {boolean} fSave
             * @param {boolean} [fShutdown]
             * @return {Object|boolean} component state if fSave; otherwise, true if successful, false if failure
             */
            Video.prototype.powerDown = function(fSave, fShutdown)
            {
                return fSave && this.save? this.save() : true;
            };
            
            /**
             * reset()
             *
             * @this {Video}
             */
            Video.prototype.reset = function()
            {
                var fRandomize = true;
                var nMonitorType = ChipSet.MONITOR.NONE;
            
                /*
                 * We'll ask the ChipSet what SW1 indicates for monitor type, but we may override it if a specific
                 * video card model is set.  For EGA, SW1 is supposed to be set to indicate NO monitor, and we rely
                 * on the EGA's own switch settings instead.
                 */
                if (this.chipset) {
                    nMonitorType = this.chipset.getSWVideoMonitor();
                }
            
                /*
                 * As we noted in the constructor, when a model is specified, that takes precedence over any monitor
                 * switch settings.  Conversely, when no model is specified, the nCard setting is considered provisional,
                 * so the monitor switch settings, if any, are allowed to determine the card type.
                 */
                if (!this.model) {
                    this.nCard = (nMonitorType == ChipSet.MONITOR.MONO? Video.CARD.MDA : Video.CARD.CGA);
                }
            
                this.nModeDefault = Video.MODE.CGA_80X25;
            
                switch (this.nCard) {
                case Video.CARD.VGA:
                    nMonitorType = ChipSet.MONITOR.VGACOLOR;
                    break;
                case Video.CARD.EGA:
                    var aMonitors = Video.aEGAMonitorSwitches[this.bEGASwitches];
                    /*
                     * TODO: Figure out how to deal with aMonitors[2], the boolean which indicates
                     * whether the EGA is driving the primary monitor (true) or the secondary monitor (false).
                     */
                    if (aMonitors) nMonitorType = aMonitors[0];
                    if (!nMonitorType) nMonitorType = ChipSet.MONITOR.EGACOLOR;
                    break;
                case Video.CARD.MDA:
                    nMonitorType = ChipSet.MONITOR.MONO;
                    this.nModeDefault = Video.MODE.MDA_80X25;
                    break;
                case Video.CARD.CGA:
                    /* falls through */
                default:
                    nMonitorType = ChipSet.MONITOR.COLOR;
                    break;
                }
            
                if (this.nMonitorType !== nMonitorType) {
                    this.nMonitorType = nMonitorType;
                    fRandomize = true;
                }
            
                this.cardActive = null;
                this.cardMono = this.cardMDA = new Card(this, Video.CARD.MDA);
                this.cardColor = this.cardCGA = new Card(this, Video.CARD.CGA);
            
                if (this.nCard < Video.CARD.EGA) {
                    this.cardEGA = new Card();      // define a dummy (uninitialized) EGA card for now
                }
                else {
                    this.cardEGA = new Card(this, this.nCard, null, this.cbMemory);
                    this.enableEGA();
                }
            
                /*
                 * We need to call buildFonts() *after* the card(s) are initialized but *before* setMode() is called.
                 */
                this.buildFonts();
            
                this.nMode = null;
                this.iCellCursor = -1;  // initially, there is no visible cursor cell
                this.cBlinks = -1;      // initially, blinking is not active
                this.cBlinkVisible = 0; // no visible blinking characters (yet)
            
                this.setMode(this.nModeDefault);
            
                if (this.cardActive.addrBuffer && fRandomize) {
                    /*
                     * On the initial power-on, we initialize the video buffer to random characters, as a way of testing
                     * whether our font(s) were successfully loaded.  It's assumed that our default display mode is a text mode,
                     * and that since this is a reset, the CRTC.START_ADDR registers are zero as well.
                     *
                     * If this is an MDA device, then the buffer should reside at 0xB0000 through 0xB0FFF, for a total length
                     * of 4Kb (0x1000), where every even byte contains a character code, and every odd byte contains an attribute
                     * code.  See the ATTR bit definitions above for applicable color, intensity, and blink values.  On a CGA
                     * device, the buffer resides at 0xB8000 through 0xBBFFF, for a total length of 16Kb.
                     *
                     * Note that the only valid MDA display mode (7) is the 80x25 text mode, which uses 4000 bytes (2000 character
                     * bytes + 2000 attribute bytes), not all 4096 bytes; addrScreenLimit reflects the visible limit, not the
                     * physical limit.  Also, as noted in updateScreen(), this simplistic calculation of the extent of visible
                     * screen memory is valid only for text modes; in general, it's safer to use cardActive.sizeBuffer as the extent.
                     */
                    var addrScreenLimit = this.cardActive.addrBuffer + this.cbScreen;
                    for (var addrScreen = this.cardActive.addrBuffer; addrScreen < addrScreenLimit; addrScreen += 2) {
                        var dataRandom = (Math.random() * 0x10000)|0;
                        var bChar, bAttr;
                        if (this.nMonitorType == ChipSet.MONITOR.EGACOLOR || this.nMonitorType == ChipSet.MONITOR.VGACOLOR) {
                            /*
                             * For the EGA, we choose sequential characters; for random characters, copy the MDA/CGA code below.
                             */
                            bChar = (addrScreen >> 1) & 0xff;
                            bAttr = (dataRandom >> 8) & ~Video.ATTRS.BGND_BLINK;    // TODO: turn blink attributes off unless we can ensure blinking is initially disabled
                            if ((bAttr >> 4) == (bAttr & 0xf)) {
                                bAttr ^= 0x0f;      // if background matches foreground, invert foreground to ensure character visibility
                            }
                        } else {
                            bChar = dataRandom & 0xff;
                            bAttr = ((dataRandom & 0x100)? (Video.ATTRS.FGND_WHITE | Video.ATTRS.BGND_BLACK) : (Video.ATTRS.FGND_BLACK | Video.ATTRS.BGND_WHITE)) | ((Video.ATTRS.FGND_BRIGHT /* | Video.ATTRS.BGND_BLINK */) & (dataRandom >> 8));
                        }
                        this.bus.setShortDirect(addrScreen, bChar | (bAttr << 8));
                    }
                    this.updateScreen(true);
                }
            };
            
            /**
             * enableEGA()
             *
             * Redirect cardMono or cardColor to cardEGA as appropriate.
             *
             * @this {Video}
             */
            Video.prototype.enableEGA = function()
            {
                if (!(this.cardEGA.regMisc & Card.MISC.IO_SELECT)) {
                    this.cardMono = this.cardEGA;
                    this.cardColor = this.cardCGA;  // this is done mainly to siphon away any CGA I/O
                } else {
                    this.cardMono = this.cardMDA;   // similarly, this is done to siphon away any MDA I/O
                    this.cardColor = this.cardEGA;
                }
            };
            
            /**
             * save()
             *
             * This implements save support for the Video component.
             *
             * @this {Video}
             * @return {Object}
             */
            Video.prototype.save = function()
            {
                var state = new State(this);
                state.set(0, this.cardMDA.saveCard());
                state.set(1, this.cardCGA.saveCard());
                state.set(2, [this.nMonitorType, this.nModeDefault, this.nMode]);
                state.set(3, this.cardEGA.saveCard());
                return state.data();
            };
            
            /**
             * restore(data)
             *
             * This implements restore support for the Video component.
             *
             * @this {Video}
             * @param {Object} data
             * @return {boolean} true if successful, false if failure
             */
            Video.prototype.restore = function(data)
            {
                var a = data[2];
                this.nMonitorType = a[0];
                this.nModeDefault = a[1];
                this.nMode = a[2];
            
                this.cardActive = null;
                this.cardMono = this.cardMDA = new Card(this, Video.CARD.MDA, data[0]);
                this.cardColor = this.cardCGA = new Card(this, Video.CARD.CGA, data[1]);
            
                /*
                 * If no EGA was originally initialized, then cardEGA will remain uninitialized.
                 */
                this.cardEGA = new Card(this, this.nCard, data[3], this.cbMemory);
                if (this.cardEGA.fActive) this.enableEGA();
            
                /*
                 * We need to call buildFonts() *after* the card(s) are initialized but *before* setMode() is called.
                 */
                this.buildFonts();
            
                /*
                 * While I could restore the active card here, it's better for setMode() to do it, because
                 * setMode() will also take care of mapping the appropriate video buffer.  So, after restore() has
                 * finished, we call checkMode(), because the current video mode (nMode) is determined by the
                 * active card state.
                 *
                 * Unfortunately, that creates a chicken-and-egg problem, since I just said I didn't want to select
                 * the active card here.
                 *
                 * So, we'll add some "cop-out" code to checkMode(): if there's no active card, then fall-back
                 * to the last known video mode (nMode) and force a call to setMode().
                 *
                 *      this.cardActive = (this.cardMDA.fActive? this.cardMDA : (this.cardCGA.fActive? this.cardCGA : undefined));
                 */
                if (!this.checkMode()) return false;
            
                this.checkCursor();
                return true;
            };
            
            /**
             * onLoadSetFonts(sFontFile, sFontData, nErrorCode)
             *
             * @this {Video}
             * @param {string} sFontFile
             * @param {string} sFontData
             * @param {number} nErrorCode (response from server if anything other than 200)
             */
            Video.prototype.onLoadSetFonts = function(sFontFile, sFontData, nErrorCode)
            {
                if (nErrorCode) {
                    this.notice("Unable to load font ROM image (error " + nErrorCode + ")");
                    return;
                }
                try {
                    /*
                     * The most likely source of any exception will be right here, where we're parsing the JSON-encoded data.
                     */
                    var abFontData = eval("(" + sFontData + ")");
            
                    if (!abFontData.length) {
                        Component.error("Empty font ROM image: " + sFontFile);
                        return;
                    }
                    else if (abFontData.length == 1) {
                        Component.error(abFontData[0]);
                        return;
                    }
                    /*
                     * Translate the character data into separate "fonts", each of which will be a separate canvas object, with all
                     * 256 characters arranged in a 16x16 grid.
                     */
                    if (abFontData.length == 8192) {
                        /*
                         * Here are the first few rows of MDA font data, at the 0K and 2K boundaries:
                         *
                         *      00000000  00 00 00 00 00 00 00 00  00 00 7e 81 a5 81 81 bd  |..........~.....|
                         *      00000010  00 00 7e ff db ff ff c3  00 00 00 36 7f 7f 7f 7f  |..~........6....|
                         *      ...
                         *      00000800  00 00 00 00 00 00 00 00  99 81 7e 00 00 00 00 00  |..........~.....|
                         *      00000810  e7 ff 7e 00 00 00 00 00  3e 1c 08 00 00 00 00 00  |..~.....>.......|
                         *
                         * 8 bytes of data from a row in each of the 2K chunks are combined to form a 8-bit wide character with
                         * a maximum height of 16 bits.  Assembling the bits for character 0x01 (a happy face), we observe the following:
                         *
                         *      0 0 0 0 0 0 0 0  <== 00 from offset 0x0008
                         *      0 0 0 0 0 0 0 0  <== 00 from offset 0x0009
                         *      0 1 1 1 1 1 1 0  <== 7e from offset 0x000A
                         *      1 0 0 0 0 0 0 1  <== 81 from offset 0x000B
                         *      1 0 1 0 0 1 0 1  <== a5 from offset 0x000C
                         *      1 0 0 0 0 0 0 1  <== 81 from offset 0x000D
                         *      1 0 0 0 0 0 0 1  <== 81 from offset 0x000E
                         *      1 0 1 1 1 1 0 1  <== bd from offset 0x000F
                         *      1 0 0 1 1 0 0 1  <== 99 from offset 0x0808
                         *      1 0 0 0 0 0 0 1  <== 81 from offset 0x0809
                         *      0 1 1 1 1 1 1 0  <== 7e from offset 0x080A
                         *      0 0 0 0 0 0 0 0  <== 00 from offset 0x080B
                         *      0 0 0 0 0 0 0 0  <== 00 from offset 0x080C
                         *      0 0 0 0 0 0 0 0  <== 00 from offset 0x080D
                         *      0 0 0 0 0 0 0 0  <== 00 from offset 0x080E
                         *      0 0 0 0 0 0 0 0  <== 00 from offset 0x080F
                         *
                         * In the second 2K chunk, we observe that the last two bytes of every font cell definition are zero;
                         * this confirms our understanding that MDA font cell size is 8x14.
                         *
                         * Finally, there's the issue of screen cell size, which is actually 9x14 on the MDA.  We compensate for that
                         * by building a 9x14 font, even though there's only 8x14 bits of data. As http://www.seasip.info/VintagePC/mda.html
                         * explains:
                         *
                         *      "For characters C0h-DFh, the ninth pixel column is a duplicate of the eighth; for others, it's blank."
                         *
                         * This last point is confirmed by "The IBM Personal Computer From The Inside Out", p.295:
                         *
                         *      "Another unique feature of the monochrome adapter is a set of line-drawing and area-fill characters
                         *      that give continuous lines and filled areas. This is unusual for a display with a 9x14 character box
                         *      because the character generator provides a row only eight dots wide. On most displays, a blank 9th
                         *      dot is then inserted between characters. On the monochrome display, there is circuitry that duplicates
                         *      the 8th dot into the 9th dot position for characters whose ASCII codes are 0xB0 [sic] through 0xDF."
                         *
                         * However, the above text is mistaken about the start of the range.  While there ARE line-drawing characters
                         * in the range 0xB0-0xBF, none of them extend all the way to the right edge; IBM carefully segregated them.
                         * And in fact, characters 0xB0-0xB2 contain hash patterns that you would NOT want extended into the 9th column.
                         *
                         * The CGA font is part of the same ROM.  In fact, there are TWO CGA fonts in the ROM: a thin 5x7 "single dot"
                         * font located at offset 0x1000, and a thick 7x7 "double dot" font at offset 0x1800.  The latter is the default
                         * font, unless overridden by a jumper setting on the CGA card, so it is our default CGA font as well (although
                         * someday we may provide a virtual jumper setting that allows you to select the thinner font).
                         *
                         * The first offset we must pass to setFontData() is the offset of the CGA font; we choose the thicker "double dot"
                         * CGA font at 0x1800 (which was the PC's default font as well), instead of the thinner "single dot" font at 0x1000.
                         * The second offset is for the MDA font.
                         */
                        this.setFontData(abFontData, [0x1800, 0x0000]);
                    }
                    else {
                        this.notice("Unrecognized font data length (" + abFontData.length + ")");
                        return;
                    }
            
                } catch (e) {
                    this.notice("Font ROM data error: " + e.message);
                    return;
                }
                /*
                 * If we're still here, then we're ready!
                 *
                 * UPDATE: Per issue #21, I'm issuing setReady() *only* if a valid contextScreen exists *or* a Debugger is attached.
                 *
                 * TODO: Consider a more general-purpose solution for deciding whether or not the user wants to run in a "headless" mode.
                 */
                if (this.contextScreen || this.dbg) this.setReady();
            };
            
            /**
             * onROMLoad(abRom, aParms)
             *
             * Called by the ROM's copyROM() function whenever a ROM component with a 'notify' attribute containing
             * our component ID has been loaded.
             *
             * @this {Video}
             * @param {Array.<number>} abROM
             * @param {Array.<number>} [aParms]
             */
            Video.prototype.onROMLoad = function(abROM, aParms)
            {
                if (this.nCard == Video.CARD.EGA) {
                    /*
                     * TODO: Unlike the MDA/CGA font data, we may want to hang onto this data, so that we can
                     * regenerate the color font(s) whenever the foreground and/or background colors have changed.
                     */
                    if (DEBUG) this.printMessage("onROMLoad(): EGA fonts loaded");
                    /*
                     * For EGA cards, in the absence of any parameters, we assume that we're receiving the original
                     * IBM EGA ROM, which stores its 8x14 font data at 0x2230 as one continuous sequence; the total size
                     * of the 8x14 font is 0xE00 bytes.
                     *
                     * At 0x3030, there is an "ALPHA SUPPLEMENT" table, which contains 15 bytes per row instead of 14,
                     * because each row is preceded by one byte containing the corresponding ASCII code; there are 20
                     * entries in the supplemental table, for a total size of 0x12C bytes.
                     *
                     * Finally, at 0x3160, we have the 8x8 font data (also known as the thicker "double dot" CGA font);
                     * the total size of the 8x8 font is 0x800 bytes.  No other font data is present in the EGA ROM;
                     * the thin 5x7 "single dot" CGA font is notably absent, which is fine, because we never loaded it for
                     * the MDA/CGA either.
                     *
                     * TODO: Determine how the supplemental table is used and whether we need to add some "run-time"
                     * font generation to support it (as opposed to "init-time" generation, which is all we do now).
                     * There's probably a similar need for user-defined fonts; for now, they're simply not supported.
                     */
                    this.setFontData(abROM, aParms || [0x3160, 0x2230], 8);
                }
                else if (this.nCard == Video.CARD.VGA) {
                    if (DEBUG) this.printMessage("onROMLoad(): VGA fonts loaded");
                    /*
                     * For VGA cards, in the absence of any parameters, we assume that we're receiving the original
                     * IBM VGA ROM, which contains an 8x14 font at 0x3F8D (and corresponding supplemental table at 0x4D8D)
                     * and an 8x8 font at 0x378D; however, it also contains an 8x16 font at 0x4EBA (and corresponding
                     * supplemental table at 0x5EBA).  See our reconstructed source code in ibm-vga.nasm.
                     */
                    this.setFontData(abROM, aParms || [0x378d, 0x3f8d], 8);
                }
                this.setReady();
            };
            
            /**
             * getCardColors(nBitsPerPixel)
             *
             * @this {Video}
             * @param {number} [nBitsPerPixel]
             * @returns {Array}
             */
            Video.prototype.getCardColors = function(nBitsPerPixel)
            {
                if (nBitsPerPixel == 1) {
                    /*
                     * Only 2 total colors.
                     */
                    this.aRGB[0] = Video.aCGAColors[Video.ATTRS.FGND_BLACK];
                    this.aRGB[1] = Video.aCGAColors[Video.ATTRS.FGND_WHITE];
                    return this.aRGB;
                }
            
                if (nBitsPerPixel == 2) {
                    /*
                     * Of the 4 colors returned, the first color comes from regColor and the other 3 come from one of
                     * the two hard-coded CGA color sets:
                     *
                     *      Color Set 1             Color Set 2
                     *      -----------             -----------
                     *      Background (0x00)       Background (0x00)
                     *      Green      (0x12)       Cyan       (0x13)
                     *      Red        (0x14)       Magenta    (0x15)
                     *      Brown      (0x16)       White      (0x17)
                     *
                     * The numbers in parentheses are the EGA ATC palette register values that the EGA BIOS uses for each
                     * color set; on an EGA, I synthesize a fake CGA regColor value, until I (TODO:) figure out exactly how
                     * the EGA simulates the CGA color palette.
                     */
                    var regColor = this.cardActive.regColor;
                    if (this.cardActive === this.cardEGA) {
                        var bBackground = this.cardEGA.regATCData[0];
                        regColor = bBackground & Card.CGA.COLOR.BORDER;
                        if (bBackground & Card.ATC.PALETTE.BRIGHT) regColor |= Card.CGA.COLOR.BRIGHT;
                        if (this.cardEGA.regATCData[1] != 0x12) regColor |= Card.CGA.COLOR.COLORSET2;
                    }
                    this.aRGB[0] = Video.aCGAColors[regColor & (Card.CGA.COLOR.BORDER | Card.CGA.COLOR.BRIGHT)];
                    var aColorSet = (regColor & Card.CGA.COLOR.COLORSET2)? Video.aCGAColorSet2 : Video.aCGAColorSet1;
                    for (var iColor = 0; iColor < aColorSet.length; iColor++) {
                        this.aRGB[iColor+1] = Video.aCGAColors[aColorSet[iColor]];
                    }
                    return this.aRGB;
                }
            
                if (this.cardColor === this.cardCGA) {
                    /*
                     * There's no need to update this.aRGB if we simply want to return a hard-coded set of 16 colors.
                     */
                    return Video.aCGAColors;
                }
            
                this.assert(this.cardColor === this.cardEGA);
            
                if (this.fRGBValid && nBitsPerPixel && !this.aRGB[16]) {
                    this.fRGBValid = false;
                }
            
                if (!this.fRGBValid) {
            
                    var card = this.cardEGA;
                    var aDAC = card.regDACData;
                    var aRegs, i, dw, b, bRed, bGreen, bBlue;
            
                    if (nBitsPerPixel == 8) {
                        /*
                         * The card must be a VGA, and it's using an (8bpp) mode that bypasses the ATC, so we need to pull
                         * RGB data exclusively from the 256-entry DAC; each entry contains 6-bit red, green, and blue values
                         * packed into bits 0-5, 6-11, and 12-17, respectively, each of which we effectively shift left 2 bits:
                         * a crude 6-to-8-bit color conversion.
                         */
                        for (i = 0; i < 256; i++) {
                            dw = aDAC[i] || 0;
                            this.assert(dw >= 0 && dw <= 0x3ffff);
                            bRed =   (dw << 2) & 0xfc;
                            bGreen = (dw >> 4) & 0xfc;
                            bBlue =  (dw >> 10) & 0xfc;
                            this.aRGB[i] = [bRed, bGreen, bBlue, 0xff];
                        }
                    } else {
                        /*
                         * We need to pull RGB data from the ATC; moreover, if the ATC hasn't been initialized yet,
                         * we go with a default EGA-compatible 16-color palette.  We'll also use the DAC if there is one
                         * (ie, this is actually a VGA) and it appears to be initialized (ie, the VGA BIOS has been run).
                         */
                        var fDAC = (aDAC && aDAC[255]);
                        aRegs = (card.regATCData[15] != null? card.regATCData : Video.aEGAPalDef);
                        for (i = 0; i < 16; i++) {
                            b = aRegs[i] & Card.ATC.PALETTE.MASK;
                            /*
                             * If the DAC is valid, we need to supplement the 6 bits of each ATC palette entry with the values
                             * for bits 6 and 7 from the ATC COLORSEL register (and overwrite bits 4 and 5 if ATC.MODE.COLORSEL_ALL
                             * is set as well).
                             *
                             * The only reasons the DAC wouldn't be valid are if 1) we're trying to display an image before the machine
                             * and its BIOS have had a chance to initialize the DAC (because we don't preset it to anything, although
                             * perhaps we should), or 2) this is an EGA, which doesn't have a DAC.
                             */
                            if (fDAC) {
                                b |= (card.regATCData[Card.ATC.COLORSEL.INDX] & (Card.ATC.COLORSEL.DAC_BIT7 | Card.ATC.COLORSEL.DAC_BIT6)) << 4;
                                if (card.regATCData[Card.ATC.MODE.INDX] & Card.ATC.MODE.COLORSEL_ALL) {
                                    b &= ~0x30;
                                    b |= (card.regATCData[Card.ATC.COLORSEL.INDX] & (Card.ATC.COLORSEL.DAC_BIT5 | Card.ATC.COLORSEL.DAC_BIT4)) << 4;
                                }
                                this.assert(b >= 0 && b <= 255);
                                dw = aDAC[b];
                                this.assert(dw >= 0 && dw <= 0x3ffff);
                                bRed =   (dw << 2) & 0xfc;
                                bGreen = (dw >> 4) & 0xfc;
                                bBlue =  (dw >> 10) & 0xfc;
                            } else {
                                bRed =   (((b & 0x04)? 0xaa : 0) | ((b & 0x20)? 0x55 : 0));
                                bGreen = (((b & 0x02)? 0xaa : 0) | ((b & 0x10)? 0x55 : 0));
                                bBlue =  (((b & 0x01)? 0xaa : 0) | ((b & 0x08)? 0x55 : 0));
                            }
                            this.aRGB[i] = [bRed, bGreen, bBlue, 0xff];
                        }
                    }
                    this.fRGBValid = true;
                }
            
                return this.aRGB;
            };
            
            /**
             * setFontData(abFontData, aFontOffsets, cxFontChar)
             *
             * To support partial font rebuilds (required for the EGA), we now preserve the original font data (abFontData),
             * font offsets (aFontOffsets), and font character width (8 for the EGA, undefined for the MDA/CGA).
             *
             * TODO: Ultimately, we want to have exactly one dedicated font for the EGA, the data for which we'll read directly
             * from plane 2 of video memory, instead of relying on the original font data in ROM.  Relying on the ROM data was
             * originally just a crutch to help get EGA support bootstrapped.
             *
             * Also, for the MDA/CGA, we should be discarding the font data after the first buildFonts() call, because we
             * should not need to ever rebuild the fonts for those cards (both their font patterns and colors were hard-coded).
             *
             * @this {Video}
             * @param {*} abFontData is the raw font data, from the ROM font file
             * @param {Array.<number>} aFontOffsets contains offsets into abFontData: [0] for CGA, [1] for MDA
             * @param {number} [cxFontChar] is a fixed character width to use for all fonts; undefined to use MDA/CGA defaults
             */
            Video.prototype.setFontData = function(abFontData, aFontOffsets, cxFontChar)
            {
                this.abFontData = abFontData;
                this.aFontOffsets = aFontOffsets;
                this.cxFontChar = cxFontChar;
            };
            
            /**
             * buildFonts()
             *
             * buildFonts() is called whenever the Video component is reset or restored; we used to build the fonts as soon
             * as the ROM containing them was loaded, and then throw away the underlying font data, but with the EGA's ability
             * to change the color of any font, font building must now be deferred until the reset or restore notifications,
             * ensuring we have access to all the colors the card is currently programmed to use.
             *
             * We're also called whenever EGA palette registers are modified, since one or more fonts will likely need
             * to be rebuilt (this is because our fonts contain pre-rendered images of all glyphs for all 16 active colors).
             * Calls to buildFonts() should not be expensive though: the underlying createFont() function rebuilds a font only
             * if its color has actually changed.
             *
             * TODO: We should avoid rebuilding fonts when palette registers change in graphics modes.  More importantly, our
             * font code is still written with the assumption that, like the MDA/CGA, the underlying font data never changes.
             * The EGA, however, stores its fonts in plane 2, which means fonts are dynamic; this needs to be fixed.
             *
             * Supporting dynamic EGA fonts should not be hard though.  We can get rid of abFontData and simply build a
             * temporary snapshot of all the font bytes in plane 2 of the EGA's video buffer (adwMemory), and pass that on to
             * buildFont() instead.  We'll also need to either invalidate the existing font's color (to trigger a rebuild) or
             * pass a new "force rebuild" flag.
             *
             * Once that's done, an added benefit will be that we can build just the font(s) that have been loaded into plane 2,
             * instead of the multitude of fonts that we now build on a just-in-case basis (eg, the MDA font, the 8x8 CGA font
             * for 43-line mode, and so on).
             *
             * @this {Video}
             * @return {boolean} true if any or all fonts were (re)built, false if nothing changed
             */
            Video.prototype.buildFonts = function()
            {
                var fChanges = false;
            
                /*
                 * There's no point building any fonts if this is a non-windowed (eg, command-line) environment OR no font data was loaded.
                 */
                if (window && this.abFontData) {
            
                    var offSplit = 0x0000;
                    var cxChar = this.cxFontChar? this.cxFontChar : 8;
                    var aRGBColors = this.getCardColors();
            
                    if (this.buildFont(Video.FONT.CGA, this.aFontOffsets[0], offSplit, cxChar, 8, this.abFontData, aRGBColors)) {
                        fChanges = true;
                    }
            
                    offSplit = this.cxFontChar? 0 : 0x0800;
                    cxChar = this.cxFontChar? this.cxFontChar : 9;
            
                    if (this.buildFont(Video.FONT.MDA, this.aFontOffsets[1], offSplit, cxChar, 14, this.abFontData, Video.aMDAColors, Video.aMDAColorMap)) {
                        fChanges = true;
                    }
            
                    if (this.cxFontChar) {
                        if (this.buildFont(this.nCard, this.aFontOffsets[1], 0, this.cxFontChar, 14, this.abFontData, aRGBColors)) {
                            fChanges = true;
                        }
                    }
                }
                return fChanges;
            };
            
            /**
             * buildFont(nFont, offData, offSplit, cxChar, cyChar, abFontData, aRGBColors, aColorMap)
             *
             * This is a wrapper for createFont() which also takes care loading double-size fonts when fDoubleFont is set.
             *
             * @this {Video}
             * @param {number} nFont
             * @param {number|null} offData is the offset of the font data, null if none
             * @param {number} offSplit is the offset of any split font data, or zero if not split
             * @param {number} cxChar is the width of the font characters
             * @param {number} cyChar is the height of the font characters
             * @param {*} abFontData is the raw font data, from the ROM font file
             * @param {Array} aRGBColors is an array of color RGB variations, corresponding to supported FGND attribute values
             * @param {Array} [aColorMap] contains color indexes corresponding to attribute values (if not supplied, the mapping is assumed to be 1-1)
             * @return {boolean} true if any or all fonts were (re)built, false if nothing changed
             */
            Video.prototype.buildFont = function(nFont, offData, offSplit, cxChar, cyChar, abFontData, aRGBColors, aColorMap)
            {
                var fChanges = false;
            
                if (offData != null) {
                    if (DEBUG && this.messageEnabled()) {
                        this.printMessage("buildFont(" + nFont + "): building " + Video.cardSpecs[nFont][0] + " font");
                    }
                    if (this.createFont(nFont, offData, offSplit, cxChar, cyChar, abFontData, aRGBColors, aColorMap)) fChanges = true;
                    /*
                     * If font-doubling is enabled, then load a double-size version of the font as well, as it provides
                     * sharper rendering, especially when the screen cell size is a multiple of the above font cell size;
                     * in the case of the CGA, this may also be useful for 40-column modes.
                     */
                    if (this.fDoubleFont) {
                        nFont <<= 1;
                        if (DEBUG && this.messageEnabled()) {
                            this.printMessage("buildFont(" + nFont + "): building " + Video.cardSpecs[nFont >> 1][0] + " double-size font");
                        }
                        if (this.createFont(nFont, offData, offSplit, cxChar, cyChar, abFontData, aRGBColors, aColorMap)) fChanges = true;
                    }
                }
                return fChanges;
            };
            
            /**
             * createFont(nFont, offData, offSplit, cxChar, cyChar, abFontData, aRGBColors, aColorMap)
             *
             * All color variations are stored on the same font canvas, arranged vertically as a series of grids, where each
             * grid is a 16x16 character glyph array.
             *
             * Since every character must be drawn first with its background color and then with the foreground shape on top,
             * I used to include a series of empty cells at the top every font canvas containing all supported background colors
             * (ie, before the character grids).  But now createFont() also creates an aCSSColors array that is saved alongside
             * the font canvas, and updateChar() uses that array in conjunction with fillRect() to draw character backgrounds.
             *
             * @this {Video}
             * @param {number} nFont
             * @param {number} offData is the offset of the font data
             * @param {number} offSplit is the offset of any split font data, or zero if not split
             * @param {number} cxChar is the width of the font characters
             * @param {number} cyChar is the height of the font characters
             * @param {*} abFontData is the raw font data, from the ROM font file
             * @param {Array} aRGBColors is an array of color RGB variations, corresponding to supported FGND attribute values
             * @param {Array|undefined} aColorMap contains color indexes corresponding to attribute values (if not supplied, the mapping is assumed to be 1-1)
             * @return {boolean} true if any or all fonts were (re)created, false if nothing changed
             */
            Video.prototype.createFont = function(nFont, offData, offSplit, cxChar, cyChar, abFontData, aRGBColors, aColorMap)
            {
                var fChanges = false;
                var nDouble = (nFont & 0x1)? 0 : 1;
                var font = this.aFonts[nFont];
                var nColors = (aRGBColors.length < 16? aRGBColors.length : 16);
                if (!font) {
                    font = {
                        cxCell:     cxChar << nDouble,
                        cyCell:     cyChar << nDouble,
                        aCSSColors: new Array(nColors),
                        aRGBColors: aRGBColors.slice(0, nColors),   // using the Array slice() method to simply make a copy
                        aColorMap:  aColorMap,
                        aCanvas:    new Array(nColors)
                    };
                }
                for (var iColor = 0; iColor < nColors; iColor++) {
                    var rgbColor = aRGBColors[iColor];
                    var rgbColorOrig = font.aCSSColors[iColor]? font.aRGBColors[iColor] : [];
                    if (rgbColor[0] !== rgbColorOrig[0] || rgbColor[1] !== rgbColorOrig[1] || rgbColor[2] !== rgbColorOrig[2]) {
                        if (DEBUG && this.messageEnabled()) {
                            this.printMessage("creating font color " + iColor + " for font " + nFont);
                        }
                        this.createFontColor(font, iColor, rgbColor, nDouble, offData, offSplit, cxChar, cyChar, abFontData);
                        fChanges = true;
                    }
                }
                this.aFonts[nFont] = font;
                return fChanges;
            };
            
            /**
             * createFontColor(font, iColor, rgbColor, nDouble, offData, offSplit, cxChar, cyChar, abFontData)
             *
             * @this {Video}
             * @param {Object} font
             * @param {number} iColor
             * @param {Array} rgbColor contains the RGB values for iColor
             * @param {number} nDouble is 1 to double output font dimensions, 0 to match input dimensions
             * @param {number} offData is the offset of the font data
             * @param {number} offSplit is the offset of any split font data, or zero if not split
             * @param {number} cxChar is the width of the font characters
             * @param {number} cyChar is the height of the font characters
             * @param {*} abFontData is the raw font data, from the ROM font file
             */
            Video.prototype.createFontColor = function(font, iColor, rgbColor, nDouble, offData, offSplit, cxChar, cyChar, abFontData)
            {
                /*
                 * Now we're ready to create a 16x16 character grid for the specified color.  Note that all
                 * the character bits are opaque (alpha=0xff) while all the surrounding bits are transparent
                 * (alpha=0x00, as specified in the 4th byte of rgbOff).
                 *
                 * Originally, I created 256 ImageData objects, using context.createImageData(cxChar,cyChar),
                 * then setting its pixels to match those of an individual character, and then drawing characters
                 * with contextFont.putImageData().  But putImageData() is relatively slow....
                 *
                 * Now I create a new canvas, with dimensions that allow me to arrange all 256 characters in an
                 * 16x16 grid -- much like the "chargen.png" bitmap used in the C1Pjs version of the Video component.
                 * Then drawing becomes much the same as before, because it turns out that drawImage() accepts either
                 * an image object OR a canvas object.
                 *
                 * This also yields better performance, since drawImage() is much faster than putImageData().
                 * We still have to use putImageData() to build the font canvas, but that's a one-time operation.
                 */
                var rgbOff = [0x00, 0x00, 0x00, 0x00];
                var canvasFont = window.document.createElement("canvas");
                canvasFont.width = font.cxCell << 4;
                canvasFont.height = (font.cyCell << 4);
                var contextFont = canvasFont.getContext("2d");
            
                /*
                 * See notes above regarding ImageSmoothingEnabled....
                 *
                 contextFont['mozImageSmoothingEnabled'] = false;
                 contextFont['webkitImageSmoothingEnabled'] = false;
                 */
            
                var iChar, x, y;
                var cyLimit = (cyChar < 8 || !offSplit)? cyChar : 8;
                var imageChar = contextFont.createImageData(font.cxCell, font.cyCell);
            
                for (iChar = 0; iChar < 256; iChar++) {
                    for (y = 0; y < cyChar; y++) {
                        /*
                         * fUnderline should be true only in the FONT_MDA case, and only for the odd color variations
                         * (1 and 3, out of variations 0 to 4), and only for the two bottom-most rows of the character cell
                         * (which I still need to confirm)
                         */
                        var fUnderline = (font.aColorMap && (iColor & 0x1) && y >= cyChar - 2);
                        var offChar = (y < cyLimit? offData + iChar * cyLimit + y : offSplit + iChar * cyLimit + y - cyLimit);
                        var b = abFontData[offChar];
                        for (var nRowDoubler = 0; nRowDoubler <= nDouble; nRowDoubler++) {
                            for (x = 0; x < cxChar; x++) {
                                /*
                                 * This "bit" of logic takes care of those characters (0xC0-0xDF) whose 9th bit must mirror the 8th bit;
                                 * in all other cases, any bit past the 8th bit is automatically zero.  It also takes care of embedding a solid
                                 * row of bits whenever fUnderline is true.
                                 *
                                 * TODO: For EGA/VGA, replication of the 9th dot needs to be based on the TEXT_9DOT bit of the ATC.MODE
                                 * register, which is particularly important for user-defined fonts that do not want that bit replicated.
                                 */
                                var bit = (fUnderline? 1 : (b & (0x80 >> (x >= 8 && iChar >= 0xC0 && iChar <= 0xDF? 7 : x))));
                                var xDst = (x << nDouble);
                                var yDst = (y << nDouble) + nRowDoubler;
                                var rgb = (bit? rgbColor : rgbOff);
                                this.setPixel(imageChar, xDst, yDst, rgb);
                                if (nDouble) this.setPixel(imageChar, xDst + 1, yDst, rgb);
                            }
                        }
                    }
                    /*
                     * (iChar >> 4) performs the integer equivalent of Math.floor(iChar / 16), and (iChar & 0xf) is the equivalent of (iChar % 16).
                     */
                    contextFont.putImageData(imageChar, x = (iChar & 0xf) * font.cxCell, y = (iChar >> 4) * font.cyCell);
                }
            
                /*
                 * The colors for cell backgrounds and cursor elements must be converted to CSS color strings.
                 */
                font.aCSSColors[iColor] = "#" + str.toHex(rgbColor[0], 2) + str.toHex(rgbColor[1], 2) + str.toHex(rgbColor[2], 2);
                font.aRGBColors[iColor] = rgbColor;
            
                /*
                 * Enable this code if you want to see what the generated font looks like....
                 *
                if (MAXDEBUG) {
                    var iSrcColor = (iColor == 15? 0 : iColor + 1);
                    this.contextScreen.fillStyle = aCSSColors[iSrcColor];
                    this.contextScreen.fillRect(iColor*(font.cxCell<<2), 0, canvasFont.width>>2, font.cyCell<<4);
                    this.contextScreen.drawImage(canvasFont, 0, iColor*(font.cyCell<<4), canvasFont.width>>2, font.cyCell<<4, iColor*(font.cxCell<<2), 0, canvasFont.width>>2, font.cyCell<<4);
                }
                 */
            
                font.aCanvas[iColor] = canvasFont;
            };
            
            /**
             * checkBlink()
             *
             * Called at the end of every updateScreen(), which may have updated cBlinkVisible to a non-zero value.
             *
             * Also called at the end of every checkCursor(); ie, whenever the CRT register(s) affecting the position or shape
             * of the hardware cursor have been modified, and any of iCellCursor, yCursor or cyCursor have been modified as a result.
             *
             * Note that the cursor always blinks when it's ON; it can only be turned OFF, moved off-screen, or its rate set to half
             * the normal blink rate (by default, it blinks at the normal blink rate).  Bits 5-6 of the CRTC.CURSOR_START register can
             * be set as follows:
             *
             *    00: Cursor blinks at normal blink rate
             *    01: Cursor is off
             *    10: (Same as 00)
             *    11: Cursor blinks at half the normal blink rate
             *
             * According to documentation, the normal blink rate is 1/16 of the frame rate (8 frames on, 8 off).
             *
             * TODO: As an aside, I've observed in the "real world" that the MDA cursor cycles about 3 times per second, and by "cycle"
             * I mean one full off-and-on-again cycle.  I'm assuming that's the normal rate (00), not the slower "half rate" (11).
             * Since that's faster than our current cursor blink rate, we should look into an option to boost our rate, without adversely
             * affecting the attribute blink rate (which is currently hard-coded at half the cursor blink rate), and we should look into
             * supporting "half rate" blinking, too.
             *
             * @this {Video}
             * @return {boolean} true if there are things to blink, false if not
             */
            Video.prototype.checkBlink = function()
            {
                if (this.cBlinkVisible > 0 || this.iCellCursor >= 0) {
                    if (this.cBlinks < 0) {
                        this.cBlinks = 0;
                        /*
                         * At this point, we can either fire up our own timer (doBlink), or rely on updateScreen()
                         * being called by the CPU at a regular rate (eg, CPU.VIDEO_UPDATES_PER_SECOND = 60) and advance
                         * cBlinks at the start of updateScreen() accordingly.
                         *
                         * doBlink() wants to increment cBlinks every 266ms.  On the other hand, if updateScreen() is being
                         * called 60 times per second, that's about once every 16ms, so if every 16th updateScreen() increments
                         * cBlinks, cBlinks should advance at the same rate.
                         *
                         * The only downside to relying on the CPU driving our blink count is that whenever the CPU is halted
                         * (eg, by the PCjs debugger) all blinking stops -- all characters with the blink attribute AND the cursor.
                         *
                         * But we can simply say that when we halt, we mean "halt everything" (ie, call it a feature).
                         *
                         *      this.doBlink(true);
                         */
                    }
                    return true;
                }
                this.cBlinks = -1;
                return false;
            };
            
            /**
             * checkCursor()
             *
             * Called whenever a CRT data register is updated, since there are multiple registers that can affect the
             * visibility of the cursor (more than these, actually, but I'm going to limit my initial support to standard
             * ROM BIOS controller settings):
             *
             *      CRTC.MAX_SCAN
             *      CRTC.CURSOR_START
             *      CRTC.CURSOR_END
             *      CRTC.START_ADDR_HI
             *      CRTC.START_ADDR_LO
             *      CRTC.CURSOR_ADDR_HI
             *      CRTC.CURSOR_ADDR_LO
             *
             * @this {Video}
             * @return {boolean} true if the cursor is visible, false if not
             */
            Video.prototype.checkCursor = function()
            {
                /*
                 * The "hardware cursor" is never visible in graphics modes.
                 */
                if (!this.nFont) return false;
            
                for (var i = Card.CRTC.CURSOR_START.INDX; i <= Card.CRTC.CURSOR_ADDR_LO; i++) {
                    if (this.cardActive.regCRTData[i] == null)
                        return false;
                }
            
                var bCursorFlags = this.cardActive.regCRTData[Card.CRTC.CURSOR_START.INDX];
                var bCursorStart = bCursorFlags & Card.CRTC.CURSOR_START.MASK;
                var bCursorEnd = this.cardActive.regCRTData[Card.CRTC.CURSOR_END.INDX] & Card.CRTC.CURSOR_END.MASK;
                var bCursorMax = this.cardActive.regCRTData[Card.CRTC.MAX_SCAN.INDX] & Card.CRTC.MAX_SCAN.MASK;
            
                /*
                 * HACK: The original EGA BIOS has a cursor emulation bug when 43-line mode is enabled, so we attempt to detect
                 * that particular combination of bad values and automatically fix them (we're so thoughtful!)
                 */
                var fEGAHack = false;
                if (this.cardActive === this.cardEGA) {
                    fEGAHack = true;
                    if (bCursorMax == 7 && bCursorStart == 4 && !bCursorEnd) bCursorEnd = 7;
                }
            
                /*
                 * One way of disabling the cursor is to set bit 5 (Card.CRTC.CURSOR_START.BLINKOFF) of the CRTC.CURSOR_START flags;
                 * another way is setting bCursorStart > bCursorEnd (unless it's an EGA, in which case we must actually draw a
                 * "split block" cursor instead).
                 *
                 * TODO: Verify whether the second test (bCursorStart > bCursorMax) should also result in a hidden cursor;
                 * ThinkTank sets both start and end values to 0x0f, which doesn't make sense on a CGA, where the max is 0x07.
                 */
                if ((bCursorFlags & Card.CRTC.CURSOR_START.BLINKOFF) || bCursorStart > bCursorEnd && !fEGAHack || bCursorStart > bCursorMax) {
                    this.removeCursor();
                    return false;
                }
            
                /*
                 * The most compatible way of disabling the cursor is to simply move the cursor to an off-screen position.
                 */
                var iCellCursor = (this.cardActive.regCRTData[Card.CRTC.CURSOR_ADDR_LO] + ((this.cardActive.regCRTData[Card.CRTC.CURSOR_ADDR_HI] & Card.CRTC.ADDR_HI_MASK) << 8));
                if (this.iCellCursor != iCellCursor) {
                    if (DEBUG && this.messageEnabled()) {
                        this.printMessage("checkCursor(): cursor moved from " + this.iCellCursor + " to " + iCellCursor);
                    }
                    this.removeCursor();
                    this.iCellCursor = iCellCursor;
                }
            
                /*
                 * yCursor and cyCursor are no longer scaled at this point, because the necessary scaling will depend on whether we're
                 * drawing the cursor to the on-screen or off-screen buffer, and updateChar() is in the best position to determine that.
                 *
                 * We also record cyCursorCell, the hardware cell height, since we'll need to know what the yCursor and cyCursor values
                 * are relative to when it's time to scale them.
                 */
                var bCursorSize = bCursorEnd - bCursorStart + 1;
                if (this.yCursor != bCursorStart || this.cyCursor != bCursorSize) {
                    this.yCursor = bCursorStart;
                    this.cyCursor = bCursorSize;
                }
                this.cyCursorCell = bCursorMax + 1;
            
                this.checkBlink();
                return true;
            };
            
            /**
             * removeCursor()
             *
             * @this {Video}
             */
            Video.prototype.removeCursor = function()
            {
                if (this.iCellCursor >= 0) {
                    if (this.aCellCache !== undefined) {
                        var drawCursor = (Video.ATTRS.DRAW_CURSOR << 8);
                        var data = this.aCellCache[this.iCellCursor];
                        if (data & drawCursor) {
                            data &= ~drawCursor;
                            var col = this.iCellCursor % this.nCols;
                            var row = (this.iCellCursor / this.nCols)|0;
                            if (this.nFont && this.aFonts[this.nFont]) {
                                /*
                                 * If we're using an off-screen buffer in text mode, then we need to keep it in sync with "reality".
                                 */
                                if (this.contextScreenBuffer) {
                                    this.updateChar(col, row, data, this.contextScreenBuffer);
                                }
                                /*
                                 * While updating the on-screen canvas directly could open us up to potential subpixel artifacts again,
                                 * I'm hopeful that won't be the case, since removeCursor() is called only during certain well-defined
                                 * events.  The alternative to this simple updateChar() call is unappealing: redrawing the ENTIRE off-screen
                                 * buffer to the on-screen canvas, just as updateScreen() does.
                                 */
                                this.updateChar(col, row, data);
                            }
                            if (DEBUG && this.messageEnabled()) {
                                this.printMessage("removeCursor(): removed from " + row + "," + col);
                            }
                            this.aCellCache[this.iCellCursor] = data;
                        }
                    }
                    this.iCellCursor = -1;
                }
            };
            
            /**
             * getAccess()
             *
             * @this {Video}
             * @return {number|undefined} current memory access setting, or undefined if unknown
             */
            Video.prototype.getAccess = function()
            {
                var nAccess;
                var card = this.cardActive;
            
                this.fColor256 = false;
                var regGRCMode = card.regGRCData[Card.GRC.MODE.INDX];
                if (regGRCMode != null) {
                    var nReadAccess = Card.ACCESS.READ.MODE0;
                    var nWriteAccess = Card.ACCESS.WRITE.MODE0;
                    var nWriteMode = regGRCMode & Card.GRC.MODE.WRITE.MASK;
                    var regDataRotate = card.regGRCData[Card.GRC.DATAROT.INDX] & Card.GRC.DATAROT.MASK;
                    switch (nWriteMode) {
                    case Card.GRC.MODE.WRITE.MODE0:
                        if (regDataRotate) {
                            nWriteAccess = Card.ACCESS.WRITE.MODE0 | Card.ACCESS.WRITE.ROT;
                            switch (regDataRotate & Card.GRC.DATAROT.FUNC) {
                            case Card.GRC.DATAROT.AND:
                                nWriteAccess = Card.ACCESS.WRITE.MODE0 | Card.ACCESS.WRITE.AND;
                                break;
                            case Card.GRC.DATAROT.OR:
                                nWriteAccess = Card.ACCESS.WRITE.MODE0 | Card.ACCESS.WRITE.OR;
                                break;
                            case Card.GRC.DATAROT.XOR:
                                nWriteAccess = Card.ACCESS.WRITE.MODE0 | Card.ACCESS.WRITE.XOR;
                                break;
                            default:
                                break;
                            }
                            card.nDataRotate = regDataRotate & Card.GRC.DATAROT.COUNT;
                        }
                        break;
                    case Card.GRC.MODE.WRITE.MODE1:
                        nWriteAccess = Card.ACCESS.WRITE.MODE1;
                        break;
                    case Card.GRC.MODE.WRITE.MODE2:
                        switch (regDataRotate & Card.GRC.DATAROT.FUNC) {
                        default:
                            nWriteAccess = Card.ACCESS.WRITE.MODE2;
                            break;
                        case Card.GRC.DATAROT.AND:
                            nWriteAccess = Card.ACCESS.WRITE.MODE2 | Card.ACCESS.WRITE.AND;
                            break;
                        case Card.GRC.DATAROT.OR:
                            nWriteAccess = Card.ACCESS.WRITE.MODE2 | Card.ACCESS.WRITE.OR;
                            break;
                        case Card.GRC.DATAROT.XOR:
                            nWriteAccess = Card.ACCESS.WRITE.MODE2 | Card.ACCESS.WRITE.XOR;
                            break;
                        }
                        break;
                    case Card.GRC.MODE.WRITE.MODE3:
                        if (this.nCard == Video.CARD.VGA) {
                            nWriteAccess = Card.ACCESS.WRITE.MODE3;
                            card.nDataRotate = regDataRotate & Card.GRC.DATAROT.COUNT;
                        }
                        break;
                    default:
                        if (DEBUG && this.messageEnabled()) {
                            this.printMessage("getAccess(): invalid GRC mode (" + str.toHexByte(regGRCMode) + ")");
                        }
                        break;
                    }
                    if (regGRCMode & Card.GRC.MODE.READ.MODE1) {
                        nReadAccess = Card.ACCESS.READ.MODE1;
                    }
                    /*
                     * I discovered that when the IBM EGA ROM scrolls the screen in graphics modes 0x0D and 0x0E, it
                     * reprograms this register for WRITE.MODE1 (which is fine) *and* EVENODD (which is, um, very odd).
                     * Moreover, it does NOT make the complementary change to the SEQ.MEMMODE.SEQUENTIAL bit; under
                     * normal circumstances, those two bits are always supposed to programmed oppositely.
                     *
                     * Until I can perform some tests on real hardware, I have to assume that the EGA scroll operation
                     * is supposed to actually WORK in modes 0x0D and 0x0E, so I've decided to tie the trigger for my own
                     * EVENODD functions to SEQ.MEMMODE.SEQUENTIAL being clear, instead of GRC.MODE.EVENODD being set.
                     *
                     * It's also possible that my EVENODD read/write functions are not implemented properly; when EVENODD
                     * is in effect, which addresses get latched by a read, and to which addresses are latches written?
                     * If EVENODD has no effect on the effective address used with the latches, then I should change the
                     * EVENODD read/write functions accordingly.
                     *
                     * However, I've also done some limited testing with an emulated VGA running in text mode, and I've
                     * discovered that toggling the GRC.MODE.EVENODD bit *alone* doesn't seem to affect the delivery of
                     * text mode attributes from plane 1.  So maybe this is the wiser change after all.
                     *
                     * TODO: Perform some tests on actual EGA/VGA hardware, to determine the proper course of action.
                     *
                     *  if (regGRCMode & Card.GRC.MODE.EVENODD) {
                     *      nReadAccess |= Card.ACCESS.READ.EVENODD;
                     *      nWriteAccess |= Card.ACCESS.WRITE.EVENODD;
                     *  }
                     */
                    var regSEQMode = card.regSEQData[Card.SEQ.MEMMODE.INDX];
                    if (regSEQMode != null) {
                        if (!(regSEQMode & Card.SEQ.MEMMODE.SEQUENTIAL)) {
                            nReadAccess |= Card.ACCESS.READ.EVENODD;
                            nWriteAccess |= Card.ACCESS.WRITE.EVENODD;
                        }
                        if (regGRCMode & Card.GRC.MODE.COLOR256) {
                            if (regSEQMode & Card.SEQ.MEMMODE.CHAIN4) {
                                nReadAccess |= Card.ACCESS.READ.CHAIN4;
                                nWriteAccess |= Card.ACCESS.WRITE.CHAIN4;
                            }
                            this.fColor256 = true;
                        }
                    }
                    nAccess = nReadAccess | nWriteAccess;
                }
                return nAccess;
            };
            
            /**
             * setAccess(nAccess)
             *
             * @this {Video}
             * @param {number|undefined} nAccess (one of the Card.ACCESS.* constants)
             */
            Video.prototype.setAccess = function(nAccess)
            {
                var card = this.cardActive;
                if (card && nAccess != null && nAccess != card.nAccess) {
            
                    if (DEBUG && this.messageEnabled()) {
                        this.printMessage("setAccess(" + str.toHexWord(nAccess) + ")");
                    }
            
                    card.setMemoryAccess(nAccess);
            
                    /*
                     * Note that setMemoryAccess() can fail, in which case it will an report error, indicating either a
                     * misconfiguration or some sort of internal inconsistency; in any case, there's not much we can do about
                     * it at this point, other than possibly reverting the current access setting.  There's probably not much
                     * point, however, because there's no guarantee that setMemoryAccess() didn't modify one or more blocks
                     * before choking.
                     */
                    this.bus.setMemoryAccess(card.addrBuffer, card.sizeBuffer, card.getMemoryAccess());
                }
            };
            
            /**
             * setDimensions()
             *
             * @this {Video}
             */
            Video.prototype.setDimensions = function()
            {
                this.nFont = 0;
                this.nCols = this.nColsDefault;
                this.nRows = this.nRowsDefault;
                this.nColsLogical = this.nCols;
                this.nCellsPerWord = Video.aModeParms[Video.MODE.MDA_80X25][2];
            
                var cbPadding = 0;
                var modeParms = Video.aModeParms[this.nMode];
                if (modeParms) {
            
                    this.nCols = modeParms[0];
                    this.nRows = modeParms[1];
                    this.nCellsPerWord = modeParms[2];
                    cbPadding = modeParms[3];       // undefined for EGA/VGA graphics modes only
                    this.nFont = modeParms[4];      // this will be undefined for all graphics modes
            
                    if (this.nMonitorType == ChipSet.MONITOR.EGACOLOR || this.nMonitorType == ChipSet.MONITOR.VGACOLOR) {
                        /*
                         * When an EGA is connected to a CGA monitor, the old aModeParms table is correct: we must
                         * use the hard-coded 8x8 "CGA_80" font.  But when it's connected to an EGA monitor, we want
                         * to use the 9x14 "EGA" color font instead.
                         *
                         * TODO: Can an EGA with a monochrome monitor be programmed for 43-line mode as well?  If so,
                         * then we'll need to load another MDA font variation, because we only load an 9x14 font for MDA.
                         */
                        if (this.cardActive === this.cardEGA && this.nFont == Video.FONT.CGA) {
                            if (this.cardEGA.regCRTData[Card.CRTC.EGA.MAX_SCAN.INDX] == 7) {
                                /*
                                 * Vertical resolution of 350 divided by 8 (ie, scan lines 0-7) yields 43 whole rows.
                                 */
                                this.nRows = 43;
                            }
                            /*
                             * Since we can also be called before any hardware registers have been initialized,
                             * it may be best to not perform the following test (which is why it's commented out).
                             */
                            else /* if (this.cardEGA.regCRTData[Card.CRTC.EGA.MAX_SCAN.INDX] == 13) */ {
                                /*
                                 * Vertical resolution of 350 divided by 14 (ie, scan lines 0-13) yields exactly 25 rows.
                                 *
                                 * Note that a card's default font matches its card ID (eg, Video.CARD.EGA == Video.FONT.EGA,
                                 * and Video.CARD.VGA == Video.FONT.VGA)
                                 */
                                this.nFont = this.nCard;
                            }
                        }
                    }
                }
            
                this.nCells = (this.nCols * this.nRows)|0;
                this.nCellCache = (this.nCells / this.nCellsPerWord)|0;
                this.cbScreen = this.nCellCache;
                this.cbSplit = 0;
            
                if (cbPadding !== undefined) {
                    this.cbScreen = ((this.cbScreen << 1) + cbPadding)|0;
                    this.cbSplit = (this.cbScreen + cbPadding) >> 1;
                }
            
                /*
                 * If no fonts were successfully loaded, there's no point in initializing the remaining drawing parameters.
                 */
                if (!this.aFonts.length) return;
            
                this.cxScreenCell = (this.cxScreen / this.nCols)|0;
                this.cyScreenCell = (this.cyScreen / this.nRows)|0;
            
                /*
                 * Now we make the all-important scaling determination: if the font cell dimensions (cxCell, cyCell)
                 * don't match the physical screen cell dimensions (cxCell, cyCell), then we look at the caller's
                 * fScaleFont setting: if it's false, we draw the characters as-is, with a border if the characters
                 * are smaller than the cells; and if fScaleFont is true, we simply tell drawImage to draw the
                 * characters to fit.
                 *
                 * WARNING: The only problem with fScaleFont is that any stretching or shrinking tends to be accompanied
                 * by subpixel artifacts along the boundaries of the font images.  Definitely annoying, and apparently
                 * there are no standard mechanisms for turning that behavior off. So, for now, I've "neutered" the
                 * fScaleFont test slightly, by adding the "nCols == 80" test that prevents scaling from kicking in for
                 * 40-column modes.
                 *
                 * Also, whether scaling or not, if it makes sense to use a "doubled" font, we'll switch the font as
                 * well.  Note that the doubled font for any existing font also has an ID that is double the existing ID,
                 * making it easy to check for the existence of a font's "double" (shift the ID left by 1).
                 *
                 * TODO: Since we now use an off-screen buffer for ALL modes, both text and graphics, we should
                 * revisit changes that were made to work around subpixel artifacts; those should no longer be an issue.
                 */
                if (this.nFont) {
                    var font = this.aFonts[this.nFont];
                    var fontDoubled = this.aFonts[this.nFont << 1];
            
                    if (this.fScaleFont && this.nCols == 80) {
                        if (fontDoubled) {
                            if (this.cxScreenCell >= (fontDoubled.cxCell * 3) >> 2) { // && this.cyScreenCell > (fontDoubled.cyCell * 3) >> 2) {
                                this.nFont <<= 1;
                                font = fontDoubled;
                                if (DEBUG) this.log("setDimensions(): switching to double-size font, scaled");
                            }
                        }
                    } else {
                        if (fontDoubled) {
                            if (this.cxScreenCell >= fontDoubled.cxCell) { // && this.cyScreenCell == fontDoubled.cyCell) {
                                this.nFont <<= 1;
                                font = fontDoubled;
                                if (DEBUG) this.log("setDimensions(): switching to double-size font, unscaled");
                            }
                        }
                        if (font) {
                            this.cxScreenCell = font.cxCell;
                            this.cyScreenCell = font.cyCell;
                        }
                    }
            
                    /*
                     * In text modes, we have the option of setting all the *ScreenBuffer variables to null instead of
                     * allocating them, because updateChar(), as currently written, is capable of writing characters to
                     * either an off-screen or on-screen context.
                     *
                     *      this.imageScreenBuffer = this.canvasScreenBuffer = this.contextScreenBuffer = null;
                     */
                    this.cxBuffer = this.cyBuffer = 0;
                    if (font) {
                        this.cxBuffer = this.nCols * font.cxCell;
                        this.cyBuffer = this.nRows * font.cyCell;
                    }
                } else {
                    /*
                     * CGA graphics modes have their "cells" (pixels) split evenly across two halves of the video buffer, with
                     * EVEN scan lines in the first half and ODD scan lines in the second half, so unlike text modes, we can't set a
                     * limit of what's visible on-screen to "columns * rows", so the screen limit is set to match the buffer limit.
                     *
                     * In addition, updateScreen() requires an off-screen imageData buffer that matches the size of the entire screen,
                     * so that updateScreen() can set all pixels that have changed and then update the screen with a single drawImage().
                     *
                     * An alternative approach, with a smaller footprint, would be to allocate an off-screen buffer large enough for a
                     * single scan line, and redraw one scan line at a time, but given how EVEN and ODD scan lines are spread across the
                     * entire buffer, it's not clear there would be enough unchanged scan lines on average to make that approach faster.
                     */
                    this.cxScreenCell = this.cyScreenCell = 1;  // in graphics mode, a cell is exactly one pixel
                    this.cxBuffer = this.nCols;
                    this.cyBuffer = this.nRows;
                }
            
                /*
                 * Allocate the off-screen buffers
                 */
                this.imageScreenBuffer = this.contextScreen.createImageData(this.cxBuffer, this.cyBuffer);
                this.canvasScreenBuffer = window.document.createElement("canvas");
                this.canvasScreenBuffer.width = this.cxBuffer;
                this.canvasScreenBuffer.height = this.cyBuffer;
                this.contextScreenBuffer = this.canvasScreenBuffer.getContext("2d");
            
                /*
                 * Since cxCell and cyCell were originally defined in terms of cxScreen/nCols and cyScreen/nRows, you might think
                 * these border calculations would always be zero, but that would mean you overlooked the code above which tries to
                 * avoid stretching 40-column modes into an unpleasantly wide shape.
                 */
                this.xScreenOffset = this.yScreenOffset = 0;
                this.cxScreenOffset = this.cxScreen;
                this.cyScreenOffset = this.cyScreen;
            
                var cxBorder = this.cxScreen - (this.nCols * this.cxScreenCell);
                var cyBorder = this.cyScreen - (this.nRows * this.cyScreenCell);
                if (cxBorder > 0) {
                    this.xScreenOffset = (cxBorder >> 1);
                    this.cxScreenOffset -= cxBorder;
                }
                if (cyBorder > 0) {
                    this.yScreenOffset = (cyBorder >> 1);
                    this.cyScreenOffset -= cyBorder;
                }
                if (cxBorder || cyBorder) {
                    this.contextScreen.fillStyle = this.canvasScreen.style.backgroundColor;
                    this.contextScreen.fillRect(0, 0, this.cxScreen, this.cyScreen);
                }
            };
            
            /**
             * checkMode(fForce)
             *
             * Called whenever the MDA/CGA's mode register (eg, Card.MDA.MODE.PORT, Card.CGA.MODE.PORT) is updated,
             * or whenever the EGA's GRC Misc register is updated, or when we've just finished a restore().
             *
             * @this {Video}
             * @param {boolean} [fForce] is used to force a mode update, if we recognize the current mode
             * @return {boolean} true if successful, false if not
             */
            Video.prototype.checkMode = function(fForce)
            {
                var nAccess;
                var nMode = this.nMode;
                var card = this.cardActive;
            
                if (!card) {
                    /*
                     * We are likely being called after a restore(), which needs us to call setMode() to insure the proper video
                     * buffer is mapped in.  So we unset this.nMode to guarantee that setMode() will be called, and if it wasn't set
                     * to anything before, then we fall-back to the default mode.
                     */
                    this.nMode = null;
                    if (nMode == null) nMode = this.nModeDefault;
                }
                else {
                    if (card.nCard == Video.CARD.MDA) {
                        nMode = Video.MODE.MDA_80X25;
                    }
                    else if (card.nCard >= Video.CARD.EGA) {
                        /*
                         * The sizeBuffer we choose reflects the amount of physical address space that all 4 planes
                         * of EGA memory normally span, NOT the total amount of EGA memory.  So for a 64Kb EGA card,
                         * we would set card.sizeBuffer to 16Kb (0x4000).
                         *
                         * TODO: Need to take into account modes that "chain" planes together (eg, mode 0x0F, and
                         * presumably mode 0x10, on an EGA card with only 64Kb).
                         */
                        nMode = null;
                        var cbBuffer = card.cbMemory >> 2;
                        var cbBufferText = (cbBuffer > 0x8000? 0x8000 : cbBuffer);
            
                        var regGRCMisc = card.regGRCData[Card.GRC.MISC.INDX];
                        if (regGRCMisc != null) {
            
                            switch(regGRCMisc & Card.GRC.MISC.MAPMEM) {
                            case Card.GRC.MISC.MAPA0128:
                                card.addrBuffer = 0xA0000;
                                card.sizeBuffer = cbBuffer;     // 0x20000
                                nMode = Video.MODE.UNKNOWN;     // no BIOS mode uses this mapping, but we don't want to leave nMode null if we've come this far
                                break;
                            case Card.GRC.MISC.MAPA064:
                                card.addrBuffer = 0xA0000;
                                card.sizeBuffer = cbBuffer;     // 0x10000
                                nMode = (this.nMonitorType == ChipSet.MONITOR.MONO? Video.MODE.EGA_640X350_MONO : Video.MODE.EGA_640X350);
                                break;
                            case Card.GRC.MISC.MAPB032:
                                card.addrBuffer = 0xB0000;
                                card.sizeBuffer = cbBufferText;
                                nMode = Video.MODE.MDA_80X25;
                                break;
                            case Card.GRC.MISC.MAPB832:
                                card.addrBuffer = 0xB8000;
                                card.sizeBuffer = cbBufferText;
                                nMode = (this.nMonitorType == ChipSet.MONITOR.MONO? Video.MODE.CGA_80X25_BW : Video.MODE.CGA_80X25);
                                break;
                            default:
                                break;
                            }
                            /*
                             * TODO: The following mode discrimination code is all a bit haphazard, a byproduct of its slow evolution
                             * from increasingly greater EGA support to increasingly greater VGA support.  Make it more rational someday,
                             * so that as support is added for even more modes (eg, "Mode X" variations, monochrome modes, etc), it
                             * doesn't get totally out of control.
                             */
                            var fSEQDotClock = (card.regSEQData[Card.SEQ.CLOCKING.INDX] & Card.SEQ.CLOCKING.DOTCLOCK);
                            var nCRTCVertTotal = card.regCRTData[Card.CRTC.EGA.VTOTAL];
                            nCRTCVertTotal |= ((card.regCRTData[Card.CRTC.EGA.OVERFLOW.INDX] & Card.CRTC.EGA.OVERFLOW.VTOTAL_BIT8)? 0x100 : 0);
                            if (card.nCard == Video.CARD.VGA) {
                                nCRTCVertTotal |= ((card.regCRTData[Card.CRTC.EGA.OVERFLOW.INDX] & Card.CRTC.EGA.OVERFLOW.VTOTAL_BIT9)? 0x200 : 0);
                            }
                            var nCRTCMaxScan = card.regCRTData[Card.CRTC.EGA.MAX_SCAN.INDX];
            
                            if (nMode != Video.MODE.UNKNOWN) {
                                if (!(regGRCMisc & Card.GRC.MISC.GRAPHICS)) {
                                    if (fSEQDotClock) nMode -= 2;
                                } else {
                                    if (card.addrBuffer == 0xB8000) {
                                        /*
                                         * Since nMode will have been assigned a default of either 0x02 or 0x03, convert that to
                                         * either 0x05 or 0x04 if we're in a low-res graphics mode, 0x06 otherwise.
                                         */
                                        nMode = fSEQDotClock? (7 - nMode) : Video.MODE.CGA_640X200;
                                    } else {
                                        /*
                                         * card.addrBuffer must be 0xA0000, so we need to discriminate among modes 0x0D and up;
                                         * we've already defaulted to either 0x0F or 0x10.  If COLOR256 is set, then select mode
                                         * 0x13 (or greater), else if 200-to-400 scan-line conversion is in effect, select either
                                         * mode 0x0D or 0x0E, else if VGA resolution is set, select either mode 0x11 or 0x12.
                                         */
                                        if (card.regGRCData[Card.GRC.MODE.INDX] & Card.GRC.MODE.COLOR256) {
                                            if (nCRTCMaxScan & Card.CRTC.EGA.MAX_SCAN.SCAN_LINE) {
                                                if (card.regCRTData[Card.CRTC.EGA.VDISP_END] <= 0x8F) {
                                                    nMode = Video.MODE.VGA_320X200;
                                                }
                                                else { /* (card.regCRTData[Card.CRTC.EGA.VDISP_END] == 0xDF) */
                                                    nMode = Video.MODE.VGA_320X240;
                                                }
                                            } else {
                                                nMode = Video.MODE.VGA_320X400;
                                            }
                                        }
                                        else if (nCRTCMaxScan & Card.CRTC.EGA.MAX_SCAN.CONVERT400) {
                                            nMode = (fSEQDotClock? Video.MODE.EGA_320X200 : Video.MODE.EGA_640X200);
                                        } else if (nCRTCVertTotal > 500) {
                                            nMode = (this.nMonitorType == ChipSet.MONITOR.MONO? Video.MODE.VGA_640X480_MONO : Video.MODE.VGA_640X480);
                                        }
                                        if (DEBUG && this.messageEnabled()) {
                                            this.printMessage("checkMode(): nCRTCVertTotal=" + nCRTCVertTotal + ", mode=" + str.toHexByte(nMode));
                                        }
                                    }
                                }
                            }
            
                            nAccess = this.getAccess();
                        }
                    }
                    else if (card.regMode & Card.CGA.MODE.VIDEO_ENABLE) {
                        /*
                         * NOTE: For the CGA, we precondition any mode change on CGA.MODE.VIDEO_ENABLE being set, otherwise
                         * we'll get spoofed by the ROM BIOS scroll code, which waits for vertical retrace and then turns CGA.MODE.VIDEO_ENABLE
                         * off, using a hard-coded mode value (0x25) that does NOT necessarily match the the CGA video mode currently in effect.
                         */
                        if (!(card.regMode & Card.CGA.MODE.GRAPHIC_SEL)) {
                            nMode = ((card.regMode & Card.CGA.MODE._80X25)? Video.MODE.CGA_80X25 : Video.MODE.CGA_40X25);
                            if (card.regMode & Card.CGA.MODE.BW_SEL) nMode -= 1;
                        } else {
                            nMode = ((card.regMode & Card.CGA.MODE.HIRES_BW)? Video.MODE.CGA_640X200 : Video.MODE.CGA_320X200_BW);
                            if (!(card.regMode & Card.CGA.MODE.BW_SEL)) nMode -= 1;
                        }
                    }
                }
            
                /*
                 * NOTE: If setMode() remaps the video memory, that will trigger calls to getMemoryAccess() to also update the
                 * memory's access functions.  However, if the memory access setting (nAccess) is about to change as well, those
                 * changes will be moot until the setAccess() call that follows.  Basically, whenever both memory mapping AND access
                 * functions are changing, the memory will be in an inconsistent state until both setMode() and setAccess() are
                 * finished.
                 *
                 * The setMode() call takes precedence; if we called setAccess() first, it might attempt to modify memory access
                 * functions based on the card's addrBuffer setting, and if that doesn't match what's currently mapped, assertions
                 * will be triggered (probably not fatal, but it would defeat the point of the assertions).
                 */
                if (!this.setMode(nMode, fForce)) return false;
            
                this.setAccess(nAccess);
            
                return true;
            };
            
            /**
             * setMode(nMode, fForce)
             *
             * Set fForce to true to update the mode regardless of previous mode, or false to perform a normal update
             * that bypasses updateScreen() but still calls initCellCache().
             *
             * @this {Video}
             * @param {number|null} nMode
             * @param {boolean|undefined} [fForce] is set when checkMode() wants to force a mode update
             * @return {boolean} true if successful, false if failure
             */
            Video.prototype.setMode = function(nMode, fForce)
            {
                if (nMode != null && (nMode != this.nMode || fForce)) {
            
                    if (DEBUG && this.messageEnabled()) {
                        this.printMessage("setMode(" + str.toHexByte(nMode) + (fForce? ",force" : "") + ")");
                    }
            
                    this.cUpdates = 0;      // count updateScreen() calls as a means of driving blink updates
                    this.nMode = nMode;
                    this.fRGBValid = false;
            
                    /*
                     * On an EGA, it's CRITICAL that a reset() invalidate cardActive, to ensure that the code below
                     * releases the previous video buffer and installs a new one, even if there was no change in the
                     * video buffer address or size, because otherwise the Memory blocks installed at the video buffer
                     * address may still be using blocks of the EGA's previous memory buffer.
                     *
                     * When the EGA is reinitialized, a new memory buffer (adwMemory) is allocated (see initEGA()), and
                     * this is where the mapping of that EGA memory buffer to the video buffer occurs.  Other cards
                     * (MDA or CGA) don't allocate/manage their own memory buffer, but even then, it's still a good idea
                     * to always force this operation (eg, in case a switch setting changed the active video card).
                     */
                    var card = this.cardActive || (nMode == Video.MODE.MDA_80X25? this.cardMono : this.cardColor);
            
                    if (card != this.cardActive || card.addrBuffer != this.addrBuffer || card.sizeBuffer != this.sizeBuffer) {
            
                        this.removeCursor();
            
                        if (this.addrBuffer) {
            
                            if (DEBUG && this.messageEnabled()) {
                                this.printMessage("setMode(" + str.toHexByte(nMode) + "): removing " + str.toHexLong(this.sizeBuffer) + " bytes from " + str.toHexLong(this.addrBuffer));
                            }
            
                            if (!this.bus.removeMemory(this.addrBuffer, this.sizeBuffer)) {
                                /*
                                 * TODO: Force this failure case and see how well the Video component deals with it.
                                 */
                                return false;
                            }
                            if (this.cardActive) this.cardActive.fActive = false;
                        }
            
                        this.cardActive = card;
                        card.fActive = true;
            
                        this.addrBuffer = card.addrBuffer;
                        this.sizeBuffer = card.sizeBuffer;
            
                        if (DEBUG && this.messageEnabled()) {
                            this.printMessage("setMode(" + str.toHexByte(nMode) + "): adding " + str.toHexLong(this.sizeBuffer) + " bytes to " + str.toHexLong(this.addrBuffer));
                        }
            
                        var controller = (card === this.cardEGA? card : null);
            
                        if (!this.bus.addMemory(card.addrBuffer, card.sizeBuffer, Memory.TYPE.VIDEO, controller)) {
                            /*
                             * TODO: Force this failure case and see how well the Video component deals with it.
                             */
                            return false;
                        }
                    }
            
                    this.setDimensions();
            
                    if (fForce !== false) {
                        this.updateScreen(true);
                    } else {
                        this.invalidateScreen(true);
                    }
                }
                return true;
            };
            
            /**
             * setPixel(imageData, x, y, rgb)
             *
             * Worker function used by createFontColor() and updateScreen() (graphics modes only).
             *
             * @this {Video}
             * @param {Object} imageData
             * @param {number} x
             * @param {number} y
             * @param {Array.<number>} rgb is a 4-element array containing the red, green, blue and alpha values
             */
            Video.prototype.setPixel = function(imageData, x, y, rgb)
            {
                var index = (x + y * imageData.width) * rgb.length;
                imageData.data[index]   = rgb[0];
                imageData.data[index+1] = rgb[1];
                imageData.data[index+2] = rgb[2];
                imageData.data[index+3] = rgb[3];
            };
            
            /**
             * initCellCache(fNew)
             *
             * Invalidates the contents of our internal cell cache.
             *
             * @this {Video}
             * @param {boolean} [fNew] is true to reallocate/resize the cell cache; in any case, it's still reinitialized
             */
            Video.prototype.initCellCache = function(fNew)
            {
                this.cBlinkVisible = -1;                // invalidate the visible blinking character count, to force updateScreen() to recount
                this.fCellCacheValid = false;
                if (fNew) {
                    var nCells = this.nCellCache;
                    if (this.aCellCache === undefined || this.aCellCache.length != nCells) {
                        this.aCellCache = new Array(nCells);
                    }
                }
            };
            
            /**
             * invalidateScreen(fNew)
             *
             * Ensure that the next updateScreen() will update every cell; intended for situations where the entire screen needs
             * to be redrawn, even though the underlying data in the video buffer has not changed (and therefore cleanMemory() will
             * report that the buffer is still clean, and/or all the video data still matches everything in our cell cache).
             *
             * For example, when the palette is being cycled, the screen is being panned, the page is being flipped, etc.
             *
             * @this {Video}
             * @param {boolean} [fNew] is passed through to initCellCache; typically true when a new mode has been set.
             */
            Video.prototype.invalidateScreen = function(fNew)
            {
                this.fRGBValid = false;
                this.initCellCache(fNew);
            };
            
            /**
             * doBlink()
             *
             * This function is obsolete, now that the checkBlink() function is called on every updateScreen()
             * and checkCursor() call.  updateScreen() is driven by the CPU timer, so piggy-backing on that to
             * drive blink updates seems preferable to having another active timer in the system.
             *
             * @this {Video}
             * @param {boolean} [fStart]
             *
             Video.prototype.doBlink = function(fStart)
             {
                if (this.cBlinks >= 0) {
                    this.cBlinks++;
                    if (this.cBlinkVisible || this.iCellCursor >= 0) {
                        if (!fStart && !this.cpu.isRunning()) {
                            this.updateScreen();
                        }
                        setTimeout(function(video) { return function onBlinkTimeout() {video.doBlink();}; }(this), 266);
                        return;
                    }
                    this.cBlinks = -1;
                }
            },
             */
            
            /**
             * updateChar(col, row, data, context)
             *
             * Updates a particular character cell (row,col) in the associated window.
             *
             * The data parameter is the attribute byte from the display buffer (fgnd attribute in the low nibble,
             * bgnd attribute in the high nibble), but updateScreen() supplements data with a couple internal attribute bits:
             *
             *      ATTRS.DRAW_FGND:    set for every cell whose fgnd element is currently on (ie, non-blinking, or whenever blink is on)
             *      ATTRS.DRAW_CURSOR:  set only for the cell containing the cursor, if any
             *
             * To make a character blink, we alternately draw its cell with ATTRS.DRAW_FGND set, and then again with
             * ATTRS.DRAW_FGND clear (meaning only the cell background is drawn).
             *
             * To make the cursor blink, we must alternately draw its entire cell with ATTRS.DRAW_CURSOR set, and then
             * draw it again with ATTRS.DRAW_CURSOR clear.
             *
             * @this {Video}
             * @param {number} col
             * @param {number} row
             * @param {number} data (if text mode, character code in low byte, attribute code in high byte)
             * @param {Object} [context]
             */
            Video.prototype.updateChar = function(col, row, data, context)
            {
                /*
                 * The caller MUST promise this.nFont is defined, and that the font in this.aFonts[this.nFont] has been loaded.
                 */
                var bChar = data & 0xff;
                var bAttr = data >> 8;
                var iFgnd = bAttr & 0xf;
                var font = this.aFonts[this.nFont];
                if (font.aColorMap) iFgnd = font.aColorMap[iFgnd];
            
                /*
                 * Just as aColorMap maps the foreground attribute to the appropriate foreground character grid,
                 * it also maps the background attribute to the appropriate background color.
                 */
                var xDst, yDst;
                var iBgnd = (bAttr >> 4) & 0xf;
                if (font.aColorMap) iBgnd = font.aColorMap[iBgnd];
            
                if (context) {
                    xDst = col * font.cxCell;
                    yDst = row * font.cyCell;
                    context.fillStyle = font.aCSSColors[iBgnd];
                    context.fillRect(xDst, yDst, font.cxCell, font.cyCell);
                } else {
                    xDst = col * this.cxScreenCell + this.xScreenOffset;
                    yDst = row * this.cyScreenCell + this.yScreenOffset;
                    this.contextScreen.fillStyle = font.aCSSColors[iBgnd];
                    this.contextScreen.fillRect(xDst, yDst, this.cxScreenCell, this.cyScreenCell);
                }
            
                if (MAXDEBUG && this.messageEnabled(Messages.VIDEO | Messages.LOG)) {
                    this.log("updateCharBgnd(" + col + "," + row + "," + bChar + "): filled " + xDst + "," + yDst);
                }
            
                if (bAttr & Video.ATTRS.DRAW_FGND) {
                    /*
                     * (bChar & 0xf) is the equivalent of (bChar % 16), and (bChar >> 4) is the equivalent of Math.floor(bChar / 16)
                     */
                    var xSrcFgnd = (bChar & 0xf) * font.cxCell;
                    var ySrcFgnd = (bChar >> 4) * font.cyCell;
            
                    if (MAXDEBUG && this.messageEnabled(Messages.VIDEO | Messages.LOG)) {
                        this.log("updateCharFgnd(" + col + "," + row + "," + bChar + "): draw from " + xSrcFgnd + "," + ySrcFgnd + " (" + font.cxCell + "," + font.cyCell + ") to " + xDst + "," + yDst);
                    }
            
                    if (context) {
                        context.drawImage(font.aCanvas[iFgnd], xSrcFgnd, ySrcFgnd, font.cxCell, font.cyCell, xDst, yDst, font.cxCell, font.cyCell);
                    } else {
                        this.contextScreen.drawImage(font.aCanvas[iFgnd], xSrcFgnd, ySrcFgnd, font.cxCell, font.cyCell, xDst, yDst, this.cxScreenCell, this.cyScreenCell);
                    }
                }
            
                if (bAttr & Video.ATTRS.DRAW_CURSOR) {
                    /*
                     * Drawing the cursor with lineTo() seemed logical, but it was complicated by the fact that the
                     * TOP of the line must appear at "yDst + this.yCursor", whereas lineTo() wants to know the CENTER
                     * of the line. So it's simpler to draw the cursor with another fillRect().  Here's the old code:
                     *
                     *      this.contextScreen.strokeStyle = font.aCSSColors[iFgnd];
                     *      this.contextScreen.lineWidth = this.cyCursor;
                     *      this.contextScreen.beginPath();
                     *      this.contextScreen.moveTo(xDst, yDst + this.yCursor);
                     *      this.contextScreen.lineTo(xDst + this.cxScreenCell, yDst + this.yCursor);
                     *      this.contextScreen.stroke();
                     *
                     * Also, note that we're scaling the yCursor and cyCursor values here, instead of in checkCursor(), because
                     * this is where we have all the required information: in the first case (off-screen buffer), the scaling must
                     * be based on the font cell size (cxCell, cyCell), whereas in the second case (on-screen buffer), the scaling
                     * must be based on the screen cell size (cxScreenCell,cyScreenCell).
                     *
                     * yCursor and cyCursor are actual hardware values, both relative to another hardware value: cyCursorCell.
                     */
                    var yCursor = this.yCursor;
                    var cyCursor = this.cyCursor;
                    if (context) {
                        if (this.cyCursorCell && this.cyCursorCell !== font.cyCell) {
                            yCursor = ((yCursor * font.cyCell) / this.cyCursorCell)|0;
                            cyCursor = ((cyCursor * font.cyCell) / this.cyCursorCell)|0;
                        }
                        context.fillStyle = font.aCSSColors[iFgnd];
                        context.fillRect(xDst, yDst + yCursor, font.cxCell, cyCursor);
                    } else {
                        if (this.cyCursorCell && this.cyCursorCell !== this.cyScreenCell) {
                            yCursor = ((yCursor * this.cyScreenCell) / this.cyCursorCell)|0;
                            cyCursor = ((cyCursor * this.cyScreenCell) / this.cyCursorCell)|0;
                        }
                        this.contextScreen.fillStyle = font.aCSSColors[iFgnd];
                        this.contextScreen.fillRect(xDst, yDst + yCursor, this.cxScreenCell, cyCursor);
                    }
                }
            };
            
            /**
             * updateScreen(fForce)
             *
             * Propagates the video buffer to the cell cache and updates the screen with any changes.  Forced updates
             * are generally internal updates triggered by an I/O operation or other state change, while non-forced updates
             * are the periodic updates coming from the CPU.
             *
             * For every cell in the video buffer, compare it to the cell stored in the cell cache, render if it differs,
             * and then update the cell cache to match.  Since initCellCache() sets every cell in the cell cache to an
             * invalid value, we're assured that the next call to updateScreen() will redraw the entire (visible) video buffer.
             *
             * @this {Video}
             * @param {boolean} [fForce] is used by setMode() to reset the cell cache and force a redraw
             */
            Video.prototype.updateScreen = function(fForce)
            {
                /*
                 * The Computer component maintains the fPowered setting on our behalf, so we use it.
                 */
                if (!this.aFlags.fPowered) return;
            
                /*
                 * If the card's video signal is disabled (eg, during a mode change), then skip the update,
                 * unless fForce is set.
                 */
                var fEnabled = false;
                var card = this.cardActive;
            
                if (card) {
                    if (card !== this.cardEGA) {
                        if (card.regMode & Card.CGA.MODE.VIDEO_ENABLE) fEnabled = true;
                    }
                    else {
                        if (card.regATCIndx & Card.ATC.INDX_PAL_ENABLE) fEnabled = true;
                    }
                }
            
                if (!fEnabled && !fForce) return;
            
                if (fForce) {
                    this.initCellCache(true);
                }
                else {
                    /*
                     * This should never happen, but since updateScreen() is also called by CPU.updateVideo(),
                     * better safe than sorry.
                     */
                    if (this.aCellCache === undefined) return;
                }
            
                /*
                 * If cBlinks is "enabled" (ie, >= 0), then advance it once every 16 updateScreen() calls
                 * (assuming an updateScreen() frequency of 60 per second; see CPU.VIDEO_UPDATES_PER_SECOND).
                 *
                 * We assume that the CPU is calling us whenever fForce is undefined.
                 */
                var fBlinkUpdate = false;
                if (!fForce && !(++this.cUpdates & 0xf) && this.cBlinks >= 0) {
                    this.cBlinks++;
                    fBlinkUpdate = true;
                }
            
                var iCell = 0;
                var nCells = this.nCells;
            
                /*
                 * Calculate the VISIBLE start of screen memory (addrScreen), not merely the PHYSICAL start,
                 * as well as the extent of it (cbScreen) and use those values for all addressing operations
                 * to follow.  FYI, in these calculations, offScreen does not refer to "off-screen" memory,
                 * but rather the "offset" of the start of visible screen memory.
                 */
                var addrScreen = card.addrBuffer;
                var addrScreenLimit = addrScreen + card.sizeBuffer;
            
                /*
                 * HACK: The CRTC's START_ADDR_HI and START_ADDR_LO registers are supposed to be "latched" into
                 * offStartAddr ONLY at the start of every VRETRACE interval; this is an attempt to honor that behavior,
                 * but unfortunately, updateScreen() is currently called at the CPU's discretion, not necessarily in
                 * sync with nCyclesVertPeriod.  As a result, we must rely on other criteria, like the number of vertical
                 * periods that have elapsed since the last CRTC write, writes to the ATC (see outATC()), etc.
                 *
                 * TODO: Consider matching the CPU's nCyclesNextVideoUpdate to the card's nCyclesVertPeriod, ensuring
                 * that CPU bursts are in sync with VRETRACE.  Note, however, that that will be complicated by other
                 * factors, such as the horizontal retrace interval, and the timing requirements of other cards in a
                 * multi-display configuration.
                 */
                if ((this.getRetraceBits(card) & Card.CGA.STATUS.VRETRACE) || card.nVertPeriodsStartAddr && card.nVertPeriodsStartAddr < card.nVertPeriods) {
                    card.offStartAddr = ((card.regCRTData[Card.CRTC.START_ADDR_HI] << 8) + card.regCRTData[Card.CRTC.START_ADDR_LO])|0;
                    card.nVertPeriodsStartAddr = 0;
                }
            
                var offScreen = card.offStartAddr;
            
                /*
                 * Any screen (aka "page") offset must be doubled for text modes, due to the attribute bytes.
                 *
                 * TODO: Come up with a more robust method of deciding when any screen offset should be doubled.
                 */
                if (this.nFont) offScreen <<= 1;
            
                addrScreen += offScreen;
                var cbScreen = this.cbScreen;
            
                if (this.nCard >= Video.CARD.EGA && card.regCRTData[Card.CRTC.EGA.OFFSET] && (card.regCRTData[Card.CRTC.EGA.OFFSET] << 1) != card.regCRTData[Card.CRTC.EGA.HDISP_END] + 1) {
                    /*
                     * Pre-EGA, the extent of visible screen memory (cbScreen) was derived from nCols * nRows, but since
                     * then, the logical width of screen memory (nColsLogical) can differ from the visible width (nCols).
                     * We now calculate the logical width, and the compute a new cbScreen in much the same way the original
                     * cbScreen was computed (but without any CGA-related padding considerations).
                     *
                     * TODO: I'm taking a lot of shortcuts in this calculation (eg, relying on nFont to detect text modes,
                     * ignoring MODE_CTRL.BYTE_MODE, etc); generalize this someday.
                     */
                    this.nColsLogical = card.regCRTData[Card.CRTC.EGA.OFFSET] << (this.nFont? 1 : (card.regCRTData[Card.CRTC.EGA.UNDERLINE.INDX] & Card.CRTC.EGA.UNDERLINE.DWORD)? 3 : 4);
                    cbScreen = ((this.nColsLogical * (this.nRows-1) + this.nCols) / this.nCellsPerWord)|0;
                }
            
                if (addrScreen + cbScreen > addrScreenLimit) {
                    cbScreen = addrScreenLimit - addrScreen;
                    if (cbScreen < 0) cbScreen = 0;
                }
            
                /*
                 * addrScreenLimit was initially the limit of the entire video buffer, but we now adjust it
                 * to the limit of what's visible, since that's all we want to draw.
                 */
                addrScreenLimit = addrScreen + cbScreen;
            
                /*
                 * This next bit of code can be completely disabled if we discover problems with the dirty
                 * memory block tracking feature, or if we need to remove or disable that feature in the future.
                 *
                 * We use cleanMemory() to check the video buffer's dirty state.  If the buffer is clean
                 * AND there are no visible blinking characters (as of the last updateScreen) AND there is
                 * no visible cursor, then we're done; simply return.  Otherwise, if there's only a blinking
                 * cursor, then update JUST that one cell.
                 *
                 * When dealing with blinking characters, note that we need to run through the entire buffer
                 * ONLY if the low bits of the blink count just transitioned to 2 or 0; hence, we could return if
                 * the blink count was ODD.  But we'd still have to worry about the cursor, so it's simpler to blow
                 * that small optimization off.  Further optimizations are certainly possible, such as a hash table
                 * of all blinking character locations, but all those optimizations are saved for a rainy day.
                 */
                if (!fForce && this.fCellCacheValid && this.bus.cleanMemory(addrScreen, cbScreen)) {
                    if (!fBlinkUpdate) return;
                    if (!this.cBlinkVisible) {
                        if (this.iCellCursor < 0) return;
                        iCell = this.iCellCursor;
                        nCells = iCell + 1;
                    }
                    // else if (this.cBlinks & 0x1) return;
                }
            
                if (this.nFont) {
                    /*
                     * This is the text-mode update case.  We're required to FIRST verify that the current font
                     * has been successfully loaded, because we're not allowed to call updateChar() if there's no font.
                     */
                    if (this.aFonts[this.nFont]) {
                        this.updateScreenText(addrScreen, addrScreenLimit, iCell, nCells);
                        this.checkBlink();
                    }
                }
                else if (this.cbSplit) {
                    this.updateScreenGraphicsCGA(addrScreen, addrScreenLimit);
                }
                else if (!this.fColor256) {
                    this.updateScreenGraphicsEGA(addrScreen, addrScreenLimit);
                }
                else {
                    this.updateScreenGraphicsVGA(addrScreen, addrScreenLimit);
                }
            };
            
            /**
             * updateScreenText(addrScreen, addrScreenLimit, iCell, nCells)
             *
             * @param addrScreen
             * @param addrScreenLimit
             * @param iCell
             * @param nCells
             */
            Video.prototype.updateScreenText = function(addrScreen, addrScreenLimit, iCell, nCells)
            {
                var addr, data, cUpdated = 0;
            
                /*
                 * If MDA.MODE.BLINK_ENABLE is set and a cell's blink bit is set, then if (cBlinks & 0x2) != 0,
                 * we want the foreground element of the cell to be drawn; otherwise we don't.  So every 16-bit
                 * data word we pull from the video buffer will be supplemented with our own special attribute bit
                 * (ATTRS.DRAW_FGND = 0x100) accordingly; and to simplify the drawing code, we will also mask the
                 * blink bit from the cell's attribute bits.
                 *
                 * If MDA.MODE.BLINK_ENABLE is clear, then we always set ATTRS.DRAW_FGND and never mask the blink
                 * bit in a cell's attributes bits, since it's actually an intensity bit in that case.
                 */
                this.cBlinkVisible = 0;
                var dataBlink = 0;
                var dataDraw = (Video.ATTRS.DRAW_FGND << 8);
                var dataMask = 0xfffff;
            
                var fBlinkEnable = (this.cardActive.regMode & Card.MDA.MODE.BLINK_ENABLE);
                if (this.nCard >= Video.CARD.EGA) {
                    fBlinkEnable = (this.cardActive.regATCData[Card.ATC.MODE.INDX] & Card.ATC.MODE.BLINK_ENABLE);
                }
            
                if (fBlinkEnable) {
                    dataBlink = (Video.ATTRS.BGND_BLINK << 8);
                    dataMask &= ~dataBlink;
                    if (!(this.cBlinks & 0x2)) dataMask &= ~dataDraw;
                }
            
                addr = addrScreen + (iCell << 1);
                while (addr < addrScreenLimit && iCell < nCells) {
                    data = this.bus.getShortDirect(addr);
                    data |= dataDraw;
                    if (data & dataBlink) {
                        this.cBlinkVisible++;
                        data &= dataMask;
                    }
                    if (iCell == this.iCellCursor) {
                        data |= ((this.cBlinks & 0x1)? (Video.ATTRS.DRAW_CURSOR << 8) : 0);
                    }
                    this.assert(iCell < this.aCellCache.length);
                    if (!this.fCellCacheValid || data !== this.aCellCache[iCell]) {
                        var col = iCell % this.nCols;
                        var row = (iCell / this.nCols)|0;
                        this.updateChar(col, row, data, this.contextScreenBuffer);
                        this.aCellCache[iCell] = data;
                        cUpdated++;
                    }
                    addr += 2;
                    iCell++;
                }
            
                this.fCellCacheValid = true;
            
                if (cUpdated && this.contextScreenBuffer) {
                    this.contextScreen.drawImage(this.canvasScreenBuffer, 0, 0, this.cxBuffer, this.cyBuffer, this.xScreenOffset, this.yScreenOffset, this.cxScreenOffset, this.cyScreenOffset);
                }
            };
            
            /**
             * updateScreenGraphicsCGA(addrScreen, addrScreenLimit)
             *
             * @param addrScreen
             * @param addrScreenLimit
             */
            Video.prototype.updateScreenGraphicsCGA = function(addrScreen, addrScreenLimit)
            {
                var addr, data;
            
                /*
                 * This is the CGA graphics-mode update case, where cells are pixels spread across two halves of the buffer.
                 */
                addr = addrScreen;
                this.cBlinkVisible = 0;
                var iCell = 0, nPixelsPerCell = this.nCellsPerWord;
                var wPixelMask = (nPixelsPerCell == 16? 0x10000 : 0x30000);
                var nPixelShift = (nPixelsPerCell == 16? 1 : 2);
                var aPixelColors = this.getCardColors(nPixelShift);
            
                var x = 0, y = 0;
                var xDirty = this.nCols, xMaxDirty = 0, yDirty = this.nRows, yMaxDirty = 0;
                while (addr < addrScreenLimit) {
                    data = this.bus.getShortDirect(addr);
                    this.assert(iCell < this.aCellCache.length);
                    if (this.fCellCacheValid && data === this.aCellCache[iCell]) {
                        x += nPixelsPerCell;
                    } else {
                        this.aCellCache[iCell] = data;
                        var wPixels = (data >> 8) | ((data & 0xff) << 8);
                        var wMask = wPixelMask, nShift = 16;
                        if (x < xDirty) xDirty = x;
                        for (var iPixel = 0; iPixel < nPixelsPerCell; iPixel++) {
                            var bPixel = (wPixels & (wMask >>= nPixelShift)) >> (nShift -= nPixelShift);
                            this.setPixel(this.imageScreenBuffer, x++, y, aPixelColors[bPixel]);
                        }
                        if (x > xMaxDirty) xMaxDirty = x;
                        if (y < yDirty) yDirty = y;
                        if (y >= yMaxDirty) yMaxDirty = y + 1;
                    }
                    addr += 2;
                    iCell++;
                    if (x >= this.nCols) {
                        x = 0;
                        y += 2;
                        if (y > this.nRows)
                            break;
                        if (y == this.nRows) {
                            y = 1;
                            addr = addrScreen + this.cbSplit;
                        }
                    }
                }
            
                this.fCellCacheValid = true;
            
                /*
                 * Instead of blasting the ENTIRE imageScreenBuffer into contextScreenBuffer, and then blasting the ENTIRE
                 * canvasScreenBuffer onto contextScreen, even for the smallest change, let's try to be a bit smarter about
                 * the update (well, to the extent that the canvas APIs permit).
                 */
                if (xDirty < this.nCols) {
                    var cxDirty = xMaxDirty - xDirty;
                    var cyDirty = yMaxDirty - yDirty;
                    // this.contextScreenBuffer.putImageData(this.imageScreenBuffer, 0, 0);
                    this.contextScreenBuffer.putImageData(this.imageScreenBuffer, 0, 0, xDirty, yDirty, cxDirty, cyDirty);
                    /*
                     * While ideally I would draw only the dirty portion of canvasScreenBuffer, there usually isn't a 1-1 pixel mapping
                     * between canvasScreenBuffer and contextScreen.  In fact, the WHOLE POINT of the canvasScreenBuffer is to leverage
                     * drawImage()'s scaling ability; for example, a CGA graphics mode might be 640x200, whereas the canvas representing
                     * the screen might be 960x400.  In those situations, if we draw interior rectangles, we often end up with subpixel
                     * artifacts along the edges of those rectangles.  So it appears I must continue to redraw the entire canvasScreenBuffer
                     * on every change.
                     *
                    var xScreen = (((xDirty * this.cxScreen) / this.nCols) | 0);
                    var yScreen = (((yDirty * this.cyScreen) / this.nRows) | 0);
                    var cxScreen = (((cxDirty * this.cxScreen) / this.nCols) | 0);
                    var cyScreen = (((cyDirty * this.cyScreen) / this.nRows) | 0);
                    this.contextScreen.drawImage(this.canvasScreenBuffer, xDirty, yDirty, cxDirty, cyDirty, xScreen, yScreen, cxScreen, cyScreen);
                     */
                    this.contextScreen.drawImage(this.canvasScreenBuffer, 0, 0, this.nCols, this.nRows, 0, 0, this.cxScreen, this.cyScreen);
                }
            };
            
            /**
             * updateScreenGraphicsEGA(addrScreen, addrScreenLimit)
             *
             * TODO: Add support for blinking graphics (ATC.MODE.BLINK_ENABLE)
             *
             * @param addrScreen
             * @param addrScreenLimit
             */
            Video.prototype.updateScreenGraphicsEGA = function(addrScreen, addrScreenLimit)
            {
                var addr, data;
            
                addr = addrScreen;
                this.cBlinkVisible = 0;
            
                var iCell = 0;
                var aPixelColors = this.getCardColors();
                var adwMemory = this.cardActive.adwMemory;
            
                var x = 0, y = 0;
                var xDirty = this.nCols, xMaxDirty = 0, yDirty = this.nRows, yMaxDirty = 0;
            
                var iPixelFirst = this.cardActive.regATCData[Card.ATC.HPAN.INDX] & Card.ATC.HPAN.SHIFT_LEFT;
                /*
                 * TODO: What should happen if the card is programmed such that nColsLogical is LESS THAN nCols?
                 */
                var nRowAdjust = (this.nColsLogical > this.nCols? ((this.nColsLogical - this.nCols - iPixelFirst) >> 3) : 0);
            
                while (addr < addrScreenLimit) {
                    var idw = addr++ - this.addrBuffer;
                    this.assert(idw >= 0 && idw < adwMemory.length);
                    data = adwMemory[idw];
            
                    /*
                     * Figure out how many visible pixels this data represents; usually 8, unless panning is being used.
                     */
                    var iPixel, nPixels = 8;
            
                    if (iPixelFirst) {
                        /*
                         * Notice that we're not using the cell cache when panning is active, because the cached cell data no
                         * longer aligns with the data we're pulling out of the video buffer, and it's not clear that the effort
                         * to realign the data and make a valid cache comparison would save enough work to make it worthwhile.
                         */
                        if (!x) {
                            data <<= iPixelFirst;
                            nPixels -= iPixelFirst;
                            /*
                             * This is as good a place as any to invalidate the cell cache when panning is active; this ensures
                             * we don't rely on stale cache contents once panning stops.
                             */
                            this.fCellCacheValid = false;
                        } else {
                            iPixel = this.nCols - x;
                            if (nPixels > iPixel) nPixels = iPixel;
                        }
                    } else {
                        this.assert(iCell < this.aCellCache.length);
                        if (this.fCellCacheValid && data === this.aCellCache[iCell]) {
                            x += nPixels;
                            nPixels = 0;
                        } else {
                            this.aCellCache[iCell] = data;
                        }
                        iCell++;
                    }
            
                    if (nPixels) {
                        if (x < xDirty) xDirty = x;
                        for (iPixel = 0; iPixel < nPixels; iPixel++) {
                            /*
                             * We must follow the golden JavaScript rule of appending "|0" to all hex constants with bit 31 set.
                             * The innocuous use of the bit-wise OR operator has the side-effect of producing a negative value,
                             * matching how entries in Video.aEGADWToByte are initialized (eg, "Video.aEGADWToByte[0x80000000|0]").
                             */
                            var dwPixel = data & (0x80808080|0);
                            /*
                             * This was the old approach to dealing with negative hex values, by converting them to positive
                             * values that didn't alter the low 32 bits.  But it's not ideal, because it requires using values here
                             * and in the array that are outside the signed 32-bit range, potentially triggering floating-point.
                             *
                             *      if (dwPixel < 0) dwPixel += 0x100000000;
                             */
                            this.assert(Video.aEGADWToByte[dwPixel] !== undefined);
                            /*
                             * Since assertions don't fix problems (only catch them, and only in DEBUG builds), I'm also ensuring
                             * that bPixel will always default to 0 if an undefined value ever slips through again.
                             */
                            var bPixel = Video.aEGADWToByte[dwPixel] || 0;
                            this.setPixel(this.imageScreenBuffer, x++, y, aPixelColors[bPixel]);
                            data <<= 1;
                        }
                        if (x > xMaxDirty) xMaxDirty = x;
                        if (y < yDirty) yDirty = y;
                        if (y >= yMaxDirty) yMaxDirty = y + 1;
                    }
            
                    this.assert(x <= this.nCols);
            
                    if (x >= this.nCols) {
                        x = 0;
                        if (++y > this.nRows) break;
                        addr += nRowAdjust;
                    }
                }
            
                if (!iPixelFirst) this.fCellCacheValid = true;
            
                /*
                 * For a fascinating discussion of the best way to update the screen canvas at this point, see updateScreenGraphicsCGA().
                 */
                if (xDirty < this.nCols) {
                    var cxDirty = xMaxDirty - xDirty;
                    var cyDirty = yMaxDirty - yDirty;
                    this.contextScreenBuffer.putImageData(this.imageScreenBuffer, 0, 0, xDirty, yDirty, cxDirty, cyDirty);
                    this.contextScreen.drawImage(this.canvasScreenBuffer, 0, 0, this.nCols, this.nRows, 0, 0, this.cxScreen, this.cyScreen);
                }
            };
            
            /**
             * updateScreenGraphicsVGA(addrScreen, addrScreenLimit)
             *
             * This function name is a slight misnomer: updateScreenGraphicsEGA() takes care of all the 4bpp video modes
             * (first introduced by the EGA and later expanded by the VGA), where each pixel's bits are spread across the 4
             * planes, whereas this function takes care of just the 8bpp video modes introduced by the VGA, such as mode 0x13
             * (320x200x256), where each pixel's bits are contained within a single plane.  This is essentially all 256-color
             * modes (CHAIN4, "Mode X", etc), hence the hard-coded call to getCardColors(8).
             *
             * TODO: Add support for blinking graphics (ATC.MODE.BLINK_ENABLE)
             *
             * @param addrScreen
             * @param addrScreenLimit
             */
            Video.prototype.updateScreenGraphicsVGA = function(addrScreen, addrScreenLimit)
            {
                var addr, data;
            
                addr = addrScreen;
                this.cBlinkVisible = 0;
            
                var iCell = 0;
                var aPixelColors = this.getCardColors(8);
                var adwMemory = this.cardActive.adwMemory;
            
                var x = 0, y = 0;
                var xDirty = this.nCols, xMaxDirty = 0, yDirty = this.nRows, yMaxDirty = 0;
            
                var cbInc = (this.cardActive.regSEQData[Card.SEQ.MEMMODE.INDX] & Card.SEQ.MEMMODE.CHAIN4)? 4 : 1;
                var iPixelFirst = this.cardActive.regATCData[Card.ATC.HPAN.INDX] & Card.ATC.HPAN.SHIFT_LEFT;
                /*
                 * TODO: What should happen if the card is programmed such that nColsLogical is LESS THAN nCols?
                 */
                var nRowAdjust = (this.nColsLogical > this.nCols? ((this.nColsLogical - this.nCols - iPixelFirst) >> 3) : 0);
            
                while (addr < addrScreenLimit) {
                    var idw = addr - this.addrBuffer;
                    this.assert(idw >= 0 && idw < adwMemory.length);
                    data = adwMemory[idw];
            
                    /*
                     * Figure out how many visible pixels this data represents; usually 4, unless panning is being used.
                     */
                    var iPixel, nPixels = 4;
            
                    if (iPixelFirst) {
                        /*
                         * Notice that we're not using the cell cache when panning is active, because the cached cell data no
                         * longer aligns with the data we're pulling out of the video buffer, and it's not clear that the effort
                         * to realign the data and make a valid cache comparison would save enough work to make it worthwhile.
                         */
                        if (!x) {
                            data <<= iPixelFirst;
                            nPixels -= iPixelFirst;
                            /*
                             * This is as good a place as any to invalidate the cell cache when panning is active; this ensures
                             * we don't rely on stale cache contents once panning stops.
                             */
                            this.fCellCacheValid = false;
                        } else {
                            iPixel = this.nCols - x;
                            if (nPixels > iPixel) nPixels = iPixel;
                        }
                    } else {
                        this.assert(iCell < this.aCellCache.length);
                        if (this.fCellCacheValid && data === this.aCellCache[iCell]) {
                            x += nPixels;
                            nPixels = 0;
                        } else {
                            this.aCellCache[iCell] = data;
                        }
                        iCell++;
                    }
            
                    if (nPixels) {
                        if (x < xDirty) xDirty = x;
                        for (iPixel = 0; iPixel < nPixels; iPixel++) {
                            var bPixel = data & 0xff;
                            this.setPixel(this.imageScreenBuffer, x++, y, aPixelColors[bPixel]);
                            data >>>= 8;
                        }
                        if (x > xMaxDirty) xMaxDirty = x;
                        if (y < yDirty) yDirty = y;
                        if (y >= yMaxDirty) yMaxDirty = y + 1;
                    }
            
                    this.assert(x <= this.nCols);
            
                    addr += cbInc;
            
                    if (x >= this.nCols) {
                        x = 0;
                        if (++y > this.nRows) break;
                        addr += nRowAdjust;
                    }
                }
            
                if (!iPixelFirst) this.fCellCacheValid = true;
            
                /*
                 * For a fascinating discussion of the best way to update the screen canvas at this point, see updateScreenGraphicsCGA().
                 */
                if (xDirty < this.nCols) {
                    var cxDirty = xMaxDirty - xDirty;
                    var cyDirty = yMaxDirty - yDirty;
                    this.contextScreenBuffer.putImageData(this.imageScreenBuffer, 0, 0, xDirty, yDirty, cxDirty, cyDirty);
                    this.contextScreen.drawImage(this.canvasScreenBuffer, 0, 0, this.nCols, this.nRows, 0, 0, this.cxScreen, this.cyScreen);
                }
            };
            
            /**
             * getRetraceBits(card)
             *
             * This returns a byte value with two bits set or clear as appropriate: RETRACE and VRETRACE.
             *
             * @this {Video}
             * @param {Object} card
             * @return {number}
             */
            Video.prototype.getRetraceBits = function(card)
            {
                var b = 0;
            
                /*
                 * NOTE: The CGA bits CGA.STATUS.RETRACE (0x01) and CGA.STATUS.VRETRACE (0x08) match the EGA definitions,
                 * and they also correspond to the MDA bits MDA.STATUS.HDRIVE (0x01) and MDA.STATUS.BWVIDEO (0x08); I'm not sure why
                 * the MDA uses different designations, but the bits appear to serve the same purpose.
                 *
                 * TODO: Decide whether this more faithful emulation of the retrace bits should be extended to the MDA/CGA, too;
                 * doing so might slow down the BIOS scroll code a bit, though.
                 *
                 * TODO: Verify that when a saved machine state is restored, both the CPU's cycle count AND the card's nInitCycles
                 * are properly restored.  It's probably not a big deal, but details like that bother me.
                 */
                var nCycles = this.cpu.getCycles();
                var nElapsedCycles = nCycles - card.nInitCycles;
                if (nElapsedCycles < 0) {           // perhaps the CPU decided to reset its cycle count?
                    card.nInitCycles = nElapsedCycles;
                    nElapsedCycles = -nElapsedCycles|0;
                }
                var nCyclesHorzRemain = nElapsedCycles % card.nCyclesHorzPeriod;
                if (nCyclesHorzRemain > card.nCyclesHorzActive) b |= Card.CGA.STATUS.RETRACE;
                var nCyclesVertRemain = nElapsedCycles % card.nCyclesVertPeriod;
                if (nCyclesVertRemain > card.nCyclesVertActive) b |= Card.CGA.STATUS.VRETRACE | Card.CGA.STATUS.RETRACE;
                /*
                 * Some callers also want to know how many vertical retrace periods have occurred since the last time they checked,
                 * so we compute that now.
                 */
                card.nVertPeriods = (nElapsedCycles / card.nCyclesVertPeriod)|0;
                /*
                 * The number of CPU cycles that remain in the current vertical period is all we USED to keep track of, since
                 * keeping track of the total number of cycles since the card was initialized can result in an extremely large
                 * delta after a while.
                 *
                 *      card.nInitCycles = nCycles - nCyclesVertRemain;
                 *
                 * HOWEVER, now that we're calling getRetraceBits() more frequently (ie, for internal retrace checks), resetting
                 * nInitCycles in this fashion alters the horizontal period too much, causing grief in ROM BIOS code that requires
                 * strict horizontal retrace times.  Also, the CPU reserves the right to occasionally reset its own cycle count.
                 * A final complication is that nVertPeriods would no longer be accurate if we constantly reduced nInitCycles.
                 *
                 * None of those are insurmountable problems, but the simple solution is to never reduce nInitCycles (well, except
                 * when forced to by a reduction in the CPU's cycle count).
                 */
                return b;
            };
            
            /**
             * inMDAIndx(port, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3B4)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number|undefined}
             */
            Video.prototype.inMDAIndx = function(port, addrFrom)
            {
                return this.inCRTCIndx(this.cardMono, port, addrFrom);
            };
            
            /**
             * outMDAIndx(port, bOut, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3B4)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             */
            Video.prototype.outMDAIndx = function(port, bOut, addrFrom)
            {
                this.outCRTCIndx(this.cardMono, port, bOut, addrFrom);
            };
            
            /**
             * inMDAData(port, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3B5)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number|undefined}
             */
            Video.prototype.inMDAData = function(port, addrFrom)
            {
                return this.inCRTCData(this.cardMono, port, addrFrom);
            };
            
            /**
             * outMDAData(port, bOut, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3B5)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             */
            Video.prototype.outMDAData = function(port, bOut, addrFrom)
            {
                this.outCRTCData(this.cardMono, port, bOut, addrFrom);
            };
            
            /**
             * inMDAMode(port, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3B8)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number}
             */
            Video.prototype.inMDAMode = function(port, addrFrom)
            {
                return this.inCardMode(this.cardMono, addrFrom);
            };
            
            /**
             * outMDAMode(port, bOut, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3B8)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             */
            Video.prototype.outMDAMode = function(port, bOut, addrFrom)
            {
                this.outCardMode(this.cardMono, bOut, addrFrom);
            };
            
            /**
             * inMDAStatus(port, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3BA)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number}
             */
            Video.prototype.inMDAStatus = function(port, addrFrom)
            {
                return this.inCardStatus(this.cardMono, addrFrom);
            };
            
            /**
             * outFeat(port, bOut, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3BA or 0x3DA)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             *
             * NOTE: While this port also existed on the MDA and CGA, it existed only as an INPUT port, not an OUTPUT port.
             */
            Video.prototype.outFeat = function(port, bOut, addrFrom)
            {
                this.cardEGA.regFeat = (this.cardEGA.regFeat & ~Card.FEAT_CTRL.BITS) | (bOut & Card.FEAT_CTRL.BITS);
                this.printMessageIO(port, bOut, addrFrom, "FEAT");
            };
            
            /**
             * inATC(port, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3C0)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number}
             */
            Video.prototype.inATC = function(port, addrFrom)
            {
                var b = this.cardEGA.fATCData? this.cardEGA.regATCData[this.cardEGA.regATCIndx & Card.ATC.INDX_MASK] : this.cardEGA.regATCIndx;
                if (!addrFrom || this.messageEnabled()) {
                    this.printMessageIO(Card.ATC.PORT, null, addrFrom, "ATC." + (this.cardEGA.fATCData? this.cardEGA.asATCRegs[this.cardEGA.regATCIndx & Card.ATC.INDX_MASK] : "INDX"), b);
                }
                this.cardEGA.fATCData = !this.cardEGA.fATCData;
                return b;
            };
            
            /**
             * outATC(port, bOut, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3C0)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             */
            Video.prototype.outATC = function(port, bOut, addrFrom)
            {
                var card = this.cardEGA;
                var fPalEnabled = (card.regATCIndx & Card.ATC.INDX_PAL_ENABLE);
                if (!card.fATCData) {
                    card.regATCIndx = bOut;
                    this.printMessageIO(port, bOut, addrFrom, "ATC.INDX");
                    card.fATCData = true;
                    if ((bOut & Card.ATC.INDX_PAL_ENABLE) && !fPalEnabled) {
                        if (!this.buildFonts()) {
                            if (DEBUG && (!addrFrom || this.messageEnabled())) {
                                this.printMessage("outATC(" + str.toHexByte(bOut) + "): no font changes required");
                            }
                        } else {
                            if (DEBUG && (!addrFrom || this.messageEnabled())) {
                                this.printMessage("outATC(" + str.toHexByte(bOut) + "): redraw screen for font changes");
                            }
                            this.updateScreen(true);
                        }
                    }
                    /*
                     * HACK: offStartAddr is supposed to be "latched" ONLY at the start of every VRETRACE interval,
                     * but other "triggers" are helpful; see updateScreen() for details.
                     */
                    card.offStartAddr = ((card.regCRTData[Card.CRTC.START_ADDR_HI] << 8) + card.regCRTData[Card.CRTC.START_ADDR_LO])|0;
                    card.nVertPeriodsStartAddr = 0;
                } else {
                    card.fATCData = false;
                    var iReg = card.regATCIndx & Card.ATC.INDX_MASK;
                    if (iReg >= Card.ATC.PALETTE_REGS || !fPalEnabled) {
                        if (Video.TRAPALL || card.regATCData[iReg] !== bOut) {
                            if (!addrFrom || this.messageEnabled()) {
                                this.printMessageIO(port, bOut, addrFrom, "ATC." + card.asATCRegs[iReg]);
                            }
                            card.regATCData[iReg] = bOut;
                            this.invalidateScreen();
                        }
                    }
                }
            };
            
            /**
             * inStatus0(port, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3C2)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number}
             */
            Video.prototype.inStatus0 = function(port, addrFrom)
            {
                var bSWBit = 0;
                if (this.nCard == Video.CARD.EGA) {
                    var iBit = 3 - ((this.cardEGA.regMisc & Card.MISC.CLOCK_SELECT) >> 2);    // this is the desired SW # (0-3)
                    bSWBit = (this.bEGASwitches & (1 << iBit)) << (Card.STATUS0.SWSENSE_SHIFT - iBit);
                } else {
                    /*
                     * The IBM VGA ROM expects the SWSENSE bit to change according to how the DAC is programmed.
                     *
                     * At C000:0391, the ROM selects the following array at 0x0454:
                     *
                     *      db  0x12,0x12,0x12,0x10
                     *
                     * and writes the first 3 bytes to DAC register #0, and then compares SWSENSE to the 4th byte (0x10).
                     *
                     * If the 4th byte matches, then the ROM clears the BIOS "monochrome monitor" bit, and does the same
                     * thing again with 5 more arrays, expecting the 4th byte in all 5 arrays to match SWSENSE, and being
                     * very unhappy if they don't:
                     *
                     *      db	0x14,0x14,0x14,0x10
                     *      db	0x2D,0x14,0x14,0x00
                     *      db	0x14,0x2D,0x14,0x00
                     *      db	0x14,0x14,0x2D,0x00
                     *      db	0x2D,0x2D,0x2D,0x00
                     *
                     * I ensure much happiness by setting SWSENSE unless any of the three 6-bit DAC values contain 0x2D.
                     *
                     * This hard-coded behavior assumes a color monitor.  If you really want to simulate a monochrome monitor,
                     * then the 1st array (above) must mismatch, and a different set of arrays must all match:
                     *
                     *      db	0x04,0x12,0x04,0x10
                     *      db	0x1E,0x12,0x04,0x00
                     *      db	0x04,0x2D,0x04,0x00
                     *      db	0x04,0x16,0x15,0x00
                     *      db	0x00,0x00,0x00,0x10
                     *
                     * In other words, for a monochrome monitor, set SWSENSE only when DAC register #0 matches the first and last
                     * sets of values.
                     */
                    var dwDAC = this.cardEGA.regDACData[0];
                    if ((dwDAC & 0x3f) != 0x2d && (dwDAC & (0x3f << 6)) != (0x2d << 6) && (dwDAC & (0x3f << 12)) != (0x2d << 12)) {
                        bSWBit |= Card.STATUS0.SWSENSE;
                    }
                }
                var b = ((this.cardEGA.regStatus0 & ~Card.STATUS0.SWSENSE) | bSWBit);
                /*
                 * TODO: Figure out where Card.STATUS0.FEAT bits should come from....
                 */
                this.cardEGA.regStatus0 = b;
                this.printMessageIO(Card.STATUS0.PORT, null, addrFrom, "STATUS0", b);
                return b;
            };
            
            /**
             * @this {Video}
             * @param {number} port (0x3C2)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             */
            Video.prototype.outMisc = function(port, bOut, addrFrom)
            {
                this.cardEGA.regMisc = bOut;
                this.enableEGA();
                this.printMessageIO(Card.MISC.PORT_WRITE, bOut, addrFrom, "MISC");
            };
            
            /**
             * inVGAEnable(port, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3C3)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number}
             */
            Video.prototype.inVGAEnable = function(port, addrFrom)
            {
                var b = this.cardEGA.regVGAEnable;
                this.printMessageIO(Card.VGA_ENABLE.PORT, null, addrFrom, "VGA_ENABLE", b);
                return b;
            };
            
            /**
             * outVGAEnable(port, bOut, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3C3)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             */
            Video.prototype.outVGAEnable = function(port, bOut, addrFrom)
            {
                this.cardEGA.regVGAEnable = bOut;
                this.printMessageIO(Card.VGA_ENABLE.PORT, bOut, addrFrom, "VGA_ENABLE");
            };
            
            /**
             * inSEQIndx(port, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3C4)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number}
             */
            Video.prototype.inSEQIndx = function(port, addrFrom)
            {
                var b = this.cardEGA.regSEQIndx;
                this.printMessageIO(Card.SEQ.INDX.PORT, null, addrFrom, "SEQ.INDX", b);
                return b;
            };
            
            /**
             * outSEQIndx(port, bOut, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3C4)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             */
            Video.prototype.outSEQIndx = function(port, bOut, addrFrom)
            {
                this.cardEGA.regSEQIndx = bOut;
                this.printMessageIO(Card.SEQ.INDX.PORT, bOut, addrFrom, "SEQ.INDX");
            };
            
            /**
             * inSEQData(port, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3C5)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number}
             */
            Video.prototype.inSEQData = function(port, addrFrom)
            {
                var b = this.cardEGA.regSEQData[this.cardEGA.regSEQIndx];
                if (!addrFrom || this.messageEnabled()) {
                    this.printMessageIO(Card.SEQ.DATA.PORT, null, addrFrom, "SEQ." + this.cardEGA.asSEQRegs[this.cardEGA.regSEQIndx], b);
                }
                return b;
            };
            
            /**
             * outSEQData(port, bOut, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3C5)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             */
            Video.prototype.outSEQData = function(port, bOut, addrFrom)
            {
                if (Video.TRAPALL || this.cardEGA.regSEQData[this.cardEGA.regSEQIndx] !== bOut) {
                    if (!addrFrom || this.messageEnabled()) {
                        this.printMessageIO(Card.SEQ.DATA.PORT, bOut, addrFrom, "SEQ." + this.cardEGA.asSEQRegs[this.cardEGA.regSEQIndx]);
                    }
                    this.cardEGA.regSEQData[this.cardEGA.regSEQIndx] = bOut;
                }
                switch(this.cardEGA.regSEQIndx) {
                case Card.SEQ.MAPMASK.INDX:
                    this.cardEGA.nSeqMapMask = Video.aEGAByteToDW[bOut & Card.SEQ.MAPMASK.MAPS];
                    break;
                case Card.SEQ.MEMMODE.INDX:
                    this.setAccess(this.getAccess());
                    break;
                default:
                    break;
                }
            };
            
            /**
             * inDACMask(port, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3C6)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number}
             */
            Video.prototype.inDACMask = function(port, addrFrom)
            {
                var b = this.cardEGA.regDACMask;
                if (!addrFrom || this.messageEnabled()) {
                    this.printMessageIO(Card.DAC.MASK.PORT, null, addrFrom, "DAC.MASK", b);
                }
                return b;
            };
            
            /**
             * outDACMask(port, bOut, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3C6)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             */
            Video.prototype.outDACMask = function(port, bOut, addrFrom)
            {
                if (Video.TRAPALL || this.cardEGA.regDACMask !== bOut) {
                    if (!addrFrom || this.messageEnabled()) {
                        this.printMessageIO(Card.DAC.MASK.PORT, bOut, addrFrom, "DAC.MASK");
                    }
                    this.cardEGA.regDACMask = bOut;
                }
            };
            
            /**
             * inDACState(port, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3C7)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number}
             */
            Video.prototype.inDACState = function(port, addrFrom)
            {
                var b = this.cardEGA.regDACState;
                if (!addrFrom || this.messageEnabled()) {
                    this.printMessageIO(Card.DAC.STATE.PORT, null, addrFrom, "DAC.STATE", b);
                }
                return b;
            };
            
            /**
             * outDACRead(port, bOut, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3C7)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             */
            Video.prototype.outDACRead = function(port, bOut, addrFrom)
            {
                if (!addrFrom || this.messageEnabled()) {
                    this.printMessageIO(Card.DAC.ADDR.PORT_READ, bOut, addrFrom, "DAC.READ");
                }
                this.cardEGA.regDACAddr = bOut;
                this.cardEGA.regDACState = Card.DAC.STATE.MODE_READ;
                this.cardEGA.regDACShift = 0;
            };
            
            /**
             * outDACWrite(port, bOut, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3C8)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             */
            Video.prototype.outDACWrite = function(port, bOut, addrFrom)
            {
                if (!addrFrom || this.messageEnabled()) {
                    this.printMessageIO(Card.DAC.ADDR.PORT_WRITE, bOut, addrFrom, "DAC.WRITE");
                }
                this.cardEGA.regDACAddr = bOut;
                this.cardEGA.regDACState = Card.DAC.STATE.MODE_WRITE;
                this.cardEGA.regDACShift = 0;
            };
            
            /**
             * inDACData(port, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3C9)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number}
             */
            Video.prototype.inDACData = function(port, addrFrom)
            {
                var b = (this.cardEGA.regDACData[this.cardEGA.regDACAddr] >> this.cardEGA.regDACShift) & 0x3f;
                if (!addrFrom || this.messageEnabled()) {
                    this.printMessageIO(Card.DAC.DATA.PORT, null, addrFrom, "DAC.DATA[" + str.toHexByte(this.cardEGA.regDACAddr) + "][" + str.toHexByte(this.cardEGA.regDACShift) + "]", b);
                }
                this.cardEGA.regDACShift += 6;
                if (this.cardEGA.regDACShift > 12) {
                    this.cardEGA.regDACShift = 0;
                    this.cardEGA.regDACAddr = (this.cardEGA.regDACAddr + 1) & (Card.DAC.TOTAL_REGS-1);
                }
                return b;
            };
            
            /**
             * outDACData(port, bOut, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3C9)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             */
            Video.prototype.outDACData = function(port, bOut, addrFrom)
            {
                var dw = this.cardEGA.regDACData[this.cardEGA.regDACAddr];
                if (!addrFrom || this.messageEnabled()) {
                    this.printMessageIO(Card.DAC.DATA.PORT, bOut, addrFrom, "DAC.DATA[" + str.toHexByte(this.cardEGA.regDACAddr) + "][" + str.toHexByte(this.cardEGA.regDACShift) + "]");
                }
                var dwNew = (dw & ~(0x3f << this.cardEGA.regDACShift)) | ((bOut & 0x3f) << this.cardEGA.regDACShift);
                if (dw !== dwNew) {
                    this.cardEGA.regDACData[this.cardEGA.regDACAddr] = dwNew;
                    this.invalidateScreen();
                }
                this.cardEGA.regDACShift += 6;
                if (this.cardEGA.regDACShift > 12) {
                    this.cardEGA.regDACShift = 0;
                    this.cardEGA.regDACAddr = (this.cardEGA.regDACAddr + 1) & (Card.DAC.TOTAL_REGS-1);
                }
            };
            
            /**
             * inVGAFeat(port, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3CA)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number}
             */
            Video.prototype.inVGAFeat = function(port, addrFrom)
            {
                var b = this.cardEGA.regFeat;
                this.printMessageIO(Card.FEAT_CTRL.PORT_READ, null, addrFrom, "FEAT", b);
                return b;
            };
            
            /**
             * outGRCPos2(port, bOut, addrFrom)
             *
             * "The EGA was originally implemented by IBM using two Graphics Controller Chips. This register is used to program
             * the Graphics #2 chip. See the Graphics #1 Position Register for details."
             *
             * "A one should be loaded into this location to map host data bus bits 2 and 3 to display planes 2 and 3, respectively."
             *
             * @this {Video}
             * @param {number} port (0x3CA)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             */
            Video.prototype.outGRCPos2 = function(port, bOut, addrFrom)
            {
                this.cardEGA.regGRCPos2 = bOut;
                this.printMessageIO(Card.GRC.POS2_PORT, bOut, addrFrom, "GRC2");
            };
            
            /**
             * inVGAMisc(port, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3CC)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number}
             */
            Video.prototype.inVGAMisc = function(port, addrFrom)
            {
                var b = this.cardEGA.regMisc;
                this.printMessageIO(Card.MISC.PORT_READ, null, addrFrom, "MISC", b);
                return b;
            };
            
            /**
             * outGRCPos1(port, bOut, addrFrom)
             *
             * "The EGA was originally implemented by IBM using two Graphics Controller Chips. It was necessary to program
             * each to respond to a different set of two consecutive bits of the 8-bit host data bus. In the IBM EGA implementation,
             * a 0 must be loaded into this register. In the VGA, there is no analogous register."
             *
             * "A zero should be loaded into this location to map host data bus bits 0 and 1 to display planes 0 and 1 respectively."
             *
             * Note that this register was not readable on the EGA, and when the VGA came along, reads of this port read the Misc reg.
             *
             * @this {Video}
             * @param {number} port (0x3CC)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             */
            Video.prototype.outGRCPos1 = function(port, bOut, addrFrom)
            {
                this.cardEGA.regGRCPos1 = bOut;
                this.printMessageIO(Card.GRC.POS1_PORT, bOut, addrFrom, "GRC1");
            };
            
            /**
             * inGRCIndx(port, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3CE)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number}
             */
            Video.prototype.inGRCIndx = function(port, addrFrom)
            {
                var b = this.cardEGA.regGRCIndx;
                this.printMessageIO(Card.GRC.INDX.PORT, null, addrFrom, "GRC.INDX", b);
                return b;
            };
            
            /**
             * outGRCIndx(port, bOut, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3CE)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             */
            Video.prototype.outGRCIndx = function(port, bOut, addrFrom)
            {
                this.cardEGA.regGRCIndx = bOut;
                this.printMessageIO(Card.GRC.INDX.PORT, bOut, addrFrom, "GRC.INDX");
            };
            
            /**
             * inGRCData(port, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3CF)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number}
             */
            Video.prototype.inGRCData = function(port, addrFrom)
            {
                var b = this.cardEGA.regGRCData[this.cardEGA.regGRCIndx];
                if (!addrFrom || this.messageEnabled()) {
                    this.printMessageIO(Card.GRC.DATA.PORT, null, addrFrom, "GRC." + this.cardEGA.asGRCRegs[this.cardEGA.regGRCIndx], b);
                }
                return b;
            };
            
            /**
             * outGRCData(port, bOut, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3CF)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             */
            Video.prototype.outGRCData = function(port, bOut, addrFrom)
            {
                if (Video.TRAPALL || this.cardEGA.regGRCData[this.cardEGA.regGRCIndx] !== bOut) {
                    if (!addrFrom || this.messageEnabled()) {
                        this.printMessageIO(Card.GRC.DATA.PORT, bOut, addrFrom, "GRC." + this.cardEGA.asGRCRegs[this.cardEGA.regGRCIndx]);
                    }
                    this.cardEGA.regGRCData[this.cardEGA.regGRCIndx] = bOut;
                }
                switch(this.cardEGA.regGRCIndx) {
                case Card.GRC.SRESET.INDX:
                    this.cardEGA.nSetMapData = Video.aEGAByteToDW[bOut & 0xf];
                    this.cardEGA.nSetMapBits = this.cardEGA.nSetMapData & ~this.cardEGA.nSetMapMask;
                    break;
                case Card.GRC.ESRESET.INDX:
                    this.cardEGA.nSetMapMask = ~Video.aEGAByteToDW[bOut & 0xf];
                    this.cardEGA.nSetMapBits = this.cardEGA.nSetMapData & ~this.cardEGA.nSetMapMask;
                    break;
                case Card.GRC.COLORCMP.INDX:
                    this.cardEGA.nColorCompare = Video.aEGAByteToDW[bOut & 0xf] & (0x80808080|0);
                    break;
                case Card.GRC.DATAROT.INDX:
                case Card.GRC.MODE.INDX:
                    this.setAccess(this.getAccess());
                    break;
                case Card.GRC.READMAP.INDX:
                    this.cardEGA.nReadMapShift = (bOut & Card.GRC.READMAP.NUM) << 3;
                    break;
                case Card.GRC.MISC.INDX:
                    this.checkMode(false);
                    break;
                case Card.GRC.COLORDC.INDX:
                    this.cardEGA.nColorDontCare = Video.aEGAByteToDW[bOut & 0xf] & (0x80808080|0);
                    break;
                case Card.GRC.BITMASK.INDX:
                    this.cardEGA.nBitMapMask = bOut | (bOut << 8) | (bOut << 16) | (bOut << 24);
                    break;
                default:
                    break;
                }
            };
            
            /**
             * inCGAIndx(port, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3D4)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number|undefined}
             */
            Video.prototype.inCGAIndx = function(port, addrFrom)
            {
                return this.inCRTCIndx(this.cardColor, port, addrFrom);
            };
            
            /**
             * outCGAIndx(port, bOut, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3D4)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             */
            Video.prototype.outCGAIndx = function(port, bOut, addrFrom)
            {
                this.outCRTCIndx(this.cardColor, port, bOut, addrFrom);
            };
            
            /**
             * inCGAData(port, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3D5)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number|undefined}
             */
            Video.prototype.inCGAData = function(port, addrFrom)
            {
                return this.inCRTCData(this.cardColor, port, addrFrom);
            };
            
            /**
             * outCGAData(port, bOut, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3D5)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             */
            Video.prototype.outCGAData = function(port, bOut, addrFrom)
            {
                this.outCRTCData(this.cardColor, port, bOut, addrFrom);
            };
            
            /**
             * inCGAMode(port, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3D8)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number}
             */
            Video.prototype.inCGAMode = function(port, addrFrom)
            {
                return this.inCardMode(this.cardColor, addrFrom);
            };
            
            /**
             * outCGAMode(port, bOut, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3D8)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             */
            Video.prototype.outCGAMode = function(port, bOut, addrFrom)
            {
                this.outCardMode(this.cardColor, bOut, addrFrom);
            };
            
            /**
             * inCGAColor(port, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3D9)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number}
             */
            Video.prototype.inCGAColor = function(port, addrFrom)
            {
                var b = this.cardColor.regColor;
                if (!addrFrom || this.messageEnabled()) {
                    this.printMessageIO(port /* this.cardColor.port + 5 */, null, addrFrom, this.cardColor.type + ".COLOR", b);
                }
                return b;
            };
            
            /**
             * outCGAColor(port, bOut, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3D9)
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             */
            Video.prototype.outCGAColor = function(port, bOut, addrFrom)
            {
                if (!addrFrom || this.messageEnabled()) {
                    this.printMessageIO(port /* this.cardColor.port + 5 */, bOut, addrFrom, this.cardColor.type + ".COLOR");
                }
                if (this.cardColor.regColor !== bOut) {
                    this.cardColor.regColor = bOut;
                    /*
                     * When this color register changes, it can automatically change the appearance of any number of cells, so we make
                     * a special call to initCellCache() to invalidate every cell, forcing all cells to be redrawn on the next updateScreen().
                     */
                    this.initCellCache();
                }
            };
            
            /**
             * inCGAStatus(port, addrFrom)
             *
             * @this {Video}
             * @param {number} port (0x3DA)
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number}
             */
            Video.prototype.inCGAStatus = function(port, addrFrom)
            {
                return this.inCardStatus(this.cardColor, addrFrom);
            };
            
            /**
             * inCRTCIndx(card, port, addrFrom)
             *
             * @this {Video}
             * @param {Object} card
             * @param {number} port
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number|undefined}
             */
            Video.prototype.inCRTCIndx = function(card, port, addrFrom)
            {
                var b;
                /*
                 * The IBM VGA ROM makes some hardware determinations based on how the CRTC controller responds when
                 * the IO_SELECT bit in the Miscellaneous Output Register is cleared; normally, that would mean ports
                 * 0x3B? are decoded and ports 0x3D? are ignored.  We didn't used to bother ignoring them, but the
                 * VGA ROM's logic requires it, so now we also check fActive.  However, we ignore only CTRC reads;
                 * we retain any writes in case that information proves useful later.
                 *
                 * Note that returning an undefined value now signals the Bus component to return whatever default value
                 * it prefers (normally 0xff).
                 */
                if (card.fActive) b = card.regCRTIndx;
                this.printMessageIO(port, null, addrFrom, "CRTC.INDX", b);
                return b;
            };
            
            /**
             * outCRTCIndx(card, port, bOut, addrFrom)
             *
             * @this {Video}
             * @param {Object} card
             * @param {number} port
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             */
            Video.prototype.outCRTCIndx = function(card, port, bOut, addrFrom)
            {
                card.regCRTPrev = card.regCRTIndx;
                card.regCRTIndx = bOut & Card.CGA.CRTC.INDX.MASK;
                this.printMessageIO(port /* card.port */, bOut, addrFrom, "CRTC.INDX");
            };
            
            /**
             * inCRTCData(card, port, addrFrom)
             *
             * @this {Video}
             * @param {Object} card
             * @param {number} port
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number|undefined}
             */
            Video.prototype.inCRTCData = function(card, port, addrFrom)
            {
                var b;
                /*
                 * The IBM VGA ROM makes some hardware determinations based on how the CRTC controller responds when
                 * the IO_SELECT bit in the Miscellaneous Output Register is cleared; normally, that would mean ports
                 * 0x3B? are decoded and ports 0x3D? are ignored.  We didn't used to bother ignoring them, but the
                 * VGA ROM's logic requires it, so now we also check fActive.  However, we ignore only CTRC reads;
                 * we retain any writes in case that information proves useful later.
                 *
                 * Note that returning an undefined value now signals the Bus component to return whatever default value
                 * it prefers (normally 0xff).
                 */
                if (card.fActive && card.regCRTIndx < card.nCRTCRegs) b = card.regCRTData[card.regCRTIndx];
                if (!addrFrom || this.messageEnabled()) {
                    this.printMessageIO(port /* card.port + 1 */, null, addrFrom, "CRTC." + card.asCRTCRegs[card.regCRTIndx], b);
                }
                return b;
            };
            
            /**
             * outCRTCData(card, port, bOut, addrFrom)
             *
             * @this {Video}
             * @param {Object} card
             * @param {number} port
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             */
            Video.prototype.outCRTCData = function(card, port, bOut, addrFrom)
            {
                if (card.regCRTIndx < card.nCRTCRegs) {
                    if (Video.TRAPALL || card.regCRTData[card.regCRTIndx] !== bOut) {
                        if (!addrFrom || this.messageEnabled()) {
                            this.printMessageIO(port /* card.port + 1 */, bOut, addrFrom, "CRTC." + card.asCRTCRegs[card.regCRTIndx]);
                        }
                        card.regCRTData[card.regCRTIndx] = bOut;
                    }
                    if (card.regCRTIndx == Card.CRTC.START_ADDR_HI || card.regCRTIndx == Card.CRTC.START_ADDR_LO) {
                        /*
                         * HACK: offStartAddr is supposed to be "latched" ONLY at the start of every VRETRACE interval,
                         * but the best we can currently do is latch it during retrace; beyond that, all we can do is snap
                         * the vertical period count and latch it later, in updateScreen(), once the count has advanced.
                         */
                        if (this.getRetraceBits(card) & Card.CGA.STATUS.RETRACE) {
                            card.offStartAddr = ((card.regCRTData[Card.CRTC.START_ADDR_HI] << 8) + card.regCRTData[Card.CRTC.START_ADDR_LO])|0;
                        } else if (!card.nVertPeriodsStartAddr) {
                            card.nVertPeriodsStartAddr = card.nVertPeriods;
                        }
                    }
                    /*
                     * During mode changes on the EGA, all the CRTC regs are typically programmed in sequence,
                     * and if that's all that's happening with Card.CRTC.MAX_SCAN.INDX, then we don't want to treat
                     * it special; let the mode change be detected normally (eg, when the GRC regs are written later).
                     *
                     * On the other hand, if this was an out-of-sequence write to Card.CRTC.MAX_SCAN.INDX, then
                     * yes, we want to force setMode() to call setDimensions(), which is key to setting the proper
                     * number of screen rows.
                     *
                     * The second part of the check is required to promptly detect a switch to "Mode X"; if we assume
                     * that anyone switching to "Mode X" will first switch to mode 0x13, then it's a given that they
                     * must reprogram the VDISP_END register, and that they will change it from 0x8F to 0xDF.  However,
                     * I'm not going to make the test that restrictive, to help catch other mode variations (but at the
                     * expense of triggering potentially unnecessary calls to checkMode()).
                     */
                    if (card.regCRTIndx == Card.CRTC.MAX_SCAN.INDX && card.regCRTPrev != Card.CRTC.MAX_SCAN.INDX-1 || card.regCRTIndx == Card.CRTC.EGA.VDISP_END) {
                        this.checkMode(true);
                    }
                    this.checkCursor();
                } else {
                    if (DEBUG && (!addrFrom || this.messageEnabled())) {
                        this.printMessage("outCRTCData(): ignoring unexpected write to CRTC[" + str.toHexByte(card.regCRTIndx) + "]: " + str.toHexByte(bOut));
                    }
                }
            };
            
            /**
             * inCardMode(card, addrFrom)
             *
             * @this {Video}
             * @param {Object} card
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number}
             */
            Video.prototype.inCardMode = function(card, addrFrom)
            {
                var b = card.regMode;
                this.printMessageIO(card.port + 4, null, addrFrom, "MODE", b);
                return b;
            };
            
            /**
             * outCardMode(card, bOut, addrFrom)
             *
             * @this {Video}
             * @param {Object} card
             * @param {number} bOut
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             */
            Video.prototype.outCardMode = function(card, bOut, addrFrom)
            {
                this.printMessageIO(card.port + 4, bOut, addrFrom, "MODE");
                card.regMode = bOut;
                this.checkMode(false);
            };
            
            /**
             * inCardStatus(card, addrFrom)
             *
             * On an EGA, this register is called "Status Register One" (0x3BA/0x3DA aka STATUS1), to distinguish it from
             * "Status Register Zero" (0x3C2 aka STATUS0).  One of the side-effects of reading STATUS1 is that it resets the
             * ATC address/data flip-flop to "address" mode, which we emulate by setting cardEGA.fATCData to false, indicating
             * that the ATC is not in "data" mode.
             *
             * @this {Video}
             * @param {Object} card
             * @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
             * @return {number}
             */
            Video.prototype.inCardStatus = function(card, addrFrom)
            {
                var b = this.getRetraceBits(card);
            
                if (card === this.cardEGA) {
                    /*
                     * STATUS1 diagnostic bits 5 and 4 are set according to the Card.ATC.PLANES.MUX bits:
                     *
                     *      MUX     Bit 5   Bit 4
                     *      ---     ----    ----
                     *      00:     Red     Blue
                     *      01:     SecBlue Green
                     *      10:     SecRed  SecGreen
                     *      11:     unused  unused
                     *
                     * Depending on where we are in the horizontal and vertical periods (which can be inferred from the
                     * same elapsed cycle count that we used to simulate the retrace bits above), we could extract 4 bits
                     * from a corresponding region of the video buffer, "and" them with Card.ATC.PLANES.MASK, use
                     * that to index into the palette registers (cardEGA.regATCData), and use the resulting palette register
                     * bits to set these diagnostics bits.  However, that's all rather tedious, and the process of extracting
                     * 4 appropriate bits from the video buffer varies depending on the video mode.
                     *
                     * Why are we even considering this?  Because the EGA BIOS diagnostic code draws a bright reverse-video
                     * line of text blocks across the top of the screen, writes 0x3F to palette register 0x0f, and then
                     * monitors the STATUS1 diagnostic bits, waiting for those palette bits to show up.  It turns out, however,
                     * that we can easily fool the EGA BIOS by simply toggling the diagnostic bits.  So we take the easy way out.
                     *
                     * TODO: Faithful emulation of these bits is certainly doable, so consider doing that at some point.
                     */
                    b |= ((card.regStatus & Card.STATUS1.DIAGNOSTIC) ^ Card.STATUS1.DIAGNOSTIC);
            
                    /*
                     * Last but not least, we must reset the EGA's ATC flip-flop whenever this register is read.
                     */
                    card.fATCData = false;
                }
                else {
                    /*
                     * On the MDA/CGA, to satisfy ROM BIOS testing ("TEST.10"), it's sufficient to do a simple toggle of
                     * bits 0 and 3 on every read.
                     *
                     * Also, according to http://www.seasip.info/VintagePC/mda.html, on an MDA, bits 7-4 are always ON and
                     * bits 2-1 are always OFF, hence the "OR" of 0xf0.
                     *
                     * TODO: Decide whether to preserve the bits from getRetraceBits() on the MDA/CGA; we're continuing
                     * to do a simple toggle, partly on the theory that that may speed up the CGA BIOS scroll code a bit.
                     */
                    b = (card.regStatus ^= (Card.CGA.STATUS.RETRACE | Card.CGA.STATUS.VRETRACE)) | 0xf0;
                }
            
                card.regStatus = b;
                this.printMessageIO(card.port + 6, null, addrFrom, (card === this.cardEGA? "STATUS1" : "STATUS"), b);
                return b;
            };
            
            /**
             * dumpVideo(sParm)
             *
             * @this {Video}
             * @param {string|undefined} sParm
             */
            Video.prototype.dumpVideo = function(sParm)
            {
                if (DEBUGGER) {
                    if (!this.cardActive) {
                        this.dbg.println("no active video card");
                        return;
                    }
                    if (sParm) {
                        this.cardActive.dumpBuffer(sParm);
                        return;
                    }
                    this.dbg.println("BIOSMODE: " + str.toHexByte(this.nMode));
                    this.cardActive.dumpCard();
                }
            };
            
            /*
             * Port input/output notification tables
             *
             * TODO: At one point, I'd added some "duplicate" entries for the MDA because, according to docs I'd read,
             * MDA ports are decoded at multiple addresses.  However, if this is important, then it should be verified
             * and implemented consistently (eg, for CGA as well).  For now, I'm decoding only the standard port addresses.
             *
             * For example, 0x3B5 is apparently also decoded at 0x3B1, 0x3B3, and 0x3B7, while 0x3B4 is also decoded at
             * 0x3B0, 0x3B2, and 0x3B6.
             */
            Video.aMDAPortInput = {
                0x3B4: Video.prototype.inMDAIndx,           // technically, not actually readable, but I want the Debugger to be able to read this
                0x3B5: Video.prototype.inMDAData,           // technically, the only CRTC Data registers that are readable are R14-R17
                0x3B8: Video.prototype.inMDAMode,           // technically, not actually readable, but I want the Debugger to be able to read this
                0x3BA: Video.prototype.inMDAStatus
            };
            
            Video.aMDAPortOutput = {
                0x3B4: Video.prototype.outMDAIndx,
                0x3B5: Video.prototype.outMDAData,
                0x3B8: Video.prototype.outMDAMode
            };
            
            Video.aCGAPortInput = {
                0x3D4: Video.prototype.inCGAIndx,           // technically, not actually readable, but I want the Debugger to be able to read this
                0x3D5: Video.prototype.inCGAData,           // technically, the only CRTC Data registers that are readable are R14-R17
                0x3D8: Video.prototype.inCGAMode,           // technically, not actually readable, but I want the Debugger to be able to read this
                0x3D9: Video.prototype.inCGAColor,          // technically, not actually readable, but I want the Debugger to be able to read this
                0x3DA: Video.prototype.inCGAStatus
            };
            
            Video.aCGAPortOutput = {
                0x3D4: Video.prototype.outCGAIndx,
                0x3D5: Video.prototype.outCGAData,
                0x3D8: Video.prototype.outCGAMode,
                0x3D9: Video.prototype.outCGAColor
            };
            
            Video.aEGAPortInput = {
                0x3C0: Video.prototype.inATC,               // technically, only readable on a VGA, but I want the Debugger to be able to read this, too
                0x3C1: Video.prototype.inATC,               // technically, only readable on a VGA, but I want the Debugger to be able to read this, too
                0x3C2: Video.prototype.inStatus0,
                0x3C4: Video.prototype.inSEQIndx,           // technically, only readable on a VGA, but I want the Debugger to be able to read this, too
                0x3C5: Video.prototype.inSEQData,           // technically, only readable on a VGA, but I want the Debugger to be able to read this, too
                0x3CE: Video.prototype.inGRCIndx,           // technically, only readable on a VGA, but I want the Debugger to be able to read this, too
                0x3CF: Video.prototype.inGRCData            // technically, only readable on a VGA, but I want the Debugger to be able to read this, too
            };
            
            /*
             * WARNING: Unlike the EGA, a standard VGA does not support writes to 0x3C1, but it's easier for me to leave that
             * ability in place, treating the VGA as a superset of the EGA as much as possible; will any code break because word
             * I/O to port 0x3C0 actually works?  Possibly, but highly unlikely.
             */
            Video.aEGAPortOutput = {
                0x3BA: Video.prototype.outFeat,
                0x3C0: Video.prototype.outATC,
                0x3C1: Video.prototype.outATC,              // the EGA BIOS writes to this port (see C000:0416), implying that 0x3C0 and 0x3C1 both decode the same register
                0x3C2: Video.prototype.outMisc,             // FYI, since this overlaps with STATUS0.PORT, there's currently no way for the Debugger to read the Misc register
                0x3C4: Video.prototype.outSEQIndx,
                0x3C5: Video.prototype.outSEQData,
                0x3CA: Video.prototype.outGRCPos2,
                0x3CC: Video.prototype.outGRCPos1,
                0x3CE: Video.prototype.outGRCIndx,
                0x3CF: Video.prototype.outGRCData,
                0x3DA: Video.prototype.outFeat
            };
            
            Video.aVGAPortInput = {
                0x3C3: Video.prototype.inVGAEnable,
                0x3C6: Video.prototype.inDACMask,
                0x3C7: Video.prototype.inDACState,
                0x3C9: Video.prototype.inDACData,
                0x3CA: Video.prototype.inVGAFeat,
                0x3CC: Video.prototype.inVGAMisc
            };
            
            Video.aVGAPortOutput = {
                0x3C3: Video.prototype.outVGAEnable,
                0x3C6: Video.prototype.outDACMask,
                0x3C7: Video.prototype.outDACRead,
                0x3C8: Video.prototype.outDACWrite,
                0x3C9: Video.prototype.outDACData
            };
            
            /**
             * Video.init()
             *
             * This function operates on every HTML element of class "video", extracting the
             * JSON-encoded parameters for the Video constructor from the element's "data-value"
             * attribute, invoking the constructor to create a Video component, and then binding
             * any associated HTML controls to the new component.
             */
            Video.init = function()
            {
                var aeVideo = Component.getElementsByClass(window.document, PCJSCLASS, "video");
                for (var iVideo = 0; iVideo < aeVideo.length; iVideo++) {
                    var eVideo = aeVideo[iVideo];
                    var parmsVideo = Component.getComponentParms(eVideo);
            
                    var eCanvas = window.document.createElement("canvas");
                    if (eCanvas === undefined || !eCanvas.getContext) {
                        eVideo.innerHTML = "<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";
                        return;
                    }
            
                    eCanvas.setAttribute("class", PCJSCLASS + "-canvas");
                    eCanvas.setAttribute("width", parmsVideo['screenWidth']);
                    eCanvas.setAttribute("height", parmsVideo['screenHeight']);
                    eCanvas.style.backgroundColor = parmsVideo['screenColor'];
            
                    /*
                     * The "contenteditable" attribute on a canvas element NOTICEABLY slows down canvas drawing on
                     * Safari as soon as you give the canvas focus (ie, click away from the canvas, and drawing speeds
                     * up; click on the canvas, and drawing slows down).  So the "transparent textarea hack" that we
                     * once employed as only a work-around for Android devices is now our default.
                     *
                     *      eCanvas.setAttribute("contenteditable", "true");
                     *
                     * HACK: A canvas style of "auto" provides for excellent responsive canvas scaling in EVERY browser
                     * except IE9/IE10, so I recalculate the appropriate CSS height every time the parent DIV is resized;
                     * IE11 works without this hack, so we take advantage of the fact that IE11 doesn't report itself as "MSIE".
                     */
                    eCanvas.style.height = "auto";
                    if (web.getUserAgent().indexOf("MSIE") >= 0) {
                        eVideo.onresize = function(eParent, eChild, cx, cy) {
                            return function onResizeVideo() {
                                eChild.style.height = (((eParent.clientWidth * cy) / cx) | 0) + "px";
                            };
                        }(eVideo, eCanvas, parmsVideo['screenWidth'], parmsVideo['screenHeight']);
                        eVideo.onresize();
                    }
                    eVideo.appendChild(eCanvas);
            
                    /*
                     * HACK: Android-based browsers, like the Silk (Amazon) browser and Chrome for Android, don't honor the
                     * "contenteditable" attribute; that is, when the canvas receives focus, they don't activate the on-screen
                     * keyboard.  So my fallback is to create a transparent textarea on top of the canvas.
                     *
                     * The parent DIV must have a style of "position:relative" (alternatively, a class of "pcjs-container"),
                     * so that we can position the textarea using absolute coordinates.  Also, we don't want the textarea to be
                     * visible, but we must use "opacity:0" instead of "visibility:hidden", because the latter seems to prevent
                     * the element from receiving events.  These styling requirements are taken care of in components.css
                     * (see references to the "pcjs-video-object" class).
                     *
                     * UPDATE: Unfortunately, Android keyboards like to compose whole words before transmitting any of the
                     * intervening characters; our textarea's keyDown/keyUp event handlers DO receive intervening key events,
                     * but their keyCode property is ZERO.  Virtually the only usable key event we receive is the Enter key.
                     * Android users will have to use machines that include their own on-screen "soft keyboard", or use an
                     * external keyboard.
                     *
                     * The following attempt to use a password-enabled input field didn't work any better on Android.  You could
                     * clearly see the overlaid semi-transparent input field, but none of the input characters were passed along,
                     * with the exception of the "Go" (Enter) key.
                     *
                     *      var eInput = window.document.createElement("input");
                     *      eInput.setAttribute("type", "password");
                     *      eInput.setAttribute("style", "position:absolute; left:0; top:0; width:100%; height:100%; opacity:0.5");
                     *      eVideo.appendChild(eInput);
                     *
                     * See this Chromium issue for more information: https://code.google.com/p/chromium/issues/detail?id=118639
                     */
                    var eTextArea = window.document.createElement("textarea");
            
                    /*
                     * As noted in keyboard.js, the keyboard on an iOS device pops up with the SHIFT key depressed,
                     * which is not the initial keyboard state that the Keyboard component expects.
                     */
                    if (web.isUserAgent("iOS")) {
                        eTextArea.setAttribute("autocapitalize", "off");
                        eTextArea.setAttribute("autocorrect", "off");
                    }
                    eVideo.appendChild(eTextArea);
            
                    /*
                     * Now we can create the Video object, record it, and wire it up to the associated document elements.
                     */
                    var eContext = eCanvas.getContext("2d");
                    var video = new Video(parmsVideo, eCanvas, eContext, eTextArea /* || eInput */, eVideo);
            
                    /*
                     * Bind any video-specific controls (eg, the Refresh button). There are no essential controls, however;
                     * even the "Refresh" button is just a diagnostic tool, to ensure that the screen contents are up-to-date.
                     */
                    Component.bindComponentControls(video, eVideo, PCJSCLASS);
                }
            };
            
            /*
             * Initialize every Video module on the page.
             */
            web.onInit(Video.init);
            
            if (typeof module !== 'undefined') module.exports = Video;
            
          • x86.js
            /**
             * @fileoverview Defines PCjs x86 constants.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Sep-05
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            var X86 = {
                /*
                 * CPU model numbers
                 */
                MODEL_8086:     8086,
                MODEL_8088:     8088,
                MODEL_80186:    80186,
                MODEL_80188:    80188,
                MODEL_80286:    80286,
                MODEL_80386:    80386,
            
                /*
                 * This constant is used to mark points in the code where the physical address being returned
                 * is invalid and should not be used.  TODO: There are still functions that will use an invalid
                 * address, which is why we've tried to choose a value that causes the least harm, but ultimately,
                 * we must add checks to those functions or throw special JavaScript exceptions to bypass them.
                 *
                 * This value is also used to indicate non-existent EA address calculations, which are usually
                 * detected with "regEA === ADDR_INVALID" and "regEAWrite === ADDR_INVALID" tests.  In a 32-bit
                 * CPU, -1 (ie, 0xffffffff) could actually be a valid address, so consider changing ADDR_INVALID
                 * to NaN or null (which is also why all ADDR_INVALID tests should use strict equality operators).
                 *
                 * The main reason I'm NOT using NaN or null now is my concern that, by mixing non-numbers
                 * (specifically, values outside the range of signed 32-bit integers), performance may suffer.
                 */
                ADDR_INVALID:   -1,
            
                /*
                 * Processor Status flag definitions (stored in regPS)
                 */
                PS: {
                    CF:     0x0001,     // bit 0: Carry flag
                    BIT1:   0x0002,     // bit 1: reserved, always set
                    PF:     0x0004,     // bit 2: Parity flag
                    BIT3:   0x0008,     // bit 3: reserved, always clear
                    AF:     0x0010,     // bit 4: Auxiliary Carry flag (aka Arithmetic flag)
                    BIT5:   0x0020,     // bit 5: reserved, always clear
                    ZF:     0x0040,     // bit 6: Zero flag
                    SF:     0x0080,     // bit 7: Sign flag
                    TF:     0x0100,     // bit 8: Trap flag
                    IF:     0x0200,     // bit 9: Interrupt flag
                    DF:     0x0400,     // bit 10: Direction flag
                    OF:     0x0800,     // bit 11: Overflow flag
                    IOPL: {
                     MASK:  0x3000,     // bits 12-13: I/O Privilege Level (always set on 8086/80186, clear on 80286 reset)
                     SHIFT: 12
                    },
                    NT:     0x4000,     // bit 14: Nested Task flag (always set on 8086/80186, clear on 80286 reset)
                    BIT15:  0x8000      // bit 15: reserved (always set on 8086/80186, clear otherwise)
                },
                CR0: {
                    /*
                     * Machine Status Word (MSW) bit definitions
                     */
                    MSW: {
                        PE:     0x0001, // protected-mode enabled
                        MP:     0x0002, // monitor processor extension (ie, coprocessor)
                        EM:     0x0004, // emulate processor extension
                        TS:     0x0008, // task switch indicator
                        ON:     0xFFF0, // on the 80286, these bits are always on (TODO: Verify)
                        MASK:   0xFFFF  // these are the only (MSW) bits that the 80286 can access (within CR0)
                    },
                    ET: 0x00000010,     // coprocessor type (80287 or 80387); always 1 on post-80386 CPUs
                    PG: 0x80000000|0    // 0: paging disabled
                },
                SEL: {
                    RPL:    0x0003,     // requested privilege level (0-3)
                    LDT:    0x0004,     // table indicator (0: GDT, 1: LDT)
                    MASK:   0xFFF8      // table index
                },
                DESC: {                 // Descriptor Table Entry
                    LIMIT: {            // LIMIT bits 0-15 (or OFFSET if this is an INTERRUPT or TRAP gate)
                        OFFSET:     0x0
                    },
                    BASE: {             // BASE bits 0-15 (or SELECTOR if this is a TASK, INTERRUPT or TRAP gate)
                        OFFSET:     0x2
                    },
                    ACC: {              // bit definitions for the access word (offset 0x4)
                        OFFSET:     0x4,
                        BASE1623:                       0x00FF,     // (not used if this a TASK, INTERRUPT or TRAP gate; bits 0-5 are parm count for CALL gates)
                        TYPE: {
                            OFFSET: 0x5,
                            MASK:                       0x1F00,
                            SEG:                        0x1000,
                            NONSEG:                     0x0F00,
                            /*
                             * The following bits apply only when SEG is set
                             */
                            CODE:                       0x0800,     // set for CODE, clear for DATA
                            ACCESSED:                   0x0100,     // set if accessed, clear if not accessed
                            READABLE:                   0x0200,     // CODE: set if readable, clear if exec-only
                            WRITABLE:                   0x0200,     // DATA: set if writable, clear if read-only
                            CONFORMING:                 0x0400,     // CODE: set if conforming, clear if not
                            EXPDOWN:                    0x0400,     // DATA: set if expand-down, clear if not
                            /*
                             * The following are all the possible (valid) types (well, except for the variations
                             * of DATA and CODE where the ACCESSED bit (0x0100) may also be set)
                             */
                            TSS286:                     0x0100,
                            LDT:                        0x0200,
                            TSS286_BUSY:                0x0300,
                            GATE_CALL:                  0x0400,
                            GATE_TASK:                  0x0500,
                            GATE286_INT:                0x0600,
                            GATE286_TRAP:               0x0700,
                            TSS386:                     0x0900,     // 80386 and up
                            TSS386_BUSY:                0x0B00,     // 80386 and up
                            GATE386_CALL:               0x0C00,     // 80386 and up
                            GATE386_INT:                0x0E00,     // 80386 and up
                            GATE386_TRAP:               0x0F00,     // 80386 and up
                            DATA_READONLY:              0x1000,
                            DATA_WRITABLE:              0x1200,
                            DATA_EXPDOWN_READONLY:      0x1400,
                            DATA_EXPDOWN_WRITABLE:      0x1600,
                            CODE_EXECONLY:              0x1800,
                            CODE_READABLE:              0x1A00,
                            CODE_CONFORMING:            0x1C00,
                            CODE_CONFORMING_READABLE:   0x1E00
                        },
                        /*
                         * Assorted ACC bits within NONSEG values
                         */
                        TSS_BUSY:                       0x0200,
                        NONSEG_386:                     0x0800,     // 80386 and up
                        DPL: {
                            MASK:                       0x6000,
                            SHIFT:                      13
                        },
                        PRESENT:                        0x8000,
                        INVALID:    0   // use X86.DESC.ACC.INVALID for invalid ACC values
                    },
                    EXT: {              // descriptor extension word (reserved on the 80286; "must be zero")
                        OFFSET:     0x6,
                        LIMIT1619:                      0x000F,
                        AVAIL:                          0x0010,     // NOTE: set in various descriptors in OS/2
                        /*
                         * The BIG bit is known as the D bit for code segments; when set, all addresses and operands
                         * in that code segment are assumed to be 32-bit.
                         *
                         * The BIG bit is known as the B bit for data segments; when set, it indicates: 1) all pushes,
                         * pops, calls and returns use ESP instead of SP, and 2) the upper bound of an expand-down segment
                         * is 0xffffffff instead of 0xffff.
                         */
                        BIG:                            0x0040,     // clear if default operand/address size is 16-bit, set if 32-bit
                        LIMITPAGES:                     0x0080,     // clear if limit granularity is bytes, set if limit granularity is 4Kb pages
                        BASE2431:                       0xFF00
                    },
                    INVALID: 0          // use X86.DESC.INVALID for invalid DESC values
                },
                LADDR: {                // linear address
                    PDE: {              // index of page directory entry
                        MASK:   0xFFC00000|0,
                        SHIFT:  20      // (addr & DIR.MASK) >>> DIR.SHIFT yields a page directory offset (ie, index * 4)
                    },
                    PTE: {              // index of page table entry
                        MASK:   0x003FF000,
                        SHIFT:  10      // (addr & PAGE.MASK) >>> PAGE.SHIFT yields a page table offset (ie, index * 4)
                    },
                    OFFSET:     0x00000FFF
                },
                PTE: {
                    FRAME:      0xFFFFF000|0,
                    DIRTY:      0x00000040,         // page has been modified
                    ACCESSED:   0x00000020,         // page has been accessed
                    USER:       0x00000004,         // set for user level (CPL 3), clear for supervisor level (CPL 0-2)
                    READWRITE:  0x00000002,         // set for read/write, clear for read-only (affects CPL 3 only)
                    PRESENT:    0x00000001          // set for present page, clear for not-present page
                },
                TSS286: {
                    PREV_TSS:   0x00,
                    CPL0_SP:    0x02,   // start of values altered by task switches
                    CPL0_SS:    0x04,
                    CPL1_SP:    0x06,
                    CPL1_SS:    0x08,
                    CPL2_SP:    0x0A,
                    CPL2_SS:    0x0C,
                    TASK_IP:    0x0E,
                    TASK_PS:    0x10,
                    TASK_AX:    0x12,
                    TASK_CX:    0x14,
                    TASK_DX:    0x16,
                    TASK_BX:    0x18,
                    TASK_SP:    0x1A,
                    TASK_BP:    0x1C,
                    TASK_SI:    0x1E,
                    TASK_DI:    0x20,
                    TASK_ES:    0x22,
                    TASK_CS:    0x24,
                    TASK_SS:    0x26,
                    TASK_DS:    0x28,   // end of values altered by task switches
                    TASK_LDT:   0x2A
                },
                TSS386: {
                    PREV_TSS:   0x00,
                    CPL0_ESP:   0x04,   // start of values altered by task switches
                    CPL0_SS:    0x08,
                    CPL1_ESP:   0x0c,
                    CPL1_SS:    0x10,
                    CPL2_ESP:   0x14,
                    CPL2_SS:    0x18,
                    TASK_CR3:   0x1C,   // (not in TSS286)
                    TASK_EIP:   0x20,
                    TASK_PS:    0x24,
                    TASK_EAX:   0x28,
                    TASK_ECX:   0x2C,
                    TASK_EDX:   0x30,
                    TASK_EBX:   0x34,
                    TASK_ESP:   0x38,
                    TASK_EBP:   0x3C,
                    TASK_ESI:   0x40,
                    TASK_EDI:   0x44,
                    TASK_ES:    0x48,
                    TASK_CS:    0x4C,
                    TASK_SS:    0x50,
                    TASK_DS:    0x54,
                    TASK_FS:    0x58,   // (not in TSS286)
                    TASK_GS:    0x5C,   // (not in TSS286) end of values altered by task switches
                    TASK_LDT:   0x60,
                    TASK_IOPM:  0x64    // (not in TSS286)
                },
                /*
                 * Processor Exception Interrupts
                 *
                 * Of the following exceptions, all are designed to be restartable, except for 0x08 and 0x09 (and 0x0D
                 * after an attempt to write to a read-only segment).
                 *
                 * Error codes are pushed onto the stack for 0x08 (always 0) and 0x0A through 0x0D.
                 *
                 * Priority: Instruction exception, TRAP, NMI, Processor Extension Segment Overrun, and finally INTR.
                 *
                 * All exceptions can also occur in real-mode, except where noted.  A GP_FAULT in real-mode can be triggered
                 * by "any memory reference instruction that attempts to reference [a] 16-bit word at offset 0FFFFH".
                 *
                 * Interrupts beyond 0x10 (up through 0x1F) are reserved for future exceptions.
                 *
                 * Implementation Detail: For any opcode we know must generate a UD_FAULT interrupt, we invoke opInvalid(),
                 * NOT opUndefined().  UD_FAULT is for INVALID opcodes, Intel's choice of term "undefined" notwithstanding.
                 *
                 * We reserve the term "undefined" for opcodes that require more investigation, and we invoke opUndefined()
                 * ONLY until an opcode's behavior has finally been defined, at which point it becomes either valid or invalid.
                 * The term "illegal" seems completely superfluous; we don't need a third way of describing invalid opcodes.
                 *
                 * The term "undocumented" should be limited to operations that are valid but Intel simply never documented.
                 */
                EXCEPTION: {
                    DIV_ERR:    0x00,       // Divide Error Interrupt
                    TRAP:       0x01,       // Single Step (aka Trap) Interrupt
                    NMI:        0x02,       // Non-Maskable Interrupt
                    BREAKPOINT: 0x03,       // Breakpoint Interrupt
                    OVERFLOW:   0x04,       // INTO Overflow Interrupt (FYI, return address does NOT point to offending instruction)
                    BOUND_ERR:  0x05,       // BOUND Error Interrupt
                    UD_FAULT:   0x06,       // Invalid (aka Undefined or Illegal) Opcode (see implementation detail above)
                    NM_FAULT:   0x07,       // No Math Unit Available (see ESC or WAIT)
                    DF_FAULT:   0x08,       // Double Fault (see LIDT)
                    MP_FAULT:   0x09,       // Math Unit Protection Fault (see ESC)
                    TS_FAULT:   0x0A,       // Invalid Task State Segment Fault (protected-mode only)
                    NP_FAULT:   0x0B,       // Not Present Fault (protected-mode only)
                    SS_FAULT:   0x0C,       // Stack Fault (protected-mode only)
                    GP_FAULT:   0x0D,       // General Protection Fault
                    PG_FAULT:   0x0E,       // Page Fault
                    MF_FAULT:   0x10        // Math Fault (see ESC or WAIT)
                },
                ERRCODE: {
                    EXT:        0x0001,
                    IDT:        0x0002,
                    LDT:        0x0004,
                    MASK:       0xFFF8      // index of corresponding entry in GDT, LDT or IDT
                },
                RESULT: {
                    /*
                     * Flags were originally computed using 16-bit result registers:
                     *
                     *      CF: resultZeroCarry & resultSize (ie, 0x100 or 0x10000)
                     *      PF: resultParitySign & 0xff
                     *      AF: (resultParitySign ^ resultAuxOverflow) & 0x0010
                     *      ZF: resultZeroCarry & (resultSize - 1)
                     *      SF: resultParitySign & (resultSize >> 1)
                     *      OF: (resultParitySign ^ resultAuxOverflow ^ (resultParitySign >> 1)) & (resultSize >> 1)
                     *
                     * I386 support requires that we now rely on 32-bit result registers:
                     *
                     *      resultDst, resultSrc, resultArith, resultLogic and resultType
                     *
                     * and flags are now computed as follows:
                     *
                     *      CF: ((resultDst ^ ((resultDst ^ resultSrc) & (resultSrc ^ resultArith))) & resultType)
                     *      PF: (resultLogic & 0xff)
                     *      AF: ((resultArith ^ (resultDst ^ resultSrc)) & 0x0010)
                     *      ZF: (resultLogic & ((resultType - 1) | resultType))
                     *      SF: (resultLogic & resultType)
                     *      OF: (((resultDst ^ resultArith) & (resultSrc ^ resultArith)) & resultType)
                     *
                     * where resultType contains both a size, which must be one of BYTE (0x80), WORD (0x8000),
                     * or DWORD (0x80000000), along with bits for each of the arithmetic and/or logical flags that
                     * are currently "cached" in the result registers (eg, X86.RESULT.CF for carry, X86.RESULT.OF
                     * for overflow, etc).
                     *
                     * WARNING: Do not confuse these RESULT flag definitions with the PS flag definitions.  RESULT
                     * flags are used only as "cached" flag indicators, packed into bits 0-5 of resultType; they do
                     * not match the actual flag bit definitions within the Processor Status (PS) register.
                     *
                     * Arithmetic operations should call:
                     *
                     *      setArithResult(dst, src, value, type)
                     * eg:
                     *      setArithResult(dst, src, dst+src, X86.RESULT.BYTE | X86.RESULT.ALL)
                     *
                     * and logical operations should call:
                     *
                     *      setLogicResult(value, type [, carry [, overflow]])
                     *
                     * Since most logical operations clear both CF and OF, most calls to setLogicResult() can omit the
                     * last two optional parameters.
                     *
                     * The type parameter of these methods indicates both the size of the result (BYTE, WORD or DWORD)
                     * and which of the flags should now be considered "cached" by the result registers.  If the previous
                     * resultType specifies any flags not present in the new type parameter, then those flags are
                     * calculated and written to the appropriate regPS bit(s) *before* the result registers are updated.
                     *
                     * Arithmetic operations are assumed to represent an "added" result; if a "subtracted" result is
                     * provided instead (eg, from CMP, DEC, SUB, etc), then setArithResult() must include a 5th parameter
                     * (fSubtract); eg:
                     *
                     *      setArithResult(dst, src, dst-src, X86.RESULT.BYTE | X86.RESULT.ALL, true)
                     *
                     * TODO: Consider separating setArithResult() into two functions: setAddResult() and setSubResult().
                     */
                    BYTE:       0x80,       // result is byte value
                    WORD:       0x8000,     // result is word value
                    DWORD:      0x80000000|0,
                    TYPE:       0x80008080|0,
                    CF:         0x01,       // carry flag is cached
                    PF:         0x02,       // parity flag is cached
                    AF:         0x04,       // aux carry flag is cached
                    ZF:         0x08,       // zero flag is cached
                    SF:         0x10,       // sign flag is cached
                    OF:         0x20,       // overflow flag is cached
                    ALL:        0x3F,       // all result flags are cached
                    LOGIC:      0x1A,       // all logical flags are cached; see setLogicResult()
                    NOTCF:      0x3E        // all result flags EXCEPT carry are cached
                },
                /*
                 * Bit values for opFlags, which are all reset to zero prior to each instruction
                 */
                OPFLAG: {
                    NOREAD:     0x0001,
                    NOWRITE:    0x0002,
                    NOINTR:     0x0004,     // indicates a segreg has been set, or a prefix, or an STI (delay INTR acknowledgement)
                    SEG:        0x0010,     // segment override
                    LOCK:       0x0020,     // lock prefix
                    REPZ:       0x0040,     // repeat while Z (NOTE: this value MUST match PS.ZF; see opCMPSb/opCMPSw/opSCASb/opSCASw)
                    REPNZ:      0x0080,     // repeat while NZ
                    REPEAT:     0x0100,     // indicates that an instruction is being repeated (ie, some iteration AFTER the first)
                    PUSHSP:     0x0200,     // the SP register is potentially being referenced by a PUSH SP opcode, adjustment may be required
                    DATASIZE:   0x1000,     // data size override
                    ADDRSIZE:   0x2000      // address size override
                },
                /*
                 * Bit values for intFlags
                 */
                INTFLAG: {
                    NONE:       0x00,
                    INTR:       0x01,       // h/w interrupt requested
                    TRAP:       0x02,       // trap (INT 0x01) requested
                    HALT:       0x04,       // halt (HLT) requested
                    DMA:        0x08        // async DMA operation in progress
                },
                /*
                 * Common opcodes (and/or any opcodes we need to refer to explicitly)
                 */
                OPCODE: {
                    ES:         0x26,       // opES()
                    CS:         0x2E,       // opCS()
                    SS:         0x36,       // opSS()
                    DS:         0x3E,       // opDS()
                    PUSHSP:     0x54,       // opPUSHSP()
                    PUSHA:      0x60,       // opPUHSA()    (80186 and up)
                    POPA:       0x61,       // opPOPA()     (80186 and up)
                    BOUND:      0x62,       // opBOUND()    (80186 and up)
                    ARPL:       0x63,       // opARPL()     (80286 and up)
                    FS:         0x64,       // opFS()       (80386 and up)
                    GS:         0x65,       // opGS()       (80386 and up)
                    OS:         0x66,       // opOS()       (80386 and up)
                    AS:         0x67,       // opAS()       (80386 and up)
                    PUSHN:      0x68,       // opPUSHn()    (80186 and up)
                    IMULN:      0x69,       // opIMULn()    (80186 and up)
                    PUSH8:      0x6A,       // opPUSH8()    (80186 and up)
                    IMUL8:      0x6B,       // opIMUL8()    (80186 and up)
                    INSB:       0x6C,       // opINSb()     (80186 and up)
                    INSW:       0x6D,       // opINSw()     (80186 and up)
                    OUTSB:      0x6E,       // opOUTSb()    (80186 and up)
                    OUTSW:      0x6F,       // opOUTSw()    (80186 and up)
                    ENTER:      0xC8,       // opENTER()    (80186 and up)
                    LEAVE:      0xC9,       // opLEAVE()    (80186 and up)
                    CALLF:      0x9A,       // opCALLF()
                    MOVSB:      0xA4,       // opMOVSb()
                    MOVSW:      0xA5,       // opMOVSw()
                    CMPSB:      0xA6,       // opCMPSb()
                    CMPSW:      0xA7,       // opCMPSw()
                    STOSB:      0xAA,       // opSTOSb()
                    STOSW:      0xAB,       // opSTOSw()
                    LODSB:      0xAC,       // opLODSb()
                    LODSW:      0xAD,       // opLODSw()
                    SCASB:      0xAE,       // opSCASb()
                    SCASW:      0xAF,       // opSCASw()
                    INT3:       0xCC,       // opINT3()
                    INTn:       0xCD,       // opINTn()
                    INTO:       0xCE,       // opINTO()
                    LOOPNZ:     0xE0,       // opLOOPNZ()
                    LOOPZ:      0xE1,       // opLOOPZ()
                    LOOP:       0xE2,       // opLOOP()
                    CALL:       0xE8,       // opCALL()
                    JMP:        0xE9,       // opJMP()      (2-byte displacement)
                    JMPF:       0xEA,       // opJMPF()
                    JMPS:       0xEB,       // opJMPs()     (1-byte displacement)
                    LOCK:       0xF0,       // opLOCK()
                    REPNZ:      0xF2,       // opREPNZ()
                    REPZ:       0xF3,       // opREPZ()
                    GRP4W:      0xFF,
                    CALLW:      0x10FF,     // GRP4W: fnCALLw()
                    CALLFDW:    0x18FF,     // GRP4W: fnCALLFdw()
                    CALLMASK:   0x38FF,     // mask 2-byte GRP4W opcodes with this before comparing to CALLW or CALLFDW
                    UD2:        0x0B0F      // UD2 (invalid opcode "guaranteed" to generate UD_FAULT on all post-8086 processors)
                }
            };
            
            /*
             * BACKTRACK-related definitions (used only if BACKTRACK is defined)
             */
            X86.BACKTRACK = {
                SP_LO:  0,
                SP_HI:  0
            };
            
            /*
             * These PS flags are always stored directly in regPS for the 8086/8088, hence the
             * "direct" designation; other processors must adjust these bits accordingly.  The final
             * adjusted value is stored in PS_DIRECT (ie, 80286 and up also include PS.IOPL.MASK and
             * PS.NT in PS_DIRECT).
             */
            X86.PS_DIRECT_8086 = (X86.PS.TF | X86.PS.IF | X86.PS.DF);
            
            /*
             * These are the default "always set" PS bits for the 8086/8088; other processors must
             * adjust these bits accordingly.  The final adjusted value is stored in PS_SET.
             */
            X86.PS_SET_8086 = (X86.PS.BIT1 | X86.PS.IOPL.MASK | X86.PS.NT | X86.PS.BIT15);
            
            /*
             * These PS arithmetic and logical flags may be "cached" across several result registers;
             * whether or not they're currently cached depends on the RESULT bits in resultType.
             */
            X86.PS_CACHED = (X86.PS.CF | X86.PS.PF | X86.PS.AF | X86.PS.ZF | X86.PS.SF | X86.PS.OF);
            
            /*
             * PS_SAHF is a subset of the arithmetic flags, and refers only to those flags that the
             * SAHF and LAHF "8080 legacy" opcodes affect.
             */
            X86.PS_SAHF = (X86.PS.CF | X86.PS.PF | X86.PS.AF | X86.PS.ZF | X86.PS.SF);
            
            /*
             * Before we zero opFlags, we first see if any of the following PREFIX bits were set.  If any were set,
             * they are OR'ed into opPrefixes; otherwise, opPrefixes is zeroed as well.  This gives prefix-conscious
             * instructions like LODS, MOVS, STOS, CMPS, etc, a way of determining which prefixes, if any, immediately
             * preceded them.
             */
            X86.OPFLAG_PREFIXES = (X86.OPFLAG.SEG | X86.OPFLAG.LOCK | X86.OPFLAG.REPZ | X86.OPFLAG.REPNZ | X86.OPFLAG.DATASIZE | X86.OPFLAG.ADDRSIZE);
            
            if (typeof module !== 'undefined') module.exports = X86;
            
          • x86cpu.js
            /**
             * @fileoverview Implements PCjs 8086/8088 CPU logic.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Sep-05
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var str         = require("../../shared/lib/strlib");
                var web         = require("../../shared/lib/weblib");
                var Component   = require("../../shared/lib/component");
                var Messages    = require("./messages");
                var Bus         = require("./bus");
                var Memory      = require("./memory");
                var State       = require("./state");
                var CPU         = require("./cpu");
                var X86         = require("./x86");
                var X86Seg      = require("./x86seg");
            }
            
            if (!I386) {
                /*
                 * These are the original ModRM decoders, which were simpler and faster because they could treat all
                 * word instructions as 16-bit, assume bits 15-31 of all registers were always zero, and use masking
                 * constants instead of variables.  If I386 is enabled, these decoders are not used, and the compiler
                 * will eliminate them from the compiled code.
                 */
                if (typeof module !== 'undefined') {
                    var X86ModB     = require("./x86modb");
                    var X86ModW     = require("./x86modw");
                }
            } else {
                /*
                 * These are the more general-purpose ModRM decoders, required for I386 support.  The current addressing
                 * mode (16-bit or 32-bit) dynamically selects the appropriate set of decoders.
                 */
                if (typeof module !== 'undefined') {
                    var X86ModB16   = require("./x86modb16");
                    var X86ModW16   = require("./x86modw16");
                    var X86ModB32   = require("./x86modb32");
                    var X86ModW32   = require("./x86modw32");
                    var X86ModSIB   = require("./x86modsib");
                }
            }
            
            /**
             * X86CPU(parmsCPU)
             *
             * The X86CPU class uses the following (parmsCPU) properties:
             *
             *      model: a number (eg, 8088) that should match one of the X86.MODEL values
             *
             * This extends the CPU class and passes any remaining parmsCPU properties to the CPU class
             * constructor, along with a default speed (cycles per second) based on the specified (or default)
             * CPU model number.
             *
             * The X86CPU class was initially written to simulate a 8086/8088 microprocessor, although over time
             * it has evolved to support later microprocessors (eg, the 80186/80188 and the 80286, including
             * protected-mode support).
             *
             * This is a logical simulation, not a physical simulation, and performance is critical, second only
             * to the accuracy of the simulation when running real-world x86 software.  Consequently, it takes a
             * few liberties with the operation of the simulated hardware, especially with regard to timings,
             * little-used features, etc.  We do make an effort to maintain accurate instruction cycle counts,
             * but there are many other obstacles (eg, prefetch queue, wait states) to achieving perfect timings.
             *
             * For example, our 8237 DMA controller performs all DMA transfers immediately, since internally
             * they are all memory-to-memory, and attempting to interleave DMA cycles with instruction execution
             * cycles would hurt overall performance.  Similarly, 8254 timer counters are updated only on-demand.
             *
             * The 8237 and 8254, along with the 8259 interrupt controller and several other "chips", are combined
             * into a single ChipSet component, to keep the number of components we juggle to a minimum.
             *
             * All that being said, this does not change the overall goal: to produce as accurate a simulation as
             * possible, within the limits of what JavaScript allows and how precisely/predictably it behaves.
             *
             * @constructor
             * @extends CPU
             * @param {Object} parmsCPU
             */
            function X86CPU(parmsCPU)
            {
                this.model = parmsCPU['model'] || X86.MODEL_8088;
            
                var nCyclesDefault = 0;
                switch(this.model) {
                case X86.MODEL_8088:
                default:
                    nCyclesDefault = 4772727;
                    break;
                case X86.MODEL_80286:
                    nCyclesDefault = 6000000;
                    break;
                case X86.MODEL_80386:
                    nCyclesDefault = 16000000;
                    break;
                }
            
                CPU.call(this, parmsCPU, nCyclesDefault);
            
                /*
                 * Initialize processor operation to match the requested model
                 */
                this.initProcessor();
            
                /*
                 * List of software interrupt notification functions: aIntNotify is an array, indexed by
                 * interrupt number, of 2-element sub-arrays that, in turn, contain:
                 *
                 *      [0]: registered component
                 *      [1]: registered function to call for every software interrupt
                 *
                 * The registered function is called with the linear address (LIP) following the software interrupt;
                 * if any function returns false, the software interrupt will be skipped (presumed to be emulated),
                 * and no further notification functions will be called.
                 *
                 * NOTE: Registered functions are called only for INT N instructions -- *not* INT 0x03 or INTO or the
                 * INT 0x00 generated by a divide-by-zero or any other kind of interrupt (nor any interrupt simulated
                 * with PUSHF/CALLF).
                 *
                 * aIntReturn is a hash of return address notifications set up by software interrupt notification
                 * functions that want to receive return notifications.  A software interrupt function must call
                 * cpu.addIntReturn(fn).
                 *
                 * WARNING: There's no mechanism in place to insure that software interrupt return notifications don't
                 * get "orphaned" if an interrupt handler bypasses the normal return path (INT 0x24 is one example of an
                 * "evil" software interrupt).
                 */
                this.aIntNotify = [];
                this.aIntReturn = [];
            
                /*
                 * Since aReturnNotify is a "sparse array", this global count gives the CPU a quick way of knowing whether
                 * or not RETF or IRET instructions need to bother calling checkIntReturn().
                 */
                this.cIntReturn = 0;
            
                /*
                 * A variety of stepCPU() state variables that don't strictly need to be initialized before the first
                 * stepCPU() call, but it's good form to do so.
                 */
                this.resetCycles();
                this.aFlags.fComplete = this.aFlags.fDebugCheck = false;
            
                /*
                 * If there are no live registers to display, then updateStatus() can skip a bit....
                 */
                this.cLiveRegs = 0;
            
                /*
                 * We're just declaring aMemBlocks and associated Bus parameters here; they'll be initialized by initMemory()
                 * when the Bus is initialized.
                 */
                this.aBusBlocks = this.aMemBlocks = [];
                this.nBusMask = this.nMemMask = 0;
                this.nBlockShift = this.nBlockSize = this.nBlockLimit = this.nBlockTotal = this.nBlockMask = 0;
            
                if (SAMPLER) {
                    /*
                     * For now, we're just going to sample LIP values (well, LIP + cycle count)
                     */
                    this.nSamples = 50000;
                    this.nSampleFreq = 1000;
                    this.nSampleSkip = 0;
                    this.aSamples = new Array(this.nSamples);
                    for (var i = 0; i < this.nSamples; i++) this.aSamples[i] = -1;
                    this.iSampleNext = 0;
                    this.iSampleFreq = 0;
                    this.iSampleSkip = 0;
                }
            
                /*
                 * This initial resetRegs() call is important to create all the registers (eg, the X86Seg registers),
                 * so that if/when we call restore(), it will have something to fill in.
                 */
                this.resetRegs();
            }
            
            Component.subclass(X86CPU, CPU);
            
            X86CPU.CYCLES_8088 = {
                nWordCyclePenalty:          4,      // NOTE: accurate for the 8088/80188 only (on the 8086/80186, it applies to odd addresses only)
                nEACyclesBase:              5,      // base or index only (BX, BP, SI or DI)
                nEACyclesDisp:              6,      // displacement only
                nEACyclesBaseIndex:         7,      // base + index (BP+DI and BX+SI)
                nEACyclesBaseIndexExtra:    8,      // base + index (BP+SI and BX+DI require an extra cycle)
                nEACyclesBaseDisp:          9,      // base or index + displacement
                nEACyclesBaseIndexDisp:     11,     // base + index + displacement (BP+DI+n and BX+SI+n)
                nEACyclesBaseIndexDispExtra:12,     // base + index + displacement (BP+SI+n and BX+DI+n require an extra cycle)
                nOpCyclesAAA:               4,      // AAA, AAS, DAA, DAS, TEST acc,imm
                nOpCyclesAAD:               60,
                nOpCyclesAAM:               83,
                nOpCyclesArithRR:           3,      // ADC, ADD, AND, OR, SBB, SUB, XOR and CMP reg,reg cycle time
                nOpCyclesArithRM:           9,      // ADC, ADD, AND, OR, SBB, SUB, and XOR reg,mem (and CMP mem,reg) cycle time
                nOpCyclesArithMR:           16,     // ADC, ADD, AND, OR, SBB, SUB, and XOR mem,reg cycle time
                nOpCyclesArithMID:          1,      // ADC, ADD, AND, OR, SBB, SUB, XOR and CMP mem,imm cycle delta
                nOpCyclesCall:              19,
                nOpCyclesCallF:             28,
                nOpCyclesCallWR:            16,
                nOpCyclesCallWM:            21,
                nOpCyclesCallDM:            37,
                nOpCyclesCLI:               2,
                nOpCyclesCompareRM:         9,      // CMP reg,mem cycle time (same as nOpCyclesArithRM on an 8086 but not on a 80286)
                nOpCyclesCWD:               5,
                nOpCyclesBound:             33,     // N/A if 8086/8088, 33-35 if 80186/80188 (TODO: Determine what the range means for an 80186/80188)
                nOpCyclesInP:               10,
                nOpCyclesInDX:              8,
                nOpCyclesIncR:              3,      // INC reg, DEC reg
                nOpCyclesIncM:              15,     // INC mem, DEC mem
                nOpCyclesInt:               51,
                nOpCyclesInt3D:             1,
                nOpCyclesIntOD:             2,
                nOpCyclesIntOFall:          4,
                nOpCyclesIRet:              32,
                nOpCyclesJmp:               15,
                nOpCyclesJmpF:              15,
                nOpCyclesJmpC:              16,
                nOpCyclesJmpCFall:          4,
                nOpCyclesJmpWR:             11,
                nOpCyclesJmpWM:             18,
                nOpCyclesJmpDM:             24,
                nOpCyclesLAHF:              4,      // LAHF, SAHF, MOV reg,imm
                nOpCyclesLEA:               2,
                nOpCyclesLS:                16,     // LDS, LES
                nOpCyclesLoop:              17,     // LOOP, LOOPNZ
                nOpCyclesLoopZ:             18,     // LOOPZ, JCXZ
                nOpCyclesLoopNZ:            19,     // LOOPNZ
                nOpCyclesLoopFall:          5,      // LOOP
                nOpCyclesLoopZFall:         6,      // LOOPZ, JCXZ
                nOpCyclesMovRR:             2,
                nOpCyclesMovRM:             8,
                nOpCyclesMovMR:             9,
                nOpCyclesMovRI:             10,
                nOpCyclesMovMI:             10,
                nOpCyclesMovAM:             10,
                nOpCyclesMovMA:             10,
                nOpCyclesDivBR:             80,     // range of 80-90
                nOpCyclesDivWR:             144,    // range of 144-162
                nOpCyclesDivBM:             86,     // range of 86-96
                nOpCyclesDivWM:             154,    // range of 154-172
                nOpCyclesIDivBR:            101,    // range of 101-112
                nOpCyclesIDivWR:            165,    // range of 165-184
                nOpCyclesIDivBM:            107,    // range of 107-118
                nOpCyclesIDivWM:            171,    // range of 171-190
                nOpCyclesMulBR:             70,     // range of 70-77
                nOpCyclesMulWR:             113,    // range of 113-118
                nOpCyclesMulBM:             76,     // range of 76-83
                nOpCyclesMulWM:             124,    // range of 124-139
                nOpCyclesIMulBR:            80,     // range of 80-98
                nOpCyclesIMulWR:            128,    // range of 128-154
                nOpCyclesIMulBM:            86,     // range of 86-104
                nOpCyclesIMulWM:            134,    // range of 134-160
                nOpCyclesNegR:              3,      // NEG reg, NOT reg
                nOpCyclesNegM:              16,     // NEG mem, NOT mem
                nOpCyclesOutP:              10,
                nOpCyclesOutDX:             8,
                nOpCyclesPopAll:            51,     // N/A if 8086/8088, 51 if 80186, 83 if 80188 (TODO: Verify)
                nOpCyclesPopReg:            8,
                nOpCyclesPopMem:            17,
                nOpCyclesPushAll:           36,     // N/A if 8086/8088, 36 if 80186, 68 if 80188 (TODO: Verify)
                nOpCyclesPushReg:           11,     // NOTE: "The 8086 Book" claims this is 10, but it's an outlier....
                nOpCyclesPushMem:           16,
                nOpCyclesPushSeg:           10,
                nOpCyclesPrefix:            2,
                nOpCyclesCmpS:              18,
                nOpCyclesCmpSr0:            9-2,    // reduced by nOpCyclesPrefix
                nOpCyclesCmpSrn:            17-2,   // reduced by nOpCyclesPrefix
                nOpCyclesLodS:              12,
                nOpCyclesLodSr0:            9-2,    // reduced by nOpCyclesPrefix
                nOpCyclesLodSrn:            13-2,   // reduced by nOpCyclesPrefix
                nOpCyclesMovS:              18,
                nOpCyclesMovSr0:            9-2,    // reduced by nOpCyclesPrefix
                nOpCyclesMovSrn:            17-2,   // reduced by nOpCyclesPrefix
                nOpCyclesScaS:              15,
                nOpCyclesScaSr0:            9-2,    // reduced by nOpCyclesPrefix
                nOpCyclesScaSrn:            15-2,   // reduced by nOpCyclesPrefix
                nOpCyclesStoS:              11,
                nOpCyclesStoSr0:            9-2,    // reduced by nOpCyclesPrefix
                nOpCyclesStoSrn:            10-2,   // reduced by nOpCyclesPrefix
                nOpCyclesRet:               8,
                nOpCyclesRetn:              12,
                nOpCyclesRetF:              18,
                nOpCyclesRetFn:             17,
                nOpCyclesShift1M:           15,     // ROL/ROR/RCL/RCR/SHL/SHR/SAR reg,1
                nOpCyclesShiftCR:           8,      // ROL/ROR/RCL/RCR/SHL/SHR/SAR reg,CL
                nOpCyclesShiftCM:           20,     // ROL/ROR/RCL/RCR/SHL/SHR/SAR mem,CL
                nOpCyclesShiftCS:           2,      // this is the left-shift value used to convert the count to the cycle cost
                nOpCyclesTestRR:            3,
                nOpCyclesTestRM:            9,
                nOpCyclesTestRI:            5,
                nOpCyclesTestMI:            11,
                nOpCyclesXchgRR:            4,
                nOpCyclesXchgRM:            17,
                nOpCyclesXLAT:              11
            };
            
            X86CPU.CYCLES_80286 = {
                nWordCyclePenalty:          0,
                nEACyclesBase:              0,
                nEACyclesDisp:              0,
                nEACyclesBaseIndex:         0,
                nEACyclesBaseIndexExtra:    0,
                nEACyclesBaseDisp:          0,
                nEACyclesBaseIndexDisp:     1,
                nEACyclesBaseIndexDispExtra:1,
                nOpCyclesAAA:               3,
                nOpCyclesAAD:               14,
                nOpCyclesAAM:               16,
                nOpCyclesArithRR:           2,
                nOpCyclesArithRM:           7,
                nOpCyclesArithMR:           7,
                nOpCyclesArithMID:          0,
                nOpCyclesCall:              7,      // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesCallF:             13,     // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesCallWR:            7,      // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesCallWM:            11,     // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesCallDM:            16,     // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesCLI:               3,
                nOpCyclesCompareRM:         6,
                nOpCyclesCWD:               2,
                nOpCyclesBound:             13,
                nOpCyclesInP:               5,
                nOpCyclesInDX:              5,
                nOpCyclesIncR:              2,
                nOpCyclesIncM:              7,
                nOpCyclesInt:               23,     // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesInt3D:             0,
                nOpCyclesIntOD:             1,
                nOpCyclesIntOFall:          3,
                nOpCyclesIRet:              17,     // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesJmp:               7,      // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesJmpF:              11,     // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesJmpC:              7,      // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesJmpCFall:          3,
                nOpCyclesJmpWR:             7,      // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesJmpWM:             11,     // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesJmpDM:             15,     // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesLAHF:              2,
                nOpCyclesLEA:               3,
                nOpCyclesLS:                7,
                nOpCyclesLoop:              8,      // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesLoopZ:             8,      // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesLoopNZ:            8,      // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesLoopFall:          4,
                nOpCyclesLoopZFall:         4,
                nOpCyclesMovRR:             2,      // this is actually the same as the 8086...
                nOpCyclesMovRM:             3,
                nOpCyclesMovMR:             5,
                nOpCyclesMovRI:             2,
                nOpCyclesMovMI:             3,
                nOpCyclesMovAM:             5,      // this is actually slower than the MOD/RM form of MOV AX,mem (see nOpCyclesMovRM)
                nOpCyclesMovMA:             3,
                nOpCyclesDivBR:             14,
                nOpCyclesDivWR:             22,
                nOpCyclesDivBM:             17,
                nOpCyclesDivWM:             25,
                nOpCyclesIDivBR:            17,
                nOpCyclesIDivWR:            25,
                nOpCyclesIDivBM:            20,
                nOpCyclesIDivWM:            28,
                nOpCyclesMulBR:             13,
                nOpCyclesMulWR:             21,
                nOpCyclesMulBM:             16,
                nOpCyclesMulWM:             24,
                nOpCyclesIMulBR:            13,
                nOpCyclesIMulWR:            21,
                nOpCyclesIMulBM:            16,
                nOpCyclesIMulWM:            24,
                nOpCyclesNegR:              2,
                nOpCyclesNegM:              7,
                nOpCyclesOutP:              5,
                nOpCyclesOutDX:             5,
                nOpCyclesPopAll:            19,
                nOpCyclesPopReg:            5,
                nOpCyclesPopMem:            5,
                nOpCyclesPushAll:           17,
                nOpCyclesPushReg:           3,
                nOpCyclesPushMem:           5,
                nOpCyclesPushSeg:           3,
                nOpCyclesPrefix:            0,
                nOpCyclesCmpS:              8,
                nOpCyclesCmpSr0:            5,
                nOpCyclesCmpSrn:            9,
                nOpCyclesLodS:              5,
                nOpCyclesLodSr0:            5,
                nOpCyclesLodSrn:            4,
                nOpCyclesMovS:              5,
                nOpCyclesMovSr0:            5,
                nOpCyclesMovSrn:            4,
                nOpCyclesScaS:              7,
                nOpCyclesScaSr0:            5,
                nOpCyclesScaSrn:            8,
                nOpCyclesStoS:              3,
                nOpCyclesStoSr0:            4,
                nOpCyclesStoSrn:            3,
                nOpCyclesRet:               11,     // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesRetn:              11,     // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesRetF:              15,     // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesRetFn:             15,     // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesShift1M:           7,
                nOpCyclesShiftCR:           5,
                nOpCyclesShiftCM:           8,
                nOpCyclesShiftCS:           0,
                nOpCyclesTestRR:            2,
                nOpCyclesTestRM:            6,
                nOpCyclesTestRI:            3,
                nOpCyclesTestMI:            6,
                nOpCyclesXchgRR:            3,
                nOpCyclesXchgRM:            5,
                nOpCyclesXLAT:              5
            };
            
            /*
             * TODO: All these values were simply copied from the 80286 table and still need to be modified and verified.
             * Cycle counts for 80386-only instructions are hard-coded in their respective handlers, since those counts don't vary.
             */
            X86CPU.CYCLES_80386 = {
                nWordCyclePenalty:          0,
                nEACyclesBase:              0,
                nEACyclesDisp:              0,
                nEACyclesBaseIndex:         0,
                nEACyclesBaseIndexExtra:    0,
                nEACyclesBaseDisp:          0,
                nEACyclesBaseIndexDisp:     1,
                nEACyclesBaseIndexDispExtra:1,
                nOpCyclesAAA:               3,
                nOpCyclesAAD:               14,
                nOpCyclesAAM:               16,
                nOpCyclesArithRR:           2,
                nOpCyclesArithRM:           7,
                nOpCyclesArithMR:           7,
                nOpCyclesArithMID:          0,
                nOpCyclesCall:              7,      // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesCallF:             13,     // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesCallWR:            7,      // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesCallWM:            11,     // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesCallDM:            16,     // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesCLI:               3,
                nOpCyclesCompareRM:         6,
                nOpCyclesCWD:               2,
                nOpCyclesBound:             13,
                nOpCyclesInP:               5,
                nOpCyclesInDX:              5,
                nOpCyclesIncR:              2,
                nOpCyclesIncM:              7,
                nOpCyclesInt:               23,     // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesInt3D:             0,
                nOpCyclesIntOD:             1,
                nOpCyclesIntOFall:          3,
                nOpCyclesIRet:              17,     // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesJmp:               7,      // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesJmpF:              11,     // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesJmpC:              7,      // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesJmpCFall:          3,
                nOpCyclesJmpWR:             7,      // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesJmpWM:             11,     // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesJmpDM:             15,     // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesLAHF:              2,
                nOpCyclesLEA:               3,
                nOpCyclesLS:                7,
                nOpCyclesLoop:              8,      // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesLoopZ:             8,      // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesLoopNZ:            8,      // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesLoopFall:          4,
                nOpCyclesLoopZFall:         4,
                nOpCyclesMovRR:             2,      // this is actually the same as the 8086...
                nOpCyclesMovRM:             3,
                nOpCyclesMovMR:             5,
                nOpCyclesMovRI:             2,
                nOpCyclesMovMI:             3,
                nOpCyclesMovAM:             5,      // this is actually slower than the MOD/RM form of MOV AX,mem (see nOpCyclesMovRM)
                nOpCyclesMovMA:             3,
                nOpCyclesDivBR:             14,
                nOpCyclesDivWR:             22,
                nOpCyclesDivBM:             17,
                nOpCyclesDivWM:             25,
                nOpCyclesIDivBR:            17,
                nOpCyclesIDivWR:            25,
                nOpCyclesIDivBM:            20,
                nOpCyclesIDivWM:            28,
                nOpCyclesMulBR:             13,
                nOpCyclesMulWR:             21,
                nOpCyclesMulBM:             16,
                nOpCyclesMulWM:             24,
                nOpCyclesIMulBR:            13,
                nOpCyclesIMulWR:            21,
                nOpCyclesIMulBM:            16,
                nOpCyclesIMulWM:            24,
                nOpCyclesNegR:              2,
                nOpCyclesNegM:              7,
                nOpCyclesOutP:              5,
                nOpCyclesOutDX:             5,
                nOpCyclesPopAll:            19,
                nOpCyclesPopReg:            5,
                nOpCyclesPopMem:            5,
                nOpCyclesPushAll:           17,
                nOpCyclesPushReg:           3,
                nOpCyclesPushMem:           5,
                nOpCyclesPushSeg:           3,
                nOpCyclesPrefix:            0,
                nOpCyclesCmpS:              8,
                nOpCyclesCmpSr0:            5,
                nOpCyclesCmpSrn:            9,
                nOpCyclesLodS:              5,
                nOpCyclesLodSr0:            5,
                nOpCyclesLodSrn:            4,
                nOpCyclesMovS:              5,
                nOpCyclesMovSr0:            5,
                nOpCyclesMovSrn:            4,
                nOpCyclesScaS:              7,
                nOpCyclesScaSr0:            5,
                nOpCyclesScaSrn:            8,
                nOpCyclesStoS:              3,
                nOpCyclesStoSr0:            4,
                nOpCyclesStoSrn:            3,
                nOpCyclesRet:               11,     // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesRetn:              11,     // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesRetF:              15,     // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesRetFn:             15,     // on the 80286, this ALSO includes the number of bytes in the target instruction
                nOpCyclesShift1M:           7,
                nOpCyclesShiftCR:           5,
                nOpCyclesShiftCM:           8,
                nOpCyclesShiftCS:           0,
                nOpCyclesTestRR:            2,
                nOpCyclesTestRM:            6,
                nOpCyclesTestRI:            3,
                nOpCyclesTestMI:            6,
                nOpCyclesXchgRR:            3,
                nOpCyclesXchgRM:            5,
                nOpCyclesXLAT:              5
            };
            
            /**
             * Memory Simulation Notes
             *
             * Memory accesses are currently hard-coded to simulate 8088 characteristics.
             * For example, every 16-bit memory access is assumed to require an additional 4 cycles
             * for the upper byte; on an 8086, that would be true only when the memory address was odd.
             *
             * Similarly, the effective prefetch queue size is 4 bytes (same as an 8088), although
             * that can easily be changed to 6 bytes if/when we decide to fully implement 8086 support
             * (see X86CPU.PREFETCH.QUEUE).  It's just not clear whether that support will be a goal.
             */
            X86CPU.PREFETCH = {
                QUEUE:      4,
                ARRAY:      8,              // smallest power-of-two > PREFETCH.QUEUE
                MASK:       0x7             // (X86CPU.PREFETCH.ARRAY - 1)
            };
            
            /**
             * initMemory(aMemBlocks, nBlockShift)
             *
             * Notification from Bus.initMemory(), giving us direct access to the entire memory space
             * (aMemBlocks).
             *
             * We also initialize an instruction byte prefetch queue, aPrefetch, which is an N-element
             * array with slots that look like:
             *
             *      0:  [tag, b]    <-- iPrefetchTail
             *      1:  [tag, b]
             *      2:  [ -1, 0]    <-- iPrefetchHead  (eg, when cbPrefetchQueued == 2)
             *      ...
             *      7:  [ -1, 0]
             *
             * where tag is the linear address of the byte that's been prefetched, and b is the
             * value of the byte.  N is currently 8 (PREFETCH.ARRAY), but it can be any power-of-two
             * that is equal to or greater than (PREFETCH.QUEUE), the effective size of the prefetch
             * queue (6 on an 8086, 4 on an 8088; currently hard-coded to the latter).  All slots
             * are initialized to [-1, 0] when preallocating the prefetch queue, but those initial
             * values are quickly overwritten and never seen again.
             *
             * iPrefetchTail is the index (0-7) of the next prefetched byte to be returned to the CPU,
             * and iPrefetchHead is the index (0-7) of the next slot to be filled.  The prefetch queue
             * is empty IFF the two indexes are equal and IFF cbPrefetchQueued is zero. cbPrefetchQueued
             * is simply the number of bytes between the tail and the head (from 0 to PREFETCH.QUEUE).
             *
             * cbPrefetchValid indicates how many bytes behind iPrefetchHead are still valid, allowing us
             * to "rewind" the tail up to that many bytes.  For example, let's imagine that we prefetched
             * 2 bytes, and then we immediately consumed both bytes, leaving iPrefetchTail == iPrefetchHead
             * again; however, those previous 2 bytes are still valid, and if, for example, we wanted to
             * rewind the IP by 2 (which we might want to do in the case of a repeated string instruction),
             * we could rewind the prefetch queue tail as well.
             *
             * Corresponding to iPrefetchHead is addrPrefetchHead; both are incremented in lock-step.
             * Whenever the prefetch queue is flushed, it's typically because a new, non-incremental
             * regLIP has been set, so flushPrefetch() expects to receive that address.
             *
             * If the prefetch queue does not contain any (or enough) bytes to satisfy a getBytePrefetch()
             * or getShortPrefetch() request, we force the queue to be filled with the necessary number
             * of bytes first.
             *
             * @this {X86CPU}
             * @param {Array} aMemBlocks
             * @param {number} nBlockShift
             */
            X86CPU.prototype.initMemory = function(aMemBlocks, nBlockShift)
            {
                /*
                 * aBusBlocks preserves the Bus block array for the life of the machine, whereas aMemBlocks
                 * will be altered if/when the CPU enables paging.  PAGEBLOCKS must be true when using Memory
                 * blocks to simulate paging, ensuring that physical blocks and pages have the same size (4Kb).
                 */
                this.aBusBlocks = aMemBlocks;
                this.aMemBlocks = aMemBlocks;
                this.nBlockShift = nBlockShift;
                this.nBlockSize = 1 << this.nBlockShift;
                this.nBlockLimit = this.nBlockSize - 1;
                this.nBlockTotal = aMemBlocks.length;
                this.nBlockMask = this.nBlockTotal - 1;
                if (PREFETCH) {
                    this.nBusCycles = 0;
                    this.aPrefetch = new Array(X86CPU.PREFETCH.ARRAY);
                    for (var i = 0; i < X86CPU.PREFETCH.ARRAY; i++) {
                        this.aPrefetch[i] = 0;
                    }
                    this.flushPrefetch(0);
                }
            };
            
            /**
             * setAddressMask(nBusMask)
             *
             * Notification from Bus.initMemory() and Bus.setA20(); the latter calls us whenever the physical
             * A20 line changes (note that on a 20-bit bus machine, address lines A20 and higher are always zero).
             *
             * For 32-bit bus machines (eg, 80386), nBusMask is never changed after the initial call, because A20
             * wrap-around is simulated by changing the physical memory map rather than altering the A20 bit in nBusMask.
             *
             * We maintain nMemMask separate from nBusMask, because when paging is enabled on the 80386, the CPU memory
             * functions are now dealing with linear addresses rather than physical addresses, so it would be incorrect
             * to apply nBusMask to those addresses; nMemMask must remain 0xffffffff (-1) for the duration.  If we change
             * how A20 is simulated on the 80386, then enablePageBlocks() and disablePageBlocks() will need to override
             * nMemMask appropriately.
             *
             * TODO: Ideally, we would eliminate masking altogether of 32-bit addresses, but that would require different
             * sets of memory access functions for different machines (ie, those with 20-bit or 24-bit buses).
             *
             * @this {X86CPU}
             * @param {number} nBusMask
             */
            X86CPU.prototype.setAddressMask = function(nBusMask)
            {
                this.nBusMask = this.nMemMask = nBusMask;
            };
            
            /**
             * enablePageBlocks()
             *
             * Whenever the CPU turns on paging and/or updates CR3, this function is called to update our copy
             * of the Bus block array, to simulate paging.  Whenever the CPU turns paging off, disablePageBlocks()
             * must be called to restore our copy of the Bus block array to its original (physical) mapping.
             *
             * This also requires PAGEBLOCKS be enabled, ensuring that the Bus is configured with a 4Kb block size.
             *
             * The first time this function is called, aMemBlocks and aBusBlocks are identical, so aMemBlocks is
             * reinitialized with special UNPAGED Memory blocks that know how to perform page directory/page table
             * lookup and replace themselves with special PAGED Memory blocks that reference memory from the
             * appropriate block in aBusBlocks.  A parallel array, aBlocksPaged, keeps track (by block number) of
             * which blocks have been PAGED, so that whenever CR3 is updated, those blocks can be quickly UNPAGED.
             *
             * @this {X86CPU}
             */
            X86CPU.prototype.enablePageBlocks = function()
            {
                if (!PAGEBLOCKS) {
                    this.setError("PAGEBLOCK support required");
                    return;
                }
                if (this.aMemBlocks === this.aBusBlocks) {
                    this.aMemBlocks = new Array(this.nBlockTotal);
                    this.blockUnpaged = new Memory(null, 0, 0, Memory.TYPE.UNPAGED, null, this);
                    for (var iBlock = 0; iBlock < this.nBlockTotal; iBlock++) {
                        this.aMemBlocks[iBlock] = this.blockUnpaged;
                    }
                } else {
                    for (var i = 0; i < this.aBlocksPaged.length; i++) {
                        this.aMemBlocks[this.aBlocksPaged[i]] = this.blockUnpaged;
                    }
                }
                this.aBlocksPaged = [];
            };
            
            /**
             * mapPageBlock(addr, fWrite)
             *
             * Locate the corresponding physical PDE, PTE and memory blocks for the given linear address, and then
             * upgrade the block from an UNPAGED Memory block to a new PAGED Memory block; all future accesses to
             * the current page will go directly to that block, instead of coming here through the UNPAGED block
             * handlers.
             *
             * Note that since the incoming address (addr) is a linear address, we never need to mask it with nBusMask,
             * but all the intermediate (PDE, PTE) and final physical addresses we calculate should still be masked.
             *
             * Granted, nBusMask on a 32-bit bus is generally going to be 0xffffffff (-1), so making might seem like
             * a waste of time; however, if we decide to once again rely on nBusMask for emulating A20 wrap-around
             * (instead of changing the physical memory map to alias the 2nd Mb to the 1st Mb), then performing
             * consistent masking will be important.
             *
             * Also, addrPDE, addrPTE and addrPhys do not need any offsets added to them, because we immediately shift
             * the offset portion of those addresses out.  But for now, at least for debugging and documentation purposes,
             * my preference is to perform full address calculations.
             *
             * Besides, this should not be a performance-critical function; it's normally called only once per UNPAGED
             * page.  Obviously, if CR3 is constantly being updated, that will trigger repeated calls to enablePageBlocks(),
             * which will perform our equivalent of a TLB flush (ie, resetting all PAGED blocks back to UNPAGED blocks).
             * That would hurt our performance, but it would hurt performance on a real machine as well, so let's see
             * what real-world scenarios we run into.
             *
             * @this {X86CPU}
             * @param {number} addr is a linear address
             * @param {boolean} fWrite (true if called for a write, false if for a read)
             * @param {boolean} [fSuppress] (true if any faults, remapping, etc should be suppressed)
             * @return {Memory|null}
             */
            X86CPU.prototype.mapPageBlock = function(addr, fWrite, fSuppress)
            {
                var offPDE = (addr & X86.LADDR.PDE.MASK) >>> X86.LADDR.PDE.SHIFT;
                var addrPDE = this.regCR3 + offPDE;
            
                /*
                 * bus.getLong(addrPDE) would be simpler, but setPhysBlock() needs to know blockPDE and offPDE, too.
                 * TODO: Since we're immediately shifting addrPDE by nBlockShift, then we could also skip adding offPDE.
                 */
                var blockPDE = this.aBusBlocks[(addrPDE & this.nBusMask) >>> this.nBlockShift];
                var pde = blockPDE.readLong(offPDE);
            
                if (!(pde & X86.PTE.PRESENT)) {
                    if (!fSuppress) X86.fnPageFault.call(this, addr, false, fWrite);
                    return null;
                }
            
                if (!(pde & X86.PTE.USER) && this.segCS.cpl == 3) {
                    if (!fSuppress) X86.fnPageFault.call(this, addr, true, fWrite);
                    return null;
                }
            
                var offPTE = (addr & X86.LADDR.PTE.MASK) >>> X86.LADDR.PTE.SHIFT;
                var addrPTE = (pde & X86.PTE.FRAME) + offPTE;
            
                /*
                 * bus.getLong(addrPTE) would be simpler, but setPhysBlock() needs to know blockPTE and offPTE, too.
                 * TODO: Since we're immediately shifting addrPDE by nBlockShift, then we could also skip adding offPTE.
                 */
                var blockPTE = this.aBusBlocks[(addrPTE & this.nBusMask) >>> this.nBlockShift];
                var pte = blockPTE.readLong(offPTE);
            
                if (!(pte & X86.PTE.PRESENT) && !fSuppress) {
                    if (!fSuppress) X86.fnPageFault.call(this, addr, false, fWrite);
                    return null;
                }
            
                if (!(pte & X86.PTE.USER) && this.segCS.cpl == 3) {
                    if (!fSuppress) X86.fnPageFault.call(this, addr, true, fWrite);
                    return null;
                }
            
                var addrPhys = (pte & X86.PTE.FRAME) + (addr & X86.LADDR.OFFSET);
                /*
                 * TODO: Since we're immediately shifting addrPhys by nBlockShift, we could also skip adding the addr's offset.
                 */
                var blockPhys = this.aBusBlocks[(addrPhys & this.nBusMask) >>> this.nBlockShift];
                if (fSuppress) return blockPhys;
            
                /*
                 * So we have the block containing the physical memory corresponding to the given linear address.
                 *
                 * Now we can create a new PAGED Memory block and record the physical block info using setPhysBlock().
                 */
                var addrPage = addr & ~X86.LADDR.OFFSET;
                var blockPage = new Memory(addrPage, 0, 0, Memory.TYPE.PAGED);
                blockPage.setPhysBlock(blockPhys, blockPDE, offPDE, blockPTE, offPTE);
            
                var iBlock = addr >>> this.nBlockShift;
                this.aMemBlocks[iBlock] = blockPage;
                this.aBlocksPaged.push(iBlock);
                return blockPage;
            };
            
            /**
             * disablePageBlocks()
             *
             * Whenever the CPU turns off paging, this function restores the CPU's original aMemBlocks.
             *
             * @this {X86CPU}
             */
            X86CPU.prototype.disablePageBlocks = function()
            {
                if (this.aMemBlocks != this.aBusBlocks) {
                    this.aMemBlocks = this.aBusBlocks;
                    this.blockUnpaged = null;
                    this.aBlocksPaged = null;
                }
            };
            
            /**
             * initProcessor()
             *
             * This isolates 80186/80188/80286/80386 support, so that it can be selectively enabled/tested.
             *
             * Here's a summary of 80186/80188 differences according to "AP-186: Introduction to the 80186
             * Microprocessor, March 1983" (pp.55-56).  "The iAPX 86,88 and iAPX 186,188 User's Manual Programmer's
             * Reference", p.3-38, apparently contains the same information, but I've not seen that document.
             *
             * Undefined [Invalid] Opcodes:
             *
             *      When the opcodes 63H, 64H, 65H, 66H, 67H, F1H, FEH/xx111xxxB and FFH/xx111xxxB are executed,
             *      the 80186 will execute an illegal [invalid] instruction exception, interrupt 0x06.
             *      The 8086 will ignore the opcode.
             *
             * 0FH opcode:
             *
             *      When the opcode 0FH is encountered, the 8086 will execute a POP CS, while the 80186 will
             *      execute an illegal [invalid] instruction exception, interrupt 0x06.
             *
             * Word Write at Offset FFFFH:
             *
             *      When a word write is performed at offset FFFFH in a segment, the 8086 will write one byte
             *      at offset FFFFH, and the other at offset 0, while the 80186 will write one byte at offset
             *      FFFFH, and the other at offset 10000H (one byte beyond the end of the segment). One byte segment
             *      underflow will also occur (on the 80186) if a stack PUSH is executed and the Stack Pointer
             *      contains the value 1.
             *
             * Shift/Rotate by Value Greater Then [sic] 31:
             *
             *      Before the 80186 performs a shift or rotate by a value (either in the CL register, or by an
             *      immediate value) it ANDs the value with 1FH, limiting the number of bits rotated to less than 32.
             *      The 8086 does not do this.
             *
             * LOCK prefix:
             *
             *      The 8086 activates its LOCK signal immediately after executing the LOCK prefix. The 80186 does
             *      not activate the LOCK signal until the processor is ready to begin the data cycles associated
             *      with the LOCKed instruction.
             *
             * Interrupted String Move Instructions:
             *
             *      If an 8086 is interrupted during the execution of a repeated string move instruction, the return
             *      value it will push on the stack will point to the last prefix instruction before the string move
             *      instruction. If the instruction had more than one prefix (e.g., a segment override prefix in
             *      addition to the repeat prefix), it will not be re-executed upon returning from the interrupt.
             *      The 80186 will push the value of the first prefix to the repeated instruction, so long as prefixes
             *      are not repeated, allowing the string instruction to properly resume.
             *
             * Conditions causing divide error with an integer divide:
             *
             *      The 8086 will cause a divide error whenever the absolute value of the quotient is greater then
             *      [sic] 7FFFH (for word operations) or if the absolute value of the quotient is greater than 7FH
             *      (for byte operations). The 80186 has expanded the range of negative numbers allowed as a quotient
             *      by 1 to include 8000H and 80H. These numbers represent the most negative numbers representable
             *      using 2's complement arithmetic (equaling -32768 and -128 in decimal, respectively).
             *
             * ESC Opcode:
             *
             *      The 80186 may be programmed to cause an interrupt type 7 whenever an ESCape instruction (used for
             *      co-processors like the 8087) is executed. The 8086 has no such provision. Before the 80186 performs
             *      this trap, it must be programmed to do so. [The details of this "programming" are not included.]
             *
             * Here's a summary of 80286 differences according to "80286 and 80287 Programmer's Reference Manual",
             * Appendix C, p.C-1 (p.329):
             *
             *   1. Add Six Interrupt Vectors
             *
             *      The 80286 adds six interrupts which arise only if the 8086 program has a hidden bug. These interrupts
             *      occur only for instructions which were undefined on the 8086/8088 or if a segment wraparound is attempted.
             *      It is recommended that you add an interrupt handler to the 8086 software that is to be run on the 80286,
             *      which will treat these interrupts as invalid operations.
             *
             *      This additional software does not significantly effect the existing 8086 software because the interrupts
             *      do not normally occur and should not already have been used since they are in the interrupt group reserved
             *      by Intel. [Note to Intel: IBM caaaaaaan't hear you].
             *
             *   2. Do not Rely on 8086/8088 Instruction Clock Counts
             *
             *      The 80286 takes fewer clocks for most instructions than the 8086/8088. The areas to look into are delays
             *      between I/0 operations, and assumed delays in 8086/8088 operating in parallel with an 8087.
             *
             *   3. Divide Exceptions Point at the DIV Instruction
             *
             *      Any interrupt on the 80286 will always leave the saved CS:IP value pointing at the beginning of the
             *      instruction that failed (including prefixes). On the 8086, the CS:IP value saved for a divide exception
             *      points at the next instruction.
             *
             *   4. Use Interrupt 16 (0x10) for Numeric Exceptions
             *
             *      Any 80287 system must use interrupt vector 16 for the numeric error interrupt. If an 8086/8087 or 8088/8087
             *      system uses another vector for the 8087 interrupt, both vectors should point at the numeric error interrupt
             *      handler.
             *
             *   5. Numeric Exception Handlers Should allow Prefixes
             *
             *      The saved CS:IP value in the NPX environment save area will point at any leading prefixes before an ESC
             *      instruction. On 8086/8088 systems, this value points only at the ESC instruction.
             *
             *   6. Do Not Attempt Undefined 8086/8088 Operations
             *
             *      Instructions like POP CS or MOV CS,op will either cause exception 6 (undefined [invalid] opcode) or perform
             *      a protection setup operation like LIDT on the 80286. Undefined bit encodings for bits 5-3 of the second byte
             *      of POP MEM or PUSH MEM will cause exception 13 on the 80286.
             *
             *   7. Place a Far JMP Instruction at FFFF0H
             *
             *      After reset, CS:IP = F000:FFF0 on the 80286 (versus FFFF:0000 on the 8086/8088). This change was made to allow
             *      sufficient code space to enter protected mode without reloading CS. Placing a far JMP instruction at FFFF0H
             *      will avoid this difference. Note that the BOOTSTRAP option of LOC86 will automatically generate this jump
             *      instruction.
             *
             *   8. Do not Rely on the Value Written by PUSH SP
             *
             *      The 80286 will push a different value on the stack for PUSH SP than the 8086/8088. If the value pushed is
             *      important [and when would it NOT be???], replace PUSH SP instructions with the following three instructions:
             *
             *          PUSH    BP
             *          MOV     BP,SP
             *          XCHG    BP,[BP]
             *
             *      This code functions as the 8086/8088 PUSH SP instruction on the 80286.
             *
             *   9. Do not Shift or Rotate by More than 31 Bits
             *
             *      The 80286 masks all shift/rotate counts to the low 5 bits. This MOD 32 operation limits the count to a maximum
             *      of 31 bits. With this change, the longest shift/rotate instruction is 39 clocks. Without this change, the longest
             *      shift/rotate instruction would be 264 clocks, which delays interrupt response until the instruction completes
             *      execution.
             *
             *  10. Do not Duplicate Prefixes
             *
             *      The 80286 sets an instruction length limit of 10 bytes. The only way to violate this limit is by duplicating
             *      a prefix two or more times before an instruction. Exception 6 occurs if the instruction length limit is violated.
             *      The 8086/8088 has no instruction length limit.
             *
             *  11. Do not Rely on Odd 8086/8088 LOCK Characteristics
             *
             *      The LOCK prefix and its corresponding output signal should only be used to prevent other bus masters from
             *      interrupting a data movement operation. The 80286 will always assert LOCK during an XCHG instruction with memory
             *      (even if the LOCK prefix was not used). LOCK should only be used with the XCHG, MOV, MOVS, INS, and OUTS instructions.
             *
             *      The 80286 LOCK signal will not go active during an instruction prefetch.
             *
             *  12. Do not Single Step External Interrupt Handlers
             *
             *      The priority of the 80286 single step interrupt is different from that of the 8086/8088. This change was made
             *      to prevent an external interrupt from being single-stepped if it occurs while single stepping through a program.
             *      The 80286 single step interrupt has higher priority than any external interrupt.
             *
             *      The 80286 will still single step through an interrupt handler invoked by INT instructions or an instruction
             *      exception.
             *
             *  13. Do not Rely on IDIV Exceptions for Quotients of 80H or 8000H
             *
             *      The 80286 can generate the largest negative number as a quotient for IDIV instructions. The 8086 will instead
             *      cause exception O.
             *
             *  14. Do not Rely on NMI Interrupting NMI Handlers
             *
             *      After an NMI is recognized, the NMI input and processor extension limit error interrupt is masked until the
             *      first IRET instruction is executed.
             *
             *  15. The NPX error signal does not pass through an interrupt controller (an 8087 INT signal does). Any interrupt
             *      controller-oriented instructions for the 8087 may have to be deleted.
             *
             *  16. If any real-mode program relies on address space wrap-around (e.g., FFF0:0400=0000:0300), then external hardware
             *      should be used to force the upper 4 addresses to zero during real mode.
             *
             *  17. Do not use I/O ports 00F8-00FFH. These are reserved for controlling 80287 and future processor extensions.
             *
             * @this {X86CPU}
             */
            X86CPU.prototype.initProcessor = function()
            {
                this.PS_SET = X86.PS_SET_8086;
                this.PS_DIRECT = X86.PS_DIRECT_8086;
                this.PS_CLEAR_RM = X86.PS.IOPL.MASK | X86.PS.NT;
            
                this.OPFLAG_NOINTR_8086 = X86.OPFLAG.NOINTR;
                this.nShiftCountMask = 0xff;            // on an 8086/8088, all shift counts are used as-is
            
                this.cycleCounts = (this.model == X86.MODEL_80386? X86CPU.CYCLES_80386 : (this.model == X86.MODEL_80286? X86CPU.CYCLES_80286 : X86CPU.CYCLES_8088));
            
                this.aOps     = X86.aOps;
                this.aOpGrp4b = X86.aOpGrp4b;
                this.aOpGrp4w = X86.aOpGrp4w;
                this.aOpGrp6  = X86.aOpGrp6Real;        // setProtMode() will ensure that aOpGrp6 is switched
            
                if (this.model >= X86.MODEL_80186) {
                    /*
                     * I don't go out of my way to make 80186/80188 cycle times accurate, since I'm not aware of any
                     * IBM PC models that used those processors; beyond the 8086, my next priorities are the 80286 and
                     * 80386, but I might revisit the 80186 someday.
                     *
                     * Instruction handlers that contain "hard-coded" 80286 cycle times include: opINSb, opINSw, opOUTSb,
                     * opOUTSw, opENTER, and opLEAVE.
                     */
                    this.aOps = X86.aOps.slice();       // make copies of aOps and others before modifying them
                    this.aOpGrp4b = X86.aOpGrp4b.slice();
                    this.aOpGrp4w = X86.aOpGrp4w.slice();
                    this.nShiftCountMask = 0x1f;        // on newer processors, all shift counts are MOD 32
                    this.aOps[0x0F]                 = X86.opInvalid;
                    this.aOps[X86.OPCODE.PUSHA]     = X86.opPUSHA;      // 0x60
                    this.aOps[X86.OPCODE.POPA]      = X86.opPOPA;       // 0x61
                    this.aOps[X86.OPCODE.BOUND]     = X86.opBOUND;      // 0x62
                    this.aOps[X86.OPCODE.ARPL]      = X86.opInvalid;    // 0x63
                    this.aOps[X86.OPCODE.FS]        = X86.opInvalid;    // 0x64
                    this.aOps[X86.OPCODE.GS]        = X86.opInvalid;    // 0x65
                    this.aOps[X86.OPCODE.OS]        = X86.opInvalid;    // 0x66
                    this.aOps[X86.OPCODE.AS]        = X86.opInvalid;    // 0x67
                    this.aOps[X86.OPCODE.PUSHN]     = X86.opPUSHn;      // 0x68
                    this.aOps[X86.OPCODE.IMULN]     = X86.opIMULn;      // 0x69
                    this.aOps[X86.OPCODE.PUSH8]     = X86.opPUSH8;      // 0x6A
                    this.aOps[X86.OPCODE.IMUL8]     = X86.opIMUL8;      // 0x6B
                    this.aOps[X86.OPCODE.INSB]      = X86.opINSb;       // 0x6C
                    this.aOps[X86.OPCODE.INSW]      = X86.opINSw;       // 0x6D
                    this.aOps[X86.OPCODE.OUTSB]     = X86.opOUTSb;      // 0x6E
                    this.aOps[X86.OPCODE.OUTSW]     = X86.opOUTSw;      // 0x6F
                    this.aOps[0xC0]                 = X86.opGRP2bn;     // 0xC0
                    this.aOps[0xC1]                 = X86.opGRP2wn;     // 0xC1
                    this.aOps[X86.OPCODE.ENTER]     = X86.opENTER;      // 0xC8
                    this.aOps[X86.OPCODE.LEAVE]     = X86.opLEAVE;      // 0xC9
                    this.aOps[0xF1]                 = X86.opINT1;       // 0xF1
                    this.aOpGrp4b[0x07]             = X86.fnGRPInvalid;
                    this.aOpGrp4w[0x07]             = X86.fnGRPInvalid;
            
                    if (this.model >= X86.MODEL_80286) {
            
                        this.PS_SET = X86.PS.BIT1;      // on the 80286, only BIT1 of Processor Status (flags) is always set
                        this.PS_DIRECT |= X86.PS.IOPL.MASK | X86.PS.NT;
            
                        this.OPFLAG_NOINTR_8086 = 0;    // used with instructions that should *not* set NOINTR on an 80286 (eg, non-SS segment loads)
            
                        this.aOps[0x0F] = X86.op0F;
                        this.aOps0F = X86.aOps0F.slice();
                        for (var i = 0; i < this.aOps0F.length; i++) {
                            if (!this.aOps0F[i]) this.aOps0F[i] = X86.opUndefined;
                        }
                        this.aOps[X86.OPCODE.PUSHSP] = X86.opPUSHSP;    // 0x54
                        this.aOps[X86.OPCODE.ARPL]   = X86.opARPL;      // 0x63
            
                        if (I386 && this.model >= X86.MODEL_80386) {
                            var bOpcode;
                            /*
                             * TODO: Determine if the Nested Task (PS.NT) flag should really be cleared in real-mode on an 80386
                             * (we already know based on the OS/2 CPU test discussed in setPS() that it can't be set in real-mode
                             * on an 80286); for now, we assume that it should remain clear on all CPUs, to avoid any unexpected
                             * nested-task weirdness in real-mode.
                             */
                            this.PS_CLEAR_RM = X86.PS.NT;
                            this.aOps[X86.OPCODE.FS] = X86.opFS;        // 0x64
                            this.aOps[X86.OPCODE.GS] = X86.opGS;        // 0x65
                            this.aOps[X86.OPCODE.OS] = X86.opOS;        // 0x66
                            this.aOps[X86.OPCODE.AS] = X86.opAS;        // 0x67
                            for (bOpcode in X86.aOps0F386) {
                                this.aOps0F[+bOpcode] = X86.aOps0F386[bOpcode];
                            }
                        }
                    }
                }
            };
            
            /**
             * reset()
             *
             * @this {X86CPU}
             */
            X86CPU.prototype.reset = function()
            {
                if (this.aFlags.fRunning) this.stopCPU();
                this.resetRegs();
                this.resetCycles();
                this.clearError();      // clear any fatal error/exception that setError() may have flagged
                if (SAMPLER) this.iSampleNext = this.iSampleFreq = this.iSampleSkip = 0;
            };
            
            /**
             * resetRegs()
             *
             * According to "The 8086 Book", p.7-5, a RESET signal initializes the following registers:
             *
             *      PS          =   0x0000 (which has the important side-effect of disabling interrupts and traps)
             *      IP          =   0x0000
             *      CS          =   0xFFFF
             *      DS/ES/SS    =   0x0000
             *
             * It is silent as to whether the remaining registers are initialized to any particular values.
             *
             * According to the "80286 and 80287 Programmer's Reference Manual", these 80286 registers are reset:
             *
             *      PS          =   0x0002
             *      MSW         =   0xFFF0
             *      IP          =   0xFFF0
             *      CS Selector =   0xF000      DS/ES/SS Selector =   0x0000
             *      CS Base     = 0xFF0000      DS/ES/SS Base     = 0x000000        IDT Base  = 0x000000
             *      CS Limit    =   0xFFFF      DS/ES/SS Limit    =   0xFFFF        IDT Limit =   0x03FF
             *
             * And from the "INTEL 80386 PROGRAMMER'S REFERENCE MANUAL 1986", section 10.1:
             *
             *      The contents of EAX depend upon the results of the power-up self test. The self-test may be requested
             *      externally by assertion of BUSY# at the end of RESET. The EAX register holds zero if the 80386 passed
             *      the test. A nonzero value in EAX after self-test indicates that the particular 80386 unit is faulty.
             *      If the self-test is not requested, the contents of EAX after RESET is undefined.
             *
             *      DX holds a component identifier and revision number after RESET as Figure 10-1 illustrates. DH contains
             *      3, which indicates an 80386 component. DL contains a unique identifier of the revision level.
             *
             *      EFLAGS      =   0x00000002
             *      IP          =   0x0000FFF0
             *      CS selector =   0xF000 (base of 0xFFFF0000 and limit of 0xFFFF)
             *      DS selector =   0x0000
             *      ES selector =   0x0000
             *      SS selector =   0x0000
             *      FS selector =   0x0000
             *      GS selector =   0x0000
             *      IDTR        =   base of 0 and limit of 0x3FF
             *
             * All other 80386 registers are undefined after a reset (ie, Intel did not document how or if they are set).
             *
             * We've elected to set DX to 0x0304 on a reset, which is consistent with a 80386-C0, since we have no desire to
             * try to emulate all the bugs in older (eg, B1) steppings -- at least not initially.  We leave stepping-accurate
             * emulation for another day.  It's also known that the B1 (and possibly B0) reported 0x0303 in DX, and that
             * the D0 stepping reported 0x0305; beyond that, it's not known exactly what revision numbers Intel used for all
             * 80386 revisions.
             *
             * We define some additional "registers", such as regLIP, which mirrors the linear address corresponding to
             * CS:IP (the address of the next opcode byte).  In fact, regLIP functions as our internal IP register, so any
             * code that needs the real IP must call getIP().  This, in turn, means that whenever CS or IP must be modified,
             * regLIP must be recalculated, so you must use either setCSIP(), which takes both an offset and a segment,
             * or setIP(), whichever is appropriate; in unusual cases where only segCS is changing (eg, undocumented 8086
             * opcodes), use setCS().
             *
             * Similarly, regLSP mirrors the linear address corresponding to SS:SP, and therefore you must rely on getSP()
             * to read the current SP, and setSP() and setSS() to update SP and SS.
             *
             * The other segment registers, such as segDS and segES, have similar getters and setters, but they do not mirror
             * any segment:offset values in the same way that regLIP mirrors CS:IP, or that regLSP mirrors SS:SP.
             *
             * @this {X86CPU}
             */
            X86CPU.prototype.resetRegs = function()
            {
                this.regEAX = 0;
                this.regEBX = 0;
                this.regECX = 0;
                this.regEDX = 0;
                this.regESP = 0;            // this isn't needed in a 16-bit environment, but is required for I386
                this.regEBP = 0;
                this.regESI = 0;
                this.regEDI = 0;
            
                /*
                 * The following are internal "registers" used to capture intermediate values inside selected helper
                 * functions and use them if they've been modified (or are known to change); for example, the MUL and DIV
                 * instructions perform calculations that must be propagated to specific registers (eg, AX and/or DX), which
                 * the ModRM decoder functions don't know about.  We initialize them here mainly for documentation purposes.
                 */
                this.fMDSet = false;        // regMDHi and/or regMDLo are invalid unless fMDSet is true
                this.regMDLo = this.regMDHi = 0;
                this.regXX = 0;             // internal register for segment register and control register moves
            
                /*
                 * Another internal "register" we occasionally need is an interim copy of bModRM, set inside selected opcode
                 * handlers so that the helper function can have access to the instruction's bModRM without resorting to a
                 * closure (which, in the Chrome V8 engine, for example, may cause constant recompilation).
                 */
                this.bModRM = 0;
            
                /*
                 * NOTE: Even though the 8086 doesn't have CR0 (aka MSW) and IDTR, we initialize them for ALL CPUs, so
                 * that functions like X86.fnINT() can use the same code for both.  The 8086/8088 have no direct way
                 * of accessing or changing them, so this is an implementation detail those processors are unaware of.
                 */
                this.regCR0 = X86.CR0.MSW.ON;
                this.addrIDT = 0; this.addrIDTLimit = 0x03FF;
                this.regPS = this.nIOPL = 0;        // these should be set before the first setPS() call
            
                /*
                 * Define all the result registers that can be used to "cache" arithmetic and logical flags.
                 *
                 * In addition, setPS() will initialize resultType, which keeps track of which flags are cached,
                 * and resultSize, which maintains the size of the last result; initially, no flags are cached.
                 */
                this.resultDst = this.resultSrc = this.resultArith = this.resultLogic = 0;
            
                /*
                 * This is set by fnFault() and reset (to -1) by resetRegs() and opIRET(); its initial purpose is to
                 * "help" fnFault() determine when a nested fault should be converted into either a double-fault (DF_FAULT)
                 * or a triple-fault (ie, a processor reset).
                 */
                this.nFault = -1;
            
                /*
                 * Segment registers used to be defined as separate variables (eg, regCS and regCS0 stored the segment
                 * number and base linear address, respectively), but segment registers are now defined as X86Seg objects.
                 */
                this.segCS     = new X86Seg(this, X86Seg.ID.CODE,  "CS");
                this.segDS     = new X86Seg(this, X86Seg.ID.DATA,  "DS");
                this.segES     = new X86Seg(this, X86Seg.ID.DATA,  "ES");
                this.segSS     = new X86Seg(this, X86Seg.ID.STACK, "SS");
                this.setSP(0);
                this.setSS(0);
            
                if (I386 && this.model >= X86.MODEL_80386) {
                    this.regEDX = 0x0304;           // Intel errata sheets indicate this is what an 80386-C0 reported
                    this.regCR0 = X86.CR0.ET;       // formerly MSW
                    this.regCR1 = 0;                // reserved
                    this.regCR2 = 0;                // page fault linear address (PFLA)
                    this.regCR3 = 0;                // page directory base register (PDBR)
                    this.aRegDR = new Array(8);     // Debug Registers DR0-DR7
                    this.aRegTR = new Array(8);     // Test Registers TR0-TR7
                    this.segFS = new X86Seg(this, X86Seg.ID.DATA,  "FS");
                    this.segGS = new X86Seg(this, X86Seg.ID.DATA,  "GS");
                }
            
                this.segNULL = new X86Seg(this, X86Seg.ID.NULL,  "NULL");
            
                /*
                 * The next few initializations mirror what we must do prior to each instruction (ie, inside the stepCPU() function);
                 * note that opPrefixes, along with segData and segStack, are reset only after we've executed a non-prefix instruction.
                 */
                this.segData = this.segDS;
                this.segStack = this.segSS;
                this.opFlags = this.opPrefixes = 0;
                this.regEA = this.regEAWrite = X86.ADDR_INVALID;
            
                /*
                 * intFlags contains some internal states we use to indicate whether a hardware interrupt (INTFLAG.INTR) or
                 * Trap software interrupt (INTR.TRAP) has been requested, as well as when we're in a "HLT" state (INTFLAG.HALT)
                 * that requires us to wait for a hardware interrupt (INTFLAG.INTR) before continuing execution.
                 *
                 * intFlags must be cleared only by checkINTR(), whereas opFlags must be cleared prior to every CPU operation.
                 */
                this.intFlags = X86.INTFLAG.NONE;
            
                this.setCSIP(0, 0xffff);    // this should be called before the first setPS() call
            
                if (!I386) this.resetSizes();
            
                if (BACKTRACK) {
                    /*
                     * Initialize the backtrack indexes for all registers to zero.  And while, yes, it IS possible
                     * for raw data to flow through segment registers as well, it's not common enough in real-mode
                     * (and too difficult in protected-mode) to merit the overhead.  Ditto for SP, which can't really
                     * be considered a general-purpose register.
                     *
                     * Every time getByte() is called, btMemLo is filled with the matching backtrack info; similarly,
                     * every time getWord() is called, btMemLo and btMemHi are filled with the matching backtrack info
                     * for the low and high bytes, respectively.
                     */
                    this.backTrack = {
                        btiAL:      0,
                        btiAH:      0,
                        btiBL:      0,
                        btiBH:      0,
                        btiCL:      0,
                        btiCH:      0,
                        btiDL:      0,
                        btiDH:      0,
                        btiBPLo:    0,
                        btiBPHi:    0,
                        btiSILo:    0,
                        btiSIHi:    0,
                        btiDILo:    0,
                        btiDIHi:    0,
                        btiMemLo:   0,
                        btiMemHi:   0,
                        btiEALo:    0,
                        btiEAHi:    0,
                        btiIO:      0
                    };
                }
            
                /*
                 * Assorted 80286-specific registers.  The GDTR and IDTR registers are stored as the following pieces:
                 *
                 *      GDTR:   addrGDT (24 bits) and addrGDTLimit (24 bits)
                 *      IDTR:   addrIDT (24 bits) and addrIDTLimit (24 bits)
                 *
                 * while the LDTR and TR are stored as special segment registers: segLDT and segTSS.
                 *
                 * So, yes, our GDTR and IDTR "registers" differ from other segment registers in that we do NOT record
                 * the 16-bit limit specified by the LGDT or LIDT instructions; instead, we immediately calculate the limiting
                 * address, and record that instead.
                 *
                 * In addition to different CS:IP reset values, the CS base address must be set to the top of the 16Mb
                 * address space rather than the top of the first 1Mb (which is why the MODEL_5170 ROM must be addressable
                 * at both 0x0F0000 and 0xFF0000; see the ROM component's "alias" parameter).
                 */
                if (this.model >= X86.MODEL_80286) {
                    /*
                     * TODO: Verify what the 80286 actually sets addrGDT and addrGDTLimit to on reset (or if it leaves them alone).
                     */
                    this.addrGDT = 0; this.addrGDTLimit = 0xffff;                   // GDTR
                    this.segLDT = new X86Seg(this, X86Seg.ID.LDT,   "LDT", true);   // LDTR
                    this.segTSS = new X86Seg(this, X86Seg.ID.TSS,   "TSS", true);   // TR
                    this.segVER = new X86Seg(this, X86Seg.ID.OTHER, "VER", true);   // a scratch segment register for VERR and VERW instructions
                    this.setCSIP(0xfff0, 0xf000);                   // on an 80286 or 80386, the default CS:IP is 0xF000:0xFFF0 instead of 0xFFFF:0x0000
                    this.setCSBase(0xffff0000|0);                   // on an 80286 or 80386, all CS base address bits above bit 15 must be set
                }
            
                /*
                 * This resets the Processor Status flags (regPS), along with all the internal "result registers";
                 * we've taken care to ensure that both segCS.cpl and nIOPL are initialized before this first setPS() call.
                 */
                this.setPS(0);
            
                /*
                 * Now that all the segment registers have been created, it's safe to set the current addressing mode.
                 */
                this.setProtMode();
            };
            
            /**
             * setAddrSize(size)
             *
             * This is used by opcodes that require a particular ADDRESS size, which we enforce by
             * internally simulating an ADDRESS size override, if needed.
             *
             * @this {X86CPU}
             * @param {number} size (2 for 2-byte/16-bit operands, or 4 for 4-byte/32-bit operands)
             */
            X86CPU.prototype.setAddrSize = function(size)
            {
                if (this.addrSize != size) {
                    this.opPrefixes |= X86.OPFLAG.ADDRSIZE;
                    this.addrSize = size;
                    this.addrMask = (size == 2? 0xffff : (0xffffffff|0));
                    this.updateAddrSize();
                }
            };
            
            /**
             * updateAddrSize()
             *
             * Select the appropriate ModRM dispatch tables, based on the current ADDRESS size (addrSize), which
             * is based foremost on segCS.addrSize, but can also be overridden by an ADDRESS size instruction prefix.
             *
             * @this {X86CPU}
             */
            X86CPU.prototype.updateAddrSize = function()
            {
                if (!I386) {
                    this.getAddr = this.getShort;
                    this.aOpModRegByte = X86ModB.aOpModReg;
                    this.aOpModMemByte = X86ModB.aOpModMem;
                    this.aOpModGrpByte = X86ModB.aOpModGrp;
                    this.aOpModRegWord = X86ModW.aOpModReg;
                    this.aOpModMemWord = X86ModW.aOpModMem;
                    this.aOpModGrpWord = X86ModW.aOpModGrp;
                } else {
                    if (this.addrSize == 2) {
                        this.getAddr = this.getShort;
                        this.aOpModRegByte = X86ModB16.aOpModReg;
                        this.aOpModMemByte = X86ModB16.aOpModMem;
                        this.aOpModGrpByte = X86ModB16.aOpModGrp;
                        this.aOpModRegWord = X86ModW16.aOpModReg;
                        this.aOpModMemWord = X86ModW16.aOpModMem;
                        this.aOpModGrpWord = X86ModW16.aOpModGrp;
                    } else {
                        this.getAddr = this.getLong;
                        this.aOpModRegByte = X86ModB32.aOpModReg;
                        this.aOpModMemByte = X86ModB32.aOpModMem;
                        this.aOpModGrpByte = X86ModB32.aOpModGrp;
                        this.aOpModRegWord = X86ModW32.aOpModReg;
                        this.aOpModMemWord = X86ModW32.aOpModMem;
                        this.aOpModGrpWord = X86ModW32.aOpModGrp;
                    }
                }
            };
            
            /**
             * setDataSize(size)
             *
             * This is used by opcodes that require a particular OPERAND size, which we enforce by internally
             * simulating an OPERAND size override, if needed.
             *
             * @this {X86CPU}
             * @param {number} size (2 for 2-byte/16-bit operands, or 4 for 4-byte/32-bit operands)
             */
            X86CPU.prototype.setDataSize = function(size)
            {
                if (this.dataSize != size) {
                    this.opPrefixes |= X86.OPFLAG.DATASIZE;
                    this.dataSize = size;
                    this.dataMask = (size == 2? 0xffff : (0xffffffff|0));
                    this.updateDataSize();
                }
            };
            
            /**
             * updateDataSize()
             *
             * @this {X86CPU}
             */
            X86CPU.prototype.updateDataSize = function()
            {
                if (this.dataSize == 2) {
                    this.dataType = X86.RESULT.WORD;
                    this.getWord = this.getShort;
                    this.setWord = this.setShort;
                } else {
                    this.dataType = X86.RESULT.DWORD;
                    this.getWord = this.getLong;
                    this.setWord = this.setLong;
                }
            };
            
            /**
             * resetSizes()
             *
             * @this {X86CPU}
             */
            X86CPU.prototype.resetSizes = function()
            {
                /*
                 * The following contain the (default) ADDRESS size (2 for 16 bits, 4 for 32 bits), and the corresponding
                 * masks for isolating the (src) bits of an address and clearing the (dst) bits of an address.  Like the
                 * OPERAND size properties, these are reset to their segCS counterparts at the start of every new instruction.
                 */
                this.addrSize = this.segCS.addrSize;
                this.addrMask = this.segCS.addrMask;
            
                /*
                 * It's also worth noting that instructions that implicitly use the stack also rely on STACK size,
                 * which is based on the BIG bit of the last descriptor loaded into SS; use the following segSS properties:
                 *
                 *      segSS.addrSize      (2 or 4)
                 *      segSS.addrMask      (0xffff or 0xffffffff)
                 *
                 * As there is no STACK size instruction prefix override, there's no need to propagate these segSS properties
                 * to separate X86CPU properties, as we do for the OPERAND size and ADDRESS size properties.
                 */
            
                this.updateAddrSize();
            
                /*
                 * The following contain the (default) OPERAND size (2 for 16 bits, 4 for 32 bits), and the corresponding masks
                 * for isolating the (src) bits of an OPERAND and clearing the (dst) bits of an OPERAND.  These are reset to
                 * their segCS counterparts at the start of every new instruction, but are also set here for documentation purposes.
                 */
                this.dataSize = this.segCS.dataSize;
                this.dataMask = this.segCS.dataMask;
            
                this.updateDataSize();
            
                this.opPrefixes &= ~(X86.OPFLAG.ADDRSIZE | X86.OPFLAG.DATASIZE);
            };
            
            /**
             * getChecksum()
             *
             * @this {X86CPU}
             * @return {number} a 32-bit summation of key elements of the current CPU state (used by the CPU checksum code)
             */
            X86CPU.prototype.getChecksum = function()
            {
                var sum = (this.regEAX + this.regEBX + this.regECX + this.regEDX + this.getSP() + this.regEBP + this.regESI + this.regEDI)|0;
                sum = (sum + this.getIP() + this.getCS() + this.getDS() + this.getSS() + this.getES() + this.getPS())|0;
                return sum;
            };
            
            /**
             * addIntNotify(nInt, component, fn)
             *
             * Add an software interrupt notification handler to the CPU's list of such handlers.
             *
             * @this {X86CPU}
             * @param {number} nInt
             * @param {Component} component
             * @param {function(number)} fn is called with the LIP value following the software interrupt
             */
            X86CPU.prototype.addIntNotify = function(nInt, component, fn)
            {
                if (fn !== undefined) {
                    if (this.aIntNotify[nInt] === undefined) {
                        this.aIntNotify[nInt] = [];
                    }
                    this.aIntNotify[nInt].push([component, fn]);
                    if (MAXDEBUG) this.log("addIntNotify(" + str.toHexWord(nInt) + "," + component.id + ")");
                }
            };
            
            /**
             * checkIntNotify(nInt)
             *
             * NOTE: This is called ONLY for "INT N" instructions -- not "INTO" or breakpoint or single-step interrupts
             * or divide exception interrupts, or hardware interrupts, or any simulation of an interrupt (eg, "PUSHF/CALLF").
             *
             * @this {X86CPU}
             * @param {number} nInt
             * @return {boolean} true if software interrupt may proceed, false if software interrupt should be skipped
             */
            X86CPU.prototype.checkIntNotify = function(nInt)
            {
                var aNotify = this.aIntNotify[nInt];
                if (aNotify !== undefined) {
                    for (var i = 0; i < aNotify.length; i++) {
                        if (!aNotify[i][1].call(aNotify[i][0], this.regLIP)) {
                            return false;
                        }
                    }
                }
                /*
                 * The enabling of INT messages is one of the criteria that's also included in the Debugger's checksEnabled()
                 * function, and therefore included in fDebugCheck, so for maximum speed, we check fDebugCheck first.
                 *
                 * NOTE: By wrapping this in MAXDEBUG, we're effectively eliminating the need for any checkIntReturn() calls;
                 * onIntReturn() generates a lot of noise, via dbg.messageIntReturn(), and because there's no way to be be sure
                 * we'll catch the return (or for some interrupts, *whether* they will return), it's safer to disable this
                 * feature unless you really want it.
                 */
                if (DEBUGGER && this.aFlags.fDebugCheck) {
                    if (this.messageEnabled(Messages.INT) && this.dbg.messageInt(nInt, this.regLIP) && MAXDEBUG) {
                        this.addIntReturn(this.regLIP, function(cpu, nCycles) {
                            return function onIntReturn(nLevel) {
                                cpu.dbg.messageIntReturn(nInt, nLevel, cpu.getCycles() - nCycles);
                            };
                        }(this, this.getCycles()));
                    }
                }
                return true;
            };
            
            /**
             * addIntReturn(addr, fn)
             *
             * Add a return notification handler to the CPU's list of such handlers.
             *
             * When fn(n) is called, it's passed a "software interrupt level", which will normally be 0,
             * unless it's a return from a nested software interrupt (eg, return from INT 0x10 Video BIOS
             * call issued inside another INT 0x10 Video BIOS call).
             *
             * Note that the nesting could be due to a completely different software interrupt that
             * another interrupt notification function is intercepting, so use it as an advisory value only.
             *
             * @this {X86CPU}
             * @param {number} addr is a linear address
             * @param {function(number)} fn is an interrupt-return notification function
             */
            X86CPU.prototype.addIntReturn = function(addr, fn)
            {
                if (fn !== undefined) {
                    if (this.aIntReturn[addr] == null) {
                        this.cIntReturn++;
                    }
                    this.aIntReturn[addr] = fn;
                }
            };
            
            /**
             * checkIntReturn(addr)
             *
             * We check for possible "INT n" software interrupt returns in the cases of "IRET" (fnIRET), "RETF 2"
             * (fnRETF) and "JMPF [DWORD]" (fnJMPFdw).
             *
             * "JMPF [DWORD]" is an unfortunate choice that newer versions of DOS (as of at least 3.20, and probably
             * earlier) employed in their INT 0x13 hooks; I would have preferred not making this call for that opcode.
             *
             * It is expected (though not required) that callers will check cIntReturn and avoid calling this function
             * if the count is zero, for maximum performance.
             *
             * @this {X86CPU}
             * @param {number} addr is a linear address
             */
            X86CPU.prototype.checkIntReturn = function(addr)
            {
                var fn = this.aIntReturn[addr];
                if (fn != null) {
                    fn(--this.cIntReturn);
                    delete this.aIntReturn[addr];
                }
            };
            
            /**
             * setProtMode(fProt)
             *
             * Update any opcode handlers that operate significantly differently in real-mode vs. protected-mode, and
             * notify all the segment registers about the mode change as well -- but only those that are "bi-modal"; internal
             * segment registers like segLDT and segTSS do not need to be notified, because they cannot be accessed in real-mode
             * (ie, LLDT, LTR, SLDT, STR are invalid instructions in real-mode, and are among the opcode handlers that we
             * update here).
             *
             * NOTE: Ideally, this function would do its work ONLY on mode *transitions*, but we assume calls to setProtMode()
             * are sufficiently infrequent that it doesn't really matter.
             *
             * @this {X86CPU}
             * @param {boolean} [fProt] (use the current MSW PE bit if not specified)
             */
            X86CPU.prototype.setProtMode = function(fProt)
            {
                if (fProt === undefined) {
                    fProt = !!(this.regCR0 & X86.CR0.MSW.PE);
                }
                if (!fProt != !(this.regCR0 & X86.CR0.MSW.PE) && this.messageEnabled()) {
                    this.printMessage("CPU switching to " + (fProt? "protected" : "real") + "-mode", this.bitsMessage, true);
                }
                this.aOpGrp6 = (fProt? X86.aOpGrp6Prot : X86.aOpGrp6Real);
                this.segCS.updateMode();
                this.segDS.updateMode();
                this.segSS.updateMode();
                this.segES.updateMode();
                if (I386 && this.model >= X86.MODEL_80386) {
                    this.segFS.updateMode();
                    this.segGS.updateMode();
                    this.resetSizes();
                }
            };
            
            /**
             * saveProtMode()
             *
             * Save CPU state related to protected-mode, for save()
             *
             * @this {X86CPU}
             * @return {Array}
             */
            X86CPU.prototype.saveProtMode = function()
            {
                if (this.addrGDT != null) {
                    var a = [
                        this.regCR0,
                        this.addrGDT,
                        this.addrGDTLimit,
                        this.addrIDT,
                        this.addrIDTLimit,
                        this.segLDT.save(),
                        this.segTSS.save(),
                        this.nIOPL
                    ];
                    if (I386) {
                        a.push(this.regCR1);
                        a.push(this.regCR2);
                        a.push(this.regCR3);
                        a.push(this.aRegDR);
                        a.push(this.aRegTR);
                    }
                    return a;
                }
                return null;
            };
            
            /**
             * restoreProtMode()
             *
             * Restore CPU state related to protected-mode, for restore()
             *
             * @this {X86CPU}
             * @param {Array} a
             */
            X86CPU.prototype.restoreProtMode = function(a)
            {
                if (a && a.length) {
                    this.regCR0 = a[0];
                    this.addrGDT = a[1];
                    this.addrGDTLimit = a[2];
                    this.addrIDT = a[3];
                    this.addrIDTLimit = a[4];
                    this.segLDT.restore(a[5]);
                    this.segTSS.restore(a[6]);
                    this.nIOPL = a[7];
                    if (I386 && this.model >= X86.MODEL_80386) {
                        this.regCR1 = a[8];
                        this.regCR2 = a[9];
                        this.regCR3 = a[10];
                        this.aRegDR = a[11];
                        this.aRegTR = a[12];
                    }
                    this.setProtMode();
                }
            };
            
            /**
             * save()
             *
             * This implements save support for the X86 component.
             *
             * UPDATES: The current speed multiplier from getSpeed() is now saved in group #3, so that your speed is preserved.
             *
             * @this {X86CPU}
             * @return {Object|null}
             */
            X86CPU.prototype.save = function()
            {
                var state = new State(this);
                state.set(0, [this.regEAX, this.regEBX, this.regECX, this.regEDX, this.getSP(), this.regEBP, this.regESI, this.regEDI]);
                var a = [this.getIP(), this.segCS.save(), this.segDS.save(), this.segSS.save(), this.segES.save(), this.saveProtMode(), this.getPS()];
                if (I386 && this.model >= X86.MODEL_80386) {
                    a.push(this.segFS.save());
                    a.push(this.segGS.save());
                }
                state.set(1, a);
                state.set(2, [this.segData.sName, this.segStack.sName, this.opFlags, this.opPrefixes, this.intFlags, this.regEA, this.regEAWrite]);
                state.set(3, [0, this.nTotalCycles, this.getSpeed()]);
                state.set(4, this.bus.saveMemory());
                return state.data();
            };
            
            /**
             * restore(data)
             *
             * This implements restore support for the X86 component.
             *
             * @this {X86CPU}
             * @param {Object} data
             * @return {boolean} true if restore successful, false if not
             */
            X86CPU.prototype.restore = function(data)
            {
                var a = data[0];
                this.regEAX = a[0];
                this.regEBX = a[1];
                this.regECX = a[2];
                this.regEDX = a[3];
                var regESP = a[4];
                this.regEBP = a[5];
                this.regESI = a[6];
                this.regEDI = a[7];
            
                a = data[1];
                this.segCS.restore(a[1]);
                this.segDS.restore(a[2]);
                this.segSS.restore(a[3]);
                this.segES.restore(a[4]);
                this.restoreProtMode(a[5]);
                this.setPS(a[6]);
            
                /*
                 * It's important to call setCSIP(), both to ensure that the CPU's linear IP register (regLIP) is updated
                 * properly AND to ensure the CPU's default ADDRESS and OPERAND sizes are set properly.
                 */
                this.setCSIP(a[0], this.segCS.sel);
            
                /*
                 * It's also important to call setSP(), so that the linear SP register (regLSP) will be updated properly;
                 * we also need to call setSS(), to ensure that the lower and upper stack limits are properly initialized.
                 */
                this.setSP(regESP);
                this.setSS(this.segSS.sel);
            
                if (I386 && this.model >= X86.MODEL_80386) {
                    this.segFS.restore(a[7]);
                    this.segGS.restore(a[8]);
                }
            
                a = data[2];
                this.segData  = a[0] != null && this.getSeg(a[0]) || this.segDS;
                this.segStack = a[1] != null && this.getSeg(a[1]) || this.segSS;
                this.opFlags = a[2];
                this.opPrefixes = a[3];
                this.intFlags = a[4];
                this.regEA = a[5];
                this.regEAWrite = a[6];     // save/restore of last EA calculation(s) isn't strictly necessary, but they may be of some interest to, say, the Debugger
            
                a = data[3];                // a[0] was previously nBurstDivisor (no longer used)
                this.nTotalCycles = a[1];
                this.setSpeed(a[2]);        // if we're restoring an old state that doesn't contain a value from getSpeed(), that's OK; setSpeed() checks for an undefined value
                return this.bus.restoreMemory(data[4]);
            };
            
            /**
             * getSeg(sName)
             *
             * @param {string} sName
             * @return {Array}
             */
            X86CPU.prototype.getSeg = function(sName)
            {
                switch(sName) {
                case "CS":
                    return this.segCS;
                case "DS":
                    return this.segDS;
                case "SS":
                    return this.segSS;
                case "ES":
                    return this.segES;
                case "NULL":
                    return this.segNULL;
                default:
                    /*
                     * HACK: We return a fake segment register object in which only the base linear address is valid,
                     * because that's all the caller provided (ie, we must be restoring from an older state).
                     */
                    this.assert(typeof sName == "number");
                    return [0, sName, 0, 0, ""];
                }
            };
            
            /**
             * getCS()
             *
             * @this {X86CPU}
             * @return {number}
             */
            X86CPU.prototype.getCS = function()
            {
                return this.segCS.sel;
            };
            
            /**
             * setCS(sel)
             *
             * NOTE: This is used ONLY by those few undocumented 8086/8088/80186/80188 instructions that "MOV" or "POP" a value
             * into CS, which we assume have the same behavior as any other instruction that moves or pops a segment register
             * (ie, suppresses h/w interrupts for one instruction).  Instructions that "JMP" or "CALL" or "INT" or "IRET" a new
             * value into CS are always accompanied by a new IP value, so they use setCSIP() instead, which does NOT suppress
             * h/w interrupts.
             *
             * @this {X86CPU}
             * @param {number} sel
             */
            X86CPU.prototype.setCS = function(sel)
            {
                var regEIP = this.getIP();
                this.regLIP = (this.segCS.load(sel) + regEIP)|0;
                this.regLIPLimit = (this.segCS.base + this.segCS.limit)|0;
                if (I386) this.resetSizes();
                if (!BUGS_8086) this.opFlags |= this.OPFLAG_NOINTR_8086;
                if (PREFETCH) this.flushPrefetch(this.regLIP);
            };
            
            /**
             * getDS()
             *
             * @this {X86CPU}
             * @return {number}
             */
            X86CPU.prototype.getDS = function()
            {
                return this.segDS.sel;
            };
            
            /**
             * setDS(sel)
             *
             * @this {X86CPU}
             * @param {number} sel
             */
            X86CPU.prototype.setDS = function(sel)
            {
                this.segDS.load(sel);
                if (!BUGS_8086) this.opFlags |= this.OPFLAG_NOINTR_8086;
            };
            
            /**
             * getSS()
             *
             * @this {X86CPU}
             * @return {number}
             */
            X86CPU.prototype.getSS = function()
            {
                return this.segSS.sel;
            };
            
            /**
             * setSS(sel)
             *
             * @this {X86CPU}
             * @param {number} sel
             * @param {boolean} [fInterruptable]
             */
            X86CPU.prototype.setSS = function(sel, fInterruptable)
            {
                var regESP = this.getSP();
                this.regLSP = (this.segSS.load(sel) + regESP)|0;
                if (this.segSS.fExpDown) {
                    this.regLSPLimit = (this.segSS.base + this.segSS.addrMask)|0;
                    this.regLSPLimitLow = (this.segSS.base + this.segSS.limit)|0;
                } else {
                    this.regLSPLimit = (this.segSS.base + this.segSS.limit)|0;
                    this.regLSPLimitLow = this.segSS.base;
                }
                if (!BUGS_8086 && !fInterruptable) this.opFlags |= X86.OPFLAG.NOINTR;
            };
            
            /**
             * getES()
             *
             * @this {X86CPU}
             * @return {number}
             */
            X86CPU.prototype.getES = function()
            {
                return this.segES.sel;
            };
            
            /**
             * setES(sel)
             *
             * @this {X86CPU}
             * @param {number} sel
             */
            X86CPU.prototype.setES = function(sel)
            {
                this.segES.load(sel);
                if (!BUGS_8086) this.opFlags |= this.OPFLAG_NOINTR_8086;
            };
            
            /**
             * getFS()
             *
             * NOTE: segFS is defined for I386 only.
             *
             * @this {X86CPU}
             * @return {number}
             */
            X86CPU.prototype.getFS = function()
            {
                return this.segFS.sel;
            };
            
            /**
             * setFS(sel)
             *
             * NOTE: segFS is defined for I386 only.
             *
             * @this {X86CPU}
             * @param {number} sel
             */
            X86CPU.prototype.setFS = function(sel)
            {
                this.segFS.load(sel);
            };
            
            /**
             * getGS()
             *
             * NOTE: segGS is defined for I386 only.
             *
             * @this {X86CPU}
             * @return {number}
             */
            X86CPU.prototype.getGS = function()
            {
                return this.segGS.sel;
            };
            
            /**
             * setGS(sel)
             *
             * NOTE: segGS is defined for I386 only.
             *
             * @this {X86CPU}
             * @param {number} sel
             */
            X86CPU.prototype.setGS = function(sel)
            {
                this.segGS.load(sel);
            };
            
            /**
             * getIP()
             *
             * @this {X86CPU}
             * @return {number}
             */
            X86CPU.prototype.getIP = function()
            {
                return (this.regLIP - this.segCS.base)|0;
            };
            
            /**
             * setIP(off)
             *
             * With the addition of flushPrefetch(), this function should only be called
             * for non-incremental IP updates; setIP(this.getIP()+1) is no longer appropriate.
             *
             * In fact, for performance reasons, it's preferable to increment regLIP yourself,
             * but you can also call advanceIP() if speed is not important.
             *
             * @this {X86CPU}
             * @param {number} off
             */
            X86CPU.prototype.setIP = function(off)
            {
                this.regLIP = (this.segCS.base + (off & (I386? this.dataMask : 0xffff)))|0;
                if (PREFETCH) this.flushPrefetch(this.regLIP);
            };
            
            /**
             * setCSIP(off, sel, fCall)
             *
             * This function is a little different from the other segment setters, only because it turns out that CS is
             * never set without an accompanying IP (well, except for a few undocumented instructions, like POP CS, which
             * were available ONLY on the 8086/8088/80186/80188; see setCS() for details).
             *
             * And even though this function is called setCSIP(), please note the order of the parameters is IP,CS,
             * which matches the order that CS:IP values are normally stored in memory, allowing us to make calls like this:
             *
             *      this.setCSIP(this.popWord(), this.popWord());
             *
             * @this {X86CPU}
             * @param {number} off
             * @param {number} sel
             * @param {boolean} [fCall] is true if CALLF in progress, false if RETF/IRET in progress, null/undefined otherwise
             * @return {boolean|null} true if a stack switch occurred; the only opcode that really needs to pay attention is opRETFn()
             */
            X86CPU.prototype.setCSIP = function(off, sel, fCall)
            {
                this.segCS.fCall = fCall;
                /*
                 * We break this operation into the following discrete steps (eg, set IP, load CS, and then update IP) so
                 * that segCS.load(sel) has the ability to modify IP when sel refers to a gate (call, interrupt, trap, etc).
                 *
                 * NOTE: regEIP acts merely as a conduit for the IP, if any, that segCS.load() may load; regLIP is still our
                 * internal instruction pointer.  Callers that need the real IP must call getIP().
                 */
                this.regEIP = off;
                var base = this.segCS.load(sel);
                if (base !== X86.ADDR_INVALID) {
                    this.regLIP = (base + (this.regEIP & (I386? this.dataMask : 0xffff)))|0;
                    this.regLIPLimit = (base + this.segCS.limit)|0;
                    if (I386) this.resetSizes();
                    if (PREFETCH) this.flushPrefetch(this.regLIP);
                    return this.segCS.fStackSwitch;
                }
                return null;
            };
            
            /**
             * setCSBase(addr)
             *
             * Since the CPU must maintain regLIP as the sum of the CS base and the current IP, all calls to setBase()
             * for segCS need to go through here.
             *
             * @param {number} addr
             */
            X86CPU.prototype.setCSBase = function(addr)
            {
                var regIP = this.getIP();
                addr = this.segCS.setBase(addr);
                this.regLIP = (addr + regIP)|0;
                this.regLIPLimit = (addr + this.segCS.limit)|0;
            };
            
            /**
             * advanceIP(inc)
             *
             * @this {X86CPU}
             * @param {number} inc (positive)
             */
            X86CPU.prototype.advanceIP = function(inc)
            {
                // DEBUG: this.assert(inc > 0);
            
                this.regLIP = (this.regLIP + inc)|0;
                /*
                 * Properly comparing regLIP to regLIPLimit would normally require coercing both to unsigned
                 * (ie, floating-point) values.  But instead, we do a subtraction, (regLIPLimit - regLIP), and
                 * if the result is negative, we need only be concerned if the signs of both numbers are the same
                 * (ie, the sign of their XOR'ed union is positive).
                 *
                 * TODO: I'm combining the old 8088 address-wrap check with the new segment-limit check,
                 * even though the correct time to do the latter is immediately BEFORE a fetch, not AFTER; eg,
                 * consider the following code:
                 *
                 *      AX=0100 BX=0015 CX=0080 DX=F859 SP=0A62 BP=0A98 SI=0000 DI=0000
                 *      SS=0038[1759E0,0B5F] DS=02E8[0107A0,017F] ES=0970[009700,6949] A20=ON
                 *      CS=02E0[010080,06FB] LD=0028[000000,0000] GD=[11AEE0,4977] ID=[120082,03FF]
                 *      TR=0010 MS=FFF3 PS=3202 V0 D0 I1 T0 S0 Z0 A0 P0 C0
                 *      02E0:06F9 C20400          RET      0004
                 *
                 * After fetching the 3rd byte of the "RET 0004" instruction at CS:06FB, the CPU wants to automatically
                 * advance IP to 06FC, which of course, exceeds the limit, but that doesn't matter unless we actually
                 * fetch a byte from 06FC, which won't happen.  I'm working around this for now by applying a -1
                 * fudge factor to the fault check below.
                 */
                var off = (this.regLIPLimit - this.regLIP)|0;
                if (off < 0 && (this.regLIPLimit ^ this.regLIP) >= 0) {
                    /*
                     * There's no such thing as a GP fault on the 8086/8088, and I'm assuming that, on newer
                     * processors, when the segment limit is set to the maximum, it's OK for IP to wrap.
                     */
                    if (this.model <= X86.MODEL_8088 || this.segCS.limit == this.segCS.addrMask) {
                        this.setIP(this.regLIP - this.segCS.base);
                    } else if (off < -1) {          // fudge factor
                        X86.fnFault.call(this, X86.EXCEPTION.GP_FAULT, 0);
                    }
                }
            };
            
            /**
             * rewindIP(dec)
             *
             * @this {X86CPU}
             * @param {number} dec (negative)
             */
            X86CPU.prototype.rewindIP = function(dec)
            {
                // DEBUG: this.assert(dec < 0);
            
                this.regLIP = (this.regLIP + dec)|0;
                /*
                 * Since rewindIP() is used only for discrete "intra-instruction" IP adjustments, there should be no need
                 * to perform all the same limit checks as advanceIP().
                 */
                if (PREFETCH) this.advancePrefetch(dec);
            };
            
            /**
             * getSP()
             *
             * @this {X86CPU}
             * @return {number}
             */
            X86CPU.prototype.getSP = function()
            {
                if (I386) {
                    // assert(!((this.regLSP - this.segSS.base) & ~this.segSS.addrMask));
                    return (this.regESP & ~this.segSS.addrMask) | (this.regLSP - this.segSS.base);
                }
                return (this.regLSP - this.segSS.base)|0;
            };
            
            /**
             * setSP(off)
             *
             * @this {X86CPU}
             * @param {number} off
             */
            X86CPU.prototype.setSP = function(off)
            {
                if (I386) {
                    this.regESP = off;
                    this.regLSP = (this.segSS.base + (off & this.segSS.addrMask))|0;
                } else {
                    this.regLSP = (this.segSS.base + off)|0;
                }
            };
            
            /**
             * setArithResult(dst, src, value, type, fSubtract)
             *
             * Updates the flags for arithmetic instructions; use setLogicResult() for logical instructions.
             *
             * The type parameter indicates both the size of the result (BYTE, WORD or DWORD) and which of the
             * flags should now be considered "cached" by the new result variables.  If the previous resultType
             * specifies any flags not contained in the new type parameter, then those flags must be immediately
             * calculated and written to the appropriate bit(s) in regPS.
             *
             * The fSubtract parameter is used to indicate a "subtracted" result (eg, CMP, DEC, SUB, SBB); the
             * default assumes an "added" result (eg, ADD, ADC, INC).
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @param {number} value
             * @param {number} type
             * @param {boolean} [fSubtract]
             */
            X86CPU.prototype.setArithResult = function(dst, src, value, type, fSubtract)
            {
                if ((type & X86.RESULT.ALL) != X86.RESULT.ALL && type != this.resultType) {
                    var diff = ((type ^ this.resultType) & this.resultType);
                    if (diff) {
                        if (diff & X86.RESULT.CF) this.getCF();
                        if (diff & X86.RESULT.PF) this.getPF();
                        if (diff & X86.RESULT.AF) this.getAF();
                        if (diff & X86.RESULT.ZF) this.getZF();
                        if (diff & X86.RESULT.SF) this.getSF();
                        if (diff & X86.RESULT.OF) this.getOF();
                    }
                }
                if (!fSubtract) {
                    this.resultDst = dst;
                    this.resultArith = value;
                } else {
                    this.resultDst = value;
                    this.resultArith = dst;
                }
                this.resultSrc = src;
                this.resultLogic = value;
                this.resultType = type;
            };
            
            /**
             * setLogicResult(value, type, carry, overflow)
             *
             * Updates the flags for logical instructions (eg, AND, OR, TEST, XOR); ie, instructions
             * that update PF, ZF, and SF, while clearing CF and OF (although CF and OF can be explicitly
             * set via the carry and overflow parameters as needed).  AF is always considered undefined.
             *
             * TODO: We should observe the behavior of AF on real CPUs, and determine if there is a
             * well-defined behavior, even though none is documented.  Ditto for OF on shift instructions
             * when the shift count > 1.
             *
             * @this {X86CPU}
             * @param {number} value
             * @param {number} type
             * @param {number} [carry]
             * @param {number} [overflow]
             * @return {number} value
             */
            X86CPU.prototype.setLogicResult = function(value, type, carry, overflow)
            {
                this.resultType = type | X86.RESULT.LOGIC;
                this.resultLogic = value;
                if (carry) this.setCF(); else this.clearCF();
                if (overflow) this.setOF(); else this.clearOF();
                return value;
            };
            
            /**
             * setRotateResult(result, carry, size)
             *
             * Used by all rotate instructions (ie, RCL, RCR, ROL, ROR) to update CF and OF.
             *
             * TODO: We should observe the behavior of OF on real CPUs whenever the rotate count > 1,
             * and determine if there is a well-defined behavior, even though none is documented.
             *
             * @this {X86CPU}
             * @param {number} result
             * @param {number} carry
             * @param {number} size
             */
            X86CPU.prototype.setRotateResult = function(result, carry, size)
            {
                if (carry & size) this.setCF(); else this.clearCF();
                if ((result ^ carry) & size) this.setOF(); else this.clearOF();
            };
            
            /**
             * getCarry()
             *
             * @this {X86CPU}
             * @return {number} 0 or 1, depending on whether CF is clear or set
             */
            X86CPU.prototype.getCarry = function()
            {
                return this.getCF()? 1 : 0;
            };
            
            /**
             * getCF()
             *
             * Notes regarding carry following an I386 addition:
             *
             * The following table summarizes bit 31 of dst, src, and result, along with the expected carry:
             *
             *      dst src res carry
             *      --- --- --- -----
             *      0   0   0   0       no
             *      0   0   1   0       no (there must have been a carry out of bit 30, but it was "absorbed")
             *      0   1   0   1       yes (there must have been a carry out of bit 30, but it was NOT "absorbed")
             *      0   1   1   0       no
             *      1   0   0   1       yes (same as the preceding "yes" case)
             *      1   0   1   0       no
             *      1   1   0   1       yes (since the addition of two ones must always produce a carry)
             *      1   1   1   1       yes (since the addition of two ones must always produce a carry)
             *
             * So, we use the following calculation:
             *
             *      (resultDst ^ ((resultDst ^ resultSrc) & (resultSrc ^ resultArith))) & resultType
             *
             * @this {X86CPU}
             * @return {number} 0 or X86.PS.CF
             */
            X86CPU.prototype.getCF = function()
            {
                if (this.resultType & X86.RESULT.CF) {
                    this.regPS &= ~X86.PS.CF;
                    if ((this.resultDst ^ ((this.resultDst ^ this.resultSrc) & (this.resultSrc ^ this.resultArith))) & (this.resultType & X86.RESULT.TYPE)) {
                        this.regPS |= X86.PS.CF;
                    }
                    this.resultType &= ~X86.RESULT.CF;
                }
                return this.regPS & X86.PS.CF;
            };
            
            /**
             * getPF()
             *
             * From http://graphics.stanford.edu/~seander/bithacks.html#ParityParallel:
             *
             *      unsigned int v;  // word value to compute the parity of
             *      v ^= v >> 16;
             *      v ^= v >> 8;
             *      v ^= v >> 4;
             *      v &= 0xf;
             *      return (0x6996 >> v) & 1;
             *
             *      The method above takes around 9 operations, and works for 32-bit words.  It may be optimized to work just on
             *      bytes in 5 operations by removing the two lines immediately following "unsigned int v;".  The method first shifts
             *      and XORs the eight nibbles of the 32-bit value together, leaving the result in the lowest nibble of v.  Next,
             *      the binary number 0110 1001 1001 0110 (0x6996 in hex) is shifted to the right by the value represented in the
             *      lowest nibble of v.  This number is like a miniature 16-bit parity-table indexed by the low four bits in v.
             *      The result has the parity of v in bit 1, which is masked and returned.
             *
             * The x86 parity flag (PF) is based exclusively on the low 8 bits of resultParitySign, and PF must be SET if that byte
             * has EVEN parity; the above calculation yields ODD parity, so we use the conditional operator to invert the result.
             *
             * @this {X86CPU}
             * @return {number} 0 or X86.PS.PF
             */
            X86CPU.prototype.getPF = function()
            {
                if (this.resultType & X86.RESULT.PF) {
                    this.regPS &= ~X86.PS.PF;
                    if ((0x9669 >> ((this.resultLogic ^ (this.resultLogic >> 4)) & 0xf)) & 1) {
                        this.regPS |= X86.PS.PF;
                    }
                    this.resultType &= ~X86.RESULT.PF;
                }
                return this.regPS & X86.PS.PF;
            };
            
            /**
             * getAF()
             *
             * To determine if there's been a carry out of the low 4 bits of an arithmetic operation,
             * we look at all the possible inputs for bit 4, and calculate AF = PS^(D^S):
             *
             *      D   S   A   D^S AF
             *      -   -   -   --- --
             *      0   0   0   0   0
             *      0   0   1   0   1
             *      0   1   0   1   1
             *      0   1   1   1   0
             *      1   0   0   1   1
             *      1   0   1   1   0
             *      1   1   0   0   0
             *      1   1   1   0   1
             *
             * The final calculation looks like:
             *
             *      (resultArith ^ (resultDst ^ resultSrc)) & 0x0010
             *
             * @this {X86CPU}
             * @return {number} 0 or X86.PS.AF
             */
            X86CPU.prototype.getAF = function()
            {
                if (this.resultType & X86.RESULT.AF) {
                    this.regPS &= ~X86.PS.AF;
                    if ((this.resultArith ^ (this.resultDst ^ this.resultSrc)) & 0x0010) {
                        this.regPS |= X86.PS.AF;
                    }
                    this.resultType &= ~X86.RESULT.AF;
                }
                return this.regPS & X86.PS.AF;
            };
            
            /**
             * getZF()
             *
             * @this {X86CPU}
             * @return {number} 0 or X86.PS.ZF
             */
            X86CPU.prototype.getZF = function()
            {
                if (this.resultType & X86.RESULT.ZF) {
                    this.regPS &= ~X86.PS.ZF;
                    if (!(this.resultLogic & (((this.resultType & X86.RESULT.TYPE) - 1) | (this.resultType & X86.RESULT.TYPE)))) {
                        this.regPS |= X86.PS.ZF;
                    }
                    this.resultType &= ~X86.RESULT.ZF;
                }
                return this.regPS & X86.PS.ZF;
            };
            
            /**
             * getSF()
             *
             * @this {X86CPU}
             * @return {number} 0 or X86.PS.SF
             */
            X86CPU.prototype.getSF = function()
            {
                if (this.resultType & X86.RESULT.SF) {
                    this.regPS &= ~X86.PS.SF;
                    if (this.resultLogic & (this.resultType & X86.RESULT.TYPE)) {
                        this.regPS |= X86.PS.SF;
                    }
                    this.resultType &= ~X86.RESULT.SF;
                }
                return this.regPS & X86.PS.SF;
            };
            
            /**
             * getOF()
             *
             * Overflow was originally calculated as:
             *
             *      (resultParitySign ^ resultAuxOverflow ^ (resultParitySign >> 1)) & (resultSize >> 1)
             *
             * but as you can see, that calculation depends on the carry out of the 8/16/32-bit result in
             * resultParitySign, which we don't have access to for 32-bit results.  So we fall-back to the
             * following:
             *
             *      ((resultDst ^ resultArith) & (resultSrc ^ resultArith)) & resultType
             *
             * which you can verify from the following table of sign bits (where x1 is resultDst ^ resultArith,
             * and x2 is resultSrc ^ resultArith):
             *
             *      D   S   A   x1  x2  OF
             *      -   -   -   --  --  --
             *      0   0   0   0   0   0
             *      0   0   1   1   1   1 (adding two positive values yielded a negative value)
             *      0   1   0   0   1   0
             *      0   1   1   1   0   0
             *      1   0   0   1   0   0
             *      1   0   1   0   1   0
             *      1   1   0   1   1   1 (adding two negative values yielded a positive value)
             *      1   1   1   0   0   0
             *
             * @this {X86CPU}
             * @return {number} 0 or X86.PS.OF
             */
            X86CPU.prototype.getOF = function()
            {
                if (this.resultType & X86.RESULT.OF) {
                    this.regPS &= ~X86.PS.OF;
                    if (((this.resultDst ^ this.resultArith) & (this.resultSrc ^ this.resultArith)) & (this.resultType & X86.RESULT.TYPE)) {
                        this.regPS |= X86.PS.OF;
                    }
                    this.resultType &= ~X86.RESULT.OF;
                }
                return this.regPS & X86.PS.OF;
            };
            
            /**
             * getTF()
             *
             * @this {X86CPU}
             * @return {number} 0 or X86.PS.TF
             */
            X86CPU.prototype.getTF = function()
            {
                return (this.regPS & X86.PS.TF);
            };
            
            /**
             * getIF()
             *
             * @this {X86CPU}
             * @return {number} 0 or X86.PS.IF
             */
            X86CPU.prototype.getIF = function()
            {
                return (this.regPS & X86.PS.IF);
            };
            
            /**
             * getDF()
             *
             * @this {X86CPU}
             * @return {number} 0 or X86.PS.DF
             */
            X86CPU.prototype.getDF = function()
            {
                return (this.regPS & X86.PS.DF);
            };
            
            /**
             * clearCF()
             *
             * @this {X86CPU}
             */
            X86CPU.prototype.clearCF = function()
            {
                this.resultType &= ~X86.RESULT.CF;
                this.regPS &= ~X86.PS.CF;
            };
            
            /**
             * clearPF()
             *
             * @this {X86CPU}
             */
            X86CPU.prototype.clearPF = function()
            {
                this.resultType &= ~X86.RESULT.PF;
                this.regPS &= ~X86.PS.PF;
            };
            
            /**
             * clearAF()
             *
             * @this {X86CPU}
             */
            X86CPU.prototype.clearAF = function()
            {
                this.resultType &= ~X86.RESULT.AF;
                this.regPS &= ~X86.PS.AF;
            };
            
            /**
             * clearZF()
             *
             * @this {X86CPU}
             */
            X86CPU.prototype.clearZF = function()
            {
                this.resultType &= ~X86.RESULT.ZF;
                this.regPS &= ~X86.PS.ZF;
            };
            
            /**
             * clearSF()
             *
             * @this {X86CPU}
             */
            X86CPU.prototype.clearSF = function()
            {
                this.resultType &= ~X86.RESULT.SF;
                this.regPS &= ~X86.PS.SF;
            };
            
            /**
             * clearIF()
             *
             * @this {X86CPU}
             */
            X86CPU.prototype.clearIF = function()
            {
                this.regPS &= ~X86.PS.IF;
            };
            
            /**
             * clearDF()
             *
             * @this {X86CPU}
             */
            X86CPU.prototype.clearDF = function()
            {
                this.regPS &= ~X86.PS.DF;
            };
            
            /**
             * clearOF()
             *
             * @this {X86CPU}
             */
            X86CPU.prototype.clearOF = function()
            {
                this.resultType &= ~X86.RESULT.OF;
                this.regPS &= ~X86.PS.OF;
            };
            
            /**
             * setCF()
             *
             * @this {X86CPU}
             */
            X86CPU.prototype.setCF = function()
            {
                this.resultType &= ~X86.RESULT.CF;
                this.regPS |= X86.PS.CF;
            };
            
            /**
             * setPF()
             *
             * @this {X86CPU}
             */
            X86CPU.prototype.setPF = function()
            {
                this.resultType &= ~X86.RESULT.PF;
                this.regPS |= X86.PS.PF;
            };
            
            /**
             * setAF()
             *
             * @this {X86CPU}
             */
            X86CPU.prototype.setAF = function()
            {
                this.resultType &= ~X86.RESULT.AF;
                this.regPS |= X86.PS.AF;
            };
            
            /**
             * setZF()
             *
             * @this {X86CPU}
             */
            X86CPU.prototype.setZF = function()
            {
                this.resultType &= ~X86.RESULT.ZF;
                this.regPS |= X86.PS.ZF;
            };
            
            /**
             * setSF()
             *
             * @this {X86CPU}
             */
            X86CPU.prototype.setSF = function()
            {
                this.resultType &= ~X86.RESULT.SF;
                this.regPS |= X86.PS.SF;
            };
            
            /**
             * setIF()
             *
             * @this {X86CPU}
             */
            X86CPU.prototype.setIF = function()
            {
                this.regPS |= X86.PS.IF;
            };
            
            /**
             * setDF()
             *
             * @this {X86CPU}
             */
            X86CPU.prototype.setDF = function()
            {
                this.regPS |= X86.PS.DF;
            };
            
            /**
             * setOF()
             *
             * @this {X86CPU}
             */
            X86CPU.prototype.setOF = function()
            {
                this.resultType &= ~X86.RESULT.OF;
                this.regPS |= X86.PS.OF;
            };
            
            /**
             * getPS()
             *
             * @this {X86CPU}
             * @return {number}
             */
            X86CPU.prototype.getPS = function()
            {
                return (this.regPS & ~X86.PS_CACHED) | (this.getCF() | this.getPF() | this.getAF() | this.getZF() | this.getSF() | this.getOF());
            };
            
            /**
             * setMSW(w)
             *
             * Factored out of x86op0f.js, since both opLMSW and opLOADALL are capable of setting a new MSW.
             * The caller is responsible for assessing the appropriate cycle cost.
             *
             * @this {X86CPU}
             * @param {number} w
             */
            X86CPU.prototype.setMSW = function(w)
            {
                /*
                 * This instruction is always allowed to set MSW.PE, but it cannot clear MSW.PE once set;
                 * therefore, we always OR the previous value of MSW.PE into the new value before loading.
                 */
                w |= (this.regCR0 & X86.CR0.MSW.PE) | X86.CR0.MSW.ON;
                this.regCR0 = (this.regCR0 & ~X86.CR0.MSW.MASK) | (w & X86.CR0.MSW.MASK);
                /*
                 * Since the 80286 cannot return to real-mode via this instruction, the only transition we
                 * must worry about is to protected-mode.  And there's no harm calling setProtMode() if the
                 * CPU is already in protected-mode; we could certainly optimize out the call in that case,
                 * but the instruction isn't used frequently enough to warrant it.
                 */
                if (this.regCR0 & X86.CR0.MSW.PE) this.setProtMode(true);
            };
            
            /**
             * setPS(regPS)
             *
             * @this {X86CPU}
             * @param {number} regPS
             * @param {number} [cpl]
             */
            X86CPU.prototype.setPS = function(regPS, cpl)
            {
                /*
                 * OS/2 1.0 discriminates between an 80286 and an 80386 based on whether an IRET in real-mode that
                 * pops 0xF000 into the flags is able to set *any* of flag bits 12-15: if it can, then OS/2 declares
                 * the CPU an 80386.
                 *
                 * So, if the CPU is an 80286, we zero incoming bits 12-14 in real-mode (bit 15 is never allowed to
                 * be modified, so there's no need to mask it).  And if the CPU is an 80386, we zero only bit 14 (PS.NT),
                 * allowing the IOPL bits to change; however, that should not affect any real-mode operations, since
                 * segCS.cpl will always be zero, making the IOPL setting irrelevant.
                 *
                 * It's still an open question whether an 80386 should also clear the Nested Task (PS.NT) flag in
                 * real-mode; if not, then initProcessor() should set PS_CLEAR_RM to zero.
                 */
                if (!(this.regCR0 & X86.CR0.MSW.PE)) regPS &= ~this.PS_CLEAR_RM;
            
                /*
                 * There are some cases (eg, an IRET returning to a less privileged code segment) where the CPL
                 * we compare against should come from the outgoing code segment, so if the caller provided it, use it.
                 */
                if (cpl === undefined) cpl = this.segCS.cpl;
            
                /*
                 * Since PS.IOPL and PS.IF are part of PS_DIRECT, we need to take care of any 80286-specific behaviors
                 * before setting the PS_DIRECT bits from the incoming regPS bits.
                 *
                 * Specifically, PS.IOPL is unchanged if CPL > 0, and PS.IF is unchanged if CPL > IOPL.
                 */
                if (!cpl) {
                    this.nIOPL = (regPS & X86.PS.IOPL.MASK) >> X86.PS.IOPL.SHIFT;           // IOPL allowed to change
                } else {
                    regPS = (regPS & ~X86.PS.IOPL.MASK) | (this.regPS & X86.PS.IOPL.MASK);  // IOPL not allowed to change
                }
            
                if (cpl > this.nIOPL) {
                    regPS = (regPS & ~X86.PS.IF) | (this.regPS & X86.PS.IF);                // IF not allowed to change
                }
            
                this.resultType = X86.RESULT.BYTE;
                this.regPS = (this.regPS & ~(this.PS_DIRECT|X86.PS_CACHED)) | (regPS & (this.PS_DIRECT|X86.PS_CACHED)) | this.PS_SET;
            
                if (this.regPS & X86.PS.TF) {
                    this.intFlags |= X86.INTFLAG.TRAP;
                    this.opFlags |= X86.OPFLAG.NOINTR;
                }
            };
            
            /**
             * traceLog(prop, dst, src, flagsIn, flagsOut, resultLo, resultHi)
             *
             * @this {X86CPU}
             * @param {string} prop
             * @param {number} dst
             * @param {number} src
             * @param {number|null} flagsIn
             * @param {number|null} flagsOut
             * @param {number} resultLo
             * @param {number} [resultHi]
             */
            X86CPU.prototype.traceLog = function(prop, dst, src, flagsIn, flagsOut, resultLo, resultHi)
            {
                if (DEBUG && this.dbg) {
                    this.dbg.traceLog(prop, dst, src, flagsIn, flagsOut, resultLo, resultHi);
                }
            };
            
            /**
             * setBinding(sHTMLType, sBinding, control)
             *
             * @this {X86CPU}
             * @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
             * @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "AX")
             * @param {Object} control is the HTML control DOM object (eg, HTMLButtonElement)
             * @return {boolean} true if binding was successful, false if unrecognized binding request
             */
            X86CPU.prototype.setBinding = function(sHTMLType, sBinding, control)
            {
                var fBound = false;
                switch (sBinding) {
                case "EAX":
                case "EBX":
                case "ECX":
                case "EDX":
                case "ESP":
                case "EBP":
                case "ESI":
                case "EDI":
                case "EIP":
                case "AX":
                case "BX":
                case "CX":
                case "DX":
                case "SP":
                case "BP":
                case "SI":
                case "DI":
                case "IP":
                case "PC":      // deprecated as an alias for "IP" (still used by older XML files, like the one at http://tpoindex.github.io/crobots/)
                case "CS":
                case "DS":
                case "SS":
                case "ES":
                case "FS":
                case "GS":
                case "CR0":
                case "CR2":
                case "CR3":
                case "PS":      // this refers to "Processor Status", aka the 16-bit flags register (although DEBUG.COM refers to this as "PC", surprisingly)
                case "C":
                case "P":
                case "A":
                case "Z":
                case "S":
                case "T":
                case "I":
                case "D":
                case "V":
                    this.bindings[sBinding] = control;
                    this.cLiveRegs++;
                    fBound = true;
                    break;
                default:
                    fBound = this.parent.setBinding.call(this, sHTMLType, sBinding, control);
                    break;
                }
                return fBound;
            };
            
            /**
             * probeAddr(addr)
             *
             * Used by the Debugger to probe addresses without risk of triggering a page fault, and by internal
             * functions, like fnFaultMessage(), that also need to avoid triggering faults, since they're not part
             * of standard CPU operation.
             *
             * @this {X86CPU}
             * @param {number} addr is a linear address
             * @return {number|null} byte (8-bit) value at that address, or null if invalid
             */
            X86CPU.prototype.probeAddr = function(addr)
            {
                var block = this.aMemBlocks[(addr & this.nMemMask) >>> this.nBlockShift];
                if (block.type == Memory.TYPE.UNPAGED) {
                    block = this.mapPageBlock(addr, false, true);
                    if (!block) return null;
                }
                return block.readByteDirect(addr & this.nBlockLimit, addr);
            };
            
            /**
             * getByte(addr)
             *
             * Use bus.getByte() for physical addresses, and cpu.getByte() for linear addresses; the latter takes care
             * of paging, cycle counts, and BACKTRACK states, if any.
             *
             * @this {X86CPU}
             * @param {number} addr is a linear address
             * @return {number} byte (8-bit) value at that address
             */
            X86CPU.prototype.getByte = function getByte(addr)
            {
                if (BACKTRACK) this.backTrack.btiMemLo = this.bus.readBackTrack(addr);
                return this.aMemBlocks[(addr & this.nMemMask) >>> this.nBlockShift].readByte(addr & this.nBlockLimit, addr);
            };
            
            /**
             * getShort(addr)
             *
             * Use bus.getShort() for physical addresses, and cpu.getShort() for linear addresses; the latter takes care
             * of paging, cycle counts, and BACKTRACK states, if any.
             *
             * @this {X86CPU}
             * @param {number} addr is a linear address
             * @return {number} word (16-bit) value at that address
             */
            X86CPU.prototype.getShort = function getShort(addr)
            {
                var off = addr & this.nBlockLimit;
                var iBlock = (addr & this.nMemMask) >>> this.nBlockShift;
                /*
                 * On the 8088, it takes 4 cycles to read the additional byte REGARDLESS whether the address is odd or even.
                 * TODO: For the 8086, the penalty is actually "(addr & 0x1) << 2" (4 additional cycles only when the address is odd).
                 */
                this.nStepCycles -= this.cycleCounts.nWordCyclePenalty;
            
                if (BACKTRACK) {
                    this.backTrack.btiMemLo = this.bus.readBackTrack(addr);
                    this.backTrack.btiMemHi = this.bus.readBackTrack(addr + 1);
                }
                if (off < this.nBlockLimit) {
                    return this.aMemBlocks[iBlock].readShort(off, addr);
                }
                return this.aMemBlocks[iBlock].readByte(off, addr) | (this.aMemBlocks[(iBlock + 1) & this.nBlockMask].readByte(0, addr + 1) << 8);
            };
            
            /**
             * getLong(addr)
             *
             * Use bus.getLong() for physical addresses, and cpu.getLong() for linear addresses; the latter takes care
             * of paging, cycle counts, and BACKTRACK states, if any.
             *
             * @this {X86CPU}
             * @param {number} addr is a linear address
             * @return {number} long (32-bit) value at that address
             */
            X86CPU.prototype.getLong = function getLong(addr)
            {
                var off = addr & this.nBlockLimit;
                var iBlock = (addr & this.nMemMask) >>> this.nBlockShift;
                if (BACKTRACK) {
                    this.backTrack.btiMemLo = this.bus.readBackTrack(addr);
                    this.backTrack.btiMemHi = this.bus.readBackTrack(addr + 1);
                }
                if (off < this.nBlockLimit - 2) {
                    return this.aMemBlocks[iBlock].readLong(off, addr);
                }
                var nShift = (off & 0x3) << 3;
                return (this.aMemBlocks[iBlock].readLong(off & ~0x3, addr) >>> nShift) | (this.aMemBlocks[(iBlock + 1) & this.nBlockMask].readLong(0, addr + 3) << (32 - nShift));
            };
            
            /**
             * setByte(addr, b)
             *
             * Use bus.setByte() for physical addresses, and cpu.setByte() for linear addresses; the latter takes care
             * of paging, cycle counts, and BACKTRACK states, if any.
             *
             * @this {X86CPU}
             * @param {number} addr is a linear address
             * @param {number} b is the byte (8-bit) value to write (which we truncate to 8 bits; required by opSTOSb)
             */
            X86CPU.prototype.setByte = function setByte(addr, b)
            {
                if (BACKTRACK) this.bus.writeBackTrack(addr, this.backTrack.btiMemLo);
                this.aMemBlocks[(addr & this.nMemMask) >>> this.nBlockShift].writeByte(addr & this.nBlockLimit, b & 0xff, addr);
            };
            
            /**
             * setShort(addr, w)
             *
             * Use bus.setShort() for physical addresses, and cpu.setShort() for linear addresses; the latter takes care
             * of paging, cycle counts, and BACKTRACK states, if any.
             *
             * @this {X86CPU}
             * @param {number} addr is a linear address
             * @param {number} w is the word (16-bit) value to write (which we truncate to 16 bits to be safe)
             */
            X86CPU.prototype.setShort = function setShort(addr, w)
            {
                var off = addr & this.nBlockLimit;
                var iBlock = (addr & this.nMemMask) >>> this.nBlockShift;
                /*
                 * On the 8088, it takes 4 cycles to write the additional byte REGARDLESS whether the address is odd or even.
                 * TODO: For the 8086, the penalty is actually "(addr & 0x1) << 2" (4 additional cycles only when the address is odd).
                 */
                this.nStepCycles -= this.cycleCounts.nWordCyclePenalty;
            
                if (BACKTRACK) {
                    this.bus.writeBackTrack(addr, this.backTrack.btiMemLo);
                    this.bus.writeBackTrack(addr + 1, this.backTrack.btiMemHi);
                }
                if (off < this.nBlockLimit) {
                    this.aMemBlocks[iBlock].writeShort(off, w & 0xffff, addr);
                    return;
                }
                this.aMemBlocks[iBlock++].writeByte(off, w & 0xff, addr);
                this.aMemBlocks[iBlock & this.nBlockMask].writeByte(0, (w >> 8) & 0xff, addr + 1);
            };
            
            /**
             * setLong(addr, l)
             *
             * Use bus.setLong() for physical addresses, and cpu.setLong() for linear addresses; the latter takes care
             * of paging, cycle counts, and BACKTRACK states, if any.
             *
             * @this {X86CPU}
             * @param {number} addr is a linear address
             * @param {number} l is the long (32-bit) value to write
             */
            X86CPU.prototype.setLong = function setLong(addr, l)
            {
                var off = addr & this.nBlockLimit;
                var iBlock = (addr & this.nMemMask) >>> this.nBlockShift;
                this.nStepCycles -= this.cycleCounts.nWordCyclePenalty;
            
                if (BACKTRACK) {
                    this.bus.writeBackTrack(addr, this.backTrack.btiMemLo);
                    this.bus.writeBackTrack(addr + 1, this.backTrack.btiMemHi);
                }
                if (off < this.nBlockLimit - 2) {
                    this.aMemBlocks[iBlock].writeLong(off, l, addr);
                    return;
                }
                var lPrev, nShift = (off & 0x3) << 3;
                off &= ~0x3;
                lPrev = this.aMemBlocks[iBlock].readLong(off, addr);
                this.aMemBlocks[iBlock].writeLong(off, (lPrev & ~(-1 << nShift)) | (l << nShift), addr);
                iBlock = (iBlock + 1) & this.nBlockMask;
                addr += 3;
                lPrev = this.aMemBlocks[iBlock].readLong(0, addr);
                this.aMemBlocks[iBlock].writeLong(0, (lPrev & (-1 << nShift)) | (l >>> (32 - nShift)), addr);
            };
            
            /**
             * getEAByte(seg, off)
             *
             * @this {X86CPU}
             * @param {X86Seg} seg register (eg, segDS)
             * @param {number} off is a segment-relative offset
             * @return {number} byte (8-bit) value at that address
             */
            X86CPU.prototype.getEAByte = function(seg, off)
            {
                this.segEA = seg;
                this.regEA = seg.checkRead(this.offEA = off, 1);
                if (this.opFlags & X86.OPFLAG.NOREAD) return 0;
                var b = this.getByte(this.regEA);
                if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiMemLo;
                return b;
            };
            
            /**
             * getEAByteData(off)
             *
             * @this {X86CPU}
             * @param {number} off is a segment-relative offset
             * @return {number} byte (8-bit) value at that address
             */
            X86CPU.prototype.getEAByteData = function(off)
            {
                return this.getEAByte(this.segData, off & (I386? this.addrMask : 0xffff));
            };
            
            /**
             * getEAByteStack(off)
             *
             * @this {X86CPU}
             * @param {number} off is a segment-relative offset
             * @return {number} byte (8-bit) value at that address
             */
            X86CPU.prototype.getEAByteStack = function(off)
            {
                return this.getEAByte(this.segStack, off & (I386? this.addrMask : 0xffff));
            };
            
            /**
             * getEAWord(seg, off)
             *
             * @this {X86CPU}
             * @param {X86Seg} seg register (eg, segDS)
             * @param {number} off is a segment-relative offset
             * @return {number} word (16-bit) value at that address
             */
            X86CPU.prototype.getEAWord = function(seg, off)
            {
                this.segEA = seg;
                this.regEA = seg.checkRead(this.offEA = off, (I386? this.dataSize : 2));
                if (this.opFlags & X86.OPFLAG.NOREAD) return 0;
                var w = this.getWord(this.regEA);
                if (BACKTRACK) {
                    this.backTrack.btiEALo = this.backTrack.btiMemLo;
                    this.backTrack.btiEAHi = this.backTrack.btiMemHi;
                }
                return w;
            };
            
            /**
             * getEAWordData(off)
             *
             * @this {X86CPU}
             * @param {number} off is a segment-relative offset
             * @return {number} word (16-bit) value at that address
             */
            X86CPU.prototype.getEAWordData = function(off)
            {
                return this.getEAWord(this.segData, off & (I386? this.addrMask : 0xffff));
            };
            
            /**
             * getEAWordStack(off)
             *
             * @this {X86CPU}
             * @param {number} off is a segment-relative offset
             * @return {number} word (16-bit) value at that address
             */
            X86CPU.prototype.getEAWordStack = function(off)
            {
                return this.getEAWord(this.segStack, off & (I386? this.addrMask : 0xffff));
            };
            
            /**
             * modEAByte(seg, off)
             *
             * @this {X86CPU}
             * @param {X86Seg} seg register (eg, segDS)
             * @param {number} off is a segment-relative offset
             * @return {number} byte (8-bit) value at that address
             */
            X86CPU.prototype.modEAByte = function(seg, off)
            {
                this.segEA = seg;
                this.regEAWrite = this.regEA = seg.checkRead(this.offEA = off, 1);
                if (this.opFlags & X86.OPFLAG.NOREAD) return 0;
                var b = this.getByte(this.regEA);
                if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiMemLo;
                return b;
            };
            
            /**
             * modEAByteData(off)
             *
             * @this {X86CPU}
             * @param {number} off is a segment-relative offset
             * @return {number} byte (8-bit) value at that address
             */
            X86CPU.prototype.modEAByteData = function(off)
            {
                return this.modEAByte(this.segData, off & (I386? this.addrMask : 0xffff));
            };
            
            /**
             * modEAByteStack(off)
             *
             * @this {X86CPU}
             * @param {number} off is a segment-relative offset
             * @return {number} byte (8-bit) value at that address
             */
            X86CPU.prototype.modEAByteStack = function(off)
            {
                return this.modEAByte(this.segStack, off & (I386? this.addrMask : 0xffff));
            };
            
            /**
             * modEAWord(seg, off)
             *
             * @this {X86CPU}
             * @param {X86Seg} seg register (eg, segDS)
             * @param {number} off is a segment-relative offset
             * @return {number} word (16-bit) value at that address
             */
            X86CPU.prototype.modEAWord = function(seg, off)
            {
                this.segEA = seg;
                this.regEAWrite = this.regEA = seg.checkRead(this.offEA = off, (I386? this.dataSize : 2));
                if (this.opFlags & X86.OPFLAG.NOREAD) return 0;
                var w = this.getWord(this.regEA);
                if (BACKTRACK) {
                    this.backTrack.btiEALo = this.backTrack.btiMemLo;
                    this.backTrack.btiEAHi = this.backTrack.btiMemHi;
                }
                return w;
            };
            
            /**
             * modEAWordData(off)
             *
             * @this {X86CPU}
             * @param {number} off is a segment-relative offset
             * @return {number} word (16-bit) value at that address
             */
            X86CPU.prototype.modEAWordData = function(off)
            {
                return this.modEAWord(this.segData, off & (I386? this.addrMask : 0xffff));
            };
            
            /**
             * modEAWordStack(off)
             *
             * @this {X86CPU}
             * @param {number} off is a segment-relative offset
             * @return {number} word (16-bit) value at that address
             */
            X86CPU.prototype.modEAWordStack = function(off)
            {
                return this.modEAWord(this.segStack, off & (I386? this.addrMask : 0xffff));
            };
            
            /**
             * setEAByte(b)
             *
             * @this {X86CPU}
             * @param {number} b is the byte (8-bit) value to write
             */
            X86CPU.prototype.setEAByte = function(b)
            {
                if (this.opFlags & X86.OPFLAG.NOWRITE) return;
                if (BACKTRACK) this.backTrack.btiMemLo = this.backTrack.btiEALo;
                this.setByte(this.segEA.checkWrite(this.offEA, 1), b);
            };
            
            /**
             * setEAWord(w)
             *
             * @this {X86CPU}
             * @param {number} w is the word (16-bit) value to write
             */
            X86CPU.prototype.setEAWord = function(w)
            {
                if (this.opFlags & X86.OPFLAG.NOWRITE) return;
                if (BACKTRACK) {
                    this.backTrack.btiMemLo = this.backTrack.btiEALo;
                    this.backTrack.btiMemHi = this.backTrack.btiEAHi;
                }
                if (!I386) {
                    this.setShort(this.segEA.checkWrite(this.offEA, 2), w);
                } else {
                    this.setWord(this.segEA.checkWrite(this.offEA, this.dataSize), w);
                }
            };
            
            /**
             * getSOByte(seg, off)
             *
             * This is like getEAByte(), but it does NOT update regEA.
             *
             * @this {X86CPU}
             * @param {X86Seg} seg register (eg, segDS)
             * @param {number} off is a segment-relative offset
             * @return {number} byte (8-bit) value at that address
             */
            X86CPU.prototype.getSOByte = function(seg, off)
             {
                return this.getByte(seg.checkRead(off, 1));
            };
            
            /**
             * getSOWord(seg, off)
             *
             * This is like getEAWord(), but it does NOT update regEA.
             *
             * @this {X86CPU}
             * @param {X86Seg} seg register (eg, segDS)
             * @param {number} off is a segment-relative offset
             * @return {number} word (16-bit) value at that address
             */
            X86CPU.prototype.getSOWord = function(seg, off)
            {
                if (!I386) {
                    return this.getShort(seg.checkRead(off, 2));
                } else {
                    return this.getWord(seg.checkRead(off, this.dataSize));
                }
            };
            
            /**
             * setSOByte(seg, off, b)
             *
             * This is like setEAByte(), but it does NOT update regEAWrite.
             *
             * @this {X86CPU}
             * @param {X86Seg} seg register (eg, segDS)
             * @param {number} off is a segment-relative offset
             * @param {number} b is the byte (8-bit) value to write
             */
            X86CPU.prototype.setSOByte = function(seg, off, b)
            {
                this.setByte(seg.checkWrite(off, 1), b);
            };
            
            /**
             * setSOWord(seg, off, w)
             *
             * This is like setEAWord(), but it does NOT update regEAWrite.
             *
             * @this {X86CPU}
             * @param {X86Seg} seg register (eg, segDS)
             * @param {number} off is a segment-relative offset
             * @param {number} w is the word (16-bit) value to write
             */
            X86CPU.prototype.setSOWord = function(seg, off, w)
            {
                if (!I386) {
                    this.setShort(seg.checkWrite(off, 2), w);
                } else {
                    this.setWord(seg.checkWrite(off, this.dataSize), w);
                }
            };
            
            /**
             * getBytePrefetch(addr)
             *
             * Return the next byte from the prefetch queue, prefetching it now if necessary.
             *
             * @this {X86CPU}
             * @param {number} addr is a linear address
             * @return {number} byte (8-bit) value at that address
             */
            X86CPU.prototype.getBytePrefetch = function(addr)
            {
                if (this.opFlags & X86.OPFLAG.NOREAD) return 0;
                var b;
                if (!this.cbPrefetchQueued) {
                    if (MAXDEBUG) {
                        this.printMessage("  getBytePrefetch[" + this.iPrefetchTail + "]: filling");
                        this.assert(addr == this.addrPrefetchHead, "X86CPU.getBytePrefetch(" + str.toHex(addr) + "): invalid head address (" + str.toHex(this.addrPrefetchHead) + ")");
                        this.assert(this.iPrefetchTail == this.iPrefetchHead, "X86CPU.getBytePrefetch(" + str.toHex(addr) + "): head (" + this.iPrefetchHead + ") does not match tail (" + this.iPrefetchTail + ")");
                    }
                    this.fillPrefetch(1);
                    this.nBusCycles += 4;
                    /*
                     * This code effectively inlines this.fillPrefetch(1), but without queueing the byte, so it's an optimization
                     * with side-effects we may not want, and in any case, while it seemed to improve Safari's performance slightly,
                     * it did nothing for the oddball Chrome performance I'm seeing with PREFETCH enabled.
                     *
                     *      b = this.aMemBlocks[(addr & this.nMemMask) >>> this.nBlockShift].readByte(addr & this.nBlockLimit, addr);
                     *      this.nBusCycles += 4;
                     *      this.cbPrefetchValid = 0;
                     *      this.addrPrefetchHead = (addr + 1) & this.nMemMask;
                     *      return b;
                     */
                }
                b = this.aPrefetch[this.iPrefetchTail] & 0xff;
                if (MAXDEBUG) {
                    this.printMessage("  getBytePrefetch[" + this.iPrefetchTail + "]: " + str.toHex(addr) + ":" + str.toHexByte(b));
                    this.assert(addr == (this.aPrefetch[this.iPrefetchTail] >> 8), "X86CPU.getBytePrefetch(" + str.toHex(addr) + "): invalid tail address (" + str.toHex(this.aPrefetch[this.iPrefetchTail] >> 8) + ")");
                }
                this.iPrefetchTail = (this.iPrefetchTail + 1) & X86CPU.PREFETCH.MASK;
                this.cbPrefetchQueued--;
                return b;
            };
            
            /**
             * getShortPrefetch(addr)
             *
             * Return the next short from the prefetch queue.  There are 3 cases to consider:
             *
             *  1) Both bytes have been prefetched; no bytes need be fetched from memory
             *  2) Only the low byte has been prefetched; the high byte must be fetched from memory
             *  3) Neither byte has been prefetched; both bytes must be fetched from memory
             *
             * However, since we want to mirror getBytePrefetch's behavior of fetching all bytes through
             * the prefetch queue, we're taking the easy way out and simply calling getBytePrefetch() twice.
             *
             * @this {X86CPU}
             * @param {number} addr is a linear address
             * @return {number} short (16-bit) value at that address
             */
            X86CPU.prototype.getShortPrefetch = function(addr)
            {
                return this.getBytePrefetch(addr) | (this.getBytePrefetch(addr + 1) << 8);
            };
            
            /**
             * getLongPrefetch(addr)
             *
             * Return the next long from the prefetch queue.  Similar to getShortPrefetch(), we take the
             * easy way out and call getShortPrefetch() twice.
             *
             * @this {X86CPU}
             * @param {number} addr is a linear address
             * @return {number} long (32-bit) value at that address
             */
            X86CPU.prototype.getLongPrefetch = function(addr)
            {
                return this.getShortPrefetch(addr) | (this.getShortPrefetch(addr + 2) << 16);
            };
            
            /**
             * getWordPrefetch(addr)
             *
             * @this {X86CPU}
             * @param {number} addr is a linear address
             * @return {number} short (16-bit) or long (32-bit value as appropriate
             */
            X86CPU.prototype.getWordPrefetch = function(addr)
            {
                return (I386 && this.dataSize == 4? this.getLongPrefetch(addr) : this.getShortPrefetch(addr));
            };
            
            /**
             * fillPrefetch(n)
             *
             * Fill the prefetch queue with n instruction bytes.
             *
             * @this {X86CPU}
             * @param {number} n is the number of instruction bytes to fetch
             */
            X86CPU.prototype.fillPrefetch = function(n)
            {
                while (n-- > 0 && this.cbPrefetchQueued < X86CPU.PREFETCH.QUEUE) {
                    var addr = this.addrPrefetchHead;
                    var b = this.aMemBlocks[(addr & this.nMemMask) >>> this.nBlockShift].readByte(addr & this.nBlockLimit, addr);
                    this.aPrefetch[this.iPrefetchHead] = b | (addr << 8);
                    if (MAXDEBUG) this.printMessage("     fillPrefetch[" + this.iPrefetchHead + "]: " + str.toHex(addr) + ":" + str.toHexByte(b));
                    this.addrPrefetchHead = (addr + 1) & this.nMemMask;
                    this.iPrefetchHead = (this.iPrefetchHead + 1) & X86CPU.PREFETCH.MASK;
                    this.cbPrefetchQueued++;
                    /*
                     * We could probably allow cbPrefetchValid to grow as large as X86CPU.PREFETCH.ARRAY-1, but I'm not
                     * sure there's any advantage to that; certainly the tiny values we expect to see from advancePrefetch()
                     * wouldn't justify that.
                     */
                    if (this.cbPrefetchValid < X86CPU.PREFETCH.QUEUE) this.cbPrefetchValid++;
                }
            };
            
            /**
             * flushPrefetch(addr)
             *
             * Empty the prefetch queue.
             *
             * @this {X86CPU}
             * @param {number} addr is a linear address of the current program counter (regLIP)
             */
            X86CPU.prototype.flushPrefetch = function(addr)
            {
                this.addrPrefetchHead = addr;
                this.iPrefetchTail = this.iPrefetchHead = this.cbPrefetchQueued = this.cbPrefetchValid = 0;
                if (MAXDEBUG && addr !== undefined) this.printMessage("    flushPrefetch[-]: " + str.toHex(addr));
            };
            
            /**
             * advancePrefetch(inc)
             *
             * Advance the prefetch queue tail.  This is used, for example, in cases where the IP is rewound
             * to the start of a repeated string instruction (ie, a string instruction with a REP and possibly
             * other prefixes).
             *
             * If a negative increment takes us beyond what's still valid in the prefetch queue, or if a positive
             * increment takes us beyond what's been queued so far, then we simply flush the queue.
             *
             * @this {X86CPU}
             * @param {number} inc (may be +/-)
             */
            X86CPU.prototype.advancePrefetch = function(inc)
            {
                if (inc < 0 && this.cbPrefetchQueued - inc <= this.cbPrefetchValid || inc > 0 && inc < this.cbPrefetchQueued) {
                    this.iPrefetchTail = (this.iPrefetchTail + inc) & X86CPU.PREFETCH.MASK;
                    this.cbPrefetchQueued -= inc;
                } else {
                    this.flushPrefetch(this.regLIP);
                    if (MAXDEBUG) this.printMessage("advancePrefetch(" + inc + "): flushed");
                }
            };
            
            /**
             * getIPByte()
             *
             * @this {X86CPU}
             * @return {number} byte at the current IP; IP advanced by 1
             */
            X86CPU.prototype.getIPByte = function()
            {
                var b = (PREFETCH? this.getBytePrefetch(this.regLIP) : this.getByte(this.regLIP));
                if (BACKTRACK) this.bus.updateBackTrackCode(this.regLIP, this.backTrack.btiMemLo);
                this.advanceIP(1);
                return b;
            };
            
            /**
             * getIPShort()
             *
             * @this {X86CPU}
             * @return {number} short at the current IP; IP advanced by 2
             */
            X86CPU.prototype.getIPShort = function()
            {
                var w = (PREFETCH? this.getShortPrefetch(this.regLIP) : this.getShort(this.regLIP));
                if (BACKTRACK) {
                    this.bus.updateBackTrackCode(this.regLIP, this.backTrack.btiMemLo);
                    this.bus.updateBackTrackCode(this.regLIP + 1, this.backTrack.btiMemHi);
                }
                this.advanceIP(2);
                return w;
            };
            
            /**
             * getIPLong()
             *
             * @this {X86CPU}
             * @return {number} long at the current IP; IP advanced by 4
             */
            X86CPU.prototype.getIPLong = function()
            {
                var l = (PREFETCH? this.getLongPrefetch(this.regLIP) : this.getLong(this.regLIP));
                if (BACKTRACK) {
                    this.bus.updateBackTrackCode(this.regLIP, this.backTrack.btiMemLo);
                    this.bus.updateBackTrackCode(this.regLIP + 1, this.backTrack.btiMemHi);
                }
                this.advanceIP(4);
                return l;
            };
            
            /**
             * getIPAddr()
             *
             * @this {X86CPU}
             * @return {number} word at the current IP; IP advanced by 2 or 4, depending on address size
             */
            X86CPU.prototype.getIPAddr = function()
            {
                /*
                 * TODO: Add PREFETCH support to this function
                 */
                var w = this.getAddr(this.regLIP);
                if (BACKTRACK) {
                    this.bus.updateBackTrackCode(this.regLIP, this.backTrack.btiMemLo);
                    this.bus.updateBackTrackCode(this.regLIP + 1, this.backTrack.btiMemHi);
                }
                this.advanceIP(this.addrSize);
                return w;
            };
            
            /**
             * getIPWord()
             *
             * @this {X86CPU}
             * @return {number} word at the current IP; IP advanced by 2 or 4, depending on operand size
             */
            X86CPU.prototype.getIPWord = function()
            {
                var w = (PREFETCH? this.getWordPrefetch(this.regLIP) : this.getWord(this.regLIP));
                if (BACKTRACK) {
                    this.bus.updateBackTrackCode(this.regLIP, this.backTrack.btiMemLo);
                    this.bus.updateBackTrackCode(this.regLIP + 1, this.backTrack.btiMemHi);
                }
                this.advanceIP(this.dataSize);
                return w;
            };
            
            /**
             * getIPDisp()
             *
             * @this {X86CPU}
             * @return {number} sign-extended value from the byte at the current IP; IP advanced by 1
             */
            X86CPU.prototype.getIPDisp = function()
            {
                var w = ((PREFETCH? this.getBytePrefetch(this.regLIP) : this.getByte(this.regLIP)) << 24) >> 24;
                if (BACKTRACK) this.bus.updateBackTrackCode(this.regLIP, this.backTrack.btiMemLo);
                this.advanceIP(1);
                return w;
            };
            
            /**
             * getSIBAddr(mod)
             *
             * @this {X86CPU}
             * @param {number} mod
             * @return {number}
             */
            X86CPU.prototype.getSIBAddr = function(mod)
            {
                var b = PREFETCH? this.getBytePrefetch(this.regLIP) : this.getByte(this.regLIP);
                if (BACKTRACK) this.bus.updateBackTrackCode(this.regLIP, this.backTrack.btiMemLo);
                this.advanceIP(1);
                return X86ModSIB.aOpModSIB[b].call(this, mod);
            };
            
            /**
             * popWord()
             *
             * @this {X86CPU}
             * @return {number} word popped from the current SP; SP increased by 2 or 4
             */
            X86CPU.prototype.popWord = function()
            {
                var w = this.getWord(this.regLSP);
                this.regLSP = (this.regLSP + (I386? this.dataSize : 2))|0;
                /*
                 * Properly comparing regLSP to regLSPLimit would normally require coercing both to unsigned
                 * (ie, floating-point) values.  But instead, we do a subtraction, (regLSPLimit - regLSP), and
                 * if the result is negative, we need only be concerned if the signs of both numbers are the same
                 * (ie, the sign of their XOR'ed union is positive).
                 *
                 * TODO: I'm combining the old 8088 address-wrap check with the new segment-limit check,
                 * even though the correct time to do the latter is immediately BEFORE the fetch, not AFTER;
                 * I'm working around this for now by applying a -1 fudge factor to the fault check below.
                 */
                var off = ((this.regLSPLimit - this.regLSP)|0);
                if (off < 0 && (this.regLSPLimit ^ this.regLSP) >= 0) {
                    /*
                     * There's no such thing as an SS fault on the 8086/8088, and I'm assuming that, on newer
                     * processors, when the stack segment limit is set to the maximum, it's OK for the stack to wrap.
                     */
                    if (this.model <= X86.MODEL_8088 || !this.segSS.fExpDown && this.segSS.limit == this.segSS.addrMask || this.segSS.fExpDown && !this.segSS.limit) {
                        this.setSP((this.regLSP - this.segSS.base) & this.segSS.addrMask);
                    } else if (off < -1) {          // fudge factor
                        X86.fnFault.call(this, X86.EXCEPTION.SS_FAULT, 0);
                    }
                }
                return w;
            };
            
            /**
             * pushWord(w)
             *
             * @this {X86CPU}
             * @param {number} w is the word (16-bit) value to push at current SP; SP decreased by 2 or 4
             */
            X86CPU.prototype.pushWord = function(w)
            {
                /*
                 * This assertion is no longer valid, now that we've fixed opPUSH8() to use getIPDisp() instead of getIPByte(),
                 * thus sign-extending the byte as appropriate.  And since sign-extension necessarily affects the entire 32-bit
                 * value, this assertion could fail when dataMask is 16 bits.
                 *
                 *      this.assert((w & this.dataMask) == w);
                 *
                 * setWord() calls setShort() or setLong() as appropriate, and setShort() truncates incoming values, so the fact
                 * that any incoming signed values will not be truncated to 16 bits should not be a concern.
                 */
                this.regLSP = (this.regLSP - (I386? this.dataSize : 2))|0;
                /*
                 * Properly comparing regLSP to regLSPLimitLow would normally require coercing both to unsigned
                 * (ie, floating-point) values.  But instead, we do a subtraction, (regLSP - regLSPLimitLow), and
                 * if the result is negative, we need only be concerned if the signs of both numbers are the same
                 * (ie, the sign of their XOR'ed union is positive).
                 */
                if (((this.regLSP - this.regLSPLimitLow)|0) < 0 && (this.regLSPLimitLow ^ this.regLSP) >= 0) {
                    /*
                     * There's no such thing as an SS fault on the 8086/8088, and I'm assuming that, on newer
                     * processors, when the stack segment limit is set to the maximum, it's OK for the stack to wrap.
                     */
                    if (this.model <= X86.MODEL_8088 || !this.segSS.fExpDown && this.segSS.limit == this.segSS.addrMask || this.segSS.fExpDown && !this.segSS.limit) {
                        this.setSP((this.regLSP - this.segSS.base) & this.segSS.addrMask);
                    } else {
                        X86.fnFault.call(this, X86.EXCEPTION.SS_FAULT, 0);
                    }
                }
                this.setWord(this.regLSP, w);
            };
            
            /**
             * setDMA(fActive)
             *
             * This is called by the ChipSet component to update DMA status.
             *
             * @this {X86CPU}
             * @param {boolean} fActive is true to set INTFLAG.DMA, false to clear
             *
             X86CPU.prototype.setDMA = function(fActive)
             {
                if (this.chipset) {
                    if (fActive) {
                        this.intFlags |= X86.INTFLAG.DMA;
                    } else {
                        this.intFlags &= ~X86.INTFLAG.DMA;
                    }
                }
            };
             */
            
            /**
             * checkINTR()
             *
             * This must only be called when intFlags (containing the simulated INTFLAG.INTR signal) is known to be set.
             * Note that it's perfectly possible that between the time updateINTR(true) was called and we request the
             * interrupt vector number below, the interrupt could have been cleared or masked, in which case getIRRVector()
             * will return -1 and we'll simply clear INTFLAG.INTR.
             *
             * intFlags has been overloaded with the INTFLAG.TRAP bit as well, since the acknowledgment of h/w interrupts
             * and the Trap flag are similar; they must both honor the NOINTR suppression flag, and stepCPU() shouldn't
             * have to check multiple variables when deciding whether to simulate an interrupt.
             *
             * This function also includes a check for the new async INTFLAG.DMA flag, which is triggered by a ChipSet call
             * to setDMA().  This DMA flag actually has nothing to do with interrupts; it's simply an expedient way to
             * piggy-back on the CPU's execution logic, to help drive async DMA requests.
             *
             * Originally, DMA requests (eg, FDC or HDC I/O operations) were all handled synchronously, since no actual
             * I/O was required to satisfy the request; from the CPU's perspective, this meant DMA operations were virtually
             * instantaneous.  However, with the introduction of remote disk connections, some actual I/O may now be required;
             * in practice, this means that the FIRST byte requested as part of a DMA operation may require a callback to
             * finish, while all remaining bytes will be retrieved during subsequent checkINTR() calls -- unless of course
             * additional remote I/O operations are required to complete the DMA operation.
             *
             * As a result, the CPU will run slightly slower while an async DMA request is in progress, but the slowdown
             * should be negligible.  One downside is that this slowdown will be in effect for the entire duration of the
             * I/O (ie, even while we're waiting for the remote I/O to finish), so the ChipSet component should avoid
             * calling setDMA() whenever possible.
             *
             * TODO: While comparing SYMDEB tracing in both PCjs and VMware, I noticed that after single-stepping ANY
             * segment-load instruction, SYMDEB would get control immediately after that instruction in VMware, whereas
             * I delay acknowledgment of the Trap flag until the *following* instruction, so in PCjs, SYMDEB doesn't get
             * control until the following instruction.  I think PCjs behavior is correct, at least for SS.
             *
             * ERRATA: Early revisions of the 8086/8088 failed to suppress hardware interrupts (and possibly also Trap
             * acknowledgements) after an SS load, but Intel corrected the problem at some point; however, I don't know when
             * that change was made or which IBM PC models may have been affected, if any.  TODO: More research required.
             *
             * WARNING: There is also a priority consideration here.  On the 8086/8088, hardware interrupts have higher
             * priority than Trap interrupts (which is why the code below is written the way it is).  A potentially
             * undesirable side-effect is that a hardware interrupt handler could end up being single-stepped if an
             * external interrupt occurs immediately after the Trap flag is set.  This is why some 8086 debuggers temporarily
             * mask all hardware interrupts during a single-step operation (although that doesn't help with NMIs generated
             * by a coprocessor).  As of the 80286, those priorities were inverted, giving the Trap interrupt higher priority
             * than external interrupts.
             *
             * TODO: Determine the priorities for the 80186.
             *
             * @this {X86CPU}
             * @return {boolean} true if h/w interrupt (or trap) has just been acknowledged, false if not
             */
            X86CPU.prototype.checkINTR = function()
            {
                // DEBUG: this.assert(this.intFlags);
            
                if (!(this.opFlags & X86.OPFLAG.NOINTR)) {
                    /*
                     * As discussed above, the 8086/8088 give hardware interrupts higher priority than the TRAP interrupt,
                     * whereas the 80286 and up give TRAPs higher priority.
                     */
                    var iPriority = (this.model < X86.MODEL_80286? 0 : 1);
                    for (var cPriorities = 0; cPriorities < 2; cPriorities++) {
                        switch(iPriority) {
                        case 0:
                            if ((this.intFlags & X86.INTFLAG.INTR) && (this.regPS & X86.PS.IF)) {
                                var nIDT = this.chipset.getIRRVector();
                                if (nIDT >= -1) {
                                    this.intFlags &= ~X86.INTFLAG.INTR;
                                    if (nIDT >= 0) {
                                        this.intFlags &= ~X86.INTFLAG.HALT;
                                        X86.fnINT.call(this, nIDT, null, 11);
                                        return true;
                                    }
                                }
                            }
                            break;
                        case 1:
                            if ((this.intFlags & X86.INTFLAG.TRAP)) {
                                this.intFlags &= ~X86.INTFLAG.TRAP;
                                X86.fnINT.call(this, X86.EXCEPTION.TRAP, null, 11);
                                return true;
                            }
                            break;
                        }
                        iPriority = 1 - iPriority;
                    }
                }
                if (this.intFlags & X86.INTFLAG.DMA) {
                    if (!this.chipset.checkDMA()) {
                        this.intFlags &= ~X86.INTFLAG.DMA;
                    }
                }
                return false;
            };
            
            /**
             * updateINTR(fRaise)
             *
             * This is called by the ChipSet component whenever a h/w interrupt needs to be simulated.
             * This is how the PIC component simulates raising the INTFLAG.INTR signal.  We will honor the request
             * only if we have a reference back to the ChipSet component.  The CPU will then "respond" by calling
             * checkINTR() and request the corresponding interrupt vector from the ChipSet.
             *
             * @this {X86CPU}
             * @param {boolean} fRaise is true to raise INTFLAG.INTR, false to lower
             */
            X86CPU.prototype.updateINTR = function(fRaise)
            {
                if (this.chipset) {
                    if (fRaise) {
                        this.intFlags |= X86.INTFLAG.INTR;
                    } else {
                        this.intFlags &= ~X86.INTFLAG.INTR;
                    }
                }
            };
            
            /**
             * delayINTR()
             *
             * This is called by the ChipSet component whenever the IMR register is being unmasked, to avoid
             * interrupts being simulated too quickly. This works around a problem in the ROM BIOS "KBD_RESET"
             * (F000:E688) function, which is called with interrupts enabled by the "TST8" (F000:E30D) code.
             *
             * "KBD_RESET" appears to be written with the assumption that CLI is in effect, because it issues an
             * STI immediately after unmasking the keyboard IRQ.  And normally, the STI would delay INTFLAG.INTR
             * long enough to allow AH to be set to 0. But if interrupts are already enabled, an interrupt could
             * theoretically occur before the STI.  And since AH isn't initialized until after the STI, such an
             * interrupt would be missed.
             *
             * I'm assuming this never happens in practice because the PIC isn't that fast.  But for us to
             * guarantee that, we need to provide this function to the ChipSet component.
             *
             * @this {X86CPU}
             */
            X86CPU.prototype.delayINTR = function()
            {
                this.opFlags |= X86.OPFLAG.NOINTR;
            };
            
            /**
             * updateReg(sReg, nValue)
             *
             * This function helps updateStatus() by massaging the register names and values according to
             * CPU type before passing the call to displayValue(); in the "old days", updateStatus() called
             * displayValue() directly (although then it was called displayReg()).
             *
             * @this {X86CPU}
             * @param {string} sReg
             * @param {number} nValue
             */
            X86CPU.prototype.updateReg = function(sReg, nValue)
            {
                var cch = 4;
                if (sReg.length == 1) {
                    cch = 1;
                    nValue = nValue? 1 : 0;
                }
                if (this.model < 80386) {
                    if (sReg.length > 2) {
                        sReg = sReg.substr(1, 2);
                    }
                } else {
                    if (sReg == "PS" || sReg.length > 2) {
                        cch = 8;
                    }
                }
                this.displayValue(sReg, nValue, cch);
            };
            
            /**
             * updateStatus()
             *
             * This provides periodic Control Panel updates (eg, a few times per second; see STATUS_UPDATES_PER_SECOND).
             * this is where we take care of any DOM updates (eg, register values) while the CPU is running.
             *
             * Any high-frequency updates should be performed in updateVideo(), which should avoid DOM updates, since updateVideo()
             * can be called up to 60 times per second (see VIDEO_UPDATES_PER_SECOND).
             *
             * @this {X86CPU}
             * @param {boolean} [fForce] (true will display registers even if the CPU is running and "live" registers are not enabled)
             */
            X86CPU.prototype.updateStatus = function(fForce)
            {
                if (this.cLiveRegs) {
                    if (fForce || !this.aFlags.fRunning || this.aFlags.fDisplayLiveRegs) {
                        this.updateReg("EAX", this.regEAX);
                        this.updateReg("EBX", this.regEBX);
                        this.updateReg("ECX", this.regECX);
                        this.updateReg("EDX", this.regEDX);
                        this.updateReg("ESP", this.getSP());
                        this.updateReg("EBP", this.regEBP);
                        this.updateReg("ESI", this.regESI);
                        this.updateReg("EDI", this.regEDI);
                        this.updateReg("CS", this.getCS());
                        this.updateReg("DS", this.getDS());
                        this.updateReg("SS", this.getSS());
                        this.updateReg("ES", this.getES());
                        this.updateReg("EIP", this.getIP());
                        var regPS = this.getPS();
                        this.updateReg("PS", regPS);
                        this.updateReg("V", (regPS & X86.PS.OF));
                        this.updateReg("D", (regPS & X86.PS.DF));
                        this.updateReg("I", (regPS & X86.PS.IF));
                        this.updateReg("T", (regPS & X86.PS.TF));
                        this.updateReg("S", (regPS & X86.PS.SF));
                        this.updateReg("Z", (regPS & X86.PS.ZF));
                        this.updateReg("A", (regPS & X86.PS.AF));
                        this.updateReg("P", (regPS & X86.PS.PF));
                        this.updateReg("C", (regPS & X86.PS.CF));
                        if (this.model == X86.MODEL_80386) {
                            this.updateReg("FS", this.getFS());
                            this.updateReg("GS", this.getGS());
                            this.updateReg("CR0", this.regCR0);
                            this.updateReg("CR2", this.regCR2);
                            this.updateReg("CR3", this.regCR3);
                        }
                    }
                }
            
                var controlSpeed = this.bindings["speed"];
                if (controlSpeed) controlSpeed.textContent = this.getSpeedCurrent();
            
                this.parent.updateStatus.call(this, fForce);
            };
            
            /**
             * stepCPU(nMinCycles)
             *
             * NOTE: Single-stepping should not be confused with the Trap flag; single-stepping is a Debugger
             * operation that's completely independent of Trap status.  The CPU can go in and out of Trap mode,
             * in and out of h/w interrupt service routines (ISRs), etc, but from the Debugger's perspective,
             * they're all one continuous stream of instructions that can be stepped or run at will.  Moreover,
             * stepping vs. running should never change the behavior of the simulation.
             *
             * Similarly, the Debugger's execution breakpoints have no involvement with the x86 breakpoint instruction
             * (0xCC); the Debugger monitors changes to the regLIP register to implement its own execution breakpoints.
             *
             * As a result, the Debugger's complete independence means you can run other 8086/8088 debuggers
             * (eg, DEBUG) inside the simulation without interference; you can even "debug" them with the Debugger.
             *
             * @this {X86CPU}
             * @param {number} nMinCycles (0 implies a single-step, and therefore breakpoints should be ignored)
             * @return {number} of cycles executed; 0 indicates a pre-execution condition (ie, an execution breakpoint
             * was hit), -1 indicates a post-execution condition (eg, a read or write breakpoint was hit), and a positive
             * number indicates successful completion of that many cycles (which should always be >= nMinCycles).
             */
            X86CPU.prototype.stepCPU = function(nMinCycles)
            {
                /*
                 * The Debugger uses fComplete to determine if the instruction completed (true) or was interrupted
                 * by a breakpoint or some other exceptional condition (false).  NOTE: this does NOT include JavaScript
                 * exceptions, which stepCPU() expects the caller to catch using its own exception handler.
                 *
                 * The CPU relies on the use of stopCPU() rather than fComplete, because the CPU never single-steps
                 * (ie, nMinCycles is always some large number), whereas the Debugger does.  And conversely, when the
                 * Debugger is single-stepping (even when performing multiple single-steps), fRunning is never set,
                 * so stopCPU() would have no effect as far as the Debugger is concerned.
                 */
                this.aFlags.fComplete = true;
            
                /*
                 * fDebugCheck is true if we need to "check" every instruction with the Debugger.
                 */
                var fDebugCheck = this.aFlags.fDebugCheck = (DEBUGGER && this.dbg && this.dbg.checksEnabled());
            
                /*
                 * nDebugState is checked only when fDebugCheck is true, and its sole purpose is to tell the first call
                 * to checkInstruction() that it can skip breakpoint checks, and that will be true ONLY when fStarting is
                 * true OR nMinCycles is zero (the latter means the Debugger is single-stepping).
                 *
                 * Once we snap fStarting, we clear it, because technically, we've moved beyond "starting" and have
                 * officially "started" now.
                 */
                var nDebugState = (!nMinCycles)? -1 : (this.aFlags.fStarting? 0 : 1);
                this.aFlags.fStarting = false;
            
                /*
                 * We move the minimum cycle count to nStepCycles (the number of cycles left to step), so that other
                 * functions have the ability to force that number to zero (eg, stopCPU()), and thus we don't have to check
                 * any other criteria to determine whether we should continue stepping or not.
                 */
                this.nBurstCycles = this.nStepCycles = nMinCycles;
            
                /*
                 * NOTE: Even though runCPU() calls updateAllTimers(), we need an additional call here if we're being
                 * called from the Debugger, so that any single-stepping will update the timers as well.
                 */
                if (this.chipset && !nMinCycles) this.chipset.updateAllTimers();
            
                /*
                 * Let's also suppress h/w interrupts whenever the Debugger is single-stepping an instruction; I'm loathe
                 * to allow Debugger interactions to affect the behavior of the virtual machine in ANY way, but I'm making
                 * this small concession to avoid the occasional and sometimes unexpected Debugger command that ends up
                 * stepping into a hardware interrupt service routine (ISR).
                 *
                 * Note that this is similar to the problem discussed in checkINTR() regarding the priority of external h/w
                 * interrupts vs. Trap interrupts, but they require different solutions, because our Debugger operates
                 * independently of the CPU.
                 *
                 * One exception I make here is when you've asked the Debugger to display PIC messages, the idea being that
                 * if you're watching the PIC that closely, then you want to hardware interrupts to occur regardless.
                 */
                if (!nMinCycles && !this.messageEnabled(Messages.PIC)) this.opFlags |= X86.OPFLAG.NOINTR;
            
                do {
                    var opPrefixes = this.opFlags & X86.OPFLAG_PREFIXES;
                    if (opPrefixes) {
                        this.opPrefixes |= opPrefixes;
                    } else {
                        /*
                         * opLIP is used, among other things, to help string instructions rewind to the first prefix
                         * byte whenever the instruction needs to be repeated.  Repeating string instructions in this
                         * manner (essentially restarting them) is a bit heavy-handed, but ultimately it's more compatible,
                         * because it allows hardware interrupts (as well as Trap processing and Debugger single-stepping)
                         * to occur at any point during the string operation, without any additional effort.
                         *
                         * NOTE: The way we restart string instructions actually fixes an 8086/8088 flaw, because string
                         * instructions with multiple prefixes (eg, a REP and a segment override) would not be restarted
                         * properly following a hardware interrupt.  The recommended workarounds were to either turn off
                         * interrupts or to follow the string instruction with a LOOPNZ back to the first prefix byte.
                         * To emulate the flawed behavior, turn on BUGS_8086.
                         */
                        this.opLIP = this.regLIP;
                        this.segData = this.segDS;
                        this.segStack = this.segSS;
                        this.regEA = this.regEAWrite = X86.ADDR_INVALID;
            
                        if (I386 && (this.opPrefixes & (X86.OPFLAG.ADDRSIZE | X86.OPFLAG.DATASIZE))) {
                            this.resetSizes();
                        }
            
                        this.opPrefixes = this.opFlags & X86.OPFLAG.REPEAT;
            
                        if (this.intFlags) {
                            if (this.checkINTR()) {
                                if (!nMinCycles) {
                                    this.assert(DEBUGGER);  // nMinCycles of zero should be generated ONLY by the Debugger
                                    if (DEBUGGER) {
                                        this.println("interrupt dispatched");
                                        this.opFlags = 0;
                                        break;
                                    }
                                }
                            }
                            if (this.intFlags & X86.INTFLAG.HALT) {
                                /*
                                 * As discussed in opHLT(), the CPU is never REALLY halted by a HLT instruction; instead,
                                 * opHLT() sets X86.INTFLAG.HALT, signalling to us that we're free to end the current burst
                                 * AND that we should not execute any more instructions until checkINTR() indicates a hardware
                                 * interrupt has been requested.
                                 *
                                 * One downside to this approach is that it *might* appear to the careful observer that we
                                 * executed a full complement of instructions during bursts where X86.INTFLAG.HALT was set,
                                 * when in fact we did not.  However, the steady advance of the overall cycle count, and thus
                                 * the steady series calls to stepCPU(), is needed to ensure that timer updates, video updates,
                                 * etc, all continue to occur at the expected rates.
                                 *
                                 * If necessary, we can add another bookkeeping cycle counter (eg, one that keeps tracks of the
                                 * number of cycles during which we did not actually execute any instructions).
                                 */
                                this.nStepCycles = 0;
                                this.opFlags = 0;
                                break;
                            }
                        }
                    }
            
                    if (DEBUGGER && fDebugCheck) {
                        if (this.dbg.checkInstruction(this.regLIP, nDebugState)) {
                            this.stopCPU();
                            break;
                        }
                        nDebugState = 1;
                    }
            
                    /*
                     * SAMPLER:
                     *
                    if (SAMPLER) {
                        if (++this.iSampleFreq >= this.nSampleFreq) {
                            this.iSampleFreq = 0;
                            if (this.iSampleSkip < this.nSampleSkip) {
                                this.iSampleSkip++;
                            } else {
                                if (this.iSampleNext == this.nSamples) {
                                    this.println("sample buffer full");
                                    this.stopCPU();
                                    break;
                                }
                                var t = this.regLIP + this.getCycles();
                                var n = this.aSamples[this.iSampleNext];
                                if (n !== -1) {
                                    if (n !== t) {
                                        this.println("sample deviation at index " + this.iSampleNext + ": current LIP=" + str.toHex(this.regLIP));
                                        this.stopCPU();
                                        break;
                                    }
                                } else {
                                    this.aSamples[this.iSampleNext] = t;
                                }
                                this.iSampleNext++;
                            }
                        }
                    }
                     */
            
                    this.opFlags = 0;
            
                    /*
                     * DEBUG || PREFETCH:
                     *
                    if (DEBUG || PREFETCH) {
                        this.nBusCycles = 0;
                        this.nSnapCycles = this.nStepCycles;
                    }
                     */
            
                    this.aOps[this.getIPByte()].call(this);
            
                    /*
                     * DEBUG || PREFETCH:
                     *
                    if (PREFETCH) {
                        var nSpareCycles = (this.nSnapCycles - this.nStepCycles) - this.nBusCycles;
                        if (nSpareCycles >= 4) {
                            this.fillPrefetch(nSpareCycles >> 2);   // for every 4 spare cycles, fetch 1 instruction byte
                        }
                    }
            
                    if (DEBUG) {
                        //
                        // Make sure that every instruction is assessing a cycle cost, and that the cost is a net positive.
                        //
                        if (this.aFlags.fComplete && this.nStepCycles >= this.nSnapCycles && !(this.opFlags & X86.OPFLAG_PREFIXES)) {
                            this.println("cycle miscount: " + (this.nSnapCycles - this.nStepCycles));
                            this.setIP(this.opLIP - this.segCS.base);
                            this.stopCPU();
                            break;
                        }
                    }
                     */
            
                } while (this.nStepCycles > 0);
            
                return (this.aFlags.fComplete? this.nBurstCycles - this.nStepCycles : (this.aFlags.fComplete === undefined? 0 : -1));
            };
            
            /**
             * X86CPU.init()
             *
             * This function operates on every HTML element of class "cpu", extracting the
             * JSON-encoded parameters for the X86CPU constructor from the element's "data-value"
             * attribute, invoking the constructor (which in turn invokes the CPU constructor)
             * to create a X86CPU component, and then binding any associated HTML controls to the
             * new component.
             */
            X86CPU.init = function()
            {
                var aeCPUs = Component.getElementsByClass(window.document, PCJSCLASS, "cpu");
                for (var iCPU = 0; iCPU < aeCPUs.length; iCPU++) {
                    var eCPU = aeCPUs[iCPU];
                    var parmsCPU = Component.getComponentParms(eCPU);
                    var cpu = new X86CPU(parmsCPU);
                    Component.bindComponentControls(cpu, eCPU, PCJSCLASS);
                }
            };
            
            /*
             * Initialize every CPU module on the page
             */
            web.onInit(X86CPU.init);
            
            if (typeof module !== 'undefined') module.exports = X86CPU;
            
          • x86func.js
            /**
             * @fileoverview Implements PCjs 8086 opcode helpers.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Sep-05
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var str         = require("../../shared/lib/strlib");
                var Messages    = require("./messages");
                var X86         = require("./x86");
            }
            
            /**
             * fnADCb(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnADCb = function ADCb(dst, src)
            {
                var b = (dst + src + this.getCarry())|0;
                this.setArithResult(dst, src, b, X86.RESULT.BYTE | X86.RESULT.ALL);
                this.nStepCycles -= (this.regEAWrite === X86.ADDR_INVALID? (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesArithRR : this.cycleCounts.nOpCyclesArithRM) : this.cycleCounts.nOpCyclesArithMR);
                return b & 0xff;
            };
            
            /**
             * fnADCw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnADCw = function ADCw(dst, src)
            {
                var w = (dst + src + this.getCarry())|0;
                this.setArithResult(dst, src, w, this.dataType | X86.RESULT.ALL);
                this.nStepCycles -= (this.regEAWrite === X86.ADDR_INVALID? (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesArithRR : this.cycleCounts.nOpCyclesArithRM) : this.cycleCounts.nOpCyclesArithMR);
                return w & this.dataMask;
            };
            
            /**
             * fnADDb(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnADDb = function ADDb(dst, src)
            {
                var b = (dst + src)|0;
                this.setArithResult(dst, src, b, X86.RESULT.BYTE | X86.RESULT.ALL);
                this.nStepCycles -= (this.regEAWrite === X86.ADDR_INVALID? (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesArithRR : this.cycleCounts.nOpCyclesArithRM) : this.cycleCounts.nOpCyclesArithMR);
                return b & 0xff;
            };
            
            /**
             * fnADDw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnADDw = function ADDw(dst, src)
            {
                var w = (dst + src)|0;
                this.setArithResult(dst, src, w, this.dataType | X86.RESULT.ALL);
                this.nStepCycles -= (this.regEAWrite === X86.ADDR_INVALID? (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesArithRR : this.cycleCounts.nOpCyclesArithRM) : this.cycleCounts.nOpCyclesArithMR);
                return w & this.dataMask;
            };
            
            /**
             * fnANDb(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnANDb = function ANDb(dst, src)
            {
                var b = dst & src;
                this.setLogicResult(b, X86.RESULT.BYTE);
                this.nStepCycles -= (this.regEAWrite === X86.ADDR_INVALID? (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesArithRR : this.cycleCounts.nOpCyclesArithRM) : this.cycleCounts.nOpCyclesArithMR);
                return b;
            };
            
            /**
             * fnANDw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnANDw = function ANDw(dst, src)
            {
                this.nStepCycles -= (this.regEAWrite === X86.ADDR_INVALID? (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesArithRR : this.cycleCounts.nOpCyclesArithRM) : this.cycleCounts.nOpCyclesArithMR);
                return this.setLogicResult(dst & src, this.dataType);
            };
            
            /**
             * fnARPL(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnARPL = function ARPL(dst, src)
            {
                this.nStepCycles -= (10 + (this.regEA === X86.ADDR_INVALID? 0 : 1));
                if ((dst & X86.SEL.RPL) < (src & X86.SEL.RPL)) {
                    dst = (dst & ~X86.SEL.RPL) | (src & X86.SEL.RPL);
                    this.setZF();
                    return dst;
                }
                this.clearZF();
                return dst;
            };
            
            /**
             * fnBOUND(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnBOUND = function BOUND(dst, src)
            {
                if (this.regEA === X86.ADDR_INVALID) {
                    /*
                     * Generate UD_FAULT (INT 0x06: Invalid Opcode) if src is not a memory operand.
                     */
                    X86.opInvalid.call(this);
                    return dst;
                }
                /*
                 * Note that BOUND performs signed comparisons, so we must transform all arguments into signed values.
                 */
                var wIndex = dst;
                var wLower = this.getWord(this.regEA);
                var wUpper = this.getWord(this.regEA + this.dataSize);
                if (this.dataSize == 2) {
                    wIndex = (dst << 16) >> 16;
                    wLower = (wLower << 16) >> 16;
                    wUpper = (wUpper << 16) >> 16;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesBound;
                if (wIndex < wLower || wIndex > wUpper) {
                    /*
                     * The INT 0x05 handler must be called with CS:IP pointing to the BOUND instruction.
                     *
                     * TODO: Determine the cycle cost when a BOUND exception is triggered, over and above nCyclesBound.
                     */
                    this.setIP(this.opLIP - this.segCS.base);
                    X86.fnINT.call(this, X86.EXCEPTION.BOUND_ERR, null, 0);
                }
                this.opFlags |= X86.OPFLAG.NOWRITE;
                return dst;
            };
            
            /**
             * fnBSF(dst, src)
             *
             * Scan src starting at bit 0.  If a set bit is found, the bit index is stored in dst and ZF is cleared;
             * otherwise, ZF is set and dst is unchanged.
             *
             * NOTES: Early versions of the 80386 manuals misstated how ZF was set/cleared.  Also, Intel insists that
             * dst is undefined whenever ZF is set, but in fact, the 80386 leaves dst unchanged when that happens;
             * unfortunately, some early 80486s would always modify dst, so it is unsafe to rely on dst when ZF is set.
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnBSF = function BSF(dst, src)
            {
                var n = 0;
                if (!src) {
                    this.setZF();
                } else {
                    this.clearZF();
                    var bit = 0x1;
                    while (bit & this.dataMask) {
                        if (src & bit) {
                            dst = n;
                            break;
                        }
                        bit <<= 1;
                        n++;                // TODO: Determine if n should be incremented before the bailout for an accurate cycle count
                    }
                }
                this.nStepCycles -= 11 + n * 3;
                return dst;
            };
            
            /**
             * fnBSR(dst, src)
             *
             * Scan src starting from the highest bit.  If a set bit is found, the bit index is stored in dst and ZF is
             * cleared; otherwise, ZF is set and dst is unchanged.
             *
             * NOTES: Early versions of the 80386 manuals misstated how ZF was set/cleared.  Also, Intel insists that
             * dst is undefined whenever ZF is set, but in fact, the 80386 leaves dst unchanged when that happens;
             * unfortunately, some early 80486s would always modify dst, so it is unsafe to rely on dst when ZF is set.
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnBSR = function BSR(dst, src)
            {
                var n = 0;
                if (!src) {
                    this.setZF();
                } else {
                    this.clearZF();
                    var i = (this.dataSize == 2? 15 : 31), bit = 1 << i;
                    while (bit) {
                        if (src & bit) {
                            dst = i;
                            break;
                        }
                        bit >>>= 1;
                        n++; i--;           // TODO: Determine if n should be incremented before the bailout for an accurate cycle count
                    }
            
                }
                this.nStepCycles -= 11 + n * 3;
                return dst;
            };
            
            /**
             * fnBT(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnBT = function BT(dst, src)
            {
                if (dst & (1 << (src & 0x1f))) this.setCF(); else this.clearCF();
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? 3 : 6);
                this.opFlags |= X86.OPFLAG.NOWRITE;
                return dst;
            };
            
            /**
             * fnBTC(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnBTC = function BTC(dst, src)
            {
                var bit = 1 << (src & 0x1f);
                if (dst & bit) this.setCF(); else this.clearCF();
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? 6 : 8);
                return dst ^ bit;
            };
            
            /**
             * fnBTR(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnBTR = function BTR(dst, src)
            {
                var bit = 1 << (src & 0x1f);
                if (dst & bit) this.setCF(); else this.clearCF();
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? 6 : 8);
                return dst & ~bit;
            };
            
            /**
             * fnBTS(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnBTS = function BTS(dst, src)
            {
                var bit = 1 << (src & 0x1f);
                if (dst & bit) this.setCF(); else this.clearCF();
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? 6 : 8);
                return dst | bit;
            };
            
            /**
             * fnCALLw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null)
             * @return {number}
             */
            X86.fnCALLw = function CALLw(dst, src)
            {
                if (DEBUG) this.printMessage("calling " + str.toHex(dst, this.dataSize << 1), this.bitsMessage, true);
                this.pushWord(this.getIP());
                this.setIP(dst);
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesCallWR : this.cycleCounts.nOpCyclesCallWM);
                this.opFlags |= X86.OPFLAG.NOWRITE;
                return dst;
            };
            
            /**
             * fnCALLF(off, sel)
             *
             * For protected-mode, this function must attempt to load the new code segment first, because if the new segment
             * requires a change in privilege level, the return address must be pushed on the NEW stack, not the current stack.
             *
             * @this {X86CPU}
             * @param {number} off
             * @param {number} sel
             */
            X86.fnCALLF = function CALLF(off, sel)
            {
                if (DEBUG) this.printMessage("calling " + str.toHex(sel, 4) + ':' + str.toHex(off, this.dataSize << 1), this.bitsMessage, true);
                var oldCS = this.getCS();
                var oldIP = this.getIP();
                if (this.setCSIP(off, sel, true) != null) {
                    this.pushWord(oldCS);
                    this.pushWord(oldIP);
                }
            };
            
            /**
             * fnCALLFdw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null)
             * @return {number}
             */
            X86.fnCALLFdw = function CALLFdw(dst, src)
            {
                if (this.regEA === X86.ADDR_INVALID) {
                    return X86.fnGRPUndefined.call(this, dst, src);
                }
                X86.fnCALLF.call(this, dst, this.getShort(this.regEA + this.dataSize));
                this.nStepCycles -= this.cycleCounts.nOpCyclesCallDM;
                this.opFlags |= X86.OPFLAG.NOWRITE;
                return dst;
            };
            
            /**
             * fnCMPb(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number} dst unchanged
             */
            X86.fnCMPb = function CMPb(dst, src)
            {
                var b = (dst - src)|0;
                this.setArithResult(dst, src, b, X86.RESULT.BYTE | X86.RESULT.ALL, true);
                this.nStepCycles -= (this.regEAWrite === X86.ADDR_INVALID? (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesArithRR : this.cycleCounts.nOpCyclesCompareRM) : this.cycleCounts.nOpCyclesArithRM);
                this.opFlags |= X86.OPFLAG.NOWRITE;
                return dst;
            };
            
            /**
             * fnCMPw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number} dst unchanged
             */
            X86.fnCMPw = function CMPw(dst, src)
            {
                var w = (dst - src)|0;
                this.setArithResult(dst, src, w, this.dataType | X86.RESULT.ALL, true);
                this.nStepCycles -= (this.regEAWrite === X86.ADDR_INVALID? (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesArithRR : this.cycleCounts.nOpCyclesCompareRM) : this.cycleCounts.nOpCyclesArithRM);
                this.opFlags |= X86.OPFLAG.NOWRITE;
                return dst;
            };
            
            /**
             * fnDECb(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null)
             * @return {number}
             */
            X86.fnDECb = function DECb(dst, src)
            {
                var b = (dst - 1)|0;
                this.setArithResult(dst, 1, b, X86.RESULT.BYTE | X86.RESULT.NOTCF, true);
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesIncR : this.cycleCounts.nOpCyclesIncM);
                return b & 0xff;
            };
            
            /**
             * fnDECr(w)
             *
             * @this {X86CPU}
             * @param {number} w
             * @return {number}
             */
            X86.fnDECr = function DECr(w)
            {
                var result = (w - 1)|0;
                this.setArithResult(w, 1, result, this.dataType | X86.RESULT.NOTCF, true);
                this.nStepCycles -= 2;                          // the register form of DEC takes 2 cycles on all CPUs
                return (w & ~this.dataMask) | (result & this.dataMask);
            };
            
            /**
             * fnDECw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null)
             * @return {number}
             */
            X86.fnDECw = function DECw(dst, src)
            {
                var w = (dst - 1)|0;
                this.setArithResult(dst, 1, w, this.dataType | X86.RESULT.NOTCF, true);
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesIncR : this.cycleCounts.nOpCyclesIncM);
                return w & this.dataMask;
            };
            
            /**
             * fnSet64(lo, hi)
             *
             * @param {number} lo
             * @param {number} hi
             */
            X86.fnSet64 = function Set64(lo, hi)
            {
                return [lo >>> 0, hi >>> 0];
            };
            
            /**
             * fnAdd64(dst, src)
             *
             * Adds src to dst.
             *
             * @param {Array} dst is a 64-bit value
             * @param {Array} src is a 64-bit value
             */
            X86.fnAdd64 = function Add64(dst, src)
            {
                dst[0] += src[0];
                dst[1] += src[1];
                if (dst[0] > 0xffffffff) {
                    dst[0] >>>= 0;          // truncate dst[0] to 32 bits AND keep it unsigned
                    dst[1]++;
                }
            };
            
            /**
             * fnCmp64(dst, src)
             *
             * Compares dst to src, by computing dst - src.
             *
             * @param {Array} dst is a 64-bit value
             * @param {Array} src is a 64-bit value
             * @return {number} > 0 if dst > src, == 0 if dst == src, < 0 if dst < src
             */
            X86.fnCmp64 = function Cmp64(dst, src)
            {
                var result = dst[1] - src[1];
                if (!result) result = dst[0] - src[0];
                return result;
            };
            
            /**
             * fnSub64(dst, src)
             *
             * Subtracts src from dst.
             *
             * @param {Array} dst is a 64-bit value
             * @param {Array} src is a 64-bit value
             */
            X86.fnSub64 = function Sub64(dst, src)
            {
                dst[0] -= src[0];
                dst[1] -= src[1];
                if (dst[0] < 0) {
                    dst[0] >>>= 0;          // truncate dst[0] to 32 bits AND keep it unsigned
                    dst[1]--;
                }
            };
            
            /**
             * fnShr64(dst)
             *
             * Shifts dst right one bit.
             *
             * @param {Array} dst is a 64-bit value
             */
            X86.fnShr64 = function Shr64(dst)
            {
                dst[0] >>>= 1;
                if (dst[1] & 0x1) {
                    dst[0] = (dst[0] | 0x80000000) >>> 0;
                }
                dst[1] >>>= 1;
            };
            
            /**
             * fnDIV32(dstLo, dstHi, src)
             *
             * This sets regMDLo to dstHi:dstLo / src, and regMDHi to dstHi:dstLo % src; all inputs are treated as unsigned.
             *
             * If fMDset is not set, however, then there was a divide exception (ie, the divisor was either zero or too small).
             *
             * Refer to: http://lxr.linux.no/linux+v2.6.22/lib/div64.c
             *
             * @this {X86CPU}
             * @param {number} dstLo (low 32-bit portion of dividend)
             * @param {number} dstHi (high 32-bit portion of dividend)
             * @param {number} src (32-bit divisor)
             */
            X86.fnDIV32 = function DIV32(dstLo, dstHi, src)
            {
                this.fMDSet = false;
            
                src >>>= 0;
                if (!src || src <= (dstHi >>> 0)) return;
            
                var result = 0, bit = 1;
            
                var div = X86.fnSet64(src, 0);
                var rem = X86.fnSet64(dstLo, dstHi);
            
                while (X86.fnCmp64(rem, div) > 0) {
                    X86.fnAdd64(div, div);
                    bit += bit;
                }
                do {
                    if (X86.fnCmp64(rem, div) >= 0) {
                        X86.fnSub64(rem, div);
                        result += bit;
                    }
                    X86.fnShr64(div);
                    bit >>>= 1;
                } while (bit);
            
                this.assert(result <= 0xffffffff && !rem[1]);
            
                this.regMDLo = result;              // result is the quotient, which callers expect in the low MD register
                this.regMDHi = rem[0];              // rem[0] is the remainder, which callers expect in the high MD register
                this.fMDSet = true;
            };
            
            /**
             * fnIDIV32(dstLo, dstHi, src)
             *
             * This sets regMDLo to dstHi:dstLo / src, and regMDHi to dstHi:dstLo % src; all inputs are treated as signed.
             *
             * If fMDset is not set, however, then there was a divide exception (ie, the divisor was either zero or too small).
             *
             * Refer to: http://lxr.linux.no/linux+v2.6.22/lib/div64.c
             *
             * @this {X86CPU}
             * @param {number} dstLo (low 32-bit portion of dividend)
             * @param {number} dstHi (high 32-bit portion of dividend)
             * @param {number} src (32-bit divisor)
             */
            X86.fnIDIV32 = function IDIV32(dstLo, dstHi, src)
            {
                var fNegLo = false, fNegHi = false;
                if (src < 0) {
                    src = -src|0;
                    fNegLo = !fNegLo;
                }
                if (dstHi < 0) {
                    dstLo = -dstLo|0;
                    dstHi = (~dstHi + (dstLo? 0 : 1))|0;
                    fNegHi = true;
                    fNegLo = !fNegLo;
                }
                X86.fnDIV32.call(this, dstLo, dstHi, src);
                if (this.regMDLo > 0x7fffffff) this.fMDSet = false;
                if (fNegLo) this.regMDLo = -this.regMDLo;
                if (fNegHi) this.regMDHi = -this.regMDHi;
            };
            
            /**
             * fnDIVb(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst (the divisor)
             * @param {number} src (null; AX is the implied src)
             * @return {number} (we return dst unchanged, since it's actually AX that's modified)
             */
            X86.fnDIVb = function DIVb(dst, src)
            {
                /*
                 * Detect zero divisor
                 */
                if (!dst) {
                    X86.fnDIVOverflow.call(this);
                    return dst;
                }
            
                /*
                 * Detect too-small divisor (quotient overflow)
                 */
                var result = ((src = this.regEAX & 0xffff) / dst);
                if (result > 0xff) {
                    X86.fnDIVOverflow.call(this);
                    return dst;
                }
            
                this.fMDSet = true;
                this.regMDLo = (result & 0xff) | (((src % dst) & 0xff) << 8);
            
                /*
                 * Multiply/divide instructions specify only a single operand, which the decoders pass to us
                 * via the dst parameter, so we set src to the other implied operand (either AX or DX:AX).
                 * However, src is technically an output, and dst is merely an input (which is why we must return
                 * dst unchanged). So, to make traceLog() more consistent, we reverse the order of dst and src.
                 */
                if (DEBUG && DEBUGGER) this.traceLog('DIVb', src, dst, null, this.getPS(), this.regMDLo);
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesDivBR : this.cycleCounts.nOpCyclesDivBM);
                this.opFlags |= X86.OPFLAG.NOWRITE;
                return dst;
            };
            
            /**
             * fnDIVw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst (the divisor)
             * @param {number} src (null; DX:AX or EDX:EAX is the implied src)
             * @return {number} (we return dst unchanged, since it's actually DX:AX that's modified)
             */
            X86.fnDIVw = function DIVw(dst, src)
            {
                if (this.dataSize == 2) {
                    /*
                     * Detect zero divisor
                     */
                    if (!dst) {
                        X86.fnDIVOverflow.call(this);
                        return dst;
                    }
                    /*
                     * Detect too-small divisor (quotient overflow)
                     *
                     * WARNING: We CANNOT simply do "src = (this.regEDX << 16) | this.regEAX", because if bit 15 of DX
                     * is set, JavaScript will create a negative 32-bit number.  So we instead use non-bit-wise operators
                     * to force JavaScript to create a floating-point value that won't suffer from 32-bit-math side-effects.
                     */
                    src = (this.regEDX & 0xffff) * 0x10000 + (this.regEAX & 0xffff);
                    var result = (src / dst)|0;
                    if (result >= 0x10000) {
                        X86.fnDIVOverflow.call(this);
                        return dst;
                    }
                    this.fMDSet = true;
                    this.regMDLo = (result & 0xffff);
                    this.regMDHi = (src % dst) & 0xffff;
                }
                else {
                    X86.fnDIV32.call(this, this.regEAX, this.regEDX, dst);
                    if (!this.fMDSet) {
                        X86.fnDIVOverflow.call(this);
                        return dst;
                    }
                    this.regMDLo |= 0;
                    this.regMDHi |= 0;
                }
            
                /*
                 * Multiply/divide instructions specify only a single operand, which the decoders pass to us
                 * via the dst parameter, so we set src to the other implied operand (either AX or DX:AX).
                 * However, src is technically an output, and dst is merely an input (which is why we must return
                 * dst unchanged). So, to make traceLog() more consistent, we reverse the order of dst and src.
                 */
                if (DEBUG && DEBUGGER) {
                    if (this.dataSize == 2) {
                        this.traceLog('DIVw', src, dst, null, this.getPS(), this.regMDLo | (this.regMDHi << 16));
                    } else {
                        this.traceLog('DIVd', src, dst, null, this.getPS(), this.regMDLo, this.regMDHi);
                    }
                }
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesDivWR : this.cycleCounts.nOpCyclesDivWM);
                this.opFlags |= X86.OPFLAG.NOWRITE;
                return dst;
            };
            
            /**
             * fnESC(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number} dst unchanged
             */
            X86.fnESC = function ESC(dst, src)
            {
                return dst;
            };
            
            /**
             * fnIDIVb(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst (the divisor)
             * @param {number} src (null; AX is the implied src)
             * @return {number} (we return dst unchanged, since it's actually AX that's modified)
             */
            X86.fnIDIVb = function IDIVb(dst, src)
            {
                /*
                 * Detect zero divisor
                 */
                if (!dst) {
                    X86.fnDIVOverflow.call(this);
                    return dst;
                }
            
                /*
                 * Detect too-small divisor (quotient overflow)
                 */
                var div = ((dst << 24) >> 24);
                var result = ((src = (this.regEAX << 16) >> 16) / div)|0;
            
                /*
                 * Note the following difference, from "AP-186: Introduction to the 80186 Microprocessor, March 1983":
                 *
                 *      "The 8086 will cause a divide error whenever the absolute value of the quotient is greater then 7FFFH
                 *      (for word operations) or if the absolute value of the quotient is greater than 7FH (for byte operations).
                 *      The 80186 has expanded the range of negative numbers allowed as a quotient by 1 to include 8000H and 80H.
                 *      These numbers represent the most negative numbers representable using 2's complement arithmetic (equaling
                 *      -32768 and -128 in decimal, respectively)."
                 */
                if (result != ((result << 24) >> 24) || this.model == X86.MODEL_8086 && result == -128) {
                    X86.fnDIVOverflow.call(this);
                    return dst;
                }
            
                this.fMDSet = true;
                this.regMDLo = (result & 0xff) | (((src % div) & 0xff) << 8);
            
                /*
                 * Multiply/divide instructions specify only a single operand, which the decoders pass to us
                 * via the dst parameter, so we set src to the other implied operand (either AX or DX:AX).
                 * However, src is technically an output, and dst is merely an input (which is why we must return
                 * dst unchanged). So, to make traceLog() more consistent, we reverse the order of dst and src.
                 */
                if (DEBUG && DEBUGGER) this.traceLog('IDIVb', src, dst, null, this.getPS(), this.regMDLo);
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesIDivBR : this.cycleCounts.nOpCyclesIDivBM);
                this.opFlags |= X86.OPFLAG.NOWRITE;
                return dst;
            };
            
            /**
             * fnIDIVw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst (the divisor)
             * @param {number} src (null; DX:AX or EDX:EAX is the implied src)
             * @return {number} (we return dst unchanged, since it's actually DX:AX that's modified)
             */
            X86.fnIDIVw = function IDIVw(dst, src)
            {
                if (this.dataSize == 2) {
                    /*
                     * Detect zero divisor
                     */
                    if (!dst) {
                        X86.fnDIVOverflow.call(this);
                        return dst;
                    }
            
                    /*
                     * Detect too-small divisor (quotient overflow)
                     */
                    var div = ((dst << 16) >> 16);
                    var result = ((src = (this.regEDX << 16) | (this.regEAX & 0xffff)) / div)|0;
            
                    /*
                     * Note the following difference, from "AP-186: Introduction to the 80186 Microprocessor, March 1983":
                     *
                     *      "The 8086 will cause a divide error whenever the absolute value of the quotient is greater then 7FFFH
                     *      (for word operations) or if the absolute value of the quotient is greater than 7FH (for byte operations).
                     *      The 80186 has expanded the range of negative numbers allowed as a quotient by 1 to include 8000H and 80H.
                     *      These numbers represent the most negative numbers representable using 2's complement arithmetic (equaling
                     *      -32768 and -128 in decimal, respectively)."
                     */
                    if (result != ((result << 16) >> 16) || this.model == X86.MODEL_8086 && result == -32768) {
                        X86.fnDIVOverflow.call(this);
                        return dst;
                    }
            
                    this.fMDSet = true;
                    this.regMDLo = (result & 0xffff);
                    this.regMDHi = (src % div) & 0xffff;
                }
                else {
                    X86.fnIDIV32.call(this, this.regEAX, this.regEDX, dst);
                    if (!this.fMDSet) {
                        X86.fnDIVOverflow.call(this);
                        return dst;
                    }
                    this.regMDLo |= 0;
                    this.regMDHi |= 0;
                }
            
                /*
                 * Multiply/divide instructions specify only a single operand, which the decoders pass to us
                 * via the dst parameter, so we set src to the other implied operand (either AX or DX:AX).
                 * However, src is technically an output, and dst is merely an input (which is why we must return
                 * dst unchanged). So, to make traceLog() more consistent, we reverse the order of dst and src.
                 */
                if (DEBUG && DEBUGGER) {
                    if (this.dataSize == 2) {
                        this.traceLog('IDIVw', src, dst, null, this.getPS(), this.regMDLo | (this.regMDHi << 16));
                    } else {
                        this.traceLog('IDIVd', src, dst, null, this.getPS(), this.regMDLo, this.regMDHi);
                    }
                }
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesIDivWR : this.cycleCounts.nOpCyclesIDivWM);
                this.opFlags |= X86.OPFLAG.NOWRITE;
                return dst;
            };
            
            /**
             * fnIMUL8(dst, src)
             *
             * 80286_and_80287_Programmers_Reference_Manual_1987.pdf, p.B-44 (p.254) notes that:
             *
             *      "The low 16 bits of the product of a 16-bit signed multiply are the same as those of an
             *      unsigned multiply. The three operand IMUL instruction can be used for unsigned operands as well."
             *
             * However, we still sign-extend the operands before multiplying, making it easier to range-check the result.
             *
             * (80186/80188 and up)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnIMUL8 = function IMUL8(dst, src)
            {
                dst = this.getIPDisp();
                var result = (((src << 16) >> 16) * dst)|0;
            
                if (result > 32767 || result < -32768) {
                    this.setCF(); this.setOF();
                } else {
                    this.clearCF(); this.clearOF();
                }
            
                result &= 0xffff;
                if (DEBUG && DEBUGGER) this.traceLog('IMUL8', dst, src, null, this.getPS(), result);
            
                /*
                 * NOTE: These are the cycle counts for the 80286; the 80186/80188 have slightly different values (ranges):
                 * 22-25 and 29-32 instead of 21 and 24, respectively.  However, accurate cycle counts for the 80186/80188 is
                 * not super-critical. TODO: Fix this someday.
                 */
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? 21 : 24);
                return result;
            };
            
            /**
             * fnIMULb(dst, src)
             *
             * This 16-bit multiplication must indicate when the upper 8 bits are simply a sign-extension of the
             * lower 8 bits (carry clear) and when the upper 8 bits contain significant bits (carry set).  The latter
             * will occur whenever a positive result is > 127 (0x007f) and whenever a negative result is < -128
             * (0xff80).
             *
             * Example 1: 16 * 4 = 64 (0x0040): carry is clear
             * Example 2: 16 * 8 = 128 (0x0080): carry is set (the sign bit no longer fits in the lower 8 bits)
             * Example 3: 16 * -8 (0xf8) = -128 (0xff80): carry is clear (the sign bit *still* fits in the lower 8 bits)
             * Example 4: 16 * -16 (0xf0) = -256 (0xff00): carry is set (the sign bit no longer fits in the lower 8 bits)
             *
             * An earlier version of this function assumed it simply needed to check bit 7 of the result to determine carry,
             * which was completely broken.
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null; AL is the implied src)
             * @return {number} (we return dst unchanged, since it's actually AX that's modified)
             */
            X86.fnIMULb = function IMULb(dst, src)
            {
                var result = ((((src = this.regEAX) << 24) >> 24) * ((dst << 24) >> 24))|0;
            
                this.fMDSet = true;
                this.regMDLo = result & 0xffff;
            
                if (result > 127 || result < -128) {
                    this.setCF(); this.setOF();
                } else {
                    this.clearCF(); this.clearOF();
                }
            
                /*
                 * Multiply/divide instructions specify only a single operand, which the decoders pass to us
                 * via the dst parameter, so we set src to the other implied operand (either AX or DX:AX).
                 * However, src is technically an output, and dst is merely an input (which is why we must return
                 * dst unchanged). So, to make traceLog() more consistent, we reverse the order of dst and src.
                 */
                if (DEBUG && DEBUGGER) this.traceLog('IMULb', src, dst, null, this.getPS(), this.regMDLo);
            
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesIMulBR : this.cycleCounts.nOpCyclesIMulBM);
                this.opFlags |= X86.OPFLAG.NOWRITE;
                return dst;
            };
            
            /**
             * fnIMULn(dst, src)
             *
             * 80286_and_80287_Programmers_Reference_Manual_1987.pdf, p.B-44 (p.254) notes that:
             *
             *      "The low 16 bits of the product of a 16-bit signed multiply are the same as those of an
             *      unsigned multiply. The three operand IMUL instruction can be used for unsigned operands as well."
             *
             * However, we still sign-extend the operands before multiplying, making it easier to range-check the result.
             *
             * (80186/80188 and up)
             *
             * @this {X86CPU}
             * @param {number} dst (not used)
             * @param {number} src
             * @return {number}
             */
            X86.fnIMULn = function IMULn(dst, src)
            {
                var fOverflow, result;
                dst = this.getIPWord();
                if (this.dataSize == 2) {
                    result = (((src << 16) >> 16) * ((dst << 16) >> 16))|0;
                    fOverflow = (result > 32767 || result < -32768);
                } else {
                    result = (src * dst);
                    fOverflow = (result > 2147483647 || result < -2147483648);
                    this.assert(fOverflow == (result != (result|0)));
                }
            
                if (fOverflow) {
                    this.setCF(); this.setOF();
                } else {
                    this.clearCF(); this.clearOF();
                }
            
                result &= this.dataMask;
                if (DEBUG && DEBUGGER) this.traceLog('IMULn', dst, src, null, this.getPS(), result);
            
                /*
                 * NOTE: These are the cycle counts for the 80286; the 80186/80188 have slightly different values (ranges):
                 * 22-25 and 29-32 instead of 21 and 24, respectively.  However, accurate cycle counts for the 80186/80188 is
                 * not super-critical. TODO: Fix this someday.
                 */
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? 21 : 24);
                return result;
            };
            
            /**
             * fnIMUL32(dst, src)
             *
             * This sets regMDHi:regMDLo to the 64-bit result of dst * src, both of which are treated as signed.
             *
             * TODO: Some potential optimizations include:
             *
             *  1) Early outs if either parameter is zero, since the result will obviously be zero
             *  2) Using "normal" JavaScript multiplication if both parameters are >= -32768 && <= 32767
             *
             * Refer to: http://stackoverflow.com/questions/13597364/32-bit-signed-multiplication-with-a-64-bit-result-in-javascript
             *
             * @this {X86CPU}
             * @param {number} dst (any 32-bit number, treated as signed)
             * @param {number} src (any 32-bit number, treated as signed)
             */
            X86.fnIMUL32 = function IMUL32(dst, src)
            {
                var fNeg = false;
                if (src < 0) {
                    src = -src|0;
                    fNeg = !fNeg;
                }
                if (dst < 0) {
                    dst = -dst|0;
                    fNeg = !fNeg;
                }
                X86.fnMUL32.call(this, dst, src);
                if (fNeg) {
                    this.regMDLo = (~this.regMDLo + 1)|0;
                    this.regMDHi = (~this.regMDHi + (this.regMDLo? 0 : 1))|0;
                }
            };
            
            /**
             * fnIMULw(dst, src)
             *
             * regMDHi:regMDLo = dst * regEAX
             *
             * This 32-bit multiplication must indicate when the upper 16 bits are simply a sign-extension of the
             * lower 16 bits (carry clear) and when the upper 16 bits contain significant bits (carry set).  The latter
             * will occur whenever a positive result is > 32767 (0x00007fff) and whenever a negative result is < -32768
             * (0xffff8000).
             *
             * Example 1: 256 * 64 = 16384 (0x00004000): carry is clear
             * Example 2: 256 * 128 = 32768 (0x00008000): carry is set (the sign bit no longer fits in the lower 16 bits)
             * Example 3: 256 * -128 (0xff80) = -32768 (0xffff8000): carry is clear (the sign bit *still* fits in the lower 16 bits)
             * Example 4: 256 * -256 (0xff00) = -65536 (0xffff0000): carry is set (the sign bit no longer fits in the lower 16 bits)
             *
             * An earlier version of this function assumed it simply needed to check bit 15 of the result to determine carry,
             * which was completely broken.
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null; AX or EAX is the implied src)
             * @return {number} (we return dst unchanged, since it's actually DX:AX that's modified)
             */
            X86.fnIMULw = function IMULw(dst, src)
            {
                var fOverflow;
                if (this.dataSize == 2) {
                    src = this.regEAX & 0xffff;
                    var result = (((src << 16) >> 16) * ((dst << 16) >> 16))|0;
                    this.fMDSet = true;
                    this.regMDLo = result & 0xffff;
                    this.regMDHi = (result >> 16) & 0xffff;
                    fOverflow = (result > 32767 || result < -32768);
                } else {
                    X86.fnIMUL32.call(this, dst, this.regEAX);
                    fOverflow = (this.regMDHi != (this.regMDLo >> 31));
                }
            
                if (fOverflow) {
                    this.setCF(); this.setOF();
                } else {
                    this.clearCF(); this.clearOF();
                }
            
                /*
                 * Multiply/divide instructions specify only a single operand, which the decoders pass to us
                 * via the dst parameter, so we set src to the other implied operand (either AX or DX:AX).
                 * However, src is technically an output, and dst is merely an input (which is why we must return
                 * dst unchanged). So, to make traceLog() more consistent, we reverse the order of dst and src.
                 */
                if (DEBUG && DEBUGGER) {
                    if (this.dataSize == 2) {
                        this.traceLog('IMULw', src, dst, null, this.getPS(), this.regMDLo | (this.regMDHi << 16));
                    } else {
                        this.traceLog('IMULd', src, dst, null, this.getPS(), this.regMDLo, this.regMDHi);
                    }
                }
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesIMulWR : this.cycleCounts.nOpCyclesIMulWM);
                this.opFlags |= X86.OPFLAG.NOWRITE;
                return dst;
            };
            
            /**
             * fnIMULrw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnIMULrw = function IMULrw(dst, src)
            {
                var result = (((dst << 16) >> 16) * ((src << 16) >> 16))|0;
                if (result > 32767 || result < -32768) {
                    this.setCF(); this.setOF();
                } else {
                    this.clearCF(); this.clearOF();
                }
                result &= 0xffff;
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? 9 : 12);
                return result;
            };
            
            /**
             * fnIMULrd(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnIMULrd = function IMULrd(dst, src)
            {
                var result = dst * src;
                if (result > 2147483647 || result < -2147483648) {
                    this.setCF(); this.setOF();
                } else {
                    this.clearCF(); this.clearOF();
                }
                result |= 0;
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? 9 : 12);
                return result;
            };
            
            /**
             * fnINCb(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null)
             * @return {number}
             */
            X86.fnINCb = function INCb(dst, src)
            {
                var b = (dst + 1)|0;
                this.setArithResult(dst, 1, b, X86.RESULT.BYTE | X86.RESULT.NOTCF);
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesIncR : this.cycleCounts.nOpCyclesIncM);
                return b & 0xff;
            };
            
            /**
             * fnINCr(w)
             *
             * @this {X86CPU}
             * @param {number} w
             * @return {number}
             */
            X86.fnINCr = function INCr(w)
            {
                var result = (w + 1)|0;
                this.setArithResult(w, 1, result, this.dataType | X86.RESULT.NOTCF);
                this.nStepCycles -= 2;                          // the register form of INC takes 2 cycles on all CPUs
                return (w & ~this.dataMask) | (result & this.dataMask);
            };
            
            /**
             * fnINCw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null)
             * @return {number}
             */
            X86.fnINCw = function INCw(dst, src)
            {
                var w = (dst + 1)|0;
                this.setArithResult(dst, 1, w, this.dataType | X86.RESULT.NOTCF);
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesIncR : this.cycleCounts.nOpCyclesIncM);
                return w & this.dataMask;
            };
            
            /**
             * fnINT(nIDT, nError, nCycles)
             *
             * NOTE: We no longer use setCSIP(), because it always loads the new CS using segCS.load(), which
             * only knows how to load GDT and LDT descriptors, whereas interrupts must use setCS.loadIDT(), which
             * deals exclusively with IDT descriptors.
             *
             * This means we must take care to replicate critical features of setCSIP(); ie, setting segCS.fCall
             * BEFORE calling loadIDT(), and updating regLIP and regLIPLimit, resetting default operand and address sizes,
             * and flushing the prefetch queue AFTER calling loadIDT().
             *
             * @this {X86CPU}
             * @param {number} nIDT
             * @param {number|null|undefined} nError
             * @param {number} nCycles (in addition to the default of nOpCyclesInt)
             */
            X86.fnINT = function INT(nIDT, nError, nCycles)
            {
                /*
                 * TODO: We assess the cycle cost up front, because otherwise, if loadIDT() fails, no cost may be assessed.
                 */
                this.nStepCycles -= this.cycleCounts.nOpCyclesInt + nCycles;
                this.segCS.fCall = true;
                var oldPS = this.getPS();
                var oldCS = this.getCS();
                var oldIP = this.getIP();
                var addr = this.segCS.loadIDT(nIDT);
                if (addr !== X86.ADDR_INVALID) {
                    this.pushWord(oldPS);
                    this.pushWord(oldCS);
                    this.pushWord(oldIP);
                    if (nError != null) this.pushWord(nError);
                    this.nFault = -1;
                    this.regLIP = addr;
                    this.regLIPLimit = (this.segCS.base + this.segCS.limit)|0;
                    if (I386) this.resetSizes();
                    if (PREFETCH) this.flushPrefetch(this.regLIP);
                }
            };
            
            /**
             * fnIRET()
             *
             * @this {X86CPU}
             */
            X86.fnIRET = function IRET()
            {
                /*
                 * TODO: We assess a fixed cycle cost up front, because at the moment, switchTSS() doesn't assess anything.
                 */
                this.nStepCycles -= this.cycleCounts.nOpCyclesIRet;
                if (this.regCR0 & X86.CR0.MSW.PE) {
                    if (this.regPS & X86.PS.NT) {
                        var addrNew = this.segTSS.base;
                        /*
                         * Fortunately, X86.TSS286.PREV_TSS and X86.TSS386.PREV_TSS are at the same TSS offset.
                         */
                        var sel = this.getShort(addrNew + X86.TSS286.PREV_TSS);
                        this.segCS.switchTSS(sel, false);
                        return;
                    }
                }
                var cpl = this.segCS.cpl;
                var newIP = this.popWord();
                var newCS = this.popWord();
                var newPS = this.popWord();
                if (DEBUG) this.printMessage(" returning to " + str.toHex(newCS, 4) + ':' + str.toHex(newIP, this.dataSize << 1), this.bitsMessage, true);
                if (this.setCSIP(newIP, newCS, false) != null) {
                    this.setPS(newPS, cpl);
                    if (MAXDEBUG && this.cIntReturn) this.checkIntReturn(this.regLIP);
                }
            };
            
            /**
             * fnJMPw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null)
             * @return {number}
             */
            X86.fnJMPw = function JMPw(dst, src)
            {
                this.setIP(dst);
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesJmpWR : this.cycleCounts.nOpCyclesJmpWM);
                this.opFlags |= X86.OPFLAG.NOWRITE;
                return dst;
            };
            
            /**
             * fnJMPFdw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null)
             * @return {number}
             */
            X86.fnJMPFdw = function JMPFdw(dst, src)
            {
                if (this.regEA === X86.ADDR_INVALID) {
                    return X86.fnGRPUndefined.call(this, dst, src);
                }
                this.setCSIP(dst, this.getShort(this.regEA + this.dataSize));
                if (MAXDEBUG && this.cIntReturn) this.checkIntReturn(this.regLIP);
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpDM;
                this.opFlags |= X86.OPFLAG.NOWRITE;
                return dst;
            };
            
            /**
             * fnLAR(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnLAR = function LAR(dst, src)
            {
                this.nStepCycles -= (14 + (this.regEA === X86.ADDR_INVALID? 0 : 2));
                /*
                 * Currently, segVER.load() will return an error only if the selector is beyond the bounds of the
                 * descriptor table or the descriptor is not for a segment.
                 *
                 * TODO: This instruction's 80286 documentation does not discuss conforming code segments; determine
                 * if we need a special check for them.
                 */
                this.clearZF();
                if (this.segVER.load(src, true) !== X86.ADDR_INVALID) {
                    if (this.segVER.dpl >= this.segCS.cpl && this.segVER.dpl >= (src & X86.SEL.RPL)) {
                        this.setZF();
                        dst = this.segVER.acc & ~X86.DESC.ACC.BASE1623;
                        if (this.dataSize > 2) {
                            dst |= ((this.segVER.ext & ~X86.DESC.EXT.BASE2431) << 16);
                        }
                    }
                }
                return dst;
            };
            
            /**
             * fnLCR0(l)
             *
             * This is called by an 80386 control instruction (ie, MOV CR0,reg).
             *
             * TODO: Determine which CR0 bits, if any, cannot be modified by MOV CR0,reg.
             *
             * @this {X86CPU}
             * @param {number} l
             */
            X86.fnLCR0 = function LCR0(l)
            {
                this.regCR0 = l;
                this.setProtMode();
                if (this.regCR0 & X86.CR0.PG) {
                    this.enablePageBlocks();
                } else {
                    this.disablePageBlocks();
                }
            };
            
            /**
             * fnLCR3(l)
             *
             * This is called by an 80386 control instruction (ie, MOV CR3,reg) or an 80386 task switch.
             *
             * @this {X86CPU}
             * @param {number} l
             */
            X86.fnLCR3 = function LCR3(l)
            {
                this.regCR3 = l;
                /*
                 * Normal use of regCR3 involves adding a 0-4K (12-bit) offset to obtain a page directory entry,
                 * so let's ensure that the low 12 bits of regCR3 are always zero.
                 */
                this.assert(!(this.regCR3 & X86.LADDR.OFFSET));
                if (this.regCR0 & X86.CR0.PG) this.enablePageBlocks();
            };
            
            /**
             * fnLDS(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnLDS = function LDS(dst, src)
            {
                if (this.regEA === X86.ADDR_INVALID) {
                    X86.opUndefined.call(this);
                    return dst;
                }
                this.setDS(this.getShort(this.regEA + this.dataSize));
                this.nStepCycles -= this.cycleCounts.nOpCyclesLS;
                return src;
            };
            
            /**
             * fnLEA(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnLEA = function LEA(dst, src)
            {
                if (this.regEA === X86.ADDR_INVALID) {
                    /*
                     * TODO: After reading http://www.os2museum.com/wp/undocumented-8086-opcodes/, it seems that this
                     * form of LEA (eg, "LEA AX,DX") simply returns the last calculated EA.  Since we always reset regEA
                     * at the start of a new instruction, we would need to preserve the previous EA if we want to mimic
                     * that (undocumented) behavior.
                     *
                     * And for completeness, we would have to extend EA tracking beyond the usual ModRM instructions
                     * (eg, XLAT, instructions that modify the stack pointer, and string instructions).  Anything else?
                     */
                    X86.opUndefined.call(this);
                    return dst;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesLEA;
                return this.regEA;
            };
            
            /**
             * fnLES(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnLES = function LES(dst, src)
            {
                if (this.regEA === X86.ADDR_INVALID) {
                    X86.opUndefined.call(this);
                    return dst;
                }
                this.setES(this.getShort(this.regEA + this.dataSize));
                this.nStepCycles -= this.cycleCounts.nOpCyclesLS;
                return src;
            };
            
            /**
             * fnLFS(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnLFS = function LFS(dst, src)
            {
                if (this.regEA === X86.ADDR_INVALID) {
                    X86.opUndefined.call(this);
                    return dst;
                }
                this.setFS(this.getShort(this.regEA + this.dataSize));
                this.nStepCycles -= this.cycleCounts.nOpCyclesLS;
                return src;
            };
            
            /**
             * fnLGDT(dst, src)
             *
             * op=0x0F,0x01,reg=0x2 (GRP7:LGDT)
             *
             * The 80286 LGDT instruction assumes a 40-bit operand: a 16-bit limit followed by a 24-bit base address;
             * the ModRM decoder has already supplied the first word of the operand (in dst), which corresponds to
             * the limit, so we must fetch the remaining bits ourselves.
             *
             * The 80386 LGDT instruction assumes a 48-bit operand: a 16-bit limit followed by a 32-bit base address,
             * but it ignores the last 8 bits of the base address if the OPERAND size is 16 bits; we interpret that to
             * mean that the 24-bit base address should be zero-extended to 32 bits.
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null)
             * @return {number}
             */
            X86.fnLGDT = function LGDT(dst, src)
            {
                if (this.regEA === X86.ADDR_INVALID) {
                    X86.opInvalid.call(this);
                } else {
                    /*
                     * Hopefully it won't hurt to always fetch a 32-bit base address (even on an 80286), which we then
                     * mask apppropriately.
                     */
                    this.addrGDT = this.getLong(this.regEA + 2) & (this.dataMask | (this.dataMask << 8));
                    /*
                     * An idiosyncrasy of our ModRM decoders is that, if the OPERAND size is 32 bits, then it will have
                     * fetched a 32-bit dst operand; we mask off those extra bits now.
                     */
                    dst &= 0xffff;
                    this.addrGDTLimit = this.addrGDT + dst;
                    this.opFlags |= X86.OPFLAG.NOWRITE;
                    this.nStepCycles -= 11;
                }
                return dst;
            };
            
            /**
             * fnLGS(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnLGS = function LGS(dst, src)
            {
                if (this.regEA === X86.ADDR_INVALID) {
                    X86.opUndefined.call(this);
                    return dst;
                }
                this.setGS(this.getShort(this.regEA + this.dataSize));
                this.nStepCycles -= this.cycleCounts.nOpCyclesLS;
                return src;
            };
            
            /**
             * fnLIDT(dst, src)
             *
             * op=0x0F,0x01,reg=0x3 (GRP7:LIDT)
             *
             * The 80286 LIDT instruction assumes a 40-bit operand: a 16-bit limit followed by a 24-bit base address;
             * the ModRM decoder has already supplied the first word of the operand (in dst), which corresponds to
             * the limit, so we must fetch the remaining bits ourselves.
             *
             * The 80386 LIDT instruction assumes a 48-bit operand: a 16-bit limit followed by a 32-bit base address,
             * but it ignores the last 8 bits of the base address if the OPERAND size is 16 bits; we interpret that to
             * mean that the 24-bit base address should be zero-extended to 32 bits.
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null)
             * @return {number}
             */
            X86.fnLIDT = function LIDT(dst, src)
            {
                if (this.regEA === X86.ADDR_INVALID) {
                    X86.opInvalid.call(this);
                } else {
                    /*
                     * Hopefully it won't hurt to always fetch a 32-bit base address (even on an 80286), which we then
                     * mask apppropriately.
                     */
                    this.addrIDT = this.getLong(this.regEA + 2) & (this.dataMask | (this.dataMask << 8));
                    /*
                     * An idiosyncrasy of our ModRM decoders is that, if the OPERAND size is 32 bits, then it will have
                     * fetched a 32-bit dst operand; we mask off those extra bits now.
                     */
                    dst &= 0xffff;
                    this.addrIDTLimit = this.addrIDT + dst;
                    this.opFlags |= X86.OPFLAG.NOWRITE;
                    this.nStepCycles -= 12;
                }
                return dst;
            };
            
            /**
             * fnLLDT(dst, src)
             *
             * op=0x0F,0x00,reg=0x2 (GRP6:LLDT)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null)
             * @return {number}
             */
            X86.fnLLDT = function LLDT(dst, src) {
                this.opFlags |= X86.OPFLAG.NOWRITE;
                this.segLDT.load(dst);
                this.nStepCycles -= (17 + (this.regEA === X86.ADDR_INVALID? 0 : 2));
                return dst;
            };
            
            /**
             * fnLMSW(dst, src)
             *
             * op=0x0F,0x01,reg=0x6 (GRP7:LMSW)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null)
             * @return {number}
             */
            X86.fnLMSW = function LMSW(dst, src)
            {
                this.setMSW(dst);
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? 3 : 6);
                this.opFlags |= X86.OPFLAG.NOWRITE;
                return dst;
            };
            
            /**
             * fnLSL(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (the selector)
             * @return {number}
             */
            X86.fnLSL = function LSL(dst, src)
            {
                /*
                 * TODO: Is this an invalid operation if regEAWrite is set?  dst is required to be a register.
                 */
                this.nStepCycles -= (14 + (this.regEA === X86.ADDR_INVALID? 0 : 2));
                /*
                 * Currently, segVER.load() will return an error only if the selector is beyond the bounds of the
                 * descriptor table or the descriptor is not for a segment.
                 *
                 * TODO: LSL is explicitly documented as ALSO requiring a non-null selector, so we check X86.SEL.MASK;
                 * are there any other instructions that were, um, less explicit but also require a non-null selector?
                 */
                if ((src & X86.SEL.MASK) && this.segVER.load(src, true) !== X86.ADDR_INVALID) {
                    var fConforming = ((this.segVER.acc & X86.DESC.ACC.TYPE.CODE_CONFORMING) == X86.DESC.ACC.TYPE.CODE_CONFORMING);
                    if ((fConforming || this.segVER.dpl >= this.segCS.cpl) && this.segVER.dpl >= (src & X86.SEL.RPL)) {
                        this.setZF();
                        return this.segVER.limit;
                    }
                }
                this.clearZF();
                return dst;
            };
            
            /**
             * fnLSS(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnLSS = function LSS(dst, src)
            {
                if (this.regEA === X86.ADDR_INVALID) {
                    X86.opUndefined.call(this);
                    return dst;
                }
                this.setSS(this.getShort(this.regEA + this.dataSize));
                this.nStepCycles -= this.cycleCounts.nOpCyclesLS;
                return src;
            };
            
            /**
             * fnLTR(dst, src)
             *
             * op=0x0F,0x00,reg=0x3 (GRP6:LTR)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null)
             * @return {number}
             */
            X86.fnLTR = function LTR(dst, src)
            {
                this.opFlags |= X86.OPFLAG.NOWRITE;
                if (this.segTSS.load(dst) !== X86.ADDR_INVALID) {
                    this.setShort(this.segTSS.addrDesc + X86.DESC.ACC.OFFSET, this.segTSS.acc |= X86.DESC.ACC.TSS_BUSY);
                    this.segTSS.type |= X86.DESC.ACC.TSS_BUSY;
                }
                this.nStepCycles -= (17 + (this.regEA === X86.ADDR_INVALID? 0 : 2));
                return dst;
            };
            
            /**
             * fnMOV(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst (current value, ignored)
             * @param {number} src (new value)
             * @return {number} dst (updated value, from src)
             */
            X86.fnMOV = function MOV(dst, src)
            {
                this.nStepCycles -= (this.regEAWrite === X86.ADDR_INVALID? (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesMovRR : this.cycleCounts.nOpCyclesMovRM) : this.cycleCounts.nOpCyclesMovMR);
                return src;
            };
            
            /**
             * fnMOVX(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst (current value, ignored)
             * @param {number} src (new value)
             * @return {number} dst (updated value, from src)
             */
            X86.fnMOVX = function MOVX(dst, src)
            {
                return src;
            };
            
            /**
             * fnMOVn(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst (current value, ignored)
             * @param {number} src (new value)
             * @return {number} dst (updated value, from src)
             */
            X86.fnMOVn = function MOVn(dst, src)
            {
                this.nStepCycles -= (this.regEAWrite === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesMovRI : this.cycleCounts.nOpCyclesMovMI);
                return src;
            };
            
            /**
             * fnMOVxx(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst (current value, ignored)
             * @param {number} src (new value)
             * @return {number} dst (src is overridden, replaced with regXX, as specified by opMOVwsr() or opMOVrc())
             */
            X86.fnMOVxx = function MOVxx(dst, src)
            {
                if (this.regEAWrite !== X86.ADDR_INVALID) {
                    /*
                     * When a 32-bit OPERAND size is in effect, opMOVwsr() will write 32 bits (zero-extended) if the destination
                     * is a register, but only 16 bits if the destination is memory.  The only other caller, opMOVrc(), is not
                     * affected, because it writes only to register destinations.
                     */
                    this.setDataSize(2);
                }
                return X86.fnMOV.call(this, dst, this.regXX);
            };
            
            /**
             * fnMULb(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null)
             * @return {number} (we return dst unchanged, since it's actually AX that's modified)
             */
            X86.fnMULb = function MULb(dst, src)
            {
                this.fMDSet = true;
                this.regMDLo = ((src = this.regEAX & 0xff) * dst) & 0xffff;
            
                if (this.regMDLo & 0xff00) {
                    this.setCF(); this.setOF();
                } else {
                    this.clearCF(); this.clearOF();
                }
            
                /*
                 * Multiply/divide instructions specify only a single operand, which the decoders pass to us
                 * via the dst parameter, so we set src to the other implied operand (either AX or DX:AX).
                 * However, src is technically an output, and dst is merely an input (which is why we must return
                 * dst unchanged). So, to make traceLog() more consistent, we reverse the order of dst and src.
                 */
                if (DEBUG && DEBUGGER) this.traceLog('MULb', src, dst, null, this.getPS(), this.regMDLo);
            
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesMulBR : this.cycleCounts.nOpCyclesMulBM);
                this.opFlags |= X86.OPFLAG.NOWRITE;
                return dst;
            };
            
            /**
             * fnMUL32(dst, src)
             *
             * This sets regMDHi:regMDLo to the 64-bit result of dst * src, both of which are treated as unsigned.
             *
             * TODO: Some potential optimizations include:
             *
             *  1) Early outs if either parameter is zero, since the result will obviously be zero
             *  2) Using "normal" JavaScript multiplication if both parameters are < 32767
             *
             * Refer to: http://stackoverflow.com/questions/13597364/32-bit-signed-multiplication-with-a-64-bit-result-in-javascript
             *
             * @this {X86CPU}
             * @param {number} dst (any 32-bit number, treated as unsigned)
             * @param {number} src (any 32-bit number, treated as unsigned)
             */
            X86.fnMUL32 = function MUL32(dst, src)
            {
                var srcLo = src & 0xffff;
                var srcHi = src >>> 16;
                var dstLo = dst & 0xffff;
                var dstHi = dst >>> 16;
            
                var mul00 = srcLo * dstLo;
                var mul16 = ((mul00 >>> 16) + (srcHi * dstLo));
                var mul32 = mul16 >>> 16;
                mul16 = ((mul16 & 0xffff) + (srcLo * dstHi));
                mul32 += ((mul16 >>> 16) + (srcHi * dstHi));
            
                this.fMDSet = true;
                this.regMDLo = (mul16 << 16) | (mul00 & 0xffff);
                this.regMDHi = mul32|0;
            };
            
            /**
             * fnMULw(dst, src)
             *
             * regMDHi:regMDLo = dst * regEAX
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null; AX or EAX is the implied src)
             * @return {number} (we return dst unchanged, since it's actually DX:AX that's modified)
             */
            X86.fnMULw = function MULw(dst, src)
            {
                if (this.dataSize == 2) {
                    src = this.regEAX & 0xffff;
                    var result = (src * dst)|0;
                    this.fMDSet = true;
                    this.regMDLo = result & 0xffff;
                    this.regMDHi = (result >> 16) & 0xffff;
                } else {
                    X86.fnMUL32.call(this, dst, this.regEAX);
                }
            
                if (this.regMDHi) {
                    this.setCF(); this.setOF();
                } else {
                    this.clearCF(); this.clearOF();
                }
            
                /*
                 * Multiply/divide instructions specify only a single operand, which the decoders pass to us
                 * via the dst parameter, so we set src to the other implied operand (either AX or DX:AX).
                 * However, src is technically an output, and dst is merely an input (which is why we must return
                 * dst unchanged). So, to make traceLog() more consistent, we reverse the order of dst and src.
                 */
                if (DEBUG && DEBUGGER) {
                    if (this.dataSize == 2) {
                        this.traceLog('MULw', src, dst, null, this.getPS(), this.regMDLo | (this.regMDHi << 16));
                    } else {
                        this.traceLog('MULd', src, dst, null, this.getPS(), this.regMDLo, this.regMDHi);
                    }
                }
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesMulWR : this.cycleCounts.nOpCyclesMulWM);
                this.opFlags |= X86.OPFLAG.NOWRITE;
                return dst;
            };
            
            /**
             * fnNEGb(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null)
             * @return {number}
             */
            X86.fnNEGb = function NEGb(dst, src)
            {
                var b = (-dst)|0;
                this.setArithResult(0, dst, b, X86.RESULT.BYTE | X86.RESULT.ALL, true);
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesNegR : this.cycleCounts.nOpCyclesNegM);
                return b & 0xff;
            };
            
            /**
             * fnNEGw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null)
             * @return {number}
             */
            X86.fnNEGw = function NEGw(dst, src)
            {
                var w = (-dst)|0;
                this.setArithResult(0, dst, w, this.dataType | X86.RESULT.ALL, true);
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesNegR : this.cycleCounts.nOpCyclesNegM);
                return w & this.dataMask;
            };
            
            /**
             * fnNOTb(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null)
             * @return {number}
             */
            X86.fnNOTb = function NOTb(dst, src)
            {
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesNegR : this.cycleCounts.nOpCyclesNegM);
                return dst ^ 0xff;
            };
            
            /**
             * fnNOTw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null)
             * @return {number}
             */
            X86.fnNOTw = function NOTw(dst, src)
            {
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesNegR : this.cycleCounts.nOpCyclesNegM);
                return dst ^ this.dataMask;
            };
            
            /**
             * fnORb(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnORb = function ORb(dst, src)
            {
                this.nStepCycles -= (this.regEAWrite === X86.ADDR_INVALID? (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesArithRR : this.cycleCounts.nOpCyclesArithRM) : this.cycleCounts.nOpCyclesArithMR);
                return this.setLogicResult(dst | src, X86.RESULT.BYTE);
            };
            
            /**
             * fnORw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnORw = function ORw(dst, src)
            {
                this.nStepCycles -= (this.regEAWrite === X86.ADDR_INVALID? (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesArithRR : this.cycleCounts.nOpCyclesArithRM) : this.cycleCounts.nOpCyclesArithMR);
                return this.setLogicResult(dst | src, this.dataType);
            };
            
            /**
             * fnPOPw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst (current value, ignored)
             * @param {number} src (new value)
             * @return {number} dst (updated value, from src)
             */
            X86.fnPOPw = function POPw(dst, src)
            {
                this.nStepCycles -= (this.regEAWrite === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesPopReg : this.cycleCounts.nOpCyclesPopMem);
                return src;
            };
            
            /**
             * fnPUSHw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null)
             * @return {number}
             */
            X86.fnPUSHw = function PUSHw(dst, src)
            {
                var w = dst;
                if (this.opFlags & X86.OPFLAG.PUSHSP) {
                    /*
                     * This is the one case where must actually modify dst, so that the ModRM function will
                     * not put a stale value back into the SP register.
                     */
                    dst = (dst - 2) & 0xffff;
                    /*
                     * And on the 8086/8088, the value we just calculated also happens to be the value that must
                     * be pushed.
                     */
                    if (this.model < X86.MODEL_80286) w = dst;
                }
                this.pushWord(w);
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesPushReg : this.cycleCounts.nOpCyclesPushMem);
                /*
                 * The PUSH is the only write that needs to occur; dst was the source operand and does not need to be rewritten.
                 */
                this.opFlags |= X86.OPFLAG.NOWRITE;
                return dst;
            };
            
            /**
             * fnRCLb(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (1 or CL)
             * @return {number}
             */
            X86.fnRCLb = function RCLb(dst, src)
            {
                var result = dst;
                var flagsIn = (DEBUG? this.getPS() : 0);
                var count = src & this.nShiftCountMask;
                if (count) {
                    var carry = this.getCarry();
                    count %= 9;
                    if (!count) {
                        carry <<= 7;
                    } else {
                        result = ((dst << count) | (carry << (count - 1)) | (dst >> (9 - count))) & 0xff;
                        carry = dst << (count - 1);
                    }
                    this.setRotateResult(result, carry, X86.RESULT.BYTE);
                }
                if (DEBUG && DEBUGGER) this.traceLog('RCLb', dst, src, flagsIn, this.getPS(), result);
                return result;
            };
            
            /**
             * fnRCLw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (1 or CL)
             * @return {number}
             */
            X86.fnRCLw = function RCLw(dst, src)
            {
                var result = dst;
                var flagsIn = (DEBUG? this.getPS() : 0);
                var count = src & this.nShiftCountMask;
                if (count) {
                    var carry = this.getCarry();
                    count %= 17;
                    if (!count) {
                        carry <<= 15;
                    } else {
                        result = ((dst << count) | (carry << (count - 1)) | (dst >> (17 - count))) & 0xffff;
                        carry = dst << (count - 1);
                    }
                    this.setRotateResult(result, carry, X86.RESULT.WORD);
                }
                if (DEBUG && DEBUGGER) this.traceLog('RCLw', dst, src, flagsIn, this.getPS(), result);
                return result;
            };
            
            /**
             * fnRCLd(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (1 or CL)
             * @return {number}
             */
            X86.fnRCLd = function RCLd(dst, src)
            {
                var result = dst;
                var flagsIn = (DEBUG? this.getPS() : 0);
                var count = src & this.nShiftCountMask;     // this 32-bit-only function could mask with 0x1f directly
                if (count) {
                    var carry = this.getCarry();
                    /*
                     * JavaScript Alert: much like a post-8086 Intel CPU, JavaScript shift counts are mod 32,
                     * so "dst >>> 32" is equivalent to "dst >>> 0", which doesn't shift any bits at all.  To
                     * compensate, we shift one bit less than the maximum, and then shift one bit farther.
                     */
                    result = (dst << count) | (carry << (count - 1)) | ((dst >>> (32 - count)) >>> 1);
                    carry = dst << (count - 1);
                    this.setRotateResult(result, carry, X86.RESULT.DWORD);
                }
                if (DEBUG && DEBUGGER) this.traceLog('RCLd', dst, src, flagsIn, this.getPS(), result);
                return result;
            };
            
            /**
             * fnRCRb(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (1 or CL)
             * @return {number}
             */
            X86.fnRCRb = function RCRb(dst, src)
            {
                var result = dst;
                var flagsIn = (DEBUG? this.getPS() : 0);
                var count = src & this.nShiftCountMask;
                if (count) {
                    var carry = this.getCarry();
                    count %= 9;
                    if (!count) {
                        carry <<= 7;
                    } else {
                        result = ((dst >> count) | (carry << (8 - count)) | (dst << (9 - count))) & 0xff;
                        carry = dst << (8 - count);
                    }
                    this.setRotateResult(result, carry, X86.RESULT.BYTE);
                }
                if (DEBUG && DEBUGGER) this.traceLog('RCRb', dst, src, flagsIn, this.getPS(), result);
                return result;
            };
            
            /**
             * fnRCRw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (1 or CL)
             * @return {number}
             */
            X86.fnRCRw = function RCRw(dst, src)
            {
                var result = dst;
                var flagsIn = (DEBUG? this.getPS() : 0);
                var count = src & this.nShiftCountMask;
                if (count) {
                    var carry = this.getCarry();
                    count %= 17;
                    if (!count) {
                        carry <<= 15;
                    } else {
                        result = ((dst >> count) | (carry << (16 - count)) | (dst << (17 - count))) & 0xffff;
                        carry = dst << (16 - count);
                    }
                    this.setRotateResult(result, carry, X86.RESULT.WORD);
                }
                if (DEBUG && DEBUGGER) this.traceLog('RCRw', dst, src, flagsIn, this.getPS(), result);
                return result;
            };
            
            /**
             * fnRCRd(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (1 or CL)
             * @return {number}
             */
            X86.fnRCRd = function RCRd(dst, src)
            {
                var result = dst;
                var flagsIn = (DEBUG? this.getPS() : 0);
                var count = src & this.nShiftCountMask;     // this 32-bit-only function could mask with 0x1f directly
                if (count) {
                    var carry = this.getCarry();
                    /*
                     * JavaScript Alert: much like a post-8086 Intel CPU, JavaScript shift counts are mod 32,
                     * so "dst << 32" is equivalent to "dst << 0", which doesn't shift any bits at all.  To
                     * compensate, we shift one bit less than the maximum, and then shift one bit farther.
                     */
                    result = (dst >>> count) | (carry << (32 - count)) | ((dst << (32 - count)) << 1);
                    carry = dst << (32 - count);
                    this.setRotateResult(result, carry, X86.RESULT.DWORD);
                }
                if (DEBUG && DEBUGGER) this.traceLog('RCRd', dst, src, flagsIn, this.getPS(), result);
                return result;
            };
            
            /**
             * fnRETF(n)
             *
             * For protected-mode, this function must be prepared to pop any arguments off the current stack AND
             * whatever stack we may have switched to (setCSIP() returns true only when a stack switch has occurred).
             *
             * @this {X86CPU}
             * @param {number} n
             */
            X86.fnRETF = function RETF(n)
            {
                var newIP = this.popWord();
                var newCS = this.popWord();
                if (DEBUG) this.printMessage(" returning to " + str.toHex(newCS, 4) + ':' + str.toHex(newIP, this.dataSize << 1), this.bitsMessage, true);
            
                n <<= (this.dataSize >> 2);
                if (n) this.setSP(this.getSP() + n);            // TODO: optimize
            
                if (this.setCSIP(newIP, newCS, false)) {        // returns true if a stack switch occurred
                    /*
                     * Fool me once, shame on... whatever.  If setCSIP() indicates a stack switch occurred,
                     * make sure we're in protected mode, because automatic stack switches can't occur in real mode,
                     * and adjusting SP again under those circumstances will likely cause great harm.
                     */
                    this.assert(!!(this.regCR0 & X86.CR0.MSW.PE));
            
                    if (n) this.setSP(this.getSP() + n);        // TODO: optimize
                    /*
                     * As per Intel documentation: "If any of [the DS or ES] registers refer to segments whose DPL is
                     * less than the new CPL (excluding conforming code segments), the segment register is loaded with
                     * the null selector."
                     *
                     * TODO: I'm not clear on whether a conforming code segment must also be marked readable, so I'm playing
                     * it safe and using CODE_CONFORMING instead of CODE_CONFORMING_READABLE.  Also, for the record, I've not
                     * seen this situation occur yet (eg, in OS/2 1.0).
                     */
                    if ((this.segDS.sel & X86.SEL.MASK) && this.segDS.dpl < this.segCS.cpl && (this.segDS.acc & X86.DESC.ACC.TYPE.CODE_CONFORMING) != X86.DESC.ACC.TYPE.CODE_CONFORMING) {
                        this.assert(false);         // I'm not asserting this is bad, I just want to see it in action
                        this.segDS.load(0);
                    }
                    if ((this.segES.sel & X86.SEL.MASK) && this.segES.dpl < this.segCS.cpl && (this.segES.acc & X86.DESC.ACC.TYPE.CODE_CONFORMING) != X86.DESC.ACC.TYPE.CODE_CONFORMING) {
                        this.assert(false);         // I'm not asserting this is bad, I just want to see it in action
                        this.segES.load(0);
                    }
                }
                if (MAXDEBUG && n == 2 && this.cIntReturn) this.checkIntReturn(this.regLIP);
            };
            
            /**
             * fnROLb(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (1 or CL)
             * @return {number}
             */
            X86.fnROLb = function ROLb(dst, src)
            {
                var result = dst;
                var flagsIn = (DEBUG? this.getPS() : 0);
                var count = src & this.nShiftCountMask;
                if (count) {
                    var carry;
                    count &= 0x7;
                    if (!count) {
                        carry = dst << 7;
                    } else {
                        carry = dst << (count - 1);
                        result = ((dst << count) | (dst >> (8 - count))) & 0xff;
                    }
                    this.setRotateResult(result, carry, X86.RESULT.BYTE);
                }
                if (DEBUG && DEBUGGER) this.traceLog('ROLb', dst, src, flagsIn, this.getPS(), result);
                return result;
            };
            
            /**
             * fnROLw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (1 or CL)
             * @return {number}
             */
            X86.fnROLw = function ROLw(dst, src)
            {
                var result = dst;
                var flagsIn = (DEBUG? this.getPS() : 0);
                var count = src & this.nShiftCountMask;
                if (count) {
                    var carry;
                    count &= 0xf;
                    if (!count) {
                        carry = dst << 15;
                    } else {
                        carry = dst << (count - 1);
                        result = ((dst << count) | (dst >> (16 - count))) & 0xffff;
                    }
                    this.setRotateResult(result, carry, X86.RESULT.WORD);
                }
                if (DEBUG && DEBUGGER) this.traceLog('ROLw', dst, src, flagsIn, this.getPS(), result);
                return result;
            };
            
            /**
             * fnROLd(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (1 or CL)
             * @return {number}
             */
            X86.fnROLd = function ROLd(dst, src)
            {
                var result = dst;
                var flagsIn = (DEBUG? this.getPS() : 0);
                var count = src & this.nShiftCountMask;
                if (count) {
                    var carry = dst << (count - 1);
                    result = (dst << count) | (dst >>> (32 - count));
                    this.setRotateResult(result, carry, X86.RESULT.DWORD);
                }
                if (DEBUG && DEBUGGER) this.traceLog('ROLd', dst, src, flagsIn, this.getPS(), result);
                return result;
            };
            
            /**
             * fnRORb(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (1 or CL)
             * @return {number}
             */
            X86.fnRORb = function RORb(dst, src)
            {
                var result = dst;
                var flagsIn = (DEBUG? this.getPS() : 0);
                var count = src & this.nShiftCountMask;
                if (count) {
                    var carry;
                    count &= 0x7;
                    if (!count) {
                        carry = dst;
                    } else {
                        carry = dst << (8 - count);
                        result = ((dst >>> count) | carry) & 0xff;
                    }
                    this.setRotateResult(result, carry, X86.RESULT.BYTE);
                }
                if (DEBUG && DEBUGGER) this.traceLog('RORb', dst, src, flagsIn, this.getPS(), result);
                return result;
            };
            
            /**
             * fnRORw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (1 or CL)
             * @return {number}
             */
            X86.fnRORw = function RORw(dst, src)
            {
                var result = dst;
                var flagsIn = (DEBUG? this.getPS() : 0);
                var count = src & this.nShiftCountMask;
                if (count) {
                    var carry;
                    count &= 0xf;
                    if (!count) {
                        carry = dst;
                    } else {
                        carry = dst << (16 - count);
                        result = ((dst >>> count) | carry) & 0xffff;
                    }
                    this.setRotateResult(result, carry, X86.RESULT.WORD);
                }
                if (DEBUG && DEBUGGER) this.traceLog('RORw', dst, src, flagsIn, this.getPS(), result);
                return result;
            };
            
            /**
             * fnRORd(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (1 or CL)
             * @return {number}
             */
            X86.fnRORd = function RORd(dst, src)
            {
                var result = dst;
                var flagsIn = (DEBUG? this.getPS() : 0);
                var count = src & this.nShiftCountMask;
                if (count) {
                    var carry = dst << (32 - count);
                    result = (dst >>> count) | carry;
                    this.setRotateResult(result, carry, X86.RESULT.DWORD);
                }
                if (DEBUG && DEBUGGER) this.traceLog('RORd', dst, src, flagsIn, this.getPS(), result);
                return result;
            };
            
            /**
             * fnSARb(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (1 or CL, or an immediate byte for 80186/80188 and up)
             * @return {number}
             */
            X86.fnSARb = function SARb(dst, src)
            {
                var count = src & this.nShiftCountMask;
                if (count) {
                    if (count > 9) count = 9;
                    var carry = ((dst << 24) >> 24) >> (count - 1);
                    dst = (carry >> 1) & 0xff;
                    this.setLogicResult(dst, X86.RESULT.BYTE, carry & 0x1);
                }
                return dst;
            };
            
            /**
             * fnSARw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (1 or CL, or an immediate byte for 80186/80188 and up)
             * @return {number}
             */
            X86.fnSARw = function SARw(dst, src)
            {
                var count = src & this.nShiftCountMask;
                if (count) {
                    if (count > 17) count = 17;
                    var carry = ((dst << 16) >> 16) >> (count - 1);
                    dst = (carry >> 1) & 0xffff;
                    this.setLogicResult(dst, X86.RESULT.WORD, carry & 0x1);
                }
                return dst;
            };
            
            /**
             * fnSARd(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (1 or CL, or an immediate byte for 80186/80188 and up)
             * @return {number}
             */
            X86.fnSARd = function SARd(dst, src)
            {
                var count = src & this.nShiftCountMask;
                if (count) {
                    var carry = dst >> (count - 1);
                    dst = (carry >> 1);
                    this.setLogicResult(dst, X86.RESULT.DWORD, carry & 0x1);
                }
                return dst;
            };
            
            /**
             * fnSBBb(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnSBBb = function SBBb(dst, src)
            {
                var b = (dst - src - this.getCarry())|0;
                this.setArithResult(dst, src, b, X86.RESULT.BYTE | X86.RESULT.ALL, true);
                this.nStepCycles -= (this.regEAWrite === X86.ADDR_INVALID? (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesArithRR : this.cycleCounts.nOpCyclesArithRM) : this.cycleCounts.nOpCyclesArithMR);
                return b & 0xff;
            };
            
            /**
             * fnSBBw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnSBBw = function SBBw(dst, src)
            {
                var w = (dst - src - this.getCarry())|0;
                this.setArithResult(dst, src, w, this.dataType | X86.RESULT.ALL, true);
                this.nStepCycles -= (this.regEAWrite === X86.ADDR_INVALID? (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesArithRR : this.cycleCounts.nOpCyclesArithRM) : this.cycleCounts.nOpCyclesArithMR);
                return w & this.dataMask;
            };
            
            /**
             * fnSETcc()
             *
             * @this {X86CPU}
             * @param {function(number,number)} fnSet
             */
            X86.fnSETcc = function SETcc(fnSet)
            {
                this.opFlags |= X86.OPFLAG.NOREAD;
                this.aOpModMemByte[this.getIPByte()].call(this, fnSet);
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? 4 : 5);
            };
            
            /**
             * fnSETO(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst (ignored)
             * @param {number} src (ignored)
             * @return {number}
             */
            X86.fnSETO = function SETO(dst, src)
            {
                return (this.getOF()? 1 : 0);
            };
            
            /**
             * fnSETNO(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst (ignored)
             * @param {number} src (ignored)
             * @return {number}
             */
            X86.fnSETNO = function SETNO(dst, src)
            {
                return (this.getOF()? 0 : 1);
            };
            
            /**
             * fnSETC(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst (ignored)
             * @param {number} src (ignored)
             * @return {number}
             */
            X86.fnSETC = function SETC(dst, src)
            {
                return (this.getCF()? 1 : 0);
            };
            
            /**
             * fnSETNC(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst (ignored)
             * @param {number} src (ignored)
             * @return {number}
             */
            X86.fnSETNC = function SETNC(dst, src)
            {
                return (this.getCF()? 0 : 1);
            };
            
            /**
             * fnSETZ(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst (ignored)
             * @param {number} src (ignored)
             * @return {number}
             */
            X86.fnSETZ = function SETZ(dst, src)
            {
                return (this.getZF()? 1 : 0);
            };
            
            /**
             * fnSETNZ(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst (ignored)
             * @param {number} src (ignored)
             * @return {number}
             */
            X86.fnSETNZ = function SETNZ(dst, src)
            {
                return (this.getZF()? 0 : 1);
            };
            
            /**
             * fnSETBE(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst (ignored)
             * @param {number} src (ignored)
             * @return {number}
             */
            X86.fnSETBE = function SETBE(dst, src)
            {
                return (this.getCF() || this.getZF()? 1 : 0);
            };
            
            /**
             * fnSETNBE(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst (ignored)
             * @param {number} src (ignored)
             * @return {number}
             */
            X86.fnSETNBE = function SETNBE(dst, src)
            {
                return (this.getCF() || this.getZF()? 0 : 1);
            };
            
            /**
             * fnSETS(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst (ignored)
             * @param {number} src (ignored)
             * @return {number}
             */
            X86.fnSETS = function SETS(dst, src)
            {
                return (this.getSF()? 1 : 0);
            };
            
            /**
             * fnSETNS(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst (ignored)
             * @param {number} src (ignored)
             * @return {number}
             */
            X86.fnSETNS = function SETNS(dst, src)
            {
                return (this.getSF()? 0 : 1);
            };
            
            /**
             * fnSETP(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst (ignored)
             * @param {number} src (ignored)
             * @return {number}
             */
            X86.fnSETP = function SETP(dst, src)
            {
                return (this.getPF()? 1 : 0);
            };
            
            /**
             * fnSETNP(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst (ignored)
             * @param {number} src (ignored)
             * @return {number}
             */
            X86.fnSETNP = function SETNP(dst, src)
            {
                return (this.getPF()? 0 : 1);
            };
            
            /**
             * fnSETL(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst (ignored)
             * @param {number} src (ignored)
             * @return {number}
             */
            X86.fnSETL = function SETL(dst, src)
            {
                return (!this.getSF() != !this.getOF()? 1 : 0);
            };
            
            /**
             * fnSETNL(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst (ignored)
             * @param {number} src (ignored)
             * @return {number}
             */
            X86.fnSETNL = function SETNL(dst, src)
            {
                return (!this.getSF() != !this.getOF()? 0 : 1);
            };
            
            /**
             * fnSETLE(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst (ignored)
             * @param {number} src (ignored)
             * @return {number}
             */
            X86.fnSETLE = function SETLE(dst, src)
            {
                return (this.getZF() || !this.getSF() != !this.getOF()? 1 : 0);
            };
            
            /**
             * fnSETNLE(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst (ignored)
             * @param {number} src (ignored)
             * @return {number}
             */
            X86.fnSETNLE = function SETNLE(dst, src)
            {
                return (this.getZF() || !this.getSF() != !this.getOF()? 0 : 1);
            };
            
            /**
             * fnSGDT(dst, src)
             *
             * op=0x0F,0x01,reg=0x0 (GRP7:SGDT)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null)
             * @return {number}
             */
            X86.fnSGDT = function SGDT(dst, src)
            {
                if (this.regEA === X86.ADDR_INVALID) {
                    X86.opInvalid.call(this);
                } else {
                    /*
                     * We don't need to setShort() the first word of the operand, because the ModRM group decoder that
                     * calls us does that automatically with the value we return (dst).
                     */
                    dst = this.addrGDTLimit - this.addrGDT;
                    this.assert(!(dst & ~0xffff));
                    /*
                     * We previously left the 6th byte of the target operand "undefined".  But it turns out we have to set
                     * it to *something*, because there's processor detection in PC-DOS 7.0 (at least in the SETUP portion)
                     * that looks like this:
                     *
                     *      145E:4B84 9C            PUSHF
                     *      145E:4B85 55            PUSH     BP
                     *      145E:4B86 8BEC          MOV      BP,SP
                     *      145E:4B88 B80000        MOV      AX,0000
                     *      145E:4B8B 50            PUSH     AX
                     *      145E:4B8C 9D            POPF
                     *      145E:4B8D 9C            PUSHF
                     *      145E:4B8E 58            POP      AX
                     *      145E:4B8F 2500F0        AND      AX,F000
                     *      145E:4B92 3D00F0        CMP      AX,F000
                     *      145E:4B95 7511          JNZ      4BA8
                     *      145E:4BA8 C8060000      ENTER    0006,00
                     *      145E:4BAC 0F0146FA      SGDT     [BP-06]
                     *      145E:4BB0 807EFFFF      CMP      [BP-01],FF
                     *      145E:4BB4 C9            LEAVE
                     *      145E:4BB5 BA8603        MOV      DX,0386
                     *      145E:4BB8 7503          JNZ      4BBD
                     *      145E:4BBA BA8602        MOV      DX,0286
                     *      145E:4BBD 89163004      MOV      [0430],DX
                     *      145E:4BC1 5D            POP      BP
                     *      145E:4BC2 9D            POPF
                     *      145E:4BC3 CB            RETF
                     *
                     * This code is expecting SGDT on an 80286 to set the 6th "undefined" byte to 0xFF.
                     *
                     * The 80386 adds an additional wrinkle: the 6th byte must be 0x00 if the OPERAND size is 2, whereas
                     * it must passed through if the OPERAND size is 4.
                     *
                     * In addition, when the OPERAND size is 4, the ModRM group decoder will call setLong(dst) rather than
                     * setShort(dst); we could fix that by forcing the dataSize to 2, but it seems simpler to set the high
                     * bits (16-31) of dst to match the low bits (0-15) of addr, so that the caller will harmlessly rewrite
                     * what we already wrote with the setLong() below.
                     */
                    var addr = this.addrGDT;
                    if (this.model == X86.MODEL_80286) {
                        addr |= (0xff000000|0);
                    }
                    else if (this.model >= X86.MODEL_80386) {
                        if (this.dataSize == 2) {
                            addr &= 0x00ffffff;
                        } else {
                            dst |= (addr << 16);
                        }
                    }
                    this.setLong(this.regEA + 2, addr);
                    this.nStepCycles -= 11;
                }
                return dst;
            };
            
            /**
             * fnSHLb(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (1 or CL, or an immediate byte for 80186/80188 and up)
             * @return {number}
             */
            X86.fnSHLb = function SHLb(dst, src)
            {
                var result = dst;
                var flagsIn = (DEBUG? this.getPS() : 0);
                var count = src & this.nShiftCountMask;
                if (count) {
                    var carry = 0;
                    if (count > 8) {
                        result = 0;
                    } else {
                        carry = dst << (count - 1);
                        result = (carry << 1) & 0xff;
                    }
                    this.setLogicResult(result, X86.RESULT.BYTE, carry & X86.RESULT.BYTE, (result ^ carry) & X86.RESULT.BYTE);
                }
                if (DEBUG && DEBUGGER) this.traceLog('SHLb', dst, src, flagsIn, this.getPS(), result);
                return result;
            };
            
            /**
             * fnSHLw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (1 or CL, or an immediate byte for 80186/80188 and up)
             * @return {number}
             */
            X86.fnSHLw = function SHLw(dst, src)
            {
                var result = dst;
                var flagsIn = (DEBUG? this.getPS() : 0);
                var count = src & this.nShiftCountMask;
                if (count) {
                    var carry = 0;
                    if (count > 16) {
                        result = 0;
                    } else {
                        carry = dst << (count - 1);
                        result = (carry << 1) & 0xffff;
                    }
                    this.setLogicResult(result, X86.RESULT.WORD, carry & X86.RESULT.WORD, (result ^ carry) & X86.RESULT.WORD);
                }
                if (DEBUG && DEBUGGER) this.traceLog('SHLw', dst, src, flagsIn, this.getPS(), result);
                return result;
            };
            
            /**
             * fnSHLd(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (1 or CL, or an immediate byte for 80186/80188 and up)
             * @return {number}
             */
            X86.fnSHLd = function SHLd(dst, src)
            {
                var result = dst;
                var flagsIn = (DEBUG? this.getPS() : 0);
                var count = src & this.nShiftCountMask;     // this 32-bit-only function could mask with 0x1f directly
                if (count) {
                    var carry = dst << (count - 1);
                    result = (carry << 1);
                    this.setLogicResult(result, X86.RESULT.DWORD, carry & X86.RESULT.DWORD, (result ^ carry) & X86.RESULT.DWORD);
                }
                if (DEBUG && DEBUGGER) this.traceLog('SHLd', dst, src, flagsIn, this.getPS(), result);
                return result;
            };
            
            /**
             * fnSHLDw(dst, src, count)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @param {number} count (0-31)
             * @return {number}
             */
            X86.fnSHLDw = function SHLDw(dst, src, count)
            {
                if (count) {
                    if (count > 16) {
                        dst = src;
                        count -= 16;
                    }
                    var carry = dst << (count - 1);
                    dst = ((carry << 1) | (src >> (16 - count))) & 0xffff;
                    this.setLogicResult(dst, X86.RESULT.WORD, carry & X86.RESULT.WORD);
                }
                return dst;
            };
            
            /**
             * fnSHLDd(dst, src, count)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @param {number} count
             * @return {number}
             */
            X86.fnSHLDd = function SHLDd(dst, src, count)
            {
                if (count) {
                    var carry = dst << (count - 1);
                    dst = (carry << 1) | (src >> (32 - count));
                    this.setLogicResult(dst, X86.RESULT.DWORD, carry & X86.RESULT.DWORD);
                }
                return dst;
            };
            
            /**
             * fnSHLDwi(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnSHLDwi = function SHLDwi(dst, src)
            {
                return X86.fnSHLDw.call(this, dst, src, this.getIPByte());
            };
            
            /**
             * fnSHLDdi(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnSHLDdi = function SHLDdi(dst, src)
            {
                return X86.fnSHLDd.call(this, dst, src, this.getIPByte());
            };
            
            /**
             * fnSHLDwCL(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnSHLDwCL = function SHLDwCL(dst, src)
            {
                return X86.fnSHLDw.call(this, dst, src, this.regECX & 0x1f);
            };
            
            /**
             * fnSHLDdCL(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnSHLDdCL = function SHLDdCL(dst, src)
            {
                return X86.fnSHLDd.call(this, dst, src, this.regECX & 0x1f);
            };
            
            /**
             * fnSHRb(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (1 or CL, or an immediate byte for 80186/80188 and up)
             * @return {number}
             */
            X86.fnSHRb = function SHRb(dst, src)
            {
                var count = src & this.nShiftCountMask;
                if (count) {
                    var carry = (count > 8? 0 : (dst >>> (count - 1)));
                    dst = (carry >>> 1) & 0xff;
                    this.setLogicResult(dst, X86.RESULT.BYTE, carry & 0x1, dst & X86.RESULT.BYTE);
                }
                return dst;
            };
            
            /**
             * fnSHRw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (1 or CL, or an immediate byte for 80186/80188 and up)
             * @return {number}
             */
            X86.fnSHRw = function SHRw(dst, src)
            {
                var count = src & this.nShiftCountMask;
                if (count) {
                    var carry = (count > 16? 0 : (dst >>> (count - 1)));
                    dst = (carry >>> 1) & 0xffff;
                    this.setLogicResult(dst, X86.RESULT.WORD, carry & 0x1, dst & X86.RESULT.WORD);
                }
                return dst;
            };
            
            /**
             * fnSHRd(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (1 or CL, or an immediate byte for 80186/80188 and up)
             * @return {number}
             */
            X86.fnSHRd = function SHRd(dst, src)
            {
                var count = src & this.nShiftCountMask;
                if (count) {
                    var carry = (dst >>> (count - 1));
                    dst = (carry >>> 1);
                    this.setLogicResult(dst, X86.RESULT.DWORD, carry & 0x1, dst & X86.RESULT.DWORD);
                }
                return dst;
            };
            
            /**
             * fnSHRDw(dst, src, count)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @param {number} count (0-31)
             * @return {number}
             */
            X86.fnSHRDw = function SHRDw(dst, src, count)
            {
                if (count) {
                    if (count > 16) {
                        dst = src;
                        count -= 16;
                    }
                    var carry = dst >> (count - 1);
                    dst = ((carry >> 1) | (src << (16 - count))) & 0xffff;
                    this.setLogicResult(dst, X86.RESULT.WORD, carry & 0x1);
                }
                return dst;
            };
            
            /**
             * fnSHRDd(dst, src, count)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @param {number} count
             * @return {number}
             */
            X86.fnSHRDd = function SHRDd(dst, src, count)
            {
                if (count) {
                    var carry = dst >> (count - 1);
                    dst = (carry >> 1) | (src << (32 - count));
                    this.setLogicResult(dst, X86.RESULT.DWORD, carry & 0x1);
                }
                return dst;
            };
            
            /**
             * fnSHRDwi(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnSHRDwi = function SHRDwi(dst, src)
            {
                return X86.fnSHRDw.call(this, dst, src, this.getIPByte());
            };
            
            /**
             * fnSHRDdi(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnSHRDdi = function SHRDdi(dst, src)
            {
                return X86.fnSHRDd.call(this, dst, src, this.getIPByte());
            };
            
            /**
             * fnSHRDwCL(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnSHRDwCL = function SHRDwCL(dst, src)
            {
                return X86.fnSHRDw.call(this, dst, src, this.regECX & 0x1f);
            };
            
            /**
             * fnSHRDdCL(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnSHRDdCL = function SHRDdCL(dst, src)
            {
                return X86.fnSHRDd.call(this, dst, src, this.regECX & 0x1f);
            };
            
            /**
             * fnSIDT(dst, src)
             *
             * op=0x0F,0x01,reg=0x1 (GRP7:SIDT)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null)
             * @return {number}
             */
            X86.fnSIDT = function SIDT(dst, src)
            {
                if (this.regEA === X86.ADDR_INVALID) {
                    X86.opInvalid.call(this);
                } else {
                    /*
                     * We don't need to setShort() the first word of the operand, because the ModRM group decoder that calls
                     * us does that automatically with the value we return (dst).
                     */
                    dst = this.addrIDTLimit - this.addrIDT;
                    this.assert(!(dst & ~0xffff));
                    /*
                     * As with SGDT, the 6th byte is technically "undefined" on an 80286, but we now set it to 0xFF, for the
                     * same reasons discussed in SGDT (above).
                     */
                    var addr = this.addrIDT;
                    if (this.model == X86.MODEL_80286) {
                        addr |= (0xff000000|0);
                    }
                    else if (this.model >= X86.MODEL_80386) {
                        if (this.dataSize == 2) {
                            addr &= 0x00ffffff;
                        } else {
                            dst |= (addr << 16);
                        }
                    }
                    this.setLong(this.regEA + 2, addr);
                    this.nStepCycles -= 12;
                }
                return dst;
            };
            
            /**
             * fnSLDT(dst, src)
             *
             * op=0x0F,0x00,reg=0x0 (GRP6:SLDT)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null)
             * @return {number}
             */
            X86.fnSLDT = function SLDT(dst, src)
            {
                this.nStepCycles -= (2 + (this.regEA === X86.ADDR_INVALID? 0 : 1));
                return this.segLDT.sel;
            };
            
            /**
             * fnSMSW(dst, src)
             *
             * op=0x0F,0x01,reg=0x4 (GRP7:SMSW)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null)
             * @return {number}
             */
            X86.fnSMSW = function SMSW(dst, src)
            {
                this.nStepCycles -= (2 + (this.regEA === X86.ADDR_INVALID? 0 : 1));
                return this.regCR0;
            };
            
            /**
             * fnSTR(dst, src)
             *
             * op=0x0F,0x00,reg=0x1 (GRP6:STR)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null)
             * @return {number}
             */
            X86.fnSTR = function STR(dst, src)
            {
                this.nStepCycles -= (2 + (this.regEA === X86.ADDR_INVALID? 0 : 1));
                return this.segTSS.sel;
            };
            
            /**
             * fnSUBb(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnSUBb = function SUBb(dst, src)
            {
                var b = (dst - src)|0;
                this.setArithResult(dst, src, b, X86.RESULT.BYTE | X86.RESULT.ALL, true);
                this.nStepCycles -= (this.regEAWrite === X86.ADDR_INVALID? (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesArithRR : this.cycleCounts.nOpCyclesArithRM) : this.cycleCounts.nOpCyclesArithMR);
                return b & 0xff;
            };
            
            /**
             * fnSUBw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnSUBw = function SUBw(dst, src)
            {
                var w = (dst - src)|0;
                this.setArithResult(dst, src, w, this.dataType | X86.RESULT.ALL, true);
                this.nStepCycles -= (this.regEAWrite === X86.ADDR_INVALID? (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesArithRR : this.cycleCounts.nOpCyclesArithRM) : this.cycleCounts.nOpCyclesArithMR);
                return w & this.dataMask;
            };
            
            /**
             * fnTESTib(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null; we have to supply the source ourselves)
             * @return {number}
             */
            X86.fnTESTib = function TESTib(dst, src)
            {
                src = this.getIPByte();
                this.setLogicResult(dst & src, X86.RESULT.BYTE);
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesTestRI : this.cycleCounts.nOpCyclesTestMI);
                this.opFlags |= X86.OPFLAG.NOWRITE;
                return dst;
            };
            
            /**
             * fnTESTiw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null; we have to supply the source ourselves)
             * @return {number}
             */
            X86.fnTESTiw = function TESTiw(dst, src)
            {
                src = this.getIPWord();
                this.setLogicResult(dst & src, this.dataType);
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesTestRI : this.cycleCounts.nOpCyclesTestMI);
                this.opFlags |= X86.OPFLAG.NOWRITE;
                return dst;
            };
            
            /**
             * fnTESTb(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnTESTb = function TESTb(dst, src)
            {
                this.setLogicResult(dst & src, X86.RESULT.BYTE);
                this.nStepCycles -= (this.regEAWrite === X86.ADDR_INVALID? (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesTestRR : this.cycleCounts.nOpCyclesTestRM) : this.cycleCounts.nOpCyclesTestRM);
                this.opFlags |= X86.OPFLAG.NOWRITE;
                return dst;
            };
            
            /**
             * fnTESTw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnTESTw = function TESTw(dst, src)
            {
                this.setLogicResult(dst & src, this.dataType);
                this.nStepCycles -= (this.regEAWrite === X86.ADDR_INVALID? (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesTestRR : this.cycleCounts.nOpCyclesTestRM) : this.cycleCounts.nOpCyclesTestRM);
                this.opFlags |= X86.OPFLAG.NOWRITE;
                return dst;
            };
            
            /**
             * fnVERR(dst, src)
             *
             * op=0x0F,0x00,reg=0x4 (GRP6:VERR)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null)
             * @return {number}
             */
            X86.fnVERR = function VERR(dst, src)
            {
                this.opFlags |= X86.OPFLAG.NOWRITE;
                /*
                 * Currently, segVER.load() will return an error only if the selector is beyond the bounds of the
                 * descriptor table or the descriptor is not for a segment.
                 */
                this.nStepCycles -= (14 + (this.regEA === X86.ADDR_INVALID? 0 : 2));
                if (this.segVER.load(dst, true) !== X86.ADDR_INVALID) {
                    /*
                     * Verify that this is a readable segment; that is, of these four combinations (code+readable,
                     * code+nonreadable, data+writable, date+nonwritable), make sure we're not the second combination.
                     */
                    if ((this.segVER.acc & (X86.DESC.ACC.TYPE.READABLE | X86.DESC.ACC.TYPE.CODE)) != X86.DESC.ACC.TYPE.CODE) {
                        /*
                         * For VERR, if the code segment is readable and conforming, the descriptor privilege level
                         * (DPL) can be any value.
                         *
                         * Otherwise, DPL must be greater than or equal to (have less or the same privilege as) both the
                         * current privilege level and the selector's RPL.
                         */
                        if (this.segVER.dpl >= this.segCS.cpl && this.segVER.dpl >= (dst & X86.SEL.RPL) ||
                            (this.segVER.acc & X86.DESC.ACC.TYPE.CODE_CONFORMING) == X86.DESC.ACC.TYPE.CODE_CONFORMING) {
                            this.setZF();
                            return dst;
                        }
                    }
                }
                this.clearZF();
                return dst;
            };
            
            /**
             * fnVERW(dst, src)
             *
             * op=0x0F,0x00,reg=0x5 (GRP6:VERW)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src (null)
             * @return {number}
             */
            X86.fnVERW = function VERW(dst, src)
            {
                this.opFlags |= X86.OPFLAG.NOWRITE;
                /*
                 * Currently, segVER.load() will return an error only if the selector is beyond the bounds of the
                 * descriptor table or the descriptor is not for a segment.
                 */
                this.nStepCycles -= (14 + (this.regEA === X86.ADDR_INVALID? 0 : 2));
                if (this.segVER.load(dst, true) !== X86.ADDR_INVALID) {
                    /*
                     * Verify that this is a writable data segment
                     */
                    if ((this.segVER.acc & (X86.DESC.ACC.TYPE.WRITABLE | X86.DESC.ACC.TYPE.CODE)) == X86.DESC.ACC.TYPE.WRITABLE) {
                        /*
                         * DPL must be greater than or equal to (have less or the same privilege as) both the current
                         * privilege level and the selector's RPL.
                         */
                        if (this.segVER.dpl >= this.segCS.cpl && this.segVER.dpl >= (dst & X86.SEL.RPL)) {
                            this.setZF();
                            return dst;
                        }
                    }
                }
                this.clearZF();
                return dst;
            };
            
            /**
             * fnXCHGrb(dst, src)
             *
             * If an instruction like "XCHG AL,AH" was a traditional "op dst,src" instruction, dst would contain AL,
             * src would contain AH, and we would return src, which the caller would then store in AL, and we'd be done.
             *
             * However, that's only half of what XCHG does, so THIS function must perform the other half; in the previous
             * example, that means storing the original AL (dst) into AH (src).
             *
             * BACKTRACK support is incomplete without also passing bti values as parameters, because the caller will
             * store btiAH in btiAL, but the original btiAL will be lost.  Similarly, if src is a memory operand, the
             * caller will store btiEALo in btiAL, but again, the original btiAL will be lost.
             *
             * BACKTRACK support for memory operands could be fixed by decoding the dst register in order to determine the
             * corresponding bti and then temporarily storing it in btiEALo around the setEAByte() call below.  Register-only
             * XCHGs would require a more extensive hack.  For now, I'm going to live with one-way BACKTRACK support here.
             *
             * TODO: Implement full BACKTRACK support for XCHG instructions.
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnXCHGrb = function XCHGRb(dst, src)
            {
                if (this.regEA === X86.ADDR_INVALID) {
                    /*
                     * Decode which register was src
                     */
                    switch (this.bModRM & 0x7) {
                    case 0x0:       // AL
                        this.regEAX = (this.regEAX & ~0xff) | dst;
                        break;
                    case 0x1:       // CL
                        this.regECX = (this.regECX & ~0xff) | dst;
                        break;
                    case 0x2:       // DL
                        this.regEDX = (this.regEDX & ~0xff) | dst;
                        break;
                    case 0x3:       // BL
                        this.regEBX = (this.regEBX & ~0xff) | dst;
                        break;
                    case 0x4:       // AH
                        this.regEAX = (this.regEAX & 0xff) | (dst << 8);
                        break;
                    case 0x5:       // CH
                        this.regECX = (this.regECX & 0xff) | (dst << 8);
                        break;
                    case 0x6:       // DH
                        this.regEDX = (this.regEDX & 0xff) | (dst << 8);
                        break;
                    case 0x7:       // BH
                        this.regEBX = (this.regEBX & 0xff) | (dst << 8);
                        break;
                    default:
                        break;      // there IS no other case, but JavaScript inspections don't know that
                    }
                    this.nStepCycles -= this.cycleCounts.nOpCyclesXchgRR;
                } else {
                    /*
                     * This is a case where the ModRM decoder that's calling us didn't know it should have called modEAByte()
                     * instead of getEAByte(), so we compensate by updating regEAWrite.  However, setEAByte() has since been
                     * changed to revalidate the write using segEA:offEA, so updating regEAWrite here isn't strictly necessary.
                     */
                    this.regEAWrite = this.regEA;
                    this.setEAByte(dst);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesXchgRM;
                }
                return src;
            };
            
            /**
             * fnXCHGrw(dst, src)
             *
             * If an instruction like "XCHG AX,DX" was a traditional "op dst,src" instruction, dst would contain AX,
             * src would contain DX, and we would return src, which the caller would then store in AX, and we'd be done.
             *
             * However, that's only half of what XCHG does, so THIS function must perform the other half; in the previous
             * example, that means storing the original AX (dst) into DX (src).
             *
             * TODO: Implement full BACKTRACK support for XCHG instructions (see fnXCHGrb comments).
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnXCHGrw = function XCHGRw(dst, src)
            {
                if (this.regEA === X86.ADDR_INVALID) {
                    /*
                     * Decode which register was src
                     */
                    switch (this.bModRM & 0x7) {
                    case 0x0:       // AX
                        this.regEAX = dst;
                        break;
                    case 0x1:       // CX
                        this.regECX = dst;
                        break;
                    case 0x2:       // DX
                        this.regEDX = dst;
                        break;
                    case 0x3:       // BX
                        this.regEBX = dst;
                        break;
                    case 0x4:       // SP
                        this.setSP(dst);
                        break;
                    case 0x5:       // BP
                        this.regEBP = dst;
                        break;
                    case 0x6:       // SI
                        this.regESI = dst;
                        break;
                    case 0x7:       // DI
                        this.regEDI = dst;
                        break;
                    default:
                        break;      // there IS no other case, but JavaScript inspections don't know that
                    }
                    this.nStepCycles -= this.cycleCounts.nOpCyclesXchgRR;
                } else {
                    /*
                     * This is a case where the ModRM decoder that's calling us didn't know it should have called modEAWord()
                     * instead of getEAWord(), so we compensate by updating regEAWrite.  However, setEAWord() has since been
                     * changed to revalidate the write using segEA:offEA, so updating regEAWrite here isn't strictly necessary.
                     */
                    this.regEAWrite = this.regEA;
                    this.setEAWord(dst);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesXchgRM;
                }
                return src;
            };
            
            /**
             * fnXORb(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnXORb = function XORb(dst, src)
            {
                var b = dst ^ src;
                this.setLogicResult(b, X86.RESULT.BYTE);
                this.nStepCycles -= (this.regEAWrite === X86.ADDR_INVALID? (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesArithRR : this.cycleCounts.nOpCyclesArithRM) : this.cycleCounts.nOpCyclesArithMR);
                return b;
            };
            
            /**
             * fnXORw(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnXORw = function XORw(dst, src)
            {
                this.nStepCycles -= (this.regEAWrite === X86.ADDR_INVALID? (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesArithRR : this.cycleCounts.nOpCyclesArithRM) : this.cycleCounts.nOpCyclesArithMR);
                return this.setLogicResult(dst ^ src, this.dataType);
            };
            
            /**
             * fnGRPFault(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnGRPFault = function GRPFault(dst, src)
            {
                X86.fnFault.call(this, X86.EXCEPTION.GP_FAULT, 0);
                return dst;
            };
            
            /**
             * fnGRPInvalid(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnGRPInvalid = function GRPInvalid(dst, src)
            {
                X86.opInvalid.call(this);
                return dst;
            };
            
            /**
             * fnGRPUndefined(dst, src)
             *
             * @this {X86CPU}
             * @param {number} dst
             * @param {number} src
             * @return {number}
             */
            X86.fnGRPUndefined = function GRPUndefined(dst, src)
            {
                X86.opUndefined.call(this);
                return dst;
            };
            
            /**
             * fnDIVOverflow()
             *
             * @this {X86CPU}
             */
            X86.fnDIVOverflow = function DIVOverflow()
            {
                this.setIP(this.opLIP - this.segCS.base);
                /*
                 * TODO: Determine the proper cycle cost.
                 */
                X86.fnINT.call(this, X86.EXCEPTION.DIV_ERR, null, 2);
            };
            
            /**
             * fnSrcCount1()
             *
             * @this {X86CPU}
             * @return {number}
             */
            X86.fnSrcCount1 = function SrcCount1()
            {
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? 2 : this.cycleCounts.nOpCyclesShift1M);
                return 1;
            };
            
            /**
             * fnSrcCountCL()
             *
             * @this {X86CPU}
             * @return {number}
             */
            X86.fnSrcCountCL = function SrcCountCL()
            {
                var count = this.regECX & 0xff;
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesShiftCR : this.cycleCounts.nOpCyclesShiftCM) + (count << this.cycleCounts.nOpCyclesShiftCS);
                return count;
            };
            
            /**
             * fnSrcCountN()
             *
             * @this {X86CPU}
             * @return {number}
             */
            X86.fnSrcCountN = function SrcCountN()
            {
                var count = this.getIPByte();
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? this.cycleCounts.nOpCyclesShiftCR : this.cycleCounts.nOpCyclesShiftCM) + (count << this.cycleCounts.nOpCyclesShiftCS);
                return count;
            };
            
            /**
             * fnSrcNone()
             *
             * @this {X86CPU}
             * @return {number|null}
             */
            X86.fnSrcNone = function SrcNone()
            {
                return null;
            };
            
            /**
             * fnFault(nFault, nError, fHalt, nCycles)
             *
             * Helper to dispatch faults.
             *
             * @this {X86CPU}
             * @param {number} nFault
             * @param {number} [nError] (if omitted, no error code will be pushed)
             * @param {boolean} [fHalt] will halt the CPU if true *and* a Debugger is loaded
             * @param {number} [nCycles] cycle count to pass through to fnINT(), if any
             */
            X86.fnFault = function(nFault, nError, fHalt, nCycles)
            {
                if (!this.aFlags.fComplete) {
                    this.printMessage("Fault " + str.toHexByte(nFault) + " blocked by Debugger", Messages.WARN);
                    this.setIP(this.opLIP - this.segCS.base);
                    return;
                }
            
                var fDispatch = false;
                if (this.model >= X86.MODEL_80186) {
                    if (this.nFault < 0) {
                        /*
                         * Single-fault (error code is passed through, and the responsible instruction is restartable)
                         */
                        this.setIP(this.opLIP - this.segCS.base);
                        fDispatch = true;
                    } else if (this.nFault != X86.EXCEPTION.DF_FAULT) {
                        /*
                         * Double-fault (error code is always zero, and the responsible instruction is not restartable)
                         */
                        nError = 0;
                        nFault = X86.EXCEPTION.DF_FAULT;
                        fDispatch = true;
                    } else {
                        /*
                         * Triple-fault (usually referred to in Intel literature as a "shutdown", but at least on the 80286,
                         * it's actually a "reset")
                         */
                        X86.fnFaultMessage.call(this, -1, 0, fHalt);
                        this.resetRegs();
                        return;
                    }
                }
            
                if (X86.fnFaultMessage.call(this, nFault, nError, fHalt)) {
                    fDispatch = false;
                }
            
                if (fDispatch) X86.fnINT.call(this, this.nFault = nFault, nError, nCycles || 0);
            
                /*
                 * Since this fault is likely being issued in the context of an instruction that hasn't finished
                 * executing, and since we currently don't do anything to interrupt that execution (eg, throw a
                 * JavaScript exception), we should shut off all further reads/writes for the current instruction.
                 *
                 * That's easy for any EA-based memory accesses: simply set both the NOREAD and NOWRITE flags.
                 * However, there are also direct, non-EA-based memory accesses to consider.  A perfect example is
                 * opPUSHA(): if a GP fault occurs on any PUSH other than the last, a subsequent PUSH is likely to
                 * cause another fault, which we will misinterpret as a double-fault.
                 *
                 * TODO: Throw a special JavaScript exception that cpu.js must intercept and quietly ignore.
                 */
                this.opFlags |= (X86.OPFLAG.NOREAD | X86.OPFLAG.NOWRITE);
            };
            
            /**
             * fnPageFault(addr, fPresent, fWrite)
             *
             * Helper to dispatch page faults.
             *
             * @this {X86CPU}
             * @param {number} addr
             * @param {boolean} fPresent
             * @param {boolean} fWrite
             */
            X86.fnPageFault = function(addr, fPresent, fWrite)
            {
                this.regCR2 = addr;
                var nError = 0;
                if (fPresent) nError |= X86.PTE.PRESENT;
                if (fWrite) nError |= X86.PTE.READWRITE;
                if (this.segCS.cpl == 3) nError |= X86.PTE.USER;
                X86.fnFault.call(this, X86.EXCEPTION.PG_FAULT, nError);
            };
            
            /**
             * fnFaultMessage()
             *
             * Aside from giving the Debugger an opportunity to report every fault, this also gives us the ability to
             * halt exception processing in tracks: return true to prevent the fault handler from being dispatched.
             *
             * At the moment, the only Debugger control you have over fault interception is setting MESSAGE.FAULT, which
             * will display faults as they occur, and MESSAGE.HALT, which will halt after any Debugger message, including
             * MESSAGE.FAULT.  If you want execution to continue after halting, clear MESSAGE.FAULT and/or MESSAGE.HALT,
             * or single-step over the offending instruction, which will allow the fault to be dispatched.
             *
             * @this {X86CPU}
             * @param {number} nFault
             * @param {number} [nError] (if omitted, no error code will be reported)
             * @param {boolean} [fHalt] true if the CPU should always be halted, false if "it depends"
             * @return {boolean|undefined} true to block the fault (often desirable when fHalt is true), otherwise dispatch it
             */
            X86.fnFaultMessage = function(nFault, nError, fHalt)
            {
                var bitsMessage = Messages.FAULT;
            
                var bOpcode = this.probeAddr(this.regLIP);
            
                /*
                 * OS/2 1.0 uses an INT3 (0xCC) opcode in conjunction with an invalid IDT to trigger a triple-fault
                 * reset and return to real-mode, and these resets happen quite frequently during boot; for example,
                 * OS/2 startup messages are displayed using a series of INT 0x10 BIOS calls for each character, and
                 * each series of BIOS calls requires a round-trip mode switch.
                 *
                 * Since we really only want to halt on "bad" faults, not "good" (ie, intentional) faults, we take
                 * advantage of the fact that all 3 faults comprising the triple-fault point to an INT3 (0xCC) opcode,
                 * and so whenever we see that opcode, we ignore the caller's fHalt flag, and suppress FAULT messages
                 * unless CPU messages are also enabled.
                 *
                 * When a triple fault shows up, nFault is -1; it displays as 0xff only because we use toHexByte().
                 */
                if (bOpcode == X86.OPCODE.INT3 && !this.addrIDTLimit) {
                    fHalt = false;
                    bitsMessage |= Messages.CPU;
                }
            
                /*
                 * Similarly, the PC AT ROM BIOS deliberately generates a couple of GP faults as part of the POST
                 * (Power-On Self Test); we don't want to ignore those, but we don't want to halt on them either.  We
                 * detect those faults by virtue of the LIP being in the range 0x0F0000 to 0x0FFFFF.
                 */
                if (this.regLIP >= 0x0F0000 && this.regLIP <= 0x0FFFFF) {
                    fHalt = false;
                }
            
                /*
                 * However, the foregoing notwithstanding, if MESSAGE.HALT is enabled along with all the other required
                 * MESSAGE bits, then we want to halt regardless.
                 *
                 * TODO: Eventually remove the code below that halts on all MODEL_80386 GP_FAULTs and PG_FAULTs; this is
                 * just to make it easier to catch bad faults on DeskPro 386 configurations.
                 */
                if (DEBUGGER && this.model == X86.MODEL_80386 && (nFault == X86.EXCEPTION.GP_FAULT || nFault == X86.EXCEPTION.PG_FAULT) || this.messageEnabled(bitsMessage | Messages.HALT)) {
                    fHalt = true;
                }
            
                if (this.messageEnabled(bitsMessage) || fHalt) {
                    var sMessage = (fHalt? '\n' : '') + "Fault " + str.toHexByte(nFault) + (nError != null? " (" + str.toHexWord(nError) + ")" : "") + " on opcode " + str.toHexByte(bOpcode) + " at " + this.dbg.hexOffset(this.getIP(), this.getCS()) + " (%" + str.toHex(this.regLIP, 6) + ")";
                    var fRunning = this.aFlags.fRunning;
                    if (this.printMessage(sMessage, bitsMessage)) {
                        if (fHalt) {
                            /*
                             * By setting fHalt to fRunning (which is true while running but false while single-stepping),
                             * this allows a fault to be dispatched when you single-step over a faulting instruction; you can
                             * then continue single-stepping into the fault handler, or start running again.
                             *
                             * Note that we had to capture fRunning before calling printMessage(), because if MESSAGE.HALT
                             * is set, printMessage() will have already halted the CPU.
                             */
                            fHalt = fRunning;
                            this.dbg.stopCPU();
                        }
                    } else {
                        /*
                         * If printMessage() returned false, then messageEnabled() must have returned false as well, which
                         * means that fHalt must be true.  Which means we should shut the machine down.
                         */
                        this.assert(fHalt);
                        this.notice(sMessage);
                        this.stopCPU();
                    }
                }
                return fHalt;
            };
            
          • x86modb.js
            /**
             * @fileoverview Implements PCjs 8086-80286 ModRegRM byte decoders.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Sep-05
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var X86         = require("./x86");
            }
            
            var X86ModB = {};
            
            X86ModB.aOpModReg = [
                /**
                 * opModRegByte00(fn): mod=00 (src:mem)  reg=000 (dst:AL)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte00(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX + this.regESI));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegByte01(fn): mod=00 (src:mem)  reg=000 (dst:AL)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte01(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX + this.regEDI));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegByte02(fn): mod=00 (src:mem)  reg=000 (dst:AL)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte02(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteStack(this.regEBP + this.regESI));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegByte03(fn): mod=00 (src:mem)  reg=000 (dst:AL)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte03(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegByte04(fn): mod=00 (src:mem)  reg=000 (dst:AL)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte04(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regESI));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegByte05(fn): mod=00 (src:mem)  reg=000 (dst:AL)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte05(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEDI));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegByte06(fn): mod=00 (src:mem)  reg=000 (dst:AL)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte06(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModRegByte07(fn): mod=00 (src:mem)  reg=000 (dst:AL)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte07(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegByte08(fn): mod=00 (src:mem)  reg=001 (dst:CL)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte08(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX + this.regESI));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegByte09(fn): mod=00 (src:mem)  reg=001 (dst:CL)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte09(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX + this.regEDI));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegByte0A(fn): mod=00 (src:mem)  reg=001 (dst:CL)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte0A(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteStack(this.regEBP + this.regESI));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegByte0B(fn): mod=00 (src:mem)  reg=001 (dst:CL)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte0B(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegByte0C(fn): mod=00 (src:mem)  reg=001 (dst:CL)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte0C(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regESI));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegByte0D(fn): mod=00 (src:mem)  reg=001 (dst:CL)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte0D(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEDI));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegByte0E(fn): mod=00 (src:mem)  reg=001 (dst:CL)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte0E(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModRegByte0F(fn): mod=00 (src:mem)  reg=001 (dst:CL)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte0F(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegByte10(fn): mod=00 (src:mem)  reg=010 (dst:DL)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte10(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX + this.regESI));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegByte11(fn): mod=00 (src:mem)  reg=010 (dst:DL)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte11(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX + this.regEDI));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegByte12(fn): mod=00 (src:mem)  reg=010 (dst:DL)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte12(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteStack(this.regEBP + this.regESI));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegByte13(fn): mod=00 (src:mem)  reg=010 (dst:DL)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte13(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegByte14(fn): mod=00 (src:mem)  reg=010 (dst:DL)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte14(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regESI));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegByte15(fn): mod=00 (src:mem)  reg=010 (dst:DL)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte15(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEDI));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegByte16(fn): mod=00 (src:mem)  reg=010 (dst:DL)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte16(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModRegByte17(fn): mod=00 (src:mem)  reg=010 (dst:DL)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte17(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegByte18(fn): mod=00 (src:mem)  reg=011 (dst:BL)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte18(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX + this.regESI));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegByte19(fn): mod=00 (src:mem)  reg=011 (dst:BL)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte19(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX + this.regEDI));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegByte1A(fn): mod=00 (src:mem)  reg=011 (dst:BL)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte1A(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteStack(this.regEBP + this.regESI));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegByte1B(fn): mod=00 (src:mem)  reg=011 (dst:BL)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte1B(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegByte1C(fn): mod=00 (src:mem)  reg=011 (dst:BL)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte1C(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regESI));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegByte1D(fn): mod=00 (src:mem)  reg=011 (dst:BL)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte1D(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEDI));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegByte1E(fn): mod=00 (src:mem)  reg=011 (dst:BL)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte1E(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModRegByte1F(fn): mod=00 (src:mem)  reg=011 (dst:BL)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte1F(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegByte20(fn): mod=00 (src:mem)  reg=100 (dst:AH)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte20(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regEBX + this.regESI));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegByte21(fn): mod=00 (src:mem)  reg=100 (dst:AH)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte21(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regEBX + this.regEDI));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegByte22(fn): mod=00 (src:mem)  reg=100 (dst:AH)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte22(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.getEAByteStack(this.regEBP + this.regESI));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegByte23(fn): mod=00 (src:mem)  reg=100 (dst:AH)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte23(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.getEAByteStack(this.regEBP + this.regEDI));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegByte24(fn): mod=00 (src:mem)  reg=100 (dst:AH)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte24(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regESI));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegByte25(fn): mod=00 (src:mem)  reg=100 (dst:AH)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte25(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regEDI));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegByte26(fn): mod=00 (src:mem)  reg=100 (dst:AH)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte26(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.getIPAddr()));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModRegByte27(fn): mod=00 (src:mem)  reg=100 (dst:AH)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte27(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regEBX));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegByte28(fn): mod=00 (src:mem)  reg=101 (dst:CH)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte28(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regEBX + this.regESI));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegByte29(fn): mod=00 (src:mem)  reg=101 (dst:CH)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte29(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regEBX + this.regEDI));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegByte2A(fn): mod=00 (src:mem)  reg=101 (dst:CH)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte2A(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.getEAByteStack(this.regEBP + this.regESI));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegByte2B(fn): mod=00 (src:mem)  reg=101 (dst:CH)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte2B(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.getEAByteStack(this.regEBP + this.regEDI));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegByte2C(fn): mod=00 (src:mem)  reg=101 (dst:CH)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte2C(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regESI));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegByte2D(fn): mod=00 (src:mem)  reg=101 (dst:CH)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte2D(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regEDI));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegByte2E(fn): mod=00 (src:mem)  reg=101 (dst:CH)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte2E(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.getIPAddr()));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModRegByte2F(fn): mod=00 (src:mem)  reg=101 (dst:CH)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte2F(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regEBX));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegByte30(fn): mod=00 (src:mem)  reg=110 (dst:DH)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte30(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regEBX + this.regESI));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegByte31(fn): mod=00 (src:mem)  reg=110 (dst:DH)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte31(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regEBX + this.regEDI));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegByte32(fn): mod=00 (src:mem)  reg=110 (dst:DH)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte32(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.getEAByteStack(this.regEBP + this.regESI));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegByte33(fn): mod=00 (src:mem)  reg=110 (dst:DH)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte33(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.getEAByteStack(this.regEBP + this.regEDI));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegByte34(fn): mod=00 (src:mem)  reg=110 (dst:DH)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte34(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regESI));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegByte35(fn): mod=00 (src:mem)  reg=110 (dst:DH)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte35(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regEDI));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegByte36(fn): mod=00 (src:mem)  reg=110 (dst:DH)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte36(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.getIPAddr()));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModRegByte37(fn): mod=00 (src:mem)  reg=110 (dst:DH)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte37(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regEBX));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegByte38(fn): mod=00 (src:mem)  reg=111 (dst:BH)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte38(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regEBX + this.regESI));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegByte39(fn): mod=00 (src:mem)  reg=111 (dst:BH)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte39(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regEBX + this.regEDI));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegByte3A(fn): mod=00 (src:mem)  reg=111 (dst:BH)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte3A(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.getEAByteStack(this.regEBP + this.regESI));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegByte3B(fn): mod=00 (src:mem)  reg=111 (dst:BH)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte3B(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.getEAByteStack(this.regEBP + this.regEDI));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegByte3C(fn): mod=00 (src:mem)  reg=111 (dst:BH)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte3C(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regESI));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegByte3D(fn): mod=00 (src:mem)  reg=111 (dst:BH)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte3D(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regEDI));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegByte3E(fn): mod=00 (src:mem)  reg=111 (dst:BH)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte3E(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.getIPAddr()));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModRegByte3F(fn): mod=00 (src:mem)  reg=111 (dst:BH)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte3F(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regEBX));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegByte40(fn): mod=01 (src:mem+d8)  reg=000 (dst:AL)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte40(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByte41(fn): mod=01 (src:mem+d8)  reg=000 (dst:AL)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte41(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByte42(fn): mod=01 (src:mem+d8)  reg=000 (dst:AL)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte42(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByte43(fn): mod=01 (src:mem+d8)  reg=000 (dst:AL)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte43(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByte44(fn): mod=01 (src:mem+d8)  reg=000 (dst:AL)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte44(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regESI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte45(fn): mod=01 (src:mem+d8)  reg=000 (dst:AL)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte45(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte46(fn): mod=01 (src:mem+d8)  reg=000 (dst:AL)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte46(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte47(fn): mod=01 (src:mem+d8)  reg=000 (dst:AL)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte47(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte48(fn): mod=01 (src:mem+d8)  reg=001 (dst:CL)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte48(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByte49(fn): mod=01 (src:mem+d8)  reg=001 (dst:CL)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte49(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByte4A(fn): mod=01 (src:mem+d8)  reg=001 (dst:CL)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte4A(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByte4B(fn): mod=01 (src:mem+d8)  reg=001 (dst:CL)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte4B(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByte4C(fn): mod=01 (src:mem+d8)  reg=001 (dst:CL)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte4C(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regESI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte4D(fn): mod=01 (src:mem+d8)  reg=001 (dst:CL)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte4D(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte4E(fn): mod=01 (src:mem+d8)  reg=001 (dst:CL)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte4E(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte4F(fn): mod=01 (src:mem+d8)  reg=001 (dst:CL)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte4F(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte50(fn): mod=01 (src:mem+d8)  reg=010 (dst:DL)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte50(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByte51(fn): mod=01 (src:mem+d8)  reg=010 (dst:DL)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte51(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByte52(fn): mod=01 (src:mem+d8)  reg=010 (dst:DL)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte52(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByte53(fn): mod=01 (src:mem+d8)  reg=010 (dst:DL)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte53(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByte54(fn): mod=01 (src:mem+d8)  reg=010 (dst:DL)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte54(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regESI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte55(fn): mod=01 (src:mem+d8)  reg=010 (dst:DL)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte55(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte56(fn): mod=01 (src:mem+d8)  reg=010 (dst:DL)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte56(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte57(fn): mod=01 (src:mem+d8)  reg=010 (dst:DL)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte57(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte58(fn): mod=01 (src:mem+d8)  reg=011 (dst:BL)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte58(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByte59(fn): mod=01 (src:mem+d8)  reg=011 (dst:BL)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte59(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByte5A(fn): mod=01 (src:mem+d8)  reg=011 (dst:BL)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte5A(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByte5B(fn): mod=01 (src:mem+d8)  reg=011 (dst:BL)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte5B(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByte5C(fn): mod=01 (src:mem+d8)  reg=011 (dst:BL)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte5C(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regESI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte5D(fn): mod=01 (src:mem+d8)  reg=011 (dst:BL)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte5D(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte5E(fn): mod=01 (src:mem+d8)  reg=011 (dst:BL)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte5E(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte5F(fn): mod=01 (src:mem+d8)  reg=011 (dst:BL)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte5F(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte60(fn): mod=01 (src:mem+d8)  reg=100 (dst:AH)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte60(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByte61(fn): mod=01 (src:mem+d8)  reg=100 (dst:AH)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte61(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByte62(fn): mod=01 (src:mem+d8)  reg=100 (dst:AH)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte62(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByte63(fn): mod=01 (src:mem+d8)  reg=100 (dst:AH)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte63(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByte64(fn): mod=01 (src:mem+d8)  reg=100 (dst:AH)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte64(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regESI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte65(fn): mod=01 (src:mem+d8)  reg=100 (dst:AH)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte65(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regEDI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte66(fn): mod=01 (src:mem+d8)  reg=100 (dst:AH)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte66(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.getEAByteStack(this.regEBP + this.getIPDisp()));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte67(fn): mod=01 (src:mem+d8)  reg=100 (dst:AH)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte67(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regEBX + this.getIPDisp()));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte68(fn): mod=01 (src:mem+d8)  reg=101 (dst:CH)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte68(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp()));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByte69(fn): mod=01 (src:mem+d8)  reg=101 (dst:CH)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte69(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp()));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByte6A(fn): mod=01 (src:mem+d8)  reg=101 (dst:CH)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte6A(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp()));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByte6B(fn): mod=01 (src:mem+d8)  reg=101 (dst:CH)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte6B(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByte6C(fn): mod=01 (src:mem+d8)  reg=101 (dst:CH)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte6C(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regESI + this.getIPDisp()));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte6D(fn): mod=01 (src:mem+d8)  reg=101 (dst:CH)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte6D(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regEDI + this.getIPDisp()));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte6E(fn): mod=01 (src:mem+d8)  reg=101 (dst:CH)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte6E(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.getEAByteStack(this.regEBP + this.getIPDisp()));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte6F(fn): mod=01 (src:mem+d8)  reg=101 (dst:CH)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte6F(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regEBX + this.getIPDisp()));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte70(fn): mod=01 (src:mem+d8)  reg=110 (dst:DH)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte70(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByte71(fn): mod=01 (src:mem+d8)  reg=110 (dst:DH)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte71(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByte72(fn): mod=01 (src:mem+d8)  reg=110 (dst:DH)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte72(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByte73(fn): mod=01 (src:mem+d8)  reg=110 (dst:DH)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte73(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByte74(fn): mod=01 (src:mem+d8)  reg=110 (dst:DH)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte74(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regESI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte75(fn): mod=01 (src:mem+d8)  reg=110 (dst:DH)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte75(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regEDI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte76(fn): mod=01 (src:mem+d8)  reg=110 (dst:DH)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte76(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.getEAByteStack(this.regEBP + this.getIPDisp()));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte77(fn): mod=01 (src:mem+d8)  reg=110 (dst:DH)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte77(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regEBX + this.getIPDisp()));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte78(fn): mod=01 (src:mem+d8)  reg=111 (dst:BH)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte78(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByte79(fn): mod=01 (src:mem+d8)  reg=111 (dst:BH)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte79(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByte7A(fn): mod=01 (src:mem+d8)  reg=111 (dst:BH)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte7A(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByte7B(fn): mod=01 (src:mem+d8)  reg=111 (dst:BH)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte7B(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByte7C(fn): mod=01 (src:mem+d8)  reg=111 (dst:BH)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte7C(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regESI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte7D(fn): mod=01 (src:mem+d8)  reg=111 (dst:BH)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte7D(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regEDI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte7E(fn): mod=01 (src:mem+d8)  reg=111 (dst:BH)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte7E(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.getEAByteStack(this.regEBP + this.getIPDisp()));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte7F(fn): mod=01 (src:mem+d8)  reg=111 (dst:BH)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte7F(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regEBX + this.getIPDisp()));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte80(fn): mod=10 (src:mem+d16)  reg=000 (dst:AL)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte80(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByte81(fn): mod=10 (src:mem+d16)  reg=000 (dst:AL)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte81(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByte82(fn): mod=10 (src:mem+d16)  reg=000 (dst:AL)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte82(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByte83(fn): mod=10 (src:mem+d16)  reg=000 (dst:AL)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte83(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByte84(fn): mod=10 (src:mem+d16)  reg=000 (dst:AL)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte84(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regESI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte85(fn): mod=10 (src:mem+d16)  reg=000 (dst:AL)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte85(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEDI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte86(fn): mod=10 (src:mem+d16)  reg=000 (dst:AL)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte86(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteStack(this.regEBP + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte87(fn): mod=10 (src:mem+d16)  reg=000 (dst:AL)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte87(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte88(fn): mod=10 (src:mem+d16)  reg=001 (dst:CL)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte88(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByte89(fn): mod=10 (src:mem+d16)  reg=001 (dst:CL)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte89(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByte8A(fn): mod=10 (src:mem+d16)  reg=001 (dst:CL)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte8A(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByte8B(fn): mod=10 (src:mem+d16)  reg=001 (dst:CL)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte8B(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByte8C(fn): mod=10 (src:mem+d16)  reg=001 (dst:CL)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte8C(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regESI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte8D(fn): mod=10 (src:mem+d16)  reg=001 (dst:CL)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte8D(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEDI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte8E(fn): mod=10 (src:mem+d16)  reg=001 (dst:CL)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte8E(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteStack(this.regEBP + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte8F(fn): mod=10 (src:mem+d16)  reg=001 (dst:CL)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte8F(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte90(fn): mod=10 (src:mem+d16)  reg=010 (dst:DL)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte90(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByte91(fn): mod=10 (src:mem+d16)  reg=010 (dst:DL)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte91(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByte92(fn): mod=10 (src:mem+d16)  reg=010 (dst:DL)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte92(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByte93(fn): mod=10 (src:mem+d16)  reg=010 (dst:DL)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte93(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByte94(fn): mod=10 (src:mem+d16)  reg=010 (dst:DL)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte94(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regESI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte95(fn): mod=10 (src:mem+d16)  reg=010 (dst:DL)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte95(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEDI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte96(fn): mod=10 (src:mem+d16)  reg=010 (dst:DL)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte96(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteStack(this.regEBP + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte97(fn): mod=10 (src:mem+d16)  reg=010 (dst:DL)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte97(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte98(fn): mod=10 (src:mem+d16)  reg=011 (dst:BL)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte98(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByte99(fn): mod=10 (src:mem+d16)  reg=011 (dst:BL)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte99(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByte9A(fn): mod=10 (src:mem+d16)  reg=011 (dst:BL)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte9A(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByte9B(fn): mod=10 (src:mem+d16)  reg=011 (dst:BL)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte9B(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByte9C(fn): mod=10 (src:mem+d16)  reg=011 (dst:BL)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte9C(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regESI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte9D(fn): mod=10 (src:mem+d16)  reg=011 (dst:BL)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte9D(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEDI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte9E(fn): mod=10 (src:mem+d16)  reg=011 (dst:BL)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte9E(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteStack(this.regEBP + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByte9F(fn): mod=10 (src:mem+d16)  reg=011 (dst:BL)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByte9F(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByteA0(fn): mod=10 (src:mem+d16)  reg=100 (dst:AH)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteA0(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regEBX + this.regESI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByteA1(fn): mod=10 (src:mem+d16)  reg=100 (dst:AH)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteA1(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regEBX + this.regEDI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByteA2(fn): mod=10 (src:mem+d16)  reg=100 (dst:AH)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteA2(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.getEAByteStack(this.regEBP + this.regESI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByteA3(fn): mod=10 (src:mem+d16)  reg=100 (dst:AH)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteA3(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByteA4(fn): mod=10 (src:mem+d16)  reg=100 (dst:AH)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteA4(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regESI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByteA5(fn): mod=10 (src:mem+d16)  reg=100 (dst:AH)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteA5(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regEDI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByteA6(fn): mod=10 (src:mem+d16)  reg=100 (dst:AH)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteA6(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.getEAByteStack(this.regEBP + this.getIPAddr()));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByteA7(fn): mod=10 (src:mem+d16)  reg=100 (dst:AH)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteA7(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regEBX + this.getIPAddr()));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByteA8(fn): mod=10 (src:mem+d16)  reg=101 (dst:CH)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteA8(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regEBX + this.regESI + this.getIPAddr()));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByteA9(fn): mod=10 (src:mem+d16)  reg=101 (dst:CH)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteA9(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regEBX + this.regEDI + this.getIPAddr()));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByteAA(fn): mod=10 (src:mem+d16)  reg=101 (dst:CH)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteAA(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.getEAByteStack(this.regEBP + this.regESI + this.getIPAddr()));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByteAB(fn): mod=10 (src:mem+d16)  reg=101 (dst:CH)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteAB(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByteAC(fn): mod=10 (src:mem+d16)  reg=101 (dst:CH)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteAC(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regESI + this.getIPAddr()));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByteAD(fn): mod=10 (src:mem+d16)  reg=101 (dst:CH)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteAD(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regEDI + this.getIPAddr()));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByteAE(fn): mod=10 (src:mem+d16)  reg=101 (dst:CH)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteAE(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.getEAByteStack(this.regEBP + this.getIPAddr()));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByteAF(fn): mod=10 (src:mem+d16)  reg=101 (dst:CH)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteAF(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regEBX + this.getIPAddr()));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByteB0(fn): mod=10 (src:mem+d16)  reg=110 (dst:DH)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteB0(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regEBX + this.regESI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByteB1(fn): mod=10 (src:mem+d16)  reg=110 (dst:DH)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteB1(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regEBX + this.regEDI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByteB2(fn): mod=10 (src:mem+d16)  reg=110 (dst:DH)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteB2(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.getEAByteStack(this.regEBP + this.regESI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByteB3(fn): mod=10 (src:mem+d16)  reg=110 (dst:DH)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteB3(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByteB4(fn): mod=10 (src:mem+d16)  reg=110 (dst:DH)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteB4(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regESI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByteB5(fn): mod=10 (src:mem+d16)  reg=110 (dst:DH)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteB5(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regEDI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByteB6(fn): mod=10 (src:mem+d16)  reg=110 (dst:DH)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteB6(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.getEAByteStack(this.regEBP + this.getIPAddr()));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByteB7(fn): mod=10 (src:mem+d16)  reg=110 (dst:DH)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteB7(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regEBX + this.getIPAddr()));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByteB8(fn): mod=10 (src:mem+d16)  reg=111 (dst:BH)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteB8(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regEBX + this.regESI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByteB9(fn): mod=10 (src:mem+d16)  reg=111 (dst:BH)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteB9(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regEBX + this.regEDI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByteBA(fn): mod=10 (src:mem+d16)  reg=111 (dst:BH)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteBA(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.getEAByteStack(this.regEBP + this.regESI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegByteBB(fn): mod=10 (src:mem+d16)  reg=111 (dst:BH)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteBB(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegByteBC(fn): mod=10 (src:mem+d16)  reg=111 (dst:BH)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteBC(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regESI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByteBD(fn): mod=10 (src:mem+d16)  reg=111 (dst:BH)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteBD(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regEDI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByteBE(fn): mod=10 (src:mem+d16)  reg=111 (dst:BH)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteBE(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.getEAByteStack(this.regEBP + this.getIPAddr()));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByteBF(fn): mod=10 (src:mem+d16)  reg=111 (dst:BH)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteBF(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regEBX + this.getIPAddr()));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegByteC0(fn): mod=11 (src:reg)  reg=000 (dst:AL)  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteC0(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.regEAX & 0xff);
                    this.regEAX = (this.regEAX & ~0xff) | b;
                },
                /**
                 * opModRegByteC1(fn): mod=11 (src:reg)  reg=000 (dst:AL)  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteC1(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.regECX & 0xff);
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiCL;
                },
                /**
                 * opModRegByteC2(fn): mod=11 (src:reg)  reg=000 (dst:AL)  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteC2(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.regEDX & 0xff);
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiDL;
                },
                /**
                 * opModRegByteC3(fn): mod=11 (src:reg)  reg=000 (dst:AL)  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteC3(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.regEBX & 0xff);
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiBL;
                },
                /**
                 * opModRegByteC4(fn): mod=11 (src:reg)  reg=000 (dst:AL)  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteC4(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, (this.regEAX >> 8));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiAH;
                },
                /**
                 * opModRegByteC5(fn): mod=11 (src:reg)  reg=000 (dst:AL)  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteC5(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, (this.regECX >> 8));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiCH;
                },
                /**
                 * opModRegByteC6(fn): mod=11 (src:reg)  reg=000 (dst:AL)  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteC6(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, (this.regEDX >> 8));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiDH;
                },
                /**
                 * opModRegByteC7(fn): mod=11 (src:reg)  reg=000 (dst:AL)  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteC7(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, (this.regEBX >> 8));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiBH;
                },
                /**
                 * opModRegByteC8(fn): mod=11 (src:reg)  reg=001 (dst:CL)  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteC8(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.regEAX & 0xff);
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiAL;
                },
                /**
                 * opModRegByteC9(fn): mod=11 (src:reg)  reg=001 (dst:CL)  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteC9(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.regECX & 0xff);
                    this.regECX = (this.regECX & ~0xff) | b;
                },
                /**
                 * opModRegByteCA(fn): mod=11 (src:reg)  reg=001 (dst:CL)  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteCA(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.regEDX & 0xff);
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiDL;
                },
                /**
                 * opModRegByteCB(fn): mod=11 (src:reg)  reg=001 (dst:CL)  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteCB(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.regEBX & 0xff);
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiBL;
                },
                /**
                 * opModRegByteCC(fn): mod=11 (src:reg)  reg=001 (dst:CL)  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteCC(fn) {
                    var b = fn.call(this, this.regECX & 0xff, (this.regEAX >> 8));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiAH;
                },
                /**
                 * opModRegByteCD(fn): mod=11 (src:reg)  reg=001 (dst:CL)  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteCD(fn) {
                    var b = fn.call(this, this.regECX & 0xff, (this.regECX >> 8));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiCH;
                },
                /**
                 * opModRegByteCE(fn): mod=11 (src:reg)  reg=001 (dst:CL)  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteCE(fn) {
                    var b = fn.call(this, this.regECX & 0xff, (this.regEDX >> 8));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiDH;
                },
                /**
                 * opModRegByteCF(fn): mod=11 (src:reg)  reg=001 (dst:CL)  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteCF(fn) {
                    var b = fn.call(this, this.regECX & 0xff, (this.regEBX >> 8));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiBH;
                },
                /**
                 * opModRegByteD0(fn): mod=11 (src:reg)  reg=010 (dst:DL)  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteD0(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.regEAX & 0xff);
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiAL;
                },
                /**
                 * opModRegByteD1(fn): mod=11 (src:reg)  reg=010 (dst:DL)  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteD1(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.regECX & 0xff);
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiCL;
                },
                /**
                 * opModRegByteD2(fn): mod=11 (src:reg)  reg=010 (dst:DL)  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteD2(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.regEDX & 0xff);
                    this.regEDX = (this.regEDX & ~0xff) | b;
                },
                /**
                 * opModRegByteD3(fn): mod=11 (src:reg)  reg=010 (dst:DL)  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteD3(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.regEBX & 0xff);
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiBL;
                },
                /**
                 * opModRegByteD4(fn): mod=11 (src:reg)  reg=010 (dst:DL)  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteD4(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, (this.regEAX >> 8));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiAH;
                },
                /**
                 * opModRegByteD5(fn): mod=11 (src:reg)  reg=010 (dst:DL)  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteD5(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, (this.regECX >> 8));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiCH;
                },
                /**
                 * opModRegByteD6(fn): mod=11 (src:reg)  reg=010 (dst:DL)  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteD6(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, (this.regEDX >> 8));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiDH;
                },
                /**
                 * opModRegByteD7(fn): mod=11 (src:reg)  reg=010 (dst:DL)  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteD7(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, (this.regEBX >> 8));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiBH;
                },
                /**
                 * opModRegByteD8(fn): mod=11 (src:reg)  reg=011 (dst:BL)  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteD8(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.regEAX & 0xff);
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiAL;
                },
                /**
                 * opModRegByteD9(fn): mod=11 (src:reg)  reg=011 (dst:BL)  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteD9(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.regECX & 0xff);
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiCL;
                },
                /**
                 * opModRegByteDA(fn): mod=11 (src:reg)  reg=011 (dst:BL)  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteDA(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.regEDX & 0xff);
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiDL;
                },
                /**
                 * opModRegByteDB(fn): mod=11 (src:reg)  reg=011 (dst:BL)  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteDB(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.regEBX & 0xff);
                    this.regEBX = (this.regEBX & ~0xff) | b;
                },
                /**
                 * opModRegByteDC(fn): mod=11 (src:reg)  reg=011 (dst:BL)  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteDC(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, (this.regEAX >> 8));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiAH;
                },
                /**
                 * opModRegByteDD(fn): mod=11 (src:reg)  reg=011 (dst:BL)  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteDD(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, (this.regECX >> 8));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiCH;
                },
                /**
                 * opModRegByteDE(fn): mod=11 (src:reg)  reg=011 (dst:BL)  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteDE(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, (this.regEDX >> 8));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiDH;
                },
                /**
                 * opModRegByteDF(fn): mod=11 (src:reg)  reg=011 (dst:BL)  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteDF(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, (this.regEBX >> 8));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiBH;
                },
                /**
                 * opModRegByteE0(fn): mod=11 (src:reg)  reg=100 (dst:AH)  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteE0(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.regEAX & 0xff);
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiAL;
                },
                /**
                 * opModRegByteE1(fn): mod=11 (src:reg)  reg=100 (dst:AH)  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteE1(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.regECX & 0xff);
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiCL;
                },
                /**
                 * opModRegByteE2(fn): mod=11 (src:reg)  reg=100 (dst:AH)  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteE2(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.regEDX & 0xff);
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiDL;
                },
                /**
                 * opModRegByteE3(fn): mod=11 (src:reg)  reg=100 (dst:AH)  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteE3(fn) {
                    var b = fn.call(this, this.regEAX >> 8, this.regEBX & 0xff);
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiBL;
                },
                /**
                 * opModRegByteE4(fn): mod=11 (src:reg)  reg=100 (dst:AH)  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteE4(fn) {
                    var b = fn.call(this, this.regEAX >> 8, (this.regEAX >> 8));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                },
                /**
                 * opModRegByteE5(fn): mod=11 (src:reg)  reg=100 (dst:AH)  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteE5(fn) {
                    var b = fn.call(this, this.regEAX >> 8, (this.regECX >> 8));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiCH;
                },
                /**
                 * opModRegByteE6(fn): mod=11 (src:reg)  reg=100 (dst:AH)  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteE6(fn) {
                    var b = fn.call(this, this.regEAX >> 8, (this.regEDX >> 8));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiDH;
                },
                /**
                 * opModRegByteE7(fn): mod=11 (src:reg)  reg=100 (dst:AH)  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteE7(fn) {
                    var b = fn.call(this, this.regEAX >> 8, (this.regEBX >> 8));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiBH;
                },
                /**
                 * opModRegByteE8(fn): mod=11 (src:reg)  reg=101 (dst:CH)  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteE8(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.regEAX & 0xff);
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiAL;
                },
                /**
                 * opModRegByteE9(fn): mod=11 (src:reg)  reg=101 (dst:CH)  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteE9(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.regECX & 0xff);
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiCL;
                },
                /**
                 * opModRegByteEA(fn): mod=11 (src:reg)  reg=101 (dst:CH)  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteEA(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.regEDX & 0xff);
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiDL;
                },
                /**
                 * opModRegByteEB(fn): mod=11 (src:reg)  reg=101 (dst:CH)  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteEB(fn) {
                    var b = fn.call(this, this.regECX >> 8, this.regEBX & 0xff);
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiBL;
                },
                /**
                 * opModRegByteEC(fn): mod=11 (src:reg)  reg=101 (dst:CH)  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteEC(fn) {
                    var b = fn.call(this, this.regECX >> 8, (this.regEAX >> 8));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiAH;
                },
                /**
                 * opModRegByteED(fn): mod=11 (src:reg)  reg=101 (dst:CH)  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteED(fn) {
                    var b = fn.call(this, this.regECX >> 8, (this.regECX >> 8));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                },
                /**
                 * opModRegByteEE(fn): mod=11 (src:reg)  reg=101 (dst:CH)  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteEE(fn) {
                    var b = fn.call(this, this.regECX >> 8, (this.regEDX >> 8));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiDH;
                },
                /**
                 * opModRegByteEF(fn): mod=11 (src:reg)  reg=101 (dst:CH)  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteEF(fn) {
                    var b = fn.call(this, this.regECX >> 8, (this.regEBX >> 8));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiBH;
                },
                /**
                 * opModRegByteF0(fn): mod=11 (src:reg)  reg=110 (dst:DH)  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteF0(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.regEAX & 0xff);
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiAL;
                },
                /**
                 * opModRegByteF1(fn): mod=11 (src:reg)  reg=110 (dst:DH)  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteF1(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.regECX & 0xff);
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiCL;
                },
                /**
                 * opModRegByteF2(fn): mod=11 (src:reg)  reg=110 (dst:DH)  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteF2(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.regEDX & 0xff);
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiDL;
                },
                /**
                 * opModRegByteF3(fn): mod=11 (src:reg)  reg=110 (dst:DH)  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteF3(fn) {
                    var b = fn.call(this, this.regEDX >> 8, this.regEBX & 0xff);
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiBL;
                },
                /**
                 * opModRegByteF4(fn): mod=11 (src:reg)  reg=110 (dst:DH)  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteF4(fn) {
                    var b = fn.call(this, this.regEDX >> 8, (this.regEAX >> 8));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiAH;
                },
                /**
                 * opModRegByteF5(fn): mod=11 (src:reg)  reg=110 (dst:DH)  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteF5(fn) {
                    var b = fn.call(this, this.regEDX >> 8, (this.regECX >> 8));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiCH;
                },
                /**
                 * opModRegByteF6(fn): mod=11 (src:reg)  reg=110 (dst:DH)  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteF6(fn) {
                    var b = fn.call(this, this.regEDX >> 8, (this.regEDX >> 8));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                },
                /**
                 * opModRegByteF7(fn): mod=11 (src:reg)  reg=110 (dst:DH)  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteF7(fn) {
                    var b = fn.call(this, this.regEDX >> 8, (this.regEBX >> 8));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiBH;
                },
                /**
                 * opModRegByteF8(fn): mod=11 (src:reg)  reg=111 (dst:BH)  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteF8(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.regEAX & 0xff);
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiAL;
                },
                /**
                 * opModRegByteF9(fn): mod=11 (src:reg)  reg=111 (dst:BH)  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteF9(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.regECX & 0xff);
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiCL;
                },
                /**
                 * opModRegByteFA(fn): mod=11 (src:reg)  reg=111 (dst:BH)  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteFA(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.regEDX & 0xff);
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiDL;
                },
                /**
                 * opModRegByteFB(fn): mod=11 (src:reg)  reg=111 (dst:BH)  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteFB(fn) {
                    var b = fn.call(this, this.regEBX >> 8, this.regEBX & 0xff);
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiBL;
                },
                /**
                 * opModRegByteFC(fn): mod=11 (src:reg)  reg=111 (dst:BH)  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteFC(fn) {
                    var b = fn.call(this, this.regEBX >> 8, (this.regEAX >> 8));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiAH;
                },
                /**
                 * opModRegByteFD(fn): mod=11 (src:reg)  reg=111 (dst:BH)  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteFD(fn) {
                    var b = fn.call(this, this.regEBX >> 8, (this.regECX >> 8));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiCH;
                },
                /**
                 * opModRegByteFE(fn): mod=11 (src:reg)  reg=111 (dst:BH)  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteFE(fn) {
                    var b = fn.call(this, this.regEBX >> 8, (this.regEDX >> 8));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiDH;
                },
                /**
                 * opModRegByteFF(fn): mod=11 (src:reg)  reg=111 (dst:BH)  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegByteFF(fn) {
                    var b = fn.call(this, this.regEBX >> 8, (this.regEBX >> 8));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                }
            ];
            
            X86ModB.aOpModMem = [
                /**
                 * opModMemByte00(fn): mod=00 (dst:mem)  reg=000 (src:AL)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte00(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemByte01(fn): mod=00 (dst:mem)  reg=000 (src:AL)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte01(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemByte02(fn): mod=00 (dst:mem)  reg=000 (src:AL)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte02(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemByte03(fn): mod=00 (dst:mem)  reg=000 (src:AL)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte03(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemByte04(fn): mod=00 (dst:mem)  reg=000 (src:AL)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte04(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemByte05(fn): mod=00 (dst:mem)  reg=000 (src:AL)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte05(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemByte06(fn): mod=00 (dst:mem)  reg=000 (src:AL)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte06(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModMemByte07(fn): mod=00 (dst:mem)  reg=000 (src:AL)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte07(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemByte08(fn): mod=00 (dst:mem)  reg=001 (src:CL)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte08(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemByte09(fn): mod=00 (dst:mem)  reg=001 (src:CL)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte09(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemByte0A(fn): mod=00 (dst:mem)  reg=001 (src:CL)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte0A(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemByte0B(fn): mod=00 (dst:mem)  reg=001 (src:CL)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte0B(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemByte0C(fn): mod=00 (dst:mem)  reg=001 (src:CL)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte0C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemByte0D(fn): mod=00 (dst:mem)  reg=001 (src:CL)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte0D(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemByte0E(fn): mod=00 (dst:mem)  reg=001 (src:CL)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte0E(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModMemByte0F(fn): mod=00 (dst:mem)  reg=001 (src:CL)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte0F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemByte10(fn): mod=00 (dst:mem)  reg=010 (src:DL)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte10(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemByte11(fn): mod=00 (dst:mem)  reg=010 (src:DL)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte11(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemByte12(fn): mod=00 (dst:mem)  reg=010 (src:DL)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte12(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemByte13(fn): mod=00 (dst:mem)  reg=010 (src:DL)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte13(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemByte14(fn): mod=00 (dst:mem)  reg=010 (src:DL)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte14(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemByte15(fn): mod=00 (dst:mem)  reg=010 (src:DL)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte15(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemByte16(fn): mod=00 (dst:mem)  reg=010 (src:DL)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte16(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModMemByte17(fn): mod=00 (dst:mem)  reg=010 (src:DL)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte17(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemByte18(fn): mod=00 (dst:mem)  reg=011 (src:BL)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte18(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemByte19(fn): mod=00 (dst:mem)  reg=011 (src:BL)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte19(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemByte1A(fn): mod=00 (dst:mem)  reg=011 (src:BL)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte1A(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemByte1B(fn): mod=00 (dst:mem)  reg=011 (src:BL)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte1B(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemByte1C(fn): mod=00 (dst:mem)  reg=011 (src:BL)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte1C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemByte1D(fn): mod=00 (dst:mem)  reg=011 (src:BL)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte1D(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemByte1E(fn): mod=00 (dst:mem)  reg=011 (src:BL)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte1E(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModMemByte1F(fn): mod=00 (dst:mem)  reg=011 (src:BL)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte1F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemByte20(fn): mod=00 (dst:mem)  reg=100 (src:AH)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte20(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), this.regEAX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemByte21(fn): mod=00 (dst:mem)  reg=100 (src:AH)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte21(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), this.regEAX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemByte22(fn): mod=00 (dst:mem)  reg=100 (src:AH)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte22(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), this.regEAX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemByte23(fn): mod=00 (dst:mem)  reg=100 (src:AH)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte23(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), this.regEAX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemByte24(fn): mod=00 (dst:mem)  reg=100 (src:AH)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte24(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI), this.regEAX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemByte25(fn): mod=00 (dst:mem)  reg=100 (src:AH)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte25(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI), this.regEAX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemByte26(fn): mod=00 (dst:mem)  reg=100 (src:AH)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte26(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getIPAddr()), this.regEAX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModMemByte27(fn): mod=00 (dst:mem)  reg=100 (src:AH)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte27(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX), this.regEAX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemByte28(fn): mod=00 (dst:mem)  reg=101 (src:CH)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte28(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), this.regECX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemByte29(fn): mod=00 (dst:mem)  reg=101 (src:CH)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte29(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), this.regECX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemByte2A(fn): mod=00 (dst:mem)  reg=101 (src:CH)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte2A(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), this.regECX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemByte2B(fn): mod=00 (dst:mem)  reg=101 (src:CH)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte2B(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), this.regECX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemByte2C(fn): mod=00 (dst:mem)  reg=101 (src:CH)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte2C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI), this.regECX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemByte2D(fn): mod=00 (dst:mem)  reg=101 (src:CH)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte2D(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI), this.regECX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemByte2E(fn): mod=00 (dst:mem)  reg=101 (src:CH)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte2E(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getIPAddr()), this.regECX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModMemByte2F(fn): mod=00 (dst:mem)  reg=101 (src:CH)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte2F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX), this.regECX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemByte30(fn): mod=00 (dst:mem)  reg=110 (src:DH)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte30(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), this.regEDX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemByte31(fn): mod=00 (dst:mem)  reg=110 (src:DH)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte31(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), this.regEDX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemByte32(fn): mod=00 (dst:mem)  reg=110 (src:DH)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte32(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), this.regEDX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemByte33(fn): mod=00 (dst:mem)  reg=110 (src:DH)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte33(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), this.regEDX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemByte34(fn): mod=00 (dst:mem)  reg=110 (src:DH)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte34(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI), this.regEDX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemByte35(fn): mod=00 (dst:mem)  reg=110 (src:DH)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte35(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI), this.regEDX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemByte36(fn): mod=00 (dst:mem)  reg=110 (src:DH)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte36(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getIPAddr()), this.regEDX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModMemByte37(fn): mod=00 (dst:mem)  reg=110 (src:DH)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte37(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX), this.regEDX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemByte38(fn): mod=00 (dst:mem)  reg=111 (src:BH)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte38(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), this.regEBX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemByte39(fn): mod=00 (dst:mem)  reg=111 (src:BH)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte39(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), this.regEBX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemByte3A(fn): mod=00 (dst:mem)  reg=111 (src:BH)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte3A(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), this.regEBX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemByte3B(fn): mod=00 (dst:mem)  reg=111 (src:BH)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte3B(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), this.regEBX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemByte3C(fn): mod=00 (dst:mem)  reg=111 (src:BH)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte3C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI), this.regEBX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemByte3D(fn): mod=00 (dst:mem)  reg=111 (src:BH)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte3D(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI), this.regEBX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemByte3E(fn): mod=00 (dst:mem)  reg=111 (src:BH)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte3E(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getIPAddr()), this.regEBX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModMemByte3F(fn): mod=00 (dst:mem)  reg=111 (src:BH)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte3F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX), this.regEBX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemByte40(fn): mod=01 (dst:mem+d8)  reg=000 (src:AL)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte40(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByte41(fn): mod=01 (dst:mem+d8)  reg=000 (src:AL)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte41(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByte42(fn): mod=01 (dst:mem+d8)  reg=000 (src:AL)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte42(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByte43(fn): mod=01 (dst:mem+d8)  reg=000 (src:AL)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte43(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByte44(fn): mod=01 (dst:mem+d8)  reg=000 (src:AL)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte44(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte45(fn): mod=01 (dst:mem+d8)  reg=000 (src:AL)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte45(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte46(fn): mod=01 (dst:mem+d8)  reg=000 (src:AL)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte46(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte47(fn): mod=01 (dst:mem+d8)  reg=000 (src:AL)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte47(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte48(fn): mod=01 (dst:mem+d8)  reg=001 (src:CL)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte48(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByte49(fn): mod=01 (dst:mem+d8)  reg=001 (src:CL)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte49(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByte4A(fn): mod=01 (dst:mem+d8)  reg=001 (src:CL)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte4A(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByte4B(fn): mod=01 (dst:mem+d8)  reg=001 (src:CL)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte4B(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByte4C(fn): mod=01 (dst:mem+d8)  reg=001 (src:CL)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte4C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte4D(fn): mod=01 (dst:mem+d8)  reg=001 (src:CL)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte4D(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte4E(fn): mod=01 (dst:mem+d8)  reg=001 (src:CL)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte4E(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte4F(fn): mod=01 (dst:mem+d8)  reg=001 (src:CL)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte4F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte50(fn): mod=01 (dst:mem+d8)  reg=010 (src:DL)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte50(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByte51(fn): mod=01 (dst:mem+d8)  reg=010 (src:DL)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte51(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByte52(fn): mod=01 (dst:mem+d8)  reg=010 (src:DL)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte52(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByte53(fn): mod=01 (dst:mem+d8)  reg=010 (src:DL)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte53(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByte54(fn): mod=01 (dst:mem+d8)  reg=010 (src:DL)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte54(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte55(fn): mod=01 (dst:mem+d8)  reg=010 (src:DL)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte55(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte56(fn): mod=01 (dst:mem+d8)  reg=010 (src:DL)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte56(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte57(fn): mod=01 (dst:mem+d8)  reg=010 (src:DL)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte57(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte58(fn): mod=01 (dst:mem+d8)  reg=011 (src:BL)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte58(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByte59(fn): mod=01 (dst:mem+d8)  reg=011 (src:BL)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte59(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByte5A(fn): mod=01 (dst:mem+d8)  reg=011 (src:BL)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte5A(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByte5B(fn): mod=01 (dst:mem+d8)  reg=011 (src:BL)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte5B(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByte5C(fn): mod=01 (dst:mem+d8)  reg=011 (src:BL)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte5C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte5D(fn): mod=01 (dst:mem+d8)  reg=011 (src:BL)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte5D(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte5E(fn): mod=01 (dst:mem+d8)  reg=011 (src:BL)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte5E(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte5F(fn): mod=01 (dst:mem+d8)  reg=011 (src:BL)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte5F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte60(fn): mod=01 (dst:mem+d8)  reg=100 (src:AH)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte60(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), this.regEAX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByte61(fn): mod=01 (dst:mem+d8)  reg=100 (src:AH)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte61(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEAX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByte62(fn): mod=01 (dst:mem+d8)  reg=100 (src:AH)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte62(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEAX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByte63(fn): mod=01 (dst:mem+d8)  reg=100 (src:AH)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte63(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEAX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByte64(fn): mod=01 (dst:mem+d8)  reg=100 (src:AH)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte64(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), this.regEAX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte65(fn): mod=01 (dst:mem+d8)  reg=100 (src:AH)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte65(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), this.regEAX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte66(fn): mod=01 (dst:mem+d8)  reg=100 (src:AH)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte66(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), this.regEAX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte67(fn): mod=01 (dst:mem+d8)  reg=100 (src:AH)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte67(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), this.regEAX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte68(fn): mod=01 (dst:mem+d8)  reg=101 (src:CH)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte68(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), this.regECX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByte69(fn): mod=01 (dst:mem+d8)  reg=101 (src:CH)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte69(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), this.regECX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByte6A(fn): mod=01 (dst:mem+d8)  reg=101 (src:CH)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte6A(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), this.regECX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByte6B(fn): mod=01 (dst:mem+d8)  reg=101 (src:CH)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte6B(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regECX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByte6C(fn): mod=01 (dst:mem+d8)  reg=101 (src:CH)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte6C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), this.regECX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte6D(fn): mod=01 (dst:mem+d8)  reg=101 (src:CH)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte6D(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), this.regECX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte6E(fn): mod=01 (dst:mem+d8)  reg=101 (src:CH)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte6E(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), this.regECX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte6F(fn): mod=01 (dst:mem+d8)  reg=101 (src:CH)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte6F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), this.regECX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte70(fn): mod=01 (dst:mem+d8)  reg=110 (src:DH)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte70(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), this.regEDX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByte71(fn): mod=01 (dst:mem+d8)  reg=110 (src:DH)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte71(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEDX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByte72(fn): mod=01 (dst:mem+d8)  reg=110 (src:DH)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte72(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEDX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByte73(fn): mod=01 (dst:mem+d8)  reg=110 (src:DH)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte73(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEDX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByte74(fn): mod=01 (dst:mem+d8)  reg=110 (src:DH)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte74(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), this.regEDX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte75(fn): mod=01 (dst:mem+d8)  reg=110 (src:DH)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte75(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), this.regEDX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte76(fn): mod=01 (dst:mem+d8)  reg=110 (src:DH)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte76(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), this.regEDX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte77(fn): mod=01 (dst:mem+d8)  reg=110 (src:DH)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte77(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), this.regEDX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte78(fn): mod=01 (dst:mem+d8)  reg=111 (src:BH)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte78(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), this.regEBX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByte79(fn): mod=01 (dst:mem+d8)  reg=111 (src:BH)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte79(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEBX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByte7A(fn): mod=01 (dst:mem+d8)  reg=111 (src:BH)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte7A(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEBX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByte7B(fn): mod=01 (dst:mem+d8)  reg=111 (src:BH)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte7B(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEBX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByte7C(fn): mod=01 (dst:mem+d8)  reg=111 (src:BH)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte7C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), this.regEBX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte7D(fn): mod=01 (dst:mem+d8)  reg=111 (src:BH)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte7D(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), this.regEBX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte7E(fn): mod=01 (dst:mem+d8)  reg=111 (src:BH)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte7E(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), this.regEBX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte7F(fn): mod=01 (dst:mem+d8)  reg=111 (src:BH)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte7F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), this.regEBX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte80(fn): mod=10 (dst:mem+d16)  reg=000 (src:AL)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte80(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByte81(fn): mod=10 (dst:mem+d16)  reg=000 (src:AL)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte81(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByte82(fn): mod=10 (dst:mem+d16)  reg=000 (src:AL)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte82(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByte83(fn): mod=10 (dst:mem+d16)  reg=000 (src:AL)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte83(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByte84(fn): mod=10 (dst:mem+d16)  reg=000 (src:AL)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte84(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte85(fn): mod=10 (dst:mem+d16)  reg=000 (src:AL)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte85(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte86(fn): mod=10 (dst:mem+d16)  reg=000 (src:AL)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte86(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte87(fn): mod=10 (dst:mem+d16)  reg=000 (src:AL)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte87(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte88(fn): mod=10 (dst:mem+d16)  reg=001 (src:CL)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte88(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByte89(fn): mod=10 (dst:mem+d16)  reg=001 (src:CL)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte89(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByte8A(fn): mod=10 (dst:mem+d16)  reg=001 (src:CL)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte8A(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByte8B(fn): mod=10 (dst:mem+d16)  reg=001 (src:CL)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte8B(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByte8C(fn): mod=10 (dst:mem+d16)  reg=001 (src:CL)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte8C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte8D(fn): mod=10 (dst:mem+d16)  reg=001 (src:CL)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte8D(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte8E(fn): mod=10 (dst:mem+d16)  reg=001 (src:CL)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte8E(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte8F(fn): mod=10 (dst:mem+d16)  reg=001 (src:CL)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte8F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte90(fn): mod=10 (dst:mem+d16)  reg=010 (src:DL)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte90(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByte91(fn): mod=10 (dst:mem+d16)  reg=010 (src:DL)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte91(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByte92(fn): mod=10 (dst:mem+d16)  reg=010 (src:DL)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte92(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByte93(fn): mod=10 (dst:mem+d16)  reg=010 (src:DL)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte93(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByte94(fn): mod=10 (dst:mem+d16)  reg=010 (src:DL)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte94(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte95(fn): mod=10 (dst:mem+d16)  reg=010 (src:DL)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte95(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte96(fn): mod=10 (dst:mem+d16)  reg=010 (src:DL)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte96(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte97(fn): mod=10 (dst:mem+d16)  reg=010 (src:DL)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte97(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte98(fn): mod=10 (dst:mem+d16)  reg=011 (src:BL)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte98(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByte99(fn): mod=10 (dst:mem+d16)  reg=011 (src:BL)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte99(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByte9A(fn): mod=10 (dst:mem+d16)  reg=011 (src:BL)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte9A(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByte9B(fn): mod=10 (dst:mem+d16)  reg=011 (src:BL)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte9B(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByte9C(fn): mod=10 (dst:mem+d16)  reg=011 (src:BL)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte9C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte9D(fn): mod=10 (dst:mem+d16)  reg=011 (src:BL)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte9D(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte9E(fn): mod=10 (dst:mem+d16)  reg=011 (src:BL)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte9E(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByte9F(fn): mod=10 (dst:mem+d16)  reg=011 (src:BL)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByte9F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByteA0(fn): mod=10 (dst:mem+d16)  reg=100 (src:AH)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteA0(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), this.regEAX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByteA1(fn): mod=10 (dst:mem+d16)  reg=100 (src:AH)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteA1(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), this.regEAX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByteA2(fn): mod=10 (dst:mem+d16)  reg=100 (src:AH)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteA2(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), this.regEAX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByteA3(fn): mod=10 (dst:mem+d16)  reg=100 (src:AH)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteA3(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regEAX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByteA4(fn): mod=10 (dst:mem+d16)  reg=100 (src:AH)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteA4(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPAddr()), this.regEAX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByteA5(fn): mod=10 (dst:mem+d16)  reg=100 (src:AH)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteA5(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), this.regEAX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByteA6(fn): mod=10 (dst:mem+d16)  reg=100 (src:AH)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteA6(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), this.regEAX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByteA7(fn): mod=10 (dst:mem+d16)  reg=100 (src:AH)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteA7(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), this.regEAX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByteA8(fn): mod=10 (dst:mem+d16)  reg=101 (src:CH)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteA8(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), this.regECX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByteA9(fn): mod=10 (dst:mem+d16)  reg=101 (src:CH)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteA9(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), this.regECX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByteAA(fn): mod=10 (dst:mem+d16)  reg=101 (src:CH)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteAA(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), this.regECX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByteAB(fn): mod=10 (dst:mem+d16)  reg=101 (src:CH)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteAB(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regECX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByteAC(fn): mod=10 (dst:mem+d16)  reg=101 (src:CH)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteAC(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPAddr()), this.regECX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByteAD(fn): mod=10 (dst:mem+d16)  reg=101 (src:CH)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteAD(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), this.regECX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByteAE(fn): mod=10 (dst:mem+d16)  reg=101 (src:CH)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteAE(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), this.regECX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByteAF(fn): mod=10 (dst:mem+d16)  reg=101 (src:CH)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteAF(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), this.regECX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByteB0(fn): mod=10 (dst:mem+d16)  reg=110 (src:DH)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteB0(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), this.regEDX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByteB1(fn): mod=10 (dst:mem+d16)  reg=110 (src:DH)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteB1(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), this.regEDX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByteB2(fn): mod=10 (dst:mem+d16)  reg=110 (src:DH)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteB2(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), this.regEDX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByteB3(fn): mod=10 (dst:mem+d16)  reg=110 (src:DH)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteB3(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regEDX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByteB4(fn): mod=10 (dst:mem+d16)  reg=110 (src:DH)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteB4(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPAddr()), this.regEDX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByteB5(fn): mod=10 (dst:mem+d16)  reg=110 (src:DH)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteB5(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), this.regEDX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByteB6(fn): mod=10 (dst:mem+d16)  reg=110 (src:DH)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteB6(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), this.regEDX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByteB7(fn): mod=10 (dst:mem+d16)  reg=110 (src:DH)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteB7(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), this.regEDX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByteB8(fn): mod=10 (dst:mem+d16)  reg=111 (src:BH)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteB8(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), this.regEBX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByteB9(fn): mod=10 (dst:mem+d16)  reg=111 (src:BH)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteB9(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), this.regEBX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByteBA(fn): mod=10 (dst:mem+d16)  reg=111 (src:BH)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteBA(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), this.regEBX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemByteBB(fn): mod=10 (dst:mem+d16)  reg=111 (src:BH)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteBB(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regEBX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemByteBC(fn): mod=10 (dst:mem+d16)  reg=111 (src:BH)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteBC(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPAddr()), this.regEBX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByteBD(fn): mod=10 (dst:mem+d16)  reg=111 (src:BH)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteBD(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), this.regEBX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByteBE(fn): mod=10 (dst:mem+d16)  reg=111 (src:BH)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteBE(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), this.regEBX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemByteBF(fn): mod=10 (dst:mem+d16)  reg=111 (src:BH)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemByteBF(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), this.regEBX >> 8);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                X86ModB.aOpModReg[0xC0],    X86ModB.aOpModReg[0xC8],    X86ModB.aOpModReg[0xD0],    X86ModB.aOpModReg[0xD8],
                X86ModB.aOpModReg[0xE0],    X86ModB.aOpModReg[0xE8],    X86ModB.aOpModReg[0xF0],    X86ModB.aOpModReg[0xF8],
                X86ModB.aOpModReg[0xC1],    X86ModB.aOpModReg[0xC9],    X86ModB.aOpModReg[0xD1],    X86ModB.aOpModReg[0xD9],
                X86ModB.aOpModReg[0xE1],    X86ModB.aOpModReg[0xE9],    X86ModB.aOpModReg[0xF1],    X86ModB.aOpModReg[0xF9],
                X86ModB.aOpModReg[0xC2],    X86ModB.aOpModReg[0xCA],    X86ModB.aOpModReg[0xD2],    X86ModB.aOpModReg[0xDA],
                X86ModB.aOpModReg[0xE2],    X86ModB.aOpModReg[0xEA],    X86ModB.aOpModReg[0xF2],    X86ModB.aOpModReg[0xFA],
                X86ModB.aOpModReg[0xC3],    X86ModB.aOpModReg[0xCB],    X86ModB.aOpModReg[0xD3],    X86ModB.aOpModReg[0xDB],
                X86ModB.aOpModReg[0xE3],    X86ModB.aOpModReg[0xEB],    X86ModB.aOpModReg[0xF3],    X86ModB.aOpModReg[0xFB],
                X86ModB.aOpModReg[0xC4],    X86ModB.aOpModReg[0xCC],    X86ModB.aOpModReg[0xD4],    X86ModB.aOpModReg[0xDC],
                X86ModB.aOpModReg[0xE4],    X86ModB.aOpModReg[0xEC],    X86ModB.aOpModReg[0xF4],    X86ModB.aOpModReg[0xFC],
                X86ModB.aOpModReg[0xC5],    X86ModB.aOpModReg[0xCD],    X86ModB.aOpModReg[0xD5],    X86ModB.aOpModReg[0xDD],
                X86ModB.aOpModReg[0xE5],    X86ModB.aOpModReg[0xED],    X86ModB.aOpModReg[0xF5],    X86ModB.aOpModReg[0xFD],
                X86ModB.aOpModReg[0xC6],    X86ModB.aOpModReg[0xCE],    X86ModB.aOpModReg[0xD6],    X86ModB.aOpModReg[0xDE],
                X86ModB.aOpModReg[0xE6],    X86ModB.aOpModReg[0xEE],    X86ModB.aOpModReg[0xF6],    X86ModB.aOpModReg[0xFE],
                X86ModB.aOpModReg[0xC7],    X86ModB.aOpModReg[0xCF],    X86ModB.aOpModReg[0xD7],    X86ModB.aOpModReg[0xDF],
                X86ModB.aOpModReg[0xE7],    X86ModB.aOpModReg[0xEF],    X86ModB.aOpModReg[0xF7],    X86ModB.aOpModReg[0xFF]
            ];
            
            X86ModB.aOpModGrp = [
                /**
                 * opModGrpByte00(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte00(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpByte01(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte01(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpByte02(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte02(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpByte03(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte03(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpByte04(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte04(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpByte05(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte05(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpByte06(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte06(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModGrpByte07(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte07(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpByte08(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte08(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpByte09(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte09(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpByte0A(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte0A(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpByte0B(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte0B(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpByte0C(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte0C(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpByte0D(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte0D(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpByte0E(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte0E(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModGrpByte0F(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte0F(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpByte10(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte10(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpByte11(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte11(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpByte12(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte12(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpByte13(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte13(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpByte14(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte14(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpByte15(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte15(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpByte16(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte16(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModGrpByte17(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte17(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpByte18(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte18(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpByte19(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte19(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpByte1A(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte1A(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpByte1B(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte1B(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpByte1C(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte1C(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpByte1D(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte1D(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpByte1E(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte1E(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModGrpByte1F(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte1F(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpByte20(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte20(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpByte21(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte21(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpByte22(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte22(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpByte23(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte23(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpByte24(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte24(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpByte25(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte25(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpByte26(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte26(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModGrpByte27(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte27(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpByte28(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte28(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpByte29(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte29(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpByte2A(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte2A(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpByte2B(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte2B(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpByte2C(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte2C(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpByte2D(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte2D(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpByte2E(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte2E(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModGrpByte2F(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte2F(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpByte30(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte30(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpByte31(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte31(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpByte32(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte32(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpByte33(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte33(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpByte34(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte34(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpByte35(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte35(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpByte36(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte36(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModGrpByte37(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte37(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpByte38(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte38(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpByte39(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte39(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpByte3A(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte3A(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpByte3B(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte3B(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpByte3C(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte3C(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpByte3D(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte3D(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpByte3E(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte3E(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModGrpByte3F(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte3F(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpByte40(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte40(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByte41(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte41(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByte42(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte42(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByte43(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte43(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByte44(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte44(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte45(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte45(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte46(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte46(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte47(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte47(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte48(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte48(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByte49(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte49(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByte4A(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte4A(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByte4B(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte4B(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByte4C(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte4C(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte4D(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte4D(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte4E(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte4E(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte4F(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte4F(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte50(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte50(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByte51(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte51(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByte52(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte52(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByte53(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte53(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByte54(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte54(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte55(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte55(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte56(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte56(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte57(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte57(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte58(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte58(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByte59(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte59(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByte5A(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte5A(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByte5B(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte5B(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByte5C(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte5C(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte5D(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte5D(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte5E(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte5E(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte5F(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte5F(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte60(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte60(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByte61(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte61(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByte62(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte62(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByte63(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte63(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByte64(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte64(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte65(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte65(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte66(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte66(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte67(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte67(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte68(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte68(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByte69(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte69(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByte6A(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte6A(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByte6B(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte6B(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByte6C(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte6C(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte6D(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte6D(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte6E(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte6E(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte6F(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte6F(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte70(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte70(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByte71(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte71(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByte72(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte72(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByte73(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte73(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByte74(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte74(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte75(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte75(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte76(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte76(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte77(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte77(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte78(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte78(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByte79(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte79(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByte7A(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte7A(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByte7B(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte7B(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByte7C(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte7C(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte7D(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte7D(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte7E(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte7E(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte7F(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte7F(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte80(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte80(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByte81(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte81(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByte82(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte82(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByte83(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte83(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByte84(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte84(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte85(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte85(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte86(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte86(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte87(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte87(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte88(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte88(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByte89(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte89(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByte8A(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte8A(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByte8B(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte8B(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByte8C(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte8C(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte8D(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte8D(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte8E(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte8E(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte8F(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte8F(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte90(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte90(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByte91(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte91(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByte92(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte92(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByte93(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte93(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByte94(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte94(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte95(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte95(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte96(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte96(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte97(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte97(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte98(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte98(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByte99(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte99(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByte9A(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte9A(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByte9B(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte9B(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByte9C(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte9C(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte9D(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte9D(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte9E(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte9E(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByte9F(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByte9F(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByteA0(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteA0(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByteA1(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteA1(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByteA2(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteA2(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByteA3(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteA3(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByteA4(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteA4(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByteA5(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteA5(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByteA6(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteA6(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByteA7(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteA7(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByteA8(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteA8(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByteA9(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteA9(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByteAA(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteAA(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByteAB(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteAB(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByteAC(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteAC(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByteAD(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteAD(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByteAE(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteAE(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByteAF(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteAF(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByteB0(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteB0(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByteB1(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteB1(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByteB2(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteB2(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByteB3(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteB3(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByteB4(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteB4(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByteB5(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteB5(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByteB6(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteB6(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByteB7(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteB7(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByteB8(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteB8(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByteB9(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteB9(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByteBA(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteBA(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpByteBB(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteBB(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpByteBC(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteBC(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByteBD(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteBD(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByteBE(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteBE(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByteBF(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteBF(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpByteC0(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteC0(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.regEAX & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteC1(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteC1(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.regECX & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteC2(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteC2(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.regEDX & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteC3(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteC3(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.regEBX & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteC4(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteC4(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, (this.regEAX >> 8), fnSrc.call(this));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteC5(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteC5(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, (this.regECX >> 8), fnSrc.call(this));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteC6(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteC6(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, (this.regEDX >> 8), fnSrc.call(this));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteC7(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteC7(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, (this.regEBX >> 8), fnSrc.call(this));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteC8(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteC8(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.regEAX & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteC9(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteC9(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.regECX & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteCA(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteCA(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.regEDX & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteCB(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteCB(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.regEBX & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteCC(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteCC(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, (this.regEAX >> 8), fnSrc.call(this));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteCD(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteCD(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, (this.regECX >> 8), fnSrc.call(this));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteCE(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteCE(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, (this.regEDX >> 8), fnSrc.call(this));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteCF(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteCF(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, (this.regEBX >> 8), fnSrc.call(this));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteD0(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteD0(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.regEAX & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteD1(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteD1(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.regECX & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteD2(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteD2(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.regEDX & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteD3(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteD3(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.regEBX & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteD4(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteD4(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, (this.regEAX >> 8), fnSrc.call(this));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteD5(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteD5(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, (this.regECX >> 8), fnSrc.call(this));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteD6(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteD6(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, (this.regEDX >> 8), fnSrc.call(this));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteD7(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteD7(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, (this.regEBX >> 8), fnSrc.call(this));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteD8(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteD8(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.regEAX & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteD9(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteD9(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.regECX & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteDA(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteDA(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.regEDX & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteDB(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteDB(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.regEBX & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteDC(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteDC(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, (this.regEAX >> 8), fnSrc.call(this));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteDD(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteDD(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, (this.regECX >> 8), fnSrc.call(this));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteDE(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteDE(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, (this.regEDX >> 8), fnSrc.call(this));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteDF(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteDF(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, (this.regEBX >> 8), fnSrc.call(this));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteE0(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteE0(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.regEAX & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteE1(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteE1(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.regECX & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteE2(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteE2(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.regEDX & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteE3(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteE3(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.regEBX & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteE4(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteE4(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, (this.regEAX >> 8), fnSrc.call(this));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteE5(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteE5(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, (this.regECX >> 8), fnSrc.call(this));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteE6(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteE6(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, (this.regEDX >> 8), fnSrc.call(this));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteE7(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteE7(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, (this.regEBX >> 8), fnSrc.call(this));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteE8(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteE8(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.regEAX & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteE9(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteE9(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.regECX & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteEA(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteEA(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.regEDX & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteEB(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteEB(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.regEBX & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteEC(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteEC(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, (this.regEAX >> 8), fnSrc.call(this));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteED(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteED(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, (this.regECX >> 8), fnSrc.call(this));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteEE(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteEE(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, (this.regEDX >> 8), fnSrc.call(this));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteEF(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteEF(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, (this.regEBX >> 8), fnSrc.call(this));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteF0(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteF0(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.regEAX & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteF1(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteF1(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.regECX & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteF2(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteF2(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.regEDX & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteF3(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteF3(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.regEBX & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteF4(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteF4(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, (this.regEAX >> 8), fnSrc.call(this));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteF5(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteF5(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, (this.regECX >> 8), fnSrc.call(this));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteF6(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteF6(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, (this.regEDX >> 8), fnSrc.call(this));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteF7(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteF7(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, (this.regEBX >> 8), fnSrc.call(this));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteF8(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteF8(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.regEAX & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteF9(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteF9(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.regECX & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteFA(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteFA(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.regEDX & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteFB(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteFB(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.regEBX & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteFC(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteFC(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, (this.regEAX >> 8), fnSrc.call(this));
                    this.regEAX = (this.regEAX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteFD(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteFD(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, (this.regECX >> 8), fnSrc.call(this));
                    this.regECX = (this.regECX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteFE(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteFE(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, (this.regEDX >> 8), fnSrc.call(this));
                    this.regEDX = (this.regEDX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                },
                /**
                 * opModGrpByteFF(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpByteFF(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, (this.regEBX >> 8), fnSrc.call(this));
                    this.regEBX = (this.regEBX & 0xff) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                }
            ];
            
            if (typeof module !== 'undefined') module.exports = X86ModB;
            
          • x86modb16.js
            /**
             * @fileoverview Implements PCjs 80386 ModRegRM byte decoders with 16-bit addressing.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Sep-05
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var X86         = require("./x86");
            }
            
            var X86ModB16 = {};
            
            X86ModB16.aOpModReg = [
                /**
                 * opMod16RegByte00(fn): mod=00 (src:mem)  reg=000 (dst:AL)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte00(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX + this.regESI));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegByte01(fn): mod=00 (src:mem)  reg=000 (dst:AL)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte01(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX + this.regEDI));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegByte02(fn): mod=00 (src:mem)  reg=000 (dst:AL)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte02(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteStack(this.regEBP + this.regESI));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegByte03(fn): mod=00 (src:mem)  reg=000 (dst:AL)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte03(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegByte04(fn): mod=00 (src:mem)  reg=000 (dst:AL)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte04(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regESI));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegByte05(fn): mod=00 (src:mem)  reg=000 (dst:AL)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte05(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEDI));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegByte06(fn): mod=00 (src:mem)  reg=000 (dst:AL)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte06(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16RegByte07(fn): mod=00 (src:mem)  reg=000 (dst:AL)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte07(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegByte08(fn): mod=00 (src:mem)  reg=001 (dst:CL)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte08(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX + this.regESI));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegByte09(fn): mod=00 (src:mem)  reg=001 (dst:CL)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte09(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX + this.regEDI));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegByte0A(fn): mod=00 (src:mem)  reg=001 (dst:CL)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte0A(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteStack(this.regEBP + this.regESI));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegByte0B(fn): mod=00 (src:mem)  reg=001 (dst:CL)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte0B(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegByte0C(fn): mod=00 (src:mem)  reg=001 (dst:CL)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte0C(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regESI));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegByte0D(fn): mod=00 (src:mem)  reg=001 (dst:CL)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte0D(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEDI));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegByte0E(fn): mod=00 (src:mem)  reg=001 (dst:CL)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte0E(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16RegByte0F(fn): mod=00 (src:mem)  reg=001 (dst:CL)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte0F(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegByte10(fn): mod=00 (src:mem)  reg=010 (dst:DL)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte10(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX + this.regESI));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegByte11(fn): mod=00 (src:mem)  reg=010 (dst:DL)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte11(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX + this.regEDI));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegByte12(fn): mod=00 (src:mem)  reg=010 (dst:DL)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte12(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteStack(this.regEBP + this.regESI));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegByte13(fn): mod=00 (src:mem)  reg=010 (dst:DL)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte13(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegByte14(fn): mod=00 (src:mem)  reg=010 (dst:DL)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte14(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regESI));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegByte15(fn): mod=00 (src:mem)  reg=010 (dst:DL)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte15(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEDI));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegByte16(fn): mod=00 (src:mem)  reg=010 (dst:DL)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte16(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16RegByte17(fn): mod=00 (src:mem)  reg=010 (dst:DL)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte17(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegByte18(fn): mod=00 (src:mem)  reg=011 (dst:BL)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte18(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX + this.regESI));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegByte19(fn): mod=00 (src:mem)  reg=011 (dst:BL)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte19(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX + this.regEDI));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegByte1A(fn): mod=00 (src:mem)  reg=011 (dst:BL)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte1A(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteStack(this.regEBP + this.regESI));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegByte1B(fn): mod=00 (src:mem)  reg=011 (dst:BL)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte1B(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegByte1C(fn): mod=00 (src:mem)  reg=011 (dst:BL)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte1C(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regESI));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegByte1D(fn): mod=00 (src:mem)  reg=011 (dst:BL)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte1D(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEDI));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegByte1E(fn): mod=00 (src:mem)  reg=011 (dst:BL)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte1E(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16RegByte1F(fn): mod=00 (src:mem)  reg=011 (dst:BL)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte1F(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegByte20(fn): mod=00 (src:mem)  reg=100 (dst:AH)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte20(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegByte21(fn): mod=00 (src:mem)  reg=100 (dst:AH)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte21(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegByte22(fn): mod=00 (src:mem)  reg=100 (dst:AH)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte22(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegByte23(fn): mod=00 (src:mem)  reg=100 (dst:AH)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte23(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegByte24(fn): mod=00 (src:mem)  reg=100 (dst:AH)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte24(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regESI));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegByte25(fn): mod=00 (src:mem)  reg=100 (dst:AH)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte25(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEDI));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegByte26(fn): mod=00 (src:mem)  reg=100 (dst:AH)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte26(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16RegByte27(fn): mod=00 (src:mem)  reg=100 (dst:AH)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte27(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegByte28(fn): mod=00 (src:mem)  reg=101 (dst:CH)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte28(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegByte29(fn): mod=00 (src:mem)  reg=101 (dst:CH)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte29(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegByte2A(fn): mod=00 (src:mem)  reg=101 (dst:CH)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte2A(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegByte2B(fn): mod=00 (src:mem)  reg=101 (dst:CH)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte2B(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegByte2C(fn): mod=00 (src:mem)  reg=101 (dst:CH)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte2C(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regESI));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegByte2D(fn): mod=00 (src:mem)  reg=101 (dst:CH)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte2D(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEDI));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegByte2E(fn): mod=00 (src:mem)  reg=101 (dst:CH)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte2E(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16RegByte2F(fn): mod=00 (src:mem)  reg=101 (dst:CH)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte2F(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegByte30(fn): mod=00 (src:mem)  reg=110 (dst:DH)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte30(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegByte31(fn): mod=00 (src:mem)  reg=110 (dst:DH)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte31(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegByte32(fn): mod=00 (src:mem)  reg=110 (dst:DH)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte32(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegByte33(fn): mod=00 (src:mem)  reg=110 (dst:DH)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte33(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegByte34(fn): mod=00 (src:mem)  reg=110 (dst:DH)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte34(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regESI));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegByte35(fn): mod=00 (src:mem)  reg=110 (dst:DH)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte35(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEDI));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegByte36(fn): mod=00 (src:mem)  reg=110 (dst:DH)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte36(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16RegByte37(fn): mod=00 (src:mem)  reg=110 (dst:DH)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte37(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegByte38(fn): mod=00 (src:mem)  reg=111 (dst:BH)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte38(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegByte39(fn): mod=00 (src:mem)  reg=111 (dst:BH)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte39(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegByte3A(fn): mod=00 (src:mem)  reg=111 (dst:BH)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte3A(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegByte3B(fn): mod=00 (src:mem)  reg=111 (dst:BH)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte3B(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegByte3C(fn): mod=00 (src:mem)  reg=111 (dst:BH)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte3C(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regESI));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegByte3D(fn): mod=00 (src:mem)  reg=111 (dst:BH)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte3D(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEDI));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegByte3E(fn): mod=00 (src:mem)  reg=111 (dst:BH)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte3E(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16RegByte3F(fn): mod=00 (src:mem)  reg=111 (dst:BH)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte3F(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegByte40(fn): mod=01 (src:mem+d8)  reg=000 (dst:AL)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte40(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByte41(fn): mod=01 (src:mem+d8)  reg=000 (dst:AL)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte41(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByte42(fn): mod=01 (src:mem+d8)  reg=000 (dst:AL)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte42(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByte43(fn): mod=01 (src:mem+d8)  reg=000 (dst:AL)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte43(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByte44(fn): mod=01 (src:mem+d8)  reg=000 (dst:AL)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte44(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regESI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte45(fn): mod=01 (src:mem+d8)  reg=000 (dst:AL)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte45(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte46(fn): mod=01 (src:mem+d8)  reg=000 (dst:AL)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte46(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte47(fn): mod=01 (src:mem+d8)  reg=000 (dst:AL)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte47(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte48(fn): mod=01 (src:mem+d8)  reg=001 (dst:CL)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte48(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByte49(fn): mod=01 (src:mem+d8)  reg=001 (dst:CL)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte49(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByte4A(fn): mod=01 (src:mem+d8)  reg=001 (dst:CL)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte4A(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByte4B(fn): mod=01 (src:mem+d8)  reg=001 (dst:CL)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte4B(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByte4C(fn): mod=01 (src:mem+d8)  reg=001 (dst:CL)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte4C(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regESI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte4D(fn): mod=01 (src:mem+d8)  reg=001 (dst:CL)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte4D(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte4E(fn): mod=01 (src:mem+d8)  reg=001 (dst:CL)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte4E(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte4F(fn): mod=01 (src:mem+d8)  reg=001 (dst:CL)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte4F(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte50(fn): mod=01 (src:mem+d8)  reg=010 (dst:DL)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte50(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByte51(fn): mod=01 (src:mem+d8)  reg=010 (dst:DL)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte51(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByte52(fn): mod=01 (src:mem+d8)  reg=010 (dst:DL)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte52(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByte53(fn): mod=01 (src:mem+d8)  reg=010 (dst:DL)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte53(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByte54(fn): mod=01 (src:mem+d8)  reg=010 (dst:DL)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte54(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regESI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte55(fn): mod=01 (src:mem+d8)  reg=010 (dst:DL)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte55(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte56(fn): mod=01 (src:mem+d8)  reg=010 (dst:DL)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte56(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte57(fn): mod=01 (src:mem+d8)  reg=010 (dst:DL)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte57(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte58(fn): mod=01 (src:mem+d8)  reg=011 (dst:BL)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte58(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByte59(fn): mod=01 (src:mem+d8)  reg=011 (dst:BL)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte59(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByte5A(fn): mod=01 (src:mem+d8)  reg=011 (dst:BL)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte5A(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByte5B(fn): mod=01 (src:mem+d8)  reg=011 (dst:BL)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte5B(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByte5C(fn): mod=01 (src:mem+d8)  reg=011 (dst:BL)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte5C(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regESI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte5D(fn): mod=01 (src:mem+d8)  reg=011 (dst:BL)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte5D(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte5E(fn): mod=01 (src:mem+d8)  reg=011 (dst:BL)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte5E(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte5F(fn): mod=01 (src:mem+d8)  reg=011 (dst:BL)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte5F(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte60(fn): mod=01 (src:mem+d8)  reg=100 (dst:AH)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte60(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByte61(fn): mod=01 (src:mem+d8)  reg=100 (dst:AH)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte61(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByte62(fn): mod=01 (src:mem+d8)  reg=100 (dst:AH)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte62(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByte63(fn): mod=01 (src:mem+d8)  reg=100 (dst:AH)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte63(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByte64(fn): mod=01 (src:mem+d8)  reg=100 (dst:AH)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte64(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte65(fn): mod=01 (src:mem+d8)  reg=100 (dst:AH)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte65(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte66(fn): mod=01 (src:mem+d8)  reg=100 (dst:AH)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte66(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte67(fn): mod=01 (src:mem+d8)  reg=100 (dst:AH)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte67(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte68(fn): mod=01 (src:mem+d8)  reg=101 (dst:CH)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte68(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByte69(fn): mod=01 (src:mem+d8)  reg=101 (dst:CH)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte69(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByte6A(fn): mod=01 (src:mem+d8)  reg=101 (dst:CH)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte6A(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByte6B(fn): mod=01 (src:mem+d8)  reg=101 (dst:CH)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte6B(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByte6C(fn): mod=01 (src:mem+d8)  reg=101 (dst:CH)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte6C(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte6D(fn): mod=01 (src:mem+d8)  reg=101 (dst:CH)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte6D(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte6E(fn): mod=01 (src:mem+d8)  reg=101 (dst:CH)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte6E(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte6F(fn): mod=01 (src:mem+d8)  reg=101 (dst:CH)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte6F(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte70(fn): mod=01 (src:mem+d8)  reg=110 (dst:DH)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte70(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByte71(fn): mod=01 (src:mem+d8)  reg=110 (dst:DH)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte71(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByte72(fn): mod=01 (src:mem+d8)  reg=110 (dst:DH)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte72(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByte73(fn): mod=01 (src:mem+d8)  reg=110 (dst:DH)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte73(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByte74(fn): mod=01 (src:mem+d8)  reg=110 (dst:DH)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte74(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte75(fn): mod=01 (src:mem+d8)  reg=110 (dst:DH)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte75(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte76(fn): mod=01 (src:mem+d8)  reg=110 (dst:DH)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte76(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte77(fn): mod=01 (src:mem+d8)  reg=110 (dst:DH)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte77(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte78(fn): mod=01 (src:mem+d8)  reg=111 (dst:BH)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte78(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByte79(fn): mod=01 (src:mem+d8)  reg=111 (dst:BH)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte79(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByte7A(fn): mod=01 (src:mem+d8)  reg=111 (dst:BH)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte7A(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByte7B(fn): mod=01 (src:mem+d8)  reg=111 (dst:BH)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte7B(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByte7C(fn): mod=01 (src:mem+d8)  reg=111 (dst:BH)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte7C(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte7D(fn): mod=01 (src:mem+d8)  reg=111 (dst:BH)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte7D(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte7E(fn): mod=01 (src:mem+d8)  reg=111 (dst:BH)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte7E(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte7F(fn): mod=01 (src:mem+d8)  reg=111 (dst:BH)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte7F(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte80(fn): mod=10 (src:mem+d16)  reg=000 (dst:AL)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte80(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByte81(fn): mod=10 (src:mem+d16)  reg=000 (dst:AL)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte81(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByte82(fn): mod=10 (src:mem+d16)  reg=000 (dst:AL)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte82(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByte83(fn): mod=10 (src:mem+d16)  reg=000 (dst:AL)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte83(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByte84(fn): mod=10 (src:mem+d16)  reg=000 (dst:AL)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte84(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regESI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte85(fn): mod=10 (src:mem+d16)  reg=000 (dst:AL)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte85(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEDI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte86(fn): mod=10 (src:mem+d16)  reg=000 (dst:AL)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte86(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteStack(this.regEBP + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte87(fn): mod=10 (src:mem+d16)  reg=000 (dst:AL)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte87(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte88(fn): mod=10 (src:mem+d16)  reg=001 (dst:CL)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte88(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByte89(fn): mod=10 (src:mem+d16)  reg=001 (dst:CL)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte89(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByte8A(fn): mod=10 (src:mem+d16)  reg=001 (dst:CL)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte8A(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByte8B(fn): mod=10 (src:mem+d16)  reg=001 (dst:CL)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte8B(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByte8C(fn): mod=10 (src:mem+d16)  reg=001 (dst:CL)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte8C(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regESI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte8D(fn): mod=10 (src:mem+d16)  reg=001 (dst:CL)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte8D(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEDI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte8E(fn): mod=10 (src:mem+d16)  reg=001 (dst:CL)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte8E(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteStack(this.regEBP + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte8F(fn): mod=10 (src:mem+d16)  reg=001 (dst:CL)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte8F(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte90(fn): mod=10 (src:mem+d16)  reg=010 (dst:DL)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte90(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByte91(fn): mod=10 (src:mem+d16)  reg=010 (dst:DL)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte91(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByte92(fn): mod=10 (src:mem+d16)  reg=010 (dst:DL)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte92(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByte93(fn): mod=10 (src:mem+d16)  reg=010 (dst:DL)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte93(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByte94(fn): mod=10 (src:mem+d16)  reg=010 (dst:DL)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte94(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regESI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte95(fn): mod=10 (src:mem+d16)  reg=010 (dst:DL)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte95(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEDI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte96(fn): mod=10 (src:mem+d16)  reg=010 (dst:DL)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte96(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteStack(this.regEBP + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte97(fn): mod=10 (src:mem+d16)  reg=010 (dst:DL)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte97(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte98(fn): mod=10 (src:mem+d16)  reg=011 (dst:BL)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte98(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByte99(fn): mod=10 (src:mem+d16)  reg=011 (dst:BL)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte99(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByte9A(fn): mod=10 (src:mem+d16)  reg=011 (dst:BL)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte9A(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByte9B(fn): mod=10 (src:mem+d16)  reg=011 (dst:BL)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte9B(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByte9C(fn): mod=10 (src:mem+d16)  reg=011 (dst:BL)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte9C(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regESI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte9D(fn): mod=10 (src:mem+d16)  reg=011 (dst:BL)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte9D(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEDI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte9E(fn): mod=10 (src:mem+d16)  reg=011 (dst:BL)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte9E(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteStack(this.regEBP + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByte9F(fn): mod=10 (src:mem+d16)  reg=011 (dst:BL)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByte9F(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByteA0(fn): mod=10 (src:mem+d16)  reg=100 (dst:AH)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteA0(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByteA1(fn): mod=10 (src:mem+d16)  reg=100 (dst:AH)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteA1(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByteA2(fn): mod=10 (src:mem+d16)  reg=100 (dst:AH)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteA2(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByteA3(fn): mod=10 (src:mem+d16)  reg=100 (dst:AH)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteA3(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByteA4(fn): mod=10 (src:mem+d16)  reg=100 (dst:AH)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteA4(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByteA5(fn): mod=10 (src:mem+d16)  reg=100 (dst:AH)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteA5(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByteA6(fn): mod=10 (src:mem+d16)  reg=100 (dst:AH)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteA6(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByteA7(fn): mod=10 (src:mem+d16)  reg=100 (dst:AH)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteA7(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByteA8(fn): mod=10 (src:mem+d16)  reg=101 (dst:CH)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteA8(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByteA9(fn): mod=10 (src:mem+d16)  reg=101 (dst:CH)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteA9(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByteAA(fn): mod=10 (src:mem+d16)  reg=101 (dst:CH)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteAA(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByteAB(fn): mod=10 (src:mem+d16)  reg=101 (dst:CH)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteAB(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByteAC(fn): mod=10 (src:mem+d16)  reg=101 (dst:CH)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteAC(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByteAD(fn): mod=10 (src:mem+d16)  reg=101 (dst:CH)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteAD(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByteAE(fn): mod=10 (src:mem+d16)  reg=101 (dst:CH)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteAE(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByteAF(fn): mod=10 (src:mem+d16)  reg=101 (dst:CH)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteAF(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByteB0(fn): mod=10 (src:mem+d16)  reg=110 (dst:DH)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteB0(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByteB1(fn): mod=10 (src:mem+d16)  reg=110 (dst:DH)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteB1(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByteB2(fn): mod=10 (src:mem+d16)  reg=110 (dst:DH)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteB2(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByteB3(fn): mod=10 (src:mem+d16)  reg=110 (dst:DH)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteB3(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByteB4(fn): mod=10 (src:mem+d16)  reg=110 (dst:DH)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteB4(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByteB5(fn): mod=10 (src:mem+d16)  reg=110 (dst:DH)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteB5(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByteB6(fn): mod=10 (src:mem+d16)  reg=110 (dst:DH)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteB6(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByteB7(fn): mod=10 (src:mem+d16)  reg=110 (dst:DH)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteB7(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByteB8(fn): mod=10 (src:mem+d16)  reg=111 (dst:BH)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteB8(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByteB9(fn): mod=10 (src:mem+d16)  reg=111 (dst:BH)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteB9(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByteBA(fn): mod=10 (src:mem+d16)  reg=111 (dst:BH)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteBA(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegByteBB(fn): mod=10 (src:mem+d16)  reg=111 (dst:BH)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteBB(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegByteBC(fn): mod=10 (src:mem+d16)  reg=111 (dst:BH)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteBC(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByteBD(fn): mod=10 (src:mem+d16)  reg=111 (dst:BH)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteBD(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByteBE(fn): mod=10 (src:mem+d16)  reg=111 (dst:BH)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteBE(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByteBF(fn): mod=10 (src:mem+d16)  reg=111 (dst:BH)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteBF(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegByteC0(fn): mod=11 (src:reg)  reg=000 (dst:AL)  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteC0(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.regEAX & 0xff);
                    this.regEAX = (this.regEAX & ~0xff) | b;
                },
                /**
                 * opMod16RegByteC1(fn): mod=11 (src:reg)  reg=000 (dst:AL)  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteC1(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.regECX & 0xff);
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiCL;
                },
                /**
                 * opMod16RegByteC2(fn): mod=11 (src:reg)  reg=000 (dst:AL)  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteC2(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.regEDX & 0xff);
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiDL;
                },
                /**
                 * opMod16RegByteC3(fn): mod=11 (src:reg)  reg=000 (dst:AL)  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteC3(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.regEBX & 0xff);
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiBL;
                },
                /**
                 * opMod16RegByteC4(fn): mod=11 (src:reg)  reg=000 (dst:AL)  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteC4(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, (this.regEAX >> 8) & 0xff);
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiAH;
                },
                /**
                 * opMod16RegByteC5(fn): mod=11 (src:reg)  reg=000 (dst:AL)  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteC5(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, (this.regECX >> 8) & 0xff);
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiCH;
                },
                /**
                 * opMod16RegByteC6(fn): mod=11 (src:reg)  reg=000 (dst:AL)  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteC6(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, (this.regEDX >> 8) & 0xff);
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiDH;
                },
                /**
                 * opMod16RegByteC7(fn): mod=11 (src:reg)  reg=000 (dst:AL)  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteC7(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, (this.regEBX >> 8) & 0xff);
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiBH;
                },
                /**
                 * opMod16RegByteC8(fn): mod=11 (src:reg)  reg=001 (dst:CL)  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteC8(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.regEAX & 0xff);
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiAL;
                },
                /**
                 * opMod16RegByteC9(fn): mod=11 (src:reg)  reg=001 (dst:CL)  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteC9(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.regECX & 0xff);
                    this.regECX = (this.regECX & ~0xff) | b;
                },
                /**
                 * opMod16RegByteCA(fn): mod=11 (src:reg)  reg=001 (dst:CL)  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteCA(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.regEDX & 0xff);
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiDL;
                },
                /**
                 * opMod16RegByteCB(fn): mod=11 (src:reg)  reg=001 (dst:CL)  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteCB(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.regEBX & 0xff);
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiBL;
                },
                /**
                 * opMod16RegByteCC(fn): mod=11 (src:reg)  reg=001 (dst:CL)  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteCC(fn) {
                    var b = fn.call(this, this.regECX & 0xff, (this.regEAX >> 8) & 0xff);
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiAH;
                },
                /**
                 * opMod16RegByteCD(fn): mod=11 (src:reg)  reg=001 (dst:CL)  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteCD(fn) {
                    var b = fn.call(this, this.regECX & 0xff, (this.regECX >> 8) & 0xff);
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiCH;
                },
                /**
                 * opMod16RegByteCE(fn): mod=11 (src:reg)  reg=001 (dst:CL)  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteCE(fn) {
                    var b = fn.call(this, this.regECX & 0xff, (this.regEDX >> 8) & 0xff);
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiDH;
                },
                /**
                 * opMod16RegByteCF(fn): mod=11 (src:reg)  reg=001 (dst:CL)  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteCF(fn) {
                    var b = fn.call(this, this.regECX & 0xff, (this.regEBX >> 8) & 0xff);
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiBH;
                },
                /**
                 * opMod16RegByteD0(fn): mod=11 (src:reg)  reg=010 (dst:DL)  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteD0(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.regEAX & 0xff);
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiAL;
                },
                /**
                 * opMod16RegByteD1(fn): mod=11 (src:reg)  reg=010 (dst:DL)  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteD1(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.regECX & 0xff);
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiCL;
                },
                /**
                 * opMod16RegByteD2(fn): mod=11 (src:reg)  reg=010 (dst:DL)  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteD2(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.regEDX & 0xff);
                    this.regEDX = (this.regEDX & ~0xff) | b;
                },
                /**
                 * opMod16RegByteD3(fn): mod=11 (src:reg)  reg=010 (dst:DL)  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteD3(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.regEBX & 0xff);
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiBL;
                },
                /**
                 * opMod16RegByteD4(fn): mod=11 (src:reg)  reg=010 (dst:DL)  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteD4(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, (this.regEAX >> 8) & 0xff);
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiAH;
                },
                /**
                 * opMod16RegByteD5(fn): mod=11 (src:reg)  reg=010 (dst:DL)  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteD5(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, (this.regECX >> 8) & 0xff);
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiCH;
                },
                /**
                 * opMod16RegByteD6(fn): mod=11 (src:reg)  reg=010 (dst:DL)  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteD6(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, (this.regEDX >> 8) & 0xff);
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiDH;
                },
                /**
                 * opMod16RegByteD7(fn): mod=11 (src:reg)  reg=010 (dst:DL)  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteD7(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, (this.regEBX >> 8) & 0xff);
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiBH;
                },
                /**
                 * opMod16RegByteD8(fn): mod=11 (src:reg)  reg=011 (dst:BL)  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteD8(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.regEAX & 0xff);
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiAL;
                },
                /**
                 * opMod16RegByteD9(fn): mod=11 (src:reg)  reg=011 (dst:BL)  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteD9(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.regECX & 0xff);
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiCL;
                },
                /**
                 * opMod16RegByteDA(fn): mod=11 (src:reg)  reg=011 (dst:BL)  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteDA(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.regEDX & 0xff);
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiDL;
                },
                /**
                 * opMod16RegByteDB(fn): mod=11 (src:reg)  reg=011 (dst:BL)  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteDB(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.regEBX & 0xff);
                    this.regEBX = (this.regEBX & ~0xff) | b;
                },
                /**
                 * opMod16RegByteDC(fn): mod=11 (src:reg)  reg=011 (dst:BL)  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteDC(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, (this.regEAX >> 8) & 0xff);
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiAH;
                },
                /**
                 * opMod16RegByteDD(fn): mod=11 (src:reg)  reg=011 (dst:BL)  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteDD(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, (this.regECX >> 8) & 0xff);
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiCH;
                },
                /**
                 * opMod16RegByteDE(fn): mod=11 (src:reg)  reg=011 (dst:BL)  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteDE(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, (this.regEDX >> 8) & 0xff);
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiDH;
                },
                /**
                 * opMod16RegByteDF(fn): mod=11 (src:reg)  reg=011 (dst:BL)  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteDF(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, (this.regEBX >> 8) & 0xff);
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiBH;
                },
                /**
                 * opMod16RegByteE0(fn): mod=11 (src:reg)  reg=100 (dst:AH)  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteE0(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.regEAX & 0xff);
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiAL;
                },
                /**
                 * opMod16RegByteE1(fn): mod=11 (src:reg)  reg=100 (dst:AH)  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteE1(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.regECX & 0xff);
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiCL;
                },
                /**
                 * opMod16RegByteE2(fn): mod=11 (src:reg)  reg=100 (dst:AH)  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteE2(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.regEDX & 0xff);
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiDL;
                },
                /**
                 * opMod16RegByteE3(fn): mod=11 (src:reg)  reg=100 (dst:AH)  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteE3(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.regEBX & 0xff);
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiBL;
                },
                /**
                 * opMod16RegByteE4(fn): mod=11 (src:reg)  reg=100 (dst:AH)  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteE4(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, (this.regEAX >> 8) & 0xff);
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                },
                /**
                 * opMod16RegByteE5(fn): mod=11 (src:reg)  reg=100 (dst:AH)  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteE5(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, (this.regECX >> 8) & 0xff);
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiCH;
                },
                /**
                 * opMod16RegByteE6(fn): mod=11 (src:reg)  reg=100 (dst:AH)  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteE6(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, (this.regEDX >> 8) & 0xff);
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiDH;
                },
                /**
                 * opMod16RegByteE7(fn): mod=11 (src:reg)  reg=100 (dst:AH)  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteE7(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, (this.regEBX >> 8) & 0xff);
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiBH;
                },
                /**
                 * opMod16RegByteE8(fn): mod=11 (src:reg)  reg=101 (dst:CH)  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteE8(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.regEAX & 0xff);
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiAL;
                },
                /**
                 * opMod16RegByteE9(fn): mod=11 (src:reg)  reg=101 (dst:CH)  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteE9(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.regECX & 0xff);
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiCL;
                },
                /**
                 * opMod16RegByteEA(fn): mod=11 (src:reg)  reg=101 (dst:CH)  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteEA(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.regEDX & 0xff);
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiDL;
                },
                /**
                 * opMod16RegByteEB(fn): mod=11 (src:reg)  reg=101 (dst:CH)  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteEB(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.regEBX & 0xff);
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiBL;
                },
                /**
                 * opMod16RegByteEC(fn): mod=11 (src:reg)  reg=101 (dst:CH)  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteEC(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, (this.regEAX >> 8) & 0xff);
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiAH;
                },
                /**
                 * opMod16RegByteED(fn): mod=11 (src:reg)  reg=101 (dst:CH)  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteED(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, (this.regECX >> 8) & 0xff);
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                },
                /**
                 * opMod16RegByteEE(fn): mod=11 (src:reg)  reg=101 (dst:CH)  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteEE(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, (this.regEDX >> 8) & 0xff);
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiDH;
                },
                /**
                 * opMod16RegByteEF(fn): mod=11 (src:reg)  reg=101 (dst:CH)  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteEF(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, (this.regEBX >> 8) & 0xff);
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiBH;
                },
                /**
                 * opMod16RegByteF0(fn): mod=11 (src:reg)  reg=110 (dst:DH)  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteF0(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.regEAX & 0xff);
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiAL;
                },
                /**
                 * opMod16RegByteF1(fn): mod=11 (src:reg)  reg=110 (dst:DH)  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteF1(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.regECX & 0xff);
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiCL;
                },
                /**
                 * opMod16RegByteF2(fn): mod=11 (src:reg)  reg=110 (dst:DH)  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteF2(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.regEDX & 0xff);
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiDL;
                },
                /**
                 * opMod16RegByteF3(fn): mod=11 (src:reg)  reg=110 (dst:DH)  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteF3(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.regEBX & 0xff);
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiBL;
                },
                /**
                 * opMod16RegByteF4(fn): mod=11 (src:reg)  reg=110 (dst:DH)  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteF4(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, (this.regEAX >> 8) & 0xff);
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiAH;
                },
                /**
                 * opMod16RegByteF5(fn): mod=11 (src:reg)  reg=110 (dst:DH)  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteF5(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, (this.regECX >> 8) & 0xff);
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiCH;
                },
                /**
                 * opMod16RegByteF6(fn): mod=11 (src:reg)  reg=110 (dst:DH)  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteF6(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, (this.regEDX >> 8) & 0xff);
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                },
                /**
                 * opMod16RegByteF7(fn): mod=11 (src:reg)  reg=110 (dst:DH)  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteF7(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, (this.regEBX >> 8) & 0xff);
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiBH;
                },
                /**
                 * opMod16RegByteF8(fn): mod=11 (src:reg)  reg=111 (dst:BH)  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteF8(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.regEAX & 0xff);
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiAL;
                },
                /**
                 * opMod16RegByteF9(fn): mod=11 (src:reg)  reg=111 (dst:BH)  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteF9(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.regECX & 0xff);
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiCL;
                },
                /**
                 * opMod16RegByteFA(fn): mod=11 (src:reg)  reg=111 (dst:BH)  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteFA(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.regEDX & 0xff);
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiDL;
                },
                /**
                 * opMod16RegByteFB(fn): mod=11 (src:reg)  reg=111 (dst:BH)  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteFB(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.regEBX & 0xff);
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiBL;
                },
                /**
                 * opMod16RegByteFC(fn): mod=11 (src:reg)  reg=111 (dst:BH)  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteFC(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, (this.regEAX >> 8) & 0xff);
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiAH;
                },
                /**
                 * opMod16RegByteFD(fn): mod=11 (src:reg)  reg=111 (dst:BH)  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteFD(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, (this.regECX >> 8) & 0xff);
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiCH;
                },
                /**
                 * opMod16RegByteFE(fn): mod=11 (src:reg)  reg=111 (dst:BH)  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteFE(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, (this.regEDX >> 8) & 0xff);
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiDH;
                },
                /**
                 * opMod16RegByteFF(fn): mod=11 (src:reg)  reg=111 (dst:BH)  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegByteFF(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, (this.regEBX >> 8) & 0xff);
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                }
            ];
            
            X86ModB16.aOpModMem = [
                /**
                 * opMod16MemByte00(fn): mod=00 (dst:mem)  reg=000 (src:AL)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte00(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemByte01(fn): mod=00 (dst:mem)  reg=000 (src:AL)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte01(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemByte02(fn): mod=00 (dst:mem)  reg=000 (src:AL)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte02(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemByte03(fn): mod=00 (dst:mem)  reg=000 (src:AL)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte03(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemByte04(fn): mod=00 (dst:mem)  reg=000 (src:AL)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte04(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemByte05(fn): mod=00 (dst:mem)  reg=000 (src:AL)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte05(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemByte06(fn): mod=00 (dst:mem)  reg=000 (src:AL)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte06(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16MemByte07(fn): mod=00 (dst:mem)  reg=000 (src:AL)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte07(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemByte08(fn): mod=00 (dst:mem)  reg=001 (src:CL)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte08(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemByte09(fn): mod=00 (dst:mem)  reg=001 (src:CL)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte09(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemByte0A(fn): mod=00 (dst:mem)  reg=001 (src:CL)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte0A(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemByte0B(fn): mod=00 (dst:mem)  reg=001 (src:CL)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte0B(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemByte0C(fn): mod=00 (dst:mem)  reg=001 (src:CL)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte0C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemByte0D(fn): mod=00 (dst:mem)  reg=001 (src:CL)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte0D(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemByte0E(fn): mod=00 (dst:mem)  reg=001 (src:CL)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte0E(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16MemByte0F(fn): mod=00 (dst:mem)  reg=001 (src:CL)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte0F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemByte10(fn): mod=00 (dst:mem)  reg=010 (src:DL)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte10(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemByte11(fn): mod=00 (dst:mem)  reg=010 (src:DL)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte11(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemByte12(fn): mod=00 (dst:mem)  reg=010 (src:DL)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte12(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemByte13(fn): mod=00 (dst:mem)  reg=010 (src:DL)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte13(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemByte14(fn): mod=00 (dst:mem)  reg=010 (src:DL)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte14(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemByte15(fn): mod=00 (dst:mem)  reg=010 (src:DL)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte15(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemByte16(fn): mod=00 (dst:mem)  reg=010 (src:DL)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte16(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16MemByte17(fn): mod=00 (dst:mem)  reg=010 (src:DL)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte17(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemByte18(fn): mod=00 (dst:mem)  reg=011 (src:BL)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte18(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemByte19(fn): mod=00 (dst:mem)  reg=011 (src:BL)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte19(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemByte1A(fn): mod=00 (dst:mem)  reg=011 (src:BL)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte1A(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemByte1B(fn): mod=00 (dst:mem)  reg=011 (src:BL)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte1B(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemByte1C(fn): mod=00 (dst:mem)  reg=011 (src:BL)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte1C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemByte1D(fn): mod=00 (dst:mem)  reg=011 (src:BL)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte1D(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemByte1E(fn): mod=00 (dst:mem)  reg=011 (src:BL)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte1E(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16MemByte1F(fn): mod=00 (dst:mem)  reg=011 (src:BL)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte1F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemByte20(fn): mod=00 (dst:mem)  reg=100 (src:AH)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte20(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemByte21(fn): mod=00 (dst:mem)  reg=100 (src:AH)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte21(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemByte22(fn): mod=00 (dst:mem)  reg=100 (src:AH)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte22(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemByte23(fn): mod=00 (dst:mem)  reg=100 (src:AH)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte23(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemByte24(fn): mod=00 (dst:mem)  reg=100 (src:AH)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte24(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemByte25(fn): mod=00 (dst:mem)  reg=100 (src:AH)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte25(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemByte26(fn): mod=00 (dst:mem)  reg=100 (src:AH)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte26(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getIPAddr()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16MemByte27(fn): mod=00 (dst:mem)  reg=100 (src:AH)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte27(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemByte28(fn): mod=00 (dst:mem)  reg=101 (src:CH)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte28(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemByte29(fn): mod=00 (dst:mem)  reg=101 (src:CH)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte29(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemByte2A(fn): mod=00 (dst:mem)  reg=101 (src:CH)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte2A(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemByte2B(fn): mod=00 (dst:mem)  reg=101 (src:CH)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte2B(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemByte2C(fn): mod=00 (dst:mem)  reg=101 (src:CH)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte2C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemByte2D(fn): mod=00 (dst:mem)  reg=101 (src:CH)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte2D(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemByte2E(fn): mod=00 (dst:mem)  reg=101 (src:CH)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte2E(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getIPAddr()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16MemByte2F(fn): mod=00 (dst:mem)  reg=101 (src:CH)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte2F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemByte30(fn): mod=00 (dst:mem)  reg=110 (src:DH)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte30(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemByte31(fn): mod=00 (dst:mem)  reg=110 (src:DH)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte31(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemByte32(fn): mod=00 (dst:mem)  reg=110 (src:DH)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte32(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemByte33(fn): mod=00 (dst:mem)  reg=110 (src:DH)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte33(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemByte34(fn): mod=00 (dst:mem)  reg=110 (src:DH)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte34(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemByte35(fn): mod=00 (dst:mem)  reg=110 (src:DH)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte35(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemByte36(fn): mod=00 (dst:mem)  reg=110 (src:DH)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte36(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getIPAddr()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16MemByte37(fn): mod=00 (dst:mem)  reg=110 (src:DH)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte37(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemByte38(fn): mod=00 (dst:mem)  reg=111 (src:BH)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte38(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemByte39(fn): mod=00 (dst:mem)  reg=111 (src:BH)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte39(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemByte3A(fn): mod=00 (dst:mem)  reg=111 (src:BH)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte3A(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemByte3B(fn): mod=00 (dst:mem)  reg=111 (src:BH)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte3B(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemByte3C(fn): mod=00 (dst:mem)  reg=111 (src:BH)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte3C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemByte3D(fn): mod=00 (dst:mem)  reg=111 (src:BH)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte3D(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemByte3E(fn): mod=00 (dst:mem)  reg=111 (src:BH)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte3E(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getIPAddr()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16MemByte3F(fn): mod=00 (dst:mem)  reg=111 (src:BH)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte3F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemByte40(fn): mod=01 (dst:mem+d8)  reg=000 (src:AL)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte40(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByte41(fn): mod=01 (dst:mem+d8)  reg=000 (src:AL)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte41(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByte42(fn): mod=01 (dst:mem+d8)  reg=000 (src:AL)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte42(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByte43(fn): mod=01 (dst:mem+d8)  reg=000 (src:AL)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte43(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByte44(fn): mod=01 (dst:mem+d8)  reg=000 (src:AL)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte44(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte45(fn): mod=01 (dst:mem+d8)  reg=000 (src:AL)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte45(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte46(fn): mod=01 (dst:mem+d8)  reg=000 (src:AL)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte46(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte47(fn): mod=01 (dst:mem+d8)  reg=000 (src:AL)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte47(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte48(fn): mod=01 (dst:mem+d8)  reg=001 (src:CL)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte48(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByte49(fn): mod=01 (dst:mem+d8)  reg=001 (src:CL)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte49(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByte4A(fn): mod=01 (dst:mem+d8)  reg=001 (src:CL)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte4A(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByte4B(fn): mod=01 (dst:mem+d8)  reg=001 (src:CL)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte4B(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByte4C(fn): mod=01 (dst:mem+d8)  reg=001 (src:CL)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte4C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte4D(fn): mod=01 (dst:mem+d8)  reg=001 (src:CL)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte4D(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte4E(fn): mod=01 (dst:mem+d8)  reg=001 (src:CL)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte4E(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte4F(fn): mod=01 (dst:mem+d8)  reg=001 (src:CL)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte4F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte50(fn): mod=01 (dst:mem+d8)  reg=010 (src:DL)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte50(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByte51(fn): mod=01 (dst:mem+d8)  reg=010 (src:DL)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte51(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByte52(fn): mod=01 (dst:mem+d8)  reg=010 (src:DL)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte52(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByte53(fn): mod=01 (dst:mem+d8)  reg=010 (src:DL)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte53(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByte54(fn): mod=01 (dst:mem+d8)  reg=010 (src:DL)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte54(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte55(fn): mod=01 (dst:mem+d8)  reg=010 (src:DL)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte55(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte56(fn): mod=01 (dst:mem+d8)  reg=010 (src:DL)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte56(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte57(fn): mod=01 (dst:mem+d8)  reg=010 (src:DL)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte57(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte58(fn): mod=01 (dst:mem+d8)  reg=011 (src:BL)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte58(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByte59(fn): mod=01 (dst:mem+d8)  reg=011 (src:BL)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte59(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByte5A(fn): mod=01 (dst:mem+d8)  reg=011 (src:BL)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte5A(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByte5B(fn): mod=01 (dst:mem+d8)  reg=011 (src:BL)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte5B(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByte5C(fn): mod=01 (dst:mem+d8)  reg=011 (src:BL)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte5C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte5D(fn): mod=01 (dst:mem+d8)  reg=011 (src:BL)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte5D(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte5E(fn): mod=01 (dst:mem+d8)  reg=011 (src:BL)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte5E(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte5F(fn): mod=01 (dst:mem+d8)  reg=011 (src:BL)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte5F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte60(fn): mod=01 (dst:mem+d8)  reg=100 (src:AH)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte60(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByte61(fn): mod=01 (dst:mem+d8)  reg=100 (src:AH)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte61(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByte62(fn): mod=01 (dst:mem+d8)  reg=100 (src:AH)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte62(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByte63(fn): mod=01 (dst:mem+d8)  reg=100 (src:AH)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte63(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByte64(fn): mod=01 (dst:mem+d8)  reg=100 (src:AH)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte64(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte65(fn): mod=01 (dst:mem+d8)  reg=100 (src:AH)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte65(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte66(fn): mod=01 (dst:mem+d8)  reg=100 (src:AH)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte66(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte67(fn): mod=01 (dst:mem+d8)  reg=100 (src:AH)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte67(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte68(fn): mod=01 (dst:mem+d8)  reg=101 (src:CH)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte68(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByte69(fn): mod=01 (dst:mem+d8)  reg=101 (src:CH)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte69(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByte6A(fn): mod=01 (dst:mem+d8)  reg=101 (src:CH)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte6A(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByte6B(fn): mod=01 (dst:mem+d8)  reg=101 (src:CH)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte6B(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByte6C(fn): mod=01 (dst:mem+d8)  reg=101 (src:CH)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte6C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte6D(fn): mod=01 (dst:mem+d8)  reg=101 (src:CH)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte6D(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte6E(fn): mod=01 (dst:mem+d8)  reg=101 (src:CH)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte6E(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte6F(fn): mod=01 (dst:mem+d8)  reg=101 (src:CH)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte6F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte70(fn): mod=01 (dst:mem+d8)  reg=110 (src:DH)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte70(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByte71(fn): mod=01 (dst:mem+d8)  reg=110 (src:DH)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte71(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByte72(fn): mod=01 (dst:mem+d8)  reg=110 (src:DH)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte72(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByte73(fn): mod=01 (dst:mem+d8)  reg=110 (src:DH)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte73(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByte74(fn): mod=01 (dst:mem+d8)  reg=110 (src:DH)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte74(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte75(fn): mod=01 (dst:mem+d8)  reg=110 (src:DH)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte75(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte76(fn): mod=01 (dst:mem+d8)  reg=110 (src:DH)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte76(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte77(fn): mod=01 (dst:mem+d8)  reg=110 (src:DH)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte77(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte78(fn): mod=01 (dst:mem+d8)  reg=111 (src:BH)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte78(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByte79(fn): mod=01 (dst:mem+d8)  reg=111 (src:BH)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte79(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByte7A(fn): mod=01 (dst:mem+d8)  reg=111 (src:BH)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte7A(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByte7B(fn): mod=01 (dst:mem+d8)  reg=111 (src:BH)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte7B(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByte7C(fn): mod=01 (dst:mem+d8)  reg=111 (src:BH)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte7C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte7D(fn): mod=01 (dst:mem+d8)  reg=111 (src:BH)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte7D(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte7E(fn): mod=01 (dst:mem+d8)  reg=111 (src:BH)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte7E(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte7F(fn): mod=01 (dst:mem+d8)  reg=111 (src:BH)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte7F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte80(fn): mod=10 (dst:mem+d16)  reg=000 (src:AL)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte80(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByte81(fn): mod=10 (dst:mem+d16)  reg=000 (src:AL)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte81(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByte82(fn): mod=10 (dst:mem+d16)  reg=000 (src:AL)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte82(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByte83(fn): mod=10 (dst:mem+d16)  reg=000 (src:AL)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte83(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByte84(fn): mod=10 (dst:mem+d16)  reg=000 (src:AL)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte84(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte85(fn): mod=10 (dst:mem+d16)  reg=000 (src:AL)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte85(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte86(fn): mod=10 (dst:mem+d16)  reg=000 (src:AL)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte86(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte87(fn): mod=10 (dst:mem+d16)  reg=000 (src:AL)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte87(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte88(fn): mod=10 (dst:mem+d16)  reg=001 (src:CL)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte88(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByte89(fn): mod=10 (dst:mem+d16)  reg=001 (src:CL)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte89(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByte8A(fn): mod=10 (dst:mem+d16)  reg=001 (src:CL)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte8A(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByte8B(fn): mod=10 (dst:mem+d16)  reg=001 (src:CL)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte8B(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByte8C(fn): mod=10 (dst:mem+d16)  reg=001 (src:CL)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte8C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte8D(fn): mod=10 (dst:mem+d16)  reg=001 (src:CL)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte8D(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte8E(fn): mod=10 (dst:mem+d16)  reg=001 (src:CL)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte8E(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte8F(fn): mod=10 (dst:mem+d16)  reg=001 (src:CL)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte8F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte90(fn): mod=10 (dst:mem+d16)  reg=010 (src:DL)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte90(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByte91(fn): mod=10 (dst:mem+d16)  reg=010 (src:DL)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte91(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByte92(fn): mod=10 (dst:mem+d16)  reg=010 (src:DL)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte92(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByte93(fn): mod=10 (dst:mem+d16)  reg=010 (src:DL)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte93(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByte94(fn): mod=10 (dst:mem+d16)  reg=010 (src:DL)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte94(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte95(fn): mod=10 (dst:mem+d16)  reg=010 (src:DL)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte95(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte96(fn): mod=10 (dst:mem+d16)  reg=010 (src:DL)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte96(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte97(fn): mod=10 (dst:mem+d16)  reg=010 (src:DL)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte97(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte98(fn): mod=10 (dst:mem+d16)  reg=011 (src:BL)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte98(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByte99(fn): mod=10 (dst:mem+d16)  reg=011 (src:BL)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte99(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByte9A(fn): mod=10 (dst:mem+d16)  reg=011 (src:BL)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte9A(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByte9B(fn): mod=10 (dst:mem+d16)  reg=011 (src:BL)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte9B(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByte9C(fn): mod=10 (dst:mem+d16)  reg=011 (src:BL)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte9C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte9D(fn): mod=10 (dst:mem+d16)  reg=011 (src:BL)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte9D(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte9E(fn): mod=10 (dst:mem+d16)  reg=011 (src:BL)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte9E(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByte9F(fn): mod=10 (dst:mem+d16)  reg=011 (src:BL)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByte9F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByteA0(fn): mod=10 (dst:mem+d16)  reg=100 (src:AH)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteA0(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByteA1(fn): mod=10 (dst:mem+d16)  reg=100 (src:AH)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteA1(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByteA2(fn): mod=10 (dst:mem+d16)  reg=100 (src:AH)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteA2(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByteA3(fn): mod=10 (dst:mem+d16)  reg=100 (src:AH)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteA3(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByteA4(fn): mod=10 (dst:mem+d16)  reg=100 (src:AH)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteA4(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPAddr()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByteA5(fn): mod=10 (dst:mem+d16)  reg=100 (src:AH)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteA5(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByteA6(fn): mod=10 (dst:mem+d16)  reg=100 (src:AH)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteA6(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByteA7(fn): mod=10 (dst:mem+d16)  reg=100 (src:AH)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteA7(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByteA8(fn): mod=10 (dst:mem+d16)  reg=101 (src:CH)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteA8(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByteA9(fn): mod=10 (dst:mem+d16)  reg=101 (src:CH)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteA9(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByteAA(fn): mod=10 (dst:mem+d16)  reg=101 (src:CH)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteAA(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByteAB(fn): mod=10 (dst:mem+d16)  reg=101 (src:CH)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteAB(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByteAC(fn): mod=10 (dst:mem+d16)  reg=101 (src:CH)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteAC(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPAddr()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByteAD(fn): mod=10 (dst:mem+d16)  reg=101 (src:CH)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteAD(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByteAE(fn): mod=10 (dst:mem+d16)  reg=101 (src:CH)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteAE(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByteAF(fn): mod=10 (dst:mem+d16)  reg=101 (src:CH)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteAF(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByteB0(fn): mod=10 (dst:mem+d16)  reg=110 (src:DH)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteB0(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByteB1(fn): mod=10 (dst:mem+d16)  reg=110 (src:DH)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteB1(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByteB2(fn): mod=10 (dst:mem+d16)  reg=110 (src:DH)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteB2(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByteB3(fn): mod=10 (dst:mem+d16)  reg=110 (src:DH)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteB3(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByteB4(fn): mod=10 (dst:mem+d16)  reg=110 (src:DH)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteB4(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPAddr()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByteB5(fn): mod=10 (dst:mem+d16)  reg=110 (src:DH)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteB5(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByteB6(fn): mod=10 (dst:mem+d16)  reg=110 (src:DH)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteB6(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByteB7(fn): mod=10 (dst:mem+d16)  reg=110 (src:DH)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteB7(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByteB8(fn): mod=10 (dst:mem+d16)  reg=111 (src:BH)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteB8(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByteB9(fn): mod=10 (dst:mem+d16)  reg=111 (src:BH)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteB9(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByteBA(fn): mod=10 (dst:mem+d16)  reg=111 (src:BH)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteBA(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemByteBB(fn): mod=10 (dst:mem+d16)  reg=111 (src:BH)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteBB(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemByteBC(fn): mod=10 (dst:mem+d16)  reg=111 (src:BH)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteBC(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPAddr()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByteBD(fn): mod=10 (dst:mem+d16)  reg=111 (src:BH)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteBD(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByteBE(fn): mod=10 (dst:mem+d16)  reg=111 (src:BH)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteBE(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemByteBF(fn): mod=10 (dst:mem+d16)  reg=111 (src:BH)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemByteBF(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                X86ModB16.aOpModReg[0xC0],  X86ModB16.aOpModReg[0xC8],  X86ModB16.aOpModReg[0xD0],  X86ModB16.aOpModReg[0xD8],
                X86ModB16.aOpModReg[0xE0],  X86ModB16.aOpModReg[0xE8],  X86ModB16.aOpModReg[0xF0],  X86ModB16.aOpModReg[0xF8],
                X86ModB16.aOpModReg[0xC1],  X86ModB16.aOpModReg[0xC9],  X86ModB16.aOpModReg[0xD1],  X86ModB16.aOpModReg[0xD9],
                X86ModB16.aOpModReg[0xE1],  X86ModB16.aOpModReg[0xE9],  X86ModB16.aOpModReg[0xF1],  X86ModB16.aOpModReg[0xF9],
                X86ModB16.aOpModReg[0xC2],  X86ModB16.aOpModReg[0xCA],  X86ModB16.aOpModReg[0xD2],  X86ModB16.aOpModReg[0xDA],
                X86ModB16.aOpModReg[0xE2],  X86ModB16.aOpModReg[0xEA],  X86ModB16.aOpModReg[0xF2],  X86ModB16.aOpModReg[0xFA],
                X86ModB16.aOpModReg[0xC3],  X86ModB16.aOpModReg[0xCB],  X86ModB16.aOpModReg[0xD3],  X86ModB16.aOpModReg[0xDB],
                X86ModB16.aOpModReg[0xE3],  X86ModB16.aOpModReg[0xEB],  X86ModB16.aOpModReg[0xF3],  X86ModB16.aOpModReg[0xFB],
                X86ModB16.aOpModReg[0xC4],  X86ModB16.aOpModReg[0xCC],  X86ModB16.aOpModReg[0xD4],  X86ModB16.aOpModReg[0xDC],
                X86ModB16.aOpModReg[0xE4],  X86ModB16.aOpModReg[0xEC],  X86ModB16.aOpModReg[0xF4],  X86ModB16.aOpModReg[0xFC],
                X86ModB16.aOpModReg[0xC5],  X86ModB16.aOpModReg[0xCD],  X86ModB16.aOpModReg[0xD5],  X86ModB16.aOpModReg[0xDD],
                X86ModB16.aOpModReg[0xE5],  X86ModB16.aOpModReg[0xED],  X86ModB16.aOpModReg[0xF5],  X86ModB16.aOpModReg[0xFD],
                X86ModB16.aOpModReg[0xC6],  X86ModB16.aOpModReg[0xCE],  X86ModB16.aOpModReg[0xD6],  X86ModB16.aOpModReg[0xDE],
                X86ModB16.aOpModReg[0xE6],  X86ModB16.aOpModReg[0xEE],  X86ModB16.aOpModReg[0xF6],  X86ModB16.aOpModReg[0xFE],
                X86ModB16.aOpModReg[0xC7],  X86ModB16.aOpModReg[0xCF],  X86ModB16.aOpModReg[0xD7],  X86ModB16.aOpModReg[0xDF],
                X86ModB16.aOpModReg[0xE7],  X86ModB16.aOpModReg[0xEF],  X86ModB16.aOpModReg[0xF7],  X86ModB16.aOpModReg[0xFF]
            ];
            
            X86ModB16.aOpModGrp = [
                /**
                 * opMod16GrpByte00(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte00(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpByte01(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte01(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpByte02(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte02(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpByte03(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte03(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpByte04(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte04(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpByte05(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte05(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpByte06(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte06(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16GrpByte07(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte07(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpByte08(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte08(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpByte09(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte09(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpByte0A(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte0A(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpByte0B(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte0B(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpByte0C(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte0C(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpByte0D(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte0D(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpByte0E(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte0E(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16GrpByte0F(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte0F(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpByte10(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte10(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpByte11(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte11(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpByte12(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte12(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpByte13(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte13(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpByte14(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte14(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpByte15(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte15(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpByte16(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte16(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16GrpByte17(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte17(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpByte18(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte18(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpByte19(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte19(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpByte1A(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte1A(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpByte1B(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte1B(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpByte1C(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte1C(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpByte1D(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte1D(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpByte1E(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte1E(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16GrpByte1F(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte1F(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpByte20(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte20(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpByte21(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte21(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpByte22(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte22(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpByte23(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte23(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpByte24(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte24(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpByte25(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte25(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpByte26(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte26(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16GrpByte27(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte27(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpByte28(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte28(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpByte29(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte29(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpByte2A(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte2A(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpByte2B(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte2B(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpByte2C(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte2C(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpByte2D(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte2D(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpByte2E(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte2E(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16GrpByte2F(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte2F(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpByte30(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte30(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpByte31(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte31(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpByte32(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte32(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpByte33(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte33(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpByte34(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte34(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpByte35(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte35(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpByte36(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte36(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16GrpByte37(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte37(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpByte38(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte38(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpByte39(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte39(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpByte3A(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte3A(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpByte3B(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte3B(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpByte3C(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte3C(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpByte3D(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte3D(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpByte3E(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte3E(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16GrpByte3F(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte3F(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpByte40(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte40(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByte41(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte41(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByte42(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte42(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByte43(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte43(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByte44(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte44(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte45(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte45(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte46(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte46(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte47(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte47(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte48(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte48(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByte49(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte49(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByte4A(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte4A(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByte4B(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte4B(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByte4C(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte4C(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte4D(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte4D(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte4E(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte4E(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte4F(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte4F(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte50(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte50(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByte51(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte51(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByte52(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte52(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByte53(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte53(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByte54(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte54(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte55(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte55(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte56(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte56(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte57(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte57(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte58(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte58(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByte59(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte59(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByte5A(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte5A(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByte5B(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte5B(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByte5C(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte5C(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte5D(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte5D(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte5E(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte5E(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte5F(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte5F(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte60(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte60(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByte61(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte61(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByte62(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte62(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByte63(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte63(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByte64(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte64(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte65(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte65(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte66(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte66(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte67(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte67(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte68(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte68(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByte69(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte69(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByte6A(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte6A(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByte6B(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte6B(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByte6C(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte6C(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte6D(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte6D(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte6E(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte6E(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte6F(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte6F(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte70(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte70(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByte71(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte71(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByte72(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte72(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByte73(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte73(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByte74(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte74(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte75(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte75(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte76(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte76(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte77(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte77(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte78(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte78(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByte79(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte79(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByte7A(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte7A(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByte7B(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte7B(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByte7C(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte7C(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte7D(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte7D(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte7E(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte7E(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte7F(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte7F(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte80(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte80(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByte81(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte81(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByte82(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte82(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByte83(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte83(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByte84(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte84(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte85(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte85(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte86(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte86(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte87(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte87(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte88(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte88(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByte89(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte89(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByte8A(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte8A(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByte8B(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte8B(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByte8C(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte8C(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte8D(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte8D(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte8E(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte8E(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte8F(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte8F(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte90(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte90(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByte91(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte91(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByte92(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte92(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByte93(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte93(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByte94(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte94(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte95(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte95(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte96(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte96(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte97(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte97(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte98(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte98(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByte99(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte99(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByte9A(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte9A(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByte9B(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte9B(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByte9C(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte9C(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte9D(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte9D(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte9E(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte9E(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByte9F(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByte9F(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByteA0(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteA0(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByteA1(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteA1(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByteA2(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteA2(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByteA3(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteA3(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByteA4(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteA4(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByteA5(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteA5(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByteA6(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteA6(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByteA7(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteA7(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByteA8(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteA8(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByteA9(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteA9(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByteAA(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteAA(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByteAB(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteAB(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByteAC(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteAC(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByteAD(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteAD(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByteAE(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteAE(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByteAF(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteAF(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByteB0(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteB0(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByteB1(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteB1(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByteB2(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteB2(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByteB3(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteB3(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByteB4(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteB4(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByteB5(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteB5(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByteB6(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteB6(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByteB7(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteB7(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByteB8(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteB8(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByteB9(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteB9(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByteBA(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteBA(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpByteBB(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteBB(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpByteBC(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteBC(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByteBD(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteBD(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByteBE(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteBE(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByteBF(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteBF(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpByteC0(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteC0(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.regEAX & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteC1(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteC1(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.regECX & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteC2(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteC2(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.regEDX & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteC3(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteC3(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.regEBX & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteC4(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteC4(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteC5(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteC5(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteC6(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteC6(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteC7(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteC7(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteC8(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteC8(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.regEAX & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteC9(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteC9(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.regECX & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteCA(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteCA(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.regEDX & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteCB(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteCB(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.regEBX & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteCC(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteCC(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteCD(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteCD(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteCE(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteCE(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteCF(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteCF(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteD0(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteD0(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.regEAX & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteD1(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteD1(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.regECX & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteD2(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteD2(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.regEDX & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteD3(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteD3(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.regEBX & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteD4(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteD4(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteD5(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteD5(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteD6(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteD6(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteD7(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteD7(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteD8(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteD8(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.regEAX & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteD9(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteD9(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.regECX & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteDA(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteDA(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.regEDX & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteDB(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteDB(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.regEBX & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteDC(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteDC(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteDD(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteDD(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteDE(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteDE(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteDF(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteDF(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteE0(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteE0(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.regEAX & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteE1(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteE1(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.regECX & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteE2(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteE2(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.regEDX & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteE3(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteE3(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.regEBX & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteE4(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteE4(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteE5(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteE5(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteE6(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteE6(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteE7(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteE7(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteE8(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteE8(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.regEAX & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteE9(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteE9(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.regECX & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteEA(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteEA(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.regEDX & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteEB(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteEB(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.regEBX & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteEC(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteEC(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteED(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteED(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteEE(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteEE(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteEF(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteEF(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteF0(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteF0(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.regEAX & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteF1(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteF1(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.regECX & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteF2(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteF2(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.regEDX & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteF3(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteF3(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.regEBX & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteF4(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteF4(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteF5(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteF5(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteF6(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteF6(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteF7(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteF7(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteF8(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteF8(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.regEAX & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteF9(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteF9(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.regECX & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteFA(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteFA(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.regEDX & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteFB(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteFB(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.regEBX & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteFC(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteFC(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteFD(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteFD(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteFE(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteFE(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                },
                /**
                 * opMod16GrpByteFF(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpByteFF(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                }
            ];
            
            if (typeof module !== 'undefined') module.exports = X86ModB16;
            
          • x86modb32.js
            /**
             * @fileoverview Implements PCjs 80386 ModRegRM byte decoders with 32-bit addressing.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2015-Jan-20
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var X86         = require("./x86");
            }
            
            var X86ModB32 = {};
            
            X86ModB32.aOpModReg = [
                /**
                 * opMod32RegByte00(fn): mod=00 (src:mem)  reg=000 (dst:AL)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte00(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEAX));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte01(fn): mod=00 (src:mem)  reg=000 (dst:AL)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte01(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regECX));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte02(fn): mod=00 (src:mem)  reg=000 (dst:AL)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte02(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEDX));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte03(fn): mod=00 (src:mem)  reg=000 (dst:AL)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte03(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte04(fn): mod=00 (src:mem)  reg=000 (dst:AL)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte04(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.getSIBAddr(0)));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte05(fn): mod=00 (src:mem)  reg=000 (dst:AL)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte05(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32RegByte06(fn): mod=00 (src:mem)  reg=000 (dst:AL)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte06(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regESI));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte07(fn): mod=00 (src:mem)  reg=000 (dst:AL)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte07(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEDI));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte08(fn): mod=00 (src:mem)  reg=001 (dst:CL)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte08(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEAX));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte09(fn): mod=00 (src:mem)  reg=001 (dst:CL)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte09(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regECX));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte0A(fn): mod=00 (src:mem)  reg=001 (dst:CL)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte0A(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEDX));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte0B(fn): mod=00 (src:mem)  reg=001 (dst:CL)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte0B(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte0C(fn): mod=00 (src:mem)  reg=001 (dst:CL)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte0C(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.getSIBAddr(0)));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte0D(fn): mod=00 (src:mem)  reg=001 (dst:CL)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte0D(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32RegByte0E(fn): mod=00 (src:mem)  reg=001 (dst:CL)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte0E(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regESI));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte0F(fn): mod=00 (src:mem)  reg=001 (dst:CL)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte0F(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEDI));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte10(fn): mod=00 (src:mem)  reg=010 (dst:DL)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte10(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEAX));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte11(fn): mod=00 (src:mem)  reg=010 (dst:DL)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte11(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regECX));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte12(fn): mod=00 (src:mem)  reg=010 (dst:DL)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte12(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEDX));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte13(fn): mod=00 (src:mem)  reg=010 (dst:DL)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte13(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte14(fn): mod=00 (src:mem)  reg=010 (dst:DL)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte14(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.getSIBAddr(0)));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte15(fn): mod=00 (src:mem)  reg=010 (dst:DL)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte15(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32RegByte16(fn): mod=00 (src:mem)  reg=010 (dst:DL)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte16(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regESI));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte17(fn): mod=00 (src:mem)  reg=010 (dst:DL)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte17(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEDI));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte18(fn): mod=00 (src:mem)  reg=011 (dst:BL)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte18(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEAX));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte19(fn): mod=00 (src:mem)  reg=011 (dst:BL)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte19(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regECX));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte1A(fn): mod=00 (src:mem)  reg=011 (dst:BL)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte1A(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEDX));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte1B(fn): mod=00 (src:mem)  reg=011 (dst:BL)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte1B(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte1C(fn): mod=00 (src:mem)  reg=011 (dst:BL)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte1C(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.getSIBAddr(0)));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte1D(fn): mod=00 (src:mem)  reg=011 (dst:BL)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte1D(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32RegByte1E(fn): mod=00 (src:mem)  reg=011 (dst:BL)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte1E(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regESI));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte1F(fn): mod=00 (src:mem)  reg=011 (dst:BL)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte1F(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEDI));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte20(fn): mod=00 (src:mem)  reg=100 (dst:AH)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte20(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEAX));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte21(fn): mod=00 (src:mem)  reg=100 (dst:AH)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte21(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regECX));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte22(fn): mod=00 (src:mem)  reg=100 (dst:AH)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte22(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEDX));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte23(fn): mod=00 (src:mem)  reg=100 (dst:AH)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte23(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte24(fn): mod=00 (src:mem)  reg=100 (dst:AH)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte24(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.getSIBAddr(0)));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte25(fn): mod=00 (src:mem)  reg=100 (dst:AH)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte25(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32RegByte26(fn): mod=00 (src:mem)  reg=100 (dst:AH)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte26(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regESI));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte27(fn): mod=00 (src:mem)  reg=100 (dst:AH)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte27(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEDI));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte28(fn): mod=00 (src:mem)  reg=101 (dst:CH)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte28(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEAX));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte29(fn): mod=00 (src:mem)  reg=101 (dst:CH)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte29(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regECX));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte2A(fn): mod=00 (src:mem)  reg=101 (dst:CH)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte2A(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEDX));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte2B(fn): mod=00 (src:mem)  reg=101 (dst:CH)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte2B(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte2C(fn): mod=00 (src:mem)  reg=101 (dst:CH)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte2C(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.getSIBAddr(0)));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte2D(fn): mod=00 (src:mem)  reg=101 (dst:CH)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte2D(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32RegByte2E(fn): mod=00 (src:mem)  reg=101 (dst:CH)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte2E(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regESI));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte2F(fn): mod=00 (src:mem)  reg=101 (dst:CH)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte2F(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEDI));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte30(fn): mod=00 (src:mem)  reg=110 (dst:DH)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte30(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEAX));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte31(fn): mod=00 (src:mem)  reg=110 (dst:DH)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte31(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regECX));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte32(fn): mod=00 (src:mem)  reg=110 (dst:DH)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte32(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEDX));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte33(fn): mod=00 (src:mem)  reg=110 (dst:DH)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte33(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte34(fn): mod=00 (src:mem)  reg=110 (dst:DH)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte34(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.getSIBAddr(0)));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte35(fn): mod=00 (src:mem)  reg=110 (dst:DH)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte35(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32RegByte36(fn): mod=00 (src:mem)  reg=110 (dst:DH)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte36(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regESI));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte37(fn): mod=00 (src:mem)  reg=110 (dst:DH)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte37(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEDI));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte38(fn): mod=00 (src:mem)  reg=111 (dst:BH)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte38(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEAX));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte39(fn): mod=00 (src:mem)  reg=111 (dst:BH)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte39(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regECX));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte3A(fn): mod=00 (src:mem)  reg=111 (dst:BH)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte3A(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEDX));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte3B(fn): mod=00 (src:mem)  reg=111 (dst:BH)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte3B(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte3C(fn): mod=00 (src:mem)  reg=111 (dst:BH)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte3C(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.getSIBAddr(0)));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte3D(fn): mod=00 (src:mem)  reg=111 (dst:BH)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte3D(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32RegByte3E(fn): mod=00 (src:mem)  reg=111 (dst:BH)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte3E(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regESI));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte3F(fn): mod=00 (src:mem)  reg=111 (dst:BH)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte3F(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEDI));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegByte40(fn): mod=01 (src:mem+d8)  reg=000 (dst:AL)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte40(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEAX + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte41(fn): mod=01 (src:mem+d8)  reg=000 (dst:AL)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte41(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regECX + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte42(fn): mod=01 (src:mem+d8)  reg=000 (dst:AL)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte42(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEDX + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte43(fn): mod=01 (src:mem+d8)  reg=000 (dst:AL)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte43(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte44(fn): mod=01 (src:mem+d8)  reg=000 (dst:AL)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte44(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.getSIBAddr(1) + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte45(fn): mod=01 (src:mem+d8)  reg=000 (dst:AL)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte45(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte46(fn): mod=01 (src:mem+d8)  reg=000 (dst:AL)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte46(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regESI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte47(fn): mod=01 (src:mem+d8)  reg=000 (dst:AL)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte47(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte48(fn): mod=01 (src:mem+d8)  reg=001 (dst:CL)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte48(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEAX + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte49(fn): mod=01 (src:mem+d8)  reg=001 (dst:CL)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte49(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regECX + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte4A(fn): mod=01 (src:mem+d8)  reg=001 (dst:CL)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte4A(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEDX + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte4B(fn): mod=01 (src:mem+d8)  reg=001 (dst:CL)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte4B(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte4C(fn): mod=01 (src:mem+d8)  reg=001 (dst:CL)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte4C(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.getSIBAddr(1) + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte4D(fn): mod=01 (src:mem+d8)  reg=001 (dst:CL)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte4D(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte4E(fn): mod=01 (src:mem+d8)  reg=001 (dst:CL)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte4E(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regESI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte4F(fn): mod=01 (src:mem+d8)  reg=001 (dst:CL)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte4F(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte50(fn): mod=01 (src:mem+d8)  reg=010 (dst:DL)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte50(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEAX + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte51(fn): mod=01 (src:mem+d8)  reg=010 (dst:DL)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte51(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regECX + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte52(fn): mod=01 (src:mem+d8)  reg=010 (dst:DL)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte52(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEDX + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte53(fn): mod=01 (src:mem+d8)  reg=010 (dst:DL)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte53(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte54(fn): mod=01 (src:mem+d8)  reg=010 (dst:DL)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte54(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.getSIBAddr(1) + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte55(fn): mod=01 (src:mem+d8)  reg=010 (dst:DL)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte55(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte56(fn): mod=01 (src:mem+d8)  reg=010 (dst:DL)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte56(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regESI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte57(fn): mod=01 (src:mem+d8)  reg=010 (dst:DL)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte57(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte58(fn): mod=01 (src:mem+d8)  reg=011 (dst:BL)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte58(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEAX + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte59(fn): mod=01 (src:mem+d8)  reg=011 (dst:BL)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte59(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regECX + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte5A(fn): mod=01 (src:mem+d8)  reg=011 (dst:BL)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte5A(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEDX + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte5B(fn): mod=01 (src:mem+d8)  reg=011 (dst:BL)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte5B(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte5C(fn): mod=01 (src:mem+d8)  reg=011 (dst:BL)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte5C(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.getSIBAddr(1) + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte5D(fn): mod=01 (src:mem+d8)  reg=011 (dst:BL)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte5D(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte5E(fn): mod=01 (src:mem+d8)  reg=011 (dst:BL)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte5E(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regESI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte5F(fn): mod=01 (src:mem+d8)  reg=011 (dst:BL)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte5F(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte60(fn): mod=01 (src:mem+d8)  reg=100 (dst:AH)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte60(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEAX + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte61(fn): mod=01 (src:mem+d8)  reg=100 (dst:AH)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte61(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regECX + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte62(fn): mod=01 (src:mem+d8)  reg=100 (dst:AH)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte62(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEDX + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte63(fn): mod=01 (src:mem+d8)  reg=100 (dst:AH)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte63(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte64(fn): mod=01 (src:mem+d8)  reg=100 (dst:AH)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte64(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.getSIBAddr(1) + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte65(fn): mod=01 (src:mem+d8)  reg=100 (dst:AH)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte65(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte66(fn): mod=01 (src:mem+d8)  reg=100 (dst:AH)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte66(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte67(fn): mod=01 (src:mem+d8)  reg=100 (dst:AH)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte67(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte68(fn): mod=01 (src:mem+d8)  reg=101 (dst:CH)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte68(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEAX + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte69(fn): mod=01 (src:mem+d8)  reg=101 (dst:CH)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte69(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regECX + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte6A(fn): mod=01 (src:mem+d8)  reg=101 (dst:CH)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte6A(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEDX + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte6B(fn): mod=01 (src:mem+d8)  reg=101 (dst:CH)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte6B(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte6C(fn): mod=01 (src:mem+d8)  reg=101 (dst:CH)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte6C(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.getSIBAddr(1) + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte6D(fn): mod=01 (src:mem+d8)  reg=101 (dst:CH)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte6D(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte6E(fn): mod=01 (src:mem+d8)  reg=101 (dst:CH)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte6E(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte6F(fn): mod=01 (src:mem+d8)  reg=101 (dst:CH)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte6F(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte70(fn): mod=01 (src:mem+d8)  reg=110 (dst:DH)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte70(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEAX + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte71(fn): mod=01 (src:mem+d8)  reg=110 (dst:DH)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte71(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regECX + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte72(fn): mod=01 (src:mem+d8)  reg=110 (dst:DH)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte72(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEDX + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte73(fn): mod=01 (src:mem+d8)  reg=110 (dst:DH)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte73(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte74(fn): mod=01 (src:mem+d8)  reg=110 (dst:DH)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte74(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.getSIBAddr(1) + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte75(fn): mod=01 (src:mem+d8)  reg=110 (dst:DH)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte75(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte76(fn): mod=01 (src:mem+d8)  reg=110 (dst:DH)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte76(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte77(fn): mod=01 (src:mem+d8)  reg=110 (dst:DH)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte77(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte78(fn): mod=01 (src:mem+d8)  reg=111 (dst:BH)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte78(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEAX + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte79(fn): mod=01 (src:mem+d8)  reg=111 (dst:BH)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte79(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regECX + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte7A(fn): mod=01 (src:mem+d8)  reg=111 (dst:BH)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte7A(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEDX + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte7B(fn): mod=01 (src:mem+d8)  reg=111 (dst:BH)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte7B(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte7C(fn): mod=01 (src:mem+d8)  reg=111 (dst:BH)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte7C(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.getSIBAddr(1) + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte7D(fn): mod=01 (src:mem+d8)  reg=111 (dst:BH)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte7D(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte7E(fn): mod=01 (src:mem+d8)  reg=111 (dst:BH)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte7E(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte7F(fn): mod=01 (src:mem+d8)  reg=111 (dst:BH)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte7F(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte80(fn): mod=10 (src:mem+d16)  reg=000 (dst:AL)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte80(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEAX + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte81(fn): mod=10 (src:mem+d16)  reg=000 (dst:AL)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte81(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regECX + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte82(fn): mod=10 (src:mem+d16)  reg=000 (dst:AL)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte82(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEDX + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte83(fn): mod=10 (src:mem+d16)  reg=000 (dst:AL)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte83(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte84(fn): mod=10 (src:mem+d16)  reg=000 (dst:AL)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte84(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.getSIBAddr(2) + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte85(fn): mod=10 (src:mem+d16)  reg=000 (dst:AL)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte85(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteStack(this.regEBP + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte86(fn): mod=10 (src:mem+d16)  reg=000 (dst:AL)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte86(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regESI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte87(fn): mod=10 (src:mem+d16)  reg=000 (dst:AL)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte87(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEDI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte88(fn): mod=10 (src:mem+d16)  reg=001 (dst:CL)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte88(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEAX + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte89(fn): mod=10 (src:mem+d16)  reg=001 (dst:CL)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte89(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regECX + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte8A(fn): mod=10 (src:mem+d16)  reg=001 (dst:CL)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte8A(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEDX + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte8B(fn): mod=10 (src:mem+d16)  reg=001 (dst:CL)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte8B(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte8C(fn): mod=10 (src:mem+d16)  reg=001 (dst:CL)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte8C(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.getSIBAddr(2) + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte8D(fn): mod=10 (src:mem+d16)  reg=001 (dst:CL)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte8D(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteStack(this.regEBP + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte8E(fn): mod=10 (src:mem+d16)  reg=001 (dst:CL)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte8E(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regESI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte8F(fn): mod=10 (src:mem+d16)  reg=001 (dst:CL)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte8F(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEDI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte90(fn): mod=10 (src:mem+d16)  reg=010 (dst:DL)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte90(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEAX + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte91(fn): mod=10 (src:mem+d16)  reg=010 (dst:DL)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte91(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regECX + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte92(fn): mod=10 (src:mem+d16)  reg=010 (dst:DL)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte92(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEDX + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte93(fn): mod=10 (src:mem+d16)  reg=010 (dst:DL)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte93(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte94(fn): mod=10 (src:mem+d16)  reg=010 (dst:DL)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte94(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.getSIBAddr(2) + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte95(fn): mod=10 (src:mem+d16)  reg=010 (dst:DL)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte95(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteStack(this.regEBP + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte96(fn): mod=10 (src:mem+d16)  reg=010 (dst:DL)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte96(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regESI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte97(fn): mod=10 (src:mem+d16)  reg=010 (dst:DL)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte97(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEDI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte98(fn): mod=10 (src:mem+d16)  reg=011 (dst:BL)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte98(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEAX + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte99(fn): mod=10 (src:mem+d16)  reg=011 (dst:BL)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte99(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regECX + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte9A(fn): mod=10 (src:mem+d16)  reg=011 (dst:BL)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte9A(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEDX + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte9B(fn): mod=10 (src:mem+d16)  reg=011 (dst:BL)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte9B(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte9C(fn): mod=10 (src:mem+d16)  reg=011 (dst:BL)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte9C(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.getSIBAddr(2) + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte9D(fn): mod=10 (src:mem+d16)  reg=011 (dst:BL)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte9D(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteStack(this.regEBP + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte9E(fn): mod=10 (src:mem+d16)  reg=011 (dst:BL)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte9E(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regESI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByte9F(fn): mod=10 (src:mem+d16)  reg=011 (dst:BL)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByte9F(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEDI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteA0(fn): mod=10 (src:mem+d16)  reg=100 (dst:AH)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteA0(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEAX + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteA1(fn): mod=10 (src:mem+d16)  reg=100 (dst:AH)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteA1(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regECX + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteA2(fn): mod=10 (src:mem+d16)  reg=100 (dst:AH)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteA2(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEDX + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteA3(fn): mod=10 (src:mem+d16)  reg=100 (dst:AH)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteA3(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteA4(fn): mod=10 (src:mem+d16)  reg=100 (dst:AH)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteA4(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.getSIBAddr(2) + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteA5(fn): mod=10 (src:mem+d16)  reg=100 (dst:AH)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteA5(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteA6(fn): mod=10 (src:mem+d16)  reg=100 (dst:AH)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteA6(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteA7(fn): mod=10 (src:mem+d16)  reg=100 (dst:AH)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteA7(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteA8(fn): mod=10 (src:mem+d16)  reg=101 (dst:CH)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteA8(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEAX + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteA9(fn): mod=10 (src:mem+d16)  reg=101 (dst:CH)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteA9(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regECX + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteAA(fn): mod=10 (src:mem+d16)  reg=101 (dst:CH)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteAA(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEDX + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteAB(fn): mod=10 (src:mem+d16)  reg=101 (dst:CH)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteAB(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteAC(fn): mod=10 (src:mem+d16)  reg=101 (dst:CH)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteAC(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.getSIBAddr(2) + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteAD(fn): mod=10 (src:mem+d16)  reg=101 (dst:CH)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteAD(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteAE(fn): mod=10 (src:mem+d16)  reg=101 (dst:CH)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteAE(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteAF(fn): mod=10 (src:mem+d16)  reg=101 (dst:CH)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteAF(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteB0(fn): mod=10 (src:mem+d16)  reg=110 (dst:DH)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteB0(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEAX + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteB1(fn): mod=10 (src:mem+d16)  reg=110 (dst:DH)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteB1(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regECX + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteB2(fn): mod=10 (src:mem+d16)  reg=110 (dst:DH)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteB2(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEDX + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteB3(fn): mod=10 (src:mem+d16)  reg=110 (dst:DH)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteB3(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteB4(fn): mod=10 (src:mem+d16)  reg=110 (dst:DH)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteB4(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.getSIBAddr(2) + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteB5(fn): mod=10 (src:mem+d16)  reg=110 (dst:DH)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteB5(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteB6(fn): mod=10 (src:mem+d16)  reg=110 (dst:DH)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteB6(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteB7(fn): mod=10 (src:mem+d16)  reg=110 (dst:DH)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteB7(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteB8(fn): mod=10 (src:mem+d16)  reg=111 (dst:BH)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteB8(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEAX + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteB9(fn): mod=10 (src:mem+d16)  reg=111 (dst:BH)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteB9(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regECX + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteBA(fn): mod=10 (src:mem+d16)  reg=111 (dst:BH)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteBA(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEDX + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteBB(fn): mod=10 (src:mem+d16)  reg=111 (dst:BH)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteBB(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteBC(fn): mod=10 (src:mem+d16)  reg=111 (dst:BH)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteBC(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.getSIBAddr(2) + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteBD(fn): mod=10 (src:mem+d16)  reg=111 (dst:BH)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteBD(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteBE(fn): mod=10 (src:mem+d16)  reg=111 (dst:BH)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteBE(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteBF(fn): mod=10 (src:mem+d16)  reg=111 (dst:BH)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteBF(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegByteC0(fn): mod=11 (src:reg)  reg=000 (dst:AL)  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteC0(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.regEAX & 0xff);
                    this.regEAX = (this.regEAX & ~0xff) | b;
                },
                /**
                 * opMod32RegByteC1(fn): mod=11 (src:reg)  reg=000 (dst:AL)  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteC1(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.regECX & 0xff);
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiCL;
                },
                /**
                 * opMod32RegByteC2(fn): mod=11 (src:reg)  reg=000 (dst:AL)  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteC2(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.regEDX & 0xff);
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiDL;
                },
                /**
                 * opMod32RegByteC3(fn): mod=11 (src:reg)  reg=000 (dst:AL)  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteC3(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, this.regEBX & 0xff);
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiBL;
                },
                /**
                 * opMod32RegByteC4(fn): mod=11 (src:reg)  reg=000 (dst:AL)  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteC4(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, (this.regEAX >> 8) & 0xff);
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiAH;
                },
                /**
                 * opMod32RegByteC5(fn): mod=11 (src:reg)  reg=000 (dst:AL)  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteC5(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, (this.regECX >> 8) & 0xff);
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiCH;
                },
                /**
                 * opMod32RegByteC6(fn): mod=11 (src:reg)  reg=000 (dst:AL)  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteC6(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, (this.regEDX >> 8) & 0xff);
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiDH;
                },
                /**
                 * opMod32RegByteC7(fn): mod=11 (src:reg)  reg=000 (dst:AL)  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteC7(fn) {
                    var b = fn.call(this, this.regEAX & 0xff, (this.regEBX >> 8) & 0xff);
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiBH;
                },
                /**
                 * opMod32RegByteC8(fn): mod=11 (src:reg)  reg=001 (dst:CL)  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteC8(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.regEAX & 0xff);
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiAL;
                },
                /**
                 * opMod32RegByteC9(fn): mod=11 (src:reg)  reg=001 (dst:CL)  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteC9(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.regECX & 0xff);
                    this.regECX = (this.regECX & ~0xff) | b;
                },
                /**
                 * opMod32RegByteCA(fn): mod=11 (src:reg)  reg=001 (dst:CL)  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteCA(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.regEDX & 0xff);
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiDL;
                },
                /**
                 * opMod32RegByteCB(fn): mod=11 (src:reg)  reg=001 (dst:CL)  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteCB(fn) {
                    var b = fn.call(this, this.regECX & 0xff, this.regEBX & 0xff);
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiBL;
                },
                /**
                 * opMod32RegByteCC(fn): mod=11 (src:reg)  reg=001 (dst:CL)  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteCC(fn) {
                    var b = fn.call(this, this.regECX & 0xff, (this.regEAX >> 8) & 0xff);
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiAH;
                },
                /**
                 * opMod32RegByteCD(fn): mod=11 (src:reg)  reg=001 (dst:CL)  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteCD(fn) {
                    var b = fn.call(this, this.regECX & 0xff, (this.regECX >> 8) & 0xff);
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiCH;
                },
                /**
                 * opMod32RegByteCE(fn): mod=11 (src:reg)  reg=001 (dst:CL)  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteCE(fn) {
                    var b = fn.call(this, this.regECX & 0xff, (this.regEDX >> 8) & 0xff);
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiDH;
                },
                /**
                 * opMod32RegByteCF(fn): mod=11 (src:reg)  reg=001 (dst:CL)  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteCF(fn) {
                    var b = fn.call(this, this.regECX & 0xff, (this.regEBX >> 8) & 0xff);
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiBH;
                },
                /**
                 * opMod32RegByteD0(fn): mod=11 (src:reg)  reg=010 (dst:DL)  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteD0(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.regEAX & 0xff);
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiAL;
                },
                /**
                 * opMod32RegByteD1(fn): mod=11 (src:reg)  reg=010 (dst:DL)  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteD1(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.regECX & 0xff);
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiCL;
                },
                /**
                 * opMod32RegByteD2(fn): mod=11 (src:reg)  reg=010 (dst:DL)  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteD2(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.regEDX & 0xff);
                    this.regEDX = (this.regEDX & ~0xff) | b;
                },
                /**
                 * opMod32RegByteD3(fn): mod=11 (src:reg)  reg=010 (dst:DL)  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteD3(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, this.regEBX & 0xff);
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiBL;
                },
                /**
                 * opMod32RegByteD4(fn): mod=11 (src:reg)  reg=010 (dst:DL)  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteD4(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, (this.regEAX >> 8) & 0xff);
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiAH;
                },
                /**
                 * opMod32RegByteD5(fn): mod=11 (src:reg)  reg=010 (dst:DL)  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteD5(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, (this.regECX >> 8) & 0xff);
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiCH;
                },
                /**
                 * opMod32RegByteD6(fn): mod=11 (src:reg)  reg=010 (dst:DL)  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteD6(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, (this.regEDX >> 8) & 0xff);
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiDH;
                },
                /**
                 * opMod32RegByteD7(fn): mod=11 (src:reg)  reg=010 (dst:DL)  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteD7(fn) {
                    var b = fn.call(this, this.regEDX & 0xff, (this.regEBX >> 8) & 0xff);
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiBH;
                },
                /**
                 * opMod32RegByteD8(fn): mod=11 (src:reg)  reg=011 (dst:BL)  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteD8(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.regEAX & 0xff);
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiAL;
                },
                /**
                 * opMod32RegByteD9(fn): mod=11 (src:reg)  reg=011 (dst:BL)  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteD9(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.regECX & 0xff);
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiCL;
                },
                /**
                 * opMod32RegByteDA(fn): mod=11 (src:reg)  reg=011 (dst:BL)  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteDA(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.regEDX & 0xff);
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiDL;
                },
                /**
                 * opMod32RegByteDB(fn): mod=11 (src:reg)  reg=011 (dst:BL)  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteDB(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, this.regEBX & 0xff);
                    this.regEBX = (this.regEBX & ~0xff) | b;
                },
                /**
                 * opMod32RegByteDC(fn): mod=11 (src:reg)  reg=011 (dst:BL)  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteDC(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, (this.regEAX >> 8) & 0xff);
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiAH;
                },
                /**
                 * opMod32RegByteDD(fn): mod=11 (src:reg)  reg=011 (dst:BL)  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteDD(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, (this.regECX >> 8) & 0xff);
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiCH;
                },
                /**
                 * opMod32RegByteDE(fn): mod=11 (src:reg)  reg=011 (dst:BL)  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteDE(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, (this.regEDX >> 8) & 0xff);
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiDH;
                },
                /**
                 * opMod32RegByteDF(fn): mod=11 (src:reg)  reg=011 (dst:BL)  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteDF(fn) {
                    var b = fn.call(this, this.regEBX & 0xff, (this.regEBX >> 8) & 0xff);
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiBH;
                },
                /**
                 * opMod32RegByteE0(fn): mod=11 (src:reg)  reg=100 (dst:AH)  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteE0(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.regEAX & 0xff);
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiAL;
                },
                /**
                 * opMod32RegByteE1(fn): mod=11 (src:reg)  reg=100 (dst:AH)  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteE1(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.regECX & 0xff);
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiCL;
                },
                /**
                 * opMod32RegByteE2(fn): mod=11 (src:reg)  reg=100 (dst:AH)  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteE2(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.regEDX & 0xff);
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiDL;
                },
                /**
                 * opMod32RegByteE3(fn): mod=11 (src:reg)  reg=100 (dst:AH)  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteE3(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.regEBX & 0xff);
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiBL;
                },
                /**
                 * opMod32RegByteE4(fn): mod=11 (src:reg)  reg=100 (dst:AH)  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteE4(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, (this.regEAX >> 8) & 0xff);
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                },
                /**
                 * opMod32RegByteE5(fn): mod=11 (src:reg)  reg=100 (dst:AH)  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteE5(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, (this.regECX >> 8) & 0xff);
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiCH;
                },
                /**
                 * opMod32RegByteE6(fn): mod=11 (src:reg)  reg=100 (dst:AH)  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteE6(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, (this.regEDX >> 8) & 0xff);
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiDH;
                },
                /**
                 * opMod32RegByteE7(fn): mod=11 (src:reg)  reg=100 (dst:AH)  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteE7(fn) {
                    var b = fn.call(this, (this.regEAX >> 8) & 0xff, (this.regEBX >> 8) & 0xff);
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiBH;
                },
                /**
                 * opMod32RegByteE8(fn): mod=11 (src:reg)  reg=101 (dst:CH)  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteE8(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.regEAX & 0xff);
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiAL;
                },
                /**
                 * opMod32RegByteE9(fn): mod=11 (src:reg)  reg=101 (dst:CH)  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteE9(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.regECX & 0xff);
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiCL;
                },
                /**
                 * opMod32RegByteEA(fn): mod=11 (src:reg)  reg=101 (dst:CH)  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteEA(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.regEDX & 0xff);
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiDL;
                },
                /**
                 * opMod32RegByteEB(fn): mod=11 (src:reg)  reg=101 (dst:CH)  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteEB(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, this.regEBX & 0xff);
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiBL;
                },
                /**
                 * opMod32RegByteEC(fn): mod=11 (src:reg)  reg=101 (dst:CH)  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteEC(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, (this.regEAX >> 8) & 0xff);
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiAH;
                },
                /**
                 * opMod32RegByteED(fn): mod=11 (src:reg)  reg=101 (dst:CH)  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteED(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, (this.regECX >> 8) & 0xff);
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                },
                /**
                 * opMod32RegByteEE(fn): mod=11 (src:reg)  reg=101 (dst:CH)  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteEE(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, (this.regEDX >> 8) & 0xff);
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiDH;
                },
                /**
                 * opMod32RegByteEF(fn): mod=11 (src:reg)  reg=101 (dst:CH)  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteEF(fn) {
                    var b = fn.call(this, (this.regECX >> 8) & 0xff, (this.regEBX >> 8) & 0xff);
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiBH;
                },
                /**
                 * opMod32RegByteF0(fn): mod=11 (src:reg)  reg=110 (dst:DH)  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteF0(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.regEAX & 0xff);
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiAL;
                },
                /**
                 * opMod32RegByteF1(fn): mod=11 (src:reg)  reg=110 (dst:DH)  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteF1(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.regECX & 0xff);
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiCL;
                },
                /**
                 * opMod32RegByteF2(fn): mod=11 (src:reg)  reg=110 (dst:DH)  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteF2(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.regEDX & 0xff);
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiDL;
                },
                /**
                 * opMod32RegByteF3(fn): mod=11 (src:reg)  reg=110 (dst:DH)  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteF3(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.regEBX & 0xff);
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiBL;
                },
                /**
                 * opMod32RegByteF4(fn): mod=11 (src:reg)  reg=110 (dst:DH)  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteF4(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, (this.regEAX >> 8) & 0xff);
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiAH;
                },
                /**
                 * opMod32RegByteF5(fn): mod=11 (src:reg)  reg=110 (dst:DH)  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteF5(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, (this.regECX >> 8) & 0xff);
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiCH;
                },
                /**
                 * opMod32RegByteF6(fn): mod=11 (src:reg)  reg=110 (dst:DH)  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteF6(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, (this.regEDX >> 8) & 0xff);
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                },
                /**
                 * opMod32RegByteF7(fn): mod=11 (src:reg)  reg=110 (dst:DH)  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteF7(fn) {
                    var b = fn.call(this, (this.regEDX >> 8) & 0xff, (this.regEBX >> 8) & 0xff);
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiBH;
                },
                /**
                 * opMod32RegByteF8(fn): mod=11 (src:reg)  reg=111 (dst:BH)  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteF8(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.regEAX & 0xff);
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiAL;
                },
                /**
                 * opMod32RegByteF9(fn): mod=11 (src:reg)  reg=111 (dst:BH)  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteF9(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.regECX & 0xff);
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiCL;
                },
                /**
                 * opMod32RegByteFA(fn): mod=11 (src:reg)  reg=111 (dst:BH)  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteFA(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.regEDX & 0xff);
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiDL;
                },
                /**
                 * opMod32RegByteFB(fn): mod=11 (src:reg)  reg=111 (dst:BH)  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteFB(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.regEBX & 0xff);
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiBL;
                },
                /**
                 * opMod32RegByteFC(fn): mod=11 (src:reg)  reg=111 (dst:BH)  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteFC(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, (this.regEAX >> 8) & 0xff);
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiAH;
                },
                /**
                 * opMod32RegByteFD(fn): mod=11 (src:reg)  reg=111 (dst:BH)  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteFD(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, (this.regECX >> 8) & 0xff);
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiCH;
                },
                /**
                 * opMod32RegByteFE(fn): mod=11 (src:reg)  reg=111 (dst:BH)  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteFE(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, (this.regEDX >> 8) & 0xff);
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiDH;
                },
                /**
                 * opMod32RegByteFF(fn): mod=11 (src:reg)  reg=111 (dst:BH)  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegByteFF(fn) {
                    var b = fn.call(this, (this.regEBX >> 8) & 0xff, (this.regEBX >> 8) & 0xff);
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                }
            ];
            
            X86ModB32.aOpModMem = [
                /**
                 * opMod32MemByte00(fn): mod=00 (dst:mem)  reg=000 (src:AL)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte00(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEAX), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte01(fn): mod=00 (dst:mem)  reg=000 (src:AL)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte01(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regECX), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte02(fn): mod=00 (dst:mem)  reg=000 (src:AL)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte02(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDX), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte03(fn): mod=00 (dst:mem)  reg=000 (src:AL)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte03(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte04(fn): mod=00 (dst:mem)  reg=000 (src:AL)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte04(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getSIBAddr(0)), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte05(fn): mod=00 (dst:mem)  reg=000 (src:AL)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte05(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32MemByte06(fn): mod=00 (dst:mem)  reg=000 (src:AL)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte06(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte07(fn): mod=00 (dst:mem)  reg=000 (src:AL)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte07(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte08(fn): mod=00 (dst:mem)  reg=001 (src:CL)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte08(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEAX), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte09(fn): mod=00 (dst:mem)  reg=001 (src:CL)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte09(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regECX), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte0A(fn): mod=00 (dst:mem)  reg=001 (src:CL)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte0A(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDX), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte0B(fn): mod=00 (dst:mem)  reg=001 (src:CL)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte0B(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte0C(fn): mod=00 (dst:mem)  reg=001 (src:CL)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte0C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getSIBAddr(0)), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte0D(fn): mod=00 (dst:mem)  reg=001 (src:CL)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte0D(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32MemByte0E(fn): mod=00 (dst:mem)  reg=001 (src:CL)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte0E(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte0F(fn): mod=00 (dst:mem)  reg=001 (src:CL)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte0F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte10(fn): mod=00 (dst:mem)  reg=010 (src:DL)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte10(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEAX), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte11(fn): mod=00 (dst:mem)  reg=010 (src:DL)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte11(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regECX), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte12(fn): mod=00 (dst:mem)  reg=010 (src:DL)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte12(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDX), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte13(fn): mod=00 (dst:mem)  reg=010 (src:DL)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte13(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte14(fn): mod=00 (dst:mem)  reg=010 (src:DL)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte14(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getSIBAddr(0)), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte15(fn): mod=00 (dst:mem)  reg=010 (src:DL)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte15(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32MemByte16(fn): mod=00 (dst:mem)  reg=010 (src:DL)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte16(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte17(fn): mod=00 (dst:mem)  reg=010 (src:DL)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte17(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte18(fn): mod=00 (dst:mem)  reg=011 (src:BL)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte18(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEAX), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte19(fn): mod=00 (dst:mem)  reg=011 (src:BL)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte19(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regECX), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte1A(fn): mod=00 (dst:mem)  reg=011 (src:BL)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte1A(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDX), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte1B(fn): mod=00 (dst:mem)  reg=011 (src:BL)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte1B(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte1C(fn): mod=00 (dst:mem)  reg=011 (src:BL)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte1C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getSIBAddr(0)), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte1D(fn): mod=00 (dst:mem)  reg=011 (src:BL)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte1D(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32MemByte1E(fn): mod=00 (dst:mem)  reg=011 (src:BL)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte1E(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte1F(fn): mod=00 (dst:mem)  reg=011 (src:BL)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte1F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte20(fn): mod=00 (dst:mem)  reg=100 (src:AH)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte20(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEAX), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte21(fn): mod=00 (dst:mem)  reg=100 (src:AH)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte21(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regECX), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte22(fn): mod=00 (dst:mem)  reg=100 (src:AH)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte22(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDX), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte23(fn): mod=00 (dst:mem)  reg=100 (src:AH)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte23(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte24(fn): mod=00 (dst:mem)  reg=100 (src:AH)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte24(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getSIBAddr(0)), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte25(fn): mod=00 (dst:mem)  reg=100 (src:AH)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte25(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getIPAddr()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32MemByte26(fn): mod=00 (dst:mem)  reg=100 (src:AH)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte26(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte27(fn): mod=00 (dst:mem)  reg=100 (src:AH)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte27(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte28(fn): mod=00 (dst:mem)  reg=101 (src:CH)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte28(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEAX), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte29(fn): mod=00 (dst:mem)  reg=101 (src:CH)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte29(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regECX), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte2A(fn): mod=00 (dst:mem)  reg=101 (src:CH)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte2A(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDX), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte2B(fn): mod=00 (dst:mem)  reg=101 (src:CH)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte2B(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte2C(fn): mod=00 (dst:mem)  reg=101 (src:CH)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte2C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getSIBAddr(0)), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte2D(fn): mod=00 (dst:mem)  reg=101 (src:CH)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte2D(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getIPAddr()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32MemByte2E(fn): mod=00 (dst:mem)  reg=101 (src:CH)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte2E(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte2F(fn): mod=00 (dst:mem)  reg=101 (src:CH)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte2F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte30(fn): mod=00 (dst:mem)  reg=110 (src:DH)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte30(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEAX), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte31(fn): mod=00 (dst:mem)  reg=110 (src:DH)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte31(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regECX), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte32(fn): mod=00 (dst:mem)  reg=110 (src:DH)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte32(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDX), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte33(fn): mod=00 (dst:mem)  reg=110 (src:DH)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte33(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte34(fn): mod=00 (dst:mem)  reg=110 (src:DH)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte34(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getSIBAddr(0)), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte35(fn): mod=00 (dst:mem)  reg=110 (src:DH)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte35(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getIPAddr()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32MemByte36(fn): mod=00 (dst:mem)  reg=110 (src:DH)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte36(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte37(fn): mod=00 (dst:mem)  reg=110 (src:DH)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte37(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte38(fn): mod=00 (dst:mem)  reg=111 (src:BH)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte38(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEAX), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte39(fn): mod=00 (dst:mem)  reg=111 (src:BH)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte39(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regECX), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte3A(fn): mod=00 (dst:mem)  reg=111 (src:BH)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte3A(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDX), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte3B(fn): mod=00 (dst:mem)  reg=111 (src:BH)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte3B(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte3C(fn): mod=00 (dst:mem)  reg=111 (src:BH)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte3C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getSIBAddr(0)), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte3D(fn): mod=00 (dst:mem)  reg=111 (src:BH)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte3D(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getIPAddr()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32MemByte3E(fn): mod=00 (dst:mem)  reg=111 (src:BH)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte3E(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte3F(fn): mod=00 (dst:mem)  reg=111 (src:BH)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte3F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemByte40(fn): mod=01 (dst:mem+d8)  reg=000 (src:AL)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte40(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEAX + this.getIPDisp()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte41(fn): mod=01 (dst:mem+d8)  reg=000 (src:AL)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte41(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regECX + this.getIPDisp()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte42(fn): mod=01 (dst:mem+d8)  reg=000 (src:AL)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte42(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDX + this.getIPDisp()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte43(fn): mod=01 (dst:mem+d8)  reg=000 (src:AL)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte43(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte44(fn): mod=01 (dst:mem+d8)  reg=000 (src:AL)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte44(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getSIBAddr(1) + this.getIPDisp()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte45(fn): mod=01 (dst:mem+d8)  reg=000 (src:AL)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte45(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte46(fn): mod=01 (dst:mem+d8)  reg=000 (src:AL)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte46(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte47(fn): mod=01 (dst:mem+d8)  reg=000 (src:AL)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte47(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte48(fn): mod=01 (dst:mem+d8)  reg=001 (src:CL)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte48(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEAX + this.getIPDisp()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte49(fn): mod=01 (dst:mem+d8)  reg=001 (src:CL)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte49(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regECX + this.getIPDisp()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte4A(fn): mod=01 (dst:mem+d8)  reg=001 (src:CL)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte4A(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDX + this.getIPDisp()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte4B(fn): mod=01 (dst:mem+d8)  reg=001 (src:CL)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte4B(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte4C(fn): mod=01 (dst:mem+d8)  reg=001 (src:CL)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte4C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getSIBAddr(1) + this.getIPDisp()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte4D(fn): mod=01 (dst:mem+d8)  reg=001 (src:CL)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte4D(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte4E(fn): mod=01 (dst:mem+d8)  reg=001 (src:CL)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte4E(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte4F(fn): mod=01 (dst:mem+d8)  reg=001 (src:CL)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte4F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte50(fn): mod=01 (dst:mem+d8)  reg=010 (src:DL)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte50(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEAX + this.getIPDisp()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte51(fn): mod=01 (dst:mem+d8)  reg=010 (src:DL)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte51(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regECX + this.getIPDisp()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte52(fn): mod=01 (dst:mem+d8)  reg=010 (src:DL)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte52(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDX + this.getIPDisp()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte53(fn): mod=01 (dst:mem+d8)  reg=010 (src:DL)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte53(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte54(fn): mod=01 (dst:mem+d8)  reg=010 (src:DL)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte54(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getSIBAddr(1) + this.getIPDisp()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte55(fn): mod=01 (dst:mem+d8)  reg=010 (src:DL)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte55(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte56(fn): mod=01 (dst:mem+d8)  reg=010 (src:DL)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte56(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte57(fn): mod=01 (dst:mem+d8)  reg=010 (src:DL)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte57(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte58(fn): mod=01 (dst:mem+d8)  reg=011 (src:BL)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte58(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEAX + this.getIPDisp()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte59(fn): mod=01 (dst:mem+d8)  reg=011 (src:BL)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte59(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regECX + this.getIPDisp()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte5A(fn): mod=01 (dst:mem+d8)  reg=011 (src:BL)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte5A(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDX + this.getIPDisp()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte5B(fn): mod=01 (dst:mem+d8)  reg=011 (src:BL)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte5B(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte5C(fn): mod=01 (dst:mem+d8)  reg=011 (src:BL)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte5C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getSIBAddr(1) + this.getIPDisp()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte5D(fn): mod=01 (dst:mem+d8)  reg=011 (src:BL)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte5D(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte5E(fn): mod=01 (dst:mem+d8)  reg=011 (src:BL)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte5E(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte5F(fn): mod=01 (dst:mem+d8)  reg=011 (src:BL)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte5F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte60(fn): mod=01 (dst:mem+d8)  reg=100 (src:AH)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte60(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEAX + this.getIPDisp()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte61(fn): mod=01 (dst:mem+d8)  reg=100 (src:AH)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte61(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regECX + this.getIPDisp()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte62(fn): mod=01 (dst:mem+d8)  reg=100 (src:AH)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte62(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDX + this.getIPDisp()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte63(fn): mod=01 (dst:mem+d8)  reg=100 (src:AH)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte63(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte64(fn): mod=01 (dst:mem+d8)  reg=100 (src:AH)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte64(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getSIBAddr(1) + this.getIPDisp()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte65(fn): mod=01 (dst:mem+d8)  reg=100 (src:AH)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte65(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte66(fn): mod=01 (dst:mem+d8)  reg=100 (src:AH)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte66(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte67(fn): mod=01 (dst:mem+d8)  reg=100 (src:AH)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte67(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte68(fn): mod=01 (dst:mem+d8)  reg=101 (src:CH)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte68(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEAX + this.getIPDisp()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte69(fn): mod=01 (dst:mem+d8)  reg=101 (src:CH)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte69(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regECX + this.getIPDisp()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte6A(fn): mod=01 (dst:mem+d8)  reg=101 (src:CH)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte6A(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDX + this.getIPDisp()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte6B(fn): mod=01 (dst:mem+d8)  reg=101 (src:CH)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte6B(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte6C(fn): mod=01 (dst:mem+d8)  reg=101 (src:CH)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte6C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getSIBAddr(1) + this.getIPDisp()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte6D(fn): mod=01 (dst:mem+d8)  reg=101 (src:CH)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte6D(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte6E(fn): mod=01 (dst:mem+d8)  reg=101 (src:CH)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte6E(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte6F(fn): mod=01 (dst:mem+d8)  reg=101 (src:CH)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte6F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte70(fn): mod=01 (dst:mem+d8)  reg=110 (src:DH)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte70(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEAX + this.getIPDisp()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte71(fn): mod=01 (dst:mem+d8)  reg=110 (src:DH)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte71(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regECX + this.getIPDisp()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte72(fn): mod=01 (dst:mem+d8)  reg=110 (src:DH)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte72(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDX + this.getIPDisp()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte73(fn): mod=01 (dst:mem+d8)  reg=110 (src:DH)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte73(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte74(fn): mod=01 (dst:mem+d8)  reg=110 (src:DH)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte74(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getSIBAddr(1) + this.getIPDisp()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte75(fn): mod=01 (dst:mem+d8)  reg=110 (src:DH)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte75(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte76(fn): mod=01 (dst:mem+d8)  reg=110 (src:DH)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte76(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte77(fn): mod=01 (dst:mem+d8)  reg=110 (src:DH)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte77(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte78(fn): mod=01 (dst:mem+d8)  reg=111 (src:BH)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte78(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEAX + this.getIPDisp()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte79(fn): mod=01 (dst:mem+d8)  reg=111 (src:BH)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte79(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regECX + this.getIPDisp()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte7A(fn): mod=01 (dst:mem+d8)  reg=111 (src:BH)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte7A(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDX + this.getIPDisp()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte7B(fn): mod=01 (dst:mem+d8)  reg=111 (src:BH)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte7B(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte7C(fn): mod=01 (dst:mem+d8)  reg=111 (src:BH)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte7C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getSIBAddr(1) + this.getIPDisp()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte7D(fn): mod=01 (dst:mem+d8)  reg=111 (src:BH)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte7D(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte7E(fn): mod=01 (dst:mem+d8)  reg=111 (src:BH)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte7E(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte7F(fn): mod=01 (dst:mem+d8)  reg=111 (src:BH)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte7F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte80(fn): mod=10 (dst:mem+d16)  reg=000 (src:AL)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte80(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEAX + this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte81(fn): mod=10 (dst:mem+d16)  reg=000 (src:AL)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte81(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regECX + this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte82(fn): mod=10 (dst:mem+d16)  reg=000 (src:AL)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte82(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDX + this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte83(fn): mod=10 (dst:mem+d16)  reg=000 (src:AL)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte83(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte84(fn): mod=10 (dst:mem+d16)  reg=000 (src:AL)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte84(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getSIBAddr(2) + this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte85(fn): mod=10 (dst:mem+d16)  reg=000 (src:AL)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte85(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte86(fn): mod=10 (dst:mem+d16)  reg=000 (src:AL)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte86(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte87(fn): mod=10 (dst:mem+d16)  reg=000 (src:AL)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte87(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), this.regEAX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte88(fn): mod=10 (dst:mem+d16)  reg=001 (src:CL)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte88(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEAX + this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte89(fn): mod=10 (dst:mem+d16)  reg=001 (src:CL)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte89(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regECX + this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte8A(fn): mod=10 (dst:mem+d16)  reg=001 (src:CL)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte8A(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDX + this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte8B(fn): mod=10 (dst:mem+d16)  reg=001 (src:CL)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte8B(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte8C(fn): mod=10 (dst:mem+d16)  reg=001 (src:CL)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte8C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getSIBAddr(2) + this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte8D(fn): mod=10 (dst:mem+d16)  reg=001 (src:CL)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte8D(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte8E(fn): mod=10 (dst:mem+d16)  reg=001 (src:CL)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte8E(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte8F(fn): mod=10 (dst:mem+d16)  reg=001 (src:CL)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte8F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), this.regECX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte90(fn): mod=10 (dst:mem+d16)  reg=010 (src:DL)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte90(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEAX + this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte91(fn): mod=10 (dst:mem+d16)  reg=010 (src:DL)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte91(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regECX + this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte92(fn): mod=10 (dst:mem+d16)  reg=010 (src:DL)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte92(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDX + this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte93(fn): mod=10 (dst:mem+d16)  reg=010 (src:DL)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte93(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte94(fn): mod=10 (dst:mem+d16)  reg=010 (src:DL)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte94(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getSIBAddr(2) + this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte95(fn): mod=10 (dst:mem+d16)  reg=010 (src:DL)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte95(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte96(fn): mod=10 (dst:mem+d16)  reg=010 (src:DL)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte96(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte97(fn): mod=10 (dst:mem+d16)  reg=010 (src:DL)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte97(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), this.regEDX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte98(fn): mod=10 (dst:mem+d16)  reg=011 (src:BL)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte98(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEAX + this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte99(fn): mod=10 (dst:mem+d16)  reg=011 (src:BL)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte99(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regECX + this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte9A(fn): mod=10 (dst:mem+d16)  reg=011 (src:BL)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte9A(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDX + this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte9B(fn): mod=10 (dst:mem+d16)  reg=011 (src:BL)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte9B(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte9C(fn): mod=10 (dst:mem+d16)  reg=011 (src:BL)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte9C(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getSIBAddr(2) + this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte9D(fn): mod=10 (dst:mem+d16)  reg=011 (src:BL)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte9D(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte9E(fn): mod=10 (dst:mem+d16)  reg=011 (src:BL)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte9E(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByte9F(fn): mod=10 (dst:mem+d16)  reg=011 (src:BL)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByte9F(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), this.regEBX & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteA0(fn): mod=10 (dst:mem+d16)  reg=100 (src:AH)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteA0(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEAX + this.getIPAddr()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteA1(fn): mod=10 (dst:mem+d16)  reg=100 (src:AH)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteA1(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regECX + this.getIPAddr()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteA2(fn): mod=10 (dst:mem+d16)  reg=100 (src:AH)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteA2(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDX + this.getIPAddr()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteA3(fn): mod=10 (dst:mem+d16)  reg=100 (src:AH)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteA3(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteA4(fn): mod=10 (dst:mem+d16)  reg=100 (src:AH)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteA4(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getSIBAddr(2) + this.getIPAddr()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteA5(fn): mod=10 (dst:mem+d16)  reg=100 (src:AH)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteA5(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteA6(fn): mod=10 (dst:mem+d16)  reg=100 (src:AH)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteA6(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPAddr()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteA7(fn): mod=10 (dst:mem+d16)  reg=100 (src:AH)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteA7(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), (this.regEAX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteA8(fn): mod=10 (dst:mem+d16)  reg=101 (src:CH)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteA8(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEAX + this.getIPAddr()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteA9(fn): mod=10 (dst:mem+d16)  reg=101 (src:CH)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteA9(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regECX + this.getIPAddr()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteAA(fn): mod=10 (dst:mem+d16)  reg=101 (src:CH)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteAA(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDX + this.getIPAddr()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteAB(fn): mod=10 (dst:mem+d16)  reg=101 (src:CH)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteAB(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteAC(fn): mod=10 (dst:mem+d16)  reg=101 (src:CH)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteAC(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getSIBAddr(2) + this.getIPAddr()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteAD(fn): mod=10 (dst:mem+d16)  reg=101 (src:CH)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteAD(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteAE(fn): mod=10 (dst:mem+d16)  reg=101 (src:CH)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteAE(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPAddr()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteAF(fn): mod=10 (dst:mem+d16)  reg=101 (src:CH)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteAF(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), (this.regECX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteB0(fn): mod=10 (dst:mem+d16)  reg=110 (src:DH)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteB0(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEAX + this.getIPAddr()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteB1(fn): mod=10 (dst:mem+d16)  reg=110 (src:DH)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteB1(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regECX + this.getIPAddr()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteB2(fn): mod=10 (dst:mem+d16)  reg=110 (src:DH)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteB2(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDX + this.getIPAddr()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteB3(fn): mod=10 (dst:mem+d16)  reg=110 (src:DH)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteB3(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteB4(fn): mod=10 (dst:mem+d16)  reg=110 (src:DH)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteB4(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getSIBAddr(2) + this.getIPAddr()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteB5(fn): mod=10 (dst:mem+d16)  reg=110 (src:DH)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteB5(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteB6(fn): mod=10 (dst:mem+d16)  reg=110 (src:DH)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteB6(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPAddr()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteB7(fn): mod=10 (dst:mem+d16)  reg=110 (src:DH)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteB7(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), (this.regEDX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteB8(fn): mod=10 (dst:mem+d16)  reg=111 (src:BH)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteB8(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEAX + this.getIPAddr()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteB9(fn): mod=10 (dst:mem+d16)  reg=111 (src:BH)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteB9(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regECX + this.getIPAddr()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteBA(fn): mod=10 (dst:mem+d16)  reg=111 (src:BH)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteBA(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDX + this.getIPAddr()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteBB(fn): mod=10 (dst:mem+d16)  reg=111 (src:BH)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteBB(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteBC(fn): mod=10 (dst:mem+d16)  reg=111 (src:BH)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteBC(fn) {
                    var b = fn.call(this, this.modEAByteData(this.getSIBAddr(2) + this.getIPAddr()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteBD(fn): mod=10 (dst:mem+d16)  reg=111 (src:BH)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteBD(fn) {
                    var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteBE(fn): mod=10 (dst:mem+d16)  reg=111 (src:BH)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteBE(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPAddr()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemByteBF(fn): mod=10 (dst:mem+d16)  reg=111 (src:BH)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemByteBF(fn) {
                    var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), (this.regEBX >> 8) & 0xff);
                    if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH;
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                X86ModB32.aOpModReg[0xC0],    X86ModB32.aOpModReg[0xC8],    X86ModB32.aOpModReg[0xD0],    X86ModB32.aOpModReg[0xD8],
                X86ModB32.aOpModReg[0xE0],    X86ModB32.aOpModReg[0xE8],    X86ModB32.aOpModReg[0xF0],    X86ModB32.aOpModReg[0xF8],
                X86ModB32.aOpModReg[0xC1],    X86ModB32.aOpModReg[0xC9],    X86ModB32.aOpModReg[0xD1],    X86ModB32.aOpModReg[0xD9],
                X86ModB32.aOpModReg[0xE1],    X86ModB32.aOpModReg[0xE9],    X86ModB32.aOpModReg[0xF1],    X86ModB32.aOpModReg[0xF9],
                X86ModB32.aOpModReg[0xC2],    X86ModB32.aOpModReg[0xCA],    X86ModB32.aOpModReg[0xD2],    X86ModB32.aOpModReg[0xDA],
                X86ModB32.aOpModReg[0xE2],    X86ModB32.aOpModReg[0xEA],    X86ModB32.aOpModReg[0xF2],    X86ModB32.aOpModReg[0xFA],
                X86ModB32.aOpModReg[0xC3],    X86ModB32.aOpModReg[0xCB],    X86ModB32.aOpModReg[0xD3],    X86ModB32.aOpModReg[0xDB],
                X86ModB32.aOpModReg[0xE3],    X86ModB32.aOpModReg[0xEB],    X86ModB32.aOpModReg[0xF3],    X86ModB32.aOpModReg[0xFB],
                X86ModB32.aOpModReg[0xC4],    X86ModB32.aOpModReg[0xCC],    X86ModB32.aOpModReg[0xD4],    X86ModB32.aOpModReg[0xDC],
                X86ModB32.aOpModReg[0xE4],    X86ModB32.aOpModReg[0xEC],    X86ModB32.aOpModReg[0xF4],    X86ModB32.aOpModReg[0xFC],
                X86ModB32.aOpModReg[0xC5],    X86ModB32.aOpModReg[0xCD],    X86ModB32.aOpModReg[0xD5],    X86ModB32.aOpModReg[0xDD],
                X86ModB32.aOpModReg[0xE5],    X86ModB32.aOpModReg[0xED],    X86ModB32.aOpModReg[0xF5],    X86ModB32.aOpModReg[0xFD],
                X86ModB32.aOpModReg[0xC6],    X86ModB32.aOpModReg[0xCE],    X86ModB32.aOpModReg[0xD6],    X86ModB32.aOpModReg[0xDE],
                X86ModB32.aOpModReg[0xE6],    X86ModB32.aOpModReg[0xEE],    X86ModB32.aOpModReg[0xF6],    X86ModB32.aOpModReg[0xFE],
                X86ModB32.aOpModReg[0xC7],    X86ModB32.aOpModReg[0xCF],    X86ModB32.aOpModReg[0xD7],    X86ModB32.aOpModReg[0xDF],
                X86ModB32.aOpModReg[0xE7],    X86ModB32.aOpModReg[0xEF],    X86ModB32.aOpModReg[0xF7],    X86ModB32.aOpModReg[0xFF]
            ];
            
            X86ModB32.aOpModGrp = [
                /**
                 * opMod32GrpByte00(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte00(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEAX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte01(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte01(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regECX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte02(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte02(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEDX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte03(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte03(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte04(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte04(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.getSIBAddr(0)), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte05(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte05(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32GrpByte06(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte06(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte07(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte07(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte08(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte08(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEAX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte09(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte09(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regECX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte0A(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte0A(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEDX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte0B(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte0B(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte0C(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte0C(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.getSIBAddr(0)), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte0D(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte0D(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32GrpByte0E(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte0E(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte0F(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte0F(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte10(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte10(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEAX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte11(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte11(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regECX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte12(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte12(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEDX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte13(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte13(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte14(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte14(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.getSIBAddr(0)), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte15(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte15(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32GrpByte16(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte16(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte17(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte17(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte18(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte18(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEAX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte19(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte19(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regECX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte1A(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte1A(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEDX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte1B(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte1B(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte1C(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte1C(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.getSIBAddr(0)), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte1D(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte1D(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32GrpByte1E(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte1E(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte1F(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte1F(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte20(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte20(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEAX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte21(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte21(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regECX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte22(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte22(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEDX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte23(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte23(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte24(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte24(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.getSIBAddr(0)), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte25(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte25(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32GrpByte26(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte26(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte27(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte27(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte28(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte28(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEAX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte29(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte29(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regECX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte2A(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte2A(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEDX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte2B(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte2B(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte2C(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte2C(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.getSIBAddr(0)), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte2D(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte2D(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32GrpByte2E(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte2E(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte2F(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte2F(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte30(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte30(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEAX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte31(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte31(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regECX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte32(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte32(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEDX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte33(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte33(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte34(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte34(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.getSIBAddr(0)), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte35(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte35(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32GrpByte36(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte36(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte37(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte37(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte38(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte38(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEAX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte39(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte39(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regECX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte3A(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte3A(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEDX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte3B(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte3B(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte3C(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte3C(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.getSIBAddr(0)), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte3D(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte3D(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32GrpByte3E(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte3E(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regESI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte3F(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte3F(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpByte40(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte40(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEAX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte41(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte41(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regECX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte42(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte42(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEDX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte43(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte43(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte44(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte44(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.getSIBAddr(1) + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte45(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte45(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte46(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte46(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte47(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte47(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte48(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte48(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEAX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte49(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte49(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regECX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte4A(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte4A(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEDX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte4B(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte4B(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte4C(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte4C(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.getSIBAddr(1) + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte4D(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte4D(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte4E(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte4E(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte4F(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte4F(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte50(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte50(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEAX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte51(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte51(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regECX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte52(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte52(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEDX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte53(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte53(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte54(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte54(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.getSIBAddr(1) + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte55(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte55(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte56(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte56(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte57(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte57(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte58(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte58(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEAX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte59(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte59(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regECX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte5A(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte5A(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEDX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte5B(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte5B(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte5C(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte5C(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.getSIBAddr(1) + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte5D(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte5D(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte5E(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte5E(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte5F(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte5F(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte60(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte60(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEAX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte61(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte61(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regECX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte62(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte62(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEDX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte63(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte63(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte64(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte64(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.getSIBAddr(1) + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte65(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte65(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte66(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte66(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte67(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte67(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte68(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte68(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEAX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte69(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte69(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regECX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte6A(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte6A(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEDX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte6B(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte6B(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte6C(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte6C(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.getSIBAddr(1) + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte6D(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte6D(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte6E(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte6E(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte6F(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte6F(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte70(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte70(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEAX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte71(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte71(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regECX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte72(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte72(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEDX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte73(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte73(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte74(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte74(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.getSIBAddr(1) + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte75(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte75(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte76(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte76(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte77(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte77(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte78(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte78(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEAX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte79(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte79(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regECX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte7A(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte7A(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEDX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte7B(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte7B(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte7C(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte7C(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.getSIBAddr(1) + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte7D(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte7D(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte7E(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte7E(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte7F(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte7F(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte80(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte80(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEAX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte81(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte81(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regECX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte82(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte82(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEDX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte83(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte83(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte84(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte84(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.getSIBAddr(2) + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte85(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte85(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte86(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte86(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte87(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte87(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte88(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte88(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEAX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte89(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte89(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regECX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte8A(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte8A(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEDX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte8B(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte8B(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte8C(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte8C(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.getSIBAddr(2) + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte8D(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte8D(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte8E(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte8E(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte8F(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte8F(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte90(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte90(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEAX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte91(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte91(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regECX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte92(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte92(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEDX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte93(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte93(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte94(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte94(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.getSIBAddr(2) + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte95(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte95(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte96(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte96(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte97(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte97(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte98(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte98(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEAX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte99(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte99(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regECX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte9A(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte9A(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEDX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte9B(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte9B(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte9C(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte9C(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.getSIBAddr(2) + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte9D(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte9D(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte9E(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte9E(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByte9F(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByte9F(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteA0(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteA0(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEAX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteA1(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteA1(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regECX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteA2(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteA2(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEDX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteA3(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteA3(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteA4(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteA4(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.getSIBAddr(2) + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteA5(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteA5(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteA6(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteA6(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteA7(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteA7(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteA8(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteA8(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEAX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteA9(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteA9(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regECX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteAA(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteAA(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEDX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteAB(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteAB(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteAC(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteAC(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.getSIBAddr(2) + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteAD(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteAD(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteAE(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteAE(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteAF(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteAF(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteB0(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteB0(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEAX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteB1(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteB1(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regECX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteB2(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteB2(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEDX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteB3(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteB3(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteB4(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteB4(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.getSIBAddr(2) + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteB5(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteB5(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteB6(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteB6(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteB7(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteB7(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteB8(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteB8(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEAX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteB9(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteB9(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regECX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteBA(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteBA(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEDX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteBB(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteBB(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteBC(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteBC(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.getSIBAddr(2) + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteBD(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteBD(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteBE(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteBE(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteBF(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteBF(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.modEAByteData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAByte(b);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpByteC0(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteC0(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.regEAX & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteC1(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteC1(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.regECX & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteC2(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteC2(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.regEDX & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteC3(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteC3(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, this.regEBX & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteC4(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteC4(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteC5(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteC5(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteC6(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteC6(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteC7(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteC7(afnGrp, fnSrc) {
                    var b = afnGrp[0].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteC8(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteC8(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.regEAX & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteC9(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteC9(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.regECX & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteCA(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteCA(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.regEDX & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteCB(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteCB(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, this.regEBX & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteCC(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteCC(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteCD(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteCD(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteCE(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteCE(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteCF(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteCF(afnGrp, fnSrc) {
                    var b = afnGrp[1].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteD0(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteD0(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.regEAX & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteD1(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteD1(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.regECX & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteD2(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteD2(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.regEDX & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteD3(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteD3(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, this.regEBX & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteD4(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteD4(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteD5(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteD5(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteD6(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteD6(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteD7(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteD7(afnGrp, fnSrc) {
                    var b = afnGrp[2].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteD8(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteD8(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.regEAX & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteD9(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteD9(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.regECX & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteDA(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteDA(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.regEDX & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteDB(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteDB(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, this.regEBX & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteDC(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteDC(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteDD(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteDD(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteDE(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteDE(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteDF(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteDF(afnGrp, fnSrc) {
                    var b = afnGrp[3].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteE0(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteE0(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.regEAX & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteE1(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteE1(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.regECX & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteE2(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteE2(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.regEDX & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteE3(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteE3(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, this.regEBX & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteE4(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteE4(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteE5(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteE5(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteE6(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteE6(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteE7(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteE7(afnGrp, fnSrc) {
                    var b = afnGrp[4].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteE8(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteE8(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.regEAX & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteE9(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteE9(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.regECX & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteEA(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteEA(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.regEDX & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteEB(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteEB(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, this.regEBX & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteEC(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteEC(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteED(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteED(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteEE(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteEE(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteEF(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteEF(afnGrp, fnSrc) {
                    var b = afnGrp[5].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteF0(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteF0(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.regEAX & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteF1(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteF1(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.regECX & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteF2(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteF2(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.regEDX & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteF3(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteF3(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, this.regEBX & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteF4(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteF4(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteF5(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteF5(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteF6(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteF6(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteF7(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteF7(afnGrp, fnSrc) {
                    var b = afnGrp[6].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteF8(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=000 (AL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteF8(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.regEAX & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteF9(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=001 (CL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteF9(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.regECX & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteFA(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=010 (DL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteFA(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.regEDX & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteFB(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=011 (BL)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteFB(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, this.regEBX & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff) | b;
                    if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteFC(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=100 (AH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteFC(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteFD(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=101 (CH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteFD(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this));
                    this.regECX = (this.regECX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteFE(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=110 (DH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteFE(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo;
                },
                /**
                 * opMod32GrpByteFF(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=111 (BH)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpByteFF(afnGrp, fnSrc) {
                    var b = afnGrp[7].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~0xff00) | (b << 8);
                    if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo;
                }
            ];
            
            if (typeof module !== 'undefined') module.exports = X86ModB32;
            
          • x86modsib.js
            /**
             * @fileoverview Implements PCjs 80386 Scale-Index-Base (SIB) decoders.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2015-Jan-20
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var X86         = require("./x86");
            }
            
            var X86ModSIB = {};
            
            /*
             * TODO: Factor out the SIB (scale=1) decoders that are functionally equivalent to one another,
             * just as I've already done for all the ModRM (register-to-register) decoders.  For example:
             *
             *      opModSIB01():   this.regECX + this.regEAX
             *
             * is functionally equivalent to:
             *
             *      opModSIB08():   this.regEAX + this.regECX
             *
             * This isn't super critical, since the SIB decoders are much smaller/simpler than the ModRM decoders,
             * but still, it's wasteful.
             */
            
            X86ModSIB.aOpModSIB = [
                /**
                 * opModSIB00(): scale=00 (1)  index=000 (EAX)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB00(mod) {
                    return this.regEAX + this.regEAX;
                },
                /**
                 * opModSIB01(): scale=00 (1)  index=000 (EAX)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB01(mod) {
                    return this.regECX + this.regEAX;
                },
                /**
                 * opModSIB02(): scale=00 (1)  index=000 (EAX)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB02(mod) {
                    return this.regEDX + this.regEAX;
                },
                /**
                 * opModSIB03(): scale=00 (1)  index=000 (EAX)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB03(mod) {
                    return this.regEBX + this.regEAX;
                },
                /**
                 * opModSIB04(): scale=00 (1)  index=000 (EAX)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB04(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + this.regEAX;
                },
                /**
                 * opModSIB05(): scale=00 (1)  index=000 (EAX)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB05(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + this.regEAX;
                },
                /**
                 * opModSIB06(): scale=00 (1)  index=000 (EAX)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB06(mod) {
                    return this.regESI + this.regEAX;
                },
                /**
                 * opModSIB07(): scale=00 (1)  index=000 (EAX)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB07(mod) {
                    return this.regEDI + this.regEAX;
                },
                /**
                 * opModSIB08(): scale=00 (1)  index=001 (ECX)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB08(mod) {
                    return this.regEAX + this.regECX;
                },
                /**
                 * opModSIB09(): scale=00 (1)  index=001 (ECX)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB09(mod) {
                    return this.regECX + this.regECX;
                },
                /**
                 * opModSIB0A(): scale=00 (1)  index=001 (ECX)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB0A(mod) {
                    return this.regEDX + this.regECX;
                },
                /**
                 * opModSIB0B(): scale=00 (1)  index=001 (ECX)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB0B(mod) {
                    return this.regEBX + this.regECX;
                },
                /**
                 * opModSIB0C(): scale=00 (1)  index=001 (ECX)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB0C(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + this.regECX;
                },
                /**
                 * opModSIB0D(): scale=00 (1)  index=001 (ECX)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB0D(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + this.regECX;
                },
                /**
                 * opModSIB0E(): scale=00 (1)  index=001 (ECX)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB0E(mod) {
                    return this.regESI + this.regECX;
                },
                /**
                 * opModSIB0F(): scale=00 (1)  index=001 (ECX)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB0F(mod) {
                    return this.regEDI + this.regECX;
                },
                /**
                 * opModSIB10(): scale=00 (1)  index=010 (EDX)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB10(mod) {
                    return this.regEAX + this.regEDX;
                },
                /**
                 * opModSIB11(): scale=00 (1)  index=010 (EDX)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB11(mod) {
                    return this.regECX + this.regEDX;
                },
                /**
                 * opModSIB12(): scale=00 (1)  index=010 (EDX)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB12(mod) {
                    return this.regEDX + this.regEDX;
                },
                /**
                 * opModSIB13(): scale=00 (1)  index=010 (EDX)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB13(mod) {
                    return this.regEBX + this.regEDX;
                },
                /**
                 * opModSIB14(): scale=00 (1)  index=010 (EDX)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB14(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + this.regEDX;
                },
                /**
                 * opModSIB15(): scale=00 (1)  index=010 (EDX)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB15(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + this.regEDX;
                },
                /**
                 * opModSIB16(): scale=00 (1)  index=010 (EDX)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB16(mod) {
                    return this.regESI + this.regEDX;
                },
                /**
                 * opModSIB17(): scale=00 (1)  index=010 (EDX)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB17(mod) {
                    return this.regEDI + this.regEDX;
                },
                /**
                 * opModSIB18(): scale=00 (1)  index=011 (EBX)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB18(mod) {
                    return this.regEAX + this.regEBX;
                },
                /**
                 * opModSIB19(): scale=00 (1)  index=011 (EBX)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB19(mod) {
                    return this.regECX + this.regEBX;
                },
                /**
                 * opModSIB1A(): scale=00 (1)  index=011 (EBX)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB1A(mod) {
                    return this.regEDX + this.regEBX;
                },
                /**
                 * opModSIB1B(): scale=00 (1)  index=011 (EBX)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB1B(mod) {
                    return this.regEBX + this.regEBX;
                },
                /**
                 * opModSIB1C(): scale=00 (1)  index=011 (EBX)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB1C(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + this.regEBX;
                },
                /**
                 * opModSIB1D(): scale=00 (1)  index=011 (EBX)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB1D(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + this.regEBX;
                },
                /**
                 * opModSIB1E(): scale=00 (1)  index=011 (EBX)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB1E(mod) {
                    return this.regESI + this.regEBX;
                },
                /**
                 * opModSIB1F(): scale=00 (1)  index=011 (EBX)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB1F(mod) {
                    return this.regEDI + this.regEBX;
                },
                /**
                 * opModSIB20(): scale=00 (1)  index=100 (none)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB20(mod) {
                    return this.regEAX;
                },
                /**
                 * opModSIB21(): scale=00 (1)  index=100 (none)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB21(mod) {
                    return this.regECX;
                },
                /**
                 * opModSIB22(): scale=00 (1)  index=100 (none)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB22(mod) {
                    return this.regEDX;
                },
                /**
                 * opModSIB23(): scale=00 (1)  index=100 (none)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB23(mod) {
                    return this.regEBX;
                },
                /**
                 * opModSIB24(): scale=00 (1)  index=100 (none)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB24(mod) {
                    this.segData = this.segStack;
                    return this.getSP();
                },
                /**
                 * opModSIB25(): scale=00 (1)  index=100 (none)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB25(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr());
                },
                /**
                 * opModSIB26(): scale=00 (1)  index=100 (none)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB26(mod) {
                    return this.regESI;
                },
                /**
                 * opModSIB27(): scale=00 (1)  index=100 (none)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB27(mod) {
                    return this.regEDI;
                },
                /**
                 * opModSIB28(): scale=00 (1)  index=101 (EBP)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB28(mod) {
                    return this.regEAX + this.regEBP;
                },
                /**
                 * opModSIB29(): scale=00 (1)  index=101 (EBP)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB29(mod) {
                    return this.regECX + this.regEBP;
                },
                /**
                 * opModSIB2A(): scale=00 (1)  index=101 (EBP)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB2A(mod) {
                    return this.regEDX + this.regEBP;
                },
                /**
                 * opModSIB2B(): scale=00 (1)  index=101 (EBP)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB2B(mod) {
                    return this.regEBX + this.regEBP;
                },
                /**
                 * opModSIB2C(): scale=00 (1)  index=101 (EBP)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB2C(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + this.regEBP;
                },
                /**
                 * opModSIB2D(): scale=00 (1)  index=101 (EBP)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB2D(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + this.regEBP;
                },
                /**
                 * opModSIB2E(): scale=00 (1)  index=101 (EBP)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB2E(mod) {
                    return this.regESI + this.regEBP;
                },
                /**
                 * opModSIB2F(): scale=00 (1)  index=101 (EBP)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB2F(mod) {
                    return this.regEDI + this.regEBP;
                },
                /**
                 * opModSIB30(): scale=00 (1)  index=110 (ESI)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB30(mod) {
                    return this.regEAX + this.regESI;
                },
                /**
                 * opModSIB31(): scale=00 (1)  index=110 (ESI)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB31(mod) {
                    return this.regECX + this.regESI;
                },
                /**
                 * opModSIB32(): scale=00 (1)  index=110 (ESI)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB32(mod) {
                    return this.regEDX + this.regESI;
                },
                /**
                 * opModSIB33(): scale=00 (1)  index=110 (ESI)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB33(mod) {
                    return this.regEBX + this.regESI;
                },
                /**
                 * opModSIB34(): scale=00 (1)  index=110 (ESI)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB34(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + this.regESI;
                },
                /**
                 * opModSIB35(): scale=00 (1)  index=110 (ESI)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB35(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + this.regESI;
                },
                /**
                 * opModSIB36(): scale=00 (1)  index=110 (ESI)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB36(mod) {
                    return this.regESI + this.regESI;
                },
                /**
                 * opModSIB37(): scale=00 (1)  index=110 (ESI)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB37(mod) {
                    return this.regEDI + this.regESI;
                },
                /**
                 * opModSIB38(): scale=00 (1)  index=111 (EDI)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB38(mod) {
                    return this.regEAX + this.regEDI;
                },
                /**
                 * opModSIB39(): scale=00 (1)  index=111 (EDI)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB39(mod) {
                    return this.regECX + this.regEDI;
                },
                /**
                 * opModSIB3A(): scale=00 (1)  index=111 (EDI)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB3A(mod) {
                    return this.regEDX + this.regEDI;
                },
                /**
                 * opModSIB3B(): scale=00 (1)  index=111 (EDI)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB3B(mod) {
                    return this.regEBX + this.regEDI;
                },
                /**
                 * opModSIB3C(): scale=00 (1)  index=111 (EDI)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB3C(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + this.regEDI;
                },
                /**
                 * opModSIB3D(): scale=00 (1)  index=111 (EDI)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB3D(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + this.regEDI;
                },
                /**
                 * opModSIB3E(): scale=00 (1)  index=111 (EDI)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB3E(mod) {
                    return this.regESI + this.regEDI;
                },
                /**
                 * opModSIB3F(): scale=00 (1)  index=111 (EDI)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB3F(mod) {
                    return this.regEDI + this.regEDI;
                },
                /**
                 * opModSIB40(): scale=01 (2)  index=000 (EAX)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB40(mod) {
                    return this.regEAX + (this.regEAX << 1);
                },
                /**
                 * opModSIB41(): scale=01 (2)  index=000 (EAX)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB41(mod) {
                    return this.regECX + (this.regEAX << 1);
                },
                /**
                 * opModSIB42(): scale=01 (2)  index=000 (EAX)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB42(mod) {
                    return this.regEDX + (this.regEAX << 1);
                },
                /**
                 * opModSIB43(): scale=01 (2)  index=000 (EAX)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB43(mod) {
                    return this.regEBX + (this.regEAX << 1);
                },
                /**
                 * opModSIB44(): scale=01 (2)  index=000 (EAX)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB44(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + (this.regEAX << 1);
                },
                /**
                 * opModSIB45(): scale=01 (2)  index=000 (EAX)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB45(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + (this.regEAX << 1);
                },
                /**
                 * opModSIB46(): scale=01 (2)  index=000 (EAX)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB46(mod) {
                    return this.regESI + (this.regEAX << 1);
                },
                /**
                 * opModSIB47(): scale=01 (2)  index=000 (EAX)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB47(mod) {
                    return this.regEDI + (this.regEAX << 1);
                },
                /**
                 * opModSIB48(): scale=01 (2)  index=001 (ECX)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB48(mod) {
                    return this.regEAX + (this.regECX << 1);
                },
                /**
                 * opModSIB49(): scale=01 (2)  index=001 (ECX)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB49(mod) {
                    return this.regECX + (this.regECX << 1);
                },
                /**
                 * opModSIB4A(): scale=01 (2)  index=001 (ECX)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB4A(mod) {
                    return this.regEDX + (this.regECX << 1);
                },
                /**
                 * opModSIB4B(): scale=01 (2)  index=001 (ECX)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB4B(mod) {
                    return this.regEBX + (this.regECX << 1);
                },
                /**
                 * opModSIB4C(): scale=01 (2)  index=001 (ECX)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB4C(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + (this.regECX << 1);
                },
                /**
                 * opModSIB4D(): scale=01 (2)  index=001 (ECX)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB4D(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + (this.regECX << 1);
                },
                /**
                 * opModSIB4E(): scale=01 (2)  index=001 (ECX)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB4E(mod) {
                    return this.regESI + (this.regECX << 1);
                },
                /**
                 * opModSIB4F(): scale=01 (2)  index=001 (ECX)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB4F(mod) {
                    return this.regEDI + (this.regECX << 1);
                },
                /**
                 * opModSIB50(): scale=01 (2)  index=010 (EDX)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB50(mod) {
                    return this.regEAX + (this.regEDX << 1);
                },
                /**
                 * opModSIB51(): scale=01 (2)  index=010 (EDX)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB51(mod) {
                    return this.regECX + (this.regEDX << 1);
                },
                /**
                 * opModSIB52(): scale=01 (2)  index=010 (EDX)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB52(mod) {
                    return this.regEDX + (this.regEDX << 1);
                },
                /**
                 * opModSIB53(): scale=01 (2)  index=010 (EDX)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB53(mod) {
                    return this.regEBX + (this.regEDX << 1);
                },
                /**
                 * opModSIB54(): scale=01 (2)  index=010 (EDX)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB54(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + (this.regEDX << 1);
                },
                /**
                 * opModSIB55(): scale=01 (2)  index=010 (EDX)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB55(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + (this.regEDX << 1);
                },
                /**
                 * opModSIB56(): scale=01 (2)  index=010 (EDX)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB56(mod) {
                    return this.regESI + (this.regEDX << 1);
                },
                /**
                 * opModSIB57(): scale=01 (2)  index=010 (EDX)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB57(mod) {
                    return this.regEDI + (this.regEDX << 1);
                },
                /**
                 * opModSIB58(): scale=01 (2)  index=011 (EBX)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB58(mod) {
                    return this.regEAX + (this.regEBX << 1);
                },
                /**
                 * opModSIB59(): scale=01 (2)  index=011 (EBX)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB59(mod) {
                    return this.regECX + (this.regEBX << 1);
                },
                /**
                 * opModSIB5A(): scale=01 (2)  index=011 (EBX)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB5A(mod) {
                    return this.regEDX + (this.regEBX << 1);
                },
                /**
                 * opModSIB5B(): scale=01 (2)  index=011 (EBX)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB5B(mod) {
                    return this.regEBX + (this.regEBX << 1);
                },
                /**
                 * opModSIB5C(): scale=01 (2)  index=011 (EBX)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB5C(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + (this.regEBX << 1);
                },
                /**
                 * opModSIB5D(): scale=01 (2)  index=011 (EBX)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB5D(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + (this.regEBX << 1);
                },
                /**
                 * opModSIB5E(): scale=01 (2)  index=011 (EBX)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB5E(mod) {
                    return this.regESI + (this.regEBX << 1);
                },
                /**
                 * opModSIB5F(): scale=01 (2)  index=011 (EBX)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB5F(mod) {
                    return this.regEDI + (this.regEBX << 1);
                },
                /**
                 * opModSIB60(): scale=01 (2)  index=100 (none)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB60(mod) {
                    return this.regEAX;
                },
                /**
                 * opModSIB61(): scale=01 (2)  index=100 (none)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB61(mod) {
                    return this.regECX;
                },
                /**
                 * opModSIB62(): scale=01 (2)  index=100 (none)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB62(mod) {
                    return this.regEDX;
                },
                /**
                 * opModSIB63(): scale=01 (2)  index=100 (none)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB63(mod) {
                    return this.regEBX;
                },
                /**
                 * opModSIB64(): scale=01 (2)  index=100 (none)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB64(mod) {
                    this.segData = this.segStack;
                    return this.getSP();
                },
                /**
                 * opModSIB65(): scale=01 (2)  index=100 (none)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB65(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr());
                },
                /**
                 * opModSIB66(): scale=01 (2)  index=100 (none)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB66(mod) {
                    return this.regESI;
                },
                /**
                 * opModSIB67(): scale=01 (2)  index=100 (none)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB67(mod) {
                    return this.regEDI;
                },
                /**
                 * opModSIB68(): scale=01 (2)  index=101 (EBP)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB68(mod) {
                    return this.regEAX + (this.regEBP << 1);
                },
                /**
                 * opModSIB69(): scale=01 (2)  index=101 (EBP)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB69(mod) {
                    return this.regECX + (this.regEBP << 1);
                },
                /**
                 * opModSIB6A(): scale=01 (2)  index=101 (EBP)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB6A(mod) {
                    return this.regEDX + (this.regEBP << 1);
                },
                /**
                 * opModSIB6B(): scale=01 (2)  index=101 (EBP)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB6B(mod) {
                    return this.regEBX + (this.regEBP << 1);
                },
                /**
                 * opModSIB6C(): scale=01 (2)  index=101 (EBP)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB6C(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + (this.regEBP << 1);
                },
                /**
                 * opModSIB6D(): scale=01 (2)  index=101 (EBP)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB6D(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + (this.regEBP << 1);
                },
                /**
                 * opModSIB6E(): scale=01 (2)  index=101 (EBP)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB6E(mod) {
                    return this.regESI + (this.regEBP << 1);
                },
                /**
                 * opModSIB6F(): scale=01 (2)  index=101 (EBP)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB6F(mod) {
                    return this.regEDI + (this.regEBP << 1);
                },
                /**
                 * opModSIB70(): scale=01 (2)  index=110 (ESI)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB70(mod) {
                    return this.regEAX + (this.regESI << 1);
                },
                /**
                 * opModSIB71(): scale=01 (2)  index=110 (ESI)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB71(mod) {
                    return this.regECX + (this.regESI << 1);
                },
                /**
                 * opModSIB72(): scale=01 (2)  index=110 (ESI)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB72(mod) {
                    return this.regEDX + (this.regESI << 1);
                },
                /**
                 * opModSIB73(): scale=01 (2)  index=110 (ESI)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB73(mod) {
                    return this.regEBX + (this.regESI << 1);
                },
                /**
                 * opModSIB74(): scale=01 (2)  index=110 (ESI)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB74(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + (this.regESI << 1);
                },
                /**
                 * opModSIB75(): scale=01 (2)  index=110 (ESI)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB75(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + (this.regESI << 1);
                },
                /**
                 * opModSIB76(): scale=01 (2)  index=110 (ESI)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB76(mod) {
                    return this.regESI + (this.regESI << 1);
                },
                /**
                 * opModSIB77(): scale=01 (2)  index=110 (ESI)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB77(mod) {
                    return this.regEDI + (this.regESI << 1);
                },
                /**
                 * opModSIB78(): scale=01 (2)  index=111 (EDI)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB78(mod) {
                    return this.regEAX + (this.regEDI << 1);
                },
                /**
                 * opModSIB79(): scale=01 (2)  index=111 (EDI)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB79(mod) {
                    return this.regECX + (this.regEDI << 1);
                },
                /**
                 * opModSIB7A(): scale=01 (2)  index=111 (EDI)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB7A(mod) {
                    return this.regEDX + (this.regEDI << 1);
                },
                /**
                 * opModSIB7B(): scale=01 (2)  index=111 (EDI)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB7B(mod) {
                    return this.regEBX + (this.regEDI << 1);
                },
                /**
                 * opModSIB7C(): scale=01 (2)  index=111 (EDI)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB7C(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + (this.regEDI << 1);
                },
                /**
                 * opModSIB7D(): scale=01 (2)  index=111 (EDI)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB7D(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + (this.regEDI << 1);
                },
                /**
                 * opModSIB7E(): scale=01 (2)  index=111 (EDI)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB7E(mod) {
                    return this.regESI + (this.regEDI << 1);
                },
                /**
                 * opModSIB7F(): scale=01 (2)  index=111 (EDI)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB7F(mod) {
                    return this.regEDI + (this.regEDI << 1);
                },
                /**
                 * opModSIB80(): scale=10 (4)  index=000 (EAX)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB80(mod) {
                    return this.regEAX + (this.regEAX << 2);
                },
                /**
                 * opModSIB81(): scale=10 (4)  index=000 (EAX)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB81(mod) {
                    return this.regECX + (this.regEAX << 2);
                },
                /**
                 * opModSIB82(): scale=10 (4)  index=000 (EAX)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB82(mod) {
                    return this.regEDX + (this.regEAX << 2);
                },
                /**
                 * opModSIB83(): scale=10 (4)  index=000 (EAX)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB83(mod) {
                    return this.regEBX + (this.regEAX << 2);
                },
                /**
                 * opModSIB84(): scale=10 (4)  index=000 (EAX)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB84(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + (this.regEAX << 2);
                },
                /**
                 * opModSIB85(): scale=10 (4)  index=000 (EAX)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB85(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + (this.regEAX << 2);
                },
                /**
                 * opModSIB86(): scale=10 (4)  index=000 (EAX)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB86(mod) {
                    return this.regESI + (this.regEAX << 2);
                },
                /**
                 * opModSIB87(): scale=10 (4)  index=000 (EAX)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB87(mod) {
                    return this.regEDI + (this.regEAX << 2);
                },
                /**
                 * opModSIB88(): scale=10 (4)  index=001 (ECX)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB88(mod) {
                    return this.regEAX + (this.regECX << 2);
                },
                /**
                 * opModSIB89(): scale=10 (4)  index=001 (ECX)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB89(mod) {
                    return this.regECX + (this.regECX << 2);
                },
                /**
                 * opModSIB8A(): scale=10 (4)  index=001 (ECX)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB8A(mod) {
                    return this.regEDX + (this.regECX << 2);
                },
                /**
                 * opModSIB8B(): scale=10 (4)  index=001 (ECX)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB8B(mod) {
                    return this.regEBX + (this.regECX << 2);
                },
                /**
                 * opModSIB8C(): scale=10 (4)  index=001 (ECX)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB8C(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + (this.regECX << 2);
                },
                /**
                 * opModSIB8D(): scale=10 (4)  index=001 (ECX)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB8D(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + (this.regECX << 2);
                },
                /**
                 * opModSIB8E(): scale=10 (4)  index=001 (ECX)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB8E(mod) {
                    return this.regESI + (this.regECX << 2);
                },
                /**
                 * opModSIB8F(): scale=10 (4)  index=001 (ECX)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB8F(mod) {
                    return this.regEDI + (this.regECX << 2);
                },
                /**
                 * opModSIB90(): scale=10 (4)  index=010 (EDX)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB90(mod) {
                    return this.regEAX + (this.regEDX << 2);
                },
                /**
                 * opModSIB91(): scale=10 (4)  index=010 (EDX)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB91(mod) {
                    return this.regECX + (this.regEDX << 2);
                },
                /**
                 * opModSIB92(): scale=10 (4)  index=010 (EDX)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB92(mod) {
                    return this.regEDX + (this.regEDX << 2);
                },
                /**
                 * opModSIB93(): scale=10 (4)  index=010 (EDX)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB93(mod) {
                    return this.regEBX + (this.regEDX << 2);
                },
                /**
                 * opModSIB94(): scale=10 (4)  index=010 (EDX)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB94(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + (this.regEDX << 2);
                },
                /**
                 * opModSIB95(): scale=10 (4)  index=010 (EDX)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB95(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + (this.regEDX << 2);
                },
                /**
                 * opModSIB96(): scale=10 (4)  index=010 (EDX)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB96(mod) {
                    return this.regESI + (this.regEDX << 2);
                },
                /**
                 * opModSIB97(): scale=10 (4)  index=010 (EDX)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB97(mod) {
                    return this.regEDI + (this.regEDX << 2);
                },
                /**
                 * opModSIB98(): scale=10 (4)  index=011 (EBX)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB98(mod) {
                    return this.regEAX + (this.regEBX << 2);
                },
                /**
                 * opModSIB99(): scale=10 (4)  index=011 (EBX)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB99(mod) {
                    return this.regECX + (this.regEBX << 2);
                },
                /**
                 * opModSIB9A(): scale=10 (4)  index=011 (EBX)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB9A(mod) {
                    return this.regEDX + (this.regEBX << 2);
                },
                /**
                 * opModSIB9B(): scale=10 (4)  index=011 (EBX)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB9B(mod) {
                    return this.regEBX + (this.regEBX << 2);
                },
                /**
                 * opModSIB9C(): scale=10 (4)  index=011 (EBX)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB9C(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + (this.regEBX << 2);
                },
                /**
                 * opModSIB9D(): scale=10 (4)  index=011 (EBX)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB9D(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + (this.regEBX << 2);
                },
                /**
                 * opModSIB9E(): scale=10 (4)  index=011 (EBX)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB9E(mod) {
                    return this.regESI + (this.regEBX << 2);
                },
                /**
                 * opModSIB9F(): scale=10 (4)  index=011 (EBX)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIB9F(mod) {
                    return this.regEDI + (this.regEBX << 2);
                },
                /**
                 * opModSIBA0(): scale=10 (4)  index=100 (none)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBA0(mod) {
                    return this.regEAX;
                },
                /**
                 * opModSIBA1(): scale=10 (4)  index=100 (none)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBA1(mod) {
                    return this.regECX;
                },
                /**
                 * opModSIBA2(): scale=10 (4)  index=100 (none)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBA2(mod) {
                    return this.regEDX;
                },
                /**
                 * opModSIBA3(): scale=10 (4)  index=100 (none)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBA3(mod) {
                    return this.regEBX;
                },
                /**
                 * opModSIBA4(): scale=10 (4)  index=100 (none)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBA4(mod) {
                    this.segData = this.segStack;
                    return this.getSP();
                },
                /**
                 * opModSIBA5(): scale=10 (4)  index=100 (none)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBA5(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr());
                },
                /**
                 * opModSIBA6(): scale=10 (4)  index=100 (none)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBA6(mod) {
                    return this.regESI;
                },
                /**
                 * opModSIBA7(): scale=10 (4)  index=100 (none)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBA7(mod) {
                    return this.regEDI;
                },
                /**
                 * opModSIBA8(): scale=10 (4)  index=101 (EBP)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBA8(mod) {
                    return this.regEAX + (this.regEBP << 2);
                },
                /**
                 * opModSIBA9(): scale=10 (4)  index=101 (EBP)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBA9(mod) {
                    return this.regECX + (this.regEBP << 2);
                },
                /**
                 * opModSIBAA(): scale=10 (4)  index=101 (EBP)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBAA(mod) {
                    return this.regEDX + (this.regEBP << 2);
                },
                /**
                 * opModSIBAB(): scale=10 (4)  index=101 (EBP)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBAB(mod) {
                    return this.regEBX + (this.regEBP << 2);
                },
                /**
                 * opModSIBAC(): scale=10 (4)  index=101 (EBP)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBAC(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + (this.regEBP << 2);
                },
                /**
                 * opModSIBAD(): scale=10 (4)  index=101 (EBP)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBAD(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + (this.regEBP << 2);
                },
                /**
                 * opModSIBAE(): scale=10 (4)  index=101 (EBP)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBAE(mod) {
                    return this.regESI + (this.regEBP << 2);
                },
                /**
                 * opModSIBAF(): scale=10 (4)  index=101 (EBP)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBAF(mod) {
                    return this.regEDI + (this.regEBP << 2);
                },
                /**
                 * opModSIBB0(): scale=10 (4)  index=110 (ESI)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBB0(mod) {
                    return this.regEAX + (this.regESI << 2);
                },
                /**
                 * opModSIBB1(): scale=10 (4)  index=110 (ESI)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBB1(mod) {
                    return this.regECX + (this.regESI << 2);
                },
                /**
                 * opModSIBB2(): scale=10 (4)  index=110 (ESI)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBB2(mod) {
                    return this.regEDX + (this.regESI << 2);
                },
                /**
                 * opModSIBB3(): scale=10 (4)  index=110 (ESI)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBB3(mod) {
                    return this.regEBX + (this.regESI << 2);
                },
                /**
                 * opModSIBB4(): scale=10 (4)  index=110 (ESI)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBB4(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + (this.regESI << 2);
                },
                /**
                 * opModSIBB5(): scale=10 (4)  index=110 (ESI)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBB5(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + (this.regESI << 2);
                },
                /**
                 * opModSIBB6(): scale=10 (4)  index=110 (ESI)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBB6(mod) {
                    return this.regESI + (this.regESI << 2);
                },
                /**
                 * opModSIBB7(): scale=10 (4)  index=110 (ESI)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBB7(mod) {
                    return this.regEDI + (this.regESI << 2);
                },
                /**
                 * opModSIBB8(): scale=10 (4)  index=111 (EDI)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBB8(mod) {
                    return this.regEAX + (this.regEDI << 2);
                },
                /**
                 * opModSIBB9(): scale=10 (4)  index=111 (EDI)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBB9(mod) {
                    return this.regECX + (this.regEDI << 2);
                },
                /**
                 * opModSIBBA(): scale=10 (4)  index=111 (EDI)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBBA(mod) {
                    return this.regEDX + (this.regEDI << 2);
                },
                /**
                 * opModSIBBB(): scale=10 (4)  index=111 (EDI)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBBB(mod) {
                    return this.regEBX + (this.regEDI << 2);
                },
                /**
                 * opModSIBBC(): scale=10 (4)  index=111 (EDI)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBBC(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + (this.regEDI << 2);
                },
                /**
                 * opModSIBBD(): scale=10 (4)  index=111 (EDI)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBBD(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + (this.regEDI << 2);
                },
                /**
                 * opModSIBBE(): scale=10 (4)  index=111 (EDI)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBBE(mod) {
                    return this.regESI + (this.regEDI << 2);
                },
                /**
                 * opModSIBBF(): scale=10 (4)  index=111 (EDI)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBBF(mod) {
                    return this.regEDI + (this.regEDI << 2);
                },
                /**
                 * opModSIBC0(): scale=11 (8)  index=000 (EAX)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBC0(mod) {
                    return this.regEAX + (this.regEAX << 3);
                },
                /**
                 * opModSIBC1(): scale=11 (8)  index=000 (EAX)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBC1(mod) {
                    return this.regECX + (this.regEAX << 3);
                },
                /**
                 * opModSIBC2(): scale=11 (8)  index=000 (EAX)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBC2(mod) {
                    return this.regEDX + (this.regEAX << 3);
                },
                /**
                 * opModSIBC3(): scale=11 (8)  index=000 (EAX)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBC3(mod) {
                    return this.regEBX + (this.regEAX << 3);
                },
                /**
                 * opModSIBC4(): scale=11 (8)  index=000 (EAX)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBC4(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + (this.regEAX << 3);
                },
                /**
                 * opModSIBC5(): scale=11 (8)  index=000 (EAX)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBC5(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + (this.regEAX << 3);
                },
                /**
                 * opModSIBC6(): scale=11 (8)  index=000 (EAX)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBC6(mod) {
                    return this.regESI + (this.regEAX << 3);
                },
                /**
                 * opModSIBC7(): scale=11 (8)  index=000 (EAX)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBC7(mod) {
                    return this.regEDI + (this.regEAX << 3);
                },
                /**
                 * opModSIBC8(): scale=11 (8)  index=001 (ECX)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBC8(mod) {
                    return this.regEAX + (this.regECX << 3);
                },
                /**
                 * opModSIBC9(): scale=11 (8)  index=001 (ECX)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBC9(mod) {
                    return this.regECX + (this.regECX << 3);
                },
                /**
                 * opModSIBCA(): scale=11 (8)  index=001 (ECX)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBCA(mod) {
                    return this.regEDX + (this.regECX << 3);
                },
                /**
                 * opModSIBCB(): scale=11 (8)  index=001 (ECX)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBCB(mod) {
                    return this.regEBX + (this.regECX << 3);
                },
                /**
                 * opModSIBCC(): scale=11 (8)  index=001 (ECX)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBCC(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + (this.regECX << 3);
                },
                /**
                 * opModSIBCD(): scale=11 (8)  index=001 (ECX)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBCD(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + (this.regECX << 3);
                },
                /**
                 * opModSIBCE(): scale=11 (8)  index=001 (ECX)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBCE(mod) {
                    return this.regESI + (this.regECX << 3);
                },
                /**
                 * opModSIBCF(): scale=11 (8)  index=001 (ECX)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBCF(mod) {
                    return this.regEDI + (this.regECX << 3);
                },
                /**
                 * opModSIBD0(): scale=11 (8)  index=010 (EDX)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBD0(mod) {
                    return this.regEAX + (this.regEDX << 3);
                },
                /**
                 * opModSIBD1(): scale=11 (8)  index=010 (EDX)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBD1(mod) {
                    return this.regECX + (this.regEDX << 3);
                },
                /**
                 * opModSIBD2(): scale=11 (8)  index=010 (EDX)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBD2(mod) {
                    return this.regEDX + (this.regEDX << 3);
                },
                /**
                 * opModSIBD3(): scale=11 (8)  index=010 (EDX)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBD3(mod) {
                    return this.regEBX + (this.regEDX << 3);
                },
                /**
                 * opModSIBD4(): scale=11 (8)  index=010 (EDX)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBD4(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + (this.regEDX << 3);
                },
                /**
                 * opModSIBD5(): scale=11 (8)  index=010 (EDX)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBD5(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + (this.regEDX << 3);
                },
                /**
                 * opModSIBD6(): scale=11 (8)  index=010 (EDX)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBD6(mod) {
                    return this.regESI + (this.regEDX << 3);
                },
                /**
                 * opModSIBD7(): scale=11 (8)  index=010 (EDX)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBD7(mod) {
                    return this.regEDI + (this.regEDX << 3);
                },
                /**
                 * opModSIBD8(): scale=11 (8)  index=011 (EBX)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBD8(mod) {
                    return this.regEAX + (this.regEBX << 3);
                },
                /**
                 * opModSIBD9(): scale=11 (8)  index=011 (EBX)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBD9(mod) {
                    return this.regECX + (this.regEBX << 3);
                },
                /**
                 * opModSIBDA(): scale=11 (8)  index=011 (EBX)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBDA(mod) {
                    return this.regEDX + (this.regEBX << 3);
                },
                /**
                 * opModSIBDB(): scale=11 (8)  index=011 (EBX)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBDB(mod) {
                    return this.regEBX + (this.regEBX << 3);
                },
                /**
                 * opModSIBDC(): scale=11 (8)  index=011 (EBX)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBDC(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + (this.regEBX << 3);
                },
                /**
                 * opModSIBDD(): scale=11 (8)  index=011 (EBX)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBDD(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + (this.regEBX << 3);
                },
                /**
                 * opModSIBDE(): scale=11 (8)  index=011 (EBX)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBDE(mod) {
                    return this.regESI + (this.regEBX << 3);
                },
                /**
                 * opModSIBDF(): scale=11 (8)  index=011 (EBX)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBDF(mod) {
                    return this.regEDI + (this.regEBX << 3);
                },
                /**
                 * opModSIBE0(): scale=11 (8)  index=100 (none)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBE0(mod) {
                    return this.regEAX;
                },
                /**
                 * opModSIBE1(): scale=11 (8)  index=100 (none)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBE1(mod) {
                    return this.regECX;
                },
                /**
                 * opModSIBE2(): scale=11 (8)  index=100 (none)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBE2(mod) {
                    return this.regEDX;
                },
                /**
                 * opModSIBE3(): scale=11 (8)  index=100 (none)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBE3(mod) {
                    return this.regEBX;
                },
                /**
                 * opModSIBE4(): scale=11 (8)  index=100 (none)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBE4(mod) {
                    this.segData = this.segStack;
                    return this.getSP();
                },
                /**
                 * opModSIBE5(): scale=11 (8)  index=100 (none)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBE5(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr());
                },
                /**
                 * opModSIBE6(): scale=11 (8)  index=100 (none)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBE6(mod) {
                    return this.regESI;
                },
                /**
                 * opModSIBE7(): scale=11 (8)  index=100 (none)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBE7(mod) {
                    return this.regEDI;
                },
                /**
                 * opModSIBE8(): scale=11 (8)  index=101 (EBP)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBE8(mod) {
                    return this.regEAX + (this.regEBP << 3);
                },
                /**
                 * opModSIBE9(): scale=11 (8)  index=101 (EBP)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBE9(mod) {
                    return this.regECX + (this.regEBP << 3);
                },
                /**
                 * opModSIBEA(): scale=11 (8)  index=101 (EBP)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBEA(mod) {
                    return this.regEDX + (this.regEBP << 3);
                },
                /**
                 * opModSIBEB(): scale=11 (8)  index=101 (EBP)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBEB(mod) {
                    return this.regEBX + (this.regEBP << 3);
                },
                /**
                 * opModSIBEC(): scale=11 (8)  index=101 (EBP)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBEC(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + (this.regEBP << 3);
                },
                /**
                 * opModSIBED(): scale=11 (8)  index=101 (EBP)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBED(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + (this.regEBP << 3);
                },
                /**
                 * opModSIBEE(): scale=11 (8)  index=101 (EBP)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBEE(mod) {
                    return this.regESI + (this.regEBP << 3);
                },
                /**
                 * opModSIBEF(): scale=11 (8)  index=101 (EBP)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBEF(mod) {
                    return this.regEDI + (this.regEBP << 3);
                },
                /**
                 * opModSIBF0(): scale=11 (8)  index=110 (ESI)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBF0(mod) {
                    return this.regEAX + (this.regESI << 3);
                },
                /**
                 * opModSIBF1(): scale=11 (8)  index=110 (ESI)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBF1(mod) {
                    return this.regECX + (this.regESI << 3);
                },
                /**
                 * opModSIBF2(): scale=11 (8)  index=110 (ESI)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBF2(mod) {
                    return this.regEDX + (this.regESI << 3);
                },
                /**
                 * opModSIBF3(): scale=11 (8)  index=110 (ESI)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBF3(mod) {
                    return this.regEBX + (this.regESI << 3);
                },
                /**
                 * opModSIBF4(): scale=11 (8)  index=110 (ESI)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBF4(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + (this.regESI << 3);
                },
                /**
                 * opModSIBF5(): scale=11 (8)  index=110 (ESI)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBF5(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + (this.regESI << 3);
                },
                /**
                 * opModSIBF6(): scale=11 (8)  index=110 (ESI)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBF6(mod) {
                    return this.regESI + (this.regESI << 3);
                },
                /**
                 * opModSIBF7(): scale=11 (8)  index=110 (ESI)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBF7(mod) {
                    return this.regEDI + (this.regESI << 3);
                },
                /**
                 * opModSIBF8(): scale=11 (8)  index=111 (EDI)  base=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBF8(mod) {
                    return this.regEAX + (this.regEDI << 3);
                },
                /**
                 * opModSIBF9(): scale=11 (8)  index=111 (EDI)  base=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBF9(mod) {
                    return this.regECX + (this.regEDI << 3);
                },
                /**
                 * opModSIBFA(): scale=11 (8)  index=111 (EDI)  base=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBFA(mod) {
                    return this.regEDX + (this.regEDI << 3);
                },
                /**
                 * opModSIBFB(): scale=11 (8)  index=111 (EDI)  base=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBFB(mod) {
                    return this.regEBX + (this.regEDI << 3);
                },
                /**
                 * opModSIBFC(): scale=11 (8)  index=111 (EDI)  base=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBFC(mod) {
                    this.segData = this.segStack;
                    return this.getSP() + (this.regEDI << 3);
                },
                /**
                 * opModSIBFD(): scale=11 (8)  index=111 (EDI)  base=101 (mod? EBP : disp32)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBFD(mod) {
                    return (mod? ((this.segData = this.segStack), this.regEBP) : this.getIPAddr()) + (this.regEDI << 3);
                },
                /**
                 * opModSIBFE(): scale=11 (8)  index=111 (EDI)  base=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBFE(mod) {
                    return this.regESI + (this.regEDI << 3);
                },
                /**
                 * opModSIBFF(): scale=11 (8)  index=111 (EDI)  base=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {number} mod
                 */
                function opModSIBFF(mod) {
                    return this.regEDI + (this.regEDI << 3);
                }
            ];
            
            if (typeof module !== 'undefined') module.exports = X86ModSIB;
            
          • x86modw.js
            /**
             * @fileoverview Implements PCjs 8086-80286 ModRegRM word decoders.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Sep-05
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var X86         = require("./x86");
            }
            
            var X86ModW = {};
            
            X86ModW.aOpModReg = [
                /**
                 * opModRegWord00(fn): mod=00 (src:mem)  reg=000 (dst:AX)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord00(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX + this.regESI));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegWord01(fn): mod=00 (src:mem)  reg=000 (dst:AX)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord01(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX + this.regEDI));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegWord02(fn): mod=00 (src:mem)  reg=000 (dst:AX)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord02(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.getEAWordStack(this.regEBP + this.regESI));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegWord03(fn): mod=00 (src:mem)  reg=000 (dst:AX)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord03(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.getEAWordStack(this.regEBP + this.regEDI));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegWord04(fn): mod=00 (src:mem)  reg=000 (dst:AX)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord04(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regESI));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegWord05(fn): mod=00 (src:mem)  reg=000 (dst:AX)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord05(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEDI));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegWord06(fn): mod=00 (src:mem)  reg=000 (dst:AX)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord06(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModRegWord07(fn): mod=00 (src:mem)  reg=000 (dst:AX)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord07(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegWord08(fn): mod=00 (src:mem)  reg=001 (dst:CX)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord08(fn) {
                    this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX + this.regESI));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegWord09(fn): mod=00 (src:mem)  reg=001 (dst:CX)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord09(fn) {
                    this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX + this.regEDI));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegWord0A(fn): mod=00 (src:mem)  reg=001 (dst:CX)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord0A(fn) {
                    this.regECX = fn.call(this, this.regECX, this.getEAWordStack(this.regEBP + this.regESI));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegWord0B(fn): mod=00 (src:mem)  reg=001 (dst:CX)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord0B(fn) {
                    this.regECX = fn.call(this, this.regECX, this.getEAWordStack(this.regEBP + this.regEDI));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegWord0C(fn): mod=00 (src:mem)  reg=001 (dst:CX)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord0C(fn) {
                    this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regESI));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegWord0D(fn): mod=00 (src:mem)  reg=001 (dst:CX)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord0D(fn) {
                    this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEDI));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegWord0E(fn): mod=00 (src:mem)  reg=001 (dst:CX)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord0E(fn) {
                    this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModRegWord0F(fn): mod=00 (src:mem)  reg=001 (dst:CX)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord0F(fn) {
                    this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegWord10(fn): mod=00 (src:mem)  reg=010 (dst:DX)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord10(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX + this.regESI));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegWord11(fn): mod=00 (src:mem)  reg=010 (dst:DX)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord11(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX + this.regEDI));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegWord12(fn): mod=00 (src:mem)  reg=010 (dst:DX)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord12(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.getEAWordStack(this.regEBP + this.regESI));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegWord13(fn): mod=00 (src:mem)  reg=010 (dst:DX)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord13(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.getEAWordStack(this.regEBP + this.regEDI));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegWord14(fn): mod=00 (src:mem)  reg=010 (dst:DX)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord14(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regESI));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegWord15(fn): mod=00 (src:mem)  reg=010 (dst:DX)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord15(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEDI));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegWord16(fn): mod=00 (src:mem)  reg=010 (dst:DX)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord16(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModRegWord17(fn): mod=00 (src:mem)  reg=010 (dst:DX)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord17(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegWord18(fn): mod=00 (src:mem)  reg=011 (dst:BX)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord18(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX + this.regESI));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegWord19(fn): mod=00 (src:mem)  reg=011 (dst:BX)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord19(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX + this.regEDI));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegWord1A(fn): mod=00 (src:mem)  reg=011 (dst:BX)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord1A(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.getEAWordStack(this.regEBP + this.regESI));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegWord1B(fn): mod=00 (src:mem)  reg=011 (dst:BX)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord1B(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.getEAWordStack(this.regEBP + this.regEDI));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegWord1C(fn): mod=00 (src:mem)  reg=011 (dst:BX)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord1C(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regESI));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegWord1D(fn): mod=00 (src:mem)  reg=011 (dst:BX)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord1D(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEDI));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegWord1E(fn): mod=00 (src:mem)  reg=011 (dst:BX)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord1E(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModRegWord1F(fn): mod=00 (src:mem)  reg=011 (dst:BX)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord1F(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegWord20(fn): mod=00 (src:mem)  reg=100 (dst:SP)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord20(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regEBX + this.regESI)));
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegWord21(fn): mod=00 (src:mem)  reg=100 (dst:SP)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord21(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regEBX + this.regEDI)));
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegWord22(fn): mod=00 (src:mem)  reg=100 (dst:SP)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord22(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.getEAWordStack(this.regEBP + this.regESI)));
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegWord23(fn): mod=00 (src:mem)  reg=100 (dst:SP)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord23(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.getEAWordStack(this.regEBP + this.regEDI)));
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegWord24(fn): mod=00 (src:mem)  reg=100 (dst:SP)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord24(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regESI)));
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegWord25(fn): mod=00 (src:mem)  reg=100 (dst:SP)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord25(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regEDI)));
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegWord26(fn): mod=00 (src:mem)  reg=100 (dst:SP)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord26(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.getIPAddr())));
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModRegWord27(fn): mod=00 (src:mem)  reg=100 (dst:SP)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord27(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regEBX)));
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegWord28(fn): mod=00 (src:mem)  reg=101 (dst:BP)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord28(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX + this.regESI));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegWord29(fn): mod=00 (src:mem)  reg=101 (dst:BP)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord29(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX + this.regEDI));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegWord2A(fn): mod=00 (src:mem)  reg=101 (dst:BP)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord2A(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.getEAWordStack(this.regEBP + this.regESI));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegWord2B(fn): mod=00 (src:mem)  reg=101 (dst:BP)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord2B(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.getEAWordStack(this.regEBP + this.regEDI));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegWord2C(fn): mod=00 (src:mem)  reg=101 (dst:BP)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord2C(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regESI));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegWord2D(fn): mod=00 (src:mem)  reg=101 (dst:BP)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord2D(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEDI));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegWord2E(fn): mod=00 (src:mem)  reg=101 (dst:BP)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord2E(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModRegWord2F(fn): mod=00 (src:mem)  reg=101 (dst:BP)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord2F(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegWord30(fn): mod=00 (src:mem)  reg=110 (dst:SI)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord30(fn) {
                    this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX + this.regESI));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegWord31(fn): mod=00 (src:mem)  reg=110 (dst:SI)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord31(fn) {
                    this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX + this.regEDI));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegWord32(fn): mod=00 (src:mem)  reg=110 (dst:SI)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord32(fn) {
                    this.regESI = fn.call(this, this.regESI, this.getEAWordStack(this.regEBP + this.regESI));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegWord33(fn): mod=00 (src:mem)  reg=110 (dst:SI)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord33(fn) {
                    this.regESI = fn.call(this, this.regESI, this.getEAWordStack(this.regEBP + this.regEDI));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegWord34(fn): mod=00 (src:mem)  reg=110 (dst:SI)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord34(fn) {
                    this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regESI));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegWord35(fn): mod=00 (src:mem)  reg=110 (dst:SI)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord35(fn) {
                    this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEDI));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegWord36(fn): mod=00 (src:mem)  reg=110 (dst:SI)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord36(fn) {
                    this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModRegWord37(fn): mod=00 (src:mem)  reg=110 (dst:SI)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord37(fn) {
                    this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegWord38(fn): mod=00 (src:mem)  reg=111 (dst:DI)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord38(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX + this.regESI));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegWord39(fn): mod=00 (src:mem)  reg=111 (dst:DI)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord39(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX + this.regEDI));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegWord3A(fn): mod=00 (src:mem)  reg=111 (dst:DI)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord3A(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.getEAWordStack(this.regEBP + this.regESI));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModRegWord3B(fn): mod=00 (src:mem)  reg=111 (dst:DI)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord3B(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.getEAWordStack(this.regEBP + this.regEDI));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModRegWord3C(fn): mod=00 (src:mem)  reg=111 (dst:DI)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord3C(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regESI));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegWord3D(fn): mod=00 (src:mem)  reg=111 (dst:DI)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord3D(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEDI));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegWord3E(fn): mod=00 (src:mem)  reg=111 (dst:DI)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord3E(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModRegWord3F(fn): mod=00 (src:mem)  reg=111 (dst:DI)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord3F(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModRegWord40(fn): mod=01 (src:mem+d8)  reg=000 (dst:AX)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord40(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWord41(fn): mod=01 (src:mem+d8)  reg=000 (dst:AX)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord41(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWord42(fn): mod=01 (src:mem+d8)  reg=000 (dst:AX)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord42(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWord43(fn): mod=01 (src:mem+d8)  reg=000 (dst:AX)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord43(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWord44(fn): mod=01 (src:mem+d8)  reg=000 (dst:AX)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord44(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regESI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord45(fn): mod=01 (src:mem+d8)  reg=000 (dst:AX)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord45(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEDI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord46(fn): mod=01 (src:mem+d8)  reg=000 (dst:AX)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord46(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.getEAWordStack(this.regEBP + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord47(fn): mod=01 (src:mem+d8)  reg=000 (dst:AX)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord47(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord48(fn): mod=01 (src:mem+d8)  reg=001 (dst:CX)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord48(fn) {
                    this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWord49(fn): mod=01 (src:mem+d8)  reg=001 (dst:CX)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord49(fn) {
                    this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWord4A(fn): mod=01 (src:mem+d8)  reg=001 (dst:CX)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord4A(fn) {
                    this.regECX = fn.call(this, this.regECX, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWord4B(fn): mod=01 (src:mem+d8)  reg=001 (dst:CX)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord4B(fn) {
                    this.regECX = fn.call(this, this.regECX, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWord4C(fn): mod=01 (src:mem+d8)  reg=001 (dst:CX)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord4C(fn) {
                    this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regESI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord4D(fn): mod=01 (src:mem+d8)  reg=001 (dst:CX)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord4D(fn) {
                    this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEDI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord4E(fn): mod=01 (src:mem+d8)  reg=001 (dst:CX)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord4E(fn) {
                    this.regECX = fn.call(this, this.regECX, this.getEAWordStack(this.regEBP + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord4F(fn): mod=01 (src:mem+d8)  reg=001 (dst:CX)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord4F(fn) {
                    this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord50(fn): mod=01 (src:mem+d8)  reg=010 (dst:DX)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord50(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWord51(fn): mod=01 (src:mem+d8)  reg=010 (dst:DX)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord51(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWord52(fn): mod=01 (src:mem+d8)  reg=010 (dst:DX)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord52(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWord53(fn): mod=01 (src:mem+d8)  reg=010 (dst:DX)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord53(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWord54(fn): mod=01 (src:mem+d8)  reg=010 (dst:DX)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord54(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regESI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord55(fn): mod=01 (src:mem+d8)  reg=010 (dst:DX)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord55(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEDI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord56(fn): mod=01 (src:mem+d8)  reg=010 (dst:DX)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord56(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.getEAWordStack(this.regEBP + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord57(fn): mod=01 (src:mem+d8)  reg=010 (dst:DX)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord57(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord58(fn): mod=01 (src:mem+d8)  reg=011 (dst:BX)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord58(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWord59(fn): mod=01 (src:mem+d8)  reg=011 (dst:BX)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord59(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWord5A(fn): mod=01 (src:mem+d8)  reg=011 (dst:BX)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord5A(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWord5B(fn): mod=01 (src:mem+d8)  reg=011 (dst:BX)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord5B(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWord5C(fn): mod=01 (src:mem+d8)  reg=011 (dst:BX)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord5C(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regESI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord5D(fn): mod=01 (src:mem+d8)  reg=011 (dst:BX)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord5D(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEDI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord5E(fn): mod=01 (src:mem+d8)  reg=011 (dst:BX)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord5E(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.getEAWordStack(this.regEBP + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord5F(fn): mod=01 (src:mem+d8)  reg=011 (dst:BX)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord5F(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord60(fn): mod=01 (src:mem+d8)  reg=100 (dst:SP)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord60(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp())));
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWord61(fn): mod=01 (src:mem+d8)  reg=100 (dst:SP)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord61(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp())));
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWord62(fn): mod=01 (src:mem+d8)  reg=100 (dst:SP)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord62(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp())));
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWord63(fn): mod=01 (src:mem+d8)  reg=100 (dst:SP)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord63(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp())));
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWord64(fn): mod=01 (src:mem+d8)  reg=100 (dst:SP)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord64(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regESI + this.getIPDisp())));
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord65(fn): mod=01 (src:mem+d8)  reg=100 (dst:SP)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord65(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regEDI + this.getIPDisp())));
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord66(fn): mod=01 (src:mem+d8)  reg=100 (dst:SP)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord66(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.getEAWordStack(this.regEBP + this.getIPDisp())));
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord67(fn): mod=01 (src:mem+d8)  reg=100 (dst:SP)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord67(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regEBX + this.getIPDisp())));
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord68(fn): mod=01 (src:mem+d8)  reg=101 (dst:BP)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord68(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWord69(fn): mod=01 (src:mem+d8)  reg=101 (dst:BP)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord69(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWord6A(fn): mod=01 (src:mem+d8)  reg=101 (dst:BP)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord6A(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWord6B(fn): mod=01 (src:mem+d8)  reg=101 (dst:BP)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord6B(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWord6C(fn): mod=01 (src:mem+d8)  reg=101 (dst:BP)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord6C(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regESI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord6D(fn): mod=01 (src:mem+d8)  reg=101 (dst:BP)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord6D(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEDI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord6E(fn): mod=01 (src:mem+d8)  reg=101 (dst:BP)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord6E(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.getEAWordStack(this.regEBP + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord6F(fn): mod=01 (src:mem+d8)  reg=101 (dst:BP)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord6F(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord70(fn): mod=01 (src:mem+d8)  reg=110 (dst:SI)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord70(fn) {
                    this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWord71(fn): mod=01 (src:mem+d8)  reg=110 (dst:SI)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord71(fn) {
                    this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWord72(fn): mod=01 (src:mem+d8)  reg=110 (dst:SI)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord72(fn) {
                    this.regESI = fn.call(this, this.regESI, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWord73(fn): mod=01 (src:mem+d8)  reg=110 (dst:SI)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord73(fn) {
                    this.regESI = fn.call(this, this.regESI, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWord74(fn): mod=01 (src:mem+d8)  reg=110 (dst:SI)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord74(fn) {
                    this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regESI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord75(fn): mod=01 (src:mem+d8)  reg=110 (dst:SI)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord75(fn) {
                    this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEDI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord76(fn): mod=01 (src:mem+d8)  reg=110 (dst:SI)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord76(fn) {
                    this.regESI = fn.call(this, this.regESI, this.getEAWordStack(this.regEBP + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord77(fn): mod=01 (src:mem+d8)  reg=110 (dst:SI)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord77(fn) {
                    this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord78(fn): mod=01 (src:mem+d8)  reg=111 (dst:DI)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord78(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWord79(fn): mod=01 (src:mem+d8)  reg=111 (dst:DI)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord79(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWord7A(fn): mod=01 (src:mem+d8)  reg=111 (dst:DI)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord7A(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWord7B(fn): mod=01 (src:mem+d8)  reg=111 (dst:DI)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord7B(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWord7C(fn): mod=01 (src:mem+d8)  reg=111 (dst:DI)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord7C(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regESI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord7D(fn): mod=01 (src:mem+d8)  reg=111 (dst:DI)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord7D(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEDI + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord7E(fn): mod=01 (src:mem+d8)  reg=111 (dst:DI)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord7E(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.getEAWordStack(this.regEBP + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord7F(fn): mod=01 (src:mem+d8)  reg=111 (dst:DI)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord7F(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX + this.getIPDisp()));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord80(fn): mod=10 (src:mem+d16)  reg=000 (dst:AX)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord80(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX + this.regESI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWord81(fn): mod=10 (src:mem+d16)  reg=000 (dst:AX)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord81(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX + this.regEDI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWord82(fn): mod=10 (src:mem+d16)  reg=000 (dst:AX)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord82(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.getEAWordStack(this.regEBP + this.regESI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWord83(fn): mod=10 (src:mem+d16)  reg=000 (dst:AX)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord83(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWord84(fn): mod=10 (src:mem+d16)  reg=000 (dst:AX)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord84(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regESI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord85(fn): mod=10 (src:mem+d16)  reg=000 (dst:AX)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord85(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEDI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord86(fn): mod=10 (src:mem+d16)  reg=000 (dst:AX)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord86(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.getEAWordStack(this.regEBP + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord87(fn): mod=10 (src:mem+d16)  reg=000 (dst:AX)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord87(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord88(fn): mod=10 (src:mem+d16)  reg=001 (dst:CX)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord88(fn) {
                    this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX + this.regESI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWord89(fn): mod=10 (src:mem+d16)  reg=001 (dst:CX)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord89(fn) {
                    this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX + this.regEDI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWord8A(fn): mod=10 (src:mem+d16)  reg=001 (dst:CX)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord8A(fn) {
                    this.regECX = fn.call(this, this.regECX, this.getEAWordStack(this.regEBP + this.regESI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWord8B(fn): mod=10 (src:mem+d16)  reg=001 (dst:CX)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord8B(fn) {
                    this.regECX = fn.call(this, this.regECX, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWord8C(fn): mod=10 (src:mem+d16)  reg=001 (dst:CX)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord8C(fn) {
                    this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regESI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord8D(fn): mod=10 (src:mem+d16)  reg=001 (dst:CX)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord8D(fn) {
                    this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEDI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord8E(fn): mod=10 (src:mem+d16)  reg=001 (dst:CX)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord8E(fn) {
                    this.regECX = fn.call(this, this.regECX, this.getEAWordStack(this.regEBP + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord8F(fn): mod=10 (src:mem+d16)  reg=001 (dst:CX)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord8F(fn) {
                    this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord90(fn): mod=10 (src:mem+d16)  reg=010 (dst:DX)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord90(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX + this.regESI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWord91(fn): mod=10 (src:mem+d16)  reg=010 (dst:DX)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord91(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX + this.regEDI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWord92(fn): mod=10 (src:mem+d16)  reg=010 (dst:DX)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord92(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.getEAWordStack(this.regEBP + this.regESI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWord93(fn): mod=10 (src:mem+d16)  reg=010 (dst:DX)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord93(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWord94(fn): mod=10 (src:mem+d16)  reg=010 (dst:DX)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord94(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regESI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord95(fn): mod=10 (src:mem+d16)  reg=010 (dst:DX)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord95(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEDI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord96(fn): mod=10 (src:mem+d16)  reg=010 (dst:DX)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord96(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.getEAWordStack(this.regEBP + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord97(fn): mod=10 (src:mem+d16)  reg=010 (dst:DX)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord97(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord98(fn): mod=10 (src:mem+d16)  reg=011 (dst:BX)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord98(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX + this.regESI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWord99(fn): mod=10 (src:mem+d16)  reg=011 (dst:BX)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord99(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX + this.regEDI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWord9A(fn): mod=10 (src:mem+d16)  reg=011 (dst:BX)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord9A(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.getEAWordStack(this.regEBP + this.regESI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWord9B(fn): mod=10 (src:mem+d16)  reg=011 (dst:BX)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord9B(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWord9C(fn): mod=10 (src:mem+d16)  reg=011 (dst:BX)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord9C(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regESI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord9D(fn): mod=10 (src:mem+d16)  reg=011 (dst:BX)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord9D(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEDI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord9E(fn): mod=10 (src:mem+d16)  reg=011 (dst:BX)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord9E(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.getEAWordStack(this.regEBP + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWord9F(fn): mod=10 (src:mem+d16)  reg=011 (dst:BX)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWord9F(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWordA0(fn): mod=10 (src:mem+d16)  reg=100 (dst:SP)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordA0(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regEBX + this.regESI + this.getIPAddr())));
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWordA1(fn): mod=10 (src:mem+d16)  reg=100 (dst:SP)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordA1(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regEBX + this.regEDI + this.getIPAddr())));
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWordA2(fn): mod=10 (src:mem+d16)  reg=100 (dst:SP)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordA2(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.getEAWordStack(this.regEBP + this.regESI + this.getIPAddr())));
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWordA3(fn): mod=10 (src:mem+d16)  reg=100 (dst:SP)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordA3(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.getEAWordStack(this.regEBP + this.regEDI + this.getIPAddr())));
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWordA4(fn): mod=10 (src:mem+d16)  reg=100 (dst:SP)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordA4(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regESI + this.getIPAddr())));
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWordA5(fn): mod=10 (src:mem+d16)  reg=100 (dst:SP)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordA5(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regEDI + this.getIPAddr())));
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWordA6(fn): mod=10 (src:mem+d16)  reg=100 (dst:SP)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordA6(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.getEAWordStack(this.regEBP + this.getIPAddr())));
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWordA7(fn): mod=10 (src:mem+d16)  reg=100 (dst:SP)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordA7(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regEBX + this.getIPAddr())));
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWordA8(fn): mod=10 (src:mem+d16)  reg=101 (dst:BP)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordA8(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX + this.regESI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWordA9(fn): mod=10 (src:mem+d16)  reg=101 (dst:BP)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordA9(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX + this.regEDI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWordAA(fn): mod=10 (src:mem+d16)  reg=101 (dst:BP)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordAA(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.getEAWordStack(this.regEBP + this.regESI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWordAB(fn): mod=10 (src:mem+d16)  reg=101 (dst:BP)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordAB(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWordAC(fn): mod=10 (src:mem+d16)  reg=101 (dst:BP)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordAC(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regESI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWordAD(fn): mod=10 (src:mem+d16)  reg=101 (dst:BP)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordAD(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEDI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWordAE(fn): mod=10 (src:mem+d16)  reg=101 (dst:BP)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordAE(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.getEAWordStack(this.regEBP + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWordAF(fn): mod=10 (src:mem+d16)  reg=101 (dst:BP)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordAF(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWordB0(fn): mod=10 (src:mem+d16)  reg=110 (dst:SI)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordB0(fn) {
                    this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX + this.regESI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWordB1(fn): mod=10 (src:mem+d16)  reg=110 (dst:SI)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordB1(fn) {
                    this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX + this.regEDI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWordB2(fn): mod=10 (src:mem+d16)  reg=110 (dst:SI)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordB2(fn) {
                    this.regESI = fn.call(this, this.regESI, this.getEAWordStack(this.regEBP + this.regESI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWordB3(fn): mod=10 (src:mem+d16)  reg=110 (dst:SI)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordB3(fn) {
                    this.regESI = fn.call(this, this.regESI, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWordB4(fn): mod=10 (src:mem+d16)  reg=110 (dst:SI)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordB4(fn) {
                    this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regESI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWordB5(fn): mod=10 (src:mem+d16)  reg=110 (dst:SI)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordB5(fn) {
                    this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEDI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWordB6(fn): mod=10 (src:mem+d16)  reg=110 (dst:SI)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordB6(fn) {
                    this.regESI = fn.call(this, this.regESI, this.getEAWordStack(this.regEBP + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWordB7(fn): mod=10 (src:mem+d16)  reg=110 (dst:SI)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordB7(fn) {
                    this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWordB8(fn): mod=10 (src:mem+d16)  reg=111 (dst:DI)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordB8(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX + this.regESI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWordB9(fn): mod=10 (src:mem+d16)  reg=111 (dst:DI)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordB9(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX + this.regEDI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWordBA(fn): mod=10 (src:mem+d16)  reg=111 (dst:DI)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordBA(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.getEAWordStack(this.regEBP + this.regESI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModRegWordBB(fn): mod=10 (src:mem+d16)  reg=111 (dst:DI)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordBB(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModRegWordBC(fn): mod=10 (src:mem+d16)  reg=111 (dst:DI)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordBC(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regESI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWordBD(fn): mod=10 (src:mem+d16)  reg=111 (dst:DI)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordBD(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEDI + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWordBE(fn): mod=10 (src:mem+d16)  reg=111 (dst:DI)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordBE(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.getEAWordStack(this.regEBP + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWordBF(fn): mod=10 (src:mem+d16)  reg=111 (dst:DI)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordBF(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX + this.getIPAddr()));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModRegWordC0(fn): mod=11 (src:reg)  reg=000 (dst:AX)  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordC0(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.regEAX);
                },
                /**
                 * opModRegWordC1(fn): mod=11 (src:reg)  reg=000 (dst:AX)  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordC1(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiCL; this.backTrack.btiAH = this.backTrack.btiCH;
                    }
                },
                /**
                 * opModRegWordC2(fn): mod=11 (src:reg)  reg=000 (dst:AX)  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordC2(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiDL; this.backTrack.btiAH = this.backTrack.btiDH;
                    }
                },
                /**
                 * opModRegWordC3(fn): mod=11 (src:reg)  reg=000 (dst:AX)  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordC3(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiBL; this.backTrack.btiAH = this.backTrack.btiBH;
                    }
                },
                /**
                 * opModRegWordC4(fn): mod=11 (src:reg)  reg=000 (dst:AX)  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordC4(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiAL = X86.BACKTRACK.SP_LO; this.backTrack.btiAH = X86.BACKTRACK.SP_HI;
                    }
                },
                /**
                 * opModRegWordC5(fn): mod=11 (src:reg)  reg=000 (dst:AX)  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordC5(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiBPLo; this.backTrack.btiAH = this.backTrack.btiBPHi;
                    }
                },
                /**
                 * opModRegWordC6(fn): mod=11 (src:reg)  reg=000 (dst:AX)  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordC6(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiSILo; this.backTrack.btiAH = this.backTrack.btiSIHi;
                    }
                },
                /**
                 * opModRegWordC7(fn): mod=11 (src:reg)  reg=000 (dst:AX)  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordC7(fn) {
                    this.regEAX = fn.call(this, this.regEAX, this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiDILo; this.backTrack.btiAH = this.backTrack.btiDIHi;
                    }
                },
                /**
                 * opModRegWordC8(fn): mod=11 (src:reg)  reg=001 (dst:CX)  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordC8(fn) {
                    this.regECX = fn.call(this, this.regECX, this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiAL; this.backTrack.btiCH = this.backTrack.btiAH;
                    }
                },
                /**
                 * opModRegWordC9(fn): mod=11 (src:reg)  reg=001 (dst:CX)  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordC9(fn) {
                    this.regECX = fn.call(this, this.regECX, this.regECX);
                },
                /**
                 * opModRegWordCA(fn): mod=11 (src:reg)  reg=001 (dst:CX)  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordCA(fn) {
                    this.regECX = fn.call(this, this.regECX, this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiDL; this.backTrack.btiCH = this.backTrack.btiDH;
                    }
                },
                /**
                 * opModRegWordCB(fn): mod=11 (src:reg)  reg=001 (dst:CX)  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordCB(fn) {
                    this.regECX = fn.call(this, this.regECX, this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiBL; this.backTrack.btiCH = this.backTrack.btiBH;
                    }
                },
                /**
                 * opModRegWordCC(fn): mod=11 (src:reg)  reg=001 (dst:CX)  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordCC(fn) {
                    this.regECX = fn.call(this, this.regECX, this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiCL = X86.BACKTRACK.SP_LO; this.backTrack.btiCH = X86.BACKTRACK.SP_HI;
                    }
                },
                /**
                 * opModRegWordCD(fn): mod=11 (src:reg)  reg=001 (dst:CX)  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordCD(fn) {
                    this.regECX = fn.call(this, this.regECX, this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiBPLo; this.backTrack.btiCH = this.backTrack.btiBPHi;
                    }
                },
                /**
                 * opModRegWordCE(fn): mod=11 (src:reg)  reg=001 (dst:CX)  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordCE(fn) {
                    this.regECX = fn.call(this, this.regECX, this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiSILo; this.backTrack.btiCH = this.backTrack.btiSIHi;
                    }
                },
                /**
                 * opModRegWordCF(fn): mod=11 (src:reg)  reg=001 (dst:CX)  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordCF(fn) {
                    this.regECX = fn.call(this, this.regECX, this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiDILo; this.backTrack.btiCH = this.backTrack.btiDIHi;
                    }
                },
                /**
                 * opModRegWordD0(fn): mod=11 (src:reg)  reg=010 (dst:DX)  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordD0(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiAL; this.backTrack.btiDH = this.backTrack.btiAH;
                    }
                },
                /**
                 * opModRegWordD1(fn): mod=11 (src:reg)  reg=010 (dst:DX)  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordD1(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiCL; this.backTrack.btiDH = this.backTrack.btiCH;
                    }
                },
                /**
                 * opModRegWordD2(fn): mod=11 (src:reg)  reg=010 (dst:DX)  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordD2(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.regEDX);
                },
                /**
                 * opModRegWordD3(fn): mod=11 (src:reg)  reg=010 (dst:DX)  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordD3(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiBL; this.backTrack.btiDH = this.backTrack.btiBH;
                    }
                },
                /**
                 * opModRegWordD4(fn): mod=11 (src:reg)  reg=010 (dst:DX)  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordD4(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiDL = X86.BACKTRACK.SP_LO; this.backTrack.btiDH = X86.BACKTRACK.SP_HI;
                    }
                },
                /**
                 * opModRegWordD5(fn): mod=11 (src:reg)  reg=010 (dst:DX)  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordD5(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiBPLo; this.backTrack.btiDH = this.backTrack.btiBPHi;
                    }
                },
                /**
                 * opModRegWordD6(fn): mod=11 (src:reg)  reg=010 (dst:DX)  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordD6(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiSILo; this.backTrack.btiDH = this.backTrack.btiSIHi;
                    }
                },
                /**
                 * opModRegWordD7(fn): mod=11 (src:reg)  reg=010 (dst:DX)  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordD7(fn) {
                    this.regEDX = fn.call(this, this.regEDX, this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiDILo; this.backTrack.btiDH = this.backTrack.btiDIHi;
                    }
                },
                /**
                 * opModRegWordD8(fn): mod=11 (src:reg)  reg=011 (dst:BX)  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordD8(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiAL; this.backTrack.btiBH = this.backTrack.btiAH;
                    }
                },
                /**
                 * opModRegWordD9(fn): mod=11 (src:reg)  reg=011 (dst:BX)  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordD9(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiCL; this.backTrack.btiBH = this.backTrack.btiCH;
                    }
                },
                /**
                 * opModRegWordDA(fn): mod=11 (src:reg)  reg=011 (dst:BX)  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordDA(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiDL; this.backTrack.btiBH = this.backTrack.btiDH;
                    }
                },
                /**
                 * opModRegWordDB(fn): mod=11 (src:reg)  reg=011 (dst:BX)  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordDB(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.regEBX);
                },
                /**
                 * opModRegWordDC(fn): mod=11 (src:reg)  reg=011 (dst:BX)  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordDC(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiBL = X86.BACKTRACK.SP_LO; this.backTrack.btiBH = X86.BACKTRACK.SP_HI;
                    }
                },
                /**
                 * opModRegWordDD(fn): mod=11 (src:reg)  reg=011 (dst:BX)  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordDD(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiBPLo; this.backTrack.btiBH = this.backTrack.btiBPHi;
                    }
                },
                /**
                 * opModRegWordDE(fn): mod=11 (src:reg)  reg=011 (dst:BX)  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordDE(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiSILo; this.backTrack.btiBH = this.backTrack.btiSIHi;
                    }
                },
                /**
                 * opModRegWordDF(fn): mod=11 (src:reg)  reg=011 (dst:BX)  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordDF(fn) {
                    this.regEBX = fn.call(this, this.regEBX, this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiDILo; this.backTrack.btiBH = this.backTrack.btiDIHi;
                    }
                },
                /**
                 * opModRegWordE0(fn): mod=11 (src:reg)  reg=100 (dst:SP)  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordE0(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.regEAX));
                },
                /**
                 * opModRegWordE1(fn): mod=11 (src:reg)  reg=100 (dst:SP)  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordE1(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.regECX));
                },
                /**
                 * opModRegWordE2(fn): mod=11 (src:reg)  reg=100 (dst:SP)  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordE2(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.regEDX));
                },
                /**
                 * opModRegWordE3(fn): mod=11 (src:reg)  reg=100 (dst:SP)  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordE3(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.regEBX));
                },
                /**
                 * opModRegWordE4(fn): mod=11 (src:reg)  reg=100 (dst:SP)  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordE4(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.getSP()));
                },
                /**
                 * opModRegWordE5(fn): mod=11 (src:reg)  reg=100 (dst:SP)  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordE5(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.regEBP));
                },
                /**
                 * opModRegWordE6(fn): mod=11 (src:reg)  reg=100 (dst:SP)  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordE6(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.regESI));
                },
                /**
                 * opModRegWordE7(fn): mod=11 (src:reg)  reg=100 (dst:SP)  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordE7(fn) {
                    this.setSP(fn.call(this, this.getSP(), this.regEDI));
                },
                /**
                 * opModRegWordE8(fn): mod=11 (src:reg)  reg=101 (dst:BP)  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordE8(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiAL; this.backTrack.btiBPHi = this.backTrack.btiAH;
                    }
                },
                /**
                 * opModRegWordE9(fn): mod=11 (src:reg)  reg=101 (dst:BP)  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordE9(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiCL; this.backTrack.btiBPHi = this.backTrack.btiCH;
                    }
                },
                /**
                 * opModRegWordEA(fn): mod=11 (src:reg)  reg=101 (dst:BP)  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordEA(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiDL; this.backTrack.btiBPHi = this.backTrack.btiDH;
                    }
                },
                /**
                 * opModRegWordEB(fn): mod=11 (src:reg)  reg=101 (dst:BP)  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordEB(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiBL; this.backTrack.btiBPHi = this.backTrack.btiBH;
                    }
                },
                /**
                 * opModRegWordEC(fn): mod=11 (src:reg)  reg=101 (dst:BP)  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordEC(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = X86.BACKTRACK.SP_LO; this.backTrack.btiBPHi = X86.BACKTRACK.SP_HI;
                    }
                },
                /**
                 * opModRegWordED(fn): mod=11 (src:reg)  reg=101 (dst:BP)  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordED(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.regEBP);
                },
                /**
                 * opModRegWordEE(fn): mod=11 (src:reg)  reg=101 (dst:BP)  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordEE(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiSILo; this.backTrack.btiBPHi = this.backTrack.btiSIHi;
                    }
                },
                /**
                 * opModRegWordEF(fn): mod=11 (src:reg)  reg=101 (dst:BP)  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordEF(fn) {
                    this.regEBP = fn.call(this, this.regEBP, this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiDILo; this.backTrack.btiBPHi = this.backTrack.btiDIHi;
                    }
                },
                /**
                 * opModRegWordF0(fn): mod=11 (src:reg)  reg=110 (dst:SI)  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordF0(fn) {
                    this.regESI = fn.call(this, this.regESI, this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiAL; this.backTrack.btiSIHi = this.backTrack.btiAH;
                    }
                },
                /**
                 * opModRegWordF1(fn): mod=11 (src:reg)  reg=110 (dst:SI)  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordF1(fn) {
                    this.regESI = fn.call(this, this.regESI, this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiCL; this.backTrack.btiSIHi = this.backTrack.btiCH;
                    }
                },
                /**
                 * opModRegWordF2(fn): mod=11 (src:reg)  reg=110 (dst:SI)  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordF2(fn) {
                    this.regESI = fn.call(this, this.regESI, this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiDL; this.backTrack.btiSIHi = this.backTrack.btiDH;
                    }
                },
                /**
                 * opModRegWordF3(fn): mod=11 (src:reg)  reg=110 (dst:SI)  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordF3(fn) {
                    this.regESI = fn.call(this, this.regESI, this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiBL; this.backTrack.btiSIHi = this.backTrack.btiBH;
                    }
                },
                /**
                 * opModRegWordF4(fn): mod=11 (src:reg)  reg=110 (dst:SI)  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordF4(fn) {
                    this.regESI = fn.call(this, this.regESI, this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = X86.BACKTRACK.SP_LO; this.backTrack.btiSIHi = X86.BACKTRACK.SP_HI;
                    }
                },
                /**
                 * opModRegWordF5(fn): mod=11 (src:reg)  reg=110 (dst:SI)  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordF5(fn) {
                    this.regESI = fn.call(this, this.regESI, this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiBPLo; this.backTrack.btiSIHi = this.backTrack.btiBPHi;
                    }
                },
                /**
                 * opModRegWordF6(fn): mod=11 (src:reg)  reg=110 (dst:SI)  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordF6(fn) {
                    this.regESI = fn.call(this, this.regESI, this.regESI);
                },
                /**
                 * opModRegWordF7(fn): mod=11 (src:reg)  reg=110 (dst:SI)  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordF7(fn) {
                    this.regESI = fn.call(this, this.regESI, this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiDILo; this.backTrack.btiSIHi = this.backTrack.btiDIHi;
                    }
                },
                /**
                 * opModRegWordF8(fn): mod=11 (src:reg)  reg=111 (dst:DI)  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordF8(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiAL; this.backTrack.btiDIHi = this.backTrack.btiAH;
                    }
                },
                /**
                 * opModRegWordF9(fn): mod=11 (src:reg)  reg=111 (dst:DI)  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordF9(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiCL; this.backTrack.btiDIHi = this.backTrack.btiCH;
                    }
                },
                /**
                 * opModRegWordFA(fn): mod=11 (src:reg)  reg=111 (dst:DI)  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordFA(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiDL; this.backTrack.btiDIHi = this.backTrack.btiDH;
                    }
                },
                /**
                 * opModRegWordFB(fn): mod=11 (src:reg)  reg=111 (dst:DI)  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordFB(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiBL; this.backTrack.btiDIHi = this.backTrack.btiBH;
                    }
                },
                /**
                 * opModRegWordFC(fn): mod=11 (src:reg)  reg=111 (dst:DI)  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordFC(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = X86.BACKTRACK.SP_LO; this.backTrack.btiDIHi = X86.BACKTRACK.SP_HI;
                    }
                },
                /**
                 * opModRegWordFD(fn): mod=11 (src:reg)  reg=111 (dst:DI)  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordFD(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiBPLo; this.backTrack.btiDIHi = this.backTrack.btiBPHi;
                    }
                },
                /**
                 * opModRegWordFE(fn): mod=11 (src:reg)  reg=111 (dst:DI)  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordFE(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiSILo; this.backTrack.btiDIHi = this.backTrack.btiSIHi;
                    }
                },
                /**
                 * opModRegWordFF(fn): mod=11 (src:reg)  reg=111 (dst:DI)  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModRegWordFF(fn) {
                    this.regEDI = fn.call(this, this.regEDI, this.regEDI);
                }
            ];
            
            X86ModW.aOpModMem = [
                /**
                 * opModMemWord00(fn): mod=00 (dst:mem)  reg=000 (src:AX)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord00(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemWord01(fn): mod=00 (dst:mem)  reg=000 (src:AX)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord01(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemWord02(fn): mod=00 (dst:mem)  reg=000 (src:AX)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord02(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemWord03(fn): mod=00 (dst:mem)  reg=000 (src:AX)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord03(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemWord04(fn): mod=00 (dst:mem)  reg=000 (src:AX)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord04(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI), this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemWord05(fn): mod=00 (dst:mem)  reg=000 (src:AX)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord05(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemWord06(fn): mod=00 (dst:mem)  reg=000 (src:AX)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord06(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModMemWord07(fn): mod=00 (dst:mem)  reg=000 (src:AX)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord07(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemWord08(fn): mod=00 (dst:mem)  reg=001 (src:CX)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord08(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemWord09(fn): mod=00 (dst:mem)  reg=001 (src:CX)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord09(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemWord0A(fn): mod=00 (dst:mem)  reg=001 (src:CX)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord0A(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemWord0B(fn): mod=00 (dst:mem)  reg=001 (src:CX)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord0B(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemWord0C(fn): mod=00 (dst:mem)  reg=001 (src:CX)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord0C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI), this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemWord0D(fn): mod=00 (dst:mem)  reg=001 (src:CX)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord0D(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI), this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemWord0E(fn): mod=00 (dst:mem)  reg=001 (src:CX)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord0E(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModMemWord0F(fn): mod=00 (dst:mem)  reg=001 (src:CX)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord0F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX), this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemWord10(fn): mod=00 (dst:mem)  reg=010 (src:DX)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord10(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemWord11(fn): mod=00 (dst:mem)  reg=010 (src:DX)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord11(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemWord12(fn): mod=00 (dst:mem)  reg=010 (src:DX)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord12(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemWord13(fn): mod=00 (dst:mem)  reg=010 (src:DX)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord13(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemWord14(fn): mod=00 (dst:mem)  reg=010 (src:DX)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord14(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI), this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemWord15(fn): mod=00 (dst:mem)  reg=010 (src:DX)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord15(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemWord16(fn): mod=00 (dst:mem)  reg=010 (src:DX)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord16(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModMemWord17(fn): mod=00 (dst:mem)  reg=010 (src:DX)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord17(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemWord18(fn): mod=00 (dst:mem)  reg=011 (src:BX)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord18(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemWord19(fn): mod=00 (dst:mem)  reg=011 (src:BX)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord19(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemWord1A(fn): mod=00 (dst:mem)  reg=011 (src:BX)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord1A(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemWord1B(fn): mod=00 (dst:mem)  reg=011 (src:BX)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord1B(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemWord1C(fn): mod=00 (dst:mem)  reg=011 (src:BX)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord1C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI), this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemWord1D(fn): mod=00 (dst:mem)  reg=011 (src:BX)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord1D(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemWord1E(fn): mod=00 (dst:mem)  reg=011 (src:BX)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord1E(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModMemWord1F(fn): mod=00 (dst:mem)  reg=011 (src:BX)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord1F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemWord20(fn): mod=00 (dst:mem)  reg=100 (src:SP)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord20(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemWord21(fn): mod=00 (dst:mem)  reg=100 (src:SP)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord21(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemWord22(fn): mod=00 (dst:mem)  reg=100 (src:SP)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord22(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemWord23(fn): mod=00 (dst:mem)  reg=100 (src:SP)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord23(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemWord24(fn): mod=00 (dst:mem)  reg=100 (src:SP)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord24(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI), this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemWord25(fn): mod=00 (dst:mem)  reg=100 (src:SP)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord25(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI), this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemWord26(fn): mod=00 (dst:mem)  reg=100 (src:SP)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord26(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModMemWord27(fn): mod=00 (dst:mem)  reg=100 (src:SP)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord27(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX), this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemWord28(fn): mod=00 (dst:mem)  reg=101 (src:BP)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord28(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemWord29(fn): mod=00 (dst:mem)  reg=101 (src:BP)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord29(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemWord2A(fn): mod=00 (dst:mem)  reg=101 (src:BP)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord2A(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemWord2B(fn): mod=00 (dst:mem)  reg=101 (src:BP)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord2B(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemWord2C(fn): mod=00 (dst:mem)  reg=101 (src:BP)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord2C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI), this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemWord2D(fn): mod=00 (dst:mem)  reg=101 (src:BP)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord2D(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemWord2E(fn): mod=00 (dst:mem)  reg=101 (src:BP)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord2E(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModMemWord2F(fn): mod=00 (dst:mem)  reg=101 (src:BP)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord2F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemWord30(fn): mod=00 (dst:mem)  reg=110 (src:SI)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord30(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemWord31(fn): mod=00 (dst:mem)  reg=110 (src:SI)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord31(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemWord32(fn): mod=00 (dst:mem)  reg=110 (src:SI)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord32(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemWord33(fn): mod=00 (dst:mem)  reg=110 (src:SI)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord33(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemWord34(fn): mod=00 (dst:mem)  reg=110 (src:SI)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord34(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI), this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemWord35(fn): mod=00 (dst:mem)  reg=110 (src:SI)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord35(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI), this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemWord36(fn): mod=00 (dst:mem)  reg=110 (src:SI)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord36(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModMemWord37(fn): mod=00 (dst:mem)  reg=110 (src:SI)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord37(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX), this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemWord38(fn): mod=00 (dst:mem)  reg=111 (src:DI)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord38(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemWord39(fn): mod=00 (dst:mem)  reg=111 (src:DI)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord39(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemWord3A(fn): mod=00 (dst:mem)  reg=111 (src:DI)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord3A(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModMemWord3B(fn): mod=00 (dst:mem)  reg=111 (src:DI)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord3B(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModMemWord3C(fn): mod=00 (dst:mem)  reg=111 (src:DI)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord3C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI), this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemWord3D(fn): mod=00 (dst:mem)  reg=111 (src:DI)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord3D(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemWord3E(fn): mod=00 (dst:mem)  reg=111 (src:DI)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord3E(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModMemWord3F(fn): mod=00 (dst:mem)  reg=111 (src:DI)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord3F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModMemWord40(fn): mod=01 (dst:mem+d8)  reg=000 (src:AX)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord40(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWord41(fn): mod=01 (dst:mem+d8)  reg=000 (src:AX)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord41(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWord42(fn): mod=01 (dst:mem+d8)  reg=000 (src:AX)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord42(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWord43(fn): mod=01 (dst:mem+d8)  reg=000 (src:AX)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord43(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWord44(fn): mod=01 (dst:mem+d8)  reg=000 (src:AX)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord44(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord45(fn): mod=01 (dst:mem+d8)  reg=000 (src:AX)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord45(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord46(fn): mod=01 (dst:mem+d8)  reg=000 (src:AX)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord46(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord47(fn): mod=01 (dst:mem+d8)  reg=000 (src:AX)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord47(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord48(fn): mod=01 (dst:mem+d8)  reg=001 (src:CX)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord48(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWord49(fn): mod=01 (dst:mem+d8)  reg=001 (src:CX)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord49(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWord4A(fn): mod=01 (dst:mem+d8)  reg=001 (src:CX)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord4A(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWord4B(fn): mod=01 (dst:mem+d8)  reg=001 (src:CX)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord4B(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWord4C(fn): mod=01 (dst:mem+d8)  reg=001 (src:CX)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord4C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord4D(fn): mod=01 (dst:mem+d8)  reg=001 (src:CX)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord4D(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord4E(fn): mod=01 (dst:mem+d8)  reg=001 (src:CX)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord4E(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord4F(fn): mod=01 (dst:mem+d8)  reg=001 (src:CX)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord4F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord50(fn): mod=01 (dst:mem+d8)  reg=010 (src:DX)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord50(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWord51(fn): mod=01 (dst:mem+d8)  reg=010 (src:DX)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord51(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWord52(fn): mod=01 (dst:mem+d8)  reg=010 (src:DX)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord52(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWord53(fn): mod=01 (dst:mem+d8)  reg=010 (src:DX)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord53(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWord54(fn): mod=01 (dst:mem+d8)  reg=010 (src:DX)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord54(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord55(fn): mod=01 (dst:mem+d8)  reg=010 (src:DX)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord55(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord56(fn): mod=01 (dst:mem+d8)  reg=010 (src:DX)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord56(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord57(fn): mod=01 (dst:mem+d8)  reg=010 (src:DX)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord57(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord58(fn): mod=01 (dst:mem+d8)  reg=011 (src:BX)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord58(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWord59(fn): mod=01 (dst:mem+d8)  reg=011 (src:BX)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord59(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWord5A(fn): mod=01 (dst:mem+d8)  reg=011 (src:BX)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord5A(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWord5B(fn): mod=01 (dst:mem+d8)  reg=011 (src:BX)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord5B(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWord5C(fn): mod=01 (dst:mem+d8)  reg=011 (src:BX)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord5C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord5D(fn): mod=01 (dst:mem+d8)  reg=011 (src:BX)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord5D(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord5E(fn): mod=01 (dst:mem+d8)  reg=011 (src:BX)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord5E(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord5F(fn): mod=01 (dst:mem+d8)  reg=011 (src:BX)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord5F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord60(fn): mod=01 (dst:mem+d8)  reg=100 (src:SP)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord60(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWord61(fn): mod=01 (dst:mem+d8)  reg=100 (src:SP)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord61(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWord62(fn): mod=01 (dst:mem+d8)  reg=100 (src:SP)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord62(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWord63(fn): mod=01 (dst:mem+d8)  reg=100 (src:SP)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord63(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWord64(fn): mod=01 (dst:mem+d8)  reg=100 (src:SP)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord64(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord65(fn): mod=01 (dst:mem+d8)  reg=100 (src:SP)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord65(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord66(fn): mod=01 (dst:mem+d8)  reg=100 (src:SP)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord66(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord67(fn): mod=01 (dst:mem+d8)  reg=100 (src:SP)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord67(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord68(fn): mod=01 (dst:mem+d8)  reg=101 (src:BP)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord68(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWord69(fn): mod=01 (dst:mem+d8)  reg=101 (src:BP)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord69(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWord6A(fn): mod=01 (dst:mem+d8)  reg=101 (src:BP)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord6A(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWord6B(fn): mod=01 (dst:mem+d8)  reg=101 (src:BP)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord6B(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWord6C(fn): mod=01 (dst:mem+d8)  reg=101 (src:BP)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord6C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord6D(fn): mod=01 (dst:mem+d8)  reg=101 (src:BP)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord6D(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord6E(fn): mod=01 (dst:mem+d8)  reg=101 (src:BP)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord6E(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord6F(fn): mod=01 (dst:mem+d8)  reg=101 (src:BP)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord6F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord70(fn): mod=01 (dst:mem+d8)  reg=110 (src:SI)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord70(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWord71(fn): mod=01 (dst:mem+d8)  reg=110 (src:SI)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord71(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWord72(fn): mod=01 (dst:mem+d8)  reg=110 (src:SI)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord72(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWord73(fn): mod=01 (dst:mem+d8)  reg=110 (src:SI)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord73(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWord74(fn): mod=01 (dst:mem+d8)  reg=110 (src:SI)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord74(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord75(fn): mod=01 (dst:mem+d8)  reg=110 (src:SI)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord75(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord76(fn): mod=01 (dst:mem+d8)  reg=110 (src:SI)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord76(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord77(fn): mod=01 (dst:mem+d8)  reg=110 (src:SI)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord77(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord78(fn): mod=01 (dst:mem+d8)  reg=111 (src:DI)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord78(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWord79(fn): mod=01 (dst:mem+d8)  reg=111 (src:DI)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord79(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWord7A(fn): mod=01 (dst:mem+d8)  reg=111 (src:DI)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord7A(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWord7B(fn): mod=01 (dst:mem+d8)  reg=111 (src:DI)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord7B(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWord7C(fn): mod=01 (dst:mem+d8)  reg=111 (src:DI)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord7C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord7D(fn): mod=01 (dst:mem+d8)  reg=111 (src:DI)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord7D(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord7E(fn): mod=01 (dst:mem+d8)  reg=111 (src:DI)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord7E(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord7F(fn): mod=01 (dst:mem+d8)  reg=111 (src:DI)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord7F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord80(fn): mod=10 (dst:mem+d16)  reg=000 (src:AX)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord80(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWord81(fn): mod=10 (dst:mem+d16)  reg=000 (src:AX)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord81(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWord82(fn): mod=10 (dst:mem+d16)  reg=000 (src:AX)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord82(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWord83(fn): mod=10 (dst:mem+d16)  reg=000 (src:AX)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord83(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWord84(fn): mod=10 (dst:mem+d16)  reg=000 (src:AX)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord84(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord85(fn): mod=10 (dst:mem+d16)  reg=000 (src:AX)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord85(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord86(fn): mod=10 (dst:mem+d16)  reg=000 (src:AX)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord86(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord87(fn): mod=10 (dst:mem+d16)  reg=000 (src:AX)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord87(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regEAX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord88(fn): mod=10 (dst:mem+d16)  reg=001 (src:CX)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord88(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWord89(fn): mod=10 (dst:mem+d16)  reg=001 (src:CX)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord89(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWord8A(fn): mod=10 (dst:mem+d16)  reg=001 (src:CX)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord8A(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWord8B(fn): mod=10 (dst:mem+d16)  reg=001 (src:CX)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord8B(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWord8C(fn): mod=10 (dst:mem+d16)  reg=001 (src:CX)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord8C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord8D(fn): mod=10 (dst:mem+d16)  reg=001 (src:CX)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord8D(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord8E(fn): mod=10 (dst:mem+d16)  reg=001 (src:CX)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord8E(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord8F(fn): mod=10 (dst:mem+d16)  reg=001 (src:CX)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord8F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regECX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord90(fn): mod=10 (dst:mem+d16)  reg=010 (src:DX)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord90(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWord91(fn): mod=10 (dst:mem+d16)  reg=010 (src:DX)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord91(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWord92(fn): mod=10 (dst:mem+d16)  reg=010 (src:DX)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord92(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWord93(fn): mod=10 (dst:mem+d16)  reg=010 (src:DX)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord93(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWord94(fn): mod=10 (dst:mem+d16)  reg=010 (src:DX)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord94(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord95(fn): mod=10 (dst:mem+d16)  reg=010 (src:DX)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord95(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord96(fn): mod=10 (dst:mem+d16)  reg=010 (src:DX)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord96(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord97(fn): mod=10 (dst:mem+d16)  reg=010 (src:DX)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord97(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regEDX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord98(fn): mod=10 (dst:mem+d16)  reg=011 (src:BX)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord98(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWord99(fn): mod=10 (dst:mem+d16)  reg=011 (src:BX)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord99(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWord9A(fn): mod=10 (dst:mem+d16)  reg=011 (src:BX)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord9A(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWord9B(fn): mod=10 (dst:mem+d16)  reg=011 (src:BX)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord9B(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWord9C(fn): mod=10 (dst:mem+d16)  reg=011 (src:BX)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord9C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord9D(fn): mod=10 (dst:mem+d16)  reg=011 (src:BX)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord9D(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord9E(fn): mod=10 (dst:mem+d16)  reg=011 (src:BX)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord9E(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWord9F(fn): mod=10 (dst:mem+d16)  reg=011 (src:BX)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWord9F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regEBX);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWordA0(fn): mod=10 (dst:mem+d16)  reg=100 (src:SP)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordA0(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWordA1(fn): mod=10 (dst:mem+d16)  reg=100 (src:SP)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordA1(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWordA2(fn): mod=10 (dst:mem+d16)  reg=100 (src:SP)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordA2(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWordA3(fn): mod=10 (dst:mem+d16)  reg=100 (src:SP)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordA3(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWordA4(fn): mod=10 (dst:mem+d16)  reg=100 (src:SP)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordA4(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWordA5(fn): mod=10 (dst:mem+d16)  reg=100 (src:SP)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordA5(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWordA6(fn): mod=10 (dst:mem+d16)  reg=100 (src:SP)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordA6(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWordA7(fn): mod=10 (dst:mem+d16)  reg=100 (src:SP)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordA7(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.getSP());
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWordA8(fn): mod=10 (dst:mem+d16)  reg=101 (src:BP)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordA8(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWordA9(fn): mod=10 (dst:mem+d16)  reg=101 (src:BP)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordA9(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWordAA(fn): mod=10 (dst:mem+d16)  reg=101 (src:BP)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordAA(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWordAB(fn): mod=10 (dst:mem+d16)  reg=101 (src:BP)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordAB(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWordAC(fn): mod=10 (dst:mem+d16)  reg=101 (src:BP)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordAC(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWordAD(fn): mod=10 (dst:mem+d16)  reg=101 (src:BP)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordAD(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWordAE(fn): mod=10 (dst:mem+d16)  reg=101 (src:BP)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordAE(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWordAF(fn): mod=10 (dst:mem+d16)  reg=101 (src:BP)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordAF(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regEBP);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWordB0(fn): mod=10 (dst:mem+d16)  reg=110 (src:SI)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordB0(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWordB1(fn): mod=10 (dst:mem+d16)  reg=110 (src:SI)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordB1(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWordB2(fn): mod=10 (dst:mem+d16)  reg=110 (src:SI)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordB2(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWordB3(fn): mod=10 (dst:mem+d16)  reg=110 (src:SI)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordB3(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWordB4(fn): mod=10 (dst:mem+d16)  reg=110 (src:SI)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordB4(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWordB5(fn): mod=10 (dst:mem+d16)  reg=110 (src:SI)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordB5(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWordB6(fn): mod=10 (dst:mem+d16)  reg=110 (src:SI)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordB6(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWordB7(fn): mod=10 (dst:mem+d16)  reg=110 (src:SI)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordB7(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regESI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWordB8(fn): mod=10 (dst:mem+d16)  reg=111 (src:DI)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordB8(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWordB9(fn): mod=10 (dst:mem+d16)  reg=111 (src:DI)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordB9(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWordBA(fn): mod=10 (dst:mem+d16)  reg=111 (src:DI)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordBA(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModMemWordBB(fn): mod=10 (dst:mem+d16)  reg=111 (src:DI)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordBB(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModMemWordBC(fn): mod=10 (dst:mem+d16)  reg=111 (src:DI)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordBC(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWordBD(fn): mod=10 (dst:mem+d16)  reg=111 (src:DI)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordBD(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWordBE(fn): mod=10 (dst:mem+d16)  reg=111 (src:DI)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordBE(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModMemWordBF(fn): mod=10 (dst:mem+d16)  reg=111 (src:DI)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opModMemWordBF(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regEDI);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                X86ModW.aOpModReg[0xC0],    X86ModW.aOpModReg[0xC8],    X86ModW.aOpModReg[0xD0],    X86ModW.aOpModReg[0xD8],
                X86ModW.aOpModReg[0xE0],    X86ModW.aOpModReg[0xE8],    X86ModW.aOpModReg[0xF0],    X86ModW.aOpModReg[0xF8],
                X86ModW.aOpModReg[0xC1],    X86ModW.aOpModReg[0xC9],    X86ModW.aOpModReg[0xD1],    X86ModW.aOpModReg[0xD9],
                X86ModW.aOpModReg[0xE1],    X86ModW.aOpModReg[0xE9],    X86ModW.aOpModReg[0xF1],    X86ModW.aOpModReg[0xF9],
                X86ModW.aOpModReg[0xC2],    X86ModW.aOpModReg[0xCA],    X86ModW.aOpModReg[0xD2],    X86ModW.aOpModReg[0xDA],
                X86ModW.aOpModReg[0xE2],    X86ModW.aOpModReg[0xEA],    X86ModW.aOpModReg[0xF2],    X86ModW.aOpModReg[0xFA],
                X86ModW.aOpModReg[0xC3],    X86ModW.aOpModReg[0xCB],    X86ModW.aOpModReg[0xD3],    X86ModW.aOpModReg[0xDB],
                X86ModW.aOpModReg[0xE3],    X86ModW.aOpModReg[0xEB],    X86ModW.aOpModReg[0xF3],    X86ModW.aOpModReg[0xFB],
                X86ModW.aOpModReg[0xC4],    X86ModW.aOpModReg[0xCC],    X86ModW.aOpModReg[0xD4],    X86ModW.aOpModReg[0xDC],
                X86ModW.aOpModReg[0xE4],    X86ModW.aOpModReg[0xEC],    X86ModW.aOpModReg[0xF4],    X86ModW.aOpModReg[0xFC],
                X86ModW.aOpModReg[0xC5],    X86ModW.aOpModReg[0xCD],    X86ModW.aOpModReg[0xD5],    X86ModW.aOpModReg[0xDD],
                X86ModW.aOpModReg[0xE5],    X86ModW.aOpModReg[0xED],    X86ModW.aOpModReg[0xF5],    X86ModW.aOpModReg[0xFD],
                X86ModW.aOpModReg[0xC6],    X86ModW.aOpModReg[0xCE],    X86ModW.aOpModReg[0xD6],    X86ModW.aOpModReg[0xDE],
                X86ModW.aOpModReg[0xE6],    X86ModW.aOpModReg[0xEE],    X86ModW.aOpModReg[0xF6],    X86ModW.aOpModReg[0xFE],
                X86ModW.aOpModReg[0xC7],    X86ModW.aOpModReg[0xCF],    X86ModW.aOpModReg[0xD7],    X86ModW.aOpModReg[0xDF],
                X86ModW.aOpModReg[0xE7],    X86ModW.aOpModReg[0xEF],    X86ModW.aOpModReg[0xF7],    X86ModW.aOpModReg[0xFF]
            ];
            
            X86ModW.aOpModGrp = [
                /**
                 * opModGrpWord00(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord00(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpWord01(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord01(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpWord02(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord02(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpWord03(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord03(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpWord04(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord04(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpWord05(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord05(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpWord06(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord06(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModGrpWord07(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord07(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpWord08(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord08(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpWord09(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord09(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpWord0A(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord0A(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpWord0B(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord0B(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpWord0C(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord0C(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpWord0D(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord0D(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpWord0E(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord0E(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModGrpWord0F(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord0F(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpWord10(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord10(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpWord11(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord11(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpWord12(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord12(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpWord13(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord13(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpWord14(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord14(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpWord15(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord15(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpWord16(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord16(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModGrpWord17(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord17(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpWord18(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord18(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpWord19(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord19(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpWord1A(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord1A(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpWord1B(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord1B(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpWord1C(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord1C(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpWord1D(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord1D(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpWord1E(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord1E(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModGrpWord1F(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord1F(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpWord20(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord20(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpWord21(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord21(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpWord22(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord22(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpWord23(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord23(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpWord24(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord24(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpWord25(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord25(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpWord26(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord26(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModGrpWord27(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord27(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpWord28(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord28(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpWord29(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord29(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpWord2A(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord2A(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpWord2B(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord2B(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpWord2C(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord2C(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpWord2D(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord2D(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpWord2E(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord2E(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModGrpWord2F(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord2F(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpWord30(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord30(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpWord31(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord31(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpWord32(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord32(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpWord33(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord33(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpWord34(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord34(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpWord35(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord35(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpWord36(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord36(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModGrpWord37(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord37(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpWord38(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord38(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpWord39(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord39(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpWord3A(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord3A(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opModGrpWord3B(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord3B(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opModGrpWord3C(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord3C(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpWord3D(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord3D(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpWord3E(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord3E(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opModGrpWord3F(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord3F(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opModGrpWord40(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord40(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWord41(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord41(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWord42(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord42(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWord43(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord43(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWord44(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord44(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord45(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord45(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord46(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord46(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord47(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord47(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord48(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord48(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWord49(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord49(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWord4A(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord4A(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWord4B(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord4B(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWord4C(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord4C(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord4D(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord4D(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord4E(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord4E(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord4F(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord4F(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord50(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord50(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWord51(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord51(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWord52(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord52(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWord53(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord53(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWord54(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord54(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord55(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord55(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord56(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord56(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord57(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord57(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord58(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord58(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWord59(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord59(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWord5A(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord5A(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWord5B(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord5B(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWord5C(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord5C(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord5D(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord5D(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord5E(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord5E(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord5F(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord5F(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord60(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord60(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWord61(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord61(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWord62(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord62(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWord63(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord63(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWord64(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord64(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord65(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord65(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord66(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord66(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord67(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord67(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord68(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord68(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWord69(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord69(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWord6A(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord6A(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWord6B(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord6B(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWord6C(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord6C(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord6D(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord6D(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord6E(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord6E(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord6F(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord6F(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord70(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord70(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWord71(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord71(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWord72(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord72(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWord73(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord73(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWord74(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord74(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord75(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord75(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord76(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord76(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord77(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord77(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord78(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord78(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWord79(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord79(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWord7A(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord7A(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWord7B(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord7B(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWord7C(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord7C(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord7D(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord7D(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord7E(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord7E(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord7F(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord7F(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord80(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord80(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWord81(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord81(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWord82(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord82(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWord83(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord83(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWord84(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord84(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord85(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord85(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord86(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord86(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord87(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord87(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord88(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord88(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWord89(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord89(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWord8A(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord8A(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWord8B(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord8B(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWord8C(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord8C(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord8D(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord8D(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord8E(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord8E(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord8F(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord8F(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord90(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord90(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWord91(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord91(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWord92(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord92(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWord93(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord93(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWord94(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord94(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord95(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord95(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord96(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord96(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord97(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord97(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord98(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord98(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWord99(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord99(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWord9A(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord9A(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWord9B(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord9B(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWord9C(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord9C(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord9D(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord9D(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord9E(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord9E(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWord9F(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWord9F(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWordA0(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordA0(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWordA1(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordA1(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWordA2(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordA2(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWordA3(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordA3(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWordA4(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordA4(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWordA5(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordA5(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWordA6(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordA6(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWordA7(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordA7(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWordA8(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordA8(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWordA9(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordA9(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWordAA(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordAA(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWordAB(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordAB(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWordAC(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordAC(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWordAD(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordAD(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWordAE(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordAE(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWordAF(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordAF(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWordB0(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordB0(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWordB1(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordB1(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWordB2(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordB2(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWordB3(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordB3(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWordB4(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordB4(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWordB5(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordB5(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWordB6(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordB6(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWordB7(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordB7(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWordB8(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordB8(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWordB9(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordB9(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWordBA(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordBA(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opModGrpWordBB(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordBB(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opModGrpWordBC(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordBC(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWordBD(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordBD(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWordBE(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordBE(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWordBF(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordBF(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opModGrpWordC0(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordC0(afnGrp, fnSrc) {
                    this.regEAX = afnGrp[0].call(this, this.regEAX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordC1(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordC1(afnGrp, fnSrc) {
                    this.regECX = afnGrp[0].call(this, this.regECX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordC2(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordC2(afnGrp, fnSrc) {
                    this.regEDX = afnGrp[0].call(this, this.regEDX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordC3(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordC3(afnGrp, fnSrc) {
                    this.regEBX = afnGrp[0].call(this, this.regEBX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordC4(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordC4(afnGrp, fnSrc) {
                    this.setSP(afnGrp[0].call(this, this.getSP(), fnSrc.call(this)));
                },
                /**
                 * opModGrpWordC5(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordC5(afnGrp, fnSrc) {
                    this.regEBP = afnGrp[0].call(this, this.regEBP, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordC6(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordC6(afnGrp, fnSrc) {
                    this.regESI = afnGrp[0].call(this, this.regESI, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordC7(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordC7(afnGrp, fnSrc) {
                    this.regEDI = afnGrp[0].call(this, this.regEDI, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordC8(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordC8(afnGrp, fnSrc) {
                    this.regEAX = afnGrp[1].call(this, this.regEAX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordC9(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordC9(afnGrp, fnSrc) {
                    this.regECX = afnGrp[1].call(this, this.regECX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordCA(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordCA(afnGrp, fnSrc) {
                    this.regEDX = afnGrp[1].call(this, this.regEDX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordCB(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordCB(afnGrp, fnSrc) {
                    this.regEBX = afnGrp[1].call(this, this.regEBX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordCC(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordCC(afnGrp, fnSrc) {
                    this.setSP(afnGrp[1].call(this, this.getSP(), fnSrc.call(this)));
                },
                /**
                 * opModGrpWordCD(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordCD(afnGrp, fnSrc) {
                    this.regEBP = afnGrp[1].call(this, this.regEBP, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordCE(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordCE(afnGrp, fnSrc) {
                    this.regESI = afnGrp[1].call(this, this.regESI, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordCF(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordCF(afnGrp, fnSrc) {
                    this.regEDI = afnGrp[1].call(this, this.regEDI, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordD0(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordD0(afnGrp, fnSrc) {
                    this.regEAX = afnGrp[2].call(this, this.regEAX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordD1(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordD1(afnGrp, fnSrc) {
                    this.regECX = afnGrp[2].call(this, this.regECX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordD2(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordD2(afnGrp, fnSrc) {
                    this.regEDX = afnGrp[2].call(this, this.regEDX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordD3(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordD3(afnGrp, fnSrc) {
                    this.regEBX = afnGrp[2].call(this, this.regEBX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordD4(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordD4(afnGrp, fnSrc) {
                    this.setSP(afnGrp[2].call(this, this.getSP(), fnSrc.call(this)));
                },
                /**
                 * opModGrpWordD5(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordD5(afnGrp, fnSrc) {
                    this.regEBP = afnGrp[2].call(this, this.regEBP, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordD6(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordD6(afnGrp, fnSrc) {
                    this.regESI = afnGrp[2].call(this, this.regESI, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordD7(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordD7(afnGrp, fnSrc) {
                    this.regEDI = afnGrp[2].call(this, this.regEDI, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordD8(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordD8(afnGrp, fnSrc) {
                    this.regEAX = afnGrp[3].call(this, this.regEAX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordD9(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordD9(afnGrp, fnSrc) {
                    this.regECX = afnGrp[3].call(this, this.regECX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordDA(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordDA(afnGrp, fnSrc) {
                    this.regEDX = afnGrp[3].call(this, this.regEDX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordDB(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordDB(afnGrp, fnSrc) {
                    this.regEBX = afnGrp[3].call(this, this.regEBX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordDC(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordDC(afnGrp, fnSrc) {
                    this.setSP(afnGrp[3].call(this, this.getSP(), fnSrc.call(this)));
                },
                /**
                 * opModGrpWordDD(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordDD(afnGrp, fnSrc) {
                    this.regEBP = afnGrp[3].call(this, this.regEBP, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordDE(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordDE(afnGrp, fnSrc) {
                    this.regESI = afnGrp[3].call(this, this.regESI, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordDF(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordDF(afnGrp, fnSrc) {
                    this.regEDI = afnGrp[3].call(this, this.regEDI, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordE0(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordE0(afnGrp, fnSrc) {
                    this.regEAX = afnGrp[4].call(this, this.regEAX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordE1(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordE1(afnGrp, fnSrc) {
                    this.regECX = afnGrp[4].call(this, this.regECX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordE2(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordE2(afnGrp, fnSrc) {
                    this.regEDX = afnGrp[4].call(this, this.regEDX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordE3(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordE3(afnGrp, fnSrc) {
                    this.regEBX = afnGrp[4].call(this, this.regEBX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordE4(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordE4(afnGrp, fnSrc) {
                    this.setSP(afnGrp[4].call(this, this.getSP(), fnSrc.call(this)));
                },
                /**
                 * opModGrpWordE5(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordE5(afnGrp, fnSrc) {
                    this.regEBP = afnGrp[4].call(this, this.regEBP, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordE6(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordE6(afnGrp, fnSrc) {
                    this.regESI = afnGrp[4].call(this, this.regESI, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordE7(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordE7(afnGrp, fnSrc) {
                    this.regEDI = afnGrp[4].call(this, this.regEDI, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordE8(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordE8(afnGrp, fnSrc) {
                    this.regEAX = afnGrp[5].call(this, this.regEAX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordE9(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordE9(afnGrp, fnSrc) {
                    this.regECX = afnGrp[5].call(this, this.regECX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordEA(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordEA(afnGrp, fnSrc) {
                    this.regEDX = afnGrp[5].call(this, this.regEDX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordEB(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordEB(afnGrp, fnSrc) {
                    this.regEBX = afnGrp[5].call(this, this.regEBX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordEC(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordEC(afnGrp, fnSrc) {
                    this.setSP(afnGrp[5].call(this, this.getSP(), fnSrc.call(this)));
                },
                /**
                 * opModGrpWordED(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordED(afnGrp, fnSrc) {
                    this.regEBP = afnGrp[5].call(this, this.regEBP, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordEE(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordEE(afnGrp, fnSrc) {
                    this.regESI = afnGrp[5].call(this, this.regESI, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordEF(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordEF(afnGrp, fnSrc) {
                    this.regEDI = afnGrp[5].call(this, this.regEDI, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordF0(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordF0(afnGrp, fnSrc) {
                    this.regEAX = afnGrp[6].call(this, this.regEAX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordF1(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordF1(afnGrp, fnSrc) {
                    this.regECX = afnGrp[6].call(this, this.regECX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordF2(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordF2(afnGrp, fnSrc) {
                    this.regEDX = afnGrp[6].call(this, this.regEDX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordF3(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordF3(afnGrp, fnSrc) {
                    this.regEBX = afnGrp[6].call(this, this.regEBX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordF4(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordF4(afnGrp, fnSrc) {
                    this.setSP(afnGrp[6].call(this, this.getSP(), fnSrc.call(this)));
                },
                /**
                 * opModGrpWordF5(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordF5(afnGrp, fnSrc) {
                    this.regEBP = afnGrp[6].call(this, this.regEBP, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordF6(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordF6(afnGrp, fnSrc) {
                    this.regESI = afnGrp[6].call(this, this.regESI, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordF7(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordF7(afnGrp, fnSrc) {
                    this.regEDI = afnGrp[6].call(this, this.regEDI, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordF8(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordF8(afnGrp, fnSrc) {
                    this.regEAX = afnGrp[7].call(this, this.regEAX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordF9(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordF9(afnGrp, fnSrc) {
                    this.regECX = afnGrp[7].call(this, this.regECX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordFA(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordFA(afnGrp, fnSrc) {
                    this.regEDX = afnGrp[7].call(this, this.regEDX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordFB(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordFB(afnGrp, fnSrc) {
                    this.regEBX = afnGrp[7].call(this, this.regEBX, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordFC(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordFC(afnGrp, fnSrc) {
                    this.setSP(afnGrp[7].call(this, this.getSP(), fnSrc.call(this)));
                },
                /**
                 * opModGrpWordFD(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordFD(afnGrp, fnSrc) {
                    this.regEBP = afnGrp[7].call(this, this.regEBP, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordFE(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordFE(afnGrp, fnSrc) {
                    this.regESI = afnGrp[7].call(this, this.regESI, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opModGrpWordFF(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opModGrpWordFF(afnGrp, fnSrc) {
                    this.regEDI = afnGrp[7].call(this, this.regEDI, fnSrc.call(this));
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                }
            ];
            
            if (typeof module !== 'undefined') module.exports = X86ModW;
            
          • x86modw16.js
            /**
             * @fileoverview Implements PCjs 80386 ModRegRM word decoders with 16-bit addressing.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Sep-05
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var X86         = require("./x86");
            }
            
            var X86ModW16 = {};
            
            X86ModW16.aOpModReg = [
                /**
                 * opMod16RegWord00(fn): mod=00 (src:mem)  reg=000 (dst:EAX)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord00(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegWord01(fn): mod=00 (src:mem)  reg=000 (dst:EAX)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord01(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegWord02(fn): mod=00 (src:mem)  reg=000 (dst:EAX)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord02(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegWord03(fn): mod=00 (src:mem)  reg=000 (dst:EAX)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord03(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegWord04(fn): mod=00 (src:mem)  reg=000 (dst:EAX)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord04(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regESI));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegWord05(fn): mod=00 (src:mem)  reg=000 (dst:EAX)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord05(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEDI));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegWord06(fn): mod=00 (src:mem)  reg=000 (dst:EAX)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord06(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16RegWord07(fn): mod=00 (src:mem)  reg=000 (dst:EAX)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord07(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegWord08(fn): mod=00 (src:mem)  reg=001 (dst:ECX)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord08(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegWord09(fn): mod=00 (src:mem)  reg=001 (dst:ECX)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord09(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegWord0A(fn): mod=00 (src:mem)  reg=001 (dst:ECX)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord0A(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegWord0B(fn): mod=00 (src:mem)  reg=001 (dst:ECX)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord0B(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegWord0C(fn): mod=00 (src:mem)  reg=001 (dst:ECX)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord0C(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regESI));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegWord0D(fn): mod=00 (src:mem)  reg=001 (dst:ECX)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord0D(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEDI));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegWord0E(fn): mod=00 (src:mem)  reg=001 (dst:ECX)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord0E(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.getIPAddr()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16RegWord0F(fn): mod=00 (src:mem)  reg=001 (dst:ECX)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord0F(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegWord10(fn): mod=00 (src:mem)  reg=010 (dst:EDX)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord10(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegWord11(fn): mod=00 (src:mem)  reg=010 (dst:EDX)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord11(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegWord12(fn): mod=00 (src:mem)  reg=010 (dst:EDX)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord12(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegWord13(fn): mod=00 (src:mem)  reg=010 (dst:EDX)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord13(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegWord14(fn): mod=00 (src:mem)  reg=010 (dst:EDX)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord14(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regESI));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegWord15(fn): mod=00 (src:mem)  reg=010 (dst:EDX)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord15(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEDI));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegWord16(fn): mod=00 (src:mem)  reg=010 (dst:EDX)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord16(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16RegWord17(fn): mod=00 (src:mem)  reg=010 (dst:EDX)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord17(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegWord18(fn): mod=00 (src:mem)  reg=011 (dst:EBX)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord18(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegWord19(fn): mod=00 (src:mem)  reg=011 (dst:EBX)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord19(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegWord1A(fn): mod=00 (src:mem)  reg=011 (dst:EBX)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord1A(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegWord1B(fn): mod=00 (src:mem)  reg=011 (dst:EBX)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord1B(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegWord1C(fn): mod=00 (src:mem)  reg=011 (dst:EBX)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord1C(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regESI));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegWord1D(fn): mod=00 (src:mem)  reg=011 (dst:EBX)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord1D(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEDI));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegWord1E(fn): mod=00 (src:mem)  reg=011 (dst:EBX)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord1E(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16RegWord1F(fn): mod=00 (src:mem)  reg=011 (dst:EBX)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord1F(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegWord20(fn): mod=00 (src:mem)  reg=100 (dst:ESP)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord20(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regEBX + this.regESI));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegWord21(fn): mod=00 (src:mem)  reg=100 (dst:ESP)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord21(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegWord22(fn): mod=00 (src:mem)  reg=100 (dst:ESP)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord22(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegWord23(fn): mod=00 (src:mem)  reg=100 (dst:ESP)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord23(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegWord24(fn): mod=00 (src:mem)  reg=100 (dst:ESP)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord24(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regESI));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegWord25(fn): mod=00 (src:mem)  reg=100 (dst:ESP)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord25(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regEDI));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegWord26(fn): mod=00 (src:mem)  reg=100 (dst:ESP)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord26(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.getIPAddr()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16RegWord27(fn): mod=00 (src:mem)  reg=100 (dst:ESP)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord27(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regEBX));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegWord28(fn): mod=00 (src:mem)  reg=101 (dst:EBP)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord28(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX + this.regESI));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegWord29(fn): mod=00 (src:mem)  reg=101 (dst:EBP)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord29(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegWord2A(fn): mod=00 (src:mem)  reg=101 (dst:EBP)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord2A(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegWord2B(fn): mod=00 (src:mem)  reg=101 (dst:EBP)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord2B(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegWord2C(fn): mod=00 (src:mem)  reg=101 (dst:EBP)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord2C(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regESI));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegWord2D(fn): mod=00 (src:mem)  reg=101 (dst:EBP)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord2D(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEDI));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegWord2E(fn): mod=00 (src:mem)  reg=101 (dst:EBP)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord2E(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.getIPAddr()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16RegWord2F(fn): mod=00 (src:mem)  reg=101 (dst:EBP)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord2F(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegWord30(fn): mod=00 (src:mem)  reg=110 (dst:ESI)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord30(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX + this.regESI));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegWord31(fn): mod=00 (src:mem)  reg=110 (dst:ESI)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord31(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegWord32(fn): mod=00 (src:mem)  reg=110 (dst:ESI)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord32(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegWord33(fn): mod=00 (src:mem)  reg=110 (dst:ESI)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord33(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegWord34(fn): mod=00 (src:mem)  reg=110 (dst:ESI)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord34(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regESI));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegWord35(fn): mod=00 (src:mem)  reg=110 (dst:ESI)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord35(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEDI));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegWord36(fn): mod=00 (src:mem)  reg=110 (dst:ESI)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord36(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.getIPAddr()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16RegWord37(fn): mod=00 (src:mem)  reg=110 (dst:ESI)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord37(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegWord38(fn): mod=00 (src:mem)  reg=111 (dst:EDI)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord38(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX + this.regESI));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegWord39(fn): mod=00 (src:mem)  reg=111 (dst:EDI)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord39(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegWord3A(fn): mod=00 (src:mem)  reg=111 (dst:EDI)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord3A(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16RegWord3B(fn): mod=00 (src:mem)  reg=111 (dst:EDI)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord3B(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16RegWord3C(fn): mod=00 (src:mem)  reg=111 (dst:EDI)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord3C(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regESI));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegWord3D(fn): mod=00 (src:mem)  reg=111 (dst:EDI)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord3D(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEDI));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegWord3E(fn): mod=00 (src:mem)  reg=111 (dst:EDI)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord3E(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.getIPAddr()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16RegWord3F(fn): mod=00 (src:mem)  reg=111 (dst:EDI)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord3F(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16RegWord40(fn): mod=01 (src:mem+d8)  reg=000 (dst:EAX)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord40(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWord41(fn): mod=01 (src:mem+d8)  reg=000 (dst:EAX)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord41(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWord42(fn): mod=01 (src:mem+d8)  reg=000 (dst:EAX)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord42(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWord43(fn): mod=01 (src:mem+d8)  reg=000 (dst:EAX)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord43(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWord44(fn): mod=01 (src:mem+d8)  reg=000 (dst:EAX)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord44(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord45(fn): mod=01 (src:mem+d8)  reg=000 (dst:EAX)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord45(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord46(fn): mod=01 (src:mem+d8)  reg=000 (dst:EAX)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord46(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord47(fn): mod=01 (src:mem+d8)  reg=000 (dst:EAX)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord47(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord48(fn): mod=01 (src:mem+d8)  reg=001 (dst:ECX)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord48(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWord49(fn): mod=01 (src:mem+d8)  reg=001 (dst:ECX)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord49(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWord4A(fn): mod=01 (src:mem+d8)  reg=001 (dst:ECX)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord4A(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWord4B(fn): mod=01 (src:mem+d8)  reg=001 (dst:ECX)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord4B(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWord4C(fn): mod=01 (src:mem+d8)  reg=001 (dst:ECX)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord4C(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord4D(fn): mod=01 (src:mem+d8)  reg=001 (dst:ECX)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord4D(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord4E(fn): mod=01 (src:mem+d8)  reg=001 (dst:ECX)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord4E(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord4F(fn): mod=01 (src:mem+d8)  reg=001 (dst:ECX)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord4F(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord50(fn): mod=01 (src:mem+d8)  reg=010 (dst:EDX)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord50(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWord51(fn): mod=01 (src:mem+d8)  reg=010 (dst:EDX)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord51(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWord52(fn): mod=01 (src:mem+d8)  reg=010 (dst:EDX)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord52(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWord53(fn): mod=01 (src:mem+d8)  reg=010 (dst:EDX)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord53(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWord54(fn): mod=01 (src:mem+d8)  reg=010 (dst:EDX)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord54(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord55(fn): mod=01 (src:mem+d8)  reg=010 (dst:EDX)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord55(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord56(fn): mod=01 (src:mem+d8)  reg=010 (dst:EDX)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord56(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord57(fn): mod=01 (src:mem+d8)  reg=010 (dst:EDX)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord57(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord58(fn): mod=01 (src:mem+d8)  reg=011 (dst:EBX)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord58(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWord59(fn): mod=01 (src:mem+d8)  reg=011 (dst:EBX)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord59(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWord5A(fn): mod=01 (src:mem+d8)  reg=011 (dst:EBX)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord5A(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWord5B(fn): mod=01 (src:mem+d8)  reg=011 (dst:EBX)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord5B(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWord5C(fn): mod=01 (src:mem+d8)  reg=011 (dst:EBX)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord5C(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord5D(fn): mod=01 (src:mem+d8)  reg=011 (dst:EBX)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord5D(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord5E(fn): mod=01 (src:mem+d8)  reg=011 (dst:EBX)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord5E(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord5F(fn): mod=01 (src:mem+d8)  reg=011 (dst:EBX)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord5F(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord60(fn): mod=01 (src:mem+d8)  reg=100 (dst:ESP)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord60(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWord61(fn): mod=01 (src:mem+d8)  reg=100 (dst:ESP)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord61(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWord62(fn): mod=01 (src:mem+d8)  reg=100 (dst:ESP)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord62(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWord63(fn): mod=01 (src:mem+d8)  reg=100 (dst:ESP)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord63(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWord64(fn): mod=01 (src:mem+d8)  reg=100 (dst:ESP)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord64(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord65(fn): mod=01 (src:mem+d8)  reg=100 (dst:ESP)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord65(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord66(fn): mod=01 (src:mem+d8)  reg=100 (dst:ESP)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord66(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord67(fn): mod=01 (src:mem+d8)  reg=100 (dst:ESP)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord67(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord68(fn): mod=01 (src:mem+d8)  reg=101 (dst:EBP)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord68(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWord69(fn): mod=01 (src:mem+d8)  reg=101 (dst:EBP)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord69(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWord6A(fn): mod=01 (src:mem+d8)  reg=101 (dst:EBP)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord6A(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWord6B(fn): mod=01 (src:mem+d8)  reg=101 (dst:EBP)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord6B(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWord6C(fn): mod=01 (src:mem+d8)  reg=101 (dst:EBP)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord6C(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord6D(fn): mod=01 (src:mem+d8)  reg=101 (dst:EBP)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord6D(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord6E(fn): mod=01 (src:mem+d8)  reg=101 (dst:EBP)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord6E(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord6F(fn): mod=01 (src:mem+d8)  reg=101 (dst:EBP)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord6F(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord70(fn): mod=01 (src:mem+d8)  reg=110 (dst:ESI)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord70(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWord71(fn): mod=01 (src:mem+d8)  reg=110 (dst:ESI)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord71(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWord72(fn): mod=01 (src:mem+d8)  reg=110 (dst:ESI)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord72(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWord73(fn): mod=01 (src:mem+d8)  reg=110 (dst:ESI)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord73(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWord74(fn): mod=01 (src:mem+d8)  reg=110 (dst:ESI)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord74(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord75(fn): mod=01 (src:mem+d8)  reg=110 (dst:ESI)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord75(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord76(fn): mod=01 (src:mem+d8)  reg=110 (dst:ESI)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord76(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord77(fn): mod=01 (src:mem+d8)  reg=110 (dst:ESI)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord77(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord78(fn): mod=01 (src:mem+d8)  reg=111 (dst:EDI)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord78(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWord79(fn): mod=01 (src:mem+d8)  reg=111 (dst:EDI)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord79(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWord7A(fn): mod=01 (src:mem+d8)  reg=111 (dst:EDI)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord7A(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWord7B(fn): mod=01 (src:mem+d8)  reg=111 (dst:EDI)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord7B(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWord7C(fn): mod=01 (src:mem+d8)  reg=111 (dst:EDI)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord7C(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord7D(fn): mod=01 (src:mem+d8)  reg=111 (dst:EDI)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord7D(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord7E(fn): mod=01 (src:mem+d8)  reg=111 (dst:EDI)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord7E(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord7F(fn): mod=01 (src:mem+d8)  reg=111 (dst:EDI)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord7F(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord80(fn): mod=10 (src:mem+d16)  reg=000 (dst:EAX)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord80(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWord81(fn): mod=10 (src:mem+d16)  reg=000 (dst:EAX)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord81(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWord82(fn): mod=10 (src:mem+d16)  reg=000 (dst:EAX)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord82(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWord83(fn): mod=10 (src:mem+d16)  reg=000 (dst:EAX)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord83(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWord84(fn): mod=10 (src:mem+d16)  reg=000 (dst:EAX)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord84(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regESI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord85(fn): mod=10 (src:mem+d16)  reg=000 (dst:EAX)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord85(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord86(fn): mod=10 (src:mem+d16)  reg=000 (dst:EAX)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord86(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord87(fn): mod=10 (src:mem+d16)  reg=000 (dst:EAX)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord87(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord88(fn): mod=10 (src:mem+d16)  reg=001 (dst:ECX)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord88(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWord89(fn): mod=10 (src:mem+d16)  reg=001 (dst:ECX)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord89(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWord8A(fn): mod=10 (src:mem+d16)  reg=001 (dst:ECX)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord8A(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWord8B(fn): mod=10 (src:mem+d16)  reg=001 (dst:ECX)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord8B(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWord8C(fn): mod=10 (src:mem+d16)  reg=001 (dst:ECX)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord8C(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regESI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord8D(fn): mod=10 (src:mem+d16)  reg=001 (dst:ECX)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord8D(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord8E(fn): mod=10 (src:mem+d16)  reg=001 (dst:ECX)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord8E(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPAddr()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord8F(fn): mod=10 (src:mem+d16)  reg=001 (dst:ECX)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord8F(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPAddr()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord90(fn): mod=10 (src:mem+d16)  reg=010 (dst:EDX)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord90(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWord91(fn): mod=10 (src:mem+d16)  reg=010 (dst:EDX)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord91(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWord92(fn): mod=10 (src:mem+d16)  reg=010 (dst:EDX)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord92(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWord93(fn): mod=10 (src:mem+d16)  reg=010 (dst:EDX)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord93(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWord94(fn): mod=10 (src:mem+d16)  reg=010 (dst:EDX)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord94(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regESI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord95(fn): mod=10 (src:mem+d16)  reg=010 (dst:EDX)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord95(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord96(fn): mod=10 (src:mem+d16)  reg=010 (dst:EDX)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord96(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord97(fn): mod=10 (src:mem+d16)  reg=010 (dst:EDX)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord97(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord98(fn): mod=10 (src:mem+d16)  reg=011 (dst:EBX)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord98(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWord99(fn): mod=10 (src:mem+d16)  reg=011 (dst:EBX)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord99(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWord9A(fn): mod=10 (src:mem+d16)  reg=011 (dst:EBX)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord9A(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWord9B(fn): mod=10 (src:mem+d16)  reg=011 (dst:EBX)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord9B(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWord9C(fn): mod=10 (src:mem+d16)  reg=011 (dst:EBX)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord9C(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regESI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord9D(fn): mod=10 (src:mem+d16)  reg=011 (dst:EBX)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord9D(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord9E(fn): mod=10 (src:mem+d16)  reg=011 (dst:EBX)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord9E(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWord9F(fn): mod=10 (src:mem+d16)  reg=011 (dst:EBX)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWord9F(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWordA0(fn): mod=10 (src:mem+d16)  reg=100 (dst:ESP)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordA0(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPAddr()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWordA1(fn): mod=10 (src:mem+d16)  reg=100 (dst:ESP)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordA1(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPAddr()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWordA2(fn): mod=10 (src:mem+d16)  reg=100 (dst:ESP)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordA2(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPAddr()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWordA3(fn): mod=10 (src:mem+d16)  reg=100 (dst:ESP)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordA3(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWordA4(fn): mod=10 (src:mem+d16)  reg=100 (dst:ESP)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordA4(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regESI + this.getIPAddr()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWordA5(fn): mod=10 (src:mem+d16)  reg=100 (dst:ESP)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordA5(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regEDI + this.getIPAddr()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWordA6(fn): mod=10 (src:mem+d16)  reg=100 (dst:ESP)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordA6(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPAddr()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWordA7(fn): mod=10 (src:mem+d16)  reg=100 (dst:ESP)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordA7(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regEBX + this.getIPAddr()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWordA8(fn): mod=10 (src:mem+d16)  reg=101 (dst:EBP)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordA8(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPAddr()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWordA9(fn): mod=10 (src:mem+d16)  reg=101 (dst:EBP)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordA9(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPAddr()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWordAA(fn): mod=10 (src:mem+d16)  reg=101 (dst:EBP)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordAA(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPAddr()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWordAB(fn): mod=10 (src:mem+d16)  reg=101 (dst:EBP)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordAB(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWordAC(fn): mod=10 (src:mem+d16)  reg=101 (dst:EBP)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordAC(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regESI + this.getIPAddr()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWordAD(fn): mod=10 (src:mem+d16)  reg=101 (dst:EBP)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordAD(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEDI + this.getIPAddr()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWordAE(fn): mod=10 (src:mem+d16)  reg=101 (dst:EBP)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordAE(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPAddr()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWordAF(fn): mod=10 (src:mem+d16)  reg=101 (dst:EBP)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordAF(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX + this.getIPAddr()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWordB0(fn): mod=10 (src:mem+d16)  reg=110 (dst:ESI)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordB0(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPAddr()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWordB1(fn): mod=10 (src:mem+d16)  reg=110 (dst:ESI)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordB1(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPAddr()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWordB2(fn): mod=10 (src:mem+d16)  reg=110 (dst:ESI)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordB2(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPAddr()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWordB3(fn): mod=10 (src:mem+d16)  reg=110 (dst:ESI)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordB3(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWordB4(fn): mod=10 (src:mem+d16)  reg=110 (dst:ESI)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordB4(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regESI + this.getIPAddr()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWordB5(fn): mod=10 (src:mem+d16)  reg=110 (dst:ESI)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordB5(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEDI + this.getIPAddr()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWordB6(fn): mod=10 (src:mem+d16)  reg=110 (dst:ESI)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordB6(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPAddr()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWordB7(fn): mod=10 (src:mem+d16)  reg=110 (dst:ESI)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordB7(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX + this.getIPAddr()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWordB8(fn): mod=10 (src:mem+d16)  reg=111 (dst:EDI)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordB8(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPAddr()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWordB9(fn): mod=10 (src:mem+d16)  reg=111 (dst:EDI)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordB9(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPAddr()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWordBA(fn): mod=10 (src:mem+d16)  reg=111 (dst:EDI)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordBA(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPAddr()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16RegWordBB(fn): mod=10 (src:mem+d16)  reg=111 (dst:EDI)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordBB(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16RegWordBC(fn): mod=10 (src:mem+d16)  reg=111 (dst:EDI)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordBC(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regESI + this.getIPAddr()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWordBD(fn): mod=10 (src:mem+d16)  reg=111 (dst:EDI)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordBD(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEDI + this.getIPAddr()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWordBE(fn): mod=10 (src:mem+d16)  reg=111 (dst:EDI)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordBE(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPAddr()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWordBF(fn): mod=10 (src:mem+d16)  reg=111 (dst:EDI)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordBF(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX + this.getIPAddr()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16RegWordC0(fn): mod=11 (src:reg)  reg=000 (dst:EAX)  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordC0(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.regEAX & this.dataMask);
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                },
                /**
                 * opMod16RegWordC1(fn): mod=11 (src:reg)  reg=000 (dst:EAX)  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordC1(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.regECX & this.dataMask);
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiCL; this.backTrack.btiAH = this.backTrack.btiCH;
                    }
                },
                /**
                 * opMod16RegWordC2(fn): mod=11 (src:reg)  reg=000 (dst:EAX)  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordC2(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.regEDX & this.dataMask);
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiDL; this.backTrack.btiAH = this.backTrack.btiDH;
                    }
                },
                /**
                 * opMod16RegWordC3(fn): mod=11 (src:reg)  reg=000 (dst:EAX)  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordC3(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.regEBX & this.dataMask);
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiBL; this.backTrack.btiAH = this.backTrack.btiBH;
                    }
                },
                /**
                 * opMod16RegWordC4(fn): mod=11 (src:reg)  reg=000 (dst:EAX)  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordC4(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getSP() & this.dataMask);
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = X86.BACKTRACK.SP_LO; this.backTrack.btiAH = X86.BACKTRACK.SP_HI;
                    }
                },
                /**
                 * opMod16RegWordC5(fn): mod=11 (src:reg)  reg=000 (dst:EAX)  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordC5(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.regEBP & this.dataMask);
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiBPLo; this.backTrack.btiAH = this.backTrack.btiBPHi;
                    }
                },
                /**
                 * opMod16RegWordC6(fn): mod=11 (src:reg)  reg=000 (dst:EAX)  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordC6(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.regESI & this.dataMask);
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiSILo; this.backTrack.btiAH = this.backTrack.btiSIHi;
                    }
                },
                /**
                 * opMod16RegWordC7(fn): mod=11 (src:reg)  reg=000 (dst:EAX)  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordC7(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.regEDI & this.dataMask);
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiDILo; this.backTrack.btiAH = this.backTrack.btiDIHi;
                    }
                },
                /**
                 * opMod16RegWordC8(fn): mod=11 (src:reg)  reg=001 (dst:ECX)  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordC8(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.regEAX & this.dataMask);
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiAL; this.backTrack.btiCH = this.backTrack.btiAH;
                    }
                },
                /**
                 * opMod16RegWordC9(fn): mod=11 (src:reg)  reg=001 (dst:ECX)  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordC9(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.regECX & this.dataMask);
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                },
                /**
                 * opMod16RegWordCA(fn): mod=11 (src:reg)  reg=001 (dst:ECX)  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordCA(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.regEDX & this.dataMask);
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiDL; this.backTrack.btiCH = this.backTrack.btiDH;
                    }
                },
                /**
                 * opMod16RegWordCB(fn): mod=11 (src:reg)  reg=001 (dst:ECX)  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordCB(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.regEBX & this.dataMask);
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiBL; this.backTrack.btiCH = this.backTrack.btiBH;
                    }
                },
                /**
                 * opMod16RegWordCC(fn): mod=11 (src:reg)  reg=001 (dst:ECX)  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordCC(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getSP() & this.dataMask);
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = X86.BACKTRACK.SP_LO; this.backTrack.btiCH = X86.BACKTRACK.SP_HI;
                    }
                },
                /**
                 * opMod16RegWordCD(fn): mod=11 (src:reg)  reg=001 (dst:ECX)  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordCD(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.regEBP & this.dataMask);
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiBPLo; this.backTrack.btiCH = this.backTrack.btiBPHi;
                    }
                },
                /**
                 * opMod16RegWordCE(fn): mod=11 (src:reg)  reg=001 (dst:ECX)  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordCE(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.regESI & this.dataMask);
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiSILo; this.backTrack.btiCH = this.backTrack.btiSIHi;
                    }
                },
                /**
                 * opMod16RegWordCF(fn): mod=11 (src:reg)  reg=001 (dst:ECX)  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordCF(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.regEDI & this.dataMask);
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiDILo; this.backTrack.btiCH = this.backTrack.btiDIHi;
                    }
                },
                /**
                 * opMod16RegWordD0(fn): mod=11 (src:reg)  reg=010 (dst:EDX)  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordD0(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.regEAX & this.dataMask);
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiAL; this.backTrack.btiDH = this.backTrack.btiAH;
                    }
                },
                /**
                 * opMod16RegWordD1(fn): mod=11 (src:reg)  reg=010 (dst:EDX)  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordD1(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.regECX & this.dataMask);
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiCL; this.backTrack.btiDH = this.backTrack.btiCH;
                    }
                },
                /**
                 * opMod16RegWordD2(fn): mod=11 (src:reg)  reg=010 (dst:EDX)  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordD2(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.regEDX & this.dataMask);
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                },
                /**
                 * opMod16RegWordD3(fn): mod=11 (src:reg)  reg=010 (dst:EDX)  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordD3(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.regEBX & this.dataMask);
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiBL; this.backTrack.btiDH = this.backTrack.btiBH;
                    }
                },
                /**
                 * opMod16RegWordD4(fn): mod=11 (src:reg)  reg=010 (dst:EDX)  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordD4(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getSP() & this.dataMask);
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = X86.BACKTRACK.SP_LO; this.backTrack.btiDH = X86.BACKTRACK.SP_HI;
                    }
                },
                /**
                 * opMod16RegWordD5(fn): mod=11 (src:reg)  reg=010 (dst:EDX)  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordD5(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.regEBP & this.dataMask);
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiBPLo; this.backTrack.btiDH = this.backTrack.btiBPHi;
                    }
                },
                /**
                 * opMod16RegWordD6(fn): mod=11 (src:reg)  reg=010 (dst:EDX)  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordD6(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.regESI & this.dataMask);
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiSILo; this.backTrack.btiDH = this.backTrack.btiSIHi;
                    }
                },
                /**
                 * opMod16RegWordD7(fn): mod=11 (src:reg)  reg=010 (dst:EDX)  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordD7(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.regEDI & this.dataMask);
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiDILo; this.backTrack.btiDH = this.backTrack.btiDIHi;
                    }
                },
                /**
                 * opMod16RegWordD8(fn): mod=11 (src:reg)  reg=011 (dst:EBX)  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordD8(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.regEAX & this.dataMask);
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiAL; this.backTrack.btiBH = this.backTrack.btiAH;
                    }
                },
                /**
                 * opMod16RegWordD9(fn): mod=11 (src:reg)  reg=011 (dst:EBX)  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordD9(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.regECX & this.dataMask);
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiCL; this.backTrack.btiBH = this.backTrack.btiCH;
                    }
                },
                /**
                 * opMod16RegWordDA(fn): mod=11 (src:reg)  reg=011 (dst:EBX)  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordDA(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.regEDX & this.dataMask);
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiDL; this.backTrack.btiBH = this.backTrack.btiDH;
                    }
                },
                /**
                 * opMod16RegWordDB(fn): mod=11 (src:reg)  reg=011 (dst:EBX)  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordDB(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.regEBX & this.dataMask);
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                },
                /**
                 * opMod16RegWordDC(fn): mod=11 (src:reg)  reg=011 (dst:EBX)  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordDC(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getSP() & this.dataMask);
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = X86.BACKTRACK.SP_LO; this.backTrack.btiBH = X86.BACKTRACK.SP_HI;
                    }
                },
                /**
                 * opMod16RegWordDD(fn): mod=11 (src:reg)  reg=011 (dst:EBX)  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordDD(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.regEBP & this.dataMask);
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiBPLo; this.backTrack.btiBH = this.backTrack.btiBPHi;
                    }
                },
                /**
                 * opMod16RegWordDE(fn): mod=11 (src:reg)  reg=011 (dst:EBX)  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordDE(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.regESI & this.dataMask);
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiSILo; this.backTrack.btiBH = this.backTrack.btiSIHi;
                    }
                },
                /**
                 * opMod16RegWordDF(fn): mod=11 (src:reg)  reg=011 (dst:EBX)  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordDF(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.regEDI & this.dataMask);
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiDILo; this.backTrack.btiBH = this.backTrack.btiDIHi;
                    }
                },
                /**
                 * opMod16RegWordE0(fn): mod=11 (src:reg)  reg=100 (dst:ESP)  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordE0(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.regEAX & this.dataMask);
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod16RegWordE1(fn): mod=11 (src:reg)  reg=100 (dst:ESP)  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordE1(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.regECX & this.dataMask);
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod16RegWordE2(fn): mod=11 (src:reg)  reg=100 (dst:ESP)  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordE2(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.regEDX & this.dataMask);
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod16RegWordE3(fn): mod=11 (src:reg)  reg=100 (dst:ESP)  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordE3(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.regEBX & this.dataMask);
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod16RegWordE4(fn): mod=11 (src:reg)  reg=100 (dst:ESP)  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordE4(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getSP() & this.dataMask);
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod16RegWordE5(fn): mod=11 (src:reg)  reg=100 (dst:ESP)  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordE5(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.regEBP & this.dataMask);
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod16RegWordE6(fn): mod=11 (src:reg)  reg=100 (dst:ESP)  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordE6(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.regESI & this.dataMask);
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod16RegWordE7(fn): mod=11 (src:reg)  reg=100 (dst:ESP)  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordE7(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.regEDI & this.dataMask);
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod16RegWordE8(fn): mod=11 (src:reg)  reg=101 (dst:EBP)  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordE8(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.regEAX & this.dataMask);
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiAL; this.backTrack.btiBPHi = this.backTrack.btiAH;
                    }
                },
                /**
                 * opMod16RegWordE9(fn): mod=11 (src:reg)  reg=101 (dst:EBP)  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordE9(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.regECX & this.dataMask);
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiCL; this.backTrack.btiBPHi = this.backTrack.btiCH;
                    }
                },
                /**
                 * opMod16RegWordEA(fn): mod=11 (src:reg)  reg=101 (dst:EBP)  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordEA(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.regEDX & this.dataMask);
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiDL; this.backTrack.btiBPHi = this.backTrack.btiDH;
                    }
                },
                /**
                 * opMod16RegWordEB(fn): mod=11 (src:reg)  reg=101 (dst:EBP)  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordEB(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.regEBX & this.dataMask);
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiBL; this.backTrack.btiBPHi = this.backTrack.btiBH;
                    }
                },
                /**
                 * opMod16RegWordEC(fn): mod=11 (src:reg)  reg=101 (dst:EBP)  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordEC(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getSP() & this.dataMask);
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = X86.BACKTRACK.SP_LO; this.backTrack.btiBPHi = X86.BACKTRACK.SP_HI;
                    }
                },
                /**
                 * opMod16RegWordED(fn): mod=11 (src:reg)  reg=101 (dst:EBP)  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordED(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.regEBP & this.dataMask);
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                },
                /**
                 * opMod16RegWordEE(fn): mod=11 (src:reg)  reg=101 (dst:EBP)  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordEE(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.regESI & this.dataMask);
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiSILo; this.backTrack.btiBPHi = this.backTrack.btiSIHi;
                    }
                },
                /**
                 * opMod16RegWordEF(fn): mod=11 (src:reg)  reg=101 (dst:EBP)  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordEF(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.regEDI & this.dataMask);
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiDILo; this.backTrack.btiBPHi = this.backTrack.btiDIHi;
                    }
                },
                /**
                 * opMod16RegWordF0(fn): mod=11 (src:reg)  reg=110 (dst:ESI)  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordF0(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.regEAX & this.dataMask);
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiAL; this.backTrack.btiSIHi = this.backTrack.btiAH;
                    }
                },
                /**
                 * opMod16RegWordF1(fn): mod=11 (src:reg)  reg=110 (dst:ESI)  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordF1(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.regECX & this.dataMask);
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiCL; this.backTrack.btiSIHi = this.backTrack.btiCH;
                    }
                },
                /**
                 * opMod16RegWordF2(fn): mod=11 (src:reg)  reg=110 (dst:ESI)  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordF2(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.regEDX & this.dataMask);
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiDL; this.backTrack.btiSIHi = this.backTrack.btiDH;
                    }
                },
                /**
                 * opMod16RegWordF3(fn): mod=11 (src:reg)  reg=110 (dst:ESI)  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordF3(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.regEBX & this.dataMask);
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiBL; this.backTrack.btiSIHi = this.backTrack.btiBH;
                    }
                },
                /**
                 * opMod16RegWordF4(fn): mod=11 (src:reg)  reg=110 (dst:ESI)  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordF4(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getSP() & this.dataMask);
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = X86.BACKTRACK.SP_LO; this.backTrack.btiSIHi = X86.BACKTRACK.SP_HI;
                    }
                },
                /**
                 * opMod16RegWordF5(fn): mod=11 (src:reg)  reg=110 (dst:ESI)  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordF5(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.regEBP & this.dataMask);
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiBPLo; this.backTrack.btiSIHi = this.backTrack.btiBPHi;
                    }
                },
                /**
                 * opMod16RegWordF6(fn): mod=11 (src:reg)  reg=110 (dst:ESI)  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordF6(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.regESI & this.dataMask);
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                },
                /**
                 * opMod16RegWordF7(fn): mod=11 (src:reg)  reg=110 (dst:ESI)  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordF7(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.regEDI & this.dataMask);
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiDILo; this.backTrack.btiSIHi = this.backTrack.btiDIHi;
                    }
                },
                /**
                 * opMod16RegWordF8(fn): mod=11 (src:reg)  reg=111 (dst:EDI)  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordF8(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.regEAX & this.dataMask);
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiAL; this.backTrack.btiDIHi = this.backTrack.btiAH;
                    }
                },
                /**
                 * opMod16RegWordF9(fn): mod=11 (src:reg)  reg=111 (dst:EDI)  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordF9(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.regECX & this.dataMask);
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiCL; this.backTrack.btiDIHi = this.backTrack.btiCH;
                    }
                },
                /**
                 * opMod16RegWordFA(fn): mod=11 (src:reg)  reg=111 (dst:EDI)  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordFA(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.regEDX & this.dataMask);
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiDL; this.backTrack.btiDIHi = this.backTrack.btiDH;
                    }
                },
                /**
                 * opMod16RegWordFB(fn): mod=11 (src:reg)  reg=111 (dst:EDI)  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordFB(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.regEBX & this.dataMask);
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiBL; this.backTrack.btiDIHi = this.backTrack.btiBH;
                    }
                },
                /**
                 * opMod16RegWordFC(fn): mod=11 (src:reg)  reg=111 (dst:EDI)  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordFC(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getSP() & this.dataMask);
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = X86.BACKTRACK.SP_LO; this.backTrack.btiDIHi = X86.BACKTRACK.SP_HI;
                    }
                },
                /**
                 * opMod16RegWordFD(fn): mod=11 (src:reg)  reg=111 (dst:EDI)  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordFD(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.regEBP & this.dataMask);
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiBPLo; this.backTrack.btiDIHi = this.backTrack.btiBPHi;
                    }
                },
                /**
                 * opMod16RegWordFE(fn): mod=11 (src:reg)  reg=111 (dst:EDI)  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordFE(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.regESI & this.dataMask);
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiSILo; this.backTrack.btiDIHi = this.backTrack.btiSIHi;
                    }
                },
                /**
                 * opMod16RegWordFF(fn): mod=11 (src:reg)  reg=111 (dst:EDI)  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16RegWordFF(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.regEDI & this.dataMask);
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                }
            ];
            
            X86ModW16.aOpModMem = [
                /**
                 * opMod16MemWord00(fn): mod=00 (dst:mem)  reg=000 (src:EAX)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord00(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemWord01(fn): mod=00 (dst:mem)  reg=000 (src:EAX)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord01(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemWord02(fn): mod=00 (dst:mem)  reg=000 (src:EAX)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord02(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemWord03(fn): mod=00 (dst:mem)  reg=000 (src:EAX)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord03(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemWord04(fn): mod=00 (dst:mem)  reg=000 (src:EAX)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord04(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemWord05(fn): mod=00 (dst:mem)  reg=000 (src:EAX)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord05(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemWord06(fn): mod=00 (dst:mem)  reg=000 (src:EAX)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord06(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16MemWord07(fn): mod=00 (dst:mem)  reg=000 (src:EAX)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord07(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemWord08(fn): mod=00 (dst:mem)  reg=001 (src:ECX)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord08(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemWord09(fn): mod=00 (dst:mem)  reg=001 (src:ECX)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord09(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemWord0A(fn): mod=00 (dst:mem)  reg=001 (src:ECX)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord0A(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemWord0B(fn): mod=00 (dst:mem)  reg=001 (src:ECX)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord0B(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemWord0C(fn): mod=00 (dst:mem)  reg=001 (src:ECX)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord0C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemWord0D(fn): mod=00 (dst:mem)  reg=001 (src:ECX)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord0D(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemWord0E(fn): mod=00 (dst:mem)  reg=001 (src:ECX)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord0E(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16MemWord0F(fn): mod=00 (dst:mem)  reg=001 (src:ECX)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord0F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemWord10(fn): mod=00 (dst:mem)  reg=010 (src:EDX)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord10(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemWord11(fn): mod=00 (dst:mem)  reg=010 (src:EDX)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord11(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemWord12(fn): mod=00 (dst:mem)  reg=010 (src:EDX)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord12(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemWord13(fn): mod=00 (dst:mem)  reg=010 (src:EDX)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord13(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemWord14(fn): mod=00 (dst:mem)  reg=010 (src:EDX)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord14(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemWord15(fn): mod=00 (dst:mem)  reg=010 (src:EDX)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord15(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemWord16(fn): mod=00 (dst:mem)  reg=010 (src:EDX)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord16(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16MemWord17(fn): mod=00 (dst:mem)  reg=010 (src:EDX)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord17(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemWord18(fn): mod=00 (dst:mem)  reg=011 (src:EBX)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord18(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemWord19(fn): mod=00 (dst:mem)  reg=011 (src:EBX)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord19(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemWord1A(fn): mod=00 (dst:mem)  reg=011 (src:EBX)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord1A(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemWord1B(fn): mod=00 (dst:mem)  reg=011 (src:EBX)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord1B(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemWord1C(fn): mod=00 (dst:mem)  reg=011 (src:EBX)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord1C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemWord1D(fn): mod=00 (dst:mem)  reg=011 (src:EBX)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord1D(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemWord1E(fn): mod=00 (dst:mem)  reg=011 (src:EBX)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord1E(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16MemWord1F(fn): mod=00 (dst:mem)  reg=011 (src:EBX)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord1F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemWord20(fn): mod=00 (dst:mem)  reg=100 (src:ESP)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord20(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemWord21(fn): mod=00 (dst:mem)  reg=100 (src:ESP)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord21(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemWord22(fn): mod=00 (dst:mem)  reg=100 (src:ESP)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord22(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemWord23(fn): mod=00 (dst:mem)  reg=100 (src:ESP)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord23(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemWord24(fn): mod=00 (dst:mem)  reg=100 (src:ESP)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord24(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemWord25(fn): mod=00 (dst:mem)  reg=100 (src:ESP)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord25(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemWord26(fn): mod=00 (dst:mem)  reg=100 (src:ESP)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord26(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16MemWord27(fn): mod=00 (dst:mem)  reg=100 (src:ESP)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord27(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemWord28(fn): mod=00 (dst:mem)  reg=101 (src:EBP)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord28(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemWord29(fn): mod=00 (dst:mem)  reg=101 (src:EBP)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord29(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemWord2A(fn): mod=00 (dst:mem)  reg=101 (src:EBP)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord2A(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemWord2B(fn): mod=00 (dst:mem)  reg=101 (src:EBP)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord2B(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemWord2C(fn): mod=00 (dst:mem)  reg=101 (src:EBP)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord2C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemWord2D(fn): mod=00 (dst:mem)  reg=101 (src:EBP)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord2D(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemWord2E(fn): mod=00 (dst:mem)  reg=101 (src:EBP)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord2E(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16MemWord2F(fn): mod=00 (dst:mem)  reg=101 (src:EBP)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord2F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemWord30(fn): mod=00 (dst:mem)  reg=110 (src:ESI)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord30(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemWord31(fn): mod=00 (dst:mem)  reg=110 (src:ESI)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord31(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemWord32(fn): mod=00 (dst:mem)  reg=110 (src:ESI)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord32(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemWord33(fn): mod=00 (dst:mem)  reg=110 (src:ESI)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord33(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemWord34(fn): mod=00 (dst:mem)  reg=110 (src:ESI)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord34(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemWord35(fn): mod=00 (dst:mem)  reg=110 (src:ESI)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord35(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemWord36(fn): mod=00 (dst:mem)  reg=110 (src:ESI)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord36(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16MemWord37(fn): mod=00 (dst:mem)  reg=110 (src:ESI)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord37(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemWord38(fn): mod=00 (dst:mem)  reg=111 (src:EDI)  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord38(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemWord39(fn): mod=00 (dst:mem)  reg=111 (src:EDI)  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord39(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemWord3A(fn): mod=00 (dst:mem)  reg=111 (src:EDI)  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord3A(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16MemWord3B(fn): mod=00 (dst:mem)  reg=111 (src:EDI)  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord3B(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16MemWord3C(fn): mod=00 (dst:mem)  reg=111 (src:EDI)  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord3C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemWord3D(fn): mod=00 (dst:mem)  reg=111 (src:EDI)  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord3D(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemWord3E(fn): mod=00 (dst:mem)  reg=111 (src:EDI)  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord3E(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16MemWord3F(fn): mod=00 (dst:mem)  reg=111 (src:EDI)  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord3F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16MemWord40(fn): mod=01 (dst:mem+d8)  reg=000 (src:EAX)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord40(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWord41(fn): mod=01 (dst:mem+d8)  reg=000 (src:EAX)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord41(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWord42(fn): mod=01 (dst:mem+d8)  reg=000 (src:EAX)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord42(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWord43(fn): mod=01 (dst:mem+d8)  reg=000 (src:EAX)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord43(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWord44(fn): mod=01 (dst:mem+d8)  reg=000 (src:EAX)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord44(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord45(fn): mod=01 (dst:mem+d8)  reg=000 (src:EAX)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord45(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord46(fn): mod=01 (dst:mem+d8)  reg=000 (src:EAX)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord46(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord47(fn): mod=01 (dst:mem+d8)  reg=000 (src:EAX)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord47(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord48(fn): mod=01 (dst:mem+d8)  reg=001 (src:ECX)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord48(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWord49(fn): mod=01 (dst:mem+d8)  reg=001 (src:ECX)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord49(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWord4A(fn): mod=01 (dst:mem+d8)  reg=001 (src:ECX)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord4A(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWord4B(fn): mod=01 (dst:mem+d8)  reg=001 (src:ECX)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord4B(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWord4C(fn): mod=01 (dst:mem+d8)  reg=001 (src:ECX)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord4C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord4D(fn): mod=01 (dst:mem+d8)  reg=001 (src:ECX)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord4D(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord4E(fn): mod=01 (dst:mem+d8)  reg=001 (src:ECX)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord4E(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord4F(fn): mod=01 (dst:mem+d8)  reg=001 (src:ECX)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord4F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord50(fn): mod=01 (dst:mem+d8)  reg=010 (src:EDX)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord50(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWord51(fn): mod=01 (dst:mem+d8)  reg=010 (src:EDX)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord51(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWord52(fn): mod=01 (dst:mem+d8)  reg=010 (src:EDX)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord52(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWord53(fn): mod=01 (dst:mem+d8)  reg=010 (src:EDX)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord53(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWord54(fn): mod=01 (dst:mem+d8)  reg=010 (src:EDX)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord54(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord55(fn): mod=01 (dst:mem+d8)  reg=010 (src:EDX)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord55(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord56(fn): mod=01 (dst:mem+d8)  reg=010 (src:EDX)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord56(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord57(fn): mod=01 (dst:mem+d8)  reg=010 (src:EDX)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord57(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord58(fn): mod=01 (dst:mem+d8)  reg=011 (src:EBX)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord58(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWord59(fn): mod=01 (dst:mem+d8)  reg=011 (src:EBX)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord59(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWord5A(fn): mod=01 (dst:mem+d8)  reg=011 (src:EBX)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord5A(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWord5B(fn): mod=01 (dst:mem+d8)  reg=011 (src:EBX)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord5B(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWord5C(fn): mod=01 (dst:mem+d8)  reg=011 (src:EBX)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord5C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord5D(fn): mod=01 (dst:mem+d8)  reg=011 (src:EBX)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord5D(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord5E(fn): mod=01 (dst:mem+d8)  reg=011 (src:EBX)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord5E(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord5F(fn): mod=01 (dst:mem+d8)  reg=011 (src:EBX)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord5F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord60(fn): mod=01 (dst:mem+d8)  reg=100 (src:ESP)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord60(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWord61(fn): mod=01 (dst:mem+d8)  reg=100 (src:ESP)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord61(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWord62(fn): mod=01 (dst:mem+d8)  reg=100 (src:ESP)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord62(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWord63(fn): mod=01 (dst:mem+d8)  reg=100 (src:ESP)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord63(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWord64(fn): mod=01 (dst:mem+d8)  reg=100 (src:ESP)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord64(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord65(fn): mod=01 (dst:mem+d8)  reg=100 (src:ESP)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord65(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord66(fn): mod=01 (dst:mem+d8)  reg=100 (src:ESP)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord66(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord67(fn): mod=01 (dst:mem+d8)  reg=100 (src:ESP)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord67(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord68(fn): mod=01 (dst:mem+d8)  reg=101 (src:EBP)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord68(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWord69(fn): mod=01 (dst:mem+d8)  reg=101 (src:EBP)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord69(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWord6A(fn): mod=01 (dst:mem+d8)  reg=101 (src:EBP)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord6A(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWord6B(fn): mod=01 (dst:mem+d8)  reg=101 (src:EBP)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord6B(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWord6C(fn): mod=01 (dst:mem+d8)  reg=101 (src:EBP)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord6C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord6D(fn): mod=01 (dst:mem+d8)  reg=101 (src:EBP)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord6D(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord6E(fn): mod=01 (dst:mem+d8)  reg=101 (src:EBP)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord6E(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord6F(fn): mod=01 (dst:mem+d8)  reg=101 (src:EBP)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord6F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord70(fn): mod=01 (dst:mem+d8)  reg=110 (src:ESI)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord70(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWord71(fn): mod=01 (dst:mem+d8)  reg=110 (src:ESI)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord71(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWord72(fn): mod=01 (dst:mem+d8)  reg=110 (src:ESI)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord72(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWord73(fn): mod=01 (dst:mem+d8)  reg=110 (src:ESI)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord73(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWord74(fn): mod=01 (dst:mem+d8)  reg=110 (src:ESI)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord74(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord75(fn): mod=01 (dst:mem+d8)  reg=110 (src:ESI)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord75(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord76(fn): mod=01 (dst:mem+d8)  reg=110 (src:ESI)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord76(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord77(fn): mod=01 (dst:mem+d8)  reg=110 (src:ESI)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord77(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord78(fn): mod=01 (dst:mem+d8)  reg=111 (src:EDI)  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord78(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWord79(fn): mod=01 (dst:mem+d8)  reg=111 (src:EDI)  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord79(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWord7A(fn): mod=01 (dst:mem+d8)  reg=111 (src:EDI)  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord7A(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWord7B(fn): mod=01 (dst:mem+d8)  reg=111 (src:EDI)  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord7B(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWord7C(fn): mod=01 (dst:mem+d8)  reg=111 (src:EDI)  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord7C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord7D(fn): mod=01 (dst:mem+d8)  reg=111 (src:EDI)  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord7D(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord7E(fn): mod=01 (dst:mem+d8)  reg=111 (src:EDI)  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord7E(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord7F(fn): mod=01 (dst:mem+d8)  reg=111 (src:EDI)  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord7F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord80(fn): mod=10 (dst:mem+d16)  reg=000 (src:EAX)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord80(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWord81(fn): mod=10 (dst:mem+d16)  reg=000 (src:EAX)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord81(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWord82(fn): mod=10 (dst:mem+d16)  reg=000 (src:EAX)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord82(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWord83(fn): mod=10 (dst:mem+d16)  reg=000 (src:EAX)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord83(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWord84(fn): mod=10 (dst:mem+d16)  reg=000 (src:EAX)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord84(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord85(fn): mod=10 (dst:mem+d16)  reg=000 (src:EAX)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord85(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord86(fn): mod=10 (dst:mem+d16)  reg=000 (src:EAX)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord86(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord87(fn): mod=10 (dst:mem+d16)  reg=000 (src:EAX)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord87(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord88(fn): mod=10 (dst:mem+d16)  reg=001 (src:ECX)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord88(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWord89(fn): mod=10 (dst:mem+d16)  reg=001 (src:ECX)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord89(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWord8A(fn): mod=10 (dst:mem+d16)  reg=001 (src:ECX)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord8A(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWord8B(fn): mod=10 (dst:mem+d16)  reg=001 (src:ECX)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord8B(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWord8C(fn): mod=10 (dst:mem+d16)  reg=001 (src:ECX)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord8C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord8D(fn): mod=10 (dst:mem+d16)  reg=001 (src:ECX)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord8D(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord8E(fn): mod=10 (dst:mem+d16)  reg=001 (src:ECX)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord8E(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord8F(fn): mod=10 (dst:mem+d16)  reg=001 (src:ECX)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord8F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord90(fn): mod=10 (dst:mem+d16)  reg=010 (src:EDX)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord90(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWord91(fn): mod=10 (dst:mem+d16)  reg=010 (src:EDX)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord91(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWord92(fn): mod=10 (dst:mem+d16)  reg=010 (src:EDX)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord92(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWord93(fn): mod=10 (dst:mem+d16)  reg=010 (src:EDX)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord93(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWord94(fn): mod=10 (dst:mem+d16)  reg=010 (src:EDX)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord94(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord95(fn): mod=10 (dst:mem+d16)  reg=010 (src:EDX)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord95(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord96(fn): mod=10 (dst:mem+d16)  reg=010 (src:EDX)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord96(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord97(fn): mod=10 (dst:mem+d16)  reg=010 (src:EDX)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord97(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord98(fn): mod=10 (dst:mem+d16)  reg=011 (src:EBX)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord98(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWord99(fn): mod=10 (dst:mem+d16)  reg=011 (src:EBX)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord99(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWord9A(fn): mod=10 (dst:mem+d16)  reg=011 (src:EBX)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord9A(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWord9B(fn): mod=10 (dst:mem+d16)  reg=011 (src:EBX)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord9B(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWord9C(fn): mod=10 (dst:mem+d16)  reg=011 (src:EBX)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord9C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord9D(fn): mod=10 (dst:mem+d16)  reg=011 (src:EBX)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord9D(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord9E(fn): mod=10 (dst:mem+d16)  reg=011 (src:EBX)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord9E(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWord9F(fn): mod=10 (dst:mem+d16)  reg=011 (src:EBX)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWord9F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWordA0(fn): mod=10 (dst:mem+d16)  reg=100 (src:ESP)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordA0(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWordA1(fn): mod=10 (dst:mem+d16)  reg=100 (src:ESP)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordA1(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWordA2(fn): mod=10 (dst:mem+d16)  reg=100 (src:ESP)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordA2(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWordA3(fn): mod=10 (dst:mem+d16)  reg=100 (src:ESP)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordA3(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWordA4(fn): mod=10 (dst:mem+d16)  reg=100 (src:ESP)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordA4(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWordA5(fn): mod=10 (dst:mem+d16)  reg=100 (src:ESP)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordA5(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWordA6(fn): mod=10 (dst:mem+d16)  reg=100 (src:ESP)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordA6(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWordA7(fn): mod=10 (dst:mem+d16)  reg=100 (src:ESP)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordA7(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWordA8(fn): mod=10 (dst:mem+d16)  reg=101 (src:EBP)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordA8(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWordA9(fn): mod=10 (dst:mem+d16)  reg=101 (src:EBP)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordA9(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWordAA(fn): mod=10 (dst:mem+d16)  reg=101 (src:EBP)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordAA(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWordAB(fn): mod=10 (dst:mem+d16)  reg=101 (src:EBP)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordAB(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWordAC(fn): mod=10 (dst:mem+d16)  reg=101 (src:EBP)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordAC(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWordAD(fn): mod=10 (dst:mem+d16)  reg=101 (src:EBP)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordAD(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWordAE(fn): mod=10 (dst:mem+d16)  reg=101 (src:EBP)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordAE(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWordAF(fn): mod=10 (dst:mem+d16)  reg=101 (src:EBP)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordAF(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWordB0(fn): mod=10 (dst:mem+d16)  reg=110 (src:ESI)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordB0(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWordB1(fn): mod=10 (dst:mem+d16)  reg=110 (src:ESI)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordB1(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWordB2(fn): mod=10 (dst:mem+d16)  reg=110 (src:ESI)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordB2(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWordB3(fn): mod=10 (dst:mem+d16)  reg=110 (src:ESI)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordB3(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWordB4(fn): mod=10 (dst:mem+d16)  reg=110 (src:ESI)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordB4(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWordB5(fn): mod=10 (dst:mem+d16)  reg=110 (src:ESI)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordB5(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWordB6(fn): mod=10 (dst:mem+d16)  reg=110 (src:ESI)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordB6(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWordB7(fn): mod=10 (dst:mem+d16)  reg=110 (src:ESI)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordB7(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWordB8(fn): mod=10 (dst:mem+d16)  reg=111 (src:EDI)  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordB8(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWordB9(fn): mod=10 (dst:mem+d16)  reg=111 (src:EDI)  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordB9(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWordBA(fn): mod=10 (dst:mem+d16)  reg=111 (src:EDI)  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordBA(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16MemWordBB(fn): mod=10 (dst:mem+d16)  reg=111 (src:EDI)  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordBB(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16MemWordBC(fn): mod=10 (dst:mem+d16)  reg=111 (src:EDI)  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordBC(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWordBD(fn): mod=10 (dst:mem+d16)  reg=111 (src:EDI)  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordBD(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWordBE(fn): mod=10 (dst:mem+d16)  reg=111 (src:EDI)  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordBE(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16MemWordBF(fn): mod=10 (dst:mem+d16)  reg=111 (src:EDI)  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod16MemWordBF(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                X86ModW16.aOpModReg[0xC0],  X86ModW16.aOpModReg[0xC8],  X86ModW16.aOpModReg[0xD0],  X86ModW16.aOpModReg[0xD8],
                X86ModW16.aOpModReg[0xE0],  X86ModW16.aOpModReg[0xE8],  X86ModW16.aOpModReg[0xF0],  X86ModW16.aOpModReg[0xF8],
                X86ModW16.aOpModReg[0xC1],  X86ModW16.aOpModReg[0xC9],  X86ModW16.aOpModReg[0xD1],  X86ModW16.aOpModReg[0xD9],
                X86ModW16.aOpModReg[0xE1],  X86ModW16.aOpModReg[0xE9],  X86ModW16.aOpModReg[0xF1],  X86ModW16.aOpModReg[0xF9],
                X86ModW16.aOpModReg[0xC2],  X86ModW16.aOpModReg[0xCA],  X86ModW16.aOpModReg[0xD2],  X86ModW16.aOpModReg[0xDA],
                X86ModW16.aOpModReg[0xE2],  X86ModW16.aOpModReg[0xEA],  X86ModW16.aOpModReg[0xF2],  X86ModW16.aOpModReg[0xFA],
                X86ModW16.aOpModReg[0xC3],  X86ModW16.aOpModReg[0xCB],  X86ModW16.aOpModReg[0xD3],  X86ModW16.aOpModReg[0xDB],
                X86ModW16.aOpModReg[0xE3],  X86ModW16.aOpModReg[0xEB],  X86ModW16.aOpModReg[0xF3],  X86ModW16.aOpModReg[0xFB],
                X86ModW16.aOpModReg[0xC4],  X86ModW16.aOpModReg[0xCC],  X86ModW16.aOpModReg[0xD4],  X86ModW16.aOpModReg[0xDC],
                X86ModW16.aOpModReg[0xE4],  X86ModW16.aOpModReg[0xEC],  X86ModW16.aOpModReg[0xF4],  X86ModW16.aOpModReg[0xFC],
                X86ModW16.aOpModReg[0xC5],  X86ModW16.aOpModReg[0xCD],  X86ModW16.aOpModReg[0xD5],  X86ModW16.aOpModReg[0xDD],
                X86ModW16.aOpModReg[0xE5],  X86ModW16.aOpModReg[0xED],  X86ModW16.aOpModReg[0xF5],  X86ModW16.aOpModReg[0xFD],
                X86ModW16.aOpModReg[0xC6],  X86ModW16.aOpModReg[0xCE],  X86ModW16.aOpModReg[0xD6],  X86ModW16.aOpModReg[0xDE],
                X86ModW16.aOpModReg[0xE6],  X86ModW16.aOpModReg[0xEE],  X86ModW16.aOpModReg[0xF6],  X86ModW16.aOpModReg[0xFE],
                X86ModW16.aOpModReg[0xC7],  X86ModW16.aOpModReg[0xCF],  X86ModW16.aOpModReg[0xD7],  X86ModW16.aOpModReg[0xDF],
                X86ModW16.aOpModReg[0xE7],  X86ModW16.aOpModReg[0xEF],  X86ModW16.aOpModReg[0xF7],  X86ModW16.aOpModReg[0xFF]
            ];
            
            X86ModW16.aOpModGrp = [
                /**
                 * opMod16GrpWord00(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord00(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpWord01(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord01(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpWord02(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord02(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpWord03(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord03(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpWord04(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord04(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpWord05(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord05(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpWord06(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord06(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16GrpWord07(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord07(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpWord08(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord08(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpWord09(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord09(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpWord0A(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord0A(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpWord0B(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord0B(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpWord0C(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord0C(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpWord0D(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord0D(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpWord0E(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord0E(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16GrpWord0F(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord0F(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpWord10(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord10(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpWord11(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord11(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpWord12(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord12(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpWord13(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord13(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpWord14(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord14(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpWord15(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord15(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpWord16(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord16(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16GrpWord17(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord17(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpWord18(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord18(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpWord19(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord19(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpWord1A(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord1A(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpWord1B(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord1B(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpWord1C(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord1C(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpWord1D(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord1D(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpWord1E(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord1E(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16GrpWord1F(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord1F(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpWord20(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord20(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpWord21(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord21(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpWord22(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord22(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpWord23(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord23(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpWord24(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord24(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpWord25(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord25(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpWord26(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord26(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16GrpWord27(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord27(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpWord28(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord28(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpWord29(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord29(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpWord2A(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord2A(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpWord2B(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord2B(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpWord2C(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord2C(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpWord2D(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord2D(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpWord2E(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord2E(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16GrpWord2F(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord2F(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpWord30(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord30(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpWord31(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord31(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpWord32(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord32(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpWord33(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord33(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpWord34(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord34(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpWord35(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord35(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpWord36(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord36(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16GrpWord37(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord37(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpWord38(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=000 (BX+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord38(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpWord39(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=001 (BX+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord39(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpWord3A(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=010 (BP+SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord3A(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
                },
                /**
                 * opMod16GrpWord3B(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=011 (BP+DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord3B(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
                },
                /**
                 * opMod16GrpWord3C(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=100 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord3C(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpWord3D(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=101 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord3D(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpWord3E(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=110 (d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord3E(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod16GrpWord3F(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=111 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord3F(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod16GrpWord40(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord40(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWord41(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord41(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWord42(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord42(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWord43(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord43(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWord44(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord44(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord45(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord45(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord46(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord46(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord47(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord47(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord48(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord48(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWord49(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord49(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWord4A(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord4A(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWord4B(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord4B(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWord4C(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord4C(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord4D(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord4D(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord4E(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord4E(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord4F(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord4F(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord50(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord50(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWord51(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord51(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWord52(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord52(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWord53(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord53(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWord54(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord54(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord55(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord55(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord56(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord56(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord57(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord57(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord58(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord58(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWord59(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord59(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWord5A(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord5A(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWord5B(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord5B(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWord5C(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord5C(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord5D(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord5D(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord5E(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord5E(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord5F(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord5F(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord60(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord60(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWord61(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord61(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWord62(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord62(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWord63(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord63(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWord64(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord64(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord65(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord65(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord66(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord66(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord67(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord67(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord68(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord68(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWord69(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord69(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWord6A(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord6A(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWord6B(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord6B(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWord6C(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord6C(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord6D(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord6D(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord6E(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord6E(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord6F(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord6F(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord70(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord70(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWord71(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord71(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWord72(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord72(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWord73(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord73(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWord74(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord74(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord75(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord75(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord76(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord76(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord77(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord77(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord78(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=000 (BX+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord78(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWord79(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=001 (BX+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord79(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWord7A(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=010 (BP+SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord7A(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWord7B(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=011 (BP+DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord7B(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWord7C(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=100 (SI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord7C(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord7D(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=101 (DI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord7D(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord7E(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=110 (BP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord7E(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord7F(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=111 (BX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord7F(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord80(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord80(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWord81(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord81(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWord82(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord82(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWord83(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord83(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWord84(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord84(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord85(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord85(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord86(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord86(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord87(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord87(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord88(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord88(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWord89(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord89(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWord8A(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord8A(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWord8B(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord8B(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWord8C(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord8C(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord8D(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord8D(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord8E(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord8E(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord8F(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord8F(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord90(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord90(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWord91(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord91(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWord92(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord92(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWord93(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord93(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWord94(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord94(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord95(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord95(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord96(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord96(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord97(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord97(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord98(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord98(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWord99(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord99(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWord9A(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord9A(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWord9B(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord9B(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWord9C(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord9C(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord9D(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord9D(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord9E(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord9E(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWord9F(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWord9F(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWordA0(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordA0(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWordA1(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordA1(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWordA2(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordA2(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWordA3(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordA3(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWordA4(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordA4(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWordA5(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordA5(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWordA6(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordA6(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWordA7(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordA7(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWordA8(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordA8(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWordA9(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordA9(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWordAA(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordAA(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWordAB(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordAB(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWordAC(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordAC(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWordAD(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordAD(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWordAE(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordAE(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWordAF(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordAF(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWordB0(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordB0(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWordB1(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordB1(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWordB2(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordB2(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWordB3(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordB3(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWordB4(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordB4(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWordB5(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordB5(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWordB6(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordB6(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWordB7(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordB7(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWordB8(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=000 (BX+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordB8(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWordB9(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=001 (BX+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordB9(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWordBA(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=010 (BP+SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordBA(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
                },
                /**
                 * opMod16GrpWordBB(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=011 (BP+DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordBB(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
                },
                /**
                 * opMod16GrpWordBC(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=100 (SI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordBC(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWordBD(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=101 (DI+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordBD(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWordBE(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=110 (BP+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordBE(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWordBF(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=111 (BX+d16)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordBF(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod16GrpWordC0(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordC0(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.regEAX & this.dataMask, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordC1(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordC1(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.regECX & this.dataMask, fnSrc.call(this));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordC2(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordC2(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.regEDX & this.dataMask, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordC3(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordC3(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.regEBX & this.dataMask, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordC4(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordC4(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.getSP() & this.dataMask, fnSrc.call(this));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod16GrpWordC5(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordC5(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.regEBP & this.dataMask, fnSrc.call(this));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordC6(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordC6(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.regESI & this.dataMask, fnSrc.call(this));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordC7(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordC7(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.regEDI & this.dataMask, fnSrc.call(this));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordC8(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordC8(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.regEAX & this.dataMask, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordC9(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordC9(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.regECX & this.dataMask, fnSrc.call(this));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordCA(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordCA(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.regEDX & this.dataMask, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordCB(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordCB(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.regEBX & this.dataMask, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordCC(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordCC(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.getSP() & this.dataMask, fnSrc.call(this));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod16GrpWordCD(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordCD(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.regEBP & this.dataMask, fnSrc.call(this));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordCE(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordCE(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.regESI & this.dataMask, fnSrc.call(this));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordCF(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordCF(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.regEDI & this.dataMask, fnSrc.call(this));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordD0(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordD0(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.regEAX & this.dataMask, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordD1(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordD1(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.regECX & this.dataMask, fnSrc.call(this));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordD2(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordD2(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.regEDX & this.dataMask, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordD3(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordD3(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.regEBX & this.dataMask, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordD4(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordD4(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.getSP() & this.dataMask, fnSrc.call(this));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod16GrpWordD5(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordD5(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.regEBP & this.dataMask, fnSrc.call(this));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordD6(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordD6(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.regESI & this.dataMask, fnSrc.call(this));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordD7(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordD7(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.regEDI & this.dataMask, fnSrc.call(this));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordD8(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordD8(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.regEAX & this.dataMask, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordD9(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordD9(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.regECX & this.dataMask, fnSrc.call(this));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordDA(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordDA(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.regEDX & this.dataMask, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordDB(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordDB(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.regEBX & this.dataMask, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordDC(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordDC(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.getSP() & this.dataMask, fnSrc.call(this));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod16GrpWordDD(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordDD(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.regEBP & this.dataMask, fnSrc.call(this));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordDE(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordDE(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.regESI & this.dataMask, fnSrc.call(this));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordDF(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordDF(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.regEDI & this.dataMask, fnSrc.call(this));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordE0(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordE0(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.regEAX & this.dataMask, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordE1(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordE1(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.regECX & this.dataMask, fnSrc.call(this));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordE2(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordE2(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.regEDX & this.dataMask, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordE3(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordE3(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.regEBX & this.dataMask, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordE4(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordE4(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.getSP() & this.dataMask, fnSrc.call(this));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod16GrpWordE5(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordE5(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.regEBP & this.dataMask, fnSrc.call(this));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordE6(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordE6(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.regESI & this.dataMask, fnSrc.call(this));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordE7(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordE7(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.regEDI & this.dataMask, fnSrc.call(this));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordE8(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordE8(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.regEAX & this.dataMask, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordE9(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordE9(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.regECX & this.dataMask, fnSrc.call(this));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordEA(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordEA(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.regEDX & this.dataMask, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordEB(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordEB(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.regEBX & this.dataMask, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordEC(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordEC(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.getSP() & this.dataMask, fnSrc.call(this));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod16GrpWordED(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordED(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.regEBP & this.dataMask, fnSrc.call(this));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordEE(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordEE(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.regESI & this.dataMask, fnSrc.call(this));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordEF(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordEF(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.regEDI & this.dataMask, fnSrc.call(this));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordF0(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordF0(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.regEAX & this.dataMask, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordF1(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordF1(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.regECX & this.dataMask, fnSrc.call(this));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordF2(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordF2(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.regEDX & this.dataMask, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordF3(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordF3(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.regEBX & this.dataMask, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordF4(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordF4(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.getSP() & this.dataMask, fnSrc.call(this));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod16GrpWordF5(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordF5(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.regEBP & this.dataMask, fnSrc.call(this));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordF6(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordF6(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.regESI & this.dataMask, fnSrc.call(this));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordF7(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordF7(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.regEDI & this.dataMask, fnSrc.call(this));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordF8(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=000 (AX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordF8(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.regEAX & this.dataMask, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordF9(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=001 (CX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordF9(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.regECX & this.dataMask, fnSrc.call(this));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordFA(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=010 (DX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordFA(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.regEDX & this.dataMask, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordFB(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=011 (BX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordFB(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.regEBX & this.dataMask, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordFC(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=100 (SP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordFC(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.getSP() & this.dataMask, fnSrc.call(this));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod16GrpWordFD(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=101 (BP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordFD(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.regEBP & this.dataMask, fnSrc.call(this));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordFE(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=110 (SI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordFE(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.regESI & this.dataMask, fnSrc.call(this));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod16GrpWordFF(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=111 (DI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod16GrpWordFF(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.regEDI & this.dataMask, fnSrc.call(this));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                }
            ];
            
            if (typeof module !== 'undefined') module.exports = X86ModW16;
            
          • x86modw32.js
            /**
             * @fileoverview Implements PCjs 80386 ModRegRM word decoders with 32-bit addressing.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2015-Jan-20
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var X86         = require("./x86");
            }
            
            var X86ModW32 = {};
            
            X86ModW32.aOpModReg = [
                /**
                 * opMod32RegWord00(fn): mod=00 (src:mem)  reg=000 (dst:EAX)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord00(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEAX));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord01(fn): mod=00 (src:mem)  reg=000 (dst:EAX)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord01(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regECX));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord02(fn): mod=00 (src:mem)  reg=000 (dst:EAX)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord02(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEDX));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord03(fn): mod=00 (src:mem)  reg=000 (dst:EAX)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord03(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord04(fn): mod=00 (src:mem)  reg=000 (dst:EAX)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord04(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.getSIBAddr(0)));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord05(fn): mod=00 (src:mem)  reg=000 (dst:EAX)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord05(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32RegWord06(fn): mod=00 (src:mem)  reg=000 (dst:EAX)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord06(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regESI));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord07(fn): mod=00 (src:mem)  reg=000 (dst:EAX)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord07(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEDI));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord08(fn): mod=00 (src:mem)  reg=001 (dst:ECX)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord08(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEAX));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord09(fn): mod=00 (src:mem)  reg=001 (dst:ECX)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord09(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regECX));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord0A(fn): mod=00 (src:mem)  reg=001 (dst:ECX)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord0A(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEDX));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord0B(fn): mod=00 (src:mem)  reg=001 (dst:ECX)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord0B(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord0C(fn): mod=00 (src:mem)  reg=001 (dst:ECX)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord0C(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.getSIBAddr(0)));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord0D(fn): mod=00 (src:mem)  reg=001 (dst:ECX)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord0D(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.getIPAddr()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32RegWord0E(fn): mod=00 (src:mem)  reg=001 (dst:ECX)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord0E(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regESI));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord0F(fn): mod=00 (src:mem)  reg=001 (dst:ECX)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord0F(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEDI));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord10(fn): mod=00 (src:mem)  reg=010 (dst:EDX)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord10(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEAX));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord11(fn): mod=00 (src:mem)  reg=010 (dst:EDX)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord11(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regECX));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord12(fn): mod=00 (src:mem)  reg=010 (dst:EDX)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord12(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEDX));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord13(fn): mod=00 (src:mem)  reg=010 (dst:EDX)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord13(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord14(fn): mod=00 (src:mem)  reg=010 (dst:EDX)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord14(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.getSIBAddr(0)));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord15(fn): mod=00 (src:mem)  reg=010 (dst:EDX)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord15(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32RegWord16(fn): mod=00 (src:mem)  reg=010 (dst:EDX)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord16(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regESI));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord17(fn): mod=00 (src:mem)  reg=010 (dst:EDX)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord17(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEDI));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord18(fn): mod=00 (src:mem)  reg=011 (dst:EBX)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord18(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEAX));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord19(fn): mod=00 (src:mem)  reg=011 (dst:EBX)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord19(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regECX));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord1A(fn): mod=00 (src:mem)  reg=011 (dst:EBX)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord1A(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEDX));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord1B(fn): mod=00 (src:mem)  reg=011 (dst:EBX)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord1B(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord1C(fn): mod=00 (src:mem)  reg=011 (dst:EBX)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord1C(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.getSIBAddr(0)));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord1D(fn): mod=00 (src:mem)  reg=011 (dst:EBX)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord1D(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32RegWord1E(fn): mod=00 (src:mem)  reg=011 (dst:EBX)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord1E(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regESI));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord1F(fn): mod=00 (src:mem)  reg=011 (dst:EBX)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord1F(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEDI));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord20(fn): mod=00 (src:mem)  reg=100 (dst:ESP)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord20(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regEAX));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord21(fn): mod=00 (src:mem)  reg=100 (dst:ESP)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord21(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regECX));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord22(fn): mod=00 (src:mem)  reg=100 (dst:ESP)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord22(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regEDX));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord23(fn): mod=00 (src:mem)  reg=100 (dst:ESP)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord23(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regEBX));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord24(fn): mod=00 (src:mem)  reg=100 (dst:ESP)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord24(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.getSIBAddr(0)));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord25(fn): mod=00 (src:mem)  reg=100 (dst:ESP)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord25(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.getIPAddr()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32RegWord26(fn): mod=00 (src:mem)  reg=100 (dst:ESP)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord26(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regESI));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord27(fn): mod=00 (src:mem)  reg=100 (dst:ESP)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord27(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regEDI));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord28(fn): mod=00 (src:mem)  reg=101 (dst:EBP)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord28(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEAX));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord29(fn): mod=00 (src:mem)  reg=101 (dst:EBP)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord29(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regECX));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord2A(fn): mod=00 (src:mem)  reg=101 (dst:EBP)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord2A(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEDX));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord2B(fn): mod=00 (src:mem)  reg=101 (dst:EBP)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord2B(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord2C(fn): mod=00 (src:mem)  reg=101 (dst:EBP)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord2C(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.getSIBAddr(0)));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord2D(fn): mod=00 (src:mem)  reg=101 (dst:EBP)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord2D(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.getIPAddr()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32RegWord2E(fn): mod=00 (src:mem)  reg=101 (dst:EBP)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord2E(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regESI));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord2F(fn): mod=00 (src:mem)  reg=101 (dst:EBP)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord2F(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEDI));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord30(fn): mod=00 (src:mem)  reg=110 (dst:ESI)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord30(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEAX));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord31(fn): mod=00 (src:mem)  reg=110 (dst:ESI)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord31(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regECX));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord32(fn): mod=00 (src:mem)  reg=110 (dst:ESI)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord32(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEDX));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord33(fn): mod=00 (src:mem)  reg=110 (dst:ESI)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord33(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord34(fn): mod=00 (src:mem)  reg=110 (dst:ESI)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord34(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.getSIBAddr(0)));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord35(fn): mod=00 (src:mem)  reg=110 (dst:ESI)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord35(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.getIPAddr()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32RegWord36(fn): mod=00 (src:mem)  reg=110 (dst:ESI)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord36(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regESI));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord37(fn): mod=00 (src:mem)  reg=110 (dst:ESI)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord37(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEDI));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord38(fn): mod=00 (src:mem)  reg=111 (dst:EDI)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord38(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEAX));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord39(fn): mod=00 (src:mem)  reg=111 (dst:EDI)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord39(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regECX));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord3A(fn): mod=00 (src:mem)  reg=111 (dst:EDI)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord3A(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEDX));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord3B(fn): mod=00 (src:mem)  reg=111 (dst:EDI)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord3B(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord3C(fn): mod=00 (src:mem)  reg=111 (dst:EDI)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord3C(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.getSIBAddr(0)));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord3D(fn): mod=00 (src:mem)  reg=111 (dst:EDI)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord3D(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.getIPAddr()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32RegWord3E(fn): mod=00 (src:mem)  reg=111 (dst:EDI)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord3E(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regESI));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord3F(fn): mod=00 (src:mem)  reg=111 (dst:EDI)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord3F(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEDI));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32RegWord40(fn): mod=01 (src:mem+d8)  reg=000 (dst:EAX)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord40(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEAX + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord41(fn): mod=01 (src:mem+d8)  reg=000 (dst:EAX)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord41(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regECX + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord42(fn): mod=01 (src:mem+d8)  reg=000 (dst:EAX)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord42(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEDX + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord43(fn): mod=01 (src:mem+d8)  reg=000 (dst:EAX)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord43(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord44(fn): mod=01 (src:mem+d8)  reg=000 (dst:EAX)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord44(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.getSIBAddr(1) + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord45(fn): mod=01 (src:mem+d8)  reg=000 (dst:EAX)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord45(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord46(fn): mod=01 (src:mem+d8)  reg=000 (dst:EAX)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord46(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord47(fn): mod=01 (src:mem+d8)  reg=000 (dst:EAX)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord47(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord48(fn): mod=01 (src:mem+d8)  reg=001 (dst:ECX)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord48(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEAX + this.getIPDisp()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord49(fn): mod=01 (src:mem+d8)  reg=001 (dst:ECX)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord49(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regECX + this.getIPDisp()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord4A(fn): mod=01 (src:mem+d8)  reg=001 (dst:ECX)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord4A(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEDX + this.getIPDisp()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord4B(fn): mod=01 (src:mem+d8)  reg=001 (dst:ECX)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord4B(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord4C(fn): mod=01 (src:mem+d8)  reg=001 (dst:ECX)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord4C(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.getSIBAddr(1) + this.getIPDisp()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord4D(fn): mod=01 (src:mem+d8)  reg=001 (dst:ECX)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord4D(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord4E(fn): mod=01 (src:mem+d8)  reg=001 (dst:ECX)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord4E(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord4F(fn): mod=01 (src:mem+d8)  reg=001 (dst:ECX)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord4F(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord50(fn): mod=01 (src:mem+d8)  reg=010 (dst:EDX)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord50(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEAX + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord51(fn): mod=01 (src:mem+d8)  reg=010 (dst:EDX)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord51(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regECX + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord52(fn): mod=01 (src:mem+d8)  reg=010 (dst:EDX)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord52(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEDX + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord53(fn): mod=01 (src:mem+d8)  reg=010 (dst:EDX)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord53(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord54(fn): mod=01 (src:mem+d8)  reg=010 (dst:EDX)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord54(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.getSIBAddr(1) + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord55(fn): mod=01 (src:mem+d8)  reg=010 (dst:EDX)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord55(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord56(fn): mod=01 (src:mem+d8)  reg=010 (dst:EDX)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord56(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord57(fn): mod=01 (src:mem+d8)  reg=010 (dst:EDX)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord57(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord58(fn): mod=01 (src:mem+d8)  reg=011 (dst:EBX)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord58(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEAX + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord59(fn): mod=01 (src:mem+d8)  reg=011 (dst:EBX)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord59(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regECX + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord5A(fn): mod=01 (src:mem+d8)  reg=011 (dst:EBX)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord5A(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEDX + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord5B(fn): mod=01 (src:mem+d8)  reg=011 (dst:EBX)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord5B(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord5C(fn): mod=01 (src:mem+d8)  reg=011 (dst:EBX)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord5C(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.getSIBAddr(1) + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord5D(fn): mod=01 (src:mem+d8)  reg=011 (dst:EBX)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord5D(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord5E(fn): mod=01 (src:mem+d8)  reg=011 (dst:EBX)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord5E(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord5F(fn): mod=01 (src:mem+d8)  reg=011 (dst:EBX)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord5F(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord60(fn): mod=01 (src:mem+d8)  reg=100 (dst:ESP)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord60(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regEAX + this.getIPDisp()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord61(fn): mod=01 (src:mem+d8)  reg=100 (dst:ESP)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord61(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regECX + this.getIPDisp()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord62(fn): mod=01 (src:mem+d8)  reg=100 (dst:ESP)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord62(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regEDX + this.getIPDisp()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord63(fn): mod=01 (src:mem+d8)  reg=100 (dst:ESP)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord63(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord64(fn): mod=01 (src:mem+d8)  reg=100 (dst:ESP)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord64(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.getSIBAddr(1) + this.getIPDisp()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord65(fn): mod=01 (src:mem+d8)  reg=100 (dst:ESP)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord65(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord66(fn): mod=01 (src:mem+d8)  reg=100 (dst:ESP)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord66(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord67(fn): mod=01 (src:mem+d8)  reg=100 (dst:ESP)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord67(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord68(fn): mod=01 (src:mem+d8)  reg=101 (dst:EBP)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord68(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEAX + this.getIPDisp()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord69(fn): mod=01 (src:mem+d8)  reg=101 (dst:EBP)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord69(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regECX + this.getIPDisp()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord6A(fn): mod=01 (src:mem+d8)  reg=101 (dst:EBP)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord6A(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEDX + this.getIPDisp()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord6B(fn): mod=01 (src:mem+d8)  reg=101 (dst:EBP)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord6B(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord6C(fn): mod=01 (src:mem+d8)  reg=101 (dst:EBP)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord6C(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.getSIBAddr(1) + this.getIPDisp()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord6D(fn): mod=01 (src:mem+d8)  reg=101 (dst:EBP)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord6D(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord6E(fn): mod=01 (src:mem+d8)  reg=101 (dst:EBP)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord6E(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord6F(fn): mod=01 (src:mem+d8)  reg=101 (dst:EBP)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord6F(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord70(fn): mod=01 (src:mem+d8)  reg=110 (dst:ESI)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord70(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEAX + this.getIPDisp()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord71(fn): mod=01 (src:mem+d8)  reg=110 (dst:ESI)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord71(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regECX + this.getIPDisp()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord72(fn): mod=01 (src:mem+d8)  reg=110 (dst:ESI)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord72(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEDX + this.getIPDisp()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord73(fn): mod=01 (src:mem+d8)  reg=110 (dst:ESI)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord73(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord74(fn): mod=01 (src:mem+d8)  reg=110 (dst:ESI)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord74(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.getSIBAddr(1) + this.getIPDisp()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord75(fn): mod=01 (src:mem+d8)  reg=110 (dst:ESI)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord75(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord76(fn): mod=01 (src:mem+d8)  reg=110 (dst:ESI)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord76(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord77(fn): mod=01 (src:mem+d8)  reg=110 (dst:ESI)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord77(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord78(fn): mod=01 (src:mem+d8)  reg=111 (dst:EDI)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord78(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEAX + this.getIPDisp()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord79(fn): mod=01 (src:mem+d8)  reg=111 (dst:EDI)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord79(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regECX + this.getIPDisp()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord7A(fn): mod=01 (src:mem+d8)  reg=111 (dst:EDI)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord7A(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEDX + this.getIPDisp()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord7B(fn): mod=01 (src:mem+d8)  reg=111 (dst:EDI)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord7B(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord7C(fn): mod=01 (src:mem+d8)  reg=111 (dst:EDI)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord7C(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.getSIBAddr(1) + this.getIPDisp()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord7D(fn): mod=01 (src:mem+d8)  reg=111 (dst:EDI)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord7D(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord7E(fn): mod=01 (src:mem+d8)  reg=111 (dst:EDI)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord7E(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord7F(fn): mod=01 (src:mem+d8)  reg=111 (dst:EDI)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord7F(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord80(fn): mod=10 (src:mem+d16)  reg=000 (dst:EAX)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord80(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEAX + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord81(fn): mod=10 (src:mem+d16)  reg=000 (dst:EAX)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord81(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regECX + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord82(fn): mod=10 (src:mem+d16)  reg=000 (dst:EAX)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord82(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEDX + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord83(fn): mod=10 (src:mem+d16)  reg=000 (dst:EAX)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord83(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord84(fn): mod=10 (src:mem+d16)  reg=000 (dst:EAX)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord84(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.getSIBAddr(2) + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord85(fn): mod=10 (src:mem+d16)  reg=000 (dst:EAX)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord85(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord86(fn): mod=10 (src:mem+d16)  reg=000 (dst:EAX)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord86(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regESI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord87(fn): mod=10 (src:mem+d16)  reg=000 (dst:EAX)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord87(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPAddr()));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord88(fn): mod=10 (src:mem+d16)  reg=001 (dst:ECX)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord88(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEAX + this.getIPAddr()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord89(fn): mod=10 (src:mem+d16)  reg=001 (dst:ECX)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord89(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regECX + this.getIPAddr()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord8A(fn): mod=10 (src:mem+d16)  reg=001 (dst:ECX)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord8A(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEDX + this.getIPAddr()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord8B(fn): mod=10 (src:mem+d16)  reg=001 (dst:ECX)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord8B(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPAddr()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord8C(fn): mod=10 (src:mem+d16)  reg=001 (dst:ECX)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord8C(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.getSIBAddr(2) + this.getIPAddr()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord8D(fn): mod=10 (src:mem+d16)  reg=001 (dst:ECX)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord8D(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPAddr()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord8E(fn): mod=10 (src:mem+d16)  reg=001 (dst:ECX)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord8E(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regESI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord8F(fn): mod=10 (src:mem+d16)  reg=001 (dst:ECX)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord8F(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPAddr()));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord90(fn): mod=10 (src:mem+d16)  reg=010 (dst:EDX)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord90(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEAX + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord91(fn): mod=10 (src:mem+d16)  reg=010 (dst:EDX)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord91(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regECX + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord92(fn): mod=10 (src:mem+d16)  reg=010 (dst:EDX)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord92(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEDX + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord93(fn): mod=10 (src:mem+d16)  reg=010 (dst:EDX)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord93(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord94(fn): mod=10 (src:mem+d16)  reg=010 (dst:EDX)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord94(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.getSIBAddr(2) + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord95(fn): mod=10 (src:mem+d16)  reg=010 (dst:EDX)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord95(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord96(fn): mod=10 (src:mem+d16)  reg=010 (dst:EDX)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord96(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regESI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord97(fn): mod=10 (src:mem+d16)  reg=010 (dst:EDX)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord97(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPAddr()));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord98(fn): mod=10 (src:mem+d16)  reg=011 (dst:EBX)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord98(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEAX + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord99(fn): mod=10 (src:mem+d16)  reg=011 (dst:EBX)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord99(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regECX + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord9A(fn): mod=10 (src:mem+d16)  reg=011 (dst:EBX)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord9A(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEDX + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord9B(fn): mod=10 (src:mem+d16)  reg=011 (dst:EBX)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord9B(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord9C(fn): mod=10 (src:mem+d16)  reg=011 (dst:EBX)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord9C(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.getSIBAddr(2) + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord9D(fn): mod=10 (src:mem+d16)  reg=011 (dst:EBX)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord9D(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord9E(fn): mod=10 (src:mem+d16)  reg=011 (dst:EBX)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord9E(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regESI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWord9F(fn): mod=10 (src:mem+d16)  reg=011 (dst:EBX)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWord9F(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPAddr()));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordA0(fn): mod=10 (src:mem+d16)  reg=100 (dst:ESP)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordA0(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regEAX + this.getIPAddr()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordA1(fn): mod=10 (src:mem+d16)  reg=100 (dst:ESP)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordA1(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regECX + this.getIPAddr()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordA2(fn): mod=10 (src:mem+d16)  reg=100 (dst:ESP)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordA2(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regEDX + this.getIPAddr()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordA3(fn): mod=10 (src:mem+d16)  reg=100 (dst:ESP)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordA3(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regEBX + this.getIPAddr()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordA4(fn): mod=10 (src:mem+d16)  reg=100 (dst:ESP)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordA4(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.getSIBAddr(2) + this.getIPAddr()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordA5(fn): mod=10 (src:mem+d16)  reg=100 (dst:ESP)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordA5(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPAddr()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordA6(fn): mod=10 (src:mem+d16)  reg=100 (dst:ESP)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordA6(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regESI + this.getIPAddr()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordA7(fn): mod=10 (src:mem+d16)  reg=100 (dst:ESP)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordA7(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getEAWordData(this.regEDI + this.getIPAddr()));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordA8(fn): mod=10 (src:mem+d16)  reg=101 (dst:EBP)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordA8(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEAX + this.getIPAddr()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordA9(fn): mod=10 (src:mem+d16)  reg=101 (dst:EBP)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordA9(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regECX + this.getIPAddr()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordAA(fn): mod=10 (src:mem+d16)  reg=101 (dst:EBP)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordAA(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEDX + this.getIPAddr()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordAB(fn): mod=10 (src:mem+d16)  reg=101 (dst:EBP)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordAB(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX + this.getIPAddr()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordAC(fn): mod=10 (src:mem+d16)  reg=101 (dst:EBP)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordAC(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.getSIBAddr(2) + this.getIPAddr()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordAD(fn): mod=10 (src:mem+d16)  reg=101 (dst:EBP)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordAD(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPAddr()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordAE(fn): mod=10 (src:mem+d16)  reg=101 (dst:EBP)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordAE(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regESI + this.getIPAddr()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordAF(fn): mod=10 (src:mem+d16)  reg=101 (dst:EBP)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordAF(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEDI + this.getIPAddr()));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordB0(fn): mod=10 (src:mem+d16)  reg=110 (dst:ESI)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordB0(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEAX + this.getIPAddr()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordB1(fn): mod=10 (src:mem+d16)  reg=110 (dst:ESI)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordB1(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regECX + this.getIPAddr()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordB2(fn): mod=10 (src:mem+d16)  reg=110 (dst:ESI)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordB2(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEDX + this.getIPAddr()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordB3(fn): mod=10 (src:mem+d16)  reg=110 (dst:ESI)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordB3(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX + this.getIPAddr()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordB4(fn): mod=10 (src:mem+d16)  reg=110 (dst:ESI)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordB4(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.getSIBAddr(2) + this.getIPAddr()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordB5(fn): mod=10 (src:mem+d16)  reg=110 (dst:ESI)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordB5(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPAddr()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordB6(fn): mod=10 (src:mem+d16)  reg=110 (dst:ESI)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordB6(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regESI + this.getIPAddr()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordB7(fn): mod=10 (src:mem+d16)  reg=110 (dst:ESI)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordB7(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEDI + this.getIPAddr()));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordB8(fn): mod=10 (src:mem+d16)  reg=111 (dst:EDI)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordB8(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEAX + this.getIPAddr()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordB9(fn): mod=10 (src:mem+d16)  reg=111 (dst:EDI)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordB9(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regECX + this.getIPAddr()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordBA(fn): mod=10 (src:mem+d16)  reg=111 (dst:EDI)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordBA(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEDX + this.getIPAddr()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordBB(fn): mod=10 (src:mem+d16)  reg=111 (dst:EDI)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordBB(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX + this.getIPAddr()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordBC(fn): mod=10 (src:mem+d16)  reg=111 (dst:EDI)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordBC(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.getSIBAddr(2) + this.getIPAddr()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordBD(fn): mod=10 (src:mem+d16)  reg=111 (dst:EDI)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordBD(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPAddr()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordBE(fn): mod=10 (src:mem+d16)  reg=111 (dst:EDI)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordBE(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regESI + this.getIPAddr()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordBF(fn): mod=10 (src:mem+d16)  reg=111 (dst:EDI)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordBF(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEDI + this.getIPAddr()));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32RegWordC0(fn): mod=11 (src:reg)  reg=000 (dst:EAX)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordC0(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.regEAX & this.dataMask);
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                },
                /**
                 * opMod32RegWordC1(fn): mod=11 (src:reg)  reg=000 (dst:EAX)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordC1(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.regECX & this.dataMask);
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiCL; this.backTrack.btiAH = this.backTrack.btiCH;
                    }
                },
                /**
                 * opMod32RegWordC2(fn): mod=11 (src:reg)  reg=000 (dst:EAX)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordC2(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.regEDX & this.dataMask);
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiDL; this.backTrack.btiAH = this.backTrack.btiDH;
                    }
                },
                /**
                 * opMod32RegWordC3(fn): mod=11 (src:reg)  reg=000 (dst:EAX)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordC3(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.regEBX & this.dataMask);
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiBL; this.backTrack.btiAH = this.backTrack.btiBH;
                    }
                },
                /**
                 * opMod32RegWordC4(fn): mod=11 (src:reg)  reg=000 (dst:EAX)  r/m=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordC4(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.getSP() & this.dataMask);
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = X86.BACKTRACK.SP_LO; this.backTrack.btiAH = X86.BACKTRACK.SP_HI;
                    }
                },
                /**
                 * opMod32RegWordC5(fn): mod=11 (src:reg)  reg=000 (dst:EAX)  r/m=101 (EBP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordC5(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.regEBP & this.dataMask);
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiBPLo; this.backTrack.btiAH = this.backTrack.btiBPHi;
                    }
                },
                /**
                 * opMod32RegWordC6(fn): mod=11 (src:reg)  reg=000 (dst:EAX)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordC6(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.regESI & this.dataMask);
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiSILo; this.backTrack.btiAH = this.backTrack.btiSIHi;
                    }
                },
                /**
                 * opMod32RegWordC7(fn): mod=11 (src:reg)  reg=000 (dst:EAX)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordC7(fn) {
                    var w = fn.call(this, this.regEAX & this.dataMask, this.regEDI & this.dataMask);
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiDILo; this.backTrack.btiAH = this.backTrack.btiDIHi;
                    }
                },
                /**
                 * opMod32RegWordC8(fn): mod=11 (src:reg)  reg=001 (dst:ECX)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordC8(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.regEAX & this.dataMask);
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiAL; this.backTrack.btiCH = this.backTrack.btiAH;
                    }
                },
                /**
                 * opMod32RegWordC9(fn): mod=11 (src:reg)  reg=001 (dst:ECX)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordC9(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.regECX & this.dataMask);
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                },
                /**
                 * opMod32RegWordCA(fn): mod=11 (src:reg)  reg=001 (dst:ECX)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordCA(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.regEDX & this.dataMask);
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiDL; this.backTrack.btiCH = this.backTrack.btiDH;
                    }
                },
                /**
                 * opMod32RegWordCB(fn): mod=11 (src:reg)  reg=001 (dst:ECX)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordCB(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.regEBX & this.dataMask);
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiBL; this.backTrack.btiCH = this.backTrack.btiBH;
                    }
                },
                /**
                 * opMod32RegWordCC(fn): mod=11 (src:reg)  reg=001 (dst:ECX)  r/m=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordCC(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.getSP() & this.dataMask);
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = X86.BACKTRACK.SP_LO; this.backTrack.btiCH = X86.BACKTRACK.SP_HI;
                    }
                },
                /**
                 * opMod32RegWordCD(fn): mod=11 (src:reg)  reg=001 (dst:ECX)  r/m=101 (EBP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordCD(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.regEBP & this.dataMask);
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiBPLo; this.backTrack.btiCH = this.backTrack.btiBPHi;
                    }
                },
                /**
                 * opMod32RegWordCE(fn): mod=11 (src:reg)  reg=001 (dst:ECX)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordCE(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.regESI & this.dataMask);
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiSILo; this.backTrack.btiCH = this.backTrack.btiSIHi;
                    }
                },
                /**
                 * opMod32RegWordCF(fn): mod=11 (src:reg)  reg=001 (dst:ECX)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordCF(fn) {
                    var w = fn.call(this, this.regECX & this.dataMask, this.regEDI & this.dataMask);
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiDILo; this.backTrack.btiCH = this.backTrack.btiDIHi;
                    }
                },
                /**
                 * opMod32RegWordD0(fn): mod=11 (src:reg)  reg=010 (dst:EDX)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordD0(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.regEAX & this.dataMask);
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiAL; this.backTrack.btiDH = this.backTrack.btiAH;
                    }
                },
                /**
                 * opMod32RegWordD1(fn): mod=11 (src:reg)  reg=010 (dst:EDX)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordD1(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.regECX & this.dataMask);
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiCL; this.backTrack.btiDH = this.backTrack.btiCH;
                    }
                },
                /**
                 * opMod32RegWordD2(fn): mod=11 (src:reg)  reg=010 (dst:EDX)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordD2(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.regEDX & this.dataMask);
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                },
                /**
                 * opMod32RegWordD3(fn): mod=11 (src:reg)  reg=010 (dst:EDX)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordD3(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.regEBX & this.dataMask);
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiBL; this.backTrack.btiDH = this.backTrack.btiBH;
                    }
                },
                /**
                 * opMod32RegWordD4(fn): mod=11 (src:reg)  reg=010 (dst:EDX)  r/m=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordD4(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.getSP() & this.dataMask);
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = X86.BACKTRACK.SP_LO; this.backTrack.btiDH = X86.BACKTRACK.SP_HI;
                    }
                },
                /**
                 * opMod32RegWordD5(fn): mod=11 (src:reg)  reg=010 (dst:EDX)  r/m=101 (EBP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordD5(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.regEBP & this.dataMask);
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiBPLo; this.backTrack.btiDH = this.backTrack.btiBPHi;
                    }
                },
                /**
                 * opMod32RegWordD6(fn): mod=11 (src:reg)  reg=010 (dst:EDX)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordD6(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.regESI & this.dataMask);
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiSILo; this.backTrack.btiDH = this.backTrack.btiSIHi;
                    }
                },
                /**
                 * opMod32RegWordD7(fn): mod=11 (src:reg)  reg=010 (dst:EDX)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordD7(fn) {
                    var w = fn.call(this, this.regEDX & this.dataMask, this.regEDI & this.dataMask);
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiDILo; this.backTrack.btiDH = this.backTrack.btiDIHi;
                    }
                },
                /**
                 * opMod32RegWordD8(fn): mod=11 (src:reg)  reg=011 (dst:EBX)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordD8(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.regEAX & this.dataMask);
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiAL; this.backTrack.btiBH = this.backTrack.btiAH;
                    }
                },
                /**
                 * opMod32RegWordD9(fn): mod=11 (src:reg)  reg=011 (dst:EBX)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordD9(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.regECX & this.dataMask);
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiCL; this.backTrack.btiBH = this.backTrack.btiCH;
                    }
                },
                /**
                 * opMod32RegWordDA(fn): mod=11 (src:reg)  reg=011 (dst:EBX)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordDA(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.regEDX & this.dataMask);
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiDL; this.backTrack.btiBH = this.backTrack.btiDH;
                    }
                },
                /**
                 * opMod32RegWordDB(fn): mod=11 (src:reg)  reg=011 (dst:EBX)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordDB(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.regEBX & this.dataMask);
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                },
                /**
                 * opMod32RegWordDC(fn): mod=11 (src:reg)  reg=011 (dst:EBX)  r/m=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordDC(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.getSP() & this.dataMask);
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = X86.BACKTRACK.SP_LO; this.backTrack.btiBH = X86.BACKTRACK.SP_HI;
                    }
                },
                /**
                 * opMod32RegWordDD(fn): mod=11 (src:reg)  reg=011 (dst:EBX)  r/m=101 (EBP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordDD(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.regEBP & this.dataMask);
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiBPLo; this.backTrack.btiBH = this.backTrack.btiBPHi;
                    }
                },
                /**
                 * opMod32RegWordDE(fn): mod=11 (src:reg)  reg=011 (dst:EBX)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordDE(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.regESI & this.dataMask);
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiSILo; this.backTrack.btiBH = this.backTrack.btiSIHi;
                    }
                },
                /**
                 * opMod32RegWordDF(fn): mod=11 (src:reg)  reg=011 (dst:EBX)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordDF(fn) {
                    var w = fn.call(this, this.regEBX & this.dataMask, this.regEDI & this.dataMask);
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiDILo; this.backTrack.btiBH = this.backTrack.btiDIHi;
                    }
                },
                /**
                 * opMod32RegWordE0(fn): mod=11 (src:reg)  reg=100 (dst:ESP)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordE0(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.regEAX & this.dataMask);
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod32RegWordE1(fn): mod=11 (src:reg)  reg=100 (dst:ESP)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordE1(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.regECX & this.dataMask);
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod32RegWordE2(fn): mod=11 (src:reg)  reg=100 (dst:ESP)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordE2(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.regEDX & this.dataMask);
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod32RegWordE3(fn): mod=11 (src:reg)  reg=100 (dst:ESP)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordE3(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.regEBX & this.dataMask);
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod32RegWordE4(fn): mod=11 (src:reg)  reg=100 (dst:ESP)  r/m=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordE4(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.getSP() & this.dataMask);
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod32RegWordE5(fn): mod=11 (src:reg)  reg=100 (dst:ESP)  r/m=101 (EBP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordE5(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.regEBP & this.dataMask);
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod32RegWordE6(fn): mod=11 (src:reg)  reg=100 (dst:ESP)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordE6(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.regESI & this.dataMask);
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod32RegWordE7(fn): mod=11 (src:reg)  reg=100 (dst:ESP)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordE7(fn) {
                    var w = fn.call(this, this.getSP() & this.dataMask, this.regEDI & this.dataMask);
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod32RegWordE8(fn): mod=11 (src:reg)  reg=101 (dst:EBP)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordE8(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.regEAX & this.dataMask);
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiAL; this.backTrack.btiBPHi = this.backTrack.btiAH;
                    }
                },
                /**
                 * opMod32RegWordE9(fn): mod=11 (src:reg)  reg=101 (dst:EBP)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordE9(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.regECX & this.dataMask);
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiCL; this.backTrack.btiBPHi = this.backTrack.btiCH;
                    }
                },
                /**
                 * opMod32RegWordEA(fn): mod=11 (src:reg)  reg=101 (dst:EBP)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordEA(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.regEDX & this.dataMask);
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiDL; this.backTrack.btiBPHi = this.backTrack.btiDH;
                    }
                },
                /**
                 * opMod32RegWordEB(fn): mod=11 (src:reg)  reg=101 (dst:EBP)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordEB(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.regEBX & this.dataMask);
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiBL; this.backTrack.btiBPHi = this.backTrack.btiBH;
                    }
                },
                /**
                 * opMod32RegWordEC(fn): mod=11 (src:reg)  reg=101 (dst:EBP)  r/m=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordEC(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.getSP() & this.dataMask);
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = X86.BACKTRACK.SP_LO; this.backTrack.btiBPHi = X86.BACKTRACK.SP_HI;
                    }
                },
                /**
                 * opMod32RegWordED(fn): mod=11 (src:reg)  reg=101 (dst:EBP)  r/m=101 (EBP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordED(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.regEBP & this.dataMask);
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                },
                /**
                 * opMod32RegWordEE(fn): mod=11 (src:reg)  reg=101 (dst:EBP)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordEE(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.regESI & this.dataMask);
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiSILo; this.backTrack.btiBPHi = this.backTrack.btiSIHi;
                    }
                },
                /**
                 * opMod32RegWordEF(fn): mod=11 (src:reg)  reg=101 (dst:EBP)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordEF(fn) {
                    var w = fn.call(this, this.regEBP & this.dataMask, this.regEDI & this.dataMask);
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiDILo; this.backTrack.btiBPHi = this.backTrack.btiDIHi;
                    }
                },
                /**
                 * opMod32RegWordF0(fn): mod=11 (src:reg)  reg=110 (dst:ESI)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordF0(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.regEAX & this.dataMask);
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiAL; this.backTrack.btiSIHi = this.backTrack.btiAH;
                    }
                },
                /**
                 * opMod32RegWordF1(fn): mod=11 (src:reg)  reg=110 (dst:ESI)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordF1(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.regECX & this.dataMask);
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiCL; this.backTrack.btiSIHi = this.backTrack.btiCH;
                    }
                },
                /**
                 * opMod32RegWordF2(fn): mod=11 (src:reg)  reg=110 (dst:ESI)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordF2(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.regEDX & this.dataMask);
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiDL; this.backTrack.btiSIHi = this.backTrack.btiDH;
                    }
                },
                /**
                 * opMod32RegWordF3(fn): mod=11 (src:reg)  reg=110 (dst:ESI)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordF3(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.regEBX & this.dataMask);
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiBL; this.backTrack.btiSIHi = this.backTrack.btiBH;
                    }
                },
                /**
                 * opMod32RegWordF4(fn): mod=11 (src:reg)  reg=110 (dst:ESI)  r/m=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordF4(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.getSP() & this.dataMask);
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = X86.BACKTRACK.SP_LO; this.backTrack.btiSIHi = X86.BACKTRACK.SP_HI;
                    }
                },
                /**
                 * opMod32RegWordF5(fn): mod=11 (src:reg)  reg=110 (dst:ESI)  r/m=101 (EBP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordF5(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.regEBP & this.dataMask);
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiBPLo; this.backTrack.btiSIHi = this.backTrack.btiBPHi;
                    }
                },
                /**
                 * opMod32RegWordF6(fn): mod=11 (src:reg)  reg=110 (dst:ESI)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordF6(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.regESI & this.dataMask);
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                },
                /**
                 * opMod32RegWordF7(fn): mod=11 (src:reg)  reg=110 (dst:ESI)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordF7(fn) {
                    var w = fn.call(this, this.regESI & this.dataMask, this.regEDI & this.dataMask);
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiDILo; this.backTrack.btiSIHi = this.backTrack.btiDIHi;
                    }
                },
                /**
                 * opMod32RegWordF8(fn): mod=11 (src:reg)  reg=111 (dst:EDI)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordF8(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.regEAX & this.dataMask);
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiAL; this.backTrack.btiDIHi = this.backTrack.btiAH;
                    }
                },
                /**
                 * opMod32RegWordF9(fn): mod=11 (src:reg)  reg=111 (dst:EDI)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordF9(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.regECX & this.dataMask);
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiCL; this.backTrack.btiDIHi = this.backTrack.btiCH;
                    }
                },
                /**
                 * opMod32RegWordFA(fn): mod=11 (src:reg)  reg=111 (dst:EDI)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordFA(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.regEDX & this.dataMask);
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiDL; this.backTrack.btiDIHi = this.backTrack.btiDH;
                    }
                },
                /**
                 * opMod32RegWordFB(fn): mod=11 (src:reg)  reg=111 (dst:EDI)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordFB(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.regEBX & this.dataMask);
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiBL; this.backTrack.btiDIHi = this.backTrack.btiBH;
                    }
                },
                /**
                 * opMod32RegWordFC(fn): mod=11 (src:reg)  reg=111 (dst:EDI)  r/m=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordFC(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.getSP() & this.dataMask);
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = X86.BACKTRACK.SP_LO; this.backTrack.btiDIHi = X86.BACKTRACK.SP_HI;
                    }
                },
                /**
                 * opMod32RegWordFD(fn): mod=11 (src:reg)  reg=111 (dst:EDI)  r/m=101 (EBP)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordFD(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.regEBP & this.dataMask);
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiBPLo; this.backTrack.btiDIHi = this.backTrack.btiBPHi;
                    }
                },
                /**
                 * opMod32RegWordFE(fn): mod=11 (src:reg)  reg=111 (dst:EDI)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordFE(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.regESI & this.dataMask);
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiSILo; this.backTrack.btiDIHi = this.backTrack.btiSIHi;
                    }
                },
                /**
                 * opMod32RegWordFF(fn): mod=11 (src:reg)  reg=111 (dst:EDI)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32RegWordFF(fn) {
                    var w = fn.call(this, this.regEDI & this.dataMask, this.regEDI & this.dataMask);
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                }
            ];
            
            X86ModW32.aOpModMem = [
                /**
                 * opMod32MemWord00(fn): mod=00 (dst:mem)  reg=000 (src:EAX)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord00(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEAX), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord01(fn): mod=00 (dst:mem)  reg=000 (src:EAX)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord01(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regECX), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord02(fn): mod=00 (dst:mem)  reg=000 (src:EAX)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord02(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDX), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord03(fn): mod=00 (dst:mem)  reg=000 (src:EAX)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord03(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord04(fn): mod=00 (dst:mem)  reg=000 (src:EAX)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord04(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getSIBAddr(0)), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord05(fn): mod=00 (dst:mem)  reg=000 (src:EAX)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord05(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32MemWord06(fn): mod=00 (dst:mem)  reg=000 (src:EAX)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord06(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord07(fn): mod=00 (dst:mem)  reg=000 (src:EAX)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord07(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord08(fn): mod=00 (dst:mem)  reg=001 (src:ECX)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord08(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEAX), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord09(fn): mod=00 (dst:mem)  reg=001 (src:ECX)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord09(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regECX), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord0A(fn): mod=00 (dst:mem)  reg=001 (src:ECX)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord0A(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDX), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord0B(fn): mod=00 (dst:mem)  reg=001 (src:ECX)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord0B(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord0C(fn): mod=00 (dst:mem)  reg=001 (src:ECX)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord0C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getSIBAddr(0)), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord0D(fn): mod=00 (dst:mem)  reg=001 (src:ECX)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord0D(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32MemWord0E(fn): mod=00 (dst:mem)  reg=001 (src:ECX)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord0E(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord0F(fn): mod=00 (dst:mem)  reg=001 (src:ECX)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord0F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord10(fn): mod=00 (dst:mem)  reg=010 (src:EDX)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord10(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEAX), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord11(fn): mod=00 (dst:mem)  reg=010 (src:EDX)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord11(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regECX), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord12(fn): mod=00 (dst:mem)  reg=010 (src:EDX)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord12(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDX), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord13(fn): mod=00 (dst:mem)  reg=010 (src:EDX)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord13(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord14(fn): mod=00 (dst:mem)  reg=010 (src:EDX)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord14(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getSIBAddr(0)), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord15(fn): mod=00 (dst:mem)  reg=010 (src:EDX)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord15(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32MemWord16(fn): mod=00 (dst:mem)  reg=010 (src:EDX)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord16(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord17(fn): mod=00 (dst:mem)  reg=010 (src:EDX)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord17(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord18(fn): mod=00 (dst:mem)  reg=011 (src:EBX)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord18(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEAX), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord19(fn): mod=00 (dst:mem)  reg=011 (src:EBX)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord19(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regECX), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord1A(fn): mod=00 (dst:mem)  reg=011 (src:EBX)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord1A(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDX), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord1B(fn): mod=00 (dst:mem)  reg=011 (src:EBX)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord1B(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord1C(fn): mod=00 (dst:mem)  reg=011 (src:EBX)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord1C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getSIBAddr(0)), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord1D(fn): mod=00 (dst:mem)  reg=011 (src:EBX)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord1D(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32MemWord1E(fn): mod=00 (dst:mem)  reg=011 (src:EBX)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord1E(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord1F(fn): mod=00 (dst:mem)  reg=011 (src:EBX)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord1F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord20(fn): mod=00 (dst:mem)  reg=100 (src:ESP)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord20(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEAX), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord21(fn): mod=00 (dst:mem)  reg=100 (src:ESP)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord21(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regECX), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord22(fn): mod=00 (dst:mem)  reg=100 (src:ESP)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord22(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDX), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord23(fn): mod=00 (dst:mem)  reg=100 (src:ESP)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord23(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord24(fn): mod=00 (dst:mem)  reg=100 (src:ESP)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord24(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getSIBAddr(0)), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord25(fn): mod=00 (dst:mem)  reg=100 (src:ESP)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord25(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32MemWord26(fn): mod=00 (dst:mem)  reg=100 (src:ESP)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord26(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord27(fn): mod=00 (dst:mem)  reg=100 (src:ESP)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord27(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord28(fn): mod=00 (dst:mem)  reg=101 (src:EBP)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord28(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEAX), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord29(fn): mod=00 (dst:mem)  reg=101 (src:EBP)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord29(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regECX), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord2A(fn): mod=00 (dst:mem)  reg=101 (src:EBP)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord2A(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDX), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord2B(fn): mod=00 (dst:mem)  reg=101 (src:EBP)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord2B(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord2C(fn): mod=00 (dst:mem)  reg=101 (src:EBP)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord2C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getSIBAddr(0)), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord2D(fn): mod=00 (dst:mem)  reg=101 (src:EBP)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord2D(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32MemWord2E(fn): mod=00 (dst:mem)  reg=101 (src:EBP)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord2E(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord2F(fn): mod=00 (dst:mem)  reg=101 (src:EBP)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord2F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord30(fn): mod=00 (dst:mem)  reg=110 (src:ESI)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord30(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEAX), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord31(fn): mod=00 (dst:mem)  reg=110 (src:ESI)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord31(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regECX), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord32(fn): mod=00 (dst:mem)  reg=110 (src:ESI)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord32(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDX), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord33(fn): mod=00 (dst:mem)  reg=110 (src:ESI)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord33(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord34(fn): mod=00 (dst:mem)  reg=110 (src:ESI)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord34(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getSIBAddr(0)), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord35(fn): mod=00 (dst:mem)  reg=110 (src:ESI)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord35(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32MemWord36(fn): mod=00 (dst:mem)  reg=110 (src:ESI)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord36(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord37(fn): mod=00 (dst:mem)  reg=110 (src:ESI)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord37(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord38(fn): mod=00 (dst:mem)  reg=111 (src:EDI)  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord38(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEAX), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord39(fn): mod=00 (dst:mem)  reg=111 (src:EDI)  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord39(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regECX), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord3A(fn): mod=00 (dst:mem)  reg=111 (src:EDI)  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord3A(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDX), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord3B(fn): mod=00 (dst:mem)  reg=111 (src:EDI)  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord3B(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord3C(fn): mod=00 (dst:mem)  reg=111 (src:EDI)  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord3C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getSIBAddr(0)), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord3D(fn): mod=00 (dst:mem)  reg=111 (src:EDI)  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord3D(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32MemWord3E(fn): mod=00 (dst:mem)  reg=111 (src:EDI)  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord3E(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord3F(fn): mod=00 (dst:mem)  reg=111 (src:EDI)  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord3F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32MemWord40(fn): mod=01 (dst:mem+d8)  reg=000 (src:EAX)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord40(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEAX + this.getIPDisp()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord41(fn): mod=01 (dst:mem+d8)  reg=000 (src:EAX)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord41(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regECX + this.getIPDisp()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord42(fn): mod=01 (dst:mem+d8)  reg=000 (src:EAX)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord42(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDX + this.getIPDisp()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord43(fn): mod=01 (dst:mem+d8)  reg=000 (src:EAX)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord43(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord44(fn): mod=01 (dst:mem+d8)  reg=000 (src:EAX)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord44(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getSIBAddr(1) + this.getIPDisp()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord45(fn): mod=01 (dst:mem+d8)  reg=000 (src:EAX)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord45(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord46(fn): mod=01 (dst:mem+d8)  reg=000 (src:EAX)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord46(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord47(fn): mod=01 (dst:mem+d8)  reg=000 (src:EAX)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord47(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord48(fn): mod=01 (dst:mem+d8)  reg=001 (src:ECX)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord48(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEAX + this.getIPDisp()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord49(fn): mod=01 (dst:mem+d8)  reg=001 (src:ECX)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord49(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regECX + this.getIPDisp()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord4A(fn): mod=01 (dst:mem+d8)  reg=001 (src:ECX)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord4A(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDX + this.getIPDisp()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord4B(fn): mod=01 (dst:mem+d8)  reg=001 (src:ECX)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord4B(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord4C(fn): mod=01 (dst:mem+d8)  reg=001 (src:ECX)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord4C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getSIBAddr(1) + this.getIPDisp()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord4D(fn): mod=01 (dst:mem+d8)  reg=001 (src:ECX)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord4D(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord4E(fn): mod=01 (dst:mem+d8)  reg=001 (src:ECX)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord4E(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord4F(fn): mod=01 (dst:mem+d8)  reg=001 (src:ECX)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord4F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord50(fn): mod=01 (dst:mem+d8)  reg=010 (src:EDX)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord50(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEAX + this.getIPDisp()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord51(fn): mod=01 (dst:mem+d8)  reg=010 (src:EDX)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord51(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regECX + this.getIPDisp()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord52(fn): mod=01 (dst:mem+d8)  reg=010 (src:EDX)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord52(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDX + this.getIPDisp()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord53(fn): mod=01 (dst:mem+d8)  reg=010 (src:EDX)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord53(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord54(fn): mod=01 (dst:mem+d8)  reg=010 (src:EDX)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord54(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getSIBAddr(1) + this.getIPDisp()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord55(fn): mod=01 (dst:mem+d8)  reg=010 (src:EDX)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord55(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord56(fn): mod=01 (dst:mem+d8)  reg=010 (src:EDX)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord56(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord57(fn): mod=01 (dst:mem+d8)  reg=010 (src:EDX)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord57(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord58(fn): mod=01 (dst:mem+d8)  reg=011 (src:EBX)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord58(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEAX + this.getIPDisp()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord59(fn): mod=01 (dst:mem+d8)  reg=011 (src:EBX)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord59(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regECX + this.getIPDisp()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord5A(fn): mod=01 (dst:mem+d8)  reg=011 (src:EBX)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord5A(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDX + this.getIPDisp()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord5B(fn): mod=01 (dst:mem+d8)  reg=011 (src:EBX)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord5B(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord5C(fn): mod=01 (dst:mem+d8)  reg=011 (src:EBX)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord5C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getSIBAddr(1) + this.getIPDisp()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord5D(fn): mod=01 (dst:mem+d8)  reg=011 (src:EBX)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord5D(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord5E(fn): mod=01 (dst:mem+d8)  reg=011 (src:EBX)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord5E(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord5F(fn): mod=01 (dst:mem+d8)  reg=011 (src:EBX)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord5F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord60(fn): mod=01 (dst:mem+d8)  reg=100 (src:ESP)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord60(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEAX + this.getIPDisp()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord61(fn): mod=01 (dst:mem+d8)  reg=100 (src:ESP)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord61(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regECX + this.getIPDisp()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord62(fn): mod=01 (dst:mem+d8)  reg=100 (src:ESP)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord62(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDX + this.getIPDisp()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord63(fn): mod=01 (dst:mem+d8)  reg=100 (src:ESP)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord63(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord64(fn): mod=01 (dst:mem+d8)  reg=100 (src:ESP)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord64(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getSIBAddr(1) + this.getIPDisp()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord65(fn): mod=01 (dst:mem+d8)  reg=100 (src:ESP)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord65(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord66(fn): mod=01 (dst:mem+d8)  reg=100 (src:ESP)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord66(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord67(fn): mod=01 (dst:mem+d8)  reg=100 (src:ESP)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord67(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord68(fn): mod=01 (dst:mem+d8)  reg=101 (src:EBP)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord68(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEAX + this.getIPDisp()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord69(fn): mod=01 (dst:mem+d8)  reg=101 (src:EBP)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord69(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regECX + this.getIPDisp()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord6A(fn): mod=01 (dst:mem+d8)  reg=101 (src:EBP)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord6A(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDX + this.getIPDisp()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord6B(fn): mod=01 (dst:mem+d8)  reg=101 (src:EBP)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord6B(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord6C(fn): mod=01 (dst:mem+d8)  reg=101 (src:EBP)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord6C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getSIBAddr(1) + this.getIPDisp()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord6D(fn): mod=01 (dst:mem+d8)  reg=101 (src:EBP)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord6D(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord6E(fn): mod=01 (dst:mem+d8)  reg=101 (src:EBP)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord6E(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord6F(fn): mod=01 (dst:mem+d8)  reg=101 (src:EBP)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord6F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord70(fn): mod=01 (dst:mem+d8)  reg=110 (src:ESI)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord70(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEAX + this.getIPDisp()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord71(fn): mod=01 (dst:mem+d8)  reg=110 (src:ESI)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord71(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regECX + this.getIPDisp()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord72(fn): mod=01 (dst:mem+d8)  reg=110 (src:ESI)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord72(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDX + this.getIPDisp()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord73(fn): mod=01 (dst:mem+d8)  reg=110 (src:ESI)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord73(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord74(fn): mod=01 (dst:mem+d8)  reg=110 (src:ESI)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord74(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getSIBAddr(1) + this.getIPDisp()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord75(fn): mod=01 (dst:mem+d8)  reg=110 (src:ESI)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord75(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord76(fn): mod=01 (dst:mem+d8)  reg=110 (src:ESI)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord76(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord77(fn): mod=01 (dst:mem+d8)  reg=110 (src:ESI)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord77(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord78(fn): mod=01 (dst:mem+d8)  reg=111 (src:EDI)  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord78(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEAX + this.getIPDisp()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord79(fn): mod=01 (dst:mem+d8)  reg=111 (src:EDI)  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord79(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regECX + this.getIPDisp()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord7A(fn): mod=01 (dst:mem+d8)  reg=111 (src:EDI)  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord7A(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDX + this.getIPDisp()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord7B(fn): mod=01 (dst:mem+d8)  reg=111 (src:EDI)  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord7B(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord7C(fn): mod=01 (dst:mem+d8)  reg=111 (src:EDI)  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord7C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getSIBAddr(1) + this.getIPDisp()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord7D(fn): mod=01 (dst:mem+d8)  reg=111 (src:EDI)  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord7D(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord7E(fn): mod=01 (dst:mem+d8)  reg=111 (src:EDI)  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord7E(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord7F(fn): mod=01 (dst:mem+d8)  reg=111 (src:EDI)  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord7F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord80(fn): mod=10 (dst:mem+d16)  reg=000 (src:EAX)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord80(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEAX + this.getIPAddr()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord81(fn): mod=10 (dst:mem+d16)  reg=000 (src:EAX)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord81(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regECX + this.getIPAddr()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord82(fn): mod=10 (dst:mem+d16)  reg=000 (src:EAX)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord82(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDX + this.getIPAddr()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord83(fn): mod=10 (dst:mem+d16)  reg=000 (src:EAX)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord83(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord84(fn): mod=10 (dst:mem+d16)  reg=000 (src:EAX)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord84(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getSIBAddr(2) + this.getIPAddr()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord85(fn): mod=10 (dst:mem+d16)  reg=000 (src:EAX)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord85(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord86(fn): mod=10 (dst:mem+d16)  reg=000 (src:EAX)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord86(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord87(fn): mod=10 (dst:mem+d16)  reg=000 (src:EAX)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord87(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regEAX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord88(fn): mod=10 (dst:mem+d16)  reg=001 (src:ECX)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord88(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEAX + this.getIPAddr()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord89(fn): mod=10 (dst:mem+d16)  reg=001 (src:ECX)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord89(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regECX + this.getIPAddr()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord8A(fn): mod=10 (dst:mem+d16)  reg=001 (src:ECX)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord8A(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDX + this.getIPAddr()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord8B(fn): mod=10 (dst:mem+d16)  reg=001 (src:ECX)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord8B(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord8C(fn): mod=10 (dst:mem+d16)  reg=001 (src:ECX)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord8C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getSIBAddr(2) + this.getIPAddr()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord8D(fn): mod=10 (dst:mem+d16)  reg=001 (src:ECX)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord8D(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord8E(fn): mod=10 (dst:mem+d16)  reg=001 (src:ECX)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord8E(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord8F(fn): mod=10 (dst:mem+d16)  reg=001 (src:ECX)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord8F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regECX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord90(fn): mod=10 (dst:mem+d16)  reg=010 (src:EDX)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord90(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEAX + this.getIPAddr()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord91(fn): mod=10 (dst:mem+d16)  reg=010 (src:EDX)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord91(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regECX + this.getIPAddr()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord92(fn): mod=10 (dst:mem+d16)  reg=010 (src:EDX)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord92(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDX + this.getIPAddr()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord93(fn): mod=10 (dst:mem+d16)  reg=010 (src:EDX)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord93(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord94(fn): mod=10 (dst:mem+d16)  reg=010 (src:EDX)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord94(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getSIBAddr(2) + this.getIPAddr()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord95(fn): mod=10 (dst:mem+d16)  reg=010 (src:EDX)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord95(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord96(fn): mod=10 (dst:mem+d16)  reg=010 (src:EDX)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord96(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord97(fn): mod=10 (dst:mem+d16)  reg=010 (src:EDX)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord97(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regEDX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord98(fn): mod=10 (dst:mem+d16)  reg=011 (src:EBX)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord98(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEAX + this.getIPAddr()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord99(fn): mod=10 (dst:mem+d16)  reg=011 (src:EBX)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord99(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regECX + this.getIPAddr()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord9A(fn): mod=10 (dst:mem+d16)  reg=011 (src:EBX)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord9A(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDX + this.getIPAddr()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord9B(fn): mod=10 (dst:mem+d16)  reg=011 (src:EBX)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord9B(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord9C(fn): mod=10 (dst:mem+d16)  reg=011 (src:EBX)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord9C(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getSIBAddr(2) + this.getIPAddr()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord9D(fn): mod=10 (dst:mem+d16)  reg=011 (src:EBX)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord9D(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord9E(fn): mod=10 (dst:mem+d16)  reg=011 (src:EBX)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord9E(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWord9F(fn): mod=10 (dst:mem+d16)  reg=011 (src:EBX)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWord9F(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regEBX & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordA0(fn): mod=10 (dst:mem+d16)  reg=100 (src:ESP)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordA0(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEAX + this.getIPAddr()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordA1(fn): mod=10 (dst:mem+d16)  reg=100 (src:ESP)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordA1(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regECX + this.getIPAddr()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordA2(fn): mod=10 (dst:mem+d16)  reg=100 (src:ESP)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordA2(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDX + this.getIPAddr()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordA3(fn): mod=10 (dst:mem+d16)  reg=100 (src:ESP)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordA3(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordA4(fn): mod=10 (dst:mem+d16)  reg=100 (src:ESP)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordA4(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getSIBAddr(2) + this.getIPAddr()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordA5(fn): mod=10 (dst:mem+d16)  reg=100 (src:ESP)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordA5(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordA6(fn): mod=10 (dst:mem+d16)  reg=100 (src:ESP)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordA6(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordA7(fn): mod=10 (dst:mem+d16)  reg=100 (src:ESP)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordA7(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.getSP() & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordA8(fn): mod=10 (dst:mem+d16)  reg=101 (src:EBP)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordA8(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEAX + this.getIPAddr()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordA9(fn): mod=10 (dst:mem+d16)  reg=101 (src:EBP)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordA9(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regECX + this.getIPAddr()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordAA(fn): mod=10 (dst:mem+d16)  reg=101 (src:EBP)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordAA(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDX + this.getIPAddr()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordAB(fn): mod=10 (dst:mem+d16)  reg=101 (src:EBP)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordAB(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordAC(fn): mod=10 (dst:mem+d16)  reg=101 (src:EBP)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordAC(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getSIBAddr(2) + this.getIPAddr()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordAD(fn): mod=10 (dst:mem+d16)  reg=101 (src:EBP)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordAD(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordAE(fn): mod=10 (dst:mem+d16)  reg=101 (src:EBP)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordAE(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordAF(fn): mod=10 (dst:mem+d16)  reg=101 (src:EBP)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordAF(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regEBP & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordB0(fn): mod=10 (dst:mem+d16)  reg=110 (src:ESI)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordB0(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEAX + this.getIPAddr()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordB1(fn): mod=10 (dst:mem+d16)  reg=110 (src:ESI)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordB1(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regECX + this.getIPAddr()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordB2(fn): mod=10 (dst:mem+d16)  reg=110 (src:ESI)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordB2(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDX + this.getIPAddr()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordB3(fn): mod=10 (dst:mem+d16)  reg=110 (src:ESI)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordB3(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordB4(fn): mod=10 (dst:mem+d16)  reg=110 (src:ESI)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordB4(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getSIBAddr(2) + this.getIPAddr()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordB5(fn): mod=10 (dst:mem+d16)  reg=110 (src:ESI)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordB5(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordB6(fn): mod=10 (dst:mem+d16)  reg=110 (src:ESI)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordB6(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordB7(fn): mod=10 (dst:mem+d16)  reg=110 (src:ESI)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordB7(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regESI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordB8(fn): mod=10 (dst:mem+d16)  reg=111 (src:EDI)  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordB8(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEAX + this.getIPAddr()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordB9(fn): mod=10 (dst:mem+d16)  reg=111 (src:EDI)  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordB9(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regECX + this.getIPAddr()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordBA(fn): mod=10 (dst:mem+d16)  reg=111 (src:EDI)  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordBA(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDX + this.getIPAddr()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordBB(fn): mod=10 (dst:mem+d16)  reg=111 (src:EDI)  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordBB(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordBC(fn): mod=10 (dst:mem+d16)  reg=111 (src:EDI)  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordBC(fn) {
                    var w = fn.call(this, this.modEAWordData(this.getSIBAddr(2) + this.getIPAddr()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordBD(fn): mod=10 (dst:mem+d16)  reg=111 (src:EDI)  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordBD(fn) {
                    var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordBE(fn): mod=10 (dst:mem+d16)  reg=111 (src:EDI)  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordBE(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32MemWordBF(fn): mod=10 (dst:mem+d16)  reg=111 (src:EDI)  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {function(number,number)} fn (dst,src)
                 */
                function opMod32MemWordBF(fn) {
                    var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regEDI & this.dataMask);
                    if (BACKTRACK) {
                        this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
                    }
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                X86ModW32.aOpModReg[0xC0],    X86ModW32.aOpModReg[0xC8],    X86ModW32.aOpModReg[0xD0],    X86ModW32.aOpModReg[0xD8],
                X86ModW32.aOpModReg[0xE0],    X86ModW32.aOpModReg[0xE8],    X86ModW32.aOpModReg[0xF0],    X86ModW32.aOpModReg[0xF8],
                X86ModW32.aOpModReg[0xC1],    X86ModW32.aOpModReg[0xC9],    X86ModW32.aOpModReg[0xD1],    X86ModW32.aOpModReg[0xD9],
                X86ModW32.aOpModReg[0xE1],    X86ModW32.aOpModReg[0xE9],    X86ModW32.aOpModReg[0xF1],    X86ModW32.aOpModReg[0xF9],
                X86ModW32.aOpModReg[0xC2],    X86ModW32.aOpModReg[0xCA],    X86ModW32.aOpModReg[0xD2],    X86ModW32.aOpModReg[0xDA],
                X86ModW32.aOpModReg[0xE2],    X86ModW32.aOpModReg[0xEA],    X86ModW32.aOpModReg[0xF2],    X86ModW32.aOpModReg[0xFA],
                X86ModW32.aOpModReg[0xC3],    X86ModW32.aOpModReg[0xCB],    X86ModW32.aOpModReg[0xD3],    X86ModW32.aOpModReg[0xDB],
                X86ModW32.aOpModReg[0xE3],    X86ModW32.aOpModReg[0xEB],    X86ModW32.aOpModReg[0xF3],    X86ModW32.aOpModReg[0xFB],
                X86ModW32.aOpModReg[0xC4],    X86ModW32.aOpModReg[0xCC],    X86ModW32.aOpModReg[0xD4],    X86ModW32.aOpModReg[0xDC],
                X86ModW32.aOpModReg[0xE4],    X86ModW32.aOpModReg[0xEC],    X86ModW32.aOpModReg[0xF4],    X86ModW32.aOpModReg[0xFC],
                X86ModW32.aOpModReg[0xC5],    X86ModW32.aOpModReg[0xCD],    X86ModW32.aOpModReg[0xD5],    X86ModW32.aOpModReg[0xDD],
                X86ModW32.aOpModReg[0xE5],    X86ModW32.aOpModReg[0xED],    X86ModW32.aOpModReg[0xF5],    X86ModW32.aOpModReg[0xFD],
                X86ModW32.aOpModReg[0xC6],    X86ModW32.aOpModReg[0xCE],    X86ModW32.aOpModReg[0xD6],    X86ModW32.aOpModReg[0xDE],
                X86ModW32.aOpModReg[0xE6],    X86ModW32.aOpModReg[0xEE],    X86ModW32.aOpModReg[0xF6],    X86ModW32.aOpModReg[0xFE],
                X86ModW32.aOpModReg[0xC7],    X86ModW32.aOpModReg[0xCF],    X86ModW32.aOpModReg[0xD7],    X86ModW32.aOpModReg[0xDF],
                X86ModW32.aOpModReg[0xE7],    X86ModW32.aOpModReg[0xEF],    X86ModW32.aOpModReg[0xF7],    X86ModW32.aOpModReg[0xFF]
            ];
            
            X86ModW32.aOpModGrp = [
                /**
                 * opMod32GrpWord00(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord00(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEAX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord01(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord01(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regECX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord02(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord02(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEDX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord03(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord03(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord04(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord04(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.getSIBAddr(0)), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord05(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord05(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32GrpWord06(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord06(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord07(afnGrp, fnSrc): mod=00 (dst:mem)  reg=000 (afnGrp[0])  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord07(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord08(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord08(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEAX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord09(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord09(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regECX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord0A(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord0A(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEDX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord0B(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord0B(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord0C(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord0C(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.getSIBAddr(0)), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord0D(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord0D(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32GrpWord0E(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord0E(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord0F(afnGrp, fnSrc): mod=00 (dst:mem)  reg=001 (afnGrp[1])  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord0F(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord10(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord10(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEAX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord11(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord11(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regECX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord12(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord12(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEDX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord13(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord13(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord14(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord14(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.getSIBAddr(0)), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord15(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord15(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32GrpWord16(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord16(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord17(afnGrp, fnSrc): mod=00 (dst:mem)  reg=010 (afnGrp[2])  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord17(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord18(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord18(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEAX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord19(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord19(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regECX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord1A(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord1A(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEDX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord1B(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord1B(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord1C(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord1C(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.getSIBAddr(0)), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord1D(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord1D(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32GrpWord1E(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord1E(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord1F(afnGrp, fnSrc): mod=00 (dst:mem)  reg=011 (afnGrp[3])  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord1F(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord20(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord20(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEAX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord21(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord21(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regECX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord22(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord22(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEDX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord23(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord23(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord24(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord24(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.getSIBAddr(0)), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord25(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord25(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32GrpWord26(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord26(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord27(afnGrp, fnSrc): mod=00 (dst:mem)  reg=100 (afnGrp[4])  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord27(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord28(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord28(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEAX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord29(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord29(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regECX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord2A(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord2A(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEDX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord2B(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord2B(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord2C(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord2C(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.getSIBAddr(0)), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord2D(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord2D(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32GrpWord2E(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord2E(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord2F(afnGrp, fnSrc): mod=00 (dst:mem)  reg=101 (afnGrp[5])  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord2F(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord30(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord30(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEAX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord31(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord31(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regECX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord32(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord32(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEDX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord33(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord33(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord34(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord34(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.getSIBAddr(0)), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord35(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord35(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32GrpWord36(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord36(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord37(afnGrp, fnSrc): mod=00 (dst:mem)  reg=110 (afnGrp[6])  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord37(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord38(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord38(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEAX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord39(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord39(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regECX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord3A(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord3A(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEDX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord3B(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord3B(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord3C(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=100 (sib)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord3C(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.getSIBAddr(0)), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord3D(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=101 (d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord3D(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
                },
                /**
                 * opMod32GrpWord3E(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord3E(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord3F(afnGrp, fnSrc): mod=00 (dst:mem)  reg=111 (afnGrp[7])  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord3F(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBase;
                },
                /**
                 * opMod32GrpWord40(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord40(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEAX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord41(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord41(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regECX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord42(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord42(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEDX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord43(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord43(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord44(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord44(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.getSIBAddr(1) + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord45(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord45(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord46(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord46(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord47(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=000 (afnGrp[0])  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord47(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord48(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord48(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEAX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord49(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord49(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regECX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord4A(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord4A(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEDX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord4B(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord4B(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord4C(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord4C(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.getSIBAddr(1) + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord4D(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord4D(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord4E(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord4E(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord4F(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=001 (afnGrp[1])  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord4F(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord50(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord50(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEAX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord51(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord51(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regECX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord52(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord52(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEDX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord53(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord53(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord54(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord54(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.getSIBAddr(1) + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord55(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord55(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord56(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord56(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord57(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=010 (afnGrp[2])  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord57(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord58(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord58(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEAX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord59(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord59(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regECX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord5A(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord5A(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEDX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord5B(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord5B(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord5C(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord5C(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.getSIBAddr(1) + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord5D(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord5D(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord5E(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord5E(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord5F(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=011 (afnGrp[3])  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord5F(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord60(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord60(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEAX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord61(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord61(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regECX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord62(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord62(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEDX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord63(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord63(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord64(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord64(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.getSIBAddr(1) + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord65(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord65(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord66(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord66(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord67(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=100 (afnGrp[4])  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord67(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord68(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord68(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEAX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord69(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord69(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regECX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord6A(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord6A(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEDX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord6B(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord6B(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord6C(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord6C(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.getSIBAddr(1) + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord6D(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord6D(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord6E(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord6E(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord6F(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=101 (afnGrp[5])  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord6F(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord70(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord70(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEAX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord71(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord71(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regECX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord72(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord72(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEDX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord73(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord73(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord74(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord74(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.getSIBAddr(1) + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord75(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord75(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord76(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord76(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord77(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=110 (afnGrp[6])  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord77(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord78(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=000 (EAX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord78(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEAX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord79(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=001 (ECX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord79(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regECX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord7A(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=010 (EDX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord7A(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEDX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord7B(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=011 (EBX+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord7B(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord7C(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=100 (sib+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord7C(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.getSIBAddr(1) + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord7D(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=101 (EBP+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord7D(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord7E(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=110 (ESI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord7E(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord7F(afnGrp, fnSrc): mod=01 (dst:mem+d8)  reg=111 (afnGrp[7])  r/m=111 (EDI+d8)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord7F(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord80(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord80(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEAX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord81(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord81(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regECX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord82(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord82(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEDX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord83(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord83(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord84(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord84(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.getSIBAddr(2) + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord85(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord85(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord86(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord86(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord87(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=000 (afnGrp[0])  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord87(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord88(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord88(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEAX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord89(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord89(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regECX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord8A(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord8A(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEDX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord8B(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord8B(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord8C(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord8C(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.getSIBAddr(2) + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord8D(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord8D(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord8E(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord8E(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord8F(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=001 (afnGrp[1])  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord8F(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord90(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord90(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEAX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord91(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord91(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regECX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord92(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord92(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEDX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord93(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord93(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord94(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord94(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.getSIBAddr(2) + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord95(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord95(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord96(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord96(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord97(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=010 (afnGrp[2])  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord97(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord98(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord98(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEAX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord99(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord99(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regECX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord9A(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord9A(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEDX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord9B(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord9B(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord9C(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord9C(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.getSIBAddr(2) + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord9D(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord9D(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord9E(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord9E(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWord9F(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=011 (afnGrp[3])  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWord9F(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordA0(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordA0(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEAX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordA1(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordA1(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regECX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordA2(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordA2(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEDX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordA3(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordA3(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordA4(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordA4(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.getSIBAddr(2) + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordA5(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordA5(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordA6(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordA6(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordA7(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=100 (afnGrp[4])  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordA7(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordA8(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordA8(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEAX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordA9(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordA9(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regECX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordAA(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordAA(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEDX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordAB(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordAB(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordAC(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordAC(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.getSIBAddr(2) + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordAD(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordAD(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordAE(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordAE(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordAF(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=101 (afnGrp[5])  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordAF(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordB0(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordB0(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEAX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordB1(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordB1(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regECX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordB2(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordB2(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEDX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordB3(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordB3(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordB4(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordB4(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.getSIBAddr(2) + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordB5(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordB5(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordB6(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordB6(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordB7(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=110 (afnGrp[6])  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordB7(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordB8(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=000 (EAX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordB8(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEAX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordB9(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=001 (ECX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordB9(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regECX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordBA(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=010 (EDX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordBA(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEDX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordBB(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=011 (EBX+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordBB(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordBC(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=100 (sib+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordBC(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.getSIBAddr(2) + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordBD(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=101 (EBP+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordBD(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordBE(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=110 (ESI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordBE(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordBF(afnGrp, fnSrc): mod=10 (dst:mem+d16)  reg=111 (afnGrp[7])  r/m=111 (EDI+d32)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordBF(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
                    this.setEAWord(w);
                    this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
                },
                /**
                 * opMod32GrpWordC0(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordC0(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.regEAX & this.dataMask, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordC1(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordC1(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.regECX & this.dataMask, fnSrc.call(this));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordC2(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordC2(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.regEDX & this.dataMask, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordC3(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordC3(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.regEBX & this.dataMask, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordC4(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordC4(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.getSP() & this.dataMask, fnSrc.call(this));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod32GrpWordC5(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=101 (EBP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordC5(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.regEBP & this.dataMask, fnSrc.call(this));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordC6(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordC6(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.regESI & this.dataMask, fnSrc.call(this));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordC7(afnGrp, fnSrc): mod=11 (dst:reg)  reg=000 (afnGrp[0])  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordC7(afnGrp, fnSrc) {
                    var w = afnGrp[0].call(this, this.regEDI & this.dataMask, fnSrc.call(this));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordC8(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordC8(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.regEAX & this.dataMask, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordC9(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordC9(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.regECX & this.dataMask, fnSrc.call(this));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordCA(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordCA(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.regEDX & this.dataMask, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordCB(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordCB(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.regEBX & this.dataMask, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordCC(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordCC(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.getSP() & this.dataMask, fnSrc.call(this));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod32GrpWordCD(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=101 (EBP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordCD(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.regEBP & this.dataMask, fnSrc.call(this));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordCE(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordCE(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.regESI & this.dataMask, fnSrc.call(this));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordCF(afnGrp, fnSrc): mod=11 (dst:reg)  reg=001 (afnGrp[1])  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordCF(afnGrp, fnSrc) {
                    var w = afnGrp[1].call(this, this.regEDI & this.dataMask, fnSrc.call(this));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordD0(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordD0(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.regEAX & this.dataMask, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordD1(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordD1(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.regECX & this.dataMask, fnSrc.call(this));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordD2(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordD2(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.regEDX & this.dataMask, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordD3(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordD3(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.regEBX & this.dataMask, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordD4(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordD4(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.getSP() & this.dataMask, fnSrc.call(this));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod32GrpWordD5(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=101 (EBP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordD5(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.regEBP & this.dataMask, fnSrc.call(this));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordD6(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordD6(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.regESI & this.dataMask, fnSrc.call(this));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordD7(afnGrp, fnSrc): mod=11 (dst:reg)  reg=010 (afnGrp[2])  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordD7(afnGrp, fnSrc) {
                    var w = afnGrp[2].call(this, this.regEDI & this.dataMask, fnSrc.call(this));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordD8(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordD8(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.regEAX & this.dataMask, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordD9(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordD9(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.regECX & this.dataMask, fnSrc.call(this));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordDA(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordDA(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.regEDX & this.dataMask, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordDB(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordDB(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.regEBX & this.dataMask, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordDC(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordDC(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.getSP() & this.dataMask, fnSrc.call(this));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod32GrpWordDD(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=101 (EBP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordDD(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.regEBP & this.dataMask, fnSrc.call(this));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordDE(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordDE(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.regESI & this.dataMask, fnSrc.call(this));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordDF(afnGrp, fnSrc): mod=11 (dst:reg)  reg=011 (afnGrp[3])  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordDF(afnGrp, fnSrc) {
                    var w = afnGrp[3].call(this, this.regEDI & this.dataMask, fnSrc.call(this));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordE0(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordE0(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.regEAX & this.dataMask, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordE1(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordE1(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.regECX & this.dataMask, fnSrc.call(this));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordE2(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordE2(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.regEDX & this.dataMask, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordE3(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordE3(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.regEBX & this.dataMask, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordE4(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordE4(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.getSP() & this.dataMask, fnSrc.call(this));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod32GrpWordE5(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=101 (EBP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordE5(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.regEBP & this.dataMask, fnSrc.call(this));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordE6(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordE6(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.regESI & this.dataMask, fnSrc.call(this));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordE7(afnGrp, fnSrc): mod=11 (dst:reg)  reg=100 (afnGrp[4])  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordE7(afnGrp, fnSrc) {
                    var w = afnGrp[4].call(this, this.regEDI & this.dataMask, fnSrc.call(this));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordE8(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordE8(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.regEAX & this.dataMask, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordE9(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordE9(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.regECX & this.dataMask, fnSrc.call(this));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordEA(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordEA(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.regEDX & this.dataMask, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordEB(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordEB(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.regEBX & this.dataMask, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordEC(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordEC(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.getSP() & this.dataMask, fnSrc.call(this));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod32GrpWordED(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=101 (EBP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordED(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.regEBP & this.dataMask, fnSrc.call(this));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordEE(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordEE(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.regESI & this.dataMask, fnSrc.call(this));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordEF(afnGrp, fnSrc): mod=11 (dst:reg)  reg=101 (afnGrp[5])  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordEF(afnGrp, fnSrc) {
                    var w = afnGrp[5].call(this, this.regEDI & this.dataMask, fnSrc.call(this));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordF0(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordF0(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.regEAX & this.dataMask, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordF1(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordF1(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.regECX & this.dataMask, fnSrc.call(this));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordF2(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordF2(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.regEDX & this.dataMask, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordF3(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordF3(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.regEBX & this.dataMask, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordF4(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordF4(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.getSP() & this.dataMask, fnSrc.call(this));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod32GrpWordF5(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=101 (EBP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordF5(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.regEBP & this.dataMask, fnSrc.call(this));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordF6(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordF6(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.regESI & this.dataMask, fnSrc.call(this));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordF7(afnGrp, fnSrc): mod=11 (dst:reg)  reg=110 (afnGrp[6])  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordF7(afnGrp, fnSrc) {
                    var w = afnGrp[6].call(this, this.regEDI & this.dataMask, fnSrc.call(this));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordF8(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=000 (EAX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordF8(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.regEAX & this.dataMask, fnSrc.call(this));
                    this.regEAX = (this.regEAX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordF9(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=001 (ECX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordF9(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.regECX & this.dataMask, fnSrc.call(this));
                    this.regECX = (this.regECX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordFA(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=010 (EDX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordFA(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.regEDX & this.dataMask, fnSrc.call(this));
                    this.regEDX = (this.regEDX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordFB(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=011 (EBX)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordFB(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.regEBX & this.dataMask, fnSrc.call(this));
                    this.regEBX = (this.regEBX & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordFC(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=100 (ESP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordFC(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.getSP() & this.dataMask, fnSrc.call(this));
                    this.setSP((this.getSP() & ~this.dataMask) | w);
                },
                /**
                 * opMod32GrpWordFD(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=101 (EBP)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordFD(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.regEBP & this.dataMask, fnSrc.call(this));
                    this.regEBP = (this.regEBP & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordFE(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=110 (ESI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordFE(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.regESI & this.dataMask, fnSrc.call(this));
                    this.regESI = (this.regESI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
                    }
                },
                /**
                 * opMod32GrpWordFF(afnGrp, fnSrc): mod=11 (dst:reg)  reg=111 (afnGrp[7])  r/m=111 (EDI)
                 *
                 * @this {X86CPU}
                 * @param {Array.<function(number,number)>} afnGrp
                 * @param {function()} fnSrc
                 */
                function opMod32GrpWordFF(afnGrp, fnSrc) {
                    var w = afnGrp[7].call(this, this.regEDI & this.dataMask, fnSrc.call(this));
                    this.regEDI = (this.regEDI & ~this.dataMask) | w;
                    if (BACKTRACK) {
                        this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
                    }
                }
            ];
            
            if (typeof module !== 'undefined') module.exports = X86ModW32;
            
          • x86op0f.js
            /**
             * @fileoverview Implements PCjs 0x0F two-byte opcodes
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Sep-05
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var X86         = require("./x86");
            }
            
            /**
             * op=0x0F,0x00 (GRP6 mem/reg)
             *
             * @this {X86CPU}
             */
            X86.opGRP6 = function GRP6()
            {
                var bModRM = this.getIPByte();
                if ((bModRM & 0x38) < 0x10) {   // possible reg values: 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38
                    this.opFlags |= X86.OPFLAG.NOREAD;
                }
                this.aOpModGrpWord[bModRM].call(this, this.aOpGrp6, X86.fnSrcNone);
            };
            
            /**
             * op=0x0F,0x01 (GRP7 mem/reg)
             *
             * @this {X86CPU}
             */
            X86.opGRP7 = function GRP7()
            {
                var bModRM = this.getIPByte();
                if (!(bModRM & 0x10)) {
                    this.opFlags |= X86.OPFLAG.NOREAD;
                }
                this.aOpModGrpWord[bModRM].call(this, X86.aOpGrp7, X86.fnSrcNone);
            };
            
            /**
             * opLAR()
             *
             * op=0x0F,0x02 (LAR reg,mem/reg)
             *
             * @this {X86CPU}
             */
            X86.opLAR = function LAR()
            {
                this.aOpModRegWord[this.getIPByte()].call(this, X86.fnLAR);
            };
            
            /**
             * opLSL()
             *
             * op=0x0F,0x03 (LSL reg,mem/reg)
             *
             * @this {X86CPU}
             */
            X86.opLSL = function LSL()
            {
                this.aOpModRegWord[this.getIPByte()].call(this, X86.fnLSL);
            };
            
            /**
             * opLOADALL()
             *
             * op=0x0F,0x05 (LOADALL)
             *
             * From the "Undocumented iAPX 286 Test Instruction" document at http://www.pcjs.org/pubs/pc/reference/intel/80286/loadall/:
             *
             *  Physical Address (Hex)        Associated CPU Register
             *          800-805                        None
             *          806-807                        MSW
             *          808-815                        None
             *          816-817                        TR
             *          818-819                        Flag word
             *          81A-81B                        IP
             *          81C-81D                        LDT
             *          81E-81F                        DS
             *          820-821                        SS
             *          822-823                        CS
             *          824-825                        ES
             *          826-827                        DI
             *          828-829                        SI
             *          82A-82B                        BP
             *          82C-82D                        SP
             *          82E-82F                        BX
             *          830-831                        DX
             *          832-833                        CX
             *          834-835                        AX
             *          836-83B                        ES descriptor cache
             *          83C-841                        CS descriptor cache
             *          842-847                        SS descriptor cache
             *          848-84D                        DS descriptor cache
             *          84E-853                        GDTR
             *          854-859                        LDT descriptor cache
             *          85A-85F                        IDTR
             *          860-865                        TSS descriptor cache
             *
             * Oddly, the above document gives two contradictory cycle counts for LOADALL: 190 and 195.  I'll go with 195, for
             * no particular reason.
             *
             * @this {X86CPU}
             */
            X86.opLOADALL = function LOADALL()
            {
                if (this.segCS.cpl) {
                    /*
                     * You're not allowed to use LOADALL if the current privilege level is something other than zero.
                     */
                    X86.fnFault.call(this, X86.EXCEPTION.GP_FAULT, 0, true);
                    return;
                }
                this.setMSW(this.getShort(0x806));
                this.regEDI = this.getShort(0x826);
                this.regESI = this.getShort(0x828);
                this.regEBP = this.getShort(0x82A);
                this.regEBX = this.getShort(0x82E);
                this.regEDX = this.getShort(0x830);
                this.regECX = this.getShort(0x832);
                this.regEAX = this.getShort(0x834);
                this.segES.loadDesc6(0x836, this.getShort(0x824));
                this.segCS.loadDesc6(0x83C, this.getShort(0x822));
                this.segSS.loadDesc6(0x842, this.getShort(0x820));
                this.segDS.loadDesc6(0x848, this.getShort(0x81E));
                this.setPS(this.getShort(0x818));
                /*
                 * It's important to call setIP() and setSP() *after* the segCS and segSS loads, so that the CPU's
                 * linear IP and SP registers (regLIP and regLSP) will be updated properly.  Ordinarily that would be
                 * taken care of by simply using the CPU's setCS() and setSS() functions, but those functions call the
                 * default descriptor load() functions, and obviously here we must use loadDesc6() instead.
                 */
                this.setIP(this.getShort(0x81A));
                this.setSP(this.getShort(0x82C));
                /*
                 * The bytes at 0x851 and 0x85D "should be zeroes", as per the "Undocumented iAPX 286 Test Instruction"
                 * document, but the LOADALL issued by RAMDRIVE in PC-DOS 7.0 contains 0xFF in both of those bytes, resulting
                 * in very large addrGDT and addrIDT values.  Obviously, we can't have that, so we load only the low byte
                 * of the second word for both of those registers.
                 */
                this.addrGDT = this.getShort(0x84E) | (this.getByte(0x850) << 16);
                this.addrGDTLimit = this.addrGDT + this.getShort(0x852);
                this.segLDT.loadDesc6(0x854, this.getShort(0x81C));
                this.addrIDT = this.getShort(0x85A) | (this.getByte(0x85C) << 16);
                this.addrIDTLimit = this.addrIDT + this.getShort(0x85E);
                this.segTSS.loadDesc6(0x860, this.getShort(0x816));
                this.nStepCycles -= 195;
                /*
                 * TODO: LOADALL operation still needs to be verified in protected mode....
                 */
                if (DEBUG && DEBUGGER && (this.regCR0 & X86.CR0.MSW.PE)) this.stopCPU();
            };
            
            /**
             * opCLTS()
             *
             * op=0x0F,0x06 (CLTS)
             *
             * @this {X86CPU}
             */
            X86.opCLTS = function CLTS()
            {
                if (this.segCS.cpl) {
                    X86.fnFault.call(this, X86.EXCEPTION.GP_FAULT, 0);
                    return;
                }
                this.regCR0 &= ~X86.CR0.MSW.TS;
                this.nStepCycles -= 2;
            };
            
            /**
             * opMOVrc()
             *
             * op=0x0F,0x20 (MOV reg,creg)
             *
             * NOTE: Since this instruction uses only 32-bit general-purpose registers, our ModRM decoders
             * are going to be more hindrance than help, so we fully decode and execute the instruction ourselves.
             *
             * From PCMag_Prog_TechRef, p.476: "The 80386 executes the MOV to/from control registers (CRn) regardless
             * of the setting of the MOD field.  The MOD field should be set to 0b11, but an early 80386 documentation
             * error indicated that the MOD field value was a don't care.  Early versions of the 80486 detect
             * a MOD != 0b11 as an illegal opcode.  This was changed in later versions to ignore the value of MOD.
             * Assemblers that generate MOD != 0b11 for these instructions will fail on some 80486s."
             *
             * And in fact, the Compaq DeskPro 386 ROM BIOS executes this instruction with MOD set to 0b00, so we have
             * to ignore it.
             *
             * @this {X86CPU}
             */
            X86.opMOVrc = function MOVrc()
            {
                var bModRM = this.getIPByte();
            
                if (this.segCS.cpl) {
                    /*
                     * You're not allowed to read control registers if the current privilege level is not zero
                     * (TODO: I'm issuing this AFTER fetching the ModRM byte, but I assume it makes no difference).
                     */
                    X86.fnFault.call(this, X86.EXCEPTION.GP_FAULT, 0);
                    return;
                }
            
                var reg;
                switch((bModRM & 0x38) >> 3) {
                case 0x0:
                    reg = this.regCR0;
                    break;
                case 0x2:
                    reg = this.regCR2;
                    break;
                case 0x3:
                    reg = this.regCR3;
                    break;
                default:
                    X86.opUndefined.call(this);
                    return;
                }
            
                switch(bModRM & 0x7) {
                case 0x0:
                    this.regEAX = reg;
                    break;
                case 0x1:
                    this.regECX = reg;
                    break;
                case 0x2:
                    this.regEDX = reg;
                    break;
                case 0x3:
                    this.regEBX = reg;
                    break;
                case 0x4:
                    this.regESP = reg;
                    break;
                case 0x5:
                    this.regEBP = reg;
                    break;
                case 0x6:
                    this.regESI = reg;
                    break;
                case 0x7:
                    this.regEDI = reg;
                    break;
                }
            
                this.nStepCycles -= 6;
            
                /*
                 * TODO: Implement BACKTRACK for this instruction....
                 */
            };
            
            /**
             * opMOVcr()
             *
             * op=0x0F,0x22 (MOV creg,reg)
             *
             * NOTE: Since this instruction uses only 32-bit general-purpose registers, our ModRM decoders
             * are going to be more hindrance than help, so we fully decode and execute the instruction ourselves.
             *
             * From PCMag_Prog_TechRef, p.476: "The 80386 executes the MOV to/from control registers (CRn) regardless
             * of the setting of the MOD field.  The MOD field should be set to 0b11, but an early 80386 documentation
             * error indicated that the MOD field value was a don't care.  Early versions of the 80486 detect
             * a MOD != 0b11 as an illegal opcode.  This was changed in later versions to ignore the value of MOD.
             * Assemblers that generate MOD != 0b11 for these instructions will fail on some 80486s."
             *
             * And in fact, the Compaq DeskPro 386 ROM BIOS executes this instruction with MOD set to 0b00, so we have
             * to ignore it.
             *
             * @this {X86CPU}
             */
            X86.opMOVcr = function MOVcr()
            {
                var bModRM = this.getIPByte();
            
                if (this.segCS.cpl) {
                    /*
                     * You're not allowed to write control registers if the current privilege level is not zero
                     * (TODO: I'm issuing this AFTER fetching the ModRM byte, but I assume it makes no difference).
                     */
                    X86.fnFault.call(this, X86.EXCEPTION.GP_FAULT, 0);
                    return;
                }
            
                var reg;
                switch(bModRM & 0x7) {
                case 0x0:
                    reg = this.regEAX;
                    break;
                case 0x1:
                    reg = this.regECX;
                    break;
                case 0x2:
                    reg = this.regEDX;
                    break;
                case 0x3:
                    reg = this.regEBX;
                    break;
                case 0x4:
                    reg = this.regESP;
                    break;
                case 0x5:
                    reg = this.regEBP;
                    break;
                case 0x6:
                    reg = this.regESI;
                    break;
                case 0x7:
                    reg = this.regEDI;
                    break;
                }
            
                switch((bModRM & 0x38) >> 3) {
                case 0x0:
                    X86.fnLCR0.call(this, reg);
                    this.nStepCycles -= 10;
                    break;
                case 0x2:
                    this.regCR2 = reg;
                    this.nStepCycles -= 4;
                    break;
                case 0x3:
                    X86.fnLCR3.call(this, reg);
                    this.nStepCycles -= 5;
                    break;
                default:
                    X86.opUndefined.call(this);
                    return;
                }
            
                /*
                 * TODO: Implement BACKTRACK for this instruction....
                 */
            };
            
            /*
             * NOTE: The following 16 new conditional jumps actually rely on the OPERAND override setting
             * for determining whether a signed 16-bit or 32-bit displacement will be fetched, even though
             * the ADDRESS override might seem more intuitive.  Think of them as instructions that are loading
             * a new operand into IP/EIP.
             *
             * Also, in 16-bit code, even though a signed rel16 value would seem to imply a range of -32768
             * to +32767, any location within a 64Kb code segment outside that range can be reached by choosing
             * a displacement in the opposite direction, causing the 16-bit value in EIP to underflow or overflow;
             * any underflow or overflow doesn't matter, because only the low 16 bits of EIP are updated when a
             * 16-bit OPERAND size is in effect.
             *
             * In fact, for 16-bit jumps, it's simpler to always think of rel16 as an UNSIGNED value added to
             * the current EIP, where the result is then truncated to a 16-bit value.  This is why we don't have
             * to sign-extend rel16 before adding it to the current EIP.
             */
            
            /**
             * opJOw()
             *
             * op=0x0F,0x80 (JO rel16/rel32)
             *
             * @this {X86CPU}
             */
            X86.opJOw = function JOw()
            {
                var disp = this.getIPWord();
                if (this.getOF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * opJNOw()
             *
             * op=0x0F,0x81 (JNO rel16/rel32)
             *
             * @this {X86CPU}
             */
            X86.opJNOw = function JNOw()
            {
                var disp = this.getIPWord();
                if (!this.getOF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * opJCw()
             *
             * op=0x0F,0x82 (JC rel16/rel32)
             *
             * @this {X86CPU}
             */
            X86.opJCw = function JCw()
            {
                var disp = this.getIPWord();
                if (this.getCF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * opJNCw()
             *
             * op=0x0F,0x83 (JNC rel16/rel32)
             *
             * @this {X86CPU}
             */
            X86.opJNCw = function JNCw()
            {
                var disp = this.getIPWord();
                if (!this.getCF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * opJZw()
             *
             * op=0x0F,0x84 (JZ rel16/rel32)
             *
             * @this {X86CPU}
             */
            X86.opJZw = function JZw()
            {
                var disp = this.getIPWord();
                if (this.getZF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * opJNZw()
             *
             * op=0x0F,0x85 (JNZ rel16/rel32)
             *
             * @this {X86CPU}
             */
            X86.opJNZw = function JNZw()
            {
                var disp = this.getIPWord();
                if (!this.getZF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * opJBEw()
             *
             * op=0x0F,0x86 (JBE rel16/rel32)
             *
             * @this {X86CPU}
             */
            X86.opJBEw = function JBEw()
            {
                var disp = this.getIPWord();
                if (this.getCF() || this.getZF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * opJNBEw()
             *
             * op=0x0F,0x87 (JNBE rel16/rel32)
             *
             * @this {X86CPU}
             */
            X86.opJNBEw = function JNBEw()
            {
                var disp = this.getIPWord();
                if (!this.getCF() && !this.getZF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * opJSw()
             *
             * op=0x0F,0x88 (JS rel16/rel32)
             *
             * @this {X86CPU}
             */
            X86.opJSw = function JSw()
            {
                var disp = this.getIPWord();
                if (this.getSF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * opJNSw()
             *
             * op=0x0F,0x89 (JNS rel16/rel32)
             *
             * @this {X86CPU}
             */
            X86.opJNSw = function JNSw()
            {
                var disp = this.getIPWord();
                if (!this.getSF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * opJPw()
             *
             * op=0x0F,0x8A (JP rel16/rel32)
             *
             * @this {X86CPU}
             */
            X86.opJPw = function JPw()
            {
                var disp = this.getIPWord();
                if (this.getPF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * opJNPw()
             *
             * op=0x0F,0x8B (JNP rel16/rel32)
             *
             * @this {X86CPU}
             */
            X86.opJNPw = function JNPw()
            {
                var disp = this.getIPWord();
                if (!this.getPF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * opJLw()
             *
             * op=0x0F,0x8C (JL rel16/rel32)
             *
             * @this {X86CPU}
             */
            X86.opJLw = function JLw()
            {
                var disp = this.getIPWord();
                if (!this.getSF() != !this.getOF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * opJNLw()
             *
             * op=0x0F,0x8D (JNL rel16/rel32)
             *
             * @this {X86CPU}
             */
            X86.opJNLw = function JNLw()
            {
                var disp = this.getIPWord();
                if (!this.getSF() == !this.getOF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * opJLEw()
             *
             * op=0x0F,0x8E (JLE rel16/rel32)
             *
             * @this {X86CPU}
             */
            X86.opJLEw = function JLEw()
            {
                var disp = this.getIPWord();
                if (this.getZF() || !this.getSF() != !this.getOF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * opJNLEw()
             *
             * op=0x0F,0x8F (JNLE rel16/rel32)
             *
             * @this {X86CPU}
             */
            X86.opJNLEw = function JNLEw()
            {
                var disp = this.getIPWord();
                if (!this.getZF() && !this.getSF() == !this.getOF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * opSETO()
             *
             * op=0x0F,0x90 (SETO b)
             *
             * @this {X86CPU}
             */
            X86.opSETO = function SETO()
            {
                X86.fnSETcc.call(this, X86.fnSETO);
            };
            
            /**
             * opSETNO()
             *
             * op=0x0F,0x91 (SETNO b)
             *
             * @this {X86CPU}
             */
            X86.opSETNO = function SETNO()
            {
                X86.fnSETcc.call(this, X86.fnSETO);
            };
            
            /**
             * opSETC()
             *
             * op=0x0F,0x92 (SETC b)
             *
             * @this {X86CPU}
             */
            X86.opSETC = function SETC()
            {
                X86.fnSETcc.call(this, X86.fnSETC);
            };
            
            /**
             * opSETNC()
             *
             * op=0x0F,0x93 (SETNC b)
             *
             * @this {X86CPU}
             */
            X86.opSETNC = function SETNC()
            {
                X86.fnSETcc.call(this, X86.fnSETNC);
            };
            
            /**
             * opSETZ()
             *
             * op=0x0F,0x94 (SETZ b)
             *
             * @this {X86CPU}
             */
            X86.opSETZ = function SETZ()
            {
                X86.fnSETcc.call(this, X86.fnSETZ);
            };
            
            /**
             * opSETNZ()
             *
             * op=0x0F,0x95 (SETNZ b)
             *
             * @this {X86CPU}
             */
            X86.opSETNZ = function SETNZ()
            {
                X86.fnSETcc.call(this, X86.fnSETNZ);
            };
            
            /**
             * opSETBE()
             *
             * op=0x0F,0x96 (SETBE b)
             *
             * @this {X86CPU}
             */
            X86.opSETBE = function SETBE()
            {
                X86.fnSETcc.call(this, X86.fnSETBE);
            };
            
            /**
             * opSETNBE()
             *
             * op=0x0F,0x97 (SETNBE b)
             *
             * @this {X86CPU}
             */
            X86.opSETNBE = function SETNBE()
            {
                X86.fnSETcc.call(this, X86.fnSETNBE);
            };
            
            /**
             * opSETS()
             *
             * op=0x0F,0x98 (SETS b)
             *
             * @this {X86CPU}
             */
            X86.opSETS = function SETS()
            {
                X86.fnSETcc.call(this, X86.fnSETS);
            };
            
            /**
             * opSETNS()
             *
             * op=0x0F,0x99 (SETNS b)
             *
             * @this {X86CPU}
             */
            X86.opSETNS = function SETNS()
            {
                X86.fnSETcc.call(this, X86.fnSETNS);
            };
            
            /**
             * opSETP()
             *
             * op=0x0F,0x9A (SETP b)
             *
             * @this {X86CPU}
             */
            X86.opSETP = function SETP()
            {
                X86.fnSETcc.call(this, X86.fnSETP);
            };
            
            /**
             * opSETNP()
             *
             * op=0x0F,0x9B (SETNP b)
             *
             * @this {X86CPU}
             */
            X86.opSETNP = function SETNP()
            {
                X86.fnSETcc.call(this, X86.fnSETNP);
            };
            
            /**
             * opSETL()
             *
             * op=0x0F,0x9C (SETL b)
             *
             * @this {X86CPU}
             */
            X86.opSETL = function SETL()
            {
                X86.fnSETcc.call(this, X86.fnSETL);
            };
            
            /**
             * opSETNL()
             *
             * op=0x0F,0x9D (SETNL b)
             *
             * @this {X86CPU}
             */
            X86.opSETNL = function SETNL()
            {
                X86.fnSETcc.call(this, X86.fnSETNL);
            };
            
            /**
             * opSETLE()
             *
             * op=0x0F,0x9E (SETLE b)
             *
             * @this {X86CPU}
             */
            X86.opSETLE = function SETLE()
            {
                X86.fnSETcc.call(this, X86.fnSETLE);
            };
            
            /**
             * opSETNLE()
             *
             * op=0x0F,0x9F (SETNLE b)
             *
             * @this {X86CPU}
             */
            X86.opSETNLE = function SETNLE()
            {
                X86.fnSETcc.call(this, X86.fnSETNLE);
            };
            
            /**
             * opPUSHFS()
             *
             * op=0x0F,0xA0 (PUSH FS)
             *
             * @this {X86CPU}
             */
            X86.opPUSHFS = function PUSHFS()
            {
                this.pushWord(this.segFS.sel);
                this.nStepCycles -= this.cycleCounts.nOpCyclesPushSeg;
            };
            
            /**
             * opPOPFS()
             *
             * op=0x0F,0xA1 (POP FS)
             *
             * @this {X86CPU}
             */
            X86.opPOPFS = function POPFS()
            {
                this.setFS(this.popWord());
                this.nStepCycles -= this.cycleCounts.nOpCyclesPopReg;
            };
            
            /**
             * opBT()
             *
             * op=0x0F,0xA3 (BT mem/reg,reg)
             *
             * @this {X86CPU}
             */
            X86.opBT = function BT()
            {
                this.aOpModMemWord[this.getIPByte()].call(this, X86.fnBT);
                if (this.regEA !== X86.ADDR_INVALID) this.nStepCycles -= 6;
            };
            
            /**
             * opSHLDn()
             *
             * op=0x0F,0xA4 (SHLD mem/reg,reg,imm8)
             *
             * @this {X86CPU}
             */
            X86.opSHLDn = function SHLDn()
            {
                this.aOpModMemWord[this.getIPByte()].call(this, this.dataSize == 2? X86.fnSHLDwi : X86.fnSHLDdi);
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? 3 : 7);
            };
            
            /**
             * opSHLDcl()
             *
             * op=0x0F,0xA5 (SHLD mem/reg,reg,CL)
             *
             * @this {X86CPU}
             */
            X86.opSHLDcl = function SHLDcl()
            {
                this.aOpModMemWord[this.getIPByte()].call(this, this.dataSize == 2? X86.fnSHLDwCL : X86.fnSHLDdCL);
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? 3 : 7);
            };
            
            /**
             * opPUSHGS()
             *
             * op=0x0F,0xA8 (PUSH GS)
             *
             * @this {X86CPU}
             */
            X86.opPUSHGS = function PUSHGS()
            {
                this.pushWord(this.segGS.sel);
                this.nStepCycles -= this.cycleCounts.nOpCyclesPushSeg;
            };
            
            /**
             * opPOPGS()
             *
             * op=0x0F,0xA9 (POP GS)
             *
             * @this {X86CPU}
             */
            X86.opPOPGS = function POPGS()
            {
                this.setGS(this.popWord());
                this.nStepCycles -= this.cycleCounts.nOpCyclesPopReg;
            };
            
            /**
             * opBTS()
             *
             * op=0x0F,0xAB (BTC mem/reg,reg)
             *
             * @this {X86CPU}
             */
            X86.opBTS = function BTS()
            {
                this.aOpModMemWord[this.getIPByte()].call(this, X86.fnBTS);
                if (this.regEA !== X86.ADDR_INVALID) this.nStepCycles -= 5;
            };
            
            /**
             * opSHRDn()
             *
             * op=0x0F,0xAC (SHRD mem/reg,reg,imm8)
             *
             * @this {X86CPU}
             */
            X86.opSHRDn = function SHRDn()
            {
                this.aOpModMemWord[this.getIPByte()].call(this, this.dataSize == 2? X86.fnSHRDwi : X86.fnSHRDdi);
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? 3 : 7);
            };
            
            /**
             * opSHRDcl()
             *
             * op=0x0F,0xAD (SHRD mem/reg,reg,CL)
             *
             * @this {X86CPU}
             */
            X86.opSHRDcl = function SHRDcl()
            {
                this.aOpModMemWord[this.getIPByte()].call(this, this.dataSize == 2? X86.fnSHRDwCL : X86.fnSHRDdCL);
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? 3 : 7);
            };
            
            /**
             * opIMUL()
             *
             * op=0x0F,0xAF (IMUL reg,mem/reg) (80386 and up)
             *
             * @this {X86CPU}
             */
            X86.opIMUL = function IMUL()
            {
                this.aOpModRegWord[this.getIPByte()].call(this, this.dataSize == 2? X86.fnIMULrw : X86.fnIMULrd);
            };
            
            /**
             * opLSS()
             *
             * op=0x0F,0xB2 (LSS reg,word)
             *
             * This is like a "MOV reg,rm" operation, but it also loads SS from the next word.
             *
             * @this {X86CPU}
             */
            X86.opLSS = function LSS()
            {
                this.aOpModRegWord[this.getIPByte()].call(this, X86.fnLSS);
            };
            
            /**
             * opBTR()
             *
             * op=0x0F,0xB3 (BTC mem/reg,reg) (80386 and up)
             *
             * @this {X86CPU}
             */
            X86.opBTR = function BTR()
            {
                this.aOpModMemWord[this.getIPByte()].call(this, X86.fnBTR);
                if (this.regEA !== X86.ADDR_INVALID) this.nStepCycles -= 5;
            };
            
            /**
             * opLFS()
             *
             * op=0x0F,0xB4 (LFS reg,word)
             *
             * This is like a "MOV reg,rm" operation, but it also loads FS from the next word.
             *
             * @this {X86CPU}
             */
            X86.opLFS = function LFS()
            {
                this.aOpModRegWord[this.getIPByte()].call(this, X86.fnLFS);
            };
            
            /**
             * opLGS()
             *
             * op=0x0F,0xB5 (LGS reg,word)
             *
             * This is like a "MOV reg,rm" operation, but it also loads GS from the next word.
             *
             * @this {X86CPU}
             */
            X86.opLGS = function LGS()
            {
                this.aOpModRegWord[this.getIPByte()].call(this, X86.fnLGS);
            };
            
            /**
             * opMOVZXb()
             *
             * op=0x0F,0xB6 (MOVZX reg,byte)
             *
             * @this {X86CPU}
             */
            X86.opMOVZXb = function MOVZXb()
            {
                /*
                 * The ModRegByte handlers update the registers in the 1st column, but we need to update those in the 2nd column.
                 *
                 *      000:    AL      ->      000:    AX
                 *      001:    CL      ->      001:    CX
                 *      010:    DL      ->      010:    DX
                 *      011:    BL      ->      011:    BX
                 *      100:    AH      ->      100:    SP
                 *      101:    CH      ->      101:    BP
                 *      110:    DH      ->      110:    SI
                 *      111:    BH      ->      111:    DI
                 */
                var temp;
                var bModRM = this.getIPByte();
                var reg = (bModRM & 0x38) >> 3;
                switch(reg) {
                case 0x4:
                    temp = this.regEAX;
                    break;
                case 0x5:
                    temp = this.regECX;
                    break;
                case 0x6:
                    temp = this.regEDX;
                    break;
                case 0x7:
                    temp = this.regEBX;
                    break;
                }
                this.aOpModRegByte[bModRM].call(this, X86.fnMOVX);
                switch(reg) {
                case 0x0:
                    this.regEAX = (this.regEAX & ~this.dataMask) | (this.regEAX & 0xff);
                    break;
                case 0x1:
                    this.regECX = (this.regECX & ~this.dataMask) | (this.regECX & 0xff);
                    break;
                case 0x2:
                    this.regEDX = (this.regEDX & ~this.dataMask) | (this.regEDX & 0xff);
                    break;
                case 0x3:
                    this.regEBX = (this.regEBX & ~this.dataMask) | (this.regEBX & 0xff);
                    break;
                case 0x4:
                    this.regESP = (this.regESP & ~this.dataMask) | ((this.regEAX >> 8) & 0xff);
                    this.regEAX = temp;
                    break;
                case 0x5:
                    this.regEBP = (this.regEBP & ~this.dataMask) | ((this.regECX >> 8) & 0xff);
                    this.regECX = temp;
                    break;
                case 0x6:
                    this.regESI = (this.regESI & ~this.dataMask) | ((this.regEDX >> 8) & 0xff);
                    this.regEDX = temp;
                    break;
                case 0x7:
                    this.regEDI = (this.regEDI & ~this.dataMask) | ((this.regEBX >> 8) & 0xff);
                    this.regEBX = temp;
                    break;
                }
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? 3 : 6);
            };
            
            /**
             * opMOVZXw()
             *
             * op=0x0F,0xB7 (MOVZX reg,word)
             *
             * @this {X86CPU}
             */
            X86.opMOVZXw = function MOVZXw()
            {
                var bModRM = this.getIPByte();
                this.setDataSize(2);
                this.aOpModRegWord[bModRM].call(this, X86.fnMOVX);
                switch((bModRM & 0x38) >> 3) {
                case 0x0:
                    this.regEAX = (this.regEAX & 0xffff);
                    break;
                case 0x1:
                    this.regECX = (this.regECX & 0xffff);
                    break;
                case 0x2:
                    this.regEDX = (this.regEDX & 0xffff);
                    break;
                case 0x3:
                    this.regEBX = (this.regEBX & 0xffff);
                    break;
                case 0x4:
                    this.regESP = (this.regESP & 0xffff);
                    break;
                case 0x5:
                    this.regEBP = (this.regEBP & 0xffff);
                    break;
                case 0x6:
                    this.regESI = (this.regESI & 0xffff);
                    break;
                case 0x7:
                    this.regEDI = (this.regEDI & 0xffff);
                    break;
                }
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? 3 : 6);
            };
            
            /**
             * op=0x0F,0xBA (GRP8 mem/reg) (80386 and up)
             *
             * @this {X86CPU}
             */
            X86.opGRP8 = function GRP8()
            {
                this.aOpModGrpWord[this.getIPByte()].call(this, X86.aOpGrp8, this.getIPByte);
            };
            
            /**
             * opBTC()
             *
             * op=0x0F,0xBB (BTC mem/reg,reg)
             *
             * @this {X86CPU}
             */
            X86.opBTC = function BTC()
            {
                this.aOpModMemWord[this.getIPByte()].call(this, X86.fnBTC);
                if (this.regEA !== X86.ADDR_INVALID) this.nStepCycles -= 5;
            };
            
            /**
             * opBSF()
             *
             * op=0x0F,0xBC (BSF reg,mem/reg)
             *
             * @this {X86CPU}
             */
            X86.opBSF = function BSF()
            {
                this.aOpModRegWord[this.getIPByte()].call(this, X86.fnBSF);
            };
            
            /**
             * opBSR()
             *
             * op=0x0F,0xBD (BSR reg,mem/reg)
             *
             * @this {X86CPU}
             */
            X86.opBSR = function BSR()
            {
                this.aOpModRegWord[this.getIPByte()].call(this, X86.fnBSR);
            };
            
            /**
             * opMOVSXb()
             *
             * op=0x0F,0xBE (MOVSX reg,byte)
             *
             * @this {X86CPU}
             */
            X86.opMOVSXb = function MOVSXb()
            {
                /*
                 * The ModRegByte handlers update the registers in the 1st column, but we need to update those in the 2nd column.
                 *
                 *      000:    AL      ->      000:    AX
                 *      001:    CL      ->      001:    CX
                 *      010:    DL      ->      010:    DX
                 *      011:    BL      ->      011:    BX
                 *      100:    AH      ->      100:    SP
                 *      101:    CH      ->      101:    BP
                 *      110:    DH      ->      110:    SI
                 *      111:    BH      ->      111:    DI
                 */
                var temp;
                var bModRM = this.getIPByte();
                var reg = (bModRM & 0x38) >> 3;
                switch(reg) {
                case 0x4:
                    temp = this.regEAX;
                    break;
                case 0x5:
                    temp = this.regECX;
                    break;
                case 0x6:
                    temp = this.regEDX;
                    break;
                case 0x7:
                    temp = this.regEBX;
                    break;
                }
                this.aOpModRegByte[bModRM].call(this, X86.fnMOVX);
                switch(reg) {
                case 0x0:
                    this.regEAX = (this.regEAX & ~this.dataMask) | ((((this.regEAX & 0xff) << 24) >> 24) & this.dataMask);
                    break;
                case 0x1:
                    this.regECX = (this.regECX & ~this.dataMask) | ((((this.regECX & 0xff) << 24) >> 24) & this.dataMask);
                    break;
                case 0x2:
                    this.regEDX = (this.regEDX & ~this.dataMask) | ((((this.regEDX & 0xff) << 24) >> 24) & this.dataMask);
                    break;
                case 0x3:
                    this.regEBX = (this.regEBX & ~this.dataMask) | ((((this.regEBX & 0xff) << 24) >> 24) & this.dataMask);
                    break;
                case 0x4:
                    this.regESP = (this.regESP & ~this.dataMask) | (((this.regEAX << 16) >> 24) & this.dataMask);
                    this.regEAX = temp;
                    break;
                case 0x5:
                    this.regEBP = (this.regEBP & ~this.dataMask) | (((this.regECX << 16) >> 24) & this.dataMask);
                    this.regECX = temp;
                    break;
                case 0x6:
                    this.regESI = (this.regESI & ~this.dataMask) | (((this.regEDX << 16) >> 24) & this.dataMask);
                    this.regEDX = temp;
                    break;
                case 0x7:
                    this.regEDI = (this.regEDI & ~this.dataMask) | (((this.regEBX << 16) >> 24) & this.dataMask);
                    this.regEBX = temp;
                    break;
                }
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? 3 : 6);
            };
            
            /**
             * opMOVSXw()
             *
             * op=0x0F,0xBF (MOVSX reg,word)
             *
             * @this {X86CPU}
             */
            X86.opMOVSXw = function MOVSXw()
            {
                var bModRM = this.getIPByte();
                this.setDataSize(2);
                this.aOpModRegWord[bModRM].call(this, X86.fnMOVX);
                switch((bModRM & 0x38) >> 3) {
                case 0x0:
                    this.regEAX = ((this.regEAX << 16) >> 16);
                    break;
                case 0x1:
                    this.regECX = ((this.regECX << 16) >> 16);
                    break;
                case 0x2:
                    this.regEDX = ((this.regEDX << 16) >> 16);
                    break;
                case 0x3:
                    this.regEBX = ((this.regEBX << 16) >> 16);
                    break;
                case 0x4:
                    this.regESP = ((this.regESP << 16) >> 16);
                    break;
                case 0x5:
                    this.regEBP = ((this.regEBP << 16) >> 16);
                    break;
                case 0x6:
                    this.regESI = ((this.regESI << 16) >> 16);
                    break;
                case 0x7:
                    this.regEDI = ((this.regEDI << 16) >> 16);
                    break;
                }
                this.nStepCycles -= (this.regEA === X86.ADDR_INVALID? 3 : 6);
            };
            
            X86.aOps0F = new Array(256);
            
            X86.aOps0F[0x00] = X86.opGRP6;
            X86.aOps0F[0x01] = X86.opGRP7;
            X86.aOps0F[0x02] = X86.opLAR;
            X86.aOps0F[0x03] = X86.opLSL;
            X86.aOps0F[0x05] = X86.opLOADALL;
            X86.aOps0F[0x06] = X86.opCLTS;
            
            /*
             * On all processors (except the 8086/8088, of course), X86.OPCODE.UD2 (0x0F,0x0B), aka "UD2", is an
             * instruction guaranteed to raise a #UD (Invalid Opcode) exception (INT 0x06) on all post-8086 processors.
             */
            X86.aOps0F[0x0B] = X86.opInvalid;
            
            /*
             * The following 0x0F opcodes are of no consequence to us, since they were all introduced post-80386;
             * 0x0F,0xA6 and 0x0F,0xA7 were introduced on some 80486 processors (and then deprecated), while 0x0F,0xB0
             * and 0x0F,0xB1 were introduced on 80586 (aka Pentium) processors.
             *
             *      CMPXCHG r/m8,reg8           ; 0F B0 /r          [PENT]
             *      CMPXCHG r/m16,reg16         ; o16 0F B1 /r      [PENT]
             *      CMPXCHG r/m32,reg32         ; o32 0F B1 /r      [PENT]
             *      CMPXCHG486 r/m8,reg8        ; 0F A6 /r          [486,UNDOC]
             *      CMPXCHG486 r/m16,reg16      ; o16 0F A7 /r      [486,UNDOC]
             *      CMPXCHG486 r/m32,reg32      ; o32 0F A7 /r      [486,UNDOC]
             *
             * So why are we even mentioning them here? Only because some software (eg, Windows 3.00) attempts to execute
             * 0x0F,0xA6, so we need to explicitly mark it as invalid.  TODO: Purely out of curiosity, I would like to
             * eventually learn *why* Windows 3.00 does this; is it hoping to use the CMPXCHG486 opcode, or is it performing
             * a CPU/stepping check to detect/work-around some errata, or....?
             */
            X86.aOps0F[0xA6] = X86.opInvalid;
            
            /*
             * When Windows 95 Setup initializes in protected-mode, it sets a DPMI exception handler for UD_FAULT and
             * then attempts to generate that exception with undefined opcode 0x0F,0xFF.  Apparently, whoever wrote that code
             * (davidw?) didn't get the Intel memo regarding the preferred invalid opcode (0x0F,0x0B, aka UD2), or perhaps Intel
             * hadn't written that memo yet -- although if that's the case, then Intel should have followed Microsoft's lead and
             * selected 0x0F,0xFF instead of 0x0F,0x0B.
             *
             * In any case, this means we need to explicitly set the handler for that opcode to opInvalid(), too.
             */
            X86.aOps0F[0xFF] = X86.opInvalid;
            
            /*
             * NOTE: Any other opcode slots NOT explicitly initialized above with either a dedicated function OR opInvalid()
             * will be set to opUndefined() when initProcessor() finalizes the opcode tables.  If the processor is an 80386,
             * initProcessor() will also incorporate all the handlers listed below in aOps0F386.
             *
             * A call to opUndefined() implies something serious has occurred that merits our attention (eg, perhaps someone
             * is using an undocumented opcode that we haven't implemented yet), whereas a call to opInvalid() may or may not.
             */
            
            if (I386) {
                X86.aOps0F386 = [];
                X86.aOps0F386[0x20] = X86.opMOVrc;
                X86.aOps0F386[0x22] = X86.opMOVcr;
                X86.aOps0F386[0x80] = X86.opJOw;
                X86.aOps0F386[0x81] = X86.opJNOw;
                X86.aOps0F386[0x82] = X86.opJCw;
                X86.aOps0F386[0x83] = X86.opJNCw;
                X86.aOps0F386[0x84] = X86.opJZw;
                X86.aOps0F386[0x85] = X86.opJNZw;
                X86.aOps0F386[0x86] = X86.opJBEw;
                X86.aOps0F386[0x87] = X86.opJNBEw;
                X86.aOps0F386[0x88] = X86.opJSw;
                X86.aOps0F386[0x89] = X86.opJNSw;
                X86.aOps0F386[0x8A] = X86.opJPw;
                X86.aOps0F386[0x8B] = X86.opJNPw;
                X86.aOps0F386[0x8C] = X86.opJLw;
                X86.aOps0F386[0x8D] = X86.opJNLw;
                X86.aOps0F386[0x8E] = X86.opJLEw;
                X86.aOps0F386[0x8F] = X86.opJNLEw;
                X86.aOps0F386[0x90] = X86.opSETO;
                X86.aOps0F386[0x91] = X86.opSETNO;
                X86.aOps0F386[0x92] = X86.opSETC;
                X86.aOps0F386[0x93] = X86.opSETNC;
                X86.aOps0F386[0x94] = X86.opSETZ;
                X86.aOps0F386[0x95] = X86.opSETNZ;
                X86.aOps0F386[0x96] = X86.opSETBE;
                X86.aOps0F386[0x97] = X86.opSETNBE;
                X86.aOps0F386[0x98] = X86.opSETS;
                X86.aOps0F386[0x99] = X86.opSETNS;
                X86.aOps0F386[0x9A] = X86.opSETP;
                X86.aOps0F386[0x9B] = X86.opSETNP;
                X86.aOps0F386[0x9C] = X86.opSETL;
                X86.aOps0F386[0x9D] = X86.opSETNL;
                X86.aOps0F386[0x9E] = X86.opSETLE;
                X86.aOps0F386[0x9F] = X86.opSETNLE;
                X86.aOps0F386[0xA0] = X86.opPUSHFS;
                X86.aOps0F386[0xA1] = X86.opPOPFS;
                X86.aOps0F386[0xA3] = X86.opBT;
                X86.aOps0F386[0xA4] = X86.opSHLDn;
                X86.aOps0F386[0xA5] = X86.opSHLDcl;
                X86.aOps0F386[0xA8] = X86.opPUSHGS;
                X86.aOps0F386[0xA9] = X86.opPOPGS;
                X86.aOps0F386[0xAB] = X86.opBTS;
                X86.aOps0F386[0xAC] = X86.opSHRDn;
                X86.aOps0F386[0xAD] = X86.opSHRDcl;
                X86.aOps0F386[0xAF] = X86.opIMUL;
                X86.aOps0F386[0xB2] = X86.opLSS;
                X86.aOps0F386[0xB3] = X86.opBTR;
                X86.aOps0F386[0xB4] = X86.opLFS;
                X86.aOps0F386[0xB5] = X86.opLGS;
                X86.aOps0F386[0xB6] = X86.opMOVZXb;
                X86.aOps0F386[0xB7] = X86.opMOVZXw;
                X86.aOps0F386[0xBA] = X86.opGRP8;
                X86.aOps0F386[0xBB] = X86.opBTC;
                X86.aOps0F386[0xBC] = X86.opBSF;
                X86.aOps0F386[0xBD] = X86.opBSR;
                X86.aOps0F386[0xBE] = X86.opMOVSXb;
                X86.aOps0F386[0xBF] = X86.opMOVSXw;
            }
            
            /*
             * These instruction groups are not as orthogonal as the original 8086/8088 groups (Grp1 through Grp4); some of
             * the instructions in Grp6 and Grp7 only read their dst operand (eg, LLDT), which means the ModRM helper function
             * must insure that setEAWord() is disabled, while others only write their dst operand (eg, SLDT), which means that
             * getEAWord() should be disabled *prior* to calling the ModRM helper function.  This latter case requires that
             * we decode the reg field of the ModRM byte before dispatching.
             */
            X86.aOpGrp6Prot = [
                X86.fnSLDT,             X86.fnSTR,              X86.fnLLDT,             X86.fnLTR,              // 0x0F,0x00(reg=0x0-0x3)
                X86.fnVERR,             X86.fnVERW,             X86.fnGRPUndefined,     X86.fnGRPUndefined      // 0x0F,0x00(reg=0x4-0x7)
            ];
            
            X86.aOpGrp6Real = [
                X86.fnGRPInvalid,       X86.fnGRPInvalid,       X86.fnGRPInvalid,       X86.fnGRPInvalid,       // 0x0F,0x00(reg=0x0-0x3)
                X86.fnGRPInvalid,       X86.fnGRPInvalid,       X86.fnGRPUndefined,     X86.fnGRPUndefined      // 0x0F,0x00(reg=0x4-0x7)
            ];
            
            /*
             * Unlike Grp6, Grp7 and Grp8 do not require separate real-mode and protected-mode dispatch tables, because
             * all Grp7 and Grp8 instructions are valid in both modes.
             */
            X86.aOpGrp7 = [
                X86.fnSGDT,             X86.fnSIDT,             X86.fnLGDT,             X86.fnLIDT,             // 0x0F,0x01(reg=0x0-0x3)
                X86.fnSMSW,             X86.fnGRPUndefined,     X86.fnLMSW,             X86.fnGRPUndefined      // 0x0F,0x01(reg=0x4-0x7)
            ];
            
            X86.aOpGrp8 = [
                X86.fnGRPUndefined,     X86.fnGRPUndefined,     X86.fnGRPUndefined,     X86.fnGRPUndefined,     // 0x0F,0xBA(reg=0x0-0x3)
                X86.fnBT,               X86.fnBTS,              X86.fnBTR,              X86.fnBTC               // 0x0F,0xBA(reg=0x4-0x7)
            ];
            
          • x86ops.js
            /**
             * @fileoverview Implements PCjs 8086 opcode decoding.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Sep-05
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var str         = require("../../shared/lib/strlib");
                var Component   = require("../../shared/lib/component");
                var Messages    = require("./messages");
                var X86         = require("./x86");
            }
            
            /**
             * op=0x00 (ADD byte,reg)
             *
             * @this {X86CPU}
             */
            X86.opADDmb = function ADDmb()
            {
                var b = this.getIPByte();
                /*
                 * Opcode bytes 0x00 0x00 are sufficiently uncommon that it's more likely we've started
                 * executing in the weeds, so we'll print a warning if you're in DEBUG mode, and optionally
                 * stop the CPU if a Debugger is available.
                 */
                if (DEBUG && !b) {
                    this.printMessage("suspicious opcode: 0x00 0x00", DEBUGGER || this.bitsMessage);
                    if (DEBUGGER && this.dbg) this.stopCPU();
                }
                this.aOpModMemByte[b].call(this, X86.fnADDb);
            };
            
            /**
             * op=0x01 (ADD word,reg)
             *
             * @this {X86CPU}
             */
            X86.opADDmw = function ADDmw()
            {
                this.aOpModMemWord[this.getIPByte()].call(this, X86.fnADDw);
            };
            
            /**
             * op=0x02 (ADD reg,byte)
             *
             * @this {X86CPU}
             */
            X86.opADDrb = function ADDrb()
            {
                this.aOpModRegByte[this.getIPByte()].call(this, X86.fnADDb);
            };
            
            /**
             * op=0x03 (ADD reg,word)
             *
             * @this {X86CPU}
             */
            X86.opADDrw = function ADDrw()
            {
                this.aOpModRegWord[this.getIPByte()].call(this, X86.fnADDw);
            };
            
            /**
             * op=0x04 (ADD AL,imm8)
             *
             * @this {X86CPU}
             */
            X86.opADDALb = function ADDALb()
            {
                this.regEAX = (this.regEAX & ~0xff) | X86.fnADDb.call(this, this.regEAX & 0xff, this.getIPByte());
                /*
                 * NOTE: Whenever the result is "blended" value (eg, of btiAL and btiMemLo), a new bti should be
                 * allocated to reflect that fact; however, I'm leaving "perfect" BACKTRACK support for another day.
                 */
                if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiMemLo;
                this.nStepCycles--;         // in the absence of any EA calculations, we need deduct only one more cycle
            };
            
            /**
             * op=0x05 (ADD AX,imm16 or ADD EAX,imm32)
             *
             * @this {X86CPU}
             */
            X86.opADDAX = function ADDAX()
            {
                this.regEAX = (this.regEAX & ~this.dataMask) | X86.fnADDw.call(this, this.regEAX & this.dataMask, this.getIPWord());
                if (BACKTRACK) {
                    this.backTrack.btiAL = this.backTrack.btiMemLo; this.backTrack.btiAH = this.backTrack.btiMemHi;
                }
                this.nStepCycles--;         // in the absence of any EA calculations, we need deduct only one more cycle
            };
            
            /**
             * op=0x06 (PUSH ES)
             *
             * @this {X86CPU}
             */
            X86.opPUSHES = function PUSHES()
            {
                this.pushWord(this.segES.sel);
                this.nStepCycles -= this.cycleCounts.nOpCyclesPushSeg;
            };
            
            /**
             * op=0x07 (POP ES)
             *
             * @this {X86CPU}
             */
            X86.opPOPES = function POPES()
            {
                this.setES(this.popWord());
                this.nStepCycles -= this.cycleCounts.nOpCyclesPopReg;
            };
            
            /**
             * op=0x08 (OR byte,reg)
             *
             * @this {X86CPU}
             */
            X86.opORmb = function ORmb()
            {
                this.aOpModMemByte[this.getIPByte()].call(this, X86.fnORb);
            };
            
            /**
             * op=0x09 (OR word,reg)
             *
             * @this {X86CPU}
             */
            X86.opORmw = function ORmw()
            {
                this.aOpModMemWord[this.getIPByte()].call(this, X86.fnORw);
            };
            
            /**
             * op=0x0A (OR reg,byte)
             *
             * @this {X86CPU}
             */
            X86.opORrb = function ORrb()
            {
                this.aOpModRegByte[this.getIPByte()].call(this, X86.fnORb);
            };
            
            /**
             * op=0x0B (OR reg,word)
             *
             * @this {X86CPU}
             */
            X86.opORrw = function ORrw()
            {
                this.aOpModRegWord[this.getIPByte()].call(this, X86.fnORw);
            };
            
            /**
             * op=0x0C (OR AL,imm8)
             *
             * @this {X86CPU}
             */
            X86.opORALb = function ORALb()
            {
                this.regEAX = (this.regEAX & ~0xff) | X86.fnORb.call(this, this.regEAX & 0xff, this.getIPByte());
                if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiMemLo;
                this.nStepCycles--;         // in the absence of any EA calculations, we need deduct only one more cycle
            };
            
            /**
             * op=0x0D (OR AX,imm16 or OR EAX,imm32)
             *
             * @this {X86CPU}
             */
            X86.opORAX = function ORAX()
            {
                this.regEAX = (this.regEAX & ~this.dataMask) | X86.fnORw.call(this, this.regEAX & this.dataMask, this.getIPWord());
                if (BACKTRACK) {
                    this.backTrack.btiAL = this.backTrack.btiMemLo; this.backTrack.btiAH = this.backTrack.btiMemHi;
                }
                this.nStepCycles--;         // in the absence of any EA calculations, we need deduct only one more cycle
            };
            
            /**
             * op=0x0E (PUSH CS)
             *
             * @this {X86CPU}
             */
            X86.opPUSHCS = function PUSHCS()
            {
                this.pushWord(this.segCS.sel);
                this.nStepCycles -= this.cycleCounts.nOpCyclesPushSeg;
            };
            
            /**
             * op=0x0F (POP CS) (undocumented on 8086/8088; replaced with opInvalid() on 80186/80188, and op0F() on 80286 and up)
             *
             * @this {X86CPU}
             */
            X86.opPOPCS = function POPCS()
            {
                this.setCS(this.popWord());
                this.nStepCycles -= this.cycleCounts.nOpCyclesPopReg;
            };
            
            /**
             * op=0x0F (handler for two-byte opcodes; 80286 and up)
             *
             * @this {X86CPU}
             */
            X86.op0F = function OP0F()
            {
                this.aOps0F[this.getIPByte()].call(this);
            };
            
            /**
             * op=0x10 (ADC byte,reg)
             *
             * @this {X86CPU}
             */
            X86.opADCmb = function ADCmb()
            {
                this.aOpModMemByte[this.getIPByte()].call(this, X86.fnADCb);
            };
            
            /**
             * op=0x11 (ADC word,reg)
             *
             * @this {X86CPU}
             */
            X86.opADCmw = function ADCmw()
            {
                this.aOpModMemWord[this.getIPByte()].call(this, X86.fnADCw);
            };
            
            /**
             * op=0x12 (ADC reg,byte)
             *
             * @this {X86CPU}
             */
            X86.opADCrb = function ADCrb()
            {
                this.aOpModRegByte[this.getIPByte()].call(this, X86.fnADCb);
            };
            
            /**
             * op=0x13 (ADC reg,word)
             *
             * @this {X86CPU}
             */
            X86.opADCrw = function ADCrw()
            {
                this.aOpModRegWord[this.getIPByte()].call(this, X86.fnADCw);
            };
            
            /**
             * op=0x14 (ADC AL,imm8)
             *
             * @this {X86CPU}
             */
            X86.opADCALb = function ADCALb()
            {
                this.regEAX = (this.regEAX & ~0xff) | X86.fnADCb.call(this, this.regEAX & 0xff, this.getIPByte());
                if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiMemLo;
                this.nStepCycles--;         // in the absence of any EA calculations, we need deduct only one more cycle
            };
            
            /**
             * op=0x15 (ADC AX,imm16 or ADC EAX,imm32)
             *
             * @this {X86CPU}
             */
            X86.opADCAX = function ADCAX()
            {
                this.regEAX = (this.regEAX & ~this.dataMask) | X86.fnADCw.call(this, this.regEAX & this.dataMask, this.getIPWord());
                if (BACKTRACK) {
                    this.backTrack.btiAL = this.backTrack.btiMemLo; this.backTrack.btiAH = this.backTrack.btiMemHi;
                }
                this.nStepCycles--;         // in the absence of any EA calculations, we need deduct only one more cycle
            };
            
            /**
             * op=0x16 (PUSH SS)
             *
             * @this {X86CPU}
             */
            X86.opPUSHSS = function PUSHSS()
            {
                this.pushWord(this.segSS.sel);
                this.nStepCycles -= this.cycleCounts.nOpCyclesPushSeg;
            };
            
            /**
             * op=0x17 (POP SS)
             *
             * @this {X86CPU}
             */
            X86.opPOPSS = function POPSS()
            {
                this.setSS(this.popWord());
                this.nStepCycles -= this.cycleCounts.nOpCyclesPopReg;
            };
            
            /**
             * op=0x18 (SBB byte,reg)
             *
             * @this {X86CPU}
             */
            X86.opSBBmb = function SBBmb()
            {
                this.aOpModMemByte[this.getIPByte()].call(this, X86.fnSBBb);
            };
            
            /**
             * op=0x19 (SBB word,reg)
             *
             * @this {X86CPU}
             */
            X86.opSBBmw = function SBBmw()
            {
                this.aOpModMemWord[this.getIPByte()].call(this, X86.fnSBBw);
            };
            
            /**
             * op=0x1A (SBB reg,byte)
             *
             * @this {X86CPU}
             */
            X86.opSBBrb = function SBBrb()
            {
                this.aOpModRegByte[this.getIPByte()].call(this, X86.fnSBBb);
            };
            
            /**
             * op=0x1B (SBB reg,word)
             *
             * @this {X86CPU}
             */
            X86.opSBBrw = function SBBrw()
            {
                this.aOpModRegWord[this.getIPByte()].call(this, X86.fnSBBw);
            };
            
            /**
             * op=0x1C (SBB AL,imm8)
             *
             * @this {X86CPU}
             */
            X86.opSBBALb = function SBBALb()
            {
                this.regEAX = (this.regEAX & ~0xff) | X86.fnSBBb.call(this, this.regEAX & 0xff, this.getIPByte());
                if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiMemLo;
                this.nStepCycles--;         // in the absence of any EA calculations, we need deduct only one more cycle
            };
            
            /**
             * op=0x1D (SBB AX,imm16 or SBB EAX,imm32)
             *
             * @this {X86CPU}
             */
            X86.opSBBAX = function SBBAX()
            {
                this.regEAX = (this.regEAX & ~this.dataMask) | X86.fnSBBw.call(this, this.regEAX & this.dataMask, this.getIPWord());
                if (BACKTRACK) {
                    this.backTrack.btiAL = this.backTrack.btiMemLo; this.backTrack.btiAH = this.backTrack.btiMemHi;
                }
                this.nStepCycles--;         // in the absence of any EA calculations, we need deduct only one more cycle
            };
            
            /**
             * op=0x1E (PUSH DS)
             *
             * @this {X86CPU}
             */
            X86.opPUSHDS = function PUSHDS()
            {
                this.pushWord(this.segDS.sel);
                this.nStepCycles -= this.cycleCounts.nOpCyclesPushSeg;
            };
            
            /**
             * op=0x1F (POP DS)
             *
             * @this {X86CPU}
             */
            X86.opPOPDS = function POPDS()
            {
                this.setDS(this.popWord());
                this.nStepCycles -= this.cycleCounts.nOpCyclesPopReg;
            };
            
            /**
             * op=0x20 (AND byte,reg)
             *
             * @this {X86CPU}
             */
            X86.opANDmb = function ANDmb()
            {
                this.aOpModMemByte[this.getIPByte()].call(this, X86.fnANDb);
            };
            
            /**
             * op=0x21 (AND word,reg)
             *
             * @this {X86CPU}
             */
            X86.opANDmw = function ANDmw()
            {
                this.aOpModMemWord[this.getIPByte()].call(this, X86.fnANDw);
            };
            
            /**
             * op=0x22 (AND reg,byte)
             *
             * @this {X86CPU}
             */
            X86.opANDrb = function ANDrb()
            {
                this.aOpModRegByte[this.getIPByte()].call(this, X86.fnANDb);
            };
            
            /**
             * op=0x23 (AND reg,word)
             *
             * @this {X86CPU}
             */
            X86.opANDrw = function ANDrw()
            {
                this.aOpModRegWord[this.getIPByte()].call(this, X86.fnANDw);
            };
            
            /**
             * op=0x24 (AND AL,imm8)
             *
             * @this {X86CPU}
             */
            X86.opANDAL = function ANDAL()
            {
                this.regEAX = (this.regEAX & ~0xff) | X86.fnANDb.call(this, this.regEAX & 0xff, this.getIPByte());
                if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiMemLo;
                this.nStepCycles--;         // in the absence of any EA calculations, we need deduct only one more cycle
            };
            
            /**
             * op=0x25 (AND AX,imm16 or AND EAX,imm32)
             *
             * @this {X86CPU}
             */
            X86.opANDAX = function ANDAX()
            {
                this.regEAX = (this.regEAX & ~this.dataMask) | X86.fnANDw.call(this, this.regEAX & this.dataMask, this.getIPWord());
                if (BACKTRACK) {
                    this.backTrack.btiAL = this.backTrack.btiMemLo; this.backTrack.btiAH = this.backTrack.btiMemHi;
                }
                this.nStepCycles--;         // in the absence of any EA calculations, we need deduct only one more cycle
            };
            
            /**
             * op=0x26 (ES:)
             *
             * @this {X86CPU}
             */
            X86.opES = function ES()
            {
                /*
                 * NOTE: The fact that we're setting NOINTR along with SEG is really just for documentation purposes;
                 * the way stepCPU() is written, the presence of any prefix bypasses normal interrupt processing anyway.
                 */
                this.opFlags |= X86.OPFLAG.SEG | X86.OPFLAG.NOINTR;
                this.segData = this.segStack = this.segES;
                this.nStepCycles -= this.cycleCounts.nOpCyclesPrefix;
            };
            
            /**
             * op=0x27 (DAA)
             *
             * @this {X86CPU}
             */
            X86.opDAA = function DAA()
            {
                var AL = this.regEAX & 0xff;
                var AF = this.getAF();
                var CF = this.getCF();
                if ((AL & 0xf) > 9 || AF) {
                    AL += 0x6;
                    AF = X86.PS.AF;
                }
                if (AL > 0x9f || CF) {
                    AL += 0x60;
                    CF = X86.PS.CF;
                }
                var b = (AL & 0xff);
                this.regEAX = (this.regEAX & ~0xff) | b;
                this.setLogicResult(b, X86.RESULT.BYTE);
                if (CF) this.setCF(); else this.clearCF();
                if (AF) this.setAF(); else this.clearAF();
                this.nStepCycles -= this.cycleCounts.nOpCyclesAAA;          // AAA and DAA have the same cycle times
            };
            
            /**
             * op=0x28 (SUB byte,reg)
             *
             * @this {X86CPU}
             */
            X86.opSUBmb = function SUBmb()
            {
                this.aOpModMemByte[this.getIPByte()].call(this, X86.fnSUBb);
            };
            
            /**
             * op=0x29 (SUB word,reg)
             *
             * @this {X86CPU}
             */
            X86.opSUBmw = function SUBmw()
            {
                this.aOpModMemWord[this.getIPByte()].call(this, X86.fnSUBw);
            };
            
            /**
             * op=0x2A (SUB reg,byte)
             *
             * @this {X86CPU}
             */
            X86.opSUBrb = function SUBrb()
            {
                this.aOpModRegByte[this.getIPByte()].call(this, X86.fnSUBb);
            };
            
            /**
             * op=0x2B (SUB reg,word)
             *
             * @this {X86CPU}
             */
            X86.opSUBrw = function SUBrw()
            {
                this.aOpModRegWord[this.getIPByte()].call(this, X86.fnSUBw);
            };
            
            /**
             * op=0x2C (SUB AL,imm8)
             *
             * @this {X86CPU}
             */
            X86.opSUBALb = function SUBALb()
            {
                this.regEAX = (this.regEAX & ~0xff) | X86.fnSUBb.call(this, this.regEAX & 0xff, this.getIPByte());
                if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiMemLo;
                this.nStepCycles--;         // in the absence of any EA calculations, we need deduct only one more cycle
            };
            
            /**
             * op=0x2D (SUB AX,imm16 or SUB EAX,imm32)
             *
             * @this {X86CPU}
             */
            X86.opSUBAX = function SUBAX()
            {
                this.regEAX = (this.regEAX & ~this.dataMask) | X86.fnSUBw.call(this, this.regEAX & this.dataMask, this.getIPWord());
                if (BACKTRACK) {
                    this.backTrack.btiAL = this.backTrack.btiMemLo; this.backTrack.btiAH = this.backTrack.btiMemHi;
                }
                this.nStepCycles--;         // in the absence of any EA calculations, we need deduct only one more cycle
            };
            
            /**
             * op=0x2E (CS:)
             *
             * @this {X86CPU}
             */
            X86.opCS = function CS()
            {
                /*
                 * NOTE: The fact that we're setting NOINTR along with SEG is really just for documentation purposes;
                 * the way stepCPU() is written, the presence of any prefix bypasses normal interrupt processing anyway.
                 */
                this.opFlags |= X86.OPFLAG.SEG | X86.OPFLAG.NOINTR;
                this.segData = this.segStack = this.segCS;
                this.nStepCycles -= this.cycleCounts.nOpCyclesPrefix;
            };
            
            /**
             * op=0x2F (DAS)
             *
             * @this {X86CPU}
             */
            X86.opDAS = function DAS()
            {
                var AL = this.regEAX & 0xff;
                var AF = this.getAF();
                var CF = this.getCF();
                if ((AL & 0xf) > 9 || AF) {
                    AL -= 0x6;
                    AF = X86.PS.AF;
                }
                if (AL > 0x9f || CF) {
                    AL -= 0x60;
                    CF = X86.PS.CF;
                }
                var b = (AL & 0xff);
                this.regEAX = (this.regEAX & ~0xff) | b;
                this.setLogicResult(b, X86.RESULT.BYTE);
                if (CF) this.setCF(); else this.clearCF();
                if (AF) this.setAF(); else this.clearAF();
                this.nStepCycles -= this.cycleCounts.nOpCyclesAAA;          // AAA and DAS have the same cycle times
            };
            
            /**
             * op=0x30 (XOR byte,reg)
             *
             * @this {X86CPU}
             */
            X86.opXORmb = function XORmb()
            {
                this.aOpModMemByte[this.getIPByte()].call(this, X86.fnXORb);
            };
            
            /**
             * op=0x31 (XOR word,reg)
             *
             * @this {X86CPU}
             */
            X86.opXORmw = function XORmw()
            {
                this.aOpModMemWord[this.getIPByte()].call(this, X86.fnXORw);
            };
            
            /**
             * op=0x32 (XOR reg,byte)
             *
             * @this {X86CPU}
             */
            X86.opXORrb = function XORrb()
            {
                this.aOpModRegByte[this.getIPByte()].call(this, X86.fnXORb);
            };
            
            /**
             * op=0x33 (XOR reg,word)
             *
             * @this {X86CPU}
             */
            X86.opXORrw = function XORrw()
            {
                this.aOpModRegWord[this.getIPByte()].call(this, X86.fnXORw);
            };
            
            /**
             * op=0x34 (XOR AL,imm8)
             *
             * @this {X86CPU}
             */
            X86.opXORALb = function XORALb()
            {
                this.regEAX = (this.regEAX & ~0xff) | X86.fnXORb.call(this, this.regEAX & 0xff, this.getIPByte());
                if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiMemLo;
                this.nStepCycles--;         // in the absence of any EA calculations, we need deduct only one more cycle
            };
            
            /**
             * op=0x35 (XOR AX,imm16 or XOR EAX,imm32)
             *
             * @this {X86CPU}
             */
            X86.opXORAX = function XORAX()
            {
                this.regEAX = (this.regEAX & ~this.dataMask) | X86.fnXORw.call(this, this.regEAX & this.dataMask, this.getIPWord());
                if (BACKTRACK) {
                    this.backTrack.btiAL = this.backTrack.btiMemLo; this.backTrack.btiAH = this.backTrack.btiMemHi;
                }
                this.nStepCycles--;         // in the absence of any EA calculations, we need deduct only one more cycle
            };
            
            /**
             * op=0x36 (SS:)
             *
             * @this {X86CPU}
             */
            X86.opSS = function SS()
            {
                /*
                 * NOTE: The fact that we're setting NOINTR along with SEG is really just for documentation purposes;
                 * the way stepCPU() is written, the presence of any prefix bypasses normal interrupt processing anyway.
                 */
                this.opFlags |= X86.OPFLAG.SEG | X86.OPFLAG.NOINTR;
                this.segData = this.segStack = this.segSS;      // QUESTION: Is there a case where segStack would not already be segSS? (eg, multiple segment overrides?)
                this.nStepCycles -= this.cycleCounts.nOpCyclesPrefix;
            };
            
            /**
             * op=0x37 (AAA)
             *
             * @this {X86CPU}
             */
            X86.opAAA = function AAA()
            {
                var CF, AF;
                var AL = this.regEAX & 0xff;
                var AH = (this.regEAX >> 8) & 0xff;
                if ((AL & 0xf) > 9 || this.getAF()) {
                    AL = (AL + 0x6) & 0xf;
                    AH = (AH + 1) & 0xff;
                    CF = AF = 1;
                } else {
                    CF = AF = 0;
                }
                this.regEAX = (this.regEAX & ~0xffff) | ((AH << 8) | AL);
                if (CF) this.setCF(); else this.clearCF();
                if (AF) this.setAF(); else this.clearAF();
                this.nStepCycles -= this.cycleCounts.nOpCyclesAAA;
            };
            
            /**
             * op=0x38 (CMP byte,reg)
             *
             * @this {X86CPU}
             */
            X86.opCMPmb = function CMPmb()
            {
                this.aOpModMemByte[this.getIPByte()].call(this, X86.fnCMPb);
            };
            
            /**
             * op=0x39 (CMP word,reg)
             *
             * @this {X86CPU}
             */
            X86.opCMPmw = function CMPmw()
            {
                this.aOpModMemWord[this.getIPByte()].call(this, X86.fnCMPw);
            };
            
            /**
             * op=0x3A (CMP reg,byte)
             *
             * @this {X86CPU}
             */
            X86.opCMPrb = function CMPrb()
            {
                this.aOpModRegByte[this.getIPByte()].call(this, X86.fnCMPb);
            };
            
            /**
             * op=0x3B (CMP reg,word)
             *
             * @this {X86CPU}
             */
            X86.opCMPrw = function CMPrw()
            {
                this.aOpModRegWord[this.getIPByte()].call(this, X86.fnCMPw);
            };
            
            /**
             * op=0x3C (CMP AL,imm8)
             *
             * @this {X86CPU}
             */
            X86.opCMPALb = function CMPALb()
            {
                X86.fnCMPb.call(this, this.regEAX & 0xff, this.getIPByte());
                this.nStepCycles--;         // in the absence of any EA calculations, we need deduct only one more cycle
            };
            
            /**
             * op=0x3D (CMP AX,imm16 or CMP EAX,imm32)
             *
             * @this {X86CPU}
             */
            X86.opCMPAX = function CMPAX()
            {
                X86.fnCMPw.call(this, this.regEAX & this.dataMask, this.getIPWord());
                this.nStepCycles--;         // in the absence of any EA calculations, we need deduct only one more cycle
            };
            
            /**
             * op=0x3E (DS:)
             *
             * @this {X86CPU}
             */
            X86.opDS = function DS()
            {
                /*
                 * NOTE: The fact that we're setting NOINTR along with SEG is really just for documentation purposes;
                 * the way stepCPU() is written, the presence of any prefix bypasses normal interrupt processing anyway.
                 */
                this.opFlags |= X86.OPFLAG.SEG | X86.OPFLAG.NOINTR;
                this.segData = this.segStack = this.segDS;      // QUESTION: Is there a case where segData would not already be segDS? (eg, multiple segment overrides?)
                this.nStepCycles -= this.cycleCounts.nOpCyclesPrefix;
            };
            
            /**
             * op=0x3D (AAS)
             *
             * @this {X86CPU}
             */
            X86.opAAS = function AAS()
            {
                var CF, AF;
                var AL = this.regEAX & 0xff;
                var AH = (this.regEAX >> 8) & 0xff;
                if ((AL & 0xf) > 9 || this.getAF()) {
                    AL = (AL - 0x6) & 0xf;
                    AH = (AH - 1) & 0xff;
                    CF = AF = 1;
                } else {
                    CF = AF = 0;
                }
                this.regEAX = (this.regEAX & ~0xffff) | ((AH << 8) | AL);
                if (CF) this.setCF(); else this.clearCF();
                if (AF) this.setAF(); else this.clearAF();
                this.nStepCycles -= this.cycleCounts.nOpCyclesAAA;   // AAA and AAS have the same cycle times
            };
            
            /**
             * op=0x40 (INC [E]AX)
             *
             * @this {X86CPU}
             */
            X86.opINCAX = function INCAX()
            {
                this.regEAX = X86.fnINCr.call(this, this.regEAX);
            };
            
            /**
             * op=0x41 (INC [E]CX)
             *
             * @this {X86CPU}
             */
            X86.opINCCX = function INCCX()
            {
                this.regECX = X86.fnINCr.call(this, this.regECX);
            };
            
            /**
             * op=0x42 (INC [E]DX)
             *
             * @this {X86CPU}
             */
            X86.opINCDX = function INCDX()
            {
                this.regEDX = X86.fnINCr.call(this, this.regEDX);
            };
            
            /**
             * op=0x43 (INC [E]BX)
             *
             * @this {X86CPU}
             */
            X86.opINCBX = function INCBX()
            {
                this.regEBX = X86.fnINCr.call(this, this.regEBX);
            };
            
            /**
             * op=0x44 (INC [E]SP)
             *
             * @this {X86CPU}
             */
            X86.opINCSP = function INCSP()
            {
                this.setSP(X86.fnINCr.call(this, this.getSP()));
            };
            
            /**
             * op=0x45 (INC [E]BP)
             *
             * @this {X86CPU}
             */
            X86.opINCBP = function INCBP()
            {
                this.regEBP = X86.fnINCr.call(this, this.regEBP);
            };
            
            /**
             * op=0x46 (INC [E]SI)
             *
             * @this {X86CPU}
             */
            X86.opINCSI = function INCSI()
            {
                this.regESI = X86.fnINCr.call(this, this.regESI);
            };
            
            /**
             * op=0x47 (INC [E]DI)
             *
             * @this {X86CPU}
             */
            X86.opINCDI = function INCDI()
            {
                this.regEDI = X86.fnINCr.call(this, this.regEDI);
            };
            
            /**
             * op=0x48 (DEC [E]AX)
             *
             * @this {X86CPU}
             */
            X86.opDECAX = function DECAX()
            {
                this.regEAX = X86.fnDECr.call(this, this.regEAX);
            };
            
            /**
             * op=0x49 (DEC [E]CX)
             *
             * @this {X86CPU}
             */
            X86.opDECCX = function DECCX()
            {
                this.regECX = X86.fnDECr.call(this, this.regECX);
            };
            
            /**
             * op=0x4A (DEC [E]DX)
             *
             * @this {X86CPU}
             */
            X86.opDECDX = function DECDX()
            {
                this.regEDX = X86.fnDECr.call(this, this.regEDX);
            };
            
            /**
             * op=0x4B (DEC [E]BX)
             *
             * @this {X86CPU}
             */
            X86.opDECBX = function DECBX()
            {
                this.regEBX = X86.fnDECr.call(this, this.regEBX);
            };
            
            /**
             * op=0x4C (DEC [E]SP)
             *
             * @this {X86CPU}
             */
            X86.opDECSP = function DECSP()
            {
                this.setSP(X86.fnDECr.call(this, this.getSP()));
            };
            
            /**
             * op=0x4D (DEC [E]BP)
             *
             * @this {X86CPU}
             */
            X86.opDECBP = function DECBP()
            {
                this.regEBP = X86.fnDECr.call(this, this.regEBP);
            };
            
            /**
             * op=0x4E (DEC [E]SI)
             *
             * @this {X86CPU}
             */
            X86.opDECSI = function DECSI()
            {
                this.regESI = X86.fnDECr.call(this, this.regESI);
            };
            
            /**`
             * op=0x4F (DEC [E]DI)
             *
             * @this {X86CPU}
             */
            X86.opDECDI = function DECDI()
            {
                this.regEDI = X86.fnDECr.call(this, this.regEDI);
            };
            
            /**
             * op=0x50 (PUSH [E]AX)
             *
             * @this {X86CPU}
             */
            X86.opPUSHAX = function PUSHAX()
            {
                if (BACKTRACK) {
                    this.backTrack.btiMemLo = this.backTrack.btiAL; this.backTrack.btiMemHi = this.backTrack.btiAH;
                }
                this.pushWord(this.regEAX & this.dataMask);
                this.nStepCycles -= this.cycleCounts.nOpCyclesPushReg;
            };
            
            /**
             * op=0x51 (PUSH [E]CX)
             *
             * @this {X86CPU}
             */
            X86.opPUSHCX = function PUSHCX()
            {
                if (BACKTRACK) {
                    this.backTrack.btiMemLo = this.backTrack.btiCL; this.backTrack.btiMemHi = this.backTrack.btiCH;
                }
                this.pushWord(this.regECX & this.dataMask);
                this.nStepCycles -= this.cycleCounts.nOpCyclesPushReg;
            };
            
            /**
             * op=0x52 (PUSH [E]DX)
             *
             * @this {X86CPU}
             */
            X86.opPUSHDX = function PUSHDX()
            {
                if (BACKTRACK) {
                    this.backTrack.btiMemLo = this.backTrack.btiDL; this.backTrack.btiMemHi = this.backTrack.btiDH;
                }
                this.pushWord(this.regEDX & this.dataMask);
                this.nStepCycles -= this.cycleCounts.nOpCyclesPushReg;
            };
            
            /**
             * op=0x53 (PUSH [E]BX)
             *
             * @this {X86CPU}
             */
            X86.opPUSHBX = function PUSHBX()
            {
                if (BACKTRACK) {
                    this.backTrack.btiMemLo = this.backTrack.btiBL; this.backTrack.btiMemHi = this.backTrack.btiBH;
                }
                this.pushWord(this.regEBX & this.dataMask);
                this.nStepCycles -= this.cycleCounts.nOpCyclesPushReg;
            };
            
            /**
             * op=0x54 (PUSH SP)
             *
             * @this {X86CPU}
             */
            X86.opPUSHSP_8086 = function PUSHSP_8086()
            {
                var w = (this.getSP() - 2) & 0xffff;
                this.pushWord(w);
                this.nStepCycles -= this.cycleCounts.nOpCyclesPushReg;
            };
            
            /**
             * op=0x54 (PUSH [E]SP)
             *
             * @this {X86CPU}
             */
            X86.opPUSHSP = function PUSHSP()
            {
                this.pushWord(this.getSP() & this.dataMask);
                this.nStepCycles -= this.cycleCounts.nOpCyclesPushReg;
            };
            
            /**
             * op=0x55 (PUSH [E]BP)
             *
             * @this {X86CPU}
             */
            X86.opPUSHBP = function PUSHBP()
            {
                if (BACKTRACK) {
                    this.backTrack.btiMemLo = this.backTrack.btiBPLo; this.backTrack.btiMemHi = this.backTrack.btiBPHi;
                }
                this.pushWord(this.regEBP & this.dataMask);
                this.nStepCycles -= this.cycleCounts.nOpCyclesPushReg;
            };
            
            /**
             * op=0x56 (PUSH [E]SI)
             *
             * @this {X86CPU}
             */
            X86.opPUSHSI = function PUSHSI()
            {
                if (BACKTRACK) {
                    this.backTrack.btiMemLo = this.backTrack.btiSILo; this.backTrack.btiMemHi = this.backTrack.btiSIHi;
                }
                this.pushWord(this.regESI & this.dataMask);
                this.nStepCycles -= this.cycleCounts.nOpCyclesPushReg;
            };
            
            /**
             * op=0x57 (PUSH [E]DI)
             *
             * @this {X86CPU}
             */
            X86.opPUSHDI = function PUSHDI()
            {
                if (BACKTRACK) {
                    this.backTrack.btiMemLo = this.backTrack.btiDILo; this.backTrack.btiMemHi = this.backTrack.btiDIHi;
                }
                this.pushWord(this.regEDI & this.dataMask);
                this.nStepCycles -= this.cycleCounts.nOpCyclesPushReg;
            };
            
            /**
             * op=0x58 (POP [E]AX)
             *
             * @this {X86CPU}
             */
            X86.opPOPAX = function POPAX()
            {
                this.regEAX = (this.regEAX & ~this.dataMask) | this.popWord();
                if (BACKTRACK) {
                    this.backTrack.btiAL = this.backTrack.btiMemLo; this.backTrack.btiAH = this.backTrack.btiMemHi;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesPopReg;
            };
            
            /**
             * op=0x59 (POP [E]CX)
             *
             * @this {X86CPU}
             */
            X86.opPOPCX = function POPCX()
            {
                this.regECX = (this.regECX & ~this.dataMask) | this.popWord();
                if (BACKTRACK) {
                    this.backTrack.btiCL = this.backTrack.btiMemLo; this.backTrack.btiCH = this.backTrack.btiMemHi;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesPopReg;
            };
            
            /**
             * op=0x5A (POP [E]DX)
             *
             * @this {X86CPU}
             */
            X86.opPOPDX = function POPDX()
            {
                this.regEDX = (this.regEDX & ~this.dataMask) | this.popWord();
                if (BACKTRACK) {
                    this.backTrack.btiDL = this.backTrack.btiMemLo; this.backTrack.btiDH = this.backTrack.btiMemHi;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesPopReg;
            };
            
            /**
             * op=0x5B (POP [E]BX)
             *
             * @this {X86CPU}
             */
            X86.opPOPBX = function POPBX()
            {
                this.regEBX = (this.regEBX & ~this.dataMask) | this.popWord();
                if (BACKTRACK) {
                    this.backTrack.btiBL = this.backTrack.btiMemLo; this.backTrack.btiBH = this.backTrack.btiMemHi;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesPopReg;
            };
            
            /**
             * op=0x5C (POP [E]SP)
             *
             * @this {X86CPU}
             */
            X86.opPOPSP = function POPSP()
            {
                this.setSP((this.getSP() & ~this.dataMask) | this.popWord());
                this.nStepCycles -= this.cycleCounts.nOpCyclesPopReg;
            };
            
            /**
             * op=0x5D (POP [E]BP)
             *
             * @this {X86CPU}
             */
            X86.opPOPBP = function POPBP()
            {
                this.regEBP = (this.regEBP & ~this.dataMask) | this.popWord();
                if (BACKTRACK) {
                    this.backTrack.btiBPLo = this.backTrack.btiMemLo; this.backTrack.btiBPHi = this.backTrack.btiMemHi;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesPopReg;
            };
            
            /**
             * op=0x5E (POP [E]SI)
             *
             * @this {X86CPU}
             */
            X86.opPOPSI = function POPSI()
            {
                this.regESI = (this.regESI & ~this.dataMask) | this.popWord();
                if (BACKTRACK) {
                    this.backTrack.btiSILo = this.backTrack.btiMemLo; this.backTrack.btiSIHi = this.backTrack.btiMemHi;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesPopReg;
            };
            
            /**
             * op=0x5F (POP [E]DI)
             *
             * @this {X86CPU}
             */
            X86.opPOPDI = function POPDI()
            {
                this.regEDI = (this.regEDI & ~this.dataMask) | this.popWord();
                if (BACKTRACK) {
                    this.backTrack.btiDILo = this.backTrack.btiMemLo; this.backTrack.btiDIHi = this.backTrack.btiMemHi;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesPopReg;
            };
            
            /**
             * op=0x60 (PUSHA) (80186/80188 and up)
             *
             * @this {X86CPU}
             */
            X86.opPUSHA = function PUSHA()
            {
                /*
                 * TODO: regLSP needs to be pre-bounds-checked against regLSPLimitLow
                 */
                var temp = this.getSP() & this.dataMask;
                if (BACKTRACK) {
                    this.backTrack.btiMemLo = this.backTrack.btiAL; this.backTrack.btiMemHi = this.backTrack.btiAH;
                }
                this.pushWord(this.regEAX & this.dataMask);
                if (BACKTRACK) {
                    this.backTrack.btiMemLo = this.backTrack.btiCL; this.backTrack.btiMemHi = this.backTrack.btiCH;
                }
                this.pushWord(this.regECX & this.dataMask);
                if (BACKTRACK) {
                    this.backTrack.btiMemLo = this.backTrack.btiDL; this.backTrack.btiMemHi = this.backTrack.btiDH;
                }
                this.pushWord(this.regEDX & this.dataMask);
                if (BACKTRACK) {
                    this.backTrack.btiMemLo = this.backTrack.btiBL; this.backTrack.btiMemHi = this.backTrack.btiBH;
                }
                this.pushWord(this.regEBX & this.dataMask);
                this.pushWord(temp);
                if (BACKTRACK) {
                    this.backTrack.btiMemLo = this.backTrack.btiBPLo; this.backTrack.btiMemHi = this.backTrack.btiBPHi;
                }
                this.pushWord(this.regEBP & this.dataMask);
                if (BACKTRACK) {
                    this.backTrack.btiMemLo = this.backTrack.btiSILo; this.backTrack.btiMemHi = this.backTrack.btiSIHi;
                }
                this.pushWord(this.regESI & this.dataMask);
                if (BACKTRACK) {
                    this.backTrack.btiMemLo = this.backTrack.btiDILo; this.backTrack.btiMemHi = this.backTrack.btiDIHi;
                }
                this.pushWord(this.regEDI & this.dataMask);
                this.nStepCycles -= this.cycleCounts.nOpCyclesPushAll;
            };
            
            /**
             * op=0x61 (POPA) (80186/80188 and up)
             *
             * @this {X86CPU}
             */
            X86.opPOPA = function POPA()
            {
                this.regEDI = (this.regEDI & ~this.dataMask) | this.popWord();
                if (BACKTRACK) {
                    this.backTrack.btiDILo = this.backTrack.btiMemLo; this.backTrack.btiDIHi = this.backTrack.btiMemHi;
                }
                this.regESI = (this.regESI & ~this.dataMask) | this.popWord();
                if (BACKTRACK) {
                    this.backTrack.btiSILo = this.backTrack.btiMemLo; this.backTrack.btiSIHi = this.backTrack.btiMemHi;
                }
                this.regEBP = (this.regEBP & ~this.dataMask) | this.popWord();
                if (BACKTRACK) {
                    this.backTrack.btiBPLo = this.backTrack.btiMemLo; this.backTrack.btiBPHi = this.backTrack.btiMemHi;
                }
                /*
                 * TODO: regLSP needs to be pre-bounds-checked against regLSPLimit at the start
                 */
                this.setSP(this.getSP() + this.dataSize);
                // this.regLSP += (I386? this.dataSize : 2);
                this.regEBX = (this.regEBX & ~this.dataMask) | this.popWord();
                if (BACKTRACK) {
                    this.backTrack.btiBL = this.backTrack.btiMemLo; this.backTrack.btiBH = this.backTrack.btiMemHi;
                }
                this.regEDX = (this.regEDX & ~this.dataMask) | this.popWord();
                if (BACKTRACK) {
                    this.backTrack.btiDL = this.backTrack.btiMemLo; this.backTrack.btiDH = this.backTrack.btiMemHi;
                }
                this.regECX = (this.regECX & ~this.dataMask) | this.popWord();
                if (BACKTRACK) {
                    this.backTrack.btiCL = this.backTrack.btiMemLo; this.backTrack.btiCH = this.backTrack.btiMemHi;
                }
                this.regEAX = (this.regEAX & ~this.dataMask) | this.popWord();
                if (BACKTRACK) {
                    this.backTrack.btiAL = this.backTrack.btiMemLo; this.backTrack.btiAH = this.backTrack.btiMemHi;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesPopAll;
            };
            
            /**
             * op=0x62 (BOUND reg,word) (80186/80188 and up)
             *
             * @this {X86CPU}
             */
            X86.opBOUND = function BOUND()
            {
                this.aOpModRegWord[this.getIPByte()].call(this, X86.fnBOUND);
            };
            
            /**
             * op=0x63 (ARPL word,reg) (80286 and up)
             *
             * @this {X86CPU}
             */
            X86.opARPL = function ARPL()
            {
                this.aOpModMemWord[this.getIPByte()].call(this, X86.fnARPL);
            };
            
            /**
             * op=0x64 (FS:)
             *
             * @this {X86CPU}
             */
            X86.opFS = function FS()
            {
                /*
                 * NOTE: The fact that we're setting NOINTR along with SEG is really just for documentation purposes;
                 * the way stepCPU() is written, the presence of any prefix bypasses normal interrupt processing anyway.
                 */
                this.opFlags |= X86.OPFLAG.SEG | X86.OPFLAG.NOINTR;
                this.segData = this.segStack = this.segFS;
                this.nStepCycles -= this.cycleCounts.nOpCyclesPrefix;
            };
            
            /**
             * op=0x65 (GS:)
             *
             * @this {X86CPU}
             */
            X86.opGS = function GS()
            {
                /*
                 * NOTE: The fact that we're setting NOINTR along with SEG is really just for documentation purposes;
                 * the way stepCPU() is written, the presence of any prefix bypasses normal interrupt processing anyway.
                 */
                this.opFlags |= X86.OPFLAG.SEG | X86.OPFLAG.NOINTR;
                this.segData = this.segStack = this.segGS;
                this.nStepCycles -= this.cycleCounts.nOpCyclesPrefix;
            };
            
            /**
             * op=0x66 (OS:) (80386 and up)
             *
             * TODO: Review other effective operand-size criteria, cycle count, etc.
             *
             * @this {X86CPU}
             */
            X86.opOS = function OS()
            {
                if (I386) {
                    /*
                     * See opAS() for a discussion of multiple prefixes, which applies equally to both
                     * operand-size and address-size prefixes.
                     *
                     * The simple fix here is to skip the bulk of the operation if the prefix is redundant.
                     */
                    this.opFlags |= X86.OPFLAG.DATASIZE;
                    if (!(this.opPrefixes & X86.OPFLAG.DATASIZE)) {
                        this.dataSize ^= 0x6;               // that which is 2 shall become 4, and vice versa
                        this.dataMask ^= (0xffff0000|0);    // that which is 0x0000ffff shall become 0xffffffff, and vice versa
                        this.updateDataSize();
                    }
                    this.nStepCycles -= this.cycleCounts.nOpCyclesPrefix;
                }
            };
            
            /**
             * op=0x67 (AS:) (80386 and up)
             *
             * TODO: Review other effective address-size criteria, cycle count, etc.
             *
             * @this {X86CPU}
             */
            X86.opAS = function AS()
            {
                if (I386) {
                    /*
                     * Live and learn: multiple address-size prefixes can and do occur on a single instruction,
                     * and contrary to my original assumption that the prefixes act independently, they do not.
                     * During Windows 95 SETUP, the following instruction is executed:
                     *
                     *      06AF:1B4D 67672E          CS:
                     *      06AF:1B50 FFA25A1B        JMP      [BP+SI+1B5A]
                     *
                     * which is in fact:
                     *
                     *      06AF:1B4D 67672E          CS:
                     *      06AF:1B50 FFA25A1B0000    JMP      [EDX+00001B5A]
                     *
                     * The other interesting question is: why/how did this instruction get encoded that way?
                     * All I can say is, there were no explicit prefixes in the source (BSG.ASM), so we'll chalk
                     * it up to a glitch in MASM.
                     *
                     * The simple fix here is to skip the bulk of the operation if the prefix is redundant.
                     */
                    this.opFlags |= X86.OPFLAG.ADDRSIZE;
                    if (!(this.opPrefixes & X86.OPFLAG.ADDRSIZE)) {
                        this.addrSize ^= 0x06;              // that which is 2 shall become 4, and vice versa
                        this.addrMask ^= (0xffff0000|0);    // that which is 0x0000ffff shall become 0xffffffff, and vice versa
                        this.updateAddrSize();
                    }
                    this.nStepCycles -= this.cycleCounts.nOpCyclesPrefix;
                }
            };
            
            /**
             * op=0x68 (PUSH imm) (80186/80188 and up)
             *
             * @this {X86CPU}
             */
            X86.opPUSHn = function PUSHn()
            {
                this.pushWord(this.getIPWord());
                this.nStepCycles -= this.cycleCounts.nOpCyclesPushReg;
            };
            
            /**
             * op=0x69 (IMUL reg,word,imm) (80186/80188 and up)
             *
             * @this {X86CPU}
             */
            X86.opIMULn = function IMULn()
            {
                this.aOpModRegWord[this.getIPByte()].call(this, X86.fnIMULn);
            };
            
            /**
             * op=0x6A (PUSH imm8) (80186/80188 and up)
             *
             * @this {X86CPU}
             */
            X86.opPUSH8 = function PUSH8()
            {
                if (BACKTRACK) this.backTrack.btiMemHi = 0;
                this.pushWord(this.getIPDisp());
                this.nStepCycles -= this.cycleCounts.nOpCyclesPushReg;
            };
            
            /**
             * op=0x6B (IMUL reg,word,imm8) (80186/80188 and up)
             *
             * @this {X86CPU}
             */
            X86.opIMUL8 = function IMUL8()
            {
                this.aOpModRegWord[this.getIPByte()].call(this, X86.fnIMUL8);
            };
            
            /**
             * op=0x6C (INSB) (80186/80188 and up)
             *
             * NOTE: Segment overrides are ignored for this instruction, so we must use segES instead of segData.
             *
             * @this {X86CPU}
             */
            X86.opINSb = function INSb()
            {
                var nReps = 1;
                var nDelta = 0;
            
                /*
                 * NOTE: 5 + 4n is the cycle time for the 80286; the 80186/80188 has different values: 14 cycles for
                 * an unrepeated INS, and 8 + 8n for a repeated INS.  However, accurate cycle times for the 80186/80188 is
                 * low priority.
                 */
                var nCycles = 5;
            
                /*
                 * The (normal) REP prefix, if used, is REPNZ (0xf2), but either one works....
                 */
                if (this.opPrefixes & (X86.OPFLAG.REPZ | X86.OPFLAG.REPNZ)) {
                    nReps = this.regECX & this.addrMask;
                    nDelta = 1;
                    if (this.opPrefixes & X86.OPFLAG.REPEAT) nCycles = 4;
                }
            
                if (nReps--) {
                    var b = this.bus.checkPortInputNotify(this.regEDX & 0xffff, this.regLIP - nDelta - 1);
                    if (BACKTRACK) this.backTrack.btiMemLo = this.backTrack.btiIO;
                    this.setSOByte(this.segES, this.regEDI & this.addrMask, b);
                    this.regEDI = (this.regEDI & ~this.addrMask) | ((this.regEDI + ((this.regPS & X86.PS.DF)? -1 : 1)) & this.addrMask);
                    this.nStepCycles -= nCycles;
                    this.regECX = (this.regECX & ~this.addrMask) | ((this.regECX - nDelta) & this.addrMask);
                    if (nReps) {
                        if (BUGS_8086) {
                            this.rewindIP(-2);              // this instruction does not support multiple overrides
                            this.assert(this.regLIP == this.opLIP);
                        } else {
                            this.regLIP = this.opLIP;
                        }
                        this.opFlags |= X86.OPFLAG.REPEAT;
                    }
                }
            };
            
            /**
             * op=0x6D (INSW) (80186/80188 and up)
             *
             * NOTE: Segment overrides are ignored for this instruction, so we must use segDS instead of segData.
             *
             * @this {X86CPU}
             */
            X86.opINSw = function INSw()
            {
                var nReps = 1;
                var nDelta = 0;
            
                /*
                 * NOTE: 5 + 4n is the cycle time for the 80286; the 80186/80188 has different values: 14 cycles for
                 * an unrepeated INS, and 8 + 8n for a repeated INS.  However, accurate cycle times for the 80186/80188 is
                 * low priority.
                 */
                var nCycles = 5;
            
                /*
                 * The (normal) REP prefix, if used, is REPNZ (0xf2), but either one works....
                 */
                if (this.opPrefixes & (X86.OPFLAG.REPZ | X86.OPFLAG.REPNZ)) {
                    nReps = this.regECX & this.addrMask;
                    nDelta = 1;
                    if (this.opPrefixes & X86.OPFLAG.REPEAT) nCycles = 4;
                }
                if (nReps--) {
                    var addrFrom = this.regLIP - nDelta - 1;
                    var w = 0, shift = 0;
                    for (var n = 0; n < this.dataSize; n++) {
                        w |= this.bus.checkPortInputNotify(this.regEDX & 0xffff, addrFrom) << shift;
                        shift += 8;
                        if (BACKTRACK) {
                            if (!n) {
                                this.backTrack.btiMemLo = this.backTrack.btiIO;
                            } else if (n == 1) {
                                this.backTrack.btiMemHi = this.backTrack.btiIO;
                            }
                        }
                    }
                    this.setSOWord(this.segES, this.regEDI & this.addrMask, w);
                    this.regEDI = (this.regEDI & ~this.addrMask) | ((this.regEDI + ((this.regPS & X86.PS.DF)? -this.dataSize : this.dataSize)) & this.addrMask);
                    this.nStepCycles -= nCycles;
                    this.regECX = (this.regECX & ~this.addrMask) | ((this.regECX - nDelta) & this.addrMask);
                    if (nReps) {
                        if (BUGS_8086) {
                            this.rewindIP(-2);              // this instruction does not support multiple overrides
                            this.assert(this.regLIP == this.opLIP);
                        } else {
                            this.regLIP = this.opLIP;
                        }
                        this.opFlags |= X86.OPFLAG.REPEAT;
                    }
                }
            };
            
            /**
             * op=0x6E (OUTSB) (80186/80188 and up)
             *
             * NOTE: Segment overrides are ignored for this instruction, so we must use segDS instead of segData.
             *
             * @this {X86CPU}
             */
            X86.opOUTSb = function OUTSb()
            {
                var nReps = 1;
                var nDelta = 0;
            
                /*
                 * NOTE: 5 + 4n is the cycle time for the 80286; the 80186/80188 has different values: 14 cycles for
                 * an unrepeated INS, and 8 + 8n for a repeated INS.  TODO: Fix this someday.
                 */
                var nCycles = 5;
            
                /*
                 * The (normal) REP prefix, if used, is REPNZ (0xf2), but either one works....
                 */
                if (this.opPrefixes & (X86.OPFLAG.REPZ | X86.OPFLAG.REPNZ)) {
                    nReps = this.regECX & this.addrMask;
                    nDelta = 1;
                    if (this.opPrefixes & X86.OPFLAG.REPEAT) nCycles = 4;
                }
                if (nReps--) {
                    var b = this.getSOByte(this.segDS, this.regESI & this.addrMask);
                    this.regESI = (this.regESI & ~this.addrMask) | ((this.regESI + ((this.regPS & X86.PS.DF)? -1 : 1)) & this.addrMask);
                    this.nStepCycles -= nCycles;
                    if (BACKTRACK) this.backTrack.btiIO = this.backTrack.btiMemLo;
                    this.bus.checkPortOutputNotify(this.regEDX & 0xffff, b, this.regLIP - nDelta - 1);
                    this.regECX = (this.regECX & ~this.addrMask) | ((this.regECX - nDelta) & this.addrMask);
                    if (nReps) {
                        if (BUGS_8086) {
                            this.rewindIP(-2);              // this instruction does not support multiple overrides
                            this.assert(this.regLIP == this.opLIP);
                        } else {
                            this.regLIP = this.opLIP;
                        }
                        this.opFlags |= X86.OPFLAG.REPEAT;
                    }
                }
            };
            
            /**
             * op=0x6F (OUTSW) (80186/80188 and up)
             *
             * NOTE: Segment overrides are ignored for this instruction, so we must use segDS instead of segData.
             *
             * @this {X86CPU}
             */
            X86.opOUTSw = function OUTSw()
            {
                var nReps = 1;
                var nDelta = 0;
            
                /*
                 * NOTE: 5 + 4n is the cycle time for the 80286; the 80186/80188 has different values: 14 cycles for
                 * an unrepeated INS, and 8 + 8n for a repeated INS.  TODO: Fix this someday.
                 */
                var nCycles = 5;
            
                /*
                 * The (normal) REP prefix, if used, is REPNZ (0xf2), but either one works....
                 */
                if (this.opPrefixes & (X86.OPFLAG.REPZ | X86.OPFLAG.REPNZ)) {
                    nReps = this.regECX & this.addrMask;
                    nDelta = 1;
                    if (this.opPrefixes & X86.OPFLAG.REPEAT) nCycles = 4;
                }
                if (nReps--) {
                    var w = this.getSOWord(this.segDS, this.regESI & this.addrMask);
                    this.regESI = (this.regESI & ~this.addrMask) | ((this.regESI + ((this.regPS & X86.PS.DF)? -this.dataSize : this.dataSize)) & this.addrMask);
                    this.nStepCycles -= nCycles;
                    var addrFrom = this.regLIP - nDelta - 1, shift = 0;
                    for (var n = 0; n < this.dataSize; n++) {
                        if (BACKTRACK) {
                            if (!n) {
                                this.backTrack.btiIO = this.backTrack.btiMemLo;
                            } else if (n == 1) {
                                this.backTrack.btiIO = this.backTrack.btiMemHi;
                            }
                        }
                        this.bus.checkPortOutputNotify(this.regEDX & 0xffff, (w >> shift) & 0xff, addrFrom);
                        shift += 8;
                    }
                    this.regECX = (this.regECX & ~this.addrMask) | ((this.regECX - nDelta) & this.addrMask);
                    if (nReps) {
                        if (BUGS_8086) {
                            this.rewindIP(-2);              // this instruction does not support multiple overrides
                            this.assert(this.regLIP == this.opLIP);
                        } else {
                            this.regLIP = this.opLIP;
                        }
                        this.opFlags |= X86.OPFLAG.REPEAT;
                    }
                }
            };
            
            /**
             * op=0x70 (JO disp)
             *
             * @this {X86CPU}
             */
            X86.opJO = function JO()
            {
                var disp = this.getIPDisp();
                if (this.getOF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * op=0x71 (JNO disp)
             *
             * @this {X86CPU}
             */
            X86.opJNO = function JNO()
            {
                var disp = this.getIPDisp();
                if (!this.getOF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * op=0x72 (JC disp, aka JB disp)
             *
             * @this {X86CPU}
             */
            X86.opJC = function JC()
            {
                var disp = this.getIPDisp();
                if (this.getCF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * op=0x73 (JNC disp, aka JAE disp)
             *
             * @this {X86CPU}
             */
            X86.opJNC = function JNC()
            {
                var disp = this.getIPDisp();
                if (!this.getCF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * op=0x74 (JZ disp)
             *
             * @this {X86CPU}
             */
            X86.opJZ = function JZ()
            {
                var disp = this.getIPDisp();
                if (this.getZF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * op=0x75 (JNZ disp)
             *
             * @this {X86CPU}
             */
            X86.opJNZ = function JNZ()
            {
                var disp = this.getIPDisp();
                if (!this.getZF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * op=0x76 (JBE disp)
             *
             * @this {X86CPU}
             */
            X86.opJBE = function JBE()
            {
                var disp = this.getIPDisp();
                if (this.getCF() || this.getZF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * op=0x77 (JNBE disp, JA disp)
             *
             * @this {X86CPU}
             */
            X86.opJNBE = function JNBE()
            {
                var disp = this.getIPDisp();
                if (!this.getCF() && !this.getZF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * op=0x78 (JS disp)
             *
             * @this {X86CPU}
             */
            X86.opJS = function JS()
            {
                var disp = this.getIPDisp();
                if (this.getSF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * op=0x79 (JNS disp)
             *
             * @this {X86CPU}
             */
            X86.opJNS = function JNS()
            {
                var disp = this.getIPDisp();
                if (!this.getSF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * op=0x7A (JP disp)
             *
             * @this {X86CPU}
             */
            X86.opJP = function JP()
            {
                var disp = this.getIPDisp();
                if (this.getPF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * op=0x7B (JNP disp)
             *
             * @this {X86CPU}
             */
            X86.opJNP = function JNP()
            {
                var disp = this.getIPDisp();
                if (!this.getPF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * op=0x7C (JL disp)
             *
             * @this {X86CPU}
             */
            X86.opJL = function JL()
            {
                var disp = this.getIPDisp();
                if (!this.getSF() != !this.getOF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * op=0x7D (JNL disp, aka JGE disp)
             *
             * @this {X86CPU}
             */
            X86.opJNL = function JNL()
            {
                var disp = this.getIPDisp();
                if (!this.getSF() == !this.getOF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * op=0x7E (JLE disp)
             *
             * @this {X86CPU}
             */
            X86.opJLE = function JLE()
            {
                var disp = this.getIPDisp();
                if (this.getZF() || !this.getSF() != !this.getOF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * op=0x7F (JNLE disp, aka JG disp)
             *
             * @this {X86CPU}
             */
            X86.opJNLE = function JNLE()
            {
                var disp = this.getIPDisp();
                if (!this.getZF() && !this.getSF() == !this.getOF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesJmpC;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpCFall;
            };
            
            /**
             * op=0x80/0x82 (GRP1 byte,imm8)
             *
             * @this {X86CPU}
             */
            X86.opGRP1b = function GRP1b()
            {
                this.aOpModGrpByte[this.getIPByte()].call(this, X86.aOpGrp1b, this.getIPByte);
                this.nStepCycles -= (this.regEAWrite === X86.ADDR_INVALID? 1 : this.cycleCounts.nOpCyclesArithMID);
            };
            
            /**
             * op=0x81 (GRP1 word,imm)
             *
             * @this {X86CPU}
             */
            X86.opGRP1w = function GRP1w()
            {
                this.aOpModGrpWord[this.getIPByte()].call(this, X86.aOpGrp1w, this.getIPWord);
                this.nStepCycles -= (this.regEAWrite === X86.ADDR_INVALID? 1 : this.cycleCounts.nOpCyclesArithMID);
            };
            
            /**
             * op=0x83 (GRP1 word,disp)
             *
             * @this {X86CPU}
             */
            X86.opGRP1sw = function GRP1sw()
            {
                this.aOpModGrpWord[this.getIPByte()].call(this, X86.aOpGrp1w, this.getIPDisp);
                this.nStepCycles -= (this.regEAWrite === X86.ADDR_INVALID? 1 : this.cycleCounts.nOpCyclesArithMID);
            };
            
            /**
             * op=0x84 (TEST reg,byte)
             *
             * @this {X86CPU}
             */
            X86.opTESTrb = function TESTrb()
            {
                this.aOpModMemByte[this.getIPByte()].call(this, X86.fnTESTb);
            };
            
            /**
             * op=0x85 (TEST reg,word)
             *
             * @this {X86CPU}
             */
            X86.opTESTrw = function TESTrw()
            {
                this.aOpModMemWord[this.getIPByte()].call(this, X86.fnTESTw);
            };
            
            /**
             * op=0x86 (XCHG reg,byte)
             *
             * NOTE: The XCHG instruction is unique in that both src and dst are both read and written;
             * see fnXCHGrb() for how we deal with this special case.
             *
             * @this {X86CPU}
             */
            X86.opXCHGrb = function XCHGrb()
            {
                /*
                 * If the second operand is a register, then the ModRegByte decoder must use separate "get" and
                 * "set" assignments, otherwise instructions like "XCHG DH,DL" will end up using a stale DL instead of
                 * the updated DL.
                 *
                 * To be clear, a single assignment like this will fail:
                 *
                 *      opModRegByteF2: function(fn)
            {
                 *          this.regEDX = (this.regEDX & 0xff) | (fn.call(this, this.regEDX >> 8, this.regEDX & 0xff) << 8);
                 *      }
                 *
                 * which is why all affected decoders now use separate assignments; eg:
                 *
                 *      opModRegByteF2: function(fn)
            {
                 *          var b = fn.call(this, this.regEDX >> 8, this.regEDX & 0xff);
                 *          this.regEDX = (this.regEDX & 0xff) | (b << 8);
                 *      }
                 */
                this.aOpModRegByte[this.bModRM = this.getIPByte()].call(this, X86.fnXCHGrb);
            };
            
            /**
             * op=0x87 (XCHG reg,word)
             *
             * NOTE: The XCHG instruction is unique in that both src and dst are both read and written;
             * see fnXCHGrw() for how we deal with this special case.
             *
             * @this {X86CPU}
             */
            X86.opXCHGrw = function XCHGrw()
            {
                this.aOpModRegWord[this.bModRM = this.getIPByte()].call(this, X86.fnXCHGrw);
            };
            
            /**
             * op=0x88 (MOV byte,reg)
             *
             * @this {X86CPU}
             */
            X86.opMOVmb = function MOVmb()
            {
                /*
                 * Like other MOV operations, the destination does not need to be read, just written.
                 */
                this.opFlags |= X86.OPFLAG.NOREAD;
                this.aOpModMemByte[this.getIPByte()].call(this, X86.fnMOV);
            };
            
            /**
             * op=0x89 (MOV word,reg)
             *
             * @this {X86CPU}
             */
            X86.opMOVmw = function MOVmw()
            {
                /*
                 * Like other MOV operations, the destination does not need to be read, just written.
                 */
                this.opFlags |= X86.OPFLAG.NOREAD;
                this.aOpModMemWord[this.getIPByte()].call(this, X86.fnMOV);
            };
            
            /**
             * op=0x8A (MOV reg,byte)
             *
             * @this {X86CPU}
             */
            X86.opMOVrb = function MOVrb()
            {
                this.aOpModRegByte[this.getIPByte()].call(this, X86.fnMOV);
            };
            
            /**
             * op=0x8B (MOV reg,word)
             *
             * @this {X86CPU}
             */
            X86.opMOVrw = function MOVrw()
            {
                this.aOpModRegWord[this.getIPByte()].call(this, X86.fnMOV);
            };
            
            /**
             * op=0x8C (MOV word,sreg)
             *
             * NOTE: Since the ModRM decoders deal only with general-purpose registers, we must move
             * the appropriate segment register into a special variable (regXX), which our helper function
             * (fnMOVxx) will use to replace the decoder's src operand.
             *
             * @this {X86CPU}
             */
            X86.opMOVwsr = function MOVwsr()
            {
                var bModRM = this.getIPByte();
                var reg = (bModRM & 0x38) >> 3;
                switch (reg) {
                case 0x0:
                    this.regXX = this.segES.sel;
                    break;
                case 0x1:
                    this.regXX = this.segCS.sel;
                    break;
                case 0x2:
                    this.regXX = this.segSS.sel;
                    break;
                case 0x3:
                    this.regXX = this.segDS.sel;
                    break;
                case 0x4:
                    if (I386 && this.model >= X86.MODEL_80386) {
                        this.regXX = this.segFS.sel;
                        break;
                    }
                    X86.opInvalid.call(this);
                    break;
                case 0x5:
                    if (I386 && this.model >= X86.MODEL_80386) {
                        this.regXX = this.segGS.sel;
                        break;
                    }
                    /* falls through */
                default:
                    X86.opInvalid.call(this);
                    break;
                }
                /*
                 * Like other MOV operations, the destination does not need to be read, just written.
                 */
                this.opFlags |= X86.OPFLAG.NOREAD;
                this.aOpModMemWord[bModRM].call(this, X86.fnMOVxx);
            };
            
            /**
             * op=0x8D (LEA reg,word)
             *
             * @this {X86CPU}
             */
            X86.opLEA = function LEA()
            {
                this.opFlags |= X86.OPFLAG.NOREAD;
                this.segData = this.segStack = this.segNULL;    // we can't have the EA calculation, if any, "polluted" by segment arithmetic
                this.aOpModRegWord[this.getIPByte()].call(this, X86.fnLEA);
            };
            
            /**
             * op=0x8E (MOV sreg,word)
             *
             * NOTE: Since the ModRM decoders deal only with general-purpose registers, we have to
             * make a note of which general-purpose register will be overwritten, so that we can restore it
             * after moving the modified value to the correct segment register.
             *
             * @this {X86CPU}
             */
            X86.opMOVsrw = function MOVsrw()
            {
                var temp;
                var bModRM = this.getIPByte();
                var reg = (bModRM & 0x38) >> 3;
                switch(reg) {
                case 0x0:
                    temp = this.regEAX;
                    break;
                case 0x2:
                    temp = this.regEDX;
                    break;
                case 0x3:
                    temp = this.regEBX;
                    break;
                default:
                    if (this.model == X86.MODEL_80286 || this.model == X86.MODEL_80386 && reg != 0x4 && reg != 0x5) {
                        X86.opInvalid.call(this);
                        return;
                    }
                    switch(reg) {
                    case 0x1:           // MOV to CS is undocumented on 8086/8088/80186/80188, and invalid on 80286 and up
                        temp = this.regECX;
                        break;
                    case 0x4:           // this form of MOV to ES is undocumented on 8086/8088/80186/80188, invalid on 80286, and uses FS starting with 80386
                        temp = this.getSP();
                        break;
                    case 0x5:           // this form of MOV to CS is undocumented on 8086/8088/80186/80188, invalid on 80286, and uses GS starting with 80386
                        temp = this.regEBP;
                        break;
                    case 0x6:           // this form of MOV to SS is undocumented on 8086/8088/80186/80188, invalid on 80286 and up
                        temp = this.regESI;
                        break;
                    case 0x7:           // this form of MOV to DS is undocumented on 8086/8088/80186/80188, invalid on 80286 and up
                        temp = this.regEDI;
                        break;
                    default:
                        break;
                    }
                    break;
                }
                this.aOpModRegWord[bModRM].call(this, X86.fnMOV);
                switch (reg) {
                case 0x0:
                    this.setES(this.regEAX);
                    this.regEAX = temp;
                    break;
                case 0x1:
                    this.setCS(this.regECX);
                    this.regECX = temp;
                    break;
                case 0x2:
                    this.setSS(this.regEDX);
                    this.regEDX = temp;
                    break;
                case 0x3:
                    this.setDS(this.regEBX);
                    this.regEBX = temp;
                    break;
                case 0x4:
                    if (I386 && this.model >= X86.MODEL_80386) {
                        this.setFS(this.getSP());
                    } else {
                        this.setES(this.getSP());
                    }
                    this.setSP(temp);
                    break;
                case 0x5:
                    if (I386 && this.model >= X86.MODEL_80386) {
                        this.setGS(this.regEBP);
                    } else {
                        this.setCS(this.regEBP);
                    }
                    this.regEBP = temp;
                    break;
                case 0x6:
                    this.setSS(this.regESI);
                    this.regESI = temp;
                    break;
                case 0x7:
                    this.setDS(this.regEDI);
                    this.regEDI = temp;
                    break;
                }
            };
            
            /**
             * op=0x8F (POP word)
             *
             * @this {X86CPU}
             */
            X86.opPOPmw = function POPmw()
            {
                /*
                 * Like other MOV operations, the destination does not need to be read, just written.
                 */
                this.opFlags |= X86.OPFLAG.NOREAD;
                this.aOpModGrpWord[this.getIPByte()].call(this, X86.aOpGrpPOPw, this.popWord);
            };
            
            /**
             * op=0x90 (NOP, aka XCHG AX,AX)
             *
             * @this {X86CPU}
             */
            X86.opNOP = function NOP()
            {
                this.nStepCycles -= 3;                          // this form of XCHG takes 3 cycles on all CPUs
            };
            
            /**
             * op=0x91 (XCHG AX,CX)
             *
             * @this {X86CPU}
             */
            X86.opXCHGCX = function XCHGCX()
            {
                var temp = this.regEAX;
                this.regEAX = (I386? (this.regEAX & ~this.dataMask) | (this.regECX & this.dataMask) : this.regECX);
                this.regECX = (I386? (this.regECX & ~this.dataMask) | (temp & this.dataMask) : temp);
                if (BACKTRACK) {
                    temp = this.backTrack.btiAL; this.backTrack.btiAL = this.backTrack.btiCL; this.backTrack.btiCL = temp;
                    temp = this.backTrack.btiAH; this.backTrack.btiAH = this.backTrack.btiCH; this.backTrack.btiCH = temp;
                }
                this.nStepCycles -= 3;                          // this form of XCHG takes 3 cycles on all CPUs
            };
            
            /**
             * op=0x92 (XCHG AX,DX)
             *
             * @this {X86CPU}
             */
            X86.opXCHGDX = function XCHGDX()
            {
                var temp = this.regEAX;
                this.regEAX = (I386? (this.regEAX & ~this.dataMask) | (this.regEDX & this.dataMask) : this.regEDX);
                this.regEDX = (I386? (this.regEDX & ~this.dataMask) | (temp & this.dataMask) : temp);
                if (BACKTRACK) {
                    temp = this.backTrack.btiAL; this.backTrack.btiAL = this.backTrack.btiDL; this.backTrack.btiDL = temp;
                    temp = this.backTrack.btiAH; this.backTrack.btiAH = this.backTrack.btiDH; this.backTrack.btiDH = temp;
                }
                this.nStepCycles -= 3;                          // this form of XCHG takes 3 cycles on all CPUs
            };
            
            /**
             * op=0x93 (XCHG AX,BX)
             *
             * @this {X86CPU}
             */
            X86.opXCHGBX = function XCHGBX()
            {
                var temp = this.regEAX;
                this.regEAX = (I386? (this.regEAX & ~this.dataMask) | (this.regEBX & this.dataMask) : this.regEBX);
                this.regEBX = (I386? (this.regEBX & ~this.dataMask) | (temp & this.dataMask) : temp);
                if (BACKTRACK) {
                    temp = this.backTrack.btiAL; this.backTrack.btiAL = this.backTrack.btiBL; this.backTrack.btiBL = temp;
                    temp = this.backTrack.btiAH; this.backTrack.btiAH = this.backTrack.btiBH; this.backTrack.btiBH = temp;
                }
                this.nStepCycles -= 3;                          // this form of XCHG takes 3 cycles on all CPUs
            };
            
            /**
             * op=0x94 (XCHG AX,SP)
             *
             * @this {X86CPU}
             */
            X86.opXCHGSP = function XCHGSP()
            {
                var temp = this.regEAX;
                var regESP = this.getSP();
                this.regEAX = (I386? (this.regEAX & ~this.dataMask) | (regESP & this.dataMask) : regESP);
                this.setSP((I386? (regESP & ~this.dataMask) | (temp & this.dataMask) : temp));
                if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiAH = 0;
                this.nStepCycles -= 3;                          // this form of XCHG takes 3 cycles on all CPUs
            };
            
            /**
             * op=0x95 (XCHG AX,BP)
             *
             * @this {X86CPU}
             */
            X86.opXCHGBP = function XCHGBP()
            {
                var temp = this.regEAX;
                this.regEAX = (I386? (this.regEAX & ~this.dataMask) | (this.regEBP & this.dataMask) : this.regEBP);
                this.regEBP = (I386? (this.regEBP & ~this.dataMask) | (temp & this.dataMask) : temp);
                if (BACKTRACK) {
                    temp = this.backTrack.btiAL; this.backTrack.btiAL = this.backTrack.btiBPLo; this.backTrack.btiBPLo = temp;
                    temp = this.backTrack.btiAH; this.backTrack.btiAH = this.backTrack.btiBPHi; this.backTrack.btiBPHi = temp;
                }
                this.nStepCycles -= 3;                          // this form of XCHG takes 3 cycles on all CPUs
            };
            
            /**
             * op=0x96 (XCHG AX,SI)
             *
             * @this {X86CPU}
             */
            X86.opXCHGSI = function XCHGSI()
            {
                var temp = this.regEAX;
                this.regEAX = (I386? (this.regEAX & ~this.dataMask) | (this.regESI & this.dataMask) : this.regESI);
                this.regESI = (I386? (this.regESI & ~this.dataMask) | (temp & this.dataMask) : temp);
                if (BACKTRACK) {
                    temp = this.backTrack.btiAL; this.backTrack.btiAL = this.backTrack.btiSILo; this.backTrack.btiSILo = temp;
                    temp = this.backTrack.btiAH; this.backTrack.btiAH = this.backTrack.btiSIHi; this.backTrack.btiSIHi = temp;
                }
                this.nStepCycles -= 3;                          // this form of XCHG takes 3 cycles on all CPUs
            };
            
            /**
             * op=0x97 (XCHG AX,DI)
             *
             * @this {X86CPU}
             */
            X86.opXCHGDI = function XCHGDI()
            {
                var temp = this.regEAX;
                this.regEAX = (I386? (this.regEAX & ~this.dataMask) | (this.regEDI & this.dataMask) : this.regEDI);
                this.regEDI = (I386? (this.regEDI & ~this.dataMask) | (temp & this.dataMask) : temp);
                if (BACKTRACK) {
                    temp = this.backTrack.btiAL; this.backTrack.btiAL = this.backTrack.btiDILo; this.backTrack.btiDILo = temp;
                    temp = this.backTrack.btiAH; this.backTrack.btiAH = this.backTrack.btiDIHi; this.backTrack.btiDIHi = temp;
                }
                this.nStepCycles -= 3;                          // this form of XCHG takes 3 cycles on all CPUs
            };
            
            /**
             * op=0x98 (CBW/CWDE)
             *
             * NOTE: The 16-bit form (CBW) sign-extends AL into AX, whereas the 32-bit form (CWDE) sign-extends AX into EAX;
             * CWDE is similar to CWD, except that the destination is EAX rather than DX:AX.
             *
             * @this {X86CPU}
             */
            X86.opCBW = function CBW()
            {
                if (this.dataSize == 2) {   // CBW
                    this.regEAX = (this.regEAX & ~0xffff) | (((this.regEAX << 24) >> 24) & 0xffff);
                    if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiAL;
                }
                else {                      // CWDE
                    this.regEAX = ((this.regEAX << 16) >> 16);
                }
                this.nStepCycles -= 2;                          // CBW takes 2 cycles on all CPUs through 80286
            };
            
            /**
             * op=0x99 (CWD/CDQ)
             *
             * NOTE: The 16-bit form (CWD) sign-extends AX, producing a 32-bit result in DX:AX, while the 32-bit form (CDQ)
             * sign-extends EAX, producing a 64-bit result in EDX:EAX.
             *
             * @this {X86CPU}
             */
            X86.opCWD = function CWD()
            {
                if (this.dataSize == 2) {   // CWD
                    this.regEDX = (this.regEDX & ~0xffff) | ((this.regEAX & 0x8000)? 0xffff : 0);
                    if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiDH = this.backTrack.btiAH;
                }
                else {                      // CDQ
                    this.regEDX = (this.regEAX & (0x80000000|0))? -1 : 0;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesCWD;
            };
            
            /**
             * op=0x9A (CALL seg:off)
             *
             * @this {X86CPU}
             */
            X86.opCALLF = function CALLF()
            {
                X86.fnCALLF.call(this, this.getIPWord(), this.getIPShort());
                this.nStepCycles -= this.cycleCounts.nOpCyclesCallF;
            };
            
            /**
             * op=0x9B (WAIT)
             *
             * @this {X86CPU}
             */
            X86.opWAIT = function WAIT()
            {
                this.printMessage("WAIT not implemented");
                this.nStepCycles--;
            };
            
            /**
             * op=0x9C (PUSHF)
             *
             * @this {X86CPU}
             */
            X86.opPUSHF = function PUSHF()
            {
                this.pushWord(this.getPS());
                this.nStepCycles -= this.cycleCounts.nOpCyclesPushReg;
            };
            
            /**
             * op=0x9D (POPF)
             *
             * @this {X86CPU}
             */
            X86.opPOPF = function POPF()
            {
                this.setPS(this.popWord());
                /*
                 * NOTE: I'm assuming that neither POPF nor IRET are required to set NOINTR like STI does.
                 */
                this.nStepCycles -= this.cycleCounts.nOpCyclesPopReg;
            };
            
            /**
             * op=0x9E (SAHF)
             *
             * @this {X86CPU}
             */
            X86.opSAHF = function SAHF()
            {
                /*
                 * NOTE: While it make seem more efficient to do this:
                 *
                 *      this.setPS((this.getPS() & ~X86.PS_SAHF) | ((this.regEAX >> 8) & X86.PS_SAHF));
                 *
                 * getPS() forces any "cached" flags to be resolved first, and setPS() must do extra work above
                 * and beyond setting the arithmetic and logical flags, so on balance, the code below may be more
                 * efficient, and may also avoid unexpected side-effects of updating the entire PS register.
                 */
                var ah = (this.regEAX >> 8) & 0xff;
                if (ah & X86.PS.CF) this.setCF(); else this.clearCF();
                if (ah & X86.PS.PF) this.setPF(); else this.clearPF();
                if (ah & X86.PS.AF) this.setAF(); else this.clearAF();
                if (ah & X86.PS.ZF) this.setZF(); else this.clearZF();
                if (ah & X86.PS.SF) this.setSF(); else this.clearSF();
                this.nStepCycles -= this.cycleCounts.nOpCyclesLAHF;
                this.assert((this.getPS() & X86.PS_SAHF) == (ah & X86.PS_SAHF));
            };
            
            /**
             * op=0x9F (LAHF)
             *
             * @this {X86CPU}
             */
            X86.opLAHF = function LAHF()
            {
                this.regEAX = (this.regEAX & ~0xff00) | (this.getPS() & X86.PS_SAHF) << 8;
                this.nStepCycles -= this.cycleCounts.nOpCyclesLAHF;
            };
            
            /**
             * op=0xA0 (MOV AL,mem)
             *
             * @this {X86CPU}
             */
            X86.opMOVALm = function MOVALm()
            {
                this.regEAX = (this.regEAX & ~0xff) | this.getSOByte(this.segData, this.getIPAddr());
                if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiMemLo;
                this.nStepCycles -= this.cycleCounts.nOpCyclesMovAM;
            };
            
            /**
             * op=0xA1 (MOV [E]AX,mem)
             *
             * @this {X86CPU}
             */
            X86.opMOVAXm = function MOVAXm()
            {
                this.regEAX = (this.regEAX & ~this.dataMask) | this.getSOWord(this.segData, this.getIPAddr());
                if (BACKTRACK) {
                    this.backTrack.btiAL = this.backTrack.btiMemLo; this.backTrack.btiAH = this.backTrack.btiMemHi;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesMovAM;
            };
            
            /**
             * op=0xA2 (MOV mem,AL)
             *
             * @this {X86CPU}
             */
            X86.opMOVmAL = function MOVmAL()
            {
                if (BACKTRACK) this.backTrack.btiMemLo = this.backTrack.btiAL;
                /*
                 * setSOByte() truncates the value as appropriate
                 */
                this.setSOByte(this.segData, this.getIPAddr(), this.regEAX);
                this.nStepCycles -= this.cycleCounts.nOpCyclesMovMA;
            };
            
            /**
             * op=0xA3 (MOV mem,AX)
             *
             * @this {X86CPU}
             */
            X86.opMOVmAX = function MOVmAX()
            {
                if (BACKTRACK) {
                    this.backTrack.btiMemLo = this.backTrack.btiAL; this.backTrack.btiMemHi = this.backTrack.btiAH;
                }
                /*
                 * setSOWord() truncates the value as appropriate
                 */
                this.setSOWord(this.segData, this.getIPAddr(), this.regEAX);
                this.nStepCycles -= this.cycleCounts.nOpCyclesMovMA;
            };
            
            /**
             * op=0xA4 (MOVSB)
             *
             * @this {X86CPU}
             */
            X86.opMOVSb = function MOVSb()
            {
                var nReps = 1;
                var nDelta = 0;
                var nCycles = this.cycleCounts.nOpCyclesMovS;
                if (this.opPrefixes & (X86.OPFLAG.REPZ | X86.OPFLAG.REPNZ)) {
                    nReps = this.regECX & this.addrMask;
                    nDelta = 1;
                    nCycles = this.cycleCounts.nOpCyclesMovSrn;
                    if (!(this.opPrefixes & X86.OPFLAG.REPEAT)) this.nStepCycles -= this.cycleCounts.nOpCyclesMovSr0;
                }
                if (nReps--) {
                    var nInc = ((this.regPS & X86.PS.DF)? -1 : 1);
                    this.setSOByte(this.segES, this.regEDI & this.addrMask, this.getSOByte(this.segData, this.regESI & this.addrMask));
                    this.regESI = (this.regESI & ~this.addrMask) | ((this.regESI + nInc) & this.addrMask);
                    this.regEDI = (this.regEDI & ~this.addrMask) | ((this.regEDI + nInc) & this.addrMask);
                    this.nStepCycles -= nCycles;
                    this.regECX = (this.regECX & ~this.addrMask) | ((this.regECX - nDelta) & this.addrMask);
                    if (nReps) {
                        if (BUGS_8086) {
                            this.rewindIP(((this.opPrefixes & X86.OPFLAG.SEG)? -3 : -2));
                            this.assert(this.regLIP == this.opLIP);
                        } else {
                            this.regLIP = this.opLIP;
                        }
                        this.opFlags |= X86.OPFLAG.REPEAT;
                    }
                }
            };
            
            /**
             * op=0xA5 (MOVSW)
             *
             * @this {X86CPU}
             */
            X86.opMOVSw = function MOVSw()
            {
                var nReps = 1;
                var nDelta = 0;
                var nCycles = this.cycleCounts.nOpCyclesMovS;
                if (this.opPrefixes & (X86.OPFLAG.REPZ | X86.OPFLAG.REPNZ)) {
                    nReps = this.regECX & this.addrMask;
                    nDelta = 1;
                    nCycles = this.cycleCounts.nOpCyclesMovSrn;
                    if (!(this.opPrefixes & X86.OPFLAG.REPEAT)) this.nStepCycles -= this.cycleCounts.nOpCyclesMovSr0;
                }
                if (nReps--) {
                    var nInc = ((this.regPS & X86.PS.DF)? -this.dataSize : this.dataSize);
                    this.setSOWord(this.segES, this.regEDI & this.addrMask, this.getSOWord(this.segData, this.regESI & this.addrMask));
                    this.regESI = (this.regESI & ~this.addrMask) | ((this.regESI + nInc) & this.addrMask);
                    this.regEDI = (this.regEDI & ~this.addrMask) | ((this.regEDI + nInc) & this.addrMask);
                    this.nStepCycles -= nCycles;
                    this.regECX = (this.regECX & ~this.addrMask) | ((this.regECX - nDelta) & this.addrMask);
                    if (nReps) {
                        if (BUGS_8086) {
                            this.rewindIP(((this.opPrefixes & X86.OPFLAG.SEG)? -3 : -2));
                            this.assert(this.regLIP == this.opLIP);
                        } else {
                            this.regLIP = this.opLIP;
                        }
                        this.opFlags |= X86.OPFLAG.REPEAT;
                    }
                }
            };
            
            /**
             * op=0xA6 (CMPSB)
             *
             * @this {X86CPU}
             */
            X86.opCMPSb = function CMPSb()
            {
                var nReps = 1;
                var nDelta = 0;
                var nCycles = this.cycleCounts.nOpCyclesCmpS;
                if (this.opPrefixes & (X86.OPFLAG.REPZ | X86.OPFLAG.REPNZ)) {
                    nReps = this.regECX & this.addrMask;
                    nDelta = 1;
                    nCycles = this.cycleCounts.nOpCyclesCmpSrn;
                    if (!(this.opPrefixes & X86.OPFLAG.REPEAT)) this.nStepCycles -= this.cycleCounts.nOpCyclesCmpSr0;
                }
                if (nReps--) {
                    var nInc = ((this.regPS & X86.PS.DF)? -1 : 1);
                    var bDst = this.getEAByte(this.segData, this.regESI & this.addrMask);
                    var bSrc = this.modEAByte(this.segES, this.regEDI & this.addrMask);
                    X86.fnCMPb.call(this, bDst, bSrc);
                    this.regESI = (this.regESI & ~this.addrMask) | ((this.regESI + nInc) & this.addrMask);
                    this.regEDI = (this.regEDI & ~this.addrMask) | ((this.regEDI + nInc) & this.addrMask);
                    /*
                     * NOTE: As long as we're calling fnCMPb(), all our cycle times must be reduced by nOpCyclesArithRM
                     */
                    this.nStepCycles -= nCycles - this.cycleCounts.nOpCyclesArithRM;
                    this.regECX = (this.regECX & ~this.addrMask) | ((this.regECX - nDelta) & this.addrMask);
                    /*
                     * Repetition continues while ZF matches bit 0 of the REP prefix.  getZF() returns 0x40 if ZF is
                     * set, and OP_REPZ (which represents the REP prefix whose bit 0 is set) is 0x40 as well, so when those
                     * two values are equal, we must continue.
                     */
                    if (nReps && this.getZF() == (this.opPrefixes & X86.OPFLAG.REPZ)) {
                        if (BUGS_8086) {
                            this.rewindIP(((this.opPrefixes & X86.OPFLAG.SEG)? -3 : -2));
                            this.assert(this.regLIP == this.opLIP);
                        } else {
                            this.regLIP = this.opLIP;
                        }
                        this.opFlags |= X86.OPFLAG.REPEAT;
                    }
                }
            };
            
            /**
             * op=0xA7 (CMPSW)
             *
             * @this {X86CPU}
             */
            X86.opCMPSw = function CMPSw()
            {
                var nReps = 1;
                var nDelta = 0;
                var nCycles = this.cycleCounts.nOpCyclesCmpS;
                if (this.opPrefixes & (X86.OPFLAG.REPZ | X86.OPFLAG.REPNZ)) {
                    nReps = this.regECX & this.addrMask;
                    nDelta = 1;
                    nCycles = this.cycleCounts.nOpCyclesCmpSrn;
                    if (!(this.opPrefixes & X86.OPFLAG.REPEAT)) this.nStepCycles -= this.cycleCounts.nOpCyclesCmpSr0;
                }
                if (nReps--) {
                    var nInc = ((this.regPS & X86.PS.DF)? -this.dataSize : this.dataSize);
                    var wDst = this.getEAWord(this.segData, this.regESI & this.addrMask);
                    var wSrc = this.modEAWord(this.segES, this.regEDI & this.addrMask);
                    X86.fnCMPw.call(this, wDst, wSrc);
                    this.regESI = (this.regESI & ~this.addrMask) | ((this.regESI + nInc) & this.addrMask);
                    this.regEDI = (this.regEDI & ~this.addrMask) | ((this.regEDI + nInc) & this.addrMask);
                    /*
                     * NOTE: As long as we're calling fnCMPw(), all our cycle times must be reduced by nOpCyclesArithRM
                     */
                    this.nStepCycles -= nCycles - this.cycleCounts.nOpCyclesArithRM;
                    this.regECX = (this.regECX & ~this.addrMask) | ((this.regECX - nDelta) & this.addrMask);
                    /*
                     * Repetition continues while ZF matches bit 0 of the REP prefix.  getZF() returns 0x40 if ZF is
                     * set, and OP_REPZ (which represents the REP prefix whose bit 0 is set) is 0x40 as well, so when those
                     * two values are equal, we must continue.
                     */
                    if (nReps && this.getZF() == (this.opPrefixes & X86.OPFLAG.REPZ)) {
                        if (BUGS_8086) {
                            this.rewindIP(((this.opPrefixes & X86.OPFLAG.SEG)? -3 : -2));
                            this.assert(this.regLIP == this.opLIP);
                        } else {
                            this.regLIP = this.opLIP;
                        }
                        this.opFlags |= X86.OPFLAG.REPEAT;
                    }
                }
            };
            
            /**
             * op=0xA8 (TEST AL,imm8)
             *
             * @this {X86CPU}
             */
            X86.opTESTALb = function TESTALb()
            {
                this.setLogicResult(this.regEAX & this.getIPByte(), X86.RESULT.BYTE);
                this.nStepCycles -= this.cycleCounts.nOpCyclesAAA;
            };
            
            /**
             * op=0xA9 (TEST [E]AX,imm)
             *
             * @this {X86CPU}
             */
            X86.opTESTAX = function TESTAX()
            {
                this.setLogicResult(this.regEAX & this.getIPWord(), this.dataType);
                this.nStepCycles -= this.cycleCounts.nOpCyclesAAA;
            };
            
            /**
             * op=0xAA (STOSB)
             *
             * NOTES: Segment overrides are ignored for this instruction, so we must use segES instead of segData.
             *
             * @this {X86CPU}
             */
            X86.opSTOSb = function STOSb()
            {
                var nReps = 1;
                var nDelta = 0;
                var nCycles = this.cycleCounts.nOpCyclesStoS;
                if (this.opPrefixes & (X86.OPFLAG.REPZ | X86.OPFLAG.REPNZ)) {
                    nReps = this.regECX & this.addrMask;
                    nDelta = 1;
                    nCycles = this.cycleCounts.nOpCyclesStoSrn;
                    if (!(this.opPrefixes & X86.OPFLAG.REPEAT)) this.nStepCycles -= this.cycleCounts.nOpCyclesStoSr0;
                }
                if (nReps--) {
                    if (BACKTRACK) this.backTrack.btiMemLo = this.backTrack.btiAL;
                    this.setSOByte(this.segES, this.regEDI & this.addrMask, this.regEAX);
                    this.regEDI = (this.regEDI & ~this.addrMask) | ((this.regEDI + ((this.regPS & X86.PS.DF)? -1 : 1)) & this.addrMask);
                    this.nStepCycles -= nCycles;
                    this.regECX = (this.regECX & ~this.addrMask) | ((this.regECX - nDelta) & this.addrMask);
                    if (nReps) {
                        if (BUGS_8086) {
                            this.rewindIP(-2);              // this instruction does not support multiple overrides
                            this.assert(this.regLIP == this.opLIP);
                        } else {
                            this.regLIP = this.opLIP;
                        }
                        this.opFlags |= X86.OPFLAG.REPEAT;
                    }
                }
            };
            
            /**
             * op=0xAB (STOSW)
             *
             * NOTES: Segment overrides are ignored for this instruction, so we must use segES instead of segData.
             *
             * @this {X86CPU}
             */
            X86.opSTOSw = function STOSw()
            {
                var nReps = 1;
                var nDelta = 0;
                var nCycles = this.cycleCounts.nOpCyclesStoS;
                if (this.opPrefixes & (X86.OPFLAG.REPZ | X86.OPFLAG.REPNZ)) {
                    nReps = this.regECX & this.addrMask;
                    nDelta = 1;
                    nCycles = this.cycleCounts.nOpCyclesStoSrn;
                    if (!(this.opPrefixes & X86.OPFLAG.REPEAT)) this.nStepCycles -= this.cycleCounts.nOpCyclesStoSr0;
                }
                if (nReps--) {
                    /*
                     * NOTE: Storing a word imposes another 4-cycle penalty on the 8088, so consider that
                     * if you think the cycle times here are too high.
                     */
                    if (BACKTRACK) {
                        this.backTrack.btiMemLo = this.backTrack.btiAL; this.backTrack.btiMemHi = this.backTrack.btiAH;
                    }
                    this.setSOWord(this.segES, this.regEDI & this.addrMask, this.regEAX);
                    this.regEDI = (this.regEDI & ~this.addrMask) | ((this.regEDI + ((this.regPS & X86.PS.DF)? -this.dataSize : this.dataSize)) & this.addrMask);
                    this.nStepCycles -= nCycles;
                    this.regECX = (this.regECX & ~this.addrMask) | ((this.regECX - nDelta) & this.addrMask);
                    if (nReps) {
                        if (BUGS_8086) {
                            this.rewindIP(-2);              // this instruction does not support multiple overrides
                            this.assert(this.regLIP == this.opLIP);
                        } else {
                            this.regLIP = this.opLIP;
                        }
                        this.opFlags |= X86.OPFLAG.REPEAT;
                    }
                }
            };
            
            /**
             * op=0xAC (LODSB)
             *
             * @this {X86CPU}
             */
            X86.opLODSb = function LODSb()
            {
                var nReps = 1;
                var nDelta = 0;
                var nCycles = this.cycleCounts.nOpCyclesLodS;
                if (this.opPrefixes & (X86.OPFLAG.REPZ | X86.OPFLAG.REPNZ)) {
                    nReps = this.regECX & this.addrMask;
                    nDelta = 1;
                    nCycles = this.cycleCounts.nOpCyclesLodSrn;
                    if (!(this.opPrefixes & X86.OPFLAG.REPEAT)) this.nStepCycles -= this.cycleCounts.nOpCyclesLodSr0;
                }
                if (nReps--) {
                    this.regEAX = (this.regEAX & ~0xff) | this.getSOByte(this.segData, this.regESI & this.addrMask);
                    if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiMemLo;
                    this.regESI = (this.regESI & ~this.addrMask) | ((this.regESI + ((this.regPS & X86.PS.DF)? -1 : 1)) & this.addrMask);
                    this.nStepCycles -= nCycles;
                    this.regECX = (this.regECX & ~this.addrMask) | ((this.regECX - nDelta) & this.addrMask);
                    if (nReps) {
                        if (BUGS_8086) {
                            this.rewindIP(((this.opPrefixes & X86.OPFLAG.SEG)? -3 : -2));
                            this.assert(this.regLIP == this.opLIP);
                        } else {
                            this.regLIP = this.opLIP;
                        }
                        this.opFlags |= X86.OPFLAG.REPEAT;
                    }
                }
            };
            
            /**
             * op=0xAD (LODSW)
             *
             * @this {X86CPU}
             */
            X86.opLODSw = function LODSw()
            {
                var nReps = 1;
                var nDelta = 0;
                var nCycles = this.cycleCounts.nOpCyclesLodS;
                if (this.opPrefixes & (X86.OPFLAG.REPZ | X86.OPFLAG.REPNZ)) {
                    nReps = this.regECX & this.addrMask;
                    nDelta = 1;
                    nCycles = this.cycleCounts.nOpCyclesLodSrn;
                    if (!(this.opPrefixes & X86.OPFLAG.REPEAT)) this.nStepCycles -= this.cycleCounts.nOpCyclesLodSr0;
                }
                if (nReps--) {
                    this.regEAX = (this.regEAX & ~this.dataMask) | this.getSOWord(this.segData, this.regESI & this.addrMask);
                    if (BACKTRACK) {
                        this.backTrack.btiAL = this.backTrack.btiMemLo; this.backTrack.btiAH = this.backTrack.btiMemHi;
                    }
                    this.regESI = (this.regESI & ~this.addrMask) | ((this.regESI + ((this.regPS & X86.PS.DF)? -this.dataSize : this.dataSize)) & this.addrMask);
                    this.nStepCycles -= nCycles;
                    this.regECX = (this.regECX & ~this.addrMask) | ((this.regECX - nDelta) & this.addrMask);
                    if (nReps) {
                        if (BUGS_8086) {
                            this.rewindIP(((this.opPrefixes & X86.OPFLAG.SEG)? -3 : -2));
                            this.assert(this.regLIP == this.opLIP);
                        } else {
                            this.regLIP = this.opLIP;
                        }
                        this.opFlags |= X86.OPFLAG.REPEAT;
                    }
                }
            };
            
            /**
             * op=0xAE (SCASB)
             *
             * @this {X86CPU}
             */
            X86.opSCASb = function SCASb()
            {
                var nReps = 1;
                var nDelta = 0;
                var nCycles = this.cycleCounts.nOpCyclesScaS;
                if (this.opPrefixes & (X86.OPFLAG.REPZ | X86.OPFLAG.REPNZ)) {
                    nReps = this.regECX & this.addrMask;
                    nDelta = 1;
                    nCycles = this.cycleCounts.nOpCyclesScaSrn;
                    if (!(this.opPrefixes & X86.OPFLAG.REPEAT)) this.nStepCycles -= this.cycleCounts.nOpCyclesScaSr0;
                }
                if (nReps--) {
                    X86.fnCMPb.call(this, this.regEAX & 0xff, this.modEAByte(this.segES, this.regEDI & this.addrMask));
                    this.regEDI = (this.regEDI & ~this.addrMask) | ((this.regEDI + ((this.regPS & X86.PS.DF)? -1 : 1)) & this.addrMask);
                    /*
                     * NOTE: As long as we're calling fnCMPb(), all our cycle times must be reduced by nOpCyclesArithRM
                     */
                    this.nStepCycles -= nCycles - this.cycleCounts.nOpCyclesArithRM;
                    this.regECX = (this.regECX & ~this.addrMask) | ((this.regECX - nDelta) & this.addrMask);
                    /*
                     * Repetition continues while ZF matches bit 0 of the REP prefix.  getZF() returns 0x40 if ZF is
                     * set, and OP_REPZ (which represents the REP prefix whose bit 0 is set) is 0x40 as well, so when those
                     * two values are equal, we must continue.
                     */
                    if (nReps && this.getZF() == (this.opPrefixes & X86.OPFLAG.REPZ)) {
                        if (BUGS_8086) {
                            this.rewindIP(-2);              // this instruction does not support multiple overrides
                            this.assert(this.regLIP == this.opLIP);
                        } else {
                            this.regLIP = this.opLIP;
                        }
                        this.opFlags |= X86.OPFLAG.REPEAT;
                    }
                }
            };
            
            /**
             * op=0xAF (SCASW)
             *
             * @this {X86CPU}
             */
            X86.opSCASw = function SCASw()
            {
                var nReps = 1;
                var nDelta = 0;
                var nCycles = this.cycleCounts.nOpCyclesScaS;
                if (this.opPrefixes & (X86.OPFLAG.REPZ | X86.OPFLAG.REPNZ)) {
                    nReps = this.regECX & this.addrMask;
                    nDelta = 1;
                    nCycles = this.cycleCounts.nOpCyclesScaSrn;
                    if (!(this.opPrefixes & X86.OPFLAG.REPEAT)) this.nStepCycles -= this.cycleCounts.nOpCyclesScaSr0;
                }
                if (nReps--) {
                    X86.fnCMPw.call(this, this.regEAX & this.dataMask, this.modEAWord(this.segES, this.regEDI & this.addrMask));
                    this.regEDI = (this.regEDI & ~this.addrMask) | ((this.regEDI + ((this.regPS & X86.PS.DF)? -this.dataSize : this.dataSize)) & this.addrMask);
                    /*
                     * NOTE: As long as we're calling fnCMPw(), all our cycle times must be reduced by nOpCyclesArithRM
                     */
                    this.nStepCycles -= nCycles - this.cycleCounts.nOpCyclesArithRM;
                    this.regECX = (this.regECX & ~this.addrMask) | ((this.regECX - nDelta) & this.addrMask);
                    /*
                     * Repetition continues while ZF matches bit 0 of the REP prefix.  getZF() returns 0x40 if ZF is
                     * set, and OP_REPZ (which represents the REP prefix whose bit 0 is set) is 0x40 as well, so when those
                     * two values are equal, we must continue.
                     */
                    if (nReps && this.getZF() == (this.opPrefixes & X86.OPFLAG.REPZ)) {
                        if (BUGS_8086) {
                            this.rewindIP(-2);              // this instruction does not support multiple overrides
                            this.assert(this.regLIP == this.opLIP);
                        } else {
                            this.regLIP = this.opLIP;
                        }
                        this.opFlags |= X86.OPFLAG.REPEAT;
                    }
                }
            };
            
            /**
             * op=0xB0 (MOV AL,imm8)
             *
             * @this {X86CPU}
             */
            X86.opMOVALb = function MOVALb()
            {
                this.regEAX = (this.regEAX & ~0xff) | this.getIPByte();
                if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiMemLo;
                this.nStepCycles -= this.cycleCounts.nOpCyclesLAHF;
            };
            
            /**
             * op=0xB1 (MOV CL,imm8)
             *
             * @this {X86CPU}
             */
            X86.opMOVCLb = function MOVCLb()
            {
                this.regECX = (this.regECX & ~0xff) | this.getIPByte();
                if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiMemLo;
                this.nStepCycles -= this.cycleCounts.nOpCyclesLAHF;
            };
            
            /**
             * op=0xB2 (MOV DL,imm8)
             *
             * @this {X86CPU}
             */
            X86.opMOVDLb = function MOVDLb()
            {
                this.regEDX = (this.regEDX & ~0xff) | this.getIPByte();
                if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiMemLo;
                this.nStepCycles -= this.cycleCounts.nOpCyclesLAHF;
            };
            
            /**
             * op=0xB3 (MOV BL,imm8)
             *
             * @this {X86CPU}
             */
            X86.opMOVBLb = function MOVBLb()
            {
                this.regEBX = (this.regEBX & ~0xff) | this.getIPByte();
                if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiMemLo;
                this.nStepCycles -= this.cycleCounts.nOpCyclesLAHF;
            };
            
            /**
             * op=0xB4 (MOV AH,imm8)
             *
             * @this {X86CPU}
             */
            X86.opMOVAHb = function MOVAHb()
            {
                this.regEAX = (this.regEAX & 0xff) | (this.getIPByte() << 8);
                if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiMemLo;
                this.nStepCycles -= this.cycleCounts.nOpCyclesLAHF;
            };
            
            /**
             * op=0xB5 (MOV CH,imm8)
             *
             * @this {X86CPU}
             */
            X86.opMOVCHb = function MOVCHb()
            {
                this.regECX = (this.regECX & 0xff) | (this.getIPByte() << 8);
                if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiMemLo;
                this.nStepCycles -= this.cycleCounts.nOpCyclesLAHF;
            };
            
            /**
             * op=0xB6 (MOV DH,imm8)
             *
             * @this {X86CPU}
             */
            X86.opMOVDHb = function MOVDHb()
            {
                this.regEDX = (this.regEDX & 0xff) | (this.getIPByte() << 8);
                if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiMemLo;
                this.nStepCycles -= this.cycleCounts.nOpCyclesLAHF;
            };
            
            /**
             * op=0xB7 (MOV BH,imm8)
             *
             * @this {X86CPU}
             */
            X86.opMOVBHb = function MOVBHb()
            {
                this.regEBX = (this.regEBX & 0xff) | (this.getIPByte() << 8);
                if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiMemLo;
                this.nStepCycles -= this.cycleCounts.nOpCyclesLAHF;
            };
            
            /**
             * op=0xB8 (MOV [E]AX,imm)
             *
             * @this {X86CPU}
             */
            X86.opMOVAX = function MOVAX()
            {
                this.regEAX = (this.regEAX & ~this.dataMask) | this.getIPWord();
                if (BACKTRACK) {
                    this.backTrack.btiAL = this.backTrack.btiMemLo; this.backTrack.btiAH = this.backTrack.btiMemHi;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesLAHF;
            };
            
            /**
             * op=0xB9 (MOV [E]CX,imm)
             *
             * @this {X86CPU}
             */
            X86.opMOVCX = function MOVCX()
            {
                this.regECX = (this.regECX & ~this.dataMask) | this.getIPWord();
                if (BACKTRACK) {
                    this.backTrack.btiCL = this.backTrack.btiMemLo; this.backTrack.btiCH = this.backTrack.btiMemHi;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesLAHF;
            };
            
            /**
             * op=0xBA (MOV [E]DX,imm)
             *
             * @this {X86CPU}
             */
            X86.opMOVDX = function MOVDX()
            {
                this.regEDX = (this.regEDX & ~this.dataMask) | this.getIPWord();
                if (BACKTRACK) {
                    this.backTrack.btiDL = this.backTrack.btiMemLo; this.backTrack.btiDH = this.backTrack.btiMemHi;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesLAHF;
            };
            
            /**
             * op=0xBB (MOV [E]BX,imm)
             *
             * @this {X86CPU}
             */
            X86.opMOVBX = function MOVBX()
            {
                this.regEBX = (this.regEBX & ~this.dataMask) | this.getIPWord();
                if (BACKTRACK) {
                    this.backTrack.btiBL = this.backTrack.btiMemLo; this.backTrack.btiBH = this.backTrack.btiMemHi;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesLAHF;
            };
            
            /**
             * op=0xBC (MOV [E]SP,imm)
             *
             * @this {X86CPU}
             */
            X86.opMOVSP = function MOVSP()
            {
                this.setSP((this.getSP() & ~this.dataMask) | this.getIPWord());
                this.nStepCycles -= this.cycleCounts.nOpCyclesLAHF;
            };
            
            /**
             * op=0xBD (MOV [E]BP,imm)
             *
             * @this {X86CPU}
             */
            X86.opMOVBP = function MOVBP()
            {
                this.regEBP = (this.regEBP & ~this.dataMask) | this.getIPWord();
                if (BACKTRACK) {
                    this.backTrack.btiBPLo = this.backTrack.btiMemLo; this.backTrack.btiBPHi = this.backTrack.btiMemHi;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesLAHF;
            };
            
            /**
             * op=0xBE (MOV [E]SI,imm)
             *
             * @this {X86CPU}
             */
            X86.opMOVSI = function MOVSI()
            {
                this.regESI = (this.regESI & ~this.dataMask) | this.getIPWord();
                if (BACKTRACK) {
                    this.backTrack.btiSILo = this.backTrack.btiMemLo; this.backTrack.btiSIHi = this.backTrack.btiMemHi;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesLAHF;
            };
            
            /**
             * op=0xBF (MOV [E]DI,imm)
             *
             * @this {X86CPU}
             */
            X86.opMOVDI = function MOVDI()
            {
                this.regEDI = (this.regEDI & ~this.dataMask) | this.getIPWord();
                if (BACKTRACK) {
                    this.backTrack.btiDILo = this.backTrack.btiMemLo; this.backTrack.btiDIHi = this.backTrack.btiMemHi;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesLAHF;
            };
            
            /**
             * op=0xC0 (GRP2 byte,imm8) (80186/80188 and up)
             *
             * @this {X86CPU}
             */
            X86.opGRP2bn = function GRP2bn()
            {
                this.aOpModGrpByte[this.getIPByte()].call(this, X86.aOpGrp2b, X86.fnSrcCountN);
            };
            
            /**
             * op=0xC1 (GRP2 word,imm) (80186/80188 and up)
             *
             * @this {X86CPU}
             */
            X86.opGRP2wn = function GRP2wn()
            {
                this.aOpModGrpWord[this.getIPByte()].call(this, this.dataSize == 2? X86.aOpGrp2w : X86.aOpGrp2d, X86.fnSrcCountN);
            };
            
            /**
             * op=0xC2 (RET n)
             *
             * @this {X86CPU}
             */
            X86.opRETn = function RETn()
            {
                var n = this.getIPShort() << (this.dataSize >> 2);
                var newIP = this.popWord();
                if (DEBUG) this.printMessage(" returning to " + str.toHex(this.segCS.sel, 4) + ':' + str.toHex(newIP, this.dataSize << 1), this.bitsMessage, true);
                this.setIP(newIP);
                if (n) this.setSP(this.getSP() + n);            // TODO: optimize
                this.nStepCycles -= this.cycleCounts.nOpCyclesRetn;
            };
            
            /**
             * op=0xC3 (RET)
             *
             * @this {X86CPU}
             */
            X86.opRET = function RET()
            {
                var newIP = this.popWord();
                if (DEBUG) this.printMessage(" returning to " + str.toHex(this.segCS.sel, 4) + ':' + str.toHex(newIP, this.dataSize << 1), this.bitsMessage, true);
                this.setIP(newIP);
                this.nStepCycles -= this.cycleCounts.nOpCyclesRet;
            };
            
            /**
             * op=0xC4 (LES reg,word)
             *
             * This is like a "MOV reg,rm" operation, but it also loads ES from the next word.
             *
             * @this {X86CPU}
             */
            X86.opLES = function LES()
            {
                this.aOpModRegWord[this.getIPByte()].call(this, X86.fnLES);
            };
            
            /**
             * op=0xC5 (LDS reg,word)
             *
             * This is like a "MOV reg,rm" operation, but it also loads DS from the next word.
             *
             * @this {X86CPU}
             */
            X86.opLDS = function LDS()
            {
                this.aOpModRegWord[this.getIPByte()].call(this, X86.fnLDS);
            };
            
            /**
             * op=0xC6 (MOV byte,imm8)
             *
             * @this {X86CPU}
             */
            X86.opMOVb = function MOVb()
            {
                /*
                 * Like other MOV operations, the destination does not need to be read, just written.
                 */
                this.opFlags |= X86.OPFLAG.NOREAD;
                this.aOpModGrpByte[this.getIPByte()].call(this, X86.aOpGrpMOVn, this.getIPByte);
            };
            
            /**
             * op=0xC7 (MOV word,imm)
             *
             * @this {X86CPU}
             */
            X86.opMOVw = function MOVw()
            {
                /*
                 * Like other MOV operations, the destination does not need to be read, just written.
                 */
                this.opFlags |= X86.OPFLAG.NOREAD;
                this.aOpModGrpWord[this.getIPByte()].call(this, X86.aOpGrpMOVn, this.getIPWord);
            };
            
            /**
             * op=0xC8 (ENTER imm16,imm8) (80186/80188 and up)
             *
             * @this {X86CPU}
             */
            X86.opENTER = function ENTER()
            {
                var wLocal = this.getIPShort();
                var bLevel = this.getIPByte() & 0x1f;
                /*
                 * NOTE: 11 is the minimum cycle time for the 80286; the 80186/80188 has different cycle times: 15, 25 and
                 * 22 + 16 * (bLevel - 1) for bLevel 0, 1 and > 1, respectively.  TODO: Fix this someday.
                 */
                this.nStepCycles -= 11;
                this.pushWord(this.regEBP);
                var wFrame = this.getSP() & this.dataMask;
                if (bLevel > 0) {
                    this.nStepCycles -= (bLevel << 2) + (bLevel > 1? 1 : 0);
                    while (--bLevel) {
                        this.regEBP = (this.regEBP & ~this.dataMask) | ((this.regEBP - this.dataSize) & this.dataMask);
                        this.pushWord(this.getSOWord(this.segSS, this.regEBP & this.dataMask));
                    }
                    this.pushWord(wFrame);
                }
                this.regEBP = (this.regEBP & ~this.dataMask) | wFrame;
                this.setSP((this.getSP() & ~this.segSS.addrMask) | ((this.getSP() - wLocal) & this.segSS.addrMask));
            };
            
            /**
             * op=0xC9 (LEAVE) (80186/80188 and up)
             *
             * @this {X86CPU}
             */
            X86.opLEAVE = function LEAVE()
            {
                this.setSP((this.getSP() & ~this.segSS.addrMask) | (this.regEBP & this.segSS.addrMask));
                this.regEBP = (this.regEBP & ~this.dataMask) | (this.popWord() & this.dataMask);
                /*
                 * NOTE: 5 is the cycle time for the 80286; the 80186/80188 has a cycle time of 8.  TODO: Fix this someday.
                 */
                this.nStepCycles -= 5;
            };
            
            /**
             * op=0xCA (RETF n)
             *
             * @this {X86CPU}
             */
            X86.opRETFn = function RETFn()
            {
                X86.fnRETF.call(this, this.getIPShort());
                this.nStepCycles -= this.cycleCounts.nOpCyclesRetFn;
            };
            
            /**
             * op=0xCB (RETF)
             *
             * @this {X86CPU}
             */
            X86.opRETF = function RETF()
            {
                X86.fnRETF.call(this, 0);
                this.nStepCycles -= this.cycleCounts.nOpCyclesRetF;
            };
            
            /**
             * op=0xCC (INT 3)
             *
             * @this {X86CPU}
             */
            X86.opINT3 = function INT3()
            {
                /*
                 * To give our own Debugger the ability to stop execution on INT3, I thought about treating this as
                 * a fault rather than an interrupt, in order to leverage the existing Debugger logic inside fnFault()
                 * processing, but that has the unwanted side-effect of rewinding EIP to the INT3 prior to issuing
                 * the interrupt, and the corresponding IRET takes us right back to the INT3.
                 *
                 *      X86.fnFault.call(this, X86.EXCEPTION.BREAKPOINT, null, false, this.cycleCounts.nOpCyclesInt3D);
                 *
                 * Then I had the idea of using the fnFaultMessage() function, in much the same way that fnFault()
                 * does for actual faults: if the user turned on the FAULT and HALT message bits, then fnFaultMessage()
                 * would tell us to halt; otherwise, we'd perform the normal fnINT() call.
                 *
                 *      if (X86.fnFaultMessage.call(this, X86.EXCEPTION.BREAKPOINT)) {
                 *          this.setIP(this.opLIP - this.segCS.base);
                 *          return;
                 *      }
                 *
                 * However, that makes it a little tedious to get past the INT3 (you have to use a Debugger command
                 * like "t;g"), and a somewhat confusing fault message is displayed; eg:
                 *
                 *      Fault 0x03 on opcode 0xB4 at 09CE:0155 (%009E35)
                 *
                 * The best solution was to leave this function alone, and change the Debugger's checkBreakpoint()
                 * function to stop execution on INT3 whenever both the INT and HALT message bits are set; a simple "g"
                 * command allows you to continue.
                 */
                X86.fnINT.call(this, X86.EXCEPTION.BREAKPOINT, null, this.cycleCounts.nOpCyclesInt3D);
            };
            
            /**
             * op=0xCD (INT n)
             *
             * @this {X86CPU}
             */
            X86.opINTn = function INTn()
            {
                var nInt = this.getIPByte();
                if (this.checkIntNotify(nInt)) {
                    X86.fnINT.call(this, nInt, null, 0);
                    return;
                }
                this.nStepCycles--;     // we don't need to assess the full cost of nOpCyclesInt, but we need to assess something...
            };
            
            /**
             * op=0xCE (INTO: INT 4 if OF set)
             *
             * @this {X86CPU}
             */
            X86.opINTO = function INTO()
            {
                if (this.getOF()) {
                    X86.fnINT.call(this, X86.EXCEPTION.OVERFLOW, null, this.cycleCounts.nOpCyclesIntOD);
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesIntOFall;
            };
            
            /**
             * op=0xCF (IRET)
             *
             * @this {X86CPU}
             */
            X86.opIRET = function IRET()
            {
                X86.fnIRET.call(this);
            };
            
            /**
             * op=0xD0 (GRP2 byte,1)
             *
             * @this {X86CPU}
             */
            X86.opGRP2b1 = function GRP2b1()
            {
                this.aOpModGrpByte[this.getIPByte()].call(this, X86.aOpGrp2b, X86.fnSrcCount1);
            };
            
            /**
             * op=0xD1 (GRP2 word,1)
             *
             * @this {X86CPU}
             */
            X86.opGRP2w1 = function GRP2w1()
            {
                this.aOpModGrpWord[this.getIPByte()].call(this, this.dataSize == 2? X86.aOpGrp2w : X86.aOpGrp2d, X86.fnSrcCount1);
            };
            
            /**
             * op=0xD2 (GRP2 byte,CL)
             *
             * @this {X86CPU}
             */
            X86.opGRP2bCL = function GRP2bCL()
            {
                this.aOpModGrpByte[this.getIPByte()].call(this, X86.aOpGrp2b, X86.fnSrcCountCL);
            };
            
            /**
             * op=0xD3 (GRP2 word,CL)
             *
             * @this {X86CPU}
             */
            X86.opGRP2wCL = function GRP2wCL()
            {
                this.aOpModGrpWord[this.getIPByte()].call(this, this.dataSize == 2? X86.aOpGrp2w : X86.aOpGrp2d, X86.fnSrcCountCL);
            };
            
            /**
             * op=0xD4 0x0A (AAM)
             *
             * From "The 8086 Book":
             *
             *  1. Divide AL by 0x0A; store the quotient in AH and the remainder in AL
             *  2. Set PF, SF, and ZF based on the AL register (CF, OF, and AF are undefined)
             *
             * @this {X86CPU}
             */
            X86.opAAM = function AAM()
            {
                var bDivisor = this.getIPByte();
                if (!bDivisor) {
                    /*
                     * TODO: Generate a divide-by-zero exception, if appropriate for the current CPU
                     */
                    return;
                }
                var AL = this.regEAX & 0xff;
                this.regEAX = (this.regEAX & ~0xffff) | ((AL / bDivisor) << 8) | (AL % bDivisor);
                /*
                 * setLogicResult() is slightly overkill, because technically, we don't need to clear CF and OF....
                 */
                this.setLogicResult(this.regEAX, X86.RESULT.BYTE);
                this.nStepCycles -= this.cycleCounts.nOpCyclesAAM;
            };
            
            /**
             * op=0xD5 (AAD)
             *
             * From "The 8086 Book":
             *
             *  1. Multiply AH by 0x0A, add AH to AL, and store 0x00 in AH
             *  2. Set PF, SF, and ZF based on the AL register (CF, OF, and AF are undefined)
             *
             * @this {X86CPU}
             */
            X86.opAAD = function AAD()
            {
                var bMultiplier = this.getIPByte();
                this.regEAX = (this.regEAX & ~0xffff) | (((((this.regEAX >> 8) & 0xff) * bMultiplier) + this.regEAX) & 0xff);
                /*
                 * setLogicResult() is slightly overkill, because technically, we don't need to clear CF and OF....
                 */
                this.setLogicResult(this.regEAX, X86.RESULT.BYTE);
                this.nStepCycles -= this.cycleCounts.nOpCyclesAAD;
            };
            
            /**
             * op=0xD6 (SALC aka SETALC) (undocumented until Pentium Pro)
             *
             * Sets AL to 0xFF if CF=1, 0x00 otherwise; no flags are affected (similar to SBB AL,AL, but without side-effects)
             *
             * WARNING: I have no idea how many clocks this instruction originally required, so for now, I'm going with a minimum of 2.
             *
             * @this {X86CPU}
             */
            X86.opSALC = function SALC()
            {
                this.regEAX = (this.regEAX & ~0xff) | (this.getCF()? 0xFF : 0);
                this.nStepCycles -= 2;
            };
            
            /**
             * op=0xD7 (XLAT)
             *
             * @this {X86CPU}
             */
            X86.opXLAT = function XLAT()
            {
                /*
                 * NOTE: I have no idea whether XLAT actually wraps the 16-bit address calculation;
                 * I'm masking it as if it does, but I need to run a test on real hardware to be sure.
                 */
                this.regEAX = (this.regEAX & ~0xff) | this.getEAByte(this.segData, ((this.regEBX + (this.regEAX & 0xff)) & 0xffff));
                this.nStepCycles -= this.cycleCounts.nOpCyclesXLAT;
            };
            
            /**
             * op=0xD8-0xDF (ESC)
             *
             * @this {X86CPU}
             */
            X86.opESC = function ESC()
            {
                this.aOpModRegWord[this.getIPByte()].call(this, X86.fnESC);
                this.nStepCycles -= 8;      // TODO: Fix
            };
            
            /**
             * op=0xE0 (LOOPNZ disp)
             *
             * NOTE: All the instructions in this group (LOOPNZ, LOOPZ, LOOP, and JCXZ) actually
             * rely on the ADDRESS override setting for determining whether CX or ECX will be used,
             * even though it seems counter-intuitive; ditto for the REP prefix.
             *
             * @this {X86CPU}
             */
            X86.opLOOPNZ = function LOOPNZ()
            {
                var disp = this.getIPDisp();
                if ((this.regECX = (this.regECX - 1) & this.addrMask) && !this.getZF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesLoopNZ;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesLoopFall;
            };
            
            /**
             * op=0xE1 (LOOPZ disp)
             *
             * NOTE: All the instructions in this group (LOOPNZ, LOOPZ, LOOP, and JCXZ) actually
             * rely on the ADDRESS override setting for determining whether CX or ECX will be used,
             * even though it seems counter-intuitive; ditto for the REP prefix.
             *
             * @this {X86CPU}
             */
            X86.opLOOPZ = function LOOPZ()
            {
                var disp = this.getIPDisp();
                if ((this.regECX = (this.regECX - 1) & this.addrMask) && this.getZF()) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesLoopZ;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesLoopZFall;
            };
            
            /**
             * op=0xE2 (LOOP disp)
             *
             * NOTE: All the instructions in this group (LOOPNZ, LOOPZ, LOOP, and JCXZ) actually
             * rely on the ADDRESS override setting for determining whether CX or ECX will be used,
             * even though it seems counter-intuitive; ditto for the REP prefix.
             *
             * @this {X86CPU}
             */
            X86.opLOOP = function LOOP()
            {
                var disp = this.getIPDisp();
                if ((this.regECX = (this.regECX - 1) & this.addrMask)) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesLoop;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesLoopFall;
            };
            
            /**
             * op=0xE3 (JCXZ/JECXZ disp)
             *
             * NOTE: All the instructions in this group (LOOPNZ, LOOPZ, LOOP, and JCXZ) actually
             * rely on the ADDRESS override setting for determining whether CX or ECX will be used,
             * even though it seems counter-intuitive; ditto for the REP prefix.
             *
             * @this {X86CPU}
             */
            X86.opJCXZ = function JCXZ()
            {
                var disp = this.getIPDisp();
                if (!(this.regECX & this.addrMask)) {
                    this.setIP(this.getIP() + disp);
                    this.nStepCycles -= this.cycleCounts.nOpCyclesLoopZ;
                    return;
                }
                this.nStepCycles -= this.cycleCounts.nOpCyclesLoopZFall;
            };
            
            /**
             * op=0xE4 (IN AL,port)
             *
             * @this {X86CPU}
             */
            X86.opINb = function INb()
            {
                var port = this.getIPByte();
                this.regEAX = (this.regEAX & ~0xff) | this.bus.checkPortInputNotify(port, this.regLIP - 2);
                if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiIO;
                this.nStepCycles -= this.cycleCounts.nOpCyclesInP;
            };
            
            /**
             * op=0xE5 (IN AX,port)
             *
             * @this {X86CPU}
             */
            X86.opINw = function INw()
            {
                var port = this.getIPByte();
                this.regEAX = this.bus.checkPortInputNotify(port, this.regLIP - 2);
                if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiIO;
                /*
                 * TODO: Specs are clear that bits 8-15 of the port address for the FIRST byte of I/O will be zero, but
                 * what about the SECOND byte?  If the port is 0xff, will the SECOND byte of I/O use port 0x00 or 0x100?
                 * Our code (below) assumes the latter.  Mask (port + 1) with 0xff if it turns out the former is true.
                 */
                this.regEAX |= (this.bus.checkPortInputNotify(port + 1, this.regLIP - 2) << 8);
                if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiIO;
                this.nStepCycles -= this.cycleCounts.nOpCyclesInP;
            };
            
            /**
             * op=0xE6 (OUT port,AL)
             *
             * @this {X86CPU}
             */
            X86.opOUTb = function OUTb()
            {
                var port = this.getIPByte();
                this.bus.checkPortOutputNotify(port, this.regEAX & 0xff, this.regLIP - 2);
                this.nStepCycles -= this.cycleCounts.nOpCyclesOutP;
            };
            
            /**
             * op=0xE7 (OUT port,AX)
             *
             * @this {X86CPU}
             */
            X86.opOUTw = function OUTw()
            {
                var port = this.getIPByte();
                this.bus.checkPortOutputNotify(port, this.regEAX & 0xff, this.regLIP - 2);
                /*
                 * TODO: Specs are clear that bits 8-15 of the port address for the FIRST byte of I/O will be zero, but
                 * what about the SECOND byte?  If the port is 0xff, will the SECOND byte of I/O use port 0x00 or 0x100?
                 * Our code (below) assumes the latter.  Mask (port + 1) with 0xff if it turns out the former is true.
                 */
                this.bus.checkPortOutputNotify(port + 1, this.regEAX >> 8, this.regLIP - 2);
                this.nStepCycles -= this.cycleCounts.nOpCyclesOutP;
            };
            
            /**
             * op=0xE8 (CALL disp16)
             *
             * @this {X86CPU}
             */
            X86.opCALL = function CALL()
            {
                var disp = this.getIPWord();
                var oldIP = this.getIP();
                var newIP = oldIP + disp;
                if (DEBUG) this.printMessage("calling " + str.toHex(newIP, this.dataSize << 1), this.bitsMessage, true);
                this.pushWord(oldIP);
                this.setIP(newIP);
                this.nStepCycles -= this.cycleCounts.nOpCyclesCall;
            };
            
            /**
             * op=0xE9 (JMP disp16)
             *
             * @this {X86CPU}
             */
            X86.opJMP = function JMP()
            {
                var disp = this.getIPWord();
                this.setIP(this.getIP() + disp);
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmp;
            };
            
            /**
             * op=0xEA (JMP seg:off)
             *
             * @this {X86CPU}
             */
            X86.opJMPF = function JMPF()
            {
                this.setCSIP(this.getIPWord(), this.getIPShort());
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmpF;
            };
            
            /**
             * op=0xEB (JMP short disp8)
             *
             * @this {X86CPU}
             */
            X86.opJMPs = function JMPs()
            {
                var disp = this.getIPDisp();
                this.setIP(this.getIP() + disp);
                this.nStepCycles -= this.cycleCounts.nOpCyclesJmp;
            };
            
            /**
             * op=0xEC (IN AL,dx)
             *
             * @this {X86CPU}
             */
            X86.opINDXb = function INDXb()
            {
                this.regEAX = (this.regEAX & ~0xff) | this.bus.checkPortInputNotify(this.regEDX & 0xffff, this.regLIP - 1);
                if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiIO;
                this.nStepCycles -= this.cycleCounts.nOpCyclesInDX;
            };
            
            /**
             * op=0xED (IN AX,dx)
             *
             * @this {X86CPU}
             */
            X86.opINDXw = function INDXw()
            {
                this.regEAX = this.bus.checkPortInputNotify(this.regEDX & 0xffff, this.regLIP - 1);
                if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiIO;
                this.regEAX |= (this.bus.checkPortInputNotify((this.regEDX + 1) & 0xffff, this.regLIP - 1) << 8);
                if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiIO;
                this.nStepCycles -= this.cycleCounts.nOpCyclesInDX;
            };
            
            /**
             * op=0xEE (OUT dx,AL)
             *
             * @this {X86CPU}
             */
            X86.opOUTDXb = function OUTDXb()
            {
                if (BACKTRACK) this.backTrack.btiIO = this.backTrack.btiAL;
                this.bus.checkPortOutputNotify(this.regEDX & 0xffff, this.regEAX & 0xff, this.regLIP - 1);
                this.nStepCycles -= this.cycleCounts.nOpCyclesOutDX;
            };
            
            /**
             * op=0xEF (OUT dx,AX)
             *
             * @this {X86CPU}
             */
            X86.opOUTDXw = function OUTDXw()
            {
                if (BACKTRACK) this.backTrack.btiIO = this.backTrack.btiAL;
                this.bus.checkPortOutputNotify(this.regEDX & 0xffff, this.regEAX & 0xff, this.regLIP - 1);
                if (BACKTRACK) this.backTrack.btiIO = this.backTrack.btiAH;
                this.bus.checkPortOutputNotify((this.regEDX + 1) & 0xffff, this.regEAX >> 8, this.regLIP - 1);
                this.nStepCycles -= this.cycleCounts.nOpCyclesOutDX;
            };
            
            /**
             * op=0xF0 (LOCK:)
             *
             * @this {X86CPU}
             */
            X86.opLOCK = function LOCK()
            {
                /*
                 * NOTE: The fact that we're setting NOINTR along with LOCK is really just for documentation purposes;
                 * the way stepCPU() is written, the presence of any prefix bypasses normal interrupt processing anyway.
                 */
                this.opFlags |= X86.OPFLAG.LOCK | X86.OPFLAG.NOINTR;
                this.nStepCycles -= this.cycleCounts.nOpCyclesPrefix;
            };
            
            /**
             * op=0xF1 (INT1; undocumented; 80186/80188 and up; TODO: Verify)
             *
             * I still treat this as undefined, until I can verify the behavior on real hardware.
             *
             * @this {X86CPU}
             */
            X86.opINT1 = function INT1()
            {
                X86.opUndefined.call(this);
            };
            
            /**
             * op=0xF2 (REPNZ:) (repeat CMPS or SCAS until NZ; repeat MOVS, LODS, or STOS unconditionally)
             *
             * @this {X86CPU}
             */
            X86.opREPNZ = function REPNZ()
            {
                /*
                 * NOTE: The fact that we're setting NOINTR along with REPNZ is really just for documentation purposes;
                 * the way stepCPU() is written, the presence of any prefix bypasses normal interrupt processing anyway.
                 */
                this.opFlags |= X86.OPFLAG.REPNZ | X86.OPFLAG.NOINTR;
                this.nStepCycles -= this.cycleCounts.nOpCyclesPrefix;
            };
            
            /**
             * op=0xF3 (REPZ:) (repeat CMPS or SCAS until Z; repeat MOVS, LODS, or STOS unconditionally)
             *
             * @this {X86CPU}
             */
            X86.opREPZ = function REPZ()
            {
                /*
                 * NOTE: The fact that we're setting NOINTR along with REPZ is really just for documentation purposes;
                 * the way stepCPU() is written, the presence of any prefix bypasses normal interrupt processing anyway.
                 */
                this.opFlags |= X86.OPFLAG.REPZ | X86.OPFLAG.NOINTR;
                this.nStepCycles -= this.cycleCounts.nOpCyclesPrefix;
            };
            
            /**
             * op=0xF4 (HLT)
             *
             * @this {X86CPU}
             */
            X86.opHLT = function HLT()
            {
                /*
                 * The CPU is never REALLY halted by a HLT instruction; instead, by setting X86.INTFLAG.HALT,
                 * we are signalling to stepCPU() that it's free to end the current burst AND that it should not
                 * execute any more instructions until checkINTR() indicates a hardware interrupt is requested.
                 */
                this.intFlags |= X86.INTFLAG.HALT;
                this.nStepCycles -= 2;
                /*
                 * If a Debugger is present and the HALT message category is enabled, then we REALLY halt the CPU,
                 * on the theory that whoever's using the Debugger would like to see HLTs.
                 */
                if (DEBUGGER && this.dbg && this.messageEnabled(Messages.HALT)) {
                    this.rewindIP(-1);      // this is purely for the Debugger's benefit, to show the HLT
                    this.stopCPU();
                    return;
                }
                /*
                 * We also REALLY halt the machine if interrupts have been disabled, since that means it's dead
                 * in the water (we have no NMI generation mechanism at the moment).
                 */
                if (!this.getIF()) {
                    if (DEBUGGER && this.dbg) this.rewindIP(-1);
                    this.stopCPU();
                }
            };
            
            /**
             * op=0xF5 (CMC)
             *
             * @this {X86CPU}
             */
            X86.opCMC = function CMC()
            {
                if (this.getCF()) this.clearCF(); else this.setCF();
                this.nStepCycles -= 2;                          // CMC takes 2 cycles on all CPUs
            };
            
            /**
             * op=0xF6 (GRP3 byte)
             *
             * The MUL byte instruction is problematic in two cases:
             *
             *      0xF6 0xE0:  MUL AL
             *      0xF6 0xE4:  MUL AH
             *
             * because the OpModGrpByte decoder function will attempt to put the fnMULb() function's
             * return value back into AL or AH, undoing fnMULb's update of AX.  And since fnMULb doesn't
             * know what the target is (only the target's value), it cannot easily work around the problem.
             *
             * A simple, albeit kludgy, solution is for fnMULb to always save its result in a special
             * "register" (eg, regMDLo), which we will then put back into regEAX if it's been updated.
             * This also relieves us from having to decode any part of the ModRM byte, so maybe it's not
             * such a bad work-around after all.
             *
             * Similar issues with IMUL (and DIV and IDIV) are resolved using the same special variable(s).
             *
             * @this {X86CPU}
             */
            X86.opGRP3b = function GRP3b()
            {
                this.fMDSet = false;
                this.aOpModGrpByte[this.getIPByte()].call(this, X86.aOpGrp3b, X86.fnSrcNone);
                if (this.fMDSet) this.regEAX = (this.regEAX & ~this.dataMask) | (this.regMDLo & this.dataMask);
            };
            
            /**
             * op=0xF7 (GRP3 word)
             *
             * The MUL word instruction is problematic in two cases:
             *
             *      0xF7 0xE0:  MUL AX
             *      0xF7 0xE2:  MUL DX
             *
             * because the OpModGrpWord decoder function will attempt to put the fnMULw() function's
             * return value back into AX or DX, undoing fnMULw's update of DX:AX.  And since fnMULw doesn't
             * know what the target is (only the target's value), it cannot easily work around the problem.
             *
             * A simple, albeit kludgey, solution is for fnMULw to always save its result in a special
             * "register" (eg, regMDLo/regMDHi), which we will then put back into regEAX/regEDX if it's been
             * updated.  This also relieves us from having to decode any part of the ModRM byte, so maybe
             * it's not such a bad work-around after all.
             *
             * @this {X86CPU}
             */
            X86.opGRP3w = function GRP3w()
            {
                this.fMDSet = false;
                this.aOpModGrpWord[this.getIPByte()].call(this, X86.aOpGrp3w, X86.fnSrcNone);
                if (this.fMDSet) {
                    this.regEAX = (this.regEAX & ~this.dataMask) | (this.regMDLo & this.dataMask);
                    this.regEDX = (this.regEDX & ~this.dataMask) | (this.regMDHi & this.dataMask);
                }
            };
            
            /**
             * op=0xF8 (CLC)
             *
             * @this {X86CPU}
             */
            X86.opCLC = function CLC()
            {
                this.clearCF();
                this.nStepCycles -= 2;                          // CLC takes 2 cycles on all CPUs
            };
            
            /**
             * op=0xF9 (STC)
             *
             * @this {X86CPU}
             */
            X86.opSTC = function STC()
            {
                this.setCF();
                this.nStepCycles -= 2;                          // STC takes 2 cycles on all CPUs
            };
            
            /**
             * op=0xFA (CLI)
             *
             * @this {X86CPU}
             */
            X86.opCLI = function CLI()
            {
                this.clearIF();
                this.nStepCycles -= this.cycleCounts.nOpCyclesCLI;   // CLI takes LONGER on an 80286
            };
            
            /**
             * op=0xFB (STI)
             *
             * @this {X86CPU}
             */
            X86.opSTI = function STI()
            {
                this.setIF();
                this.opFlags |= X86.OPFLAG.NOINTR;
                this.nStepCycles -= 2;                          // STI takes 2 cycles on all CPUs
            };
            
            /**
             * op=0xFC (CLD)
             *
             * @this {X86CPU}
             */
            X86.opCLD = function CLD()
            {
                this.clearDF();
                this.nStepCycles -= 2;                          // CLD takes 2 cycles on all CPUs
            };
            
            /**
             * op=0xFD (STD)
             *
             * @this {X86CPU}
             */
            X86.opSTD = function STD()
            {
                this.setDF();
                this.nStepCycles -= 2;                          // STD takes 2 cycles on all CPUs
            };
            
            /**
             * op=0xFE (GRP4 byte)
             *
             * @this {X86CPU}
             */
            X86.opGRP4b = function GRP4b()
            {
                this.aOpModGrpByte[this.getIPByte()].call(this, X86.aOpGrp4b, X86.fnSrcNone);
            };
            
            /**
             * op=0xFF (GRP4 word)
             *
             * @this {X86CPU}
             */
            X86.opGRP4w = function GRP4w()
            {
                this.aOpModGrpWord[this.getIPByte()].call(this, X86.aOpGrp4w, X86.fnSrcNone);
            };
            
            /**
             * opInvalid()
             *
             * @this {X86CPU}
             */
            X86.opInvalid = function opInvalid()
            {
                X86.fnFault.call(this, X86.EXCEPTION.UD_FAULT);
            };
            
            /**
             * opUndefined()
             *
             * @this {X86CPU}
             */
            X86.opUndefined = function opUndefined()
            {
                this.setIP(this.opLIP - this.segCS.base);
                this.setError("Undefined opcode " + str.toHexByte(this.bus.getByteDirect(this.regLIP)) + " at " + str.toHexLong(this.regLIP));
                this.stopCPU();
            };
            
            /**
             * opTBD()
             *
             * @this {X86CPU}
             */
            X86.opTBD = function opTBD()
            {
                this.setIP(this.opLIP - this.segCS.base);
                this.printMessage("unimplemented 80386 opcode", true);
                this.stopCPU();
            };
            
            /*
             * This 256-entry array of opcode functions is at the heart of the CPU engine: stepCPU(n).
             *
             * It might be worth trying a switch() statement instead, to see how the performance compares,
             * but I suspect that would vary quite a bit across JavaScript engines; for now, I'm putting my
             * money on array lookup.
             */
            X86.aOps = [
                X86.opADDmb,            X86.opADDmw,            X86.opADDrb,            X86.opADDrw,        // 0x00-0x03
                X86.opADDALb,           X86.opADDAX,            X86.opPUSHES,           X86.opPOPES,        // 0x04-0x07
                X86.opORmb,             X86.opORmw,             X86.opORrb,             X86.opORrw,         // 0x08-0x0B
                X86.opORALb,            X86.opORAX,             X86.opPUSHCS,           X86.opPOPCS,        // 0x0C-0x0F
                X86.opADCmb,            X86.opADCmw,            X86.opADCrb,            X86.opADCrw,        // 0x10-0x13
                X86.opADCALb,           X86.opADCAX,            X86.opPUSHSS,           X86.opPOPSS,        // 0x14-0x17
                X86.opSBBmb,            X86.opSBBmw,            X86.opSBBrb,            X86.opSBBrw,        // 0x18-0x1B
                X86.opSBBALb,           X86.opSBBAX,            X86.opPUSHDS,           X86.opPOPDS,        // 0x1C-0x1F
                X86.opANDmb,            X86.opANDmw,            X86.opANDrb,            X86.opANDrw,        // 0x20-0x23
                X86.opANDAL,            X86.opANDAX,            X86.opES,               X86.opDAA,          // 0x24-0x27
                X86.opSUBmb,            X86.opSUBmw,            X86.opSUBrb,            X86.opSUBrw,        // 0x28-0x2B
                X86.opSUBALb,           X86.opSUBAX,            X86.opCS,               X86.opDAS,          // 0x2C-0x2F
                X86.opXORmb,            X86.opXORmw,            X86.opXORrb,            X86.opXORrw,        // 0x30-0x33
                X86.opXORALb,           X86.opXORAX,            X86.opSS,               X86.opAAA,          // 0x34-0x37
                X86.opCMPmb,            X86.opCMPmw,            X86.opCMPrb,            X86.opCMPrw,        // 0x38-0x3B
                X86.opCMPALb,           X86.opCMPAX,            X86.opDS,               X86.opAAS,          // 0x3C-0x3F
                X86.opINCAX,            X86.opINCCX,            X86.opINCDX,            X86.opINCBX,        // 0x40-0x43
                X86.opINCSP,            X86.opINCBP,            X86.opINCSI,            X86.opINCDI,        // 0x44-0x47
                X86.opDECAX,            X86.opDECCX,            X86.opDECDX,            X86.opDECBX,        // 0x48-0x4B
                X86.opDECSP,            X86.opDECBP,            X86.opDECSI,            X86.opDECDI,        // 0x4C-0x4F
                X86.opPUSHAX,           X86.opPUSHCX,           X86.opPUSHDX,           X86.opPUSHBX,       // 0x50-0x53
                X86.opPUSHSP_8086,      X86.opPUSHBP,           X86.opPUSHSI,           X86.opPUSHDI,       // 0x54-0x57
                X86.opPOPAX,            X86.opPOPCX,            X86.opPOPDX,            X86.opPOPBX,        // 0x58-0x5B
                X86.opPOPSP,            X86.opPOPBP,            X86.opPOPSI,            X86.opPOPDI,        // 0x5C-0x5F
                /*
                 * On an 8086/8088, opcodes 0x60-0x6F are aliases for the conditional jumps 0x70-0x7F.  Sometimes you'll see
                 * references to these opcodes (like 0x60) being a "two-byte NOP" and using them differentiate an 8088 from newer
                 * CPUs, but they're only a "two-byte NOP" if the second byte is zero, resulting in zero displacement.
                 */
                X86.opJO,               X86.opJNO,              X86.opJC,               X86.opJNC,          // 0x60-0x63
                X86.opJZ,               X86.opJNZ,              X86.opJBE,              X86.opJNBE,         // 0x64-0x67
                X86.opJS,               X86.opJNS,              X86.opJP,               X86.opJNP,          // 0x68-0x6B
                X86.opJL,               X86.opJNL,              X86.opJLE,              X86.opJNLE,         // 0x6C-0x6F
                X86.opJO,               X86.opJNO,              X86.opJC,               X86.opJNC,          // 0x70-0x73
                X86.opJZ,               X86.opJNZ,              X86.opJBE,              X86.opJNBE,         // 0x74-0x77
                X86.opJS,               X86.opJNS,              X86.opJP,               X86.opJNP,          // 0x78-0x7B
                X86.opJL,               X86.opJNL,              X86.opJLE,              X86.opJNLE,         // 0x7C-0x7F
                /*
                 * On all processors, opcode groups 0x80 and 0x82 perform identically (0x82 opcodes sign-extend their
                 * immediate data, but since both 0x80 and 0x82 are byte operations, the sign extension has no effect).
                 *
                 * WARNING: Intel's "Pentium Processor User's Manual (Volume 3: Architecture and Programming Manual)" refers
                 * to opcode 0x82 as a "reserved" instruction, but also cryptically refers to it as "MOVB AL,imm".  This is
                 * assumed to be an error in the manual, because as far as I know, 0x82 has always mirrored 0x80.
                 */
                X86.opGRP1b,            X86.opGRP1w,            X86.opGRP1b,            X86.opGRP1sw,       // 0x80-0x83
                X86.opTESTrb,           X86.opTESTrw,           X86.opXCHGrb,           X86.opXCHGrw,       // 0x84-0x87
                X86.opMOVmb,            X86.opMOVmw,            X86.opMOVrb,            X86.opMOVrw,        // 0x88-0x8B
                X86.opMOVwsr,           X86.opLEA,              X86.opMOVsrw,           X86.opPOPmw,        // 0x8C-0x8F
                X86.opNOP,              X86.opXCHGCX,           X86.opXCHGDX,           X86.opXCHGBX,       // 0x90-0x93
                X86.opXCHGSP,           X86.opXCHGBP,           X86.opXCHGSI,           X86.opXCHGDI,       // 0x94-0x97
                X86.opCBW,              X86.opCWD,              X86.opCALLF,            X86.opWAIT,         // 0x98-0x9B
                X86.opPUSHF,            X86.opPOPF,             X86.opSAHF,             X86.opLAHF,         // 0x9C-0x9F
                X86.opMOVALm,           X86.opMOVAXm,           X86.opMOVmAL,           X86.opMOVmAX,       // 0xA0-0xA3
                X86.opMOVSb,            X86.opMOVSw,            X86.opCMPSb,            X86.opCMPSw,        // 0xA4-0xA7
                X86.opTESTALb,          X86.opTESTAX,           X86.opSTOSb,            X86.opSTOSw,        // 0xA8-0xAB
                X86.opLODSb,            X86.opLODSw,            X86.opSCASb,            X86.opSCASw,        // 0xAC-0xAF
                X86.opMOVALb,           X86.opMOVCLb,           X86.opMOVDLb,           X86.opMOVBLb,       // 0xB0-0xB3
                X86.opMOVAHb,           X86.opMOVCHb,           X86.opMOVDHb,           X86.opMOVBHb,       // 0xB4-0xB7
                X86.opMOVAX,            X86.opMOVCX,            X86.opMOVDX,            X86.opMOVBX,        // 0xB8-0xBB
                X86.opMOVSP,            X86.opMOVBP,            X86.opMOVSI,            X86.opMOVDI,        // 0xBC-0xBF
                /*
                 * On an 8086/8088, opcodes 0xC0 -> 0xC2, 0xC1 -> 0xC3, 0xC8 -> 0xCA and 0xC9 -> 0xCB.
                 */
                X86.opRETn,             X86.opRET,              X86.opRETn,             X86.opRET,          // 0xC0-0xC3
                X86.opLES,              X86.opLDS,              X86.opMOVb,             X86.opMOVw,         // 0xC4-0xC7
                X86.opRETFn,            X86.opRETF,             X86.opRETFn,            X86.opRETF,         // 0xC8-0xCB
                X86.opINT3,             X86.opINTn,             X86.opINTO,             X86.opIRET,         // 0xCC-0xCF
                X86.opGRP2b1,           X86.opGRP2w1,           X86.opGRP2bCL,          X86.opGRP2wCL,      // 0xD0-0xD3
                /*
                 * Even as of the Pentium, opcode 0xD6 is still marked as "reserved", but it's always been SALC (aka SETALC).
                 */
                X86.opAAM,              X86.opAAD,              X86.opSALC,             X86.opXLAT,         // 0xD4-0xD7
                X86.opESC,              X86.opESC,              X86.opESC,              X86.opESC,          // 0xD8-0xDB
                X86.opESC,              X86.opESC,              X86.opESC,              X86.opESC,          // 0xDC-0xDF
                X86.opLOOPNZ,           X86.opLOOPZ,            X86.opLOOP,             X86.opJCXZ,         // 0xE0-0xE3
                X86.opINb,              X86.opINw,              X86.opOUTb,             X86.opOUTw,         // 0xE4-0xE7
                X86.opCALL,             X86.opJMP,              X86.opJMPF,             X86.opJMPs,         // 0xE8-0xEB
                X86.opINDXb,            X86.opINDXw,            X86.opOUTDXb,           X86.opOUTDXw,       // 0xEC-0xEF
                /*
                 * On an 8086/8088, opcode 0xF1 is believed to be an alias for 0xF0; in any case, it definitely behaves like
                 * a prefix on those processors, so we treat it as such.  On the 80186 and up, we treat as opINT1().
                 *
                 * As of the Pentium, opcode 0xF1 is still marked "reserved".
                 */
                X86.opLOCK,             X86.opLOCK,             X86.opREPNZ,            X86.opREPZ,         // 0xF0-0xF3
                X86.opHLT,              X86.opCMC,              X86.opGRP3b,            X86.opGRP3w,        // 0xF4-0xF7
                X86.opCLC,              X86.opSTC,              X86.opCLI,              X86.opSTI,          // 0xF8-0xFB
                X86.opCLD,              X86.opSTD,              X86.opGRP4b,            X86.opGRP4w         // 0xFC-0xFF
            ];
            
            /*
             * A word (or two) on instruction groups (eg, Grp1, Grp2), which are groups of instructions that
             * use a mod/reg/rm byte, where the reg field of that byte selects a function rather than a register.
             *
             * I start with the groupings used by Intel's "Pentium Processor User's Manual (Volume 3: Architecture
             * and Programming Manual)", but I deviate slightly, mostly by subdividing their groups with letter suffixes:
             *
             *      Opcodes     Intel       PCjs                                                PC Mag TechRef
             *      -------     -----       ----                                                --------------
             *      0x80-0x83   Grp1        Grp1b and Grp1w                                     Group A
             *      0xC0-0xC1   Grp2        Grp2b and Grp2w (opGRP2bn/wn)                       Group B
             *      0xD0-0xD3   Grp2        Grp2b and Grp2w (opGRP2b1/w1 and opGRP2bCL/wCL)     Group B
             *      0xF6-0xF7   Grp3        Grp3b and Grp3w                                     Group C
             *      0xFE        Grp4        Grp4b                                               Group D
             *      0xFF        Grp5        Grp4w                                               Group E
             *      0x0F,0x00   Grp6        Grp6 (SLDT, STR, LLDT, LTR, VERR, VERW)             Group F
             *      0x0F,0x01   Grp7        Grp7 (SGDT, SIDT, LGDT, LIDT, SMSW, LMSW, INVLPG)   Group G
             *      0x0F,0xBA   Grp8        Grp8 (BT, BTS, BTR, BTC)                            Group H
             *      0x0F,0xC7   Grp9        Grp9 (CMPXCH)                                       (N/A, 80486 and up)
             *
             * My only serious deviation is Grp5, which I refer to as Grp4w, because it contains word forms of
             * the INC and DEC instructions found in Grp4b.  Granted, Grp4w also contains versions of the CALL,
             * JMP and PUSH instructions, which are not in Grp4b, but there's nothing in Grp4b that conflicts with
             * Grp4w, so I think my nomenclature makes more sense.  To compensate, I don't use Grp5, so that the
             * remaining group numbers remain in sync with Intel's.
             *
             * To the above list, I've added a few "single-serving" groups: opcode 0x8F uses GrpPOPw, and opcodes 0xC6/0xC7
             * use GrpMOVn.  In both of these groups, the only valid (documented) instruction is where reg=0x0.
             *
             * TODO: Test what happens on real hardware when the reg field is non-zero for opcodes 0x8F and 0xC6/0xC7.
             */
            X86.aOpGrp1b = [
                X86.fnADDb,             X86.fnORb,              X86.fnADCb,             X86.fnSBBb,             // 0x80/0x82(reg=0x0-0x3)
                X86.fnANDb,             X86.fnSUBb,             X86.fnXORb,             X86.fnCMPb              // 0x80/0x82(reg=0x4-0x7)
            ];
            
            X86.aOpGrp1w = [
                X86.fnADDw,             X86.fnORw,              X86.fnADCw,             X86.fnSBBw,             // 0x81/0x83(reg=0x0-0x3)
                X86.fnANDw,             X86.fnSUBw,             X86.fnXORw,             X86.fnCMPw              // 0x81/0x83(reg=0x4-0x7)
            ];
            
            X86.aOpGrpPOPw = [
                X86.fnPOPw,             X86.fnGRPFault,         X86.fnGRPFault,         X86.fnGRPFault,         // 0x8F(reg=0x0-0x3)
                X86.fnGRPFault,         X86.fnGRPFault,         X86.fnGRPFault,         X86.fnGRPFault          // 0x8F(reg=0x4-0x7)
            ];
            
            X86.aOpGrpMOVn = [
                X86.fnMOVn,             X86.fnGRPUndefined,     X86.fnGRPUndefined,     X86.fnGRPUndefined,     // 0xC6/0xC7(reg=0x0-0x3)
                X86.fnGRPUndefined,     X86.fnGRPUndefined,     X86.fnGRPUndefined,     X86.fnGRPUndefined      // 0xC6/0xC7(reg=0x4-0x7)
            ];
            
            X86.aOpGrp2b = [
                X86.fnROLb,             X86.fnRORb,             X86.fnRCLb,             X86.fnRCRb,             // 0xC0/0xD0/0xD2(reg=0x0-0x3)
                X86.fnSHLb,             X86.fnSHRb,             X86.fnGRPUndefined,     X86.fnSARb              // 0xC0/0xD0/0xD2(reg=0x4-0x7)
            ];
            
            X86.aOpGrp2w = [
                X86.fnROLw,             X86.fnRORw,             X86.fnRCLw,             X86.fnRCRw,             // 0xC1/0xD1/0xD3(reg=0x0-0x3)
                X86.fnSHLw,             X86.fnSHRw,             X86.fnGRPUndefined,     X86.fnSARw              // 0xC1/0xD1/0xD3(reg=0x4-0x7)
            ];
            
            X86.aOpGrp2d = [
                X86.fnROLd,             X86.fnRORd,             X86.fnRCLd,             X86.fnRCRd,             // 0xC1/0xD1/0xD3(reg=0x0-0x3)
                X86.fnSHLd,             X86.fnSHRd,             X86.fnGRPUndefined,     X86.fnSARd              // 0xC1/0xD1/0xD3(reg=0x4-0x7)
            ];
            
            X86.aOpGrp3b = [
                X86.fnTESTib,           X86.fnGRPUndefined,     X86.fnNOTb,             X86.fnNEGb,             // 0xF6(reg=0x0-0x3)
                X86.fnMULb,             X86.fnIMULb,            X86.fnDIVb,             X86.fnIDIVb             // 0xF6(reg=0x4-0x7)
            ];
            
            X86.aOpGrp3w = [
                X86.fnTESTiw,           X86.fnGRPUndefined,     X86.fnNOTw,             X86.fnNEGw,             // 0xF7(reg=0x0-0x3)
                X86.fnMULw,             X86.fnIMULw,            X86.fnDIVw,             X86.fnIDIVw             // 0xF7(reg=0x4-0x7)
            ];
            
            X86.aOpGrp4b = [
                X86.fnINCb,             X86.fnDECb,             X86.fnGRPUndefined,     X86.fnGRPUndefined,     // 0xFE(reg=0x0-0x3)
                X86.fnGRPUndefined,     X86.fnGRPUndefined,     X86.fnGRPUndefined,     X86.fnGRPUndefined      // 0xFE(reg=0x4-0x7)
            ];
            
            X86.aOpGrp4w = [
                X86.fnINCw,             X86.fnDECw,             X86.fnCALLw,            X86.fnCALLFdw,          // 0xFF(reg=0x0-0x3)
                X86.fnJMPw,             X86.fnJMPFdw,           X86.fnPUSHw,            X86.fnGRPFault          // 0xFF(reg=0x4-0x7)
            ];
            
          • x86seg.js
            /**
             * @fileoverview Implements PCjs X86 Segment Registers
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2014-Sep-10
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            if (typeof module !== 'undefined') {
                var str         = require("../../shared/lib/strlib");
                var Messages    = require("./messages");
                var Memory      = require("./memory");
                var X86         = require("./x86");
            }
            
            /*
             * NOTE: The protected-mode support in this module was initially added for 80286 support, and is
             * currently being upgraded for 80386 support.  In a perfect world, all 80386-related support would
             * be disabled/skipped whenever the processor is merely an 80286.  And in fact, that's the case
             * with some of the early changes (eg, skipping X86.DESC.EXT.BASE2431 and X86.DESC.EXT.LIMIT1619
             * fields unless the processor is an 80386).
             *
             * However, the reality is that I won't always be that strict, either because I'm lazy or because
             * any 80286 code you're likely to run probably won't attempt to use descriptor types or other features
             * unique to the 80386 anyway, so the extra paranoia may not be worth the effort.
             *
             * But still, we should all want to live in a perfect world.  Someday.
             */
            
            /**
             * @class X86Seg
             * @property {number} sel
             * @property {number} limit (in protected-mode, this comes from descriptor word 0x0)
             * @property {number} base (in protected-mode, this comes from descriptor word 0x2)
             * @property {number} acc (in protected-mode, this comes from descriptor word 0x4; bits 0-7 supplement base bits 16-23)
             * @property {number} ext (in protected-mode, this is descriptor word 0x6, 80386 only; supplements limit bits 16-19 and base bits 24-31)
             *
             * TODO: Determine what good, if any, these class annotations are for either an IDE like WebStorm or a tool like
             * the Closure Compiler.  More importantly, what good do they do at runtime?  Is it better to simply ensure that all
             * object properties are explicitly initialized in the constructor, and document them there instead?
             */
            
            /**
             * X86Seg(cpu, sName)
             *
             * @constructor
             * @param {X86CPU} cpu
             * @param {number} id
             * @param {string} [sName] segment register name
             * @param {boolean} [fProt] true if segment register used exclusively in protected-mode (eg, segLDT)
             */
            function X86Seg(cpu, id, sName, fProt)
            {
                this.cpu = cpu;
                this.dbg = cpu.dbg;
                this.id = id;
                this.sName = sName || "";
                this.sel = 0;
                this.limit = 0xffff;
                this.offMax = this.limit + 1;
                this.base = 0;
                this.acc = this.type = 0;
                this.ext = 0;
                this.cpl = this.dpl = 0;
                this.addrDesc = X86.ADDR_INVALID;
                this.dataSize = this.addrSize = 2;
                this.dataMask = this.addrMask = 0xffff;
                /*
                 * The following properties are used for CODE segments only (ie, segCS); if the process of loading
                 * CS also requires a stack switch, then fStackSwitch will be set to true; additionally, if the stack
                 * switch was the result of a CALL (ie, fCall is true) and one or more (up to 32) parameters are on
                 * the old stack, they will be copied to awParms, and then once the stack is switched, the parameters
                 * will be pushed from awParms onto the new stack.
                 *
                 * The typical ways of loading a new segment into CS are JMPF, CALLF (or INT), and RETF (or IRET);
                 * prior to calling segCS.load(), each of those operations must first set segCS.fCall to one of null,
                 * true, or false, respectively.
                 *
                 * It's critical that fCall be properly set prior to calling segCS.load(); fCall === null means NO
                 * privilege level transition may occur, fCall === true allows a stack switch and a privilege transition
                 * to a numerically lower privilege, and fCall === false allows a stack restore and a privilege transition
                 * to a numerically greater privilege.
                 *
                 * As long as setCSIP() or fnINT() are used for all CS changes, fCall is set automatically.
                 *
                 * TODO: Consider making fCall a parameter to load(), instead of a property that must be set prior to
                 * calling load(); the downside is that such a parameter is meaningless for segments other than segCS.
                 */
                this.awParms = (this.id == X86Seg.ID.CODE? new Array(32) : []);
                this.fCall = null;
                this.fStackSwitch = false;
                this.updateMode(true, fProt);
            }
            
            X86Seg.ID = {
                NULL:   0,          // "NULL"
                CODE:   1,          // "CS"
                DATA:   2,          // "DS", "ES", "FS", "GS"
                STACK:  3,          // "SS"
                TSS:    4,          // "TSS"
                LDT:    5,          // "LDT"
                OTHER:  6,          // "VER"
                DEBUG:  7           // "DBG"
            };
            
            /**
             * loadReal(sel, fSuppress)
             *
             * The default segment load() function for real-mode.
             *
             * @this {X86Seg}
             * @param {number} sel
             * @param {boolean} [fSuppress] is true to suppress any errors
             * @return {number} base address of selected segment, or ADDR_INVALID if error (TODO: No error conditions yet)
             */
            X86Seg.prototype.loadReal = function loadReal(sel, fSuppress)
            {
                this.sel = sel & 0xffff;
                /*
                 * Loading a new value into a segment register in real-mode alters ONLY the selector and the base;
                 * all other attributes (eg, limit, operand size, address size, etc) are unchanged.  If you run any
                 * code that switches to protected-mode, loads a 32-bit code segment, and then switches back to
                 * real-mode, it is THAT code's responsibility to load a 16-bit segment into CS before returning to
                 * real-mode; otherwise, your machine will probably be toast.
                 */
                return this.base = this.sel << 4;
            };
            
            /**
             * loadProt(sel, fSuppress)
             *
             * This replaces the segment's default load() function whenever the segment is notified via updateMode() by the
             * CPU's setProtMode() that the processor is now in protected-mode.
             *
             * Segments in protected-mode are referenced by selectors, which are indexes into descriptor tables (GDT or LDT)
             * whose descriptors are 4-word (8-byte) entries:
             *
             *      word 0: segment limit (0-15)
             *      word 1: base address low
             *      word 2: base address high (0-7), segment type (8-11), descriptor type (12), DPL (13-14), present bit (15)
             *      word 3: used only on 80386 and up (should be set to zero for upward compatibility)
             *
             * See X86.DESC for offset and bit definitions.
             *
             * IDT descriptor entries are handled separately by loadIDT(), which is mapped to loadIDTReal() or loadIDTProt().
             *
             * @this {X86Seg}
             * @param {number} sel
             * @param {boolean} [fSuppress] is true to suppress any errors, cycle assessment, etc
             * @return {number} base address of selected segment, or ADDR_INVALID if error
             */
            X86Seg.prototype.loadProt = function loadProt(sel, fSuppress)
            {
                var addrDT;
                var addrDTLimit;
                var cpu = this.cpu;
            
                /*
                 * Some instructions (eg, CALLF) load a 32-bit value for the selector, while others (eg, LDS) do not;
                 * however, in ALL cases, only the low 16 bits are significant.
                 */
                sel &= 0xffff;
            
                if (!(sel & X86.SEL.LDT)) {
                    addrDT = cpu.addrGDT;
                    addrDTLimit = cpu.addrGDTLimit;
                } else {
                    addrDT = cpu.segLDT.base;
                    addrDTLimit = (addrDT + cpu.segLDT.limit)|0;
                }
                /*
                 * The ROM BIOS POST executes some test code in protected-mode without properly initializing the LDT,
                 * which has no bearing on the ROM's own code, because it never loads any LDT selectors, but if at the same
                 * time our Debugger attempts to validate a selector in one of its breakpoints, that could cause some
                 * grief here.  We avoid that grief by 1) relying on the Debugger setting fSuppress to true, and 2) skipping
                 * segment lookup if the descriptor table being referenced is zero.  Both tests are required, because
                 * there's nothing in the design of the CPU that prevents the GDT or LDT being at linear address zero.
                 */
                if (!fSuppress || addrDT) {
                    var addrDesc = (addrDT + (sel & X86.SEL.MASK))|0;
                    if ((addrDTLimit - addrDesc)|0 >= 7) {
                        /*
                         * TODO: This is the first of many steps toward accurately counting cycles in protected mode;
                         * I simply noted that "POP segreg" takes 5 cycles in real mode and 20 in protected mode, so I'm
                         * starting with a 15-cycle difference.  Obviously the difference will vary with the instruction,
                         * and will be much greater whenever the load fails.
                         */
                        if (!fSuppress) cpu.nStepCycles -= 15;
                        return this.loadDesc8(addrDesc, sel, fSuppress);
                    }
                    if (!fSuppress) {
                        X86.fnFault.call(cpu, X86.EXCEPTION.GP_FAULT, sel);
                    }
                }
                return X86.ADDR_INVALID;
            };
            
            /**
             * loadIDTReal(nIDT)
             *
             * @this {X86Seg}
             * @param {number} nIDT
             * @return {number} address from selected vector, or ADDR_INVALID if error (TODO: No error conditions yet)
             */
            X86Seg.prototype.loadIDTReal = function loadIDTReal(nIDT)
            {
                var cpu = this.cpu;
                /*
                 * NOTE: The Compaq DeskPro 386 ROM loads the IDTR for the real-mode IDT with a limit of 0xffff instead
                 * of the normal 0x3ff.  A limit higher than 0x3ff is OK, since all real-mode IDT entries are 4 bytes, and
                 * there's no way to issue an interrupt with a vector > 0xff.  Just something to be aware of.
                 */
                cpu.assert(nIDT >= 0 && nIDT < 256 && !cpu.addrIDT && cpu.addrIDTLimit >= 0x3ff);
                /*
                 * Intel documentation for INT/INTO under "REAL ADDRESS MODE EXCEPTIONS" says:
                 *
                 *      "[T]he 80286 will shut down if the SP = 1, 3, or 5 before executing the INT or INTO instruction--due to lack of stack space"
                 *
                 * TODO: Verify that 80286 real-mode actually enforces the above.  See http://localhost:8088/pubs/pc/reference/intel/80286/progref/#page-260
                 */
                var addrIDT = cpu.addrIDT + (nIDT << 2);
                var off = cpu.getShort(addrIDT);
                cpu.regPS &= ~(X86.PS.TF | X86.PS.IF);
                return (this.load(cpu.getShort(addrIDT + 2)) + off)|0;
            };
            
            /**
             * loadIDTProt(nIDT)
             *
             * @this {X86Seg}
             * @param {number} nIDT
             * @return {number} address from selected vector, or ADDR_INVALID if error (TODO: No error conditions yet)
             */
            X86Seg.prototype.loadIDTProt = function loadIDTProt(nIDT)
            {
                var cpu = this.cpu;
                cpu.assert(nIDT >= 0 && nIDT < 256);
            
                nIDT <<= 3;
                var addrDesc = (cpu.addrIDT + nIDT)|0;
                if (((cpu.addrIDTLimit - addrDesc)|0) >= 7) {
                    return this.loadDesc8(addrDesc, nIDT) + cpu.regEIP;
                }
                X86.fnFault.call(cpu, X86.EXCEPTION.GP_FAULT, nIDT | X86.ERRCODE.IDT | X86.ERRCODE.EXT, true);
                return X86.ADDR_INVALID;
            };
            
            /**
             * checkReadReal(off, cb, fSuppress)
             *
             * TODO: Invoke X86.fnFault.call(this.cpu, X86.EXCEPTION.GP_FAULT) if off+cb is beyond offMax on 80186 and up;
             * also, determine whether fnFault() call should include an error code, since this is happening in real-mode.
             *
             * @this {X86Seg}
             * @param {number} off is a segment-relative offset
             * @param {number} cb is number of bytes to check (1, 2 or 4)
             * @param {boolean} [fSuppress] is true to suppress any errors
             * @return {number} corresponding linear address if valid, or ADDR_INVALID if error (TODO: No error conditions yet)
             */
            X86Seg.prototype.checkReadReal = function checkReadReal(off, cb, fSuppress)
            {
                return (this.base + off)|0;
            };
            
            /**
             * checkWriteReal(off, cb, fSuppress)
             *
             * TODO: Invoke X86.fnFault.call(this.cpu, X86.EXCEPTION.GP_FAULT) if off+cb is beyond offMax on 80186 and up;
             * also, determine whether fnFault() call should include an error code, since this is happening in real-mode.
             *
             * @this {X86Seg}
             * @param {number} off is a segment-relative offset
             * @param {number} cb is number of bytes to check (1, 2 or 4)
             * @param {boolean} [fSuppress] is true to suppress any errors
             * @return {number} corresponding linear address if valid, or ADDR_INVALID if error (TODO: No error conditions yet)
             */
            X86Seg.prototype.checkWriteReal = function checkWriteReal(off, cb, fSuppress)
            {
                return (this.base + off)|0;
            };
            
            /**
             * checkReadProt(off, cb, fSuppress)
             *
             * @this {X86Seg}
             * @param {number} off is a segment-relative offset
             * @param {number} cb is number of bytes to check (1, 2 or 4)
             * @param {boolean} [fSuppress] is true to suppress any errors
             * @return {number} corresponding linear address if valid, or ADDR_INVALID if not
             */
            X86Seg.prototype.checkReadProt = function checkReadProt(off, cb, fSuppress)
            {
                /*
                 * Since off could be a 32-bit value with the sign bit (bit 31) set, we must convert
                 * it to an unsigned value using ">>>"; offMax was already converted at segment load time.
                 */
                if ((off >>> 0) + cb <= this.offMax) {
                    return (this.base + off)|0;
                }
                return this.checkReadProtDisallowed(off, cb, fSuppress);
            };
            
            /**
             * checkReadProtDown(off, cb, fSuppress)
             *
             * @this {X86Seg}
             * @param {number} off is a segment-relative offset
             * @param {number} cb is number of bytes to check (1, 2 or 4)
             * @param {boolean} [fSuppress] is true to suppress any errors
             * @return {number} corresponding linear address if valid, ADDR_INVALID if not
             */
            X86Seg.prototype.checkReadProtDown = function checkReadProtDown(off, cb, fSuppress)
            {
                /*
                 * Since off could be a 32-bit value with the sign bit (bit 31) set, we must convert
                 * it to an unsigned value using ">>>"; offMax was already converted at segment load time.
                 */
                if ((off >>> 0) + cb > this.offMax) {
                    return (this.base + off)|0;
                }
                return this.checkReadProtDisallowed(off, cb, fSuppress);
            };
            
            /**
             * checkReadProtDisallowed(off, cb, fSuppress)
             *
             * @this {X86Seg}
             * @param {number} off is a segment-relative offset
             * @param {number} cb is number of bytes to check (1, 2 or 4)
             * @param {boolean} [fSuppress] is true to suppress any errors
             * @return {number} corresponding linear address if valid, ADDR_INVALID if not
             */
            X86Seg.prototype.checkReadProtDisallowed = function checkReadProtDisallowed(off, cb, fSuppress)
            {
                if (!fSuppress) {
                    X86.fnFault.call(this.cpu, X86.EXCEPTION.GP_FAULT, 0);
                }
                return X86.ADDR_INVALID;
            };
            
            /**
             * checkWriteProt(off, cb, fSuppress)
             *
             * @this {X86Seg}
             * @param {number} off is a segment-relative offset
             * @param {number} cb is number of bytes to check (1, 2 or 4)
             * @param {boolean} [fSuppress] is true to suppress any errors
             * @return {number} corresponding linear address if valid, ADDR_INVALID if not
             */
            X86Seg.prototype.checkWriteProt = function checkWriteProt(off, cb, fSuppress)
            {
                /*
                 * Since off could be a 32-bit value with the sign bit (bit 31) set, we must convert
                 * it to an unsigned value using ">>>"; offMax was already converted at segment load time.
                 */
                if ((off >>> 0) + cb <= this.offMax) {
                    return (this.base + off)|0;
                }
                return this.checkWriteProtDisallowed(off, cb, fSuppress);
            };
            
            /**
             * checkWriteProtDown(off, cb, fSuppress)
             *
             * @this {X86Seg}
             * @param {number} off is a segment-relative offset
             * @param {number} cb is number of bytes to check (1, 2 or 4)
             * @param {boolean} [fSuppress] is true to suppress any errors
             * @return {number} corresponding linear address if valid, ADDR_INVALID if not
             */
            X86Seg.prototype.checkWriteProtDown = function checkWriteProtDown(off, cb, fSuppress)
            {
                /*
                 * Since off could be a 32-bit value with the sign bit (bit 31) set, we must convert
                 * it to an unsigned value using ">>>"; offMax was already converted at segment load time.
                 */
                if ((off >>> 0) + cb > this.offMax) {
                    return (this.base + off)|0;
                }
                return this.checkWriteProtDisallowed(off, cb, fSuppress);
            };
            
            /**
             * checkWriteProtDisallowed(off, cb, fSuppress)
             *
             * @this {X86Seg}
             * @param {number} off is a segment-relative offset
             * @param {number} cb is number of bytes to check (1, 2 or 4)
             * @param {boolean} [fSuppress] is true to suppress any errors
             * @return {number} corresponding linear address if valid, ADDR_INVALID if not
             */
            X86Seg.prototype.checkWriteProtDisallowed = function checkWriteProtDisallowed(off, cb, fSuppress)
            {
                if (!fSuppress) {
                    X86.fnFault.call(this.cpu, X86.EXCEPTION.GP_FAULT, 0);
                }
                return X86.ADDR_INVALID;
            };
            
            /**
             * loadAcc(sel, fGDT)
             *
             * @this {X86Seg}
             * @param {number} sel (protected-mode only)
             * @param {boolean} [fGDT] is true if sel must be in the GDT
             * @return {number} ACC field from descriptor, or X86.DESC.ACC.INVALID if error
             */
            X86Seg.prototype.loadAcc = function(sel, fGDT)
            {
                var addrDT;
                var addrDTLimit;
                var cpu = this.cpu;
            
                if (!(sel & X86.SEL.LDT)) {
                    addrDT = cpu.addrGDT;
                    addrDTLimit = cpu.addrGDTLimit;
                } else if (!fGDT) {
                    addrDT = cpu.segLDT.base;
                    addrDTLimit = (addrDT + cpu.segLDT.limit)|0;
                }
                if (addrDT !== undefined) {
                    var addrDesc = (addrDT + (sel & X86.SEL.MASK))|0;
                    if (((addrDTLimit - addrDesc)|0) >= 7) {
                        return cpu.getShort(addrDesc + X86.DESC.ACC.OFFSET);
                    }
                }
                X86.fnFault.call(cpu, X86.EXCEPTION.GP_FAULT, sel);
                return X86.DESC.ACC.INVALID;
            };
            
            /**
             * loadDesc6(addrDesc, sel)
             *
             * Used to load a protected-mode selector that refers to a 6-byte "descriptor cache" (aka LOADALL) entry:
             *
             *      word 0: base address low
             *      word 1: base address high (0-7), segment type (8-11), descriptor type (12), DPL (13-14), present bit (15)
             *      word 2: segment limit (0-15)
             *
             * @this {X86Seg}
             * @param {number} addrDesc is the descriptor address
             * @param {number} sel is the associated selector
             * @return {number} base address of selected segment
             */
            X86Seg.prototype.loadDesc6 = function(addrDesc, sel)
            {
                var cpu = this.cpu;
                var acc = cpu.getShort(addrDesc + 2);
                var base = cpu.getShort(addrDesc) | ((acc & 0xff) << 16);
                var limit = cpu.getShort(addrDesc + 4);
            
                this.sel = sel;
                this.base = base;
                this.limit = limit;
                this.offMax = (limit >>> 0) + 1;
                this.acc = acc;
                this.type = (acc & X86.DESC.ACC.TYPE.MASK);
                this.ext = 0;
                this.addrDesc = addrDesc;
                this.updateMode(true);
            
                this.messageSeg(sel, base, limit, this.type);
            
                return base;
            };
            
            /**
             * loadDesc8(addrDesc, sel, fSuppress)
             *
             * Used to load a protected-mode selector that refers to an 8-byte "descriptor table" (GDT, LDT, IDT) entry:
             *
             *      word 0: segment limit (0-15)
             *      word 1: base address low
             *      word 2: base address high (0-7), segment type (8-11), descriptor type (12), DPL (13-14), present bit (15)
             *      word 3: used only on 80386 and up (should be set to zero for upward compatibility)
             *
             * See X86.DESC for offset and bit definitions.
             *
             * @this {X86Seg}
             * @param {number} addrDesc is the descriptor address
             * @param {number} sel is the associated selector, or nIDT*8 if IDT descriptor
             * @param {boolean} [fSuppress] is true to suppress any errors, cycle assessment, etc
             * @return {number} base address of selected segment, or ADDR_INVALID if error
             */
            X86Seg.prototype.loadDesc8 = function(addrDesc, sel, fSuppress)
            {
                var cpu = this.cpu;
                var limit = cpu.getShort(addrDesc + X86.DESC.LIMIT.OFFSET);
                var acc = cpu.getShort(addrDesc + X86.DESC.ACC.OFFSET);
                var type = (acc & X86.DESC.ACC.TYPE.MASK);
                var base = cpu.getShort(addrDesc + X86.DESC.BASE.OFFSET) | ((acc & X86.DESC.ACC.BASE1623) << 16);
                var ext = cpu.getShort(addrDesc + X86.DESC.EXT.OFFSET);
                var selMasked = sel & X86.SEL.MASK;
            
                if (I386 && cpu.model >= X86.MODEL_80386) {
                    var limitOrig = limit;
                    base |= (ext & X86.DESC.EXT.BASE2431) << 16;
                    limit |= (ext & X86.DESC.EXT.LIMIT1619) << 16;
                    if (ext & X86.DESC.EXT.LIMITPAGES) limit = (limit << 12) | 0xfff;
                }
            
                while (true) {
            
                    var fGate, selCode, cplPrev, addrTSS, offSP, offSS, regSPPrev, regSSPrev;
            
                    /*
                     * TODO: Consider moving the following chunks of code into worker functions for each X86Seg.ID;
                     * however, it's not clear that these tests are more costly than making additional function calls.
                     */
                    if (this.id == X86Seg.ID.CODE) {
                        this.fStackSwitch = false;
                        var fCall = this.fCall;
                        var regPSMask, nFaultError, regSP;
                        var rpl = sel & X86.SEL.RPL;
                        var dpl = (acc & X86.DESC.ACC.DPL.MASK) >> X86.DESC.ACC.DPL.SHIFT;
            
                        if (selMasked && !(acc & X86.DESC.ACC.PRESENT)) {
                            if (!fSuppress) X86.fnFault.call(cpu, X86.EXCEPTION.NP_FAULT, sel);
                            base = addrDesc = X86.ADDR_INVALID;
                            break;
                        }
            
                        /*
                         * Since we are X86Seg.ID.CODE, we can use this.cpl instead of the more generic cpu.segCS.cpl
                         */
                        if (type >= X86.DESC.ACC.TYPE.CODE_EXECONLY) {
                            rpl = sel & X86.SEL.RPL;
                            if (rpl > this.cpl) {
                                /*
                                 * If fCall is false, then we must have a RETF to a less privileged segment, which is OK.
                                 *
                                 * Otherwise, we must be dealing with a CALLF or JMPF to a less privileged segment, in which
                                 * case either DPL == CPL *or* the new segment is conforming and DPL <= CPL.
                                 */
                                if (fCall !== false && !(dpl == this.cpl || (type & X86.DESC.ACC.TYPE.CONFORMING) && dpl <= this.cpl)) {
                                    base = addrDesc = X86.ADDR_INVALID;
                                    break;
                                }
                                this.fStackSwitch = true;
                                /*
                                 * NOTE: We defer the actual stack switch to the end of this function, after we've called
                                 * updateMode(), to ensure that the stack operations occur with the correct size information.
                                 */
                            }
                            fGate = false;
                        }
                        else if (type == X86.DESC.ACC.TYPE.TSS286 || type == X86.DESC.ACC.TYPE.TSS386) {
                            if (!this.switchTSS(sel, fCall)) {
                                base = addrDesc = X86.ADDR_INVALID;
                                break;
                            }
                            return this.base;
                        }
                        else if (type == X86.DESC.ACC.TYPE.GATE_CALL || type == X86.DESC.ACC.TYPE.GATE386_CALL) {
                            fGate = true;
                            regPSMask = ~0;
                            nFaultError = sel;
                            if (rpl < this.cpl) rpl = this.cpl;     // set RPL to max(RPL,CPL) for call gates
                        }
                        else if (type == X86.DESC.ACC.TYPE.GATE286_INT || type == X86.DESC.ACC.TYPE.GATE386_INT) {
                            fGate = true;
                            regPSMask = ~(X86.PS.NT | X86.PS.TF | X86.PS.IF);
                            nFaultError = sel | X86.ERRCODE.EXT;
                            cpu.assert(!(acc & 0x1f));
                        }
                        else if (type == X86.DESC.ACC.TYPE.GATE286_TRAP || type == X86.DESC.ACC.TYPE.GATE386_TRAP) {
                            fGate = true;
                            regPSMask = ~(X86.PS.NT | X86.PS.TF);
                            nFaultError = sel | X86.ERRCODE.EXT;
                            cpu.assert(!(acc & 0x1f));
                        }
                        else if (type == X86.DESC.ACC.TYPE.GATE_TASK) {
                            if (!this.switchTSS(base & 0xffff, fCall)) {
                                base = addrDesc = X86.ADDR_INVALID;
                                break;
                            }
                            return this.base;
                        }
                        if (fGate) {
                            /*
                             * Note that since GATE_INT/GATE_TRAP descriptors should appear in the IDT only, that means sel
                             * will actually be nIDT * 8, which means the rpl will always be zero; additionally, the nWords
                             * portion of ACC should always be zero, but that's really dependent on the descriptor being properly
                             * set (which we assert above).
                             */
                            if (rpl <= dpl) {
                                /*
                                 * TODO: Verify the PRESENT bit of the gate descriptor, and issue NP_FAULT as appropriate.
                                 */
                                cplPrev = this.cpl;
                                /*
                                 * For gates, there is no "base" and "limit", but rather "selector" and "offset"; the selector
                                 * is located where the first 16 bits of base are normally stored, and the offset comes from the
                                 * original limit and ext fields.
                                 */
                                selCode = base & 0xffff;
                                if (I386 && (type & X86.DESC.ACC.NONSEG_386)) {
                                    limit = limitOrig | (ext << 16);
                                }
                                if (this.load(selCode, true) === X86.ADDR_INVALID) {
                                    cpu.assert(false);
                                    base = addrDesc = X86.ADDR_INVALID;
                                    break;
                                }
                                cpu.regEIP = limit;
                                if (this.cpl < cplPrev) {
                                    if (fCall !== true) {
                                        cpu.assert(false);
                                        base = addrDesc = X86.ADDR_INVALID;
                                        break;
                                    }
                                    cpu.resetSizes();
                                    regSP = cpu.getSP();
                                    var i = 0, nWords = (acc & 0x1f);
                                    while (nWords--) {
                                        this.awParms[i++] = cpu.getSOWord(cpu.segSS, regSP);
                                        regSP += 2;
                                    }
                                    addrTSS = cpu.segTSS.base;
                                    regSSPrev = cpu.getSS();
                                    regSPPrev = cpu.getSP();
                                    if (!I386 || !(type & X86.DESC.ACC.NONSEG_386)) {
                                        offSP = (this.cpl << 2) + X86.TSS286.CPL0_SP;
                                        offSS = offSP + 2;
                                        cpu.setSS(cpu.getShort(addrTSS + offSS), true);
                                        cpu.setSP(cpu.getShort(addrTSS + offSP));
                                    } else {
                                        offSP = (this.cpl << 2) + X86.TSS386.CPL0_ESP;
                                        offSS = offSP + 4;
                                        cpu.setSS(cpu.getShort(addrTSS + offSS), true);
                                        cpu.setSP(cpu.getLong(addrTSS + offSP));
                                    }
                                    cpu.pushWord(regSSPrev);
                                    cpu.pushWord(regSPPrev);
                                    while (i) cpu.pushWord(this.awParms[--i]);
                                    this.fStackSwitch = true;
                                }
                                cpu.regPS &= regPSMask;
                                return this.base;
                            }
                            cpu.assert(false);
                            if (!fSuppress) X86.fnFault.call(cpu, X86.EXCEPTION.GP_FAULT, nFaultError, true);
                            base = addrDesc = X86.ADDR_INVALID;
                            break;
                        }
                        else if (fGate !== false) {
                            cpu.assert(false);
                            if (!fSuppress) X86.fnFault.call(cpu, X86.EXCEPTION.GP_FAULT, sel, true);
                            base = addrDesc = X86.ADDR_INVALID;
                            break;
                        }
                    }
                    else if (this.id == X86Seg.ID.DATA) {
                        if (selMasked) {
                            if (!(acc & X86.DESC.ACC.PRESENT)) {
                                if (!fSuppress) X86.fnFault.call(cpu, X86.EXCEPTION.NP_FAULT, sel);
                                base = addrDesc = X86.ADDR_INVALID;
                                break;
                            }
                            if (type < X86.DESC.ACC.TYPE.SEG || (type & (X86.DESC.ACC.TYPE.CODE | X86.DESC.ACC.TYPE.READABLE)) == X86.DESC.ACC.TYPE.CODE) {
                                /*
                                 * OS/2 1.0 triggers this "Empty Descriptor" GP_FAULT multiple times during boot; for example:
                                 *
                                 *      Fault 0D (002F) on opcode 0x8E at 3190:3A05 (%112625)
                                 *      stopped (11315208 ops, 41813627 cycles, 498270 ms, 83918 hz)
                                 *      AX=0000 BX=0970 CX=0300 DX=0300 SP=0ABE BP=0ABA SI=0000 DI=001A
                                 *      DS=19C0[177300,2C5F] ES=001F[1743A0,07FF] SS=0038[175CE0,0B5F]
                                 *      CS=3190[10EC20,B89F] IP=3A05 V0 D0 I1 T0 S0 Z1 A0 P1 C0 PS=3246 MS=FFF3
                                 *      LD=0028[174BC0,003F] GD=[11A4E0,490F] ID=[11F61A,03FF]  TR=0010 A20=ON
                                 *      3190:3A05 8E4604        MOV      ES,[BP+04]
                                 *      0038:0ABE  002F  19C0  0000  067C - 07FC  0AD2  0010  C420
                                 *      dumpDesc(002F): %174BE8
                                 *      base=000000 limit=0000 dpl=00 type=00 (undefined)
                                 *
                                 * If we allow the GP fault to be dispatched, it recovers, so until I'm able to investigate this
                                 * further, I'm going to assume this is normal behavior.  If the segment (0x002F in the example)
                                 * simply needed to be "faulted" into memory, I would have expected OS/2 to build a descriptor
                                 * with the PRESENT bit clear, and rely on NP_FAULT rather than GP_FAULT, but maybe this was simpler.
                                 *
                                 * So, if the ACC field is zero, we won't set the last fnFault() parameter (fHalt) to true.
                                 */
                                if (!fSuppress) X86.fnFault.call(cpu, X86.EXCEPTION.GP_FAULT, sel, !!acc);
                                base = addrDesc = X86.ADDR_INVALID;
                                break;
                            }
                        }
                    }
                    else if (this.id == X86Seg.ID.STACK) {
                        if (!(acc & X86.DESC.ACC.PRESENT)) {
                            if (!fSuppress) X86.fnFault.call(cpu, X86.EXCEPTION.SS_FAULT, sel);
                            base = addrDesc = X86.ADDR_INVALID;
                            break;
                        }
                        if (!selMasked || type < X86.DESC.ACC.TYPE.SEG || (type & (X86.DESC.ACC.TYPE.CODE | X86.DESC.ACC.TYPE.WRITABLE)) != X86.DESC.ACC.TYPE.WRITABLE) {
                            if (!fSuppress) X86.fnFault.call(cpu, X86.EXCEPTION.GP_FAULT, sel, true);
                            base = addrDesc = X86.ADDR_INVALID;
                            break;
                        }
                    }
                    else if (this.id == X86Seg.ID.TSS) {
                        var typeTSS = type & ~X86.DESC.ACC.TSS_BUSY;
                        if (!selMasked || typeTSS != X86.DESC.ACC.TYPE.TSS286 && typeTSS != X86.DESC.ACC.TYPE.TSS386) {
                            if (!fSuppress) X86.fnFault.call(cpu, X86.EXCEPTION.GP_FAULT, sel, true);
                            base = addrDesc = X86.ADDR_INVALID;
                            break;
                        }
                    }
                    else if (this.id == X86Seg.ID.OTHER) {
                        /*
                         * For LSL, we must support any descriptor marked X86.DESC.ACC.TYPE.SEG, as well as TSS and LDT descriptors.
                         */
                        if (!(type & X86.DESC.ACC.TYPE.SEG) && type > X86.DESC.ACC.TYPE.TSS286_BUSY && type != X86.DESC.ACC.TYPE.TSS386 && type != X86.DESC.ACC.TYPE.TSS386_BUSY) {
                            base = addrDesc = X86.ADDR_INVALID;
                            break;
                        }
                    }
            
                    this.sel = sel;
                    this.base = base;
                    this.limit = limit;
                    this.offMax = (limit >>> 0) + 1;
                    this.acc = acc;
                    this.type = type;
                    this.ext = ext;
                    this.addrDesc = addrDesc;
                    this.updateMode(true);
            
                    if (fGate === false && this.fStackSwitch) {
                        /*
                         * NOTE: This is the deferred stack switch we mentioned above.
                         */
                        cpu.resetSizes();
                        regSP = cpu.popWord();
                        cpu.setSS(cpu.popWord(), true);
                        cpu.setSP(regSP);
                    }
                    break;
                }
                if (!fSuppress) this.messageSeg(sel, base, limit, type, ext);
                return base;
            };
            
            /**
             * switchTSS(selNew, fNest)
             *
             * Implements TSS (Task State Segment) task switching.
             *
             * NOTES: This typically occurs during double-fault processing, because the IDT entry for DF_FAULT normally
             * contains a task gate.  Interestingly, if we force a GP_FAULT to occur at a sufficiently early point in the
             * OS/2 1.0 initialization code, OS/2 does a nice job of displaying the GP fault and then shutting down:
             *
             *      0090:067B FB            STI
             *      0090:067C EBFD          JMP      067B
             *
             * but it may not have yet reprogrammed the master PIC to re-vector hardware interrupts to IDT entries 0x50-0x57,
             * so when the next timer interrupt (IRQ 0) occurs, it vectors through IDT entry 0x08, which is the DF_FAULT
             * vector. A spurious double-fault is generated, and a clean shutdown turns into a messy crash.
             *
             * Of course, that all could have been avoided if IBM had heeded Intel's advice and not used Intel-reserved IDT
             * entries for PC interrupts.
             *
             * TODO: Add TSS validity checks and appropriate generation of TS_FAULT exceptions; note that the only rudimentary
             * checks we currently perform are of the GP_FAULT variety.
             *
             * @this {X86Seg}
             * @param {number} selNew
             * @param {boolean|null} [fNest] is true if nesting, false if un-nesting, null if neither
             * @return {boolean} true if successful, false if error
             */
            X86Seg.prototype.switchTSS = function switchTSS(selNew, fNest)
            {
                var cpu = this.cpu;
                cpu.assert(this === cpu.segCS);
            
                var cplOld = this.cpl;
                var selOld = cpu.segTSS.sel;
                var addrOld = cpu.segTSS.base;
            
                if (!fNest) {
                    /*
                     * TODO: Verify that it is (always) correct to require that the BUSY bit be currently set.
                     */
                    if (!(cpu.segTSS.type & X86.DESC.ACC.TSS_BUSY)) {
                        X86.fnFault.call(cpu, X86.EXCEPTION.GP_FAULT, selNew, true);
                        return false;
                    }
                    /*
                     * TODO: Should I be more paranoid about writing our cached ACC value back into the descriptor?
                     */
                    cpu.setShort(cpu.segTSS.addrDesc + X86.DESC.ACC.OFFSET, cpu.segTSS.acc &= ~X86.DESC.ACC.TSS_BUSY);
                }
            
                if (cpu.segTSS.load(selNew) === X86.ADDR_INVALID) {
                    return false;
                }
            
                var addrNew = cpu.segTSS.base;
                if (DEBUG && DEBUGGER && this.dbg && this.dbg.messageEnabled(Messages.TSS)) {
                    this.dbg.message((fNest? "Task switch" : "Task return") + ": TR " + str.toHexWord(selOld) + " (%" + str.toHex(addrOld, 6) + "), new TR " + str.toHexWord(selNew) + " (%" + str.toHex(addrNew, 6) + ")");
                }
            
                if (fNest !== false) {
                    if (cpu.segTSS.type & X86.DESC.ACC.TSS_BUSY) {
                        X86.fnFault.call(cpu, X86.EXCEPTION.GP_FAULT, selNew, true);
                        return false;
                    }
                    cpu.setShort(cpu.segTSS.addrDesc + X86.DESC.ACC.OFFSET, cpu.segTSS.acc |= X86.DESC.ACC.TSS_BUSY);
                }
            
                /*
                 * Now that we're done checking the TSS_BUSY bit in the TYPE field (which is a subset of the ACC field),
                 * sync any changes made above in the ACC field to the TYPE field.
                 */
                cpu.segTSS.type = (cpu.segTSS.type & ~X86.DESC.ACC.TSS_BUSY) | (cpu.segTSS.acc & X86.DESC.ACC.TSS_BUSY);
            
                /*
                 * Update the old TSS
                 */
                var offSS, offSP;
                if (cpu.segTSS.type == X86.DESC.ACC.TYPE.TSS286 || cpu.segTSS.type == X86.DESC.ACC.TYPE.TSS286_BUSY) {
                    cpu.setShort(addrOld + X86.TSS286.TASK_IP, cpu.getIP());
                    cpu.setShort(addrOld + X86.TSS286.TASK_PS, cpu.getPS());
                    cpu.setShort(addrOld + X86.TSS286.TASK_AX, cpu.regEAX);
                    cpu.setShort(addrOld + X86.TSS286.TASK_CX, cpu.regECX);
                    cpu.setShort(addrOld + X86.TSS286.TASK_DX, cpu.regEDX);
                    cpu.setShort(addrOld + X86.TSS286.TASK_BX, cpu.regEBX);
                    cpu.setShort(addrOld + X86.TSS286.TASK_SP, cpu.getSP());
                    cpu.setShort(addrOld + X86.TSS286.TASK_BP, cpu.regEBP);
                    cpu.setShort(addrOld + X86.TSS286.TASK_SI, cpu.regESI);
                    cpu.setShort(addrOld + X86.TSS286.TASK_DI, cpu.regEDI);
                    cpu.setShort(addrOld + X86.TSS286.TASK_ES, cpu.segES.sel);
                    cpu.setShort(addrOld + X86.TSS286.TASK_CS, cpu.segCS.sel);
                    cpu.setShort(addrOld + X86.TSS286.TASK_SS, cpu.segSS.sel);
                    cpu.setShort(addrOld + X86.TSS286.TASK_DS, cpu.segDS.sel);
                    /*
                     * Reload all registers from the new TSS; it's important to reload the LDTR sooner
                     * rather than later, so that as segment registers are reloaded, any LDT selectors will
                     * will be located in the correct table.
                     */
                    cpu.segLDT.load(cpu.getShort(addrNew + X86.TSS286.TASK_LDT));
                    cpu.setPS(cpu.getShort(addrNew + X86.TSS286.TASK_PS) | (fNest? X86.PS.NT : 0));
                    cpu.assert(!fNest || !!(cpu.regPS & X86.PS.NT));
                    cpu.regEAX = cpu.getShort(addrNew + X86.TSS286.TASK_AX);
                    cpu.regECX = cpu.getShort(addrNew + X86.TSS286.TASK_CX);
                    cpu.regEDX = cpu.getShort(addrNew + X86.TSS286.TASK_DX);
                    cpu.regEBX = cpu.getShort(addrNew + X86.TSS286.TASK_BX);
                    cpu.regEBP = cpu.getShort(addrNew + X86.TSS286.TASK_BP);
                    cpu.regESI = cpu.getShort(addrNew + X86.TSS286.TASK_SI);
                    cpu.regEDI = cpu.getShort(addrNew + X86.TSS286.TASK_DI);
                    cpu.segES.load(cpu.getShort(addrNew + X86.TSS286.TASK_ES));
                    cpu.segDS.load(cpu.getShort(addrNew + X86.TSS286.TASK_DS));
                    cpu.setCSIP(cpu.getShort(addrNew + X86.TSS286.TASK_IP), cpu.getShort(addrNew + X86.TSS286.TASK_CS));
                    offSS = X86.TSS286.TASK_SS;
                    offSP = X86.TSS286.TASK_SP;
                    if (this.cpl < cplOld) {
                        offSP = (this.cpl << 2) + X86.TSS286.CPL0_SP;
                        offSS = offSP + 2;
                    }
                    cpu.setSS(cpu.getShort(addrNew + offSS), true);
                    cpu.setSP(cpu.getShort(addrNew + offSP));
                } else {
                    cpu.assert(cpu.segTSS.type == X86.DESC.ACC.TYPE.TSS386 || cpu.segTSS.type == X86.DESC.ACC.TYPE.TSS386_BUSY);
                    cpu.setLong(addrOld + X86.TSS386.TASK_CR3, cpu.regCR3);
                    cpu.setLong(addrOld + X86.TSS386.TASK_EIP, cpu.getIP());
                    cpu.setLong(addrOld + X86.TSS386.TASK_PS,  cpu.getPS());
                    cpu.setLong(addrOld + X86.TSS386.TASK_EAX, cpu.regEAX);
                    cpu.setLong(addrOld + X86.TSS386.TASK_ECX, cpu.regECX);
                    cpu.setLong(addrOld + X86.TSS386.TASK_EDX, cpu.regEDX);
                    cpu.setLong(addrOld + X86.TSS386.TASK_EBX, cpu.regEBX);
                    cpu.setLong(addrOld + X86.TSS386.TASK_ESP, cpu.getSP());
                    cpu.setLong(addrOld + X86.TSS386.TASK_EBP, cpu.regEBP);
                    cpu.setLong(addrOld + X86.TSS386.TASK_ESI, cpu.regESI);
                    cpu.setLong(addrOld + X86.TSS386.TASK_EDI, cpu.regEDI);
                    cpu.setLong(addrOld + X86.TSS386.TASK_ES,  cpu.segES.sel);
                    cpu.setLong(addrOld + X86.TSS386.TASK_CS,  cpu.segCS.sel);
                    cpu.setLong(addrOld + X86.TSS386.TASK_SS,  cpu.segSS.sel);
                    cpu.setLong(addrOld + X86.TSS386.TASK_DS,  cpu.segDS.sel);
                    cpu.setLong(addrOld + X86.TSS386.TASK_FS,  cpu.segFS.sel);
                    cpu.setLong(addrOld + X86.TSS386.TASK_GS,  cpu.segGS.sel);
                    /*
                     * Reload all registers from the new TSS; it's important to reload the LDTR sooner
                     * rather than later, so that as segment registers are reloaded, any LDT selectors will
                     * will be located in the correct table.
                     */
                    X86.fnLCR3.call(cpu, cpu.getLong(addrNew + X86.TSS386.TASK_CR3));
                    cpu.segLDT.load(cpu.getShort(addrNew + X86.TSS386.TASK_LDT));
                    cpu.setPS(cpu.getLong(addrNew + X86.TSS386.TASK_PS) | (fNest? X86.PS.NT : 0));
                    cpu.assert(!fNest || !!(cpu.regPS & X86.PS.NT));
                    cpu.regEAX = cpu.getLong(addrNew + X86.TSS386.TASK_EAX);
                    cpu.regECX = cpu.getLong(addrNew + X86.TSS386.TASK_ECX);
                    cpu.regEDX = cpu.getLong(addrNew + X86.TSS386.TASK_EDX);
                    cpu.regEBX = cpu.getLong(addrNew + X86.TSS386.TASK_EBX);
                    cpu.regEBP = cpu.getLong(addrNew + X86.TSS386.TASK_EBP);
                    cpu.regESI = cpu.getLong(addrNew + X86.TSS386.TASK_ESI);
                    cpu.regEDI = cpu.getLong(addrNew + X86.TSS386.TASK_EDI);
                    cpu.segES.load(cpu.getShort(addrNew + X86.TSS386.TASK_ES));
                    cpu.segDS.load(cpu.getShort(addrNew + X86.TSS386.TASK_DS));
                    cpu.segFS.load(cpu.getShort(addrNew + X86.TSS386.TASK_FS));
                    cpu.segGS.load(cpu.getShort(addrNew + X86.TSS386.TASK_GS));
                    cpu.setCSIP(cpu.getLong(addrNew + X86.TSS386.TASK_EIP), cpu.getShort(addrNew + X86.TSS386.TASK_CS));
                    offSS = X86.TSS386.TASK_SS;
                    offSP = X86.TSS386.TASK_ESP;
                    if (this.cpl < cplOld) {
                        offSP = (this.cpl << 2) + X86.TSS386.CPL0_ESP;
                        offSS = offSP + 4;
                    }
                    cpu.setSS(cpu.getShort(addrNew + offSS), true);
                    cpu.setSP(cpu.getLong(addrNew + offSP));
                }
            
                /*
                 * Fortunately, X86.TSS286.PREV_TSS and X86.TSS386.PREV_TSS are at the same TSS offset.
                 */
                if (fNest) cpu.setShort(addrNew + X86.TSS286.PREV_TSS, selOld);
            
                cpu.regCR0 |= X86.CR0.MSW.TS;
                return true;
            };
            
            /**
             * setBase(addr)
             *
             * This is used in unusual situations where the base must be set independently; normally, the base
             * is set according to the selector provided to load(), but there are a few cases where setBase()
             * is required.
             *
             * For example, in resetRegs(), the real-mode CS selector must be reset to 0xF000 for an 80286 or 80386,
             * but the CS base must be set to 0x00FF0000 or 0xFFFF0000, respectively.  To simplify life for setBase()
             * callers, we allow them to specify 32-bit bases, which we then truncate to 24 bits as needed.
             *
             * WARNING: Since the CPU must maintain regLIP as the sum of the CS base and the current IP, all calls
             * to segCS.setBase() need to go through cpu.setCSBase().
             *
             * @this {X86Seg}
             * @param {number} addr
             * @return {number} addr, truncated as needed
             */
            X86Seg.prototype.setBase = function(addr)
            {
                if (this.cpu.model < X86.MODEL_80386) addr &= 0xffffff;
                return this.base = addr;
            };
            
            /**
             * save()
             *
             * Early versions of PCjs saved only segment selectors, since that's all that mattered in real-mode;
             * newer versions need to save/restore all the "core" properties of the X86Seg object (ie, properties other
             * than those that updateMode() will take care of restoring later).
             *
             * @this {X86Seg}
             * @return {Array}
             */
            X86Seg.prototype.save = function()
            {
                return [
                    this.sel,
                    this.base,
                    this.limit,
                    this.acc,
                    this.id,
                    this.sName,
                    this.cpl,
                    this.dpl,
                    this.addrDesc,
                    this.addrSize,
                    this.addrMask,
                    this.dataSize,
                    this.dataMask,
                    this.type,
                    this.offMax
                ];
            };
            
            /**
             * restore(a)
             *
             * Early versions of PCjs saved only segment selectors, since that's all that mattered in real-mode;
             * newer versions need to save/restore all the "core" properties of the X86Seg object (ie, properties other
             * than those that updateMode() will take care of restoring later).
             *
             * @this {X86Seg}
             * @param {Array|number} a
             */
            X86Seg.prototype.restore = function(a)
            {
                if (typeof a == "number") {
                    this.load(a);
                } else {
                    this.sel      = a[0];
                    this.base     = a[1];
                    this.limit    = a[2];
                    this.acc      = a[3];
                    this.id       = a[4];
                    this.sName    = a[5];
                    this.cpl      = a[6];
                    this.dpl      = a[7];
                    this.addrDesc = a[8];
                    this.addrSize = a[9]  || 2;
                    this.addrMask = a[10] || 0xffff;
                    this.dataSize = a[11] || 2;
                    this.dataMask = a[12] || 0xffff;
                    this.type     = a[13] || (this.acc & X86.DESC.ACC.TYPE.MASK);
                    this.offMax   = a[14] || (this.limit >>> 0) + 1;
                }
            };
            
            /**
             * updateMode(fLoad, fProt)
             *
             * Ensures that the segment register's access (ie, load and check methods) matches the specified (or current)
             * operating mode (real or protected).
             *
             * @this {X86Seg}
             * @param {boolean} [fLoad] true if the segment was just (re)loaded, false if not
             * @param {boolean} [fProt] true for protected-mode access, false for real-mode access, undefined for current mode
             * @return {boolean}
             */
            X86Seg.prototype.updateMode = function(fLoad, fProt)
            {
                if (fProt === undefined) {
                    fProt = !!(this.cpu.regCR0 & X86.CR0.MSW.PE);
                }
            
                /*
                 * The following properties are used for STACK segments only (ie, segSS); we want to make it easier
                 * for setSS() to set stack lower and upper limits, which requires knowing whether or not the segment is
                 * marked as EXPDOWN.
                 */
                this.fExpDown = false;
            
                if (fProt) {
                    this.load = this.loadProt;
                    this.loadIDT = this.loadIDTProt;
                    this.checkRead = this.checkReadProt;
                    this.checkWrite = this.checkWriteProt;
            
                    /*
                     * TODO: For null GDT selectors, should we rely on the descriptor being invalid, or should we assume that
                     * the null descriptor might contain uninitialized (or other) data?  I'm assuming the latter, hence the
                     * following null selector test.  However, if we're not going to consult the descriptor, is there anything
                     * else we should (or should not) be doing for null GDT selectors?
                     */
                    if (!(this.sel & ~X86.SEL.RPL)) {
                        this.checkRead = this.checkReadProtDisallowed;
                        this.checkWrite = this.checkWriteProtDisallowed;
            
                    }
                    else if (this.type & X86.DESC.ACC.TYPE.SEG) {
                        /*
                         * If the READABLE bit of CODE_READABLE is not set, then disallow reads.
                         */
                        if ((this.type & X86.DESC.ACC.TYPE.CODE_READABLE) == X86.DESC.ACC.TYPE.CODE_EXECONLY) {
                            this.checkRead = this.checkReadProtDisallowed;
                        }
                        /*
                         * If the CODE bit is set, or the the WRITABLE bit is not set, then disallow writes.
                         */
                        if ((this.type & X86.DESC.ACC.TYPE.CODE) || !(this.type & X86.DESC.ACC.TYPE.WRITABLE)) {
                            this.checkWrite = this.checkWriteProtDisallowed;
                        }
                        /*
                         * If the CODE bit is not set *and* the EXPDOWN bit is set, then invert the limit check.
                         */
                        if ((this.type & (X86.DESC.ACC.TYPE.CODE | X86.DESC.ACC.TYPE.EXPDOWN)) == X86.DESC.ACC.TYPE.EXPDOWN) {
                            if (this.checkRead == this.checkReadProt) this.checkRead = this.checkReadProtDown;
                            if (this.checkWrite == this.checkWriteProt) this.checkWrite = this.checkWriteProtDown;
                            this.fExpDown = true;
                        }
                    }
                    /*
                     * TODO: For non-SEG descriptors, are there other checks or functions we should establish?
                     */
            
                    /*
                     * Any update to the following properties must occur only on segment loads, not simply when
                     * we're updating segment registers as part of a mode change.
                     */
                    if (fLoad) {
                        /*
                         * We must update the descriptor's ACCESSED bit whenever the segment is "accessed" (ie,
                         * loaded); unlike the ACCESSED and DIRTY bits in PTEs, a descriptor ACCESSED bit is only
                         * updated on loads, not on every memory access.
                         *
                         * We compute address of the descriptor byte containing the ACCESSED bit (offset 0x5);
                         * note that it's perfectly normal for addrDesc to occasionally be invalid (eg, when the CPU
                         * is creating protected-mode-only segment registers like LDT and TSS, or when the CPU has
                         * transitioned from real-mode to protected-mode and new selector(s) have not been loaded yet).
                         *
                         * TODO: Note I do NOT update the ACCESSED bit for null GDT selectors, because I assume the
                         * hardware does not update it either.  In fact, I've seen code that uses the null GDT descriptor
                         * for other purposes, on the assumption that that descriptor is completely unused.
                         */
                        if ((this.sel & ~X86.SEL.RPL) && this.addrDesc !== X86.ADDR_INVALID) {
                            var addrType = this.addrDesc + X86.DESC.ACC.TYPE.OFFSET;
                            this.cpu.setByte(addrType, this.cpu.getByte(addrType) | (X86.DESC.ACC.TYPE.ACCESSED >> 8));
                        }
                        this.cpl = this.sel & X86.SEL.RPL;
                        this.dpl = (this.acc & X86.DESC.ACC.DPL.MASK) >> X86.DESC.ACC.DPL.SHIFT;
                        if (this.cpu.model < X86.MODEL_80386 || !(this.ext & X86.DESC.EXT.BIG)) {
                            this.dataSize = 2;
                            this.dataMask = 0xffff;
                        } else {
                            this.dataSize = 4;
                            this.dataMask = (0xffffffff|0);
                        }
                        this.addrSize = this.dataSize;
                        this.addrMask = this.dataMask;
                    }
                } else {
                    this.load = this.loadReal;
                    this.loadIDT = this.loadIDTReal;
                    this.checkRead = this.checkReadReal;
                    this.checkWrite = this.checkWriteReal;
                    this.cpl = this.dpl = 0;
                    this.addrDesc = X86.ADDR_INVALID;
                    this.fStackSwitch = false;
                }
                return fProt;
            };
            
            /**
             * messageSeg(sel, base, limit, type, ext)
             *
             * @this {X86Seg}
             * @param {number} sel
             * @param {number} base
             * @param {number} limit
             * @param {number} type
             * @param {number} [ext]
             */
            X86Seg.prototype.messageSeg = function(sel, base, limit, type, ext)
            {
                if (DEBUG) {
                    if (DEBUGGER && this.dbg && this.dbg.messageEnabled(Messages.SEG)) {
                        var ch = (this.sName.length < 3? " " : "");
                        var sDPL = " dpl=" + this.dpl;
                        if (this.id == X86Seg.ID.CODE) sDPL += " cpl=" + this.cpl;
                        this.dbg.message("loadSeg(" + this.sName + "):" + ch + "sel=" + str.toHexWord(sel) + " base=" + str.toHex(base) + " limit=" + str.toHexWord(limit) + " type=" + str.toHexWord(type) + sDPL, true);
                    }
                    this.cpu.assert(/* base !== X86.ADDR_INVALID && */ (this.cpu.model >= X86.MODEL_80386 || !ext || ext == X86.DESC.EXT.AVAIL));
                }
            };
            
            if (typeof module !== 'undefined') module.exports = X86Seg;
            
      • shared
        • lib
          • README.md
            Shared Sources
            ===
            
            This folder contains a mix of shared code, with some files used only by Node (server) modules,
            some used only by Browser (client) modules, and others used by both.
            
            At the moment, only a few files are completely agnostic; eg: [strlib.js](strlib.js) and [usrlib.js](usrlib.js).
            One give-away is that neither contain references to any globals (although references to each other
            would be fine).
            
            **netlib.js** is appropriate only for Node modules, because it contains code that relies on Node's
            global *Buffer* object, as indicated by:
            
            	/* global Buffer: false */
            
            [weblib.js](weblib.js) is appropriate only for client modules, because it contains code that relies on the
            browser's global *window* object, as indicated by:
            
            	/* global window: true */
            
            We declare *window* modifiable (true) so that [defines.js](defines.js) can set *global.window* to *false*
            when running within Node, allowing any other code to test the existence of *window* with a simple:
            
            	if (window) {...}
            	
            instead of:
            
            	if (typeof window !== "undefined") {...}
            
          • component.js
            /**
             * @fileoverview The Component class used by C1Pjs and PCjs.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-May-14
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of the JavaScript Machines Project (aka JSMachines) at <http://jsmachines.net/>
             * and <http://pcjs.org/>.
             *
             * JSMachines is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * JSMachines is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with JSMachines.
             * If not, see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some JSMachines files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * JSMachines Project for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            /*
             * All the C1Pjs and PCjs components now use JSDoc types, primarily so that Google's Closure Compiler
             * will compile everything with ZERO warnings.  For more information about the JSDoc types supported by
             * the Closure Compiler:
             *
             *      https://developers.google.com/closure/compiler/docs/js-for-compiler#types
             *
             * I also attempted to use JSLint, but it's excessively strict for my taste, so this is the only file
             * I tried massaging for JSLint's sake.  I gave up when it complained about my use of "while (true)";
             * replacing "true" with an assignment expression didn't make it any happier.
             *
             * I wasn't thrilled about replacing all "++" and "--" operators with "+= 1" and "-= 1", nor about using
             * "(s || '')" instead of "(s? s : '')", because while the former may seem simpler, it is NOT more portable.
             * It's not that I'm trying to write "portable JavaScript", but some of this code was ported from C code I'd
             * written about 14 years earlier, and portability is good, so I'm not going to rewrite if there's no need.
             *
             * UPDATE: I've since switched to JSHint, which seems to have more reasonable defaults.
             */
            
            "use strict";
            
            /* global window: true, DEBUG: true */
            
            if (typeof module !== 'undefined') {
                require("./defines");
                var usr = require("./usrlib");
                var web = require("./weblib");
            }
            
            /**
             * Component(type, parms, constructor, bitsMessage)
             *
             * A Component object requires:
             *
             *      type: a user-defined type name (eg, "CPU")
             *
             * and accepts any or all of the following (parms) properties:
             *
             *      id: component ID (default is "")
             *      name: component name (default is ""; if blank, toString() will use the type name only)
             *      comment: component comment string (default is undefined)
             *
             * Subclasses that use Component.subclass() to extend Component will likely have additional (parms) properties.
             *
             * @constructor
             * @param {string} type
             * @param {Object} [parms]
             * @param {Object} [constructor]
             * @param {number} [bitsMessage] selects message(s) that the component wants to enable (default is 0)
             */
            function Component(type, parms, constructor, bitsMessage)
            {
                this.type = type;
            
                if (!parms) parms = {'id': "", 'name': ""};
            
                this.id = parms['id'];
                this.name = parms['name'];
                this.comment = parms['comment'];
                this.parms = parms;
                if (this.id === undefined) this.id = "";
            
                var i = this.id.indexOf('.');
                if (i > 0) {
                    this.idMachine = this.id.substr(0, i);
                    this.idComponent = this.id.substr(i + 1);
                } else {
                    this.idComponent = this.id;
                }
            
                /*
                 * Recording the constructor is really just a debugging aid, because many of our constructors
                 * have class constants, but they're hard to find when the constructors are buried among all the
                 * other globals.
                 */
                this[type] = constructor;
            
                /*
                 * Gather all the various component flags (booleans) into a single "flags" object, and encourage
                 * subclasses to do the same, to reduce the property clutter we have to wade through while debugging.
                 */
                this.aFlags = {
                    fReady: false,
                    fBusy: false,
                    fBusyCancel: false,
                    fPowered: false,
                    fError: false
                };
            
                this.fnReady = null;
                this.clearError();
                this.bindings = {};
                this.dbg = null;                    // by default, no connection to a Debugger
                this.bitsMessage = bitsMessage || 0;
            
                Component.add(this);
            }
            
            /**
             * Component.parmsURL
             *
             * Initialized to the set of URL parameters, if any, for the current web page.
             *
             * @type {Object|null}
             */
            Component.parmsURL = web.getURLParameters();
            
            /**
             * Component.inherit(p)
             *
             * Returns a newly created object that inherits properties from the prototype object p.
             * It uses the ECMAScript 5 function Object.create() if it is defined, and otherwise falls back to an older technique.
             *
             * See: Flanagan, David (2011-04-18). JavaScript: The Definitive Guide: The Definitive Guide (Kindle Locations 9854-9903). OReilly Media - A. Kindle Edition (Example 6-1)
             *
             * @param {Object} p
             */
            Component.inherit = function(p)
            {
                if (window) {
                    if (!p) throw new TypeError();
                    if (Object.create) {
                        return Object.create(p);
                    }
                    var t = typeof p;
                    if (t !== "object" && t !== "function") throw new TypeError();
                }
                /**
                 * @constructor
                 */
                function F() {}
                F.prototype = p;
                return new F();
            };
            
            /**
             * Component.extend(o, p)
             *
             * Copies the enumerable properties of p to o and returns o.
             * If o and p have a property by the same name, o's property is overwritten.
             *
             * See: Flanagan, David (2011-04-18). JavaScript: The Definitive Guide: The Definitive Guide (Kindle Locations 9854-9903). OReilly Media - A. Kindle Edition (Example 6-2)
             *
             * @param {Object} o
             * @param {Object} p
             */
            Component.extend = function(o, p)
            {
                for (var prop in p) {
                    o[prop] = p[prop];
                }
                return o;
            };
            
            /**
             * Component.subclass(subclass, superclass, methods, statics)
             *
             * See: Flanagan, David (2011-04-18). JavaScript: The Definitive Guide: The Definitive Guide (Kindle Locations 9854-9903). OReilly Media - A. Kindle Edition (Example 9-11)
             *
             * @param {Object} subclass is the constructor for the new subclass
             * @param {Object} [superclass] is the constructor of the superclass (default is Component)
             * @param {Object} [methods] contains all instance methods
             * @param {Object} [statics] contains all class properties and methods
             */
            Component.subclass = function(subclass, superclass, methods, statics)
            {
                if (!superclass) superclass = Component;
                subclass.prototype = Component.inherit(superclass.prototype);
                subclass.prototype.constructor = subclass;
                subclass.prototype.parent = superclass.prototype;
                if (methods) {
                    Component.extend(subclass.prototype, methods);
                }
                if (statics) {
                    Component.extend(subclass, statics);
                }
                return subclass;
            };
            
            /*
             * Every component created on the current page is recorded in this array (see Component.add()).
             *
             * This enables any component to locate another component by ID (see Component.getComponentByID())
             * or by type (see Component.getComponentByType()).
             */
            Component.all = [];
            
            /**
             * Component.add(component)
             *
             * @param {Component} component
             */
            Component.add = function(component)
            {
                /*
                 * This just generates a lot of useless noise, handy in the early days, not so much these days...
                 *
                 *      if (DEBUG) Component.log("Component.add(" + component.type + "," + component.id + ")");
                 */
                Component.all[Component.all.length] = component;
            };
            
            /**
             * Component.log(s, type)
             *
             * For diagnostic output only.
             *
             * @param {string} [s] is the message text
             * @param {string} [type] is the message type
             */
            Component.log = function(s, type)
            {
                if (DEBUG) {
                    if (s) {
                        var msElapsed, sMsg = (type? (type + ": ") : "") + s;
                        if (Component.msStart === undefined) {
                            Component.msStart = usr.getTime();
                        }
                        msElapsed = usr.getTime() - Component.msStart;
                        if (window && window.console) console.log(msElapsed + "ms: " + sMsg.replace(/\n/g, " "));
                    }
                }
            };
            
            /**
             * Component.assert(f, s)
             *
             * Verifies conditions that must be true (for DEBUG builds only).
             *
             * The Closure Compiler should automatically remove all references to Component.assert() in non-DEBUG builds.
             *
             * TODO: Add a task to the build process that "asserts" there are no instances of "assertion failure" in RELEASE builds.
             *
             * @param {boolean} f is the expression we are asserting to be true
             * @param {string} [s] is description of the assertion on failure
             */
            Component.assert = function(f, s)
            {
                if (DEBUG) {
                    if (!f) {
                        if (!s) s = "assertion failure";
                        Component.log(s);
                        throw new Error(s);
                    }
                }
            };
            
            /**
             * Component.println(s, type, id)
             *
             * For non-diagnostic messages, which components may override to control the destination/appearance of their output.
             *
             * Components that inherit from this class should use the instance method, this.println(), rather than Component.println(),
             * because if a Control Panel is loaded, it will override only the instance method, not the class method (overriding the class
             * method would improperly affect any other machines loaded on the same page).
             *
             * @param {string} [s] is the message text
             * @param {string} [type] is the message type
             * @param {string} [id] is the caller's ID, if any
             */
            Component.println = function(s, type, id)
            {
                if (DEBUG) {
                    Component.log((id? (id + ": ") : "") + (s? ("\"" + s + "\"") : ""), type);
                }
            };
            
            /**
             * Component.notice(s, fPrintOnly, id)
             *
             * notice() is like println() but implies a need for user notification, so we alert() as well.
             *
             * @param {string} s is the message text
             * @param {boolean} [fPrintOnly]
             * @param {string} [id] is the caller's ID, if any
             */
            Component.notice = function(s, fPrintOnly, id)
            {
                if (DEBUG) {
                    Component.println(s, "notice", id);
                }
                if (!fPrintOnly) web.alertUser(s);
            };
            
            /**
             * Component.warning(s)
             *
             * @param {string} s describes the warning
             */
            Component.warning = function(s)
            {
                if (DEBUG) {
                    Component.println(s, "warning");
                }
                web.alertUser(s);
            };
            
            /**
             * Component.error(s)
             *
             * @param {string} s describes the error; an alert() is displayed as well
             */
            Component.error = function(s)
            {
                if (DEBUG) {
                    Component.println(s, "error");
                }
                web.alertUser(s);
            };
            
            /**
             * Component.getComponents(idRelated)
             *
             * We could store components as properties of an 'all' object, using the component's ID,
             * and change this linear lookup into a property lookup, but some components may have no ID.
             *
             * @param {string} [idRelated] of related component
             * @return {Array} of components
             */
            Component.getComponents = function(idRelated)
            {
                var i;
                var aComponents = [];
                /*
                 * getComponentByID(id, idRelated)
                 *
                 * If idRelated is provided, we check it for a machine prefix, and use any
                 * existing prefix to constrain matches to IDs with the same prefix, in order to
                 * avoid matching components belonging to other machines.
                 */
                if (idRelated) {
                    if ((i = idRelated.indexOf('.')) > 0)
                        idRelated = idRelated.substr(0, i + 1);
                    else
                        idRelated = "";
                }
                for (i = 0; i < Component.all.length; i++) {
                    var component = Component.all[i];
                    if (!idRelated || !component.id.indexOf(idRelated)) {
                        aComponents.push(component);
                    }
                }
                return aComponents;
            };
            
            /**
             * Component.getComponentByID(id, idRelated)
             *
             * We could store components as properties of an 'all' object, using the component's ID,
             * and change this linear lookup into a property lookup, but some components may have no ID.
             *
             * @param {string} id of the desired component
             * @param {string} [idRelated] of related component
             * @return {Component|null}
             */
            Component.getComponentByID = function(id, idRelated)
            {
                if (id !== undefined) {
                    var i;
                    /*
                     * If idRelated is provided, we check it for a machine prefix, and use any
                     * existing prefix to constrain matches to IDs with the same prefix, in order to
                     * avoid matching components belonging to other machines.
                     */
                    if (idRelated && (i = idRelated.indexOf('.')) > 0) {
                        id = idRelated.substr(0, i + 1) + id;
                    }
                    for (i = 0; i < Component.all.length; i++) {
                        if (Component.all[i].id === id) {
                            return Component.all[i];
                        }
                    }
                    Component.log("Component ID '" + id + "' not found", "warning");
                }
                return null;
            };
            
            /**
             * Component.getComponentByType(sType, idRelated, componentPrev)
             *
             * @param {string} sType of the desired component
             * @param {string} [idRelated] of related component
             * @param {Component|null} [componentPrev] of previously returned component, if any
             * @return {Component|null}
             */
            Component.getComponentByType = function(sType, idRelated, componentPrev)
            {
                if (sType !== undefined) {
                    var i;
                    /*
                     * If idRelated is provided, we check it for a machine prefix, and use any
                     * existing prefix to constrain matches to IDs with the same prefix, in order to
                     * avoid matching components belonging to other machines.
                     */
                    if (idRelated) {
                        if ((i = idRelated.indexOf('.')) > 0) {
                            idRelated = idRelated.substr(0, i + 1);
                        } else {
                            idRelated = "";
                        }
                    }
                    for (i = 0; i < Component.all.length; i++) {
                        if (componentPrev) {
                            if (componentPrev == Component.all[i]) componentPrev = null;
                            continue;
                        }
                        if (sType == Component.all[i].type && (!idRelated || !Component.all[i].id.indexOf(idRelated))) {
                            return Component.all[i];
                        }
                    }
                    Component.log("Component type '" + sType + "' not found", "warning");
                }
                return null;
            };
            
            /**
             * Component.getComponentParms(element)
             *
             * @param {Object} element from the DOM
             */
            Component.getComponentParms = function(element)
            {
                var parms = null,
                    sParms = element.getAttribute("data-value");
                if (sParms) {
                    try {
                        parms = eval("({" + sParms + "})"); // jshint ignore:line
                        /*
                         * We can no longer invoke removeAttribute() because some components (eg, Panel) need
                         * to run their initXXX() code more than once, to avoid initialization-order dependencies.
                         *
                         *      if (!DEBUG) {
                         *          element.removeAttribute("data-value");
                         *      }
                         */
                    } catch(e) {
                        Component.error(e.message + " (" + sParms + ")");
                    }
                }
                return parms;
            };
            
            /**
             * Component.bindExternalControl(component, sControl, sBinding, sType)
             *
             * @param {Component} component
             * @param {string} sControl
             * @param {string} sBinding
             * @param {string} [sType] is the external component type
             */
            Component.bindExternalControl = function(component, sControl, sBinding, sType)
            {
                if (sControl) {
                    if (sType === undefined) sType = "Panel";
                    var target = Component.getComponentByType(sType, component.id);
                    if (target) {
                        var eBinding = target.bindings[sControl];
                        if (eBinding) {
                            component.setBinding(null, sBinding, eBinding);
                        }
                    }
                }
            };
            
            if (window && !window.document.ELEMENT_NODE) window.document.ELEMENT_NODE = 1;
            
            /**
             * Component.bindComponentControls(component, element, sAppClass)
             *
             * @param {Component} component
             * @param {Object} element from the DOM
             * @param {string} sAppClass
             */
            Component.bindComponentControls = function(component, element, sAppClass)
            {
                var aeControls = Component.getElementsByClass(element.parentNode, sAppClass + "-control");
            
                for (var iControl = 0; iControl < aeControls.length; iControl++) {
            
                    var aeChildNodes = aeControls[iControl].childNodes;
            
                    for (var iNode = 0; iNode < aeChildNodes.length; iNode++) {
                        var control = aeChildNodes[iNode];
                        if (control.nodeType !== window.document.ELEMENT_NODE) {
                            continue;
                        }
                        var sClass = control.getAttribute("class");
                        if (!sClass) continue;
                        var aClasses = sClass.split(" ");
                        for (var iClass = 0; iClass < aClasses.length; iClass++) {
                            var parms;
                            sClass = aClasses[iClass];
                            switch (sClass) {
                                case sAppClass + "-binding":
                                    parms = Component.getComponentParms(control);
                                    if (parms && parms['binding']) {
                                        component.setBinding(parms['type'], parms['binding'], control);
                                    } else {
                                        Component.log("Component '" + component.toString() + "' missing binding" + (parms? " for " + parms['type'] : ""), "warning");
                                    }
                                    iClass = aClasses.length;
                                    break;
                                default:
                                    // if (DEBUG) Component.log("Component.bindComponentControls(" + component.toString() + "): unrecognized control class \"" + sClass + "\"", "warning");
                                    break;
                            }
                        }
                    }
                }
            };
            
            /**
             * Component.getElementsByClass(element, sClass, sObjClass)
             *
             * This is a cross-browser helper function, since not all browser's support getElementsByClassName()
             *
             * TODO: This should probably be moved into weblib.js at some point, along with the control binding functions above,
             * to keep all the browser-related code together.
             *
             * @param {Object} element from the DOM
             * @param {string} sClass
             * @param {string} [sObjClass]
             * @return {Array|NodeList}
             */
            Component.getElementsByClass = function(element, sClass, sObjClass)
            {
                if (sObjClass) sClass += '-' + sObjClass + "-object";
                /*
                 * Use the browser's built-in getElementsByClassName() if it appears to be available
                 * (for example, it's not available in IE8, but it should be available in IE9 and up)
                 */
                if (element.getElementsByClassName) {
                    return element.getElementsByClassName(sClass);
                }
                var i, j, ae = [];
                var aeAll = element.getElementsByTagName("*");
                var re = new RegExp('(^| )' + sClass + '( |$)');
                for (i = 0, j = aeAll.length; i < j; i++) {
                    if (re.test(aeAll[i].className)) {
                        ae.push(aeAll[i]);
                    }
                }
                if (!ae.length) {
                    Component.log('No elements of class "' + sClass + '" found');
                }
                return ae;
            };
            
            Component.prototype = {
                constructor: Component,
                parent: null,
                /**
                 * toString()
                 *
                 * @this {Component}
                 * @return {string}
                 */
                toString: function() {
                    return (this.name? this.name : (this.id || this.type));
                },
                /**
                 * getMachineNum()
                 *
                 * @this {Component}
                 * @return {number} unique machine number
                 */
                getMachineNum: function() {
                    var nMachine = 1;
                    if (this.idMachine) {
                        var aDigits = this.idMachine.match(/\d+/);
                        if (aDigits !== null)
                            nMachine = parseInt(aDigits[0], 10);
                    }
                    return nMachine;
                },
                /**
                 * setBinding(sHTMLType, sBinding, control)
                 *
                 * Component's setBinding() method is intended to be overridden by subclasses.
                 *
                 * @this {Component}
                 * @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
                 * @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "reset")
                 * @param {Object} control is the HTML control DOM object (eg, HTMLButtonElement)
                 * @return {boolean} true if binding was successful, false if unrecognized binding request
                 */
                setBinding: function(sHTMLType, sBinding, control) {
                    switch (sBinding) {
                    case "clear":
                        if (!this.bindings[sBinding]) {
                            this.bindings[sBinding] = control;
                            control.onclick = (function(component) {
                                return function clearPanel() {
                                    if (component.bindings['print']) {
                                        component.bindings['print'].value = "";
                                    }
                                };
                            }(this));
                        }
                        return true;
                    case "print":
                        if (!this.bindings[sBinding]) {
                            this.bindings[sBinding] = control;
                            /*
                             * HACK: Save this particular HTML element so that the Debugger can access it, too
                             */
                            this.controlPrint = control;
                            /*
                             * This was added for Firefox (Safari automatically clears the <textarea> on a page reload,
                             * but Firefox does not).
                             */
                            control.value = "";
                            this.println = (function(control) {
                                return function printPanel(s, type) {
                                    s = (type !== undefined? (type + ": ") : "") + (s || "");
                                    /*
                                     * Prevent the <textarea> from getting too large; otherwise, printing becomes slower and slower.
                                     */
                                    if (COMPILED) {
                                        if (control.value.length > 8192) {
                                            control.value = control.value.substr(control.value.length - 4096);
                                        }
                                    }
                                    control.value += s + "\n";
                                    control.scrollTop = control.scrollHeight;
                                    if (DEBUG && window && window.console) console.log(s);
                                };
                            }(control));
                            /**
                             * Override this.notice() with a replacement function that eliminates the web.alertUser() call
                             *
                             * @this {Component}
                             * @param {string} s
                             * @param {boolean} [fPrintOnly]
                             * @param {string} [id]
                             */
                            this.notice = function noticePanel(s, fPrintOnly, id) {
                                this.println(s, "notice", id);
                            };
                        }
                        return true;
                    default:
                        return false;
                    }
                },
                /**
                 * log(s, type)
                 *
                 * For diagnostic output only.
                 *
                 * WARNING: Even though this function's body is completely wrapped in DEBUG, that won't prevent the Closure Compiler
                 * from including it, so all calls must still be prefixed with "if (DEBUG) ....".  For this reason, the class method,
                 * Component.log(), is preferred, because the compiler IS smart enough to remove those calls.
                 *
                 * @this {Component}
                 * @param {string} [s] is the message text
                 * @param {string} [type] is the message type
                 */
                log: function(s, type) {
                    if (DEBUG) {
                        Component.log(s, type || this.id || this.type);
                    }
                },
                /**
                 * assert(f, s)
                 *
                 * Verifies conditions that must be true (for DEBUG builds only).
                 *
                 * WARNING: Make sure you preface all calls to this.assert() with "if (DEBUG)", because unlike Component.assert(),
                 * the Closure Compiler can't be sure that this instance method hasn't been overridden, so it refuses to treat it as
                 * dead code in non-DEBUG builds.
                 *
                 * TODO: Add a task to the build process that "asserts" there are no instances of "assertion failure" in RELEASE builds.
                 *
                 * @param {boolean} f is the expression we are asserting to be true
                 * @param {string} [s] is description of the assertion on failure
                 */
                assert: function(f, s) {
                    if (DEBUG) {
                        if (!f) {
                            s = "assertion failure in " + (this.id || this.type) + (s? ": " + s : "");
                            if (DEBUGGER && this.dbg) {
                                this.dbg.stopCPU();
                                /*
                                 * Why do we throw an Error only to immediately catch and ignore it?  Simply to give
                                 * any IDE the opportunity to inspect the application's state.  Even when the IDE has
                                 * control, you should still be able to invoke Debugger commands from the IDE's REPL,
                                 * using the '$' global function that the Debugger constructor defines; eg:
                                 *
                                 *      $('r')
                                 *      $('dw 0:0')
                                 *      $('h')
                                 *      ...
                                 *
                                 * If you have no desire to stop on assertions, consider this a no-op.  However, another
                                 * potential benefit of creating an Error object is that, for browsers like Chrome, we get
                                 * a stack trace, too.
                                 */
                                try {
                                    throw new Error(s);
                                } catch(e) {
                                    this.println(e.stack || e.message);
                                }
                                return;
                            }
                            this.log(s);
                            throw new Error(s);
                        }
                    }
                },
                /**
                 * println(s, type)
                 *
                 * For non-diagnostic messages, which components may override to control the destination/appearance of their output.
                 *
                 * Components using this.println() should wait until after their constructor has run to display any messages, because
                 * if a Control Panel has been loaded, its override will not take effect until its own constructor has run.
                 *
                 * @this {Component}
                 * @param {string} [s] is the message text
                 * @param {string} [type] is the message type
                 * @param {string} [id] is the caller's ID, if any
                 */
                println: function(s, type, id) {
                    Component.println(s, type, id || this.id);
                },
                /**
                 * status(s)
                 *
                 * status() is like println() but it also includes information about the component (ie, the component ID),
                 * which is why there is no corresponding Component.status() function.
                 *
                 * @param {string} s is the message text
                 */
                status: function(s) {
                    this.println(this.idComponent + ": " + s);
                },
                /**
                 * notice(s, fPrintOnly)
                 *
                 * notice() is like println() but implies a need for user notification, so we alert() as well; however, if this.println()
                 * is overridden, this.notice will be replaced with a similar override, on the assumption that the override is taking care
                 * of alerting the user.
                 *
                 * @this {Component}
                 * @param {string} s is the message text
                 * @param {boolean} [fPrintOnly]
                 * @param {string} [id] is the caller's ID, if any
                 */
                notice: function(s, fPrintOnly, id) {
                    Component.notice(s, fPrintOnly, id || this.id);
                },
                /**
                 * setError(s)
                 *
                 * Set a fatal error condition
                 *
                 * @this {Component}
                 * @param {string} s describes a fatal error condition
                 */
                setError: function(s) {
                    this.aFlags.fError = true;
                    this.notice(s);         // TODO: Any cases where we should still prefix this string with "Fatal error: "?
                },
                /**
                 * clearError()
                 *
                 * Clear any fatal error condition
                 *
                 * @this {Component}
                 */
                clearError: function() {
                    this.aFlags.fError = false;
                },
                /**
                 * isError()
                 *
                 * Report any fatal error condition
                 *
                 * @this {Component}
                 * @return {boolean} true if a fatal error condition exists, false if not
                 */
                isError: function() {
                    if (this.aFlags.fError) {
                        this.println(this.toString() + " error");
                        return true;
                    }
                    return false;
                },
                /**
                 * isReady(fnReady)
                 *
                 * Return the "ready" state of the component; if the component is not ready, it will queue the optional
                 * notification function, otherwise it will immediately call the notification function, if any, without queuing it.
                 *
                 * NOTE: Since only the Computer component actually cares about the "readiness" of other components, the so-called
                 * "queue" of notification functions supports exactly one function.  This keeps things nice and simple.
                 *
                 * @this {Component}
                 * @param {function()} [fnReady]
                 * @return {boolean} true if the component is in a "ready" state, false if not
                 */
                isReady: function(fnReady) {
                    if (fnReady) {
                        if (this.aFlags.fReady) {
                            fnReady();
                        } else {
                            if (MAXDEBUG) this.log("NOT ready");
                            this.fnReady = fnReady;
                        }
                    }
                    return this.aFlags.fReady;
                },
                /**
                 * setReady(fReady)
                 *
                 * Set the "ready" state of the component to true, and call any queued notification functions.
                 *
                 * @this {Component}
                 * @param {boolean} [fReady] is assumed to indicate "ready" unless EXPLICITLY set to false
                 */
                setReady: function(fReady) {
                    if (!this.aFlags.fError) {
                        this.aFlags.fReady = (fReady !== false);
                        if (this.aFlags.fReady) {
                            if (MAXDEBUG /* || this.name */) this.log("ready");
                            var fnReady = this.fnReady;
                            this.fnReady = null;
                            if (fnReady) fnReady();
                        }
                    }
                },
                /**
                 * isBusy(fCancel)
                 *
                 * Return the "busy" state of the component
                 *
                 * @this {Component}
                 * @param {boolean} [fCancel] is set to true to cancel a "busy" state
                 * @return {boolean} true if "busy", false if not
                 */
                isBusy: function(fCancel) {
                    if (this.aFlags.fBusy) {
                        if (fCancel) {
                            this.aFlags.fBusyCancel = true;
                        } else if (fCancel === undefined) {
                            this.println(this.toString() + " busy");
                        }
                    }
                    return this.aFlags.fBusy;
                },
                /**
                 * setBusy(fBusy)
                 *
                 * Update the current busy state; if an fCancel request is pending, it will be honored now.
                 *
                 * @this {Component}
                 * @param {boolean} fBusy
                 * @return {boolean}
                 */
                setBusy: function(fBusy) {
                    if (this.aFlags.fBusyCancel) {
                        if (this.aFlags.fBusy) {
                            this.aFlags.fBusy = false;
                        }
                        this.aFlags.fBusyCancel = false;
                        return false;
                    }
                    if (this.aFlags.fError) {
                        this.println(this.toString() + " error");
                        return false;
                    }
                    this.aFlags.fBusy = fBusy;
                    return this.aFlags.fBusy;
                },
                /**
                 * powerUp(fSave)
                 *
                 * @this {Component}
                 * @param {Object|null} data
                 * @param {boolean} [fRepower] is true if this is "repower" notification
                 * @return {boolean} true if successful, false if failure
                 */
                powerUp: function(data, fRepower) {
                    this.aFlags.fPowered = true;
                    return true;
                },
                /**
                 * powerDown(fSave, fShutdown)
                 *
                 * @this {Component}
                 * @param {boolean} fSave
                 * @param {boolean} [fShutdown]
                 * @return {Object|boolean} component state if fSave; otherwise, true if successful, false if failure
                 */
                powerDown: function(fSave, fShutdown) {
                    if (fShutdown) this.aFlags.fPowered = false;
                    return true;
                },
                /**
                 * messageEnabled(bitsMessage)
                 *
                 * If bitsMessage is not specified, the component's MESSAGE category is used.
                 *
                 * @this {Component}
                 * @param {number} [bitsMessage] is zero or more MESSAGE_* category flag(s)
                 * @return {boolean} true if all specified message enabled, false if not
                 */
                messageEnabled: function(bitsMessage) {
                    if (DEBUGGER && this.dbg) {
                        if (this === this.dbg) {
                            bitsMessage |= 0;
                        } else {
                            bitsMessage = bitsMessage || this.bitsMessage;
                        }
                        var bitsEnabled = this.dbg.bitsMessage & bitsMessage;
                        return (!!bitsMessage && bitsEnabled === bitsMessage || !!(bitsEnabled & this.dbg.bitsWarning));
                    }
                    return false;
                },
                /**
                 * printMessage(sMessage, bitsMessage, fAddress)
                 *
                 * If bitsMessage is not specified, the component's MESSAGE category is used.
                 * If bitsMessage is true, the message is displayed regardless.
                 *
                 * @this {Component}
                 * @param {string} sMessage is any caller-defined message string
                 * @param {number|boolean} [bitsMessage] is zero or more MESSAGE_* category flag(s)
                 * @param {boolean} [fAddress] is true to display the current address
                 * @return {boolean} true if Debugger available, false if not
                 */
                printMessage: function(sMessage, bitsMessage, fAddress) {
                    if (DEBUGGER && this.dbg) {
                        if (bitsMessage === true || this.messageEnabled(bitsMessage | 0)) {
                            this.dbg.message(sMessage, fAddress);
                        }
                        return true;
                    }
                    return false;
                },
                /**
                 * printMessageIO(port, bOut, addrFrom, name, bIn, bitsMessage)
                 *
                 * If bitsMessage is not specified, the component's MESSAGE category is used.
                 * If bitsMessage is true, the message is displayed as long as MESSAGE.PORT is enabled.
                 *
                 * @this {Component}
                 * @param {number} port
                 * @param {number|null} bOut if an output operation
                 * @param {number|null} [addrFrom]
                 * @param {string|null} [name] of the port, if any
                 * @param {number|null} [bIn] is the input value, if known, on an input operation
                 * @param {number|boolean} [bitsMessage] is zero or more MESSAGE_* category flag(s)
                 */
                printMessageIO: function(port, bOut, addrFrom, name, bIn, bitsMessage) {
                    if (DEBUGGER && this.dbg) {
                        if (bitsMessage === true) {
                            bitsMessage = 0;
                        } else if (bitsMessage == null) {
                            bitsMessage = this.bitsMessage;
                        }
                        this.dbg.messageIO(this, port, bOut, addrFrom, name, bIn, bitsMessage);
                    }
                }
            };
            
            if (typeof module !== 'undefined') module.exports = Component;
            
          • defines.js
            /**
             * @fileoverview Compile-time definitions used by C1Pjs and PCjs.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2014-May-08
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of the JavaScript Machines Project (aka JSMachines) at <http://jsmachines.net/>
             * and <http://pcjs.org/>.
             *
             * JSMachines is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * JSMachines is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with JSMachines.
             * If not, see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some JSMachines files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * JSMachines Project for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            /**
             * @define {string}
             */
            var APPNAME = "";               // this @define is overridden by the Closure Compiler with either "PCjs" or "C1Pjs"
            
            /**
             * @define {string}
             */
            var APPVERSION = "1.x.x";       // this @define is overridden by the Closure Compiler with the version in package.json
            
            /**
             * @define {string}
             */
            var SITEHOST = "localhost:8088";// this @define is overridden by the Closure Compiler with "www.pcjs.org"
            
            /**
             * @define {boolean}
             */
            var COMPILED = false;           // this @define is overridden by the Closure Compiler (to true)
            
            /**
             * @define {boolean}
             */
            var DEBUG = true;               // this @define is overridden by the Closure Compiler (to false) to remove DEBUG-only code
            
            /**
             * @define {boolean}
             */
            var MAXDEBUG = false;           // this @define is overridden by the Closure Compiler (to false) to remove MAXDEBUG-only code
            
            if (typeof module !== 'undefined') {
                global.window = false;      // provides an alternative "if (typeof window === 'undefined')" (ie, "if (window) ...")
                global.APPNAME = APPNAME;
                global.APPVERSION = APPVERSION;
                global.SITEHOST = SITEHOST;
                global.COMPILED = COMPILED;
                global.DEBUG = DEBUG;
                global.MAXDEBUG = MAXDEBUG;
                /*
                 * TODO: When we're "required" by Node, should we return anything via module.exports?
                 */
            }
            
          • diskapi.js
            /**
             * @fileoverview Disk APIs, as defined by httpapi.js and consumed by disk.js
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2014-May-08
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of the JavaScript Machines Project (aka JSMachines) at <http://jsmachines.net/>
             * and <http://pcjs.org/>.
             *
             * JSMachines is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * JSMachines is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with JSMachines.
             * If not, see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some JSMachines files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * JSMachines Project for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            /*
             * Our "DiskIO API" looks like:
             *
             *      http://www.pcjs.org/api/v1/disk?action=open&volume=*10mb.img&mode=demandrw&chs=c:h:s&machine=xxx&user=yyy
             */
            var DiskAPI = {
                ENDPOINT:       "/api/v1/disk",
                QUERY: {
                    ACTION:     "action",   // value is one of DiskAPI.ACTION.*
                    VOLUME:     "volume",   // value is path of a disk image
                    MODE:       "mode",     // value is one of DiskAPI.MODE.*
                    CHS:        "chs",      // value is cylinders:heads:sectors:bytes
                    ADDR:       "addr",     // value is cylinder:head:sector:count
                    MACHINE:    "machine",  // value is machine token
                    USER:       "user",     // value is user ID
                    DATA:       "data"      // value is data to be written
                },
                ACTION: {
                    OPEN:       "open",
                    READ:       "read",
                    WRITE:      "write",
                    CLOSE:      "close"
                },
                MODE: {
                    LOCAL:      "local",    // this mode implies no API (at best, localStorage backing only)
                    PRELOAD:    "preload",  // this mode implies use of the DumpAPI
                    DEMANDRW:   "demandrw",
                    DEMANDRO:   "demandro"
                },
                FAIL: {
                    BADACTION:  "invalid action",
                    BADUSER:    "invalid user",
                    BADVOL:     "invalid volume",
                    OPENVOL:    "unable to open volume",
                    CREATEVOL:  "unable to create volume",
                    WRITEVOL:   "unable to write volume",
                    REVOKED:    "access revoked"
                }
            };
            
            /*
             * Common (supported) diskette formats
             */
            DiskAPI.DISKETTE_FORMATS = {
                163840:  [40,1,8],          // media type 0xFE: 40 cylinders, 1 head (single-sided),   8 sectors/track, ( 320 total sectors x 512 bytes/sector ==  163840)
                184320:  [40,1,9],          // media type 0xFC: 40 cylinders, 1 head (single-sided),   9 sectors/track, ( 360 total sectors x 512 bytes/sector ==  184320)
                327680:  [40,2,8],          // media type 0xFF: 40 cylinders, 2 heads (double-sided),  8 sectors/track, ( 640 total sectors x 512 bytes/sector ==  327680)
                368640:  [40,2,9],          // media type 0xFD: 40 cylinders, 2 heads (double-sided),  9 sectors/track, ( 720 total sectors x 512 bytes/sector ==  368640)
                737280:  [80,2,9],          // media type 0xF9: 80 cylinders, 2 heads (double-sided),  9 sectors/track, (1440 total sectors x 512 bytes/sector ==  737280)
                1228800: [80,2,15],         // media type 0xF9: 80 cylinders, 2 heads (double-sided), 15 sectors/track, (2400 total sectors x 512 bytes/sector == 1228800)
                1474560: [80,2,18],         // media type 0xF0: 80 cylinders, 2 heads (double-sided), 18 sectors/track, (2880 total sectors x 512 bytes/sector == 1474560)
                2949120: [80,2,36]          // media type 0xF0: 80 cylinders, 2 heads (double-sided), 36 sectors/track, (5760 total sectors x 512 bytes/sector == 2949120)
            };
            
            DiskAPI.MBR = {
                PARTITIONS: {
                    OFFSET:     0x1BE,
                    ENTRY: {
                        STATUS:         0x00,   // 0x80 if active
                        CHS_FIRST:      0x01,   // 3-byte CHS specifier
                        TYPE:           0x04,   // see TYPE.*
                        CHS_LAST:       0x05,   // 3-byte CHS specifier
                        LBA_FIRST:      0x08,
                        LBA_TOTAL:      0x0C,
                        LENGTH:         0x10
                    },
                    STATUS: {
                        ACTIVE:         0x80
                    },
                    TYPE: {
                        EMPTY:          0x00,
                        FAT12_PRIMARY:  0x01,   // DOS 2.0 and up (12-bit FAT)
                        FAT16_PRIMARY:  0x04    // DOS 3.0 and up (16-bit FAT)
                    }
                },
                SIG_OFFSET:     0x1FE,
                SIGNATURE:      0xAA55          // to be clear, the low byte (at offset 0x1FE) is 0x55 and the high byte (at offset 0x1FF) is 0xAA
            };
            
            /*
             * Boot sector offsets (and assorted constants) in DOS-compatible boot sectors (DOS 2.0 and up)
             *
             * WARNING: I've heard apocryphal stories about SIGNATURE being improperly reversed on some systems
             * (ie, 0x55AA instead 0xAA55) -- perhaps by a dyslexic programmer -- so be careful out there.
             */
            DiskAPI.BOOT = {
                JMP_OPCODE:     0x000,      // 1 byte for a JMP opcode, followed by a 1 or 2-byte offset
                OEM_STRING:     0x003,      // 8 bytes
                SIG_OFFSET:     0x1FE,
                SIGNATURE:      0xAA55      // to be clear, the low byte (at offset 0x1FE) is 0x55 and the high byte (at offset 0x1FF) is 0xAA
            };
            
            /*
             * BIOS Parameter Block (BPB) offsets in DOS-compatible boot sectors (DOS 2.0 and up)
             */
            DiskAPI.BPB = {
                SECTOR_BYTES:   0x00B,      // 2 bytes: bytes per sector (eg, 0x200 or 512)
                CLUSTER_SECS:   0x00D,      // 1 byte: sectors per cluster (eg, 1)
                RESERVED_SECS:  0x00E,      // 2 bytes: reserved sectors; ie, # sectors preceding the first FAT--usually just the boot sector (eg, 1)
                TOTAL_FATS:     0x010,      // 1 byte: FAT copies (eg, 2)
                ROOT_DIRENTS:   0x011,      // 2 bytes: root directory entries (eg, 0x40 or 64) 0x40 * 0x20 = 0x800 (1 sector is 0x200 bytes, total of 4 sectors)
                TOTAL_SECS:     0x013,      // 2 bytes: number of sectors (eg, 0x140 or 320); if zero, refer to LARGE_SECS
                MEDIA_TYPE:     0x015,      // 1 byte: media type (see DiskAPI.FAT.MEDIA_*)
                FAT_SECS:       0x016,      // 2 bytes: sectors per FAT (eg, 1)
                TRACK_SECS:     0x018,      // 2 bytes: sectors per track (eg, 8)
                TOTAL_HEADS:    0x01A,      // 2 bytes: number of heads (eg, 1)
                HIDDEN_SECS:    0x01C,      // 4 bytes: number of hidden sectors (always 0 for non-partitioned media)
                LARGE_SECS:     0x020       // 4 bytes: number of sectors if TOTAL_SECS is zero
            };
            
            /*
             * Media descriptor bytes for DOS-compatible FAT-formatted disks (stored in the first byte of the FAT)
             */
            DiskAPI.FAT = {
                MEDIA_160KB:    0xFE,       // 5.25-inch, 1-sided,  8-sector, 40-track
                MEDIA_180KB:    0xFC,       // 5.25-inch, 1-sided,  9-sector, 40-track
                MEDIA_320KB:    0xFF,       // 5.25-inch, 2-sided,  8-sector, 40-track
                MEDIA_360KB:    0xFD,       // 5.25-inch, 2-sided,  9-sector, 40-track
                MEDIA_720KB:    0xF9,       //  3.5-inch, 2-sided,  9-sector, 80-track
                MEDIA_1200KB:   0xF9,       //  3.5-inch, 2-sided, 15-sector, 80-track
                MEDIA_1440KB:   0xF0,       //  3.5-inch, 2-sided, 18-sector, 80-track
                MEDIA_2880KB:   0xF0        //  3.5-inch, 2-sided, 36-sector, 80-track
            };
            
            /*
             * Cluster constants for 12-bit FATs (CLUSNUM_FREE, CLUSNUM_RES and CLUSNUM_MIN are the same for all FATs)
             */
            DiskAPI.FAT12 = {
                MAX_CLUSTERS:   4084,
                CLUSNUM_FREE:   0,          // this should NEVER appear in cluster chain (except at the start of an empty chain)
                CLUSNUM_RES:    1,          // reserved; this should NEVER appear in cluster chain
                CLUSNUM_MIN:    2,          // smallest valid cluster number
                CLUSNUM_MAX:    0xFF6,      // largest valid cluster number
                CLUSNUM_BAD:    0xFF7,      // bad cluster; this should NEVER appear in cluster chain
                CLUSNUM_EOC:    0xFF8       // end of chain (actually, anything from 0xFF8-0xFFF indicates EOC)
            };
            
            /*
             * Cluster constants for 16-bit FATs (CLUSNUM_FREE, CLUSNUM_RES and CLUSNUM_MIN are the same for all FATs)
             */
            DiskAPI.FAT16 = {
                MAX_CLUSTERS:   65524,
                CLUSNUM_FREE:   0,          // this should NEVER appear in cluster chain (except at the start of an empty chain)
                CLUSNUM_RES:    1,          // reserved; this should NEVER appear in cluster chain
                CLUSNUM_MIN:    2,          // smallest valid cluster number
                CLUSNUM_MAX:    0xFFF6,     // largest valid cluster number
                CLUSNUM_BAD:    0xFFF7,     // bad cluster; this should NEVER appear in cluster chain
                CLUSNUM_EOC:    0xFFF8      // end of chain (actually, anything from 0xFFF8-0xFFFF indicates EOC)
            };
            
            /*
             * Directory Entry offsets (and assorted constants) in FAT disk images
             *
             * NOTE: Versions of DOS prior to 2.0 use INVALID exclusively to mark available directory entries; any entry marked
             * UNUSED will actually be considered USED.  In DOS 2.0 and up, UNUSED was added to indicate that all remaining entries
             * are unused, relieving it from having to initialize the rest of the sectors in the directory cluster(s).  And in fact,
             * you WILL encounter garbage in subsequent directory sectors if you attempt to read past an UNUSED entry.
             */
            DiskAPI.DIRENT = {
                NAME:           0x000,      // 8 bytes
                EXT:            0x008,      // 3 bytes
                ATTR:           0x00B,      // 1 byte
                MODTIME:        0x016,      // 2 bytes
                MODDATE:        0x018,      // 2 bytes
                CLUSTER:        0x01A,      // 2 bytes
                SIZE:           0x01C,      // 4 bytes (typically zero for subdirectories)
                LENGTH:         0x20,       // 32 bytes total
                UNUSED:         0x00,       // indicates this and all subsequent directory entries are unused
                INVALID:        0xE5        // indicates this directory entry is unused
            };
            
            /*
             * Possible values for DIRENT.ATTR
             */
            DiskAPI.ATTR = {
                READONLY:       0x01,       // PC-DOS 2.0 and up
                HIDDEN:         0x02,
                SYSTEM:         0x04,
                LABEL:          0x08,       // PC-DOS 2.0 and up
                SUBDIR:         0x10,       // PC-DOS 2.0 and up
                ARCHIVE:        0x20        // PC-DOS 2.0 and up
            };
            
            if (typeof module !== 'undefined') module.exports = DiskAPI;
            
          • dumpapi.js
            /**
             * @fileoverview Disk APIs, as defined by diskdump.js and consumed by disk.js
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2014-May-08
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of the JavaScript Machines Project (aka JSMachines) at <http://jsmachines.net/>
             * and <http://pcjs.org/>.
             *
             * JSMachines is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * JSMachines is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with JSMachines.
             * If not, see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some JSMachines files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * JSMachines Project for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            /*
             * Our "DiskDump API", such as it was, used to look like:
             *
             *      http://jsmachines.net/bin/convdisk.php?disk=/disks/pc/dos/ibm/2.00/PCDOS200-DISK1.json&format=img
             *
             * To make it (a bit) more "REST-like", the above request now looks like:
             *
             *      http://www.pcjs.org/api/v1/dump?disk=/disks/pc/dos/ibm/2.00/PCDOS200-DISK1.json&format=img
             *
             * Similarly, our "FileDump API" used to look like:
             *
             *      http://jsmachines.net/bin/convrom.php?rom=/devices/pc/bios/5150/1981-04-24.rom&format=json
             *
             * and that request now looks like:
             *
             *      http://www.pcjs.org/api/v1/dump?file=/devices/pc/bios/5150/1981-04-24.rom&format=json
             *
             * I don't think it makes sense to avoid "query" parameters, because blending the path of a disk image with the
             * the rest of the URL would be (a) confusing, and (b) more work to parse.
             */
            var DumpAPI = {
                ENDPOINT:       "/api/v1/dump",
                QUERY: {
                    DIR:        "dir",      // value is path of a directory (DiskDump only)
                    DISK:       "disk",     // value is path of a disk image (DiskDump only)
                    FILE:       "file",     // value is path of a ROM image file (FileDump only)
                    IMG:        "img",      // alias for DISK
                    PATH:       "path",     // value is path of a one or more files (DiskDump only)
                    FORMAT:     "format",   // value is one of FORMAT values below
                    COMMENTS:   "comments", // value is either "true" or "false"
                    DECIMAL:    "decimal",  // value is either "true" to force all numbers to decimal, "false" or undefined otherwise
                    MBHD:       "mbhd"      // value is hard disk size in Mb (formerly "mbsize") (DiskDump only)
                },
                FORMAT: {
                    JSON:       "json",     // default
                    DATA:       "data",     // same as "json", but built without JSON.stringify() (DiskDump only)
                    HEX:        "hex",      // deprecated
                    BYTES:      "bytes",    // displays data as hex bytes; normally used only when comments are enabled
                    IMG:        "img",      // returns the raw disk data (ie, using a Buffer object) (DiskDump only)
                    ROM:        "rom"       // returns the raw file data (ie, using a Buffer object) (FileDump only)
                }
            };
            
            /*
             * Because we use an overloaded API endpoint (ie, one that's shared with the FileDump module), we must
             * also provide a list of commands which, when combined with the endpoint, define a unique request. 
             */
            DumpAPI.asDiskCommands = [DumpAPI.QUERY.DIR, DumpAPI.QUERY.DISK, DumpAPI.QUERY.PATH];
            DumpAPI.asFileCommands = [DumpAPI.QUERY.FILE];
            
            if (typeof module !== 'undefined') module.exports = DumpAPI;
          • embed.js
            /**
             * @fileoverview C1Pjs and PCjs embedding functionality.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Aug-28
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of the JavaScript Machines Project (aka JSMachines) at <http://jsmachines.net/>
             * and <http://pcjs.org/>.
             *
             * JSMachines is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * JSMachines is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with JSMachines.
             * If not, see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some JSMachines files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * JSMachines Project for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            /* global window: true, XSLTProcessor: false, APPNAME: false, APPVERSION: false, DEBUG: true */
            
            if (typeof module !== 'undefined') {
                var Component;
                var str = require("./strlib");
                var web = require("./weblib");
            }
            
            /*
             * We now support asynchronous XML and XSL file loads; simply set fAsync (below) to true.
             *
             * NOTE: For that support to work, we have to keep track of the number of machines on the page
             * (ie, how many embedMachine() calls were issued), reduce the count as each machine XML file
             * is fully transformed into HTML, and when the count finally returns to zero, notify all the
             * machine component init() handlers.
             *
             * Also, to prevent those init() handlers from running prematurely, we must disable all page
             * notification events at the start of the embedding process (web.enablePageEvents(false)) and
             * re-enable them at the end (web.enablePageEvents(true)).
             */
            var cMachines = 0;
            var fAsync = true;
            
            /**
             * loadXML(sFile, idMachine, sStateFile, fResolve, display, done)
             *
             * This is the preferred way to load all XML and XSL files. It uses loadResource()
             * to load them as strings, which parseXML() can massage before parsing/transforming them.
             *
             * For example, since I've been unable to get the XSLT document() function to work inside any
             * XSL document loaded by JavaScript's XSLT processor, that has prevented me from dynamically
             * loading any XML machine file that uses the "ref" attribute to refer to and incorporate
             * another XML document.
             *
             * To solve that, I've added an fResolve parameter that tells parseXML() to fetch any
             * referenced documents ITSELF and insert them into the XML string prior to parsing, instead
             * of relying on the XSLT template to pull them in.  That fetching is handled by resolveXML(),
             * which iterates over the XML until all "refs" have been resolved (including any nested
             * references).
             *
             * Also, XSL files with a <!DOCTYPE [...]> cause MSIE's Microsoft.XMLDOM.loadXML() function
             * to choke, so I strip that out prior to parsing as well.
             *
             * TODO: Figure out why the XSLT document() function works great when the web browser loads an
             * XML file (and the associated XSL file) itself, but does not work when loading documents via
             * JavaScript XSLT support. Is it broken, is it a security issue, or am I just calling it wrong?
             *
             * @param {string} sXMLFile
             * @param {string|null|undefined} idMachine
             * @param {string|null|undefined} sStateFile
             * @param {boolean} fResolve is true to resolve any "ref" attributes
             * @param {function(string)} display
             * @param {function(string,Object)} done (string contains the unparsed XML string data, and Object contains a parsed XML object)
             */
            function loadXML(sXMLFile, idMachine, sStateFile, fResolve, display, done)
            {
                var doneLoadXML = function(sURLName, sXML, nErrorCode) {
                    if (nErrorCode) {
                        if (!sXML) sXML = "unable to load " + sXMLFile + " (" + nErrorCode + ")";
                        done(sXML, null);
                        return;
                    }
                    parseXML(sXML, sXMLFile, idMachine, sStateFile, fResolve, display, done);
                };
                display("Loading " + sXMLFile + "...");
                web.loadResource(sXMLFile, fAsync, null, null, doneLoadXML);
            }
            
            /**
             * parseXML(sXML, sXMLFile, idMachine, sStateFile, fResolve, display, done)
             *
             * Generates an XML document from an XML string. This function also provides a work-around for XSLT's
             * lack of support for the document() function (at least on some browsers), by replacing every reference
             * tag (ie, a tag with a "ref" attribute) with the contents of the referenced file.
             *
             * @param {string} sXML
             * @param {string|null} sXMLFile
             * @param {string|null|undefined} idMachine
             * @param {string|null|undefined} sStateFile
             * @param {boolean} fResolve is true to resolve any "ref" attributes; default is false
             * @param {function(string)} display
             * @param {function(string,Object)} done (string contains the unparsed XML string data, and Object contains a parsed XML object)
             */
            function parseXML(sXML, sXMLFile, idMachine, sStateFile, fResolve, display, done)
            {
                var buildXML = function(sXML, sError) {
                    if (sError) {
                        done(sError, null);
                        return;
                    }
                    if (idMachine) {
                        var sURL = sXMLFile;
                        if (sURL && sURL.indexOf('/') < 0) sURL = window.location.pathname + sURL;
                        sXML = sXML.replace(/(<machine[^>]*\sid=)(['"]).*?\2/, "$1$2" + idMachine + "$2" + (sStateFile? " state=$2" + sStateFile + "$2" : "") + (sURL? " url=$2" + sURL + "$2" : ""));
                    }
                    /*
                     * If the resource we requested is not really an XML file (or the file didn't exist and the server simply returned
                     * a message like "Cannot GET /devices/pc/machine/5150/cga/64kb/donkey/machine.xml"), we'd like to display a more
                     * meaningful message, because the XML DOM parsers will blithely return a document that contains nothing useful; eg:
                     *
                     *      This page contains the following errors:error on line 1 at column 1:
                     *      Document is empty Below is a rendering of the page up to the first error.
                     *
                     * Supposedly, the IE XML DOM parser will throw an exception, but I haven't tested that, and unless all other
                     * browsers do that, that's not helpful.
                     *
                     * The best I can do at this stage (assuming web.loadResource() didn't drop any error information on the floor)
                     * is verify that the requested resource "looks like" valid XML (in other words, it begins with a '<').
                     */
                    var xmlDoc = null;
                    if (sXML.charAt(0) == '<') {
                        try {
                            if (window.ActiveXObject || "ActiveXObject" in window) {        // second test is required for IE11 on Windows 8.1
                                /*
                                 * Another hack for MSIE, which fails to properly load XSL documents containing a <!DOCTYPE [...]> tag.
                                 */
                                if (!fResolve) {
                                    sXML = sXML.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g, "");
                                }
                                xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM");
                                xmlDoc.async = false;
                                xmlDoc['loadXML'](sXML);
                            } else {
                                xmlDoc = (new window.DOMParser()).parseFromString(sXML, "text/xml");
                            }
                        } catch(e) {
                            xmlDoc = null;
                            sXML = e.message;
                        }
                    } else {
                        sXML = "unrecognized XML: " + (sXML.length > 255? sXML.substr(0, 255) + "..." : sXML);
                    }
                    done(sXML, xmlDoc);
                };
                if (sXML) {
                    if (fResolve) {
                        resolveXML(sXML, display, buildXML);
                        return;
                    }
                    buildXML(sXML, null);
                    return;
                }
                done("no data" + (sXMLFile? " for file: " + sXMLFile : ""), null);
            }
            
            /**
             * resolveXML(sXML, display, done)
             *
             * Replaces every tag with a "ref" attribute with the contents of the corresponding file.
             *
             * TODO: Fix some of the limitations of this code, such as: 1) requiring the "ref" attribute
             * to appear as the tag's first attribute, 2) requiring the "ref" attribute to be double-quoted,
             * and 3) requiring the "ref" tag to be self-closing.
             *
             * @param {string} sXML
             * @param {function(string)} display
             * @param {function(string,(string|null))} done (the first string contains the resolved XML data, the second is for any error message)
             */
            function resolveXML(sXML, display, done)
            {
                var matchRef;
                var reRef = /<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g;
            
                if ((matchRef = reRef.exec(sXML))) {
            
                    var sRefFile = matchRef[2];
            
                    var doneReadXML = function(sURLName, sXMLRef, nErrorCode) {
                        if (nErrorCode || !sXMLRef) {
                            done(sXML, "unable to resolve XML reference: " + matchRef[0] + " (" + nErrorCode + ")");
                            return;
                        }
                        /*
                         * If there are additional attributes in the "referring" XML tag, we want to insert them
                         * into the "referred" XML tag; attributes that don't exist in the referred tag should be
                         * appended, and attributes that DO exist should be overwritten.
                         */
                        var sRefAttrs = matchRef[3];
                        if (sRefAttrs) {
                            var aXMLRefTag = sXMLRef.match(new RegExp("<" + matchRef[1] + "[^>]*>"));
                            if (aXMLRefTag) {
                                var sXMLNewTag = aXMLRefTag[0];
                                /*
                                 * Iterate over all the attributes in the "referring" XML tag (sRefAttrs)
                                 */
                                var matchAttr;
                                var reAttr = /( [a-z]+=)(['"])(.*?)\2/g;
                                while ((matchAttr = reAttr.exec(sRefAttrs))) {
                                    if (sXMLNewTag.indexOf(matchAttr[1]) < 0) {
                                        /*
                                         * This is the append case
                                         */
                                        sXMLNewTag = sXMLNewTag.replace(">", matchAttr[0] + ">");
                                    } else {
                                        /*
                                         * This is the overwrite case
                                         */
                                        sXMLNewTag = sXMLNewTag.replace(new RegExp(matchAttr[1] + "(['\"])(.*?)\\1"), matchAttr[0]);
                                    }
                                }
                                if (aXMLRefTag[0] != sXMLNewTag) {
                                    sXMLRef = sXMLRef.replace(aXMLRefTag[0], sXMLNewTag);
                                }
                            } else {
                                done(sXML, "missing <" + matchRef[1] + "> in " + sRefFile);
                                return;
                            }
                        }
            
                        /*
                         * Apparently when a Windows Azure server delivers one of my XML files, it may modify the first line:
                         *
                         *      <?xml version="1.0" encoding="UTF-8"?>\n
                         *
                         * I didn't determine exactly what it was doing at this point (probably just changing the \n to \r\n),
                         * but in any case, relaxing the following replace() solved it.
                         */
                        sXMLRef = sXMLRef.replace(/<\?xml[^>]*>[\r\n]*/, "");
            
                        sXML = sXML.replace(matchRef[0], sXMLRef);
            
                        resolveXML(sXML, display, done);
                    };
            
                    display("Loading " + sRefFile + "...");
                    web.loadResource(sRefFile, fAsync, null, null, doneReadXML);
                    return;
                }
                done(sXML, null);
            }
            
            /**
             * embedMachine(sName, sVersion, idElement, sXMLFile, sXSLFile, sStateFile)
             *
             * This allows to you embed a machine on a web page, by transforming the machine XML into HTML.
             *
             * @param {string} sName is the app name (eg, "PCjs")
             * @param {string} sVersion is the app version (eg, "1.15.7")
             * @param {string} idElement
             * @param {string} sXMLFile
             * @param {string} sXSLFile
             * @param {string} [sStateFile]
             * @return {boolean} true if successful, false if error
             */
            function embedMachine(sName, sVersion, idElement, sXMLFile, sXSLFile, sStateFile)
            {
                var eMachine, eWarning, fSuccess = true;
            
                cMachines++;
            
                var doneMachine = function() {
                    Component.assert(cMachines > 0);
                    if (!--cMachines) {
                        if (fAsync) web.enablePageEvents(true);
                    }
                };
            
                var displayError = function(sError) {
                    Component.log(sError);
                    displayMessage("Error: " + sError);
                    if (fSuccess) doneMachine();
                    fSuccess = false;
                };
            
                var displayMessage = function(sMessage) {
                    if (eWarning === undefined) {
                        /*
                         * Our MarkOut module (in convertMDMachineLinks()) creates machine containers that look like:
                         *
                         *      <div id="' + sMachineID + '" class="machine-placeholder"><p>Embedded PC</p><p class="machine-warning">...</p></div>
                         *
                         * with the "machine-warning" paragraph pre-populated with a warning message that the user will
                         * see if nothing at all happens.  But hopefully, in the normal case (and especially the error case),
                         * *something* will have happened.
                         *
                         * Note that it is the HTMLOut module (in processMachines()) that ultimately decides which scripts to
                         * include and then generates the embedPC() and/or embedC1P() calls.
                         */
                        var aeWarning = (eMachine && Component.getElementsByClass(eMachine, "machine-warning"));
                        eWarning = (aeWarning && aeWarning[0]) || eMachine;
                    }
                    if (eWarning) eWarning.innerHTML = str.escapeHTML(sMessage);
                };
            
                try {
                    eMachine = window.document.getElementById(idElement);
                    if (eMachine) {
                        var sAppClass = sName.toLowerCase();        // eg, "pcjs" or "c1pjs"
                        if (!sXSLFile) {
                            /*
                             * Now that PCjs is an open-source project, we can make the following test more flexible,
                             * and revert to the internal template if DEBUG *or* internal version (instead of *and*).
                             *
                             * Third-party sites that don't use the PCjs server will ALWAYS want to specify a fully-qualified
                             * path to the XSL file, unless they choose to mirror our folder structure.
                             */
                            if (DEBUG || sVersion == "1.x.x") {
                                sXSLFile = "/modules/" + sAppClass + "/templates/components.xsl";
                            } else {
                                sXSLFile = "/versions/" + sAppClass + "/" + sVersion + "/components.xsl";
                            }
                        }
                        var loadXSL = function(sXML, xml) {
                            if (!xml) {
                                displayError(sXML);
                                return;
                            }
                            var transformXML = function(sXSL, xsl) {
                                if (!xsl) {
                                    displayError(sXSL);
                                    return;
                                }
                                if (xsl) {
                                    /*
                                     * The <machine> template in components.xsl now generates a "machine div" that makes
                                     * the div we required the caller of embedMachine() to provide redundant, so instead
                                     * of appending this fragment to the caller's node, we REPLACE the caller's node.
                                     * This works only because because we ALSO inject the caller's "machine div" ID into
                                     * the fragment's ID during parseXML().
                                     *
                                     *      eMachine.innerHTML = sFragment;
                                     *
                                     * Also, if the transform function fails, make sure you're using the appropriate
                                     * "components.xsl" and not a "machine.xsl", because the latter will not produce valid
                                     * embeddable HTML (and is the most common cause of failure at this final stage).
                                     */
                                    displayMessage("Processing " + sXMLFile + "...");
                                    if (window.ActiveXObject || "ActiveXObject" in window) {        // second test is required for IE11 on Windows 8.1
                                        var sFragment = xml['transformNode'](xsl);
                                        if (sFragment) {
                                            eMachine.outerHTML = sFragment;
                                            doneMachine();
                                        } else {
                                            displayError("transformNodeToObject failed");
                                        }
                                    }
                                    else if (window.document.implementation && window.document.implementation.createDocument) {
                                        var xsltProcessor = new XSLTProcessor();
                                        xsltProcessor['importStylesheet'](xsl);
                                        var eFragment = xsltProcessor['transformToFragment'](xml, window.document);
                                        if (eFragment) {
                                            if (eMachine.parentNode) {
                                                eMachine.parentNode.replaceChild(eFragment, eMachine);
                                                doneMachine();
                                            } else {
                                                displayError("invalid machine element: " + idElement);
                                            }
                                        } else {
                                            displayError("transformToFragment failed");
                                        }
                                    } else {
                                        /*
                                         * Perhaps I should have performed this test at the outset; on the other hand, I'm
                                         * not aware of any browsers don't support one or both of the above XSLT transformation
                                         * methods, so treat this as a bug.
                                         */
                                        displayError("unable to transform XML: unsupported browser");
                                    }
                                } else {
                                    displayError("failed to load XSL file: " + sXSLFile);
                                }
                            };
                            if (xml) {
                                loadXML(sXSLFile, null, null, false, displayMessage, transformXML);
                            } else {
                                displayError("failed to load XML file: " + sXMLFile);
                            }
                        };
                        if (sXMLFile.charAt(0) != '<') {
                            loadXML(sXMLFile, idElement, sStateFile, true, displayMessage, loadXSL);
                        } else {
                            parseXML(sXMLFile, null, idElement, sStateFile, false, displayMessage, loadXSL);
                        }
                    } else {
                        displayError("missing machine element: " + idElement);
                    }
                } catch(e) {
                    displayError(e.message);
                }
                return fSuccess;
            }
            
            /**
             * embedC1P(idElement, sXMLFile, sXSLFile)
             *
             * @param {string} idElement
             * @param {string} sXMLFile
             * @param {string} sXSLFile
             * @return {boolean} true if successful, false if error
             */
            function embedC1P(idElement, sXMLFile, sXSLFile)
            {
                if (fAsync) web.enablePageEvents(false);
                return embedMachine("C1Pjs", APPVERSION, idElement, sXMLFile, sXSLFile);
            }
            
            /**
             * embedPC(idElement, sXMLFile, sXSLFile, sStateFile)
             *
             * @param {string} idElement
             * @param {string} sXMLFile
             * @param {string} sXSLFile
             * @param {string} [sStateFile]
             * @return {boolean} true if successful, false if error
             */
            function embedPC(idElement, sXMLFile, sXSLFile, sStateFile)
            {
                if (fAsync) web.enablePageEvents(false);
                return embedMachine("PCjs", APPVERSION, idElement, sXMLFile, sXSLFile, sStateFile);
            }
            
            /**
             * Prevent the Closure Compiler from renaming functions we want to export, by adding them
             * as (named) properties of a global object.
             */
            if (APPNAME == "PCjs") {
                window['embedPC'] = embedPC;
            }
            
            if (APPNAME == "C1Pjs") {
                window['embedC1P'] = embedC1P;
            }
            
            window['enableEvents'] = web.enablePageEvents;
            window['sendEvent'] = web.sendPageEvent;
            
          • externs.js
            /**
             * @fileoverview Externs used by PCjs and C1Pjs (for the Closure Compiler)
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2012-Dec-04
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of the JavaScript Machines Project (aka JSMachines) at <http://jsmachines.net/>
             * and <http://pcjs.org/>.
             *
             * JSMachines is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * JSMachines is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with JSMachines.
             * If not, see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some JSMachines files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * JSMachines Project for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            var global;
            
            // var webkitAudioContext;
            
          • netlib.js
            /**
             * @fileoverview Net-related functions
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a> (@jeffpar)
             * @version 1.0
             * Created 2014-03-16
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of the JavaScript Machines Project (aka JSMachines) at <http://jsmachines.net/>
             * and <http://pcjs.org/>.
             *
             * JSMachines is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * JSMachines is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with JSMachines.
             * If not, see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some JSMachines files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * JSMachines Project for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            /* global Buffer: false */
            
            var net = {};
            
            if (typeof module !== 'undefined') {
                var sServerRoot;
                var fs = require("fs");
                var http = require("http");
                var path = require("path");
                var url = require("url");
                var str = require("./strlib");
            }
            
            /*
             * The following are (super-secret) commands that can be added to the URL to enable special features.
             *
             * Our super-secret command processor is affectionately call Gort, and while Gort doesn't understand commands
             * like "Klaatu barada nikto", it does understand commands like "debug" and "rebuild"; eg:
             *
             *      http://www.pcjs.org/?gort=debug
             *
             * hasParm() detects the presence of the specified command, and propagateParms() is a URL filter that ensures
             * any commands listed in asPropagate are passed through to all other URLs on the same page; using any of these
             * commands also forces the page to be rebuilt and not cached (since we would never want a cached "index.html" to
             * contain/expose any of these commands).
             */
            net.GORT_COMMAND    = "gort";
            net.GORT_DEBUG      = "debug";          // use this to force uncompiled JavaScript even on a Release server
            net.GORT_NODEBUG    = "nodebug";        // use this to force uncompiled JavaScript but with DEBUG code disabled
            net.GORT_RELEASE    = "release";        // use this to force the use of compiled JavaScript even on a Debug server
            net.GORT_REBUILD    = "rebuild";        // use this to force the "index.html" in the current directory to be rebuilt
            
            net.REVEAL_COMMAND  = "reveal";
            net.REVEAL_PDFS     = "pdfs";
            
            /*
             * This is a list of the URL parameters that propagateParms() will propagate from the requester's URL to
             * other URLs provided by the requester.
             */
            var asPropagate  = [net.GORT_COMMAND, "autostart"];
            
            /**
             * hasParm(sParm, sValue, req)
             *
             * @param {string} sParm
             * @param {string|null} sValue (pass null to check for the presence of ANY sParm)
             * @param {Object} [req] is the web server's (ie, Express) request object, if any
             * @return {boolean} true if the request Object contains the specified parameter/value, false if not
             *
             * TODO: Consider whether sParm === null should check for the presence of ANY parameter in asPropagate.
             */
            net.hasParm = function(sParm, sValue, req)
            {
                return (req && req.query && req.query[sParm] && (!sValue || req.query[sParm] == sValue));
            };
            
            /**
             * propagateParms(sURL, req)
             *
             * Propagates any "special" query parameters (as listed in asPropagate) from the given
             * request object (req) to the given URL (sURL).
             *
             * We do not modify an sURL that already contains a '?' OR that begins with a protocol
             * (eg, http:, mailto:, etc), in order to keep this function simple, since it's only for
             * debugging purposes anyway.  I also considered blowing off any URLs with a '#' for the
             * same reason, since any hash string must follow any query parameters, but stripping
             * and re-appending the hash string is pretty trivial, so we do handle that.
             *
             * TODO: Make propagateParms() more general-purpose (eg, capable of detecting any URL
             * to the same site, and capable of merging any of our "special" query parameters with any
             * existing query parameters.
             *
             * @param {string|null} sURL
             * @param {Object} [req] is the web server's (ie, Express) request object, if any
             * @return {string} massaged sURL
             */
            net.propagateParms = function(sURL, req)
            {
                if (sURL !== null && sURL.indexOf('?') < 0) {
                    var i;
                    var sHash = "";
                    if ((i = sURL.indexOf('#')) >= 0) {
                        sHash = sURL.substr(i);
                        sURL = sURL.substr(0, i);
                    }
                    var match = sURL.match(/^([a-z])+:(.*)/);
                    if (!match && req && req.query) {
                        for (i = 0; i < asPropagate.length; i++) {
                            var sQuery = asPropagate[i];
                            var sValue;
                            if ((sValue = req.query[sQuery])) {
                                var sParm = (sURL.indexOf('?') < 0? '?' : '&');
                                sParm += sQuery + '=';
                                if (sURL.indexOf(sParm) < 0) sURL += sParm + encodeURIComponent(sValue);
                            }
                        }
                    }
                    sURL += sHash;
                }
                return sURL;
            };
            
            /**
             * encodeURL(sURL, req, fDebug)
             *
             * Used to encodes any URLs presented on the current page, using this 3-step (um, 4-step) process:
             *
             *  1) Replace any backslashes with slashes, in case the URL was derived from a file system path
             *  2) Remap links that begin with "static/" to the corresponding URL at "http://static.pcjs.org/"
             *  3) Transform any "htmlspecialchars" into the corresponding entities, using encodeURI()
             *  4) Massage the result with net.propagateParms(), so that any special parameters are passed along
             *
             * @param {string} sURL
             * @param {Object} req is the web server's (ie, Express) request object, if any
             * @param {boolean} [fDebug]
             * @return {string} encoded URL
             */
            net.encodeURL = function(sURL, req, fDebug)
            {
                if (sURL) {
                    sURL = sURL.replace(/\\/g, '/');
                    if (!fDebug) {
                        if (sURL.match(/^[^:?]*static\//)) {
                            if (sURL.charAt(0) != '/') sURL = path.join(req.path, sURL);
                            sURL = "http://static.pcjs.org" + sURL.replace("/static/", "/");
                        }
                    }
                    return net.propagateParms(encodeURI(sURL), req);
                }
                return sURL;
            };
            
            /**
             * isRemote(sPath)
             *
             * @param {string} sPath
             * @return {boolean} true if sPath is a (supported) remote path, false if not
             *
             * TODO: Add support for FTP? HTTPS? Anything else?
             */
            net.isRemote = function(sPath)
            {
                return (sPath.indexOf("http:") === 0);
            };
            
            /**
             * getStat(sURL, done)
             *
             * @param {string} sURL
             * @param {function(Error,Object)} done
             */
            net.getStat = function(sURL, done)
            {
                var options = url.parse(sURL);
                options.method = "HEAD";
                options.path = options.pathname;    // TODO: Determine the necessity of aliasing this
                var req = http.request(options, function(res) {
                    var err = null;
                    var stat = null;
                    // console.log(JSON.stringify(res.headers));
                    if (res.statusCode == 200) {
                        /*
                         * Apparently Node lower-cases response headers (at least incoming headers, despite
                         * lots of amusing whining by certain people in the Node community), which seems like
                         * a good thing, because that means I can do two simple key look-ups.
                         */
                        var sLength = res.headers['content-length'];
                        var sModified = res.headers['last-modified'];
                        stat = {
                            size: sLength? parseInt(sLength, 10) : -1,
                            mtime: sModified? new Date(sModified) : null,
                            remote: true            // an additional property we provide to indicate this is not your normal stats object
                        };
                    } else {
                        err = new Error("unexpected response code: " + res.statusCode);
                    }
                    done(err, stat);
                });
                req.on('error', function(err) {
                    done(err, null);
                });
                req.end();
            };
            
            /**
             * getFile(sURL, sEncoding, done)
             *
             * @param {string} sURL is the source file
             * @param {string|null} sEncoding is the encoding to assume, if any
             * @param {function(Error,number,(string|Buffer))} done receives an Error, an HTTP status code, and a Buffer (if any)
             *
             * TODO: Add support for FTP? HTTPS? Anything else?
             */
            net.getFile = function(sURL, sEncoding, done)
            {
                /*
                 * Buffer objects are a fixed size, so my choices are: 1) call getStat() first, hope it returns
                 * the true size, and then preallocate a buffer; or 2) create a new, larger buffer every time a new
                 * chunk arrives.  The latter seems best.
                 *
                 * However, if an encoding is given, we'll simply concatenate all the data into a String and return
                 * that instead.  Note that the incoming data is always a Buffer, but concatenation with a String
                 * performs an implied "toString()" on the Buffer.
                 *
                 * WARNING: Even when an encoding is provided, we don't make any attempt to verify that the incoming
                 * data matches that encoding.
                 */
                var sFile = "";
                var bufFile = null;
                http.get(sURL, function(res) {
                    res.on('data', function(data) {
                        if (sEncoding) {
                            sFile += data;
                            return;
                        }
                        if (!bufFile) {
                            bufFile = data;
                            return;
                        }
                        /*
                         * We need to grow bufFile.  I used to do this myself, using the "copy" method:
                         *
                         *      buf.copy(targetBuffer, [targetStart], [sourceStart], [sourceEnd])
                         *
                         * which defaults to 0 for [targetStart] and [sourceStart], but the docs don't clearly
                         * define the default value for [sourceEnd].  They say "buffer.length", but there is no
                         * parameter here named "buffer".  Let's hope that in the case of "bufFile.copy(buf)"
                         * they meant "bufFile.length".
                         *
                         * However, it turns out this is moot, because there's a new kid in town: Buffer.concat().
                         *
                         *      buf = new Buffer(bufFile.length + data.length);
                         *      bufFile.copy(buf);
                         *      data.copy(buf, bufFile.length);
                         *      bufFile = buf;
                         */
                        bufFile = Buffer.concat([bufFile, data], bufFile.length + data.length);
                    }).on('end', function() {
                        /*
                         * TODO: Decide what to do when res.statusCode is actually an error code (eg, 404), because
                         * in such cases, the file content will likely just be an HTML error page.
                         */
                        if (res.statusCode < 400) {
                            done(null, res.statusCode, sEncoding? sFile : bufFile);
                        } else {
                            done(new Error(sEncoding? sFile : bufFile), res.statusCode, null);
                        }
                    }).on('error', function(err) {
                        done(err, res.statusCode, null);
                    });
                });
            };
            
            /**
             * downloadFile(sURL, sFile, done)
             *
             * @param {string} sURL is the source file
             * @param {string} sFile is a fully-qualified target file
             * @param {function(Error,number)} done is a callback that receives an Error and a HTTP status code
             */
            net.downloadFile = function(sURL, sFile, done)
            {
                var file = fs.createWriteStream(sFile);
            
                /*
                 * http.get() accepts a "url" string in lieu of an "options" object; it automatically builds
                 * the latter from the former using url.parse(). This is good, because it relieves me from
                 * building my own "options" object, and also from wondering why http functions expect "options"
                 * to contain a "path" property, whereas url.parse() returns a "pathname" property.
                 *
                 * Either the documentation isn't quite right for url.parse() or http.request() (the big brother
                 * of http.get), or one of those "options" properties is aliased to the other, or...?
                 */
                http.get(sURL, function(res) {
                    res.on('data', function(data) {
                        file.write(data);
                    }).on('end', function() {
                        file.end();
                        /*
                         * TODO: We should try to update the file's modification time to match the 'last-modified'
                         * response header value, if any.
                         *
                         * TODO: Decide what to do when res.statusCode is actually an error code (eg, 404), because
                         * in such cases, the file content will likely just be an HTML error page.
                         */
                        done(null, res.statusCode);
                    }).on('error', function(err) {
                        done(err, res.statusCode);
                    });
                });
            };
            
            /**
             * loadResource(sURL, fAsync, data, componentNotify, fnNotify, pNotify)
             *
             * Request the specified resource (sURL), and once the request is complete,
             * optionally call the specified method (fnNotify) of the specified component (componentNotify).
             *
             * TODO: Figure out how we can strongly type the fnNotify parameter, because the Closure Compiler has issues with:
             *
             *      {function(this:Component, string, (string|null), number, (number|string|null|Object|Array|undefined))} [fnNotify]
             *
             * NOTE: This function is a mirror image of the weblib version, for server-side component testing within Node;
             * since it is NOT intended for production use, it may make liberal use of synchronous functions, warning messages, etc.
             *
             * @param {string} sURL
             * @param {boolean} [fAsync] is true for an asynchronous request
             * @param {Object|null} [data] for a POST request (default is a GET request)
             * @param {Component} [componentNotify]
             * @param {function(...)} [fnNotify]
             * @param {number|string|null|Object|Array} [pNotify] optional fnNotify parameter
             * @return {Array} containing errorCode and responseText (empty array if async request)
             */
            net.loadResource = function(sURL, fAsync, data, componentNotify, fnNotify, pNotify) {
                var nErrorCode = -1;
                var sResponse = null;
                if (net.isRemote(sURL)) {
                    console.log('net.loadResource("' + sURL + '"): unimplemented');
                } else {
                    if (!sServerRoot) {
                        sServerRoot = path.join(path.dirname(fs.realpathSync(__filename)), "../../../");
                    }
                    var sBaseName = str.getBaseName(sURL);
                    var sFile = path.join(sServerRoot, sURL);
                    if (fAsync) {
                        fs.readFile(sFile, {encoding: "utf8"}, function(err, s) {
                            /*
                             * TODO: If err is set, is there an error code we should return (instead of -1)?
                             */
                            if (!err) {
                                sResponse = s;
                                nErrorCode = 0;
                            }
                            if (fnNotify) {
                                if (!componentNotify) {
                                    fnNotify(sBaseName, sResponse, nErrorCode, pNotify);
                                } else {
                                    fnNotify.call(componentNotify, sBaseName, sResponse, nErrorCode, pNotify);
                                }
                            }
                        });
                        return [];
                    } else {
                        try {
                            sResponse = fs.readFileSync(sFile, {encoding: "utf8"});
                            nErrorCode = 0;
                        } catch(err) {
                            /*
                             * TODO: If err is set, is there an error code we should return (instead of -1)?
                             */
                            console.log(err.message);
                        }
                        if (fnNotify) {
                            if (!componentNotify) {
                                fnNotify(sBaseName, sResponse, nErrorCode, pNotify);
                            } else {
                                fnNotify.call(componentNotify, sBaseName, sResponse, nErrorCode, pNotify);
                            }
                        }
                    }
                }
                return [nErrorCode, sResponse];
            };
            
            if (typeof module !== 'undefined') module.exports = net;
            
          • nodebug.js
            /**
             * @fileoverview Compile-time definitions for non-DEBUG configurations.
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2014-Aug-22
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
             * at <http://jsmachines.net/> and <http://pcjs.org/>.
             *
             * PCjs is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with PCjs.  If not,
             * see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some PCjs files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * PCjs program for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            /* global DEBUG: true */
            
            /*
             * In the compiled case, we rely on the Closure Compiler to override DEBUG, setting it to false,
             * so that all DEBUG-only code will be removed by the compiler.
             *
             * However, when we're in "development mode" and want to run uncompiled code without any DEBUG-only
             * code, we must arrange for this additional file, nodebug.js, to be loaded as early as possible,
             * which will then set DEBUG to false at runtime.
             */
            DEBUG = false;
            
          • proclib.js
            /**
             * @fileoverview Process-related helper functions
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a> (@jeffpar)
             * @version 1.0
             * Created 2014-05-07
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of the JavaScript Machines Project (aka JSMachines) at <http://jsmachines.net/>
             * and <http://pcjs.org/>.
             *
             * JSMachines is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * JSMachines is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with JSMachines.
             * If not, see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some JSMachines files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * JSMachines Project for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            var proc = {};
            
            /**
             * getArgs()
             *
             * Processes command-line arguments.  Arguments may be introduced by either
             * a double-hyphen (--) or a long dash (—), and argument values, if any, must be
             * separated by an "=" without any intervening whitespace.  Arguments without
             * an explicit value default to true, and any argument appearing more than once
             * is automatically converted to an Array.
             * 
             * Single-hyphen (-) arguments are allowed as well; they are treated as a series
             * of single-character arguments, each set to true, and any of these arguments
             * appearing more than once is discarded.
             *
             * @return {{argc:number, argv:{}}}
             */
            proc.getArgs = function() {
                var argc = 0;
                var argv = {};
                for (var i = 2; i < process.argv.length; i++) {
                    var j, sSep;
                    var sArg = process.argv[i];
                    if (!sArg.indexOf(sSep = "--") || !sArg.indexOf(sSep = "—")) {
                        sArg = sArg.substr(sSep.length);
                        var sValue = true;
                        j = sArg.indexOf("=");
                        if (j > 0) {
                            sValue = sArg.substr(j+1);
                            sArg = sArg.substr(0, j);
                            sValue = (sValue == "true")? true : ((sValue == "false")? false : sValue);
                        }
                        if (argv[sArg] === undefined) {
                            argc++;
                            argv[sArg] = sValue;
                        } else {
                            // console.log("too many '" + sArg + "' arguments");
                            if (typeof argv[sArg] == "string") {
                                argv[sArg] = [argv[sArg]];
                            }
                            argv[sArg].push(sValue);
                        }
                    } else if (!sArg.indexOf("-")) {
                        for (j = 1; j < sArg.length; j++) {
                            var ch = sArg.charAt(j);
                            if (argv[ch] === undefined) {
                                argv[ch] = true;
                                argc++;
                            }
                        } 
                    }
                }
                return {argc: argc, argv: argv};
            };
            
            if (typeof module !== 'undefined') module.exports = proc;
            
          • reportapi.js
            /**
             * @fileoverview Report API, as defined by httpapi.js
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2014-May-13
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of the JavaScript Machines Project (aka JSMachines) at <http://jsmachines.net/>
             * and <http://pcjs.org/>.
             *
             * JSMachines is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * JSMachines is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with JSMachines.
             * If not, see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some JSMachines files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * JSMachines Project for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            var ReportAPI = {
                ENDPOINT:       "/api/v1/report",
                QUERY: {
                    APP:        "app",
                    VER:        "ver",
                    URL:        "url",
                    USER:       "user",
                    TYPE:       "type",
                    DATA:       "data"
                },
                TYPE: {
                    BUG:        "bug"
                },
                RES: {
                    OK:         "Thank you"
                }
            };
            
            if (typeof module !== 'undefined') module.exports = ReportAPI;
          • sockets.js
            /**
             * @fileoverview Experimental code included by HTMLOut() only if "--sockets"
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2014-Apr-29
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of the JavaScript Machines Project (aka JSMachines) at <http://jsmachines.net/>
             * and <http://pcjs.org/>.
             *
             * JSMachines is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * JSMachines is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with JSMachines.
             * If not, see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some JSMachines files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * JSMachines Project for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            /* global io: false */
            
            // connect to the socket server
            var socket = io.connect();
            
            // if we get an "info" emit from the socket server then console.log the data we receive
            socket.on('info', function (data) {
                console.log(data);
            });
          • strlib.js
            /**
             *  @fileoverview String-related helper functions
             *  @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a> (@jeffpar)
             *  @version 1.0
             *  Created 2014-03-09
             *
             *  Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of the JavaScript Machines Project (aka JSMachines) at <http://jsmachines.net/>
             * and <http://pcjs.org/>.
             *
             * JSMachines is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * JSMachines is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with JSMachines.
             * If not, see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some JSMachines files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * JSMachines Project for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            var str = {};
            
            /**
             * isValidInt(s, base)
             *
             * The built-in parseInt() function has the annoying feature of returning a partial value (ie,
             * up to the point where it encounters an invalid character); eg, parseInt("foo", 16) returns 0xf.
             * So use this function to validate the entire string.
             *
             * @param {string} s is the string representation of some number
             * @param {number} [base] is the radix of the number represented above (only 10 and 16 are supported)
             * @return {boolean} true if valid, false if invalid (or the specified base isn't supported)
             */
            str.isValidInt = function(s, base)
            {
                if (!base || base == 10) return s.match(/^[0-9]+$/) !== null;
                if (base == 16) return s.match(/^[0-9a-f]+$/i) !== null;
                return false;
            };
            
            /**
             * parseInt(s, base)
             *
             * This is a wrapper around the built-in parseInt() function, which recognizes certain prefixes (eg,
             * '$' or "0x" for hex) and suffixes (eg, 'h' for hex or '.' for decimal), and then calls isValidInt()
             * to ensure we don't get partial values (see isValidInt() for details).
             *
             * @param {string} s is the string representation of some number
             * @param {number} [base] is the default radix to use (default is 16); can be overridden by prefixes/suffixes
             * @return {number|undefined} corresponding value, or undefined if invalid
             */
            str.parseInt = function(s, base)
            {
                var value;
                if (s) {
                    if (!base) base = 16;
                    if (s.charAt(0) == '$') {
                        base = 16;
                        s = s.substr(1);
                    } else if (s.substr(0, 2) == "0x") {
                        base = 16;
                        s = s.substr(2);
                    } else {
                        var chSuffix = s.charAt(s.length-1).toLowerCase();
                        if (chSuffix == 'h') {
                            base = 16;
                            chSuffix = null;
                        }
                        else if (chSuffix == '.') {
                            base = 10;
                            chSuffix = null;
                        }
                        if (chSuffix === null) s = s.substr(0, s.length-1);
                    }
                    var v;
                    if (str.isValidInt(s, base) && !isNaN(v = parseInt(s, base))) {
                        value = v|0;
                    }
                }
                return value;
            };
            
            /**
             * toHex(n, cch)
             *
             * Converts an integer to hex, with the specified number of digits (up to the default of 8).
             *
             * You might be tempted to use the built-in n.toString(16) instead, but it doesn't zero-pad and it
             * doesn't properly convert negative values; for example, if n is -2147483647, then n.toString(16)
             * will return "-7fffffff" instead of "80000001".  Moreover, if n is undefined, n.toString() will throw
             * an exception, whereas toHex() will simply return '?' characters.
             *
             * NOTE: The following work-around (adapted from code found on StackOverflow) would be another solution,
             * taking care of negative values, zero-padding, and upper-casing, but not null/undefined/NaN values:
             *
             *      s = (n < 0? n + 0x100000000 : n).toString(16);
             *      s = "00000000".substr(0, 8 - s.length) + s;
             *      s = s.substr(0, cch).toUpperCase();
             *
             * @param {number|null|undefined} n is a 32-bit value
             * @param {number} [cch] is the desired number of hex digits (8 is both the default and the maximum)
             * @return {string} the hex representation of n
             */
            str.toHex = function(n, cch)
            {
                var s = "";
                if (cch === undefined) {
                    cch = 8;
                } else {
                    if (cch > 8) cch = 8;
                }
                /*
                 * An initial "falsey" check for null takes care of both null and undefined;
                 * we can't rely entirely on isNaN(), because isNaN(null) returns false, oddly enough.
                 */
                if (n == null || isNaN(n)) {
                    while (cch-- > 0) s = '?' + s;
                } else {
                    while (cch-- > 0) {
                        var d = n & 0xf;
                        d += (d >= 0 && d <= 9? 0x30 : 0x41 - 10);
                        s = String.fromCharCode(d) + s;
                        n >>= 4;
                    }
                }
                return s;
            };
            
            /**
             * toHexByte(b)
             *
             * Alias for "0x" + str.toHex(b, 2)
             *
             * @param {number|null|undefined} b is a byte value
             * @return {string} the hex representation of b
             */
            str.toHexByte = function(b)
            {
                return "0x" + str.toHex(b, 2);
            };
            
            /**
             * toHexWord(w)
             *
             * Alias for "0x" + str.toHex(w, 4)
             *
             * @param {number|null|undefined} w is a word (16-bit) value
             * @return {string} the hex representation of w
             */
            str.toHexWord = function(w)
            {
                return "0x" + str.toHex(w, 4);
            };
            
            /**
             * toHexLong(l)
             *
             * Alias for "0x" + toHex(l)
             *
             * @param {number|null|undefined} l is a dword (32-bit) value
             * @return {string} the hex representation of w
             */
            str.toHexLong = function(l)
            {
                return "0x" + str.toHex(l);
            };
            
            /**
             * getBaseName(sFileName, fStripExt)
             *
             * This is a poor-man's version of Node's path.basename(), which Node-only components should use instead.
             *
             * Note that fStripExt can be used to strip ANY extension, whereas path.basename() will strip the extension only
             * if it matches the second parameter (eg, path.basename("/foo/bar/baz/asdf/quux.html", ".html") returns "quux").
             *
             * @param {string} sFileName
             * @param {boolean} [fStripExt]
             * @return {string}
             */
            str.getBaseName = function(sFileName, fStripExt)
            {
                var sBaseName = sFileName;
            
                var i = sFileName.lastIndexOf('/');
                if (i >= 0) sBaseName = sFileName.substr(i + 1);
            
                /*
                 * This next bit is a kludge to clean up names that are part of a URL that includes unsightly query parameters.
                 */
                i = sBaseName.indexOf('&');
                if (i > 0) sBaseName = sBaseName.substr(0, i);
            
                if (fStripExt) {
                    i = sBaseName.lastIndexOf(".");
                    if (i > 0) {
                        sBaseName = sBaseName.substring(0, i);
                    }
                }
                return sBaseName;
            };
            
            /**
             * getExtension(sFileName)
             *
             * This is a poor-man's version of Node's path.extname(), which Node-only components should use instead.
             *
             * Note that we EXCLUDE the period from the returned extension, whereas path.extname() includes it.
             *
             * @param {string} sFileName
             * @return {string} the filename's extension (in lower-case and EXCLUDING the "."), or an empty string
             */
            str.getExtension = function(sFileName)
            {
                var sExtension = "";
                var i = sFileName.lastIndexOf(".");
                if (i >= 0) {
                    sExtension = sFileName.substr(i + 1).toLowerCase();
                }
                return sExtension;
            };
            
            /**
             * endsWith(s, sSuffix)
             *
             * @param {string} s
             * @param {string} sSuffix
             * @return {boolean} true if s ends with sSuffix, false if not
             */
            str.endsWith = function(s, sSuffix)
            {
                return s.indexOf(sSuffix, s.length - sSuffix.length) !== -1;
            };
            
            str.aHTMLEscapeMap = {
                '&': '&amp;',
                '<': '&lt;',
                '>': '&gt;',
                '"': '&quot;',
                "'": '&#039;'
            };
            
            /**
             * escapeHTML(sHTML)
             *
             * @param {string} sHTML
             * @return {string} with HTML entities "escaped", similar to PHP's htmlspecialchars()
             */
            str.escapeHTML = function(sHTML)
            {
                return sHTML.replace(/[&<>"']/g, function(m) {
                    return str.aHTMLEscapeMap[m];
                });
            };
            
            /**
             * replaceAll(sFind, sReplace, s)
             *
             * @param {string} sFind
             * @param {string} sReplace
             * @param {string} s
             * @return {string}
             */
            str.replaceAll = function(sFind, sReplace, s)
            {
                var a = {};
                a[sFind] = sReplace;
                return str.replaceArray(a, s);
            };
            
            /**
             * replaceArray(a, s)
             *
             * @param {Object} a
             * @param {string} s
             * @return {string}
             */
            str.replaceArray = function(a, s)
            {
                var sMatch = "";
                for (var k in a) {
                    /*
                     * As noted in:
                     *
                     *      http://www.regexguru.com/2008/04/escape-characters-only-when-necessary/
                     *
                     * inside character classes, only backslash, caret, hyphen and the closing bracket need to be
                     * escaped.  And in fact, if you ensure that the closing bracket is first, the caret is not first,
                     * and the hyphen is last, you can avoid escaping those as well.
                     */
                    k = k.replace(/([\\[\]*{}().+?])/g, "\\$1");
                    sMatch += (sMatch? '|' : '') + k;
                }
                return s.replace(new RegExp('(' + sMatch + ')', "g"), function(m) {
                    return a[m];
                });
            };
            
            /**
             * pad(s, cch)
             *
             * NOTE: the maximum amount of padding currently supported is 40 spaces.
             *
             * @param {string} s is a string
             * @param {number} cch is desired length
             * @returns {string} the original string (s) with spaces padding it to the specified length
             */
            str.pad = function(s, cch)
            {
                return s + "                                        ".substr(0, cch - s.length);
            };
            
            /**
             * trim(s)
             *
             * @param {string} s
             * @returns {string}
             */
            str.trim = function(s)
            {
                if (String.prototype.trim) {
                    return s.trim();
                }
                return s.replace(/^\s+|\s+$/g, "");
            };
            
            if (typeof module !== 'undefined') module.exports = str;
            
          • userapi.js
            /**
             * @fileoverview User API, as defined by httpapi.js
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
             * @version 1.0
             * Created 2014-May-13
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of the JavaScript Machines Project (aka JSMachines) at <http://jsmachines.net/>
             * and <http://pcjs.org/>.
             *
             * JSMachines is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * JSMachines is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with JSMachines.
             * If not, see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some JSMachines files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * JSMachines Project for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            /*
             * Examples of User API requests:
             * 
             *      web.getHost() + UserAPI.ENDPOINT + '?' + UserAPI.QUERY.REQ + '=' + UserAPI.REQ.VERIFY + '&' + UserAPI.QUERY.USER + '=' + sUser;
             */
            
            var UserAPI = {
                ENDPOINT:       "/api/v1/user",
                QUERY: {
                    REQ:        "req",      // specifies a request 
                    USER:       "user",     // specifies a user ID
                    STATE:      "state",    // specifies a state ID 
                    DATA:       "data"      // specifies state data
                },
                REQ: {
                    CREATE:     "create",   // creates a user ID
                    VERIFY:     "verify",   // requests verification of a user ID
                    STORE:      "store",    // stores a machine state on the server
                    LOAD:       "load"      // loads a machine state from the server
                },
                RES: {
                    CODE:       "code",
                    DATA:       "data"
                },
                CODE: {
                    OK:         "ok",
                    FAIL:       "error"
                },
                FAIL: {
                    DUPLICATE:  "user already exists",
                    VERIFY:     "unable to verify user",
                    BADSTATE:   "invalid state parameter",
                    NOSTATE:    "no machine state",
                    BADLOAD:    "unable to load machine state",
                    BADSTORE:   "unable to save machine state"
                }
            };
            
            if (typeof module !== 'undefined') module.exports = UserAPI;
          • usrlib.js
            /**
             *  @fileoverview Assorted helper functions
             *  @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a> (@jeffpar)
             *  @version 1.0
             *  Created 2014-03-09
             *
             *  Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of the JavaScript Machines Project (aka JSMachines) at <http://jsmachines.net/>
             * and <http://pcjs.org/>.
             *
             * JSMachines is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * JSMachines is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with JSMachines.
             * If not, see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some JSMachines files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * JSMachines Project for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            "use strict";
            
            var usr = {};
            
            /**
             * binarySearch(a, v, fnCompare)
             *
             * @param {Array} a is an array
             * @param {number|string|Array|Object} v
             * @param {function((number|string|Array|Object), (number|string|Array|Object))} [fnCompare]
             * @return {number} the index of matching entry if non-negative, otherwise the index of the insertion point
             */
            usr.binarySearch = function(a, v, fnCompare) {
                var left = 0;
                var right = a.length;
                var found = 0;
                if (fnCompare === undefined) {
                    fnCompare = function(a, b) {
                        return a > b? 1 : a < b? -1 : 0;
                    };
                }
                while (left < right) {
                    var middle = (left + right) >> 1;
                    var compareResult;
                    compareResult = fnCompare(v, a[middle]);
                    if (compareResult > 0) {
                        left = middle + 1;
                    } else {
                        right = middle;
                        found = !compareResult;
                    }
                }
                return found? left : ~left;
            };
            
            /**
             * binaryInsert(a, v, fnCompare)
             *
             * If element v already exists in array a, the array is unchanged (we don't allow duplicates); otherwise, the
             * element is inserted into the array at the appropriate index.
             *
             * @param {Array} a is an array
             * @param {number|string|Array|Object} v is the value to insert
             * @param {function((number|string|Array|Object), (number|string|Array|Object))} [fnCompare]
             */
            usr.binaryInsert = function(a, v, fnCompare) {
                var index = usr.binarySearch(a, v, fnCompare);
                if (index < 0) {
                    a.splice(-(index + 1), 0, v);
                }
            };
            
            /**
             * getTime()
             *
             * @return {number} the current time, in milliseconds
             */
            usr.getTime = Date.now || function() { return +new Date(); };
            
            /**
             * getTimestamp()
             *
             * @return {string} timestamp containing the current date and time ("yyyy-mm-dd hh:mm:ss")
             */
            usr.getTimestamp = function() {
                var date = new Date();
                var padNum = function(n) {
                    return (n < 10? "0" : "") + n;
                };
                return date.getFullYear() + "-" + padNum(date.getMonth() + 1) + "-" + padNum(date.getDate()) + " " + padNum(date.getHours()) + ":" + padNum(date.getMinutes()) + ":" + padNum(date.getSeconds());
            };
            
            /**
             * getMonthDays(nMonth, nYear)
             *
             * Note that if we're being called on behalf of the RTC, its year is always truncated to two digits (mod 100),
             * so we have no idea what century the year 0 might refer to.  When using the normal leap-year formula, 0 fails
             * the mod 100 test but passes the mod 400 test, so as far as the RTC is concerned, every century year is a leap
             * year.  Since we're most likely dealing with the year 2000, that's fine, since 2000 was also a leap year.
             *
             * TODO: There IS a separate CMOS byte that's supposed to be set to CMOS_ADDR.CENTURY_DATE; it's always BCD,
             * so theoretically it will contain values like 0x19 or 0x20 (for the 20th and 21st centuries, respectively), and
             * we could add that as another parameter to this function, to improve the accuracy, but that would go beyond what
             * a real RTC actually does.
             *
             * @param {number} nMonth (1-12)
             * @param {number} nYear (normally a 4-digit year, but it may also be mod 100)
             * @return {number} the maximum (1-based) day allowed for the specified month and year
             */
            usr.getMonthDays = function(nMonth, nYear)
            {
                var nDays = usr.aMonthDays[nMonth - 1];
                if (nDays == 28) {
                    if ((nYear % 4) === 0 && ((nYear % 100) || (nYear % 400) === 0)) {
                        nDays++;
                    }
                }
                return nDays;
            };
            
            usr.asDays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
            usr.asMonths = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
            usr.aMonthDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
            
            /**
             * formatDate(sFormat, date)
             *
             * @param {string} sFormat (eg, "F j, Y", "Y-m-d H:i:s")
             * @param {Date} [date] (default is the current time)
             * @return {string}
             *
             * Supported identifiers in sFormat include:
             *
             *      a:  lowercase ante meridiem and post meridiem (am or pm)
             *      d:  day of the month, 2 digits with leading zeros (01,...,31)
             *      g:  hour in 12-hour format, without leading zeros (1,...,12)
             *      i:  minutes, with leading zeros (00,...,59)
             *      j:  day of the month, without leading zeros (1,...,31)
             *      l:  day of the week ("Sunday",...,"Saturday")
             *      m:  month, with leading zeros (01,...,12)
             *      s:  seconds, with leading zeros (00,...,59)
             *      F:  month ("January",...,"December")
             *      H:  hour in 24-hour format, with leading zeros (00,...,23)
             *      Y:  year (eg, 2014)
             *
             * For more inspiration, see: http://php.net/manual/en/function.date.php
             */
            usr.formatDate = function(sFormat, date) {
                var sDate = "";
                if (!date) date = new Date();
                var iHour = date.getHours();
                var iDay = date.getDate();
                var iMonth = date.getMonth() + 1;
                for (var i = 0; i < sFormat.length; i++) {
                    var ch;
                    switch((ch = sFormat.charAt(i))) {
                    case 'a':
                        sDate += (iHour < 12? "am" : "pm");
                        break;
                    case 'd':
                        sDate += ('0' + iDay).slice(-2);
                        break;
                    case 'g':
                        sDate += (!iHour? 12 : (iHour > 12? iHour - 12 : iHour));
                        break;
                    case 'i':
                        sDate += ('0' + date.getMinutes()).slice(-2);
                        break;
                    case 'j':
                        sDate += iDay;
                        break;
                    case 'l':
                        sDate += usr.asDays[date.getDay()];
                        break;
                    case 'm':
                        sDate += ('0' + iMonth).slice(-2);
                        break;
                    case 's':
                        sDate += ('0' + date.getSeconds()).slice(-2);
                        break;
                    case 'F':
                        sDate += usr.asMonths[iMonth - 1];
                        break;
                    case 'H':
                        sDate += ('0' + iHour).slice(-2);
                        break;
                    case 'Y':
                        sDate += date.getFullYear();
                        break;
                    default:
                        sDate += ch;
                        break;
                    }
                }
                return sDate;
            };
            
            /**
             * @typedef {{
             *  mask:       number,
             *  shift:      number
             * }}
             */
            var BitField;
            
            /**
             * @typedef {Object.<BitField>}
             */
            var BitFields;
            
            /**
             * defineBitFields(bfs)
             *
             * Prepares a bit field definition for use with getBitField() and setBitField(); eg:
             *
             *      var bfs = usr.defineBitFields({num:20, count:8, btmod:1, type:3});
             *
             * The above defines a set of bit fields containg four fields: num (bits 0-19), count (bits 20-27), btmod (bit 28), and type (bits 29-31).
             *
             *      usr.setBitField(bfs.num, n, 1);
             *
             * The above set bit field "bfs.num" in numeric variable "n" to the value 1.
             *
             * @param {Object} bfs
             * @return {*} (technically, we transform the bfs object into a BitFields object, but the Closure Compiler won't let us specify that)
             */
            usr.defineBitFields = function(bfs)
            {
                var bit = 0;
                for (var f in bfs) {
                    var width = bfs[f];
                    var mask = ((1 << width) - 1) << bit;
                    bfs[f] = {mask: mask, shift: bit};
                    bit += width;
                }
                // Component.assert(bit <= 32);
                return bfs;
            };
            
            /**
             * initBitFields(bfs, ...)
             *
             * @param {BitFields} bfs
             * @param {...number} var_args
             * @return {number} a value containing all supplied bit fields
             */
            usr.initBitFields = function(bfs, var_args)
            {
                var v = 0, i = 1;
                for (var f in bfs) {
                    if (i >= arguments.length) break;
                    v = usr.setBitField(bfs[f], v, arguments[i++]);
                }
                return v;
            };
            
            /**
             * getBitField(bf, v)
             *
             * @param {BitField} bf
             * @param {number} v is a value containing bit fields
             * @return {number} the value of the bit field in v defined by bf
             */
            usr.getBitField = function(bf, v)
            {
                return (v & bf.mask) >> bf.shift;
            };
            
            /**
             * setBitField(bf, v, n)
             *
             * @param {BitField} bf
             * @param {number} v is a value containing bit fields
             * @param {number} n is a value to store in v in the bit field defined by bf
             * @return {number} updated v
             */
            usr.setBitField = function(bf, v, n)
            {
                // Component.assert(!(n & ~(bf.mask >>> bf.shift)));
                return (v & ~bf.mask) | ((n << bf.shift) & bf.mask);
            };
            
            /**
             * indexOf(a, t, i)
             *
             * Use this instead of Array.prototype.indexOf() if you can't be sure the browser supports it.
             *
             * @param {Array} a
             * @param {*} t
             * @param {number} [i]
             * @returns {number}
             */
            usr.indexOf = function(a, t, i)
            {
                if (Array.prototype.indexOf) {
                    return a.indexOf(t, i);
                }
                i = i || 0;
                if (i < 0) i += a.length;
                if (i < 0) i = 0;
                for (var n = a.length; i < n; i++) {
                    if (i in a && a[i] === t) return i;
                }
                return -1;
            };
            
            if (typeof module !== 'undefined') module.exports = usr;
            
          • weblib.js
            /**
             * @fileoverview Browser-related helper functions
             * @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a> (@jeffpar)
             * @version 1.0
             * Created 2014-05-08
             *
             * Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
             *
             * This file is part of the JavaScript Machines Project (aka JSMachines) at <http://jsmachines.net/>
             * and <http://pcjs.org/>.
             *
             * JSMachines is free software: you can redistribute it and/or modify it under the terms of the
             * GNU General Public License as published by the Free Software Foundation, either version 3
             * of the License, or (at your option) any later version.
             *
             * JSMachines is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
             * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
             * GNU General Public License for more details.
             *
             * You should have received a copy of the GNU General Public License along with JSMachines.
             * If not, see <http://www.gnu.org/licenses/gpl.html>.
             *
             * You are required to include the above copyright notice in every source code file of every
             * copy or modified version of this work, and to display that copyright notice on every screen
             * that loads or runs any version of this software (see Computer.sCopyright).
             *
             * Some JSMachines files also attempt to load external resource files, such as character-image files,
             * ROM files, and disk image files. Those external resource files are not considered part of the
             * JSMachines Project for purposes of the GNU General Public License, and the author does not claim
             * any copyright as to their contents.
             */
            
            /*
             * According to http://www.w3schools.com/jsref/jsref_obj_global.asp, these are the *global* properties
             * and functions of JavaScript-in-the-Browser:
             *
             * Property             Description
             * ---
             * Infinity             A numeric value that represents positive/negative infinity
             * NaN                  "Not-a-Number" value
             * undefined            Indicates that a variable has not been assigned a value
             *
             * Function             Description
             * ---
             * decodeURI()          Decodes a URI
             * decodeURIComponent() Decodes a URI component
             * encodeURI()          Encodes a URI
             * encodeURIComponent() Encodes a URI component
             * escape()             Deprecated in version 1.5. Use encodeURI() or encodeURIComponent() instead
             * eval()               Evaluates a string and executes it as if it was script code
             * isFinite()           Determines whether a value is a finite, legal number
             * isNaN()              Determines whether a value is an illegal number
             * Number()             Converts an object's value to a number
             * parseFloat()         Parses a string and returns a floating point number
             * parseInt()           Parses a string and returns an integer
             * String()             Converts an object's value to a string
             * unescape()           Deprecated in version 1.5. Use decodeURI() or decodeURIComponent() instead
             *
             * And according to http://www.w3schools.com/jsref/obj_window.asp, these are the properties and functions
             * of the *window* object.
             *
             * Property             Description
             * ---
             * closed               Returns a Boolean value indicating whether a window has been closed or not
             * defaultStatus        Sets or returns the default text in the statusbar of a window
             * document             Returns the Document object for the window (See Document object)
             * frames               Returns an array of all the frames (including iframes) in the current window
             * history              Returns the History object for the window (See History object)
             * innerHeight          Returns the inner height of a window's content area
             * innerWidth           Returns the inner width of a window's content area
             * length               Returns the number of frames (including iframes) in a window
             * location             Returns the Location object for the window (See Location object)
             * name                 Sets or returns the name of a window
             * navigator            Returns the Navigator object for the window (See Navigator object)
             * opener               Returns a reference to the window that created the window
             * outerHeight          Returns the outer height of a window, including toolbars/scrollbars
             * outerWidth           Returns the outer width of a window, including toolbars/scrollbars
             * pageXOffset          Returns the pixels the current document has been scrolled (horizontally) from the upper left corner of the window
             * pageYOffset          Returns the pixels the current document has been scrolled (vertically) from the upper left corner of the window
             * parent               Returns the parent window of the current window
             * screen               Returns the Screen object for the window (See Screen object)
             * screenLeft           Returns the x coordinate of the window relative to the screen
             * screenTop            Returns the y coordinate of the window relative to the screen
             * screenX              Returns the x coordinate of the window relative to the screen
             * screenY              Returns the y coordinate of the window relative to the screen
             * self                 Returns the current window
             * status               Sets or returns the text in the statusbar of a window
             * top                  Returns the topmost browser window
             *
             * Method               Description
             * ---
             * alert()              Displays an alert box with a message and an OK button
             * atob()               Decodes a base-64 encoded string
             * blur()               Removes focus from the current window
             * btoa()               Encodes a string in base-64
             * clearInterval()      Clears a timer set with setInterval()
             * clearTimeout()       Clears a timer set with setTimeout()
             * close()              Closes the current window
             * confirm()            Displays a dialog box with a message and an OK and a Cancel button
             * createPopup()        Creates a pop-up window
             * focus()              Sets focus to the current window
             * moveBy()             Moves a window relative to its current position
             * moveTo()             Moves a window to the specified position
             * open()               Opens a new browser window
             * print()              Prints the content of the current window
             * prompt()             Displays a dialog box that prompts the visitor for input
             * resizeBy()           Resizes the window by the specified pixels
             * resizeTo()           Resizes the window to the specified width and height
             * scroll()             This method has been replaced by the scrollTo() method.
             * scrollBy()           Scrolls the content by the specified number of pixels
             * scrollTo()           Scrolls the content to the specified coordinates
             * setInterval()        Calls a function or evaluates an expression at specified intervals (in milliseconds)
             * setTimeout()         Calls a function or evaluates an expression after a specified number of milliseconds
             * stop()               Stops the window from loading
             */
            
            "use strict";
            
            /* global window: true, setTimeout: false, clearTimeout: false, SITEHOST: false */
            
            if (typeof module !== 'undefined') {
                var Component;
                require("./defines");
                var str = require("./strlib");
                var ReportAPI = require("./reportapi");
            }
            
            var web = {};
            
            /*
             * We must defer loading the Component module until the function(s) requiring it are
             * called; otherwise, we create an initialization cycle in which Component requires weblib
             * and weblib requires Component.
             *
             * In an ideal world, weblib would not be dependent on Component, but we really want to use
             * its I/O functions.  The simplest solution is to create wrapper functions.
             */
            
            /**
             * log(s, type)
             *
             * For diagnostic output only.  DEBUG must be true (or "--debug" specified via the command-line)
             * for Component.log() to display anything.
             *
             * @param {string} [s] is the message text
             * @param {string} [type] is the message type
             */
            web.log = function(s, type)
            {
                if (typeof module !== 'undefined') {
                    if (!Component) Component = require("./component");
                }
                Component.log(s, type);
            };
            
            /**
             * notice(s, fPrintOnly, id)
             *
             * If Component.notice() calls web.alertUser(), it will fall back to web.log() if all else fails.
             *
             * @param {string} s is the message text
             * @param {boolean} [fPrintOnly]
             * @param {string} [id] is the caller's ID, if any
             */
            web.notice = function(s, fPrintOnly, id)
            {
                if (typeof module !== 'undefined') {
                    if (!Component) Component = require("./component");
                }
                Component.notice(s, fPrintOnly, id);
            };
            
            /**
             * loadResource(sURL, fAsync, data, componentNotify, fnNotify, pNotify)
             *
             * Request the specified resource (sURL), and once the request is complete,
             * optionally call the specified method (fnNotify) of the specified component (componentNotify).
             *
             * TODO: Figure out how we can strongly type the fnNotify parameter, because the Closure Compiler has issues with:
             *
             *      {function(this:Component, string, (string|null), number, (number|string|null|Object|Array|undefined))} [fnNotify]
             *
             * @param {string} sURL
             * @param {boolean} [fAsync] is true for an asynchronous request
             * @param {Object} [data] for a POST request (default is a GET request)
             * @param {Component} [componentNotify]
             * @param {function(...)} [fnNotify]
             * @param {number|string|null|Object|Array} [pNotify] optional fnNotify info parameter
             * @return {Array} containing errorCode and responseText (empty array if fAsync is true)
             */
            web.loadResource = function(sURL, fAsync, data, componentNotify, fnNotify, pNotify)
            {
                fAsync = !!fAsync;          // ensure that fAsync is a valid boolean (Internet Explorer xmlHTTP functions insist on it)
                if (typeof module !== 'undefined') {
                    /*
                     * We don't even need to load Component, because we can't use any of the code below
                     * within Node anyway.  Instead, we must hand this request off to our network library.
                     *
                     *      if (!Component) Component = require("./component");
                     */
                    var net = require("./netlib");
                    return net.loadResource(sURL, fAsync, data, componentNotify, fnNotify, pNotify);
                }
                var nErrorCode = 0;
                var sURLData = null;
                var sURLName = str.getBaseName(sURL);
                var xmlHTTP = (window.XMLHttpRequest? new window.XMLHttpRequest() : new window.ActiveXObject("Microsoft.XMLHTTP"));
                if (fAsync) {
                    xmlHTTP.onreadystatechange = function() {
                        if (xmlHTTP.readyState === 4) {
                            /*
                             * The following line was recommended for WebKit, as a work-around to prevent the handler firing multiple
                             * times when debugging.  Unfortunately, that's not the only XMLHttpRequest problem that occurs when
                             * debugging, so I think the WebKit problem is deeper than that.  When we have multiple XMLHttpRequests
                             * pending, any debugging activity means most of them simply get dropped on floor, so what may actually be
                             * happening are mis-notifications rather than redundant notifications.
                             *
                             *      xmlHTTP.onreadystatechange = undefined;
                             */
                            sURLData = xmlHTTP.responseText;
                            /*
                             * The normal "success" case is an HTTP status code of 200, but when testing with files loaded
                             * from the local file system (ie, when using the "file:" protocol), we have to be a bit more "flexible".
                             */
                            if (xmlHTTP.status == 200 || !xmlHTTP.status && sURLData.length && web.getHostProtocol() == "file:") {
                                if (MAXDEBUG) web.log("xmlHTTP.onreadystatechange(" + sURL + "): returned " + sURLData.length + " bytes");
                            }
                            else {
                                nErrorCode = xmlHTTP.status || -1;
                                web.log("xmlHTTP.onreadystatechange(" + sURL + "): error code " + nErrorCode);
                            }
                            if (fnNotify) {
                                if (!componentNotify) {
                                    fnNotify(sURLName, sURLData, nErrorCode, pNotify);
                                } else {
                                    fnNotify.call(componentNotify, sURLName, sURLData, nErrorCode, pNotify);
                                }
                            }
                        }
                    };
                }
                if (data) {
                    var sData = "";
                    for (var p in data) {
                        if (!data.hasOwnProperty(p)) continue;
                        if (sData) sData += "&";
                        sData += p + '=' + encodeURIComponent(data[p]);
                    }
                    sData = sData.replace(/%20/g, '+');
                    if (MAXDEBUG) web.log("web.loadResource(POST " + sURL + "): " + sData.length + " bytes");
                    xmlHTTP.open("POST", sURL, fAsync);
                    xmlHTTP.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                    xmlHTTP.send(sData);
                } else {
                    if (MAXDEBUG) web.log("web.loadResource(GET " + sURL + ")");
                    xmlHTTP.open("GET", sURL, fAsync);
                    xmlHTTP.send();
                }
                var response = [];
                if (!fAsync) {
                    sURLData = xmlHTTP.responseText;
                    if (xmlHTTP.status == 200) {
                        if (MAXDEBUG) web.log("web.loadResource(" + sURL + "): returned " + sURLData.length + " bytes");
                    } else {
                        nErrorCode = xmlHTTP.status || -1;
                        web.log("web.loadResource(" + sURL + "): error code " + nErrorCode);
                    }
                    if (fnNotify) {
                        if (!componentNotify) {
                            fnNotify(sURLName, sURLData, nErrorCode, pNotify);
                        } else {
                            fnNotify.call(componentNotify, sURLName, sURLData, nErrorCode, pNotify);
                        }
                    }
                    response = [nErrorCode, sURLData];
                }
                return response;
            };
            
            /**
             * sendReport(sApp, sVer, sURL, sUser, sType, sReport, sHostName)
             *
             * Send a report (eg, bug report) to the server.
             *
             * @param {string} sApp (eg, "PCjs")
             * @param {string} sVer (eg, "1.02")
             * @param {string} sURL (eg, "/devices/pc/machine/5150/mda/64kb/machine.xml")
             * @param {string} sUser (ie, the user key, if any)
             * @param {string} sType (eg, "bug"); one of ReportAPI.TYPE.*
             * @param {string} sReport (eg, unparsed state data)
             * @param {string} [sHostName] (default is http://SITEHOST)
             */
            web.sendReport = function(sApp, sVer, sURL, sUser, sType, sReport, sHostName)
            {
                var data = {};
                data[ReportAPI.QUERY.APP] = sApp;
                data[ReportAPI.QUERY.VER] = sVer;
                data[ReportAPI.QUERY.URL] = sURL;
                data[ReportAPI.QUERY.USER] = sUser;
                data[ReportAPI.QUERY.TYPE] = sType;
                data[ReportAPI.QUERY.DATA] = sReport;
                var sReportURL = (sHostName? sHostName : "http://" + SITEHOST) + ReportAPI.ENDPOINT;
                web.loadResource(sReportURL, true, data);
            };
            
            /**
             * getHost()
             *
             * @return {string}
             */
            web.getHost = function()
            {
                return ("http://" + (window? window.location.host : SITEHOST));
            };
            
            /**
             * getHostURL()
             *
             * @return {string|null}
             */
            web.getHostURL = function()
            {
                return (window? window.location.href : null);
            };
            
            /**
             * getHostProtocol()
             *
             * @return {string}
             */
            web.getHostProtocol = function()
            {
                return (window? window.location.protocol : "file:");
            };
            
            /**
             * getUserAgent()
             *
             * @return {string}
             */
            web.getUserAgent = function()
            {
                return (window? window.navigator.userAgent : "");
            };
            
            /**
             * alertUser(sMessage)
             *
             * @param {string} sMessage
             */
            web.alertUser = function(sMessage)
            {
                if (window) window.alert(sMessage); else web.log(sMessage);
            };
            
            /**
             * confirmUser(sPrompt)
             *
             * @param {string} sPrompt
             * @returns {boolean} true if the user clicked OK, false if Cancel/Close
             */
            web.confirmUser = function(sPrompt)
            {
                var fResponse = false;
                if (window) {
                    fResponse = window.confirm(sPrompt);
                }
                return fResponse;
            };
            
            /**
             * promptUser()
             *
             * @param {string} sPrompt
             * @param {string} [sDefault]
             * @returns {string|null}
             */
            web.promptUser = function(sPrompt, sDefault)
            {
                var sResponse = null;
                if (window) {
                    sResponse = window.prompt(sPrompt, sDefault === undefined? "" : sDefault);
                }
                return sResponse;
            };
            
            /**
             * fLocalStorage
             *
             * true if localStorage support exists, is enabled, and works; "falsey" otherwise
             *
             * @type {boolean|null}
             */
            web.fLocalStorage = null;
            
            /**
             * TODO: Is there any way to get the Closure Compiler to stop inlining this string?  This
             * isn't cutting it.
             *
             * @const {string}
             */
            web.sLocalStorageTest = "PCjs.localStorage";
            
            /**
             * hasLocalStorage
             *
             * true if localStorage support exists, is enabled, and works; false otherwise
             *
             * @return {boolean}
             */
            web.hasLocalStorage = function() {
                if (web.fLocalStorage == null) {
                    var f = false;
                    if (window) {
                        try {
                            window.localStorage.setItem(web.sLocalStorageTest, web.sLocalStorageTest);
                            f = (window.localStorage.getItem(web.sLocalStorageTest) == web.sLocalStorageTest);
                            window.localStorage.removeItem(web.sLocalStorageTest);
                        } catch(e) {
                            web.logLocalStorageError(e);
                            f = false;
                        }
                    }
                    web.fLocalStorage = f;
                }
                return web.fLocalStorage;
            };
            
            /**
             * logLocalStorageError(e)
             *
             * @param {Error} e is an exception
             */
            web.logLocalStorageError = function(e)
            {
                web.log(e.message, "localStorage error");
            };
            
            /**
             * getLocalStorageItem(sKey)
             *
             * Returns the requested key value, or null if the key does not exist, or undefined if localStorage is not available
             *
             * @param {string} sKey
             * @return {string|null|undefined} sValue
             */
            web.getLocalStorageItem = function(sKey)
            {
                var sValue;
                if (window) {
                    try {
                        sValue = window.localStorage.getItem(sKey);
                    } catch(e) {
                        web.logLocalStorageError(e);
                    }
                }
                return sValue;
            };
            
            /**
             * setLocalStorageItem(sKey, sValue)
             *
             * @param {string} sKey
             * @param {string} sValue
             * @return {boolean} true if localStorage is available, false if not
             */
            web.setLocalStorageItem = function(sKey, sValue)
            {
                try {
                    window.localStorage.setItem(sKey, sValue);
                    return true;
                } catch(e) {
                    web.logLocalStorageError(e);
                }
                return false;
            };
            
            /**
             * removeLocalStorageItem(sKey)
             *
             * @param {string} sKey
             */
            web.removeLocalStorageItem = function(sKey)
            {
                try {
                    window.localStorage.removeItem(sKey);
                } catch(e) {
                    web.logLocalStorageError(e);
                }
            };
            
            /**
             * getLocalStorageKeys()
             *
             * @return {Array}
             */
            web.getLocalStorageKeys = function()
            {
                var a = [];
                try {
                    for (var i = 0, c = window.localStorage.length; i < c; i++) {
                        a.push(window.localStorage.key(i));
                    }
                } catch(e) {
                    web.logLocalStorageError(e);
                }
                return a;
            };
            
            /**
             * reloadPage()
             */
            web.reloadPage = function()
            {
                if (window) window.location.reload();
            };
            
            /**
             * isUserAgent(s)
             *
             * Check the browser's user-agent string for the given substring; "iOS" and "MSIE" are special values you can
             * use that will match any iOS or MSIE browser, respectively (even IE11, in the case of "MSIE").
             *
             * 2013-11-06: In a questionable move, MSFT changed the user-agent reported by IE11 on Windows 8.1, eliminating
             * the "MSIE" string (which MSDN calls a "version token"; see http://msdn.microsoft.com/library/ms537503.aspx);
             * they say "public websites should rely on feature detection, rather than browser detection, in order to design
             * their sites for browsers that don't support the features used by the website." So, in IE11, we get a user-agent
             * that tries to fool apps into thinking the browser is more like WebKit or Gecko:
             *
             *      Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko
             *
             * That's a nice idea, but in the meantime, they hosed the XSL transform code in embed.js, which contained
             * some very critical browser-specific code; turning on IE's "Compatibility Mode" didn't help either, because
             * that's a sledgehammer solution which restores the old user-agent string but also disables other features like
             * HTML5 canvas support. As an interim solution, I'm treating any "MSIE" check as a check for either "MSIE" or
             * "Trident".
             *
             * UPDATE: I've since found ways to make the code in embed.js more browser-agnostic, so for now, there's isn't
             * any code that cares about "MSIE", but I've left the change in place, because I wouldn't be surprised if I'll
             * need more IE-specific code in the future, perhaps for things like copy/paste functionality, or mouse capture.
             *
             * @param {string} s is a substring to search for in the user-agent; as noted above, "iOS" and "MSIE" are special values
             * @return {boolean} is true if the string was found, false if not
             */
            web.isUserAgent = function(s)
            {
                if (window) {
                    var userAgent = web.getUserAgent();
                    /*
                     * Here's one case where we have to be careful with Component, because when isUserAgent() is called by
                     * the init code below, component.js hasn't been loaded yet.  The simple solution for now is to remove the call.
                     *
                     *      web.log("agent: " + userAgent);
                     *
                     * And yes, it would be pointless to use the conditional (?) operator below, if not for the Google Closure
                     * Compiler (v20130823) failing to detect the entire expression as a boolean.
                     */
                    return (s == "iOS" && userAgent.match(/(iPod|iPhone|iPad)/) && userAgent.match(/AppleWebKit/) || s == "MSIE" && userAgent.match(/(MSIE|Trident)/) || (userAgent.indexOf(s) >= 0))? true : false;
                }
                return false;
            };
            
            /**
             * isMobile()
             *
             * Check the browser's user-agent string for the substring "Mobi", as per Mozilla recommendation:
             *
             *      https://developer.mozilla.org/en-US/docs/Browser_detection_using_the_user_agent
             *
             * @return {boolean} is true if the browser appears to be a mobile (ie, non-desktop) web browser, false if not
             */
            web.isMobile = function()
            {
                return web.isUserAgent("Mobi");
            };
            
            /**
             * getURLParameters(sParms)
             *
             * @param {string} [sParms] containing the parameter portion of a URL (ie, after the '?')
             * @return {Object} containing properties for each parameter found
             */
            web.getURLParameters = function(sParms)
            {
                var aParms = {};
                if (window) {       // an alternative to "if (typeof module === 'undefined')" if require("defines") has been invoked
                    if (!sParms) {
                        /*
                         * Note that window.location.href returns the entire URL, whereas window.location.search
                         * returns only the parameters, if any (starting with the '?', which we skip over with a substr() call).
                         */
                        sParms = window.location.search.substr(1);
                    }
                    var match;
                    var pl = /\+/g;     // RegExp for replacing addition symbol with a space
                    var search = /([^&=]+)=?([^&]*)/g;
                    var decode = function(s) { return decodeURIComponent(s.replace(pl, " ")); };
            
                    while ((match = search.exec(sParms))) {
                        aParms[decode(match[1])] = decode(match[2]);
                    }
                }
                return aParms;
            };
            
            /**
             * onCountRepeat(n, fn, fnComplete, msDelay)
             *
             * Call fn() n times with an msDelay millisecond delay between calls, then
             * call fnComplete() when the count has been exhausted OR fn() returns false.
             *
             * @param {number} n
             * @param {function()} fn
             * @param {function()} fnComplete
             * @param {number} [msDelay]
             */
            web.onCountRepeat = function(n, fn, fnComplete, msDelay)
            {
                var fnRepeat = function doCountRepeat() {
                    n -= 1;
                    if (n >= 0) {
                        if (!fn()) n = 0;
                    }
                    if (n > 0) {
                        setTimeout(fnRepeat, msDelay || 0);
                        return;
                    }
                    fnComplete();
                };
                fnRepeat();
            };
            
            /**
             * onClickRepeat(e, msDelay, msRepeat, fn)
             *
             * Repeatedly call fn() with an initial msDelay, and an msRepeat delay thereafter,
             * as long as HTML control Object e has an active "down" event and fn() returns true.
             *
             * @param {Object} e
             * @param {number} msDelay
             * @param {number} msRepeat
             * @param {function(boolean)} fn is passed false on the first call, true on all repeated calls
             */
            web.onClickRepeat = function(e, msDelay, msRepeat, fn)
            {
                var ms = 0, timer = null, fIgnoreMouseEvents = false;
            
                var fnRepeat = function doClickRepeat() {
                    if (fn(ms === msRepeat)) {
                        timer = setTimeout(fnRepeat, ms);
                        ms = msRepeat;
                    }
                };
                e.onmousedown = function() {
                    // web.log("onMouseDown()");
                    if (!fIgnoreMouseEvents) {
                        if (!timer) {
                            ms = msDelay;
                            fnRepeat();
                        }
                    }
                };
                e.ontouchstart = function() {
                    // web.log("onTouchStart()");
                    if (!timer) {
                        ms = msDelay;
                        fnRepeat();
                    }
                };
                e.onmouseup = e.onmouseout = function() {
                    // web.log("onMouseUp()/onMouseOut()");
                    if (timer) {
                        clearTimeout(timer);
                        timer = null;
                    }
                };
                e.ontouchend = e.ontouchcancel = function() {
                    // web.log("onTouchEnd()/onTouchCancel()");
                    if (timer) {
                        clearTimeout(timer);
                        timer = null;
                    }
                    /*
                     * Devices that generate ontouch* events ALSO generate onmouse* events,
                     * and generally do so immediately after all the touch events are complete,
                     * so unless we want double the action, we need to ignore mouse events.
                     */
                    fIgnoreMouseEvents = true;
                };
            };
            
            web.aPageEventHandlers = {
                'init': [],         // list of window 'onload' handlers
                'show': [],         // list of window 'onpageshow' handlers
                'exit': []          // list of window 'onunload' handlers (although we prefer to use 'onbeforeunload' if possible)
            };
            
            web.fPageReady = false; // set once the browser's first page initialization has occurred
            web.fPageEventsEnabled = true;
            
            /**
             * onPageEvent(sName, fn)
             *
             * @param {string} sFunc
             * @param {function()} fn
             *
             * Use this instead of setting window['onunload'], window['onunload'], etc.
             * Allows multiple JavaScript modules to define a handler for the same event.
             *
             * Moreover, it's risky to refer to obscure event handlers with "dot" names, because
             * the Closure Compiler may erroneously replace them (eg, window.onpageshow is a good example).
             */
            web.onPageEvent = function(sFunc, fn)
            {
                if (window) {
                    var fnPrev = window[sFunc];
                    if (typeof fnPrev !== 'function') {
                        window[sFunc] = fn;
                    } else {
                        /*
                         * TODO: Determine whether there's any value in receiving/sending the Event object that the
                         * browser provides when it generates the original event.
                         */
                        window[sFunc] = function onWindowEvent() {
                            if (fnPrev) fnPrev();
                            fn();
                        };
                    }
                }
            };
            
            /**
             * onInit(fn)
             *
             * @param {function()} fn
             *
             * Use this instead of setting window.onload.  Allows multiple JavaScript modules to define their own 'onload' event handler.
             */
            web.onInit = function(fn)
            {
                web.aPageEventHandlers['init'].push(fn);
            };
            
            /**
             * onShow(fn)
             *
             * @param {function()} fn
             *
             * Use this instead of setting window.onpageshow.  Allows multiple JavaScript modules to define their own 'onpageshow' event handler.
             */
            web.onShow = function(fn)
            {
                web.aPageEventHandlers['show'].push(fn);
            };
            
            /**
             * onExit(fn)
             *
             * @param {function()} fn
             *
             * Use this instead of setting window.onunload.  Allows multiple JavaScript modules to define their own 'onunload' event handler.
             */
            web.onExit = function(fn)
            {
                web.aPageEventHandlers['exit'].push(fn);
            };
            
            /**
             * doPageEvent(afn)
             *
             * @param {Array.<function()>} afn
             */
            web.doPageEvent = function(afn)
            {
                if (web.fPageEventsEnabled) {
                    try {
                        for (var i = 0; i < afn.length; i++) {
                            afn[i]();
                        }
                    } catch(e) {
                        web.notice("An unexpected exception occurred:\n\n" + e.message + "\n\nPlease send this information to support@pcjs.org. Thanks.");
                    }
                }
            };
            
            /**
             * enablePageEvents(fEnable)
             *
             * @param {boolean} fEnable is true to enable page events, false to disable (they're enabled by default)
             */
            web.enablePageEvents = function(fEnable)
            {
                if (!web.fPageEventsEnabled && fEnable) {
                    web.fPageEventsEnabled = true;
                    if (web.fPageReady) web.sendPageEvent('init');
                    return;
                }
                web.fPageEventsEnabled = fEnable;
            };
            
            /**
             * sendPageEvent(sEvent)
             *
             * This allows us to manually trigger page events.
             *
             * @param {string} sEvent (one of 'init', 'show' or 'exit')
             */
            web.sendPageEvent = function(sEvent)
            {
                if (web.aPageEventHandlers[sEvent]) {
                    web.doPageEvent(web.aPageEventHandlers[sEvent]);
                }
            };
            
            web.onPageEvent('onload', function onPageLoad() { web.fPageReady = true; web.doPageEvent(web.aPageEventHandlers['init']); });
            web.onPageEvent('onpageshow', function onPageShow() { web.doPageEvent(web.aPageEventHandlers['show']); });
            web.onPageEvent(web.isUserAgent("Opera") || web.isUserAgent("iOS")? 'onunload' : 'onbeforeunload', function onPageUnload() { web.doPageEvent(web.aPageEventHandlers['exit']); });
            
            if (typeof module !== 'undefined') module.exports = web;
            
    • index.html
      <!doctyle html>
      <title>Embedded PC (using pcjs.org by Jeff Parsons @jeffpar)</title>
      
      
      <script data-legit=mi>
        // ONERROR
        <%=embedFile('boot/onerror.js')%>
      //# sourceURL=boot/onerror.js
      </script>
      
      
      <script data-legit=mi>
        // EARLYBOOT
        earlyBoot(window);
      
        	<%=typescriptBuild('boot/*')%>
      
        	<%=typescriptBuild('/boot/base.d.ts', 'pcjs-embed/boot/bootUI.ts')%>
      //# sourceURL=/boot/base.js
      </script>
      
      <script data-legit=mi>
      
        // LOADER
      <%=typescriptBuild('load/*', 'persistence/*', 'boot/base.d.ts', 'typings/*')%>
      //# sourceURL=/load/shellLoader.ts.js
      </script>
      
      <!-- total 12Mb, saved <%=(function() {
      
      // TOTAL SUMMARY
      var monthsPrettyCase = ('Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec').split('|');
      
      var saveDate = new Date();
      var dtText =
        saveDate.getDate() + ' ' +
        monthsPrettyCase[saveDate.getMonth()] + ' ' +
        saveDate.getFullYear() + ' ' +
        num2(saveDate.getHours()) + ':' +
        num2(saveDate.getMinutes()) + ':' +
        num2(saveDate.getSeconds()) + '.' +
        (+saveDate).toString().slice(-3);
      
      var saveDateLocalStr = saveDate.toString();
      var gmtMatch = (/(GMT\s*[\-\+]\d+(\:\d+)?)/i).exec(saveDateLocalStr);
      if (gmtMatch)
      	dtText += ' ' + gmtMatch[1];
      
      return dtText;
      
      function num2(n) { return n <= 9 ? '0' + n : '' + n; }
      
      })()
      %> -->
      
      <!-- /shell/!onerror.js
      <%=embedFile('/boot/onerror.js')%>
      -->
      
      <!-- /shell/pcjs-embed.js
      <%=typescriptBuild('pcjs-embed/embed/*', 'persistence/API.d.ts', 'typings/*')%>
      -->
      
      <!-- /shell/components.css
      <%=embedFile('/pcjs-embed/versions/pcjs/1.18.3/components.css')%>
      -->
      
      <%=(function() {
         // EMBEDDED DEMO FILES
      	var drive = portabled.build.processTemplate.mainDrive;
      	var includeFiles = [
         'components.xsl',
          'turbo.xml',
         // EGA 'ibm-ega.json', 'ibm-xebec-1982.json', 'ibm-ega.json', 'ibm-basic-1.10.json', '1982-11-08.json', 'MSDOS320-DISK1.json', 'fd1.json', 'fd2.json', '10mb-ega.json'
         	'ibm-vga.json','1988-01-28.json', 'ibm-vga-lockfs.xml', '68mb.json'
         ];
      
      	var fileDump = [];
        for (var i = 0; i < includeFiles.length; i++) {
      
      		var embedFN = '/pcjs-embed/demos/'+includeFiles[i];
          var content = drive.read(embedFN);
      
          var decoratedContent = content.
      			replace(/\-\-(\**)\>/g, '--*$1>').
      			replace(/\<(\**)\!/g, '<*$1!');
          console.log('Embedding '+embedFN+'...');
      
      	  fileDump.push('<'+'!'+'-- '+embedFN);
          fileDump.push(decoratedContent);
          fileDump.push('--'+'!'+'>');
        }
      	return fileDump.join('\n');
      
      })()%>
      
      <!-- /shell/pc.js
      
      function pcjs(compCallback) {
      var window = this.window, document = this.document, XMLHttpRequest = this.XMLHttpRequest, localStorage = this.localStorage;
      
      <%=(function() {
         // PCJS uncompiled
      
      	var drive = portabled.build.processTemplate.mainDrive;
      
         var fileList = [
          "/modules/shared/lib/defines.js",
          "/modules/shared/lib/diskapi.js",
          "/modules/shared/lib/dumpapi.js",
          "/modules/shared/lib/reportapi.js",
          "/modules/shared/lib/userapi.js",
          "/modules/shared/lib/strlib.js",
          "/modules/shared/lib/usrlib.js",
          "/modules/shared/lib/weblib.js",
          "/modules/shared/lib/component.js",
          "/modules/pcjs/lib/defines.js",
          "/modules/pcjs/lib/interrupts.js",
          "/modules/pcjs/lib/messages.js",
          "/modules/pcjs/lib/panel.js",
          "/modules/pcjs/lib/bus.js",
          "/modules/pcjs/lib/memory.js",
          "/modules/pcjs/lib/cpu.js",
          "/modules/pcjs/lib/x86.js",
          "/modules/pcjs/lib/x86seg.js",
          "/modules/pcjs/lib/x86cpu.js",
          "/modules/pcjs/lib/x86func.js",
          "/modules/pcjs/lib/x86ops.js",
          "/modules/pcjs/lib/x86op0f.js",
          "/modules/pcjs/lib/x86modb.js",
          "/modules/pcjs/lib/x86modw.js",
          "/modules/pcjs/lib/x86modb16.js",
          "/modules/pcjs/lib/x86modw16.js",
          "/modules/pcjs/lib/x86modb32.js",
          "/modules/pcjs/lib/x86modw32.js",
          "/modules/pcjs/lib/x86modsib.js",
          "/modules/pcjs/lib/chipset.js",
          "/modules/pcjs/lib/rom.js",
          "/modules/pcjs/lib/ram.js",
          "/modules/pcjs/lib/keyboard.js",
          "/modules/pcjs/lib/video.js",
          "/modules/pcjs/lib/serialport.js",
          "/modules/pcjs/lib/mouse.js",
          "/modules/pcjs/lib/disk.js",
          "/modules/pcjs/lib/fdc.js",
          "/modules/pcjs/lib/hdc.js",
          "/modules/pcjs/lib/debugger.js",
          "/modules/pcjs/lib/state.js",
          "/modules/pcjs/lib/computer.js",
          "/modules/shared/lib/embed.js"
      	];
      
         var output = [];
      
         for (var i = 0; i < fileList.length; i++) {
      
      		output.push('');
      		output.push('// '+fileList[i]);
      
          var content = drive.read('/pcjs-embed'+fileList[i]);
      		if (!content) throw new Error('File '+fileList[i]+' is missing.');
      		content = content.replace(/var APPNAME \= \"\"/g, 'var APPNAME = "PCjs"');
      
          var fnName = fileList[i].slice(1).replace('/', '_');
      
          var decoratedContent = content.
      			replace(/\-\-(\**)\>/g, '--*$1>').
      			replace(/\<(\**)\!/g, '<*$1!');
          output.push(decoratedContent);
      
      	 }
      
         return output.join('\n');
      
      })()%>
      
      
      var reported_computer_wait = false;
      function waitOverride(a,b,c,d) {
      	if (!reported_computer_wait) {
      		reported_computer_wait = true;
      		var _comp = this;
      		setTimeout(function() {
      			compCallback(_comp);
      		}, 100);
      	}
      	return this._wait(a,b,c,d);
      }
      
      Computer.prototype._wait = Computer.prototype.wait;
      Computer.prototype.wait = waitOverride;
      }
      -->
      
      <!-- /shell/z-pcjs-override.css
      .pcjs-container {
      	overflow: hidden;
      }
      .pcjs-menu {
      	display: none;
      }
      .pcjs-video .pcjs-control {
      	display: none;
      }
      -->
  • persistence
    • attached
      • indexedDB.ts
        module persistence {
        
          function getIndexedDB() {
            try {
              return typeof indexedDB === 'undefined' || typeof indexedDB.open !== 'function' ? null : indexedDB;
            }
            catch (error) {
              return null;
            }
          }
        
          export module attached.indexedDB {
        
            export var name = 'indexedDB';
        
            export function detect(uniqueKey: string, callback: (detached: Drive.Detached) => void): void {
              try {
                detectCore(uniqueKey, callback);
              }
              catch (error) {
                callback(null);
              }
            }
        
            function detectCore(uniqueKey: string, callback: (detached: Drive.Detached) => void): void {
        
              var indexedDBInstance = getIndexedDB();
              if (!indexedDBInstance) {
                callback(null);
                return;
              }
        
              var dbName = uniqueKey || 'portabled';
        
              var openRequest = indexedDBInstance.open(dbName, 1);
              openRequest.onerror = (errorEvent) => callback(null);
        
              openRequest.onupgradeneeded = createDBAndTables;
        
              openRequest.onsuccess = (event) => {
                var db: IDBDatabase = openRequest.result;
        
                try {
                  var transaction = db.transaction(['files', 'metadata']);
                  // files mentioned here, but not really used to detect
                  // broken multi-store transaction implementation in Safari
        
                  transaction.onerror = (errorEvent) => callback(null);
        
                  var metadataStore = transaction.objectStore('metadata');
                  var filesStore = transaction.objectStore('files');
                  var editedUTCRequest = metadataStore.get('editedUTC');
                }
                catch (getStoreError) {
                  callback(null);
                  return;
                }
        
                if (!editedUTCRequest) {
                  callback(null);
                  return;
                }
        
                editedUTCRequest.onerror = (errorEvent) => {
                  var detached = new IndexedDBDetached(db, null);
                  callback(detached);
                };
        
                editedUTCRequest.onsuccess = (event) => {
                  var result: MetadataData = editedUTCRequest.result;
                  var detached = new IndexedDBDetached(db, result && typeof result.value === 'number' ? result.value : null);
                  callback(detached);
                };
              }
        
        
              function createDBAndTables() {
                var db: IDBDatabase = openRequest.result;
                var filesStore = db.createObjectStore('files', { keyPath: 'path' });
                var metadataStore = db.createObjectStore('metadata', { keyPath: 'property' })
              }
            }
        
        
        
            class IndexedDBDetached implements Drive.Detached {
        
              constructor(
                private _db: IDBDatabase,
                public timestamp: number) {
              }
        
              applyTo(mainDrive: Drive, callback: Drive.Detached.CallbackWithShadow): void {
                var transaction = this._db.transaction(['files', 'metadata'], 'readwrite');
                var metadataStore = transaction.objectStore('metadata');
                var filesStore = transaction.objectStore('files');
        
                var countRequest = filesStore.count();
                countRequest.onerror = (errorEvent) => {
                  console.error('Could not count files store.');
                  callback(null);
                };
        
                countRequest.onsuccess = (event) => {
        
                  var storeCount: number = countRequest.result;
        
                  var cursorRequest = filesStore.openCursor();
                  cursorRequest.onerror = (errorEvent) => callback(null);
        
                  // to cleanup any files which content is the same on the main drive
                  var deleteList: string[] = [];
                  var anyLeft = false;
        
                  var processedCount = 0;
        
                  cursorRequest.onsuccess = (event) => {
                    var cursor: IDBCursor = cursorRequest.result;
        
                    if (!cursor) {
        
                      // cleaning up files whose content is duplicating the main drive
                      if (anyLeft) {
                        for (var i = 0; i < deleteList.length; i++) {
                          filesStore['delete'](deleteList[i]);
                        }
                      }
                      else {
                        filesStore.clear();
                        metadataStore.clear();
                      }
        
                      callback(new IndexedDBShadow(this._db, this.timestamp));
                      return;
                    }
        
                    if (callback.progress)
                      callback.progress(processedCount, storeCount);
                    processedCount++;
        
                    var result: FileData = (<any>cursor).value;
                    if (result && result.path) {
        
                      var existingContent = mainDrive.read(result.path);
                      if (existingContent === result.content) {
                        deleteList.push(result.path);
                      }
                      else {
                        mainDrive.timestamp = this.timestamp;
                        mainDrive.write(result.path, result.content);
                        anyLeft = true;
                      }
                    }
        
                    cursor['continue']();
                  }; // cursorRequest.onsuccess
        
                }; // countRequest.onsuccess
        
              }
        
              purge(callback: Drive.Detached.CallbackWithShadow): void {
                var transaction = this._db.transaction(['files', 'metadata'], 'readwrite');
        
                var filesStore = transaction.objectStore('files');
                filesStore.clear();
        
                var metadataStore = transaction.objectStore('metadata');
                metadataStore.clear();
        
                callback(new IndexedDBShadow(this._db, -1));
              }
        
            }
        
            class IndexedDBShadow implements Drive.Shadow {
        
              constructor(private _db: IDBDatabase, public timestamp: number) {
              }
        
              write(file: string, content: string) {
                var transaction = this._db.transaction(['files', 'metadata'], 'readwrite');
                var filesStore = transaction.objectStore('files');
                var metadataStore = transaction.objectStore('metadata');
        
                // no file deletion here: we need to keep account of deletions too!
                var fileData: FileData = {
                  path: file,
                  content: content,
                  state: null
                };
        
                var putFile = filesStore.put(fileData);
        
                var md: MetadataData = {
                  property: 'editedUTC',
                  value: Date.now()
                };
        
                metadataStore.put(md);
        
              }
            }
        
            interface FileData {
              path: string;
              content: string;
              state: string;
            }
        
            interface MetadataData {
              property: string;
              value: any;
            }
        
        
          }
        
        }
      • localStorage.ts
        module persistence {
        
          function getLocalStorage() {
            return typeof localStorage === 'undefined' || typeof localStorage.length !== 'number' ? null : localStorage;
          }
        
          // is it OK&
          export module attached.localStorage {
        
            export var name = 'localStorage';
        
            export function detect(uniqueKey: string, callback: (detached: Drive.Detached) => void): void {
              var localStorageInstance = getLocalStorage();
              if (!localStorageInstance) {
                callback(null);
                return;
              }
        
              var access = new LocalStorageAccess(localStorageInstance, uniqueKey);
              var dt = new LocalStorageDetached(access);
              callback(dt);
            }
        
            class LocalStorageAccess {
              private _cache: { [key: string]: string; } = {};
        
              constructor(private _localStorage: Storage, private _prefix: string) {
              }
        
              get (key: string): string {
                var k = this._expandKey(key);
                var r = this._localStorage.getItem(k);
                return r;
              }
            
            	set(key: string, value: string): void {
                var k = this._expandKey(key);
                return this._localStorage.setItem(k, value);
              }
        
              remove(key: string): void {
                var k = this._expandKey(key);
                return this._localStorage.removeItem(k);
              }
        
              keys(): string[] {
                var result: string[] = [];
                var len = this._localStorage.length;
                for (var i = 0; i < len; i++) {
                  var str = this._localStorage.key(i);
                  if (str.length > this._prefix.length && str.slice(0, this._prefix.length) === this._prefix)
                    result.push(str.slice(this._prefix.length));
                }
                return result;
              }
        
              private _expandKey(key: string): string {
                var k: string;
        
                if (!key) {
                  k = this._prefix;
                }
                else {
                  k = this._cache[key];
                  if (!k)
                    this._cache[key] = k = this._prefix + key;
                }
                
                return k;
              }
          	}
        
        
            class LocalStorageDetached implements Drive.Detached {
        
              timestamp: number = 0;
        
              constructor(private _access: LocalStorageAccess) {
                var timestampStr = this._access.get('*timestamp');
                if (timestampStr && timestampStr.charAt(0)>='0' && timestampStr.charAt(0)<='9') {
                  try {
                    this.timestamp = parseInt(timestampStr);
                  }
                  catch (parseError) {
                  }
                }
              }
        
              applyTo(mainDrive: Drive, callback: Drive.Detached.CallbackWithShadow): void {
                var keys = this._access.keys();
                for (var i = 0; i < keys.length; i++) {
                  var k = keys[i];
                  if (k.charAt(0)==='/') {
                    var value = this._access.get(k);
                    mainDrive.write(k, value);
                  }
                }
                
                var shadow = new LocalStorageShadow(this._access, mainDrive.timestamp);
                callback(shadow);
              }
        
              purge(callback: Drive.Detached.CallbackWithShadow): void {
                var keys = this._access.keys();
                for (var i = 0; i < keys.length; i++) {
                  var k = keys[i];
                  if (k.charAt(0)==='/') {
                    var value = this._access.remove(k);
                  }
                }
        
                var shadow = new LocalStorageShadow(this._access, this.timestamp);
                callback(shadow);
              }
        
            }
            
            class LocalStorageShadow implements Drive.Shadow {
        
              constructor(private _access: LocalStorageAccess, public timestamp: number) {
              }
        
              write(file: string, content: string) {
                this._access.set(file, content);
                this._access.set('*timestamp', <any>this.timestamp);
              }
        
            }
        
          }
          
        } 
      • webSQL.ts
        module persistence {
        
          function getOpenDatabase() {
            return typeof openDatabase !== 'function' ? null : openDatabase;
          }
        
          export module attached.webSQL {
        
            export var name = 'webSQL';
        
            export function detect(uniqueKey: string, callback: (detached: Drive.Detached) => void): void {
        
              var openDatabaseInstance = getOpenDatabase();
              if (!openDatabaseInstance) {
                callback(null);
                return;
              }
        
              var dbName = uniqueKey || 'portabled';
        
              var db = openDatabase(
                dbName, // name
                1, // version
                'Portabled virtual filesystem data', // displayName
                1024 * 1024); // size
              // upgradeCallback?
        
        
              db.readTransaction(
                transaction => {
                  transaction.executeSql(
                    'SELECT value from "*metadata" WHERE name=\'editedUTC\'',
                    [],
                    (transaction, result) => {
                      var editedValue: number = null;
                      if (result.rows && result.rows.length === 1) {
                        var editedValueStr = result.rows.item(0).value;
                        if (typeof editedValueStr === 'string') {
                          try {
                            editedValue = parseInt(editedValueStr);
                          }
                          catch (error) {
                            // unexpected value for the timestamp, continue as if no value found
                          }
                        }
                        else if (typeof editedValueStr === 'number') {
                          editedValue = editedValueStr;
                        }
                      }
        
                      callback(new WebSQLDetached(db, editedValue || 0, true));
                    },
                    (transaction, sqlError) => {
                      // no data
                      callback(new WebSQLDetached(db, 0, false));
                    });
                },
                sqlError=> {
                  // failed to load
                  callback(null);
                });
        
            }
        
            class WebSQLDetached implements Drive.Detached {
        
              constructor(
                private _db: Database,
                public timestamp: number,
                private _metadataTableIsValid: boolean) {
              }
        
              applyTo(mainDrive: Drive, callback: Drive.Detached.CallbackWithShadow): void {
                this._db.readTransaction(
                  transaction => listAllTables(
                    transaction,
                    tables => {
        
                      var ftab = getFilenamesFromTables(tables);
        
                      this._applyToWithFiles(transaction, ftab, mainDrive, callback);
                    },
                    sqlError => {
                      reportSQLError('Failed to list tables for the webSQL database.', sqlError);
                      callback(new WebSQLShadow(this._db, this.timestamp, this._metadataTableIsValid));
                    }),
                  sqlError => {
                    reportSQLError('Failed to open read transaction for the webSQL database.', sqlError);
                    callback(new WebSQLShadow(this._db, this.timestamp, this._metadataTableIsValid));
                  });
              }
        
              purge(callback: Drive.Detached.CallbackWithShadow): void {
                this._db.transaction(
                  transaction => listAllTables(
                    transaction,
                    tables => {
                      this._purgeWithTables(transaction, tables, callback);
                    },
                    sqlError => {
                      reportSQLError('Failed to list tables for the webSQL database.', sqlError);
                      callback(new WebSQLShadow(this._db, 0, false));
                    }),
                  sqlError => {
                    reportSQLError('Failed to open read-write transaction for the webSQL database.', sqlError);
                    callback(new WebSQLShadow(this._db, 0, false));
                  });
              }
        
              private _applyToWithFiles(transaction: SQLTransaction, ftab: { file: string; table: string; }[], mainDrive: Drive, callback: Drive.Detached.CallbackWithShadow): void {
        
                if (!ftab.length) {
                  callback(new WebSQLShadow(this._db, this.timestamp, this._metadataTableIsValid));
                  return;
                }
        
                var reportedFileCount = 0;
        
                var completeOne = () => {
                  reportedFileCount++;
                  if (reportedFileCount === ftab.length) {
                    callback(new WebSQLShadow(this._db, this.timestamp, this._metadataTableIsValid));
                  }
                };
        
                var applyFile = (file: string, table: string) => {
                  transaction.executeSql(
                    'SELECT * FROM "' + table + '"',
                    [],
                    (transaction, result) => {
                      if (result.rows.length) {
                        var row = result.rows.item(0);
                        if (row.value === null)
                          mainDrive.write(file, null);
                        else if (typeof row.value === 'string')
                          mainDrive.write(file, fromSqlText(row.value));
                      }
                      completeOne();
                    },
                    sqlError => {
                      completeOne();
                    });
                };
        
                for (var i = 0; i < ftab.length; i++) {
                  applyFile(ftab[i].file, ftab[i].table);
                }
        
              }
        
              private _purgeWithTables(transaction: SQLTransaction, tables: string[], callback: Drive.Detached.CallbackWithShadow) {
                if (!tables.length) {
                  callback(new WebSQLShadow(this._db, 0, false));
                  return;
                }
        
                var droppedCount = 0;
        
                var completeOne = () => {
                  droppedCount++;
                  if (droppedCount === tables.length) {
                    callback(new WebSQLShadow(this._db, 0, false));
                  }
                };
        
                for (var i = 0; i < tables.length; i++) {
                  transaction.executeSql(
                    'DROP TABLE "' + tables[i] + '"',
                    [],
                    (transaction, result) => {
                      completeOne();
                    },
                    (transaction, sqlError) => {
                      reportSQLError('Failed to drop table for the webSQL database.', sqlError);
                      completeOne();
                    });
                }
              }
        
            }
        
            class WebSQLShadow implements Drive.Shadow {
        
              private _cachedUpdateStatementsByFile: { [name: string]: string; } = {};
              private _closures = {
                updateMetadata: (transaction: SQLTransaction) => this._updateMetadata(transaction)
              };
        
              constructor(private _db: Database, public timestamp: number, private _metadataTableIsValid: boolean) {
              }
        
              write(file: string, content: string) {
        
                if (content || typeof content === 'string') {
                  this._updateCore(file, content);
                }
                else {
                  this._dropFileTable(file);
                }
              }
        
              private _updateCore(file: string, content: string) {
                var updateSQL = this._cachedUpdateStatementsByFile[file];
                if (!updateSQL) {
                  var tableName = mangleDatabaseObjectName(file);
                  updateSQL = this._createUpdateStatement(file, tableName);
                }
                this._db.transaction(
                  transaction => {
                    transaction.executeSql(
                      updateSQL,
                      ['content', content],
                      this._closures.updateMetadata,
                      (transaction, sqlError) => this._createTableAndUpdate(transaction, file, tableName, updateSQL, content));
                  },
                  sqlError => {
                    reportSQLError('Transaction failure updating file "' + file + '".', sqlError);
                  });
              }
        
              private _createTableAndUpdate(transaction: SQLTransaction, file: string, tableName: string, updateSQL: string, content: string) {
                if (!tableName)
                  tableName = mangleDatabaseObjectName(file);
        
                transaction.executeSql(
                  'CREATE TABLE "' + tableName + '" (name PRIMARY KEY, value)',
                  [],
                  (transaction, result) => {
                    transaction.executeSql(
                      updateSQL,
                      ['content', content],
                      this._closures.updateMetadata,
                      (transaction, sqlError) => {
                        reportSQLError('Failed to update table "' + tableName + '" for file "' + file + '" after creation.', sqlError);
                      });
                  },
                  (transaction, sqlError) => {
                    reportSQLError('Failed to create a table "' + tableName + '" for file "' + file + '".', sqlError);
                  });
              }
        
              private _dropFileTable(file: string) {
                var tableName = mangleDatabaseObjectName(file);
                this._db.transaction(
                  transaction => {
                    transaction.executeSql(
                      'DROP TABLE "' + tableName + '"',
                      [],
                      this._closures.updateMetadata,
                      (transaction, sqlError) => {
                        reportSQLError('Failed to drop table "' + tableName + '" for file "' + file + '".', sqlError);
                      });
                  },
                  sqlError => {
                    reportSQLError('Transaction failure dropping table "' + tableName + '" for file "' + file + '".', sqlError);
                  });
              }
        
              private _updateMetadata(transaction: SQLTransaction) {
                var updateMetadataSQL = 'INSERT OR REPLACE INTO "*metadata" VALUES (?,?)';
                transaction.executeSql(
                  updateMetadataSQL,
                  ['editedUTC', this.timestamp],
                  (transaction, result) => { }, // TODO: generate closure statically
                  (transaction, error) => {
                    transaction.executeSql(
                      'CREATE TABLE "*metadata" (name PRIMARY KEY, value)',
                      [],
                      (transaction, result) => {
                        transaction.executeSql(updateMetadataSQL, [], () => { }, () => { });
                      },
                      (transaction, sqlError) => {
                        reportSQLError('Failed to update metadata table after creation.', sqlError);
                      });
                  });
        
              }
        
              private _createUpdateStatement(file: string, tableName: string): string {
                return this._cachedUpdateStatementsByFile[file] =
                  'INSERT OR REPLACE INTO "' + tableName + '" VALUES (?,?)';
              }
            }
        
        
            function mangleDatabaseObjectName(name: string): string {
              // no need to polyfill btoa, if webSQL exists
              if (name.toLowerCase() === name)
                return name;
              else
                return '=' + btoa(name);
            }
        
            function unmangleDatabaseObjectName(name: string): string {
              if (!name || name.charAt(0) === '*') return null;
        
              if (name.charAt(0) !== '=') return name;
        
              try {
                return atob(name.slice(1));
              }
              catch (error) {
                return name;
              }
            }
        
            export function listAllTables(
              transaction: SQLTransaction,
              callback: (tables: string[]) => void,
              errorCallback: (sqlError: SQLError) => void) {
              transaction.executeSql(
                'SELECT tbl_name  from sqlite_master WHERE type=\'table\'',
                [],
                (transaction, result) => {
                  var tables: string[] = [];
                  for (var i = 0; i < result.rows.length; i++) {
                    var row = result.rows.item(i);
                    var table = row.tbl_name;
                    if (!table || (table[0] !== '*' && table.charAt(0) !== '=' && table.charAt(0) !== '/')) continue;
                    tables.push(row.tbl_name);
                  }
                  callback(tables);
                },
                (transaction, sqlError) => errorCallback(sqlError));
            }
        
            function getFilenamesFromTables(tables: string[]) {
              var filenames: { table: string; file: string; }[] = [];
              for (var i = 0; i < tables.length; i++) {
                var file = unmangleDatabaseObjectName(tables[i]);
                if (file)
                  filenames.push({ table: tables[i], file: file });
              }
              return filenames;
            }
        
            function toSqlText(text: string) {
              if (text.indexOf('\u00FF') < 0 && text.indexOf('\u0000') < 0) return text;
        
              return text.replace(/\u00FF/g, '\u00FFf').replace(/\u0000/g, '\u00FF0');
            }
        
            function fromSqlText(sqlText: string) {
              if (sqlText.indexOf('\u00FF') < 0 && sqlText.indexOf('\u0000') < 0) return sqlText;
        
              return sqlText.replace(/\u00FFf/g, '\u00FF').replace(/\u00FF0/g, '\u0000');
            }
        
            function reportSQLError(message: string, sqlError: SQLError);
            function reportSQLError(sqlError: SQLError);
            function reportSQLError(message, sqlError?) {
              if (typeof console !== 'undefined' && typeof console.error === 'function') {
                if (sqlError)
                  console.error(message, sqlError);
                else
                  console.error(sqlError);
              }
            }
        
        
          }
        
        }
    • dom
      • CommentHeader.ts
        module persistence.dom {
        
          export class CommentHeader {
        
            header: string;
            contentOffset: number;
            contentLength: number;
        
            constructor(public node: Comment) {
              var headerLine: string;
              var content: string;
              if (typeof node.substringData === 'function'
                && typeof node.length === 'number') {
                var chunkSize = 128;
        
                if (node.length >= chunkSize) {
                  // TODO: cut chunks off the start and look for newlines
                  var headerChunks: string[] = [];
                  while (headerChunks.length * chunkSize < node.length) {
                    var nextChunk = node.substringData(headerChunks.length * chunkSize, chunkSize);
                    var posEOL = nextChunk.search(/\r|\n/);
                    if (posEOL < 0) {
                      headerChunks.push(nextChunk);
                      continue;
                    }
        
                    this.header = headerChunks.join('') + nextChunk.slice(0, posEOL);
                    this.contentOffset = this.header.length + 1; // if header is separated by a single CR or LF
        
                    if (posEOL === nextChunk.length - 1) { // we may have LF part of CRLF in the next chunk!
                      if (nextChunk.charAt(nextChunk.length - 1) === '\r'
                        && node.substringData((headerChunks.length + 1) * chunkSize, 1) === '\n')
                        this.contentOffset++;
                    }
                    else if (nextChunk.slice(posEOL, posEOL + 2) === '\r\n') {
                      this.contentOffset++;
                    }
        
                    this.contentLength = node.length - this.contentOffset;
                    return;
                  }
        
                  this.header = headerChunks.join('');
                  this.contentOffset = this.header.length;
                  this.contentLength = node.length - content.length;
                  return;
                }
              }
        
              var wholeCommentText = node.nodeValue;
              var posEOL = wholeCommentText.search(/\r|\n/);
              if (posEOL < 0) {
                this.header = wholeCommentText;
                this.contentOffset = wholeCommentText.length;
                this.contentLength = wholeCommentText.length - this.contentOffset;
                return;
              }
        
              this.contentOffset = wholeCommentText.slice(posEOL, posEOL + 2) === '\r\n' ?
                posEOL + 2 : // ends with CRLF
                posEOL + 1; // ends with singular CR or LF
        
              this.header = wholeCommentText.slice(0, posEOL),
              this.contentLength = wholeCommentText.length - this.contentOffset
            }
        
          }
        
        }
      • DOMDrive.ts
        module persistence.dom {
        
          export class DOMDrive implements Drive {
        
            private _byPath: { [path: string]: DOMFile; } = {};
        
            public timestamp: number;
        
            constructor(
              private _totals: DOMTotals,
              files: DOMFile[],
              private _document: DOMDrive.DocumentSubset) {
        
              this.timestamp = this._totals ? this._totals.timestamp : 0;
        
              for (var i = 0; i < files.length; i++) {
                this._byPath[files[i].path] = files[i];
              }
            }
        
            files(): string[] {
        
              if (typeof Object.keys === 'string') {
                var result = Object.keys(this._byPath);
              }
              else {
                var result: string[] = [];
                for (var k in this._byPath) if (this._byPath.hasOwnProperty(k)) {
                  result.push(k);
                }
              }
        
              result.sort();
        
              return result;
            }
        
            read(file: string): string {
              var file = normalizePath(file);
              var f = this._byPath[file];
              if (!f)
                return null;
              else
                return f.read();
            }
        
            write(file: string, content: string) {
        
              var totalDelta = 0;
        
              var file = normalizePath(file);
              var f = this._byPath[file];
        
              if (content === null) {
                // removal
                if (f) {
                  totalDelta -= f.contentLength;
                  var parentElem = f.node.parentElement || f.node.parentNode;
                  parentElem.removeChild(f.node);
                  delete this._byPath[file];
                }
              }
              else {
                // addition
                if (f) {
                  var lengthBefore = f.contentLength;
                  f.write(content);
                  totalDelta += f.contentLength - lengthBefore;
                }
                else {
                  var comment = document.createComment('');
                  var f = new DOMFile(comment, file, null, 0, 0);
                  f.write(content);
                  this._document.body.appendChild(f.node);
                  this._byPath[file] = f;
                  totalDelta += f.contentLength;
                }
              }
        
              this._totals.timestamp = this.timestamp;
              this._totals.updateNode();
            }
        
          }
        
          export module DOMDrive {
        
            export interface DocumentSubset {
              body: HTMLBodyElementSubset;
        
              createComment(data: string): Comment;
            }
        
            export interface HTMLBodyElementSubset {
              appendChild(node: Node);
              insertBefore(newChild: Node, refNode?: Node);
              firstChild: Node;
            }
          }
        }
      • DOMFile.ts
        module persistence.dom {
        
          export class DOMFile {
        
            private _encodedPath: string = null;
        
            constructor(
              public node: Comment,
              public path: string,
              private _encoding: (text: string) => any,
              private _contentOffset: number,
              public contentLength: number) {
            }
        
            static tryParse(cmheader: CommentHeader): DOMFile {
        
              //    /file/path/continue
              //    "/file/path/continue"
              //    /file/path/continue   [encoding]
        
              var parseFmt = /^\s*((\/|\"\/)(\s|\S)*[^\]])\s*(\[((\s|\S)*)\])?\s*$/;
              var parsed = parseFmt.exec(cmheader.header);
              if (!parsed) return null; // does not match the format
        
              var filePath = parsed[1];
              var encodingName = parsed[5];
        
              if (filePath.charAt(0) === '"') {
                if (filePath.charAt(filePath.length - 1) !== '"') return null; // unpaired leading quote
                try {
                  if (typeof JSON !== 'undefined' && typeof JSON.parse === 'function')
                    filePath = JSON.parse(filePath);
                  else
                    filePath = eval(filePath); // security doesn't seem to be compromised, input is coming from the same file
                }
                catch (parseError) {
                  return null; // quoted path but wrong format (JSON expected)
                }
              }
              else { // filePath NOT started with quote
                if (encodingName) {
                  // regex above won't strip trailing whitespace from filePath if encoding is specified
                  // (because whitespace matches 'non-bracket' class too)
                  filePath = filePath.slice(0, filePath.search(/\S(\s*)$/) + 1);
                }
              }
        
              var encoding = encodings[encodingName || 'LF'];
              // invalid encoding considered a bogus comment, skipped
              if (encoding)
                return new DOMFile(cmheader.node, filePath, encoding, cmheader.contentOffset, cmheader.contentLength);
        
              return null;
            }
        
        
            read() {
        
              // proper HTML5 has substringData to read only a chunk
              // (that saves on string memory allocations
              // comparing to fetching the whole text including the file name)
              var contentText = typeof this.node.substringData === 'function' ?
                this.node.substringData(this._contentOffset, 1000000000) :
                this.node.nodeValue.slice(this._contentOffset);
        
              // XML end-comment is escaped when stored in DOM,
              // unescape it back
              var restoredText = contentText.
              	replace(/\-\-\*(\**)\>/g, '--$1>').
                replace(/\<\*(\**)\!/g, '<$1!');
        
              // decode
              var decodedText = this._encoding(restoredText);
        
              // update just in case it's been off
              this.contentLength = decodedText.length;
        
              return decodedText;
            }
        
            write(content: any) {
        
              var encoded = bestEncode(content);
              var protectedText = encoded.content.
              	replace(/\-\-(\**)\>/g, '--*$1>').
              	replace(/\<(\**)\!/g, '<*$1!');
        
              if (!this._encodedPath) {
                // most cases path is path,
                // but if anything is weird, it's going to be quoted
                // (actually encoded with JSON format)
                var encp = bestEncode(this.path, true /*escapePath*/);
                this._encodedPath = encp.content;
              }
        
              var leadText = ' ' + this._encodedPath + (encoded.encoding === 'LF' ? '' : ' [' + encoded.encoding + ']') + '\n';
              this.node.nodeValue = leadText + encoded.content;
        
              this._encoding = encodings[encoded.encoding || 'LF'];
              this._contentOffset = leadText.length;
        
              this.contentLength = content.length;
            }
        
          }
        
        }
      • DOMTotals.ts
        module persistence.dom {
        
          var monthsPrettyCase = ('Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec').split('|');
          var monthsUpperCase = ('Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec').toUpperCase().split('|');
        
          export class DOMTotals {
        
            constructor(
            	public timestamp: number,
            	public totalSize: number,
              private _node: Comment) {
            }
        
            static tryParse(cmheader: CommentHeader): DOMTotals {
        
              // TODO: preserve unknowns when parsing
        
              var parts = cmheader.header.split(',');
              var anythingParsed = false;
              var totalSize = 0;
              var timestamp = 0;
        
              for (var i = 0; i < parts.length; i++) {
        
                // total 234Kb
                // total 23
                // total 6Mb
        
                var totalFmt = /^\s*total\s+(\d*)\s*([KkMm])?b?\s*$/;
                var totalMatch = totalFmt.exec(parts[i]);
                if (totalMatch) {
                  try {
                    var total = parseInt(totalMatch[1]);
                    if ((totalMatch[2] + '').toUpperCase() === 'K')
                      total *= 1024;
                    else if ((totalMatch[2] + '').toUpperCase() === 'M')
                      total *= 1024 * 1024;
                    totalSize = total;
                    anythingParsed = true;
                  }
                  catch (totalParseError) { }
                  continue;
                }
        
                var savedFmt = /^\s*saved\s+(\d+)\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d+)\s+(\d+)\:(\d+)(\:(\d+(\.(\d+))?))\s*(GMT\s*[\-\+]?\d+\:?\d*)?\s*$/i;
                var savedMatch = savedFmt.exec(parts[i]);
                if (savedMatch) {
                  // 25 Apr 2015 22:52:01.231
                  try {
                    var savedDay = parseInt(savedMatch[1]);
                    var savedMonth = monthsUpperCase.indexOf(savedMatch[2].toUpperCase());
                    var savedYear = parseInt(savedMatch[3]);
                    if (savedYear < 100)
                      savedYear += 2000; // no 19xx notation anymore :-(
                    var savedHour = parseInt(savedMatch[4]);
                    var savedMinute = parseInt(savedMatch[5]);
                    var savedSecond = savedMatch[7] ? parseFloat(savedMatch[7]) : 0;
        
                    timestamp = new Date(savedYear, savedMonth, savedDay, savedHour, savedMinute, savedSecond | 0).valueOf();
                    timestamp += (savedSecond - (savedSecond | 0))*1000; // milliseconds
        
                    var savedGMTStr = savedMatch[10];
                    if (savedGMTStr) {
                      var gmtColonPos = savedGMTStr.indexOf(':');
                      if (gmtColonPos>0) {
                        var gmtH = parseInt(savedGMTStr.slice(0, gmtColonPos));
                        timestamp += gmtH * 60 /*min*/ * 60 /*sec*/ * 1000 /*msec*/;
                        var gmtM = parseInt(savedGMTStr.slice(gmtColonPos + 1));
                        timestamp += gmtM * 60 /*sec*/ * 1000 /*msec*/;
                      }
                    }
        
                    anythingParsed = true;
                  }
                  catch (savedParseError) { }
                }
        
              }
        
              if (anythingParsed)
                return new DOMTotals(timestamp, totalSize, cmheader.node);
              else
                return null;
            }
        
          	updateNode() {
              // TODO: update the node content
        
              // total 4Kb, saved 25 Apr 2015 22:52:01.231
              var newTotals =
                'total ' + (
                  this.totalSize < 1024 * 9 ? this.totalSize + '' :
                    this.totalSize < 1024 * 1024 * 9 ? ((this.totalSize / 1024) | 0) + 'Kb' :
                      ((this.totalSize / (1024 * 1024)) | 0) + 'Mb') + ', ' +
                'saved ';
        
              var saveDate = new Date(this.timestamp);
              newTotals +=
                saveDate.getDate() + ' ' +
                monthsPrettyCase[saveDate.getMonth()] + ' ' +
              	saveDate.getFullYear() + ' ' +
              	num2(saveDate.getHours()) + ':' +
                num2(saveDate.getMinutes()) + ':' +
                num2(saveDate.getSeconds()) + '.' +
                this.timestamp.toString().slice(-3);
        
              var saveDateLocalStr = saveDate.toString();
              var gmtMatch = (/(GMT\s*[\-\+]\d+(\:\d+)?)/i).exec(saveDateLocalStr);
              if (gmtMatch)
                newTotals += ' ' + gmtMatch[1];
        
              this._node.nodeValue = newTotals;
        
              function num2(n: number) {
                return n <= 9 ? '0' + n : '' + n;
              }
        
            }
        
          }
        
        
        }
      • parseDOMStorage.ts
        module persistence.dom {
        
          export function parseDOMStorage(document: parseDOMStorage.DocumentSubset): parseDOMStorage.ContinueParsing {
        
            var loadedFiles: DOMFile[] = [];
            var loadedTotals: DOMTotals;
            var lastNode: Node;
            var loadedSize = 0;
        
            return continueParsing();
        
            function continueParsing(): parseDOMStorage.ContinueParsing {
        
              continueParsingDOM(false);
        
              return {
                continueParsing,
                finishParsing,
                loadedSize,
                totalSize: loadedTotals ? loadedTotals.totalSize : 0,
                loadedFileCount: loadedFiles.length
              };
        
            }
        
            function finishParsing(): DOMDrive {
        
              continueParsingDOM(true);
        
              if (loadedTotals) {
                loadedTotals.totalSize = loadedSize;
                loadedTotals.updateNode();
              }
        
              var drive = new DOMDrive(loadedTotals, loadedFiles, document);
        
              return drive;
            }
        
            function continueParsingDOM(finish: boolean) {
              if (document.body) {
                if (!lastNode)
                  lastNode = document.body.firstChild;
        
                while (true) {
                  if (!lastNode) return;
                  else if (!finish && lastNode == document.body.lastChild) return;
        
        
                  if (lastNode.nodeType === 8) {
                    processNode(<Comment>lastNode);
                  }
        
                  lastNode = lastNode.nextSibling;
                }
              }
            }
        
            function processNode(node: Comment): boolean {
              var cmheader = new CommentHeader(node);
        
              var file = DOMFile.tryParse(cmheader);
              if (file) {
                loadedFiles.push(file);
                loadedSize += file.contentLength;
                return true;
              }
        
              var totals = DOMTotals.tryParse(cmheader);
              if (totals)
                loadedTotals = totals;
            }
          }
        
          export module parseDOMStorage {
        
            export interface ContinueParsing {
        
              continueParsing(): ContinueParsing;
        
              finishParsing(): DOMDrive;
        
              loadedFileCount: number;
              loadedSize: number;
              totalSize: number;
        
            }
        
            export interface DocumentSubset extends DOMDrive.DocumentSubset {
              body: HTMLBodyElementSubset;
            }
        
            export interface HTMLBodyElementSubset extends DOMDrive.HTMLBodyElementSubset {
              lastChild: Node;
            }
        
          }
        
        }
    • encodings
      • CR.ts
        module persistence.encodings {
        
          export function CR(text: string): string {
            return text.
              replace(/\r\n|\n/g, '\r');
          }
        
        }
      • CRLF.ts
        module persistence.encodings {
        
          export function CRLF(text: string): string {
            return text.
              replace(/\r|\n/g, '\r\n');
          }
        
        }
      • LF.ts
        module persistence.encodings {
        
          export function LF(text: string): string {
            return text.
              replace(/\r\n|\r/g, '\n');
          }
        
        }
      • base64.ts
        module persistence.encodings {
        
          export function base64(text: string): any {
            // TODO: convert from base64 to text
            // TODO: invent a prefix to signify binary data
            throw new Error('Base64 encoding is not implemented yet.');
          }
        
        }
      • eval.ts
        module persistence.encodings {
        
          export function eval(text: string): any {
            return (0, window['eval'])(text);
          }
        
        }
      • json.ts
        module persistence.encodings {
        
          export function json(text: string): any {
            var result = typeof JSON ==='undefined' ? eval(text) : JSON.parse(text);
        
            if (result && typeof result !== 'string' && result.type) {
              var ctor: any = window[result.type];
              result = new ctor(result);
            }
        
            return result;
          }
        
        }
    • API.d.ts
      declare module persistence {
      
        export interface Drive {
      
          timestamp: number;
      
          files(): string[];
      
          read(file: string): string;
      
          write(file: string, content: string);
      
        }
      
        export module Drive {
      
          export interface Shadow {
      
            timestamp: number;
      
            write(file: string, content: string): void;
      
          }
      
          export interface Optional {
      
            name: string;
      
            detect(uniqueKey: string, callback: (detached: Detached) => void): void;
      
          }
      
          export interface Detached {
      
            timestamp: number;
            totalSize?: number;
      
            applyTo(mainDrive: Drive, callback: Detached.CallbackWithShadow): void;
      
            purge(callback: Detached.CallbackWithShadow): void;
      
          }
      
          export module Detached {
            export interface CallbackWithShadow {
      
              (loaded: Shadow): void;
              progress?: (current: number, total: number) => void;
            }
          }
      
        }
      
        // export function trackChanges(drive: Drive): { drive: Drive; onchanges: (changedFiles: string[]) => void; };
      
      }
    • bestEncode.ts
      module persistence {
      
        export function bestEncode(content: any, escapePath?: boolean): { content: string; encoding: string; } {
      
          if (content.length>1024*16) {
            // TODO: consider packing tightly and using eval encoding to unpack
          }
      
          if (typeof content!=='string')
            return { content: encodeArrayOrSimilarAsJSON(content), encoding: 'json' };
      
          var needsEscaping: boolean;
          if (escapePath) {
            // zero-char, newlines, leading/trailing spaces, quote and apostrophe
            needsEscaping = /\u0000|\r|\n|^\s|\s$|\"|\'/.test(content);
          }
          else {
            needsEscaping = /\u0000|\r/.test(content);
          }
      
          if (needsEscaping) {
            // ZERO character is officially unsafe in HTML,
            // CR is contentious in IE (which converts any CR or LF into CRLF)
      
            return { content: encodeUnusualStringAsJSON(content), encoding: 'json' };
          }
          else {
            return { content: content, encoding: 'LF' };
          }
        }
      
        function encodeUnusualStringAsJSON(content: string): string {
          if (typeof JSON !== 'undefined' && typeof JSON.stringify === 'function') {
            var simpleJSON = JSON.stringify(content);
            var sanitizedJSON = simpleJSON.
              replace(/\u0000/g, '\\u0000').
              replace(/\r/g, '\\r').
              replace(/\n/g, '\\n');
            return sanitizedJSON;
          }
          else {
            var result = content.replace(
              /\"\u0000|\u0001|\u0002|\u0003|\u0004|\u0005|\u0006|\u0007|\u0008|\u0009|\u00010|\u00011|\u00012|\u00013|\u00014|\u00015|\u0016|\u0017|\u0018|\u0019|\u0020|\u0021|\u0022|\u0023|\u0024|\u0025|\u0026|\u0027|\u0028|\u0029|\u0030|\u0031/g,
              (chr) =>
                chr === '\t' ? '\\t' :
                  chr === '\r' ? '\\r' :
                    chr === '\n' ? '\\n' :
                      chr === '\"' ? '\\"' :
                        chr < '\u0010' ? '\\u000' + chr.charCodeAt(0).toString(16) :
                          '\\u00' + chr.charCodeAt(0).toString(16));
            return result;
          }
        }
      
        function encodeArrayOrSimilarAsJSON(content: any): string {
            var type = content instanceof Array ? null : content.constructor.name || content.type;
            if (typeof JSON !== 'undefined' && typeof JSON.stringify === 'function') {
              if (type) {
                var wrapped = { type, content };
                var wrappedJSON = JSON.stringify(wrapped);
                return wrappedJSON;
              }
              else {
                var contentJSON = JSON.stringify(content);
                return contentJSON;
              }
            }
            else {
              var jsonArr: string[] = [];
              if (type) {
                jsonArr.push('{"type": "');
                jsonArr.push(content.type || content.prototype.constructor.name);
                jsonArr.push('", "content": [');
              }
              else {
                jsonArr.push('[');
              }
      
              for (var i = 0; i < content.length; i++) {
                if (i) jsonArr.push(',');
                jsonArr.push(content[i]);
              }
      
              if (type)
                jsonArr.push(']}');
              else
                jsonArr.push(']');
      
              return jsonArr.join('');
            }
        }
      }
    • bootMount.ts
      module persistence {
      
        // TODO: pass in progress callback
        export function bootMount(uniqueKey: string, document: Document): bootMount.ContinueLoading {
      
          var continueParse: persistence.dom.parseDOMStorage.ContinueParsing;
      
          var ondomdriveloaded;
          var domDriveLoaded: Drive;
          var storedFinishCallback;
      
          mountDrive(
            callback => {
              if (domDriveLoaded)
                callback(domDriveLoaded);
              else
                ondomdriveloaded = callback;
            },
            uniqueKey,
            [attached.indexedDB, attached.webSQL, attached.localStorage],
            mountedDrive => {
      
              storedFinishCallback(mountedDrive);
      
            });
      
          return continueLoading();
      
          function continueLoading(): bootMount.ContinueLoading {
      
            continueDOMLoading();
      
            // TODO: record progress
      
            return {
              continueLoading,
              finishLoading,
      
              loadedFileCount: continueParse.loadedFileCount,
              loadedSize: continueParse.loadedSize,
              totalSize: continueParse.totalSize
      
            };
          }
      
          function finishLoading(finishCallback: (monutedDrive: Drive) => void) {
      
            storedFinishCallback = finishCallback;
      
            continueDOMLoading();
      
            domDriveLoaded = continueParse.finishParsing();
      
            if (ondomdriveloaded) {
              ondomdriveloaded(domDriveLoaded);
            }
      
          }
      
      
          function continueDOMLoading() {
            continueParse = continueParse ? continueParse.continueParsing() : dom.parseDOMStorage(document);
          }
      
        }
      
        module bootMount {
      
          export interface ContinueLoading {
      
            continueLoading(): ContinueLoading;
      
            finishLoading(finishCallback: (mountedDrive: Drive) => void);
      
            loadedFileCount: number;
            loadedSize: number;
            totalSize: number;
      
          }
      
        }
      }
    • mountDrive.ts
      module persistence {
      
        export function mountDrive(
          loadDOMDrive: (callback: (dom: Drive) => void)=> void,
          uniqueKey: string,
          optionalModules: Drive.Optional[],
          callback: mountDrive.Callback): void {
      
          var driveIndex = 0;
      
          loadNextOptional();
      
          function loadNextOptional() {
      
            while (driveIndex < optionalModules.length &&
              (!optionalModules[driveIndex] || typeof optionalModules[driveIndex].detect !== 'function')) {
              driveIndex++;
            }
      
            if (driveIndex >= optionalModules.length) {
              loadDOMDrive(dom => callback(new MountedDrive(dom, null)));
              return;
            }
      
            var op = optionalModules[driveIndex];
            op.detect(
              uniqueKey,
              detached => {
                if (!detached) {
                  driveIndex++;
                  loadNextOptional();
                  return;
                }
      
                loadDOMDrive(dom => {
                  if (detached.timestamp > dom.timestamp) {
                    var callbackWithShadow: Drive.Detached.CallbackWithShadow = loadedDrive => {
                      dom.timestamp = detached.timestamp;
                      callback(new MountedDrive(dom, loadedDrive));
                    };
                    if (callback.progress)
                      callbackWithShadow.progress = callback.progress;
                    loadDOMDrive(dom => detached.applyTo(dom, callbackWithShadow));
                  }
                  else {
                    var callbackWithShadow: Drive.Detached.CallbackWithShadow = loadedDrive => {
                      callback(new MountedDrive(dom, loadedDrive));
                    };
                    if (callback.progress)
                      callbackWithShadow.progress = callback.progress;
                    detached.purge(callbackWithShadow);
                  }
                });
      
              });
          }
      
        }
      
        export module mountDrive {
      
          export interface Callback {
      
            (drive: Drive): void;
      
            progress?: (current: number, total: number) => void;
      
          }
      
        }
      
        class MountedDrive implements Drive {
      
          updateTime = true;
          timestamp: number = 0;
      
          constructor (private _dom: Drive, private _shadow: Drive.Shadow) {
            this.timestamp = this._dom.timestamp;
          }
      
          files(): string[] {
            return this._dom.files();
          }
      
          read(file: string): string {
            return this._dom.read(file);
          }
      
          write(file: string, content: string) {
            if (this.updateTime) {
              this.timestamp = +new Date();
            }
      
            this._dom.timestamp = this.timestamp;
            this._dom.write(file, content);
            if (this._shadow) {
              this._shadow.timestamp = this.timestamp;
              this._shadow.write(file, content);
            }
          }
        }
      
      }
    • normalizePath.ts
      module persistence {
      
        export function normalizePath(path: string) : string {
      
          if (!path) return '/'; // empty paths converted to root
      
          if (path.charAt(0) !== '/') // ensuring leading slash
            path = '/' + path;
      
          path = path.replace(/\/\/*/g, '/'); // replacing duplicate slashes with single
      
          return path;
        }
      
      }
    • trackChanges.ts
      module persistence {
      
        export function trackChanges(drive: Drive): { drive: Drive; onchanges: (changedFiles: string[]) => void; } {
      
          var delayTimeout = 300;
          var _changedFileMap: any = {};
          var _changedFiles: string[] = [];
          var _reportChangesTimeout = 0;
          var _reportChangesFirst = 0;
          var backslashCode = ('/').charCodeAt(0);
      
          var result = {
            drive: {
              timestamp: drive.timestamp,
              files: () => {
                var list = drive.files();
                result.drive.timestamp = drive.timestamp;
                return list;
              },
              read: (file: string) => {
                var content = drive.read(file);
                result.drive.timestamp = drive.timestamp;
                return content;
              },
              write: (origFile: string, content) => {
                drive.timestamp = result.drive.timestamp;
                drive.write(origFile, content);
                var file = normalizePath(origFile);
                if (file.charCodeAt(0) === backslashCode) {
                  if (_changedFileMap[file]) return;
                  _changedFileMap[file] = true;
                  _changedFiles.push(file);
                  var now = Date.now ? Date.now() : +new Date();
                  if (!_reportChangesFirst)
                    _reportChangesFirst = now;
      
                  if (now - _reportChangesFirst < 1) {
                    clearTimeout(_reportChangesTimeout);
                    if (!_reportChangesFirst) _reportChangesFirst = +new Date();
                    _reportChangesTimeout = setTimeout(reportChanges, delayTimeout);
                  }
                }
              }
            },
            onchanges: null
          };
          return result;
      
          function reportChanges() {
            _reportChangesFirst = 0;
            if (result.onchanges) {
              var list = _changedFiles;
              _changedFiles = [];
              _changedFileMap = {};
              result.onchanges(list);
            }
          }
        }
      }
  • shell
    • actions
      • copy.ts
        module shell.actions {
        
          export function copy(drive: persistence.Drive, selectedPath: string, targetPanelPath: string) {
            return copyOrMove(false /*move*/, drive, selectedPath, targetPanelPath);
          }
        
        }
      • copyOrMove.ts
        module shell.actions {
        
          export function copyOrMove(move: boolean, drive: persistence.Drive, cursorPath: string, targetPanelPath: string) {
            if (!cursorPath || !targetPanelPath || cursorPath === '/') return false;
        
            var filesToCopy: string[] = getDirFiles(drive, cursorPath);
        
            // TODO: pop up a confirmation and pop up a progress dialog -- as DOM elements
            var targetDir = prompt(
              (move ? 'Move/rename ' : 'Copy ') +
              (filesToCopy.length === 1 ? '\n   "'+filesToCopy[0]+'"' : filesToCopy.length + ' files from\n   "' + cursorPath + '"') +
              '\n   to', targetPanelPath);
            if (!targetDir) return false;
        
            var normTargetDir = targetDir;
            if (normTargetDir.charAt(0) !== '/')
              normTargetDir = cursorPath.slice(0, cursorPath.lastIndexOf('/') + 1) + normTargetDir;
        
            var targetDirFiles = getDirFiles(drive, normTargetDir);
        
            if (filesToCopy.length === 1 && filesToCopy[0] === cursorPath
                && targetDirFiles.length ===1 && targetDirFiles[0] === normTargetDir) {
              var content = drive.read(filesToCopy[0]);
              drive.write(normTargetDir, content);
              if (move)
                drive.write(filesToCopy[0], null);
            }
            else {
              if (normTargetDir.slice(-1) !== '/') normTargetDir += '/';
              var baseDir = cursorPath.slice(0, cursorPath.lastIndexOf('/') + 1);
        
              for (var i = 0; i < filesToCopy.length; i++) {
                var content = drive.read(filesToCopy[i]);
                var newPath =
                  normTargetDir +
                  filesToCopy[i].slice(baseDir.length);
                drive.write(newPath, content);
                if (move)
                  drive.write(filesToCopy[i], null);
              }
            }
        
            return true;
          }
        
        }
      • getDirFiles.ts
        module shell.actions {
        
          export function getDirFiles(drive: persistence.Drive, path: string): string[] {
            var fileResult: string[] = [];
            var allFiles = drive.files();
            for (var i = 0; i < allFiles.length; i++) {
              var f = allFiles[i];
              if (f.slice(0, path.length) !== path) continue;
              if (f === path || f.slice(path.length, path.length + 1) === '/')
                fileResult.push(f);
            }
            return fileResult;
          }
        }
      • mkDir.ts
        module shell.actions {
        
          export function mkDir(drive: persistence.Drive, selectedPath: string, targetPanelPath: string) {
            var dir = prompt('Make directory: ');
            if (!dir || dir === '/') return false;
        
            var dirPath = dir;
            if (dir.slice(0, 1) !== '/') {
              dirPath = selectedPath + '/' + dirPath;
              if (dirPath.slice(0, 2) === '//') dirPath = dirPath.slice(1);
            }
        
            if (dirPath.slice(-1) === '/')
              dirPath = dirPath.slice(0, dirPath.length - 1);
        
            var matchFiles = getDirFiles(drive, dirPath);
            if (matchFiles.length) return;
        
            drive.write(dirPath + '/', '');
            return true;
          }
        
        }
      • move.ts
        module shell.actions {
        
          export function move(drive: persistence.Drive, selectedPath: string, targetPanelPath: string) {
            return copyOrMove(true /*move*/, drive, selectedPath, targetPanelPath);
          }
        
        }
      • remove.ts
        module shell.actions {
        
          export function remove(drive: persistence.Drive, selectedPath: string, targetPanelPath: string) {
            var filesToRemove: string[] = getDirFiles(drive, selectedPath);
        
            if (!confirm('Remove ' + filesToRemove.length + ' files from\n   "' + selectedPath + '"?')) return false;
        
            for (var i = 0; i < filesToRemove.length; i++) {
              drive.write(filesToRemove[i], null);
            }
        
            return true;
          }
        
        }
      • save.ts
        module shell.actions {
        
          export function save() {
        
            var window = require('nowindow');
            var document = window.document;
            var textChunks = ['<!doctype html>\n', document.documentElement.outerHTML];
        
            var totalSize = 0;
            for (var i = 0; i < textChunks.length; i++) totalSize += textChunks[i].length;
        
            var filename = saveFileName();
        
            exportBlob(filename, textChunks);
        
            console.log('saved ' + totalSize);
        
            function exportBlob(filename: string, textChunks: string[]) {
                try {
                  var blob: Blob = new (<any>Blob)(textChunks, { type: 'application/octet-stream' });
                }
                catch (blobError) {
                  exportDocumentWrite(filename, textChunks.join(''));
                  return;
                }
        
                exportBlobHTML5(filename, blob);
              }
        
            function exportBlobHTML5(filename, blob: Blob) {
                var url = URL.createObjectURL(blob);
                var a = document.createElement('a');
                a.href = url;
                a.setAttribute('download', filename);
                try {
                  // safer save method, supposed to work with FireFox
                  var evt = document.createEvent("MouseEvents");
                  (<any>evt).initMouseEvent("click", true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
                  a.dispatchEvent(evt);
                }
                catch (e) {
                  a.click();
                }
              }
        
            function exportDocumentWrite(filename: string, content: string) {
                var win = document.createElement('iframe');
                win.style.width = '100px';
                win.style.height = '100px';
                win.style.display = 'none';
                document.body.appendChild(win);
        
                setTimeout(() => {
                  var doc = win.contentDocument || (<any>win).document;
                  doc.open();
                  doc.write(content);
                  doc.close();
        
                  doc.execCommand('SaveAs', null, filename);
                }, 200);
        
              }
        
            function saveFileName() {
        
                if (window.location.protocol.toLowerCase() === 'blob:')
                  return 'mi-save.html';
        
                var urlParts = window.location.pathname.split('/');
                var currentFileName = decodeURI(urlParts[urlParts.length - 1]);
                var lastDot = currentFileName.indexOf('.');
                if (lastDot > 0) {
                  currentFileName = currentFileName.slice(0, lastDot) + '.html';
                }
                else {
                  currentFileName += '.html';
                }
                return currentFileName;
              }
          }
        }
    • build
      • processTemplate.ts
        module shell.build {
        
          export function processTemplate(
            template: string, scopes: any[],
            log: (logText: string) => void,
            callback: (error: Error, result?: string) => void,
            continueWith: (action: () => void) => void): void {
            // <%= expr %>
            // <% statement %>
            // <%-- comment --%>
        
            log('Generating build script...');
            continueWith(() => {
              var fnText = generateBuildScript(template, scopes);
        
              log('Preprocessing build script...');
              continueWith(() => {
                try {
                  var fn = Function('scopes', fnText);
        
                  log('Executing build script...');
        
                  var output: any[] = fn(scopes);
                  var outputIndex = 0;
                }
                catch (error) {
                  log('Build failure ' + error);
                  callback(error);
                  return;
                }
        
                processNextOutputChunk();
        
                function processNextOutputChunk() {
                  var startTime = +new Date();
        
                  // all heavy chunks will bail out and queue the next one on continueWith,
                  // simple literal insertions keep going for a slice of time
                  while (true) {
                    if (outputIndex >= output.length) {
                      var result = output.join('');
                      callback(null, result);
                      return;
                    }
        
                    var outputChunk = output[outputIndex];
                    if (typeof outputChunk === 'function') {
                      log('Processing ' + outputChunk + '...');
                      continueWith(() => {
                        try {
                          var chunkResult = outputChunk();
                          var literal = String(chunkResult);
                        }
                        catch (error) {
                          callback(error);
                          return;
                        }
        
                        log('...OK [' + literal.length + ']');
                        collectChunk(literal);
        
                        processNextOutputChunk();
                        //setTimeout(processNextOutputChunk, 1);
                      });
                      break;
                    }
                    else {
                      var literal = String(outputChunk);
        							collectChunk(literal);
        
                      if (+new Date() - startTime > 300) {
                        continueWith(processNextOutputChunk);
                        break;
                      }
                      // keep going if haven't been processing for long yet
                    }
                  }
                }
        
                function collectChunk(literal: string) {
                  output[outputIndex] = literal;
        
                  var literalLines = (literal.length > 100 ? literal.slice(0, 50) + '\n...\n' + literal.slice(literal.length - 5) : literal).split('\n');
                  while (literalLines.length && !literalLines[0]) literalLines.shift();
                  while (literalLines.length && !literalLines[literalLines.length - 1]) literalLines.pop();
                  if (literalLines.length > 4) literalLines.splice(2, literalLines.length - 4, '...');
                  if (literalLines.length) {
                    for (var i = 0; i < literalLines.length; i++) {
                      if (literalLines[i] && literalLines[i].length > 50)
                        literalLines[i] = literalLines[i].slice(0, 25) + '...' + literalLines[i].slice(-25);
                    }
                    log(literalLines.join('\n'));
                  }
                  outputIndex++;
                }
        
              });
        
            });
        
          }
        
          function generateBuildScript(template: string, scopes: any[]): string {
            var generated: string[] = [];
            for (var i = 0; i < scopes.length; i++) {
              generated.push('with(scopes[' + i + ']) {');
            }
        
            generated.push('var output =[];');
        
            var index = 0;
            while (index < template.length) {
        
              var nextOpenASP = template.indexOf('<%', index);
              if (nextOpenASP < 0) {
                generateWrite(generated, template.slice(index));
                break;
              }
        
              var ch = template.charAt(nextOpenASP + 2);
              if (ch === '=') {
                var closeASP = template.indexOf('%>', nextOpenASP);
                if (closeASP < 0) {
                  generateWrite(generated, template.slice(index));
                  break;
                }
        
                generateWrite(generated, template.slice(index, nextOpenASP));
                generateRedirect(generated, template.slice(nextOpenASP + 3, closeASP));
                index = closeASP + 2;
              }
              else if (ch === '-') {
                var closeCommentMatch = template.charAt(nextOpenASP + 3) === '-' ? '--%>' : '-%>';
                var closeComment = template.indexOf(closeCommentMatch, nextOpenASP);
                if (closeComment < 0) {
                  generateWrite(generated, template.slice(index));
                  break;
                }
        
                generateWrite(generated, template.slice(index, nextOpenASP));
                index = closeComment + closeCommentMatch.length;
              }
              else {
                var closeASP = template.indexOf('%>', nextOpenASP);
                if (closeASP < 0) {
                  generateWrite(generated, template.slice(index));
                  break;
                }
        
                generateWrite(generated, template.slice(index, nextOpenASP));
                generateStatement(generated, template.slice(nextOpenASP + 2, closeASP));
                index = closeASP + 2;
              }
        
            }
        
            for (var i = 0; i < scopes.length; i++) {
              generated.push('}');
            }
        
            generated.push('return output;');
        
            var fnText = generated.join('\n');
            return fnText;
        
          }
        
        
          function generateWrite(generated: string[], chunk: string) {
            if (chunk)
              generated.push('output.push(\'' + stringLiteral(chunk) + '\');');
          }
        
          function generateRedirect(generated: string[], redirect: string) {
            generated.push('output.push(' + redirect + ');');
          }
        
          function generateStatement(generated: string[], statement: string) {
            generated.push(statement);
          }
        
          function stringLiteral(text: string) {
            return text.
              replace(/\\/g, '\\\\').
              replace(/\n/g, '\\n').
              replace(/\r/g, '\\r').
              replace(/\t/g, '\\t').
              replace(/\'/g, '\\\'').
              replace(/\"/g, '\\"');
          }
        
        }
      • typescriptBuild.ts
        module shell.build {
        
          export function typescriptBuild(drive: persistence.Drive, ...files: string[]) {
            
          }
        }
    • editor
      • CMEditor.ts
        module shell.editor {
        
          export class CMEditor {
        
            private _cmhost: HTMLDivElement;
            private _cm: CodeMirror;
            private _title: HTMLDivElement;
            private _keybar: keybar.Keybar;
        
            private _lastText: string;
            private _textchangetimeout: number = 0;
            private _textchangeclosure: any = null;
        
            requestClose: () => void;
        
            constructor(private _host: HTMLElement, private _file: string, text?: string) {
              this._cmhost = <any>elem('div', {
                background: 'navy',
                color: 'silver',
                top: '0', left: '0',
                width: '100%', height: '100%', position: 'absolute',
                borderTop: 'solid 1.2em black',
                borderBottom: 'solid 1.2em black',
                overflow: 'auto'
              });
        
              this._host.appendChild(this._cmhost);
              this._cm = createCodeMirrorEditor(this._cmhost);
        
              if (typeof text === 'string')
                this._cm.getDoc().setValue(text);
              this._lastText = this._cm.getDoc().getValue();
        
              this._title = <any>elem('div', {
                position: 'absolute',
                top: '0', left: '0',
                width: '100%', height: '1em',
                background: 'silver', color: 'navy',
                text: this._file
              }, this._host);
        
              this._keybar = new keybar.Keybar(this._host, [
                { text: 'Help' },
                { text: '<None>' },
                { text: '<None>' },
                { text: '<None>' },
                { text: '<None>' },
                { text: '<None>' },
                { text: '<None>' },
                { text: '<None>' },
                { text: '<None>' },
                { text: 'Exit', action: () => this._requestClose() }
              ]);
        
              this._cm.on('change', () => this._queueDetectChange());
            }
        
            arrange(metrics: CommanderShell.Metrics) {
              this._keybar.arrange(metrics);
            }
        
            onchanged: () => void = null;
        
            focus() {
              this._cm.focus();
            }
        
            setText(text: string) {
              this._cm.getDoc().setValue(text || '');
              this._lastText = this._cm.getDoc().getValue();
            }
        
            getText(): string {
              return this._cm.getDoc().getValue();
            }
        
            close() {
              this._detectchangeNow();
              this._host.removeChild(this._cmhost);
              this._host.removeChild(this._title);
              this._keybar.remove();
            }
        
            private _requestClose() {
              this._detectchangeNow();
              if (this.requestClose) {
                this.requestClose();
                return true;
              }
            }
        
            private _queueDetectChange() {
              if (!this._textchangeclosure) this._textchangeclosure = () => this._detectchangeNow();
        
              if (this._textchangetimeout) clearTimeout(this._textchangetimeout);
        
              this._textchangetimeout = setTimeout(this._textchangeclosure, 700);
            }
        
            private _detectchangeNow() {
              if (this._textchangetimeout) {
                clearTimeout(this._textchangetimeout);
                this._textchangetimeout = 0;
              }
        
              var newText = this._cm.getDoc().getValue() || '';
              if (newText !== this._lastText) {
                this._lastText = newText;
                if (this.onchanged) this.onchanged();
              }
            }
          }
        
          function createCodeMirrorEditor(host: HTMLElement): CodeMirror {
            return new CodeMirror(host, <CodeMirror.Options>{
              lineNumbers: true,
              matchBrackets: true,
              autoCloseBrackets: true,
              matchTags: true,
              showTrailingSpace: true,
              autoCloseTags: true,
              foldGutter: true,
            		gutters: ["CodeMirror-linenumbers", "CodeMirror-foldgutter"],
              //highlightSelectionMatches: {showToken: /\w/},
              styleActiveLine: true,
              tabSize: 2,
              theme: 'rubyblue'
            });
          }
        
        }
      • CodeMirror-ext.css
        .CodeMirror {
          height: 100%;
          font-family: inherit;
          font-size: inherit;
        
          background: royalblue;
        }
        
        .CodeMirror-hints {
          font-family: inherit;
        }
        .CodeMirror-hint {
          max-width: 52em;
          max-height: 4.5em;
          overflow-x: inherit;
          overflow-y: hidden;
          white-space: normal;
        }
        
        .CodeMirror .cm-trailingspace {
          background: linear-gradient(to right, cornflowerblue -5%, transparent 50%, gold 100%)
        }
      • Editor.ts
        module shell.editor {
        
          export class Editor {
        
            private _textarea: HTMLTextAreaElement;
            private _title: HTMLDivElement;
        
            private _lastText: string;
            private _textchangetimeout: number = 0;
            private _textchangeclosure: any = null;
        
            constructor(private _host: HTMLElement, private _file: string, text?: string) {
              this._textarea = <any>elem('textarea', {
                background: 'navy',
                color: 'silver',
                top: '0', left: '0',
                width: '100%', height: '100%', position: 'absolute',
                borderTop: 'solid 1em black',
                overflow: 'auto'
              });
        
              if (typeof text === 'string')
                this._textarea.value = text;
              this._lastText = this._textarea.value;
              this._host.appendChild(this._textarea);
        
              this._title = <any>elem('div', {
                position: 'absolute',
                top: '0', left: '0',
                width: '100%', height: '1em',
                background: 'silver', color: 'navy',
                text: this._file
              }, this._host);
        
              var onchange = () => this._queueDetectChange();
              on(this._textarea, 'change', onchange);
              on(this._textarea, 'changed', onchange);
              on(this._textarea, 'textInput', onchange);
              on(this._textarea, 'textinput', onchange);
              on(this._textarea, 'keydown', onchange);
              on(this._textarea, 'keyup', onchange);
              on(this._textarea, 'paste', onchange);
            }
        
            onchanged: () => void = null;
        
            focus() {
              this._textarea.focus();
            }
        
            setText(text: string) {
              this._textarea.value = text || '';
              this._lastText = this._textarea.value;
            }
        
            getText(): string {
              return this._textarea.value || '';
            }
        
            close() {
              this._detectchangeNow();
              this._host.removeChild(this._textarea);
              this._host.removeChild(this._title);
            }
        
            private _queueDetectChange() {
              if (!this._textchangeclosure) this._textchangeclosure = () => this._detectchangeNow();
        
              if (this._textchangetimeout) clearTimeout(this._textchangetimeout);
        
              this._textchangetimeout = setTimeout(this._textchangeclosure, 700);
            }
        
            private _detectchangeNow() {
              if (this._textchangetimeout) {
                clearTimeout(this._textchangetimeout);
                this._textchangetimeout = 0;
              }
        
              var newText = this._textarea.value || '';
              if (newText !== this._lastText) {
                this._lastText = newText;
                if (this.onchanged) this.onchanged();
              }
            }
          }
        
        }
    • handlers
      • js
        • base.ts
          module shell.handlers.js {
          
            export var preferredFiles = /\.js$|.json$/;
          
            export var entryClass = 'javascript-panel-entry';
          
            /*
            export function exec(file: string, callback: Function) {
              // TODO: load in node
            }
          
            export function edit(file: string, editorHost: HTMLElement, callback: Function) {
              // TODO: augment CodeMirror mode when CodeMirror is supported
              return text.edit(file, editorHost, callback);
            }
            */
          
          }
        • style.css
          .javascript-panel-entry.panels-entry-plain {
            color: lime;
          }
      • text
        • base.ts
          module shell.handlers.text {
          
            export var preferredFiles = /\.txt$|.text$/;
          
            //export var entryClass = ...
          
            //export function exec(file: string, callback: Function) {
            //}
          
            export function edit(file: string, drive: persistence.Drive, editorHost: HTMLElement): Handler.Editor {
              var text = drive.read(file);
              var editorInstance = typeof CodeMirror === 'function' ? new editor.CMEditor(editorHost, file, text) : new editor.Editor(editorHost, file, text);
              editorInstance.onchanged = () => {
                drive.write(file, editorInstance.getText());
              };
              setTimeout(() => {
                editorInstance.focus();
              }, 10);
              var res = {
                update: () => {
                  text = drive.read(file);
                  editorInstance.setText(text);
                },
                close: () => {
                  editorInstance.close();
                },
                arrange: (metrics: CommanderShell.Metrics) => (<any>editorInstance).arrange ? (<any>editorInstance).arrange(metrics) : null,
                requestClose: null
              };
              (<any>editorInstance).requestClose = () => {
                if (res.requestClose) res.requestClose();
              };
              return res;
            }
          
          }
      • ts
        • base.ts
          module shell.handlers.ts {
          
            export var preferredFiles = /\.ts$|.tsx$/;
          
            export var entryClass = 'typescript-panel-entry';
          
            /*
            export function exec(file: string, callback: Function) {
              // TODO: load in node
            }
          
            export function edit(file: string, editorHost: HTMLElement, callback: Function) {
              // TODO: augment CodeMirror mode when CodeMirror is supported
              return text.edit(file, editorHost, callback);
            }
            */
          
          }
        • style.css
          .typescript-panel-entry.panels-entry-plain {
            color: forestgreen;
          }
      • API.d.ts
        declare namespace shell.handlers {
        
          export interface Handler {
            preferredFiles?: RegExp;
            handlesFiles?: RegExp;
        
            entryClass?: string | ((path: string) => string);
            exec?(file: string, drive: persistence.Drive, callback: Function): boolean;
            edit?(file: string, drive: persistence.Drive, editorHost: HTMLElement): Handler.Editor;
          }
        
          export namespace Handler {
        
            export interface Editor {
              update?();
              measure?();
              arrange?(metrics: CommanderShell.Metrics);
              close?();
              handleKeydown?(e: KeyboardEvent): boolean;
              requestClose?: () => void;
            }
        
          }
        
        }
      • defaults.ts
        /*module shell.handlers {
          export var defaults = text;
        }*/
    • keybar
      • Keybar.ts
        module shell.keybar {
        
          export class Keybar {
        
            private _fnKeys: { element: HTMLElement; text: string; action: Function; }[] = [];
        
            constructor(private _host: HTMLElement, keys: { text: string; action?: Function; }[]) {
              for (var i = 0; i < keys.length; i++) {
                var k = keys[i];
                var keyElem = elem('div', {
                  position: 'absolute', bottom: '0',
                  whiteSpace: 'nowrap',
                  cursor: 'pointer'
                }, this._host);
                var keyName = (i === 0 ? 'F1' : '' + (i + 1));
                elem('span', { background: 'black', color: 'gray', text: keyName + ' ' }, keyElem);
                elem('span', { background: 'gray', color: 'black', text: k.text }, keyElem);
                this._fnKeys.push({
                  element: keyElem,
                  text: k.text,
                  action: k.action
                });
                on(keyElem, 'click', <any>k.action);
              }
            }
        
            arrange(metrics: { hostWidth; }) {
              var keySize = ((metrics.hostWidth / this._fnKeys.length) | 0);
              for (var i = 0; i < this._fnKeys.length; i++) {
                this._fnKeys[i].element.style.left = (i * keySize) + 'px';
                this._fnKeys[i].element.style.width = keySize + 'px';
              }
            }
        
            handleKeydown(e: KeyboardEvent): boolean {
              var fnKeyIndex = e.keyCode - 112;
              if (fnKeyIndex < 0 || fnKeyIndex >= this._fnKeys.length) return false;
              var k = this._fnKeys[fnKeyIndex];
              if (!k.action) return false;
              k.action();
              return true;
            }
        
          	remove() {
              for (var i = 0; i < this._fnKeys.length; i++) {
                var k = this._fnKeys[i];
                if (k.element.parentElement) {
                  k.element.parentElement.removeChild(k.element);
                }
              }
              this._fnKeys = [];
            }
          }
        
        }
    • layout
      • Metrics.ts
        module shell.layout {
        
          export interface Metrics {
            hostWidth: number;
            hostHeight: number;
            emWidth: number;
            emHeight: number;
          }
        
        }
      • MetricsCollector.ts
        module shell.layout {
        
          export class MetricsCollector {
        
            metrics: CommanderShell.Metrics = {
              hostWidth: 0,
              hostHeight: 0,
              emWidth: 0,
              emHeight: 0
            };
        
            private _metricElem: HTMLDivElement;
        
            constructor(window: Window) {
              this.metrics.hostWidth = window.document.body.offsetWidth;
              this.metrics.hostHeight = window.document.body.offsetHeight;
        
              this._metricElem = window.document.createElement('div');
        
              this._metricElem.style.position = 'absolute';
              this._metricElem.style.opacity = '0';
              this._metricElem.style.left = '-200px';
              this._metricElem.style.top = '-200px';
              this._metricElem.style.width = 'auto';
              this._metricElem.style.height = 'auto';
        
              this._metricElem.innerHTML =
              'MMMMMMMM<br>' +
              'MMMMMMMM<br>' +
              'MMMMMMMM<br>' +
              'MMMMMMMM<br>' +
              'MMMMMMMM<br>' +
              'MMMMMMMM<br>' +
              'MMMMMMMM<br>' +
              'MMMMMMMM';
        
              window.document.body.appendChild(this._metricElem);
            }
        
            resize(winMetrics: { windowWidth: number; windowHeight: number; }) {
              this.metrics.hostWidth = winMetrics.windowWidth;
              this.metrics.hostHeight = winMetrics.windowHeight;
            }
        
            measure() {
              this.metrics.emWidth = this._metricElem.offsetWidth / 8;
              this.metrics.emHeight = this._metricElem.offsetHeight / 8;
            }
          }
        
        }
    • panels
      • Panel.ts
        module shell.panels {
        
          var panelClass = 'panels-panel-page';
        
          export class Panel {
        
            private _cursorPath: string;
            private _cursorEntryIndex = -1;
            private _entries: Panel.PageEntry[] = null;
            private _redrawRequested = 0;
        
            private _metrics: Panel.Metrics = null;
        
            private _scrollContent: HTMLElementWithFlags;
        
            private _pages: Panel.PageData[] = [];
        
            private _entriesInColumn = 0;
            private _pageHeight = 0;
            private _pageInterval = 0;
            private _columnsOnPage = 0;
            private _columnWidth = 0;
        
            private _scrollTop = 0;
            private _scrollTopHeight = 0;
            private _isActive = false;
            private _nextRedrawScrollToCurrent = false;
        
            ondoubleclick: () => boolean = null;
        
        
            constructor(
              private _host: HTMLElement,
              private _path: string,
              private _directoryService: (path: string) => Panel.DirectoryEntry[]) {
        
              this._scrollContent = <HTMLElementWithFlags>elem('div', this._host);
              this._scrollContent.isScrollContent = true;
        
              on(this._host, 'scroll', () => this._onscroll());
        
              this._queueRedraw();
            }
        
            set(paths: { currentPath?: string; cursorPath?: string }) {
              if (paths.currentPath)
                this._path = paths.currentPath;
              if (paths.cursorPath) {
                this._cursorPath = paths.cursorPath;
                this._nextRedrawScrollToCurrent = true;
              }
              this._queueRedraw();
            }
        
            handleClick(e: MouseEvent): boolean {
              if (!this._entries) return;
        
              var clickElem = <HTMLElementWithFlags>(e.srcElement || e.target || e.currentTarget);
              var entryDIV: HTMLElementWithFlags;
              var columnDIV: HTMLElementWithFlags;
              var pageDIV: HTMLElementWithFlags;
              var leadPaddingDIV: HTMLElementWithFlags;
        
              while (clickElem) {
        
                if (clickElem.isScrollContent) {
                  if (clickElem !== this._scrollContent) return false;
                  break;
                }
        
                if (clickElem.isPageDIV)
                  pageDIV = clickElem;
        
                if (clickElem.isColumnDIV)
                  columnDIV = clickElem;
        
                if (clickElem.isEntryDIV)
                  entryDIV = clickElem;
        
                clickElem = <any>clickElem.parentElement;
              }
        
              if (entryDIV) {
                for (var i = 0; i < this._entries.length; i++) {
                  if (this._entries[i].entryDIV === entryDIV) {
                    if (this._cursorPath === this._entries[i].path) {
                      if (this._entries[i].flags & Panel.EntryFlags.Directory) {
                        this._cursorPath = this._path;
                        this._path = this._entries[i].path; // double click (or second click) opens directory
                      }
                      else {
                        // double click (or second click) on  a file
                        this._nextRedrawScrollToCurrent = true;
                        this._queueRedraw();
                        return this.ondoubleclick && this.ondoubleclick();
                      }
                    }
                    else {
                      this._cursorPath = this._entries[i].path;
                    }
                    this._nextRedrawScrollToCurrent = true;
                    this._queueRedraw();
                    break;
                  }
                }
                this._redrawNow();
              }
        
              return true;
            }
        
            currentPath() {
              return this._path;
            }
        
            cursorPath() {
              return this._cursorPath;
            }
        
            arrange(metrics: Panel.Metrics) {
              this._metrics = metrics;
              this._redrawNow();
            }
        
            isActive() {
              return this._isActive;
            }
        
            activate() {
              this._isActive = true;
              this._scrollContent.className = 'panels-panel-active';
            }
        
            deactivate() {
              this._isActive = false;
              this._scrollContent.className = 'panels-panel-inactive';
            }
        
            cursorGo(direction: number) {
              if (!this._entries || !this._entries.length) return;
        
              var moveStep = 0;
        
              switch (direction) {
        
                case -1: // up
                  moveStep = -1;
                  break;
        
                case +1: // down
                  moveStep = +1;
                  break;
        
                case -10: // left
                  var entryIndex = this._calcEntryIndex(this._cursorEntryIndex);
                  if (this._columnsOnPage === 1) {
                    moveStep = -entryIndex || -1;
                  }
                  else {
                    var columnIndex = this._calcColumnIndex(this._cursorEntryIndex);
                    if (columnIndex > 0) {
                      moveStep = -this._entriesInColumn;
                    }
                    else {
                      moveStep = this._entriesInColumn * (this._columnsOnPage - 1) - 1;
        
                      // overflow cases
                      if (this._cursorEntryIndex === 0) {
                        moveStep = this._entriesInColumn * (this._columnsOnPage - 1);
                      }
                      else if (this._cursorEntryIndex + moveStep >= this._entries.length) { // there is no rightmost column
        
                        var endEntryIndex = this._calcEntryIndex(this._entries.length - 1);
                        var endColumnIndex = this._calcColumnIndex(this._entries.length - 1);
        
                        // if the last entry is higher vertically, stop at the previous column
                        var targetColumnIndex = endEntryIndex >= entryIndex ? endColumnIndex : endColumnIndex - 1;
        
                        if (targetColumnIndex <= columnIndex) {
                          moveStep = -entryIndex; // if nowhere to go right, go all the way up
                        }
                        else {
                          // there are columns on the right, so go there (and one up after)
                          moveStep = (targetColumnIndex - columnIndex) * this._entriesInColumn - 1;
                        }
                      }
                    }
                  }
                  break;
        
                case +10: // right
                  var columnIndex = this._calcColumnIndex(this._cursorEntryIndex);
                  if (columnIndex < this._columnsOnPage - 1) {
                    moveStep = +this._entriesInColumn;
                  }
                  else {
                    moveStep = -this._entriesInColumn * 2 + 1;
                  }
                  break;
        
                case -100: // page up
                  moveStep = -this._entriesInColumn * this._columnsOnPage;
                  break;
        
                case +100: // page down
                  moveStep = +this._entriesInColumn * this._columnsOnPage;
                  break;
              }
        
              if (moveStep) {
                var newCursorEntryIndex = Math.max(0, Math.min(this._entries.length - 1, this._cursorEntryIndex + moveStep));
                var e = this._entries[newCursorEntryIndex];
                if (e) {
                  this._cursorPath = this._entries[newCursorEntryIndex].path;
                  this._nextRedrawScrollToCurrent = true;
                  this._queueRedraw();
                }
              }
            }
        
            navigateCursor() {
              if (this._cursorEntryIndex >= 0) {
                var entry = this._entries[this._cursorEntryIndex];
                if (entry) {
                  if (entry.flags & Panel.EntryFlags.Directory) {
                    this._cursorPath = this._path;
                    this._path = entry.path;
                    this._nextRedrawScrollToCurrent = true;
                    this._queueRedraw();
                    return true;
                  }
                }
              }
            }
        
            private _queueRedraw() {
              if (this._redrawRequested) return;
              this._redrawRequested = setTimeout(() => this._redrawNow(), 100);
            }
        
            private _redrawNow() {
        
              var prevOffset = this._calcEntryTopOffset(Math.max(0, this._cursorEntryIndex));
        
              var entries = this._directoryService(this._path);
              this._entries = [];
        
              entries.sort((e1, e2) => {
                var flagCompare = (e1.flags & Panel.EntryFlags.Directory) ?
                  ((e2.flags & Panel.EntryFlags.Directory) ? 0 : -1) :
                  ((e2.flags & Panel.EntryFlags.Directory) ? +1 : 0);
                if (flagCompare) return flagCompare;
        
                var nameCompare = e1.name > e2.name ? 1 : e1.name < e2.name ? -1 : 0;
                return nameCompare;
              });
        
              if (this._path !== '/') {
                var parentPath = this._path.slice(0, this._path.lastIndexOf('/')) || '/';
                entries.unshift({
                  name: '..',
                  path: parentPath,
                  flags: Panel.EntryFlags.Directory
                });
              }
        
              if (!entries || !entries.length) {
                this._scrollContent.innerHTML = '';
                this._pages = [];
                return;
              }
        
              this._cursorEntryIndex = -1;
              for (var i = 0; i < entries.length; i++) {
                if (entries[i].path === this._cursorPath) {
                  this._cursorEntryIndex = i;
                  break;
                }
              }
        
              if (this._cursorEntryIndex < 0) {
                this._cursorEntryIndex = 0;
                this._cursorPath = entries.length > 0 ? entries[0].path : null;
              }
        
              this._entriesInColumn = Math.max(3, ((this._metrics.hostHeight / this._metrics.windowMetrics.emHeight) | 0) - 2);
              this._pageHeight = this._entriesInColumn * this._metrics.windowMetrics.emHeight;
              this._pageInterval = this._metrics.hostHeight - this._pageHeight - this._metrics.windowMetrics.emHeight;
        
              var desiredColumnWidth = 17 * this._metrics.windowMetrics.emWidth;
              this._columnsOnPage = Math.max(1, Math.round(this._metrics.hostWidth / desiredColumnWidth) | 0);
              this._columnWidth = ((this._metrics.hostWidth / this._columnsOnPage) | 0) - 1;
        
              if (!this._pages)
                this._pages = [];
        
              var handlerList: shell.handlers.Handler[] = [];
              for (var k in shell.handlers) if (shell.handlers.hasOwnProperty(k)) {
                var ha: shell.handlers.Handler = shell.handlers[k];
                if (typeof ha === 'object'
                  && ((ha.preferredFiles && typeof ha.preferredFiles.test === 'function')
                    || (ha.handlesFiles && typeof ha.handlesFiles.test === 'function'))) {
                  handlerList.push(ha);
                }
              }
        
              for (var i = 0; i < entries.length; i++) {
                var pageIndex = this._calcPageIndex(i);
                var page = this._pages[pageIndex];
        
                if (page) {
                  if (page.height !== this._pageHeight) {
                    page.height = this._pageHeight;
                    page.pageDIV.style.height = this._pageHeight + 'px';
                  }
                  if (page.leadInterval !== this._pageInterval) {
                    page.leadInterval = this._pageInterval;
                    if (page.leadPaddingDIV)
                      page.leadPaddingDIV.style.height = this._pageInterval + 'px';
                  }
                }
                else {
                  if (pageIndex) {
                    var leadPaddingDIV = <HTMLElementWithFlags>elem('div', {
                      className: 'panels-page-separator',
                      height: this._pageInterval + 'px'
                    }, this._scrollContent);
                    leadPaddingDIV.isLeadPaddingDIV = true;
                  }
        
                  page = {
                    leadPaddingDIV,
                    leadInterval: this._pageInterval,
                    height: this._pageHeight,
                    pageDIV: <HTMLElementWithFlags>elem('div', {
                      className: panelClass,
                      height: this._pageHeight + 'px'
                    }, this._scrollContent),
                    columns: []
                  };
        
                  page.pageDIV.isPageDIV = true;
                  this._pages.push(page);
                }
        
                var columnIndex = this._calcColumnIndex(i);
                var column = page.columns[columnIndex];
                if (column) {
                  if (columnIndex === this._columnsOnPage - 1 && page.columns.length > this._columnsOnPage) {
                    this._removeExcessColumns(page, this._columnsOnPage);
                  }
                  if (column.height !== this._pageHeight) {
                    column.height = this._pageHeight;
                    column.columnDIV.style.height = this._pageHeight + 'px';
                  }
                  if (column.width !== this._columnWidth) {
                    column.width = this._columnWidth;
                    column.columnDIV.style.width = this._columnWidth + 'px';
                  }
                }
                else {
                  column = {
                    height: this._pageHeight,
                    width: this._columnWidth,
                    columnDIV: <HTMLElementWithFlags>elem('div', {
                      className: 'panels-panel-column',
                      height: this._pageHeight + 'px',
                      width: this._columnWidth + 'px'
                    }, page.pageDIV),
                    entries: []
                  };
                  column.columnDIV.isColumnDIV = true;
                  page.columns.push(column);
                }
        
                var dentry = entries[i];
        
                var entryIndex = this._calcEntryIndex(i);
                var extraClassName = this._getExtraClass(dentry.path, handlerList);
                var entry = this._updateEntry(dentry, i, column, entryIndex, extraClassName);
        
                this._entries.push(entry);
        
              }
        
              this._removeExcessPages(pageIndex + 1);
        
              var p = this._pages[pageIndex];
              this._removeExcessColumns(p, columnIndex + 1);
        
              var c = p.columns[columnIndex];
              this._removeExcessEntries(c, entryIndex + 1);
        
        
        
              var newOffset = this._calcEntryTopOffset(Math.max(0, this._cursorEntryIndex));
              if (this._nextRedrawScrollToCurrent) {
                this._nextRedrawScrollToCurrent = false;
                var maxScroll = newOffset - this._metrics.windowMetrics.emHeight * 2;
                var minScroll = newOffset - this._metrics.hostHeight + this._metrics.windowMetrics.emHeight * 3;
        
                var newScrollTop =
                  this._scrollTop < minScroll ? minScroll :
                    this._scrollTop > maxScroll ? maxScroll :
                      -1;
        
                if (newScrollTop >= 0) {
                  //console.log('redraw: scroll to current [' + newScrollTop + ']');
                  this._host.scrollTop = newScrollTop
                }
              }
              else {
                var prevDistanceFromCenter = prevOffset - (this._scrollTop + this._scrollTopHeight / 2);
        
                var newScrollTop = newOffset - prevDistanceFromCenter - this._metrics.hostHeight / 2;
                //console.log({
                //  prevDistanceFromCenter, prevOffset, this_scrollTop: this._scrollTop, this_scrollTopHeight: this._scrollTopHeight,
                //  newOffset, this_metrics_hostHeight: this._metrics.hostHeight, newScrollTop
                //});
                //console.log('redraw: scroll to approximate prev. [' + newScrollTop + ']');
                this._host.scrollTop = newScrollTop;
              }
        
        
              this._redrawRequested = 0;
        
              // end of _redrawNow()
            }
        
            private _getExtraClass(path: string, handlerList: shell.handlers.Handler[]): string {
              for (var i = 0; i < handlerList.length; i++) {
                var ha = handlerList[i];
                if (ha.entryClass && ha.preferredFiles && ha.preferredFiles.test(path)) {
                  if (typeof ha.entryClass === 'string') return <string>ha.entryClass;
                  if (typeof ha.entryClass === 'function') {
                    var className = (<any>ha.entryClass)(path);
                    if (typeof className === 'string') return className;
                  }
                }
              }
        
              for (var i = 0; i < handlerList.length; i++) {
                var ha = handlerList[i];
                if (ha.entryClass && ha.handlesFiles && ha.handlesFiles.test(path)) {
                  if (typeof ha.entryClass === 'string') return <string>ha.entryClass;
                  if (typeof ha.entryClass === 'function') {
                    var className = (<any>ha.entryClass)(path);
                    if (typeof className === 'string') return className;
                  }
                }
              }
        
              return null;
            }
        
            private _updateEntry(
              dentry: Panel.DirectoryEntry,
              indexInDirectory: number,
              column: Panel.ColumnData,
              indexInColumn: number,
              extraClass: string): Panel.PageEntry {
        
              var entry = column.entries[indexInColumn];
        
              var dirfileClassName = dentry.flags & Panel.EntryFlags.Directory ? ' panels-entry-dir' : ' panels-entry-file';
        
              var entryClassName =
                'panels-entry' +
                dirfileClassName +
                (this._cursorEntryIndex === indexInDirectory ? ' panels-entry-current ' + dirfileClassName + '-current' : ' panels-entry-plain ' + dirfileClassName + '-plain');
        
              if (extraClass) entryClassName += ' ' + extraClass;
        
              if (!entry) {
        
                entry = {
                  name: dentry.name,
                  path: dentry.path,
                  flags: dentry.flags,
                  selectionFlags: this._cursorEntryIndex === indexInDirectory ? Panel.SelectionFlags.Current : 0,
                  entryDIV: <HTMLElementWithFlags>elem('div', {
                    className: entryClassName,
                    text: dentry.name,
                    height: this._metrics.windowMetrics.emHeight + 'px'
                  }, column.columnDIV)
                };
        
                entry.entryDIV.isEntryDIV = true;
        
                column.entries.push(entry);
              }
              else {
                var expectedSelectionFlags = this._cursorEntryIndex === indexInDirectory ? Panel.SelectionFlags.Current : 0;
        
                if (entry.name !== dentry.name) {
                  entry.name = dentry.name;
                  setText(entry.entryDIV, dentry.name);
                }
                if (entry.path !== dentry.path) {
                  entry.path = dentry.path;
                }
        
                entry.entryDIV.className = entryClassName;
        
                entry.flags = dentry.flags;
                entry.selectionFlags = expectedSelectionFlags;
        
                if (indexInColumn === this._entriesInColumn - 1 && column.entries.length > this._entriesInColumn) {
                  this._removeExcessEntries(column, this._entriesInColumn);
                }
        
              }
              return entry;
            }
        
        
            private _removeExcessPages(expectedCount: number) {
              for (var i = this._pages.length - 1; i >= expectedCount; i--) {
                var p = this._pages[i];
                p.pageDIV.parentElement.removeChild(p.pageDIV);
                if (p.leadPaddingDIV)
                  p.leadPaddingDIV.parentElement.removeChild(p.leadPaddingDIV);
              }
        
              if (this._pages.length > expectedCount)
                this._pages = this._pages.slice(0, expectedCount);
            }
        
        
            private _removeExcessColumns(p: { columns: Panel.ColumnData[]; }, expectedCount: number) {
              for (var i = p.columns.length - 1; i >= expectedCount; i--) {
                var c = p.columns[i];
                c.columnDIV.parentElement.removeChild(c.columnDIV);
              }
        
              if (p.columns.length > expectedCount)
                p.columns = p.columns.slice(0, expectedCount);
            }
        
        
            private _removeExcessEntries(c: { entries: Panel.PageEntry[]; }, expectedCount: number) {
              for (var i = c.entries.length - 1; i >= expectedCount; i--) {
                var e = c.entries[i];
                e.entryDIV.parentElement.removeChild(e.entryDIV);
              }
        
              if (c.entries.length > expectedCount)
                c.entries = c.entries.slice(0, expectedCount);
            }
        
        
            private _onscroll() {
              if (this._redrawRequested) return;
              this._scrollTop = this._host.scrollTop;
              this._scrollTopHeight = this._metrics.hostHeight;
              //console.log('onscroll ' + this._scrollTop);
            }
        
        
            private _calcPageIndex(indexOfEntry: number): number {
              return (indexOfEntry / (this._columnsOnPage * this._entriesInColumn)) | 0;
            }
        
            private _calcColumnIndex(indexOfEntry: number) {
              return ((indexOfEntry / this._entriesInColumn) | 0) % this._columnsOnPage;
            }
        
            private _calcEntryIndex(indexOfEntry: number) {
              return indexOfEntry % this._entriesInColumn;
            }
        
            private _calcEntryTopOffset(indexOfEntry: number) {
              if (!this._metrics || !this._metrics.windowMetrics) return 0;
        
              var pageIndex = this._calcPageIndex(indexOfEntry);
              var entryIndex = this._calcEntryIndex(indexOfEntry);
              var offset =
                pageIndex * this._entriesInColumn * this._metrics.windowMetrics.emHeight + // whole pages
                Math.max(0, pageIndex - 1) * this._pageInterval + // inter-page spaces
                entryIndex * this._metrics.windowMetrics.emHeight; // distance from the top of the page
        
              return offset;
            }
          }
        
          interface HTMLElementWithFlags extends HTMLElement {
            isScrollContent: boolean;
            isLeadPaddingDIV?: boolean;
            isPageDIV: boolean;
            isColumnDIV: boolean;
            isEntryDIV: boolean;
          }
        
          export module Panel {
        
            export interface Metrics {
              windowMetrics: CommanderShell.Metrics;
              hostWidth: number;
              hostHeight: number;
            }
        
            export interface DirectoryEntry {
              name: string;
              path: string;
              flags: EntryFlags;
            }
        
            export enum EntryFlags {
              Directory = 1
            }
        
            export interface PageData {
              leadPaddingDIV: HTMLElementWithFlags;
              pageDIV: HTMLElementWithFlags;
              columns: ColumnData[];
              height: number;
              leadInterval: number;
            }
        
            export interface ColumnData {
              columnDIV: HTMLElementWithFlags;
              entries: PageEntry[];
              height: number;
              width: number;
            }
        
            export interface PageEntry extends DirectoryEntry {
              entryDIV: HTMLElementWithFlags;
              selectionFlags: SelectionFlags;
            }
        
            export enum SelectionFlags {
              None = 0,
              Current = 1,
              Selected = 2
            }
        
          }
        
        }
      • TwoPanels.ts
        module shell.panels {
        
          var panelHMargin = 10;
          var panelVMargin = 5;
        
          export class TwoPanels {
        
            private _scrollHost: HTMLDivElement;
            private _scrollContent: HTMLDivElement;
        
            private _leftPanelHost: HTMLDivElement;
            private _rightPanelHost: HTMLDivElement;
        
            private _leftPanel: Panel;
            private _rightPanel: Panel;
        
            ondoubleclick: () => boolean = null;
        
            private _directoryService: (path: string) => Panel.DirectoryEntry[];
        
            constructor(
              private _host: HTMLElement,
              leftPath: string,
              rightPath: string,
              private _drive: persistence.Drive) {
        
              this._scrollHost = <any>elem('div', { className: 'panels-scroll-host' }, this._host);
              this._scrollContent = <any>elem('div', { className: 'panels-scroll-content' }, this._scrollHost);
        
              this._leftPanelHost = <any>elem('div', { className: 'panels-panel panels-left-panel' }, this._scrollContent);
              this._rightPanelHost = <any>elem('div', { className: 'panels-panel panels-right-panel' }, this._scrollContent);
        
              this._directoryService = driveDirectoryService(this._drive);
        
              this._leftPanel = new Panel(
                this._leftPanelHost,
                leftPath,
                this._directoryService);
        
              this._rightPanel = new Panel(
                this._rightPanelHost,
                rightPath,
                this._directoryService);
        
              this._leftPanel.activate();
              /*
              TODO: ensure focus stays with the text input at the bottom
              elem.on(this._leftPanel, 'mousedown', e=> {
                if (e.preventDefault)
                  e.preventDefault();
                return false;
              }); */
        
              on(this._leftPanelHost, 'click', (e: MouseEvent) => this._onclick(e, true /*isLeft*/));
              on(this._rightPanelHost, 'click', (e: MouseEvent) => {
                var handled = this._onclick(e, false /*isLeft*/);
                if (handled) {
                  if (e.preventDefault) e.preventDefault();
                }
              });
        
              this._leftPanel.ondoubleclick = () => this.ondoubleclick();
              this._rightPanel.ondoubleclick = () => this.ondoubleclick();
        
            }
        
            onpathchanged: () => void = null;
        
            setPath(path: string) {
              return this._notePathChange(() => this._setPathCore(path));
            }
        
            private _setPathCore(path: string) {
              var norm = normalizePath(path || '');
              if (norm !== '/' && norm.slice(-1) === '/')
                norm = norm.slice(0, norm.slice.length - 1);
        
              if (norm !== '/') {
                // check if valid path
                var parent = norm.slice(0, norm.lastIndexOf('/'));
                var siblings = this._directoryService(parent);
                var foundAndDir = false;
                for (var i = 0; i < siblings.length; i++) {
                  if (siblings[i].path === norm && siblings[i].flags & Panel.EntryFlags.Directory) {
                    foundAndDir = true;
                    break;
                  }
                }
                if (!foundAndDir) return false;
              }
        
              this._getPanel(this.isLeftActive()).set({ currentPath: norm });
              return true;
        
              function normalizePath(path: string): string {
        
                if (!path) return '/'; // empty paths converted to root
        
                if (path.charAt(0) !== '/') // ensuring leading slash
                  path = '/' + path;
        
                path = path.replace(/\/\/*/g, '/'); // replacing duplicate slashes with single
        
                return path;
              }
            }
        
            measure() {
            }
        
            arrange(metrics: CommanderShell.Metrics) {
        
              var contentWidth = 0;
        
              if (metrics.hostWidth < metrics.emWidth * 80 && metrics.hostWidth < metrics.hostHeight * 1) { 
                // flippable layout
                contentWidth = Math.max(metrics.hostWidth / 2, metrics.hostWidth * 2 - metrics.emWidth * 4);
              }
              else {
                // full layout
                contentWidth = metrics.hostWidth;
              }
        
              var bottomGap = Math.min(metrics.hostHeight / 3, metrics.emHeight * 5.5);
        
              this._scrollHost.style.width = metrics.hostWidth + 'px';
              var panelsHeight = metrics.hostHeight - bottomGap;
              this._scrollHost.style.height = panelsHeight + 'px';
        
              this._scrollContent.style.width = contentWidth + 'px';
              this._scrollContent.style.height = panelsHeight + 'px';
        
              var panelWidth = (contentWidth / 2 - 0.5) | 0;
        
              this._leftPanelHost.style.height = panelsHeight + 'px';
              this._leftPanelHost.style.width = panelWidth + 'px';
        
              this._rightPanelHost.style.height = panelsHeight + 'px';
              this._rightPanelHost.style.width = panelWidth + 'px';
        
              if (this._leftPanelHost.style.display !== 'none') {
                this._leftPanel.arrange({
                  windowMetrics: metrics,
                  hostWidth: panelWidth - panelHMargin * 2,
                  hostHeight: panelsHeight - panelVMargin * 2
                });
              }
        
              if (this._rightPanelHost.style.display !== 'none') {
                this._rightPanel.arrange({
                  windowMetrics: metrics,
                  hostWidth: panelWidth - panelHMargin * 2,
                  hostHeight: panelsHeight - panelVMargin * 2
                });
              }
            }
        
            isVisible() {
              return this._scrollHost.style.display !== 'none';
            }
        
            toggleVisibility() {
              this._scrollHost.style.display = this.isVisible() ? 'none' : 'block';
            }
        
            isLeftActive() {
              return this._leftPanel.isActive();
            }
        
            toggleActivePanel() {
              return this._notePathChange(() => this._toggleActivePanel());
            }
          
          	private _toggleActivePanel() {
              if (!this.isVisible()) return;
        
              var isLeftActive = this._leftPanel.isActive();
              this._getPanel(isLeftActive).deactivate();
              this._getPanel(!isLeftActive).activate();
            }
        
            temporarilyHidePanels(): () => void {
        
              var start = +new Date();
              var stayTime = 200;
              var fadeTime = 500;
              var opacity = 0.1;
              var applyOpacity = () => {
                this._scrollHost.style.opacity = <any>opacity;
                this._scrollHost.style.filter = 'alpha(opacity=' + (opacity * 100) + ')';
              };
              applyOpacity();
        
              var animateBack = () => {
                animateBack = () => { };
        
                var startFade = () => {
                  var fadeStart = +new Date();
                  var ani = setInterval(() => {
                    var passed = (Date.now ? Date.now() : +new Date()) - fadeStart;
                    if (passed > fadeTime) {
                      clearInterval(ani);
                      this._scrollHost.style.opacity = null;
                      this._scrollHost.style.filter = null;
                      return;
                    }
        
                    opacity = passed / fadeTime;
                    applyOpacity();
                  }, 1);
                };
        
                var sinceStart = +new Date() - start;
                if (sinceStart >= stayTime) {
                  startFade();
                }
                else {
                  setTimeout(startFade, fadeTime - sinceStart);
                }
              };
        
              return animateBack;
            }
        
            keydown(e: KeyboardEvent): boolean {
              switch (e.keyCode) {
                case 38:
                  return this._selectionGo(-1);
                case 40:
                  return this._selectionGo(+1);
                case 33:
                  return this._selectionGo(-100);
                case 34:
                  return this._selectionGo(+100);
                case 37:
                  return this._selectionGo(-10);
                case 39:
                  return this._selectionGo(+10);
                case 9:
                  this.toggleActivePanel();
                  return true;
                case 86: // U
                  if (e.ctrlKey || e.metaKey)
                    return this.togglePanelPaths();
                  break;
        
                case 112: // F1
                  if (e.ctrlKey || e.metaKey) {
                    return this.togglePartHidden(true);
                  }
                  break;
        
                case 113: // F2
                  if (e.ctrlKey || e.metaKey) {
                    return this.togglePartHidden(false);
                  }
                  break;
        
                case 13: // Enter
                  return this._notePathChange(() => {
                    var activePa = this._getPanel(this.isLeftActive());
                    return activePa.navigateCursor();
                  });
        
                default:
                  if (e.ctrlKey) {
                    //console.log('ctrl ' + e.keyCode);
                  }
                  break;
              }
        
              return false;
            }
        
            togglePartHidden(leftPanel: boolean) {
              return this._notePathChange(() => this._togglePartHiddenCore(leftPanel));
            }
        
            private _togglePartHiddenCore(leftPanel: boolean) {
              var togglePanelHost = this._getPanelHost(leftPanel);
              var oppositePanelHost = this._getPanelHost(!leftPanel);
        
              if (!this.isVisible()) {
                togglePanelHost.style.display = 'block';
                oppositePanelHost.style.display = 'none';
                if (this.isLeftActive() !== leftPanel)
                  this.toggleActivePanel();
                this.toggleVisibility();
              }
              else {
                if (togglePanelHost.style.display !== 'none') {
                  if (oppositePanelHost.style.display === 'none') {
                    togglePanelHost.style.display = 'block';
                    this.toggleVisibility();
                  }
                  else {
                    togglePanelHost.style.display = 'none';
                    if (this.isLeftActive() === leftPanel)
                      this.toggleActivePanel();
                  }
                }
                else {
                  togglePanelHost.style.display = 'block';
                }
              }
              return true;
            }
        
            togglePanelPaths() {
              console.log('Ctrl+U toggle is not implemented.');
              return false;
            }
        
            cursorPath() {
              if (!this.isVisible()) return null;
              var pan = this._getPanel(this.isLeftActive());
              return pan.cursorPath();
            }
        
            currentPath() {
              if (!this.isVisible()) return null;
              var pan = this._getPanel(this.isLeftActive());
              return pan.currentPath();
            }
        
            cursorOppositePath() {
              if (!this.isVisible()) return null;
              var pan = this._getPanel(!this.isLeftActive());
              return pan.cursorPath();
            }
        
            currentOppositePath() {
              if (!this.isVisible()) return null;
              var pan = this._getPanel(!this.isLeftActive());
              return pan.currentPath();
            }
        
            private _selectionGo(direction: number) {
              var panel = this._getPanel(this.isLeftActive()).cursorGo(direction);
              return true;
            }
        
            private _getPanel(left: boolean) {
              return left ? this._leftPanel : this._rightPanel;
            }
        
            private _getPanelHost(left: boolean) {
              return left ? this._leftPanelHost : this._rightPanelHost;
            }
        
            private _onclick(e: MouseEvent, isLeft: boolean) {
              if (isLeft !== this.isLeftActive()) this.toggleActivePanel();
        
              var panel = this._getPanel(isLeft);
              return this._notePathChange(() => panel.handleClick(e));
            }
          
          	private _notePathChange(fn) {
              var path = this.currentPath();
              var result = fn();
              var newPath = this.currentPath();
              if (newPath != path && this.onpathchanged) {
                this.onpathchanged();
              }
              return result;
          }
        
          }
        
        }
      • driveDirectoryService.ts
        module shell.panels {
        
          export function driveDirectoryService(drive: persistence.Drive) {
        
            return path => {
              var pathPrefix = path === '/' ? path : path + '/';
              var result: Panel.DirectoryEntry[] = [];
              var resByName: { [name: string]: Panel.DirectoryEntry; } = {};
              var files = drive.files();
              for (var i = 0; i < files.length; i++) {
                var fi = files[i];
                if (fi.length < pathPrefix.length + 1) continue;
        
                if (fi.slice(0, pathPrefix.length) !== pathPrefix) continue;
        
                var name: string;
                var entryPath = fi;
                var isDirectory = false;
                var nextSlashPos = fi.indexOf('/', pathPrefix.length);
                if (nextSlashPos < 0) {
                  name = fi.slice(pathPrefix.length);
                }
                else {
                  name = fi.slice(pathPrefix.length, nextSlashPos);
                  entryPath = fi.slice(0, nextSlashPos);
                  isDirectory = true;
                }
        
                if (resByName.hasOwnProperty(name)) continue;
                var entry = { path: entryPath, name, flags: isDirectory ? Panel.EntryFlags.Directory : 0 };
                result.push(entry);
                resByName[name] = entry;
              }
              return result;
            };
        
          }
        
        }
      • panels.css
        .panels-scroll-host {
          position: absolute;
          left: 0; top: 0; width: 0; height: 0;
          overflow: auto;
          overflow-y: hidden;
          background: black;
          background: transparent;
        }
        
        .panels-scroll-content {
          width: 0; height: 0;   overflow: hidden;
        }
        
        .panels-panel {
          width: 0; height: 0;
          overflow: auto;
          overflow-x: hidden;
          background: rgba(4, 12, 64, 0.95) !important;
          background: navy;
          color: darkcyan;
          padding-top: 10px;
          padding-bottom: 10px;
          cursor: default;
        }
        
        .panels-panel * {
          cursor: default;
        }
        
        .panels-left-panel {
          float: left;
        }
        
        .panels-right-panel {
          float: right;
        }
        
        .panels-panel-page {
          clear: both;
        }
        
        .panels-page-separator {
          clear: both;
        }
        
        .panels-panel-column {
          float: left;
        }
        
        .panels-entry {
          padding-left: 10px;
          padding-right: 10px;
        }
        
        .panels-entry-dir {
          color: white;
        }
        
        .panels-panel-active .panels-entry-current {
          background: darkcyan;
        }
        
        .panels-panel-active .panels-entry-file-current {
          color: navy;
        }
        
    • terminal
      • CommandHistory.ts
        module shell.terminal {
        
          export class CommandHistory {
        
            private _history = [new CommandHistoryEntry()];
            private _index = 0;
        
            constructor() {
            }
        
            persistAndStartNew(input: HTMLInputElement | HTMLTextAreaElement) {
              if (!(input.value || '').replace(/\s/g, '')) {
                if (this._index === this._history.length - 1) return; // it's already empty, and it's the last entry too
        
                this._history[this._index].restore();
        
                if (this._history[this._index].edit.replace(/\s/g, ''))
                  this._history.push(new CommandHistoryEntry());
              }
              else {
                if (this._index === this._history.length - 1) {
                  this._history[this._index].storeEdit(input);
                  this._history.push(new CommandHistoryEntry());
                }
                else {
                  this._history[this._index].restore();
                  if (!this._history[this._history.length - 1].text) {
                    if (this._history[this._history.length - 1].edit)
                      this._history[this._history.length - 1].text = this._history[this._history.length - 1].edit;
                    else
                      this._history.pop();
                  }
                  else if (!this._history[this._history.length - 1].edit) {
                    this._history[this._history.length - 1].edit = this._history[this._history.length - 1].text;
                  }
                  this._history.push(new CommandHistoryEntry(input));
                  this._history.push(new CommandHistoryEntry());
                }
              }
              this._index = this._history.length - 1;
              input.value = '';
            }
        
            scrollUp(input: HTMLInputElement | HTMLTextAreaElement): boolean {
              return this._scroll(input, -1);
            }
        
            scrollDown(input: HTMLInputElement | HTMLTextAreaElement): boolean {
              return this._scroll(input, +1);
            }
        
             private _scroll(input: HTMLInputElement | HTMLTextAreaElement, step: number): boolean {
               var newIndex = this._index + step;
               if (newIndex < 0 || newIndex >= this._history.length) return false;
               this._history[this._index].storeEdit(input);
               this._index = newIndex;
               this._history[this._index].applyTo(input);
             }
          }
        }
      • CommandHistoryEntry.ts
        module shell.terminal {
        
          export class CommandHistoryEntry {
        
            edit: string;
            text: string;
            start: number;
            end: number;
        
            constructor(takeContent?: HTMLInputElement | HTMLTextAreaElement) {
              if (takeContent) {
                this.storeEdit(takeContent);
                this.text = this.edit;
              }
              else {
                this.edit = this.text = '';
                this.start = this.end = 0;
              }
            }
        
            storeEdit(takeContent: HTMLInputElement | HTMLTextAreaElement) {
              this.edit = takeContent.value;
              if (!this.text) this.text = this.edit;
        
              if ('selectionStart' in takeContent) {
                this.start = takeContent.selectionStart;
                this.end = takeContent.selectionEnd;
              }
              else {
                this._tryStoreSelectionIE(takeContent);
              }
            }
        
            applyTo(takeContent: HTMLInputElement | HTMLTextAreaElement) {
              takeContent.value = this.edit;
              this._applySelection(takeContent);
              setTimeout(() => {
                if (takeContent.value === this.edit) this._applySelection(takeContent);
              }, 1);
            }
        
            restore() {
              this.edit = this.text;
            }
        
            private _applySelection(input: HTMLInputElement | HTMLTextAreaElement) {
              if ('selectionStart' in input) {
                input.selectionStart = this.start;
                input.selectionEnd = this.end;
              }
              else {
                this._tryApplySelectionIE(input);
              }
            }
        
            private _tryStoreSelectionIE(input: HTMLInputElement | HTMLTextAreaElement): boolean {
              var selection = (<any>document).selection;
              var range: TextRange = selection ? selection.createRange() : null;
        
              if (!range || range.parentElement() !== input) return false;
        
              var len = input.value.length;
              var normalizedValue = input.value.replace(/\r\n/g, "\n");
        
              // Create a working TextRange that lives only in the input
              var textInputRange = input.createTextRange();
              textInputRange.moveToBookmark(range.getBookmark());
        
              // Check if the start and end of the selection are at the very end
              // of the input, since moveStart/moveEnd doesn't return what we want
              // in those cases
              var endRange = input.createTextRange();
              endRange.collapse(false);
        
              if (textInputRange.compareEndPoints("StartToEnd", endRange) > -1) {
                this.start = this.end = len;
                return true;
              }
        
              this.start = -textInputRange.moveStart("character", -len);
              this.start += normalizedValue.slice(0, this.start).split("\n").length - 1;
        
              if (textInputRange.compareEndPoints("EndToEnd", endRange) > -1) {
                this.end = len;
              } else {
                this.end = -textInputRange.moveEnd("character", -len);
                this.end += normalizedValue.slice(0, this.end).split("\n").length - 1;
              }
              return true;
            }
        
            private _tryApplySelectionIE(input: HTMLInputElement | HTMLTextAreaElement): boolean {
              if (!input.createTextRange) return false;
              var range = input.createTextRange();
              range.collapse(true);
              range.moveStart('character', this.start);
              range.moveEnd('character', this.end);
              range.select();
            }
          }
        
        }
      • Terminal.ts
        module shell.terminal {
        
          export class Terminal {
        
            private _history: HTMLDivElement;
            private _historyContent: HTMLDivElement;
            private _prompt: HTMLDivElement;
            private _promptText: HTMLSpanElement;
            private _promptDelim: HTMLSpanElement;
            private _input: HTMLTextAreaElement;
        
            private _promptWidth = 0;
            private _historyContentHeight = 0;
            private _hostMetrics: CommanderShell.Metrics = null;
            private _commandHistory = new CommandHistory();
        
            private _rearrangeDelay = 0;
            private _rearrangeClosure = null;
        
            onexecute: (code: string) => any = null;
        
            constructor(private _host: HTMLElement, private _repl: noapi.HostedProcess) {
              this._history = <any>elem('div', { className: 'terminal-history' }, this._host);
              this._historyContent = <any>elem('pre', {
                className: 'terminal-history-content',
                text: 'Hello world from mini-shell\n\nVersion 0.7s\n' + shell.buildMessage + '\nOleg Mihailik\n\nPlease be careful.'
              }, this._history);
        
              this._prompt = <any>elem('div', { className: 'terminal-prompt' }, this._host);
              this._promptText = <any>elem('span', { className: 'terminal-prompt-text' }, this._prompt);
              this._promptDelim = <any>elem('span', { className: 'terminal-prompt-delim', text: '>' }, this._prompt);
        
              this._input = <any>elem('textarea', { className: 'terminal-input', autofocus: true }, this._host);
              this._input.setAttribute('autocorrect', 'off');
              this._input.setAttribute('autocapitalize', 'off');
        
              setTimeout(() => this._input.focus(), 1);
        
            }
        
            setPath(path: string) {
              setText(this._promptText, path);
              this._queueRearrange();
            }
        
            writeDirect(text: string) {
              elem('div', { text, opacity: 0.4 }, this._historyContent);
              this._queueRearrange();
            }
        
            log(args: any[]) {
              log(args, this._historyContent);
              this._queueRearrange();
            }
        
            isInputEmpty() {
              return !this._input.value;
            }
        
            getInput() {
              return (this._input.value || '').replace(/[\r\n]/g, '');
            }
        
        
            focus() {
              this._input.focus();
            }
        
            temporarilyHidePrompt(replacementText: string): () => void {
              // TODO: hide prompt, display replacement text instead
              return () => { };
            }
        
            measure() {
              this._promptWidth = this._prompt.offsetWidth;
              this._historyContentHeight = this._historyContent.offsetHeight;
            }
        
            arrange(metrics: CommanderShell.Metrics) {
        
              this._hostMetrics = metrics;
        
              this._history.style.width = metrics.hostWidth + 'px';
        
              this._history.style.bottom = (metrics.emHeight * 2.4) + 'px';
              if (metrics.hostHeight - metrics.emHeight * 2.4 > this._historyContentHeight) {
                this._history.style.height = this._historyContentHeight + 'px';
              }
              else {
                this._history.style.height = (metrics.hostHeight - metrics.emHeight * 2.4) + 'px';
                this._history.scrollTop = this._historyContentHeight - (metrics.hostHeight - metrics.emHeight * 2.4);
              }
              this._input.style.left = this._promptWidth + 'px';
              this._input.style.width = (metrics.hostWidth - this._promptWidth) + 'px';
            }
        
            storeAsHistory(command: string) {
              this._commandHistory.persistAndStartNew(this._input);
              this._input.value = command;
              this._commandHistory.persistAndStartNew(this._input);
            }
        
            keydown(e: KeyboardEvent, cursorPath: string) {
              if (e.keyCode === 27) {
                this._input.value = '';
                return true;
              }
              else if (e.keyCode === 38) {
                return this._commandHistory.scrollUp(this._input);
              }
              else if (e.keyCode === 40) {
                return this._commandHistory.scrollDown(this._input);
              }
              else if (e.keyCode === 13) {
                var code = this.getInput();
                this._commandHistory.persistAndStartNew(this._input);
        
                if (code) {
                  if (code.slice(-2) === '\r\n')
                    code = code.slice(0, code.length - 2);
                  this._input.value = '';
                  elem('div', {
                    text: code,
                    color: 'gray'
                  }, this._historyContent);
                  this._queueRearrange();
        
                  setTimeout(() => this._evalAndLogResults(code), 20);
                  return true;
                }
                else {
                  return false;
                }
              }
            }
        
          	private _queueRearrange() {
              if (this._rearrangeDelay) {
                clearTimeout(this._rearrangeDelay);
                this._rearrangeDelay = 0;
              }
        
              if (!this._rearrangeClosure) {
                this._rearrangeClosure = () => {
                  if (this._hostMetrics) {
                    this.measure();
                    this.arrange(this._hostMetrics);
                  }
                };
              }
        
              this._rearrangeDelay = setTimeout(this._rearrangeClosure, 10);
            }
        
        
            private _evalAndLogResults(code: string) {
        
              var result;
              try {
                if (this.onexecute) {
                  result = this.onexecute(code);
                }
                else {
                  result = this._repl.eval(code);
                }
              }
              catch (error) {
                elem('div', {
                  text: error && error.stack ? error.stack : error,
                  color: 'red'
                }, this._historyContent);
        
                this._queueRearrange();
                return;
              }
        
              if (typeof result !== 'undefined')
              	this.log([result]);
            }
        
        
          }
        
        }
      • log.ts
        module shell.terminal {
        
          export function log(args: any[], historyContent: HTMLElement) {
            var output = elem('div', historyContent);
            for (var i = 0; i < args.length; i++) {
              if (i > 0)
                elem('span', { text: ' ' }, output);
              if (args[i] === null) {
                elem('span', { text: 'null', color: 'green' }, output);
              }
              else {
                logAppendObj(args[i], <any>output, 0);
              }
            }
          }
        }
      • logAppendObj.ts
        module shell.terminal {
        
          export function logAppendObj(obj: any, output: HTMLDivElement, level: number) {
        
            switch (typeof obj) {
              case 'number':
              case 'boolean':
                elem('span', { text: obj, color: 'green' }, output);
                break;
        
              case 'undefined':
                elem('span', { text: 'undefined', color: 'green', opacity: 0.5 }, output);
                break;
        
              case 'function':
                var funContainer = elem('span', output);
                var funFunction = elem('span', { text: 'function ', color: 'silver', opacity: 0.5 }, funContainer);
                var funName = elem('span', { text: obj.name, color: 'cornflowerblue', fontWeight: 'bold' }, funContainer);
                elem('span', { text: '() { ... }', opacity: 0.5, title: obj }, funContainer);
                break;
        
              case 'string':
                var strContainer = elem('span', output);
                elem('span', { text: '"', color: 'tomato' }, strContainer);
                elem('span', { text: obj, color: 'tomato', opacity: 0.5 }, strContainer);
                elem('span', { text: '"', color: 'tomato' }, strContainer);
                break;
        
              default:
                if (obj === null) {
                  elem('span', { text: 'null', color: 'green', opacity: 0.5 }, output);
                  break;
                }
        
                if (typeof obj.getFullYear === 'function' && typeof obj.getTime === 'function' && typeof obj.constructor.parse === 'function') {
                  elem('span', { text: 'Date(', color: 'green', opacity: 0.5 }, output);
                  elem('span', { text: obj, color: 'green' }, output);
                  elem('span', { text: ')', color: 'green', opacity: 0.5 }, output);
                  break;
                }
        
                if (obj.constructor && obj.constructor.name !== 'Object' && obj.constructor.name !== 'Array') {
                  elem('span', { text: obj.constructor.name, color: 'cornflowerblue' }, output);
                  if (obj.constructor.prototype && obj.constructor.prototype.constructor
                    && obj.constructor.prototype.constructor.name
                    && obj.constructor.prototype.constructor.name !== 'Object' && obj.constructor.prototype.constructor.name !== 'Array'
                    && obj.constructor.prototype.constructor.name !== obj.constructor.name)
                    elem('span', { text: ':' + obj.constructor.prototype.constructor.name, color: 'cornflowerblue', opacity: 0.5 }, output);
                  elem('span', output);
                }
        
                if (typeof obj.length === 'number' && obj.length >= 0) {
                  elem('span', { text: '[', color: 'white' }, output);
                  if (level > 1) {
                    elem('span', { text: '...', color: 'silver' }, output);
                    // TODO: handle click
                  }
                  else {
                    for (var i = 0; i < obj.length; i++) {
                      if (i > 0) elem('span', { text: ', ', color: 'gray' }, output);
                      if (typeof obj[i] !== 'undefined')
                        logAppendObj(obj[i], output, level + 1);
                    }
                  }
                  elem('span', { text: ']', color: 'white' }, output);
                }
                else if (obj.createElement + '' === document.createElement + '' && obj.getElementById + '' === document.getElementById + '' && 'title' in obj) {
                  elem('span', { text: '#document ' + obj.title, color: 'green' }, output);
                }
                else if (obj.setInterval + '' === window.setInterval + '' && obj.setTimeout + '' === window.setTimeout + '' && 'location' in obj) {
                  elem('span', { text: '#window ' + obj.location, color: 'green' }, output);
                }
                else if (typeof obj.tagName === 'string' && obj.getElementsByTagName + '' === document.body.getElementsByTagName + '') {
                  elem('span', { text: '<' + obj.tagName + '>', color: 'green' }, output);
                }
                else if (obj + '' !== '[Object]') {
                  elem('span', { text: '{', color: 'cornflowerblue' }, output);
                  if (level > 1) {
                    elem('span', { text: '...', color: 'cornflowerblue', opacity: 0.5 }, output);
                    // TODO: handle click
                  }
                  else {
                    var first = true;
                    var hadMessage = false;
                    for (var k in obj) {
                      if (obj.hasOwnProperty && !obj.hasOwnProperty(k)) continue;
                      if (first) {
                        if (level) {
                          elem('br', output);
                          var indentStr = Array(level + 2).join('  ');
                          elem('span', { text: indentStr }, output);
                        } else {
                          elem('span', { text: ' ' }, output);
                        }
                        first = false;
                      }
                      else {
                        elem('span', { text: ',', color: 'cornflowerblue', opacity: 0.3 }, output);
                        elem('br', output);
                        var indentStr = Array(level + 2).join('  ');
                        elem('span', { text: indentStr }, output);
                      }
        
                      elem('span', { text: k, color: 'cornflowerblue', fontWeight: 'bold' }, output);
                      elem('span', { text: ': ', color: 'cornflowerblue', opacity: 0.5 }, output);
                      logAppendObj(obj[k], output, level + 1);
                      if (k === 'message') hadMessage = true;
                    }
                    if (typeof obj.message === 'string' && !hadMessage) {
                      elem('span', { text: 'message', color: 'tomato', fontWeight: 'bold' }, output);
                      elem('span', { text: ': ', color: 'tomato', opacity: 0.5 }, output);
                      elem('span', { text: obj.message, color: 'tomato' }, output);
                    }
                  }
                  if (!first) elem('span', ' ', output);
        
                  elem('span', { text: '}', color: 'cornflowerblue' }, output);
                }
                else {
                  elem('span', { text: obj, color: 'cornflowerblue' }, output);
                }
                break;
            }
          }
        
        }
      • terminal.css
        .terminal-history {
          position: absolute;
          left: 0; bottom: 1.8em;
          width: 100%; height: 0;
          overflow-y: auto;
          overflow-x: hidden;
        }
        
        .terminal-history-content {
          margin: 0; padding: 0;
        }
        
        .terminal-prompt {
          position: absolute;
          left: 0; bottom: 1.5em;
          height: 1.2em;
        }
        
        .terminal-prompt-text {
          opacity: 0.5;
        }
        
        .terminal-input {
          position: absolute;
          left: 0; bottom: 1.5em;
          width: 0; height: 1.2em;
          font: inherit;
          border: none;
          background: transparent;
          color: silver;
          outline: none;
          resize: none;
          overflow: hidden;
        }
    • types
      • text
        • Handler.ts
          namespace shell.types.text {
          
          
            export var intendedFiles = '*.txt';
            // export var acceptedFiles = '*.*';
          
            export var env: FileTypeModuleEnvironment;
          
            export function load(file: string): FileEntryHandler {
          
              class TextFileHandler {
          
                constructor(private _file: string, private _drive: persistence.Drive) {
                }
          
                //entryClassName = '...';
                edit(host: HTMLElement) {
                  //return new TextAreaEditor();
                }
              }
          
          
              return null;// new TextFileHandler(file, env.drive);
            }
          }
        • TextAreaEditor.ts
          namespace shell.types.text {
          
            export class TextAreaEditor {
          
              private _textarea: HTMLTextAreaElement;
              private _title: HTMLDivElement;
          
              constructor(private _file: string, private _host: HTMLElement, content: string, private _write: (content: string) => void) {
          
                this._textarea = <any>elem('textarea', {
                  background: 'navy',
                  color: 'silver',
                  top: '0', left: '0',
                  width: '100%', height: '100%', position: 'absolute',
                  borderTop: 'solid 1em black',
                  overflow: 'auto'
                }, this._host);
          
                this._title = <any>elem('div', {
                  position: 'absolute',
                  top: '0', left: '0',
                  width: '100%', height: '1em',
                  background: 'silver', color: 'navy',
                  text: this._file
                }, this._host);
          
                if (typeof content === 'string')
                  this._textarea.value = content;
                if (this._textarea.setSelectionRange) {
                  this._textarea.setSelectionRange(0, 0);
                }
                else if ('selectionStart' in this._textarea && 'selectionEnd' in this._textarea) {
                  this._textarea.selectionStart = 0;
                  this._textarea.selectionEnd = 0;
                }
              }
          
              close() {
                this._write(this._textarea.value);
                this._host.removeChild(this._textarea);
                this._host.removeChild(this._title);
              }
          
            }
          
          }
      • api.ts
        namespace shell.types {
        
          export interface FileTypeModule {
        
            intendedFiles?: string | RegExp;
            acceptedFiles?: string | RegExp;
        
            env?: FileTypeModuleEnvironment;
        
            init?(): void;
        
            load(file: string): FileEntryHandler;
        
          }
        
          export interface FileTypeModuleEnvironment {
            drive: persistence.Drive;
            onwrite?: (files: string[]) => void;
          }
        
          export interface FileEntryHandler {
        
            entryClassName?: string;
            edit?(host: HTMLElement): { close(): void; };
        
          }
        
        }
    • CommanderShell.ts
      module shell {
      
        export class CommanderShell {
      
          private _drive: persistence.Drive;
      
          private _metrics: layout.MetricsCollector;
          private _twoPanels: panels.TwoPanels;
          private _terminal: terminal.Terminal;
      
          private _repl: noapi.HostedProcess;
          private _replAlive: Function;
      
          private _editor: handlers.Handler.Editor = null;
      
          private _keybar: keybar.Keybar;
      
          private _opts: { onchanges: any; };
      
          constructor(private _host: HTMLElement, private _originalDrive: persistence.Drive, complete: () => string) {
      
            var wrappedDrive = persistence.trackChanges(this._originalDrive);
            this._drive = wrappedDrive.drive;
            wrappedDrive.onchanges = changedFiles => this._onDriveChange(changedFiles);
      
            this._repl = new noapi.HostedProcess(this._opts = <any>{
              window: window,
              drive: this._drive,
              scriptPath: '/node_modules/repl.js',
              console: { log: (...args: any[]) => this._terminal.log(args) }
            });
            this._enhanceNoprocess(this._repl);
            this._replAlive = this._repl.keepAlive();
      
            elem(this._host, {
              background: 'black',
              color: 'silver'
            });
      
            this._metrics = new layout.MetricsCollector(window);
      
            this._terminal = new terminal.Terminal(this._host, this._repl);
            this._twoPanels = new panels.TwoPanels(this._host, '/', '/src', this._drive);
            this._twoPanels.ondoubleclick = () => this._twoPanels_doubleclick();
            this._twoPanels.onpathchanged = () => {
              this._terminal.setPath(this._twoPanels.currentPath());
            };
      
            this._keybar = new keybar.Keybar(this._host, [
              { text: 'Help' },
              { text: '<None>' },
              { text: 'View' },
              { text: 'Edit', action: () => this._openEditor(this._twoPanels.cursorPath()) || true },
              { text: 'Copy', action: () => this._command(actions.copy) },
              { text: 'Move/Rename', action: () => this._command(actions.move) },
              { text: 'MkDir', action: () => this._command(actions.mkDir) },
              { text: 'Delete', action: () => this._command(actions.remove) },
              { text: 'Options' },
              { text: 'Save', action: () => actions.save() || true }
            ]);
      
            var resizeMod = require('resize');
            resizeMod.on(winMetrics => {
              this._metrics.resize(winMetrics);
              this.measure();
              this.arrange();
            });
      
            this.measure();
            this.arrange();
      
            on(this._host, 'keydown', e => this._keydown(<any>e));
      
            var _glob = (function() { return this; })();
            var applyConsole = (glob) => {
              if (glob.console) {
                var _oldLog: Function = glob.console.log;
                var term = this._terminal;
                console.log = function() {
                  var args = [];
                  for (var i = 0; i < arguments.length; i++) {
                    args.push(arguments[i]);
                  }
                  term.log(args);
                  if (typeof _oldLog === 'function')
                    _oldLog.apply(glob.console, args);
                };
              }
              else {
                var term = this._terminal;
                glob.console = {
                  log: function() {
                    var args = [];
                    for (var i = 0; i < arguments.length; i++) {
                      args.push(arguments[i]);
                    }
                    term.log(args);
                  }
                };
              }
            };
      
            applyConsole(_glob);
            applyConsole(window);
      
            setTimeout(() => {
              this._terminal.writeDirect(complete());
            }, 1);
      
            this._terminal.onexecute = code=> this._terminalExecute(code);
          }
      
          measure() {
            this._metrics.measure();
            this._twoPanels.measure();
            this._terminal.measure();
            if (this._editor && this._editor.measure) this._editor.measure();
          }
      
          arrange() {
            this._host.style.width = this._metrics.metrics.hostWidth + 'px';
            this._host.style.height = this._metrics.metrics.hostHeight + 'px';
            this._twoPanels.arrange(this._metrics.metrics);
            this._terminal.arrange(this._metrics.metrics);
            if (this._editor && this._editor.arrange) this._editor.arrange(this._metrics.metrics);
      
            this._keybar.arrange(this._metrics.metrics);
          }
      
          private _twoPanels_doubleclick(): boolean {
            var cursorPath = this._twoPanels.cursorPath();
            return this._execute(cursorPath, null);
          }
      
          private _keydown(e: KeyboardEvent) {
            var res = this._keydownCore(e);
            if (res) {
              if (e.preventDefault)
                e.preventDefault();
            }
            return res;
          }
      
          private _keydownCore(e: KeyboardEvent) {
            if (this._editor) {
              if (this._editor.handleKeydown) {
                if (this._editor.handleKeydown(e)) return true;
              }
      
              if (e.keyCode === 27) {
                this._closeEditor();
                return true;
              }
              return;
            }
      
            if (e.keyCode === 27) {
              if (!this._terminal.isInputEmpty()) {
                return this._terminal.keydown(e, this._twoPanels.cursorPath());
              }
              else if (!e.altKey && !e.shiftKey && !e.ctrlKey && !e.metaKey) {
                this._twoPanels.toggleVisibility();
                return true;
              }
            }
      
            if (this._twoPanels.isVisible() && (e.keyCode !== 13 || this._terminal.isInputEmpty())) {
              if (this._twoPanels.keydown(e)) return true;
            }
      
            var cursorPath = this._twoPanels.cursorPath();
      
            this._terminal.focus();
            if (this._terminal.keydown(e, cursorPath)) return true;
      
            if (e.keyCode === 13)
              return this._execute(cursorPath, null);
      
            //if (e.keyCode < 32 || e.keyCode > 126) {
            //	this._terminal.log('CommanderShell::keydown ' + e.yCode);
            //}
      
            if (this._keybar.handleKeydown(e)) return true;
      
            if (e.ctrlKey || e.altKey || e.metaKey) {
              //this._terminal.log(['CommanderShell::keydown ', e.keyCode]);
            }
          }
      
          private _command(action: (drive: persistence.Drive, selectedPath: string, targetPanelPath: string) => boolean) {
            var cursorPath = this._twoPanels.cursorPath();
            var currentOppositePath = this._twoPanels.currentOppositePath();
      
            var runResult = action(this._drive, cursorPath, currentOppositePath);
      
            if (!runResult) return false;
      
            this.measure();
            this.arrange();
      
            return true;
          }
      
          private _closeEditor() {
            this._editor.close();
            this._editor = null;
            this.measure();
            this.arrange();
          }
      
          private _openEditor(cursorPath: string) {
            if (!cursorPath)
              return false;
      
            var handlerList: shell.handlers.Handler[] = [];
            for (var k in shell.handlers) if (shell.handlers.hasOwnProperty(k)) {
              var ha: shell.handlers.Handler = shell.handlers[k];
              if (typeof ha === 'object'
                && ((ha.preferredFiles && typeof ha.preferredFiles.test === 'function')
                  || (ha.handlesFiles && typeof ha.handlesFiles.test === 'function'))) {
                handlerList.push(ha);
              }
            }
      
            var loadEditor = (ha: handlers.Handler) => {
              if (typeof ha.edit !== 'function') return false;
              this._editor = ha.edit(cursorPath, this._drive, this._host);
              if (this._editor) {
                // force relayout just in case
                this.measure();
                this.arrange();
                this._editor.requestClose = () => this._closeEditor();
                this._terminal.writeDirect('@edit ' + cursorPath);
                return true
              }
              return false;
            };
      
            for (var i = 0; i < handlerList.length; i++) { // find preferred handlers
              var ha = handlerList[i];
              if (ha.entryClass && ha.preferredFiles && ha.preferredFiles.test(cursorPath)) {
                if (loadEditor(ha)) return true;
              }
            }
      
            for (var i = 0; i < handlerList.length; i++) { // find fallback handlers
              var ha = handlerList[i];
              if (ha.entryClass && ha.handlesFiles && ha.handlesFiles.test(cursorPath)) {
                if (loadEditor(ha)) return true;
              }
            }
      
            ha = <any>handlers.text; // default
            if (ha) {
              if (loadEditor(ha)) return true;
            }
      
            return false;
          }
      
          private _enhanceNoprocess(nopro: noapi.HostedProcess) {
            nopro.coreModules['nodrive'] = this._drive;
            nopro.coreModules['nowindow'] = window;
          }
      
          private _terminalExecute(code: string) {
            if (!code) return void 0;
            var firstWord = (code.match(/^\s*(\S+)[\s$]/) || [])[1];
            var moreArgs = (code.match(/^\s*\S+\s+(\S[\S\s]*)$/) || [])[1];
            if (!firstWord) firstWord = code;
            switch (firstWord) {
              case 'cd':
              case '@cd':
                return this._cd(moreArgs);
              case 'ls':
              case '@ls':
                return this._ls(moreArgs);
              case 'type':
              case '@type':
                return this._type(moreArgs);
              case 'node':
              case '@node':
                return this._node(moreArgs);
              case 'tsc':
              case '@tsc':
                return this._tsc(moreArgs);
              case 'build':
              case '@build':
                return this._build(moreArgs);
      
              default:
                return this._repl.eval(code);
            }
          }
      
          private _cd(args: string) {
            if (!args) {
              this._terminal.writeDirect(this._twoPanels.currentPath());
              return true;
            }
      
            if (this._twoPanels.setPath(args)) {
              return true;
            }
            else {
              this._terminal.writeDirect('Directory ' + args + ' not found.');
              return true;
            }
          }
      
          private _ls(args) {
            var dir = args || this._twoPanels.currentPath();
            var lead = dir;
            if (lead.slice(-1) !== '/') lead += '/';
            var allFiles = this._drive.files();
            var filtered: string[] = [];
            for (var i = 0; i < allFiles.length; i++) {
              if (allFiles[i].length > lead && allFiles[i].slice(lead.length) === lead)
                filtered.push(allFiles[i]);
            }
            if (!filtered.length) {
              this._terminal.writeDirect('No files found at "' + args + '"');
              return true; // command is handled, even if unsuccessfully
            }
            else {
              this._terminal.writeDirect(filtered.join(' '));
            }
            this._terminal.writeDirect('ls command is not implemented yet');
          }
      
          private _type(args) {
            if (!args) {
              this._terminal.writeDirect('type command requires file name');
              return true;
            }
            var content = this._drive.read(args);
            if (content === null) {
              this._terminal.writeDirect('File ' + args + ' not found');
              return true;
            }
            this._terminal.writeDirect(content);
          }
      
          private _node(args: string) {
            var argList = (args || '').split(/\s+/);
            if (!argList[0]) {
              this._terminal.writeDirect('Node emulation, v0.EARLY');
              return true;
            }
      
            var text = this._drive.read(argList[0]);
            if (typeof text !== 'undefined' && text !== null) {
              this._terminal.writeDirect('node ' + args);
              var ani = this._twoPanels.temporarilyHidePanels();
      
              setTimeout(() => {
                try {
                  var proc = new noapi.HostedProcess({
                    window: window,
                    drive: this._drive,
                    scriptPath: argList[0],
                    argv: argList.slice(1),
                    console: { log: (...args: any[]) => this._terminal.log(args) }
                  });
                  this._enhanceNoprocess(proc);
                  var result = proc.eval(text);
                  if (typeof proc.exitCode == 'number')
                    result = proc.exitCode;
                  else
                    result = proc.mainModule.exports;
                }
                catch (error) {
                  result = error;
                }
                ani();
                this._terminal.log([result]);
              }, 1);
      
              return true;
            }
          }
      
          private _tsc(args: string) {
            var text = this._drive.read('/src/typescript/tsc.js');
            if (typeof text !== 'undefined' && text !== null) {
              var argList = (args || '').split(/\s+/);
              argList.unshift('node', '/src/typescript/tsc.js');
              this._terminal.writeDirect('@tsc ' + args);
              var ani = this._twoPanels.temporarilyHidePanels();
              setTimeout(() => {
                try {
                  var proc = new noapi.HostedProcess({
                    window: window,
                    drive: this._drive,
                    scriptPath: '/src/typescript/tsc.js',
                    argv: ['node', '/src/typescript/tsc.js', args],
                    console: { log: (...args: any[]) => this._terminal.log(args) }
                  });
                  this._enhanceNoprocess(proc);
                  setTimeout(() => {
                    if (!finishedOK) {
                      var compileTime = +new Date() - start;
                      this._terminal.log(['Compilation seems to have failed after ' + compileTime / 1000 + ' sec.']);
                      ani();
                    }
                  }, 100);
                  var start = +new Date();
                  this._terminal.log(['... started at ' + (new Date())]);
                  var result = proc.eval(text);
                  this._terminal.log(['...finished at ' + (new Date())]);
                  if (typeof proc.exitCode == 'number')
                    result = proc.exitCode;
                  else
                    result = proc.mainModule.exports;
                  this._terminal.log([result]);
                }
                catch (error) {
                  this._terminal.log([error]);
                }
                var finishedOK = true;
                ani();
              }, 1);
              return true;
            }
          }
      
          private _execute(cursorPath: string, callback: Function) {
      
            if (/\.js$/.test(cursorPath)) {
              return this._node(cursorPath);
            }
            else if (/\.ts$/.test(cursorPath)) {
              return this._tsc(cursorPath);
            }
            else if (/.html$/.test(cursorPath)) {
              return this._build(cursorPath);
            }
            else {
              var ani = this._twoPanels.temporarilyHidePanels();
              this._terminal.writeDirect('@type ' + cursorPath);
              this._terminal.writeDirect(this._drive.read(cursorPath));
              this._terminal.storeAsHistory('@type ' + cursorPath);
              ani();
              return true;
            }
          }
      
          private _build(cursorPath: string) {
      
            this._terminal.writeDirect('@build ' + cursorPath);
            var ani = this._twoPanels.temporarilyHidePanels();
            setTimeout(() => {
      
              var htmlTemplate = this._drive.read(cursorPath);
      
              var blankWindow = window.open('', '_blank' + (+new Date()));
      
              var pollUntil = (+new Date()) + 1000;
      
              while (+new Date() < pollUntil) {
                try {
                  var blankWindowDoc = blankWindow.document;
                }
                catch (error) { }
              }
      
              if (!blankWindowDoc) {
                alert('Cannot open a window to host the built document');
                ani();
                return;
              }
      
              blankWindow.document.open();
              blankWindow.document.write([
                '<html><title>Building ' + cursorPath + '...</title>',
                '<style>',
                'html, body { background: black; color: greenyellow; }',
                'h2 { font-weight: 100; width: 40%; position: fixed; font-size: 200%; }',
                'pre { width: 50%; padding-left: 50%; opacity: 1; transition: opacity 1s; }',
                '</style>',
                '<h2>Building ' + cursorPath + '</h2>',
                '<' + 's' + 'cript>',
                'var textContentProp = "textContent" in document.createElement("pre") ? "textContent" : "innerText";',
                'var lastLogElem;',
                'function log(text) {',
                '  var logElem = document.createElement("pre");',
                '  logElem[textContentProp]=text;',
                '  document.body.appendChild(logElem);',
                '  logElem.scrollIntoView();',
                '  if (lastLogElem) {',
                '    lastLogElem.style.opacity = 0.5;',
                '  }',
                '  lastLogElem = logElem;',
                '}',
                '<' + '/' + 's' + 'cript>'].join('\n'));
              blankWindow.document.close();
      
              var buildScope = {
                embedFile: (file: string) => this._drive.read(file),
                typescriptBuild: (...files: string[]) => {
      
                }
              };
      
              try {
                build.processTemplate(
                  htmlTemplate,
                  [buildScope],
                  txt => {
                    this._terminal.log([txt]);
                    (<any>blankWindow).log(txt);
                  },
                  (error, result) => {
                    if (error) {
                      this._terminal.log([error]);
                      ani();
                      return;
                    }
      
                    try {
                      var blob = new Blob([result], { type: 'text/html' });
                      var url = URL.createObjectURL(blob);
                      blankWindow.location.replace(url);
                    }
                    catch (blobError) {
                      blankWindow.document.open();
                      blankWindow.document.write(result);
                      blankWindow.document.close();
                    }
      
                    ani();
      
                  },
                 	action => setTimeout(action, 1));
              }
              catch (errorProcessTemplate) {
                ani();
                this._terminal.log([errorProcessTemplate]);
              }
            }, 1);
      
            this._terminal.storeAsHistory('@build ' + cursorPath);
            return true;
          }
      
          private _onDriveChange(changedFiles: string[]) {
            this.arrange();
            if (this._opts.onchanges)
              this._opts.onchanges(changedFiles);
          }
      
        }
      
        export module CommanderShell {
      
          export interface Metrics {
            hostWidth: number;
            hostHeight: number;
            emWidth: number;
            emHeight: number;
          }
      
        }
      
      }
    • start.ts
      declare var require;
      
      module shell {
      
        export var buildTime: number;
        export var buildMessage: string;
      
        export function start(complete: () => string) {
          var drive = require('nodrive');
          var parentWin = require('nowindow');
          parentWin.document.body.background = 'black';
          if (parentWin.document.parentElement)
          	parentWin.document.parentElement.body.background = 'black';
      
          document.body.style.overflow = 'hidden';
          document.body.parentElement.style.overflow = 'hidden';
      
          var commander = new CommanderShell(document.body, drive, complete);
      
      }
      
      }
  • svge-embed
    • build
      • shellFileExtension.ts
        //portabled.build.processTemplate.mainDrive
        declare module portabled.build.processTemplate {
          export var mainDrive: persistence.Drive;
        }
        
        module portabled.build.functions {
        
          export function shellFile(file: string, persistFilename: string) {
            var drivePath = '/svge-embed/editor/' + file;
            var fileText = portabled.build.processTemplate.mainDrive.read(drivePath);
            if (!fileText) {
              console.error(drivePath + ' is not there');
              throw new Error('File is not found: ' + drivePath);
            }
        
            var decoratedContent = fileText.
              replace(/\-\-(\**)\>/g, '--*$1>').
              replace(/\<(\**)\!/g, '<*$1!');
        
            var wrapped = '<' + '!' + '-- ' + (persistFilename || '/shell/' + file) + '\n' + decoratedContent + '\n --' + '>';
        
            return wrapped;
          }
        
        }
    • editor
      • canvg
        • canvg.js
          /*
           * canvg.js - Javascript SVG parser and renderer on Canvas
           * MIT Licensed 
           * Gabe Lerner (gabelerner@gmail.com)
           * http://code.google.com/p/canvg/
           *
           * Requires: rgbcolor.js - http://www.phpied.com/rgb-color-parser-in-javascript/
           */
          (function(){
          	// canvg(target, s)
          	// empty parameters: replace all 'svg' elements on page with 'canvas' elements
          	// target: canvas element or the id of a canvas element
          	// s: svg string, url to svg file, or xml document
          	// opts: optional hash of options
          	//		 ignoreMouse: true => ignore mouse events
          	//		 ignoreAnimation: true => ignore animations
          	//		 ignoreDimensions: true => does not try to resize canvas
          	//		 ignoreClear: true => does not clear canvas
          	//		 offsetX: int => draws at a x offset
          	//		 offsetY: int => draws at a y offset
          	//		 scaleWidth: int => scales horizontally to width
          	//		 scaleHeight: int => scales vertically to height
          	//		 renderCallback: function => will call the function after the first render is completed
          	//		 forceRedraw: function => will call the function on every frame, if it returns true, will redraw
          	this.canvg = function (target, s, opts) {
          		// no parameters
          		if (target == null && s == null && opts == null) {
          			var svgTags = document.querySelectorAll('svg');
          			for (var i=0; i<svgTags.length; i++) {
          				var svgTag = svgTags[i];
          				var c = document.createElement('canvas');
          				c.width = svgTag.clientWidth;
          				c.height = svgTag.clientHeight;
          				svgTag.parentNode.insertBefore(c, svgTag);
          				svgTag.parentNode.removeChild(svgTag);
          				var div = document.createElement('div');
          				div.appendChild(svgTag);
          				canvg(c, div.innerHTML);
          			}
          			return;
          		}
          	
          		if (typeof target == 'string') {
          			target = document.getElementById(target);
          		}
          		
          		// store class on canvas
          		if (target.svg != null) target.svg.stop();
          		var svg = build(opts || {});
          		// on i.e. 8 for flash canvas, we can't assign the property so check for it
          		if (!(target.childNodes.length == 1 && target.childNodes[0].nodeName == 'OBJECT')) target.svg = svg;
          		
          		var ctx = target.getContext('2d');
          		if (typeof(s.documentElement) != 'undefined') {
          			// load from xml doc
          			svg.loadXmlDoc(ctx, s);
          		}
          		else if (s.substr(0,1) == '<') {
          			// load from xml string
          			svg.loadXml(ctx, s);
          		}
          		else {
          			// load from url
          			svg.load(ctx, s);
          		}
          	}
          
          	function build(opts) {
          		var svg = { opts: opts };
          		
          		svg.FRAMERATE = 30;
          		svg.MAX_VIRTUAL_PIXELS = 30000;
          		
          		svg.log = function(msg) {};
          		if (svg.opts['log'] == true && typeof(console) != 'undefined') {
          			svg.log = function(msg) { console.log(msg); };
          		};
          		
          		// globals
          		svg.init = function(ctx) {
          			var uniqueId = 0;
          			svg.UniqueId = function () { uniqueId++; return 'canvg' + uniqueId;	};
          			svg.Definitions = {};
          			svg.Styles = {};
          			svg.Animations = [];
          			svg.Images = [];
          			svg.ctx = ctx;
          			svg.ViewPort = new (function () {
          				this.viewPorts = [];
          				this.Clear = function() { this.viewPorts = []; }
          				this.SetCurrent = function(width, height) { this.viewPorts.push({ width: width, height: height }); }
          				this.RemoveCurrent = function() { this.viewPorts.pop(); }
          				this.Current = function() { return this.viewPorts[this.viewPorts.length - 1]; }
          				this.width = function() { return this.Current().width; }
          				this.height = function() { return this.Current().height; }
          				this.ComputeSize = function(d) {
          					if (d != null && typeof(d) == 'number') return d;
          					if (d == 'x') return this.width();
          					if (d == 'y') return this.height();
          					return Math.sqrt(Math.pow(this.width(), 2) + Math.pow(this.height(), 2)) / Math.sqrt(2);			
          				}
          			});
          		}
          		svg.init();
          		
          		// images loaded
          		svg.ImagesLoaded = function() { 
          			for (var i=0; i<svg.Images.length; i++) {
          				if (!svg.Images[i].loaded) return false;
          			}
          			return true;
          		}
          
          		// trim
          		svg.trim = function(s) { return s.replace(/^\s+|\s+$/g, ''); }
          		
          		// compress spaces
          		svg.compressSpaces = function(s) { return s.replace(/[\s\r\t\n]+/gm,' '); }
          		
          		// ajax
          		svg.ajax = function(url) {
          			var AJAX;
          			if(window.XMLHttpRequest){AJAX=new XMLHttpRequest();}
          			else{AJAX=new ActiveXObject('Microsoft.XMLHTTP');}
          			if(AJAX){
          			   AJAX.open('GET',url,false);
          			   AJAX.send(null);
          			   return AJAX.responseText;
          			}
          			return null;
          		} 
          		
          		// parse xml
          		svg.parseXml = function(xml) {
          			if (window.DOMParser)
          			{
          				var parser = new DOMParser();
          				return parser.parseFromString(xml, 'text/xml');
          			}
          			else 
          			{
          				xml = xml.replace(/<!DOCTYPE svg[^>]*>/, '');
          				var xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
          				xmlDoc.async = 'false';
          				xmlDoc.loadXML(xml); 
          				return xmlDoc;
          			}		
          		}
          		
          		svg.Property = function(name, value) {
          			this.name = name;
          			this.value = value;
          		}	
          			svg.Property.prototype.getValue = function() {
          				return this.value;
          			}
          		
          			svg.Property.prototype.hasValue = function() {
          				return (this.value != null && this.value !== '');
          			}
          							
          			// return the numerical value of the property
          			svg.Property.prototype.numValue = function() {
          				if (!this.hasValue()) return 0;
          				
          				var n = parseFloat(this.value);
          				if ((this.value + '').match(/%$/)) {
          					n = n / 100.0;
          				}
          				return n;
          			}
          			
          			svg.Property.prototype.valueOrDefault = function(def) {
          				if (this.hasValue()) return this.value;
          				return def;
          			}
          			
          			svg.Property.prototype.numValueOrDefault = function(def) {
          				if (this.hasValue()) return this.numValue();
          				return def;
          			}
          			
          			// color extensions
          				// augment the current color value with the opacity
          				svg.Property.prototype.addOpacity = function(opacityProp) {
          					var newValue = this.value;
          					if (opacityProp.value != null && opacityProp.value != '' && typeof(this.value)=='string') { // can only add opacity to colors, not patterns
          						var color = new RGBColor(this.value);
          						if (color.ok) {
          							newValue = 'rgba(' + color.r + ', ' + color.g + ', ' + color.b + ', ' + opacityProp.numValue() + ')';
          						}
          					}
          					return new svg.Property(this.name, newValue);
          				}
          			
          			// definition extensions
          				// get the definition from the definitions table
          				svg.Property.prototype.getDefinition = function() {
          					var name = this.value.match(/#([^\)'"]+)/);
          					if (name) { name = name[1]; }
          					if (!name) { name = this.value; }
          					return svg.Definitions[name];
          				}
          				
          				svg.Property.prototype.isUrlDefinition = function() {
          					return this.value.indexOf('url(') == 0
          				}
          				
          				svg.Property.prototype.getFillStyleDefinition = function(e, opacityProp) {
          					var def = this.getDefinition();
          					
          					// gradient
          					if (def != null && def.createGradient) {
          						return def.createGradient(svg.ctx, e, opacityProp);
          					}
          					
          					// pattern
          					if (def != null && def.createPattern) {
          						if (def.getHrefAttribute().hasValue()) {
          							var pt = def.attribute('patternTransform');
          							def = def.getHrefAttribute().getDefinition();
          							if (pt.hasValue()) { def.attribute('patternTransform', true).value = pt.value; }
          						}
          						return def.createPattern(svg.ctx, e);
          					}
          					
          					return null;
          				}
          			
          			// length extensions
          				svg.Property.prototype.getDPI = function(viewPort) {
          					return 96.0; // TODO: compute?
          				}
          				
          				svg.Property.prototype.getEM = function(viewPort) {
          					var em = 12;
          					
          					var fontSize = new svg.Property('fontSize', svg.Font.Parse(svg.ctx.font).fontSize);
          					if (fontSize.hasValue()) em = fontSize.toPixels(viewPort);
          					
          					return em;
          				}
          				
          				svg.Property.prototype.getUnits = function() {
          					var s = this.value+'';
          					return s.replace(/[0-9\.\-]/g,'');
          				}
          			
          				// get the length as pixels
          				svg.Property.prototype.toPixels = function(viewPort, processPercent) {
          					if (!this.hasValue()) return 0;
          					var s = this.value+'';
          					if (s.match(/em$/)) return this.numValue() * this.getEM(viewPort);
          					if (s.match(/ex$/)) return this.numValue() * this.getEM(viewPort) / 2.0;
          					if (s.match(/px$/)) return this.numValue();
          					if (s.match(/pt$/)) return this.numValue() * this.getDPI(viewPort) * (1.0 / 72.0);
          					if (s.match(/pc$/)) return this.numValue() * 15;
          					if (s.match(/cm$/)) return this.numValue() * this.getDPI(viewPort) / 2.54;
          					if (s.match(/mm$/)) return this.numValue() * this.getDPI(viewPort) / 25.4;
          					if (s.match(/in$/)) return this.numValue() * this.getDPI(viewPort);
          					if (s.match(/%$/)) return this.numValue() * svg.ViewPort.ComputeSize(viewPort);
          					var n = this.numValue();
          					if (processPercent && n < 1.0) return n * svg.ViewPort.ComputeSize(viewPort);
          					return n;
          				}
          
          			// time extensions
          				// get the time as milliseconds
          				svg.Property.prototype.toMilliseconds = function() {
          					if (!this.hasValue()) return 0;
          					var s = this.value+'';
          					if (s.match(/s$/)) return this.numValue() * 1000;
          					if (s.match(/ms$/)) return this.numValue();
          					return this.numValue();
          				}
          			
          			// angle extensions
          				// get the angle as radians
          				svg.Property.prototype.toRadians = function() {
          					if (!this.hasValue()) return 0;
          					var s = this.value+'';
          					if (s.match(/deg$/)) return this.numValue() * (Math.PI / 180.0);
          					if (s.match(/grad$/)) return this.numValue() * (Math.PI / 200.0);
          					if (s.match(/rad$/)) return this.numValue();
          					return this.numValue() * (Math.PI / 180.0);
          				}
          		
          			// text extensions
          				// get the text baseline
          				var textBaselineMapping = {
          					'baseline': 'alphabetic',
          					'before-edge': 'top',
          					'text-before-edge': 'top',
          					'middle': 'middle',
          					'central': 'middle',
          					'after-edge': 'bottom',
          					'text-after-edge': 'bottom',
          					'ideographic': 'ideographic',
          					'alphabetic': 'alphabetic',
          					'hanging': 'hanging',
          					'mathematical': 'alphabetic'
          				};
          				svg.Property.prototype.toTextBaseline = function () {
          					if (!this.hasValue()) return null;
          					return textBaselineMapping[this.value];
          				}
          				
          		// fonts
          		svg.Font = new (function() {
          			this.Styles = 'normal|italic|oblique|inherit';
          			this.Variants = 'normal|small-caps|inherit';
          			this.Weights = 'normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit';
          			
          			this.CreateFont = function(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit) {
          				var f = inherit != null ? this.Parse(inherit) : this.CreateFont('', '', '', '', '', svg.ctx.font);
          				return { 
          					fontFamily: fontFamily || f.fontFamily, 
          					fontSize: fontSize || f.fontSize, 
          					fontStyle: fontStyle || f.fontStyle, 
          					fontWeight: fontWeight || f.fontWeight, 
          					fontVariant: fontVariant || f.fontVariant,
          					toString: function () { return [this.fontStyle, this.fontVariant, this.fontWeight, this.fontSize, this.fontFamily].join(' ') } 
          				} 
          			}
          			
          			var that = this;
          			this.Parse = function(s) {
          				var f = {};
          				var d = svg.trim(svg.compressSpaces(s || '')).split(' ');
          				var set = { fontSize: false, fontStyle: false, fontWeight: false, fontVariant: false }
          				var ff = '';
          				for (var i=0; i<d.length; i++) {
          					if (!set.fontStyle && that.Styles.indexOf(d[i]) != -1) { if (d[i] != 'inherit') f.fontStyle = d[i]; set.fontStyle = true; }
          					else if (!set.fontVariant && that.Variants.indexOf(d[i]) != -1) { if (d[i] != 'inherit') f.fontVariant = d[i]; set.fontStyle = set.fontVariant = true;	}
          					else if (!set.fontWeight && that.Weights.indexOf(d[i]) != -1) {	if (d[i] != 'inherit') f.fontWeight = d[i]; set.fontStyle = set.fontVariant = set.fontWeight = true; }
          					else if (!set.fontSize) { if (d[i] != 'inherit') f.fontSize = d[i].split('/')[0]; set.fontStyle = set.fontVariant = set.fontWeight = set.fontSize = true; }
          					else { if (d[i] != 'inherit') ff += d[i]; }
          				} if (ff != '') f.fontFamily = ff;
          				return f;
          			}
          		});
          		
          		// points and paths
          		svg.ToNumberArray = function(s) {
          			var a = svg.trim(svg.compressSpaces((s || '').replace(/,/g, ' '))).split(' ');
          			for (var i=0; i<a.length; i++) {
          				a[i] = parseFloat(a[i]);
          			}
          			return a;
          		}		
          		svg.Point = function(x, y) {
          			this.x = x;
          			this.y = y;
          		}	
          			svg.Point.prototype.angleTo = function(p) {
          				return Math.atan2(p.y - this.y, p.x - this.x);
          			}
          			
          			svg.Point.prototype.applyTransform = function(v) {
          				var xp = this.x * v[0] + this.y * v[2] + v[4];
          				var yp = this.x * v[1] + this.y * v[3] + v[5];
          				this.x = xp;
          				this.y = yp;
          			}
          
          		svg.CreatePoint = function(s) {
          			var a = svg.ToNumberArray(s);
          			return new svg.Point(a[0], a[1]);
          		}
          		svg.CreatePath = function(s) {
          			var a = svg.ToNumberArray(s);
          			var path = [];
          			for (var i=0; i<a.length; i+=2) {
          				path.push(new svg.Point(a[i], a[i+1]));
          			}
          			return path;
          		}
          		
          		// bounding box
          		svg.BoundingBox = function(x1, y1, x2, y2) { // pass in initial points if you want
          			this.x1 = Number.NaN;
          			this.y1 = Number.NaN;
          			this.x2 = Number.NaN;
          			this.y2 = Number.NaN;
          			
          			this.x = function() { return this.x1; }
          			this.y = function() { return this.y1; }
          			this.width = function() { return this.x2 - this.x1; }
          			this.height = function() { return this.y2 - this.y1; }
          			
          			this.addPoint = function(x, y) {	
          				if (x != null) {
          					if (isNaN(this.x1) || isNaN(this.x2)) {
          						this.x1 = x;
          						this.x2 = x;
          					}
          					if (x < this.x1) this.x1 = x;
          					if (x > this.x2) this.x2 = x;
          				}
          			
          				if (y != null) {
          					if (isNaN(this.y1) || isNaN(this.y2)) {
          						this.y1 = y;
          						this.y2 = y;
          					}
          					if (y < this.y1) this.y1 = y;
          					if (y > this.y2) this.y2 = y;
          				}
          			}			
          			this.addX = function(x) { this.addPoint(x, null); }
          			this.addY = function(y) { this.addPoint(null, y); }
          			
          			this.addBoundingBox = function(bb) {
          				this.addPoint(bb.x1, bb.y1);
          				this.addPoint(bb.x2, bb.y2);
          			}
          			
          			this.addQuadraticCurve = function(p0x, p0y, p1x, p1y, p2x, p2y) {
          				var cp1x = p0x + 2/3 * (p1x - p0x); // CP1 = QP0 + 2/3 *(QP1-QP0)
          				var cp1y = p0y + 2/3 * (p1y - p0y); // CP1 = QP0 + 2/3 *(QP1-QP0)
          				var cp2x = cp1x + 1/3 * (p2x - p0x); // CP2 = CP1 + 1/3 *(QP2-QP0)
          				var cp2y = cp1y + 1/3 * (p2y - p0y); // CP2 = CP1 + 1/3 *(QP2-QP0)
          				this.addBezierCurve(p0x, p0y, cp1x, cp2x, cp1y,	cp2y, p2x, p2y);
          			}
          			
          			this.addBezierCurve = function(p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y) {
          				// from http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html
          				var p0 = [p0x, p0y], p1 = [p1x, p1y], p2 = [p2x, p2y], p3 = [p3x, p3y];
          				this.addPoint(p0[0], p0[1]);
          				this.addPoint(p3[0], p3[1]);
          				
          				for (i=0; i<=1; i++) {
          					var f = function(t) { 
          						return Math.pow(1-t, 3) * p0[i]
          						+ 3 * Math.pow(1-t, 2) * t * p1[i]
          						+ 3 * (1-t) * Math.pow(t, 2) * p2[i]
          						+ Math.pow(t, 3) * p3[i];
          					}
          					
          					var b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];
          					var a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];
          					var c = 3 * p1[i] - 3 * p0[i];
          					
          					if (a == 0) {
          						if (b == 0) continue;
          						var t = -c / b;
          						if (0 < t && t < 1) {
          							if (i == 0) this.addX(f(t));
          							if (i == 1) this.addY(f(t));
          						}
          						continue;
          					}
          					
          					var b2ac = Math.pow(b, 2) - 4 * c * a;
          					if (b2ac < 0) continue;
          					var t1 = (-b + Math.sqrt(b2ac)) / (2 * a);
          					if (0 < t1 && t1 < 1) {
          						if (i == 0) this.addX(f(t1));
          						if (i == 1) this.addY(f(t1));
          					}
          					var t2 = (-b - Math.sqrt(b2ac)) / (2 * a);
          					if (0 < t2 && t2 < 1) {
          						if (i == 0) this.addX(f(t2));
          						if (i == 1) this.addY(f(t2));
          					}
          				}
          			}
          			
          			this.isPointInBox = function(x, y) {
          				return (this.x1 <= x && x <= this.x2 && this.y1 <= y && y <= this.y2);
          			}
          			
          			this.addPoint(x1, y1);
          			this.addPoint(x2, y2);
          		}
          		
          		// transforms
          		svg.Transform = function(v) {	
          			var that = this;
          			this.Type = {}
          		
          			// translate
          			this.Type.translate = function(s) {
          				this.p = svg.CreatePoint(s);			
          				this.apply = function(ctx) {
          					ctx.translate(this.p.x || 0.0, this.p.y || 0.0);
          				}
          				this.unapply = function(ctx) {
          					ctx.translate(-1.0 * this.p.x || 0.0, -1.0 * this.p.y || 0.0);
          				}
          				this.applyToPoint = function(p) {
          					p.applyTransform([1, 0, 0, 1, this.p.x || 0.0, this.p.y || 0.0]);
          				}
          			}
          			
          			// rotate
          			this.Type.rotate = function(s) {
          				var a = svg.ToNumberArray(s);
          				this.angle = new svg.Property('angle', a[0]);
          				this.cx = a[1] || 0;
          				this.cy = a[2] || 0;
          				this.apply = function(ctx) {
          					ctx.translate(this.cx, this.cy);
          					ctx.rotate(this.angle.toRadians());
          					ctx.translate(-this.cx, -this.cy);
          				}
          				this.unapply = function(ctx) {
          					ctx.translate(this.cx, this.cy);
          					ctx.rotate(-1.0 * this.angle.toRadians());
          					ctx.translate(-this.cx, -this.cy);
          				}
          				this.applyToPoint = function(p) {
          					var a = this.angle.toRadians();
          					p.applyTransform([1, 0, 0, 1, this.p.x || 0.0, this.p.y || 0.0]);
          					p.applyTransform([Math.cos(a), Math.sin(a), -Math.sin(a), Math.cos(a), 0, 0]);
          					p.applyTransform([1, 0, 0, 1, -this.p.x || 0.0, -this.p.y || 0.0]);
          				}			
          			}
          			
          			this.Type.scale = function(s) {
          				this.p = svg.CreatePoint(s);
          				this.apply = function(ctx) {
          					ctx.scale(this.p.x || 1.0, this.p.y || this.p.x || 1.0);
          				}
          				this.unapply = function(ctx) {
          					ctx.scale(1.0 / this.p.x || 1.0, 1.0 / this.p.y || this.p.x || 1.0);
          				}
          				this.applyToPoint = function(p) {
          					p.applyTransform([this.p.x || 0.0, 0, 0, this.p.y || 0.0, 0, 0]);
          				}				
          			}
          			
          			this.Type.matrix = function(s) {
          				this.m = svg.ToNumberArray(s);
          				this.apply = function(ctx) {
          					ctx.transform(this.m[0], this.m[1], this.m[2], this.m[3], this.m[4], this.m[5]);
          				}
          				this.applyToPoint = function(p) {
          					p.applyTransform(this.m);
          				}					
          			}
          			
          			this.Type.SkewBase = function(s) {
          				this.base = that.Type.matrix;
          				this.base(s);
          				this.angle = new svg.Property('angle', s);
          			}
          			this.Type.SkewBase.prototype = new this.Type.matrix;
          			
          			this.Type.skewX = function(s) {
          				this.base = that.Type.SkewBase;
          				this.base(s);
          				this.m = [1, 0, Math.tan(this.angle.toRadians()), 1, 0, 0];
          			}
          			this.Type.skewX.prototype = new this.Type.SkewBase;
          			
          			this.Type.skewY = function(s) {
          				this.base = that.Type.SkewBase;
          				this.base(s);
          				this.m = [1, Math.tan(this.angle.toRadians()), 0, 1, 0, 0];
          			}
          			this.Type.skewY.prototype = new this.Type.SkewBase;
          		
          			this.transforms = [];
          			
          			this.apply = function(ctx) {
          				for (var i=0; i<this.transforms.length; i++) {
          					this.transforms[i].apply(ctx);
          				}
          			}
          			
          			this.unapply = function(ctx) {
          				for (var i=this.transforms.length-1; i>=0; i--) {
          					this.transforms[i].unapply(ctx);
          				}
          			}
          			
          			this.applyToPoint = function(p) {
          				for (var i=0; i<this.transforms.length; i++) {
          					this.transforms[i].applyToPoint(p);
          				}
          			}
          			
          			var data = svg.trim(svg.compressSpaces(v)).replace(/\)([a-zA-Z])/g, ') $1').replace(/\)(\s?,\s?)/g,') ').split(/\s(?=[a-z])/);
          			for (var i=0; i<data.length; i++) {
          				var type = svg.trim(data[i].split('(')[0]);
          				var s = data[i].split('(')[1].replace(')','');
          				var transform = new this.Type[type](s);
          				transform.type = type;
          				this.transforms.push(transform);
          			}
          		}
          		
          		// aspect ratio
          		svg.AspectRatio = function(ctx, aspectRatio, width, desiredWidth, height, desiredHeight, minX, minY, refX, refY) {
          			// aspect ratio - http://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute
          			aspectRatio = svg.compressSpaces(aspectRatio);
          			aspectRatio = aspectRatio.replace(/^defer\s/,''); // ignore defer
          			var align = aspectRatio.split(' ')[0] || 'xMidYMid';
          			var meetOrSlice = aspectRatio.split(' ')[1] || 'meet';					
          	
          			// calculate scale
          			var scaleX = width / desiredWidth;
          			var scaleY = height / desiredHeight;
          			var scaleMin = Math.min(scaleX, scaleY);
          			var scaleMax = Math.max(scaleX, scaleY);
          			if (meetOrSlice == 'meet') { desiredWidth *= scaleMin; desiredHeight *= scaleMin; }
          			if (meetOrSlice == 'slice') { desiredWidth *= scaleMax; desiredHeight *= scaleMax; }	
          			
          			refX = new svg.Property('refX', refX);
          			refY = new svg.Property('refY', refY);
          			if (refX.hasValue() && refY.hasValue()) {				
          				ctx.translate(-scaleMin * refX.toPixels('x'), -scaleMin * refY.toPixels('y'));
          			} 
          			else {					
          				// align
          				if (align.match(/^xMid/) && ((meetOrSlice == 'meet' && scaleMin == scaleY) || (meetOrSlice == 'slice' && scaleMax == scaleY))) ctx.translate(width / 2.0 - desiredWidth / 2.0, 0); 
          				if (align.match(/YMid$/) && ((meetOrSlice == 'meet' && scaleMin == scaleX) || (meetOrSlice == 'slice' && scaleMax == scaleX))) ctx.translate(0, height / 2.0 - desiredHeight / 2.0); 
          				if (align.match(/^xMax/) && ((meetOrSlice == 'meet' && scaleMin == scaleY) || (meetOrSlice == 'slice' && scaleMax == scaleY))) ctx.translate(width - desiredWidth, 0); 
          				if (align.match(/YMax$/) && ((meetOrSlice == 'meet' && scaleMin == scaleX) || (meetOrSlice == 'slice' && scaleMax == scaleX))) ctx.translate(0, height - desiredHeight); 
          			}
          			
          			// scale
          			if (align == 'none') ctx.scale(scaleX, scaleY);
          			else if (meetOrSlice == 'meet') ctx.scale(scaleMin, scaleMin); 
          			else if (meetOrSlice == 'slice') ctx.scale(scaleMax, scaleMax); 	
          			
          			// translate
          			ctx.translate(minX == null ? 0 : -minX, minY == null ? 0 : -minY);			
          		}
          		
          		// elements
          		svg.Element = {}
          		
          		svg.EmptyProperty = new svg.Property('EMPTY', '');
          		
          		svg.Element.ElementBase = function(node) {	
          			this.attributes = {};
          			this.styles = {};
          			this.children = [];
          			
          			// get or create attribute
          			this.attribute = function(name, createIfNotExists) {
          				var a = this.attributes[name];
          				if (a != null) return a;
          							
          				if (createIfNotExists == true) { a = new svg.Property(name, ''); this.attributes[name] = a; }
          				return a || svg.EmptyProperty;
          			}
          			
          			this.getHrefAttribute = function() {
          				for (var a in this.attributes) { 
          					if (a.match(/:href$/)) { 
          						return this.attributes[a]; 
          					} 
          				}
          				return svg.EmptyProperty;
          			}
          			
          			// get or create style, crawls up node tree
          			this.style = function(name, createIfNotExists, skipAncestors) {
          				var s = this.styles[name];
          				if (s != null) return s;
          				
          				var a = this.attribute(name);
          				if (a != null && a.hasValue()) {
          					this.styles[name] = a; // move up to me to cache
          					return a;
          				}
          				
          				if (skipAncestors != true) {
          					var p = this.parent;
          					if (p != null) {
          						var ps = p.style(name);
          						if (ps != null && ps.hasValue()) {
          							return ps;
          						}
          					}
          				}
          					
          				if (createIfNotExists == true) { s = new svg.Property(name, ''); this.styles[name] = s; }
          				return s || svg.EmptyProperty;
          			}
          			
          			// base render
          			this.render = function(ctx) {
          				// don't render display=none
          				if (this.style('display').value == 'none') return;
          				
          				// don't render visibility=hidden
          				if (this.style('visibility').value == 'hidden') return;
          			
          				ctx.save();
          				if (this.attribute('mask').hasValue()) { // mask
          					var mask = this.attribute('mask').getDefinition();
          					if (mask != null) mask.apply(ctx, this);
          				}
          				else if (this.style('filter').hasValue()) { // filter
          					var filter = this.style('filter').getDefinition();
          					if (filter != null) filter.apply(ctx, this);
          				}
          				else {	
          					this.setContext(ctx);
          					this.renderChildren(ctx);	
          					this.clearContext(ctx);							
          				}
          				ctx.restore();
          			}
          			
          			// base set context
          			this.setContext = function(ctx) {
          				// OVERRIDE ME!
          			}
          			
          			// base clear context
          			this.clearContext = function(ctx) {
          				// OVERRIDE ME!
          			}			
          			
          			// base render children
          			this.renderChildren = function(ctx) {
          				for (var i=0; i<this.children.length; i++) {
          					this.children[i].render(ctx);
          				}
          			}
          			
          			this.addChild = function(childNode, create) {
          				var child = childNode;
          				if (create) child = svg.CreateElement(childNode);
          				child.parent = this;
          				if (child.type != 'title') { this.children.push(child);	}
          			}
          				
          			if (node != null && node.nodeType == 1) { //ELEMENT_NODE
          				// add children
          				for (var i=0; i<node.childNodes.length; i++) {
          					var childNode = node.childNodes[i];
          					if (childNode.nodeType == 1) this.addChild(childNode, true); //ELEMENT_NODE
          					if (this.captureTextNodes && (childNode.nodeType == 3 || childNode.nodeType == 4)) {
          						var text = childNode.nodeValue || childNode.text || '';
          						if (svg.trim(svg.compressSpaces(text)) != '') {
          							this.addChild(new svg.Element.tspan(childNode), false); // TEXT_NODE
          						}
          					}
          				}
          				
          				// add attributes
          				for (var i=0; i<node.attributes.length; i++) {
          					var attribute = node.attributes[i];
          					this.attributes[attribute.nodeName] = new svg.Property(attribute.nodeName, attribute.nodeValue);
          				}
          										
          				// add tag styles
          				var styles = svg.Styles[node.nodeName];
          				if (styles != null) {
          					for (var name in styles) {
          						this.styles[name] = styles[name];
          					}
          				}					
          				
          				// add class styles
          				if (this.attribute('class').hasValue()) {
          					var classes = svg.compressSpaces(this.attribute('class').value).split(' ');
          					for (var j=0; j<classes.length; j++) {
          						styles = svg.Styles['.'+classes[j]];
          						if (styles != null) {
          							for (var name in styles) {
          								this.styles[name] = styles[name];
          							}
          						}
          						styles = svg.Styles[node.nodeName+'.'+classes[j]];
          						if (styles != null) {
          							for (var name in styles) {
          								this.styles[name] = styles[name];
          							}
          						}
          					}
          				}
          				
          				// add id styles
          				if (this.attribute('id').hasValue()) {
          					var styles = svg.Styles['#' + this.attribute('id').value];
          					if (styles != null) {
          						for (var name in styles) {
          							this.styles[name] = styles[name];
          						}
          					}
          				}
          				
          				// add inline styles
          				if (this.attribute('style').hasValue()) {
          					var styles = this.attribute('style').value.split(';');
          					for (var i=0; i<styles.length; i++) {
          						if (svg.trim(styles[i]) != '') {
          							var style = styles[i].split(':');
          							var name = svg.trim(style[0]);
          							var value = svg.trim(style[1]);
          							this.styles[name] = new svg.Property(name, value);
          						}
          					}
          				}	
          
          				// add id
          				if (this.attribute('id').hasValue()) {
          					if (svg.Definitions[this.attribute('id').value] == null) {
          						svg.Definitions[this.attribute('id').value] = this;
          					}
          				}
          			}
          		}
          		
          		svg.Element.RenderedElementBase = function(node) {
          			this.base = svg.Element.ElementBase;
          			this.base(node);
          			
          			this.setContext = function(ctx) {
          				// fill
          				if (this.style('fill').isUrlDefinition()) {
          					var fs = this.style('fill').getFillStyleDefinition(this, this.style('fill-opacity'));
          					if (fs != null) ctx.fillStyle = fs;
          				}
          				else if (this.style('fill').hasValue()) {
          					var fillStyle = this.style('fill');
          					if (fillStyle.value == 'currentColor') fillStyle.value = this.style('color').value;
          					ctx.fillStyle = (fillStyle.value == 'none' ? 'rgba(0,0,0,0)' : fillStyle.value);
          				}
          				if (this.style('fill-opacity').hasValue()) {
          					var fillStyle = new svg.Property('fill', ctx.fillStyle);
          					fillStyle = fillStyle.addOpacity(this.style('fill-opacity'));
          					ctx.fillStyle = fillStyle.value;
          				}
          									
          				// stroke
          				if (this.style('stroke').isUrlDefinition()) {
          					var fs = this.style('stroke').getFillStyleDefinition(this, this.style('stroke-opacity'));
          					if (fs != null) ctx.strokeStyle = fs;
          				}
          				else if (this.style('stroke').hasValue()) {
          					var strokeStyle = this.style('stroke');
          					if (strokeStyle.value == 'currentColor') strokeStyle.value = this.style('color').value;
          					ctx.strokeStyle = (strokeStyle.value == 'none' ? 'rgba(0,0,0,0)' : strokeStyle.value);
          				}
          				if (this.style('stroke-opacity').hasValue()) {
          					var strokeStyle = new svg.Property('stroke', ctx.strokeStyle);
          					strokeStyle = strokeStyle.addOpacity(this.style('stroke-opacity'));
          					ctx.strokeStyle = strokeStyle.value;
          				}
          				if (this.style('stroke-width').hasValue()) {
          					var newLineWidth = this.style('stroke-width').toPixels();
          					ctx.lineWidth = newLineWidth == 0 ? 0.001 : newLineWidth; // browsers don't respect 0
          			    }
          				if (this.style('stroke-linecap').hasValue()) ctx.lineCap = this.style('stroke-linecap').value;
          				if (this.style('stroke-linejoin').hasValue()) ctx.lineJoin = this.style('stroke-linejoin').value;
          				if (this.style('stroke-miterlimit').hasValue()) ctx.miterLimit = this.style('stroke-miterlimit').value;
          				if (this.style('stroke-dasharray').hasValue() && this.style('stroke-dasharray').value != 'none') {
          					var gaps = svg.ToNumberArray(this.style('stroke-dasharray').value);
          					if (typeof(ctx.setLineDash) != 'undefined') { ctx.setLineDash(gaps); }
          					else if (typeof(ctx.webkitLineDash) != 'undefined') { ctx.webkitLineDash = gaps; }
          					else if (typeof(ctx.mozDash) != 'undefined' && !(gaps.length==1 && gaps[0]==0)) { ctx.mozDash = gaps; }
          					
          					var offset = this.style('stroke-dashoffset').numValueOrDefault(1);
          					if (typeof(ctx.lineDashOffset) != 'undefined') { ctx.lineDashOffset = offset; }
          					else if (typeof(ctx.webkitLineDashOffset) != 'undefined') { ctx.webkitLineDashOffset = offset; }
          					else if (typeof(ctx.mozDashOffset) != 'undefined') { ctx.mozDashOffset = offset; }
          				}
          
          				// font
          				if (typeof(ctx.font) != 'undefined') {
          					ctx.font = svg.Font.CreateFont( 
          						this.style('font-style').value, 
          						this.style('font-variant').value, 
          						this.style('font-weight').value, 
          						this.style('font-size').hasValue() ? this.style('font-size').toPixels() + 'px' : '', 
          						this.style('font-family').value).toString();
          				}
          				
          				// transform
          				if (this.attribute('transform').hasValue()) { 
          					var transform = new svg.Transform(this.attribute('transform').value);
          					transform.apply(ctx);
          				}
          				
          				// clip
          				if (this.style('clip-path', false, true).hasValue()) {
          					var clip = this.style('clip-path', false, true).getDefinition();
          					if (clip != null) clip.apply(ctx);
          				}
          				
          				// opacity
          				if (this.style('opacity').hasValue()) {
          					ctx.globalAlpha = this.style('opacity').numValue();
          				}
          			}		
          		}
          		svg.Element.RenderedElementBase.prototype = new svg.Element.ElementBase;
          		
          		svg.Element.PathElementBase = function(node) {
          			this.base = svg.Element.RenderedElementBase;
          			this.base(node);
          			
          			this.path = function(ctx) {
          				if (ctx != null) ctx.beginPath();
          				return new svg.BoundingBox();
          			}
          			
          			this.renderChildren = function(ctx) {
          				this.path(ctx);
          				svg.Mouse.checkPath(this, ctx);
          				if (ctx.fillStyle != '') {
          					if (this.style('fill-rule').valueOrDefault('inherit') != 'inherit') { ctx.fill(this.style('fill-rule').value); }
          					else { ctx.fill(); }
          				}
          				if (ctx.strokeStyle != '') ctx.stroke();
          				
          				var markers = this.getMarkers();
          				if (markers != null) {
          					if (this.style('marker-start').isUrlDefinition()) {
          						var marker = this.style('marker-start').getDefinition();
          						marker.render(ctx, markers[0][0], markers[0][1]);
          					}
          					if (this.style('marker-mid').isUrlDefinition()) {
          						var marker = this.style('marker-mid').getDefinition();
          						for (var i=1;i<markers.length-1;i++) {
          							marker.render(ctx, markers[i][0], markers[i][1]);
          						}
          					}
          					if (this.style('marker-end').isUrlDefinition()) {
          						var marker = this.style('marker-end').getDefinition();
          						marker.render(ctx, markers[markers.length-1][0], markers[markers.length-1][1]);
          					}
          				}					
          			}
          			
          			this.getBoundingBox = function() {
          				return this.path();
          			}
          			
          			this.getMarkers = function() {
          				return null;
          			}
          		}
          		svg.Element.PathElementBase.prototype = new svg.Element.RenderedElementBase;
          		
          		// svg element
          		svg.Element.svg = function(node) {
          			this.base = svg.Element.RenderedElementBase;
          			this.base(node);
          			
          			this.baseClearContext = this.clearContext;
          			this.clearContext = function(ctx) {
          				this.baseClearContext(ctx);
          				svg.ViewPort.RemoveCurrent();
          			}
          			
          			this.baseSetContext = this.setContext;
          			this.setContext = function(ctx) {
          				// initial values and defaults
          				ctx.strokeStyle = 'rgba(0,0,0,0)';
          				ctx.lineCap = 'butt';
          				ctx.lineJoin = 'miter';
          				ctx.miterLimit = 4;	
          				if (typeof(ctx.font) != 'undefined' && typeof(window.getComputedStyle) != 'undefined') {
          					ctx.font = window.getComputedStyle(ctx.canvas).getPropertyValue('font');
          				}
          			
          				this.baseSetContext(ctx);
          				
          				// create new view port
          				if (!this.attribute('x').hasValue()) this.attribute('x', true).value = 0;
          				if (!this.attribute('y').hasValue()) this.attribute('y', true).value = 0;
          				ctx.translate(this.attribute('x').toPixels('x'), this.attribute('y').toPixels('y'));
          				
          				var width = svg.ViewPort.width();
          				var height = svg.ViewPort.height();
          				
          				if (!this.attribute('width').hasValue()) this.attribute('width', true).value = '100%';
          				if (!this.attribute('height').hasValue()) this.attribute('height', true).value = '100%';
          				if (typeof(this.root) == 'undefined') {
          					width = this.attribute('width').toPixels('x');
          					height = this.attribute('height').toPixels('y');
          					
          					var x = 0;
          					var y = 0;
          					if (this.attribute('refX').hasValue() && this.attribute('refY').hasValue()) {
          						x = -this.attribute('refX').toPixels('x');
          						y = -this.attribute('refY').toPixels('y');
          					}
          					
          					if (this.attribute('overflow').valueOrDefault('hidden') != 'visible') {
          						ctx.beginPath();
          						ctx.moveTo(x, y);
          						ctx.lineTo(width, y);
          						ctx.lineTo(width, height);
          						ctx.lineTo(x, height);
          						ctx.closePath();
          						ctx.clip();
          					}
          				}
          				svg.ViewPort.SetCurrent(width, height);	
          						
          				// viewbox
          				if (this.attribute('viewBox').hasValue()) {				
          					var viewBox = svg.ToNumberArray(this.attribute('viewBox').value);
          					var minX = viewBox[0];
          					var minY = viewBox[1];
          					width = viewBox[2];
          					height = viewBox[3];
          					
          					svg.AspectRatio(ctx,
          									this.attribute('preserveAspectRatio').value, 
          									svg.ViewPort.width(), 
          									width,
          									svg.ViewPort.height(),
          									height,
          									minX,
          									minY,
          									this.attribute('refX').value,
          									this.attribute('refY').value);
          					
          					svg.ViewPort.RemoveCurrent();
          					svg.ViewPort.SetCurrent(viewBox[2], viewBox[3]);
          				}				
          			}
          		}
          		svg.Element.svg.prototype = new svg.Element.RenderedElementBase;
          
          		// rect element
          		svg.Element.rect = function(node) {
          			this.base = svg.Element.PathElementBase;
          			this.base(node);
          			
          			this.path = function(ctx) {
          				var x = this.attribute('x').toPixels('x');
          				var y = this.attribute('y').toPixels('y');
          				var width = this.attribute('width').toPixels('x');
          				var height = this.attribute('height').toPixels('y');
          				var rx = this.attribute('rx').toPixels('x');
          				var ry = this.attribute('ry').toPixels('y');
          				if (this.attribute('rx').hasValue() && !this.attribute('ry').hasValue()) ry = rx;
          				if (this.attribute('ry').hasValue() && !this.attribute('rx').hasValue()) rx = ry;
          				rx = Math.min(rx, width / 2.0);
          				ry = Math.min(ry, height / 2.0);
          				if (ctx != null) {
          					ctx.beginPath();
          					ctx.moveTo(x + rx, y);
          					ctx.lineTo(x + width - rx, y);
          					ctx.quadraticCurveTo(x + width, y, x + width, y + ry)
          					ctx.lineTo(x + width, y + height - ry);
          					ctx.quadraticCurveTo(x + width, y + height, x + width - rx, y + height)
          					ctx.lineTo(x + rx, y + height);
          					ctx.quadraticCurveTo(x, y + height, x, y + height - ry)
          					ctx.lineTo(x, y + ry);
          					ctx.quadraticCurveTo(x, y, x + rx, y)
          					ctx.closePath();
          				}
          				
          				return new svg.BoundingBox(x, y, x + width, y + height);
          			}
          		}
          		svg.Element.rect.prototype = new svg.Element.PathElementBase;
          		
          		// circle element
          		svg.Element.circle = function(node) {
          			this.base = svg.Element.PathElementBase;
          			this.base(node);
          			
          			this.path = function(ctx) {
          				var cx = this.attribute('cx').toPixels('x');
          				var cy = this.attribute('cy').toPixels('y');
          				var r = this.attribute('r').toPixels();
          			
          				if (ctx != null) {
          					ctx.beginPath();
          					ctx.arc(cx, cy, r, 0, Math.PI * 2, true); 
          					ctx.closePath();
          				}
          				
          				return new svg.BoundingBox(cx - r, cy - r, cx + r, cy + r);
          			}
          		}
          		svg.Element.circle.prototype = new svg.Element.PathElementBase;	
          
          		// ellipse element
          		svg.Element.ellipse = function(node) {
          			this.base = svg.Element.PathElementBase;
          			this.base(node);
          			
          			this.path = function(ctx) {
          				var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);
          				var rx = this.attribute('rx').toPixels('x');
          				var ry = this.attribute('ry').toPixels('y');
          				var cx = this.attribute('cx').toPixels('x');
          				var cy = this.attribute('cy').toPixels('y');
          				
          				if (ctx != null) {
          					ctx.beginPath();
          					ctx.moveTo(cx, cy - ry);
          					ctx.bezierCurveTo(cx + (KAPPA * rx), cy - ry,  cx + rx, cy - (KAPPA * ry), cx + rx, cy);
          					ctx.bezierCurveTo(cx + rx, cy + (KAPPA * ry), cx + (KAPPA * rx), cy + ry, cx, cy + ry);
          					ctx.bezierCurveTo(cx - (KAPPA * rx), cy + ry, cx - rx, cy + (KAPPA * ry), cx - rx, cy);
          					ctx.bezierCurveTo(cx - rx, cy - (KAPPA * ry), cx - (KAPPA * rx), cy - ry, cx, cy - ry);
          					ctx.closePath();
          				}
          				
          				return new svg.BoundingBox(cx - rx, cy - ry, cx + rx, cy + ry);
          			}
          		}
          		svg.Element.ellipse.prototype = new svg.Element.PathElementBase;			
          		
          		// line element
          		svg.Element.line = function(node) {
          			this.base = svg.Element.PathElementBase;
          			this.base(node);
          			
          			this.getPoints = function() {
          				return [
          					new svg.Point(this.attribute('x1').toPixels('x'), this.attribute('y1').toPixels('y')),
          					new svg.Point(this.attribute('x2').toPixels('x'), this.attribute('y2').toPixels('y'))];
          			}
          								
          			this.path = function(ctx) {
          				var points = this.getPoints();
          				
          				if (ctx != null) {
          					ctx.beginPath();
          					ctx.moveTo(points[0].x, points[0].y);
          					ctx.lineTo(points[1].x, points[1].y);
          				}
          				
          				return new svg.BoundingBox(points[0].x, points[0].y, points[1].x, points[1].y);
          			}
          			
          			this.getMarkers = function() {
          				var points = this.getPoints();	
          				var a = points[0].angleTo(points[1]);
          				return [[points[0], a], [points[1], a]];
          			}
          		}
          		svg.Element.line.prototype = new svg.Element.PathElementBase;		
          				
          		// polyline element
          		svg.Element.polyline = function(node) {
          			this.base = svg.Element.PathElementBase;
          			this.base(node);
          			
          			this.points = svg.CreatePath(this.attribute('points').value);
          			this.path = function(ctx) {
          				var bb = new svg.BoundingBox(this.points[0].x, this.points[0].y);
          				if (ctx != null) {
          					ctx.beginPath();
          					ctx.moveTo(this.points[0].x, this.points[0].y);
          				}
          				for (var i=1; i<this.points.length; i++) {
          					bb.addPoint(this.points[i].x, this.points[i].y);
          					if (ctx != null) ctx.lineTo(this.points[i].x, this.points[i].y);
          				}
          				return bb;
          			}
          			
          			this.getMarkers = function() {
          				var markers = [];
          				for (var i=0; i<this.points.length - 1; i++) {
          					markers.push([this.points[i], this.points[i].angleTo(this.points[i+1])]);
          				}
          				markers.push([this.points[this.points.length-1], markers[markers.length-1][1]]);
          				return markers;
          			}			
          		}
          		svg.Element.polyline.prototype = new svg.Element.PathElementBase;				
          				
          		// polygon element
          		svg.Element.polygon = function(node) {
          			this.base = svg.Element.polyline;
          			this.base(node);
          			
          			this.basePath = this.path;
          			this.path = function(ctx) {
          				var bb = this.basePath(ctx);
          				if (ctx != null) {
          					ctx.lineTo(this.points[0].x, this.points[0].y);
          					ctx.closePath();
          				}
          				return bb;
          			}
          		}
          		svg.Element.polygon.prototype = new svg.Element.polyline;
          
          		// path element
          		svg.Element.path = function(node) {
          			this.base = svg.Element.PathElementBase;
          			this.base(node);
          					
          			var d = this.attribute('d').value;
          			// TODO: convert to real lexer based on http://www.w3.org/TR/SVG11/paths.html#PathDataBNF
          			d = d.replace(/,/gm,' '); // get rid of all commas
          			d = d.replace(/([MmZzLlHhVvCcSsQqTtAa])([MmZzLlHhVvCcSsQqTtAa])/gm,'$1 $2'); // separate commands from commands
          			d = d.replace(/([MmZzLlHhVvCcSsQqTtAa])([MmZzLlHhVvCcSsQqTtAa])/gm,'$1 $2'); // separate commands from commands
          			d = d.replace(/([MmZzLlHhVvCcSsQqTtAa])([^\s])/gm,'$1 $2'); // separate commands from points
          			d = d.replace(/([^\s])([MmZzLlHhVvCcSsQqTtAa])/gm,'$1 $2'); // separate commands from points
          			d = d.replace(/([0-9])([+\-])/gm,'$1 $2'); // separate digits when no comma
          			d = d.replace(/(\.[0-9]*)(\.)/gm,'$1 $2'); // separate digits when no comma
          			d = d.replace(/([Aa](\s+[0-9]+){3})\s+([01])\s*([01])/gm,'$1 $3 $4 '); // shorthand elliptical arc path syntax
          			d = svg.compressSpaces(d); // compress multiple spaces
          			d = svg.trim(d);
          			this.PathParser = new (function(d) {
          				this.tokens = d.split(' ');
          				
          				this.reset = function() {
          					this.i = -1;
          					this.command = '';
          					this.previousCommand = '';
          					this.start = new svg.Point(0, 0);
          					this.control = new svg.Point(0, 0);
          					this.current = new svg.Point(0, 0);
          					this.points = [];
          					this.angles = [];
          				}
          								
          				this.isEnd = function() {
          					return this.i >= this.tokens.length - 1;
          				}
          				
          				this.isCommandOrEnd = function() {
          					if (this.isEnd()) return true;
          					return this.tokens[this.i + 1].match(/^[A-Za-z]$/) != null;
          				}
          				
          				this.isRelativeCommand = function() {
          					switch(this.command)
          					{
          						case 'm':
          						case 'l':
          						case 'h':
          						case 'v':
          						case 'c':
          						case 's':
          						case 'q':
          						case 't':
          						case 'a':
          						case 'z':
          							return true;
          							break;
          					}
          					return false;
          				}
          							
          				this.getToken = function() {
          					this.i++;
          					return this.tokens[this.i];
          				}
          				
          				this.getScalar = function() {
          					return parseFloat(this.getToken());
          				}
          				
          				this.nextCommand = function() {
          					this.previousCommand = this.command;
          					this.command = this.getToken();
          				}				
          				
          				this.getPoint = function() {
          					var p = new svg.Point(this.getScalar(), this.getScalar());
          					return this.makeAbsolute(p);
          				}
          				
          				this.getAsControlPoint = function() {
          					var p = this.getPoint();
          					this.control = p;
          					return p;
          				}
          				
          				this.getAsCurrentPoint = function() {
          					var p = this.getPoint();
          					this.current = p;
          					return p;	
          				}
          				
          				this.getReflectedControlPoint = function() {
          					if (this.previousCommand.toLowerCase() != 'c' && 
          					    this.previousCommand.toLowerCase() != 's' &&
          						this.previousCommand.toLowerCase() != 'q' && 
          						this.previousCommand.toLowerCase() != 't' ){
          						return this.current;
          					}
          					
          					// reflect point
          					var p = new svg.Point(2 * this.current.x - this.control.x, 2 * this.current.y - this.control.y);					
          					return p;
          				}
          				
          				this.makeAbsolute = function(p) {
          					if (this.isRelativeCommand()) {
          						p.x += this.current.x;
          						p.y += this.current.y;
          					}
          					return p;
          				}
          				
          				this.addMarker = function(p, from, priorTo) {
          					// if the last angle isn't filled in because we didn't have this point yet ...
          					if (priorTo != null && this.angles.length > 0 && this.angles[this.angles.length-1] == null) {
          						this.angles[this.angles.length-1] = this.points[this.points.length-1].angleTo(priorTo);
          					}
          					this.addMarkerAngle(p, from == null ? null : from.angleTo(p));
          				}
          				
          				this.addMarkerAngle = function(p, a) {
          					this.points.push(p);
          					this.angles.push(a);
          				}				
          				
          				this.getMarkerPoints = function() { return this.points; }
          				this.getMarkerAngles = function() {
          					for (var i=0; i<this.angles.length; i++) {
          						if (this.angles[i] == null) {
          							for (var j=i+1; j<this.angles.length; j++) {
          								if (this.angles[j] != null) {
          									this.angles[i] = this.angles[j];
          									break;
          								}
          							}
          						}
          					}
          					return this.angles;
          				}
          			})(d);
          
          			this.path = function(ctx) {
          				var pp = this.PathParser;
          				pp.reset();
          
          				var bb = new svg.BoundingBox();
          				if (ctx != null) ctx.beginPath();
          				while (!pp.isEnd()) {
          					pp.nextCommand();
          					switch (pp.command) {
          					case 'M':
          					case 'm':
          						var p = pp.getAsCurrentPoint();
          						pp.addMarker(p);
          						bb.addPoint(p.x, p.y);
          						if (ctx != null) ctx.moveTo(p.x, p.y);
          						pp.start = pp.current;
          						while (!pp.isCommandOrEnd()) {
          							var p = pp.getAsCurrentPoint();
          							pp.addMarker(p, pp.start);
          							bb.addPoint(p.x, p.y);
          							if (ctx != null) ctx.lineTo(p.x, p.y);
          						}
          						break;
          					case 'L':
          					case 'l':
          						while (!pp.isCommandOrEnd()) {
          							var c = pp.current;
          							var p = pp.getAsCurrentPoint();
          							pp.addMarker(p, c);
          							bb.addPoint(p.x, p.y);
          							if (ctx != null) ctx.lineTo(p.x, p.y);
          						}
          						break;
          					case 'H':
          					case 'h':
          						while (!pp.isCommandOrEnd()) {
          							var newP = new svg.Point((pp.isRelativeCommand() ? pp.current.x : 0) + pp.getScalar(), pp.current.y);
          							pp.addMarker(newP, pp.current);
          							pp.current = newP;
          							bb.addPoint(pp.current.x, pp.current.y);
          							if (ctx != null) ctx.lineTo(pp.current.x, pp.current.y);
          						}
          						break;
          					case 'V':
          					case 'v':
          						while (!pp.isCommandOrEnd()) {
          							var newP = new svg.Point(pp.current.x, (pp.isRelativeCommand() ? pp.current.y : 0) + pp.getScalar());
          							pp.addMarker(newP, pp.current);
          							pp.current = newP;
          							bb.addPoint(pp.current.x, pp.current.y);
          							if (ctx != null) ctx.lineTo(pp.current.x, pp.current.y);
          						}
          						break;
          					case 'C':
          					case 'c':
          						while (!pp.isCommandOrEnd()) {
          							var curr = pp.current;
          							var p1 = pp.getPoint();
          							var cntrl = pp.getAsControlPoint();
          							var cp = pp.getAsCurrentPoint();
          							pp.addMarker(cp, cntrl, p1);
          							bb.addBezierCurve(curr.x, curr.y, p1.x, p1.y, cntrl.x, cntrl.y, cp.x, cp.y);
          							if (ctx != null) ctx.bezierCurveTo(p1.x, p1.y, cntrl.x, cntrl.y, cp.x, cp.y);
          						}
          						break;
          					case 'S':
          					case 's':
          						while (!pp.isCommandOrEnd()) {
          							var curr = pp.current;
          							var p1 = pp.getReflectedControlPoint();
          							var cntrl = pp.getAsControlPoint();
          							var cp = pp.getAsCurrentPoint();
          							pp.addMarker(cp, cntrl, p1);
          							bb.addBezierCurve(curr.x, curr.y, p1.x, p1.y, cntrl.x, cntrl.y, cp.x, cp.y);
          							if (ctx != null) ctx.bezierCurveTo(p1.x, p1.y, cntrl.x, cntrl.y, cp.x, cp.y);
          						}
          						break;
          					case 'Q':
          					case 'q':
          						while (!pp.isCommandOrEnd()) {
          							var curr = pp.current;
          							var cntrl = pp.getAsControlPoint();
          							var cp = pp.getAsCurrentPoint();
          							pp.addMarker(cp, cntrl, cntrl);
          							bb.addQuadraticCurve(curr.x, curr.y, cntrl.x, cntrl.y, cp.x, cp.y);
          							if (ctx != null) ctx.quadraticCurveTo(cntrl.x, cntrl.y, cp.x, cp.y);
          						}
          						break;
          					case 'T':
          					case 't':
          						while (!pp.isCommandOrEnd()) {
          							var curr = pp.current;
          							var cntrl = pp.getReflectedControlPoint();
          							pp.control = cntrl;
          							var cp = pp.getAsCurrentPoint();
          							pp.addMarker(cp, cntrl, cntrl);
          							bb.addQuadraticCurve(curr.x, curr.y, cntrl.x, cntrl.y, cp.x, cp.y);
          							if (ctx != null) ctx.quadraticCurveTo(cntrl.x, cntrl.y, cp.x, cp.y);
          						}
          						break;
          					case 'A':
          					case 'a':
          						while (!pp.isCommandOrEnd()) {
          						    var curr = pp.current;
          							var rx = pp.getScalar();
          							var ry = pp.getScalar();
          							var xAxisRotation = pp.getScalar() * (Math.PI / 180.0);
          							var largeArcFlag = pp.getScalar();
          							var sweepFlag = pp.getScalar();
          							var cp = pp.getAsCurrentPoint();
          
          							// Conversion from endpoint to center parameterization
          							// http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes
          							// x1', y1'
          							var currp = new svg.Point(
          								Math.cos(xAxisRotation) * (curr.x - cp.x) / 2.0 + Math.sin(xAxisRotation) * (curr.y - cp.y) / 2.0,
          								-Math.sin(xAxisRotation) * (curr.x - cp.x) / 2.0 + Math.cos(xAxisRotation) * (curr.y - cp.y) / 2.0
          							);
          							// adjust radii
          							var l = Math.pow(currp.x,2)/Math.pow(rx,2)+Math.pow(currp.y,2)/Math.pow(ry,2);
          							if (l > 1) {
          								rx *= Math.sqrt(l);
          								ry *= Math.sqrt(l);
          							}
          							// cx', cy'
          							var s = (largeArcFlag == sweepFlag ? -1 : 1) * Math.sqrt(
          								((Math.pow(rx,2)*Math.pow(ry,2))-(Math.pow(rx,2)*Math.pow(currp.y,2))-(Math.pow(ry,2)*Math.pow(currp.x,2))) /
          								(Math.pow(rx,2)*Math.pow(currp.y,2)+Math.pow(ry,2)*Math.pow(currp.x,2))
          							);
          							if (isNaN(s)) s = 0;
          							var cpp = new svg.Point(s * rx * currp.y / ry, s * -ry * currp.x / rx);
          							// cx, cy
          							var centp = new svg.Point(
          								(curr.x + cp.x) / 2.0 + Math.cos(xAxisRotation) * cpp.x - Math.sin(xAxisRotation) * cpp.y,
          								(curr.y + cp.y) / 2.0 + Math.sin(xAxisRotation) * cpp.x + Math.cos(xAxisRotation) * cpp.y
          							);
          							// vector magnitude
          							var m = function(v) { return Math.sqrt(Math.pow(v[0],2) + Math.pow(v[1],2)); }
          							// ratio between two vectors
          							var r = function(u, v) { return (u[0]*v[0]+u[1]*v[1]) / (m(u)*m(v)) }
          							// angle between two vectors
          							var a = function(u, v) { return (u[0]*v[1] < u[1]*v[0] ? -1 : 1) * Math.acos(r(u,v)); }
          							// initial angle
          							var a1 = a([1,0], [(currp.x-cpp.x)/rx,(currp.y-cpp.y)/ry]);
          							// angle delta
          							var u = [(currp.x-cpp.x)/rx,(currp.y-cpp.y)/ry];
          							var v = [(-currp.x-cpp.x)/rx,(-currp.y-cpp.y)/ry];
          							var ad = a(u, v);
          							if (r(u,v) <= -1) ad = Math.PI;
          							if (r(u,v) >= 1) ad = 0;
          
          							// for markers
          							var dir = 1 - sweepFlag ? 1.0 : -1.0;
          							var ah = a1 + dir * (ad / 2.0);
          							var halfWay = new svg.Point(
          								centp.x + rx * Math.cos(ah),
          								centp.y + ry * Math.sin(ah)
          							);
          							pp.addMarkerAngle(halfWay, ah - dir * Math.PI / 2);
          							pp.addMarkerAngle(cp, ah - dir * Math.PI);
          
          							bb.addPoint(cp.x, cp.y); // TODO: this is too naive, make it better
          							if (ctx != null) {
          								var r = rx > ry ? rx : ry;
          								var sx = rx > ry ? 1 : rx / ry;
          								var sy = rx > ry ? ry / rx : 1;
          
          								ctx.translate(centp.x, centp.y);
          								ctx.rotate(xAxisRotation);
          								ctx.scale(sx, sy);
          								ctx.arc(0, 0, r, a1, a1 + ad, 1 - sweepFlag);
          								ctx.scale(1/sx, 1/sy);
          								ctx.rotate(-xAxisRotation);
          								ctx.translate(-centp.x, -centp.y);
          							}
          						}
          						break;
          					case 'Z':
          					case 'z':
          						if (ctx != null) ctx.closePath();
          						pp.current = pp.start;
          					}
          				}
          
          				return bb;
          			}
          
          			this.getMarkers = function() {
          				var points = this.PathParser.getMarkerPoints();
          				var angles = this.PathParser.getMarkerAngles();
          				
          				var markers = [];
          				for (var i=0; i<points.length; i++) {
          					markers.push([points[i], angles[i]]);
          				}
          				return markers;
          			}
          		}
          		svg.Element.path.prototype = new svg.Element.PathElementBase;
          		
          		// pattern element
          		svg.Element.pattern = function(node) {
          			this.base = svg.Element.ElementBase;
          			this.base(node);
          			
          			this.createPattern = function(ctx, element) {
          				var width = this.attribute('width').toPixels('x', true);
          				var height = this.attribute('height').toPixels('y', true);
          			
          				// render me using a temporary svg element
          				var tempSvg = new svg.Element.svg();
          				tempSvg.attributes['viewBox'] = new svg.Property('viewBox', this.attribute('viewBox').value);
          				tempSvg.attributes['width'] = new svg.Property('width', width + 'px');
          				tempSvg.attributes['height'] = new svg.Property('height', height + 'px');
          				tempSvg.attributes['transform'] = new svg.Property('transform', this.attribute('patternTransform').value);
          				tempSvg.children = this.children;
          				
          				var c = document.createElement('canvas');
          				c.width = width;
          				c.height = height;
          				var cctx = c.getContext('2d');
          				if (this.attribute('x').hasValue() && this.attribute('y').hasValue()) {
          					cctx.translate(this.attribute('x').toPixels('x', true), this.attribute('y').toPixels('y', true));
          				}
          				// render 3x3 grid so when we transform there's no white space on edges
          				for (var x=-1; x<=1; x++) {
          					for (var y=-1; y<=1; y++) {
          						cctx.save();
          						cctx.translate(x * c.width, y * c.height);
          						tempSvg.render(cctx);
          						cctx.restore();
          					}
          				}
          				var pattern = ctx.createPattern(c, 'repeat');
          				return pattern;
          			}
          		}
          		svg.Element.pattern.prototype = new svg.Element.ElementBase;
          		
          		// marker element
          		svg.Element.marker = function(node) {
          			this.base = svg.Element.ElementBase;
          			this.base(node);
          			
          			this.baseRender = this.render;
          			this.render = function(ctx, point, angle) {
          				ctx.translate(point.x, point.y);
          				if (this.attribute('orient').valueOrDefault('auto') == 'auto') ctx.rotate(angle);
          				if (this.attribute('markerUnits').valueOrDefault('strokeWidth') == 'strokeWidth') ctx.scale(ctx.lineWidth, ctx.lineWidth);
          				ctx.save();
          							
          				// render me using a temporary svg element
          				var tempSvg = new svg.Element.svg();
          				tempSvg.attributes['viewBox'] = new svg.Property('viewBox', this.attribute('viewBox').value);
          				tempSvg.attributes['refX'] = new svg.Property('refX', this.attribute('refX').value);
          				tempSvg.attributes['refY'] = new svg.Property('refY', this.attribute('refY').value);
          				tempSvg.attributes['width'] = new svg.Property('width', this.attribute('markerWidth').value);
          				tempSvg.attributes['height'] = new svg.Property('height', this.attribute('markerHeight').value);
          				tempSvg.attributes['fill'] = new svg.Property('fill', this.attribute('fill').valueOrDefault('black'));
          				tempSvg.attributes['stroke'] = new svg.Property('stroke', this.attribute('stroke').valueOrDefault('none'));
          				tempSvg.children = this.children;
          				tempSvg.render(ctx);
          				
          				ctx.restore();
          				if (this.attribute('markerUnits').valueOrDefault('strokeWidth') == 'strokeWidth') ctx.scale(1/ctx.lineWidth, 1/ctx.lineWidth);
          				if (this.attribute('orient').valueOrDefault('auto') == 'auto') ctx.rotate(-angle);
          				ctx.translate(-point.x, -point.y);
          			}
          		}
          		svg.Element.marker.prototype = new svg.Element.ElementBase;
          		
          		// definitions element
          		svg.Element.defs = function(node) {
          			this.base = svg.Element.ElementBase;
          			this.base(node);	
          			
          			this.render = function(ctx) {
          				// NOOP
          			}
          		}
          		svg.Element.defs.prototype = new svg.Element.ElementBase;
          		
          		// base for gradients
          		svg.Element.GradientBase = function(node) {
          			this.base = svg.Element.ElementBase;
          			this.base(node);
          			
          			this.gradientUnits = this.attribute('gradientUnits').valueOrDefault('objectBoundingBox');
          			
          			this.stops = [];			
          			for (var i=0; i<this.children.length; i++) {
          				var child = this.children[i];
          				if (child.type == 'stop') this.stops.push(child);
          			}	
          			
          			this.getGradient = function() {
          				// OVERRIDE ME!
          			}			
          
          			this.createGradient = function(ctx, element, parentOpacityProp) {
          				var stopsContainer = this;
          				if (this.getHrefAttribute().hasValue()) {
          					stopsContainer = this.getHrefAttribute().getDefinition();
          				}
          				
          				var addParentOpacity = function (color) {
          					if (parentOpacityProp.hasValue()) {
          						var p = new svg.Property('color', color);
          						return p.addOpacity(parentOpacityProp).value;
          					}
          					return color;
          				};
          			
          				var g = this.getGradient(ctx, element);
          				if (g == null) return addParentOpacity(stopsContainer.stops[stopsContainer.stops.length - 1].color);
          				for (var i=0; i<stopsContainer.stops.length; i++) {
          					g.addColorStop(stopsContainer.stops[i].offset, addParentOpacity(stopsContainer.stops[i].color));
          				}
          				
          				if (this.attribute('gradientTransform').hasValue()) {
          					// render as transformed pattern on temporary canvas
          					var rootView = svg.ViewPort.viewPorts[0];
          					
          					var rect = new svg.Element.rect();
          					rect.attributes['x'] = new svg.Property('x', -svg.MAX_VIRTUAL_PIXELS/3.0);
          					rect.attributes['y'] = new svg.Property('y', -svg.MAX_VIRTUAL_PIXELS/3.0);
          					rect.attributes['width'] = new svg.Property('width', svg.MAX_VIRTUAL_PIXELS);
          					rect.attributes['height'] = new svg.Property('height', svg.MAX_VIRTUAL_PIXELS);
          					
          					var group = new svg.Element.g();
          					group.attributes['transform'] = new svg.Property('transform', this.attribute('gradientTransform').value);
          					group.children = [ rect ];
          					
          					var tempSvg = new svg.Element.svg();
          					tempSvg.attributes['x'] = new svg.Property('x', 0);
          					tempSvg.attributes['y'] = new svg.Property('y', 0);
          					tempSvg.attributes['width'] = new svg.Property('width', rootView.width);
          					tempSvg.attributes['height'] = new svg.Property('height', rootView.height);
          					tempSvg.children = [ group ];
          					
          					var c = document.createElement('canvas');
          					c.width = rootView.width;
          					c.height = rootView.height;
          					var tempCtx = c.getContext('2d');
          					tempCtx.fillStyle = g;
          					tempSvg.render(tempCtx);		
          					return tempCtx.createPattern(c, 'no-repeat');
          				}
          				
          				return g;				
          			}
          		}
          		svg.Element.GradientBase.prototype = new svg.Element.ElementBase;
          		
          		// linear gradient element
          		svg.Element.linearGradient = function(node) {
          			this.base = svg.Element.GradientBase;
          			this.base(node);
          			
          			this.getGradient = function(ctx, element) {
          				var bb = this.gradientUnits == 'objectBoundingBox' ? element.getBoundingBox() : null;
          				
          				if (!this.attribute('x1').hasValue()
          				 && !this.attribute('y1').hasValue()
          				 && !this.attribute('x2').hasValue()
          				 && !this.attribute('y2').hasValue()) {
          					this.attribute('x1', true).value = 0;
          					this.attribute('y1', true).value = 0;
          					this.attribute('x2', true).value = 1;
          					this.attribute('y2', true).value = 0;
          				 }
          				
          				var x1 = (this.gradientUnits == 'objectBoundingBox' 
          					? bb.x() + bb.width() * this.attribute('x1').numValue() 
          					: this.attribute('x1').toPixels('x'));
          				var y1 = (this.gradientUnits == 'objectBoundingBox' 
          					? bb.y() + bb.height() * this.attribute('y1').numValue()
          					: this.attribute('y1').toPixels('y'));
          				var x2 = (this.gradientUnits == 'objectBoundingBox' 
          					? bb.x() + bb.width() * this.attribute('x2').numValue()
          					: this.attribute('x2').toPixels('x'));
          				var y2 = (this.gradientUnits == 'objectBoundingBox' 
          					? bb.y() + bb.height() * this.attribute('y2').numValue()
          					: this.attribute('y2').toPixels('y'));
          
          				if (x1 == x2 && y1 == y2) return null;
          				return ctx.createLinearGradient(x1, y1, x2, y2);
          			}
          		}
          		svg.Element.linearGradient.prototype = new svg.Element.GradientBase;
          		
          		// radial gradient element
          		svg.Element.radialGradient = function(node) {
          			this.base = svg.Element.GradientBase;
          			this.base(node);
          			
          			this.getGradient = function(ctx, element) {
          				var bb = element.getBoundingBox();
          				
          				if (!this.attribute('cx').hasValue()) this.attribute('cx', true).value = '50%';
          				if (!this.attribute('cy').hasValue()) this.attribute('cy', true).value = '50%';
          				if (!this.attribute('r').hasValue()) this.attribute('r', true).value = '50%';
          				
          				var cx = (this.gradientUnits == 'objectBoundingBox' 
          					? bb.x() + bb.width() * this.attribute('cx').numValue() 
          					: this.attribute('cx').toPixels('x'));
          				var cy = (this.gradientUnits == 'objectBoundingBox' 
          					? bb.y() + bb.height() * this.attribute('cy').numValue() 
          					: this.attribute('cy').toPixels('y'));
          				
          				var fx = cx;
          				var fy = cy;
          				if (this.attribute('fx').hasValue()) {
          					fx = (this.gradientUnits == 'objectBoundingBox' 
          					? bb.x() + bb.width() * this.attribute('fx').numValue() 
          					: this.attribute('fx').toPixels('x'));
          				}
          				if (this.attribute('fy').hasValue()) {
          					fy = (this.gradientUnits == 'objectBoundingBox' 
          					? bb.y() + bb.height() * this.attribute('fy').numValue() 
          					: this.attribute('fy').toPixels('y'));
          				}
          				
          				var r = (this.gradientUnits == 'objectBoundingBox' 
          					? (bb.width() + bb.height()) / 2.0 * this.attribute('r').numValue()
          					: this.attribute('r').toPixels());
          				
          				return ctx.createRadialGradient(fx, fy, 0, cx, cy, r);
          			}
          		}
          		svg.Element.radialGradient.prototype = new svg.Element.GradientBase;
          		
          		// gradient stop element
          		svg.Element.stop = function(node) {
          			this.base = svg.Element.ElementBase;
          			this.base(node);
          			
          			this.offset = this.attribute('offset').numValue();
          			if (this.offset < 0) this.offset = 0;
          			if (this.offset > 1) this.offset = 1;
          			
          			var stopColor = this.style('stop-color');
          			if (this.style('stop-opacity').hasValue()) stopColor = stopColor.addOpacity(this.style('stop-opacity'));
          			this.color = stopColor.value;
          		}
          		svg.Element.stop.prototype = new svg.Element.ElementBase;
          		
          		// animation base element
          		svg.Element.AnimateBase = function(node) {
          			this.base = svg.Element.ElementBase;
          			this.base(node);
          			
          			svg.Animations.push(this);
          			
          			this.duration = 0.0;
          			this.begin = this.attribute('begin').toMilliseconds();
          			this.maxDuration = this.begin + this.attribute('dur').toMilliseconds();
          			
          			this.getProperty = function() {
          				var attributeType = this.attribute('attributeType').value;
          				var attributeName = this.attribute('attributeName').value;
          				
          				if (attributeType == 'CSS') {
          					return this.parent.style(attributeName, true);
          				}
          				return this.parent.attribute(attributeName, true);			
          			};
          			
          			this.initialValue = null;
          			this.initialUnits = '';
          			this.removed = false;		
          
          			this.calcValue = function() {
          				// OVERRIDE ME!
          				return '';
          			}
          					
          			this.update = function(delta) {	
          				// set initial value
          				if (this.initialValue == null) {
          					this.initialValue = this.getProperty().value;
          					this.initialUnits = this.getProperty().getUnits();
          				}
          			
          				// if we're past the end time
          				if (this.duration > this.maxDuration) {
          					// loop for indefinitely repeating animations
          					if (this.attribute('repeatCount').value == 'indefinite'
          					 || this.attribute('repeatDur').value == 'indefinite') {
          						this.duration = 0.0
          					}
          					else if (this.attribute('fill').valueOrDefault('remove') == 'freeze' && !this.frozen) {
          						this.frozen = true;
          						this.parent.animationFrozen = true;
          						this.parent.animationFrozenValue = this.getProperty().value;
          					}
          					else if (this.attribute('fill').valueOrDefault('remove') == 'remove' && !this.removed) {
          						this.removed = true;
          						this.getProperty().value = this.parent.animationFrozen ? this.parent.animationFrozenValue : this.initialValue;
          						return true;
          					}
          					return false;
          				}			
          				this.duration = this.duration + delta;
          			
          				// if we're past the begin time
          				var updated = false;
          				if (this.begin < this.duration) {
          					var newValue = this.calcValue(); // tween
          					
          					if (this.attribute('type').hasValue()) {
          						// for transform, etc.
          						var type = this.attribute('type').value;
          						newValue = type + '(' + newValue + ')';
          					}
          					
          					this.getProperty().value = newValue;
          					updated = true;
          				}
          				
          				return updated;
          			}
          			
          			this.from = this.attribute('from');
          			this.to = this.attribute('to');
          			this.values = this.attribute('values');
          			if (this.values.hasValue()) this.values.value = this.values.value.split(';');
          			
          			// fraction of duration we've covered
          			this.progress = function() {
          				var ret = { progress: (this.duration - this.begin) / (this.maxDuration - this.begin) };
          				if (this.values.hasValue()) {
          					var p = ret.progress * (this.values.value.length - 1);
          					var lb = Math.floor(p), ub = Math.ceil(p);
          					ret.from = new svg.Property('from', parseFloat(this.values.value[lb]));
          					ret.to = new svg.Property('to', parseFloat(this.values.value[ub]));
          					ret.progress = (p - lb) / (ub - lb);
          				}
          				else {
          					ret.from = this.from;
          					ret.to = this.to;
          				}
          				return ret;
          			}			
          		}
          		svg.Element.AnimateBase.prototype = new svg.Element.ElementBase;
          		
          		// animate element
          		svg.Element.animate = function(node) {
          			this.base = svg.Element.AnimateBase;
          			this.base(node);
          			
          			this.calcValue = function() {
          				var p = this.progress();
          				
          				// tween value linearly
          				var newValue = p.from.numValue() + (p.to.numValue() - p.from.numValue()) * p.progress; 
          				return newValue + this.initialUnits;
          			};
          		}
          		svg.Element.animate.prototype = new svg.Element.AnimateBase;
          			
          		// animate color element
          		svg.Element.animateColor = function(node) {
          			this.base = svg.Element.AnimateBase;
          			this.base(node);
          
          			this.calcValue = function() {
          				var p = this.progress();
          				var from = new RGBColor(p.from.value);
          				var to = new RGBColor(p.to.value);
          				
          				if (from.ok && to.ok) {
          					// tween color linearly
          					var r = from.r + (to.r - from.r) * p.progress;
          					var g = from.g + (to.g - from.g) * p.progress;
          					var b = from.b + (to.b - from.b) * p.progress;
          					return 'rgb('+parseInt(r,10)+','+parseInt(g,10)+','+parseInt(b,10)+')';
          				}
          				return this.attribute('from').value;
          			};
          		}
          		svg.Element.animateColor.prototype = new svg.Element.AnimateBase;
          		
          		// animate transform element
          		svg.Element.animateTransform = function(node) {
          			this.base = svg.Element.AnimateBase;
          			this.base(node);
          			
          			this.calcValue = function() {
          				var p = this.progress();
          				
          				// tween value linearly
          				var from = svg.ToNumberArray(p.from.value);
          				var to = svg.ToNumberArray(p.to.value);
          				var newValue = '';
          				for (var i=0; i<from.length; i++) {
          					newValue += from[i] + (to[i] - from[i]) * p.progress + ' ';
          				}
          				return newValue;
          			};
          		}
          		svg.Element.animateTransform.prototype = new svg.Element.animate;
          		
          		// font element
          		svg.Element.font = function(node) {
          			this.base = svg.Element.ElementBase;
          			this.base(node);
          
          			this.horizAdvX = this.attribute('horiz-adv-x').numValue();			
          			
          			this.isRTL = false;
          			this.isArabic = false;
          			this.fontFace = null;
          			this.missingGlyph = null;
          			this.glyphs = [];			
          			for (var i=0; i<this.children.length; i++) {
          				var child = this.children[i];
          				if (child.type == 'font-face') {
          					this.fontFace = child;
          					if (child.style('font-family').hasValue()) {
          						svg.Definitions[child.style('font-family').value] = this;
          					}
          				}
          				else if (child.type == 'missing-glyph') this.missingGlyph = child;
          				else if (child.type == 'glyph') {
          					if (child.arabicForm != '') {
          						this.isRTL = true;
          						this.isArabic = true;
          						if (typeof(this.glyphs[child.unicode]) == 'undefined') this.glyphs[child.unicode] = [];
          						this.glyphs[child.unicode][child.arabicForm] = child;
          					}
          					else {
          						this.glyphs[child.unicode] = child;
          					}
          				}
          			}	
          		}
          		svg.Element.font.prototype = new svg.Element.ElementBase;
          		
          		// font-face element
          		svg.Element.fontface = function(node) {
          			this.base = svg.Element.ElementBase;
          			this.base(node);	
          			
          			this.ascent = this.attribute('ascent').value;
          			this.descent = this.attribute('descent').value;
          			this.unitsPerEm = this.attribute('units-per-em').numValue();				
          		}
          		svg.Element.fontface.prototype = new svg.Element.ElementBase;
          		
          		// missing-glyph element
          		svg.Element.missingglyph = function(node) {
          			this.base = svg.Element.path;
          			this.base(node);	
          			
          			this.horizAdvX = 0;
          		}
          		svg.Element.missingglyph.prototype = new svg.Element.path;
          		
          		// glyph element
          		svg.Element.glyph = function(node) {
          			this.base = svg.Element.path;
          			this.base(node);	
          			
          			this.horizAdvX = this.attribute('horiz-adv-x').numValue();
          			this.unicode = this.attribute('unicode').value;
          			this.arabicForm = this.attribute('arabic-form').value;
          		}
          		svg.Element.glyph.prototype = new svg.Element.path;
          		
          		// text element
          		svg.Element.text = function(node) {
          			this.captureTextNodes = true;
          			this.base = svg.Element.RenderedElementBase;
          			this.base(node);
          			
          			this.baseSetContext = this.setContext;
          			this.setContext = function(ctx) {
          				this.baseSetContext(ctx);
          				
          				var textBaseline = this.style('dominant-baseline').toTextBaseline();
          				if (textBaseline == null) textBaseline = this.style('alignment-baseline').toTextBaseline();
          				if (textBaseline != null) ctx.textBaseline = textBaseline;
          			}
          			
          			this.getBoundingBox = function () {
          				var x = this.attribute('x').toPixels('x');
          				var y = this.attribute('y').toPixels('y');
          				var fontSize = this.parent.style('font-size').numValueOrDefault(svg.Font.Parse(svg.ctx.font).fontSize);
          				return new svg.BoundingBox(x, y - fontSize, x + Math.floor(fontSize * 2.0 / 3.0) * this.children[0].getText().length, y);
          			}
          			
          			this.renderChildren = function(ctx) {
          				this.x = this.attribute('x').toPixels('x');
          				this.y = this.attribute('y').toPixels('y');
          				this.x += this.getAnchorDelta(ctx, this, 0);
          				for (var i=0; i<this.children.length; i++) {
          					this.renderChild(ctx, this, i);
          				}
          			}
          			
          			this.getAnchorDelta = function (ctx, parent, startI) {
          				var textAnchor = this.style('text-anchor').valueOrDefault('start');
          				if (textAnchor != 'start') {
          					var width = 0;
          					for (var i=startI; i<parent.children.length; i++) {
          						var child = parent.children[i];
          						if (i > startI && child.attribute('x').hasValue()) break; // new group
          						width += child.measureTextRecursive(ctx);
          					}
          					return -1 * (textAnchor == 'end' ? width : width / 2.0);
          				}
          				return 0;
          			}
          			
          			this.renderChild = function(ctx, parent, i) {
          				var child = parent.children[i];
          				if (child.attribute('x').hasValue()) {
          					child.x = child.attribute('x').toPixels('x') + this.getAnchorDelta(ctx, parent, i);
          					if (child.attribute('dx').hasValue()) child.x += child.attribute('dx').toPixels('x');
          				}
          				else {
          					if (this.attribute('dx').hasValue()) this.x += this.attribute('dx').toPixels('x');
          					if (child.attribute('dx').hasValue()) this.x += child.attribute('dx').toPixels('x');
          					child.x = this.x;
          				}
          				this.x = child.x + child.measureText(ctx);
          				
          				if (child.attribute('y').hasValue()) {
          					child.y = child.attribute('y').toPixels('y');
          					if (child.attribute('dy').hasValue()) child.y += child.attribute('dy').toPixels('y');
          				}
          				else {
          					if (this.attribute('dy').hasValue()) this.y += this.attribute('dy').toPixels('y');
          					if (child.attribute('dy').hasValue()) this.y += child.attribute('dy').toPixels('y');
          					child.y = this.y;
          				}
          				this.y = child.y;
          				
          				child.render(ctx);
          				
          				for (var i=0; i<child.children.length; i++) {
          					this.renderChild(ctx, child, i);
          				}
          			}
          		}
          		svg.Element.text.prototype = new svg.Element.RenderedElementBase;
          		
          		// text base
          		svg.Element.TextElementBase = function(node) {
          			this.base = svg.Element.RenderedElementBase;
          			this.base(node);
          			
          			this.getGlyph = function(font, text, i) {
          				var c = text[i];
          				var glyph = null;
          				if (font.isArabic) {
          					var arabicForm = 'isolated';
          					if ((i==0 || text[i-1]==' ') && i<text.length-2 && text[i+1]!=' ') arabicForm = 'terminal'; 
          					if (i>0 && text[i-1]!=' ' && i<text.length-2 && text[i+1]!=' ') arabicForm = 'medial';
          					if (i>0 && text[i-1]!=' ' && (i == text.length-1 || text[i+1]==' ')) arabicForm = 'initial';
          					if (typeof(font.glyphs[c]) != 'undefined') {
          						glyph = font.glyphs[c][arabicForm];
          						if (glyph == null && font.glyphs[c].type == 'glyph') glyph = font.glyphs[c];
          					}
          				}
          				else {
          					glyph = font.glyphs[c];
          				}
          				if (glyph == null) glyph = font.missingGlyph;
          				return glyph;
          			}
          			
          			this.renderChildren = function(ctx) {
          				var customFont = this.parent.style('font-family').getDefinition();
          				if (customFont != null) {
          					var fontSize = this.parent.style('font-size').numValueOrDefault(svg.Font.Parse(svg.ctx.font).fontSize);
          					var fontStyle = this.parent.style('font-style').valueOrDefault(svg.Font.Parse(svg.ctx.font).fontStyle);
          					var text = this.getText();
          					if (customFont.isRTL) text = text.split("").reverse().join("");
          					
          					var dx = svg.ToNumberArray(this.parent.attribute('dx').value);
          					for (var i=0; i<text.length; i++) {
          						var glyph = this.getGlyph(customFont, text, i);
          						var scale = fontSize / customFont.fontFace.unitsPerEm;
          						ctx.translate(this.x, this.y);
          						ctx.scale(scale, -scale);
          						var lw = ctx.lineWidth;
          						ctx.lineWidth = ctx.lineWidth * customFont.fontFace.unitsPerEm / fontSize;
          						if (fontStyle == 'italic') ctx.transform(1, 0, .4, 1, 0, 0);
          						glyph.render(ctx);
          						if (fontStyle == 'italic') ctx.transform(1, 0, -.4, 1, 0, 0);
          						ctx.lineWidth = lw;
          						ctx.scale(1/scale, -1/scale);
          						ctx.translate(-this.x, -this.y);	
          						
          						this.x += fontSize * (glyph.horizAdvX || customFont.horizAdvX) / customFont.fontFace.unitsPerEm;
          						if (typeof(dx[i]) != 'undefined' && !isNaN(dx[i])) {
          							this.x += dx[i];
          						}
          					}
          					return;
          				}
          			
          				if (ctx.fillStyle != '') ctx.fillText(svg.compressSpaces(this.getText()), this.x, this.y);
          				if (ctx.strokeStyle != '') ctx.strokeText(svg.compressSpaces(this.getText()), this.x, this.y);
          			}
          			
          			this.getText = function() {
          				// OVERRIDE ME
          			}
          			
          			this.measureTextRecursive = function(ctx) {
          				var width = this.measureText(ctx);
          				for (var i=0; i<this.children.length; i++) {
          					width += this.children[i].measureTextRecursive(ctx);
          				}
          				return width;
          			}
          			
          			this.measureText = function(ctx) {
          				var customFont = this.parent.style('font-family').getDefinition();
          				if (customFont != null) {
          					var fontSize = this.parent.style('font-size').numValueOrDefault(svg.Font.Parse(svg.ctx.font).fontSize);
          					var measure = 0;
          					var text = this.getText();
          					if (customFont.isRTL) text = text.split("").reverse().join("");
          					var dx = svg.ToNumberArray(this.parent.attribute('dx').value);
          					for (var i=0; i<text.length; i++) {
          						var glyph = this.getGlyph(customFont, text, i);
          						measure += (glyph.horizAdvX || customFont.horizAdvX) * fontSize / customFont.fontFace.unitsPerEm;
          						if (typeof(dx[i]) != 'undefined' && !isNaN(dx[i])) {
          							measure += dx[i];
          						}
          					}
          					return measure;
          				}
          			
          				var textToMeasure = svg.compressSpaces(this.getText());
          				if (!ctx.measureText) return textToMeasure.length * 10;
          				
          				ctx.save();
          				this.setContext(ctx);
          				var width = ctx.measureText(textToMeasure).width;
          				ctx.restore();
          				return width;
          			}
          		}
          		svg.Element.TextElementBase.prototype = new svg.Element.RenderedElementBase;
          		
          		// tspan 
          		svg.Element.tspan = function(node) {
          			this.captureTextNodes = true;
          			this.base = svg.Element.TextElementBase;
          			this.base(node);
          			
          			this.text = node.nodeValue || node.text || '';
          			this.getText = function() {
          				return this.text;
          			}
          		}
          		svg.Element.tspan.prototype = new svg.Element.TextElementBase;
          		
          		// tref
          		svg.Element.tref = function(node) {
          			this.base = svg.Element.TextElementBase;
          			this.base(node);
          			
          			this.getText = function() {
          				var element = this.getHrefAttribute().getDefinition();
          				if (element != null) return element.children[0].getText();
          			}
          		}
          		svg.Element.tref.prototype = new svg.Element.TextElementBase;		
          		
          		// a element
          		svg.Element.a = function(node) {
          			this.base = svg.Element.TextElementBase;
          			this.base(node);
          			
          			this.hasText = true;
          			for (var i=0; i<node.childNodes.length; i++) {
          				if (node.childNodes[i].nodeType != 3) this.hasText = false;
          			}
          			
          			// this might contain text
          			this.text = this.hasText ? node.childNodes[0].nodeValue : '';
          			this.getText = function() {
          				return this.text;
          			}		
          
          			this.baseRenderChildren = this.renderChildren;
          			this.renderChildren = function(ctx) {
          				if (this.hasText) {
          					// render as text element
          					this.baseRenderChildren(ctx);
          					var fontSize = new svg.Property('fontSize', svg.Font.Parse(svg.ctx.font).fontSize);
          					svg.Mouse.checkBoundingBox(this, new svg.BoundingBox(this.x, this.y - fontSize.toPixels('y'), this.x + this.measureText(ctx), this.y));					
          				}
          				else {
          					// render as temporary group
          					var g = new svg.Element.g();
          					g.children = this.children;
          					g.parent = this;
          					g.render(ctx);
          				}
          			}
          			
          			this.onclick = function() {
          				window.open(this.getHrefAttribute().value);
          			}
          			
          			this.onmousemove = function() {
          				svg.ctx.canvas.style.cursor = 'pointer';
          			}
          		}
          		svg.Element.a.prototype = new svg.Element.TextElementBase;		
          		
          		// image element
          		svg.Element.image = function(node) {
          			this.base = svg.Element.RenderedElementBase;
          			this.base(node);
          			
          			var href = this.getHrefAttribute().value;
          			if (href === '') {
          				return;
          			}
          			var isSvg = href.match(/\.svg$/)
          			
          			svg.Images.push(this);
          			this.loaded = false;
          			if (!isSvg) {
          				this.img = document.createElement('img');
          				if (svg.opts['useCORS'] == true) { this.img.crossOrigin = 'Anonymous'; }
          				var self = this;
          				this.img.onload = function() { self.loaded = true; }
          				this.img.onerror = function() { svg.log('ERROR: image "' + href + '" not found'); self.loaded = true; }
          				this.img.src = href;
          			}
          			else {
          				this.img = svg.ajax(href);
          				this.loaded = true;
          			}
          			
          			this.renderChildren = function(ctx) {
          				var x = this.attribute('x').toPixels('x');
          				var y = this.attribute('y').toPixels('y');
          				
          				var width = this.attribute('width').toPixels('x');
          				var height = this.attribute('height').toPixels('y');			
          				if (width == 0 || height == 0) return;
          			
          				ctx.save();
          				if (isSvg) {
          					ctx.drawSvg(this.img, x, y, width, height);
          				}
          				else {
          					ctx.translate(x, y);
          					svg.AspectRatio(ctx,
          									this.attribute('preserveAspectRatio').value,
          									width,
          									this.img.width,
          									height,
          									this.img.height,
          									0,
          									0);	
          					ctx.drawImage(this.img, 0, 0);		
          				}
          				ctx.restore();
          			}
          			
          			this.getBoundingBox = function() {
          				var x = this.attribute('x').toPixels('x');
          				var y = this.attribute('y').toPixels('y');
          				var width = this.attribute('width').toPixels('x');
          				var height = this.attribute('height').toPixels('y');
          				return new svg.BoundingBox(x, y, x + width, y + height);
          			}
          		}
          		svg.Element.image.prototype = new svg.Element.RenderedElementBase;
          		
          		// group element
          		svg.Element.g = function(node) {
          			this.base = svg.Element.RenderedElementBase;
          			this.base(node);
          			
          			this.getBoundingBox = function() {
          				var bb = new svg.BoundingBox();
          				for (var i=0; i<this.children.length; i++) {
          					bb.addBoundingBox(this.children[i].getBoundingBox());
          				}
          				return bb;
          			};
          		}
          		svg.Element.g.prototype = new svg.Element.RenderedElementBase;
          
          		// symbol element
          		svg.Element.symbol = function(node) {
          			this.base = svg.Element.RenderedElementBase;
          			this.base(node);
          
          			this.render = function(ctx) {
          				// NO RENDER
          			};
          		}
          		svg.Element.symbol.prototype = new svg.Element.RenderedElementBase;		
          			
          		// style element
          		svg.Element.style = function(node) { 
          			this.base = svg.Element.ElementBase;
          			this.base(node);
          			
          			// text, or spaces then CDATA
          			var css = ''
          			for (var i=0; i<node.childNodes.length; i++) {
          			  css += node.childNodes[i].nodeValue;
          			}
          			css = css.replace(/(\/\*([^*]|[\r\n]|(\*+([^*\/]|[\r\n])))*\*+\/)|(^[\s]*\/\/.*)/gm, ''); // remove comments
          			css = svg.compressSpaces(css); // replace whitespace
          			var cssDefs = css.split('}');
          			for (var i=0; i<cssDefs.length; i++) {
          				if (svg.trim(cssDefs[i]) != '') {
          					var cssDef = cssDefs[i].split('{');
          					var cssClasses = cssDef[0].split(',');
          					var cssProps = cssDef[1].split(';');
          					for (var j=0; j<cssClasses.length; j++) {
          						var cssClass = svg.trim(cssClasses[j]);
          						if (cssClass != '') {
          							var props = {};
          							for (var k=0; k<cssProps.length; k++) {
          								var prop = cssProps[k].indexOf(':');
          								var name = cssProps[k].substr(0, prop);
          								var value = cssProps[k].substr(prop + 1, cssProps[k].length - prop);
          								if (name != null && value != null) {
          									props[svg.trim(name)] = new svg.Property(svg.trim(name), svg.trim(value));
          								}
          							}
          							svg.Styles[cssClass] = props;
          							if (cssClass == '@font-face') {
          								var fontFamily = props['font-family'].value.replace(/"/g,'');
          								var srcs = props['src'].value.split(',');
          								for (var s=0; s<srcs.length; s++) {
          									if (srcs[s].indexOf('format("svg")') > 0) {
          										var urlStart = srcs[s].indexOf('url');
          										var urlEnd = srcs[s].indexOf(')', urlStart);
          										var url = srcs[s].substr(urlStart + 5, urlEnd - urlStart - 6);
          										var doc = svg.parseXml(svg.ajax(url));
          										var fonts = doc.getElementsByTagName('font');
          										for (var f=0; f<fonts.length; f++) {
          											var font = svg.CreateElement(fonts[f]);
          											svg.Definitions[fontFamily] = font;
          										}
          									}
          								}
          							}
          						}
          					}
          				}
          			}
          		}
          		svg.Element.style.prototype = new svg.Element.ElementBase;
          		
          		// use element 
          		svg.Element.use = function(node) {
          			this.base = svg.Element.RenderedElementBase;
          			this.base(node);
          			
          			this.baseSetContext = this.setContext;
          			this.setContext = function(ctx) {
          				this.baseSetContext(ctx);
          				if (this.attribute('x').hasValue()) ctx.translate(this.attribute('x').toPixels('x'), 0);
          				if (this.attribute('y').hasValue()) ctx.translate(0, this.attribute('y').toPixels('y'));
          			}
          			
          			var element = this.getHrefAttribute().getDefinition();
          			
          			this.path = function(ctx) {
          				if (element != null) element.path(ctx);
          			}
          			
          			this.getBoundingBox = function() {
          				if (element != null) return element.getBoundingBox();
          			}
          			
          			this.renderChildren = function(ctx) {
          				if (element != null) {
          					var tempSvg = element;
          					if (element.type == 'symbol') {
          						// render me using a temporary svg element in symbol cases (http://www.w3.org/TR/SVG/struct.html#UseElement)
          						tempSvg = new svg.Element.svg();
          						tempSvg.type = 'svg';
          						tempSvg.attributes['viewBox'] = new svg.Property('viewBox', element.attribute('viewBox').value);
          						tempSvg.attributes['preserveAspectRatio'] = new svg.Property('preserveAspectRatio', element.attribute('preserveAspectRatio').value);
          						tempSvg.attributes['overflow'] = new svg.Property('overflow', element.attribute('overflow').value);
          						tempSvg.children = element.children;
          					}
          					if (tempSvg.type == 'svg') {
          						// if symbol or svg, inherit width/height from me
          						if (this.attribute('width').hasValue()) tempSvg.attributes['width'] = new svg.Property('width', this.attribute('width').value);
          						if (this.attribute('height').hasValue()) tempSvg.attributes['height'] = new svg.Property('height', this.attribute('height').value);
          					}
          					var oldParent = tempSvg.parent;
          					tempSvg.parent = null;
          					tempSvg.render(ctx);
          					tempSvg.parent = oldParent;
          				}
          			}
          		}
          		svg.Element.use.prototype = new svg.Element.RenderedElementBase;
          		
          		// mask element
          		svg.Element.mask = function(node) {
          			this.base = svg.Element.ElementBase;
          			this.base(node);
          						
          			this.apply = function(ctx, element) {
          				// render as temp svg	
          				var x = this.attribute('x').toPixels('x');
          				var y = this.attribute('y').toPixels('y');
          				var width = this.attribute('width').toPixels('x');
          				var height = this.attribute('height').toPixels('y');
          				
          				if (width == 0 && height == 0) {
          					var bb = new svg.BoundingBox();
          					for (var i=0; i<this.children.length; i++) {
          						bb.addBoundingBox(this.children[i].getBoundingBox());
          					}
          					var x = Math.floor(bb.x1);
          					var y = Math.floor(bb.y1);
          					var width = Math.floor(bb.width());
          					var	height = Math.floor(bb.height());
          				}
          				
          				// temporarily remove mask to avoid recursion
          				var mask = element.attribute('mask').value;
          				element.attribute('mask').value = '';
          				
          					var cMask = document.createElement('canvas');
          					cMask.width = x + width;
          					cMask.height = y + height;
          					var maskCtx = cMask.getContext('2d');
          					this.renderChildren(maskCtx);
          				
          					var c = document.createElement('canvas');
          					c.width = x + width;
          					c.height = y + height;
          					var tempCtx = c.getContext('2d');
          					element.render(tempCtx);
          					tempCtx.globalCompositeOperation = 'destination-in';
          					tempCtx.fillStyle = maskCtx.createPattern(cMask, 'no-repeat');
          					tempCtx.fillRect(0, 0, x + width, y + height);
          					
          					ctx.fillStyle = tempCtx.createPattern(c, 'no-repeat');
          					ctx.fillRect(0, 0, x + width, y + height);
          					
          				// reassign mask
          				element.attribute('mask').value = mask;	
          			}
          			
          			this.render = function(ctx) {
          				// NO RENDER
          			}
          		}
          		svg.Element.mask.prototype = new svg.Element.ElementBase;
          		
          		// clip element
          		svg.Element.clipPath = function(node) {
          			this.base = svg.Element.ElementBase;
          			this.base(node);
          			
          			this.apply = function(ctx) {
          				for (var i=0; i<this.children.length; i++) {
          					var child = this.children[i];
          					if (typeof(child.path) != 'undefined') {
          						var transform = null;
          						if (child.attribute('transform').hasValue()) { 
          							transform = new svg.Transform(child.attribute('transform').value);
          							transform.apply(ctx);
          						}
          						child.path(ctx);
          						ctx.clip();
          						if (transform) { transform.unapply(ctx); }
          					}
          				}
          			}
          			
          			this.render = function(ctx) {
          				// NO RENDER
          			}
          		}
          		svg.Element.clipPath.prototype = new svg.Element.ElementBase;
          
          		// filters
          		svg.Element.filter = function(node) {
          			this.base = svg.Element.ElementBase;
          			this.base(node);
          						
          			this.apply = function(ctx, element) {
          				// render as temp svg	
          				var bb = element.getBoundingBox();
          				var x = Math.floor(bb.x1);
          				var y = Math.floor(bb.y1);
          				var width = Math.floor(bb.width());
          				var	height = Math.floor(bb.height());
          
          				// temporarily remove filter to avoid recursion
          				var filter = element.style('filter').value;
          				element.style('filter').value = '';
          				
          				var px = 0, py = 0;
          				for (var i=0; i<this.children.length; i++) {
          					var efd = this.children[i].extraFilterDistance || 0;
          					px = Math.max(px, efd);
          					py = Math.max(py, efd);
          				}
          				
          				var c = document.createElement('canvas');
          				c.width = width + 2*px;
          				c.height = height + 2*py;
          				var tempCtx = c.getContext('2d');
          				tempCtx.translate(-x + px, -y + py);
          				element.render(tempCtx);
          			
          				// apply filters
          				for (var i=0; i<this.children.length; i++) {
          					this.children[i].apply(tempCtx, 0, 0, width + 2*px, height + 2*py);
          				}
          				
          				// render on me
          				ctx.drawImage(c, 0, 0, width + 2*px, height + 2*py, x - px, y - py, width + 2*px, height + 2*py);
          				
          				// reassign filter
          				element.style('filter', true).value = filter;	
          			}
          			
          			this.render = function(ctx) {
          				// NO RENDER
          			}		
          		}
          		svg.Element.filter.prototype = new svg.Element.ElementBase;
          		
          		svg.Element.feMorphology = function(node) {
          			this.base = svg.Element.ElementBase;
          			this.base(node);
          			
          			this.apply = function(ctx, x, y, width, height) {
          				// TODO: implement
          			}
          		}
          		svg.Element.feMorphology.prototype = new svg.Element.ElementBase;
          		
          		svg.Element.feComposite = function(node) {
          			this.base = svg.Element.ElementBase;
          			this.base(node);
          			
          			this.apply = function(ctx, x, y, width, height) {
          				// TODO: implement
          			}
          		}
          		svg.Element.feComposite.prototype = new svg.Element.ElementBase;
          		
          		svg.Element.feColorMatrix = function(node) {
          			this.base = svg.Element.ElementBase;
          			this.base(node);
          			
          			var matrix = svg.ToNumberArray(this.attribute('values').value);
          			switch (this.attribute('type').valueOrDefault('matrix')) { // http://www.w3.org/TR/SVG/filters.html#feColorMatrixElement
          				case 'saturate':
          					var s = matrix[0];
          					matrix = [0.213+0.787*s,0.715-0.715*s,0.072-0.072*s,0,0,
          							  0.213-0.213*s,0.715+0.285*s,0.072-0.072*s,0,0,
          							  0.213-0.213*s,0.715-0.715*s,0.072+0.928*s,0,0,
          							  0,0,0,1,0,
          							  0,0,0,0,1];
          					break;
          				case 'hueRotate':
          					var a = matrix[0] * Math.PI / 180.0;
          					var c = function (m1,m2,m3) { return m1 + Math.cos(a)*m2 + Math.sin(a)*m3; };
          					matrix = [c(0.213,0.787,-0.213),c(0.715,-0.715,-0.715),c(0.072,-0.072,0.928),0,0,
          							  c(0.213,-0.213,0.143),c(0.715,0.285,0.140),c(0.072,-0.072,-0.283),0,0,
          							  c(0.213,-0.213,-0.787),c(0.715,-0.715,0.715),c(0.072,0.928,0.072),0,0,
          							  0,0,0,1,0,
          							  0,0,0,0,1];
          					break;
          				case 'luminanceToAlpha':
          					matrix = [0,0,0,0,0,
          							  0,0,0,0,0,
          							  0,0,0,0,0,
          							  0.2125,0.7154,0.0721,0,0,
          							  0,0,0,0,1];
          					break;
          			}
          			
          			function imGet(img, x, y, width, height, rgba) {
          				return img[y*width*4 + x*4 + rgba];
          			}
          			
          			function imSet(img, x, y, width, height, rgba, val) {
          				img[y*width*4 + x*4 + rgba] = val;
          			}
          			
          			function m(i, v) {
          				var mi = matrix[i];
          				return mi * (mi < 0 ? v - 255 : v);
          			}
          						
          			this.apply = function(ctx, x, y, width, height) {
          				// assuming x==0 && y==0 for now
          				var srcData = ctx.getImageData(0, 0, width, height);
          				for (var y = 0; y < height; y++) {
          					for (var x = 0; x < width; x++) {
          						var r = imGet(srcData.data, x, y, width, height, 0);
          						var g = imGet(srcData.data, x, y, width, height, 1);
          						var b = imGet(srcData.data, x, y, width, height, 2);
          						var a = imGet(srcData.data, x, y, width, height, 3);
          						imSet(srcData.data, x, y, width, height, 0, m(0,r)+m(1,g)+m(2,b)+m(3,a)+m(4,1));
          						imSet(srcData.data, x, y, width, height, 1, m(5,r)+m(6,g)+m(7,b)+m(8,a)+m(9,1));
          						imSet(srcData.data, x, y, width, height, 2, m(10,r)+m(11,g)+m(12,b)+m(13,a)+m(14,1));
          						imSet(srcData.data, x, y, width, height, 3, m(15,r)+m(16,g)+m(17,b)+m(18,a)+m(19,1));
          					}
          				}
          				ctx.clearRect(0, 0, width, height);
          				ctx.putImageData(srcData, 0, 0);
          			}
          		}
          		svg.Element.feColorMatrix.prototype = new svg.Element.ElementBase;
          		
          		svg.Element.feGaussianBlur = function(node) {
          			this.base = svg.Element.ElementBase;
          			this.base(node);
          
          			this.blurRadius = Math.floor(this.attribute('stdDeviation').numValue());
          			this.extraFilterDistance = this.blurRadius;
          			
          			this.apply = function(ctx, x, y, width, height) {
          				if (typeof(stackBlurCanvasRGBA) == 'undefined') {
          					svg.log('ERROR: StackBlur.js must be included for blur to work');
          					return;
          				}
          				
          				// StackBlur requires canvas be on document
          				ctx.canvas.id = svg.UniqueId();
          				ctx.canvas.style.display = 'none';
          				document.body.appendChild(ctx.canvas);
          				stackBlurCanvasRGBA(ctx.canvas.id, x, y, width, height, this.blurRadius);
          				document.body.removeChild(ctx.canvas);
          			}
          		}
          		svg.Element.feGaussianBlur.prototype = new svg.Element.ElementBase;
          		
          		// title element, do nothing
          		svg.Element.title = function(node) {
          		}
          		svg.Element.title.prototype = new svg.Element.ElementBase;
          
          		// desc element, do nothing
          		svg.Element.desc = function(node) {
          		}
          		svg.Element.desc.prototype = new svg.Element.ElementBase;		
          		
          		svg.Element.MISSING = function(node) {
          			svg.log('ERROR: Element \'' + node.nodeName + '\' not yet implemented.');
          		}
          		svg.Element.MISSING.prototype = new svg.Element.ElementBase;
          		
          		// element factory
          		svg.CreateElement = function(node) {	
          			var className = node.nodeName.replace(/^[^:]+:/,''); // remove namespace
          			className = className.replace(/\-/g,''); // remove dashes
          			var e = null;
          			if (typeof(svg.Element[className]) != 'undefined') {
          				e = new svg.Element[className](node);
          			}
          			else {
          				e = new svg.Element.MISSING(node);
          			}
          
          			e.type = node.nodeName;
          			return e;
          		}
          				
          		// load from url
          		svg.load = function(ctx, url) {
          			svg.loadXml(ctx, svg.ajax(url));
          		}
          		
          		// load from xml
          		svg.loadXml = function(ctx, xml) {
          			svg.loadXmlDoc(ctx, svg.parseXml(xml));
          		}
          		
          		svg.loadXmlDoc = function(ctx, dom) {
          			svg.init(ctx);
          			
          			var mapXY = function(p) {
          				var e = ctx.canvas;
          				while (e) {
          					p.x -= e.offsetLeft;
          					p.y -= e.offsetTop;
          					e = e.offsetParent;
          				}
          				if (window.scrollX) p.x += window.scrollX;
          				if (window.scrollY) p.y += window.scrollY;
          				return p;
          			}
          			
          			// bind mouse
          			if (svg.opts['ignoreMouse'] != true) {
          				ctx.canvas.onclick = function(e) {
          					var p = mapXY(new svg.Point(e != null ? e.clientX : event.clientX, e != null ? e.clientY : event.clientY));
          					svg.Mouse.onclick(p.x, p.y);
          				};
          				ctx.canvas.onmousemove = function(e) {
          					var p = mapXY(new svg.Point(e != null ? e.clientX : event.clientX, e != null ? e.clientY : event.clientY));
          					svg.Mouse.onmousemove(p.x, p.y);
          				};
          			}
          		
          			var e = svg.CreateElement(dom.documentElement);
          			e.root = true;
          					
          			// render loop
          			var isFirstRender = true;
          			var draw = function() {
          				svg.ViewPort.Clear();
          				if (ctx.canvas.parentNode) svg.ViewPort.SetCurrent(ctx.canvas.parentNode.clientWidth, ctx.canvas.parentNode.clientHeight);
          			
          				if (svg.opts['ignoreDimensions'] != true) {
          					// set canvas size
          					if (e.style('width').hasValue()) {
          						ctx.canvas.width = e.style('width').toPixels('x');
          						ctx.canvas.style.width = ctx.canvas.width + 'px';
          					}
          					if (e.style('height').hasValue()) {
          						ctx.canvas.height = e.style('height').toPixels('y');
          						ctx.canvas.style.height = ctx.canvas.height + 'px';
          					}
          				}
          				var cWidth = ctx.canvas.clientWidth || ctx.canvas.width;
          				var cHeight = ctx.canvas.clientHeight || ctx.canvas.height;
          				if (svg.opts['ignoreDimensions'] == true && e.style('width').hasValue() && e.style('height').hasValue()) {
          					cWidth = e.style('width').toPixels('x');
          					cHeight = e.style('height').toPixels('y');
          				}
          				svg.ViewPort.SetCurrent(cWidth, cHeight);		
          				
          				if (svg.opts['offsetX'] != null) e.attribute('x', true).value = svg.opts['offsetX'];
          				if (svg.opts['offsetY'] != null) e.attribute('y', true).value = svg.opts['offsetY'];
          				if (svg.opts['scaleWidth'] != null || svg.opts['scaleHeight'] != null) {
          					var xRatio = null, yRatio = null, viewBox = svg.ToNumberArray(e.attribute('viewBox').value);
          					
          					if (svg.opts['scaleWidth'] != null) {
          						if (e.attribute('width').hasValue()) xRatio = e.attribute('width').toPixels('x') / svg.opts['scaleWidth'];
          						else if (!isNaN(viewBox[2])) xRatio = viewBox[2] / svg.opts['scaleWidth'];
          					}
          					
          					if (svg.opts['scaleHeight'] != null) {
          						if (e.attribute('height').hasValue()) yRatio = e.attribute('height').toPixels('y') / svg.opts['scaleHeight'];
          						else if (!isNaN(viewBox[3])) yRatio = viewBox[3] / svg.opts['scaleHeight'];
          					}
          
          					if (xRatio == null) { xRatio = yRatio; }
          					if (yRatio == null) { yRatio = xRatio; }
          					
          					e.attribute('width', true).value = svg.opts['scaleWidth'];
          					e.attribute('height', true).value = svg.opts['scaleHeight'];			
          					e.attribute('viewBox', true).value = '0 0 ' + (cWidth * xRatio) + ' ' + (cHeight * yRatio);
          					e.attribute('preserveAspectRatio', true).value = 'none';
          				}
          			
          				// clear and render
          				if (svg.opts['ignoreClear'] != true) {
          					ctx.clearRect(0, 0, cWidth, cHeight);
          				}
          				e.render(ctx);
          				if (isFirstRender) {
          					isFirstRender = false;
          					if (typeof(svg.opts['renderCallback']) == 'function') svg.opts['renderCallback'](dom);
          				}			
          			}
          			
          			var waitingForImages = true;
          			if (svg.ImagesLoaded()) {
          				waitingForImages = false;
          				draw();
          			}
          			svg.intervalID = setInterval(function() { 
          				var needUpdate = false;
          				
          				if (waitingForImages && svg.ImagesLoaded()) {
          					waitingForImages = false;
          					needUpdate = true;
          				}
          			
          				// need update from mouse events?
          				if (svg.opts['ignoreMouse'] != true) {
          					needUpdate = needUpdate | svg.Mouse.hasEvents();
          				}
          			
          				// need update from animations?
          				if (svg.opts['ignoreAnimation'] != true) {
          					for (var i=0; i<svg.Animations.length; i++) {
          						needUpdate = needUpdate | svg.Animations[i].update(1000 / svg.FRAMERATE);
          					}
          				}
          				
          				// need update from redraw?
          				if (typeof(svg.opts['forceRedraw']) == 'function') {
          					if (svg.opts['forceRedraw']() == true) needUpdate = true;
          				}
          				
          				// render if needed
          				if (needUpdate) {
          					draw();				
          					svg.Mouse.runEvents(); // run and clear our events
          				}
          			}, 1000 / svg.FRAMERATE);
          		}
          		
          		svg.stop = function() {
          			if (svg.intervalID) {
          				clearInterval(svg.intervalID);
          			}
          		}
          		
          		svg.Mouse = new (function() {
          			this.events = [];
          			this.hasEvents = function() { return this.events.length != 0; }
          		
          			this.onclick = function(x, y) {
          				this.events.push({ type: 'onclick', x: x, y: y, 
          					run: function(e) { if (e.onclick) e.onclick(); }
          				});
          			}
          			
          			this.onmousemove = function(x, y) {
          				this.events.push({ type: 'onmousemove', x: x, y: y,
          					run: function(e) { if (e.onmousemove) e.onmousemove(); }
          				});
          			}			
          			
          			this.eventElements = [];
          			
          			this.checkPath = function(element, ctx) {
          				for (var i=0; i<this.events.length; i++) {
          					var e = this.events[i];
          					if (ctx.isPointInPath && ctx.isPointInPath(e.x, e.y)) this.eventElements[i] = element;
          				}
          			}
          			
          			this.checkBoundingBox = function(element, bb) {
          				for (var i=0; i<this.events.length; i++) {
          					var e = this.events[i];
          					if (bb.isPointInBox(e.x, e.y)) this.eventElements[i] = element;
          				}			
          			}
          			
          			this.runEvents = function() {
          				svg.ctx.canvas.style.cursor = '';
          				
          				for (var i=0; i<this.events.length; i++) {
          					var e = this.events[i];
          					var element = this.eventElements[i];
          					while (element) {
          						e.run(element);
          						element = element.parent;
          					}
          				}		
          			
          				// done running, clear
          				this.events = []; 
          				this.eventElements = [];
          			}
          		});
          		
          		return svg;
          	}
          })();
          
          if (typeof(CanvasRenderingContext2D) != 'undefined') {
          	CanvasRenderingContext2D.prototype.drawSvg = function(s, dx, dy, dw, dh) {
          		canvg(this.canvas, s, { 
          			ignoreMouse: true, 
          			ignoreAnimation: true, 
          			ignoreDimensions: true, 
          			ignoreClear: true, 
          			offsetX: dx, 
          			offsetY: dy, 
          			scaleWidth: dw, 
          			scaleHeight: dh
          		});
          	}
          }
        • rgbcolor.js
          /*jslint vars: true*/
          /**
           * A class to parse color values
           * @author Stoyan Stefanov <sstoo@gmail.com>
           * @link   http://www.phpied.com/rgb-color-parser-in-javascript/
           * @license Use it if you like it
           */
          function RGBColor(color_string) { 'use strict';
              this.ok = false;
          
              // strip any leading #
              if (color_string.charAt(0) === '#') { // remove # if any
                  color_string = color_string.substr(1,6);
              }
          
              color_string = color_string.replace(/ /g,'');
              color_string = color_string.toLowerCase();
          
              // before getting into regexps, try simple matches
              // and overwrite the input
              var simple_colors = {
                  aliceblue: 'f0f8ff',
                  antiquewhite: 'faebd7',
                  aqua: '00ffff',
                  aquamarine: '7fffd4',
                  azure: 'f0ffff',
                  beige: 'f5f5dc',
                  bisque: 'ffe4c4',
                  black: '000000',
                  blanchedalmond: 'ffebcd',
                  blue: '0000ff',
                  blueviolet: '8a2be2',
                  brown: 'a52a2a',
                  burlywood: 'deb887',
                  cadetblue: '5f9ea0',
                  chartreuse: '7fff00',
                  chocolate: 'd2691e',
                  coral: 'ff7f50',
                  cornflowerblue: '6495ed',
                  cornsilk: 'fff8dc',
                  crimson: 'dc143c',
                  cyan: '00ffff',
                  darkblue: '00008b',
                  darkcyan: '008b8b',
                  darkgoldenrod: 'b8860b',
                  darkgray: 'a9a9a9',
                  darkgreen: '006400',
                  darkkhaki: 'bdb76b',
                  darkmagenta: '8b008b',
                  darkolivegreen: '556b2f',
                  darkorange: 'ff8c00',
                  darkorchid: '9932cc',
                  darkred: '8b0000',
                  darksalmon: 'e9967a',
                  darkseagreen: '8fbc8f',
                  darkslateblue: '483d8b',
                  darkslategray: '2f4f4f',
                  darkturquoise: '00ced1',
                  darkviolet: '9400d3',
                  deeppink: 'ff1493',
                  deepskyblue: '00bfff',
                  dimgray: '696969',
                  dodgerblue: '1e90ff',
                  feldspar: 'd19275',
                  firebrick: 'b22222',
                  floralwhite: 'fffaf0',
                  forestgreen: '228b22',
                  fuchsia: 'ff00ff',
                  gainsboro: 'dcdcdc',
                  ghostwhite: 'f8f8ff',
                  gold: 'ffd700',
                  goldenrod: 'daa520',
                  gray: '808080',
                  green: '008000',
                  greenyellow: 'adff2f',
                  honeydew: 'f0fff0',
                  hotpink: 'ff69b4',
                  indianred : 'cd5c5c',
                  indigo : '4b0082',
                  ivory: 'fffff0',
                  khaki: 'f0e68c',
                  lavender: 'e6e6fa',
                  lavenderblush: 'fff0f5',
                  lawngreen: '7cfc00',
                  lemonchiffon: 'fffacd',
                  lightblue: 'add8e6',
                  lightcoral: 'f08080',
                  lightcyan: 'e0ffff',
                  lightgoldenrodyellow: 'fafad2',
                  lightgrey: 'd3d3d3',
                  lightgreen: '90ee90',
                  lightpink: 'ffb6c1',
                  lightsalmon: 'ffa07a',
                  lightseagreen: '20b2aa',
                  lightskyblue: '87cefa',
                  lightslateblue: '8470ff',
                  lightslategray: '778899',
                  lightsteelblue: 'b0c4de',
                  lightyellow: 'ffffe0',
                  lime: '00ff00',
                  limegreen: '32cd32',
                  linen: 'faf0e6',
                  magenta: 'ff00ff',
                  maroon: '800000',
                  mediumaquamarine: '66cdaa',
                  mediumblue: '0000cd',
                  mediumorchid: 'ba55d3',
                  mediumpurple: '9370d8',
                  mediumseagreen: '3cb371',
                  mediumslateblue: '7b68ee',
                  mediumspringgreen: '00fa9a',
                  mediumturquoise: '48d1cc',
                  mediumvioletred: 'c71585',
                  midnightblue: '191970',
                  mintcream: 'f5fffa',
                  mistyrose: 'ffe4e1',
                  moccasin: 'ffe4b5',
                  navajowhite: 'ffdead',
                  navy: '000080',
                  oldlace: 'fdf5e6',
                  olive: '808000',
                  olivedrab: '6b8e23',
                  orange: 'ffa500',
                  orangered: 'ff4500',
                  orchid: 'da70d6',
                  palegoldenrod: 'eee8aa',
                  palegreen: '98fb98',
                  paleturquoise: 'afeeee',
                  palevioletred: 'd87093',
                  papayawhip: 'ffefd5',
                  peachpuff: 'ffdab9',
                  peru: 'cd853f',
                  pink: 'ffc0cb',
                  plum: 'dda0dd',
                  powderblue: 'b0e0e6',
                  purple: '800080',
                  red: 'ff0000',
                  rosybrown: 'bc8f8f',
                  royalblue: '4169e1',
                  saddlebrown: '8b4513',
                  salmon: 'fa8072',
                  sandybrown: 'f4a460',
                  seagreen: '2e8b57',
                  seashell: 'fff5ee',
                  sienna: 'a0522d',
                  silver: 'c0c0c0',
                  skyblue: '87ceeb',
                  slateblue: '6a5acd',
                  slategray: '708090',
                  snow: 'fffafa',
                  springgreen: '00ff7f',
                  steelblue: '4682b4',
                  tan: 'd2b48c',
                  teal: '008080',
                  thistle: 'd8bfd8',
                  tomato: 'ff6347',
                  turquoise: '40e0d0',
                  violet: 'ee82ee',
                  violetred: 'd02090',
                  wheat: 'f5deb3',
                  white: 'ffffff',
                  whitesmoke: 'f5f5f5',
                  yellow: 'ffff00',
                  yellowgreen: '9acd32'
              };
              var key;
              for (key in simple_colors) {
                  if (simple_colors.hasOwnProperty(key)) {
                      if (color_string == key) {
                          color_string = simple_colors[key];
                      }
                  }
              }
              // emd of simple type-in colors
          
              // array of color definition objects
              var color_defs = [
                  {
                      re: /^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,
                      example: ['rgb(123, 234, 45)', 'rgb(255,234,245)'],
                      process: function (bits){
                          return [
                              parseInt(bits[1], 10),
                              parseInt(bits[2], 10),
                              parseInt(bits[3], 10)
                          ];
                      }
                  },
                  {
                      re: /^(\w{2})(\w{2})(\w{2})$/,
                      example: ['#00ff00', '336699'],
                      process: function (bits){
                          return [
                              parseInt(bits[1], 16),
                              parseInt(bits[2], 16),
                              parseInt(bits[3], 16)
                          ];
                      }
                  },
                  {
                      re: /^(\w{1})(\w{1})(\w{1})$/,
                      example: ['#fb0', 'f0f'],
                      process: function (bits){
                          return [
                              parseInt(bits[1] + bits[1], 16),
                              parseInt(bits[2] + bits[2], 16),
                              parseInt(bits[3] + bits[3], 16)
                          ];
                      }
                  }
              ];
          
              var i;
              // search through the definitions to find a match
              for (i = 0; i < color_defs.length; i++) {
                  var re = color_defs[i].re;
                  var processor = color_defs[i].process;
                  var bits = re.exec(color_string);
                  if (bits) {
                      var channels = processor(bits);
                      this.r = channels[0];
                      this.g = channels[1];
                      this.b = channels[2];
                      this.ok = true;
                  }
          
              }
          
              // validate/cleanup values
              this.r = (this.r < 0 || isNaN(this.r)) ? 0 : ((this.r > 255) ? 255 : this.r);
              this.g = (this.g < 0 || isNaN(this.g)) ? 0 : ((this.g > 255) ? 255 : this.g);
              this.b = (this.b < 0 || isNaN(this.b)) ? 0 : ((this.b > 255) ? 255 : this.b);
          
              // some getters
              this.toRGB = function () {
                  return 'rgb(' + this.r + ', ' + this.g + ', ' + this.b + ')';
              };
              this.toHex = function () {
                  var r = this.r.toString(16);
                  var g = this.g.toString(16);
                  var b = this.b.toString(16);
                  if (r.length === 1) {r = '0' + r;}
                  if (g.length === 1) {g = '0' + g;}
                  if (b.length === 1) {b = '0' + b;}
                  return '#' + r + g + b;
              };
          
              // help
              this.getHelpXML = function () {
                  var i, j;
                  var examples = [];
                  // add regexps
                  for (i = 0; i < color_defs.length; i++) {
                      var example = color_defs[i].example;
                      for (j = 0; j < example.length; j++) {
                          examples[examples.length] = example[j];
                      }
                  }
                  // add type-in colors
                  var sc;
                  for (sc in simple_colors) {
                      if (simple_colors.hasOwnProperty(sc)) {
                          examples[examples.length] = sc;
                      }
                  }
          
                  var xml = document.createElement('ul');
                  xml.setAttribute('id', 'rgbcolor-examples');
                  for (i = 0; i < examples.length; i++) {
                      try {
                          var list_item = document.createElement('li');
                          var list_color = new RGBColor(examples[i]);
                          var example_div = document.createElement('div');
                          example_div.style.cssText =
                                  'margin: 3px; '
                                  + 'border: 1px solid black; '
                                  + 'background:' + list_color.toHex() + '; '
                                  + 'color:' + list_color.toHex()
                          ;
                          example_div.appendChild(document.createTextNode('test'));
                          var list_item_value = document.createTextNode(
                              ' ' + examples[i] + ' -> ' + list_color.toRGB() + ' -> ' + list_color.toHex()
                          );
                          list_item.appendChild(example_div);
                          list_item.appendChild(list_item_value);
                          xml.appendChild(list_item);
          
                      } catch(e){}
                  }
                  return xml;
          
              };
          
          }
          
      • contextmenu
        • jquery.contextMenu.js
          // jQuery Context Menu Plugin
          //
          // Version 1.01
          //
          // Cory S.N. LaViska
          // A Beautiful Site (http://abeautifulsite.net/)
          // Modified by Alexis Deveria
          //
          // More info: http://abeautifulsite.net/2008/09/jquery-context-menu-plugin/
          //
          // Terms of Use
          //
          // This plugin is dual-licensed under the GNU General Public License
          //   and the MIT License and is copyright A Beautiful Site, LLC.
          //
          if(jQuery)( function() {
          	var win = $(window);
          	var doc = $(document);
          
          	$.extend($.fn, {
          		
          		contextMenu: function(o, callback) {
          			// Defaults
          			if( o.menu == undefined ) return false;
          			if( o.inSpeed == undefined ) o.inSpeed = 150;
          			if( o.outSpeed == undefined ) o.outSpeed = 75;
          			// 0 needs to be -1 for expected results (no fade)
          			if( o.inSpeed == 0 ) o.inSpeed = -1;
          			if( o.outSpeed == 0 ) o.outSpeed = -1;
          			// Loop each context menu
          			$(this).each( function() {
          				var el = $(this);
          				var offset = $(el).offset();
          			
          				var menu = $('#' + o.menu);
          
          				// Add contextMenu class
          				menu.addClass('contextMenu');
          				// Simulate a true right click
          				$(this).bind( "mousedown", function(e) {
          					var evt = e;
          					$(this).mouseup( function(e) {
          						var srcElement = $(this);
          						srcElement.unbind('mouseup');
          						if( evt.button === 2 || o.allowLeft || (evt.ctrlKey && svgedit.browser.isMac()) ) {
          							e.stopPropagation();
          							// Hide context menus that may be showing
          							$(".contextMenu").hide();
          							// Get this context menu
          						
          							if( el.hasClass('disabled') ) return false;
          							
          							// Detect mouse position
          							var d = {}, x = e.pageX, y = e.pageY;
          							
          							var x_off = win.width() - menu.width(), 
          								y_off = win.height() - menu.height();
          
          							if(x > x_off - 15) x = x_off-15;
          							if(y > y_off - 30) y = y_off-30; // 30 is needed to prevent scrollbars in FF
          							
          							// Show the menu
          							doc.unbind('click');
          							menu.css({ top: y, left: x }).fadeIn(o.inSpeed);
          							// Hover events
          							menu.find('A').mouseover( function() {
          								menu.find('LI.hover').removeClass('hover');
          								$(this).parent().addClass('hover');
          							}).mouseout( function() {
          								menu.find('LI.hover').removeClass('hover');
          							});
          							
          							// Keyboard
          							doc.keypress( function(e) {
          								switch( e.keyCode ) {
          									case 38: // up
          										if( !menu.find('LI.hover').length ) {
          											menu.find('LI:last').addClass('hover');
          										} else {
          											menu.find('LI.hover').removeClass('hover').prevAll('LI:not(.disabled)').eq(0).addClass('hover');
          											if( !menu.find('LI.hover').length ) menu.find('LI:last').addClass('hover');
          										}
          									break;
          									case 40: // down
          										if( menu.find('LI.hover').length == 0 ) {
          											menu.find('LI:first').addClass('hover');
          										} else {
          											menu.find('LI.hover').removeClass('hover').nextAll('LI:not(.disabled)').eq(0).addClass('hover');
          											if( !menu.find('LI.hover').length ) menu.find('LI:first').addClass('hover');
          										}
          									break;
          									case 13: // enter
          										menu.find('LI.hover A').trigger('click');
          									break;
          									case 27: // esc
          										doc.trigger('click');
          									break
          								}
          							});
          							
          							// When items are selected
          							menu.find('A').unbind('mouseup');
          							menu.find('LI:not(.disabled) A').mouseup( function() {
          								doc.unbind('click').unbind('keypress');
          								$(".contextMenu").hide();
          								// Callback
          								if( callback ) callback( $(this).attr('href').substr(1), $(srcElement), {x: x - offset.left, y: y - offset.top, docX: x, docY: y} );
          								return false;
          							});
          							
          							// Hide bindings
          							setTimeout( function() { // Delay for Mozilla
          								doc.click( function() {
          									doc.unbind('click').unbind('keypress');
          									menu.fadeOut(o.outSpeed);
          									return false;
          								});
          							}, 0);
          						}
          					});
          				});
          				
          				// Disable text selection
          				if( $.browser.mozilla ) {
          					$('#' + o.menu).each( function() { $(this).css({ 'MozUserSelect' : 'none' }); });
          				} else if( $.browser.msie ) {
          					$('#' + o.menu).each( function() { $(this).bind('selectstart.disableTextSelect', function() { return false; }); });
          				} else {
          					$('#' + o.menu).each(function() { $(this).bind('mousedown.disableTextSelect', function() { return false; }); });
          				}
          				// Disable browser context menu (requires both selectors to work in IE/Safari + FF/Chrome)
          				$(el).add($('UL.contextMenu')).bind('contextmenu', function() { return false; });
          				
          			});
          			return $(this);
          		},
          		
          		// Disable context menu items on the fly
          		disableContextMenuItems: function(o) {
          			if( o == undefined ) {
          				// Disable all
          				$(this).find('LI').addClass('disabled');
          				return( $(this) );
          			}
          			$(this).each( function() {
          				if( o != undefined ) {
          					var d = o.split(',');
          					for( var i = 0; i < d.length; i++ ) {
          						$(this).find('A[href="' + d[i] + '"]').parent().addClass('disabled');
          						
          					}
          				}
          			});
          			return( $(this) );
          		},
          		
          		// Enable context menu items on the fly
          		enableContextMenuItems: function(o) {
          			if( o == undefined ) {
          				// Enable all
          				$(this).find('LI.disabled').removeClass('disabled');
          				return( $(this) );
          			}
          			$(this).each( function() {
          				if( o != undefined ) {
          					var d = o.split(',');
          					for( var i = 0; i < d.length; i++ ) {
          						$(this).find('A[href="' + d[i] + '"]').parent().removeClass('disabled');
          						
          					}
          				}
          			});
          			return( $(this) );
          		},
          		
          		// Disable context menu(s)
          		disableContextMenu: function() {
          			$(this).each( function() {
          				$(this).addClass('disabled');
          			});
          			return( $(this) );
          		},
          		
          		// Enable context menu(s)
          		enableContextMenu: function() {
          			$(this).each( function() {
          				$(this).removeClass('disabled');
          			});
          			return( $(this) );
          		},
          		
          		// Destroy context menu(s)
          		destroyContextMenu: function() {
          			// Destroy specified context menus
          			$(this).each( function() {
          				// Disable action
          				$(this).unbind('mousedown').unbind('mouseup');
          			});
          			return( $(this) );
          		}
          		
          	});
          })(jQuery);
      • extensions
        • imagelib
          • index.html
            <!DOCTYPE html>
            <html xmlns="http://www.w3.org/1999/xhtml">
            <head>
            <meta charset="utf-8" />
            <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
            </head>
            <body>
            
            <h1>Select an image:</h1>
            <a href="smiley.svg">smiley.svg</a>
            <br>
            <a href="../../images/logo.png">logo.png</a>
            
            <script>
            /*globals $*/
            /*jslint vars: true*/
            $('a').click(function() {'use strict';
            	var meta_str;
            	var href = this.href;
            	var target = window.parent;
            	// Convert Non-SVG images to data URL first 
            	// (this could also have been done server-side by the library)
            	if (this.href.indexOf('.svg') === -1) {
            
            		meta_str = JSON.stringify({
            			name: $(this).text(),
            			id: href
            		});
            		target.postMessage(meta_str, '*');
            
            		var img = new Image();
            		img.onload = function() {
            			var canvas = document.createElement('canvas');
            			canvas.width = this.width;
            			canvas.height = this.height;
            			// load the raster image into the canvas
            			canvas.getContext('2d').drawImage(this, 0, 0);
            			// retrieve the data: URL
            			var dataurl;
            			try {
            				dataurl = canvas.toDataURL();
            			} catch(err) {
            				// This fails in Firefox with file:// URLs :(
            				alert("Data URL conversion failed: " + err);
            				dataurl = "";
            			}
            			target.postMessage('|' + href + '|' + dataurl, '*');
            		};
            		img.src = href;
            	} else {
            		// Send metadata (also indicates file is about to be sent)
            		meta_str = JSON.stringify({
            			name: $(this).text(),
            			id: href
            		});
            		target.postMessage(meta_str, '*');
            		// Do ajax request for image's href value
            		$.get(href, function(data) {
            			data = '|' + href + '|' + data;
            			// This is where the magic happens!
            			target.postMessage(data, '*');
            			
            		}, 'html'); // 'html' is necessary to keep returned data as a string
            	}
            	return false;
            });
            
            </script>
            </body>
            </html>
            
          • smiley.svg
            <svg width="137" height="137" xmlns="http://www.w3.org/2000/svg">
             <title>Cool smiley</title>
              <path fill="url(#svg_4)" stroke="#000000" stroke-width="3" d="m32.18682,97.71674q36.3159,24.94076 72.54585,0m-64.67542,-49.25576c0,-3.8554 3.12526,-6.98079 6.98068,-6.98079c3.85449,0 6.97872,3.12539 6.97872,6.98079c0,3.85346 -3.12423,6.97867 -6.97872,6.97867c-3.85542,0 -6.98068,-3.12521 -6.98068,-6.97867m42.93047,0c0,-3.8554 3.12529,-6.98079 6.97963,-6.98079c3.8544,0 6.97971,3.12539 6.97971,6.98079c0,3.85346 -3.12531,6.97867 -6.97971,6.97867c-3.85434,0 -6.97963,-3.12521 -6.97963,-6.97867m-81.48596,20.036l0,0c0,-37.00197 29.99679,-66.99892 67.00095,-66.99892c37.00303,0 66.99998,29.99695 66.99998,66.99892c0,37.00409 -29.99695,67.00101 -66.99998,67.00101c-37.00416,0 -67.00095,-29.99692 -67.00095,-67.00101zm0,0l0,0c0,-37.00197 29.99679,-66.99892 67.00095,-66.99892c37.00303,0 66.99998,29.99695 66.99998,66.99892c0,37.00409 -29.99695,67.00101 -66.99998,67.00101c-37.00416,0 -67.00095,-29.99692 -67.00095,-67.00101z" id="svg_1"/>
              <path id="svg_5" d="m23.84005,41.03445l17.57052,0l5.42937,-19.67914l5.42941,19.67914l17.5706,0l-14.21488,12.16242l5.42982,19.67939l-14.21495,-12.16281l-14.21489,12.16281l5.42991,-19.67939l-14.21491,-12.16242l0,0z" stroke-width="3" fill="#000000"/>
              <path id="svg_6" d="m65.84005,41.03445l17.57052,0l5.42937,-19.67914l5.42941,19.67914l17.5706,0l-14.21487,12.16242l5.42982,19.67939l-14.21496,-12.1628l-14.2149,12.1628l5.42992,-19.67939l-14.21491,-12.16242l0,0z" stroke-width="3" fill="#000000"/>
             <defs>
              <linearGradient y2="0.25391" x2="0.46484" y1="0.94922" x1="0.44531" id="svg_4">
               <stop stop-color="#ff0000" offset="0"/>
               <stop stop-color="#ffff00" offset="1"/>
              </linearGradient>
             </defs>
            </svg>
        • shapelib
          • animal.json
            {"data": {
            	"bat": "m143.40468,206.20782c-0.49527,-8.51843 -1.60919,-23.17813 -13.91826,-16.10698c-5.69614,2.11977 -22.79842,7.51244 -14.5293,-3.62979c-4.53243,-11.10219 -22.97476,5.42294 -24.24419,-2.29205c9.91943,-10.64906 -4.7813,-22.35199 -15.17139,-14.80321c-6.39341,1.76166 -19.4276,12.91188 -21.9789,9.37552c5.93793,-7.52516 19.31312,-22.93167 3.18112,-27.55084c-17.5302,-3.97589 -32.93319,8.09392 -48.1771,14.68205c-4.57452,3.57106 -10.39707,2.94862 -4.70683,-2.99597c19.7419,-30.64111 50.72646,-53.70857 85.10566,-65.43076c8.33369,-2.70812 21.16511,-8.70424 21.41656,4.97536c5.15313,12.59007 8.81947,28.33097 22.08977,34.80917c15.28362,8.49702 4.32793,-24.52711 20.16156,-12.05241c6.66379,4.32207 20.92268,-3.91697 22.87737,0.71265c-3.88257,5.55579 -5.70456,15.41883 4.55382,10.3489c17.81406,-7.0078 30.89859,-22.70471 39.67026,-39.22318c9.16278,-1.3768 18.27335,5.56162 26.62798,9.24753c27.74529,15.70954 44.86571,45.39448 52.13728,75.65768c-7.5513,-4.24557 -14.87186,-12.828 -24.02185,-16.20273c-9.75534,-4.87419 -20.75789,-5.73363 -31.48114,-5.39867c-5.02554,5.98985 -7.99353,13.42558 -3.62529,20.86708c3.80284,14.25407 -12.13176,-4.90576 -17.88498,-6.20744c-10.74191,-7.67955 -21.03323,3.92213 -18.67635,14.82222c-2.42909,2.10051 -9.92085,-3.5218 -14.32263,-2.86926c-9.05026,-2.72606 -15.42468,1.20085 -9.97261,10.61331c-7.98315,-0.97417 -19.64474,-13.28291 -26.70493,-1.69363c-3.0779,2.89514 -4.66377,8.66307 -8.40561,10.34547z",
            	"bull": "m247.95622,28.12305c-12.19972,2.23394 -21.61887,16.95667 -20.74588,29.01591c1.44209,13.7284 17.93463,5.12075 22.80087,1.23941c-2.90906,11.49207 -26.14024,13.85409 -24.83565,-0.12387c-17.69467,13.05878 -30.95056,33.52913 -52.86781,40.14553c-19.77757,4.59067 -40.50726,3.0742 -60.45068,0.39017c-12.12445,-1.13604 -23.69794,-7.26224 -35.91985,-5.97962c-13.09134,3.59118 -23.59412,13.16467 -36.65408,16.93906c-13.77014,6.03062 -8.51065,22.6805 -9.70401,34.47604c0.36829,17.55977 -2.85913,36.16287 -15.09811,49.55722c-7.11563,10.54993 -7.76443,24.43282 -13.48046,35.44298c18.99679,-0.19772 7.54522,-25.59486 17.99728,-35.91756c14.58305,-6.75189 14.16003,-25.2986 16.19452,-38.95529c1.4834,-5.51941 0.74519,-25.08188 6.61763,-22.44334c7.21924,16.22275 11.33028,34.35388 9.69645,52.12326c-9.5553,8.96404 -24.74576,15.34862 -22.54872,31.87126c0.72458,14.96526 -8.38036,25.74033 -15.4907,37.48604c4.56749,6.89259 1.00608,20.69472 14.11573,16.65324c8.77115,1.68887 13.10825,-2.37698 4.45589,-8.42346c-13.07829,-12.56499 5.13552,-29.16821 12.20585,-40.168c7.30689,-12.28131 22.16195,-12.86801 33.02653,-20.13979c15.00671,-8.95824 25.97935,-22.79263 35.92999,-36.78595c8.71432,9.26259 -13.75776,17.74474 -17.07076,27.20334c-7.22755,7.75058 -20.15694,21.85651 -2.99889,26.65347c13.26358,4.53796 25.75887,13.79143 25.35975,28.30255c0.22051,9.84615 24.38135,18.76527 19.43611,2.77341c-8.3609,-14.92882 -28.34064,-20.79163 -33.65835,-37.70844c-3.6715,-12.98383 11.61318,-19.27325 18.93525,-8.74269c12.96419,-1.41862 26.57983,-10.04028 40.80356,-11.3647c14.66299,-5.4577 18.06927,14.52957 29.8145,19.76668c9.79047,9.67969 18.77974,21.93582 17.54285,36.4783c1.1926,12.30893 9.52699,25.16873 23.92239,23.90201c16.80026,-2.80963 -5.10118,-20.70317 -12.79568,-24.81631c-11.14896,-13.29695 -9.30676,-32.20113 -16.24597,-47.51259c-5.00217,-4.52083 0.22685,-26.45532 0.40694,-10.76334c-0.90044,17.98242 24.73294,7.66248 22.97939,-6.09152c4.36166,-10.95654 -11.58513,-4.19417 -9.47617,-15.24252c-1.73091,-13.74937 -0.74355,-30.75096 -12.6731,-40.17292c-6.8737,-6.7591 -4.7831,-7.41829 2.70201,-2.07212c14.59439,7.55807 11.75914,24.79303 12.78276,38.37691c4.22589,17.80225 21.30753,-5.24332 20.80711,-14.89757c2.92691,-20.96336 12.92174,-42.46973 32.42046,-52.68139c-5.2402,-2.56694 -30.94765,6.73531 -28.79092,-4.9679c10.59921,9.00244 25.18661,-0.80075 37.71524,1.85265c16.62164,0.68233 20.74963,-22.79317 2.53195,-23.94116c-11.78333,-6.98062 -21.92947,-19.31897 -37.15829,-18.35906c-22.07759,7.39931 -8.43927,-13.11165 -2.53694,-22.37832zm21.60802,9.50184c-1.66193,5.79599 -12.61478,17.62506 0.56973,12.83867c1.89221,-3.91013 1.1131,-8.97168 -0.56973,-12.83867zm-3.4996,26.34877c5.90985,9.81916 -11.80539,1.02993 0,0zm24.39551,10.15293c-2.05029,4.18517 5.51468,4.9676 -0.32553,4.96455c-3.08926,4.10121 -4.4324,-5.29953 0.32553,-4.96455z",
            	"camel": "m105.23692,274.01276c10.42601,-6.85904 -13.23158,-12.66162 -16.74452,-19.13904c-10.34003,-12.71768 -13.56136,-29.62202 -16.44211,-45.3219c4.95107,-8.43617 2.94567,-17.1517 4.73958,-25.91959c8.77055,-13.01825 13.62244,-28.29056 22.43666,-41.26205c9.81532,2.07159 20.42883,10.03517 30.26162,13.06094c8.8764,15.9576 -7.35719,29.2457 -5.44854,44.69498c3.72314,14.40366 -6.25101,26.40735 -8.25558,39.83173c0.06986,12.69931 11.61848,25.55493 24.23922,16.82416c-0.64038,-9.26088 -18.64324,-12.13185 -10.58395,-25.1562c2.65187,-13.46596 11.34413,-24.24693 17.91676,-35.55937c-3.71349,-13.26427 1.2287,-30.0778 9.59569,-40.02118c8.49532,8.2068 14.36288,22.63718 15.66277,34.12883c0.16464,13.17332 17.70532,21.98904 17.37173,37.50392c1.31061,13.71669 7.73416,26.77841 16.64259,34.21387c4.65822,9.68192 33.56361,4.63116 18.16859,-6.87111c-12.71291,-11.47281 -27.33986,-23.63953 -29.27029,-41.92267c-5.27388,-10.85303 6.84843,-26.2316 -8.03899,-30.76501c0.92262,-14.70679 -2.97293,-31.40077 5.40811,-44.51862c12.07202,-10.31686 29.7518,-11.08165 41.29709,-22.49498c14.0099,-9.28757 21.96306,-24.50421 26.44456,-40.2729c6.78918,-7.60537 17.33322,-24.04447 29.06323,-15.49826c11.50851,7.1165 3.01477,-10.78561 9.62354,-14.73589c-5.45358,-19.67866 -27.58679,-10.231 -41.40082,-15.14074c-12.54193,-8.39989 -25.52765,-3.55679 -34.67496,6.0378c-6.85069,3.08698 -3.14447,11.16754 3.57637,8.12783c-4.82072,16.0155 -11.46542,33.6401 -26.07742,43.1243c-16.7653,7.33572 -26.11705,-14.39821 -36.07204,-23.83146c-10.86565,-10.63506 -17.60231,-26.15123 -31.2878,-33.45204c-19.0355,-4.82 -33.49794,11.89507 -47.87449,21.30644c-14.26775,7.14342 -31.39994,10.67369 -41.13367,24.60683c-16.15372,19.41527 -5.91326,48.70807 -22.89915,67.80049c-6.99636,10.58755 -22.39972,18.21231 -20.28306,32.7636c7.50211,15.58318 0.92728,34.18239 5.02367,50.94881c3.02735,12.11708 7.50982,27.68176 22.18437,29.48123c11.54434,7.31882 17.83198,-8.01192 5.60827,-12.45197c-14.75563,-6.55614 -16.77197,-25.01053 -17.95741,-39.18628c-3.25454,-14.0275 7.86033,-23.30806 12.45064,-34.31837c-3.87635,-10.75487 9.79252,-25.37375 18.46243,-23.19664c-6.47958,9.9541 -15.94005,22.87103 -0.60315,31.06966c-0.20134,0.50305 2.25023,-9.18846 6.19941,-12.10042c-0.58951,-7.59273 -8.29086,-14.05685 -0.12206,-21.73929c14.33151,-9.55606 11.17263,18.16365 8.19696,26.02383c-0.15744,12.07039 -16.33567,21.65707 -8.0749,33.75336c9.04985,14.91904 13.29631,32.04613 16.76897,48.94904c4.98299,14.02148 17.57185,24.27618 33.31381,20.65268l2.58825,-0.02829z",
            	"cat": "m111.55353,268.57376c-12.38409,-9.66019 -26.54234,-3.66064 -40.17431,-4.38614c-11.9392,-10.23105 -26.45395,2.16507 -37.70551,-7.68756c-14.55057,-12.97847 10.67308,-21.10451 5.29292,-36.51207c-0.60409,-22.18257 -10.10326,-42.27484 -20.08909,-60.91698c-7.07184,-14.82233 -4.56518,-31.85568 -6.84103,-47.71686c-8.17014,-11.38815 -16.33076,-25.48726 -6.60928,-39.55753c10.981,-11.86565 5.81937,-27.47561 1.50418,-41.19728c11.10318,3.26597 23.84772,18.14071 38.4552,15.16287c9.93419,-6.39761 15.9648,-0.073 17.62218,11.6365c5.20781,15.03792 8.24681,35.60265 24.68163,40.4529c17.26196,4.92876 36.58965,6.02341 50.24171,20.484c24.96439,23.38795 36.53986,60.25828 35.56061,95.79604c2.26117,16.61917 23.11539,7.79897 33.43477,10.24997c17.3054,-0.76804 33.91818,4.66769 50.66774,8.39909c14.94962,3.97684 27.61282,-8.59756 41.65988,-10.10515c2.37341,14.53128 -16.06888,20.58582 -26.14133,25.0639c-11.95706,5.08662 -24.89989,5.20694 -37.1826,1.47655c-26.55344,-6.62021 -54.69701,-4.88251 -79.92953,6.75992c-13.61838,5.01505 -26.84254,14.51093 -41.6569,13.32327l-2.79124,-0.72549l0,0.00003z",
            	"chick": "m76.6114,300.49948c-0.94218,-11.68399 1.80264,-23.81186 -2.78349,-35.22473c-7.45612,-25.10127 -23.93798,-47.16536 -31.36633,-72.21014c-3.21228,-16.80365 -8.65163,-34.79272 -2.2363,-51.43718c9.2771,-20.44891 24.58445,-39.1077 45.00853,-51.46853c11.45798,-6.87112 33.39433,1.8131 33.44485,-16.51133c3.62297,-20.89642 15.43811,-40.3082 30.48538,-56.28489c17.86485,-17.49571 47.98021,-20.77926 71.28149,-10.72216c13.19823,4.36545 26.92773,11.92505 29.85556,25.342c-2.0408,13.23198 13.36339,22.40786 12.41484,34.53756c-13.98409,-0.03379 -27.4267,2.25514 -39.10866,9.99602c-8.20006,3.8867 -26.4511,6.08187 -12.88864,15.86904c12.71146,21.22634 12.39029,48.02362 0.02443,69.35255c-8.24092,16.61523 -18.78058,33.14909 -36.37866,43.00504c-13.36313,9.14961 -27.77914,16.93257 -42.68192,23.79149c-11.62872,11.1774 5.32764,27.26614 9.71201,38.8335c3.36447,3.54044 4.524,10.84882 11.15869,9.08932c15.28535,0.25418 32.76015,-1.9313 44.98404,7.81229c-8.94319,8.25949 -25.89421,-1.41025 -38.02573,4.80051c-8.78024,5.75812 -19.06332,7.43823 -31.36371,7.58014c-13.23612,4.30203 -27.23189,-3.61423 -39.08569,1.66962c-4.11388,0.41238 -8.38321,3.40195 -12.45068,2.1799zm58.28394,-16.2124c-4.84233,-9.87674 -20.53861,1.56897 -6.10292,2.32874c2.30783,-0.47092 12.8125,3.03821 6.10292,-2.32874zm-17.85122,-4.32443c14.82944,-9.3367 7.74453,-25.48042 -1.79045,-35.63309c-3.24258,-2.97528 -4.73457,-8.94336 -9.13439,-9.94019c-6.73362,0 -13.46722,0 -20.20084,0c-4.65086,8.49229 -2.48404,17.86589 0.89217,26.43201c3.51066,10.88467 6.16319,28.60654 23.56189,23.00385c2.6806,-0.4599 4.89924,-2.07458 6.67162,-3.86258z",
            	"cormorant": "m143.5415,0.99936c-4.24326,11.41716 -19.29625,4.15632 -24.74561,12.50427c0.52748,6.07653 -8.29025,7.80436 -13.00653,8.43892c-8.50133,3.84879 -22.80692,-4.79845 -26.45377,4.01417c10.96676,1.70561 23.50823,0.97173 33.37776,7.63992c6.81084,8.30698 18.80501,9.32233 23.86815,19.00227c5.01492,11.90637 0.21405,24.79235 -6.1066,35.16777c-5.40714,11.63457 -14.24293,22.0266 -17.15868,34.6068c0.20795,13.02319 4.72718,25.69211 3.20084,38.80902c0.9605,10.14279 6.64024,19.14648 10.04536,28.64983c5.00912,10.57565 9.93535,21.70013 17.62276,30.53665c7.02892,8.87558 29.89705,11.67009 23.64502,24.91443c-4.01926,11.10844 -7.40147,24.48637 -19.39478,29.5565c-9.50977,5.9848 -21.3932,8.93677 -29.06369,17.37073c3.84956,0.36453 28.16327,-14.36331 23.8996,1.69739c-9.52658,11.2518 16.95053,-0.69223 23.42963,-2.18207c4.74442,-0.99915 4.29691,14.62488 8.52766,3.80228c5.95903,-10.08762 6.23502,-21.34366 11.26126,-30.51312c2.4781,-10.25645 3.82962,7.94009 9.64467,10.12222c7.07556,9.50238 7.79694,-14.07236 11.23129,-19.70615c2.62747,-8.54028 4.63826,-23.31885 8.02322,-27.91885c0.19868,-2.83281 6.58795,3.93147 5.0274,-3.78851c0.90347,-23.48584 -1.83659,-48.86755 -15.67365,-68.59196c-9.60602,-8.62669 -13.22336,-21.57266 -21.36568,-31.47811c-10.01912,-4.8186 -8.05391,-19.66993 -20.19205,-21.12443c-2.75856,-10.2361 2.62035,-22.86311 4.63016,-33.73514c2.78795,-10.12834 8.4742,-20.66132 3.52232,-31.15684c-3.76698,-10.86702 -11.83783,-21.03737 -23.57631,-23.51091c-5.21049,-2.63619 -9.89668,-4.17218 -2.89241,-7.84742c4.71588,-7.73713 -7.28709,7.39913 -1.58588,-2.982l0.25854,-2.29765l-0.00003,0zm-57.08003,24.11987c12.78673,0.33177 -8.83535,0.35227 0,0zm92.46721,218.72338c11.05893,4.6954 0.80228,21.55537 -5.46918,26.98338c-13.1071,-3.20859 2.39713,-19.21964 5.46918,-26.98338l0,0zm-10.64413,31.82323c-5.88483,2.41168 -15.44353,4.13849 -3.83093,0.46683l1.97208,-0.34274l1.85886,-0.12408z",
            	"cow": "m28.0749,243.56958c-11.25466,-1.13762 -0.26117,-18.72878 -4.5063,-26.87576c-0.04291,-11.99254 -4.49496,-23.80263 -3.04635,-35.73141c8.85702,-21.03091 1.47632,-43.99974 -0.46577,-65.6628c-0.878,-4.78294 -0.85219,-17.06834 -3.03475,-6.14601c-6.04425,18.41563 -0.13999,41.17824 -5.30961,59.82921c-8.64015,10.38419 -15.16653,-6.09071 -6.91858,-12.40807c9.63606,-15.16887 7.3071,-35.6004 7.63113,-54.51396c-0.41477,-11.95865 4.38277,-26.97649 18.58104,-27.31744c12.14677,-0.91866 23.64877,4.86966 35.90276,4.15359c35.73927,0.55689 71.83095,0.86755 107.11801,-5.64501c17.61354,-4.0591 35.14902,3.10693 52.79015,0.20057c9.91351,1.07068 15.15811,-3.56471 10.78886,-12.26689c7.38425,-5.09429 13.06598,9.66071 16.34573,-3.48148c11.89191,-8.19559 13.54935,15.99933 26.71921,9.16614c15.88589,2.05862 -6.90274,16.26875 6.39813,23.38159c8.04169,6.20473 20.35629,21.57409 4.35831,26.00379c-13.75446,-0.96602 -27.54028,-0.06377 -41.30312,0.60226c-6.36993,10.6367 -19.62016,18.61491 -18.16837,32.55296c-1.1003,16.62756 -12.74783,33.02081 -28.69196,38.18489c-6.81386,-1.34894 -9.78644,0.85432 -8.9351,7.83342c-3.52046,9.11967 -4.14098,18.73875 -3.72333,28.43974c-1.04204,5.34808 1.17265,9.50755 4.32187,13.62691c-3.70361,6.41692 -24.92326,2.61598 -16.88379,-9.5238c2.05592,-15.92261 -0.36317,-31.91132 -2.16568,-47.74242c-8.4565,-6.01532 -18.70856,-3.81294 -27.26753,1.0208c-18.88187,6.9252 -40.73763,13.48228 -60.10471,4.59438c-10.79734,-3.01547 -27.0833,-5.25847 -35.10848,3.84904c-3.611,13.73518 -2.64567,28.48619 -5.7238,42.42607c-0.05178,7.28806 6.88112,13.54532 -4.86428,11.51134c-4.90851,0.11278 -9.83028,0.26732 -14.73372,-0.06165zm10.02217,-15.5108c1.93175,-6.52728 -2.78621,-23.11049 -3.1906,-7.64299c-1.60691,4.90746 0.4367,28.47777 2.83738,12.83046c0.15187,-1.72662 0.25968,-3.45683 0.35322,-5.18747z",
            	"crow_2": "m299.86716,62.24508c-8.36279,-13.35279 -25.79254,-10.94299 -38.7652,-13.97612c-10.77151,-4.46517 -27.26852,-8.74568 -34.93257,4.02601c-10.22766,11.92024 -19.30536,24.77381 -27.38379,38.20519c-16.9417,18.56395 -37.51366,33.44937 -58.19264,47.49408c-17.41919,8.55826 -36.48907,15.23247 -50.59015,29.17691c-26.77713,17.17799 -59.39612,20.30975 -89.00278,30.37996c5.24787,1.82477 28.48156,-4.80739 12.86404,2.45506c-11.61908,3.82678 4.57293,7.38318 9.74338,4.83008c-4.08242,4.36552 -5.2054,4.72249 -0.18473,4.65681c-9.12115,5.09712 20.25491,-1.58305 4.07883,5.5506c-7.04263,2.05971 -24.35976,21.06046 -8.48079,12.5005c14.76321,-6.14401 30.50038,-9.23448 45.85791,-13.45705c-11.48634,11.80891 -27.85513,19.19374 -35.74965,34.16698c0.17943,3.86479 12.21982,-7.85281 17.31087,-9.77229c28.95095,-17.49719 59.28473,-33.71347 91.89844,-43.16046c4.45381,1.07288 5.32478,12.99994 14.00563,6.90237c0.76199,7.59987 19.82927,-11.92125 14.84979,3.30377c8.25793,-13.03635 -0.01482,14.1528 7.62892,18.26904c3.90089,5.15268 19.92041,12.26512 6.86195,14.03082c-5.77165,8.63597 8.09146,-3.46425 11.11865,4.62627c11.3129,4.10901 3.07231,8.32173 -5.11652,5.83363c-6.27592,-0.83809 -7.57079,7.40965 -1.22719,2.29182c7.57507,5.19347 19.60568,3.32813 29.26515,5.56088c9.65308,0.80066 21.35422,-9.88435 25.01279,-7.29437c-8.89755,-6.38512 -21.77765,1.41119 -31.54323,-3.51736c-2.05963,-6.62599 22.89082,2.37143 22.94131,-8.82851c11.68727,-1.08766 -9.82895,-2.59717 -14.00406,0.04509c-14.38026,0.76889 -21.75813,-12.59969 -31.88164,-20.19017c0.30659,-15.75429 11.86186,-29.28856 23.95569,-38.18524c15.77855,-9.50124 31.96706,-21.73888 36.43575,-40.70174c4.63271,-16.88809 7.21239,-34.29048 9.31848,-51.60873c2.84918,-11.17406 11.03882,-21.49306 23.60089,-20.65947c6.77469,-0.94415 13.57404,-1.72816 20.30646,-2.95438z",
            	"crow": "m65.63132,15.69366c7.23991,-11.19251 23.71874,-13.17996 36.20271,-14.69413c13.92134,1.25098 24.65079,12.10254 32.81262,22.59631c9.49452,8.5772 21.08662,15.85565 25.83853,28.41352c12.01437,5.95259 26.19815,9.13653 33.55229,21.87244c11.11548,14.36729 17.52112,31.75739 23.31628,48.60368c0.92021,12.5585 6.47,24.01521 8.36046,36.46043c3.24197,12.33818 5.82637,24.53572 9.31963,36.76498c3.88237,12.71416 9.39792,24.81319 13.2628,37.54517c7.05891,11.17328 13.48564,22.96204 17.86821,35.4054c-10.48648,-0.88873 0.96857,15.8573 2.93524,22.45895c2.86746,13.58783 -12.84537,5.80856 -15.59308,-0.46634c-9.70456,9.1796 -29.57259,11.24072 -38.3669,-0.80743c-9.26392,-12.20752 -14.38051,-27.69696 -27.16855,-36.53391c-5.02811,-4.18506 -9.90665,-22.45958 -11.7061,-6.32031c6.38489,16.05743 -18.74254,6.90547 -27.66772,9.78912c-15.99664,-3.21661 6.07263,-12.35889 12.86923,-11.27576c6.38602,-6.35408 17.01372,-16.99594 1.7589,-20.33147c-10.44731,-4.15326 -23.84068,-14.68553 -29.71439,0.99188c-7.37552,3.90117 -20.59412,22.40862 -5.95329,23.77255c5.91614,12.10878 -17.0737,3.35048 -23.49316,6.21452c-6.05255,1.90814 -21.13758,-1.4375 -7.08788,-4.49867c12.08796,-1.9845 17.85132,-16.8317 25.44044,-25.82515c-0.25166,-11.53856 -9.48829,-20.69617 -16.41167,-29.40816c-7.36517,-12.27962 -17.64172,-22.79747 -22.75925,-36.23717c-3.35689,-13.95544 -9.74807,-26.85826 -12.98938,-40.84583c-3.65936,-14.01762 -7.85575,-29.82359 0.01893,-43.25633c3.58914,-11.78534 5.08364,-22.78083 -2.44828,-32.4814c-10.40722,-8.4583 -25.19866,-5.06594 -37.19873,-10.67507c-1.4463,-9.05923 17.76661,-12.5158 26.11695,-14.53937c3.17027,-0.11009 5.59681,-2.76167 8.88516,-2.69248z",
            	"dog": "m100.16203,296.98279c-8.8212,-9.63385 1.38332,-24.43997 -0.42293,-36.27057c0.75693,-11.26283 0.70357,-22.55605 0.97627,-33.83612c-5.62751,-3.03004 -11.14646,-9.8163 -17.39571,-9.15442c-9.39647,12.28885 -8.36188,28.63301 -15.80033,41.86707c-4.14935,12.68604 -14.20047,25.1369 -28.95629,23.20023c-15.78228,0.24448 -5.31179,-12.67972 3.94138,-14.51392c15.5036,-7.47278 14.489,-27.14363 17.24157,-41.59114c1.02824,-10.18478 3.24236,-20.5625 3.54647,-30.63432c-6.4542,-14.31418 -15.78849,-28.37114 -13.67442,-44.85196c-0.91037,-17.78856 4.2768,-37.23788 -5.08019,-53.53189c-5.56927,-15.61405 3.8713,-31.59072 2.9399,-47.52759c0.9721,-14.78285 -5.20505,-30.54867 1.20562,-44.61136c13.7762,-15.53139 12.97964,13.29988 18.95111,20.54415c5.64886,15.40877 24.7487,10.76537 35.50636,4.24826c7.2022,-4.10769 16.87807,-28.32801 24.44378,-14.32351c3.37997,14.22579 -6.14093,25.38077 -12.22646,36.88495c-6.86581,22.01683 5.86861,44.08519 20.93388,59.44197c24.83763,26.97977 44.07555,59.68134 54.0882,95.03609c1.31316,14.68071 3.98535,28.23558 12.82726,40.18617c10.20438,10.1714 26.16472,9.68739 39.32852,13.25957c9.22101,2.52521 30.75206,5.14639 26.47435,17.3808c-14.74448,2.4689 -30.09541,0.23105 -44.90068,-1.32291c-17.28331,-2.73001 -35.00906,-7.2897 -49.09666,-18.1597c-14.62904,-9.61427 -18.7715,20.00995 -34.01671,10.65375c-2.19362,-7.70334 10.66454,-19.74266 -6.53938,-19.26297c-6.33104,0.30879 -15.00338,1.82024 -19.76239,4.89166c1.07452,12.16098 2.04812,24.36316 4.2893,36.36713c-1.78267,6.00809 -14.15643,12.93057 -18.82182,5.63058z",
            	"duck": "m185.95239,299.43112c-13.71118,-7.29123 11.45862,-7.3541 17.23322,-7.85522c14.99724,-0.2811 17.02971,-18.28448 15.48773,-29.74414c-2.1938,-4.69699 -0.04752,-14.89349 -7.7746,-13.37029c-15.43901,-0.71622 -30.7112,-4.55923 -44.14467,-12.22302c-0.82443,12.88171 -7.29927,24.66777 -11.6053,36.85115c-5.66316,6.16721 14.39644,28.18469 0.43378,18.34869c-9.04433,-8.40845 0.06526,8.74658 -11.16418,3.91656c-15.23827,-0.31436 -31.02578,2.40784 -45.91216,-1.24551c-5.00268,-2.09833 -20.66561,0.51883 -9.25531,-6.49301c6.4804,-1.18185 12.15667,4.48007 17.05421,-2.03778c11.5948,4.79346 30.04866,4.82639 34.25867,-10.28015c7.00595,-11.43338 11.29851,-24.25136 11.56012,-37.68254c-8.2043,-6.31854 -14.70296,-14.48831 -18.43434,-24.21049c-8.62861,-14.22275 -24.3753,-22.02206 -37.28508,-31.87471c-17.12926,-11.15475 -36.8522,-23.99915 -40.20823,-46.00098c-4.08031,-16.32172 0.02216,-34.19492 11.59384,-46.57394c7.80417,-11.16946 22.31328,-21.55052 18.99293,-36.88489c-8.43674,-15.00933 -26.68094,1.9423 -34.96601,9.23433c-9.98,7.06196 -20.71845,24.17017 -34.34288,16.49594c-1.7172,-11.61691 13.7034,-18.90693 17.498,-29.74388c7.8585,-12.19844 12.51045,-26.37627 18.95516,-38.92993c11.65712,-10.85135 30.93148,-10.91782 42.45155,0.28526c14.7008,11.44654 23.86826,29.5425 22.42876,48.35335c1.4173,12.98959 -4.14301,29.91504 8.25453,38.93287c17.92052,9.9613 39.04935,12.35098 57.26444,21.89838c22.77972,10.51788 39.86913,29.49796 59.04057,45.11781c11.7964,10.71736 23.92368,21.11819 35.13879,32.44618c-7.49713,-2.24278 -14.43054,-6.05879 -21.60767,-9.15805c9.28815,12.08043 13.46152,26.94177 15.66077,41.78857c3.61584,15.73579 13.73315,31.11919 8.65729,47.77711c-4.42633,13.85214 -18.52838,-8.55096 -25.42393,-12.47198c-7.88147,-7.42908 -15.67812,-16.62666 -27.10399,-17.90884c-2.06194,13.35767 -4.18094,27.25305 -1.83514,40.63339c1.37479,11.84998 25.0215,4.73886 21.59566,13.51175c-19.80942,-2.16162 -39.69846,-0.3399 -59.55595,-0.59872l-2.94055,-0.30328l0,0z",
            	"eagle": "m42.43982,248.02586c11.79883,-9.19574 37.51548,5.68584 36.59332,-18.29665c11.6873,-8.23552 20.68873,-26.28419 1.79099,-32.32607c-10.7688,-5.1657 -15.8233,11.42451 -19.57125,12.4706c-7.77777,-10.83765 -3.38924,-28.5033 -0.32791,-39.95343c9.78217,-6.08578 25.82187,-13.03094 14.50231,-26.59097c-2.34529,-14.80103 -3.78094,-32.06657 -17.7612,-41.01302c-10.43393,-6.26692 -25.16679,-12.24148 -20.04643,-26.95332c-6.73619,-10.16047 -14.53631,-24.05076 -10.06464,-36.59579c10.19879,-1.80737 9.00111,23.96806 10.94535,18.5213c-3.83083,-8.28799 9.1568,-27.37077 8.41371,-9.7762c-0.78397,6.31187 -0.27625,19.10084 3.19139,6.43372c9.40052,-13.9652 0.18064,24.20846 9.40782,9.05938c6.50935,-2.10711 4.52592,9.32912 10.80828,3.67456c6.87772,5.25431 11.91442,6.4291 11.89108,15.161c9.16496,3.3132 16.00232,8.79374 14.18665,17.50479c17.88632,-4.31568 2.59483,17.992 15.32488,24.21275c6.86198,10.87837 9.94656,21.77702 9.45206,34.69591c14.12406,-3.90332 23.43909,-19.96727 38.02612,-24.96548c16.37712,-7.58971 22.24484,-26.45808 25.80173,-42.75597c1.58806,-7.86366 11.55658,-7.47865 8.4944,1.35465c11.47125,-12.36288 6.68346,-30.36211 9.92291,-45.39627c1.03862,-8.40902 -2.33224,-26.94658 4.74805,-28.67765c10.56419,9.48252 -2.34641,30.44621 7.95137,36.7387c7.25935,-13.5451 4.68625,-29.74639 5.07938,-44.52987c-0.17744,-8.53332 8.28981,-14.18234 7.88048,-2.00179c3.55096,10.5139 -0.40492,32.21981 1.64958,36.04613c8.07187,-12.48013 6.34647,-29.28694 14.90497,-41.01045c11.77513,4.41697 -3.33727,24.23894 -2.9549,34.73938c1.57841,8.06398 13.11919,-23.61583 13.7003,-6.1498c-5.31714,4.6162 -4.42737,17.32646 1.51364,7.08835c2.29477,-8.40776 17.99155,-5.58858 7.86148,2.08536c-7.52231,6.5335 13.19769,6.07413 4.12683,13.25697c6.05191,9.99521 -10.41388,15.90605 -0.99213,23.11055c-0.5419,2.90166 7.51996,8.55031 3.95645,15.5176c3.55255,6.41606 -12.64786,10.58171 -2.07687,14.97137c0.61145,14.96265 -18.29834,25.28072 -14.15472,39.25008c-1.22144,16.83496 -13.92377,30.96262 -27.51764,39.86047c-12.55846,2.38141 -22.29991,7.42523 -33.09448,14.38452c-7.10794,0.12218 -9.63133,0.08891 -13.34837,5.21904c-5.85042,-4.53848 -15.49744,-11.39697 -13.84404,2.34781c2.50378,17.06932 24.15945,18.76619 35.67772,27.84688c12.28496,4.33621 28.35258,18.74889 15.04837,30.03174c-1.28722,16.03848 -22.62962,6.43207 -28.17253,11.98065c-7.95277,1.1889 -7.12421,6.80249 -14.18958,0.10867c-6.88124,9.22229 -22.27397,-0.76007 -29.61287,-4.75983c-11.90405,5.67993 -17.34648,-22.86903 -19.53539,-2.88507c-4.83576,13.58316 -24.476,-1.01483 -24.37943,16.35269c-8.98567,-1.84631 -9.40855,12.19781 -19.04626,10.78702c6.06173,-2.81454 10.18479,-18.90897 -0.69688,-11.14999c-8.89938,-6.76031 -3.76038,16.63571 -11.0985,4.45398c-1.61417,-15.81525 16.34735,-16.12735 26.46889,-18.96848c3.63502,-9.19174 8.23714,-21.27525 7.27283,-30.1396c-9.56728,3.84567 -17.9573,12.08994 -29.11918,12.79019c0.69484,8.35417 -5.77779,21.85307 -15.72966,14.08031c14.30752,5.57813 7.98567,-25.05467 -0.66062,-9.91721c-3.38933,9.9873 -2.96938,-14.429 -12.7722,-7.32185c-5.13792,3.73692 -1.64958,12.39018 -6.75386,2.35237c-0.99273,-2.02373 -1.14814,-4.89752 0.9282,-6.35475z",
            	"elk": "m55.44169,70.04322c-9.46609,7.85901 -22.89024,10.68682 -35.01687,12.13352c-10.34381,-1.03976 -26.56821,7.31529 -15.97385,18.70621c7.56154,15.8879 23.87035,2.81345 34.83344,1.97973c6.74288,1.81747 9.04052,25.43575 14.68986,9.83006c3.84105,-12.93275 21.02425,-8.87709 30.14005,-4.40716c14.1686,4.39434 8.46609,22.12076 16.61138,31.95892c12.24081,12.85411 -1.67636,29.24428 -12.4499,37.76401c-12.75361,7.58044 -18.55984,19.76834 -16.78767,34.30325c0.04941,14.73842 -3.99104,30.75432 3.85034,44.19391c11.85099,1.57538 1.64103,-19.88701 4.92331,-27.40918c1.21214,-13.46214 -1.9274,-30.30058 10.90484,-39.28947c11.4828,-10.01157 23.57063,-19.55112 36.47411,-27.62581c12.21095,-0.62399 10.39299,17.77295 13.97888,26.40175c2.87054,13.20355 4.12752,27.58423 3.69688,40.50841c3.125,10.64038 5.51489,24.0757 -1.41217,31.57294c12.91045,1.34732 24.73607,-12.8914 14.16034,-24.30435c-4.26125,-15.94153 -5.71083,-32.54619 -8.8824,-48.75049c-1.29825,-11.53598 -3.35872,-25.34232 4.83759,-34.86038c12.05826,-0.41389 24.32834,12.14566 37.60088,4.59509c11.65439,-7.49344 33.21696,-6.53802 31.62036,11.82347c-3.2142,14.87534 1.55244,29.61519 2.2346,43.81203c-3.42354,18.43187 -22.15714,27.36267 -29.50255,43.57849c6.98146,9.64319 17.6196,-4.17101 24.65466,-8.5957c-1.74142,-12.99426 11.64835,-19.92599 15.71536,-30.922c6.9856,-14.97188 -3.20459,-32.25409 -2.75711,-46.36688c-5.96602,-12.06912 6.08081,-14.98056 11.07512,-3.9678c8.02901,10.14059 21.03195,16.80963 23.7973,30.43394c7.39731,10.39175 10.8736,22.49284 15.64307,34.03711c4.08353,6.21262 10.6907,18.02594 12.81412,3.55118c3.85464,-8.67506 1.42859,-14.46745 -6.31488,-15.1647c-13.17899,-14.6283 -10.83514,-37.51031 -25.72766,-51.16437c-10.90161,-6.89407 -22.06673,-14.37312 -25.85289,-27.85638c-6.71298,-10.98305 -8.98033,-24.34339 -5.63237,-36.85001c4.36508,-2.10748 7.17406,6.33847 3.86676,-3.07584c-7.08252,-11.81364 -21.74017,-16.42101 -34.30881,-20.12214c-13.86351,-4.31435 -28.287,-5.60372 -42.65346,-3.49644c-12.2518,3.14196 -25.56529,6.21495 -37.68355,0.56779c-10.80199,-6.45414 -23.34553,-5.2407 -34.37726,-0.35921c-8.31817,4.58586 -24.95089,-0.17232 -13.39404,-9.69791c-4.65558,-4.05794 -21.26908,7.53993 -8.94252,-2.36752c5.90361,-6.02524 8.73024,-18.58166 6.56192,-25.10496c-2.33636,8.03588 -5.7029,7.70039 -5.40219,-0.79288c-2.03959,15.14413 -12.13537,5.38195 -10.55587,1.00194c0.66773,6.1233 -2.56635,12.84344 -5.72467,3.23117c-0.3636,6.21597 2.87773,15.15818 -3.77972,17.71219c10.15314,9.32419 -13.24982,2.42432 -13.20099,-4.96754c-6.18471,-9.39983 -7.12771,-4.31873 -4.60736,3.21883c-4.59348,-3.34352 -10.47613,-9.66862 -5.36225,0.14767c5.84781,13.3303 21.7189,7.94385 31.61781,10.45553z",
            	"fish": "m127.20683,242.3436c1.50244,-15.94504 5.02446,-32.41927 12.88557,-46.10178c7.51215,-8.98547 19.63693,-8.71681 29.76314,-11.79086c-14.18819,-3.80443 -27.43222,-10.54059 -40.42705,-17.66788c-21.27006,-9.23157 -42.92073,4.06975 -62.09324,13.40138c-14.23518,6.80144 -28.31641,14.82532 -43.64474,18.1933c-10.05519,-6.98578 -1.65744,-26.80461 5.41335,-35.17271c8.9525,-11.55655 22.2043,-17.52696 31.90982,-28.07993c4.26963,-14.90575 -15.40321,-18.57297 -24.24153,-24.42971c-13.70577,-6.20512 -25.35116,-16.36843 -35.77064,-27.71589c24.19748,-1.40994 45.60231,13.61476 67.43612,22.73716c11.80957,4.27464 22.94788,10.28683 33.98999,16.23396c5.06265,-0.02556 22.24189,3.73252 20.52978,-2.03984c-12.8773,-0.57095 -11.58655,-17.22836 -2.92075,-23.83247c12.73701,-10.02242 28.26479,-15.93932 38.86842,-29.21478c4.65193,-3.7341 7.09996,-12.86792 11.03157,-15.74994c16.95282,13.24852 26.87143,34.14735 36.22475,53.96581c15.23062,3.44089 30.61246,6.23184 46.13637,7.07419c15.15991,6.93107 28.10406,19.01068 39.97369,31.27808c8.99451,6.78525 11.39157,25.24843 -0.83481,28.95241c-30.16479,16.24658 -63.84666,21.21309 -97.06413,22.77441c-4.67992,-0.32996 -8.75485,0.18372 -8.78621,6.33609c-2.92581,8.76227 -4.12184,18.94467 -9.62984,26.07907c-6.07878,-1.55455 -0.31998,-19.45975 -6.56294,-10.95245c-12.27982,13.32922 -27.04962,23.32567 -42.18671,32.26515c0,-2.18091 -0.00002,-4.36198 0.00002,-6.54276z",
            	"hare": "m95.22337,299.53546c-10.68459,-4.81824 3.25798,-14.45154 8.53654,-18.71286c3.55556,-3.28177 -20.37717,0.46036 -10.27298,-10.93198c11.08577,-9.30692 6.89815,-25.05217 -4.18282,-32.37115c-15.24973,-10.2968 -34.81611,-19.10942 -40.44992,-38.33635c-5.69662,-11.9756 7.81301,-24.58835 -0.87631,-35.40263c-6.99412,-14.0412 1.177,-28.68323 6.25594,-41.69022c2.33568,-17.99253 -11.97227,-32.2212 -19.84076,-47.00306c-9.74298,-14.12588 -15.35928,-30.58578 -16.16633,-47.73895c-2.11884,-7.3217 0.22601,-18.6921 8.68694,-8.82097c17.71845,14.18765 37.17033,27.65002 49.57116,47.06949c2.34735,7.01447 11.74658,27.34441 12.27144,8.93449c0.24582,-25.30315 7.97399,-52.90002 27.77682,-69.85634c13.46954,-12.2734 20.73361,9.21683 21.36209,20.13735c3.50587,21.487 -2.30553,42.79486 -8.78146,63.09225c-2.37738,9.43285 -8.56868,35.2823 9.08899,25.75117c40.67693,-15.70451 89.96005,0.78945 116.45525,34.52606c12.17961,16.33485 17.5135,37.32133 17.39308,57.47189c-6.27155,11.83836 17.03061,-0.22177 8.58704,13.43613c-4.97064,15.1297 -19.01465,23.33925 -28.85207,34.75906c-10.01038,9.15085 -2.58298,28.71576 -19.13725,31.59863c-24.15469,7.44629 -49.5191,10.70804 -74.66498,12.6066c-14.07156,2.88287 -20.90056,-13.20758 -7.41347,-19.89679c6.46608,-9.96799 24.96535,-10.66653 30.46185,-12.24564c-13.13484,1.28516 -29.33337,-4.0759 -40.40141,4.05872c-6.70294,10.88138 -12.07141,25.20364 -26.12755,28.30951c-6.3168,1.75439 -12.8116,3.16129 -19.27982,1.25558z",
            	"he_hen": "m176.04681,296.29803c-8.82596,-3.77927 -18.43298,1.74493 -27.86224,-3.75964c7.62581,-0.4744 19.08463,-0.03574 17.06104,-11.34488c3.33665,-13.20654 -3.43475,-27.06163 2.20258,-38.55534c-8.82878,-8.42361 -18.09561,-18.39673 -22.80272,-30.16238c-0.9447,4.74663 -1.81537,8.52257 -3.158,0.33916c-0.76965,-4.00471 -0.30261,9.89931 -3.24527,0.14346c-3.10373,-8.67493 -11.4597,-31.29446 -14.05236,-10.31462c-1.0768,10.8262 -4.45592,3.14465 -6.0004,-3.72562c-1.56924,-13.22943 -7.23737,-25.48523 -8.72193,-38.68883c5.80227,-8.36407 -0.82715,-9.5029 -3.91098,-1.15848c-3.39584,13.23767 -6.30494,26.33923 -2.7624,39.9769c-4.70789,3.85124 -13.79493,-17.92216 -9.61541,-26.27414c3.62592,-9.45018 2.81974,-19.09607 3.42313,-25.48878c3.31529,-7.21146 -3.22571,-15.04807 0.25123,-22.73853c-8.88477,9.68631 -16.83011,16.38615 -14.33428,31.58234c-1.10283,3.79079 3.703,25.58844 0.64231,17.56184c-5.77861,-15.66916 -5.78305,-33.02271 -1.43442,-49.01125c0.00535,-12.20366 -9.89253,21.0744 -9.16187,4.76299c-0.93676,-12.30159 4.13303,-25.82869 8.93452,-35.55499c-5.46675,-6.50523 -23.17289,-1.89566 -14.79648,-15.70558c8.24343,-7.01884 7.35999,-16.67057 -3.85936,-8.18394c-17.3246,12.72424 -31.69814,29.07174 -47.58007,43.52234c15.25898,-19.61487 32.46107,-38.59572 53.7519,-51.75492c20.64337,-12.99951 50.5769,-14.34346 68.38963,4.28573c4.53072,7.97979 15.06177,13.26968 17.57275,20.45337c-1.84586,10.76744 5.10652,16.10654 5.85289,25.57021c4.38731,7.30244 -3.95828,20.43125 8.52597,16.64671c14.20137,-0.01996 33.63664,-3.16645 34.74754,-20.87874c5.66772,-25.50935 8.27689,-54.0092 26.4256,-74.31131c10.08655,-5.89642 3.82147,-4.32716 -3.54926,-5.29837c-6.51613,-7.58361 6.57724,-19.75743 13.02319,-21.14511c-1.112,-17.9227 10.53479,10.74471 13.86426,-2.41437c4.99586,0.09501 7.43144,12.08141 10.46855,2.29789c9.05719,7.66376 18.6297,19.25661 6.66562,29.92943c13.61102,6.52517 -13.86911,2.29947 -2.14532,12.29652c9.6759,9.35194 2.83621,26.62759 -5.10654,34.15639c-0.3085,5.66077 9.31277,13.88494 11.24728,20.75249c9.99454,19.34809 11.9986,42.36646 8.16797,63.56847c-5.39346,19.98318 -25.46588,28.67906 -39.65833,41.37386c-12.12337,9.93893 -7.85776,27.37115 -13.59781,40.42342c0.57072,7.5369 4.77751,16.1196 10.7547,20.66925c8.66214,4.84064 18.81006,7.96561 25.81393,15.05286c-6.39667,3.34055 -19.43893,-10.21753 -19.56508,0.39017c-9.50252,-12.34393 -23.7677,-4.06104 -34.21234,-13.55405c8.69193,1.65643 19.99033,0.8027 10.47188,-9.61145c-3.75841,-8.80696 -15.07852,-11.84618 -15.37883,-22.49022c-10.66643,6.69647 -17.92447,15.81358 -25.66988,24.90395c-12.85808,-0.80322 -13.41248,25.11618 0.47165,24.73163c5.7019,1.45825 27.10161,9.40335 10.25006,7.35107c-5.02289,-0.89746 -10.47203,-4.04099 -10.31842,1.85727c-2.30338,-0.41431 -4.35982,-1.56003 -6.48019,-2.47418z",
            	"hen": "m131.70792,299.20142c-2.65045,-8.04401 -50.59061,2.01245 -25.50379,-8.40613c9.71836,-2.24731 29.67359,0.57056 9.8335,-5.50568c22.5928,7.62228 32.60569,-19.08859 34.06422,-37.09636c-21.02885,-6.55212 -24.67069,-31.02429 -46.83106,-37.61485c-16.88445,-13.23645 -41.63732,-12.83168 -52.35418,-33.24014c-10.17476,-18.17259 -4.4284,-40.29292 -2.74405,-59.92338c4.00956,-20.72375 12.14967,-41.69897 10.53991,-62.75727c-16.41068,9.44812 -22.4106,-11.67328 -22.78485,-18.27062c-12.07958,3.08904 -19.7317,3.22594 -6.59584,-7.5194c5.87008,-8.14037 8.78346,-25.92081 18.16113,-23.25189c2.47408,-10.763 9.04029,4.89351 16.30021,-4.61621c4.44867,3.35889 13.85731,7.10325 3.42817,13.02555c18.83147,9.50194 34.07959,23.95835 41.92437,42.43233c7.86127,18.77559 23.52317,39.06593 48.8149,33.98585c22.90038,3.93186 49.73083,-9.80992 48.68822,-32.86776c0.44391,-16.33654 16.52325,-54.48924 38.19395,-35.09801c16.24046,6.22802 34.92778,21.65468 31.09642,39.16159c-2.21887,18.0508 -0.50452,36.25767 1.60162,54.45551c-13.60181,10.0825 -11.15982,27.59631 -20.65894,40.7838c7.8804,18.56862 0.29095,38.62871 -12.60841,53.70848c-12.90314,13.89935 -31.76248,26.24356 -52.66508,24.4381c-7.98578,13.29396 9.42929,24.99069 15.57339,25.73553c-16.01053,-5.1321 -13.75549,4.70874 -8.47672,15.2244c4.94576,19.6875 -10.58037,-17.53909 -20.60904,0.27255c-7.77597,7.68976 -38.86531,10.29276 -13.69539,1.07587c21.48048,-7.96875 -24.12099,-12.95142 -13.99879,5.00586c3.34996,7.49203 22.77361,10.79092 2.32814,7.93628c-9.02753,-4.74515 -13.85625,12.10397 -21.02202,8.92599zm43.09088,-34.62769c7.8596,-9.56569 10.12141,-37.24054 -6.87671,-17.06372c-13.43553,10.88889 -18.29311,29.6301 6.87671,17.06372z",
            	"mouse": "m0.99942,221.57315c18.97592,-5.2153 38.89368,-5.72223 58.37582,-7.77921c22.496,-2.19991 45.89505,-1.95135 67.14781,-10.93486c14.09158,-5.66957 18.06422,-22.34355 18.92189,-36.61246c3.853,-24.50212 17.5325,-49.94102 40.26784,-59.44455c8.81084,-4.72752 21.73279,1.24299 28.77051,-3.16475c-8.53821,-11.67851 9.86266,-25.18666 17.60304,-12.64201c9.90706,2.44754 20.13632,-4.12984 22.40773,-13.63184c8.92409,7.01573 17.55354,16.51189 28.21455,21.93088c10.14639,3.852 24.18005,17.58312 11.18048,27.34964c-8.74753,9.55273 -22.39651,8.48746 -31.55023,16.51577c-9.2032,7.60971 -8.39032,20.69223 -4.77994,31.13091c0.58701,11.39519 9.68161,13.02966 17.70996,16.03508c1.32019,7.11591 -9.48019,9.15216 -14.76065,10.85889c-11.37581,1.93378 -22.26419,-2.9012 -30.79645,-10.59497c-7.75803,-9.73157 -17.02081,0.98111 -14.42018,10.56955c-13.10742,11.20265 10.79541,5.32968 13.63931,12.79547c-11.33516,4.36475 -24.3324,2.06448 -36.29933,1.86723c-15.70055,0.23059 -28.91441,-10.20818 -44.0015,-12.87645c-9.31265,3.4888 -17.24791,11.49408 -27.66536,12.5939c-30.59707,5.30119 -61.77245,4.85931 -92.6703,6.59238c-8.95057,-0.1062 -18.97236,1.51553 -27.29502,-0.55859z"
            	}
            }
          • arrow.json
            {"data": {
            	"10": "m0.99679,148.19614c0.277,-34.75176 -0.17724,-69.54997 2.27791,-104.24061c60.32762,11.41171 119.94372,30.08407 179.25477,46.87597c3.18407,-17.04019 1.68541,-31.17523 4.4519,-46.93008c38.1039,33.15254 75.86421,66.77718 112.07695,102.003c-34.74261,39.95821 -74.59364,74.65916 -113.71667,110.1933c-1.26689,-16.54773 -2.53401,-33.09534 -3.80092,-49.64307c-57.66159,16.00916 -118.64064,32.56108 -176.67504,47.19652c-3.94662,-33.77068 -3.83062,-70.54794 -3.8689,-105.45503z",
            	"11": "m136.44681,226.75766l47.24773,-47.40907l-91.35118,0l-91.35098,0l0,-29.34846l0,-29.34849l90.303,0c49.66658,0 90.30293,-1.48752 90.30293,-3.30561c0,-1.81805 -19.77211,-23.15214 -43.93797,-47.40906l-43.93811,-44.1035l40.61224,0l40.61209,0l62.02386,62.14279l62.02383,62.14276l-62.14281,62.02386l-62.14279,62.02386l-42.75481,0l-42.75491,0l47.24786,-47.40909z",
            	"12": "m116.00724,294.49442c-8.01179,-8.01181 -6.96065,-12.86337 12.51841,-57.77466c9.83598,-22.67787 17.88353,-41.89153 17.88353,-42.69699c0,-0.8054 -27.16052,-1.46442 -60.3569,-1.46442l-60.3569,0l0,-42.47337l0,-42.47337l60.83526,0c46.90741,0 60.31158,-1.27951 58.54825,-5.58862c-1.25784,-3.07373 -9.83818,-23.47047 -19.06743,-45.32602c-17.39725,-41.19823 -17.39179,-52.24659 0.02688,-55.67119c8.66862,-1.70424 143.62872,129.24032 148.26757,143.85621c-44.95403,52.18671 -98.68933,106.81281 -148.18829,154.97751c-2.60997,0 -7.15958,-2.41428 -10.11037,-5.36508z",
            	"13": "m167.5984,129.81894c13.45454,0 26.90909,0 40.36363,0c0,13.45454 0,26.90909 0,40.36363c-13.45454,0 -26.90909,0 -40.36363,0c0,-13.45454 0,-26.90909 0,-40.36363zm-58.30304,0c14.9494,0 29.89909,0 44.8485,0c0,13.45454 0,26.90909 0,40.36363c-14.9494,0 -29.89909,0 -44.8485,0c0,-13.45454 0,-26.90909 0,-40.36363zm-53.81818,0c14.9494,0 29.89908,0 44.84848,0c0,13.45454 0,26.90909 0,40.36363c-14.9494,0 -29.89909,0 -44.84848,0c0,-13.45454 0,-26.90909 0,-40.36363zm-53.81818,0c14.9494,0 29.89908,0 44.84849,0c0,13.45454 0,26.90909 0,40.36363c-14.94941,0 -29.89908,0 -44.84849,0c0,-13.45454 0,-26.90909 0,-40.36363zm165.9394,83.23706c14.2021,-0.91132 28.40395,0.64389 42.60606,-0.26743c0.91125,-14.20201 0.48917,-28.40405 1.40042,-42.60606c13.29086,0 27.91505,0 41.20563,0c0,-13.45454 0,-26.9091 0,-40.36363c-13.45454,0 -26.90909,0 -40.36363,0c0,-14.94952 0,-29.899 0,-44.84848c-14.9494,0 -29.89908,0 -44.84848,0c0,-13.45454 0,-26.90909 0,-40.36363c14.9494,0 29.89908,0 44.84848,0c0,13.45454 0,26.90909 0,40.36363c13.29059,0 27.91478,-0.66666 41.20563,-0.66666c0.91125,14.20197 0.48918,29.0707 1.40044,43.27271c14.20209,0.91129 28.60425,-0.07731 42.80637,0.83398c0,13.29074 -0.20032,28.48132 -0.20032,41.77208c-14.9494,0 -29.89908,0 -44.84848,0c0,14.94951 0,29.89897 0,44.84848c-13.45454,0 -26.90909,0 -40.36363,0c0,13.45454 0,26.90909 0,40.36363c-14.9494,0 -29.89908,0 -44.84848,0c0,-13.29074 0,-29.0479 0,-42.33865z",
            	"14": "m158.38327,149.9911l-83.00266,-148.9972l149.24145,148.9972l-149.24145,148.99712l83.00266,-148.99712z",
            	"15": "m175.41861,150.04552l-148.89816,-149.05299l98.06119,0l148.89816,149.05299l-148.89816,149.05287l-98.06119,0l148.89816,-149.05287z",
            	"16": "m227.52928,183.22569c6.14276,-5.95375 12.01762,-12.81764 17.19296,-18.97911l-155.07133,-2.82724l-21.27044,24.3479l-67.38522,-2.09119c8.44345,-11.0853 17.69294,-24.10754 24.55062,-33.88853l-24.39403,-32.88164l71.89852,0l14.62907,20.54468l158.32403,0l-19.63887,-20.4987c6.06082,-6.45992 15.03049,-15.08081 19.89622,-19.60087l53.24701,52.24467l-53.36812,53.05513l-18.61044,-19.42511z",
            	"bent_up": "m1.00136,224.73827l204.13,0l0,-149.15997l-31.28999,0l62.57999,-74.57997l62.58002,74.57997l-31.29001,0l0,223.73997l-266.71,0z",
            	"callout": "m0.99757,0.99642l193.63145,0l0,111.75l53.81497,0l0,-37.25l50.55357,74.49999l-50.55357,74.50003l0,-37.25002l-53.81497,0l0,111.75l-193.63145,0z",
            	"chevron": "m0.99844,0.99688l223.49919,0l74.49986,149.00068l-74.49986,149.00134l-223.49919,0l74.49984,-149.00134l-74.49984,-149.00068z",
            	"corners": "m78.29672,150l-55.17469,-55.1747l0,27.58735l-22.12203,0l0,-121.41265l121.41265,0l0,22.12203l-27.58736,0l55.17471,55.17471l55.17471,-55.17471l-27.58736,0l0,-22.12203l121.41264,0l0,121.41265l-22.12204,0l0,-27.58735l-55.1747,55.1747l55.1747,55.17471l0,-27.58736l22.12204,0l0,121.41264l-121.41264,0l0,-22.12204l27.58736,0l-55.17471,-55.17468l-55.17471,55.17468l27.58736,0l0,22.12204l-121.41265,0l0,-121.41264l22.12203,0l0,27.58736l55.17469,-55.17471z",
            	"diamond": "m228.23334,205.75699c-12.96465,-22.71989 -62.74901,-33.9996 -160.88079,-36.45064l-66.35706,-1.65739l0,-19.88501l0,-19.88482l50.08599,0c59.04541,0 101.26503,-4.08251 135.71376,-13.12332c20.32901,-5.33509 27.0845,-8.73719 36.27359,-18.26725l11.29199,-11.71121l32.38853,32.49907l32.38852,32.49925l-32.75113,32.72415l-32.75122,32.72433l-5.40219,-9.46716z",
            	"dotted": "m164.76302,54.29618c-12.89404,-14.08136 13.13254,-37.91006 24.83243,-21.67826c9.98653,14.06865 -12.21164,31.95572 -24.83243,21.67826zm34.52623,32.04741c-10.53665,-15.50334 18.2944,-32.06738 27.41472,-16.58083c10.82574,16.19412 -18.42853,34.68893 -27.41472,16.58083zm39.30569,38.77469c-13.16362,-8.91086 -0.08168,-29.46533 13.54875,-27.63215c18.93346,2.88981 13.87328,34.44158 -4.59297,32.89478c-3.58466,-0.41574 -6.77832,-2.45136 -8.95578,-5.26263zm32.87781,34.23642c-11.00845,-13.99648 14.37656,-32.37918 25.04797,-19.05171c11.60712,14.82527 -14.29718,34.39392 -25.04797,19.05171zm-63.84386,0.7675c-12.23796,-11.58463 5.72536,-30.30273 19.24007,-25.41679c19.63696,6.28566 5.03751,36.50668 -12.48737,29.64096c-2.41074,-1.14194 -4.56958,-2.71278 -6.7527,-4.22417zm-52.05359,0c-14.38365,-13.43323 11.89731,-35.50046 24.20743,-21.44815c12.48965,14.64734 -10.94827,35.43011 -24.20743,21.44815zm-51.41751,-0.7675c-11.01524,-13.99239 14.38364,-32.38554 25.04439,-19.04626c11.57417,14.84886 -14.25791,34.38168 -25.04439,19.04626zm-48.97159,0.7675c-14.38364,-13.43323 11.89733,-35.50046 24.20746,-21.44815c12.48962,14.64734 -10.94829,35.43011 -24.20746,21.44815zm-51.41319,-0.75569c-12.62148,-16.51503 21.51373,-34.53826 27.20482,-13.82039c4.20761,13.86485 -18.57945,25.93829 -27.20482,13.82039zm232.73729,36.71002c-12.26451,-12.7252 9.54947,-34.95583 22.63777,-23.37347c16.16324,11.53831 -5.25334,38.27226 -20.09267,25.93422c-0.83693,-0.86462 -1.69453,-1.70929 -2.5451,-2.56075zm-37.22105,31.5554c-10.33875,-14.74719 16.53384,-30.93315 26.24101,-17.10368c12.66234,14.69044 -12.76988,34.70573 -24.48114,20.0298l-1.75987,-2.92612zm-33.2933,39.2449c-11.17,-10.21844 4.17313,-26.31229 16.33257,-23.575c18.50797,4.77472 6.84483,34.45702 -10.13109,28.82402c-2.6304,-0.90369 -4.76476,-2.91159 -6.20148,-5.24902z",
            	"hand_2": "m166.23018,238.662c7.92778,-2.90976 14.43034,-5.61938 2.1153,-5.69868c-10.87593,1.46172 -39.01099,-9.28242 -16.4619,-14.56342c14.10701,-5.508 46.21144,7.21423 46.38257,-14.54736c-2.55197,-13.63786 -43.96396,-2.98952 -30.34076,-21.27969c15.00345,-6.1348 44.75407,8.31958 49.78708,-10.66391c-4.61371,-18.40675 -33.47118,-6.65964 -47.97568,-11.74664c-14.06097,2.90031 -17.76392,-15.58949 -1.98296,-12.79868c36.48125,-1.96817 73.21696,0.92035 109.57253,-3.09619c5.87265,-3.2529 10.21371,-23.26295 2.80267,-24.61046c-52.95885,-1.09735 -106.01129,-0.08873 -158.88631,-3.36192c-18.99625,-0.19729 -4.48207,-20.48157 9.55508,-15.71787c13.37119,-4.37856 18.67023,-15.85947 28.4838,-27.19597c5.01488,-24.77942 -19.08717,-15.58241 -28.93028,-8.33138c-10.99126,7.20572 -29.89664,22.16276 -39.92577,30.01463c-8.79154,6.3571 -29.0466,13.41131 -41.36795,21.93291c-10.53185,3.7428 -22.05687,1.87943 -32.40108,2.55152c0,33.57336 0,67.14623 0,100.71958c29.2655,12.743 60.06093,23.93646 92.50566,22.65599c19.00592,-0.07739 38.55775,0.63341 57.06799,-4.26245zm-120.57521,10.76822c-14.93961,-5.74022 -29.85212,-11.55359 -44.65637,-17.63553c0.70846,-41.92598 1.41691,-83.85243 2.12533,-125.77841c11.81984,-0.44887 29.35853,5.41407 37.78343,-3.21891c22.65079,-7.26991 37.35686,-23.34933 57.21348,-35.41785c13.97373,-10.98014 25.13529,-14.72766 39.56827,-23.05481c10.96249,-5.06954 16.89815,-2.48073 29.24257,-0.27045c5.38396,8.81045 12.06773,13.36412 8.59946,30.1482c-7.23705,3.64039 -16.6288,28.10783 -2.4068,28.30228c39.59416,3.79424 79.82585,-1.53866 119.10855,5.09266c9.78171,13.24281 11.64719,42.99407 -6.25568,51.39202c-17.13269,4.95341 -35.19667,2.49629 -52.7989,3.09193c-0.00107,12.52824 2.07022,28.51608 -11.83537,34.80946c-10.26779,13.39197 -10.98985,33.06551 -27.53502,42.86476c-13.91499,14.25851 -33.72333,18.66306 -53.04445,18.19296c-31.68189,0.4295 -65.02994,3.46667 -95.10849,-8.51738l0,-0.00095z",
            	"hand": "m136.98543,214.15889c-14.70618,-5.74251 -4.62521,-24.05643 -14.3905,-33.27538c-12.96347,-7.75244 -2.12349,-24.16507 -12.57821,-33.28812c-7.48801,-6.64952 -5.24203,-16.62421 -3.67915,-25.18983c-29.75101,-0.23549 -59.53337,0.62366 -89.25697,-0.78464c-15.11522,1.28053 -20.03182,-18.26941 -12.80666,-28.85114c7.00419,-11.24166 21.87759,-8.31262 33.12609,-9.4029c64.97946,-0.76864 129.97618,-0.61134 194.95673,0.02921c17.26189,0.80067 37.01695,-1.19489 50.6566,11.68779c16.24808,15.16693 16.0166,39.34441 16.04852,59.94771c-0.42267,19.21857 -2.90109,42.02173 -20.4863,53.46951c-16.36914,10.95175 -36.93741,7.66907 -55.55533,8.62302c-27.94264,-0.30014 -56.07063,1.04456 -83.86891,-2.2673l-2.16592,-0.69792l0,0zm69.33224,-10.55814c9.631,-11.23128 -3.5211,-20.50227 -14.65393,-17.55965c-16.14473,-0.10535 -32.65453,-1.7021 -48.52592,1.75482c-13.67432,5.19589 -4.85582,21.54512 7.46478,18.25877c18.04872,1.02443 36.47603,1.82143 54.28616,-1.68709l1.42891,-0.76686zm65.93199,-2.17656c15.66348,-8.69865 15.78064,-28.60548 16.25079,-44.24881c-0.34195,-16.50655 1.70639,-34.58434 -7.04581,-49.36581c-7.23798,-10.84158 -20.71933,-14.52557 -33.13705,-14.12024c-23.36646,0.0377 -47.0793,-1.82723 -70.16504,2.52512c-15.66467,3.36275 -22.23152,20.93031 -23.45795,35.19015c-0.48341,13.80043 -1.82124,28.00842 1.22505,41.56039c7.24641,5.02983 15.89499,-9.13847 19.17191,-15.4227c4.31766,-11.67575 -0.61995,-26.25061 8.10953,-36.19362c8.72269,-9.46424 24.96402,-8.53419 32.52521,1.88722c8.3812,9.23244 -0.48325,21.69592 1.82307,32.51563c4.15211,9.93069 -0.70021,19.45959 -0.85791,28.5067c4.13835,6.87068 2.87872,15.02933 1.61143,22.50597c16.21062,-0.57724 32.86133,1.70529 48.65034,-2.71872c1.84845,-0.69202 3.61401,-1.59238 5.29642,-2.62128zm-126.53741,-35.9437c2.18771,-13.69858 -18.65493,-12.59653 -20.49308,-1.57007c-4.38604,12.23279 17.61123,15.56906 20.78048,7.03215c0.03699,-1.82657 -0.14053,-3.64476 -0.2874,-5.46208zm62.45076,0.42249c1.41585,-11.79691 -20.5592,-11.91444 -24.75133,-3.63126c-2.34377,5.03215 -10.03961,15.25429 1.13329,12.59268c7.54675,-1.70357 25.12254,3.75204 23.61804,-8.96143zm-62.44263,-31.11197c-0.75351,-2.94205 3.03209,-10.28735 -1.13232,-9.92064c-9.20967,1.01493 -19.08115,-0.45296 -27.70964,3.18962c-7.77171,10.63712 5.24397,21.0274 15.9218,17.53934c7.79146,0.11475 13.91219,-1.24452 12.92017,-10.80832zm61.0041,7.53122c8.85812,-9.53879 -4.95708,-21.9593 -14.94496,-15.6684c-10.39732,5.40628 -7.29182,25.10663 6.58635,19.17703c2.96956,-0.54494 6.1384,-1.30057 8.35861,-3.50864zm-53.18405,-38.39041c2.00339,-3.50816 4.00681,-7.01634 6.01019,-10.52453c-44.99024,0.24061 -90.00227,-0.61648 -134.97418,0.73022c-12.21447,-3.32573 -22.07768,15.22181 -6.82234,18.35822c24.02138,3.10667 48.39057,1.52395 72.56345,1.97845c19.07089,-0.00607 38.14179,-0.01187 57.21268,-0.01793c2.0034,-3.50815 4.00681,-7.01634 6.01019,-10.52452z",
            	"in_circle_1": "m5.82933,197.43428c40.71335,-0.01967 134.41318,-0.35846 180.09581,-0.39397c0,16.34004 0,32.68033 0,49.02061c32.58316,-32.50494 65.16631,-65.00987 97.74948,-97.51482c-31.92815,-31.66348 -63.85603,-63.3272 -95.78392,-94.99068c-0.78604,15.0691 -1.57207,30.13822 -2.35809,45.20756c-59.53047,-0.36446 -119.11517,1.07731 -178.59646,-1.67522c0.61495,-72.0702 150.25177,-122.40517 212.67849,-79.3467c34.44215,24.58492 61.89983,56.78898 72.41017,96.54306c3.07645,22.14599 2.45142,44.78936 0.58615,67.02389c-6.63419,36.33044 -31.19992,67.07545 -59.56813,89.58617c-20.38606,15.81168 -45.18452,26.98569 -71.36909,26.70041c-75.26421,9.28406 -124.16029,-34.86111 -155.84441,-100.16032z",
            	"inner": "m197.26169,150.29735l-74.64867,-74.64867l0,37.32433l-80.12502,0l0,-111.97301l215.02399,0l0,298.5947l-215.02399,0l0,-111.97301l80.12502,0l0,37.32433l74.64867,-74.64867z",
            	"left_right": "m0.99835,150.00092l86.49609,-86.49651l0,43.24814l125.35546,0l0,-43.24814l86.49605,86.49651l-86.49605,86.49605l0,-43.24803l-125.35546,0l0,43.24803l-86.49609,-86.49605z",
            	"left_up": "m0.99865,224.5l74.50004,-74.5l0,37.25l111.74991,0l0,-111.75l-37.25,0l74.5,-74.5l74.5,74.5l-37.25,0l0,186.25l-186.24989,0l0,37.25l-74.50005,-74.5z",
            	"pentagon": "m0.99791,0.9981l162.54547,0l135.45454,149.40899l-135.45454,149.40898l-162.54547,0z",
            	"recycle_3": "m28.22058,93.28644c0.00678,-2.58051 2.31667,-18.40222 5.13495,-35.15953c8.78786,-52.25238 8.91713,-52.48297 20.07468,-35.82898l6.60126,9.85321l19.30534,-9.74535c25.53492,-12.88995 56.00401,-17.65838 84.01221,-13.14781c11.88918,1.91477 24.50447,5.02692 28.034,6.91587c7.00751,3.7502 6.55832,6.97083 -4.61034,33.05528c-6.12129,14.29643 -6.70886,14.70388 -17.2827,11.98577c-17.99704,-4.62608 -47.30141,-3.16897 -61.44969,3.05553l-13.26538,5.83627l9.31132,9.7189c5.12125,5.34554 8.02238,10.51565 6.44702,11.48924c-1.57542,0.97362 -20.7427,2.87124 -42.59392,4.21677c-32.78424,2.01891 -39.72768,1.62653 -39.71874,-2.24516zm168.81314,144.07051l-14.20186,-18.81009l12.93088,-12.50398c13.30882,-12.86928 22.90733,-30.93761 27.13603,-51.08145l2.41319,-11.49524l-13.91847,2.22554c-7.65517,1.22421 -13.96558,1.06514 -14.02313,-0.35333c-0.26878,-6.62247 36.12752,-71.90508 39.66528,-71.14616c5.56261,1.19325 61.9985,50.07314 61.9985,53.6975c0,1.61765 -5.93121,3.88967 -13.18036,5.04884l-13.18039,2.10753l-1.30084,22.476c-1.66846,28.82635 -16.85831,62.09589 -38.00682,83.24434c-8.4704,8.47049 -16.91487,15.4008 -18.76544,15.4008c-1.85062,0 -9.75555,-8.46469 -17.56657,-18.81029zm-128.20031,52.72328c0,-2.07986 2.23119,-8.0961 4.95819,-13.36954c4.94765,-9.56766 4.91901,-9.61411 -13.52617,-21.86105c-28.85884,-19.16116 -50.30965,-53.17105 -57.05687,-90.46291l-2.21202,-12.22588l15.77176,-2.16168c32.51166,-4.45622 32.80855,-4.32152 39.31982,17.83711c4.39381,14.95265 9.79779,23.91347 21.44681,35.56244c8.5651,8.56514 16.76965,14.83324 18.23236,13.92926c1.46265,-0.90396 3.57973,-6.24536 4.70464,-11.86984c1.1249,-5.62448 3.47056,-10.22638 5.21256,-10.22638c3.99942,0 41.66188,59.38374 42.2598,66.63249c0.39931,4.84137 -19.96001,13.22382 -73.01952,30.06421c-3.38333,1.07379 -6.09135,0.25229 -6.09135,-1.84824z",
            	"turn_17": "m187.66985,234.28424l2.06375,-22.20483l-24.28615,-3.86421c-61.48712,-9.78288 -121.75832,-51.26649 -155.31676,-106.90179c-6.02069,-9.98148 -10.05047,-19.59818 -8.95503,-21.37048c2.51272,-4.06578 63.74106,-36.43469 68.91894,-36.43469c2.11224,0 7.18627,5.95309 11.27556,13.22911c17.44035,31.03078 62.57552,63.39609 94.35383,67.65826l12.88387,1.7281l-2.21523,-19.19039c-2.29968,-19.92216 -1.65292,-24.10554 3.72659,-24.10554c3.43987,0 106.12749,76.50481 109.06303,81.25475c2.22696,3.60321 -11.89679,16.9705 -62.46501,59.11911c-21.96555,18.30804 -42.4514,33.28745 -45.52422,33.28745c-4.91821,0 -5.33987,-2.65765 -3.52318,-22.20483z",
            	"turn_reverse": "m298.99997,168.62498c0,-51.43148 -133.41916,-93.12499 -297.99997,-93.12499l0,-74.49999l0,0c164.58081,0 297.99997,41.69347 297.99997,93.12499l0,74.49999c0,42.46484 -91.92749,79.55168 -223.49998,90.16789l0,37.25l-74.49999,-71.54289l74.49999,-77.45709l0,37.25l0,0c88.72033,-7.15858 161.96952,-26.67409 198.62153,-52.91789",
            	"u_turn": "m1.00059,299.00055l0,-167.62497l0,0c0,-72.00411 58.37087,-130.37499 130.375,-130.37499l0,0l0,0c34.57759,0 67.73898,13.7359 92.18906,38.18595c24.45006,24.45005 38.18593,57.61144 38.18593,92.18904l0,18.625l37.24997,0l-74.49995,74.50002l-74.50002,-74.50002l37.25,0l0,-18.625c0,-30.8589 -25.0161,-55.87498 -55.87498,-55.87498l0,0l0,0c-30.85892,0 -55.875,25.01608 -55.875,55.87498l0,167.62497z",
            	"up": "m1.49805,149.64304l148.50121,-148.00241l148.50121,148.00241l-74.25061,0l0,148.71457l-148.5012,0l0,-148.71457z"
            	}
            }
          • dialog_balloon.json
            {"data": {
            	"1": "m0.99786,35.96579l0,0c0,-19.31077 15.28761,-34.96524 34.14583,-34.96524l15.52084,0l0,0l74.50001,0l139.68748,0c9.05606,0 17.74118,3.68382 24.14478,10.24108c6.40356,6.55726 10.00107,15.45081 10.00107,24.72416l0,87.41311l0,0l0,52.44785l0,0c0,19.31078 -15.2876,34.96524 -34.14584,34.96524l-139.68748,0l-97.32507,88.90848l22.82506,-88.90848l-15.52084,0c-18.85822,0 -34.14583,-15.65446 -34.14583,-34.96524l0,0l0,-52.44785l0,0z",
            	"4": "m1,1l49.66667,0l0,0l74.5,0l173.83334,0l0,115.8889l0,0l0,49.66666l0,33.11111l-173.83334,0l-123.68433,97.37498l49.18433,-97.37498l-49.66667,0l0,-33.11111l0,-49.66666l0,0z",
            	"5": "m3.88165,296.34811l58.64952,-105.30074l0,0c-62.13446,-31.76456 -79.86445,-91.6022 -40.96117,-138.24044c38.90255,-46.63797 121.70818,-64.81269 191.29914,-41.98796c69.59094,22.8246 103.19446,79.17835 77.63046,130.19172c-25.56265,51.01335 -101.92546,79.99094 -176.41714,66.94487l-110.20081,88.39255z",
            	"6": "m4.33333,266.6662c0,-1.854 2.23757,-3.35571 5,-3.35571c2.76243,0 5,1.50171 5,3.35571c0,1.85394 -2.23757,3.35565 -5,3.35565c-2.76243,0 -5,-1.50171 -5,-3.35565zm10.25,-24.11072c0,-4.6351 5.59392,-8.38943 12.50001,-8.38943c6.90608,0 12.5,3.75433 12.5,8.38943c0,4.63489 -5.59392,8.38928 -12.5,8.38928c-6.90609,0 -12.50001,-3.75433 -12.50001,-8.38928zm23.75001,-36.55524c0,-12.81482 19.46685,-23.19473 43.50002,-23.19473c24.0331,0 43.49996,10.37991 43.49996,23.19473c0,12.81473 -19.46686,23.19455 -43.49996,23.19455c-24.03317,0 -43.50002,-10.37982 -43.50002,-23.19455zm-37.33334,-104.99994c0,-55.2486 66.67956,-100 149,-100c82.32047,0 149,44.7514 149,100c0,55.24866 -66.67953,100 -149,100c-82.32044,0 -149,-44.75134 -149,-100z",
            	"scream": "m299.67374,132.67729l-35.72574,1.97192l-9.55817,48.04506l-31.60561,-11.61551l-45.83566,36.86661l-17.45096,-21.51509l-146.98414,92.00807l81.6677,-102.60858l-67.83573,-13.33963l21.22697,-19.84731l-46.57336,-36.42733l33.47025,-8.80944l-10.52427,-47.94958l35.08694,5.02536l28.86619,-44.2482l25.5638,17.26465l59.09183,-26.49832l7.92432,24.02253l70.55626,-0.33542l-12.23108,23.15343l59.61954,25.93398l-28.50317,14.93327l29.75409,43.96953z",
            	"thought": "m12,1c-6.094,0 -11,4.906 -11,11l0,147c0,6.09399 4.906,11 11,11l49.15625,0c-2.03143,2.32526 -3.15625,4.84886 -3.15625,7.5c0,11.32597 20.36188,20.5 45.5,20.5c25.13812,0 45.5,-9.17403 45.5,-20.5c0,-2.65114 -1.12482,-5.17474 -3.15625,-7.5l142.15625,0c6.09399,0 11,-4.90601 11,-11l0,-147c0,-6.094 -4.90601,-11 -11,-11l-276,0zm54,199c-13.81215,0 -25,5.37016 -25,12c0,6.62984 11.18785,12 25,12c13.81216,0 25,-5.37016 25,-12c0,-6.62984 -11.18784,-12 -25,-12zm-25,30c-7.73481,0 -14,4.02762 -14,9c0,4.97238 6.26519,9 14,9c7.73481,0 14,-4.02762 14,-9c0,-4.97238 -6.26519,-9 -14,-9zm-24,22c-4.97238,0 -9,2.23756 -9,5c0,2.76242 4.02762,5 9,5c4.97238,0 9,-2.23758 9,-5c0,-2.76244 -4.02762,-5 -9,-5z"
            	}
            }
          • electronics.json
            {"data": {
            	"capacitor": "m292.103577,149.999374l-117.073944,-0.445328m-167.175035,0.445328l116.628588,0m0.44532,-72.035179l11.364601,0l0,144.640358l-11.364601,0l0,-144.640358zm38.244209,-0.569977l11.364594,0l0,144.640297l-11.364594,0l0,-144.640297zm-162.171733,68.98156l6.905184,0l0,6.905212l-6.905184,0l0,-6.905212zm291.101741,0.325241l6.905182,0l0,6.905212l-6.905182,0l0,-6.905212z",
            	"diode": "m180.228439,90.39769l21.70816,0l0,117.211075l-21.70816,0l0,-117.211075zm23.345947,59.602753l88.556381,0m-284.3409,-1.995804l85.541058,0l0,-65.011185l87.251961,66.722031l-87.250778,67.291931l0,-68.720001m-92.331572,-3.917542l6.811423,0l0,6.811447l-6.811423,0l0,-6.811447zm291.20439,2.03891l6.811401,0l0,6.811462l-6.811401,0l0,-6.811462z",
            	"gate_and": "m7.454795,178.082489l67.605378,0m-67.605378,-54.850876l67.605393,0.000015m-0.155602,-30.065033l0,113.750015c194.70015,10.208389 199.234482,-124.687454 0,-113.750015zm217.618942,56.662766l-70.312149,0m-221.397258,-29.817062l6.68369,0l0,6.683685l-6.68369,0l0,-6.683685zm-0.314375,54.532364l6.68369,0l0,6.683685l-6.68369,0l0,-6.683685zm291.95109,-27.976547l6.683685,0l0,6.683685l-6.683685,0l0,-6.683685z",
            	"gate_inverter": "m292.351624,149.998962l-70.506393,0m-0.189026,0a19.883057,19.883057 0 1 1-39.766113,0a19.883057,19.883057 0 1 139.766113,0zm-213.972072,2.405243l69.321826,0l0,-61.05407l101.250404,58.4571l-101.19664,58.840652l0,-56.176727m-76.061115,-3.699677l6.780182,0l0,6.779526l-6.780182,0l0,-6.779526zm291.428455,-2.135864l6.780518,0l0,6.780548l-6.780518,0l0,-6.780548z",
            	"gate_nand": "m8.042537,173.038879l60.699101,-0.672531m-60.699101,-49.879471l61.371335,0m-0.785973,-24.868042l0,104.835098c179.441437,9.408417 183.619827,-114.915443 0,-104.835098zm223.921448,50.643158l-64.591507,0m0.637238,0a11.937837,11.937837 0 1 1-23.87648,0a11.937837,11.937837 0 1 123.87648,0zm-227.445681,-29.373505l6.739111,0l0,6.739143l-6.739111,0l0,-6.739143zm-0.150617,50.613495l6.73911,0l0,6.739151l-6.73911,0l0,-6.739151zm291.47287,-24.654327l6.739105,0l0,6.739151l-6.739105,0l0,-6.739151z",
            	"gate_nor": "m292.610077,150.214462l-69.483139,-0.215668m0.147217,0.215668a12.942393,12.942393 0 1 1-25.884689,0a12.942393,12.942393 0 1 125.884689,0zm-215.590108,29.264374l63.620397,0m-63.620397,-54.805801l65.561368,-0.431335m-20.75433,-33.139984c129.343479,0 143.580387,58.405624 143.580387,58.405624l-0.347778,0c-18.514755,69.097885 -143.580379,58.057999 -143.580379,58.057999c59.7962,-58.405655 0.347775,-116.463623 0.347775,-116.463623zm-51.490408,30.117874l6.644974,0l0,6.645012l-6.644974,0l0,-6.645012zm0.003831,54.852463l6.644983,0l0,6.64502l-6.644983,0l0,-6.64502zm291.530706,-29.571609l6.644989,0l0,6.64502l-6.644989,0l0,-6.64502z",
            	"gate_or": "m7.681484,183.57515l71.7616,0m-71.7616,-60.67144l73.093784,-0.000015m-23.092442,-37.784157c143.186604,0 158.947315,64.65654 158.947315,64.65654l75.817307,0l-76.202316,0c-20.49614,76.493118 -158.94717,64.271667 -158.94717,64.271667c66.195942,-64.656525 0.385136,-128.928207 0.385136,-128.928207zm-56.684011,33.939781l6.677925,0l0,6.677956l-6.677925,0l0,-6.677956zm291.510831,27.410866l6.677948,0l0,6.677948l-6.677948,0l0,-6.677948zm-291.404498,33.607208l6.677927,0l0,6.677917l-6.677927,0l0,-6.677917z",
            	"gate_xor": "m80.450493,91.498093c129.22271,0 143.446312,58.351089 143.446312,58.351089l68.423569,0l-68.770889,0c-18.497391,69.033295 -143.446304,58.003708 -143.446304,58.003708c59.740372,-58.351089 0.347511,-116.354797 0.347511,-116.354797zm-22.576313,4.515259c43.415966,54.530457 0,108.018921 0,108.018921m-50.015199,-26.867355l63.560987,0m-63.560987,-54.7547l63.560987,0m-70.418914,-3.722206l6.82584,0l0,6.825867l-6.82584,0l0,-6.825867zm0.057968,54.832268l6.825839,0l0,6.825867l-6.825839,0l0,-6.825867zm291.170364,-27.096024l6.825836,0l0,6.825867l-6.825836,0l0,-6.825867z",
            	"inductor": "m7.783882,182.663147l59.679306,0c0,0 -30.829735,-67.744125 15.054253,-68.81945c42.462807,-0.995041 37.635605,69.357201 24.194321,69.357201c-13.441284,0 -12.903625,-68.81955 22.043701,-68.81955c34.947357,0 40.323868,68.819366 20.968399,68.819366c-19.355423,0 -11.828323,-68.819366 22.58139,-68.819366c34.409683,0 41.399155,68.81955 19.893112,68.81955c-21.506073,0 -9.67775,-68.81955 24.19429,-68.81955c33.87207,0 29.570831,68.819366 18.280151,68.819366c-11.290665,0 57.528732,-0.537659 57.528732,-0.537659m-291.202282,-3.571106l6.772959,0l0,6.772995l-6.772959,0l0,-6.772995zm291.221844,0.301132l6.772949,0l0,6.772995l-6.772949,0l0,-6.772995z",
            	"junction_1": "m0.99971,146.64024l6.71786,0l0,6.7179l-6.71786,0l0,-6.7179zm7.44043,3.36145l283.11684,0m0.72388,-3.35979l6.71786,0l0,6.7179l-6.71786,0l0,-6.7179zm-145.6413,152.35712l0,-6.71786l6.7179,0l0,6.71786l-6.7179,0zm3.36145,-7.44043l0,-283.11688m-3.35944,-0.72348l0,-6.71786l6.71793,0l0,6.71786l-6.71793,0z",
            	"junction_2": "m0.99971,146.64024l6.71786,0l0,6.7179l-6.71786,0l0,-6.7179zm7.44043,3.36145l121.77922,0c0,-29.3896 38.77921,-31.3896 38.77921,0l122.55841,0m0.72391,-3.35979l6.71783,0l0,6.7179l-6.71783,0l0,-6.7179zm-145.6413,152.35712l0,-6.71786l6.7179,0l0,6.71786l-6.7179,0zm3.36145,-7.44043l0,-283.11688m-3.35945,-0.72348l0,-6.71786l6.71794,0l0,6.71786l-6.71794,0z",
            	"junction_3": "m143.58945,150.00009c0,-3.49425 2.83032,-6.32455 6.32455,-6.32455c3.49423,0 6.32455,2.83031 6.32455,6.32455c0,3.49423 -2.83032,6.32455 -6.32455,6.32455c-3.49423,0 -6.32455,-2.83032 -6.32455,-6.32455zm-142.59006,-3.35985l6.71783,0l0,6.7179l-6.71783,0l0,-6.7179zm7.44043,3.36145l283.11682,0m0.72394,-3.35979l6.71783,0l0,6.7179l-6.71783,0l0,-6.7179zm-145.6413,152.35712l0,-6.71786l6.7179,0l0,6.71786l-6.7179,0zm3.36145,-7.44043l0,-283.11688m-3.35947,-0.72348l0,-6.71786l6.71796,0l0,6.71786l-6.71796,0z",
            	"junction_tee": "m149.914,143.67554zm-148.91461,2.96471l6.71783,0l0,6.7179l-6.71783,0l0,-6.7179zm7.44043,3.36145l283.11682,0m0.72394,-3.35979l6.71783,0l0,6.7179l-6.71783,0l0,-6.7179zm-141.61324,2.91669l-0.66661,-141.11688m-3.35947,-0.72348l0,-6.71786l6.71796,0l0,6.71786l-6.71796,0z",
            	"resistor": "m7.868202,151.620193l82.343018,0l11.393402,-32.392784l18.643684,62.356071l20.71521,-63.165901l18.12587,62.356071l19.679459,-61.546242l19.679443,61.951149l10.875488,-30.368195l82.860886,0m-291.18655,-2.813812l6.844604,0l0,6.844635l-6.844604,0l0,-6.844635zm291.194058,-0.465622l6.844604,0l0,6.844635l-6.844604,0l0,-6.844635z",
            	"source_AC_h": "m7.841724,149.837311l67.250737,0m149.928139,0.389923l67.250793,0m-67.653702,-0.227753a74.615135,74.615135 0 1 1-149.230286,0a74.615135,74.615135 0 1 1149.230286,0zm-126.528297,-1.996506c49.250984,-78.535637 61.230949,87.853104 103.826454,2.662094m-200.917796,-4.522659l6.717863,0l0,6.717896l-6.717863,0l0,-6.717896zm291.36706,0.642181l6.717865,0l0,6.717896l-6.717865,0l0,-6.717896z",
            	"source_DC": "m221.862747,94.98175l0,31.813873m-21.510544,-15.906944l43.020996,0m48.613678,39.407722l-121.593582,0m-162.447085,0l115.809275,0m1.040596,-37.757935l7.284134,0l0,75.963058l-7.284134,0l0,-75.963058zm37.461227,-41.623596l7.284134,0l0,158.169647l-7.284134,0l0,-158.169647zm-161.255614,75.613235l6.954941,0l0,6.954971l-6.954941,0l0,-6.954971zm291.012953,0.175003l6.954956,0l0,6.954971l-6.954956,0l0,-6.954971z",
            	"speaker": "m21.35352,187l77,0m-83.70878,3.11937l0,-6.71786l6.71793,0l0,6.71786l-6.71793,0zm6.70878,-76.11937l77,0m-83.70878,3.11937l0,-6.71786l6.71793,0l0,6.71786l-6.71793,0zm155.70878,-32.61937l115,-83l0,296.5l-115,-82.5l0,-131zm-70.99999,0l70.99999,0l0,131l-70.99999,0l0,-131z"
            	}
            }
          • flowchart.json
            {"data": {
            	"manual_input": "m1,103.64394l298,-30.9037l0,154.51852l-298,0z",
            	"callout_left_right": "m1,150.0006l58.10869,-58.1087l0,29.05434l46.81141,0l0,-87.16304l87.1598,0l0,87.16304l46.8114,0l0,-29.05434l58.1087,58.1087l-58.1087,58.10869l0,-29.05435l-46.8114,0l0,87.16306l-87.1598,0l0,-87.16306l-46.81141,0l0,29.05435l-58.10869,-58.10869z",
            	"card": "m1,60.5l59.5,-59.5l238.5,0l0,298l-298,0l0,-238.5z",
            	"collate": "m0,1l299,0l-149.5,149l149.5,149l-299.00031,0l149.50031,-149l-149.5,-149z",
            	"connector_offpage": "m0.99775,0.99775l297.99984,0l0,238.39982l-149.00002,59.60002l-148.99999,-59.60002l0.00017,-238.39982z",
            	"data_stored": "m50.83397,0.99813l249.16667,0c-27.52219,0 -49.83333,66.78392 -49.83333,149.16604c0,82.38213 22.31114,149.16603 49.83333,149.16603l-249.16667,0l0,0c-27.52219,0 -49.83333,-66.78391 -49.83333,-149.16603c0,-82.38212 22.31114,-149.16604 49.83333,-149.16604z",
            	"data": "m1.00038,249.33351l59.60001,-198.66668l238.40001,0l-59.60001,198.66668z",
            	"decision": "m0.99837,149.99953l148.79352,-102.86476l148.79387,102.86476l-148.79387,102.86476l-148.79352,-102.86476z",
            	"delay": "m1,1l149,0l0,0c82.29044,0 149,66.70957 149,149c0,82.29044 -66.70956,149 -149,149l-149,0z",
            	"display": "m1,149.99924l49.66672,-97.42307l198.66612,0c27.43034,0 49.66716,43.61774 49.66716,97.42307c0,53.80476 -22.23682,97.42308 -49.66716,97.42308l-198.66612,0l-49.66672,-97.42308z",
            	"document_multiple": "m1.00054,45.02563l253.99998,0l0,206.43799c-126.99997,0 -126.99997,78.65668 -253.99998,33.96539zm21.49946,-240.92902l0,-19.5l255,0l0,207l-22.5,1m-210.5,-207l0,-25l255,0l0,207l-21.5,0",
            	"document": "m1.00064,1.00098l298,0l0,242.19891c-149,0 -149,92.28223 -298,39.84915z",
            	"filter1": "m75.5,150l74.5,-149l74.5,149l-74.5,149l-74.5,-149zm0,0l149,0",
            	"or_junction": "m0.99865,149.9991l0,0c0,-82.29043 66.70957,-149 149.00001,-149l0,0c39.51724,0 77.41597,15.69817 105.3589,43.64109c27.94292,27.94292 43.64107,65.84166 43.64107,105.35891l0,0c0,82.29041 -66.70956,148.99998 -148.99997,148.99998l0,0c-82.29044,0 -149.00001,-66.70958 -149.00001,-148.99998zm149.00001,-149l0,297.99998m-149.00001,-148.99998l297.99998,0",
            	"preparation": "m1.00063,150.00006l59.58485,-82.24058l178.75446,0l59.58505,82.24058l-59.58505,82.24086l-178.75446,0l-59.58485,-82.24086z",
            	"process": "m1,51.87891l298,0l0,196.24391l-298,0zm37.25,-196.24391l0,196.24391m223.5,-196.24391l0,196.24391",
            	"punched_tape": "m1.00047,30.80047l0,0c0,16.45808 33.35479,29.8 74.50001,29.8c41.1452,0 74.49998,-13.34192 74.49998,-29.8l0,0c0,-16.45809 33.3548,-29.8 74.50002,-29.8c41.14522,0 74.49998,13.34192 74.49998,29.8l0,238.4c0,-16.45808 -33.35477,-29.80002 -74.49998,-29.80002c-41.14522,0 -74.50002,13.34193 -74.50002,29.80002c0,16.45807 -33.35478,29.79999 -74.49998,29.79999c-41.14522,0 -74.50001,-13.34192 -74.50001,-29.79999z",
            	"sequential_data_storage": "m150,299l0,0c-82.29043,0 -149,-66.70955 -149,-149l0,0c0,-82.29043 66.70957,-149 149,-149l0,0c39.51726,0 77.41599,15.69817 105.3589,43.64108c27.94292,27.94293 43.6411,65.84165 43.6411,105.35892l0,0c0,39.51726 -15.69818,77.41599 -43.6411,105.3589l43.6411,0l0,43.6411z",
            	"sort": "m-0.0038,150.00102l299.00334,0m-299.00334,-0.00002l149.50209,-150.00059l149.50131,150.00059l-149.50131,150.00018l-149.50209,-150.00018z",
            	"storage_internal": "m1,1l297.99997,0l0,297.99997l-297.99997,0zm37.25,-297.99997l0,297.99997m-37.25,-260.74997l297.99997,0",
            	"terminal": "m48.94167,99.12235l202.11729,0l0,0c26.47794,0 47.9425,22.7794 47.9425,50.8792c0,28.09979 -21.46457,50.87918 -47.9425,50.87918l-202.11729,0l0,0c-26.47791,0 -47.9425,-22.77939 -47.9425,-50.87918c0,-28.09981 21.46459,-50.8792 47.9425,-50.8792z",
            	"wave": "m1,37.20809c99.33355,-125.42461 198.66708,125.4246 298.00061,0l0,225.76426c-99.33353,125.42462 -198.66706,-125.42459 -298.00061,0z"
            	}
            }
          • game.json
            {"data": {
            	"cards_clubs": "m107.57338,275.50809c15.10838,-15.77673 27.93053,-34.56763 33.34637,-55.90254c-16.19595,12.31328 -31.05006,32.11845 -53.64258,31.36813c-17.05595,0.97891 -37.37346,0.99548 -49.37947,-13.26945c-26.83,-21.5751 -34.03729,-64.69673 -12.00568,-92.15404c15.07669,-19.82526 41.4039,-28.23172 65.56467,-25.25816c15.22319,-6.45935 -2.97749,-22.81502 -4.80785,-33.02267c-11.33012,-37.02704 15.36169,-81.44029 54.60988,-85.70572c28.15103,-4.0415 55.67099,14.18231 69.44571,37.83293c7.4856,16.54877 3.58533,35.33045 1.83887,52.49866c-5.88113,8.62766 -20.94342,29.50022 0.55099,27.85616c21.2518,-0.33633 43.69397,5.90277 57.70761,22.8026c20.49747,22.76067 22.37766,60.37286 1.7551,83.63007c-10.90869,14.16582 -27.2782,25.50356 -45.80551,24.87234c-18.13391,1.83067 -37.77023,-2.10338 -50.62924,-15.92061c-5.48438,-3.84309 -18.92297,-18.36311 -18.91833,-15.17883c13.43222,27.98354 28.62112,57.04413 55.49167,74.38477c9.60062,7.71954 -14.62323,2.41226 -20.4874,3.98563c-35.53012,0.0314 -71.06009,0.06342 -106.59021,0.09497c7.31842,-7.63818 14.6373,-15.27603 21.9554,-22.91422z",
            	"cards_diamonds": "m34.92883,153.9321c25.56111,-56.62673 71.64644,-104.95768 110.85236,-152.92286c45.60773,30.78102 85.01025,98.49872 119.29071,145.66264c-30.57587,54.55344 -74.58923,104.23671 -114.23947,153.1615c-42.74368,-44.7616 -79.29648,-95.90262 -115.90359,-145.90128z",
            	"cards_hearts": "m106.76112,245.09012c-77.74644,-57.80281 -105.54389,-94.36783 -105.76917,-139.13003c-0.20544,-40.80623 34.10907,-80.19025 69.67002,-79.96313c17.75755,0.11364 55.84863,15.13257 69.33681,27.33919c6.79614,6.1504 10.01512,5.54391 25.146,-4.73779c41.17987,-27.98239 81.39243,-28.56973 107.43585,-1.56907c41.62292,43.15273 34.04501,94.68497 -21.78392,148.13782c-29.68187,28.41864 -94.50056,78.8349 -101.35565,78.8349c-2.08591,0 -21.29187,-13.01038 -42.67994,-28.9119z",
            	"cards_spades": "m92.84135,287.13989c18.3756,-17.73279 31.81261,-40.18849 43.07161,-62.94162c6.87787,-9.075 0.36623,-17.01425 -9.00183,-9.3188c-24.07579,16.07495 -56.84848,21.58751 -82.91551,6.92194c-29.46779,-15.23779 -42.75618,-51.47162 -36.07021,-83.04361c4.23415,-31.99545 27.52112,-57.07481 52.80524,-75.08997c29.04437,-20.7771 60.40868,-38.61331 86.95355,-62.67224c11.08365,0.22219 19.42508,17.61496 31.35349,22.21747c31.67316,23.59131 69.20874,40.95643 94.15042,72.50237c12.60098,17.9752 19.78281,40.10946 20.58459,61.98948c-3.83926,29.67093 -21.5314,60.96272 -52.04169,69.41241c-26.37521,7.98038 -53.51129,-2.14038 -76.49545,-15.01619c-2.80743,-0.60251 -13.10471,-8.7151 -9.02362,-2.41039c13.74066,28.19803 28.79581,56.19804 50.59952,79.09325c1.28156,2.89285 11.33243,9.75613 5.98334,9.64709c-44.76935,0 -89.53856,0 -134.30794,0c4.78471,-3.7637 9.5696,-7.5275 14.35449,-11.2912z",
            	"chess_bishop": "m61.92021,296.91153c0.43627,-9.82327 20.22808,-4.98053 9.33225,-14.55078c3.63447,-11.80536 14.91982,-19.66748 21.741,-29.79436c5.22913,-8.62125 17.00826,-19.01086 11.31252,-29.67047c-10.46021,-5.58662 -7.49181,-18.00824 5.30239,-15.28014c8.2272,-7.58801 8.79371,-20.26302 11.57766,-30.59467c2.52694,-12.36574 4.07327,-24.95554 3.66998,-37.5896c-14.99698,0.03661 -30.27584,-0.68196 -44.73978,-4.74928c2.8019,-11.20453 20.86148,-8.79659 28.26084,-15.67982c-6.87532,-6.18329 13.89957,-5.56496 8.46355,-15.34472c-0.37302,-11.20033 -9.19685,-14.44135 -16.26585,-22.60765c-9.44371,-12.76132 5.36173,-25.51221 13.58463,-34.13964c9.16566,-9.37672 19.64847,-19.36716 22.45389,-32.62941c-3.77451,-3.10155 -12.3967,-7.54239 -3.59866,-11.78228c12.01596,-2.03703 24.83499,-2.28521 36.61118,1.05654c7.81644,7.61585 -11.93045,8.03119 -3.43417,17.63365c10.07373,12.07176 -3.50795,18.30174 -11.52704,25.27969c-4.66763,5.89621 -18.59915,13.67189 -16.20224,19.78346c13.63968,-0.47554 21.5871,-13.67976 31.31615,-21.49704c10.67101,-13.68708 20.99446,8.43092 27.81822,15.94714c8.40642,11.39094 2.60674,26.70086 -10.05556,31.59287c-6.28001,6.46729 -10.44972,24.88914 4.57674,22.14657c8.72636,3.17196 -8.52979,3.51371 1.37608,6.446c6.58298,2.52787 32.25821,8.30554 18.1142,16.0547c-12.00471,2.71368 -24.40523,2.6017 -36.6002,1.50584c-0.75204,18.52477 1.89484,36.97644 7.35446,54.6958c1.35513,5.04123 2.71027,10.08244 4.06541,15.12361c6.52129,-0.129 19.98573,-1.55484 13.76321,9.18311c-13.08994,7.21928 -5.0789,22.41203 2.17738,31.05447c8.99446,11.37192 22.40833,22.01788 22.98288,37.58719c3.59734,2.14404 15.56946,8.03415 12.10645,12.64545c-57.30759,-0.2937 -114.6481,0.84897 -171.9265,-1.25046l-1.98901,-0.18246l-1.62205,-0.39337l0,0z",
            	"chess_king": "m75.6993,294.60599c-8.08068,-9.43317 12.65705,-9.68567 9.39906,-20.14252c5.95673,-13.85672 21.44485,-22.24414 23.72572,-37.99019c-6.28166,-4.37628 -9.89445,-14.96013 2.0899,-13.70361c8.78859,-6.61539 7.6902,-20.15297 10.33321,-30.0876c2.47588,-16.03471 3.03656,-32.26408 4.10001,-48.43053c-10.16894,-0.78108 -20.58942,-0.23701 -30.49778,-2.84268c0.28501,-10.75136 20.44619,-6.62604 21.3638,-16.77121c14.65907,-0.2649 0.81196,-22.15992 -5.15776,-27.38371c-7.64118,-8.81222 -12.7306,-22.72323 -6.92168,-33.60618c8.30865,-5.52043 27.09519,-2.1601 26.24604,-16.66769c-5.65058,-3.22095 -12.82484,-1.17552 -19.15805,-1.74514c0.38948,-6.7649 0.77895,-13.52979 1.16843,-20.29469c8.37558,-0.64424 16.75118,-1.28853 25.12676,-1.93283c-4.25133,-4.41846 -10.61392,-7.6702 -12.20608,-13.92034c5.41558,-8.90246 18.46751,-8.1166 27.81776,-8.03243c9.09207,-0.62713 25.66919,5.43749 13.27614,15.20592c-1.00447,2.39887 -10.78024,8.36352 -4.73895,7.71326c7.73515,0 15.47028,0 23.20541,0c-0.02223,6.6133 -0.20001,13.29232 1.35312,19.76423c-5.90448,4.39723 -25.05112,-3.75612 -19.59946,9.81149c6.13853,5.67249 15.53992,5.52279 23.32581,8.02098c4.54138,0.45371 8.15405,1.63713 6.5175,6.94557c0.85359,9.85596 -1.63307,19.77049 -8.40776,27.25217c-4.79567,7.80693 -15.56667,17.58031 -12.3781,26.61691c6.03265,-0.98199 10.87871,2.97905 6.06032,7.43356c4.94479,3.66121 22.35728,2.82278 18.59119,11.98875c-8.82205,2.92029 -18.29916,1.70366 -27.45192,2.00166c2.43703,25.01987 5.80666,50.04211 11.43709,74.54305c3.28979,5.43672 16.35808,9.61523 5.63309,16.70296c-4.00256,13.19919 8.78183,23.08223 16.81097,31.55379c8.82797,6.61176 4.54482,19.91519 17.0338,22.03693c9.83562,9.52774 -13.5036,9.27408 -19.49568,9.29486c-39.66827,0.42773 -79.37933,1.02615 -119.03208,-0.25211c-3.24605,-0.40967 -7.25645,-0.31595 -9.56982,-3.08264z",
            	"chess_knight": "m100.17753,299.2356c-10.0382,0.34137 -24.72987,-4.84531 -14.46609,-16.41525c11.17445,-4.40472 -1.98608,-19.00409 9.21265,-25.88123c8.98889,-12.79953 21.20518,-24.48807 24.89179,-40.11865c-0.57252,-10.60066 -13.22608,-16.87427 -7.18922,-28.60765c-5.92265,-18.77635 -4.55389,-40.38806 6.25748,-57.26643c9.18032,-15.67659 20.32635,-32.28713 19.15084,-51.25797c-11.5139,4.80804 -23.70148,9.0206 -36.37307,6.83708c-11.91311,-1.1064 -22.59742,8.54017 -34.74928,3.29494c-12.31807,-2.55921 -19.64501,-19.02957 -10.4606,-28.65753c10.03679,-8.57325 24.78339,-8.84916 34.35549,-18.41713c12.62932,-10.46186 24.31081,-24.61204 41.71716,-26.46155c7.69322,-1.76131 10.99294,-9.49197 15.25148,-15.2854c3.53894,9.18849 9.69408,17.31353 18.95801,21.387c18.83824,10.9118 23.5276,33.98066 30.47462,52.94444c5.13654,14.85179 9.41592,30.35814 18.01733,43.6171c0.09145,6.36343 -9.56343,9.05308 -3.04225,16.51302c3.39153,20.2325 3.53752,40.95071 3.23686,61.41966c-5.72005,10.01691 -10.93028,21.19722 -3.29993,32.69295c5.09689,14.05096 17.7905,23.26645 24.03563,36.52565c3.53024,6.8656 -6.88226,16.83319 6.09091,15.10654c11.84755,6.2681 2.28101,21.56821 -9.50232,17.11713c-44.15834,1.12289 -88.41394,2.24417 -132.5675,0.9133z",
            	"chess_pawn": "m76.17518,297.98557c-10.50418,1.59836 -25.59558,-8.37918 -12.29734,-17.44669c11.25366,-5.8967 0.45475,-21.25174 12.35514,-28.71019c12.10069,-16.52 24.98341,-33.40712 31.01369,-53.22789c-0.84142,-9.49573 -19.64921,-25.21422 -0.595,-28.29408c15.7114,1.82648 9.96503,-21.69583 15.39529,-31.88779c3.26528,-15.46995 5.63882,-31.19783 5.05293,-47.04268c-10.94164,-0.30554 -22.10724,0.96841 -32.83411,-1.63306c-6.84238,-8.98132 15.45903,-13.45317 19.13895,-21.55999c7.72121,-11.65172 -11.3031,-24.52544 -3.15941,-38.29919c5.20168,-20.85055 29.26575,-34.36854 49.62741,-26.73076c21.08499,5.46792 36.67119,30.37529 26.64961,51.09357c-0.80009,3.99703 -7.062,9.17959 -4.97066,12.36269c9.12987,6.33601 19.70087,11.85771 25.48528,21.64108c-8.18987,5.93826 -21.89375,1.4159 -32.1122,4.23674c-9.29645,8.24593 -0.11353,25.10609 0.36266,36.41936c2.90009,12.9261 5.46037,25.96617 8.78381,38.77452c6.98657,2.72525 21.33679,5.88095 13.4649,17.20207c-11.22217,9.11032 -5.7289,23.62137 0.60231,33.84465c7.87996,15.78793 21.40668,27.84862 29.69345,43.27188c3.07736,7.12057 -7.92374,19.7316 5.78708,16.78259c14.86404,3.15744 5.96938,23.76761 -7.3875,18.8981c-49.21407,1.73288 -98.52922,2.43631 -147.74446,0.51953l-2.31185,-0.21448l0,0z",
            	"chess_queen": "m59.54884,298.46313c-11.18457,2.51251 -19.80814,-14.30008 -5.94004,-16.129c12.20336,0.23074 -3.0349,-11.94995 7.98012,-16.05304c12.67021,-12.36537 25.23749,-25.26018 33.3575,-41.17609c-4.09126,-5.42482 -10.84344,-10.60782 -9.96117,-18.03085c7.964,-2.71161 19.82806,-0.87375 20.29981,-13.44502c7.24239,-22.68985 9.1741,-46.67986 10.76167,-70.3136c-7.99255,-6.33596 -24.45116,-0.33371 -35.62089,-3.56097c-16.94488,-4.5746 6.31873,-13.33291 13.78075,-12.6113c6.70493,0.01006 16.63324,-4.12222 5.41084,-7.2804c9.46686,-0.43687 23.08297,-12.44518 7.51486,-16.77373c11.54188,-8.28655 2.64816,-26.31929 -2.17102,-36.68976c-7.265,-12.52285 -19.21146,-21.59242 -32.71435,-26.42871c-2.18616,-12.77 18.63421,-8.99565 27.07909,-9.65835c12.78728,0.48775 25.82639,-0.15282 36.96732,-7.11507c15.05278,-6.96464 27.8495,4.65901 41.61934,7.11611c13.92807,0.89699 28.41634,-2.50577 41.97807,1.44028c4.20209,2.98911 11.18788,7.71034 2.77457,9.97613c-16.06789,8.94404 -31.07338,22.15693 -35.10127,40.92605c-6.0766,10.44077 4.6955,19.50048 -5.15381,26.98807c-0.10249,8.80961 22.85634,10.04067 10.00395,14.37878c8.80815,4.77542 27.69864,1.76332 29.62625,12.3696c-7.99612,6.2903 -19.2092,3.80788 -28.79007,4.39512c-3.2489,1.10706 -11.41316,-2.70125 -10.17032,2.89742c-0.6366,25.08775 5.87923,49.75521 12.1806,73.83221c0.00804,11.79608 29.09497,5.10777 12.92737,18.49597c-11.94247,10.28146 5.56685,24.68452 11.63272,33.82986c8.25099,10.03221 22.89711,15.11021 21.67468,29.8362c8.40468,0.60507 18.40166,13.69095 6.78131,16.95151c-62.8902,1.31946 -125.82766,2.22778 -188.72791,1.83258z",
            	"chess_rock": "m70.40736,299.11804c-15.60727,2.87628 -15.90823,-19.81082 -1.8931,-20.53482c-4.2011,-9.73361 -0.98556,-21.67557 5.22356,-30.68398c8.90442,-15.05035 22.29623,-30.00999 19.52936,-48.8515c-0.95786,-9.8022 -13.10349,-27.37677 5.72565,-24.85997c5.09087,-9.77498 2.13017,-24.16621 5.9483,-35.39389c3.33424,-21.28385 10.75552,-43.9948 2.86147,-65.09612c-4.97705,-11.23243 -17.62387,-18.62589 -16.26645,-32.35733c-1.42947,-13.39034 -0.95647,-26.88279 0.60455,-40.23392c6.07738,0.50975 12.84039,-1.27954 18.38155,1.475c-0.04153,12.96106 12.26991,10.08973 10.7935,-0.92486c3.23881,-1.28251 8.60017,-0.18413 12.6562,-0.55014c18.03256,0 36.06522,0 54.09778,0c-2.06311,7.51434 3.5195,17.19948 10.5887,8.35272c-1.93379,-11.75267 14.25911,-7.86334 10.37854,2.24694c0.22855,13.39515 1.87041,27.25403 -1.89201,40.29753c-6.12787,5.2086 -6.22449,15.45995 -13.90137,21.60233c-6.16908,11.51656 -3.45045,25.43306 -2.7644,37.9428c2.61279,18.51363 6.92676,36.79671 8.00221,55.52328c-0.76923,10.18126 20.18948,7.18474 11.15244,19.71645c-9.87662,8.41151 -4.0954,22.61668 -0.18413,32.66171c7.71916,17.36203 23.99019,32.95758 21.5343,53.32025c-1.94743,8.89606 14.16618,5.88821 9.97758,17.34372c-0.12151,14.11871 -21.10172,5.04239 -30.39526,8.00793c-46.7146,0.56656 -93.44374,1.44144 -140.159,0.99585z"
            	}
            }
          • math.json
            {"data": {
            	"divide": "m150,0.99785l0,0c25.17819,0 45.58916,20.41097 45.58916,45.58916c0,25.17821 -20.41096,45.58916 -45.58916,45.58916c-25.17822,0 -45.58916,-20.41093 -45.58916,-45.58916c0,-25.1782 20.41093,-45.58916 45.58916,-45.58916zm0,296.25203c-25.17822,0 -45.58916,-20.41095 -45.58916,-45.58917c0,-25.17819 20.41093,-45.58916 45.58916,-45.58916c25.17819,0 45.58916,20.41096 45.58916,45.58916c0,25.17822 -20.41096,45.58917 -45.58916,45.58917zm-134.06754,-193.71518l268.13507,0l0,91.17833l-268.13507,0z",
            	"equal": "m0.99915,31.03476l297.3767,0l0,95.17349l-297.3767,0zm0,47.58677l297.3767,0l0,95.17349l-297.3767,0z",
            	"minus": "m0.99887,102.39503l297.49445,0l0,95.2112l-297.49445,0z",
            	"not_equal": "m40.81188,62.2131l103.7978,0l22.27972,-61.2131l65.67503,23.90375l-13.5795,37.30935l40.20317,0l0,69.88993l-65.64099,0l-12.71893,34.94495l78.35992,0l0,69.88991l-103.79779,0l-22.27972,61.21309l-65.67503,-23.90378l13.57949,-37.30933l-40.20319,0l0,-69.88991l65.64102,0l12.71894,-34.94498l-78.35995,0z",
            	"times": "m1.00089,73.36786l72.36697,-72.36697l76.87431,76.87368l76.87431,-76.87368l72.36765,72.36697l-76.87433,76.87431l76.87433,76.87431l-72.36765,72.36765l-76.87431,-76.87433l-76.87431,76.87433l-72.36697,-72.36765l76.87368,-76.87431l-76.87368,-76.87431z",
            	"plus": "m1.00211,102.40185l101.39974,0l0,-101.39975l95.45412,0l0,101.39975l101.3997,0l0,95.45412l-101.3997,0l0,101.3997l-95.45412,0l0,-101.3997l-101.39974,0z"
            	}
            }
          • misc.json
            {"data": {
            	"3_ways": "m1,159.61292l52.87097,-52.87097l0,26.43549l69.69355,0l0,-79.30646l-26.43549,0l52.87096,-52.87097l52.87097,52.87097l-26.43549,0l0,79.30646l69.69356,0l0,-26.43549l52.87096,52.87097l-52.87096,52.87097l0,-26.43549l-192.25807,0l0,26.43549l-52.87097,-52.87097z",
            	"3D_plane_1": "m1,187.25l74.49999,-74.5l223.49998,0l-74.5,74.5l-223.49997,0z",
            	"3D_plane_2": "m112.75,75.50002l74.5,-74.50002l0,223.50002l-74.5,74.49998l0,-223.49998z",
            	"babe": "m299.04794,205.18787c-3.77606,12.02469 -14.23288,15.70245 -23.42029,7.51477c-4.99579,-3.63025 -15.93668,-4.01721 -8.27643,4.11765c4.3663,3.89154 12.96597,18.43826 2.6701,7.63031c-6.72076,-9.88528 -21.45963,-10.97299 -26.80637,-21.01428c-0.7126,-12.09052 -19.01982,-9.85156 -28.21417,-13.29294c-7.97734,0.2787 -20.34282,-8.29872 -23.22426,-8.2877c7.17442,8.54059 6.05238,22.25063 13.10196,29.89879c9.38933,2.61444 12.97119,14.02899 0.81691,15.99643c-14.79422,5.33719 -12.22833,-12.63193 -20.04561,-20.07751c-5.76567,-2.6597 -0.17117,23.97388 -5.6981,17.70459c0.14073,-11.08301 -5.26385,-21.19345 -7.43376,-31.72055c3.66939,-3.90994 3.24513,-15.0824 -1.24792,-6.28702c-9.32401,15.52066 -21.53839,29.02148 -33.42717,42.58749c-12.32529,3.3429 -25.61986,1.75922 -38.28926,0.99091c-13.33909,0.21539 -16.41985,-23.40515 -24.5597,-24.14911c-1.69956,6.7645 0.04348,10.7413 3.54543,14.16528c-5.43895,6.35352 -17.0083,4.24969 -24.32439,1.67859c-12.99512,4.18167 4.10523,-7.37332 9.39456,-5.37735c0.12955,-9.23239 1.69711,-21.43146 -1.15234,-30.31955c-4.26376,-4.21536 -13.54346,-25.27448 -12.61225,-10.56541c-2.43563,17.92097 -10.72475,34.53096 -12.64814,52.59737c-1.6411,10.13943 -15.83897,5.33594 -23.08624,5.82672c-7.30112,2.27881 -6.50991,0.30469 -13.11051,0.69199c7.01961,-9.43863 23.73587,-3.27213 28.50491,-13.30713c2.12957,-14.98691 1.05568,-30.67914 6.12082,-45.11276c-2.11474,-14.92252 -6.78208,-29.69904 -6.85915,-44.79436c2.37534,-9.86703 8.15515,-18.85688 7.95601,-29.33565c4.35726,-11.70351 7.18935,-24.90283 15.98966,-34.19202c9.32926,-10.04192 23.95938,-2.34001 28.82026,8.23518c5.23969,11.5593 -2.89557,23.16132 -3.7411,34.79802c10.97217,2.97472 2.07053,18.22128 16.21945,16.77118c11.11885,1.02463 7.90206,16.12445 0.58741,20.71976c-0.2656,7.05571 8.13246,16.23514 6.20955,25.48418c5.50479,6.05925 12.30074,9.05171 12.7784,-1.61943c3.7646,-14.17346 5.15414,-29.11295 11.81579,-42.45001c2.65157,-10.67883 13.6115,-24.48097 25.27724,-15.69678c10.81068,5.92413 13.54153,23.94177 22.32231,28.34891c10.75034,-9.00977 20.01573,4.53285 28.83136,9.38853c13.27853,7.35518 24.98924,17.12993 37.79256,25.23851c13.37863,6.81644 27.61211,12.28633 40.07347,20.72394c8.47791,4.65475 17.41223,-4.71762 19.34897,6.49048zm-149.77098,-49.39249c-1.45267,7.65393 4.38054,3.60388 0,0z",
            	"bevel": "m24.5,277l-24,23m276,-22l23,22m-23,-274l23,-24m-275,23l-23,-22m23,21.5l252,0l0,252l-252,0l0,-252zm-23.5,-23.5l299,0l0,299l-299,0l0,-299z",
            	"bone": "m273.3559,119.27242c-11.58661,5.90293 -23.89537,9.95385 -36.67676,12.27164c-53.42084,0.2984 -105.13121,0.41397 -158.74251,2.97562c-14.28426,-2.65407 -30.58815,0.18161 -42.82426,-9.13783c-9.06827,-7.25944 -28.17529,-2.4415 -25.05096,11.36483c6.17649,14.08824 -14.61965,21.70474 -7.59176,36.00003c6.11589,14.67987 24.54805,9.02721 35.59484,4.1729c20.29636,-4.79665 40.55842,-9.8537 60.92737,-14.38416c42.52868,-4.82219 82.54949,-1.83121 124.59118,1.02063c11.68694,2.54654 23.55803,4.03351 35.45654,5.38187c10.1839,0.16006 18.34979,7.46698 27.92017,8.65919c12.6539,-1.22533 16.41983,-19.19981 7.59747,-27.17406c-13.18918,-8.72406 6.75436,-24.14882 -8.14166,-31.38885c-4.25287,-2.31086 -8.733,-0.75754 -13.05966,0.23817z",
            	"chord": "m277.04315,255.07486c-47.63342,47.63342 -121.3194,57.33392 -179.65791,23.65366c-58.33851,-33.6824 -86.78111,-102.34741 -69.34571,-167.41564c17.43547,-65.06779 76.39998,-110.31287 143.76268,-110.31287l105.24094,254.07486z",
            	"circle_band": "m1,224.5l0,0c0,-82.29044 66.70957,-149 149,-149c82.29042,0 149,66.70956 149,149l-74.5,0c0,-41.14522 -33.3548,-74.5 -74.5,-74.5c-41.1452,0 -74.5,33.35478 -74.5,74.5z",
            	"circle_pie": "m299,150l0,0c0,82.29044 -66.70956,149 -149,149c-82.29044,0 -149,-66.70956 -149,-149c0,-82.29043 66.70956,-149 149,-149l0,149z",
            	"cube": "m30.42785,1.56129l-29.42785,29.42785l0,268.21907l264.28937,0.68124l33.35693,-30.10974l0,-268.21843l-268.21845,0zm236.46521,28.94674l0,269.42122m0,-269.42122l33.35693,-29.50804m-33.35693,30.791l-265.57233,-1.28296",
            	"dagger": "m1.57422,47.21264c-2.775,14.24454 5.08469,27.79975 11.2199,40.10517c13.07098,21.70464 28.2358,42.59465 47.26681,59.46329c12.98537,10.6889 24.68548,22.99878 39.38902,31.4678c19.22253,12.95224 39.86254,23.55869 61.26455,32.3793c15.9138,6.93546 32.60274,11.85577 49.65401,15.08282c4.95967,1.28564 18.82625,4.91663 10.19991,-3.60251c-7.15544,-3.02133 -14.76756,-5.22583 -21.96236,-8.37695c-34.92769,-14.34082 -72.04247,-26.94104 -100.21951,-53.10463c-4.66899,-6.20064 8.95855,3.3492 11.3067,5.96803c23.50703,16.73581 50.36192,27.95749 76.84653,39.04178c13.47301,4.46384 28.20039,13.97903 42.51408,7.22675c12.36502,-4.72467 -2.95702,-5.44891 -8.42033,-7.24844c-24.28337,-6.90491 -48.85286,-13.54227 -71.13893,-25.76019c-12.72568,-4.65573 -23.42126,-13.22678 -34.85331,-20.29132c-12.35065,-8.53128 -23.65424,-18.49934 -35.67798,-27.49634c-7.86864,-5.96642 -15.68669,-11.98865 -22.20108,-19.46664c-11.01625,-11.02383 -21.70009,-22.36108 -31.68482,-34.33246c-6.52307,-7.36439 -13.86146,-14.10685 -18.44664,-22.93894l-5.05655,-8.11652zm256.45175,139.13108c-1.50562,-0.04745 -3.06,0.28214 -4.36211,1.15021c-9.72246,4.86124 -7.63908,13.88922 -13.19478,20.83386c-4.16678,5.55569 -9.028,8.33356 -15.97261,10.41693c1.38892,2.77783 4.16675,6.94461 4.16675,10.41693c0,7.63907 -9.02798,14.58368 -15.97261,13.88922c-2.77786,-0.69446 -9.028,-4.16678 -11.11139,0c-0.69446,1.38895 -0.69446,2.77786 0,3.47232c0,2.77786 3.47231,4.16678 6.25015,5.55569c7.63908,2.08337 15.97263,-0.69446 22.22279,-4.86124c4.86122,-2.77783 8.33353,-7.63907 9.72246,-13.19479l1.38892,-9.02798c0.69446,-2.77783 3.47232,-3.47232 6.94463,-8.33353c4.16676,-5.55569 8.33354,-15.2782 13.88924,-19.44495c2.08337,-1.38892 4.16675,-2.0834 6.94461,-2.77786c-1.38892,-2.08337 -2.77786,-3.47229 -4.16678,-5.55566c-1.38892,-0.69449 -2.77783,-2.0834 -4.16675,-2.0834c-0.78128,-0.26041 -1.6792,-0.42728 -2.58252,-0.45575zm29.4061,26.21594c-2.61084,-0.02899 -5.33868,0.54254 -8.07312,1.32382l5.55569,3.47232c-1.38895,2.77783 -4.86121,8.33353 -4.16678,11.80585c0.69449,6.94461 10.41693,6.94461 14.58371,2.77783c4.86124,-5.55569 4.86124,-13.88922 -2.08337,-18.056c-1.82297,-0.91147 -3.78549,-1.30127 -5.81613,-1.32382zm-13.39011,3.40723c-0.54364,0.00192 -1.07498,0.00705 -1.60593,0.0217c-3.8486,0.21091 -7.69568,0.50116 -11.54541,0.67276c-2.41867,0.03116 -4.88754,-0.00473 -7.22676,0.69446c-3.17285,2.02515 -5.29396,5.38272 -6.53229,8.87607c-0.16666,0.50345 -0.30807,1.02072 -0.41234,1.54083c3.86218,1.74924 8.17189,1.5618 12.30499,1.41064c2.50439,-0.06696 5.00949,0.24561 7.50888,0.36893c1.7876,0.07916 3.57104,0.32327 5.36038,0.26044c2.19412,-0.07278 4.22598,-1.3168 5.38205,-3.16849c0.99927,-1.58255 1.9447,-3.21933 2.56085,-4.99146c0.49768,-1.59048 0.5896,-3.80087 -1.06339,-4.75272c-1.43857,-0.79446 -3.10013,-0.93906 -4.73105,-0.93317zm2.53915,15.9726c-0.69449,0.69446 -1.38892,0.69446 -2.0834,1.38892c-0.69446,3.47232 8.33356,11.80588 9.72247,4.16678c-3.47232,-1.38892 -5.55573,-2.77786 -7.63907,-5.55569z",
            	"diamonds": "m79.28394,70.5173l69.51914,-69.51918l69.53062,69.51918l-69.53062,69.5193l-69.51914,-69.5193zm-78.28265,78.73502l69.53064,-69.51916l69.51917,69.51916l-69.51917,69.53081l-69.53064,-69.53081zm158.04381,1.41991l69.53076,-69.50788l69.50775,69.50788l-69.50775,69.53059l-69.53076,-69.53059zm-78.26005,78.74646l69.50779,-69.51927l69.53087,69.51927l-69.53087,69.5197l-69.50779,-69.5197z",
            	"dog": "m244.35188,22.54387l-69.54898,69.54889c-119.32899,0.00291 -120.2569,-0.00142 -121.18423,0c-10.16035,0.01348 -20.31404,-0.04446 -30.47281,0.1654c-17.41192,-3.13311 -29.41997,20.08429 -17.10143,32.59326c9.91919,10.04415 24.91881,5.84701 37.58711,6.70858c0.082,39.19679 0.15858,78.39276 0.24066,117.58955c-1.93424,11.60912 7.01076,23.37389 18.92138,24.38115c10.04872,1.3252 21.64701,-4.10141 24.54638,-14.3645c2.0378,-20.77086 0.69009,-41.75818 1.06802,-62.62978c15.7105,0 58.3028,0.55273 93.34407,0.94731c0.05244,10.48698 0.11156,36.08763 0.16484,43.1525c-0.20064,9.60797 -0.94731,36.79358 17.44778,36.82019c18.39429,0.02664 19.96759,-19.29745 19.74867,-23.16328c-0.13904,-5.1078 0.14149,-42.99934 0.54108,-56.44814c2.24173,0.01166 4.87888,0.02997 6.54291,0.02997c-0.00998,-0.00999 -0.01997,-0.01997 -0.02995,-0.02997c0.10487,0.06078 0.2106,0.11987 0.31549,0.18065c0.19894,-16.80684 -0.38959,-50.0226 -0.04497,-66.82692c15.38005,-0.19313 30.76425,-0.09573 46.14514,-0.13486c13.52618,3.45377 34.10559,-4.10139 23.59946,-20.81667c-16.37396,-18.52205 -34.58011,-35.37009 -51.83061,-53.07936l0,-34.62398z",
            	"frame_half": "m1,1l297,0l-98.99899,98.99902l-99.00199,0l0,99.00198l-98.99902,98.99901z",
            	"hand_stop": "m136.25574,297.49808c-29.33714,-5.08954 -54.45634,-27.86633 -62.06976,-56.71431c-3.62096,-14.72525 -1.50079,-30.17319 -2.21442,-45.21799c-0.13461,-38.62221 -0.20337,-77.24464 -0.30453,-115.86696c3.44471,-11.98872 17.98409,-18.29414 29.04424,-12.36688c0.96214,-3.14931 0.25692,-8.79729 0.59418,-12.8885c-1.96137,-11.24498 6.05913,-22.68389 17.70836,-23.44487c6.68523,-0.04347 14.68906,5.03699 11.64235,-6.21321c-2.06573,-11.58701 7.02885,-24.78486 19.46753,-23.71677c11.8866,-1.10308 20.91313,10.99307 19.47894,22.20545c0.55293,6.69356 15.04739,-4.38583 20.11427,3.0555c6.46245,3.83537 10.88301,11.15349 9.66263,18.71955c0.37462,20.72639 -0.50464,41.58417 0.94255,62.21075c10.62856,-5.38028 25.7729,1.23052 27.94981,13.06696c-0.24077,36.77421 0.61372,73.57438 -0.64664,110.32743c-4.27835,37.80429 -40.23309,69.77301 -78.61711,67.50256c-4.25351,0.01132 -8.54422,0.05313 -12.75241,-0.65872zm26.24695,-10.04156c32.22029,-5.44516 57.56776,-36.59567 55.75252,-69.35173c0.24638,-31.65953 1.24834,-63.36566 0.07516,-95.00381c-0.74966,-11.56753 -19.92574,-8.76712 -18.68594,1.90652c-0.00584,23.46449 -0.01172,46.92897 -0.01762,70.39346c-5.97046,6.15695 -16.65688,2.44864 -23.81619,7.45261c-15.91585,6.94403 -26.02902,23.94809 -26.37592,41.0688c-8.5842,13.31046 -12.47054,-8.35147 -7.54663,-15.48785c5.69263,-21.52615 25.72418,-37.58736 47.72688,-39.6965c-0.18001,-49.52237 0.46608,-99.06258 -0.57811,-148.57061c-6.22968,-14.02401 -23.68619,-1.72364 -19.04016,10.55674c-0.45773,37.44105 -0.04761,74.89084 -0.68825,112.32923c-4.16106,6.65674 -12.04573,0.3437 -9.47389,-5.79948c-0.17776,-46.90031 -0.35556,-93.80062 -0.53333,-140.70093c-3.33864,-8.28292 -18.12991,-6.98883 -18.3627,2.10197c-0.18286,48.40011 -0.36572,96.80021 -0.5486,145.20032c-3.89212,5.48285 -11.88664,0.71593 -9.73376,-5.26897c-0.14377,-36.45805 0.40013,-72.93186 -0.55034,-109.37686c-0.24316,-10.84745 -18.40633,-10.5788 -18.64873,-0.51889c-0.36327,37.37112 0.09734,74.76224 -0.99649,112.11712c1.02982,9.51479 -12.37218,4.97615 -9.28424,-2.22137c-0.16375,-25.39479 0.44627,-50.81747 -0.58949,-76.18918c-6.1088,-15.65501 -24.37704,-2.73073 -19.28278,10.2811c0.06127,45.03139 -0.41048,90.08521 0.72834,135.10263c2.79378,34.58762 36.09247,63.06729 70.73276,60.79437c3.26721,-0.13614 6.52469,-0.50925 9.73752,-1.11868z",
            	"L_shape": "m1,1l149,0l0,149l149,0l0,149l-298,0l0,-298z",
            	"lightning_bolt": "m117.48906,0.99793l60.3351,83.60071l-24.88768,9.85823l75.99797,71.63888l-24.88768,11.96198l93.95412,119.94316l-159.33742,-91.91997l30.38835,-12.76016l-99.00077,-58.87717l35.47526,-18.19279l-104.52837,-61.76487l116.49113,-53.48799z",
            	"logo_apple": "m209.28954,1.00088c-43.04727,7.92585 -57.33284,43.96882 -57.8894,64.561c23.68694,1.71168 38.47275,-11.65597 44.5219,-19.4791c9.85237,-11.09263 12.25443,-26.71591 13.36751,-45.0819zm5.28372,71.19604c-31.11621,-0.01418 -48.48506,12.70539 -57.04939,12.84402c-9.82712,-0.76584 -38.46593,-12.28108 -55.16231,-12.46661c-58.47802,1.74345 -75.23289,65.28636 -74.50751,92.61087c4.76329,104.60263 68.59296,131.60016 79.02421,134.12564c8.36713,1.64984 36.57712,-12.89731 57.32939,-12.23529c22.65837,2.3606 38.49214,11.76068 47.58983,11.10309c11.51012,-0.79871 49.05655,-31.14218 60.37299,-77.89201c-22.81836,-19.29358 -36.89403,-36.77824 -38.15468,-53.37267c-0.584,-7.50279 10.70016,-49.91425 28.69514,-61.83392c2.59723,-14.65567 -24.13031,-33.25182 -45.08191,-32.83442c-1.03252,-0.02777 -2.05203,-0.0482 -3.05577,-0.04871z",
            	"man": "m125.90131,25.2503c0,-13.33112 10.79823,-24.12934 24.12934,-24.12934c13.33113,0 24.12932,10.79822 24.12932,24.12934c0,13.33112 -10.79819,24.12934 -24.12932,24.12934c-13.33113,0 -24.12934,-10.79822 -24.12934,-24.12934zm81.12696,68.30144v-12.18601c0,-12.82147 -10.38806,-23.21696 -23.21696,-23.21696h-67.63607c-12.82147,0 -23.21695,10.39549 -23.21695,23.21696v12.18601c-0.02242,0.2766 -0.03739,0.56071 -0.03739,0.84853v70.18918c0,5.4538 4.41839,9.87215 9.87218,9.87215c5.44633,0 9.87589,-4.41837 9.87589,-9.87215v-69.14999h6.62006v79.02961h0.04859v111.66646c0,7.25925 5.89491,13.15787 13.16164,13.15787c7.27048,0 13.16164,-5.89114 13.16164,-13.15787v-111.66646h8.68347v111.66646c0,7.25925 5.89856,13.15787 13.16162,13.15787c7.27045,0 13.16161,-5.89114 13.16161,-13.15787v-111.66646h0.04112v-79.02961h6.62007v69.14623c0,5.45381 4.42955,9.8759 9.8759,9.8759c5.45386,0 9.87218,-4.42209 9.87218,-9.8759v-70.18916c-0.00371,-0.29156 -0.02617,-0.56819 -0.0486,-0.8448z",
            	"maximize_2": "m1,149.99998l67.05,-67.05l0,33.52501l48.425,0l0,-48.425l-33.52501,0l67.05,-67.05l67.04999,67.05l-33.52499,0l0,48.425l48.42502,0l0,-33.52501l67.04997,67.05l-67.04997,67.04999l0,-33.52499l-48.42502,0l0,48.42502l33.52499,0l-67.04999,67.04997l-67.05,-67.04997l33.52501,0l0,-48.42502l-48.425,0l0,33.52499l-67.05,-67.04999z",
            	"moon": "m227,299.94119l0,0c-85.05185,0 -154,-66.92029 -154,-149.4706c0,-82.55034 68.94815,-149.4706 154,-149.4706l0,0c-48.47263,35.28521 -77,90.6619 -77,149.4706c0,58.80869 28.52737,114.18535 77,149.4706z",
            	"mythic_unicorn_2": "m182.0204,297.85391c-5.77818,-7.90314 -14.7635,-8.80438 -16.9241,-20.05347c-1.69348,-6.11859 -17.65829,-14.32483 -8.20955,-3.3428c7.2961,6.61768 15.96432,31.02682 -1.98563,23.31473c-13.65228,-5.01041 -14.2377,-20.48209 -17.89716,-32.06519c-11.90031,-8.25644 3.07674,-25.71408 -9.73651,-36.29276c-10.87482,-11.04288 -3.30119,-31.72456 -18.8404,-39.55457c-7.79965,-3.16566 -11.1757,18.69177 -12.48895,2.70163c-4.27309,-16.17242 -19.36451,7.86156 -29.42789,5.31358c-8.12057,-0.70595 13.58361,-6.35143 3.22626,-7.87068c-6.08933,3.33348 -11.72343,9.09727 -12.68681,-0.44351c-7.3251,-4.35046 -22.68599,-11.29797 -22.28696,-18.20909c6.3611,-1.99829 27.83545,3.78387 24.11403,-4.25029c-6.38573,-2.42343 -7.54573,-9.04803 0.27553,-4.60205c15.41352,0.48352 33.48255,-5.66917 46.30758,6.09853c6.68958,4.11612 13.26701,18.87857 16.84827,4.53223c11.5443,-13.92389 34.83883,-15.10329 41.95536,-33.13124c1.72211,-8.72215 -5.28903,-13.69839 -11.24521,-15.46512c-1.15878,-2.86641 -3.13139,-15.03612 -8.05675,-8.8949c0.22449,-5.37502 4.84473,-18.22859 -5.38927,-12.53831c-1.03801,-11.44846 8.74879,-22.87025 -4.19783,-31.20716c12.13029,2.25027 9.73825,-11.57887 7.09616,-13.77212c7.19073,-1.02106 15.62939,-7.49186 11.66467,-15.50808c7.80894,14.17675 8.07971,-17.19902 14.50877,-3.67512c11.83272,1.93988 -3.67599,-10.57163 7.20721,-7.77902c6.21443,0.21264 4.83423,-6.80917 10.41692,-1.50957c7.3886,-4.03149 -5.66409,-16.21531 6.26559,-7.74985c4.01033,3.484 16.77809,12.60911 14.48726,0.56772c11.33586,12.0923 20.25659,-11.23169 29.67625,-16.06186c3.73633,-4.47003 11.8613,-9.20071 4.36795,-0.66791c-4.97461,10.87669 -21.85179,22.64296 -17.31131,33.45053c-4.10985,3.74163 8.29224,8.44421 -1.58034,7.02768c-5.8488,6.31351 7.84134,18.1257 8.93388,28.06219c-3.13588,6.80826 -15.07657,14.53744 -19.90688,14.29315c1.76543,-8.76564 -2.06178,-20.19066 -13.24036,-15.23595c6.26202,11.45789 14.72818,22.40379 20.03253,34.86404c5.18462,12.24902 13.59059,26.39416 24.64981,10.62966c7.04883,-10.04763 27.18559,-9.90218 21.65419,6.41521c-2.82767,16.0232 4.74286,37.1706 -9.80374,48.20794c-8.77531,16.90973 -18.50392,-6.2874 -11.60965,-15.06308c-1.75673,-2.50781 -3.11575,-4.27809 2.02489,-7.7061c-1.06146,-2.57137 14.7939,-12.24554 6.80286,-18.18176c-9.0885,10.30594 -22.38708,22.23511 -18.69125,37.55475c2.99957,10.26601 -21.73944,27.86615 -19.76117,10.82875c0.44312,-6.62131 9.89648,-19.45415 7.72044,-21.10741c-6.90181,12.95006 -16.71997,25.39136 -31.55621,29.23625c-12.34084,0.73132 -18.80547,10.66779 -12.94504,21.69241c1.11998,15.62238 -7.12646,29.76141 -9.02499,44.972c3.52914,16.13283 25.01552,19.39287 27.93198,35.84959c5.01138,11.05234 -7.52405,9.41898 -13.36446,6.32639zm-30.55545,-48.12944c-1.80891,-7.29253 -5.53151,18.95699 -0.94273,5.02481l0.68695,-2.46143l0.25578,-2.56339z",
            	"page": "m249.3298,298.99744l9.9335,-39.73413l39.73413,-9.93355l-49.66763,49.66768l-248.33237,0l0,-298.00001l298.00001,0l0,248.33234",
            	"people_business_woman_1": "m152.09991,291.25156c-2.47678,-44.58551 4.65103,-89.4209 -0.87244,-133.89311c-8.95648,25.8877 -13.19429,53.17113 -13.68393,80.52692c-0.41364,17.0155 -0.16316,34.03816 -0.23213,51.05714c-6.59424,1.84573 -15.25726,1.21277 -19.31381,7.46753c-5.79991,2.60486 -12.31924,1.35736 -18.48087,1.65521c6.01304,-4.82208 13.37695,-9.59021 13.6609,-18.23849c6.31746,-52.60599 2.67181,-105.66583 3.06088,-158.49306c0.43537,-21.1868 -1.16552,-42.66898 2.64828,-63.61227c2.03822,-10.62624 19.15558,-5.1272 18.60609,-18.67488c3.03041,-11.80116 0.67964,-26.03735 9.52867,-35.60117c10.5938,-7.7376 21.95103,4.42952 20.767,15.48053c1.06621,11.41806 -1.19225,25.92375 9.12468,33.77226c11.50188,2.75379 13.11151,17.72176 18.13281,26.80961c4.23164,10.69022 9.72182,23.87735 0.08774,33.44124c-5.93716,8.68594 -16.90076,16.78377 -12.99744,28.7057c-0.60452,31.03065 -6.76558,61.62357 -9.34036,92.51013c-2.09418,17.62329 -2.81628,35.5533 -6.9491,52.84404c-0.55614,5.69342 -5.84515,19.49838 -12.14343,10.53711c-0.87442,-1.99588 -1.26941,-4.15509 -1.60355,-6.29443zm-31.23076,-126.74179c-4.61314,-4.02649 0.43039,13.47859 0.48324,1.7234l-0.48324,-1.7234l0,0zm6.80929,-33.43718c-1.88333,-6.96362 -7.13425,10.3817 -5.38842,14.89726c-0.28574,6.8293 0.74596,4.17953 2.10389,-0.81731c1.48602,-4.58557 2.79638,-9.27054 3.28453,-14.07996zm61.63647,-23.18116c5.52028,-11.36497 -2.7056,-23.94508 -11.13263,-31.31998c-8.36171,1.6476 -4.1756,17.26677 -4.09579,24.50607c-0.37729,9.19583 11.31773,21.60236 15.22842,6.8139zm-59.09369,-11.57291c-3.00658,-5.39182 -0.968,23.24248 0.49254,8.1709c0.11818,-2.72906 0.0034,-5.48079 -0.49254,-8.1709z",
            	"plant_tree_1": "m122.82124,295.43991c-9.60714,-8.11343 -1.74962,-22.4458 -1.18428,-32.9653c4.14859,-11.24323 3.96359,-85.81235 -10.94936,-86.09872c-15.83897,-4.80884 -33.8653,1.83771 -48.3958,-7.59918c-9.84084,-5.82912 -12.90007,-17.71764 -12.64209,-28.40579c0.19444,-11.07701 -10.96857,-15.73981 -14.56149,-25.02111c-4.85892,-11.57952 -0.66407,-24.81283 7.67092,-33.63805c7.87535,-8.99152 0.96225,-20.76784 4.99341,-30.60822c5.74977,-13.3805 22.92119,-7.46461 32.14548,-16.67288c9.90182,-6.99356 18.35265,-19.09785 32.07681,-17.29906c13.25371,0.83774 28.05221,3.21463 39.26759,-5.80136c10.45538,-8.74133 25.08881,-13.41753 38.21471,-8.04486c12.4521,3.84588 26.61226,11.87612 26.66945,26.64145c-3.79947,15.14795 10.55962,14.96229 20.88582,17.05112c12.22475,5.50745 24.82689,14.06517 29.88231,26.94686c1.34924,14.72554 -15.32854,26.93484 -7.76337,41.96729c2.96521,14.64848 -9.76962,22.78136 -18.92447,30.72028c-3.76666,14.33221 -18.04883,25.98621 -33.39958,22.57785c-12.36432,-2.02824 -19.98886,11.49191 -32.59709,10.30693c-8.35739,8.60075 -2.66228,82.40933 -1.11533,92.59302c6.29385,12.59021 -2.48013,26.51376 -16.65036,26.0885c-11.10333,1.33105 -23.19679,1.95465 -33.62328,-2.73877z",
            	"rectangle_2_rounded": "m50.66998,1l198.6639,0l0,0c13.17268,0 25.80577,5.2328 35.12022,14.54726c9.31445,9.31446 14.54727,21.94758 14.54727,35.12021l0,248.33141c0,0.00134 -0.00116,0.00247 -0.0025,0.00247l-297.99637,-0.00247l0,0c-0.00136,0 -0.0025,-0.0011 -0.0025,-0.0025l0.0025,-248.3289l0,0c0,-27.43059 22.23686,-49.66747 49.66748,-49.66747z",
            	"rectangle_3_rounded": "m50.66972,1l248.33028,0c0.0007,0 0.00134,0.00024 0.00177,0.00072c0.00049,0.00048 0.00076,0.00108 0.00076,0.0018l-0.00253,248.32779c0,27.43044 -22.23679,49.66722 -49.66722,49.66722l-248.3303,0l0,0c-0.00138,0 -0.00248,-0.00113 -0.00248,-0.0025l0.00248,-248.32779l0,0c0,-27.43045 22.23678,-49.66723 49.66724,-49.66723z",
            	"ribbon_up": "m0.99887,298.99884l37.37486,-124.16641l-37.37486,-124.16684l74.74943,0l0,-37.25092l0,0c0,-6.85776 4.18383,-12.41691 9.34372,-12.41691l130.81201,0c5.16063,0 9.34372,5.55916 9.34372,12.41691l0,37.25092l0,0l74.74974,0l-37.37488,124.16684l37.37488,124.16641l-102.7809,0c-5.15987,0 -9.3437,-5.55884 -9.3437,-12.41577c0,-6.85834 4.18384,-12.41724 9.3437,-12.41724l18.68744,0c5.16063,0 9.34372,-5.5603 9.34372,-12.41721c0,-6.85834 -4.18309,-12.41722 -9.34372,-12.41722l-130.81201,0c-5.15989,0 -9.34372,5.55888 -9.34372,12.41722c0,6.85693 4.18383,12.41721 9.34372,12.41721l18.68743,0c5.1606,0 9.34372,5.5589 9.34372,12.41724c0,6.85693 -4.18312,12.41577 -9.34372,12.41577zm121.79819,-30.86179l-0.71873,-217.77046m-149.49945,214.90504l0.71875,-213.47234m110.6871,199.14535l0.71873,41.54834m-74.03098,-1.43271l-0.71874,-40.11563",
            	"sflowchart_filter2": "m1,75.5l298,0l-149,74.5l149,74.5l-298,0l149,-74.5l-149,-74.5z",
            	"sign_no": "m0.99794,149.99951l0,0c0,-82.29002 66.70967,-148.99969 148.99992,-148.99969l0,0c39.51779,0 77.41692,15.69819 105.35898,43.64116c27.94318,27.94297 43.64124,65.84185 43.64124,105.35853l0,0c0,82.29103 -66.7092,149.00024 -149.00021,149.00024l0,0c-82.29025,0 -148.99992,-66.70921 -148.99992,-149.00024zm240.6012,66.65504l0,0c32.80489,-45.08388 27.92851,-107.33437 -11.49672,-146.75905c-39.42525,-39.42501 -101.67574,-44.30139 -146.75847,-11.49616l158.25519,158.25521zm-183.20167,-133.30872c-32.80512,45.08364 -27.92886,107.33413 11.49615,146.75825c39.4249,39.42525 101.67541,44.30159 146.75814,11.49672l-158.2543,-158.25497z",
            	"skull": "m74.9404,81.44109c-2.88919,16.35929 -10.26919,31.99403 -10.76614,48.86361c0.66122,9.76746 -5.89156,15.01402 -14.86213,14.8293c-9.64813,10.00099 1.19087,25.80647 12.10749,29.84357c11.14103,7.47832 24.96226,-0.87791 35.99846,5.83044c14.65424,11.4554 20.77205,31.76607 15.71635,49.57211c-5.02672,14.69893 20.70476,9.35306 11.02628,-2.39693c-7.47506,-11.48471 14.09103,-7.68764 8.56998,3.21603c-1.04326,8.75262 6.45616,11.58562 3.11867,20.06531c8.69472,4.98558 -0.72885,7.77708 -6.02475,8.71843c-12.40178,6.18225 2.24324,-11.07452 -7.58144,-16.17874c-8.99694,1.95532 -2.90059,17.02136 -5.98875,15.28125c-6.3575,-4.97824 -6.35281,-23.59047 -17.02285,-11.44621c-3.54128,-14.96387 2.92009,-30.54814 -2.05737,-45.42514c2.03897,-11.11034 -15.50281,-14.9426 -13.28409,-2.05647c0.88449,19.66696 -5.0876,39.29475 -1.66005,58.86481c4.72071,12.07065 17.92378,17.50833 26.2104,26.82291c6.80557,7.18207 15.6284,14.86087 26.22089,12.5997c12.0141,-0.52078 24.05035,-1.63034 36.01024,0.2771c15.04311,0.47446 26.52666,-11.41623 39.36443,-17.5242c15.0918,-11.98355 12.71564,-33.38867 11.21118,-50.43889c-1.84476,-10.52664 2.20334,-21.05807 1.44894,-31.48618c-10.88037,-13.31276 -19.80722,10.08708 -16.70779,20.14043c-0.00076,12.64635 2.42783,28.93701 -9.63577,37.17496c-9.95572,-0.25104 -19.43069,3.36517 -29.4632,1.4744c-8.14081,4.83435 -21.32692,4.71021 -24.01404,-6.79811c-1.07281,-10.22015 3.55807,-20.93494 -2.73401,-30.47318c5.52835,4.7614 15.17361,-4.11226 9.79822,6.56248c-6.55643,8.68922 5.55173,22.07874 10.10989,9.25331c1.51227,-8.60512 -6.54141,-20.02596 6.69714,-18.18237c2.6998,3.03528 -9.21959,24.26701 7.07346,18.90152c11.61606,-2.54445 -2.06659,-20.76607 13.66382,-20.82939c7.61295,-8.9626 5.56317,-25.76184 17.20825,-32.56114c12.98419,-8.78706 33.2569,-2.44315 42.52423,-17.32399c7.89911,-7.61507 4.18182,-28.72154 -9.44128,-21.72794c-17.02448,1.65962 -3.51318,-23.0582 -3.98819,-32.32024c4.01126,-8.06691 -4.87137,-25.04774 -1.81268,-26.84933c5.77948,8.84253 7.84946,19.18484 6.60651,29.51878c-0.10681,8.76352 -3.8233,32.51385 8.36014,17.87288c4.12442,-10.20347 2.92487,-21.76073 5.86331,-32.37626c5.66748,-22.91865 -4.48026,-45.85004 -15.79309,-65.262c-9.63495,-10.45038 -21.86679,-18.78104 -33.35342,-26.98327c-19.32092,-7.26658 -40.65421,-8.56836 -61.06006,-6.74718c-18.04979,3.12863 -37.13738,6.42709 -51.51633,18.73374c-14.01352,8.25707 -27.43441,19.22373 -32.97453,35.08961c-4.82798,12.78156 -13.28239,25.798 -9.43994,39.99647c3.67479,11.83601 1.72576,24.12813 2.32075,36.22574c6.26442,13.82637 12.1788,-7.07504 11.59255,-13.98853c0.3468,-13.11021 7.26362,-24.71465 12.36033,-36.35318zm115.06042,28.12622c12.88235,0.92311 29.19336,8.09689 29.54492,23.0528c1.95883,15.00865 -10.16846,29.55684 -25.7099,28.08501c-14.11661,-1.15955 -23.14499,-13.35332 -22.20761,-27.06258c-4.7262,-9.82969 2.6286,-20.35741 12.49942,-22.61709c1.91415,-0.64365 3.88168,-1.12543 5.87317,-1.45815zm-86.93419,1.27835c14.94448,-2.65778 31.94749,6.61306 31.99739,23.15527c1.40359,15.99194 -15.57494,19.12508 -27.15695,23.1313c-8.01422,5.17467 -16.3391,0.35667 -22.99829,-4.85698c-8.63997,-9.0434 -6.10048,-27.26721 3.02245,-35.52229c4.42388,-3.27404 9.90028,-4.56108 15.1354,-5.9073zm51.1378,42.18812c7.2348,9.94383 15.92023,25.10751 6.56407,36.39339c-8.30571,6.66107 -9.35284,-9.47466 -18.07048,-1.8754c-8.17816,-7.1624 -0.63536,-21.73717 5.10291,-29.01329c1.8913,-2.09525 4.05559,-3.93987 6.4035,-5.5047z",
            	"star_32": "m1,150l37.78866,-10.95375l-34.9264,-18.11479l39.19976,-3.37057l-30.72019,-24.58047l39.1037,4.34019l-25.33452,-30.10049l37.5051,11.88636l-18.97492,-34.46539l34.46528,18.97503l-11.88614,-37.50511l30.10025,25.33441l-4.34019,-39.10359l24.58048,30.72008l3.37057,-39.19964l18.11479,34.92639l10.95375,-37.78866l10.95375,37.78866l18.11479,-34.92639l3.37057,39.19964l24.58047,-30.72008l-4.34018,39.10359l30.10023,-25.33441l-11.88614,37.50511l34.4653,-18.97503l-18.97491,34.46539l37.50508,-11.88636l-25.33452,30.10049l39.10347,-4.34019l-30.71994,24.58047l39.1994,3.37057l-34.92581,18.11479l37.78842,10.95375l-37.78842,10.95375l34.92581,18.11479l-39.1994,3.37057l30.71994,24.58047l-39.10347,-4.34018l25.33452,30.10025l-37.50508,-11.88615l18.97491,34.4653l-34.4653,-18.97493l11.88614,37.5051l-30.10023,-25.33452l4.34018,39.10347l-24.58047,-30.71994l-3.37057,39.1994l-18.11479,-34.92581l-10.95375,37.78842l-10.95375,-37.78842l-18.11479,34.92581l-3.37057,-39.1994l-24.58048,30.71994l4.34019,-39.10347l-30.10025,25.33452l11.88614,-37.5051l-34.46528,18.97493l18.97492,-34.4653l-37.5051,11.88615l25.33452,-30.10025l-39.1037,4.34018l30.72019,-24.58047l-39.19976,-3.37057l34.9264,-18.11479l-37.78866,-10.95375z",
            	"sun": "m298.99939,149.99919l-60.12755,21.3835l0,-42.76601l60.12755,21.38251zm-43.65198,-105.36193l-27.38881,57.64266l-30.23897,-30.23995l57.62778,-27.40271zm-105.34804,-43.63768l21.38251,60.12764l-42.76602,0l21.38351,-60.12764zm-105.36263,43.63768l57.64236,27.40271l-30.23955,30.23995l-27.40281,-57.64266zm-43.63767,105.36193l60.12774,-21.38251l0,42.76601l-60.12774,-21.3835zm43.63767,105.34903l27.40281,-57.62877l30.23955,30.23996l-57.64236,27.38881zm105.36263,43.65096l-21.38351,-60.12753l42.76602,0l-21.38251,60.12753zm105.34804,-43.65096l-57.62778,-27.38881l30.23897,-30.23996l27.38881,57.62877zm-179.84834,-105.34903l0,0c0,-41.14515 33.35516,-74.5 74.50031,-74.5c41.14514,0 74.5,33.35485 74.5,74.5c0,41.14514 -33.35486,74.49998 -74.5,74.49998c-41.14514,0 -74.50031,-33.35484 -74.50031,-74.49998z",
            	"woman": "m150.04984,49.03255c13.33249,0 24.15346,-10.81348 24.15346,-24.15346c0,-13.34748 -10.82097,-24.16844 -24.15346,-24.16844c-13.34375,0 -24.16843,10.82096 -24.16843,24.16844c0,13.33998 10.82095,24.15346 24.16843,24.15346zm67.74049,104.1672l-21.67561,-80.39177c-0.20212,-0.72988 -0.48662,-1.42607 -0.83093,-2.06987c-2.46291,-7.53088 -9.53339,-12.9844 -17.88399,-12.9844h-54.86088c-8.70618,0 -16.01627,5.9214 -18.16845,13.95758c-0.14598,0.35184 -0.26575,0.7224 -0.37429,1.10417l-21.2901,80.38803c-1.41861,5.2701 1.71053,10.6862 6.98811,12.1048c5.27014,1.4111 10.68626,-1.71803 12.10487,-6.98813l16.71989,-63.14786h6.96569l-30.34438,114.25453h28.5927v78.87959c0,6.06738 4.91077,10.9819 10.98564,10.9819c6.05989,0 10.9819,-4.9108 10.9819,-10.9819v-78.87959h8.73613v78.87959c0,6.06738 4.91826,10.9819 10.99315,10.9819c6.05988,0 10.9819,-4.9108 10.9819,-10.9819v-78.87959h28.57767l-30.45665,-114.25453h7.14911l17.02679,63.14786c1.41859,5.2701 6.83472,8.39923 12.10481,6.98813c5.2589,-1.41859 8.38803,-6.83842 6.97693,-12.10854z"
            	}
            }
          • music.json
            {"data": {
            	"clef_alto": "m51.25065,150.28749c0,-49.53207 0,-99.06413 0,-148.5962c11.59261,0 23.18523,0 34.77784,0c0,99.06413 0,198.12827 0,297.1924c-11.59261,0 -23.18522,0 -34.77784,0c0,-49.53209 0,-99.06413 0,-148.59621zm51.37634,0c0,-49.53207 0,-99.06413 0,-148.5962c8.48285,-2.46703 12.93837,1.84261 11.08508,10.0007c0.12527,45.40251 0.25053,90.80502 0.37581,136.20751c21.44767,-15.32626 29.57346,-41.86327 36.21976,-66.10667c3.81448,15.78812 9.88112,35.01518 27.29865,40.16045c16.60112,4.98381 31.30354,-10.63891 31.13045,-26.64445c2.89955,-20.45341 3.30077,-41.70258 -1.14742,-61.93042c-4.16455,-12.79745 -16.64639,-23.36595 -30.52771,-22.52039c-11.42384,-5.25948 -24.23628,10.96936 -9.59547,16.90924c12.31264,13.08186 -1.99968,35.47687 -19.11742,30.23324c-16.59583,-3.55596 -21.00951,-25.43777 -11.40723,-37.80838c13.77419,-17.97563 39.16574,-20.24264 60.03438,-17.62625c27.15413,3.08944 47.80745,27.56302 50.7352,54.02297c3.73869,23.61245 -2.35521,50.29027 -22.12251,65.37829c-16.57411,13.95533 -40.93645,15.69794 -60.41183,7.1722c-4.73631,7.1261 -9.47264,14.25217 -14.20895,21.37825c4.65338,6.95274 9.30673,13.90549 13.96008,20.8582c23.58311,-10.57065 54.40877,-5.07518 69.99907,16.43117c21.95821,28.96715 17.67499,75.52599 -10.84692,98.64314c-17.91376,14.62869 -43.09233,14.67899 -64.38158,8.83109c-16.11131,-4.2995 -31.82996,-19.966 -26.84735,-37.82117c2.51375,-15.55998 23.9128,-21.41389 34.33803,-9.83356c14.19543,12.82462 -6.37968,25.74036 -5.32516,38.10141c15.79561,11.97195 41.38054,0.70062 45.05746,-18.39487c5.84576,-20.96526 4.47285,-43.25116 1.61388,-64.56879c-1.53316,-14.33195 -14.00139,-28.78069 -29.45882,-24.78352c-16.25957,3.69221 -24.37509,20.62003 -27.1602,35.64745c-3.41434,11.00523 -4.50349,-10.5222 -7.16806,-14.04636c-5.53896,-17.66304 -15.20212,-35.01096 -30.07851,-46.1468c-1.53252,4.76282 -0.13866,10.70403 -0.62897,15.96893c-0.11874,43.15994 -0.2375,86.31984 -0.35623,129.47978c-8.48793,2.46848 -12.93407,-1.8443 -11.0575,-10.00076c0,-46.19846 0,-92.39696 0,-138.59544z",
            	"clef_bass": "m21.53929,297.24106c0.11552,-13.50244 21.89277,-17.95071 30.83244,-27.31851c34.50853,-23.15955 68.13189,-49.8976 89.28437,-86.39645c22.47179,-37.29227 34.65842,-82.97259 25.51732,-126.22972c-4.84746,-26.84145 -30.93637,-48.32386 -58.5412,-44.96438c-18.18078,2.48732 -39.18159,6.6724 -49.70108,23.45858c-11.41858,8.57642 -5.13639,28.67733 10.08619,21.04295c19.47556,-7.4344 43.93666,7.72539 43.16644,29.21231c0.02258,20.3737 -20.60109,34.74615 -39.82058,32.83379c-21.40677,-0.21405 -42.59771,-17.48695 -42.15028,-39.87929c-1.48358,-36.0903 29.74187,-65.56665 63.16554,-73.13066c29.88613,-9.31284 64.6309,-5.56545 89.8325,13.80772c18.75227,12.81883 33.51952,32.25211 36.60045,55.18989c6.65193,29.82199 -1.94455,60.59844 -16.85703,86.54317c-19.16537,34.9521 -48.44911,63.56561 -82.44233,84.09172c-31.5721,20.13449 -64.41224,38.31845 -98.38529,54.07944c-0.19582,-0.78018 -0.39163,-1.56039 -0.58745,-2.34058zm226.81013,-147.1503c-16.25441,-7.36092 -12.66826,-37.2715 6.2514,-37.94421c14.1568,-3.30239 27.38025,11.49424 23.01007,25.17739c-2.75677,12.80446 -18.12839,18.35408 -29.26147,12.76682zm0,-81.82211c-16.25441,-7.36089 -12.66826,-37.2715 6.2514,-37.9442c14.1568,-3.30238 27.38025,11.49425 23.01007,25.17739c-2.82837,12.84788 -18.04926,18.33069 -29.26147,12.76681z",
            	"clef_treble": "m142.57787,298.08936c-19.93291,-3.16858 -30.69543,-32.78793 -10.77837,-43.63799c20.76305,-10.6983 33.11169,27.38725 10.4319,31.10985c-12.41878,4.65247 16.12379,12.44363 21.44362,4.62054c16.62259,-8.04572 14.05481,-28.98639 10.0555,-43.73428c-1.38792,-11.29834 -3.1236,-23.3942 -17.37872,-16.97299c-34.39165,2.76706 -61.61951,-32.12309 -58.88461,-64.7627c0.92851,-30.78641 26.14601,-51.87253 44.81895,-73.25146c-6.13037,-27.96899 -7.98138,-60.28084 9.78998,-84.65368c16.36949,-19.81244 24.67825,16.44271 27.44722,28.74505c6.15059,28.7567 -6.11317,58.97542 -26.51985,79.24646c1.94853,9.61536 3.86572,19.23715 5.85146,28.84491c21.56471,-4.16351 42.14922,14.0585 43.32542,35.40215c3.33209,19.27364 -9.02991,37.47516 -25.91515,45.75842c-0.27765,16.55051 8.86742,33.71834 5.58147,50.80913c-3.15567,17.67035 -22.97263,26.33539 -39.26881,22.47659zm22.51283,-75.40413c6.10963,-11.46864 -4.97238,-31.72308 -5.58083,-46.4445c0.2393,-25.67101 -26.99069,4.97273 -18.89308,17.57916c2.40038,7.45953 23.23523,21.13914 4.09677,12.70238c-19.98106,-11.95877 -19.06588,-42.72807 -0.80893,-55.71979c15.31693,-3.39279 5.96193,-23.83228 3.07584,-30.54592c-18.81245,17.14481 -40.13555,38.73356 -36.89114,66.48257c2.4439,26.00902 30.79729,41.78694 55.00137,35.94611zm12.65782,-4.96449c17.94263,-11.51868 17.35378,-41.74863 -2.27676,-51.12454c-20.94589,-11.06784 -6.59929,17.92804 -6.2155,28.9649c2.90686,4.22505 1.26024,28.84393 8.49226,22.15964zm-22.11331,-138.56764c11.03699,-13.35171 23.65346,-32.62746 15.90224,-50.28019c-16.69221,-11.01859 -25.9682,18.77171 -26.37872,31.81623c-0.15186,8.45836 -1.39836,37.61288 10.47649,18.46396l0,0z",
            	"note_16th": "m88.44206,298.30295c-13.87988,-2.82538 -24.35809,-16.50861 -20.88289,-30.73529c4.91499,-19.9595 23.53616,-33.76636 42.17206,-40.32825c12.41348,-4.12247 26.50006,-3.4993 38.15588,2.63036c1.0408,-76.23686 0.44647,-152.49294 0.60452,-228.73842c4.20728,-0.00103 9.6062,-1.35928 8.46304,4.73352c0.58707,13.69153 7.31578,26.22541 17.65646,35.05743c23.06891,21.49232 49.01909,44.8303 54.31831,77.58647c1.50432,13.81924 -0.10796,27.74641 -3.17799,41.24139c9.09166,16.96843 8.54382,37.52667 4.8522,55.93042c-2.39383,9.71803 -6.29839,19.07953 -11.26178,27.74855c-11.71941,5.45538 1.38908,-8.91675 1.22467,-14.09427c6.33897,-15.55397 7.06616,-32.87975 4.18297,-49.26376c-6.28082,-23.96758 -30.02579,-35.67821 -49.12051,-48.20921c-6.90894,-2.70374 -21.67717,-19.0106 -18.74876,-3.03152c-0.64005,43.31421 -0.53076,86.63467 -0.73126,129.95221c-8.01517,20.08276 -26.40254,35.40967 -47.75954,39.25299c-6.54287,1.13068 -13.39496,1.54416 -19.94739,0.2674zm133.16364,-163.77284c0.19041,-24.65028 -18.17068,-44.59457 -36.16211,-59.2127c-9.00275,-6.78731 -18.53905,-13.97798 -28.66229,-18.37087c0.62265,14.17498 7.10901,27.98635 14.87303,39.75766c14.63148,19.60416 36.7207,32.71725 48.97745,54.30224c1.46973,-5.35919 1.02641,-10.98389 0.97392,-16.47633z",
            	"note_2_16th": "m49.3958,299.54056c-16.81947,-3.04166 -22.61933,-24.29047 -12.59162,-37.02081c13.30804,-19.68834 41.77522,-32.96074 64.07959,-20.53789c0.44453,-69.33055 0.18797,-138.66488 0.25596,-207.99711c55.61466,-11.21983 111.34956,-21.8626 166.98527,-32.98482c-0.12048,77.7042 -0.24097,155.40843 -0.36145,233.1126c-8.71588,23.50243 -36.87907,39.79991 -61.40202,32.51219c-14.59976,-4.3703 -18.09988,-23.21532 -9.97012,-34.76195c11.13289,-17.22395 31.85399,-29.0497 52.68539,-25.82347c5.94469,-0.60136 14.69865,9.02304 12.18605,-1.86462c0,-54.46642 0,-108.93282 0,-163.39921c-51.0519,10.27703 -102.20471,20.06591 -153.28023,30.23172c-0.17435,63.38239 0.43399,126.77441 -0.45506,190.14903c-1.62524,19.24988 -20.10281,32.38318 -37.35132,37.51443c-6.81397,1.14908 -13.90893,1.86209 -20.78043,0.8699zm133.17406,-258.40903c26.23065,-5.16204 52.47366,-10.26209 78.69298,-15.48133c3.33676,-13.29303 -11.59628,-4.66015 -18.89926,-4.33564c-44.78732,8.84114 -89.60051,17.55139 -134.38097,26.42687c-3.33676,13.29303 11.59627,4.66015 18.89925,4.33564c18.56081,-3.65804 37.12405,-7.30357 55.688,-10.94555z",
            	"note_2_32nd": "m49.39585,299.53995c-16.81947,-3.04169 -22.61932,-24.29047 -12.59161,-37.02081c13.30804,-19.68835 41.77521,-32.96077 64.07959,-20.53792c0.44453,-69.33055 0.18797,-138.66488 0.25596,-207.9971c55.61465,-11.21984 111.34956,-21.86261 166.98528,-32.98483c-0.12048,77.70421 -0.24097,155.40842 -0.36145,233.11262c-8.71591,23.50241 -36.8791,39.7999 -61.40204,32.51218c-14.59978,-4.3703 -18.09987,-23.21533 -9.97015,-34.76193c11.13292,-17.22395 31.854,-29.0497 52.68541,-25.82347c5.9447,-0.60136 14.69868,9.02304 12.18605,-1.86462c0,-46.71117 0,-93.42232 0,-140.13348c-51.05188,10.27702 -102.20473,20.0659 -153.28023,30.23172c-0.22871,56.35212 0.56696,112.72466 -0.58765,169.06043c-3.51923,18.91183 -22.11423,32.00891 -40.05743,35.8262c-5.92716,0.70624 -12.00983,1.31848 -17.94172,0.38101zm133.17405,-235.14331c26.23065,-5.16204 52.47366,-10.26208 78.69298,-15.48132c3.33676,-13.29303 -11.59628,-4.66015 -18.89923,-4.33564c-44.78734,8.84113 -89.60054,17.55138 -134.381,26.42687c-3.33677,13.29303 11.59627,4.66015 18.89925,4.33564c18.56078,-3.65805 37.12405,-7.30357 55.688,-10.94555zm0,-23.26575c26.23065,-5.16204 52.47366,-10.26209 78.69298,-15.48133c3.33676,-13.29302 -11.59628,-4.66015 -18.89923,-4.33563c-44.78734,8.84113 -89.60054,17.55139 -134.381,26.42687c-3.33677,13.29303 11.59627,4.66016 18.89925,4.33564c18.56078,-3.65804 37.12405,-7.30358 55.688,-10.94555z",
            	"note_2_64th": "m49.39639,299.53995c-16.81947,-3.04169 -22.61932,-24.29047 -12.59161,-37.02081c13.30804,-19.68835 41.77522,-32.9608 64.07959,-20.53792c0.44453,-69.33055 0.18797,-138.66488 0.25596,-207.99711c55.61465,-11.21983 111.34957,-21.86261 166.98528,-32.98482c-0.12048,77.70421 -0.24097,155.40842 -0.36145,233.11262c-8.71591,23.50241 -36.8791,39.7999 -61.40205,32.51218c-14.59976,-4.3703 -18.09987,-23.21533 -9.97012,-34.76193c11.1329,-17.22395 31.85399,-29.0497 52.68539,-25.8235c5.94467,-0.60133 14.69868,9.02307 12.18605,-1.86459c0,-38.95592 0,-77.91182 0,-116.86773c-51.0519,10.27703 -102.20474,20.06591 -153.28024,30.23172c-0.23563,48.66071 0.58183,97.34513 -0.58977,145.98728c-3.69252,18.80173 -22.14742,31.83179 -40.05531,35.63361c-5.92716,0.70627 -12.00984,1.31848 -17.94173,0.38101zm133.17406,-211.87756c26.23067,-5.16204 52.47368,-10.26209 78.69298,-15.48133c3.33676,-13.29303 -11.59627,-4.66015 -18.89925,-4.33564c-44.78732,8.84113 -89.60051,17.55138 -134.38099,26.42688c-3.33676,13.29302 11.59627,4.66015 18.89925,4.33562c18.56079,-3.65804 37.12405,-7.30356 55.688,-10.94553zm0,-23.26575c26.23067,-5.16204 52.47368,-10.26208 78.69298,-15.48132c3.33676,-13.29303 -11.59627,-4.66015 -18.89925,-4.33564c-44.78732,8.84113 -89.60051,17.55138 -134.38099,26.42687c-3.33676,13.29303 11.59627,4.66015 18.89925,4.33564c18.56079,-3.65805 37.12405,-7.30357 55.688,-10.94555zm0,-23.26575c26.23067,-5.16204 52.47368,-10.26209 78.69298,-15.48133c3.33676,-13.29302 -11.59627,-4.66015 -18.89925,-4.33563c-44.78732,8.84113 -89.60051,17.55139 -134.38099,26.42687c-3.33676,13.29303 11.59627,4.66016 18.89925,4.33564c18.56079,-3.65804 37.12405,-7.30357 55.688,-10.94554z",
            	"note_2_8th": "m49.39571,299.54196c-16.81947,-3.04169 -22.61933,-24.29047 -12.59162,-37.02081c13.30804,-19.68834 41.77522,-32.96077 64.07959,-20.53792c0.44447,-69.55862 0.18803,-139.12106 0.25597,-208.68139c55.61337,-11.00192 111.35248,-21.38966 166.98529,-32.30051c-0.12051,77.70421 -0.24097,155.40842 -0.36145,233.11263c-8.71594,23.50241 -36.8791,39.7999 -61.40207,32.51218c-14.59976,-4.3703 -18.09987,-23.21533 -9.97012,-34.76193c11.1329,-17.22395 31.854,-29.0497 52.68538,-25.82347c5.9447,-0.60136 14.69872,9.02304 12.18608,-1.86462c-0.20636,-61.46065 0.51324,-122.93768 -0.53098,-184.38539c-9.07608,-3.36956 -25.21706,4.38308 -36.83795,5.01031c-38.86079,7.56314 -77.80466,14.7255 -116.5762,22.73074c1.16985,68.10055 0.62434,136.24279 0.45018,204.35774c2.05843,15.54877 -6.51154,30.19547 -19.54225,38.30072c-11.24453,8.17932 -25.1371,11.12784 -38.82984,9.35175z",
            	"note_3_16th": "m15.05685,274.22351c-14.31707,-1.91919 -18.42601,-20.36026 -8.93697,-29.99135c10.38879,-13.67648 30.27091,-22.30884 46.50806,-13.88651c0.66153,-52.11798 0.28726,-104.24728 0.38611,-156.37085c81.97754,-16.40272 164.06679,-32.26359 246.07988,-48.4937c-0.2363,57.62228 0.57657,115.26416 -0.57095,172.87157c-1.96915,14.86053 -17.13602,24.73001 -30.79037,27.8163c-11.96523,3.66803 -28.81345,-4.27913 -25.97942,-18.60889c3.50381,-15.4984 19.49126,-26.6657 34.85991,-28.02376c8.59586,-2.14986 20.61923,9.25734 16.69226,-5.91415c0.09525,-39.33675 -0.07153,-78.67297 -0.13177,-118.00977c-38.18202,7.50178 -76.35632,15.04294 -114.54555,22.50813c-0.23268,48.18274 0.55394,96.38557 -0.57504,144.55286c-2.30531,15.49788 -18.60167,25.74417 -33.19453,27.71848c-14.44766,3.90948 -29.61349,-11.1328 -21.45115,-25.13463c9.01589,-16.79831 32.00478,-28.23689 49.88007,-18.48071c0.13591,-41.88866 0.57454,-83.7979 -0.20747,-125.67833c-9.66763,-2.10095 -24.53024,4.47319 -35.97192,5.4189c-26.23273,5.15636 -52.45877,10.34411 -78.68841,15.51694c-0.35831,49.24326 0.12716,98.5107 -1.08934,147.73389c-6.17624,16.23714 -25.20985,26.82423 -42.27338,24.45558l0,0zm101.53641,-195.02805c18.87659,-3.72421 37.75267,-7.44825 56.62927,-11.17233c3.17946,-13.298 -14.34059,-1.80056 -21.35852,-2.54169c-31.16307,6.26984 -62.32049,12.56754 -93.49695,18.76997c-1.80596,13.61728 18.79422,-0.36912 26.46645,1.18459c10.58865,-2.07109 21.17471,-4.15247 31.75974,-6.24054zm119.43625,-23.77348c18.94301,-3.80857 37.98227,-7.27608 56.8645,-11.31118c2.82892,-13.23786 -18.20215,0.42724 -25.56601,-1.09475c-29.37257,5.74051 -58.85892,11.05022 -88.16765,17.02801c-3.13623,14.00632 18.26294,0.04643 25.92744,1.45249c10.31323,-2.02774 20.62746,-4.05219 30.94171,-6.07457z",
            	"note_3_32th": "m15.05685,274.22333c-14.31707,-1.91882 -18.42601,-20.36018 -8.93697,-29.99106c10.3888,-13.67676 30.27089,-22.30908 46.50806,-13.88647c0.66166,-52.11824 0.28732,-104.24765 0.38611,-156.37099c81.97754,-16.40273 164.06694,-32.2636 246.07988,-48.4937c-0.2363,57.6225 0.57663,115.26395 -0.57123,172.87143c-1.96881,14.86089 -17.13586,24.73018 -30.79025,27.81644c-11.96498,3.66806 -28.81322,-4.27921 -25.97935,-18.60878c3.50368,-15.49834 19.49123,-26.6657 34.86018,-28.02408c8.67697,-2.20874 20.51364,9.40097 16.68222,-5.83759c-0.09845,-33.39989 0.78769,-66.86396 -0.50803,-100.22556c-37.99194,7.33447 -75.93604,14.91556 -113.90202,22.38341c-0.40428,43.27432 0.22905,86.58281 -1.10269,129.83c-6.66052,18.05263 -29.74564,30.16772 -47.98743,22.50237c-14.38366,-7.43967 -7.95995,-27.06667 2.9687,-34.4792c10.34322,-10.82147 29.63336,-12.35156 40.562,-8.05225c0.25528,-36.18434 0.11931,-72.37016 0.15388,-108.55522c-38.40674,7.73776 -76.89246,15.09384 -115.31775,22.74432c-0.2578,42.95952 0.63174,85.96188 -0.70086,128.88727c-5.20541,16.91916 -25.24538,27.88303 -42.40446,25.48965zm99.21976,-176.85336c19.73389,-3.88507 39.47778,-7.71994 59.20331,-11.64712c1.63908,-13.07382 -17.1093,-0.27914 -24.42491,-1.54683c-30.21908,5.91451 -60.4242,11.89998 -90.63543,17.85444c-2.77443,12.63378 14.55762,1.2752 21.41661,2.10594c11.47932,-2.25961 22.95964,-4.51424 34.44042,-6.76643zm2.31665,-18.17461c18.87643,-3.72409 37.75285,-7.44817 56.62927,-11.17224c3.17953,-13.298 -14.34081,-1.80056 -21.35843,-2.5417c-31.16306,6.26989 -62.32067,12.56752 -93.49722,18.77c-1.80564,13.61723 18.7942,-0.36929 26.46687,1.1845c10.58833,-2.07081 21.17455,-4.15248 31.7595,-6.24056zm119.82236,-6.10279c19.00511,-3.73167 38.01025,-7.46333 57.01538,-11.195c2.25488,-12.51775 -14.43167,-1.31337 -21.22391,-2.14778c-31.1899,6.14801 -62.39635,12.21269 -93.57906,18.3969c-0.48149,12.89743 19.70058,-0.51178 28.22481,0.73691c9.85522,-1.92534 19.70935,-3.85638 29.56277,-5.79102zm-0.38611,-17.67059c18.94318,-3.80859 37.98227,-7.27608 56.86438,-11.31118c2.82913,-13.23785 -18.20197,0.42724 -25.56577,-1.09474c-29.37247,5.74053 -58.85913,11.0502 -88.1676,17.028c-3.13618,14.00631 18.26254,0.04646 25.92732,1.45247c10.31334,-2.02773 20.6273,-4.05214 30.94167,-6.07454z",
            	"note_3_64th": "m15.05833,274.22296c-14.317,-1.9187 -18.42625,-20.3604 -8.93719,-29.99104c10.38896,-13.67708 30.27131,-22.30949 46.50857,-13.88661c0.66169,-52.1188 0.28732,-104.24842 0.38611,-156.37186c81.97786,-16.40303 164.06815,-32.26401 246.08122,-48.49419c-0.23633,57.62288 0.57712,115.26462 -0.57092,172.87238c-1.96869,14.86116 -17.13614,24.73065 -30.79056,27.81697c-11.96483,3.66806 -28.81317,-4.27963 -25.97963,-18.60901c3.50381,-15.49847 19.49141,-26.66583 34.8607,-28.02443c7.61099,-2.92159 20.18073,9.65431 16.68201,-4.30438c0.21829,-27.96678 0.10867,-55.9346 0.13544,-83.90191c-38.27235,7.48128 -76.53494,15.0156 -114.80267,22.52314c-0.22958,36.48441 0.55602,72.99504 -0.58997,109.45938c-3.18001,15.89902 -20.29759,26.40845 -35.74976,27.23267c-14.89929,2.89737 -27.08599,-14.42255 -17.93506,-27.04372c9.64191,-15.67046 31.65898,-26.22467 48.93309,-16.72427c0.33206,-30.58104 0.14311,-61.16617 0.19254,-91.74873c-38.39642,7.82673 -76.92161,15.04803 -115.31823,22.87476c-0.25736,36.94054 0.62957,73.92738 -0.70087,110.83084c-5.2055,16.9194 -25.24553,27.88339 -42.40482,25.49002l0,0zm101.38524,-159.31403c18.83891,-3.75145 37.70946,-7.35722 56.50069,-11.3393c2.95145,-13.53962 -17.91554,0.08701 -25.35307,-1.30814c-29.80621,5.87558 -59.6283,11.67136 -89.42722,17.5835c-2.26596,13.04952 15.28052,1.23864 22.46973,2.11949c11.93564,-2.35683 23.87244,-4.70798 35.80987,-7.05554zm-2.1648,-17.54025c19.73418,-3.88531 39.47784,-7.72015 59.20348,-11.64717c1.63916,-13.07402 -17.10936,-0.27902 -24.42487,-1.54701c-30.21927,5.9147 -60.42458,11.89994 -90.63596,17.8548c-2.77449,12.63354 14.55767,1.27519 21.41672,2.10558c11.47937,-2.25951 22.95979,-4.51389 34.44062,-6.7662zm123.16869,-6.50159c18.66148,-3.66445 37.32301,-7.3289 55.98506,-10.99284c1.75296,-13.03485 -16.50751,-0.89732 -23.95999,-1.87753c-30.19955,5.92758 -60.38982,11.90097 -90.58421,17.8548c-3.55789,11.04535 8.5943,3.94657 14.87352,3.58826c14.56204,-2.85567 29.12408,-5.71393 43.68562,-8.57269zm-120.85203,-11.67342c18.8765,-3.72417 37.75323,-7.44803 56.62942,-11.17215c3.18001,-13.29807 -14.34068,-1.80056 -21.35812,-2.54169c-31.16348,6.26993 -62.3213,12.56734 -93.49802,18.77035c-1.80566,13.61685 18.79432,-0.36964 26.46704,1.18407c10.58839,-2.07059 21.17467,-4.1525 31.75968,-6.24059zm119.82291,-6.10266c19.0054,-3.73169 38.01082,-7.46337 57.01573,-11.19506c2.25491,-12.51782 -14.4313,-1.3134 -21.22379,-2.14781c-31.19003,6.14807 -62.39655,12.21279 -93.5799,18.39685c-0.48135,12.89765 19.70091,-0.51173 28.22522,0.73721c9.8551,-1.92541 19.70967,-3.85648 29.56273,-5.7912zm-0.38611,-17.67071c18.94363,-3.8086 37.9825,-7.27608 56.86485,-11.31125c2.82944,-13.23789 -18.20175,0.42725 -25.56567,-1.09475c-29.37276,5.7406 -58.85979,11.05029 -88.16818,17.02811c-3.13626,14.0062 18.26253,0.04649 25.9276,1.4525c10.31329,-2.02775 20.62709,-4.05215 30.94141,-6.07461z",
            	"note_3_8th": "m15.02169,274.2272c-14.31707,-1.91879 -18.42601,-20.36015 -8.93697,-29.99103c10.3888,-13.67676 30.27088,-22.3091 46.50806,-13.88649c0.66166,-52.11824 0.28732,-104.24764 0.38611,-156.37097c81.97754,-16.40273 164.06694,-32.2636 246.07985,-48.4937c-0.2363,57.6225 0.57663,115.26395 -0.5712,172.87141c-1.96884,14.86089 -17.13589,24.73018 -30.79025,27.81644c-11.965,3.66806 -28.81323,-4.27919 -25.97937,-18.60878c3.50368,-15.49834 19.49124,-26.66568 34.8602,-28.02408c8.2316,-2.53128 20.41348,9.51646 16.65692,-5.23953c-0.07721,-45.31436 0.85016,-90.69309 -0.45593,-135.96806c-37.90379,6.83744 -76.18053,14.4211 -114.18623,21.74638c-0.22679,54.0925 0.53969,108.20272 -0.57019,162.28107c-1.77496,14.91302 -17.02997,24.75598 -30.69292,27.71687c-13.90182,4.60379 -31.50981,-7.66069 -24.80507,-22.93971c8.1866,-17.99985 32.25569,-30.36769 50.72748,-20.3566c0.32813,-48.569 0.14423,-97.14091 0.19258,-145.71125c-38.34256,7.86306 -76.73341,15.50194 -115.11303,23.18613c-0.70871,54.82025 0.60002,109.69145 -0.90556,164.48224c-5.27564,16.97054 -25.17379,27.85027 -42.40448,25.48964z",
            	"note_32nd": "m96.7115,298.78342c-12.19044,-1.97687 -21.5796,-13.65018 -18.87752,-26.14322c3.19898,-16.4884 18.16196,-28.11014 32.8273,-34.56326c11.8622,-4.83313 26.35187,-5.63437 37.63535,1.13913c0.44954,-79.35593 0.19681,-158.71518 0.26346,-238.07262c3.98198,-0.1698 8.54333,-0.99947 7.45644,4.60387c0.32353,13.2127 8.16176,24.35488 17.90031,32.62089c20.68701,19.0793 43.62003,41.1507 45.44289,71.03391c1.94933,11.70761 -4.32771,23.23071 -1.67,34.59584c2.53688,11.20206 1.78056,22.8308 0.17831,34.09036c7.53368,20.20854 5.71452,43.47615 -2.49284,63.20886c0.75815,6.16689 -13.8391,16.22797 -7.44476,5.95023c8.63434,-18.74539 13.17647,-41.8004 3.81317,-61.08943c-11.33986,-18.69514 -31.97612,-28.28085 -48.89772,-41.04474c-11.778,-11.86667 -5.42902,11.18993 -7.18364,18.06325c-0.26184,33.71661 -0.28255,67.43445 -0.41075,101.15173c-5.27325,12.84436 -14.94577,23.71875 -27.82796,29.29456c-9.44402,4.40988 -20.29373,7.32529 -30.71203,5.16064zm114.86545,-145.34879c-7.29857,-26.18551 -30.51866,-43.93251 -53.18727,-56.72259c-6.20538,-0.86809 1.83978,14.15399 3.5831,18.80585c8.11926,15.92772 24.10783,25.32948 35.63724,38.48439c5.02966,4.16844 10.75517,12.77017 14.6803,15.07132c0.57034,-5.18866 0.22502,-10.51091 -0.71336,-15.63898zm0.91826,-35.72012c-0.11551,-22.00919 -16.64085,-39.55235 -32.65781,-52.65142c-7.46819,-4.94457 -16.49954,-13.27054 -24.16978,-14.26883c1.45969,12.25124 6.9503,24.24821 17.03656,31.76259c14.34996,13.93145 29.52126,27.82796 39.47783,45.32379c1.14618,-3.04146 0.13112,-6.92123 0.3132,-10.16613z",
            	"note_4th": "m126.58881,297.40149c-11.87886,-2.65546 -23.26585,-13.54025 -21.01448,-26.56512c0.1731,-16.24911 13.85612,-27.71617 25.94878,-36.50977c15.62231,-10.78831 37.15717,-14.20154 54.34061,-5.04248c1.02979,-75.90828 0.44815,-151.83525 0.60191,-227.75206c3.00182,0.70564 9.53603,-2.12083 8.02534,3.09698c-0.14726,78.93155 0.33716,157.8673 -0.38513,236.79541c-0.07584,10.70851 -0.22026,22.31233 -7.75522,30.804c-13.91748,17.52454 -37.15509,29.1525 -59.76181,25.17303z",
            	"note_64th": "m104.92412,299.31976c-12.00094,-1.27536 -20.94641,-13.79388 -17.06551,-25.49271c6.43043,-17.60776 24.98182,-29.7767 43.42287,-30.74879c7.6006,-2.50558 20.88075,10.01114 17.93382,-3.27145c0.48503,-79.47305 0.24155,-158.94821 0.30153,-238.42232c5.75809,-1.70799 6.23006,2.55972 6.32732,7.33913c1.78415,17.85563 19.14293,26.89136 29.82072,39.25721c15.39714,15.12255 27.5349,36.04512 24.51741,58.34038c-3.08612,10.64033 -0.83701,20.84729 0.30066,31.5748c0.06851,11.58006 -4.18433,22.62605 -0.40593,34.00638c1.68036,11.01886 -3.23894,22.12428 2.03442,32.51251c2.40002,18.25101 0.69795,38.47595 -10.52008,53.59502c-7.11406,1.93207 2.97337,-8.35378 2.33067,-11.88858c6.3118,-18.25085 7.27405,-41.79056 -8.5262,-55.64728c-12.36734,-10.82431 -26.50575,-19.43405 -39.98901,-28.77931c-0.71652,35.81755 -0.4848,71.65158 -0.68907,107.47679c-5.08496,13.03387 -16.00215,23.09641 -29.22493,27.57315c-6.53331,2.3526 -13.63996,3.72845 -20.5687,2.57507zm98.72386,-126.48091c-6.34319,-22.74789 -26.51086,-38.16362 -46.20412,-49.27464c-5.25957,0.57732 2.32552,14.64314 4.87614,19.57021c8.86444,13.06609 22.37558,21.98311 32.7415,33.78232c3.44377,1.45969 10.43367,15.90742 9.37975,5.93784c0.13239,-3.35165 -0.09975,-6.73082 -0.79327,-10.01572zm0.7843,-31.02991c0.01227,-19.15482 -14.53879,-34.37045 -28.41721,-45.78492c-6.00691,-3.41928 -16.78343,-14.40513 -20.81033,-10.93629c1.48004,11.20951 7.52783,21.1048 16.47551,27.9065c11.85971,11.75211 24.67769,23.13779 32.59132,38.04211c0.77432,-2.77734 0.04828,-6.25352 0.16071,-9.2274zm0.01279,-39.15976c-0.40309,-21.71703 -17.74644,-38.41104 -34.56728,-49.83583c-4.69977,-2.50358 -18.46306,-14.73891 -13.78862,-1.7836c3.12802,17.13914 19.8609,25.3779 30.46255,37.43516c7.16287,5.47251 13.39691,18.87303 18.00247,22.03555c0.14136,-2.61625 -0.03749,-5.23595 -0.10913,-7.85128z",
            	"note_8th": "m92.11929,299.44888c-12.88673,-2.17523 -24.85642,-14.0065 -22.42534,-27.8176c1.23042,-15.16177 13.28207,-27.36446 25.40788,-35.40434c16.13786,-10.9864 38.20284,-15.06764 55.98708,-5.59207c1.04205,-76.42476 0.44817,-152.86866 0.60602,-229.30206c11.21484,-2.71548 7.58873,11.96767 10.1358,18.75797c2.43044,19.96716 15.82285,35.63469 29.15343,49.62502c16.53877,17.58521 34.10059,36.23084 39.47629,60.59399c5.87012,28.26657 -3.51422,57.18356 -15.69261,82.51581c-0.88187,8.11874 -15.77403,19.86469 -8.67888,5.1937c11.94699,-25.09727 21.81674,-54.00095 13.66216,-81.79225c-7.76553,-27.73048 -31.97011,-50.88958 -60.78398,-55.04219c-0.18622,58.55498 0.45346,117.12103 -0.68288,175.66663c-2.83272,17.24548 -17.81155,30.04147 -32.83268,37.34811c-10.35778,4.50974 -22.04797,7.23831 -33.33228,5.2493z",
            	"note_half": "m126.15042,298.46863c-16.82465,-2.00256 -23.94094,-21.72537 -20.50175,-36.48892c5.91676,-23.32147 29.06407,-39.43811 52.28738,-42.05833c8.81128,-0.72736 18.52644,-0.60411 25.78337,4.94891c5.95566,-2.36537 1.76544,-11.69408 2.85246,-17.2854c0,-68.81003 0,-137.6201 0,-206.43012c14.97716,-2.18183 5.30603,19.02521 7.94768,27.71113c-0.09924,75.95386 0.62134,151.91534 -0.76007,227.86198c-7.30341,28.38443 -39.39244,46.36703 -67.60907,41.74075zm2.8452,-12.40747c22.98492,-7.3089 44.37535,-22.56259 55.31068,-44.49013c0.95541,-13.55527 -16.00528,-10.73553 -23.6718,-6.15868c-13.5024,6.76553 -26.21068,15.65268 -36.74068,26.51123c-6.99238,6.4256 -15.89267,26.17618 0.78696,25.05563l2.30408,-0.3252l2.01074,-0.59286l0,0z",
            	"note_whole": "m130.51953,195.65829c-18.47874,-2.9818 -38.13104,-9.41365 -49.81914,-24.96915c-4.87284,-6.5025 -6.85786,-14.78229 -6.23731,-22.81049c-0.81288,-10.41815 5.23877,-19.78279 13.11027,-26.04227c15.71593,-12.69998 36.4436,-17.12403 56.18739,-18.21444c21.01479,-0.84168 42.85126,2.6237 61.20964,13.32044c11.19275,6.86285 21.10484,18.66567 20.54733,32.45548c0.612,8.09668 -0.91914,16.68852 -6.59294,22.84065c-11.24144,13.63681 -28.92738,19.59387 -45.72455,22.87505c-14.06622,2.54445 -28.55254,2.69426 -42.68069,0.54472zm34.33258,-7.95905c9.06644,-1.9348 15.01314,-11.03741 14.88672,-20.03276c1.54852,-18.89767 -4.73529,-39.56404 -20.09192,-51.52234c-8.61502,-6.06224 -20.8895,-6.65757 -30.00668,-1.42353c-6.79661,4.10276 -9.33514,12.23845 -9.31819,19.7824c-0.73656,16.04378 3.97748,32.8201 14.66045,45.0217c7.49542,7.87076 19.3475,12.08484 29.86963,8.17453z"
            	}
            }
          • object.json
            {"data": {
            	"ball": "m1.36762,144.54343c-0.61252,-24.33647 11.43968,-48.24649 31.71385,-61.85355c33.0555,-25.12355 76.68359,-36.57172 117.69406,-29.65477c20.30775,-3.13354 29.29549,17.94864 22.15137,34.18353c-11.04268,10.79923 -30.25032,0.52836 -44.5518,6.11385c-46.3661,5.97041 -92.1348,26.12911 -123.47163,61.54787c-0.19116,-3.78908 -5.04203,-6.31387 -3.53584,-10.33693zm0.56006,21.59657c2.46893,-17.16783 19.59014,-26.10648 31.49495,-36.53964c40.07716,-28.36518 90.31613,-39.61352 138.89854,-37.70576c1.20387,19.56051 -8.00084,38.23036 -19.07559,53.7263c-15.20721,8.47826 -34.11861,-1.17561 -50.23914,6.54221c-28.27367,6.8441 -59.74523,15.46761 -77.84163,40.11734c-6.57559,19.79451 -20.47401,-0.35286 -21.54921,-12.00313c-1.52846,-4.62877 -1.3158,-9.384 -1.6879,-14.13731zm7.76269,-58.70418c2.42006,-21.53997 16.61662,-39.35048 29.64042,-55.76294c14.68114,-17.49181 34.66698,-30.31521 57.12629,-35.01287c17.80165,-4.64955 36.14864,-6.58389 54.39959,-8.53692c13.84103,10.63111 22.64574,29.11792 20.32661,46.60463c-10.75017,2.72292 -29.7578,-6.48294 -44.25362,-4.23798c-41.11142,0.38721 -83.13954,16.86419 -110.9226,47.60359c-2.31326,2.96635 -4.3931,6.11006 -6.31669,9.34248zm-2.20363,84.97105c15.37329,12.3277 15.8773,33.69405 25.32488,49.77684c-11.32475,-14.57886 -21.29314,-31.61081 -25.32488,-49.77684zm12.17333,11.7446c4.82258,-13.28815 19.94093,-31.96367 32.55468,-30.57486c5.04242,12.98813 7.22698,27.06129 15.42273,38.77007c22.00548,40.39473 62.27551,75.33984 110.15025,76.43997c7.82913,1.58691 28.58411,-3.6853 27.74063,-1.50394c-20.00963,9.82742 -43.17618,11.98239 -65.22374,11.19174c-40.94611,-2.71915 -81.7309,-22.38535 -106.34646,-55.65858c-6.96676,-11.95032 -10.92698,-25.33659 -14.29809,-38.66251zm33.70255,-33.88084c11.04849,-5.13829 31.74819,-20.7682 40.05036,-8.17067c20.26116,39.90601 54.51507,73.83781 96.68548,89.7942c21.8947,7.30453 46.52556,7.18939 67.87685,-1.92662c-8.90472,13.82597 -23.64018,22.69292 -37.52655,30.83714c-35.49046,15.14874 -78.39111,6.93469 -108.29421,-16.68286c-28.94243,-22.9118 -51.66176,-55.70389 -58.71476,-92.285l-0.04169,-0.84726l-0.03548,-0.71893l0,0l0,0zm14.80587,-143.69432c26.85995,-18.47492 60.14433,-27.13922 92.60995,-24.83766c-16.61871,10.60714 -37.47179,6.57748 -55.695,12.32051c-12.71339,2.76803 -25.33243,6.4903 -36.91495,12.51714zm23.19239,130.17215c17.68391,-8.37067 37.80864,-8.2348 56.92004,-7.08942c11.52194,17.94525 19.73788,38.80402 37.6284,51.74121c20.84937,18.617 51.18832,23.87227 77.45898,15.12419c9.02167,-6.09496 19.03778,-2.20023 14.1109,9.88971c-5.93085,20.07378 -26.98962,28.88977 -46.28781,29.86346c-39.48146,3.94382 -75.60028,-18.48682 -102.27098,-45.57831c-15.55914,-15.57706 -28.70033,-33.74123 -37.55954,-53.95085zm59.9713,-149.25921c14.39017,-11.41684 33.98842,-1.08634 48.71259,4.37706c14.6449,12.52997 16.60739,33.37817 20.47758,51.17717c6.47049,41.78263 3.85324,86.6684 -15.69031,124.8082c-4.67027,13.36929 -18.09242,20.61154 -26.69522,6.15724c-9.99724,-11.02568 -17.64142,-23.85532 -24.85538,-36.77173c-4.26648,-12.35977 9.69913,-21.07201 12.62395,-32.37317c5.6987,-11.2672 7.1479,-23.94022 7.7876,-36.27168c2.68518,-18.44756 0.04341,-37.58501 -4.80806,-55.44724c-3.40224,-9.88385 -8.92734,-19.45691 -17.55275,-25.65586zm41.36089,197.33399c28.32747,-32.0033 32.81847,-77.44762 30.6862,-118.36129c-1.29825,-24.12249 -4.96657,-49.05092 -17.68674,-70.0582c13.14473,0.40704 27.28206,12.75397 37.58124,21.8466c29.18982,37.11403 37.77368,91.40852 15.58273,134.05255c-8.72922,17.24329 -20.55305,32.80717 -34.43375,46.22929c-11.62009,-0.9548 -23.39864,-5.3515 -31.72969,-13.70895zm32.30334,13.89389c30.50691,-29.40305 52.59978,-71.66214 46.00664,-114.99303c-2.62479,-20.29454 -10.03497,-39.89902 -21.13239,-57.06778c20.32477,12.66527 31.62595,35.09759 41.79111,55.93748c14.61285,36.42265 6.66864,80.8159 -19.44537,109.92648c-13.41086,7.60643 -32.33356,8.77071 -47.21999,6.19685zm50.22404,-6.80072c10.46527,-18.28113 22.34006,-36.81323 23.43076,-58.50224c1.62656,-7.25171 -0.89633,14.22787 -1.77191,18.74721c-2.78329,15.96013 -6.41766,32.99399 -16.3092,46.01608c-2.27573,-1.26239 -1.2605,-7.4102 -5.34964,-6.26105z",
            	"bolt": "m178.14388,74.00616l-108.49727,68.79685l107.15599,23.63498l-99.04335,73.85934l-39.98779,-12.47227l28.36194,71.19228l112.7131,-31.06076l-47.58928,-12.98325l129.22581,-106.08589l-118.12698,-19.22734l114.07071,-71.6874l-65.0681,-10.76349l70.86891,-45.56109l-26.03423,-0.65478l-109.97452,62.50492l51.92505,10.50792z",
            	"bulb": "m148.28435,1.01645c-19.71313,-0.08707 -41.0383,4.93402 -53.87904,21.08005c-10.00002,11.90277 -20.52196,24.53872 -22.82235,40.47736c-5.18059,28.1529 -4.92928,57.93743 3.64143,85.4047c4.96631,13.63997 16.45209,23.50325 23.37698,36.11604c9.14968,13.20706 13.47519,29.26166 12.26267,45.27029c24.17088,0 48.34173,0 72.5126,0c0.07924,-23.9402 14.94635,-43.62665 28.19687,-62.22926c9.25131,-10.94521 15.23657,-24.20433 17.34691,-38.38177c4.07767,-25.40971 5.00331,-52.60092 -4.43568,-76.9665c-8.96201,-18.6421 -19.94247,-39.09958 -40.93047,-46.16479c-11.25407,-4.11034 -23.39734,-4.80265 -35.26991,-4.60611zm-36.97603,226.70836c24.34058,0 48.68115,0 73.0217,0c-4.36798,8.93942 -9.9079,18.74007 -6.84158,28.88942c-4.05983,8.82452 1.13719,17.61151 -5.54364,25.68655c-2.46005,11.06699 -16.46573,11.92905 -25.84717,12.23193c-10.13806,1.12546 -21.40701,-1.68927 -25.2739,-12.25085c-8.04343,-5.6481 1.65114,-12.52795 -4.58124,-18.87732c7.18661,-7.80208 -5.34555,-11.88156 -0.88777,-20.35059c-1.22452,-5.78517 -5.73284,-8.48584 -4.0464,-15.32915zm-0.15865,0.0249c24.34056,0 48.68114,0 73.02171,0c-1.83408,8.68544 -9.76653,16.89687 -6.75067,25.63821c1.71628,7.25716 -5.42461,13.19765 -1.14021,20.86113c-3.26378,9.1944 -9.79655,19.57855 -20.90657,19.54898c-10.7323,0.01825 -25.30243,3.58121 -31.95258,-7.11847c-2.51509,-6.44772 -10.6368,-10.31369 -4.40095,-17.31061c-7.73209,-5.79929 5.18552,-14.38748 -4.75156,-18.20934c4.72482,-9.15317 -5.09683,-14.41997 -3.11917,-23.40991l0,0zm-0.30553,-0.19208c24.34058,0 48.68115,0 73.02173,0c-1.83408,8.68544 -9.76651,16.89688 -6.75064,25.63823c1.71623,7.25714 -5.42465,13.19763 -1.14023,20.86111c-4.2211,6.69464 -8.74136,17.62585 -17.58711,18.4115c-9.70837,0.11472 -19.41676,0.2294 -29.12514,0.34415c-6.65182,-7.13144 -16.14077,-15.45563 -10.92694,-24.96432c-7.35572,-5.15384 5.77059,-13.49446 -4.37249,-16.88078c4.72483,-9.15317 -5.09684,-14.41994 -3.11918,-23.40988l0,0zm19.95543,64.05962c10.3149,0 20.62982,0 30.94472,0c-3.3429,2.41727 -5.36609,8.04688 -10.20465,6.82349c-4.97464,-0.38892 -10.5618,0.58282 -15.16096,-0.64023c-1.8597,-2.0611 -3.71941,-4.12219 -5.5791,-6.18326zm11.23076,-64.53401c-3.56728,-52.49875 -7.20926,-74.75493 -20.64074,-106.52489c-13.43148,-31.76996 -2.88758,-21.17014 27.12348,-24.60654c30.01106,-3.43639 13.46907,9.90684 13.48128,34.43486c0.01221,24.52803 1.7489,36.82391 3.69955,58.10826c-1.9278,20.61055 1.80084,20.75101 -2.79076,37.25708",
            	"car_smart": "m28.92024,238.37814c-20.54175,-8.15092 -27.36674,-32.3504 -27.6178,-52.52942c-2.7836,-14.94118 14.71887,-25.93048 8.95686,-41.2937c-2.18657,-22.71175 4.68564,-45.20703 14.9548,-65.22043c0.32475,-12.85873 10.87969,-17.84956 22.37955,-17.11762c37.15603,-4.71741 74.98359,-4.84966 112.15372,-0.39277c22.18198,4.11681 39.85953,19.32546 58.61859,30.81274c11.63586,8.63808 25.21985,14.32888 36.92355,22.63131c12.64026,10.62529 24.51556,22.47708 33.27448,36.57193c3.15143,14.09033 7.38165,28.09947 9.54742,42.2829c4.39661,13.27223 -4.6037,21.62047 -11.41214,30.84103c-10.34,12.57306 -29.90723,17.53416 -44.71561,10.78313c-10.28528,-3.75465 -14.07077,-19.70746 -25.7968,-18.60466c-44.20906,-0.65964 -88.41812,-1.31926 -132.62719,-1.97884c-10.24168,13.44736 -24.40165,28.14365 -42.91705,26.05086c-4.02312,-0.33679 -7.97831,-1.33774 -11.7224,-2.83646z",
            	"car": "m26.77284,183.48201c-8.08779,-6.80998 -23.25337,0.56996 -25.08215,-11.86069c-3.52016,-11.04616 7.23365,-19.6761 14.38957,-26.36473c12.51913,-6.23676 26.95447,-6.99092 40.49323,-9.84883c16.2238,-2.35439 33.11552,-4.36668 47.10119,-13.71207c15.9294,-9.9651 33.67083,-18.25834 52.86141,-18.11141c26.44141,-0.91634 53.7986,-0.02856 78.2453,11.26058c15.36688,6.93465 31.87709,10.4591 48.27711,13.85143c13.95395,1.83385 10.70889,16.88237 15.35007,26.15973c3.54291,10.65329 -4.11594,21.25732 -15.32654,21.59605c-11.85318,2.69405 -25.72552,2.95921 -34.00009,13.30453c-8.47623,9.38277 -23.69647,9.05888 -32.32811,0.09547c-3.56866,-2.21568 -5.9512,-7.58008 -10.70335,-6.65411c-44.31184,0.24008 -88.64653,-0.63266 -132.93902,0.78894c-11.57394,-0.92139 -16.38131,13.44077 -28.69251,12.44249c-6.30352,0.19554 -12.27285,-9.98318 -17.64611,-12.94739z",
            	"coud": "m193.50864,67.27344c-28.56444,0 -53.08249,14.81322 -65.08365,36.1982c-4.7932,-2.67596 -10.08009,-4.29625 -15.72245,-4.29625c-17.06268,0 -31.26126,13.72618 -35.64974,32.35901c-7.49058,-2.96072 -16.20005,-4.7533 -25.50328,-4.7533c-27.90971,0 -50.54951,15.27039 -50.54951,34.09579c0,16.99312 18.56764,30.96303 42.68829,33.54732c-1.08106,1.83421 -1.91961,3.65059 -1.91961,5.57599c0,18.02431 49.38134,32.72462 110.23999,32.72462c60.85864,0 110.24005,-14.70032 110.23999,-32.72462c0,-1.21274 -0.75272,-2.29501 -1.18832,-3.47357c2.66562,0.6629 5.30496,1.37115 8.22687,1.37115c16.28061,0.00005 29.5253,-11.06223 29.5253,-24.6806c0,-13.61838 -13.24469,-24.68059 -29.5253,-24.68059c-1.99515,0 -3.69165,0.68915 -5.57599,1.00551c1.64767,-5.44531 2.74228,-11.00153 2.74228,-16.91078c0,-36.04859 -32.63087,-65.35786 -72.94485,-65.35786z",
            	"drop": "m115.15536,295.759c-42.01334,-15.78687 -72.12711,-65.94934 -65.28346,-108.74701c4.3154,-26.98718 95.35947,-190.81818 103.3105,-185.90417c2.59511,1.60386 25.68835,39.79974 51.31831,84.87975c41.0565,72.21342 46.5999,85.67899 46.5999,113.19665c0,55.77716 -44.6394,101.46498 -98.23825,100.54555c-15.6409,-0.26834 -32.60906,-2.05518 -37.707,-3.97076zm42.09262,-28.05386c1.39066,-7.22116 -1.85785,-10.74289 -9.90955,-10.74289c-18.35065,0 -43.80598,-23.24161 -49.49309,-45.18889c-6.0666,-23.41179 -22.15186,-26.19615 -24.52774,-4.24574c-4.57746,42.29059 76.21872,100.22086 83.93037,60.17752z",
            	"electric_guitar": "m168.96899,1.09303c-2.62799,0.19977 -5.017,2.04496 -6.96899,4.55579c0.009,13.46278 -11.116,25.03858 -14.875,34.35928c2.30499,1.8475 1.13,2.9332 -1.03101,4.4286c-0.17,2.5165 0.468,4.9685 2.468,7.3554c-2.591,41.8755 -6.024,92.17889 -8.718,134.4599c6.14801,0.138 12.354,1.117 18.81201,0.687c-0.007,-32.55499 2.539,-84.562 3.282,-116.00749c-0.101,-10.2094 -0.504,-24.029 13.12399,-28.8618c-6.94499,-14.7833 5.922,-35.70095 -5.562,-40.97666c-0.146,-0.00122 -0.293,-0.00885 -0.438,0c-0.03099,0.00187 -0.062,-0.00236 -0.093,0l0,-0.00001zm11.692,171.76396c-4.715,6.66701 -11.79199,10.17 -14.146,13.60501c-5.37599,8.46799 -14.379,-3.16701 -26.89,2.99599c0.065,-1.02399 0.153,-2.172 0.21899,-3.20599c-0.07199,-0.002 -0.14699,0.00101 -0.21899,0c-6.659,1.013 -12.157,-7.713 -12.594,-15.44901c5.55199,-11.89 -14.242,-18.006 -19.5,-5.82899c-3.943,13.605 -0.41,27.51199 4.78201,40.672c5.933,16.162 -8.871,30.179 -13.2192,45.17601c-4.1375,9.502 -4.2709,20.46999 2.68719,29.192c9.486,13.58398 29.413,18.62799 47.563,18.758c3.23401,0.224 6.44801,0.414 9.68701,0.58499c57.61699,3.284 34.35399,-35.13699 25.282,-68.41299c-5.82201,-21.66299 1.48199,-36.38 6.269,-42.614c2.659,-7.35001 6.02899,-23 -9.92101,-15.472l0,-0.00101zm-34.567,-128.4203c2.43501,-11.918 -8.10399,0.709 0,0z",
            	"guitar": "m158.45264,1.00012c-0.96039,0.00612 -1.8884,0.06411 -2.73161,0.18457c-4.49716,0.64245 -8.99768,2.5655 -8.99768,2.5655c0,0 0.00569,8.99612 -0.63676,15.42064c-0.64244,6.42453 -3.21147,17.34015 -3.21147,17.34015l3.15611,6.32144l0.05536,-1.172l10.62189,1.86414l0.94128,0.05537c0,0 1.28059,-1.28413 2.56551,-3.21148c1.2849,-1.92736 3.85747,-3.21148 3.85747,-3.21148c0,0 0.63675,-9.63641 0.63675,-16.70339c0,-7.06698 2.57472,-18.63212 2.57472,-18.63212c0,0 -4.66991,-0.84783 -8.83156,-0.82133zm-1.74417,42.52442l-10.62189,-0.58139l-0.05536,-0.11074l-5.5278,113.65688c0.19376,0.03734 0.44296,0.08304 0.44296,0.08304c0.14801,2.18161 0.8121,3.84209 1.8549,5.14021l11.84926,5.41707c0.3562,0.09476 0.71249,0.18806 1.07048,0.28609l1.28276,-123.83578l-0.29532,-0.05537zm-0.98744,123.89115l0,0.20302l-1.07048,-0.48911c-4.80661,-1.27875 -9.3821,-2.34575 -11.84926,-5.41707l-2.5009,-1.14432l0.20303,-4.07893c-2.16553,-0.41753 -15.40038,-2.83867 -20.1179,-0.47989c-5.13962,2.56979 -8.99552,6.42279 -10.28043,14.77466c-1.2849,8.3519 2.57119,23.77351 1.92873,34.05275c-0.64246,10.27924 -7.71416,19.91469 -10.92641,28.26657c-3.21227,8.35188 -6.4202,17.99007 -2.5655,32.12404c3.85472,14.13391 17.99164,23.77151 25.70107,26.9838c7.70942,3.21225 23.7631,5.14023 23.7631,5.14023c0,0 15.42752,2.58041 25.06432,1.93796c20.23672,-3.64624 28.72404,-15.65756 29.98303,-30.66595c1.259,-15.00839 -4.71521,-33.01251 -13.40884,-48.65207c-9.50552,-17.10013 8.59656,-39.76326 -0.76596,-52.52802c-9.74182,-13.28188 -16.9409,8.64334 -23.78156,3.87593c-2.77655,-1.93504 -6.09895,-3.00655 -9.37605,-3.90359z",
            	"helicopter": "m145.07504,214.22588c7.36339,2.46503 20.68225,-9.04681 7.26401,-9.72079c-9.08205,-5.71648 20.13416,-1.63675 8.22827,-13.70961c-12.73747,-2.77332 -22.69479,-12.46857 -27.12979,-24.871c-5.18111,-13.36012 -22.04633,-9.68964 -33.09622,-13.54991c-22.05075,-3.93678 -44.07657,-8.59007 -66.50366,-9.73877c-7.45861,8.40495 -10.97594,26.46114 -24.24853,25.75703c-13.26779,-6.6758 0.56035,-23.43509 -3.41489,-33.00934c-7.79329,-2.62592 -6.3066,-7.72096 1.2938,-8.36586c11.59587,-8.00312 1.94812,-23.47349 -0.57486,-34.01581c-6.13778,-10.01295 7.00565,-18.8414 12.01386,-7.02641c6.38165,12.3224 10.0863,25.85204 15.15507,38.7706c1.5816,8.28716 13.30507,3.58878 19.44516,6.06101c25.89155,2.78554 51.80775,5.58556 77.83869,6.66318c13.03992,-5.6261 26.8783,-10.34038 41.29993,-8.34114c10.08574,3.05644 15.78185,-0.7104 15.3338,-11.13895c5.72609,-15.02095 -14.03151,-8.3312 -22.93935,-10.54208c-35.53757,-1.72837 -71.18015,-2.25171 -106.70476,-0.12757c-7.88696,-1.96813 10.41693,-1.78943 13.19444,-2.24187c37.48436,-1.98021 75.04819,-1.00611 112.54227,-2.69012c10.81163,-3.98792 21.54251,3.11311 32.56555,1.91049c27.80304,1.13907 55.63103,1.5356 83.45552,1.62198c-7.86588,5.84674 -22.53885,0.05771 -32.94354,1.5061c-20.90826,-0.64194 -41.94905,-1.24406 -62.73434,1.6021c-8.09567,7.82163 -3.84563,24.5245 6.28453,28.41502c10.32359,5.55025 20.91692,10.41565 30.31529,17.0117c5.93991,11.31316 22.72864,20.80537 17.77679,35.05132c-5.67494,11.7886 -26.25294,4.37625 -31.4632,7.69153c3.85466,6.8309 17.16597,7.52176 19.55997,10.01913c-13.12518,3.78056 -0.61014,11.85339 6.85498,9.29091c9.21201,2.18106 -9.36668,3.71298 -12.4339,2.99583c-14.92371,0.12004 -29.83833,-0.52202 -44.7583,-0.72722c14.41679,-0.6433 28.87468,-0.63033 43.24721,-2.05975c-3.35245,-13.78374 -21.0649,-7.04161 -31.27078,-9.43388c-4.97525,-2.55072 -21.3748,0.68501 -13.06122,5.71829c4.63876,-2.08994 15.97667,-0.09111 5.65021,2.25237c-18.67735,0.60303 -37.42494,0.87289 -56.04201,-1.0285zm45.45972,-5.72816c-5.69293,-8.23618 -25.36656,-6.65369 -28.94688,0.84814c6.97417,5.6115 21.3663,3.65866 28.78714,0.2599l0.15974,-1.10805l0,0zm41.15115,-4.79669c-8.39107,-5.92067 -23.748,-6.57408 -31.28664,-1.76099c9.46599,4.52687 21.07687,2.68456 31.28664,1.76099zm-41.46053,-2.71213c8.91602,-7.60876 -15.73071,-6.19264 -21.17932,-5.80487c-13.47525,6.12955 5.46666,7.82239 11.1256,6.8177c3.37151,-0.02223 6.75697,-0.27522 10.05373,-1.01283z",
            	"katana": "m127.28507,65.14041c-7.0962,-0.54353 -19.86895,7.61395 -17.02093,-6.32892c4.93732,-8.55679 18.30521,-4.48845 16.78561,5.48313l0.17354,0.62374l0.06178,0.22205l0,0zm17.16403,-18.49577c-6.77293,11.60114 -22.03173,12.43076 -33.48896,16.75148c-5.30647,3.04373 -26.81981,5.02184 -18.62814,-4.27034c11.69819,-7.75446 26.08649,-9.62626 39.25734,-13.85468c4.24069,-0.99664 9.15976,-1.38791 12.85976,1.37354zm-35.03055,12.26915c-5.16663,-17.73298 -10.33324,-35.46593 -15.49986,-53.19891c6.32053,-8.5978 20.25586,-4.8693 18.32531,6.59137c4.01678,13.78642 8.03355,27.57289 12.05032,41.35935m-5.56697,9.33072c22.56753,79.08354 48.81091,157.2375 81.6054,232.70842m-75.6467,-234.76585c22.79797,74.42342 46.12929,148.92492 77.59851,220.23124c0.43317,5.52475 14.80417,22.08911 1.77542,17.81497c-4.05151,-1.9415 -10.97104,-0.62137 -11.72156,-6.31741c-30.74268,-74.29929 -57.39734,-150.28568 -79.92033,-227.47363",
            	"leaf_1": "m35.63904,285.5213c9.77121,-31.99348 23.14531,-59.08864 35.83149,-72.59245c13.5912,-14.46718 7.56125,-20.74258 -6.45918,-6.72212c-5.89857,5.89853 -7.58387,1.61555 -7.58387,-19.2735c0,-49.83961 25.83589,-80.67891 87.99842,-105.04016c52.59872,-20.61333 91.37741,-43.79435 107.45589,-64.23479l13.10197,-16.65652l0,28.9807c0,35.83507 -11.11781,89.97318 -23.42422,114.0641c-13.0549,25.55626 -57.80217,72.72934 -79.76038,84.08435c-19.67261,10.17316 -61.687,13.16808 -84.14172,5.99792c-11.19011,-3.57314 -14.7415,-0.84308 -20.53963,15.78944c-3.8556,11.06018 -7.0102,26.79501 -7.0102,34.96616c0,9.27652 -3.72057,14.8566 -9.90572,14.8566c-7.3461,0 -8.78352,-3.67429 -5.56284,-14.21973z",
            	"menorah": "m86.17095,270.72717c9.02267,-23.09398 33.59461,-36.70894 57.45916,-38.45409c0,-4.91623 0,-9.83244 0,-14.74866c-38.305,-2.75075 -76.20534,-18.86525 -101.66333,-48.29793c-23.2569,-24.97108 -35.58256,-58.55817 -37.27682,-92.42073c-13.45491,-9.58464 12.56556,-16.55834 15.7355,-5.95607c-7.24909,8.79617 -0.22592,22.59306 0.80432,33.36646c11.47956,50.91395 56.38975,91.60496 107.78628,98.82449c13.14264,5.82442 16.6395,-2.00252 14.39308,-13.99509c2.81267,-9.48175 -7.44086,-6.60333 -13.57417,-8.37358c-40.52152,-7.1041 -75.7263,-38.65041 -86.11595,-78.75394c-2.97659,-11.47399 -3.94458,-24.11363 -7.5694,-33.51495c7.70256,-6.02401 26.19639,-1.60448 15.97076,9.15671c1.09565,45.56244 38.91488,85.76277 83.65269,91.48959c9.24995,4.52249 8.18915,-3.21457 7.85701,-9.40932c4.90146,-15.06035 -9.71606,-12.79654 -19.53952,-16.50067c-27.62657,-9.39215 -47.87568,-36.35101 -49.79039,-65.51331c-13.2153,-11.51691 15.74928,-17.53994 15.95383,-5.55531c-7.59098,8.84892 0.96818,23.21689 5.54156,32.6564c10.3335,16.84724 28.24842,28.22102 47.83452,30.47823c0,-7.52246 0,-15.04491 0,-22.56738c-18.20905,-2.81535 -32.7534,-18.72141 -34.8131,-36.97318c-12.40635,-10.10166 14.58986,-14.97282 16.53119,-5.29626c-6.736,5.28018 -1.66743,13.75206 2.28733,19.47478c2.82583,3.38407 16.81124,15.16281 15.99458,6.28913c0,-10.03232 0,-20.06463 0,-30.09695c-8.52963,-5.41637 3.21713,-9.02356 -1.91258,-15.41792c2.95047,-6.63559 4.28693,-23.79965 6.49635,-24.00391c7.40089,10.5439 4.63795,25.17949 11.62167,34.34932c-3.85376,4.14688 -4.52328,8.74758 -3.86568,14.89357c0,8.05796 0,16.11592 0,24.17388c11.03737,-3.24367 21.02812,-12.42406 21.72646,-24.48188c-12.61211,-14.80839 30.69243,-11.52931 12.71999,1.59949c-1.87195,17.85434 -17.0993,32.57059 -34.44644,35.57887c0,7.49281 0,14.98562 0,22.47842c29.68999,-2.98224 55.87296,-29.1582 56.39926,-59.47436c-12.36238,-13.6567 27.91393,-12.75137 14.12813,-0.52898c-3.16423,14.80594 -6.23018,30.54218 -16.29872,42.63571c-12.70108,17.1765 -33.04718,27.37456 -53.98901,29.78134c0.16994,9.14496 -4.65584,28.46082 11.13493,20.75519c39.31322,-6.69104 72.74197,-39.63307 78.74797,-79.43351c5.73982,-8.84732 -8.70837,-25.00382 8.28397,-22.77648c10.50046,-2.44997 11.98193,6.34405 5.8692,11.72792c-2.04736,35.89314 -21.91298,70.45303 -53.09749,88.60141c-15.52945,9.13074 -33.16388,14.88533 -51.17824,15.85547c0.17836,7.53169 -0.4761,15.16116 0.61618,22.6142c35.31798,-2.81911 70.08339,-18.10321 93.11932,-45.67516c20.51892,-23.04272 31.08511,-53.43816 32.84753,-84.00375c-10.43478,-10.04525 11.39471,-11.61442 16.59445,-7.04305c-5.883,11.66189 -5.21661,27.04671 -9.11984,40.52295c-12.68921,53.08224 -58.41412,95.84925 -111.85593,105.51876c-7.32545,1.56883 -14.77785,2.36348 -22.20172,3.29227c-0.71042,9.09981 -0.50818,18.35449 11.59822,16.61531c20.59241,4.32626 40.36211,18.55411 46.94081,39.19469c-43.09088,0 -86.18179,0 -129.2727,0c0.31159,-0.88608 0.62314,-1.77219 0.93477,-2.65823zm-82.88959,-208.5947c-0.54892,-8.1144 4.33617,-25.42208 5.66115,-27.43132c2.27143,7.42761 12.58555,23.78434 4.72879,28.60384c-3.29131,-0.38358 -8.04816,1.57556 -10.38994,-1.17252zm34.52483,0.55147c-1.7146,-10.01769 5.4567,-19.41309 4.51432,-29.75311c3.2196,8.43034 16.36395,29.47998 1.96646,30.42084c-2.16732,-0.0773 -4.38702,0.03559 -6.48078,-0.66772zm35.62526,-0.17229c-1.52428,-9.82734 5.20364,-19.12723 4.61758,-29.264c3.98769,8.50923 17.39558,32.7104 -0.82941,30.07944l-1.91212,-0.12625l-1.87605,-0.68919l0,0zm34.60818,0.26421c-1.9521,-10.01891 5.40411,-19.48301 4.43661,-29.84504c3.27068,8.4848 16.29427,29.36411 1.98981,30.63179c-2.15335,-0.08198 -4.37302,0.0215 -6.42642,-0.78675zm69.2087,-0.38279c-1.5544,-10.07727 5.31645,-19.6095 4.34973,-30.05398c2.70531,5.08463 6.32187,13.73424 7.91895,20.50951c4.77353,11.03205 -3.95122,12.51878 -12.26868,9.54446zm35.71176,0.44493c-2.89404,-9.75608 5.30412,-19.55815 4.07715,-29.90718c3.42241,8.32418 12.40758,23.15913 6.53528,30.337c-3.53609,0.01955 -7.13571,0.41735 -10.61243,-0.42982zm34.8703,-0.20629c-2.23303,-8.13288 4.34842,-24.82986 5.07388,-28.23849c3.49849,8.39077 16.5291,33.58521 -2.7937,28.93562l-2.28018,-0.69713l0,0zm35.10023,-0.15336c-1.90784,-8.93159 5.20419,-21.786 4.83258,-28.71239c3.47043,8.02287 16.97986,32.30244 -0.94669,29.60343l-1.89111,-0.14957l-1.99478,-0.74147l0,0z",
            	"sun": "m238.69324,135.65587c0,46.60593 -40.30034,84.38748 -90.01332,84.38748c-49.71299,0 -90.01332,-37.78156 -90.01332,-84.38748c0,-46.6059 40.30033,-84.38747 90.01332,-84.38747c49.71298,0 90.01332,37.78154 90.01332,84.38747zm-7.30318,120.56636c-4.20586,5.25757 -51.12886,-47.27794 -57.30507,-44.69331c-6.17622,2.58458 -15.51068,86.52086 -22.0425,87.47173c-6.53188,0.9509 -17.76118,-85.09837 -24.12714,-87.15329c-6.36602,-2.05495 -43.23042,49.74286 -48.75608,45.85272c-5.52563,-3.89009 13.12091,-67.11951 10.04803,-73.73549c-3.07288,-6.61595 -73.34953,-9.72229 -74.79697,-17.10284c-1.44742,-7.38055 63.69369,-26.7453 64.2322,-34.0554c0.53854,-7.31011 -43.73452,-48.6129 -41.1993,-55.02096c2.53526,-6.40806 61.81988,21.03078 65.82475,15.40928c4.00487,-5.62149 -7.80805,-76.34053 -1.73039,-78.4587c6.07763,-2.11818 42.59449,47.54089 49.0827,47.30339c6.48817,-0.23753 26.02002,-62.46352 32.64861,-61.00949c6.62865,1.45401 3.32251,66.01247 8.45366,70.32287c5.13113,4.31043 55.87381,-16.15842 59.63792,-10.29998c3.76414,5.85843 -29.09575,62.86814 -27.11681,69.62658c1.97902,6.75845 62.18188,13.20758 61.3595,20.19514c-0.82245,6.98758 -75.2742,9.96732 -78.37666,16.73535c-3.10245,6.76802 28.36942,83.35484 24.16354,88.6124z",
            	"chair": "m118.11539,289.55515c-7.47328,-14.4328 15.76004,-21.83389 9.75156,-35.26642c-9.58212,-8.59285 -23.93785,-6.58557 -35.88018,-5.92961c-12.89955,-1.58955 -16.67669,11.62587 -24.11323,17.11729c-14.66394,-4.57965 -9.41961,-23.5907 3.95336,-25.69879c17.48831,-7.56879 36.79559,-3.21786 54.96046,-6.57193c13.14571,-7.65541 -3.09947,-24.09541 -13.42245,-25.84244c-17.08451,-6.9008 -38.18468,-7.0844 -51.24073,-21.62146c-5.1916,-11.32457 -3.84497,-32.04767 10.15321,-36.01445c6.34414,-10.73523 5.01785,-24.55999 3.35027,-36.47948c1.42348,-12.67513 -26.70474,-5.25126 -14.90233,-18.24577c10.64336,-8.15804 24.36629,-13.15867 37.81105,-12.959c10.96933,0.36309 11.71716,12.99065 -0.37628,9.89848c-12.30081,6.18077 -7.72121,23.86169 -7.25122,35.16668c5.93514,11.39347 22.04794,5.36764 32.49831,7.07384c14.8665,0.39955 21.73593,0.44463 35.83476,5.23605c14.25958,-1.05464 8.64325,-20.61657 0.17079,-21.97119c-13.03212,-2.87206 -25.91483,-10.25501 -33.20317,-21.62909c-4.07215,-13.26593 1.69855,-27.24597 4.77583,-40.18096c9.18196,-28.0861 34.13237,-54.57027 65.33606,-54.63913c19.15414,0.28833 38.85675,14.48402 42.13089,33.82922c2.48616,20.34066 -5.57245,41.0622 -0.32005,61.11538c12.75343,7.04288 -8.70227,17.78406 -9.16336,27.50478c-5.43883,14.13736 6.97403,30.55498 -3.65417,43.29654c-6.64983,9.38159 -22.16026,14.5639 -22.43275,27.04953c-3.81845,11.24202 -21.47061,10.39703 -30.28923,17.71931c-9.74564,2.86838 -15.08257,19.17726 -0.15649,15.9317c14.55153,-0.35892 29.03516,-5.81784 43.55118,-3.3181c10.39314,7.10063 -0.45073,21.22018 -10.9113,14.54475c-5.46445,0.08383 -25.63857,2.80356 -18.76688,8.69054c17.18895,4.015 35.8273,9.2104 46.95854,24.0352c10.43184,13.90863 -12.73763,17.22995 -17.34935,5.0022c-19.29245,-15.75378 -48.30531,-24.24933 -70.97163,-10.48508c-13.71143,5.73386 -10.53542,20.53958 -11.98199,31.56015c-5.57972,6.09451 -13.26627,-2.5275 -14.84946,-7.91876zm100.26077,-153.99353c-4.62421,-8.64436 -27.69229,-17.16811 -30.82967,-4.71919c1.76141,12.68575 19.62196,15.68971 29.15408,10.51048c1.73547,-1.32053 2.45361,-3.74493 1.67558,-5.79129z"
            	}
            }
          • raphael.txt
            All Raphaël icons were retrieved from here:
            http://raphaeljs.com/icons/
            
            And fall under the MIT license:
            
            Copyright © 2008 Dmitry Baranovskiy
            
            Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
            
            The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
            
            The software is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.
          • raphael_1.json
            {"size": 32,
            "fill": true,
            "data": {
                "raph_?": "M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466z M17.328,24.371h-2.707v-2.596h2.707V24.371zM17.328,19.003v0.858h-2.707v-1.057c0-3.19,3.63-3.696,3.63-5.963c0-1.034-0.924-1.826-2.134-1.826c-1.254,0-2.354,0.924-2.354,0.924l-1.541-1.915c0,0,1.519-1.584,4.137-1.584c2.487,0,4.796,1.54,4.796,4.136C21.156,16.208,17.328,16.627,17.328,19.003z",
                "raph_i": "M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466z M14.757,8h2.42v2.574h-2.42V8z M18.762,23.622H16.1c-1.034,0-1.475-0.44-1.475-1.496v-6.865c0-0.33-0.176-0.484-0.484-0.484h-0.88V12.4h2.662c1.035,0,1.474,0.462,1.474,1.496v6.887c0,0.309,0.176,0.484,0.484,0.484h0.88V23.622z",
                "raph_$": "M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466z M17.255,23.88v2.047h-1.958v-2.024c-3.213-0.44-4.621-3.08-4.621-3.08l2.002-1.673c0,0,1.276,2.223,3.586,2.223c1.276,0,2.244-0.683,2.244-1.849c0-2.729-7.349-2.398-7.349-7.459c0-2.2,1.738-3.785,4.137-4.159V5.859h1.958v2.046c1.672,0.22,3.652,1.1,3.652,2.993v1.452h-2.596v-0.704c0-0.726-0.925-1.21-1.959-1.21c-1.32,0-2.288,0.66-2.288,1.584c0,2.794,7.349,2.112,7.349,7.415C21.413,21.614,19.785,23.506,17.255,23.88z",
                "raph_temp": "M19.361,17.744V3.438c0-1.85-1.504-3.348-3.352-3.348c-1.852,0-3.35,1.498-3.35,3.348v14.193c-2.106,1.154-3.536,3.391-3.536,5.961c0,3.752,3.042,6.793,6.793,6.793c3.753,0,6.793-3.041,6.793-6.793C22.71,21.099,21.363,18.924,19.361,17.744zM15.917,29.27c-3.129,0-5.676-2.548-5.676-5.68c0-2.072,1.132-3.98,2.954-4.979l0.581-0.316V3.437c0-1.231,1.003-2.231,2.236-2.231c1.231,0,2.232,1,2.232,2.231v14.942l0.548,0.324c1.756,1.036,2.806,2.861,2.806,4.887C21.596,26.722,19.048,29.27,15.917,29.27zM18.225,19.666l-1.099-0.647V9.26h-2.233v9.695l-1.161,0.635c-1.464,0.805-2.375,2.334-2.375,4c0,2.514,2.047,4.561,4.56,4.561c2.515,0,4.56-2.047,4.56-4.561C20.479,21.988,19.616,20.485,18.225,19.666z",
                "raph_thunder": "M25.371,7.306c-0.092-3.924-3.301-7.077-7.248-7.079c-2.638,0.001-4.942,1.412-6.208,3.517c-0.595-0.327-1.28-0.517-2.01-0.517C7.626,3.229,5.772,5.033,5.689,7.293c-2.393,0.786-4.125,3.025-4.127,5.686c0,3.312,2.687,6,6,6v-0.002h5.271l-2.166,3.398l1.977-0.411L10,30.875l9.138-10.102L17,21l2.167-2.023h4.269c3.312,0,6-2.688,6-6C29.434,10.34,27.732,8.11,25.371,7.306zM23.436,16.979H7.561c-2.209-0.006-3.997-1.792-4.001-4.001c-0.002-1.982,1.45-3.618,3.35-3.931c0.265-0.043,0.502-0.191,0.657-0.414C7.722,8.41,7.779,8.136,7.73,7.87C7.702,7.722,7.685,7.582,7.685,7.446C7.689,6.221,8.68,5.23,9.905,5.228c0.647,0,1.217,0.278,1.633,0.731c0.233,0.257,0.587,0.375,0.927,0.309c0.342-0.066,0.626-0.307,0.748-0.63c0.749-1.992,2.662-3.412,4.911-3.41c2.899,0.004,5.244,2.35,5.251,5.249c0,0.161-0.009,0.326-0.027,0.497c-0.049,0.517,0.305,0.984,0.815,1.079c1.86,0.344,3.274,1.966,3.271,3.923C27.43,15.186,25.645,16.973,23.436,16.979z",
                "raph_snow": "M25.372,6.912c-0.093-3.925-3.302-7.078-7.248-7.08c-2.638,0.002-4.942,1.412-6.208,3.518c-0.595-0.327-1.28-0.518-2.01-0.518C7.627,2.834,5.773,4.639,5.69,6.898c-2.393,0.786-4.125,3.025-4.127,5.686c0,3.312,2.687,6,6,6v-0.002h15.875c3.312,0,6-2.688,6-6C29.434,9.944,27.732,7.715,25.372,6.912zM23.436,16.584H7.562c-2.209-0.006-3.997-1.793-4.001-4c-0.002-1.983,1.45-3.619,3.35-3.933c0.265-0.043,0.502-0.19,0.657-0.414C7.723,8.015,7.78,7.74,7.731,7.475C7.703,7.326,7.686,7.187,7.686,7.051c0.004-1.225,0.995-2.217,2.22-2.219c0.647,0,1.217,0.278,1.633,0.731c0.233,0.257,0.587,0.375,0.927,0.31c0.342-0.066,0.626-0.308,0.748-0.631c0.749-1.992,2.662-3.412,4.911-3.41c2.898,0.004,5.244,2.351,5.251,5.25c0,0.16-0.009,0.325-0.026,0.496c-0.05,0.518,0.305,0.984,0.814,1.079c1.859,0.345,3.273,1.966,3.271,3.923C27.43,14.791,25.645,16.578,23.436,16.584zM16.667,24.09l1.119-1.119c0.389-0.391,0.389-1.025,0-1.416c-0.392-0.391-1.025-0.391-1.415,0l-1.119,1.119l-1.119-1.119c-0.391-0.391-1.025-0.391-1.415,0c-0.391,0.391-0.391,1.025,0,1.416l1.118,1.117l-1.12,1.121c-0.389,0.393-0.389,1.021,0,1.414c0.195,0.188,0.451,0.293,0.707,0.293c0.256,0,0.512-0.104,0.708-0.293l1.12-1.119l1.12,1.119c0.195,0.188,0.451,0.293,0.708,0.293c0.256,0,0.512-0.104,0.707-0.293c0.391-0.396,0.391-1.021,0-1.414L16.667,24.09zM25.119,21.817c-0.393-0.392-1.025-0.392-1.415,0l-1.12,1.121l-1.12-1.121c-0.391-0.392-1.022-0.392-1.414,0c-0.39,0.392-0.39,1.022,0,1.416l1.119,1.119l-1.119,1.119c-0.39,0.391-0.39,1.022,0,1.413c0.195,0.195,0.451,0.294,0.707,0.294c0.257,0,0.513-0.099,0.707-0.294l1.12-1.118l1.12,1.118c0.194,0.195,0.45,0.294,0.707,0.294c0.256,0,0.513-0.099,0.708-0.294c0.389-0.391,0.389-1.022,0-1.413l-1.12-1.119l1.12-1.119C25.507,22.842,25.507,22.209,25.119,21.817zM9.334,23.953l1.119-1.119c0.389-0.394,0.389-1.021,0-1.414c-0.391-0.394-1.025-0.394-1.415,0l-1.119,1.119l-1.12-1.121c-0.391-0.39-1.023-0.39-1.415,0c-0.391,0.396-0.391,1.024,0,1.418l1.119,1.117l-1.12,1.118c-0.391,0.394-0.391,1.025,0,1.414c0.196,0.195,0.452,0.293,0.708,0.293c0.256,0,0.511-0.098,0.707-0.293l1.12-1.119l1.121,1.121c0.195,0.195,0.451,0.293,0.707,0.293s0.513-0.098,0.708-0.293c0.389-0.391,0.389-1.022,0-1.416L9.334,23.953z",
                "raph_hail": "M25.372,6.912c-0.093-3.925-3.302-7.078-7.248-7.08c-2.638,0.002-4.942,1.412-6.208,3.518c-0.595-0.327-1.28-0.518-2.01-0.518C7.627,2.834,5.773,4.639,5.69,6.898c-2.393,0.786-4.125,3.025-4.127,5.686c0,3.312,2.687,6,6,6v-0.002h15.875c3.312,0,6-2.688,6-6C29.434,9.944,27.732,7.715,25.372,6.912zM23.436,16.584H7.562c-2.209-0.006-3.997-1.793-4.001-4c-0.002-1.983,1.45-3.619,3.35-3.933c0.265-0.043,0.502-0.19,0.657-0.414C7.723,8.015,7.78,7.74,7.731,7.475C7.703,7.326,7.686,7.187,7.686,7.051c0.004-1.225,0.995-2.217,2.22-2.219c0.647,0,1.217,0.278,1.633,0.731c0.233,0.257,0.587,0.375,0.927,0.31c0.342-0.066,0.626-0.308,0.748-0.631c0.749-1.992,2.662-3.412,4.911-3.41c2.898,0.004,5.244,2.351,5.251,5.25c0,0.16-0.009,0.325-0.026,0.496c-0.05,0.518,0.305,0.984,0.814,1.079c1.859,0.345,3.273,1.966,3.271,3.923C27.43,14.791,25.645,16.578,23.436,16.584zM11.503,23.709c-0.784-0.002-1.418-0.636-1.418-1.416c0-0.785,0.634-1.416,1.418-1.418c0.78,0.002,1.413,0.633,1.416,1.418C12.917,23.073,12.284,23.707,11.503,23.709zM19.002,23.709c-0.783-0.002-1.418-0.636-1.418-1.416c0-0.785,0.635-1.416,1.418-1.418c0.779,0.002,1.414,0.633,1.414,1.418C20.417,23.073,19.784,23.707,19.002,23.709zM7.503,28.771c-0.783-0.002-1.417-0.637-1.417-1.418s0.634-1.414,1.417-1.416c0.78,0.002,1.415,0.635,1.415,1.416C8.917,28.135,8.284,28.77,7.503,28.771zM15.001,28.771c-0.782-0.002-1.417-0.637-1.417-1.418s0.634-1.414,1.417-1.416c0.78,0.002,1.413,0.635,1.415,1.416C16.415,28.135,15.784,28.77,15.001,28.771zM22.5,28.771c-0.782-0.002-1.416-0.634-1.416-1.416c0-0.785,0.634-1.418,1.416-1.42c0.781,0.002,1.414,0.635,1.418,1.42C23.915,28.138,23.282,28.77,22.5,28.771z",
                "raph_rain": "M25.371,7.306c-0.092-3.924-3.301-7.077-7.248-7.079c-2.638,0.001-4.942,1.412-6.208,3.517c-0.595-0.327-1.28-0.517-2.01-0.517C7.626,3.229,5.772,5.033,5.689,7.293c-2.393,0.786-4.125,3.025-4.127,5.686c0,3.312,2.687,6,6,6v-0.002h15.874c3.312,0,6-2.688,6-6C29.434,10.34,27.732,8.11,25.371,7.306zM23.436,16.979H7.561c-2.209-0.006-3.997-1.792-4.001-4.001c-0.002-1.982,1.45-3.618,3.35-3.931c0.265-0.043,0.502-0.191,0.657-0.414C7.722,8.41,7.779,8.136,7.73,7.87C7.702,7.722,7.685,7.582,7.685,7.446C7.689,6.221,8.68,5.23,9.905,5.228c0.647,0,1.217,0.278,1.633,0.731c0.233,0.257,0.587,0.375,0.927,0.309c0.342-0.066,0.626-0.307,0.748-0.63c0.749-1.992,2.662-3.412,4.911-3.41c2.899,0.004,5.244,2.35,5.251,5.249c0,0.161-0.009,0.326-0.027,0.497c-0.049,0.517,0.305,0.984,0.815,1.079c1.86,0.344,3.274,1.966,3.271,3.923C27.43,15.186,25.645,16.973,23.436,16.979zM9.029,26.682c0-1.115,0.021-5.425,0.021-5.432c0.002-0.409-0.247-0.779-0.628-0.932c-0.38-0.152-0.815-0.059-1.099,0.24c-0.006,0.008-1.037,1.098-2.081,2.342c-0.523,0.627-1.048,1.287-1.463,1.896c-0.399,0.648-0.753,1.066-0.811,1.885C2.971,28.355,4.324,29.711,6,29.714C7.672,29.71,9.029,28.354,9.029,26.682zM4.971,26.727c0.091-0.349,1.081-1.719,1.993-2.764c0.025-0.029,0.051-0.061,0.076-0.089c-0.005,1.124-0.01,2.294-0.01,2.808c0,0.567-0.461,1.028-1.029,1.03C5.447,27.71,4.997,27.273,4.971,26.727zM16.425,26.682c0-1.115,0.021-5.424,0.021-5.43c0.002-0.41-0.247-0.779-0.628-0.934c-0.381-0.152-0.814-0.058-1.1,0.242c-0.006,0.008-1.035,1.094-2.08,2.342c-0.522,0.623-1.047,1.285-1.463,1.894c-0.399,0.649-0.753,1.068-0.809,1.888c0,1.672,1.354,3.028,3.029,3.028C15.068,29.711,16.425,28.354,16.425,26.682zM12.365,26.729c0.092-0.349,1.081-1.72,1.993-2.765c0.025-0.03,0.05-0.06,0.075-0.089c-0.005,1.123-0.011,2.294-0.011,2.807c-0.002,0.568-0.461,1.027-1.028,1.029C12.84,27.709,12.392,27.273,12.365,26.729zM23.271,20.317c-0.38-0.153-0.816-0.06-1.099,0.24c-0.009,0.008-1.037,1.097-2.08,2.342c-0.523,0.625-1.049,1.285-1.462,1.896c-0.402,0.649-0.754,1.067-0.812,1.886c0,1.672,1.354,3.029,3.03,3.029c1.673,0,3.027-1.357,3.027-3.029c0-1.115,0.022-5.425,0.022-5.431C23.9,20.84,23.651,20.47,23.271,20.317zM21.879,26.681c-0.004,0.568-0.463,1.027-1.031,1.029c-0.553-0.002-1.002-0.438-1.028-0.982c0.092-0.349,1.081-1.72,1.993-2.765c0.025-0.028,0.05-0.059,0.074-0.088C21.883,24.998,21.879,26.167,21.879,26.681z",
                "raph_sun": "M15.502,7.504c-4.35,0-7.873,3.523-7.873,7.873c0,4.347,3.523,7.872,7.873,7.872c4.346,0,7.871-3.525,7.871-7.872C23.374,11.027,19.85,7.504,15.502,7.504zM15.502,21.25c-3.244-0.008-5.866-2.63-5.874-5.872c0.007-3.243,2.63-5.866,5.874-5.874c3.242,0.008,5.864,2.631,5.871,5.874C21.366,18.62,18.744,21.242,15.502,21.25zM15.502,6.977c0.553,0,1-0.448,1-1.001V1.125c-0.002-0.553-0.448-1-1-1c-0.553,0-1.001,0.449-1,1.002v4.85C14.502,6.528,14.949,6.977,15.502,6.977zM18.715,7.615c0.125,0.053,0.255,0.076,0.382,0.077c0.394,0,0.765-0.233,0.925-0.618l1.856-4.483c0.21-0.511-0.031-1.095-0.541-1.306c-0.511-0.211-1.096,0.031-1.308,0.541L18.174,6.31C17.963,6.82,18.205,7.405,18.715,7.615zM21.44,9.436c0.195,0.194,0.451,0.293,0.707,0.293s0.512-0.098,0.707-0.293l3.43-3.433c0.391-0.39,0.39-1.023,0-1.415c-0.392-0.39-1.025-0.39-1.415,0.002L21.44,8.021C21.049,8.412,21.049,9.045,21.44,9.436zM23.263,12.16c0.158,0.385,0.531,0.617,0.923,0.617c0.127,0,0.257-0.025,0.383-0.078l4.48-1.857c0.511-0.211,0.753-0.797,0.541-1.307s-0.796-0.752-1.307-0.54l-4.481,1.857C23.292,11.064,23.051,11.65,23.263,12.16zM29.752,14.371l-4.851,0.001c-0.552,0-1,0.448-0.998,1.001c0,0.553,0.447,0.999,0.998,0.999l4.852-0.002c0.553,0,0.999-0.449,0.999-1C30.752,14.817,30.304,14.369,29.752,14.371zM29.054,19.899l-4.482-1.854c-0.512-0.212-1.097,0.03-1.307,0.541c-0.211,0.511,0.031,1.096,0.541,1.308l4.482,1.854c0.126,0.051,0.256,0.075,0.383,0.075c0.393,0,0.765-0.232,0.925-0.617C29.806,20.695,29.563,20.109,29.054,19.899zM22.86,21.312c-0.391-0.391-1.023-0.391-1.414,0.001c-0.391,0.39-0.39,1.022,0,1.413l3.434,3.429c0.195,0.195,0.45,0.293,0.706,0.293s0.513-0.098,0.708-0.293c0.391-0.392,0.389-1.025,0-1.415L22.86,21.312zM20.029,23.675c-0.211-0.511-0.796-0.752-1.307-0.541c-0.51,0.212-0.752,0.797-0.54,1.308l1.86,4.48c0.159,0.385,0.531,0.617,0.925,0.617c0.128,0,0.258-0.024,0.383-0.076c0.511-0.211,0.752-0.797,0.54-1.309L20.029,23.675zM15.512,23.778c-0.553,0-1,0.448-1,1l0.004,4.851c0,0.553,0.449,0.999,1,0.999c0.553,0,1-0.448,0.998-1l-0.003-4.852C16.511,24.226,16.062,23.777,15.512,23.778zM12.296,23.142c-0.51-0.21-1.094,0.031-1.306,0.543l-1.852,4.483c-0.21,0.511,0.033,1.096,0.543,1.307c0.125,0.052,0.254,0.076,0.382,0.076c0.392,0,0.765-0.234,0.924-0.619l1.853-4.485C13.051,23.937,12.807,23.353,12.296,23.142zM9.57,21.325c-0.392-0.391-1.025-0.389-1.415,0.002L4.729,24.76c-0.391,0.392-0.389,1.023,0.002,1.415c0.195,0.194,0.45,0.292,0.706,0.292c0.257,0,0.513-0.098,0.708-0.293l3.427-3.434C9.961,22.349,9.961,21.716,9.57,21.325zM7.746,18.604c-0.213-0.509-0.797-0.751-1.307-0.54L1.96,19.925c-0.511,0.212-0.752,0.798-0.54,1.308c0.16,0.385,0.531,0.616,0.924,0.616c0.127,0,0.258-0.024,0.383-0.076l4.479-1.861C7.715,19.698,7.957,19.113,7.746,18.604zM7.1,15.392c0-0.553-0.447-0.999-1-0.999l-4.851,0.006c-0.553,0-1.001,0.448-0.999,1.001c0.001,0.551,0.449,1,1,0.998l4.852-0.006C6.654,16.392,7.102,15.942,7.1,15.392zM1.944,10.869l4.485,1.85c0.125,0.053,0.254,0.076,0.381,0.076c0.393,0,0.766-0.232,0.925-0.618c0.212-0.511-0.032-1.097-0.544-1.306L2.708,9.021c-0.511-0.21-1.095,0.032-1.306,0.542C1.19,10.074,1.435,10.657,1.944,10.869zM8.137,9.451c0.195,0.193,0.449,0.291,0.705,0.291s0.513-0.098,0.709-0.295c0.391-0.389,0.389-1.023-0.004-1.414L6.113,4.609C5.723,4.219,5.088,4.221,4.699,4.612c-0.391,0.39-0.389,1.024,0.002,1.414L8.137,9.451zM10.964,7.084c0.16,0.384,0.532,0.615,0.923,0.615c0.128,0,0.258-0.025,0.384-0.077c0.51-0.212,0.753-0.798,0.54-1.307l-1.864-4.479c-0.212-0.51-0.798-0.751-1.308-0.539C9.129,1.51,8.888,2.096,9.1,2.605L10.964,7.084z",
                "raph_undo": "M12.981,9.073V6.817l-12.106,6.99l12.106,6.99v-2.422c3.285-0.002,9.052,0.28,9.052,2.269c0,2.78-6.023,4.263-6.023,4.263v2.132c0,0,13.53,0.463,13.53-9.823C29.54,9.134,17.952,8.831,12.981,9.073z",
                "raph_merge": "M26.92,10.928l-3.574-2.064v2.297h-6.414c-1.123,0.084-3.062-1.19-5.218-2.881C9.543,6.676,7.062,4.709,3.74,4.656H1.505v3.662H3.74c1.627-0.047,3.633,1.232,5.769,2.883c0.796,0.577,1.599,1.213,2.45,1.788c-0.851,0.575-1.653,1.212-2.45,1.789c-2.136,1.646-4.142,2.929-5.767,2.882H1.505v3.668h2.236c3.315-0.047,5.797-2.02,7.975-3.621c2.156-1.691,4.094-2.966,5.218-2.883h6.412v2.297l3.574-2.062l3.576-2.064L26.92,10.928z",
                "raph_split": "M23.346,23.979l3.576-2.062l3.574-2.062l-3.576-2.064l-3.574-2.062v2.293c-0.876,0-1.894,0-2.235,0c-1.626,0.046-3.633-1.233-5.768-2.883c-0.796-0.578-1.599-1.214-2.45-1.789c0.851-0.575,1.653-1.211,2.45-1.789c2.135-1.647,4.142-2.929,5.766-2.882l2.237-0.001v2.296l3.574-2.063l3.576-2.064L26.92,4.78l-3.574-2.064v2.295H21.11c-3.321,0.047-5.803,2.019-7.975,3.622c-2.156,1.691-4.094,2.965-5.218,2.882H1.505v3.664h6.414c1.123-0.083,3.062,1.191,5.218,2.882c2.171,1.604,4.652,3.575,7.974,3.622h2.235V23.979L23.346,23.979z",
                "raph_fork": "M26.268,22.562l3.514-2.03l-3.514-2.028l-3.515-2.028v2.256c-0.922-0.002-2.45-0.002-2.883-0.002c-1.28-0.03-2.12-0.431-2.994-1.148c-1.303-1.07-2.415-2.997-3.756-4.853c-0.682-0.923-1.442-1.839-2.454-2.575C9.664,9.415,8.355,8.902,6.9,8.912H0.593v3.604H6.9c0.877,0.016,1.432,0.302,2.189,1.012c1.12,1.055,2.212,3.072,3.718,4.983c1.476,1.893,3.747,3.804,7.041,3.823h2.905v2.256L26.268,22.562zM11.401,8.912c0.04,0.028,0.082,0.053,0.121,0.082c1.202,0.874,2.07,1.947,2.757,2.88c0.158,0.218,0.298,0.428,0.448,0.642h8.026v2.257l3.515-2.028l3.514-2.029l-3.514-2.029l-3.515-2.03v2.255H11.401z",
                "raph_shuffle": "M9.089,13.133c0.346,0.326,0.69,0.75,1.043,1.228c0.051-0.073,0.099-0.144,0.15-0.219c0.511-0.75,1.09-1.599,1.739-2.421c0.103-0.133,0.211-0.245,0.316-0.371c-0.487-0.572-1.024-1.12-1.672-1.592C9.663,9.02,8.354,8.506,6.899,8.517H0.593v3.604H6.9C7.777,12.138,8.333,12.422,9.089,13.133zM22.753,16.082v2.256c-0.922-0.002-2.45-0.002-2.883-0.002c-1.28-0.03-2.12-0.438-2.994-1.148c-0.378-0.311-0.74-0.7-1.097-1.133c-0.268,0.376-0.538,0.764-0.813,1.168c-0.334,0.488-0.678,0.99-1.037,1.484c-0.089,0.121-0.189,0.246-0.283,0.369c1.455,1.528,3.473,2.846,6.202,2.862h2.905v2.256l3.515-2.026l3.521-2.03l-3.521-2.028L22.753,16.082zM16.876,13.27c0.874-0.712,1.714-1.118,2.994-1.148c0.433,0,1.961,0,2.883-0.002v2.256l3.515-2.026l3.521-2.028l-3.521-2.029l-3.515-2.027V8.52h-2.905c-3.293,0.02-5.563,1.93-7.041,3.822c-1.506,1.912-2.598,3.929-3.718,4.982C8.332,18.033,7.777,18.32,6.9,18.336H0.593v3.604H6.9c1.455,0.011,2.764-0.502,3.766-1.242c1.012-0.735,1.772-1.651,2.454-2.573C14.461,16.267,15.574,14.34,16.876,13.27z",
                "raph_refresh": "M15.999,4.308c1.229,0.001,2.403,0.214,3.515,0.57L18.634,6.4h6.247l-1.562-2.706L21.758,0.99l-0.822,1.425c-1.54-0.563-3.2-0.878-4.936-0.878c-7.991,0-14.468,6.477-14.468,14.468c0,3.317,1.128,6.364,3.005,8.805l2.2-1.689c-1.518-1.973-2.431-4.435-2.436-7.115C4.312,9.545,9.539,4.318,15.999,4.308zM27.463,7.203l-2.2,1.69c1.518,1.972,2.431,4.433,2.435,7.114c-0.011,6.46-5.238,11.687-11.698,11.698c-1.145-0.002-2.24-0.188-3.284-0.499l0.828-1.432H7.297l1.561,2.704l1.562,2.707l0.871-1.511c1.477,0.514,3.058,0.801,4.709,0.802c7.992-0.002,14.468-6.479,14.47-14.47C30.468,12.689,29.339,9.643,27.463,7.203z",
                "raph_smile2": "M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM16,29.534C8.539,29.534,2.466,23.462,2.466,16C2.466,8.539,8.539,2.466,16,2.466c7.462,0,13.535,6.072,13.535,13.533C29.534,23.462,23.462,29.534,16,29.534zM11.104,14c0.932,0,1.688-1.483,1.688-3.312s-0.755-3.312-1.688-3.312s-1.688,1.483-1.688,3.312S10.172,14,11.104,14zM20.729,14c0.934,0,1.688-1.483,1.688-3.312s-0.756-3.312-1.688-3.312c-0.932,0-1.688,1.483-1.688,3.312S19.798,14,20.729,14zM8.143,21.189C10.458,24.243,13.148,26,16.021,26c2.969,0,5.745-1.868,8.11-5.109c-2.515,1.754-5.292,2.734-8.215,2.734C13.164,23.625,10.54,22.756,8.143,21.189z",
                "raph_smile": "M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM20.729,7.375c0.934,0,1.688,1.483,1.688,3.312S21.661,14,20.729,14c-0.932,0-1.688-1.483-1.688-3.312S19.798,7.375,20.729,7.375zM11.104,7.375c0.932,0,1.688,1.483,1.688,3.312S12.037,14,11.104,14s-1.688-1.483-1.688-3.312S10.172,7.375,11.104,7.375zM16.021,26c-2.873,0-5.563-1.757-7.879-4.811c2.397,1.564,5.021,2.436,7.774,2.436c2.923,0,5.701-0.98,8.215-2.734C21.766,24.132,18.99,26,16.021,26z",
                "raph_alarm": "M15.499,5.125c-0.553,0-0.999,0.448-0.999,1v9.221L8.454,17.99c-0.506,0.222-0.736,0.812-0.514,1.318c0.164,0.375,0.53,0.599,0.915,0.599c0.134,0,0.271-0.027,0.401-0.085l6.626-2.898c0.005-0.002,0.009-0.004,0.013-0.006l0.004-0.002c0.015-0.006,0.023-0.02,0.037-0.025c0.104-0.052,0.201-0.113,0.279-0.195c0.034-0.034,0.053-0.078,0.079-0.117c0.048-0.064,0.101-0.127,0.13-0.204c0.024-0.06,0.026-0.125,0.038-0.189c0.013-0.064,0.038-0.121,0.038-0.186V6.124C16.5,5.573,16.052,5.125,15.499,5.125zM31.125,6.832c0-3.832-3.105-6.938-6.938-6.938c-1.938,0-3.686,0.796-4.94,2.077C18.05,1.652,16.798,1.466,15.5,1.466c-1.334,0-2.62,0.195-3.847,0.531c-1.259-1.295-3.016-2.103-4.965-2.103C2.856-0.106-0.25,3-0.25,6.832c0,1.845,0.726,3.517,1.901,4.76c-0.443,1.39-0.685,2.87-0.685,4.408c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534c0-1.575-0.259-3.087-0.722-4.508C30.436,10.261,31.125,8.629,31.125,6.832zM15.5,27.533C9.139,27.533,3.966,22.359,3.966,16c0-6.36,5.173-11.534,11.534-11.534c6.361,0,11.533,5.173,11.533,11.534C27.033,22.361,21.859,27.533,15.5,27.533z",
                "raph_clock": "M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM16,27.533C9.639,27.533,4.466,22.359,4.466,16C4.466,9.64,9.639,4.466,16,4.466c6.361,0,11.533,5.173,11.533,11.534C27.533,22.361,22.359,27.533,16,27.533zM15.999,5.125c-0.553,0-0.999,0.448-0.999,1v9.221L8.954,17.99c-0.506,0.222-0.736,0.812-0.514,1.318c0.164,0.375,0.53,0.599,0.915,0.599c0.134,0,0.271-0.027,0.401-0.085l6.626-2.898c0.005-0.002,0.009-0.004,0.013-0.006l0.004-0.002c0.015-0.006,0.023-0.02,0.037-0.025c0.104-0.052,0.201-0.113,0.279-0.195c0.034-0.034,0.053-0.078,0.079-0.117c0.048-0.064,0.101-0.127,0.13-0.204c0.024-0.06,0.026-0.125,0.038-0.189C16.975,16.121,17,16.064,17,15.999V6.124C17,5.573,16.552,5.125,15.999,5.125z",
                "raph_globeAlt2": "M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM8.251,7.48c0.122,0.055,0.255,0.104,0.28,0.137C8.57,7.668,8.621,7.823,8.557,7.861C8.492,7.9,8.39,7.887,8.376,7.771c-0.013-0.115-0.026-0.128-0.18-0.18c-0.022-0.007-0.035-0.01-0.051-0.015C8.18,7.544,8.216,7.512,8.251,7.48zM7.733,7.974c0.031,0.087,0.113,0.125,0,0.17C7.673,8.168,7.611,8.172,7.559,8.165C7.617,8.102,7.672,8.035,7.733,7.974zM16,27.533C9.639,27.533,4.466,22.36,4.466,16c0-0.085,0.011-0.168,0.013-0.254c0.004-0.003,0.008-0.006,0.012-0.009c0.129-0.102,0.283-0.359,0.334-0.45c0.052-0.089,0.181-0.154,0.116-0.256c-0.059-0.096-0.292-0.23-0.407-0.261c0.01-0.099,0.032-0.195,0.045-0.294c0.063,0.077,0.137,0.17,0.208,0.194c0.115,0.038,0.501,0.052,0.566,0.052c0.063,0,0.334,0.014,0.386-0.064c0.051-0.077,0.09-0.077,0.154-0.077c0.064,0,0.18,0.231,0.271,0.257c0.089,0.026,0.257,0.013,0.244,0.181c-0.012,0.166,0.077,0.309,0.167,0.321c0.09,0.013,0.296-0.194,0.296-0.194s0,0.322-0.012,0.438C6.846,15.698,7,16.124,7,16.124s0.193,0.397,0.244,0.488c0.052,0.09,0.27,0.36,0.27,0.476c0,0.117,0.026,0.297,0.104,0.297s0.155-0.206,0.244-0.335c0.091-0.128,0.117-0.31,0.155-0.438c0.039-0.129,0.039-0.36,0.039-0.45c0-0.091,0.076-0.168,0.257-0.245c0.181-0.077,0.309-0.296,0.463-0.412c0.155-0.116,0.142-0.309,0.452-0.309c0.308,0,0.282,0,0.36-0.078c0.077-0.077,0.154-0.128,0.192,0.013c0.039,0.142,0.257,0.347,0.296,0.399c0.039,0.052,0.116,0.193,0.104,0.348c-0.013,0.153,0.012,0.334,0.077,0.334c0.064,0,0.193-0.219,0.193-0.219s0.283-0.192,0.27,0.014c-0.014,0.205,0.025,0.425,0.025,0.552c0,0.13,0.232,0.438,0.232,0.362c0-0.079,0.103-0.296,0.103-0.413c0-0.114,0.064-0.063,0.231,0.051c0.167,0.116,0.283,0.349,0.283,0.349s0.168,0.154,0.193,0.219c0.026,0.064,0.206-0.025,0.244-0.104c0.039-0.076,0.065-0.115,0.167-0.141c0.104-0.026,0.231-0.026,0.271-0.168c0.039-0.142,0.154-0.308,0-0.502c-0.154-0.193-0.232-0.321-0.347-0.412c-0.117-0.09-0.206-0.322-0.206-0.322s0.244-0.218,0.321-0.296c0.079-0.077,0.193-0.025,0.207,0.064c0.013,0.091-0.115,0.168-0.141,0.361c-0.026,0.192,0.154,0.257,0.206,0.192c0.051-0.065,0.18-0.219,0.18-0.257c0-0.039-0.089-0.026-0.102-0.167c-0.013-0.142,0.166-0.245,0.23-0.207c0.066,0.039,0.477-0.051,0.67-0.154s0.308-0.322,0.425-0.412c0.116-0.089,0.515-0.386,0.489-0.527c-0.026-0.142,0.012-0.334-0.09-0.515c-0.103-0.18-0.232-0.295-0.283-0.373c-0.051-0.077,0.219-0.09,0.347-0.206c0.129-0.116,0-0.219-0.064-0.206c-0.064,0.013-0.232,0.052-0.296,0.039c-0.064-0.013-0.103-0.077-0.206-0.155c-0.102-0.077,0.026-0.192,0.091-0.179c0.064,0.013,0.23-0.129,0.308-0.193c0.077-0.064,0.193-0.115,0.154-0.051c-0.038,0.064-0.128,0.296-0.026,0.309c0.104,0.013,0.348-0.193,0.388-0.18c0.038,0.013,0.102,0.18,0.064,0.257c-0.039,0.077-0.039,0.206,0.013,0.193c0.051-0.013,0.154-0.129,0.18-0.09c0.027,0.039,0.154,0.116,0.09,0.257c-0.063,0.142-0.193,0.193-0.039,0.284c0.154,0.089,0.206,0.012,0.322-0.052c0.115-0.064,0.193-0.347,0.128-0.438c-0.064-0.09-0.218-0.27-0.218-0.334c0-0.064,0.257-0.064,0.257-0.167s0.09-0.18,0.18-0.219c0.091-0.039,0.206-0.206,0.244-0.154c0.039,0.052,0.271,0.116,0.334,0.039c0.064-0.077,0.4-0.36,0.605-0.515c0.206-0.154,0.283-0.334,0.336-0.515c0.051-0.18,0.128-0.296,0.102-0.437v0c0.077,0.18,0.09,0.309,0.077,0.45c-0.013,0.142,0,0.438,0.026,0.476c0.025,0.039,0.129,0.128,0.192,0.103c0.064-0.025-0.025-0.283-0.025-0.334c0-0.052,0.09-0.129,0.142-0.142c0.052-0.013,0-0.231-0.065-0.322c-0.063-0.09-0.154-0.142-0.102-0.154c0.051-0.013,0.115-0.116,0.077-0.142c-0.039-0.025-0.014-0.116-0.103-0.09c-0.065,0.019-0.241-0.015-0.235,0.095c-0.037-0.11-0.116-0.183-0.216-0.172c-0.116,0.013-0.181,0.077-0.296,0.077s-0.025-0.18-0.077-0.18c-0.051,0-0.168,0.167-0.231,0.077c-0.064-0.09,0.18-0.206,0.373-0.27c0.192-0.064,0.514-0.438,0.644-0.451c0.128-0.013,0.45,0.026,0.733,0.013c0.283-0.013,0.373-0.129,0.463-0.064s0.283,0.142,0.399,0.129c0.116-0.014,0.064,0,0.244-0.129c0.18-0.129,0.348-0.193,0.438-0.296c0.09-0.103,0.335-0.18,0.348-0.077c0.014,0.103-0.026,0.206,0.077,0.206s0.258-0.103,0.386-0.154c0.129-0.051,0.231-0.116,0.231-0.116s-0.527,0.36-0.655,0.438c-0.129,0.077-0.438,0.129-0.567,0.283c-0.128,0.155-0.205,0.206-0.192,0.374c0.014,0.167,0.231,0.386,0.128,0.54c-0.103,0.154-0.141,0.373-0.141,0.373s0.154-0.219,0.373-0.36s0.348-0.334,0.425-0.412s0.309-0.091,0.309-0.181s0.064-0.206,0.104-0.309c0.038-0.103-0.077-0.078,0-0.206c0.076-0.129,0.064-0.232,0.45-0.232s0.257,0.026,0.566,0.013c0.309-0.013,0.424-0.167,0.72-0.245c0.296-0.077,0.527-0.128,0.618-0.089c0.09,0.038,0.232,0.012,0.141-0.078c-0.089-0.09-0.295-0.219-0.193-0.245c0.104-0.026,0.207-0.039,0.246-0.142c0.039-0.103-0.142-0.283-0.039-0.386c0.104-0.103-0.077-0.231-0.207-0.257c-0.128-0.025-0.63,0.026-0.731-0.025c-0.104-0.052-0.271-0.116-0.322-0.078c-0.052,0.039-0.168,0.245-0.168,0.245s-0.09,0.025-0.168-0.09c-0.076-0.116-0.5-0.103-0.629-0.103s-0.271,0.025-0.413,0.039c-0.141,0.013-0.219,0.052-0.322-0.039c-0.102-0.09-0.243-0.129-0.296-0.167c-0.051-0.039-0.334-0.039-0.553-0.012c-0.218,0.025-0.438,0.025-0.438,0.025s-0.104-0.039-0.257-0.129c-0.154-0.09-0.309-0.154-0.361-0.154c-0.051,0-0.449,0.064-0.539,0c-0.091-0.064-0.181-0.103-0.245-0.103s-0.115-0.103-0.038-0.103s0.437-0.103,0.437-0.103s-0.103-0.142-0.231-0.142c-0.128,0-0.359-0.064-0.424-0.064s-0.014,0.064-0.142,0.039c-0.13-0.026-0.258-0.078-0.335-0.026c-0.076,0.051-0.258,0.128-0.064,0.18c0.193,0.052,0.373,0,0.425,0.078c0.052,0.077,0,0.115,0,0.167s-0.103,0.193-0.167,0.219c-0.064,0.025-0.143-0.039-0.27,0.025c-0.129,0.064-0.451,0.013-0.49,0.052c-0.038,0.039-0.115-0.103-0.18-0.077c-0.064,0.025-0.232,0.193-0.322,0.18c-0.089-0.013-0.206-0.103-0.206-0.206s-0.038-0.232-0.077-0.258c-0.038-0.025-0.322-0.039-0.425-0.025c-0.103,0.013-0.424,0.038-0.477,0.09c-0.052,0.052-0.193,0.09-0.283,0.09s-0.167-0.09-0.36-0.116c-0.192-0.026-0.617-0.039-0.669-0.026s-0.218-0.025-0.155-0.077c0.065-0.051,0.257-0.219,0.143-0.295c-0.117-0.078-0.375-0.078-0.489-0.09c-0.117-0.013-0.232-0.039-0.413-0.013c-0.181,0.026-0.219,0.116-0.296,0.039c-0.077-0.077,0.193,0.039-0.077-0.077c-0.27-0.116-0.399-0.103-0.477-0.064c-0.077,0.039,0.013,0.025-0.192,0.103c-0.206,0.078-0.322,0.116-0.374,0.129c-0.051,0.012-0.372-0.065-0.411-0.091c-0.038-0.025-0.181,0.013-0.309,0.064S9.895,7.025,9.767,7C9.638,6.973,9.432,6.973,9.303,7.025C9.174,7.076,9.084,7.076,8.956,7.166c-0.13,0.09-0.373,0.142-0.373,0.142S8.522,7.305,8.448,7.301C10.474,5.541,13.111,4.466,16,4.466c6.361,0,11.534,5.173,11.534,11.534S22.36,27.533,16,27.533zM14.888,19.92c0,0,0.207-0.026,0.207-0.117c0-0.089-0.207-0.205-0.282-0.102c-0.078,0.102-0.219,0.205-0.207,0.296C14.625,20.138,14.888,19.92,14.888,19.92zM14.875,17.023c-0.181,0.233-0.167,0.182-0.296,0.128c-0.128-0.05-0.334,0.116-0.296,0.182c0.039,0.064,0.322-0.014,0.386,0.102c0.065,0.116,0.065,0.129,0.193,0.104c0.128-0.026,0.257-0.205,0.219-0.295C15.043,17.151,14.875,17.023,14.875,17.023zM14.837,18.245c-0.051,0-0.412,0.064-0.451,0.079c-0.039,0.013-0.27-0.025-0.27-0.025c-0.09,0.089-0.026,0.179,0.116,0.166s0.438-0.052,0.502-0.052C14.799,18.413,14.888,18.245,14.837,18.245zM14.284,14.668c-0.19,0.03-0.308,0.438-0.155,0.425C14.284,15.081,14.451,14.643,14.284,14.668zM14.734,16.959c-0.052-0.064-0.181-0.271-0.323-0.219c-0.042,0.017-0.153,0.245-0.012,0.245C14.541,16.985,14.786,17.023,14.734,16.959zM14.85,16.805c0.232-0.013,0.167-0.245-0.013-0.257C14.786,16.544,14.618,16.818,14.85,16.805zM17.591,18.928c-0.193-0.039-0.244-0.102-0.45-0.205c-0.207-0.103-0.67-0.103-0.682-0.039c-0.014,0.064,0,0-0.155-0.05c-0.153-0.054-0.271,0-0.309-0.091c-0.038-0.091-0.128-0.117-0.244-0.002c-0.097,0.097-0.142,0.104,0.078,0.143c0.218,0.039,0.283,0.039,0.192,0.141c-0.09,0.104-0.154,0.233-0.077,0.244c0.077,0.015,0.309-0.05,0.334,0c0.026,0.054-0.051,0.064,0.207,0.105c0.258,0.037,0.309,0.128,0.359,0.178c0.051,0.052,0.206,0.22,0.104,0.22c-0.104,0-0.219,0.128-0.142,0.143c0.077,0.013,0.309-0.039,0.321,0c0.014,0.037,0.143,0.283,0.271,0.271c0.129-0.013,0.206-0.244,0.27-0.31c0.065-0.064,0.322-0.104,0.349,0.012c0.026,0.116,0.104,0.233,0.257,0.311c0.154,0.076,0.335,0.154,0.348,0.089c0.013-0.064-0.077-0.309-0.181-0.346c-0.103-0.041-0.282-0.259-0.282-0.348c0-0.091-0.155-0.117-0.232-0.182C17.849,19.147,17.784,18.967,17.591,18.928zM8.042,17.023c-0.084,0.037-0.155,0.476,0,0.527c0.154,0.052,0.244-0.205,0.193-0.271C8.183,17.218,8.158,16.973,8.042,17.023zM15.429,18.117c-0.118-0.05-0.335,0.424-0.181,0.463C15.403,18.62,15.518,18.156,15.429,18.117zM15.687,13.703c0.077,0,0.18-0.051,0.18-0.193c0-0.142,0.18,0,0.27-0.013s0.141-0.103,0.18-0.206c0.005-0.013,0.008-0.021,0.009-0.027c-0.003,0.024-0.001,0.093,0.095,0.117c0.154,0.038,0.205-0.064,0.205-0.103s0.283-0.103,0.336-0.142c0.051-0.038,0.258-0.103,0.27-0.154c0.013-0.051,0-0.348,0.064-0.373c0.064-0.026,0.154-0.026,0.052-0.206c-0.104-0.181-0.104-0.348-0.232-0.271c-0.095,0.057-0.038,0.284-0.115,0.438s-0.142,0.296-0.193,0.296s-0.321,0.103-0.399,0.18c-0.076,0.077-0.45-0.064-0.501,0c-0.052,0.064-0.154,0.141-0.219,0.193c-0.065,0.051-0.245,0.013-0.207,0.167C15.518,13.562,15.609,13.703,15.687,13.703zM17.449,12.056c0.18-0.013,0.348-0.064,0.348-0.064s0.271,0.013,0.232-0.116c-0.04-0.128-0.322-0.141-0.375-0.128c-0.051,0.013-0.142-0.142-0.244-0.116c-0.096,0.023-0.128,0.155-0.128,0.193c0,0.039-0.36,0.115-0.245,0.219C17.153,12.146,17.27,12.069,17.449,12.056zM13.91,19.058c0.104,0.064,0.296-0.219,0.349-0.13c0.051,0.091-0.013,0.13,0.076,0.246c0.091,0.114,0.258,0.102,0.258,0.102s-0.013-0.309-0.155-0.387c-0.142-0.077-0.232-0.166-0.064-0.141c0.167,0.026,0.257-0.039,0.219-0.114c-0.039-0.078-0.283-0.039-0.361-0.026s-0.193-0.052-0.193-0.052c-0.077,0.024-0.063,0.089-0.09,0.219C13.923,18.902,13.807,18.992,13.91,19.058zM20.924,21.618c-0.231-0.052-0.077,0.039,0,0.154c0.077,0.116,0.232,0.176,0.258,0.05C21.193,21.759,21.155,21.67,20.924,21.618zM21.915,24.744c-0.077,0.064,0,0.091-0.219,0.22c-0.22,0.13-0.49,0.271-0.541,0.386c-0.052,0.116,0.051,0.181,0.258,0.192c0.206,0.013,0.154,0.053,0.296-0.103s0.271-0.244,0.438-0.373c0.168-0.128,0.168-0.322,0.168-0.322s-0.181-0.178-0.193-0.141C22.1,24.665,21.992,24.681,21.915,24.744zM18.504,21.618c0.014-0.116-0.219-0.116-0.334-0.207c-0.116-0.089-0.128-0.359-0.193-0.515c-0.064-0.153-0.192-0.257-0.322-0.397c-0.128-0.143-0.192-0.465-0.23-0.438c-0.039,0.025-0.154,0.399-0.064,0.515c0.09,0.116-0.039,0.348-0.103,0.503c-0.065,0.153-0.22-0.026-0.349-0.104c-0.129-0.078-0.308-0.128-0.398-0.219c-0.09-0.091,0.155-0.335,0.091-0.426c-0.065-0.09-0.412-0.013-0.45-0.013c-0.039,0-0.116-0.128-0.194-0.128c-0.077,0-0.064,0.258-0.064,0.258s-0.078-0.091-0.193-0.207c-0.117-0.115,0.012,0.077-0.103,0.193c-0.117,0.117-0.079,0.078-0.129,0.206c-0.051,0.129-0.167,0.077-0.283-0.052c-0.116-0.128-0.179-0.037-0.258,0c-0.077,0.039-0.141,0.259-0.18,0.309c-0.039,0.052-0.309,0.117-0.374,0.182c-0.064,0.062-0.09,0.27-0.09,0.322c0,0.05-0.271,0.023-0.361,0.089c-0.09,0.064-0.23,0.025-0.321,0.025c-0.09,0-0.399,0.244-0.502,0.308c-0.103,0.066-0.103,0.298-0.051,0.362c0.051,0.063,0.154,0.219,0.09,0.244c-0.064,0.026-0.104,0.206,0.051,0.359c0.154,0.155,0.103,0.194,0.115,0.271c0.014,0.077,0.078,0.104,0.181,0.232c0.102,0.128-0.181,0.231-0.219,0.31c-0.039,0.076,0.091,0.192,0.167,0.257c0.077,0.063,0.271,0.026,0.386-0.013c0.117-0.039,0.245-0.143,0.321-0.155c0.079-0.013,0.438-0.026,0.438-0.026s0.129-0.192,0.219-0.296c0.089-0.102,0.372-0.013,0.372-0.013s0.117-0.076,0.426-0.141c0.309-0.065,0.179,0.064,0.296,0.104c0.115,0.037,0.27,0.062,0.359,0.128c0.09,0.064,0,0.218-0.012,0.283c-0.014,0.064,0.219,0.038,0.23-0.026c0.014-0.064,0.077-0.128,0.207-0.205c0.128-0.078,0.025,0.114,0.076,0.231c0.052,0.116,0.129-0.157,0.129-0.026c0,0.039,0.039,0.078,0.051,0.116c0.014,0.039,0.181,0.052,0.181,0.18c0,0.13,0,0.207,0.039,0.231c0.038,0.026,0.244,0,0.335,0.155c0.089,0.154,0.154,0.013,0.205-0.052c0.052-0.064,0.231,0.026,0.283,0.078c0.052,0.05,0.193-0.104,0.387-0.155c0.192-0.051,0.167-0.039,0.219-0.115c0.051-0.078,0.09-0.283,0.205-0.438c0.115-0.153,0.271-0.424,0.271-0.631c0-0.206-0.014-0.682-0.155-0.899C18.761,21.953,18.492,21.733,18.504,21.618zM18.029,24.77c-0.065-0.013-0.207-0.062-0.207-0.062c-0.142,0.141,0.142,0.141,0.104,0.283c-0.039,0.141,0.193,0.089,0.257,0.064c0.063-0.027,0.22-0.323,0.193-0.399C18.351,24.577,18.093,24.783,18.029,24.77zM22.803,24.178c-0.052,0-0.077,0.064-0.192,0c-0.117-0.063-0.091-0.037-0.168-0.167c-0.077-0.127-0.091-0.296-0.219-0.23c-0.051,0.025,0,0.168,0.051,0.218c0.053,0.052,0.077,0.231,0.064,0.283c-0.012,0.052-0.231,0.116-0.129,0.18c0.104,0.064,0.297,0,0.271,0.078c-0.025,0.077-0.129,0.179-0.013,0.205c0.115,0.025,0.154-0.089,0.207-0.178c0.051-0.093,0.089-0.169,0.179-0.221C22.944,24.294,22.854,24.178,22.803,24.178zM22.815,21.18c0.168,0.064,0.464-0.231,0.347-0.27C23.047,20.871,22.815,21.18,22.815,21.18zM13.923,19.906c-0.029,0.115,0.193,0.167,0.206,0.039C14.141,19.816,13.949,19.803,13.923,19.906zM14.27,16.47c-0.064,0.065-0.257,0.193-0.283,0.31c-0.025,0.115,0.309-0.182,0.399-0.296c0.091-0.117,0.27-0.052,0.308-0.117c0.04-0.063,0.04-0.063,0.04-0.063s-0.142-0.025-0.257-0.063c-0.117-0.039-0.258,0.102-0.193-0.104c0.064-0.206,0.257-0.167,0.219-0.322c-0.039-0.154-0.168-0.193-0.207-0.193c-0.09,0,0.013,0.141-0.116,0.231c-0.128,0.09-0.271,0.128-0.193,0.283C14.064,16.29,14.334,16.405,14.27,16.47zM13.254,19.751c0.013-0.076-0.142-0.192-0.206-0.192c-0.065,0-0.386-0.077-0.386-0.077c-0.058,0.023-0.135,0.045-0.158,0.077c-0.007-0.011-0.022-0.024-0.049-0.039c-0.142-0.075-0.309,0-0.361-0.102c-0.05-0.104-0.127-0.104-0.179-0.039c-0.094,0.117,0.025,0.206,0.063,0.231c0.038,0.024,0.181,0.052,0.309,0.039c0.08-0.008,0.181-0.027,0.21-0.059c0.004,0.014,0.016,0.027,0.035,0.044c0.103,0.092,0.167,0.13,0.321,0.116C13.009,19.74,13.241,19.829,13.254,19.751zM12.881,18.992c0.065,0,0.193,0,0.283,0.026c0.09,0.025,0.386,0.05,0.373-0.064c-0.013-0.115-0.038-0.297,0.089-0.411c0.13-0.117,0.257-0.18,0.193-0.348c-0.063-0.167-0.193-0.271-0.103-0.349c0.09-0.076,0.192-0.102,0.192-0.166c0-0.065-0.217,0.18-0.244-0.246c-0.005-0.091-0.206,0.025-0.219,0.116c-0.012,0.091,0.142,0.167-0.103,0.167c-0.245,0-0.257,0.194-0.309,0.232c-0.052,0.039-0.103,0.051-0.207,0.076c-0.102,0.026-0.127,0.13-0.153,0.194c-0.025,0.063-0.206-0.116-0.257-0.064c-0.051,0.052-0.013,0.296,0.077,0.501C12.585,18.863,12.816,18.992,12.881,18.992zM11.979,18.928c0.065-0.077,0.038-0.192-0.063-0.18c-0.103,0.013-0.193-0.168-0.36-0.283c-0.168-0.114-0.296-0.194-0.451-0.36c-0.154-0.167-0.347-0.271-0.45-0.359c-0.104-0.091-0.257-0.13-0.322-0.116c-0.159,0.032,0.231,0.309,0.271,0.346c0.039,0.041,0.387,0.335,0.387,0.478s0.231,0.476,0.296,0.527c0.064,0.052,0.385,0.244,0.437,0.348c0.052,0.103,0.167,0.13,0.167-0.013C11.89,19.174,11.916,19.006,11.979,18.928zM11.002,17.474c0.064,0.232,0.193,0.464,0.244,0.555c0.052,0.089,0.271,0.217,0.348,0.281c0.077,0.064,0.192-0.024,0.143-0.102c-0.052-0.078-0.155-0.192-0.167-0.283c-0.013-0.091-0.078-0.233-0.181-0.387c-0.102-0.153-0.192-0.192-0.257-0.295c-0.064-0.104-0.296-0.297-0.296-0.297c-0.102,0.013-0.102,0.205-0.051,0.271C10.834,17.28,10.938,17.243,11.002,17.474z",
                "raph_globeAlt": "M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM27.436,17.39c0.001,0.002,0.004,0.002,0.005,0.004c-0.022,0.187-0.054,0.37-0.085,0.554c-0.015-0.012-0.034-0.025-0.047-0.036c-0.103-0.09-0.254-0.128-0.318-0.115c-0.157,0.032,0.229,0.305,0.267,0.342c0.009,0.009,0.031,0.03,0.062,0.058c-1.029,5.312-5.709,9.338-11.319,9.338c-4.123,0-7.736-2.18-9.776-5.441c0.123-0.016,0.24-0.016,0.28-0.076c0.051-0.077,0.102-0.241,0.178-0.331c0.077-0.089,0.165-0.229,0.127-0.292c-0.039-0.064,0.101-0.344,0.088-0.419c-0.013-0.076-0.127-0.256,0.064-0.407s0.394-0.382,0.407-0.444c0.012-0.063,0.166-0.331,0.152-0.458c-0.012-0.127-0.152-0.28-0.24-0.318c-0.09-0.037-0.28-0.05-0.356-0.151c-0.077-0.103-0.292-0.203-0.368-0.178c-0.076,0.025-0.204,0.05-0.305-0.015c-0.102-0.062-0.267-0.139-0.33-0.189c-0.065-0.05-0.229-0.088-0.305-0.088c-0.077,0-0.065-0.052-0.178,0.101c-0.114,0.153,0,0.204-0.204,0.177c-0.204-0.023,0.025-0.036,0.141-0.189c0.113-0.152-0.013-0.242-0.141-0.203c-0.126,0.038-0.038,0.115-0.241,0.153c-0.203,0.036-0.203-0.09-0.076-0.115s0.355-0.139,0.355-0.19c0-0.051-0.025-0.191-0.127-0.191s-0.077-0.126-0.229-0.291c-0.092-0.101-0.196-0.164-0.299-0.204c-0.09-0.579-0.15-1.167-0.15-1.771c0-2.844,1.039-5.446,2.751-7.458c0.024-0.02,0.048-0.034,0.069-0.036c0.084-0.009,0.31-0.025,0.51-0.059c0.202-0.034,0.418-0.161,0.489-0.153c0.069,0.008,0.241,0.008,0.186-0.042C8.417,8.2,8.339,8.082,8.223,8.082S8.215,7.896,8.246,7.896c0.03,0,0.186,0.025,0.178,0.11C8.417,8.091,8.471,8.2,8.625,8.167c0.156-0.034,0.132-0.162,0.102-0.195C8.695,7.938,8.672,7.853,8.642,7.794c-0.031-0.06-0.023-0.136,0.14-0.153C8.944,7.625,9.168,7.708,9.16,7.573s0-0.28,0.046-0.356C9.253,7.142,9.354,7.09,9.299,7.065C9.246,7.04,9.176,7.099,9.121,6.972c-0.054-0.127,0.047-0.22,0.108-0.271c0.02-0.015,0.067-0.06,0.124-0.112C11.234,5.257,13.524,4.466,16,4.466c3.213,0,6.122,1.323,8.214,3.45c-0.008,0.022-0.01,0.052-0.031,0.056c-0.077,0.013-0.166,0.063-0.179-0.051c-0.013-0.114-0.013-0.331-0.102-0.203c-0.089,0.127-0.127,0.127-0.127,0.191c0,0.063,0.076,0.127,0.051,0.241C23.8,8.264,23.8,8.341,23.84,8.341c0.036,0,0.126-0.115,0.239-0.141c0.116-0.025,0.319-0.088,0.332,0.026c0.013,0.115,0.139,0.152,0.013,0.203c-0.128,0.051-0.267,0.026-0.293-0.051c-0.025-0.077-0.114-0.077-0.203-0.013c-0.088,0.063-0.279,0.292-0.279,0.292s-0.306,0.139-0.343,0.114c-0.04-0.025,0.101-0.165,0.203-0.228c0.102-0.064,0.178-0.204,0.14-0.242c-0.038-0.038-0.088-0.279-0.063-0.343c0.025-0.063,0.139-0.152,0.013-0.216c-0.127-0.063-0.217-0.14-0.318-0.178s-0.216,0.152-0.305,0.204c-0.089,0.051-0.076,0.114-0.191,0.127c-0.114,0.013-0.189,0.165,0,0.254c0.191,0.089,0.255,0.152,0.204,0.204c-0.051,0.051-0.267-0.025-0.267-0.025s-0.165-0.076-0.268-0.076c-0.101,0-0.229-0.063-0.33-0.076c-0.102-0.013-0.306-0.013-0.355,0.038c-0.051,0.051-0.179,0.203-0.28,0.152c-0.101-0.051-0.101-0.102-0.241-0.051c-0.14,0.051-0.279-0.038-0.355,0.038c-0.077,0.076-0.013,0.076-0.255,0c-0.241-0.076-0.189,0.051-0.419,0.089s-0.368-0.038-0.432,0.038c-0.064,0.077-0.153,0.217-0.19,0.127c-0.038-0.088,0.126-0.241,0.062-0.292c-0.062-0.051-0.33-0.025-0.367,0.013c-0.039,0.038-0.014,0.178,0.011,0.229c0.026,0.05,0.064,0.254-0.011,0.216c-0.077-0.038-0.064-0.166-0.141-0.152c-0.076,0.013-0.165,0.051-0.203,0.077c-0.038,0.025-0.191,0.025-0.229,0.076c-0.037,0.051,0.014,0.191-0.051,0.203c-0.063,0.013-0.114,0.064-0.254-0.025c-0.14-0.089-0.14-0.038-0.178-0.012c-0.038,0.025-0.216,0.127-0.229,0.012c-0.013-0.114,0.025-0.152-0.089-0.229c-0.115-0.076-0.026-0.076,0.127-0.025c0.152,0.05,0.343,0.075,0.622-0.013c0.28-0.089,0.395-0.127,0.28-0.178c-0.115-0.05-0.229-0.101-0.406-0.127c-0.179-0.025-0.42-0.025-0.7-0.127c-0.279-0.102-0.343-0.14-0.457-0.165c-0.115-0.026-0.813-0.14-1.132-0.089c-0.317,0.051-1.193,0.28-1.245,0.318s-0.128,0.19-0.292,0.318c-0.165,0.127-0.47,0.419-0.712,0.47c-0.241,0.051-0.521,0.254-0.521,0.305c0,0.051,0.101,0.242,0.076,0.28c-0.025,0.038,0.05,0.229,0.191,0.28c0.139,0.05,0.381,0.038,0.393-0.039c0.014-0.076,0.204-0.241,0.217-0.127c0.013,0.115,0.14,0.292,0.114,0.368c-0.025,0.077,0,0.153,0.09,0.14c0.088-0.012,0.559-0.114,0.559-0.114s0.153-0.064,0.127-0.166c-0.026-0.101,0.166-0.241,0.203-0.279c0.038-0.038,0.178-0.191,0.014-0.241c-0.167-0.051-0.293-0.064-0.115-0.216s0.292,0,0.521-0.229c0.229-0.229-0.051-0.292,0.191-0.305c0.241-0.013,0.496-0.025,0.444,0.051c-0.05,0.076-0.342,0.242-0.508,0.318c-0.166,0.077-0.14,0.216-0.076,0.292c0.063,0.076,0.09,0.254,0.204,0.229c0.113-0.025,0.254-0.114,0.38-0.101c0.128,0.012,0.383-0.013,0.42-0.013c0.039,0,0.216,0.178,0.114,0.203c-0.101,0.025-0.229,0.013-0.445,0.025c-0.215,0.013-0.456,0.013-0.456,0.051c0,0.039,0.292,0.127,0.19,0.191c-0.102,0.063-0.203-0.013-0.331-0.026c-0.127-0.012-0.203,0.166-0.241,0.267c-0.039,0.102,0.063,0.28-0.127,0.216c-0.191-0.063-0.331-0.063-0.381-0.038c-0.051,0.025-0.203,0.076-0.331,0.114c-0.126,0.038-0.076-0.063-0.242-0.063c-0.164,0-0.164,0-0.164,0l-0.103,0.013c0,0-0.101-0.063-0.114-0.165c-0.013-0.102,0.05-0.216-0.013-0.241c-0.064-0.026-0.292,0.012-0.33,0.088c-0.038,0.076-0.077,0.216-0.026,0.28c0.052,0.063,0.204,0.19,0.064,0.152c-0.14-0.038-0.317-0.051-0.419,0.026c-0.101,0.076-0.279,0.241-0.279,0.241s-0.318,0.025-0.318,0.102c0,0.077,0,0.178-0.114,0.191c-0.115,0.013-0.268,0.05-0.42,0.076c-0.153,0.025-0.139,0.088-0.317,0.102s-0.204,0.089-0.038,0.114c0.165,0.025,0.418,0.127,0.431,0.241c0.014,0.114-0.013,0.242-0.076,0.356c-0.043,0.079-0.305,0.026-0.458,0.026c-0.152,0-0.456-0.051-0.584,0c-0.127,0.051-0.102,0.305-0.064,0.419c0.039,0.114-0.012,0.178-0.063,0.216c-0.051,0.038-0.065,0.152,0,0.204c0.063,0.051,0.114,0.165,0.166,0.178c0.051,0.013,0.215-0.038,0.279,0.025c0.064,0.064,0.127,0.216,0.165,0.178c0.039-0.038,0.089-0.203,0.153-0.166c0.064,0.039,0.216-0.012,0.331-0.025s0.177-0.14,0.292-0.204c0.114-0.063,0.05-0.063,0.013-0.14c-0.038-0.076,0.114-0.165,0.204-0.254c0.088-0.089,0.253-0.013,0.292-0.115c0.038-0.102,0.051-0.279,0.151-0.267c0.103,0.013,0.243,0.076,0.331,0.076c0.089,0,0.279-0.14,0.332-0.165c0.05-0.025,0.241-0.013,0.267,0.102c0.025,0.114,0.241,0.254,0.292,0.279c0.051,0.025,0.381,0.127,0.433,0.165c0.05,0.038,0.126,0.153,0.152,0.254c0.025,0.102,0.114,0.102,0.128,0.013c0.012-0.089-0.065-0.254,0.025-0.242c0.088,0.013,0.191-0.026,0.191-0.026s-0.243-0.165-0.331-0.203c-0.088-0.038-0.255-0.114-0.331-0.241c-0.076-0.127-0.267-0.153-0.254-0.279c0.013-0.127,0.191-0.051,0.292,0.051c0.102,0.102,0.356,0.241,0.445,0.33c0.088,0.089,0.229,0.127,0.267,0.242c0.039,0.114,0.152,0.241,0.19,0.292c0.038,0.051,0.165,0.331,0.204,0.394c0.038,0.063,0.165-0.012,0.229-0.063c0.063-0.051,0.179-0.076,0.191-0.178c0.013-0.102-0.153-0.178-0.203-0.216c-0.051-0.038,0.127-0.076,0.191-0.127c0.063-0.05,0.177-0.14,0.228-0.063c0.051,0.077,0.026,0.381,0.051,0.432c0.025,0.051,0.279,0.127,0.331,0.191c0.05,0.063,0.267,0.089,0.304,0.051c0.039-0.038,0.242,0.026,0.294,0.038c0.049,0.013,0.202-0.025,0.304-0.05c0.103-0.025,0.204-0.102,0.191,0.063c-0.013,0.165-0.051,0.419-0.179,0.546c-0.127,0.127-0.076,0.191-0.202,0.191c-0.06,0-0.113,0-0.156,0.021c-0.041-0.065-0.098-0.117-0.175-0.097c-0.152,0.038-0.344,0.038-0.47,0.19c-0.128,0.153-0.178,0.165-0.204,0.114c-0.025-0.051,0.369-0.267,0.317-0.331c-0.05-0.063-0.355-0.038-0.521-0.038c-0.166,0-0.305-0.102-0.433-0.127c-0.126-0.025-0.292,0.127-0.418,0.254c-0.128,0.127-0.216,0.038-0.331,0.038c-0.115,0-0.331-0.165-0.331-0.165s-0.216-0.089-0.305-0.089c-0.088,0-0.267-0.165-0.318-0.165c-0.05,0-0.19-0.115-0.088-0.166c0.101-0.05,0.202,0.051,0.101-0.229c-0.101-0.279-0.33-0.216-0.419-0.178c-0.088,0.039-0.724,0.025-0.775,0.025c-0.051,0-0.419,0.127-0.533,0.178c-0.116,0.051-0.318,0.115-0.369,0.14c-0.051,0.025-0.318-0.051-0.433,0.013c-0.151,0.084-0.291,0.216-0.33,0.216c-0.038,0-0.153,0.089-0.229,0.28c-0.077,0.19,0.013,0.355-0.128,0.419c-0.139,0.063-0.394,0.204-0.495,0.305c-0.102,0.101-0.229,0.458-0.355,0.623c-0.127,0.165,0,0.317,0.025,0.419c0.025,0.101,0.114,0.292-0.025,0.471c-0.14,0.178-0.127,0.266-0.191,0.279c-0.063,0.013,0.063,0.063,0.088,0.19c0.025,0.128-0.114,0.255,0.128,0.369c0.241,0.113,0.355,0.217,0.418,0.367c0.064,0.153,0.382,0.407,0.382,0.407s0.229,0.205,0.344,0.293c0.114,0.089,0.152,0.038,0.177-0.05c0.025-0.09,0.178-0.104,0.355-0.104c0.178,0,0.305,0.04,0.483,0.014c0.178-0.025,0.356-0.141,0.42-0.166c0.063-0.025,0.279-0.164,0.443-0.063c0.166,0.103,0.141,0.241,0.23,0.332c0.088,0.088,0.24,0.037,0.355-0.051c0.114-0.09,0.064-0.052,0.203,0.025c0.14,0.075,0.204,0.151,0.077,0.267c-0.128,0.113-0.051,0.293-0.128,0.47c-0.076,0.178-0.063,0.203,0.077,0.278c0.14,0.076,0.394,0.548,0.47,0.638c0.077,0.088-0.025,0.342,0.064,0.495c0.089,0.151,0.178,0.254,0.077,0.331c-0.103,0.075-0.28,0.216-0.292,0.47s0.051,0.431,0.102,0.521s0.177,0.331,0.241,0.419c0.064,0.089,0.14,0.305,0.152,0.445c0.013,0.14-0.024,0.306,0.039,0.381c0.064,0.076,0.102,0.191,0.216,0.292c0.115,0.103,0.152,0.318,0.152,0.318s0.039,0.089,0.051,0.229c0.012,0.14,0.025,0.228,0.152,0.292c0.126,0.063,0.215,0.076,0.28,0.013c0.063-0.063,0.381-0.077,0.546-0.063c0.165,0.013,0.355-0.075,0.521-0.19s0.407-0.419,0.496-0.508c0.089-0.09,0.292-0.255,0.268-0.356c-0.025-0.101-0.077-0.203,0.024-0.254c0.102-0.052,0.344-0.152,0.356-0.229c0.013-0.077-0.09-0.395-0.115-0.457c-0.024-0.064,0.064-0.18,0.165-0.306c0.103-0.128,0.421-0.216,0.471-0.267c0.051-0.053,0.191-0.267,0.217-0.433c0.024-0.167-0.051-0.369,0-0.457c0.05-0.09,0.013-0.165-0.103-0.268c-0.114-0.102-0.089-0.407-0.127-0.457c-0.037-0.051-0.013-0.319,0.063-0.345c0.076-0.023,0.242-0.279,0.344-0.393c0.102-0.114,0.394-0.47,0.534-0.496c0.139-0.025,0.355-0.229,0.368-0.343c0.013-0.115,0.38-0.547,0.394-0.635c0.013-0.09,0.166-0.42,0.102-0.497c-0.062-0.076-0.559,0.115-0.622,0.141c-0.064,0.025-0.241,0.127-0.446,0.113c-0.202-0.013-0.114-0.177-0.127-0.254c-0.012-0.076-0.228-0.368-0.279-0.381c-0.051-0.012-0.203-0.166-0.267-0.317c-0.063-0.153-0.152-0.343-0.254-0.458c-0.102-0.114-0.165-0.38-0.268-0.559c-0.101-0.178-0.189-0.407-0.279-0.572c-0.021-0.041-0.045-0.079-0.067-0.117c0.118-0.029,0.289-0.082,0.31-0.009c0.024,0.088,0.165,0.279,0.19,0.419s0.165,0.089,0.178,0.216c0.014,0.128,0.14,0.433,0.19,0.47c0.052,0.038,0.28,0.242,0.318,0.318c0.038,0.076,0.089,0.178,0.127,0.369c0.038,0.19,0.076,0.444,0.179,0.482c0.102,0.038,0.444-0.064,0.508-0.102s0.482-0.242,0.635-0.255c0.153-0.012,0.179-0.115,0.368-0.152c0.191-0.038,0.331-0.177,0.458-0.28c0.127-0.101,0.28-0.355,0.33-0.444c0.052-0.088,0.179-0.152,0.115-0.253c-0.063-0.103-0.331-0.254-0.433-0.268c-0.102-0.012-0.089-0.178-0.152-0.178s-0.051,0.088-0.178,0.153c-0.127,0.063-0.255,0.19-0.344,0.165s0.026-0.089-0.113-0.203s-0.192-0.14-0.192-0.228c0-0.089-0.278-0.255-0.304-0.382c-0.026-0.127,0.19-0.305,0.254-0.19c0.063,0.114,0.115,0.292,0.279,0.368c0.165,0.076,0.318,0.204,0.395,0.229c0.076,0.025,0.267-0.14,0.33-0.114c0.063,0.024,0.191,0.253,0.306,0.292c0.113,0.038,0.495,0.051,0.559,0.051s0.33,0.013,0.381-0.063c0.051-0.076,0.089-0.076,0.153-0.076c0.062,0,0.177,0.229,0.267,0.254c0.089,0.025,0.254,0.013,0.241,0.179c-0.012,0.164,0.076,0.305,0.165,0.317c0.09,0.012,0.293-0.191,0.293-0.191s0,0.318-0.012,0.433c-0.014,0.113,0.139,0.534,0.139,0.534s0.19,0.393,0.241,0.482s0.267,0.355,0.267,0.47c0,0.115,0.025,0.293,0.103,0.293c0.076,0,0.152-0.203,0.24-0.331c0.091-0.126,0.116-0.305,0.153-0.432c0.038-0.127,0.038-0.356,0.038-0.444c0-0.09,0.075-0.166,0.255-0.242c0.178-0.076,0.304-0.292,0.456-0.407c0.153-0.115,0.141-0.305,0.446-0.305c0.305,0,0.278,0,0.355-0.077c0.076-0.076,0.151-0.127,0.19,0.013c0.038,0.14,0.254,0.343,0.292,0.394c0.038,0.052,0.114,0.191,0.103,0.344c-0.013,0.152,0.012,0.33,0.075,0.33s0.191-0.216,0.191-0.216s0.279-0.189,0.267,0.013c-0.014,0.203,0.025,0.419,0.025,0.545c0,0.053,0.042,0.135,0.088,0.21c-0.005,0.059-0.004,0.119-0.009,0.178C27.388,17.153,27.387,17.327,27.436,17.39zM20.382,12.064c0.076,0.05,0.102,0.127,0.152,0.203c0.052,0.076,0.14,0.05,0.203,0.114c0.063,0.064-0.178,0.14-0.075,0.216c0.101,0.077,0.151,0.381,0.165,0.458c0.013,0.076-0.279,0.114-0.369,0.102c-0.089-0.013-0.354-0.102-0.445-0.127c-0.089-0.026-0.139-0.343-0.025-0.331c0.116,0.013,0.141-0.025,0.267-0.139c0.128-0.115-0.189-0.166-0.278-0.191c-0.089-0.025-0.268-0.305-0.331-0.394c-0.062-0.089-0.014-0.228,0.141-0.331c0.076-0.051,0.279,0.063,0.381,0c0.101-0.063,0.203-0.14,0.241-0.165c0.039-0.025,0.293,0.038,0.33,0.114c0.039,0.076,0.191,0.191,0.141,0.229c-0.052,0.038-0.281,0.076-0.356,0c-0.075-0.077-0.255,0.012-0.268,0.152C20.242,12.115,20.307,12.013,20.382,12.064zM16.875,12.28c-0.077-0.025,0.025-0.178,0.102-0.229c0.075-0.051,0.164-0.178,0.241-0.305c0.076-0.127,0.178-0.14,0.241-0.127c0.063,0.013,0.203,0.241,0.241,0.318c0.038,0.076,0.165-0.026,0.217-0.051c0.05-0.025,0.127-0.102,0.14-0.165s0.127-0.102,0.254-0.102s0.013,0.102-0.076,0.127c-0.09,0.025-0.038,0.077,0.113,0.127c0.153,0.051,0.293,0.191,0.459,0.279c0.165,0.089,0.19,0.267,0.088,0.292c-0.101,0.025-0.406,0.051-0.521,0.038c-0.114-0.013-0.254-0.127-0.419-0.153c-0.165-0.025-0.369-0.013-0.433,0.077s-0.292,0.05-0.395,0.05c-0.102,0-0.228,0.127-0.253,0.077C16.875,12.534,16.951,12.306,16.875,12.28zM17.307,9.458c0.063-0.178,0.419,0.038,0.355,0.127C17.599,9.675,17.264,9.579,17.307,9.458zM17.802,18.584c0.063,0.102-0.14,0.431-0.254,0.407c-0.113-0.027-0.076-0.318-0.038-0.382C17.548,18.545,17.769,18.529,17.802,18.584zM13.189,12.674c0.025-0.051-0.039-0.153-0.127-0.013C13.032,12.71,13.164,12.725,13.189,12.674zM20.813,8.035c0.141,0.076,0.339,0.107,0.433,0.013c0.076-0.076,0.013-0.204-0.05-0.216c-0.064-0.013-0.104-0.115,0.062-0.203c0.165-0.089,0.343-0.204,0.534-0.229c0.19-0.025,0.622-0.038,0.774,0c0.152,0.039,0.382-0.166,0.445-0.254s-0.203-0.152-0.279-0.051c-0.077,0.102-0.444,0.076-0.521,0.051c-0.076-0.025-0.686,0.102-0.812,0.102c-0.128,0-0.179,0.152-0.356,0.229c-0.179,0.076-0.42,0.191-0.509,0.229c-0.088,0.038-0.177,0.19-0.101,0.216C20.509,7.947,20.674,7.959,20.813,8.035zM14.142,12.674c0.064-0.089-0.051-0.217-0.114-0.217c-0.12,0-0.178,0.191-0.103,0.254C14.002,12.776,14.078,12.763,14.142,12.674zM14.714,13.017c0.064,0.025,0.114,0.102,0.165,0.114c0.052,0.013,0.217,0,0.167-0.127s-0.167-0.127-0.204-0.127c-0.038,0-0.203-0.038-0.267,0C14.528,12.905,14.65,12.992,14.714,13.017zM11.308,10.958c0.101,0.013,0.217-0.063,0.305-0.101c0.088-0.038,0.216-0.114,0.216-0.229c0-0.114-0.025-0.216-0.077-0.267c-0.051-0.051-0.14-0.064-0.216-0.051c-0.115,0.02-0.127,0.14-0.203,0.14c-0.076,0-0.165,0.025-0.14,0.114s0.077,0.152,0,0.19C11.117,10.793,11.205,10.946,11.308,10.958zM11.931,10.412c0.127,0.051,0.394,0.102,0.292,0.153c-0.102,0.051-0.28,0.19-0.305,0.267s0.216,0.153,0.216,0.153s-0.077,0.089-0.013,0.114c0.063,0.025,0.102-0.089,0.203-0.089c0.101,0,0.304,0.063,0.406,0.063c0.103,0,0.267-0.14,0.254-0.229c-0.013-0.089-0.14-0.229-0.254-0.28c-0.113-0.051-0.241-0.28-0.317-0.331c-0.076-0.051,0.076-0.178-0.013-0.267c-0.09-0.089-0.153-0.076-0.255-0.14c-0.102-0.063-0.191,0.013-0.254,0.089c-0.063,0.076-0.14-0.013-0.217,0.012c-0.102,0.035-0.063,0.166-0.012,0.229C11.714,10.221,11.804,10.361,11.931,10.412zM24.729,17.198c-0.083,0.037-0.153,0.47,0,0.521c0.152,0.052,0.241-0.202,0.191-0.267C24.868,17.39,24.843,17.147,24.729,17.198zM20.114,20.464c-0.159-0.045-0.177,0.166-0.304,0.306c-0.128,0.141-0.267,0.254-0.317,0.241c-0.052-0.013-0.331,0.089-0.242,0.279c0.089,0.191,0.076,0.382-0.013,0.472c-0.089,0.088,0.076,0.342,0.052,0.482c-0.026,0.139,0.037,0.229,0.215,0.229s0.242-0.064,0.318-0.229c0.076-0.166,0.088-0.331,0.164-0.47c0.077-0.141,0.141-0.434,0.179-0.51c0.038-0.075,0.114-0.316,0.102-0.457C20.254,20.669,20.204,20.489,20.114,20.464zM10.391,8.802c-0.069-0.06-0.229-0.102-0.306-0.11c-0.076-0.008-0.152,0.06-0.321,0.06c-0.168,0-0.279,0.067-0.347,0C9.349,8.684,9.068,8.65,9.042,8.692C9.008,8.749,8.941,8.751,9.008,8.87c0.069,0.118,0.12,0.186,0.179,0.178s0.262-0.017,0.288,0.051C9.5,9.167,9.569,9.226,9.712,9.184c0.145-0.042,0.263-0.068,0.296-0.119c0.033-0.051,0.263-0.059,0.263-0.059S10.458,8.861,10.391,8.802z",
                "raph_globe": "M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM19.158,23.269c-0.079,0.064-0.183,0.13-0.105,0.207c0.078,0.078-0.09,0.131-0.09,0.17s0.104,0.246,0.052,0.336c-0.052,0.092-0.091,0.223-0.13,0.301c-0.039,0.077-0.131,0.155-0.104,0.272c0.025,0.116-0.104,0.077-0.104,0.194c0,0.116,0.116,0.065,0.09,0.208c-0.025,0.144-0.09,0.183-0.09,0.285c0,0.104,0.064,0.247,0.064,0.286s-0.064,0.17-0.155,0.272c-0.092,0.104-0.155,0.17-0.144,0.233c0.014,0.065,0.104,0.144,0.091,0.184c-0.013,0.037-0.129,0.168-0.116,0.259c0.014,0.09,0.129,0.053,0.155,0.116c0.026,0.065-0.155,0.118-0.078,0.183c0.078,0.064,0.183,0.051,0.156,0.208c-0.019,0.112,0.064,0.163,0.126,0.198c-0.891,0.221-1.818,0.352-2.777,0.352C9.639,27.533,4.466,22.36,4.466,16c0-2.073,0.557-4.015,1.518-5.697c0.079-0.042,0.137-0.069,0.171-0.062c0.065,0.013,0.079,0.104,0.183,0.13c0.104,0.026,0.195-0.078,0.26-0.117c0.064-0.039,0.116-0.195,0.051-0.182c-0.065,0.013-0.234,0-0.234,0s0.183-0.104,0.183-0.169s0.025-0.169,0.129-0.208C6.83,9.655,6.83,9.681,6.765,9.837C6.7,9.993,6.896,9.928,6.973,9.863s0.13-0.013,0.272-0.104c0.143-0.091,0.143-0.143,0.221-0.143c0.078,0,0.221,0.143,0.299,0.091c0.077-0.052,0.299,0.065,0.429,0.065c0.129,0,0.545,0.169,0.624,0.169c0.078,0,0.312,0.09,0.325,0.259c0.013,0.169,0.09,0.156,0.168,0.156s0.26,0.065,0.26,0.13c0,0.065-0.052,0.325,0.078,0.39c0.129,0.064,0.247,0.169,0.299,0.143c0.052-0.026,0-0.233-0.064-0.26c-0.065-0.026-0.027-0.117-0.052-0.169c-0.026-0.051,0.078-0.051,0.117,0.039c0.039,0.091,0.143,0.26,0.208,0.26c0.064,0,0.208,0.156,0.168,0.247c-0.039,0.091,0.039,0.221,0.156,0.221c0.116,0,0.26,0.182,0.312,0.195c0.052,0.013,0.117,0.078,0.117,0.117c0,0.04,0.065,0.26,0.065,0.351c0,0.09-0.04,0.454-0.053,0.597s0.104,0.39,0.234,0.52c0.129,0.13,0.246,0.377,0.324,0.429c0.079,0.052,0.13,0.195,0.247,0.182c0.117-0.013,0.195,0.078,0.299,0.26c0.104,0.182,0.208,0.48,0.286,0.506c0.078,0.026,0.208,0.117,0.142,0.182c-0.064,0.064-0.168,0.208-0.051,0.208c0.117,0,0.156-0.065,0.247,0.053c0.09,0.116,0.208,0.181,0.194,0.26c-0.013,0.077,0.104,0.103,0.156,0.116c0.052,0.013,0.169,0.247,0.286,0.143c0.117-0.104-0.155-0.259-0.234-0.326c-0.078-0.064,0-0.207-0.182-0.35c-0.182-0.143-0.156-0.247-0.286-0.351c-0.13-0.104-0.233-0.195-0.104-0.286c0.13-0.091,0.143,0.091,0.195,0.208c0.052,0.116,0.324,0.351,0.441,0.454c0.117,0.104,0.326,0.468,0.39,0.468s0.247,0.208,0.247,0.208s0.103,0.168,0.064,0.22c-0.039,0.052,0.053,0.247,0.144,0.299c0.09,0.052,0.455,0.22,0.507,0.247c0.052,0.027,0.155,0.221,0.299,0.221c0.142,0,0.247,0.014,0.286,0.053c0.039,0.038,0.155,0.194,0.234,0.104c0.078-0.092,0.09-0.131,0.208-0.131c0.117,0,0.168,0.091,0.233,0.156c0.065,0.065,0.247,0.235,0.338,0.222c0.091-0.013,0.208,0.104,0.273,0.064s0.169,0.025,0.22,0.052c0.054,0.026,0.234,0.118,0.222,0.272c-0.013,0.157,0.103,0.195,0.182,0.234c0.078,0.039,0.182,0.13,0.248,0.195c0.064,0.063,0.206,0.077,0.246,0.116c0.039,0.039,0.065,0.117,0.182,0.052c0.116-0.064,0.092-0.181,0.092-0.181s0.129-0.026,0.194,0.026c0.064,0.05,0.104,0.22,0.144,0.246c0.038,0.026,0.115,0.221,0.063,0.362c-0.051,0.145-0.038,0.286-0.091,0.286c-0.052,0-0.116,0.17-0.195,0.209c-0.076,0.039-0.285,0.221-0.272,0.286c0.013,0.063,0.131,0.258,0.104,0.35c-0.025,0.091-0.194,0.195-0.154,0.338c0.038,0.144,0.312,0.183,0.323,0.312c0.014,0.131,0.209,0.417,0.235,0.546c0.025,0.13,0.246,0.272,0.246,0.453c0,0.184,0.312,0.3,0.377,0.312c0.063,0.013,0.182,0.131,0.272,0.17s0.169,0.116,0.233,0.221s0.053,0.261,0.053,0.299c0,0.039-0.039,0.44-0.078,0.674C19.145,23.021,19.235,23.203,19.158,23.269zM10.766,11.188c0.039,0.013,0.117,0.091,0.156,0.091c0.04,0,0.234,0.156,0.286,0.208c0.053,0.052,0.053,0.195-0.013,0.208s-0.104-0.143-0.117-0.208c-0.013-0.065-0.143-0.065-0.208-0.104C10.805,11.344,10.66,11.152,10.766,11.188zM27.51,16.41c-0.144,0.182-0.13,0.272-0.195,0.286c-0.064,0.013,0.065,0.065,0.09,0.194c0.022,0.112-0.065,0.224,0.063,0.327c-0.486,4.619-3.71,8.434-8.016,9.787c-0.007-0.011-0.019-0.025-0.021-0.034c-0.027-0.078-0.027-0.233,0.064-0.285c0.091-0.053,0.312-0.233,0.363-0.272c0.052-0.04,0.13-0.221,0.091-0.247c-0.038-0.026-0.232,0-0.26-0.039c-0.026-0.039-0.026-0.092,0.104-0.182c0.13-0.091,0.195-0.222,0.247-0.26c0.052-0.039,0.155-0.117,0.195-0.209c0.038-0.09-0.041-0.039-0.118-0.039s-0.117-0.142-0.117-0.207s0.195,0.026,0.339,0.052c0.143,0.024,0.077-0.065,0.064-0.142c-0.013-0.078,0.026-0.209,0.105-0.17c0.076,0.039,0.479-0.013,0.531-0.026c0.052-0.013,0.194-0.246,0.246-0.312c0.053-0.065,0.064-0.129,0-0.168c-0.065-0.04-0.143-0.184-0.168-0.221c-0.026-0.041-0.039-0.274-0.013-0.34c0.025-0.063,0,0.377,0.181,0.43c0.183,0.052,0.286,0.078,0.455-0.078c0.169-0.155,0.298-0.26,0.312-0.363c0.013-0.104,0.052-0.209,0.117-0.246c0.065-0.039,0.104,0.103,0.182-0.065c0.078-0.17,0.156-0.157,0.234-0.299c0.077-0.144-0.13-0.325,0.024-0.43c0.157-0.103,0.43-0.233,0.43-0.233s0.078-0.039,0.234-0.078c0.155-0.038,0.324-0.014,0.376-0.09c0.052-0.079,0.104-0.247,0.182-0.338c0.079-0.092,0.169-0.234,0.13-0.299c-0.039-0.065,0.104-0.352,0.091-0.429c-0.013-0.078-0.13-0.261,0.065-0.416s0.402-0.391,0.416-0.454c0.012-0.065,0.169-0.338,0.154-0.469c-0.012-0.129-0.154-0.285-0.245-0.325c-0.092-0.037-0.286-0.05-0.364-0.154s-0.299-0.208-0.377-0.182c-0.077,0.026-0.208,0.051-0.312-0.015c-0.104-0.063-0.272-0.143-0.337-0.194c-0.066-0.051-0.234-0.09-0.312-0.09s-0.065-0.053-0.182,0.103c-0.117,0.157,0,0.209-0.208,0.182c-0.209-0.024,0.025-0.038,0.144-0.194c0.115-0.155-0.014-0.247-0.144-0.207c-0.13,0.039-0.039,0.117-0.247,0.156c-0.207,0.038-0.207-0.092-0.077-0.117c0.13-0.026,0.363-0.143,0.363-0.194c0-0.053-0.026-0.196-0.13-0.196s-0.078-0.129-0.233-0.297c-0.156-0.17-0.351-0.274-0.508-0.249c-0.154,0.026-0.272,0.065-0.35-0.076c-0.078-0.144-0.169-0.17-0.222-0.247c-0.051-0.078-0.182,0-0.221-0.039s-0.039-0.039-0.039-0.039s-0.169,0.039-0.077-0.078c0.09-0.117,0.129-0.338,0.09-0.325c-0.038,0.013-0.104,0.196-0.168,0.183c-0.064-0.013-0.014-0.04-0.144-0.117c-0.13-0.078-0.337-0.013-0.337,0.052c0,0.065-0.065,0.117-0.065,0.117s-0.039-0.038-0.078-0.117c-0.039-0.078-0.221-0.091-0.312-0.013c-0.09,0.078-0.142-0.196-0.207-0.196s-0.194,0.065-0.26,0.184c-0.064,0.116-0.038,0.285-0.092,0.272c-0.05-0.013-0.063-0.233-0.05-0.312c0.012-0.079,0.155-0.208,0.05-0.234c-0.103-0.026-0.259,0.13-0.323,0.143c-0.065,0.013-0.195,0.104-0.273,0.209c-0.077,0.103-0.116,0.168-0.195,0.207c-0.077,0.039-0.193,0-0.167-0.039c0.025-0.039-0.222-0.181-0.261-0.13c-0.04,0.052-0.155,0.091-0.272,0.144c-0.117,0.052-0.222-0.065-0.247-0.117s-0.079-0.064-0.091-0.234c-0.013-0.168,0.027-0.351,0.065-0.454c0.038-0.104-0.195-0.312-0.286-0.3c-0.091,0.015-0.182,0.105-0.272,0.091c-0.092-0.012-0.052-0.038-0.195-0.038c-0.143,0-0.026-0.025,0-0.143c0.025-0.116-0.052-0.273,0.092-0.377c0.142-0.104,0.091-0.351,0-0.363c-0.092-0.014-0.261,0.039-0.377,0.026c-0.116-0.014-0.208,0.091-0.169,0.207c0.039,0.117-0.065,0.195-0.104,0.183c-0.039-0.013-0.09-0.078-0.234,0.026c-0.142,0.103-0.194,0.064-0.337-0.052c-0.143-0.118-0.299-0.234-0.325-0.416c-0.026-0.182-0.04-0.364,0.013-0.468c0.051-0.104,0.051-0.285-0.026-0.312c-0.078-0.025,0.09-0.155,0.181-0.181c0.092-0.026,0.234-0.143,0.26-0.195c0.026-0.052,0.156-0.04,0.298-0.04c0.143,0,0.169,0,0.312,0.078c0.143,0.078,0.169-0.039,0.169-0.078c0-0.039,0.052-0.117,0.208-0.104c0.156,0.013,0.376-0.052,0.416-0.013s0.116,0.195,0.194,0.143c0.079-0.051,0.104-0.143,0.131,0.014c0.025,0.155,0.09,0.39,0.208,0.429c0.116,0.039,0.052,0.194,0.168,0.207c0.115,0.013,0.17-0.246,0.131-0.337c-0.04-0.09-0.118-0.363-0.183-0.428c-0.064-0.065-0.064-0.234,0.064-0.286c0.13-0.052,0.442-0.312,0.532-0.389c0.092-0.079,0.338-0.144,0.261-0.248c-0.078-0.104-0.104-0.168-0.104-0.247s0.078-0.052,0.117,0s0.194-0.078,0.155-0.143c-0.038-0.064-0.026-0.155,0.065-0.143c0.091,0.013,0.116-0.065,0.078-0.117c-0.039-0.052,0.091-0.117,0.182-0.091c0.092,0.026,0.325-0.013,0.364-0.065c0.038-0.052-0.078-0.104-0.078-0.208c0-0.104,0.155-0.195,0.247-0.208c0.091-0.013,0.207,0,0.221-0.039c0.012-0.039,0.143-0.143,0.155-0.052c0.014,0.091,0,0.247,0.104,0.247c0.104,0,0.232-0.117,0.272-0.129c0.038-0.013,0.286-0.065,0.338-0.078c0.052-0.013,0.363-0.039,0.325-0.13c-0.039-0.09-0.078-0.181-0.118-0.22c-0.039-0.039-0.077,0.013-0.13,0.078c-0.051,0.065-0.143,0.065-0.168,0.013c-0.026-0.051,0.012-0.207-0.078-0.156c-0.092,0.052-0.104,0.104-0.157,0.078c-0.052-0.026-0.103-0.117-0.103-0.117s0.129-0.064,0.038-0.182c-0.09-0.117-0.221-0.091-0.35-0.025c-0.13,0.064-0.118,0.051-0.273,0.09s-0.234,0.078-0.234,0.078s0.209-0.129,0.299-0.208c0.091-0.078,0.209-0.117,0.286-0.195c0.078-0.078,0.285,0.039,0.285,0.039s0.105-0.104,0.105-0.039s-0.027,0.234,0.051,0.234c0.079,0,0.299-0.104,0.21-0.131c-0.093-0.026,0.129,0,0.219-0.065c0.092-0.065,0.194-0.065,0.247-0.09c0.052-0.026,0.092-0.143,0.182-0.143c0.092,0,0.13,0.117,0,0.195s-0.143,0.273-0.208,0.325c-0.064,0.052-0.026,0.117,0.078,0.104c0.104-0.013,0.194,0.013,0.286-0.013s0.143,0.026,0.168,0.065c0.026,0.039,0.104-0.039,0.104-0.039s0.169-0.039,0.221,0.026c0.053,0.064,0.092-0.039,0.053-0.104c-0.039-0.064-0.092-0.129-0.13-0.208c-0.039-0.078-0.091-0.104-0.194-0.078c-0.104,0.026-0.13-0.026-0.195-0.064c-0.065-0.04-0.118,0.052-0.065-0.04c0.053-0.09,0.078-0.117,0.117-0.195c0.039-0.078,0.209-0.221,0.039-0.259c-0.169-0.04-0.222-0.065-0.247-0.143c-0.026-0.078-0.221-0.221-0.272-0.221c-0.053,0-0.233,0-0.247-0.065c-0.013-0.065-0.143-0.208-0.208-0.273c-0.064-0.065-0.312-0.351-0.351-0.377c-0.039-0.026-0.091-0.013-0.208,0.143c-0.116,0.157-0.22,0.183-0.312,0.144c-0.091-0.039-0.104-0.026-0.193-0.13c-0.093-0.104,0.09-0.117,0.051-0.182c-0.04-0.064-0.247-0.091-0.377-0.104c-0.13-0.013-0.221-0.156-0.416-0.169c-0.194-0.013-0.428,0.026-0.493,0.026c-0.064,0-0.064,0.091-0.09,0.234c-0.027,0.143,0.09,0.182-0.027,0.208c-0.116,0.026-0.169,0.039-0.052,0.091c0.117,0.052,0.273,0.26,0.273,0.26s0,0.117-0.092,0.182c-0.09,0.065-0.182,0.13-0.233,0.053c-0.053-0.079-0.195-0.065-0.155,0.013c0.038,0.078,0.116,0.117,0.116,0.195c0,0.077,0.117,0.272,0.039,0.337c-0.078,0.065-0.168,0.014-0.233,0.026s-0.131-0.104-0.078-0.13c0.051-0.026-0.014-0.221-0.014-0.221s-0.155,0.221-0.143,0.104c0.014-0.117-0.064-0.13-0.064-0.221c0-0.091-0.079-0.13-0.194-0.104c-0.118,0.026-0.26-0.04-0.482-0.079c-0.22-0.039-0.311-0.064-0.493-0.156c-0.182-0.091-0.247-0.026-0.338-0.013c-0.091,0.013-0.052-0.182-0.169-0.207c-0.116-0.027-0.181,0.025-0.207-0.144c-0.026-0.168,0.039-0.208,0.324-0.39c0.286-0.182,0.247-0.26,0.468-0.286c0.22-0.026,0.325,0.026,0.325-0.039s0.052-0.325,0.052-0.195S16.95,9.109,16.832,9.2c-0.116,0.091-0.052,0.104,0.04,0.104c0.091,0,0.259-0.091,0.259-0.091s0.208-0.091,0.26-0.013c0.053,0.078,0.053,0.156,0.144,0.156s0.285-0.104,0.116-0.195c-0.168-0.091-0.272-0.078-0.376-0.182s-0.078-0.065-0.195-0.039c-0.116,0.026-0.116-0.039-0.156-0.039s-0.104,0.026-0.13-0.026c-0.025-0.052,0.014-0.065,0.145-0.065c0.129,0,0.285,0.039,0.285,0.039s0.155-0.052,0.194-0.065c0.039-0.013,0.247-0.039,0.208-0.155c-0.04-0.117-0.169-0.117-0.208-0.156s0.078-0.09,0.143-0.117c0.065-0.026,0.247,0,0.247,0s0.117,0.013,0.117-0.039S17.897,8.2,17.976,8.239s0,0.156,0.117,0.13c0.116-0.026,0.143,0,0.207,0.039c0.065,0.039-0.013,0.195-0.077,0.221c-0.065,0.025-0.169,0.077-0.026,0.09c0.144,0.014,0.246,0.014,0.246,0.014s0.092-0.091,0.131-0.169c0.038-0.078,0.104-0.026,0.155,0c0.052,0.025,0.247,0.065,0.065,0.117c-0.183,0.052-0.221,0.117-0.26,0.182c-0.038,0.065-0.053,0.104-0.221,0.065c-0.17-0.039-0.26-0.026-0.299,0.039c-0.039,0.064-0.013,0.273,0.053,0.247c0.063-0.026,0.129-0.026,0.207-0.052c0.078-0.026,0.39,0.026,0.467,0.013c0.078-0.013,0.209,0.13,0.248,0.104c0.039-0.026,0.117,0.052,0.194,0.104c0.078,0.052,0.052-0.117,0.194-0.013c0.144,0.104,0.065,0.104,0.144,0.104c0.076,0,0.246,0.013,0.246,0.013s0.014-0.129,0.144-0.104c0.13,0.026,0.245,0.169,0.232,0.064c-0.012-0.103,0.013-0.181-0.09-0.259c-0.104-0.078-0.272-0.13-0.299-0.169c-0.026-0.039-0.052-0.091-0.013-0.117c0.039-0.025,0.221,0.013,0.324,0.079c0.104,0.065,0.195,0.13,0.273,0.078c0.077-0.052,0.17-0.078,0.208-0.117c0.038-0.04,0.13-0.156,0.13-0.156s-0.391-0.051-0.441-0.117c-0.053-0.065-0.235-0.156-0.287-0.156s-0.194,0.091-0.246-0.039s-0.052-0.286-0.105-0.299c-0.05-0.013-0.597-0.091-0.674-0.13c-0.078-0.039-0.39-0.13-0.507-0.195s-0.286-0.156-0.389-0.156c-0.104,0-0.533,0.052-0.611,0.039c-0.078-0.013-0.312,0.026-0.403,0.039c-0.091,0.013,0.117,0.182-0.077,0.221c-0.195,0.039-0.169,0.065-0.13-0.13c0.038-0.195-0.131-0.247-0.299-0.169c-0.169,0.078-0.442,0.13-0.377,0.221c0.065,0.091-0.012,0.157,0.117,0.247c0.13,0.091,0.183,0.117,0.35,0.104c0.17-0.013,0.339,0.025,0.339,0.025s0,0.157-0.064,0.182c-0.065,0.026-0.169,0.026-0.196,0.104c-0.025,0.078-0.155,0.117-0.155,0.078s0.065-0.169-0.026-0.234c-0.09-0.065-0.117-0.078-0.221-0.013c-0.104,0.065-0.116,0.091-0.169-0.013C16.053,8.291,15.897,8.2,15.897,8.2s-0.104-0.129-0.182-0.194c-0.077-0.065-0.22-0.052-0.234,0.013c-0.013,0.064,0.026,0.129,0.078,0.247c0.052,0.117,0.104,0.337,0.013,0.351c-0.091,0.013-0.104,0.026-0.195,0.052c-0.091,0.026-0.13-0.039-0.13-0.143s-0.04-0.195-0.013-0.234c0.026-0.039-0.104,0.027-0.234,0c-0.13-0.025-0.233,0.052-0.104,0.092c0.13,0.039,0.157,0.194,0.039,0.233c-0.117,0.039-0.559,0-0.702,0s-0.35,0.039-0.39-0.039c-0.039-0.078,0.118-0.129,0.208-0.129c0.091,0,0.363,0.012,0.467-0.13c0.104-0.143-0.13-0.169-0.233-0.169c-0.104,0-0.183-0.039-0.299-0.155c-0.118-0.117,0.078-0.195,0.052-0.247c-0.026-0.052-0.156-0.014-0.272-0.014c-0.117,0-0.299-0.09-0.299,0.014c0,0.104,0.143,0.402,0.052,0.337c-0.091-0.064-0.078-0.156-0.143-0.234c-0.065-0.078-0.168-0.065-0.299-0.052c-0.129,0.013-0.35,0.052-0.415,0.039c-0.064-0.013-0.013-0.013-0.156-0.078c-0.142-0.065-0.208-0.052-0.312-0.117C12.091,7.576,12.182,7.551,12,7.538c-0.181-0.013-0.168,0.09-0.35,0.065c-0.182-0.026-0.234,0.013-0.416,0c-0.182-0.013-0.272-0.026-0.299,0.065c-0.025,0.091-0.078,0.247-0.156,0.247c-0.077,0-0.169,0.091,0.078,0.104c0.247,0.013,0.105,0.129,0.325,0.117c0.221-0.013,0.416-0.013,0.468-0.117c0.052-0.104,0.091-0.104,0.117-0.065c0.025,0.039,0.22,0.272,0.22,0.272s0.131,0.104,0.183,0.13c0.051,0.026-0.052,0.143-0.156,0.078c-0.104-0.065-0.299-0.051-0.377-0.116c-0.078-0.065-0.429-0.065-0.52-0.052c-0.09,0.013-0.247-0.039-0.299-0.039c-0.051,0-0.221,0.13-0.221,0.13S10.532,8.252,10.494,8.2c-0.039-0.052-0.104,0.052-0.156,0.065c-0.052,0.013-0.208-0.104-0.364-0.052C9.818,8.265,9.87,8.317,9.649,8.304s-0.272-0.052-0.35-0.039C9.22,8.278,9.22,8.278,9.22,8.278S9.233,8.33,9.143,8.382C9.052,8.434,8.986,8.499,8.921,8.421C8.857,8.343,8.818,8.343,8.779,8.33c-0.04-0.013-0.118-0.078-0.286-0.04C8.324,8.33,8.064,8.239,8.013,8.239c-0.04,0-0.313-0.015-0.491-0.033c2.109-2.292,5.124-3.74,8.478-3.74c2.128,0,4.117,0.589,5.83,1.598c-0.117,0.072-0.319,0.06-0.388,0.023c-0.078-0.043-0.158-0.078-0.475-0.061c-0.317,0.018-0.665,0.122-0.595,0.226c0.072,0.104-0.142,0.165-0.197,0.113c-0.055-0.052-0.309,0.06-0.293,0.165c0.016,0.104-0.039,0.225-0.175,0.199c-0.134-0.027-0.229,0.06-0.237,0.146c-0.007,0.087-0.309,0.147-0.332,0.147c-0.024,0-0.412-0.008-0.27,0.095c0.097,0.069,0.15,0.027,0.27,0.052c0.119,0.026,0.214,0.217,0.277,0.243c0.062,0.026,0.15,0,0.189-0.052c0.04-0.052,0.095-0.234,0.095-0.234s0,0.173,0.097,0.208c0.095,0.035,0.331-0.026,0.395-0.017c0.064,0.008,0.437,0.061,0.538,0.112c0.104,0.052,0.356,0.087,0.428,0.199c0.071,0.113,0.08,0.503,0.119,0.546c0.04,0.043,0.174-0.139,0.205-0.182c0.031-0.044,0.198-0.018,0.254,0.042c0.056,0.061,0.182,0.208,0.175,0.269C21.9,8.365,21.877,8.459,21.83,8.425c-0.048-0.034-0.127-0.025-0.096-0.095c0.032-0.069,0.048-0.217-0.015-0.217c-0.064,0-0.119,0-0.119,0s-0.12-0.035-0.199,0.095s-0.015,0.26,0.04,0.26s0.184,0,0.184,0.034c0,0.035-0.136,0.139-0.128,0.2c0.009,0.061,0.11,0.268,0.144,0.312c0.031,0.043,0.197,0.086,0.244,0.096c0.049,0.008-0.111,0.017-0.07,0.077c0.04,0.061,0.102,0.208,0.189,0.243c0.087,0.035,0.333,0.19,0.363,0.26c0.032,0.069,0.222-0.052,0.262-0.061c0.04-0.008,0.032,0.182,0.143,0.191c0.11,0.008,0.15-0.018,0.245-0.096s0.072-0.182,0.079-0.26c0.009-0.078,0-0.138,0.104-0.113c0.104,0.026,0.158-0.018,0.15-0.104c-0.008-0.087-0.095-0.191,0.07-0.217c0.167-0.026,0.254-0.138,0.357-0.138c0.103,0,0.389,0.043,0.419,0c0.032-0.043,0.167-0.243,0.254-0.251c0.067-0.007,0.224-0.021,0.385-0.042c1.582,1.885,2.561,4.284,2.673,6.905c-0.118,0.159-0.012,0.305,0.021,0.408c0.001,0.03,0.005,0.058,0.005,0.088c0,0.136-0.016,0.269-0.021,0.404C27.512,16.406,27.512,16.408,27.51,16.41zM17.794,12.084c-0.064,0.013-0.169-0.052-0.169-0.143s-0.091,0.169-0.04,0.247c0.053,0.078-0.104,0.169-0.155,0.169s-0.091-0.116-0.078-0.233c0.014-0.117-0.077-0.221-0.221-0.208c-0.143,0.014-0.208,0.13-0.259,0.169c-0.053,0.039-0.053,0.259-0.04,0.312s0.013,0.235-0.116,0.221c-0.118-0.013-0.092-0.233-0.079-0.312c0.014-0.078-0.039-0.273,0.014-0.376c0.053-0.104,0.207-0.143,0.312-0.156s0.324,0.065,0.363,0.052c0.04-0.014,0.222-0.014,0.312,0C17.729,11.837,17.858,12.071,17.794,12.084zM18.027,12.123c0.04,0.026,0.311-0.039,0.364,0.026c0.051,0.065-0.054,0.078-0.183,0.13c-0.129,0.052-0.169,0.039-0.221,0.104s-0.221,0.09-0.299,0.168c-0.078,0.079-0.217,0.125-0.246,0.065c-0.04-0.078,0.013-0.039,0.025-0.078c0.013-0.039,0.245-0.129,0.245-0.129S17.988,12.097,18.027,12.123zM16.988,11.668c-0.038,0.013-0.182-0.026-0.3-0.026c-0.116,0-0.091-0.078-0.143-0.064c-0.051,0.013-0.168,0.039-0.247,0.078c-0.078,0.039-0.208,0.03-0.208-0.04c0-0.104,0.052-0.078,0.221-0.143c0.169-0.065,0.352-0.247,0.429-0.169c0.078,0.078,0.221,0.169,0.312,0.182C17.144,11.5,17.026,11.655,16.988,11.668zM15.659,7.637c-0.079,0.026-0.347,0.139-0.321,0.199c0.01,0.023,0.078,0.069,0.19,0.052c0.113-0.018,0.276-0.035,0.355-0.043c0.078-0.009,0.095-0.139,0.009-0.147C15.805,7.689,15.736,7.611,15.659,7.637zM14.698,7.741c-0.061,0.026-0.243-0.043-0.338,0.018c-0.061,0.038-0.026,0.164,0.07,0.172c0.095,0.009,0.259-0.06,0.276-0.008c0.018,0.052,0.078,0.286,0.234,0.208c0.156-0.078,0.147-0.147,0.19-0.156c0.043-0.009-0.008-0.199-0.078-0.243C14.983,7.689,14.758,7.715,14.698,7.741zM14.385,7.005c0.017,0.044-0.008,0.078,0.113,0.095c0.121,0.018,0.173,0.035,0.243,0.035c0.069,0,0.042-0.113-0.018-0.19c-0.061-0.078-0.043-0.069-0.199-0.113c-0.156-0.043-0.312-0.043-0.416-0.035c-0.104,0.009-0.217-0.017-0.243,0.104c-0.013,0.062,0.07,0.112,0.174,0.112S14.368,6.962,14.385,7.005zM14.611,7.481c0.043,0.095,0.043,0.051,0.165,0.061C14.896,7.551,14.991,7.421,15,7.378c0.009-0.044-0.061-0.13-0.225-0.113c-0.165,0.017-0.667-0.026-0.736,0.034c-0.066,0.058,0,0.233-0.026,0.251c-0.026,0.017,0.009,0.095,0.077,0.078c0.069-0.017,0.104-0.182,0.157-0.182C14.299,7.447,14.568,7.386,14.611,7.481zM12.982,7.126c0.052,0.043,0.183,0.008,0.173-0.035c-0.008-0.043,0.053-0.217-0.051-0.225C13,6.858,12.854,6.962,12.697,7.014c-0.101,0.033-0.078,0.13-0.009,0.13S12.931,7.083,12.982,7.126zM13.72,7.282c-0.087,0.043-0.114,0.069-0.191,0.052c-0.078-0.017-0.078-0.156-0.217-0.13c-0.138,0.026-0.164,0.104-0.207,0.139s-0.139,0.061-0.173,0.043c-0.034-0.017-0.234-0.129-0.234-0.129s-0.416-0.018-0.433-0.07c-0.017-0.052-0.086-0.138-0.277-0.121s-0.52,0.13-0.572,0.13c-0.052,0,0.062,0.104-0.009,0.104c-0.069,0-0.155-0.008-0.181,0.069c-0.018,0.053,0.078,0.052,0.189,0.052c0.112,0,0.295,0,0.347-0.026c0.052-0.026,0.312-0.087,0.303-0.009c-0.009,0.079,0.104,0.199,0.164,0.182c0.061-0.017,0.183-0.13,0.243-0.086c0.061,0.043,0.07,0.146,0.13,0.173c0.061,0.025,0.226,0.025,0.304,0c0.077-0.027,0.294-0.027,0.389-0.009c0.095,0.018,0.373,0.069,0.399,0.018c0.026-0.053,0.104-0.061,0.112-0.113s0.051-0.216,0.051-0.216S13.806,7.239,13.72,7.282zM18.105,16.239c-0.119,0.021-0.091,0.252,0.052,0.21C18.3,16.407,18.223,16.217,18.105,16.239zM19.235,15.929c-0.104-0.026-0.221,0-0.299,0.013c-0.078,0.013-0.299,0.208-0.299,0.208s0.143,0.026,0.233,0.026c0.092,0,0.144,0.051,0.221,0.09c0.078,0.04,0.221-0.052,0.272-0.052c0.053,0,0.118,0.156,0.131-0.013C19.508,16.032,19.339,15.955,19.235,15.929zM15.616,7.507c-0.043-0.104-0.259-0.139-0.304-0.035C15.274,7.563,15.659,7.611,15.616,7.507zM18.093,15.292c0.143-0.026,0.064-0.144-0.053-0.13C17.922,15.175,17.949,15.318,18.093,15.292zM19.82,16.095c-0.119,0.022-0.092,0.253,0.051,0.211C20.015,16.264,19.937,16.074,19.82,16.095zM18.247,15.708c-0.09,0.013-0.285-0.09-0.389-0.182c-0.104-0.091-0.299-0.091-0.377-0.091c-0.077,0-0.39,0.091-0.39,0.091c-0.013,0.13,0.117,0.091,0.273,0.091s0.429-0.026,0.479,0.039c0.053,0.064,0.286,0.168,0.352,0.221c0.064,0.052,0.272,0.065,0.285,0.013S18.338,15.695,18.247,15.708zM16.698,7.412c-0.13-0.009-0.295-0.009-0.399,0c-0.104,0.008-0.182-0.069-0.26-0.113c-0.077-0.043-0.251-0.182-0.354-0.199c-0.104-0.017-0.086-0.017-0.303-0.069c-0.11-0.027-0.294-0.061-0.294-0.086c0-0.026-0.052,0.121,0.043,0.165c0.095,0.043,0.251,0.121,0.363,0.164c0.114,0.043,0.329,0.052,0.399,0.139c0.069,0.086,0.303,0.156,0.303,0.156l0.277,0.026c0,0,0.191-0.043,0.39-0.026c0.199,0.017,0.493,0.043,0.659,0.035c0.163-0.008,0.189-0.061,0.208-0.095c0.016-0.035-0.304-0.104-0.383-0.095C17.271,7.42,16.827,7.42,16.698,7.412zM17.182,9.404c-0.034,0.039,0.157,0.095,0.191,0.043C17.407,9.396,17.271,9.309,17.182,9.404zM17.764,9.585c0.086-0.035,0.043-0.139-0.079-0.104C17.547,9.521,17.676,9.62,17.764,9.585z",
                "raph_warning": "M29.225,23.567l-3.778-6.542c-1.139-1.972-3.002-5.2-4.141-7.172l-3.778-6.542c-1.14-1.973-3.003-1.973-4.142,0L9.609,9.853c-1.139,1.972-3.003,5.201-4.142,7.172L1.69,23.567c-1.139,1.974-0.207,3.587,2.071,3.587h23.391C29.432,27.154,30.363,25.541,29.225,23.567zM16.536,24.58h-2.241v-2.151h2.241V24.58zM16.428,20.844h-2.023l-0.201-9.204h2.407L16.428,20.844z",
                "raph_arrowleftalt": "M16,30.534c8.027,0,14.534-6.507,14.534-14.534c0-8.027-6.507-14.534-14.534-14.534C7.973,1.466,1.466,7.973,1.466,16C1.466,24.027,7.973,30.534,16,30.534zM18.335,6.276l3.536,3.538l-6.187,6.187l6.187,6.187l-3.536,3.537l-9.723-9.724L18.335,6.276z",
                "raph_arrowalt": "M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM13.665,25.725l-3.536-3.539l6.187-6.187l-6.187-6.187l3.536-3.536l9.724,9.723L13.665,25.725z",
                "raph_code": "M8.982,7.107L0.322,15.77l8.661,8.662l3.15-3.15L6.621,15.77l5.511-5.511L8.982,7.107zM21.657,7.107l-3.148,3.151l5.511,5.511l-5.511,5.511l3.148,3.15l8.662-8.662L21.657,7.107z",
                "raph_arrowleft": "M21.871,9.814 15.684,16.001 21.871,22.188 18.335,25.725 8.612,16.001 18.335,6.276",
                "raph_arrow": "M10.129,22.186 16.316,15.999 10.129,9.812 13.665,6.276 23.389,15.999 13.665,25.725",
                "raph_pensil": "M25.31,2.872l-3.384-2.127c-0.854-0.536-1.979-0.278-2.517,0.576l-1.334,2.123l6.474,4.066l1.335-2.122C26.42,4.533,26.164,3.407,25.31,2.872zM6.555,21.786l6.474,4.066L23.581,9.054l-6.477-4.067L6.555,21.786zM5.566,26.952l-0.143,3.819l3.379-1.787l3.14-1.658l-6.246-3.925L5.566,26.952z",
                "raph_pen": "M13.587,12.074c-0.049-0.074-0.11-0.147-0.188-0.202c-0.333-0.243-0.803-0.169-1.047,0.166c-0.244,0.336-0.167,0.805,0.167,1.048c0.303,0.22,0.708,0.167,0.966-0.091l-7.086,9.768l-2.203,7.997l6.917-4.577L26.865,4.468l-4.716-3.42l-1.52,2.096c-0.087-0.349-0.281-0.676-0.596-0.907c-0.73-0.529-1.751-0.369-2.28,0.363C14.721,6.782,16.402,7.896,13.587,12.074zM10.118,25.148L6.56,27.503l1.133-4.117L10.118,25.148zM14.309,11.861c2.183-3.225,1.975-4.099,3.843-6.962c0.309,0.212,0.664,0.287,1.012,0.269L14.309,11.861z",
                "raph_minus": "M25.979,12.896,19.312,12.896,5.979,12.896,5.979,19.562,25.979,19.562",
                "raph_tshirt": "M20.1,4.039c-0.681,1.677-2.32,2.862-4.24,2.862c-1.921,0-3.56-1.185-4.24-2.862L1.238,8.442l2.921,6.884l3.208-1.361V28h17.099V14.015l3.093,1.312l2.922-6.884L20.1,4.039z",
                "raph_raphael": "M27.777,18.941c0.584-0.881,0.896-1.914,0.896-2.998c0-1.457-0.567-2.826-1.598-3.854l-6.91-6.911l-0.003,0.002c-0.985-0.988-2.35-1.6-3.851-1.6c-1.502,0-2.864,0.612-3.85,1.6H12.46l-6.911,6.911c-1.031,1.029-1.598,2.398-1.598,3.854c0,1.457,0.567,2.826,1.598,3.854l6.231,6.229c0.25,0.281,0.512,0.544,0.789,0.785c1.016,0.961,2.338,1.49,3.743,1.49c1.456,0,2.825-0.565,3.854-1.598l6.723-6.725c0.021-0.019,0.034-0.032,0.051-0.051l0.14-0.138c0.26-0.26,0.487-0.54,0.688-0.838c0.004-0.008,0.01-0.015,0.014-0.021L27.777,18.941zM26.658,15.946c0,0.678-0.197,1.326-0.561,1.879c-0.222,0.298-0.447,0.559-0.684,0.784L25.4,18.625c-1.105,1.052-2.354,1.35-3.414,1.35c-0.584,0-1.109-0.09-1.523-0.195c-2.422-0.608-5.056-2.692-6.261-5.732c0.649,0.274,1.362,0.426,2.11,0.426c2.811,0,5.129-2.141,5.415-4.877l3.924,3.925C26.301,14.167,26.658,15.029,26.658,15.946zM16.312,5.6c1.89,0,3.426,1.538,3.426,3.427c0,1.89-1.536,3.427-3.426,3.427c-1.889,0-3.426-1.537-3.426-3.427C12.886,7.138,14.423,5.6,16.312,5.6zM6.974,18.375c-0.649-0.648-1.007-1.512-1.007-2.429c0-0.917,0.357-1.78,1.007-2.428l2.655-2.656c-0.693,2.359-0.991,4.842-0.831,7.221c0.057,0.854,0.175,1.677,0.345,2.46L6.974,18.375zM11.514,11.592c0.583,4.562,4.195,9.066,8.455,10.143c0.693,0.179,1.375,0.265,2.033,0.265c0.01,0,0.02,0,0.027,0l-3.289,3.289c-0.648,0.646-1.512,1.006-2.428,1.006c-0.638,0-1.248-0.177-1.779-0.5l0.001-0.002c-0.209-0.142-0.408-0.295-0.603-0.461c-0.015-0.019-0.031-0.026-0.046-0.043l-0.665-0.664c-1.367-1.567-2.227-3.903-2.412-6.671C10.669,15.856,10.921,13.673,11.514,11.592",
                "raph_graphael": "M28.832,16.104c0-1.477-0.574-2.863-1.617-3.905l-7.002-7.001L20.211,5.2c-1.027-1.03-2.445-1.62-3.9-1.62c-1.455,0-2.871,0.59-3.9,1.621l-0.002-0.002l-7,7c-1.033,1.031-1.619,2.445-1.619,3.905c0,1.458,0.586,2.872,1.619,3.903l6.312,6.312c0.253,0.284,0.519,0.55,0.8,0.794c1.049,0.994,2.463,1.54,3.908,1.51c1.417-0.028,2.783-0.612,3.785-1.615l6.811-6.811c0.018-0.017,0.035-0.034,0.053-0.052l0.137-0.138c0.27-0.268,0.49-0.564,0.713-0.868l-0.002-0.002C28.516,18.244,28.832,17.198,28.832,16.104zM23.08,21.252l-0.051,0.006l-0.955,0.974c0.01,0-3.305,3.332-3.305,3.332c-1.121,1.119-2.906,1.337-4.261,0.511l0.002-0.002c-0.213-0.141-0.414-0.299-0.61-0.467c-0.016-0.015-0.032-0.027-0.047-0.042l-3.024-3.024h-0.001l-3.976-3.976c-1.34-1.339-1.342-3.581,0-4.921l2.689-2.689l0.052-0.005l0.956-0.973c-0.01,0,3.303-3.332,3.303-3.332c1.121-1.12,2.908-1.337,4.261-0.511v0.002c0.211,0.14,0.414,0.299,0.609,0.467c0.016,0.015,0.031,0.028,0.047,0.042l3.025,3.024l0,0l3.975,3.976c0.389,0.388,0.66,0.852,0.824,1.348l-2.617,0.008c-0.537-3.754-3.764-6.64-7.666-6.64c-4.277,0-7.744,3.467-7.745,7.746c0.001,4.277,3.468,7.743,7.745,7.744c3.919-0.001,7.156-2.911,7.671-6.688l2.635-0.009c-0.16,0.52-0.441,1.007-0.846,1.412L23.08,21.252zM16.311,17.184c0.002,0,0.002,0,0.004,0l5.476-0.018c-0.5,2.573-2.76,4.516-5.48,4.52c-3.084-0.005-5.578-2.5-5.584-5.582c0.006-3.084,2.5-5.579,5.584-5.584c2.707,0.005,4.96,1.929,5.472,4.485l-5.476,0.018c-0.596,0.002-1.078,0.488-1.076,1.084C15.233,16.702,15.715,17.184,16.311,17.184z",
                "raph_page": "M23.024,5.673c-1.744-1.694-3.625-3.051-5.168-3.236c-0.084-0.012-0.171-0.019-0.263-0.021H7.438c-0.162,0-0.322,0.063-0.436,0.18C6.889,2.71,6.822,2.87,6.822,3.033v25.75c0,0.162,0.063,0.317,0.18,0.435c0.117,0.116,0.271,0.179,0.436,0.179h18.364c0.162,0,0.317-0.062,0.434-0.179c0.117-0.117,0.182-0.272,0.182-0.435V11.648C26.382,9.659,24.824,7.49,23.024,5.673zM25.184,28.164H8.052V3.646h9.542v0.002c0.416-0.025,0.775,0.386,1.05,1.326c0.25,0.895,0.313,2.062,0.312,2.871c0.002,0.593-0.027,0.991-0.027,0.991l-0.049,0.652l0.656,0.007c0.003,0,1.516,0.018,3,0.355c1.426,0.308,2.541,0.922,2.645,1.617c0.004,0.062,0.005,0.124,0.004,0.182V28.164z",
                "raph_page2": "M23.024,5.673c-1.744-1.694-3.625-3.051-5.168-3.236c-0.084-0.012-0.171-0.019-0.263-0.021H7.438c-0.162,0-0.322,0.063-0.436,0.18C6.889,2.71,6.822,2.87,6.822,3.033v25.75c0,0.162,0.063,0.317,0.18,0.435c0.117,0.116,0.271,0.179,0.436,0.179h18.364c0.162,0,0.317-0.062,0.434-0.179c0.117-0.117,0.182-0.272,0.182-0.435V11.648C26.382,9.659,24.824,7.49,23.024,5.673zM22.157,6.545c0.805,0.786,1.529,1.676,2.069,2.534c-0.468-0.185-0.959-0.322-1.42-0.431c-1.015-0.228-2.008-0.32-2.625-0.357c0.003-0.133,0.004-0.283,0.004-0.446c0-0.869-0.055-2.108-0.356-3.2c-0.003-0.01-0.005-0.02-0.009-0.03C20.584,5.119,21.416,5.788,22.157,6.545zM25.184,28.164H8.052V3.646h9.542v0.002c0.416-0.025,0.775,0.386,1.05,1.326c0.25,0.895,0.313,2.062,0.312,2.871c0.002,0.593-0.027,0.991-0.027,0.991l-0.049,0.652l0.656,0.007c0.003,0,1.516,0.018,3,0.355c1.426,0.308,2.541,0.922,2.645,1.617c0.004,0.062,0.005,0.124,0.004,0.182V28.164z",
                "raph_plugin": "M26.33,15.836l-3.893-1.545l3.136-7.9c0.28-0.705-0.064-1.505-0.771-1.785c-0.707-0.28-1.506,0.065-1.785,0.771l-3.136,7.9l-4.88-1.937l3.135-7.9c0.281-0.706-0.064-1.506-0.77-1.786c-0.706-0.279-1.506,0.065-1.785,0.771l-3.136,7.9L8.554,8.781l-1.614,4.066l2.15,0.854l-2.537,6.391c-0.61,1.54,0.143,3.283,1.683,3.895l1.626,0.646L8.985,26.84c-0.407,1.025,0.095,2.188,1.122,2.596l0.93,0.369c1.026,0.408,2.188-0.095,2.596-1.121l0.877-2.207l1.858,0.737c1.54,0.611,3.284-0.142,3.896-1.682l2.535-6.391l1.918,0.761L26.33,15.836z",
                "raph_svg": "M31.274,15.989c0-2.473-2.005-4.478-4.478-4.478l0,0c0.81-0.811,1.312-1.93,1.312-3.167c0-2.474-2.005-4.479-4.479-4.479c-1.236,0-2.356,0.501-3.167,1.312c0-2.473-2.005-4.478-4.478-4.478c-2.474,0-4.479,2.005-4.479,4.478c-0.811-0.81-1.93-1.312-3.167-1.312c-2.474,0-4.479,2.005-4.479,4.479c0,1.236,0.501,2.356,1.312,3.166c-2.474,0-4.479,2.005-4.479,4.479c0,2.474,2.005,4.479,4.479,4.479c-0.811,0.81-1.312,1.93-1.312,3.167c0,2.473,2.005,4.478,4.479,4.478c1.236,0,2.356-0.501,3.167-1.312c0,2.473,2.005,4.479,4.479,4.479c2.473,0,4.478-2.006,4.478-4.479l0,0c0.811,0.811,1.931,1.312,3.167,1.312c2.474,0,4.478-2.005,4.478-4.478c0-1.237-0.501-2.357-1.312-3.168c0.001,0,0.001,0,0.001,0C29.27,20.467,31.274,18.463,31.274,15.989zM23.583,21.211c0.016,0,0.031-0.001,0.047-0.001c1.339,0,2.424,1.085,2.424,2.425c0,1.338-1.085,2.424-2.424,2.424s-2.424-1.086-2.424-2.424c0-0.017,0.001-0.031,0.001-0.047l-3.541-3.542v5.009c0.457,0.44,0.743,1.06,0.743,1.746c0,1.339-1.086,2.424-2.424,2.424c-1.339,0-2.425-1.085-2.425-2.424c0-0.687,0.286-1.306,0.743-1.746v-5.009l-3.541,3.542c0,0.016,0.001,0.031,0.001,0.047c0,1.338-1.085,2.424-2.424,2.424s-2.424-1.086-2.424-2.424c0-1.34,1.085-2.425,2.424-2.425c0.015,0,0.031,0.001,0.046,0.001l3.542-3.541H6.919c-0.44,0.458-1.06,0.743-1.746,0.743c-1.339,0-2.424-1.085-2.424-2.424s1.085-2.424,2.424-2.424c0.686,0,1.305,0.285,1.746,0.744h5.008l-3.542-3.542c-0.015,0-0.031,0.001-0.046,0.001c-1.339,0-2.424-1.085-2.424-2.424S7.001,5.92,8.34,5.92s2.424,1.085,2.424,2.424c0,0.015-0.001,0.031-0.001,0.046l3.541,3.542V6.924c-0.457-0.441-0.743-1.06-0.743-1.746c0-1.339,1.086-2.425,2.425-2.425c1.338,0,2.424,1.085,2.424,2.425c0,0.686-0.286,1.305-0.743,1.746v5.008l3.541-3.542c0-0.015-0.001-0.031-0.001-0.046c0-1.339,1.085-2.424,2.424-2.424s2.424,1.085,2.424,2.424c0,1.339-1.085,2.424-2.424,2.424c-0.016,0-0.031-0.001-0.047-0.001l-3.541,3.542h5.008c0.441-0.458,1.061-0.744,1.747-0.744c1.338,0,2.423,1.085,2.423,2.424s-1.085,2.424-2.423,2.424c-0.687,0-1.306-0.285-1.747-0.743h-5.008L23.583,21.211z",
                "raph_bookmark": "M17.396,1.841L6.076,25.986l7.341-4.566l1.186,8.564l11.32-24.146L17.396,1.841zM19.131,9.234c-0.562-0.264-0.805-0.933-0.541-1.495c0.265-0.562,0.934-0.805,1.496-0.541s0.805,0.934,0.541,1.496S19.694,9.498,19.131,9.234z",
                "raph_hammer": "M7.831,29.354c0.685,0.353,1.62,1.178,2.344,0.876c0.475-0.195,0.753-1.301,1.048-1.883c2.221-4.376,4.635-9.353,6.392-13.611c0-0.19,0.101-0.337-0.049-0.595c0.983-1.6,1.65-3.358,2.724-5.138c0.34-0.566,0.686-1.351,1.163-1.577l0.881-0.368c1.12-0.288,1.938-0.278,2.719,0.473c0.396,0.383,0.578,1.015,0.961,1.395c0.259,0.26,1.246,0.899,1.613,0.8c0.285-0.077,0.52-0.364,0.72-0.728l0.696-1.286c0.195-0.366,0.306-0.718,0.215-0.999c-0.117-0.362-1.192-0.84-1.552-0.915c-0.528-0.113-1.154,0.081-1.692-0.041c-1.057-0.243-1.513-0.922-1.883-2.02c-2.608-1.533-6.119-2.53-10.207-1.244c-1.109,0.349-2.172,0.614-2.901,1.323c-0.146,0.412,0.143,0.494,0.446,0.489c-0.237,0.216-0.62,0.341-0.399,0.848c2.495-1.146,7.34-1.542,7.669,0.804c0.072,0.522-0.395,1.241-0.682,1.835c-0.905,1.874-2.011,3.394-2.813,5.091c-0.298,0.017-0.366,0.18-0.525,0.287c-2.604,3.8-5.451,8.541-7.9,12.794c-0.326,0.566-1.098,1.402-1.002,1.906C5.961,28.641,7.146,29,7.831,29.354z",
                "raph_users": "M21.053,20.8c-1.132-0.453-1.584-1.698-1.584-1.698s-0.51,0.282-0.51-0.51s0.51,0.51,1.02-2.548c0,0,1.414-0.397,1.132-3.68h-0.34c0,0,0.849-3.51,0-4.699c-0.85-1.189-1.189-1.981-3.058-2.548s-1.188-0.454-2.547-0.396c-1.359,0.057-2.492,0.792-2.492,1.188c0,0-0.849,0.057-1.188,0.397c-0.34,0.34-0.906,1.924-0.906,2.321s0.283,3.058,0.566,3.624l-0.337,0.113c-0.283,3.283,1.132,3.68,1.132,3.68c0.509,3.058,1.019,1.756,1.019,2.548s-0.51,0.51-0.51,0.51s-0.452,1.245-1.584,1.698c-1.132,0.452-7.416,2.886-7.927,3.396c-0.511,0.511-0.453,2.888-0.453,2.888h26.947c0,0,0.059-2.377-0.452-2.888C28.469,23.686,22.185,21.252,21.053,20.8zM8.583,20.628c-0.099-0.18-0.148-0.31-0.148-0.31s-0.432,0.239-0.432-0.432s0.432,0.432,0.864-2.159c0,0,1.199-0.336,0.959-3.119H9.538c0,0,0.143-0.591,0.237-1.334c-0.004-0.308,0.006-0.636,0.037-0.996l0.038-0.426c-0.021-0.492-0.107-0.939-0.312-1.226C8.818,9.619,8.53,8.947,6.947,8.467c-1.583-0.48-1.008-0.385-2.159-0.336C3.636,8.179,2.676,8.802,2.676,9.139c0,0-0.72,0.048-1.008,0.336c-0.271,0.271-0.705,1.462-0.757,1.885v0.281c0.047,0.653,0.258,2.449,0.469,2.872l-0.286,0.096c-0.239,2.783,0.959,3.119,0.959,3.119c0.432,2.591,0.864,1.488,0.864,2.159s-0.432,0.432-0.432,0.432s-0.383,1.057-1.343,1.439c-0.061,0.024-0.139,0.056-0.232,0.092v5.234h0.575c-0.029-1.278,0.077-2.927,0.746-3.594C2.587,23.135,3.754,22.551,8.583,20.628zM30.913,11.572c-0.04-0.378-0.127-0.715-0.292-0.946c-0.719-1.008-1.008-1.679-2.59-2.159c-1.584-0.48-1.008-0.385-2.16-0.336C24.72,8.179,23.76,8.802,23.76,9.139c0,0-0.719,0.048-1.008,0.336c-0.271,0.272-0.709,1.472-0.758,1.891h0.033l0.08,0.913c0.02,0.231,0.022,0.436,0.027,0.645c0.09,0.666,0.21,1.35,0.33,1.589l-0.286,0.096c-0.239,2.783,0.96,3.119,0.96,3.119c0.432,2.591,0.863,1.488,0.863,2.159s-0.432,0.432-0.432,0.432s-0.053,0.142-0.163,0.338c4.77,1.9,5.927,2.48,6.279,2.834c0.67,0.667,0.775,2.315,0.746,3.594h0.48v-5.306c-0.016-0.006-0.038-0.015-0.052-0.021c-0.959-0.383-1.343-1.439-1.343-1.439s-0.433,0.239-0.433-0.432s0.433,0.432,0.864-2.159c0,0,0.804-0.229,0.963-1.841v-1.227c-0.001-0.018-0.001-0.033-0.003-0.051h-0.289c0,0,0.215-0.89,0.292-1.861V11.572z",
                "raph_user": "M20.771,12.364c0,0,0.849-3.51,0-4.699c-0.85-1.189-1.189-1.981-3.058-2.548s-1.188-0.454-2.547-0.396c-1.359,0.057-2.492,0.792-2.492,1.188c0,0-0.849,0.057-1.188,0.397c-0.34,0.34-0.906,1.924-0.906,2.321s0.283,3.058,0.566,3.624l-0.337,0.113c-0.283,3.283,1.132,3.68,1.132,3.68c0.509,3.058,1.019,1.756,1.019,2.548s-0.51,0.51-0.51,0.51s-0.452,1.245-1.584,1.698c-1.132,0.452-7.416,2.886-7.927,3.396c-0.511,0.511-0.453,2.888-0.453,2.888h26.947c0,0,0.059-2.377-0.452-2.888c-0.512-0.511-6.796-2.944-7.928-3.396c-1.132-0.453-1.584-1.698-1.584-1.698s-0.51,0.282-0.51-0.51s0.51,0.51,1.02-2.548c0,0,1.414-0.397,1.132-3.68H20.771z",
                "raph_mail": "M28.516,7.167H3.482l12.517,7.108L28.516,7.167zM16.74,17.303C16.51,17.434,16.255,17.5,16,17.5s-0.51-0.066-0.741-0.197L2.5,10.06v14.773h27V10.06L16.74,17.303z",
                "raph_picture": "M2.5,4.833v22.334h27V4.833H2.5zM25.25,25.25H6.75V6.75h18.5V25.25zM11.25,14c1.426,0,2.583-1.157,2.583-2.583c0-1.427-1.157-2.583-2.583-2.583c-1.427,0-2.583,1.157-2.583,2.583C8.667,12.843,9.823,14,11.25,14zM24.251,16.25l-4.917-4.917l-6.917,6.917L10.5,16.333l-2.752,2.752v5.165h16.503V16.25z",
                "raph_bubble": "M16,5.333c-7.732,0-14,4.701-14,10.5c0,1.982,0.741,3.833,2.016,5.414L2,25.667l5.613-1.441c2.339,1.317,5.237,2.107,8.387,2.107c7.732,0,14-4.701,14-10.5C30,10.034,23.732,5.333,16,5.333z",
                "raph_codetalk": "M16,4.938c-7.732,0-14,4.701-14,10.5c0,1.981,0.741,3.833,2.016,5.414L2,25.272l5.613-1.44c2.339,1.316,5.237,2.106,8.387,2.106c7.732,0,14-4.701,14-10.5S23.732,4.938,16,4.938zM13.704,19.47l-2.338,2.336l-6.43-6.431l6.429-6.432l2.339,2.341l-4.091,4.091L13.704,19.47zM20.775,21.803l-2.337-2.339l4.092-4.09l-4.092-4.092l2.337-2.339l6.43,6.426L20.775,21.803z",
                "raph_talkq": "M16,4.938c-7.732,0-14,4.701-14,10.5c0,1.981,0.741,3.833,2.016,5.414L2,25.272l5.613-1.44c2.339,1.316,5.237,2.106,8.387,2.106c7.732,0,14-4.701,14-10.5S23.732,4.938,16,4.938zM16.868,21.375h-1.969v-1.889h1.969V21.375zM16.772,18.094h-1.777l-0.176-8.083h2.113L16.772,18.094z",
                "raph_talke": "M16,4.938c-7.732,0-14,4.701-14,10.5c0,1.981,0.741,3.833,2.016,5.414L2,25.272l5.613-1.44c2.339,1.316,5.237,2.106,8.387,2.106c7.732,0,14-4.701,14-10.5S23.732,4.938,16,4.938zM16.982,21.375h-1.969v-1.889h1.969V21.375zM16.982,17.469v0.625h-1.969v-0.769c0-2.321,2.641-2.689,2.641-4.337c0-0.752-0.672-1.329-1.553-1.329c-0.912,0-1.713,0.672-1.713,0.672l-1.12-1.393c0,0,1.104-1.153,3.009-1.153c1.81,0,3.49,1.121,3.49,3.009C19.768,15.437,16.982,15.741,16.982,17.469z",
                "raph_home": "M27.812,16l-3.062-3.062V5.625h-2.625v4.688L16,4.188L4.188,16L7,15.933v11.942h17.875V16H27.812zM16,26.167h-5.833v-7H16V26.167zM21.667,23.167h-3.833v-4.042h3.833V23.167z",
                "raph_linkedin": "M27.25,3.125h-22c-1.104,0-2,0.896-2,2v22c0,1.104,0.896,2,2,2h22c1.104,0,2-0.896,2-2v-22C29.25,4.021,28.354,3.125,27.25,3.125zM11.219,26.781h-4v-14h4V26.781zM9.219,11.281c-1.383,0-2.5-1.119-2.5-2.5s1.117-2.5,2.5-2.5s2.5,1.119,2.5,2.5S10.602,11.281,9.219,11.281zM25.219,26.781h-4v-8.5c0-0.4-0.403-1.055-0.687-1.213c-0.375-0.211-1.261-0.229-1.665-0.034l-1.648,0.793v8.954h-4v-14h4v0.614c1.583-0.723,3.78-0.652,5.27,0.184c1.582,0.886,2.73,2.864,2.73,4.702V26.781z",
                "raph_github": "M28.436,15.099c-1.201-0.202-2.451-0.335-3.466-0.371l-0.179-0.006c0.041-0.09,0.072-0.151,0.082-0.16c0.022-0.018,0.04-0.094,0.042-0.168c0-0.041,0.018-0.174,0.046-0.35c0.275,0.01,0.64,0.018,1.038,0.021c1.537,0.012,3.145,0.136,4.248,0.331c0.657,0.116,0.874,0.112,0.389-0.006c-0.491-0.119-1.947-0.294-3.107-0.37c-0.779-0.053-1.896-0.073-2.554-0.062c0.019-0.114,0.041-0.241,0.064-0.371c0.093-0.503,0.124-1.009,0.126-2.016c0.002-1.562-0.082-1.992-0.591-3.025c-0.207-0.422-0.441-0.78-0.724-1.104c0.247-0.729,0.241-1.858-0.015-2.848c-0.211-0.812-0.285-0.864-1.021-0.708C22.19,4.019,21.69,4.2,21.049,4.523c-0.303,0.153-0.721,0.391-1.024,0.578c-0.79-0.278-1.607-0.462-2.479-0.561c-0.884-0.1-3.051-0.044-3.82,0.098c-0.752,0.139-1.429,0.309-2.042,0.511c-0.306-0.189-0.75-0.444-1.067-0.604C9.973,4.221,9.473,4.041,8.847,3.908c-0.734-0.157-0.81-0.104-1.02,0.708c-0.26,1.003-0.262,2.151-0.005,2.878C7.852,7.577,7.87,7.636,7.877,7.682c-1.042,1.312-1.382,2.78-1.156,4.829c0.059,0.534,0.15,1.024,0.277,1.473c-0.665-0.004-1.611,0.02-2.294,0.064c-1.162,0.077-2.618,0.25-3.109,0.369c-0.484,0.118-0.269,0.122,0.389,0.007c1.103-0.194,2.712-0.32,4.248-0.331c0.29-0.001,0.561-0.007,0.794-0.013c0.07,0.237,0.15,0.463,0.241,0.678L7.26,14.759c-1.015,0.035-2.264,0.168-3.465,0.37c-0.901,0.151-2.231,0.453-2.386,0.54c-0.163,0.091-0.03,0.071,0.668-0.106c1.273-0.322,2.928-0.569,4.978-0.741l0.229-0.02c0.44,1.022,1.118,1.802,2.076,2.41c0.586,0.373,1.525,0.756,1.998,0.816c0.13,0.016,0.508,0.094,0.84,0.172c0.333,0.078,0.984,0.195,1.446,0.262h0.011c-0.009,0.006-0.017,0.01-0.025,0.016c-0.56,0.291-0.924,0.744-1.169,1.457c-0.11,0.033-0.247,0.078-0.395,0.129c-0.529,0.18-0.735,0.217-1.271,0.221c-0.556,0.004-0.688-0.02-1.02-0.176c-0.483-0.225-0.933-0.639-1.233-1.133c-0.501-0.826-1.367-1.41-2.089-1.41c-0.617,0-0.734,0.25-0.288,0.615c0.672,0.549,1.174,1.109,1.38,1.537c0.116,0.24,0.294,0.611,0.397,0.824c0.109,0.227,0.342,0.535,0.564,0.748c0.522,0.498,1.026,0.736,1.778,0.848c0.504,0.074,0.628,0.074,1.223-0.002c0.287-0.035,0.529-0.076,0.746-0.127c0,0.244,0,0.525,0,0.855c0,1.766-0.021,2.334-0.091,2.5c-0.132,0.316-0.428,0.641-0.716,0.787c-0.287,0.146-0.376,0.307-0.255,0.455c0.067,0.08,0.196,0.094,0.629,0.066c0.822-0.051,1.403-0.355,1.699-0.891c0.095-0.172,0.117-0.518,0.147-2.318c0.032-1.953,0.046-2.141,0.173-2.42c0.077-0.166,0.188-0.346,0.25-0.395c0.104-0.086,0.111,0.084,0.111,2.42c-0.001,2.578-0.027,2.889-0.285,3.385c-0.058,0.113-0.168,0.26-0.245,0.33c-0.135,0.123-0.192,0.438-0.098,0.533c0.155,0.154,0.932-0.088,1.356-0.422c0.722-0.572,0.808-1.045,0.814-4.461l0.003-2.004l0.219,0.021l0.219,0.02l0.036,2.621c0.041,2.951,0.047,2.994,0.549,3.564c0.285,0.322,0.572,0.5,1.039,0.639c0.625,0.188,0.813-0.102,0.393-0.605c-0.457-0.547-0.479-0.756-0.454-3.994c0.017-2.076,0.017-2.076,0.151-1.955c0.282,0.256,0.336,0.676,0.336,2.623c0,2.418,0.069,2.648,0.923,3.07c0.399,0.195,0.511,0.219,1.022,0.221c0.544,0.002,0.577-0.006,0.597-0.148c0.017-0.115-0.05-0.193-0.304-0.348c-0.333-0.205-0.564-0.467-0.709-0.797c-0.055-0.127-0.092-0.959-0.117-2.672c-0.036-2.393-0.044-2.502-0.193-2.877c-0.201-0.504-0.508-0.902-0.897-1.166c-0.101-0.066-0.202-0.121-0.333-0.162c0.161-0.016,0.317-0.033,0.468-0.055c1.572-0.209,2.403-0.383,3.07-0.641c1.411-0.543,2.365-1.445,2.882-2.724c0.046-0.114,0.092-0.222,0.131-0.309l0.398,0.033c2.051,0.173,3.706,0.42,4.979,0.743c0.698,0.177,0.831,0.198,0.668,0.105C30.666,15.551,29.336,15.25,28.436,15.099zM22.422,15.068c-0.233,0.512-0.883,1.17-1.408,1.428c-0.518,0.256-1.33,0.451-2.25,0.544c-0.629,0.064-4.137,0.083-4.716,0.026c-1.917-0.188-2.991-0.557-3.783-1.296c-0.75-0.702-1.1-1.655-1.039-2.828c0.039-0.734,0.216-1.195,0.679-1.755c0.421-0.51,0.864-0.825,1.386-0.985c0.437-0.134,1.778-0.146,3.581-0.03c0.797,0.051,1.456,0.051,2.252,0c1.886-0.119,3.145-0.106,3.61,0.038c0.731,0.226,1.397,0.834,1.797,1.644c0.18,0.362,0.215,0.516,0.241,1.075C22.808,13.699,22.675,14.517,22.422,15.068zM12.912,11.762c-1.073-0.188-1.686,1.649-0.863,2.587c0.391,0.445,0.738,0.518,1.172,0.248c0.402-0.251,0.62-0.72,0.62-1.328C13.841,12.458,13.472,11.862,12.912,11.762zM19.425,11.872c-1.073-0.188-1.687,1.647-0.864,2.586c0.392,0.445,0.738,0.519,1.173,0.247c0.401-0.25,0.62-0.72,0.62-1.328C20.354,12.569,19.985,11.971,19.425,11.872zM16.539,15.484c-0.023,0.074-0.135,0.184-0.248,0.243c-0.286,0.147-0.492,0.096-0.794-0.179c-0.187-0.169-0.272-0.258-0.329-0.081c-0.053,0.164,0.28,0.493,0.537,0.594c0.236,0.094,0.405,0.097,0.661-0.01c0.254-0.106,0.476-0.391,0.476-0.576C16.842,15.303,16.595,15.311,16.539,15.484zM16.222,14.909c0.163-0.144,0.2-0.44,0.044-0.597s-0.473-0.133-0.597,0.043c-0.144,0.206-0.067,0.363,0.036,0.53C15.865,15.009,16.08,15.034,16.222,14.909z",
                "raph_flickr": "M21.77,8.895c-2.379,0-4.479,1.174-5.77,2.969c-1.289-1.795-3.39-2.969-5.77-2.969c-3.924,0-7.105,3.181-7.105,7.105c0,3.924,3.181,7.105,7.105,7.105c2.379,0,4.48-1.175,5.77-2.97c1.29,1.795,3.391,2.97,5.77,2.97c3.925,0,7.105-3.182,7.105-7.105C28.875,12.075,25.694,8.895,21.77,8.895zM21.769,21.822c-3.211,0-5.821-2.61-5.821-5.821c0-3.213,2.61-5.824,5.821-5.824c3.213,0,5.824,2.611,5.824,5.824C27.593,19.212,24.981,21.822,21.769,21.822z",
                "raph_lock": "M22.335,12.833V9.999h-0.001C22.333,6.501,19.498,3.666,16,3.666S9.666,6.502,9.666,10h0v2.833H7.375V25h17.25V12.833H22.335zM11.667,10C11.667,10,11.667,10,11.667,10c0-2.39,1.944-4.334,4.333-4.334c2.391,0,4.335,1.944,4.335,4.333c0,0,0,0,0,0v2.834h-8.668V10z",
                "raph_clip": "M23.898,6.135c-1.571-1.125-3.758-0.764-4.884,0.808l-8.832,12.331c-0.804,1.122-0.546,2.684,0.577,3.488c1.123,0.803,2.684,0.545,3.488-0.578l6.236-8.706l-0.813-0.583l-6.235,8.707h0c-0.483,0.672-1.42,0.828-2.092,0.347c-0.673-0.481-0.827-1.419-0.345-2.093h0l8.831-12.33l0.001-0.001l-0.002-0.001c0.803-1.119,2.369-1.378,3.489-0.576c1.12,0.803,1.379,2.369,0.577,3.489v-0.001l-9.68,13.516l0.001,0.001c-1.124,1.569-3.316,1.931-4.885,0.808c-1.569-1.125-1.93-3.315-0.807-4.885l7.035-9.822l-0.813-0.582l-7.035,9.822c-1.447,2.02-0.982,4.83,1.039,6.277c2.021,1.448,4.831,0.982,6.278-1.037l9.68-13.516C25.83,9.447,25.47,7.261,23.898,6.135z",
                "raph_star": "M15.999,22.77l-8.884,6.454l3.396-10.44l-8.882-6.454l10.979,0.002l2.918-8.977l0.476-1.458l3.39,10.433h10.982l-8.886,6.454l3.397,10.443L15.999,22.77L15.999,22.77z",
                "raph_star2": "M30.373,12.329H19.391l-3.39-10.433l-0.476,1.458l-2.918,8.977L1.628,12.329l8.882,6.454l-3.396,10.44l8.884-6.454l8.886,6.457l-3.397-10.443L30.373,12.329z M17.175,21.151L16,20.298l-1.175,0.854l-3.902,2.834l1.49-4.584l0.45-1.382l-1.177-0.855l-3.9-2.834h6.275l0.45-1.381L16,8.366l1.489,4.581l0.449,1.381h6.281l-3.906,2.836l-1.178,0.854l0.449,1.384l1.493,4.584L17.175,21.151z",
                "raph_plus": "M25.979,12.896 19.312,12.896 19.312,6.229 12.647,6.229 12.647,12.896 5.979,12.896 5.979,19.562 12.647,19.562 12.647,26.229 19.312,26.229 19.312,19.562 25.979,19.562",
                "raph_chat": "M15.985,5.972c-7.563,0-13.695,4.077-13.695,9.106c0,2.877,2.013,5.44,5.147,7.108c-0.446,1.479-1.336,3.117-3.056,4.566c0,0,4.015-0.266,6.851-3.143c0.163,0.04,0.332,0.07,0.497,0.107c-0.155-0.462-0.246-0.943-0.246-1.443c0-3.393,3.776-6.05,8.599-6.05c3.464,0,6.379,1.376,7.751,3.406c1.168-1.34,1.847-2.892,1.847-4.552C29.68,10.049,23.548,5.972,15.985,5.972zM27.68,22.274c0-2.79-3.401-5.053-7.599-5.053c-4.196,0-7.599,2.263-7.599,5.053c0,2.791,3.403,5.053,7.599,5.053c0.929,0,1.814-0.116,2.637-0.319c1.573,1.597,3.801,1.744,3.801,1.744c-0.954-0.804-1.447-1.713-1.695-2.534C26.562,25.293,27.68,23.871,27.68,22.274z",
                "raph_quote": "M14.505,5.873c-3.937,2.52-5.904,5.556-5.904,9.108c0,1.104,0.192,1.656,0.576,1.656l0.396-0.107c0.312-0.12,0.563-0.18,0.756-0.18c1.128,0,2.07,0.411,2.826,1.229c0.756,0.82,1.134,1.832,1.134,3.037c0,1.157-0.408,2.14-1.224,2.947c-0.816,0.807-1.801,1.211-2.952,1.211c-1.608,0-2.935-0.661-3.979-1.984c-1.044-1.321-1.565-2.98-1.565-4.977c0-2.259,0.443-4.327,1.332-6.203c0.888-1.875,2.243-3.57,4.067-5.085c1.824-1.514,2.988-2.272,3.492-2.272c0.336,0,0.612,0.162,0.828,0.486c0.216,0.324,0.324,0.606,0.324,0.846L14.505,5.873zM27.465,5.873c-3.937,2.52-5.904,5.556-5.904,9.108c0,1.104,0.192,1.656,0.576,1.656l0.396-0.107c0.312-0.12,0.563-0.18,0.756-0.18c1.104,0,2.04,0.411,2.808,1.229c0.769,0.82,1.152,1.832,1.152,3.037c0,1.157-0.408,2.14-1.224,2.947c-0.816,0.807-1.801,1.211-2.952,1.211c-1.608,0-2.935-0.661-3.979-1.984c-1.044-1.321-1.565-2.98-1.565-4.977c0-2.284,0.449-4.369,1.35-6.256c0.9-1.887,2.256-3.577,4.068-5.067c1.812-1.49,2.97-2.236,3.474-2.236c0.336,0,0.612,0.162,0.828,0.486c0.216,0.324,0.324,0.606,0.324,0.846L27.465,5.873z",
                "raph_slideshare": "M28.952,12.795c-0.956,1.062-5.073,2.409-5.604,2.409h-4.513c-0.749,0-1.877,0.147-2.408,0.484c0.061,0.054,0.122,0.108,0.181,0.163c0.408,0.379,1.362,0.913,2.206,0.913c0.397,0,0.723-0.115,1-0.354c1.178-1.007,1.79-1.125,2.145-1.125c0.421,0,0.783,0.193,0.996,0.531c0.4,0.626,0.106,1.445-0.194,2.087c-0.718,1.524-3.058,3.171-5.595,3.171c-0.002,0-0.002,0-0.004,0c-0.354,0-0.701-0.033-1.033-0.099v3.251c0,0.742,1.033,2.533,4.167,2.533s3.955-3.701,3.955-4.338v-4.512c2.23-1.169,4.512-1.805,5.604-3.895C30.882,12.05,29.907,11.733,28.952,12.795zM21.942,17.521c0.796-1.699-0.053-1.699-1.54-0.425s-3.665,0.105-4.408-0.585c-0.743-0.689-1.486-1.22-2.814-1.167c-1.328,0.053-4.46-0.161-6.267-0.585c-1.805-0.425-4.895-3-5.15-2.335c-0.266,0.69,0.211,1.168,1.168,2.335c0.955,1.169,5.075,2.778,5.075,2.778s0,3.453,0,4.886c0,1.435,2.973,3.61,4.512,3.61s2.708-1.062,2.708-1.806v-4.512C17.775,21.045,21.146,19.221,21.942,17.521zM20.342,13.73c1.744,0,3.159-1.414,3.159-3.158c0-1.745-1.415-3.159-3.159-3.159s-3.158,1.414-3.158,3.159C17.184,12.316,18.598,13.73,20.342,13.73zM12.019,13.73c1.744,0,3.158-1.414,3.158-3.158c0-1.745-1.414-3.159-3.158-3.159c-1.745,0-3.159,1.414-3.159,3.159C8.86,12.316,10.273,13.73,12.019,13.73z"
            	}
            }
          • raphael_2.json
            {"size": 32,
            "fill": true,
            "data": {
                "raph_twitter": "M23.295,22.567h-7.213c-2.125,0-4.103-2.215-4.103-4.736v-1.829h11.232c1.817,0,3.291-1.469,3.291-3.281c0-1.813-1.474-3.282-3.291-3.282H11.979V6.198c0-1.835-1.375-3.323-3.192-3.323c-1.816,0-3.29,1.488-3.29,3.323v11.633c0,6.23,4.685,11.274,10.476,11.274h7.211c1.818,0,3.318-1.463,3.318-3.298S25.112,22.567,23.295,22.567z",
                "raph_gear2": "M17.047,27.945c-0.34,0.032-0.688,0.054-1.046,0.054l0,0c-0.32,0-0.631-0.017-0.934-0.043l0,0l-2.626,3.375l-0.646-0.183c-0.758-0.213-1.494-0.48-2.202-0.8l0,0L8.979,30.07l0.158-4.24c-0.558-0.39-1.079-0.825-1.561-1.302l0,0L3.424,25.42l-0.379-0.557c-0.445-0.654-0.824-1.339-1.16-2.032l0,0l-0.292-0.605l2.819-3.12c-0.176-0.661-0.293-1.343-0.353-2.038l0,0l-3.736-1.975l0.068-0.669c0.08-0.801,0.235-1.567,0.42-2.303l0,0l0.165-0.653l4.167-0.577c0.297-0.627,0.647-1.221,1.041-1.78l0,0l-1.59-3.914l0.48-0.47c0.564-0.55,1.168-1.048,1.798-1.503l0,0l0.546-0.394l3.597,2.259c0.606-0.279,1.24-0.509,1.897-0.685l0,0l1.304-4.046l0.672-0.051c0.362-0.027,0.751-0.058,1.174-0.058l0,0c0.422,0,0.81,0.031,1.172,0.058l0,0l0.672,0.051l1.318,4.088c0.632,0.176,1.244,0.401,1.831,0.674l0,0l3.647-2.291l0.548,0.394c0.63,0.455,1.235,0.954,1.798,1.501l0,0l0.482,0.47l-1.639,4.031c0.357,0.519,0.679,1.068,0.954,1.646l0,0l4.297,0.595l0.167,0.653c0.188,0.735,0.342,1.501,0.42,2.303l0,0l0.068,0.669l-3.866,2.044c-0.058,0.634-0.161,1.258-0.315,1.866l0,0l2.913,3.218l-0.293,0.608c-0.335,0.695-0.712,1.382-1.159,2.034l0,0l-0.379,0.555l-4.255-0.912c-0.451,0.451-0.939,0.866-1.461,1.241l0,0l0.162,4.323l-0.615,0.278c-0.709,0.319-1.444,0.587-2.202,0.8l0,0l-0.648,0.183L17.047,27.945L17.047,27.945zM20.424,29.028c0.227-0.076,0.45-0.157,0.671-0.244l0,0l-0.152-4.083l0.479-0.307c0.717-0.466,1.37-1.024,1.95-1.658l0,0l0.386-0.423l4.026,0.862c0.121-0.202,0.238-0.409,0.351-0.62l0,0l-2.754-3.045l0.171-0.544c0.243-0.783,0.381-1.623,0.422-2.5l0,0l0.025-0.571l3.658-1.933c-0.038-0.234-0.082-0.467-0.132-0.7l0,0l-4.07-0.563l-0.219-0.527c-0.327-0.787-0.76-1.524-1.277-2.204l0,0l-0.342-0.453l1.548-3.808c-0.179-0.157-0.363-0.31-0.552-0.458l0,0l-3.455,2.169L20.649,7.15c-0.754-0.397-1.569-0.698-2.429-0.894l0,0l-0.556-0.127l-1.248-3.87c-0.121-0.006-0.239-0.009-0.354-0.009l0,0c-0.117,0-0.235,0.003-0.357,0.009l0,0l-1.239,3.845l-0.564,0.12c-0.875,0.188-1.709,0.494-2.486,0.896l0,0l-0.508,0.264L7.509,5.249c-0.188,0.148-0.372,0.301-0.55,0.458l0,0l1.507,3.708L8.112,9.869c-0.552,0.709-1.011,1.485-1.355,2.319l0,0l-0.218,0.529l-3.939,0.545c-0.05,0.233-0.094,0.466-0.131,0.7l0,0l3.531,1.867l0.022,0.575c0.037,0.929,0.192,1.82,0.459,2.653l0,0l0.175,0.548l-2.667,2.95c0.112,0.212,0.229,0.419,0.351,0.621l0,0l3.916-0.843l0.39,0.423c0.601,0.657,1.287,1.229,2.043,1.703l0,0l0.488,0.305l-0.149,4.02c0.221,0.087,0.445,0.168,0.672,0.244l0,0l2.479-3.188l0.566,0.07c0.427,0.054,0.843,0.089,1.257,0.089l0,0c0.445,0,0.894-0.039,1.353-0.104l0,0l0.571-0.08L20.424,29.028L20.424,29.028zM21.554,20.75l0.546,0.839l-3.463,2.253l-1.229-1.891l0,0c-0.447,0.109-0.917,0.173-1.406,0.173l0,0c-3.384,0-6.126-2.743-6.126-6.123l0,0c0-3.384,2.742-6.126,6.126-6.126l0,0c3.38,0,6.123,2.742,6.123,6.126l0,0c0,1.389-0.467,2.676-1.25,3.704l0,0L21.554,20.75M19.224,21.073l0.108-0.069l-0.987-1.519l0.572-0.572c0.748-0.75,1.207-1.773,1.207-2.912l0,0c-0.004-2.278-1.848-4.122-4.123-4.126l0,0c-2.28,0.004-4.122,1.846-4.126,4.126l0,0c0.004,2.275,1.848,4.119,4.126,4.123l0,0c0.509,0,0.999-0.104,1.473-0.286l0,0l0.756-0.29L19.224,21.073L19.224,21.073z",
                "raph_gear": "M26.974,16.514l3.765-1.991c-0.074-0.738-0.217-1.454-0.396-2.157l-4.182-0.579c-0.362-0.872-0.84-1.681-1.402-2.423l1.594-3.921c-0.524-0.511-1.09-0.977-1.686-1.406l-3.551,2.229c-0.833-0.438-1.73-0.77-2.672-0.984l-1.283-3.976c-0.364-0.027-0.728-0.056-1.099-0.056s-0.734,0.028-1.099,0.056l-1.271,3.941c-0.967,0.207-1.884,0.543-2.738,0.986L7.458,4.037C6.863,4.466,6.297,4.932,5.773,5.443l1.55,3.812c-0.604,0.775-1.11,1.629-1.49,2.55l-4.05,0.56c-0.178,0.703-0.322,1.418-0.395,2.157l3.635,1.923c0.041,1.013,0.209,1.994,0.506,2.918l-2.742,3.032c0.319,0.661,0.674,1.303,1.085,1.905l4.037-0.867c0.662,0.72,1.416,1.351,2.248,1.873l-0.153,4.131c0.663,0.299,1.352,0.549,2.062,0.749l2.554-3.283C15.073,26.961,15.532,27,16,27c0.507,0,1.003-0.046,1.491-0.113l2.567,3.301c0.711-0.2,1.399-0.45,2.062-0.749l-0.156-4.205c0.793-0.513,1.512-1.127,2.146-1.821l4.142,0.889c0.411-0.602,0.766-1.243,1.085-1.905l-2.831-3.131C26.778,18.391,26.93,17.467,26.974,16.514zM20.717,21.297l-1.785,1.162l-1.098-1.687c-0.571,0.22-1.186,0.353-1.834,0.353c-2.831,0-5.125-2.295-5.125-5.125c0-2.831,2.294-5.125,5.125-5.125c2.83,0,5.125,2.294,5.125,5.125c0,1.414-0.573,2.693-1.499,3.621L20.717,21.297z",
                "raph_wrench": "M26.834,14.693c1.816-2.088,2.181-4.938,1.193-7.334l-3.646,4.252l-3.594-0.699L19.596,7.45l3.637-4.242c-2.502-0.63-5.258,0.13-7.066,2.21c-1.907,2.193-2.219,5.229-1.039,7.693L5.624,24.04c-1.011,1.162-0.888,2.924,0.274,3.935c1.162,1.01,2.924,0.888,3.935-0.274l9.493-10.918C21.939,17.625,24.918,16.896,26.834,14.693z",
                "raph_magic": "M23.043,4.649l-0.404-2.312l-1.59,1.727l-2.323-0.33l1.151,2.045l-1.032,2.108l2.302-0.463l1.686,1.633l0.271-2.332l2.074-1.099L23.043,4.649zM26.217,18.198l-0.182-1.25l-0.882,0.905l-1.245-0.214l0.588,1.118l-0.588,1.118l1.245-0.214l0.882,0.905l0.182-1.25l1.133-0.56L26.217,18.198zM4.92,7.672L5.868,7.3l0.844,0.569L6.65,6.853l0.802-0.627L6.467,5.97L6.118,5.013L5.571,5.872L4.553,5.908l0.647,0.786L4.92,7.672zM10.439,10.505l1.021-1.096l1.481,0.219l-0.727-1.31l0.667-1.341l-1.47,0.287l-1.069-1.048L10.16,7.703L8.832,8.396l1.358,0.632L10.439,10.505zM17.234,12.721c-0.588-0.368-1.172-0.618-1.692-0.729c-0.492-0.089-1.039-0.149-1.425,0.374L2.562,30.788h6.68l9.669-15.416c0.303-0.576,0.012-1.041-0.283-1.447C18.303,13.508,17.822,13.09,17.234,12.721zM13.613,21.936c-0.254-0.396-0.74-0.857-1.373-1.254c-0.632-0.396-1.258-0.634-1.726-0.69l4.421-7.052c0.064-0.013,0.262-0.021,0.543,0.066c0.346,0.092,0.785,0.285,1.225,0.562c0.504,0.313,0.908,0.677,1.133,0.97c0.113,0.145,0.178,0.271,0.195,0.335c0.002,0.006,0.004,0.011,0.004,0.015L13.613,21.936z",
                "raph_download": "M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM16,28.792c-1.549,0-2.806-1.256-2.806-2.806s1.256-2.806,2.806-2.806c1.55,0,2.806,1.256,2.806,2.806S17.55,28.792,16,28.792zM16,21.087l-7.858-6.562h3.469V5.747h8.779v8.778h3.468L16,21.087z",
                "raph_firefox": "M28.4,22.469c0.479-0.964,0.851-1.991,1.095-3.066c0.953-3.661,0.666-6.854,0.666-6.854l-0.327,2.104c0,0-0.469-3.896-1.044-5.353c-0.881-2.231-1.273-2.214-1.274-2.21c0.542,1.379,0.494,2.169,0.483,2.288c-0.01-0.016-0.019-0.032-0.027-0.047c-0.131-0.324-0.797-1.819-2.225-2.878c-2.502-2.481-5.943-4.014-9.745-4.015c-4.056,0-7.705,1.745-10.238,4.525C5.444,6.5,5.183,5.938,5.159,5.317c0,0-0.002,0.002-0.006,0.005c0-0.011-0.003-0.021-0.003-0.031c0,0-1.61,1.247-1.436,4.612c-0.299,0.574-0.56,1.172-0.777,1.791c-0.375,0.817-0.75,2.004-1.059,3.746c0,0,0.133-0.422,0.399-0.988c-0.064,0.482-0.103,0.971-0.116,1.467c-0.09,0.845-0.118,1.865-0.039,3.088c0,0,0.032-0.406,0.136-1.021c0.834,6.854,6.667,12.165,13.743,12.165l0,0c1.86,0,3.636-0.37,5.256-1.036C24.938,27.771,27.116,25.196,28.4,22.469zM16.002,3.356c2.446,0,4.73,0.68,6.68,1.86c-2.274-0.528-3.433-0.261-3.423-0.248c0.013,0.015,3.384,0.589,3.981,1.411c0,0-1.431,0-2.856,0.41c-0.065,0.019,5.242,0.663,6.327,5.966c0,0-0.582-1.213-1.301-1.42c0.473,1.439,0.351,4.17-0.1,5.528c-0.058,0.174-0.118-0.755-1.004-1.155c0.284,2.037-0.018,5.268-1.432,6.158c-0.109,0.07,0.887-3.189,0.201-1.93c-4.093,6.276-8.959,2.539-10.934,1.208c1.585,0.388,3.267,0.108,4.242-0.559c0.982-0.672,1.564-1.162,2.087-1.047c0.522,0.117,0.87-0.407,0.464-0.872c-0.405-0.466-1.392-1.105-2.725-0.757c-0.94,0.247-2.107,1.287-3.886,0.233c-1.518-0.899-1.507-1.63-1.507-2.095c0-0.366,0.257-0.88,0.734-1.028c0.58,0.062,1.044,0.214,1.537,0.466c0.005-0.135,0.006-0.315-0.001-0.519c0.039-0.077,0.015-0.311-0.047-0.596c-0.036-0.287-0.097-0.582-0.19-0.851c0.01-0.002,0.017-0.007,0.021-0.021c0.076-0.344,2.147-1.544,2.299-1.659c0.153-0.114,0.55-0.378,0.506-1.183c-0.015-0.265-0.058-0.294-2.232-0.286c-0.917,0.003-1.425-0.894-1.589-1.245c0.222-1.231,0.863-2.11,1.919-2.704c0.02-0.011,0.015-0.021-0.008-0.027c0.219-0.127-2.524-0.006-3.76,1.604C9.674,8.045,9.219,7.95,8.71,7.95c-0.638,0-1.139,0.07-1.603,0.187c-0.05,0.013-0.122,0.011-0.208-0.001C6.769,8.04,6.575,7.88,6.365,7.672c0.161-0.18,0.324-0.356,0.495-0.526C9.201,4.804,12.43,3.357,16.002,3.356z",
                "raph_ie": "M27.998,2.266c-2.12-1.91-6.925,0.382-9.575,1.93c-0.76-0.12-1.557-0.185-2.388-0.185c-3.349,0-6.052,0.985-8.106,2.843c-2.336,2.139-3.631,4.94-3.631,8.177c0,0.028,0.001,0.056,0.001,0.084c3.287-5.15,8.342-7.79,9.682-8.487c0.212-0.099,0.338,0.155,0.141,0.253c-0.015,0.042-0.015,0,0,0c-2.254,1.35-6.434,5.259-9.146,10.886l-0.003-0.007c-1.717,3.547-3.167,8.529-0.267,10.358c2.197,1.382,6.13-0.248,9.295-2.318c0.764,0.108,1.567,0.165,2.415,0.165c5.84,0,9.937-3.223,11.399-7.924l-8.022-0.014c-0.337,1.661-1.464,2.548-3.223,2.548c-2.21,0-3.729-1.211-3.828-4.012l15.228-0.014c0.028-0.578-0.042-0.985-0.042-1.436c0-5.251-3.143-9.355-8.255-10.663c2.081-1.294,5.974-3.209,7.848-1.681c1.407,1.14,0.633,3.533,0.295,4.518c-0.056,0.254,0.24,0.296,0.296,0.057C28.814,5.573,29.026,3.194,27.998,2.266zM13.272,25.676c-2.469,1.475-5.873,2.539-7.539,1.289c-1.243-0.935-0.696-3.468,0.398-5.938c0.664,0.992,1.495,1.886,2.473,2.63C9.926,24.651,11.479,25.324,13.272,25.676zM12.714,13.046c0.042-2.435,1.787-3.49,3.617-3.49c1.928,0,3.49,1.112,3.49,3.49H12.714z",
                "raph_opera": "M15.954,2.046c-7.489,0-12.872,5.432-12.872,13.581c0,7.25,5.234,13.835,12.873,13.835c7.712,0,12.974-6.583,12.974-13.835C28.929,7.413,23.375,2.046,15.954,2.046zM15.952,26.548L15.952,26.548c-2.289,0-3.49-1.611-4.121-3.796c-0.284-1.037-0.458-2.185-0.563-3.341c-0.114-1.374-0.129-2.773-0.129-4.028c0-0.993,0.018-1.979,0.074-2.926c0.124-1.728,0.386-3.431,0.89-4.833c0.694-1.718,1.871-2.822,3.849-2.822c2.5,0,3.763,1.782,4.385,4.322c0.429,1.894,0.56,4.124,0.56,6.274c0,2.299-0.103,5.153-0.763,7.442C19.473,24.979,18.242,26.548,15.952,26.548z",
                "raph_chrome": "M16.277,8.655c-2.879,0-5.227,2.181-5.227,4.854s2.348,4.854,5.227,4.854c2.879,0,5.227-2.181,5.227-4.854S19.156,8.655,16.277,8.655zM29.535,13.486c-0.369-1.819-1.068-3.052-1.727-3.995c0.05,0.129,0.09,0.259,0.138,0.388c-2.34-6.355-11.704-9.8-18.937-5.43c-0.056,0.27-0.073,0.538-0.073,0.804c0-0.051-0.006-0.098-0.004-0.15c-1.743-0.134-3.854,2.061-5.731,6.083c-0.953,2.277-1.298,4.77-0.414,7.693c0.516,1.706,1.328,3.456,2.499,4.814c3.471,4.027,8.788,5.67,11.884,4.835c0.004,0.001,0.009,0.003,0.014,0.004c5.969-0.125,10.494-4.228,12.125-9.569C29.896,17.035,29.934,15.457,29.535,13.486zM6.043,23.04c-0.96-1.112-1.755-2.651-2.299-4.452c-0.733-2.42-0.612-4.65,0.379-7.015C5.129,9.42,6.111,8.005,6.956,7.154c0.15,0.742,0.521,1.628,1.113,2.649c0.218,0.379,0.459,0.701,0.692,1.012c0.179,0.237,0.356,0.474,0.513,0.729c0.124,0.202,0.239,0.445,0.354,0.737c-0.239,2.754,0.892,5.138,3.148,6.679l-2.546,2.25l-0.202,0.171c-0.208,0.171-0.447,0.373-0.651,0.589c-1.36,1.444-0.25,2.831,0.286,3.498l0.068,0.087c0.237,0.297,0.513,0.62,0.815,0.938C8.963,25.725,7.375,24.585,6.043,23.04zM28.354,18.67c-1.6,5.232-5.937,8.7-11.07,8.859c-2.485-0.583-4.362-1.78-5.586-3.557c0.004-0.004,0.01-0.008,0.015-0.013l4.944-3.836c2.226-0.124,3.854-0.888,4.847-2.278c1.222-1.412,1.792-3.025,1.693-4.861c1.817,0.377,3.389,0.903,4.855,1.883l0.116,0.078l0.134,0.043c0.156,0.049,0.311,0.076,0.459,0.081C28.87,16.309,28.74,17.402,28.354,18.67zM28.609,14.037c-1.951-1.306-4.062-1.867-6.594-2.285c0.531,2.358-0.084,4.072-1.326,5.512c-0.882,1.235-2.382,1.822-4.394,1.875l-5.22,4.052c-0.497,0.409-0.591,0.819-0.282,1.229c0.849,1.277,1.929,2.202,3.122,2.878c-0.013,0-0.026,0.002-0.039,0.003c-0.001-0.001-0.004-0.002-0.006-0.004c-0.02,0.003-0.041,0.004-0.062,0.005c-0.08,0.001-0.16-0.001-0.239-0.01c-0.156-0.021-0.314-0.064-0.459-0.118c-0.898-0.333-1.89-1.352-2.597-2.239c-0.581-0.73-1.206-1.433-0.411-2.275c0.258-0.273,0.582-0.514,0.789-0.698l2.521-2.229c0.172-0.137,0.35-0.277,0.535-0.423c0.053-0.042,0.107-0.084,0.162-0.127c0.564-0.442,0.483-0.32-0.108-0.642c-2.419-1.32-3.677-3.614-3.354-6.389c-0.149-0.41-0.317-0.792-0.518-1.124c-0.363-0.6-0.834-1.102-1.194-1.723c-0.9-1.556-1.847-3.902,0.013-3.682c-0.005-0.053-0.002-0.11-0.005-0.164c0.094,2.001,1.526,3.823,1.742,4.888c0.078,0.382,0.294,0.705,0.612,0.28c2.538-3.395,6.069-3.053,8.328-1.312c0.443,0.34,0.684,0.755,1.084,1.11c0.154,0.138,0.328,0.259,0.535,0.351c0.743,0.332,1.807,0.312,2.607,0.434c1.371,0.208,2.707,0.464,3.971,0.812c0.25,0.03,0.424-0.004,0.521-0.101c0.211-0.208-0.002-0.887-0.121-1.263c0.277,0.805,0.536,1.609,0.773,2.415C29.176,13.701,29.133,14.208,28.609,14.037z",
                "raph_safari": "M16.154,5.135c-0.504,0-1,0.031-1.488,0.089l-0.036-0.18c-0.021-0.104-0.06-0.198-0.112-0.283c0.381-0.308,0.625-0.778,0.625-1.306c0-0.927-0.751-1.678-1.678-1.678s-1.678,0.751-1.678,1.678c0,0.745,0.485,1.376,1.157,1.595c-0.021,0.105-0.021,0.216,0,0.328l0.033,0.167C7.645,6.95,3.712,11.804,3.712,17.578c0,6.871,5.571,12.441,12.442,12.441c6.871,0,12.441-5.57,12.441-12.441C28.596,10.706,23.025,5.135,16.154,5.135zM16.369,8.1c4.455,0,8.183,3.116,9.123,7.287l-0.576,0.234c-0.148-0.681-0.755-1.191-1.48-1.191c-0.837,0-1.516,0.679-1.516,1.516c0,0.075,0.008,0.148,0.018,0.221l-2.771-0.028c-0.054-0.115-0.114-0.226-0.182-0.333l3.399-5.11l0.055-0.083l-4.766,4.059c-0.352-0.157-0.74-0.248-1.148-0.256l0.086-0.018l-1.177-2.585c0.64-0.177,1.111-0.763,1.111-1.459c0-0.837-0.678-1.515-1.516-1.515c-0.075,0-0.147,0.007-0.219,0.018l0.058-0.634C15.357,8.141,15.858,8.1,16.369,8.1zM12.146,3.455c0-0.727,0.591-1.318,1.318-1.318c0.727,0,1.318,0.591,1.318,1.318c0,0.425-0.203,0.802-0.516,1.043c-0.183-0.123-0.413-0.176-0.647-0.13c-0.226,0.045-0.413,0.174-0.535,0.349C12.542,4.553,12.146,4.049,12.146,3.455zM7.017,17.452c0-4.443,3.098-8.163,7.252-9.116l0.297,0.573c-0.61,0.196-1.051,0.768-1.051,1.442c0,0.837,0.678,1.516,1.515,1.516c0.068,0,0.135-0.006,0.2-0.015l-0.058,2.845l0.052-0.011c-0.442,0.204-0.824,0.513-1.116,0.895l0.093-0.147l-1.574-0.603l1.172,1.239l0.026-0.042c-0.19,0.371-0.306,0.788-0.324,1.229l-0.003-0.016l-2.623,1.209c-0.199-0.604-0.767-1.041-1.438-1.041c-0.837,0-1.516,0.678-1.516,1.516c0,0.064,0.005,0.128,0.013,0.191l-0.783-0.076C7.063,18.524,7.017,17.994,7.017,17.452zM16.369,26.805c-4.429,0-8.138-3.078-9.106-7.211l0.691-0.353c0.146,0.686,0.753,1.2,1.482,1.2c0.837,0,1.515-0.679,1.515-1.516c0-0.105-0.011-0.207-0.031-0.307l2.858,0.03c0.045,0.095,0.096,0.187,0.15,0.276l-3.45,5.277l0.227-0.195l4.529-3.92c0.336,0.153,0.705,0.248,1.094,0.266l-0.019,0.004l1.226,2.627c-0.655,0.166-1.142,0.76-1.142,1.468c0,0.837,0.678,1.515,1.516,1.515c0.076,0,0.151-0.007,0.225-0.018l0.004,0.688C17.566,26.746,16.975,26.805,16.369,26.805zM18.662,26.521l-0.389-0.6c0.661-0.164,1.152-0.759,1.152-1.47c0-0.837-0.68-1.516-1.516-1.516c-0.066,0-0.13,0.005-0.193,0.014v-2.86l-0.025,0.004c0.409-0.185,0.77-0.459,1.055-0.798l1.516,0.659l-1.104-1.304c0.158-0.335,0.256-0.704,0.278-1.095l2.552-1.164c0.19,0.618,0.766,1.068,1.447,1.068c0.838,0,1.516-0.679,1.516-1.516c0-0.069-0.006-0.137-0.016-0.204l0.65,0.12c0.089,0.517,0.136,1.049,0.136,1.591C25.722,21.826,22.719,25.499,18.662,26.521z",
                "raph_view": "M16,8.286C8.454,8.286,2.5,16,2.5,16s5.954,7.715,13.5,7.715c5.771,0,13.5-7.715,13.5-7.715S21.771,8.286,16,8.286zM16,20.807c-2.649,0-4.807-2.157-4.807-4.807s2.158-4.807,4.807-4.807s4.807,2.158,4.807,4.807S18.649,20.807,16,20.807zM16,13.194c-1.549,0-2.806,1.256-2.806,2.806c0,1.55,1.256,2.806,2.806,2.806c1.55,0,2.806-1.256,2.806-2.806C18.806,14.451,17.55,13.194,16,13.194z",
                "raph_noview": "M11.478,17.568c-0.172-0.494-0.285-1.017-0.285-1.568c0-2.65,2.158-4.807,4.807-4.807c0.552,0,1.074,0.113,1.568,0.285l2.283-2.283C18.541,8.647,17.227,8.286,16,8.286C8.454,8.286,2.5,16,2.5,16s2.167,2.791,5.53,5.017L11.478,17.568zM23.518,11.185l-3.056,3.056c0.217,0.546,0.345,1.138,0.345,1.76c0,2.648-2.158,4.807-4.807,4.807c-0.622,0-1.213-0.128-1.76-0.345l-2.469,2.47c1.327,0.479,2.745,0.783,4.229,0.783c5.771,0,13.5-7.715,13.5-7.715S26.859,13.374,23.518,11.185zM25.542,4.917L4.855,25.604L6.27,27.02L26.956,6.332L25.542,4.917z",
                "raph_cloud": "M24.345,13.904c0.019-0.195,0.03-0.392,0.03-0.591c0-3.452-2.798-6.25-6.25-6.25c-2.679,0-4.958,1.689-5.847,4.059c-0.589-0.646-1.429-1.059-2.372-1.059c-1.778,0-3.219,1.441-3.219,3.219c0,0.21,0.023,0.415,0.062,0.613c-2.372,0.391-4.187,2.436-4.187,4.918c0,2.762,2.239,5,5,5h15.875c2.762,0,5-2.238,5-5C28.438,16.362,26.672,14.332,24.345,13.904z",
                "raph_cloud2": "M7.562,24.812c-3.313,0-6-2.687-6-6l0,0c0.002-2.659,1.734-4.899,4.127-5.684l0,0c0.083-2.26,1.937-4.064,4.216-4.066l0,0c0.73,0,1.415,0.19,2.01,0.517l0,0c1.266-2.105,3.57-3.516,6.208-3.517l0,0c3.947,0.002,7.157,3.155,7.248,7.079l0,0c2.362,0.804,4.062,3.034,4.064,5.671l0,0c0,3.313-2.687,6-6,6l0,0H7.562L7.562,24.812zM24.163,14.887c-0.511-0.095-0.864-0.562-0.815-1.079l0,0c0.017-0.171,0.027-0.336,0.027-0.497l0,0c-0.007-2.899-2.352-5.245-5.251-5.249l0,0c-2.249-0.002-4.162,1.418-4.911,3.41l0,0c-0.122,0.323-0.406,0.564-0.748,0.63l0,0c-0.34,0.066-0.694-0.052-0.927-0.309l0,0c-0.416-0.453-0.986-0.731-1.633-0.731l0,0c-1.225,0.002-2.216,0.993-2.22,2.218l0,0c0,0.136,0.017,0.276,0.045,0.424l0,0c0.049,0.266-0.008,0.54-0.163,0.762l0,0c-0.155,0.223-0.392,0.371-0.657,0.414l0,0c-1.9,0.313-3.352,1.949-3.35,3.931l0,0c0.004,2.209,1.792,3.995,4.001,4.001l0,0h15.874c2.209-0.006,3.994-1.792,3.999-4.001l0,0C27.438,16.854,26.024,15.231,24.163,14.887L24.163,14.887",
                "raph_cloudDown": "M24.345,13.904c0.019-0.195,0.03-0.392,0.03-0.591c0-3.452-2.798-6.25-6.25-6.25c-2.679,0-4.958,1.689-5.847,4.059c-0.589-0.646-1.429-1.059-2.372-1.059c-1.778,0-3.219,1.441-3.219,3.219c0,0.21,0.023,0.415,0.062,0.613c-2.372,0.391-4.187,2.436-4.187,4.918c0,2.762,2.239,5,5,5h3.404l-0.707-0.707c-0.377-0.377-0.585-0.879-0.585-1.413c0-0.533,0.208-1.035,0.585-1.412l0.556-0.557c0.4-0.399,0.937-0.628,1.471-0.628c0.027,0,0.054,0,0.08,0.002v-0.472c0-1.104,0.898-2.002,2-2.002h3.266c1.103,0,2,0.898,2,2.002v0.472c0.027-0.002,0.054-0.002,0.081-0.002c0.533,0,1.07,0.229,1.47,0.63l0.557,0.552c0.78,0.781,0.78,2.05,0,2.828l-0.706,0.707h2.403c2.762,0,5-2.238,5-5C28.438,16.362,26.672,14.332,24.345,13.904z M21.033,20.986l-0.556-0.555c-0.39-0.389-0.964-0.45-1.276-0.137c-0.312,0.312-0.568,0.118-0.568-0.432v-1.238c0-0.55-0.451-1-1-1h-3.265c-0.55,0-1,0.45-1,1v1.238c0,0.55-0.256,0.744-0.569,0.432c-0.312-0.313-0.887-0.252-1.276,0.137l-0.556,0.555c-0.39,0.389-0.39,1.024-0.001,1.413l4.328,4.331c0.194,0.194,0.451,0.291,0.707,0.291s0.512-0.097,0.707-0.291l4.327-4.331C21.424,22.011,21.423,21.375,21.033,20.986z",
                "raph_cloudUp": "M24.345,13.904c0.019-0.195,0.03-0.392,0.03-0.591c0-3.452-2.798-6.25-6.25-6.25c-2.679,0-4.958,1.689-5.847,4.059c-0.589-0.646-1.429-1.059-2.372-1.059c-1.778,0-3.219,1.441-3.219,3.219c0,0.21,0.023,0.415,0.062,0.613c-2.372,0.391-4.187,2.436-4.187,4.918c0,2.762,2.239,5,5,5h2.312c-0.126-0.266-0.2-0.556-0.2-0.859c0-0.535,0.208-1.04,0.587-1.415l4.325-4.329c0.375-0.377,0.877-0.585,1.413-0.585c0.54,0,1.042,0.21,1.417,0.587l4.323,4.329c0.377,0.373,0.585,0.878,0.585,1.413c0,0.304-0.073,0.594-0.2,0.859h1.312c2.762,0,5-2.238,5-5C28.438,16.362,26.672,14.332,24.345,13.904z M16.706,17.916c-0.193-0.195-0.45-0.291-0.706-0.291s-0.512,0.096-0.707,0.291l-4.327,4.33c-0.39,0.389-0.389,1.025,0.001,1.414l0.556,0.555c0.39,0.389,0.964,0.449,1.276,0.137s0.568-0.119,0.568,0.432v1.238c0,0.549,0.451,1,1,1h3.265c0.551,0,1-0.451,1-1v-1.238c0-0.551,0.256-0.744,0.569-0.432c0.312,0.312,0.887,0.252,1.276-0.137l0.556-0.555c0.39-0.389,0.39-1.025,0.001-1.414L16.706,17.916z",
                "raph_location": "M16,3.5c-4.142,0-7.5,3.358-7.5,7.5c0,4.143,7.5,18.121,7.5,18.121S23.5,15.143,23.5,11C23.5,6.858,20.143,3.5,16,3.5z M16,14.584c-1.979,0-3.584-1.604-3.584-3.584S14.021,7.416,16,7.416S19.584,9.021,19.584,11S17.979,14.584,16,14.584z",
                "raph_volume0": "M4.998,12.127v7.896h4.495l6.729,5.526l0.004-18.948l-6.73,5.526H4.998z",
                "raph_volume1": "M4.998,12.127v7.896h4.495l6.729,5.526l0.004-18.948l-6.73,5.526H4.998z M18.806,11.219c-0.393-0.389-1.024-0.389-1.415,0.002c-0.39,0.391-0.39,1.024,0.002,1.416v-0.002c0.863,0.864,1.395,2.049,1.395,3.366c0,1.316-0.531,2.497-1.393,3.361c-0.394,0.389-0.394,1.022-0.002,1.415c0.195,0.195,0.451,0.293,0.707,0.293c0.257,0,0.513-0.098,0.708-0.293c1.222-1.22,1.98-2.915,1.979-4.776C20.788,14.136,20.027,12.439,18.806,11.219z",
                "raph_volume2": "M4.998,12.127v7.896h4.495l6.729,5.526l0.004-18.948l-6.73,5.526H4.998z M18.806,11.219c-0.393-0.389-1.024-0.389-1.415,0.002c-0.39,0.391-0.39,1.024,0.002,1.416v-0.002c0.863,0.864,1.395,2.049,1.395,3.366c0,1.316-0.531,2.497-1.393,3.361c-0.394,0.389-0.394,1.022-0.002,1.415c0.195,0.195,0.451,0.293,0.707,0.293c0.257,0,0.513-0.098,0.708-0.293c1.222-1.22,1.98-2.915,1.979-4.776C20.788,14.136,20.027,12.439,18.806,11.219z M21.101,8.925c-0.393-0.391-1.024-0.391-1.413,0c-0.392,0.391-0.392,1.025,0,1.414c1.45,1.451,2.344,3.447,2.344,5.661c0,2.212-0.894,4.207-2.342,5.659c-0.392,0.39-0.392,1.023,0,1.414c0.195,0.195,0.451,0.293,0.708,0.293c0.256,0,0.512-0.098,0.707-0.293c1.808-1.809,2.929-4.315,2.927-7.073C24.033,13.24,22.912,10.732,21.101,8.925z",
                "raph_volume3": "M4.998,12.127v7.896h4.495l6.729,5.526l0.004-18.948l-6.73,5.526H4.998z M18.806,11.219c-0.393-0.389-1.024-0.389-1.415,0.002c-0.39,0.391-0.39,1.024,0.002,1.416v-0.002c0.863,0.864,1.395,2.049,1.395,3.366c0,1.316-0.531,2.497-1.393,3.361c-0.394,0.389-0.394,1.022-0.002,1.415c0.195,0.195,0.451,0.293,0.707,0.293c0.257,0,0.513-0.098,0.708-0.293c1.222-1.22,1.98-2.915,1.979-4.776C20.788,14.136,20.027,12.439,18.806,11.219z M21.101,8.925c-0.393-0.391-1.024-0.391-1.413,0c-0.392,0.391-0.392,1.025,0,1.414c1.45,1.451,2.344,3.447,2.344,5.661c0,2.212-0.894,4.207-2.342,5.659c-0.392,0.39-0.392,1.023,0,1.414c0.195,0.195,0.451,0.293,0.708,0.293c0.256,0,0.512-0.098,0.707-0.293c1.808-1.809,2.929-4.315,2.927-7.073C24.033,13.24,22.912,10.732,21.101,8.925z M23.28,6.746c-0.393-0.391-1.025-0.389-1.414,0.002c-0.391,0.389-0.391,1.023,0.002,1.413h-0.002c2.009,2.009,3.248,4.773,3.248,7.839c0,3.063-1.239,5.828-3.246,7.838c-0.391,0.39-0.391,1.023,0.002,1.415c0.194,0.194,0.45,0.291,0.706,0.291s0.513-0.098,0.708-0.293c2.363-2.366,3.831-5.643,3.829-9.251C27.115,12.389,25.647,9.111,23.28,6.746z",
                "raph_key": "M18.386,16.009l0.009-0.006l-0.58-0.912c1.654-2.226,1.876-5.319,0.3-7.8c-2.043-3.213-6.303-4.161-9.516-2.118c-3.212,2.042-4.163,6.302-2.12,9.517c1.528,2.402,4.3,3.537,6.944,3.102l0.424,0.669l0.206,0.045l0.779-0.447l-0.305,1.377l2.483,0.552l-0.296,1.325l1.903,0.424l-0.68,3.06l1.406,0.313l-0.424,1.906l4.135,0.918l0.758-3.392L18.386,16.009z M10.996,8.944c-0.685,0.436-1.593,0.233-2.029-0.452C8.532,7.807,8.733,6.898,9.418,6.463s1.594-0.233,2.028,0.452C11.883,7.6,11.68,8.509,10.996,8.944z",
                "raph_ruler": "M6.63,21.796l-5.122,5.121h25.743V1.175L6.63,21.796zM18.702,10.48c0.186-0.183,0.48-0.183,0.664,0l1.16,1.159c0.184,0.183,0.186,0.48,0.002,0.663c-0.092,0.091-0.213,0.137-0.332,0.137c-0.121,0-0.24-0.046-0.33-0.137l-1.164-1.159C18.519,10.96,18.519,10.664,18.702,10.48zM17.101,12.084c0.184-0.183,0.48-0.183,0.662,0l2.156,2.154c0.184,0.183,0.184,0.48,0.002,0.661c-0.092,0.092-0.213,0.139-0.334,0.139s-0.24-0.046-0.33-0.137l-2.156-2.154C16.917,12.564,16.917,12.267,17.101,12.084zM15.497,13.685c0.184-0.183,0.48-0.183,0.664,0l1.16,1.161c0.184,0.183,0.182,0.48-0.002,0.663c-0.092,0.092-0.211,0.138-0.33,0.138c-0.121,0-0.24-0.046-0.332-0.138l-1.16-1.16C15.314,14.166,15.314,13.868,15.497,13.685zM13.896,15.288c0.184-0.183,0.48-0.181,0.664,0.002l1.158,1.159c0.183,0.184,0.183,0.48,0,0.663c-0.092,0.092-0.212,0.138-0.332,0.138c-0.119,0-0.24-0.046-0.332-0.138l-1.158-1.161C13.713,15.767,13.713,15.471,13.896,15.288zM12.293,16.892c0.183-0.184,0.479-0.184,0.663,0l2.154,2.153c0.184,0.184,0.184,0.481,0,0.665c-0.092,0.092-0.211,0.138-0.33,0.138c-0.121,0-0.242-0.046-0.334-0.138l-2.153-2.155C12.11,17.371,12.11,17.075,12.293,16.892zM10.302,24.515c-0.091,0.093-0.212,0.139-0.332,0.139c-0.119,0-0.238-0.045-0.33-0.137l-2.154-2.153c-0.184-0.183-0.184-0.479,0-0.663s0.479-0.184,0.662,0l2.154,2.153C10.485,24.036,10.485,24.332,10.302,24.515zM10.912,21.918c-0.093,0.093-0.214,0.139-0.333,0.139c-0.12,0-0.24-0.045-0.33-0.137l-1.162-1.161c-0.184-0.183-0.184-0.479,0-0.66c0.184-0.185,0.48-0.187,0.664-0.003l1.161,1.162C11.095,21.438,11.095,21.735,10.912,21.918zM12.513,20.316c-0.092,0.092-0.211,0.138-0.332,0.138c-0.119,0-0.239-0.046-0.331-0.138l-1.159-1.16c-0.184-0.184-0.184-0.48,0-0.664s0.48-0.182,0.663,0.002l1.159,1.161C12.696,19.838,12.696,20.135,12.513,20.316zM22.25,21.917h-8.67l8.67-8.67V21.917zM22.13,10.7c-0.09,0.092-0.211,0.138-0.33,0.138c-0.121,0-0.242-0.046-0.334-0.138l-1.16-1.159c-0.184-0.183-0.184-0.479,0-0.663c0.182-0.183,0.479-0.183,0.662,0l1.16,1.159C22.312,10.221,22.313,10.517,22.13,10.7zM24.726,10.092c-0.092,0.092-0.213,0.137-0.332,0.137s-0.24-0.045-0.33-0.137l-2.154-2.154c-0.184-0.183-0.184-0.481,0-0.664s0.482-0.181,0.664,0.002l2.154,2.154C24.911,9.613,24.909,9.91,24.726,10.092z",
                "raph_power": "M21.816,3.999c-0.993-0.481-2.189-0.068-2.673,0.927c-0.482,0.995-0.066,2.191,0.927,2.673c3.115,1.516,5.265,4.705,5.263,8.401c-0.01,5.154-4.18,9.324-9.333,9.333c-5.154-0.01-9.324-4.18-9.334-9.333c-0.002-3.698,2.149-6.89,5.267-8.403c0.995-0.482,1.408-1.678,0.927-2.673c-0.482-0.993-1.676-1.409-2.671-0.927C5.737,6.152,2.667,10.72,2.665,16C2.667,23.364,8.634,29.332,16,29.334c7.365-0.002,13.333-5.97,13.334-13.334C29.332,10.722,26.266,6.157,21.816,3.999z M16,13.833c1.104,0,1.999-0.894,1.999-2V2.499C17.999,1.394,17.104,0.5,16,0.5c-1.106,0-2,0.895-2,1.999v9.333C14,12.938,14.894,13.833,16,13.833z",
                "raph_unlock": "M20.375,12.833h-2.209V10c0,0,0,0,0-0.001c0-2.389,1.945-4.333,4.334-4.333c2.391,0,4.335,1.944,4.335,4.333c0,0,0,0,0,0v2.834h2V9.999h-0.001c-0.001-3.498-2.836-6.333-6.334-6.333S16.166,6.502,16.166,10v2.833H3.125V25h17.25V12.833z",
                "raph_flag": "M26.04,9.508c0.138-0.533,0.15-1.407,0.028-1.943l-0.404-1.771c-0.122-0.536-0.665-1.052-1.207-1.146l-3.723-0.643c-0.542-0.094-1.429-0.091-1.97,0.007l-4.033,0.726c-0.542,0.098-1.429,0.108-1.973,0.023L8.812,4.146C8.817,4.165,8.826,4.182,8.83,4.201l2.701,12.831l1.236,0.214c0.542,0.094,1.428,0.09,1.97-0.007l4.032-0.727c0.541-0.097,1.429-0.107,1.973-0.022l4.329,0.675c0.544,0.085,0.906-0.288,0.807-0.829l-0.485-2.625c-0.1-0.541-0.069-1.419,0.068-1.952L26.04,9.508zM6.667,3.636C6.126,3.75,5.78,4.279,5.894,4.819l5.763,27.378H13.7L7.852,4.409C7.736,3.867,7.207,3.521,6.667,3.636z",
                "raph_tag": "M14.263,2.826H7.904L2.702,8.028v6.359L18.405,30.09l11.561-11.562L14.263,2.826zM6.495,8.859c-0.619-0.619-0.619-1.622,0-2.24C7.114,6,8.117,6,8.736,6.619c0.62,0.62,0.619,1.621,0,2.241C8.117,9.479,7.114,9.479,6.495,8.859z",
                "raph_search": "M29.772,26.433l-7.126-7.126c0.96-1.583,1.523-3.435,1.524-5.421C24.169,8.093,19.478,3.401,13.688,3.399C7.897,3.401,3.204,8.093,3.204,13.885c0,5.789,4.693,10.481,10.484,10.481c1.987,0,3.839-0.563,5.422-1.523l7.128,7.127L29.772,26.433zM7.203,13.885c0.006-3.582,2.903-6.478,6.484-6.486c3.579,0.008,6.478,2.904,6.484,6.486c-0.007,3.58-2.905,6.476-6.484,6.484C10.106,20.361,7.209,17.465,7.203,13.885z",
                "raph_zoomout": "M22.646,19.307c0.96-1.583,1.523-3.435,1.524-5.421C24.169,8.093,19.478,3.401,13.688,3.399C7.897,3.401,3.204,8.093,3.204,13.885c0,5.789,4.693,10.481,10.484,10.481c1.987,0,3.839-0.563,5.422-1.523l7.128,7.127l3.535-3.537L22.646,19.307zM13.688,20.369c-3.582-0.008-6.478-2.904-6.484-6.484c0.006-3.582,2.903-6.478,6.484-6.486c3.579,0.008,6.478,2.904,6.484,6.486C20.165,17.465,17.267,20.361,13.688,20.369zM8.854,11.884v4.001l9.665-0.001v-3.999L8.854,11.884z",
                "raph_zoomin": "M22.646,19.307c0.96-1.583,1.523-3.435,1.524-5.421C24.169,8.093,19.478,3.401,13.688,3.399C7.897,3.401,3.204,8.093,3.204,13.885c0,5.789,4.693,10.481,10.484,10.481c1.987,0,3.839-0.563,5.422-1.523l7.128,7.127l3.535-3.537L22.646,19.307zM13.688,20.369c-3.582-0.008-6.478-2.904-6.484-6.484c0.006-3.582,2.903-6.478,6.484-6.486c3.579,0.008,6.478,2.904,6.484,6.486C20.165,17.465,17.267,20.361,13.688,20.369zM15.687,9.051h-4v2.833H8.854v4.001h2.833v2.833h4v-2.834h2.832v-3.999h-2.833V9.051z",
                "raph_cross": "M24.778,21.419 19.276,15.917 24.777,10.415 21.949,7.585 16.447,13.087 10.945,7.585 8.117,10.415 13.618,15.917 8.116,21.419 10.946,24.248 16.447,18.746 21.948,24.248",
                "raph_check": "M2.379,14.729 5.208,11.899 12.958,19.648 25.877,6.733 28.707,9.561 12.958,25.308",
                "raph_settings": "M16.015,12.03c-2.156,0-3.903,1.747-3.903,3.903c0,2.155,1.747,3.903,3.903,3.903c0.494,0,0.962-0.102,1.397-0.27l0.836,1.285l1.359-0.885l-0.831-1.276c0.705-0.706,1.142-1.681,1.142-2.757C19.918,13.777,18.171,12.03,16.015,12.03zM16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM26.174,20.809c-0.241,0.504-0.513,0.99-0.826,1.45L22.19,21.58c-0.481,0.526-1.029,0.994-1.634,1.385l0.119,3.202c-0.507,0.23-1.028,0.421-1.569,0.57l-1.955-2.514c-0.372,0.051-0.75,0.086-1.136,0.086c-0.356,0-0.706-0.029-1.051-0.074l-1.945,2.5c-0.541-0.151-1.065-0.342-1.57-0.569l0.117-3.146c-0.634-0.398-1.208-0.88-1.712-1.427L6.78,22.251c-0.313-0.456-0.583-0.944-0.826-1.448l2.088-2.309c-0.226-0.703-0.354-1.451-0.385-2.223l-2.768-1.464c0.055-0.563,0.165-1.107,0.301-1.643l3.084-0.427c0.29-0.702,0.675-1.352,1.135-1.942L8.227,7.894c0.399-0.389,0.83-0.744,1.283-1.07l2.663,1.672c0.65-0.337,1.349-0.593,2.085-0.75l0.968-3.001c0.278-0.021,0.555-0.042,0.837-0.042c0.282,0,0.56,0.022,0.837,0.042l0.976,3.028c0.72,0.163,1.401,0.416,2.036,0.75l2.704-1.697c0.455,0.326,0.887,0.681,1.285,1.07l-1.216,2.986c0.428,0.564,0.793,1.181,1.068,1.845l3.185,0.441c0.135,0.535,0.247,1.081,0.302,1.643l-2.867,1.516c-0.034,0.726-0.15,1.43-0.355,2.1L26.174,20.809z",
                "raph_settingsalt": "M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM24.386,14.968c-1.451,1.669-3.706,2.221-5.685,1.586l-7.188,8.266c-0.766,0.88-2.099,0.97-2.979,0.205s-0.973-2.099-0.208-2.979l7.198-8.275c-0.893-1.865-0.657-4.164,0.787-5.824c1.367-1.575,3.453-2.151,5.348-1.674l-2.754,3.212l0.901,2.621l2.722,0.529l2.761-3.22C26.037,11.229,25.762,13.387,24.386,14.968z",
                "raph_feed": "M4.135,16.762c3.078,0,5.972,1.205,8.146,3.391c2.179,2.187,3.377,5.101,3.377,8.202h4.745c0-9.008-7.299-16.335-16.269-16.335V16.762zM4.141,8.354c10.973,0,19.898,8.975,19.898,20.006h4.743c0-13.646-11.054-24.749-24.642-24.749V8.354zM10.701,25.045c0,1.815-1.471,3.287-3.285,3.287s-3.285-1.472-3.285-3.287c0-1.813,1.471-3.285,3.285-3.285S10.701,23.231,10.701,25.045z",
                "raph_bug": "M28.589,10.903l-5.828,1.612c-0.534-1.419-1.338-2.649-2.311-3.628l3.082-5.44c0.271-0.48,0.104-1.092-0.38-1.365c-0.479-0.271-1.09-0.102-1.36,0.377l-2.924,5.162c-0.604-0.383-1.24-0.689-1.9-0.896c-0.416-1.437-1.652-2.411-3.058-2.562c-0.001-0.004-0.002-0.008-0.003-0.012c-0.061-0.242-0.093-0.46-0.098-0.65c-0.005-0.189,0.012-0.351,0.046-0.479c0.037-0.13,0.079-0.235,0.125-0.317c0.146-0.26,0.34-0.43,0.577-0.509c0.023,0.281,0.142,0.482,0.352,0.601c0.155,0.088,0.336,0.115,0.546,0.086c0.211-0.031,0.376-0.152,0.496-0.363c0.105-0.186,0.127-0.389,0.064-0.607c-0.064-0.219-0.203-0.388-0.414-0.507c-0.154-0.087-0.314-0.131-0.482-0.129c-0.167,0.001-0.327,0.034-0.481,0.097c-0.153,0.063-0.296,0.16-0.429,0.289c-0.132,0.129-0.241,0.271-0.33,0.426c-0.132,0.234-0.216,0.496-0.25,0.783c-0.033,0.286-0.037,0.565-0.009,0.84c0.017,0.16,0.061,0.301,0.094,0.449c-0.375-0.021-0.758,0.002-1.14,0.108c-0.482,0.133-0.913,0.36-1.28,0.653c-0.052-0.172-0.098-0.344-0.18-0.518c-0.116-0.249-0.263-0.486-0.438-0.716c-0.178-0.229-0.384-0.41-0.618-0.543C9.904,3.059,9.737,2.994,9.557,2.951c-0.18-0.043-0.352-0.052-0.516-0.027s-0.318,0.08-0.463,0.164C8.432,3.172,8.318,3.293,8.23,3.445C8.111,3.656,8.08,3.873,8.136,4.092c0.058,0.221,0.181,0.384,0.367,0.49c0.21,0.119,0.415,0.138,0.611,0.056C9.31,4.556,9.451,4.439,9.539,4.283c0.119-0.21,0.118-0.443-0.007-0.695c0.244-0.055,0.497-0.008,0.757,0.141c0.081,0.045,0.171,0.115,0.27,0.208c0.097,0.092,0.193,0.222,0.286,0.388c0.094,0.166,0.179,0.368,0.251,0.608c0.013,0.044,0.023,0.098,0.035,0.146c-0.911,0.828-1.357,2.088-1.098,3.357c-0.582,0.584-1.072,1.27-1.457,2.035l-5.16-2.926c-0.48-0.271-1.092-0.102-1.364,0.377C1.781,8.404,1.95,9.016,2.43,9.289l5.441,3.082c-0.331,1.34-0.387,2.807-0.117,4.297l-5.828,1.613c-0.534,0.147-0.846,0.699-0.698,1.231c0.147,0.53,0.697,0.843,1.231,0.694l5.879-1.627c0.503,1.057,1.363,2.28,2.371,3.443l-3.194,5.639c-0.272,0.481-0.104,1.092,0.378,1.363c0.239,0.137,0.512,0.162,0.758,0.094c0.248-0.068,0.469-0.229,0.604-0.471l2.895-5.109c2.7,2.594,5.684,4.123,5.778,1.053c1.598,2.56,3.451-0.338,4.502-3.976l5.203,2.947c0.24,0.138,0.514,0.162,0.762,0.094c0.246-0.067,0.467-0.229,0.603-0.471c0.272-0.479,0.104-1.091-0.377-1.362l-5.701-3.229c0.291-1.505,0.422-2.983,0.319-4.138l5.886-1.627c0.53-0.147,0.847-0.697,0.696-1.229C29.673,11.068,29.121,10.756,28.589,10.903z",
                "raph_link": "M15.667,4.601c-1.684,1.685-2.34,3.985-2.025,6.173l3.122-3.122c0.004-0.005,0.014-0.008,0.016-0.012c0.21-0.403,0.464-0.789,0.802-1.126c1.774-1.776,4.651-1.775,6.428,0c1.775,1.773,1.777,4.652,0.002,6.429c-0.34,0.34-0.727,0.593-1.131,0.804c-0.004,0.002-0.006,0.006-0.01,0.01l-3.123,3.123c2.188,0.316,4.492-0.34,6.176-2.023c2.832-2.832,2.83-7.423,0-10.255C23.09,1.77,18.499,1.77,15.667,4.601zM14.557,22.067c-0.209,0.405-0.462,0.791-0.801,1.131c-1.775,1.774-4.656,1.774-6.431,0c-1.775-1.774-1.775-4.653,0-6.43c0.339-0.338,0.725-0.591,1.128-0.8c0.004-0.006,0.005-0.012,0.011-0.016l3.121-3.123c-2.187-0.316-4.489,0.342-6.172,2.024c-2.831,2.831-2.83,7.423,0,10.255c2.833,2.831,7.424,2.831,10.257,0c1.684-1.684,2.342-3.986,2.023-6.175l-3.125,3.123C14.565,22.063,14.561,22.065,14.557,22.067zM9.441,18.885l2.197,2.197c0.537,0.537,1.417,0.537,1.953,0l8.302-8.302c0.539-0.536,0.539-1.417,0.002-1.952l-2.199-2.197c-0.536-0.539-1.416-0.539-1.952-0.002l-8.302,8.303C8.904,17.469,8.904,18.349,9.441,18.885z",
                "raph_calendar": "M11.758,15.318c0.312-0.3,0.408-0.492,0.408-0.492h0.024c0,0-0.012,0.264-0.012,0.528v5.469h-1.871v1.031h4.87v-1.031H13.33v-7.436h-1.055l-2.027,1.967l0.719,0.744L11.758,15.318zM16.163,21.207c0,0.205,0.024,0.42,0.06,0.647h5.457v-1.031h-4.197c0.023-1.931,4.065-2.362,4.065-5.146c0-1.463-1.114-2.436-2.674-2.436c-1.907,0-2.675,1.607-2.675,1.607l0.875,0.587c0,0,0.6-1.08,1.716-1.08c0.887,0,1.522,0.563,1.522,1.403C20.312,17.754,16.163,18.186,16.163,21.207zM12,3.604h-2v3.335h2V3.604zM23,4.77v3.17h-4V4.77h-6v3.168H9.002V4.77H6.583v21.669h18.833V4.77H23zM24.417,25.438H7.584V10.522h16.833V25.438zM22,3.604h-2v3.335h2V3.604z",
                "raph_picker": "M22.221,10.853c-0.111-0.414-0.261-0.412,0.221-1.539l1.66-3.519c0.021-0.051,0.2-0.412,0.192-0.946c0.015-0.529-0.313-1.289-1.119-1.642c-1.172-0.555-1.17-0.557-2.344-1.107c-0.784-0.396-1.581-0.171-1.979,0.179c-0.42,0.333-0.584,0.7-0.609,0.75L16.58,6.545c-0.564,1.084-0.655,0.97-1.048,1.147c-0.469,0.129-1.244,0.558-1.785,1.815c-1.108,2.346-1.108,2.346-1.108,2.346l-0.276,0.586l1.17,0.553l-3.599,7.623c-0.38,0.828-0.166,1.436-0.166,2.032c0.01,0.627-0.077,1.509-0.876,3.21l-0.276,0.586l3.517,1.661l0.276-0.585c0.808-1.699,1.431-2.326,1.922-2.717c0.46-0.381,1.066-0.6,1.465-1.42l3.599-7.618l1.172,0.554l0.279-0.589c0,0,0,0,1.105-2.345C22.578,12.166,22.419,11.301,22.221,10.853zM14.623,22.83c-0.156,0.353-0.413,0.439-1.091,0.955c-0.577,0.448-1.264,1.172-2.009,2.6l-1.191-0.562c0.628-1.48,0.75-2.474,0.73-3.203c-0.031-0.851-0.128-1.104,0.045-1.449l3.599-7.621l3.517,1.662L14.623,22.83z",
                "raph_no": "M16,2.939C9.006,2.942,3.338,8.61,3.335,15.605C3.335,22.6,9.005,28.268,16,28.27c6.994-0.002,12.662-5.67,12.664-12.664C28.663,8.61,22.995,2.939,16,2.939zM25.663,15.605c-0.003,1.943-0.583,3.748-1.569,5.264L10.736,7.513c1.515-0.988,3.32-1.569,5.265-1.573C21.337,5.951,25.654,10.269,25.663,15.605zM6.335,15.605c0.004-1.943,0.584-3.75,1.573-5.266l13.355,13.357c-1.516,0.986-3.32,1.566-5.264,1.569C10.664,25.26,6.346,20.941,6.335,15.605z",
                "raph_commandline": "M2.021,9.748L2.021,9.748V9.746V9.748zM2.022,9.746l5.771,5.773l-5.772,5.771l2.122,2.123l7.894-7.895L4.143,7.623L2.022,9.746zM12.248,23.269h14.419V20.27H12.248V23.269zM16.583,17.019h10.084V14.02H16.583V17.019zM12.248,7.769v3.001h14.419V7.769H12.248z",
                "raph_photo": "M24.25,10.25H20.5v-1.5h-9.375v1.5h-3.75c-1.104,0-2,0.896-2,2v10.375c0,1.104,0.896,2,2,2H24.25c1.104,0,2-0.896,2-2V12.25C26.25,11.146,25.354,10.25,24.25,10.25zM15.812,23.499c-3.342,0-6.06-2.719-6.06-6.061c0-3.342,2.718-6.062,6.06-6.062s6.062,2.72,6.062,6.062C21.874,20.78,19.153,23.499,15.812,23.499zM15.812,13.375c-2.244,0-4.062,1.819-4.062,4.062c0,2.244,1.819,4.062,4.062,4.062c2.244,0,4.062-1.818,4.062-4.062C19.875,15.194,18.057,13.375,15.812,13.375z",
                "raph_printer": "M24.569,12.125h-2.12c-0.207-1.34-1.247-2.759-2.444-3.967c-1.277-1.24-2.654-2.234-3.784-2.37c-0.062-0.008-0.124-0.014-0.198-0.015H8.594c-0.119,0-0.235,0.047-0.319,0.132c-0.083,0.083-0.132,0.2-0.132,0.32v5.9H6.069c-1.104,0-2,0.896-2,2V23h4.074v2.079c0,0.118,0.046,0.23,0.132,0.318c0.086,0.085,0.199,0.131,0.319,0.131h13.445c0.118,0,0.232-0.046,0.318-0.131s0.138-0.199,0.138-0.318V23h4.074v-8.875C26.569,13.021,25.674,12.125,24.569,12.125zM21.589,24.626H9.043V21.5h12.546V24.626zM21.589,13.921c0-0.03,0-0.063-0.003-0.096c-0.015-0.068-0.062-0.135-0.124-0.2H9.043v-6.95h6.987v0.001c0.305-0.019,0.567,0.282,0.769,0.971c0.183,0.655,0.229,1.509,0.229,2.102c0.001,0.433-0.019,0.725-0.019,0.725l-0.037,0.478l0.48,0.005c0.002,0,1.109,0.014,2.196,0.26c1.044,0.226,1.86,0.675,1.938,1.184c0.003,0.045,0.003,0.091,0.003,0.133V13.921z",
                "export": "M24.086,20.904c-1.805,3.113-5.163,5.212-9.023,5.219c-5.766-0.01-10.427-4.672-10.438-10.435C4.636,9.922,9.297,5.261,15.063,5.25c3.859,0.007,7.216,2.105,9.022,5.218l3.962,2.284l0.143,0.082C26.879,6.784,21.504,2.25,15.063,2.248C7.64,2.25,1.625,8.265,1.624,15.688c0.002,7.42,6.017,13.435,13.439,13.437c6.442-0.002,11.819-4.538,13.127-10.589l-0.141,0.081L24.086,20.904zM28.4,15.688l-7.15-4.129v2.297H10.275v3.661H21.25v2.297L28.4,15.688z",
                "import": "M15.067,2.25c-5.979,0-11.035,3.91-12.778,9.309h3.213c1.602-3.705,5.271-6.301,9.565-6.309c5.764,0.01,10.428,4.674,10.437,10.437c-0.009,5.764-4.673,10.428-10.437,10.438c-4.294-0.007-7.964-2.605-9.566-6.311H2.289c1.744,5.399,6.799,9.31,12.779,9.312c7.419-0.002,13.437-6.016,13.438-13.438C28.504,8.265,22.486,2.252,15.067,2.25zM10.918,19.813l7.15-4.126l-7.15-4.129v2.297H-0.057v3.661h10.975V19.813z",
                "raph_run": "M17.41,20.395l-0.778-2.723c0.228-0.2,0.442-0.414,0.644-0.643l2.721,0.778c0.287-0.418,0.534-0.862,0.755-1.323l-2.025-1.96c0.097-0.288,0.181-0.581,0.241-0.883l2.729-0.684c0.02-0.252,0.039-0.505,0.039-0.763s-0.02-0.51-0.039-0.762l-2.729-0.684c-0.061-0.302-0.145-0.595-0.241-0.883l2.026-1.96c-0.222-0.46-0.469-0.905-0.756-1.323l-2.721,0.777c-0.201-0.228-0.416-0.442-0.644-0.643l0.778-2.722c-0.418-0.286-0.863-0.534-1.324-0.755l-1.96,2.026c-0.287-0.097-0.581-0.18-0.883-0.241l-0.683-2.73c-0.253-0.019-0.505-0.039-0.763-0.039s-0.51,0.02-0.762,0.039l-0.684,2.73c-0.302,0.061-0.595,0.144-0.883,0.241l-1.96-2.026C7.048,3.463,6.604,3.71,6.186,3.997l0.778,2.722C6.736,6.919,6.521,7.134,6.321,7.361L3.599,6.583C3.312,7.001,3.065,7.446,2.844,7.907l2.026,1.96c-0.096,0.288-0.18,0.581-0.241,0.883l-2.73,0.684c-0.019,0.252-0.039,0.505-0.039,0.762s0.02,0.51,0.039,0.763l2.73,0.684c0.061,0.302,0.145,0.595,0.241,0.883l-2.026,1.96c0.221,0.46,0.468,0.905,0.755,1.323l2.722-0.778c0.2,0.229,0.415,0.442,0.643,0.643l-0.778,2.723c0.418,0.286,0.863,0.533,1.323,0.755l1.96-2.026c0.288,0.097,0.581,0.181,0.883,0.241l0.684,2.729c0.252,0.02,0.505,0.039,0.763,0.039s0.51-0.02,0.763-0.039l0.683-2.729c0.302-0.061,0.596-0.145,0.883-0.241l1.96,2.026C16.547,20.928,16.992,20.681,17.41,20.395zM11.798,15.594c-1.877,0-3.399-1.522-3.399-3.399s1.522-3.398,3.399-3.398s3.398,1.521,3.398,3.398S13.675,15.594,11.798,15.594zM27.29,22.699c0.019-0.547-0.06-1.104-0.23-1.654l1.244-1.773c-0.188-0.35-0.4-0.682-0.641-0.984l-2.122,0.445c-0.428-0.364-0.915-0.648-1.436-0.851l-0.611-2.079c-0.386-0.068-0.777-0.105-1.173-0.106l-0.974,1.936c-0.279,0.054-0.558,0.128-0.832,0.233c-0.257,0.098-0.497,0.22-0.727,0.353L17.782,17.4c-0.297,0.262-0.568,0.545-0.813,0.852l0.907,1.968c-0.259,0.495-0.437,1.028-0.519,1.585l-1.891,1.06c0.019,0.388,0.076,0.776,0.164,1.165l2.104,0.519c0.231,0.524,0.541,0.993,0.916,1.393l-0.352,2.138c0.32,0.23,0.66,0.428,1.013,0.6l1.715-1.32c0.536,0.141,1.097,0.195,1.662,0.15l1.452,1.607c0.2-0.057,0.399-0.118,0.596-0.193c0.175-0.066,0.34-0.144,0.505-0.223l0.037-2.165c0.455-0.339,0.843-0.747,1.152-1.206l2.161-0.134c0.152-0.359,0.279-0.732,0.368-1.115L27.29,22.699zM23.127,24.706c-1.201,0.458-2.545-0.144-3.004-1.345s0.143-2.546,1.344-3.005c1.201-0.458,2.547,0.144,3.006,1.345C24.931,22.902,24.328,24.247,23.127,24.706z",
                "raph_magnet": "M20.812,19.5h5.002v-6.867c-0.028-1.706-0.61-3.807-2.172-5.841c-1.539-2.014-4.315-3.72-7.939-3.687C12.076,3.073,9.3,4.779,7.762,6.792C6.2,8.826,5.617,10.928,5.588,12.634V19.5h5v-6.866c-0.027-0.377,0.303-1.789,1.099-2.748c0.819-0.979,1.848-1.747,4.014-1.778c2.165,0.032,3.195,0.799,4.013,1.778c0.798,0.959,1.126,2.372,1.099,2.748V19.5L20.812,19.5zM25.814,25.579c0,0,0-2.354,0-5.079h-5.002c0,2.727,0,5.08,0,5.08l5.004-0.001H25.814zM5.588,25.58h5c0,0,0-2.354,0-5.08h-5C5.588,23.227,5.588,25.58,5.588,25.58z",
                "raph_nomagnet": "M10.59,17.857v-5.225c-0.027-0.376,0.303-1.789,1.099-2.748c0.819-0.979,1.849-1.748,4.014-1.778c1.704,0.026,2.699,0.508,3.447,1.189l3.539-3.539c-1.616-1.526-4.01-2.679-6.986-2.652C12.077,3.073,9.3,4.779,7.762,6.793C6.2,8.826,5.617,10.928,5.59,12.634V19.5h3.357L10.59,17.857zM5.59,20.5v2.357L7.947,20.5H5.59zM20.812,13.29v6.21h5.002v-6.866c-0.021-1.064-0.252-2.283-0.803-3.542L20.812,13.29zM25.339,4.522L4.652,25.209l1.415,1.416L26.753,5.937L25.339,4.522zM20.812,25.58h5.002c0,0,0-2.354,0-5.08h-5.002C20.812,23.227,20.812,25.58,20.812,25.58zM10.59,25.58c0,0,0-0.827,0-2.064L8.525,25.58H10.59z",
                "raph_flip": "M15.5,21.082h1.001v-2.001H15.5V21.082zM15.5,25.082h1.001v-2H15.5V25.082zM15.5,29.082h1.001v-2H15.5V29.082zM15.5,32.127h1.001v-1.045H15.5V32.127zM15.5,17.083h1.001v-2H15.5V17.083zM15.5,1.083h1.001v-2H15.5V1.083zM15.5,5.083h1.001v-2H15.5V5.083zM15.5,9.083h1.001v-2H15.5V9.083zM15.5,13.083h1.001v-2H15.5V13.083zM18.832,1.203v25.962h14.093L18.832,1.203zM19.832,5.136l11.41,21.03h-11.41V5.136zM13.113,27.165V1.203L-0.979,27.165H13.113z",
                "raph_flipv": "M21.45,16.078v-1.001h-2.001v1.001H21.45zM25.45,16.078v-1.001h-2v1.001H25.45zM29.45,16.078v-1.001h-2v1.001H29.45zM32.495,16.078v-1.001H31.45v1.001H32.495zM17.451,16.078v-1.001h-2v1.001H17.451zM1.451,16.078v-1.001h-2v1.001H1.451zM5.451,16.078v-1.001h-2v1.001H5.451zM9.452,16.078v-1.001h-2v1.001H9.452zM13.452,16.078v-1.001h-2v1.001H13.452zM1.571,12.745h25.962V-1.348L1.571,12.745zM5.504,11.745l21.03-11.41v11.41H5.504zM27.533,18.464H1.571l25.962,14.093V18.464z",
                "raph_connect": "M25.06,13.719c-0.944-5.172-5.461-9.094-10.903-9.094v4c3.917,0.006,7.085,3.176,7.094,7.094c-0.009,3.917-3.177,7.085-7.094,7.093v4.002c5.442-0.004,9.959-3.926,10.903-9.096h4.69v-3.999H25.06zM20.375,15.719c0-3.435-2.784-6.219-6.219-6.219c-2.733,0-5.05,1.766-5.884,4.218H1.438v4.001h6.834c0.833,2.452,3.15,4.219,5.884,4.219C17.591,21.938,20.375,19.153,20.375,15.719z",
                "raph_disconnect": "M9.219,9.5c-2.733,0-5.05,1.766-5.884,4.218H1.438v4.001h1.897c0.833,2.452,3.15,4.219,5.884,4.219c3.435,0,6.219-2.784,6.219-6.219S12.653,9.5,9.219,9.5zM27.685,13.719c-0.944-5.172-5.461-9.094-10.903-9.094v4c3.917,0.006,7.085,3.176,7.094,7.094c-0.009,3.917-3.177,7.085-7.094,7.093v4.002c5.442-0.004,9.959-3.926,10.903-9.096h2.065v-3.999H27.685z",
                "raph_folder": "M29.124,12.75c-0.004-2.208-1.792-3.997-3.999-4V8.749H12.868c-0.505-1.622-2.011-2.808-3.805-2.811H6.188c-2.208,0.002-3.997,1.792-4.001,4v14.188c0.004,2.206,1.793,3.995,4.001,3.999h18.938c2.205-0.004,3.995-1.793,3.999-3.999V12.75zM6.188,7.937h2.875c1.046-0.004,1.917,0.834,1.983,1.876l0.058,0.937h14.022c1.093,0.002,1.997,0.906,1.999,2v0.495c-0.591-0.345-1.268-0.557-2-0.558H6.187c-0.732,0.001-1.41,0.214-2,0.559V9.937C4.19,8.843,5.094,7.939,6.188,7.937zM25.125,26.125H6.188c-1.093-0.002-1.997-0.908-2.001-2v-7.438h0.001c0.002-1.095,0.906-1.999,2-2.001h18.938c1.093,0.002,1.991,0.901,2,1.991v7.447C27.122,25.219,26.218,26.123,25.125,26.125z",
                "raph_man": "M21.021,16.349c-0.611-1.104-1.359-1.998-2.109-2.623c-0.875,0.641-1.941,1.031-3.103,1.031c-1.164,0-2.231-0.391-3.105-1.031c-0.75,0.625-1.498,1.519-2.111,2.623c-1.422,2.563-1.578,5.192-0.35,5.874c0.55,0.307,1.127,0.078,1.723-0.496c-0.105,0.582-0.166,1.213-0.166,1.873c0,2.932,1.139,5.307,2.543,5.307c0.846,0,1.265-0.865,1.466-2.189c0.201,1.324,0.62,2.189,1.463,2.189c1.406,0,2.545-2.375,2.545-5.307c0-0.66-0.061-1.291-0.168-1.873c0.598,0.574,1.174,0.803,1.725,0.496C22.602,21.541,22.443,18.912,21.021,16.349zM15.808,13.757c2.362,0,4.278-1.916,4.278-4.279s-1.916-4.279-4.278-4.279c-2.363,0-4.28,1.916-4.28,4.279S13.445,13.757,15.808,13.757z",
                "raph_woman": "M21.022,16.349c-0.611-1.104-1.359-1.998-2.109-2.623c-0.875,0.641-1.941,1.031-3.104,1.031c-1.164,0-2.231-0.391-3.105-1.031c-0.75,0.625-1.498,1.519-2.111,2.623c-1.422,2.563-1.579,5.192-0.351,5.874c0.55,0.307,1.127,0.078,1.723-0.496c-0.105,0.582-0.167,1.213-0.167,1.873c0,2.932,1.139,5.307,2.543,5.307c0.846,0,1.265-0.865,1.466-2.189c0.201,1.324,0.62,2.189,1.464,2.189c1.406,0,2.545-2.375,2.545-5.307c0-0.66-0.061-1.291-0.168-1.873c0.598,0.574,1.174,0.803,1.725,0.496C22.603,21.541,22.444,18.912,21.022,16.349zM15.808,13.757c2.363,0,4.279-1.916,4.279-4.279s-1.916-4.279-4.279-4.279c-2.363,0-4.28,1.916-4.28,4.279S13.445,13.757,15.808,13.757zM18.731,4.974c1.235,0.455,0.492-0.725,0.492-1.531s0.762-1.792-0.492-1.391c-1.316,0.422-2.383,0.654-2.383,1.461S17.415,4.489,18.731,4.974zM15.816,4.4c0.782,0,0.345-0.396,0.345-0.884c0-0.488,0.438-0.883-0.345-0.883s-0.374,0.396-0.374,0.883C15.442,4.005,15.034,4.4,15.816,4.4zM12.884,4.974c1.316-0.484,2.383-0.654,2.383-1.461S14.2,2.474,12.884,2.052c-1.254-0.402-0.492,0.584-0.492,1.391S11.648,5.428,12.884,4.974z",
                "raph_notebook": "M24.875,1.375H8c-1.033,0-1.874,0.787-1.979,1.792h1.604c1.102,0,2,0.898,2,2c0,1.102-0.898,2-2,2H6v0.999h1.625c1.104,0,2.002,0.898,2.002,2.002c0,1.104-0.898,2.001-2.002,2.001H6v0.997h1.625c1.102,0,2,0.898,2,2c0,1.104-0.898,2.004-2,2.004H6v0.994h1.625c1.102,0,2,0.898,2,2.002s-0.898,2.002-2,2.002H6v0.997h1.624c1.104,0,2.002,0.897,2.002,2.001c0,1.104-0.898,2.002-2.002,2.002H6.004C6.027,28.252,6.91,29.125,8,29.125h16.875c1.104,0,2-0.896,2-2V3.375C26.875,2.271,25.979,1.375,24.875,1.375zM25.25,8.375c0,0.552-0.447,1-1,1H14c-0.553,0-1-0.448-1-1V4c0-0.552,0.447-1,1-1h10.25c0.553,0,1,0.448,1,1V8.375zM8.625,25.166c0-0.554-0.449-1.001-1-1.001h-3.25c-0.552,0-1,0.447-1,1.001c0,0.552,0.449,1,1,1h3.25C8.176,26.166,8.625,25.718,8.625,25.166zM4.375,6.166h3.251c0.551,0,0.999-0.448,0.999-0.999c0-0.555-0.448-1-0.999-1H4.375c-0.553,0-1,0.445-1,1C3.374,5.718,3.822,6.166,4.375,6.166zM4.375,11.167h3.25c0.553,0,1-0.448,1-1s-0.448-1-1-1h-3.25c-0.553,0-1,0.448-1,1S3.822,11.167,4.375,11.167zM4.375,16.167h3.25c0.551,0,1-0.448,1-1.001s-0.448-0.999-1-0.999h-3.25c-0.553,0-1.001,0.446-1.001,0.999S3.822,16.167,4.375,16.167zM3.375,20.165c0,0.553,0.446,1.002,1,1.002h3.25c0.551,0,1-0.449,1-1.002c0-0.552-0.448-1-1-1h-3.25C3.821,19.165,3.375,19.613,3.375,20.165z",
                "raph_diagram": "M6.812,17.202l7.396-3.665v-2.164h-0.834c-0.414,0-0.808-0.084-1.167-0.237v1.159l-7.396,3.667v2.912h2V17.202zM26.561,18.875v-2.913l-7.396-3.666v-1.158c-0.358,0.152-0.753,0.236-1.166,0.236h-0.832l-0.001,2.164l7.396,3.666v1.672H26.561zM16.688,18.875v-7.501h-2v7.501H16.688zM27.875,19.875H23.25c-1.104,0-2,0.896-2,2V26.5c0,1.104,0.896,2,2,2h4.625c1.104,0,2-0.896,2-2v-4.625C29.875,20.771,28.979,19.875,27.875,19.875zM8.125,19.875H3.5c-1.104,0-2,0.896-2,2V26.5c0,1.104,0.896,2,2,2h4.625c1.104,0,2-0.896,2-2v-4.625C10.125,20.771,9.229,19.875,8.125,19.875zM13.375,10.375H18c1.104,0,2-0.896,2-2V3.75c0-1.104-0.896-2-2-2h-4.625c-1.104,0-2,0.896-2,2v4.625C11.375,9.479,12.271,10.375,13.375,10.375zM18,19.875h-4.625c-1.104,0-2,0.896-2,2V26.5c0,1.104,0.896,2,2,2H18c1.104,0,2-0.896,2-2v-4.625C20,20.771,19.104,19.875,18,19.875z",
                "raph_barchart": "M21.25,8.375V28h6.5V8.375H21.25zM12.25,28h6.5V4.125h-6.5V28zM3.25,28h6.5V12.625h-6.5V28z"
            	}
            }
          • symbol.json
            {"data": {
            	"airplane": "m150.70285,1c-3.11894,0 -5.89383,1.28033 -8.23512,3.60274c-2.33931,2.3205 -4.27426,5.64559 -5.8844,9.79826c-3.21983,8.30419 -5.20047,19.96969 -6.28387,33.94021c-1.08127,13.94364 -1.26349,30.17972 -0.81427,47.56012c-38.52657,15.80524 -116.66563,48.43882 -122.94262,55.72521c-8.35709,9.701 -5.65693,20.81889 -2.28924,28.1994l128.45827,-26.14551c2.71532,34.07207 6.57611,67.81866 9.94048,94.2617c-12.56244,3.67662 -36.01244,10.93625 -40.85281,15.43805c-6.66802,6.2016 -6.66797,26.22952 -6.66797,26.22952l52.57557,-4.27612c1.23827,8.63303 2.01266,13.67035 2.01266,13.67035l0.07683,0.45456l0.41484,0l0.96791,0l0.41483,0l0.07683,-0.45456c0,0 0.77292,-5.03741 2.01265,-13.67035l52.59094,4.27612c0,0 0.00006,-20.02792 -6.66798,-26.22952c-4.84218,-4.50354 -28.3093,-11.77963 -40.86818,-15.45499c3.35742,-26.36189 7.2114,-59.97935 9.92513,-93.94165l126.95265,25.84239c3.36765,-7.38051 6.08325,-18.4984 -2.27386,-28.1994c-6.19934,-7.19621 -82.45026,-39.10397 -121.45232,-55.11919c0.466,-17.60567 0.29471,-34.06301 -0.79893,-48.16614l0,-0.03367c-1.08395,-13.95511 -3.0667,-25.60925 -6.28384,-33.90654c-1.60968,-4.15152 -3.52888,-7.47695 -5.86903,-9.79826c-2.34131,-2.32241 -5.11617,-3.60274 -8.23509,-3.60274z",
            	"arrows_recycle": "m184.80963,97.86072l-33.85641,-5.99613l12.47342,-6.51318c6.86035,-3.58231 13.08063,-7.05022 13.8228,-7.70647c1.84358,-1.63009 -21.11545,-37.10833 -23.99486,-37.07896c-1.26575,0.01435 -10.08571,13.75221 -19.59988,30.53185c-9.58302,16.90081 -19.12026,29.77207 -21.38301,28.85762c-26.78106,-10.82179 -48.63238,-21.77106 -48.63238,-24.36867c0,-1.7743 8.40277,-17.60187 18.67293,-35.17241l18.67294,-31.94638l50.91241,0l50.91241,0l13.28955,21.01844l13.28966,21.01844l13.86403,-7.11266c9.61084,-4.93073 13.27039,-5.63875 11.92874,-2.30832c-11.81259,29.32658 -29.43884,63.52189 -32.57199,63.19018c-2.16919,-0.22948 -19.17931,-3.11553 -37.80035,-6.41334zm-157.90158,130.83841c-12.88431,-22.18782 -24.43164,-42.96199 -25.66062,-46.16496c-1.26128,-3.28671 2.41348,-15.03122 8.43637,-26.96236l10.67094,-21.13916l-10.90837,-6.44379c-14.51679,-8.57526 -9.12079,-11.21638 29.38814,-14.38432l30.43462,-2.50365l11.93788,31.54266c6.56593,17.34845 12.77805,33.78311 13.80486,36.52168c1.07085,2.85602 -4.05412,0.95576 -12.01902,-4.45653l-13.88588,-9.43578l-9.69341,18.71187c-5.33128,10.2917 -9.769,19.85884 -9.86144,21.26031c-0.09266,1.40147 16.26999,3.00525 36.36115,3.56384l36.52929,1.01558l2.3839,26.7207c1.3112,14.69647 2.11298,26.91713 1.78191,27.15706c-0.33105,0.23969 -17.62818,1.53915 -38.43802,2.88736l-37.83614,2.4512l-23.42616,-40.34174zm144.19484,39.20346c-22.11887,-33.38463 -22.50333,-30.90141 10.37228,-66.98763l21.10391,-23.16492l-2.24142,16.92821l-2.24152,16.92822l23.64932,0c13.0071,0 23.64944,-1.04019 23.64944,-2.31137c0,-1.27139 -7.21684,-15.55066 -16.03735,-31.73212c-8.82051,-16.18146 -16.00386,-30.77765 -15.96307,-32.436c0.09158,-3.71849 46.32753,-34.42394 48.52559,-32.22591c0.87094,0.87095 9.45139,16.38289 19.06769,34.47134l17.48441,32.8876l-23.52576,37.94727c-12.93936,20.87074 -25.37122,39.98283 -27.62622,42.47105c-2.25526,2.48822 -14.86537,5.52936 -28.02258,6.75787c-25.11388,2.34528 -24.43022,1.7804 -28.11249,23.22583c-0.64439,3.75308 -8.1586,-4.76279 -20.08223,-22.75946z",
            	"beverage": "m55.65598,297.84982c-28.13961,-15.0867 0.71402,-44.87836 24.17752,-35.2438c17.46051,-0.03983 34.92112,-0.01355 52.38168,-0.02121c0,-34.34088 0,-68.68181 0,-103.02271c-43.73869,-52.76227 -87.47738,-105.52454 -131.21606,-158.28681c98.99732,-0.36748 197.99556,-0.36708 296.99286,0c-42.95236,53.02298 -85.90472,106.04595 -128.85707,159.06893c0,34.08022 0,68.1604 0,102.24059c25.78079,0.22986 51.60571,-0.625 77.34869,0.87012c20.26866,5.44482 12.15504,38.73355 -7.54306,35.2244c-61.09291,-0.21259 -122.20532,0.38715 -183.28456,-0.8295zm127.03334,-186.51904c19.68919,-7.503 16.9212,-39.96898 -4.19951,-43.27924c-31.86026,-8.77637 -38.74004,46.49459 -5.25272,45.19753c3.23363,0.02124 6.51921,-0.43665 9.45222,-1.91829z",
            	"bicycle": "m69.04492,242.61508c10.78542,-0.13551 -10.27161,-0.62888 -14.0067,-0.90082c-31.20993,-0.75682 -57.11145,-31.7867 -53.74048,-62.58058c0.6826,-30.81444 30.36186,-57.88344 61.25282,-54.78261c8.04092,-3.41573 19.45538,7.85678 24.44781,2.47261c12.82323,-22.6207 25.24759,-45.47771 38.58752,-67.7975c11.3629,-1.62186 24.90015,-2.8755 35.9539,0.19863c5.11031,8.04987 -4.18097,10.24141 -9.97878,8.99869c-6.4711,0 -12.9422,0 -19.41331,0c-4.68463,8.54676 -9.49177,17.02541 -14.27853,25.51514c27.18877,0 54.37757,0 81.56634,0c0.60545,-2.89218 7.47321,-9.12369 1.38461,-8.44633c-11.06171,-1.39418 -4.14218,-14.17861 4.04941,-10.54169c11.49847,0.42252 23.4034,-1.13349 34.55679,1.17167c5.95799,11.9574 -11.26917,9.39215 -18.65384,9.51889c-5.46606,-1.78406 -6.59882,3.68022 -8.76302,7.4192c-8.77467,8.98817 -3.32066,18.46121 2.57677,27.22322c2.16318,3.98602 3.70422,9.51816 8.96812,5.7937c10.73436,-2.35877 22.43681,-2.44432 33.11809,0.31375c22.31958,6.63104 40.2153,27.32498 41.71356,50.76672c1.35196,14.39882 -1.7262,29.2406 -10.68872,40.85638c-10.3952,14.88928 -27.26529,23.04211 -45.01289,24.69595m-13.91446,0.14534c-16.17995,-4.15208 -31.09747,-13.81174 -39.74602,-28.39511c-5.65977,-7.28935 -6.39555,-18.57542 -9.40382,-25.8875c-7.93416,-0.10381 -15.86833,-0.20763 -23.80251,-0.31143c-16.06972,-25.85139 -30.2338,-52.8877 -45.73496,-79.09947c-3.0216,8.9735 -20.19933,21.18202 -10.71458,29.44228c23.80356,19.97299 26.97348,58.9857 6.61392,82.50262c-9.33031,10.45926 -22.27345,17.66695 -35.57853,21.74126m1.02195,-14.22214c25.6753,-5.59119 42.08234,-35.19554 33.20155,-59.88542c-2.74454,-8.04132 -10.29613,-20.88658 -16.96593,-21.01822c-7.10979,12.27542 -13.50588,24.99036 -21.29804,36.85445c-17.11086,3.00977 -1.43426,-17.82442 2.18629,-24.90399c3.88173,-8.63774 17.97784,-22.6107 0.22043,-22.40381c-12.4663,-1.24055 -25.71457,-0.04088 -35.79932,8.23351c-21.64245,14.32193 -25.73868,47.07928 -9.34899,66.82591c11.09536,14.38573 30.25585,20.50179 47.804,16.29758zm179.64028,-0.00356c21.91476,-5.14897 37.68491,-27.67265 34.8483,-50.02701c-1.50024,-24.84305 -26.27582,-44.93475 -50.90707,-41.59564c-18.45729,-1.74684 -0.78658,15.19781 1.85167,23.43547c2.5099,8.7469 16.33638,19.49011 8.6171,28.02017c-17.31352,0.72531 -35.05154,-0.50934 -52.31752,1.23642c3.1011,22.89496 24.76817,41.83401 48.14848,40.08203c3.28111,-0.02676 6.57803,-0.30434 9.75905,-1.15144zm-70.7294,-51.16617c2.08536,-17.91364 12.23944,-34.20847 27.04826,-44.4043c0.87492,-4.39421 -8.09195,-24.63332 -11.37527,-10.5231c-10.13445,18.42084 -20.32248,36.81699 -30.14639,55.40483c4.70622,0.11383 9.98186,0.93559 14.4734,-0.47743zm52.9005,-0.88846c-5.84201,-10.98254 -11.81374,-21.89917 -17.91992,-32.73703c-12.24919,6.45949 -20.3076,20.12949 -22.21249,33.77383c13.37456,-0.2851 26.97348,0.69884 40.16722,-0.71251l-0.03476,-0.3243l0,0zm-57.29515,-39.61388c5.7617,-10.63408 11.63275,-21.21213 17.21649,-31.94065c-24.2798,-0.5443 -48.61469,-0.66353 -72.88629,0.11504c12.46696,21.42642 23.73018,43.6828 37.36159,64.35614c6.59126,-10.13849 12.18927,-21.81091 18.30821,-32.53052z",
            	"bulb": "m145.62592,297.06863c-17.67376,-4.68848 -27.91267,-23.96384 -26.70493,-41.44981c-0.45245,-22.83995 1.65483,-46.8734 -9.26703,-67.87447c-6.22532,-15.68024 -16.83022,-29.52451 -21.2558,-45.86502c-5.50718,-25.3512 1.29536,-54.08422 21.79177,-71.10346c23.11512,-19.80671 60.02821,-22.38829 85.47337,-5.55379c17.94666,12.36192 30.89558,32.75098 30.41452,55.00024c2.10583,16.62513 -4.45561,32.2625 -12.17442,46.55451c-5.53021,11.50751 -11.98869,22.76817 -17.00821,34.40399c-1.32327,23.85774 -0.56435,47.93431 -4.15358,71.58684c-5.97899,18.328 -28.51152,30.78922 -47.11569,24.30096zm46.67903,-42.65804c-10.48888,-5.65382 -25.56134,-1.97798 -37.75313,-3.19516c-9.95908,1.99197 -27.6553,-4.08569 -32.94975,5.03105c12.10807,4.73648 26.33759,1.18594 39.22778,1.96957c10.31409,-0.9906 22.18068,0.93939 31.4751,-3.80547zm-0.78554,-10.63885c1.54361,-14.36404 -21.1709,-7.03433 -30.39838,-9.17262c-12.21318,2.47205 -31.64935,-5.2915 -39.33047,5.74487c4.5516,11.09071 24.85052,3.29074 35.50985,5.75148c11.3671,-0.4028 23.15991,0.40741 34.21899,-2.32373zm0.14142,-25.16705c2.9986,-27.98152 20.10725,-51.27968 30.01392,-76.87566c8.14517,-30.64574 -7.9861,-65.65708 -37.19159,-78.52086c-29.06958,-14.40719 -67.79967,-3.52343 -84.22785,24.70715c-15.82867,23.31919 -12.80788,55.00346 2.66266,77.68118c11.03862,19.81914 19.84574,42.09169 18.41109,65.15663c22.91359,0 45.82719,0 68.7408,0c0.53035,-4.04942 1.06052,-8.09911 1.59097,-12.14844zm-50.72687,-39.64223c-9.07846,-15.78525 -18.39817,-31.69214 -24.71996,-48.79948c5.68369,-7.35728 7.33711,-15.55251 9.10273,-24.19695c15.95243,-3.13345 -2.03056,18.17914 13.0308,18.65942c13.36925,5.81685 7.50436,-28.2252 18.61179,-15.95465c-7.9733,13.46684 15.66168,26.8638 16.5291,7.59886c-1.14578,-14.54594 14.28561,-11.82063 8.26923,1.37553c0.49657,6.78834 11.54893,8.73447 11.73816,14.19425c-7.9566,17.25854 -14.87259,35.07664 -24.29411,51.59875c-2.12068,-6.39691 8.34081,-22.42969 11.68367,-31.84341c6.45049,-8.13736 11.99347,-30.06687 -4.82256,-27.07765c-9.75478,15.21495 -22.87704,-9.5907 -32.42833,4.99055c-8.10805,2.41856 -20.86024,-14.04196 -23.2123,1.78514c6.10664,18.79854 18.8132,34.81967 25.46149,53.42416c-2.25594,-1.33008 -3.54053,-3.66359 -4.94971,-5.75453zm-12.74261,-68.89435c-4.41462,-2.15457 1.86072,11.45412 -0.00009,0l0.00009,0zm26.38611,1.60738c-5.73064,-9.69846 -2.6572,11.76727 0,0zm25.57564,0c-5.73064,-9.69846 -2.65724,11.76727 0,0zm-119.06653,-71.66327c-10.12879,-10.27977 -21.32492,-19.92564 -30.13364,-31.25677c22.0061,18.21614 42.14793,38.73141 61.97966,59.29806c5.2662,7.2365 -9.18723,-6.75771 -11.87724,-9.10345c-6.7307,-6.23349 -13.37324,-12.56173 -19.96879,-18.93784zm156.40887,29.39093c17.12013,-21.33164 33.0936,-43.69485 51.55162,-63.89019c-3.09076,8.6951 -13.04016,19.09942 -19.29597,28.05458c-10.44716,12.99739 -20.21251,26.73974 -32.1591,38.39317c-1.49106,1.57605 -3.71758,-2.15694 -0.09639,-2.55756l-0.00015,0zm-37.0826,-20.23703c5.91515,-16.91904 14.49518,-33.02397 24.06741,-48.16613c-0.22247,8.40011 -10.37453,24.32112 -15.25424,34.73693c-2.76042,4.19142 -5.08876,10.87586 -8.81317,13.4292zm-75.7492,-21.69804c-4.12045,-6.01025 -16.5241,-20.00493 -14.20815,-21.91343c11.95872,13.25933 24.12167,26.94502 32.71223,42.62532c-7.31573,-5.61084 -12.5797,-13.71475 -18.50409,-20.71189zm47.35616,-4.73013c-0.83392,-5.64444 1.75482,-32.58975 3.19298,-14.29333c0.00511,11.46356 1.20168,24.36872 -1.98915,34.80271c-1.36639,-6.70823 -1.03488,-13.69191 -1.20383,-20.50938z",
            	"careful": "m1,1c2.24496,29.70385 10.76853,56.9168 23.28125,80.81181l23.28125,-36.31875l-6.72569,-2.48334l-9.3125,-3.31111l4.86319,-8.48472l17.07292,-30.21389l-52.46042,0zm71.49931,0l-16.86597,29.8l7.24306,2.58681l9.82986,3.51805l-5.5875,8.69167l-33.525,52.46041c24.12122,36.61169 59.3948,61.88649 99.85071,67.36043l0,107.09373l-66.22223,0l0,26.48889l165.55556,0l0,-26.48889l-66.22223,0l0,-107.09373c70.57336,-9.43671 125.94405,-78.40826 132.44444,-164.41737l-226.50069,0z",
            	"cart_2": "m0.99397,46.01759l0,36.55115l57.8652,0l28.28396,104.41602l159.23965,0l52.21094,-125.30758l-237.55595,0l0,-15.65959zm53.21769,184.47131c0,12.97459 -10.51804,23.49266 -23.49261,23.49266c-12.97436,0 -23.49244,-10.51807 -23.49244,-23.49266c0,-12.97456 10.51808,-23.49228 23.49244,-23.49228c12.97457,0 23.49261,10.51772 23.49261,23.49228zm148.8,0c0,12.97459 -10.51817,23.49266 -23.4928,23.49266c-12.97446,0 -23.49258,-10.51807 -23.49258,-23.49266c0,-12.97456 10.51813,-23.49228 23.49258,-23.49228c12.97462,0 23.4928,10.51772 23.4928,23.49228z",
            	"coat_hanger": "m24.72351,255.83636c-16.41191,-2.33228 -27.73119,-20.33411 -22.38228,-36.1741c3.30628,-15.35616 20.22842,-19.55692 31.44893,-27.66121c35.64961,-21.14748 71.50229,-41.94997 107.26245,-62.9095c1.87845,-10.22399 -5.70195,-16.59309 -13.7997,-21.39916c-16.20296,-12.86633 -15.31998,-38.50921 -1.59858,-52.83282c16.08138,-18.88601 49.91904,-12.94907 59.95362,9.38958c9.73412,9.92804 -0.18503,34.24562 -13.8385,22.54042c-1.42418,-13.2976 -12.78993,-28.89017 -27.7881,-20.44456c-15.64833,8.98737 -6.40202,29.9363 8.0513,34.15588c9.75604,6.53233 8.45554,18.64742 8.97318,28.8608c42.85536,25.5808 86.25137,50.28574 128.51941,76.82744c16.8277,13.06401 9.90717,44.50819 -11.28448,48.76941c-16.06598,2.31227 -32.54915,0.68361 -48.77617,1.31593c-68.2437,0.05267 -136.50528,0.51715 -204.74109,-0.43811zm248.30083,-21.61086c12.28671,-12.24121 -10.69217,-18.82494 -18.26138,-24.82121c-34.85875,-20.46407 -69.60597,-41.14412 -104.87569,-60.89026c-41.32713,23.46544 -82.56062,47.16515 -123.11867,71.93832c-8.58788,3.43668 -2.61073,17.17589 5.37386,15.06004c78.53457,-0.16875 157.07672,0.41405 235.60527,-0.42499c1.73874,-0.22235 3.69772,0.07922 5.27661,-0.86191z",
            	"document": "m58.5474,213.36578c-0.05885,-70.73299 -0.11767,-141.466 -0.17652,-212.19898c53.12881,0.81297 106.48294,-1.9259 159.43185,2.08758c25.82027,9.16723 22.09921,66.23434 21.6799,108.85904c-1.13266,32.14426 15.08594,95.86641 -27.03937,105.4444c-21.00172,0.00113 -21.08437,8.97424 -18.9407,25.20605c2.4877,24.31731 -4.73431,78.79115 -39.2352,44.26363l-95.71997,-73.66171zm162.59977,-23.1226c0.08537,-63.57991 -0.62674,-117.82272 -4.15146,-159.71279c-31.317,-14.24883 -73.63496,-7.31453 -109.06839,-7.53106c-13.9288,6.77649 33.0414,29.27771 43.00333,38.00857c37.81908,18.77271 49.10266,52.9127 42.57201,91.49594c0,15.00871 0,30.01746 0,45.02617c6.97418,-0.00844 21.40269,-3.46487 27.64452,-7.28687z",
            	"gift": "m160.05605,46.22016c5.12212,-9.27578 14.49356,-21.35899 -1.60765,-24.27403c-4.48517,-2.30248 -8.9718,-6.3767 -13.45119,-1.83809c-9.96648,3.93713 -18.60622,9.44305 -8.12337,19.74747c4.64861,6.65461 8.87668,21.1743 14.1424,22.77341c3.14276,-5.39672 6.08684,-10.9068 9.03981,-16.40877zm-22.01753,25.61161c-9.14935,-16.32981 -16.51206,-33.84869 -27.71044,-48.91321c-13.62003,-14.54198 -40.45641,-8.05964 -46.55505,10.6975c-8.10131,18.54466 9.37865,40.68638 29.16686,38.36525c15.01618,0.2515 30.1178,0.92769 45.09863,-0.14954zm76.02873,0.55127c19.45964,-2.60851 30.65027,-27.10658 19.57069,-43.3727c-9.81836,-17.35883 -38.06532,-17.96398 -47.9265,-0.32358c-8.53876,14.26143 -15.94994,29.16402 -23.78549,43.81643c17.32285,0.99046 34.80862,0.75943 52.1413,-0.12016zm32.22711,20.88692c6.6339,-5.83724 32.32317,-12.71885 12.86739,-18.26252c-4.81963,-1.36767 -10.43866,-7.64191 -14.77026,-5.92492c-9.40594,11.6946 -23.86844,18.55521 -38.9686,17.83661c-2.95601,0.97167 -18.03316,-1.47781 -13.95946,1.30438c10.65262,6.07415 21.03697,12.6707 32.05554,18.0621c7.71764,-4.11029 15.20781,-8.63805 22.77539,-13.01566zm-151.5623,3.30481c5.67309,-3.30481 11.34617,-6.60963 17.01924,-9.91444c-17.34076,-0.86164 -37.18572,1.63783 -50.29088,-12.30952c-3.69488,-4.13725 -7.23799,-8.87396 -12.35892,-3.66532c-6.13381,4.22582 -25.00066,8.5563 -10.4742,13.71487c12.64928,7.47227 25.20959,15.12685 38.17151,22.0463c6.1765,-2.89648 11.99872,-6.5165 17.93326,-9.87188zm83.14041,36.87479c7.35168,-5.90694 25.15858,-11.53461 25.75348,-17.87329c-16.62141,-9.56481 -32.75868,-20.2142 -50.14796,-28.29874c-5.98431,-2.2704 -10.83618,1.22306 -15.65312,4.25735c-14.24385,8.47255 -28.83041,16.41927 -42.61077,25.63122c18.02219,11.14435 36.26101,21.95917 54.67725,32.43958c9.39328,-5.26857 18.66512,-10.75249 27.98112,-16.15611zm73.75499,18.43738c7.62694,-4.81227 15.25389,-9.62453 22.88087,-14.43683c-0.06244,-16.11785 0.19498,-32.24243 -0.24597,-48.35465c-15.39334,8.58929 -30.56776,17.60745 -45.48607,26.99785c-1.63162,16.62392 -0.80414,33.52276 -0.44952,50.23046c7.87193,-4.6378 15.55261,-9.59819 23.30069,-14.43683zm-178.87355,-10.1545c0.77462,-13.73913 2.44441,-29.40098 -14.12444,-33.4709c-10.46331,-4.88007 -24.96637,-17.38377 -33.02728,-17.25835c-0.25115,15.4809 -0.11823,30.96465 -0.14541,46.44691c15.45605,9.64543 30.63783,19.75522 46.42746,28.8476c1.53102,-7.98021 0.53017,-16.43968 0.86967,-24.56526zm110.68056,53.19621c9.14198,-5.77156 18.28395,-11.54312 27.42593,-17.31468c-0.04233,-16.63979 0.64572,-33.30351 -0.10625,-49.92543c-10.04709,2.88116 -21.5385,11.78691 -32.12366,17.31859c-7.92599,4.64276 -15.85202,9.28555 -23.77802,13.92833c0.1563,17.76723 -0.42728,35.56691 0.57802,53.30783c9.47523,-5.53633 18.69861,-11.49898 28.00397,-17.31464zm-38.32249,-9.33929c0,-8.88464 0,-17.76929 0,-26.6539c-18.35233,-10.72505 -36.64592,-21.55176 -55.0698,-32.1535c-1.01884,16.98993 -0.43661,34.04375 -0.59025,51.06303c18.34824,11.48767 36.50635,23.28906 55.08669,34.3983c0.72301,-8.85316 0.45901,-17.77696 0.57336,-26.65393zm106.97165,35.71599c7.47931,-4.98045 14.95862,-9.96091 22.43796,-14.94136c-0.31207,-15.79037 0.77045,-31.79442 -0.80399,-47.41055c-15.55414,8.87424 -30.56544,18.97736 -45.84236,28.4509c0.367,16.33781 -0.75356,32.86267 0.93411,49.06088c7.89078,-4.84329 15.54118,-10.07089 23.27428,-15.15987zm-179.49486,-8.85234c-0.06088,-8.2791 -0.12183,-16.55821 -0.18272,-24.8373c-15.452,-9.6673 -30.70933,-19.65799 -46.39347,-28.94519c-0.98154,15.8615 -0.42208,31.78482 -0.5697,47.67464c15.58812,10.31845 31.00088,20.91034 46.79801,30.90671c0.60526,-8.24165 0.30488,-16.53903 0.34788,-24.79886zm111.24078,54.40674c9.07924,-6.02985 18.15848,-12.05969 27.23772,-18.08952c-0.02109,-16.81348 0.32051,-33.6342 -0.13127,-50.44193c-18.48172,11.39566 -36.8398,23.00107 -55.0625,34.8063c-2.05943,16.23506 -0.72412,32.97392 -0.72713,49.38643c5.65578,3.44495 20.11658,-11.82266 28.68318,-15.66129zm-38.71758,-7.19754c-1.09789,-11.59346 4.72185,-27.9119 -10.01297,-32.40633c-14.85952,-9.4117 -29.65931,-18.92612 -44.71436,-28.02278c-2.19433,15.91664 0.10065,32.49809 -1.58499,48.60945c18.05386,13.0511 36.5795,25.52769 55.44263,37.37666c1.51289,-8.30347 0.57193,-17.09903 0.86969,-25.55701zm-63.13967,-3.06479c-21.97403,-14.66875 -43.94805,-29.33749 -65.92206,-44.00621c0.02491,-45.26978 -0.60055,-90.55044 0.20291,-135.81172c11.00354,-6.78941 22.71307,-12.35508 34.0373,-18.58421c-7.3143,-20.93821 3.23879,-46.38257 24.44761,-54.21996c17.77897,-7.29492 39.21008,-0.71179 50.54502,14.64528c8.23304,-4.22243 16.4661,-8.44486 24.69915,-12.66729c8.27725,4.26063 16.55455,8.52126 24.83179,12.78188c11.86055,-14.06895 32.18082,-22.09776 49.79013,-14.21312c21.13718,7.42951 32.65843,32.817 25.07826,53.72234c11.40756,6.44052 23.81024,11.47337 34.26968,19.33245c0.46368,45.00166 0.00415,90.00995 -0.0379,135.01437c-43.72298,28.93527 -86.73743,58.97507 -131.17026,86.81018c-12.92032,-0.00348 -24.07242,-14.03217 -36.06157,-19.72c-11.59096,-7.66315 -23.15266,-15.37048 -34.71011,-23.08398z",
            	"globe": "m33.11721,223.16701l233.44794,0.08913l-7.57544,11.19618l-218.20762,-0.26738l-7.66489,-11.01793zm1.60428,-148.93458l230.3285,-0.26738l6.68439,11.48557l-243.78651,0.08913l6.77362,-11.30732zm-22.73061,74.62911l275.61135,-0.26738l-0.35626,11.48558l-275.07684,-0.17825l-0.17825,-11.03995zm275.8395,1.06528c0,76.03723 -61.86858,137.89429 -137.92784,137.89429c-76.0264,0 -137.88345,-61.86824 -137.88345,-137.89429c0,-76.02642 61.86823,-137.88347 137.88345,-137.88347c76.05927,-0.01117 137.92784,61.85705 137.92784,137.88347zm-137.91701,-148.93459c-82.09525,0 -148.90104,66.8058 -148.90104,148.92339c0,82.12878 66.8058,148.93457 148.90104,148.93457c82.13995,0 148.93459,-66.80579 148.93459,-148.93457c0,-82.11759 -66.79463,-148.92339 -148.93459,-148.92339zm41.78581,148.93459c0,81.25211 -22.01353,137.89429 -41.78581,137.89429c-19.74991,0 -41.76309,-56.64218 -41.76309,-137.89429c0,-81.27448 22.00233,-137.88347 41.76309,-137.88347c19.76112,-0.01117 41.78581,56.60899 41.78581,137.88347zm-41.78581,-148.93459c-34.29579,0 -52.80304,76.73613 -52.80304,148.92339c0,72.2093 18.50725,148.93457 52.80304,148.93457c34.29614,0 52.83693,-76.73643 52.83693,-148.93457c-0.01118,-72.18726 -18.54079,-148.92339 -52.83693,-148.92339zm97.86217,148.93459c0,76.03723 -43.91597,137.89429 -97.86217,137.89429c-53.93499,0 -97.82862,-61.86824 -97.82862,-137.89429c0,-76.02642 43.89363,-137.88347 97.82862,-137.88347c53.9462,-0.01117 97.86217,61.85705 97.86217,137.88347zm-97.86217,-148.93459c-60.01537,0 -108.86856,66.8058 -108.86856,148.92339c0,82.12878 48.85319,148.93457 108.86856,148.93457c60.03773,0 108.88008,-66.80579 108.88008,-148.93457c0,-82.11759 -48.84235,-148.92339 -108.88008,-148.92339z",
            	"handle_care": "m163.84105,276.49316c0,-16.9874 0,-26.73244 0,-43.71985c0,-23.90417 32.58113,-58.75496 53.7084,-83.18626c5.78004,-5.69962 16.17278,-7.90976 21.66074,-2.49817c4.87456,4.80672 4.50662,16.61058 0.6333,22.48335c-7.09361,10.6588 -14.18712,21.31755 -21.28073,31.97632c-3.55533,6.07231 5.16899,10.98973 10.38702,4.49673c27.24385,-36.8876 34.70512,-44.36621 34.70512,-59.20624c0,-30.31093 0,-29.89459 0,-60.20548c0,-8.67812 6.34686,-16.98743 14.45584,-16.98743c7.71677,0 14.4277,7.99146 14.4277,15.52406c0,48.96381 0,67.40421 0,116.36799c0,15.08096 -47.62817,60.69775 -47.62817,81.9498c0,4.99628 0,9.99255 0,14.98889c-27.02963,0 -54.05942,0 -81.08914,0c0.00577,-7.32791 0.01431,-14.65582 0.02008,-21.9837zm-28.64365,0c0,-16.98746 0,-26.73244 0,-43.71985c0,-23.90422 -32.58104,-58.75496 -53.70833,-83.18626c-5.78003,-5.69962 -16.17277,-7.90976 -21.66072,-2.49817c-4.87465,4.80672 -4.50671,16.61058 -0.6334,22.48335c7.09362,10.6588 14.18714,21.31755 21.28075,31.97632c3.55531,6.07231 -5.16901,10.98973 -10.38705,4.49673c-27.24375,-36.8876 -34.70512,-44.36621 -34.70512,-59.20624c0,-30.31093 0,-29.89459 0,-60.20548c0,-8.67812 -6.34683,-16.98743 -14.45581,-16.98743c-7.71679,0 -14.42771,7.99146 -14.42771,15.52406c0,48.96381 0,67.40417 0,116.36799c0,15.08092 47.62818,60.69775 47.62818,81.9498c0,4.99628 0,9.99255 0,14.98889c27.02971,0 54.05941,0 81.08913,0c-0.00577,-7.32791 -0.01433,-14.65582 -0.02,-21.9837zm-42.88594,-214.71311l48.62654,36.4699l0,57.20769l-48.62654,-36.46989l0,-57.20769zm114.41537,0l-48.62654,36.4699l0,57.20769l48.62654,-36.46989l0,-57.20769zm-114.41537,-17.87738l57.20769,-42.90577l57.20769,42.90575l-57.20769,42.90577l-57.20769,-42.90574z",
            	"headphones": "m262.24301,276.32291c0,3.88873 -3.15054,7.03928 -7.03929,7.03928h-45.07771c-3.88873,0 -7.03928,-3.15054 -7.03928,-7.03928v-95.76917c0,-3.88843 3.15054,-7.03928 7.03928,-7.03928h45.07771c3.88875,0 7.03929,3.15085 7.03929,7.03928v95.76917zm-166.89014,0c0,3.88873 -3.15116,7.03928 -7.03929,7.03928h-45.07832c-3.88813,0 -7.03928,-3.15054 -7.03928,-7.03928v-95.76917c0,-3.88843 3.15115,-7.03928 7.03928,-7.03928h45.07832c3.88813,0 7.03929,3.15085 7.03929,7.03928v95.76917zm54.45998,-259.68797c-81.57039,0 -147.78664,65.61743 -148.80356,146.9389h25.82451c0.83739,-67.21309 55.56696,-121.44394 122.97905,-121.44394c67.41208,0 122.14168,54.23085 122.96928,121.44394h25.82391c-1.00656,-81.32147 -67.24229,-146.9389 -148.7932,-146.9389zm-148.59421,221.43015h25.35591v-74.64095h-25.35591v74.64095zm271.35417,-74.651v74.64127h26.29248v-74.64127h-26.29248z",
            	"hippie": "m126.57668,297.48117c-48.56062,-7.34268 -92.01251,-39.97321 -112.69057,-84.50511c-24.94552,-52.66977 -15.84542,-119.75688 23.8283,-162.85019c38.79855,-45.4432 106.09586,-61.79809 161.96931,-41.65034c58.35461,19.93039 100.52045,79.22475 99.29117,141.02438c1.2113,60.65196 -39.29578,118.84778 -96.0322,139.80408c-24.24886,9.49326 -50.68127,11.39462 -76.36598,8.17719zm8.7399,-92.17508c-0.08942,-7.31126 -0.17882,-14.62254 -0.26825,-21.93381c-20.52584,20.53458 -41.05166,41.06917 -61.57751,61.60378c17.64819,14.10371 39.22342,22.83827 61.57751,25.75548c0.29533,-21.80725 0.53749,-43.61626 0.26825,-65.42545zm48.5128,61.24323c14.52351,-4.28751 28.46933,-11.11562 40.24649,-20.66127c-9.32077,-13.4882 -22.68102,-24.26074 -33.95442,-36.33005c-8.88936,-8.88591 -17.77875,-17.77179 -26.66811,-26.6577c0,29.29706 0,58.59412 0,87.89117c6.88846,-0.91629 13.69307,-2.3291 20.37604,-4.24216zm-48.28273,-180.43147c0,-19.30317 0,-38.60634 0,-57.90951c-51.85052,5.59066 -97.82003,47.52976 -105.87597,99.4242c-5.92087,34.10992 2.2166,70.93011 24.35439,97.89821c27.17386,-27.16779 54.34772,-54.33559 81.52158,-81.50337c0,-19.30317 0,-38.60635 0,-57.90952zm116.00552,130.27736c29.94273,-44.68748 25.57903,-109.31516 -11.64191,-148.59046c-19.65836,-21.7875 -47.20416,-36.42821 -76.45694,-39.59642c0,38.6003 0,77.20061 0,115.80091c26.61343,26.23764 52.37032,53.38443 79.88922,78.67319c3.85712,4.56624 5.79269,-4.75352 8.20963,-6.28722z",
            	"house": "m21.15257,177.09065c0,-27.41002 0,-54.82008 0,-82.2301c-6.68203,1.86892 -13.14774,5.87402 -20.15257,5.63974c7.71781,-7.14793 21.82513,-9.41176 32.30949,-14.09891c45.79581,-16.133 91.60535,-32.4141 138.27387,-45.86145c13.50775,-0.66366 26.30505,7.15431 39.33269,10.42321c29.47861,10.57565 59.53784,19.97857 88.07501,32.90813c-6.51614,8.73929 -28.58875,5.06429 -25.73117,21.53019c-2.00067,45.62614 -0.83817,91.32375 -1.14786,136.98345c-18.99269,5.63184 -37.89932,11.84375 -56.94553,17.1149c-64.67134,-0.05981 -129.3426,-0.11945 -194.01394,-0.17902c0,-27.40996 0,-54.82036 0,-82.23004l0,-0.00011zm26.14161,31.25392c0,-16.12061 0,-32.24124 0,-48.36197c16.55636,0 33.11272,0 49.66908,0c0,32.24136 0,64.4827 0,96.724c38.34103,0 76.68204,0 115.02308,0c0,-54.026 0,-108.05197 0,-162.07799c-62.73987,0 -125.47972,0 -188.2196,0c0,54.02602 0,108.05199 0,162.07799c7.84248,0 15.68497,0 23.52745,0c0,-16.12067 0,-32.2413 0,-48.36203zm99.33812,-27.44867c0,-6.97108 0,-13.94214 0,-20.9133c13.07082,0 26.14162,0 39.21243,0c0,13.94221 0,27.88445 0,41.82658c-13.07082,0 -26.14162,0 -39.21243,0c0,-6.97108 0,-13.94214 0,-20.91328zm33.9841,1.30707c0,-5.66399 0,-11.32797 0,-16.99203c-9.58527,0 -19.17052,0 -28.75577,0c0,11.32805 0,22.65611 0,33.98409c9.58525,0 19.1705,0 28.75577,0c0,-5.66399 0,-11.32797 0,-16.99205zm-86.2673,28.75577c0,-15.24922 0,-30.4985 0,-45.7478c-14.8136,0 -29.62717,0 -44.44075,0c0.28782,29.49963 -0.86703,59.06848 1.39272,88.50464c7.32339,4.61035 18.6494,2.34561 27.75799,2.99103c5.09669,0 10.19335,0 15.29005,0c0,-15.24927 0,-30.49857 0,-45.74786zm150.9678,34.15282c7.18895,-2.37781 14.3779,-4.75565 21.56683,-7.13347c-0.32449,-45.85204 0.98636,-91.75861 -1.60782,-137.55795c-6.33264,-8.04385 -23.37172,10.13716 -33.97191,1.44468c-8.98801,-5.39767 -16.23575,-5.6667 -13.48424,6.8141c-0.6041,45.64783 -1.40456,91.35368 0.49997,136.97478c-2.32346,17.3029 19.61401,-1.57974 26.99716,-0.54214zm17.56241,-152.88132c5.81549,-2.74289 29.11139,-6.01917 13.28293,-11.03122c-31.02148,-13.18587 -62.53795,-25.50377 -94.87346,-35.06522c-13.26736,-1.87402 -25.71394,5.23786 -38.28336,8.42139c-7.2287,0.92986 -14.03493,6.61982 -2.78639,8.23806c33.43919,12.5762 66.81393,25.55496 101.06847,35.75281c7.2216,-1.29286 14.41238,-4.37938 21.59181,-6.31581zm-104.48328,-16.97943c-12.19943,-4.63456 -24.39883,-9.26913 -36.59824,-13.9037c-25.6514,8.95505 -51.55341,17.25012 -76.89988,27.03273c49.99152,1.67495 100.06706,0.58957 150.09639,0.77469c-12.19943,-4.6346 -24.39885,-9.26915 -36.59827,-13.90372z",
            	"keep_up": "m79,1l-21.3,35.5l-21.3,35.5l19.88,0l0,184.60001l45.44,0l0,-184.60001l19.88,0l-21.3,-35.5l-21.3,-35.5zm142.00002,0l-21.30002,35.5l-21.29999,35.5l19.88,0l0,184.60001l45.43999,0l0,-184.60001l19.88,0l-21.3,-35.5l-21.29999,-35.5zm-213.00002,269.80002l0,28.39999l284,0l0,-28.39999l-284,0z",
            	"new_born": "m137.15491,103.06109c-14.77614,-3.80736 -27.4188,-14.09921 -33.90258,-27.59863c-3.9915,-8.31045 -4.89106,-12.46352 -4.90182,-22.63058c-0.01103,-10.43683 0.90331,-14.55167 5.14873,-23.17045c6.5289,-13.25453 17.58841,-22.50933 32.02396,-26.7982c7.85696,-2.33434 19.44511,-2.4919 27.41292,-0.37272c10.68681,2.84234 20.56245,9.23503 27.27812,17.65763c11.44406,14.35284 14.51639,32.93808 8.33334,50.41059c-2.37558,6.7131 -5.38321,11.61306 -10.48294,17.07855c-7.51927,8.05854 -15.46124,12.82613 -25.72244,15.44125c-6.92987,1.76612 -18.2959,1.75824 -25.18729,-0.01743zm46.99359,76.71874c0,-11.66681 -0.15546,-21.21237 -0.34546,-21.21237c-0.55267,0 -23.15134,19.0079 -23.15134,19.47273c0,0.59862 22.40039,22.95203 23.00027,22.95203c0.2731,0 0.49652,-9.54558 0.49652,-21.21239zm-8.12837,89.58151c3.13896,-3.60342 5.94908,-9.57928 7.16283,-15.23215c0.75183,-3.5016 0.8862,-7.28795 0.60019,-16.91275l-0.36856,-12.40109l-33.73602,-33.39706c-29.396,-29.10065 -33.79212,-33.21501 -34.172,-31.98175c-0.2398,0.77843 -0.30579,13.66176 -0.14668,28.62961l0.28934,27.21429l28.53863,28.41072c15.69623,15.6259 28.73599,28.41826 28.97726,28.42744c0.24127,0.00919 1.52603,-1.23157 2.85503,-2.75726zm-21.12221,12.22665c0.5526,-0.21207 -6.52711,-7.73318 -19.03375,-20.22046c-15.75389,-15.72952 -20.00713,-19.64691 -20.36126,-18.75351c-0.82094,2.07094 -0.552,9.37703 0.49458,13.43619c3.03795,11.78281 12.81967,21.70416 24.49419,24.84378c3.43257,0.92316 12.65175,1.36725 14.40625,0.694zm-14.69553,16.96454c-19.19916,-3.63824 -34.22623,-17.37338 -40.35254,-36.88327l-1.52992,-4.87216l0,-51.56241c0,-48.09848 0.08022,-51.82547 1.1941,-55.47855c5.75462,-18.87271 18.67331,-31.86444 36.79293,-37.00092c7.28899,-2.06625 19.90268,-2.05429 27.24492,0.02586c17.6541,5.00159 31.24332,18.57871 36.39166,36.35935l1.50121,5.18457l0,50.90973l0,50.90971l-1.50121,5.18457c-2.97653,10.27997 -9.29736,19.97147 -17.27997,26.49481c-4.88281,3.99017 -14.22415,8.68716 -20.0538,10.08334c-6.28586,1.50537 -16.34073,1.79504 -22.40738,0.64539z",
            	"officer_2": "m144.87212,278.09424c0,-7.03476 0,-14.06952 0,-21.10431c34.12148,-0.13669 68.24295,-0.27335 102.36444,-0.41003c0,-6.63841 0,-13.27682 0,-19.91524c-26.94872,-0.26555 -53.89742,-0.53107 -80.84613,-0.79662c30.82893,-41.42374 61.65785,-82.8475 92.48683,-124.27124c13.28885,-1.73074 25.24835,9.13577 26.16702,22.30508c1.37796,55.08076 0.61356,110.19873 0.82785,165.29666c-46.99997,0 -94,0 -141.00003,0c0.00002,-7.03473 0,-14.06952 0.00002,-21.10431zm-0.19199,-87.83214c-0.06876,-13.74153 -0.13754,-27.48306 -0.20631,-41.22459c-14.64618,18.8075 -27.62093,39.06267 -43.91019,56.48129c-14.42976,9.56055 -27.65941,-6.01018 -38.58159,-13.69254c-15.26907,-12.11603 -30.9411,-23.83286 -45.24117,-37.08727c-8.74276,-13.13181 5.83314,-31.80238 20.70509,-26.84245c13.32168,6.5739 23.96796,17.78835 36.01906,26.44797c7.16664,7.87663 15.75377,12.89487 20.74445,-0.10861c10.61151,-12.96709 19.11472,-28.05023 32.18712,-38.75249c13.16731,-7.35264 29.1156,-2.93422 43.48628,-4.27982c21.93321,0.06611 43.87927,-0.19524 65.80286,0.42785c-29.83961,40.18141 -59.99303,80.13989 -90.45013,119.85524c-0.51442,-13.73006 -0.41658,-27.48491 -0.55545,-41.22459zm49.58183,-93.47518c-17.8813,-2.9394 -31.59131,-19.77306 -31.46613,-37.7664c-6.28482,-0.26553 -12.56969,-0.53107 -18.85452,-0.79661c5.37549,-6.77119 10.75095,-13.54238 16.12643,-20.31357c26.79919,0 53.59842,0 80.39761,0c-0.07553,16.83184 2.11966,36.40314 -12.31944,48.47567c-8.59595,8.79105 -21.9399,12.10719 -33.88396,10.40091zm-44.65282,-80.96436c-3.48923,-6.17941 -15.89734,-17.4112 -0.91945,-14.28427c30.58981,-0.43799 61.18378,-0.21775 91.77567,-0.27203c0,9.29378 0,18.58757 0,27.88137c-27.24594,0 -54.49188,0 -81.73782,0c-3.03946,-4.44169 -6.07892,-8.88338 -9.11839,-13.32506z",
            	"officer": "m127.65893,298.12302c-11.91827,-4.4541 -8.85096,-18.47458 -9.45842,-28.44775c-0.14007,-38.77051 -0.03694,-77.54163 -0.06789,-116.31239c21.30015,-0.31718 42.6003,-0.76093 63.90377,-0.70047c-0.02318,44.52536 0.58119,89.061 -0.14537,133.57832c-0.57059,11.93384 -13.89935,13.46393 -23.22325,12.30963c-10.33765,0.00372 -20.67488,-0.15573 -31.00884,-0.42734zm-30.7055,-116.03563c-6.74483,-0.72377 -12.32703,-17.61749 -4.40458,-17.57693c6.23801,-0.08125 12.47601,-0.16251 18.71403,-0.24377c1.007,8.20691 -1.59957,19.89343 -12.37878,18.21895l-1.93067,-0.39824l0,0zm99.85623,-0.00661c-6.98207,-0.87273 -10.75342,-15.40816 -5.67188,-17.55357c6.66685,-0.08684 13.33371,-0.17369 20.00055,-0.26053c1.00876,8.20958 -1.60458,19.90276 -12.38809,18.21675l-1.94055,-0.40263c0,0 -0.00003,0 -0.00003,0zm-107.61794,-56.49044c0.54922,-13.57674 -1.08583,-27.43726 1.69075,-40.79832c4.06557,-10.40357 13.92722,-19.77089 25.33163,-20.63995c23.60493,0.19927 47.27207,-1.00478 70.82676,0.54259c14.04367,3.09693 25.24931,16.9698 23.91605,31.57756c0.32544,21.70094 0.15948,43.40639 0.24002,65.10946c-7.41772,0.09508 -14.83545,0.19016 -22.25314,0.28525c0,-19.53377 0,-39.06755 0,-58.60133c-4.34856,-5.08821 -8.05232,1.74921 -6.5546,6.09985c-0.01697,13.17788 -0.03394,26.35577 -0.05093,39.53365c-21.48996,0 -42.97992,0 -64.46988,0c-0.17615,-15.26811 -0.35229,-30.53623 -0.52844,-45.80434c-4.21338,-4.81828 -7.17517,1.78474 -5.83627,5.79053c-0.07101,17.56546 -0.14203,35.13091 -0.21304,52.69639c-7.42339,0.09512 -14.84679,0.19028 -22.27019,0.28539c0.0571,-12.02556 0.11414,-24.05119 0.17128,-36.07671zm56.41985,-70.72921c-11.43472,-2.06434 -20.27027,-12.69278 -20.54277,-24.26873c16.53569,0 33.07137,0 49.60706,0c0.58516,15.06838 -14.48488,27.02206 -29.06429,24.26873zm-25.62941,-33.78068c2.8164,-2.81977 5.23412,-6.59949 9.76779,-5.28442c14.97531,0 29.95061,0 44.9259,0c-0.48174,3.25565 0.91423,8.389 -0.64331,10.56883c-19.77167,0 -39.54332,0 -59.31499,0c1.75487,-1.76147 3.50974,-3.52295 5.26459,-5.28442zm18.8918,-9.34585c-4.62387,-0.06122 -9.24773,-0.12243 -13.8716,-0.18365c0.48279,-3.24875 -0.91532,-8.37839 0.64332,-10.55128c16.34338,0 32.6868,0 49.0302,0c-0.48172,3.25588 0.91423,8.38858 -0.64331,10.56913c-11.722,-0.07703 -23.43608,0.45157 -35.1586,0.1658zm24.67688,286.6952c-6.54985,-2.25 -11.37944,-9.11417 -10.08943,-16.07803c-0.23178,-33.13365 0.30627,-66.28789 -0.62375,-99.40492c-7.52885,-8.41364 -5.32481,11.97667 -5.61325,16.63527c-0.40672,29.85049 0.65932,59.77377 -0.79054,89.57779c-1.03221,6.81601 -14.93086,10.39682 -2.36958,9.16388c6.49333,0.08212 12.9946,0.3678 19.48656,0.10602z",
            	"recycle_2": "m70.51852,115.61727c18.49814,35.46731 22.10944,46.23824 15.99329,47.70097c-11.94749,2.85741 -9.54662,19.19937 7.17589,48.84396c20.97182,37.17758 62.04919,60.008 100.6335,55.93118c14.9762,-1.5824 31.90746,-4.84808 37.62502,-7.25717c5.71753,-2.40912 2.20903,2.0788 -7.79668,9.97308c-50.05432,39.49167 -111.87362,36.74075 -161.19199,-7.17288c-19.66416,-17.50925 -46.71899,-68.66641 -46.71899,-88.33963c0,-5.57329 -4.46041,-10.97359 -9.91201,-12.0006c-8.91546,-1.67957 -7.71816,-6.10193 11.90882,-43.98632c12.00147,-23.16548 23.29887,-43.78072 25.10535,-45.81163c1.80651,-2.03091 14.03651,16.92264 27.17781,42.11903zm159.00744,68.37661c-18.49815,-35.4673 -22.10944,-46.23827 -15.99332,-47.70097c11.94749,-2.85736 9.54663,-19.19936 -7.17586,-48.84396c-20.97183,-37.17759 -62.04924,-60.00801 -100.63353,-55.9312c-14.9762,1.58238 -31.90743,4.84812 -37.62498,7.25722c-5.71756,2.40907 -2.20905,-2.07883 7.79666,-9.9731c50.05433,-39.49169 111.87363,-36.74079 161.192,7.1729c19.66417,17.50919 46.71898,68.66639 46.71898,88.33957c0,5.57333 4.46045,10.97359 9.91199,12.0006c8.9155,1.6796 7.71817,6.10193 -11.90878,43.98634c-12.00146,23.16545 -23.29889,43.7807 -25.10535,45.81163c-1.80652,2.03091 -14.03651,-16.92262 -27.17781,-42.11902z",
            	"shield_1": "m235.43118,0.99993c-25.8405,20.89055 -61.5569,21.09333 -87.59367,0.62283c-25.04173,19.6952 -59.05148,20.25899 -84.60652,1.69064l-45.9514,49.35802c28.26655,30.91131 28.10226,80.57548 -0.48303,111.27486c-3.79379,10.48137 -5.78214,9.97594 -6.19602,20.53111c-0.97335,25.41245 4.72666,49.11902 22.58091,66.97356c15.9491,15.9491 37.5927,22.71344 58.38308,20.29993c34.71738,1.92664 51.36115,18.07672 58.34494,27.73621c9.4303,-10.32108 24.09528,-26.91339 68.66653,-28.98181c26.60716,-4.12497 36.22241,-10.78885 48.70973,-23.10918c16.80759,-16.80759 22.6846,-38.091 22.18927,-61.73892c-0.20569,-9.81746 -1.32416,-13.23065 -6.84674,-25.76584c-28.71786,-30.84172 -28.73875,-80.82797 -0.07623,-111.70699l-47.12085,-47.18442z",
            	"smoking": "m1.00013,234.70761c0,-6.75858 0,-13.51718 0,-20.27576c85.15819,0 170.31638,0 255.47457,0c0,13.51718 0,27.03435 0,40.55151c-85.15819,0 -170.31638,0 -255.47457,0c0,-6.75858 0,-13.51717 0,-20.27576zm262.90899,-0.33792c0,-6.87125 0,-13.74248 0,-20.61369c4.50577,0 9.01147,0 13.51718,0c0,13.74245 0,27.48491 0,41.22737c-4.50571,0 -9.01141,0 -13.51718,0c0,-6.87125 0,-13.74246 0,-20.61368zm21.62747,0c0,-6.87125 0,-13.74248 0,-20.61369c4.50574,0 9.01147,0 13.51718,0c0,13.74245 0,27.48491 0,41.22737c-4.50571,0 -9.01144,0 -13.51718,0c0,-6.87125 0,-13.74246 0,-20.61368zm-21.62747,-38.40129c2.33044,-12.44823 -4.64667,-27.35672 -18.89619,-26.91631c-16.51076,-0.91339 -33.27669,-0.16469 -49.68698,-1.22891c-15.92004,-5.44565 -24.6412,-22.87308 -22.39098,-39.09009c-2.60393,-4.6821 -13.75305,-3.34301 -18.33653,-8.47466c-22.34129,-12.77989 -25.34413,-47.04951 -6.6355,-64.35941c6.55362,-6.74706 19.10332,-12.28213 27.40872,-10.56472c0,4.27357 0,8.54715 0,12.82071c-17.16693,0.19163 -30.20795,18.71787 -25.17886,34.95034c3.93155,16.28817 21.44681,21.17548 36.06943,21.4035c9.34369,7.54165 -5.73552,20.54516 2.38481,30.40595c5.4973,13.38734 21.79352,9.01994 33.15524,10.07909c16.32292,0.98282 36.22006,-2.88133 48.06549,11.43753c10.15674,11.08647 7.03754,26.81902 7.55853,40.56599c-4.50571,0 -9.01141,0 -13.51718,0c0,-3.67633 0,-7.35268 0,-11.02902zm21.44409,-5.02264c1.06424,-17.34164 -3.94,-36.41237 -18.82684,-46.85637c-14.2328,-10.82034 -32.68178,-7.49533 -49.35545,-8.05716c-10.44089,-9.26265 6.69904,-19.729 4.85689,-30.88184c1.16321,-14.61189 -8.86084,-28.86267 -23.32887,-32.0012c-8.26547,0.48857 -11.4507,-1.71243 -9.8101,-9.54141c-2.56769,-10.66179 12.99852,-3.08173 18.15088,-2.147c18.80948,6.74871 31.28568,27.05275 28.30017,46.93802c-0.48553,7.00495 -7.28169,16.99163 4.77028,14.2243c23.42943,-1.23563 45.83046,13.98601 54.11491,35.81352c6.09546,15.43478 4.5502,32.30844 4.8287,48.56076c-4.44968,0 -8.89935,0 -13.34903,0c-0.11716,-5.35051 -0.23438,-10.70122 -0.35153,-16.05162z",
            	"stairs": "m2.18934,245.58681c17.86729,-0.11601 35.73457,-0.23204 53.60186,-0.34804c0.11764,-18.34987 0.23526,-36.69974 0.35289,-55.04959c17.78193,0 35.56387,0 53.34581,0c0,-18.46245 0,-36.9249 0,-55.38734c18.2373,0 36.47458,0 54.71188,0c0,-18.01214 0,-36.02428 0,-54.03642c18.01213,0 36.02426,0 54.03641,0c0,-18.01213 0,-36.02428 0,-54.03642c26.79306,0 53.58612,0 80.37918,0c0,9.00607 0,18.01214 0,27.01821c-17.78702,0 -35.57397,0 -53.36099,0c0,18.23729 0,36.47458 0,54.71188c-18.01212,0 -36.02425,0 -54.03641,0c0,18.2373 0,36.47459 0,54.71188c-18.01215,0 -36.02426,0 -54.03641,0c0,18.23729 0,36.47459 0,54.71185c-18.2373,0 -36.47459,0 -54.71187,0c0,18.46246 0,36.9249 0,55.38733c-27.01822,0 -54.03642,0 -81.05463,0c1.20448,-8.94977 -2.05336,-19.04163 0.77228,-27.68333z",
            	"umbrella": "m138.31999,1l0,29.565c-75.13835,4.16908 -134.31995,48.17229 -134.31999,101.835c0,-9.67107 16.35202,-17.51999 36.5,-17.51999c20.14798,0 36.5,7.84892 36.5,17.51999c0,-9.67107 16.35202,-17.51999 36.5,-17.51999c9.59525,0 18.30284,1.83565 24.81999,4.745l0,144.17499c0,6.44742 -5.23262,11.68002 -11.67999,11.68002c-6.44734,0 -11.68,-5.2326 -11.68,-11.68002l0,-5.84l-23.36,0l0,5.84c0,19.34207 15.6979,35.04001 35.04,35.04001c19.34206,0 35.04001,-15.69794 35.04001,-35.04001l0,-144.17499c6.51714,-2.90935 15.22475,-4.745 24.81999,-4.745c20.14798,0 36.5,7.84892 36.5,17.51999c0,-9.67107 16.35202,-17.51999 36.5,-17.51999c20.14798,0 36.5,7.84892 36.5,17.51999c0,-53.66274 -59.18159,-97.66592 -134.31999,-101.835l0,-29.565l-23.36002,0z",
            	"yin_yang": "m152.3828,1.00127c40.96666,0 74.20116,33.2665 74.20116,74.23316c0,40.96668 -33.2345,74.20117 -74.20116,74.20117c-40.96668,0 -74.20118,33.26653 -74.20118,74.23318c0,40.96667 33.2345,74.20117 74.20118,74.20117c81.93332,0 148.43431,-66.50104 148.43431,-148.43436c0,-81.93333 -66.50099,-148.43433 -148.43431,-148.43433zm0,51.0353c-12.80867,0 -23.19788,10.38917 -23.19788,23.19786c0,12.80871 10.38918,23.19786 23.19788,23.19786c12.80869,0 23.19785,-10.38917 23.19785,-23.19786c0,-12.80869 -10.38916,-23.19786 -23.19785,-23.19786zm0,148.43436c12.80206,0 23.19785,10.39577 23.19785,23.19786c0,12.80206 -10.39578,23.19788 -23.19785,23.19788c-12.80208,0 -23.19788,-10.39581 -23.19788,-23.19788c0,-12.80206 10.3958,-23.19786 23.19788,-23.19786zm145.10503,-50.94075c0,81.87245 -66.37071,148.24319 -148.24321,148.24319c-81.87246,0 -148.24321,-66.37074 -148.24321,-148.24319c0,-81.87248 66.37075,-148.24324 148.24321,-148.24324c81.8725,0 148.24321,66.37076 148.24321,148.24324z"
            	}
            }
        • closepath_icons.svg
          <svg xmlns="http://www.w3.org/2000/svg">
          <g id="tool_closepath">
          <svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
           <g>
            <title>Layer 1</title>
            <path stroke="#000" stroke-width="15" fill="#ffc8c8" d="m121.5,40l-84,106l27,115l166,2l29,-111"/>
            <line x1="240" y1="136" x2="169.5" y2="74" stroke="#A00" stroke-width="25" fill="none"/>
            <path stroke="none" fill ="#A00" d="m158,65l31,74l-3,-50l51,-3z"/>
            <g stroke-width="15" stroke="#00f" fill="#0ff">
            <circle r="30" cy="41" cx="123"/>
            <circle r="30" cy="146" cx="40"/>
            <circle r="30" cy="260" cx="69"/>
            <circle r="30" cy="260" cx="228"/>
            <circle r="30" cy="148" cx="260"/>
            </g>
           </g>
          </svg>
          </g>
          <g id="tool_openpath">
          <svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
           <g>
            <title>Layer 1</title>
            <path stroke="#000" stroke-width="15" fill="#ffc8c8" d="m123.5,38l-84,106l27,115l166,2l29,-111"/>
            <line x1="276.5" y1="153" x2="108.5" y2="24" stroke="#000" stroke-width="10" fill="none"/>
            <g stroke-width="15" stroke="#00f" fill="#0ff">
             <circle r="30" cy="41" cx="123"/>
             <circle r="30" cy="146" cx="40"/>
             <circle r="30" cy="260" cx="69"/>
             <circle r="30" cy="260" cx="228"/>
             <circle r="30" cy="148" cx="260"/>
            </g>
            <g  stroke="#A00" stroke-width="15" fill="none">
             <line x1="168" y1="24" x2="210" y2="150"/>
             <line x1="210" y1="24" x2="168" y2="150"/>
            </g>
           </g>
          </svg>
          </g>
          
          <g id="svg_eof"/>
          </svg>
        • ext-arrows.js
          /*globals svgEditor, svgCanvas, $*/
          /*jslint vars: true, eqeq: true*/
          /*
           * ext-arrows.js
           *
           * Licensed under the MIT License
           *
           * Copyright(c) 2010 Alexis Deveria
           *
           */
          
          svgEditor.addExtension('Arrows', function(S) {
          	var svgcontent = S.svgcontent,
          		addElem = S.addSvgElementFromJson,
          		nonce = S.nonce,
          		randomize_ids = S.randomize_ids,
          		selElems, pathdata,
          		lang_list = {
          			'en':[
          				{'id': 'arrow_none', 'textContent': 'No arrow' }
          			],
          			'fr':[
          				{'id': 'arrow_none', 'textContent': 'Sans flèche' }
          			]
          		},
          		arrowprefix,
          		prefix = 'se_arrow_';
          
          	function setArrowNonce(window, n) {
          		randomize_ids = true;
          		arrowprefix = prefix + n + '_';
          		pathdata.fw.id = arrowprefix + 'fw';
          		pathdata.bk.id = arrowprefix + 'bk';
          	}
          
          	function unsetArrowNonce(window) {
          		randomize_ids = false;
          		arrowprefix = prefix;
          		pathdata.fw.id = arrowprefix + 'fw';
          		pathdata.bk.id = arrowprefix + 'bk';
          	}
          
          
          	svgCanvas.bind('setnonce', setArrowNonce);
          	svgCanvas.bind('unsetnonce', unsetArrowNonce);
          
          	if (randomize_ids) {
          		arrowprefix = prefix + nonce + '_';
          	} else {
          		arrowprefix = prefix;
          	}
          
          	pathdata = {
          		fw: {d: 'm0,0l10,5l-10,5l5,-5l-5,-5z', refx: 8,  id: arrowprefix + 'fw'},
          		bk: {d: 'm10,0l-10,5l10,5l-5,-5l5,-5z', refx: 2, id: arrowprefix + 'bk'}
          	};
          
          	function getLinked(elem, attr) {
          		var str = elem.getAttribute(attr);
          		if(!str) {return null;}
          		var m = str.match(/\(\#(.*)\)/);
          		if(!m || m.length !== 2) {
          			return null;
          		}
          		return S.getElem(m[1]);
          	}
          
          	function showPanel(on) {
          		$('#arrow_panel').toggle(on);
          		if(on) {
          			var el = selElems[0];
          			var end = el.getAttribute('marker-end');
          			var start = el.getAttribute('marker-start');
          			var mid = el.getAttribute('marker-mid');
          			var val;
          
          			if (end && start) {
          				val = 'both';
          			} else if (end) {
          				val = 'end';
          			} else if (start) {
          				val = 'start';
          			} else if (mid) {
          				val = 'mid';
          				if (mid.indexOf('bk') !== -1) {
          					val = 'mid_bk';
          				}
          			}
          
          			if (!start && !mid && !end) {
          				val = 'none';
          			}
          
          			$('#arrow_list').val(val);
          		}
          	}
          
          	function resetMarker() {
          		var el = selElems[0];
          		el.removeAttribute('marker-start');
          		el.removeAttribute('marker-mid');
          		el.removeAttribute('marker-end');
          	}
          
          	function addMarker(dir, type, id) {
          		// TODO: Make marker (or use?) per arrow type, since refX can be different
          		id = id || arrowprefix + dir;
          
          		var marker = S.getElem(id);
          		var data = pathdata[dir];
          
          		if (type == 'mid') {
          			data.refx = 5;
          		}
          
          		if (!marker) {
          			marker = addElem({
          				'element': 'marker',
          				'attr': {
          					'viewBox': '0 0 10 10',
          					'id': id,
          					'refY': 5,
          					'markerUnits': 'strokeWidth',
          					'markerWidth': 5,
          					'markerHeight': 5,
          					'orient': 'auto',
          					'style': 'pointer-events:none' // Currently needed for Opera
          				}
          			});
          			var arrow = addElem({
          				'element': 'path',
          				'attr': {
          					'd': data.d,
          					'fill': '#000000'
          				}
          			});
          			marker.appendChild(arrow);
          			S.findDefs().appendChild(marker);
          		}
          
          		marker.setAttribute('refX', data.refx);
          
          		return marker;
          	}
          
          	function setArrow() {
          		var type = this.value;
          		resetMarker();
          
          		if (type == 'none') {
          			return;
          		}
          
          		// Set marker on element
          		var dir = 'fw';
          		if (type == 'mid_bk') {
          			type = 'mid';
          			dir = 'bk';
          		} else if (type == 'both') {
          			addMarker('bk', type);
          			svgCanvas.changeSelectedAttribute('marker-start', 'url(#' + pathdata.bk.id + ')');
          			type = 'end';
          			dir = 'fw';
          		} else if (type == 'start') {
          			dir = 'bk';
          		}
          
          		addMarker(dir, type);
          		svgCanvas.changeSelectedAttribute('marker-' + type, 'url(#' + pathdata[dir].id + ')');
          		S.call('changed', selElems);
          	}
          
          	function colorChanged(elem) {
          		var color = elem.getAttribute('stroke');
          		var mtypes = ['start', 'mid', 'end'];
          		var defs = S.findDefs();
          
          		$.each(mtypes, function(i, type) {
          			var marker = getLinked(elem, 'marker-'+type);
          			if(!marker) {return;}
          
          			var cur_color = $(marker).children().attr('fill');
          			var cur_d = $(marker).children().attr('d');
          			var new_marker = null;
          			if(cur_color === color) {return;}
          
          			var all_markers = $(defs).find('marker');
          			// Different color, check if already made
          			all_markers.each(function() {
          				var attrs = $(this).children().attr(['fill', 'd']);
          				if(attrs.fill === color && attrs.d === cur_d) {
          					// Found another marker with this color and this path
          					new_marker = this;
          				}
          			});
          
          			if(!new_marker) {
          				// Create a new marker with this color
          				var last_id = marker.id;
          				var dir = last_id.indexOf('_fw') !== -1?'fw':'bk';
          
          				new_marker = addMarker(dir, type, arrowprefix + dir + all_markers.length);
          
          				$(new_marker).children().attr('fill', color);
          			}
          
          			$(elem).attr('marker-'+type, 'url(#' + new_marker.id + ')');
          
          			// Check if last marker can be removed
          			var remove = true;
          			$(S.svgcontent).find('line, polyline, path, polygon').each(function() {
          				var elem = this;
          				$.each(mtypes, function(j, mtype) {
          					if($(elem).attr('marker-' + mtype) === 'url(#' + marker.id + ')') {
          						remove = false;
          						return remove;
          					}
          				});
          				if(!remove) {return false;}
          			});
          
          			// Not found, so can safely remove
          			if(remove) {
          				$(marker).remove();
          			}
          		});
          	}
          
          	return {
          		name: 'Arrows',
          		context_tools: [{
          			type: 'select',
          			panel: 'arrow_panel',
          			title: 'Select arrow type',
          			id: 'arrow_list',
          			options: {
          				none: 'No arrow',
          				end: '----&gt;',
          				start: '&lt;----',
          				both: '&lt;---&gt;',
          				mid: '--&gt;--',
          				mid_bk: '--&lt;--'
          			},
          			defval: 'none',
          			events: {
          				change: setArrow
          			}
          		}],
          		callback: function() {
          			$('#arrow_panel').hide();
          			// Set ID so it can be translated in locale file
          			$('#arrow_list option')[0].id = 'connector_no_arrow';
          		},
          		addLangData: function(lang) {
          			return {
          				data: lang_list[lang]
          			};
          		},
          		selectedChanged: function(opts) {
          			// Use this to update the current selected elements
          			selElems = opts.elems;
          
          			var i = selElems.length;
          			var marker_elems = ['line', 'path', 'polyline', 'polygon'];
          			while(i--) {
          				var elem = selElems[i];
          				if(elem && $.inArray(elem.tagName, marker_elems) !== -1) {
          					if(opts.selectedElement && !opts.multiselected) {
          						showPanel(true);
          					} else {
          						showPanel(false);
          					}
          				} else {
          					showPanel(false);
          				}
          			}
          		},
          		elementChanged: function(opts) {
          			var elem = opts.elems[0];
          			if(elem && (
          				elem.getAttribute('marker-start') ||
          				elem.getAttribute('marker-mid') ||
          				elem.getAttribute('marker-end')
          			)) {
          //								var start = elem.getAttribute('marker-start');
          //								var mid = elem.getAttribute('marker-mid');
          //								var end = elem.getAttribute('marker-end');
          				// Has marker, so see if it should match color
          				colorChanged(elem);
          			}
          		}
          	};
          });
          
        • ext-closepath.js
          /*globals svgEditor, $*/
          /*jslint vars: true, eqeq: true*/
          /*
           * ext-closepath.js
           *
           * Licensed under the MIT License
           *
           * Copyright(c) 2010 Jeff Schiller
           *
           */
          
          // This extension adds a simple button to the contextual panel for paths
          // The button toggles whether the path is open or closed
          svgEditor.addExtension('ClosePath', function() {'use strict';
          	var selElems,
          		updateButton = function(path) {
          			var seglist = path.pathSegList,
          				closed = seglist.getItem(seglist.numberOfItems - 1).pathSegType == 1,
          				showbutton = closed ? '#tool_openpath' : '#tool_closepath',
          				hidebutton = closed ? '#tool_closepath' : '#tool_openpath';
          				$(hidebutton).hide();
          				$(showbutton).show();
          		},
          		showPanel = function(on) {
          			$('#closepath_panel').toggle(on);
          			if (on) {
          				var path = selElems[0];
          				if (path) {updateButton(path);}
          			}
          		},
          		toggleClosed = function() {
          			var path = selElems[0];
          			if (path) {
          				var seglist = path.pathSegList,
          					last = seglist.numberOfItems - 1;
          				// is closed
          				if (seglist.getItem(last).pathSegType == 1) {
          					seglist.removeItem(last);
          				} else {
          					seglist.appendItem(path.createSVGPathSegClosePath());
          				}
          				updateButton(path);
          			}
          		};
          
          	return {
          		name: 'ClosePath',
          		svgicons: svgEditor.curConfig.extPath + 'closepath_icons.svg',
          		buttons: [{
          			id: 'tool_openpath',
          			type: 'context',
          			panel: 'closepath_panel',
          			title: 'Open path',
          			events: {
          				click: function() {
          					toggleClosed();
          				}
          			}
          		},
          		{
          			id: 'tool_closepath',
          			type: 'context',
          			panel: 'closepath_panel',
          			title: 'Close path',
          			events: {
          				click: function() {
          					toggleClosed();
          				}
          			}
          		}],
          		callback: function() {
          			$('#closepath_panel').hide();
          		},
          		selectedChanged: function(opts) {
          			selElems = opts.elems;
          			var i = selElems.length;
          			while (i--) {
          				var elem = selElems[i];
          				if (elem && elem.tagName == 'path') {
          					if (opts.selectedElement && !opts.multiselected) {
          						showPanel(true);
          					} else {
          						showPanel(false);
          					}
          				} else {
          					showPanel(false);
          				}
          			}
          		}
          	};
          });
          
        • ext-connector.js
          /*globals svgEditor, svgCanvas, $*/
          /*jslint vars: true, continue: true, eqeq: true, todo: true*/
          /*
           * ext-connector.js
           *
           * Licensed under the MIT License
           *
           * Copyright(c) 2010 Alexis Deveria
           *
           */
           
          svgEditor.addExtension("Connector", function(S) {
          	var svgcontent = S.svgcontent,
          		svgroot = S.svgroot,
          		getNextId = S.getNextId,
          		getElem = S.getElem,
          		addElem = S.addSvgElementFromJson,
          		selManager = S.selectorManager,
          		curConfig = svgEditor.curConfig,
          		started = false,
          		start_x,
          		start_y,
          		cur_line,
          		start_elem,
          		end_elem,
          		connections = [],
          		conn_sel = ".se_connector",
          		se_ns,
          //		connect_str = "-SE_CONNECT-",
          		selElems = [],
          		elData = $.data;
          		
          	var lang_list = {
          		"en":[
          			{"id": "mode_connect", "title": "Connect two objects" }
          		],
          		"fr":[
          			{"id": "mode_connect", "title": "Connecter deux objets"}
          		]
          	};
          
          	function getBBintersect(x, y, bb, offset) {
          		if(offset) {
          			offset -= 0;
          			bb = $.extend({}, bb);
          			bb.width += offset;
          			bb.height += offset;
          			bb.x -= offset/2;
          			bb.y -= offset/2;
          		}
          	
          		var mid_x = bb.x + bb.width/2;
          		var mid_y = bb.y + bb.height/2;
          		var len_x = x - mid_x;
          		var len_y = y - mid_y;
          		
          		var slope = Math.abs(len_y/len_x);
          		
          		var ratio;
          		
          		if(slope < bb.height/bb.width) {
          			ratio = (bb.width/2) / Math.abs(len_x);
          		} else {
          			ratio = (bb.height/2) / Math.abs(len_y);
          		}
          		
          		
          		return {
          			x: mid_x + len_x * ratio,
          			y: mid_y + len_y * ratio
          		};
          	}
          
          	function getOffset(side, line) {
          		var give_offset = !!line.getAttribute('marker-' + side);
          //		var give_offset = $(line).data(side+'_off');
          
          		// TODO: Make this number (5) be based on marker width/height
          		var size = line.getAttribute('stroke-width') * 5;
          		return give_offset ? size : 0;
          	}
          	
          	function showPanel(on) {
          		var conn_rules = $('#connector_rules');
          		if(!conn_rules.length) {
          			conn_rules = $('<style id="connector_rules"></style>').appendTo('head');
          		} 
          		conn_rules.text(!on?"":"#tool_clone, #tool_topath, #tool_angle, #xy_panel { display: none !important; }");
          		$('#connector_panel').toggle(on);
          	}
          	
          	function setPoint(elem, pos, x, y, setMid) {
          		var i, pts = elem.points;
          		var pt = svgroot.createSVGPoint();
          		pt.x = x;
          		pt.y = y;
          		if (pos === 'end') {pos = pts.numberOfItems - 1;}
          		// TODO: Test for this on init, then use alt only if needed
          		try {
          			pts.replaceItem(pt, pos);
          		} catch(err) {
          			// Should only occur in FF which formats points attr as "n,n n,n", so just split
          			var pt_arr = elem.getAttribute("points").split(" ");
          			for (i = 0; i < pt_arr.length; i++) {
          				if (i === pos) {
          					pt_arr[i] = x + ',' + y;
          				}
          			}
          			elem.setAttribute("points",pt_arr.join(" ")); 
          		}
          		
          		if(setMid) {
          			// Add center point
          			var pt_start = pts.getItem(0);
          			var pt_end = pts.getItem(pts.numberOfItems-1);
          			setPoint(elem, 1, (pt_end.x + pt_start.x)/2, (pt_end.y + pt_start.y)/2);
          		}
          	}
          	
          	function updateLine(diff_x, diff_y) {
          		// Update line with element
          		var i = connections.length;
          		while(i--) {
          			var conn = connections[i];
          			var line = conn.connector;
          			var elem = conn.elem;
          			
          			var pre = conn.is_start?'start':'end';
          //						var sw = line.getAttribute('stroke-width') * 5;
          			
          			// Update bbox for this element
          			var bb = elData(line, pre+'_bb');
          			bb.x = conn.start_x + diff_x;
          			bb.y = conn.start_y + diff_y;
          			elData(line, pre+'_bb', bb);
          			
          			var alt_pre = conn.is_start?'end':'start';
          			
          			// Get center pt of connected element
          			var bb2 = elData(line, alt_pre+'_bb');
          			var src_x = bb2.x + bb2.width/2;
          			var src_y = bb2.y + bb2.height/2;
          			
          			// Set point of element being moved
          			var pt = getBBintersect(src_x, src_y, bb, getOffset(pre, line)); // $(line).data(pre+'_off')?sw:0
          			setPoint(line, conn.is_start ? 0 : 'end', pt.x, pt.y, true);
          			
          			// Set point of connected element
          			var pt2 = getBBintersect(pt.x, pt.y, elData(line, alt_pre + '_bb'), getOffset(alt_pre, line));
          			setPoint(line, conn.is_start ? 'end' : 0, pt2.x, pt2.y, true);
          
          		}
          	}
          	
          	function findConnectors(elems) {
          		var i;
          		if (!elems) {elems = selElems;}
          		var connectors = $(svgcontent).find(conn_sel);
          		connections = [];
          
          		// Loop through connectors to see if one is connected to the element
          		connectors.each(function() {
          			var add_this;
          			function add () {
          				if ($.inArray(this, elems) !== -1) {
          					// Pretend this element is selected
          					add_this = true;
          				}
          			}
          			var start = elData(this, "c_start");
          			var end = elData(this, "c_end");
          			
          			var parts = [getElem(start), getElem(end)];
          			for (i = 0; i < 2; i++) {
          				var c_elem = parts[i];
          				add_this = false;
          				// The connected element might be part of a selected group
          				$(c_elem).parents().each(add);
          				
          				if(!c_elem || !c_elem.parentNode) {
          					$(this).remove();
          					continue;
          				}
          				if($.inArray(c_elem, elems) !== -1 || add_this) {
          					var bb = svgCanvas.getStrokedBBox([c_elem]);
          					connections.push({
          						elem: c_elem,
          						connector: this,
          						is_start: (i === 0),
          						start_x: bb.x,
          						start_y: bb.y
          					});	
          				}
          			}
          		});
          	}
          	
          	function updateConnectors(elems) {
          		// Updates connector lines based on selected elements
          		// Is not used on mousemove, as it runs getStrokedBBox every time,
          		// which isn't necessary there.
          		var i, j;
          		findConnectors(elems);
          		if (connections.length) {
          			// Update line with element
          			i = connections.length;
          			while (i--) {
          				var conn = connections[i];
          				var line = conn.connector;
          				var elem = conn.elem;
          
          				var sw = line.getAttribute('stroke-width') * 5;
          				var pre = conn.is_start?'start':'end';
          				
          				// Update bbox for this element
          				var bb = svgCanvas.getStrokedBBox([elem]);
          				bb.x = conn.start_x;
          				bb.y = conn.start_y;
          				elData(line, pre+'_bb', bb);
          				var add_offset = elData(line, pre+'_off');
          			
          				var alt_pre = conn.is_start?'end':'start';
          				
          				// Get center pt of connected element
          				var bb2 = elData(line, alt_pre+'_bb');
          				var src_x = bb2.x + bb2.width/2;
          				var src_y = bb2.y + bb2.height/2;
          				
          				// Set point of element being moved
          				var pt = getBBintersect(src_x, src_y, bb, getOffset(pre, line));
          				setPoint(line, conn.is_start ? 0 : 'end', pt.x, pt.y, true);
          				
          				// Set point of connected element
          				var pt2 = getBBintersect(pt.x, pt.y, elData(line, alt_pre + '_bb'), getOffset(alt_pre, line));
          				setPoint(line, conn.is_start ? 'end' : 0, pt2.x, pt2.y, true);
          				
          				// Update points attribute manually for webkit
          				if (navigator.userAgent.indexOf('AppleWebKit') !== -1) {
          					var pts = line.points;
          					var len = pts.numberOfItems;
          					var pt_arr = [];
          					for (j = 0; j < len; j++) {
          						pt = pts.getItem(j);
          						pt_arr[j] = pt.x + ',' + pt.y;
          					}
          					line.setAttribute('points', pt_arr.join(' ')); 
          				}
          			}
          		}
          	}
          	
          	// Do once
          	(function() {
          		var gse = svgCanvas.groupSelectedElements;
          		
          		svgCanvas.groupSelectedElements = function() {
          			svgCanvas.removeFromSelection($(conn_sel).toArray());
          			return gse.apply(this, arguments);
          		};
          		
          		var mse = svgCanvas.moveSelectedElements;
          		
          		svgCanvas.moveSelectedElements = function() {
          			svgCanvas.removeFromSelection($(conn_sel).toArray());
          			var cmd = mse.apply(this, arguments);
          			updateConnectors();
          			return cmd;
          		};
          		
          		se_ns = svgCanvas.getEditorNS();
          	}());
          	
          	// Do on reset
          	function init() {
          		// Make sure all connectors have data set
          		$(svgcontent).find('*').each(function() { 
          			var conn = this.getAttributeNS(se_ns, "connector");
          			if(conn) {
          				this.setAttribute('class', conn_sel.substr(1));
          				var conn_data = conn.split(' ');
          				var sbb = svgCanvas.getStrokedBBox([getElem(conn_data[0])]);
          				var ebb = svgCanvas.getStrokedBBox([getElem(conn_data[1])]);
          				$(this).data('c_start',conn_data[0])
          					.data('c_end',conn_data[1])
          					.data('start_bb', sbb)
          					.data('end_bb', ebb);
          				svgCanvas.getEditorNS(true);
          			}
          		});
          //		updateConnectors();
          	}
          
          //		$(svgroot).parent().mousemove(function(e) {
          // //			if(started 
          // //				|| svgCanvas.getMode() != "connector"
          // //				|| e.target.parentNode.parentNode != svgcontent) return;
          //
          //			console.log('y')
          // //			if(e.target.parentNode.parentNode === svgcontent) {
          // //					
          // //			}
          //		});
          
          	return {
          		name: "Connector",
          		svgicons: svgEditor.curConfig.imgPath + "conn.svg",
          		buttons: [{
          			id: "mode_connect",
          			type: "mode",
          			icon: svgEditor.curConfig.imgPath + "cut.png",
          			title: "Connect two objects",
          			includeWith: {
          				button: '#tool_line',
          				isDefault: false,
          				position: 1
          			},
          			events: {
          				'click': function() {
          					svgCanvas.setMode("connector");
          				}
          			}
          		}],
          		addLangData: function(lang) {
          			return {
          				data: lang_list[lang]
          			};
          		},
          		mouseDown: function(opts) {
          			var e = opts.event;
          			start_x = opts.start_x;
          			start_y = opts.start_y;
          			var mode = svgCanvas.getMode();
          			
          			if (mode == "connector") {
          				
          				if (started) {return;}
          
          				var mouse_target = e.target;
          				
          				var parents = $(mouse_target).parents();
          				
          				if($.inArray(svgcontent, parents) !== -1) {
          					// Connectable element
          					
          					// If child of foreignObject, use parent
          					var fo = $(mouse_target).closest("foreignObject");
          					start_elem = fo.length ? fo[0] : mouse_target;
          					
          					// Get center of source element
          					var bb = svgCanvas.getStrokedBBox([start_elem]);
          					var x = bb.x + bb.width/2;
          					var y = bb.y + bb.height/2;
          					
          					started = true;
          					cur_line = addElem({
          						"element": "polyline",
          						"attr": {
          							"id": getNextId(),
          							"points": (x+','+y+' '+x+','+y+' '+start_x+','+start_y),
          							"stroke": '#' + curConfig.initStroke.color,
          							"stroke-width": (!start_elem.stroke_width || start_elem.stroke_width == 0) ? curConfig.initStroke.width : start_elem.stroke_width,
          							"fill": "none",
          							"opacity": curConfig.initStroke.opacity,
          							"style": "pointer-events:none"
          						}
          					});
          					elData(cur_line, 'start_bb', bb);
          				}
          				return {
          					started: true
          				};
          			}
          			if (mode == "select") {
          				findConnectors();
          			}
          		},
          		mouseMove: function(opts) {
          			var zoom = svgCanvas.getZoom();
          			var e = opts.event;
          			var x = opts.mouse_x/zoom;
          			var y = opts.mouse_y/zoom;
          			
          			var	diff_x = x - start_x,
          				diff_y = y - start_y;
          								
          			var mode = svgCanvas.getMode();
          			
          			if (mode == "connector" && started) {
          				
          				var sw = cur_line.getAttribute('stroke-width') * 3;
          				// Set start point (adjusts based on bb)
          				var pt = getBBintersect(x, y, elData(cur_line, 'start_bb'), getOffset('start', cur_line));
          				start_x = pt.x;
          				start_y = pt.y;
          				
          				setPoint(cur_line, 0, pt.x, pt.y, true);
          				
          				// Set end point
          				setPoint(cur_line, 'end', x, y, true);
          			} else if (mode == "select") {
          				var slen = selElems.length;
          				
          				while(slen--) {
          					var elem = selElems[slen];
          					// Look for selected connector elements
          					if(elem && elData(elem, 'c_start')) {
          						// Remove the "translate" transform given to move
          						svgCanvas.removeFromSelection([elem]);
          						svgCanvas.getTransformList(elem).clear();
          
          					}
          				}
          				if(connections.length) {
          					updateLine(diff_x, diff_y);
          
          					
          				}
          			} 
          		},
          		mouseUp: function(opts) {
          			var zoom = svgCanvas.getZoom();
          			var e = opts.event,
          				x = opts.mouse_x/zoom,
          				y = opts.mouse_y/zoom,
          				mouse_target = e.target;
          			
          			if(svgCanvas.getMode() == "connector") {
          				var fo = $(mouse_target).closest("foreignObject");
          				if (fo.length) {mouse_target = fo[0];}
          				
          				var parents = $(mouse_target).parents();
          
          				if (mouse_target == start_elem) {
          					// Start line through click
          					started = true;
          					return {
          						keep: true,
          						element: null,
          						started: started
          					};
          				}
          				if ($.inArray(svgcontent, parents) === -1) {
          					// Not a valid target element, so remove line
          					$(cur_line).remove();
          					started = false;
          					return {
          						keep: false,
          						element: null,
          						started: started
          					};
          				}
          				// Valid end element
          				end_elem = mouse_target;
          					
          				var start_id = start_elem.id, end_id = end_elem.id;
          				var conn_str = start_id + " " + end_id;
          				var alt_str = end_id + " " + start_id;
          				// Don't create connector if one already exists
          				var dupe = $(svgcontent).find(conn_sel).filter(function() {
          					var conn = this.getAttributeNS(se_ns, "connector");
          					if (conn == conn_str || conn == alt_str) {return true;}
          				});
          				if(dupe.length) {
          					$(cur_line).remove();
          					return {
          						keep: false,
          						element: null,
          						started: false
          					};
          				}
          				
          				var bb = svgCanvas.getStrokedBBox([end_elem]);
          				
          				var pt = getBBintersect(start_x, start_y, bb, getOffset('start', cur_line));
          				setPoint(cur_line, 'end', pt.x, pt.y, true);
          				$(cur_line)
          					.data("c_start", start_id)
          					.data("c_end", end_id)
          					.data("end_bb", bb);
          				se_ns = svgCanvas.getEditorNS(true);
          				cur_line.setAttributeNS(se_ns, "se:connector", conn_str);
          				cur_line.setAttribute('class', conn_sel.substr(1));
          				cur_line.setAttribute('opacity', 1);
          				svgCanvas.addToSelection([cur_line]);
          				svgCanvas.moveToBottomSelectedElement();
          				selManager.requestSelector(cur_line).showGrips(false);
          				started = false;
          				return {
          					keep: true,
          					element: cur_line,
          					started: started
          				};
          			}
          		},
          		selectedChanged: function(opts) {
          			// TODO: Find better way to skip operations if no connectors are in use
          			if(!$(svgcontent).find(conn_sel).length) {return;}
          			
          			if(svgCanvas.getMode() == 'connector') {
          				svgCanvas.setMode('select');
          			}
          			
          			// Use this to update the current selected elements
          			selElems = opts.elems;
          			
          			var i = selElems.length;
          			
          			while(i--) {
          				var elem = selElems[i];
          				if(elem && elData(elem, 'c_start')) {
          					selManager.requestSelector(elem).showGrips(false);
          					if(opts.selectedElement && !opts.multiselected) {
          						// TODO: Set up context tools and hide most regular line tools
          						showPanel(true);
          					} else {
          						showPanel(false);
          					}
          				} else {
          					showPanel(false);
          				}
          			}
          			updateConnectors();
          		},
          		elementChanged: function(opts) {
          			var elem = opts.elems[0];
          			if (elem && elem.tagName === 'svg' && elem.id === 'svgcontent') {
          				// Update svgcontent (can change on import)
          				svgcontent = elem;
          				init();
          			}
          			
          			// Has marker, so change offset
          			var start;
          			if (elem && (
          				elem.getAttribute("marker-start") ||
          				elem.getAttribute("marker-mid") ||
          				elem.getAttribute("marker-end")
          			)) {
          				start = elem.getAttribute("marker-start");
          				var mid = elem.getAttribute("marker-mid");
          				var end = elem.getAttribute("marker-end");
          				cur_line = elem;
          				$(elem)
          					.data("start_off", !!start)
          					.data("end_off", !!end);
          				
          				if (elem.tagName === 'line' && mid) {
          					// Convert to polyline to accept mid-arrow
          					
          					var x1 = Number(elem.getAttribute('x1'));
          					var x2 = Number(elem.getAttribute('x2'));
          					var y1 = Number(elem.getAttribute('y1'));
          					var y2 = Number(elem.getAttribute('y2'));
          					var id = elem.id;
          					
          					var mid_pt = (' '+((x1+x2)/2)+','+((y1+y2)/2) + ' ');
          					var pline = addElem({
          						"element": "polyline",
          						"attr": {
          							"points": (x1+','+y1+ mid_pt +x2+','+y2),
          							"stroke": elem.getAttribute('stroke'),
          							"stroke-width": elem.getAttribute('stroke-width'),
          							"marker-mid": mid,
          							"fill": "none",
          							"opacity": elem.getAttribute('opacity') || 1
          						}
          					});
          					$(elem).after(pline).remove();
          					svgCanvas.clearSelection();
          					pline.id = id;
          					svgCanvas.addToSelection([pline]);
          					elem = pline;
          				}
          			}
          			// Update line if it's a connector
          			if (elem.getAttribute('class') == conn_sel.substr(1)) {
          				start = getElem(elData(elem, 'c_start'));
          				updateConnectors([start]);
          			} else {
          				updateConnectors();
          			}
          		},
          		toolButtonStateUpdate: function(opts) {
          			if (opts.nostroke) {
          				if ($('#mode_connect').hasClass('tool_button_current')) {
          					svgEditor.clickSelect();
          				}
          			}
          			$('#mode_connect')
          				.toggleClass('disabled',opts.nostroke);
          		}
          	};
          });
          
        • ext-eyedropper.js
          /*globals svgEditor, svgedit, $*/
          /*jslint vars: true, eqeq: true*/
          /*
           * ext-eyedropper.js
           *
           * Licensed under the MIT License
           *
           * Copyright(c) 2010 Jeff Schiller
           *
           */
          
          // Dependencies:
          // 1) jQuery
          // 2) history.js
          // 3) svg_editor.js
          // 4) svgcanvas.js
          
          svgEditor.addExtension("eyedropper", function(S) {'use strict';
          	var // NS = svgedit.NS,
          		// svgcontent = S.svgcontent,
          		// svgdoc = S.svgroot.parentNode.ownerDocument,
          		svgCanvas = svgEditor.canvas,
          		ChangeElementCommand = svgedit.history.ChangeElementCommand,
          		addToHistory = function(cmd) { svgCanvas.undoMgr.addCommandToHistory(cmd); },
          		currentStyle = {
          			fillPaint: "red", fillOpacity: 1.0,
          			strokePaint: "black", strokeOpacity: 1.0, 
          			strokeWidth: 5, strokeDashArray: null,
          			opacity: 1.0,
          			strokeLinecap: 'butt',
          			strokeLinejoin: 'miter'
          		};
          
          	function getStyle(opts) {
          		// if we are in eyedropper mode, we don't want to disable the eye-dropper tool
          		var mode = svgCanvas.getMode();
          		if (mode == "eyedropper") {return;}
          
          		var elem = null;
          		var tool = $('#tool_eyedropper');
          		// enable-eye-dropper if one element is selected
          		if (!opts.multiselected && opts.elems[0] &&
          			$.inArray(opts.elems[0].nodeName, ['svg', 'g', 'use']) === -1
          		) {
          			elem = opts.elems[0];
          			tool.removeClass('disabled');
          			// grab the current style
          			currentStyle.fillPaint = elem.getAttribute("fill") || "black";
          			currentStyle.fillOpacity = elem.getAttribute("fill-opacity") || 1.0;
          			currentStyle.strokePaint = elem.getAttribute("stroke");
          			currentStyle.strokeOpacity = elem.getAttribute("stroke-opacity") || 1.0;
          			currentStyle.strokeWidth = elem.getAttribute("stroke-width");
          			currentStyle.strokeDashArray = elem.getAttribute("stroke-dasharray");
          			currentStyle.strokeLinecap = elem.getAttribute("stroke-linecap");
          			currentStyle.strokeLinejoin = elem.getAttribute("stroke-linejoin");
          			currentStyle.opacity = elem.getAttribute("opacity") || 1.0;
          		}
          		// disable eye-dropper tool
          		else {
          			tool.addClass('disabled');
          		}
          
          	}
          	
          	return {
          		name: "eyedropper",
          		svgicons: svgEditor.curConfig.extPath + "eyedropper-icon.xml",
          		buttons: [{
          			id: "tool_eyedropper",
          			type: "mode",
          			title: "Eye Dropper Tool",
          			key: "I",
          			events: {
          				"click": function() {
          					svgCanvas.setMode("eyedropper");
          				}
          			}
          		}],
          		
          		// if we have selected an element, grab its paint and enable the eye dropper button
          		selectedChanged: getStyle,
          		elementChanged: getStyle,
          		
          		mouseDown: function(opts) {
          			var mode = svgCanvas.getMode();
          			if (mode == "eyedropper") {
          				var e = opts.event;
          				var target = e.target;
          				if ($.inArray(target.nodeName, ['svg', 'g', 'use']) === -1) {
          					var changes = {};
          
          					var change = function(elem, attrname, newvalue) {
          						changes[attrname] = elem.getAttribute(attrname);
          						elem.setAttribute(attrname, newvalue);
          					};
          					
          					if (currentStyle.fillPaint) {change(target, "fill", currentStyle.fillPaint);}
          					if (currentStyle.fillOpacity) {change(target, "fill-opacity", currentStyle.fillOpacity);}
          					if (currentStyle.strokePaint) {change(target, "stroke", currentStyle.strokePaint);}
          					if (currentStyle.strokeOpacity) {change(target, "stroke-opacity", currentStyle.strokeOpacity);}
          					if (currentStyle.strokeWidth) {change(target, "stroke-width", currentStyle.strokeWidth);}
          					if (currentStyle.strokeDashArray) {change(target, "stroke-dasharray", currentStyle.strokeDashArray);}
          					if (currentStyle.opacity) {change(target, "opacity", currentStyle.opacity);}
          					if (currentStyle.strokeLinecap) {change(target, "stroke-linecap", currentStyle.strokeLinecap);}
          					if (currentStyle.strokeLinejoin) {change(target, "stroke-linejoin", currentStyle.strokeLinejoin);}
          					
          					addToHistory(new ChangeElementCommand(target, changes));
          				}
          			}
          		}
          	};
          });
          
        • ext-foreignobject.js
          /*globals svgEditor, svgedit, svgCanvas, $*/
          /*jslint vars: true, eqeq: true, todo: true*/
          /*
           * ext-foreignobject.js
           *
           * Licensed under the Apache License, Version 2
           *
           * Copyright(c) 2010 Jacques Distler 
           * Copyright(c) 2010 Alexis Deveria 
           *
           */
          
          svgEditor.addExtension("foreignObject", function(S) {
          	var NS = svgedit.NS,
          		Utils = svgedit.utilities,
          		svgcontent = S.svgcontent,
          		addElem = S.addSvgElementFromJson,
          		selElems,
          		editingforeign = false,
          		svgdoc = S.svgroot.parentNode.ownerDocument,
          		started,
          		newFO;
          
          	var properlySourceSizeTextArea = function () {
          		// TODO: remove magic numbers here and get values from CSS
          		var height = $('#svg_source_container').height() - 80;
          		$('#svg_source_textarea').css('height', height);
          	};
          
          	function showPanel(on) {
          		var fc_rules = $('#fc_rules');
          		if(!fc_rules.length) {
          			fc_rules = $('<style id="fc_rules"></style>').appendTo('head');
          		}
          		fc_rules.text(!on?"":" #tool_topath { display: none !important; }");
          		$('#foreignObject_panel').toggle(on);
          	}
          
          	function toggleSourceButtons(on) {
          		$('#tool_source_save, #tool_source_cancel').toggle(!on);
          		$('#foreign_save, #foreign_cancel').toggle(on);
          	}
          
          	// Function: setForeignString(xmlString, elt)
          	// This function sets the content of element elt to the input XML.
          	//
          	// Parameters:
          	// xmlString - The XML text.
          	// elt - the parent element to append to
          	//
          	// Returns:
          	// This function returns false if the set was unsuccessful, true otherwise.
          	function setForeignString(xmlString) {
          		var elt = selElems[0];
          		try {
          			// convert string into XML document
          			var newDoc = Utils.text2xml('<svg xmlns="' + NS.SVG + '" xmlns:xlink="' + NS.XLINK + '">' + xmlString + '</svg>');
          			// run it through our sanitizer to remove anything we do not support
          			S.sanitizeSvg(newDoc.documentElement);
          			elt.parentNode.replaceChild(svgdoc.importNode(newDoc.documentElement.firstChild, true), elt);
          			S.call("changed", [elt]);
          			svgCanvas.clearSelection();
          		} catch(e) {
          			console.log(e);
          			return false;
          		}
          
          		return true;
          	}
          
          	function showForeignEditor() {
          		var elt = selElems[0];
          		if (!elt || editingforeign) {return;}
          		editingforeign = true;
          		toggleSourceButtons(true);
          		elt.removeAttribute('fill');
          
          		var str = S.svgToString(elt, 0);
          		$('#svg_source_textarea').val(str);
          		$('#svg_source_editor').fadeIn();
          		properlySourceSizeTextArea();
          		$('#svg_source_textarea').focus();
          	}
          
          	function setAttr(attr, val) {
          		svgCanvas.changeSelectedAttribute(attr, val);
          		S.call("changed", selElems);
          	}
          
          	return {
          		name: "foreignObject",
          		svgicons: svgEditor.curConfig.extPath + "foreignobject-icons.xml",
          		buttons: [{
          			id: "tool_foreign",
          			type: "mode",
          			title: "Foreign Object Tool",
          			events: {
          				'click': function() {
          					svgCanvas.setMode('foreign');
          				}
          			}
          		},{
          			id: "edit_foreign",
          			type: "context",
          			panel: "foreignObject_panel",
          			title: "Edit ForeignObject Content",
          			events: {
          				'click': function() {
          					showForeignEditor();
          				}
          			}
          		}],
          
          		context_tools: [{
          			type: "input",
          			panel: "foreignObject_panel",
          			title: "Change foreignObject's width",
          			id: "foreign_width",
          			label: "w",
          			size: 3,
          			events: {
          				change: function() {
          					setAttr('width', this.value);
          				}
          			}
          		},{
          			type: "input",
          			panel: "foreignObject_panel",
          			title: "Change foreignObject's height",
          			id: "foreign_height",
          			label: "h",
          			events: {
          				change: function() {
          					setAttr('height', this.value);
          				}
          			}
          		}, {
          			type: "input",
          			panel: "foreignObject_panel",
          			title: "Change foreignObject's font size",
          			id: "foreign_font_size",
          			label: "font-size",
          			size: 2,
          			defval: 16,
          			events: {
          				change: function() {
          					setAttr('font-size', this.value);
          				}
          			}
          		}
          
          		],
          		callback: function() {
          			$('#foreignObject_panel').hide();
          
          			var endChanges = function() {
          				$('#svg_source_editor').hide();
          				editingforeign = false;
          				$('#svg_source_textarea').blur();
          				toggleSourceButtons(false);
          			};
          
          			// TODO: Needs to be done after orig icon loads
          			setTimeout(function() {
          				// Create source save/cancel buttons
          				var save = $('#tool_source_save').clone()
          					.hide().attr('id', 'foreign_save').unbind()
          					.appendTo("#tool_source_back").click(function() {
          
          						if (!editingforeign) {return;}
          
          						if (!setForeignString($('#svg_source_textarea').val())) {
          							$.confirm("Errors found. Revert to original?", function(ok) {
          								if(!ok) {return false;}
          								endChanges();
          							});
          						} else {
          							endChanges();
          						}
          						// setSelectMode();	
          					});
          
          				var cancel = $('#tool_source_cancel').clone()
          					.hide().attr('id', 'foreign_cancel').unbind()
          					.appendTo("#tool_source_back").click(function() {
          						endChanges();
          					});
          			}, 3000);
          		},
          		mouseDown: function(opts) {
          			var e = opts.event;
          
          			if(svgCanvas.getMode() == "foreign") {
          
          				started = true;
          				newFO = S.addSvgElementFromJson({
          					"element": "foreignObject",
          					"attr": {
          						"x": opts.start_x,
          						"y": opts.start_y,
          						"id": S.getNextId(),
          						"font-size": 16, //cur_text.font_size,
          						"width": "48",
          						"height": "20",
          						"style": "pointer-events:inherit"
          					}
          				});
          				var m = svgdoc.createElementNS(NS.MATH, 'math');
          				m.setAttributeNS(NS.XMLNS, 'xmlns', NS.MATH);
          				m.setAttribute('display', 'inline');
          				var mi = svgdoc.createElementNS(NS.MATH, 'mi');
          				mi.setAttribute('mathvariant', 'normal');
          				mi.textContent = "\u03A6";
          				var mo = svgdoc.createElementNS(NS.MATH, 'mo');
          				mo.textContent = "\u222A";
          				var mi2 = svgdoc.createElementNS(NS.MATH, 'mi');
          				mi2.textContent = "\u2133";
          				m.appendChild(mi);
          				m.appendChild(mo);
          				m.appendChild(mi2);
          				newFO.appendChild(m);
          				return {
          					started: true
          				};
          			}
          		},
          		mouseUp: function(opts) {
          			var e = opts.event;
          			if(svgCanvas.getMode() == "foreign" && started) {
          				var attrs = $(newFO).attr(["width", "height"]);
          				var keep = (attrs.width != 0 || attrs.height != 0);
          				svgCanvas.addToSelection([newFO], true);
          
          				return {
          					keep: keep,
          					element: newFO
          				};
          
          			}
          
          		},
          		selectedChanged: function(opts) {
          			// Use this to update the current selected elements
          			selElems = opts.elems;
          
          			var i = selElems.length;
          
          			while(i--) {
          				var elem = selElems[i];
          				if(elem && elem.tagName === 'foreignObject') {
          					if(opts.selectedElement && !opts.multiselected) {
          						$('#foreign_font_size').val(elem.getAttribute("font-size"));
          						$('#foreign_width').val(elem.getAttribute("width"));
          						$('#foreign_height').val(elem.getAttribute("height"));
          						showPanel(true);
          					} else {
          						showPanel(false);
          					}
          				} else {
          					showPanel(false);
          				}
          			}
          		},
          		elementChanged: function(opts) {
          			var elem = opts.elems[0];
          		}
          	};
          });
          
        • ext-grid.js
          /*globals svgEditor, svgedit, svgCanvas, $*/
          /*jslint vars: true*/
          /*
           * ext-grid.js
           *
           * Licensed under the Apache License, Version 2
           *
           * Copyright(c) 2010 Redou Mine
           * Copyright(c) 2010 Alexis Deveria
           *
           */
          
          // Dependencies:
          // 1) units.js
          // 2) everything else
          
          svgEditor.addExtension('view_grid', function() { 'use strict';
          
          	var NS = svgedit.NS,
          		svgdoc = document.getElementById('svgcanvas').ownerDocument,
          		showGrid = svgEditor.curConfig.showGrid || false,
          		assignAttributes = svgCanvas.assignAttributes,
          		hcanvas = document.createElement('canvas'),
          		canvBG = $('#canvasBackground'),
          		units = svgedit.units.getTypeMap(),
          		intervals = [0.01, 0.1, 1, 10, 100, 1000];
          
          	$(hcanvas).hide().appendTo('body');
          
          	var canvasGrid = svgdoc.createElementNS(NS.SVG, 'svg');
          	assignAttributes(canvasGrid, {
          		'id': 'canvasGrid',
          		'width': '100%',
          		'height': '100%',
          		'x': 0,
          		'y': 0,
          		'overflow': 'visible',
          		'display': 'none'
          	});
          	canvBG.append(canvasGrid);
          
          	// grid-pattern
          	var gridPattern = svgdoc.createElementNS(NS.SVG, 'pattern');
          	assignAttributes(gridPattern, {
          		'id': 'gridpattern',
          		'patternUnits': 'userSpaceOnUse',
          		'x': 0, //-(value.strokeWidth / 2), // position for strokewidth
          		'y': 0, //-(value.strokeWidth / 2), // position for strokewidth
          		'width': 100,
          		'height': 100
          	});
          
          	var gridimg = svgdoc.createElementNS(NS.SVG, 'image');
          	assignAttributes(gridimg, {
          		'x': 0,
          		'y': 0,
          		'width': 100,
          		'height': 100
          	});
          	gridPattern.appendChild(gridimg);
          	$('#svgroot defs').append(gridPattern);
          
          	// grid-box
          	var gridBox = svgdoc.createElementNS(NS.SVG, 'rect');
          	assignAttributes(gridBox, {
          		'width': '100%',
          		'height': '100%',
          		'x': 0,
          		'y': 0,
          		'stroke-width': 0,
          		'stroke': 'none',
          		'fill': 'url(#gridpattern)',
          		'style': 'pointer-events: none; display:visible;'
          	});
          	$('#canvasGrid').append(gridBox);
          
          	function updateGrid(zoom) {
          		var i;
          		// TODO: Try this with <line> elements, then compare performance difference
          		var unit = units[svgEditor.curConfig.baseUnit]; // 1 = 1px
          		var u_multi = unit * zoom;
          		// Calculate the main number interval
          		var raw_m = 100 / u_multi;
          		var multi = 1;
          		for (i = 0; i < intervals.length; i++) {
          			var num = intervals[i];
          			multi = num;
          			if (raw_m <= num) {
          				break;
          			}
          		}
          		var big_int = multi * u_multi;
          
          		// Set the canvas size to the width of the container
          		hcanvas.width = big_int;
          		hcanvas.height = big_int;
          		var ctx = hcanvas.getContext('2d');
          		var cur_d = 0.5;
          		var part = big_int / 10;
          
          		ctx.globalAlpha = 0.2;
          		ctx.strokeStyle = svgEditor.curConfig.gridColor;
          		for (i = 1; i < 10; i++) {
          			var sub_d = Math.round(part * i) + 0.5;
          			// var line_num = (i % 2)?12:10;
          			var line_num = 0;
          			ctx.moveTo(sub_d, big_int);
          			ctx.lineTo(sub_d, line_num);
          			ctx.moveTo(big_int, sub_d);
          			ctx.lineTo(line_num ,sub_d);
          		}
          		ctx.stroke();
          		ctx.beginPath();
          		ctx.globalAlpha = 0.5;
          		ctx.moveTo(cur_d, big_int);
          		ctx.lineTo(cur_d, 0);
          
          		ctx.moveTo(big_int, cur_d);
          		ctx.lineTo(0, cur_d);
          		ctx.stroke();
          
          		var datauri = hcanvas.toDataURL('image/png');
          		gridimg.setAttribute('width', big_int);
          		gridimg.setAttribute('height', big_int);
          		gridimg.parentNode.setAttribute('width', big_int);
          		gridimg.parentNode.setAttribute('height', big_int);
          		svgCanvas.setHref(gridimg, datauri);
          	}
          
          	function gridUpdate () {
          		if (showGrid) {
          			updateGrid(svgCanvas.getZoom());
          		}
          		$('#canvasGrid').toggle(showGrid);
          		$('#view_grid').toggleClass('push_button_pressed tool_button');
          	}
          	return {
          		name: 'view_grid',
          		svgicons: svgEditor.curConfig.extPath + 'grid-icon.xml',
          
          		zoomChanged: function(zoom) {
          			if (showGrid) {updateGrid(zoom);}
          		},
          		callback: function () {
          			if (showGrid) {
          				gridUpdate();
          			}
          		},
          		buttons: [{
          			id: 'view_grid',
          			type: 'context',
          			panel: 'editor_panel',
          			title: 'Show/Hide Grid',
          			events: {
          				click: function() {
          					svgEditor.curConfig.showGrid = showGrid = !showGrid;
          					gridUpdate();
          				}
          			}
          		}]
          	};
          });
          
        • ext-helloworld.js
          /*globals svgEditor, svgCanvas, $*/
          /*jslint vars: true, eqeq: true*/
          /*
           * ext-helloworld.js
           *
           * Licensed under the MIT License
           *
           * Copyright(c) 2010 Alexis Deveria
           *
           */
           
          /* 
          	This is a very basic SVG-Edit extension. It adds a "Hello World" button in
          	the left panel. Clicking on the button, and then the canvas will show the
          	user the point on the canvas that was clicked on.
          */
           
          svgEditor.addExtension("Hello World", function() {'use strict';
          
          		return {
          			name: "Hello World",
          			// For more notes on how to make an icon file, see the source of
          			// the helloworld-icon.xml
          			svgicons: svgEditor.curConfig.extPath + "helloworld-icon.xml",
          			
          			// Multiple buttons can be added in this array
          			buttons: [{
          				// Must match the icon ID in helloworld-icon.xml
          				id: "hello_world", 
          				
          				// This indicates that the button will be added to the "mode"
          				// button panel on the left side
          				type: "mode", 
          				
          				// Tooltip text
          				title: "Say 'Hello World'", 
          				
          				// Events
          				events: {
          					'click': function() {
          						// The action taken when the button is clicked on.
          						// For "mode" buttons, any other button will 
          						// automatically be de-pressed.
          						svgCanvas.setMode("hello_world");
          					}
          				}
          			}],
          			// This is triggered when the main mouse button is pressed down 
          			// on the editor canvas (not the tool panels)
          			mouseDown: function() {
          				// Check the mode on mousedown
          				if(svgCanvas.getMode() == "hello_world") {
          				
          					// The returned object must include "started" with 
          					// a value of true in order for mouseUp to be triggered
          					return {started: true};
          				}
          			},
          			
          			// This is triggered from anywhere, but "started" must have been set
          			// to true (see above). Note that "opts" is an object with event info
          			mouseUp: function(opts) {
          				// Check the mode on mouseup
          				if(svgCanvas.getMode() == "hello_world") {
          					var zoom = svgCanvas.getZoom();
          					
          					// Get the actual coordinate by dividing by the zoom value
          					var x = opts.mouse_x / zoom;
          					var y = opts.mouse_y / zoom;
          					
          					var text = "Hello World!\n\nYou clicked here: " 
          						+ x + ", " + y;
          						
          					// Show the text using the custom alert function
          					$.alert(text);
          				}
          			}
          		};
          });
          
          
        • ext-imagelib.js
          /*globals $, svgEditor, svgedit, svgCanvas, DOMParser*/
          /*jslint vars: true, eqeq: true, es5: true, todo: true */
          /*
           * ext-imagelib.js
           *
           * Licensed under the MIT License
           *
           * Copyright(c) 2010 Alexis Deveria
           *
           */
          
          svgEditor.addExtension("imagelib", function() {'use strict';
          
          	var uiStrings = svgEditor.uiStrings;
          
          	$.extend(uiStrings, {
          		imagelib: {
          			select_lib: 'Select an image library',
          			show_list: 'Show library list',
          			import_single: 'Import single',
          			import_multi: 'Import multiple',
          			open: 'Open as new document'
          		}
          	});
          
          	var img_libs = [{
          			name: 'Demo library (local)',
          			url: svgEditor.curConfig.extPath + 'imagelib/index.html',
          			description: 'Demonstration library for SVG-edit on this server'
          		},
          		{
          			name: 'IAN Symbol Libraries',
          			url: 'http://ian.umces.edu/symbols/catalog/svgedit/album_chooser.php',
          			description: 'Free library of illustrations'
          		},
          		{
          			name: 'Openclipart',
          			url: 'http://openclipart.org/svgedit',
          			description: 'Share and Use Images. Over 50,000 Public Domain SVG Images and Growing.'
          		}
          	];
          
          	function closeBrowser() {
          		$('#imgbrowse_holder').hide();
          	}
          
          	function importImage(url) {
          		var newImage = svgCanvas.addSvgElementFromJson({
          			"element": "image",
          			"attr": {
          				"x": 0,
          				"y": 0,
          				"width": 0,
          				"height": 0,
          				"id": svgCanvas.getNextId(),
          				"style": "pointer-events:inherit"
          			}
          		});
          		svgCanvas.clearSelection();
          		svgCanvas.addToSelection([newImage]);
          		svgCanvas.setImageURL(url);
          	}
          
          	var mode = 's';
          	var multi_arr = [];
          	var tranfer_stopped = false;
          	var pending = {};
          	var preview, submit;
          
          	window.addEventListener("message", function(evt) {
          		// Receive postMessage data
          		var response = evt.data;
          		
          		if (!response || typeof response !== "string") { // Todo: Should namespace postMessage API for this extension and filter out here
          			// Do nothing
          			return;
          		}
          		try { // This block can be removed if embedAPI moves away from a string to an object (if IE9 support not needed)
          			var res = JSON.parse(response);
          			if (res.namespace) { // Part of embedAPI communications
          				return;
          			}
          		}
          		catch (e) {}
          		
          		var char1 = response.charAt(0);
          		var id;
          		var svg_str;
          		var img_str;
          		
          		if (char1 != "{" && tranfer_stopped) {
          			tranfer_stopped = false;
          			return;
          		}
          		
          		if (char1 == '|') {
          			var secondpos = response.indexOf('|', 1);
          			id = response.substr(1, secondpos-1);
          			response = response.substr(secondpos+1);
          			char1 = response.charAt(0);
          		}
          		
          		
          		// Hide possible transfer dialog box
          		$('#dialog_box').hide();
          		var entry, cur_meta;
          		switch (char1) {
          			case '{':
          				// Metadata
          				tranfer_stopped = false;
          				cur_meta = JSON.parse(response);
          				
          				pending[cur_meta.id] = cur_meta;
          				
          				var name = (cur_meta.name || 'file');
          				
          				var message = uiStrings.notification.retrieving.replace('%s', name);
          				
          				if (mode != 'm') {
          					$.process_cancel(message, function() {
          						tranfer_stopped = true;
          						// Should a message be sent back to the frame?
          						
          						$('#dialog_box').hide();
          					});
          				} else {
          					entry = $('<div>' + message + '</div>').data('id', cur_meta.id);
          					preview.append(entry);
          					cur_meta.entry = entry;
          				}
          				
          				return;
          			case '<':
          				svg_str = true;
          				break;
          			case 'd':
          				if (response.indexOf('data:image/svg+xml') === 0) {
          					var pre = 'data:image/svg+xml;base64,';
          					var src = response.substring(pre.length);
          					response = svgedit.utilities.decode64(src);
          					svg_str = true;
          					break;
          				} else if (response.indexOf('data:image/') === 0) {
          					img_str = true;
          					break;
          				}
          				// Else fall through
          			default:
          				// TODO: See if there's a way to base64 encode the binary data stream
          //				var str = 'data:;base64,' + svgedit.utilities.encode64(response, true);
          			
          				// Assume it's raw image data
          //				importImage(str);
          			
          				// Don't give warning as postMessage may have been used by something else
          				if (mode !== 'm') {
          					closeBrowser();
          				} else {
          					pending[id].entry.remove();
          				}
          //				$.alert('Unexpected data was returned: ' + response, function() {
          //					if (mode !== 'm') {
          //						closeBrowser();
          //					} else {
          //						pending[id].entry.remove();
          //					}
          //				});
          				return;
          		}
          		
          		switch (mode) {
          			case 's':
          				// Import one
          				if (svg_str) {
          					svgCanvas.importSvgString(response);
          				} else if (img_str) {
          					importImage(response);
          				}
          				closeBrowser();
          				break;
          			case 'm':
          				// Import multiple
          				multi_arr.push([(svg_str ? 'svg' : 'img'), response]);
          				var title;
          				cur_meta = pending[id];
          				if (svg_str) {
          					if (cur_meta && cur_meta.name) {
          						title = cur_meta.name;
          					} else {
          						// Try to find a title
          						var xml = new DOMParser().parseFromString(response, 'text/xml').documentElement;
          						title = $(xml).children('title').first().text() || '(SVG #' + response.length + ')';
          					}
          					if (cur_meta) {
          						preview.children().each(function() {
          							if ($(this).data('id') == id) {
          								if (cur_meta.preview_url) {
          									$(this).html('<img src="' + cur_meta.preview_url + '">' + title);
          								} else {
          									$(this).text(title);
          								}
          								submit.removeAttr('disabled');
          							}
          						});
          					} else {
          						preview.append('<div>'+title+'</div>');
          						submit.removeAttr('disabled');
          					}
          				} else {
          					if (cur_meta && cur_meta.preview_url) {
          						title = cur_meta.name || '';
          					}
          					if (cur_meta && cur_meta.preview_url) {
          						entry = '<img src="' + cur_meta.preview_url + '">' + title;
          					} else {
          						entry = '<img src="' + response + '">';
          					}
          				
          					if (cur_meta) {
          						preview.children().each(function() {
          							if ($(this).data('id') == id) {
          								$(this).html(entry);
          								submit.removeAttr('disabled');
          							}
          						});
          					} else {
          						preview.append($('<div>').append(entry));
          						submit.removeAttr('disabled');
          					}
          
          				}
          				break;
          			case 'o':
          				// Open
          				if (!svg_str) {break;}
          				svgEditor.openPrep(function(ok) {
          					if (!ok) {return;}
          					svgCanvas.clear();
          					svgCanvas.setSvgString(response);
          					// updateCanvas();
          				});
          				closeBrowser();
          				break;
          		}
          	}, true);
          
          	function toggleMulti(show) {
          	
          		$('#lib_framewrap, #imglib_opts').css({right: (show ? 200 : 10)});
          		if (!preview) {
          			preview = $('<div id=imglib_preview>').css({
          				position: 'absolute',
          				top: 45,
          				right: 10,
          				width: 180,
          				bottom: 45,
          				background: '#fff',
          				overflow: 'auto'
          			}).insertAfter('#lib_framewrap');
          			
          			submit = $('<button disabled>Import selected</button>')
          				.appendTo('#imgbrowse')
          				.on("click touchend", function() {
          				$.each(multi_arr, function(i) {
          					var type = this[0];
          					var data = this[1];
          					if (type == 'svg') {
          						svgCanvas.importSvgString(data);
          					} else {
          						importImage(data);
          					}
          					svgCanvas.moveSelectedElements(i*20, i*20, false);
          				});
          				preview.empty();
          				multi_arr = [];
          				$('#imgbrowse_holder').hide();
          			}).css({
          				position: 'absolute',
          				bottom: 10,
          				right: -10
          			});
          
          		}
          		
          		preview.toggle(show);
          		submit.toggle(show);
          	}
          
          	function showBrowser() {
          
          		var browser = $('#imgbrowse');
          		if (!browser.length) {
          			$('<div id=imgbrowse_holder><div id=imgbrowse class=toolbar_button>\
          			</div></div>').insertAfter('#svg_docprops');
          			browser = $('#imgbrowse');
          
          			var all_libs = uiStrings.imagelib.select_lib;
          
          			var lib_opts = $('<ul id=imglib_opts>').appendTo(browser);
          			var frame = $('<iframe/>').prependTo(browser).hide().wrap('<div id=lib_framewrap>');
          			
          			var header = $('<h1>').prependTo(browser).text(all_libs).css({
          				position: 'absolute',
          				top: 0,
          				left: 0,
          				width: '100%'
          			});
          			
          			var cancel = $('<button>' + uiStrings.common.cancel + '</button>')
          				.appendTo(browser)
          				.on("click touchend", function() {
          				$('#imgbrowse_holder').hide();
          			}).css({
          				position: 'absolute',
          				top: 5,
          				right: -10
          			});
          			
          			var leftBlock = $('<span>').css({position:'absolute',top:5,left:10}).appendTo(browser);
          			
          			var back = $('<button hidden>' + uiStrings.imagelib.show_list + '</button>')
          				.appendTo(leftBlock)
          				.on("click touchend", function() {
          				frame.attr('src', 'about:blank').hide();
          				lib_opts.show();
          				header.text(all_libs);
          				back.hide();
          			}).css({
          				'margin-right': 5
          			}).hide();
          			
          			var type = $('<select><option value=s>' + 
          			uiStrings.imagelib.import_single + '</option><option value=m>' +
          			uiStrings.imagelib.import_multi + '</option><option value=o>' +
          			uiStrings.imagelib.open + '</option></select>').appendTo(leftBlock).change(function() {
          				mode = $(this).val();
          				switch (mode) {
          					case 's':
          					case 'o':
          						toggleMulti(false);
          						break;
          					
          					case 'm':
          						// Import multiple
          						toggleMulti(true);
          						break;
          				}
          			}).css({
          				'margin-top': 10
          			});
          			
          			cancel.prepend($.getSvgIcon('cancel', true));
          			back.prepend($.getSvgIcon('tool_imagelib', true));
          			
          			$.each(img_libs, function(i, opts) {
          				$('<li>')
          					.appendTo(lib_opts)
          					.text(opts.name)
          					.on("click touchend", function() {
          					frame.attr('src', opts.url).show();
          					header.text(opts.name);
          					lib_opts.hide();
          					back.show();
          				}).append('<span>' + opts.description + '</span>');
          			});
          			
          		} else {
          			$('#imgbrowse_holder').show();
          		}
          	}
          	
          	return {
          		svgicons: svgEditor.curConfig.extPath + "ext-imagelib.xml",
          		buttons: [{
          			id: "tool_imagelib",
          			type: "app_menu", // _flyout
          			position: 4,
          			title: "Image library",
          			events: {
          				"mouseup": showBrowser
          			}
          		}],
          		callback: function() {
          		
          			$('<style>').text('\
          				#imgbrowse_holder {\
          					position: absolute;\
          					top: 0;\
          					left: 0;\
          					width: 100%;\
          					height: 100%;\
          					background-color: rgba(0, 0, 0, .5);\
          					z-index: 5;\
          				}\
          				\
          				#imgbrowse {\
          					position: absolute;\
          					top: 25px;\
          					left: 25px;\
          					right: 25px;\
          					bottom: 25px;\
          					min-width: 300px;\
          					min-height: 200px;\
          					background: #B0B0B0;\
          					border: 1px outset #777;\
          				}\
          				#imgbrowse h1 {\
          					font-size: 20px;\
          					margin: .4em;\
          					text-align: center;\
          				}\
          				#lib_framewrap,\
          				#imgbrowse > ul {\
          					position: absolute;\
          					top: 45px;\
          					left: 10px;\
          					right: 10px;\
          					bottom: 10px;\
          					background: white;\
          					margin: 0;\
          					padding: 0;\
          				}\
          				#imgbrowse > ul {\
          					overflow: auto;\
          				}\
          				#imgbrowse > div {\
          					border: 1px solid #666;\
          				}\
          				#imglib_preview > div {\
          					padding: 5px;\
          					font-size: 12px;\
          				}\
          				#imglib_preview img {\
          					display: block;\
          					margin: 0 auto;\
          					max-height: 100px;\
          				}\
          				#imgbrowse li {\
          					list-style: none;\
          					padding: .5em;\
          					background: #E8E8E8;\
          					border-bottom: 1px solid #B0B0B0;\
          					line-height: 1.2em;\
          					font-style: sans-serif;\
          					}\
          				#imgbrowse li > span {\
          					color: #666;\
          					font-size: 15px;\
          					display: block;\
          					}\
          				#imgbrowse li:hover {\
          					background: #FFC;\
          					cursor: pointer;\
          					}\
          				#imgbrowse iframe {\
          					width: 100%;\
          					height: 100%;\
          					border: 0;\
          				}\
          			').appendTo('head');
          		}
          	};
          });
          
          
        • ext-imagelib.xml
          <svg xmlns="http://www.w3.org/2000/svg">
          	<g id="tool_imagelib">
          <svg width="201" height="211" xmlns="http://www.w3.org/2000/svg">
           <g>
            <path fill="#efe8b8" stroke="#d6c47c" stroke-linecap="round" d="m2.75,49.51761l56.56,-46.26761c12.73,8.25 25.71001,7 46.44,0.75l-56.03999,47.23944l-22.72002,25.01056l-24.23999,-26.73239z" id="svg_2" stroke-width="7"/>
            <path fill="#a03333" stroke="#3f3f3f" d="m3.75,203.25002c14.33301,7 30.66699,7 46,0l0,-152.00002c-14.66699,8 -32.33301,8 -47,0l1,152.00002zm45.75,-152.25002l56.25,-46.75l0,151l-56,48.00002m-47.25,-154.25002l57.25,-46.5" id="svg_1" stroke-width="7" stroke-linecap="round"/>
            <path fill="#efe8b8" stroke="#d6c47c" stroke-linecap="round" d="m49.75,49.51801l56.56,-46.26801c12.72998,8.25 25.71002,7 46.44,0.75l-56.03998,47.239l-22.72003,25.011l-24.23999,-26.73199z" stroke-width="7" id="svg_5"/>
            <path fill="#2f8e2f" stroke="#3f3f3f" d="m50.75,202.25c14.33301,7 30.66699,7.04253 46,0.04253l0,-151.04253c-14.66699,8 -32.33301,8 -47,0l1,151zm45.75,-151.25l56.25,-46.75l0,144.01219l-56,51.98782m-47.25,-151.25002l57.25,-46.5" stroke-width="7" stroke-linecap="round" id="svg_6"/>
            <path fill="#efe8b8" stroke="#d6c47c" stroke-linecap="round" d="m95.75,49.51801l56.56,-46.26801c12.72998,8.25 25.71002,7 46.44,0.75l-56.03998,47.239l-22.72003,25.011l-24.23999,-26.73199z" stroke-width="7" id="svg_10"/>
            <path fill="#336393" stroke="#3f3f3f" d="m96.75,200.29445c14.33301,7 30.66699,7 46,0l0,-149.04445c-14.66699,8 -32.33301,8 -47,0l1,149.04445zm45.75,-149.29445l56.25,-46.75l0,148.04445l-56,48m-47.25,-151.29445l57.25,-46.5" stroke-width="7" stroke-linecap="round" id="svg_11"/>
           </g>
          </svg>
          	</g>
          </svg>
        • ext-markers.js
          /*globals svgEditor, svgCanvas, $*/
          /*jslint vars: true, eqeq: true, todo: true */
          /*
           * ext-markers.js
           *
           * Licensed under the Apache License, Version 2
           *
           * Copyright(c) 2010 Will Schleter 
           *   based on ext-arrows.js by Copyright(c) 2010 Alexis Deveria
           *
           * This extension provides for the addition of markers to the either end
           * or the middle of a line, polyline, path, polygon. 
           * 
           * Markers may be either a graphic or arbitary text
           * 
           * to simplify the coding and make the implementation as robust as possible,
           * markers are not shared - every object has its own set of markers.
           * this relationship is maintained by a naming convention between the
           * ids of the markers and the ids of the object
           * 
           * The following restrictions exist for simplicty of use and programming
           *    objects and their markers to have the same color
           *    marker size is fixed
           *    text marker font, size, and attributes are fixed
           *    an application specific attribute - se_type - is added to each marker element
           *        to store the type of marker
           *
           * TODO:
           *    remove some of the restrictions above
           *    add option for keeping text aligned to horizontal
           *    add support for dimension extension lines
           *
           */
          
          svgEditor.addExtension("Markers", function(S) {
          	var // svgcontent = S.svgcontent,
          		addElem = S.addSvgElementFromJson,
          		selElems;
          
          	var mtypes = ['start','mid','end'];
          
          	var marker_prefix = 'se_marker_';
          	var id_prefix = 'mkr_';
          		
          	// note - to add additional marker types add them below with a unique id
          	// and add the associated icon(s) to marker-icons.svg
          	// the geometry is normallized to a 100x100 box with the origin at lower left
          	// Safari did not like negative values for low left of viewBox
          	// remember that the coordinate system has +y downward
          	var marker_types = {
          		nomarker: {},  
          		leftarrow:  
          			{element:'path', attr:{d:'M0,50 L100,90 L70,50 L100,10 Z'}},
          		rightarrow:
          			{element:'path', attr:{d:'M100,50 L0,90 L30,50 L0,10 Z'}},
          		textmarker:
          			{element:'text', attr: {x:0, y:0,'stroke-width':0,'stroke':'none','font-size':75,'font-family':'serif','text-anchor':'left',
          				'xml:space': 'preserve'}},
          		forwardslash:
          			{element:'path', attr:{d:'M30,100 L70,0'}},
          		reverseslash:
          			{element:'path', attr:{d:'M30,0 L70,100'}},
          		verticalslash:
          			{element:'path', attr:{d:'M50,0 L50,100'}},
          		box:
          			{element:'path', attr:{d:'M20,20 L20,80 L80,80 L80,20 Z'}},
          		star:
          			{element:'path', attr:{d:'M10,30 L90,30 L20,90 L50,10 L80,90 Z'}},
          		xmark:
          			{element:'path', attr:{d:'M20,80 L80,20 M80,80 L20,20'}},
          		triangle:
          			{element:'path', attr:{d:'M10,80 L50,20 L80,80 Z'}},
          		mcircle:
          			{element:'circle', attr:{r:30, cx:50, cy:50}}			
          	};
          	
          	
          	var lang_list = {
          		"en":[
          			{id: "start_marker_list", title: "Select start marker type" },
          			{id: "mid_marker_list", title: "Select mid marker type" },
          			{id: "end_marker_list", title: "Select end marker type" },
          			{id: "nomarker", title: "No Marker" },
          			{id: "leftarrow", title: "Left Arrow" },
          			{id: "rightarrow", title: "Right Arrow" },
          			{id: "textmarker", title: "Text Marker" },
          			{id: "forwardslash", title: "Forward Slash" },
          			{id: "reverseslash", title: "Reverse Slash" },
          			{id: "verticalslash", title: "Vertical Slash" },
          			{id: "box", title: "Box" },
          			{id: "star", title: "Star" },
          			{id: "xmark", title: "X" },
          			{id: "triangle", title: "Triangle" },
          			{id: "mcircle", title: "Circle" },
          			{id: "leftarrow_o", title: "Open Left Arrow" },
          			{id: "rightarrow_o", title: "Open Right Arrow" },
          			{id: "box_o", title: "Open Box" },
          			{id: "star_o", title: "Open Star" },
          			{id: "triangle_o", title: "Open Triangle" },
          			{id: "mcircle_o", title: "Open Circle" }
          		]
          	};
          
          
          	// duplicate shapes to support unfilled (open) marker types with an _o suffix
          	$.each(['leftarrow','rightarrow','box','star','mcircle','triangle'],function(i,v) {
          		marker_types[v+'_o'] = marker_types[v];
          	});
          	
          	// elem = a graphic element will have an attribute like marker-start
          	// attr - marker-start, marker-mid, or marker-end
          	// returns the marker element that is linked to the graphic element
          	function getLinked(elem, attr) {
          		var str = elem.getAttribute(attr);
          		if(!str) {return null;}
          		var m = str.match(/\(\#(.*)\)/);
          		if(!m || m.length !== 2) {
          			return null;
          		}
          		return S.getElem(m[1]);
          	}
          
          	function setIcon(pos,id) {
          		if (id.substr(0,1) !== '\\') {id = '\\textmarker';}
          		var ci = '#'+id_prefix+pos+'_'+id.substr(1);
          		svgEditor.setIcon('#cur_' + pos +'_marker_list', $(ci).children());
          		$(ci).addClass('current').siblings().removeClass('current');
          	}
          
          	// toggles context tool panel off/on
          	//sets the controls with the selected element's settings
          	function showPanel(on) {
          		$('#marker_panel').toggle(on);
          
          		if(on) {
          			var el = selElems[0];
          			var val;
          			var ci;
          
          			$.each(mtypes, function(i, pos) {
          				var m = getLinked(el, "marker-" + pos);
          				var txtbox = $('#' + pos + '_marker');
          				if (!m) {
          					val = '\\nomarker';
          					ci = val;
          					txtbox.hide(); // hide text box
          				} else {
          					if (!m.attributes.se_type) {return;} // not created by this extension
          					val = '\\' + m.attributes.se_type.textContent;
          					ci = val;
          					if (val === '\\textmarker') {
          						val = m.lastChild.textContent;
          						//txtbox.show(); // show text box
          					} else {
          						txtbox.hide(); // hide text box
          					}
          				}
          				txtbox.val(val);				
          				setIcon(pos,ci);
          			});
          		}
          	}	
          
          	function addMarker(id, val) {
          		var txt_box_bg = '#ffffff';
          		var txt_box_border = 'none';
          		var txt_box_stroke_width = 0;
          		
          		var marker = S.getElem(id);
          
          		if (marker) {return;}
          
          		if (val == '' || val == '\\nomarker') {return;}
          
          		var el = selElems[0];		 
          		var color = el.getAttribute('stroke');
          		//NOTE: Safari didn't like a negative value in viewBox
          		//so we use a standardized 0 0 100 100
          		//with 50 50 being mapped to the marker position
          		var refX = 50;
          		var refY = 50;
          		var viewBox = "0 0 100 100";
          		var markerWidth = 5;
          		var markerHeight = 5;
          		var strokeWidth = 10;
          		var se_type;
          		if (val.substr(0,1) === '\\') {se_type = val.substr(1);}
          		else {se_type = 'textmarker';}
          
          		if (!marker_types[se_type]) {return;} // an unknown type!
          		
          		// create a generic marker
          		marker = addElem({
          			"element": "marker",
          			"attr": {
          			"id": id,
          			"markerUnits": "strokeWidth",
          			"orient": "auto",
          			"style": "pointer-events:none",
          			"se_type": se_type
          		}
          		});
          
          		if (se_type != 'textmarker') {
          			var mel = addElem(marker_types[se_type]);
          			var fillcolor = color;
          			if (se_type.substr(-2) === '_o') {fillcolor = 'none';}
          			mel.setAttribute('fill', fillcolor);
          			mel.setAttribute('stroke', color);
          			mel.setAttribute('stroke-width', strokeWidth);
          			marker.appendChild(mel);
          		} else {
          			var text = addElem(marker_types[se_type]);
          			// have to add text to get bounding box
          			text.textContent = val;
          			var tb = text.getBBox();
          			//alert( tb.x + " " + tb.y + " " + tb.width + " " + tb.height);
          			var pad = 1;
          			var bb = tb;
          			bb.x = 0;
          			bb.y = 0;
          			bb.width += pad*2;
          			bb.height += pad*2;
          			// shift text according to its size
          			text.setAttribute('x', pad);
          			text.setAttribute('y', bb.height - pad - tb.height/4); // kludge?
          			text.setAttribute('fill',color);
          			refX = bb.width/2 + pad;
          			refY = bb.height/2 + pad;
          			viewBox = bb.x + " " + bb.y + " " + bb.width + " " + bb.height;
          			markerWidth = bb.width/10;
          			markerHeight = bb.height/10;
          
          			var box = addElem({
          				"element": "rect",
          				"attr": {
          					"x": bb.x,
          					"y": bb.y,
          					"width": bb.width,
          					"height": bb.height,
          					"fill": txt_box_bg,
          					"stroke": txt_box_border,
          					"stroke-width": txt_box_stroke_width
          				}
          			});
          			marker.setAttribute("orient",0);
          			marker.appendChild(box);
          			marker.appendChild(text);
          		} 
          
          		marker.setAttribute("viewBox",viewBox);
          		marker.setAttribute("markerWidth", markerWidth);
          		marker.setAttribute("markerHeight", markerHeight);
          		marker.setAttribute("refX", refX);
          		marker.setAttribute("refY", refY);
          		S.findDefs().appendChild(marker);
          
          		return marker;
          	}
          
          	function convertline(elem) {
          		// this routine came from the connectors extension
          		// it is needed because midpoint markers don't work with line elements
          		if (!(elem.tagName === 'line')) {return elem;}
          
          		// Convert to polyline to accept mid-arrow
          
          		var x1 = Number(elem.getAttribute('x1'));
          		var x2 = Number(elem.getAttribute('x2'));
          		var y1 = Number(elem.getAttribute('y1'));
          		var y2 = Number(elem.getAttribute('y2'));
          		var id = elem.id;
          
          		var mid_pt = (' '+((x1+x2)/2)+','+((y1+y2)/2) + ' ');
          		var pline = addElem({
          			"element": "polyline",
          			"attr": {
          				"points": (x1+','+y1+ mid_pt +x2+','+y2),
          				"stroke": elem.getAttribute('stroke'),
          				"stroke-width": elem.getAttribute('stroke-width'),
          				"fill": "none",
          				"opacity": elem.getAttribute('opacity') || 1
          			}
          		});
          		$.each(mtypes, function(i, pos) { // get any existing marker definitions
          			var nam = 'marker-'+pos;
          			var m = elem.getAttribute(nam);
          			if (m) {pline.setAttribute(nam,elem.getAttribute(nam));}
          		});
          		
          		var batchCmd = new S.BatchCommand();
          		batchCmd.addSubCommand(new S.RemoveElementCommand(elem, elem.parentNode));
          		batchCmd.addSubCommand(new S.InsertElementCommand(pline));
          		
          		$(elem).after(pline).remove();
          		svgCanvas.clearSelection();
          		pline.id = id;
          		svgCanvas.addToSelection([pline]);
          		S.addCommandToHistory(batchCmd);
          		return pline;
          	}
          
          	function setMarker() {
          		var poslist={'start_marker':'start','mid_marker':'mid','end_marker':'end'};
          		var pos = poslist[this.id];
          		var marker_name = 'marker-'+pos;
          		var val = this.value;
          		var el = selElems[0];
          		var marker = getLinked(el, marker_name);
          		if (marker) {$(marker).remove();}
          		el.removeAttribute(marker_name);
          		if (val == '') {val = '\\nomarker';}
          		if (val == '\\nomarker') {
          			setIcon(pos,val);
          			S.call("changed", selElems);
          			return;
          		}
          		// Set marker on element
          		var id = marker_prefix + pos + '_' + el.id;
          		addMarker(id, val);
          		svgCanvas.changeSelectedAttribute(marker_name, "url(#" + id + ")");
          		if (el.tagName === 'line' && pos == 'mid') {el = convertline(el);}
          		S.call("changed", selElems);
          		setIcon(pos,val);
          	}
          
          	// called when the main system modifies an object
          	// this routine changes the associated markers to be the same color
          	function colorChanged(elem) {
          		var color = elem.getAttribute('stroke');
          
          		$.each(mtypes, function(i, pos) {
          			var marker = getLinked(elem, 'marker-'+pos);
          			if (!marker) {return;}
          			if (!marker.attributes.se_type) {return;} // not created by this extension
          			var ch = marker.lastElementChild;
          			if (!ch) {return;}
          			var curfill = ch.getAttribute('fill');
          			var curstroke = ch.getAttribute('stroke');
          			if (curfill && curfill != 'none') {ch.setAttribute('fill', color);}
          			if (curstroke && curstroke != 'none') {ch.setAttribute('stroke', color);}
          		});
          	}
          
          	// called when the main system creates or modifies an object
          	// primary purpose is create new markers for cloned objects
          	function updateReferences(el) {
          		$.each(mtypes, function (i, pos) {
          			var id = marker_prefix + pos + '_' + el.id;
          			var marker_name = 'marker-'+pos;
          			var marker = getLinked(el, marker_name);
          			if (!marker || !marker.attributes.se_type) {return;} // not created by this extension
          			var url = el.getAttribute(marker_name);
          			if (url) {
          				var len = el.id.length;
          				var linkid = url.substr(-len-1, len);
          				if (el.id != linkid) {
          					var val = $('#'+pos + '_marker').attr('value');
          					addMarker(id, val);
          					svgCanvas.changeSelectedAttribute(marker_name, "url(#" + id + ")");
          					if (el.tagName === 'line' && pos == 'mid') {el = convertline(el);}
          					S.call("changed", selElems);
          				}
          			}
          		});
          	}
          
          	// simulate a change event a text box that stores the current element's marker type
          	function triggerTextEntry(pos, val) {
          		$('#'+pos+'_marker').val(val);
          		$('#'+pos+'_marker').change();
          		// var txtbox = $('#'+pos+'_marker');
          		// if (val.substr(0,1)=='\\') {txtbox.hide();}
          		// else {txtbox.show();}
          	}
          
          	function showTextPrompt(pos) {
          		var def = $('#'+pos+'_marker').val();
          		if (def.substr(0,1) === '\\') {def = '';}
          		$.prompt('Enter text for ' + pos + ' marker', def , function(txt) {
          			if (txt) {triggerTextEntry(pos, txt);}
          		});
          	}
          
          	/*
          	function setMarkerSet(obj) {
          		var parts = this.id.split('_');
          		var set = parts[2];
          		switch (set) {
          		case 'off':
          			triggerTextEntry('start','\\nomarker');
          			triggerTextEntry('mid','\\nomarker');
          			triggerTextEntry('end','\\nomarker');
          			break;
          		case 'dimension':
          			triggerTextEntry('start','\\leftarrow');
          			triggerTextEntry('end','\\rightarrow');
          			showTextPrompt('mid');
          			break;
          		case 'label':
          			triggerTextEntry('mid','\\nomarker');
          			triggerTextEntry('end','\\rightarrow');
          			showTextPrompt('start');
          			break;
          		}
          	}
          	*/
          	// callback function for a toolbar button click
          	function setArrowFromButton(obj) {
          		
          		var parts = this.id.split('_');
          		var pos = parts[1];
          		var val = parts[2];
          		if (parts[3]) { val += '_' + parts[3];}
          		
          		if (val != 'textmarker') {
          			triggerTextEntry(pos, '\\'+val);
          		} else {
          			showTextPrompt(pos);
          		}
          	}
          	
          	function getTitle(lang, id) {
          		var i, list = lang_list[lang];
          		for (i in list) {
          			if (list.hasOwnProperty(i) && list[i].id == id) {
          				return list[i].title;
          			}
          		}
          		return id;
          	}
          	
          	
          	// build the toolbar button array from the marker definitions
          	// TODO: need to incorporate language specific titles
          	function buildButtonList() {
          		var buttons=[];
          		// var i = 0;
          /*
          		buttons.push({
          			id:id_prefix + 'markers_off',
          			title:'Turn off all markers',
          			type:'context',
          			events: { 'click': setMarkerSet },
          			panel: 'marker_panel'
          		});
          		buttons.push({
          			id:id_prefix + 'markers_dimension',
          			title:'Dimension',
          			type:'context',
          			events: { 'click': setMarkerSet },
          			panel: 'marker_panel'
          		});
          		buttons.push({
          			id:id_prefix + 'markers_label',
          			title:'Label',
          			type:'context',
          			events: { 'click': setMarkerSet },
          			panel: 'marker_panel'
          		});
          */
          		$.each(mtypes, function (k, pos) {
          			var listname = pos + "_marker_list";
          			var def = true;
          			$.each(marker_types, function (id, v) {
          				var title = getTitle('en', id);
          				buttons.push({
          					id: id_prefix + pos + '_' + id,
          					svgicon: id,
          					title: title,
          					type: 'context',
          					events: {'click': setArrowFromButton},
          					panel: 'marker_panel',
          					list: listname,
          					isDefault: def
          				});
          				def = false;
          			});
          		});
          		return buttons;
          	}
          
          	return {
          		name: "Markers",
          		svgicons: svgEditor.curConfig.extPath + "markers-icons.xml",
          		buttons: buildButtonList(),
          		context_tools: [
          		   {
          			type: "input",
          			panel: "marker_panel",
          			title: "Start marker",
          			id: "start_marker",
          			label: "s",
          			size: 3,
          			events: { change: setMarker }
          		},{
          			type: "button-select",
          			panel: "marker_panel",
          			title: getTitle('en', 'start_marker_list'),
          			id: "start_marker_list",
          			colnum: 3,
          			events: { change: setArrowFromButton }
          		},{
          			type: "input",
          			panel: "marker_panel",
          			title: "Middle marker",
          			id: "mid_marker",
          			label: "m",
          			defval: "",
          			size: 3,
          			events: { change: setMarker }
          		},{
          			type: "button-select",
          			panel: "marker_panel",
          			title: getTitle('en', 'mid_marker_list'),
          			id: "mid_marker_list",
          			colnum: 3,
          			events: { change: setArrowFromButton }
          		},{
          			type: "input",
          			panel: "marker_panel",
          			title: "End marker",
          			id: "end_marker",
          			label: "e",
          			size: 3,
          			events: { change: setMarker }
          		},{
          			type: "button-select",
          			panel: "marker_panel",
          			title: getTitle('en', 'end_marker_list'),
          			id: "end_marker_list",
          			colnum: 3,
          			events: { change: setArrowFromButton }
          		} ],
          		callback: function() {
          			$('#marker_panel').addClass('toolset').hide();
          			
          		},
          		addLangData: function(lang) {
          			return { data: lang_list[lang] };
          		},
          
          	selectedChanged: function(opts) {
          		// Use this to update the current selected elements
          		//console.log('selectChanged',opts);
          		selElems = opts.elems;
          
          		var i = selElems.length;
          		var marker_elems = ['line','path','polyline','polygon'];
          
          		while(i--) {
          			var elem = selElems[i];
          			if(elem && $.inArray(elem.tagName, marker_elems) !== -1) {
          				if (opts.selectedElement && !opts.multiselected) {
          					showPanel(true);
          				} else {
          					showPanel(false);
          				}
          			} else {
          				showPanel(false);
          			}
          		}
          	},
          
          	elementChanged: function(opts) {		
          		//console.log('elementChanged',opts);
          		var elem = opts.elems[0];
          		if (elem && (
          				elem.getAttribute("marker-start") ||
          				elem.getAttribute("marker-mid") ||
          				elem.getAttribute("marker-end")
          		)) {
          			colorChanged(elem);
          			updateReferences(elem);
          		}
          		// changing_flag = false; // Not apparently in use
          	}
          	};
          });
          
        • ext-mathjax.js
          /*globals MathJax, svgEditor, svgCanvas, $*/
          /*jslint es5: true, todo: true, vars: true*/
          /*
           * ext-mathjax.js
           *
           * Licensed under the Apache License
           *
           * Copyright(c) 2013 Jo Segaert
           *
           */
          
          svgEditor.addExtension("mathjax", function() {'use strict';
            // Configuration of the MathJax extention.
          
            // This will be added to the head tag before MathJax is loaded.
            var /*mathjaxConfiguration = '<script type="text/x-mathjax-config">\
                  MathJax.Hub.Config({\
                    extensions: ["tex2jax.js"],\
          			    jax: ["input/TeX","output/SVG"],\
                    showProcessingMessages: true,\
                    showMathMenu: false,\
                    showMathMenuMSIE: false,\
                    errorSettings: {\
                      message: ["[Math Processing Error]"],\
                      style: {color: "#CC0000", "font-style":"italic"}\
                    },\
                    elements: [],\
                      tex2jax: {\
                      ignoreClass: "tex2jax_ignore2", processClass: "tex2jax_process2",\
                    },\
                    TeX: {\
                      extensions: ["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"]\
                    },\
                    "SVG": {\
                    }\
                });\
                </script>',*/
              // mathjaxSrc = 'http://cdn.mathjax.org/mathjax/latest/MathJax.js',
              mathjaxSrcSecure = 'https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=TeX-AMS-MML_SVG.js',
              math,
              locationX,
              locationY,
              mathjaxLoaded = false,
              uiStrings = svgEditor.uiStrings;
          
            // TODO: Implement language support. Move these uiStrings to the locale files and the code to the langReady callback.
            $.extend(uiStrings, {
              mathjax: {
                embed_svg: 'Save as mathematics',
                embed_mathml: 'Save as figure',
                svg_save_warning: 'The math will be transformed into a figure is manipulatable like everything else. You will not be able to manipulate the TeX-code anymore. ',
                mathml_save_warning: 'Advised. The math will be saved as a figure.',
                title: 'Mathematics code editor'
              }
            });
          
          
            function saveMath() {
              var code = $('#mathjax_code_textarea').val();
              // displaystyle to force MathJax NOT to use the inline style. Because it is
              // less fancy!
              MathJax.Hub.queue.Push(['Text', math, '\\displaystyle{' + code + '}']);
          
              /*
               * The MathJax library doesn't want to bloat your webpage so it creates 
               * every symbol (glymph) you need only once. These are saved in a <svg> on  
               * the top of your html document, just under the body tag. Each glymph has
               * its unique id and is saved as a <path> in the <defs> tag of the <svg>
               * 
               * Then when the symbols are needed in the rest of your html document they
               * are refferd to by a <use> tag.
               * Because of bug 1076 we can't just grab the defs tag on the top and add it 
               * to your formula's <svg> and copy the lot. So we have to replace each 
               * <use> tag by it's <path>.
               */
              MathJax.Hub.queue.Push(
                function() {
                  var mathjaxMath = $('.MathJax_SVG');
                  var svg = $(mathjaxMath.html());
                  svg.find('use').each(function() {
                    var x, y, id, transform;
          
                    // TODO: find a less pragmatic and more elegant solution to this.
                    if ($(this).attr('href')) {
                      id = $(this).attr('href').slice(1); // Works in Chrome.
                    } else {
                      id = $(this).attr('xlink:href').slice(1); // Works in Firefox.
                    }
          
                    var glymph = $('#' + id).clone().removeAttr('id');
                    x = $(this).attr('x');
                    y = $(this).attr('y');
                    transform = $(this).attr('transform');
                    if (transform && ( x || y )) {
                      glymph.attr('transform', transform + ' translate(' + x + ',' + y + ')');
                    }
                    else if (transform) {
                      glymph.attr('transform', transform);
                    }
                    else if (x || y) {
                      glymph.attr('transform', 'translate(' + x + ',' + y + ')');
                    }
                    $(this).replaceWith(glymph);
                  });
                  // Remove the style tag because it interferes with SVG-Edit.
                  svg.removeAttr('style');
                  svg.attr('xmlns', 'http://www.w3.org/2000/svg');
                  svgCanvas.importSvgString($('<div>').append(svg.clone()).html(), true);
                  svgCanvas.ungroupSelectedElement();
                  // TODO: To undo the adding of the Formula you now have to undo twice.
                  // This should only be once!
                  svgCanvas.moveSelectedElements(locationX, locationY, true);
                }
              );
            }
          
            return {
              name: "MathJax",
              svgicons: svgEditor.curConfig.extPath + "mathjax-icons.xml",
              buttons: [{
                  id: "tool_mathjax",
                  type: "mode",
                  title: "Add Mathematics",
                  events: {
                    click: function() {
                      // Only load Mathjax when needed, we don't want to strain Svg-Edit any more. 
                      // From this point on it is very probable that it will be needed, so load it.
                      if (mathjaxLoaded === false) {
          
                        $('<div id="mathjax">\
                          <!-- Here is where MathJax creates the math -->\
                            <div id="mathjax_creator" class="tex2jax_process" style="display:none">\
                              $${}$$\
                            </div>\
                            <div id="mathjax_overlay"></div>\
                            <div id="mathjax_container">\
                              <div id="tool_mathjax_back" class="toolbar_button">\
                                <button id="tool_mathjax_save">OK</button>\
                                <button id="tool_mathjax_cancel">Cancel</button>\
                              </div>\
                              <fieldset>\
                                <legend id="mathjax_legend">Mathematics Editor</legend>\
                                <label>\
                                  <span id="mathjax_explication">Please type your mathematics in \
                                  <a href="http://en.wikipedia.org/wiki/Help:Displaying_a_formula" target="_blank">TeX</a> code.</span></label>\
                                <textarea id="mathjax_code_textarea" spellcheck="false"></textarea>\
                              </fieldset>\
                            </div>\
                          </div>'
                          ).insertAfter('#svg_prefs').hide();
          
                        // Make the MathEditor draggable.
                        $('#mathjax_container').draggable({cancel: 'button,fieldset', containment: 'window'});
          
                        // Add functionality and picture to cancel button.
                        $('#tool_mathjax_cancel').prepend($.getSvgIcon('cancel', true))
                          .on("click touched", function() {
                          $('#mathjax').hide();
                        });
          
                        // Add functionality and picture to the save button.
                        $('#tool_mathjax_save').prepend($.getSvgIcon('ok', true))
                          .on("click touched", function() {
                          saveMath();
                          $('#mathjax').hide();
                        });
          
                        // MathJax preprocessing has to ignore most of the page.
                        $('body').addClass('tex2jax_ignore');
          
                        // Now get (and run) the MathJax Library.
                        $.getScript(mathjaxSrcSecure)
                          .done(function(script, textStatus) {
          
                          // When MathJax is loaded get the div where the math will be rendered.
                          MathJax.Hub.queue.Push(function() {
                            math = MathJax.Hub.getAllJax('#mathjax_creator')[0];
                            console.log(math);
                            mathjaxLoaded = true;
                            console.log('MathJax Loaded');
                          });
          
                        })
                          // If it fails.
                          .fail(function() {
                          console.log("Failed loadeing MathJax.");
                          $.alert("Failed loading MathJax. You will not be able to change the mathematics.");
                        });
                      }
                      // Set the mode.
                      svgCanvas.setMode("mathjax");
                    }
                  }
                }],
              
              mouseDown: function() {
                if (svgCanvas.getMode() === "mathjax") {
                  return {started: true};
                }
              },
              mouseUp: function(opts) {
                if (svgCanvas.getMode() === "mathjax") {
                  // Get the coordinates from your mouse.
                  var zoom = svgCanvas.getZoom();
                  // Get the actual coordinate by dividing by the zoom value
                  locationX = opts.mouse_x / zoom;
                  locationY = opts.mouse_y / zoom;
          
                  $('#mathjax').show();
                  return {started: false}; // Otherwise the last selected object dissapears.
                }
              },
              callback: function() {
                $('<style>').text('\
          				#mathjax fieldset{\
          					padding: 5px;\
          					margin: 5px;\
          					border: 1px solid #DDD;\
          				}\
          				#mathjax label{\
          					display: block;\
          					margin: .5em;\
          				}\
          				#mathjax legend {\
          					max-width:195px;\
          				}\
          				#mathjax_overlay {\
          					position: absolute;\
          					top: 0;\
          					left: 0;\
          					right: 0;\
          					bottom: 0;\
          					background-color: black;\
          					opacity: 0.6;\
          					z-index: 20000;\
          				}\
          				\
          				#mathjax_container {\
          					position: absolute;\
          					top: 50px;\
          					padding: 10px;\
          					background-color: #B0B0B0;\
          					border: 1px outset #777;\
          					opacity: 1.0;\
          					font-family: Verdana, Helvetica, sans-serif;\
          					font-size: .8em;\
          					z-index: 20001;\
          				}\
          				\
          				#tool_mathjax_back {\
          					margin-left: 1em;\
          					overflow: auto;\
          				}\
          				\
          				#mathjax_legend{\
          					font-weight: bold;\
          					font-size:1.1em;\
          				}\
          				\
          				#mathjax_code_textarea {\\n\
                    margin: 5px .7em;\
          					overflow: hidden;\
                    width: 416px;\
          					display: block;\
          					height: 100px;\
          				}\
          			').appendTo('head');
          
                // Add the MathJax configuration.
                //$(mathjaxConfiguration).appendTo('head');
              }
            };
          });
          
        • ext-overview_window.js
          /*globals svgEditor, svgedit, $ */
          /*jslint es5: true, vars: true*/
          /*
           * ext-overview_window.js
           *
           * Licensed under the MIT License
           *
           * Copyright(c) 2013 James Sacksteder
           *
           */
          
          var overviewWindowGlobals = {};
          svgEditor.addExtension("overview_window", function() {	'use strict';
          	//define and insert the base html element
          	var propsWindowHtml= "\
          		<div id=\"overview_window_content_pane\" style=\" width:100%; word-wrap:break-word;  display:inline-block; margin-top:20px;\">\
          			<div id=\"overview_window_content\" style=\"position:relative; left:12px; top:0px;\">\
          				<div style=\"background-color:#A0A0A0; display:inline-block; overflow:visible;\">\
          					<svg id=\"overviewMiniView\" width=\"150\" height=\"100\" x=\"0\" y=\"0\" viewBox=\"0 0 4800 3600\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\
          						<use x=\"0\" y=\"0\" xlink:href=\"#svgroot\"> </use>\
          					 </svg>\
          					 <div id=\"overview_window_view_box\" style=\"min-width:50px; min-height:50px; position:absolute; top:30px; left:30px; z-index:5; background-color:rgba(255,0,102,0.3);\">\
          					 </div>\
          				 </div>\
          			</div>\
          		</div>";
          	$("#sidepanels").append(propsWindowHtml);
          
          	//define dynamic animation of the view box.
          	var updateViewBox = function(){
          		var portHeight=parseFloat($("#workarea").css("height"));
          		var portWidth=parseFloat($("#workarea").css("width"));
          		var portX=$("#workarea").scrollLeft();
          		var portY=$("#workarea").scrollTop();
          		var windowWidth=parseFloat($("#svgcanvas").css("width"));
          		var windowHeight=parseFloat($("#svgcanvas").css("height"));
          		var overviewWidth=$("#overviewMiniView").attr("width");
          		var overviewHeight=$("#overviewMiniView").attr("height");
          		
          		var viewBoxX=portX/windowWidth*overviewWidth;
          		var viewBoxY=portY/windowHeight*overviewHeight;
          		var viewBoxWidth=portWidth/windowWidth*overviewWidth;
          		var viewBoxHeight=portHeight/windowHeight*overviewHeight;
          		
          		$("#overview_window_view_box").css("min-width",viewBoxWidth+"px");
          		$("#overview_window_view_box").css("min-height",viewBoxHeight+"px");
          		$("#overview_window_view_box").css("top",viewBoxY+"px");
          		$("#overview_window_view_box").css("left",viewBoxX+"px");
          	};
          	$("#workarea").scroll(function(){
          		if(!(overviewWindowGlobals.viewBoxDragging)){
          			updateViewBox();
          		}
          	});
          	$("#workarea").resize(updateViewBox);
          	updateViewBox();
          	
          	//comphensate for changes in zoom and canvas size
          	var updateViewDimensions= function(){
          		var viewWidth=$("#svgroot").attr("width");
          		var viewHeight=$("#svgroot").attr("height");
          		var viewX=640;
          		var viewY=480;
          		
          		if(svgedit.browser.isIE())
          		{
          			//This has only been tested with Firefox 10 and IE 9 (without chrome frame).
          			//I am not sure if if is Firefox or IE that is being non compliant here.
          			//Either way the one that is noncompliant may become more compliant later.
          			//TAG:HACK  
          			//TAG:VERSION_DEPENDENT
          			//TAG:BROWSER_SNIFFING
          			viewX=0;
          			viewY=0;
          		}
          		
          		var svgWidth_old=$("#overviewMiniView").attr("width");
          		var svgHeight_new=viewHeight/viewWidth*svgWidth_old;
          		$("#overviewMiniView").attr("viewBox",viewX+" "+viewY+" "+viewWidth+" "+viewHeight);
          		$("#overviewMiniView").attr("height",svgHeight_new);
          		updateViewBox();
          	};
          	updateViewDimensions();
          	
          	//set up the overview window as a controller for the view port.
          	overviewWindowGlobals.viewBoxDragging=false;
          	var updateViewPortFromViewBox = function(){
          	
          		var windowWidth =parseFloat($("#svgcanvas").css("width" ));
          		var windowHeight=parseFloat($("#svgcanvas").css("height"));
          		var overviewWidth =$("#overviewMiniView").attr("width" );
          		var overviewHeight=$("#overviewMiniView").attr("height");
          		var viewBoxX=parseFloat($("#overview_window_view_box").css("left"));
          		var viewBoxY=parseFloat($("#overview_window_view_box").css("top" ));
          		
          		var portX=viewBoxX/overviewWidth *windowWidth;
          		var portY=viewBoxY/overviewHeight*windowHeight;
          
          		$("#workarea").scrollLeft(portX);
          		$("#workarea").scrollTop(portY);
          	};
          	$( "#overview_window_view_box" ).draggable({  containment: "parent"
          		,drag: updateViewPortFromViewBox
          		,start:function(){overviewWindowGlobals.viewBoxDragging=true; }
          		,stop :function(){overviewWindowGlobals.viewBoxDragging=false;}
          	});  
          	$("#overviewMiniView").click(function(evt){
          		//Firefox doesn't support evt.offsetX and evt.offsetY
          		var mouseX=(evt.offsetX || evt.originalEvent.layerX);
          		var mouseY=(evt.offsetY || evt.originalEvent.layerY);
          		var overviewWidth =$("#overviewMiniView").attr("width" );
          		var overviewHeight=$("#overviewMiniView").attr("height");
          		var viewBoxWidth =parseFloat($("#overview_window_view_box").css("min-width" ));
          		var viewBoxHeight=parseFloat($("#overview_window_view_box").css("min-height"));
           
          		var viewBoxX=mouseX - 0.5 * viewBoxWidth;
          		var viewBoxY=mouseY- 0.5 * viewBoxHeight;
          		//deal with constraints
          		if(viewBoxX<0){
          			viewBoxX=0;
          		}
          		if(viewBoxY<0){
          			viewBoxY=0;
          		}
          		if(viewBoxX+viewBoxWidth>overviewWidth){
          			viewBoxX=overviewWidth-viewBoxWidth;
          		}
          		if(viewBoxY+viewBoxHeight>overviewHeight){
          			viewBoxY=overviewHeight-viewBoxHeight;
          		}
          		
          		$("#overview_window_view_box").css("top",viewBoxY+"px");
          		$("#overview_window_view_box").css("left",viewBoxX+"px");
          		updateViewPortFromViewBox();
          	});
          	
          	return {
          		name: "overview window",
          		canvasUpdated: updateViewDimensions,
          		workareaResized: updateViewBox
          	};
          });
          
        • ext-panning.js
          /*globals svgEditor, svgCanvas*/
          /*jslint eqeq: true*/
          /*
           * ext-panning.js
           *
           * Licensed under the MIT License
           *
           * Copyright(c) 2013 Luis Aguirre
           *
           */
           
          /* 
          	This is a very basic SVG-Edit extension to let tablet/mobile devices panning without problem
          */
          
          svgEditor.addExtension('ext-panning', function() {'use strict';
          	return {
          		name: 'Extension Panning',
          		svgicons: svgEditor.curConfig.extPath + 'ext-panning.xml',
          		buttons: [{
          			id: 'ext-panning',
          			type: 'mode',
          			title: 'Panning',
          			events: {
          				click: function() {
          					svgCanvas.setMode('ext-panning');
          				}
          			}
          		}],
          		mouseDown: function() {
          			if (svgCanvas.getMode() == 'ext-panning') {
          				svgEditor.setPanning(true);
          				return {started: true};
          			}
          		},
          		mouseUp: function() {
          			if (svgCanvas.getMode() == 'ext-panning') {
          				svgEditor.setPanning(false);
          				return {
          					keep: false,
          					element: null
          				};
          			}
          		}
          	};
          });
          
        • ext-panning.xml
          <svg xmlns="http://www.w3.org/2000/svg">
          	<g id="ext-panning">
          	  <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300">
                            <path fill="#7f0000" stroke="#000000" stroke-width="10" d="m1.00037,150.34581l55.30305,-55.30267l0,27.65093l22.17356,0l0,-44.21833l44.21825,0l0,-22.17357l-27.65095,0l55.30267,-55.30292l55.3035,55.30292l-27.65175,0l0,22.17357l44.21835,0l0,44.21833l22.17357,0l0,-27.65093l55.30345,55.30267l-55.30345,55.3035l0,-27.65175l-22.17357,0l0,44.21834l-44.21835,0l0,22.17355l27.65175,0l-55.3035,55.30348l-55.30267,-55.30348l27.65095,0l0,-22.17355l-44.21825,0l0,-44.21834l-22.17356,0l0,27.65175l-55.30305,-55.3035z"></path>
            	</svg>
          	</g>
          </svg>
          
        • ext-php_savefile.js
          /*globals $, svgCanvas, svgEditor*/
          /*jslint regexp:true*/
          // TODO: Might add support for "exportImage" custom
          //   handler as in "ext-server_opensave.js" (and in savefile.php)
          
          svgEditor.addExtension("php_savefile", {
          	callback: function() {
          		'use strict';
          		function getFileNameFromTitle () {
          			var title = svgCanvas.getDocumentTitle();
          			return $.trim(title);
          		}
          		var save_svg_action = svgEditor.curConfig.extPath + 'savefile.php';
          		svgEditor.setCustomHandlers({
          			save: function(win, data) {
          				var svg = '<?xml version="1.0" encoding="UTF-8"?>\n' + data,
          					filename = getFileNameFromTitle();
          
          				$.post(save_svg_action, {output_svg: svg, filename: filename});
          			}
          		});
          	}
          });
          
        • ext-polygon.js
          /*globals svgEditor, svgCanvas, svgedit, $*/
          /*jslint vars: true, eqeq: true, todo: true */
          /*
           * ext-polygon.js
           *
           *
           * Copyright(c) 2010 CloudCanvas, Inc.
           * All rights reserved
           *
           */
          svgEditor.addExtension("polygon", function(S) {'use strict';
          
              var // NS = svgedit.NS,
          		// svgcontent = S.svgcontent,
          		// addElem = S.addSvgElementFromJson,
          		selElems,
          		editingitex = false,
          		// svgdoc = S.svgroot.parentNode.ownerDocument,
          		// newFOG, newFOGParent, newDef, newImageName, newMaskID, modeChangeG,
          		// edg = 0,
          		// undoCommand = "Not image";
          		started, newFO;
              
              // var ccZoom;
              // var wEl, hEl;
              // var wOffset, hOffset;
              // var ccRBG;
          	var ccRgbEl;
              // var ccOpacity;
              // var brushW, brushH;
          	var shape;
              
              // var ccDebug = document.getElementById('debugpanel');
              
              /* var properlySourceSizeTextArea = function(){
               // TODO: remove magic numbers here and get values from CSS
               var height = $('#svg_source_container').height() - 80;
               $('#svg_source_textarea').css('height', height);
               }; */
              function showPanel(on){
                  var fc_rules = $('#fc_rules');
                  if (!fc_rules.length) {
                      fc_rules = $('<style id="fc_rules"></style>').appendTo('head');
                  }
                  fc_rules.text(!on ? "" : " #tool_topath { display: none !important; }");
                  $('#polygon_panel').toggle(on);
              }
              
          	/*
              function toggleSourceButtons(on){
                  $('#tool_source_save, #tool_source_cancel').toggle(!on);
                  $('#polygon_save, #polygon_cancel').toggle(on);
              }
          	*/
              
              function setAttr(attr, val){
                  svgCanvas.changeSelectedAttribute(attr, val);
                  S.call("changed", selElems);
              }
              
              function cot(n){
                  return 1 / Math.tan(n);
              }
              
              function sec(n){
                  return 1 / Math.cos(n);
              }
          
          	/**
          	* Obtained from http://code.google.com/p/passenger-top/source/browse/instiki/public/svg-edit/editor/extensions/ext-itex.js?r=3
          	* This function sets the content of of the currently-selected foreignObject element,
          	*   based on the itex contained in string.
          	* @param {string} tex The itex text.
          	* @returns This function returns false if the set was unsuccessful, true otherwise.
          	*/
          	/*
          	function setItexString(tex) {
          		var mathns = 'http://www.w3.org/1998/Math/MathML',
          			xmlnsns = 'http://www.w3.org/2000/xmlns/',
          			ajaxEndpoint = '../../itex';
          		var elt = selElems[0];
          		try {
          			var math = svgdoc.createElementNS(mathns, 'math');
          			math.setAttributeNS(xmlnsns, 'xmlns', mathns);
          			math.setAttribute('display', 'inline');
          			var semantics = document.createElementNS(mathns, 'semantics');
          			var annotation = document.createElementNS(mathns, 'annotation');
          			annotation.setAttribute('encoding', 'application/x-tex');
          			annotation.textContent = tex;
          			var mrow = document.createElementNS(mathns, 'mrow');
          			semantics.appendChild(mrow);
          			semantics.appendChild(annotation);
          			math.appendChild(semantics);
          			// make an AJAX request to the server, to get the MathML
          			$.post(ajaxEndpoint, {'tex': tex, 'display': 'inline'}, function(data){
          				var children = data.documentElement.childNodes;
          				while (children.length > 0) {
          				     mrow.appendChild(svgdoc.adoptNode(children[0], true));
          				}
          				S.sanitizeSvg(math);
          				S.call("changed", [elt]);
          			});
          			elt.replaceChild(math, elt.firstChild);
          			S.call("changed", [elt]);
          			svgCanvas.clearSelection();
          		} catch(e) {
          			console.log(e);
          			return false;
          		}
          
          		return true;
          	}
          	*/
              return {
                  name: "polygon",
                  svgicons: svgEditor.curConfig.extPath + "polygon-icons.svg",
                  buttons: [{
                      id: "tool_polygon",
                      type: "mode",
                      title: "Polygon Tool",
                      position: 11,
                      events: {
                          'click': function(){
                              svgCanvas.setMode('polygon');
          					showPanel(true);
                          }
                      }
                  }],
                  
                  context_tools: [{
                      type: "input",
                      panel: "polygon_panel",
                      title: "Number of Sides",
                      id: "polySides",
                      label: "sides",
                      size: 3,
                      defval: 5,
                      events: {
                          change: function(){
                              setAttr('sides', this.value);
                          }
                      }
                  }],
                  
                  callback: function(){
                  
                      $('#polygon_panel').hide();
                      
                      var endChanges = function(){
                      };
                      
                      // TODO: Needs to be done after orig icon loads
                      setTimeout(function(){
                          // Create source save/cancel buttons
                          var save = $('#tool_source_save').clone().hide().attr('id', 'polygon_save').unbind().appendTo("#tool_source_back").click(function(){
                          
                              if (!editingitex) {
          						return;
          					}
          					// Todo: Uncomment the setItexString() function above and handle ajaxEndpoint?
                              if (!setItexString($('#svg_source_textarea').val())) {
                                  $.confirm("Errors found. Revert to original?", function(ok){
                                      if (!ok) {
          								return false;
          							}
                                      endChanges();
                                  });
                              }
                              else {
                                  endChanges();
                              }
                              // setSelectMode();	
                          });
                          
                          var cancel = $('#tool_source_cancel').clone().hide().attr('id', 'polygon_cancel').unbind().appendTo("#tool_source_back").click(function(){
                              endChanges();
                          });
                          
                      }, 3000);
                  },
                  mouseDown: function(opts){
                      // var e = opts.event;
                      var rgb = svgCanvas.getColor("fill");
                      ccRgbEl = rgb.substring(1, rgb.length);
                      var sRgb = svgCanvas.getColor("stroke");
                      // ccSRgbEl = sRgb.substring(1, rgb.length);
                      var sWidth = svgCanvas.getStrokeWidth();
                      
                      if (svgCanvas.getMode() == "polygon") {
                          started = true;
                          
                          newFO = S.addSvgElementFromJson({
                              "element": "polygon",
                              "attr": {
                                  "cx": opts.start_x,
                                  "cy": opts.start_y,
                                  "id": S.getNextId(),
                                  "shape": "regularPoly",
                                  "sides": document.getElementById("polySides").value,
                                  "orient": "x",
                                  "edge": 0,
                                  "fill": rgb,
                                  "strokecolor": sRgb,
                                  "strokeWidth": sWidth
                              }
                          });
                          
                          return {
                              started: true
                          };
                      }
                  },
                  mouseMove: function(opts){
                      if (!started) {
                          return;
          			}
                      if (svgCanvas.getMode() == "polygon") {
                          // var e = opts.event;
                          var x = opts.mouse_x;
                          var y = opts.mouse_y;
                          var c = $(newFO).attr(["cx", "cy", "sides", "orient", "fill", "strokecolor", "strokeWidth"]);
                          var cx = c.cx, cy = c.cy, fill = c.fill, strokecolor = c.strokecolor, strokewidth = c.strokeWidth, sides = c.sides,
          					// orient = c.orient,
          					edg = (Math.sqrt((x - cx) * (x - cx) + (y - cy) * (y - cy))) / 1.5;
                          newFO.setAttributeNS(null, "edge", edg);
                          
                          var inradius = (edg / 2) * cot(Math.PI / sides);
                          var circumradius = inradius * sec(Math.PI / sides);
                          var points = '';
          				var s;
                          for (s = 0; sides >= s; s++) {
                              var angle = 2.0 * Math.PI * s / sides;
                              x = (circumradius * Math.cos(angle)) + cx;
                              y = (circumradius * Math.sin(angle)) + cy;
                              
                              points += x + ',' + y + ' ';
                          }
                          
                          //var poly = newFO.createElementNS(NS.SVG, 'polygon');
                          newFO.setAttributeNS(null, 'points', points);
                          newFO.setAttributeNS(null, 'fill', fill);
                          newFO.setAttributeNS(null, 'stroke', strokecolor);
                          newFO.setAttributeNS(null, 'stroke-width', strokewidth);
          				// newFO.setAttributeNS(null, 'transform', "rotate(-90)");
                          shape = newFO.getAttributeNS(null, 'shape');
                          //newFO.appendChild(poly);
                          //DrawPoly(cx, cy, sides, edg, orient);
                          return {
                              started: true
                          };
                      }
                      
                  },
                  
                  mouseUp: function(opts){
                      if (svgCanvas.getMode() == "polygon") {
                          var attrs = $(newFO).attr("edge");
                          var keep = (attrs.edge != 0);
                         // svgCanvas.addToSelection([newFO], true);
                          return {
                              keep: keep,
                              element: newFO
                          };
                      }
                      
                  },
                  selectedChanged: function(opts){
                      // Use this to update the current selected elements
                      selElems = opts.elems;
                      
                      var i = selElems.length;
                      
                      while (i--) {
                          var elem = selElems[i];
                          if (elem && elem.getAttributeNS(null, 'shape') === 'regularPoly') {
                              if (opts.selectedElement && !opts.multiselected) {
                                  $('#polySides').val(elem.getAttribute("sides"));
                                  
                                  showPanel(true);
                              }
                              else {
                                  showPanel(false);
                              }
                          }
                          else {
                              showPanel(false);
                          }
                      }
                  },
                  elementChanged: function(opts){
                      // var elem = opts.elems[0];
                  }
              };
          });
          
        • ext-server_moinsave.js
          /*globals svgEditor, svgedit, svgCanvas, canvg, $, top*/
          /*jslint vars: true*/
          /*
           * ext-server_moinsave.js
           *
           * Licensed under the MIT License
           *
           * Copyright(c) 2010 Alexis Deveria
           *              2011 MoinMoin:ReimarBauer
           *                   adopted for moinmoins item storage. it sends in one post png and svg data
           *                   (I agree to dual license my work to additional GPLv2 or later)
           *
           */
          
          svgEditor.addExtension("server_opensave", {
          	callback: function() {'use strict';
          		var Utils = svgedit.utilities;
          		var save_svg_action = '/+modify';
          		
          		// Create upload target (hidden iframe)
          		var target = $('<iframe name="output_frame" src="#"/>').hide().appendTo('body');
          	
          		svgEditor.setCustomHandlers({
          			save: function(win, data) {
          				var svg = "<?xml version=\"1.0\"?>\n" + data;
          				var qstr = $.param.querystring();
          				var name = qstr.substr(9).split('/+get/')[1];
          				var svg_data = Utils.encode64(svg);
          				if(!$('#export_canvas').length) {
          					$('<canvas>', {id: 'export_canvas'}).hide().appendTo('body');
          				}
          				var c = $('#export_canvas')[0];
          				c.width = svgCanvas.contentW;
          				c.height = svgCanvas.contentH;
          				Utils.buildCanvgCallback(function () {
          					canvg(c, svg, {renderCallback: function() {
          						var datauri = c.toDataURL('image/png');
          						// var uiStrings = svgEditor.uiStrings;
          						var png_data = Utils.encode64(datauri); // Brett: This encoding seems unnecessary
          						var form = $('<form>').attr({
          						method: 'post',
          						action: save_svg_action + '/' + name,
          						target: 'output_frame'
          					}).append('<input type="hidden" name="png_data" value="' + png_data + '">')
          						.append('<input type="hidden" name="filepath" value="' + svg_data + '">')
          						.append('<input type="hidden" name="filename" value="' + 'drawing.svg">')
          						.append('<input type="hidden" name="contenttype" value="application/x-svgdraw">')
          						.appendTo('body')
          						.submit().remove();
          					}});
          				})();
          				alert("Saved! Return to Item View!");
          				top.window.location = '/'+name;
          			}
          		});
          	
          	}
          });
          
          
        • ext-server_opensave.js
          /*globals svgEditor, svgedit, svgCanvas, canvg, $*/
          /*jslint eqeq: true, browser:true*/
          /*
           * ext-server_opensave.js
           *
           * Licensed under the MIT License
           *
           * Copyright(c) 2010 Alexis Deveria
           *
           */
          
          svgEditor.addExtension("server_opensave", {
          	callback: function() {
          		'use strict';
          		function getFileNameFromTitle () {
          			var title = svgCanvas.getDocumentTitle();
          			// We convert (to underscore) only those disallowed Win7 file name characters
          			return $.trim(title).replace(/[\/\\:*?"<>|]/g, '_');
          		}
          		function xhtmlEscape(str) {
          			return str.replace(/&(?!amp;)/g, '&amp;').replace(/"/g, '&quot;').replace(/</g, '&lt;'); // < is actually disallowed above anyways
          		}
          		function clientDownloadSupport (filename, suffix, uri) {
          			var a,
          				support = $('<a>')[0].download === '';
          			if (support) {
          				a = $('<a>hidden</a>').attr({download: (filename || 'image') + suffix, href: uri}).css('display', 'none').appendTo('body');
          				a[0].click();
          				return true;
          			}
          		}
          		var open_svg_action, import_svg_action, import_img_action,
          			open_svg_form, import_svg_form, import_img_form,
          			save_svg_action = svgEditor.curConfig.extPath + 'filesave.php',
          			save_img_action = svgEditor.curConfig.extPath + 'filesave.php',
          			// Create upload target (hidden iframe)
          			cancelled = false,
          			Utils = svgedit.utilities;
          	
          		$('<iframe name="output_frame" src="#"/>').hide().appendTo('body');
          		svgEditor.setCustomHandlers({
          			save: function(win, data) {
          				var svg = '<?xml version="1.0" encoding="UTF-8"?>\n' + data, // Firefox doesn't seem to know it is UTF-8 (no matter whether we use or skip the clientDownload code) despite the Content-Disposition header containing UTF-8, but adding the encoding works
          					filename = getFileNameFromTitle();
          
          				if (clientDownloadSupport(filename, '.svg', 'data:image/svg+xml;charset=UTF-8;base64,' + Utils.encode64(svg))) {
          					return;
          				}
          
          				$('<form>').attr({
          					method: 'post',
          					action: save_svg_action,
          					target: 'output_frame'
          				}).append('<input type="hidden" name="output_svg" value="' + xhtmlEscape(svg) + '">')
          					.append('<input type="hidden" name="filename" value="' + xhtmlEscape(filename) + '">')
          					.appendTo('body')
          					.submit().remove();
          			},
          			exportPDF: function (win, data) {
          				var filename = getFileNameFromTitle(),
          					datauri = data.dataurlstring;
          				if (clientDownloadSupport(filename, '.pdf', datauri)) {
          					return;
          				}
          				$('<form>').attr({
          					method: 'post',
          					action: save_img_action,
          					target: 'output_frame'
          				}).append('<input type="hidden" name="output_img" value="' + datauri + '">')
          					.append('<input type="hidden" name="mime" value="application/pdf">')
          					.append('<input type="hidden" name="filename" value="' + xhtmlEscape(filename) + '">')
          					.appendTo('body')
          					.submit().remove();
          			},
          			// Todo: Integrate this extension with a new built-in exportWindowType, "download"
          			exportImage: function(win, data) {
          				var c,
          					issues = data.issues,
          					mimeType = data.mimeType,
          					quality = data.quality;
          				
          				if(!$('#export_canvas').length) {
          					$('<canvas>', {id: 'export_canvas'}).hide().appendTo('body');
          				}
          				c = $('#export_canvas')[0];
          				
          				c.width = svgCanvas.contentW;
          				c.height = svgCanvas.contentH;
          				Utils.buildCanvgCallback(function () {
          					canvg(c, data.svg, {renderCallback: function() {
          						var pre, filename, suffix,
          							datauri = quality ? c.toDataURL(mimeType, quality) : c.toDataURL(mimeType),
          							// uiStrings = svgEditor.uiStrings,
          							note = '';
          						
          						// Check if there are issues
          						if (issues.length) {
          							pre = "\n \u2022 ";
          							note += ("\n\n" + pre + issues.join(pre));
          						} 
          						
          						if(note.length) {
          							alert(note);
          						}
          						
          						filename = getFileNameFromTitle();
          						suffix = '.' + data.type.toLowerCase();
          						
          						if (clientDownloadSupport(filename, suffix, datauri)) {
          							return;
          						}
          
          						$('<form>').attr({
          							method: 'post',
          							action: save_img_action,
          							target: 'output_frame'
          						}).append('<input type="hidden" name="output_img" value="' + datauri + '">')
          							.append('<input type="hidden" name="mime" value="' + mimeType + '">')
          							.append('<input type="hidden" name="filename" value="' + xhtmlEscape(filename) + '">')
          							.appendTo('body')
          							.submit().remove();
          					}});
          				})();
          			}
          		});
          
          		// Do nothing if client support is found
          		if (window.FileReader) {return;}
          		
          		// Change these to appropriate script file
          		open_svg_action = svgEditor.curConfig.extPath + 'fileopen.php?type=load_svg';
          		import_svg_action = svgEditor.curConfig.extPath + 'fileopen.php?type=import_svg';
          		import_img_action = svgEditor.curConfig.extPath + 'fileopen.php?type=import_img';
          		
          		// Set up function for PHP uploader to use
          		svgEditor.processFile = function(str64, type) {
          			var xmlstr;
          			if (cancelled) {
          				cancelled = false;
          				return;
          			}
          		
          			$('#dialog_box').hide();
          
          			if (type !== 'import_img') {
          				xmlstr = Utils.decode64(str64);
          			}
          			
          			switch (type) {
          				case 'load_svg':
          					svgCanvas.clear();
          					svgCanvas.setSvgString(xmlstr);
          					svgEditor.updateCanvas();
          					break;
          				case 'import_svg':
          					svgCanvas.importSvgString(xmlstr);
          					svgEditor.updateCanvas();					
          					break;
          				case 'import_img':
          					svgCanvas.setGoodImage(str64);
          					break;
          			}
          		};
          	
          		// Create upload form
          		open_svg_form = $('<form>');
          		open_svg_form.attr({
          			enctype: 'multipart/form-data',
          			method: 'post',
          			action: open_svg_action,
          			target: 'output_frame'
          		});
          		
          		// Create import form
          		import_svg_form = open_svg_form.clone().attr('action', import_svg_action);
          
          		// Create image form
          		import_img_form = open_svg_form.clone().attr('action', import_img_action);
          		
          		// It appears necessary to rebuild this input every time a file is 
          		// selected so the same file can be picked and the change event can fire.
          		function rebuildInput(form) {
          			form.empty();
          			var inp = $('<input type="file" name="svg_file">').appendTo(form);
          			
          			
          			function submit() {
          				// This submits the form, which returns the file data using svgEditor.processFile()
          				form.submit();
          				
          				rebuildInput(form);
          				$.process_cancel("Uploading...", function() {
          					cancelled = true;
          					$('#dialog_box').hide();
          				});
          			}
          			
          			if(form[0] == open_svg_form[0]) {
          				inp.change(function() {
          					// This takes care of the "are you sure" dialog box
          					svgEditor.openPrep(function(ok) {
          						if(!ok) {
          							rebuildInput(form);
          							return;
          						}
          						submit();
          					});
          				});
          			} else {
          				inp.change(function() {
          					// This submits the form, which returns the file data using svgEditor.processFile()
          					submit();
          				});
          			}
          		}
          		
          		// Create the input elements
          		rebuildInput(open_svg_form);
          		rebuildInput(import_svg_form);
          		rebuildInput(import_img_form);
          
          		// Add forms to buttons
          		$("#tool_open").show().prepend(open_svg_form);
          		$("#tool_import").show().prepend(import_svg_form);
          		$("#tool_image").prepend(import_img_form);
          	}
          });
          
          
        • ext-shapes.js
          /*globals svgEditor, $, DOMParser*/
          /*jslint es5: true, vars: true, eqeq: true*/
          /*
           * ext-shapes.js
           *
           * Licensed under the MIT License
           *
           * Copyright(c) 2010 Christian Tzurcanu
           * Copyright(c) 2010 Alexis Deveria
           *
           */
          
          svgEditor.addExtension('shapes', function() {'use strict';
          	var current_d, cur_shape_id;
          	var canv = svgEditor.canvas;
          	var cur_shape;
          	var start_x, start_y;
          	var svgroot = canv.getRootElem();
          	var lastBBox = {};
          
          	// This populates the category list
          	var categories = {
          		basic: 'Basic',
          		object: 'Objects',
          		symbol: 'Symbols',
          		arrow: 'Arrows',
          		flowchart: 'Flowchart',
          		animal: 'Animals',
          		game: 'Cards & Chess',
          		dialog_balloon: 'Dialog balloons',
          		electronics: 'Electronics',
          		math: 'Mathematical',
          		music: 'Music',
          		misc: 'Miscellaneous',
          		raphael_1: 'raphaeljs.com set 1',
          		raphael_2: 'raphaeljs.com set 2'
          	};
          
          	var library = {
          		basic: {
          			data: {
          				'heart': 'm150,73c61,-175 300,0 0,225c-300,-225 -61,-400 0,-225z',
          				'frame': 'm0,0l300,0l0,300l-300,0zm35,-265l0,230l230,0l0,-230z',
          				'donut': 'm1,150l0,0c0,-82.29042 66.70958,-149 149,-149l0,0c39.51724,0 77.41599,15.69816 105.35889,43.64108c27.94293,27.94293 43.64111,65.84165 43.64111,105.35892l0,0c0,82.29041 -66.70958,149 -149,149l0,0c-82.29041,0 -149,-66.70959 -149,-149zm74.5,0l0,0c0,41.1452 33.35481,74.5 74.5,74.5c41.14522,0 74.5,-33.3548 74.5,-74.5c0,-41.1452 -33.3548,-74.5 -74.5,-74.5l0,0c-41.14519,0 -74.5,33.35481 -74.5,74.5z',
          				'triangle': 'm1,280.375l149,-260.75l149,260.75z',
          				'right_triangle': 'm1,299l0,-298l298,298z',
          				'diamond': 'm1,150l149,-149l149,149l-149,149l-149,-149z',
          				'pentagon': 'm1.00035,116.97758l148.99963,-108.4053l148.99998,108.4053l-56.91267,175.4042l-184.1741,0l-56.91284,-175.4042z',
          				'hexagon': 'm1,149.99944l63.85715,-127.71428l170.28572,0l63.85713,127.71428l-63.85713,127.71428l-170.28572,0l-63.85715,-127.71428z',
          				'septagon1': 'm0.99917,191.06511l29.51249,-127.7108l119.48833,-56.83673l119.48836,56.83673l29.51303,127.7108l-82.69087,102.41679l-132.62103,0l-82.69031,-102.41679z',
          				'heptagon': 'm1,88.28171l87.28172,-87.28171l123.43653,0l87.28172,87.28171l0,123.43654l-87.28172,87.28172l-123.43653,0l-87.28172,-87.28172l0,-123.43654z',
          				'decagon': 'm1,150.00093l28.45646,-88.40318l74.49956,-54.63682l92.08794,0l74.50002,54.63682l28.45599,88.40318l-28.45599,88.40318l-74.50002,54.63681l-92.08794,0l-74.49956,-54.63681l-28.45646,-88.40318z',
          				'dodecagon': 'm1,110.07421l39.92579,-69.14842l69.14842,-39.92579l79.85159,0l69.14842,39.92579l39.92578,69.14842l0,79.85159l-39.92578,69.14842l-69.14842,39.92578l-79.85159,0l-69.14842,-39.92578l-39.92579,-69.14842l0,-79.85159z',
          				'star_points_5': 'm1,116.58409l113.82668,0l35.17332,-108.13487l35.17334,108.13487l113.82666,0l-92.08755,66.83026l35.17514,108.13487l-92.08759,-66.83208l-92.08757,66.83208l35.17515,-108.13487l-92.08758,-66.83026z',
          				'trapezoid': 'm1,299l55.875,-298l186.25001,0l55.87498,298z',
          				'arrow_up': 'm1.49805,149.64304l148.50121,-148.00241l148.50121,148.00241l-74.25061,0l0,148.71457l-148.5012,0l0,-148.71457z',
          				'vertical_scrool': 'm37.375,261.625l0,-242.9375l0,0c0,-10.32083 8.36669,-18.6875 18.6875,-18.6875l224.25,0c10.32083,0 18.6875,8.36667 18.6875,18.6875c0,10.32081 -8.36667,18.6875 -18.6875,18.6875l-18.6875,0l0,242.9375c0,10.32083 -8.36668,18.6875 -18.6875,18.6875l-224.25,0l0,0c-10.32083,0 -18.6875,-8.36667 -18.6875,-18.6875c0,-10.32083 8.36667,-18.6875 18.6875,-18.6875zm37.375,-261.625l0,0c10.32081,0 18.6875,8.36667 18.6875,18.6875c0,10.32081 -8.36669,18.6875 -18.6875,18.6875c-5.1604,0 -9.34375,-4.18335 -9.34375,-9.34375c0,-5.16041 4.18335,-9.34375 9.34375,-9.34375l18.6875,0m186.875,18.6875l-205.5625,0m-37.375,224.25l0,0c5.1604,0 9.34375,4.18335 9.34375,9.34375c0,5.1604 -4.18335,9.34375 -9.34375,9.34375l18.6875,0m-18.6875,18.6875l0,0c10.32081,0 18.6875,-8.36667 18.6875,-18.6875l0,-18.6875',
          				'smiley': 'm68.49886,214.78838q81.06408,55.67332 161.93891,0m-144.36983,-109.9558c0,-8.60432 6.97517,-15.57949 15.57948,-15.57949c8.60431,0 15.57948,6.97517 15.57948,15.57949c0,8.60431 -6.97517,15.57947 -15.57948,15.57947c-8.60431,0 -15.57948,-6.97516 -15.57948,-15.57947m95.83109,0c0,-8.60432 6.97517,-15.57949 15.57948,-15.57949c8.60431,0 15.57947,6.97517 15.57947,15.57949c0,8.60431 -6.97516,15.57947 -15.57947,15.57947c-8.60429,0 -15.57948,-6.97516 -15.57948,-15.57947m-181.89903,44.73038l0,0c0,-82.60133 66.96162,-149.56296 149.56296,-149.56296c82.60135,0 149.56296,66.96162 149.56296,149.56296c0,82.60135 -66.96161,149.56296 -149.56296,149.56296c-82.60133,0 -149.56296,-66.96161 -149.56296,-149.56296zm0,0l0,0c0,-82.60133 66.96162,-149.56296 149.56296,-149.56296c82.60135,0 149.56296,66.96162 149.56296,149.56296c0,82.60135 -66.96161,149.56296 -149.56296,149.56296c-82.60133,0 -149.56296,-66.96161 -149.56296,-149.56296z',
          				'left_braket': 'm174.24565,298.5c-13.39009,0 -24.24489,-1.80908 -24.24489,-4.04065l0,-140.4187c0,-2.23158 -10.85481,-4.04065 -24.2449,-4.04065l0,0c13.39009,0 24.2449,-1.80907 24.2449,-4.04065l0,-140.4187l0,0c0,-2.23159 10.8548,-4.04066 24.24489,-4.04066',
          				'uml_actor': 'm40.5,100l219,0m-108.99991,94.00006l107,105m-107.00009,-106.00006l-100,106m99.5,-231l0,125m33.24219,-158.75781c0,18.35916 -14.88303,33.24219 -33.24219,33.24219c-18.35916,0 -33.2422,-14.88303 -33.2422,-33.24219c0.00002,-18.35915 14.88304,-33.24219 33.2422,-33.24219c18.35916,0 33.24219,14.88304 33.24219,33.24219z',
          				'dialog_balloon_1': 'm0.99786,35.96579l0,0c0,-19.31077 15.28761,-34.96524 34.14583,-34.96524l15.52084,0l0,0l74.50001,0l139.68748,0c9.05606,0 17.74118,3.68382 24.14478,10.24108c6.40356,6.55726 10.00107,15.45081 10.00107,24.72416l0,87.41311l0,0l0,52.44785l0,0c0,19.31078 -15.2876,34.96524 -34.14584,34.96524l-139.68748,0l-97.32507,88.90848l22.82506,-88.90848l-15.52084,0c-18.85822,0 -34.14583,-15.65446 -34.14583,-34.96524l0,0l0,-52.44785l0,0z',
          				'cloud': 'm182.05086,34.31005c-0.64743,0.02048 -1.27309,0.07504 -1.92319,0.13979c-10.40161,1.03605 -19.58215,7.63722 -24.24597,17.4734l-2.47269,7.44367c0.53346,-2.57959 1.35258,-5.08134 2.47269,-7.44367c-8.31731,-8.61741 -19.99149,-12.59487 -31.52664,-10.72866c-11.53516,1.8662 -21.55294,9.3505 -27.02773,20.19925c-15.45544,-9.51897 -34.72095,-8.94245 -49.62526,1.50272c-14.90431,10.44516 -22.84828,28.93916 -20.43393,47.59753l1.57977,7.58346c-0.71388,-2.48442 -1.24701,-5.01186 -1.57977,-7.58346l-0.2404,0.69894c-12.95573,1.4119 -23.58103,11.46413 -26.34088,24.91708c-2.75985,13.45294 2.9789,27.25658 14.21789,34.21291l17.54914,4.26352c-6.1277,0.50439 -12.24542,-0.9808 -17.54914,-4.26352c-8.66903,9.71078 -10.6639,24.08736 -4.94535,35.96027c5.71854,11.87289 17.93128,18.70935 30.53069,17.15887l7.65843,-2.02692c-2.46413,1.0314 -5.02329,1.70264 -7.65843,2.02692c7.15259,13.16728 19.01251,22.77237 32.93468,26.5945c13.92217,3.82214 28.70987,1.56322 41.03957,-6.25546c10.05858,15.86252 27.91113,24.19412 45.81322,21.38742c17.90208,-2.8067 32.66954,-16.26563 37.91438,-34.52742l1.82016,-10.20447c-0.27254,3.46677 -0.86394,6.87508 -1.82016,10.20447c12.31329,8.07489 27.80199,8.52994 40.52443,1.18819c12.72244,-7.34175 20.6609,-21.34155 20.77736,-36.58929l-4.56108,-22.7823l-17.96776,-15.41455c13.89359,8.70317 22.6528,21.96329 22.52884,38.19685c16.5202,0.17313 30.55292,-13.98268 36.84976,-30.22897c6.29684,-16.24631 3.91486,-34.76801 -6.2504,-48.68089c4.21637,-10.35873 3.96622,-22.14172 -0.68683,-32.29084c-4.65308,-10.14912 -13.23602,-17.69244 -23.55914,-20.65356c-2.31018,-13.45141 -11.83276,-24.27162 -24.41768,-27.81765c-12.58492,-3.54603 -25.98557,0.82654 -34.41142,11.25287l-5.11707,8.63186c1.30753,-3.12148 3.01521,-6.03101 5.11707,-8.63186c-5.93959,-8.19432 -15.2556,-12.8181 -24.96718,-12.51096z',
          				'cylinder': 'm299.0007,83.77844c0,18.28676 -66.70958,33.11111 -149.00002,33.11111m149.00002,-33.11111l0,0c0,18.28676 -66.70958,33.11111 -149.00002,33.11111c-82.29041,0 -148.99997,-14.82432 -148.99997,-33.11111m0,0l0,0c0,-18.28674 66.70956,-33.1111 148.99997,-33.1111c82.29044,0 149.00002,14.82436 149.00002,33.1111l0,132.44449c0,18.28674 -66.70958,33.11105 -149.00002,33.11105c-82.29041,0 -148.99997,-14.82431 -148.99997,-33.11105z',
          				'arrow_u_turn': 'm1.00059,299.00055l0,-167.62497l0,0c0,-72.00411 58.37087,-130.37499 130.375,-130.37499l0,0l0,0c34.57759,0 67.73898,13.7359 92.18906,38.18595c24.45006,24.45005 38.18593,57.61144 38.18593,92.18904l0,18.625l37.24997,0l-74.49995,74.50002l-74.50002,-74.50002l37.25,0l0,-18.625c0,-30.8589 -25.0161,-55.87498 -55.87498,-55.87498l0,0l0,0c-30.85892,0 -55.875,25.01608 -55.875,55.87498l0,167.62497z',
          				'arrow_left_up': 'm0.99865,224.5l74.50004,-74.5l0,37.25l111.74991,0l0,-111.75l-37.25,0l74.5,-74.5l74.5,74.5l-37.25,0l0,186.25l-186.24989,0l0,37.25l-74.50005,-74.5z',
          				'maximize': 'm1.00037,150.34581l55.30305,-55.30267l0,27.65093l22.17356,0l0,-44.21833l44.21825,0l0,-22.17357l-27.65095,0l55.30267,-55.30292l55.3035,55.30292l-27.65175,0l0,22.17357l44.21835,0l0,44.21833l22.17357,0l0,-27.65093l55.30345,55.30267l-55.30345,55.3035l0,-27.65175l-22.17357,0l0,44.21834l-44.21835,0l0,22.17355l27.65175,0l-55.3035,55.30348l-55.30267,-55.30348l27.65095,0l0,-22.17355l-44.21825,0l0,-44.21834l-22.17356,0l0,27.65175l-55.30305,-55.3035z',
          				'cross': 'm0.99844,99.71339l98.71494,0l0,-98.71495l101.26279,0l0,98.71495l98.71495,0l0,101.2628l-98.71495,0l0,98.71494l-101.26279,0l0,-98.71494l-98.71494,0z',
          				'plaque': 'm-0.00197,49.94376l0,0c27.5829,0 49.94327,-22.36036 49.94327,-49.94327l199.76709,0l0,0c0,27.5829 22.36037,49.94327 49.94325,49.94327l0,199.7671l0,0c-27.58289,0 -49.94325,22.36034 -49.94325,49.94325l-199.76709,0c0,-27.58292 -22.36037,-49.94325 -49.94327,-49.94325z',
          				'page': 'm249.3298,298.99744l9.9335,-39.73413l39.73413,-9.93355l-49.66763,49.66768l-248.33237,0l0,-298.00001l298.00001,0l0,248.33234'
          
          			},
          			buttons: []
          		}
          	};
          
          	var cur_lib = library.basic;
          	var mode_id = 'shapelib';
          	var startClientPos = {};
          
          	function loadIcons() {
          		$('#shape_buttons').empty().append(cur_lib.buttons);
          	}
          
          	function makeButtons(cat, shapes) {
          		var size = cur_lib.size || 300;
          		var fill = cur_lib.fill || false;
          		var off = size * 0.05;
          		var vb = [-off, -off, size + off*2, size + off*2].join(' ');
          		var stroke = fill ? 0: (size/30);
          		var shape_icon = new DOMParser().parseFromString(
          			'<svg xmlns="http://www.w3.org/2000/svg"><svg viewBox="' + vb + '"><path fill="'+(fill?'#333':'none')+'" stroke="#000" stroke-width="' + stroke + '" /></svg></svg>',
          			'text/xml');
          
          		var width = 24;
          		var height = 24;
          		shape_icon.documentElement.setAttribute('width', width);
          		shape_icon.documentElement.setAttribute('height', height);
          		var svg_elem = $(document.importNode(shape_icon.documentElement,true));
          
          		var data = shapes.data;
          
          		cur_lib.buttons = [];
          		var id;
          		for (id in data) {
          			var path_d = data[id];
          			var icon = svg_elem.clone();
          			icon.find('path').attr('d', path_d);
          
          			var icon_btn = icon.wrap('<div class="tool_button">').parent().attr({
          				id: mode_id + '_' + id,
          				title: id
          			});
          			// Store for later use
          			cur_lib.buttons.push(icon_btn[0]);
          		}
          	}
          
          	function loadLibrary(cat_id) {
          
          		var lib = library[cat_id];
          
          		if (!lib) {
          			$('#shape_buttons').html('Loading...');
          			$.getJSON(svgEditor.curConfig.extPath + 'shapelib/' + cat_id + '.json', function(result) {
          				cur_lib = library[cat_id] = {
          					data: result.data,
          					size: result.size,
          					fill: result.fill
          				};
          				makeButtons(cat_id, result);
          				loadIcons();
          			});
          			return;
          		}
          		cur_lib = lib;
          		if (!lib.buttons.length) {makeButtons(cat_id, lib);}
          		loadIcons();
          	}
          
          	return {
          		svgicons: svgEditor.curConfig.extPath + 'ext-shapes.xml',
          		buttons: [{
          			id: 'tool_shapelib',
          			type: 'mode_flyout', // _flyout
          			position: 6,
          			title: 'Shape library',
          			events: {
          				click: function() {
          					canv.setMode(mode_id);
          				}
          			}
          		}],
          		callback: function() {
          			$('<style>').text('\
          			#shape_buttons {\
          				overflow: auto;\
          				width: 180px;\
          				max-height: 300px;\
          				display: table-cell;\
          				vertical-align: middle;\
          			}\
          			\
          			#shape_cats {\
          				min-width: 110px;\
          				display: table-cell;\
          				vertical-align: middle;\
          				height: 300px;\
          			}\
          			#shape_cats > div {\
          				line-height: 1em;\
          				padding: .5em;\
          				border:1px solid #B0B0B0;\
          				background: #E8E8E8;\
          				margin-bottom: -1px;\
          			}\
          			#shape_cats div:hover {\
          				background: #FFFFCC;\
          			}\
          			#shape_cats div.current {\
          				font-weight: bold;\
          			}').appendTo('head');
          
          			var btn_div = $('<div id="shape_buttons">');
          			$('#tools_shapelib > *').wrapAll(btn_div);
          
          			var shower = $('#tools_shapelib_show');
          
          			loadLibrary('basic');
          
          			// Do mouseup on parent element rather than each button
          			$('#shape_buttons').mouseup(function(evt) {
          				var btn = $(evt.target).closest('div.tool_button');
          
          				if (!btn.length) {return;}
          
          				var copy = btn.children().clone();
          				shower.children(':not(.flyout_arrow_horiz)').remove();
          				shower
          					.append(copy)
          					.attr('data-curopt', '#' + btn[0].id) // This sets the current mode
          					.mouseup();
          				canv.setMode(mode_id);
          
          				cur_shape_id = btn[0].id.substr((mode_id+'_').length);
          				current_d = cur_lib.data[cur_shape_id];
          
          				$('.tools_flyout').fadeOut();
          			});
          
          			var shape_cats = $('<div id="shape_cats">');
          			var cat_str = '';
          
          			$.each(categories, function(id, label) {
          				cat_str += '<div data-cat=' + id + '>' + label + '</div>';
          			});
          
          			shape_cats.html(cat_str).children().bind('mouseup', function() {
          				var catlink = $(this);
          				catlink.siblings().removeClass('current');
          				catlink.addClass('current');
          
          				loadLibrary(catlink.attr('data-cat'));
          				// Get stuff
          				return false;
          			});
          
          			shape_cats.children().eq(0).addClass('current');
          
          			$('#tools_shapelib').append(shape_cats);
          
          			shower.mouseup(function() {
          				canv.setMode(current_d ? mode_id : 'select');
          			});
          			$('#tool_shapelib').remove();
          
          			var h = $('#tools_shapelib').height();
          			$('#tools_shapelib').css({
          				'margin-top': -(h/2 - 15),
          				'margin-left': 3
          			});
          		},
          		mouseDown: function(opts) {
          			var mode = canv.getMode();
          			if (mode !== mode_id) {return;}
          
          			start_x = opts.start_x;
          			var x = start_x;
          			start_y = opts.start_y;
          			var y = start_y;
          			var cur_style = canv.getStyle();
          		 
          			startClientPos.x = opts.event.clientX;
          			startClientPos.y = opts.event.clientY;
          
          			cur_shape = canv.addSvgElementFromJson({
          				'element': 'path',
          				'curStyles': true,
          				'attr': {
          					'd': current_d,
          					'id': canv.getNextId(),
          					'opacity': cur_style.opacity / 2,
          					'style': 'pointer-events:none'
          				}
          			});
          
          			// Make sure shape uses absolute values
          			if (/[a-z]/.test(current_d)) {
          				current_d = cur_lib.data[cur_shape_id] = canv.pathActions.convertPath(cur_shape);
          				cur_shape.setAttribute('d', current_d);
          				canv.pathActions.fixEnd(cur_shape);
          			}
          			cur_shape.setAttribute('transform', 'translate(' + x + ',' + y + ') scale(0.005) translate(' + -x + ',' + -y + ')');
          
          			canv.recalculateDimensions(cur_shape);
          
          			var tlist = canv.getTransformList(cur_shape);
          
          			lastBBox = cur_shape.getBBox();
          
          			return {
          				started: true
          			};
          		},
          		mouseMove: function(opts) {
          			var mode = canv.getMode();
          			if (mode !== mode_id) {return;}
          
          			var zoom = canv.getZoom();
          			var evt = opts.event;
          
          			var x = opts.mouse_x/zoom;
          			var y = opts.mouse_y/zoom;
          
          			var tlist = canv.getTransformList(cur_shape),
          				box = cur_shape.getBBox(),
          				left = box.x, top = box.y, width = box.width,
          				height = box.height;
          			var dx = (x-start_x), dy = (y-start_y);
          
          			var newbox = {
          				'x': Math.min(start_x,x),
          				'y': Math.min(start_y,y),
          				'width': Math.abs(x-start_x),
          				'height': Math.abs(y-start_y)
          			};
          
          			var tx = 0, ty = 0,
          				sy = height ? (height+dy)/height : 1,
          				sx = width ? (width+dx)/width : 1;
          
          			sx = (newbox.width / lastBBox.width) || 1;
          			sy = (newbox.height / lastBBox.height) || 1;
          
          			// Not perfect, but mostly works...
          			if (x < start_x) {
          				tx = lastBBox.width;
          			}
          			if (y < start_y) {ty = lastBBox.height;}
          
          			// update the transform list with translate,scale,translate
          			var translateOrigin = svgroot.createSVGTransform(),
          				scale = svgroot.createSVGTransform(),
          				translateBack = svgroot.createSVGTransform();
          
          			translateOrigin.setTranslate(-(left+tx), -(top+ty));
          			if (!evt.shiftKey) {
          				var max = Math.min(Math.abs(sx), Math.abs(sy));
          
          				sx = max * (sx < 0 ? -1 : 1);
          				sy = max * (sy < 0 ? -1 : 1);
          			}
          			scale.setScale(sx,sy);
          
          			translateBack.setTranslate(left+tx, top+ty);
          			tlist.appendItem(translateBack);
          			tlist.appendItem(scale);
          			tlist.appendItem(translateOrigin);
          
          			canv.recalculateDimensions(cur_shape);
          
          			lastBBox = cur_shape.getBBox();
          		},
          		mouseUp: function(opts) {
          			var mode = canv.getMode();
          			if (mode !== mode_id) {return;}
          
          			var keepObject = (opts.event.clientX != startClientPos.x && opts.event.clientY != startClientPos.y);
          
          			return {
          				keep: keepObject,
          				element: cur_shape,
          				started: false
          			};
          		}
          	};
          });
          
          
        • ext-shapes.xml
          <svg xmlns="http://www.w3.org/2000/svg">
          	<g id="tool_shapelib">
          	  <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300">
          		  <path fill="#c0c0c0" stroke-linejoin="round" stroke-width="14" stroke="#202020" fill-rule="nonzero" d="m70,194.72501l0,0c0,-10.30901 35.8172,-18.666 80,-18.666c44.18298,0 80,8.35699 80,18.666l0,74.66699c0,10.30899 -35.81702,18.66699 -80,18.66699c-44.1828,0 -80,-8.358 -80,-18.66699l0,-74.66699z"/>
          		  <path fill="#c0c0c0" stroke-linejoin="round" stroke-width="14" stroke="#202020" fill-rule="nonzero" d="m70,114.608l0,0c0,-10.309 35.8172,-18.6668 80,-18.6668c44.18298,0 80,8.3578 80,18.6668l0,74.66699c0,10.30901 -35.81702,18.666 -80,18.666c-44.1828,0 -80,-8.35699 -80,-18.666l0,-74.66699z"/>
          		  <path fill="#c0c0c0" stroke-linejoin="round" stroke-width="14" stroke="#202020" fill-rule="nonzero" d="m70,33.6667l0,0c0,-10.3094 35.8172,-18.6667 80,-18.6667c44.18298,0 80,8.3573 80,18.6667l0,74.6663c0,10.31 -35.81702,18.667 -80,18.667c-44.1828,0 -80,-8.357 -80,-18.667l0,-74.6663z"/>
          		  <path id="svg_1" fill="#c0c0c0" stroke-linejoin="round" stroke-width="14" stroke="#202020" fill-rule="nonzero" d="m230,32.33334c0,10.30931 -35.81726,18.66666 -80,18.66666c-44.1828,0 -80,-8.35735 -80,-18.66666"/>
            	</svg>
          	</g>
          </svg>
        • ext-star.js
          /*globals svgEditor, svgedit, svgCanvas, $*/
          /*jslint vars: true, eqeq: true*/
          /*
           * ext-star.js
           *
           *
           * Copyright(c) 2010 CloudCanvas, Inc.
           * All rights reserved
           *
           */
          
          svgEditor.addExtension('star', function(S){'use strict';
          
          	var // NS = svgedit.NS,
          		// svgcontent = S.svgcontent,
          		selElems,
          		// editingitex = false,
          		// svgdoc = S.svgroot.parentNode.ownerDocument,
          		started,
          		newFO,
          		// edg = 0,
          		// newFOG, newFOGParent, newDef, newImageName, newMaskID,
          		// undoCommand = 'Not image',
          		// modeChangeG, ccZoom, wEl, hEl, wOffset, hOffset, ccRgbEl, brushW, brushH,
          		shape;
          
          	function showPanel(on){
          		var fc_rules = $('#fc_rules');
          		if (!fc_rules.length) {
          			fc_rules = $('<style id="fc_rules"></style>').appendTo('head');
          		}
          		fc_rules.text(!on ? '' : ' #tool_topath { display: none !important; }');
          		$('#star_panel').toggle(on);
          	}
          
          	/*
          	function toggleSourceButtons(on){
          		$('#star_save, #star_cancel').toggle(on);
          	}
          	*/
          
          	function setAttr(attr, val){
          		svgCanvas.changeSelectedAttribute(attr, val);
          		S.call('changed', selElems);
          	}
          
          	/*
          	function cot(n){
          		return 1 / Math.tan(n);
          	}
          
          	function sec(n){
          		return 1 / Math.cos(n);
          	}
          	*/
          
          	return {
          		name: 'star',
          		svgicons: svgEditor.curConfig.extPath + 'star-icons.svg',
          		buttons: [{
          			id: 'tool_star',
          			type: 'mode',
          			title: 'Star Tool',
          			position: 12,
          			events: {
          				click: function(){
          					showPanel(true);
          					svgCanvas.setMode('star');
          				}
          			}
          		}],
          
          		context_tools: [{
          			type: 'input',
          			panel: 'star_panel',
          			title: 'Number of Sides',
          			id: 'starNumPoints',
          			label: 'points',
          			size: 3,
          			defval: 5,
          			events: {
          				change: function(){
          					setAttr('point', this.value);
          				}
          			}
          		}, {
          			type: 'input',
          			panel: 'star_panel',
          			title: 'Pointiness',
          			id: 'starRadiusMulitplier',
          			label: 'Pointiness',
          			size: 3,
          			defval: 2.5
          		}, {
          			type: 'input',
          			panel: 'star_panel',
          			title: 'Twists the star',
          			id: 'radialShift',
          			label: 'Radial Shift',
          			size: 3,
          			defval: 0,
          			events: {
          				change: function(){
          					setAttr('radialshift', this.value);
          				}
          			}
          		}],
          		callback: function(){
          			$('#star_panel').hide();
          			// var endChanges = function(){};
          		},
          		mouseDown: function(opts){
          			var rgb = svgCanvas.getColor('fill');
          			// var ccRgbEl = rgb.substring(1, rgb.length);
          			var sRgb = svgCanvas.getColor('stroke');
          			// var ccSRgbEl = sRgb.substring(1, rgb.length);
          			var sWidth = svgCanvas.getStrokeWidth();
          
          			if (svgCanvas.getMode() == 'star') {
          				started = true;
          
          				newFO = S.addSvgElementFromJson({
          					'element': 'polygon',
          					'attr': {
          						'cx': opts.start_x,
          						'cy': opts.start_y,
          						'id': S.getNextId(),
          						'shape': 'star',
          						'point': document.getElementById('starNumPoints').value,
          						'r': 0,
          						'radialshift': document.getElementById('radialShift').value,
          						'r2': 0,
          						'orient': 'point',
          						'fill': rgb,
          						'strokecolor': sRgb,
          						'strokeWidth': sWidth
          					}
          				});
          				return {
          					started: true
          				};
          			}
          		},
          		mouseMove: function(opts){
          			if (!started) {
          				return;
          			}
          			if (svgCanvas.getMode() == 'star') {
          				var x = opts.mouse_x;
          				var y = opts.mouse_y;
          				var c = $(newFO).attr(['cx', 'cy', 'point', 'orient', 'fill', 'strokecolor', 'strokeWidth', 'radialshift']);
          
          				var cx = c.cx, cy = c.cy, fill = c.fill, strokecolor = c.strokecolor, strokewidth = c.strokeWidth, radialShift = c.radialshift, point = c.point, orient = c.orient, circumradius = (Math.sqrt((x - cx) * (x - cx) + (y - cy) * (y - cy))) / 1.5, inradius = circumradius / document.getElementById('starRadiusMulitplier').value;
          				newFO.setAttributeNS(null, 'r', circumradius);
          				newFO.setAttributeNS(null, 'r2', inradius);
          
          				var polyPoints = '';
          				var s;
          				for (s = 0; point >= s; s++) {
          					var angle = 2.0 * Math.PI * (s / point);
          					if ('point' == orient) {
          						angle -= (Math.PI / 2);
          					} else if ('edge' == orient) {
          						angle = (angle + (Math.PI / point)) - (Math.PI / 2);
          					}
          
          					x = (circumradius * Math.cos(angle)) + cx;
          					y = (circumradius * Math.sin(angle)) + cy;
          
          					polyPoints += x + ',' + y + ' ';
          
          					if (null != inradius) {
          						angle = (2.0 * Math.PI * (s / point)) + (Math.PI / point);
          						if ('point' == orient) {
          							angle -= (Math.PI / 2);
          						} else if ('edge' == orient) {
          							angle = (angle + (Math.PI / point)) - (Math.PI / 2);
          						}
          						angle += radialShift;
          
          						x = (inradius * Math.cos(angle)) + cx;
          						y = (inradius * Math.sin(angle)) + cy;
          
          						polyPoints += x + ',' + y + ' ';
          					}
          				}
          				newFO.setAttributeNS(null, 'points', polyPoints);
          				newFO.setAttributeNS(null, 'fill', fill);
          				newFO.setAttributeNS(null, 'stroke', strokecolor);
          				newFO.setAttributeNS(null, 'stroke-width', strokewidth);
          				shape = newFO.getAttributeNS(null, 'shape');
          
          				return {
          					started: true
          				};
          			}
          
          		},
          		mouseUp: function(){
          			if (svgCanvas.getMode() == 'star') {
          				var attrs = $(newFO).attr(['r']);
          				// svgCanvas.addToSelection([newFO], true);
          				return {
          					keep: (attrs.r != 0),
          					element: newFO
          				};
          			}
          		},
          		selectedChanged: function(opts){
          			// Use this to update the current selected elements
          			selElems = opts.elems;
          
          			var i = selElems.length;
          
          			while (i--) {
          				var elem = selElems[i];
          				if (elem && elem.getAttributeNS(null, 'shape') === 'star') {
          					if (opts.selectedElement && !opts.multiselected) {
          						// $('#starRadiusMulitplier').val(elem.getAttribute('r2'));
          						$('#starNumPoints').val(elem.getAttribute('point'));
          						$('#radialShift').val(elem.getAttribute('radialshift'));
          						showPanel(true);
          					}
          					else {
          						showPanel(false);
          					}
          				} else {
          					showPanel(false);
          				}
          			}
          		},
          		elementChanged: function(opts){
          			// var elem = opts.elems[0];
          		}
          	};
          });
          
        • ext-storage.js
          /*globals svgEditor, svgCanvas, $, widget*/
          /*jslint vars: true, eqeq: true, regexp: true, continue: true*/
          /*
           * ext-storage.js
           *
           * Licensed under the MIT License
           *
           * Copyright(c) 2010 Brett Zamir
           *
           */
          /**
          * This extension allows automatic saving of the SVG canvas contents upon
          *  page unload (which can later be automatically retrieved upon future
          *  editor loads).
          *
          *  The functionality was originally part of the SVG Editor, but moved to a
          *  separate extension to make the setting behavior optional, and adapted
          *  to inform the user of its setting of local data.
          */
          
          /*
          TODOS
          1. Revisit on whether to use $.pref over directly setting curConfig in all
          	extensions for a more public API (not only for extPath and imagePath,
          	but other currently used config in the extensions)
          2. We might provide control of storage settings through the UI besides the
              initial (or URL-forced) dialog.
          */
          svgEditor.addExtension('storage', function() {
          	// We could empty any already-set data for users when they decline storage,
          	//  but it would be a risk for users who wanted to store but accidentally
          	// said "no"; instead, we'll let those who already set it, delete it themselves;
          	// to change, set the "emptyStorageOnDecline" config setting to true
          	// in config.js.
          	var emptyStorageOnDecline = svgEditor.curConfig.emptyStorageOnDecline,
          		// When the code in svg-editor.js prevents local storage on load per
          		//  user request, we also prevent storing on unload here so as to
          		//  avoid third-party sites making XSRF requests or providing links
          		// which would cause the user's local storage not to load and then
          		// upon page unload (such as the user closing the window), the storage
          		//  would thereby be set with an empty value, erasing any of the
          		// user's prior work. To change this behavior so that no use of storage
          		// or adding of new storage takes place regardless of settings, set
          		// the "noStorageOnLoad" config setting to true in config.js.
          		noStorageOnLoad = svgEditor.curConfig.noStorageOnLoad,
          		forceStorage = svgEditor.curConfig.forceStorage,
          		storage = svgEditor.storage;
          
          	function replaceStoragePrompt (val) {
          		val = val ? 'storagePrompt=' + val : '';
          		var loc = top.location; // Allow this to work with the embedded editor as well
          		if (loc.href.indexOf('storagePrompt=') > -1) {
          			loc.href = loc.href.replace(/([&?])storagePrompt=[^&]*(&?)/, function (n0, n1, amp) {
          				return (val ? n1 : '') + val + (!val && amp ? n1 : (amp || ''));
          			});
          		}
          		else {
          			loc.href += (loc.href.indexOf('?') > -1 ? '&' : '?') + val;
          		}
          	}
          	function setSVGContentStorage (val) {
          		if (storage) {
          			var name = 'svgedit-' + svgEditor.curConfig.canvasName;
          			if (!val) {
          				storage.removeItem(name);
          			}
          			else {
          				storage.setItem(name, val);
          			}
          		}
          	}
          	
          	function expireCookie (cookie) {
          		document.cookie = encodeURIComponent(cookie) + '=; expires=Thu, 01 Jan 1970 00:00:00 GMT';
          	}
          	
          	function removeStoragePrefCookie () {
          		expireCookie('store');
          	}
          	
          	function emptyStorage() {
          		setSVGContentStorage('');
          		var name;
          		for (name in svgEditor.curPrefs) {
          			if (svgEditor.curPrefs.hasOwnProperty(name)) {
          				name = 'svg-edit-' + name;
          				if (storage) {
          					storage.removeItem(name);
          				}
          				expireCookie(name);
          			}
          		}
          	}
          	
          //	emptyStorage();
          
          	/**
          	* Listen for unloading: If and only if opted in by the user, set the content
          	*   document and preferences into storage:
          	* 1. Prevent save warnings (since we're automatically saving unsaved
          	*       content into storage)
          	* 2. Use localStorage to set SVG contents (potentially too large to allow in cookies)
          	* 3. Use localStorage (where available) or cookies to set preferences.
          	*/
          	function setupBeforeUnloadListener () {
          		window.addEventListener('beforeunload', function(e) {
          			// Don't save anything unless the user opted in to storage
          			if (!document.cookie.match(/(?:^|;\s*)store=(?:prefsAndContent|prefsOnly)/)) {
          				return;
          			}
          			var key;
          			if (document.cookie.match(/(?:^|;\s*)store=prefsAndContent/)) {
          				setSVGContentStorage(svgCanvas.getSvgString());			
          			}
          
          			svgEditor.setConfig({no_save_warning: true}); // No need for explicit saving at all once storage is on
          			// svgEditor.showSaveWarning = false;
          
          			var curPrefs = svgEditor.curPrefs;
          
          			for (key in curPrefs) {
          				if (curPrefs.hasOwnProperty(key)) { // It's our own config, so we don't need to iterate up the prototype chain
          					var val = curPrefs[key],
          						store = (val != undefined);
          					key = 'svg-edit-' + key;
          					if (!store) {
          						continue;
          					}
          					if (storage) {
          						storage.setItem(key, val);
          					}
          					else if (window.widget) {
          						widget.setPreferenceForKey(val, key);
          					}
          					else {
          						val = encodeURIComponent(val);
          						document.cookie = encodeURIComponent(key) + '=' + val + '; expires=Fri, 31 Dec 9999 23:59:59 GMT';
          					}
          				}
          			}
          		}, false);
          	}
          
          	/*
          	// We could add locales here instead (and also thereby avoid the need
          	// to keep our content within "langReady"), but this would be less
          	// convenient for translators.
          	$.extend(uiStrings, {confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}});
          	*/
          	var loaded = false;
          	return {
          		name: 'storage',
          		langReady: function (data) {
          			var // lang = data.lang,
          				uiStrings = data.uiStrings, // No need to store as dialog should only run once
          				storagePrompt = $.deparam.querystring(true).storagePrompt;
          
          			// No need to run this one-time dialog again just because the user
          			//   changes the language
          			if (loaded) {
          				return;
          			}
          			loaded = true;
          
          			// Note that the following can load even if "noStorageOnLoad" is
          			//   set to false; to avoid any chance of storage, avoid this
          			//   extension! (and to avoid using any prior storage, set the
          			//   config option "noStorageOnLoad" to true).
          			if (!forceStorage && (
          				// If the URL has been explicitly set to always prompt the
          				//  user (e.g., so one can be pointed to a URL where one
          				// can alter one's settings, say to prevent future storage)...
          				storagePrompt === true ||
          				(
          					// ...or...if the URL at least doesn't explicitly prevent a
          					//  storage prompt (as we use for users who
          					// don't want to set cookies at all but who don't want
          					// continual prompts about it)...
          					storagePrompt !== false &&
          					// ...and this user hasn't previously indicated a desire for storage
          					!document.cookie.match(/(?:^|;\s*)store=(?:prefsAndContent|prefsOnly)/)
          				)
          				// ...then show the storage prompt.
          			)) {
          
          				var options = [];
          				if (storage) {
          					options.unshift(
          						{value: 'prefsAndContent', text: uiStrings.confirmSetStorage.storagePrefsAndContent},
          						{value: 'prefsOnly', text: uiStrings.confirmSetStorage.storagePrefsOnly},
          						{value: 'noPrefsOrContent', text: uiStrings.confirmSetStorage.storageNoPrefsOrContent}
          					);
          				}
          				else {
          					options.unshift(
          						{value: 'prefsOnly', text: uiStrings.confirmSetStorage.storagePrefs},
          						{value: 'noPrefsOrContent', text: uiStrings.confirmSetStorage.storageNoPrefs}
          					);
          				}
          
          				// Hack to temporarily provide a wide and high enough dialog
          				var oldContainerWidth = $('#dialog_container')[0].style.width,
          					oldContainerMarginLeft = $('#dialog_container')[0].style.marginLeft,
          					oldContentHeight = $('#dialog_content')[0].style.height,
          					oldContainerHeight = $('#dialog_container')[0].style.height;
          				$('#dialog_content')[0].style.height = '120px';
          				$('#dialog_container')[0].style.height = '170px';
          				$('#dialog_container')[0].style.width = '800px';
          				$('#dialog_container')[0].style.marginLeft = '-400px';
          
          				// Open select-with-checkbox dialog
          				$.select(
          					uiStrings.confirmSetStorage.message,
          					options,
          					function (pref, checked) {
          						if (pref && pref !== 'noPrefsOrContent') {
          							// Regardless of whether the user opted
          							// to remember the choice (and move to a URL which won't
          							// ask them again), we have to assume the user
          							// doesn't even want to remember their not wanting
          							// storage, so we don't set the cookie or continue on with
          							//  setting storage on beforeunload
          							document.cookie = 'store=' + encodeURIComponent(pref) + '; expires=Fri, 31 Dec 9999 23:59:59 GMT'; // 'prefsAndContent' | 'prefsOnly'
          							// If the URL was configured to always insist on a prompt, if
          							//    the user does indicate a wish to store their info, we
          							//    don't want ask them again upon page refresh so move
          							//    them instead to a URL which does not always prompt
          							if (storagePrompt === true && checked) {
          								replaceStoragePrompt();
          								return;
          							}
          						}
          						else { // The user does not wish storage (or cancelled, which we treat equivalently)
          							removeStoragePrefCookie();
          							if (pref && // If the user explicitly expresses wish for no storage
          								emptyStorageOnDecline
          							) {
          								emptyStorage();
          							}
          							if (pref && checked) {
          								// Open a URL which won't set storage and won't prompt user about storage
          								replaceStoragePrompt('false');
          								return;
          							}
          						}
          
          						// Reset width/height of dialog (e.g., for use by Export)
          						$('#dialog_container')[0].style.width = oldContainerWidth;
          						$('#dialog_container')[0].style.marginLeft = oldContainerMarginLeft;				
          						$('#dialog_content')[0].style.height = oldContentHeight;
          						$('#dialog_container')[0].style.height = oldContainerHeight;
          						
          						// It should be enough to (conditionally) add to storage on
          						//   beforeunload, but if we wished to update immediately,
          						//   we might wish to try setting:
          						//       svgEditor.setConfig({noStorageOnLoad: true});
          						//   and then call:
          						//       svgEditor.loadContentAndPrefs();
          						
          						// We don't check for noStorageOnLoad here because
          						//   the prompt gives the user the option to store data
          						setupBeforeUnloadListener();
          						
          						svgEditor.storagePromptClosed = true;
          					},
          					null,
          					null,
          					{
          						label: uiStrings.confirmSetStorage.rememberLabel,
          						checked: false,
          						tooltip: uiStrings.confirmSetStorage.rememberTooltip
          					}
          				);
          			}
          			else if (!noStorageOnLoad || forceStorage) {
          				setupBeforeUnloadListener();
          			}
          		}
          	};
          });
          
        • ext-webappfind.js
          /*globals svgEditor*/
          /*
          Depends on Firefox add-on and executables from https://github.com/brettz9/webappfind
          
          Todos:
          1. See WebAppFind Readme for SVG-related todos
          */
          (function () {'use strict';
          
          var pathID,
              saveMessage = 'webapp-save',
              readMessage = 'webapp-read',
              excludedMessages = [readMessage, saveMessage];
          
          window.addEventListener('message', function(e) {
              if (e.origin !== window.location.origin || // PRIVACY AND SECURITY! (for viewing and saving, respectively)
                  (!Array.isArray(e.data) || excludedMessages.indexOf(e.data[0]) > -1) // Validate format and avoid our post below
              ) {
                  return;
              }
              var svgString,
                  messageType = e.data[0];
              switch (messageType) {
                  case 'webapp-view':
                      // Populate the contents
                      pathID = e.data[1];
                      
                      svgString = e.data[2];
                      svgEditor.loadFromString(svgString);
                      
                      /*if ($('#tool_save_file')) {
                          $('#tool_save_file').disabled = false;
                      }*/
                      break;
                  case 'webapp-save-end':
                      alert('save complete for pathID ' + e.data[1] + '!');
                      break;
                  default:
                      throw 'Unexpected mode';
              }
          }, false);
          
          window.postMessage([readMessage], window.location.origin !== 'null' ? window.location.origin : '*'); // Avoid "null" string error for file: protocol (even though file protocol not currently supported by add-on)
          
          svgEditor.addExtension('WebAppFind', function() {
          
              return {
                  name: 'WebAppFind',
                  svgicons: svgEditor.curConfig.extPath + 'webappfind-icon.svg',
                  buttons: [{
                      id: 'webappfind_save', // 
                      type: 'app_menu',
                      title: 'Save Image back to Disk',
                      position: 4, // Before 0-based index position 4 (after the regular "Save Image (S)")
                      events: {
                          click: function () {
                              if (!pathID) { // Not ready yet as haven't received first payload
                                  return;
                              }
                              window.postMessage([saveMessage, pathID, svgEditor.canvas.getSvgString()], window.location.origin);
                          }
                      }
                  }]
              };
          });
          
          }());
          
        • ext-xdomain-messaging.js
          /**
          * Should not be needed for same domain control (just call via child frame),
          *  but an API common for cross-domain and same domain use can be found
          *  in embedapi.js with a demo at embedapi.html
          */
          /*globals svgEditor, svgCanvas*/
          svgEditor.addExtension('xdomain-messaging', function() {'use strict';
          	try {
          		window.addEventListener('message', function(e) {
          			// We accept and post strings for the sake of IE9 support
          			if (typeof e.data !== 'string' || e.data.charAt() === '|') {
          				return;
          			}
          			var cbid, name, args, message, allowedOrigins, data = JSON.parse(e.data);
          			if (!data || typeof data !== 'object' || data.namespace !== 'svgCanvas') {
          				return;
          			}
          			// The default is not to allow any origins, including even the same domain or if run on a file:// URL
          			//  See config-sample.js for an example of how to configure
          			allowedOrigins = svgEditor.curConfig.allowedOrigins;
          			if (allowedOrigins.indexOf('*') === -1 && allowedOrigins.indexOf(e.origin) === -1) {
          				return;
          			}
          			cbid = data.id;
          			name = data.name;
          			args = data.args;
          			message = {
          				namespace: 'svg-edit',
          				id: cbid
          			};
          			try {
          				message.result = svgCanvas[name].apply(svgCanvas, args);
          			} catch (err) {
          				message.error = err.message;
          			}
          			e.source.postMessage(JSON.stringify(message), '*');
          		}, false);
          	}
          	catch (err) {
          		console.log('Error with xdomain message listener: ' + err);
          	}
          });
          
        • eyedropper-icon.xml
          <svg xmlns="http://www.w3.org/2000/svg">
          
          <g id="tool_eyedropper">
          <svg viewBox="0 0 320 320" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
           <!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
           <defs>
            <radialGradient id="eyedropper_svg_6" cx="0.5" cy="0.5" r="0.5">
             <stop offset="0" stop-color="#ffffff" stop-opacity="1"/>
             <stop offset="1" stop-color="#e5e5e5" stop-opacity="0.38"/>
            </radialGradient>
            <linearGradient id="eyedropper_svg_15" x1="0" y1="0" x2="0.58594" y2="0.55078">
             <stop offset="0" stop-color="#ffffff" stop-opacity="0.57"/>
             <stop offset="1" stop-color="#000056" stop-opacity="1"/>
            </linearGradient>
            <linearGradient id="eyedropper_svg_19" x1="0" y1="0" x2="1" y2="1">
             <stop offset="0" stop-color="#ffffff" stop-opacity="1"/>
             <stop offset="1" stop-color="#ffffff" stop-opacity="0"/>
            </linearGradient>
           </defs>
           <g display="inline">
            <title>Layer 1</title>
            <path d="m193.899994,73l-119.899979,118l-15,39.5l10.25,4.5l43.750015,-20l108.999969,-112l-28.100006,-30z" id="svg_3" fill="none" stroke="#000000" stroke-width="5"/>
            <path d="m58.649994,232c-2.75,28.200012 -26.399994,28.950012 -21.899994,59c4.5,30.049988 55,28 55.5,-1.25c0.5,-29.25 -20.25,-28.75 -22.25,-54.75l-11.350006,-3z" id="svg_4" fill="#aa56ff" stroke="#000000" stroke-width="7"/>
            <path d="m45.474976,269.275024l13.775024,0.474976l-0.75,16.75l-14.25,-1.25l1.224976,-15.974976z" id="svg_5" fill="url(#eyedropper_svg_6)" stroke-width="5" fill-opacity="0.73"/>
            <path d="m217.899994,46c21.5,-101.549999 141.600006,20.449997 28.100006,33l-5,44l-63,-66l39.899994,-11z" id="svg_2" fill="#000000" stroke-width="5"/>
            <path d="m206.825012,61.075008c3.712494,-2.46249 7.637482,-3.53751 14.424988,-5.575008c10.125,-16.5 32.875,-41.5 40.5,-35c7.625,6.5 -21.25,35.625 -37.5,39.25c-5.5,10.125 -8,13.875 -17.25,16.5c-2.837494,-8.162514 -4.262482,-12.337486 -0.174988,-15.174992z" id="svg_7" fill="url(#eyedropper_svg_15)" stroke-width="5"/>
            <path d="m133.049988,134.75l46.950012,9.25l-66,70l-42.5,20.5l-11.5,-5l14,-37.5l59.049988,-57.25z" id="svg_11" fill="#aa56ff" stroke="#000000" stroke-width="7"/>
            <path d="m71.425034,212.350006l9.050888,-20.022537l51.516724,-49.327469l8.507355,0.97197l-69.074966,68.378036z" id="svg_16" fill="url(#eyedropper_svg_19)" stroke-width="5"/>
           </g>
          </svg>
          </g>
          	
          	<g id="svg_eof"/>
          </svg>
        • foreignobject-icons.xml
          <svg xmlns="http://www.w3.org/2000/svg">
          	<g id="tool_foreign">
          		<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 84 84">
          		  <g fill="#444" opacity="0.2" transform="translate(6,6)">
          		  <path d="M42.8,74.3c0,4.3,0,5.9,11.8,5.9l4.1,0l0,3.8c-4.5-0.4-16.1-0.4-21.2-0.3c-5.1,0-16.6,0-21,0.4l0-3.8l4.1,0
          			c11.8,0,11.8-1.7,11.8-5.9l0-6.9C13.9,65.6,0,54.6,0,42c0-12.2,13.3-23.5,32.4-25.4l0-6.9c0-4.3,0-5.9-11.8-5.9l-4.1,0l0-3.8
          			c4.5,0.4,16.1,0.4,21.2,0.3c5.1,0,16.6,0,21-0.4l0,3.8l-4.1,0c-11.8,0-11.8,1.7-11.8,5.9l0,6.9C61.6,18.1,75.8,29.2,75.8,42
          			c0,12.4-13.8,23.9-33.1,25.4L42.8,74.3z M32.4,19.4c-18.7,2.5-19.9,16.2-19.9,22.6c0,7.6,2.3,20.2,20,22.5L32.4,19.4z M42.7,64.7
          			c18.8-2.2,20.7-15.4,20.6-22.8c0-9.3-3.5-20.6-20.7-22.6L42.7,64.7z"/>
          		  </g>
          		  <g fill="#444" opacity="0.3" transform="translate(4,4)">
          		  <path d="M42.8,74.3c0,4.3,0,5.9,11.8,5.9l4.1,0l0,3.8c-4.5-0.4-16.1-0.4-21.2-0.3c-5.1,0-16.6,0-21,0.4l0-3.8l4.1,0
          			c11.8,0,11.8-1.7,11.8-5.9l0-6.9C13.9,65.6,0,54.6,0,42c0-12.2,13.3-23.5,32.4-25.4l0-6.9c0-4.3,0-5.9-11.8-5.9l-4.1,0l0-3.8
          			c4.5,0.4,16.1,0.4,21.2,0.3c5.1,0,16.6,0,21-0.4l0,3.8l-4.1,0c-11.8,0-11.8,1.7-11.8,5.9l0,6.9C61.6,18.1,75.8,29.2,75.8,42
          			c0,12.4-13.8,23.9-33.1,25.4L42.8,74.3z M32.4,19.4c-18.7,2.5-19.9,16.2-19.9,22.6c0,7.6,2.3,20.2,20,22.5L32.4,19.4z M42.7,64.7
          			c18.8-2.2,20.7-15.4,20.6-22.8c0-9.3-3.5-20.6-20.7-22.6L42.7,64.7z"/>
          		  </g>
          		  <g fill="#444" opacity="0.5" transform="translate(2,2)">
          		  <path d="M42.8,74.3c0,4.3,0,5.9,11.8,5.9l4.1,0l0,3.8c-4.5-0.4-16.1-0.4-21.2-0.3c-5.1,0-16.6,0-21,0.4l0-3.8l4.1,0
          			c11.8,0,11.8-1.7,11.8-5.9l0-6.9C13.9,65.6,0,54.6,0,42c0-12.2,13.3-23.5,32.4-25.4l0-6.9c0-4.3,0-5.9-11.8-5.9l-4.1,0l0-3.8
          			c4.5,0.4,16.1,0.4,21.2,0.3c5.1,0,16.6,0,21-0.4l0,3.8l-4.1,0c-11.8,0-11.8,1.7-11.8,5.9l0,6.9C61.6,18.1,75.8,29.2,75.8,42
          			c0,12.4-13.8,23.9-33.1,25.4L42.8,74.3z M32.4,19.4c-18.7,2.5-19.9,16.2-19.9,22.6c0,7.6,2.3,20.2,20,22.5L32.4,19.4z M42.7,64.7
          			c18.8-2.2,20.7-15.4,20.6-22.8c0-9.3-3.5-20.6-20.7-22.6L42.7,64.7z"/>
          		  </g>
          		  <g fill="#0000CC">
          		  <path id="xyz321" d="M42.8,74.3c0,4.3,0,5.9,11.8,5.9l4.1,0l0,3.8c-4.5-0.4-16.1-0.4-21.2-0.3c-5.1,0-16.6,0-21,0.4l0-3.8l4.1,0
          			c11.8,0,11.8-1.7,11.8-5.9l0-6.9C13.9,65.6,0,54.6,0,42c0-12.2,13.3-23.5,32.4-25.4l0-6.9c0-4.3,0-5.9-11.8-5.9l-4.1,0l0-3.8
          			c4.5,0.4,16.1,0.4,21.2,0.3c5.1,0,16.6,0,21-0.4l0,3.8l-4.1,0c-11.8,0-11.8,1.7-11.8,5.9l0,6.9C61.6,18.1,75.8,29.2,75.8,42
          			c0,12.4-13.8,23.9-33.1,25.4L42.8,74.3z M32.4,19.4c-18.7,2.5-19.9,16.2-19.9,22.6c0,7.6,2.3,20.2,20,22.5L32.4,19.4z M42.7,64.7
          			c18.8-2.2,20.7-15.4,20.6-22.8c0-9.3-3.5-20.6-20.7-22.6L42.7,64.7z"/>
          		  </g>
          		</svg>
          	</g>
          	
          	<g id="edit_foreign">
          		<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="34 38 170 170" overflow="hidden">
          		<g fill="#000088">
          			<path d="M30.1,63.9v-4.3l30.2-14.9V50L36.5,61.7l23.8,11.7v5.3L30.1,63.9z"/>
          			<path d="M106.1,79.7v-1.1c4.2-0.5,4.8-1.1,4.8-5.2V58.2c0-6-1.3-7.9-5.4-7.9c-3.3,0-5.7,1.3-7.8,4.4v18.1
          				c0,4.5,1.1,5.7,5.2,5.8v1.1H86.8v-1.1c4.1-0.3,4.9-1.1,4.9-5.1V57.9c0-5-1.6-7.6-4.8-7.6c-2.5,0-5.6,1.2-7.4,2.9
          				c-0.5,0.5-1.1,1.4-1.1,1.4v20.3c0,2.8,1.1,3.6,4.9,3.7v1.1h-16v-1.1c4-0.1,5-1.2,5-5V55.4c0-3.5-0.6-4.6-2.5-4.6
          				c-0.8,0-1.4,0.1-2.3,0.3v-1.2c4-1.1,6.4-1.9,10.1-3.2l0.5,0.1v5.4c6-4.5,8-5.5,11.2-5.5c3.9,0,6.3,1.9,7.6,6c3.9-4.2,7.6-6,11.7-6
          				c5.5,0,8.4,4.3,8.4,12.8v14.8c0,2.8,0.9,4.1,3.1,4.2l1.9,0.1v1.1H106.1z"/>
          			<path d="M147.3,80.5c-3,0-4.2-1.4-4.6-5.3c-4.4,3.7-7.3,5.3-10.5,5.3c-4.5,0-7.6-3.2-7.6-7.7c0-2.4,1-4.8,2.6-6.3
          				c3.1-2.7,4.3-3.3,15.4-7.8v-4.4c0-3.9-1.9-6-5.5-6c-2.9,0-5.2,1.6-5.2,3.5c0,0.5,0.1,1.1,0.2,1.7c0.1,0.5,0.1,0.9,0.1,1.2
          				c0,1.6-1.5,3-3.2,3s-3.1-1.4-3.1-3.1c0-1.8,1.2-3.9,3-5.4c2-1.7,5.5-2.7,9.1-2.7c4.4,0,7.5,1.4,9,4.2c1,1.7,1.4,3.7,1.4,7.3v14
          				c0,3.2,0.5,4.2,2.2,4.2c1.1,0,1.9-0.4,3.2-1.4v1.9C151.3,79.6,149.8,80.5,147.3,80.5z M142.6,60.5c-8.7,3.2-11.7,5.8-11.7,10v0.3
          				c0,3.1,2,5.5,4.5,5.5c1.5,0,3.5-0.6,5.3-1.6c1.5-0.9,1.9-1.6,1.9-3.8V60.5z"/>
          			<path d="M165.3,80.5c-4.2,0-6.3-3.1-6.3-9.1V49.7h-3.8c-0.2-0.1-0.3-0.3-0.3-0.5c0-0.4,0.4-0.9,1.2-1.4
          				c1.9-1.1,4.3-3.7,7-7.7c0.5-0.6,1-1.3,1.4-2c0.4,0,0.5,0.2,0.5,0.9v8.4h7.3v2.3h-7.3v20.6c0,4.6,1.1,6.5,3.7,6.5
          				c1.6,0,2.7-0.6,4.3-2.5l0.9,0.8C171.8,78.7,169,80.5,165.3,80.5z"/>
          			<path d="M193.8,79.7v-1.1c4.1-0.4,4.9-1.3,4.9-6.2V58.1c0-5-1.8-7.6-5.4-7.6c-2.8,0-5,1.2-8,4.5v17.4
          				c0,5,0.7,5.8,4.9,6.3v1.1h-15.6v-1.1c4.2-0.6,4.6-1.2,4.6-6.3V38.5c0-3.1-0.6-3.7-3.7-3.7c-0.4,0-0.6,0-0.9,0.1v-1.2l1.9-0.6
          				c4-1.2,5.8-1.7,8.3-2.6l0.4,0.2v21.9c3.3-4.3,6.3-6,10.6-6c5.9,0,8.9,3.9,8.9,11.5v14.3c0,5,0.4,5.5,4.3,6.3v1.1h-15.2V79.7z"/>
          			<path d="M59.1,116.1v-4.3l30.2-14.9v5.3l-23.8,11.7l23.8,11.7v5.3L59.1,116.1z"/>
          			<path d="M135.1,131.9v-1.1c4.2-0.5,4.8-1.1,4.8-5.2v-15.1c0-6-1.3-7.9-5.4-7.9c-3.3,0-5.7,1.3-7.8,4.4v18.1
          				c0,4.5,1.1,5.7,5.2,5.8v1.1h-16.1v-1.1c4.1-0.3,4.9-1.1,4.9-5.1v-15.7c0-5-1.6-7.6-4.8-7.6c-2.5,0-5.6,1.2-7.4,2.9
          				c-0.5,0.5-1.1,1.4-1.1,1.4v20.3c0,2.8,1.1,3.6,4.9,3.7v1.1h-16v-1.1c4-0.1,5-1.2,5-5v-18.2c0-3.5-0.6-4.6-2.5-4.6
          				c-0.8,0-1.4,0.1-2.3,0.3v-1.2c4-1.1,6.4-1.9,10.1-3.2l0.5,0.1v5.4c6-4.5,8-5.5,11.2-5.5c3.9,0,6.3,1.9,7.6,6c3.9-4.2,7.6-6,11.7-6
          				c5.5,0,8.4,4.3,8.4,12.8v14.8c0,2.8,0.9,4.1,3.1,4.2l1.9,0.1v1.1H135.1z"/>
          			<path d="M152.1,131.9v-1.1c5-0.3,5.7-1.1,5.7-6.3v-16.6c0-3.2-0.6-4.3-2.4-4.3c-0.6,0-1.6,0.1-2.4,0.2l-0.6,0.1v-1.1
          				l11.2-4L164,99v25.6c0,5.2,0.6,5.9,5.3,6.3v1.1L152.1,131.9L152.1,131.9z M160.8,93.1c-2,0-3.7-1.6-3.7-3.7c0-2,1.7-3.7,3.7-3.7
          				c2.1,0,3.7,1.7,3.7,3.7C164.6,91.6,163,93.1,160.8,93.1z"/>
          			<path d="M175.8,131v-5.3l23.7-11.8l-23.7-11.7v-5.3l30.1,14.9v4.3L175.8,131z"/>
          			<path d="M31.1,169.5v-4.3l30.2-14.9v5.3l-23.8,11.7L61.3,179v5.3L31.1,169.5z"/>
          			<path d="M71.3,186.4h-4.9l16.5-49.7h4.8L71.3,186.4z"/>
          			<path d="M127.1,185.3v-1.1c4.2-0.5,4.8-1.1,4.8-5.2v-15.2c0-6-1.3-7.9-5.4-7.9c-3.3,0-5.7,1.3-7.8,4.4v18.1
          				c0,4.5,1.1,5.7,5.2,5.8v1.1h-16.1v-1.1c4.1-0.3,4.9-1.1,4.9-5.1v-15.6c0-5-1.6-7.6-4.8-7.6c-2.5,0-5.6,1.2-7.4,2.9
          				c-0.5,0.5-1.1,1.4-1.1,1.4v20.3c0,2.8,1.1,3.6,4.9,3.7v1.1h-16v-1.1c4-0.1,5-1.2,5-5V161c0-3.5-0.6-4.6-2.5-4.6
          				c-0.8,0-1.4,0.1-2.3,0.3v-1.2c4-1.1,6.4-1.9,10.1-3.2l0.5,0.1v5.4c6-4.5,8-5.5,11.2-5.5c3.9,0,6.3,1.9,7.6,6c3.9-4.2,7.6-6,11.7-6
          				c5.5,0,8.4,4.3,8.4,12.8v14.8c0,2.8,0.9,4.1,3.1,4.2l1.9,0.1v1.1H127.1L127.1,185.3z"/>
          			<path d="M168.3,186.1c-3,0-4.2-1.4-4.6-5.3c-4.4,3.7-7.3,5.3-10.5,5.3c-4.5,0-7.6-3.2-7.6-7.7c0-2.4,1-4.8,2.6-6.3
          				c3.1-2.7,4.3-3.3,15.4-7.8v-4.4c0-3.9-1.9-6-5.5-6c-2.9,0-5.2,1.6-5.2,3.5c0,0.5,0.1,1.1,0.2,1.7c0.1,0.5,0.1,0.9,0.1,1.2
          				c0,1.6-1.5,3-3.2,3s-3.1-1.4-3.1-3.1c0-1.8,1.2-3.9,3-5.4c2-1.7,5.5-2.7,9.1-2.7c4.4,0,7.5,1.4,9,4.2c1,1.7,1.4,3.7,1.4,7.3v14
          				c0,3.2,0.5,4.2,2.2,4.2c1.1,0,1.9-0.4,3.2-1.4v1.9C172.3,185.2,170.8,186.1,168.3,186.1z M163.8,166.1c-8.7,3.2-11.7,5.8-11.7,10
          				v0.3c0,3.1,2,5.5,4.5,5.5c1.5,0,3.5-0.6,5.3-1.6c1.5-0.9,1.9-1.6,1.9-3.8V166.1z"/>
          			<path d="M186.3,186.1c-4.2,0-6.3-3.1-6.3-9.1v-21.7h-3.8c-0.2-0.1-0.3-0.3-0.3-0.5c0-0.4,0.4-0.9,1.2-1.4
          				c1.9-1.1,4.3-3.7,7-7.7c0.5-0.6,1-1.3,1.4-2c0.4,0,0.5,0.2,0.5,0.9v8.4h7.3v2.3h-7.3v20.6c0,4.6,1.1,6.5,3.7,6.5
          				c1.6,0,2.7-0.6,4.3-2.5l0.9,0.8C192.8,184.3,190,186.1,186.3,186.1z"/>
          			<path d="M209.1,185.3h-13.4v-1.1c4.2-0.6,4.6-1.2,4.6-6.3V144c0-3.1-0.6-3.7-3.7-3.7c-0.4,0-0.6,0-0.9,0.1v-1.2
          				l1.9-0.6c4-1.2,5.8-1.7,8.3-2.6l0.4,0.2v21.9c0.9-1.2,1.9-2.2,2.8-3.1"/>
          			<path d="M209.1,157.9c-0.8,0.7-1.7,1.5-2.7,2.6v17.4c0,4,0.4,5.3,2.7,5.9"/>
          		  </g>
          		  <g>
          			<polyline opacity="0.2" fill="#231F20" points="209.1,76.4 118.7,186.5 139.1,186.4 209.1,121 209.1,76.4 "/>
          			<polyline opacity="0.4" fill="#231F20" points="209.1,76.2 118.5,186.5 129.7,186.4 200.2,120.3 209.1,100.8 209.1,76.4 "/>
          			<path fill="#FFD761" d="M121.6,88.7l0.8,87.5l62.3-56.7c0,0-15.3-25.8-24.8-30C151.1,85.6,121.6,88.7,121.6,88.7z"/>
          			<path fill="#FEA01E" d="M209.1,19.5h-54l-33.5,69.2c0,0,29.7-3.4,38.3,0.8c8.9,4.4,25,30.8,25,30.8l24.2-50V19.5z"/>
          			<path d="M120.4,153.7l-0.6,25l23.8-16.9c0,0-8-7-11.2-8.1C129.4,152.8,120.4,153.7,120.4,153.7z"/>
          			<polyline fill="none" stroke="#231F20" stroke-width="5" points="153.9,19.5 121.6,88.7 120.7,181.2 186.6,120.3 209.1,70.3 "/>
          		  </g>
          		</svg>
          	</g>
          	
          	<g id="svg_eof"/>
          </svg>
        • grid-icon.xml
          <svg xmlns="http://www.w3.org/2000/svg">
          <!-- 
          	Sample icons file. This file looks like an SVG file with groups as its
          	children. Each group element has an ID that must match the ID of the button given
          	in the extension. The SVG inside the group makes up the actual icon, and
          	needs use a viewBox instead of width/height for it to scale	properly.
          	
          	Multiple icons can be included, each within their own group.
          -->
          	<g id="view_grid">
          	  <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
          		<g>
          		  <rect fill="#ffffff" stroke="#848484" x="2" y="2" width="20" height="20"/>
          		  <line fill="none" stroke="#848484" x1="11.84375" y1="-1.53125" x2="11.84375" y2="18.46875" transform="rotate(90, 11.8429, 8.46955)"/>
          		  <line fill="none" stroke="#848484" x1="11.90625" y1="5.21875" x2="11.90625" y2="25.21875" transform="rotate(90, 11.9054, 15.2196)"/>
          		  <line fill="none" stroke="#848484" x1="8.5" y1="2.03125" x2="8.5" y2="22.03125"/>
          		  <line fill="none" stroke="#848484" x1="15.5" y1="2.03125" x2="15.5" y2="22.03125"/>
          		  <rect fill="#d8d8d8" stroke="#000000" stroke-width="0" x="3.25" y="3.28125" width="4" height="4"/>
          		  <rect fill="#d8d8d8" stroke="#000000" stroke-width="0" x="10" y="3.28125" width="4" height="4"/>
          		  <rect fill="#d8d8d8" stroke="#000000" stroke-width="0" x="16.75" y="3.28125" width="4" height="4"/>
          		  <rect fill="#d8d8d8" stroke="#000000" stroke-width="0" x="3.28125" y="9.75" width="4" height="4"/>
          		  <rect fill="#d8d8d8" stroke="#000000" stroke-width="0" x="10.03125" y="9.75" width="4" height="4"/>
          		  <rect fill="#d8d8d8" stroke="#000000" stroke-width="0" x="16.78125" y="9.75" width="4" height="4"/>
          		  <rect fill="#d8d8d8" stroke="#000000" stroke-width="0" x="3.3125" y="16.59375" width="4" height="4"/>
          		  <rect fill="#d8d8d8" stroke="#000000" stroke-width="0" x="10.0625" y="16.59375" width="4" height="4"/>
          		  <rect fill="#d8d8d8" stroke="#000000" stroke-width="0" x="16.8125" y="16.59375" width="4" height="4"/>
          		</g>
          	  </svg>
          	</g>
          </svg>
          
        • helloworld-icon.xml
          <svg xmlns="http://www.w3.org/2000/svg">
          <!-- 
          	Sample icons file. This file looks like an SVG file with groups as its
          	children. Each group element has an ID that must match the ID of the button given
          	in the extension. The SVG inside the group makes up the actual icon, and
          	needs use a viewBox instead of width/height for it to scale	properly.
          	
          	Multiple icons can be included, each within their own group.
          -->
          	<g id="hello_world">
          		<svg width="102" height="102" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
          		 <!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
          		 <g>
          		  <title>Layer 1</title>
          		  <rect ry="30" rx="30" x="2.5" y="2.5" width="97" height="97" id="svg_3" fill="#008000" stroke="#000000" stroke-width="5"/>
          		  <text x="52.668" y="42.5" id="svg_1" fill="#ffffff" stroke="#000000" stroke-width="0" font-size="24" font-family="Monospace" text-anchor="middle" xml:space="preserve">Hello</text>
          		  <text x="52.668" y="71.5" fill="#ffffff" stroke="#000000" stroke-width="0" font-size="24" font-family="Monospace" text-anchor="middle" xml:space="preserve" id="svg_2">World!</text>
          		 </g>
          		</svg>
          	</g>
          </svg>
        • markers-icons.xml
          <svg xmlns="http://www.w3.org/2000/svg">
              <!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
              <g id="nomarker">
                  <svg viewBox="-60 -60 120 120" xmlns="http://www.w3.org/2000/svg">
                      <path stroke-width="10" stroke="#ff7f00" fill="#ff7f00" d="m-50,0l100,0"/>
                  </svg>
              </g>
              <g id="leftarrow">
                  <svg viewBox="-60 -60 120 120" xmlns="http://www.w3.org/2000/svg">
                      <path stroke-width="10" stroke="#ff7f00" fill="#ff7f00" d="m-50,0l100,40l-30,-40l30,-40z"/>
                  </svg>
              </g>
              <g id="rightarrow">
                  <svg viewBox="-60 -60 120 120" xmlns="http://www.w3.org/2000/svg">
                      <path stroke-width="10" stroke="#ff7f00" fill="#ff7f00" d="m50,0l-100,40l30,-40l-30,-40z"/>
                  </svg>
              </g>
              <g id="leftarrow_o">
                  <svg viewBox="-60 -60 120 120" xmlns="http://www.w3.org/2000/svg">
                      <path stroke-width="10" stroke="#ff7f00" fill="none" d="m-50,0l100,40l-30,-40l30,-40z"/>
                  </svg>
              </g>
              <g id="rightarrow_o">
                  <svg viewBox="-60 -60 120 120" xmlns="http://www.w3.org/2000/svg">
                      <path stroke-width="10" stroke="#ff7f00" fill="none" d="m50,0l-100,40l30,-40l-30,-40z"/>
                  </svg>
              </g>
              <g id="forwardslash">
                  <svg viewBox="-60 -60 120 120" xmlns="http://www.w3.org/2000/svg">
                      <path stroke-width="10" stroke="#ff7f00" fill="none" d="m-20,50l40,-100"/>
                  </svg>
              </g>
              <g id="reverseslash">
                  <svg viewBox="-60 -60 120 120" xmlns="http://www.w3.org/2000/svg">
                      <path stroke-width="10" stroke="#ff7f00" fill="none" d="m-20,-50l40,100"/>
                  </svg>
              </g>
              <g id="verticalslash">
                  <svg viewBox="-60 -60 120 120" xmlns="http://www.w3.org/2000/svg">
                      <path stroke-width="10" stroke="#ff7f00" fill="none" d="m0,-50l0,100"/>
                  </svg>
              </g>
              <g id="mcircle">
                  <svg viewBox="-60 -60 120 120" xmlns="http://www.w3.org/2000/svg">
                      <circle stroke-width="10" stroke="#ff7f00" fill="#ff7f00" cy="0" cx="0" r="30"/>
                  </svg>
              </g>
              <g id="mcircle_o">
                  <svg viewBox="-60 -60 120 120" xmlns="http://www.w3.org/2000/svg">
                      <circle stroke-width="10" stroke="#ff7f00" fill="none" cy="0" cx="0" r="30"/>
                  </svg>
              </g>
              <g id="xmark">
                  <svg viewBox="-60 -60 120 120" xmlns="http://www.w3.org/2000/svg">
                      <path stroke-width="10" stroke="#ff7f00" fill="#ff7f00" d="m-30,30l60,-60m0,60l-60,-60"/>
                  </svg>
              </g>
              <g id="box">
                  <svg viewBox="-60 -60 120 120" xmlns="http://www.w3.org/2000/svg">
                      <path stroke-width="10" stroke="#ff7f00" fill="#ff7f00" d="m-30,-30l0,60l60,0l0,-60z"/>
                  </svg>
              </g>
              <g id="star">
                  <svg viewBox="-60 -60 120 120" xmlns="http://www.w3.org/2000/svg">
                      <path stroke-width="10" stroke="#ff7f00" fill="#ff7f00" d="m-40,-20l80,0l-70,60l30,-80l30,80z"/>
                  </svg>
              </g>
              <g id="box_o">
                  <svg viewBox="-60 -60 120 120" xmlns="http://www.w3.org/2000/svg">
                      <path stroke-width="10" stroke="#ff7f00" fill="none" d="m-30,-30l0,60l60,0l0,-60z"/>
                  </svg>
              </g>
              <g id="star_o">
                  <svg viewBox="-60 -60 120 120" xmlns="http://www.w3.org/2000/svg">
                      <path stroke-width="10" stroke="#ff7f00" fill="none" d="m-40,-20l80,0l-70,60l30,-80l30,80z"/>
                  </svg>
              </g>
               <g id="triangle_o">
                  <svg viewBox="-60 -60 120 120" xmlns="http://www.w3.org/2000/svg">
                      <path stroke-width="10" stroke="#ff7f00" fill="none" d="M-30,30 L0,-30 L30,30 Z"/>
                  </svg>
              </g>
               <g id="triangle">
                  <svg viewBox="-60 -60 120 120" xmlns="http://www.w3.org/2000/svg">
                      <path stroke-width="10" stroke="#ff7f00" fill="#ff7f00" d="M-30,30 L0,-30 L30,30 Z"/>
                  </svg>
              </g>
             <g id="textmarker">
                  <svg viewBox="-60 -60 120 120" xmlns="http://www.w3.org/2000/svg">
          			<text xml:space="preserve" text-anchor="middle" font-family="serif" font-size="120"  y="40" x="0" stroke-width="0" stroke="#ff7f00" fill="#ff7f00">T</text>	
                  </svg>
              </g>
          	<g id="mkr_markers_off">
                  <svg viewBox="-60 -60 120 120" xmlns="http://www.w3.org/2000/svg">
          		   <line y2="0" x2="50" y1="0" x1="-50" stroke-width="5" stroke="#ff7f00" fill="none"/>
                 </svg>
              </g>
          	<g id="mkr_markers_dimension">
                  <svg viewBox="-60 -60 120 120" xmlns="http://www.w3.org/2000/svg">
           		   <line y2="0" x2="40" y1="0" x1="20" stroke-width="5" stroke="#ff7f00" fill="none"/>
          		   <line y2="0" x2="-40" y1="0" x1="-20" stroke-width="5" stroke="#ff7f00" fill="none"/>
          		   <text text-anchor="middle" font-family="serif" font-size="80"  y="20" x="0" stroke-width="0" stroke="#ff7f00" fill="#ff7f00">T</text>
                     <path stroke-width="5" stroke="#ff7f00" fill="#ff7f00" d="M-50,0 L-30,-15 L-30,15 Z"/>
                     <path stroke-width="5" stroke="#ff7f00" fill="#ff7f00" d="M50,0 L30,-15 L30,15 Z"/>
           		</svg>
              </g>
             	<g id="mkr_markers_label">
                  <svg viewBox="-60 -60 120 120" xmlns="http://www.w3.org/2000/svg">
            		   <line y2="0" x2="40" y1="0" x1="-20" stroke-width="5" stroke="#ff7f00" fill="none"/>
          		   <text text-anchor="middle" font-family="serif" font-size="80"  y="20" x="-40" stroke-width="0" stroke="#ff7f00" fill="#ff7f00">T</text>
                     <path stroke-width="5" stroke="#ff7f00" fill="#ff7f00" d="M50,0 L30,-15 L30,15 Z"/>
                  </svg>
              </g>
          	<g id="svg_eof"/>
          </svg>
          
        • mathjax-icons.xml
          <svg xmlns="http://www.w3.org/2000/svg">
            <g id="tool_mathjax">
              <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 43 43">
                <g id="svg_20" stroke="black" fill="black" transform="matrix(0.0510725, 0, 0, -0.0510725, 0, 37.4108)">
                  <path id="svg_21" stroke-width="10" d="m20.45372,122.639297q0,57 19,104t49,78.000015t67,52t70,31t63.000015,9l3,0q45,0 78,-22t33,-65q0,-90.000015 -111,-118.000015q-49.000015,-13 -134.000015,-14q-37,0 -38,-2q0,-2 -6,-35t-7,-58q0,-46.999996 21,-73.999996t63,-28t93.000015,19t92,65.999996q9,10 12,10q4,0 13,-9t10,-13.999996t-9,-16t-30,-27t-46,-31t-63,-25t-76.000015,-10q-79,0 -122,53t-44,125.999996zm334.000015,185.000015q-6,52 -68,52q-33.000015,0 -61.000015,-14t-45,-34t-29,-41t-16,-36.000015t-5,-19q0,-1 20,-1q113.000015,0 158.000015,24t46,69.000015z"/>
                  <path id="svg_22" stroke-width="10" d="m489.156433,571.236389q4.949707,29.698486 38.183716,68.589355t82.024414,39.597961q24.748657,0 45.254761,-12.727905t30.40564,-31.819824q29.698486,44.547729 71.417847,44.547729q26.162842,0 45.254761,-15.556335t19.79895,-41.719299q0,-20.506104 -9.899414,-33.234009t-19.091919,-15.556396t-16.263428,-2.82843q-13.435059,0 -21.920288,7.778198t-8.485352,20.506104q0,32.526917 35.355347,44.547729q-7.778198,9.192383 -28.284302,9.192383q-9.192383,0 -13.434937,-1.414246q-26.870117,-11.31366 -39.598022,-46.669006q-42.426392,-156.270599 -42.426392,-182.433502q0,-19.799011 11.313721,-28.284302t24.748657,-8.485291q26.162964,0 51.618896,23.334534t34.648193,57.275635q2.121338,7.071106 4.242676,7.778198t11.313721,1.414185l2.828369,0q10.606567,0 10.606567,-5.65686q0,-0.707092 -1.414185,-7.778137q-11.313721,-40.305115 -43.840576,-71.417786t-75.6604,-31.112732q-49.497559,0 -74.953369,44.547729q-28.991333,-43.840576 -66.468018,-43.840576l-4.242676,0q-34.648193,0 -49.497437,18.384766t-15.556396,38.890869q0,22.62738 13.435059,36.769531t31.819824,14.142151q30.405518,0 30.405518,-29.698486q0,-14.142151 -8.485229,-24.748718t-16.263428,-14.142151t-9.192383,-3.535522l-2.121338,-0.707153q0,-0.707092 4.242676,-2.828369t11.313599,-4.949768t13.435059,-2.121338q25.455811,0 43.840698,31.819824q6.363892,11.313721 16.263428,48.083252t19.79895,76.367523t11.313721,46.669006q3.535522,19.091919 3.535522,27.577209q0,19.79895 -10.606567,28.284241t-24.041626,8.485291q-28.284302,0 -53.033081,-22.627441t-34.648193,-57.982727q-1.414185,-6.363953 -3.535522,-7.071106t-11.313721,-1.414185l-9.899536,0q-4.242554,4.242615 -4.242554,7.778198z"/>
                </g>
          	  </svg>
            </g>
            <g id="svg_eof"/>
          </svg>
          
        • polygon-icons.svg
          <svg xmlns="http://www.w3.org/2000/svg">
          	<g id="tool_polygon">
               <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="-1 -2 25 24">
               	<defs>
          		<linearGradient y2="1" x2="1" y1="0.10156" x1="0.36328" id="svg_i22">
          			<stop stop-opacity="1" stop-color="#ffffff" offset="0"/>
          			<stop stop-opacity="1" stop-color="#666666" offset="1"/>
          		</linearGradient>
          		</defs>
          		<polygon points="6.09251,19.6032 0.577744,10.0516 6.09251,0.5 17.1217,0.5 22.6365,10.0516 17.1217,19.6032" stroke="#000000" fill="url(#svg_i22)"/>	 </svg>
          	</g>
          	
          	<g id="svg_eof"/>
          </svg>
        • star-icons.svg
          <svg xmlns="http://www.w3.org/2000/svg">
          	<g id="tool_star">
               <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="-1 -1 26 26">
               	<defs>
          		<linearGradient y2="1" x2="1" y1="0.10156" x1="0.36328" id="svg_i22">
          			<stop stop-opacity="1" stop-color="#ffffff" offset="0"/>
          			<stop stop-opacity="1" stop-color="#666666" offset="1"/>
          		</linearGradient>
          		</defs>
          		<polygon points="12.4062,1.55891 15.0578,9.39339 23.3283,9.49422 16.6965,14.4371 19.1564,22.3338 12.4062,17.5543 5.65596,22.3338 8.11588,14.4371 1.48406,9.49422 9.75455,9.39339" stroke="#000000" fill="url(#svg_i22)"/>	 </svg>
          	</g>
          	
          	<g id="svg_eof"/>
          </svg>
        • webappfind-icon.svg
          <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg">
          <!--
          Copied from /editor/images/svg_edit_icons.svg#save but with id renamed, first stop-color changed to red, and SVG namespaces moved to root
          -->
          <g id="webappfind_save">
          	<svg viewBox="0 0 24 24">
          	 <defs>
          	  <linearGradient y2="0" x2="1" y1="0" x1="0" id="svg_41">
          	   <stop stop-opacity="1" stop-color="red" offset="0"/>
          	   <stop stop-opacity="1" stop-color="#d6d6d6" offset="1"/>
          	  </linearGradient>
          	  <linearGradient y2="0.875" x2="0.21484" y1="0.00391" x1="0.04297" id="svg_46">
          	   <stop stop-opacity="1" stop-color="#81bbf4" offset="0"/>
          	   <stop stop-opacity="1" stop-color="#376eb7" offset="1"/>
          	  </linearGradient>
          	 </defs>
          	   <path stroke="#202020" fill="#e0e0e0" id="svg_21" d="m1.51669,22.3458l21.13245,-0.10111l0,-6.06673l-2.62892,-9.80789l-16.27907,0.10111l-2.32558,9.20121l0.10111,6.67341z"/>
          	   <rect stroke="#efefef" fill="url(#svg_41)" id="svg_32" height="4.75108" width="19.21031" y="16.58227" x="2.42667"/>
          	   <path stroke="#ffffff" fill="#c0c0c0" id="svg_42" d="m4.55005,11.12235l0.70779,-2.83114l13.04348,0l0.70779,3.13448c-0.70779,2.52781 -4.04479,3.84227 -7.17897,3.84227c-2.72977,0 -6.37007,-1.41557 -7.28008,-4.1456z"/>
          	  <path stroke="#285582" fill="url(#svg_46)" id="svg_45" d="m7.14286,9.74903l5.21236,5.79151l5.50193,-5.88803l-2.50965,-0.09653l0,-2.79923c0,-2.3166 -2.3166,-5.59846 -6.56371,-5.59846c-4.05405,0 -6.27413,3.37838 -6.56371,6.75676c0.48263,-1.5444 2.7027,-4.53668 4.44015,-4.44015c2.12355,-0.09653 2.79923,1.64093 2.79923,3.37838l0.09653,2.79923l-2.41313,0.09653z"/>
          	</svg>
          </g>
          </svg>
      • images
        • align-bottom.svg
          <?xml version="1.0" encoding="UTF-8" standalone="no"?>
          <!-- Created with Inkscape (http://www.inkscape.org/) -->
          <svg
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:cc="http://web.resource.org/cc/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:svg="http://www.w3.org/2000/svg"
             xmlns="http://www.w3.org/2000/svg"
             xmlns:xlink="http://www.w3.org/1999/xlink"
             xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
             xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
             width="22"
             height="22"
             id="svg5741"
             sodipodi:version="0.32"
             inkscape:version="0.44+devel"
             version="1.0"
             sodipodi:docbase="/home/andreas/project/inkscape/22x22/actions"
             sodipodi:docname="align-bottom-vertical.svg"
             inkscape:output_extension="org.inkscape.output.svg.inkscape"
             inkscape:export-filename="/home/andreas/project/inkscape/22x22/actions/align-bottom-vertical.png"
             inkscape:export-xdpi="90"
             inkscape:export-ydpi="90"
             sodipodi:modified="true">
            <defs
               id="defs5743">
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2968"
                 id="linearGradient6938"
                 gradientUnits="userSpaceOnUse"
                 gradientTransform="matrix(-1,0,0,-1,395.9999,981)"
                 x1="187.60938"
                 y1="489.35938"
                 x2="186.93732"
                 y2="489.35938" />
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2974"
                 id="linearGradient6936"
                 gradientUnits="userSpaceOnUse"
                 gradientTransform="matrix(-1,0,0,-1,395.9999,981)"
                 x1="187.81554"
                 y1="489.54688"
                 x2="187.1716"
                 y2="489.54688" />
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2986"
                 id="linearGradient6934"
                 gradientUnits="userSpaceOnUse"
                 x1="187.60938"
                 y1="489.35938"
                 x2="186.93732"
                 y2="489.35938" />
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2980"
                 id="linearGradient6932"
                 gradientUnits="userSpaceOnUse"
                 x1="187.81554"
                 y1="489.54688"
                 x2="187.1716"
                 y2="489.54688" />
              <linearGradient
                 id="linearGradient2968"
                 inkscape:collect="always">
                <stop
                   id="stop2970"
                   offset="0"
                   style="stop-color:#ce5c00;stop-opacity:1" />
                <stop
                   id="stop2972"
                   offset="1"
                   style="stop-color:#ce5c00;stop-opacity:0" />
              </linearGradient>
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2968"
                 id="linearGradient6930"
                 gradientUnits="userSpaceOnUse"
                 gradientTransform="matrix(-1,0,0,-1,395.9999,981)"
                 x1="187.60938"
                 y1="489.35938"
                 x2="186.93732"
                 y2="489.35938" />
              <linearGradient
                 id="linearGradient2974"
                 inkscape:collect="always">
                <stop
                   id="stop2976"
                   offset="0"
                   style="stop-color:#fcaf3e;stop-opacity:1" />
                <stop
                   id="stop2978"
                   offset="1"
                   style="stop-color:#fcaf3e;stop-opacity:0" />
              </linearGradient>
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2974"
                 id="linearGradient6928"
                 gradientUnits="userSpaceOnUse"
                 gradientTransform="matrix(-1,0,0,-1,395.9999,981)"
                 x1="187.81554"
                 y1="489.54688"
                 x2="187.1716"
                 y2="489.54688" />
              <linearGradient
                 id="linearGradient2986"
                 inkscape:collect="always">
                <stop
                   id="stop2988"
                   offset="0"
                   style="stop-color:#ce5c00;stop-opacity:1" />
                <stop
                   id="stop2990"
                   offset="1"
                   style="stop-color:#ce5c00;stop-opacity:0" />
              </linearGradient>
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2986"
                 id="linearGradient6926"
                 gradientUnits="userSpaceOnUse"
                 x1="187.60938"
                 y1="489.35938"
                 x2="186.93732"
                 y2="489.35938" />
              <linearGradient
                 id="linearGradient2980"
                 inkscape:collect="always">
                <stop
                   id="stop2982"
                   offset="0"
                   style="stop-color:#fcaf3e;stop-opacity:1" />
                <stop
                   id="stop2984"
                   offset="1"
                   style="stop-color:#fcaf3e;stop-opacity:0" />
              </linearGradient>
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2980"
                 id="linearGradient6924"
                 gradientUnits="userSpaceOnUse"
                 x1="187.81554"
                 y1="489.54688"
                 x2="187.1716"
                 y2="489.54688" />
            </defs>
            <sodipodi:namedview
               id="base"
               pagecolor="#ffffff"
               bordercolor="#666666"
               borderopacity="1.0"
               inkscape:pageopacity="0.0"
               inkscape:pageshadow="2"
               inkscape:zoom="22.197802"
               inkscape:cx="8"
               inkscape:cy="9.8019802"
               inkscape:current-layer="g6828"
               showgrid="false"
               inkscape:grid-bbox="true"
               inkscape:document-units="px"
               width="22px"
               height="22px"
               inkscape:window-width="1078"
               inkscape:window-height="786"
               inkscape:window-x="243"
               inkscape:window-y="71" />
            <metadata
               id="metadata5746">
              <rdf:RDF>
                <cc:Work
                   rdf:about="">
                  <dc:format>image/svg+xml</dc:format>
                  <dc:type
                     rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
                </cc:Work>
              </rdf:RDF>
            </metadata>
            <g
               id="layer1"
               inkscape:label="Layer 1"
               inkscape:groupmode="layer">
              <g
                 style="display:inline"
                 id="g6828"
                 transform="translate(30.00011,90.000366)"
                 inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                 inkscape:export-xdpi="90"
                 inkscape:export-ydpi="90">
                <g
                   style="display:inline"
                   id="g6838"
                   transform="translate(-30.00009,-1.0002798)"
                   inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                   inkscape:export-xdpi="90"
                   inkscape:export-ydpi="90">
                  <rect
                     style="fill:#d3d7cf;fill-opacity:1;stroke:#888a85;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                     id="rect3052"
                     width="12"
                     height="7"
                     x="69.500122"
                     y="12.5"
                     transform="matrix(0,-1,1,0,0,0)"
                     inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                     inkscape:export-xdpi="90"
                     inkscape:export-ydpi="90" />
                  <rect
                     style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                     id="rect3054"
                     width="10"
                     height="5.0000305"
                     x="70.500122"
                     y="13.5"
                     transform="matrix(0,-1,1,0,0,0)"
                     rx="0"
                     ry="0"
                     inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                     inkscape:export-xdpi="90"
                     inkscape:export-ydpi="90" />
                  <g
                     id="g3056"
                     transform="translate(-127,-559)"
                     inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                     inkscape:export-xdpi="90"
                     inkscape:export-ydpi="90">
                    <rect
                       transform="matrix(0,-1,1,0,0,0)"
                       y="129.49626"
                       x="-489.49979"
                       height="7.0035982"
                       width="17.999748"
                       id="rect3058"
                       style="color:#000000;fill:#d3d7cf;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1.00024867;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" />
                    <rect
                       transform="matrix(0,-1,1,0,0,0)"
                       y="130.50006"
                       x="-488.50009"
                       height="4.9998937"
                       width="15.999757"
                       id="rect3060"
                       style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00024891;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
                       rx="0"
                       ry="0" />
                  </g>
                  <g
                     id="g3294"
                     transform="translate(-187,-560)"
                     inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                     inkscape:export-xdpi="90"
                     inkscape:export-ydpi="90">
                    <rect
                       y="489.5"
                       x="196.49989"
                       height="1.9999999"
                       width="3.0000916"
                       id="rect3296"
                       style="fill:#fcaf3e;fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
                    <path
                       style="fill:url(#linearGradient6932);fill-opacity:1;stroke:url(#linearGradient6934);stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
                       d="M 197.49998,491.5 L 186.49989,491.5 L 186.49989,489.5 L 197.49998,489.5"
                       id="path3298"
                       sodipodi:nodetypes="cccc" />
                    <path
                       style="fill:url(#linearGradient6936);fill-opacity:1;stroke:url(#linearGradient6938);stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
                       d="M 198.49989,489.5 L 209.49998,489.5 L 209.49998,491.5 L 198.49989,491.5"
                       id="path3300"
                       sodipodi:nodetypes="cccc" />
                  </g>
                </g>
              </g>
            </g>
          </svg>
          
        • align-center.svg
          <?xml version="1.0" encoding="UTF-8" standalone="no"?>
          <!-- Created with Inkscape (http://www.inkscape.org/) -->
          <svg
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:cc="http://web.resource.org/cc/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:svg="http://www.w3.org/2000/svg"
             xmlns="http://www.w3.org/2000/svg"
             xmlns:xlink="http://www.w3.org/1999/xlink"
             xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
             xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
             width="22"
             height="22"
             id="svg10958"
             sodipodi:version="0.32"
             inkscape:version="0.44+devel"
             version="1.0"
             sodipodi:docbase="/home/andreas/project/inkscape/22x22/actions"
             sodipodi:docname="align-horisontal-center.svg"
             inkscape:output_extension="org.inkscape.output.svg.inkscape"
             inkscape:export-filename="/home/andreas/project/inkscape/22x22/actions/align-horisontal-center.png"
             inkscape:export-xdpi="90"
             inkscape:export-ydpi="90"
             sodipodi:modified="true">
            <defs
               id="defs10960">
              <linearGradient
                 id="linearGradient2968"
                 inkscape:collect="always">
                <stop
                   id="stop2970"
                   offset="0"
                   style="stop-color:#ce5c00;stop-opacity:1" />
                <stop
                   id="stop2972"
                   offset="1"
                   style="stop-color:#ce5c00;stop-opacity:0" />
              </linearGradient>
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2968"
                 id="linearGradient4708"
                 gradientUnits="userSpaceOnUse"
                 gradientTransform="translate(-395.9999,-981)"
                 x1="187.60938"
                 y1="489.35938"
                 x2="186.93732"
                 y2="489.35938" />
              <linearGradient
                 id="linearGradient2974"
                 inkscape:collect="always">
                <stop
                   id="stop2976"
                   offset="0"
                   style="stop-color:#fcaf3e;stop-opacity:1" />
                <stop
                   id="stop2978"
                   offset="1"
                   style="stop-color:#fcaf3e;stop-opacity:0" />
              </linearGradient>
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2974"
                 id="linearGradient4706"
                 gradientUnits="userSpaceOnUse"
                 gradientTransform="translate(-395.9999,-981)"
                 x1="187.81554"
                 y1="489.54688"
                 x2="187.1716"
                 y2="489.54688" />
              <linearGradient
                 id="linearGradient2986"
                 inkscape:collect="always">
                <stop
                   id="stop2988"
                   offset="0"
                   style="stop-color:#ce5c00;stop-opacity:1" />
                <stop
                   id="stop2990"
                   offset="1"
                   style="stop-color:#ce5c00;stop-opacity:0" />
              </linearGradient>
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2986"
                 id="linearGradient4704"
                 gradientUnits="userSpaceOnUse"
                 x1="187.60938"
                 y1="489.35938"
                 x2="186.93732"
                 y2="489.35938" />
              <linearGradient
                 id="linearGradient2980"
                 inkscape:collect="always">
                <stop
                   id="stop2982"
                   offset="0"
                   style="stop-color:#fcaf3e;stop-opacity:1" />
                <stop
                   id="stop2984"
                   offset="1"
                   style="stop-color:#fcaf3e;stop-opacity:0" />
              </linearGradient>
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2980"
                 id="linearGradient4702"
                 gradientUnits="userSpaceOnUse"
                 x1="187.81554"
                 y1="489.54688"
                 x2="187.1716"
                 y2="489.54688" />
            </defs>
            <sodipodi:namedview
               id="base"
               pagecolor="#ffffff"
               bordercolor="#666666"
               borderopacity="1.0"
               inkscape:pageopacity="0.0"
               inkscape:pageshadow="2"
               inkscape:zoom="11.197802"
               inkscape:cx="16"
               inkscape:cy="11.460711"
               inkscape:current-layer="layer1"
               showgrid="false"
               inkscape:grid-bbox="true"
               inkscape:document-units="px"
               width="22px"
               height="22px"
               inkscape:window-width="797"
               inkscape:window-height="628"
               inkscape:window-x="0"
               inkscape:window-y="47" />
            <metadata
               id="metadata10963">
              <rdf:RDF>
                <cc:Work
                   rdf:about="">
                  <dc:format>image/svg+xml</dc:format>
                  <dc:type
                     rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
                </cc:Work>
              </rdf:RDF>
            </metadata>
            <g
               id="layer1"
               inkscape:label="Layer 1"
               inkscape:groupmode="layer">
              <g
                 style="display:inline"
                 id="g4044"
                 transform="matrix(0,-1,1,0,-59.999911,-168.00002)"
                 inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                 inkscape:export-xdpi="90"
                 inkscape:export-ydpi="90">
                <rect
                   style="fill:#d3d7cf;fill-opacity:1;stroke:#888a85;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
                   id="rect3851"
                   width="12"
                   height="7"
                   x="-76.499878"
                   y="-177.5"
                   transform="matrix(0,-1,1,0,0,0)"
                   inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                   inkscape:export-xdpi="90"
                   inkscape:export-ydpi="90" />
                <g
                   transform="translate(-317,-410)"
                   id="g3853"
                   inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                   inkscape:export-xdpi="90"
                   inkscape:export-ydpi="90"
                   style="display:inline">
                  <rect
                     transform="matrix(0,-1,1,0,0,0)"
                     y="129.49626"
                     x="-489.49979"
                     height="7.0035982"
                     width="17.999748"
                     id="rect3855"
                     style="color:#000000;fill:#d3d7cf;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1.00024867;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" />
                  <rect
                     transform="matrix(0,-1,1,0,0,0)"
                     y="130.50006"
                     x="-488.50009"
                     height="4.9998937"
                     width="15.999757"
                     id="rect3857"
                     style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00024891;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
                     rx="0"
                     ry="0" />
                </g>
                <rect
                   style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
                   id="rect3859"
                   width="10"
                   height="5.0000305"
                   x="-75.499878"
                   y="-176.5"
                   transform="matrix(0,-1,1,0,0,0)"
                   rx="0"
                   ry="0"
                   inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                   inkscape:export-xdpi="90"
                   inkscape:export-ydpi="90" />
                <g
                   id="g3861"
                   transform="translate(-377,-420)"
                   inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                   inkscape:export-xdpi="90"
                   inkscape:export-ydpi="90"
                   style="display:inline">
                  <rect
                     y="489.5"
                     x="186.49989"
                     height="1.9999999"
                     width="3.0000916"
                     id="rect3863"
                     style="fill:url(#linearGradient4702);fill-opacity:1;stroke:url(#linearGradient4704);stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
                  <rect
                     y="489.5"
                     x="191.49989"
                     height="1.9999999"
                     width="3.0000916"
                     id="rect3865"
                     style="fill:#fcaf3e;fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
                  <rect
                     y="489.5"
                     x="196.49989"
                     height="1.9999999"
                     width="3.0000916"
                     id="rect3867"
                     style="fill:#fcaf3e;fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
                  <rect
                     y="489.5"
                     x="201.49989"
                     height="1.9999999"
                     width="3.0000916"
                     id="rect3869"
                     style="fill:#fcaf3e;fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
                  <rect
                     transform="scale(-1,-1)"
                     y="-491.5"
                     x="-209.49998"
                     height="1.9999999"
                     width="3.0000916"
                     id="rect3871"
                     style="fill:url(#linearGradient4706);fill-opacity:1;stroke:url(#linearGradient4708);stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
                </g>
              </g>
            </g>
          </svg>
          
        • align-left.svg
          <?xml version="1.0" encoding="UTF-8" standalone="no"?>
          <!-- Created with Inkscape (http://www.inkscape.org/) -->
          <svg
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:cc="http://web.resource.org/cc/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:svg="http://www.w3.org/2000/svg"
             xmlns="http://www.w3.org/2000/svg"
             xmlns:xlink="http://www.w3.org/1999/xlink"
             xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
             xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
             width="22"
             height="22"
             id="svg11272"
             sodipodi:version="0.32"
             inkscape:version="0.44+devel"
             version="1.0"
             sodipodi:docbase="/home/andreas/project/inkscape/22x22/actions"
             sodipodi:docname="align-horisontal-left.svg"
             inkscape:output_extension="org.inkscape.output.svg.inkscape"
             inkscape:export-filename="/home/andreas/project/inkscape/22x22/actions/align-horisontal-left.png"
             inkscape:export-xdpi="90"
             inkscape:export-ydpi="90"
             sodipodi:modified="true">
            <defs
               id="defs11274">
              <linearGradient
                 id="linearGradient2968"
                 inkscape:collect="always">
                <stop
                   id="stop2970"
                   offset="0"
                   style="stop-color:#ce5c00;stop-opacity:1" />
                <stop
                   id="stop2972"
                   offset="1"
                   style="stop-color:#ce5c00;stop-opacity:0" />
              </linearGradient>
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2968"
                 id="linearGradient4716"
                 gradientUnits="userSpaceOnUse"
                 gradientTransform="matrix(-1,0,0,-1,395.9999,981)"
                 x1="187.60938"
                 y1="489.35938"
                 x2="186.93732"
                 y2="489.35938" />
              <linearGradient
                 id="linearGradient2974"
                 inkscape:collect="always">
                <stop
                   id="stop2976"
                   offset="0"
                   style="stop-color:#fcaf3e;stop-opacity:1" />
                <stop
                   id="stop2978"
                   offset="1"
                   style="stop-color:#fcaf3e;stop-opacity:0" />
              </linearGradient>
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2974"
                 id="linearGradient4714"
                 gradientUnits="userSpaceOnUse"
                 gradientTransform="matrix(-1,0,0,-1,395.9999,981)"
                 x1="187.81554"
                 y1="489.54688"
                 x2="187.1716"
                 y2="489.54688" />
              <linearGradient
                 id="linearGradient2986"
                 inkscape:collect="always">
                <stop
                   id="stop2988"
                   offset="0"
                   style="stop-color:#ce5c00;stop-opacity:1" />
                <stop
                   id="stop2990"
                   offset="1"
                   style="stop-color:#ce5c00;stop-opacity:0" />
              </linearGradient>
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2986"
                 id="linearGradient4712"
                 gradientUnits="userSpaceOnUse"
                 x1="187.60938"
                 y1="489.35938"
                 x2="186.93732"
                 y2="489.35938" />
              <linearGradient
                 id="linearGradient2980"
                 inkscape:collect="always">
                <stop
                   id="stop2982"
                   offset="0"
                   style="stop-color:#fcaf3e;stop-opacity:1" />
                <stop
                   id="stop2984"
                   offset="1"
                   style="stop-color:#fcaf3e;stop-opacity:0" />
              </linearGradient>
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2980"
                 id="linearGradient4710"
                 gradientUnits="userSpaceOnUse"
                 x1="187.81554"
                 y1="489.54688"
                 x2="187.1716"
                 y2="489.54688" />
            </defs>
            <sodipodi:namedview
               id="base"
               pagecolor="#ffffff"
               bordercolor="#666666"
               borderopacity="1.0"
               inkscape:pageopacity="0.0"
               inkscape:pageshadow="2"
               inkscape:zoom="11.197802"
               inkscape:cx="16"
               inkscape:cy="14.269093"
               inkscape:current-layer="layer1"
               showgrid="false"
               inkscape:grid-bbox="true"
               inkscape:document-units="px"
               width="22px"
               height="22px"
               inkscape:window-width="797"
               inkscape:window-height="628"
               inkscape:window-x="0"
               inkscape:window-y="47" />
            <metadata
               id="metadata11277">
              <rdf:RDF>
                <cc:Work
                   rdf:about="">
                  <dc:format>image/svg+xml</dc:format>
                  <dc:type
                     rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
                </cc:Work>
              </rdf:RDF>
            </metadata>
            <g
               id="layer1"
               inkscape:label="Layer 1"
               inkscape:groupmode="layer">
              <g
                 style="display:inline"
                 id="g4065"
                 transform="matrix(0,-1,1,0,8.9287758e-5,51.99998)"
                 inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                 inkscape:export-xdpi="90"
                 inkscape:export-ydpi="90">
                <g
                   id="g3883"
                   transform="translate(-127,-473)"
                   style="fill:#d3d7cf;stroke:#888a85;display:inline"
                   inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                   inkscape:export-xdpi="90"
                   inkscape:export-ydpi="90">
                  <rect
                     transform="matrix(0,1,1,0,0,0)"
                     y="169.5"
                     x="475.50012"
                     height="7"
                     width="12"
                     id="rect3885"
                     style="fill:#d3d7cf;fill-opacity:1;stroke:#888a85;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
                  <rect
                     ry="0"
                     rx="0"
                     transform="matrix(0,1,1,0,0,0)"
                     y="170.5"
                     x="476.50012"
                     height="5.0000305"
                     width="10"
                     id="rect3887"
                     style="opacity:1;fill:#d3d7cf;fill-opacity:1;stroke:#ffffff;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
                </g>
                <g
                   id="g3889"
                   transform="translate(-97,-469)"
                   inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                   inkscape:export-xdpi="90"
                   inkscape:export-ydpi="90"
                   style="display:inline">
                  <rect
                     transform="matrix(0,-1,1,0,0,0)"
                     y="129.49626"
                     x="-489.49979"
                     height="7.0035982"
                     width="17.999748"
                     id="rect3891"
                     style="color:#000000;fill:#d3d7cf;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1.00024867;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" />
                  <rect
                     transform="matrix(0,-1,1,0,0,0)"
                     y="130.50006"
                     x="-488.50009"
                     height="4.9998937"
                     width="15.999757"
                     id="rect3893"
                     style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00024891;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
                     rx="0"
                     ry="0" />
                </g>
                <g
                   id="g3903"
                   transform="translate(-157,-488)"
                   inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                   inkscape:export-xdpi="90"
                   inkscape:export-ydpi="90"
                   style="display:inline">
                  <rect
                     y="489.5"
                     x="196.49989"
                     height="1.9999999"
                     width="3.0000916"
                     id="rect3905"
                     style="fill:#fcaf3e;fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
                  <path
                     style="fill:url(#linearGradient4710);fill-opacity:1;stroke:url(#linearGradient4712);stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
                     d="M 197.49998,491.5 L 186.49989,491.5 L 186.49989,489.5 L 197.49998,489.5"
                     id="path3907"
                     sodipodi:nodetypes="cccc" />
                  <path
                     style="fill:url(#linearGradient4714);fill-opacity:1;stroke:url(#linearGradient4716);stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
                     d="M 198.49989,489.5 L 209.49998,489.5 L 209.49998,491.5 L 198.49989,491.5"
                     id="path3909"
                     sodipodi:nodetypes="cccc" />
                </g>
              </g>
            </g>
          </svg>
          
        • align-middle.svg
          <?xml version="1.0" encoding="UTF-8" standalone="no"?>
          <!-- Created with Inkscape (http://www.inkscape.org/) -->
          <svg
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:cc="http://web.resource.org/cc/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:svg="http://www.w3.org/2000/svg"
             xmlns="http://www.w3.org/2000/svg"
             xmlns:xlink="http://www.w3.org/1999/xlink"
             xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
             xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
             width="22"
             height="22"
             id="svg10625"
             sodipodi:version="0.32"
             inkscape:version="0.44+devel"
             version="1.0"
             sodipodi:docbase="/home/andreas/project/inkscape/22x22/actions"
             sodipodi:docname="align-vertical-center.svg"
             inkscape:output_extension="org.inkscape.output.svg.inkscape"
             inkscape:export-filename="/home/andreas/project/inkscape/22x22/actions/align-vertical-center.png"
             inkscape:export-xdpi="90"
             inkscape:export-ydpi="90"
             sodipodi:modified="true">
            <defs
               id="defs10627">
              <linearGradient
                 id="linearGradient2968"
                 inkscape:collect="always">
                <stop
                   id="stop2970"
                   offset="0"
                   style="stop-color:#ce5c00;stop-opacity:1" />
                <stop
                   id="stop2972"
                   offset="1"
                   style="stop-color:#ce5c00;stop-opacity:0" />
              </linearGradient>
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2968"
                 id="linearGradient6962"
                 gradientUnits="userSpaceOnUse"
                 gradientTransform="translate(-395.9999,-981)"
                 x1="187.60938"
                 y1="489.35938"
                 x2="186.93732"
                 y2="489.35938" />
              <linearGradient
                 id="linearGradient2974"
                 inkscape:collect="always">
                <stop
                   id="stop2976"
                   offset="0"
                   style="stop-color:#fcaf3e;stop-opacity:1" />
                <stop
                   id="stop2978"
                   offset="1"
                   style="stop-color:#fcaf3e;stop-opacity:0" />
              </linearGradient>
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2974"
                 id="linearGradient6960"
                 gradientUnits="userSpaceOnUse"
                 gradientTransform="translate(-395.9999,-981)"
                 x1="187.81554"
                 y1="489.54688"
                 x2="187.1716"
                 y2="489.54688" />
              <linearGradient
                 id="linearGradient2986"
                 inkscape:collect="always">
                <stop
                   id="stop2988"
                   offset="0"
                   style="stop-color:#ce5c00;stop-opacity:1" />
                <stop
                   id="stop2990"
                   offset="1"
                   style="stop-color:#ce5c00;stop-opacity:0" />
              </linearGradient>
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2986"
                 id="linearGradient6958"
                 gradientUnits="userSpaceOnUse"
                 x1="187.60938"
                 y1="489.35938"
                 x2="186.93732"
                 y2="489.35938" />
              <linearGradient
                 id="linearGradient2980"
                 inkscape:collect="always">
                <stop
                   id="stop2982"
                   offset="0"
                   style="stop-color:#fcaf3e;stop-opacity:1" />
                <stop
                   id="stop2984"
                   offset="1"
                   style="stop-color:#fcaf3e;stop-opacity:0" />
              </linearGradient>
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2980"
                 id="linearGradient6956"
                 gradientUnits="userSpaceOnUse"
                 x1="187.81554"
                 y1="489.54688"
                 x2="187.1716"
                 y2="489.54688" />
            </defs>
            <sodipodi:namedview
               id="base"
               pagecolor="#ffffff"
               bordercolor="#666666"
               borderopacity="1.0"
               inkscape:pageopacity="0.0"
               inkscape:pageshadow="2"
               inkscape:zoom="11.197802"
               inkscape:cx="16"
               inkscape:cy="16"
               inkscape:current-layer="layer1"
               showgrid="false"
               inkscape:grid-bbox="true"
               inkscape:document-units="px"
               width="22px"
               height="22px"
               inkscape:window-width="797"
               inkscape:window-height="628"
               inkscape:window-x="0"
               inkscape:window-y="47" />
            <metadata
               id="metadata10630">
              <rdf:RDF>
                <cc:Work
                   rdf:about="">
                  <dc:format>image/svg+xml</dc:format>
                  <dc:type
                     rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
                </cc:Work>
              </rdf:RDF>
            </metadata>
            <g
               id="layer1"
               inkscape:label="Layer 1"
               inkscape:groupmode="layer">
              <g
                 style="display:inline"
                 id="g6849"
                 transform="translate(-29.999893,91.000089)"
                 inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                 inkscape:export-xdpi="90"
                 inkscape:export-ydpi="90">
                <rect
                   style="fill:#d3d7cf;fill-opacity:1;stroke:#888a85;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                   id="rect1933"
                   width="12"
                   height="7"
                   x="73.500122"
                   y="42.5"
                   transform="matrix(0,-1,1,0,0,0)"
                   inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                   inkscape:export-xdpi="90"
                   inkscape:export-ydpi="90" />
                <g
                   transform="translate(-97,-560)"
                   id="g2063"
                   inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                   inkscape:export-xdpi="90"
                   inkscape:export-ydpi="90">
                  <rect
                     transform="matrix(0,-1,1,0,0,0)"
                     y="129.49626"
                     x="-489.49979"
                     height="7.0035982"
                     width="17.999748"
                     id="rect1935"
                     style="color:#000000;fill:#d3d7cf;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1.00024867;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" />
                  <rect
                     transform="matrix(0,-1,1,0,0,0)"
                     y="130.50006"
                     x="-488.50009"
                     height="4.9998937"
                     width="15.999757"
                     id="rect1937"
                     style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00024891;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
                     rx="0"
                     ry="0" />
                </g>
                <rect
                   style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                   id="rect1939"
                   width="10"
                   height="5.0000305"
                   x="74.500122"
                   y="43.5"
                   transform="matrix(0,-1,1,0,0,0)"
                   rx="0"
                   ry="0"
                   inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                   inkscape:export-xdpi="90"
                   inkscape:export-ydpi="90" />
                <g
                   id="g2992"
                   transform="translate(-157,-570)"
                   inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                   inkscape:export-xdpi="90"
                   inkscape:export-ydpi="90">
                  <rect
                     y="489.5"
                     x="186.49989"
                     height="1.9999999"
                     width="3.0000916"
                     id="rect2994"
                     style="fill:url(#linearGradient6956);fill-opacity:1;stroke:url(#linearGradient6958);stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
                  <rect
                     y="489.5"
                     x="191.49989"
                     height="1.9999999"
                     width="3.0000916"
                     id="rect2996"
                     style="fill:#fcaf3e;fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
                  <rect
                     y="489.5"
                     x="196.49989"
                     height="1.9999999"
                     width="3.0000916"
                     id="rect2998"
                     style="fill:#fcaf3e;fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
                  <rect
                     y="489.5"
                     x="201.49989"
                     height="1.9999999"
                     width="3.0000916"
                     id="rect3000"
                     style="fill:#fcaf3e;fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
                  <rect
                     transform="scale(-1,-1)"
                     y="-491.5"
                     x="-209.49998"
                     height="1.9999999"
                     width="3.0000916"
                     id="rect3002"
                     style="fill:url(#linearGradient6960);fill-opacity:1;stroke:url(#linearGradient6962);stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
                </g>
              </g>
            </g>
          </svg>
          
        • align-right.svg
          <?xml version="1.0" encoding="UTF-8" standalone="no"?>
          <!-- Created with Inkscape (http://www.inkscape.org/) -->
          <svg
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:cc="http://web.resource.org/cc/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:svg="http://www.w3.org/2000/svg"
             xmlns="http://www.w3.org/2000/svg"
             xmlns:xlink="http://www.w3.org/1999/xlink"
             xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
             xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
             width="22"
             height="22"
             id="svg11187"
             sodipodi:version="0.32"
             inkscape:version="0.44+devel"
             version="1.0"
             sodipodi:docbase="/home/andreas/project/inkscape/22x22/actions"
             sodipodi:docname="align-horisontal-right.svg"
             inkscape:output_extension="org.inkscape.output.svg.inkscape"
             sodipodi:modified="TRUE"
             inkscape:export-filename="/home/andreas/project/inkscape/22x22/actions/align-horisontal-right.png"
             inkscape:export-xdpi="90"
             inkscape:export-ydpi="90">
            <defs
               id="defs11189">
              <linearGradient
                 id="linearGradient2968"
                 inkscape:collect="always">
                <stop
                   id="stop2970"
                   offset="0"
                   style="stop-color:#ce5c00;stop-opacity:1" />
                <stop
                   id="stop2972"
                   offset="1"
                   style="stop-color:#ce5c00;stop-opacity:0" />
              </linearGradient>
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2968"
                 id="linearGradient4732"
                 gradientUnits="userSpaceOnUse"
                 gradientTransform="matrix(-1,0,0,-1,395.9999,981)"
                 x1="187.60938"
                 y1="489.35938"
                 x2="186.93732"
                 y2="489.35938" />
              <linearGradient
                 id="linearGradient2974"
                 inkscape:collect="always">
                <stop
                   id="stop2976"
                   offset="0"
                   style="stop-color:#fcaf3e;stop-opacity:1" />
                <stop
                   id="stop2978"
                   offset="1"
                   style="stop-color:#fcaf3e;stop-opacity:0" />
              </linearGradient>
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2974"
                 id="linearGradient4730"
                 gradientUnits="userSpaceOnUse"
                 gradientTransform="matrix(-1,0,0,-1,395.9999,981)"
                 x1="187.81554"
                 y1="489.54688"
                 x2="187.1716"
                 y2="489.54688" />
              <linearGradient
                 id="linearGradient2986"
                 inkscape:collect="always">
                <stop
                   id="stop2988"
                   offset="0"
                   style="stop-color:#ce5c00;stop-opacity:1" />
                <stop
                   id="stop2990"
                   offset="1"
                   style="stop-color:#ce5c00;stop-opacity:0" />
              </linearGradient>
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2986"
                 id="linearGradient4728"
                 gradientUnits="userSpaceOnUse"
                 x1="187.60938"
                 y1="489.35938"
                 x2="186.93732"
                 y2="489.35938" />
              <linearGradient
                 id="linearGradient2980"
                 inkscape:collect="always">
                <stop
                   id="stop2982"
                   offset="0"
                   style="stop-color:#fcaf3e;stop-opacity:1" />
                <stop
                   id="stop2984"
                   offset="1"
                   style="stop-color:#fcaf3e;stop-opacity:0" />
              </linearGradient>
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2980"
                 id="linearGradient4726"
                 gradientUnits="userSpaceOnUse"
                 x1="187.81554"
                 y1="489.54688"
                 x2="187.1716"
                 y2="489.54688" />
            </defs>
            <sodipodi:namedview
               id="base"
               pagecolor="#ffffff"
               bordercolor="#666666"
               borderopacity="1.0"
               inkscape:pageopacity="0.0"
               inkscape:pageshadow="2"
               inkscape:zoom="11.197802"
               inkscape:cx="16"
               inkscape:cy="16"
               inkscape:current-layer="layer1"
               showgrid="false"
               inkscape:grid-bbox="true"
               inkscape:document-units="px"
               width="22px"
               height="22px"
               inkscape:window-width="797"
               inkscape:window-height="628"
               inkscape:window-x="0"
               inkscape:window-y="47" />
            <metadata
               id="metadata11192">
              <rdf:RDF>
                <cc:Work
                   rdf:about="">
                  <dc:format>image/svg+xml</dc:format>
                  <dc:type
                     rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
                </cc:Work>
              </rdf:RDF>
            </metadata>
            <g
               id="layer1"
               inkscape:label="Layer 1"
               inkscape:groupmode="layer">
              <g
                 style="display:inline"
                 id="g4025"
                 transform="matrix(0,-1,1,0,-60.999914,-198.00011)"
                 inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                 inkscape:export-xdpi="90"
                 inkscape:export-ydpi="90">
                <rect
                   style="fill:#d3d7cf;fill-opacity:1;stroke:#888a85;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
                   id="rect3873"
                   width="12"
                   height="7"
                   x="-80.499878"
                   y="-207.5"
                   transform="matrix(0,-1,1,0,0,0)"
                   inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                   inkscape:export-xdpi="90"
                   inkscape:export-ydpi="90" />
                <rect
                   style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
                   id="rect3875"
                   width="10"
                   height="5.0000305"
                   x="-79.499878"
                   y="-206.5"
                   transform="matrix(0,-1,1,0,0,0)"
                   rx="0"
                   ry="0"
                   inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                   inkscape:export-xdpi="90"
                   inkscape:export-ydpi="90" />
                <g
                   id="g3877"
                   transform="translate(-347,-409)"
                   inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                   inkscape:export-xdpi="90"
                   inkscape:export-ydpi="90"
                   style="display:inline">
                  <rect
                     transform="matrix(0,-1,1,0,0,0)"
                     y="129.49626"
                     x="-489.49979"
                     height="7.0035982"
                     width="17.999748"
                     id="rect3879"
                     style="color:#000000;fill:#d3d7cf;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1.00024867;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" />
                  <rect
                     transform="matrix(0,-1,1,0,0,0)"
                     y="130.50006"
                     x="-488.50009"
                     height="4.9998937"
                     width="15.999757"
                     id="rect3881"
                     style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00024891;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
                     rx="0"
                     ry="0" />
                </g>
                <g
                   id="g3919"
                   transform="translate(-407,-410)"
                   inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                   inkscape:export-xdpi="90"
                   inkscape:export-ydpi="90"
                   style="display:inline">
                  <rect
                     y="489.5"
                     x="196.49989"
                     height="1.9999999"
                     width="3.0000916"
                     id="rect3921"
                     style="fill:#fcaf3e;fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
                  <path
                     style="fill:url(#linearGradient4726);fill-opacity:1;stroke:url(#linearGradient4728);stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
                     d="M 197.49998,491.5 L 186.49989,491.5 L 186.49989,489.5 L 197.49998,489.5"
                     id="path3923"
                     sodipodi:nodetypes="cccc" />
                  <path
                     style="fill:url(#linearGradient4730);fill-opacity:1;stroke:url(#linearGradient4732);stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
                     d="M 198.49989,489.5 L 209.49998,489.5 L 209.49998,491.5 L 198.49989,491.5"
                     id="path3925"
                     sodipodi:nodetypes="cccc" />
                </g>
              </g>
            </g>
          </svg>
          
        • align-top.svg
          <?xml version="1.0" encoding="UTF-8" standalone="no"?>
          <!-- Created with Inkscape (http://www.inkscape.org/) -->
          <svg
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:cc="http://web.resource.org/cc/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:svg="http://www.w3.org/2000/svg"
             xmlns="http://www.w3.org/2000/svg"
             xmlns:xlink="http://www.w3.org/1999/xlink"
             xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
             xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
             width="22"
             height="22"
             id="svg10699"
             sodipodi:version="0.32"
             inkscape:version="0.44+devel"
             version="1.0"
             sodipodi:docbase="/home/andreas/project/inkscape/22x22/actions"
             sodipodi:docname="align-vertical-bottom.svg"
             inkscape:output_extension="org.inkscape.output.svg.inkscape"
             inkscape:export-filename="/home/andreas/project/inkscape/22x22/actions/align-vertical-bottom.png"
             inkscape:export-xdpi="90"
             inkscape:export-ydpi="90"
             sodipodi:modified="true">
            <defs
               id="defs10701">
              <linearGradient
                 id="linearGradient2968"
                 inkscape:collect="always">
                <stop
                   id="stop2970"
                   offset="0"
                   style="stop-color:#ce5c00;stop-opacity:1" />
                <stop
                   id="stop2972"
                   offset="1"
                   style="stop-color:#ce5c00;stop-opacity:0" />
              </linearGradient>
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2968"
                 id="linearGradient6954"
                 gradientUnits="userSpaceOnUse"
                 gradientTransform="matrix(-1,0,0,-1,395.9999,981)"
                 x1="187.60938"
                 y1="489.35938"
                 x2="186.93732"
                 y2="489.35938" />
              <linearGradient
                 id="linearGradient2974"
                 inkscape:collect="always">
                <stop
                   id="stop2976"
                   offset="0"
                   style="stop-color:#fcaf3e;stop-opacity:1" />
                <stop
                   id="stop2978"
                   offset="1"
                   style="stop-color:#fcaf3e;stop-opacity:0" />
              </linearGradient>
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2974"
                 id="linearGradient6952"
                 gradientUnits="userSpaceOnUse"
                 gradientTransform="matrix(-1,0,0,-1,395.9999,981)"
                 x1="187.81554"
                 y1="489.54688"
                 x2="187.1716"
                 y2="489.54688" />
              <linearGradient
                 id="linearGradient2986"
                 inkscape:collect="always">
                <stop
                   id="stop2988"
                   offset="0"
                   style="stop-color:#ce5c00;stop-opacity:1" />
                <stop
                   id="stop2990"
                   offset="1"
                   style="stop-color:#ce5c00;stop-opacity:0" />
              </linearGradient>
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2986"
                 id="linearGradient6950"
                 gradientUnits="userSpaceOnUse"
                 x1="187.60938"
                 y1="489.35938"
                 x2="186.93732"
                 y2="489.35938" />
              <linearGradient
                 id="linearGradient2980"
                 inkscape:collect="always">
                <stop
                   id="stop2982"
                   offset="0"
                   style="stop-color:#fcaf3e;stop-opacity:1" />
                <stop
                   id="stop2984"
                   offset="1"
                   style="stop-color:#fcaf3e;stop-opacity:0" />
              </linearGradient>
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2980"
                 id="linearGradient6948"
                 gradientUnits="userSpaceOnUse"
                 x1="187.81554"
                 y1="489.54688"
                 x2="187.1716"
                 y2="489.54688" />
            </defs>
            <sodipodi:namedview
               id="base"
               pagecolor="#ffffff"
               bordercolor="#666666"
               borderopacity="1.0"
               inkscape:pageopacity="0.0"
               inkscape:pageshadow="2"
               inkscape:zoom="11.197802"
               inkscape:cx="16"
               inkscape:cy="16"
               inkscape:current-layer="layer1"
               showgrid="false"
               inkscape:grid-bbox="true"
               inkscape:document-units="px"
               width="22px"
               height="22px"
               inkscape:window-width="797"
               inkscape:window-height="628"
               inkscape:window-x="0"
               inkscape:window-y="47" />
            <metadata
               id="metadata10704">
              <rdf:RDF>
                <cc:Work
                   rdf:about="">
                  <dc:format>image/svg+xml</dc:format>
                  <dc:type
                     rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
                </cc:Work>
              </rdf:RDF>
            </metadata>
            <g
               id="layer1"
               inkscape:label="Layer 1"
               inkscape:groupmode="layer">
              <g
                 style="display:inline"
                 id="g6862"
                 transform="translate(-59.99998,90)"
                 inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                 inkscape:export-xdpi="90"
                 inkscape:export-ydpi="90">
                <g
                   id="g3084"
                   transform="translate(-97,-563)"
                   style="fill:#d3d7cf;stroke:#888a85"
                   inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                   inkscape:export-xdpi="90"
                   inkscape:export-ydpi="90">
                  <rect
                     transform="matrix(0,1,1,0,0,0)"
                     y="169.5"
                     x="475.50012"
                     height="7"
                     width="12"
                     id="rect3086"
                     style="fill:#d3d7cf;fill-opacity:1;stroke:#888a85;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
                  <rect
                     ry="0"
                     rx="0"
                     transform="matrix(0,1,1,0,0,0)"
                     y="170.5"
                     x="476.50012"
                     height="5.0000305"
                     width="10"
                     id="rect3088"
                     style="opacity:1;fill:#d3d7cf;fill-opacity:1;stroke:#ffffff;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
                </g>
                <g
                   id="g3090"
                   transform="translate(-67,-559)"
                   inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                   inkscape:export-xdpi="90"
                   inkscape:export-ydpi="90">
                  <rect
                     transform="matrix(0,-1,1,0,0,0)"
                     y="129.49626"
                     x="-489.49979"
                     height="7.0035982"
                     width="17.999748"
                     id="rect3092"
                     style="color:#000000;fill:#d3d7cf;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1.00024867;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" />
                  <rect
                     transform="matrix(0,-1,1,0,0,0)"
                     y="130.50006"
                     x="-488.50009"
                     height="4.9998937"
                     width="15.999757"
                     id="rect3094"
                     style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00024891;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
                     rx="0"
                     ry="0" />
                </g>
                <g
                   id="g3262"
                   transform="translate(-127,-578)"
                   inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
                   inkscape:export-xdpi="90"
                   inkscape:export-ydpi="90">
                  <rect
                     y="489.5"
                     x="196.49989"
                     height="1.9999999"
                     width="3.0000916"
                     id="rect3264"
                     style="fill:#fcaf3e;fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
                  <path
                     style="fill:url(#linearGradient6948);fill-opacity:1;stroke:url(#linearGradient6950);stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
                     d="M 197.49998,491.5 L 186.49989,491.5 L 186.49989,489.5 L 197.49998,489.5"
                     id="path3266"
                     sodipodi:nodetypes="cccc" />
                  <path
                     style="fill:url(#linearGradient6952);fill-opacity:1;stroke:url(#linearGradient6954);stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
                     d="M 198.49989,489.5 L 209.49998,489.5 L 209.49998,491.5 L 198.49989,491.5"
                     id="path3268"
                     sodipodi:nodetypes="cccc" />
                </g>
              </g>
            </g>
          </svg>
          
        • conn.svg
          <svg xmlns="http://www.w3.org/2000/svg">
          	<g id="mode_connect">
          		<svg viewBox="0 0 24 24" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg">
          		 <defs>
          
          		  <line stroke-width="5" fill="none" stroke="#000000" id="svg_2" y2="121" x2="136" y1="7" x1="136">
          		   <stop stop-opacity="1" stop-color="#4687a0"/>
          		   <stop stop-opacity="1" stop-color="#ffffff"/>
          		  </line>
          		  <linearGradient y2="0.18359" x2="0.29688" y1="0.92188" x1="0.62109" id="svg_3">
          		   <stop stop-opacity="1" stop-color="#417dad" offset="0"/>
          		   <stop stop-opacity="1" stop-color="#ffffff" offset="1"/>
          		  </linearGradient>
          		 </defs>
          		 <g>
          		  <title>Layer 1</title>
          		  <line x1="5.64676" y1="5.60056" x2="18.50037" y2="18.62557" id="svg_5" stroke="#000000" fill="none"/>
          		  <rect opacity="0.75" stroke-width="0.5" x="0.5" y="0.5" width="9.625" height="5.125" id="svg_1" fill="url(#svg_3)" stroke="#000000"/>
          		  <rect opacity="0.75" id="svg_4" stroke-width="0.5" x="13.75" y="18.25" width="9.625" height="5.125" fill="url(#svg_3)" stroke="#000000"/>
          		  <g id="svg_9">
          		   <path d="m14.57119,9.12143l-0.98244,5.18852l2.70861,-4.36084" id="svg_6" fill="#a0a0a0" stroke="#000000"/>
          		   <path d="m14.27564,6.76258c-0.25872,0.72562 -0.40735,1.65632 -0.33812,2.15432l2.90784,1.2509c0.30961,-0.21212 1.08198,-1.1814 1.08198,-1.73736" id="svg_7" fill="url(#svg_3)" stroke="#000000"/>
          		   <path d="m16.28893,0.37519l-2.46413,5.9304l4.76481,2.39435l2.13178,-4.96735" id="svg_8" fill="url(#svg_3)" stroke="#000000"/>
          		  </g>
          		 </g>
          		</svg>
          	</g>
          	<g id="svg_eof"/>
          </svg>
        • logo.svg
          <svg viewBox="0 0 478 472" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg">
           <defs>
            <linearGradient id="svg_5" x1="0" y1="0" x2="1" y2="1">
             <stop offset="0" stop-color="#ffffe0" stop-opacity="1"/>
             <stop offset="1" stop-color="#edc39c" stop-opacity="1"/>
            </linearGradient>
            <linearGradient id="svg_10" x1="0.57031" y1="0.78125" x2="0.28906" y2="0.41406">
             <stop offset="0" stop-color="#ff7f00" stop-opacity="1"/>
             <stop offset="1" stop-color="#ffff00"/>
            </linearGradient>
            <linearGradient id="svg_18" x1="0.37891" y1="0.35938" x2="1" y2="1">
             <stop offset="0" stop-color="#e0e0e0" stop-opacity="1"/>
             <stop offset="1" stop-color="#666666" stop-opacity="1"/>
            </linearGradient>
           </defs>
           <g>
            <title>Layer 1</title>
            <path d="m68.82031,270.04688l-22,-33l17,-35l34,2l25,15l7,-35l28,-16l25,12l100,102l21,23l-15,35l-36,9l20,49l-31,24l-49,-17l-1,31l-33,21l-31,-19l-13,-35l-30,21l-30,-9l-5,-35l16,-31l-32,-6l-15,-19l3,-36l47,-18z" id="svg_19" fill="#ffffff"/>
            <path fill="#1a171a" fill-rule="nonzero" id="path2902" d="m158.96452,155.03685c-25.02071,0 -45.37077,20.35121 -45.37077,45.3775c0,0.72217 0.01794,1.4399 0.0471,2.15645c-0.49339,-0.53604 -0.99355,-1.06085 -1.50603,-1.58452c-8.56077,-8.55519 -19.95982,-13.28413 -32.07432,-13.28413c-12.12122,0 -23.52027,4.72334 -32.08778,13.29646c-17.69347,17.69464 -17.69347,46.4619 0,64.17445c0.51809,0.51697 1.0485,1.0126 1.59015,1.50601c-0.72891,-0.03586 -1.45782,-0.04822 -2.19234,-0.04822c-25.02071,0 -45.37189,20.35117 -45.37189,45.37747c0,25.01398 20.35119,45.36517 45.37189,45.36517c0.72891,0 1.45221,-0.01236 2.1744,-0.04828c-0.5293,0.48221 -1.05412,0.98801 -1.56547,1.49368c-17.70021,17.68906 -17.70021,46.48654 -0.00628,64.18677c8.57872,8.56747 19.96655,13.2785 32.08778,13.2785c12.1145,0 23.5012,-4.71103 32.07433,-13.2785c0.51247,-0.51694 1.01823,-1.04849 1.50603,-1.57895c-0.02915,0.71213 -0.04709,1.44669 -0.04709,2.15759c0,25.01511 20.35007,45.37747 45.37077,45.37747c25.01398,0 45.37079,-20.3624 45.37079,-45.37747c0,-0.7222 -0.01689,-1.44553 -0.05266,-2.18112c0.48105,0.52933 0.97562,1.04849 1.48697,1.56662c8.57982,8.57977 19.97775,13.2908 32.1057,13.2908c12.11003,0 23.51358,-4.71103 32.0687,-13.2785c17.68906,-17.70013 17.68906,-46.48538 0,-64.17441c-0.50577,-0.4946 -1.01141,-1.00034 -1.54306,-1.48248c0.69983,0.03592 1.42316,0.04828 2.16992,0.04828c25.01514,0 45.35284,-20.35123 45.35284,-45.36517c0,-25.02631 -20.33774,-45.37747 -45.35284,-45.37747c-0.74683,0 -1.47009,0.01236 -2.19345,0.04822c0.53152,-0.49341 1.06082,-0.98904 1.59128,-1.50601c8.55521,-8.55521 13.2785,-19.94186 13.2785,-32.07545c0,-12.12793 -4.72336,-23.52028 -13.30319,-32.0934c-8.55515,-8.56076 -19.95866,-13.2841 -32.0687,-13.2841c-12.12122,0 -23.52025,4.72334 -32.08777,13.2841c-0.51137,0.5181 -1.01822,1.04851 -1.5049,1.57895c0.03586,-0.72331 0.05266,-1.43991 0.05266,-2.16881c0,-25.02629 -20.35681,-45.3775 -45.37079,-45.3775m0,20.71901c13.61607,0 24.65851,11.03122 24.65851,24.65849c0,6.62749 -2.651,12.62137 -6.9101,17.04979l0,51.67419l36.53975,-36.53523c0.12001,-6.14418 2.48277,-12.24686 7.18146,-16.94667c4.81305,-4.81305 11.12094,-7.22409 17.44116,-7.22409c6.30228,0 12.61577,2.41104 17.43552,7.22409c9.62166,9.63287 9.62166,25.24948 0,34.87669c-4.69977,4.68634 -10.80803,7.04915 -16.95334,7.18147l-36.5341,36.53305l51.66742,0c4.42841,-4.25351 10.42905,-6.90451 17.08008,-6.90451c13.59137,0 24.62933,11.03799 24.62933,24.66525c0,13.61606 -11.03796,24.66519 -24.62933,24.66519c-6.65106,0 -12.65167,-2.66333 -17.08008,-6.91681l-51.64836,0l36.50273,36.50946c6.16995,0.14465 12.26587,2.50522 16.96568,7.20618c9.6216,9.61487 9.6216,25.23151 0,34.85757c-4.80856,4.81979 -11.13327,7.22974 -17.43556,7.22974c-6.32019,0 -12.63371,-2.40991 -17.44786,-7.22974c-4.68074,-4.68744 -7.04802,-10.79572 -7.17473,-16.94098l-36.53975,-36.53415l0,51.66742c4.25908,4.44635 6.9101,10.43466 6.9101,17.0621c0,13.62729 -11.04243,24.66415 -24.65851,24.66415c-13.62166,0 -24.65848,-11.0369 -24.65848,-24.66415c0,-6.62744 2.64539,-12.61575 6.90335,-17.0621l0,-51.66742l-36.53864,36.54648c-0.12672,6.14413 -2.48838,12.26477 -7.18147,16.94098c-4.81416,4.81873 -11.12206,7.22974 -17.42882,7.22974c-6.31461,0 -12.6225,-2.41101 -17.43555,-7.22974c-9.63284,-9.62833 -9.63284,-25.24277 0,-34.8699c4.68073,-4.67627 10.79012,-7.05026 16.94101,-7.18262l36.533,-36.53302l-51.66632,0c-4.44075,4.25348 -10.42902,6.91681 -17.06211,6.91681c-13.61606,0 -24.65288,-11.04913 -24.65288,-24.66519c0,-13.62726 11.03682,-24.66525 24.65288,-24.66525c6.63309,0 12.62136,2.651 17.06211,6.90451l51.68537,0l-36.55208,-36.54538c-6.14527,-0.12 -12.25354,-2.49403 -16.94775,-7.19377c-9.62611,-9.61493 -9.62611,-25.23715 0,-34.86441c4.81419,-4.81305 11.12769,-7.22406 17.44228,-7.22406c6.30676,0 12.61465,2.41101 17.42883,7.22406c4.69978,4.69307 7.06034,10.80246 7.18144,16.94777l36.5386,36.53299l0,-51.66074c-4.25795,-4.42841 -6.90334,-10.42229 -6.90334,-17.04979c0,-13.62726 11.03682,-24.65848 24.65848,-24.65848"/>
            <path d="m188.82031,210.04688l16,-47l155,-148l107,100l-158,156.99999l-44,12l-76,-74z" id="svg_6" fill="url(#svg_10)" stroke="#ffffff" stroke-width="0"/>
            <path d="m335.57031,40.29688c-11.5,39.75 55.5,115.25 109.25,98.75l21,-20.99999l-103,-101l-27.25,23.25z" id="svg_11" fill="url(#svg_18)" stroke="#ffffff" stroke-width="0"/>
            <rect x="272.80404" y="20.76382" width="42.35197" height="232.66835" id="svg_13" fill="#ffffff" stroke="#ffffff" stroke-width="0" transform="rotate(45.9094, 293.98, 137.1)" opacity="0.4"/>
            <rect x="282.80404" y="22.76382" width="14" height="232.66835" fill="#ffffff" stroke="#ffffff" stroke-width="0" transform="rotate(45.9094, 289.805, 139.1)" opacity="0.4" id="svg_14"/>
            <ellipse cx="415.13312" cy="64.38066" id="svg_12" fill="#ea7598" stroke="#ffffff" stroke-width="0" rx="67.79251" ry="34.82026" transform="rotate(39.4735, 415.133, 64.379)"/>
            <path d="m212.07031,166.04688c-8.5,47 36.25,103.75 99.25,96.75l-152.5,53.25l53.25,-150z" id="svg_4" fill="url(#svg_5)" stroke="#ffffff" stroke-width="0"/>
            <path d="m181.32031,242.54688c0.5,20.5 26.75,45 46.75,48.5l-66.25,20l19.5,-68.5z" id="svg_3" fill="#27382f" stroke="#ffffff" stroke-width="0"/>
           </g>
           <g>
            <title>Layer 2</title>
            <path d="m152.82031,317.04688l51,-152l157,-153c40,-12.00001 118,48 105,105l-157,152.99999l-156,47z" id="svg_1" fill="none" stroke="#800000" stroke-width="17"/>
           </g>
          </svg>
          
        • polygon.svg
          <?xml version="1.0" encoding="UTF-8" standalone="no"?>
          <!-- Created with Inkscape (http://www.inkscape.org/) -->
          <svg
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:cc="http://web.resource.org/cc/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:svg="http://www.w3.org/2000/svg"
             xmlns="http://www.w3.org/2000/svg"
             xmlns:xlink="http://www.w3.org/1999/xlink"
             xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
             xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
             sodipodi:docname="draw-polygon.svg"
             sodipodi:docbase="/home/andreas/projekt/tango/22"
             inkscape:version="0.42"
             id="svg8728"
             height="22.000000px"
             width="22.000000px"
             inkscape:export-filename="/home/andreas/projekt/tango/22/draw-polygon.png"
             inkscape:export-xdpi="90.000000"
             inkscape:export-ydpi="90.000000">
            <defs
               id="defs3">
              <linearGradient
                 inkscape:collect="always"
                 id="linearGradient3941">
                <stop
                   style="stop-color:#000000;stop-opacity:1;"
                   offset="0"
                   id="stop3943" />
                <stop
                   style="stop-color:#000000;stop-opacity:0;"
                   offset="1"
                   id="stop3945" />
              </linearGradient>
              <linearGradient
                 id="linearGradient6581">
                <stop
                   style="stop-color:#eeeeec;stop-opacity:1;"
                   offset="0"
                   id="stop6583" />
                <stop
                   style="stop-color:#e0e0de;stop-opacity:1.0000000;"
                   offset="1.0000000"
                   id="stop6585" />
              </linearGradient>
              <linearGradient
                 id="linearGradient14920">
                <stop
                   id="stop14922"
                   offset="0"
                   style="stop-color:#5a7aa4;stop-opacity:1;" />
                <stop
                   id="stop14924"
                   offset="1.0000000"
                   style="stop-color:#1f2b3a;stop-opacity:1.0000000;" />
              </linearGradient>
              <linearGradient
                 id="linearGradient13390">
                <stop
                   id="stop13392"
                   offset="0.0000000"
                   style="stop-color:#81a2cd;stop-opacity:1.0000000;" />
                <stop
                   id="stop13394"
                   offset="1.0000000"
                   style="stop-color:#2a415f;stop-opacity:1.0000000;" />
              </linearGradient>
              <linearGradient
                 id="linearGradient10325">
                <stop
                   id="stop10327"
                   offset="0"
                   style="stop-color:#5a7aa4;stop-opacity:1;" />
                <stop
                   id="stop10329"
                   offset="1.0000000"
                   style="stop-color:#455e7e;stop-opacity:1.0000000;" />
              </linearGradient>
              <linearGradient
                 gradientUnits="userSpaceOnUse"
                 y2="39.486301"
                 x2="37.746555"
                 y1="23.992306"
                 x1="23.598076"
                 gradientTransform="matrix(0.363308,0,0,0.363571,1.976073,1.180651)"
                 id="linearGradient13217"
                 xlink:href="#linearGradient6581"
                 inkscape:collect="always" />
              <radialGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient3941"
                 id="radialGradient3947"
                 cx="2.25"
                 cy="16"
                 fx="2.25"
                 fy="16"
                 r="16.875"
                 gradientTransform="matrix(1.000000,0.000000,0.000000,0.333333,-5.774893e-15,10.66667)"
                 gradientUnits="userSpaceOnUse" />
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient6581"
                 id="linearGradient2398"
                 x1="10.769515"
                 y1="8.7196503"
                 x2="15.923767"
                 y2="15.039417"
                 gradientUnits="userSpaceOnUse" />
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient6581"
                 id="linearGradient2403"
                 gradientUnits="userSpaceOnUse"
                 x1="10.769515"
                 y1="8.7196503"
                 x2="15.923767"
                 y2="15.039417"
                 gradientTransform="matrix(0.874941,0.000000,0.000000,0.868551,1.339139,1.349650)" />
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient6581"
                 id="linearGradient2405"
                 gradientUnits="userSpaceOnUse"
                 x1="10.769515"
                 y1="8.7196503"
                 x2="15.923767"
                 y2="15.039417"
                 gradientTransform="matrix(1.001575,0.000000,0.000000,1.000000,-3.040037e-3,0.000000)" />
            </defs>
            <sodipodi:namedview
               inkscape:window-y="25"
               inkscape:window-x="0"
               inkscape:window-height="949"
               inkscape:window-width="1280"
               inkscape:document-units="px"
               inkscape:grid-bbox="true"
               showgrid="false"
               inkscape:current-layer="layer1"
               inkscape:cy="10.249014"
               inkscape:cx="16.435231"
               inkscape:zoom="15.999999"
               inkscape:pageshadow="2"
               inkscape:pageopacity="0.0"
               borderopacity="0.08235294"
               bordercolor="#666666"
               pagecolor="#ffffff"
               id="base"
               showguides="true"
               inkscape:guide-bbox="true"
               inkscape:showpageshadow="false"
               stroke="#888a85" />
            <metadata
               id="metadata4">
              <rdf:RDF>
                <cc:Work
                   rdf:about="">
                  <dc:format>image/svg+xml</dc:format>
                  <dc:type
                     rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
                  <dc:title>Draw Rectangle</dc:title>
                  <dc:date>2005-10-10</dc:date>
                  <dc:creator>
                    <cc:Agent>
                      <dc:title>Andreas Nilsson</dc:title>
                    </cc:Agent>
                  </dc:creator>
                  <dc:subject>
                    <rdf:Bag>
                      <rdf:li>draw</rdf:li>
                      <rdf:li>rectangle</rdf:li>
                      <rdf:li>square</rdf:li>
                    </rdf:Bag>
                  </dc:subject>
                  <cc:license
                     rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
                </cc:Work>
                <cc:License
                   rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
                  <cc:permits
                     rdf:resource="http://web.resource.org/cc/Reproduction" />
                  <cc:permits
                     rdf:resource="http://web.resource.org/cc/Distribution" />
                  <cc:requires
                     rdf:resource="http://web.resource.org/cc/Notice" />
                  <cc:requires
                     rdf:resource="http://web.resource.org/cc/Attribution" />
                  <cc:permits
                     rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
                  <cc:requires
                     rdf:resource="http://web.resource.org/cc/ShareAlike" />
                </cc:License>
              </rdf:RDF>
            </metadata>
            <g
               inkscape:groupmode="layer"
               inkscape:label="Layer 1"
               id="layer1">
              <path
                 sodipodi:type="arc"
                 style="opacity:0.60000000;color:#000000;fill:url(#radialGradient3947);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:block;overflow:visible"
                 id="path2193"
                 sodipodi:cx="2.2500000"
                 sodipodi:cy="16.000000"
                 sodipodi:rx="16.875000"
                 sodipodi:ry="5.6250000"
                 d="M 19.125000 16.000000 A 16.875000 5.6250000 0 1 1  -14.625000,16.000000 A 16.875000 5.6250000 0 1 1  19.125000 16.000000 z"
                 transform="matrix(0.503704,0.000000,0.000000,0.349014,9.366667,12.45257)" />
              <path
                 style="fill:url(#linearGradient2405);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#888a85;stroke-width:1.0000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
                 d="M 10.376363,3.6237647 L 18.439333,9.5822222 L 15.644242,18.503298 L 5.3933717,18.503298 L 2.5694122,9.5814367 L 10.376363,3.6237647 z "
                 id="path1661"
                 sodipodi:nodetypes="cccccc" />
              <path
                 style="fill:url(#linearGradient2403);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#fdfdfb;stroke-width:0.99999976px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
                 d="M 10.383801,4.6223366 L 17.428917,9.8682235 L 14.894231,17.502140 L 6.1335005,17.494329 L 3.6135882,9.9131875 L 10.383801,4.6223366 z "
                 id="path2401"
                 sodipodi:nodetypes="cccccc" />
            </g>
          </svg>
          
        • svg_edit_icons.svg
          <svg xmlns="http://www.w3.org/2000/svg">
          <!-- All images created with SVG-edit - http://svg-edit.googlecode.com/ -->
          
          <g id="logo">
          <svg viewBox="0 0 478 472" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg">
           <defs>
            <linearGradient id="svg_5" x1="0" y1="0" x2="1" y2="1">
             <stop offset="0" stop-color="#ffffe0" stop-opacity="1"/>
             <stop offset="1" stop-color="#edc39c" stop-opacity="1"/>
            </linearGradient>
            <linearGradient id="svg_10" x1="0.57031" y1="0.78125" x2="0.28906" y2="0.41406">
             <stop offset="0" stop-color="#ff7f00" stop-opacity="1"/>
             <stop offset="1" stop-color="#ffff00"/>
            </linearGradient>
            <linearGradient id="svg_18" x1="0.37891" y1="0.35938" x2="1" y2="1">
             <stop offset="0" stop-color="#e0e0e0" stop-opacity="1"/>
             <stop offset="1" stop-color="#666666" stop-opacity="1"/>
            </linearGradient>
           </defs>
           <g>
            <path d="m68.82031,270.04688l-22,-33l17,-35l34,2l25,15l7,-35l28,-16l25,12l100,102l21,23l-15,35l-36,9l20,49l-31,24l-49,-17l-1,31l-33,21l-31,-19l-13,-35l-30,21l-30,-9l-5,-35l16,-31l-32,-6l-15,-19l3,-36l47,-18z" id="svg_19" fill="#ffffff"/>
            <path fill="#1a171a" fill-rule="nonzero" id="path2902" d="m158.96452,155.03685c-25.02071,0 -45.37077,20.35121 -45.37077,45.3775c0,0.72217 0.01794,1.4399 0.0471,2.15645c-0.49339,-0.53604 -0.99355,-1.06085 -1.50603,-1.58452c-8.56077,-8.55519 -19.95982,-13.28413 -32.07432,-13.28413c-12.12122,0 -23.52027,4.72334 -32.08778,13.29646c-17.69347,17.69464 -17.69347,46.4619 0,64.17445c0.51809,0.51697 1.0485,1.0126 1.59015,1.50601c-0.72891,-0.03586 -1.45782,-0.04822 -2.19234,-0.04822c-25.02071,0 -45.37189,20.35117 -45.37189,45.37747c0,25.01398 20.35119,45.36517 45.37189,45.36517c0.72891,0 1.45221,-0.01236 2.1744,-0.04828c-0.5293,0.48221 -1.05412,0.98801 -1.56547,1.49368c-17.70021,17.68906 -17.70021,46.48654 -0.00628,64.18677c8.57872,8.56747 19.96655,13.2785 32.08778,13.2785c12.1145,0 23.5012,-4.71103 32.07433,-13.2785c0.51247,-0.51694 1.01823,-1.04849 1.50603,-1.57895c-0.02915,0.71213 -0.04709,1.44669 -0.04709,2.15759c0,25.01511 20.35007,45.37747 45.37077,45.37747c25.01398,0 45.37079,-20.3624 45.37079,-45.37747c0,-0.7222 -0.01689,-1.44553 -0.05266,-2.18112c0.48105,0.52933 0.97562,1.04849 1.48697,1.56662c8.57982,8.57977 19.97775,13.2908 32.1057,13.2908c12.11003,0 23.51358,-4.71103 32.0687,-13.2785c17.68906,-17.70013 17.68906,-46.48538 0,-64.17441c-0.50577,-0.4946 -1.01141,-1.00034 -1.54306,-1.48248c0.69983,0.03592 1.42316,0.04828 2.16992,0.04828c25.01514,0 45.35284,-20.35123 45.35284,-45.36517c0,-25.02631 -20.33774,-45.37747 -45.35284,-45.37747c-0.74683,0 -1.47009,0.01236 -2.19345,0.04822c0.53152,-0.49341 1.06082,-0.98904 1.59128,-1.50601c8.55521,-8.55521 13.2785,-19.94186 13.2785,-32.07545c0,-12.12793 -4.72336,-23.52028 -13.30319,-32.0934c-8.55515,-8.56076 -19.95866,-13.2841 -32.0687,-13.2841c-12.12122,0 -23.52025,4.72334 -32.08777,13.2841c-0.51137,0.5181 -1.01822,1.04851 -1.5049,1.57895c0.03586,-0.72331 0.05266,-1.43991 0.05266,-2.16881c0,-25.02629 -20.35681,-45.3775 -45.37079,-45.3775m0,20.71901c13.61607,0 24.65851,11.03122 24.65851,24.65849c0,6.62749 -2.651,12.62137 -6.9101,17.04979l0,51.67419l36.53975,-36.53523c0.12001,-6.14418 2.48277,-12.24686 7.18146,-16.94667c4.81305,-4.81305 11.12094,-7.22409 17.44116,-7.22409c6.30228,0 12.61577,2.41104 17.43552,7.22409c9.62166,9.63287 9.62166,25.24948 0,34.87669c-4.69977,4.68634 -10.80803,7.04915 -16.95334,7.18147l-36.5341,36.53305l51.66742,0c4.42841,-4.25351 10.42905,-6.90451 17.08008,-6.90451c13.59137,0 24.62933,11.03799 24.62933,24.66525c0,13.61606 -11.03796,24.66519 -24.62933,24.66519c-6.65106,0 -12.65167,-2.66333 -17.08008,-6.91681l-51.64836,0l36.50273,36.50946c6.16995,0.14465 12.26587,2.50522 16.96568,7.20618c9.6216,9.61487 9.6216,25.23151 0,34.85757c-4.80856,4.81979 -11.13327,7.22974 -17.43556,7.22974c-6.32019,0 -12.63371,-2.40991 -17.44786,-7.22974c-4.68074,-4.68744 -7.04802,-10.79572 -7.17473,-16.94098l-36.53975,-36.53415l0,51.66742c4.25908,4.44635 6.9101,10.43466 6.9101,17.0621c0,13.62729 -11.04243,24.66415 -24.65851,24.66415c-13.62166,0 -24.65848,-11.0369 -24.65848,-24.66415c0,-6.62744 2.64539,-12.61575 6.90335,-17.0621l0,-51.66742l-36.53864,36.54648c-0.12672,6.14413 -2.48838,12.26477 -7.18147,16.94098c-4.81416,4.81873 -11.12206,7.22974 -17.42882,7.22974c-6.31461,0 -12.6225,-2.41101 -17.43555,-7.22974c-9.63284,-9.62833 -9.63284,-25.24277 0,-34.8699c4.68073,-4.67627 10.79012,-7.05026 16.94101,-7.18262l36.533,-36.53302l-51.66632,0c-4.44075,4.25348 -10.42902,6.91681 -17.06211,6.91681c-13.61606,0 -24.65288,-11.04913 -24.65288,-24.66519c0,-13.62726 11.03682,-24.66525 24.65288,-24.66525c6.63309,0 12.62136,2.651 17.06211,6.90451l51.68537,0l-36.55208,-36.54538c-6.14527,-0.12 -12.25354,-2.49403 -16.94775,-7.19377c-9.62611,-9.61493 -9.62611,-25.23715 0,-34.86441c4.81419,-4.81305 11.12769,-7.22406 17.44228,-7.22406c6.30676,0 12.61465,2.41101 17.42883,7.22406c4.69978,4.69307 7.06034,10.80246 7.18144,16.94777l36.5386,36.53299l0,-51.66074c-4.25795,-4.42841 -6.90334,-10.42229 -6.90334,-17.04979c0,-13.62726 11.03682,-24.65848 24.65848,-24.65848"/>
            <path d="m188.82031,210.04688l16,-47l155,-148l107,100l-158,156.99999l-44,12l-76,-74z" id="svg_6" fill="url(#svg_10)" stroke="none"/>
            <path d="m335.57031,40.29688c-11.5,39.75 55.5,115.25 109.25,98.75l21,-20.99999l-103,-101l-27.25,23.25z" id="svg_11" fill="url(#svg_18)" stroke="none"/>
            <rect x="272.80404" y="20.76382" width="42.35197" height="232.66835" id="svg_13" fill="#ffffff" stroke="none" transform="rotate(45.9094, 293.98, 137.1)" opacity="0.4"/>
            <rect x="282.80404" y="22.76382" width="14" height="232.66835" fill="#ffffff" stroke="none" transform="rotate(45.9094, 289.805, 139.1)" opacity="0.4" id="svg_14"/>
            <ellipse cx="415.13312" cy="64.38066" id="svg_12" fill="#ea7598" stroke="none" rx="67.79251" ry="34.82026" transform="rotate(39.4735, 415.133, 64.379)"/>
            <path d="m212.07031,166.04688c-8.5,47 36.25,103.75 99.25,96.75l-152.5,53.25l53.25,-150z" id="svg_4" fill="url(#svg_5)" stroke="none"/>
            <path d="m181.32031,242.54688c0.5,20.5 26.75,45 46.75,48.5l-66.25,20l19.5,-68.5z" id="svg_3" fill="#27382f" stroke="none"/>
           </g>
           <g>
            <path d="m152.82031,317.04688l51,-152l157,-153c40,-12.00001 118,48 105,105l-157,152.99999l-156,47z" id="svg_1" fill="none" stroke="#800000" stroke-width="17"/>
           </g>
          </svg>
          </g>
          
          
          <g id="select">
          	<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
          	  <path stroke="#ffffff" fill="#000000" id="svg_13" d="m7.38168,2.46948l0.07502,17.03258l3.30083,-2.62617l2.62566,5.62751l4.20105,-2.62617l-3.30082,-4.80214l4.57614,-0.37517l-11.47787,-12.23044z"/>
          	</svg>
          </g>
          
          <g id="select_node">
          	<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
          	  <circle stroke="#0000ff" fill="#00ffff" id="svg_44" r="3.87891" cy="5.3" cx="8.7" stroke-width="1.5"/>
          	  <path d="m9.18161,5.6695l0.07763,15.16198l3.41588,-2.33775l2.71718,5.00947l4.34748,-2.33775l-3.41587,-4.27474l4.73565,-0.33397l-11.87794,-10.88723z" id="svg_13" fill="#000000" stroke="#ffffff"/>
          	</svg>
          </g>
          
          <g id="square">
          <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
           <defs>
            <linearGradient id="svg_2" x1="0.36328" y1="0.10156" x2="1" y2="1">
             <stop offset="0" stop-color="#ffffff" stop-opacity="1"/>
             <stop offset="1" stop-color="#3b7e9b" stop-opacity="1"/>
            </linearGradient>
           </defs>
            <rect x="1.5" y="1.5" width="20" height="20" id="svg_1" fill="url(#svg_2)" stroke="#000000"/>
           </svg>
          </g>
          
          <g id="rect">
          <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
           <defs>
            <linearGradient y2="1" x2="1" y1="0.10156" x1="0.36328" id="svg_2">
             <stop stop-opacity="1" stop-color="#ffffff" offset="0"/>
             <stop stop-opacity="1" stop-color="#3b7e9b" offset="1"/>
            </linearGradient>
           </defs>
            <rect transform="matrix(1, 0, 0, 1, 0, 0)" stroke="#000000" fill="url(#svg_2)" id="svg_1" height="12" width="20" y="5.5" x="1.5"/>
           </svg>
          </g>
          
          <g id="fh_rect">
          <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52 52">
           <defs>
            <linearGradient y2="1" x2="1" y1="0.10156" x1="0.36328" id="svg_2">
          
             <stop stop-opacity="1" stop-color="#ffffff" offset="0"/>
             <stop stop-opacity="1" stop-color="#3b7e9b" offset="1"/>
            </linearGradient>
            <linearGradient y2="0.3945" x2="0.6132" y1="0.1093" x1="0.3046" id="svg_9">
             <stop stop-opacity="1" stop-color="#f9d225" offset="0"/>
             <stop stop-opacity="1" stop-color="#bf5f00" offset="1"/>
            </linearGradient>
           </defs>
            <rect stroke="#000000" stroke-width="2" fill="url(#svg_2)" id="svg_1" height="50" width="50" y="0.75" x="1.25"/>
            <path stroke-width="2" stroke="#000000" fill="url(#svg_9)" id="svg_2" d="m31.5,0l-8.75,20.25l0.75,24l16.5,-16.5l6,-12.5"/>
            <path stroke-width="2" stroke="#000000" fill="#fce0a9" id="svg_10" d="m39.5,28.5c-2,-9.25 -10.25,-11.75 -17,-7.4375l0.4843,24.4414z"/>
            <path id="svg_11" stroke-width="2" stroke="#000000" fill="#000000" d="m26.9318,41.1745c-0.4491,-2.3511 -2.3021,-2.9866 -3.8181,-1.8905l0.1087,6.2126z"/>
          </svg>
          </g>
          
          
          <g id="circle">
          <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 54 54">
           <defs>
            <linearGradient y2="1.0" x2="1.0" y1="0.1875" x1="0.171875" id="svg_4">
             <stop stop-opacity="1" stop-color="#ffffff" offset="0.0"/>
             <stop stop-opacity="1" stop-color="#ff6666" offset="1.0"/>
            </linearGradient>
           </defs>
           <g>
            <circle stroke-opacity="1" fill-opacity="1" stroke-width="2" stroke="#000000" fill="url(#svg_4)" id="svg_1" r="23" cy="27" cx="27"/>
           </g>
          </svg>
          </g>
          
          <g id="ellipse">
          <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 54 54">
           <defs>
            <linearGradient y2="1.0" x2="1.0" y1="0.1875" x1="0.171875" id="svg_4">
             <stop stop-opacity="1" stop-color="#ffffff" offset="0.0"/>
             <stop stop-opacity="1" stop-color="#ff6666" offset="1.0"/>
            </linearGradient>
           </defs>
           <g>
            <ellipse stroke-opacity="1" fill-opacity="1" stroke-width="2" stroke="#000000" fill="url(#svg_4)" id="svg_1" rx="23" ry="15" cy="27" cx="27"/>
           </g>
          </svg>
          </g>
          
          <g id="fh_ellipse">
          <svg viewBox="0 0 52 52" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
           <defs>
            <linearGradient id="svg_9" x1="0.3046" y1="0.1093" x2="0.6132" y2="0.3945">
             <stop offset="0" stop-color="#f9d225" stop-opacity="1"/>
             <stop offset="1" stop-color="#bf5f00" stop-opacity="1"/>
            </linearGradient>
            <linearGradient id="svg_4" x1="0.17188" y1="0.1875" x2="1" y2="1">
             <stop offset="0" stop-color="#ffffff" stop-opacity="1"/>
             <stop offset="1" stop-color="#ff6666" stop-opacity="1"/>
            </linearGradient>
           </defs>
            <ellipse stroke-width="2" stroke="#000000" fill="url(#svg_4)" id="svg_1" rx="23" ry="12" cy="37" cx="27"/>
            <path d="m31.5,0l-8.75,20.25l0.75,24l16.5,-16.5l6,-12.5" id="svg_2" fill="url(#svg_9)" stroke="#000000" stroke-width="2"/>
            <path d="m39.5,28.5c-2,-9.25 -10.25,-11.75 -17,-7.4375l0.4843,24.4414z" id="svg_10" fill="#fce0a9" stroke="#000000" stroke-width="2"/>
            <path d="m26.9318,41.1745c-0.4491,-2.3511 -2.3021,-2.9866 -3.8181,-1.8905l0.1087,6.2126z" fill="#000000" stroke="#000000" stroke-width="2" id="svg_11"/>
           </svg>
          </g>
          
          <g id="pencil">
          <svg viewBox="0 0 48 52" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
            <defs>
             <linearGradient id="svg_9" x1="0.3046" y1="0.1093" x2="0.6132" y2="0.3945">
              <stop offset="0.0" stop-color="#f9d225" stop-opacity="1"/>
              <stop offset="1.0" stop-color="#bf5f00" stop-opacity="1"/>
             </linearGradient>
            </defs>
            <path d="M31.5,0 l-8.75,20.25 l0.75,24 l16.5,-16.5 l6,-12.5" id="svg_2" fill="url(#svg_9)" stroke="#000000" stroke-width="2" fill-opacity="1" stroke-opacity="1"/>
            <path d="M39.5,28.5 c-2,-9.25 -10.25,-11.75 -17,-7.4375 l0.4843,24.4414z" id="svg_10" fill="#fce0a9" stroke="#000000" stroke-width="2" fill-opacity="1" stroke-opacity="1"/>
            <path d="M26.9318,41.1745 c-0.4491,-2.3511 -2.3021,-2.9866 -3.8181,-1.8905 l0.1087,6.2126z" fill="#000000" stroke="#000000" stroke-width="2" fill-opacity="1" stroke-opacity="1" id="svg_11"/>
            <path d="M2.3132,4.6197 c12.4998,-1.6891 10.4729,7.0945 0,21.6215 c22.9729,-4.0539 12.1620,5.4053 12.1620,13.1756 c-0.3377,4.0539 8.7836,21.9594 26.0135,-1.3513" id="svg_12" fill="none" stroke="#000000" stroke-width="2" fill-opacity="1" stroke-opacity="1"/>
          </svg>
          </g>
          
          <g id="pen">
          	<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
          	 <defs>
          	  <linearGradient id="svg_16" x1="0.46484" y1="0.15625" x2="0.9375" y2="0.39453">
          	   <stop offset="0" stop-color="#f2feff" stop-opacity="1"/>
          	   <stop offset="1" stop-color="#14609b" stop-opacity="1"/>
          	  </linearGradient>
          	  <linearGradient id="svg_19" x1="0.18359" y1="0.26172" x2="0.77734" y2="0.56641">
          	   <stop offset="0" stop-color="#ffffff" stop-opacity="1"/>
          	   <stop offset="1" stop-color="#fce564" stop-opacity="1"/>
          	  </linearGradient>
          	 </defs>
          	  <line x1="0.99844" y1="1.49067" x2="12.97691" y2="21.14149" id="svg_5" stroke="#000000" fill="none"/>
          	  <path d="m14.05272,13.68732l-1.46451,7.52632l4.03769,-6.32571" id="svg_6" fill="#a0a0a0" stroke="#000000"/>
          	  <path d="m13.61215,10.26563c-0.38567,1.05257 -0.60723,2.40261 -0.50403,3.125l4.33468,1.81452c0.46153,-0.30769 1.6129,-1.71371 1.6129,-2.52016" id="svg_7" fill="url(#svg_19)" stroke="#000000"/>
          	  <path d="m16.61335,1.00028l-3.67325,8.60247l7.10285,3.47318l3.17783,-7.20549" id="svg_8" fill="url(#svg_16)" stroke="#000000"/>
          	</svg>
          </g>
          
          <g id="text">
          	<svg viewBox="0 0 158 128" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
          	  <text x="58" y="120" id="svg_1" fill="#000000" stroke="none" font-size="120pt" font-family="sans-serif" text-anchor="middle" fill-opacity="1" stroke-opacity="1" font-weight="bold">A</text>
          	  <line x1="136" y1="7" x2="136" y2="121" id="svg_2" stroke="#000000" fill="none" fill-opacity="1" stroke-opacity="1" stroke-width="5"/>
          	  <line x1="120" y1="4" x2="152" y2="4" id="svg_3" stroke="#000000" stroke-width="5" fill="none" fill-opacity="1" stroke-opacity="1"/>
          	 <line x1="120" y1="124" x2="152" y2="124" stroke="#000000" stroke-width="5" fill="none" fill-opacity="1" stroke-opacity="1" id="svg_4"/>
          	</svg>
          </g>
          
          
          <g id="path">
          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 124 124" xmlns:xlink="http://www.w3.org/1999/xlink">
           <defs>
            <linearGradient y2="1" x2="1" y1="0.28125" x1="0.33594" id="svg_4">
             <stop stop-opacity="1" stop-color="#ffffff" offset="0"/>
             <stop stop-opacity="1" stop-color="#33a533" offset="1"/>
            </linearGradient>
           </defs>
            <path stroke-dasharray="null" stroke-width="4" stroke="#000000" fill="url(#svg_4)" id="svg_1" d="m6,103l55,-87c85,33.64 -26,37.12 55,87l-110,0z"/>
           </svg>
          </g>
          
          <g id="add_subpath">
          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 124 124" xmlns:xlink="http://www.w3.org/1999/xlink">
           <defs>
            <linearGradient id="svg_4" x1="0.33594" y1="0.28125" x2="1" y2="1">
             <stop offset="0" stop-color="#ffffff" stop-opacity="1"/>
             <stop offset="1" stop-color="#33a533" stop-opacity="1"/>
            </linearGradient>
           </defs>
           <g>
            <path d="m6,103l55,-87c85,33.64 -26,37.12 55,87l-110,0z" id="svg_1" fill="url(#svg_4)" stroke="#000000" stroke-width="4" stroke-dasharray="null"/>
            <g id="svg_7">
             <circle stroke-dasharray="null" stroke-width="5" stroke="#000000" fill="#ffffff" id="svg_6" r="22.63281" cy="88.5" cx="45.5"/>
             <line stroke-dasharray="null" stroke-width="7" stroke="#000000" id="svg_2" y2="104.03768" x2="45.5" y1="72.96232" x1="45.5"/>
             <line stroke-dasharray="null" stroke-width="7" stroke="#000000" id="svg_3" y2="88.5" x2="61.03768" y1="88.5" x1="29.96232"/>
            </g>
           </g>
           </svg>
          </g>
          
          <g id="close_path">
          <svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
           <g>
            <path stroke="#000" stroke-width="15" fill="#ffc8c8" d="m121.5,40l-84,106l27,115l166,2l29,-111"/>
            <line x1="240" y1="136" x2="169.5" y2="74" stroke="#A00" stroke-width="25" fill="none"/>
            <path stroke="none" fill ="#A00" d="m158,65l31,74l-3,-50l51,-3z"/>
            <g stroke-width="15" stroke="#00f" fill="#0ff">
            <circle r="30" cy="41" cx="123"/>
            <circle r="30" cy="146" cx="40"/>
            <circle r="30" cy="260" cx="69"/>
            <circle r="30" cy="260" cx="228"/>
            <circle r="30" cy="148" cx="260"/>
            </g>
           </g>
          </svg>
          </g>
          
          <g id="open_path">
          <svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
           <g>
            <path stroke="#000" stroke-width="15" fill="#ffc8c8" d="m123.5,38l-84,106l27,115l166,2l29,-111"/>
            <line x1="276.5" y1="153" x2="108.5" y2="24" stroke="#000" stroke-width="10" fill="none"/>
            <g stroke-width="15" stroke="#00f" fill="#0ff">
             <circle r="30" cy="41" cx="123"/>
             <circle r="30" cy="146" cx="40"/>
             <circle r="30" cy="260" cx="69"/>
             <circle r="30" cy="260" cx="228"/>
             <circle r="30" cy="148" cx="260"/>
            </g>
            <g  stroke="#A00" stroke-width="15" fill="none">
             <line x1="168" y1="24" x2="210" y2="150"/>
             <line x1="210" y1="24" x2="168" y2="150"/>
            </g>
           </g>
          </svg>
          </g>
          
          
          <g id="image">
          <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
           <defs>
            <linearGradient y2="1" x2="1" y1="0" x1="1" id="svg_25">
             <stop stop-opacity="1" stop-color="#10284c" offset="0"/>
             <stop stop-opacity="1" stop-color="#5374ad" offset="1"/>
            </linearGradient>
            <linearGradient y2="0.75781" x2="0.99609" y1="0" x1="1" id="svg_23">
             <stop stop-opacity="1" stop-color="#162e84" offset="0"/>
             <stop stop-opacity="1" stop-color="#97c4ef" offset="1"/>
            </linearGradient>
           </defs>
            <rect x="1" y="3.83333" width="22" height="17" id="svg_18" fill="#202020" stroke="none"/>
            <rect stroke-width="1.2" stroke="#ffffff" fill="#232947" id="svg_15" height="14" width="19" y="5.33333" x="2.5"/>
            <rect fill="url(#svg_23)" id="svg_20" height="7.02244" width="15.96424" y="6.7266" x="4"/>
            <rect fill="url(#svg_25)" id="svg_24" height="4.02393" width="15.96303" y="13.77454" x="4"/>
            <circle fill="#ffffad" id="svg_26" r="1.83333" cy="9.82002" cx="7.13254"/>
            <path d="m14.5696,13.77458l0.70243,-4.85313l-3.12899,4.85313l2.42656,0z" id="svg_14" fill="#404040" stroke="none"/>
            <path d="m15.27203,8.98531c2.74584,0.06386 2.42657,4.21456 -0.63857,4.85313c0.70243,-1.27714 1.66028,-3.63985 0.63857,-4.85313z" id="svg_17" fill="#404040" stroke="none"/>
          </svg>
          </g>
          
          <g id="zoom">
          	<svg viewBox="0 0 150 150" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
          	 <defs>
          	  <linearGradient id="svg_30" x1="0" y1="0" x2="1" y2="0">
          	   <stop offset="0" stop-color="#d3d3d3" stop-opacity="1"/>
          	   <stop offset="1" stop-color="#424242" stop-opacity="1"/>
          	  </linearGradient>
          	 </defs>
          	  <path d="m107.14774,101.03477l-0.64774,43.96523c5.00857,4.72089 14.00811,5.27188 19,0l-0.31667,-44.16l-9.61514,-19.84l-8.42046,20.03477z" id="svg_29" fill="url(#svg_30)" stroke="#202020" stroke-width="2" transform="rotate(-45, 116, 114)"/>
          	  <circle cx="58" cy="58" r="51" id="svg_22" fill="#c0c0c0" stroke="#202020" stroke-width="5"/>
          	  <circle cx="58" cy="58" r="43" id="svg_27" fill="#aaccff" stroke="none"/>
          	  <path d="m15.68604,61.46511c38.13954,17.67442 48.13954,15.34883 85.11628,-0.46511c1.39536,18.60465 -19.30231,41.86047 -42.7907,40.93023c-21.6279,-0.93023 -42.7907,-21.86046 -42.32558,-40.46511z" id="svg_28" fill="#8cbaff" stroke="none"/>
          	</svg>
          </g>
          
          <g id="arrow_right">
          	<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 50">
          	  <path stroke="#000000" fill="#000000" d="m0,0l0,50l25,-25l-25,-25z"/>
          	</svg>
          </g>
          
          <g id="arrow_right_big">
          	<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 50">
          	  <path stroke="#000000" fill="#000000" d="m0,0l0,50l25,-25l-25,-25z"/>
          	</svg>
          </g>
          
          <g id="arrow_down">
          	<svg viewBox="0 0 50 40" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
          	  <path transform="rotate(90, 26, 13)" d="m14,-12l0,50l25,-25l-25,-25z" fill="#000000" stroke="#000000"/>
          	</svg>
          </g>
          
          <g id="fill">
          <svg width="32" height="33" xmlns="http://www.w3.org/2000/svg">
            <g id="svg_5">
             <path id="svg_4" d="m17.49167,10.97621c6.9875,-0.325 12.1875,2.70833 12.13333,7.36667l-0.325,10.075c-0.75833,4.0625 -2.275,3.0875 -3.03333,0.10833l0.21667,-9.64166c-0.43333,-0.975 -1.08333,-1.625 -1.95,-1.51667" stroke-linejoin="round" stroke="#606060" fill="#c0c0c0"/>
             <path id="svg_1" d="m2.00055,17.1309l10.72445,-10.72445l12.67445,12.13279l-3.52056,0.05389l-9.15389,9.26223l-10.72445,-10.72445z" stroke-linejoin="round" stroke="#000000" fill="#c0c0c0"/>
             <path id="svg_3" d="m14.35,13.57621c-0.1625,-3.95417 0.86667,-11.7 -1.84167,-11.59167c-2.70833,0.10833 -2.6,2.05833 -2.16667,6.93333" stroke-linejoin="round" stroke="#000000" fill="none"/>
             <circle id="svg_2" r="1.60938" cy="15.20121" cx="14.45833" stroke-linejoin="round" stroke="#000000" fill="none"/>
            </g>
          </svg>
          </g>
          
          <g id="stroke">
          <svg width="50" height="50" xmlns="http://www.w3.org/2000/svg">
            <rect fill="none" stroke="#707070" stroke-width="10" x="8.625" y="8.625" width="32.75" height="32.75" id="svg_1"/>
          </svg>
          </g>
          
          <g id="opacity">
          <svg width="50" height="50" xmlns="http://www.w3.org/2000/svg">
           <defs>
            <linearGradient y2="0.1" x2="0.9" y1="0.9" x1="0.1" id="svg_7">
             <stop stop-color="#000000" offset="0"/>
             <stop stop-opacity="0" stop-color="#000000" offset="1"/>
            </linearGradient>
           </defs>
            <rect id="svg_4" height="50" width="50" y="0" x="0" fill="#ffffff"/>
            <rect id="svg_1" height="25" width="25" y="0" x="0" fill="#a0a0a0"/>
            <rect id="svg_2" height="25" width="25" y="25" x="25" fill="#a0a0a0"/>
            <rect id="svg_3" height="50" width="50" y="0" x="0" stroke-width="2" stroke="url(#svg_7)" fill="url(#svg_7)"/>
           </svg>
          </g>
          
          <g id="new_image">
          <svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
            <rect x="2.42792" y="1.6692" width="18" height="21" id="svg_55" fill="#eaeaea" stroke="#606060"/>
            <circle stroke="none" fill="url(#svg_9)" id="svg_65" r="6.300781" cy="7.529969" cx="17.761984"/>
           <defs>
            <radialGradient id="svg_9" cx="0.5" cy="0.5" r="0.5">
             <stop offset="0.1" stop-color="#ffe500" stop-opacity="1"/>
             <stop offset="1" stop-color="#ffff00" stop-opacity="0"/>
            </radialGradient>
           </defs>
          </svg>
          </g>
          
          <g id="save">
          	<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
          	 <defs>
          	  <linearGradient y2="0" x2="1" y1="0" x1="0" id="svg_41">
          	   <stop stop-opacity="1" stop-color="#727272" offset="0"/>
          	   <stop stop-opacity="1" stop-color="#d6d6d6" offset="1"/>
          	  </linearGradient>
          	  <linearGradient y2="0.875" x2="0.21484" y1="0.00391" x1="0.04297" id="svg_46">
          	   <stop stop-opacity="1" stop-color="#81bbf4" offset="0"/>
          	   <stop stop-opacity="1" stop-color="#376eb7" offset="1"/>
          	  </linearGradient>
          	 </defs>
          	   <path stroke="#202020" fill="#e0e0e0" id="svg_21" d="m1.51669,22.3458l21.13245,-0.10111l0,-6.06673l-2.62892,-9.80789l-16.27907,0.10111l-2.32558,9.20121l0.10111,6.67341z"/>
          	   <rect stroke="#efefef" fill="url(#svg_41)" id="svg_32" height="4.75108" width="19.21031" y="16.58227" x="2.42667"/>
          	   <path stroke="#ffffff" fill="#c0c0c0" id="svg_42" d="m4.55005,11.12235l0.70779,-2.83114l13.04348,0l0.70779,3.13448c-0.70779,2.52781 -4.04479,3.84227 -7.17897,3.84227c-2.72977,0 -6.37007,-1.41557 -7.28008,-4.1456z"/>
          	  <path stroke="#285582" fill="url(#svg_46)" id="svg_45" d="m7.14286,9.74903l5.21236,5.79151l5.50193,-5.88803l-2.50965,-0.09653l0,-2.79923c0,-2.3166 -2.3166,-5.59846 -6.56371,-5.59846c-4.05405,0 -6.27413,3.37838 -6.56371,6.75676c0.48263,-1.5444 2.7027,-4.53668 4.44015,-4.44015c2.12355,-0.09653 2.79923,1.64093 2.79923,3.37838l0.09653,2.79923l-2.41313,0.09653z"/>
          	</svg>
          </g>
          
          <g id="export">
          	<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg">
          	 <defs>
          	  <linearGradient id="svg_5" x1="0.77734" y1="0.51172" x2="0.09375" y2="0.53516">
          	   <stop offset="0" stop-color="#81bbf4"/>
          	   <stop offset="1" stop-color="#376eb7"/>
          	  </linearGradient>
          	 </defs>
          	 <g>
          	  <rect x="7.22599" y="1.3603" width="15.76465" height="21.51735" id="svg_55" fill="#eaeaea" stroke="#606060"/>
          	  <circle fill="#31abed" stroke-width="0.5" cx="17.4206" cy="11.1278" r="4.69727" id="svg_3"/>
          	  <path fill="#ffcc00" stroke-width="0.5" d="m9.67673,20.24302l7.38701,-6.80778l2.91746,6.71323" id="svg_4"/>
          	  <rect fill="#ff5555" stroke-width="0.5" x="9.5385" y="2.94914" width="5.74652" height="5.74652" id="svg_2"/>
          	  <path d="m6.13727,17.94236l5.77328,-4.91041l-5.86949,-5.1832l-0.09622,2.36426l-4.64805,-0.06751l-0.04665,5.54694l4.79093,-0.02342l0.09623,2.27334z" id="svg_45" fill="url(#svg_5)" stroke="#285582"/>
          	 </g>
          	</svg>
          </g>
          
          <g id="open">
          <svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
           <defs>
            <linearGradient y2="0.91406" x2="0.65234" y1="0.14063" x1="0.42578" id="svg_76">
             <stop stop-opacity="1" stop-color="#81bbf4" offset="0"/>
             <stop stop-opacity="1" stop-color="#376eb7" offset="1"/>
            </linearGradient>
           </defs>
            <rect x="1.65" y="3.75" width="9.8" height="16.72712" id="svg_98" fill="#c0c0c0" stroke="#606060"/>
            <rect stroke="none" fill="#a0a0a0" id="svg_88" height="14.17459" width="6.39585" y="4.9758" x="2.89542"/>
            <path d="m18.62576,4.54365l0,6.91443l-9.9395,0l-0.08643,-10.11236l6.828,0l3.19792,3.19793z" id="svg_99" fill="#e0e0e0" stroke="#404040"/>
            <path d="m2.95,20.53644l1.65,-12.03644l16.2,0l-1.5,12l-16.35,0.03643z" id="svg_97" fill="url(#svg_76)" stroke="#285582"/>
            <line fill="none" stroke="#606060" id="svg_89" y2="4.28436" x2="13.95851" y1="4.28436" x1="10.32844"/>
            <line fill="none" stroke="#606060" id="svg_91" y2="6.53155" x2="14.82282" y1="6.53155" x1="10.32844"/>
            <path stroke="none" fill="#ffffff" id="svg_100" d="m15.25895,1.95069l-0.00401,2.85225l2.89558,0.00004l-2.89157,-2.85229z"/>
          </svg>
          </g>
          
          <g id="import">
          <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
           <defs>
            <linearGradient y2="0.875" x2="0.21484" y1="0.00391" x1="0.04297" id="svg_46_import">
             <stop stop-opacity="1" stop-color="#81f4bb" offset="0"/>
             <stop stop-opacity="1" stop-color="#37b76e" offset="1"/>
            </linearGradient>
           </defs>
           <rect x="2.42792" y="1.6692" width="18" height="21" id="svg_55" fill="#eaeaea" stroke="#606060"/>
          	  <path stroke="#285582" fill="url(#svg_46_import)" id="svg_45" d="m7.14286,12.74903l5.21236,5.79151l5.50193,-5.88803l-2.50965,-0.09653l0,-2.79923c0,-2.3166 -2.3166,-5.59846 -6.56371,-5.59846c-4.05405,0 -6.27413,3.37838 -6.56371,6.75676c0.48263,-1.5444 2.7027,-4.53668 4.44015,-4.44015c2.12355,-0.09653 2.79923,1.64093 2.79923,3.37838l0.09653,2.79923l-2.41313,0.09653z"/>
          </svg>
          </g>
          
          <g id="docprops">
          	<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
          	 <defs>
          	  <linearGradient y2="1" x2="1" y1="0.5" x1="1" id="svg_53">
          	   <stop stop-opacity="1" stop-color="#606060" offset="0"/>
          	   <stop stop-opacity="0" stop-color="#5e5e5e" offset="1"/>
          	  </linearGradient>
          	 </defs>
          	  <rect stroke="#606060" fill="#eaeaea" id="svg_55" height="21" width="18" y="1.6692" x="2.42792"/>
          	  <line fill="none" stroke="#a0a0a0" id="svg_56" y2="4.37757" x2="14.89023" y1="4.37757" x1="6.696"/>
          	  <line fill="none" stroke="#a0a0a0" id="svg_57" y2="7.10804" x2="12.92026" y1="7.10804" x1="6.6948"/>
          	  <line fill="none" stroke="#a0a0a0" id="svg_58" y2="9.84241" x2="15.64716" y1="9.84241" x1="6.6942"/>
          	  <line fill="none" stroke="#a0a0a0" id="svg_59" y2="12.36585" x2="13.21805" y1="12.36585" x1="6.69691"/>
          	  <line fill="none" stroke="#a0a0a0" id="svg_60" y2="15.06507" x2="14.43591" y1="15.06507" x1="6.69691"/>
          	  <line fill="none" stroke="#a0a0a0" id="svg_61" y2="17.84241" x2="13.36979" y1="17.84241" x1="6.69691"/>
          	  <g id="svg_54">
          	   <path transform="rotate(-45, 12.5448, 11.7085)" stroke="none" fill="#606060" id="svg_31" d="m11.24329,8.73944l0,2.79974l2.53499,0.07777l0,-2.95528c1.78134,0.07777 2.26093,1.39987 2.12391,2.95528c-0.06851,1.63318 -1.30175,3.49967 -3.49418,3.26636c-2.19242,-0.31108 -2.87755,-1.39987 -3.15161,-2.72197c-0.27406,-1.39987 0.41108,-3.34413 1.98689,-3.4219z"/>
          	   <rect opacity="0.95" transform="rotate(-45, 16.2485, 15.1732)" stroke="none" fill="url(#svg_53)" id="svg_50" height="4.85445" width="2.57974" y="12.746" x="15.04047"/>
          	  </g>
          	</svg>
          </g>
          
          <g id="source">
          <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 55 52">
            <text xml:space="preserve" text-anchor="middle" font-family="monospace" font-size="24" stroke="none" fill="#019191" id="svg_40" y="15" x="28.23" font-weight="bold">s</text>
            <text xml:space="preserve" text-anchor="middle" font-family="monospace" font-size="24" stroke="none" fill="#019191" id="svg_47" y="30" x="28.23" font-weight="bold">v</text>
            <text xml:space="preserve" text-anchor="middle" font-family="monospace" font-size="24" stroke="none" fill="#019191" id="svg_48" y="44" x="28.23" font-weight="bold">g</text>
            <line stroke-width="3" fill="none" stroke="#aa0000" id="svg_51" y2="43" x2="16" y1="25" x1="5"/>
            <line id="svg_62" stroke-width="3" fill="none" stroke="#aa0000" y2="8" x2="16" y1="26" x1="5"/>
            <line id="svg_63" stroke-width="3" fill="none" stroke="#aa0000" y2="43" x2="39" y1="25" x1="50"/>
            <line id="svg_64" stroke-width="3" fill="none" stroke="#aa0000" y2="8" x2="39" y1="26" x1="51"/>
           </svg>
          </g>
           
          <g id="wireframe">
           <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
            <circle stroke="#000000" fill="none" id="svg_49" r="8" cy="9.5" cx="9.5"/>
            <rect stroke="#000000" fill="none" id="svg_52" height="14" width="14" y="8.5" x="8.5"/>
           </svg>
          </g>
          
          <g id="undo">
          <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
           <defs>
            <linearGradient id="svg_66" x1="0.04297" y1="0.00391" x2="0.21484" y2="0.875">
             <stop offset="0" stop-color="#f7f963" stop-opacity="1"/>
             <stop offset="1" stop-color="#d3c310" stop-opacity="1"/>
            </linearGradient>
           </defs>
            <path transform="rotate(-90, 10.3017, 11.5526)" d="m6.70188,10.72562l6.55493,-7.13388l6.65817,7.24912l-3.79441,0.03193l0,2.72259c-0.04257,2.74017 -2.76516,5.83068 -7.81235,6.02135c-5.18575,0 -7.1226,-3.75464 -7.49302,-7.41944c0.61736,1.6754 3.14913,3.78397 5.3716,3.67918c2.71635,0.1048 4.41501,-0.61714 4.41501,-2.50184l0,-2.64901l-3.89995,0z" id="svg_45" fill="url(#svg_66)" stroke="#b7a800"/>
           </svg>
          </g>
          
          <g id="redo">
          <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
           <defs>
            <linearGradient y2="1" x2="1" y1="0" x1="1" id="svg_71">
             <stop stop-opacity="1" stop-color="#98fc46" offset="0"/>
             <stop stop-opacity="1" stop-color="#56aa25" offset="1"/>
            </linearGradient>
           </defs>
            <path transform="rotate(-90, 12.7299, 11.5526)" d="m9.11294,12.43144l6.54089,6.84566l6.6439,-6.95624l-3.78628,-0.03064l0,-2.61259c-0.04248,-2.62946 -2.75924,-5.5951 -7.79561,-5.77807c-5.17464,0 -7.10734,3.60294 -7.47697,7.11967c0.61604,-1.60771 3.14238,-3.63109 5.36009,-3.53053c2.71053,-0.10056 4.40555,0.59221 4.40555,2.40076l0,2.54198l-3.89159,0z" id="svg_45" fill="url(#svg_71)" stroke="#44aa00"/>
           </svg>
          </g>
          
          <g id="clone">
          <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18">
           <defs>
            <linearGradient y2="1" x2="1" y1="0" x1="0" id="svg_36">
             <stop stop-opacity="1" stop-color="#f9f3de" offset="0"/>
             <stop stop-opacity="1" stop-color="#ccbd8f" offset="1"/>
            </linearGradient>
            <linearGradient y2="0.80078" x2="0.42578" y1="0" x1="0" id="svg_69">
             <stop stop-opacity="1" stop-color="#f9f3de" offset="0"/>
             <stop stop-opacity="1" stop-color="#af995b" offset="1"/>
            </linearGradient>
           </defs>
            <path stroke="#8f5902" fill="url(#svg_69)" id="svg_34" d="m2.11676,16.32061l-0.13787,-5.05515l1.93015,-2.02206l10.11029,0l2.02206,2.29779l0,4.77941l-13.92463,0z"/>
            <rect x="7.85379" y="6.30027" width="2.2932" height="4.3407" id="svg_38" fill="url(#svg_36)" stroke="#8f5902" rx="1" ry="1"/>
            <circle stroke="#8f5902" fill="url(#svg_36)" id="svg_35" r="2.96392" cy="4.48149" cx="9.11757"/>
            <line x1="2.44838" y1="12.03512" x2="15.5524" y2="12.03512" id="svg_39" stroke="#f9f3de" fill="none"/>
            <path d="m6.72427,12.55859l4.74203,0l-2.30831,2.07258l-2.43372,-2.07258z" id="svg_43" fill="#000000" stroke="none"/>
          </svg>
          </g>
          
          <g id="delete">
          <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
            <rect ry="3" rx="3" stroke="#800000" fill="#aa0000" id="svg_37" height="20.29514" width="21.17486" y="1.70304" x="1.42011"/>
            <rect ry="3" rx="3" stroke="#ff5555" fill="#aa0000" id="svg_67" height="18.63022" width="19.61118" y="2.53597" x="2.20258"/>
            <line stroke-width="2" fill="none" stroke="#ffffff" id="svg_68" y2="16.85127" x2="17.00646" y1="6.85127" x1="7.00646"/>
            <line stroke-width="2" id="svg_70" fill="none" stroke="#ffffff" y2="16.85127" x2="7.00646" y1="6.85127" x1="17.00646"/>
           </svg>
          </g>
          
          <g id="go_up">
          	<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18">
          	 <defs>
          	  <linearGradient y2="0" x2="0.7" y1="0" x1="0" id="svg_74">
          	   <stop stop-opacity="1" stop-color="#afe853" offset="0"/>
          	   <stop stop-opacity="1" stop-color="#52a310" offset="1"/>
          	  </linearGradient>
          	 </defs>
          	  <path stroke="#008000" fill="url(#svg_74)" id="svg_33" d="m5.38492,16.77043l7.07692,0l0,-5.23077l4.15385,0l-7.69231,-10.15385l-7.69231,10.15385l4.15385,0l0,5.23077z"/>
          	</svg>
          </g>
          
          <g id="go_down">
          <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18">
           <defs>
            <linearGradient y2="0" x2="0.7" y1="0" x1="0" id="svg_75">
             <stop stop-opacity="1" stop-color="#afe853" offset="0"/>
             <stop stop-opacity="1" stop-color="#52a310" offset="1"/>
            </linearGradient>
           </defs>
            <path stroke="#008000" fill="url(#svg_75)" id="svg_33" d="m5.3015,1.69202l6.93483,0l0,5.07323l4.07045,0l-7.53786,9.84803l-7.53786,-9.84803l4.07045,0l0,-5.07323z"/>
           </svg>
          </g>
          
          <g id="context_menu">
          	<svg width="120" height="120" xmlns="http://www.w3.org/2000/svg">
          	  <path stroke-width="0" id="svg_11" d="m4.5,46.5l52,0l-26,38l-26,-38z" stroke="#000" fill="#000"/>
          	  <g id="svg_16">
          	   <line stroke-width="10" id="svg_12" y2="27.5" x2="117.5" y1="27.5" x1="59.5" stroke="#000" fill="#000"/>
          	   <line id="svg_13" stroke-width="10" y2="51.5" x2="117.5" y1="51.5" x1="59.5" stroke="#000" fill="#000"/>
          	   <line id="svg_14" stroke-width="10" y2="73.5" x2="117.5" y1="73.5" x1="59.5" stroke="#000" fill="#000"/>
          	   <line id="svg_15" stroke-width="10" y2="97.5" x2="117.5" y1="97.5" x1="59.5" stroke="#000" fill="#000"/>
          	  </g>
          	</svg>
          </g>
          
          <g id="move_bottom">
          <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 23 23">
           <defs>
            <linearGradient y2="0" x2="1" y1="0" x1="0" id="svg_80">
             <stop stop-opacity="1" stop-color="#bc7f05" offset="0"/>
             <stop stop-opacity="1" stop-color="#fcfc9f" offset="1"/>
            </linearGradient>
           </defs>
            <line stroke-width="2" fill="none" stroke="#000000" id="svg_72" y2="2.5" x2="22" y1="2.5" x1="10.5"/>
            <line id="svg_73" stroke-width="2" fill="none" stroke="#000000" y2="6.5" x2="21.99844" y1="6.5" x1="10.49844"/>
            <line id="svg_74" stroke-width="2" fill="none" stroke="#000000" y2="10.5" x2="21.99922" y1="10.5" x1="10.49922"/>
            <line id="svg_75" stroke-width="2" fill="none" stroke="#000000" y2="14.5" x2="21.99922" y1="14.5" x1="10.49922"/>
            <rect stroke="#000000" fill="url(#svg_80)" id="svg_77" height="2.2" width="20" y="17.65" x="1.65"/>
            <path stroke="none" fill="#000000" id="svg_81" d="m4.25,1.55l2.35,0l0,11.05l2,0l-3.175,3.45l-3.175,-3.45l2,0l0,-11.05z"/>
           </svg>
          </g>
          
          <g id="move_top">
          <svg viewBox="0 0 23 23" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
           <defs>
            <linearGradient id="svg_86" x1="0" y1="0" x2="1" y2="0">
             <stop offset="0" stop-color="#9fdcf4" stop-opacity="1"/>
             <stop offset="1" stop-color="#617e96" stop-opacity="1"/>
            </linearGradient>
           </defs>
            <line x1="1.3" y1="8.19922" x2="12.8" y2="8.19922" id="svg_72" stroke="#000000" fill="none" stroke-width="2"/>
            <line x1="1.29844" y1="12.19922" x2="12.79844" y2="12.19922" stroke="#000000" fill="none" stroke-width="2" id="svg_73"/>
            <line x1="1.29922" y1="16.19922" x2="12.79922" y2="16.19922" stroke="#000000" fill="none" stroke-width="2" id="svg_74"/>
            <line x1="1.29922" y1="20.19922" x2="12.79922" y2="20.19922" stroke="#000000" fill="none" stroke-width="2" id="svg_75"/>
            <rect x="1.55" y="1.85" width="20" height="3.2" id="svg_77" fill="url(#svg_86)" stroke="#000000"/>
            <path d="m16.83475,21.14603l2.33207,0l0,-11.04578l1.98474,0l-3.15077,-3.44869l-3.15077,3.44869l1.98474,0l0,11.04578z" id="svg_81" fill="#000000" stroke="none"/>
           </svg>
          </g>
          
          <g id="to_path">
          <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
           <defs>
            <linearGradient y2="0.46875" x2="0.42969" y1="0.10156" x1="0.10547" id="svg_105">
             <stop stop-color="#ff0000" offset="0"/>
             <stop stop-opacity="0" stop-color="#ff0000" offset="1"/>
            </linearGradient>
           </defs>
           <g>
            <circle cx="21" cy="21.3125" r="18.44531" id="svg_120" fill="url(#svg_105)" stroke="#000000"/>
            <path fill="none" stroke="#000000" d="m2.875,21.3125c-0.375,-9.25 7.75,-18.875 17.75,-18" id="svg_115"/>
            <line x1="25.375" y1="3.0625" x2="8.5" y2="3.0625" id="svg_116" stroke="#808080" fill="none"/>
            <line x1="2.625" y1="24.75" x2="2.625" y2="9.8125" id="svg_117" stroke="#808080" fill="none"/>
            <circle cx="8.5" cy="2.9375" r="1.95313" fill="#00ffff" stroke="#0000ff" stroke-width="0.5" id="svg_118"/>
            <circle cx="2.625" cy="9.8125" r="1.95313" fill="#00ffff" stroke="#0000ff" stroke-width="0.5" id="svg_119"/>
            <circle cx="20.875" cy="3.1875" r="2.5" id="svg_112" fill="#00ffff" stroke="#0000ff"/>
            <circle cx="2.875" cy="21.0625" r="2.5" fill="#00ffff" stroke="#0000ff" id="svg_114"/>
           </g>
          </svg>
          </g>
          
          <g id="link_controls">
          <svg viewBox="0 0 24 24" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg">
            <path stroke-width="2" id="svg_102" d="m9.875,23c-2,-4.25 -1.6875,-7.375 1.6875,-10.5c3.375,-3.125 7.5625,-2.75 11.0625,2" stroke="#8dd35f" fill="none"/>
            <line fill="none" stroke="#606060" id="svg_109" y2="4" x2="19" y1="19" x1="4"/>
            <circle stroke="#0000ff" fill="#00ffff" id="svg_111" r="2.17578" cy="11.5" cx="11.5"/>
            <circle stroke-width="0.5" id="svg_121" stroke="#0000ff" fill="#00ffff" r="2.26172" cy="4" cx="19"/>
            <circle id="svg_123" stroke-width="0.5" stroke="#0000ff" fill="#00ffff" r="2.26172" cy="19" cx="4"/>
          </svg>
          </g>
          
          <g id="reorient">
          <svg viewBox="0 0 24 24" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg">
           <defs>
            <linearGradient y2="1" x2="1" y1="1" x1="0" id="svg_113">
             <stop stop-opacity="0" stop-color="#0000ff" offset="0"/>
             <stop stop-opacity="1" stop-color="#507ece" offset="1"/>
            </linearGradient>
           </defs>
            <rect stroke-dasharray="2,2" stroke="#0000ff" fill="none" id="svg_108" height="19.125" width="18.625" y="2.625" x="2.875"/>
            <rect transform="rotate(45, 12.2344, 12.1719)" stroke="#000000" fill="url(#svg_113)" id="svg_107" height="6.125" width="16" y="9.10848" x="4.23267"/>
          </svg>
          </g>
          
          <g id="group_elements">
          <svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
           <defs>
            <linearGradient id="svg_90" x1="0" y1="0" x2="1" y2="1">
             <stop offset="0" stop-color="#ccddff" stop-opacity="1"/>
             <stop offset="1" stop-color="#789fed" stop-opacity="1"/>
            </linearGradient>
            <linearGradient id="svg_92" x1="0" y1="0" x2="1" y2="1">
             <stop offset="0" stop-color="#70a1e5" stop-opacity="1"/>
             <stop offset="1" stop-color="#4b6baf" stop-opacity="1"/>
            </linearGradient>
           </defs>
            <rect x="13.5" y="0.5" width="2" height="2" fill="#a0a0a0" stroke="#555555" id="svg_79"/>
            <rect x="13.5" y="13.5" width="2" height="2" fill="#a0a0a0" stroke="#555555" id="svg_82"/>
            <rect x="0.5" y="13.5" width="2" height="2" fill="#a0a0a0" stroke="#555555" id="svg_83"/>
            <rect x="2.5" y="2.5" width="8" height="7" fill="#a0a0a0" stroke="#555555" id="svg_85"/>
            <rect x="2.5" y="2.5" width="8" height="7" fill="url(#svg_90)" stroke="url(#svg_92)" id="svg_87"/>
            <rect x="5.5" y="6.5" width="8" height="7" id="svg_84" fill="#7399d6" stroke="url(#svg_92)"/>
            <rect x="0.5" y="0.5" width="2" height="2" id="svg_78" fill="#a0a0a0" stroke="#555555"/>
           </svg>
          </g>
          
          <g id="ungroup">
          <svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
           <defs>
            <linearGradient id="svg_90" x1="0" y1="0" x2="1" y2="1">
             <stop offset="0" stop-color="#ccddff" stop-opacity="1"/>
             <stop offset="1" stop-color="#789fed" stop-opacity="1"/>
            </linearGradient>
            <linearGradient id="svg_92" x1="0" y1="0" x2="1" y2="1">
             <stop offset="0" stop-color="#70a1e5" stop-opacity="1"/>
             <stop offset="1" stop-color="#4b6baf" stop-opacity="1"/>
            </linearGradient>
           </defs>
            <rect x="2.5" y="2.5" width="8" height="7" fill="url(#svg_90)" stroke="url(#svg_92)" id="svg_87"/>
            <rect x="5.5" y="6.5" width="8" height="7" id="svg_84" fill="#7399d6" stroke="url(#svg_92)"/>
            <rect x="9.5" y="1.5" width="2" height="2" fill="#a0a0a0" stroke="#555555" id="svg_79"/>
            <rect x="1.5" y="8.5" width="2" height="2" fill="#a0a0a0" stroke="#555555" id="svg_83"/>
            <rect x="1.5" y="1.5" width="2" height="2" id="svg_78" fill="#a0a0a0" stroke="#555555"/>
            <rect id="svg_93" x="12.5" y="5.5" width="2" height="2" fill="#a0a0a0" stroke="#555555"/>
            <rect id="svg_94" x="12.5" y="12.5" width="2" height="2" fill="#a0a0a0" stroke="#555555"/>
            <rect id="svg_95" x="4.5" y="12.5" width="2" height="2" fill="#a0a0a0" stroke="#555555"/>
            <rect id="svg_96" x="4.5" y="5.5" width="2" height="2" fill="#a0a0a0" stroke="#555555"/>
          </svg>
          </g>
          
          <g id="unlink_use">
          <svg width="222" height="222" xmlns="http://www.w3.org/2000/svg">
            <path id="svg_1" d="m93.75,118.44922c-4.5,13.58447 -14.66553,11.5 -28.25,11.5l-34,0c-13.58447,0 -24.5,-7.16553 -24.5,-21.5c0,-14.33447 10.91553,-20.5 24.5,-20.5l34,0c13.58447,0 19.75,-2.33447 26.5,10.75" stroke-width="13" stroke="#3f3f3f" fill="none"/>
            <g id="svg_11">
             <line id="svg_4" y2="65.94563" x2="83.07683" y1="28.27895" x1="45.41017" stroke-linecap="round" stroke-width="8" stroke="#007fff" fill="none"/>
             <line id="svg_5" y2="15.01293" x2="109.41467" y1="65.94638" x1="109.41467" stroke-linecap="round" stroke-width="8" stroke="#007fff" fill="none"/>
             <line id="svg_6" y2="29.31928" x2="177.58937" y1="65.94638" x1="140.96227" stroke-linecap="round" stroke-width="8" stroke="#007fff" fill="none"/>
            </g>
            <g id="svg_12" transform="rotate(-180, 108, 172.111)">
             <line y2="190.94563" x2="79.57683" y1="153.27895" x1="41.91017" stroke-linecap="round" stroke-width="8" stroke="#007fff" fill="none" id="svg_13"/>
             <line y2="140.01293" x2="105.91467" y1="190.94638" x1="105.91467" stroke-linecap="round" stroke-width="8" stroke="#007fff" fill="none" id="svg_14"/>
             <line y2="154.31928" x2="174.08937" y1="190.94638" x1="137.46227" stroke-linecap="round" stroke-width="8" stroke="#007fff" fill="none" id="svg_15"/>
            </g>
            <path transform="rotate(-180, 172.125, 108.926)" id="svg_2" d="m215.5,118.44901c-4.5,13.58499 -14.6655,11.5 -28.25,11.5l-34,0c-13.5845,0 -24.5,-7.16501 -24.5,-21.5c0,-14.3343 10.9155,-20.4998 24.5,-20.4998l34,0c13.5845,0 19.75,-2.3345 26.5,10.75" stroke-width="13" stroke="#3f3f3f" fill="none"/>
          </svg>
          </g>
          
          <g id="width">
          	<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg">
          	  <path id="svg_6" d="m19,42.5l-7.5,7.5l7.5,7.5l0,-15zm0,7.5l62,0l0,-7.5l7.5,7.5l-7.5,7.5l0,-7.5" stroke-width="8" stroke="#000000" fill="#000000"/>
          	</svg>
          </g>
          
          <g id="height">
          	<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg">
          	  <path transform="rotate(90, 50, 50)" fill="#000000" stroke="#000000" stroke-width="8" d="m19,42.5l-7.5,7.5l7.5,7.5l0,-15zm0,7.5l62,0l0,-7.5l7.5,7.5l-7.5,7.5l0,-7.5" id="svg_6"/>
          	</svg>
          </g>
          
          <g id="c_radius">
          <svg width="20" height="20" xmlns="http://www.w3.org/2000/svg">
            <rect stroke="#404040" fill="none" stroke-width="0.5" x="2.37501" y="2.4375" width="43.9375" height="43.9375" id="svg_1" rx="13" ry="13"/>
            <path fill="none" stroke="#000000" d="m2.43674,15.88952l13.73722,0l0.08978,-13.46483m0.08978,14.08493" id="svg_3"/>
            <line fill="none" stroke="#000000" x1="16.35107" y1="15.88934" x2="5.20504" y2="5.20504" id="svg_4" stroke-dasharray="2,2"/>
          </svg>
          </g>
          
          <g id="angle">
          <svg width="50" height="50" xmlns="http://www.w3.org/2000/svg">
            <path stroke-width="2" stroke-dasharray="1,3" id="svg_6" d="m32.78778,41.03469c-0.40379,-8.68145 -4.50873,-16.79003 -12.11365,-20.5932" stroke="#000000" fill="none"/>
            <path id="svg_7" d="m29.20348,7.67055l-24.20348,34.47921l41.16472,0" stroke-width="3" stroke="#404040" fill="none"/>
          </svg>
          </g>
          
          <g id="blur">
          <svg width="300" height="300" xmlns="http://www.w3.org/2000/svg">
           <!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
           <defs>
            <filter id="svg_4_blur" x="-50%" y="-50%" width="200%" height="200%">
             <feGaussianBlur stdDeviation="25"/>
            </filter>
           </defs>
            <circle fill="#000000" stroke="#000000" stroke-width="5" stroke-dasharray="null" cx="150" cy="150" r="91.80151" id="svg_4" filter="url(#svg_4_blur)"/>
          </svg>
          </g>
          
          <g id="fontsize">
          <svg width="50" height="50" xmlns="http://www.w3.org/2000/svg">
            <text fill="#606060" stroke="none" x="14.451" y="41.4587" id="svg_2" font-size="26" font-family="serif" text-anchor="middle">T</text>
            <text fill="#000000" stroke="none" x="28.853" y="41.8685" font-size="52" font-family="serif" text-anchor="middle" xml:space="preserve" id="svg_3">T</text>
          </svg>
          </g>
          
          <g id="align">
          	<svg width="22" height="22" xmlns="http://www.w3.org/2000/svg">
          	  <rect stroke="#606060" fill="#c0c0c0" id="svg_4" height="7" width="12" y="7.5" x="4.5"/>
          	  <rect stroke="#c15909" fill="#ef9a23" id="svg_2" height="40" width="2" y="-10" x="9.5"/>
          	  <rect stroke="#ffffff" fill="none" id="svg_5" height="5" width="10" y="8.5" x="5.5"/>
          	</svg>
          </g>
          
          <g id="align_left">
          	<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">
          	  <rect stroke="#606060" fill="#ffffff" id="svg_4" height="7" width="12" y="2.5" x="2.5"/>
          	  <rect stroke="none" fill="#c0c0c0" id="svg_5" height="4" width="11" y="4" x="2"/>
          	  <rect id="svg_6" stroke="#606060" fill="#ffffff" height="7" width="18" y="12.5" x="2.5"/>
          	  <rect id="svg_7" stroke="none" fill="#c0c0c0" height="4" width="17" y="14" x="2"/>
          	  <rect stroke="#c15909" fill="#ef9a23" id="svg_2" height="40" width="2" y="-10" x="1.5"/>
          	</svg>
          </g>
          
          <g id="align_center">
          	<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
          	  <rect x="1.5" y="12.5" width="18" height="7" fill="#c0c0c0" stroke="#606060" id="svg_6"/>
          	  <rect x="4.5" y="2.5" width="12" height="7" id="svg_4" fill="#c0c0c0" stroke="#606060"/>
          	  <rect x="9.5" y="-10" width="2" height="40" id="svg_2" fill="#ef9a23" stroke="#c15909"/>
          	  <rect x="2.5" y="13.5" width="16" height="5" fill="none" stroke="#ffffff" id="svg_7"/>
          	  <rect x="5.5" y="3.5" width="10" height="5" id="svg_5" fill="none" stroke="#ffffff"/>
          	</svg>
          </g>
          
          <g id="align_right">
          	<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
          	  <rect x="7.5" y="2.5" width="12" height="7" id="svg_4" fill="#ffffff" stroke="#606060"/>
          	  <rect x="9" y="4" width="11" height="4" id="svg_5" fill="#c0c0c0" stroke="none"/>
          	  <rect x="1.5" y="12.5" width="18" height="7" fill="#ffffff" stroke="#606060" id="svg_6"/>
          	  <rect x="3" y="14" width="17" height="4" fill="#c0c0c0" stroke="none" id="svg_7"/>
          	  <rect x="18.5" y="-10" width="2" height="40" id="svg_2" fill="#ef9a23" stroke="#c15909"/>
          	</svg>
          </g>
          
          <g id="align_top">
          	<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
          	  <g transform="rotate(90, 11, 11)" id="svg_1">
          	   <rect x="2.5" y="3.5" width="12" height="7" id="svg_4" fill="#ffffff" stroke="#606060"/>
          	   <rect x="2" y="5" width="11" height="4" id="svg_5" fill="#c0c0c0" stroke="none"/>
          	   <rect x="2.5" y="13.5" width="18" height="7" fill="#ffffff" stroke="#606060" id="svg_6"/>
          	   <rect x="2" y="15" width="17" height="4" fill="#c0c0c0" stroke="none" id="svg_7"/>
          	   <rect x="1.5" y="-9" width="2" height="40" id="svg_2" fill="#ef9a23" stroke="#c15909"/>
          	  </g>
          	</svg>
          </g>
          
          <g id="align_middle">
          <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">
            <g transform="rotate(90, 12, 11.5)" id="svg_1">
             <rect id="svg_6" stroke="#606060" fill="#c0c0c0" height="7" width="18" y="14" x="3"/>
             <rect stroke="#606060" fill="#c0c0c0" id="svg_4" height="7" width="12" y="4" x="6"/>
             <rect stroke="#c15909" fill="#ef9a23" id="svg_2" height="40" width="2" y="-8.5" x="11"/>
             <rect id="svg_7" stroke="#ffffff" fill="none" height="5" width="16" y="15" x="4"/>
             <rect stroke="#ffffff" fill="none" id="svg_5" height="5" width="10" y="5" x="7"/>
             </g>
          </svg>
          </g>
          
          <g id="align_bottom">
          <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">
            <g transform="rotate(90, 11, 11)" id="svg_1">
             <rect stroke="#606060" fill="#ffffff" id="svg_4" height="7" width="12" y="2.5" x="7.5"/>
             <rect stroke="none" fill="#c0c0c0" id="svg_5" height="4" width="11" y="4" x="9"/>
             <rect id="svg_6" stroke="#606060" fill="#ffffff" height="7" width="18" y="12.5" x="1.5"/>
             <rect id="svg_7" stroke="none" fill="#c0c0c0" height="4" width="17" y="14" x="3"/>
             <rect stroke="#c15909" fill="#ef9a23" id="svg_2" height="40" width="2" y="-10" x="18.5"/>
             </g>
          </svg>
          </g>
          
          <g id="linecap_butt">
          <svg width="100" height="100" xmlns="http://www.w3.org/2000/svg" xmlns:se="http://svg-edit.googlecode.com" xmlns:xlink="http://www.w3.org/1999/xlink">
           <!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
           <defs>
            <linearGradient id="svg_8" x1="0.8" y1="1" x2="0.2" y2="1">
             <stop offset="0" stop-color="#000000" stop-opacity="1"/>
             <stop offset="1" stop-color="#000000" stop-opacity="0"/>
            </linearGradient>
           </defs>
           <g>
            <rect fill="url(#svg_8)" stroke="#a0a0a0" stroke-width="2" x="-15.20196" y="43.5974" width="94.8373" height="50.3728" id="svg_3" transform="rotate(-45, 32.2148, 68.7832)"/>
            <path id="svg_1" d="m6.63133,95.07755l59.17514,-59.17514" stroke-width="3" stroke="#00ffff" fill="none"/>
            <path id="svg_2" d="m51.62893,36.10742l13.05662,-13.05662l13.05661,13.05662l-13.05661,13.05662l-13.05662,-13.05662z" stroke="none" fill="#00ffff"/>
           </g>
          </svg>
          </g>
          
          <g id="linecap_square">
          <svg width="100" height="100" xmlns="http://www.w3.org/2000/svg" xmlns:se="http://svg-edit.googlecode.com" xmlns:xlink="http://www.w3.org/1999/xlink">
           <!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
           <defs>
            <linearGradient id="svg_8" x1="0.8" y1="1" x2="0.2" y2="1">
             <stop offset="0" stop-color="#000000" stop-opacity="1"/>
             <stop offset="1" stop-color="#000000" stop-opacity="0"/>
            </linearGradient>
           </defs>
           <g>
            <rect fill="url(#svg_8)" stroke="none" x="-18.51568" y="35.5974" width="117.46469" height="50.3728" id="svg_3" transform="rotate(-45, 40.2168, 60.7832)"/>
            <path id="svg_1" d="m6.63133,95.07755l59.17514,-59.17514" stroke-width="3" stroke="#00ffff" fill="none"/>
            <path id="svg_2" d="m51.62893,36.10742l13.05662,-13.05662l13.05661,13.05662l-13.05661,13.05662l-13.05662,-13.05662z" stroke="none" fill="#00ffff"/>
           </g>
          </svg>
          </g>
          
          <g id="linecap_round">
          <svg width="100" height="100" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:se="http://svg-edit.googlecode.com">
           <!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
           <defs>
            <linearGradient y2="1" x2="0.2" y1="1" x1="0.8" id="svg_8">
             <stop stop-opacity="1" stop-color="#000000" offset="0"/>
             <stop stop-opacity="0" stop-color="#000000" offset="1"/>
            </linearGradient>
           </defs>
           <g>
            <path transform="rotate(-45, 41.5117, 59.4648)" id="svg_3" d="m-19.0679,34.2946l94.8359,0c36.499,-1.4142 33.67101,48.9569 0,50.3711l-94.8359,0l0,-50.3711z" stroke-width="2" stroke="#a0a0a0" fill="url(#svg_8)"/>
            <path id="svg_1" d="m6.63133,95.07755l59.17515,-59.17515" stroke-width="3" stroke="#00ffff" fill="none"/>
            <path id="svg_2" d="m51.62893,36.10742l13.05662,-13.05662l13.05661,13.05662l-13.05661,13.05662l-13.05662,-13.05662z" stroke="none" fill="#00ffff"/>
           </g>
          </svg>
          </g>
          
          <g id="linejoin_miter">
          <svg width="100" height="100" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:se="http://svg-edit.googlecode.com">
           <!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
           <defs>
            <linearGradient y2="1" x2="0.2" y1="1" x1="0.8" id="svg_8">
             <stop stop-opacity="1" stop-color="#000000" offset="0"/>
             <stop stop-opacity="0" stop-color="#000000" offset="1"/>
            </linearGradient>
           </defs>
           <g>
            <path fill="none" stroke="url(#svg_8)" stroke-width="49" d="m-15,-35l75,85l-75,75" id="svg_6"/>
            <path transform="rotate(90, 57.8925, 50.2519)" fill="#00ffff" stroke="none" d="m44.83592,50.25187l13.05661,-13.05663l13.05661,13.05663l-13.05661,13.05662l-13.05661,-13.05662z" id="svg_2"/>
            <path id="svg_4" d="m-15,-35l75,85l-75,75" stroke-width="3" stroke="#00ffff" fill="none"/>
           </g>
          </svg>
          </g>
          
          <g id="linejoin_bevel">
          <svg width="100" height="100" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:se="http://svg-edit.googlecode.com">
           <!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
           <defs>
            <linearGradient y2="1" x2="0.2" y1="1" x1="0.8" id="svg_8">
             <stop stop-opacity="1" stop-color="#000000" offset="0"/>
             <stop stop-opacity="0" stop-color="#000000" offset="1"/>
            </linearGradient>
           </defs>
           <g>
            <path stroke-linejoin="bevel" fill="none" stroke="url(#svg_8)" stroke-width="49" d="m-15,-35l75,85l-75,75" id="svg_6"/>
            <path transform="rotate(90, 57.8925, 50.2519)" fill="#00ffff" stroke="none" d="m44.83592,50.25187l13.05661,-13.05663l13.05661,13.05663l-13.05661,13.05662l-13.05661,-13.05662z" id="svg_2"/>
            <path id="svg_4" d="m-15,-35l75,85l-75,75" stroke-width="3" stroke="#00ffff" fill="none"/>
           </g>
          </svg>
          </g>
          
          <g id="linejoin_round">
          <svg width="100" height="100" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:se="http://svg-edit.googlecode.com">
           <!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
           <defs>
            <linearGradient y2="1" x2="0.2" y1="1" x1="0.8" id="svg_8">
             <stop stop-opacity="1" stop-color="#000000" offset="0"/>
             <stop stop-opacity="0" stop-color="#000000" offset="1"/>
            </linearGradient>
           </defs>
           <g>
            <path stroke-linejoin="round" fill="none" stroke="url(#svg_8)" stroke-width="49" d="m-15,-35l75,85l-75,75" id="svg_6"/>
            <path transform="rotate(90, 57.8925, 50.2519)" fill="#00ffff" stroke="none" d="m44.83592,50.25187l13.05661,-13.05663l13.05661,13.05663l-13.05661,13.05662l-13.05661,-13.05662z" id="svg_2"/>
            <path id="svg_4" d="m-15,-35l75,85l-75,75" stroke-width="3" stroke="#00ffff" fill="none"/>
           </g>
          </svg>
          </g>
          
          <g id="eye">
          <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 17">
           <defs>
            <linearGradient y2="0.79688" x2="0.5625" y1="0.19141" x1="0.42969" id="svg_91">
             <stop stop-opacity="1" stop-color="#d3a16b" offset="0"/>
             <stop stop-opacity="1" stop-color="#a37c53" offset="1"/>
            </linearGradient>
           </defs>
            <path stroke="none" fill="url(#svg_91)" id="svg_9" d="m0.12852,8.18338c3.59931,-7.71208 13.19749,-7.36932 16.75236,0.08569c-3.02165,7.5407 -13.59741,7.66924 -16.75236,-0.08569z"/>
            <path id="svg_76" stroke="none" fill="#ffffff" d="m0.33033,8.2557c3.5173,-4.97159 12.89675,-4.75063 16.37062,0.05524c-2.95279,4.86111 -13.28756,4.94397 -16.37062,-0.05524z"/>
            <circle stroke="none" fill="#4f92c1" id="svg_88" r="3.08008" cy="7.71116" cx="8.45861"/>
            <circle stroke="none" fill="#000000" id="svg_89" r="1.27539" cy="7.6539" cx="8.43159"/>
           </svg>
          </g>
          
          <g id="no_color">
          	<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
          	  <line fill="none" stroke="#d40000" id="svg_90" y2="24" x2="24" y1="0" x1="0"/>
          	  <line id="svg_92" fill="none" stroke="#d40000" y2="24" x2="0" y1="0" x1="24"/>
          	</svg>
          </g>
          
          <g id="ok">
          	<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
          	 <defs>
          	  <linearGradient y2="0.65625" x2="0.94141" y1="0.43359" x1="0.42969" id="svg_106">
          	   <stop stop-opacity="1" stop-color="#38ff45" offset="0"/>
          	   <stop stop-opacity="1" stop-color="#127c0c" offset="1"/>
          	  </linearGradient>
          	 </defs>
          	  <path transform="rotate(45, 12, 10)" stroke="#005500" fill="url(#svg_106)" id="svg_101" d="m7.9,15.9l4.9,-0.05l0,-13.75l3.8,0l0,17.6l-8.7,0l0,-3.8z"/>
          	</svg>
          </g>
          
          <g id="cancel">
          <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
           <defs>
            <linearGradient y2="0.65625" x2="0.94141" y1="0.43359" x1="0.42969" id="svg_9">
             <stop stop-opacity="1" stop-color="#ff3838" offset="0"/>
             <stop stop-opacity="1" stop-color="#7a0c0c" offset="1"/>
            </linearGradient>
           </defs>
            <path stroke="#550000" fill="url(#svg_9)" id="svg_101" d="m2.10526,10.52632l7.36842,0l0,-7.36842l3.68421,0l0,7.36842l7.36842,0l0,3.68421l-7.36842,0l0,7.36842l-3.68421,0l0,-7.36842l-7.36842,0l0,-3.68421z" transform="rotate(45, 11.3, 12.3)"/>
           </svg>
          </g>
          
          <g id="warning">
          <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
           <defs>
            <linearGradient y2="0.98047" x2="0.57813" y1="0.44922" x1="0.56641" id="svg_110">
             <stop stop-opacity="1" stop-color="#ffff00" offset="0"/>
             <stop stop-opacity="1" stop-color="#9e9e00" offset="1"/>
            </linearGradient>
           </defs>
            <path d="m1.42857,21.55559l10.71429,-19.36489l10.71429,19.20352l-21.42857,0.16137z" id="svg_44" fill="url(#svg_110)" stroke="#916d1f" stroke-width="2"/>
            <path stroke="none" fill="#000000" id="svg_103" d="m11.98371,14.68571c-0.57143,-3.82857 -1.82857,-6.4 0.11429,-6.4c2.11429,0 0.74286,2.57143 0.11429,6.4l-0.22857,0z"/>
            <circle stroke="none" fill="#000000" id="svg_104" r="1.17578" cy="17.37143" cx="12.14308"/>
           </svg>
          </g>
          
          <g id="node_delete">
          <svg width="24" height="24" xmlns="http://www.w3.org/2000/svg">
            <path stroke-width="2" id="svg_102" d="m4.1953,19.42128c15.49391,-15.53349 -0.21065,0.1581 15.61084,-15.57944" stroke="#8dd35f" fill="none"/>
            <circle stroke-width="0.5" id="svg_121" stroke="#0000ff" fill="#00ffff" r="2.26172" cy="4" cx="19.75"/>
            <circle id="svg_123" stroke-width="0.5" stroke="#0000ff" fill="#00ffff" r="2.26172" cy="19.40299" cx="4.0653"/>
            <circle id="svg_7" stroke-width="0.5" stroke="#0000ff" fill="#00ffff" r="2.26172" cy="11.625" cx="11.9375"/>
            <g transform="rotate(-45.291072845458984 9.81157112121582,9.244086265563965) " id="svg_6">
             <line stroke-linecap="round" id="svg_4" y2="9.45264" x2="15.14996" y1="9.3943" x1="4.47318" stroke-dasharray="null" stroke-width="2" stroke="#ff0000" fill="none"/>
             <line stroke-linecap="round" id="svg_5" y2="14.46579" x2="9.66571" y1="4.02238" x1="9.7824" stroke-dasharray="null" stroke-width="2" stroke="#ff0000" fill="none"/>
            </g>
          </svg>
          </g>
          
          <g id="node_clone">
          <svg width="24" height="24" xmlns="http://www.w3.org/2000/svg">
            <path stroke-width="2" id="svg_102" d="m4.1953,19.42128c15.49391,-15.53349 -0.21065,0.1581 15.61084,-15.57944" stroke="#8dd35f" fill="none"/>
            <circle stroke-width="0.5" id="svg_121" stroke="#0000ff" fill="#00ffff" r="2.26172" cy="4" cx="19.75"/>
            <circle id="svg_123" stroke-width="0.5" stroke="#0000ff" fill="#00ffff" r="2.26172" cy="19.40299" cx="4.0653"/>
            <circle id="svg_7" stroke-width="0.5" stroke="#0000ff" fill="#00ffff" r="2.26172" cy="11.625" cx="11.9375"/>
            <line stroke-linecap="round" id="svg_5" y2="14.46579" x2="9.66571" y1="4.02238" x1="9.7824" stroke-dasharray="null" stroke-width="2" stroke="#0000ff" fill="#0000ff"/>
            <line stroke-linecap="round" id="svg_4" y2="9.45264" x2="15.14996" y1="9.3943" x1="4.47318" stroke-dasharray="null" stroke-width="2" stroke="#0000ff" fill="#0000ff"/>
          </svg>
          </g>
          
          <g id="globe_link">
          <svg width="66" height="66" xmlns="http://www.w3.org/2000/svg">
           <defs>
            <radialGradient id="svg_8" spreadMethod="pad" cx="0.5" cy="0.32513">
             <stop stop-color="#7791ef" stop-opacity="0.99219" offset="0"/>
             <stop stop-color="#3c3cfc" offset="1"/>
            </radialGradient>
            <linearGradient id="svg_10" x1="0" y1="0" x2="1" y2="0">
             <stop offset="0" stop-color="#333333" stop-opacity="0.99609"/>
             <stop offset="1" stop-opacity="0.99609" stop-color="#666666"/>
            </linearGradient>
           </defs>
           <g>
            <g opacity="0.8" id="svg_5">
             <circle id="svg_1" r="27.90625" cy="33" cx="33" stroke-width="0" stroke="#AAAAAA" fill="url(#svg_8)"/>
             <g id="svg_7">
              <path d="m38.2478,36.06121c-0.43732,0 -0.87463,0 -1.31195,0c-0.43731,0 -0.87463,0 -2.6239,0c-0.87463,0 -1.74926,0 -2.18658,0c-0.43732,0 -2.19828,0.33684 -2.6239,0.43732c-0.95172,0.22467 -1.27098,0.48253 -1.74927,0.87463c-1.21939,0.99965 -1.44004,1.00272 -1.74926,1.31195c-0.30923,0.30923 -0.21265,0.79756 -0.43732,1.74926c-0.10048,0.42562 0.16736,0.90792 0,1.31195c-0.23668,0.57138 -0.43732,0.87463 -0.43732,1.74926c0,0.43732 0.12809,0.56541 0.43732,0.87463c0.30923,0.30923 0.12809,0.56541 0.43732,0.87463c0.30923,0.30923 1.32364,0.77415 1.74926,0.87463c0.95171,0.22467 0.69349,0.69349 1.31195,1.31195c0.30923,0.30923 0.90791,-0.16736 1.31195,0c0.57138,0.23668 0.56541,0.56541 0.87463,0.87463c0.30923,0.30923 0.56541,0.12809 0.87463,0.43732c0.61846,0.61846 -0.10048,1.32365 0,1.74926c0.22467,0.95171 0.43732,1.31195 0.43732,2.6239c0,0.87463 0,2.18658 0,3.06121c0,0.43732 0,1.31195 0,2.6239c0,0.43732 0.12809,1.00272 0.43732,1.31195c0.30922,0.30923 1.31195,0 1.74926,0c0.87463,0 1.31195,0 1.74927,0c0.43731,0 0.6065,-0.40129 1.74926,-0.87464c0.40403,-0.16736 0.74057,-0.20064 1.31195,-0.43732c0.40403,-0.16736 0.63795,-0.74057 0.87463,-1.31195c0.16736,-0.40403 0.15712,-2.20917 0.43732,-3.93585c0.22151,-1.36505 0.43732,-2.18658 0.43732,-2.6239c0,-0.43732 -0.12928,-0.88101 0,-2.18658c0.21973,-2.21904 0.43732,-3.49853 0.43732,-3.93585c0,-0.43732 0,-0.87463 0,-1.74927c0,-1.31195 0.16736,-1.78254 0,-2.18658c-0.23668,-0.57138 -1.00272,-0.56541 -1.31195,-0.87463c-0.30923,-0.30922 -0.43732,-0.43731 -1.74926,-1.74926l0,-0.87463l-0.43732,0l0,-0.43732" id="svg_2" stroke="#007f00" fill="#44b544" stroke-width="0"/>
              <path d="m5.66773,37.0452c1.12973,-0.3645 0.87463,-0.2187 1.74927,-0.656c0.87463,-0.4373 1.34081,-0.8211 2.18658,-1.3119c1.36372,-0.7915 1.44002,-1.4401 1.74922,-1.7493c0.3093,-0.3092 0.1281,-0.5654 0.4374,-0.8746c0.6184,-0.6185 0.8746,-0.4374 1.7492,-1.312c0.8747,-0.8746 1.0027,-1.0027 1.312,-1.3119c0.6184,-0.6185 0.1281,-1.0028 0.4373,-1.312c0.3092,-0.3092 0,-0.8746 0,-1.3119c0,-0.4374 0,-1.312 0,-1.7493c0,-0.4373 0.2009,-1.7727 0,-2.6239c-0.2247,-0.9517 -0.1281,-1.4401 -0.4373,-1.7493c-0.3093,-0.3092 -0.7073,-1.3452 -0.8746,-1.7492c-0.2367,-0.5714 -0.8747,-0.8747 -0.8747,-1.312c0,-0.4373 -0.4373,-0.4373 -0.4373,-0.8746l0,-0.4374l-1.2026,-0.8746c-3.7901,5.8674 -6.81486,11.6253 -5.79446,21.2099l-0.00001,0z" id="svg_3" stroke="#007f00" fill="#44b544" stroke-width="0"/>
              <path d="m52.2419,13.1021c-0.4373,0.4373 -1.3495,0.8398 -2.1866,1.0933c-3.0182,0.9138 -3.2212,2.2857 -3.4985,2.6239c-1.4137,1.7245 -2.4979,1.3039 -4.8105,1.7493c-0.4294,0.0827 -0.4373,0.4373 -0.8746,0.4373c-0.4373,0 -0.8746,0 -1.312,0c-0.4373,0 -1.3119,0 -1.7492,0c-0.4373,0 -1.3453,-0.27 -1.7493,-0.4373c-0.5714,-0.2367 -0.5654,-0.5654 -0.8746,-0.8747c-0.3092,-0.3092 -0.5654,-0.1281 -0.8746,-0.4373c-0.3093,-0.3092 -0.8747,0 -1.312,0c-0.4373,0 -0.9079,-0.1673 -1.3119,0c-0.5714,0.2367 -0.3033,1.0753 -0.8747,1.312c-0.404,0.1673 -0.1281,0.5654 -0.4373,0.8746c-0.3092,0.3092 -0.4373,0.4373 -0.4373,0.8746c0,0.4373 0,0.8747 0,1.312c0,0.4373 0.0333,0.7073 0.4373,0.8746c0.5714,0.2367 0.638,0.7406 0.8746,1.312c0.1674,0.404 0.4374,0.4373 0.4374,0.8746c0,0.4373 0,0.8746 0,1.3119c0,0.4374 -0.4374,0.4374 -0.8747,0.8747c-1.3119,1.3119 -1.9499,1.1779 -2.1865,1.7492c-0.1674,0.4041 -1.0753,0.3033 -1.312,0.8747c-0.1674,0.404 0,0.8746 0.4373,0.8746c0.4373,0 0.8746,0.4373 1.312,0.4373c0.4373,0 0.8746,-0.4373 1.3119,-0.4373c0.4373,0 0.5654,-0.1281 0.8746,-0.4373c0.6185,-0.6185 1.312,0 1.7493,0c0.4373,0 0.397,-0.6543 2.1866,-0.8747c0.434,-0.0534 2.8801,-0.2561 3.4985,-0.8746c0.3093,-0.3092 0.8343,-0.6543 2.6239,-0.8746c0.4341,-0.0535 0.8747,0 1.312,0c0.4373,0 0.8746,0.4373 0.8746,0.8746c0,0.4373 0.4373,0.4373 0.4373,0.8746c0,0.4374 0.5654,2.3147 0.8746,2.6239c0.3093,0.3093 0.1281,1.0028 0.4374,1.312c0.3092,0.3092 2.1095,2.8366 3.0612,3.0612c0.4256,0.1005 0.8215,0.2158 2.1866,0.4373c0.4316,0.0701 1.3119,0 1.7492,0c0.4373,0 0.8864,0.1005 1.312,0c0.9517,-0.2246 1.44,-0.5654 1.7492,-0.8746c0.3093,-0.3092 0.8747,-0.4373 1.312,-0.4373c0.4373,0 0.5654,-0.5654 0.8746,-0.8746c0.3092,-0.3093 0.8746,0 1.312,0l1.0933,-0.656c1.1661,-7.7259 -2.4782,-14.1399 -7.6531,-20.5539l0,0z" id="svg_4" stroke="#007f00" fill="#44b544" stroke-width="0"/>
              <path id="svg_6" d="m10.0409,48.3061c2.1137,-0.2187 4.6647,-0.2187 6.3411,1.9679c1.1662,1.5306 1.239,3.7172 0.2186,4.5918c-2.4052,-0.8746 -5.0291,-2.6239 -6.5597,-6.5597l0,0z" stroke="#007f00" fill="#44b544" stroke-width="0"/>
             </g>
            </g>
            <rect transform="rotate(45, 16.9336, 16.9375)" ry="9" rx="9" id="svg_9" height="19.32339" width="29.34293" y="7.27574" x="2.26257" stroke-width="5" stroke="url(#svg_10)" fill="none" stroke-linecap="round"/>
            <rect id="svg_11" transform="rotate(45, 49.0664, 49.0625)" ry="9" rx="9" height="19.32339" width="29.34293" y="39.40074" x="34.39538" stroke-width="5" stroke="url(#svg_10)" fill="none" stroke-linecap="round"/>
            <line id="svg_12" y2="45.75" x2="45.75" y1="20.25" x1="20.25" stroke-linecap="round" stroke-width="5" stroke="url(#svg_10)" fill="none"/>
           </g>
          </svg>
          </g>
          
          <g id="svg_eof"/>
          
          </svg>
          
        • text.svg
          <?xml version="1.0" encoding="UTF-8" standalone="no"?>
          <!-- Created with Inkscape (http://www.inkscape.org/) -->
          <svg
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:cc="http://web.resource.org/cc/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:svg="http://www.w3.org/2000/svg"
             xmlns="http://www.w3.org/2000/svg"
             xmlns:xlink="http://www.w3.org/1999/xlink"
             xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
             xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
             width="22.000000px"
             height="22.000000px"
             id="svg1306"
             sodipodi:version="0.32"
             inkscape:version="0.42.2"
             sodipodi:docbase="/home/andreas/projekt/bild/tango/22"
             sodipodi:docname="draw-text2.svg">
            <defs
               id="defs1308">
              <linearGradient
                 id="linearGradient3682">
                <stop
                   style="stop-color:#1f1f1f;stop-opacity:1.0000000;"
                   offset="0.0000000"
                   id="stop3684" />
                <stop
                   style="stop-color:#5c5c5c;stop-opacity:1.0000000;"
                   offset="1.0000000"
                   id="stop3686" />
              </linearGradient>
              <linearGradient
                 inkscape:collect="always"
                 id="linearGradient3558">
                <stop
                   style="stop-color:#000000;stop-opacity:1;"
                   offset="0"
                   id="stop3560" />
                <stop
                   style="stop-color:#000000;stop-opacity:0;"
                   offset="1"
                   id="stop3562" />
              </linearGradient>
              <radialGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient3558"
                 id="radialGradient3564"
                 cx="22.571428"
                 cy="30.857143"
                 fx="22.571428"
                 fy="30.857143"
                 r="15.571428"
                 gradientTransform="matrix(1.000000,0.000000,0.000000,0.651376,4.300378e-15,10.75754)"
                 gradientUnits="userSpaceOnUse" />
              <linearGradient
                 id="linearGradient2834">
                <stop
                   style="stop-color:#ffffff;stop-opacity:1;"
                   offset="0"
                   id="stop2836" />
                <stop
                   style="stop-color:#b3b3b3;stop-opacity:0.0000000;"
                   offset="1.0000000"
                   id="stop2838" />
              </linearGradient>
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient2834"
                 id="linearGradient2840"
                 x1="19.944447"
                 y1="16.527262"
                 x2="24.133829"
                 y2="19.642126"
                 gradientUnits="userSpaceOnUse"
                 gradientTransform="matrix(0.498259,0.000000,0.000000,0.466519,-0.799974,-0.839637)" />
              <linearGradient
                 inkscape:collect="always"
                 xlink:href="#linearGradient3682"
                 id="linearGradient3688"
                 x1="23.305620"
                 y1="24.843527"
                 x2="14.388516"
                 y2="9.5902243"
                 gradientUnits="userSpaceOnUse"
                 gradientTransform="matrix(0.498259,0.000000,0.000000,0.488600,-0.799974,-1.273557)" />
            </defs>
            <sodipodi:namedview
               id="base"
               pagecolor="#ffffff"
               bordercolor="#666666"
               borderopacity="1.0"
               inkscape:pageopacity="0.0"
               inkscape:pageshadow="2"
               inkscape:zoom="14.000000"
               inkscape:cx="17.541947"
               inkscape:cy="12.572768"
               inkscape:current-layer="layer1"
               showgrid="false"
               inkscape:grid-bbox="true"
               inkscape:document-units="px"
               showguides="true"
               inkscape:guide-bbox="true"
               inkscape:window-width="1280"
               inkscape:window-height="885"
               inkscape:window-x="0"
               inkscape:window-y="25" />
            <metadata
               id="metadata1311">
              <rdf:RDF>
                <cc:Work
                   rdf:about="">
                  <dc:format>image/svg+xml</dc:format>
                  <dc:type
                     rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
                  <dc:title></dc:title>
                </cc:Work>
              </rdf:RDF>
            </metadata>
            <g
               id="layer1"
               inkscape:label="Layer 1"
               inkscape:groupmode="layer">
              <path
                 sodipodi:type="arc"
                 style="opacity:0.47368422;color:#000000;fill:url(#radialGradient3564);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
                 id="path3556"
                 sodipodi:cx="22.571428"
                 sodipodi:cy="30.857143"
                 sodipodi:rx="15.571428"
                 sodipodi:ry="10.142858"
                 d="M 38.142857 30.857143 A 15.571428 10.142858 0 1 1  7.0000000,30.857143 A 15.571428 10.142858 0 1 1  38.142857 30.857143 z"
                 transform="matrix(0.706422,0.000000,0.000000,0.208015,-4.944952,13.47138)" />
              <path
                 style="font-size:54.869392px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125.00000%;writing-mode:lr-tb;text-anchor:start;fill:url(#linearGradient3688);fill-opacity:1.0000000;stroke:#000000;stroke-width:1.0000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
                 d="M 15.189363,15.520771 L 7.1531447,15.520771 L 5.8598048,19.513834 L 0.51627279,19.513834 L 8.1009381,0.48837876 L 14.228221,0.48837876 L 21.560524,19.464779 L 16.444188,19.464779 L 15.189363,15.520771 M 8.3990779,12.473977 L 13.858901,12.473977 L 11.171254,5.1526958 L 8.3990779,12.473977"
                 id="text1314"
                 sodipodi:nodetypes="ccccccccccccc" />
              <path
                 style="font-size:54.869392px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125.00000%;writing-mode:lr-tb;text-anchor:start;opacity:0.37912086;fill:none;fill-opacity:1.0000000;stroke:url(#linearGradient2840);stroke-width:1.0000008;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
                 d="M 15.684541,15.159554 L 6.6710758,15.159554 L 5.4166733,18.527305 L 2.0035414,18.527305 L 8.7384662,1.4621947 L 13.512484,1.4621947 L 20.022564,18.410463 L 16.899702,18.410463 L 15.684541,15.159554 z "
                 id="path2047"
                 sodipodi:nodetypes="ccccccccc" />
              <image
                 id="image2089"
                 height="459.00000"
                 width="400.00000"
                 sodipodi:absref="/home/andreas/palette2.png"
                 xlink:href="/home/andreas/palette2.png"
                 x="-354.93631"
                 y="-214.53793" />
              <path
                 style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#999999;stroke-width:1.0000007;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000;opacity:0.51098901"
                 d="M 8.1686844,13.551882 L 14.147791,13.551882"
                 id="path5142"
                 sodipodi:nodetypes="cc" />
            </g>
          </svg>
          
      • jgraduate
        • css
          • jPicker.css
            .jPicker .Icon{display:inline-block;height:24px;position:relative;text-align:left;width:25px}.jPicker .Icon span.Color,.jPicker .Icon span.Alpha{background-position:2px 2px;display:block;height:100%;left:0;position:absolute;top:0;width:100%}.jPicker .Icon span.Image{background-repeat:no-repeat;cursor:pointer;display:block;height:100%;left:0;position:absolute;top:0;width:100%}.jPicker.Container{z-index:10}table.jPicker{background-color:#efefef;border:1px outset #666;font-family:Arial,Helvetica,Sans-Serif;font-size:12px!important;margin:0;padding:5px;width:545px;z-index:20}.jPicker .Move{background-color:#ddd;border-color:#fff #666 #666 #fff;border-style:solid;border-width:1px;cursor:move;height:12px;padding:0}.jPicker .Title{font-size:11px!important;font-weight:bold;margin:-2px 0 0 0;padding:0;text-align:center;width:100%}.jPicker div.Map{border-bottom:2px solid #fff;border-left:2px solid #9a9a9a;border-right:2px solid #fff;border-top:2px solid #9a9a9a;cursor:crosshair;height:260px;margin:0 5px 0 5px;overflow:hidden;padding:0;position:relative;width:260px}.jPicker div[class="Map"]{height:256px;width:256px}.jPicker div.Bar{border-bottom:2px solid #fff;border-left:2px solid #9a9a9a;border-right:2px solid #fff;border-top:2px solid #9a9a9a;cursor:n-resize;height:260px;margin:12px 10px 0 5px;overflow:hidden;padding:0;position:relative;width:24px}.jPicker div[class="Bar"]{height:256px;width:20px}.jPicker .Map .Map1,.jPicker .Map .Map2,.jPicker .Map .Map3,.jPicker .Bar .Map1,.jPicker .Bar .Map2,.jPicker .Bar .Map3,.jPicker .Bar .Map4,.jPicker .Bar .Map5,.jPicker .Bar .Map6{background-color:transparent;background-image:none;display:block;left:0;position:absolute;top:0}.jPicker .Map .Map1,.jPicker .Map .Map2,.jPicker .Map .Map3{height:2596px;width:256px}.jPicker .Bar .Map1,.jPicker .Bar .Map2,.jPicker .Bar .Map3,.jPicker .Bar .Map4{height:3896px;width:20px}.jPicker .Bar .Map5,.jPicker .Bar .Map6{height:256px;width:20px}.jPicker .Map .Map1,.jPicker .Map .Map2,.jPicker .Bar .Map6{background-repeat:no-repeat}.jPicker .Map .Map3,.jPicker .Bar .Map5{background-repeat:repeat}.jPicker .Bar .Map1,.jPicker .Bar .Map2,.jPicker .Bar .Map3,.jPicker .Bar .Map4{background-repeat:repeat-x}.jPicker .Map .Arrow{display:block;position:absolute}.jPicker .Bar .Arrow{display:block;left:0;position:absolute}.jPicker .Preview{font-size:9px;text-align:center}.jPicker .Preview div{border:2px inset #eee;height:62px;margin:0 auto;padding:0;width:62px}.jPicker .Preview div span{border:1px solid #000;display:block;height:30px;margin:0 auto;padding:0;width:60px}.jPicker .Preview .Active{border-bottom-width:0}.jPicker .Preview .Current{border-top-width:0;cursor:pointer}.jPicker .Button{text-align:center;width:115px}.jPicker .Button input{width:100px}.jPicker .Button .Ok{margin:12px 0 5px 0}.jPicker td.Radio{margin:0;padding:0;width:31px}.jPicker td.Radio input{margin:0 5px 0 0;padding:0}.jPicker td.Text{font-size:12px!important;height:22px;margin:0;padding:0;text-align:left;width:70px}.jPicker tr.Hex td.Text{width:100px}.jPicker td.Text input{background-color:#fff;border:1px inset #aaa;height:19px;margin:0 0 0 5px;text-align:left;width:30px}.jPicker td[class="Text"] input{height:15px}.jPicker tr.Hex td.Text input.Hex{width:50px}.jPicker tr.Hex td.Text input.AHex{width:20px}.jPicker .Grid{text-align:center;width:114px}.jPicker .Grid span.QuickColor{border:1px inset #aaa;cursor:pointer;display:inline-block;height:15px;line-height:15px;margin:0;padding:0;width:19px}.jPicker .Grid span[class="QuickColor"]{width:17px}
          • jgraduate.css
            /* 
             * jGraduate Default CSS
             * 
             * Copyright (c) 2010 Jeff Schiller
             * http://blog.codedread.com/
             *
             * Copyright (c) 2010 Alexis Deveria
             * http://a.deveria.com/
             *
             * Licensed under the MIT License
             */
            
            h2.jGraduate_Title {
              font-family: Arial, Helvetica, Sans-Serif;
              font-size: 11px !important;
              font-weight: bold;
              margin: -13px 0px 0px 0px;
              padding: 0px;
              text-align: center;
            }
            
            .jGraduate_Picker {
            	font-family: Arial, Helvetica, Sans-Serif;
            	font-size: 12px;
            	border-style: solid;
            	border-color: lightgrey black black lightgrey;
            	border-width: 1px;
            	background-color: #EFEFEF;
            	position: absolute;
            	padding: 10px;
            }
            
            .jGraduate_tabs li {
            	background-color: #ccc;
            	display: inline;
            	border: solid 1px grey;
            	padding: 3px;
            	margin: 2px;
            	cursor: pointer;
            }
            
            li.jGraduate_tab_current {
            	background-color: #EFEFEF;
            	display: inline;
            	padding: 3px;
            	margin: 2px;
            	border: solid 1px black;
            	cursor: pointer;
            }
            
            .jGraduate_colPick {
            	display: none;
            }
            
            .jGraduate_gradPick {	
            	display: none;
            	border: outset 1px #666;
            	padding: 10px 7px 5px 5px;
            	overflow: auto;
            }
            
            .jGraduate_gradPick {	
            	display: none;
            	border: outset 1px #666;
            	padding: 10px 7px 5px 5px;
            	overflow: auto;
            /*	position: relative;*/
            }
            
            .jGraduate_tabs {
            	position: relative;
            	background-color: #EFEFEF;
            	padding: 0px;
            	margin: 0px;
            	margin-bottom: 5px;
            }
            
            div.jGraduate_Swatch {
            	float: left;
            	margin: 8px;
            }
            div.jGraduate_GradContainer {
            	border: 2px inset #EEE;
            	background-image: url(../images/map-opacity.png); 
            	background-position: 0px 0px;
            	height: 256px;
            	width: 256px;
            	position: relative;
            }
            
            div.jGraduate_GradContainer div.grad_coord {
            	background: #000;
            	border: 1px solid #fff;
            	border-radius: 5px;
            	-moz-border-radius: 5px;
            	width: 10px;
            	height: 10px;
            	position: absolute;
            	margin: -5px -5px;
            	top: 0;
            	left: 0;
            	text-align: center;
            	font-size: xx-small;
            	line-height: 10px;
            	color: #fff;
            	text-decoration: none;
            	cursor: pointer;
            	-moz-user-select: none;
            	-webkit-user-select: none;
            }
            
            .jGraduate_AlphaArrows {
            	position: absolute;
            	margin-top: -10px;
            	margin-left: 250.5px;
            }
            
            div.jGraduate_Opacity {
            	border: 2px inset #eee;
            	margin-top: 14px;
            	background-color: black;
            	background-image: url(../images/Maps.png);
            	background-position: 0px -2816px;
            	height: 20px;
            	cursor: ew-resize;
            }
            
            div.jGraduate_StopSlider {
            /*	border: 2px inset #eee;*/
            	margin: 0 0 0 -10px;
            	width: 276px;
            	overflow: visible;
            	background: #efefef;
            	height: 45px;
            	cursor: pointer;
            }
            
            div.jGraduate_StopSection {
            	width: 120px;
            	text-align: center;
            }
            
            
            
            
            input.jGraduate_Ok, input.jGraduate_Cancel {
            	display: block;
            	width: 100px;
            	margin-left: -4px;
            	margin-right: -4px;
            }
            input.jGraduate_Ok {
            	margin: 9px -4px 5px -4px;
            }
            
            .colorBox {
            	float: left;
            	height: 16px;
            	width: 16px;
            	border: 1px solid #808080;
            	cursor: pointer;
            	margin: 4px 4px 4px 30px;
            }
            
            .colorBox + label {
            	float: left;
            	margin-top: 7px;
            }
            
            label.jGraduate_Form_Heading {
            	position: relative;
            	top: 10px;
            	background-color: #EFEFEF;
            	padding: 2px;
            	font-weight: bold;
            	font-size: 13px;
            }
            
            div.jGraduate_Form_Section {
            	border-style: solid;
            	border-width: 1px;
            	border-color: grey;
            	-moz-border-radius: 5px;
            	-webkit-border-radius: 5px;
            	padding: 15px 5px 5px 5px;
            	margin: 5px 2px;
            	width: 110px;
            	text-align: center;
            	overflow: auto;
            }
            
            div.jGraduate_Form_Section label {
            	padding: 0 2px;
            }
            
            div.jGraduate_StopSection input[type=text],
            div.jGraduate_Slider input[type=text] {
            	width: 33px;
            }
            
            div.jGraduate_LightBox {
            	position: fixed;
            	top: 0px;
            	left: 0px;
            	right: 0px;
            	bottom: 0px;
            	background-color: #000;
            	opacity: 0.5;
            	display: none;
            }
            
            div.jGraduate_stopPicker {
            	position: absolute;
            	display: none;
            	background: #E8E8E8;
            }
            
            
            .jGraduate_gradPick {
            	width: 535px;
            }
            
            .jGraduate_gradPick div.jGraduate_OpacField {
            
            	position: absolute;
            	left: 0;
            	bottom: 5px;
            /*
            	width: 270px;
            
            	left: 284px;
            	width: 266px;
            	height: 200px;
            	top: 167px;
            	margin: -3px 3px 0px 4px;
            */
            }
            
            .jGraduate_gradPick .jGraduate_Form {
            	float: left;
            	width: 270px;
            	position: absolute;
            	left: 284px;
            	width: 266px;
            	height: 200px;
            	top: 167px;
            	margin: -3px 3px 0px 10px;
            }
            
            .jGraduate_gradPick .jGraduate_Points {
            	position: static;
            	width: 150px;
            	margin-left: 0;
            }
            
            .jGraduate_SpreadMethod {
            	position: absolute;
            	right: 8px;
            	top: 100px;
            }
            
            .jGraduate_Colorblocks {
            	display: table;
            	border-spacing: 0 5px;
            }
            
            .jGraduate_colorblock {
            	display: table-row;
            }
            
            .jGraduate_Colorblocks .jGraduate_colorblock > * {
            	display: table-cell;
            	vertical-align: middle;
            	margin: 0;
            	float: none;
            }
            
            .jGraduate_gradPick div.jGraduate_StopSection {
            	float: left;
            	width: 133px;
            	margin-top: -8px;
            }
            
            
            .jGraduate_gradPick .jGraduate_Form_Section {
            	padding-top: 9px;
            }
            
            
            .jGraduate_Slider {
            	text-align: center;
            	float: left;
            	width: 100%;
            }
            
            .jGraduate_Slider .jGraduate_Form_Section {
            	border: none;
            	width: 250px;
            	padding: 0 2px;
            	overflow: visible;
            }
            
            .jGraduate_Slider label {
            	display: inline-block;
            	float: left;
            	line-height: 50px;
            	padding: 0;
            }
            
            .jGraduate_Slider label.prelabel {
            	width: 40px;
            	text-align: left;
            }
            
            .jGraduate_SliderBar {
            	width: 140px;
            	float: left;
            	margin-right: 5px;
            	border:1px solid #BBB;
            	height:20px;
            	margin-top:14px;
            	margin-left:5px;
            	position: relative;
            }
            
            div.jGraduate_Slider input {
            	margin-top: 5px;
            }
            
            div.jGraduate_Slider img {
            	top: 0;
            	left: 0;
            	position: absolute;
            	margin-top: -10px;
            	cursor:ew-resize;
            }
            
            
            .jGraduate_gradPick .jGraduate_OkCancel {
            	position: absolute;
            	top: 39px;
            	right: 10px;
            	width: 113px;
            
            }
            
            .jGraduate_OpacField {
            	position: absolute;
            	right: -10px;
            	bottom: 0;
            }
        • LICENSE
                                           Apache License
                                     Version 2.0, January 2004
                                  http://www.apache.org/licenses/
          
             TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
          
             1. Definitions.
          
                "License" shall mean the terms and conditions for use, reproduction,
                and distribution as defined by Sections 1 through 9 of this document.
          
                "Licensor" shall mean the copyright owner or entity authorized by
                the copyright owner that is granting the License.
          
                "Legal Entity" shall mean the union of the acting entity and all
                other entities that control, are controlled by, or are under common
                control with that entity. For the purposes of this definition,
                "control" means (i) the power, direct or indirect, to cause the
                direction or management of such entity, whether by contract or
                otherwise, or (ii) ownership of fifty percent (50%) or more of the
                outstanding shares, or (iii) beneficial ownership of such entity.
          
                "You" (or "Your") shall mean an individual or Legal Entity
                exercising permissions granted by this License.
          
                "Source" form shall mean the preferred form for making modifications,
                including but not limited to software source code, documentation
                source, and configuration files.
          
                "Object" form shall mean any form resulting from mechanical
                transformation or translation of a Source form, including but
                not limited to compiled object code, generated documentation,
                and conversions to other media types.
          
                "Work" shall mean the work of authorship, whether in Source or
                Object form, made available under the License, as indicated by a
                copyright notice that is included in or attached to the work
                (an example is provided in the Appendix below).
          
                "Derivative Works" shall mean any work, whether in Source or Object
                form, that is based on (or derived from) the Work and for which the
                editorial revisions, annotations, elaborations, or other modifications
                represent, as a whole, an original work of authorship. For the purposes
                of this License, Derivative Works shall not include works that remain
                separable from, or merely link (or bind by name) to the interfaces of,
                the Work and Derivative Works thereof.
          
                "Contribution" shall mean any work of authorship, including
                the original version of the Work and any modifications or additions
                to that Work or Derivative Works thereof, that is intentionally
                submitted to Licensor for inclusion in the Work by the copyright owner
                or by an individual or Legal Entity authorized to submit on behalf of
                the copyright owner. For the purposes of this definition, "submitted"
                means any form of electronic, verbal, or written communication sent
                to the Licensor or its representatives, including but not limited to
                communication on electronic mailing lists, source code control systems,
                and issue tracking systems that are managed by, or on behalf of, the
                Licensor for the purpose of discussing and improving the Work, but
                excluding communication that is conspicuously marked or otherwise
                designated in writing by the copyright owner as "Not a Contribution."
          
                "Contributor" shall mean Licensor and any individual or Legal Entity
                on behalf of whom a Contribution has been received by Licensor and
                subsequently incorporated within the Work.
          
             2. Grant of Copyright License. Subject to the terms and conditions of
                this License, each Contributor hereby grants to You a perpetual,
                worldwide, non-exclusive, no-charge, royalty-free, irrevocable
                copyright license to reproduce, prepare Derivative Works of,
                publicly display, publicly perform, sublicense, and distribute the
                Work and such Derivative Works in Source or Object form.
          
             3. Grant of Patent License. Subject to the terms and conditions of
                this License, each Contributor hereby grants to You a perpetual,
                worldwide, non-exclusive, no-charge, royalty-free, irrevocable
                (except as stated in this section) patent license to make, have made,
                use, offer to sell, sell, import, and otherwise transfer the Work,
                where such license applies only to those patent claims licensable
                by such Contributor that are necessarily infringed by their
                Contribution(s) alone or by combination of their Contribution(s)
                with the Work to which such Contribution(s) was submitted. If You
                institute patent litigation against any entity (including a
                cross-claim or counterclaim in a lawsuit) alleging that the Work
                or a Contribution incorporated within the Work constitutes direct
                or contributory patent infringement, then any patent licenses
                granted to You under this License for that Work shall terminate
                as of the date such litigation is filed.
          
             4. Redistribution. You may reproduce and distribute copies of the
                Work or Derivative Works thereof in any medium, with or without
                modifications, and in Source or Object form, provided that You
                meet the following conditions:
          
                (a) You must give any other recipients of the Work or
                    Derivative Works a copy of this License; and
          
                (b) You must cause any modified files to carry prominent notices
                    stating that You changed the files; and
          
                (c) You must retain, in the Source form of any Derivative Works
                    that You distribute, all copyright, patent, trademark, and
                    attribution notices from the Source form of the Work,
                    excluding those notices that do not pertain to any part of
                    the Derivative Works; and
          
                (d) If the Work includes a "NOTICE" text file as part of its
                    distribution, then any Derivative Works that You distribute must
                    include a readable copy of the attribution notices contained
                    within such NOTICE file, excluding those notices that do not
                    pertain to any part of the Derivative Works, in at least one
                    of the following places: within a NOTICE text file distributed
                    as part of the Derivative Works; within the Source form or
                    documentation, if provided along with the Derivative Works; or,
                    within a display generated by the Derivative Works, if and
                    wherever such third-party notices normally appear. The contents
                    of the NOTICE file are for informational purposes only and
                    do not modify the License. You may add Your own attribution
                    notices within Derivative Works that You distribute, alongside
                    or as an addendum to the NOTICE text from the Work, provided
                    that such additional attribution notices cannot be construed
                    as modifying the License.
          
                You may add Your own copyright statement to Your modifications and
                may provide additional or different license terms and conditions
                for use, reproduction, or distribution of Your modifications, or
                for any such Derivative Works as a whole, provided Your use,
                reproduction, and distribution of the Work otherwise complies with
                the conditions stated in this License.
          
             5. Submission of Contributions. Unless You explicitly state otherwise,
                any Contribution intentionally submitted for inclusion in the Work
                by You to the Licensor shall be under the terms and conditions of
                this License, without any additional terms or conditions.
                Notwithstanding the above, nothing herein shall supersede or modify
                the terms of any separate license agreement you may have executed
                with Licensor regarding such Contributions.
          
             6. Trademarks. This License does not grant permission to use the trade
                names, trademarks, service marks, or product names of the Licensor,
                except as required for reasonable and customary use in describing the
                origin of the Work and reproducing the content of the NOTICE file.
          
             7. Disclaimer of Warranty. Unless required by applicable law or
                agreed to in writing, Licensor provides the Work (and each
                Contributor provides its Contributions) on an "AS IS" BASIS,
                WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
                implied, including, without limitation, any warranties or conditions
                of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
                PARTICULAR PURPOSE. You are solely responsible for determining the
                appropriateness of using or redistributing the Work and assume any
                risks associated with Your exercise of permissions under this License.
          
             8. Limitation of Liability. In no event and under no legal theory,
                whether in tort (including negligence), contract, or otherwise,
                unless required by applicable law (such as deliberate and grossly
                negligent acts) or agreed to in writing, shall any Contributor be
                liable to You for damages, including any direct, indirect, special,
                incidental, or consequential damages of any character arising as a
                result of this License or out of the use or inability to use the
                Work (including but not limited to damages for loss of goodwill,
                work stoppage, computer failure or malfunction, or any and all
                other commercial damages or losses), even if such Contributor
                has been advised of the possibility of such damages.
          
             9. Accepting Warranty or Additional Liability. While redistributing
                the Work or Derivative Works thereof, You may choose to offer,
                and charge a fee for, acceptance of support, warranty, indemnity,
                or other liability obligations and/or rights consistent with this
                License. However, in accepting such obligations, You may act only
                on Your own behalf and on Your sole responsibility, not on behalf
                of any other Contributor, and only if You agree to indemnify,
                defend, and hold each Contributor harmless for any liability
                incurred by, or claims asserted against, such Contributor by reason
                of your accepting any such warranty or additional liability.
          
             END OF TERMS AND CONDITIONS
          
             APPENDIX: How to apply the Apache License to your work.
          
                To apply the Apache License to your work, attach the following
                boilerplate notice, with the fields enclosed by brackets "[]"
                replaced with your own identifying information. (Don't include
                the brackets!)  The text should be enclosed in the appropriate
                comment syntax for the file format. We also recommend that a
                file or class name and description of purpose be included on the
                same "printed page" as the copyright notice for easier
                identification within third-party archives.
          
             Copyright [yyyy] [name of copyright owner]
          
             Licensed under the Apache License, Version 2.0 (the "License");
             you may not use this file except in compliance with the License.
             You may obtain a copy of the License at
          
                 http://www.apache.org/licenses/LICENSE-2.0
          
             Unless required by applicable law or agreed to in writing, software
             distributed under the License is distributed on an "AS IS" BASIS,
             WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
             See the License for the specific language governing permissions and
             limitations under the License.
          
        • jpicker.js
          /*
           * jPicker 1.1.6
           *
           * jQuery Plugin for Photoshop style color picker
           *
           * Copyright (c) 2010 Christopher T. Tillman
           * Digital Magic Productions, Inc. (http://www.digitalmagicpro.com/)
           * MIT style license, FREE to use, alter, copy, sell, and especially ENHANCE
           *
           * Painstakingly ported from John Dyers' excellent work on his own color picker based on the Prototype framework.
           *
           * John Dyers' website: (http://johndyer.name)
           * Color Picker page:   (http://johndyer.name/post/2007/09/PhotoShop-like-JavaScript-Color-Picker.aspx)
           *
           */
          (function($, version)
          {
            Math.precision = function(value, precision)
              {
                if (precision === undefined) precision = 0;
                return Math.round(value * Math.pow(10, precision)) / Math.pow(10, precision);
              };
            var Slider = // encapsulate slider functionality for the ColorMap and ColorBar - could be useful to use a jQuery UI draggable for this with certain extensions
                function(bar, options)
                {
                  var $this = this, // private properties, methods, and events - keep these variables and classes invisible to outside code
                    arrow = bar.find('img:first'), // the arrow image to drag
                    minX = 0,
                    maxX = 100,
                    rangeX = 100,
                    minY = 0,
                    maxY = 100,
                    rangeY = 100,
                    x = 0,
                    y = 0,
                    offset,
                    timeout,
                    changeEvents = new Array(),
                    fireChangeEvents =
                      function(context)
                      {
                        for (var i = 0; i < changeEvents.length; i++) changeEvents[i].call($this, $this, context);
                      },
                    mouseDown = // bind the mousedown to the bar not the arrow for quick snapping to the clicked location
                      function(e)
                      {
                        var off = bar.offset();
                        offset = { l: off.left | 0, t: off.top | 0 };
                        clearTimeout(timeout);
                        timeout = setTimeout( // using setTimeout for visual updates - once the style is updated the browser will re-render internally allowing the next Javascript to run
                          function()
                          {
                            setValuesFromMousePosition.call($this, e);
                          }, 0);
                        // Bind mousemove and mouseup event to the document so it responds when dragged of of the bar - we will unbind these when on mouseup to save processing
                        $(document).bind('mousemove', mouseMove).bind('mouseup', mouseUp);
                        e.preventDefault(); // don't try to select anything or drag the image to the desktop
                      },
                    mouseMove = // set the values as the mouse moves
                      function(e)
                      {
                        clearTimeout(timeout);
                        timeout = setTimeout(
                          function()
                          {
                            setValuesFromMousePosition.call($this, e);
                          }, 0);
                        e.stopPropagation();
                        e.preventDefault();
                        return false;
                      },
                    mouseUp = // unbind the document events - they aren't needed when not dragging
                      function(e)
                      {
                        $(document).unbind('mouseup', mouseUp).unbind('mousemove', mouseMove);
                        e.stopPropagation();
                        e.preventDefault();
                        return false;
                      },
                    setValuesFromMousePosition = // calculate mouse position and set value within the current range
                      function(e)
                      {
                        var locX = e.pageX - offset.l,
                            locY = e.pageY - offset.t,
                            barW = bar.w, // local copies for YUI compressor
                            barH = bar.h;
                        // keep the arrow within the bounds of the bar
                        if (locX < 0) locX = 0;
                        else if (locX > barW) locX = barW;
                        if (locY < 0) locY = 0;
                        else if (locY > barH) locY = barH;
                        val.call($this, 'xy', { x: ((locX / barW) * rangeX) + minX, y: ((locY / barH) * rangeY) + minY });
                      },
                    draw =
                      function()
                      {
                        var arrowOffsetX = 0,
                          arrowOffsetY = 0,
                          barW = bar.w,
                          barH = bar.h,
                          arrowW = arrow.w,
                          arrowH = arrow.h;
                        setTimeout(
                          function()
                          {
                            if (rangeX > 0) // range is greater than zero
                            {
                              // constrain to bounds
                              if (x == maxX) arrowOffsetX = barW;
                              else arrowOffsetX = ((x / rangeX) * barW) | 0;
                            }
                            if (rangeY > 0) // range is greater than zero
                            {
                              // constrain to bounds
                              if (y == maxY) arrowOffsetY = barH;
                              else arrowOffsetY = ((y / rangeY) * barH) | 0;
                            }
                            // if arrow width is greater than bar width, center arrow and prevent horizontal dragging
                            if (arrowW >= barW) arrowOffsetX = (barW >> 1) - (arrowW >> 1); // number >> 1 - superfast bitwise divide by two and truncate (move bits over one bit discarding lowest)
                            else arrowOffsetX -= arrowW >> 1;
                            // if arrow height is greater than bar height, center arrow and prevent vertical dragging
                            if (arrowH >= barH) arrowOffsetY = (barH >> 1) - (arrowH >> 1);
                            else arrowOffsetY -= arrowH >> 1;
                            // set the arrow position based on these offsets
                            arrow.css({ left: arrowOffsetX + 'px', top: arrowOffsetY + 'px' });
                          }, 0);
                      },
                    val =
                      function(name, value, context)
                      {
                        var set = value !== undefined;
                        if (!set)
                        {
                          if (name === undefined || name == null) name = 'xy';
                          switch (name.toLowerCase())
                          {
                            case 'x': return x;
                            case 'y': return y;
                            case 'xy':
                            default: return { x: x, y: y };
                          }
                        }
                        if (context != null && context == $this) return;
                        var changed = false,
                            newX,
                            newY;
                        if (name == null) name = 'xy';
                        switch (name.toLowerCase())
                        {
                          case 'x':
                            newX = value && (value.x && value.x | 0 || value | 0) || 0;
                            break;
                          case 'y':
                            newY = value && (value.y && value.y | 0 || value | 0) || 0;
                            break;
                          case 'xy':
                          default:
                            newX = value && value.x && value.x | 0 || 0;
                            newY = value && value.y && value.y | 0 || 0;
                            break;
                        }
                        if (newX != null)
                        {
                          if (newX < minX) newX = minX;
                          else if (newX > maxX) newX = maxX;
                          if (x != newX)
                          {
                            x = newX;
                            changed = true;
                          }
                        }
                        if (newY != null)
                        {
                          if (newY < minY) newY = minY;
                          else if (newY > maxY) newY = maxY;
                          if (y != newY)
                          {
                            y = newY;
                            changed = true;
                          }
                        }
                        changed && fireChangeEvents.call($this, context || $this);
                      },
                    range =
                      function (name, value)
                      {
                        var set = value !== undefined;
                        if (!set)
                        {
                          if (name === undefined || name == null) name = 'all';
                          switch (name.toLowerCase())
                          {
                            case 'minx': return minX;
                            case 'maxx': return maxX;
                            case 'rangex': return { minX: minX, maxX: maxX, rangeX: rangeX };
                            case 'miny': return minY;
                            case 'maxy': return maxY;
                            case 'rangey': return { minY: minY, maxY: maxY, rangeY: rangeY };
                            case 'all':
                            default: return { minX: minX, maxX: maxX, rangeX: rangeX, minY: minY, maxY: maxY, rangeY: rangeY };
                          }
                        }
                        var changed = false,
                            newMinX,
                            newMaxX,
                            newMinY,
                            newMaxY;
                        if (name == null) name = 'all';
                        switch (name.toLowerCase())
                        {
                          case 'minx':
                            newMinX = value && (value.minX && value.minX | 0 || value | 0) || 0;
                            break;
                          case 'maxx':
                            newMaxX = value && (value.maxX && value.maxX | 0 || value | 0) || 0;
                            break;
                          case 'rangex':
                            newMinX = value && value.minX && value.minX | 0 || 0;
                            newMaxX = value && value.maxX && value.maxX | 0 || 0;
                            break;
                          case 'miny':
                            newMinY = value && (value.minY && value.minY | 0 || value | 0) || 0;
                            break;
                          case 'maxy':
                            newMaxY = value && (value.maxY && value.maxY | 0 || value | 0) || 0;
                            break;
                          case 'rangey':
                            newMinY = value && value.minY && value.minY | 0 || 0;
                            newMaxY = value && value.maxY && value.maxY | 0 || 0;
                            break;
                          case 'all':
                          default:
                            newMinX = value && value.minX && value.minX | 0 || 0;
                            newMaxX = value && value.maxX && value.maxX | 0 || 0;
                            newMinY = value && value.minY && value.minY | 0 || 0;
                            newMaxY = value && value.maxY && value.maxY | 0 || 0;
                            break;
                        }
                        if (newMinX != null && minX != newMinX)
                        {
                          minX = newMinX;
                          rangeX = maxX - minX;
                        }
                        if (newMaxX != null && maxX != newMaxX)
                        {
                          maxX = newMaxX;
                          rangeX = maxX - minX;
                        }
                        if (newMinY != null && minY != newMinY)
                        {
                          minY = newMinY;
                          rangeY = maxY - minY;
                        }
                        if (newMaxY != null && maxY != newMaxY)
                        {
                          maxY = newMaxY;
                          rangeY = maxY - minY;
                        }
                      },
                    bind =
                      function (callback)
                      {
                        if ($.isFunction(callback)) changeEvents.push(callback);
                      },
                    unbind =
                      function (callback)
                      {
                        if (!$.isFunction(callback)) return;
                        var i;
                        while ((i = $.inArray(callback, changeEvents)) != -1) changeEvents.splice(i, 1);
                      },
                    destroy =
                      function()
                      {
                        // unbind all possible events and null objects
                        $(document).unbind('mouseup', mouseUp).unbind('mousemove', mouseMove);
                        bar.unbind('mousedown', mouseDown);
                        bar = null;
                        arrow = null;
                        changeEvents = null;
                      };
                  $.extend(true, $this, // public properties, methods, and event bindings - these we need to access from other controls
                    {
                      val: val,
                      range: range,
                      bind: bind,
                      unbind: unbind,
                      destroy: destroy
                    });
                  // initialize this control
                  arrow.src = options.arrow && options.arrow.image;
                  arrow.w = options.arrow && options.arrow.width || arrow.width();
                  arrow.h = options.arrow && options.arrow.height || arrow.height();
                  bar.w = options.map && options.map.width || bar.width();
                  bar.h = options.map && options.map.height || bar.height();
                  // bind mousedown event
                  bar.bind('mousedown', mouseDown);
                  bind.call($this, draw);
                },
              ColorValuePicker = // controls for all the input elements for the typing in color values
                function(picker, color, bindedHex, alphaPrecision)
                {
                  var $this = this, // private properties and methods
                    inputs = picker.find('td.Text input'),
                    red = inputs.eq(3),
                    green = inputs.eq(4),
                    blue = inputs.eq(5),
                    alpha = inputs.length > 7 ? inputs.eq(6) : null,
                    hue = inputs.eq(0),
                    saturation = inputs.eq(1),
                    value = inputs.eq(2),
                    hex = inputs.eq(inputs.length > 7 ? 7 : 6),
                    ahex = inputs.length > 7 ? inputs.eq(8) : null,
                    keyDown = // input box key down - use arrows to alter color
                      function(e)
                      {
                        if (e.target.value == '' && e.target != hex.get(0) && (bindedHex != null && e.target != bindedHex.get(0) || bindedHex == null)) return;
                        if (!validateKey(e)) return e;
                        switch (e.target)
                        {
                          case red.get(0):
                            switch (e.keyCode)
                            {
                              case 38:
                                red.val(setValueInRange.call($this, (red.val() << 0) + 1, 0, 255));
                                color.val('r', red.val(), e.target);
                                return false;
                              case 40:
                                red.val(setValueInRange.call($this, (red.val() << 0) - 1, 0, 255));
                                color.val('r', red.val(), e.target);
                                return false;
                            }
                            break;
                          case green.get(0):
                            switch (e.keyCode)
                            {
                              case 38:
                                green.val(setValueInRange.call($this, (green.val() << 0) + 1, 0, 255));
                                color.val('g', green.val(), e.target);
                                return false;
                              case 40:
                                green.val(setValueInRange.call($this, (green.val() << 0) - 1, 0, 255));
                                color.val('g', green.val(), e.target);
                                return false;
                            }
                            break;
                          case blue.get(0):
                            switch (e.keyCode)
                            {
                              case 38:
                                blue.val(setValueInRange.call($this, (blue.val() << 0) + 1, 0, 255));
                                color.val('b', blue.val(), e.target);
                                return false;
                              case 40:
                                blue.val(setValueInRange.call($this, (blue.val() << 0) - 1, 0, 255));
                                color.val('b', blue.val(), e.target);
                                return false;
                            }
                            break;
                          case alpha && alpha.get(0):
                            switch (e.keyCode)
                            {
                              case 38:
                                alpha.val(setValueInRange.call($this, parseFloat(alpha.val()) + 1, 0, 100));
                                color.val('a', Math.precision((alpha.val() * 255) / 100, alphaPrecision), e.target);
                                return false;
                              case 40:
                                alpha.val(setValueInRange.call($this, parseFloat(alpha.val()) - 1, 0, 100));
                                color.val('a', Math.precision((alpha.val() * 255) / 100, alphaPrecision), e.target);
                                return false;
                            }
                            break;
                          case hue.get(0):
                            switch (e.keyCode)
                            {
                              case 38:
                                hue.val(setValueInRange.call($this, (hue.val() << 0) + 1, 0, 360));
                                color.val('h', hue.val(), e.target);
                                return false;
                              case 40:
                                hue.val(setValueInRange.call($this, (hue.val() << 0) - 1, 0, 360));
                                color.val('h', hue.val(), e.target);
                                return false;
                            }
                            break;
                          case saturation.get(0):
                            switch (e.keyCode)
                            {
                              case 38:
                                saturation.val(setValueInRange.call($this, (saturation.val() << 0) + 1, 0, 100));
                                color.val('s', saturation.val(), e.target);
                                return false;
                              case 40:
                                saturation.val(setValueInRange.call($this, (saturation.val() << 0) - 1, 0, 100));
                                color.val('s', saturation.val(), e.target);
                                return false;
                            }
                            break;
                          case value.get(0):
                            switch (e.keyCode)
                            {
                              case 38:
                                value.val(setValueInRange.call($this, (value.val() << 0) + 1, 0, 100));
                                color.val('v', value.val(), e.target);
                                return false;
                              case 40:
                                value.val(setValueInRange.call($this, (value.val() << 0) - 1, 0, 100));
                                color.val('v', value.val(), e.target);
                                return false;
                            }
                            break;
                        }
                      },
                    keyUp = // input box key up - validate value and set color
                      function(e)
                      {
                        if (e.target.value == '' && e.target != hex.get(0) && (bindedHex != null && e.target != bindedHex.get(0) || bindedHex == null)) return;
                        if (!validateKey(e)) return e;
                        switch (e.target)
                        {
                          case red.get(0):
                            red.val(setValueInRange.call($this, red.val(), 0, 255));
                            color.val('r', red.val(), e.target);
                            break;
                          case green.get(0):
                            green.val(setValueInRange.call($this, green.val(), 0, 255));
                            color.val('g', green.val(), e.target);
                            break;
                          case blue.get(0):
                            blue.val(setValueInRange.call($this, blue.val(), 0, 255));
                            color.val('b', blue.val(), e.target);
                            break;
                          case alpha && alpha.get(0):
                            alpha.val(setValueInRange.call($this, alpha.val(), 0, 100));
                            color.val('a', Math.precision((alpha.val() * 255) / 100, alphaPrecision), e.target);
                            break;
                          case hue.get(0):
                            hue.val(setValueInRange.call($this, hue.val(), 0, 360));
                            color.val('h', hue.val(), e.target);
                            break;
                          case saturation.get(0):
                            saturation.val(setValueInRange.call($this, saturation.val(), 0, 100));
                            color.val('s', saturation.val(), e.target);
                            break;
                          case value.get(0):
                            value.val(setValueInRange.call($this, value.val(), 0, 100));
                            color.val('v', value.val(), e.target);
                            break;
                          case hex.get(0):
                            hex.val(hex.val().replace(/[^a-fA-F0-9]/g, '').toLowerCase().substring(0, 6));
                            bindedHex && bindedHex.val(hex.val());
                            color.val('hex', hex.val() != '' ? hex.val() : null, e.target);
                            break;
                          case bindedHex && bindedHex.get(0):
                            bindedHex.val(bindedHex.val().replace(/[^a-fA-F0-9]/g, '').toLowerCase().substring(0, 6));
                            hex.val(bindedHex.val());
                            color.val('hex', bindedHex.val() != '' ? bindedHex.val() : null, e.target);
                            break;
                          case ahex && ahex.get(0):
                            ahex.val(ahex.val().replace(/[^a-fA-F0-9]/g, '').toLowerCase().substring(0, 2));
                            color.val('a', ahex.val() != null ? parseInt(ahex.val(), 16) : null, e.target);
                            break;
                        }
                      },
                    blur = // input box blur - reset to original if value empty
                      function(e)
                      {
                        if (color.val() != null)
                        {
                          switch (e.target)
                          {
                            case red.get(0): red.val(color.val('r')); break;
                            case green.get(0): green.val(color.val('g')); break;
                            case blue.get(0): blue.val(color.val('b')); break;
                            case alpha && alpha.get(0): alpha.val(Math.precision((color.val('a') * 100) / 255, alphaPrecision)); break;
                            case hue.get(0): hue.val(color.val('h')); break;
                            case saturation.get(0): saturation.val(color.val('s')); break;
                            case value.get(0): value.val(color.val('v')); break;
                            case hex.get(0):
                            case bindedHex && bindedHex.get(0):
                              hex.val(color.val('hex'));
                              bindedHex && bindedHex.val(color.val('hex'));
                              break;
                            case ahex && ahex.get(0): ahex.val(color.val('ahex').substring(6)); break;
                          }
                        }
                      },
                    validateKey = // validate key
                      function(e)
                      {
                        switch(e.keyCode)
                        {
                          case 9:
                          case 16:
                          case 29:
                          case 37:
                          case 39:
                            return false;
                          case 'c'.charCodeAt():
                          case 'v'.charCodeAt():
                            if (e.ctrlKey) return false;
                        }
                        return true;
                      },
                    setValueInRange = // constrain value within range
                      function(value, min, max)
                      {
                        if (value == '' || isNaN(value)) return min;
                        if (value > max) return max;
                        if (value < min) return min;
                        return value;
                      },
                    colorChanged =
                      function(ui, context)
                      {
                        var all = ui.val('all');
                        if (context != red.get(0)) red.val(all != null ? all.r : '');
                        if (context != green.get(0)) green.val(all != null ? all.g : '');
                        if (context != blue.get(0)) blue.val(all != null ? all.b : '');
                        if (alpha && context != alpha.get(0)) alpha.val(all != null ? Math.precision((all.a * 100) / 255, alphaPrecision) : '');
                        if (context != hue.get(0)) hue.val(all != null ? all.h : '');
                        if (context != saturation.get(0)) saturation.val(all != null ? all.s : '');
                        if (context != value.get(0)) value.val(all != null ? all.v : '');
                        if (context != hex.get(0) && (bindedHex && context != bindedHex.get(0) || !bindedHex)) hex.val(all != null ? all.hex : '');
                        if (bindedHex && context != bindedHex.get(0) && context != hex.get(0)) bindedHex.val(all != null ? all.hex : '');
                        if (ahex && context != ahex.get(0)) ahex.val(all != null ? all.ahex.substring(6) : '');
                      },
                    destroy =
                      function()
                      {
                        // unbind all events and null objects
                        red.add(green).add(blue).add(alpha).add(hue).add(saturation).add(value).add(hex).add(bindedHex).add(ahex).unbind('keyup', keyUp).unbind('blur', blur);
                        red.add(green).add(blue).add(alpha).add(hue).add(saturation).add(value).unbind('keydown', keyDown);
                        color.unbind(colorChanged);
                        red = null;
                        green = null;
                        blue = null;
                        alpha = null;
                        hue = null;
                        saturation = null;
                        value = null;
                        hex = null;
                        ahex = null;
                      };
                  $.extend(true, $this, // public properties and methods
                    {
                      destroy: destroy
                    });
                  red.add(green).add(blue).add(alpha).add(hue).add(saturation).add(value).add(hex).add(bindedHex).add(ahex).bind('keyup', keyUp).bind('blur', blur);
                  red.add(green).add(blue).add(alpha).add(hue).add(saturation).add(value).bind('keydown', keyDown);
                  color.bind(colorChanged);
                };
            $.jPicker =
              {
                List: [], // array holding references to each active instance of the control
                Color: // color object - we will be able to assign by any color space type or retrieve any color space info
                       // we want this public so we can optionally assign new color objects to initial values using inputs other than a string hex value (also supported)
                  function(init)
                  {
                    var $this = this,
                      r,
                      g,
                      b,
                      a,
                      h,
                      s,
                      v,
                      changeEvents = new Array(),
                      fireChangeEvents = 
                        function(context)
                        {
                          for (var i = 0; i < changeEvents.length; i++) changeEvents[i].call($this, $this, context);
                        },
                      val =
                        function(name, value, context)
                        {
                          // Kind of ugly
                          var set = Boolean(value);
                          if (set && value.ahex === "") value.ahex = "00000000";
                          if (!set)
                          {
                            if (name === undefined || name == null || name == '') name = 'all';
                            if (r == null) return null;
                            switch (name.toLowerCase())
                            {
                              case 'ahex': return ColorMethods.rgbaToHex({ r: r, g: g, b: b, a: a });
                              case 'hex': return val('ahex').substring(0, 6);
                              case 'all': return { r: r, g: g, b: b, a: a, h: h, s: s, v: v, hex: val.call($this, 'hex'), ahex: val.call($this, 'ahex') };
                              default:
                                var ret={};
                                for (var i = 0; i < name.length; i++)
                                {
                                  switch (name.charAt(i))
                                  {
                                    case 'r':
                                      if (name.length == 1) ret = r;
                                      else ret.r = r;
                                      break;
                                    case 'g':
                                      if (name.length == 1) ret = g;
                                      else ret.g = g;
                                      break;
                                    case 'b':
                                      if (name.length == 1) ret = b;
                                      else ret.b = b;
                                      break;
                                    case 'a':
                                      if (name.length == 1) ret = a;
                                      else ret.a = a;
                                      break;
                                    case 'h':
                                      if (name.length == 1) ret = h;
                                      else ret.h = h;
                                      break;
                                    case 's':
                                      if (name.length == 1) ret = s;
                                      else ret.s = s;
                                      break;
                                    case 'v':
                                      if (name.length == 1) ret = v;
                                      else ret.v = v;
                                      break;
                                  }
                                }
                                return ret == {} ? val.call($this, 'all') : ret;
                                break;
                            }
                          }
                          if (context != null && context == $this) return;
                          var changed = false;
                          if (name == null) name = '';
                          if (value == null)
                          {
                            if (r != null)
                            {
                              r = null;
                              changed = true;
                            }
                            if (g != null)
                            {
                              g = null;
                              changed = true;
                            }
                            if (b != null)
                            {
                              b = null;
                              changed = true;
                            }
                            if (a != null)
                            {
                              a = null;
                              changed = true;
                            }
                            if (h != null)
                            {
                              h = null;
                              changed = true;
                            }
                            if (s != null)
                            {
                              s = null;
                              changed = true;
                            }
                            if (v != null)
                            {
                              v = null;
                              changed = true;
                            }
                            changed && fireChangeEvents.call($this, context || $this);
                            return;
                          }
                          switch (name.toLowerCase())
                          {
                            case 'ahex':
                            case 'hex':
                              var ret = ColorMethods.hexToRgba(value && (value.ahex || value.hex) || value || 'none');
          
                              val.call($this, 'rgba', { r: ret.r, g: ret.g, b: ret.b, a: name == 'ahex' ? ret.a : a != null ? a : 255 }, context);
                              break;
                            default:
                              if (value && (value.ahex != null || value.hex != null))
                              {
                                val.call($this, 'ahex', value.ahex || value.hex || '00000000', context);
                                return;
                              }
                              var newV = {}, rgb = false, hsv = false;
                              if (value.r !== undefined && !name.indexOf('r') == -1) name += 'r';
                              if (value.g !== undefined && !name.indexOf('g') == -1) name += 'g';
                              if (value.b !== undefined && !name.indexOf('b') == -1) name += 'b';
                              if (value.a !== undefined && !name.indexOf('a') == -1) name += 'a';
                              if (value.h !== undefined && !name.indexOf('h') == -1) name += 'h';
                              if (value.s !== undefined && !name.indexOf('s') == -1) name += 's';
                              if (value.v !== undefined && !name.indexOf('v') == -1) name += 'v';
                              for (var i = 0; i < name.length; i++)
                              {
                                switch (name.charAt(i))
                                {
                                  case 'r':
                                    if (hsv) continue;
                                    rgb = true;
                                    newV.r = value && value.r && value.r | 0 || value && value | 0 || 0;
                                    if (newV.r < 0) newV.r = 0;
                                    else if (newV.r > 255) newV.r = 255;
                                    if (r != newV.r)
                                    {
                                      r = newV.r;
                                      changed = true;
                                    }
                                    break;
                                  case 'g':
                                    if (hsv) continue;
                                    rgb = true;
                                    newV.g = value && value.g && value.g | 0 || value && value | 0 || 0;
                                    if (newV.g < 0) newV.g = 0;
                                    else if (newV.g > 255) newV.g = 255;
                                    if (g != newV.g)
                                    {
                                      g = newV.g;
                                      changed = true;
                                    }
                                    break;
                                  case 'b':
                                    if (hsv) continue;
                                    rgb = true;
                                    newV.b = value && value.b && value.b | 0 || value && value | 0 || 0;
                                    if (newV.b < 0) newV.b = 0;
                                    else if (newV.b > 255) newV.b = 255;
                                    if (b != newV.b)
                                    {
                                      b = newV.b;
                                      changed = true;
                                    }
                                    break;
                                  case 'a':
                                    newV.a = value && value.a != null ? value.a | 0 : value != null ? value | 0 : 255;
                                    if (newV.a < 0) newV.a = 0;
                                    else if (newV.a > 255) newV.a = 255;
                                    if (a != newV.a)
                                    {
                                      a = newV.a;
                                      changed = true;
                                    }
                                    break;
                                  case 'h':
                                    if (rgb) continue;
                                    hsv = true;
                                    newV.h = value && value.h && value.h | 0 || value && value | 0 || 0;
                                    if (newV.h < 0) newV.h = 0;
                                    else if (newV.h > 360) newV.h = 360;
                                    if (h != newV.h)
                                    {
                                      h = newV.h;
                                      changed = true;
                                    }
                                    break;
                                  case 's':
                                    if (rgb) continue;
                                    hsv = true;
                                    newV.s = value && value.s != null ? value.s | 0 : value != null ? value | 0 : 100;
                                    if (newV.s < 0) newV.s = 0;
                                    else if (newV.s > 100) newV.s = 100;
                                    if (s != newV.s)
                                    {
                                      s = newV.s;
                                      changed = true;
                                    }
                                    break;
                                  case 'v':
                                    if (rgb) continue;
                                    hsv = true;
                                    newV.v = value && value.v != null ? value.v | 0 : value != null ? value | 0 : 100;
                                    if (newV.v < 0) newV.v = 0;
                                    else if (newV.v > 100) newV.v = 100;
                                    if (v != newV.v)
                                    {
                                      v = newV.v;
                                      changed = true;
                                    }
                                    break;
                                }
                              }
                              if (changed)
                              {
                                if (rgb)
                                {
                                  r = r || 0;
                                  g = g || 0;
                                  b = b || 0;
                                  var ret = ColorMethods.rgbToHsv({ r: r, g: g, b: b });
                                  h = ret.h;
                                  s = ret.s;
                                  v = ret.v;
                                }
                                else if (hsv)
                                {
                                  h = h || 0;
                                  s = s != null ? s : 100;
                                  v = v != null ? v : 100;
                                  var ret = ColorMethods.hsvToRgb({ h: h, s: s, v: v });
                                  r = ret.r;
                                  g = ret.g;
                                  b = ret.b;
                                }
                                a = a != null ? a : 255;
                                fireChangeEvents.call($this, context || $this);
                              }
                              break;
                          }
                        },
                      bind =
                        function(callback)
                        {
                          if ($.isFunction(callback)) changeEvents.push(callback);
                        },
                      unbind =
                        function(callback)
                        {
                          if (!$.isFunction(callback)) return;
                          var i;
                          while ((i = $.inArray(callback, changeEvents)) != -1) changeEvents.splice(i, 1);
                        },
                      destroy =
                        function()
                        {
                          changeEvents = null;
                        }
                    $.extend(true, $this, // public properties and methods
                      {
                        val: val,
                        bind: bind,
                        unbind: unbind,
                        destroy: destroy
                      });
                    if (init)
                    {
                      if (init.ahex != null) val('ahex', init);
                      else if (init.hex != null) val((init.a != null ? 'a' : '') + 'hex', init.a != null ? { ahex: init.hex + ColorMethods.intToHex(init.a) } : init);
                      else if (init.r != null && init.g != null && init.b != null) val('rgb' + (init.a != null ? 'a' : ''), init);
                      else if (init.h != null && init.s != null && init.v != null) val('hsv' + (init.a != null ? 'a' : ''), init);
                    }
                  },
                ColorMethods: // color conversion methods  - make public to give use to external scripts
                  {
                    hexToRgba:
                      function(hex)
                      {
                        if (hex === '' || hex === 'none') return { r: null, g: null, b: null, a: null };
                        hex = this.validateHex(hex);
                        var r = '00', g = '00', b = '00', a = '255';
                        if (hex.length == 6) hex += 'ff';
                        if (hex.length > 6)
                        {
                          r = hex.substring(0, 2);
                          g = hex.substring(2, 4);
                          b = hex.substring(4, 6);
                          a = hex.substring(6, hex.length);
                        }
                        else
                        {
                          if (hex.length > 4)
                          {
                            r = hex.substring(4, hex.length);
                            hex = hex.substring(0, 4);
                          }
                          if (hex.length > 2)
                          {
                            g = hex.substring(2, hex.length);
                            hex = hex.substring(0, 2);
                          }
                          if (hex.length > 0) b = hex.substring(0, hex.length);
                        }
                        return { r: this.hexToInt(r), g: this.hexToInt(g), b: this.hexToInt(b), a: this.hexToInt(a) };
                      },
                    validateHex:
                      function(hex)
                      {
                        //if (typeof hex === "object") return "";
                        hex = hex.toLowerCase().replace(/[^a-f0-9]/g, '');
                        if (hex.length > 8) hex = hex.substring(0, 8);
                        return hex;
                      },
                    rgbaToHex:
                      function(rgba)
                      {
                        return this.intToHex(rgba.r) + this.intToHex(rgba.g) + this.intToHex(rgba.b) + this.intToHex(rgba.a);
                      },
                    intToHex:
                      function(dec)
                      {
                        var result = (dec | 0).toString(16);
                        if (result.length == 1) result = ('0' + result);
                        return result.toLowerCase();
                      },
                    hexToInt:
                      function(hex)
                      {
                        return parseInt(hex, 16);
                      },
                    rgbToHsv:
                      function(rgb)
                      {
                        var r = rgb.r / 255, g = rgb.g / 255, b = rgb.b / 255, hsv = { h: 0, s: 0, v: 0 }, min = 0, max = 0, delta;
                        if (r >= g && r >= b)
                        {
                          max = r;
                          min = g > b ? b : g;
                        }
                        else if (g >= b && g >= r)
                        {
                          max = g;
                          min = r > b ? b : r;
                        }
                        else
                        {
                          max = b;
                          min = g > r ? r : g;
                        }
                        hsv.v = max;
                        hsv.s = max ? (max - min) / max : 0;
                        if (!hsv.s) hsv.h = 0;
                        else
                        {
                          delta = max - min;
                          if (r == max) hsv.h = (g - b) / delta;
                          else if (g == max) hsv.h = 2 + (b - r) / delta;
                          else hsv.h = 4 + (r - g) / delta;
                          hsv.h = parseInt(hsv.h * 60);
                          if (hsv.h < 0) hsv.h += 360;
                        }
                        hsv.s = (hsv.s * 100) | 0;
                        hsv.v = (hsv.v * 100) | 0;
                        return hsv;
                      },
                    hsvToRgb:
                      function(hsv)
                      {
                        var rgb = { r: 0, g: 0, b: 0, a: 100 }, h = hsv.h, s = hsv.s, v = hsv.v;
                        if (s == 0)
                        {
                          if (v == 0) rgb.r = rgb.g = rgb.b = 0;
                          else rgb.r = rgb.g = rgb.b = (v * 255 / 100) | 0;
                        }
                        else
                        {
                          if (h == 360) h = 0;
                          h /= 60;
                          s = s / 100;
                          v = v / 100;
                          var i = h | 0,
                              f = h - i,
                              p = v * (1 - s),
                              q = v * (1 - (s * f)),
                              t = v * (1 - (s * (1 - f)));
                          switch (i)
                          {
                            case 0:
                              rgb.r = v;
                              rgb.g = t;
                              rgb.b = p;
                              break;
                            case 1:
                              rgb.r = q;
                              rgb.g = v;
                              rgb.b = p;
                              break;
                            case 2:
                              rgb.r = p;
                              rgb.g = v;
                              rgb.b = t;
                              break;
                            case 3:
                              rgb.r = p;
                              rgb.g = q;
                              rgb.b = v;
                              break;
                            case 4:
                              rgb.r = t;
                              rgb.g = p;
                              rgb.b = v;
                              break;
                            case 5:
                              rgb.r = v;
                              rgb.g = p;
                              rgb.b = q;
                              break;
                          }
                          rgb.r = (rgb.r * 255) | 0;
                          rgb.g = (rgb.g * 255) | 0;
                          rgb.b = (rgb.b * 255) | 0;
                        }
                        return rgb;
                      }
                  }
              };
            var Color = $.jPicker.Color, List = $.jPicker.List, ColorMethods = $.jPicker.ColorMethods; // local copies for YUI compressor
            $.fn.jPicker =
              function(options)
              {
                var $arguments = arguments;
                return this.each(
                  function()
                  {
                    var $this = this, settings = $.extend(true, {}, $.fn.jPicker.defaults, options); // local copies for YUI compressor
                    if ($($this).get(0).nodeName.toLowerCase() == 'input') // Add color picker icon if binding to an input element and bind the events to the input
                    {
                      $.extend(true, settings,
                        {
                          window:
                          {
                            bindToInput: true,
                            expandable: true,
                            input: $($this)
                          }
                        });
                      if($($this).val()=='')
                      {
                        settings.color.active = new Color({ hex: null });
                        settings.color.current = new Color({ hex: null });
                      }
                      else if (ColorMethods.validateHex($($this).val()))
                      {
                        settings.color.active = new Color({ hex: $($this).val(), a: settings.color.active.val('a') });
                        settings.color.current = new Color({ hex: $($this).val(), a: settings.color.active.val('a') });
                      }
                    }
                    if (settings.window.expandable)
                      $($this).after('<span class="jPicker"><span class="Icon"><span class="Color">&nbsp;</span><span class="Alpha">&nbsp;</span><span class="Image" title="Click To Open Color Picker">&nbsp;</span><span class="Container">&nbsp;</span></span></span>');
                    else settings.window.liveUpdate = false; // Basic control binding for inline use - You will need to override the liveCallback or commitCallback function to retrieve results
                    var isLessThanIE7 = parseFloat(navigator.appVersion.split('MSIE')[1]) < 7 && document.body.filters, // needed to run the AlphaImageLoader function for IE6
                      container = null,
                      colorMapDiv = null,
                      colorBarDiv = null,
                      colorMapL1 = null, // different layers of colorMap and colorBar
                      colorMapL2 = null,
                      colorMapL3 = null,
                      colorBarL1 = null,
                      colorBarL2 = null,
                      colorBarL3 = null,
                      colorBarL4 = null,
                      colorBarL5 = null,
                      colorBarL6 = null,
                      colorMap = null, // color maps
                      colorBar = null,
                      colorPicker = null,
                      elementStartX = null, // Used to record the starting css positions for dragging the control
                      elementStartY = null,
                      pageStartX = null, // Used to record the mousedown coordinates for dragging the control
                      pageStartY = null,
                      activePreview = null, // color boxes above the radio buttons
                      currentPreview = null,
                      okButton = null,
                      cancelButton = null,
                      grid = null, // preset colors grid
                      iconColor = null, // iconColor for popup icon
                      iconAlpha = null, // iconAlpha for popup icon
                      iconImage = null, // iconImage popup icon
                      moveBar = null, // drag bar
                      setColorMode = // set color mode and update visuals for the new color mode
                        function(colorMode)
                        {
                          var active = color.active, // local copies for YUI compressor
                            clientPath = images.clientPath,
                            hex = active.val('hex'),
                            rgbMap,
                            rgbBar;
                          settings.color.mode = colorMode;
                          switch (colorMode)
                          {
                            case 'h':
                              setTimeout(
                                function()
                                {
                                  setBG.call($this, colorMapDiv, 'transparent');
                                  setImgLoc.call($this, colorMapL1, 0);
                                  setAlpha.call($this, colorMapL1, 100);
                                  setImgLoc.call($this, colorMapL2, 260);
                                  setAlpha.call($this, colorMapL2, 100);
                                  setBG.call($this, colorBarDiv, 'transparent');
                                  setImgLoc.call($this, colorBarL1, 0);
                                  setAlpha.call($this, colorBarL1, 100);
                                  setImgLoc.call($this, colorBarL2, 260);
                                  setAlpha.call($this, colorBarL2, 100);
                                  setImgLoc.call($this, colorBarL3, 260);
                                  setAlpha.call($this, colorBarL3, 100);
                                  setImgLoc.call($this, colorBarL4, 260);
                                  setAlpha.call($this, colorBarL4, 100);
                                  setImgLoc.call($this, colorBarL6, 260);
                                  setAlpha.call($this, colorBarL6, 100);
                                }, 0);
                              colorMap.range('all', { minX: 0, maxX: 100, minY: 0, maxY: 100 });
                              colorBar.range('rangeY', { minY: 0, maxY: 360 });
                              if (active.val('ahex') == null) break;
                              colorMap.val('xy', { x: active.val('s'), y: 100 - active.val('v') }, colorMap);
                              colorBar.val('y', 360 - active.val('h'), colorBar);
                              break;
                            case 's':
                              setTimeout(
                                function()
                                {
                                  setBG.call($this, colorMapDiv, 'transparent');
                                  setImgLoc.call($this, colorMapL1, -260);
                                  setImgLoc.call($this, colorMapL2, -520);
                                  setImgLoc.call($this, colorBarL1, -260);
                                  setImgLoc.call($this, colorBarL2, -520);
                                  setImgLoc.call($this, colorBarL6, 260);
                                  setAlpha.call($this, colorBarL6, 100);
                                }, 0);
                              colorMap.range('all', { minX: 0, maxX: 360, minY: 0, maxY: 100 });
                              colorBar.range('rangeY', { minY: 0, maxY: 100 });
                              if (active.val('ahex') == null) break;
                              colorMap.val('xy', { x: active.val('h'), y: 100 - active.val('v') }, colorMap);
                              colorBar.val('y', 100 - active.val('s'), colorBar);
                              break;
                            case 'v':
                              setTimeout(
                                function()
                                {
                                  setBG.call($this, colorMapDiv, '000000');
                                  setImgLoc.call($this, colorMapL1, -780);
                                  setImgLoc.call($this, colorMapL2, 260);
                                  setBG.call($this, colorBarDiv, hex);
                                  setImgLoc.call($this, colorBarL1, -520);
                                  setImgLoc.call($this, colorBarL2, 260);
                                  setAlpha.call($this, colorBarL2, 100);
                                  setImgLoc.call($this, colorBarL6, 260);
                                  setAlpha.call($this, colorBarL6, 100);
                                }, 0);
                              colorMap.range('all', { minX: 0, maxX: 360, minY: 0, maxY: 100 });
                              colorBar.range('rangeY', { minY: 0, maxY: 100 });
                              if (active.val('ahex') == null) break;
                              colorMap.val('xy', { x: active.val('h'), y: 100 - active.val('s') }, colorMap);
                              colorBar.val('y', 100 - active.val('v'), colorBar);
                              break;
                            case 'r':
                              rgbMap = -1040;
                              rgbBar = -780;
                              colorMap.range('all', { minX: 0, maxX: 255, minY: 0, maxY: 255 });
                              colorBar.range('rangeY', { minY: 0, maxY: 255 });
                              if (active.val('ahex') == null) break;
                              colorMap.val('xy', { x: active.val('b'), y: 255 - active.val('g') }, colorMap);
                              colorBar.val('y', 255 - active.val('r'), colorBar);
                              break;
                            case 'g':
                              rgbMap = -1560;
                              rgbBar = -1820;
                              colorMap.range('all', { minX: 0, maxX: 255, minY: 0, maxY: 255 });
                              colorBar.range('rangeY', { minY: 0, maxY: 255 });
                              if (active.val('ahex') == null) break;
                              colorMap.val('xy', { x: active.val('b'), y: 255 - active.val('r') }, colorMap);
                              colorBar.val('y', 255 - active.val('g'), colorBar);
                              break;
                            case 'b':
                              rgbMap = -2080;
                              rgbBar = -2860;
                              colorMap.range('all', { minX: 0, maxX: 255, minY: 0, maxY: 255 });
                              colorBar.range('rangeY', { minY: 0, maxY: 255 });
                              if (active.val('ahex') == null) break;
                              colorMap.val('xy', { x: active.val('r'), y: 255 - active.val('g') }, colorMap);
                              colorBar.val('y', 255 - active.val('b'), colorBar);
                              break;
                            case 'a':
                              setTimeout(
                                function()
                                {
                                  setBG.call($this, colorMapDiv, 'transparent');
                                  setImgLoc.call($this, colorMapL1, -260);
                                  setImgLoc.call($this, colorMapL2, -520);
                                  setImgLoc.call($this, colorBarL1, 260);
                                  setImgLoc.call($this, colorBarL2, 260);
                                  setAlpha.call($this, colorBarL2, 100);
                                  setImgLoc.call($this, colorBarL6, 0);
                                  setAlpha.call($this, colorBarL6, 100);
                                }, 0);
                              colorMap.range('all', { minX: 0, maxX: 360, minY: 0, maxY: 100 });
                              colorBar.range('rangeY', { minY: 0, maxY: 255 });
                              if (active.val('ahex') == null) break;
                              colorMap.val('xy', { x: active.val('h'), y: 100 - active.val('v') }, colorMap);
                              colorBar.val('y', 255 - active.val('a'), colorBar);
                              break;
                            default:
                              throw ('Invalid Mode');
                              break;
                          }
                          switch (colorMode)
                          {
                            case 'h':
                              break;
                            case 's':
                            case 'v':
                            case 'a':
                              setTimeout(
                                function()
                                {
                                  setAlpha.call($this, colorMapL1, 100);
                                  setAlpha.call($this, colorBarL1, 100);
                                  setImgLoc.call($this, colorBarL3, 260);
                                  setAlpha.call($this, colorBarL3, 100);
                                  setImgLoc.call($this, colorBarL4, 260);
                                  setAlpha.call($this, colorBarL4, 100);
                                }, 0);
                              break;
                            case 'r':
                            case 'g':
                            case 'b':
                              setTimeout(
                                function()
                                {
                                  setBG.call($this, colorMapDiv, 'transparent');
                                  setBG.call($this, colorBarDiv, 'transparent');
                                  setAlpha.call($this, colorBarL1, 100);
                                  setAlpha.call($this, colorMapL1, 100);
                                  setImgLoc.call($this, colorMapL1, rgbMap);
                                  setImgLoc.call($this, colorMapL2, rgbMap - 260);
                                  setImgLoc.call($this, colorBarL1, rgbBar - 780);
                                  setImgLoc.call($this, colorBarL2, rgbBar - 520);
                                  setImgLoc.call($this, colorBarL3, rgbBar);
                                  setImgLoc.call($this, colorBarL4, rgbBar - 260);
                                  setImgLoc.call($this, colorBarL6, 260);
                                  setAlpha.call($this, colorBarL6, 100);
                                }, 0);
                              break;
                          }
                          if (active.val('ahex') == null) return;
                          activeColorChanged.call($this, active);
                        },
                      activeColorChanged = // Update color when user changes text values
                        function(ui, context)
                        {
                          if (context == null || (context != colorBar && context != colorMap)) positionMapAndBarArrows.call($this, ui, context);
                          setTimeout(
                            function()
                            {
                              updatePreview.call($this, ui);
                              updateMapVisuals.call($this, ui);
                              updateBarVisuals.call($this, ui);
                            }, 0);
                        },
                      mapValueChanged = // user has dragged the ColorMap pointer
                        function(ui, context)
                        {
                          var active = color.active;
                          if (context != colorMap && active.val() == null) return;
                          var xy = ui.val('all');
                          switch (settings.color.mode)
                          {
                            case 'h':
                              active.val('sv', { s: xy.x, v: 100 - xy.y }, context);
                              break;
                            case 's':
                            case 'a':
                              active.val('hv', { h: xy.x, v: 100 - xy.y }, context);
                              break;
                            case 'v':
                              active.val('hs', { h: xy.x, s: 100 - xy.y }, context);
                              break;
                            case 'r':
                              active.val('gb', { g: 255 - xy.y, b: xy.x }, context);
                              break;
                            case 'g':
                              active.val('rb', { r: 255 - xy.y, b: xy.x }, context);
                              break;
                            case 'b':
                              active.val('rg', { r: xy.x, g: 255 - xy.y }, context);
                              break;
                          }
                        },
                      colorBarValueChanged = // user has dragged the ColorBar slider
                        function(ui, context)
                        {
                          var active = color.active;
                          if (context != colorBar && active.val() == null) return;
                          switch (settings.color.mode)
                          {
                            case 'h':
                              active.val('h', { h: 360 - ui.val('y') }, context);
                              break;
                            case 's':
                              active.val('s', { s: 100 - ui.val('y') }, context);
                              break;
                            case 'v':
                              active.val('v', { v: 100 - ui.val('y') }, context);
                              break;
                            case 'r':
                              active.val('r', { r: 255 - ui.val('y') }, context);
                              break;
                            case 'g':
                              active.val('g', { g: 255 - ui.val('y') }, context);
                              break;
                            case 'b':
                              active.val('b', { b: 255 - ui.val('y') }, context);
                              break;
                            case 'a':
                              active.val('a', 255 - ui.val('y'), context);
                              break;
                          }
                        },
                      positionMapAndBarArrows = // position map and bar arrows to match current color
                        function(ui, context)
                        {
                          if (context != colorMap)
                          {
                            switch (settings.color.mode)
                            {
                              case 'h':
                                var sv = ui.val('sv');
                                colorMap.val('xy', { x: sv != null ? sv.s : 100, y: 100 - (sv != null ? sv.v : 100) }, context);
                                break;
                              case 's':
                              case 'a':
                                var hv = ui.val('hv');
                                colorMap.val('xy', { x: hv && hv.h || 0, y: 100 - (hv != null ? hv.v : 100) }, context);
                                break;
                              case 'v':
                                var hs = ui.val('hs');
                                colorMap.val('xy', { x: hs && hs.h || 0, y: 100 - (hs != null ? hs.s : 100) }, context);
                                break;
                              case 'r':
                                var bg = ui.val('bg');
                                colorMap.val('xy', { x: bg && bg.b || 0, y: 255 - (bg && bg.g || 0) }, context);
                                break;
                              case 'g':
                                var br = ui.val('br');
                                colorMap.val('xy', { x: br && br.b || 0, y: 255 - (br && br.r || 0) }, context);
                                break;
                              case 'b':
                                var rg = ui.val('rg');
                                colorMap.val('xy', { x: rg && rg.r || 0, y: 255 - (rg && rg.g || 0) }, context);
                                break;
                            }
                          }
                          if (context != colorBar)
                          {
                            switch (settings.color.mode)
                            {
                              case 'h':
                                colorBar.val('y', 360 - (ui.val('h') || 0), context);
                                break;
                              case 's':
                                var s = ui.val('s');
                                colorBar.val('y', 100 - (s != null ? s : 100), context);
                                break;
                              case 'v':
                                var v = ui.val('v');
                                colorBar.val('y', 100 - (v != null ? v : 100), context);
                                break;
                              case 'r':
                                colorBar.val('y', 255 - (ui.val('r') || 0), context);
                                break;
                              case 'g':
                                colorBar.val('y', 255 - (ui.val('g') || 0), context);
                                break;
                              case 'b':
                                colorBar.val('y', 255 - (ui.val('b') || 0), context);
                                break;
                              case 'a':
                                var a = ui.val('a');
                                colorBar.val('y', 255 - (a != null ? a : 255), context);
                                break;
                            }
                          }
                        },
                      updatePreview =
                        function(ui)
                        {
                          try
                          {
                            var all = ui.val('all');
                            activePreview.css({ backgroundColor: all && '#' + all.hex || 'transparent' });
                            setAlpha.call($this, activePreview, all && Math.precision((all.a * 100) / 255, 4) || 0);
                          }
                          catch (e) { }
                        },
                      updateMapVisuals =
                        function(ui)
                        {
                          switch (settings.color.mode)
                          {
                            case 'h':
                              setBG.call($this, colorMapDiv, new Color({ h: ui.val('h') || 0, s: 100, v: 100 }).val('hex'));
                              break;
                            case 's':
                            case 'a':
                              var s = ui.val('s');
                              setAlpha.call($this, colorMapL2, 100 - (s != null ? s : 100));
                              break;
                            case 'v':
                              var v = ui.val('v');
                              setAlpha.call($this, colorMapL1, v != null ? v : 100);
                              break;
                            case 'r':
                              setAlpha.call($this, colorMapL2, Math.precision((ui.val('r') || 0) / 255 * 100, 4));
                              break;
                            case 'g':
                              setAlpha.call($this, colorMapL2, Math.precision((ui.val('g') || 0) / 255 * 100, 4));
                              break;
                            case 'b':
                              setAlpha.call($this, colorMapL2, Math.precision((ui.val('b') || 0) / 255 * 100));
                              break;
                          }
                          var a = ui.val('a');
                          setAlpha.call($this, colorMapL3, Math.precision(((255 - (a || 0)) * 100) / 255, 4));
                        },
                      updateBarVisuals =
                        function(ui)
                        {
                          switch (settings.color.mode)
                          {
                            case 'h':
                              var a = ui.val('a');
                              setAlpha.call($this, colorBarL5, Math.precision(((255 - (a || 0)) * 100) / 255, 4));
                              break;
                            case 's':
                              var hva = ui.val('hva'),
                                  saturatedColor = new Color({ h: hva && hva.h || 0, s: 100, v: hva != null ? hva.v : 100 });
                              setBG.call($this, colorBarDiv, saturatedColor.val('hex'));
                              setAlpha.call($this, colorBarL2, 100 - (hva != null ? hva.v : 100));
                              setAlpha.call($this, colorBarL5, Math.precision(((255 - (hva && hva.a || 0)) * 100) / 255, 4));
                              break;
                            case 'v':
                              var hsa = ui.val('hsa'),
                                  valueColor = new Color({ h: hsa && hsa.h || 0, s: hsa != null ? hsa.s : 100, v: 100 });
                              setBG.call($this, colorBarDiv, valueColor.val('hex'));
                              setAlpha.call($this, colorBarL5, Math.precision(((255 - (hsa && hsa.a || 0)) * 100) / 255, 4));
                              break;
                            case 'r':
                            case 'g':
                            case 'b':
                              var hValue = 0, vValue = 0, rgba = ui.val('rgba');
                              if (settings.color.mode == 'r')
                              {
                                hValue = rgba && rgba.b || 0;
                                vValue = rgba && rgba.g || 0;
                              }
                              else if (settings.color.mode == 'g')
                              {
                                hValue = rgba && rgba.b || 0;
                                vValue = rgba && rgba.r || 0;
                              }
                              else if (settings.color.mode == 'b')
                              {
                                hValue = rgba && rgba.r || 0;
                                vValue = rgba && rgba.g || 0;
                              }
                              var middle = vValue > hValue ? hValue : vValue;
                              setAlpha.call($this, colorBarL2, hValue > vValue ? Math.precision(((hValue - vValue) / (255 - vValue)) * 100, 4) : 0);
                              setAlpha.call($this, colorBarL3, vValue > hValue ? Math.precision(((vValue - hValue) / (255 - hValue)) * 100, 4) : 0);
                              setAlpha.call($this, colorBarL4, Math.precision((middle / 255) * 100, 4));
                              setAlpha.call($this, colorBarL5, Math.precision(((255 - (rgba && rgba.a || 0)) * 100) / 255, 4));
                              break;
                            case 'a':
                              var a = ui.val('a');
                              setBG.call($this, colorBarDiv, ui.val('hex') || '000000');
                              setAlpha.call($this, colorBarL5, a != null ? 0 : 100);
                              setAlpha.call($this, colorBarL6, a != null ? 100 : 0);
                              break;
                          }
                        },
                      setBG =
                        function(el, c)
                        {
                          el.css({ backgroundColor: c && c.length == 6 && '#' + c || 'transparent' });
                        },
                      setImg =
                        function(img, src)
                        {
                          if (isLessThanIE7 && (src.indexOf('AlphaBar.png') != -1 || src.indexOf('Bars.png') != -1 || src.indexOf('Maps.png') != -1))
                          {
                            img.attr('pngSrc', src);
                            img.css({ backgroundImage: 'none', filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + src + '\', sizingMethod=\'scale\')' });
                          }
                          else img.css({ backgroundImage: 'url(\'' + src + '\')' });
                        },
                      setImgLoc =
                        function(img, y)
                        {
                          img.css({ top: y + 'px' });
                        },
                      setAlpha =
                        function(obj, alpha)
                        {
                          obj.css({ visibility: alpha > 0 ? 'visible' : 'hidden' });
                          if (alpha > 0 && alpha < 100)
                          {
                            if (isLessThanIE7)
                            {
                              var src = obj.attr('pngSrc');
                              if (src != null && (src.indexOf('AlphaBar.png') != -1 || src.indexOf('Bars.png') != -1 || src.indexOf('Maps.png') != -1))
                                obj.css({ filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + src + '\', sizingMethod=\'scale\') progid:DXImageTransform.Microsoft.Alpha(opacity=' + alpha + ')' });
                              else obj.css({ opacity: Math.precision(alpha / 100, 4) });
                            }
                            else obj.css({ opacity: Math.precision(alpha / 100, 4) });
                          }
                          else if (alpha == 0 || alpha == 100)
                          {
                            if (isLessThanIE7)
                            {
                              var src = obj.attr('pngSrc');
                              if (src != null && (src.indexOf('AlphaBar.png') != -1 || src.indexOf('Bars.png') != -1 || src.indexOf('Maps.png') != -1))
                                obj.css({ filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + src + '\', sizingMethod=\'scale\')' });
                              else obj.css({ opacity: '' });
                            }
                            else obj.css({ opacity: '' });
                          }
                        },
                      revertColor = // revert color to original color when opened
                        function()
                        {
                          color.active.val('ahex', color.current.val('ahex'));
                        },
                      commitColor = // commit the color changes
                        function()
                        {
                          color.current.val('ahex', color.active.val('ahex'));
                        },
                      radioClicked =
                        function(e)
                        {
                          $(this).parents('tbody:first').find('input:radio[value!="'+e.target.value+'"]').removeAttr('checked');
                          setColorMode.call($this, e.target.value);
                        },
                      currentClicked =
                        function()
                        {
                          revertColor.call($this);
                        },
                      cancelClicked =
                        function()
                        {
                          revertColor.call($this);
                          settings.window.expandable && hide.call($this);
                          $.isFunction(cancelCallback) && cancelCallback.call($this, color.active, cancelButton);
                        },
                      okClicked =
                        function()
                        {
                          commitColor.call($this);
                          settings.window.expandable && hide.call($this);
                          $.isFunction(commitCallback) && commitCallback.call($this, color.active, okButton);
                        },
                      iconImageClicked =
                        function()
                        {
                          show.call($this);
                        },
                      currentColorChanged =
                        function(ui, context)
                        {
                          var hex = ui.val('hex');
                          currentPreview.css({ backgroundColor: hex && '#' + hex || 'transparent' });
                          setAlpha.call($this, currentPreview, Math.precision(((ui.val('a') || 0) * 100) / 255, 4));
                        },
                      expandableColorChanged =
                        function(ui, context)
                        {
                          var hex = ui.val('hex');
                          var va = ui.val('va');
                          iconColor.css({ backgroundColor: hex && '#' + hex || 'transparent' });
                          setAlpha.call($this, iconAlpha, Math.precision(((255 - (va && va.a || 0)) * 100) / 255, 4));
                          if (settings.window.bindToInput&&settings.window.updateInputColor)
                            settings.window.input.css(
                              {
                                backgroundColor: hex && '#' + hex || 'transparent',
                                color: va == null || va.v > 75 ? '#000000' : '#ffffff'
                              });
                        },
                      moveBarMouseDown =
                        function(e)
                        {
                          var element = settings.window.element, // local copies for YUI compressor
                            page = settings.window.page;
                          elementStartX = parseInt(container.css('left'));
                          elementStartY = parseInt(container.css('top'));
                          pageStartX = e.pageX;
                          pageStartY = e.pageY;
                          // bind events to document to move window - we will unbind these on mouseup
                          $(document).bind('mousemove', documentMouseMove).bind('mouseup', documentMouseUp);
                          e.preventDefault(); // prevent attempted dragging of the column
                        },
                      documentMouseMove =
                        function(e)
                        {
                          container.css({ left: elementStartX - (pageStartX - e.pageX) + 'px', top: elementStartY - (pageStartY - e.pageY) + 'px' });
                          if (settings.window.expandable && !$.support.boxModel) container.prev().css({ left: container.css("left"), top: container.css("top") });
                          e.stopPropagation();
                          e.preventDefault();
                          return false;
                        },
                      documentMouseUp =
                        function(e)
                        {
                          $(document).unbind('mousemove', documentMouseMove).unbind('mouseup', documentMouseUp);
                          e.stopPropagation();
                          e.preventDefault();
                          return false;
                        },
                      quickPickClicked =
                        function(e)
                        {
                          e.preventDefault();
                          e.stopPropagation();
                          color.active.val('ahex', $(this).attr('title') || null, e.target);
                          return false;
                        },
                      commitCallback = $.isFunction($arguments[1]) && $arguments[1] || null,
                      liveCallback = $.isFunction($arguments[2]) && $arguments[2] || null,
                      cancelCallback = $.isFunction($arguments[3]) && $arguments[3] || null,
                      show =
                        function()
                        {
                          color.current.val('ahex', color.active.val('ahex'));
                          var attachIFrame = function()
                            {
                              if (!settings.window.expandable || $.support.boxModel) return;
                              var table = container.find('table:first');
                              container.before('<iframe/>');
                              container.prev().css({ width: table.width(), height: container.height(), opacity: 0, position: 'absolute', left: container.css("left"), top: container.css("top") });
                            };
                          if (settings.window.expandable)
                          {
                            $(document.body).children('div.jPicker.Container').css({zIndex:10});
                            container.css({zIndex:20});
                          }
                          switch (settings.window.effects.type)
                          {
                            case 'fade':
                              container.fadeIn(settings.window.effects.speed.show, attachIFrame);
                              break;
                            case 'slide':
                              container.slideDown(settings.window.effects.speed.show, attachIFrame);
                              break;
                            case 'show':
                            default:
                              container.show(settings.window.effects.speed.show, attachIFrame);
                              break;
                          }
                        },
                      hide =
                        function()
                        {
                          var removeIFrame = function()
                            {
                              if (settings.window.expandable) container.css({ zIndex: 10 });
                              if (!settings.window.expandable || $.support.boxModel) return;
                              container.prev().remove();
                            };
                          switch (settings.window.effects.type)
                          {
                            case 'fade':
                              container.fadeOut(settings.window.effects.speed.hide, removeIFrame);
                              break;
                            case 'slide':
                              container.slideUp(settings.window.effects.speed.hide, removeIFrame);
                              break;
                            case 'show':
                            default:
                              container.hide(settings.window.effects.speed.hide, removeIFrame);
                              break;
                          }
                        },
                      initialize =
                        function()
                        {
                          var win = settings.window,
                              popup = win.expandable ? $($this).next().find('.Container:first') : null;
                          container = win.expandable ? $('<div/>') : $($this);
                          container.addClass('jPicker Container');
                          if (win.expandable) container.hide();
                          container.get(0).onselectstart = function(event){ if (event.target.nodeName.toLowerCase() !== 'input') return false; };
                          // inject html source code - we are using a single table for this control - I know tables are considered bad, but it takes care of equal height columns and
                          // this control really is tabular data, so I believe it is the right move
                          var all = color.active.val('all');
                          if (win.alphaPrecision < 0) win.alphaPrecision = 0;
                          else if (win.alphaPrecision > 2) win.alphaPrecision = 2;
                          var controlHtml='<table class="jPicker" cellpadding="0" cellspacing="0"><tbody>' + (win.expandable ? '<tr><td class="Move" colspan="5">&nbsp;</td></tr>' : '') + '<tr><td rowspan="9"><h2 class="Title">' + (win.title || localization.text.title) + '</h2><div class="Map"><span class="Map1">&nbsp;</span><span class="Map2">&nbsp;</span><span class="Map3">&nbsp;</span><img src="' + images.clientPath + images.colorMap.arrow.file + '" class="Arrow"/></div></td><td rowspan="9"><div class="Bar"><span class="Map1">&nbsp;</span><span class="Map2">&nbsp;</span><span class="Map3">&nbsp;</span><span class="Map4">&nbsp;</span><span class="Map5">&nbsp;</span><span class="Map6">&nbsp;</span><img src="' + images.clientPath + images.colorBar.arrow.file + '" class="Arrow"/></div></td><td colspan="2" class="Preview">' + localization.text.newColor + '<div><span class="Active" title="' + localization.tooltips.colors.newColor + '">&nbsp;</span><span class="Current" title="' + localization.tooltips.colors.currentColor + '">&nbsp;</span></div>' + localization.text.currentColor + '</td><td rowspan="9" class="Button"><input type="button" class="Ok" value="' + localization.text.ok + '" title="' + localization.tooltips.buttons.ok + '"/><input type="button" class="Cancel" value="' + localization.text.cancel + '" title="' + localization.tooltips.buttons.cancel + '"/><hr/><div class="Grid">&nbsp;</div></td></tr><tr class="Hue"><td class="Radio"><label title="' + localization.tooltips.hue.radio + '"><input type="radio" value="h"' + (settings.color.mode == 'h' ? ' checked="checked"' : '') + '/>H:</label></td><td class="Text"><input type="text" maxlength="3" value="' + (all != null ? all.h : '') + '" title="' + localization.tooltips.hue.textbox + '"/>&nbsp;&deg;</td></tr><tr class="Saturation"><td class="Radio"><label title="' + localization.tooltips.saturation.radio + '"><input type="radio" value="s"' + (settings.color.mode == 's' ? ' checked="checked"' : '') + '/>S:</label></td><td class="Text"><input type="text" maxlength="3" value="' + (all != null ? all.s : '') + '" title="' + localization.tooltips.saturation.textbox + '"/>&nbsp;%</td></tr><tr class="Value"><td class="Radio"><label title="' + localization.tooltips.value.radio + '"><input type="radio" value="v"' + (settings.color.mode == 'v' ? ' checked="checked"' : '') + '/>V:</label><br/><br/></td><td class="Text"><input type="text" maxlength="3" value="' + (all != null ? all.v : '') + '" title="' + localization.tooltips.value.textbox + '"/>&nbsp;%<br/><br/></td></tr><tr class="Red"><td class="Radio"><label title="' + localization.tooltips.red.radio + '"><input type="radio" value="r"' + (settings.color.mode == 'r' ? ' checked="checked"' : '') + '/>R:</label></td><td class="Text"><input type="text" maxlength="3" value="' + (all != null ? all.r : '') + '" title="' + localization.tooltips.red.textbox + '"/></td></tr><tr class="Green"><td class="Radio"><label title="' + localization.tooltips.green.radio + '"><input type="radio" value="g"' + (settings.color.mode == 'g' ? ' checked="checked"' : '') + '/>G:</label></td><td class="Text"><input type="text" maxlength="3" value="' + (all != null ? all.g : '') + '" title="' + localization.tooltips.green.textbox + '"/></td></tr><tr class="Blue"><td class="Radio"><label title="' + localization.tooltips.blue.radio + '"><input type="radio" value="b"' + (settings.color.mode == 'b' ? ' checked="checked"' : '') + '/>B:</label></td><td class="Text"><input type="text" maxlength="3" value="' + (all != null ? all.b : '') + '" title="' + localization.tooltips.blue.textbox + '"/></td></tr><tr class="Alpha"><td class="Radio">' + (win.alphaSupport ? '<label title="' + localization.tooltips.alpha.radio + '"><input type="radio" value="a"' + (settings.color.mode == 'a' ? ' checked="checked"' : '') + '/>A:</label>' : '&nbsp;') + '</td><td class="Text">' + (win.alphaSupport ? '<input type="text" maxlength="' + (3 + win.alphaPrecision) + '" value="' + (all != null ? Math.precision((all.a * 100) / 255, win.alphaPrecision) : '') + '" title="' + localization.tooltips.alpha.textbox + '"/>&nbsp;%' : '&nbsp;') + '</td></tr><tr class="Hex"><td colspan="2" class="Text"><label title="' + localization.tooltips.hex.textbox + '">#:<input type="text" maxlength="6" class="Hex" value="' + (all != null ? all.hex : '') + '"/></label>' + (win.alphaSupport ? '<input type="text" maxlength="2" class="AHex" value="' + (all != null ? all.ahex.substring(6) : '') + '" title="' + localization.tooltips.hex.alpha + '"/></td>' : '&nbsp;') + '</tr></tbody></table>';
                          if (win.expandable)
                          {
                            container.html(controlHtml);
                            if($(document.body).children('div.jPicker.Container').length==0)$(document.body).prepend(container);
                            else $(document.body).children('div.jPicker.Container:last').after(container);
                            container.mousedown(
                              function()
                              {
                                $(document.body).children('div.jPicker.Container').css({zIndex:10});
                                container.css({zIndex:20});
                              });
                            container.css( // positions must be set and display set to absolute before source code injection or IE will size the container to fit the window
                              {
                                left:
                                  win.position.x == 'left' ? (popup.offset().left - 530 - (win.position.y == 'center' ? 25 : 0)) + 'px' :
                                  win.position.x == 'center' ? (popup.offset().left - 260) + 'px' :
                                  win.position.x == 'right' ? (popup.offset().left - 10 + (win.position.y == 'center' ? 25 : 0)) + 'px' :
                                  win.position.x == 'screenCenter' ? (($(document).width() >> 1) - 260) + 'px' : (popup.offset().left + parseInt(win.position.x)) + 'px',
                                position: 'absolute',
                                top: win.position.y == 'top' ? (popup.offset().top - 312) + 'px' :
                                     win.position.y == 'center' ? (popup.offset().top - 156) + 'px' :
                                     win.position.y == 'bottom' ? (popup.offset().top + 25) + 'px' : (popup.offset().top + parseInt(win.position.y)) + 'px'
                              });
                          }
                          else
                          {
                            container = $($this);
                            container.html(controlHtml);
                          }
                          // initialize the objects to the source code just injected
                          var tbody = container.find('tbody:first');
                          colorMapDiv = tbody.find('div.Map:first');
                          colorBarDiv = tbody.find('div.Bar:first');
                          var MapMaps = colorMapDiv.find('span'),
                              BarMaps = colorBarDiv.find('span');
                          colorMapL1 = MapMaps.filter('.Map1:first');
                          colorMapL2 = MapMaps.filter('.Map2:first');
                          colorMapL3 = MapMaps.filter('.Map3:first');
                          colorBarL1 = BarMaps.filter('.Map1:first');
                          colorBarL2 = BarMaps.filter('.Map2:first');
                          colorBarL3 = BarMaps.filter('.Map3:first');
                          colorBarL4 = BarMaps.filter('.Map4:first');
                          colorBarL5 = BarMaps.filter('.Map5:first');
                          colorBarL6 = BarMaps.filter('.Map6:first');
                          // create color pickers and maps
                          colorMap = new Slider(colorMapDiv,
                            {
                              map:
                              {
                                width: images.colorMap.width,
                                height: images.colorMap.height
                              },
                              arrow:
                              {
                                image: images.clientPath + images.colorMap.arrow.file,
                                width: images.colorMap.arrow.width,
                                height: images.colorMap.arrow.height
                              }
                            });
                          colorMap.bind(mapValueChanged);
                          colorBar = new Slider(colorBarDiv,
                            {
                              map:
                              {
                                width: images.colorBar.width,
                                height: images.colorBar.height
                              },
                              arrow:
                              {
                                image: images.clientPath + images.colorBar.arrow.file,
                                width: images.colorBar.arrow.width,
                                height: images.colorBar.arrow.height
                              }
                            });
                          colorBar.bind(colorBarValueChanged);
                          colorPicker = new ColorValuePicker(tbody, color.active, win.expandable && win.bindToInput ? win.input : null, win.alphaPrecision);
                          var hex = all != null ? all.hex : null,
                              preview = tbody.find('.Preview'),
                              button = tbody.find('.Button');
                          activePreview = preview.find('.Active:first').css({ backgroundColor: hex && '#' + hex || 'transparent' });
                          currentPreview = preview.find('.Current:first').css({ backgroundColor: hex && '#' + hex || 'transparent' }).bind('click', currentClicked);
                          setAlpha.call($this, currentPreview, Math.precision(color.current.val('a') * 100) / 255, 4);
                          okButton = button.find('.Ok:first').bind('click', okClicked);
                          cancelButton = button.find('.Cancel:first').bind('click', cancelClicked);
                          grid = button.find('.Grid:first');
                          setTimeout(
                            function()
                            {
                              setImg.call($this, colorMapL1, images.clientPath + 'Maps.png');
                              setImg.call($this, colorMapL2, images.clientPath + 'Maps.png');
                              setImg.call($this, colorMapL3, images.clientPath + 'map-opacity.png');
                              setImg.call($this, colorBarL1, images.clientPath + 'Bars.png');
                              setImg.call($this, colorBarL2, images.clientPath + 'Bars.png');
                              setImg.call($this, colorBarL3, images.clientPath + 'Bars.png');
                              setImg.call($this, colorBarL4, images.clientPath + 'Bars.png');
                              setImg.call($this, colorBarL5, images.clientPath + 'bar-opacity.png');
                              setImg.call($this, colorBarL6, images.clientPath + 'AlphaBar.png');
                              setImg.call($this, preview.find('div:first'), images.clientPath + 'preview-opacity.png');
                            }, 0);
                          tbody.find('td.Radio input').bind('click', radioClicked);
                          // initialize quick list
                          if (color.quickList && color.quickList.length > 0)
                          {
                            var html = '';
                            for (i = 0; i < color.quickList.length; i++)
                            {
                              /* if default colors are hex strings, change them to color objects */
                              if ((typeof (color.quickList[i])).toString().toLowerCase() == 'string') color.quickList[i] = new Color({ hex: color.quickList[i] });
                              var alpha = color.quickList[i].val('a');
                              var ahex = color.quickList[i].val('ahex');
                              if (!win.alphaSupport && ahex) ahex = ahex.substring(0, 6) + 'ff';
                              var quickHex = color.quickList[i].val('hex');
                              if(!ahex) ahex = "00000000";
                              html+='<span class="QuickColor"' + (ahex && ' title="#' + ahex + '"' || 'none') + ' style="background-color:' + (quickHex && '#' + quickHex || '') + ';' + (quickHex ? '' : 'background-image:url(' + images.clientPath + 'NoColor.png)') + (win.alphaSupport && alpha && alpha < 255 ? ';opacity:' + Math.precision(alpha / 255, 4) + ';filter:Alpha(opacity=' + Math.precision(alpha / 2.55, 4) + ')' : '') + '">&nbsp;</span>';
                            }
                            setImg.call($this, grid, images.clientPath + 'bar-opacity.png');
                            grid.html(html);
                            grid.find('.QuickColor').click(quickPickClicked);
                          }
                          setColorMode.call($this, settings.color.mode);
                          color.active.bind(activeColorChanged);
                          $.isFunction(liveCallback) && color.active.bind(liveCallback);
                          color.current.bind(currentColorChanged);
                          // bind to input
                          if (win.expandable)
                          {
                            $this.icon = popup.parents('.Icon:first');
                            iconColor = $this.icon.find('.Color:first').css({ backgroundColor: hex && '#' + hex || 'transparent' });
                            iconAlpha = $this.icon.find('.Alpha:first');
                            setImg.call($this, iconAlpha, images.clientPath + 'bar-opacity.png');
                            setAlpha.call($this, iconAlpha, Math.precision(((255 - (all != null ? all.a : 0)) * 100) / 255, 4));
                            iconImage = $this.icon.find('.Image:first').css(
                              {
                                backgroundImage: 'url(\'' + images.clientPath + images.picker.file + '\')'
                              }).bind('click', iconImageClicked);
                            if (win.bindToInput&&win.updateInputColor)
                              win.input.css(
                                {
                                  backgroundColor: hex && '#' + hex || 'transparent',
                                  color: all == null || all.v > 75 ? '#000000' : '#ffffff'
                                });
                            moveBar = tbody.find('.Move:first').bind('mousedown', moveBarMouseDown);
                            color.active.bind(expandableColorChanged);
                          }
                          else show.call($this);
                        },
                      destroy =
                        function()
                        {
                          container.find('td.Radio input').unbind('click', radioClicked);
                          currentPreview.unbind('click', currentClicked);
                          cancelButton.unbind('click', cancelClicked);
                          okButton.unbind('click', okClicked);
                          if (settings.window.expandable)
                          {
                            iconImage.unbind('click', iconImageClicked);
                            moveBar.unbind('mousedown', moveBarMouseDown);
                            $this.icon = null;
                          }
                          container.find('.QuickColor').unbind('click', quickPickClicked);
                          colorMapDiv = null;
                          colorBarDiv = null;
                          colorMapL1 = null;
                          colorMapL2 = null;
                          colorMapL3 = null;
                          colorBarL1 = null;
                          colorBarL2 = null;
                          colorBarL3 = null;
                          colorBarL4 = null;
                          colorBarL5 = null;
                          colorBarL6 = null;
                          colorMap.destroy();
                          colorMap = null;
                          colorBar.destroy();
                          colorBar = null;
                          colorPicker.destroy();
                          colorPicker = null;
                          activePreview = null;
                          currentPreview = null;
                          okButton = null;
                          cancelButton = null;
                          grid = null;
                          commitCallback = null;
                          cancelCallback = null;
                          liveCallback = null;
                          container.html('');
                          for (i = 0; i < List.length; i++) if (List[i] == $this) List.splice(i, 1);
                        },
                      images = settings.images, // local copies for YUI compressor
                      localization = settings.localization,
                      color =
                        {
                          active: (typeof(settings.color.active)).toString().toLowerCase() == 'string' ? new Color({ ahex: !settings.window.alphaSupport && settings.color.active ? settings.color.active.substring(0, 6) + 'ff' : settings.color.active }) : new Color({ ahex: !settings.window.alphaSupport && settings.color.active.val('ahex') ? settings.color.active.val('ahex').substring(0, 6) + 'ff' : settings.color.active.val('ahex') }),
                          current: (typeof(settings.color.active)).toString().toLowerCase() == 'string' ? new Color({ ahex: !settings.window.alphaSupport && settings.color.active ? settings.color.active.substring(0, 6) + 'ff' : settings.color.active }) : new Color({ ahex: !settings.window.alphaSupport && settings.color.active.val('ahex') ? settings.color.active.val('ahex').substring(0, 6) + 'ff' : settings.color.active.val('ahex') }),
                          quickList: settings.color.quickList
                        };
                    $.extend(true, $this, // public properties, methods, and callbacks
                      {
                        commitCallback: commitCallback, // commitCallback function can be overridden to return the selected color to a method you specify when the user clicks "OK"
                        liveCallback: liveCallback, // liveCallback function can be overridden to return the selected color to a method you specify in live mode (continuous update)
                        cancelCallback: cancelCallback, // cancelCallback function can be overridden to a method you specify when the user clicks "Cancel"
                        color: color,
                        show: show,
                        hide: hide,
                        destroy: destroy // destroys this control entirely, removing all events and objects, and removing itself from the List
                      });
                    List.push($this);
                    setTimeout(
                      function()
                      {
                        initialize.call($this);
                      }, 0);
                  });
              };
            $.fn.jPicker.defaults = /* jPicker defaults - you can change anything in this section (such as the clientPath to your images) without fear of breaking the program */
                {
                window:
                  {
                    title: null, /* any title for the jPicker window itself - displays "Drag Markers To Pick A Color" if left null */
                    effects:
                    {
                      type: 'slide', /* effect used to show/hide an expandable picker. Acceptable values "slide", "show", "fade" */
                      speed:
                      {
                        show: 'slow', /* duration of "show" effect. Acceptable values are "fast", "slow", or time in ms */
                        hide: 'fast' /* duration of "hide" effect. Acceptable values are "fast", "slow", or time in ms */
                      }
                    },
                    position:
                    {
                      x: 'screenCenter', /* acceptable values "left", "center", "right", "screenCenter", or relative px value */
                      y: 'top' /* acceptable values "top", "bottom", "center", or relative px value */
                    },
                    expandable: false, /* default to large static picker - set to true to make an expandable picker (small icon with popup) - set automatically when binded to input element */
                    liveUpdate: true, /* set false if you want the user to have to click "OK" before the binded input box updates values (always "true" for expandable picker) */
                    alphaSupport: false, /* set to true to enable alpha picking */
                    alphaPrecision: 0, /* set decimal precision for alpha percentage display - hex codes do not map directly to percentage integers - range 0-2 */
                    updateInputColor: true /* set to false to prevent binded input colors from changing */
                  },
                color:
                  {
                    mode: 'h', /* acceptabled values "h" (hue), "s" (saturation), "v" (value), "r" (red), "g" (green), "b" (blue), "a" (alpha) */
                    active: new Color({ ahex: '#ffcc00ff' }), /* acceptable values are any declared $.jPicker.Color object or string HEX value (e.g. #ffc000) WITH OR WITHOUT the "#" prefix */
                    quickList: /* the quick pick color list */
                      [
                        new Color({ h: 360, s: 33, v: 100 }), /* acceptable values are any declared $.jPicker.Color object or string HEX value (e.g. #ffc000) WITH OR WITHOUT the "#" prefix */
                        new Color({ h: 360, s: 66, v: 100 }),
                        new Color({ h: 360, s: 100, v: 100 }),
                        new Color({ h: 360, s: 100, v: 75 }),
                        new Color({ h: 360, s: 100, v: 50 }),
                        new Color({ h: 180, s: 0, v: 100 }),
                        new Color({ h: 30, s: 33, v: 100 }),
                        new Color({ h: 30, s: 66, v: 100 }),
                        new Color({ h: 30, s: 100, v: 100 }),
                        new Color({ h: 30, s: 100, v: 75 }),
                        new Color({ h: 30, s: 100, v: 50 }),
                        new Color({ h: 180, s: 0, v: 90 }),
                        new Color({ h: 60, s: 33, v: 100 }),
                        new Color({ h: 60, s: 66, v: 100 }),
                        new Color({ h: 60, s: 100, v: 100 }),
                        new Color({ h: 60, s: 100, v: 75 }),
                        new Color({ h: 60, s: 100, v: 50 }),
                        new Color({ h: 180, s: 0, v: 80 }),
                        new Color({ h: 90, s: 33, v: 100 }),
                        new Color({ h: 90, s: 66, v: 100 }),
                        new Color({ h: 90, s: 100, v: 100 }),
                        new Color({ h: 90, s: 100, v: 75 }),
                        new Color({ h: 90, s: 100, v: 50 }),
                        new Color({ h: 180, s: 0, v: 70 }),
                        new Color({ h: 120, s: 33, v: 100 }),
                        new Color({ h: 120, s: 66, v: 100 }),
                        new Color({ h: 120, s: 100, v: 100 }),
                        new Color({ h: 120, s: 100, v: 75 }),
                        new Color({ h: 120, s: 100, v: 50 }),
                        new Color({ h: 180, s: 0, v: 60 }),
                        new Color({ h: 150, s: 33, v: 100 }),
                        new Color({ h: 150, s: 66, v: 100 }),
                        new Color({ h: 150, s: 100, v: 100 }),
                        new Color({ h: 150, s: 100, v: 75 }),
                        new Color({ h: 150, s: 100, v: 50 }),
                        new Color({ h: 180, s: 0, v: 50 }),
                        new Color({ h: 180, s: 33, v: 100 }),
                        new Color({ h: 180, s: 66, v: 100 }),
                        new Color({ h: 180, s: 100, v: 100 }),
                        new Color({ h: 180, s: 100, v: 75 }),
                        new Color({ h: 180, s: 100, v: 50 }),
                        new Color({ h: 180, s: 0, v: 40 }),
                        new Color({ h: 210, s: 33, v: 100 }),
                        new Color({ h: 210, s: 66, v: 100 }),
                        new Color({ h: 210, s: 100, v: 100 }),
                        new Color({ h: 210, s: 100, v: 75 }),
                        new Color({ h: 210, s: 100, v: 50 }),
                        new Color({ h: 180, s: 0, v: 30 }),
                        new Color({ h: 240, s: 33, v: 100 }),
                        new Color({ h: 240, s: 66, v: 100 }),
                        new Color({ h: 240, s: 100, v: 100 }),
                        new Color({ h: 240, s: 100, v: 75 }),
                        new Color({ h: 240, s: 100, v: 50 }),
                        new Color({ h: 180, s: 0, v: 20 }),
                        new Color({ h: 270, s: 33, v: 100 }),
                        new Color({ h: 270, s: 66, v: 100 }),
                        new Color({ h: 270, s: 100, v: 100 }),
                        new Color({ h: 270, s: 100, v: 75 }),
                        new Color({ h: 270, s: 100, v: 50 }),
                        new Color({ h: 180, s: 0, v: 10 }),
                        new Color({ h: 300, s: 33, v: 100 }),
                        new Color({ h: 300, s: 66, v: 100 }),
                        new Color({ h: 300, s: 100, v: 100 }),
                        new Color({ h: 300, s: 100, v: 75 }),
                        new Color({ h: 300, s: 100, v: 50 }),
                        new Color({ h: 180, s: 0, v: 0 }),
                        new Color({ h: 330, s: 33, v: 100 }),
                        new Color({ h: 330, s: 66, v: 100 }),
                        new Color({ h: 330, s: 100, v: 100 }),
                        new Color({ h: 330, s: 100, v: 75 }),
                        new Color({ h: 330, s: 100, v: 50 }),
                        new Color()
                      ]
                  },
                images:
                  {
                    clientPath: '/jPicker/images/', /* Path to image files */
                    colorMap:
                    {
                      width: 256,
                      height: 256,
                      arrow:
                      {
                        file: 'mappoint.gif', /* ColorMap arrow icon */
                        width: 15,
                        height: 15
                      }
                    },
                    colorBar:
                    {
                      width: 20,
                      height: 256,
                      arrow:
                      {
                        file: 'rangearrows.gif', /* ColorBar arrow icon */
                        width: 20,
                        height: 7
                      }
                    },
                    picker:
                    {
                      file: 'picker.gif', /* Color Picker icon */
                      width: 25,
                      height: 24
                    }
                  },
                localization: /* alter these to change the text presented by the picker (e.g. different language) */
                  {
                    text:
                    {
                      title: 'Drag Markers To Pick A Color',
                      newColor: 'new',
                      currentColor: 'current',
                      ok: 'OK',
                      cancel: 'Cancel'
                    },
                    tooltips:
                    {
                      colors:
                      {
                        newColor: 'New Color - Press &ldquo;OK&rdquo; To Commit',
                        currentColor: 'Click To Revert To Original Color'
                      },
                      buttons:
                      {
                        ok: 'Commit To This Color Selection',
                        cancel: 'Cancel And Revert To Original Color'
                      },
                      hue:
                      {
                        radio: 'Set To &ldquo;Hue&rdquo; Color Mode',
                        textbox: 'Enter A &ldquo;Hue&rdquo; Value (0-360&deg;)'
                      },
                      saturation:
                      {
                        radio: 'Set To &ldquo;Saturation&rdquo; Color Mode',
                        textbox: 'Enter A &ldquo;Saturation&rdquo; Value (0-100%)'
                      },
                      value:
                      {
                        radio: 'Set To &ldquo;Value&rdquo; Color Mode',
                        textbox: 'Enter A &ldquo;Value&rdquo; Value (0-100%)'
                      },
                      red:
                      {
                        radio: 'Set To &ldquo;Red&rdquo; Color Mode',
                        textbox: 'Enter A &ldquo;Red&rdquo; Value (0-255)'
                      },
                      green:
                      {
                        radio: 'Set To &ldquo;Green&rdquo; Color Mode',
                        textbox: 'Enter A &ldquo;Green&rdquo; Value (0-255)'
                      },
                      blue:
                      {
                        radio: 'Set To &ldquo;Blue&rdquo; Color Mode',
                        textbox: 'Enter A &ldquo;Blue&rdquo; Value (0-255)'
                      },
                      alpha:
                      {
                        radio: 'Set To &ldquo;Alpha&rdquo; Color Mode',
                        textbox: 'Enter A &ldquo;Alpha&rdquo; Value (0-100)'
                      },
                      hex:
                      {
                        textbox: 'Enter A &ldquo;Hex&rdquo; Color Value (#000000-#ffffff)',
                        alpha: 'Enter A &ldquo;Alpha&rdquo; Value (#00-#ff)'
                      }
                    }
                  }
              };
          })(jQuery, '1.1.6');
        • jpicker.min.js
          (function(e,a){Math.precision=function(j,h){if(h===undefined){h=0}return Math.round(j*Math.pow(10,h))/Math.pow(10,h)};var d=function(z,k){var o=this,j=z.find("img:first"),F=0,E=100,w=100,D=0,C=100,v=100,s=0,p=0,n,q,u=new Array(),l=function(y){for(var x=0;x<u.length;x++){u[x].call(o,o,y)}},H=function(x){var y=z.offset();n={l:y.left|0,t:y.top|0};clearTimeout(q);q=setTimeout(function(){A.call(o,x)},0);e(document).bind("mousemove",h).bind("mouseup",B);x.preventDefault()},h=function(x){clearTimeout(q);q=setTimeout(function(){A.call(o,x)},0);x.stopPropagation();x.preventDefault();return false},B=function(x){e(document).unbind("mouseup",B).unbind("mousemove",h);x.stopPropagation();x.preventDefault();return false},A=function(M){var K=M.pageX-n.l,x=M.pageY-n.t,L=z.w,y=z.h;if(K<0){K=0}else{if(K>L){K=L}}if(x<0){x=0}else{if(x>y){x=y}}J.call(o,"xy",{x:((K/L)*w)+F,y:((x/y)*v)+D})},r=function(){var L=0,x=0,N=z.w,K=z.h,M=j.w,y=j.h;setTimeout(function(){if(w>0){if(s==E){L=N}else{L=((s/w)*N)|0}}if(v>0){if(p==C){x=K}else{x=((p/v)*K)|0}}if(M>=N){L=(N>>1)-(M>>1)}else{L-=M>>1}if(y>=K){x=(K>>1)-(y>>1)}else{x-=y>>1}j.css({left:L+"px",top:x+"px"})},0)},J=function(x,K,y){var O=K!==undefined;if(!O){if(x===undefined||x==null){x="xy"}switch(x.toLowerCase()){case"x":return s;case"y":return p;case"xy":default:return{x:s,y:p}}}if(y!=null&&y==o){return}var N=false,M,L;if(x==null){x="xy"}switch(x.toLowerCase()){case"x":M=K&&(K.x&&K.x|0||K|0)||0;break;case"y":L=K&&(K.y&&K.y|0||K|0)||0;break;case"xy":default:M=K&&K.x&&K.x|0||0;L=K&&K.y&&K.y|0||0;break}if(M!=null){if(M<F){M=F}else{if(M>E){M=E}}if(s!=M){s=M;N=true}}if(L!=null){if(L<D){L=D}else{if(L>C){L=C}}if(p!=L){p=L;N=true}}N&&l.call(o,y||o)},t=function(x,L){var P=L!==undefined;if(!P){if(x===undefined||x==null){x="all"}switch(x.toLowerCase()){case"minx":return F;case"maxx":return E;case"rangex":return{minX:F,maxX:E,rangeX:w};case"miny":return D;case"maxy":return C;case"rangey":return{minY:D,maxY:C,rangeY:v};case"all":default:return{minX:F,maxX:E,rangeX:w,minY:D,maxY:C,rangeY:v}}}var O=false,N,K,M,y;if(x==null){x="all"}switch(x.toLowerCase()){case"minx":N=L&&(L.minX&&L.minX|0||L|0)||0;break;case"maxx":K=L&&(L.maxX&&L.maxX|0||L|0)||0;break;case"rangex":N=L&&L.minX&&L.minX|0||0;K=L&&L.maxX&&L.maxX|0||0;break;case"miny":M=L&&(L.minY&&L.minY|0||L|0)||0;break;case"maxy":y=L&&(L.maxY&&L.maxY|0||L|0)||0;break;case"rangey":M=L&&L.minY&&L.minY|0||0;y=L&&L.maxY&&L.maxY|0||0;break;case"all":default:N=L&&L.minX&&L.minX|0||0;K=L&&L.maxX&&L.maxX|0||0;M=L&&L.minY&&L.minY|0||0;y=L&&L.maxY&&L.maxY|0||0;break}if(N!=null&&F!=N){F=N;w=E-F}if(K!=null&&E!=K){E=K;w=E-F}if(M!=null&&D!=M){D=M;v=C-D}if(y!=null&&C!=y){C=y;v=C-D}},I=function(x){if(e.isFunction(x)){u.push(x)}},m=function(y){if(!e.isFunction(y)){return}var x;while((x=e.inArray(y,u))!=-1){u.splice(x,1)}},G=function(){e(document).unbind("mouseup",B).unbind("mousemove",h);z.unbind("mousedown",H);z=null;j=null;u=null};e.extend(true,o,{val:J,range:t,bind:I,unbind:m,destroy:G});j.src=k.arrow&&k.arrow.image;j.w=k.arrow&&k.arrow.width||j.width();j.h=k.arrow&&k.arrow.height||j.height();z.w=k.map&&k.map.width||z.width();z.h=k.map&&k.map.height||z.height();z.bind("mousedown",H);I.call(o,r)},b=function(u,z,k,y){var q=this,l=u.find("td.Text input"),r=l.eq(3),v=l.eq(4),h=l.eq(5),o=l.length>7?l.eq(6):null,n=l.eq(0),p=l.eq(1),x=l.eq(2),s=l.eq(l.length>7?7:6),B=l.length>7?l.eq(8):null,w=function(D){if(D.target.value==""&&D.target!=s.get(0)&&(k!=null&&D.target!=k.get(0)||k==null)){return}if(!t(D)){return D}switch(D.target){case r.get(0):r.val(j.call(q,r.val(),0,255));z.val("r",r.val(),D.target);break;case v.get(0):v.val(j.call(q,v.val(),0,255));z.val("g",v.val(),D.target);break;case h.get(0):h.val(j.call(q,h.val(),0,255));z.val("b",h.val(),D.target);break;case o&&o.get(0):o.val(j.call(q,o.val(),0,100));z.val("a",Math.precision((o.val()*255)/100,y),D.target);break;case n.get(0):n.val(j.call(q,n.val(),0,360));z.val("h",n.val(),D.target);break;case p.get(0):p.val(j.call(q,p.val(),0,100));z.val("s",p.val(),D.target);break;case x.get(0):x.val(j.call(q,x.val(),0,100));z.val("v",x.val(),D.target);break;case s.get(0):s.val(s.val().replace(/[^a-fA-F0-9]/g,"").toLowerCase().substring(0,6));k&&k.val(s.val());z.val("hex",s.val()!=""?s.val():null,D.target);break;case k&&k.get(0):k.val(k.val().replace(/[^a-fA-F0-9]/g,"").toLowerCase().substring(0,6));s.val(k.val());z.val("hex",k.val()!=""?k.val():null,D.target);break;case B&&B.get(0):B.val(B.val().replace(/[^a-fA-F0-9]/g,"").toLowerCase().substring(0,2));z.val("a",B.val()!=null?parseInt(B.val(),16):null,D.target);break}},A=function(D){if(z.val()!=null){switch(D.target){case r.get(0):r.val(z.val("r"));break;case v.get(0):v.val(z.val("g"));break;case h.get(0):h.val(z.val("b"));break;case o&&o.get(0):o.val(Math.precision((z.val("a")*100)/255,y));break;case n.get(0):n.val(z.val("h"));break;case p.get(0):p.val(z.val("s"));break;case x.get(0):x.val(z.val("v"));break;case s.get(0):case k&&k.get(0):s.val(z.val("hex"));k&&k.val(z.val("hex"));break;case B&&B.get(0):B.val(z.val("ahex").substring(6));break}}},t=function(D){switch(D.keyCode){case 9:case 16:case 29:case 37:case 38:case 40:return false;case"c".charCodeAt():case"v".charCodeAt():if(D.ctrlKey){return false}}return true},j=function(F,E,D){if(F==""||isNaN(F)){return E}if(F>D){return D}if(F<E){return E}return F},m=function(F,D){var E=F.val("all");if(D!=r.get(0)){r.val(E!=null?E.r:"")}if(D!=v.get(0)){v.val(E!=null?E.g:"")}if(D!=h.get(0)){h.val(E!=null?E.b:"")}if(o&&D!=o.get(0)){o.val(E!=null?Math.precision((E.a*100)/255,y):"")}if(D!=n.get(0)){n.val(E!=null?E.h:"")}if(D!=p.get(0)){p.val(E!=null?E.s:"")}if(D!=x.get(0)){x.val(E!=null?E.v:"")}if(D!=s.get(0)&&(k&&D!=k.get(0)||!k)){s.val(E!=null?E.hex:"")}if(k&&D!=k.get(0)&&D!=s.get(0)){k.val(E!=null?E.hex:"")}if(B&&D!=B.get(0)){B.val(E!=null?E.ahex.substring(6):"")}},C=function(){r.add(v).add(h).add(o).add(n).add(p).add(x).add(s).add(k).add(B).unbind("keyup",w).unbind("blur",A);z.unbind(m);r=null;v=null;h=null;o=null;n=null;p=null;x=null;s=null;B=null};e.extend(true,q,{destroy:C});r.add(v).add(h).add(o).add(n).add(p).add(x).add(s).add(k).add(B).bind("keyup",w).bind("blur",A);z.bind(m)};e.jPicker={List:[],Color:function(z){var q=this,j,o,t,u,n,A,x,k=new Array(),m=function(r){for(var h=0;h<k.length;h++){k[h].call(q,q,r)}},l=function(h,G,r){var F=G!==undefined;if(!F){if(h===undefined||h==null||h==""){h="all"}if(j==null){return null}switch(h.toLowerCase()){case"ahex":return g.rgbaToHex({r:j,g:o,b:t,a:u});case"hex":return l("ahex").substring(0,6);case"all":return{r:j,g:o,b:t,a:u,h:n,s:A,v:x,hex:l.call(q,"hex"),ahex:l.call(q,"ahex")};default:var D={};for(var B=0;B<h.length;B++){switch(h.charAt(B)){case"r":if(h.length==1){D=j}else{D.r=j}break;case"g":if(h.length==1){D=o}else{D.g=o}break;case"b":if(h.length==1){D=t}else{D.b=t}break;case"a":if(h.length==1){D=u}else{D.a=u}break;case"h":if(h.length==1){D=n}else{D.h=n}break;case"s":if(h.length==1){D=A}else{D.s=A}break;case"v":if(h.length==1){D=x}else{D.v=x}break}}return D=={}?l.call(q,"all"):D;break}}if(r!=null&&r==q){return}var v=false;if(h==null){h=""}if(G==null){if(j!=null){j=null;v=true}if(o!=null){o=null;v=true}if(t!=null){t=null;v=true}if(u!=null){u=null;v=true}if(n!=null){n=null;v=true}if(A!=null){A=null;v=true}if(x!=null){x=null;v=true}v&&m.call(q,r||q);return}switch(h.toLowerCase()){case"ahex":case"hex":var D=g.hexToRgba(G&&(G.ahex||G.hex)||G||"00000000");l.call(q,"rgba",{r:D.r,g:D.g,b:D.b,a:h=="ahex"?D.a:u!=null?u:255},r);break;default:if(G&&(G.ahex!=null||G.hex!=null)){l.call(q,"ahex",G.ahex||G.hex||"00000000",r);return}var s={},E=false,C=false;if(G.r!==undefined&&!h.indexOf("r")==-1){h+="r"}if(G.g!==undefined&&!h.indexOf("g")==-1){h+="g"}if(G.b!==undefined&&!h.indexOf("b")==-1){h+="b"}if(G.a!==undefined&&!h.indexOf("a")==-1){h+="a"}if(G.h!==undefined&&!h.indexOf("h")==-1){h+="h"}if(G.s!==undefined&&!h.indexOf("s")==-1){h+="s"}if(G.v!==undefined&&!h.indexOf("v")==-1){h+="v"}for(var B=0;B<h.length;B++){switch(h.charAt(B)){case"r":if(C){continue}E=true;s.r=G&&G.r&&G.r|0||G&&G|0||0;if(s.r<0){s.r=0}else{if(s.r>255){s.r=255}}if(j!=s.r){j=s.r;v=true}break;case"g":if(C){continue}E=true;s.g=G&&G.g&&G.g|0||G&&G|0||0;if(s.g<0){s.g=0}else{if(s.g>255){s.g=255}}if(o!=s.g){o=s.g;v=true}break;case"b":if(C){continue}E=true;s.b=G&&G.b&&G.b|0||G&&G|0||0;if(s.b<0){s.b=0}else{if(s.b>255){s.b=255}}if(t!=s.b){t=s.b;v=true}break;case"a":s.a=G&&G.a!=null?G.a|0:G!=null?G|0:255;if(s.a<0){s.a=0}else{if(s.a>255){s.a=255}}if(u!=s.a){u=s.a;v=true}break;case"h":if(E){continue}C=true;s.h=G&&G.h&&G.h|0||G&&G|0||0;if(s.h<0){s.h=0}else{if(s.h>360){s.h=360}}if(n!=s.h){n=s.h;v=true}break;case"s":if(E){continue}C=true;s.s=G&&G.s!=null?G.s|0:G!=null?G|0:100;if(s.s<0){s.s=0}else{if(s.s>100){s.s=100}}if(A!=s.s){A=s.s;v=true}break;case"v":if(E){continue}C=true;s.v=G&&G.v!=null?G.v|0:G!=null?G|0:100;if(s.v<0){s.v=0}else{if(s.v>100){s.v=100}}if(x!=s.v){x=s.v;v=true}break}}if(v){if(E){j=j||0;o=o||0;t=t||0;var D=g.rgbToHsv({r:j,g:o,b:t});n=D.h;A=D.s;x=D.v}else{if(C){n=n||0;A=A!=null?A:100;x=x!=null?x:100;var D=g.hsvToRgb({h:n,s:A,v:x});j=D.r;o=D.g;t=D.b}}u=u!=null?u:255;m.call(q,r||q)}break}},p=function(h){if(e.isFunction(h)){k.push(h)}},y=function(r){if(!e.isFunction(r)){return}var h;while((h=e.inArray(r,k))!=-1){k.splice(h,1)}},w=function(){k=null};e.extend(true,q,{val:l,bind:p,unbind:y,destroy:w});if(z){if(z.ahex!=null){l("ahex",z)}else{if(z.hex!=null){l((z.a!=null?"a":"")+"hex",z.a!=null?{ahex:z.hex+g.intToHex(z.a)}:z)}else{if(z.r!=null&&z.g!=null&&z.b!=null){l("rgb"+(z.a!=null?"a":""),z)}else{if(z.h!=null&&z.s!=null&&z.v!=null){l("hsv"+(z.a!=null?"a":""),z)}}}}}},ColorMethods:{hexToRgba:function(m){m=this.validateHex(m);if(m==""){return{r:null,g:null,b:null,a:null}}var l="00",k="00",h="00",j="255";if(m.length==6){m+="ff"}if(m.length>6){l=m.substring(0,2);k=m.substring(2,4);h=m.substring(4,6);j=m.substring(6,m.length)}else{if(m.length>4){l=m.substring(4,m.length);m=m.substring(0,4)}if(m.length>2){k=m.substring(2,m.length);m=m.substring(0,2)}if(m.length>0){h=m.substring(0,m.length)}}return{r:this.hexToInt(l),g:this.hexToInt(k),b:this.hexToInt(h),a:this.hexToInt(j)}},validateHex:function(h){h=h.toLowerCase().replace(/[^a-f0-9]/g,"");if(h.length>8){h=h.substring(0,8)}return h},rgbaToHex:function(h){return this.intToHex(h.r)+this.intToHex(h.g)+this.intToHex(h.b)+this.intToHex(h.a)},intToHex:function(j){var h=(j|0).toString(16);if(h.length==1){h=("0"+h)}return h.toLowerCase()},hexToInt:function(h){return parseInt(h,16)},rgbToHsv:function(l){var o=l.r/255,n=l.g/255,j=l.b/255,k={h:0,s:0,v:0},m=0,h=0,p;if(o>=n&&o>=j){h=o;m=n>j?j:n}else{if(n>=j&&n>=o){h=n;m=o>j?j:o}else{h=j;m=n>o?o:n}}k.v=h;k.s=h?(h-m)/h:0;if(!k.s){k.h=0}else{p=h-m;if(o==h){k.h=(n-j)/p}else{if(n==h){k.h=2+(j-o)/p}else{k.h=4+(o-n)/p}}k.h=parseInt(k.h*60);if(k.h<0){k.h+=360}}k.s=(k.s*100)|0;k.v=(k.v*100)|0;return k},hsvToRgb:function(n){var r={r:0,g:0,b:0,a:100},m=n.h,x=n.s,u=n.v;if(x==0){if(u==0){r.r=r.g=r.b=0}else{r.r=r.g=r.b=(u*255/100)|0}}else{if(m==360){m=0}m/=60;x=x/100;u=u/100;var l=m|0,o=m-l,k=u*(1-x),j=u*(1-(x*o)),w=u*(1-(x*(1-o)));switch(l){case 0:r.r=u;r.g=w;r.b=k;break;case 1:r.r=j;r.g=u;r.b=k;break;case 2:r.r=k;r.g=u;r.b=w;break;case 3:r.r=k;r.g=j;r.b=u;break;case 4:r.r=w;r.g=k;r.b=u;break;case 5:r.r=u;r.g=k;r.b=j;break}r.r=(r.r*255)|0;r.g=(r.g*255)|0;r.b=(r.b*255)|0}return r}}};var f=e.jPicker.Color,c=e.jPicker.List,g=e.jPicker.ColorMethods;e.fn.jPicker=function(j){var h=arguments;return this.each(function(){var w=this,av=e.extend(true,{},e.fn.jPicker.defaults,j);if(e(w).get(0).nodeName.toLowerCase()=="input"){e.extend(true,av,{window:{bindToInput:true,expandable:true,input:e(w)}});if(e(w).val()==""){av.color.active=new f({hex:null});av.color.current=new f({hex:null})}else{if(g.validateHex(e(w).val())){av.color.active=new f({hex:e(w).val(),a:av.color.active.val("a")});av.color.current=new f({hex:e(w).val(),a:av.color.active.val("a")})}}}if(av.window.expandable){e(w).after('<span class="jPicker"><span class="Icon"><span class="Color">&nbsp;</span><span class="Alpha">&nbsp;</span><span class="Image" title="Click To Open Color Picker">&nbsp;</span><span class="Container">&nbsp;</span></span></span>')}else{av.window.liveUpdate=false}var Q=parseFloat(navigator.appVersion.split("MSIE")[1])<7&&document.body.filters,R=null,l=null,s=null,au=null,at=null,ar=null,P=null,O=null,N=null,M=null,L=null,K=null,D=null,U=null,aw=null,J=null,I=null,am=null,ai=null,E=null,an=null,ah=null,X=null,ab=null,aq=null,r=null,C=null,u=null,ag=function(aB){var aD=G.active,aE=n.clientPath,aA=aD.val("hex"),aC,az;av.color.mode=aB;switch(aB){case"h":setTimeout(function(){y.call(w,l,"transparent");x.call(w,au,0);Y.call(w,au,100);x.call(w,at,260);Y.call(w,at,100);y.call(w,s,"transparent");x.call(w,P,0);Y.call(w,P,100);x.call(w,O,260);Y.call(w,O,100);x.call(w,N,260);Y.call(w,N,100);x.call(w,M,260);Y.call(w,M,100);x.call(w,K,260);Y.call(w,K,100)},0);D.range("all",{minX:0,maxX:100,minY:0,maxY:100});U.range("rangeY",{minY:0,maxY:360});if(aD.val("ahex")==null){break}D.val("xy",{x:aD.val("s"),y:100-aD.val("v")},D);U.val("y",360-aD.val("h"),U);break;case"s":setTimeout(function(){y.call(w,l,"transparent");x.call(w,au,-260);x.call(w,at,-520);x.call(w,P,-260);x.call(w,O,-520);x.call(w,K,260);Y.call(w,K,100)},0);D.range("all",{minX:0,maxX:360,minY:0,maxY:100});U.range("rangeY",{minY:0,maxY:100});if(aD.val("ahex")==null){break}D.val("xy",{x:aD.val("h"),y:100-aD.val("v")},D);U.val("y",100-aD.val("s"),U);break;case"v":setTimeout(function(){y.call(w,l,"000000");x.call(w,au,-780);x.call(w,at,260);y.call(w,s,aA);x.call(w,P,-520);x.call(w,O,260);Y.call(w,O,100);x.call(w,K,260);Y.call(w,K,100)},0);D.range("all",{minX:0,maxX:360,minY:0,maxY:100});U.range("rangeY",{minY:0,maxY:100});if(aD.val("ahex")==null){break}D.val("xy",{x:aD.val("h"),y:100-aD.val("s")},D);U.val("y",100-aD.val("v"),U);break;case"r":aC=-1040;az=-780;D.range("all",{minX:0,maxX:255,minY:0,maxY:255});U.range("rangeY",{minY:0,maxY:255});if(aD.val("ahex")==null){break}D.val("xy",{x:aD.val("b"),y:255-aD.val("g")},D);U.val("y",255-aD.val("r"),U);break;case"g":aC=-1560;az=-1820;D.range("all",{minX:0,maxX:255,minY:0,maxY:255});U.range("rangeY",{minY:0,maxY:255});if(aD.val("ahex")==null){break}D.val("xy",{x:aD.val("b"),y:255-aD.val("r")},D);U.val("y",255-aD.val("g"),U);break;case"b":aC=-2080;az=-2860;D.range("all",{minX:0,maxX:255,minY:0,maxY:255});U.range("rangeY",{minY:0,maxY:255});if(aD.val("ahex")==null){break}D.val("xy",{x:aD.val("r"),y:255-aD.val("g")},D);U.val("y",255-aD.val("b"),U);break;case"a":setTimeout(function(){y.call(w,l,"transparent");x.call(w,au,-260);x.call(w,at,-520);x.call(w,P,260);x.call(w,O,260);Y.call(w,O,100);x.call(w,K,0);Y.call(w,K,100)},0);D.range("all",{minX:0,maxX:360,minY:0,maxY:100});U.range("rangeY",{minY:0,maxY:255});if(aD.val("ahex")==null){break}D.val("xy",{x:aD.val("h"),y:100-aD.val("v")},D);U.val("y",255-aD.val("a"),U);break;default:throw ("Invalid Mode");break}switch(aB){case"h":break;case"s":case"v":case"a":setTimeout(function(){Y.call(w,au,100);Y.call(w,P,100);x.call(w,N,260);Y.call(w,N,100);x.call(w,M,260);Y.call(w,M,100)},0);break;case"r":case"g":case"b":setTimeout(function(){y.call(w,l,"transparent");y.call(w,s,"transparent");Y.call(w,P,100);Y.call(w,au,100);x.call(w,au,aC);x.call(w,at,aC-260);x.call(w,P,az-780);x.call(w,O,az-520);x.call(w,N,az);x.call(w,M,az-260);x.call(w,K,260);Y.call(w,K,100)},0);break}if(aD.val("ahex")==null){return}aj.call(w,aD)},aj=function(aA,az){if(az==null||(az!=U&&az!=D)){v.call(w,aA,az)}setTimeout(function(){ay.call(w,aA);al.call(w,aA);W.call(w,aA)},0)},z=function(aA,az){var aC=G.active;if(az!=D&&aC.val()==null){return}var aB=aA.val("all");switch(av.color.mode){case"h":aC.val("sv",{s:aB.x,v:100-aB.y},az);break;case"s":case"a":aC.val("hv",{h:aB.x,v:100-aB.y},az);break;case"v":aC.val("hs",{h:aB.x,s:100-aB.y},az);break;case"r":aC.val("gb",{g:255-aB.y,b:aB.x},az);break;case"g":aC.val("rb",{r:255-aB.y,b:aB.x},az);break;case"b":aC.val("rg",{r:aB.x,g:255-aB.y},az);break}},ac=function(aA,az){var aB=G.active;if(az!=U&&aB.val()==null){return}switch(av.color.mode){case"h":aB.val("h",{h:360-aA.val("y")},az);break;case"s":aB.val("s",{s:100-aA.val("y")},az);break;case"v":aB.val("v",{v:100-aA.val("y")},az);break;case"r":aB.val("r",{r:255-aA.val("y")},az);break;case"g":aB.val("g",{g:255-aA.val("y")},az);break;case"b":aB.val("b",{b:255-aA.val("y")},az);break;case"a":aB.val("a",255-aA.val("y"),az);break}},v=function(aC,az){if(az!=D){switch(av.color.mode){case"h":var aH=aC.val("sv");D.val("xy",{x:aH!=null?aH.s:100,y:100-(aH!=null?aH.v:100)},az);break;case"s":case"a":var aB=aC.val("hv");D.val("xy",{x:aB&&aB.h||0,y:100-(aB!=null?aB.v:100)},az);break;case"v":var aE=aC.val("hs");D.val("xy",{x:aE&&aE.h||0,y:100-(aE!=null?aE.s:100)},az);break;case"r":var aA=aC.val("bg");D.val("xy",{x:aA&&aA.b||0,y:255-(aA&&aA.g||0)},az);break;case"g":var aI=aC.val("br");D.val("xy",{x:aI&&aI.b||0,y:255-(aI&&aI.r||0)},az);break;case"b":var aG=aC.val("rg");D.val("xy",{x:aG&&aG.r||0,y:255-(aG&&aG.g||0)},az);break}}if(az!=U){switch(av.color.mode){case"h":U.val("y",360-(aC.val("h")||0),az);break;case"s":var aJ=aC.val("s");U.val("y",100-(aJ!=null?aJ:100),az);break;case"v":var aF=aC.val("v");U.val("y",100-(aF!=null?aF:100),az);break;case"r":U.val("y",255-(aC.val("r")||0),az);break;case"g":U.val("y",255-(aC.val("g")||0),az);break;case"b":U.val("y",255-(aC.val("b")||0),az);break;case"a":var aD=aC.val("a");U.val("y",255-(aD!=null?aD:255),az);break}}},ay=function(aA){try{var az=aA.val("all");E.css({backgroundColor:az&&"#"+az.hex||"transparent"});Y.call(w,E,az&&Math.precision((az.a*100)/255,4)||0)}catch(aB){}},al=function(aC){switch(av.color.mode){case"h":y.call(w,l,new f({h:aC.val("h")||0,s:100,v:100}).val("hex"));break;case"s":case"a":var aB=aC.val("s");Y.call(w,at,100-(aB!=null?aB:100));break;case"v":var aA=aC.val("v");Y.call(w,au,aA!=null?aA:100);break;case"r":Y.call(w,at,Math.precision((aC.val("r")||0)/255*100,4));break;case"g":Y.call(w,at,Math.precision((aC.val("g")||0)/255*100,4));break;case"b":Y.call(w,at,Math.precision((aC.val("b")||0)/255*100));break}var az=aC.val("a");Y.call(w,ar,Math.precision(((255-(az||0))*100)/255,4))},W=function(aF){switch(av.color.mode){case"h":var aH=aF.val("a");Y.call(w,L,Math.precision(((255-(aH||0))*100)/255,4));break;case"s":var aA=aF.val("hva"),aB=new f({h:aA&&aA.h||0,s:100,v:aA!=null?aA.v:100});y.call(w,s,aB.val("hex"));Y.call(w,O,100-(aA!=null?aA.v:100));Y.call(w,L,Math.precision(((255-(aA&&aA.a||0))*100)/255,4));break;case"v":var aC=aF.val("hsa"),aE=new f({h:aC&&aC.h||0,s:aC!=null?aC.s:100,v:100});y.call(w,s,aE.val("hex"));Y.call(w,L,Math.precision(((255-(aC&&aC.a||0))*100)/255,4));break;case"r":case"g":case"b":var aD=0,aG=0,az=aF.val("rgba");if(av.color.mode=="r"){aD=az&&az.b||0;aG=az&&az.g||0}else{if(av.color.mode=="g"){aD=az&&az.b||0;aG=az&&az.r||0}else{if(av.color.mode=="b"){aD=az&&az.r||0;aG=az&&az.g||0}}}var aI=aG>aD?aD:aG;Y.call(w,O,aD>aG?Math.precision(((aD-aG)/(255-aG))*100,4):0);Y.call(w,N,aG>aD?Math.precision(((aG-aD)/(255-aD))*100,4):0);Y.call(w,M,Math.precision((aI/255)*100,4));Y.call(w,L,Math.precision(((255-(az&&az.a||0))*100)/255,4));break;case"a":var aH=aF.val("a");y.call(w,s,aF.val("hex")||"000000");Y.call(w,L,aH!=null?0:100);Y.call(w,K,aH!=null?100:0);break}},y=function(az,aA){az.css({backgroundColor:aA&&aA.length==6&&"#"+aA||"transparent"})},t=function(az,aA){if(Q&&(aA.indexOf("AlphaBar.png")!=-1||aA.indexOf("Bars.png")!=-1||aA.indexOf("Maps.png")!=-1)){az.attr("pngSrc",aA);az.css({backgroundImage:"none",filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+aA+"', sizingMethod='scale')"})}else{az.css({backgroundImage:"url("+aA+")"})}},x=function(az,aA){az.css({top:aA+"px"})},Y=function(aA,az){aA.css({visibility:az>0?"visible":"hidden"});if(az>0&&az<100){if(Q){var aB=aA.attr("pngSrc");if(aB!=null&&(aB.indexOf("AlphaBar.png")!=-1||aB.indexOf("Bars.png")!=-1||aB.indexOf("Maps.png")!=-1)){aA.css({filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+aB+"', sizingMethod='scale') progid:DXImageTransform.Microsoft.Alpha(opacity="+az+")"})}else{aA.css({opacity:Math.precision(az/100,4)})}}else{aA.css({opacity:Math.precision(az/100,4)})}}else{if(az==0||az==100){if(Q){var aB=aA.attr("pngSrc");if(aB!=null&&(aB.indexOf("AlphaBar.png")!=-1||aB.indexOf("Bars.png")!=-1||aB.indexOf("Maps.png")!=-1)){aA.css({filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+aB+"', sizingMethod='scale')"})}else{aA.css({opacity:""})}}else{aA.css({opacity:""})}}}},B=function(){G.active.val("ahex",G.current.val("ahex"))},T=function(){G.current.val("ahex",G.active.val("ahex"))},A=function(az){e(this).parents("tbody:first").find('input:radio[value!="'+az.target.value+'"]').removeAttr("checked");ag.call(w,az.target.value)},Z=function(){B.call(w)},q=function(){B.call(w);av.window.expandable&&ao.call(w);e.isFunction(ax)&&ax.call(w,G.active,X)},m=function(){T.call(w);av.window.expandable&&ao.call(w);e.isFunction(ae)&&ae.call(w,G.active,ah)},af=function(){V.call(w)},ap=function(aB,az){var aA=aB.val("hex");an.css({backgroundColor:aA&&"#"+aA||"transparent"});Y.call(w,an,Math.precision(((aB.val("a")||0)*100)/255,4))},H=function(aC,az){var aB=aC.val("hex");var aA=aC.val("va");aq.css({backgroundColor:aB&&"#"+aB||"transparent"});Y.call(w,r,Math.precision(((255-(aA&&aA.a||0))*100)/255,4));if(av.window.bindToInput&&av.window.updateInputColor){av.window.input.css({backgroundColor:aB&&"#"+aB||"transparent",color:aA==null||aA.v>75?"#000000":"#ffffff"})}},S=function(aB){var az=av.window.element,aA=av.window.page;J=parseInt(R.css("left"));I=parseInt(R.css("top"));am=aB.pageX;ai=aB.pageY;e(document).bind("mousemove",k).bind("mouseup",p);aB.preventDefault()},k=function(az){R.css({left:J-(am-az.pageX)+"px",top:I-(ai-az.pageY)+"px"});if(av.window.expandable&&!e.support.boxModel){R.prev().css({left:R.css("left"),top:R.css("top")})}az.stopPropagation();az.preventDefault();return false},p=function(az){e(document).unbind("mousemove",k).unbind("mouseup",p);az.stopPropagation();az.preventDefault();return false},F=function(az){az.preventDefault();az.stopPropagation();G.active.val("ahex",e(this).attr("title")||null,az.target);return false},ae=e.isFunction(h[1])&&h[1]||null,ad=e.isFunction(h[2])&&h[2]||null,ax=e.isFunction(h[3])&&h[3]||null,V=function(){G.current.val("ahex",G.active.val("ahex"));var az=function(){if(!av.window.expandable||e.support.boxModel){return}var aA=R.find("table:first");R.before("<iframe/>");R.prev().css({width:aA.width(),height:R.height(),opacity:0,position:"absolute",left:R.css("left"),top:R.css("top")})};if(av.window.expandable){e(document.body).children("div.jPicker.Container").css({zIndex:10});R.css({zIndex:20})}switch(av.window.effects.type){case"fade":R.fadeIn(av.window.effects.speed.show,az);break;case"slide":R.slideDown(av.window.effects.speed.show,az);break;case"show":default:R.show(av.window.effects.speed.show,az);break}},ao=function(){var az=function(){if(av.window.expandable){R.css({zIndex:10})}if(!av.window.expandable||e.support.boxModel){return}R.prev().remove()};switch(av.window.effects.type){case"fade":R.fadeOut(av.window.effects.speed.hide,az);break;case"slide":R.slideUp(av.window.effects.speed.hide,az);break;case"show":default:R.hide(av.window.effects.speed.hide,az);break}},o=function(){var aG=av.window,az=aG.expandable?e(w).next().find(".Container:first"):null;R=aG.expandable?e("<div/>"):e(w);R.addClass("jPicker Container");if(aG.expandable){R.hide()}R.get(0).onselectstart=function(){return false};var aJ=G.active.val("all");if(aG.alphaPrecision<0){aG.alphaPrecision=0}else{if(aG.alphaPrecision>2){aG.alphaPrecision=2}}var aK='<table class="jPicker" cellpadding="0" cellspacing="0"><tbody>'+(aG.expandable?'<tr><td class="Move" colspan="5">&nbsp;</td></tr>':"")+'<tr><td rowspan="9"><h2 class="Title">'+(aG.title||aa.text.title)+'</h2><div class="Map"><span class="Map1">&nbsp;</span><span class="Map2">&nbsp;</span><span class="Map3">&nbsp;</span><img src="'+n.clientPath+n.colorMap.arrow.file+'" class="Arrow"/></div></td><td rowspan="9"><div class="Bar"><span class="Map1">&nbsp;</span><span class="Map2">&nbsp;</span><span class="Map3">&nbsp;</span><span class="Map4">&nbsp;</span><span class="Map5">&nbsp;</span><span class="Map6">&nbsp;</span><img src="'+n.clientPath+n.colorBar.arrow.file+'" class="Arrow"/></div></td><td colspan="2" class="Preview">'+aa.text.newColor+'<div><span class="Active" title="'+aa.tooltips.colors.newColor+'">&nbsp;</span><span class="Current" title="'+aa.tooltips.colors.currentColor+'">&nbsp;</span></div>'+aa.text.currentColor+'</td><td rowspan="9" class="Button"><input type="button" class="Ok" value="'+aa.text.ok+'" title="'+aa.tooltips.buttons.ok+'"/><input type="button" class="Cancel" value="'+aa.text.cancel+'" title="'+aa.tooltips.buttons.cancel+'"/><hr/><div class="Grid">&nbsp;</div></td></tr><tr class="Hue"><td class="Radio"><label title="'+aa.tooltips.hue.radio+'"><input type="radio" value="h"'+(av.color.mode=="h"?' checked="checked"':"")+'/>H:</label></td><td class="Text"><input type="text" maxlength="3" value="'+(aJ!=null?aJ.h:"")+'" title="'+aa.tooltips.hue.textbox+'"/>&nbsp;&deg;</td></tr><tr class="Saturation"><td class="Radio"><label title="'+aa.tooltips.saturation.radio+'"><input type="radio" value="s"'+(av.color.mode=="s"?' checked="checked"':"")+'/>S:</label></td><td class="Text"><input type="text" maxlength="3" value="'+(aJ!=null?aJ.s:"")+'" title="'+aa.tooltips.saturation.textbox+'"/>&nbsp;%</td></tr><tr class="Value"><td class="Radio"><label title="'+aa.tooltips.value.radio+'"><input type="radio" value="v"'+(av.color.mode=="v"?' checked="checked"':"")+'/>V:</label><br/><br/></td><td class="Text"><input type="text" maxlength="3" value="'+(aJ!=null?aJ.v:"")+'" title="'+aa.tooltips.value.textbox+'"/>&nbsp;%<br/><br/></td></tr><tr class="Red"><td class="Radio"><label title="'+aa.tooltips.red.radio+'"><input type="radio" value="r"'+(av.color.mode=="r"?' checked="checked"':"")+'/>R:</label></td><td class="Text"><input type="text" maxlength="3" value="'+(aJ!=null?aJ.r:"")+'" title="'+aa.tooltips.red.textbox+'"/></td></tr><tr class="Green"><td class="Radio"><label title="'+aa.tooltips.green.radio+'"><input type="radio" value="g"'+(av.color.mode=="g"?' checked="checked"':"")+'/>G:</label></td><td class="Text"><input type="text" maxlength="3" value="'+(aJ!=null?aJ.g:"")+'" title="'+aa.tooltips.green.textbox+'"/></td></tr><tr class="Blue"><td class="Radio"><label title="'+aa.tooltips.blue.radio+'"><input type="radio" value="b"'+(av.color.mode=="b"?' checked="checked"':"")+'/>B:</label></td><td class="Text"><input type="text" maxlength="3" value="'+(aJ!=null?aJ.b:"")+'" title="'+aa.tooltips.blue.textbox+'"/></td></tr><tr class="Alpha"><td class="Radio">'+(aG.alphaSupport?'<label title="'+aa.tooltips.alpha.radio+'"><input type="radio" value="a"'+(av.color.mode=="a"?' checked="checked"':"")+"/>A:</label>":"&nbsp;")+'</td><td class="Text">'+(aG.alphaSupport?'<input type="text" maxlength="'+(3+aG.alphaPrecision)+'" value="'+(aJ!=null?Math.precision((aJ.a*100)/255,aG.alphaPrecision):"")+'" title="'+aa.tooltips.alpha.textbox+'"/>&nbsp;%':"&nbsp;")+'</td></tr><tr class="Hex"><td colspan="2" class="Text"><label title="'+aa.tooltips.hex.textbox+'">#:<input type="text" maxlength="6" class="Hex" value="'+(aJ!=null?aJ.hex:"")+'"/></label>'+(aG.alphaSupport?'<input type="text" maxlength="2" class="AHex" value="'+(aJ!=null?aJ.ahex.substring(6):"")+'" title="'+aa.tooltips.hex.alpha+'"/></td>':"&nbsp;")+"</tr></tbody></table>";if(aG.expandable){R.html(aK);if(e(document.body).children("div.jPicker.Container").length==0){e(document.body).prepend(R)}else{e(document.body).children("div.jPicker.Container:last").after(R)}R.mousedown(function(){e(document.body).children("div.jPicker.Container").css({zIndex:10});R.css({zIndex:20})});R.css({left:aG.position.x=="left"?(az.offset().left-530-(aG.position.y=="center"?25:0))+"px":aG.position.x=="center"?(az.offset().left-260)+"px":aG.position.x=="right"?(az.offset().left-10+(aG.position.y=="center"?25:0))+"px":aG.position.x=="screenCenter"?((e(document).width()>>1)-260)+"px":(az.offset().left+parseInt(aG.position.x))+"px",position:"absolute",top:aG.position.y=="top"?(az.offset().top-312)+"px":aG.position.y=="center"?(az.offset().top-156)+"px":aG.position.y=="bottom"?(az.offset().top+25)+"px":(az.offset().top+parseInt(aG.position.y))+"px"})}else{R=e(w);R.html(aK)}var aD=R.find("tbody:first");l=aD.find("div.Map:first");s=aD.find("div.Bar:first");var aL=l.find("span"),aI=s.find("span");au=aL.filter(".Map1:first");at=aL.filter(".Map2:first");ar=aL.filter(".Map3:first");P=aI.filter(".Map1:first");O=aI.filter(".Map2:first");N=aI.filter(".Map3:first");M=aI.filter(".Map4:first");L=aI.filter(".Map5:first");K=aI.filter(".Map6:first");D=new d(l,{map:{width:n.colorMap.width,height:n.colorMap.height},arrow:{image:n.clientPath+n.colorMap.arrow.file,width:n.colorMap.arrow.width,height:n.colorMap.arrow.height}});D.bind(z);U=new d(s,{map:{width:n.colorBar.width,height:n.colorBar.height},arrow:{image:n.clientPath+n.colorBar.arrow.file,width:n.colorBar.arrow.width,height:n.colorBar.arrow.height}});U.bind(ac);aw=new b(aD,G.active,aG.expandable&&aG.bindToInput?aG.input:null,aG.alphaPrecision);var aB=aJ!=null?aJ.hex:null,aH=aD.find(".Preview"),aF=aD.find(".Button");E=aH.find(".Active:first").css({backgroundColor:aB&&"#"+aB||"transparent"});an=aH.find(".Current:first").css({backgroundColor:aB&&"#"+aB||"transparent"}).bind("click",Z);Y.call(w,an,Math.precision(G.current.val("a")*100)/255,4);ah=aF.find(".Ok:first").bind("click",m);X=aF.find(".Cancel:first").bind("click",q);ab=aF.find(".Grid:first");setTimeout(function(){t.call(w,au,n.clientPath+"Maps.png");t.call(w,at,n.clientPath+"Maps.png");t.call(w,ar,n.clientPath+"map-opacity.png");t.call(w,P,n.clientPath+"Bars.png");t.call(w,O,n.clientPath+"Bars.png");t.call(w,N,n.clientPath+"Bars.png");t.call(w,M,n.clientPath+"Bars.png");t.call(w,L,n.clientPath+"bar-opacity.png");t.call(w,K,n.clientPath+"AlphaBar.png");t.call(w,aH.find("div:first"),n.clientPath+"preview-opacity.png")},0);aD.find("td.Radio input").bind("click",A);if(G.quickList&&G.quickList.length>0){var aE="";for(i=0;i<G.quickList.length;i++){if((typeof(G.quickList[i])).toString().toLowerCase()=="string"){G.quickList[i]=new f({hex:G.quickList[i]})}var aC=G.quickList[i].val("a");var aM=G.quickList[i].val("ahex");if(!aG.alphaSupport&&aM){aM=aM.substring(0,6)+"ff"}var aA=G.quickList[i].val("hex");aE+='<span class="QuickColor"'+(aM&&' title="#'+aM+'"'||"")+' style="background-color:'+(aA&&"#"+aA||"")+";"+(aA?"":"background-image:url("+n.clientPath+"NoColor.png)")+(aG.alphaSupport&&aC&&aC<255?";opacity:"+Math.precision(aC/255,4)+";filter:Alpha(opacity="+Math.precision(aC/2.55,4)+")":"")+'">&nbsp;</span>'}t.call(w,ab,n.clientPath+"bar-opacity.png");ab.html(aE);ab.find(".QuickColor").click(F)}ag.call(w,av.color.mode);G.active.bind(aj);e.isFunction(ad)&&G.active.bind(ad);G.current.bind(ap);if(aG.expandable){w.icon=az.parents(".Icon:first");aq=w.icon.find(".Color:first").css({backgroundColor:aB&&"#"+aB||"transparent"});r=w.icon.find(".Alpha:first");t.call(w,r,n.clientPath+"bar-opacity.png");Y.call(w,r,Math.precision(((255-(aJ!=null?aJ.a:0))*100)/255,4));C=w.icon.find(".Image:first").css({backgroundImage:"url("+n.clientPath+n.picker.file+")"}).bind("click",af);if(aG.bindToInput&&aG.updateInputColor){aG.input.css({backgroundColor:aB&&"#"+aB||"transparent",color:aJ==null||aJ.v>75?"#000000":"#ffffff"})}u=aD.find(".Move:first").bind("mousedown",S);G.active.bind(H)}else{V.call(w)}},ak=function(){R.find("td.Radio input").unbind("click",A);an.unbind("click",Z);X.unbind("click",q);ah.unbind("click",m);if(av.window.expandable){C.unbind("click",af);u.unbind("mousedown",S);w.icon=null}R.find(".QuickColor").unbind("click",F);l=null;s=null;au=null;at=null;ar=null;P=null;O=null;N=null;M=null;L=null;K=null;D.destroy();D=null;U.destroy();U=null;aw.destroy();aw=null;E=null;an=null;ah=null;X=null;ab=null;ae=null;ax=null;ad=null;R.html("");for(i=0;i<c.length;i++){if(c[i]==w){c.splice(i,1)}}},n=av.images,aa=av.localization,G={active:(typeof(av.color.active)).toString().toLowerCase()=="string"?new f({ahex:!av.window.alphaSupport&&av.color.active?av.color.active.substring(0,6)+"ff":av.color.active}):new f({ahex:!av.window.alphaSupport&&av.color.active.val("ahex")?av.color.active.val("ahex").substring(0,6)+"ff":av.color.active.val("ahex")}),current:(typeof(av.color.active)).toString().toLowerCase()=="string"?new f({ahex:!av.window.alphaSupport&&av.color.active?av.color.active.substring(0,6)+"ff":av.color.active}):new f({ahex:!av.window.alphaSupport&&av.color.active.val("ahex")?av.color.active.val("ahex").substring(0,6)+"ff":av.color.active.val("ahex")}),quickList:av.color.quickList};e.extend(true,w,{commitCallback:ae,liveCallback:ad,cancelCallback:ax,color:G,show:V,hide:ao,destroy:ak});c.push(w);setTimeout(function(){o.call(w)},0)})};e.fn.jPicker.defaults={window:{title:null,effects:{type:"slide",speed:{show:"slow",hide:"fast"}},position:{x:"screenCenter",y:"top"},expandable:false,liveUpdate:true,alphaSupport:false,alphaPrecision:0,updateInputColor:true},color:{mode:"h",active:new f({ahex:"#ffcc00ff"}),quickList:[new f({h:360,s:33,v:100}),new f({h:360,s:66,v:100}),new f({h:360,s:100,v:100}),new f({h:360,s:100,v:75}),new f({h:360,s:100,v:50}),new f({h:180,s:0,v:100}),new f({h:30,s:33,v:100}),new f({h:30,s:66,v:100}),new f({h:30,s:100,v:100}),new f({h:30,s:100,v:75}),new f({h:30,s:100,v:50}),new f({h:180,s:0,v:90}),new f({h:60,s:33,v:100}),new f({h:60,s:66,v:100}),new f({h:60,s:100,v:100}),new f({h:60,s:100,v:75}),new f({h:60,s:100,v:50}),new f({h:180,s:0,v:80}),new f({h:90,s:33,v:100}),new f({h:90,s:66,v:100}),new f({h:90,s:100,v:100}),new f({h:90,s:100,v:75}),new f({h:90,s:100,v:50}),new f({h:180,s:0,v:70}),new f({h:120,s:33,v:100}),new f({h:120,s:66,v:100}),new f({h:120,s:100,v:100}),new f({h:120,s:100,v:75}),new f({h:120,s:100,v:50}),new f({h:180,s:0,v:60}),new f({h:150,s:33,v:100}),new f({h:150,s:66,v:100}),new f({h:150,s:100,v:100}),new f({h:150,s:100,v:75}),new f({h:150,s:100,v:50}),new f({h:180,s:0,v:50}),new f({h:180,s:33,v:100}),new f({h:180,s:66,v:100}),new f({h:180,s:100,v:100}),new f({h:180,s:100,v:75}),new f({h:180,s:100,v:50}),new f({h:180,s:0,v:40}),new f({h:210,s:33,v:100}),new f({h:210,s:66,v:100}),new f({h:210,s:100,v:100}),new f({h:210,s:100,v:75}),new f({h:210,s:100,v:50}),new f({h:180,s:0,v:30}),new f({h:240,s:33,v:100}),new f({h:240,s:66,v:100}),new f({h:240,s:100,v:100}),new f({h:240,s:100,v:75}),new f({h:240,s:100,v:50}),new f({h:180,s:0,v:20}),new f({h:270,s:33,v:100}),new f({h:270,s:66,v:100}),new f({h:270,s:100,v:100}),new f({h:270,s:100,v:75}),new f({h:270,s:100,v:50}),new f({h:180,s:0,v:10}),new f({h:300,s:33,v:100}),new f({h:300,s:66,v:100}),new f({h:300,s:100,v:100}),new f({h:300,s:100,v:75}),new f({h:300,s:100,v:50}),new f({h:180,s:0,v:0}),new f({h:330,s:33,v:100}),new f({h:330,s:66,v:100}),new f({h:330,s:100,v:100}),new f({h:330,s:100,v:75}),new f({h:330,s:100,v:50}),new f()]},images:{clientPath:"/jPicker/images/",colorMap:{width:256,height:256,arrow:{file:"mappoint.gif",width:15,height:15}},colorBar:{width:20,height:256,arrow:{file:"rangearrows.gif",width:20,height:7}},picker:{file:"picker.gif",width:25,height:24}},localization:{text:{title:"Drag Markers To Pick A Color",newColor:"new",currentColor:"current",ok:"OK",cancel:"Cancel"},tooltips:{colors:{newColor:"New Color - Press &ldquo;OK&rdquo; To Commit",currentColor:"Click To Revert To Original Color"},buttons:{ok:"Commit To This Color Selection",cancel:"Cancel And Revert To Original Color"},hue:{radio:"Set To &ldquo;Hue&rdquo; Color Mode",textbox:"Enter A &ldquo;Hue&rdquo; Value (0-360&deg;)"},saturation:{radio:"Set To &ldquo;Saturation&rdquo; Color Mode",textbox:"Enter A &ldquo;Saturation&rdquo; Value (0-100%)"},value:{radio:"Set To &ldquo;Value&rdquo; Color Mode",textbox:"Enter A &ldquo;Value&rdquo; Value (0-100%)"},red:{radio:"Set To &ldquo;Red&rdquo; Color Mode",textbox:"Enter A &ldquo;Red&rdquo; Value (0-255)"},green:{radio:"Set To &ldquo;Green&rdquo; Color Mode",textbox:"Enter A &ldquo;Green&rdquo; Value (0-255)"},blue:{radio:"Set To &ldquo;Blue&rdquo; Color Mode",textbox:"Enter A &ldquo;Blue&rdquo; Value (0-255)"},alpha:{radio:"Set To &ldquo;Alpha&rdquo; Color Mode",textbox:"Enter A &ldquo;Alpha&rdquo; Value (0-100)"},hex:{textbox:"Enter A &ldquo;Hex&rdquo; Color Value (#000000-#ffffff)",alpha:"Enter A &ldquo;Alpha&rdquo; Value (#00-#ff)"}}}}})(jQuery,"1.1.5");
        • jquery.jgraduate.js
          /*
           * jGraduate 0.4
           *
           * jQuery Plugin for a gradient picker
           *
           * Copyright (c) 2010 Jeff Schiller
           * http://blog.codedread.com/
           * Copyright (c) 2010 Alexis Deveria
           * http://a.deveria.com/
           *
           * Apache 2 License
          
          jGraduate( options, okCallback, cancelCallback )
          
          where options is an object literal:
          	{
          		window: { title: "Pick the start color and opacity for the gradient" },
          		images: { clientPath: "images/" },
          		paint: a Paint object,
          		newstop: String of value "same", "inverse", "black" or "white" 
          				 OR object with one or both values {color: #Hex color, opac: number 0-1}
          	}
           
          - the Paint object is:
          	Paint {
          		type: String, // one of "none", "solidColor", "linearGradient", "radialGradient"
          		alpha: Number representing opacity (0-100),
          		solidColor: String representing #RRGGBB hex of color,
          		linearGradient: object of interface SVGLinearGradientElement,
          		radialGradient: object of interface SVGRadialGradientElement,
          	}
          
          $.jGraduate.Paint() -> constructs a 'none' color
          $.jGraduate.Paint({copy: o}) -> creates a copy of the paint o
          $.jGraduate.Paint({hex: "#rrggbb"}) -> creates a solid color paint with hex = "#rrggbb"
          $.jGraduate.Paint({linearGradient: o, a: 50}) -> creates a linear gradient paint with opacity=0.5
          $.jGraduate.Paint({radialGradient: o, a: 7}) -> creates a radial gradient paint with opacity=0.07
          $.jGraduate.Paint({hex: "#rrggbb", linearGradient: o}) -> throws an exception?
          
          - picker accepts the following object as input:
          	{
          		okCallback: function to call when Ok is pressed
          		cancelCallback: function to call when Cancel is pressed
          		paint: object describing the paint to display initially, if not set, then default to opaque white
          	}
          
          - okCallback receives a Paint object
          
           *
           */
           
          (function() {
           
          var ns = { svg: 'http://www.w3.org/2000/svg', xlink: 'http://www.w3.org/1999/xlink' };
          if(!window.console) {
            window.console = new function() {
              this.log = function(str) {};
              this.dir = function(str) {};
            };
          }
          
          $.jGraduate = { 
          	Paint:
          		function(opt) {
          			var options = opt || {};
          			this.alpha = isNaN(options.alpha) ? 100 : options.alpha;
          			// copy paint object
              		if (options.copy) {
              			this.type = options.copy.type;
              			this.alpha = options.copy.alpha;
          				this.solidColor = null;
          				this.linearGradient = null;
          				this.radialGradient = null;
          
              			switch(this.type) {
              				case "none":
              					break;
              				case "solidColor":
              					this.solidColor = options.copy.solidColor;
              					break;
              				case "linearGradient":
              					this.linearGradient = options.copy.linearGradient.cloneNode(true);
              					break;
              				case "radialGradient":
              					this.radialGradient = options.copy.radialGradient.cloneNode(true);
              					break;
              			}
              		}
              		// create linear gradient paint
              		else if (options.linearGradient) {
              			this.type = "linearGradient";
              			this.solidColor = null;
              			this.radialGradient = null;
              			this.linearGradient = options.linearGradient.cloneNode(true);
              		}
              		// create linear gradient paint
              		else if (options.radialGradient) {
              			this.type = "radialGradient";
              			this.solidColor = null;
              			this.linearGradient = null;
              			this.radialGradient = options.radialGradient.cloneNode(true);
              		}
              		// create solid color paint
              		else if (options.solidColor) {
              			this.type = "solidColor";
              			this.solidColor = options.solidColor;
              		}
              		// create empty paint
          	    	else {
          	    		this.type = "none";
              			this.solidColor = null;
              			this.linearGradient = null;
              			this.radialGradient = null;
          	    	}
          		}
          };
          
          jQuery.fn.jGraduateDefaults = {
          	paint: new $.jGraduate.Paint(),
          	window: {
          		pickerTitle: "Drag markers to pick a paint"
          	},
          	images: {
          		clientPath: "images/"
          	},
          	newstop: 'inverse' // same, inverse, black, white
          };
          
          var isGecko = navigator.userAgent.indexOf('Gecko/') >= 0;
          
          function setAttrs(elem, attrs) {
          	if(isGecko) {
          		for (var aname in attrs) elem.setAttribute(aname, attrs[aname]);
          	} else {
          		for (var aname in attrs) {
          			var val = attrs[aname], prop = elem[aname];
          			if(prop && prop.constructor === 'SVGLength') {
          				prop.baseVal.value = val;
          			} else {
          				elem.setAttribute(aname, val);
          			}
          		}
          	}
          }
          
          function mkElem(name, attrs, newparent) {
          	var elem = document.createElementNS(ns.svg, name);
          	setAttrs(elem, attrs);
          	if(newparent) newparent.appendChild(elem);
          	return elem;
          }
          
          jQuery.fn.jGraduate =
          	function(options) {
          	 	var $arguments = arguments;
          		return this.each( function() {
          			var $this = $(this), $settings = $.extend(true, {}, jQuery.fn.jGraduateDefaults, options),
          				id = $this.attr('id'),
          				idref = '#'+$this.attr('id')+' ';
          			
                      if (!idref)
                      {
                        alert('Container element must have an id attribute to maintain unique id strings for sub-elements.');
                        return;
                      }
                      
                      var okClicked = function() {
          	            switch ( $this.paint.type ) {
          	            	case "radialGradient":
          	            		$this.paint.linearGradient = null;
          	            		break;
          	            	case "linearGradient":
          	            		$this.paint.radialGradient = null;
          	            		break;
          	            	case "solidColor":
          	            		$this.paint.radialGradient = $this.paint.linearGradient = null;
          	            		break;
          	            }
                      	$.isFunction($this.okCallback) && $this.okCallback($this.paint);
                      	$this.hide();
                      },
                      cancelClicked = function() {
                      	$.isFunction($this.cancelCallback) && $this.cancelCallback();
                      	$this.hide();
                      };
          
                      $.extend(true, $this, // public properties, methods, and callbacks
                        {
                        	// make a copy of the incoming paint
                          paint: new $.jGraduate.Paint({copy: $settings.paint}),
                          okCallback: $.isFunction($arguments[1]) && $arguments[1] || null,
                          cancelCallback: $.isFunction($arguments[2]) && $arguments[2] || null
                        });
          
          			var pos = $this.position(),
          				color = null;
          			var $win = $(window);
          
          			if ($this.paint.type == "none") {
          				$this.paint = $.jGraduate.Paint({solidColor: 'ffffff'});
          			}
          			
                      $this.addClass('jGraduate_Picker');
                      $this.html('<ul class="jGraduate_tabs">' +
                      				'<li class="jGraduate_tab_color jGraduate_tab_current" data-type="col">Solid Color</li>' +
                      				'<li class="jGraduate_tab_lingrad" data-type="lg">Linear Gradient</li>' +
                      				'<li class="jGraduate_tab_radgrad" data-type="rg">Radial Gradient</li>' +
                      			'</ul>' +
                      			'<div class="jGraduate_colPick"></div>' +
                      			'<div class="jGraduate_gradPick"></div>' +
          						'<div class="jGraduate_LightBox"></div>' +
          						'<div id="' + id + '_jGraduate_stopPicker" class="jGraduate_stopPicker"></div>'
                      			
                      			
                      			);
          			var colPicker = $(idref + '> .jGraduate_colPick');
          			var gradPicker = $(idref + '> .jGraduate_gradPick');
          			
                      gradPicker.html(
                      	'<div id="' + id + '_jGraduate_Swatch" class="jGraduate_Swatch">' +
                      		'<h2 class="jGraduate_Title">' + $settings.window.pickerTitle + '</h2>' +
                      		'<div id="' + id + '_jGraduate_GradContainer" class="jGraduate_GradContainer"></div>' +
                      		'<div id="' + id + '_jGraduate_StopSlider" class="jGraduate_StopSlider"></div>' +
                      	'</div>' + 
                      	'<div class="jGraduate_Form jGraduate_Points jGraduate_lg_field">' +
                      		'<div class="jGraduate_StopSection">' +
          	            		'<label class="jGraduate_Form_Heading">Begin Point</label>' +
              	        		'<div class="jGraduate_Form_Section">' +
                  	    			'<label>x:</label>' +
                      				'<input type="text" id="' + id + '_jGraduate_x1" size="3" title="Enter starting x value between 0.0 and 1.0"/>' +
                      				'<label>y:</label>' +
                      				'<input type="text" id="' + id + '_jGraduate_y1" size="3" title="Enter starting y value between 0.0 and 1.0"/>' +
                  	   			'</div>' +
                  	   		'</div>' +
                  	   		'<div class="jGraduate_StopSection">' +
          	            		'<label class="jGraduate_Form_Heading">End Point</label>' +
              	        		'<div class="jGraduate_Form_Section">' +
          	    	        		'<label>x:</label>' +
          		    	        	'<input type="text" id="' + id + '_jGraduate_x2" size="3" title="Enter ending x value between 0.0 and 1.0"/>' +
              		    	    	'<label>y:</label>' +
                  		    		'<input type="text" id="' + id + '_jGraduate_y2" size="3" title="Enter ending y value between 0.0 and 1.0"/>' +
              	    	    	'</div>' +
              	    	    '</div>' +
              	       	'</div>' +
                      	'<div class="jGraduate_Form jGraduate_Points jGraduate_rg_field">' +
          					'<div class="jGraduate_StopSection">' +
          						'<label class="jGraduate_Form_Heading">Center Point</label>' +
          						'<div class="jGraduate_Form_Section">' +
          							'<label>x:</label>' +
          							'<input type="text" id="' + id + '_jGraduate_cx" size="3" title="Enter x value between 0.0 and 1.0"/>' +
          							'<label>y:</label>' +
          							'<input type="text" id="' + id + '_jGraduate_cy" size="3" title="Enter y value between 0.0 and 1.0"/>' +
          						'</div>' +
          					'</div>' +
          					'<div class="jGraduate_StopSection">' +
          						'<label class="jGraduate_Form_Heading">Focal Point</label>' +
          						'<div class="jGraduate_Form_Section">' +
          							'<label>Match center: <input type="checkbox" checked="checked" id="' + id + '_jGraduate_match_ctr"/></label><br/>' +
          							'<label>x:</label>' +
          							'<input type="text" id="' + id + '_jGraduate_fx" size="3" title="Enter x value between 0.0 and 1.0"/>' +
          							'<label>y:</label>' +
          							'<input type="text" id="' + id + '_jGraduate_fy" size="3" title="Enter y value between 0.0 and 1.0"/>' +
          						'</div>' +
          					'</div>' +
              	       	'</div>' +
          				'<div class="jGraduate_StopSection jGraduate_SpreadMethod">' +
          					'<label class="jGraduate_Form_Heading">Spread method</label>' +
          					'<div class="jGraduate_Form_Section">' +
          						'<select class="jGraduate_spreadMethod">' +
          							'<option value=pad selected>Pad</option>' +
          							'<option value=reflect>Reflect</option>' +
          							'<option value=repeat>Repeat</option>' +
          						'</select>' + 
          					'</div>' +
          				'</div>' +
                      	'<div class="jGraduate_Form">' +
                  	   		'<div class="jGraduate_Slider jGraduate_RadiusField jGraduate_rg_field">' +
          						'<label class="prelabel">Radius:</label>' +
          						'<div id="' + id + '_jGraduate_Radius" class="jGraduate_SliderBar jGraduate_Radius" title="Click to set radius">' +
          							'<img id="' + id + '_jGraduate_RadiusArrows" class="jGraduate_RadiusArrows" src="' + $settings.images.clientPath + 'rangearrows2.gif">' +
          						'</div>' +
          						'<label><input type="text" id="' + id + '_jGraduate_RadiusInput" size="3" value="100"/>%</label>' + 
              	    	    '</div>' +
                  	   		'<div class="jGraduate_Slider jGraduate_EllipField jGraduate_rg_field">' +
          						'<label class="prelabel">Ellip:</label>' +
          						'<div id="' + id + '_jGraduate_Ellip" class="jGraduate_SliderBar jGraduate_Ellip" title="Click to set Ellip">' +
          							'<img id="' + id + '_jGraduate_EllipArrows" class="jGraduate_EllipArrows" src="' + $settings.images.clientPath + 'rangearrows2.gif">' +
          						'</div>' +
          						'<label><input type="text" id="' + id + '_jGraduate_EllipInput" size="3" value="0"/>%</label>' + 
              	    	    '</div>' +
                  	   		'<div class="jGraduate_Slider jGraduate_AngleField jGraduate_rg_field">' +
          						'<label class="prelabel">Angle:</label>' +
          						'<div id="' + id + '_jGraduate_Angle" class="jGraduate_SliderBar jGraduate_Angle" title="Click to set Angle">' +
          							'<img id="' + id + '_jGraduate_AngleArrows" class="jGraduate_AngleArrows" src="' + $settings.images.clientPath + 'rangearrows2.gif">' +
          						'</div>' +
          						'<label><input type="text" id="' + id + '_jGraduate_AngleInput" size="3" value="0"/>deg</label>' + 
              	    	    '</div>' +
                  	   		'<div class="jGraduate_Slider jGraduate_OpacField">' +
          						'<label class="prelabel">Opac:</label>' +
          						'<div id="' + id + '_jGraduate_Opac" class="jGraduate_SliderBar jGraduate_Opac" title="Click to set Opac">' +
          							'<img id="' + id + '_jGraduate_OpacArrows" class="jGraduate_OpacArrows" src="' + $settings.images.clientPath + 'rangearrows2.gif">' +
          						'</div>' +
          						'<label><input type="text" id="' + id + '_jGraduate_OpacInput" size="3" value="100"/>%</label>' + 
              	    	    '</div>' +
              	       	'</div>' +
                  	    '<div class="jGraduate_OkCancel">' +
                      		'<input type="button" id="' + id + '_jGraduate_Ok" class="jGraduate_Ok" value="OK"/>' +
                      		'<input type="button" id="' + id + '_jGraduate_Cancel" class="jGraduate_Cancel" value="Cancel"/>' +
                      	'</div>');
                      	
          			// --------------
                      // Set up all the SVG elements (the gradient, stops and rectangle)
                      var MAX = 256, MARGINX = 0, MARGINY = 0, STOP_RADIUS = 15/2,
                      	SIZEX = MAX - 2*MARGINX, SIZEY = MAX - 2*MARGINY;
                      	
                      var curType, curGradient, previewRect;	
                      
          			var attr_input = {};
                      
                      var SLIDERW = 145;
                      $('.jGraduate_SliderBar').width(SLIDERW);
          			
          			var container = $('#' + id+'_jGraduate_GradContainer')[0];
          			
          			var svg = mkElem('svg', {
          				id: id + '_jgraduate_svg',
          				width: MAX,
          				height: MAX,
          				xmlns: ns.svg
          			}, container);
          			
          			// if we are sent a gradient, import it 
          			
          			curType = curType || $this.paint.type;
          			
          			var grad = curGradient = $this.paint[curType];
          			
          			var gradalpha = $this.paint.alpha;
          			
          			var isSolid = curType === 'solidColor';
          			
          			// Make any missing gradients
          			switch ( curType ) {
          				case "solidColor":
          					// fall through
          				case "linearGradient":
          					if(!isSolid) {
          						curGradient.id = id+'_lg_jgraduate_grad';
          						grad = curGradient = svg.appendChild(curGradient);//.cloneNode(true));
          					}
          					mkElem('radialGradient', {
          						id: id + '_rg_jgraduate_grad'
          					}, svg);
          					if(curType === "linearGradient") break;
          				case "radialGradient":
          					if(!isSolid) {
          						curGradient.id = id+'_rg_jgraduate_grad';
          						grad = curGradient = svg.appendChild(curGradient);//.cloneNode(true));
          					}
          					mkElem('linearGradient', {
          						id: id + '_lg_jgraduate_grad'
          					}, svg);
          			}
          			
          			if(isSolid) {
          				grad = curGradient = $('#' + id + '_lg_jgraduate_grad')[0];
          				var color = $this.paint[curType];
          				mkStop(0, '#' + color, 1);
          				
          				var type = typeof $settings.newstop;
          				
          				if(type === 'string') {
          					switch ( $settings.newstop ) {
          						case 'same':
          							mkStop(1, '#' + color, 1);				
          							break;
          
          						case 'inverse':
          							// Invert current color for second stop
          							var inverted = '';
          							
          							for(var i = 0; i < 6; i += 2) {
          								var ch = color.substr(i, 2);
          								var inv = (255 - parseInt(color.substr(i, 2), 16)).toString(16);
          								if(inv.length < 2) inv = 0 + inv;
          								inverted += inv;
          							}
          							mkStop(1, '#' + inverted, 1);
          							break;
          						
          						case 'white':
          							mkStop(1, '#ffffff', 1);
          							break;
          	
          						case 'black':
          							mkStop(1, '#000000', 1);
          							break;
          					}
          				} else if(type === 'object'){
          					var opac = ('opac' in $settings.newstop) ? $settings.newstop.opac : 1;
          					mkStop(1, ($settings.newstop.color || '#' + color), opac);
          				}
          			}
          
          			
          			var x1 = parseFloat(grad.getAttribute('x1')||0.0),
          				y1 = parseFloat(grad.getAttribute('y1')||0.0),
          				x2 = parseFloat(grad.getAttribute('x2')||1.0),
          				y2 = parseFloat(grad.getAttribute('y2')||0.0);
          				
          			var cx = parseFloat(grad.getAttribute('cx')||0.5),
          				cy = parseFloat(grad.getAttribute('cy')||0.5),
          				fx = parseFloat(grad.getAttribute('fx')|| cx),
          				fy = parseFloat(grad.getAttribute('fy')|| cy);
          
          			
          			var previewRect = mkElem('rect', {
          				id: id + '_jgraduate_rect',
          				x: MARGINX,
          				y: MARGINY,
          				width: SIZEX,
          				height: SIZEY,
          				fill: 'url(#'+id+'_jgraduate_grad)',
          				'fill-opacity': gradalpha/100
          			}, svg);
          			
          			// stop visuals created here
          			var beginCoord = $('<div/>').attr({
          				'class': 'grad_coord jGraduate_lg_field',
          				title: 'Begin Stop'
          			}).text(1).css({
          				top: y1 * MAX,
          				left: x1 * MAX
          			}).data('coord', 'start').appendTo(container);
          			
          			var endCoord = beginCoord.clone().text(2).css({
          				top: y2 * MAX,
          				left: x2 * MAX
          			}).attr('title', 'End stop').data('coord', 'end').appendTo(container);
          		
          			var centerCoord = $('<div/>').attr({
          				'class': 'grad_coord jGraduate_rg_field',
          				title: 'Center stop'
          			}).text('C').css({
          				top: cy * MAX,
          				left: cx * MAX
          			}).data('coord', 'center').appendTo(container);
          			
          			var focusCoord = centerCoord.clone().text('F').css({
          				top: fy * MAX,
          				left: fx * MAX,
          				display: 'none'
          			}).attr('title', 'Focus point').data('coord', 'focus').appendTo(container);
          			
          			focusCoord[0].id = id + '_jGraduate_focusCoord';
          			
          			var coords = $(idref + ' .grad_coord');
          			
          // 			$(container).hover(function() {
          // 				coords.animate({
          // 					opacity: 1
          // 				}, 500);
          // 			}, function() {
          // 				coords.animate({
          // 					opacity: .2
          // 				}, 500);				
          // 			});
          			
          			$.each(['x1', 'y1', 'x2', 'y2', 'cx', 'cy', 'fx', 'fy'], function(i, attr) {
          				var attrval = curGradient.getAttribute(attr);
          				
          				var isRadial = isNaN(attr[1]);
          				
          				if(!attrval) {
          					// Set defaults
          					if(isRadial) {
          						// For radial points
          						attrval = "0.5";
          					} else {
          						// Only x2 is 1
          						attrval = attr === 'x2' ? "1.0" : "0.0";
          					}
          				}
          
          				attr_input[attr] = $('#'+id+'_jGraduate_' + attr)
          					.val(attrval)
          					.change(function() {
          						// TODO: Support values < 0 and > 1 (zoomable preview?)
          						if (isNaN(parseFloat(this.value)) || this.value < 0) {
          							this.value = 0.0; 
          						} else if(this.value > 1) {
          							this.value = 1.0;
          						}
          						
          						if(!(attr[0] === 'f' && !showFocus)) {
          							if(isRadial && curType === 'radialGradient' || !isRadial && curType === 'linearGradient') {
          								curGradient.setAttribute(attr, this.value);
          							}
          						}
          						
          						if(isRadial) {
          							var $elem = attr[0] === "c" ? centerCoord : focusCoord;
          						} else {
          							var $elem = attr[1] === "1" ? beginCoord : endCoord;						
          						}
          						
          						var cssName = attr.indexOf('x') >= 0 ? 'left' : 'top';
          						
          						$elem.css(cssName, this.value * MAX);
          				}).change();
          			});
          
          
          			
          			function mkStop(n, color, opac, sel, stop_elem) {
          				var stop = stop_elem || mkElem('stop',{'stop-color':color,'stop-opacity':opac,offset:n}, curGradient);
          				if(stop_elem) {
          					color = stop_elem.getAttribute('stop-color');
          					opac = stop_elem.getAttribute('stop-opacity');
          					n = stop_elem.getAttribute('offset');
          				} else {
          					curGradient.appendChild(stop);
          				}
          				if(opac === null) opac = 1;
          				
          				var picker_d = 'M-6.2,0.9c3.6-4,6.7-4.3,6.7-12.4c-0.2,7.9,3.1,8.8,6.5,12.4c3.5,3.8,2.9,9.6,0,12.3c-3.1,2.8-10.4,2.7-13.2,0C-9.6,9.9-9.4,4.4-6.2,0.9z';
          				
          				var pathbg = mkElem('path',{
          					d: picker_d,
          					fill: 'url(#jGraduate_trans)',
          					transform: 'translate(' + (10 + n * MAX) + ', 26)'
          				}, stopGroup);
          				
          				var path = mkElem('path',{
          					d: picker_d,
          					fill: color,
          					'fill-opacity': opac,
          					transform: 'translate(' + (10 + n * MAX) + ', 26)',
          					stroke: '#000',
          					'stroke-width': 1.5
          				}, stopGroup);
          
          				$(path).mousedown(function(e) {
          					selectStop(this);
          					drag = cur_stop;
          					$win.mousemove(dragColor).mouseup(remDrags);
          					stop_offset = stopMakerDiv.offset();
          					e.preventDefault();
          					return false;
          				}).data('stop', stop).data('bg', pathbg).dblclick(function() {
          					$('div.jGraduate_LightBox').show();			
          					var colorhandle = this;
          					var stopOpacity = +stop.getAttribute('stop-opacity') || 1;
          					var stopColor = stop.getAttribute('stop-color') || 1;
          					var thisAlpha = (parseFloat(stopOpacity)*255).toString(16);
          					while (thisAlpha.length < 2) { thisAlpha = "0" + thisAlpha; }
          					color = stopColor.substr(1) + thisAlpha;
          					$('#'+id+'_jGraduate_stopPicker').css({'left': 100, 'bottom': 15}).jPicker({
          							window: { title: "Pick the start color and opacity for the gradient" },
          							images: { clientPath: $settings.images.clientPath },
          							color: { active: color, alphaSupport: true }
          						}, function(color, arg2){
          							stopColor = color.val('hex') ? ('#'+color.val('hex')) : "none";
          							stopOpacity = color.val('a') !== null ? color.val('a')/256 : 1;
          							colorhandle.setAttribute('fill', stopColor);
          							colorhandle.setAttribute('fill-opacity', stopOpacity);
          							stop.setAttribute('stop-color', stopColor);
          							stop.setAttribute('stop-opacity', stopOpacity);
          							$('div.jGraduate_LightBox').hide();
          							$('#'+id+'_jGraduate_stopPicker').hide();
          						}, null, function() {
          							$('div.jGraduate_LightBox').hide();
          							$('#'+id+'_jGraduate_stopPicker').hide();
          						});
          				});
          				
          				$(curGradient).find('stop').each(function() {
          					var cur_s = $(this);
          					if(+this.getAttribute('offset') > n) {
          						if(!color) {
          							var newcolor = this.getAttribute('stop-color');
          							var newopac = this.getAttribute('stop-opacity');
          							stop.setAttribute('stop-color', newcolor);
          							path.setAttribute('fill', newcolor);
          							stop.setAttribute('stop-opacity', newopac === null ? 1 : newopac);
          							path.setAttribute('fill-opacity', newopac === null ? 1 : newopac);
          						}
          						cur_s.before(stop);
          						return false;
          					}
          				});
          				if(sel) selectStop(path);
          				return stop;
          			}
          			
          			function remStop() {
          				delStop.setAttribute('display', 'none');
          				var path = $(cur_stop);
          				var stop = path.data('stop');
          				var bg = path.data('bg');
          				$([cur_stop, stop, bg]).remove();
          			}
          			
          				
          			var stops, stopGroup;
          			
          			var stopMakerDiv = $('#' + id + '_jGraduate_StopSlider');
          
          			var cur_stop, stopGroup, stopMakerSVG, drag;
          			
          			var delStop = mkElem('path',{
          				d:'m9.75,-6l-19.5,19.5m0,-19.5l19.5,19.5',
          				fill:'none',
          				stroke:'#D00',
          				'stroke-width':5,
          				display:'none'
          			}, stopMakerSVG);
          
          			
          			function selectStop(item) {
          				if(cur_stop) cur_stop.setAttribute('stroke', '#000');
          				item.setAttribute('stroke', 'blue');
          				cur_stop = item;
          				cur_stop.parentNode.appendChild(cur_stop);
          			// 	stops = $('stop');
          			// 	opac_select.val(cur_stop.attr('fill-opacity') || 1);
          			// 	root.append(delStop);
          			}
          			
          			var stop_offset;
          			
          			function remDrags() {
          				$win.unbind('mousemove', dragColor);
          				if(delStop.getAttribute('display') !== 'none') {
          					remStop();
          				}
          				drag = null;
          			}
          			
          			var scale_x = 1, scale_y = 1, angle = 0;
          			var c_x = cx;
          			var c_y = cy;
          			
          			function xform() {
          				var rot = angle?'rotate(' + angle + ',' + c_x + ',' + c_y + ') ':'';
          				if(scale_x === 1 && scale_y === 1) {
          					curGradient.removeAttribute('gradientTransform');
          // 					$('#ang').addClass('dis');
          				} else {
          					var x = -c_x * (scale_x-1);
          					var y = -c_y * (scale_y-1);
          					curGradient.setAttribute('gradientTransform', rot + 'translate(' + x + ',' + y + ') scale(' + scale_x + ',' + scale_y + ')');
          // 					$('#ang').removeClass('dis');
          				}
          			}
          			
          			function dragColor(evt) {
          
          				var x = evt.pageX - stop_offset.left;
          				var y = evt.pageY - stop_offset.top;
          				x = x < 10 ? 10 : x > MAX + 10 ? MAX + 10: x;
          
          				var xf_str = 'translate(' + x + ', 26)';
          					if(y < -60 || y > 130) {
          						delStop.setAttribute('display', 'block');
          						delStop.setAttribute('transform', xf_str);
          					} else {
          						delStop.setAttribute('display', 'none');
          					}
          				
          				drag.setAttribute('transform', xf_str);
          				$.data(drag, 'bg').setAttribute('transform', xf_str);
          				var stop = $.data(drag, 'stop');
          				var s_x = (x - 10) / MAX;
          				
          				stop.setAttribute('offset', s_x);
          				var last = 0;
          				
          				$(curGradient).find('stop').each(function(i) {
          					var cur = this.getAttribute('offset');
          					var t = $(this);
          					if(cur < last) {
          						t.prev().before(t);
          						stops = $(curGradient).find('stop');
          					}
          					last = cur;
          				});
          				
          			}
          			
          			stopMakerSVG = mkElem('svg', {
          				width: '100%',
          				height: 45
          			}, stopMakerDiv[0]);
          			
          			var trans_pattern = mkElem('pattern', {
          				width: 16,
          				height: 16,
          				patternUnits: 'userSpaceOnUse',
          				id: 'jGraduate_trans'
          			}, stopMakerSVG);
          			
          			var trans_img = mkElem('image', {
          				width: 16,
          				height: 16
          			}, trans_pattern);
          			
          			var bg_image = $settings.images.clientPath + 'map-opacity.png';
          
          			trans_img.setAttributeNS(ns.xlink, 'xlink:href', bg_image);
          			
          			$(stopMakerSVG).click(function(evt) {
          				stop_offset = stopMakerDiv.offset();
          				var target = evt.target;
          				if(target.tagName === 'path') return;
          				var x = evt.pageX - stop_offset.left - 8;
          				x = x < 10 ? 10 : x > MAX + 10 ? MAX + 10: x;
          				mkStop(x / MAX, 0, 0, true);
          				evt.stopPropagation();
          			});
          			
          			$(stopMakerSVG).mouseover(function() {
          				stopMakerSVG.appendChild(delStop);
          			});
          			
          			stopGroup = mkElem('g', {}, stopMakerSVG);
          			
          			mkElem('line', {
          				x1: 10,
          				y1: 15,
          				x2: MAX + 10,
          				y2: 15,
          				'stroke-width': 2,
          				stroke: '#000'
          			}, stopMakerSVG);
          			
          			
          			var spreadMethodOpt = gradPicker.find('.jGraduate_spreadMethod').change(function() {
          				curGradient.setAttribute('spreadMethod', $(this).val());
          			});
          			
          		
          			// handle dragging the stop around the swatch
          			var draggingCoord = null;
          			
          			var onCoordDrag = function(evt) {
          				var x = evt.pageX - offset.left;
          				var y = evt.pageY - offset.top;
          
          				// clamp stop to the swatch
          				x = x < 0 ? 0 : x > MAX ? MAX : x;
          				y = y < 0 ? 0 : y > MAX ? MAX : y;
          				
          				draggingCoord.css('left', x).css('top', y);
          
          				// calculate stop offset            		
          				var fracx = x / SIZEX;
          				var fracy = y / SIZEY;
          				
          				var type = draggingCoord.data('coord');
          				var grad = curGradient;
          				
          				switch ( type ) {
          					case 'start':
          						attr_input.x1.val(fracx);
          						attr_input.y1.val(fracy);
          						grad.setAttribute('x1', fracx);
          						grad.setAttribute('y1', fracy);
          						break;
          					case 'end':
          						attr_input.x2.val(fracx);
          						attr_input.y2.val(fracy);
          						grad.setAttribute('x2', fracx);
          						grad.setAttribute('y2', fracy);
          						break;
          					case 'center':
          						attr_input.cx.val(fracx);
          						attr_input.cy.val(fracy);
          						grad.setAttribute('cx', fracx);
          						grad.setAttribute('cy', fracy);
          						c_x = fracx;
          						c_y = fracy;
          						xform();
          						break;
          					case 'focus':
          						attr_input.fx.val(fracx);
          						attr_input.fy.val(fracy);
          						grad.setAttribute('fx', fracx);
          						grad.setAttribute('fy', fracy);
          						xform();
          				}
          				
          				evt.preventDefault();
          			}
          			
          			var onCoordUp = function() {
          				draggingCoord = null;
          				$win.unbind('mousemove', onCoordDrag).unbind('mouseup', onCoordUp);
          			}
          			
          			// Linear gradient
          // 			(function() {
          
          			
          			stops = curGradient.getElementsByTagNameNS(ns.svg, 'stop');
          
          			// if there are not at least two stops, then 
          			if (numstops < 2) {
          				while (numstops < 2) {
          					curGradient.appendChild( document.createElementNS(ns.svg, 'stop') );
          					++numstops;
          				}
          				stops = curGradient.getElementsByTagNameNS(ns.svg, 'stop');
          			}
          			
          			var numstops = stops.length;				
          			for(var i = 0; i < numstops; i++) {
          				mkStop(0, 0, 0, 0, stops[i]);
          			}
          			
          			spreadMethodOpt.val(curGradient.getAttribute('spreadMethod') || 'pad');
          
          			var offset;
          			
          			// No match, so show focus point
          			var showFocus = false; 
          			
          			previewRect.setAttribute('fill-opacity', gradalpha/100);
          
          			
          			$('#' + id + ' div.grad_coord').mousedown(function(evt) {
          				evt.preventDefault();
          				draggingCoord = $(this);
          				var s_pos = draggingCoord.offset();
          				offset = draggingCoord.parent().offset();
          				$win.mousemove(onCoordDrag).mouseup(onCoordUp);
          			});
          			
          			// bind GUI elements
          			$('#'+id+'_jGraduate_Ok').bind('click', function() {
          				$this.paint.type = curType;
          				$this.paint[curType] = curGradient.cloneNode(true);;
          				$this.paint.solidColor = null;
          				okClicked();
          			});
          			$('#'+id+'_jGraduate_Cancel').bind('click', function(paint) {
          				cancelClicked();
          			});
          
          			if(curType === 'radialGradient') {
          				if(showFocus) {
          					focusCoord.show();				
          				} else {
          					focusCoord.hide();
          					attr_input.fx.val("");
          					attr_input.fy.val("");
          				}
          			}
          
          			$("#" + id + "_jGraduate_match_ctr")[0].checked = !showFocus;
          			
          			var lastfx, lastfy;
          			
          			$("#" + id + "_jGraduate_match_ctr").change(function() {
          				showFocus = !this.checked;
          				focusCoord.toggle(showFocus);
          				attr_input.fx.val('');
          				attr_input.fy.val('');
          				var grad = curGradient;
          				if(!showFocus) {
          					lastfx = grad.getAttribute('fx');
          					lastfy = grad.getAttribute('fy');
          					grad.removeAttribute('fx');
          					grad.removeAttribute('fy');
          				} else {
          					var fx = lastfx || .5;
          					var fy = lastfy || .5;
          					grad.setAttribute('fx', fx);
          					grad.setAttribute('fy', fy);
          					attr_input.fx.val(fx);
          					attr_input.fy.val(fy);
          				}
          			});
          			
          			var stops = curGradient.getElementsByTagNameNS(ns.svg, 'stop');
          			var numstops = stops.length;
          			// if there are not at least two stops, then 
          			if (numstops < 2) {
          				while (numstops < 2) {
          					curGradient.appendChild( document.createElementNS(ns.svg, 'stop') );
          					++numstops;
          				}
          				stops = curGradient.getElementsByTagNameNS(ns.svg, 'stop');
          			}
          			
          			var slider;
          			
          			var setSlider = function(e) {
          				var offset = slider.offset;
          				var div = slider.parent;
          				var x = (e.pageX - offset.left - parseInt(div.css('border-left-width')));
          				if (x > SLIDERW) x = SLIDERW;
          				if (x <= 0) x = 0;
          				var posx = x - 5;
          				x /= SLIDERW;
          				
          				switch ( slider.type ) {
          					case 'radius':
          						x = Math.pow(x * 2, 2.5);
          						if(x > .98 && x < 1.02) x = 1;
          						if (x <= .01) x = .01;
          						curGradient.setAttribute('r', x);
          						break;
          					case 'opacity':
          						$this.paint.alpha = parseInt(x*100);
          						previewRect.setAttribute('fill-opacity', x);
          						break;
          					case 'ellip':
          						scale_x = 1, scale_y = 1;
          						if(x < .5) {
          							x /= .5; // 0.001
          							scale_x = x <= 0 ? .01 : x;
          						} else if(x > .5) {
          							x /= .5; // 2
          							x = 2 - x;
          							scale_y = x <= 0 ? .01 : x;
          						} 
          						xform();
          						x -= 1;
          						if(scale_y === x + 1) {
          							x = Math.abs(x);
          						}
          						break;
          					case 'angle':
          						x = x - .5;
          						angle = x *= 180;
          						xform();
          						x /= 100;
          						break;
          				}
          				slider.elem.css({'margin-left':posx});
          				x = Math.round(x*100);
          				slider.input.val(x);
          			};
          			
          			var ellip_val = 0, angle_val = 0;
          			
          			if(curType === 'radialGradient') {
          				var tlist = curGradient.gradientTransform.baseVal;
          				if(tlist.numberOfItems === 2) {
          					var t = tlist.getItem(0);
          					var s = tlist.getItem(1);
          					if(t.type === 2 && s.type === 3) {
          						var m = s.matrix;
          						if(m.a !== 1) {
          							ellip_val = Math.round(-(1 - m.a) * 100);	
          						} else if(m.d !== 1) {
          							ellip_val = Math.round((1 - m.d) * 100);
          						} 
          					}
          				} else if(tlist.numberOfItems === 3) {
          					// Assume [R][T][S]
          					var r = tlist.getItem(0);
          					var t = tlist.getItem(1);
          					var s = tlist.getItem(2);
          					
          					if(r.type === 4 
          						&& t.type === 2 
          						&& s.type === 3) {
          
          						angle_val = Math.round(r.angle);
          						var m = s.matrix;
          						if(m.a !== 1) {
          							ellip_val = Math.round(-(1 - m.a) * 100);	
          						} else if(m.d !== 1) {
          							ellip_val = Math.round((1 - m.d) * 100);
          						} 
          						
          					}
          				}
          			}
          			
          			var sliders = {
          				radius: {
          					handle: '#' + id + '_jGraduate_RadiusArrows',
          					input: '#' + id + '_jGraduate_RadiusInput',
          					val: (curGradient.getAttribute('r') || .5) * 100
          				},
          				opacity: {
          					handle: '#' + id + '_jGraduate_OpacArrows',
          					input: '#' + id + '_jGraduate_OpacInput',
          					val: $this.paint.alpha || 100
          				},
          				ellip: {
          					handle: '#' + id + '_jGraduate_EllipArrows',
          					input: '#' + id + '_jGraduate_EllipInput',
          					val: ellip_val
          				},
          				angle: {
          					handle: '#' + id + '_jGraduate_AngleArrows',
          					input: '#' + id + '_jGraduate_AngleInput',
          					val: angle_val
          				}
          			}
          			
          			$.each(sliders, function(type, data) {
          				var handle = $(data.handle);
          				handle.mousedown(function(evt) {
          					var parent = handle.parent();
          					slider = {
          						type: type,
          						elem: handle,
          						input: $(data.input),
          						parent: parent,
          						offset: parent.offset()
          					};
          					$win.mousemove(dragSlider).mouseup(stopSlider);
          					evt.preventDefault();
          				});
          				
          				$(data.input).val(data.val).change(function() {
          					var val = +this.value;
          					var xpos = 0;
          					var isRad = curType === 'radialGradient';
          					switch ( type ) {
          						case 'radius':
          							if(isRad) curGradient.setAttribute('r', val / 100);
          							xpos = (Math.pow(val / 100, 1 / 2.5) / 2) * SLIDERW;
          							break;
          						
          						case 'opacity':
          							$this.paint.alpha = val;
          							previewRect.setAttribute('fill-opacity', val / 100);
          							xpos = val * (SLIDERW / 100);
          							break;
          							
          						case 'ellip':
          							scale_x = scale_y = 1;
          							if(val === 0) {
          								xpos = SLIDERW * .5;
          								break;
          							}
          							if(val > 99.5) val = 99.5;
          							if(val > 0) {
          								scale_y = 1 - (val / 100);
          							} else {
          								scale_x = - (val / 100) - 1;
          							}
          
          							xpos = SLIDERW * ((val + 100) / 2) / 100;
          							if(isRad) xform();
          							break;
          						
          						case 'angle':
          							angle = val;
          							xpos = angle / 180;
          							xpos += .5;
          							xpos *= SLIDERW;
          							if(isRad) xform();
          					}
          					if(xpos > SLIDERW) {
          						xpos = SLIDERW;
          					} else if(xpos < 0) {
          						xpos = 0;
          					}
          					handle.css({'margin-left': xpos - 5});
          				}).change();
          			});
          			
          			var dragSlider = function(evt) {
          				setSlider(evt);
          				evt.preventDefault();
          			};
          			
          			var stopSlider = function(evt) {
          				$win.unbind('mousemove', dragSlider).unbind('mouseup', stopSlider);
          				slider = null;
          			};
          			
          			
          			// --------------
          			var thisAlpha = ($this.paint.alpha*255/100).toString(16);
          			while (thisAlpha.length < 2) { thisAlpha = "0" + thisAlpha; }
          			thisAlpha = thisAlpha.split(".")[0];
          			color = $this.paint.solidColor == "none" ? "" : $this.paint.solidColor + thisAlpha;
          			
          			if(!isSolid) {
          				color = stops[0].getAttribute('stop-color');
          			}
          			
          			// This should be done somewhere else, probably
          			$.extend($.fn.jPicker.defaults.window, {
          				alphaSupport: true, effects: {type: 'show',speed: 0}
          			});
          			
          			colPicker.jPicker(
          				{
          					window: { title: $settings.window.pickerTitle },
          					images: { clientPath: $settings.images.clientPath },
          					color: { active: color, alphaSupport: true }
          				},
          				function(color) {
          					$this.paint.type = "solidColor";
          					$this.paint.alpha = color.val('ahex') ? Math.round((color.val('a') / 255) * 100) : 100;
          					$this.paint.solidColor = color.val('hex') ? color.val('hex') : "none";
          					$this.paint.radialGradient = null;
          					okClicked(); 
          				},
          				null,
          				function(){ cancelClicked(); }
          				);
          
          			
          			var tabs = $(idref + ' .jGraduate_tabs li');
          			tabs.click(function() {
          				tabs.removeClass('jGraduate_tab_current');
          				$(this).addClass('jGraduate_tab_current');
          				$(idref + " > div").hide();
          				var type = $(this).attr('data-type');
          				var container = $(idref + ' .jGraduate_gradPick').show();
          				if(type === 'rg' || type === 'lg') {
          					// Show/hide appropriate fields
          					$('.jGraduate_' + type + '_field').show();
          					$('.jGraduate_' + (type === 'lg' ? 'rg' : 'lg') + '_field').hide();
          					
          					$('#' + id + '_jgraduate_rect')[0].setAttribute('fill', 'url(#' + id + '_' + type + '_jgraduate_grad)');
          					
          					// Copy stops
          					
          					curType = type === 'lg' ? 'linearGradient' : 'radialGradient';
          					
          					$('#' + id + '_jGraduate_OpacInput').val($this.paint.alpha).change();
          					
          					var newGrad = $('#' + id + '_' + type + '_jgraduate_grad')[0];
          					
          					if(curGradient !== newGrad) {
          						var cur_stops = $(curGradient).find('stop');	
          						$(newGrad).empty().append(cur_stops);
          						curGradient = newGrad;
          						var sm = spreadMethodOpt.val();
          						curGradient.setAttribute('spreadMethod', sm);
          					}
          					showFocus = type === 'rg' && curGradient.getAttribute('fx') != null && !(cx == fx && cy == fy);
          					$('#' + id + '_jGraduate_focusCoord').toggle(showFocus);
          					if(showFocus) {
          						$('#' + id + '_jGraduate_match_ctr')[0].checked = false;
          					}
          				} else {
          					$(idref + ' .jGraduate_gradPick').hide();
          					$(idref + ' .jGraduate_colPick').show();
          				}
          			});
          			$(idref + " > div").hide();
          			tabs.removeClass('jGraduate_tab_current');
          			var tab;
          			switch ( $this.paint.type ) {
          				case 'linearGradient':
          					tab = $(idref + ' .jGraduate_tab_lingrad');
          					break;
          				case 'radialGradient':
          					tab = $(idref + ' .jGraduate_tab_radgrad');
          					break;
          				default:
          					tab = $(idref + ' .jGraduate_tab_color');
          					break;
          			}
          			$this.show();
          			
          			// jPicker will try to show after a 0ms timeout, so need to fire this after that
          			setTimeout(function() {
          				tab.addClass('jGraduate_tab_current').click();	
          			}, 10);
          		});
          	};
          })();
        • jquery.jgraduate.min.js
          (function(){function r(i,z,t){i=document.createElementNS(A.svg,i);if(Ba)for(var B in z)i.setAttribute(B,z[B]);else for(B in z){var W=z[B],w=i[B];if(w&&w.constructor==="SVGLength")w.baseVal.value=W;else i.setAttribute(B,W)}t&&t.appendChild(i);return i}var A={svg:"http://www.w3.org/2000/svg",xlink:"http://www.w3.org/1999/xlink"};if(!window.console)window.console=new function(){this.log=function(){};this.dir=function(){}};$.jGraduate={Paint:function(i){i=i||{};this.alpha=isNaN(i.alpha)?100:i.alpha;if(i.copy){this.type=
          i.copy.type;this.alpha=i.copy.alpha;this.radialGradient=this.linearGradient=this.solidColor=null;switch(this.type){case "solidColor":this.solidColor=i.copy.solidColor;break;case "linearGradient":this.linearGradient=i.copy.linearGradient.cloneNode(true);break;case "radialGradient":this.radialGradient=i.copy.radialGradient.cloneNode(true)}}else if(i.linearGradient){this.type="linearGradient";this.radialGradient=this.solidColor=null;this.linearGradient=i.linearGradient.cloneNode(true)}else if(i.radialGradient){this.type=
          "radialGradient";this.linearGradient=this.solidColor=null;this.radialGradient=i.radialGradient.cloneNode(true)}else if(i.solidColor){this.type="solidColor";this.solidColor=i.solidColor}else{this.type="none";this.radialGradient=this.linearGradient=this.solidColor=null}}};jQuery.fn.jGraduateDefaults={paint:new $.jGraduate.Paint,window:{pickerTitle:"Drag markers to pick a paint"},images:{clientPath:"images/"},newstop:"inverse"};var Ba=navigator.userAgent.indexOf("Gecko/")>=0;jQuery.fn.jGraduate=function(i){var z=
          arguments;return this.each(function(){function t(c,a,d,h,f){var l=f||r("stop",{"stop-color":a,"stop-opacity":d,offset:c},g);if(f){a=f.getAttribute("stop-color");d=f.getAttribute("stop-opacity");c=f.getAttribute("offset")}else g.appendChild(l);if(d===null)d=1;f=r("path",{d:"M-6.2,0.9c3.6-4,6.7-4.3,6.7-12.4c-0.2,7.9,3.1,8.8,6.5,12.4c3.5,3.8,2.9,9.6,0,12.3c-3.1,2.8-10.4,2.7-13.2,0C-9.6,9.9-9.4,4.4-6.2,0.9z",fill:"url(#jGraduate_trans)",transform:"translate("+(10+c*j)+", 26)"},fa);var X=r("path",{d:"M-6.2,0.9c3.6-4,6.7-4.3,6.7-12.4c-0.2,7.9,3.1,8.8,6.5,12.4c3.5,3.8,2.9,9.6,0,12.3c-3.1,2.8-10.4,2.7-13.2,0C-9.6,9.9-9.4,4.4-6.2,0.9z",
          fill:a,"fill-opacity":d,transform:"translate("+(10+c*j)+", 26)",stroke:"#000","stroke-width":1.5},fa);$(X).mousedown(function(M){B(this);R=F;N.mousemove(la).mouseup(W);S=ga.offset();M.preventDefault();return false}).data("stop",l).data("bg",f).dblclick(function(){$("div.jGraduate_LightBox").show();for(var M=this,I=+l.getAttribute("stop-opacity")||1,C=l.getAttribute("stop-color")||1,Y=(parseFloat(I)*255).toString(16);Y.length<2;)Y="0"+Y;a=C.substr(1)+Y;$("#"+b+"_jGraduate_stopPicker").css({left:100,
          bottom:15}).jPicker({window:{title:"Pick the start color and opacity for the gradient"},images:{clientPath:o.images.clientPath},color:{active:a,alphaSupport:true}},function(Z){C=Z.val("hex")?"#"+Z.val("hex"):"none";I=Z.val("a")!==null?Z.val("a")/256:1;M.setAttribute("fill",C);M.setAttribute("fill-opacity",I);l.setAttribute("stop-color",C);l.setAttribute("stop-opacity",I);$("div.jGraduate_LightBox").hide();$("#"+b+"_jGraduate_stopPicker").hide()},null,function(){$("div.jGraduate_LightBox").hide();
          $("#"+b+"_jGraduate_stopPicker").hide()})});$(g).find("stop").each(function(){var M=$(this);if(+this.getAttribute("offset")>c){if(!a){var I=this.getAttribute("stop-color"),C=this.getAttribute("stop-opacity");l.setAttribute("stop-color",I);X.setAttribute("fill",I);l.setAttribute("stop-opacity",C===null?1:C);X.setAttribute("fill-opacity",C===null?1:C)}M.before(l);return false}});h&&B(X);return l}function B(c){F&&F.setAttribute("stroke","#000");c.setAttribute("stroke","blue");F=c;F.parentNode.appendChild(F)}
          function W(){N.unbind("mousemove",la);if(O.getAttribute("display")!=="none"){O.setAttribute("display","none");var c=$(F),a=c.data("stop");c=c.data("bg");$([F,a,c]).remove()}R=null}function w(){var c=T?"rotate("+T+","+ha+","+ia+") ":"";J===1&&G===1?g.removeAttribute("gradientTransform"):g.setAttribute("gradientTransform",c+"translate("+-ha*(J-1)+","+-ia*(G-1)+") scale("+J+","+G+")")}function la(c){var a=c.pageX-S.left;c=c.pageY-S.top;a=a<10?10:a>j+10?j+10:a;var d="translate("+a+", 26)";if(c<-60||c>
          130){O.setAttribute("display","block");O.setAttribute("transform",d)}else O.setAttribute("display","none");R.setAttribute("transform",d);$.data(R,"bg").setAttribute("transform",d);$.data(R,"stop").setAttribute("offset",(a-10)/j);var h=0;$(g).find("stop").each(function(){var f=this.getAttribute("offset"),l=$(this);if(f<h){l.prev().before(l);D=$(g).find("stop")}h=f})}var e=$(this),o=$.extend(true,{},jQuery.fn.jGraduateDefaults,i),b=e.attr("id"),s="#"+e.attr("id")+" ";if(s){var ma=function(){switch(e.paint.type){case "radialGradient":e.paint.linearGradient=
          null;break;case "linearGradient":e.paint.radialGradient=null;break;case "solidColor":e.paint.radialGradient=e.paint.linearGradient=null}$.isFunction(e.okCallback)&&e.okCallback(e.paint);e.hide()},na=function(){$.isFunction(e.cancelCallback)&&e.cancelCallback();e.hide()};$.extend(true,e,{paint:new $.jGraduate.Paint({copy:o.paint}),okCallback:$.isFunction(z[1])&&z[1]||null,cancelCallback:$.isFunction(z[2])&&z[2]||null});e.position();var u=null,N=$(window);if(e.paint.type=="none")e.paint=$.jGraduate.Paint({solidColor:"ffffff"});
          e.addClass("jGraduate_Picker");e.html('<ul class="jGraduate_tabs"><li class="jGraduate_tab_color jGraduate_tab_current" data-type="col">Solid Color</li><li class="jGraduate_tab_lingrad" data-type="lg">Linear Gradient</li><li class="jGraduate_tab_radgrad" data-type="rg">Radial Gradient</li></ul><div class="jGraduate_colPick"></div><div class="jGraduate_gradPick"></div><div class="jGraduate_LightBox"></div><div id="'+b+'_jGraduate_stopPicker" class="jGraduate_stopPicker"></div>');var Ca=$(s+"> .jGraduate_colPick"),
          n=$(s+"> .jGraduate_gradPick");n.html('<div id="'+b+'_jGraduate_Swatch" class="jGraduate_Swatch"><h2 class="jGraduate_Title">'+o.window.pickerTitle+'</h2><div id="'+b+'_jGraduate_GradContainer" class="jGraduate_GradContainer"></div><div id="'+b+'_jGraduate_StopSlider" class="jGraduate_StopSlider"></div></div><div class="jGraduate_Form jGraduate_Points jGraduate_lg_field"><div class="jGraduate_StopSection"><label class="jGraduate_Form_Heading">Begin Point</label><div class="jGraduate_Form_Section"><label>x:</label><input type="text" id="'+
          b+'_jGraduate_x1" size="3" title="Enter starting x value between 0.0 and 1.0"/><label> y:</label><input type="text" id="'+b+'_jGraduate_y1" size="3" title="Enter starting y value between 0.0 and 1.0"/></div></div><div class="jGraduate_StopSection"><label class="jGraduate_Form_Heading">End Point</label><div class="jGraduate_Form_Section"><label>x:</label><input type="text" id="'+b+'_jGraduate_x2" size="3" title="Enter ending x value between 0.0 and 1.0"/><label> y:</label><input type="text" id="'+
          b+'_jGraduate_y2" size="3" title="Enter ending y value between 0.0 and 1.0"/></div></div></div><div class="jGraduate_Form jGraduate_Points jGraduate_rg_field"><div class="jGraduate_StopSection"><label class="jGraduate_Form_Heading">Center Point</label><div class="jGraduate_Form_Section"><label>x:</label><input type="text" id="'+b+'_jGraduate_cx" size="3" title="Enter x value between 0.0 and 1.0"/><label> y:</label><input type="text" id="'+b+'_jGraduate_cy" size="3" title="Enter y value between 0.0 and 1.0"/></div></div><div class="jGraduate_StopSection"><label class="jGraduate_Form_Heading">Focal Point</label><div class="jGraduate_Form_Section"><label>Match center: <input type="checkbox" checked="checked" id="'+
          b+'_jGraduate_match_ctr"/></label><br/><label>x:</label><input type="text" id="'+b+'_jGraduate_fx" size="3" title="Enter x value between 0.0 and 1.0"/><label> y:</label><input type="text" id="'+b+'_jGraduate_fy" size="3" title="Enter y value between 0.0 and 1.0"/></div></div></div><div class="jGraduate_StopSection jGraduate_SpreadMethod"><label class="jGraduate_Form_Heading">Spread method</label><div class="jGraduate_Form_Section"><select class="jGraduate_spreadMethod"><option value=pad selected>Pad</option><option value=reflect>Reflect</option><option value=repeat>Repeat</option></select></div></div><div class="jGraduate_Form"><div class="jGraduate_Slider jGraduate_RadiusField jGraduate_rg_field"><label class="prelabel">Radius:</label><div id="'+
          b+'_jGraduate_Radius" class="jGraduate_SliderBar jGraduate_Radius" title="Click to set radius"><img id="'+b+'_jGraduate_RadiusArrows" class="jGraduate_RadiusArrows" src="'+o.images.clientPath+'rangearrows2.gif"></div><label><input type="text" id="'+b+'_jGraduate_RadiusInput" size="3" value="100"/>%</label></div><div class="jGraduate_Slider jGraduate_EllipField jGraduate_rg_field"><label class="prelabel">Ellip:</label><div id="'+b+'_jGraduate_Ellip" class="jGraduate_SliderBar jGraduate_Ellip" title="Click to set Ellip"><img id="'+
          b+'_jGraduate_EllipArrows" class="jGraduate_EllipArrows" src="'+o.images.clientPath+'rangearrows2.gif"></div><label><input type="text" id="'+b+'_jGraduate_EllipInput" size="3" value="0"/>%</label></div><div class="jGraduate_Slider jGraduate_AngleField jGraduate_rg_field"><label class="prelabel">Angle:</label><div id="'+b+'_jGraduate_Angle" class="jGraduate_SliderBar jGraduate_Angle" title="Click to set Angle"><img id="'+b+'_jGraduate_AngleArrows" class="jGraduate_AngleArrows" src="'+o.images.clientPath+
          'rangearrows2.gif"></div><label><input type="text" id="'+b+'_jGraduate_AngleInput" size="3" value="0"/>deg</label></div><div class="jGraduate_Slider jGraduate_OpacField"><label class="prelabel">Opac:</label><div id="'+b+'_jGraduate_Opac" class="jGraduate_SliderBar jGraduate_Opac" title="Click to set Opac"><img id="'+b+'_jGraduate_OpacArrows" class="jGraduate_OpacArrows" src="'+o.images.clientPath+'rangearrows2.gif"></div><label><input type="text" id="'+b+'_jGraduate_OpacInput" size="3" value="100"/>%</label></div></div><div class="jGraduate_OkCancel"><input type="button" id="'+
          b+'_jGraduate_Ok" class="jGraduate_Ok" value="OK"/><input type="button" id="'+b+'_jGraduate_Cancel" class="jGraduate_Cancel" value="Cancel"/></div>');var j=256,oa=j-0,pa=j-0,p,g,aa,q={};$(".jGraduate_SliderBar").width(145);var x=$("#"+b+"_jGraduate_GradContainer")[0],m=r("svg",{id:b+"_jgraduate_svg",width:j,height:j,xmlns:A.svg},x);p=p||e.paint.type;var v=g=e.paint[p],U=e.paint.alpha,ba=p==="solidColor";switch(p){case "solidColor":case "linearGradient":if(!ba){g.id=b+"_lg_jgraduate_grad";v=g=m.appendChild(g)}r("radialGradient",
          {id:b+"_rg_jgraduate_grad"},m);if(p==="linearGradient")break;case "radialGradient":if(!ba){g.id=b+"_rg_jgraduate_grad";v=g=m.appendChild(g)}r("linearGradient",{id:b+"_lg_jgraduate_grad"},m)}if(ba){v=g=$("#"+b+"_lg_jgraduate_grad")[0];u=e.paint[p];t(0,"#"+u,1);var K=typeof o.newstop;if(K==="string")switch(o.newstop){case "same":t(1,"#"+u,1);break;case "inverse":K="";for(var y=0;y<6;y+=2){u.substr(y,2);var P=(255-parseInt(u.substr(y,2),16)).toString(16);if(P.length<2)P=0+P;K+=P}t(1,"#"+K,1);break;case "white":t(1,
          "#ffffff",1);break;case "black":t(1,"#000000",1)}else if(K==="object")t(1,o.newstop.color||"#"+u,"opac"in o.newstop?o.newstop.opac:1)}u=parseFloat(v.getAttribute("x1")||0);K=parseFloat(v.getAttribute("y1")||0);y=parseFloat(v.getAttribute("x2")||1);P=parseFloat(v.getAttribute("y2")||0);var ca=parseFloat(v.getAttribute("cx")||0.5),da=parseFloat(v.getAttribute("cy")||0.5),qa=parseFloat(v.getAttribute("fx")||ca),ra=parseFloat(v.getAttribute("fy")||da);aa=r("rect",{id:b+"_jgraduate_rect",x:0,y:0,width:oa,
          height:pa,fill:"url(#"+b+"_jgraduate_grad)","fill-opacity":U/100},m);var sa=$("<div/>").attr({"class":"grad_coord jGraduate_lg_field",title:"Begin Stop"}).text(1).css({top:K*j,left:u*j}).data("coord","start").appendTo(x),Da=sa.clone().text(2).css({top:P*j,left:y*j}).attr("title","End stop").data("coord","end").appendTo(x),ta=$("<div/>").attr({"class":"grad_coord jGraduate_rg_field",title:"Center stop"}).text("C").css({top:da*j,left:ca*j}).data("coord","center").appendTo(x),V=ta.clone().text("F").css({top:ra*
          j,left:qa*j,display:"none"}).attr("title","Focus point").data("coord","focus").appendTo(x);V[0].id=b+"_jGraduate_focusCoord";$(s+" .grad_coord");$.each(["x1","y1","x2","y2","cx","cy","fx","fy"],function(c,a){var d=g.getAttribute(a),h=isNaN(a[1]);d||(d=h?"0.5":a==="x2"?"1.0":"0.0");q[a]=$("#"+b+"_jGraduate_"+a).val(d).change(function(){if(isNaN(parseFloat(this.value))||this.value<0)this.value=0;else if(this.value>1)this.value=1;if(!(a[0]==="f"&&!E))if(h&&p==="radialGradient"||!h&&p==="linearGradient")g.setAttribute(a,
          this.value);var f=h?a[0]==="c"?ta:V:a[1]==="1"?sa:Da,l=a.indexOf("x")>=0?"left":"top";f.css(l,this.value*j)}).change()});var D,fa,ga=$("#"+b+"_jGraduate_StopSlider"),F,H,R,O=r("path",{d:"m9.75,-6l-19.5,19.5m0,-19.5l19.5,19.5",fill:"none",stroke:"#D00","stroke-width":5,display:"none"},H),S,J=1,G=1,T=0,ha=ca,ia=da;H=r("svg",{width:"100%",height:45},ga[0]);x=r("pattern",{width:16,height:16,patternUnits:"userSpaceOnUse",id:"jGraduate_trans"},H);r("image",{width:16,height:16},x).setAttributeNS(A.xlink,
          "xlink:href",o.images.clientPath+"map-opacity.png");$(H).click(function(c){S=ga.offset();if(c.target.tagName!=="path"){var a=c.pageX-S.left-8;a=a<10?10:a>j+10?j+10:a;t(a/j,0,0,true);c.stopPropagation()}});$(H).mouseover(function(){H.appendChild(O)});fa=r("g",{},H);r("line",{x1:10,y1:15,x2:j+10,y2:15,"stroke-width":2,stroke:"#000"},H);var ua=n.find(".jGraduate_spreadMethod").change(function(){g.setAttribute("spreadMethod",$(this).val())}),Q=null,va=function(c){var a=c.pageX-ja.left,d=c.pageY-ja.top;
          a=a<0?0:a>j?j:a;d=d<0?0:d>j?j:d;Q.css("left",a).css("top",d);a=a/oa;d=d/pa;var h=Q.data("coord"),f=g;switch(h){case "start":q.x1.val(a);q.y1.val(d);f.setAttribute("x1",a);f.setAttribute("y1",d);break;case "end":q.x2.val(a);q.y2.val(d);f.setAttribute("x2",a);f.setAttribute("y2",d);break;case "center":q.cx.val(a);q.cy.val(d);f.setAttribute("cx",a);f.setAttribute("cy",d);ha=a;ia=d;w();break;case "focus":q.fx.val(a);q.fy.val(d);f.setAttribute("fx",a);f.setAttribute("fy",d);w()}c.preventDefault()},wa=
          function(){Q=null;N.unbind("mousemove",va).unbind("mouseup",wa)};D=g.getElementsByTagNameNS(A.svg,"stop");if(k<2){for(;k<2;){g.appendChild(document.createElementNS(A.svg,"stop"));++k}D=g.getElementsByTagNameNS(A.svg,"stop")}var k=D.length;for(y=0;y<k;y++)t(0,0,0,0,D[y]);ua.val(g.getAttribute("spreadMethod")||"pad");var ja,E=false;aa.setAttribute("fill-opacity",U/100);$("#"+b+" div.grad_coord").mousedown(function(c){c.preventDefault();Q=$(this);Q.offset();ja=Q.parent().offset();N.mousemove(va).mouseup(wa)});
          $("#"+b+"_jGraduate_Ok").bind("click",function(){e.paint.type=p;e.paint[p]=g.cloneNode(true);e.paint.solidColor=null;ma()});$("#"+b+"_jGraduate_Cancel").bind("click",function(){na()});if(p==="radialGradient")if(E)V.show();else{V.hide();q.fx.val("");q.fy.val("")}$("#"+b+"_jGraduate_match_ctr")[0].checked=!E;var xa,ya;$("#"+b+"_jGraduate_match_ctr").change(function(){E=!this.checked;V.toggle(E);q.fx.val("");q.fy.val("");var c=g;if(E){var a=xa||0.5,d=ya||0.5;c.setAttribute("fx",a);c.setAttribute("fy",
          d);q.fx.val(a);q.fy.val(d)}else{xa=c.getAttribute("fx");ya=c.getAttribute("fy");c.removeAttribute("fx");c.removeAttribute("fy")}});D=g.getElementsByTagNameNS(A.svg,"stop");k=D.length;if(k<2){for(;k<2;){g.appendChild(document.createElementNS(A.svg,"stop"));++k}D=g.getElementsByTagNameNS(A.svg,"stop")}var L;U=n=0;if(p==="radialGradient"){m=g.gradientTransform.baseVal;if(m.numberOfItems===2){k=m.getItem(0);m=m.getItem(1);if(k.type===2&&m.type===3){k=m.matrix;if(k.a!==1)n=Math.round(-(1-k.a)*100);else if(k.d!==
          1)n=Math.round((1-k.d)*100)}}else if(m.numberOfItems===3){x=m.getItem(0);k=m.getItem(1);m=m.getItem(2);if(x.type===4&&k.type===2&&m.type===3){U=Math.round(x.angle);k=m.matrix;if(k.a!==1)n=Math.round(-(1-k.a)*100);else if(k.d!==1)n=Math.round((1-k.d)*100)}}}n={radius:{handle:"#"+b+"_jGraduate_RadiusArrows",input:"#"+b+"_jGraduate_RadiusInput",val:(g.getAttribute("r")||0.5)*100},opacity:{handle:"#"+b+"_jGraduate_OpacArrows",input:"#"+b+"_jGraduate_OpacInput",val:e.paint.alpha||100},ellip:{handle:"#"+
          b+"_jGraduate_EllipArrows",input:"#"+b+"_jGraduate_EllipInput",val:n},angle:{handle:"#"+b+"_jGraduate_AngleArrows",input:"#"+b+"_jGraduate_AngleInput",val:U}};$.each(n,function(c,a){var d=$(a.handle);d.mousedown(function(h){var f=d.parent();L={type:c,elem:d,input:$(a.input),parent:f,offset:f.offset()};N.mousemove(za).mouseup(Aa);h.preventDefault()});$(a.input).val(a.val).change(function(){var h=+this.value,f=0,l=p==="radialGradient";switch(c){case "radius":l&&g.setAttribute("r",h/100);f=Math.pow(h/
          100,0.4)/2*145;break;case "opacity":e.paint.alpha=h;aa.setAttribute("fill-opacity",h/100);f=h*1.45;break;case "ellip":J=G=1;if(h===0){f=72.5;break}if(h>99.5)h=99.5;if(h>0)G=1-h/100;else J=-(h/100)-1;f=145*((h+100)/2)/100;l&&w();break;case "angle":T=h;f=T/180;f+=0.5;f*=145;l&&w()}if(f>145)f=145;else if(f<0)f=0;d.css({"margin-left":f-5})}).change()});var za=function(c){var a=c.pageX-L.offset.left-parseInt(L.parent.css("border-left-width"));if(a>145)a=145;if(a<=0)a=0;var d=a-5;a/=145;switch(L.type){case "radius":a=
          Math.pow(a*2,2.5);if(a>0.98&&a<1.02)a=1;if(a<=0.01)a=0.01;g.setAttribute("r",a);break;case "opacity":e.paint.alpha=parseInt(a*100);aa.setAttribute("fill-opacity",a);break;case "ellip":G=J=1;if(a<0.5){a/=0.5;J=a<=0?0.01:a}else if(a>0.5){a/=0.5;a=2-a;G=a<=0?0.01:a}w();a-=1;if(G===a+1)a=Math.abs(a);break;case "angle":a-=0.5;T=a*=180;w();a/=100}L.elem.css({"margin-left":d});a=Math.round(a*100);L.input.val(a);c.preventDefault()},Aa=function(){N.unbind("mousemove",za).unbind("mouseup",Aa);L=null};for(n=
          (e.paint.alpha*255/100).toString(16);n.length<2;)n="0"+n;n=n.split(".")[0];u=e.paint.solidColor=="none"?"":e.paint.solidColor+n;ba||(u=D[0].getAttribute("stop-color"));$.extend($.fn.jPicker.defaults.window,{alphaSupport:true,effects:{type:"show",speed:0}});Ca.jPicker({window:{title:o.window.pickerTitle},images:{clientPath:o.images.clientPath},color:{active:u,alphaSupport:true}},function(c){e.paint.type="solidColor";e.paint.alpha=c.val("ahex")?Math.round(c.val("a")/255*100):100;e.paint.solidColor=
          c.val("hex")?c.val("hex"):"none";e.paint.radialGradient=null;ma()},null,function(){na()});var ka=$(s+" .jGraduate_tabs li");ka.click(function(){ka.removeClass("jGraduate_tab_current");$(this).addClass("jGraduate_tab_current");$(s+" > div").hide();var c=$(this).attr("data-type");$(s+" .jGraduate_gradPick").show();if(c==="rg"||c==="lg"){$(".jGraduate_"+c+"_field").show();$(".jGraduate_"+(c==="lg"?"rg":"lg")+"_field").hide();$("#"+b+"_jgraduate_rect")[0].setAttribute("fill","url(#"+b+"_"+c+"_jgraduate_grad)");
          p=c==="lg"?"linearGradient":"radialGradient";$("#"+b+"_jGraduate_OpacInput").val(e.paint.alpha).change();var a=$("#"+b+"_"+c+"_jgraduate_grad")[0];if(g!==a){var d=$(g).find("stop");$(a).empty().append(d);g=a;a=ua.val();g.setAttribute("spreadMethod",a)}E=c==="rg"&&g.getAttribute("fx")!=null&&!(ca==qa&&da==ra);$("#"+b+"_jGraduate_focusCoord").toggle(E);if(E)$("#"+b+"_jGraduate_match_ctr")[0].checked=false}else{$(s+" .jGraduate_gradPick").hide();$(s+" .jGraduate_colPick").show()}});$(s+" > div").hide();
          ka.removeClass("jGraduate_tab_current");var ea;switch(e.paint.type){case "linearGradient":ea=$(s+" .jGraduate_tab_lingrad");break;case "radialGradient":ea=$(s+" .jGraduate_tab_radgrad");break;default:ea=$(s+" .jGraduate_tab_color")}e.show();setTimeout(function(){ea.addClass("jGraduate_tab_current").click()},10)}else alert("Container element must have an id attribute to maintain unique id strings for sub-elements.")})}})();
      • jquery-ui
        • jquery-ui-1.8.17.custom.min.js
          /*!
           * jQuery UI 1.8.17
           *
           * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
           * Dual licensed under the MIT or GPL Version 2 licenses.
           * http://jquery.org/license
           *
           * http://docs.jquery.com/UI
           */(function(a,b){function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;if(!b.href||!g||f.nodeName.toLowerCase()!=="map")return!1;h=a("img[usemap=#"+g+"]")[0];return!!h&&d(h)}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}a.ui=a.ui||{};a.ui.version||(a.extend(a.ui,{version:"1.8.17",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a.each(["Width","Height"],function(c,d){function h(b,c,d,f){a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)});return c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){if(c===b)return g["inner"+d].call(this);return this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){if(typeof b!="number")return g["outer"+d].call(this,b);return this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!!d&&!!a.element[0].parentNode)for(var e=0;e<d.length;e++)a.options[d[e][0]]&&d[e][1].apply(a.element,c)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(b,c){if(a(b).css("overflow")==="hidden")return!1;var d=c&&c==="left"?"scrollLeft":"scrollTop",e=!1;if(b[d]>0)return!0;b[d]=1,e=b[d]>0,b[d]=0;return e},isOverAxis:function(a,b,c){return a>b&&a<b+c},isOver:function(b,c,d,e,f,g){return a.ui.isOverAxis(b,d,f)&&a.ui.isOverAxis(c,e,g)}}))})(jQuery);/*!
           * jQuery UI Widget 1.8.17
           *
           * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
           * Dual licensed under the MIT or GPL Version 2 licenses.
           * http://jquery.org/license
           *
           * http://docs.jquery.com/UI/Widget
           */(function(a,b){if(a.cleanData){var c=a.cleanData;a.cleanData=function(b){for(var d=0,e;(e=b[d])!=null;d++)try{a(e).triggerHandler("remove")}catch(f){}c(b)}}else{var d=a.fn.remove;a.fn.remove=function(b,c){return this.each(function(){c||(!b||a.filter(b,[this]).length)&&a("*",this).add([this]).each(function(){try{a(this).triggerHandler("remove")}catch(b){}});return d.call(a(this),b,c)})}}a.widget=function(b,c,d){var e=b.split(".")[0],f;b=b.split(".")[1],f=e+"-"+b,d||(d=c,c=a.Widget),a.expr[":"][f]=function(c){return!!a.data(c,b)},a[e]=a[e]||{},a[e][b]=function(a,b){arguments.length&&this._createWidget(a,b)};var g=new c;g.options=a.extend(!0,{},g.options),a[e][b].prototype=a.extend(!0,g,{namespace:e,widgetName:b,widgetEventPrefix:a[e][b].prototype.widgetEventPrefix||b,widgetBaseClass:f},d),a.widget.bridge(b,a[e][b])},a.widget.bridge=function(c,d){a.fn[c]=function(e){var f=typeof e=="string",g=Array.prototype.slice.call(arguments,1),h=this;e=!f&&g.length?a.extend.apply(null,[!0,e].concat(g)):e;if(f&&e.charAt(0)==="_")return h;f?this.each(function(){var d=a.data(this,c),f=d&&a.isFunction(d[e])?d[e].apply(d,g):d;if(f!==d&&f!==b){h=f;return!1}}):this.each(function(){var b=a.data(this,c);b?b.option(e||{})._init():a.data(this,c,new d(e,this))});return h}},a.Widget=function(a,b){arguments.length&&this._createWidget(a,b)},a.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:!1},_createWidget:function(b,c){a.data(c,this.widgetName,this),this.element=a(c),this.options=a.extend(!0,{},this.options,this._getCreateOptions(),b);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()}),this._create(),this._trigger("create"),this._init()},_getCreateOptions:function(){return a.metadata&&a.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName),this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled "+"ui-state-disabled")},widget:function(){return this.element},option:function(c,d){var e=c;if(arguments.length===0)return a.extend({},this.options);if(typeof c=="string"){if(d===b)return this.options[c];e={},e[c]=d}this._setOptions(e);return this},_setOptions:function(b){var c=this;a.each(b,function(a,b){c._setOption(a,b)});return this},_setOption:function(a,b){this.options[a]=b,a==="disabled"&&this.widget()[b?"addClass":"removeClass"](this.widgetBaseClass+"-disabled"+" "+"ui-state-disabled").attr("aria-disabled",b);return this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_trigger:function(b,c,d){var e,f,g=this.options[b];d=d||{},c=a.Event(c),c.type=(b===this.widgetEventPrefix?b:this.widgetEventPrefix+b).toLowerCase(),c.target=this.element[0],f=c.originalEvent;if(f)for(e in f)e in c||(c[e]=f[e]);this.element.trigger(c,d);return!(a.isFunction(g)&&g.call(this.element[0],c,d)===!1||c.isDefaultPrevented())}}})(jQuery);/*!
           * jQuery UI Mouse 1.8.17
           *
           * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
           * Dual licensed under the MIT or GPL Version 2 licenses.
           * http://jquery.org/license
           *
           * http://docs.jquery.com/UI/Mouse
           *
           * Depends:
           *	jquery.ui.widget.js
           */(function(a,b){var c=!1;a(document).mouseup(function(a){c=!1}),a.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var b=this;this.element.bind("mousedown."+this.widgetName,function(a){return b._mouseDown(a)}).bind("click."+this.widgetName,function(c){if(!0===a.data(c.target,b.widgetName+".preventClickEvent")){a.removeData(c.target,b.widgetName+".preventClickEvent"),c.stopImmediatePropagation();return!1}}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(b){if(!c){this._mouseStarted&&this._mouseUp(b),this._mouseDownEvent=b;var d=this,e=b.which==1,f=typeof this.options.cancel=="string"&&b.target.nodeName?a(b.target).closest(this.options.cancel).length:!1;if(!e||f||!this._mouseCapture(b))return!0;this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){d.mouseDelayMet=!0},this.options.delay));if(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)){this._mouseStarted=this._mouseStart(b)!==!1;if(!this._mouseStarted){b.preventDefault();return!0}}!0===a.data(b.target,this.widgetName+".preventClickEvent")&&a.removeData(b.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(a){return d._mouseMove(a)},this._mouseUpDelegate=function(a){return d._mouseUp(a)},a(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),b.preventDefault(),c=!0;return!0}},_mouseMove:function(b){if(a.browser.msie&&!(document.documentMode>=9)&&!b.button)return this._mouseUp(b);if(this._mouseStarted){this._mouseDrag(b);return b.preventDefault()}this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b));return!this._mouseStarted},_mouseUp:function(b){a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b));return!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery);/*
           * jQuery UI Draggable 1.8.17
           *
           * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
           * Dual licensed under the MIT or GPL Version 2 licenses.
           * http://jquery.org/license
           *
           * http://docs.jquery.com/UI/Draggables
           *
           * Depends:
           *	jquery.ui.core.js
           *	jquery.ui.mouse.js
           *	jquery.ui.widget.js
           */(function(a,b){a.widget("ui.draggable",a.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1},_create:function(){this.options.helper=="original"&&!/^(?:r|a|f)/.test(this.element.css("position"))&&(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},destroy:function(){if(!!this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy();return this}},_mouseCapture:function(b){var c=this.options;if(this.helper||c.disabled||a(b.target).is(".ui-resizable-handle"))return!1;this.handle=this._getHandle(b);if(!this.handle)return!1;c.iframeFix&&a(c.iframeFix===!0?"iframe":c.iframeFix).each(function(){a('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(a(this).offset()).appendTo("body")});return!0},_mouseStart:function(b){var c=this.options;this.helper=this._createHelper(b),this._cacheHelperProportions(),a.ui.ddmanager&&(a.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,c.cursorAt&&this._adjustOffsetFromHelper(c.cursorAt),c.containment&&this._setContainment();if(this._trigger("start",b)===!1){this._clear();return!1}this._cacheHelperProportions(),a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.helper.addClass("ui-draggable-dragging"),this._mouseDrag(b,!0),a.ui.ddmanager&&a.ui.ddmanager.dragStart(this,b);return!0},_mouseDrag:function(b,c){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute");if(!c){var d=this._uiHash();if(this._trigger("drag",b,d)===!1){this._mouseUp({});return!1}this.position=d.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";a.ui.ddmanager&&a.ui.ddmanager.drag(this,b);return!1},_mouseStop:function(b){var c=!1;a.ui.ddmanager&&!this.options.dropBehaviour&&(c=a.ui.ddmanager.drop(this,b)),this.dropped&&(c=this.dropped,this.dropped=!1);if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return!1;if(this.options.revert=="invalid"&&!c||this.options.revert=="valid"&&c||this.options.revert===!0||a.isFunction(this.options.revert)&&this.options.revert.call(this.element,c)){var d=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){d._trigger("stop",b)!==!1&&d._clear()})}else this._trigger("stop",b)!==!1&&this._clear();return!1},_mouseUp:function(b){this.options.iframeFix===!0&&a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),a.ui.ddmanager&&a.ui.ddmanager.dragStop(this,b);return a.ui.mouse.prototype._mouseUp.call(this,b)},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?!0:!1;a(this.options.handle,this.element).find("*").andSelf().each(function(){this==b.target&&(c=!0)});return c},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b])):c.helper=="clone"?this.element.clone().removeAttr("id"):this.element;d.parents("body").length||d.appendTo(c.appendTo=="parent"?this.element[0].parentNode:c.appendTo),d[0]!=this.element[0]&&!/(fixed|absolute)/.test(d.css("position"))&&d.css("position","absolute");return d},_adjustOffsetFromHelper:function(b){typeof b=="string"&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)b={top:0,left:0};return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b=this.options;b.containment=="parent"&&(b.containment=this.helper[0].parentNode);if(b.containment=="document"||b.containment=="window")this.containment=[b.containment=="document"?0:a(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,b.containment=="document"?0:a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(b.containment=="document"?0:a(window).scrollLeft())+a(b.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(b.containment=="document"?0:a(window).scrollTop())+(a(b.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(b.containment)&&b.containment.constructor!=Array){var c=a(b.containment),d=c[0];if(!d)return;var e=c.offset(),f=a(d).css("overflow")!="hidden";this.containment=[(parseInt(a(d).css("borderLeftWidth"),10)||0)+(parseInt(a(d).css("paddingLeft"),10)||0),(parseInt(a(d).css("borderTopWidth"),10)||0)+(parseInt(a(d).css("paddingTop"),10)||0),(f?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(a(d).css("borderLeftWidth"),10)||0)-(parseInt(a(d).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(f?Math.max(d.scrollHeight,d.offsetHeight):d.offsetHeight)-(parseInt(a(d).css("borderTopWidth"),10)||0)-(parseInt(a(d).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=c}else b.containment.constructor==Array&&(this.containment=b.containment)},_convertPositionTo:function(b,c){c||(c=this.position);var d=b=="absolute"?1:-1,e=this.options,f=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=/(html|body)/i.test(f[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():g?0:f.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:f.scrollLeft())*d)}},_generatePosition:function(b){var c=this.options,d=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName),f=b.pageX,g=b.pageY;if(this.originalPosition){var h;if(this.containment){if(this.relative_container){var i=this.relative_container.offset();h=[this.containment[0]+i.left,this.containment[1]+i.top,this.containment[2]+i.left,this.containment[3]+i.top]}else h=this.containment;b.pageX-this.offset.click.left<h[0]&&(f=h[0]+this.offset.click.left),b.pageY-this.offset.click.top<h[1]&&(g=h[1]+this.offset.click.top),b.pageX-this.offset.click.left>h[2]&&(f=h[2]+this.offset.click.left),b.pageY-this.offset.click.top>h[3]&&(g=h[3]+this.offset.click.top)}if(c.grid){var j=c.grid[1]?this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1]:this.originalPageY;g=h?j-this.offset.click.top<h[1]||j-this.offset.click.top>h[3]?j-this.offset.click.top<h[1]?j+c.grid[1]:j-c.grid[1]:j:j;var k=c.grid[0]?this.originalPageX+Math.round((f-this.originalPageX)/c.grid[0])*c.grid[0]:this.originalPageX;f=h?k-this.offset.click.left<h[0]||k-this.offset.click.left>h[2]?k-this.offset.click.left<h[0]?k+c.grid[0]:k-c.grid[0]:k:k}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:d.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:d.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1},_trigger:function(b,c,d){d=d||this._uiHash(),a.ui.plugin.call(this,b,[c,d]),b=="drag"&&(this.positionAbs=this._convertPositionTo("absolute"));return a.Widget.prototype._trigger.call(this,b,c,d)},plugins:{},_uiHash:function(a){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),a.extend(a.ui.draggable,{version:"1.8.17"}),a.ui.plugin.add("draggable","connectToSortable",{start:function(b,c){var d=a(this).data("draggable"),e=d.options,f=a.extend({},c,{item:d.element});d.sortables=[],a(e.connectToSortable).each(function(){var c=a.data(this,"sortable");c&&!c.options.disabled&&(d.sortables.push({instance:c,shouldRevert:c.options.revert}),c.refreshPositions(),c._trigger("activate",b,f))})},stop:function(b,c){var d=a(this).data("draggable"),e=a.extend({},c,{item:d.element});a.each(d.sortables,function(){this.instance.isOver?(this.instance.isOver=0,d.cancelHelperRemoval=!0,this.instance.cancelHelperRemoval=!1,this.shouldRevert&&(this.instance.options.revert=!0),this.instance._mouseStop(b),this.instance.options.helper=this.instance.options._helper,d.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})):(this.instance.cancelHelperRemoval=!1,this.instance._trigger("deactivate",b,e))})},drag:function(b,c){var d=a(this).data("draggable"),e=this,f=function(b){var c=this.offset.click.top,d=this.offset.click.left,e=this.positionAbs.top,f=this.positionAbs.left,g=b.height,h=b.width,i=b.top,j=b.left;return a.ui.isOver(e+c,f+d,i,j,g,h)};a.each(d.sortables,function(f){this.instance.positionAbs=d.positionAbs,this.instance.helperProportions=d.helperProportions,this.instance.offset.click=d.offset.click,this.instance._intersectsWith(this.instance.containerCache)?(this.instance.isOver||(this.instance.isOver=1,this.instance.currentItem=a(e).clone().removeAttr("id").appendTo(this.instance.element).data("sortable-item",!0),this.instance.options._helper=this.instance.options.helper,this.instance.options.helper=function(){return c.helper[0]},b.target=this.instance.currentItem[0],this.instance._mouseCapture(b,!0),this.instance._mouseStart(b,!0,!0),this.instance.offset.click.top=d.offset.click.top,this.instance.offset.click.left=d.offset.click.left,this.instance.offset.parent.left-=d.offset.parent.left-this.instance.offset.parent.left,this.instance.offset.parent.top-=d.offset.parent.top-this.instance.offset.parent.top,d._trigger("toSortable",b),d.dropped=this.instance.element,d.currentItem=d.element,this.instance.fromOutside=d),this.instance.currentItem&&this.instance._mouseDrag(b)):this.instance.isOver&&(this.instance.isOver=0,this.instance.cancelHelperRemoval=!0,this.instance.options.revert=!1,this.instance._trigger("out",b,this.instance._uiHash(this.instance)),this.instance._mouseStop(b,!0),this.instance.options.helper=this.instance.options._helper,this.instance.currentItem.remove(),this.instance.placeholder&&this.instance.placeholder.remove(),d._trigger("fromSortable",b),d.dropped=!1)})}}),a.ui.plugin.add("draggable","cursor",{start:function(b,c){var d=a("body"),e=a(this).data("draggable").options;d.css("cursor")&&(e._cursor=d.css("cursor")),d.css("cursor",e.cursor)},stop:function(b,c){var d=a(this).data("draggable").options;d._cursor&&a("body").css("cursor",d._cursor)}}),a.ui.plugin.add("draggable","opacity",{start:function(b,c){var d=a(c.helper),e=a(this).data("draggable").options;d.css("opacity")&&(e._opacity=d.css("opacity")),d.css("opacity",e.opacity)},stop:function(b,c){var d=a(this).data("draggable").options;d._opacity&&a(c.helper).css("opacity",d._opacity)}}),a.ui.plugin.add("draggable","scroll",{start:function(b,c){var d=a(this).data("draggable");d.scrollParent[0]!=document&&d.scrollParent[0].tagName!="HTML"&&(d.overflowOffset=d.scrollParent.offset())},drag:function(b,c){var d=a(this).data("draggable"),e=d.options,f=!1;if(d.scrollParent[0]!=document&&d.scrollParent[0].tagName!="HTML"){if(!e.axis||e.axis!="x")d.overflowOffset.top+d.scrollParent[0].offsetHeight-b.pageY<e.scrollSensitivity?d.scrollParent[0].scrollTop=f=d.scrollParent[0].scrollTop+e.scrollSpeed:b.pageY-d.overflowOffset.top<e.scrollSensitivity&&(d.scrollParent[0].scrollTop=f=d.scrollParent[0].scrollTop-e.scrollSpeed);if(!e.axis||e.axis!="y")d.overflowOffset.left+d.scrollParent[0].offsetWidth-b.pageX<e.scrollSensitivity?d.scrollParent[0].scrollLeft=f=d.scrollParent[0].scrollLeft+e.scrollSpeed:b.pageX-d.overflowOffset.left<e.scrollSensitivity&&(d.scrollParent[0].scrollLeft=f=d.scrollParent[0].scrollLeft-e.scrollSpeed)}else{if(!e.axis||e.axis!="x")b.pageY-a(document).scrollTop()<e.scrollSensitivity?f=a(document).scrollTop(a(document).scrollTop()-e.scrollSpeed):a(window).height()-(b.pageY-a(document).scrollTop())<e.scrollSensitivity&&(f=a(document).scrollTop(a(document).scrollTop()+e.scrollSpeed));if(!e.axis||e.axis!="y")b.pageX-a(document).scrollLeft()<e.scrollSensitivity?f=a(document).scrollLeft(a(document).scrollLeft()-e.scrollSpeed):a(window).width()-(b.pageX-a(document).scrollLeft())<e.scrollSensitivity&&(f=a(document).scrollLeft(a(document).scrollLeft()+e.scrollSpeed))}f!==!1&&a.ui.ddmanager&&!e.dropBehaviour&&a.ui.ddmanager.prepareOffsets(d,b)}}),a.ui.plugin.add("draggable","snap",{start:function(b,c){var d=a(this).data("draggable"),e=d.options;d.snapElements=[],a(e.snap.constructor!=String?e.snap.items||":data(draggable)":e.snap).each(function(){var b=a(this),c=b.offset();this!=d.element[0]&&d.snapElements.push({item:this,width:b.outerWidth(),height:b.outerHeight(),top:c.top,left:c.left})})},drag:function(b,c){var d=a(this).data("draggable"),e=d.options,f=e.snapTolerance,g=c.offset.left,h=g+d.helperProportions.width,i=c.offset.top,j=i+d.helperProportions.height;for(var k=d.snapElements.length-1;k>=0;k--){var l=d.snapElements[k].left,m=l+d.snapElements[k].width,n=d.snapElements[k].top,o=n+d.snapElements[k].height;if(!(l-f<g&&g<m+f&&n-f<i&&i<o+f||l-f<g&&g<m+f&&n-f<j&&j<o+f||l-f<h&&h<m+f&&n-f<i&&i<o+f||l-f<h&&h<m+f&&n-f<j&&j<o+f)){d.snapElements[k].snapping&&d.options.snap.release&&d.options.snap.release.call(d.element,b,a.extend(d._uiHash(),{snapItem:d.snapElements[k].item})),d.snapElements[k].snapping=!1;continue}if(e.snapMode!="inner"){var p=Math.abs(n-j)<=f,q=Math.abs(o-i)<=f,r=Math.abs(l-h)<=f,s=Math.abs(m-g)<=f;p&&(c.position.top=d._convertPositionTo("relative",{top:n-d.helperProportions.height,left:0}).top-d.margins.top),q&&(c.position.top=d._convertPositionTo("relative",{top:o,left:0}).top-d.margins.top),r&&(c.position.left=d._convertPositionTo("relative",{top:0,left:l-d.helperProportions.width}).left-d.margins.left),s&&(c.position.left=d._convertPositionTo("relative",{top:0,left:m}).left-d.margins.left)}var t=p||q||r||s;if(e.snapMode!="outer"){var p=Math.abs(n-i)<=f,q=Math.abs(o-j)<=f,r=Math.abs(l-g)<=f,s=Math.abs(m-h)<=f;p&&(c.position.top=d._convertPositionTo("relative",{top:n,left:0}).top-d.margins.top),q&&(c.position.top=d._convertPositionTo("relative",{top:o-d.helperProportions.height,left:0}).top-d.margins.top),r&&(c.position.left=d._convertPositionTo("relative",{top:0,left:l}).left-d.margins.left),s&&(c.position.left=d._convertPositionTo("relative",{top:0,left:m-d.helperProportions.width}).left-d.margins.left)}!d.snapElements[k].snapping&&(p||q||r||s||t)&&d.options.snap.snap&&d.options.snap.snap.call(d.element,b,a.extend(d._uiHash(),{snapItem:d.snapElements[k].item})),d.snapElements[k].snapping=p||q||r||s||t}}}),a.ui.plugin.add("draggable","stack",{start:function(b,c){var d=a(this).data("draggable").options,e=a.makeArray(a(d.stack)).sort(function(b,c){return(parseInt(a(b).css("zIndex"),10)||0)-(parseInt(a(c).css("zIndex"),10)||0)});if(!!e.length){var f=parseInt(e[0].style.zIndex)||0;a(e).each(function(a){this.style.zIndex=f+a}),this[0].style.zIndex=f+e.length}}}),a.ui.plugin.add("draggable","zIndex",{start:function(b,c){var d=a(c.helper),e=a(this).data("draggable").options;d.css("zIndex")&&(e._zIndex=d.css("zIndex")),d.css("zIndex",e.zIndex)},stop:function(b,c){var d=a(this).data("draggable").options;d._zIndex&&a(c.helper).css("zIndex",d._zIndex)}})})(jQuery);/*
           * jQuery UI Slider 1.8.17
           *
           * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
           * Dual licensed under the MIT or GPL Version 2 licenses.
           * http://jquery.org/license
           *
           * http://docs.jquery.com/UI/Slider
           *
           * Depends:
           *	jquery.ui.core.js
           *	jquery.ui.mouse.js
           *	jquery.ui.widget.js
           */(function(a,b){var c=5;a.widget("ui.slider",a.ui.mouse,{widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null},_create:function(){var b=this,d=this.options,e=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),f="<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>",g=d.values&&d.values.length||1,h=[];this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all"+(d.disabled?" ui-slider-disabled ui-disabled":"")),this.range=a([]),d.range&&(d.range===!0&&(d.values||(d.values=[this._valueMin(),this._valueMin()]),d.values.length&&d.values.length!==2&&(d.values=[d.values[0],d.values[0]])),this.range=a("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(d.range==="min"||d.range==="max"?" ui-slider-range-"+d.range:"")));for(var i=e.length;i<g;i+=1)h.push(f);this.handles=e.add(a(h.join("")).appendTo(b.element)),this.handle=this.handles.eq(0),this.handles.add(this.range).filter("a").click(function(a){a.preventDefault()}).hover(function(){d.disabled||a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")}).focus(function(){d.disabled?a(this).blur():(a(".ui-slider .ui-state-focus").removeClass("ui-state-focus"),a(this).addClass("ui-state-focus"))}).blur(function(){a(this).removeClass("ui-state-focus")}),this.handles.each(function(b){a(this).data("index.ui-slider-handle",b)}),this.handles.keydown(function(d){var e=!0,f=a(this).data("index.ui-slider-handle"),g,h,i,j;if(!b.options.disabled){switch(d.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.PAGE_UP:case a.ui.keyCode.PAGE_DOWN:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:e=!1;if(!b._keySliding){b._keySliding=!0,a(this).addClass("ui-state-active"),g=b._start(d,f);if(g===!1)return}}j=b.options.step,b.options.values&&b.options.values.length?h=i=b.values(f):h=i=b.value();switch(d.keyCode){case a.ui.keyCode.HOME:i=b._valueMin();break;case a.ui.keyCode.END:i=b._valueMax();break;case a.ui.keyCode.PAGE_UP:i=b._trimAlignValue(h+(b._valueMax()-b._valueMin())/c);break;case a.ui.keyCode.PAGE_DOWN:i=b._trimAlignValue(h-(b._valueMax()-b._valueMin())/c);break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(h===b._valueMax())return;i=b._trimAlignValue(h+j);break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(h===b._valueMin())return;i=b._trimAlignValue(h-j)}b._slide(d,f,i);return e}}).keyup(function(c){var d=a(this).data("index.ui-slider-handle");b._keySliding&&(b._keySliding=!1,b._stop(c,d),b._change(c,d),a(this).removeClass("ui-state-active"))}),this._refreshValue(),this._animateOff=!1},destroy:function(){this.handles.remove(),this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider"),this._mouseDestroy();return this},_mouseCapture:function(b){var c=this.options,d,e,f,g,h,i,j,k,l;if(c.disabled)return!1;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),d={x:b.pageX,y:b.pageY},e=this._normValueFromMouse(d),f=this._valueMax()-this._valueMin()+1,h=this,this.handles.each(function(b){var c=Math.abs(e-h.values(b));f>c&&(f=c,g=a(this),i=b)}),c.range===!0&&this.values(1)===c.min&&(i+=1,g=a(this.handles[i])),j=this._start(b,i);if(j===!1)return!1;this._mouseSliding=!0,h._handleIndex=i,g.addClass("ui-state-active").focus(),k=g.offset(),l=!a(b.target).parents().andSelf().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:b.pageX-k.left-g.width()/2,top:b.pageY-k.top-g.height()/2-(parseInt(g.css("borderTopWidth"),10)||0)-(parseInt(g.css("borderBottomWidth"),10)||0)+(parseInt(g.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(b,i,e),this._animateOff=!0;return!0},_mouseStart:function(a){return!0},_mouseDrag:function(a){var b={x:a.pageX,y:a.pageY},c=this._normValueFromMouse(b);this._slide(a,this._handleIndex,c);return!1},_mouseStop:function(a){this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(a,this._handleIndex),this._change(a,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1;return!1},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b,c,d,e,f;this.orientation==="horizontal"?(b=this.elementSize.width,c=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(b=this.elementSize.height,c=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),d=c/b,d>1&&(d=1),d<0&&(d=0),this.orientation==="vertical"&&(d=1-d),e=this._valueMax()-this._valueMin(),f=this._valueMin()+d*e;return this._trimAlignValue(f)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values());return this._trigger("start",a,c)},_slide:function(a,b,c){var d,e,f;this.options.values&&this.options.values.length?(d=this.values(b?0:1),this.options.values.length===2&&this.options.range===!0&&(b===0&&c>d||b===1&&c<d)&&(c=d),c!==this.values(b)&&(e=this.values(),e[b]=c,f=this._trigger("slide",a,{handle:this.handles[b],value:c,values:e}),d=this.values(b?0:1),f!==!1&&this.values(b,c,!0))):c!==this.value()&&(f=this._trigger("slide",a,{handle:this.handles[b],value:c}),f!==!1&&this.value(c))},_stop:function(a,b){var c={handle:this.handles[b],value:this.value()};this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("stop",a,c)},_change:function(a,b){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[b],value:this.value()};this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("change",a,c)}},value:function(a){if(arguments.length)this.options.value=this._trimAlignValue(a),this._refreshValue(),this._change(null,0);else return this._value()},values:function(b,c){var d,e,f;if(arguments.length>1)this.options.values[b]=this._trimAlignValue(c),this._refreshValue(),this._change(null,b);else{if(!arguments.length)return this._values();if(!a.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(b):this.value();d=this.options.values,e=arguments[0];for(f=0;f<d.length;f+=1)d[f]=this._trimAlignValue(e[f]),this._change(null,f);this._refreshValue()}},_setOption:function(b,c){var d,e=0;a.isArray(this.options.values)&&(e=this.options.values.length),a.Widget.prototype._setOption.apply(this,arguments);switch(b){case"disabled":c?(this.handles.filter(".ui-state-focus").blur(),this.handles.removeClass("ui-state-hover"),this.handles.propAttr("disabled",!0),this.element.addClass("ui-disabled")):(this.handles.propAttr("disabled",!1),this.element.removeClass("ui-disabled"));break;case"orientation":this._detectOrientation(),this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation),this._refreshValue();break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":this._animateOff=!0,this._refreshValue();for(d=0;d<e;d+=1)this._change(null,d);this._animateOff=!1}},_value:function(){var a=this.options.value;a=this._trimAlignValue(a);return a},_values:function(a){var b,c,d;if(arguments.length){b=this.options.values[a],b=this._trimAlignValue(b);return b}c=this.options.values.slice();for(d=0;d<c.length;d+=1)c[d]=this._trimAlignValue(c[d]);return c},_trimAlignValue:function(a){if(a<=this._valueMin())return this._valueMin();if(a>=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b,d=a-c;Math.abs(c)*2>=b&&(d+=c>0?b:-b);return parseFloat(d.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var b=this.options.range,c=this.options,d=this,e=this._animateOff?!1:c.animate,f,g={},h,i,j,k;this.options.values&&this.options.values.length?this.handles.each(function(b,i){f=(d.values(b)-d._valueMin())/(d._valueMax()-d._valueMin())*100,g[d.orientation==="horizontal"?"left":"bottom"]=f+"%",a(this).stop(1,1)[e?"animate":"css"](g,c.animate),d.options.range===!0&&(d.orientation==="horizontal"?(b===0&&d.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},c.animate),b===1&&d.range[e?"animate":"css"]({width:f-h+"%"},{queue:!1,duration:c.animate})):(b===0&&d.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},c.animate),b===1&&d.range[e?"animate":"css"]({height:f-h+"%"},{queue:!1,duration:c.animate}))),h=f}):(i=this.value(),j=this._valueMin(),k=this._valueMax(),f=k!==j?(i-j)/(k-j)*100:0,g[d.orientation==="horizontal"?"left":"bottom"]=f+"%",this.handle.stop(1,1)[e?"animate":"css"](g,c.animate),b==="min"&&this.orientation==="horizontal"&&this.range.stop(1,1)[e?"animate":"css"]({width:f+"%"},c.animate),b==="max"&&this.orientation==="horizontal"&&this.range[e?"animate":"css"]({width:100-f+"%"},{queue:!1,duration:c.animate}),b==="min"&&this.orientation==="vertical"&&this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},c.animate),b==="max"&&this.orientation==="vertical"&&this.range[e?"animate":"css"]({height:100-f+"%"},{queue:!1,duration:c.animate}))}}),a.extend(a.ui.slider,{version:"1.8.17"})})(jQuery);
        • jquery-ui-1.8.custom.min.js
          /*!
           * jQuery UI 1.8
           *
           * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
           * Dual licensed under the MIT (MIT-LICENSE.txt)
           * and GPL (GPL-LICENSE.txt) licenses.
           *
           * http://docs.jquery.com/UI
           *//*
           * jQuery UI 1.8
           *
           * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
           * Dual licensed under the MIT (MIT-LICENSE.txt)
           * and GPL (GPL-LICENSE.txt) licenses.
           *
           * http://docs.jquery.com/UI
           */
          jQuery.ui||(function(a){a.ui={version:"1.8",plugin:{add:function(c,d,f){var e=a.ui[c].prototype;for(var b in f){e.plugins[b]=e.plugins[b]||[];e.plugins[b].push([d,f[b]])}},call:function(b,d,c){var f=b.plugins[d];if(!f||!b.element[0].parentNode){return}for(var e=0;e<f.length;e++){if(b.options[f[e][0]]){f[e][1].apply(b.element,c)}}}},contains:function(d,c){return document.compareDocumentPosition?d.compareDocumentPosition(c)&16:d!==c&&d.contains(c)},hasScroll:function(e,c){if(a(e).css("overflow")=="hidden"){return false}var b=(c&&c=="left")?"scrollLeft":"scrollTop",d=false;if(e[b]>0){return true}e[b]=1;d=(e[b]>0);e[b]=0;return d},isOverAxis:function(c,b,d){return(c>b)&&(c<(b+d))},isOver:function(g,c,f,e,b,d){return a.ui.isOverAxis(g,f,b)&&a.ui.isOverAxis(c,e,d)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};a.fn.extend({_focus:a.fn.focus,focus:function(b,c){return typeof b==="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus();(c&&c.call(d))},b)}):this._focus.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var b;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){b=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{b=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!b.length?a(document):b},zIndex:function(e){if(e!==undefined){return this.css("zIndex",e)}if(this.length){var c=a(this[0]),b,d;while(c.length&&c[0]!==document){b=c.css("position");if(b=="absolute"||b=="relative"||b=="fixed"){d=parseInt(c.css("zIndex"));if(!isNaN(d)&&d!=0){return d}}c=c.parent()}}return 0}});a.extend(a.expr[":"],{data:function(d,c,b){return !!a.data(d,b[3])},focusable:function(c){var d=c.nodeName.toLowerCase(),b=a.attr(c,"tabindex");return(/input|select|textarea|button|object/.test(d)?!c.disabled:"a"==d||"area"==d?c.href||!isNaN(b):!isNaN(b))&&!a(c)["area"==d?"parents":"closest"](":hidden").length},tabbable:function(c){var b=a.attr(c,"tabindex");return(isNaN(b)||b>=0)&&a(c).is(":focusable")}})})(jQuery);;/*!
           * jQuery UI Widget 1.8
           *
           * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
           * Dual licensed under the MIT (MIT-LICENSE.txt)
           * and GPL (GPL-LICENSE.txt) licenses.
           *
           * http://docs.jquery.com/UI/Widget
           *//*
           * jQuery UI Widget 1.8
           *
           * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
           * Dual licensed under the MIT (MIT-LICENSE.txt)
           * and GPL (GPL-LICENSE.txt) licenses.
           *
           * http://docs.jquery.com/UI/Widget
           */
          (function(b){var a=b.fn.remove;b.fn.remove=function(c,d){return this.each(function(){if(!d){if(!c||b.filter(c,[this]).length){b("*",this).add(this).each(function(){b(this).triggerHandler("remove")})}}return a.call(b(this),c,d)})};b.widget=function(d,f,c){var e=d.split(".")[0],h;d=d.split(".")[1];h=e+"-"+d;if(!c){c=f;f=b.Widget}b.expr[":"][h]=function(i){return !!b.data(i,d)};b[e]=b[e]||{};b[e][d]=function(i,j){if(arguments.length){this._createWidget(i,j)}};var g=new f();g.options=b.extend({},g.options);b[e][d].prototype=b.extend(true,g,{namespace:e,widgetName:d,widgetEventPrefix:b[e][d].prototype.widgetEventPrefix||d,widgetBaseClass:h},c);b.widget.bridge(d,b[e][d])};b.widget.bridge=function(d,c){b.fn[d]=function(g){var e=typeof g==="string",f=Array.prototype.slice.call(arguments,1),h=this;g=!e&&f.length?b.extend.apply(null,[true,g].concat(f)):g;if(e&&g.substring(0,1)==="_"){return h}if(e){this.each(function(){var i=b.data(this,d),j=i&&b.isFunction(i[g])?i[g].apply(i,f):i;if(j!==i&&j!==undefined){h=j;return false}})}else{this.each(function(){var i=b.data(this,d);if(i){if(g){i.option(g)}i._init()}else{b.data(this,d,new c(g,this))}})}return h}};b.Widget=function(c,d){if(arguments.length){this._createWidget(c,d)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(d,e){this.element=b(e).data(this.widgetName,this);this.options=b.extend(true,{},this.options,b.metadata&&b.metadata.get(e)[this.widgetName],d);var c=this;this.element.bind("remove."+this.widgetName,function(){c.destroy()});this._create();this._init()},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled")},widget:function(){return this.element},option:function(e,f){var d=e,c=this;if(arguments.length===0){return b.extend({},c.options)}if(typeof e==="string"){if(f===undefined){return this.options[e]}d={};d[e]=f}b.each(d,function(g,h){c._setOption(g,h)});return c},_setOption:function(c,d){this.options[c]=d;if(c==="disabled"){this.widget()[d?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",d)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(d,e,f){var h=this.options[d];e=b.Event(e);e.type=(d===this.widgetEventPrefix?d:this.widgetEventPrefix+d).toLowerCase();f=f||{};if(e.originalEvent){for(var c=b.event.props.length,g;c;){g=b.event.props[--c];e[g]=e.originalEvent[g]}}this.element.trigger(e,f);return !(b.isFunction(h)&&h.call(this.element[0],e,f)===false||e.isDefaultPrevented())}}})(jQuery);;/*!
           * jQuery UI Mouse 1.8
           *
           * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
           * Dual licensed under the MIT (MIT-LICENSE.txt)
           * and GPL (GPL-LICENSE.txt) licenses.
           *
           * http://docs.jquery.com/UI/Mouse
           *
           * Depends:
           *	jquery.ui.widget.js
           *//*
           * jQuery UI Mouse 1.8
           *
           * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
           * Dual licensed under the MIT (MIT-LICENSE.txt)
           * and GPL (GPL-LICENSE.txt) licenses.
           *
           * http://docs.jquery.com/UI/Mouse
           *
           * Depends:
           *	jquery.ui.widget.js
           */
          (function(a){a.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var b=this;this.element.bind("mousedown."+this.widgetName,function(c){return b._mouseDown(c)}).bind("click."+this.widgetName,function(c){if(b._preventClickEvent){b._preventClickEvent=false;c.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(d){d.originalEvent=d.originalEvent||{};if(d.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(d));this._mouseDownEvent=d;var c=this,e=(d.which==1),b=(typeof this.options.cancel=="string"?a(d.target).parents().add(d.target).filter(this.options.cancel).length:false);if(!e||b||!this._mouseCapture(d)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){c.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(d)!==false);if(!this._mouseStarted){d.preventDefault();return true}}this._mouseMoveDelegate=function(f){return c._mouseMove(f)};this._mouseUpDelegate=function(f){return c._mouseUp(f)};a(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(a.browser.safari||d.preventDefault());d.originalEvent.mouseHandled=true;return true},_mouseMove:function(b){if(a.browser.msie&&!b.button){return this._mouseUp(b)}if(this._mouseStarted){this._mouseDrag(b);return b.preventDefault()}if(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,b)!==false);(this._mouseStarted?this._mouseDrag(b):this._mouseUp(b))}return !this._mouseStarted},_mouseUp:function(b){a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(b.target==this._mouseDownEvent.target);this._mouseStop(b)}return false},_mouseDistanceMet:function(b){return(Math.max(Math.abs(this._mouseDownEvent.pageX-b.pageX),Math.abs(this._mouseDownEvent.pageY-b.pageY))>=this.options.distance)},_mouseDelayMet:function(b){return this.mouseDelayMet},_mouseStart:function(b){},_mouseDrag:function(b){},_mouseStop:function(b){},_mouseCapture:function(b){return true}})})(jQuery);;/*
           * jQuery UI Draggable 1.8
           *
           * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
           * Dual licensed under the MIT (MIT-LICENSE.txt)
           * and GPL (GPL-LICENSE.txt) licenses.
           *
           * http://docs.jquery.com/UI/Draggables
           *
           * Depends:
           *	jquery.ui.core.js
           *	jquery.ui.mouse.js
           *	jquery.ui.widget.js
           */(function(a){a.widget("ui.draggable",a.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper=="original"&&!(/^(?:r|a|f)/).test(this.element.css("position"))){this.element[0].style.position="relative"}(this.options.addClasses&&this.element.addClass("ui-draggable"));(this.options.disabled&&this.element.addClass("ui-draggable-disabled"));this._mouseInit()},destroy:function(){if(!this.element.data("draggable")){return}this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this},_mouseCapture:function(b){var c=this.options;if(this.helper||c.disabled||a(b.target).is(".ui-resizable-handle")){return false}this.handle=this._getHandle(b);if(!this.handle){return false}return true},_mouseStart:function(b){var c=this.options;this.helper=this._createHelper(b);this._cacheHelperProportions();if(a.ui.ddmanager){a.ui.ddmanager.current=this}this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(b);this.originalPageX=b.pageX;this.originalPageY=b.pageY;(c.cursorAt&&this._adjustOffsetFromHelper(c.cursorAt));if(c.containment){this._setContainment()}if(this._trigger("start",b)===false){this._clear();return false}this._cacheHelperProportions();if(a.ui.ddmanager&&!c.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,b)}this.helper.addClass("ui-draggable-dragging");this._mouseDrag(b,true);return true},_mouseDrag:function(b,d){this.position=this._generatePosition(b);this.positionAbs=this._convertPositionTo("absolute");if(!d){var c=this._uiHash();if(this._trigger("drag",b,c)===false){this._mouseUp({});return false}this.position=c.position}if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px"}if(a.ui.ddmanager){a.ui.ddmanager.drag(this,b)}return false},_mouseStop:function(c){var d=false;if(a.ui.ddmanager&&!this.options.dropBehaviour){d=a.ui.ddmanager.drop(this,c)}if(this.dropped){d=this.dropped;this.dropped=false}if(!this.element[0]||!this.element[0].parentNode){return false}if((this.options.revert=="invalid"&&!d)||(this.options.revert=="valid"&&d)||this.options.revert===true||(a.isFunction(this.options.revert)&&this.options.revert.call(this.element,d))){var b=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){if(b._trigger("stop",c)!==false){b._clear()}})}else{if(this._trigger("stop",c)!==false){this._clear()}}return false},cancel:function(){if(this.helper.is(".ui-draggable-dragging")){this._mouseUp({})}else{this._clear()}return this},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?true:false;a(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==b.target){c=true}});return c},_createHelper:function(c){var d=this.options;var b=a.isFunction(d.helper)?a(d.helper.apply(this.element[0],[c])):(d.helper=="clone"?this.element.clone():this.element);if(!b.parents("body").length){b.appendTo((d.appendTo=="parent"?this.element[0].parentNode:d.appendTo))}if(b[0]!=this.element[0]&&!(/(fixed|absolute)/).test(b.css("position"))){b.css("position","absolute")}return b},_adjustOffsetFromHelper:function(b){if(typeof b=="string"){b=b.split(" ")}if(a.isArray(b)){b={left:+b[0],top:+b[1]||0}}if("left" in b){this.offset.click.left=b.left+this.margins.left}if("right" in b){this.offset.click.left=this.helperProportions.width-b.right+this.margins.left}if("top" in b){this.offset.click.top=b.top+this.margins.top}if("bottom" in b){this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])){b.left+=this.scrollParent.scrollLeft();b.top+=this.scrollParent.scrollTop()}if((this.offsetParent[0]==document.body)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)){b={top:0,left:0}}return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var b=this.element.position();return{top:b.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:b.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:(parseInt(this.element.css("marginLeft"),10)||0),top:(parseInt(this.element.css("marginTop"),10)||0)}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e=this.options;if(e.containment=="parent"){e.containment=this.helper[0].parentNode}if(e.containment=="document"||e.containment=="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(e.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(e.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]}if(!(/^(document|window|parent)$/).test(e.containment)&&e.containment.constructor!=Array){var c=a(e.containment)[0];if(!c){return}var d=a(e.containment).offset();var b=(a(c).css("overflow")!="hidden");this.containment=[d.left+(parseInt(a(c).css("borderLeftWidth"),10)||0)+(parseInt(a(c).css("paddingLeft"),10)||0)-this.margins.left,d.top+(parseInt(a(c).css("borderTopWidth"),10)||0)+(parseInt(a(c).css("paddingTop"),10)||0)-this.margins.top,d.left+(b?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css("borderLeftWidth"),10)||0)-(parseInt(a(c).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,d.top+(b?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css("borderTopWidth"),10)||0)-(parseInt(a(c).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}else{if(e.containment.constructor==Array){this.containment=e.containment}}},_convertPositionTo:function(f,h){if(!h){h=this.position}var c=f=="absolute"?1:-1;var e=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=(/(html|body)/i).test(b[0].tagName);return{top:(h.top+this.offset.relative.top*c+this.offset.parent.top*c-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(g?0:b.scrollTop()))*c)),left:(h.left+this.offset.relative.left*c+this.offset.parent.left*c-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:b.scrollLeft())*c))}},_generatePosition:function(e){var h=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,i=(/(html|body)/i).test(b[0].tagName);var d=e.pageX;var c=e.pageY;if(this.originalPosition){if(this.containment){if(e.pageX-this.offset.click.left<this.containment[0]){d=this.containment[0]+this.offset.click.left}if(e.pageY-this.offset.click.top<this.containment[1]){c=this.containment[1]+this.offset.click.top}if(e.pageX-this.offset.click.left>this.containment[2]){d=this.containment[2]+this.offset.click.left}if(e.pageY-this.offset.click.top>this.containment[3]){c=this.containment[3]+this.offset.click.top}}if(h.grid){var g=this.originalPageY+Math.round((c-this.originalPageY)/h.grid[1])*h.grid[1];c=this.containment?(!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:(!(g-this.offset.click.top<this.containment[1])?g-h.grid[1]:g+h.grid[1])):g;var f=this.originalPageX+Math.round((d-this.originalPageX)/h.grid[0])*h.grid[0];d=this.containment?(!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:(!(f-this.offset.click.left<this.containment[0])?f-h.grid[0]:f+h.grid[0])):f}}return{top:(c-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(i?0:b.scrollTop())))),left:(d-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():i?0:b.scrollLeft())))}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");if(this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval){this.helper.remove()}this.helper=null;this.cancelHelperRemoval=false},_trigger:function(b,c,d){d=d||this._uiHash();a.ui.plugin.call(this,b,[c,d]);if(b=="drag"){this.positionAbs=this._convertPositionTo("absolute")}return a.Widget.prototype._trigger.call(this,b,c,d)},plugins:{},_uiHash:function(b){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});a.extend(a.ui.draggable,{version:"1.8"});a.ui.plugin.add("draggable","connectToSortable",{start:function(c,e){var d=a(this).data("draggable"),f=d.options,b=a.extend({},e,{item:d.element});d.sortables=[];a(f.connectToSortable).each(function(){var g=a.data(this,"sortable");if(g&&!g.options.disabled){d.sortables.push({instance:g,shouldRevert:g.options.revert});g._refreshItems();g._trigger("activate",c,b)}})},stop:function(c,e){var d=a(this).data("draggable"),b=a.extend({},e,{item:d.element});a.each(d.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;d.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert){this.instance.options.revert=true}this.instance._mouseStop(c);this.instance.options.helper=this.instance.options._helper;if(d.options.helper=="original"){this.instance.currentItem.css({top:"auto",left:"auto"})}}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",c,b)}})},drag:function(c,f){var e=a(this).data("draggable"),b=this;var d=function(i){var n=this.offset.click.top,m=this.offset.click.left;var g=this.positionAbs.top,k=this.positionAbs.left;var j=i.height,l=i.width;var p=i.top,h=i.left;return a.ui.isOver(g+n,k+m,p,h,j,l)};a.each(e.sortables,function(g){this.instance.positionAbs=e.positionAbs;this.instance.helperProportions=e.helperProportions;this.instance.offset.click=e.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=a(b).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return f.helper[0]};c.target=this.instance.currentItem[0];this.instance._mouseCapture(c,true);this.instance._mouseStart(c,true,true);this.instance.offset.click.top=e.offset.click.top;this.instance.offset.click.left=e.offset.click.left;this.instance.offset.parent.left-=e.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=e.offset.parent.top-this.instance.offset.parent.top;e._trigger("toSortable",c);e.dropped=this.instance.element;e.currentItem=e.element;this.instance.fromOutside=e}if(this.instance.currentItem){this.instance._mouseDrag(c)}}else{if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",c,this.instance._uiHash(this.instance));this.instance._mouseStop(c,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();if(this.instance.placeholder){this.instance.placeholder.remove()}e._trigger("fromSortable",c);e.dropped=false}}})}});a.ui.plugin.add("draggable","cursor",{start:function(c,d){var b=a("body"),e=a(this).data("draggable").options;if(b.css("cursor")){e._cursor=b.css("cursor")}b.css("cursor",e.cursor)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._cursor){a("body").css("cursor",d._cursor)}}});a.ui.plugin.add("draggable","iframeFix",{start:function(b,c){var d=a(this).data("draggable").options;a(d.iframeFix===true?"iframe":d.iframeFix).each(function(){a('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1000}).css(a(this).offset()).appendTo("body")})},stop:function(b,c){a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});a.ui.plugin.add("draggable","opacity",{start:function(c,d){var b=a(d.helper),e=a(this).data("draggable").options;if(b.css("opacity")){e._opacity=b.css("opacity")}b.css("opacity",e.opacity)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._opacity){a(c.helper).css("opacity",d._opacity)}}});a.ui.plugin.add("draggable","scroll",{start:function(c,d){var b=a(this).data("draggable");if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){b.overflowOffset=b.scrollParent.offset()}},drag:function(d,e){var c=a(this).data("draggable"),f=c.options,b=false;if(c.scrollParent[0]!=document&&c.scrollParent[0].tagName!="HTML"){if(!f.axis||f.axis!="x"){if((c.overflowOffset.top+c.scrollParent[0].offsetHeight)-d.pageY<f.scrollSensitivity){c.scrollParent[0].scrollTop=b=c.scrollParent[0].scrollTop+f.scrollSpeed}else{if(d.pageY-c.overflowOffset.top<f.scrollSensitivity){c.scrollParent[0].scrollTop=b=c.scrollParent[0].scrollTop-f.scrollSpeed}}}if(!f.axis||f.axis!="y"){if((c.overflowOffset.left+c.scrollParent[0].offsetWidth)-d.pageX<f.scrollSensitivity){c.scrollParent[0].scrollLeft=b=c.scrollParent[0].scrollLeft+f.scrollSpeed}else{if(d.pageX-c.overflowOffset.left<f.scrollSensitivity){c.scrollParent[0].scrollLeft=b=c.scrollParent[0].scrollLeft-f.scrollSpeed}}}}else{if(!f.axis||f.axis!="x"){if(d.pageY-a(document).scrollTop()<f.scrollSensitivity){b=a(document).scrollTop(a(document).scrollTop()-f.scrollSpeed)}else{if(a(window).height()-(d.pageY-a(document).scrollTop())<f.scrollSensitivity){b=a(document).scrollTop(a(document).scrollTop()+f.scrollSpeed)}}}if(!f.axis||f.axis!="y"){if(d.pageX-a(document).scrollLeft()<f.scrollSensitivity){b=a(document).scrollLeft(a(document).scrollLeft()-f.scrollSpeed)}else{if(a(window).width()-(d.pageX-a(document).scrollLeft())<f.scrollSensitivity){b=a(document).scrollLeft(a(document).scrollLeft()+f.scrollSpeed)}}}}if(b!==false&&a.ui.ddmanager&&!f.dropBehaviour){a.ui.ddmanager.prepareOffsets(c,d)}}});a.ui.plugin.add("draggable","snap",{start:function(c,d){var b=a(this).data("draggable"),e=b.options;b.snapElements=[];a(e.snap.constructor!=String?(e.snap.items||":data(draggable)"):e.snap).each(function(){var g=a(this);var f=g.offset();if(this!=b.element[0]){b.snapElements.push({item:this,width:g.outerWidth(),height:g.outerHeight(),top:f.top,left:f.left})}})},drag:function(u,p){var g=a(this).data("draggable"),q=g.options;var y=q.snapTolerance;var x=p.offset.left,w=x+g.helperProportions.width,f=p.offset.top,e=f+g.helperProportions.height;for(var v=g.snapElements.length-1;v>=0;v--){var s=g.snapElements[v].left,n=s+g.snapElements[v].width,m=g.snapElements[v].top,A=m+g.snapElements[v].height;if(!((s-y<x&&x<n+y&&m-y<f&&f<A+y)||(s-y<x&&x<n+y&&m-y<e&&e<A+y)||(s-y<w&&w<n+y&&m-y<f&&f<A+y)||(s-y<w&&w<n+y&&m-y<e&&e<A+y))){if(g.snapElements[v].snapping){(g.options.snap.release&&g.options.snap.release.call(g.element,u,a.extend(g._uiHash(),{snapItem:g.snapElements[v].item})))}g.snapElements[v].snapping=false;continue}if(q.snapMode!="inner"){var c=Math.abs(m-e)<=y;var z=Math.abs(A-f)<=y;var j=Math.abs(s-w)<=y;var k=Math.abs(n-x)<=y;if(c){p.position.top=g._convertPositionTo("relative",{top:m-g.helperProportions.height,left:0}).top-g.margins.top}if(z){p.position.top=g._convertPositionTo("relative",{top:A,left:0}).top-g.margins.top}if(j){p.position.left=g._convertPositionTo("relative",{top:0,left:s-g.helperProportions.width}).left-g.margins.left}if(k){p.position.left=g._convertPositionTo("relative",{top:0,left:n}).left-g.margins.left}}var h=(c||z||j||k);if(q.snapMode!="outer"){var c=Math.abs(m-f)<=y;var z=Math.abs(A-e)<=y;var j=Math.abs(s-x)<=y;var k=Math.abs(n-w)<=y;if(c){p.position.top=g._convertPositionTo("relative",{top:m,left:0}).top-g.margins.top}if(z){p.position.top=g._convertPositionTo("relative",{top:A-g.helperProportions.height,left:0}).top-g.margins.top}if(j){p.position.left=g._convertPositionTo("relative",{top:0,left:s}).left-g.margins.left}if(k){p.position.left=g._convertPositionTo("relative",{top:0,left:n-g.helperProportions.width}).left-g.margins.left}}if(!g.snapElements[v].snapping&&(c||z||j||k||h)){(g.options.snap.snap&&g.options.snap.snap.call(g.element,u,a.extend(g._uiHash(),{snapItem:g.snapElements[v].item})))}g.snapElements[v].snapping=(c||z||j||k||h)}}});a.ui.plugin.add("draggable","stack",{start:function(c,d){var f=a(this).data("draggable").options;var e=a.makeArray(a(f.stack)).sort(function(h,g){return(parseInt(a(h).css("zIndex"),10)||0)-(parseInt(a(g).css("zIndex"),10)||0)});if(!e.length){return}var b=parseInt(e[0].style.zIndex)||0;a(e).each(function(g){this.style.zIndex=b+g});this[0].style.zIndex=b+e.length}});a.ui.plugin.add("draggable","zIndex",{start:function(c,d){var b=a(d.helper),e=a(this).data("draggable").options;if(b.css("zIndex")){e._zIndex=b.css("zIndex")}b.css("zIndex",e.zIndex)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._zIndex){a(c.helper).css("zIndex",d._zIndex)}}})})(jQuery);;/*
           * jQuery UI Slider 1.8
           *
           * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
           * Dual licensed under the MIT (MIT-LICENSE.txt)
           * and GPL (GPL-LICENSE.txt) licenses.
           *
           * http://docs.jquery.com/UI/Slider
           *
           * Depends:
           *	jquery.ui.core.js
           *	jquery.ui.mouse.js
           *	jquery.ui.widget.js
           */(function(b){var a=5;b.widget("ui.slider",b.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var c=this,d=this.options;this._keySliding=false;this._mouseSliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");if(d.disabled){this.element.addClass("ui-slider-disabled ui-disabled")}this.range=b([]);if(d.range){if(d.range===true){this.range=b("<div></div>");if(!d.values){d.values=[this._valueMin(),this._valueMin()]}if(d.values.length&&d.values.length!=2){d.values=[d.values[0],d.values[0]]}}else{this.range=b("<div></div>")}this.range.appendTo(this.element).addClass("ui-slider-range");if(d.range=="min"||d.range=="max"){this.range.addClass("ui-slider-range-"+d.range)}this.range.addClass("ui-widget-header")}if(b(".ui-slider-handle",this.element).length==0){b('<a href="#"></a>').appendTo(this.element).addClass("ui-slider-handle")}if(d.values&&d.values.length){while(b(".ui-slider-handle",this.element).length<d.values.length){b('<a href="#"></a>').appendTo(this.element).addClass("ui-slider-handle")}}this.handles=b(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(e){e.preventDefault()}).hover(function(){if(!d.disabled){b(this).addClass("ui-state-hover")}},function(){b(this).removeClass("ui-state-hover")}).focus(function(){if(!d.disabled){b(".ui-slider .ui-state-focus").removeClass("ui-state-focus");b(this).addClass("ui-state-focus")}else{b(this).blur()}}).blur(function(){b(this).removeClass("ui-state-focus")});this.handles.each(function(e){b(this).data("index.ui-slider-handle",e)});this.handles.keydown(function(j){var g=true;var f=b(this).data("index.ui-slider-handle");if(c.options.disabled){return}switch(j.keyCode){case b.ui.keyCode.HOME:case b.ui.keyCode.END:case b.ui.keyCode.PAGE_UP:case b.ui.keyCode.PAGE_DOWN:case b.ui.keyCode.UP:case b.ui.keyCode.RIGHT:case b.ui.keyCode.DOWN:case b.ui.keyCode.LEFT:g=false;if(!c._keySliding){c._keySliding=true;b(this).addClass("ui-state-active");c._start(j,f)}break}var h,e,i=c._step();if(c.options.values&&c.options.values.length){h=e=c.values(f)}else{h=e=c.value()}switch(j.keyCode){case b.ui.keyCode.HOME:e=c._valueMin();break;case b.ui.keyCode.END:e=c._valueMax();break;case b.ui.keyCode.PAGE_UP:e=h+((c._valueMax()-c._valueMin())/a);break;case b.ui.keyCode.PAGE_DOWN:e=h-((c._valueMax()-c._valueMin())/a);break;case b.ui.keyCode.UP:case b.ui.keyCode.RIGHT:if(h==c._valueMax()){return}e=h+i;break;case b.ui.keyCode.DOWN:case b.ui.keyCode.LEFT:if(h==c._valueMin()){return}e=h-i;break}c._slide(j,f,e);return g}).keyup(function(f){var e=b(this).data("index.ui-slider-handle");if(c._keySliding){c._keySliding=false;c._stop(f,e);c._change(f,e);b(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy();return this},_mouseCapture:function(e){var f=this.options;if(f.disabled){return false}this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();var i={x:e.pageX,y:e.pageY};var k=this._normValueFromMouse(i);var d=this._valueMax()-this._valueMin()+1,g;var l=this,j;this.handles.each(function(m){var n=Math.abs(k-l.values(m));if(d>n){d=n;g=b(this);j=m}});if(f.range==true&&this.values(1)==f.min){g=b(this.handles[++j])}this._start(e,j);this._mouseSliding=true;l._handleIndex=j;g.addClass("ui-state-active").focus();var h=g.offset();var c=!b(e.target).parents().andSelf().is(".ui-slider-handle");this._clickOffset=c?{left:0,top:0}:{left:e.pageX-h.left-(g.width()/2),top:e.pageY-h.top-(g.height()/2)-(parseInt(g.css("borderTopWidth"),10)||0)-(parseInt(g.css("borderBottomWidth"),10)||0)+(parseInt(g.css("marginTop"),10)||0)};k=this._normValueFromMouse(i);this._slide(e,j,k);this._animateOff=true;return true},_mouseStart:function(c){return true},_mouseDrag:function(e){var c={x:e.pageX,y:e.pageY};var d=this._normValueFromMouse(c);this._slide(e,this._handleIndex,d);return false},_mouseStop:function(c){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(c,this._handleIndex);this._change(c,this._handleIndex);this._handleIndex=null;this._clickOffset=null;this._animateOff=false;return false},_detectOrientation:function(){this.orientation=this.options.orientation=="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(e){var d,i;if("horizontal"==this.orientation){d=this.elementSize.width;i=e.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{d=this.elementSize.height;i=e.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}var g=(i/d);if(g>1){g=1}if(g<0){g=0}if("vertical"==this.orientation){g=1-g}var f=this._valueMax()-this._valueMin(),j=g*f,c=j%this.options.step,h=this._valueMin()+j-c;if(c>(this.options.step/2)){h+=this.options.step}return parseFloat(h.toFixed(5))},_start:function(e,d){var c={handle:this.handles[d],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(d);c.values=this.values()}this._trigger("start",e,c)},_slide:function(g,f,e){var h=this.handles[f];if(this.options.values&&this.options.values.length){var c=this.values(f?0:1);if((this.options.values.length==2&&this.options.range===true)&&((f==0&&e>c)||(f==1&&e<c))){e=c}if(e!=this.values(f)){var d=this.values();d[f]=e;var i=this._trigger("slide",g,{handle:this.handles[f],value:e,values:d});var c=this.values(f?0:1);if(i!==false){this.values(f,e,true)}}}else{if(e!=this.value()){var i=this._trigger("slide",g,{handle:this.handles[f],value:e});if(i!==false){this.value(e)}}}},_stop:function(e,d){var c={handle:this.handles[d],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(d);c.values=this.values()}this._trigger("stop",e,c)},_change:function(e,d){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[d],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(d);c.values=this.values()}this._trigger("change",e,c)}},value:function(c){if(arguments.length){this.options.value=this._trimValue(c);this._refreshValue();this._change(null,0)}return this._value()},values:function(e,h){if(arguments.length>1){this.options.values[e]=this._trimValue(h);this._refreshValue();this._change(null,e)}if(arguments.length){if(b.isArray(arguments[0])){var g=this.options.values,d=arguments[0];for(var f=0,c=g.length;f<c;f++){g[f]=this._trimValue(d[f]);this._change(null,f)}this._refreshValue()}else{if(this.options.values&&this.options.values.length){return this._values(e)}else{return this.value()}}}else{return this._values()}},_setOption:function(d,e){var c,f=0;if(jQuery.isArray(this.options.values)){f=this.options.values.length}b.Widget.prototype._setOption.apply(this,arguments);switch(d){case"disabled":if(e){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.attr("disabled","disabled");this.element.addClass("ui-disabled")}else{this.handles.removeAttr("disabled");this.element.removeClass("ui-disabled")}case"orientation":this._detectOrientation();this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case"value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case"values":this._animateOff=true;this._refreshValue();for(c=0;c<f;c++){this._change(null,c)}this._animateOff=false;break}},_step:function(){var c=this.options.step;return c},_value:function(){var c=this.options.value;c=this._trimValue(c);return c},_values:function(d){if(arguments.length){var g=this.options.values[d];g=this._trimValue(g);return g}else{var f=this.options.values.slice();for(var e=0,c=f.length;e<c;e++){f[e]=this._trimValue(f[e])}return f}},_trimValue:function(c){if(c<this._valueMin()){c=this._valueMin()}if(c>this._valueMax()){c=this._valueMax()}return c},_valueMin:function(){var c=this.options.min;return c},_valueMax:function(){var c=this.options.max;return c},_refreshValue:function(){var g=this.options.range,e=this.options,m=this;var d=(!this._animateOff)?e.animate:false;if(this.options.values&&this.options.values.length){var j,i;this.handles.each(function(q,o){var p=(m.values(q)-m._valueMin())/(m._valueMax()-m._valueMin())*100;var n={};n[m.orientation=="horizontal"?"left":"bottom"]=p+"%";b(this).stop(1,1)[d?"animate":"css"](n,e.animate);if(m.options.range===true){if(m.orientation=="horizontal"){(q==0)&&m.range.stop(1,1)[d?"animate":"css"]({left:p+"%"},e.animate);(q==1)&&m.range[d?"animate":"css"]({width:(p-lastValPercent)+"%"},{queue:false,duration:e.animate})}else{(q==0)&&m.range.stop(1,1)[d?"animate":"css"]({bottom:(p)+"%"},e.animate);(q==1)&&m.range[d?"animate":"css"]({height:(p-lastValPercent)+"%"},{queue:false,duration:e.animate})}}lastValPercent=p})}else{var k=this.value(),h=this._valueMin(),l=this._valueMax(),f=l!=h?(k-h)/(l-h)*100:0;var c={};c[m.orientation=="horizontal"?"left":"bottom"]=f+"%";this.handle.stop(1,1)[d?"animate":"css"](c,e.animate);(g=="min")&&(this.orientation=="horizontal")&&this.range.stop(1,1)[d?"animate":"css"]({width:f+"%"},e.animate);(g=="max")&&(this.orientation=="horizontal")&&this.range[d?"animate":"css"]({width:(100-f)+"%"},{queue:false,duration:e.animate});(g=="min")&&(this.orientation=="vertical")&&this.range.stop(1,1)[d?"animate":"css"]({height:f+"%"},e.animate);(g=="max")&&(this.orientation=="vertical")&&this.range[d?"animate":"css"]({height:(100-f)+"%"},{queue:false,duration:e.animate})}}});b.extend(b.ui.slider,{version:"1.8"})})(jQuery);;
      • jquerybbq
        • jquery.bbq.min.js
          /*
           * jQuery BBQ: Back Button & Query Library - v1.2.1 - 2/17/2010
           * http://benalman.com/projects/jquery-bbq-plugin/
           * 
           * Copyright (c) 2010 "Cowboy" Ben Alman
           * Dual licensed under the MIT and GPL licenses.
           * http://benalman.com/about/license/
           */
          (function($,p){var i,m=Array.prototype.slice,r=decodeURIComponent,a=$.param,c,l,v,b=$.bbq=$.bbq||{},q,u,j,e=$.event.special,d="hashchange",A="querystring",D="fragment",y="elemUrlAttr",g="location",k="href",t="src",x=/^.*\?|#.*$/g,w=/^.*\#/,h,C={};function E(F){return typeof F==="string"}function B(G){var F=m.call(arguments,1);return function(){return G.apply(this,F.concat(m.call(arguments)))}}function n(F){return F.replace(/^[^#]*#?(.*)$/,"$1")}function o(F){return F.replace(/(?:^[^?#]*\?([^#]*).*$)?.*/,"$1")}function f(H,M,F,I,G){var O,L,K,N,J;if(I!==i){K=F.match(H?/^([^#]*)\#?(.*)$/:/^([^#?]*)\??([^#]*)(#?.*)/);J=K[3]||"";if(G===2&&E(I)){L=I.replace(H?w:x,"")}else{N=l(K[2]);I=E(I)?l[H?D:A](I):I;L=G===2?I:G===1?$.extend({},I,N):$.extend({},N,I);L=a(L);if(H){L=L.replace(h,r)}}O=K[1]+(H?"#":L||!K[1]?"?":"")+L+J}else{O=M(F!==i?F:p[g][k])}return O}a[A]=B(f,0,o);a[D]=c=B(f,1,n);c.noEscape=function(G){G=G||"";var F=$.map(G.split(""),encodeURIComponent);h=new RegExp(F.join("|"),"g")};c.noEscape(",/");$.deparam=l=function(I,F){var H={},G={"true":!0,"false":!1,"null":null};$.each(I.replace(/\+/g," ").split("&"),function(L,Q){var K=Q.split("="),P=r(K[0]),J,O=H,M=0,R=P.split("]["),N=R.length-1;if(/\[/.test(R[0])&&/\]$/.test(R[N])){R[N]=R[N].replace(/\]$/,"");R=R.shift().split("[").concat(R);N=R.length-1}else{N=0}if(K.length===2){J=r(K[1]);if(F){J=J&&!isNaN(J)?+J:J==="undefined"?i:G[J]!==i?G[J]:J}if(N){for(;M<=N;M++){P=R[M]===""?O.length:R[M];O=O[P]=M<N?O[P]||(R[M+1]&&isNaN(R[M+1])?{}:[]):J}}else{if($.isArray(H[P])){H[P].push(J)}else{if(H[P]!==i){H[P]=[H[P],J]}else{H[P]=J}}}}else{if(P){H[P]=F?i:""}}});return H};function z(H,F,G){if(F===i||typeof F==="boolean"){G=F;F=a[H?D:A]()}else{F=E(F)?F.replace(H?w:x,""):F}return l(F,G)}l[A]=B(z,0);l[D]=v=B(z,1);$[y]||($[y]=function(F){return $.extend(C,F)})({a:k,base:k,iframe:t,img:t,input:t,form:"action",link:k,script:t});j=$[y];function s(I,G,H,F){if(!E(H)&&typeof H!=="object"){F=H;H=G;G=i}return this.each(function(){var L=$(this),J=G||j()[(this.nodeName||"").toLowerCase()]||"",K=J&&L.attr(J)||"";L.attr(J,a[I](K,H,F))})}$.fn[A]=B(s,A);$.fn[D]=B(s,D);b.pushState=q=function(I,F){if(E(I)&&/^#/.test(I)&&F===i){F=2}var H=I!==i,G=c(p[g][k],H?I:{},H?F:2);p[g][k]=G+(/#/.test(G)?"":"#")};b.getState=u=function(F,G){return F===i||typeof F==="boolean"?v(F):v(G)[F]};b.removeState=function(F){var G={};if(F!==i){G=u();$.each($.isArray(F)?F:arguments,function(I,H){delete G[H]})}q(G,2)};e[d]=$.extend(e[d],{add:function(F){var H;function G(J){var I=J[D]=c();J.getState=function(K,L){return K===i||typeof K==="boolean"?l(I,K):l(I,L)[K]};H.apply(this,arguments)}if($.isFunction(F)){H=F;return G}else{H=F.handler;F.handler=G}}})})(jQuery,this);
          /*
           * jQuery hashchange event - v1.2 - 2/11/2010
           * http://benalman.com/projects/jquery-hashchange-plugin/
           * 
           * Copyright (c) 2010 "Cowboy" Ben Alman
           * Dual licensed under the MIT and GPL licenses.
           * http://benalman.com/about/license/
           */
          (function($,i,b){var j,k=$.event.special,c="location",d="hashchange",l="href",f=$.browser,g=document.documentMode,h=f.msie&&(g===b||g<8),e="on"+d in i&&!h;function a(m){m=m||i[c][l];return m.replace(/^[^#]*#?(.*)$/,"$1")}$[d+"Delay"]=100;k[d]=$.extend(k[d],{setup:function(){if(e){return false}$(j.start)},teardown:function(){if(e){return false}$(j.stop)}});j=(function(){var m={},r,n,o,q;function p(){o=q=function(s){return s};if(h){n=$('<iframe src="javascript:0"/>').hide().insertAfter("body")[0].contentWindow;q=function(){return a(n.document[c][l])};o=function(u,s){if(u!==s){var t=n.document;t.open().close();t[c].hash="#"+u}};o(a())}}m.start=function(){if(r){return}var t=a();o||p();(function s(){var v=a(),u=q(t);if(v!==t){o(t=v,u);$(i).trigger(d)}else{if(u!==t){i[c][l]=i[c][l].replace(/#.*/,"")+"#"+u}}r=setTimeout(s,$[d+"Delay"])})()};m.stop=function(){if(!n){r&&clearTimeout(r);r=0}};return m})()})(jQuery,this);
      • js-hotkeys
        • jquery.hotkeys.min.js
          /*
           * jQuery Hotkeys Plugin
           * Copyright 2010, John Resig
           * Dual licensed under the MIT or GPL Version 2 licenses.
           *
           * http://github.com/jeresig/jquery.hotkeys
           *
           * Based upon the plugin by Tzury Bar Yochay:
           * http://github.com/tzuryby/hotkeys
           *
           * Original idea by:
           * Binny V A, http://www.openjs.com/scripts/events/keyboard_shortcuts/
          */
          
          (function(b){b.hotkeys={version:"0.8",specialKeys:{8:"backspace",9:"tab",13:"return",16:"shift",17:"ctrl",18:"alt",19:"pause",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"del",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",109:"-",110:".",111:"/",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12",144:"numlock",145:"scroll",191:"/",224:"meta",219:"[",221:"]"},shiftNums:{"`":"~","1":"!","2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")","-":"_","=":"+",";":": ","'":'"',",":"<",".":">","/":"?","\\":"|"}};function a(d){if(typeof d.data!=="string"){return}var c=d.handler,e=d.data.toLowerCase().split(" ");d.handler=function(n){if(this!==n.target&&(/textarea|select/i.test(n.target.nodeName)||n.target.type==="text")){return}var h=n.type!=="keypress"&&b.hotkeys.specialKeys[n.which],o=String.fromCharCode(n.which).toLowerCase(),k,m="",g={};if(n.altKey&&h!=="alt"){m+="alt+"}if(n.ctrlKey&&h!=="ctrl"){m+="ctrl+"}if(n.metaKey&&!n.ctrlKey&&h!=="meta"){m+="meta+"}if(n.shiftKey&&h!=="shift"){m+="shift+"}if(h){g[m+h]=true}else{g[m+o]=true;g[m+b.hotkeys.shiftNums[o]]=true;if(m==="shift+"){g[b.hotkeys.shiftNums[o]]=true}}for(var j=0,f=e.length;j<f;j++){if(g[e[j]]){return c.apply(this,arguments)}}}}b.each(["keydown","keyup","keypress"],function(){b.event.special[this]={add:a}})})(jQuery);
      • jspdf
        • jspdf.min.js
          /** 
           * jsPDF - PDF Document creation from JavaScript
           * Version 1.0.150-git Built on 2014-05-30T00:40
           *                           CommitID dcbc9fcb9b
           *
           * Copyright (c) 2010-2014 James Hall, https://github.com/MrRio/jsPDF
           *               2010 Aaron Spike, https://github.com/acspike
           *               2012 Willow Systems Corporation, willow-systems.com
           *               2012 Pablo Hess, https://github.com/pablohess
           *               2012 Florian Jenett, https://github.com/fjenett
           *               2013 Warren Weckesser, https://github.com/warrenweckesser
           *               2013 Youssef Beddad, https://github.com/lifof
           *               2013 Lee Driscoll, https://github.com/lsdriscoll
           *               2013 Stefan Slonevskiy, https://github.com/stefslon
           *               2013 Jeremy Morel, https://github.com/jmorel
           *               2013 Christoph Hartmann, https://github.com/chris-rock
           *               2014 Juan Pablo Gaviria, https://github.com/juanpgaviria
           *               2014 James Makes, https://github.com/dollaruw
           *               2014 Diego Casorran, https://github.com/diegocr
           *
           * Permission is hereby granted, free of charge, to any person obtaining
           * a copy of this software and associated documentation files (the
           * "Software"), to deal in the Software without restriction, including
           * without limitation the rights to use, copy, modify, merge, publish,
           * distribute, sublicense, and/or sell copies of the Software, and to
           * permit persons to whom the Software is furnished to do so, subject to
           * the following conditions:
           *
           * The above copyright notice and this permission notice shall be
           * included in all copies or substantial portions of the Software.
           *
           * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
           * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
           * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
           * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
           * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
           * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
           * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
           *
           * Contributor(s):
           *    siefkenj, ahwolf, rickygu, Midnith, saintclair, eaparango,
           *    kim3er, mfo, alnorth,
           */
          /**
           * jsPDF addHTML PlugIn
           * Copyright (c) 2014 Diego Casorran
           * Licensed under the MIT License.
           * http://opensource.org/licenses/mit-license
           */
          /** 
           * jsPDF addImage plugin
           * Copyright (c) 2012 Jason Siefken, https://github.com/siefkenj/
           *               2013 Chris Dowling, https://github.com/gingerchris
           *               2013 Trinh Ho, https://github.com/ineedfat
           *               2013 Edwin Alejandro Perez, https://github.com/eaparango
           *               2013 Norah Smith, https://github.com/burnburnrocket
           *               2014 Diego Casorran, https://github.com/diegocr
           *               2014 James Robb, https://github.com/jamesbrobb
           */
          /**
           * jsPDF Cell plugin
           * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com
           *               2013 Eduardo Menezes de Morais, eduardo.morais@usp.br
           *               2013 Lee Driscoll, https://github.com/lsdriscoll
           *               2014 Juan Pablo Gaviria, https://github.com/juanpgaviria
           *               2014 James Hall, james@parall.ax
           *               2014 Diego Casorran, https://github.com/diegocr
           */
          /** 
           * jsPDF fromHTML plugin. BETA stage. API subject to change. Needs browser
           * Copyright (c) 2012 Willow Systems Corporation, willow-systems.com
           *               2014 Juan Pablo Gaviria, https://github.com/juanpgaviria
           *               2014 Diego Casorran, https://github.com/diegocr
           *               2014 Daniel Husar, https://github.com/danielhusar
           *               2014 Wolfgang Gassler, https://github.com/woolfg
           */
          /** 
           * jsPDF JavaScript plugin
           * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com
           */
          /** 
           * jsPDF PNG PlugIn
           * Copyright (c) 2014 James Robb, https://github.com/jamesbrobb
           */
          /** 
          jsPDF Silly SVG plugin
          Copyright (c) 2012 Willow Systems Corporation, willow-systems.com
          */
          /** 
           * jsPDF split_text_to_size plugin - MIT license.
           * Copyright (c) 2012 Willow Systems Corporation, willow-systems.com
           *               2014 Diego Casorran, https://github.com/diegocr
           */
          /**  
          jsPDF standard_fonts_metrics plugin
          Copyright (c) 2012 Willow Systems Corporation, willow-systems.com
          MIT license.
          */
          /** 
           * jsPDF total_pages plugin
           * Copyright (c) 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br
           */
          /* Blob.js
           * A Blob implementation.
           * 2014-05-27
           * By Eli Grey, http://eligrey.com
           * By Devin Samarin, https://github.com/eboyjr
           * License: X11/MIT
           *   See https://github.com/eligrey/Blob.js/blob/master/LICENSE.md
           */
          /* FileSaver.js
           *  A saveAs() FileSaver implementation.
           *  2014-05-27
           *  By Eli Grey, http://eligrey.com
           *  License: X11/MIT
           *    See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md
           */
          /*
           * Copyright (c) 2012 chick307 <chick307@gmail.com>
           * Licensed under the MIT License.
           * http://opensource.org/licenses/mit-license
           */
          /*
           Deflate.js - https://github.com/gildas-lormeau/zip.js
           Copyright (c) 2013 Gildas Lormeau. All rights reserved.
           Redistribution and use in source and binary forms, with or without
           modification, are permitted provided that the following conditions are met:
           1. Redistributions of source code must retain the above copyright notice,
           this list of conditions and the following disclaimer.
           2. Redistributions in binary form must reproduce the above copyright 
           notice, this list of conditions and the following disclaimer in 
           the documentation and/or other materials provided with the distribution.
           3. The names of the authors may not be used to endorse or promote products
           derived from this software without specific prior written permission.
           THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
           INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
           FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
           INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
           INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
           LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
           OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
           LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
           NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
           EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
           */
          /*
          # PNG.js
          # Copyright (c) 2011 Devon Govett
          # MIT LICENSE
          # 
          */
          /*
           * Extracted from pdf.js
           * https://github.com/andreasgal/pdf.js
           * Copyright (c) 2011 Mozilla Foundation
           * Contributors: Andreas Gal <gal@mozilla.com>
           *               Chris G Jones <cjones@mozilla.com>
           *               Shaon Barman <shaon.barman@gmail.com>
           *               Vivien Nicolas <21@vingtetun.org>
           *               Justin D'Arcangelo <justindarc@gmail.com>
           *               Yury Delendik
           */
          /**
           * JavaScript Polyfill functions for jsPDF
           * Collected from public resources by
           * https://github.com/diegocr
           */
          !function(t,e){e["true"]=t;var r=function(t){"use strict";function e(e){var r={};this.subscribe=function(t,e,n){if("function"!=typeof e)return!1;r.hasOwnProperty(t)||(r[t]={});var s=Math.random().toString(35);return r[t][s]=[e,!!n],s},this.unsubscribe=function(t){for(var e in r)if(r[e][t])return delete r[e][t],!0;return!1},this.publish=function(n){if(r.hasOwnProperty(n)){var s=Array.prototype.slice.call(arguments,1),o=[];for(var i in r[n]){var a=r[n][i];try{a[0].apply(e,s)}catch(u){t.console&&console.error("jsPDF PubSub Error",u.message,u)}a[1]&&o.push(i)}o.length&&o.forEach(this.unsubscribe)}}}function r(a,u,c,l){var f={};"object"==typeof a&&(f=a,a=f.orientation,u=f.unit||u,c=f.format||c,l=f.compress||f.compressPdf||l),u=u||"mm",c=c||"a4",a=(""+(a||"P")).toLowerCase();var d,h,p,m,w,y=(""+c).toLowerCase(),g=!!l&&"function"==typeof Uint8Array,v=f.textColor||"0 g",b=f.drawColor||"0 G",q=f.fontSize||16,x=f.lineHeight||1.15,k=f.lineWidth||.200025,_=2,A=!1,C=[],S={},E={},z=0,I=[],T=[],B=0,O=0,P=0,R={title:"",subject:"",author:"",keywords:"",creator:""},D={},U=new e(D),F=function(t){return t.toFixed(2)},L=function(t){return t.toFixed(3)},j=function(t){return("0"+parseInt(t)).slice(-2)},N=function(t){A?I[z].push(t):(P+=t.length+1,T.push(t))},M=function(){return _++,C[_]=P,N(_+" 0 obj"),_},H=function(t){N("stream"),N(t),N("endstream")},G=function(){var e,n,o,i,a,u,c,l=m*h,f=w*h;for(c=t.adler32cs||r.adler32cs,g&&"undefined"==typeof c&&(g=!1),e=1;z>=e;e++){if(M(),N("<</Type /Page"),N("/Parent 1 0 R"),N("/Resources 2 0 R"),N("/Contents "+(_+1)+" 0 R>>"),N("endobj"),n=I[e].join("\n"),M(),g){for(o=[],i=n.length;i--;)o[i]=n.charCodeAt(i);u=c.from(n),a=new s(6),a.append(new Uint8Array(o)),n=a.flush(),o=new Uint8Array(n.length+6),o.set(new Uint8Array([120,156])),o.set(n,2),o.set(new Uint8Array([255&u,u>>8&255,u>>16&255,u>>24&255]),n.length+2),n=String.fromCharCode.apply(null,o),N("<</Length "+n.length+" /Filter [/FlateDecode]>>")}else N("<</Length "+n.length+">>");H(n),N("endobj")}C[1]=P,N("1 0 obj"),N("<</Type /Pages");var d="/Kids [";for(i=0;z>i;i++)d+=3+2*i+" 0 R ";N(d+"]"),N("/Count "+z),N("/MediaBox [0 0 "+F(l)+" "+F(f)+"]"),N(">>"),N("endobj")},J=function(t){t.objectNumber=M(),N("<</BaseFont/"+t.PostScriptName+"/Type/Font"),"string"==typeof t.encoding&&N("/Encoding/"+t.encoding),N("/Subtype/Type1>>"),N("endobj")},V=function(){for(var t in S)S.hasOwnProperty(t)&&J(S[t])},W=function(){U.publish("putXobjectDict")},X=function(){N("/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]"),N("/Font <<");for(var t in S)S.hasOwnProperty(t)&&N("/"+t+" "+S[t].objectNumber+" 0 R");N(">>"),N("/XObject <<"),W(),N(">>")},Y=function(){V(),U.publish("putResources"),C[2]=P,N("2 0 obj"),N("<<"),X(),N(">>"),N("endobj"),U.publish("postPutResources")},K=function(t,e,r){E.hasOwnProperty(e)||(E[e]={}),E[e][r]=t},Q=function(t,e,r,n){var s="F"+(Object.keys(S).length+1).toString(10),o=S[s]={id:s,PostScriptName:t,fontName:e,fontStyle:r,encoding:n,metadata:{}};return K(s,e,r),U.publish("addFont",o),s},$=function(){for(var t="helvetica",e="times",r="courier",n="normal",s="bold",o="italic",i="bolditalic",a="StandardEncoding",u=[["Helvetica",t,n],["Helvetica-Bold",t,s],["Helvetica-Oblique",t,o],["Helvetica-BoldOblique",t,i],["Courier",r,n],["Courier-Bold",r,s],["Courier-Oblique",r,o],["Courier-BoldOblique",r,i],["Times-Roman",e,n],["Times-Bold",e,s],["Times-Italic",e,o],["Times-BoldItalic",e,i]],c=0,l=u.length;l>c;c++){var f=Q(u[c][0],u[c][1],u[c][2],a),d=u[c][0].split("-");K(f,d[0],d[1]||"")}U.publish("addFonts",{fonts:S,dictionary:E})},Z=function(e){return e.foo=function(){try{return e.apply(this,arguments)}catch(r){var n=r.stack||"";~n.indexOf(" at ")&&(n=n.split(" at ")[1]);var s="Error in function "+n.split("\n")[0].split("<")[0]+": "+r.message;if(!t.console)throw new Error(s);console.log(s,r),t.alert&&alert(s),console.trace()}},e.foo.bar=e,e.foo},te=function(t,e){var r,n,s,o,i,a,u,c,l;if(e=e||{},s=e.sourceEncoding||"Unicode",i=e.outputEncoding,(e.autoencode||i)&&S[d].metadata&&S[d].metadata[s]&&S[d].metadata[s].encoding&&(o=S[d].metadata[s].encoding,!i&&S[d].encoding&&(i=S[d].encoding),!i&&o.codePages&&(i=o.codePages[0]),"string"==typeof i&&(i=o[i]),i)){for(u=!1,a=[],r=0,n=t.length;n>r;r++)c=i[t.charCodeAt(r)],c?a.push(String.fromCharCode(c)):a.push(t[r]),a[r].charCodeAt(0)>>8&&(u=!0);t=a.join("")}for(r=t.length;void 0===u&&0!==r;)t.charCodeAt(r-1)>>8&&(u=!0),r--;if(!u)return t;for(a=e.noBOM?[]:[254,255],r=0,n=t.length;n>r;r++){if(c=t.charCodeAt(r),l=c>>8,l>>8)throw new Error("Character at position "+r+" of string '"+t+"' exceeds 16bits. Cannot be encoded into UCS-2 BE");a.push(l),a.push(c-(l<<8))}return String.fromCharCode.apply(void 0,a)},ee=function(t,e){return te(t,e).replace(/\\/g,"\\\\").replace(/\(/g,"\\(").replace(/\)/g,"\\)")},re=function(){N("/Producer (jsPDF "+r.version+")");for(var t in R)R.hasOwnProperty(t)&&R[t]&&N("/"+t.substr(0,1).toUpperCase()+t.substr(1)+" ("+ee(R[t])+")");var e=new Date;N(["/CreationDate (D:",e.getFullYear(),j(e.getMonth()+1),j(e.getDate()),j(e.getHours()),j(e.getMinutes()),j(e.getSeconds()),")"].join(""))},ne=function(){N("/Type /Catalog"),N("/Pages 1 0 R"),N("/OpenAction [3 0 R /FitH null]"),N("/PageLayout /OneColumn"),U.publish("putCatalog")},se=function(){N("/Size "+(_+1)),N("/Root "+_+" 0 R"),N("/Info "+(_-1)+" 0 R")},oe=function(){z++,A=!0,I[z]=[]},ie=function(){oe(),N(F(k*h)+" w"),N(b),0!==B&&N(B+" J"),0!==O&&N(O+" j"),U.publish("addPage",{pageNumber:z})},ae=function(t,e){var r;t=void 0!==t?t:S[d].fontName,e=void 0!==e?e:S[d].fontStyle;try{r=E[t][e]}catch(n){}if(!r)throw new Error("Unable to look up font label for font '"+t+"', '"+e+"'. Refer to getFontList() for available fonts.");return r},ue=function(){A=!1,_=2,T=[],C=[],N("%PDF-"+o),G(),Y(),M(),N("<<"),re(),N(">>"),N("endobj"),M(),N("<<"),ne(),N(">>"),N("endobj");var t,e=P,r="0000000000";for(N("xref"),N("0 "+(_+1)),N(r+" 65535 f "),t=1;_>=t;t++)N((r+C[t]).slice(-10)+" 00000 n ");return N("trailer"),N("<<"),se(),N(">>"),N("startxref"),N(e),N("%%EOF"),A=!0,T.join("\n")},ce=function(t){var e="S";return"F"===t?e="f":"FD"===t||"DF"===t?e="B":("f"===t||"f*"===t||"B"===t||"B*"===t)&&(e=t),e},le=function(){for(var t=ue(),e=t.length,r=new ArrayBuffer(e),n=new Uint8Array(r);e--;)n[e]=t.charCodeAt(e);return r},fe=function(){return new Blob([le()],{type:"application/pdf"})},de=Z(function(e,r){switch(e){case void 0:return ue();case"save":if(navigator.getUserMedia&&(void 0===t.URL||void 0===t.URL.createObjectURL))return D.output("dataurlnewwindow");n(fe(),r),"function"==typeof n.unload&&t.setTimeout&&setTimeout(n.unload,70);break;case"arraybuffer":return le();case"blob":return fe();case"datauristring":case"dataurlstring":return"data:application/pdf;base64,"+btoa(ue());case"datauri":case"dataurl":t.document.location.href="data:application/pdf;base64,"+btoa(ue());break;case"dataurlnewwindow":t.open("data:application/pdf;base64,"+btoa(ue()));break;default:throw new Error('Output type "'+e+'" is not supported.')}});switch(u){case"pt":h=1;break;case"mm":h=72/25.4;break;case"cm":h=72/2.54;break;case"in":h=72;break;case"px":h=96/72;break;case"pc":h=12;break;case"em":h=12;break;case"ex":h=6;break;default:throw"Invalid unit: "+u}if(i.hasOwnProperty(y))w=i[y][1]/h,m=i[y][0]/h;else try{w=c[1],m=c[0]}catch(he){throw new Error("Invalid format: "+c)}if("p"===a||"portrait"===a)a="p",m>w&&(p=m,m=w,w=p);else{if("l"!==a&&"landscape"!==a)throw"Invalid orientation: "+a;a="l",w>m&&(p=m,m=w,w=p)}D.internal={pdfEscape:ee,getStyle:ce,getFont:function(){return S[ae.apply(D,arguments)]},getFontSize:function(){return q},getLineHeight:function(){return q*x},write:function(t){N(1===arguments.length?t:Array.prototype.join.call(arguments," "))},getCoordinateString:function(t){return F(t*h)},getVerticalCoordinateString:function(t){return F((w-t)*h)},collections:{},newObject:M,putStream:H,events:U,scaleFactor:h,pageSize:{width:m,height:w},output:function(t,e){return de(t,e)},getNumberOfPages:function(){return I.length-1},pages:I},D.addPage=function(){return ie(),this},D.text=function(t,e,r,n,s){function o(t){return t=t.split("	").join(Array(f.TabLen||9).join(" ")),ee(t,n)}"number"==typeof t&&(p=r,r=e,e=t,t=p),"string"==typeof t&&t.match(/[\n\r]/)&&(t=t.split(/\r\n|\r|\n/g)),"number"==typeof n&&(s=n,n=null);var i="",a="Td";if(s){s*=Math.PI/180;var u=Math.cos(s),c=Math.sin(s);i=[F(u),F(c),F(-1*c),F(u),""].join(" "),a="Tm"}if(n=n||{},"noBOM"in n||(n.noBOM=!0),"autoencode"in n||(n.autoencode=!0),"string"==typeof t)t=o(t);else{if(!(t instanceof Array))throw new Error('Type of text must be string or Array. "'+t+'" is not recognized.');for(var l=t.concat(),m=[],y=l.length;y--;)m.push(o(l.shift()));t=m.join(") Tj\nT* (")}return N("BT\n/"+d+" "+q+" Tf\n"+q*x+" TL\n"+v+"\n"+i+F(e*h)+" "+F((w-r)*h)+" "+a+"\n("+t+") Tj\nET"),this},D.line=function(t,e,r,n){return this.lines([[r-t,n-e]],t,e)},D.lines=function(t,e,r,n,s,o){var i,a,u,c,l,f,d,m,y,g,v;for("number"==typeof t&&(p=r,r=e,e=t,t=p),n=n||[1,1],N(L(e*h)+" "+L((w-r)*h)+" m "),i=n[0],a=n[1],c=t.length,g=e,v=r,u=0;c>u;u++)l=t[u],2===l.length?(g=l[0]*i+g,v=l[1]*a+v,N(L(g*h)+" "+L((w-v)*h)+" l")):(f=l[0]*i+g,d=l[1]*a+v,m=l[2]*i+g,y=l[3]*a+v,g=l[4]*i+g,v=l[5]*a+v,N(L(f*h)+" "+L((w-d)*h)+" "+L(m*h)+" "+L((w-y)*h)+" "+L(g*h)+" "+L((w-v)*h)+" c"));return o&&N(" h"),null!==s&&N(ce(s)),this},D.rect=function(t,e,r,n,s){ce(s);return N([F(t*h),F((w-e)*h),F(r*h),F(-n*h),"re"].join(" ")),null!==s&&N(ce(s)),this},D.triangle=function(t,e,r,n,s,o,i){return this.lines([[r-t,n-e],[s-r,o-n],[t-s,e-o]],t,e,[1,1],i,!0),this},D.roundedRect=function(t,e,r,n,s,o,i){var a=4/3*(Math.SQRT2-1);return this.lines([[r-2*s,0],[s*a,0,s,o-o*a,s,o],[0,n-2*o],[0,o*a,-(s*a),o,-s,o],[-r+2*s,0],[-(s*a),0,-s,-(o*a),-s,-o],[0,-n+2*o],[0,-(o*a),s*a,-o,s,-o]],t+s,e,[1,1],i),this},D.ellipse=function(t,e,r,n,s){var o=4/3*(Math.SQRT2-1)*r,i=4/3*(Math.SQRT2-1)*n;return N([F((t+r)*h),F((w-e)*h),"m",F((t+r)*h),F((w-(e-i))*h),F((t+o)*h),F((w-(e-n))*h),F(t*h),F((w-(e-n))*h),"c"].join(" ")),N([F((t-o)*h),F((w-(e-n))*h),F((t-r)*h),F((w-(e-i))*h),F((t-r)*h),F((w-e)*h),"c"].join(" ")),N([F((t-r)*h),F((w-(e+i))*h),F((t-o)*h),F((w-(e+n))*h),F(t*h),F((w-(e+n))*h),"c"].join(" ")),N([F((t+o)*h),F((w-(e+n))*h),F((t+r)*h),F((w-(e+i))*h),F((t+r)*h),F((w-e)*h),"c"].join(" ")),null!==s&&N(ce(s)),this},D.circle=function(t,e,r,n){return this.ellipse(t,e,r,r,n)},D.setProperties=function(t){for(var e in R)R.hasOwnProperty(e)&&t[e]&&(R[e]=t[e]);return this},D.setFontSize=function(t){return q=t,this},D.setFont=function(t,e){return d=ae(t,e),this},D.setFontStyle=D.setFontType=function(t){return d=ae(void 0,t),this},D.getFontList=function(){var t,e,r,n={};for(t in E)if(E.hasOwnProperty(t)){n[t]=r=[];for(e in E[t])E[t].hasOwnProperty(e)&&r.push(e)}return n},D.setLineWidth=function(t){return N((t*h).toFixed(2)+" w"),this},D.setDrawColor=function(t,e,r,n){var s;return s=void 0===e||void 0===n&&t===e===r?"string"==typeof t?t+" G":F(t/255)+" G":void 0===n?"string"==typeof t?[t,e,r,"RG"].join(" "):[F(t/255),F(e/255),F(r/255),"RG"].join(" "):"string"==typeof t?[t,e,r,n,"K"].join(" "):[F(t),F(e),F(r),F(n),"K"].join(" "),N(s),this},D.setFillColor=function(t,e,r,n){var s;return s=void 0===e||void 0===n&&t===e===r?"string"==typeof t?t+" g":F(t/255)+" g":void 0===n?"string"==typeof t?[t,e,r,"rg"].join(" "):[F(t/255),F(e/255),F(r/255),"rg"].join(" "):"string"==typeof t?[t,e,r,n,"k"].join(" "):[F(t),F(e),F(r),F(n),"k"].join(" "),N(s),this},D.setTextColor=function(t,e,r){if("string"==typeof t&&/^#[0-9A-Fa-f]{6}$/.test(t)){var n=parseInt(t.substr(1),16);t=n>>16&255,e=n>>8&255,r=255&n}return v=0===t&&0===e&&0===r||"undefined"==typeof e?L(t/255)+" g":[L(t/255),L(e/255),L(r/255),"rg"].join(" "),this},D.CapJoinStyles={0:0,butt:0,but:0,miter:0,1:1,round:1,rounded:1,circle:1,2:2,projecting:2,project:2,square:2,bevel:2},D.setLineCap=function(t){var e=this.CapJoinStyles[t];if(void 0===e)throw new Error("Line cap style of '"+t+"' is not recognized. See or extend .CapJoinStyles property for valid styles");return B=e,N(e+" J"),this},D.setLineJoin=function(t){var e=this.CapJoinStyles[t];if(void 0===e)throw new Error("Line join style of '"+t+"' is not recognized. See or extend .CapJoinStyles property for valid styles");return O=e,N(e+" j"),this},D.output=de,D.save=function(t){D.output("save",t)};for(var pe in r.API)r.API.hasOwnProperty(pe)&&("events"===pe&&r.API.events.length?!function(t,e){var r,n,s;for(s=e.length-1;-1!==s;s--)r=e[s][0],n=e[s][1],t.subscribe.apply(t,[r].concat("function"==typeof n?[n]:n))}(U,r.API.events):D[pe]=r.API[pe]);return $(),d="F1",ie(),U.publish("initialized"),D}var o="1.3",i={a0:[2383.94,3370.39],a1:[1683.78,2383.94],a2:[1190.55,1683.78],a3:[841.89,1190.55],a4:[595.28,841.89],a5:[419.53,595.28],a6:[297.64,419.53],a7:[209.76,297.64],a8:[147.4,209.76],a9:[104.88,147.4],a10:[73.7,104.88],b0:[2834.65,4008.19],b1:[2004.09,2834.65],b2:[1417.32,2004.09],b3:[1000.63,1417.32],b4:[708.66,1000.63],b5:[498.9,708.66],b6:[354.33,498.9],b7:[249.45,354.33],b8:[175.75,249.45],b9:[124.72,175.75],b10:[87.87,124.72],c0:[2599.37,3676.54],c1:[1836.85,2599.37],c2:[1298.27,1836.85],c3:[918.43,1298.27],c4:[649.13,918.43],c5:[459.21,649.13],c6:[323.15,459.21],c7:[229.61,323.15],c8:[161.57,229.61],c9:[113.39,161.57],c10:[79.37,113.39],dl:[311.81,623.62],letter:[612,792],"government-letter":[576,756],legal:[612,1008],"junior-legal":[576,360],ledger:[1224,792],tabloid:[792,1224],"credit-card":[153,243]};return r.API={events:[]},r.version="1.0.150-git 2014-05-30T00:40:diegocr","function"==typeof define&&define.amd?define(function(){return r}):t.jsPDF=r,r}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this);!function(t){"use strict";t.addHTML=function(t,e,r,n,s){if("undefined"==typeof html2canvas&&"undefined"==typeof rasterizeHTML)throw new Error("You need either https://github.com/niklasvh/html2canvas or https://github.com/cburgmer/rasterizeHTML.js");"number"!=typeof e&&(n=e,s=r),"function"==typeof n&&(s=n,n=null);var o=this.internal,i=o.scaleFactor,a=o.pageSize.width,u=o.pageSize.height;if(n=n||{},n.onrendered=function(t){e=parseInt(e)||0,r=parseInt(r)||0;var o=n.dim||{},c=o.h||0,l=o.w||Math.min(a,t.width/i)-e,f="JPEG";if(n.format&&(f=n.format),t.height>u&&n.pagesplit){var d=function(){for(var n=0;;){var o=document.createElement("canvas");o.width=Math.min(a*i,t.width),o.height=Math.min(u*i,t.height-n);var c=o.getContext("2d");c.drawImage(t,0,n,t.width,o.height,0,0,o.width,o.height);var d=[o,e,n?0:r,o.width/i,o.height/i,f,null,"SLOW"];if(this.addImage.apply(this,d),n+=o.height,n>=t.height)break;this.addPage()}s(l,n,null,d)}.bind(this);if("CANVAS"===t.nodeName){var h=new Image;h.onload=d,h.src=t.toDataURL("image/png"),t=h}else d()}else{var p=Math.random().toString(35),m=[t,e,r,l,c,f,p,"SLOW"];this.addImage.apply(this,m),s(l,c,p,m)}}.bind(this),"undefined"!=typeof html2canvas&&!n.rstz)return html2canvas(t,n);if("undefined"!=typeof rasterizeHTML){var c="drawDocument";return"string"==typeof t&&(c=/^http/.test(t)?"drawURL":"drawHTML"),n.width=n.width||a*i,rasterizeHTML[c](t,void 0,n).then(function(t){n.onrendered(t.image)},function(t){s(null,t)})}return null}}(r.API),function(t){"use strict";var e="addImage_",r=["jpeg","jpg","png"],n=function(t){var e=this.internal.newObject(),r=this.internal.write,s=this.internal.putStream;if(t.n=e,r("<</Type /XObject"),r("/Subtype /Image"),r("/Width "+t.w),r("/Height "+t.h),t.cs===this.color_spaces.INDEXED?r("/ColorSpace [/Indexed /DeviceRGB "+(t.pal.length/3-1)+" "+("smask"in t?e+2:e+1)+" 0 R]"):(r("/ColorSpace /"+t.cs),t.cs===this.color_spaces.DEVICE_CMYK&&r("/Decode [1 0 1 0 1 0 1 0]")),r("/BitsPerComponent "+t.bpc),"f"in t&&r("/Filter /"+t.f),"dp"in t&&r("/DecodeParms <<"+t.dp+">>"),"trns"in t&&t.trns.constructor==Array){for(var o="",i=0,a=t.trns.length;a>i;i++)o+=t.trns[i]+" "+t.trns[i]+" ";r("/Mask ["+o+"]")}if("smask"in t&&r("/SMask "+(e+1)+" 0 R"),r("/Length "+t.data.length+">>"),s(t.data),r("endobj"),"smask"in t){var u="/Predictor 15 /Colors 1 /BitsPerComponent "+t.bpc+" /Columns "+t.w,c={w:t.w,h:t.h,cs:"DeviceGray",bpc:t.bpc,dp:u,data:t.smask};"f"in t&&(c.f=t.f),n.call(this,c)}t.cs===this.color_spaces.INDEXED&&(this.internal.newObject(),r("<< /Length "+t.pal.length+">>"),s(this.arrayBufferToBinaryString(new Uint8Array(t.pal))),r("endobj"))},s=function(){var t=this.internal.collections[e+"images"];for(var r in t)n.call(this,t[r])},o=function(){var t,r=this.internal.collections[e+"images"],n=this.internal.write;for(var s in r)t=r[s],n("/I"+t.i,t.n,"0","R")},i=function(e){return e&&"string"==typeof e&&(e=e.toUpperCase()),e in t.image_compression?e:t.image_compression.NONE},a=function(){var t=this.internal.collections[e+"images"];return t||(this.internal.collections[e+"images"]=t={},this.internal.events.subscribe("putResources",s),this.internal.events.subscribe("putXobjectDict",o)),t},u=function(t){var e=0;return t&&(e=Object.keys?Object.keys(t).length:function(t){var e=0;for(var r in t)t.hasOwnProperty(r)&&e++;return e}(t)),e},c=function(t){return"undefined"==typeof t||null===t},l=function(){return void 0},f=function(t){return-1===r.indexOf(t)},d=function(e){return"function"!=typeof t["process"+e.toUpperCase()]},h=function(t){return"object"==typeof t&&1===t.nodeType},p=function(t,e){if("IMG"===t.nodeName&&t.hasAttribute("src")&&0===(""+t.getAttribute("src")).indexOf("data:image/"))return t.getAttribute("src");if("CANVAS"===t.nodeName)var r=t;else{var r=document.createElement("canvas");r.width=t.clientWidth||t.width,r.height=t.clientHeight||t.height;var n=r.getContext("2d");if(!n)throw"addImage requires canvas to be supported by browser.";n.drawImage(t,0,0,r.width,r.height)}return r.toDataURL("png"==e?"image/png":"image/jpeg")},m=function(t,e){var r;if(e)for(var n in e)if(t===e[n].alias){r=e[n];break}return r},w=function(t,e,r){return t||e||(t=-96,e=-96),0>t&&(t=-1*r.w*72/t/this.internal.scaleFactor),0>e&&(e=-1*r.h*72/e/this.internal.scaleFactor),0===t&&(t=e*r.w/r.h),0===e&&(e=t*r.h/r.w),[t,e]},y=function(t,e,r,n,s,o,i){var a=w.call(this,r,n,s),u=this.internal.getCoordinateString,c=this.internal.getVerticalCoordinateString;r=a[0],n=a[1],i[o]=s,this.internal.write("q",u(r),"0 0",u(n),u(t),c(e+n),"cm /I"+s.i,"Do Q")};t.color_spaces={DEVICE_RGB:"DeviceRGB",DEVICE_GRAY:"DeviceGray",DEVICE_CMYK:"DeviceCMYK",CAL_GREY:"CalGray",CAL_RGB:"CalRGB",LAB:"Lab",ICC_BASED:"ICCBased",INDEXED:"Indexed",PATTERN:"Pattern",SEPERATION:"Seperation",DEVICE_N:"DeviceN"},t.decode={DCT_DECODE:"DCTDecode",FLATE_DECODE:"FlateDecode",LZW_DECODE:"LZWDecode",JPX_DECODE:"JPXDecode",JBIG2_DECODE:"JBIG2Decode",ASCII85_DECODE:"ASCII85Decode",ASCII_HEX_DECODE:"ASCIIHexDecode",RUN_LENGTH_DECODE:"RunLengthDecode",CCITT_FAX_DECODE:"CCITTFaxDecode"},t.image_compression={NONE:"NONE",FAST:"FAST",MEDIUM:"MEDIUM",SLOW:"SLOW"},t.isString=function(t){return"string"==typeof t},t.extractInfoFromBase64DataURI=function(t){return/^data:([\w]+?\/([\w]+?));base64,(.+?)$/g.exec(t)},t.supportsArrayBuffer=function(){return"undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array},t.isArrayBuffer=function(t){return this.supportsArrayBuffer()?t instanceof ArrayBuffer:!1},t.isArrayBufferView=function(t){return this.supportsArrayBuffer()?"undefined"==typeof Uint32Array?!1:t instanceof Int8Array||t instanceof Uint8Array||"undefined"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array:!1},t.binaryStringToUint8Array=function(t){for(var e=t.length,r=new Uint8Array(e),n=0;e>n;n++)r[n]=t.charCodeAt(n);return r},t.arrayBufferToBinaryString=function(t){this.isArrayBuffer(t)&&(t=new Uint8Array(t));for(var e="",r=t.byteLength,n=0;r>n;n++)e+=String.fromCharCode(t[n]);return e},t.arrayBufferToBase64=function(t){for(var e,r,n,s,o,i="",a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",u=new Uint8Array(t),c=u.byteLength,l=c%3,f=c-l,d=0;f>d;d+=3)o=u[d]<<16|u[d+1]<<8|u[d+2],e=(16515072&o)>>18,r=(258048&o)>>12,n=(4032&o)>>6,s=63&o,i+=a[e]+a[r]+a[n]+a[s];return 1==l?(o=u[f],e=(252&o)>>2,r=(3&o)<<4,i+=a[e]+a[r]+"=="):2==l&&(o=u[f]<<8|u[f+1],e=(64512&o)>>10,r=(1008&o)>>4,n=(15&o)<<2,i+=a[e]+a[r]+a[n]+"="),i},t.createImageInfo=function(t,e,r,n,s,o,i,a,u,c,l,f){var d={alias:a,w:e,h:r,cs:n,bpc:s,i:i,data:t};return o&&(d.f=o),u&&(d.dp=u),c&&(d.trns=c),l&&(d.pal=l),f&&(d.smask=f),d},t.addImage=function(t,e,n,s,o,w,g,v){if("number"==typeof e){var b=w;w=o,o=s,s=n,n=e,e=b}var q,x,k=a.call(this);if(v=i(v),e=(e||"JPEG").toLowerCase(),c(g)&&(g=l(t)),h(t)&&(t=p(t,e)),this.isString(t)){var _=this.extractInfoFromBase64DataURI(t);_?(e=_[2],t=atob(_[3]),this.supportsArrayBuffer()&&(x=t,t=this.binaryStringToUint8Array(t))):255!==t.charCodeAt(0)&&(q=m(t,k))}if(f(e))throw new Error("addImage currently only supports formats "+r+", not '"+e+"'");if(d(e))throw new Error("please ensure that the plugin for '"+e+"' support is added");var A=u(k),C=q;if(C||(C=this["process"+e.toUpperCase()](t,A,g,v,x)),!C)throw new Error("An unkwown error occurred whilst processing the image");return y.call(this,n,s,o,w,C,A,k),this};var g=function(t){var e,r;if(255===!t.charCodeAt(0)||216===!t.charCodeAt(1)||255===!t.charCodeAt(2)||224===!t.charCodeAt(3)||!t.charCodeAt(6)==="J".charCodeAt(0)||!t.charCodeAt(7)==="F".charCodeAt(0)||!t.charCodeAt(8)==="I".charCodeAt(0)||!t.charCodeAt(9)==="F".charCodeAt(0)||0===!t.charCodeAt(10))throw new Error("getJpegSize requires a binary string jpeg file");for(var n=256*t.charCodeAt(4)+t.charCodeAt(5),s=4,o=t.length;o>s;){if(s+=n,255!==t.charCodeAt(s))throw new Error("getJpegSize could not find the size of the image");if(192===t.charCodeAt(s+1)||193===t.charCodeAt(s+1)||194===t.charCodeAt(s+1)||195===t.charCodeAt(s+1)||196===t.charCodeAt(s+1)||197===t.charCodeAt(s+1)||198===t.charCodeAt(s+1)||199===t.charCodeAt(s+1))return r=256*t.charCodeAt(s+5)+t.charCodeAt(s+6),e=256*t.charCodeAt(s+7)+t.charCodeAt(s+8),[e,r];s+=2,n=256*t.charCodeAt(s)+t.charCodeAt(s+1)}},v=function(t){var e=t[0]<<8|t[1];if(65496!==e)throw new Error("Supplied data is not a JPEG");for(var r,n,s,o=t.length,i=(t[4]<<8)+t[5],a=4;o>a;){if(a+=i,r=b(t,a),i=(r[2]<<8)+r[3],(192===r[1]||194===r[1])&&255===r[0]&&i>7)return r=b(t,a+5),n=(r[2]<<8)+r[3],s=(r[0]<<8)+r[1],{width:n,height:s};a+=2}throw new Error("getJpegSizeFromBytes could not find the size of the image")},b=function(t,e){return t.subarray(e,e+4)};t.processJPEG=function(t,e,r,n,s){var o,i=this.color_spaces.DEVICE_RGB,a=this.decode.DCT_DECODE,u=8;return this.isString(t)?(o=g(t),this.createImageInfo(t,o[0],o[1],i,u,a,e,r)):(this.isArrayBuffer(t)&&(t=new Uint8Array(t)),this.isArrayBufferView(t)?(o=v(t),t=s||this.arrayBufferToBinaryString(t),this.createImageInfo(t,o.width,o.height,i,u,a,e,r)):null)},t.processJPG=function(){return this.processJPEG.apply(this,arguments)}}(r.API),function(t){"use strict";t.autoPrint=function(){var t;return this.internal.events.subscribe("postPutResources",function(){t=this.internal.newObject(),this.internal.write("<< /S/Named /Type/Action /N/Print >>","endobj")}),this.internal.events.subscribe("putCatalog",function(){this.internal.write("/OpenAction "+t+" 0 R")}),this}}(r.API),function(t){"use strict";var e,r,n,s,o=3,i=13,a={x:void 0,y:void 0,w:void 0,h:void 0,ln:void 0},u=1,c=function(t,e,r,n,s){a={x:t,y:e,w:r,h:n,ln:s}},l=function(){return a},f={left:0,top:0,bottom:0};t.setHeaderFunction=function(t){s=t},t.getTextDimensions=function(t){e=this.internal.getFont().fontName,r=this.table_font_size||this.internal.getFontSize(),n=this.internal.getFont().fontStyle;var s,o,i=19.049976/25.4;return o=document.createElement("font"),o.id="jsPDFCell",o.style.fontStyle=n,o.style.fontName=e,o.style.fontSize=r+"pt",o.innerText=t,document.body.appendChild(o),s={w:(o.offsetWidth+1)*i,h:(o.offsetHeight+1)*i},document.body.removeChild(o),s},t.cellAddPage=function(){var t=this.margins||f;this.addPage(),c(t.left,t.top,void 0,void 0),u+=1},t.cellInitialize=function(){a={x:void 0,y:void 0,w:void 0,h:void 0,ln:void 0},u=1},t.cell=function(t,e,r,n,s,a,u){var d=l();if(void 0!==d.ln)if(d.ln===a)t=d.x+d.w,e=d.y;else{var h=this.margins||f;d.y+d.h+n+i>=this.internal.pageSize.height-h.bottom&&(this.cellAddPage(),this.printHeaders&&this.tableHeaderRow&&this.printHeaderRow(a,!0)),e=l().y+l().h}if(void 0!==s[0])if(this.printingHeaderRow?this.rect(t,e,r,n,"FD"):this.rect(t,e,r,n),"right"===u){if(s instanceof Array)for(var p=0;p<s.length;p++){var m=s[p],w=this.getStringUnitWidth(m)*this.internal.getFontSize();this.text(m,t+r-w-o,e+this.internal.getLineHeight()*(p+1))}}else this.text(s,t+o,e+this.internal.getLineHeight());return c(t,e,r,n,a),this},t.arrayMax=function(t,e){var r,n,s,o=t[0];for(r=0,n=t.length;n>r;r+=1)s=t[r],e?-1===e(o,s)&&(o=s):s>o&&(o=s);return o},t.table=function(e,r,n,s,o){if(!n)throw"No data for PDF table";var i,c,l,d,h,p,m,w,y,g,v=[],b=[],q={},x={},k=[],_=[],A=!1,C=!0,S=12,E=f;if(E.width=this.internal.pageSize.width,o&&(o.autoSize===!0&&(A=!0),o.printHeaders===!1&&(C=!1),o.fontSize&&(S=o.fontSize),o.margins&&(E=o.margins)),this.lnMod=0,a={x:void 0,y:void 0,w:void 0,h:void 0,ln:void 0},u=1,this.printHeaders=C,this.margins=E,this.setFontSize(S),this.table_font_size=S,void 0===s||null===s)v=Object.keys(n[0]);else if(s[0]&&"string"!=typeof s[0]){var z=19.049976/25.4;for(c=0,l=s.length;l>c;c+=1)i=s[c],v.push(i.name),b.push(i.prompt),x[i.name]=i.width*z}else v=s;if(A)for(g=function(t){return t[i]},c=0,l=v.length;l>c;c+=1){for(i=v[c],q[i]=n.map(g),k.push(this.getTextDimensions(b[c]||i).w),p=q[i],m=0,d=p.length;d>m;m+=1)h=p[m],k.push(this.getTextDimensions(h).w);x[i]=t.arrayMax(k)}if(C){var I=this.calculateLineHeight(v,x,b.length?b:v);for(c=0,l=v.length;l>c;c+=1)i=v[c],_.push([e,r,x[i],I,String(b.length?b[c]:i)]);this.setTableHeaderRow(_),this.printHeaderRow(1,!1)}for(c=0,l=n.length;l>c;c+=1){var I;for(w=n[c],I=this.calculateLineHeight(v,x,w),m=0,y=v.length;y>m;m+=1)i=v[m],this.cell(e,r,x[i],I,w[i],c+2,i.align)}return this.lastCellPos=a,this.table_x=e,this.table_y=r,this},t.calculateLineHeight=function(t,e,r){for(var n,s=0,i=0;i<t.length;i++){n=t[i],r[n]=this.splitTextToSize(String(r[n]),e[n]-o);var a=this.internal.getLineHeight()*r[n].length+o;a>s&&(s=a)}return s},t.setTableHeaderRow=function(t){this.tableHeaderRow=t},t.printHeaderRow=function(t,e){if(!this.tableHeaderRow)throw"Property tableHeaderRow does not exist.";var r,n,o,i;if(this.printingHeaderRow=!0,void 0!==s){var a=s(this,u);c(a[0],a[1],a[2],a[3],-1)}this.setFontStyle("bold");var l=[];for(o=0,i=this.tableHeaderRow.length;i>o;o+=1)this.setFillColor(200,200,200),r=this.tableHeaderRow[o],e&&(r[1]=this.margins&&this.margins.top||0,l.push(r)),n=[].concat(r),this.cell.apply(this,n.concat(t));l.length>0&&this.setTableHeaderRow(l),this.setFontStyle("normal"),this.printingHeaderRow=!1}}(r.API),function(t){var e,r,n,s,o,i,a,u,c,l,f,d,h,p,m,w,y;e=function(){function t(){}return function(e){return t.prototype=e,new t}}(),a=function(t){var e,r,n,s,o,i,a;for(r=0,n=t.length,e=void 0,s=!1,i=!1;!s&&r!==n;)e=t[r]=t[r].trimLeft(),e&&(s=!0),r++;for(r=n-1;n&&!i&&-1!==r;)e=t[r]=t[r].trimRight(),e&&(i=!0),r--;for(o=/\s+$/g,a=!0,r=0;r!==n;)e=t[r].replace(/\s+/g," "),a&&(e=e.trimLeft()),e&&(a=o.test(e)),t[r]=e,r++;return t},u=function(t,e,r,n){return this.pdf=t,this.x=e,this.y=r,this.settings=n,this.init(),this},c=function(t){var e,r,s;for(e=void 0,s=t.split(","),r=s.shift();!e&&r;)e=n[r.trim().toLowerCase()],r=s.shift();return e},l=function(t){t="auto"===t?"0px":t,t.indexOf("em")>-1&&!isNaN(Number(t.replace("em","")))&&(t=18.719*Number(t.replace("em",""))+"px"),t.indexOf("pt")>-1&&!isNaN(Number(t.replace("pt","")))&&(t=1.333*Number(t.replace("pt",""))+"px");var e,r,n;return r=void 0,e=16,(n=f[t])?n:(n={"xx-small":9,"x-small":11,small:13,medium:16,large:19,"x-large":23,"xx-large":28,auto:0}[{css_line_height_string:t}],n!==r?f[t]=n/e:(n=parseFloat(t))?f[t]=n/e:(n=t.match(/([\d\.]+)(px)/),f[t]=3===n.length?parseFloat(n[1])/e:1))},i=function(t){var e,r,n;return n=function(t){var e;return e=function(t){return document.defaultView&&document.defaultView.getComputedStyle?document.defaultView.getComputedStyle(t,null):t.currentStyle?t.currentStyle:t.style}(t),function(t){return t=t.replace(/-\D/g,function(t){return t.charAt(1).toUpperCase()}),e[t]}}(t),e={},r=void 0,e["font-family"]=c(n("font-family"))||"times",e["font-style"]=s[n("font-style")]||"normal",e["text-align"]=TextAlignMap[n("text-align")]||"left",r=o[n("font-weight")]||"normal","bold"===r&&(e["font-style"]="normal"===e["font-style"]?r:r+e["font-style"]),e["font-size"]=l(n("font-size"))||1,e["line-height"]=l(n("line-height"))||1,e.display="inline"===n("display")?"inline":"block","block"===e.display&&(e["margin-top"]=l(n("margin-top"))||0,e["margin-bottom"]=l(n("margin-bottom"))||0,e["padding-top"]=l(n("padding-top"))||0,e["padding-bottom"]=l(n("padding-bottom"))||0,e["margin-left"]=l(n("margin-left"))||0,e["margin-right"]=l(n("margin-right"))||0,e["padding-left"]=l(n("padding-left"))||0,e["padding-right"]=l(n("padding-right"))||0),e},d=function(t,e,r){var n,s,o,i,a;if(o=!1,s=void 0,i=void 0,a=void 0,n=r["#"+t.id])if("function"==typeof n)o=n(t,e);else for(s=0,i=n.length;!o&&s!==i;)o=n[s](t,e),s++;if(n=r[t.nodeName],!o&&n)if("function"==typeof n)o=n(t,e);else for(s=0,i=n.length;!o&&s!==i;)o=n[s](t,e),s++;return o},y=function(t,e){var r,n,s,o,i,a,u,c,l,f;for(r=[],n=[],s=0,f=t.rows[0].cells.length,c=t.clientWidth;f>s;)l=t.rows[0].cells[s],n[s]={name:l.textContent.toLowerCase().replace(/\s+/g,""),prompt:l.textContent.replace(/\r?\n/g,""),width:l.clientWidth/c*e.pdf.internal.pageSize.width},s++;for(s=1;s<t.rows.length;){for(a=t.rows[s],i={},o=0;o<a.cells.length;)i[n[o].name]=a.cells[o].textContent.replace(/\r?\n/g,""),o++;r.push(i),s++}return u={rows:r,headers:n}};var g={SCRIPT:1,STYLE:1,NOSCRIPT:1,OBJECT:1,EMBED:1,SELECT:1},v=1;r=function(t,e,n){var s,o,a,u,c,l,f,p,m;for(o=t.childNodes,s=void 0,a=i(t),c="block"===a.display,c&&(e.setBlockBoundary(),e.setBlockStyle(a)),f=19.049976/25.4,u=0,l=o.length;l>u;){if(s=o[u],"object"==typeof s){if(1===s.nodeType&&"HEADER"===s.nodeName){var w=s,b=e.pdf.margins_doc.top;e.pdf.internal.events.subscribe("addPage",function(){e.y=b,r(w,e,n),e.pdf.margins_doc.top=e.y+10,e.y+=10},!1)}if(8===s.nodeType&&"#comment"===s.nodeName)~s.textContent.indexOf("ADD_PAGE")&&(e.pdf.addPage(),e.y=e.pdf.margins_doc.top);else if(1!==s.nodeType||g[s.nodeName])if(3===s.nodeType){var q=s.nodeValue;if(s.nodeValue&&"LI"===s.parentNode.nodeName)if("OL"===s.parentNode.parentNode.nodeName)q=v++ +". "+q;else{var x=16*a["font-size"],k=2;x>20&&(k=3),m=function(t,e){this.pdf.circle(t,e,k,"FD")}}e.addText(q,a)}else"string"==typeof s&&e.addText(s,a);else if("IMG"===s.nodeName&&h[s.getAttribute("src")])e.pdf.internal.pageSize.height-e.pdf.margins_doc.bottom<e.y+s.height&&e.y>e.pdf.margins_doc.top&&(e.pdf.addPage(),e.y=e.pdf.margins_doc.top),e.pdf.addImage(h[s.getAttribute("src")],e.x,e.y,s.width,s.height),e.y+=s.height;else if("TABLE"===s.nodeName)p=y(s,e),e.y+=10,e.pdf.table(e.x,e.y,p.rows,p.headers,{autoSize:!1,printHeaders:!0,margins:e.pdf.margins_doc}),e.y=e.pdf.lastCellPos.y+e.pdf.lastCellPos.h+20;else if("OL"===s.nodeName||"UL"===s.nodeName)v=1,d(s,e,n)||r(s,e,n),e.y+=10;else if("LI"===s.nodeName){var _=e.x;e.x+="UL"===s.parentNode.nodeName?22:10,e.y+=3,d(s,e,n)||r(s,e,n),e.x=_}else d(s,e,n)||r(s,e,n)}u++}return c?e.setBlockBoundary(m):void 0},h={},p=function(t,e,r,n){function s(){e.pdf.internal.events.publish("imagesLoaded"),n()}function o(t,e,r){if(t){var n=new Image;++u,n.crossOrigin="",n.onerror=n.onload=function(){n.complete&&(0===n.src.indexOf("data:image/")&&(n.width=e||n.width||0,n.height=r||n.height||0),n.width+n.height&&(h[t]=h[t]||n)),--u||s()},n.src=t}}for(var i=t.getElementsByTagName("img"),a=i.length,u=0;a--;)o(i[a].getAttribute("src"),i[a].width,i[a].height);return u||s()},m=function(t,e,n,s){var o=t.getElementsByTagName("footer");if(o.length>0){o=o[0];var i=e.pdf.internal.write,a=e.y;e.pdf.internal.write=function(){},r(o,e,n);var u=Math.ceil(e.y-a)+5;e.y=a,e.pdf.internal.write=i,e.pdf.margins_doc.bottom+=u;
          for(var c=function(t){var s=void 0!==t?t.pageNumber:1,i=e.y;e.y=e.pdf.internal.pageSize.height-e.pdf.margins_doc.bottom,e.pdf.margins_doc.bottom-=u;for(var a=o.getElementsByTagName("span"),c=0;c<a.length;++c)(" "+a[c].className+" ").replace(/[\n\t]/g," ").indexOf(" pageCounter ")>-1&&(a[c].innerHTML=s),(" "+a[c].className+" ").replace(/[\n\t]/g," ").indexOf(" totalPages ")>-1&&(a[c].innerHTML="###jsPDFVarTotalPages###");r(o,e,n),e.pdf.margins_doc.bottom+=u,e.y=i},l=o.getElementsByTagName("span"),f=0;f<l.length;++f)(" "+l[f].className+" ").replace(/[\n\t]/g," ").indexOf(" totalPages ")>-1&&e.pdf.internal.events.subscribe("htmlRenderingFinished",e.pdf.putTotalPages.bind(e.pdf,"###jsPDFVarTotalPages###"),!0);e.pdf.internal.events.subscribe("addPage",c,!1),c(),g.FOOTER=1}s()},w=function(t,e,n,s,o,i){if(!e)return!1;"string"==typeof e||e.parentNode||(e=""+e.innerHTML),"string"==typeof e&&(e=function(t){var e,r,n,s;return n="jsPDFhtmlText"+Date.now().toString()+(1e3*Math.random()).toFixed(0),s="position: absolute !important;clip: rect(1px 1px 1px 1px); /* IE6, IE7 */clip: rect(1px, 1px, 1px, 1px);padding:0 !important;border:0 !important;height: 1px !important;width: 1px !important; top:auto;left:-100px;overflow: hidden;",r=document.createElement("div"),r.style.cssText=s,r.innerHTML='<iframe style="height:1px;width:1px" name="'+n+'" />',document.body.appendChild(r),e=window.frames[n],e.document.body.innerHTML=t,e.document.body}(e.replace(/<\/?script[^>]*?>/gi,"")));var a=new u(t,n,s,o);return i=i||function(){},p.call(this,e,a,o.elementHandlers,function(){m.call(this,e,a,o.elementHandlers,function(){r(e,a,o.elementHandlers),a.pdf.internal.events.publish("htmlRenderingFinished"),i(a.dispose())})}),a.dispose()},u.prototype.init=function(){return this.paragraph={text:[],style:[]},this.pdf.internal.write("q")},u.prototype.dispose=function(){return this.pdf.internal.write("Q"),{x:this.x,y:this.y}},u.prototype.splitFragmentsIntoLines=function(t,r){var n,s,o,i,a,u,c,l,f,d,h,p,m,w,y;for(s=12,h=this.pdf.internal.scaleFactor,a={},o=void 0,d=void 0,i=void 0,u=void 0,y=void 0,f=void 0,l=void 0,c=void 0,p=[],m=[p],n=0,w=this.settings.width;t.length;)if(u=t.shift(),y=r.shift(),u)if(o=y["font-family"],d=y["font-style"],i=a[o+d],i||(i=this.pdf.internal.getFont(o,d).metadata.Unicode,a[o+d]=i),f={widths:i.widths,kerning:i.kerning,fontSize:y["font-size"]*s,textIndent:n},l=this.pdf.getStringUnitWidth(u,f)*f.fontSize/h,n+l>w){for(c=this.pdf.splitTextToSize(u,w,f),p.push([c.shift(),y]);c.length;)p=[[c.shift(),y]],m.push(p);n=this.pdf.getStringUnitWidth(p[0][0],f)*f.fontSize/h}else p.push([u,y]),n+=l;if(void 0!==y["text-align"]&&("center"===y["text-align"]||"right"===y["text-align"]||"justify"===y["text-align"]))for(var g=0;g<m.length;++g){var v=this.pdf.getStringUnitWidth(m[g][0][0],f)*f.fontSize/h;g>0&&(m[g][0][1]=e(m[g][0][1]));var b=w-v;if("right"===y["text-align"])m[g][0][1]["margin-left"]=b;else if("center"===y["text-align"])m[g][0][1]["margin-left"]=b/2;else if("justify"===y["text-align"]){var q=m[g][0][0].split(" ").length-1;m[g][0][1]["word-spacing"]=b/q,g===m.length-1&&(m[g][0][1]["word-spacing"]=0)}}return m},u.prototype.RenderTextFragment=function(t,e){var r,n;this.pdf.internal.pageSize.height-this.pdf.margins_doc.bottom<this.y+this.pdf.internal.getFontSize()&&(this.pdf.internal.write("ET","Q"),this.pdf.addPage(),this.y=this.pdf.margins_doc.top,this.pdf.internal.write("q","BT",this.pdf.internal.getCoordinateString(this.x),this.pdf.internal.getVerticalCoordinateString(this.y),"Td")),r=12,n=this.pdf.internal.getFont(e["font-family"],e["font-style"]),void 0!==e["word-spacing"]&&e["word-spacing"]>0&&this.pdf.internal.write(e["word-spacing"].toFixed(2),"Tw"),this.pdf.internal.write("/"+n.id,(r*e["font-size"]).toFixed(2),"Tf","("+this.pdf.internal.pdfEscape(t)+") Tj"),void 0!==e["word-spacing"]&&this.pdf.internal.write(0,"Tw")},u.prototype.renderParagraph=function(t){var e,r,n,s,o,i,u,c,l,f,d,h,p,m,w;if(s=a(this.paragraph.text),m=this.paragraph.style,e=this.paragraph.blockstyle,p=this.paragraph.blockstyle||{},this.paragraph={text:[],style:[],blockstyle:{},priorblockstyle:e},s.join("").trim()){c=this.splitFragmentsIntoLines(s,m),u=void 0,l=void 0,r=12,n=r/this.pdf.internal.scaleFactor,h=(Math.max((e["margin-top"]||0)-(p["margin-bottom"]||0),0)+(e["padding-top"]||0))*n,d=((e["margin-bottom"]||0)+(e["padding-bottom"]||0))*n,f=this.pdf.internal.write,o=void 0,i=void 0,this.y+=h,f("q","BT",this.pdf.internal.getCoordinateString(this.x),this.pdf.internal.getVerticalCoordinateString(this.y),"Td");for(var y=0;c.length;){for(u=c.shift(),l=0,o=0,i=u.length;o!==i;)u[o][0].trim()&&(l=Math.max(l,u[o][1]["line-height"],u[o][1]["font-size"]),w=7*u[o][1]["font-size"]),o++;var g=0;for(void 0!==u[0][1]["margin-left"]&&u[0][1]["margin-left"]>0&&(wantedIndent=this.pdf.internal.getCoordinateString(u[0][1]["margin-left"]),g=wantedIndent-y,y=wantedIndent),f(g,(-1*r*l).toFixed(2),"Td"),o=0,i=u.length;o!==i;)u[o][0]&&this.RenderTextFragment(u[o][0],u[o][1]),o++;this.y+=l*n}return t&&"function"==typeof t&&t.call(this,this.x-9,this.y-w/2),f("ET","Q"),this.y+=d}},u.prototype.setBlockBoundary=function(t){return this.renderParagraph(t)},u.prototype.setBlockStyle=function(t){return this.paragraph.blockstyle=t},u.prototype.addText=function(t,e){return this.paragraph.text.push(t),this.paragraph.style.push(e)},n={helvetica:"helvetica","sans-serif":"helvetica","times new roman":"times",serif:"times",times:"times",monospace:"courier",courier:"courier"},o={100:"normal",200:"normal",300:"normal",400:"normal",500:"bold",600:"bold",700:"bold",800:"bold",900:"bold",normal:"normal",bold:"bold",bolder:"bold",lighter:"normal"},s={normal:"normal",italic:"italic",oblique:"italic"},TextAlignMap={left:"left",right:"right",center:"center",justify:"justify"},f={normal:1},t.fromHTML=function(t,e,r,n,s,o){"use strict";return this.margins_doc=o||{top:0,bottom:0},n||(n={}),n.elementHandlers||(n.elementHandlers={}),w(this,t,e||4,r||4,n,s)}}(r.API),function(t){"use strict";var e,r,n;t.addJS=function(t){return n=t,this.internal.events.subscribe("postPutResources",function(){e=this.internal.newObject(),this.internal.write("<< /Names [(EmbeddedJS) "+(e+1)+" 0 R] >>","endobj"),r=this.internal.newObject(),this.internal.write("<< /S /JavaScript /JS (",n,") >>","endobj")}),this.internal.events.subscribe("putCatalog",function(){void 0!==e&&void 0!==r&&this.internal.write("/Names <</JavaScript "+e+" 0 R>>")}),this}}(r.API),function(t){"use strict";var e=function(){return"function"!=typeof PNG||"function"!=typeof i},r=function(e){return e!==t.image_compression.NONE&&n()},n=function(){var t="function"==typeof s;if(!t)throw new Error("requires deflate.js for compression");return t},o=function(e,r,n,o){var i=5,l=d;switch(o){case t.image_compression.FAST:i=3,l=f;break;case t.image_compression.MEDIUM:i=6,l=h;break;case t.image_compression.SLOW:i=9,l=p}e=c(e,r,n,l);var m=new Uint8Array(a(i)),w=u(e),y=new s(i),g=y.append(e),v=y.flush(),b=m.length+g.length+v.length,q=new Uint8Array(b+4);return q.set(m),q.set(g,m.length),q.set(v,m.length+g.length),q[b++]=w>>>24&255,q[b++]=w>>>16&255,q[b++]=w>>>8&255,q[b++]=255&w,t.arrayBufferToBinaryString(q)},a=function(t,e){var r=8,n=Math.LOG2E*Math.log(32768)-8,s=n<<4|r,o=s<<8,i=Math.min(3,(e-1&255)>>1);return o|=i<<6,o|=0,o+=31-o%31,[s,255&o&255]},u=function(t,e){for(var r,n=1,s=65535&n,o=n>>>16&65535,i=t.length,a=0;i>0;){r=i>e?e:i,i-=r;do s+=t[a++],o+=s;while(--r);s%=65521,o%=65521}return(o<<16|s)>>>0},c=function(t,e,r,n){for(var s,o,i,a=t.length/e,u=new Uint8Array(t.length+a),c=w(),l=0;a>l;l++){if(i=l*e,s=t.subarray(i,i+e),n)u.set(n(s,r,o),i+l);else{for(var f=0,d=c.length,h=[];d>f;f++)h[f]=c[f](s,r,o);var p=y(h.concat());u.set(h[p],i+l)}o=s}return u},l=function(t){var e=Array.apply([],t);return e.unshift(0),e},f=function(t,e){var r,n=[],s=0,o=t.length;for(n[0]=1;o>s;s++)r=t[s-e]||0,n[s+1]=t[s]-r+256&255;return n},d=function(t,e,r){var n,s=[],o=0,i=t.length;for(s[0]=2;i>o;o++)n=r&&r[o]||0,s[o+1]=t[o]-n+256&255;return s},h=function(t,e,r){var n,s,o=[],i=0,a=t.length;for(o[0]=3;a>i;i++)n=t[i-e]||0,s=r&&r[i]||0,o[i+1]=t[i]+256-(n+s>>>1)&255;return o},p=function(t,e,r){var n,s,o,i,a=[],u=0,c=t.length;for(a[0]=4;c>u;u++)n=t[u-e]||0,s=r&&r[u]||0,o=r&&r[u-e]||0,i=m(n,s,o),a[u+1]=t[u]-i+256&255;return a},m=function(t,e,r){var n=t+e-r,s=Math.abs(n-t),o=Math.abs(n-e),i=Math.abs(n-r);return o>=s&&i>=s?t:i>=o?e:r},w=function(){return[l,f,d,h,p]},y=function(t){for(var e,r,n,s=0,o=t.length;o>s;)e=g(t[s].slice(1)),(r>e||!r)&&(r=e,n=s),s++;return n},g=function(t){for(var e=0,r=t.length,n=0;r>e;)n+=Math.abs(t[e++]);return n};t.processPNG=function(t,n,s,i){var a,u,c,l,f,d,h=this.color_spaces.DEVICE_RGB,p=this.decode.FLATE_DECODE,m=8;if(this.isArrayBuffer(t)&&(t=new Uint8Array(t)),this.isArrayBufferView(t)){if(e())throw new Error("PNG support requires png.js and zlib.js");if(a=new PNG(t),t=a.imgData,m=a.bits,h=a.colorSpace,l=a.colors,-1!==[4,6].indexOf(a.colorType)){if(8===a.bits)for(var w,y,g=window["Uint"+a.pixelBitlength+"Array"],v=new g(a.decodePixels().buffer),b=v.length,q=new Uint8Array(b*a.colors),x=new Uint8Array(b),k=a.pixelBitlength-a.bits,_=0,A=0;b>_;_++){for(w=v[_],y=0;k>y;)q[A++]=w>>>y&255,y+=a.bits;x[_]=w>>>y&255}if(16===a.bits){for(var w,v=new Uint32Array(a.decodePixels().buffer),b=v.length,q=new Uint8Array(b*(32/a.pixelBitlength)*a.colors),x=new Uint8Array(b*(32/a.pixelBitlength)),C=a.colors>1,_=0,A=0,S=0;b>_;)w=v[_++],q[A++]=w>>>0&255,C&&(q[A++]=w>>>16&255,w=v[_++],q[A++]=w>>>0&255),x[S++]=w>>>16&255;m=8}r(i)?(t=o(q,a.width*a.colors,a.colors,i),d=o(x,a.width,1,i)):(t=q,d=x,p=null)}if(3===a.colorType&&(h=this.color_spaces.INDEXED,f=a.palette,a.transparency.indexed)){for(var E=a.transparency.indexed,z=0,_=0,b=E.length;b>_;++_)z+=E[_];if(z/=255,z===b-1&&-1!==E.indexOf(0))c=[E.indexOf(0)];else if(z!==b){for(var v=a.decodePixels(),x=new Uint8Array(v.length),_=0,b=v.length;b>_;_++)x[_]=E[v[_]];d=o(x,a.width,1)}}return u=p===this.decode.FLATE_DECODE?"/Predictor 15 /Colors "+l+" /BitsPerComponent "+m+" /Columns "+a.width:"/Colors "+l+" /BitsPerComponent "+m+" /Columns "+a.width,(this.isArrayBuffer(t)||this.isArrayBufferView(t))&&(t=this.arrayBufferToBinaryString(t)),(d&&this.isArrayBuffer(d)||this.isArrayBufferView(d))&&(d=this.arrayBufferToBinaryString(d)),this.createImageInfo(t,a.width,a.height,h,m,p,n,s,u,c,f,d)}throw new Error("Unsupported PNG image data, try using JPEG instead.")}}(r.API),function(t){"use strict";t.addSVG=function(t,e,r,n,s){function o(t,e){var r=e.createElement("style");r.type="text/css",r.styleSheet?r.styleSheet.cssText=t:r.appendChild(e.createTextNode(t)),e.getElementsByTagName("head")[0].appendChild(r)}function i(t){var e="childframe",r=t.createElement("iframe");return o(".jsPDF_sillysvg_iframe {display:none;position:absolute;}",t),r.name=e,r.setAttribute("width",0),r.setAttribute("height",0),r.setAttribute("frameborder","0"),r.setAttribute("scrolling","no"),r.setAttribute("seamless","seamless"),r.setAttribute("class","jsPDF_sillysvg_iframe"),t.body.appendChild(r),r}function a(t,e){var r=(e.contentWindow||e.contentDocument).document;return r.write(t),r.close(),r.getElementsByTagName("svg")[0]}function u(t){for(var e=parseFloat(t[1]),r=parseFloat(t[2]),n=[],s=3,o=t.length;o>s;)"c"===t[s]?(n.push([parseFloat(t[s+1]),parseFloat(t[s+2]),parseFloat(t[s+3]),parseFloat(t[s+4]),parseFloat(t[s+5]),parseFloat(t[s+6])]),s+=7):"l"===t[s]?(n.push([parseFloat(t[s+1]),parseFloat(t[s+2])]),s+=3):s+=1;return[e,r,n]}var c;if(e===c||e===c)throw new Error("addSVG needs values for 'x' and 'y'");var l=i(document),f=a(t,l),d=[1,1],h=parseFloat(f.getAttribute("width")),p=parseFloat(f.getAttribute("height"));h&&p&&(n&&s?d=[n/h,s/p]:n?d=[n/h,n/h]:s&&(d=[s/p,s/p]));var m,w,y,g,v=f.childNodes;for(m=0,w=v.length;w>m;m++)y=v[m],y.tagName&&"PATH"===y.tagName.toUpperCase()&&(g=u(y.getAttribute("d").split(" ")),g[0]=g[0]*d[0]+e,g[1]=g[1]*d[1]+r,this.lines.call(this,g[2],g[0],g[1],d));return this}}(r.API),function(t){"use strict";var e=t.getCharWidthsArray=function(t,e){e||(e={});var r,n,s,o=e.widths?e.widths:this.internal.getFont().metadata.Unicode.widths,i=o.fof?o.fof:1,a=e.kerning?e.kerning:this.internal.getFont().metadata.Unicode.kerning,u=a.fof?a.fof:1,c=0,l=o[0]||i,f=[];for(r=0,n=t.length;n>r;r++)s=t.charCodeAt(r),f.push((o[s]||l)/i+(a[s]&&a[s][c]||0)/u),c=s;return f},r=function(t){for(var e=t.length,r=0;e;)e--,r+=t[e];return r},n=t.getStringUnitWidth=function(t,n){return r(e.call(this,t,n))},s=function(t,e,r,n){for(var s=[],o=0,i=t.length,a=0;o!==i&&a+e[o]<r;)a+=e[o],o++;s.push(t.slice(0,o));var u=o;for(a=0;o!==i;)a+e[o]>n&&(s.push(t.slice(u,o)),a=0,u=o),a+=e[o],o++;return u!==o&&s.push(t.slice(u,o)),s},o=function(t,o,i){i||(i={});var a,u,c,l,f,d,h=[],p=[h],m=i.textIndent||0,w=0,y=0,g=t.split(" "),v=e(" ",i)[0];if(d=-1===i.lineIndent?g[0].length+2:i.lineIndent||0){var b=Array(d).join(" "),q=[];g.map(function(t){t=t.split(/\s*\n/),t.length>1?q=q.concat(t.map(function(t,e){return(e&&t.length?"\n":"")+t})):q.push(t[0])}),g=q,d=n(b,i)}for(c=0,l=g.length;l>c;c++){var x=0;if(a=g[c],d&&"\n"==a[0]&&(a=a.substr(1),x=1),u=e(a,i),y=r(u),m+w+y>o||x){if(y>o){for(f=s(a,u,o-(m+w),o),h.push(f.shift()),h=[f.pop()];f.length;)p.push([f.shift()]);y=r(u.slice(a.length-h[0].length))}else h=[a];p.push(h),m=y+d,w=v}else h.push(a),m+=w+y,w=v}if(d)var k=function(t,e){return(e?b:"")+t.join(" ")};else var k=function(t){return t.join(" ")};return p.map(k)};t.splitTextToSize=function(t,e,r){r||(r={});var n,s=r.fontSize||this.internal.getFontSize(),i=function(t){var e={0:1},r={};if(t.widths&&t.kerning)return{widths:t.widths,kerning:t.kerning};var n=this.internal.getFont(t.fontName,t.fontStyle),s="Unicode";return n.metadata[s]?{widths:n.metadata[s].widths||e,kerning:n.metadata[s].kerning||r}:{widths:e,kerning:r}}.call(this,r);n=Array.isArray(t)?t:t.split(/\r?\n/);var a=1*this.internal.scaleFactor*e/s;i.textIndent=r.textIndent?1*r.textIndent*this.internal.scaleFactor/s:0,i.lineIndent=r.lineIndent;var u,c,l=[];for(u=0,c=n.length;c>u;u++)l=l.concat(o(n[u],a,i));return l}}(r.API),function(t){"use strict";var e=function(t){for(var e="0123456789abcdef",r="klmnopqrstuvwxyz",n={},s=0;s<r.length;s++)n[r[s]]=e[s];var o,i,a,u,c,l={},f=1,d=l,h=[],p="",m="",w=t.length-1;for(s=1;s!=w;)c=t[s],s+=1,"'"==c?i?(u=i.join(""),i=o):i=[]:i?i.push(c):"{"==c?(h.push([d,u]),d={},u=o):"}"==c?(a=h.pop(),a[0][a[1]]=d,u=o,d=a[0]):"-"==c?f=-1:u===o?n.hasOwnProperty(c)?(p+=n[c],u=parseInt(p,16)*f,f=1,p=""):p+=c:n.hasOwnProperty(c)?(m+=n[c],d[u]=parseInt(m,16)*f,f=1,u=o,m=""):m+=c;return l},r={codePages:["WinAnsiEncoding"],WinAnsiEncoding:e("{19m8n201n9q201o9r201s9l201t9m201u8m201w9n201x9o201y8o202k8q202l8r202m9p202q8p20aw8k203k8t203t8v203u9v2cq8s212m9t15m8w15n9w2dw9s16k8u16l9u17s9z17x8y17y9y}")},n={Unicode:{Courier:r,"Courier-Bold":r,"Courier-BoldOblique":r,"Courier-Oblique":r,Helvetica:r,"Helvetica-Bold":r,"Helvetica-BoldOblique":r,"Helvetica-Oblique":r,"Times-Roman":r,"Times-Bold":r,"Times-BoldItalic":r,"Times-Italic":r}},s={Unicode:{"Courier-Oblique":e("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"),"Times-BoldItalic":e("{'widths'{k3o2q4ycx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2r202m2n2n3m2o3m2p5n202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5n4l4m4m4m4n4m4o4s4p4m4q4m4r4s4s4y4t2r4u3m4v4m4w3x4x5t4y4s4z4s5k3x5l4s5m4m5n3r5o3x5p4s5q4m5r5t5s4m5t3x5u3x5v2l5w1w5x2l5y3t5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q2l6r3m6s3r6t1w6u1w6v3m6w1w6x4y6y3r6z3m7k3m7l3m7m2r7n2r7o1w7p3r7q2w7r4m7s3m7t2w7u2r7v2n7w1q7x2n7y3t202l3mcl4mal2ram3man3mao3map3mar3mas2lat4uau1uav3maw3way4uaz2lbk2sbl3t'fof'6obo2lbp3tbq3mbr1tbs2lbu1ybv3mbz3mck4m202k3mcm4mcn4mco4mcp4mcq5ycr4mcs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz2w203k6o212m6o2dw2l2cq2l3t3m3u2l17s3x19m3m}'kerning'{cl{4qu5kt5qt5rs17ss5ts}201s{201ss}201t{cks4lscmscnscoscpscls2wu2yu201ts}201x{2wu2yu}2k{201ts}2w{4qx5kx5ou5qx5rs17su5tu}2x{17su5tu5ou}2y{4qx5kx5ou5qx5rs17ss5ts}'fof'-6ofn{17sw5tw5ou5qw5rs}7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qs}3v{17su5tu5os5qs}7p{17su5tu}ck{4qu5kt5qt5rs17ss5ts}4l{4qu5kt5qt5rs17ss5ts}cm{4qu5kt5qt5rs17ss5ts}cn{4qu5kt5qt5rs17ss5ts}co{4qu5kt5qt5rs17ss5ts}cp{4qu5kt5qt5rs17ss5ts}6l{4qu5ou5qw5rt17su5tu}5q{ckuclucmucnucoucpu4lu}5r{ckuclucmucnucoucpu4lu}7q{cksclscmscnscoscps4ls}6p{4qu5ou5qw5rt17sw5tw}ek{4qu5ou5qw5rt17su5tu}el{4qu5ou5qw5rt17su5tu}em{4qu5ou5qw5rt17su5tu}en{4qu5ou5qw5rt17su5tu}eo{4qu5ou5qw5rt17su5tu}ep{4qu5ou5qw5rt17su5tu}es{17ss5ts5qs4qu}et{4qu5ou5qw5rt17sw5tw}eu{4qu5ou5qw5rt17ss5ts}ev{17ss5ts5qs4qu}6z{17sw5tw5ou5qw5rs}fm{17sw5tw5ou5qw5rs}7n{201ts}fo{17sw5tw5ou5qw5rs}fp{17sw5tw5ou5qw5rs}fq{17sw5tw5ou5qw5rs}7r{cksclscmscnscoscps4ls}fs{17sw5tw5ou5qw5rs}ft{17su5tu}fu{17su5tu}fv{17su5tu}fw{17su5tu}fz{cksclscmscnscoscps4ls}}}"),"Helvetica-Bold":e("{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}"),Courier:e("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"),"Courier-BoldOblique":e("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"),"Times-Bold":e("{'widths'{k3q2q5ncx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2l202m2n2n3m2o3m2p6o202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5x4l4s4m4m4n4s4o4s4p4m4q3x4r4y4s4y4t2r4u3m4v4y4w4m4x5y4y4s4z4y5k3x5l4y5m4s5n3r5o4m5p4s5q4s5r6o5s4s5t4s5u4m5v2l5w1w5x2l5y3u5z3m6k2l6l3m6m3r6n2w6o3r6p2w6q2l6r3m6s3r6t1w6u2l6v3r6w1w6x5n6y3r6z3m7k3r7l3r7m2w7n2r7o2l7p3r7q3m7r4s7s3m7t3m7u2w7v2r7w1q7x2r7y3o202l3mcl4sal2lam3man3mao3map3mar3mas2lat4uau1yav3maw3tay4uaz2lbk2sbl3t'fof'6obo2lbp3rbr1tbs2lbu2lbv3mbz3mck4s202k3mcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3rek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3m3u2l17s4s19m3m}'kerning'{cl{4qt5ks5ot5qy5rw17sv5tv}201t{cks4lscmscnscoscpscls4wv}2k{201ts}2w{4qu5ku7mu5os5qx5ru17su5tu}2x{17su5tu5ou5qs}2y{4qv5kv7mu5ot5qz5ru17su5tu}'fof'-6o7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qu}3v{17su5tu5os5qu}fu{17su5tu5ou5qu}7p{17su5tu5ou5qu}ck{4qt5ks5ot5qy5rw17sv5tv}4l{4qt5ks5ot5qy5rw17sv5tv}cm{4qt5ks5ot5qy5rw17sv5tv}cn{4qt5ks5ot5qy5rw17sv5tv}co{4qt5ks5ot5qy5rw17sv5tv}cp{4qt5ks5ot5qy5rw17sv5tv}6l{17st5tt5ou5qu}17s{ckuclucmucnucoucpu4lu4wu}5o{ckuclucmucnucoucpu4lu4wu}5q{ckzclzcmzcnzcozcpz4lz4wu}5r{ckxclxcmxcnxcoxcpx4lx4wu}5t{ckuclucmucnucoucpu4lu4wu}7q{ckuclucmucnucoucpu4lu}6p{17sw5tw5ou5qu}ek{17st5tt5qu}el{17st5tt5ou5qu}em{17st5tt5qu}en{17st5tt5qu}eo{17st5tt5qu}ep{17st5tt5ou5qu}es{17ss5ts5qu}et{17sw5tw5ou5qu}eu{17sw5tw5ou5qu}ev{17ss5ts5qu}6z{17sw5tw5ou5qu5rs}fm{17sw5tw5ou5qu5rs}fn{17sw5tw5ou5qu5rs}fo{17sw5tw5ou5qu5rs}fp{17sw5tw5ou5qu5rs}fq{17sw5tw5ou5qu5rs}7r{cktcltcmtcntcotcpt4lt5os}fs{17sw5tw5ou5qu5rs}ft{17su5tu5ou5qu}7m{5os}fv{17su5tu5ou5qu}fw{17su5tu5ou5qu}fz{cksclscmscnscoscps4ls}}}"),Helvetica:e("{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}"),"Helvetica-BoldOblique":e("{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}"),"Courier-Bold":e("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"),"Times-Italic":e("{'widths'{k3n2q4ycx2l201n3m201o5t201s2l201t2l201u2l201w3r201x3r201y3r2k1t2l2l202m2n2n3m2o3m2p5n202q5t2r1p2s2l2t2l2u3m2v4n2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w4n3x4n3y4n3z3m4k5w4l3x4m3x4n4m4o4s4p3x4q3x4r4s4s4s4t2l4u2w4v4m4w3r4x5n4y4m4z4s5k3x5l4s5m3x5n3m5o3r5p4s5q3x5r5n5s3x5t3r5u3r5v2r5w1w5x2r5y2u5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q1w6r3m6s3m6t1w6u1w6v2w6w1w6x4s6y3m6z3m7k3m7l3m7m2r7n2r7o1w7p3m7q2w7r4m7s2w7t2w7u2r7v2s7w1v7x2s7y3q202l3mcl3xal2ram3man3mao3map3mar3mas2lat4wau1vav3maw4nay4waz2lbk2sbl4n'fof'6obo2lbp3mbq3obr1tbs2lbu1zbv3mbz3mck3x202k3mcm3xcn3xco3xcp3xcq5tcr4mcs3xct3xcu3xcv3xcw2l2m2ucy2lcz2ldl4mdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr4nfs3mft3mfu3mfv3mfw3mfz2w203k6o212m6m2dw2l2cq2l3t3m3u2l17s3r19m3m}'kerning'{cl{5kt4qw}201s{201sw}201t{201tw2wy2yy6q-t}201x{2wy2yy}2k{201tw}2w{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}2x{17ss5ts5os}2y{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}'fof'-6o6t{17ss5ts5qs}7t{5os}3v{5qs}7p{17su5tu5qs}ck{5kt4qw}4l{5kt4qw}cm{5kt4qw}cn{5kt4qw}co{5kt4qw}cp{5kt4qw}6l{4qs5ks5ou5qw5ru17su5tu}17s{2ks}5q{ckvclvcmvcnvcovcpv4lv}5r{ckuclucmucnucoucpu4lu}5t{2ks}6p{4qs5ks5ou5qw5ru17su5tu}ek{4qs5ks5ou5qw5ru17su5tu}el{4qs5ks5ou5qw5ru17su5tu}em{4qs5ks5ou5qw5ru17su5tu}en{4qs5ks5ou5qw5ru17su5tu}eo{4qs5ks5ou5qw5ru17su5tu}ep{4qs5ks5ou5qw5ru17su5tu}es{5ks5qs4qs}et{4qs5ks5ou5qw5ru17su5tu}eu{4qs5ks5qw5ru17su5tu}ev{5ks5qs4qs}ex{17ss5ts5qs}6z{4qv5ks5ou5qw5ru17su5tu}fm{4qv5ks5ou5qw5ru17su5tu}fn{4qv5ks5ou5qw5ru17su5tu}fo{4qv5ks5ou5qw5ru17su5tu}fp{4qv5ks5ou5qw5ru17su5tu}fq{4qv5ks5ou5qw5ru17su5tu}7r{5os}fs{4qv5ks5ou5qw5ru17su5tu}ft{17su5tu5qs}fu{17su5tu5qs}fv{17su5tu5qs}fw{17su5tu5qs}}}"),"Times-Roman":e("{'widths'{k3n2q4ycx2l201n3m201o6o201s2l201t2l201u2l201w2w201x2w201y2w2k1t2l2l202m2n2n3m2o3m2p5n202q6o2r1m2s2l2t2l2u3m2v3s2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v1w3w3s3x3s3y3s3z2w4k5w4l4s4m4m4n4m4o4s4p3x4q3r4r4s4s4s4t2l4u2r4v4s4w3x4x5t4y4s4z4s5k3r5l4s5m4m5n3r5o3x5p4s5q4s5r5y5s4s5t4s5u3x5v2l5w1w5x2l5y2z5z3m6k2l6l2w6m3m6n2w6o3m6p2w6q2l6r3m6s3m6t1w6u1w6v3m6w1w6x4y6y3m6z3m7k3m7l3m7m2l7n2r7o1w7p3m7q3m7r4s7s3m7t3m7u2w7v3k7w1o7x3k7y3q202l3mcl4sal2lam3man3mao3map3mar3mas2lat4wau1vav3maw3say4waz2lbk2sbl3s'fof'6obo2lbp3mbq2xbr1tbs2lbu1zbv3mbz2wck4s202k3mcm4scn4sco4scp4scq5tcr4mcs3xct3xcu3xcv3xcw2l2m2tcy2lcz2ldl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek2wel2wem2wen2weo2wep2weq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr3sfs3mft3mfu3mfv3mfw3mfz3m203k6o212m6m2dw2l2cq2l3t3m3u1w17s4s19m3m}'kerning'{cl{4qs5ku17sw5ou5qy5rw201ss5tw201ws}201s{201ss}201t{ckw4lwcmwcnwcowcpwclw4wu201ts}2k{201ts}2w{4qs5kw5os5qx5ru17sx5tx}2x{17sw5tw5ou5qu}2y{4qs5kw5os5qx5ru17sx5tx}'fof'-6o7t{ckuclucmucnucoucpu4lu5os5rs}3u{17su5tu5qs}3v{17su5tu5qs}7p{17sw5tw5qs}ck{4qs5ku17sw5ou5qy5rw201ss5tw201ws}4l{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cm{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cn{4qs5ku17sw5ou5qy5rw201ss5tw201ws}co{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cp{4qs5ku17sw5ou5qy5rw201ss5tw201ws}6l{17su5tu5os5qw5rs}17s{2ktclvcmvcnvcovcpv4lv4wuckv}5o{ckwclwcmwcnwcowcpw4lw4wu}5q{ckyclycmycnycoycpy4ly4wu5ms}5r{cktcltcmtcntcotcpt4lt4ws}5t{2ktclvcmvcnvcovcpv4lv4wuckv}7q{cksclscmscnscoscps4ls}6p{17su5tu5qw5rs}ek{5qs5rs}el{17su5tu5os5qw5rs}em{17su5tu5os5qs5rs}en{17su5qs5rs}eo{5qs5rs}ep{17su5tu5os5qw5rs}es{5qs}et{17su5tu5qw5rs}eu{17su5tu5qs5rs}ev{5qs}6z{17sv5tv5os5qx5rs}fm{5os5qt5rs}fn{17sv5tv5os5qx5rs}fo{17sv5tv5os5qx5rs}fp{5os5qt5rs}fq{5os5qt5rs}7r{ckuclucmucnucoucpu4lu5os}fs{17sv5tv5os5qx5rs}ft{17ss5ts5qs}fu{17sw5tw5qs}fv{17sw5tw5qs}fw{17ss5ts5qs}fz{ckuclucmucnucoucpu4lu5os5rs}}}"),"Helvetica-Oblique":e("{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}")}};t.events.push(["addFonts",function(t){var e,r,o,i,a,u="Unicode";for(r in t.fonts)t.fonts.hasOwnProperty(r)&&(e=t.fonts[r],o=s[u][e.PostScriptName],o&&(i=e.metadata[u]?e.metadata[u]:e.metadata[u]={},i.widths=o.widths,i.kerning=o.kerning),a=n[u][e.PostScriptName],a&&(i=e.metadata[u]?e.metadata[u]:e.metadata[u]={},i.encoding=a,a.codePages&&a.codePages.length&&(e.encoding=a.codePages[0])))}])}(r.API),function(t){"use strict";t.putTotalPages=function(t){for(var e=new RegExp(t,"g"),r=1;r<=this.internal.getNumberOfPages();r++)for(var n=0;n<this.internal.pages[r].length;n++)this.internal.pages[r][n]=this.internal.pages[r][n].replace(e,this.internal.getNumberOfPages());return this}}(r.API),function(t){"use strict";if(t.URL=t.URL||t.webkitURL,t.Blob&&t.URL)try{return new Blob,void 0}catch(e){}var r=t.BlobBuilder||t.WebKitBlobBuilder||t.MozBlobBuilder||function(t){var e=function(t){return Object.prototype.toString.call(t).match(/^\[object\s(.*)\]$/)[1]},r=function(){this.data=[]},n=function(t,e,r){this.data=t,this.size=t.length,this.type=e,this.encoding=r},s=r.prototype,o=n.prototype,i=t.FileReaderSync,a=function(t){this.code=this[this.name=t]},u="NOT_FOUND_ERR SECURITY_ERR ABORT_ERR NOT_READABLE_ERR ENCODING_ERR NO_MODIFICATION_ALLOWED_ERR INVALID_STATE_ERR SYNTAX_ERR".split(" "),c=u.length,l=t.URL||t.webkitURL||t,f=l.createObjectURL,d=l.revokeObjectURL,h=l,p=t.btoa,m=t.atob,w=t.ArrayBuffer,y=t.Uint8Array;for(n.fake=o.fake=!0;c--;)a.prototype[u[c]]=c+1;return l.createObjectURL||(h=t.URL={}),h.createObjectURL=function(t){var e,r=t.type;return null===r&&(r="application/octet-stream"),t instanceof n?(e="data:"+r,"base64"===t.encoding?e+";base64,"+t.data:"URI"===t.encoding?e+","+decodeURIComponent(t.data):p?e+";base64,"+p(t.data):e+","+encodeURIComponent(t.data)):f?f.call(l,t):void 0},h.revokeObjectURL=function(t){"data:"!==t.substring(0,5)&&d&&d.call(l,t)},s.append=function(t){var r=this.data;if(y&&(t instanceof w||t instanceof y)){for(var s="",o=new y(t),u=0,c=o.length;c>u;u++)s+=String.fromCharCode(o[u]);r.push(s)}else if("Blob"===e(t)||"File"===e(t)){if(!i)throw new a("NOT_READABLE_ERR");var l=new i;r.push(l.readAsBinaryString(t))}else t instanceof n?"base64"===t.encoding&&m?r.push(m(t.data)):"URI"===t.encoding?r.push(decodeURIComponent(t.data)):"raw"===t.encoding&&r.push(t.data):("string"!=typeof t&&(t+=""),r.push(unescape(encodeURIComponent(t))))},s.getBlob=function(t){return arguments.length||(t=null),new n(this.data.join(""),t,"raw")},s.toString=function(){return"[object BlobBuilder]"},o.slice=function(t,e,r){var s=arguments.length;return 3>s&&(r=null),new n(this.data.slice(t,s>1?e:this.data.length),r,this.encoding)
          },o.toString=function(){return"[object Blob]"},o.close=function(){this.size=this.data.length=0},r}(t);t.Blob=function(t,e){var n=e?e.type||"":"",s=new r;if(t)for(var o=0,i=t.length;i>o;o++)s.append(t[o]);return s.getBlob(n)}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content||this);var n=n||"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob&&navigator.msSaveOrOpenBlob.bind(navigator)||function(t){"use strict";if("undefined"==typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var e=t.document,r=function(){return t.URL||t.webkitURL||t},n=e.createElementNS("http://www.w3.org/1999/xhtml","a"),s=!t.externalHost&&"download"in n,o=function(r){var n=e.createEvent("MouseEvents");n.initMouseEvent("click",!0,!1,t,0,0,0,0,0,!1,!1,!1,!1,0,null),r.dispatchEvent(n)},i=t.webkitRequestFileSystem,a=t.requestFileSystem||i||t.mozRequestFileSystem,u=function(e){(t.setImmediate||t.setTimeout)(function(){throw e},0)},c="application/octet-stream",l=0,f=[],d=function(){for(var t=f.length;t--;){var e=f[t];"string"==typeof e?r().revokeObjectURL(e):e.remove()}f.length=0},h=function(t,e,r){e=[].concat(e);for(var n=e.length;n--;){var s=t["on"+e[n]];if("function"==typeof s)try{s.call(t,r||t)}catch(o){u(o)}}},p=function(e,u){var d,p,m,w=this,y=e.type,g=!1,v=function(){var t=r().createObjectURL(e);return f.push(t),t},b=function(){h(w,"writestart progress write writeend".split(" "))},q=function(){(g||!d)&&(d=v(e)),p?p.location.href=d:window.open(d,"_blank"),w.readyState=w.DONE,b()},x=function(t){return function(){return w.readyState!==w.DONE?t.apply(this,arguments):void 0}},k={create:!0,exclusive:!1};return w.readyState=w.INIT,u||(u="download"),s?(d=v(e),n.href=d,n.download=u,o(n),w.readyState=w.DONE,b(),void 0):(t.chrome&&y&&y!==c&&(m=e.slice||e.webkitSlice,e=m.call(e,0,e.size,c),g=!0),i&&"download"!==u&&(u+=".download"),(y===c||i)&&(p=t),a?(l+=e.size,a(t.TEMPORARY,l,x(function(t){t.root.getDirectory("saved",k,x(function(t){var r=function(){t.getFile(u,k,x(function(t){t.createWriter(x(function(r){r.onwriteend=function(e){p.location.href=t.toURL(),f.push(t),w.readyState=w.DONE,h(w,"writeend",e)},r.onerror=function(){var t=r.error;t.code!==t.ABORT_ERR&&q()},"writestart progress write abort".split(" ").forEach(function(t){r["on"+t]=w["on"+t]}),r.write(e),w.abort=function(){r.abort(),w.readyState=w.DONE},w.readyState=w.WRITING}),q)}),q)};t.getFile(u,{create:!1},x(function(t){t.remove(),r()}),x(function(t){t.code===t.NOT_FOUND_ERR?r():q()}))}),q)}),q),void 0):(q(),void 0))},m=p.prototype,w=function(t,e){return new p(t,e)};return m.abort=function(){var t=this;t.readyState=t.DONE,h(t,"abort")},m.readyState=m.INIT=0,m.WRITING=1,m.DONE=2,m.error=m.onwritestart=m.onprogress=m.onwrite=m.onabort=m.onerror=m.onwriteend=null,t.addEventListener("unload",d,!1),w.unload=function(){d(),t.removeEventListener("unload",d,!1)},w}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);"undefined"!=typeof module&&null!==module?module.exports=n:"undefined"!=typeof define&&null!==define&&null!=define.amd&&define([],function(){return n}),void function(t,e){"object"==typeof module?module.exports=e():t.adler32cs=e()}(r,function(){var t="function"==typeof ArrayBuffer&&"function"==typeof Uint8Array,e=null,r=function(){if(!t)return function(){return!1};try{var r=require("buffer");"function"==typeof r.Buffer&&(e=r.Buffer)}catch(n){}return function(t){return t instanceof ArrayBuffer||null!==e&&t instanceof e}}(),n=function(){return null!==e?function(t){return new e(t,"utf8").toString("binary")}:function(t){return unescape(encodeURIComponent(t))}}(),s=65521,o=function(t,e){for(var r=65535&t,n=t>>>16,o=0,i=e.length;i>o;o++)r=(r+(255&e.charCodeAt(o)))%s,n=(n+r)%s;return(n<<16|r)>>>0},i=function(t,e){for(var r=65535&t,n=t>>>16,o=0,i=e.length;i>o;o++)r=(r+e[o])%s,n=(n+r)%s;return(n<<16|r)>>>0},a={},u=a.Adler32=function(){var e=function(t){if(!(this instanceof e))throw new TypeError("Constructor cannot called be as a function.");if(!isFinite(t=null==t?1:+t))throw new Error("First arguments needs to be a finite number.");this.checksum=t>>>0},s=e.prototype={};return s.constructor=e,e.from=function(t){return t.prototype=s,t}(function(t){if(!(this instanceof e))throw new TypeError("Constructor cannot called be as a function.");if(null==t)throw new Error("First argument needs to be a string.");this.checksum=o(1,t.toString())}),e.fromUtf8=function(t){return t.prototype=s,t}(function(t){if(!(this instanceof e))throw new TypeError("Constructor cannot called be as a function.");if(null==t)throw new Error("First argument needs to be a string.");var r=n(t.toString());this.checksum=o(1,r)}),t&&(e.fromBuffer=function(t){return t.prototype=s,t}(function(t){if(!(this instanceof e))throw new TypeError("Constructor cannot called be as a function.");if(!r(t))throw new Error("First argument needs to be ArrayBuffer.");var n=new Uint8Array(t);return this.checksum=i(1,n)})),s.update=function(t){if(null==t)throw new Error("First argument needs to be a string.");return t=t.toString(),this.checksum=o(this.checksum,t)},s.updateUtf8=function(t){if(null==t)throw new Error("First argument needs to be a string.");var e=n(t.toString());return this.checksum=o(this.checksum,e)},t&&(s.updateBuffer=function(t){if(!r(t))throw new Error("First argument needs to be ArrayBuffer.");var e=new Uint8Array(t);return this.checksum=i(this.checksum,e)}),s.clone=function(){return new u(this.checksum)},e}();return a.from=function(t){if(null==t)throw new Error("First argument needs to be a string.");return o(1,t.toString())},a.fromUtf8=function(t){if(null==t)throw new Error("First argument needs to be a string.");var e=n(t.toString());return o(1,e)},t&&(a.fromBuffer=function(t){if(!r(t))throw new Error("First argument need to be ArrayBuffer.");var e=new Uint8Array(t);return i(1,e)}),a});var s=function(){function t(){function t(t){var e,r,s,o,a,u,c=n.dyn_tree,l=n.stat_desc.static_tree,f=n.stat_desc.extra_bits,h=n.stat_desc.extra_base,p=n.stat_desc.max_length,m=0;for(o=0;i>=o;o++)t.bl_count[o]=0;for(c[2*t.heap[t.heap_max]+1]=0,e=t.heap_max+1;d>e;e++)r=t.heap[e],o=c[2*c[2*r+1]+1]+1,o>p&&(o=p,m++),c[2*r+1]=o,r>n.max_code||(t.bl_count[o]++,a=0,r>=h&&(a=f[r-h]),u=c[2*r],t.opt_len+=u*(o+a),l&&(t.static_len+=u*(l[2*r+1]+a)));if(0!==m){do{for(o=p-1;0===t.bl_count[o];)o--;t.bl_count[o]--,t.bl_count[o+1]+=2,t.bl_count[p]--,m-=2}while(m>0);for(o=p;0!==o;o--)for(r=t.bl_count[o];0!==r;)s=t.heap[--e],s>n.max_code||(c[2*s+1]!=o&&(t.opt_len+=(o-c[2*s+1])*c[2*s],c[2*s+1]=o),r--)}}function e(t,e){var r=0;do r|=1&t,t>>>=1,r<<=1;while(--e>0);return r>>>1}function r(t,r,n){var s,o,a,u=[],c=0;for(s=1;i>=s;s++)u[s]=c=c+n[s-1]<<1;for(o=0;r>=o;o++)a=t[2*o+1],0!==a&&(t[2*o]=e(u[a]++,a))}var n=this;n.build_tree=function(e){var s,o,i,a=n.dyn_tree,u=n.stat_desc.static_tree,c=n.stat_desc.elems,l=-1;for(e.heap_len=0,e.heap_max=d,s=0;c>s;s++)0!==a[2*s]?(e.heap[++e.heap_len]=l=s,e.depth[s]=0):a[2*s+1]=0;for(;e.heap_len<2;)i=e.heap[++e.heap_len]=2>l?++l:0,a[2*i]=1,e.depth[i]=0,e.opt_len--,u&&(e.static_len-=u[2*i+1]);for(n.max_code=l,s=Math.floor(e.heap_len/2);s>=1;s--)e.pqdownheap(a,s);i=c;do s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],e.pqdownheap(a,1),o=e.heap[1],e.heap[--e.heap_max]=s,e.heap[--e.heap_max]=o,a[2*i]=a[2*s]+a[2*o],e.depth[i]=Math.max(e.depth[s],e.depth[o])+1,a[2*s+1]=a[2*o+1]=i,e.heap[1]=i++,e.pqdownheap(a,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],t(e),r(a,n.max_code,e.bl_count)}}function e(t,e,r,n,s){var o=this;o.static_tree=t,o.extra_bits=e,o.extra_base=r,o.elems=n,o.max_length=s}function r(t,e,r,n,s){var o=this;o.good_length=t,o.max_lazy=e,o.nice_length=r,o.max_chain=n,o.func=s}function n(t,e,r,n){var s=t[2*e],o=t[2*r];return o>s||s==o&&n[e]<=n[r]}function s(){function r(){var t;for(Ie=2*Ce,Be[Pe-1]=0,t=0;Pe-1>t;t++)Be[t]=0;We=L[Xe].max_lazy,Ke=L[Xe].good_length,Qe=L[Xe].nice_length,Ve=L[Xe].max_chain,Me=0,Fe=0,Ge=0,Le=Je=Z-1,Ne=0,Oe=0}function s(){var t;for(t=0;f>t;t++)$e[2*t]=0;for(t=0;a>t;t++)Ze[2*t]=0;for(t=0;u>t;t++)tr[2*t]=0;$e[2*h]=1,er.opt_len=er.static_len=0,ar=cr=0}function o(){rr.dyn_tree=$e,rr.stat_desc=e.static_l_desc,nr.dyn_tree=Ze,nr.stat_desc=e.static_d_desc,sr.dyn_tree=tr,sr.stat_desc=e.static_bl_desc,fr=0,dr=0,lr=8,s()}function i(t,e){var r,n,s=-1,o=t[1],i=0,a=7,u=4;for(0===o&&(a=138,u=3),t[2*(e+1)+1]=65535,r=0;e>=r;r++)n=o,o=t[2*(r+1)+1],++i<a&&n==o||(u>i?tr[2*n]+=i:0!==n?(n!=s&&tr[2*n]++,tr[2*m]++):10>=i?tr[2*w]++:tr[2*y]++,i=0,s=n,0===o?(a=138,u=3):n==o?(a=6,u=3):(a=7,u=4))}function c(){var e;for(i($e,rr.max_code),i(Ze,nr.max_code),sr.build_tree(er),e=u-1;e>=3&&0===tr[2*t.bl_order[e]+1];e--);return er.opt_len+=3*(e+1)+5+5+4,e}function d(t){er.pending_buf[er.pending++]=t}function p(t){d(255&t),d(t>>>8&255)}function O(t){d(t>>8&255),d(255&t&255)}function re(t,e){var r,n=e;dr>g-n?(r=t,fr|=r<<dr&65535,p(fr),fr=r>>>g-dr,dr+=n-g):(fr|=t<<dr&65535,dr+=n)}function ne(t,e){var r=2*t;re(65535&e[r],65535&e[r+1])}function se(t,e){var r,n,s=-1,o=t[1],i=0,a=7,u=4;for(0===o&&(a=138,u=3),r=0;e>=r;r++)if(n=o,o=t[2*(r+1)+1],!(++i<a&&n==o)){if(u>i){do ne(n,tr);while(0!==--i)}else 0!==n?(n!=s&&(ne(n,tr),i--),ne(m,tr),re(i-3,2)):10>=i?(ne(w,tr),re(i-3,3)):(ne(y,tr),re(i-11,7));i=0,s=n,0===o?(a=138,u=3):n==o?(a=6,u=3):(a=7,u=4)}}function oe(e,r,n){var s;for(re(e-257,5),re(r-1,5),re(n-4,4),s=0;n>s;s++)re(tr[2*t.bl_order[s]+1],3);se($e,e-1),se(Ze,r-1)}function ie(){16==dr?(p(fr),fr=0,dr=0):dr>=8&&(d(255&fr),fr>>>=8,dr-=8)}function ae(){re(Q<<1,3),ne(h,e.static_ltree),ie(),9>1+lr+10-dr&&(re(Q<<1,3),ne(h,e.static_ltree),ie()),lr=7}function ue(e,r){var n,s,o;if(er.pending_buf[ur+2*ar]=e>>>8&255,er.pending_buf[ur+2*ar+1]=255&e,er.pending_buf[or+ar]=255&r,ar++,0===e?$e[2*r]++:(cr++,e--,$e[2*(t._length_code[r]+l+1)]++,Ze[2*t.d_code(e)]++),0===(8191&ar)&&Xe>2){for(n=8*ar,s=Me-Fe,o=0;a>o;o++)n+=Ze[2*o]*(5+t.extra_dbits[o]);if(n>>>=3,cr<Math.floor(ar/2)&&n<Math.floor(s/2))return!0}return ar==ir-1}function ce(e,r){var n,s,o,i,a=0;if(0!==ar)do n=er.pending_buf[ur+2*a]<<8&65280|255&er.pending_buf[ur+2*a+1],s=255&er.pending_buf[or+a],a++,0===n?ne(s,e):(o=t._length_code[s],ne(o+l+1,e),i=t.extra_lbits[o],0!==i&&(s-=t.base_length[o],re(s,i)),n--,o=t.d_code(n),ne(o,r),i=t.extra_dbits[o],0!==i&&(n-=t.base_dist[o],re(n,i)));while(ar>a);ne(h,e),lr=e[2*h+1]}function le(){dr>8?p(fr):dr>0&&d(255&fr),fr=0,dr=0}function fe(t,e,r){le(),lr=8,r&&(p(e),p(~e)),er.pending_buf.set(ze.subarray(t,t+e),er.pending),er.pending+=e}function de(t,e,r){re((K<<1)+(r?1:0),3),fe(t,e,!0)}function he(t,r,n){var o,i,a=0;Xe>0?(rr.build_tree(er),nr.build_tree(er),a=c(),o=er.opt_len+3+7>>>3,i=er.static_len+3+7>>>3,o>=i&&(o=i)):o=i=r+5,o>=r+4&&-1!=t?de(t,r,n):i==o?(re((Q<<1)+(n?1:0),3),ce(e.static_ltree,e.static_dtree)):(re(($<<1)+(n?1:0),3),oe(rr.max_code+1,nr.max_code+1,a+1),ce($e,Ze)),s(),n&&le()}function pe(t){he(Fe>=0?Fe:-1,Me-Fe,t),Fe=Me,qe.flush_pending()}function me(){var t,e,r,n;do{if(n=Ie-Ge-Me,0===n&&0===Me&&0===Ge)n=Ce;else if(-1==n)n--;else if(Me>=Ce+Ce-ee){ze.set(ze.subarray(Ce,Ce+Ce),0),He-=Ce,Me-=Ce,Fe-=Ce,t=Pe,r=t;do e=65535&Be[--r],Be[r]=e>=Ce?e-Ce:0;while(0!==--t);t=Ce,r=t;do e=65535&Te[--r],Te[r]=e>=Ce?e-Ce:0;while(0!==--t);n+=Ce}if(0===qe.avail_in)return;t=qe.read_buf(ze,Me+Ge,n),Ge+=t,Ge>=Z&&(Oe=255&ze[Me],Oe=(Oe<<Ue^255&ze[Me+1])&De)}while(ee>Ge&&0!==qe.avail_in)}function we(t){var e,r=65535;for(r>ke-5&&(r=ke-5);;){if(1>=Ge){if(me(),0===Ge&&t==k)return N;if(0===Ge)break}if(Me+=Ge,Ge=0,e=Fe+r,(0===Me||Me>=e)&&(Ge=Me-e,Me=e,pe(!1),0===qe.avail_out))return N;if(Me-Fe>=Ce-ee&&(pe(!1),0===qe.avail_out))return N}return pe(t==C),0===qe.avail_out?t==C?H:N:t==C?G:M}function ye(t){var e,r,n=Ve,s=Me,o=Je,i=Me>Ce-ee?Me-(Ce-ee):0,a=Qe,u=Ee,c=Me+te,l=ze[s+o-1],f=ze[s+o];Je>=Ke&&(n>>=2),a>Ge&&(a=Ge);do if(e=t,ze[e+o]==f&&ze[e+o-1]==l&&ze[e]==ze[s]&&ze[++e]==ze[s+1]){s+=2,e++;do;while(ze[++s]==ze[++e]&&ze[++s]==ze[++e]&&ze[++s]==ze[++e]&&ze[++s]==ze[++e]&&ze[++s]==ze[++e]&&ze[++s]==ze[++e]&&ze[++s]==ze[++e]&&ze[++s]==ze[++e]&&c>s);if(r=te-(c-s),s=c-te,r>o){if(He=t,o=r,r>=a)break;l=ze[s+o-1],f=ze[s+o]}}while((t=65535&Te[t&u])>i&&0!==--n);return Ge>=o?o:Ge}function ge(t){for(var e,r=0;;){if(ee>Ge){if(me(),ee>Ge&&t==k)return N;if(0===Ge)break}if(Ge>=Z&&(Oe=(Oe<<Ue^255&ze[Me+(Z-1)])&De,r=65535&Be[Oe],Te[Me&Ee]=Be[Oe],Be[Oe]=Me),0!==r&&Ce-ee>=(Me-r&65535)&&Ye!=q&&(Le=ye(r)),Le>=Z)if(e=ue(Me-He,Le-Z),Ge-=Le,We>=Le&&Ge>=Z){Le--;do Me++,Oe=(Oe<<Ue^255&ze[Me+(Z-1)])&De,r=65535&Be[Oe],Te[Me&Ee]=Be[Oe],Be[Oe]=Me;while(0!==--Le);Me++}else Me+=Le,Le=0,Oe=255&ze[Me],Oe=(Oe<<Ue^255&ze[Me+1])&De;else e=ue(0,255&ze[Me]),Ge--,Me++;if(e&&(pe(!1),0===qe.avail_out))return N}return pe(t==C),0===qe.avail_out?t==C?H:N:t==C?G:M}function ve(t){for(var e,r,n=0;;){if(ee>Ge){if(me(),ee>Ge&&t==k)return N;if(0===Ge)break}if(Ge>=Z&&(Oe=(Oe<<Ue^255&ze[Me+(Z-1)])&De,n=65535&Be[Oe],Te[Me&Ee]=Be[Oe],Be[Oe]=Me),Je=Le,je=He,Le=Z-1,0!==n&&We>Je&&Ce-ee>=(Me-n&65535)&&(Ye!=q&&(Le=ye(n)),5>=Le&&(Ye==b||Le==Z&&Me-He>4096)&&(Le=Z-1)),Je>=Z&&Je>=Le){r=Me+Ge-Z,e=ue(Me-1-je,Je-Z),Ge-=Je-1,Je-=2;do++Me<=r&&(Oe=(Oe<<Ue^255&ze[Me+(Z-1)])&De,n=65535&Be[Oe],Te[Me&Ee]=Be[Oe],Be[Oe]=Me);while(0!==--Je);if(Ne=0,Le=Z-1,Me++,e&&(pe(!1),0===qe.avail_out))return N}else if(0!==Ne){if(e=ue(0,255&ze[Me-1]),e&&pe(!1),Me++,Ge--,0===qe.avail_out)return N}else Ne=1,Me++,Ge--}return 0!==Ne&&(e=ue(0,255&ze[Me-1]),Ne=0),pe(t==C),0===qe.avail_out?t==C?H:N:t==C?G:M}function be(t){return t.total_in=t.total_out=0,t.msg=null,er.pending=0,er.pending_out=0,xe=W,Ae=k,o(),r(),S}var qe,xe,ke,_e,Ae,Ce,Se,Ee,ze,Ie,Te,Be,Oe,Pe,Re,De,Ue,Fe,Le,je,Ne,Me,He,Ge,Je,Ve,We,Xe,Ye,Ke,Qe,$e,Ze,tr,er=this,rr=new t,nr=new t,sr=new t;er.depth=[];var or,ir,ar,ur,cr,lr,fr,dr;er.bl_count=[],er.heap=[],$e=[],Ze=[],tr=[],er.pqdownheap=function(t,e){for(var r=er.heap,s=r[e],o=e<<1;o<=er.heap_len&&(o<er.heap_len&&n(t,r[o+1],r[o],er.depth)&&o++,!n(t,s,r[o],er.depth));)r[e]=r[o],e=o,o<<=1;r[e]=s},er.deflateInit=function(t,e,r,n,s,o){return n||(n=Y),s||(s=R),o||(o=x),t.msg=null,e==v&&(e=6),1>s||s>P||n!=Y||9>r||r>15||0>e||e>9||0>o||o>q?I:(t.dstate=er,Se=r,Ce=1<<Se,Ee=Ce-1,Re=s+7,Pe=1<<Re,De=Pe-1,Ue=Math.floor((Re+Z-1)/Z),ze=new Uint8Array(2*Ce),Te=[],Be=[],ir=1<<s+6,er.pending_buf=new Uint8Array(4*ir),ke=4*ir,ur=Math.floor(ir/2),or=3*ir,Xe=e,Ye=o,_e=255&n,be(t))},er.deflateEnd=function(){return xe!=V&&xe!=W&&xe!=X?I:(er.pending_buf=null,Be=null,Te=null,ze=null,er.dstate=null,xe==W?T:S)},er.deflateParams=function(t,e,r){var n=S;return e==v&&(e=6),0>e||e>9||0>r||r>q?I:(L[Xe].func!=L[e].func&&0!==t.total_in&&(n=t.deflate(_)),Xe!=e&&(Xe=e,We=L[Xe].max_lazy,Ke=L[Xe].good_length,Qe=L[Xe].nice_length,Ve=L[Xe].max_chain),Ye=r,n)},er.deflateSetDictionary=function(t,e,r){var n,s=r,o=0;if(!e||xe!=V)return I;if(Z>s)return S;for(s>Ce-ee&&(s=Ce-ee,o=r-s),ze.set(e.subarray(o,o+s),0),Me=s,Fe=s,Oe=255&ze[0],Oe=(Oe<<Ue^255&ze[1])&De,n=0;s-Z>=n;n++)Oe=(Oe<<Ue^255&ze[n+(Z-1)])&De,Te[n&Ee]=Be[Oe],Be[Oe]=n;return S},er.deflate=function(t,e){var r,n,s,o,i;if(e>C||0>e)return I;if(!t.next_out||!t.next_in&&0!==t.avail_in||xe==X&&e!=C)return t.msg=j[z-I],I;if(0===t.avail_out)return t.msg=j[z-B],B;if(qe=t,o=Ae,Ae=e,xe==V&&(n=Y+(Se-8<<4)<<8,s=(Xe-1&255)>>1,s>3&&(s=3),n|=s<<6,0!==Me&&(n|=J),n+=31-n%31,xe=W,O(n)),0!==er.pending){if(qe.flush_pending(),0===qe.avail_out)return Ae=-1,S}else if(0===qe.avail_in&&o>=e&&e!=C)return qe.msg=j[z-B],B;if(xe==X&&0!==qe.avail_in)return t.msg=j[z-B],B;if(0!==qe.avail_in||0!==Ge||e!=k&&xe!=X){switch(i=-1,L[Xe].func){case D:i=we(e);break;case U:i=ge(e);break;case F:i=ve(e)}if((i==H||i==G)&&(xe=X),i==N||i==H)return 0===qe.avail_out&&(Ae=-1),S;if(i==M){if(e==_)ae();else if(de(0,0,!1),e==A)for(r=0;Pe>r;r++)Be[r]=0;if(qe.flush_pending(),0===qe.avail_out)return Ae=-1,S}}return e!=C?S:E}}function o(){var t=this;t.next_in_index=0,t.next_out_index=0,t.avail_in=0,t.total_in=0,t.avail_out=0,t.total_out=0}var i=15,a=30,u=19,c=29,l=256,f=l+1+c,d=2*f+1,h=256,p=7,m=16,w=17,y=18,g=16,v=-1,b=1,q=2,x=0,k=0,_=1,A=3,C=4,S=0,E=1,z=2,I=-2,T=-3,B=-5,O=[0,1,2,3,4,4,5,5,6,6,6,6,7,7,7,7,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,0,0,16,17,18,18,19,19,20,20,20,20,21,21,21,21,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29];t._length_code=[0,1,2,3,4,5,6,7,8,8,9,9,10,10,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28],t.base_length=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],t.base_dist=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],t.d_code=function(t){return 256>t?O[t]:O[256+(t>>>7)]},t.extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],t.extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],t.extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],t.bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],e.static_ltree=[12,8,140,8,76,8,204,8,44,8,172,8,108,8,236,8,28,8,156,8,92,8,220,8,60,8,188,8,124,8,252,8,2,8,130,8,66,8,194,8,34,8,162,8,98,8,226,8,18,8,146,8,82,8,210,8,50,8,178,8,114,8,242,8,10,8,138,8,74,8,202,8,42,8,170,8,106,8,234,8,26,8,154,8,90,8,218,8,58,8,186,8,122,8,250,8,6,8,134,8,70,8,198,8,38,8,166,8,102,8,230,8,22,8,150,8,86,8,214,8,54,8,182,8,118,8,246,8,14,8,142,8,78,8,206,8,46,8,174,8,110,8,238,8,30,8,158,8,94,8,222,8,62,8,190,8,126,8,254,8,1,8,129,8,65,8,193,8,33,8,161,8,97,8,225,8,17,8,145,8,81,8,209,8,49,8,177,8,113,8,241,8,9,8,137,8,73,8,201,8,41,8,169,8,105,8,233,8,25,8,153,8,89,8,217,8,57,8,185,8,121,8,249,8,5,8,133,8,69,8,197,8,37,8,165,8,101,8,229,8,21,8,149,8,85,8,213,8,53,8,181,8,117,8,245,8,13,8,141,8,77,8,205,8,45,8,173,8,109,8,237,8,29,8,157,8,93,8,221,8,61,8,189,8,125,8,253,8,19,9,275,9,147,9,403,9,83,9,339,9,211,9,467,9,51,9,307,9,179,9,435,9,115,9,371,9,243,9,499,9,11,9,267,9,139,9,395,9,75,9,331,9,203,9,459,9,43,9,299,9,171,9,427,9,107,9,363,9,235,9,491,9,27,9,283,9,155,9,411,9,91,9,347,9,219,9,475,9,59,9,315,9,187,9,443,9,123,9,379,9,251,9,507,9,7,9,263,9,135,9,391,9,71,9,327,9,199,9,455,9,39,9,295,9,167,9,423,9,103,9,359,9,231,9,487,9,23,9,279,9,151,9,407,9,87,9,343,9,215,9,471,9,55,9,311,9,183,9,439,9,119,9,375,9,247,9,503,9,15,9,271,9,143,9,399,9,79,9,335,9,207,9,463,9,47,9,303,9,175,9,431,9,111,9,367,9,239,9,495,9,31,9,287,9,159,9,415,9,95,9,351,9,223,9,479,9,63,9,319,9,191,9,447,9,127,9,383,9,255,9,511,9,0,7,64,7,32,7,96,7,16,7,80,7,48,7,112,7,8,7,72,7,40,7,104,7,24,7,88,7,56,7,120,7,4,7,68,7,36,7,100,7,20,7,84,7,52,7,116,7,3,8,131,8,67,8,195,8,35,8,163,8,99,8,227,8],e.static_dtree=[0,5,16,5,8,5,24,5,4,5,20,5,12,5,28,5,2,5,18,5,10,5,26,5,6,5,22,5,14,5,30,5,1,5,17,5,9,5,25,5,5,5,21,5,13,5,29,5,3,5,19,5,11,5,27,5,7,5,23,5],e.static_l_desc=new e(e.static_ltree,t.extra_lbits,l+1,f,i),e.static_d_desc=new e(e.static_dtree,t.extra_dbits,0,a,i),e.static_bl_desc=new e(null,t.extra_blbits,0,u,p);var P=9,R=8,D=0,U=1,F=2,L=[new r(0,0,0,0,D),new r(4,4,8,4,U),new r(4,5,16,8,U),new r(4,6,32,32,U),new r(4,4,16,16,F),new r(8,16,32,32,F),new r(8,16,128,128,F),new r(8,32,128,256,F),new r(32,128,258,1024,F),new r(32,258,258,4096,F)],j=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],N=0,M=1,H=2,G=3,J=32,V=42,W=113,X=666,Y=8,K=0,Q=1,$=2,Z=3,te=258,ee=te+Z+1;return o.prototype={deflateInit:function(t,e){var r=this;return r.dstate=new s,e||(e=i),r.dstate.deflateInit(r,t,e)},deflate:function(t){var e=this;return e.dstate?e.dstate.deflate(e,t):I},deflateEnd:function(){var t=this;if(!t.dstate)return I;var e=t.dstate.deflateEnd();return t.dstate=null,e},deflateParams:function(t,e){var r=this;return r.dstate?r.dstate.deflateParams(r,t,e):I},deflateSetDictionary:function(t,e){var r=this;return r.dstate?r.dstate.deflateSetDictionary(r,t,e):I},read_buf:function(t,e,r){var n=this,s=n.avail_in;return s>r&&(s=r),0===s?0:(n.avail_in-=s,t.set(n.next_in.subarray(n.next_in_index,n.next_in_index+s),e),n.next_in_index+=s,n.total_in+=s,s)},flush_pending:function(){var t=this,e=t.dstate.pending;e>t.avail_out&&(e=t.avail_out),0!==e&&(t.next_out.set(t.dstate.pending_buf.subarray(t.dstate.pending_out,t.dstate.pending_out+e),t.next_out_index),t.next_out_index+=e,t.dstate.pending_out+=e,t.total_out+=e,t.avail_out-=e,t.dstate.pending-=e,0===t.dstate.pending&&(t.dstate.pending_out=0))}},function(t){var e=this,r=new o,n=512,s=k,i=new Uint8Array(n);"undefined"==typeof t&&(t=v),r.deflateInit(t),r.next_out=i,e.append=function(t,e){var o,a,u=[],c=0,l=0,f=0;if(t.length){r.next_in_index=0,r.next_in=t,r.avail_in=t.length;do{if(r.next_out_index=0,r.avail_out=n,o=r.deflate(s),o!=S)throw"deflating: "+r.msg;r.next_out_index&&(r.next_out_index==n?u.push(new Uint8Array(i)):u.push(new Uint8Array(i.subarray(0,r.next_out_index)))),f+=r.next_out_index,e&&r.next_in_index>0&&r.next_in_index!=c&&(e(r.next_in_index),c=r.next_in_index)}while(r.avail_in>0||0===r.avail_out);return a=new Uint8Array(f),u.forEach(function(t){a.set(t,l),l+=t.length}),a}},e.flush=function(){var t,e,s=[],o=0,a=0;do{if(r.next_out_index=0,r.avail_out=n,t=r.deflate(C),t!=E&&t!=S)throw"deflating: "+r.msg;n-r.avail_out>0&&s.push(new Uint8Array(i.subarray(0,r.next_out_index))),a+=r.next_out_index}while(r.avail_in>0||0===r.avail_out);return r.deflateEnd(),e=new Uint8Array(a),s.forEach(function(t){e.set(t,o),o+=t.length}),e}}}(this);!function(t){var e;e=function(){function e(t){var e,r,n,s,o,i,a,u,c,l,f,d,h,p,m;for(this.data=t,this.pos=8,this.palette=[],this.imgData=[],this.transparency={},this.animation=null,this.text={},i=null;;){switch(e=this.readUInt32(),l=function(){var t,e;for(e=[],a=t=0;4>t;a=++t)e.push(String.fromCharCode(this.data[this.pos++]));return e}.call(this).join("")){case"IHDR":this.width=this.readUInt32(),this.height=this.readUInt32(),this.bits=this.data[this.pos++],this.colorType=this.data[this.pos++],this.compressionMethod=this.data[this.pos++],this.filterMethod=this.data[this.pos++],this.interlaceMethod=this.data[this.pos++];break;case"acTL":this.animation={numFrames:this.readUInt32(),numPlays:this.readUInt32()||1/0,frames:[]};break;case"PLTE":this.palette=this.read(e);break;case"fcTL":i&&this.animation.frames.push(i),this.pos+=4,i={width:this.readUInt32(),height:this.readUInt32(),xOffset:this.readUInt32(),yOffset:this.readUInt32()},o=this.readUInt16(),s=this.readUInt16()||100,i.delay=1e3*o/s,i.disposeOp=this.data[this.pos++],i.blendOp=this.data[this.pos++],i.data=[];break;case"IDAT":case"fdAT":for("fdAT"===l&&(this.pos+=4,e-=4),t=(null!=i?i.data:void 0)||this.imgData,a=h=0;e>=0?e>h:h>e;a=e>=0?++h:--h)t.push(this.data[this.pos++]);break;case"tRNS":switch(this.transparency={},this.colorType){case 3:if(n=this.palette.length/3,this.transparency.indexed=this.read(e),this.transparency.indexed.length>n)throw new Error("More transparent colors than palette size");if(f=n-this.transparency.indexed.length,f>0)for(a=p=0;f>=0?f>p:p>f;a=f>=0?++p:--p)this.transparency.indexed.push(255);break;case 0:this.transparency.grayscale=this.read(e)[0];break;case 2:this.transparency.rgb=this.read(e)}break;case"tEXt":d=this.read(e),u=d.indexOf(0),c=String.fromCharCode.apply(String,d.slice(0,u)),this.text[c]=String.fromCharCode.apply(String,d.slice(u+1));break;case"IEND":return i&&this.animation.frames.push(i),this.colors=function(){switch(this.colorType){case 0:case 3:case 4:return 1;case 2:case 6:return 3}}.call(this),this.hasAlphaChannel=4===(m=this.colorType)||6===m,r=this.colors+(this.hasAlphaChannel?1:0),this.pixelBitlength=this.bits*r,this.colorSpace=function(){switch(this.colors){case 1:return"DeviceGray";case 3:return"DeviceRGB"}}.call(this),this.imgData=new Uint8Array(this.imgData),void 0;default:this.pos+=e}if(this.pos+=4,this.pos>this.data.length)throw new Error("Incomplete or corrupt PNG file")}}var r,n,s,o,a,u,c,l;e.load=function(t,r,n){var s;return"function"==typeof r&&(n=r),s=new XMLHttpRequest,s.open("GET",t,!0),s.responseType="arraybuffer",s.onload=function(){var t,o;return t=new Uint8Array(s.response||s.mozResponseArrayBuffer),o=new e(t),"function"==typeof(null!=r?r.getContext:void 0)&&o.render(r),"function"==typeof n?n(o):void 0},s.send(null)},o=0,s=1,a=2,n=0,r=1,e.prototype.read=function(t){var e,r,n;for(n=[],e=r=0;t>=0?t>r:r>t;e=t>=0?++r:--r)n.push(this.data[this.pos++]);return n},e.prototype.readUInt32=function(){var t,e,r,n;return t=this.data[this.pos++]<<24,e=this.data[this.pos++]<<16,r=this.data[this.pos++]<<8,n=this.data[this.pos++],t|e|r|n},e.prototype.readUInt16=function(){var t,e;return t=this.data[this.pos++]<<8,e=this.data[this.pos++],t|e},e.prototype.decodePixels=function(t){var e,r,n,s,o,a,u,c,l,f,d,h,p,m,w,y,g,v,b,q,x,k,_;if(null==t&&(t=this.imgData),0===t.length)return new Uint8Array(0);for(t=new i(t),t=t.getBytes(),h=this.pixelBitlength/8,y=h*this.width,p=new Uint8Array(y*this.height),a=t.length,w=0,m=0,r=0;a>m;){switch(t[m++]){case 0:for(s=b=0;y>b;s=b+=1)p[r++]=t[m++];break;case 1:for(s=q=0;y>q;s=q+=1)e=t[m++],o=h>s?0:p[r-h],p[r++]=(e+o)%256;break;case 2:for(s=x=0;y>x;s=x+=1)e=t[m++],n=(s-s%h)/h,g=w&&p[(w-1)*y+n*h+s%h],p[r++]=(g+e)%256;break;case 3:for(s=k=0;y>k;s=k+=1)e=t[m++],n=(s-s%h)/h,o=h>s?0:p[r-h],g=w&&p[(w-1)*y+n*h+s%h],p[r++]=(e+Math.floor((o+g)/2))%256;break;case 4:for(s=_=0;y>_;s=_+=1)e=t[m++],n=(s-s%h)/h,o=h>s?0:p[r-h],0===w?g=v=0:(g=p[(w-1)*y+n*h+s%h],v=n&&p[(w-1)*y+(n-1)*h+s%h]),u=o+g-v,c=Math.abs(u-o),f=Math.abs(u-g),d=Math.abs(u-v),l=f>=c&&d>=c?o:d>=f?g:v,p[r++]=(e+l)%256;break;default:throw new Error("Invalid filter algorithm: "+t[m-1])}w++}return p},e.prototype.decodePalette=function(){var t,e,r,n,s,o,i,a,u,c;for(n=this.palette,i=this.transparency.indexed||[],o=new Uint8Array((i.length||0)+n.length),s=0,r=n.length,t=0,e=a=0,u=n.length;u>a;e=a+=3)o[s++]=n[e],o[s++]=n[e+1],o[s++]=n[e+2],o[s++]=null!=(c=i[t++])?c:255;return o},e.prototype.copyToImageData=function(t,e){var r,n,s,o,i,a,u,c,l,f,d;if(n=this.colors,l=null,r=this.hasAlphaChannel,this.palette.length&&(l=null!=(d=this._decodedPalette)?d:this._decodedPalette=this.decodePalette(),n=4,r=!0),s=t.data||t,c=s.length,i=l||e,o=a=0,1===n)for(;c>o;)u=l?4*e[o/4]:a,f=i[u++],s[o++]=f,s[o++]=f,s[o++]=f,s[o++]=r?i[u++]:255,a=u;else for(;c>o;)u=l?4*e[o/4]:a,s[o++]=i[u++],s[o++]=i[u++],s[o++]=i[u++],s[o++]=r?i[u++]:255,a=u},e.prototype.decode=function(){var t;return t=new Uint8Array(this.width*this.height*4),this.copyToImageData(t,this.decodePixels()),t};try{c=t.document.createElement("canvas"),l=c.getContext("2d")}catch(f){return-1}return u=function(t){var e;return l.width=t.width,l.height=t.height,l.clearRect(0,0,t.width,t.height),l.putImageData(t,0,0),e=new Image,e.src=c.toDataURL(),e},e.prototype.decodeFrames=function(t){var e,r,n,s,o,i,a,c;if(this.animation){for(a=this.animation.frames,c=[],r=o=0,i=a.length;i>o;r=++o)e=a[r],n=t.createImageData(e.width,e.height),s=this.decodePixels(new Uint8Array(e.data)),this.copyToImageData(n,s),e.imageData=n,c.push(e.image=u(n));return c}},e.prototype.renderFrame=function(t,e){var r,o,i;return o=this.animation.frames,r=o[e],i=o[e-1],0===e&&t.clearRect(0,0,this.width,this.height),(null!=i?i.disposeOp:void 0)===s?t.clearRect(i.xOffset,i.yOffset,i.width,i.height):(null!=i?i.disposeOp:void 0)===a&&t.putImageData(i.imageData,i.xOffset,i.yOffset),r.blendOp===n&&t.clearRect(r.xOffset,r.yOffset,r.width,r.height),t.drawImage(r.image,r.xOffset,r.yOffset)},e.prototype.animate=function(t){var e,r,n,s,o,i,a=this;return r=0,i=this.animation,s=i.numFrames,n=i.frames,o=i.numPlays,(e=function(){var i,u;return i=r++%s,u=n[i],a.renderFrame(t,i),s>1&&o>r/s?a.animation._timeout=setTimeout(e,u.delay):void 0})()},e.prototype.stopAnimation=function(){var t;return clearTimeout(null!=(t=this.animation)?t._timeout:void 0)},e.prototype.render=function(t){var e,r;return t._png&&t._png.stopAnimation(),t._png=this,t.width=this.width,t.height=this.height,e=t.getContext("2d"),this.animation?(this.decodeFrames(e),this.animate(e)):(r=e.createImageData(this.width,this.height),this.copyToImageData(r,this.decodePixels()),e.putImageData(r,0,0))},e}(),t.PNG=e}("undefined"!=typeof window&&window||this);var o=function(){function t(){this.pos=0,this.bufferLength=0,this.eof=!1,this.buffer=null}return t.prototype={ensureBuffer:function(t){var e=this.buffer,r=e?e.byteLength:0;if(r>t)return e;for(var n=512;t>n;)n<<=1;for(var s=new Uint8Array(n),o=0;r>o;++o)s[o]=e[o];return this.buffer=s},getByte:function(){for(var t=this.pos;this.bufferLength<=t;){if(this.eof)return null;this.readBlock()}return this.buffer[this.pos++]},getBytes:function(t){var e=this.pos;if(t){this.ensureBuffer(e+t);for(var r=e+t;!this.eof&&this.bufferLength<r;)this.readBlock();var n=this.bufferLength;r>n&&(r=n)}else{for(;!this.eof;)this.readBlock();var r=this.bufferLength}return this.pos=r,this.buffer.subarray(e,r)},lookChar:function(){for(var t=this.pos;this.bufferLength<=t;){if(this.eof)return null;this.readBlock()}return String.fromCharCode(this.buffer[this.pos])},getChar:function(){for(var t=this.pos;this.bufferLength<=t;){if(this.eof)return null;this.readBlock()}return String.fromCharCode(this.buffer[this.pos++])},makeSubStream:function(t,e,r){for(var n=t+e;this.bufferLength<=n&&!this.eof;)this.readBlock();return new Stream(this.buffer,t,e,r)},skip:function(t){t||(t=1),this.pos+=t},reset:function(){this.pos=0}},t}(),i=function(){function t(t){throw new Error(t)}function e(e){var r=0,n=e[r++],s=e[r++];(-1==n||-1==s)&&t("Invalid header in flate stream"),8!=(15&n)&&t("Unknown compression method in flate stream"),((n<<8)+s)%31!=0&&t("Bad FCHECK in flate stream"),32&s&&t("FDICT bit set in flate stream"),this.bytes=e,this.bytesPos=r,this.codeSize=0,this.codeBuf=0,o.call(this)}if("undefined"==typeof Uint32Array)return void 0;var r=new Uint32Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),n=new Uint32Array([3,4,5,6,7,8,9,10,65547,65549,65551,65553,131091,131095,131099,131103,196643,196651,196659,196667,262211,262227,262243,262259,327811,327843,327875,327907,258,258,258]),s=new Uint32Array([1,2,3,4,65541,65543,131081,131085,196625,196633,262177,262193,327745,327777,393345,393409,459009,459137,524801,525057,590849,591361,657409,658433,724993,727041,794625,798721,868353,876545]),i=[new Uint32Array([459008,524368,524304,524568,459024,524400,524336,590016,459016,524384,524320,589984,524288,524416,524352,590048,459012,524376,524312,589968,459028,524408,524344,590032,459020,524392,524328,59e4,524296,524424,524360,590064,459010,524372,524308,524572,459026,524404,524340,590024,459018,524388,524324,589992,524292,524420,524356,590056,459014,524380,524316,589976,459030,524412,524348,590040,459022,524396,524332,590008,524300,524428,524364,590072,459009,524370,524306,524570,459025,524402,524338,590020,459017,524386,524322,589988,524290,524418,524354,590052,459013,524378,524314,589972,459029,524410,524346,590036,459021,524394,524330,590004,524298,524426,524362,590068,459011,524374,524310,524574,459027,524406,524342,590028,459019,524390,524326,589996,524294,524422,524358,590060,459015,524382,524318,589980,459031,524414,524350,590044,459023,524398,524334,590012,524302,524430,524366,590076,459008,524369,524305,524569,459024,524401,524337,590018,459016,524385,524321,589986,524289,524417,524353,590050,459012,524377,524313,589970,459028,524409,524345,590034,459020,524393,524329,590002,524297,524425,524361,590066,459010,524373,524309,524573,459026,524405,524341,590026,459018,524389,524325,589994,524293,524421,524357,590058,459014,524381,524317,589978,459030,524413,524349,590042,459022,524397,524333,590010,524301,524429,524365,590074,459009,524371,524307,524571,459025,524403,524339,590022,459017,524387,524323,589990,524291,524419,524355,590054,459013,524379,524315,589974,459029,524411,524347,590038,459021,524395,524331,590006,524299,524427,524363,590070,459011,524375,524311,524575,459027,524407,524343,590030,459019,524391,524327,589998,524295,524423,524359,590062,459015,524383,524319,589982,459031,524415,524351,590046,459023,524399,524335,590014,524303,524431,524367,590078,459008,524368,524304,524568,459024,524400,524336,590017,459016,524384,524320,589985,524288,524416,524352,590049,459012,524376,524312,589969,459028,524408,524344,590033,459020,524392,524328,590001,524296,524424,524360,590065,459010,524372,524308,524572,459026,524404,524340,590025,459018,524388,524324,589993,524292,524420,524356,590057,459014,524380,524316,589977,459030,524412,524348,590041,459022,524396,524332,590009,524300,524428,524364,590073,459009,524370,524306,524570,459025,524402,524338,590021,459017,524386,524322,589989,524290,524418,524354,590053,459013,524378,524314,589973,459029,524410,524346,590037,459021,524394,524330,590005,524298,524426,524362,590069,459011,524374,524310,524574,459027,524406,524342,590029,459019,524390,524326,589997,524294,524422,524358,590061,459015,524382,524318,589981,459031,524414,524350,590045,459023,524398,524334,590013,524302,524430,524366,590077,459008,524369,524305,524569,459024,524401,524337,590019,459016,524385,524321,589987,524289,524417,524353,590051,459012,524377,524313,589971,459028,524409,524345,590035,459020,524393,524329,590003,524297,524425,524361,590067,459010,524373,524309,524573,459026,524405,524341,590027,459018,524389,524325,589995,524293,524421,524357,590059,459014,524381,524317,589979,459030,524413,524349,590043,459022,524397,524333,590011,524301,524429,524365,590075,459009,524371,524307,524571,459025,524403,524339,590023,459017,524387,524323,589991,524291,524419,524355,590055,459013,524379,524315,589975,459029,524411,524347,590039,459021,524395,524331,590007,524299,524427,524363,590071,459011,524375,524311,524575,459027,524407,524343,590031,459019,524391,524327,589999,524295,524423,524359,590063,459015,524383,524319,589983,459031,524415,524351,590047,459023,524399,524335,590015,524303,524431,524367,590079]),9],a=[new Uint32Array([327680,327696,327688,327704,327684,327700,327692,327708,327682,327698,327690,327706,327686,327702,327694,0,327681,327697,327689,327705,327685,327701,327693,327709,327683,327699,327691,327707,327687,327703,327695,0]),5];
          return e.prototype=Object.create(o.prototype),e.prototype.getBits=function(e){for(var r,n=this.codeSize,s=this.codeBuf,o=this.bytes,i=this.bytesPos;e>n;)"undefined"==typeof(r=o[i++])&&t("Bad encoding in flate stream"),s|=r<<n,n+=8;return r=s&(1<<e)-1,this.codeBuf=s>>e,this.codeSize=n-=e,this.bytesPos=i,r},e.prototype.getCode=function(e){for(var r=e[0],n=e[1],s=this.codeSize,o=this.codeBuf,i=this.bytes,a=this.bytesPos;n>s;){var u;"undefined"==typeof(u=i[a++])&&t("Bad encoding in flate stream"),o|=u<<s,s+=8}var c=r[o&(1<<n)-1],l=c>>16,f=65535&c;return(0==s||l>s||0==l)&&t("Bad encoding in flate stream"),this.codeBuf=o>>l,this.codeSize=s-l,this.bytesPos=a,f},e.prototype.generateHuffmanTable=function(t){for(var e=t.length,r=0,n=0;e>n;++n)t[n]>r&&(r=t[n]);for(var s=1<<r,o=new Uint32Array(s),i=1,a=0,u=2;r>=i;++i,a<<=1,u<<=1)for(var c=0;e>c;++c)if(t[c]==i){for(var l=0,f=a,n=0;i>n;++n)l=l<<1|1&f,f>>=1;for(var n=l;s>n;n+=u)o[n]=i<<16|c;++a}return[o,r]},e.prototype.readBlock=function(){function e(t,e,r,n,s){for(var o=t.getBits(r)+n;o-->0;)e[k++]=s}var o=this.getBits(3);if(1&o&&(this.eof=!0),o>>=1,0==o){var u,c=this.bytes,l=this.bytesPos;"undefined"==typeof(u=c[l++])&&t("Bad block header in flate stream");var f=u;"undefined"==typeof(u=c[l++])&&t("Bad block header in flate stream"),f|=u<<8,"undefined"==typeof(u=c[l++])&&t("Bad block header in flate stream");var d=u;"undefined"==typeof(u=c[l++])&&t("Bad block header in flate stream"),d|=u<<8,d!=(65535&~f)&&t("Bad uncompressed block length in flate stream"),this.codeBuf=0,this.codeSize=0;var h=this.bufferLength,p=this.ensureBuffer(h+f),m=h+f;this.bufferLength=m;for(var w=h;m>w;++w){if("undefined"==typeof(u=c[l++])){this.eof=!0;break}p[w]=u}return this.bytesPos=l,void 0}var y,g;if(1==o)y=i,g=a;else if(2==o){for(var v=this.getBits(5)+257,b=this.getBits(5)+1,q=this.getBits(4)+4,x=Array(r.length),k=0;q>k;)x[r[k++]]=this.getBits(3);for(var _=this.generateHuffmanTable(x),A=0,k=0,C=v+b,S=new Array(C);C>k;){var E=this.getCode(_);16==E?e(this,S,2,3,A):17==E?e(this,S,3,3,A=0):18==E?e(this,S,7,11,A=0):S[k++]=A=E}y=this.generateHuffmanTable(S.slice(0,v)),g=this.generateHuffmanTable(S.slice(v,C))}else t("Unknown block type in flate stream");for(var p=this.buffer,z=p?p.length:0,I=this.bufferLength;;){var T=this.getCode(y);if(256>T)I+1>=z&&(p=this.ensureBuffer(I+1),z=p.length),p[I++]=T;else{if(256==T)return this.bufferLength=I,void 0;T-=257,T=n[T];var B=T>>16;B>0&&(B=this.getBits(B));var A=(65535&T)+B;T=this.getCode(g),T=s[T],B=T>>16,B>0&&(B=this.getBits(B));var O=(65535&T)+B;I+A>=z&&(p=this.ensureBuffer(I+A),z=p.length);for(var P=0;A>P;++P,++I)p[I]=p[I-O]}}},e}();!function(t){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";"undefined"==typeof t.btoa&&(t.btoa=function(t){var r,n,s,o,i,a,u,c,l=0,f=0,d="",h=[];if(!t)return t;do r=t.charCodeAt(l++),n=t.charCodeAt(l++),s=t.charCodeAt(l++),c=r<<16|n<<8|s,o=c>>18&63,i=c>>12&63,a=c>>6&63,u=63&c,h[f++]=e.charAt(o)+e.charAt(i)+e.charAt(a)+e.charAt(u);while(l<t.length);d=h.join("");var p=t.length%3;return(p?d.slice(0,p-3):d)+"===".slice(p||3)}),"undefined"==typeof t.atob&&(t.atob=function(t){var r,n,s,o,i,a,u,c,l=0,f=0,d="",h=[];if(!t)return t;t+="";do o=e.indexOf(t.charAt(l++)),i=e.indexOf(t.charAt(l++)),a=e.indexOf(t.charAt(l++)),u=e.indexOf(t.charAt(l++)),c=o<<18|i<<12|a<<6|u,r=c>>16&255,n=c>>8&255,s=255&c,h[f++]=64==a?String.fromCharCode(r):64==u?String.fromCharCode(r,n):String.fromCharCode(r,n,s);while(l<t.length);return d=h.join("")}),Array.prototype.map||(Array.prototype.map=function(t){if(void 0===this||null===this||"function"!=typeof t)throw new TypeError;for(var e=Object(this),r=e.length>>>0,n=new Array(r),s=arguments.length>1?arguments[1]:void 0,o=0;r>o;o++)o in e&&(n[o]=t.call(s,e[o],o,e));return n}),Array.isArray||(Array.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)}),Array.prototype.forEach||(Array.prototype.forEach=function(t,e){"use strict";if(void 0===this||null===this||"function"!=typeof t)throw new TypeError;for(var r=Object(this),n=r.length>>>0,s=0;n>s;s++)s in r&&t.call(e,r[s],s,r)}),Object.keys||(Object.keys=function(){"use strict";var t=Object.prototype.hasOwnProperty,e=!{toString:null}.propertyIsEnumerable("toString"),r=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],n=r.length;return function(s){if("object"!=typeof s&&("function"!=typeof s||null===s))throw new TypeError;var o,i,a=[];for(o in s)t.call(s,o)&&a.push(o);if(e)for(i=0;n>i;i++)t.call(s,r[i])&&a.push(r[i]);return a}}()),String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),String.prototype.trimLeft||(String.prototype.trimLeft=function(){return this.replace(/^\s+/g,"")}),String.prototype.trimRight||(String.prototype.trimRight=function(){return this.replace(/\s+$/g,"")})}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this)}({},function(){return this}());
        • jspdf.plugin.svgToPdf.js
          /*globals RGBColor, DOMParser, jsPDF*/
          /*jslint eqeq:true, vars:true*/
          /*
           * svgToPdf.js
           * 
           * Copyright 2012-2014 Florian Hülsmann <fh@cbix.de>
           * Copyright 2014 Ben Gribaudo <www.bengribaudo.com>
           * 
           * This script is free software: you can redistribute it and/or modify
           * it under the terms of the GNU Lesser General Public License as published by
           * the Free Software Foundation, either version 3 of the License, or
           * (at your option) any later version.
           * 
           * This script is distributed in the hope that it will be useful,
           * but WITHOUT ANY WARRANTY; without even the implied warranty of
           * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
           * GNU Lesser General Public License for more details.
           * 
           * You should have received a copy of the GNU Lesser General Public License
           * along with this file.  If not, see <http://www.gnu.org/licenses/>.
           * 
           */
          
          (function(jsPDFAPI, undef) {
          'use strict';
          
          var pdfSvgAttr = {
              // allowed attributes. all others are removed from the preview.
              g: ['stroke', 'fill', 'stroke-width'],
              line: ['x1', 'y1', 'x2', 'y2', 'stroke', 'stroke-width'],
              rect: ['x', 'y', 'width', 'height', 'stroke', 'fill', 'stroke-width'],
              ellipse: ['cx', 'cy', 'rx', 'ry', 'stroke', 'fill', 'stroke-width'],
              circle: ['cx', 'cy', 'r', 'stroke', 'fill', 'stroke-width'],
              text: ['x', 'y', 'font-size', 'font-family', 'text-anchor', 'font-weight', 'font-style', 'fill']
          };
          
          var attributeIsNotEmpty = function (node, attr) {
              var attVal = attr ? node.getAttribute(attr) : node;
              return attVal !== '' && attVal !== null;
          };
          
          var nodeIs = function (node, possible) {
              return possible.indexOf(node.tagName.toLowerCase()) > -1;
          };
          
          var removeAttributes = function(node, attributes) {
              var toRemove = [];
              [].forEach.call(node.attributes, function(a) {
                  if (attributeIsNotEmpty(a) && attributes.indexOf(a.name.toLowerCase()) == -1) {
                      toRemove.push(a.name);
                  }
              });
          
              toRemove.forEach(function(a) {
                  node.removeAttribute(a.name);
              });
          };
          
          var svgElementToPdf = function(element, pdf, options) {
              // pdf is a jsPDF object
              //console.log("options =", options);
              var remove = (options.removeInvalid == undef ? false : options.removeInvalid);
              var k = (options.scale == undef ? 1.0 : options.scale);
              var colorMode = null;
              [].forEach.call(element.children, function(node) {
                  //console.log("passing: ", node);
                  var hasFillColor = false;
                  var hasStrokeColor = false;
                  var fillRGB;
                  if(nodeIs(node, ['g', 'line', 'rect', 'ellipse', 'circle', 'text'])) {
                      var fillColor = node.getAttribute('fill');
                      if(attributeIsNotEmpty(fillColor)) {
                          fillRGB = new RGBColor(fillColor);
                          if(fillRGB.ok) {
                              hasFillColor = true;
                              colorMode = 'F';
                          } else {
                              colorMode = null;
                          }
                      }
                  }
                  if(nodeIs(node, ['g', 'line', 'rect', 'ellipse', 'circle'])) {
                      if(hasFillColor) {
                          pdf.setFillColor(fillRGB.r, fillRGB.g, fillRGB.b);
                      }
                      if(attributeIsNotEmpty(node, 'stroke-width')) {
                          pdf.setLineWidth(k * parseInt(node.getAttribute('stroke-width'), 10));
                      }
                      var strokeColor = node.getAttribute('stroke');
                      if(attributeIsNotEmpty(strokeColor)) {
                          var strokeRGB = new RGBColor(strokeColor);
                          if(strokeRGB.ok) {
                              hasStrokeColor = true;
                              pdf.setDrawColor(strokeRGB.r, strokeRGB.g, strokeRGB.b);
                              if(colorMode == 'F') {
                                  colorMode = 'FD';
                              } else {
                                  colorMode = null;
                              }
                          } else {
                              colorMode = null;
                          }
                      }
                  }
                  switch(node.tagName.toLowerCase()) {
                      case 'svg':
                      case 'a':
                      case 'g':
                          svgElementToPdf(node, pdf, options);
                          removeAttributes(node, pdfSvgAttr.g);
                          break;
                      case 'line':
                          pdf.line(
                              k*parseInt(node.getAttribute('x1'), 10),
                              k*parseInt(node.getAttribute('y1'), 10),
                              k*parseInt(node.getAttribute('x2'), 10),
                              k*parseInt(node.getAttribute('y2'), 10)
                          );
                          removeAttributes(node, pdfSvgAttr.line);
                          break;
                      case 'rect':
                          pdf.rect(
                              k*parseInt(node.getAttribute('x'), 10),
                              k*parseInt(node.getAttribute('y'), 10),
                              k*parseInt(node.getAttribute('width'), 10),
                              k*parseInt(node.getAttribute('height'), 10),
                              colorMode
                          );
                          removeAttributes(node, pdfSvgAttr.rect);
                          break;
                      case 'ellipse':
                          pdf.ellipse(
                              k*parseInt(node.getAttribute('cx'), 10),
                              k*parseInt(node.getAttribute('cy'), 10),
                              k*parseInt(node.getAttribute('rx'), 10),
                              k*parseInt(node.getAttribute('ry'), 10),
                              colorMode
                          );
                          removeAttributes(node, pdfSvgAttr.ellipse);
                          break;
                      case 'circle':
                          pdf.circle(
                              k*parseInt(node.getAttribute('cx'), 10),
                              k*parseInt(node.getAttribute('cy'), 10),
                              k*parseInt(node.getAttribute('r'), 10),
                              colorMode
                          );
                          removeAttributes(node, pdfSvgAttr.circle);
                          break;
                      case 'text':
                          if(node.hasAttribute('font-family')) {
                              switch((node.getAttribute('font-family') || '').toLowerCase()) {
                                  case 'serif': pdf.setFont('times'); break;
                                  case 'monospace': pdf.setFont('courier'); break;
                                  default:
                                      node.setAttribute('font-family', 'sans-serif');
                                      pdf.setFont('helvetica');
                              }
                          }
                          if(hasFillColor) {
                              pdf.setTextColor(fillRGB.r, fillRGB.g, fillRGB.b);
                          }
                          var fontType = "";
                          if(node.hasAttribute('font-weight')) {
                              if(node.getAttribute('font-weight') == "bold") {
                                  fontType = "bold";
                              } else {
                                  node.removeAttribute('font-weight');
                              }
                          }
                          if(node.hasAttribute('font-style')) {
                              if(node.getAttribute('font-style') == "italic") {
                                  fontType += "italic";
                              } else {
                                  node.removeAttribute('font-style');
                              }
                          }
                          pdf.setFontType(fontType);
                          var pdfFontSize = 16;
                          if(node.hasAttribute('font-size')) {
                              pdfFontSize = parseInt(node.getAttribute('font-size'), 10);
                          }
                          var box = node.getBBox();
                          //FIXME: use more accurate positioning!!
                          var x, y, xOffset = 0;
                          if(node.hasAttribute('text-anchor')) {
                              switch(node.getAttribute('text-anchor')) {
                                  case 'end': xOffset = box.width; break;
                                  case 'middle': xOffset = box.width / 2; break;
                                  case 'start': break;
                                  case 'default': node.setAttribute('text-anchor', 'start'); break;
                              }
                              x = parseInt(node.getAttribute('x'), 10) - xOffset;
                              y = parseInt(node.getAttribute('y'), 10);
                          }
                          //console.log("fontSize:", pdfFontSize, "text:", node.textContent);
                          pdf.setFontSize(pdfFontSize).text(
                              k * x,
                              k * y,
                              node.textContent
                          );
                          removeAttributes(node, pdfSvgAttr.text);
                          break;
                      //TODO: image
                      default:
                          if (remove) {
                              console.log("can't translate to pdf:", node);
                              node.parentNode.removeChild(node);
                          }
                  }
              });
              return pdf;
          };
          
              jsPDFAPI.addSVG = function(element, x, y, options) {
          
                  options = (options === undef ? {} : options);
                  options.x_offset = x;
                  options.y_offset = y;
          
                  if (typeof element === 'string') {
                      element = new DOMParser().parseFromString(element, 'text/xml').documentElement;
                  }
                  svgElementToPdf(element, this, options);
                  return this;
              };
          }(jsPDF.API));
          
        • underscore-min.js
          //     Underscore.js 1.6.0
          //     http://underscorejs.org
          //     (c) 2009-2014 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
          //     Underscore may be freely distributed under the MIT license.
          (function(){var n=this,t=n._,r={},e=Array.prototype,u=Object.prototype,i=Function.prototype,a=e.push,o=e.slice,c=e.concat,l=u.toString,f=u.hasOwnProperty,s=e.forEach,p=e.map,h=e.reduce,v=e.reduceRight,g=e.filter,d=e.every,m=e.some,y=e.indexOf,b=e.lastIndexOf,x=Array.isArray,w=Object.keys,_=i.bind,j=function(n){return n instanceof j?n:this instanceof j?void(this._wrapped=n):new j(n)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=j),exports._=j):n._=j,j.VERSION="1.6.0";var A=j.each=j.forEach=function(n,t,e){if(null==n)return n;if(s&&n.forEach===s)n.forEach(t,e);else if(n.length===+n.length){for(var u=0,i=n.length;i>u;u++)if(t.call(e,n[u],u,n)===r)return}else for(var a=j.keys(n),u=0,i=a.length;i>u;u++)if(t.call(e,n[a[u]],a[u],n)===r)return;return n};j.map=j.collect=function(n,t,r){var e=[];return null==n?e:p&&n.map===p?n.map(t,r):(A(n,function(n,u,i){e.push(t.call(r,n,u,i))}),e)};var O="Reduce of empty array with no initial value";j.reduce=j.foldl=j.inject=function(n,t,r,e){var u=arguments.length>2;if(null==n&&(n=[]),h&&n.reduce===h)return e&&(t=j.bind(t,e)),u?n.reduce(t,r):n.reduce(t);if(A(n,function(n,i,a){u?r=t.call(e,r,n,i,a):(r=n,u=!0)}),!u)throw new TypeError(O);return r},j.reduceRight=j.foldr=function(n,t,r,e){var u=arguments.length>2;if(null==n&&(n=[]),v&&n.reduceRight===v)return e&&(t=j.bind(t,e)),u?n.reduceRight(t,r):n.reduceRight(t);var i=n.length;if(i!==+i){var a=j.keys(n);i=a.length}if(A(n,function(o,c,l){c=a?a[--i]:--i,u?r=t.call(e,r,n[c],c,l):(r=n[c],u=!0)}),!u)throw new TypeError(O);return r},j.find=j.detect=function(n,t,r){var e;return k(n,function(n,u,i){return t.call(r,n,u,i)?(e=n,!0):void 0}),e},j.filter=j.select=function(n,t,r){var e=[];return null==n?e:g&&n.filter===g?n.filter(t,r):(A(n,function(n,u,i){t.call(r,n,u,i)&&e.push(n)}),e)},j.reject=function(n,t,r){return j.filter(n,function(n,e,u){return!t.call(r,n,e,u)},r)},j.every=j.all=function(n,t,e){t||(t=j.identity);var u=!0;return null==n?u:d&&n.every===d?n.every(t,e):(A(n,function(n,i,a){return(u=u&&t.call(e,n,i,a))?void 0:r}),!!u)};var k=j.some=j.any=function(n,t,e){t||(t=j.identity);var u=!1;return null==n?u:m&&n.some===m?n.some(t,e):(A(n,function(n,i,a){return u||(u=t.call(e,n,i,a))?r:void 0}),!!u)};j.contains=j.include=function(n,t){return null==n?!1:y&&n.indexOf===y?n.indexOf(t)!=-1:k(n,function(n){return n===t})},j.invoke=function(n,t){var r=o.call(arguments,2),e=j.isFunction(t);return j.map(n,function(n){return(e?t:n[t]).apply(n,r)})},j.pluck=function(n,t){return j.map(n,j.property(t))},j.where=function(n,t){return j.filter(n,j.matches(t))},j.findWhere=function(n,t){return j.find(n,j.matches(t))},j.max=function(n,t,r){if(!t&&j.isArray(n)&&n[0]===+n[0]&&n.length<65535)return Math.max.apply(Math,n);var e=-1/0,u=-1/0;return A(n,function(n,i,a){var o=t?t.call(r,n,i,a):n;o>u&&(e=n,u=o)}),e},j.min=function(n,t,r){if(!t&&j.isArray(n)&&n[0]===+n[0]&&n.length<65535)return Math.min.apply(Math,n);var e=1/0,u=1/0;return A(n,function(n,i,a){var o=t?t.call(r,n,i,a):n;u>o&&(e=n,u=o)}),e},j.shuffle=function(n){var t,r=0,e=[];return A(n,function(n){t=j.random(r++),e[r-1]=e[t],e[t]=n}),e},j.sample=function(n,t,r){return null==t||r?(n.length!==+n.length&&(n=j.values(n)),n[j.random(n.length-1)]):j.shuffle(n).slice(0,Math.max(0,t))};var E=function(n){return null==n?j.identity:j.isFunction(n)?n:j.property(n)};j.sortBy=function(n,t,r){return t=E(t),j.pluck(j.map(n,function(n,e,u){return{value:n,index:e,criteria:t.call(r,n,e,u)}}).sort(function(n,t){var r=n.criteria,e=t.criteria;if(r!==e){if(r>e||r===void 0)return 1;if(e>r||e===void 0)return-1}return n.index-t.index}),"value")};var F=function(n){return function(t,r,e){var u={};return r=E(r),A(t,function(i,a){var o=r.call(e,i,a,t);n(u,o,i)}),u}};j.groupBy=F(function(n,t,r){j.has(n,t)?n[t].push(r):n[t]=[r]}),j.indexBy=F(function(n,t,r){n[t]=r}),j.countBy=F(function(n,t){j.has(n,t)?n[t]++:n[t]=1}),j.sortedIndex=function(n,t,r,e){r=E(r);for(var u=r.call(e,t),i=0,a=n.length;a>i;){var o=i+a>>>1;r.call(e,n[o])<u?i=o+1:a=o}return i},j.toArray=function(n){return n?j.isArray(n)?o.call(n):n.length===+n.length?j.map(n,j.identity):j.values(n):[]},j.size=function(n){return null==n?0:n.length===+n.length?n.length:j.keys(n).length},j.first=j.head=j.take=function(n,t,r){return null==n?void 0:null==t||r?n[0]:0>t?[]:o.call(n,0,t)},j.initial=function(n,t,r){return o.call(n,0,n.length-(null==t||r?1:t))},j.last=function(n,t,r){return null==n?void 0:null==t||r?n[n.length-1]:o.call(n,Math.max(n.length-t,0))},j.rest=j.tail=j.drop=function(n,t,r){return o.call(n,null==t||r?1:t)},j.compact=function(n){return j.filter(n,j.identity)};var M=function(n,t,r){return t&&j.every(n,j.isArray)?c.apply(r,n):(A(n,function(n){j.isArray(n)||j.isArguments(n)?t?a.apply(r,n):M(n,t,r):r.push(n)}),r)};j.flatten=function(n,t){return M(n,t,[])},j.without=function(n){return j.difference(n,o.call(arguments,1))},j.partition=function(n,t){var r=[],e=[];return A(n,function(n){(t(n)?r:e).push(n)}),[r,e]},j.uniq=j.unique=function(n,t,r,e){j.isFunction(t)&&(e=r,r=t,t=!1);var u=r?j.map(n,r,e):n,i=[],a=[];return A(u,function(r,e){(t?e&&a[a.length-1]===r:j.contains(a,r))||(a.push(r),i.push(n[e]))}),i},j.union=function(){return j.uniq(j.flatten(arguments,!0))},j.intersection=function(n){var t=o.call(arguments,1);return j.filter(j.uniq(n),function(n){return j.every(t,function(t){return j.contains(t,n)})})},j.difference=function(n){var t=c.apply(e,o.call(arguments,1));return j.filter(n,function(n){return!j.contains(t,n)})},j.zip=function(){for(var n=j.max(j.pluck(arguments,"length").concat(0)),t=new Array(n),r=0;n>r;r++)t[r]=j.pluck(arguments,""+r);return t},j.object=function(n,t){if(null==n)return{};for(var r={},e=0,u=n.length;u>e;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},j.indexOf=function(n,t,r){if(null==n)return-1;var e=0,u=n.length;if(r){if("number"!=typeof r)return e=j.sortedIndex(n,t),n[e]===t?e:-1;e=0>r?Math.max(0,u+r):r}if(y&&n.indexOf===y)return n.indexOf(t,r);for(;u>e;e++)if(n[e]===t)return e;return-1},j.lastIndexOf=function(n,t,r){if(null==n)return-1;var e=null!=r;if(b&&n.lastIndexOf===b)return e?n.lastIndexOf(t,r):n.lastIndexOf(t);for(var u=e?r:n.length;u--;)if(n[u]===t)return u;return-1},j.range=function(n,t,r){arguments.length<=1&&(t=n||0,n=0),r=arguments[2]||1;for(var e=Math.max(Math.ceil((t-n)/r),0),u=0,i=new Array(e);e>u;)i[u++]=n,n+=r;return i};var R=function(){};j.bind=function(n,t){var r,e;if(_&&n.bind===_)return _.apply(n,o.call(arguments,1));if(!j.isFunction(n))throw new TypeError;return r=o.call(arguments,2),e=function(){if(!(this instanceof e))return n.apply(t,r.concat(o.call(arguments)));R.prototype=n.prototype;var u=new R;R.prototype=null;var i=n.apply(u,r.concat(o.call(arguments)));return Object(i)===i?i:u}},j.partial=function(n){var t=o.call(arguments,1);return function(){for(var r=0,e=t.slice(),u=0,i=e.length;i>u;u++)e[u]===j&&(e[u]=arguments[r++]);for(;r<arguments.length;)e.push(arguments[r++]);return n.apply(this,e)}},j.bindAll=function(n){var t=o.call(arguments,1);if(0===t.length)throw new Error("bindAll must be passed function names");return A(t,function(t){n[t]=j.bind(n[t],n)}),n},j.memoize=function(n,t){var r={};return t||(t=j.identity),function(){var e=t.apply(this,arguments);return j.has(r,e)?r[e]:r[e]=n.apply(this,arguments)}},j.delay=function(n,t){var r=o.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},t)},j.defer=function(n){return j.delay.apply(j,[n,1].concat(o.call(arguments,1)))},j.throttle=function(n,t,r){var e,u,i,a=null,o=0;r||(r={});var c=function(){o=r.leading===!1?0:j.now(),a=null,i=n.apply(e,u),e=u=null};return function(){var l=j.now();o||r.leading!==!1||(o=l);var f=t-(l-o);return e=this,u=arguments,0>=f?(clearTimeout(a),a=null,o=l,i=n.apply(e,u),e=u=null):a||r.trailing===!1||(a=setTimeout(c,f)),i}},j.debounce=function(n,t,r){var e,u,i,a,o,c=function(){var l=j.now()-a;t>l?e=setTimeout(c,t-l):(e=null,r||(o=n.apply(i,u),i=u=null))};return function(){i=this,u=arguments,a=j.now();var l=r&&!e;return e||(e=setTimeout(c,t)),l&&(o=n.apply(i,u),i=u=null),o}},j.once=function(n){var t,r=!1;return function(){return r?t:(r=!0,t=n.apply(this,arguments),n=null,t)}},j.wrap=function(n,t){return j.partial(t,n)},j.compose=function(){var n=arguments;return function(){for(var t=arguments,r=n.length-1;r>=0;r--)t=[n[r].apply(this,t)];return t[0]}},j.after=function(n,t){return function(){return--n<1?t.apply(this,arguments):void 0}},j.keys=function(n){if(!j.isObject(n))return[];if(w)return w(n);var t=[];for(var r in n)j.has(n,r)&&t.push(r);return t},j.values=function(n){for(var t=j.keys(n),r=t.length,e=new Array(r),u=0;r>u;u++)e[u]=n[t[u]];return e},j.pairs=function(n){for(var t=j.keys(n),r=t.length,e=new Array(r),u=0;r>u;u++)e[u]=[t[u],n[t[u]]];return e},j.invert=function(n){for(var t={},r=j.keys(n),e=0,u=r.length;u>e;e++)t[n[r[e]]]=r[e];return t},j.functions=j.methods=function(n){var t=[];for(var r in n)j.isFunction(n[r])&&t.push(r);return t.sort()},j.extend=function(n){return A(o.call(arguments,1),function(t){if(t)for(var r in t)n[r]=t[r]}),n},j.pick=function(n){var t={},r=c.apply(e,o.call(arguments,1));return A(r,function(r){r in n&&(t[r]=n[r])}),t},j.omit=function(n){var t={},r=c.apply(e,o.call(arguments,1));for(var u in n)j.contains(r,u)||(t[u]=n[u]);return t},j.defaults=function(n){return A(o.call(arguments,1),function(t){if(t)for(var r in t)n[r]===void 0&&(n[r]=t[r])}),n},j.clone=function(n){return j.isObject(n)?j.isArray(n)?n.slice():j.extend({},n):n},j.tap=function(n,t){return t(n),n};var S=function(n,t,r,e){if(n===t)return 0!==n||1/n==1/t;if(null==n||null==t)return n===t;n instanceof j&&(n=n._wrapped),t instanceof j&&(t=t._wrapped);var u=l.call(n);if(u!=l.call(t))return!1;switch(u){case"[object String]":return n==String(t);case"[object Number]":return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case"[object Date]":case"[object Boolean]":return+n==+t;case"[object RegExp]":return n.source==t.source&&n.global==t.global&&n.multiline==t.multiline&&n.ignoreCase==t.ignoreCase}if("object"!=typeof n||"object"!=typeof t)return!1;for(var i=r.length;i--;)if(r[i]==n)return e[i]==t;var a=n.constructor,o=t.constructor;if(a!==o&&!(j.isFunction(a)&&a instanceof a&&j.isFunction(o)&&o instanceof o)&&"constructor"in n&&"constructor"in t)return!1;r.push(n),e.push(t);var c=0,f=!0;if("[object Array]"==u){if(c=n.length,f=c==t.length)for(;c--&&(f=S(n[c],t[c],r,e)););}else{for(var s in n)if(j.has(n,s)&&(c++,!(f=j.has(t,s)&&S(n[s],t[s],r,e))))break;if(f){for(s in t)if(j.has(t,s)&&!c--)break;f=!c}}return r.pop(),e.pop(),f};j.isEqual=function(n,t){return S(n,t,[],[])},j.isEmpty=function(n){if(null==n)return!0;if(j.isArray(n)||j.isString(n))return 0===n.length;for(var t in n)if(j.has(n,t))return!1;return!0},j.isElement=function(n){return!(!n||1!==n.nodeType)},j.isArray=x||function(n){return"[object Array]"==l.call(n)},j.isObject=function(n){return n===Object(n)},A(["Arguments","Function","String","Number","Date","RegExp"],function(n){j["is"+n]=function(t){return l.call(t)=="[object "+n+"]"}}),j.isArguments(arguments)||(j.isArguments=function(n){return!(!n||!j.has(n,"callee"))}),"function"!=typeof/./&&(j.isFunction=function(n){return"function"==typeof n}),j.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},j.isNaN=function(n){return j.isNumber(n)&&n!=+n},j.isBoolean=function(n){return n===!0||n===!1||"[object Boolean]"==l.call(n)},j.isNull=function(n){return null===n},j.isUndefined=function(n){return n===void 0},j.has=function(n,t){return f.call(n,t)},j.noConflict=function(){return n._=t,this},j.identity=function(n){return n},j.constant=function(n){return function(){return n}},j.property=function(n){return function(t){return t[n]}},j.matches=function(n){return function(t){if(t===n)return!0;for(var r in n)if(n[r]!==t[r])return!1;return!0}},j.times=function(n,t,r){for(var e=Array(Math.max(0,n)),u=0;n>u;u++)e[u]=t.call(r,u);return e},j.random=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))},j.now=Date.now||function(){return(new Date).getTime()};var T={escape:{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;"}};T.unescape=j.invert(T.escape);var I={escape:new RegExp("["+j.keys(T.escape).join("")+"]","g"),unescape:new RegExp("("+j.keys(T.unescape).join("|")+")","g")};j.each(["escape","unescape"],function(n){j[n]=function(t){return null==t?"":(""+t).replace(I[n],function(t){return T[n][t]})}}),j.result=function(n,t){if(null==n)return void 0;var r=n[t];return j.isFunction(r)?r.call(n):r},j.mixin=function(n){A(j.functions(n),function(t){var r=j[t]=n[t];j.prototype[t]=function(){var n=[this._wrapped];return a.apply(n,arguments),z.call(this,r.apply(j,n))}})};var N=0;j.uniqueId=function(n){var t=++N+"";return n?n+t:t},j.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var q=/(.)^/,B={"'":"'","\\":"\\","\r":"r","\n":"n","	":"t","\u2028":"u2028","\u2029":"u2029"},D=/\\|'|\r|\n|\t|\u2028|\u2029/g;j.template=function(n,t,r){var e;r=j.defaults({},r,j.templateSettings);var u=new RegExp([(r.escape||q).source,(r.interpolate||q).source,(r.evaluate||q).source].join("|")+"|$","g"),i=0,a="__p+='";n.replace(u,function(t,r,e,u,o){return a+=n.slice(i,o).replace(D,function(n){return"\\"+B[n]}),r&&(a+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'"),e&&(a+="'+\n((__t=("+e+"))==null?'':__t)+\n'"),u&&(a+="';\n"+u+"\n__p+='"),i=o+t.length,t}),a+="';\n",r.variable||(a="with(obj||{}){\n"+a+"}\n"),a="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{e=new Function(r.variable||"obj","_",a)}catch(o){throw o.source=a,o}if(t)return e(t,j);var c=function(n){return e.call(this,n,j)};return c.source="function("+(r.variable||"obj")+"){\n"+a+"}",c},j.chain=function(n){return j(n).chain()};var z=function(n){return this._chain?j(n).chain():n};j.mixin(j),A(["pop","push","reverse","shift","sort","splice","unshift"],function(n){var t=e[n];j.prototype[n]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!=n&&"splice"!=n||0!==r.length||delete r[0],z.call(this,r)}}),A(["concat","join","slice"],function(n){var t=e[n];j.prototype[n]=function(){return z.call(this,t.apply(this._wrapped,arguments))}}),j.extend(j.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}}),"function"==typeof define&&define.amd&&define("underscore",[],function(){return j})}).call(this);
          //# sourceMappingURL=underscore-min.map
      • locale
        • README.txt
          This directory holds JSON files that translate the UI strings in SVG-edit.
          Initial translations were done by Narendra Sisodiya putting the English
          strings through the Google Translation API. Humans will need to take these
          automated translations and ensure they make sense.
          
          See AUTHORS for the translations credits.
          
          Languages Already Translated By Humans:
            * lang.cs.js
            * lang.de.js
            * lang.en.js
            * lang.es.js
            * lang.fr.js
            * lang.ja.js
            * lang.nl.js
            * lang.pl.js
            * lang.ro.js
            * lang.sk.js
          
        • lang.af.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "af",
          	dir : "ltr",
          	common: {
          		"ok": "Spaar",
          		"cancel": "Annuleer",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Klik om te verander vul kleur, verskuiwing klik om &#39;n beroerte kleur verander",
          		"zoom_level": "Change zoom vlak",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Verandering vul kleur",
          		"stroke_color": "Verandering beroerte kleur",
          		"stroke_style": "Verandering beroerte dash styl",
          		"stroke_width": "Verandering beroerte breedte",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Verandering rotasie-hoek",
          		"blur": "Change gaussian blur value",
          		"opacity": "Verander geselekteerde item opaciteit",
          		"circle_cx": "Verandering sirkel se cx koördineer",
          		"circle_cy": "Verandering sirkel se cy koördineer",
          		"circle_r": "Verandering sirkel se radius",
          		"ellipse_cx": "Verandering ellips se cx koördineer",
          		"ellipse_cy": "Verander ellips se cy koördineer",
          		"ellipse_rx": "Verandering ellips se x radius",
          		"ellipse_ry": "Verander ellips se j radius",
          		"line_x1": "Verandering lyn se vertrek x koördinaat",
          		"line_x2": "Verandering lyn se eindig x koördinaat",
          		"line_y1": "Verandering lyn se vertrek y koördinaat",
          		"line_y2": "Verandering lyn se eindig y koördinaat",
          		"rect_height": "Verandering reghoek hoogte",
          		"rect_width": "Verandering reghoek breedte",
          		"corner_radius": "Verandering Rechthoek Corner Radius",
          		"image_width": "Verander prent breedte",
          		"image_height": "Verandering prent hoogte",
          		"image_url": "URL verander",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Verander teks inhoud",
          		"font_family": "Lettertipe verander Familie",
          		"font_size": "Verandering Lettertipe Grootte",
          		"bold": "Vetgedrukte teks",
          		"italic": "Italic Text"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Verander agtergrondkleur / opaciteit",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Pas na inhoud",
          		"fit_to_all": "Passing tot al inhoud",
          		"fit_to_canvas": "Passing tot doek",
          		"fit_to_layer_content": "Passing tot laag inhoud",
          		"fit_to_sel": "Passing tot seleksie",
          		"align_relative_to": "Align in verhouding tot ...",
          		"relativeTo": "relatief tot:",
          		"bladsy": "bladsy",
          		"largest_object": "grootste voorwerp",
          		"selected_objects": "verkose voorwerpe",
          		"smallest_object": "kleinste voorwerp",
          		"new_doc": "Nuwe Beeld",
          		"open_doc": "Open Beeld",
          		"export_img": "Export",
          		"save_doc": "Slaan Beeld",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Align Bottom",
          		"align_center": "Rig Middel",
          		"align_left": "Links Regterkant",
          		"align_middle": "Align Midde",
          		"align_right": "Lijn regs uit",
          		"align_top": "Align Top",
          		"mode_select": "Select Gereedschap",
          		"mode_fhpath": "Potlood tool",
          		"mode_line": "Lyn Gereedskap",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Free-hand Rectangle",
          		"mode_ellipse": "Ellips",
          		"mode_circle": "Sirkel",
          		"mode_fhellipse": "Gratis-Hand Ellips",
          		"mode_path": "Poli Gereedskap",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Text Gereedskap",
          		"mode_image": "Image Gereedskap",
          		"mode_zoom": "Klik op die Gereedskap",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Boontoe",
          		"redo": "Oordoen",
          		"tool_source": "Wysig Bron",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Groep Elemente",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Ungroup Elemente",
          		"docprops": "Document Properties",
          		"imagelib": "Image Library",
          		"move_bottom": "Skuif na Bottom",
          		"move_top": "Skuif na bo",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Spaar",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Verwyder Laag",
          		"move_down": "Beweeg afbreek Down",
          		"new": "Nuwe Layer",
          		"rename": "Rename Layer",
          		"move_up": "Beweeg afbreek Up",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Doek Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Kies gedefinieerde:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.ar.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "ar",
          	dir : "ltr",
          	common: {
          		"ok": "حفظ",
          		"cancel": "إلغاء",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "انقر لتغيير لون التعبئة ، تحولا مزدوجا فوق لتغيير لون السكتة الدماغية",
          		"zoom_level": "تغيير مستوى التكبير",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "تغير لون التعبئة",
          		"stroke_color": "تغير لون السكتة الدماغية",
          		"stroke_style": "تغيير نمط السكتة الدماغية اندفاعة",
          		"stroke_width": "تغيير عرض السكتة الدماغية",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "تغيير زاوية الدوران",
          		"blur": "Change gaussian blur value",
          		"opacity": "تغيير مختارة غموض البند",
          		"circle_cx": "دائرة التغيير لتنسيق cx",
          		"circle_cy": "Change circle's cy coordinate",
          		"circle_r": "التغيير في دائرة نصف قطرها",
          		"ellipse_cx": "تغيير شكل البيضاوي cx تنسيق",
          		"ellipse_cy": "تغيير شكل البيضاوي قبرصي تنسيق",
          		"ellipse_rx": "تغيير شكل البيضاوي خ نصف قطرها",
          		"ellipse_ry": "تغيير القطع الناقص في دائرة نصف قطرها ذ",
          		"line_x1": "تغيير الخط لبدء تنسيق خ",
          		"line_x2": "تغيير الخط لانهاء خ تنسيق",
          		"line_y1": "تغيير الخط لبدء تنسيق ذ",
          		"line_y2": "تغيير الخط لإنهاء تنسيق ذ",
          		"rect_height": "تغيير المستطيل الارتفاع",
          		"rect_width": "تغيير عرض المستطيل",
          		"corner_radius": "تغيير مستطيل ركن الشعاع",
          		"image_width": "تغيير صورة العرض",
          		"image_height": "تغيير ارتفاع الصورة",
          		"image_url": "تغيير العنوان",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "تغيير محتويات النص",
          		"font_family": "تغيير الخط الأسرة",
          		"font_size": "تغيير حجم الخط",
          		"bold": "نص جريء",
          		"italic": "مائل نص"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "تغير لون الخلفية / غموض",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "لائقا للمحتوى",
          		"fit_to_all": "يصلح لجميع المحتويات",
          		"fit_to_canvas": "يصلح لوحة زيتية على قماش",
          		"fit_to_layer_content": "يصلح لطبقة المحتوى",
          		"fit_to_sel": "يصلح لاختيار",
          		"align_relative_to": "محاذاة النسبي ل ...",
          		"relativeTo": "بالنسبة إلى:",
          		"الصفحة": "الصفحة",
          		"largest_object": "أكبر كائن",
          		"selected_objects": "انتخب الأجسام",
          		"smallest_object": "أصغر كائن",
          		"new_doc": "صورة جديدة",
          		"open_doc": "فتح الصورة",
          		"export_img": "Export",
          		"save_doc": "حفظ صورة",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "محاذاة القاع",
          		"align_center": "مركز محاذاة",
          		"align_left": "محاذاة إلى اليسار",
          		"align_middle": "محاذاة الأوسط",
          		"align_right": "محاذاة إلى اليمين",
          		"align_top": "محاذاة الأعلى",
          		"mode_select": "اختر أداة",
          		"mode_fhpath": "أداة قلم رصاص",
          		"mode_line": "خط أداة",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Free-Hand Rectangle",
          		"mode_ellipse": "القطع الناقص",
          		"mode_circle": "دائرة",
          		"mode_fhellipse": "اليد الحرة البيضوي",
          		"mode_path": "بولي أداة",
          		"mode_shapelib": "Shape library",
          		"mode_text": "النص أداة",
          		"mode_image": "الصورة أداة",
          		"mode_zoom": "أداة تكبير",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "التراجع",
          		"redo": "إعادته",
          		"tool_source": "عدل المصدر",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "مجموعة عناصر",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "فك تجميع عناصر",
          		"docprops": "خصائص المستند",
          		"imagelib": "Image Library",
          		"move_bottom": "الانتقال إلى أسفل",
          		"move_top": "الانتقال إلى أعلى",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "حفظ",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "حذف طبقة",
          		"move_down": "تحرك لأسفل طبقة",
          		"new": "طبقة جديدة",
          		"rename": "تسمية الطبقة",
          		"move_up": "تحرك لأعلى طبقة",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "حدد سلفا:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.az.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "az",
          	dir : "ltr",
          	common: {
          		"ok": "OK",
          		"cancel": "Cancel",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Click to change fill color, shift-click to change stroke color",
          		"zoom_level": "Change zoom level",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Change fill color",
          		"stroke_color": "Change stroke color",
          		"stroke_style": "Change stroke dash style",
          		"stroke_width": "Change stroke width",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Change rotation angle",
          		"blur": "Change gaussian blur value",
          		"opacity": "Change selected item opacity",
          		"circle_cx": "Change circle's cx coordinate",
          		"circle_cy": "Change circle's cy coordinate",
          		"circle_r": "Change circle's radius",
          		"ellipse_cx": "Change ellipse's cx coordinate",
          		"ellipse_cy": "Change ellipse's cy coordinate",
          		"ellipse_rx": "Change ellipse's x radius",
          		"ellipse_ry": "Change ellipse's y radius",
          		"line_x1": "Change line's starting x coordinate",
          		"line_x2": "Change line's ending x coordinate",
          		"line_y1": "Change line's starting y coordinate",
          		"line_y2": "Change line's ending y coordinate",
          		"rect_height": "Change rectangle height",
          		"rect_width": "Change rectangle width",
          		"corner_radius": "Change Rectangle Corner Radius",
          		"image_width": "Change image width",
          		"image_height": "Change image height",
          		"image_url": "Change URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Change text contents",
          		"font_family": "Change Font Family",
          		"font_size": "Change Font Size",
          		"bold": "Bold Text",
          		"italic": "Italic Text"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Change background color/opacity",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Fit to Content",
          		"fit_to_all": "Fit to all content",
          		"fit_to_canvas": "Fit to canvas",
          		"fit_to_layer_content": "Fit to layer content",
          		"fit_to_sel": "Fit to selection",
          		"align_relative_to": "Align relative to ...",
          		"relativeTo": "relative to:",
          		"page": "page",
          		"largest_object": "largest object",
          		"selected_objects": "selected objects",
          		"smallest_object": "smallest object",
          		"new_doc": "New Image",
          		"open_doc": "Open SVG",
          		"export_img": "Export",
          		"save_doc": "Save Image",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Align Bottom",
          		"align_center": "Align Center",
          		"align_left": "Align Left",
          		"align_middle": "Align Middle",
          		"align_right": "Align Right",
          		"align_top": "Align Top",
          		"mode_select": "Select Tool",
          		"mode_fhpath": "Pencil Tool",
          		"mode_line": "Line Tool",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Free-Hand Rectangle",
          		"mode_ellipse": "Ellipse",
          		"mode_circle": "Circle",
          		"mode_fhellipse": "Free-Hand Ellipse",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Text Tool",
          		"mode_image": "Image Tool",
          		"mode_zoom": "Zoom Tool",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Undo",
          		"redo": "Redo",
          		"tool_source": "Edit Source",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Group Elements",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Ungroup Elements",
          		"docprops": "Document Properties",
          		"imagelib": "Image Library",
          		"move_bottom": "Move to Bottom",
          		"move_top": "Move to Top",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Apply Changes",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Delete Layer",
          		"move_down": "Move Layer Down",
          		"new": "New Layer",
          		"rename": "Rename Layer",
          		"move_up": "Move Layer Up",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Select predefined:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.be.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "be",
          	dir : "ltr",
          	common: {
          		"ok": "Захаваць",
          		"cancel": "Адмена",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Націсніце для змены колеру залівання, Shift-Click змяніць обводка",
          		"zoom_level": "Змяненне маштабу",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Змяненне колеру залівання",
          		"stroke_color": "Змяненне колеру інсульт",
          		"stroke_style": "Змяненне стылю інсульт працяжнік",
          		"stroke_width": "Змены шырыня штрых",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Змены вугла павароту",
          		"blur": "Change gaussian blur value",
          		"opacity": "Старонка абранага пункта непразрыстасці",
          		"circle_cx": "CX змене круга каардынаты",
          		"circle_cy": "Змены гуртка CY каардынаты",
          		"circle_r": "Старонка круга&#39;s радыус",
          		"ellipse_cx": "Змены эліпса CX каардынаты",
          		"ellipse_cy": "Змены эліпса CY каардынаты",
          		"ellipse_rx": "Х змяненні эліпса радыюсам",
          		"ellipse_ry": "Змены у эліпса радыюсам",
          		"line_x1": "Змены лінія пачынае каардынаты х",
          		"line_x2": "Змяненне за перыяд, скончыўся лінія каардынаты х",
          		"line_y1": "Змены лінія пачынае Y каардынаты",
          		"line_y2": "Змяненне за перыяд, скончыўся лінія Y каардынаты",
          		"rect_height": "Змены прастакутнік вышынёй",
          		"rect_width": "Змяненне шырыні прамавугольніка",
          		"corner_radius": "Змены прастакутнік Corner Radius",
          		"image_width": "Змены шырыня выявы",
          		"image_height": "Змена вышыні выявы",
          		"image_url": "Змяніць URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Змяненне зместу тэксту",
          		"font_family": "Змены Сямейства шрыфтоў",
          		"font_size": "Змяніць памер шрыфта",
          		"bold": "Тоўсты тэкст",
          		"italic": "Нахілены тэкст"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Змяненне колеру фону / непразрыстасць",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Па памеры ўтрымання",
          		"fit_to_all": "Па памеру ўсе змесціва",
          		"fit_to_canvas": "Памер палатна",
          		"fit_to_layer_content": "По размеру слой ўтрымання",
          		"fit_to_sel": "Выбар памеру",
          		"align_relative_to": "Выраўнаваць па дачыненні да ...",
          		"relativeTo": "па параўнанні з:",
          		"старонка": "старонка",
          		"largest_object": "найбуйнейшы аб&#39;ект",
          		"selected_objects": "выбранымі аб&#39;ектамі",
          		"smallest_object": "маленькі аб&#39;ект",
          		"new_doc": "Новае выява",
          		"open_doc": "Адкрыць выява",
          		"export_img": "Export",
          		"save_doc": "Захаваць малюнак",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Лінаваць па ніжнім краю",
          		"align_center": "Лінаваць па цэнтру",
          		"align_left": "Па левым краю",
          		"align_middle": "Выраўнаваць Блізкага",
          		"align_right": "Па правым краю",
          		"align_top": "Лінаваць па верхнім краю",
          		"mode_select": "Выберыце інструмент",
          		"mode_fhpath": "Pencil Tool",
          		"mode_line": "Line Tool",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Свабоднай рукі Прастакутнік",
          		"mode_ellipse": "Эліпс",
          		"mode_circle": "Круг",
          		"mode_fhellipse": "Свабоднай рукі Эліпс",
          		"mode_path": "Poly Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Тэкст Tool",
          		"mode_image": "Image Tool",
          		"mode_zoom": "Zoom Tool",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Адмяніць",
          		"redo": "Паўтор",
          		"tool_source": "Змяніць зыходны",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Група элементаў",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Элементы Разгруппировать",
          		"docprops": "Уласцівасці дакумента",
          		"imagelib": "Image Library",
          		"move_bottom": "Перамясціць уніз",
          		"move_top": "Перамясціць угару",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Захаваць",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Выдаліць слой",
          		"move_down": "Перамясціць слой на",
          		"new": "Новы слой",
          		"rename": "Перайменаваць Слой",
          		"move_up": "Перамяшчэнне слоя да",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Выберыце прадвызначэньні:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.bg.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "bg",
          	dir : "ltr",
          	common: {
          		"ok": "Спасявам",
          		"cancel": "Отказ",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Кликнете, за да промени попълнете цвят, на смени, кликнете да променят цвета си удар",
          		"zoom_level": "Промяна на ниво на мащабиране",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Промяна попълнете цвят",
          		"stroke_color": "Промяна на инсулт цвят",
          		"stroke_style": "Промяна на стила удар тире",
          		"stroke_width": "Промяна на ширината инсулт",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Промяна ъгъл на завъртане",
          		"blur": "Change gaussian blur value",
          		"opacity": "Промяна на избрания елемент непрозрачност",
          		"circle_cx": "CX Промяна кръг на координатната",
          		"circle_cy": "Промяна кръг&#39;s CY координира",
          		"circle_r": "Промяна кръг радиус",
          		"ellipse_cx": "Промяна на елипса&#39;s CX координира",
          		"ellipse_cy": "Промяна на елипса&#39;s CY координира",
          		"ellipse_rx": "Промяна на елипса&#39;s X радиус",
          		"ellipse_ry": "Промяна на елипса&#39;s Y радиус",
          		"line_x1": "Промяна на линия, започваща х координира",
          		"line_x2": "Промяна на линията приключва х координира",
          		"line_y1": "Промяна линия, започваща Y координира",
          		"line_y2": "Промяна на линията приключва Y координира",
          		"rect_height": "Промяна на правоъгълник височина",
          		"rect_width": "Промяна на правоъгълник ширина",
          		"corner_radius": "Промяна на правоъгълник Corner Radius",
          		"image_width": "Промяна на изображението ширина",
          		"image_height": "Промяна на изображението височина",
          		"image_url": "Промяна на URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Промяна на текст съдържание",
          		"font_family": "Промяна на шрифта Семейство",
          		"font_size": "Промени размера на буквите",
          		"bold": "Получер текст",
          		"italic": "Курсив текст"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Промяна на цвета на фона / непрозрачност",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Fit към съдържание",
          		"fit_to_all": "Побери цялото съдържание",
          		"fit_to_canvas": "Fit на платно",
          		"fit_to_layer_content": "Fit да слой съдържание",
          		"fit_to_sel": "Fit за подбор",
          		"align_relative_to": "Привеждане в сравнение с ...",
          		"relativeTo": "в сравнение с:",
          		"страница": "страница",
          		"largest_object": "най-големият обект",
          		"selected_objects": "избраните обекти",
          		"smallest_object": "най-малката обект",
          		"new_doc": "Ню Имидж",
          		"open_doc": "Отворете изображението",
          		"export_img": "Export",
          		"save_doc": "Save Image",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Привеждане Отдолу",
          		"align_center": "Подравняване в средата",
          		"align_left": "Подравняване вляво",
          		"align_middle": "Привеждане в Близкия",
          		"align_right": "Подравняване надясно",
          		"align_top": "Привеждане Топ",
          		"mode_select": "Select Tool",
          		"mode_fhpath": "Pencil Tool",
          		"mode_line": "Line Tool",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Свободен Употребявани правоъгълник",
          		"mode_ellipse": "Елипса",
          		"mode_circle": "Кръгът",
          		"mode_fhellipse": "Свободен Употребявани Елипса",
          		"mode_path": "Поли Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Текст Оръдие",
          		"mode_image": "Image Tool",
          		"mode_zoom": "Zoom Tool",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Отмени",
          		"redo": "Възстановяване",
          		"tool_source": "Редактиране Източник",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Група Елементи",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Разгрупирай Елементи",
          		"docprops": "Document Properties",
          		"imagelib": "Image Library",
          		"move_bottom": "Премести надолу",
          		"move_top": "Премести в началото",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Спасявам",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Изтриване на слой",
          		"move_down": "Move слой надолу",
          		"new": "Нов слой",
          		"rename": "Преименуване Layer",
          		"move_up": "Move Up Layer",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Изберете предварително:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.ca.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "ca",
          	dir : "ltr",
          	common: {
          		"ok": "Salvar",
          		"cancel": "Cancel",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Feu clic per canviar el color de farciment, shift-clic per canviar el color del traç",
          		"zoom_level": "Canviar el nivell de zoom",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Canviar el color de farciment",
          		"stroke_color": "Canviar el color del traç",
          		"stroke_style": "Canviar estil de traç guió",
          		"stroke_width": "Canviar l&#39;amplada del traç",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Canviar l&#39;angle de rotació",
          		"blur": "Change gaussian blur value",
          		"opacity": "Canviar la opacitat tema seleccionat",
          		"circle_cx": "CX cercle Canvi de coordenades",
          		"circle_cy": "Cercle Canvi CY coordinar",
          		"circle_r": "Ràdio de cercle Canvi",
          		"ellipse_cx": "Canviar lipse CX coordinar",
          		"ellipse_cy": "Lipse Canvi CY coordinar",
          		"ellipse_rx": "Ràdio x lipse Canvi",
          		"ellipse_ry": "Ràdio i lipse Canvi",
          		"line_x1": "Canviar la línia de partida de la coordenada x",
          		"line_x2": "Canviar la línia d&#39;hores de coordenada x",
          		"line_y1": "Canviar la línia de partida i de coordinar",
          		"line_y2": "Canviar la línia d&#39;hores de coordenada",
          		"rect_height": "Rectangle d&#39;alçada Canvi",
          		"rect_width": "Ample rectangle Canvi",
          		"corner_radius": "Canviar Rectangle Corner Radius",
          		"image_width": "Amplada de la imatge Canvi",
          		"image_height": "Canviar l&#39;altura de la imatge",
          		"image_url": "Canviar URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Contingut del text",
          		"font_family": "Canviar la font Família",
          		"font_size": "Change Font Size",
          		"bold": "Text en negreta",
          		"italic": "Text en cursiva"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Color de fons / opacitat",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Ajustar al contingut",
          		"fit_to_all": "Ajustar a tot el contingut",
          		"fit_to_canvas": "Ajustar a la lona",
          		"fit_to_layer_content": "Ajustar al contingut de la capa d&#39;",
          		"fit_to_sel": "Ajustar a la selecció",
          		"align_relative_to": "Alinear pel que fa a ...",
          		"relativeTo": "en relació amb:",
          		"Pàgina": "Pàgina",
          		"largest_object": "objecte més gran",
          		"selected_objects": "objectes escollits",
          		"smallest_object": "objecte més petit",
          		"new_doc": "Nova imatge",
          		"open_doc": "Obrir imatge",
          		"export_img": "Export",
          		"save_doc": "Guardar imatge",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Alinear baix",
          		"align_center": "Alinear al centre",
          		"align_left": "Alinear a l&#39;esquerra",
          		"align_middle": "Alinear Medi",
          		"align_right": "Alinear a la dreta",
          		"align_top": "Alinear a dalt",
          		"mode_select": "Eina de selecció",
          		"mode_fhpath": "Eina Llapis",
          		"mode_line": "L&#39;eina",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Free-Hand Rectangle",
          		"mode_ellipse": "Lipse",
          		"mode_circle": "Cercle",
          		"mode_fhellipse": "Free-Hand Ellipse",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Eina de text",
          		"mode_image": "Image Tool",
          		"mode_zoom": "Zoom Tool",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Desfés",
          		"redo": "Refer",
          		"tool_source": "Font Edita",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Elements de Grup de",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Desagrupar elements",
          		"docprops": "Propietats del document",
          		"imagelib": "Image Library",
          		"move_bottom": "Mou al final",
          		"move_top": "Mou al principi",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Salvar",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Eliminar capa",
          		"move_down": "Mou la capa de Down",
          		"new": "Nova capa",
          		"rename": "Canvieu el nom de la capa",
          		"move_up": "Mou la capa Up",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Seleccioneu predefinides:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.cs.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "cs",
          	dir : "ltr",
          	common: {
          		"ok": "Uložit",
          		"cancel": "Storno",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "šipka dolů", 
          		"key_up": "šipka nahoru", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Běží na"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Zobrazit/schovat více možností",
          		"palette_info": "Kliknutím změníte barvu výplně, kliknutím současně s klávesou shift změníte barvu čáry",
          		"zoom_level": "Změna přiblížení",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Změnit ID elementu",
          		"fill_color": "Změnit barvu výplně",
          		"stroke_color": "Změnit barvu čáry",
          		"stroke_style": "Změnit styl čáry",
          		"stroke_width": "Změnit šířku čáry",
          		"pos_x": "Změnit souřadnici X",
          		"pos_y": "Změnit souřadnici Y",
          		"linecap_butt": "Konec úsečky: přesný",
          		"linecap_round": "Konec úsečky: zaoblený",
          		"linecap_square": "Konec úsečky: s čtvercovým přesahem",
          		"linejoin_bevel": "Styl napojení úseček: zkosené",
          		"linejoin_miter": "Styl napojení úseček: ostré",
          		"linejoin_round": "Styl napojení úseček: oblé",
          		"angle": "Změnit úhel natočení",
          		"blur": "Změnit rozostření",
          		"opacity": "Změnit průhlednost objektů",
          		"circle_cx": "Změnit souřadnici X středu kružnice",
          		"circle_cy": "Změnit souřadnici Y středu kružnice",
          		"circle_r": "Změnit poloměr kružnice",
          		"ellipse_cx": "Změnit souřadnici X středu elipsy",
          		"ellipse_cy": "Změnit souřadnici Y středu elipsy",
          		"ellipse_rx": "Změnit poloměr X elipsy",
          		"ellipse_ry": "Změnit poloměr Y elipsy",
          		"line_x1": "Změnit počáteční souřadnici X úsečky",
          		"line_x2": "Změnit koncovou souřadnici X úsečky",
          		"line_y1": "Změnit počáteční souřadnici Y úsečky",
          		"line_y2": "Změnit koncovou souřadnici X úsečky",
          		"rect_height": "Změnit výšku obdélníku",
          		"rect_width": "Změnit šířku obdélníku",
          		"corner_radius": "Změnit zaoblení obdélníku",
          		"image_width": "Změnit šířku dokumentu",
          		"image_height": "Změnit výšku dokumentu",
          		"image_url": "Změnit adresu URL",
          		"node_x": "Změnit souřadnici X uzlu",
          		"node_y": "Změnit souřadnici Y uzlu",
          		"seg_type": "Změnit typ segmentu",
          		"straight_segments": "úsečka",
          		"curve_segments": "křivka",
          		"text_contents": "Změnit text",
          		"font_family": "Změnit font",
          		"font_size": "Změnit velikost písma",
          		"bold": "Tučně",
          		"italic": "Kurzíva"
          	},
          	tools: { 
          		"main_menu": "Hlavní menu",
          		"bkgnd_color_opac": "Změnit barvu a průhlednost pozadí",
          		"connector_no_arrow": "Bez šipky",
          		"fitToContent": "přizpůsobit obsahu",
          		"fit_to_all": "Přizpůsobit veškerému obsahu",
          		"fit_to_canvas": "Přizpůsobit stránce",
          		"fit_to_layer_content": "Přizpůsobit obsahu vrstvy",
          		"fit_to_sel": "Přizpůsobit výběru",
          		"align_relative_to": "Zarovnat relativně",
          		"relativeTo": "relatativně k:",
          		"stránce": "stránce",
          		"largest_object": "největšímu objektu",
          		"selected_objects": "zvoleným objektům",
          		"smallest_object": "nejmenšímu objektu",
          		"new_doc": "Nový dokument",
          		"open_doc": "Otevřít dokument",
          		"export_img": "Export",
          		"save_doc": "Uložit dokument",
          		"import_doc": "Importovat SVG",
          		"align_to_page": "Zarovnat element na stránku",
          		"align_bottom": "Zarovnat dolů",
          		"align_center": "Zarovnat nastřed",
          		"align_left": "Zarovnat doleva",
          		"align_middle": "Zarovnat nastřed",
          		"align_right": "Zarovnat doprava",
          		"align_top": "Zarovnat nahoru",
          		"mode_select": "Výběr a transformace objektů",
          		"mode_fhpath": "Kresba od ruky",
          		"mode_line": "Úsečka",
          		"mode_connect": "Spojit dva objekty",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Obdélník volnou rukou",
          		"mode_ellipse": "Elipsa",
          		"mode_circle": "Kružnice",
          		"mode_fhellipse": "Elipsa volnou rukou",
          		"mode_path": "Křivka",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Text",
          		"mode_image": "Obrázek",
          		"mode_zoom": "Přiblížení",
          		"mode_eyedropper": "Kapátko",
          		"no_embed": "POZOR: Obrázek nelze uložit s dokumentem. Bude zobrazován z adresáře, kde se nyní nachází.",
          		"undo": "Zpět",
          		"redo": "Znovu",
          		"tool_source": "Upravovat SVG kód",
          		"wireframe_mode": "Zobrazit jen kostru",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Seskupit objekty",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Objekt na křivku",
          		"reorient_path": "Změna orientace křivky",
          		"ungroup": "Zrušit seskupení",
          		"docprops": "Vlastnosti dokumentu",
          		"imagelib": "Image Library",
          		"move_bottom": "Vrstvu úplně dospodu",
          		"move_top": "Vrstvu úplně nahoru",
          		"node_clone": "Vložit nový uzel",
          		"node_delete": "Ostranit uzel",
          		"node_link": "Provázat ovládací body uzlu",
          		"add_subpath": "Přidat další součást křivky",
          		"openclose_path": "Otevřít/zavřít součást křivky",
          		"source_save": "Uložit",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Vrstva",
          		"layers": "Layers",
          		"del": "Odstranit vrstvu",
          		"move_down": "Přesunout vrstvu níž",
          		"new": "Přidat vrstvu",
          		"rename": "Přejmenovat vrstvu",
          		"move_up": "Přesunout vrstvu výš",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Přesunout objekty do:",
          		"move_selected": "Přesunout objekty do jiné vrstvy"
          	},
          	config: {
          		"image_props": "Vlastnosti dokumentu",
          		"doc_title": "Název",
          		"doc_dims": "Vlastní velikost",
          		"included_images": "Vložené obrázky",
          		"image_opt_embed": "Vkládat do dokumentu",
          		"image_opt_ref": "Jen odkazem",
          		"editor_prefs": "Nastavení editoru",
          		"icon_size": "Velikost ikon",
          		"language": "Jazyk",
          		"background": "Obrázek v pozadí editoru",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Pozor: obrázek v pozadí nebude uložen jako součást dokumentu.",
          		"icon_large": "velké",
          		"icon_medium": "střední",
          		"icon_small": "malé",
          		"icon_xlarge": "největší",
          		"select_predefined": "vybrat předdefinovaný:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Nevhodná hodnota",
          		"noContentToFitTo":"Vyberte oblast pro přizpůsobení",
          		"dupeLayerName":"Taková vrstva už bohužel existuje",
          		"enterUniqueLayerName":"Zadejte prosím jedinečné jméno pro vrstvu",
          		"enterNewLayerName":"Zadejte prosím jméno pro novou vrstvu",
          		"layerHasThatName":"Vrstva už se tak jmenuje",
          		"QmoveElemsToLayer":"Opravdu chcete přesunout vybrané objekty do vrstvy '%s'?",
          		"QwantToClear":"Opravdu chcete smazat současný dokument?\nHistorie změn bude také smazána.",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"Chyba v parsování zdrojového kódu SVG.\nChcete se vrátit k původnímu?",
          		"QignoreSourceChanges":"Opravdu chcete stornovat změny provedené v SVG kódu?",
          		"featNotSupported":"Tato vlastnost ještě není k dispozici",
          		"enterNewImgURL":"Vložte adresu URL, na které se nachází vkládaný obrázek",
          		"defsFailOnSave": "POZOR: Kvůli nedokonalosti Vašeho prohlížeče se mohou některé části dokumentu špatně vykreslovat (mohou chybět barevné přechody nebo některé objekty). Po uložení dokumentu by se ale vše mělo zobrazovat správně.",
          		"loadingImage":"Nahrávám obrázek ...",
          		"saveFromBrowser": "Použijte nabídku \"Uložit stránku jako ...\" ve Vašem prohlížeči pro uložení dokumentu do souboru %s.",
          		"noteTheseIssues": "Mohou se vyskytnout následující problémy: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.cy.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "cy",
          	dir : "ltr",
          	common: {
          		"ok": "Cadw",
          		"cancel": "Canslo",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Cliciwch yma i lenwi newid lliw, sifft-cliciwch i newid lliw strôc",
          		"zoom_level": "Newid lefel chwyddo",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Newid lliw llenwi",
          		"stroke_color": "Newid lliw strôc",
          		"stroke_style": "Newid arddull strôc diferyn",
          		"stroke_width": "Lled strôc Newid",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Ongl cylchdro Newid",
          		"blur": "Change gaussian blur value",
          		"opacity": "Newid dewis Didreiddiad eitem",
          		"circle_cx": "CX Newid cylch yn cydlynu",
          		"circle_cy": "Newid cylch&#39;s cy gydgysylltu",
          		"circle_r": "Newid radiws cylch yn",
          		"ellipse_cx": "Newid Ellipse yn CX gydgysylltu",
          		"ellipse_cy": "Newid Ellipse yn cydlynu cy",
          		"ellipse_rx": "Radiws Newid Ellipse&#39;s x",
          		"ellipse_ry": "Radiws Newid Ellipse yn y",
          		"line_x1": "Newid llinell yn cychwyn x gydgysylltu",
          		"line_x2": "Newid llinell yn diweddu x gydgysylltu",
          		"line_y1": "Newid llinell ar y cychwyn yn cydlynu",
          		"line_y2": "Newid llinell yn dod i ben y gydgysylltu",
          		"rect_height": "Uchder petryal Newid",
          		"rect_width": "Lled petryal Newid",
          		"corner_radius": "Newid Hirsgwâr Corner Radiws",
          		"image_width": "Lled delwedd Newid",
          		"image_height": "Uchder delwedd Newid",
          		"image_url": "Newid URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Cynnwys testun Newid",
          		"font_family": "Newid Font Teulu",
          		"font_size": "Newid Maint Ffont",
          		"bold": "Testun Bras",
          		"italic": "Italig Testun"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Newid lliw cefndir / Didreiddiad",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Ffit i Cynnwys",
          		"fit_to_all": "Yn addas i bawb content",
          		"fit_to_canvas": "Ffit i ofyn",
          		"fit_to_layer_content": "Ffit cynnwys haen i",
          		"fit_to_sel": "Yn addas at ddewis",
          		"align_relative_to": "Alinio perthynas i ...",
          		"relativeTo": "cymharol i:",
          		"tudalen": "tudalen",
          		"largest_object": "gwrthrych mwyaf",
          		"selected_objects": "gwrthrychau etholedig",
          		"smallest_object": "lleiaf gwrthrych",
          		"new_doc": "Newydd Delwedd",
          		"open_doc": "Delwedd Agored",
          		"export_img": "Export",
          		"save_doc": "Cadw Delwedd",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Alinio Gwaelod",
          		"align_center": "Alinio Center",
          		"align_left": "Alinio Chwith",
          		"align_middle": "Alinio Canol",
          		"align_right": "Alinio Hawl",
          		"align_top": "Alinio Top",
          		"mode_select": "Dewiswch Offer",
          		"mode_fhpath": "Teclyn pensil",
          		"mode_line": "Llinell Offer",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Hand rhad ac am ddim Hirsgwâr",
          		"mode_ellipse": "Ellipse",
          		"mode_circle": "Cylch",
          		"mode_fhellipse": "Rhad ac am ddim Hand Ellipse",
          		"mode_path": "Offer poly",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Testun Offer",
          		"mode_image": "Offer Delwedd",
          		"mode_zoom": "Offer Chwyddo",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Dadwneud",
          		"redo": "Ail-wneud",
          		"tool_source": "Golygu Ffynhonnell",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Elfennau Grŵp",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Elfennau Ungroup",
          		"docprops": "Document Eiddo",
          		"imagelib": "Image Library",
          		"move_bottom": "Symud i&#39;r Gwaelod",
          		"move_top": "Symud i&#39;r Top",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Cadw",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Dileu Haen",
          		"move_down": "Symud Haen i Lawr",
          		"new": "Haen Newydd",
          		"rename": "Ail-enwi Haen",
          		"move_up": "Symud Haen Up",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Rhagosodol Dewis:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.da.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "da",
          	dir : "ltr",
          	common: {
          		"ok": "Gemme",
          		"cancel": "Annuller",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Klik for at ændre fyldfarve, shift-klik for at ændre stregfarve",
          		"zoom_level": "Skift zoomniveau",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Skift fyldfarve",
          		"stroke_color": "Skift stregfarve",
          		"stroke_style": "Skift slagtilfælde Dash stil",
          		"stroke_width": "Skift slagtilfælde bredde",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Skift rotationsvinkel",
          		"blur": "Change gaussian blur value",
          		"opacity": "Skift valgte element opacitet",
          		"circle_cx": "Skift cirklens cx koordinere",
          		"circle_cy": "Skift cirklens cy koordinere",
          		"circle_r": "Skift cirklens radius",
          		"ellipse_cx": "Skift ellipse&#39;s cx koordinere",
          		"ellipse_cy": "Skift ellipse&#39;s cy koordinere",
          		"ellipse_rx": "Skift ellipse&#39;s x radius",
          		"ellipse_ry": "Skift ellipse&#39;s y radius",
          		"line_x1": "Skift linie&#39;s start x-koordinat",
          		"line_x2": "Skift Line&#39;s slutter x-koordinat",
          		"line_y1": "Skift linjens start y-koordinat",
          		"line_y2": "Skift Line&#39;s slutter y-koordinat",
          		"rect_height": "Skift rektangel højde",
          		"rect_width": "Skift rektanglets bredde",
          		"corner_radius": "Skift Rektangel Corner Radius",
          		"image_width": "Skift billede bredde",
          		"image_height": "Skift billede højde",
          		"image_url": "Skift webadresse",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Skift tekst indhold",
          		"font_family": "Skift Font Family",
          		"font_size": "Skift skriftstørrelse",
          		"bold": "Fed tekst",
          		"italic": "Italic Text"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Skift baggrundsfarve / uigennemsigtighed",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Tilpas til indhold",
          		"fit_to_all": "Passer til alt indhold",
          		"fit_to_canvas": "Tilpas til lærred",
          		"fit_to_layer_content": "Tilpas til lag indhold",
          		"fit_to_sel": "Tilpas til udvælgelse",
          		"align_relative_to": "Juster i forhold til ...",
          		"relativeTo": "i forhold til:",
          		"side": "side",
          		"largest_object": "største objekt",
          		"selected_objects": "valgte objekter",
          		"smallest_object": "mindste objekt",
          		"new_doc": "Nyt billede",
          		"open_doc": "Open SVG",
          		"export_img": "Export",
          		"save_doc": "Gem billede",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Juster Bottom",
          		"align_center": "Centrer",
          		"align_left": "Venstrejusteret",
          		"align_middle": "Juster Mellemøsten",
          		"align_right": "Højrejusteret",
          		"align_top": "Juster Top",
          		"mode_select": "Select Tool",
          		"mode_fhpath": "Pencil Tool",
          		"mode_line": "Line Tool",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Free-Hand Rektangel",
          		"mode_ellipse": "Ellipse",
          		"mode_circle": "Cirkel",
          		"mode_fhellipse": "Free-Hand Ellipse",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Tekstværktøj",
          		"mode_image": "Image Tool",
          		"mode_zoom": "Zoom Tool",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Fortryd",
          		"redo": "Redo",
          		"tool_source": "Edit Source",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Gruppe Elements",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Opdel Elements",
          		"docprops": "Document Properties",
          		"imagelib": "Image Library",
          		"move_bottom": "Flyt til bund",
          		"move_top": "Flyt til toppen",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Gemme",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Slet Layer",
          		"move_down": "Flyt lag ned",
          		"new": "New Layer",
          		"rename": "Omdøb Layer",
          		"move_up": "Flyt Layer Up",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Vælg foruddefinerede:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.de.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "de",
          	dir : "ltr",
          	common: {
          		"ok": "OK",
          		"cancel": "Abbrechen",
          		"key_backspace": "Rücktaste", 
          		"key_del": "Löschen", 
          		"key_down": "nach unten", 
          		"key_up": "nach oben", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Breite",
          		"height": "Höhe"
          	},
          	misc: {
          		"powered_by": "angetrieben durch"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Zeige/Verberge weitere Linien Werkzeuge",
          		"palette_info": "Klick zum Ändern der Füllfarbe, Shift-Klick zum Ändern der Linienfarbe",
          		"zoom_level": "vergrößern",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Füllfarbe ändern",
          		"stroke_color": "Linienfarbe ändern",
          		"stroke_style": "Linienstil ändern",
          		"stroke_width": "Linienbreite ändern",
          		"pos_x": "Ändere die X Koordinate",
          		"pos_y": "Ändere die Y Koordinate",
          		"linecap_butt": "Form der Linienendung: Stumpf",
          		"linecap_round": "Form der Linienendung: Rund",
          		"linecap_square": "Form der Linienendung: Rechteckig",
          		"linejoin_bevel": "Zusammentreffen von zwei Linien: abgeschrägte Kante",
          		"linejoin_miter": "Zusammentreffen von zwei Linien: Gehrung",
          		"linejoin_round": "Zusammentreffen von zwei Linien: Rund",
          		"angle": "Drehwinkel ändern",
          		"blur": "Ändere Gaußschen Weichzeichner Wert",
          		"opacity": "Opazität des ausgewählten Objekts ändern",
          		"circle_cx": "Kreiszentrum (cx) ändern",
          		"circle_cy": "Kreiszentrum (cy) ändern",
          		"circle_r": "Kreisradius (r) ändern",
          		"ellipse_cx": "Ellipsenzentrum (cx) ändern",
          		"ellipse_cy": "Ellipsenzentrum (cy) ändern",
          		"ellipse_rx": "Ellipsenradius (x) ändern",
          		"ellipse_ry": "Ellipsenradius (y) ändern",
          		"line_x1": "X-Koordinate des Linienanfangs ändern",
          		"line_x2": "X-Koordinate des Linienendes ändern",
          		"line_y1": "Y-Koordinate des Linienanfangs ändern",
          		"line_y2": "Y-Koordinate des Linienendes ändern",
          		"rect_height": "Höhe des Rechtecks ändern",
          		"rect_width": "Breite des Rechtecks ändern",
          		"corner_radius": "Eckenradius des Rechtecks ändern",
          		"image_width": "Bildbreite ändern",
          		"image_height": "Bildhöhe ändern",
          		"image_url": "URL ändern",
          		"node_x": "Ändere die X Koordinate des Knoten",
          		"node_y": "Ändere die Y Koordinate des Knoten",
          		"seg_type": "Ändere den Typ des Segments",
          		"straight_segments": "Gerade",
          		"curve_segments": "Kurve",
          		"text_contents": "Textinhalt erstellen und bearbeiten",
          		"font_family": "Schriftart wählen",
          		"font_size": "Schriftgröße einstellen",
          		"bold": "Fetter Text",
          		"italic": "Kursiver Text"
          	},
          	tools: { 
          		"main_menu": "Hauptmenü",
          		"bkgnd_color_opac": "Hintergrundfarbe ändern / Opazität",
          		"connector_no_arrow": "Kein Pfeil",
          		"fitToContent": "An den Inhalt anpassen",
          		"fit_to_all": "An gesamten Inhalt anpassen",
          		"fit_to_canvas": "An die Zeichenfläche anpassen",
          		"fit_to_layer_content": "An Inhalt der Ebene anpassen",
          		"fit_to_sel": "An die Auswahl anpassen",
          		"align_relative_to": "Relativ zu einem anderem Objekt ausrichten ...",
          		"relativeTo": "im Vergleich zu:",
          		"Seite": "Seite",
          		"largest_object": "größtes Objekt",
          		"selected_objects": "gewählte Objekte",
          		"smallest_object": "kleinstes Objekt",
          		"new_doc": "Neues Bild",
          		"open_doc": "Bild öffnen",
          		"export_img": "Export",
          		"save_doc": "Bild speichern",
          		"import_doc": "Importiere SVG",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Unten ausrichten",
          		"align_center": "Zentriert ausrichten",
          		"align_left": "Linksbündig ausrichten",
          		"align_middle": "In der Mitte ausrichten",
          		"align_right": "Rechtsbündig ausrichten",
          		"align_top": "Oben ausrichten",
          		"mode_select": "Objekte auswählen und verändern",
          		"mode_fhpath": "Freihandlinien zeichnen",
          		"mode_line": "Linien zeichnen",
          		"mode_connect": "Verbinde zwei Objekte",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Freihand Rechteck",
          		"mode_ellipse": "Ellipse",
          		"mode_circle": "Kreis",
          		"mode_fhellipse": "Freihand Ellipse",
          		"mode_path": "Pfad zeichnen",
          		"mode_shapelib": "Form-Bibliothek",
          		"mode_text": "Text erstellen und bearbeiten",
          		"mode_image": "Bild einfügen",
          		"mode_zoom": "Zoomfaktor vergrößern oder verringern",
          		"mode_eyedropper": "Ableger",
          		"no_embed": "Hinweis: Dieses Bild kann nicht eingebettet werden. Eine Anzeige hängt von diesem Pfad ab.",
          		"undo": "Rückgängig",
          		"redo": "Wiederherstellen",
          		"tool_source": "Quellecode bearbeiten",
          		"wireframe_mode": "Drahtmodell Modus",
          		"toggle_grid": "Zeige/Verstecke Gitternetz",
          		"clone": "Klone Element(e)",
          		"del": "Lösche Element(e)",
          		"group_elements": "Gruppieren Element(e)",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Gewähltes Objekt in einen Pfad konvertieren",
          		"reorient_path": "Neuausrichtung des Pfades",
          		"ungroup": "Gruppierung aufheben",
          		"docprops": "Dokument-Eigenschaften",
          		"imagelib": "Bilder-Bibliothek",
          		"move_bottom": "Die gewählten Objekte nach ganz unten schieben",
          		"move_top": "Die gewählten Objekte nach ganz oben anheben",
          		"node_clone": "Klone den Knoten",
          		"node_delete": "Lösche den Knoten",
          		"node_link": "Gekoppelte oder separate Kontroll Punkte für die Bearbeitung des Pfades",
          		"add_subpath": "Teilpfad hinzufügen",
          		"openclose_path": "Öffne/Verbinde Unterpfad",
          		"source_save": "Änderungen akzeptieren",
          		"cut": "Ausschneiden",
          		"copy": "Kopieren",
          		"paste": "Einfügen",
          		"paste_in_place": "An Originalposition einfügen",
          		"Löschen": "Löschen",
          		"group": "Gruppieren",
          		"move_front": "Nach ganz oben anheben",
          		"move_up": "Anheben",
          		"move_down": "Absenken",
          		"move_back": "Nach ganz unten absenken"
          	},
          	layers: {
          		"layer": "Ebene",
          		"layers": "Ebenen",
          		"del": "Ebene löschen",
          		"move_down": "Ebene nach unten verschieben",
          		"new": "Neue Ebene",
          		"rename": "Ebene umbenennen",
          		"move_up": "Ebene nach oben verschieben",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Verschiebe ausgewählte Objekte:",
          		"move_selected": "Verschiebe ausgewählte Objekte auf eine andere Ebene"
          	},
          	config: {
          		"image_props": "Bildeigenschaften",
          		"doc_title": "Titel",
          		"doc_dims": "Dimension der Zeichenfläche",
          		"included_images": "Eingefügte Bilder",
          		"image_opt_embed": "Daten einbetten (lokale Dateien)",
          		"image_opt_ref": "Benutze die Datei Referenz",
          		"editor_prefs": "Editor Einstellungen",
          		"icon_size": "Symbol Abmessungen",
          		"language": "Sprache",
          		"background": "Editor Hintergrund",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Anmerkung: Der Hintergrund wird mit der Speicherung des Bildes nicht gespeichert.",
          		"icon_large": "Groß",
          		"icon_medium": "Mittel",
          		"icon_small": "Klein",
          		"icon_xlarge": "Sehr Groß",
          		"select_predefined": "Auswahl einer vordefinierten:",
          		"units_and_rulers": "Einheiten und Lineale",
          		"show_rulers": "Zeige Lineale",
          		"base_unit": "Basiseinheit:",
          		"grid": "Gitternetz",
          		"snapping_onoff": "Einrasten an/aus",
          		"snapping_stepsize": "Einrastungs Abstand:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Standard",
          		"object": "Objekte",
          		"symbol": "Symbole",
          		"arrow": "Pfeile",
          		"flowchart": "Flussdiagramme",
          		"animal": "Tiere",
          		"game": "Spielkarten und Schach",
          		"dialog_balloon": "Sprechblasen",
          		"electronics": "Elektronik",
          		"math": "Mathematik",
          		"music": "Musik",
          		"misc": "Sonstige",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Fehlerhafter Wert",
          		"noContentToFitTo":"Kein Inhalt anzupassen",
          		"dupeLayerName":"Eine Ebene hat bereits diesen Namen!",
          		"enterUniqueLayerName":"Verwenden Sie einen eindeutigen Namen für die Ebene",
          		"enterNewLayerName":"Geben Sie bitte einen neuen Namen für die Ebene ein",
          		"layerHasThatName":"Eine Ebene hat bereits diesen Namen",
          		"QmoveElemsToLayer":"Verschiebe ausgewählte Objekte in die Ebene '%s'?",
          		"QwantToClear":"Möchten Sie die Zeichnung löschen?\nDadurch wird auch die Rückgängig Funktion zurückgesetzt!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"Die Syntaxanalyse Ihrer SVG Quelle enthält Fehler.\nOriginal SVG wiederherstellen?",
          		"QignoreSourceChanges":"Soll die Änderung am SVG Quelltext ignoriert werden?",
          		"featNotSupported":"Diese Eigenschaft wird nicht unterstützt",
          		"enterNewImgURL":"Geben Sie die URL für das neue Bild an",
          		"defsFailOnSave": "Hinweis: Aufgrund eines Fehlers in Ihrem Browser, kann dieses Bild falsch angezeigt werden (fehlende Gradienten oder Elemente). Es wird jedoch richtig angezeigt sobald es tatsächlich gespeichert wird.",
          		"loadingImage":"Bild wird geladen, bitte warten ...",
          		"saveFromBrowser": "Wählen Sie \"Speichern unter ...\" in Ihrem Browser, um das Bild als Datei %s zu speichern.",
          		"noteTheseIssues": "Beachten Sie außerdem die folgenden Probleme: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.el.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "el",
          	dir : "ltr",
          	common: {
          		"ok": "Αποθηκεύω",
          		"cancel": "Άκυρο",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Κάντε κλικ για να συμπληρώσετε την αλλαγή χρώματος, στροφή κλικ για να αλλάξετε το χρώμα εγκεφαλικό",
          		"zoom_level": "Αλλαγή επίπεδο μεγέθυνσης",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Αλλαγή συμπληρώστε χρώμα",
          		"stroke_color": "Αλλαγή χρώματος εγκεφαλικό",
          		"stroke_style": "Αλλαγή στυλ παύλα εγκεφαλικό",
          		"stroke_width": "Αλλαγή πλάτος γραμμής",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Αλλαγή γωνία περιστροφής",
          		"blur": "Change gaussian blur value",
          		"opacity": "Αλλαγή αδιαφάνεια επιλεγμένο σημείο",
          		"circle_cx": "Cx Αλλαγή κύκλου συντονίζουν",
          		"circle_cy": "Αλλαγή κύκλου cy συντονίζουν",
          		"circle_r": "Αλλαγή ακτίνα κύκλου",
          		"ellipse_cx": "Αλλαγή ellipse του CX συντονίζουν",
          		"ellipse_cy": "Αλλαγή ellipse του cy συντονίζουν",
          		"ellipse_rx": "X ακτίνα Αλλαγή ellipse του",
          		"ellipse_ry": "Y ακτίνα Αλλαγή ellipse του",
          		"line_x1": "Αλλαγή γραμμής εκκίνησης x συντονίζουν",
          		"line_x2": "Αλλαγή γραμμής λήγει x συντονίζουν",
          		"line_y1": "Αλλαγή γραμμής εκκίνησης y συντονίζουν",
          		"line_y2": "Αλλαγή γραμμής λήγει y συντονίζουν",
          		"rect_height": "Αλλαγή ύψος ορθογωνίου",
          		"rect_width": "Αλλαγή πλάτους ορθογώνιο",
          		"corner_radius": "Αλλαγή ορθογώνιο Corner Radius",
          		"image_width": "Αλλαγή πλάτος εικόνας",
          		"image_height": "Αλλαγή ύψος εικόνας",
          		"image_url": "Αλλαγή URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Αλλαγή περιεχόμενο κειμένου",
          		"font_family": "Αλλαγή γραμματοσειράς Οικογένεια",
          		"font_size": "Αλλαγή μεγέθους γραμματοσειράς",
          		"bold": "Bold Text",
          		"italic": "Πλάγιους"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Αλλαγή χρώματος φόντου / αδιαφάνεια",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Fit to Content",
          		"fit_to_all": "Ταιριάζει σε όλο το περιεχόμενο",
          		"fit_to_canvas": "Προσαρμογή στο μουσαμά",
          		"fit_to_layer_content": "Προσαρμογή στο περιεχόμενο στρώμα",
          		"fit_to_sel": "Fit to επιλογή",
          		"align_relative_to": "Στοίχιση σε σχέση με ...",
          		"relativeTo": "σε σχέση με:",
          		"σελίδα": "σελίδα",
          		"largest_object": "μεγαλύτερο αντικείμενο",
          		"selected_objects": "εκλέγεται αντικείμενα",
          		"smallest_object": "μικρότερο αντικείμενο",
          		"new_doc": "Νέα εικόνα",
          		"open_doc": "Άνοιγμα εικόνας",
          		"export_img": "Export",
          		"save_doc": "Αποθήκευση εικόνας",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Στοίχισηκάτω",
          		"align_center": "Στοίχισηστοκέντρο",
          		"align_left": "Στοίχισηαριστερά",
          		"align_middle": "Ευθυγράμμιση Μέση",
          		"align_right": "Στοίχισηδεξιά",
          		"align_top": "Στοίχισηπάνω",
          		"mode_select": "Select Tool",
          		"mode_fhpath": "Εργαλείομολυβιού",
          		"mode_line": "Line Tool",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Δωρεάν-Hand ορθογώνιο",
          		"mode_ellipse": "Ellipse",
          		"mode_circle": "Κύκλος",
          		"mode_fhellipse": "Δωρεάν-Hand Ellipse",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Κείμενο Tool",
          		"mode_image": "Image Tool",
          		"mode_zoom": "Zoom Tool",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Αναίρεση",
          		"redo": "Redo",
          		"tool_source": "Επεξεργασία Πηγή",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Ομάδα Στοιχεία",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Κατάργηση ομαδοποίησης Στοιχεία",
          		"docprops": "Ιδιότητες εγγράφου",
          		"imagelib": "Image Library",
          		"move_bottom": "Μετακίνηση προς τα κάτω",
          		"move_top": "Μετακίνηση στην αρχή",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Αποθηκεύω",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Διαγραφήστρώματος",
          		"move_down": "Μετακίνηση Layer Down",
          		"new": "Νέο Layer",
          		"rename": "Μετονομασία Layer",
          		"move_up": "Μετακίνηση Layer Up",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Επιλογή προκαθορισμένων:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.en.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "en",
          	dir : "ltr",
          	common: {
          		"ok": "OK",
          		"cancel": "Cancel",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Click to change fill color, shift-click to change stroke color",
          		"zoom_level": "Change zoom level",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Change fill color",
          		"stroke_color": "Change stroke color",
          		"stroke_style": "Change stroke dash style",
          		"stroke_width": "Change stroke width by 1, shift-click to change by 0.1",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Change rotation angle",
          		"blur": "Change gaussian blur value",
          		"opacity": "Change selected item opacity",
          		"circle_cx": "Change circle's cx coordinate",
          		"circle_cy": "Change circle's cy coordinate",
          		"circle_r": "Change circle's radius",
          		"ellipse_cx": "Change ellipse's cx coordinate",
          		"ellipse_cy": "Change ellipse's cy coordinate",
          		"ellipse_rx": "Change ellipse's x radius",
          		"ellipse_ry": "Change ellipse's y radius",
          		"line_x1": "Change line's starting x coordinate",
          		"line_x2": "Change line's ending x coordinate",
          		"line_y1": "Change line's starting y coordinate",
          		"line_y2": "Change line's ending y coordinate",
          		"rect_height": "Change rectangle height",
          		"rect_width": "Change rectangle width",
          		"corner_radius": "Change Rectangle Corner Radius",
          		"image_width": "Change image width",
          		"image_height": "Change image height",
          		"image_url": "Change URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Change text contents",
          		"font_family": "Change Font Family",
          		"font_size": "Change Font Size",
          		"bold": "Bold Text",
          		"italic": "Italic Text"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Change background color/opacity",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Fit to Content",
          		"fit_to_all": "Fit to all content",
          		"fit_to_canvas": "Fit to canvas",
          		"fit_to_layer_content": "Fit to layer content",
          		"fit_to_sel": "Fit to selection",
          		"align_relative_to": "Align relative to ...",
          		"relativeTo": "relative to:",
          		"page": "page",
          		"largest_object": "largest object",
          		"selected_objects": "selected objects",
          		"smallest_object": "smallest object",
          		"new_doc": "New Image",
          		"open_doc": "Open SVG",
          		"export_img": "Export",
          		"save_doc": "Save Image",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Align Bottom",
          		"align_center": "Align Center",
          		"align_left": "Align Left",
          		"align_middle": "Align Middle",
          		"align_right": "Align Right",
          		"align_top": "Align Top",
          		"mode_select": "Select Tool",
          		"mode_fhpath": "Pencil Tool",
          		"mode_line": "Line Tool",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Free-Hand Rectangle",
          		"mode_ellipse": "Ellipse",
          		"mode_circle": "Circle",
          		"mode_fhellipse": "Free-Hand Ellipse",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Text Tool",
          		"mode_image": "Image Tool",
          		"mode_zoom": "Zoom Tool",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Undo",
          		"redo": "Redo",
          		"tool_source": "Edit Source",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Group Elements",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Ungroup Elements",
          		"docprops": "Document Properties",
          		"imagelib": "Image Library",
          		"move_bottom": "Move to Bottom",
          		"move_top": "Move to Top",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Apply Changes",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Move Layer Up",
          		"move_down": "Move Layer Down",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Delete Layer",
          		"move_down": "Move Layer Down",
          		"new": "New Layer",
          		"rename": "Rename Layer",
          		"move_up": "Move Layer Up",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Select predefined:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer \"%s\"?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.es.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "es",
          	dir : "ltr",
          	common: {
          		"ok": "OK",
          		"cancel": "Cancelar",
          		"key_backspace": "retroceso", 
          		"key_del": "suprimir", 
          		"key_down": "abajo", 
          		"key_up": "arriba", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Mostrar/ocultar herramientas de trazo adicionales",
          		"palette_info": "Haga clic para cambiar el color de relleno. Pulse Mayús y haga clic para cambiar el color del contorno.",
          		"zoom_level": "Cambiar el nivel de zoom",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Cambiar el color de relleno",
          		"stroke_color": "Cambiar el color del contorno",
          		"stroke_style": "Cambiar el estilo del trazo del contorno",
          		"stroke_width": "Cambiar el grosor del contorno",
          		"pos_x": "Cambiar la posición horizontal X",
          		"pos_y": "Cambiar la posición vertical Y",
          		"linecap_butt": "Final de la línea: en el nodo",
          		"linecap_round": "Final de la línea: redondeada",
          		"linecap_square": "Final de la línea: cuadrada",
          		"linejoin_bevel": "Unión: biselada",
          		"linejoin_miter": "Unión: recta",
          		"linejoin_round": "Unión: redondeada",
          		"angle": "Cambiar ángulo de rotación",
          		"blur": "Ajustar desenfoque gausiano",
          		"opacity": "Cambiar la opacidad del objeto seleccionado",
          		"circle_cx": "Cambiar la posición horizonral CX del círculo",
          		"circle_cy": "Cambiar la posición vertical CY del círculo",
          		"circle_r": "Cambiar el radio del círculo",
          		"ellipse_cx": "Cambiar la posición horizontal CX de la elipse",
          		"ellipse_cy": "Cambiar la posición vertical CY de la elipse",
          		"ellipse_rx": "Cambiar el radio horizontal X de la elipse",
          		"ellipse_ry": "Cambiar el radio vertical Y de la elipse",
          		"line_x1": "Cambiar la posición horizontal X del comienzo de la línea",
          		"line_x2": "Cambiar la posición horizontal X del final de la línea",
          		"line_y1": "Cambiar la posición vertical Y del comienzo de la línea",
          		"line_y2": "Cambiar la posición vertical Y del final de la línea",
          		"rect_height": "Cambiar la altura del rectángulo",
          		"rect_width": "Cambiar el ancho rectángulo",
          		"corner_radius": "Cambiar el radio de las esquinas del rectángulo",
          		"image_width": "Cambiar el ancho de la imagen",
          		"image_height": "Cambiar la altura de la imagen",
          		"image_url": "Modificar URL",
          		"node_x": "Cambiar la posición horizontal X del nodo",
          		"node_y": "Cambiar la posición vertical Y del nodo",
          		"seg_type": "Cambiar el tipo de segmento",
          		"straight_segments": "Recta",
          		"curve_segments": "Curva",
          		"text_contents": "Modificar el texto",
          		"font_family": "Tipo de fuente",
          		"font_size": "Tamaño de la fuente",
          		"bold": "Texto en negrita",
          		"italic": "Texto en cursiva"
          	},
          	tools: { 
          		"main_menu": "Menú principal",
          		"bkgnd_color_opac": "Cambiar color de fondo / opacidad",
          		"connector_no_arrow": "Sin flecha",
          		"fitToContent": "Ajustar al contenido",
          		"fit_to_all": "Ajustar a todo el contenido",
          		"fit_to_canvas": "Ajustar al lienzo",
          		"fit_to_layer_content": "Ajustar al contenido de la capa",
          		"fit_to_sel": "Ajustar a la selección",
          		"align_relative_to": "Alinear con respecto a ...",
          		"relativeTo": "en relación con:",
          		"Página": "Página",
          		"largest_object": "El objeto más grande",
          		"selected_objects": "Objetos seleccionados",
          		"smallest_object": "El objeto más pequeño",
          		"new_doc": "Nueva imagen",
          		"open_doc": "Abrir imagen",
          		"export_img": "Export",
          		"save_doc": "Guardar imagen",
          		"import_doc": "Importar un archivo SVG",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Alinear parte inferior",
          		"align_center": "Centrar verticalmente",
          		"align_left": "Alinear lado izquierdo",
          		"align_middle": "Centrar horizontalmente",
          		"align_right": "Alinear lado derecho",
          		"align_top": "Alinear parte superior",
          		"mode_select": "Herramienta de selección",
          		"mode_fhpath": "Herramienta de lápiz",
          		"mode_line": "Trazado de líneas",
          		"mode_connect": "Conectar dos objetos",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Rectángulo a mano alzada",
          		"mode_ellipse": "Elipse",
          		"mode_circle": "Círculo",
          		"mode_fhellipse": "Elipse a mano alzada",
          		"mode_path": "Herramienta de trazado",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Insertar texto",
          		"mode_image": "Insertar imagen",
          		"mode_zoom": "Zoom",
          		"mode_eyedropper": "Herramienta de pipeta",
          		"no_embed": "NOTA: La imagen no puede ser integrada. El contenido mostrado dependerá de la imagen ubicada en esta ruta. ",
          		"undo": "Deshacer",
          		"redo": "Rehacer",
          		"tool_source": "Editar código fuente",
          		"wireframe_mode": "Modo marco de alambre",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Agrupar objetos",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convertir a trazado",
          		"reorient_path": "Reorientar el trazado",
          		"ungroup": "Desagrupar objetos",
          		"docprops": "Propiedades del documento",
          		"imagelib": "Image Library",
          		"move_bottom": "Mover abajo",
          		"move_top": "Mover arriba",
          		"node_clone": "Clonar nodo",
          		"node_delete": "Suprimir nodo",
          		"node_link": "Enlazar puntos de control",
          		"add_subpath": "Añadir subtrazado",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Aplicar cambios",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"suprimir": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Capa",
          		"layers": "Layers",
          		"del": "Suprimir capa",
          		"move_down": "Mover la capa hacia abajo",
          		"new": "Nueva capa",
          		"rename": "Renombrar capa",
          		"move_up": "Mover la capa hacia arriba",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Desplazar objetos a:",
          		"move_selected": "Mover los objetos seleccionados a otra capa"
          	},
          	config: {
          		"image_props": "Propiedades de la Imagen",
          		"doc_title": "Título",
          		"doc_dims": "Tamaño del lienzo",
          		"included_images": "Imágenes integradas",
          		"image_opt_embed": "Integrar imágenes en forma de datos (archivos locales)",
          		"image_opt_ref": "Usar la referencia del archivo",
          		"editor_prefs": "Preferencias del Editor",
          		"icon_size": "Tamaño de los iconos",
          		"language": "Idioma",
          		"background": "Fondo del editor",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Nota: El fondo no se guardará junto con la imagen.",
          		"icon_large": "Grande",
          		"icon_medium": "Mediano",
          		"icon_small": "Pequeño",
          		"icon_xlarge": "Muy grande",
          		"select_predefined": "Seleccionar predefinido:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Valor no válido",
          		"noContentToFitTo":"No existe un contenido al que ajustarse.",
          		"dupeLayerName":"¡Ya existe una capa con este nombre!",
          		"enterUniqueLayerName":"Introduzca otro nombre distinto para la capa.",
          		"enterNewLayerName":"Introduzca el nuevo nombre de la capa.",
          		"layerHasThatName":"El nombre introducido es el nombre actual de la capa.",
          		"QmoveElemsToLayer":"¿Desplazar los elementos seleccionados a la capa '%s'?",
          		"QwantToClear":"¿Desea borrar el dibujo?\n¡El historial de acciones también se borrará!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"Existen errores sintácticos en su código fuente SVG.\n¿Desea volver al código fuente SVG original?",
          		"QignoreSourceChanges":"¿Desea ignorar los cambios realizados sobre el código fuente SVG?",
          		"featNotSupported":"Función no compatible.",
          		"enterNewImgURL":"Introduzca la nueva URL de la imagen.",
          		"defsFailOnSave": "NOTA: Debido a un fallo de su navegador, es posible que la imagen aparezca de forma incorrecta (ciertas gradaciones o elementos podría perderse). La imagen aparecerá en su forma correcta una vez guardada.",
          		"loadingImage":"Cargando imagen. Espere, por favor.",
          		"saveFromBrowser": "Seleccionar \"Guardar como...\" en su navegador para guardar la imagen en forma de archivo %s.",
          		"noteTheseIssues": "Existen además los problemas siguientes:",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.et.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "et",
          	dir : "ltr",
          	common: {
          		"ok": "Salvestama",
          		"cancel": "Tühista",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Click muuta täitke värvi, Shift-nuppu, et muuta insult värvi",
          		"zoom_level": "Muuda suumi taset",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Muuda täitke värvi",
          		"stroke_color": "Muuda insult värvi",
          		"stroke_style": "Muuda insult kriips stiil",
          		"stroke_width": "Muuda insult laius",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Muuda Pöördenurk",
          		"blur": "Change gaussian blur value",
          		"opacity": "Muuda valitud elemendi läbipaistmatus",
          		"circle_cx": "Muuda ringi&#39;s cx kooskõlastada",
          		"circle_cy": "Muuda ringi&#39;s cy kooskõlastada",
          		"circle_r": "Muuda ring on raadiusega",
          		"ellipse_cx": "Muuda ellips&#39;s cx kooskõlastada",
          		"ellipse_cy": "Muuda ellips&#39;s cy kooskõlastada",
          		"ellipse_rx": "Muuda ellips&#39;s x raadius",
          		"ellipse_ry": "Muuda ellips&#39;s y raadius",
          		"line_x1": "Muuda rööbastee algab x-koordinaadi",
          		"line_x2": "Muuda Line lõpeb x-koordinaadi",
          		"line_y1": "Muuda rööbastee algab y-koordinaadi",
          		"line_y2": "Muuda Line lõppenud y-koordinaadi",
          		"rect_height": "Muuda ristküliku kõrgus",
          		"rect_width": "Muuda ristküliku laius",
          		"corner_radius": "Muuda ristkülik Nurgakabe Raadius",
          		"image_width": "Muuda pilt laius",
          		"image_height": "Muuda pilt kõrgus",
          		"image_url": "Change URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Muuda teksti sisu",
          		"font_family": "Muutke Kirjasinperhe",
          		"font_size": "Change font size",
          		"bold": "Rasvane kiri",
          		"italic": "Kursiiv"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Muuda tausta värvi / läbipaistmatus",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Fit to Content",
          		"fit_to_all": "Sobita kogu sisu",
          		"fit_to_canvas": "Sobita lõuend",
          		"fit_to_layer_content": "Sobita kiht sisu",
          		"fit_to_sel": "Fit valiku",
          		"align_relative_to": "Viia võrreldes ...",
          		"relativeTo": "võrreldes:",
          		"lehekülg": "lehekülg",
          		"largest_object": "suurim objekt",
          		"selected_objects": "valitud objektide",
          		"smallest_object": "väikseim objekt",
          		"new_doc": "Uus pilt",
          		"open_doc": "Pildi avamine",
          		"export_img": "Export",
          		"save_doc": "Salvesta pilt",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Viia Bottom",
          		"align_center": "Keskele joondamine",
          		"align_left": "Vasakjoondus",
          		"align_middle": "Viia Lähis -",
          		"align_right": "Paremjoondus",
          		"align_top": "Viia Üles",
          		"mode_select": "Vali Tool",
          		"mode_fhpath": "Pencil Tool",
          		"mode_line": "Line Tool",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Online-Hand Ristkülik",
          		"mode_ellipse": "Ellips",
          		"mode_circle": "Circle",
          		"mode_fhellipse": "Online-Hand Ellips",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Tekst Tool",
          		"mode_image": "Pilt Tool",
          		"mode_zoom": "Zoom Tool",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Undo",
          		"redo": "Redo",
          		"tool_source": "Muuda Allikas",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Rühma elemendid",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Lõhu Elements",
          		"docprops": "Dokumendi omadused",
          		"imagelib": "Image Library",
          		"move_bottom": "Liiguta alla",
          		"move_top": "Liiguta üles",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Salvestama",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Kustuta Kiht",
          		"move_down": "Liiguta kiht alla",
          		"new": "Uus kiht",
          		"rename": "Nimeta kiht",
          		"move_up": "Liiguta kiht üles",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Valige eelmääratletud:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.fa.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "fa",
          	dir : "ltr",
          	common: {
          		"ok": "‫تأیید‬",
          		"cancel": "‫لغو‬",
          		"key_backspace": "‫پس بر ‬", 
          		"key_del": "‫حذف ‬", 
          		"key_down": "‫پایین ‬", 
          		"key_up": "‫بالا ‬", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "‫برای تغییر رنگ، کلیک کنید. برای تغییر رنگ لبه، کلید تبدیل (shift) را فشرده و کلیک کنید‬",
          		"zoom_level": "‫تغییر بزرگ نمایی‬",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "‫تغییر رنگ‬",
          		"stroke_color": "‫تغییر رنگ لبه‬",
          		"stroke_style": "‫تغییر نقطه چین لبه‬",
          		"stroke_width": "‫تغییر عرض لبه‬",
          		"pos_x": "‫تغییر مختصات X‬",
          		"pos_y": "‫تغییر مختصات Y‬",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "‫تغییر زاویه چرخش‬",
          		"blur": "Change gaussian blur value",
          		"opacity": "‫تغییر تاری عنصر انتخاب شده‬",
          		"circle_cx": "‫تغییر مختصات cx دایره‬",
          		"circle_cy": "‫تغییر مختصات cy دایره‬",
          		"circle_r": "‫تغییر شعاع دایره‬",
          		"ellipse_cx": "‫تغییر مختصات cx بیضی‬",
          		"ellipse_cy": "‫تغییر مختصات cy بیضی‬",
          		"ellipse_rx": "‫تغییر شعاع rx بیضی‬",
          		"ellipse_ry": "‫تغییر شعاع ry بیضی‬",
          		"line_x1": "‫تغییر مختصات x آغاز خط‬",
          		"line_x2": "‫تغییر مختصات x پایان خط‬",
          		"line_y1": "‫تغییر مختصات y آغاز خط‬",
          		"line_y2": "‫تغییر مختصات y پایان خط‬",
          		"rect_height": "‫تغییر ارتفاع مستطیل‬",
          		"rect_width": "‫تغییر عرض مستطیل‬",
          		"corner_radius": "‫شعاع گوشه:‬",
          		"image_width": "‫تغییر عرض تصویر‬",
          		"image_height": "‫تغییر ارتفاع تصویر‬",
          		"image_url": "‫تغییر نشانی وب (url)‬",
          		"node_x": "‫تغییر مختصات x نقطه‬",
          		"node_y": "‫تغییر مختصات y نقطه‬",
          		"seg_type": "‫تغییر نوع قطعه (segment)‬",
          		"straight_segments": "‫مستقیم‬",
          		"curve_segments": "‫منحنی‬",
          		"text_contents": "‫تغییر محتویات متن‬",
          		"font_family": "‫تغییر خانواده قلم‬",
          		"font_size": "‫تغییر اندازه قلم‬",
          		"bold": "‫متن توپر ‬",
          		"italic": "‫متن کج ‬"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "‫تغییر رنگ پس زمینه / تاری‬",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "‫هم اندازه شدن با محتوا‬",
          		"fit_to_all": "‫هم اندازه شدن با همه محتویات‬",
          		"fit_to_canvas": "‫هم اندازه شدن با صفحه مجازی (بوم)‬",
          		"fit_to_layer_content": "‫هم اندازه شدن با محتوای لایه‬",
          		"fit_to_sel": "‫هم اندازه شدن با اشیاء انتخاب شده‬",
          		"align_relative_to": "‫تراز نسبت به ...‬",
          		"relativeTo": "‫نسبت به:‬",
          		"‫صفحه‬": "‫صفحه‬",
          		"largest_object": "‫بزرگترین شئ‬",
          		"selected_objects": "‫اشیاء انتخاب شده‬",
          		"smallest_object": "‫کوچکترین شئ‬",
          		"new_doc": "‫تصویر جدید ‬",
          		"open_doc": "‫باز کردن تصویر ‬",
          		"export_img": "Export",
          		"save_doc": "‫ذخیره تصویر ‬",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "‫تراز پایین‬",
          		"align_center": "‫وسط چین‬",
          		"align_left": "‫چپ چین‬",
          		"align_middle": "‫تراز میانه‬",
          		"align_right": "‫راست چین‬",
          		"align_top": "‫تراز بالا‬",
          		"mode_select": "‫ابزار انتخاب ‬",
          		"mode_fhpath": "‫ابزار مداد ‬",
          		"mode_line": "‫ابزار خط ‬",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "‫مستطیل با قابلیت تغییر پویا‬",
          		"mode_ellipse": "‫بیضی‬",
          		"mode_circle": "‫دایره‬",
          		"mode_fhellipse": "‫بیضی با قابلیت تغییر پویا‬",
          		"mode_path": "‫ابزار مسیر ‬",
          		"mode_shapelib": "Shape library",
          		"mode_text": "‫ابزار متن ‬",
          		"mode_image": "‫ابزار تصویر ‬",
          		"mode_zoom": "‫ابزار بزرگ نمایی ‬",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "‫واگرد ‬",
          		"redo": "‫ازنو ‬",
          		"tool_source": "‫ویرایش منبع ‬",
          		"wireframe_mode": "‫حالت نمایش لبه ها ‬",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "‫قرار دادن عناصر در گروه ‬",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "‫تبدیل به مسیر‬",
          		"reorient_path": "‫جهت دهی مجدد مسیر‬",
          		"ungroup": "‫خارج کردن عناصر از گروه ‬",
          		"docprops": "‫مشخصات سند ‬",
          		"imagelib": "Image Library",
          		"move_bottom": "‫انتقال به پایین ترین ‬",
          		"move_top": "‫انتقال به بالاترین ‬",
          		"node_clone": "‫ایجاد کپی از نقطه‬",
          		"node_delete": "‫حذف نقطه‬",
          		"node_link": "‫پیوند دادن نقاط کنترل‬",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "‫اعمال تغییرات‬",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"‫حذف ‬": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"‫لایه‬",
          		"layers": "Layers",
          		"del": "‫حذف لایه‬",
          		"move_down": "‫انتقال لایه به پایین‬",
          		"new": "‫لایه جدید‬",
          		"rename": "‫تغییر نام لایه‬",
          		"move_up": "‫انتقال لایه به بالا‬",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "‫انتقال عناصر به:‬",
          		"move_selected": "‫انتقال عناصر انتخاب شده به یک لایه متفاوت‬"
          	},
          	config: {
          		"image_props": "‫مشخصات تصویر‬",
          		"doc_title": "‫عنوان‬",
          		"doc_dims": "‫ابعاد صفحه مجازی (بوم)‬",
          		"included_images": "‫تصاویر گنجانده شده‬",
          		"image_opt_embed": "‫داده های جای داده شده (پرونده های محلی)‬",
          		"image_opt_ref": "‫استفاده از ارجاع به پرونده‬",
          		"editor_prefs": "‫تنظیمات ویراستار‬",
          		"icon_size": "‫اندازه شمایل‬",
          		"language": "‫زبان‬",
          		"background": "‫پس زمینه ویراستار‬",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "‫توجه: پس زمینه همراه تصویر ذخیره نخواهد شد.‬",
          		"icon_large": "‫بزرگ‬",
          		"icon_medium": "‫متوسط‬",
          		"icon_small": "‫کوچک‬",
          		"icon_xlarge": "‫خیلی بزرگ‬",
          		"select_predefined": "‫از پیش تعریف شده را انتخاب کنید:‬",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"‫مقدار داده شده نامعتبر است‬",
          		"noContentToFitTo":"‫محتوایی برای هم اندازه شدن وجود ندارد‬",
          		"dupeLayerName":"‫لایه ای با آن نام وجود دارد!‬",
          		"enterUniqueLayerName":"‫لطفا یک نام لایه یکتا انتخاب کنید‬",
          		"enterNewLayerName":"‫لطفا نام لایه جدید را وارد کنید‬",
          		"layerHasThatName":"‫لایه از قبل آن نام را دارد‬",
          		"QmoveElemsToLayer":"‫عناصر انتخاب شده به لایه '%s' منتقل شوند؟‬",
          		"QwantToClear":"‫آیا مطمئن هستید که می خواهید نقاشی را پاک کنید؟\nاین عمل باعث حذف تاریخچه واگرد شما خواهد شد!‬",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"‫در منبع SVG شما خطاهای تجزیه (parse) وجود داشت.\nبه منبع SVG اصلی بازگردانده شود؟‬",
          		"QignoreSourceChanges":"‫تغییرات اعمال شده در منبع SVG نادیده گرفته شوند؟‬",
          		"featNotSupported":"‫این ویژگی پشتیبانی نشده است‬",
          		"enterNewImgURL":"‫نشانی وب (url) تصویر جدید را وارد کنید‬",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.fi.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "fi",
          	dir : "ltr",
          	common: {
          		"ok": "Tallentaa",
          		"cancel": "Peruuta",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Klikkaa muuttaa täyttöväri, Shift-click vaihtaa aivohalvauksen väriä",
          		"zoom_level": "Muuta suurennustaso",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Muuta täyttöväri",
          		"stroke_color": "Muuta aivohalvaus väri",
          		"stroke_style": "Muuta aivohalvaus Dash tyyli",
          		"stroke_width": "Muuta aivohalvaus leveys",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Muuta kiertokulma",
          		"blur": "Change gaussian blur value",
          		"opacity": "Muuta valitun kohteen läpinäkyvyys",
          		"circle_cx": "Muuta Circlen CX koordinoida",
          		"circle_cy": "Muuta Circlen CY koordinoida",
          		"circle_r": "Muuta ympyrän säde",
          		"ellipse_cx": "Muuta ellipsi&#39;s CX koordinoida",
          		"ellipse_cy": "Muuta ellipsi&#39;s CY koordinoida",
          		"ellipse_rx": "Muuta ellipsi&#39;s x säde",
          		"ellipse_ry": "Muuta ellipsi n y säde",
          		"line_x1": "Muuta Linen alkaa x-koordinaatti",
          		"line_x2": "Muuta Linen päättyy x koordinoida",
          		"line_y1": "Muuta Linen alkaa y-koordinaatti",
          		"line_y2": "Muuta Linen päättyy y koordinoida",
          		"rect_height": "Muuta suorakaiteen korkeus",
          		"rect_width": "Muuta suorakaiteen leveys",
          		"corner_radius": "Muuta suorakaide Corner Säde",
          		"image_width": "Muuta kuvan leveys",
          		"image_height": "Muuta kuvan korkeus",
          		"image_url": "Muuta URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Muuta tekstin sisältö",
          		"font_family": "Muuta Font Family",
          		"font_size": "Muuta fontin kokoa",
          		"bold": "Lihavoitu teksti",
          		"italic": "Kursivoitu"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Vaihda taustaväri / sameuden",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Sovita Content",
          		"fit_to_all": "Sovita kaikki content",
          		"fit_to_canvas": "Sovita kangas",
          		"fit_to_layer_content": "Sovita kerros sisältöön",
          		"fit_to_sel": "Sovita valinta",
          		"align_relative_to": "Kohdista suhteessa ...",
          		"relativeTo": "suhteessa:",
          		"sivulta": "sivulta",
          		"largest_object": "Suurin kohde",
          		"selected_objects": "valittujen objektien",
          		"smallest_object": "pienin kohde",
          		"new_doc": "Uusi kuva",
          		"open_doc": "Avaa kuva",
          		"export_img": "Export",
          		"save_doc": "Save Image",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Align Bottom",
          		"align_center": "Keskitä",
          		"align_left": "Tasaa vasemmalle",
          		"align_middle": "Kohdista Lähi",
          		"align_right": "Tasaa oikealle",
          		"align_top": "Kohdista Top",
          		"mode_select": "Valitse työkalu",
          		"mode_fhpath": "Kynätyökalu",
          		"mode_line": "Viivatyökalulla",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Free-Hand suorakaide",
          		"mode_ellipse": "Soikion",
          		"mode_circle": "Ympyrään",
          		"mode_fhellipse": "Free-Hand Ellipse",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Työkalua",
          		"mode_image": "Image Tool",
          		"mode_zoom": "Suurennustyökalu",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Kumoa",
          		"redo": "Tulppaamalla ilmakanavan",
          		"tool_source": "Muokkaa lähdekoodipaketti",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Tuoteryhmään Elements",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Ungroup Elements",
          		"docprops": "Asiakirjan ominaisuudet",
          		"imagelib": "Image Library",
          		"move_bottom": "Move to Bottom",
          		"move_top": "Move to Top",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Tallentaa",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Poista Layer",
          		"move_down": "Siirrä Layer alas",
          		"new": "New Layer",
          		"rename": "Nimeä Layer",
          		"move_up": "Siirrä Layer",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Valitse ennalta:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.fr.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "fr",
          	dir : "ltr",
          	common: {
          		"ok": "OK",
          		"cancel": "Annuler",
          		"key_backspace": "Suppr.", 
          		"key_del": "Retour Arr.", 
          		"key_down": "Bas", 
          		"key_up": "Haut", 
          		"more_opts": "Plus d'options",
          		"url": "URL",
          		"width": "Largeur",
          		"height": "Hauteur"
          	},
          	misc: {
          		"powered_by": "Propulsé par"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Montrer/Cacher plus d'outils de Contour",
          		"palette_info": "Cliquer pour changer la couleur de remplissage, Maj-Clic pour changer la couleur de contour",
          		"zoom_level": "Changer le niveau de zoom",
          		"panel_drag": "Tirer vers la gauche/droite pour redimentionner le panneau"
          	},
          	properties: {
          		"id": "Identifier l'élément",
          		"fill_color": "Changer la couleur de remplissage",
          		"stroke_color": "Changer la couleur du contour",
          		"stroke_style": "Changer le style du contour",
          		"stroke_width": "Changer la largeur du contour de 1, Shift-Click pour changer la largeur de 0.1",
          		"pos_x": "Changer la position horizontale X",
          		"pos_y": "Changer la position verticale Y",
          		"linecap_butt": "Terminaison : Sur le nœud",
          		"linecap_round": "Terminaison : Arrondie",
          		"linecap_square": "Terminaison : Carrée",
          		"linejoin_bevel": "Raccord : Biseauté",
          		"linejoin_miter": "Raccord : Droit",
          		"linejoin_round": "Raccord : Arrondi",
          		"angle": "Changer l'angle de rotation",
          		"blur": "Changer la valeur du flou gaussien",
          		"opacity": "Changer l'opacité de l'élément sélectionné",
          		"circle_cx": "Changer la position horizontale cx du cercle",
          		"circle_cy": "Changer la position verticale cy du cercle",
          		"circle_r": "Changer le rayon du cercle",
          		"ellipse_cx": "Changer la position horizontale cx de l'ellipse",
          		"ellipse_cy": "Changer la position verticale cy de l'ellipse",
          		"ellipse_rx": "Changer le rayon horizontal x de l'ellipse",
          		"ellipse_ry": "Changer le rayon vertical y de l'ellipse",
          		"line_x1": "Changer la position horizontale x de début de la ligne",
          		"line_x2": "Changer la position horizontale x de fin de la ligne",
          		"line_y1": "Changer la position verticale y de début de la ligne",
          		"line_y2": "Changer la position verticale y de fin de la ligne",
          		"rect_height": "Changer la hauteur du rectangle",
          		"rect_width": "Changer la largeur du rectangle",
          		"corner_radius": "Changer le rayon des coins du rectangle",
          		"image_width": "Changer la largeur de l'image",
          		"image_height": "Changer la hauteur de l'image",
          		"image_url": "Modifier l'URL",
          		"node_x": "Changer la positon horizontale x du nœud",
          		"node_y": "Changer la position verticale y du nœud",
          		"seg_type": "Changer le type du Segment",
          		"straight_segments": "Droit",
          		"curve_segments": "Courbe",
          		"text_contents": "Changer le contenu du texte",
          		"font_family": "Changer la famille de police",
          		"font_size": "Changer la taille de la police",
          		"bold": "Texte en gras",
          		"italic": "Texte en italique"
          	},
          	tools: { 
          		"main_menu": "Menu principal",
          		"bkgnd_color_opac": "Changer la couleur d'arrière-plan / l'opacité",
          		"connector_no_arrow": "Sans flèches",
          		"fitToContent": "Ajuster au contenu",
          		"fit_to_all": "Ajuster au contenu de tous les calques",
          		"fit_to_canvas": "Ajuster au canevas",
          		"fit_to_layer_content": "Ajuster au contenu du calque",
          		"fit_to_sel": "Ajuster à la sélection",
          		"align_relative_to": "Aligner par rapport à ...",
          		"relativeTo": "Relativement à:",
          		"Page": "Page",
          		"largest_object": "Objet plus gros ",
          		"selected_objects": "Objets sélectionnés",
          		"smallest_object": "Objet plus petit",
          		"new_doc": "Nouvelle image",
          		"open_doc": "Ouvrir une image",
          		"export_img": "Export",
          		"save_doc": "Enregistrer l'image",
          		"import_doc": "Importer un objet SVG",
          		"align_to_page": "Aligner l'élément relativement à la Page",
          		"align_bottom": "Aligner le bas des objets",
          		"align_center": "Centrer verticalement",
          		"align_left": "Aligner les côtés gauches",
          		"align_middle": "Centrer horizontalement",
          		"align_right": "Aligner les côtés droits",
          		"align_top": "Aligner le haut des objets",
          		"mode_select": "Outil de sélection",
          		"mode_fhpath": "Crayon à main levée",
          		"mode_line": "Tracer des lignes",
          		"mode_connect": "Connecter deux objets",
          		"mode_rect": "Outil rectangle",
          		"mode_square": "Outils carré",
          		"mode_fhrect": "Rectangle main levée",
          		"mode_ellipse": "Ellipse",
          		"mode_circle": "Cercle",
          		"mode_fhellipse": "Ellipse main levée",
          		"mode_path": "Dessiner un tracé",
          		"mode_shapelib": "Bibliothèque d'images",
          		"mode_text": "Outil Texte",
          		"mode_image": "Outil Image",
          		"mode_zoom": "Zoom",
          		"mode_eyedropper": "Outil Pipette",
          		"no_embed": "NOTE: Cette image ne peut être incorporée en tant que données. Le contenu affiché sera celui de l'image située à cette adresse",
          		"undo": "Annuler l'action",
          		"redo": "Refaire l'action",
          		"tool_source": "Modifier la source",
          		"wireframe_mode": "Mode Fil de Fer",
          		"toggle_grid": "Montrer/cacher la grille",
          		"clone": "Cloner élement(s)",
          		"del": "Supprimer élement(s)",
          		"group_elements": "Grouper les éléments",
          		"make_link": "Créer hyperlien",
          		"set_link_url": "Définir le lien URL (laisser vide pour supprimer)",
          		"to_path": "Convertir en tracé",
          		"reorient_path": "Réorienter le tracé",
          		"ungroup": "Dégrouper les éléments",
          		"docprops": "Propriétés du document",
          		"imagelib": "Bibliothèque d'images",
          		"move_bottom": "Déplacer vers le bas",
          		"move_top": "Déplacer vers le haut",
          		"node_clone": "Cloner le nœud",
          		"node_delete": "Supprimer le nœud",
          		"node_link": "Rendre les points de contrôle solidaires",
          		"add_subpath": "Ajouter un tracé secondaire",
          		"openclose_path": "Ouvrir/Fermer sous-chemin",
          		"source_save": "Appliquer Modifications",
          		"cut": "Couper",
          		"copy": "Copier",
          		"paste": "Coller",
          		"paste_in_place": "Coller sur place",
          		"Retour Arr.": "Supprimer",
          		"group": "Group",
          		"move_front": "Placer au premier plan",
          		"move_up": "Avancer d'un plan",
          		"move_down": "Placer en arrière plan",
          		"move_back": "Reculer d'un plan"
          	},
          	layers: {
          		"layer":"Calque",
          		"layers": "Calques",
          		"del": "Supprimer le calque",
          		"move_down": "Descendre le calque",
          		"new": "Nouveau calque",
          		"rename": "Renommer le calque",
          		"move_up": "Monter le calque",
          		"dupe": "Dupliquer calque",
          		"merge_down": "Fusionner vers le bas",
          		"merge_all": "Tout fusionner",
          		"move_elems_to": "Déplacer éléments vers:",
          		"move_selected": "Déplacer les éléments sélectionnés vers un autre calque"
          	},
          	config: {
          		"image_props": "Propriétés de l'Image",
          		"doc_title": "Titre",
          		"doc_dims": "Dimensions du canevas",
          		"included_images": "Images incorporées",
          		"image_opt_embed": "Incorporer les images en tant que données (fichiers locaux)",
          		"image_opt_ref": "Utiliser la référence des images ",
          		"editor_prefs": "Préférences de l'Éditeur",
          		"icon_size": "Taille des icônes",
          		"language": "Langue",
          		"background": "Toile de fond de l'Éditeur",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: La toile de fond n'est pas sauvegardée avec l'image.",
          		"icon_large": "Grande",
          		"icon_medium": "Moyenne",
          		"icon_small": "Petite",
          		"icon_xlarge": "Super-Grande",
          		"select_predefined": "Sélectionner prédéfinis:",
          		"units_and_rulers": "Unités & Règles",
          		"show_rulers": "Afficher les règles",
          		"base_unit": "Unité de mesure:",
          		"grid": "Grille",
          		"snapping_onoff": "Épingler oui/non",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Couleur de la grille"
          	},
          	shape_cats: {
          		"basic": "Basique",
          		"object": "Objets",
          		"symbol": "Symboles",
          		"arrow": "Flèches",
          		"flowchart": "Diagramme de flux",
          		"animal": "Animaux",
          		"game": "Cartes & Echecs",
          		"dialog_balloon": "Bulles de dialogue",
          		"electronics": "Electronique",
          		"math": "Mathématiques",
          		"music": "Musique",
          		"misc": "Divers",
          		"raphael_1": "raphaeljs.com ensemble 1",
          		"raphael_2": "raphaeljs.com ensemble 2"
          	},
          	imagelib: {
          		"select_lib": "Choisir une image dans la bibliothèque",
          		"show_list": "Liste de la bibliotèque d'images",
          		"import_single": "Importation simple",
          		"import_multi": "Importation multiple",
          		"open": "Ouvrir en tant que nouveau document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Valeur fournie invalide",
          		"noContentToFitTo":"Il n'y a pas de contenu auquel ajuster",
          		"dupeLayerName":"Il existe déjà un calque de ce nom !",
          		"enterUniqueLayerName":"Veuillez entrer un nom (unique) pour le calque",
          		"enterNewLayerName":"Veuillez entrer le nouveau nom du calque",
          		"layerHasThatName":"Le calque porte déjà ce nom",
          		"QmoveElemsToLayer":"Déplacer les éléments sélectionnés vers le calque '%s' ?",
          		"QwantToClear":"Voulez-vous effacer le dessin ?\nL'historique de vos actions sera également effacé !",
          		"QwantToOpen":"Voulez-vous ouvrir un nouveau document?\nVous perderez l'historique de vos modifications!",
          		"QerrorsRevertToSource":"Il y a des erreurs d'analyse syntaxique dans votre code-source SVG.\nRevenir au code-source SVG avant modifications ?",
          		"QignoreSourceChanges":"Ignorer les modifications faites à la source SVG ?",
          		"featNotSupported":"Fonction non supportée",
          		"enterNewImgURL":"Entrer la nouvelle URL de l'image",
          		"defsFailOnSave": "NOTE : À cause d'un bug de votre navigateur, cette image peut être affichée de façon incorrecte (dégradés ou éléments manquants). Cependant, une fois enregistrée, elle sera correcte.",
          		"loadingImage":"Chargement de l'image, veuillez patienter...",
          		"saveFromBrowser": "Selectionner \"Enregistrer sous...\" dans votre navigateur pour sauvegarder l'image en tant que fichier %s.",
          		"noteTheseIssues": "Notez également les problèmes suivants : ",
          		"unsavedChanges": "Il y a des changements non sauvegardés.",
          		"enterNewLinkURL": "Entrez la nouvel hyperlien URL",
          		"errorLoadingSVG": "Erreur: Impossible de charger le document SVG",
          		"URLloadFail": "Impossible de charger l'URL",
          		"retrieving": "Récupère \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.fy.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "fy",
          	dir : "ltr",
          	common: {
          		"ok": "Ok",
          		"cancel": "Ôfbrekke",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "omleech", 
          		"key_up": "omheech", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Klik om de folkleur te feroarjen, shift-klik om de linekleur te feroarjen.",
          		"zoom_level": "Yn-/útzoome",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Folkleur oanpasse",
          		"stroke_color": "Linekleur oanpasse",
          		"stroke_style": "Linestijl oanpasse",
          		"stroke_width": "Linebreedte oanpasse",
          		"pos_x": "X-koördinaat oanpasse",
          		"pos_y": "Y-koördinaat oanpasse",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Draaie",
          		"blur": "Change gaussian blur value",
          		"opacity": "Trochsichtigens oanpasse",
          		"circle_cx": "Feroarje it X-koördinaat fan it middelpunt fan'e sirkel.",
          		"circle_cy": "Feroarje it Y-koördinaat fan it middelpunt fan'e sirkel.",
          		"circle_r": "Feroarje sirkelradius",
          		"ellipse_cx": "Feroarje it X-koördinaat fan it middelpunt fan'e ellips.",
          		"ellipse_cy": "Feroarje it Y-koördinaat fan it middelpunt fan'e ellips.",
          		"ellipse_rx": "Feroarje ellips X radius",
          		"ellipse_ry": "Feroarje ellips Y radius",
          		"line_x1": "Feroarje start X koördinaat fan'e line",
          		"line_x2": "Feroarje ein X koördinaat fan'e line",
          		"line_y1": "Feroarje start Y koördinaat fan'e line",
          		"line_y2": "Feroarje ein Y koördinaat fan'e line",
          		"rect_height": "Hichte rjochthoeke oanpasse",
          		"rect_width": "Breedte rjochthoeke oanpasse",
          		"corner_radius": "Hoekeradius oanpasse",
          		"image_width": "Breedte ôfbielding oanpasse",
          		"image_height": "Hichte ôfbielding oanpasse",
          		"image_url": "URL oanpasse",
          		"node_x": "X-koördinaat knooppunt oanpasse",
          		"node_y": "Y-koördinaat knooppunt oanpasse",
          		"seg_type": "Segmenttype oanpasse",
          		"straight_segments": "Rjocht",
          		"curve_segments": "Bûcht",
          		"text_contents": "Tekst oanpasse",
          		"font_family": "Lettertype oanpasse",
          		"font_size": "Lettergrutte oanpasse",
          		"bold": "Fet",
          		"italic": "Skean"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Eftergrûnkleur/trochsichtigens oanpasse",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Passe op ynhâld",
          		"fit_to_all": "Op alle ynhâld passe",
          		"fit_to_canvas": "Op kanvas passe",
          		"fit_to_layer_content": "Op laachynhâld passe",
          		"fit_to_sel": "Op seleksje passe",
          		"align_relative_to": "Útlijne relatyf oan...",
          		"relativeTo": "Relatief tsjinoer:",
          		"Side": "Side",
          		"largest_object": "Grutste ûnderdiel",
          		"selected_objects": "Selektearre ûnderdielen",
          		"smallest_object": "Lytste ûnderdiel",
          		"new_doc": "Nije ôfbielding",
          		"open_doc": "Ôfbielding iepenje",
          		"export_img": "Export",
          		"save_doc": "Ôfbielding bewarje",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Ûnder útlijne",
          		"align_center": "Midden útlijne",
          		"align_left": "Lofts útlijne",
          		"align_middle": "Midden útlijne",
          		"align_right": "Rjochts útlijne",
          		"align_top": "Boppe útlijne",
          		"mode_select": "Selektearje",
          		"mode_fhpath": "Potlead",
          		"mode_line": "Line",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Frije rjochthoeke",
          		"mode_ellipse": "Ellips",
          		"mode_circle": "Sirkel",
          		"mode_fhellipse": "Frije ellips",
          		"mode_path": "Paad",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Tekst",
          		"mode_image": "Ôfbielding",
          		"mode_zoom": "Zoom",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Ungedien meitjse",
          		"redo": "Op 'e nij",
          		"tool_source": "Boarne oanpasse",
          		"wireframe_mode": "Triemodel",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Ûnderdielen groepearje",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Omsette nei paad",
          		"reorient_path": "Paad opnij orientearje",
          		"ungroup": "Groepering opheffe",
          		"docprops": "Dokuminteigenskippen",
          		"imagelib": "Image Library",
          		"move_bottom": "Nei eftergrûn",
          		"move_top": "Nei foargrûn",
          		"node_clone": "Knooppunt duplisearje",
          		"node_delete": "Knooppunt fuortsmite",
          		"node_link": "Knooppunten keppelje",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Feroarings tapasse",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Laach",
          		"layers": "Layers",
          		"del": "Laach fuortsmite",
          		"move_down": "Laach omleech bringe",
          		"new": "Nije laach",
          		"rename": "Laach omneame",
          		"move_up": "Laach omheech bringe",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Ûnderdielen ferplaate nei:",
          		"move_selected": "Selektearre ûnderdielen ferplaatse nei in oare laach"
          	},
          	config: {
          		"image_props": "Ôfbieldingseigenskippen",
          		"doc_title": "Titel",
          		"doc_dims": "Kanvasgrutte",
          		"included_images": "Ynslúten ôfbieldingen",
          		"image_opt_embed": "Ynformaasje tafoege (lokale triemen)",
          		"image_opt_ref": "Triemreferensje brûke",
          		"editor_prefs": "Eigenskippen bewurker",
          		"icon_size": "Ikoangrutte",
          		"language": "Taal",
          		"background": "Eftergrûn bewurker",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Let op: de eftergrûn wurd net mei de ôfbielding bewarre.",
          		"icon_large": "Grut",
          		"icon_medium": "Middel",
          		"icon_small": "Lyts",
          		"icon_xlarge": "Ekstra grut",
          		"select_predefined": "Selektearje:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Ferkearde waarde jûn",
          		"noContentToFitTo":"Gjin ynhâld om te passen",
          		"dupeLayerName":"Der is al in laach mei dy namme!",
          		"enterUniqueLayerName":"Type in unyke laachnamme",
          		"enterNewLayerName":"Type in nije laachnamme",
          		"layerHasThatName":"Laach hat dy namme al",
          		"QmoveElemsToLayer":"Selektearre ûnderdielen ferplaatse nei '%s'?",
          		"QwantToClear":"Ôfbielding leechmeitsje? Dit sil ek de skiednis fuortsmite!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"Der wiene flaters yn de SVG-boarne.\nWeromgean nei foarige SVG-boarne?",
          		"QignoreSourceChanges":"Feroarings yn SVG-boarne negeare?",
          		"featNotSupported":"Funksje wurdt net ûndersteund",
          		"enterNewImgURL":"Jou de nije URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.ga.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "ga",
          	dir : "ltr",
          	common: {
          		"ok": "Sábháil",
          		"cancel": "Cealaigh",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Cliceáil chun athrú a líonadh dath, aistriú-cliceáil chun dath a athrú stróc",
          		"zoom_level": "Athraigh súmáil leibhéal",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Athraigh an dath a líonadh",
          		"stroke_color": "Dath stróc Athrú",
          		"stroke_style": "Athraigh an stíl Fleasc stróc",
          		"stroke_width": "Leithead stróc Athrú",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Uillinn rothlaithe Athrú",
          		"blur": "Change gaussian blur value",
          		"opacity": "Athraigh roghnaithe teimhneacht mír",
          		"circle_cx": "Athraigh an ciorcal a chomhordú CX",
          		"circle_cy": "Athraigh an ciorcal a chomhordú ga",
          		"circle_r": "Athraigh an ciorcal&#39;s ga",
          		"ellipse_cx": "Athraigh Éilips&#39;s CX a chomhordú",
          		"ellipse_cy": "Athraigh an Éilips a chomhordú ga",
          		"ellipse_rx": "Éilips Athraigh an gha x",
          		"ellipse_ry": "Éilips Athraigh an gha y",
          		"line_x1": "Athraigh an líne tosaigh a chomhordú x",
          		"line_x2": "Athraigh an líne deireadh x chomhordú",
          		"line_y1": "Athraigh an líne tosaigh a chomhordú y",
          		"line_y2": "Athrú ar líne deireadh y chomhordú",
          		"rect_height": "Airde dronuilleog Athrú",
          		"rect_width": "Leithead dronuilleog Athrú",
          		"corner_radius": "Athraigh Dronuilleog Cúinne na Ga",
          		"image_width": "Leithead íomhá Athrú",
          		"image_height": "Airde íomhá Athrú",
          		"image_url": "Athraigh an URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Inneachar Athraigh téacs",
          		"font_family": "Athraigh an Cló Teaghlaigh",
          		"font_size": "Athraigh Clómhéid",
          		"bold": "Trom Téacs",
          		"italic": "Iodálach Téacs"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Dath cúlra Athraigh / teimhneacht",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Fit to Content",
          		"fit_to_all": "Laghdaigh do gach ábhar",
          		"fit_to_canvas": "Laghdaigh ar chanbhás",
          		"fit_to_layer_content": "Laghdaigh shraith ábhar a",
          		"fit_to_sel": "Laghdaigh a roghnú",
          		"align_relative_to": "Ailínigh i gcomparáid leis ...",
          		"relativeTo": "i gcomparáid leis:",
          		"leathanach": "leathanach",
          		"largest_object": "réad is mó",
          		"selected_objects": "réada tofa",
          		"smallest_object": "lú réad",
          		"new_doc": "Íomhá Nua",
          		"open_doc": "Íomhá Oscailte",
          		"export_img": "Export",
          		"save_doc": "Sábháil Íomhá",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Cineál Bun",
          		"align_center": "Ailínigh sa Lár",
          		"align_left": "Ailínigh ar Chlé",
          		"align_middle": "Cineál Middle",
          		"align_right": "Ailínigh ar Dheis",
          		"align_top": "Cineál Barr",
          		"mode_select": "Roghnaigh Uirlis",
          		"mode_fhpath": "Phionsail Uirlis",
          		"mode_line": "Uirlis Líne",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Saor Hand Dronuilleog",
          		"mode_ellipse": "Éilips",
          		"mode_circle": "Ciorcal",
          		"mode_fhellipse": "Free-Hand Ellipse",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Téacs Uirlis",
          		"mode_image": "Íomhá Uirlis",
          		"mode_zoom": "Zúmáil Uirlis",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Cealaigh",
          		"redo": "Athdhéan",
          		"tool_source": "Cuir Foinse",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Eilimintí Grúpa",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Eilimintí Díghrúpáil",
          		"docprops": "Doiciméad Airíonna",
          		"imagelib": "Image Library",
          		"move_bottom": "Téigh go Bun",
          		"move_top": "Téigh go Barr",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Sábháil",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Scrios Sraith",
          		"move_down": "Bog Sraith Síos",
          		"new": "Sraith Nua",
          		"rename": "Athainmnigh Sraith",
          		"move_up": "Bog Sraith Suas",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Roghnaigh réamhshainithe:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.gl.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "gl",
          	dir : "ltr",
          	common: {
          		"ok": "Gardar",
          		"cancel": "Cancelar",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Preme aquí para cambiar a cor de recheo, Shift-clic para cambiar a cor do curso",
          		"zoom_level": "Cambiar o nivel de zoom",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Cambia-la cor de recheo",
          		"stroke_color": "Cambiar a cor do curso",
          		"stroke_style": "Modifica o estilo do trazo do curso",
          		"stroke_width": "Cambiar o ancho do curso",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Cambiar o ángulo de xiro",
          		"blur": "Change gaussian blur value",
          		"opacity": "Cambia a opacidade elemento seleccionado",
          		"circle_cx": "Cx Cambiar círculo de coordenadas",
          		"circle_cy": "Círculo Cambio cy coordinar",
          		"circle_r": "Cambiar círculo de raio",
          		"ellipse_cx": "Cambiar elipse cx coordinar",
          		"ellipse_cy": "Elipse Cambio cy coordinar",
          		"ellipse_rx": "Raios X Change elipse",
          		"ellipse_ry": "Radio y Change elipse",
          		"line_x1": "Cambie a liña de partida coordenada x",
          		"line_x2": "Cambie a liña acaba coordenada x",
          		"line_y1": "Cambio na liña do recurso coordinada y",
          		"line_y2": "Salto de liña acaba coordinada y",
          		"rect_height": "Cambiar altura do rectángulo",
          		"rect_width": "Cambiar a largo rectángulo",
          		"corner_radius": "Cambiar Corner Rectangle Radius",
          		"image_width": "Cambiar o ancho da imaxe",
          		"image_height": "Cambiar altura da imaxe",
          		"image_url": "Cambiar URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Cambiar o contido de texto",
          		"font_family": "Cambiar fonte Familia",
          		"font_size": "Mudar tamaño de letra",
          		"bold": "Bold Text",
          		"italic": "Texto en cursiva"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Mudar a cor de fondo / Opacidade",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Axustar ó contido",
          		"fit_to_all": "Axustar a todo o contido",
          		"fit_to_canvas": "Axustar a pantalla",
          		"fit_to_layer_content": "Axustar o contido da capa de",
          		"fit_to_sel": "Axustar a selección",
          		"align_relative_to": "Aliñar en relación a ...",
          		"relativeTo": "en relación ao:",
          		"Portada": "Portada",
          		"largest_object": "maior obxecto",
          		"selected_objects": "obxectos elixidos",
          		"smallest_object": "menor obxecto",
          		"new_doc": "Nova Imaxe",
          		"open_doc": "Abrir Imaxe",
          		"export_img": "Export",
          		"save_doc": "Gardar Imaxe",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Align bottom",
          		"align_center": "Centrar",
          		"align_left": "Aliñar á Esquerda",
          		"align_middle": "Aliñar Medio",
          		"align_right": "Aliñar á Dereita",
          		"align_top": "Align Top",
          		"mode_select": "Seleccionar a ferramenta",
          		"mode_fhpath": "Ferramenta Lapis",
          		"mode_line": "Ferramenta Liña",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Free-Hand Rectangle",
          		"mode_ellipse": "Elipse",
          		"mode_circle": "Circle",
          		"mode_fhellipse": "Free-Hand Ellipse",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Ferramenta de Texto",
          		"mode_image": "Image Tool",
          		"mode_zoom": "Zoom Tool",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Desfacer",
          		"redo": "Volver",
          		"tool_source": "Fonte Editar",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Elementos do grupo",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Elementos Desagrupadas",
          		"docprops": "Propriedades do Documento",
          		"imagelib": "Image Library",
          		"move_bottom": "Move a Bottom",
          		"move_top": "Move to Top",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Gardar",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Delete Layer",
          		"move_down": "Move capa inferior",
          		"new": "New Layer",
          		"rename": "Rename Layer",
          		"move_up": "Move Layer Up",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Seleccione por defecto:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.he.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "he",
          	dir : "ltr",
          	common: {
          		"ok": "לשמור",
          		"cancel": "ביטול",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "לחץ כדי לשנות צבע מילוי, לחץ על Shift-לשנות צבע שבץ",
          		"zoom_level": "שינוי גודל תצוגה",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "שינוי צבע מילוי",
          		"stroke_color": "שינוי צבע שבץ",
          		"stroke_style": "דש שבץ שינוי סגנון",
          		"stroke_width": "שינוי רוחב שבץ",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "שינוי זווית הסיבוב",
          		"blur": "Change gaussian blur value",
          		"opacity": "שינוי הפריט הנבחר אטימות",
          		"circle_cx": "CX מעגל של שנה לתאם",
          		"circle_cy": "מעגל שנה של cy לתאם",
          		"circle_r": "מעגל שנה של רדיוס",
          		"ellipse_cx": "שינוי של אליפסה CX לתאם",
          		"ellipse_cy": "אליפסה שינוי של cy לתאם",
          		"ellipse_rx": "אליפסה שינוי של רדיוס x",
          		"ellipse_ry": "אליפסה שינוי של Y רדיוס",
          		"line_x1": "שינוי קו ההתחלה של x לתאם",
          		"line_x2": "שינוי קו הסיום של x לתאם",
          		"line_y1": "שינוי קו ההתחלה של Y לתאם",
          		"line_y2": "שינוי קו הסיום של Y לתאם",
          		"rect_height": "שינוי גובה המלבן",
          		"rect_width": "שינוי רוחב המלבן",
          		"corner_radius": "לשנות מלבן פינת רדיוס",
          		"image_width": "שינוי רוחב התמונה",
          		"image_height": "שינוי גובה התמונה",
          		"image_url": "שינוי כתובת",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "שינוי תוכן טקסט",
          		"font_family": "שינוי גופן משפחה",
          		"font_size": "שנה גודל גופן",
          		"bold": "טקסט מודגש",
          		"italic": "טקסט נטוי"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "שנה את צבע הרקע / אטימות",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "התאם תוכן",
          		"fit_to_all": "התאם התכנים",
          		"fit_to_canvas": "התאם בד",
          		"fit_to_layer_content": "מתאים לתוכן שכבת",
          		"fit_to_sel": "התאם הבחירה",
          		"align_relative_to": "יישור ביחס ...",
          		"relativeTo": "יחסית:",
          		"דף": "דף",
          		"largest_object": "האובייקט הגדול",
          		"selected_objects": "elected objects",
          		"smallest_object": "הקטן אובייקט",
          		"new_doc": "תמונה חדשה",
          		"open_doc": "פתח תמונה",
          		"export_img": "Export",
          		"save_doc": "שמור תמונה",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "יישור תחתון",
          		"align_center": "ישור לאמצע",
          		"align_left": "יישור לשמאל",
          		"align_middle": "יישור התיכון",
          		"align_right": "יישור לימין",
          		"align_top": "יישור למעלה",
          		"mode_select": "Select Tool",
          		"mode_fhpath": "כלי העיפרון",
          		"mode_line": "כלי הקו",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Free-Hand מלבן",
          		"mode_ellipse": "אליפסה",
          		"mode_circle": "Circle",
          		"mode_fhellipse": "Free-Hand אליפסה",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "כלי טקסט",
          		"mode_image": "כלי תמונה",
          		"mode_zoom": "זום כלי",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "בטל",
          		"redo": "בצע שוב",
          		"tool_source": "מקור ערוך",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "אלמנטים הקבוצה",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "אלמנטים פרק קבוצה",
          		"docprops": "מאפייני מסמך",
          		"imagelib": "Image Library",
          		"move_bottom": "הזז למטה",
          		"move_top": "עבור לראש הדף",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "לשמור",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "מחיקת שכבה",
          		"move_down": "הזז למטה שכבה",
          		"new": "שכבהחדשה",
          		"rename": "שינוי שם שכבה",
          		"move_up": "העבר שכבה Up",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "בחר מוגדרים מראש:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.hi.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "hi",
          	dir : "ltr",
          	common: {
          		"ok": "बचाना",
          		"cancel": "रद्द करें",
          		"key_backspace": "बैकस्पेस", 
          		"key_del": "हटायें", 
          		"key_down": "नीचे", 
          		"key_up": "ऊपर", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "रंग बदलने पर क्लिक करें, बदलाव भरने के क्लिक करने के लिए स्ट्रोक का रंग बदलने के लिए",
          		"zoom_level": "बदलें स्तर ज़ूम",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "बदलें का रंग भरना",
          		"stroke_color": "बदलें स्ट्रोक रंग",
          		"stroke_style": "बदलें स्ट्रोक डेश शैली",
          		"stroke_width": "बदलें स्ट्रोक चौड़ाई",
          		"pos_x": "X समकक्ष बदलें ",
          		"pos_y": "Y समकक्ष बदलें",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "बदलें रोटेशन कोण",
          		"blur": "Change gaussian blur value",
          		"opacity": "पारदर्शिता बदलें",
          		"circle_cx": "बदल रहा है चक्र cx समन्वय",
          		"circle_cy": "परिवर्तन चक्र cy समन्वय है",
          		"circle_r": "बदल रहा है चक्र त्रिज्या",
          		"ellipse_cx": "बदलें दीर्घवृत्त है cx समन्वय",
          		"ellipse_cy": "बदलें दीर्घवृत्त cy समन्वय है",
          		"ellipse_rx": "बदल रहा है दीर्घवृत्त x त्रिज्या",
          		"ellipse_ry": "बदल रहा है दीर्घवृत्त y त्रिज्या",
          		"line_x1": "बदल रहा है लाइन x समन्वय शुरू",
          		"line_x2": "बदल रहा है लाइन x समन्वय समाप्त",
          		"line_y1": "बदलें रेखा y शुरू हो रहा है समन्वय",
          		"line_y2": "बदलें रेखा y अंत है समन्वय",
          		"rect_height": "बदलें आयत ऊंचाई",
          		"rect_width": "बदलें आयत चौड़ाई",
          		"corner_radius": "बदलें आयत कॉर्नर त्रिज्या",
          		"image_width": "बदलें छवि चौड़ाई",
          		"image_height": "बदलें छवि ऊँचाई",
          		"image_url": "बदलें यूआरएल",
          		"node_x": "नोड का x समकक्ष बदलें",
          		"node_y": "नोड का y समकक्ष बदलें",
          		"seg_type": "वर्ग प्रकार बदलें",
          		"straight_segments": "सीधे वर्ग",
          		"curve_segments": "घुमाव",
          		"text_contents": "बदलें पाठ सामग्री",
          		"font_family": "बदलें फ़ॉन्ट परिवार",
          		"font_size": "फ़ॉन्ट का आकार बदलें",
          		"bold": "मोटा पाठ",
          		"italic": "इटैलिक पाठ"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "पृष्ठभूमि का रंग बदल / अस्पष्टता",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "सामग्री के लिए फिट",
          		"fit_to_all": "सभी सामग्री के लिए फिट",
          		"fit_to_canvas": "फिट कैनवास को",
          		"fit_to_layer_content": "फिट परत सामग्री के लिए",
          		"fit_to_sel": "चयन के लिए फिट",
          		"align_relative_to": "संरेखित करें रिश्तेदार को ...",
          		"relativeTo": "रिश्तेदार को:",
          		"पृष्ठ": "पृष्ठ",
          		"largest_object": "सबसे बड़ी वस्तु",
          		"selected_objects": "निर्वाचित वस्तुओं",
          		"smallest_object": "छोटी से छोटी वस्तु",
          		"new_doc": "नई छवि",
          		"open_doc": "छवि खोलें",
          		"export_img": "Export",
          		"save_doc": "सहेजें छवि",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "तलमेंपंक्तिबद्धकरें",
          		"align_center": "मध्य में समंजित करें",
          		"align_left": " पंक्तिबद्ध करें",
          		"align_middle": "मध्य संरेखित करें",
          		"align_right": "दायाँपंक्तिबद्धकरें",
          		"align_top": "शीर्षमेंपंक्तिबद्धकरें",
          		"mode_select": "उपकरण चुनें",
          		"mode_fhpath": "पेंसिल उपकरण",
          		"mode_line": "लाइन उपकरण",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "नि: शुल्क हाथ आयत",
          		"mode_ellipse": "दीर्घवृत्त",
          		"mode_circle": "वृत्त",
          		"mode_fhellipse": "नि: शुल्क हाथ दीर्घवृत्त",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "पाठ उपकरण",
          		"mode_image": "छवि उपकरण",
          		"mode_zoom": "ज़ूम उपकरण",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "पूर्ववत करें",
          		"redo": "फिर से करें",
          		"tool_source": "स्रोत में बदलाव करें",
          		"wireframe_mode": "रूपरेखा मोड",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "समूह तत्वों",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "पथ में बदलें",
          		"reorient_path": "पथ को नई दिशा दें",
          		"ungroup": "अंश को समूह से अलग करें",
          		"docprops": "दस्तावेज़ गुण",
          		"imagelib": "Image Library",
          		"move_bottom": "नीचे ले जाएँ",
          		"move_top": "ऊपर ले जाएँ",
          		"node_clone": "नोड क्लोन",
          		"node_delete": "नोड हटायें",
          		"node_link": "कड़ी नियंत्रण बिंदु",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "बचाना",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"हटायें": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"परत",
          		"layers": "Layers",
          		"del": "परत हटाएँ",
          		"move_down": "परत नीचे ले जाएँ",
          		"new": "नई परत",
          		"rename": "परत का नाम बदलें",
          		"move_up": "परत ऊपर ले जाएँ",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "अंश को ले जाएँ:",
          		"move_selected": "चयनित अंश को दूसरी परत पर  ले जाएँ"
          	},
          	config: {
          		"image_props": "छवि के गुण",
          		"doc_title": "शीर्षक",
          		"doc_dims": "कैनवास आयाम",
          		"included_images": "शामिल छवियाँ",
          		"image_opt_embed": "एम्बेड डेटा (स्थानीय फ़ाइलें)",
          		"image_opt_ref": "फाइल के संदर्भ का प्रयोग",
          		"editor_prefs": "संपादक वरीयताएँ",
          		"icon_size": "चिह्न का आकार",
          		"language": "भाषा",
          		"background": "संपादक पृष्ठभूमि",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "नोट: पृष्ठभूमि छवि के साथ नहीं बचायी जाएगी",
          		"icon_large": "बड़ा",
          		"icon_medium": "मध्यम",
          		"icon_small": "छोटा",
          		"icon_xlarge": "बहुत बड़ा",
          		"select_predefined": "चुनें पूर्वनिर्धारित:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"अमान्य मूल्य",
          		"noContentToFitTo":"कोई सामग्री फिट करने के लिए उपलब्ध नहीं",
          		"dupeLayerName":"इस नाम कि परत पहले से मौजूद है !",
          		"enterUniqueLayerName":"कृपया परत का एक अद्वितीय नाम डालें",
          		"enterNewLayerName":"कृपया परत का एक नया नाम डालें",
          		"layerHasThatName":"परत का पहले से ही यही नाम है",
          		"QmoveElemsToLayer":"चयनित अंश को परत '%s' पर ले जाएँ ?",
          		"QwantToClear":"क्या आप छवि साफ़ करना चाहते हैं?\nयह आपके उन्डू  इतिहास को भी मिटा देगा!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"आपके एस.वी.जी. स्रोत में त्रुटियों थी.\nक्या आप मूल एस.वी.जी स्रोत पर वापिस जाना चाहते हैं?",
          		"QignoreSourceChanges":"एसवीजी स्रोत से लाये बदलावों को ध्यान न दें?",
          		"featNotSupported":"सुविधा असमर्थित है",
          		"enterNewImgURL":"नई छवि URL दर्ज करें",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.hr.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "hr",
          	dir : "ltr",
          	common: {
          		"ok": "Spremiti",
          		"cancel": "Odustani",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Kliknite promijeniti boju ispune, shift-click to promijeniti boju moždanog udara",
          		"zoom_level": "Promjena razine zumiranja",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Promjena boje ispune",
          		"stroke_color": "Promjena boje moždani udar",
          		"stroke_style": "Promijeni stroke crtica stil",
          		"stroke_width": "Promjena širine moždani udar",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Promijeni rotation angle",
          		"blur": "Change gaussian blur value",
          		"opacity": "Promjena odabrane stavke neprozirnost",
          		"circle_cx": "Promjena krug&#39;s CX koordinirati",
          		"circle_cy": "Cy Promijeni krug je koordinirati",
          		"circle_r": "Promjena krug je radijusa",
          		"ellipse_cx": "Promjena elipsa&#39;s CX koordinirati",
          		"ellipse_cy": "Cy Promijeni elipsa je koordinirati",
          		"ellipse_rx": "Promijeniti elipsa&#39;s x polumjer",
          		"ellipse_ry": "Promjena elipsa&#39;s y polumjer",
          		"line_x1": "Promijeni linija je početak x koordinatu",
          		"line_x2": "Promjena linije završetak x koordinatu",
          		"line_y1": "Promijeni linija je početak y koordinatu",
          		"line_y2": "Promjena linije završetak y koordinatu",
          		"rect_height": "Promijeni pravokutnik visine",
          		"rect_width": "Promijeni pravokutnik širine",
          		"corner_radius": "Promijeni Pravokutnik Corner Radius",
          		"image_width": "Promijeni sliku širine",
          		"image_height": "Promijeni sliku visina",
          		"image_url": "Promijeni URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Promjena sadržaja teksta",
          		"font_family": "Promjena fontova",
          		"font_size": "Change font size",
          		"bold": "Podebljani tekst",
          		"italic": "Italic Text"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Promijeni boju pozadine / neprozirnost",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Fit to Content",
          		"fit_to_all": "Prilagodi na sve sadržaje",
          		"fit_to_canvas": "Prilagodi na platnu",
          		"fit_to_layer_content": "Prilagodi sloj sadržaj",
          		"fit_to_sel": "Prilagodi odabir",
          		"align_relative_to": "Poravnaj u odnosu na ...",
          		"relativeTo": "u odnosu na:",
          		"stranica": "stranica",
          		"largest_object": "najveći objekt",
          		"selected_objects": "izabrani objekti",
          		"smallest_object": "najmanji objekt",
          		"new_doc": "Nove slike",
          		"open_doc": "Otvori sliku",
          		"export_img": "Export",
          		"save_doc": "Spremanje slike",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Poravnaj dolje",
          		"align_center": "Centriraj",
          		"align_left": "Poravnaj lijevo",
          		"align_middle": "Poravnaj Srednji",
          		"align_right": "Poravnaj desno",
          		"align_top": "Poravnaj Top",
          		"mode_select": "Odaberite alat",
          		"mode_fhpath": "Pencil Tool",
          		"mode_line": "Line Tool",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Free-Hand Pravokutnik",
          		"mode_ellipse": "Elipsa",
          		"mode_circle": "Circle",
          		"mode_fhellipse": "Free-Hand Ellipse",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Tekst Alat",
          		"mode_image": "Image Tool",
          		"mode_zoom": "Alat za zumiranje",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Poništi",
          		"redo": "Redo",
          		"tool_source": "Uredi Source",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Grupa Elementi",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Razgrupiranje Elementi",
          		"docprops": "Svojstva dokumenta",
          		"imagelib": "Image Library",
          		"move_bottom": "Move to Bottom",
          		"move_top": "Pomakni na vrh",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Spremiti",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Brisanje sloja",
          		"move_down": "Move Layer Down",
          		"new": "New Layer",
          		"rename": "Preimenuj Layer",
          		"move_up": "Move Layer Up",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Select predefinirane:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.hu.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "hu",
          	dir : "ltr",
          	common: {
          		"ok": "Ment",
          		"cancel": "Szakítani",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Kattints ide a változások töltse szín, shift-click változtatni stroke color",
          		"zoom_level": "Change nagyítási",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Change töltse color",
          		"stroke_color": "Change stroke color",
          		"stroke_style": "Change stroke kötőjel style",
          		"stroke_width": "Change stroke width",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Váltás forgás szög",
          		"blur": "Change gaussian blur value",
          		"opacity": "A kijelölt elem opacity",
          		"circle_cx": "Change kör CX koordináta",
          		"circle_cy": "Change kör cy koordináta",
          		"circle_r": "Change kör sugara",
          		"ellipse_cx": "Change ellipszis&#39;s CX koordináta",
          		"ellipse_cy": "Change ellipszis&#39;s cy koordináta",
          		"ellipse_rx": "Change ellipszis&#39;s x sugarú",
          		"ellipse_ry": "Change ellipszis&#39;s y sugara",
          		"line_x1": "A sor kezd x koordináta",
          		"line_x2": "A sor vége az x koordináta",
          		"line_y1": "A sor kezd y koordináta",
          		"line_y2": "A sor vége az y koordináta",
          		"rect_height": "Change téglalap magassága",
          		"rect_width": "Change téglalap szélessége",
          		"corner_radius": "Change téglalap sarok sugara",
          		"image_width": "Change kép szélessége",
          		"image_height": "Kép módosítása height",
          		"image_url": "Change URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "A szöveg tartalma",
          		"font_family": "Change Betűcsalád",
          		"font_size": "Change font size",
          		"bold": "Félkövér szöveg",
          		"italic": "Dőlt szöveg"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Change background color / homályosság",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Fit to Content",
          		"fit_to_all": "Illeszkednek az összes tartalom",
          		"fit_to_canvas": "Igazítás a vászonra",
          		"fit_to_layer_content": "Igazítás a réteg tartalma",
          		"fit_to_sel": "Igazítás a kiválasztási",
          		"align_relative_to": "Képest Igazítás ...",
          		"relativeTo": "relatív hogy:",
          		"Page": "Page",
          		"largest_object": "legnagyobb objektum",
          		"selected_objects": "választott tárgyak",
          		"smallest_object": "legkisebb objektum",
          		"new_doc": "Új kép",
          		"open_doc": "Kép megnyitása",
          		"export_img": "Export",
          		"save_doc": "Kép mentése más",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Alulra igazítás",
          		"align_center": "Középre igazítás",
          		"align_left": "Balra igazítás",
          		"align_middle": "Közép-align",
          		"align_right": "Jobbra igazítás",
          		"align_top": "Align Top",
          		"mode_select": "Válassza ki az eszközt",
          		"mode_fhpath": "Ceruza eszköz",
          		"mode_line": "Line Tool",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Free-Hand téglalap",
          		"mode_ellipse": "Ellipszisszelet",
          		"mode_circle": "Körbe",
          		"mode_fhellipse": "Free-Hand Ellipse",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Szöveg eszköz",
          		"mode_image": "Image Tool",
          		"mode_zoom": "Zoom Tool",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Visszavon",
          		"redo": "Megismétléséhez",
          		"tool_source": "Szerkesztés Forrás",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Csoport elemei",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Szétbont elemei",
          		"docprops": "Dokumentum tulajdonságai",
          		"imagelib": "Image Library",
          		"move_bottom": "Mozgatás lefelé",
          		"move_top": "Move to Top",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Ment",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Réteg törlése",
          		"move_down": "Mozgatása lefelé",
          		"new": "Új réteg",
          		"rename": "Réteg átnevezése",
          		"move_up": "Move Layer Up",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Válassza ki előre definiált:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.hy.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "hy",
          	dir : "ltr",
          	common: {
          		"ok": "Save",
          		"cancel": "Cancel",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Click to change fill color, shift-click to change stroke color",
          		"zoom_level": "Change zoom level",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Change fill color",
          		"stroke_color": "Change stroke color",
          		"stroke_style": "Change stroke dash style",
          		"stroke_width": "Change stroke width",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Change rotation angle",
          		"blur": "Change gaussian blur value",
          		"opacity": "Change selected item opacity",
          		"circle_cx": "Change circle's cx coordinate",
          		"circle_cy": "Change circle's cy coordinate",
          		"circle_r": "Change circle's radius",
          		"ellipse_cx": "Change ellipse's cx coordinate",
          		"ellipse_cy": "Change ellipse's cy coordinate",
          		"ellipse_rx": "Change ellipse's x radius",
          		"ellipse_ry": "Change ellipse's y radius",
          		"line_x1": "Change line's starting x coordinate",
          		"line_x2": "Change line's ending x coordinate",
          		"line_y1": "Change line's starting y coordinate",
          		"line_y2": "Change line's ending y coordinate",
          		"rect_height": "Change rectangle height",
          		"rect_width": "Change rectangle width",
          		"corner_radius": "Change Rectangle Corner Radius",
          		"image_width": "Change image width",
          		"image_height": "Change image height",
          		"image_url": "Change URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Change text contents",
          		"font_family": "Change Font Family",
          		"font_size": "Change Font Size",
          		"bold": "Bold Text",
          		"italic": "Italic Text"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Change background color/opacity",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Fit to Content",
          		"fit_to_all": "Fit to all content",
          		"fit_to_canvas": "Fit to canvas",
          		"fit_to_layer_content": "Fit to layer content",
          		"fit_to_sel": "Fit to selection",
          		"align_relative_to": "Align relative to ...",
          		"relativeTo": "relative to:",
          		"page": "page",
          		"largest_object": "largest object",
          		"selected_objects": "elected objects",
          		"smallest_object": "smallest object",
          		"new_doc": "New Image",
          		"open_doc": "Open SVG",
          		"export_img": "Export",
          		"save_doc": "Save Image",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Align Bottom",
          		"align_center": "Align Center",
          		"align_left": "Align Left",
          		"align_middle": "Align Middle",
          		"align_right": "Align Right",
          		"align_top": "Align Top",
          		"mode_select": "Select Tool",
          		"mode_fhpath": "Pencil Tool",
          		"mode_line": "Line Tool",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Free-Hand Rectangle",
          		"mode_ellipse": "Ellipse",
          		"mode_circle": "Circle",
          		"mode_fhellipse": "Free-Hand Ellipse",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Text Tool",
          		"mode_image": "Image Tool",
          		"mode_zoom": "Zoom Tool",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Undo",
          		"redo": "Redo",
          		"tool_source": "Edit Source",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Group Elements",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Ungroup Elements",
          		"docprops": "Document Properties",
          		"imagelib": "Image Library",
          		"move_bottom": "Move to Bottom",
          		"move_top": "Move to Top",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Save",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Delete Layer",
          		"move_down": "Move Layer Down",
          		"new": "New Layer",
          		"rename": "Rename Layer",
          		"move_up": "Move Layer Up",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Select predefined:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.id.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "id",
          	dir : "ltr",
          	common: {
          		"ok": "Simpan",
          		"cancel": "Batal",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Klik untuk mengubah warna mengisi, shift-klik untuk mengubah warna stroke",
          		"zoom_level": "Mengubah tingkat pembesaran",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Ubah warna mengisi",
          		"stroke_color": "Ubah warna stroke",
          		"stroke_style": "Ubah gaya dash stroke",
          		"stroke_width": "Ubah stroke width",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Ubah sudut rotasi",
          		"blur": "Change gaussian blur value",
          		"opacity": "Mengubah item yang dipilih keburaman",
          		"circle_cx": "Mengubah koordinat lingkaran cx",
          		"circle_cy": "Mengubah koordinat cy lingkaran",
          		"circle_r": "Ubah jari-jari lingkaran",
          		"ellipse_cx": "Ubah elips&#39;s cx koordinat",
          		"ellipse_cy": "Ubah elips&#39;s cy koordinat",
          		"ellipse_rx": "Ubah elips&#39;s x jari-jari",
          		"ellipse_ry": "Ubah elips&#39;s y jari-jari",
          		"line_x1": "Ubah baris mulai x koordinat",
          		"line_x2": "Ubah baris&#39;s Berakhir x koordinat",
          		"line_y1": "Ubah baris mulai y koordinat",
          		"line_y2": "Ubah baris di tiap akhir y koordinat",
          		"rect_height": "Perubahan tinggi persegi panjang",
          		"rect_width": "Ubah persegi panjang lebar",
          		"corner_radius": "Ubah Corner Rectangle Radius",
          		"image_width": "Ubah Lebar gambar",
          		"image_height": "Tinggi gambar Perubahan",
          		"image_url": "Ubah URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Ubah isi teks",
          		"font_family": "Ubah Font Keluarga",
          		"font_size": "Ubah Ukuran Font",
          		"bold": "Bold Teks",
          		"italic": "Italic Teks"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Mengubah warna latar belakang / keburaman",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Fit to Content",
          		"fit_to_all": "Cocok untuk semua konten",
          		"fit_to_canvas": "Muat kanvas",
          		"fit_to_layer_content": "Muat konten lapisan",
          		"fit_to_sel": "Fit seleksi",
          		"align_relative_to": "Rata relatif ...",
          		"relativeTo": "relatif:",
          		"Halaman": "Halaman",
          		"largest_object": "objek terbesar",
          		"selected_objects": "objek terpilih",
          		"smallest_object": "objek terkecil",
          		"new_doc": "Gambar Baru",
          		"open_doc": "Membuka Image",
          		"export_img": "Export",
          		"save_doc": "Save Image",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Rata Bottom",
          		"align_center": "Rata Tengah",
          		"align_left": "Rata Kiri",
          		"align_middle": "Rata Tengah",
          		"align_right": "Rata Kanan",
          		"align_top": "Rata Top",
          		"mode_select": "Pilih Tool",
          		"mode_fhpath": "Pencil Tool",
          		"mode_line": "Line Tool",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Free-Hand Persegi Panjang",
          		"mode_ellipse": "Ellipse",
          		"mode_circle": "Lingkaran",
          		"mode_fhellipse": "Free-Hand Ellipse",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Teks Tool",
          		"mode_image": "Image Tool",
          		"mode_zoom": "Zoom Tool",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Undo",
          		"redo": "Redo",
          		"tool_source": "Edit Source",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Kelompok Elemen",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Ungroup Elemen",
          		"docprops": "Document Properties",
          		"imagelib": "Image Library",
          		"move_bottom": "Pindah ke Bawah",
          		"move_top": "Pindahkan ke Atas",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Simpan",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Hapus Layer",
          		"move_down": "Pindahkan Layer Bawah",
          		"new": "New Layer",
          		"rename": "Rename Layer",
          		"move_up": "Pindahkan Layer Up",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Pilih standar:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.is.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "is",
          	dir : "ltr",
          	common: {
          		"ok": "Vista",
          		"cancel": "Hætta",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Smelltu hér til að breyta fylla lit, Shift-smelltu til að breyta högg lit",
          		"zoom_level": "Breyta Stækkunarstig",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Breyta fylla color",
          		"stroke_color": "Breyta heilablķđfall color",
          		"stroke_style": "Breyta heilablķđfall þjóta stíl",
          		"stroke_width": "Breyta heilablķđfall width",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Breyting snúningur horn",
          		"blur": "Change gaussian blur value",
          		"opacity": "Breyta valin atriði opacity",
          		"circle_cx": "Cx Breyta hring er að samræma",
          		"circle_cy": "Breyta hring&#39;s cy samræma",
          		"circle_r": "Radíus Breyta hringsins er",
          		"ellipse_cx": "Breyta sporbaug&#39;s cx samræma",
          		"ellipse_cy": "Breyta sporbaug&#39;s cy samræma",
          		"ellipse_rx": "X radíus Breyta sporbaug&#39;s",
          		"ellipse_ry": "Y radíus Breyta sporbaug&#39;s",
          		"line_x1": "Breyta lína í byrjun x samræma",
          		"line_x2": "Breyta lína&#39;s Ending x samræma",
          		"line_y1": "Breyta lína í byrjun y samræma",
          		"line_y2": "Breyta lína er endir y samræma",
          		"rect_height": "Breyta rétthyrningur hæð",
          		"rect_width": "Skipta rétthyrningur width",
          		"corner_radius": "Breyta rétthyrningur Corner Radíus",
          		"image_width": "Breyta mynd width",
          		"image_height": "Breyta mynd hæð",
          		"image_url": "Breyta URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Breyta texta innihald",
          		"font_family": "Change Leturfjölskylda",
          		"font_size": "Breyta leturstærð",
          		"bold": "Bold Text",
          		"italic": "Italic Text"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Breyta bakgrunnslit / opacity",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Fit to Content",
          		"fit_to_all": "Laga til efni",
          		"fit_to_canvas": "Fit á striga",
          		"fit_to_layer_content": "Laga til lag efni",
          		"fit_to_sel": "Fit til val",
          		"align_relative_to": "Jafna miðað við ...",
          		"relativeTo": "hlutfallslegt til:",
          		"síðu": "síðu",
          		"largest_object": "stærsti hlutinn",
          		"selected_objects": "kjörinn hlutir",
          		"smallest_object": "lítill hluti",
          		"new_doc": "New Image",
          		"open_doc": "Opna mynd",
          		"export_img": "Export",
          		"save_doc": "Spara Image",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Jafna Bottom",
          		"align_center": "Jafna Center",
          		"align_left": "Vinstri jöfnun",
          		"align_middle": "Jafna Mið",
          		"align_right": "Hægri jöfnun",
          		"align_top": "Jöfnun Top",
          		"mode_select": "Veldu Tól",
          		"mode_fhpath": "Blýantur Tól",
          		"mode_line": "Line Tool",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Free-Hand rétthyrningur",
          		"mode_ellipse": "Sporbaugur",
          		"mode_circle": "Circle",
          		"mode_fhellipse": "Free-Hand Sporbaugur",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Text Tool",
          		"mode_image": "Mynd Tól",
          		"mode_zoom": "Zoom Tool",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Hætta",
          		"redo": "Endurtaka",
          		"tool_source": "Edit Source",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Group Elements",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Ungroup Elements",
          		"docprops": "Document Properties",
          		"imagelib": "Image Library",
          		"move_bottom": "Færa Bottom",
          		"move_top": "Fara efst á síðu",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Vista",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Eyða Lag",
          		"move_down": "Færa Layer Down",
          		"new": "Lag",
          		"rename": "Endurnefna Lag",
          		"move_up": "Færa Lag Up",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Veldu predefined:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.it.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "it",
          	dir : "ltr",
          	common: {
          		"ok": "Salva",
          		"cancel": "Annulla",
          		"key_backspace": "backspace", 
          		"key_del": "Canc", 
          		"key_down": "giù", 
          		"key_up": "su", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Mostra/nascondi strumenti per il tratto",
          		"palette_info": "Fare clic per cambiare il colore di riempimento, shift-click per cambiare colore del tratto",
          		"zoom_level": "Cambia il livello di zoom",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identifica l'elemento",
          		"fill_color": "Cambia il colore di riempimento",
          		"stroke_color": "Cambia il colore del tratto",
          		"stroke_style": "Cambia lo stile del tratto",
          		"stroke_width": "Cambia la larghezza del tratto",
          		"pos_x": "Modifica la coordinata x",
          		"pos_y": "Modifica la coordinata y",
          		"linecap_butt": "Inizio linea: Punto",
          		"linecap_round": "Inizio linea: Tondo",
          		"linecap_square": "Inizio linea: Quadrato",
          		"linejoin_bevel": "Giunzione: smussata",
          		"linejoin_miter": "Giunzione: spezzata",
          		"linejoin_round": "Giunzione: arrotondata",
          		"angle": "Cambia l'angolo di rotazione",
          		"blur": "Cambia l'intensità della sfocatura",
          		"opacity": "Cambia l'opacità dell'oggetto selezionato",
          		"circle_cx": "Cambia la coordinata Cx del cerchio",
          		"circle_cy": "Cambia la coordinata Cy del cerchio",
          		"circle_r": "Cambia il raggio del cerchio",
          		"ellipse_cx": "Cambia la coordinata Cx dell'ellisse",
          		"ellipse_cy": "Cambia la coordinata Cy dell'ellisse",
          		"ellipse_rx": "Cambia l'asse x dell'ellisse",
          		"ellipse_ry": "Cambia l'asse y dell'ellisse",
          		"line_x1": "Modifica la coordinata iniziale x della linea",
          		"line_x2": "Modifica la coordinata finale x della linea",
          		"line_y1": "Modifica la coordinata iniziale y della linea",
          		"line_y2": "Modifica la coordinata finale y della linea",
          		"rect_height": "Cambia l'altezza rettangolo",
          		"rect_width": "Cambia la larghezza rettangolo",
          		"corner_radius": "Cambia il raggio dell'angolo",
          		"image_width": "Cambia la larghezza dell'immagine",
          		"image_height": "Cambia l'altezza dell'immagine",
          		"image_url": "Cambia URL",
          		"node_x": "Modifica la coordinata x del nodo",
          		"node_y": "Modifica la coordinata y del nodo",
          		"seg_type": "Cambia il tipo di segmento",
          		"straight_segments": "Linea retta",
          		"curve_segments": "Curva",
          		"text_contents": "Cambia il contenuto del testo",
          		"font_family": "Cambia il tipo di Font",
          		"font_size": "Modifica dimensione carattere",
          		"bold": "Grassetto",
          		"italic": "Corsivo"
          	},
          	tools: { 
          		"main_menu": "Menù principale",
          		"bkgnd_color_opac": "Cambia colore/opacità dello sfondo",
          		"connector_no_arrow": "No freccia",
          		"fitToContent": "Adatta al contenuto",
          		"fit_to_all": "Adatta a tutti i contenuti",
          		"fit_to_canvas": "Adatta all'area di disegno",
          		"fit_to_layer_content": "Adatta al contenuto del livello",
          		"fit_to_sel": "Adatta alla selezione",
          		"align_relative_to": "Allineati a ...",
          		"relativeTo": "Rispetto a:",
          		"Pagina": "Pagina",
          		"largest_object": "Oggetto più grande",
          		"selected_objects": "Oggetti selezionati",
          		"smallest_object": "Oggetto più piccolo",
          		"new_doc": "Nuova immagine",
          		"open_doc": "Apri immagine",
          		"export_img": "Export",
          		"save_doc": "Salva",
          		"import_doc": "Importa SVG",
          		"align_to_page": "Allinea elementi alla pagina",
          		"align_bottom": "Allinea in basso",
          		"align_center": "Allinea al centro",
          		"align_left": "Allinea a sinistra",
          		"align_middle": "Allinea al centro",
          		"align_right": "Allinea a destra",
          		"align_top": "Allinea in alto",
          		"mode_select": "Seleziona",
          		"mode_fhpath": "Matita",
          		"mode_line": "Linea",
          		"mode_connect": "Collega due oggetti",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Rettangolo a mano libera",
          		"mode_ellipse": "Ellisse",
          		"mode_circle": "Cerchio",
          		"mode_fhellipse": "Ellisse a mano libera",
          		"mode_path": "Spezzata",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Testo",
          		"mode_image": "Immagine",
          		"mode_zoom": "Zoom",
          		"mode_eyedropper": "Seleziona colore",
          		"no_embed": "NOTA: L'immagine non può essere incorporata: dipenderà dal percorso assoluto per essere vista",
          		"undo": "Annulla",
          		"redo": "Rifai",
          		"tool_source": "Modifica sorgente",
          		"wireframe_mode": "Contorno",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Raggruppa elementi",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Converti in tracciato",
          		"reorient_path": "Riallinea",
          		"ungroup": "Separa gli elementi",
          		"docprops": "Proprietà del documento",
          		"imagelib": "Image Library",
          		"move_bottom": "Sposta in fondo",
          		"move_top": "Sposta in cima",
          		"node_clone": "Clona nodo",
          		"node_delete": "Elimina nodo",
          		"node_link": "Collegamento tra punti di controllo",
          		"add_subpath": "Aggiungi sotto-percorso",
          		"openclose_path": "Apri/chiudi spezzata",
          		"source_save": "Salva",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"Canc": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Livello",
          		"layers": "Layers",
          		"del": "Elimina il livello",
          		"move_down": "Sposta indietro il livello",
          		"new": "Nuovo livello",
          		"rename": "Rinomina il livello",
          		"move_up": "Sposta avanti il livello",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Sposta verso:",
          		"move_selected": "Sposta gli elementi in un diverso livello"
          	},
          	config: {
          		"image_props": "Proprietà Immagine",
          		"doc_title": "Titolo",
          		"doc_dims": "Dimensioni dell'area di disegno",
          		"included_images": "Immagini incluse",
          		"image_opt_embed": "Incorpora dati (file locali)",
          		"image_opt_ref": "Usa l'identificativo di riferimento",
          		"editor_prefs": "Preferenze",
          		"icon_size": "Dimensione Icona",
          		"language": "Lingua",
          		"background": "Sfondo dell'editor",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Nota: Lo sfondo non verrà salvato con l'immagine.",
          		"icon_large": "Grande",
          		"icon_medium": "Medio",
          		"icon_small": "Piccolo",
          		"icon_xlarge": "Molto grande",
          		"select_predefined": "Selezioni predefinite:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Valore assegnato non valido",
          		"noContentToFitTo":"Non c'è contenuto cui adeguarsi",
          		"dupeLayerName":"C'è già un livello con questo nome!",
          		"enterUniqueLayerName":"Assegna un diverso nome a ciascun livello, grazie!",
          		"enterNewLayerName":"Assegna un nome al livello",
          		"layerHasThatName":"Un livello ha già questo nome",
          		"QmoveElemsToLayer":"Sposta gli elementi selezionali al livello '%s'?",
          		"QwantToClear":"Vuoi cancellare il disegno?\nVerrà eliminato anche lo storico delle modifiche!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"Ci sono errori nel codice sorgente SVG.\nRitorno al codice originale?",
          		"QignoreSourceChanges":"Ignoro i cambiamenti nel sorgente SVG?",
          		"featNotSupported":"Caratteristica non supportata",
          		"enterNewImgURL":"Scrivi un nuovo URL per l'immagine",
          		"defsFailOnSave": "NOTA: A causa dlle caratteristiche del tuo browser, l'immagine potrà apparire errata (senza elementi o gradazioni) finché non sarà salvata.",
          		"loadingImage":"Sto caricando l'immagine. attendere prego...",
          		"saveFromBrowser": "Seleziona \"Salva con nome...\" nel browser per salvare l'immagine con nome %s .",
          		"noteTheseIssues": "Nota le seguenti particolarità: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.ja.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "ja",
          	dir : "ltr",
          	common: {
          		"ok": "OK",
          		"cancel": "キャンセル",
          		"key_backspace": "backspace", 
          		"key_del": "削除", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "クリックで塗りの色を選択、Shift+クリックで線の色を選択",
          		"zoom_level": "ズーム倍率の変更",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "塗りの色を変更",
          		"stroke_color": "線の色を変更",
          		"stroke_style": "線種の変更",
          		"stroke_width": "線幅の変更",
          		"pos_x": "X座標を変更",
          		"pos_y": "Y座標を変更",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "回転角の変更",
          		"blur": "Change gaussian blur value",
          		"opacity": "不透明度",
          		"circle_cx": "円の中心を変更(X座標)",
          		"circle_cy": "円の中心を変更(Y座標)",
          		"circle_r": "変更円の半径",
          		"ellipse_cx": "楕円の中心を変更(X座標)",
          		"ellipse_cy": "楕円の中心を変更(Y座標)",
          		"ellipse_rx": "楕円の半径を変更(X座標)",
          		"ellipse_ry": "楕円の半径を変更(Y座標)",
          		"line_x1": "開始X座標",
          		"line_x2": "終了X座標",
          		"line_y1": "開始Y座標",
          		"line_y2": "終了Y座標",
          		"rect_height": "長方形の高さを変更",
          		"rect_width": "長方形の幅を変更",
          		"corner_radius": "長方形の角の半径を変更",
          		"image_width": "画像の幅を変更",
          		"image_height": "画像の高さを変更",
          		"image_url": "URLを変更",
          		"node_x": "ノードのX座標を変更",
          		"node_y": "ノードのY座標を変更",
          		"seg_type": "線分の種類を変更",
          		"straight_segments": "直線",
          		"curve_segments": "カーブ",
          		"text_contents": "テキストの内容の変更",
          		"font_family": "フォントファミリーの変更",
          		"font_size": "文字サイズの変更",
          		"bold": "太字",
          		"italic": "イタリック体"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "背景色/不透明度の変更",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "コンテンツに合わせる",
          		"fit_to_all": "すべてのコンテンツに合わせる",
          		"fit_to_canvas": "キャンバスに合わせる",
          		"fit_to_layer_content": "レイヤー上のコンテンツに合わせる",
          		"fit_to_sel": "選択対象に合わせる",
          		"align_relative_to": "揃える",
          		"relativeTo": "相対:",
          		"ページ": "ページ",
          		"largest_object": "最大のオブジェクト",
          		"selected_objects": "選択オブジェクト",
          		"smallest_object": "最小のオブジェクト",
          		"new_doc": "新規イメージ",
          		"open_doc": "イメージを開く",
          		"export_img": "Export",
          		"save_doc": "画像を保存",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "下揃え",
          		"align_center": "中央揃え",
          		"align_left": "左揃え",
          		"align_middle": "中央揃え",
          		"align_right": "右揃え",
          		"align_top": "上揃え",
          		"mode_select": "選択ツール",
          		"mode_fhpath": "鉛筆ツール",
          		"mode_line": "直線ツール",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "フリーハンド長方形",
          		"mode_ellipse": "楕円",
          		"mode_circle": "円",
          		"mode_fhellipse": "フリーハンド楕円",
          		"mode_path": "パスツール",
          		"mode_shapelib": "Shape library",
          		"mode_text": "テキストツール",
          		"mode_image": "イメージツール",
          		"mode_zoom": "ズームツール",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "元に戻す",
          		"redo": "やり直し",
          		"tool_source": "ソースの編集",
          		"wireframe_mode": "ワイヤーフレームで表示 [F]",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "グループ化",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "パスに変換",
          		"reorient_path": "現在の角度を0度とする",
          		"ungroup": "グループ化を解除",
          		"docprops": "文書のプロパティ",
          		"imagelib": "Image Library",
          		"move_bottom": "奥に移動",
          		"move_top": "手前に移動",
          		"node_clone": "ノードを複製",
          		"node_delete": "ノードを削除",
          		"node_link": "制御点の接続",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "適用",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"レイヤ",
          		"layers": "Layers",
          		"del": "レイヤの削除",
          		"move_down": "レイヤを下へ移動",
          		"new": "新規レイヤ",
          		"rename": "レイヤの名前を変更",
          		"move_up": "レイヤを上へ移動",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "移動先レイヤ:",
          		"move_selected": "選択対象を別のレイヤに移動"
          	},
          	config: {
          		"image_props": "イメージの設定",
          		"doc_title": "タイトル",
          		"doc_dims": "キャンバスの大きさ",
          		"included_images": "挿入された画像の扱い",
          		"image_opt_embed": "SVGファイルに埋め込む",
          		"image_opt_ref": "画像を参照する",
          		"editor_prefs": "エディタの設定",
          		"icon_size": "アイコンの大きさ",
          		"language": "言語",
          		"background": "エディタの背景色",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "※背景色はファイルに保存されません。",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "デフォルト",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"無効な値が指定されています。",
          		"noContentToFitTo":"合わせる対象のコンテンツがありません。",
          		"dupeLayerName":"同名のレイヤーが既に存在します。",
          		"enterUniqueLayerName":"新規レイヤの一意な名前を入力してください。",
          		"enterNewLayerName":"レイヤの新しい名前を入力してください。",
          		"layerHasThatName":"既に同名が付いています。",
          		"QmoveElemsToLayer":"選択した要素をレイヤー '%s' に移動しますか?",
          		"QwantToClear":"キャンバスをクリアしますか?\nアンドゥ履歴も消去されます。",
          		"QwantToOpen":"新しいファイルを開きますか?\nアンドゥ履歴も消去されます。",
          		"QerrorsRevertToSource":"ソースにエラーがあります。\n元のソースに戻しますか?",
          		"QignoreSourceChanges":"ソースの変更を無視しますか?",
          		"featNotSupported":"機能はサポートされていません。",
          		"enterNewImgURL":"画像のURLを入力してください。",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.ko.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "ko",
          	dir : "ltr",
          	common: {
          		"ok": "저장",
          		"cancel": "취소",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "색상을 클릭, 근무 시간 채우기 스트로크 색상을 변경하려면 변경하려면",
          		"zoom_level": "변경 수준으로 확대",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "채우기 색상 변경",
          		"stroke_color": "뇌졸중으로 색상 변경",
          		"stroke_style": "뇌졸중 변경 대시 스타일",
          		"stroke_width": "뇌졸중 너비 변경",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "회전 각도를 변경",
          		"blur": "Change gaussian blur value",
          		"opacity": "변경 항목을 선택 불투명도",
          		"circle_cx": "변경 동그라미 CX는 좌표",
          		"circle_cy": "동그라미 싸이 변경 조정할 수있어",
          		"circle_r": "변경 원의 반지름",
          		"ellipse_cx": "CX는 타원의 좌표 변경",
          		"ellipse_cy": "싸이 타원 변경 조정할 수있어",
          		"ellipse_rx": "변경 타원의 x 반지름",
          		"ellipse_ry": "변경 타원의 y를 반경",
          		"line_x1": "변경 라인의 X 좌표 시작",
          		"line_x2": "변경 라인의 X 좌표 결말",
          		"line_y1": "라인 변경 y를 시작 좌표",
          		"line_y2": "라인 변경 y를 결말의 좌표",
          		"rect_height": "사각형의 높이를 변경",
          		"rect_width": "사각형의 너비 변경",
          		"corner_radius": "변경 직사각형 코너 반경",
          		"image_width": "이미지 변경 폭",
          		"image_height": "이미지 높이 변경",
          		"image_url": "URL 변경",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "텍스트 변경 내용",
          		"font_family": "글꼴 변경 패밀리",
          		"font_size": "글꼴 크기 변경",
          		"bold": "굵은 텍스트",
          		"italic": "기울임꼴 텍스트"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "배경 색상 변경 / 투명도",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "맞춤 콘텐츠",
          		"fit_to_all": "맞춤 모든 콘텐츠에",
          		"fit_to_canvas": "맞춤 캔버스",
          		"fit_to_layer_content": "레이어에 맞게 콘텐츠",
          		"fit_to_sel": "맞춤 선택",
          		"align_relative_to": "정렬 상대적으로 ...",
          		"relativeTo": "상대:",
          		"페이지": "페이지",
          		"largest_object": "큰 개체",
          		"selected_objects": "당선 개체",
          		"smallest_object": "작은 개체",
          		"new_doc": "새 이미지",
          		"open_doc": "오픈 이미지",
          		"export_img": "Export",
          		"save_doc": "이미지 저장",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "히프 정렬",
          		"align_center": "정렬 센터",
          		"align_left": "왼쪽 정렬",
          		"align_middle": "중간 정렬",
          		"align_right": "오른쪽 맞춤",
          		"align_top": "정렬 탑",
          		"mode_select": "선택 도구",
          		"mode_fhpath": "연필 도구",
          		"mode_line": "선 도구",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "자유 핸드 직사각형",
          		"mode_ellipse": "타원",
          		"mode_circle": "동그라미",
          		"mode_fhellipse": "자유 핸드 타원",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "텍스트 도구",
          		"mode_image": "이미지 도구",
          		"mode_zoom": "줌 도구",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "취소",
          		"redo": "재실행",
          		"tool_source": "수정 소스",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "그룹 요소",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "그룹 해제 요소",
          		"docprops": "문서 속성",
          		"imagelib": "Image Library",
          		"move_bottom": "아래로 이동",
          		"move_top": "상단으로 이동",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "저장",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "레이어 삭제",
          		"move_down": "레이어 아래로 이동",
          		"new": "새 레이어",
          		"rename": "레이어 이름 바꾸기",
          		"move_up": "레이어 위로 이동",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "미리 정의된 선택:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.lt.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "lt",
          	dir : "ltr",
          	common: {
          		"ok": "Saugoti",
          		"cancel": "Atšaukti",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Spustelėkite norėdami keisti užpildo spalvą, perėjimo spustelėkite pakeisti insultas spalva",
          		"zoom_level": "Keisti mastelį",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Keisti užpildyti spalvos",
          		"stroke_color": "Keisti insultas spalva",
          		"stroke_style": "Keisti insultas brūkšnys stilius",
          		"stroke_width": "Keisti insultas plotis",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Keisti sukimosi kampas",
          		"blur": "Change gaussian blur value",
          		"opacity": "Pakeisti pasirinkto elemento neskaidrumo",
          		"circle_cx": "Keisti ratas&#39;s CX koordinuoti",
          		"circle_cy": "Keisti ratas&#39;s CY koordinuoti",
          		"circle_r": "Keisti savo apskritimo spindulys",
          		"ellipse_cx": "Keisti elipse&#39;s CX koordinuoti",
          		"ellipse_cy": "Keisti elipse&#39;s CY koordinuoti",
          		"ellipse_rx": "Keisti elipsė &quot;X spindulys",
          		"ellipse_ry": "Keisti elipse Y spindulys",
          		"line_x1": "Keisti linijos nuo koordinačių x",
          		"line_x2": "Keisti linijos baigėsi x koordinuoti",
          		"line_y1": "Keisti linijos pradžios y koordinačių",
          		"line_y2": "Keisti linijos baigėsi y koordinačių",
          		"rect_height": "Keisti stačiakampio aukščio",
          		"rect_width": "Pakeisti stačiakampio plotis",
          		"corner_radius": "Keisti stačiakampis skyrelį Spindulys",
          		"image_width": "Keisti paveikslėlio plotis",
          		"image_height": "Keisti vaizdo aukštis",
          		"image_url": "Pakeisti URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Keisti teksto turinys",
          		"font_family": "Pakeistišriftą Šeima",
          		"font_size": "Change font size",
          		"bold": "Pusjuodis",
          		"italic": "Kursyvas"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Pakeisti fono spalvą / drumstumas",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Talpinti turinys",
          		"fit_to_all": "Talpinti All content",
          		"fit_to_canvas": "Talpinti drobė",
          		"fit_to_layer_content": "Talpinti sluoksnis turinio",
          		"fit_to_sel": "Talpinti atrankos",
          		"align_relative_to": "Derinti palyginti ...",
          		"relativeTo": "palyginti:",
          		"puslapis": "puslapis",
          		"largest_object": "didžiausias objektas",
          		"selected_objects": "išrinktas objektai",
          		"smallest_object": "mažiausias objektą",
          		"new_doc": "New Image",
          		"open_doc": "Atidaryti atvaizdą",
          		"export_img": "Export",
          		"save_doc": "Išsaugoti nuotrauką",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Lygiuoti apačioje",
          		"align_center": "Lygiuoti",
          		"align_left": "Lygiuoti kairėje",
          		"align_middle": "Suderinti Vidurio",
          		"align_right": "Lygiuoti dešinėje",
          		"align_top": "Lygiuoti viršų",
          		"mode_select": "Įrankis",
          		"mode_fhpath": "Pencil Tool",
          		"mode_line": "Line Tool",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Free Hand stačiakampis",
          		"mode_ellipse": "Elipse",
          		"mode_circle": "Circle",
          		"mode_fhellipse": "Free Hand Elipsė",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Tekstas Tool",
          		"mode_image": "Image Tool",
          		"mode_zoom": "Zoom Įrankį",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Atšaukti",
          		"redo": "Atstatyti",
          		"tool_source": "Taisyti Šaltinis",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Elementų grupės",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Išgrupuoti elementai",
          		"docprops": "Document Properties",
          		"imagelib": "Image Library",
          		"move_bottom": "Perkelti į apačią",
          		"move_top": "Perkelti į viršų",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Saugoti",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Ištrinti Layer",
          		"move_down": "Perkelti sluoksnį Žemyn",
          		"new": "New Layer",
          		"rename": "Pervadinti sluoksnį",
          		"move_up": "Perkelti sluoksnį Up",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Pasirinkite iš anksto:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.lv.js
          /*globals svgEditor */
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "lv",
          	dir : "ltr",
          	common: {
          		"ok": "Glābt",
          		"cancel": "Atcelt",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Noklikšķiniet, lai mainītu aizpildījuma krāsu, shift-click to mainīt stroke krāsa",
          		"zoom_level": "Pārmaiņu mērogu",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Change aizpildījuma krāsu",
          		"stroke_color": "Change stroke krāsa",
          		"stroke_style": "Maina stroke domuzīme stils",
          		"stroke_width": "Change stroke platums",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Mainīt griešanās leņķis",
          		"blur": "Change gaussian blur value",
          		"opacity": "Mainīt izvēlēto objektu necaurredzamība",
          		"circle_cx": "Maina aplis&#39;s CX koordinēt",
          		"circle_cy": "Pārmaiņu loks ir cy koordinēt",
          		"circle_r": "Pārmaiņu loks ir rādiuss",
          		"ellipse_cx": "Mainīt elipses&#39;s CX koordinēt",
          		"ellipse_cy": "Mainīt elipses&#39;s cy koordinēt",
          		"ellipse_rx": "Mainīt elipses&#39;s x rādiuss",
          		"ellipse_ry": "Mainīt elipses&#39;s y rādiuss",
          		"line_x1": "Mainīt līnijas sākas x koordinēt",
          		"line_x2": "Mainīt līnijas beigu x koordinēt",
          		"line_y1": "Mainīt līnijas sākas y koordinātu",
          		"line_y2": "Mainīt līnijas beigu y koordinātu",
          		"rect_height": "Change Taisnstūra augstums",
          		"rect_width": "Change taisnstūra platums",
          		"corner_radius": "Maina Taisnstūris Corner Rādiuss",
          		"image_width": "Mainīt attēla platumu",
          		"image_height": "Mainīt attēla augstums",
          		"image_url": "Change URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Mainītu teksta saturs",
          		"font_family": "Mainīt fonta Family",
          		"font_size": "Mainīt fonta izmēru",
          		"bold": "Bold Text",
          		"italic": "Kursīvs"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Change background color / necaurredzamība",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Fit to Content",
          		"fit_to_all": "Fit uz visu saturu",
          		"fit_to_canvas": "Ievietot audekls",
          		"fit_to_layer_content": "Ievietot slānis saturs",
          		"fit_to_sel": "Fit atlases",
          		"align_relative_to": "Līdzināt, salīdzinot ar ...",
          		"relativeTo": "salīdzinājumā ar:",
          		"lapa": "lapa",
          		"largest_object": "lielākais objekts",
          		"selected_objects": "ievēlēts objekti",
          		"smallest_object": "mazākais objekts",
          		"new_doc": "New Image",
          		"open_doc": "Open SVG",
          		"export_img": "Export",
          		"save_doc": "Save Image",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Līdzināt Bottom",
          		"align_center": "Līdzināt uz centru",
          		"align_left": "Līdzināt pa kreisi",
          		"align_middle": "Līdzināt Middle",
          		"align_right": "Līdzināt pa labi",
          		"align_top": "Līdzināt Top",
          		"mode_select": "Select Tool",
          		"mode_fhpath": "Pencil Tool",
          		"mode_line": "Line Tool",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Free-Hand Taisnstūris",
          		"mode_ellipse": "Elipse",
          		"mode_circle": "Circle",
          		"mode_fhellipse": "Free-Hand Ellipse",
          		"mode_path": "Path",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Text Tool",
          		"mode_image": "Image Tool",
          		"mode_zoom": "Zoom Tool",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Atpogāt",
          		"redo": "Redo",
          		"tool_source": "Rediģēt Source",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Grupa Elements",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Atgrupēt Elements",
          		"docprops": "Document Properties",
          		"imagelib": "Image Library",
          		"move_bottom": "Pārvietot uz leju",
          		"move_top": "Pārvietot uz augšu",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Glābt",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Dzēst Layer",
          		"move_down": "Pārvietot slāni uz leju",
          		"new": "New Layer",
          		"rename": "Pārdēvēt Layer",
          		"move_up": "Pārvietot slāni uz augšu",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Izvēlieties iepriekš:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?
          This will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?
          This will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.
          Revert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.mk.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "mk",
          	dir : "ltr",
          	common: {
          		"ok": "Зачувува",
          		"cancel": "Откажи",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Кликни за да внесете промени бојата, промена клик да се промени бојата удар",
          		"zoom_level": "Промена зум ниво",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Измени пополнете боја",
          		"stroke_color": "Промена боја на мозочен удар",
          		"stroke_style": "Промена удар цртичка стил",
          		"stroke_width": "Промена удар Ширина",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Change ротација агол",
          		"blur": "Change gaussian blur value",
          		"opacity": "Промена избрани ставка непроѕирноста",
          		"circle_cx": "Промена круг на cx координира",
          		"circle_cy": "Промена круг&#39;s cy координираат",
          		"circle_r": "Промена на круг со радиус",
          		"ellipse_cx": "Промена елипса&#39;s cx координираат",
          		"ellipse_cy": "Промена на елипса cy координира",
          		"ellipse_rx": "Промена на елипса x радиус",
          		"ellipse_ry": "Промена на елипса у радиус",
          		"line_x1": "Промена линија почетна x координира",
          		"line_x2": "Промена линија завршува x координира",
          		"line_y1": "Промена линија координираат почетна y",
          		"line_y2": "Промена линија завршува y координира",
          		"rect_height": "Промена правоаголник височина",
          		"rect_width": "Промена правоаголник Ширина",
          		"corner_radius": "Промена правоаголник Corner Radius",
          		"image_width": "Промена Ширина на сликата",
          		"image_height": "Промена на слика височина",
          		"image_url": "Промена URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Промена текст содржина",
          		"font_family": "Смени фонт Фамилија",
          		"font_size": "Изменифонт Големина",
          		"bold": "Задебелен текст",
          		"italic": "Italic текст"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Смени позадина / непроѕирноста",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Способен да Содржина",
          		"fit_to_all": "Способен да сите содржина",
          		"fit_to_canvas": "Побиране да платно",
          		"fit_to_layer_content": "Способен да слој содржина",
          		"fit_to_sel": "Способен да селекција",
          		"align_relative_to": "Порамни во поглед на ...",
          		"relativeTo": "во поглед на:",
          		"страница": "страница",
          		"largest_object": "најголемиот објект",
          		"selected_objects": "избран објекти",
          		"smallest_object": "најмалата објект",
          		"new_doc": "Нови слики",
          		"open_doc": "Отвори слика",
          		"export_img": "Export",
          		"save_doc": "Зачувај слика",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Align Bottom",
          		"align_center": "Центрирано",
          		"align_left": "Порамни лево Порамни",
          		"align_middle": "Израмни Среден",
          		"align_right": "Порамни десно",
          		"align_top": "Израмни почетокот",
          		"mode_select": "Изберете ја алатката",
          		"mode_fhpath": "Алатка за молив",
          		"mode_line": "Line Tool",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Правоаголник слободна рака",
          		"mode_ellipse": "Елипса",
          		"mode_circle": "Круг",
          		"mode_fhellipse": "Free-Hand Елипса",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Алатка за текст",
          		"mode_image": "Алатка за сликата",
          		"mode_zoom": "Алатка за зумирање",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Врати",
          		"redo": "Повтори",
          		"tool_source": "Уреди Извор",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Група на елементи",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Ungroup Елементи",
          		"docprops": "Својства на документот",
          		"imagelib": "Image Library",
          		"move_bottom": "Move to bottom",
          		"move_top": "Поместување на почетокот",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Зачувува",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Избриши Слој",
          		"move_down": "Премести слој долу",
          		"new": "Нов слој",
          		"rename": "Преименувај слој",
          		"move_up": "Премести слој горе",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Изберете предефинирани:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.ms.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "ms",
          	dir : "ltr",
          	common: {
          		"ok": "Simpan",
          		"cancel": "Batal",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Klik untuk menukar warna mengisi, shift-klik untuk menukar warna stroke",
          		"zoom_level": "Mengubah peringkat pembesaran",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Tukar Warna mengisi",
          		"stroke_color": "Tukar Warna stroke",
          		"stroke_style": "Tukar gaya dash stroke",
          		"stroke_width": "Tukar stroke width",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Namakan sudut putaran",
          		"blur": "Change gaussian blur value",
          		"opacity": "Mengubah item yang dipilih keburaman",
          		"circle_cx": "Mengubah koordinat bulatan cx",
          		"circle_cy": "Mengubah koordinat cy bulatan",
          		"circle_r": "Tukar jari-jari lingkaran",
          		"ellipse_cx": "Tukar elips&#39;s cx koordinat",
          		"ellipse_cy": "Tukar elips&#39;s cy koordinat",
          		"ellipse_rx": "Tukar elips&#39;s x jari-jari",
          		"ellipse_ry": "Tukar elips&#39;s y jari-jari",
          		"line_x1": "Ubah baris mulai x koordinat",
          		"line_x2": "Ubah baris&#39;s Berakhir x koordinat",
          		"line_y1": "Ubah baris mulai y koordinat",
          		"line_y2": "Ubah baris di tiap akhir y koordinat",
          		"rect_height": "Perubahan quality persegi panjang",
          		"rect_width": "Tukar persegi panjang lebar",
          		"corner_radius": "Tukar Corner Rectangle Radius",
          		"image_width": "Tukar Lebar imej",
          		"image_height": "Tinggi gambar Kaca",
          		"image_url": "Tukar URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Tukar isi teks",
          		"font_family": "Tukar Font Keluarga",
          		"font_size": "Ubah Saiz Font",
          		"bold": "Bold Teks",
          		"italic": "Italic Teks"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Mengubah warna latar belakang / keburaman",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Fit to Content",
          		"fit_to_all": "Cocok untuk semua kandungan",
          		"fit_to_canvas": "Muat kanvas",
          		"fit_to_layer_content": "Muat kandungan lapisan",
          		"fit_to_sel": "Fit seleksi",
          		"align_relative_to": "Rata relatif ...",
          		"relativeTo": "relatif:",
          		"Laman": "Laman",
          		"largest_object": "objek terbesar",
          		"selected_objects": "objek terpilih",
          		"smallest_object": "objek terkecil",
          		"new_doc": "Imej Baru",
          		"open_doc": "Membuka Image",
          		"export_img": "Export",
          		"save_doc": "Save Image",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Rata Bottom",
          		"align_center": "Rata Tengah",
          		"align_left": "Rata Kiri",
          		"align_middle": "Rata Tengah",
          		"align_right": "Rata Kanan",
          		"align_top": "Rata Popular",
          		"mode_select": "Pilih Tool",
          		"mode_fhpath": "Pencil Tool",
          		"mode_line": "Line Tool",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Free-Hand Persegi Panjang",
          		"mode_ellipse": "Ellipse",
          		"mode_circle": "Lingkaran",
          		"mode_fhellipse": "Free-Hand Ellipse",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Teks Tool",
          		"mode_image": "Image Tool",
          		"mode_zoom": "Zoom Tool",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Undo",
          		"redo": "Redo",
          		"tool_source": "Edit Source",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Kelompok Elemen",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Ungroup Elemen",
          		"docprops": "Document Properties",
          		"imagelib": "Image Library",
          		"move_bottom": "Pindah ke Bawah",
          		"move_top": "Pindah ke Atas",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Simpan",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Padam Layer",
          		"move_down": "Pindah Layer Bawah",
          		"new": "New Layer",
          		"rename": "Rename Layer",
          		"move_up": "Pindah Layer Up",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Pilih standard:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.mt.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "mt",
          	dir : "ltr",
          	common: {
          		"ok": "Save",
          		"cancel": "Ikkanċella",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Ikklikkja biex timla l-bidla fil-kulur, ikklikkja-bidla għall-bidla color stroke",
          		"zoom_level": "Bidla zoom livell",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Bidla imla color",
          		"stroke_color": "Color stroke Bidla",
          		"stroke_style": "Bidla stroke dash stil",
          		"stroke_width": "Wisa &#39;puplesija Bidla",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Angolu ta &#39;rotazzjoni Bidla",
          		"blur": "Change gaussian blur value",
          		"opacity": "Bidla magħżula opaċità partita",
          		"circle_cx": "CX ċirku Tibdil jikkoordinaw",
          		"circle_cy": "Ċirku Tibdil cy jikkoordinaw",
          		"circle_r": "Raġġ ta &#39;ċirku tal-Bidla",
          		"ellipse_cx": "Bidla ellissi&#39;s CX jikkoordinaw",
          		"ellipse_cy": "Ellissi Tibdil cy jikkoordinaw",
          		"ellipse_rx": "Raġġ x ellissi Tibdil",
          		"ellipse_ry": "Raġġ y ellissi Tibdil",
          		"line_x1": "Bidla fil-linja tal-bidu tikkoordina x",
          		"line_x2": "Linja tal-Bidla li jispiċċa x jikkoordinaw",
          		"line_y1": "Bidla fil-linja tal-bidu y jikkoordinaw",
          		"line_y2": "Linja Tibdil jispiċċa y jikkoordinaw",
          		"rect_height": "Għoli rettangolu Bidla",
          		"rect_width": "Wisa &#39;rettangolu Bidla",
          		"corner_radius": "Bidla Rectangle Corner Radius",
          		"image_width": "Wisa image Bidla",
          		"image_height": "Għoli image Bidla",
          		"image_url": "Bidla URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Test kontenut Bidla",
          		"font_family": "Bidla Font Familja",
          		"font_size": "Change font size",
          		"bold": "Bold Test",
          		"italic": "Test korsiv"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Bidla fil-kulur fl-isfond / opaċità",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Fit għall-kontenut",
          		"fit_to_all": "Tajbin għall-kontenut",
          		"fit_to_canvas": "Xieraq li kanvas",
          		"fit_to_layer_content": "Fit-kontenut ta &#39;saff għal",
          		"fit_to_sel": "Fit-għażla",
          		"align_relative_to": "Jallinjaw relattiv għall - ...",
          		"relativeTo": "relattiv għall -:",
          		"paġna": "paġna",
          		"largest_object": "akbar oġġett",
          		"selected_objects": "oġġetti elett",
          		"smallest_object": "iżgħar oġġett",
          		"new_doc": "Image New",
          		"open_doc": "Open SVG",
          		"export_img": "Export",
          		"save_doc": "Image Save",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Tallinja Bottom",
          		"align_center": "Tallinja Center",
          		"align_left": "Tallinja Left",
          		"align_middle": "Tallinja Nofsani",
          		"align_right": "Tallinja Dritt",
          		"align_top": "Tallinja Top",
          		"mode_select": "Select Tool",
          		"mode_fhpath": "Lapes Tool",
          		"mode_line": "Line Tool",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Free Hand-Rectangle",
          		"mode_ellipse": "Ellissi",
          		"mode_circle": "Circle",
          		"mode_fhellipse": "Free Hand-ellissi",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Text Tool",
          		"mode_image": "Image Tool",
          		"mode_zoom": "Zoom Tool",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Jneħħu",
          		"redo": "Jerġa &#39;jagħmel",
          		"tool_source": "Source Edit",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Grupp Elements",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Ungroup Elements",
          		"docprops": "Dokument Properties",
          		"imagelib": "Image Library",
          		"move_bottom": "Move to Bottom",
          		"move_top": "Move to Top",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Save",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Ħassar Layer",
          		"move_down": "Move Layer Down",
          		"new": "New Layer",
          		"rename": "Semmi mill-ġdid Layer",
          		"move_up": "Move Layer Up",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Select predefiniti:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.nl.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "nl",
          	dir : "ltr",
          	common: {
          		"ok": "Ok",
          		"cancel": "Annuleren",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "omlaag", 
          		"key_up": "omhoog", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Mogelijk gemaakt door"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Toon/verberg meer lijn gereedschap",
          		"palette_info": "Klik om de vul kleur te veranderen, shift-klik om de lijn kleur te veranderen",
          		"zoom_level": "In-/uitzoomen",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identificeer het element",
          		"fill_color": "Verander vul kleur",
          		"stroke_color": "Verander lijn kleur",
          		"stroke_style": "Verander lijn stijl",
          		"stroke_width": "Verander lijn breedte",
          		"pos_x": "Verander X coordinaat",
          		"pos_y": "Verander Y coordinaat",
          		"linecap_butt": "Lijneinde: Geen",
          		"linecap_round": "Lijneinde: Rond",
          		"linecap_square": "Lijneinde: Vierkant",
          		"linejoin_bevel": "Lijnverbinding: Afgestompt",
          		"linejoin_miter": "Lijnverbinding: Hoek",
          		"linejoin_round": "Lijnverbinding: Rond",
          		"angle": "Draai",
          		"blur": "Verander Gaussische vervaging waarde",
          		"opacity": "Verander opaciteit geselecteerde item",
          		"circle_cx": "Verander het X coordinaat van het cirkel middelpunt",
          		"circle_cy": "Verander het Y coordinaat van het cirkel middelpunt",
          		"circle_r": "Verander de cirkel radius",
          		"ellipse_cx": "Verander het X coordinaat van het ellips middelpunt",
          		"ellipse_cy": "Verander het Y coordinaat van het ellips middelpunt",
          		"ellipse_rx": "Verander ellips X radius",
          		"ellipse_ry": "Verander ellips Y radius",
          		"line_x1": "Verander start X coordinaat van de lijn",
          		"line_x2": "Verander eind X coordinaat van de lijn",
          		"line_y1": "Verander start Y coordinaat van de lijn",
          		"line_y2": "Verander eind Y coordinaat van de lijn",
          		"rect_height": "Verander hoogte rechthoek",
          		"rect_width": "Verander breedte rechthoek",
          		"corner_radius": "Verander hoekradius rechthoek",
          		"image_width": "Verander breedte afbeelding",
          		"image_height": "Verander hoogte afbeelding",
          		"image_url": "Verander URL",
          		"node_x": "Verander X coordinaat knooppunt",
          		"node_y": "Verander Y coordinaat knooppunt",
          		"seg_type": "Verander segment type",
          		"straight_segments": "Recht",
          		"curve_segments": "Gebogen",
          		"text_contents": "Wijzig tekst",
          		"font_family": "Verander lettertype",
          		"font_size": "Verander lettertype grootte",
          		"bold": "Vet",
          		"italic": "Cursief"
          	},
          	tools: { 
          		"main_menu": "Hoofdmenu",
          		"bkgnd_color_opac": "Verander achtergrond kleur/doorzichtigheid",
          		"connector_no_arrow": "Geen pijl",
          		"fitToContent": "Pas om inhoud",
          		"fit_to_all": "Pas om alle inhoud",
          		"fit_to_canvas": "Pas om canvas",
          		"fit_to_layer_content": "Pas om laag inhoud",
          		"fit_to_sel": "Pas om selectie",
          		"align_relative_to": "Uitlijnen relatief ten opzichte van ...",
          		"relativeTo": "Relatief ten opzichte van:",
          		"Pagina": "Pagina",
          		"largest_object": "Grootste object",
          		"selected_objects": "Geselecteerde objecten",
          		"smallest_object": "Kleinste object",
          		"new_doc": "Nieuwe afbeelding",
          		"open_doc": "Open afbeelding",
          		"export_img": "Export",
          		"save_doc": "Afbeelding opslaan",
          		"import_doc": "Importeer SVG",
          		"align_to_page": "Lijn element uit relatief ten opzichte van de pagina",
          		"align_bottom": "Onder uitlijnen",
          		"align_center": "Centreren",
          		"align_left": "Links uitlijnen",
          		"align_middle": "Midden uitlijnen",
          		"align_right": "Rechts uitlijnen",
          		"align_top": "Boven uitlijnen",
          		"mode_select": "Selecteer",
          		"mode_fhpath": "Potlood",
          		"mode_line": "Lijn",
          		"mode_connect": "Verbind twee objecten",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Vrije stijl rechthoek",
          		"mode_ellipse": "Ellips",
          		"mode_circle": "Cirkel",
          		"mode_fhellipse": "Vrije stijl ellips",
          		"mode_path": "Pad",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Tekst",
          		"mode_image": "Afbeelding",
          		"mode_zoom": "Zoom",
          		"mode_eyedropper": "Kleuren kopieer gereedschap",
          		"no_embed": "Let op: Dit plaatje kan niet worden geintegreerd (embeded). Het hangt af van dit pad om te worden afgebeeld.",
          		"undo": "Ongedaan maken",
          		"redo": "Opnieuw doen",
          		"tool_source": "Bewerk bron",
          		"wireframe_mode": "Draadmodel",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Groepeer elementen",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Zet om naar pad",
          		"reorient_path": "Herorienteer pad",
          		"ungroup": "Groepering opheffen",
          		"docprops": "Documenteigenschappen",
          		"imagelib": "Image Library",
          		"move_bottom": "Naar achtergrond",
          		"move_top": "Naar voorgrond",
          		"node_clone": "Kloon knooppunt",
          		"node_delete": "Delete knooppunt",
          		"node_link": "Koppel controle punten",
          		"add_subpath": "Subpad toevoegen",
          		"openclose_path": "Open/sluit subpad",
          		"source_save": "Veranderingen toepassen",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Laag",
          		"layers": "Layers",
          		"del": "Delete laag",
          		"move_down": "Beweeg laag omlaag",
          		"new": "Nieuwe laag",
          		"rename": "Hernoem laag",
          		"move_up": "Beweeg laag omhoog",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Verplaats elementen naar:",
          		"move_selected": "Verplaats geselecteerde elementen naar andere laag"
          	},
          	config: {
          		"image_props": "Afbeeldingeigenschappen",
          		"doc_title": "Titel",
          		"doc_dims": "Canvas afmetingen",
          		"included_images": "Ingesloten afbeeldingen",
          		"image_opt_embed": "Toevoegen data (lokale bestanden)",
          		"image_opt_ref": "Gebruik bestand referentie",
          		"editor_prefs": "Editor eigenschappen",
          		"icon_size": "Icoon grootte",
          		"language": "Taal",
          		"background": "Editor achtergrond",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Let op: De achtergrond wordt niet opgeslagen met de afbeelding.",
          		"icon_large": "Groot",
          		"icon_medium": "Gemiddeld",
          		"icon_small": "Klein",
          		"icon_xlarge": "Extra groot",
          		"select_predefined": "Kies voorgedefinieerd:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Verkeerde waarde gegeven",
          		"noContentToFitTo":"Geen inhoud om omheen te passen",
          		"dupeLayerName":"Er is al een laag met die naam!",
          		"enterUniqueLayerName":"Geef een unieke laag naam",
          		"enterNewLayerName":"Geef een nieuwe laag naam",
          		"layerHasThatName":"Laag heeft al die naam",
          		"QmoveElemsToLayer":"Verplaats geselecteerde elementen naar laag '%s'?",
          		"QwantToClear":"Wil je de afbeelding leeg maken?\nDit zal ook de ongedaan maak geschiedenis wissen!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"Er waren analyse fouten in je SVG bron.\nTeruggaan naar de originele SVG bron?",
          		"QignoreSourceChanges":"Veranderingen in de SVG bron negeren?",
          		"featNotSupported":"Functie wordt niet ondersteund",
          		"enterNewImgURL":"Geef de nieuwe afbeelding URL",
          		"defsFailOnSave": "Let op: Vanwege een fout in je browser, kan dit plaatje verkeerd verschijnen (missende hoeken en/of elementen). Het zal goed verschijnen zodra het plaatje echt wordt opgeslagen.",
          		"loadingImage":"Laden van het plaatje, even geduld aub...",
          		"saveFromBrowser": "Kies \"Save As...\" in je browser om dit plaatje op te slaan als een %s bestand.",
          		"noteTheseIssues": "Let op de volgende problemen: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.no.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "no",
          	dir : "ltr",
          	common: {
          		"ok": "Lagre",
          		"cancel": "Avbryt",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Click å endre fyllfarge, shift-klikke for å endre slag farge",
          		"zoom_level": "Endre zoomnivå",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Endre fyllfarge",
          		"stroke_color": "Endre stroke color",
          		"stroke_style": "Endre stroke dash stil",
          		"stroke_width": "Endre stroke width",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Endre rotasjonsvinkelen",
          		"blur": "Change gaussian blur value",
          		"opacity": "Endre valgte elementet opasitet",
          		"circle_cx": "Endre sirkelens CX koordinatsystem",
          		"circle_cy": "Endre sirkelens koordinere cy",
          		"circle_r": "Endre sirkelens radius",
          		"ellipse_cx": "Endre ellipse&#39;s CX koordinatsystem",
          		"ellipse_cy": "Endre ellipse&#39;s koordinere cy",
          		"ellipse_rx": "Endre ellipse&#39;s x radius",
          		"ellipse_ry": "Endre ellipse&#39;s y radius",
          		"line_x1": "Endre linje begynner x koordinat",
          		"line_x2": "Endre linje&#39;s ending x koordinat",
          		"line_y1": "Endre linje begynner y koordinat",
          		"line_y2": "Endre linje&#39;s ending y koordinat",
          		"rect_height": "Endre rektangel høyde",
          		"rect_width": "Endre rektangel bredde",
          		"corner_radius": "Endre rektangel Corner Radius",
          		"image_width": "Endre bilde bredde",
          		"image_height": "Endre bilde høyde",
          		"image_url": "Endre URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Endre tekst innholdet",
          		"font_family": "Change Font Family",
          		"font_size": "Endre skriftstørrelse",
          		"bold": "Fet tekst",
          		"italic": "Kursiv tekst"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Endre bakgrunnsfarge / opacity",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Fit to Content",
          		"fit_to_all": "Passer til alt innhold",
          		"fit_to_canvas": "Tilpass til lerret",
          		"fit_to_layer_content": "Fit to lag innhold",
          		"fit_to_sel": "Tilpass til valg",
          		"align_relative_to": "Juster i forhold til ...",
          		"relativeTo": "i forhold til:",
          		"side": "side",
          		"largest_object": "største objekt",
          		"selected_objects": "velges objekter",
          		"smallest_object": "minste objekt",
          		"new_doc": "New Image",
          		"open_doc": "Åpne Image",
          		"export_img": "Export",
          		"save_doc": "Lagre bilde",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Align Bottom",
          		"align_center": "Midtstill",
          		"align_left": "Venstrejuster",
          		"align_middle": "Rett Middle",
          		"align_right": "Høyrejuster",
          		"align_top": "Align Top",
          		"mode_select": "Select Tool",
          		"mode_fhpath": "Pencil Tool",
          		"mode_line": "Linjeverktøy",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Free-Hand rektangel",
          		"mode_ellipse": "Ellipse",
          		"mode_circle": "Circle",
          		"mode_fhellipse": "Free-Hand Ellipse",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Text Tool",
          		"mode_image": "Image Tool",
          		"mode_zoom": "Zoom Tool",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Angre",
          		"redo": "Redo",
          		"tool_source": "Edit Source",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Gruppe Elements",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Dele opp Elements",
          		"docprops": "Document Properties",
          		"imagelib": "Image Library",
          		"move_bottom": "Move to Bottom",
          		"move_top": "Flytt til toppen",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Lagre",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Slett laget",
          		"move_down": "Flytt laget ned",
          		"new": "Nytt lag",
          		"rename": "Rename Layer",
          		"move_up": "Flytt Layer Up",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Velg forhåndsdefinerte:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.pl.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "pl",
          	dir : "ltr",
          	author: "Aleksander Lurie",
          	common: {
          		"ok": "OK",
          		"cancel": "Anuluj",
          		"key_backspace": "usuń", 
          		"key_del": "usuń", 
          		"key_down": "w dół", 
          		"key_up": "w górę", 
          		"more_opts": "więcej opcji",
          		"url": "adres url",
          		"width": "Szerokość",
          		"height": "Wysokość"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Pokaż/ukryj więcej opcji obramowania",
          		"palette_info": "Kliknij aby zmienić kolor wypełnienia, przytrzymaj shift aby zmienić kolor obramowania",
          		"zoom_level": "Zmiana powiększenia",
          		"panel_drag": "Przeciągnij w lewo/prawo aby zmienić szerokość panelu"
          	},
          	properties: {
          		"id": "Identyfikator elementu",
          		"fill_color": "Zmień kolor wypełnienia",
          		"stroke_color": "Zmień kolor obramowania",
          		"stroke_style": "Zmień styl obramowania",
          		"stroke_width": "Zmień szerokość obramowania o 1, przytrzymaj shift aby zmienić szerokość o 0.1",
          		"pos_x": "Zmień współrzędną X",
          		"pos_y": "Zmień współrzędną Y",
          		"linecap_butt": "Zakończenie linii: grzbiet",
          		"linecap_round": "Zakończenie linii: zaokrąglone",
          		"linecap_square": "Zakończenie linii: kwadrat",
          		"linejoin_bevel": "Łączenie linii: ścięte",
          		"linejoin_miter": "Łączenie linii: ostre",
          		"linejoin_round": "Łączenie linii: zaokrąglone",
          		"angle": "Zmień kąt obrotu",
          		"blur": "Zmień wartość rozmycia gaussa",
          		"opacity": "Zmień przezroczystość zaznaczonego elementu",
          		"circle_cx": "Zmień współrzędną cx okręgu",
          		"circle_cy": "Zmień współrzędną cy okręgu",
          		"circle_r": "zmień promień okręgu",
          		"ellipse_cx": "Zmień współrzędną cx elipsy",
          		"ellipse_cy": "Zmień współrzędną cy elipsy",
          		"ellipse_rx": "Zmień promień x elipsy",
          		"ellipse_ry": "Zmień promień y elipsy",
          		"line_x1": "Zmień współrzędna x początku linii",
          		"line_x2": "Zmień współrzędną x końca linii",
          		"line_y1": "Zmień współrzędną y początku linii",
          		"line_y2": "Zmień współrzędną y końca linii",
          		"rect_height": "Zmień wysokość prostokąta",
          		"rect_width": "Zmień szerokość prostokąta",
          		"corner_radius": "Zmień promień zaokrąglenia narożników prostokąta",
          		"image_width": "Zmień wysokość obrazu",
          		"image_height": "Zmień szerokość obrazu",
          		"image_url": "Zmień adres URL",
          		"node_x": "Zmień współrzędną x węzła",
          		"node_y": "Zmień współrzędną y węzła",
          		"seg_type": "Zmień typ segmentu",
          		"straight_segments": "Prosty",
          		"curve_segments": "Zaokrąglony",
          		"text_contents": "Zmień text",
          		"font_family": "Zmień krój czcionki",
          		"font_size": "Zmień rozmiar czcionki",
          		"bold": "Pogrubienie textu",
          		"italic": "Kursywa"
          	},
          	tools: { 
          		"main_menu": "Menu główne",
          		"bkgnd_color_opac": "Zmiana koloru/przezroczystości tła",
          		"connector_no_arrow": "Brak strzałek",
          		"fitToContent": "Dopasuj do zawartości",
          		"fit_to_all": "Dopasuj do całej zawartości",
          		"fit_to_canvas": "Dopasuj do widoku",
          		"fit_to_layer_content": "Dopasuj do zawartości warstwy",
          		"fit_to_sel": "Dopasuj do zaznaczenia",
          		"align_relative_to": "Wyrównaj relatywnie do ...",
          		"relativeTo": "relatywnie do:",
          		"page": "strona",
          		"largest_object": "największy obiekt",
          		"selected_objects": "zaznaczone obiekty",
          		"smallest_object": "najmniejszy obiekt",
          		"new_doc": "Nowy obraz",
          		"open_doc": "Otwórz obraz",
          		"export_img": "Eksportuj",
          		"save_doc": "Zapisz obraz",
          		"import_doc": "Importuj SVG",
          		"align_to_page": "Wyrównaj element do strony",
          		"align_bottom": "Wyrównaj do dołu",
          		"align_center": "Wyśrodkuj w poziomie",
          		"align_left": "Wyrównaj do lewej",
          		"align_middle": "Wyśrodkuj w pionie",
          		"align_right": "Wyrównaj do prawej",
          		"align_top": "Wyrównaj do góry",
          		"mode_select": "Zaznaczenie",
          		"mode_fhpath": "Ołówek",
          		"mode_line": "Linia",
          		"mode_connect": "Połącz dwa obiekty",
          		"mode_rect": "Prostokąt",
          		"mode_square": "Kwadrat",
          		"mode_fhrect": "Dowolny prostokąt",
          		"mode_ellipse": "Elipsa",
          		"mode_circle": "Okrąg",
          		"mode_fhellipse": "Dowolna elipsa",
          		"mode_path": "Ścieżka",
          		"mode_shapelib": "Biblioteka kształtów",
          		"mode_text": "Tekst",
          		"mode_image": "Obraz",
          		"mode_zoom": "Powiększenie",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "Uwaga: Ten obraz nie może być osadzony. Być może podany adres na to nie pozwala",
          		"undo": "Wstecz",
          		"redo": "Dalej",
          		"tool_source": "Edytuj źródło",
          		"wireframe_mode": "Tryb szkieletowy",
          		"toggle_grid": "Pokaż/ukryj siatkę",
          		"clone": "Klonuj element(y)",
          		"del": "Usuń warstwę",
          		"group_elements": "Grupuj elementy",
          		"make_link": "Utwórz łącze",
          		"set_link_url": "Ustal adres URL (pozostaw puste aby usunąć)",
          		"to_path": "Konwertuj do ścieżki",
          		"reorient_path": "Zresetuj obwiednię",
          		"ungroup": "Rozgrupuj elementy",
          		"docprops": "Właściwości dokumentu",
          		"imagelib": "Biblioteka obrazów",
          		"move_bottom": "Przenieś pod spód",
          		"move_top": "Przenieś na wierzch",
          		"node_clone": "Klonuj węzeł",
          		"node_delete": "Usuń węzeł",
          		"node_link": "Podłącz punkty kontrolne",
          		"add_subpath": "Dodaj ścieżkę podrzędną",
          		"openclose_path": "Otwórz/zamknij ścieżkę podrzędną",
          		"source_save": "Zachowaj zmiany",
          		"cut": "Wytnij",
          		"copy": "Kopiuj",
          		"paste": "Wklej",
          		"paste_in_place": "Wklej w miejscu",
          		"delete": "Usuń",
          		"group": "Grupuj",
          		"move_front": "Przenieś do przodu",
          		"move_up": "Przenieś warstwę w górę",
          		"move_down": "Przenieś warstwę w dół",
          		"move_back": "Przenieś do tyłu"
          	},
          	layers: {
          		"layer":"Warstwa",
          		"layers": "Warstwy",
          		"del": "Usuń warstwę",
          		"move_down": "Przenieś warstwę w dół",
          		"new": "Nowa warstwa",
          		"rename": "Zmień nazwę warstwy",
          		"move_up": "Przenieś warstwę w górę",
          		"dupe": "Duplikuj warstwę",
          		"merge_down": "Scal w dół",
          		"merge_all": "Scal  wszystko",
          		"move_elems_to": "Przenieś elementy do:",
          		"move_selected": "Przenieś zaznaczone elementy do innej warstwy"
          	},
          	config: {
          		"image_props": "Własciwości obrazu",
          		"doc_title": "Tytuł",
          		"doc_dims": "Wymiary pola roboczego",
          		"included_images": "Dołączone obrazy",
          		"image_opt_embed": "Dane osadzone (pliki lokalne)",
          		"image_opt_ref": "Użyj referencji do pliku",
          		"editor_prefs": "Ustawienia edytora",
          		"icon_size": "Rozmiar ikon",
          		"language": "Język",
          		"background": "Tło edytora",
          		"editor_img_url": "Adres URL obrazu",
          		"editor_bg_note": "Uwaga: Tło nie zostało zapisane z obrazem.",
          		"icon_large": "Duże",
          		"icon_medium": "Średnie",
          		"icon_small": "Małe",
          		"icon_xlarge": "Bardzo duże",
          		"select_predefined": "Wybierz predefiniowany:",
          		"units_and_rulers": "Jednostki/Linijki",
          		"show_rulers": "Pokaż linijki",
          		"base_unit": "Podstawowa jednostka:",
          		"grid": "Siatka",
          		"snapping_onoff": "Włącz/wyłącz przyciąganie",
          		"snapping_stepsize": "Przyciągaj co:",
          		"grid_color": "Kolor siatki"
          	},
          	shape_cats: {
          		"basic": "Podstawowe",
          		"object": "Obiekty",
          		"symbol": "Symbole",
          		"arrow": "Strzałki",
          		"flowchart": "Bloki",
          		"animal": "Zwierzęta",
          		"game": "Karty i szachy",
          		"dialog_balloon": "Dymki",
          		"electronics": "Elektronika",
          		"math": "Matematyka",
          		"music": "Muzyka",
          		"misc": "Inne",
          		"raphael_1": "raphaeljs.com zestaw 1",
          		"raphael_2": "raphaeljs.com zestaw 2"
          	},
          	imagelib: {
          		"select_lib": "Wybierz bibliotekę obrazów",
          		"show_list": "Pokaż listę bibliotek",
          		"import_single": "Importuj pojedyńczo",
          		"import_multi": "Importuj wiele",
          		"open": "Otwórz jako nowy dokument"
          	},
          	notification: {
          		"invalidAttrValGiven":"Podano nieprawidłową wartość",
          		"noContentToFitTo":"Brak zawartości do dopasowania",
          		"dupeLayerName":"Istnieje już warstwa o takiej nazwie!",
          		"enterUniqueLayerName":"Podaj unikalną nazwę warstwy",
          		"enterNewLayerName":"Podaj nazwe nowej warstwy",
          		"layerHasThatName":"Warstwa już tak się nazywa",
          		"QmoveElemsToLayer":"Przenies zaznaczone elementy do warstwy \"%s\"?",
          		"QwantToClear":"Jesteś pewien, że chcesz wyczyścić pole robocze?\nHistoria projektu również zostanie skasowana",
          		"QwantToOpen":"Jesteś pewien, że chcesz otworzyć nowy plik?\nHistoria projektu również zostanie skasowana",
          		"QerrorsRevertToSource":"Błąd parsowania źródła Twojego pliku SVG.\nPrzywrócić orginalne źródło pliku SVG?",
          		"QignoreSourceChanges":"Zignorowac zmiany w źródle pliku SVG?",
          		"featNotSupported":"Funkcjonalność niedostępna",
          		"enterNewImgURL":"Podaj adres URL nowego obrazu",
          		"defsFailOnSave": "Uwaga: Ze względu na błąd w przeglądarce, ten obraz może się źle wyswietlać (brak gradientów lub elementów). Będzie jednak wyświetlał się poprawnie skoro został zapisany.",
          		"loadingImage":"Ładowanie obrazu, proszę czekać...",
          		"saveFromBrowser": "Wybierz \"Zapisz jako...\" w przeglądarce aby zapisać obraz jako plik %s.",
          		"noteTheseIssues": "Zwróć uwagę na nastepujące kwestie: ",
          		"unsavedChanges": "Wykryto niezapisane zmiany.",
          		"enterNewLinkURL": "Wpisz nowy adres URL hiperłącza",
          		"errorLoadingSVG": "Błąd: Nie można załadować danych SVG",
          		"URLloadFail": "Nie można załadować z adresu URL",
          		"retrieving": "Pobieranie \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.pt-BR.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "pt-BR",
          	dir : "ltr",
          	common: {
          		"ok": "OK",
          		"cancel": "Cancelar",
          		"key_backspace": "Tecla backspace", 
          		"key_del": "Tecla delete", 
          		"key_down": "Seta para baixo", 
          		"key_up": "Seta para cima", 
          		"more_opts": "Mais opções",
          		"url": "URL",
          		"width": "Largura",
          		"height": "Altura"
          	},
          	misc: {
          		"powered_by": "Tecnologia"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Mais opções de traço",
            	"palette_info": "Click para mudar a cor de preenchimento, shift-click para mudar a cor do traço",
          		"zoom_level": "Mudar zoom",
            	"panel_drag": "Arraste para redimensionar o painel"
          	},
          	properties: {
          	 	"id": "Identifica o elemento",
          		"fill_color": "Mudar a cor de preenchimento",
          		"stroke_color": "Mudar a cor do traço",
          		"stroke_style": "Mudar o estilo do traço",
          		"stroke_width": "Mudar a espessura do traço em 1, shift-click para mudar 0.1",
          		"pos_x": "Mudar a coordenada X",
          		"pos_y": "Mudar a coordenada Y",
          		"linecap_butt": "Estilo do fim do traço: Topo",
          		"linecap_round": "Estilo do fim do traço: Redondo",
          		"linecap_square": "Estilo do fim do traço: Quadrado",
          		"linejoin_bevel": "Estilo da Aresta: Chanfro",
          		"linejoin_miter": "Estilo da Aresta: Reto",
          		"linejoin_round": "Estilo da Aresta: Redondo",
          		"angle": "Mudar ângulo de rotação",
          		"blur": "Mudar valor de desfoque",
          		"opacity": "Mudar opacidade do item selecionado",
          		"circle_cx": "Mudar a coordenada cx do círculo",
          		"circle_cy": "Mudar a coordenada cy do círculo",
          		"circle_r": "Mudar o raio do círculo",
          		"ellipse_cx": "Mudar a coordenada cx da elípse",
          		"ellipse_cy": "Mudar a coordenada cy da elípse",
          		"ellipse_rx": "Mudar o raio x da elípse",
          		"ellipse_ry": "Mudar o raio y da elípse",
          		"line_x1": "Mudar a coordenada x do início da linha",
          		"line_x2": "Mudar a coordenada x do fim da linha",
          		"line_y1": "Mudar a coordenada y do início da linha",
          		"line_y2": "Mudar a coordenada y do fim da linha",
          		"rect_height": "Mudar a altura do retângulo",
          		"rect_width": "Mudar a largura do retângulo",
          		"corner_radius": "Mudar o raio da aresta do retângulo",
          		"image_width": "Mudar a largura da imagem",
          		"image_height": "Mudar a altura da imagem",
          		"image_url": "Mudar URL",
          		"node_x": "Mudar a coordenada x da aresta",
          		"node_y": "Mudar a coordenada y da aresta",
          		"seg_type": "Mudar o tipo de segmento",
          		"straight_segments": "Reto",
          		"curve_segments": "Curvo",
          		"text_contents": "Mudar conteúdo do texto",
          		"font_family": "Mudar o estilo da fonte",
          		"font_size": "Mudar o tamanho da fonte",
          		"bold": "Negrito",
          		"italic": "Italico"
          	},
          	tools: { 
          	 	"main_menu": "Menu Principal",
          		"bkgnd_color_opac": "Mudar cor/opacidade do fundo",
          		"connector_no_arrow": "Sem flecha",
          		"fitToContent": "Ajustar ao conteúdo",
          		"fit_to_all": "Ajustar a todo conteúdo",
          		"fit_to_canvas": "Ajustar à tela",
          		"fit_to_layer_content": "Ajustar ao conteúdo da camada",
          		"fit_to_sel": "Ajustar à seleção",
          		"align_relative_to": "Alinhar em relação à ...",
          		"relativeTo": "Referência:",
          		"page": "página",
          		"largest_object": "maior objeto",
          		"selected_objects": "objetos selecionados",
          		"smallest_object": "menor objeto",
          		"new_doc": "Nova imagem",
          		"open_doc": "Abrir imagem",
          		"export_img": "Export",
          		"save_doc": "Salvar imagem",
          		"import_doc": "Importar SVG",
          		"align_to_page": "Alinhar elemento na página",
          		"align_bottom": "Alinhar no fundo",
          		"align_center": "Alinhar no centro",
          		"align_left": "Alinhar na esquerda",
          		"align_middle": "Alinhar no meio",
          		"align_right": "Alinhar na direita",
          		"align_top": "Alinhar no topo",
          		"mode_select": "Selecão",
          		"mode_fhpath": "Lápis",
          		"mode_line": "Linha",
          		"mode_connect": "Conecção",
          		"mode_rect": "Retângulo",
          		"mode_square": "Quadrado",
          		"mode_fhrect": "Retângulo a mão-livre",
          		"mode_ellipse": "Elípse",
          		"mode_circle": "Círculo",
          		"mode_fhellipse": "Elípse a mão-livre",
          		"mode_path": "Contorno",
          		"mode_shapelib": "Biblioteca de Formas",
          		"mode_text": "Texto",
          		"mode_image": "Imagem",
          		"mode_zoom": "Zoom",
          		"mode_eyedropper": "Conta-gotas",
          		"no_embed": "Atenção: Esta imagem não pode ser incorporada e dependerá de seu caminho para ser exibida",
          		"undo": "Desfazer",
          		"redo": "Refazer",
          		"tool_source": "Editar o código",
          		"wireframe_mode": "Modo linhas",
          		"toggle_grid": "Mostrar/Esconder grade",
          		"clone": "Clonar Elemento(s)",
          		"del": "Deletar Elemento(s)",
          		"group_elements": "Agrupar Elementos",
          		"make_link": "Criar (hyper)link",
          		"set_link_url": "Alterar URL (em branco para remover)",
          		"to_path": "Converter para Contorno",
          		"reorient_path": "Reorientar contorno",
          		"ungroup": "Desagrupar Elementos",
          		"docprops": "Propriedades",
          		"imagelib": "Biblioteca de Imagens",
          		"move_bottom": "Mover para o fundo",
          		"move_top": "Mover para o topo",
          		"node_clone": "Clonar Aresta",
          		"node_delete": "Deletar Aresta",
          		"node_link": "Alinhar pontos de controle",
          		"add_subpath": "Adicionar contorno",
          		"openclose_path": "Abrir/Fechar contorno",
          		"source_save": "Salvar",
          		"cut": "Recortar",
          		"copy": "Copiar",
          		"paste": "Colar",
          		"paste_in_place": "Colar no mesmo local",
          		"delete": "Deletar",
          		"group": "Agrupar",
          		"move_front": "Trazer para Frente",
          		"move_up": "Avançar",
          		"move_down": "Recuar",
          		"move_back": "Enviar para Trás"
          	},
          	layers: {
          	 	"layer":"Camada",
          		"layers": "Camadas",
          		"del": "Deletar Camada",
          		"move_down": "Enviar Camada para Trás",
          		"new": "Nova Camada",
          		"rename": "Renomear Camada",
          		"move_up": "Trazer Camada para Frente",
          		"dupe": "Duplicar Camada",
          		"merge_down": "Achatar para baixo",
          		"merge_all": "Achatar todas",
          		"move_elems_to": "Mover elementos para:",
          		"move_selected": "Mover elementos selecionados para outra camada"
          	},
          	config: {
          	 	"image_props": "Propriedades",
          		"doc_title": "Título",
          		"doc_dims": "Dimensões",
          		"included_images": "Imagens",
          		"image_opt_embed": "Incorporadas (arquivos locais)",
          		"image_opt_ref": "Usar referência",
          		"editor_prefs": "Preferências",
          		"icon_size": "Tamanho dos ícones",
          		"language": "Idioma",
          		"background": "Fundo da página",
          		"editor_img_url": "URL da Imagem",
          		"editor_bg_note": "Atenção: Fundo da página não será salvo.",
          		"icon_large": "Grande",
          		"icon_medium": "Médio",
          		"icon_small": "Pequeno",
          		"icon_xlarge": "Extra Grande",
          		"select_predefined": "Modelos:",
          		"units_and_rulers": "Unidade & Réguas",
          		"show_rulers": "Mostrar réguas",
          		"base_unit": "Unidade base:",
          		"grid": "Grade",
          		"snapping_onoff": "Snap on/off",
          		"snapping_stepsize": "Intensidade do Snap:"
          	},
          	shape_cats: {
          		"basic": "Básico",
          		"object": "Objetos",
          		"symbol": "Símbolos",
          		"arrow": "Flechas",
          		"flowchart": "Fluxograma",
          		"animal": "Animais",
          		"game": "Jogos",
          		"dialog_balloon": "Balões",
          		"electronics": "Eletrônica",
          		"math": "Matemática",
          		"music": "Música",
          		"misc": "Outros",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Selecione uma biblioteca de imagens",
          		"show_list": "Voltar à lista de bibliotecas",
          		"import_single": "Importar um",
          		"import_multi": "Importar múltiplos",
          		"open": "Abrir como novo"
          	},
          	notification: {
          		"invalidAttrValGiven":"Valor inválido",
          		"noContentToFitTo":"Não há conteúdo",
          		"dupeLayerName":"Nome duplicado",
          		"enterUniqueLayerName":"Insira um nome único",
          		"enterNewLayerName":"Insira um novo nome",
          		"layerHasThatName":"A camada já pussui este nome",
          		"QmoveElemsToLayer":"Mover elementos selecionados para a camada: \"%s\"?",
          		"QwantToClear":"Deseja criar um novo arquivo?\nO histórico também será apagado!",
          		"QwantToOpen":"Deseja abrir um novo arquivo?\nO histórico também será apagado!",
          		"QerrorsRevertToSource":"Foram encontrados erros ná análise do código SVG.\nReverter para o código SVG original?",
          		"QignoreSourceChanges":"Ignorar as mudanças no código SVG?",
          		"featNotSupported":"Recurso não suportado",
          		"enterNewImgURL":"Insira nova URL da imagem",
          		"defsFailOnSave": "Atenção: Devido a um bug em seu navegador, esta imagem pode apresentar erros, porém será salva corretamente.",
          		"loadingImage":"Carregando imagem, por favor aguarde...",
          		"saveFromBrowser": "Selecione \"Salvar como...\" no seu navegador para salvar esta imagem como um arquivo %s.",
          		"noteTheseIssues": "Atenção para as seguintes questões: ",
          		"unsavedChanges": "Existem alterações não salvas.",
          		"enterNewLinkURL": "Insira novo URL do hyperlink",
          		"errorLoadingSVG": "Erro: Impossível carregar dados SVG",
          		"URLloadFail": "Impossível carregar deste URL",
          		"retrieving": "Recuperando \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.pt-PT.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "pt-PT",
          	dir : "ltr",
          	common: {
          		"ok": "Salvar",
          		"cancel": "Cancelar",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Clique para mudar a cor de preenchimento, shift-clique para mudar a cor do curso",
          		"zoom_level": "Alterar o nível de zoom",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Alterar a cor de preenchimento",
          		"stroke_color": "Mudar a cor do curso",
          		"stroke_style": "Alterar o estilo do traço do curso",
          		"stroke_width": "Alterar a largura do curso",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Alterar o ângulo de rotação",
          		"blur": "Change gaussian blur value",
          		"opacity": "Mude a opacidade item selecionado",
          		"circle_cx": "Cx Mudar círculo de coordenadas",
          		"circle_cy": "Círculo Mudança cy coordenar",
          		"circle_r": "Alterar círculo de raio",
          		"ellipse_cx": "Alterar elipse cx coordenar",
          		"ellipse_cy": "Elipse Mudança cy coordenar",
          		"ellipse_rx": "Raio X Change elipse",
          		"ellipse_ry": "Raio y Change elipse",
          		"line_x1": "Altere a linha de partida coordenada x",
          		"line_x2": "Altere a linha está terminando coordenada x",
          		"line_y1": "Mudança na linha de partida coordenada y",
          		"line_y2": "Mudança de linha está terminando coordenada y",
          		"rect_height": "Alterar altura do retângulo",
          		"rect_width": "Alterar a largura retângulo",
          		"corner_radius": "Alterar Corner Rectangle Radius",
          		"image_width": "Alterar a largura da imagem",
          		"image_height": "Alterar altura da imagem",
          		"image_url": "Alterar URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Alterar o conteúdo de texto",
          		"font_family": "Alterar fonte Família",
          		"font_size": "Alterar tamanho de letra",
          		"bold": "Bold Text",
          		"italic": "Texto em itálico"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Mudar a cor de fundo / opacidade",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Ajustar ao conteúdo",
          		"fit_to_all": "Ajustar a todo o conteúdo",
          		"fit_to_canvas": "Ajustar à tela",
          		"fit_to_layer_content": "Ajustar o conteúdo da camada de",
          		"fit_to_sel": "Ajustar à selecção",
          		"align_relative_to": "Alinhar em relação a ...",
          		"relativeTo": "em relação ao:",
          		"Página": "Página",
          		"largest_object": "maior objeto",
          		"selected_objects": "objetos eleitos",
          		"smallest_object": "menor objeto",
          		"new_doc": "Nova Imagem",
          		"open_doc": "Abrir Imagem",
          		"export_img": "Export",
          		"save_doc": "Salvar Imagem",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Align Bottom",
          		"align_center": "Alinhar ao centro",
          		"align_left": "Alinhar à Esquerda",
          		"align_middle": "Alinhar Médio",
          		"align_right": "Alinhar à Direita",
          		"align_top": "Align Top",
          		"mode_select": "Selecione a ferramenta",
          		"mode_fhpath": "Ferramenta Lápis",
          		"mode_line": "Ferramenta Linha",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Free-Hand Rectangle",
          		"mode_ellipse": "Elipse",
          		"mode_circle": "Circle",
          		"mode_fhellipse": "Free-Hand Ellipse",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Ferramenta de Texto",
          		"mode_image": "Image Tool",
          		"mode_zoom": "Zoom Tool",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Desfazer",
          		"redo": "Refazer",
          		"tool_source": "Fonte Editar",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Elementos do Grupo",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Elementos Desagrupar",
          		"docprops": "Propriedades do Documento",
          		"imagelib": "Image Library",
          		"move_bottom": "Move to Bottom",
          		"move_top": "Move to Top",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Salvar",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Delete Layer",
          		"move_down": "Move camada para baixo",
          		"new": "New Layer",
          		"rename": "Rename Layer",
          		"move_up": "Move Layer Up",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Selecione predefinidos:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.ro.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "ro",
          	dir : "ltr",
          	common: {
          		"ok": "Ok",
          		"cancel": "Anulaţi",
          		"key_backspace": "backspace", 
          		"key_del": "ştergere", 
          		"key_down": "jos", 
          		"key_up": "sus", 
          		"more_opts": "Mai multe opţiuni",
          		"url": "URL",
          		"width": "Lăţime",
          		"height": "Înălţime"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Arătaţi/ascundeţi mai multe unelte de contur",
          		"palette_info": "Faceţi clic pentru a schimba culoarea de umplere, Shift-clic pentru a schimba culoarea de contur",
          		"zoom_level": "Schimbarea nivelului de zoom",
          		"panel_drag": "Trageţi la stanga/dreapta pentru redimensionare panou lateral"
          	},
          	properties: {
          		"id": "Identificare element",
          		"fill_color": "Schimbarea culorii de umplere",
          		"stroke_color": "Schimbarea culorii de contur",
          		"stroke_style": "Schimbarea stilului de contur",
          		"stroke_width": "Schimbarea lăţimii conturului",
          		"pos_x": "Schimbă coordonata X",
          		"pos_y": "Schimbă coordonata Y",
          		"linecap_butt": "Capăt de linie: Butuc",
          		"linecap_round": "Capăt de linie: Rotund",
          		"linecap_square": "Capăt de linie: Pătrat",
          		"linejoin_bevel": "Articulaţia liniei: Teşită",
          		"linejoin_miter": "Articulaţia liniei: Unghi ascuţit",
          		"linejoin_round": "Articulaţia liniei: Rotundă",
          		"angle": "Schimbarea unghiul de rotaţie",
          		"blur": "Schimbarea valorii estomparii gaussiene",
          		"opacity": "Schimbarea gradului de opacitate",
          		"circle_cx": "Schimbarea coordonatei CX a cercului",
          		"circle_cy": "Schimbarea coordonatei CY a cercului",
          		"circle_r": "Schimbarea razei cercului",
          		"ellipse_cx": "Schimbarea coordonatei CX a elipsei",
          		"ellipse_cy": "Schimbarea coordonatei CY a elipsei",
          		"ellipse_rx": "Schimbarea razei elipsei X",
          		"ellipse_ry": "Schimbarea razei elipsei Y",
          		"line_x1": "Schimbarea coordonatei x a punctului de start",
          		"line_x2": "Schimbarea coordonatei x a punctului final",
          		"line_y1": "Schimbarea coordonatei y a punctului de start",
          		"line_y2": "Schimbare coordonatei y a punctului final",
          		"rect_height": "Schimbarea înălţimii dreptunghiului",
          		"rect_width": "Schimbarea lăţimii dreptunghiului",
          		"corner_radius": "Schimbarea razei colţului dreptunghiului",
          		"image_width": "Schimbarea lăţimii imaginii",
          		"image_height": "Schimbarea înălţimii imaginii",
          		"image_url": "Schimbaţi URL-ul",
          		"node_x": "Schimbă coordonata x a punctului",
          		"node_y": "Schimbă coordonata x a punctului",
          		"seg_type": "Schimbă tipul de segment",
          		"straight_segments": "Drept",
          		"curve_segments": "Curb",
          		"text_contents": "Schimbarea conţinutului textului",
          		"font_family": "Modificare familie de fonturi",
          		"font_size": "Schimbă dimensiunea fontului",
          		"bold": "Text Îngroşat",
          		"italic": "Text Înclinat"
          	},
          	tools: { 
          		"main_menu": "Menu Principal",
          		"bkgnd_color_opac": "Schimbare culoare de fundal / opacitate",
          		"connector_no_arrow": "Fără săgeată",
          		"fitToContent": "Dimensionare la conţinut",
          		"fit_to_all": "Potrivire la tot conţinutul",
          		"fit_to_canvas": "Potrivire la Şevalet",
          		"fit_to_layer_content": "Potrivire la conţinutul stratului",
          		"fit_to_sel": "Potrivire la selecţie",
          		"align_relative_to": "Aliniere în raport cu ...",
          		"relativeTo": "în raport cu:",
          		"de start": "de start",
          		"largest_object": "cel mai mare obiect",
          		"selected_objects": "obiectele alese",
          		"smallest_object": "cel mai mic obiect",
          		"new_doc": "Imagine nouă",
          		"open_doc": "Imagine deschisă",
          		"export_img": "Export",
          		"save_doc": "Salvare imagine",
          		"import_doc": "Importare SVG",
          		"align_to_page": "Aliniere la pagină",
          		"align_bottom": "Aliniere jos",
          		"align_center": "Aliniere la centru",
          		"align_left": "Aliniere la stânga",
          		"align_middle": "Aliniere la mijloc",
          		"align_right": "Aliniere la dreapta",
          		"align_top": "Aliniere sus",
          		"mode_select": "Unealtă de Selectare",
          		"mode_fhpath": "Unealtă de Traiectorie",
          		"mode_line": "Unealtă de Linie",
          		"mode_connect": "Conectati doua obiecte",
          		"mode_rect": "Unealtă de Dreptunghi",
          		"mode_square": "Unealtă de Pătrat",
          		"mode_fhrect": "Dreptunghi cu mana liberă",
          		"mode_ellipse": "Elipsă",
          		"mode_circle": "Cerc",
          		"mode_fhellipse": "Elipsă cu mana liberă",
          		"mode_path": "Unealtă de Traiectorie",
          		"mode_shapelib": "Biblioteca de forme",
          		"mode_text": "Unealtă de Text",
          		"mode_image": "Unealtă de Imagine",
          		"mode_zoom": "Unealtă de Zoom",
          		"mode_eyedropper": "Unealtă de captura Culoare",
          		"no_embed": "NOTE: Aceasta imagine nu poate fi inglobată. Va depinde de aceasta traiectorie pentru a fi prezentată.",
          		"undo": "Anulare",
          		"redo": "Refacere",
          		"tool_source": "Editare Cod Sursă",
          		"wireframe_mode": "Mod Schelet",
          		"toggle_grid": "Arată/ascunde Caroiaj",
          		"clone": "Clonează Elementul/ele",
          		"del": "Şterge Elementul/ele",
          		"group_elements": "Grupare Elemente",
          		"make_link": "Crează (hyper)link",
          		"set_link_url": "Setează link URL (lăsaţi liber pentru eliminare)",
          		"to_path": "Converteşte in Traiectorie",
          		"reorient_path": "Reorientează Traiectoria",
          		"ungroup": "Anulare Grupare Elemente",
          		"docprops": "Proprietăţile Documentului",
          		"imagelib": "Bibliotecă de Imagini",
          		"move_bottom": "Mutare în jos",
          		"move_top": "Mutare în sus",
          		"node_clone": "Clonează Punct",
          		"node_delete": "Şterge Punct",
          		"node_link": "Uneşte Punctele de Control",
          		"add_subpath": "Adăugaţi sub-traiectorie",
          		"openclose_path": "Deschide/inchide sub-traiectorie",
          		"source_save": "Folosiţi Schimbările",
          		"cut": "Tăiere",
          		"copy": "Copiere",
          		"paste": "Reproducere",
          		"paste_in_place": "Reproducere pe loc",
          		"delete": "Ştergere",
          		"group": "Group",
          		"move_front": "Pune in faţa",
          		"move_up": "Pune in spate",
          		"move_down": "Trimite in faţa",
          		"move_back": "Trimite in spate"
          	},
          	layers: {
          		"layer":"Strat",
          		"layers": "Straturi",
          		"del": "Ştergeţi Strat",
          		"move_down": "Mutare Strat în Jos",
          		"new": "Strat Nou",
          		"rename": "Redenumiţi Stratul",
          		"move_up": "Mutare Strat în Sus",
          		"dupe": "Duplicaţi Stratul",
          		"merge_down": "Fuzionare in jos",
          		"merge_all": "Fuzionarea tuturor",
          		"move_elems_to": "Mută elemente la:",
          		"move_selected": "Mută elementele selectate pe un alt strat"
          	},
          	config: {
          		"image_props": "Proprietăţile Imaginii",
          		"doc_title": "Titlul",
          		"doc_dims": "Dimensiunile Şevaletului",
          		"included_images": "Imaginile Incluse",
          		"image_opt_embed": "Includeţi Datele (fişiere locale)",
          		"image_opt_ref": "Foloseşte referinţe la fişiere",
          		"editor_prefs": "Preferinţele Editorului",
          		"icon_size": "Dimensiunile Butoanelor",
          		"language": "Limba",
          		"background": "Fondul Editorului",
          		"editor_img_url": "URL-ul Imaginii",
          		"editor_bg_note": "Notă: Fondul nu va fi salvat cu imaginea.",
          		"icon_large": "Mari",
          		"icon_medium": "Medii",
          		"icon_small": "Mici",
          		"icon_xlarge": "Foarte Mari",
          		"select_predefined": "Selecţii predefinite:",
          		"units_and_rulers": "Unitati si Rigle",
          		"show_rulers": "Arată Riglele",
          		"base_unit": "Unitate de baza:",
          		"grid": "Caroiaj",
          		"snapping_onoff": "Fixare on/off",
          		"snapping_stepsize": "Dimensiunea pasului de fixare:"
          	},
          	shape_cats: {
          		"basic": "De bază",
          		"object": "Obiecte",
          		"symbol": "Simboluri",
          		"arrow": "Săgeti",
          		"flowchart": "Schemă Logică",
          		"animal": "Animale",
          		"game": "Cărti & şah",
          		"dialog_balloon": "Baloane de dialog",
          		"electronics": "Electronice",
          		"math": "Matematică",
          		"music": "Muzică",
          		"misc": "Diverse",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Selectati o biblioteca de imagini",
          		"show_list": "Arătaţi lista bibliotecii",
          		"import_single": "Importare unică",
          		"import_multi": "Importare multiplă",
          		"open": "Deschideţi ca si document nou"
          	},
          	notification: {
          		"invalidAttrValGiven":"Valoarea data nu este validă",
          		"noContentToFitTo":"Fara conţinut de referinţă",
          		"dupeLayerName":"Deja exista un strat numit asa!",
          		"enterUniqueLayerName":"Rog introduceţi un nume unic",
          		"enterNewLayerName":"Rog introduceţi un nume pentru strat",
          		"layerHasThatName":"Statul deja are acest nume",
          		"QmoveElemsToLayer":"Mutaţi elementele selectate pe stratul '%s'?",
          		"QwantToClear":"Doriti să ştergeţi desenul?\nAceasta va sterge si posibilitatea de anulare!",
          		"QwantToOpen":"Doriti sa deschideţi un nou fişier?\nAceasta va şterge istoricul!",
          		"QerrorsRevertToSource":"Sunt erori de parsing in sursa SVG.\nRevenire la sursa SVG orginală?",
          		"QignoreSourceChanges":"Ignoraţi schimbarile la sursa SVG?",
          		"featNotSupported":"Funcţie neimplementată",
          		"enterNewImgURL":"Introduceţi noul URL pentru Imagine",
          		"defsFailOnSave": "NOTE: Din cauza unei erori in browserul dv., aceasta imagine poate apare gresit (fara gradiente sau elemente). Însă va apare corect dupa salvare.",
          		"loadingImage":"Imaginea se incarcă, va rugam asteptaţi...",
          		"saveFromBrowser": "Selectează \"Salvează ca si...\" in browserul dv. pt. a salva aceasta imagine ca si fisier %s.",
          		"noteTheseIssues": "De asemenea remarcati urmatoarele probleme: ",
          		"unsavedChanges": "Sunt schimbări nesalvate.",
          		"enterNewLinkURL": "IntroduAliniere în raport cu ...sceţi noul URL",
          		"errorLoadingSVG": "Eroare: Nu se pot încărca datele SVG",
          		"URLloadFail": "Nu se poate încărca de la URL",
          		"retrieving": "În preluare \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.ru.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "ru",
          	dir : "ltr",
          	common: {
          		"ok": "Сохранить",
          		"cancel": "Отменить",
          		"key_backspace": "Backspace", 
          		"key_del": "Delete", 
          		"key_down": "Вниз", 
          		"key_up": "Вверх", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Нажмите для изменения цвета заливки, Shift-Click изменить цвета обводки",
          		"zoom_level": "Изменить масштаб",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Изменить цвет заливки",
          		"stroke_color": "Изменить цвет обводки",
          		"stroke_style": "Изменить стиль обводки",
          		"stroke_width": "Изменить толщину обводки",
          		"pos_x": "Изменить горизонтальный координат",
          		"pos_y": "Изменить вертикальный координат",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Изменить угол поворота",
          		"blur": "Change gaussian blur value",
          		"opacity": "Изменить непрозрачность элемента",
          		"circle_cx": "Изменить горизонтальный координат (CX) окружности",
          		"circle_cy": "Изменить вертикальный координат (CY) окружности",
          		"circle_r": "Изменить радиус окружности",
          		"ellipse_cx": "Изменить горизонтальный координат (CX) эллипса",
          		"ellipse_cy": "Изменить вертикальный координат (CY) эллипса",
          		"ellipse_rx": "Изменить горизонтальный радиус эллипса",
          		"ellipse_ry": "Изменить вертикальный радиус эллипса",
          		"line_x1": "Изменить горизонтальный координат X начальной точки линии",
          		"line_x2": "Изменить горизонтальный координат X конечной точки линии",
          		"line_y1": "Изменить вертикальный координат Y начальной точки линии",
          		"line_y2": "Изменить вертикальный координат Y конечной точки линии",
          		"rect_height": "Изменениe высоту прямоугольника",
          		"rect_width": "Измененить ширину прямоугольника",
          		"corner_radius": "Радиус закругленности угла",
          		"image_width": "Изменить ширину изображения",
          		"image_height": "Изменить высоту изображения",
          		"image_url": "Изменить URL",
          		"node_x": "Изменить горизонтальную координату узла",
          		"node_y": "Изменить вертикальную координату узла",
          		"seg_type": "Изменить вид",
          		"straight_segments": "Отрезок",
          		"curve_segments": "Сплайн",
          		"text_contents": "Изменить содержание текста",
          		"font_family": "Изменить семейство шрифтов",
          		"font_size": "Изменить размер шрифта",
          		"bold": "Жирный",
          		"italic": "Курсив"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Изменить цвет фона или прозрачность",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Под размер содержимого",
          		"fit_to_all": "Под размер всех слоев",
          		"fit_to_canvas": "Под размер холста",
          		"fit_to_layer_content": "Под размер содержания слоя",
          		"fit_to_sel": "Под размер выделенного",
          		"align_relative_to": "Выровнять по отношению к ...",
          		"relativeTo": "По отношению к ",
          		"страница": "страница",
          		"largest_object": "Наибольший объект",
          		"selected_objects": "Выделенные объекты",
          		"smallest_object": "Самый маленький объект",
          		"new_doc": "Создать изображение",
          		"open_doc": "Открыть изображение",
          		"export_img": "Export",
          		"save_doc": "Сохранить изображение",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Выровнять по нижнему краю",
          		"align_center": "Центрировать по вертикальной оси",
          		"align_left": "По левому краю",
          		"align_middle": "Центрировать по горизонтальной оси",
          		"align_right": "По правому краю",
          		"align_top": "Выровнять по верхнему краю",
          		"mode_select": "Выделить",
          		"mode_fhpath": "Карандаш",
          		"mode_line": "Линия",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Прямоугольник от руки",
          		"mode_ellipse": "Эллипс",
          		"mode_circle": "Окружность",
          		"mode_fhellipse": "Эллипс от руки",
          		"mode_path": "Контуры",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Текст",
          		"mode_image": "Изображение",
          		"mode_zoom": "Лупа",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Отменить",
          		"redo": "Вернуть",
          		"tool_source": "Редактировать исходный код",
          		"wireframe_mode": "Каркас",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Создать группу элементов",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "В контур",
          		"reorient_path": "Изменить ориентацию контура",
          		"ungroup": "Разгруппировать элементы",
          		"docprops": "Свойства документа",
          		"imagelib": "Image Library",
          		"move_bottom": "Опустить",
          		"move_top": "Поднять",
          		"node_clone": "Создать копию узла",
          		"node_delete": "Удалить узел",
          		"node_link": "Связать узлы",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Сохранить",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"Delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Слой",
          		"layers": "Layers",
          		"del": "Удалить слой",
          		"move_down": "Опустить слой",
          		"new": "Создать слой",
          		"rename": "Переименовать Слой",
          		"move_up": "Поднять слой",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Переместить выделенные элементы:",
          		"move_selected": "Переместить выделенные элементы на другой слой"
          	},
          	config: {
          		"image_props": "Свойства изображения",
          		"doc_title": "Название",
          		"doc_dims": "Размеры холста",
          		"included_images": "Встроенные изображения",
          		"image_opt_embed": "Локальные файлы",
          		"image_opt_ref": "По ссылкам",
          		"editor_prefs": "Параметры",
          		"icon_size": "Размер значков",
          		"language": "Язык",
          		"background": "Фон",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "(Фон не сохранится вместе с изображением.)",
          		"icon_large": "Большие",
          		"icon_medium": "Средние",
          		"icon_small": "Малые",
          		"icon_xlarge": "Огромные",
          		"select_predefined": "Выбирать предопределенный размер",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Некорректное значение аргумента",
          		"noContentToFitTo":"Нет содержания, по которому выровнять.",
          		"dupeLayerName":"Слой с этим именем уже существует.",
          		"enterUniqueLayerName":"Пожалуйста, введите имя для слоя.",
          		"enterNewLayerName":"Пожалуйста, введите новое имя.",
          		"layerHasThatName":"Слой уже называется этим именем.",
          		"QmoveElemsToLayer":"Переместить выделенные элементы на слой '%s'?",
          		"QwantToClear":"Вы хотите очистить?\nИстория действий будет забыта!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"Была проблема при парсинге вашего SVG исходного кода.\nЗаменить его предыдущим SVG кодом?",
          		"QignoreSourceChanges":"Забыть без сохранения?",
          		"featNotSupported":"Возможность не реализована",
          		"enterNewImgURL":"Введите новый URL изображения",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.sk.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "sk",
          	dir : "ltr",
          	common: {
          		"ok": "Uložiť",
          		"cancel": "Zrušiť",
          		"key_backspace": "Backspace", 
          		"key_del": "Delete", 
          		"key_down": "šípka dole", 
          		"key_up": "šípka hore", 
          		"more_opts": "Viac možností",
          		"url": "URL",
          		"width": "Šírka",
          		"height": "Výška"
          	},
          	misc: {
          		"powered_by": "Beží na"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Skryť/ukázať viac nástrojov pre krivku",
          		"palette_info": "Kliknutím zmeníte farbu výplne, so Shiftom zmeníte farbu obrysu",
          		"zoom_level": "Zmena priblíženia",
          		"panel_drag": "Potiahnutie vľavo/vpravo na zmenu veľkosti bočného panela"
          	},
          	properties: {
          		"id": "Zmeniť ID elementu",
          		"fill_color": "Zmeniť farbu výplne",
          		"stroke_color": "Zmeniť farbu obrysu",
          		"stroke_style": "Zmeniť štýl obrysu",
          		"stroke_width": "Zmeniť hrúbku obrysu",
          		"pos_x": "Zmeniť súradnicu X",
          		"pos_y": "Zmeniť súradnicu Y",
          		"linecap_butt": "Koniec čiary: presný",
          		"linecap_round": "Koniec čiary: zaoblený",
          		"linecap_square": "Koniec čiary: so štvorcovým presahom",
          		"linejoin_bevel": "Napojenie čiar: skosené",
          		"linejoin_miter": "Napojenie čiar: ostré",
          		"linejoin_round": "Napojenie čiar: oblé",
          		"angle": "Zmeniť uhol natočenia",
          		"blur": "Zmeniť intenzitu rozmazania",
          		"opacity": "Zmeniť prehľadnosť vybraných položiek",
          		"circle_cx": "Zmeniť súradnicu X stredu kružnice",
          		"circle_cy": "Zmeniť súradnicu Y stredu kružnice",
          		"circle_r": "Zmeniť polomer kružnice",
          		"ellipse_cx": "Zmeniť súradnicu X stredu elipsy",
          		"ellipse_cy": "Zmeniť súradnicu Y stredu elipsy",
          		"ellipse_rx": "Zmeniť polomer X elipsy",
          		"ellipse_ry": "Zmeniť polomer Y elipsy",
          		"line_x1": "Zmeniť počiatočnú súradnicu X čiary",
          		"line_x2": "Zmeniť koncovú súradnicu X čiary",
          		"line_y1": "Zmeniť počiatočnú súradnicu Y čiary",
          		"line_y2": "Zmeniť koncovú súradnicu Y čiary",
          		"rect_height": "Zmena výšku obdĺžnika",
          		"rect_width": "Zmeniť šírku obdĺžnika",
          		"corner_radius": "Zmeniť zaoblenie rohov obdĺžnika",
          		"image_width": "Zmeniť šírku obrázka",
          		"image_height": "Zmeniť výšku obrázka",
          		"image_url": "Zmeniť URL",
          		"node_x": "Zmeniť uzlu súradnicu X",
          		"node_y": "Zmeniť uzlu súradnicu Y",
          		"seg_type": "Zmeniť typ segmentu",
          		"straight_segments": "Rovný",
          		"curve_segments": "Krivka",
          		"text_contents": "Zmeniť text",
          		"font_family": "Zmeniť font",
          		"font_size": "Zmeniť veľkosť písma",
          		"bold": "Tučné",
          		"italic": "Kurzíva"
          	},
          	tools: { 
          		"main_menu": "Hlavné menu",
          		"bkgnd_color_opac": "Zmeniť farbu a priehľadnosť pozadia",
          		"connector_no_arrow": "Spojnica bez šípok",
          		"fitToContent": "Prispôsobiť obsahu",
          		"fit_to_all": "Prisposobiť celému obsahu",
          		"fit_to_canvas": "Prispôsobiť stránke",
          		"fit_to_layer_content": "Prispôsobiť obsahu vrstvy",
          		"fit_to_sel": "Prispôsobiť výberu",
          		"align_relative_to": "Zarovnať relatívne k ...",
          		"relativeTo": "vzhľadom k:",
          		"page": "stránke",
          		"largest_object": "najväčšiemu objektu",
          		"selected_objects": "zvoleným objektom",
          		"smallest_object": "najmenšiemu objektu",
          		"new_doc": "Nový obrázok",
          		"open_doc": "Otvoriť obrázok",
          		"export_img": "Export",
          		"save_doc": "Uložiť obrázok",
          		"import_doc": "Import Image",
          		"align_to_page": "Zarovnať element na stránku",
          		"align_bottom": "Zarovnať dole",
          		"align_center": "Zarovnať na stred",
          		"align_left": "Zarovnať doľava",
          		"align_middle": "Zarovnať na stred",
          		"align_right": "Zarovnať doprava",
          		"align_top": "Zarovnať hore",
          		"mode_select": "Výber",
          		"mode_fhpath": "Ceruzka",
          		"mode_line": "Čiara",
          		"mode_connect": "Spojiť dva objekty",
          		"mode_rect": "Obdĺžnik",
          		"mode_square": "Štvorec",
          		"mode_fhrect": "Obdĺžnik voľnou rukou",
          		"mode_ellipse": "Elipsa",
          		"mode_circle": "Kružnica",
          		"mode_fhellipse": "Elipsa voľnou rukou",
          		"mode_path": "Krivka",
          		"mode_shapelib": "Knižnica Tvarov",
          		"mode_text": "Text",
          		"mode_image": "Obrázok",
          		"mode_zoom": "Priblíženie",
          		"mode_eyedropper": "Pipeta",
          		"no_embed": "POZNÁMKA: Tento obrázok nemôže byť vložený. Jeho zobrazenie bude závisieť na jeho ceste",
          		"undo": "Späť",
          		"redo": "Opakovať",
          		"tool_source": "Upraviť SVG kód",
          		"wireframe_mode": "Drôtový model",
          		"toggle_grid": "Zobraz/Skry mriežku",
          		"clone": "Klonuj element(y)",
          		"del": "Zmaž element(y)",
          		"group_elements": "Zoskupiť elementy",
          		"make_link": "Naviaž odkaz (hyper)link",
          		"set_link_url": "Nastav odkaz URL (ak prázdny, odstráni sa)",
          		"to_path": "Previesť na krivku",
          		"reorient_path": "Zmeniť orientáciu krivky",
          		"ungroup": "Zrušiť skupinu",
          		"docprops": "Vlastnosti dokumentu",
          		"imagelib": "Knižnica obrázkov",
          		"move_bottom": "Presunúť spodok",
          		"move_top": "Presunúť na vrch",
          		"node_clone": "Klonovať uzol",
          		"node_delete": "Zmazať uzol",
          		"node_link": "Prepojiť kontrolné body",
          		"add_subpath": "Pridať ďalšiu súčasť krivky",
          		"openclose_path": "Otvoriť/uzatvoriť súčasť krivky",
          		"source_save": "Uložiť",
          		"cut": "Vystrihnutie",
          		"copy": "Kópia",
          		"paste": "Vloženie",
          		"paste_in_place": "Vloženie na pôvodnom mieste",
          		"delete": "Zmazanie",
          		"group": "Group",
          		"move_front": "Vysuň navrch",
          		"move_up": "Vysuň vpred",
          		"move_down": "Zasuň na spodok",
          		"move_back": "Zasuň dozadu"
          	},
          	layers: {
          		"layer": "Vrstva",
          		"layers": "Vrstvy",
          		"del": "Odstrániť vrstvu",
          		"move_down": "Presunúť vrstvu dole",
          		"new": "Nová vrstva",
          		"rename": "Premenovať vrstvu",
          		"move_up": "Presunúť vrstvu hore",
          		"dupe": "Zduplikovať vrstvu",
          		"merge_down": "Zlúčiť s vrstvou dole",
          		"merge_all": "Zlúčiť všetko",
          		"move_elems_to": "Presunúť elementy do:",
          		"move_selected": "Presunúť vybrané elementy do inej vrstvy"
          	},
          	config: {
          		"image_props": "Vlastnosti obrázka",
          		"doc_title": "Titulok",
          		"doc_dims": "Rozmery plátna",
          		"included_images": "Vložené obrázky",
          		"image_opt_embed": "Vložiť data (lokálne súbory)",
          		"image_opt_ref": "Použiť referenciu na súbor",
          		"editor_prefs": "Vlastnosti editora",
          		"icon_size": "Veľkosť ikon",
          		"language": "Jazyk",
          		"background": "Zmeniť pozadie",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Poznámka: Pozadie nebude uložené spolu s obrázkom.",
          		"icon_large": "Veľká",
          		"icon_medium": "Stredná",
          		"icon_small": "Malá",
          		"icon_xlarge": "Extra veľká",
          		"select_predefined": "Vybrať preddefinovaný:",
          		"units_and_rulers": "Jednotky & Pravítka",
          		"show_rulers": "Ukáž pravítka",
          		"base_unit": "Základné jednotky:",
          		"grid": "Mriežka",
          		"snapping_onoff": "Priväzovanie (do mriežky) zap/vyp",
          		"snapping_stepsize": "Priväzovanie (do mriežky) veľkosť kroku:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Základné",
          		"object": "Objekty",
          		"symbol": "Symboly",
          		"arrow": "Šípky",
          		"flowchart": "Vývojové diagramy",
          		"animal": "Zvieratá",
          		"game": "Karty & Šach",
          		"dialog_balloon": "Dialogové balóny",
          		"electronics": "Elektronika",
          		"math": "Matematické",
          		"music": "Hudba",
          		"misc": "Rôzne",
          		"raphael_1": "raphaeljs.com sada 1",
          		"raphael_2": "raphaeljs.com sada 2"
          	},
          	imagelib: {
          		"select_lib": "Výber knižnice obrázkov",
          		"show_list": "Prehľad knižnice",
          		"import_single": "Import jeden",
          		"import_multi": "Import viacero",
          		"open": "Otvoriť ako nový dokument"
          	},
          	notification: {
          		"invalidAttrValGiven":"Neplatná hodnota",
          		"noContentToFitTo":"Vyberte oblasť na prispôsobenie",
          		"dupeLayerName":"Vrstva s daným názvom už existuje!",
          		"enterUniqueLayerName":"Zadajte jedinečný názov vrstvy",
          		"enterNewLayerName":"Zadajte názov vrstvy",
          		"layerHasThatName":"Vrstva už má zadaný tento názov",
          		"QmoveElemsToLayer":"Presunúť elementy do vrstvy '%s'?",
          		"QwantToClear":"Naozaj chcete vymazať kresbu?\n(História bude taktiež vymazaná!)!",
          		"QwantToOpen":"Chcete otvoriť nový súbor?\nTo však tiež vymaže Vašu UNDO knižnicu!",
          		"QerrorsRevertToSource":"Chyba pri načítaní SVG dokumentu.\nVrátiť povodný SVG dokument?",
          		"QignoreSourceChanges":"Ignorovať zmeny v SVG dokumente?",
          		"featNotSupported":"Vlastnosť nie je podporovaná",
          		"enterNewImgURL":"Zadajte nové URL obrázka",
          		"defsFailOnSave": "POZNÁMKA: Kvôli chybe v prehliadači sa tento obrázok môže zobraziť nesprávne (napr. chýbajúce prechody či elementy). Po uložení sa zobrazí správne.",
          		"loadingImage":"Nahrávam obrázok, prosím čakajte ...",
          		"saveFromBrowser": "Vyberte \"Uložiť ako ...\" vo vašom prehliadači na uloženie tohoto obrázka do súboru %s.",
          		"noteTheseIssues": "Môžu sa vyskytnúť nasledujúce problémy: ",
          		"unsavedChanges": "Sú tu neuložené zmeny.",
          		"enterNewLinkURL": "Zadajte nové URL odkazu (hyperlink)",
          		"errorLoadingSVG": "Chyba: Nedajú sa načítať SVG data",
          		"URLloadFail": "Nemožno čítať z URL",
          		"retrieving": "Načítavanie \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.sl.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "sl",
          	dir : "ltr",
          	common: {
          		"ok": "V redu",
          		"cancel": "Prekliči",
          		"key_backspace": "backspace",
          		"key_del": "delete",
          		"key_down": "dol",
          		"key_up": "gor",
          		"more_opts": "Več možnosti",
          		"url": "URL",
          		"width": "širina",
          		"height": "višina"
          	},
          	misc: {
          		"powered_by": "Izdelano z"
          	},
          	ui: {
          		"toggle_stroke_tools": "Pokaži/skrij več orodij za oris",
          		"palette_info": "Kliknite, če želite spremeniti barvo polnila, kliknite+Shift, če želite spremeniti barvo orisa",
          		"zoom_level": "Povečava",
          		"panel_drag": "Povlecite levo/desno za ogled stranske vrstice"
          	},
          	properties: {
          		"id": "ID elementa",
          		"fill_color": "Spremeni barvo polnila",
          		"stroke_color": "Spremeni barvo orisa",
          		"stroke_style": "Spremeni slog orisa",
          		"stroke_width": "Spreminjanje širino orisa",
          		"pos_x": "Spremeni X koordinato",
          		"pos_y": "Spremeni Y koordinato",
          		"linecap_butt": "Začetek črte: odsekan",
          		"linecap_round": "Začetek črte: zaobljen",
          		"linecap_square": "Začetek črte: kvadraten",
          		"linejoin_bevel": "Ovinek črte: Odsekan",
          		"linejoin_miter": "Linejoin: V kot",
          		"linejoin_round": "Linejoin: Zaobljen",
          		"angle": "Spremeni kot zasuka",
          		"blur": "Spremeni zameglitev roba",
          		"opacity": "Spremeni prosojnost",
          		"circle_cx": "Spremeni CX koordinato",
          		"circle_cy": "Spremeni CY koordinato",
          		"circle_r": "Spremeni polmer kroga",
          		"ellipse_cx": "Spremeni CX koordinato",
          		"ellipse_cy": "Spremeni CY koordinato",
          		"ellipse_rx": "Spremeni X polmer",
          		"ellipse_ry": "Spremeni Y polmer",
          		"line_x1": "Spremeni začetno X koordinato",
          		"line_x2": "Spremeni končno X koordinato",
          		"line_y1": "Spremeni začetno Y koordinato",
          		"line_y2": "Spremeni končno Y koordinato",
          		"rect_height": "Spremeni višino pravokotnika",
          		"rect_width": "Spremeni širino pravokotnika",
          		"corner_radius": "Spremeni Pravokotnik Corner Radius",
          		"image_width": "Spremeni širino slike",
          		"image_height": "Spremeni višino slike",
          		"image_url": "Spremeni URL",
          		"node_x": "Spremeni X koordinato oglišča",
          		"node_y": "Spremeni Y koordinato oglišča",
          		"seg_type": "Spremeni vrsto odseka",
          		"straight_segments": "Raven odsek",
          		"curve_segments": "Ukrivljen odsek",
          		"text_contents": "Spremeni besedilo",
          		"font_family": "Spremeni tip pisave",
          		"font_size": "Spremeni velikost pisave",
          		"bold": "Krepko",
          		"italic": "Poševno"
          	},
          	tools: {
          		"main_menu": "Glavni meni",
          		"bkgnd_color_opac": "Spremeni barvo / prosojnost",
          		"connector_no_arrow": "Brez puščice",
          		"fitToContent": "Prilagodi vsebini",
          		"fit_to_all": "Prilagodi vsemu",
          		"fit_to_canvas": "Prilagodi sliki",
          		"fit_to_layer_content": "Prilagodi sloju",
          		"fit_to_sel": "Prilagodi izboru",
          		"align_relative_to": "Poravnaj glede na ...",
          		"relativeTo": "glede na:",
          		"page": "page",
          		"largest_object": "največji objekt",
          		"selected_objects": "izbrani objekt",
          		"smallest_object": "najmanjši objekt",
          		"new_doc": "Nova slika",
          		"open_doc": "Odpri sliko",
          		"export_img": "Izvozi v PNG",
          		"save_doc": "Shrani sliko",
          		"import_doc": "Uvozi SVG",
          		"align_to_page": "Poravnaj na stran",
          		"align_bottom": "Poravnaj na dno",
          		"align_center": "Poravnaj na sredino",
          		"align_left": "Poravnaj levo",
          		"align_middle": "Poravnaj na sredino",
          		"align_right": "Poravnaj desno",
          		"align_top": "Poravnaj na vrh",
          		"mode_select": "Izberi",
          		"mode_fhpath": "Svinčnik",
          		"mode_line": "Crta",
          		"mode_connect": "Poveži dva objekta",
          		"mode_rect": "Pravokotnik",
          		"mode_square": "Kvadrat",
          		"mode_fhrect": "Prostoročni pravokotnik",
          		"mode_ellipse": "Elipsa",
          		"mode_circle": "Krog",
          		"mode_fhellipse": "Prostoročna elipsa",
          		"mode_path": "Pot",
          		"mode_shapelib": "Knjižnica oblik",
          		"mode_text": "Besedilo",
          		"mode_image": "Slika",
          		"mode_zoom": "Povečava",
          		"mode_eyedropper": "Ugotovi barvo",
          		"no_embed": "OPOMBA: Ta slika ne more biti vključena. It will depend on this path to be displayed",
          		"undo": "Razveljavi",
          		"redo": "Uveljavi",
          		"tool_source": "Uredi vir",
          		"wireframe_mode": "Wireframe način",
          		"toggle_grid": "Pokaži/skrij mrežo",
          		"clone": "Kloniraj element(e)",
          		"del": "Izbriši element(e)",
          		"group_elements": "Združi element(e)",
          		"make_link": "Vstavi (hiper)povezavo",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Pretvori v pot",
          		"reorient_path": "Reorient pot",
          		"ungroup": "Razdruži elemente",
          		"docprops": "Lastnosti dokumenta",
          		"imagelib": "Knjižnica slik",
          		"move_bottom": "Premakni na dno",
          		"move_top": "Premakni na vrh",
          		"node_clone": "Kloniraj oglišče",
          		"node_delete": "Izbriši oglišče",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Shrani",
          		"cut": "Izreži",
          		"copy": "Kopiraj",
          		"paste": "Prilepi",
          		"paste_in_place": "Prilepi na mesto",
          		"delete": "Izbriši",
          		"group": "Združi",
          		"move_front": "Postavi v ospredje",
          		"move_up": "Pomakni naporej",
          		"move_down": "Pomakni nazaj",
          		"move_back": "Postavi v ozadje"
          	},
          	layers: {
          		"layer":"Sloj",
          		"layers": "Sloji",
          		"del": "Izbriši sloj",
          		"move_down": "Premakni navzdol",
          		"new": "Nov sloj",
          		"rename": "Preimenuj sloj",
          		"move_up": "Premakni navzgor",
          		"dupe": "Podvoji sloj",
          		"merge_down": "Združi s spodnjimi",
          		"merge_all": "Združi vse",
          		"move_elems_to": "Premakni elemente v:",
          		"move_selected": "Premakne elemente v drug sloj"
          	},
          	config: {
          		"image_props": "Lastnosti slike",
          		"doc_title": "Naslov",
          		"doc_dims": "Dimenzije slike",
          		"included_images": "Vključene slike",
          		"image_opt_embed": "Vključene (local files)",
          		"image_opt_ref": "Povezane (Use file reference)",
          		"editor_prefs": "Lastnosti urejevalnika",
          		"icon_size": "Velikost ikon",
          		"language": "Jezik",
          		"background": "Ozadje urejevalnika",
          		"editor_img_url": "URL slike",
          		"editor_bg_note": "OPOMBA: Ozdaje ne bo shranjeno s sliko.",
          		"icon_large": "velike",
          		"icon_medium": "srednje",
          		"icon_small": "majhne",
          		"icon_xlarge": "zelo velike",
          		"select_predefined": "Izberi prednastavljeno:",
          		"units_and_rulers": "Enote & ravnilo",
          		"show_rulers": "Pokaži ravnilo",
          		"base_unit": "Osnovne enote",
          		"grid": "Mreža",
          		"snapping_onoff": "Pripni na mrežo DA/NE",
          		"snapping_stepsize": "Snapping Step-Size:"
          	},
          	shape_cats: {
          		"basic": "Osnovno",
          		"object": "Objekti",
          		"symbol": "Simboli",
          		"arrow": "Puščice",
          		"flowchart": "Tok",
          		"animal": "Živali",
          		"game": "Igralne karte in šah",
          		"dialog_balloon": "Pogovorni balončki",
          		"electronics": "Elektronika",
          		"math": "Matematika",
          		"music": "Glasba",
          		"misc": "Razno",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Izberi knjižnico slik",
          		"show_list": "Pokaži seznam",
          		"import_single": "Uvozi eno",
          		"import_multi": "Uvozi več",
          		"open": "Odpri kot nov dokument"
          	},
          	notification: {
          		"invalidAttrValGiven":"Napačna vrednost!",
          		"noContentToFitTo":"Ni vsebine za prilagajanje",
          		"dupeLayerName":"Sloj s tem imenom že obstajal!",
          		"enterUniqueLayerName":"Vnesite edinstveno ime sloja",
          		"enterNewLayerName":"Vnesite ime novega sloja",
          		"layerHasThatName":"Sloje že ima to ime",
          		"QmoveElemsToLayer":"Premaknem izbrane elemente v sloj '%s'?",
          		"QwantToClear":"Ali želite počistiti risbo?\nTo bo izbrisalo tudi zgodovino korakov (ni mogoče razveljaviti)!",
          		"QwantToOpen":"Ali želite odpreti novo datoteko?\nTo bo izbrisalo tudi zgodovino korakov (ni mogoče razveljaviti)!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignoriram spremembe, narejene v SVG kodi?",
          		"featNotSupported":"Ni podprto",
          		"enterNewImgURL":"Vnesite nov URL slike",
          		"defsFailOnSave": "OPOMBA: Zaradi napake vašega brskalnika obstaja možnost, da ta slika ni prikazan pravilno (manjkajo določeni elementi ali gradient). Vseeno bo prikaz pravilen, ko bo slika enkrat shranjena.",
          		"loadingImage":"Nalagam sliko, prosimo, počakajte ...",
          		"saveFromBrowser": "Izberite \"Shrani kot ...\" v brskalniku, če želite shraniti kot %s.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "Obstajajo neshranjene spremembe.",
          		"enterNewLinkURL": "Vnesite novo URL povezavo",
          		"errorLoadingSVG": "Napaka: Ne morem naložiti SVG podatkov",
          		"URLloadFail": "Ne morem naložiti z URL",
          		"retrieving": "Pridobivanje \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.sq.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "sq",
          	dir : "ltr",
          	common: {
          		"ok": "Ruaj",
          		"cancel": "Anulo",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Klikoni për të ndryshuar mbushur me ngjyra, shift-klikoni për të ndryshuar ngjyrën pash",
          		"zoom_level": "Ndryshimi zoom nivel",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Ndryshimi mbush color",
          		"stroke_color": "Change color pash",
          		"stroke_style": "Ndryshimi dash goditje stil",
          		"stroke_width": "Ndryshimi goditje width",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Kënd Ndryshimi rrotullim",
          		"blur": "Change gaussian blur value",
          		"opacity": "Ndryshimi zgjedhur errësirë item",
          		"circle_cx": "Cx rrethi Ndryshimi i bashkërenduar",
          		"circle_cy": "Ndryshimi i rrethit cy koordinuar",
          		"circle_r": "Rreze rreth Ndryshimi i",
          		"ellipse_cx": "Ndryshimi elips e cx koordinuar",
          		"ellipse_cy": "Elips cy Ndryshimi i bashkërenduar",
          		"ellipse_rx": "Rreze x elips Ndryshimi i",
          		"ellipse_ry": "Radiusi y elips ndërroj",
          		"line_x1": "Shkarko Ndryshimi që fillon x koordinuar",
          		"line_x2": "Linjë Ndryshimi i fund x koordinuar",
          		"line_y1": "Shkarko Ndryshimi që fillon y koordinuar",
          		"line_y2": "Shkarko Ndryshimi i dhënë fund y koordinuar",
          		"rect_height": "Height Ndryshimi drejtkëndësh",
          		"rect_width": "Width Ndryshimi drejtkëndësh",
          		"corner_radius": "Ndryshimi Rectangle Corner Radius",
          		"image_width": "Ndryshimi image width",
          		"image_height": "Height të ndryshuar imazhin",
          		"image_url": "Ndrysho URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Text contents Ndryshimi",
          		"font_family": "Ndryshimi Font Family",
          		"font_size": "Ndryshimi Font Size",
          		"bold": "Bold Text",
          		"italic": "Italic Text"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Change color background / patejdukshmëri",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Fit to Content",
          		"fit_to_all": "Fit për të gjithë përmbajtjen",
          		"fit_to_canvas": "Fit në kanavacë",
          		"fit_to_layer_content": "Shtresë Fit to content",
          		"fit_to_sel": "Fit to Selection",
          		"align_relative_to": "Vendose në lidhje me ...",
          		"relativeTo": "lidhje me:",
          		"faqe": "faqe",
          		"largest_object": "madh objekt",
          		"selected_objects": "objektet e zgjedhur",
          		"smallest_object": "objektit më të vogël",
          		"new_doc": "New Image",
          		"open_doc": "Image Hapur",
          		"export_img": "Export",
          		"save_doc": "Image Ruaj",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Align Bottom",
          		"align_center": "Align Center",
          		"align_left": "Align Left",
          		"align_middle": "Align Mesme",
          		"align_right": "Align Right",
          		"align_top": "Align Top",
          		"mode_select": "Zgjidhni Tool",
          		"mode_fhpath": "Pencil Tool",
          		"mode_line": "Line Tool",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Lëndë Hand Rectangle",
          		"mode_ellipse": "Elips",
          		"mode_circle": "Rrethi",
          		"mode_fhellipse": "Free-Hand Ellipse",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Text Tool",
          		"mode_image": "Image Tool",
          		"mode_zoom": "Zoom Tool",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Undo",
          		"redo": "Redo",
          		"tool_source": "Burimi Edit",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Elementet e Grupit",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Elemente Ungroup",
          		"docprops": "Dokumenti Prona",
          		"imagelib": "Image Library",
          		"move_bottom": "Move to Bottom",
          		"move_top": "Move to Top",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Ruaj",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Delete Layer",
          		"move_down": "Move Down Layer",
          		"new": "Re Shtresa",
          		"rename": "Rename Layer",
          		"move_up": "Move Up Layer",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Zgjidhni paracaktuara:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.sr.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "sr",
          	dir : "ltr",
          	common: {
          		"ok": "Сачувати",
          		"cancel": "Откажи",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Кликните да бисте променили боју попуне, Схифт-кликните да промените боју удар",
          		"zoom_level": "Промените ниво зумирања",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Промена боје попуне",
          		"stroke_color": "Промена боје удар",
          		"stroke_style": "Промена ход Дасх стил",
          		"stroke_width": "Промена удара ширина",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Промени ротације Угао",
          		"blur": "Change gaussian blur value",
          		"opacity": "Промена изабране ставке непрозирност",
          		"circle_cx": "Промена круг&#39;с ЦКС координатни",
          		"circle_cy": "Промена круг&#39;с ср координатни",
          		"circle_r": "Промена круга је полупречник",
          		"ellipse_cx": "Промена елипса ЦКС&#39;с координатни",
          		"ellipse_cy": "Промена елипса&#39;с ср координатни",
          		"ellipse_rx": "Промена елипса&#39;с Кс радијуса",
          		"ellipse_ry": "Промена елипса је радијус Ы",
          		"line_x1": "Промена линија Стартни кс координата",
          		"line_x2": "Промена линија је завршетак кс координата",
          		"line_y1": "Промена линија у координатни почетак Ы",
          		"line_y2": "Промена линија је Ы координата се завршава",
          		"rect_height": "Промени правоугаоник висина",
          		"rect_width": "Промени правоугаоник ширине",
          		"corner_radius": "Промена правоугаоник Кутак радијуса",
          		"image_width": "Промени слику ширине",
          		"image_height": "Промени слику висине",
          		"image_url": "Промените УРЛ адресу",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Промена садржаја текстуалне",
          		"font_family": "Цханге фонт породицу",
          		"font_size": "Цханге фонт сизе",
          		"bold": "Подебљан текст",
          		"italic": "Италиц текст"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Промена боје позадине / непрозирност",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Стане на садржај",
          		"fit_to_all": "Уклопи у сав садржај",
          		"fit_to_canvas": "Стане на платну",
          		"fit_to_layer_content": "Уклопи у слоју садржај",
          		"fit_to_sel": "Уклопи у избор",
          		"align_relative_to": "Алигн у односу на ...",
          		"relativeTo": "у односу на:",
          		"страна": "страна",
          		"largest_object": "Највећи објекат",
          		"selected_objects": "изабраних објеката",
          		"smallest_object": "Најмањи објекат",
          		"new_doc": "Нова слика",
          		"open_doc": "Отвори слике",
          		"export_img": "Export",
          		"save_doc": "Сачувај слика",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Поравнај доле",
          		"align_center": "Поравнај по центру",
          		"align_left": "Поравнај лево",
          		"align_middle": "Алигн Средњи",
          		"align_right": "Поравнај десно",
          		"align_top": "Поравнајте врх",
          		"mode_select": "Изаберите алатку",
          		"mode_fhpath": "Алатка оловка",
          		"mode_line": "Линија Алат",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Фрее-Ручни правоугаоник",
          		"mode_ellipse": "Елипса",
          		"mode_circle": "Круг",
          		"mode_fhellipse": "Фрее-Ручни Елипса",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Текст Алат",
          		"mode_image": "Алатка за слике",
          		"mode_zoom": "Алатка за зумирање",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Поништи",
          		"redo": "Редо",
          		"tool_source": "Уреди Извор",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Група Елементи",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Разгрупирање Елементи",
          		"docprops": "Особине документа",
          		"imagelib": "Image Library",
          		"move_bottom": "Премести на доле",
          		"move_top": "Премести на врх",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Сачувати",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Избриши слој",
          		"move_down": "Помери слој доле",
          		"new": "Нови слој",
          		"rename": "Преименуј слој",
          		"move_up": "Помери слој Горе",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Изаберите унапред дефинисани:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.sv.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "sv",
          	dir : "ltr",
          	common: {
          		"ok": "Spara",
          		"cancel": "Avbryt",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Klicka för att ändra fyllningsfärg, shift-klicka för att ändra färgar",
          		"zoom_level": "Ändra zoomnivå",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Ändra fyllningsfärg",
          		"stroke_color": "Ändra färgar",
          		"stroke_style": "Ändra stroke Dash stil",
          		"stroke_width": "Ändra stroke bredd",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Ändra rotationsvinkel",
          		"blur": "Change gaussian blur value",
          		"opacity": "Ändra markerat objekt opacitet",
          		"circle_cx": "Ändra cirkeln cx samordna",
          		"circle_cy": "Ändra cirkeln samordna cy",
          		"circle_r": "Ändra cirkelns radie",
          		"ellipse_cx": "Ändra ellips&#39;s cx samordna",
          		"ellipse_cy": "Ändra ellips&#39;s samordna cy",
          		"ellipse_rx": "Ändra ellips&#39;s x radie",
          		"ellipse_ry": "Ändra ellips&#39;s y radie",
          		"line_x1": "Ändra Lines startar x samordna",
          		"line_x2": "Ändra Lines slutar x samordna",
          		"line_y1": "Ändra Lines startar Y-koordinat",
          		"line_y2": "Ändra Lines slutar Y-koordinat",
          		"rect_height": "Ändra rektangel höjd",
          		"rect_width": "Ändra rektangel bredd",
          		"corner_radius": "Ändra rektangel hörnradie",
          		"image_width": "Ändra bild bredd",
          		"image_height": "Ändra bildhöjd",
          		"image_url": "Ändra URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Ändra textinnehållet",
          		"font_family": "Ändra Typsnitt",
          		"font_size": "Ändra textstorlek",
          		"bold": "Fet text",
          		"italic": "Kursiv text"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Ändra bakgrundsfärg / opacitet",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Fit to Content",
          		"fit_to_all": "Passar till allt innehåll",
          		"fit_to_canvas": "Anpassa till duk",
          		"fit_to_layer_content": "Anpassa till lager innehåll",
          		"fit_to_sel": "Anpassa till val",
          		"align_relative_to": "Justera förhållande till ...",
          		"relativeTo": "jämfört:",
          		"sida": "sida",
          		"largest_object": "största objekt",
          		"selected_objects": "valda objekt",
          		"smallest_object": "minsta objektet",
          		"new_doc": "New Image",
          		"open_doc": "Öppna bild",
          		"export_img": "Export",
          		"save_doc": "Save Image",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Align Bottom",
          		"align_center": "Centrera",
          		"align_left": "Vänsterjustera",
          		"align_middle": "Justera Middle",
          		"align_right": "Högerjustera",
          		"align_top": "Justera Top",
          		"mode_select": "Markeringsverktyget",
          		"mode_fhpath": "Pennverktyget",
          		"mode_line": "Linjeverktyg",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Fri hand rektangel",
          		"mode_ellipse": "Ellips",
          		"mode_circle": "Circle",
          		"mode_fhellipse": "Fri hand Ellipse",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Textverktyg",
          		"mode_image": "Bildverktyg",
          		"mode_zoom": "Zoomverktyget",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Ångra",
          		"redo": "Redo",
          		"tool_source": "Redigera källa",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Group Elements",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Dela Elements",
          		"docprops": "Dokumentegenskaper",
          		"imagelib": "Image Library",
          		"move_bottom": "Move to Bottom",
          		"move_top": "Flytta till början",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Spara",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Radera Layer",
          		"move_down": "Flytta Layer Down",
          		"new": "New Layer",
          		"rename": "Byt namn på Layer",
          		"move_up": "Flytta Layer Up",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Välj fördefinierad:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.sw.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "sw",
          	dir : "ltr",
          	common: {
          		"ok": "Okoa",
          		"cancel": "Cancel",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Click kubadili kujaza color, skiftarbete-click kubadili kiharusi color",
          		"zoom_level": "Change zoom ngazi",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Change kujaza Michezo",
          		"stroke_color": "Change kiharusi Michezo",
          		"stroke_style": "Change kiharusi dash style",
          		"stroke_width": "Change kiharusi width",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Change mzunguko vinkel",
          		"blur": "Change gaussian blur value",
          		"opacity": "Change selected opacity punkt",
          		"circle_cx": "Change mduara&#39;s CX kuratibu",
          		"circle_cy": "Change mduara&#39;s cy kuratibu",
          		"circle_r": "Change mduara&#39;s Radius",
          		"ellipse_cx": "Change ellipse s CX kuratibu",
          		"ellipse_cy": "Change ellipse s cy kuratibu",
          		"ellipse_rx": "Change ellipse s x Radius",
          		"ellipse_ry": "Change ellipse&#39;s y Radius",
          		"line_x1": "Change Mpya&#39;s mapya x kuratibu",
          		"line_x2": "Change Mpya&#39;s kuishia x kuratibu",
          		"line_y1": "Change Mpya&#39;s mapya y kuratibu",
          		"line_y2": "Change Mpya&#39;s kuishia y kuratibu",
          		"rect_height": "Change Mstatili height",
          		"rect_width": "Change Mstatili width",
          		"corner_radius": "Change Mstatili Corner Radius",
          		"image_width": "Change image width",
          		"image_height": "Change image urefu",
          		"image_url": "Change URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Change Nakala contents",
          		"font_family": "Change font Family",
          		"font_size": "Change font Size",
          		"bold": "Bold Nakala",
          		"italic": "Italiki Nakala"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Change background color / opacity",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Waliopo Content",
          		"fit_to_all": "Waliopo all content",
          		"fit_to_canvas": "Wanaofaa Canvas",
          		"fit_to_layer_content": "Waliopo safu content",
          		"fit_to_sel": "Waliopo uteuzi",
          		"align_relative_to": "Align jamaa na ...",
          		"relativeTo": "relativa att:",
          		"umebadilisha": "umebadilisha",
          		"largest_object": "ukubwa object",
          		"selected_objects": "waliochaguliwa vitu",
          		"smallest_object": "minsta object",
          		"new_doc": "New Image",
          		"open_doc": "Open SVG",
          		"export_img": "Export",
          		"save_doc": "Save Image",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Align Bottom",
          		"align_center": "Align Center",
          		"align_left": "Align Left",
          		"align_middle": "Kati align",
          		"align_right": "Align Right",
          		"align_top": "Align Juu",
          		"mode_select": "Select Tool",
          		"mode_fhpath": "Penseli Tool",
          		"mode_line": "Mpya Tool",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Free-Hand Rectangle",
          		"mode_ellipse": "Ellipse",
          		"mode_circle": "Circle",
          		"mode_fhellipse": "Free-Hand Ellipse",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Nakala Tool",
          		"mode_image": "Image Tool",
          		"mode_zoom": "Zoom Tool",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Tengua",
          		"redo": "Redo",
          		"tool_source": "Edit Lugha",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Kikundi Elements",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Ungroup Elements",
          		"docprops": "Document Properties",
          		"imagelib": "Image Library",
          		"move_bottom": "Kuhama Bottom",
          		"move_top": "Move to Top",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Save",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Delete Layer",
          		"move_down": "Move Layer Down",
          		"new": "Mpya Layer",
          		"rename": "Rename Layer",
          		"move_up": "Move Layer Up",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Select predefined:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.test.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "test",
          	dir : "ltr",
          	common: {
          		"ok": "OK",
          		"cancel": "Cancel",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Click to change fill color, shift-click to change stroke color",
          		"zoom_level": "Change zoom level",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Change fill color",
          		"stroke_color": "Change stroke color",
          		"stroke_style": "Change stroke dash style",
          		"stroke_width": "Change stroke width by 1, shift-click to change by 0.1",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Change rotation angle",
          		"blur": "Change gaussian blur value",
          		"opacity": "Change selected item opacity",
          		"circle_cx": "Change circle's cx coordinate",
          		"circle_cy": "Change circle's cy coordinate",
          		"circle_r": "Change circle's radius",
          		"ellipse_cx": "Change ellipse's cx coordinate",
          		"ellipse_cy": "Change ellipse's cy coordinate",
          		"ellipse_rx": "Change ellipse's x radius",
          		"ellipse_ry": "Change ellipse's y radius",
          		"line_x1": "Change line's starting x coordinate",
          		"line_x2": "Change line's ending x coordinate",
          		"line_y1": "Change line's starting y coordinate",
          		"line_y2": "Change line's ending y coordinate",
          		"rect_height": "Change rectangle height",
          		"rect_width": "Change rectangle width",
          		"corner_radius": "Change Rectangle Corner Radius",
          		"image_width": "Change image width",
          		"image_height": "Change image height",
          		"image_url": "Change URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Change text contents",
          		"font_family": "Change Font Family",
          		"font_size": "Change Font Size",
          		"bold": "Bold Text",
          		"italic": "Italic Text"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Change background color/opacity",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Fit to Content",
          		"fit_to_all": "Fit to all content",
          		"fit_to_canvas": "Fit to canvas",
          		"fit_to_layer_content": "Fit to layer content",
          		"fit_to_sel": "Fit to selection",
          		"align_relative_to": "Align relative to ...",
          		"relativeTo": "relative to:",
          		"page": "page",
          		"largest_object": "largest object",
          		"selected_objects": "selected objects",
          		"smallest_object": "smallest object",
          		"new_doc": "New Image",
          		"open_doc": "Open SVG",
          		"export_img": "Export",
          		"save_doc": "Save Image",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Align Bottom",
          		"align_center": "Align Center",
          		"align_left": "Align Left",
          		"align_middle": "Align Middle",
          		"align_right": "Align Right",
          		"align_top": "Align Top",
          		"mode_select": "Select Tool",
          		"mode_fhpath": "Pencil Tool",
          		"mode_line": "Line Tool",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Free-Hand Rectangle",
          		"mode_ellipse": "Ellipse",
          		"mode_circle": "Circle",
          		"mode_fhellipse": "Free-Hand Ellipse",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Text Tool",
          		"mode_image": "Image Tool",
          		"mode_zoom": "Zoom Tool",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Undo",
          		"redo": "Redo",
          		"tool_source": "Edit Source",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Group Elements",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Ungroup Elements",
          		"docprops": "Document Properties",
          		"imagelib": "Image Library",
          		"move_bottom": "Move to Bottom",
          		"move_top": "Move to Top",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Apply Changes",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Move Layer Up",
          		"move_down": "Move Layer Down",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Delete Layer",
          		"move_down": "Move Layer Down",
          		"new": "New Layer",
          		"rename": "Rename Layer",
          		"move_up": "Move Layer Up",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Select predefined:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer \"%s\"?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.th.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "th",
          	dir : "ltr",
          	common: {
          		"ok": "บันทึก",
          		"cancel": "ยกเลิก",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "คลิกเพื่อเปลี่ยนใส่สีกะคลิกเปลี่ยนสีจังหวะ",
          		"zoom_level": "เปลี่ยนระดับการซูม",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "เปลี่ยนใส่สี",
          		"stroke_color": "สีจังหวะเปลี่ยน",
          		"stroke_style": "รีบเปลี่ยนสไตล์จังหวะ",
          		"stroke_width": "ความกว้างจังหวะเปลี่ยน",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "มุมหมุนเปลี่ยน",
          		"blur": "Change gaussian blur value",
          		"opacity": "เปลี่ยนความทึบเลือกรายการ",
          		"circle_cx": "Cx วงกลมเปลี่ยนของพิกัด",
          		"circle_cy": "วงกลมเปลี่ยนเป็น cy ประสานงาน",
          		"circle_r": "รัศมีวงกลมเปลี่ยนเป็น",
          		"ellipse_cx": "เปลี่ยน ellipse ของ cx ประสานงาน",
          		"ellipse_cy": "Ellipse เปลี่ยนของ cy ประสานงาน",
          		"ellipse_rx": "Ellipse เปลี่ยนของรัศมี x",
          		"ellipse_ry": "Ellipse เปลี่ยนของรัศมี y",
          		"line_x1": "สายเปลี่ยนเป็นเริ่มต้น x พิกัด",
          		"line_x2": "สายเปลี่ยนเป็นสิ้นสุด x พิกัด",
          		"line_y1": "สายเปลี่ยนเป็นเริ่มต้น y พิกัด",
          		"line_y2": "สายเปลี่ยนเป็นสิ้นสุด y พิกัด",
          		"rect_height": "ความสูงสี่เหลี่ยมผืนผ้าเปลี่ยน",
          		"rect_width": "ความกว้างสี่เหลี่ยมผืนผ้าเปลี่ยน",
          		"corner_radius": "รัศมีเปลี่ยนสี่เหลี่ยมผืนผ้า Corner",
          		"image_width": "ความกว้างเปลี่ยนรูปภาพ",
          		"image_height": "ความสูงเปลี่ยนรูปภาพ",
          		"image_url": "URL เปลี่ยน",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "เปลี่ยนเนื้อหาข้อความ",
          		"font_family": "ครอบครัว Change Font",
          		"font_size": "เปลี่ยนขนาดตัวอักษร",
          		"bold": "ข้อความตัวหนา",
          		"italic": "ข้อความตัวเอียง"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "สีพื้นหลังเปลี่ยน / ความทึบ",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Fit to Content",
          		"fit_to_all": "พอดีกับเนื้อหาทั้งหมด",
          		"fit_to_canvas": "เหมาะสมในการผ้าใบ",
          		"fit_to_layer_content": "พอดีเนื้อหาชั้นที่",
          		"fit_to_sel": "เหมาะสมในการเลือก",
          		"align_relative_to": "จัดชิดเทียบกับ ...",
          		"relativeTo": "เทียบกับ:",
          		"หน้า": "หน้า",
          		"largest_object": "ที่ใหญ่ที่สุดในวัตถุ",
          		"selected_objects": "วัตถุเลือกตั้ง",
          		"smallest_object": "วัตถุที่เล็กที่สุด",
          		"new_doc": "รูปภาพใหม่",
          		"open_doc": "ภาพเปิด",
          		"export_img": "Export",
          		"save_doc": "บันทึกรูปภาพ",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "ด้านล่างชิด",
          		"align_center": "จัดแนวกึ่งกลาง",
          		"align_left": "จัดชิดซ้าย",
          		"align_middle": "กลางชิด",
          		"align_right": "จัดชิดขวา",
          		"align_top": "ด้านบนชิด",
          		"mode_select": "เครื่องมือเลือก",
          		"mode_fhpath": "เครื่องมือดินสอ",
          		"mode_line": "เครื่องมือ Line",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "สี่เหลี่ยมผืนผ้า Free-Hand",
          		"mode_ellipse": "Ellipse",
          		"mode_circle": "Circle",
          		"mode_fhellipse": "Ellipse Free-Hand",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "เครื่องมือ Text",
          		"mode_image": "เครื่องมือ Image",
          		"mode_zoom": "เครื่องมือซูม",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "เลิก",
          		"redo": "ทำซ้ำ",
          		"tool_source": "แหล่งที่มาแก้ไข",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "องค์ประกอบของกลุ่ม",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "องค์ประกอบ Ungroup",
          		"docprops": "คุณสมบัติของเอกสาร",
          		"imagelib": "Image Library",
          		"move_bottom": "ย้ายไปด้านล่าง",
          		"move_top": "ย้ายไปด้านบน",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "บันทึก",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Delete Layer",
          		"move_down": "ย้าย Layer ลง",
          		"new": "Layer ใหม่",
          		"rename": "Layer เปลี่ยนชื่อ",
          		"move_up": "ย้าย Layer Up",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "เลือกที่กำหนดไว้ล่วงหน้า:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.tl.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "tl",
          	dir : "ltr",
          	common: {
          		"ok": "I-save",
          		"cancel": "I-cancel",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "I-click upang baguhin ang punan ang kulay, paglilipat-click upang baguhin ang paghampas ng kulay",
          		"zoom_level": "Baguhin ang antas ng zoom",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Baguhin ang punuin ng kulay",
          		"stroke_color": "Baguhin ang kulay ng paghampas",
          		"stroke_style": "Baguhin ang stroke pagsugod estilo",
          		"stroke_width": "Baguhin ang stroke lapad",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Baguhin ang pag-ikot anggulo",
          		"blur": "Change gaussian blur value",
          		"opacity": "Palitan ang mga napiling bagay kalabuan",
          		"circle_cx": "Cx Baguhin ang bilog&#39;s coordinate",
          		"circle_cy": "Baguhin ang bilog&#39;s cy coordinate",
          		"circle_r": "Baguhin ang radius ng bilog",
          		"ellipse_cx": "Baguhin ang tambilugan&#39;s cx-ugma",
          		"ellipse_cy": "Baguhin ang tambilugan&#39;s cy coordinate",
          		"ellipse_rx": "X radius Baguhin ang tambilugan&#39;s",
          		"ellipse_ry": "Y radius Baguhin ang tambilugan&#39;s",
          		"line_x1": "Baguhin ang linya ng simula x coordinate",
          		"line_x2": "Baguhin ang linya ay nagtatapos x coordinate",
          		"line_y1": "Baguhin ang linya ng simula y coordinate",
          		"line_y2": "Baguhin ang linya ay nagtatapos y coordinate",
          		"rect_height": "Baguhin ang rektanggulo taas",
          		"rect_width": "Baguhin ang rektanggulo lapad",
          		"corner_radius": "Baguhin ang Parihaba Corner Radius",
          		"image_width": "Baguhin ang lapad ng imahe",
          		"image_height": "Baguhin ang taas ng imahe",
          		"image_url": "Baguhin ang URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Baguhin ang mga nilalaman ng teksto",
          		"font_family": "Baguhin ang Pamilya ng Font",
          		"font_size": "Baguhin ang Laki ng Font",
          		"bold": "Bold Text",
          		"italic": "Italic Text"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Baguhin ang kulay ng background / kalabuan",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Pagkasyahin sa Nilalaman",
          		"fit_to_all": "Pagkasyahin sa lahat ng mga nilalaman",
          		"fit_to_canvas": "Pagkasyahin sa tolda",
          		"fit_to_layer_content": "Pagkasyahin sa layer nilalaman",
          		"fit_to_sel": "Pagkasyahin sa pagpili",
          		"align_relative_to": "Pantayin sa kamag-anak sa ...",
          		"relativeTo": "kamag-anak sa:",
          		"pahina": "pahina",
          		"largest_object": "pinakamalaking bagay",
          		"selected_objects": "inihalal na mga bagay",
          		"smallest_object": "pinakamaliit na bagay",
          		"new_doc": "Bagong Imahe",
          		"open_doc": "Buksan ang Image",
          		"export_img": "Export",
          		"save_doc": "I-save ang Image",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Pantayin sa Ibaba",
          		"align_center": "Pantayin sa Gitna",
          		"align_left": "Pantayin ang Kaliwa",
          		"align_middle": "Pantayin sa Gitnang",
          		"align_right": "Pantayin sa Kanan",
          		"align_top": "Pantayin Top",
          		"mode_select": "Piliin ang Tool",
          		"mode_fhpath": "Kasangkapan ng lapis",
          		"mode_line": "Line Kasangkapan",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Libreng-kamay Parihaba",
          		"mode_ellipse": "Tambilugan",
          		"mode_circle": "Circle",
          		"mode_fhellipse": "Libreng-kamay tambilugan",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Text Kasangkapan",
          		"mode_image": "Image Kasangkapan",
          		"mode_zoom": "Mag-zoom Kasangkapan",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Bawiin",
          		"redo": "Gawin muli",
          		"tool_source": "I-edit ang Source",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Group Sangkap",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Ungroup Sangkap",
          		"docprops": "Document Katangian",
          		"imagelib": "Image Library",
          		"move_bottom": "Ilipat sa Ibaba",
          		"move_top": "Ilipat sa Tuktok",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "I-save",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Tanggalin Layer",
          		"move_down": "Ilipat Layer Down",
          		"new": "Bagong Layer",
          		"rename": "Palitan ang pangalan ng Layer",
          		"move_up": "Ilipat Layer Up",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Piliin ang paunang-natukoy na:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.tr.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "tr",
          	dir : "ltr",
          	common: {
          		"ok": "Kaydetmek",
          		"cancel": "Iptal",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Tıklatın renk, vardiya dolgu zamanlı rengini değiştirmek için tıklayın değiştirmek için",
          		"zoom_level": "Yakınlaştırma düzeyini değiştirebilirsiniz",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Renk değiştirmek doldurmak",
          		"stroke_color": "Değiştirmek inme renk",
          		"stroke_style": "Değiştirmek inme çizgi stili",
          		"stroke_width": "Değiştirmek vuruş genişliği",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Değiştirmek dönme açısı",
          		"blur": "Change gaussian blur value",
          		"opacity": "Değiştirmek öğe opacity seçilmiş",
          		"circle_cx": "Değiştirmek daire&#39;s cx koordine",
          		"circle_cy": "Değiştirmek daire cy koordine&#39;s",
          		"circle_r": "Değiştirmek daire yarıçapı",
          		"ellipse_cx": "&#39;s Koordine cx elips Girişi",
          		"ellipse_cy": "Değiştirmek elips cy koordine&#39;s",
          		"ellipse_rx": "Değiştirmek elips&#39;s x yarıçapı",
          		"ellipse_ry": "Değiştirmek elips Y yarıçapı",
          		"line_x1": "Değiştirmek hattı&#39;s koordine x başlangıç",
          		"line_x2": "Değiştirmek hattı&#39;s koordine x biten",
          		"line_y1": "Değiştirmek hattı y başlangıç&#39;s koordine",
          		"line_y2": "Değiştirmek hattı y biten&#39;s koordine",
          		"rect_height": "Değiştirmek dikdörtgen yüksekliği",
          		"rect_width": "Değiştirmek dikdörtgen genişliği",
          		"corner_radius": "Değiştirmek Dikdörtgen Köşe Yarıçap",
          		"image_width": "Değiştirmek görüntü genişliği",
          		"image_height": "Değiştirmek görüntü yüksekliği",
          		"image_url": "Değiştirmek URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Değiştirmek metin içeriği",
          		"font_family": "Font değiştir Aile",
          		"font_size": "Change font size",
          		"bold": "Kalın Yazı",
          		"italic": "Italik yazı"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Arka plan rengini değiştirmek / opacity",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Fit to Content",
          		"fit_to_all": "Fit tüm içerik için",
          		"fit_to_canvas": "Fit tuvaline",
          		"fit_to_layer_content": "Sığacak şekilde katman içerik",
          		"fit_to_sel": "Fit seçimine",
          		"align_relative_to": "Align göre ...",
          		"relativeTo": "göreli:",
          		"sayfa": "sayfa",
          		"largest_object": "en büyük nesne",
          		"selected_objects": "seçilen nesneleri",
          		"smallest_object": "küçük nesne",
          		"new_doc": "Yeni Resim",
          		"open_doc": "Aç Resim",
          		"export_img": "Export",
          		"save_doc": "Görüntüyü Kaydet",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Align Bottom",
          		"align_center": "Ortala",
          		"align_left": "Sola",
          		"align_middle": "Align Orta",
          		"align_right": "Sağa Hizala",
          		"align_top": "Align Top",
          		"mode_select": "Seçim aracı",
          		"mode_fhpath": "Kalem Aracı",
          		"mode_line": "Line Aracı",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Free-El Dikdörtgen",
          		"mode_ellipse": "Elips",
          		"mode_circle": "Daire",
          		"mode_fhellipse": "Free-El Elips",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Metin Aracı",
          		"mode_image": "Resim Aracı",
          		"mode_zoom": "Zoom Tool",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Geri",
          		"redo": "Redo",
          		"tool_source": "Değiştir Kaynak",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Grup Elemanları",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Çöz Elemanları",
          		"docprops": "Belge Özellikleri",
          		"imagelib": "Image Library",
          		"move_bottom": "Altına gider",
          		"move_top": "Üste taşı",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Kaydetmek",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Delete Layer",
          		"move_down": "Katman Aşağı Taşı",
          		"new": "Yeni Katman",
          		"rename": "Rename Katman",
          		"move_up": "Up Katman Taşı",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Seçin önceden tanımlanmış:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.uk.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "uk",
          	dir : "ltr",
          	common: {
          		"ok": "Зберегти",
          		"cancel": "Скасування",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Натисніть для зміни кольору заливки, Shift-Click змінити обвід",
          		"zoom_level": "Зміна масштабу",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Зміна кольору заливки",
          		"stroke_color": "Зміна кольору інсульт",
          		"stroke_style": "Зміна стилю інсульт тире",
          		"stroke_width": "Зміни ширина штриха",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Зміна кута повороту",
          		"blur": "Change gaussian blur value",
          		"opacity": "Зміна вибраного пункту непрозорості",
          		"circle_cx": "CX зміну кола координата",
          		"circle_cy": "Зміни гуртка CY координати",
          		"circle_r": "Зміна кола&#39;s радіус",
          		"ellipse_cx": "Зміни еліпса CX координати",
          		"ellipse_cy": "Зміни еліпса CY координати",
          		"ellipse_rx": "Х Зміни еліпса радіусом",
          		"ellipse_ry": "Зміни у еліпса радіусом",
          		"line_x1": "Зміни починає координати лінія х",
          		"line_x2": "Зміни за період, що закінчився лінія координати х",
          		"line_y1": "Зміни лінія починає Y координата",
          		"line_y2": "Зміна за період, що закінчився лінія Y координата",
          		"rect_height": "Зміни прямокутник висотою",
          		"rect_width": "Зміна ширини прямокутника",
          		"corner_radius": "Зміни прямокутник Corner Radius",
          		"image_width": "Зміни ширина зображення",
          		"image_height": "Зміна висоти зображення",
          		"image_url": "Змінити URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Зміна змісту тексту",
          		"font_family": "Зміни Сімейство шрифтів",
          		"font_size": "Змінити розмір шрифту",
          		"bold": "Товстий текст",
          		"italic": "Похилий текст"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Зміна кольору тла / непрозорість",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "За розміром змісту",
          		"fit_to_all": "За розміром весь вміст",
          		"fit_to_canvas": "Розмір полотна",
          		"fit_to_layer_content": "За розміром шар змісту",
          		"fit_to_sel": "Вибір розміру",
          		"align_relative_to": "Вирівняти по відношенню до ...",
          		"relativeTo": "в порівнянні з:",
          		"сторінка": "сторінка",
          		"largest_object": "найбільший об&#39;єкт",
          		"selected_objects": "обраними об&#39;єктами",
          		"smallest_object": "маленький об&#39;єкт",
          		"new_doc": "Нове зображення",
          		"open_doc": "Відкрити зображення",
          		"export_img": "Export",
          		"save_doc": "Зберегти малюнок",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Вирівняти по нижньому краю",
          		"align_center": "Вирівняти по центру",
          		"align_left": "По лівому краю",
          		"align_middle": "Вирівняти Близького",
          		"align_right": "По правому краю",
          		"align_top": "Вирівняти по верхньому краю",
          		"mode_select": "Виберіть інструмент",
          		"mode_fhpath": "Pencil Tool",
          		"mode_line": "Line Tool",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Вільної руки Прямокутник",
          		"mode_ellipse": "Еліпс",
          		"mode_circle": "Коло",
          		"mode_fhellipse": "Вільної руки Еліпс",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Текст Tool",
          		"mode_image": "Image Tool",
          		"mode_zoom": "Zoom Tool",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Скасувати",
          		"redo": "Повтор",
          		"tool_source": "Змінити вихідний",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Група елементів",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Елементи розгрупувати",
          		"docprops": "Властивості документа",
          		"imagelib": "Image Library",
          		"move_bottom": "Перемістити вниз",
          		"move_top": "Перемістити догори",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Зберегти",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Видалити шар",
          		"move_down": "Перемістити шар на",
          		"new": "Новий шар",
          		"rename": "Перейменувати Шар",
          		"move_up": "Переміщення шару до",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Виберіть зумовлений:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.vi.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "vi",
          	dir : "ltr",
          	common: {
          		"ok": "Lưu",
          		"cancel": "Hủy",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "Nhấn vào đây để thay đổi đầy màu sắc, thay đổi nhấp chuột để thay đổi màu sắc đột quỵ",
          		"zoom_level": "Thay đổi mức độ phóng",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "Thay đổi đầy màu sắc",
          		"stroke_color": "Thay đổi màu sắc đột quỵ",
          		"stroke_style": "Thay đổi phong cách đột quỵ dash",
          		"stroke_width": "Thay đổi chiều rộng đột quỵ",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "Thay đổi góc xoay",
          		"blur": "Change gaussian blur value",
          		"opacity": "Thay đổi lựa chọn opacity mục",
          		"circle_cx": "Thay đổi hình tròn của cx phối hợp",
          		"circle_cy": "Thay đổi hình tròn của vi phối hợp",
          		"circle_r": "Thay đổi bán kính của hình tròn",
          		"ellipse_cx": "Thay đổi hình elip của cx phối hợp",
          		"ellipse_cy": "Thay đổi hình elip của vi phối hợp",
          		"ellipse_rx": "Thay đổi hình elip của x bán kính",
          		"ellipse_ry": "Y Thay đổi bán kính của hình ellipse",
          		"line_x1": "Thay đổi dòng của bắt đầu từ x phối hợp",
          		"line_x2": "Thay đổi dòng của x kết thúc sớm nhất phối hợp",
          		"line_y1": "Thay đổi dòng của bắt đầu từ y phối hợp",
          		"line_y2": "Thay đổi dòng của kết thúc y phối hợp",
          		"rect_height": "Thay đổi hình chữ nhật chiều cao",
          		"rect_width": "Thay đổi hình chữ nhật chiều rộng",
          		"corner_radius": "Thay đổi chữ nhật Corner Radius",
          		"image_width": "Thay đổi hình ảnh rộng",
          		"image_height": "Thay đổi hình ảnh chiều cao",
          		"image_url": "Thay đổi URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "Thay đổi nội dung văn bản",
          		"font_family": "Thay đổi Font Gia đình",
          		"font_size": "Thay đổi cỡ chữ",
          		"bold": "Bold Text",
          		"italic": "Italic Text"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "Thay đổi màu nền / opacity",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "Phù hợp với nội dung",
          		"fit_to_all": "Phù hợp với tất cả nội dung",
          		"fit_to_canvas": "Phù hợp với vải",
          		"fit_to_layer_content": "Vào lớp phù hợp với nội dung",
          		"fit_to_sel": "Phù hợp để lựa chọn",
          		"align_relative_to": "Căn liên quan đến ...",
          		"relativeTo": "liên quan đến:",
          		"Sửa": "Sửa",
          		"largest_object": "lớn nhất đối tượng",
          		"selected_objects": "bầu các đối tượng",
          		"smallest_object": "nhỏ đối tượng",
          		"new_doc": "Hình mới",
          		"open_doc": "Mở Image",
          		"export_img": "Export",
          		"save_doc": "Save Image",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "Align Bottom",
          		"align_center": "Căn giữa",
          		"align_left": "Căn còn lại",
          		"align_middle": "Căn Trung",
          		"align_right": "Căn phải",
          		"align_top": "Căn Top",
          		"mode_select": "Chọn Công cụ",
          		"mode_fhpath": "Bút chì Công cụ",
          		"mode_line": "Line Tool",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Việt-Hand Hình chữ nhật",
          		"mode_ellipse": "Ellipse",
          		"mode_circle": "Circle",
          		"mode_fhellipse": "Việt-Hand Ellipse",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "Text Tool",
          		"mode_image": "Hình Công cụ",
          		"mode_zoom": "Zoom Tool",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "Hoàn tác",
          		"redo": "Làm lại",
          		"tool_source": "Sửa Nguồn",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "Nhóm Elements",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Ungroup Elements",
          		"docprops": "Document Properties",
          		"imagelib": "Image Library",
          		"move_bottom": "Chuyển đến đáy",
          		"move_top": "Move to Top",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "Lưu",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "Xoá Layer",
          		"move_down": "Move Layer Down",
          		"new": "New Layer",
          		"rename": "Đổi tên Layer",
          		"move_up": "Di chuyển Layer Up",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "Chọn định sẵn:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.yi.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "yi",
          	dir : "ltr",
          	common: {
          		"ok": "היט",
          		"cancel": "באָטל מאַכן",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "גיט צו ענדערן אָנעסן קאָליר, יבעררוק-גיט צו טוישן מאַך קאָליר",
          		"zoom_level": "ענדערן פארגרעסער הייך",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "ענדערן אָנעסן קאָליר",
          		"stroke_color": "טוישן מאַך קאָליר",
          		"stroke_style": "טוישן מאַך לאָך מאָדע",
          		"stroke_width": "טוישן מאַך ברייט",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "ענדערן ראָוטיישאַן ווינקל",
          		"blur": "Change gaussian blur value",
          		"opacity": "ענדערן סעלעקטעד נומער אָופּאַסאַטי",
          		"circle_cx": "ענדערן קרייז ס קקס קאָואָרדאַנאַט",
          		"circle_cy": "ענדערן קרייז ס סי קאָואָרדאַנאַט",
          		"circle_r": "ענדערן קרייז ס ראַדיוס",
          		"ellipse_cx": "ענדערן יליפּס ס קקס קאָואָרדאַנאַט",
          		"ellipse_cy": "ענדערן יליפּס ס סי קאָואָרדאַנאַט",
          		"ellipse_rx": "ענדערן יליפּס ס &#39;קס ראַדיוס",
          		"ellipse_ry": "ענדערן יליפּס ס &#39;י ראַדיוס",
          		"line_x1": "טוישן ליניע ס &#39;סטאַרטינג קס קאָואָרדאַנאַט",
          		"line_x2": "טוישן ליניע ס &#39;סאָף קס קאָואָרדאַנאַט",
          		"line_y1": "טוישן ליניע ס &#39;סטאַרטינג י קאָואָרדאַנאַט",
          		"line_y2": "טוישן ליניע ס &#39;סאָף י קאָואָרדאַנאַט",
          		"rect_height": "ענדערן גראָדעק הייך",
          		"rect_width": "ענדערן גראָדעק ברייט",
          		"corner_radius": "ענדערן רעקטאַנגלע קאָרנער ראַדיוס",
          		"image_width": "טוישן בילד ברייט",
          		"image_height": "טוישן בילד הייך",
          		"image_url": "ענדערן URL",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "ענדערן טעקסט אינהאַלט",
          		"font_family": "ענדערן פאָנט פאַמילי",
          		"font_size": "בייטן פאָנט גרייס",
          		"bold": "דרייסט טעקסט",
          		"italic": "יטאַליק טעקסט"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "ענדערן הינטערגרונט פאַרב / אָופּאַסאַטי",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "פּאַסיק צו אינהאַלט",
          		"fit_to_all": "פּאַסיק צו אַלע אינהאַלט",
          		"fit_to_canvas": "פּאַסיק צו לייוונט",
          		"fit_to_layer_content": "פּאַסיק צו שיכטע אינהאַלט",
          		"fit_to_sel": "פּאַסיק צו אָפּקלייב",
          		"align_relative_to": "יינרייען קאָרעוו צו ...",
          		"relativeTo": "קאָרעוו צו:",
          		"בלאַט": "בלאַט",
          		"largest_object": "לאַרדזשאַסט קעגן",
          		"selected_objects": "עלעקטעד אַבדזשעקץ",
          		"smallest_object": "סמאָלאַסט קעגן",
          		"new_doc": "ניו בילד",
          		"open_doc": "Open בילד",
          		"export_img": "Export",
          		"save_doc": "היט בילד",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "יינרייען באָטטאָם",
          		"align_center": "יינרייען צענטער",
          		"align_left": "יינרייען לעפט",
          		"align_middle": "יינרייען מיטל",
          		"align_right": "יינרייען רעכט",
          		"align_top": "יינרייען Top",
          		"mode_select": "סעלעקטירן טול",
          		"mode_fhpath": "בלייער טול",
          		"mode_line": "שורה טול",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "Free-הענט רעקטאַנגלע",
          		"mode_ellipse": "עלליפּסע",
          		"mode_circle": "קאַראַהאָד",
          		"mode_fhellipse": "Free-הענט עלליפּסע",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "טעקסט טול",
          		"mode_image": "בילד טול",
          		"mode_zoom": "פארגרעסער טול",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "ופמאַכן",
          		"redo": "רעדאָ",
          		"tool_source": "רעדאַקטירן סאָרס",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "גרופּע עלעמענץ",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "ונגראָופּ עלעמענץ",
          		"docprops": "דאָקומענט פּראָפּערטיעס",
          		"imagelib": "Image Library",
          		"move_bottom": "מאַך צו באָטטאָם",
          		"move_top": "באַוועגן צו Top",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "היט",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "ויסמעקן לייַער",
          		"move_down": "קער לייַער דאָוון",
          		"new": "ניו לייַער",
          		"rename": "רענאַמע לייַער",
          		"move_up": "באַוועגן לייַער אַרויף",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "סעלעקטירן פּרעדעפינעד:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.zh-CN.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "zh-CN",
          	dir : "ltr",
          	common: {
          		"ok": "保存",
          		"cancel": "取消",
          		"key_backspace": "退格", 
          		"key_del": "删除", 
          		"key_down": "下", 
          		"key_up": "上", 
          		"more_opts": "更多选项",
          		"url": "URL",
          		"width": "宽度",
          		"height": "高度"
          	},
          	misc: {
          		"powered_by": "版权所有"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "显示/隐藏更式边线工具",
          		"palette_info": "点击更改填充颜色,按住Shift键单击更改线条颜色",
          		"zoom_level": "更改缩放级别",
          		"panel_drag": "左右拖拽调整面板大小"
          	},
          	properties: {
          		"id": "元素ID",
          		"fill_color": "更改填充颜色",
          		"stroke_color": "线条的颜色变化",
          		"stroke_style": "更改线条样式",
          		"stroke_width": "更改线条宽度",
          		"pos_x": "更改X坐标",
          		"pos_y": "更改Y坐标",
          		"linecap_butt": "顶端样式: 齐平",
          		"linecap_round": "顶端样式: 圆滑",
          		"linecap_square": "顶端样式: 方块",
          		"linejoin_bevel": "连接处: 削平",
          		"linejoin_miter": "连接处: 直角",
          		"linejoin_round": "连接处: 圆角",
          		"angle": "更改旋转角度",
          		"blur": "更改高斯模糊值",
          		"opacity": "更改所选条目的不透明度",
          		"circle_cx": "改变圆的中心X坐标",
          		"circle_cy": "改变圆的中心Y坐标",
          		"circle_r": "改变圆的半径",
          		"ellipse_cx": "改变椭圆的中心X坐标",
          		"ellipse_cy": "改变椭圆的中心Y坐标",
          		"ellipse_rx": "改变椭圆的x半径",
          		"ellipse_ry": "改变椭圆的y半径",
          		"line_x1": "更改直线起点的x坐标",
          		"line_x2": "更改直线终点的x坐标",
          		"line_y1": "更改直线起点的y坐标",
          		"line_y2": "更改直线终点的y坐标",
          		"rect_height": "更改矩形的高度",
          		"rect_width": "更改矩形的宽度",
          		"corner_radius": "角半径:",
          		"image_width": "更改图像的宽度",
          		"image_height": "更改图像的高度",
          		"image_url": "更改网址",
          		"node_x": "更改节点的X坐标",
          		"node_y": "更改节点的Y坐标",
          		"seg_type": "修改线段类型",
          		"straight_segments": "直线",
          		"curve_segments": "曲线",
          		"text_contents": "更改文本内容",
          		"font_family": "更改字体样式",
          		"font_size": "更改字体大小",
          		"bold": "粗体",
          		"italic": "斜体"
          	},
          	tools: { 
          		"main_menu": "主菜单",
          		"bkgnd_color_opac": "更改背景颜色/不透明",
          		"connector_no_arrow": "无箭头",
          		"fitToContent": "适应内容",
          		"fit_to_all": "适应于所有的内容",
          		"fit_to_canvas": "适应画布",
          		"fit_to_layer_content": "适应层内容",
          		"fit_to_sel": "适应选中内容",
          		"align_relative_to": "相对对齐 ...",
          		"relativeTo": "相对于:",
          		"网页": "网页",
          		"largest_object": "最大对象",
          		"selected_objects": "选中的对象",
          		"smallest_object": "最小的对象",
          		"new_doc": "新文档",
          		"open_doc": "打开文档",
          		"export_img": "导出",
          		"save_doc": "保存图像",
          		"import_doc": "导入SVG",
          		"align_to_page": "对齐元素到页面",
          		"align_bottom": "底部对齐",
          		"align_center": "居中对齐",
          		"align_left": "左对齐",
          		"align_middle": "水平居中对齐",
          		"align_right": "右对齐",
          		"align_top": "顶端对齐",
          		"mode_select": "选择工具",
          		"mode_fhpath": "铅笔工具",
          		"mode_line": "线工具",
          		"mode_connect": "连接两个对象",
          		"mode_rect": "矩形",
          		"mode_square": "正方形",
          		"mode_fhrect": "自由矩形",
          		"mode_ellipse": "椭圆",
          		"mode_circle": "圆形",
          		"mode_fhellipse": "自由椭圆",
          		"mode_path": "路径",
          		"mode_shapelib": "图形库",
          		"mode_text": "文字工具",
          		"mode_image": "图像工具",
          		"mode_zoom": "缩放工具",
          		"mode_eyedropper": "吸管",
          		"no_embed": "注意: 根据SVG图像的存储位置,内嵌的位图可能无法显示!",
          		"undo": "撤消",
          		"redo": "重做",
          		"tool_source": "编辑源",
          		"wireframe_mode": "线条模式",
          		"toggle_grid": "显示/隐藏 网格",
          		"clone": "克隆元素",
          		"del": "删除元素",
          		"group_elements": "组合元素",
          		"make_link": "创建超链接",
          		"set_link_url": "设置链接URL (设置为空以删除)",
          		"to_path": "转换为路径",
          		"reorient_path": "调整路径",
          		"ungroup": "取消组合元素",
          		"docprops": "文档属性",
          		"imagelib": "图像库",
          		"move_bottom": "移至底部",
          		"move_top": "移至顶部",
          		"node_clone": "复制节点",
          		"node_delete": "删除节点",
          		"node_link": "连接控制点",
          		"add_subpath": "添加子路径",
          		"openclose_path": "打开/关闭 子路径",
          		"source_save": "保存",
          		"cut": "剪切",
          		"copy": "复制",
          		"paste": "粘贴",
          		"paste_in_place": "粘贴到原位置",
          		"delete": "删除",
          		"group": "组合",
          		"move_front": "移至顶部",
          		"move_up": "向上移动",
          		"move_down": "向下移动",
          		"move_back": "移至底部"
          	},
          	layers: {
          		"layer":"图层",
          		"layers": "图层",
          		"del": "删除图层",
          		"move_down": "向下移动图层",
          		"new": "新建图层",
          		"rename": "重命名图层",
          		"move_up": "向上移动图层",
          		"dupe": "复制图层",
          		"merge_down": "向下合并",
          		"merge_all": "全部合并",
          		"move_elems_to": "移动元素至:",
          		"move_selected": "移动元素至另一个图层"
          	},
          	config: {
          		"image_props": "图像属性",
          		"doc_title": "标题",
          		"doc_dims": "画布大小",
          		"included_images": "包含图像",
          		"image_opt_embed": "嵌入数据 (本地文件)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "编辑器首选项",
          		"icon_size": "图标大小",
          		"language": "语言",
          		"background": "编辑器背景",
          		"editor_img_url": "图像 URL",
          		"editor_bg_note": "注意: 背景不会保存在图像中.",
          		"icon_large": "大",
          		"icon_medium": "中",
          		"icon_small": "小",
          		"icon_xlarge": "特大",
          		"select_predefined": "选择预定义:",
          		"units_and_rulers": "单位 & 标尺",
          		"show_rulers": "显示标尺",
          		"base_unit": "基本单位:",
          		"grid": "网格",
          		"snapping_onoff": "吸附开/关",
          		"snapping_stepsize": "吸附步长:",
          		"grid_color": "网格颜色"
          	},
          	shape_cats: {
          		"basic": "常规",
          		"object": "对象",
          		"symbol": "符号",
          		"arrow": "箭头",
          		"flowchart": "流程图",
          		"animal": "动物",
          		"game": "纸牌 & 棋子",
          		"dialog_balloon": "信息气球",
          		"electronics": "电力元件",
          		"math": "数学符号",
          		"music": "音乐符号",
          		"misc": "杂项",
          		"raphael_1": "常用图标1",
          		"raphael_2": "常用图标2"
          	},
          	imagelib: {
          		"select_lib": "选择一个图像库",
          		"show_list": "显示库列表",
          		"import_single": "单个导入",
          		"import_multi": "批量导入",
          		"open": "打开一个新文档"
          	},
          	notification: {
          		"invalidAttrValGiven":"无效的参数",
          		"noContentToFitTo":"无可适应的内容",
          		"dupeLayerName":"已存在同名的图层!",
          		"enterUniqueLayerName":"请输入一个唯一的图层名称",
          		"enterNewLayerName":"请输入新的图层名称",
          		"layerHasThatName":"图层已经采用了该名称",
          		"QmoveElemsToLayer":"您确定移动所选元素到图层'%s'吗?",
          		"QwantToClear":"您希望清除当前绘制的所有图形吗?\n该操作将无法撤消!",
          		"QwantToOpen":"您希望打开一个新文档吗?\n该操作将无法撤消!",
          		"QerrorsRevertToSource":"SVG文件解析错误.\n是否还原到最初的SVG文件?",
          		"QignoreSourceChanges":"忽略对SVG文件所作的更改么?",
          		"featNotSupported":"不支持该功能",
          		"enterNewImgURL":"请输入新图像的URLL",
          		"defsFailOnSave": "注意: 由于您所使用的浏览器存在缺陷, 该图像无法正确显示 (不支持渐变或相关元素). 修复该缺陷后可正确显示.",
          		"loadingImage":"正在加载图像, 请稍候...",
          		"saveFromBrowser": "选择浏览器中的 \"另存为...\" 将该图像保存为 %s 文件.",
          		"noteTheseIssues": "同时注意以下几点: ",
          		"unsavedChanges": "存在未保存的修改.",
          		"enterNewLinkURL": "输入新建链接的URL地址",
          		"errorLoadingSVG": "错误: 无法加载SVG数据",
          		"URLloadFail": "无法从URL中加载",
          		"retrieving": "检索 \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
          
        • lang.zh-HK.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "zh-HK",
          	dir : "ltr",
          	common: {
          		"ok": "保存",
          		"cancel": "取消",
          		"key_backspace": "backspace", 
          		"key_del": "delete", 
          		"key_down": "down", 
          		"key_up": "up", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "点击更改填充颜色,按住Shift键单击更改颜色中风",
          		"zoom_level": "更改缩放级别",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "更改填充颜色",
          		"stroke_color": "中风的颜色变化",
          		"stroke_style": "更改行程冲刺风格",
          		"stroke_width": "笔划宽度的变化",
          		"pos_x": "Change X coordinate",
          		"pos_y": "Change Y coordinate",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "旋转角度的变化",
          		"blur": "Change gaussian blur value",
          		"opacity": "更改所选项目不透明",
          		"circle_cx": "改变循环的CX坐标",
          		"circle_cy": "改变循环的赛扬坐标",
          		"circle_r": "改变圆的半径",
          		"ellipse_cx": "改变椭圆的CX坐标",
          		"ellipse_cy": "改变椭圆的赛扬坐标",
          		"ellipse_rx": "改变椭圆的x半径",
          		"ellipse_ry": "改变椭圆的y半径",
          		"line_x1": "更改行的起点的x坐标",
          		"line_x2": "更改行的结束x坐标",
          		"line_y1": "更改行的起点的y坐标",
          		"line_y2": "更改行的结束y坐标",
          		"rect_height": "更改矩形的高度",
          		"rect_width": "更改矩形的宽度",
          		"corner_radius": "角半径:",
          		"image_width": "更改图像的宽度",
          		"image_height": "更改图像高度",
          		"image_url": "更改网址",
          		"node_x": "Change node's x coordinate",
          		"node_y": "Change node's y coordinate",
          		"seg_type": "Change Segment type",
          		"straight_segments": "Straight",
          		"curve_segments": "Curve",
          		"text_contents": "更改文字内容",
          		"font_family": "更改字体家族",
          		"font_size": "更改字体大小",
          		"bold": "粗体",
          		"italic": "斜体文本"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "更改背景颜色/不透明",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "适合内容",
          		"fit_to_all": "适合于所有的内容",
          		"fit_to_canvas": "适合画布",
          		"fit_to_layer_content": "适合层内容",
          		"fit_to_sel": "适合选择",
          		"align_relative_to": "相对对齐 ...",
          		"relativeTo": "相对于:",
          		"网页": "网页",
          		"largest_object": "最大对象",
          		"selected_objects": "选对象",
          		"smallest_object": "最小的对象",
          		"new_doc": "新形象",
          		"open_doc": "打开图像",
          		"export_img": "Export",
          		"save_doc": "保存图像",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "底部对齐",
          		"align_center": "居中对齐",
          		"align_left": "左对齐",
          		"align_middle": "中间对齐",
          		"align_right": "右对齐",
          		"align_top": "顶端对齐",
          		"mode_select": "选择工具",
          		"mode_fhpath": "铅笔工具",
          		"mode_line": "线工具",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "免费手矩形",
          		"mode_ellipse": "椭圆",
          		"mode_circle": "圈",
          		"mode_fhellipse": "免费手椭圆",
          		"mode_path": "Path Tool",
          		"mode_shapelib": "Shape library",
          		"mode_text": "文字工具",
          		"mode_image": "图像工具",
          		"mode_zoom": "缩放工具",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "撤消",
          		"redo": "重做",
          		"tool_source": "编辑源",
          		"wireframe_mode": "Wireframe Mode",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "族元素",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "Convert to Path",
          		"reorient_path": "Reorient path",
          		"ungroup": "Ungroup Elements",
          		"docprops": "文档属性",
          		"imagelib": "Image Library",
          		"move_bottom": "移至底部",
          		"move_top": "移动到顶部",
          		"node_clone": "Clone Node",
          		"node_delete": "Delete Node",
          		"node_link": "Link Control Points",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "保存",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"delete": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"Layer",
          		"layers": "Layers",
          		"del": "删除层",
          		"move_down": "层向下移动",
          		"new": "新层",
          		"rename": "重命名层",
          		"move_up": "移动层最多",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "Move elements to:",
          		"move_selected": "Move selected elements to a different layer"
          	},
          	config: {
          		"image_props": "Image Properties",
          		"doc_title": "Title",
          		"doc_dims": "Canvas Dimensions",
          		"included_images": "Included Images",
          		"image_opt_embed": "Embed data (local files)",
          		"image_opt_ref": "Use file reference",
          		"editor_prefs": "Editor Preferences",
          		"icon_size": "Icon size",
          		"language": "Language",
          		"background": "Editor Background",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "Note: Background will not be saved with image.",
          		"icon_large": "Large",
          		"icon_medium": "Medium",
          		"icon_small": "Small",
          		"icon_xlarge": "Extra Large",
          		"select_predefined": "选择预定义:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"Invalid value given",
          		"noContentToFitTo":"No content to fit to",
          		"dupeLayerName":"There is already a layer named that!",
          		"enterUniqueLayerName":"Please enter a unique layer name",
          		"enterNewLayerName":"Please enter the new layer name",
          		"layerHasThatName":"Layer already has that name",
          		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
          		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
          		"QignoreSourceChanges":"Ignore changes made to SVG source?",
          		"featNotSupported":"Feature not supported",
          		"enterNewImgURL":"Enter the new image URL",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • lang.zh-TW.js
          /*globals svgEditor */
          svgEditor.readLang({
          	lang: "zh-TW",
          	dir : "ltr",
          	common: {
          		"ok": "保存",
          		"cancel": "取消",
          		"key_backspace": "空白", 
          		"key_del": "刪除", 
          		"key_down": "下", 
          		"key_up": "上", 
          		"more_opts": "More Options",
          		"url": "URL",
          		"width": "Width",
          		"height": "Height"
          	},
          	misc: {
          		"powered_by": "Powered by"
          	}, 
          	ui: {
          		"toggle_stroke_tools": "Show/hide more stroke tools",
          		"palette_info": "點擊更改填充顏色,按住Shift鍵單擊更改線條顏色",
          		"zoom_level": "更改縮放級別",
          		"panel_drag": "Drag left/right to resize side panel"
          	},
          	properties: {
          		"id": "Identify the element",
          		"fill_color": "更改填充顏色",
          		"stroke_color": "線條顏色",
          		"stroke_style": "更改線條(虛線)風格",
          		"stroke_width": "線條寬度",
          		"pos_x": "調整 X 軸",
          		"pos_y": "調整 Y 軸",
          		"linecap_butt": "Linecap: Butt",
          		"linecap_round": "Linecap: Round",
          		"linecap_square": "Linecap: Square",
          		"linejoin_bevel": "Linejoin: Bevel",
          		"linejoin_miter": "Linejoin: Miter",
          		"linejoin_round": "Linejoin: Round",
          		"angle": "旋轉角度",
          		"blur": "Change gaussian blur value",
          		"opacity": "更改所選項目不透明度",
          		"circle_cx": "改變圓的CX坐標",
          		"circle_cy": "改變圓的CY坐標",
          		"circle_r": "改變圓的半徑",
          		"ellipse_cx": "改變橢圓的圓心x軸座標",
          		"ellipse_cy": "改變橢圓的圓心y軸座標",
          		"ellipse_rx": "改變橢圓的x軸長",
          		"ellipse_ry": "改變橢圓的y軸長",
          		"line_x1": "更改行的起點的x坐標",
          		"line_x2": "更改行的終點x坐標",
          		"line_y1": "更改行的起點的y坐標",
          		"line_y2": "更改行的終點y坐標",
          		"rect_height": "更改矩形的高度",
          		"rect_width": "更改矩形的寬度",
          		"corner_radius": "角半徑:",
          		"image_width": "更改圖像的寬度",
          		"image_height": "更改圖像高度",
          		"image_url": "更改網址",
          		"node_x": "改變節點的x軸座標",
          		"node_y": "改變節點的y軸座標",
          		"seg_type": "Change Segment type",
          		"straight_segments": "直線",
          		"curve_segments": "曲線",
          		"text_contents": "更改文字內容",
          		"font_family": "更改字體",
          		"font_size": "更改字體大小",
          		"bold": "粗體",
          		"italic": "斜體"
          	},
          	tools: { 
          		"main_menu": "Main Menu",
          		"bkgnd_color_opac": "更改背景顏色/不透明",
          		"connector_no_arrow": "No arrow",
          		"fitToContent": "適合內容",
          		"fit_to_all": "適合所有的內容",
          		"fit_to_canvas": "適合畫布",
          		"fit_to_layer_content": "適合圖層內容",
          		"fit_to_sel": "適合選取的物件",
          		"align_relative_to": "相對對齊 ...",
          		"relativeTo": "相對於:",
          		"網頁": "網頁",
          		"largest_object": "最大的物件",
          		"selected_objects": "選取物件",
          		"smallest_object": "最小的物件",
          		"new_doc": "清空圖像",
          		"open_doc": "打開圖像",
          		"export_img": "Export",
          		"save_doc": "保存圖像",
          		"import_doc": "Import Image",
          		"align_to_page": "Align Element to Page",
          		"align_bottom": "底部對齊",
          		"align_center": "居中對齊",
          		"align_left": "向左對齊",
          		"align_middle": "中間對齊",
          		"align_right": "向右對齊",
          		"align_top": "頂端對齊",
          		"mode_select": "選擇工具",
          		"mode_fhpath": "鉛筆工具",
          		"mode_line": "線工具",
          		"mode_connect": "Connect two objects",
          		"mode_rect": "Rectangle Tool",
          		"mode_square": "Square Tool",
          		"mode_fhrect": "徒手畫矩形",
          		"mode_ellipse": "橢圓",
          		"mode_circle": "圓",
          		"mode_fhellipse": "徒手畫橢圓",
          		"mode_path": "路徑工具",
          		"mode_shapelib": "Shape library",
          		"mode_text": "文字工具",
          		"mode_image": "圖像工具",
          		"mode_zoom": "縮放工具",
          		"mode_eyedropper": "Eye Dropper Tool",
          		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
          		"undo": "取消復原",
          		"redo": "復原",
          		"tool_source": "編輯SVG原始碼",
          		"wireframe_mode": "框線模式(只瀏覽線條)",
          		"toggle_grid": "Show/Hide Grid",
          		"clone": "Clone Element(s)",
          		"del": "Delete Element(s)",
          		"group_elements": "群組",
          		"make_link": "Make (hyper)link",
          		"set_link_url": "Set link URL (leave empty to remove)",
          		"to_path": "轉換成路徑",
          		"reorient_path": "調整路徑",
          		"ungroup": "取消群組",
          		"docprops": "文件屬性",
          		"imagelib": "Image Library",
          		"move_bottom": "移至底部",
          		"move_top": "移動到頂部",
          		"node_clone": "增加節點",
          		"node_delete": "刪除節點",
          		"node_link": "將控制點連起來",
          		"add_subpath": "Add sub-path",
          		"openclose_path": "Open/close sub-path",
          		"source_save": "保存",
          		"cut": "Cut",
          		"copy": "Copy",
          		"paste": "Paste",
          		"paste_in_place": "Paste in Place",
          		"刪除": "Delete",
          		"group": "Group",
          		"move_front": "Bring to Front",
          		"move_up": "Bring Forward",
          		"move_down": "Send Backward",
          		"move_back": "Send to Back"
          	},
          	layers: {
          		"layer":"圖層",
          		"layers": "Layers",
          		"del": "刪除圖層",
          		"move_down": "向下移動圖層",
          		"new": "新增圖層",
          		"rename": "重新命名圖層",
          		"move_up": "向上移動圖層",
          		"dupe": "Duplicate Layer",
          		"merge_down": "Merge Down",
          		"merge_all": "Merge All",
          		"move_elems_to": "移動物件到:",
          		"move_selected": "移動被點選的物件其他圖層"
          	},
          	config: {
          		"image_props": "圖片屬性",
          		"doc_title": "標題",
          		"doc_dims": "畫布大小",
          		"included_images": "包含圖像",
          		"image_opt_embed": "內嵌資料 (本地端檔案)",
          		"image_opt_ref": "使用檔案參照",
          		"editor_prefs": "編輯器屬性",
          		"icon_size": "圖示大小",
          		"language": "語言",
          		"background": "編輯器背景",
          		"editor_img_url": "Image URL",
          		"editor_bg_note": "注意: 編輯器背景不會和圖像一起儲存",
          		"icon_large": "大",
          		"icon_medium": "中",
          		"icon_small": "小",
          		"icon_xlarge": "特大",
          		"select_predefined": "使用預設值:",
          		"units_and_rulers": "Units & Rulers",
          		"show_rulers": "Show rulers",
          		"base_unit": "Base Unit:",
          		"grid": "Grid",
          		"snapping_onoff": "Snapping on/off",
          		"snapping_stepsize": "Snapping Step-Size:",
          		"grid_color": "Grid color"
          	},
          	shape_cats: {
          		"basic": "Basic",
          		"object": "Objects",
          		"symbol": "Symbols",
          		"arrow": "Arrows",
          		"flowchart": "Flowchart",
          		"animal": "Animals",
          		"game": "Cards & Chess",
          		"dialog_balloon": "Dialog balloons",
          		"electronics": "Electronics",
          		"math": "Mathematical",
          		"music": "Music",
          		"misc": "Miscellaneous",
          		"raphael_1": "raphaeljs.com set 1",
          		"raphael_2": "raphaeljs.com set 2"
          	},
          	imagelib: {
          		"select_lib": "Select an image library",
          		"show_list": "Show library list",
          		"import_single": "Import single",
          		"import_multi": "Import multiple",
          		"open": "Open as new document"
          	},
          	notification: {
          		"invalidAttrValGiven":"數值給定錯誤",
          		"noContentToFitTo":"找不到符合的內容",
          		"dupeLayerName":"喔不!已經有另一個同樣名稱的圖層了!",
          		"enterUniqueLayerName":"請輸入一個名稱不重複的",
          		"enterNewLayerName":"請輸入新圖層的名稱",
          		"layerHasThatName":"圖層本來就是這個名稱(抱怨)",
          		"QmoveElemsToLayer":"要搬移所選取的物件到'%s'層嗎?",
          		"QwantToClear":"要清空圖像嗎?\n這會順便清空你的回復紀錄!",
          		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
          		"QerrorsRevertToSource":"SVG原始碼解析錯誤\n要回復到原本的SVG原始碼嗎?",
          		"QignoreSourceChanges":"要忽略對SVG原始碼的更動嗎?",
          		"featNotSupported":"未提供此功能",
          		"enterNewImgURL":"輸入新的圖片網址",
          		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
          		"loadingImage":"Loading image, please wait...",
          		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
          		"noteTheseIssues": "Also note the following issues: ",
          		"unsavedChanges": "There are unsaved changes.",
          		"enterNewLinkURL": "Enter the new hyperlink URL",
          		"errorLoadingSVG": "Error: Unable to load SVG data",
          		"URLloadFail": "Unable to load from URL",
          		"retrieving": "Retrieving \"%s\"..."
          	},
          	confirmSetStorage: {
          		message: "By default and where supported, SVG-Edit can store your editor "+
          		"preferences and SVG content locally on your machine so you do not "+
          		"need to add these back each time you load SVG-Edit. If, for privacy "+
          		"reasons, you do not wish to store this information on your machine, "+
          		"you can change away from the default option below.",
          		storagePrefsAndContent: "Store preferences and SVG content locally",
          		storagePrefsOnly: "Only store preferences locally",
          		storagePrefs: "Store preferences locally",
          		storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
          		storageNoPrefs: "Do not store my preferences locally",
          		rememberLabel: "Remember this choice?",
          		rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
          	}
          });
        • locale.js
          /*globals jQuery*/
          /*jslint vars: true, eqeq: true, forin: true*/
          /*
           * Localizing script for SVG-edit UI
           *
           * Licensed under the MIT License
           *
           * Copyright(c) 2010 Narendra Sisodya
           * Copyright(c) 2010 Alexis Deveria
           *
           */
          
          // Dependencies
          // 1) jQuery
          // 2) svgcanvas.js
          // 3) svg-editor.js
          
          var svgEditor = (function($, editor) {'use strict';
          
          	var lang_param;
          	
          	function setStrings(type, obj, ids) {
          		// Root element to look for element from
          		var i, sel, val, $elem, elem, node, parent = $('#svg_editor').parent();
          		for (sel in obj) {
          			val = obj[sel];
          			if (!val) {console.log(sel);}
          			
          			if (ids) {sel = '#' + sel;}
          			$elem = parent.find(sel);
          			if ($elem.length) {
          				elem = parent.find(sel)[0];
          				
          				switch ( type ) {
          					case 'content':
          						for (i = 0; i < elem.childNodes.length; i++) {
          							node = elem.childNodes[i];
          							if (node.nodeType === 3 && node.textContent.replace(/\s/g,'')) {
          								node.textContent = val;
          								break;
          							}
          						}
          						break;
          					
          					case 'title':
          						elem.title = val;
          						break;
          				}
          				
          				
          			} else {
          				console.log('Missing: ' + sel);
          			}
          		}
          	}
          
          	editor.readLang = function(langData) {
          		var more = editor.canvas.runExtensions('addlangData', lang_param, true);
          		$.each(more, function(i, m) {
          			if (m.data) {
          				langData = $.merge(langData, m.data);
          			}
          		});
          		
          		// Old locale file, do nothing for now.
          		if (!langData.tools) {return;}
          
          		var tools = langData.tools,
          			misc = langData.misc,
          			properties = langData.properties,
          			config = langData.config,
          			layers = langData.layers,
          			common = langData.common,
          			ui = langData.ui;
          		
          		setStrings('content', {
          			// copyrightLabel: misc.powered_by, // Currently commented out in svg-editor.html
          			curve_segments: properties.curve_segments,
          			fitToContent: tools.fitToContent,
          			fit_to_all: tools.fit_to_all,
          			fit_to_canvas: tools.fit_to_canvas,
          			fit_to_layer_content: tools.fit_to_layer_content,
          			fit_to_sel: tools.fit_to_sel,
          			
          			icon_large: config.icon_large,
          			icon_medium: config.icon_medium,
          			icon_small: config.icon_small,
          			icon_xlarge: config.icon_xlarge,
          			image_opt_embed: config.image_opt_embed,
          			image_opt_ref: config.image_opt_ref,
          			includedImages: config.included_images,
          			
          			largest_object: tools.largest_object,
          			
          			layersLabel: layers.layers,
          			page: tools.page,
          			relativeToLabel: tools.relativeTo,
          			selLayerLabel: layers.move_elems_to,
          			selectedPredefined: config.select_predefined,
          			
          			selected_objects: tools.selected_objects,
          			smallest_object: tools.smallest_object,
          			straight_segments: properties.straight_segments,
          			
          			svginfo_bg_url: config.editor_img_url + ":",
          			svginfo_bg_note: config.editor_bg_note,
          			svginfo_change_background: config.background,
          			svginfo_dim: config.doc_dims,
          			svginfo_editor_prefs: config.editor_prefs,
          			svginfo_height: common.height,
          			svginfo_icons: config.icon_size,
          			svginfo_image_props: config.image_props,
          			svginfo_lang: config.language,
          			svginfo_title: config.doc_title,
          			svginfo_width: common.width,
          			
          			tool_docprops_cancel: common.cancel,
          			tool_docprops_save: common.ok,
          
          			tool_source_cancel: common.cancel,
          			tool_source_save: common.ok,
          			
          			tool_prefs_cancel: common.cancel,
          			tool_prefs_save: common.ok,
          
          			sidepanel_handle: layers.layers.split('').join(' '),
          
          			tool_clear: tools.new_doc,
          			tool_docprops: tools.docprops,
          			tool_export: tools.export_img,
          			tool_import: tools.import_doc,
          			tool_imagelib: tools.imagelib,
          			tool_open: tools.open_doc,
          			tool_save: tools.save_doc,
          			
          			svginfo_units_rulers: config.units_and_rulers,
          			svginfo_rulers_onoff: config.show_rulers,
          			svginfo_unit: config.base_unit,
          			
          			svginfo_grid_settings: config.grid,
          			svginfo_snap_onoff: config.snapping_onoff,
          			svginfo_snap_step: config.snapping_stepsize,
          			svginfo_grid_color: config.grid_color
          		}, true);
          		
          		// Shape categories
          		var o, cats = {};
          		for (o in langData.shape_cats) {
          			cats['#shape_cats [data-cat="' + o + '"]'] = langData.shape_cats[o];
          		}
          		
          		// TODO: Find way to make this run after shapelib ext has loaded
          		setTimeout(function() {
          			setStrings('content', cats);
          		}, 2000);
          		
          		// Context menus
          		var opts = {};
          		$.each(['cut','copy','paste', 'paste_in_place', 'delete', 'group', 'ungroup', 'move_front', 'move_up', 'move_down', 'move_back'], function() {
          			opts['#cmenu_canvas a[href="#' + this + '"]'] = tools[this];
          		});
          
          		$.each(['dupe','merge_down', 'merge_all'], function() {
          			opts['#cmenu_layers a[href="#' + this + '"]'] = layers[this];
          		});
          
          		opts['#cmenu_layers a[href="#delete"]'] = layers.del;
          		
          		setStrings('content', opts);
          		
          		setStrings('title', {
          			align_relative_to: tools.align_relative_to,
          			circle_cx: properties.circle_cx,
          			circle_cy: properties.circle_cy,
          			circle_r: properties.circle_r,
          			cornerRadiusLabel: properties.corner_radius,
          			ellipse_cx: properties.ellipse_cx,
          			ellipse_cy: properties.ellipse_cy,
          			ellipse_rx: properties.ellipse_rx,
          			ellipse_ry: properties.ellipse_ry,
          			fill_color: properties.fill_color,
          			font_family: properties.font_family,
          			idLabel: properties.id,
          			image_height: properties.image_height,
          			image_url: properties.image_url,
          			image_width: properties.image_width,
          			layer_delete: layers.del,
          			layer_down: layers.move_down,
          			layer_new: layers['new'],
          			layer_rename: layers.rename,
          			layer_moreopts: common.more_opts,
          			layer_up: layers.move_up,
          			line_x1: properties.line_x1,
          			line_x2: properties.line_x2,
          			line_y1: properties.line_y1,
          			line_y2: properties.line_y2,
          			linecap_butt: properties.linecap_butt,
          			linecap_round: properties.linecap_round,
          			linecap_square: properties.linecap_square,
          			linejoin_bevel: properties.linejoin_bevel,
          			linejoin_miter: properties.linejoin_miter,
          			linejoin_round: properties.linejoin_round,
          			main_icon: tools.main_menu,
          			mode_connect: tools.mode_connect,
          			tools_shapelib_show: tools.mode_shapelib,
          			palette: ui.palette_info,
          			zoom_panel: ui.zoom_level,
          			path_node_x: properties.node_x,
          			path_node_y: properties.node_y,
          			rect_height_tool: properties.rect_height,
          			rect_width_tool: properties.rect_width,
          			seg_type: properties.seg_type,
          			selLayerNames: layers.move_selected,
          			selected_x: properties.pos_x,
          			selected_y: properties.pos_y,
          			stroke_color: properties.stroke_color,
          			stroke_style: properties.stroke_style,
          			stroke_width: properties.stroke_width,
          			svginfo_title: config.doc_title,
          			text: properties.text_contents,
          			toggle_stroke_tools: ui.toggle_stroke_tools,
          			tool_add_subpath: tools.add_subpath,
          			tool_alignbottom: tools.align_bottom,
          			tool_aligncenter: tools.align_center,
          			tool_alignleft: tools.align_left,
          			tool_alignmiddle: tools.align_middle,
          			tool_alignright: tools.align_right,
          			tool_aligntop: tools.align_top,
          			tool_angle: properties.angle,
          			tool_blur: properties.blur,
          			tool_bold: properties.bold,
          			tool_circle: tools.mode_circle,
          			tool_clone: tools.clone,
          			tool_clone_multi: tools.clone,
          			tool_delete: tools.del,
          			tool_delete_multi: tools.del,
          			tool_ellipse: tools.mode_ellipse,
          			tool_eyedropper: tools.mode_eyedropper,
          			tool_fhellipse: tools.mode_fhellipse,
          			tool_fhpath: tools.mode_fhpath,
          			tool_fhrect: tools.mode_fhrect,
          			tool_font_size: properties.font_size,
          			tool_group_elements: tools.group_elements,
          			tool_make_link: tools.make_link,
          			tool_link_url: tools.set_link_url,
          			tool_image: tools.mode_image,
          			tool_italic: properties.italic,
          			tool_line: tools.mode_line,
          			tool_move_bottom: tools.move_bottom,
          			tool_move_top: tools.move_top,
          			tool_node_clone: tools.node_clone,
          			tool_node_delete: tools.node_delete,
          			tool_node_link: tools.node_link,
          			tool_opacity: properties.opacity,
          			tool_openclose_path: tools.openclose_path,
          			tool_path: tools.mode_path,
          			tool_position: tools.align_to_page,
          			tool_rect: tools.mode_rect,
          			tool_redo: tools.redo,
          			tool_reorient: tools.reorient_path,
          			tool_select: tools.mode_select,
          			tool_source: tools.source_save,
          			tool_square: tools.mode_square,
          			tool_text: tools.mode_text,
          			tool_topath: tools.to_path,
          			tool_undo: tools.undo,
          			tool_ungroup: tools.ungroup,
          			tool_wireframe: tools.wireframe_mode,
          			view_grid: tools.toggle_grid,
          			tool_zoom: tools.mode_zoom,
          			url_notice: tools.no_embed
          
          		}, true);
          		
          		editor.setLang(lang_param, langData);
          	};
          
          	editor.putLocale = function (given_param, good_langs) {
          	
          		if (given_param) {
          			lang_param = given_param;
          		}
          		else {
          			lang_param = $.pref('lang');
          			if (!lang_param) {
          				if (navigator.userLanguage) { // Explorer
          					lang_param = navigator.userLanguage;
          				}
          				else if (navigator.language) { // FF, Opera, ...
          					lang_param = navigator.language;
          				}
          				if (lang_param == null) { // Todo: Would cause problems if uiStrings removed; remove this?
          					return;
          				}
          			}
          			
          			console.log('Lang: ' + lang_param);
          			
          			// Set to English if language is not in list of good langs
          			if ($.inArray(lang_param, good_langs) === -1 && lang_param !== 'test') {
          				lang_param = "en";
          			}
          	
          			// don't bother on first run if language is English		
          			// The following line prevents setLang from running
          			//    extensions which depend on updated uiStrings,
          			//    so commenting it out.
          			// if (lang_param.indexOf("en") === 0) {return;}
          
          		}
          		
          		var conf = editor.curConfig;
          		
          		var url = conf.langPath + "lang." + lang_param + ".js";
          		
          		$.getScript(url, function(d) {
          			// Fails locally in Chrome 5+
          			if (!d) {
          				var s = document.createElement('script');
          				s.src = url;
          				document.querySelector('head').appendChild(s);
          			}
          		});
          		
          	};
          	
          	return editor;
          }(jQuery, svgEditor));
          
      • spinbtn
        • JQuerySpinBtn.css
          /*
          	Styles to make ordinary <INPUT type="text"/> look like a spinbutton/spinbox control.
          	Use with JQuerySpinBtn.js to provide the spin functionality by reacting to mouse etc.
          	(Requires a reference to the JQuery library found at http://jquery.com/src/latest/)
          	(Hats-off to John Resig for creating the excellent JQuery library. It is fab.)
          
          	This control is achieved with no extra html markup whatsoever and uses unobtrusive javascript.
          
          	Written by George Adamson, Software Unity (george.jquery@softwareunity.com) September 2006.
          	Big improvements added by Mark Gibson, (mgibson@designlinks.net) September 2006.
          
          	Do contact me with comments and suggestions but please don't ask for support.
          	As much as I'd love to help with specific problems I have plenty to get on with already!
          
          	Go ahead and use it in your own projects. This code is provided 'as is'.
          	Sure I've tested in heaps of ways. Its good for me, but you use it at your own risk.
          	SoftwareUnity and I are certainly not responsible if your computer sets fire to the sofa,
          	hacks into the pentagon, hijacks a plane or gives you any kind of hassle whatsoever.
          
          	If you'd like your spin-button image in a different place then you'll need to alter both
          	the CSS below and the javascript isMouseOverUpDn() function to accommodate the new position.
          	You could even have left and right buttons either side of the textbox.
          */
          
          INPUT.spin-button {
          	/* explicitly put padding for top/bottom/left in here so that Opera displays it better */
          	padding: 2px 20px 2px 2px;
          	background-repeat:no-repeat;		/* Warning: Img may disappear in Firefox if you use 'background-attachment:fixed' ! */
          	background-position:100% 0%;
          	background-image:url('spinbtn_updn.png');
          	background-color:white; /* Needed for Opera */
          }
          
          INPUT.spin-button.up {					/* Change button img when mouse is over the UP-arrow */
          	cursor:pointer;
          	background-position:100% -18px;		/* 18px matches height of 2 visible buttons */
          }
          INPUT.spin-button.down {				/* Change button img when mouse is over the DOWN-arrow */
          	cursor:pointer;
          	background-position:100% -36px;		/* 36px matches height of 2x2 visible buttons */
          }
          
        • JQuerySpinBtn.js
          /*globals $, svgEditor*/
          /*jslint vars: true, eqeq: true*/
          /* SpinButton control
           *
           * Adds bells and whistles to any ordinary textbox to
           * make it look and feel like a SpinButton Control.
           *
           * Originally written by George Adamson, Software Unity (george.jquery@softwareunity.com) August 2006.
           * - Added min/max options
           * - Added step size option
           * - Added bigStep (page up/down) option
           *
           * Modifications made by Mark Gibson, (mgibson@designlinks.net) September 2006:
           * - Converted to jQuery plugin
           * - Allow limited or unlimited min/max values
           * - Allow custom class names, and add class to input element
           * - Removed global vars
           * - Reset (to original or through config) when invalid value entered
           * - Repeat whilst holding mouse button down (with initial pause, like keyboard repeat)
           * - Support mouse wheel in Firefox
           * - Fix double click in IE
           * - Refactored some code and renamed some vars
           *
           * Modifications by Jeff Schiller, June 2009:
           * - provide callback function for when the value changes based on the following
           *   http://www.mail-archive.com/jquery-en@googlegroups.com/msg36070.html
           * Modifications by Jeff Schiller, July 2009:
           * - improve styling for widget in Opera
           * - consistent key-repeat handling cross-browser
           * Modifications by Alexis Deveria, October 2009:
           * - provide "stepfunc" callback option to allow custom function to run when changing a value
           * - Made adjustValue(0) only run on certain keyup events, not all.
           *
           * Tested in IE6, Opera9, Firefox 1.5
           * v1.0  11 Aug 2006 - George Adamson	- First release
           * v1.1     Aug 2006 - George Adamson	- Minor enhancements
           * v1.2  27 Sep 2006 - Mark Gibson		- Major enhancements
           * v1.3a 28 Sep 2006 - George Adamson	- Minor enhancements
           * v1.4  18 Jun 2009 - Jeff Schiller    - Added callback function
           * v1.5  06 Jul 2009 - Jeff Schiller    - Fixes for Opera.  
           * v1.6  13 Oct 2009 - Alexis Deveria   - Added stepfunc function  
           * v1.7  21 Oct 2009 - Alexis Deveria   - Minor fixes
           *                                        Fast-repeat for keys and live updating as you type.
           * v1.8  12 Jan 2010 - Benjamin Thomas  - Fixes for mouseout behavior.
           *                                        Added smallStep
           
           Sample usage:
           
          	// Create group of settings to initialise spinbutton(s). (Optional)
          	var myOptions = {
          					min: 0,						// Set lower limit.
          					max: 100,					// Set upper limit.
          					step: 1,					// Set increment size.
          					smallStep: 0.5,				// Set shift-click increment size.
          					spinClass: mySpinBtnClass,	// CSS class to style the spinbutton. (Class also specifies url of the up/down button image.)
          					upClass: mySpinUpClass,		// CSS class for style when mouse over up button.
          					downClass: mySpinDnClass	// CSS class for style when mouse over down button.
          					}
           
          	$(document).ready(function(){
          
          		// Initialise INPUT element(s) as SpinButtons: (passing options if desired)
          		$("#myInputElement").SpinButton(myOptions);
          
          	});
           
           */
          $.fn.SpinButton = function(cfg) { 'use strict';
          	function coord(el,prop) {
          		var c = el[prop], b = document.body;
          		
          		while ((el = el.offsetParent) && (el != b)) {
          			if (!$.browser.msie || (el.currentStyle.position !== 'relative')) {
          				c += el[prop];
          			}
          		}
          		
          		return c;
          	}
          
          	return this.each(function(){
          
          		this.repeating = false;
          		
          		// Apply specified options or defaults:
          		// (Ought to refactor this some day to use $.extend() instead)
          		this.spinCfg = {
          			//min: cfg && cfg.min ? Number(cfg.min) : null,
          			//max: cfg && cfg.max ? Number(cfg.max) : null,
          			min: cfg && !isNaN(parseFloat(cfg.min)) ? Number(cfg.min) : null,	// Fixes bug with min:0
          			max: cfg && !isNaN(parseFloat(cfg.max)) ? Number(cfg.max) : null,
          			step: cfg && cfg.step ? Number(cfg.step) : 1,
          			stepfunc: cfg && cfg.stepfunc ? cfg.stepfunc : false,
          			page: cfg && cfg.page ? Number(cfg.page) : 10,
          			upClass: cfg && cfg.upClass ? cfg.upClass : 'up',
          			downClass: cfg && cfg.downClass ? cfg.downClass : 'down',
          			reset: cfg && cfg.reset ? cfg.reset : this.value,
          			delay: cfg && cfg.delay ? Number(cfg.delay) : 500,
          			interval: cfg && cfg.interval ? Number(cfg.interval) : 100,
          			_btn_width: 20,
          			_direction: null,
          			_delay: null,
          			_repeat: null,
          			callback: cfg && cfg.callback ? cfg.callback : null
          		};
          
          		// if a smallStep isn't supplied, use half the regular step
          		this.spinCfg.smallStep = cfg && cfg.smallStep ? cfg.smallStep : this.spinCfg.step/2;
          		
          		this.adjustValue = function(i){
          			var v;
          			if(isNaN(this.value)) {
          				v = this.spinCfg.reset;
          			} else if($.isFunction(this.spinCfg.stepfunc)) {
          				v = this.spinCfg.stepfunc(this, i);
          			} else {
          				// weirdest javascript bug ever: 5.1 + 0.1 = 5.199999999
          				v = Number((Number(this.value) + Number(i)).toFixed(5));
          			}
          			if (this.spinCfg.min !== null) {v = Math.max(v, this.spinCfg.min);}
          			if (this.spinCfg.max !== null) {v = Math.min(v, this.spinCfg.max);}
          			this.value = v;
          			if ($.isFunction(this.spinCfg.callback)) {this.spinCfg.callback(this);}
          		};
          		
          		$(this)
          		.addClass(cfg && cfg.spinClass ? cfg.spinClass : 'spin-button')
          		
          		.mousemove(function(e){
          			// Determine which button mouse is over, or not (spin direction):
          			var x = e.pageX || e.x;
          			var y = e.pageY || e.y;
          			var el = e.target || e.srcElement;
          			var scale = svgEditor.tool_scale || 1;
          			var height = $(el).height()/2;
          			
          			var direction = 
          				(x > coord(el,'offsetLeft') + el.offsetWidth*scale - this.spinCfg._btn_width)
          				? ((y < coord(el,'offsetTop') + height*scale) ? 1 : -1) : 0;
          			
          			if (direction !== this.spinCfg._direction) {
          				// Style up/down buttons:
          				switch(direction){
          					case 1: // Up arrow:
          						$(this).removeClass(this.spinCfg.downClass).addClass(this.spinCfg.upClass);
          						break;
          					case -1: // Down arrow:
          						$(this).removeClass(this.spinCfg.upClass).addClass(this.spinCfg.downClass);
          						break;
          					default: // Mouse is elsewhere in the textbox
          						$(this).removeClass(this.spinCfg.upClass).removeClass(this.spinCfg.downClass);
          				}
          				
          				// Set spin direction:
          				this.spinCfg._direction = direction;
          			}
          		})
          		
          		.mouseout(function(){
          			// Reset up/down buttons to their normal appearance when mouse moves away:
          			$(this).removeClass(this.spinCfg.upClass).removeClass(this.spinCfg.downClass);
          			this.spinCfg._direction = null;
          			window.clearInterval(this.spinCfg._repeat);
          			window.clearTimeout(this.spinCfg._delay);
          		})
          		
          		.mousedown(function(e){
          			if (e.button === 0 && this.spinCfg._direction != 0) {
          				// Respond to click on one of the buttons:
          				var self = this;
          				var stepSize = e.shiftKey ? self.spinCfg.smallStep : self.spinCfg.step;
          
          				var adjust = function() {
          					self.adjustValue(self.spinCfg._direction * stepSize);
          				};
          			
          				adjust();
          				
          				// Initial delay before repeating adjustment
          				self.spinCfg._delay = window.setTimeout(function() {
          					adjust();
          					// Repeat adjust at regular intervals
          					self.spinCfg._repeat = window.setInterval(adjust, self.spinCfg.interval);
          				}, self.spinCfg.delay);
          			}
          		})
          		
          		.mouseup(function(e){
          			// Cancel repeating adjustment
          			window.clearInterval(this.spinCfg._repeat);
          			window.clearTimeout(this.spinCfg._delay);
          		})
          		
          		.dblclick(function(e) {
          			if ($.browser.msie) {
          				this.adjustValue(this.spinCfg._direction * this.spinCfg.step);
          			}
          		})
          		
          		.keydown(function(e){
          			// Respond to up/down arrow keys.
          			switch(e.keyCode){
          				case 38: this.adjustValue(this.spinCfg.step);  break; // Up
          				case 40: this.adjustValue(-this.spinCfg.step); break; // Down
          				case 33: this.adjustValue(this.spinCfg.page);  break; // PageUp
          				case 34: this.adjustValue(-this.spinCfg.page); break; // PageDown
          			}
          		})
          		
          		/*
          		http://unixpapa.com/js/key.html describes the current state-of-affairs for
          		key repeat events:
          		- Safari 3.1 changed their model so that keydown is reliably repeated going forward
          		- Firefox and Opera still only repeat the keypress event, not the keydown
          		*/
          		.keypress(function(e){
          			if (this.repeating) {
          				// Respond to up/down arrow keys.
          				switch(e.keyCode){
          					case 38: this.adjustValue(this.spinCfg.step);  break; // Up
          					case 40: this.adjustValue(-this.spinCfg.step); break; // Down
          					case 33: this.adjustValue(this.spinCfg.page);  break; // PageUp
          					case 34: this.adjustValue(-this.spinCfg.page); break; // PageDown
          				}
          			} 
          			// we always ignore the first keypress event (use the keydown instead)
          			else {
          				this.repeating = true;
          			}
          		})
          		
          		// clear the 'repeating' flag
          		.keyup(function(e) {
          			this.repeating = false;
          			switch(e.keyCode){
          				case 38: // Up
          				case 40: // Down
          				case 33: // PageUp
          				case 34: // PageDown
          				case 13: this.adjustValue(0); break; // Enter/Return
          			}
          		})
          		
          		.bind("mousewheel", function(e){
          			// Respond to mouse wheel in IE. (It returns up/dn motion in multiples of 120)
          			if (e.wheelDelta >= 120) {
          				this.adjustValue(this.spinCfg.step);
          			}
          			else if (e.wheelDelta <= -120) {
          				this.adjustValue(-this.spinCfg.step);
          			}
          			
          			e.preventDefault();
          		})
          		
          		.change(function(e){
          			this.adjustValue(0);
          		});
          		
          		if (this.addEventListener) {
          			// Respond to mouse wheel in Firefox
          			this.addEventListener('DOMMouseScroll', function(e) {
          				if (e.detail > 0) {
          					this.adjustValue(-this.spinCfg.step);
          				}
          				else if (e.detail < 0) {
          					this.adjustValue(this.spinCfg.step);
          				}
          				
          				e.preventDefault();
          			}, false);
          		}
          	});
          };
          
        • JQuerySpinBtn.min.js
          $.fn.SpinButton=function(b){function f(a,c){for(var e=a[c],d=document.body;(a=a.offsetParent)&&a!=d;)if(!$.browser.msie||a.currentStyle.position!="relative")e+=a[c];return e}return this.each(function(){this.repeating=false;this.spinCfg={min:b&&!isNaN(parseFloat(b.min))?Number(b.min):null,max:b&&!isNaN(parseFloat(b.max))?Number(b.max):null,step:b&&b.step?Number(b.step):1,stepfunc:b&&b.stepfunc?b.stepfunc:false,page:b&&b.page?Number(b.page):10,upClass:b&&b.upClass?b.upClass:"up",downClass:b&&b.downClass?
          b.downClass:"down",reset:b&&b.reset?b.reset:this.value,delay:b&&b.delay?Number(b.delay):500,interval:b&&b.interval?Number(b.interval):100,_btn_width:20,_direction:null,_delay:null,_repeat:null,callback:b&&b.callback?b.callback:null};this.spinCfg.smallStep=b&&b.smallStep?b.smallStep:this.spinCfg.step/2;this.adjustValue=function(a){a=isNaN(this.value)?this.spinCfg.reset:$.isFunction(this.spinCfg.stepfunc)?this.spinCfg.stepfunc(this,a):Number((Number(this.value)+Number(a)).toFixed(5));if(this.spinCfg.min!==
          null)a=Math.max(a,this.spinCfg.min);if(this.spinCfg.max!==null)a=Math.min(a,this.spinCfg.max);this.value=a;$.isFunction(this.spinCfg.callback)&&this.spinCfg.callback(this)};$(this).addClass(b&&b.spinClass?b.spinClass:"spin-button").mousemove(function(a){var c=a.pageX||a.x,e=a.pageY||a.y;a=a.target||a.srcElement;var d=svgEditor.tool_scale||1,g=$(a).height()/2;c=c>f(a,"offsetLeft")+a.offsetWidth*d-this.spinCfg._btn_width?e<f(a,"offsetTop")+g*d?1:-1:0;if(c!==this.spinCfg._direction){switch(c){case 1:$(this).removeClass(this.spinCfg.downClass).addClass(this.spinCfg.upClass);
          break;case -1:$(this).removeClass(this.spinCfg.upClass).addClass(this.spinCfg.downClass);break;default:$(this).removeClass(this.spinCfg.upClass).removeClass(this.spinCfg.downClass)}this.spinCfg._direction=c}}).mouseout(function(){$(this).removeClass(this.spinCfg.upClass).removeClass(this.spinCfg.downClass);this.spinCfg._direction=null;window.clearInterval(this.spinCfg._repeat);window.clearTimeout(this.spinCfg._delay)}).mousedown(function(a){if(a.button===0&&this.spinCfg._direction!=0){var c=this,
          e=a.shiftKey?c.spinCfg.smallStep:c.spinCfg.step,d=function(){c.adjustValue(c.spinCfg._direction*e)};d();c.spinCfg._delay=window.setTimeout(function(){d();c.spinCfg._repeat=window.setInterval(d,c.spinCfg.interval)},c.spinCfg.delay)}}).mouseup(function(){window.clearInterval(this.spinCfg._repeat);window.clearTimeout(this.spinCfg._delay)}).dblclick(function(){$.browser.msie&&this.adjustValue(this.spinCfg._direction*this.spinCfg.step)}).keydown(function(a){switch(a.keyCode){case 38:this.adjustValue(this.spinCfg.step);
          break;case 40:this.adjustValue(-this.spinCfg.step);break;case 33:this.adjustValue(this.spinCfg.page);break;case 34:this.adjustValue(-this.spinCfg.page)}}).keypress(function(a){if(this.repeating)switch(a.keyCode){case 38:this.adjustValue(this.spinCfg.step);break;case 40:this.adjustValue(-this.spinCfg.step);break;case 33:this.adjustValue(this.spinCfg.page);break;case 34:this.adjustValue(-this.spinCfg.page)}else this.repeating=true}).keyup(function(a){this.repeating=false;switch(a.keyCode){case 38:case 40:case 33:case 34:case 13:this.adjustValue(0)}}).bind("mousewheel",
          function(a){if(a.wheelDelta>=120)this.adjustValue(this.spinCfg.step);else a.wheelDelta<=-120&&this.adjustValue(-this.spinCfg.step);a.preventDefault()}).change(function(){this.adjustValue(0)});this.addEventListener&&this.addEventListener("DOMMouseScroll",function(a){if(a.detail>0)this.adjustValue(-this.spinCfg.step);else a.detail<0&&this.adjustValue(this.spinCfg.step);a.preventDefault()},false)})};
      • svgicons
        • jquery.svgicons.js
          /*
           * SVG Icon Loader 2.0
           *
           * jQuery Plugin for loading SVG icons from a single file
           *
           * Copyright (c) 2009 Alexis Deveria
           * http://a.deveria.com
           *
           * MIT License
          
          How to use:
          
          1. Create the SVG master file that includes all icons:
          
          The master SVG icon-containing file is an SVG file that contains 
          <g> elements. Each <g> element should contain the markup of an SVG
          icon. The <g> element has an ID that should 
          correspond with the ID of the HTML element used on the page that should contain 
          or optionally be replaced by the icon. Additionally, one empty element should be
          added at the end with id "svg_eof".
          
          2. Optionally create fallback raster images for each SVG icon.
          
          3. Include the jQuery and the SVG Icon Loader scripts on your page.
          
          4. Run $.svgIcons() when the document is ready:
          
          $.svgIcons( file [string], options [object literal]);
          
          File is the location of a local SVG or SVGz file.
          
          All options are optional and can include:
          
          - 'w (number)': The icon widths
          
          - 'h (number)': The icon heights
          
          - 'fallback (object literal)': List of raster images with each
          	key being the SVG icon ID to replace, and the value the image file name.
          	
          - 'fallback_path (string)': The path to use for all images
          	listed under "fallback"
          	
          - 'replace (boolean)': If set to true, HTML elements will be replaced by,
          	rather than include the SVG icon.
          
          - 'placement (object literal)': List with selectors for keys and SVG icon ids
          	as values. This provides a custom method of adding icons.
          
          - 'resize (object literal)': List with selectors for keys and numbers
          	as values. This allows an easy way to resize specific icons.
          	
          - 'callback (function)': A function to call when all icons have been loaded. 
          	Includes an object literal as its argument with as keys all icon IDs and the 
          	icon as a jQuery object as its value.
          
          - 'id_match (boolean)': Automatically attempt to match SVG icon ids with
          	corresponding HTML id (default: true)
          	
          - 'no_img (boolean)': Prevent attempting to convert the icon into an <img>
          	element (may be faster, help for browser consistency)
          
          - 'svgz (boolean)': Indicate that the file is an SVGZ file, and thus not to
          	parse as XML. SVGZ files add compression benefits, but getting data from
          	them fails in Firefox 2 and older.
          
          5. To access an icon at a later point without using the callback, use this:
          	$.getSvgIcon(id (string));
          
          This will return the icon (as jQuery object) with a given ID.
          	
          6. To resize icons at a later point without using the callback, use this:
          	$.resizeSvgIcons(resizeOptions) (use the same way as the "resize" parameter)
          
          
          Example usage #1:
          
          $(function() {
          	$.svgIcons('my_icon_set.svg'); // The SVG file that contains all icons
          	// No options have been set, so all icons will automatically be inserted 
          	// into HTML elements that match the same IDs. 
          });
          
          Example usage #2:
          
          $(function() {
          	$.svgIcons('my_icon_set.svg', { // The SVG file that contains all icons
          		callback: function(icons) { // Custom callback function that sets click
          									// events for each icon
          			$.each(icons, function(id, icon) {
          				icon.click(function() {
          					alert('You clicked on the icon with id ' + id);
          				});
          			});
          		}
          	}); //The SVG file that contains all icons
          });
          
          Example usage #3:
          
          $(function() {
          	$.svgIcons('my_icon_set.svgz', { // The SVGZ file that contains all icons
          		w: 32,	// All icons will be 32px wide
          		h: 32,  // All icons will be 32px high
          		fallback_path: 'icons/',  // All fallback files can be found here
          		fallback: {
          			'#open_icon': 'open.png',  // The "open.png" will be appended to the
          										// HTML element with ID "open_icon"
          			'#close_icon': 'close.png',
          			'#save_icon': 'save.png'
          		},
          		placement: {'.open_icon','open'}, // The "open" icon will be added
          										// to all elements with class "open_icon"
          		resize: function() {
          			'#save_icon .svg_icon': 64  // The "save" icon will be resized to 64 x 64px
          		},
          		
          		callback: function(icons) { // Sets background color for "close" icon 
          			icons['close'].css('background','red');
          		},
          		
          		svgz: true // Indicates that an SVGZ file is being used
          		
          	})
          });
          
          */
          
          
          (function($) {
          	var svg_icons = {}, fixIDs;
          
          	$.svgIcons = function(file, opts) {
          		var svgns = "http://www.w3.org/2000/svg",
          			xlinkns = "http://www.w3.org/1999/xlink",
          			icon_w = opts.w?opts.w : 24,
          			icon_h = opts.h?opts.h : 24,
          			elems, svgdoc, testImg,
          			icons_made = false, data_loaded = false, load_attempts = 0,
          			ua = navigator.userAgent, isOpera = !!window.opera, isSafari = (ua.indexOf('Safari/') > -1 && ua.indexOf('Chrome/')==-1),
          			data_pre = 'data:image/svg+xml;charset=utf-8;base64,';
          			
          			if(opts.svgz) {
          				var data_el = $('<object data="' + file + '" type=image/svg+xml>').appendTo('body').hide();
          				try {
          					svgdoc = data_el[0].contentDocument;
          					data_el.load(getIcons);
          					getIcons(0, true); // Opera will not run "load" event if file is already cached
          				} catch(err1) {
          					useFallback();
          				}
          			} else {
          				var parser = new DOMParser();
          				$.ajax({
          					url: file,
          					dataType: 'string',
          					success: function(data) {
          						if(!data) {
          							$(useFallback);
          							return;
          						}
          						svgdoc = parser.parseFromString(data, "text/xml");
          						$(function() {
          							getIcons('ajax');
          						});
          					},
          					error: function(err) {
          						// TODO: Fix Opera widget icon bug
          						if(window.opera) {
          							$(function() {
          								useFallback();
          							});
          						} else {
          							if(err.responseText) {
          								svgdoc = parser.parseFromString(err.responseText, "text/xml");
          
          								if(!svgdoc.childNodes.length) {
          									$(useFallback);									
          								}
          								$(function() {
          									getIcons('ajax');
          								});							
          							} else {
          								$(useFallback);
          							}
          						}
          					}
          				});
          			}
          			
          		function getIcons(evt, no_wait) {
          			if(evt !== 'ajax') {
          				if(data_loaded) return;
          				// Webkit sometimes says svgdoc is undefined, other times
          				// it fails to load all nodes. Thus we must make sure the "eof" 
          				// element is loaded.
          				svgdoc = data_el[0].contentDocument; // Needed again for Webkit
          				var isReady = (svgdoc && svgdoc.getElementById('svg_eof'));
          				if(!isReady && !(no_wait && isReady)) {
          					load_attempts++;
          					if(load_attempts < 50) {
          						setTimeout(getIcons, 20);
          					} else {
          						useFallback();
          						data_loaded = true;
          					}
          					return;
          				}
          				data_loaded = true;
          			}
          			
          			elems = $(svgdoc.firstChild).children(); //.getElementsByTagName('foreignContent');
          			
          			if(!opts.no_img) {
          				var testSrc = data_pre + 'PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNzUiIGhlaWdodD0iMjc1Ij48L3N2Zz4%3D';
          				
          				testImg = $(new Image()).attr({
          					src: testSrc,
          					width: 0,
          					height: 0
          				}).appendTo('body')
          				.load(function () {
          					// Safari 4 crashes, Opera and Chrome don't
          					makeIcons(true);
          				}).error(function () {
          					makeIcons();
          				});
          			} else {
          				setTimeout(function() {
          					if(!icons_made) makeIcons();
          				},500);
          			}
          		}
          		
          		var setIcon = function(target, icon, id, setID) {
          			if(isOpera) icon.css('visibility','hidden');
          			if(opts.replace) {
          				if(setID) icon.attr('id',id);
          				var cl = target.attr('class');
          				if(cl) icon.attr('class','svg_icon '+cl);
          				target.replaceWith(icon);
          			} else {
          				
          				target.append(icon);
          			}
          			if(isOpera) {
          				setTimeout(function() {
          					icon.removeAttr('style');
          				},1);
          			}
          		};
          		
          		var addIcon = function(icon, id) {
          			if(opts.id_match === undefined || opts.id_match !== false) {
          				setIcon(holder, icon, id, true);
          			}
          			svg_icons[id] = icon;
          		};
          		
          		function makeIcons(toImage, fallback) {
          			if(icons_made) return;
          			if(opts.no_img) toImage = false;
          			var holder, temp_holder;
          			
          			if(toImage) {
          				temp_holder = $(document.createElement('div'));
          				temp_holder.hide().appendTo('body');
          			} 
          			if(fallback) {
          				var path = opts.fallback_path?opts.fallback_path:'';
          				$.each(fallback, function(id, imgsrc) {
          					holder = $('#' + id);
          					var icon = $(new Image())
          						.attr({
          							'class':'svg_icon',
          							src: path + imgsrc,
          							'width': icon_w,
          							'height': icon_h,
          							'alt': 'icon'
          						});
          					
          					addIcon(icon, id);
          				});
          			} else {
          				var len = elems.length;
          				for(var i = 0; i < len; i++) {
          					var elem = elems[i];
          					var id = elem.id;
          					if(id === 'svg_eof') break;
          					holder = $('#' + id);
          					var svg = elem.getElementsByTagNameNS(svgns, 'svg')[0];
          					var svgroot = document.createElementNS(svgns, "svg");
          					svgroot.setAttributeNS(svgns, 'viewBox', [0,0,icon_w,icon_h].join(' '));
          					
          					// Make flexible by converting width/height to viewBox
          					var w = svg.getAttribute('width');
          					var h = svg.getAttribute('height');
          					svg.removeAttribute('width');
          					svg.removeAttribute('height');
          					
          					var vb = svg.getAttribute('viewBox');
          					if(!vb) {
          						svg.setAttribute('viewBox', [0,0,w,h].join(' '));
          					}
          					
          					// Not using jQuery to be a bit faster
          					svgroot.setAttribute('xmlns', svgns);
          					svgroot.setAttribute('width', icon_w);
          					svgroot.setAttribute('height', icon_h);
          					svgroot.setAttribute("xmlns:xlink", xlinkns);
          					svgroot.setAttribute("class", 'svg_icon');
          
          					// Without cloning, Firefox will make another GET request.
          					// With cloning, causes issue in Opera/Win/Non-EN
          					if(!isOpera) svg = svg.cloneNode(true);
          					
          					svgroot.appendChild(svg);
          					var icon;
          					if(toImage) {
          						// Without cloning, Safari will crash
          						// With cloning, causes issue in Opera/Win/Non-EN
          						var svgcontent = isOpera?svgroot:svgroot.cloneNode(true);
          						temp_holder.empty().append(svgroot);
          						var str = data_pre + encode64(unescape(encodeURIComponent(new XMLSerializer().serializeToString(svgroot))));
          						icon = $(new Image())
          							.attr({'class':'svg_icon', src:str});
          					} else {
          						icon = fixIDs($(svgroot), i);
          					}
          					addIcon(icon, id);
          				}
          
          			}
          			
          			if(opts.placement) {
          				$.each(opts.placement, function(sel, id) {
          					if(!svg_icons[id]) return;
          					$(sel).each(function(i) {
          						var copy = svg_icons[id].clone();
          						if(i > 0 && !toImage) copy = fixIDs(copy, i, true);
          						setIcon($(this), copy, id);
          					});
          				});
          			}
          			if(!fallback) {
          				if(toImage) temp_holder.remove();
          				if(data_el) data_el.remove();
          				if(testImg) testImg.remove();
          			}
          			if(opts.resize) $.resizeSvgIcons(opts.resize);
          			icons_made = true;
          
          			if(opts.callback) opts.callback(svg_icons);
          		}
          		
          		fixIDs = function(svg_el, svg_num, force) {
          			var defs = svg_el.find('defs');
          			if(!defs.length) return svg_el;
          			var id_elems;
          			if(isOpera) {
          				id_elems = defs.find('*').filter(function() {
          					return !!this.id;
          				});
          			} else {
          				id_elems = defs.find('[id]');
          			}
          			
          			var all_elems = svg_el[0].getElementsByTagName('*'), len = all_elems.length;
          			
          			id_elems.each(function(i) {
          				var id = this.id;
          				var no_dupes = ($(svgdoc).find('#' + id).length <= 1);
          				if(isOpera) no_dupes = false; // Opera didn't clone svg_el, so not reliable
          				// if(!force && no_dupes) return;
          				var new_id = 'x' + id + svg_num + i;
          				this.id = new_id;
          				
          				var old_val = 'url(#' + id + ')';
          				var new_val = 'url(#' + new_id + ')';
          				
          				// Selector method, possibly faster but fails in Opera / jQuery 1.4.3
          //				svg_el.find('[fill="url(#' + id + ')"]').each(function() {
          //					this.setAttribute('fill', 'url(#' + new_id + ')');
          //				}).end().find('[stroke="url(#' + id + ')"]').each(function() {
          //					this.setAttribute('stroke', 'url(#' + new_id + ')');
          //				}).end().find('use').each(function() {
          //					if(this.getAttribute('xlink:href') == '#' + id) {
          //						this.setAttributeNS(xlinkns,'href','#' + new_id);
          //					}
          //				}).end().find('[filter="url(#' + id + ')"]').each(function() {
          //					this.setAttribute('filter', 'url(#' + new_id + ')');
          //				});
          
          				for(i = 0; i < len; i++) {
          					var elem = all_elems[i];
          					if(elem.getAttribute('fill') === old_val) {
          						elem.setAttribute('fill', new_val);
          					}
          					if(elem.getAttribute('stroke') === old_val) {
          						elem.setAttribute('stroke', new_val);
          					}
          					if(elem.getAttribute('filter') === old_val) {
          						elem.setAttribute('filter', new_val);
          					}
          				}
          			});
          			return svg_el;
          		};
          		
          		function useFallback() {
          			if(file.indexOf('.svgz') != -1) {
          				var reg_file = file.replace('.svgz','.svg');
          				if(window.console) {
          					console.log('.svgz failed, trying with .svg');
          				}
          				$.svgIcons(reg_file, opts);
          			} else if(opts.fallback) {
          				makeIcons(false, opts.fallback);
          			}
          		}
          				
          		function encode64(input) {
          			// base64 strings are 4/3 larger than the original string
          			if(window.btoa) return window.btoa(input);
          			var _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
          			var output = new Array( Math.floor( (input.length + 2) / 3 ) * 4 );
          			var chr1, chr2, chr3;
          			var enc1, enc2, enc3, enc4;
          			var i = 0, p = 0;
          		
          			do {
          				chr1 = input.charCodeAt(i++);
          				chr2 = input.charCodeAt(i++);
          				chr3 = input.charCodeAt(i++);
          		
          				enc1 = chr1 >> 2;
          				enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
          				enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
          				enc4 = chr3 & 63;
          		
          				if (isNaN(chr2)) {
          					enc3 = enc4 = 64;
          				} else if (isNaN(chr3)) {
          					enc4 = 64;
          				}
          		
          				output[p++] = _keyStr.charAt(enc1);
          				output[p++] = _keyStr.charAt(enc2);
          				output[p++] = _keyStr.charAt(enc3);
          				output[p++] = _keyStr.charAt(enc4);
          			} while (i < input.length);
          		
          			return output.join('');
          		}
          	};
          	
          	$.getSvgIcon = function(id, uniqueClone) { 
          		var icon = svg_icons[id];
          		if(uniqueClone && icon) {
          			icon = fixIDs(icon, 0, true).clone(true);
          		}
          		return icon; 
          	};
          	
          	$.resizeSvgIcons = function(obj) {
          		// FF2 and older don't detect .svg_icon, so we change it detect svg elems instead
          		var change_sel = !$('.svg_icon:first').length;
          		$.each(obj, function(sel, size) {
          			var arr = $.isArray(size);
          			var w = arr?size[0]:size,
          				h = arr?size[1]:size;
          			if(change_sel) {
          				sel = sel.replace(/\.svg_icon/g,'svg');
          			}
          			$(sel).each(function() {
          				this.setAttribute('width', w);
          				this.setAttribute('height', h);
          				if(window.opera && window.widget) {
          					this.parentNode.style.width = w + 'px';
          					this.parentNode.style.height = h + 'px';
          				}
          			});
          		});
          	};
          	
          })(jQuery);
      • browser-not-supported.html
        <!DOCTYPE html>
        <html>
        <head>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="chrome=1"/>
        <link rel="icon" type="image/png" href="images/logo.png"/>
        <link rel="stylesheet" href="svg-editor.css" type="text/css"/>
        <script src="jquery.js"></script>
        <title>Browser does not support SVG | SVG-edit</title>
        </head>
        <body>
        
        <div id="browser-not-supported">
        <img style="float:left;padding:10px;" src="images/logo.png" width="48" height="48" alt="SVG-edit logo" /><br />
        <p>Sorry, but your browser does not support SVG. Below is a list of alternate browsers and versions that support SVG and SVG-edit (from <a href="http://caniuse.com/#cats=SVG">caniuse.com</a>).</p>
        <p>Try the latest version of <a href="http://www.getfirefox.com">Firefox</a>, <a href="http://www.google.com/chrome/">Google Chrome</a>, <a href="http://www.apple.com/safari/download/">Safari</a>, <a href="http://www.opera.com/download/">Opera</a> or <a href="http://windows.microsoft.com/ie9">Internet Explorer</a>.</p>
        <p>If you are unable to install one of these and must use an old version of Internet Explorer, you can install the <a href="http://code.google.com/chrome/chromeframe/">Google Chrome Frame plugin</a>.</p>
        
        </div>
        
        <script>
        /*globals $*/
        var viewportHeight = window.innerHeight || ($(window).height() - 140);
        var iframe = document.createElement('iframe');
        iframe.style.width = '100%';
        iframe.style.height = viewportHeight + 'px';
        iframe.src = 'http://caniuse.com/#cats=SVG';
        document.body.appendChild(iframe);
        </script>
        </body>
        </html>
        
      • browser.js
        /*globals $, svgedit*/
        /*jslint vars: true, eqeq: true*/
        /**
         * Package: svgedit.browser
         *
         * Licensed under the MIT License
         *
         * Copyright(c) 2010 Jeff Schiller
         * Copyright(c) 2010 Alexis Deveria
         */
        
        // Dependencies:
        // 1) jQuery (for $.alert())
        
        (function() {'use strict';
        
        if (!svgedit.browser) {
        	svgedit.browser = {};
        }
        
        // alias
        var NS = svgedit.NS;
        
        var supportsSvg_ = (function() {
        	return !!document.createElementNS && !!document.createElementNS(NS.SVG, 'svg').createSVGRect;
        }());
        
        svgedit.browser.supportsSvg = function() { return supportsSvg_; };
        if(!svgedit.browser.supportsSvg()) {
        	window.location = 'browser-not-supported.html';
        	return;
        }
        
        var userAgent = navigator.userAgent;
        var svg = document.createElementNS(NS.SVG, 'svg');
        
        // Note: Browser sniffing should only be used if no other detection method is possible
        var isOpera_ = !!window.opera;
        var isWebkit_ = userAgent.indexOf('AppleWebKit') >= 0;
        var isGecko_ = userAgent.indexOf('Gecko/') >= 0;
        var isIE_ = userAgent.indexOf('MSIE') >= 0;
        var isChrome_ = userAgent.indexOf('Chrome/') >= 0;
        var isWindows_ = userAgent.indexOf('Windows') >= 0;
        var isMac_ = userAgent.indexOf('Macintosh') >= 0;
        var isTouch_ = 'ontouchstart' in window;
        
        var supportsSelectors_ = (function() {
        	return !!svg.querySelector;
        }());
        
        var supportsXpath_ = (function() {
        	return !!document.evaluate;
        }());
        
        // segList functions (for FF1.5 and 2.0)
        var supportsPathReplaceItem_ = (function() {
        	var path = document.createElementNS(NS.SVG, 'path');
        	path.setAttribute('d', 'M0,0 10,10');
        	var seglist = path.pathSegList;
        	var seg = path.createSVGPathSegLinetoAbs(5,5);
        	try {
        		seglist.replaceItem(seg, 0);
        		return true;
        	} catch(err) {}
        	return false;
        }());
        
        var supportsPathInsertItemBefore_ = (function() {
        	var path = document.createElementNS(NS.SVG, 'path');
        	path.setAttribute('d', 'M0,0 10,10');
        	var seglist = path.pathSegList;
        	var seg = path.createSVGPathSegLinetoAbs(5,5);
        	try {
        		seglist.insertItemBefore(seg, 0);
        		return true;
        	} catch(err) {}
        	return false;
        }());
        
        // text character positioning (for IE9)
        var supportsGoodTextCharPos_ = (function() {
        	var svgroot = document.createElementNS(NS.SVG, 'svg');
        	var svgcontent = document.createElementNS(NS.SVG, 'svg');
        	document.documentElement.appendChild(svgroot);
        	svgcontent.setAttribute('x', 5);
        	svgroot.appendChild(svgcontent);
        	var text = document.createElementNS(NS.SVG, 'text');
        	text.textContent = 'a';
        	svgcontent.appendChild(text);
        	var pos = text.getStartPositionOfChar(0).x;
        	document.documentElement.removeChild(svgroot);
        	return (pos === 0);
        }());
        
        var supportsPathBBox_ = (function() {
        	var svgcontent = document.createElementNS(NS.SVG, 'svg');
        	document.documentElement.appendChild(svgcontent);
        	var path = document.createElementNS(NS.SVG, 'path');
        	path.setAttribute('d', 'M0,0 C0,0 10,10 10,0');
        	svgcontent.appendChild(path);
        	var bbox = path.getBBox();
        	document.documentElement.removeChild(svgcontent);
        	return (bbox.height > 4 && bbox.height < 5);
        }());
        
        // Support for correct bbox sizing on groups with horizontal/vertical lines
        var supportsHVLineContainerBBox_ = (function() {
        	var svgcontent = document.createElementNS(NS.SVG, 'svg');
        	document.documentElement.appendChild(svgcontent);
        	var path = document.createElementNS(NS.SVG, 'path');
        	path.setAttribute('d', 'M0,0 10,0');
        	var path2 = document.createElementNS(NS.SVG, 'path');
        	path2.setAttribute('d', 'M5,0 15,0');
        	var g = document.createElementNS(NS.SVG, 'g');
        	g.appendChild(path);
        	g.appendChild(path2);
        	svgcontent.appendChild(g);
        	var bbox = g.getBBox();
        	document.documentElement.removeChild(svgcontent);
        	// Webkit gives 0, FF gives 10, Opera (correctly) gives 15
        	return (bbox.width == 15);
        }());
        
        var supportsEditableText_ = (function() {
        	// TODO: Find better way to check support for this
        	return isOpera_;
        }());
        
        var supportsGoodDecimals_ = (function() {
        	// Correct decimals on clone attributes (Opera < 10.5/win/non-en)
        	var rect = document.createElementNS(NS.SVG, 'rect');
        	rect.setAttribute('x', 0.1);
        	var crect = rect.cloneNode(false);
        	var retValue = (crect.getAttribute('x').indexOf(',') == -1);
        	if(!retValue) {
        		$.alert('NOTE: This version of Opera is known to contain bugs in SVG-edit.\n'+
        		'Please upgrade to the <a href="http://opera.com">latest version</a> in which the problems have been fixed.');
        	}
        	return retValue;
        }());
        
        var supportsNonScalingStroke_ = (function() {
        	var rect = document.createElementNS(NS.SVG, 'rect');
        	rect.setAttribute('style', 'vector-effect:non-scaling-stroke');
        	return rect.style.vectorEffect === 'non-scaling-stroke';
        }());
        
        var supportsNativeSVGTransformLists_ = (function() {
        	var rect = document.createElementNS(NS.SVG, 'rect');
        	var rxform = rect.transform.baseVal;
        	var t1 = svg.createSVGTransform();
        	rxform.appendItem(t1);
        	return rxform.getItem(0) == t1;
        }());
        
        // Public API
        
        svgedit.browser.isOpera = function() { return isOpera_; };
        svgedit.browser.isWebkit = function() { return isWebkit_; };
        svgedit.browser.isGecko = function() { return isGecko_; };
        svgedit.browser.isIE = function() { return isIE_; };
        svgedit.browser.isChrome = function() { return isChrome_; };
        svgedit.browser.isWindows = function() { return isWindows_; };
        svgedit.browser.isMac = function() { return isMac_; };
        svgedit.browser.isTouch = function() { return isTouch_; };
        
        svgedit.browser.supportsSelectors = function() { return supportsSelectors_; };
        svgedit.browser.supportsXpath = function() { return supportsXpath_; };
        
        svgedit.browser.supportsPathReplaceItem = function() { return supportsPathReplaceItem_; };
        svgedit.browser.supportsPathInsertItemBefore = function() { return supportsPathInsertItemBefore_; };
        svgedit.browser.supportsPathBBox = function() { return supportsPathBBox_; };
        svgedit.browser.supportsHVLineContainerBBox = function() { return supportsHVLineContainerBBox_; };
        svgedit.browser.supportsGoodTextCharPos = function() { return supportsGoodTextCharPos_; };
        svgedit.browser.supportsEditableText = function() { return supportsEditableText_; };
        svgedit.browser.supportsGoodDecimals = function() { return supportsGoodDecimals_; };
        svgedit.browser.supportsNonScalingStroke = function() { return supportsNonScalingStroke_; };
        svgedit.browser.supportsNativeTransformLists = function() { return supportsNativeSVGTransformLists_; };
        
        }());
        
      • config-sample.js
        // DO NOT EDIT THIS FILE!
        // THIS FILE IS JUST A SAMPLE; TO APPLY, YOU MUST
        //   CREATE A NEW FILE config.js AND ADD CONTENTS
        //   SUCH AS SHOWN BELOW INTO THAT FILE.
        
        /*globals svgEditor*/
        /*
        The config.js file is intended for the setting of configuration or
          preferences which must run early on; if this is not needed, it is
          recommended that you create an extension instead (for greater
          reusability and modularity).
        */
        
        // CONFIG AND EXTENSION SETTING
        /*
        See defaultConfig and defaultExtensions in svg-editor.js for a list
          of possible configuration settings.
        
        See svg-editor.js for documentation on using setConfig().
        */
        
        // URL OVERRIDE CONFIG
        svgEditor.setConfig({
        	/**
        	To override the ability for URLs to set URL-based SVG content,
        	    uncomment the following:
        	*/
        	// preventURLContentLoading: true,
        	/**
        	To override the ability for URLs to set other configuration (including
        	    extension config), uncomment the following:
        	*/
        	// preventAllURLConfig: true,
        	/**
        	To override the ability for URLs to set their own extensions,
        	  uncomment the following (note that if setConfig() is used in
        	  extension code, it will still be additive to extensions,
        	  however):
        	*/
        	// lockExtensions: true,
        });
        
        svgEditor.setConfig({
        	/*
        	Provide default values here which differ from that of the editor but
        		which the URL can override
        	*/
        }, {allowInitialUserOverride: true});
        
        // EXTENSION CONFIG
        svgEditor.setConfig({
        	extensions: [
        		// 'ext-overview_window.js', 'ext-markers.js', 'ext-connector.js', 'ext-eyedropper.js', 'ext-shapes.js', 'ext-imagelib.js', 'ext-grid.js', 'ext-polygon.js', 'ext-star.js', 'ext-panning.js', 'ext-storage.js'
        	]
        	// , noDefaultExtensions: false, // noDefaultExtensions can only be meaningfully used in config.js or in the URL
        });
        
        // OTHER CONFIG
        svgEditor.setConfig({	
        	// canvasName: 'default',
        	// canvas_expansion: 3,
        	// initFill: {
        		// color: 'FF0000', // solid red
        		// opacity: 1
        	// },
        	// initStroke: {
        		// width: 5,
        		// color: '000000', // solid black
        		// opacity: 1
        	// },
        	// initOpacity: 1,
        	// colorPickerCSS: null,
        	// initTool: 'select',
        	// exportWindowType: 'new', // 'same'
        	// wireframe: false,
        	// showlayers: false,
        	// no_save_warning: false,
        	// PATH CONFIGURATION
        	// imgPath: 'images/',
        	// langPath: 'locale/',
        	// extPath: 'extensions/',
        	// jGraduatePath: 'jgraduate/images/',
        	/*
        	Uncomment the following to allow at least same domain (embedded) access,
        	including file:// access.
        	Setting as `['*']` would allow any domain to access but would be unsafe to
        	data privacy and integrity.
        	*/
        	// allowedOrigins: [window.location.origin || 'null'], // May be 'null' (as a string) when used as a file:// URL
        	// DOCUMENT PROPERTIES
        	// dimensions: [640, 480],
        	// EDITOR OPTIONS
        	// gridSnapping: false,
        	// gridColor: '#000',
        	// baseUnit: 'px',
        	// snappingStep: 10,
        	// showRulers: true,
        	// EXTENSION-RELATED (GRID)
        	// showGrid: false, // Set by ext-grid.js
        	// EXTENSION-RELATED (STORAGE)
        	// noStorageOnLoad: false, // Some interaction with ext-storage.js; prevent even the loading of previously saved local storage
        	// forceStorage: false, // Some interaction with ext-storage.js; strongly discouraged from modification as it bypasses user privacy by preventing them from choosing whether to keep local storage or not
        	// emptyStorageOnDecline: true, // Used by ext-storage.js; empty any prior storage if the user declines to store
        });
        
        // PREF CHANGES
        /**
        setConfig() can also be used to set preferences in addition to
          configuration (see defaultPrefs in svg-editor.js for a list of
          possible settings), but at least if you are using ext-storage.js
          to store preferences, it will probably be better to let your
          users control these.
        As with configuration, one may use allowInitialUserOverride, but
          in the case of preferences, any previously stored preferences
          will also thereby be enabled to override this setting (and at a
          higher priority than any URL preference setting overrides).
          Failing to use allowInitialUserOverride will ensure preferences
          are hard-coded here regardless of URL or prior user storage setting.
        */
        svgEditor.setConfig(
        	{
        		// lang: '', // Set dynamically within locale.js if not previously set
        		// iconsize: '', // Will default to 's' if the window height is smaller than the minimum height and 'm' otherwise
        		/**
        		* When showing the preferences dialog, svg-editor.js currently relies
        		* on curPrefs instead of $.pref, so allowing an override for bkgd_color
        		* means that this value won't have priority over block auto-detection as
        		* far as determining which color shows initially in the preferences
        		* dialog (though it can be changed and saved).
        		*/
        		// bkgd_color: '#FFF',
        		// bkgd_url: '',
        		// img_save: 'embed',
        		// Only shows in UI as far as alert notices
        		// save_notice_done: false,
        		// export_notice_done: false
        	}
        );
        svgEditor.setConfig(
        	{
        		// Indicate pref settings here if you wish to allow user storage or URL settings
        		//   to be able to override your default preferences (unless other config options
        		//   have already explicitly prevented one or the other)
        	},
        	{allowInitialUserOverride: true}
        );
        
      • contextmenu.js
        /*globals $, svgEditor*/
        /*jslint vars: true, eqeq: true*/
        /**
         * Package: svgedit.contextmenu
         * 
         * Licensed under the Apache License, Version 2
         * 
         * Author: Adam Bender
         */
        // Dependencies:
        // 1) jQuery (for dom injection of context menus)
        var svgedit = svgedit || {};
        (function() {
        	var self = this;
        	if (!svgedit.contextmenu) {
        		svgedit.contextmenu = {};
        	}
        	self.contextMenuExtensions = {};
        	var menuItemIsValid = function(menuItem) {
        		return menuItem && menuItem.id && menuItem.label && menuItem.action && typeof menuItem.action == 'function';
        	};
        	var addContextMenuItem = function(menuItem) {
        		// menuItem: {id, label, shortcut, action}
        		if (!menuItemIsValid(menuItem)) {
        			console.error("Menu items must be defined and have at least properties: id, label, action, where action must be a function");
        			return;
        		}
        		if (menuItem.id in self.contextMenuExtensions) {
        			console.error('Cannot add extension "' + menuItem.id + '", an extension by that name already exists"');
        			return;
        		}
        		// Register menuItem action, see below for deferred menu dom injection
        		console.log("Registed contextmenu item: {id:"+ menuItem.id+", label:"+menuItem.label+"}");
        		self.contextMenuExtensions[menuItem.id] = menuItem;
        		//TODO: Need to consider how to handle custom enable/disable behavior
        	};
        	var hasCustomHandler = function(handlerKey) {
        		return self.contextMenuExtensions[handlerKey] && true;
        	};
        	var getCustomHandler = function(handlerKey) {
        		return self.contextMenuExtensions[handlerKey].action;
        	};
        	var injectExtendedContextMenuItemIntoDom = function(menuItem) {
        		if (Object.keys(self.contextMenuExtensions).length === 0) {
        			// all menuItems appear at the bottom of the menu in their own container.
        			// if this is the first extension menu we need to add the separator.
        			$("#cmenu_canvas").append("<li class='separator'>");
        		}
        		var shortcut = menuItem.shortcut || "";
        		$("#cmenu_canvas").append("<li class='disabled'><a href='#" + menuItem.id + "'>"
        									+ menuItem.label + "<span class='shortcut'>"
        									+ shortcut + "</span></a></li>");
        	};
        	// Defer injection to wait out initial menu processing. This probably goes away once all context
        	// menu behavior is brought here.
        	svgEditor.ready(function() {
        		var menuItem;
        		for (menuItem in contextMenuExtensions) {
        			injectExtendedContextMenuItemIntoDom(contextMenuExtensions[menuItem]);
        		}
        	});
        	svgedit.contextmenu.resetCustomMenus = function(){self.contextMenuExtensions = {};};
        	svgedit.contextmenu.add = addContextMenuItem;
        	svgedit.contextmenu.hasCustomHandler = hasCustomHandler;
        	svgedit.contextmenu.getCustomHandler = getCustomHandler;
        }());
        
      • coords.js
        /*globals $, svgroot */
        /*jslint vars: true, eqeq: true, forin: true*/
        /**
         * Coords.
         *
         * Licensed under the MIT License
         *
         */
        
        // Dependencies:
        // 1) jquery.js
        // 2) math.js
        // 3) browser.js
        // 4) svgutils.js
        // 5) units.js
        // 6) svgtransformlist.js
        
        var svgedit = svgedit || {};
        
        (function() {'use strict';
        
        if (!svgedit.coords) {
          svgedit.coords = {};
        }
        
        // this is how we map paths to our preferred relative segment types
        var pathMap = [0, 'z', 'M', 'm', 'L', 'l', 'C', 'c', 'Q', 'q', 'A', 'a', 
            'H', 'h', 'V', 'v', 'S', 's', 'T', 't'];
        
        /**
         * @typedef editorContext
         * @type {?object}
         * @property {function} getGridSnapping
         * @property {function} getDrawing
        */
        var editorContext_ = null;
        
        /**
        * @param {editorContext} editorContext
        */
        svgedit.coords.init = function(editorContext) {
          editorContext_ = editorContext;
        };
        
        /**
         * Applies coordinate changes to an element based on the given matrix
         * @param {Element} selected - DOM element to be changed
         * @param {object} changes - Object with changes to be remapped
         * @param {SVGMatrix} m - Matrix object to use for remapping coordinates
        */
        svgedit.coords.remapElement = function(selected, changes, m) {
          var i, type,
            remap = function(x, y) { return svgedit.math.transformPoint(x, y, m); },
            scalew = function(w) { return m.a * w; },
            scaleh = function(h) { return m.d * h; },
            doSnapping = editorContext_.getGridSnapping() && selected.parentNode.parentNode.localName === 'svg',
            finishUp = function() {
              var o;
              if (doSnapping) {
                for (o in changes) {
                  changes[o] = svgedit.utilities.snapToGrid(changes[o]);
                }
              }
              svgedit.utilities.assignAttributes(selected, changes, 1000, true);
            },
            box = svgedit.utilities.getBBox(selected);
        
          for (i = 0; i < 2; i++) {
            type = i === 0 ? 'fill' : 'stroke';
            var attrVal = selected.getAttribute(type);
            if (attrVal && attrVal.indexOf('url(') === 0) {
              if (m.a < 0 || m.d < 0) {
                var grad = svgedit.utilities.getRefElem(attrVal);
                var newgrad = grad.cloneNode(true);
                if (m.a < 0) {
                  // flip x
                  var x1 = newgrad.getAttribute('x1');
                  var x2 = newgrad.getAttribute('x2');
                  newgrad.setAttribute('x1', -(x1 - 1));
                  newgrad.setAttribute('x2', -(x2 - 1));
                } 
        
                if (m.d < 0) {
                  // flip y
                  var y1 = newgrad.getAttribute('y1');
                  var y2 = newgrad.getAttribute('y2');
                  newgrad.setAttribute('y1', -(y1 - 1));
                  newgrad.setAttribute('y2', -(y2 - 1));
                }
                newgrad.id = editorContext_.getDrawing().getNextId();
                svgedit.utilities.findDefs().appendChild(newgrad);
                selected.setAttribute(type, 'url(#' + newgrad.id + ')');
              }
        
              // Not really working :(
        //      if (selected.tagName === 'path') {
        //        reorientGrads(selected, m);
        //      }
            }
          }
        
          var elName = selected.tagName;
          var chlist, mt;
          if (elName === 'g' || elName === 'text' || elName == 'tspan' || elName === 'use') {
            // if it was a translate, then just update x,y
            if (m.a == 1 && m.b == 0 && m.c == 0 && m.d == 1 && (m.e != 0 || m.f != 0) ) {
              // [T][M] = [M][T']
              // therefore [T'] = [M_inv][T][M]
              var existing = svgedit.math.transformListToTransform(selected).matrix,
                  t_new = svgedit.math.matrixMultiply(existing.inverse(), m, existing);
              changes.x = parseFloat(changes.x) + t_new.e;
              changes.y = parseFloat(changes.y) + t_new.f;
            } else {
              // we just absorb all matrices into the element and don't do any remapping
              chlist = svgedit.transformlist.getTransformList(selected);
              mt = svgroot.createSVGTransform();
              mt.setMatrix(svgedit.math.matrixMultiply(svgedit.math.transformListToTransform(chlist).matrix, m));
              chlist.clear();
              chlist.appendItem(mt);
            }
          }
          var c, pt, pt1, pt2, len;
          // now we have a set of changes and an applied reduced transform list
          // we apply the changes directly to the DOM
          switch (elName) {
            case 'foreignObject':
            case 'rect':
            case 'image':
              // Allow images to be inverted (give them matrix when flipped)
              if (elName === 'image' && (m.a < 0 || m.d < 0)) {
                // Convert to matrix
                chlist = svgedit.transformlist.getTransformList(selected);
                mt = svgroot.createSVGTransform();
                mt.setMatrix(svgedit.math.matrixMultiply(svgedit.math.transformListToTransform(chlist).matrix, m));
                chlist.clear();
                chlist.appendItem(mt);
              } else {
                pt1 = remap(changes.x, changes.y);
                changes.width = scalew(changes.width);
                changes.height = scaleh(changes.height);
                changes.x = pt1.x + Math.min(0, changes.width);
                changes.y = pt1.y + Math.min(0, changes.height);
                changes.width = Math.abs(changes.width);
                changes.height = Math.abs(changes.height);
              }
              finishUp();
              break;
            case 'ellipse':
              c = remap(changes.cx, changes.cy);
              changes.cx = c.x;
              changes.cy = c.y;
              changes.rx = scalew(changes.rx);
              changes.ry = scaleh(changes.ry);
              changes.rx = Math.abs(changes.rx);
              changes.ry = Math.abs(changes.ry);
              finishUp();
              break;
            case 'circle':
              c = remap(changes.cx,changes.cy);
              changes.cx = c.x;
              changes.cy = c.y;
              // take the minimum of the new selected box's dimensions for the new circle radius
              var tbox = svgedit.math.transformBox(box.x, box.y, box.width, box.height, m);
              var w = tbox.tr.x - tbox.tl.x, h = tbox.bl.y - tbox.tl.y;
              changes.r = Math.min(w/2, h/2);
        
              if (changes.r) {changes.r = Math.abs(changes.r);}
              finishUp();
              break;
            case 'line':
              pt1 = remap(changes.x1, changes.y1);
              pt2 = remap(changes.x2, changes.y2);
              changes.x1 = pt1.x;
              changes.y1 = pt1.y;
              changes.x2 = pt2.x;
              changes.y2 = pt2.y;
              // deliberately fall through here
            case 'text':
            case 'tspan':
            case 'use':
              finishUp();
              break;
            case 'g':
              var gsvg = $(selected).data('gsvg');
              if (gsvg) {
                  svgedit.utilities.assignAttributes(gsvg, changes, 1000, true);
              }
              break;
            case 'polyline':
            case 'polygon':
              len = changes.points.length;
              for (i = 0; i < len; ++i) {
                pt = changes.points[i];
                pt = remap(pt.x, pt.y);
                changes.points[i].x = pt.x;
                changes.points[i].y = pt.y;
              }
        
              len = changes.points.length;
              var pstr = '';
              for (i = 0; i < len; ++i) {
                pt = changes.points[i];
                pstr += pt.x + ',' + pt.y + ' ';
              }
              selected.setAttribute('points', pstr);
              break;
            case 'path':
              var seg;
              var segList = selected.pathSegList;
              len = segList.numberOfItems;
              changes.d = [];
              for (i = 0; i < len; ++i) {
                  seg = segList.getItem(i);
                  changes.d[i] = {
                      type: seg.pathSegType,
                      x: seg.x,
                      y: seg.y,
                      x1: seg.x1,
                      y1: seg.y1,
                      x2: seg.x2,
                      y2: seg.y2,
                      r1: seg.r1,
                      r2: seg.r2,
                      angle: seg.angle,
                      largeArcFlag: seg.largeArcFlag,
                      sweepFlag: seg.sweepFlag
                  };
              }
        
              len = changes.d.length;
              var firstseg = changes.d[0],
                  currentpt = remap(firstseg.x, firstseg.y);
              changes.d[0].x = currentpt.x;
              changes.d[0].y = currentpt.y;
              for (i = 1; i < len; ++i) {
                seg = changes.d[i];
                type = seg.type;
                // if absolute or first segment, we want to remap x, y, x1, y1, x2, y2
                // if relative, we want to scalew, scaleh
                if (type % 2 == 0) { // absolute
                  var thisx = (seg.x != undefined) ? seg.x : currentpt.x, // for V commands
                      thisy = (seg.y != undefined) ? seg.y : currentpt.y; // for H commands
                  pt = remap(thisx,thisy);
                  pt1 = remap(seg.x1, seg.y1);
                  pt2 = remap(seg.x2, seg.y2);
                  seg.x = pt.x;
                  seg.y = pt.y;
                  seg.x1 = pt1.x;
                  seg.y1 = pt1.y;
                  seg.x2 = pt2.x;
                  seg.y2 = pt2.y;
                  seg.r1 = scalew(seg.r1);
                  seg.r2 = scaleh(seg.r2);
                }
                else { // relative
                  seg.x = scalew(seg.x);
                  seg.y = scaleh(seg.y);
                  seg.x1 = scalew(seg.x1);
                  seg.y1 = scaleh(seg.y1);
                  seg.x2 = scalew(seg.x2);
                  seg.y2 = scaleh(seg.y2);
                  seg.r1 = scalew(seg.r1);
                  seg.r2 = scaleh(seg.r2);
                }
              } // for each segment
        
              var dstr = '';
              len = changes.d.length;
              for (i = 0; i < len; ++i) {
                seg = changes.d[i];
                type = seg.type;
                dstr += pathMap[type];
                switch (type) {
                    case 13: // relative horizontal line (h)
                    case 12: // absolute horizontal line (H)
                        dstr += seg.x + ' ';
                        break;
                    case 15: // relative vertical line (v)
                    case 14: // absolute vertical line (V)
                        dstr += seg.y + ' ';
                        break;
                    case 3: // relative move (m)
                    case 5: // relative line (l)
                    case 19: // relative smooth quad (t)
                    case 2: // absolute move (M)
                    case 4: // absolute line (L)
                    case 18: // absolute smooth quad (T)
                        dstr += seg.x + ',' + seg.y + ' ';
                        break;
                    case 7: // relative cubic (c)
                    case 6: // absolute cubic (C)
                        dstr += seg.x1 + ',' + seg.y1 + ' ' + seg.x2 + ',' + seg.y2 + ' ' +
                             seg.x + ',' + seg.y + ' ';
                        break;
                    case 9: // relative quad (q) 
                    case 8: // absolute quad (Q)
                        dstr += seg.x1 + ',' + seg.y1 + ' ' + seg.x + ',' + seg.y + ' ';
                        break;
                    case 11: // relative elliptical arc (a)
                    case 10: // absolute elliptical arc (A)
                        dstr += seg.r1 + ',' + seg.r2 + ' ' + seg.angle + ' ' + (+seg.largeArcFlag) +
                            ' ' + (+seg.sweepFlag) + ' ' + seg.x + ',' + seg.y + ' ';
                        break;
                    case 17: // relative smooth cubic (s)
                    case 16: // absolute smooth cubic (S)
                        dstr += seg.x2 + ',' + seg.y2 + ' ' + seg.x + ',' + seg.y + ' ';
                        break;
                  }
              }
        
              selected.setAttribute('d', dstr);
              break;
            }
        };
        
        }());
        
      • draw.js
        /*globals $, svgedit*/
        /*jslint vars: true, eqeq: true, todo: true*/
        /**
         * Package: svgedit.draw
         *
         * Licensed under the MIT License
         *
         * Copyright(c) 2011 Jeff Schiller
         */
        
        // Dependencies:
        // 1) jQuery
        // 2) browser.js
        // 3) svgutils.js
        
        (function() {'use strict';
        
        if (!svgedit.draw) {
        	svgedit.draw = {};
        }
        // alias
        var NS = svgedit.NS;
        
        var visElems = 'a,circle,ellipse,foreignObject,g,image,line,path,polygon,polyline,rect,svg,text,tspan,use'.split(',');
        
        var RandomizeModes = {
        	LET_DOCUMENT_DECIDE: 0,
        	ALWAYS_RANDOMIZE: 1,
        	NEVER_RANDOMIZE: 2
        };
        var randomize_ids = RandomizeModes.LET_DOCUMENT_DECIDE;
        
        /**
         * This class encapsulates the concept of a layer in the drawing
         * @param {String} name - Layer name
         * @param {SVGGElement} child - Layer SVG group.
         */
        svgedit.draw.Layer = function(name, group) {
        	this.name_ = name;
        	this.group_ = group;
        };
        
        /**
         * @returns {string} The layer name
         */
        svgedit.draw.Layer.prototype.getName = function() {
        	return this.name_;
        };
        
        /**
         * @returns {SVGGElement} The layer SVG group
         */
        svgedit.draw.Layer.prototype.getGroup = function() {
        	return this.group_;
        };
        
        
        /**
         * Called to ensure that drawings will or will not have randomized ids.
         * The currentDrawing will have its nonce set if it doesn't already.
         * @param {boolean} enableRandomization - flag indicating if documents should have randomized ids
         * @param {svgedit.draw.Drawing} currentDrawing
         */
        svgedit.draw.randomizeIds = function(enableRandomization, currentDrawing) {
        	randomize_ids = enableRandomization === false ?
        		RandomizeModes.NEVER_RANDOMIZE :
        		RandomizeModes.ALWAYS_RANDOMIZE;
        
        	if (randomize_ids == RandomizeModes.ALWAYS_RANDOMIZE && !currentDrawing.getNonce()) {
        		currentDrawing.setNonce(Math.floor(Math.random() * 100001));
        	} else if (randomize_ids == RandomizeModes.NEVER_RANDOMIZE && currentDrawing.getNonce()) {
        		currentDrawing.clearNonce();
        	}
        };
        
        /**
         * This class encapsulates the concept of a SVG-edit drawing
         * @param {SVGSVGElement} svgElem - The SVG DOM Element that this JS object
         *     encapsulates.  If the svgElem has a se:nonce attribute on it, then
         *     IDs will use the nonce as they are generated.
         * @param {String=svg_} [opt_idPrefix] - The ID prefix to use.
         */
        svgedit.draw.Drawing = function(svgElem, opt_idPrefix) {
        	if (!svgElem || !svgElem.tagName || !svgElem.namespaceURI ||
        		svgElem.tagName != 'svg' || svgElem.namespaceURI != NS.SVG) {
        		throw "Error: svgedit.draw.Drawing instance initialized without a <svg> element";
        	}
        
        	/**
        	 * The SVG DOM Element that represents this drawing.
        	 * @type {SVGSVGElement}
        	 */
        	this.svgElem_ = svgElem;
        	
        	/**
        	 * The latest object number used in this drawing.
        	 * @type {number}
        	 */
        	this.obj_num = 0;
        	
        	/**
        	 * The prefix to prepend to each element id in the drawing.
        	 * @type {String}
        	 */
        	this.idPrefix = opt_idPrefix || "svg_";
        	
        	/**
        	 * An array of released element ids to immediately reuse.
        	 * @type {Array.<number>}
        	 */
        	this.releasedNums = [];
        
        	/**
        	 * The z-ordered array of tuples containing layer names and <g> elements.
        	 * The first layer is the one at the bottom of the rendering.
        	 * TODO: Turn this into an Array.<Layer>
        	 * @type {Array.<Array.<String, SVGGElement>>}
        	 */
        	this.all_layers = [];
        
        	/**
        	 * The current layer being used.
        	 * TODO: Make this a {Layer}.
        	 * @type {SVGGElement}
        	 */
        	this.current_layer = null;
        
        	/**
        	 * The nonce to use to uniquely identify elements across drawings.
        	 * @type {!String}
        	 */
        	this.nonce_ = '';
        	var n = this.svgElem_.getAttributeNS(NS.SE, 'nonce');
        	// If already set in the DOM, use the nonce throughout the document
        	// else, if randomizeIds(true) has been called, create and set the nonce.
        	if (!!n && randomize_ids != RandomizeModes.NEVER_RANDOMIZE) {
        		this.nonce_ = n;
        	} else if (randomize_ids == RandomizeModes.ALWAYS_RANDOMIZE) {
        		this.setNonce(Math.floor(Math.random() * 100001));
        	}
        };
        
        /**
         * @param {string} id Element ID to retrieve
         * @returns {Element} SVG element within the root SVGSVGElement
        */
        svgedit.draw.Drawing.prototype.getElem_ = function (id) {
        	if (this.svgElem_.querySelector) {
        		// querySelector lookup
        		return this.svgElem_.querySelector('#' + id);
        	}
        	// jQuery lookup: twice as slow as xpath in FF
        	return $(this.svgElem_).find('[id=' + id + ']')[0];
        };
        
        /**
         * @returns {SVGSVGElement}
         */
        svgedit.draw.Drawing.prototype.getSvgElem = function () {
        	return this.svgElem_;
        };
        
        /**
         * @returns {!string|number} The previously set nonce
         */
        svgedit.draw.Drawing.prototype.getNonce = function() {
        	return this.nonce_;
        };
        
        /**
         * @param {!string|number} n The nonce to set
         */
        svgedit.draw.Drawing.prototype.setNonce = function(n) {
        	this.svgElem_.setAttributeNS(NS.XMLNS, 'xmlns:se', NS.SE);
        	this.svgElem_.setAttributeNS(NS.SE, 'se:nonce', n);
        	this.nonce_ = n;
        };
        
        /**
         * Clears any previously set nonce
         */
        svgedit.draw.Drawing.prototype.clearNonce = function () {
        	// We deliberately leave any se:nonce attributes alone,
        	// we just don't use it to randomize ids.
        	this.nonce_ = '';
        };
        
        /**
         * Returns the latest object id as a string.
         * @return {String} The latest object Id.
         */
        svgedit.draw.Drawing.prototype.getId = function () {
        	return this.nonce_ ?
        		this.idPrefix + this.nonce_ + '_' + this.obj_num :
        		this.idPrefix + this.obj_num;
        };
        
        /**
         * Returns the next object Id as a string.
         * @return {String} The next object Id to use.
         */
        svgedit.draw.Drawing.prototype.getNextId = function () {
        	var oldObjNum = this.obj_num;
        	var restoreOldObjNum = false;
        
        	// If there are any released numbers in the release stack, 
        	// use the last one instead of the next obj_num.
        	// We need to temporarily use obj_num as that is what getId() depends on.
        	if (this.releasedNums.length > 0) {
        		this.obj_num = this.releasedNums.pop();
        		restoreOldObjNum = true;
        	} else {
        		// If we are not using a released id, then increment the obj_num.
        		this.obj_num++;
        	}
        
        	// Ensure the ID does not exist.
        	var id = this.getId();
        	while (this.getElem_(id)) {
        		if (restoreOldObjNum) {
        			this.obj_num = oldObjNum;
        			restoreOldObjNum = false;
        		}
        		this.obj_num++;
        		id = this.getId();
        	}
        	// Restore the old object number if required.
        	if (restoreOldObjNum) {
        		this.obj_num = oldObjNum;
        	}
        	return id;
        };
        
        /**
         * Releases the object Id, letting it be used as the next id in getNextId().
         * This method DOES NOT remove any elements from the DOM, it is expected
         * that client code will do this.
         * @param {string} id - The id to release.
         * @returns {boolean} True if the id was valid to be released, false otherwise.
        */
        svgedit.draw.Drawing.prototype.releaseId = function (id) {
        	// confirm if this is a valid id for this Document, else return false
        	var front = this.idPrefix + (this.nonce_ ? this.nonce_ + '_' : '');
        	if (typeof id !== 'string' || id.indexOf(front) !== 0) {
        		return false;
        	}
        	// extract the obj_num of this id
        	var num = parseInt(id.substr(front.length), 10);
        
        	// if we didn't get a positive number or we already released this number
        	// then return false.
        	if (typeof num !== 'number' || num <= 0 || this.releasedNums.indexOf(num) != -1) {
        		return false;
        	}
        	
        	// push the released number into the released queue
        	this.releasedNums.push(num);
        
        	return true;
        };
        
        /**
         * Returns the number of layers in the current drawing.
         * @returns {integer} The number of layers in the current drawing.
        */
        svgedit.draw.Drawing.prototype.getNumLayers = function() {
        	return this.all_layers.length;
        };
        
        /**
         * Check if layer with given name already exists
         * @param {string} name - The layer name to check
        */
        svgedit.draw.Drawing.prototype.hasLayer = function (name) {
        	var i;
        	for (i = 0; i < this.getNumLayers(); i++) {
        		if(this.all_layers[i][0] == name) {return true;}
        	}
        	return false;
        };
        
        
        /**
         * Returns the name of the ith layer. If the index is out of range, an empty string is returned.
         * @param {integer} i - The zero-based index of the layer you are querying.
         * @returns {string} The name of the ith layer (or the empty string if none found)
        */
        svgedit.draw.Drawing.prototype.getLayerName = function (i) {
        	if (i >= 0 && i < this.getNumLayers()) {
        		return this.all_layers[i][0];
        	}
        	return '';
        };
        
        /**
         * @returns {SVGGElement} The SVGGElement representing the current layer.
         */
        svgedit.draw.Drawing.prototype.getCurrentLayer = function() {
        	return this.current_layer;
        };
        
        /**
         * Returns the name of the currently selected layer. If an error occurs, an empty string 
         * is returned.
         * @returns The name of the currently active layer (or the empty string if none found).
        */
        svgedit.draw.Drawing.prototype.getCurrentLayerName = function () {
        	var i;
        	for (i = 0; i < this.getNumLayers(); ++i) {
        		if (this.all_layers[i][1] == this.current_layer) {
        			return this.getLayerName(i);
        		}
        	}
        	return '';
        };
        
        /**
         * Sets the current layer. If the name is not a valid layer name, then this
         * function returns false. Otherwise it returns true. This is not an
         * undo-able action.
         * @param {string} name - The name of the layer you want to switch to.
         * @returns {boolean} true if the current layer was switched, otherwise false
         */
        svgedit.draw.Drawing.prototype.setCurrentLayer = function(name) {
        	var i;
        	for (i = 0; i < this.getNumLayers(); ++i) {
        		if (name == this.getLayerName(i)) {
        			if (this.current_layer != this.all_layers[i][1]) {
        				this.current_layer.setAttribute("style", "pointer-events:none");
        				this.current_layer = this.all_layers[i][1];
        				this.current_layer.setAttribute("style", "pointer-events:all");
        			}
        			return true;
        		}
        	}
        	return false;
        };
        
        
        /**
         * Deletes the current layer from the drawing and then clears the selection.
         * This function then calls the 'changed' handler.  This is an undoable action.
         * @returns {SVGGElement} The SVGGElement of the layer removed or null.
         */
        svgedit.draw.Drawing.prototype.deleteCurrentLayer = function() {
        	if (this.current_layer && this.getNumLayers() > 1) {
        		// actually delete from the DOM and return it
        		var parent = this.current_layer.parentNode;
        		var nextSibling = this.current_layer.nextSibling;
        		var oldLayerGroup = parent.removeChild(this.current_layer);
        		this.identifyLayers();
        		return oldLayerGroup;
        	}
        	return null;
        };
        
        /**
         * Updates layer system and sets the current layer to the
         * top-most layer (last <g> child of this drawing).
        */
        svgedit.draw.Drawing.prototype.identifyLayers = function() {
        	this.all_layers = [];
        	var numchildren = this.svgElem_.childNodes.length;
        	// loop through all children of SVG element
        	var orphans = [], layernames = [];
        	var a_layer = null;
        	var childgroups = false;
        	var i;
        	for (i = 0; i < numchildren; ++i) {
        		var child = this.svgElem_.childNodes.item(i);
        		// for each g, find its layer name
        		if (child && child.nodeType == 1) {
        			if (child.tagName == "g") {
        				childgroups = true;
        				var name = $("title", child).text();
        
        				// Hack for Opera 10.60
        				if(!name && svgedit.browser.isOpera() && child.querySelectorAll) {
        					name = $(child.querySelectorAll('title')).text();
        				}
        
        				// store layer and name in global variable
        				if (name) {
        					layernames.push(name);
        					this.all_layers.push( [name, child] );
        					a_layer = child;
        					svgedit.utilities.walkTree(child, function(e){e.setAttribute("style", "pointer-events:inherit");});
        					a_layer.setAttribute("style", "pointer-events:none");
        				}
        				// if group did not have a name, it is an orphan
        				else {
        					orphans.push(child);
        				}
        			}
        			// if child has is "visible" (i.e. not a <title> or <defs> element), then it is an orphan
        			else if(~visElems.indexOf(child.nodeName)) {
        				var bb = svgedit.utilities.getBBox(child);
        				orphans.push(child);
        			}
        		}
        	}
        	
        	// create a new layer and add all the orphans to it
        	var svgdoc = this.svgElem_.ownerDocument;
        	if (orphans.length > 0 || !childgroups) {
        		i = 1;
        		// TODO(codedread): What about internationalization of "Layer"?
        		while (layernames.indexOf(("Layer " + i)) >= 0) { i++; }
        		var newname = "Layer " + i;
        		a_layer = svgdoc.createElementNS(NS.SVG, "g");
        		var layer_title = svgdoc.createElementNS(NS.SVG, "title");
        		layer_title.textContent = newname;
        		a_layer.appendChild(layer_title);
        		var j;
        		for (j = 0; j < orphans.length; ++j) {
        			a_layer.appendChild(orphans[j]);
        		}
        		this.svgElem_.appendChild(a_layer);
        		this.all_layers.push( [newname, a_layer] );
        	}
        	svgedit.utilities.walkTree(a_layer, function(e){e.setAttribute("style", "pointer-events:inherit");});
        	this.current_layer = a_layer;
        	this.current_layer.setAttribute("style", "pointer-events:all");
        };
        
        /**
         * Creates a new top-level layer in the drawing with the given name and 
         * sets the current layer to it.
         * @param {string} name - The given name
         * @returns {SVGGElement} The SVGGElement of the new layer, which is
         * also the current layer of this drawing.
        */
        svgedit.draw.Drawing.prototype.createLayer = function(name) {
        	var svgdoc = this.svgElem_.ownerDocument;
        	var new_layer = svgdoc.createElementNS(NS.SVG, "g");
        	var layer_title = svgdoc.createElementNS(NS.SVG, "title");
        	layer_title.textContent = name;
        	new_layer.appendChild(layer_title);
        	this.svgElem_.appendChild(new_layer);
        	this.identifyLayers();
        	return new_layer;
        };
        
        /**
         * Returns whether the layer is visible.  If the layer name is not valid,
         * then this function returns false.
         * @param {string} layername - The name of the layer which you want to query.
         * @returns {boolean} The visibility state of the layer, or false if the layer name was invalid.
        */
        svgedit.draw.Drawing.prototype.getLayerVisibility = function(layername) {
        	// find the layer
        	var layer = null;
        	var i;
        	for (i = 0; i < this.getNumLayers(); ++i) {
        		if (this.getLayerName(i) == layername) {
        			layer = this.all_layers[i][1];
        			break;
        		}
        	}
        	if (!layer) {return false;}
        	return (layer.getAttribute('display') !== 'none');
        };
        
        /**
         * Sets the visibility of the layer. If the layer name is not valid, this
         * function returns false, otherwise it returns true. This is an
         * undo-able action.
         * @param {string} layername - The name of the layer to change the visibility
         * @param {boolean} bVisible - Whether the layer should be visible
         * @returns {?SVGGElement} The SVGGElement representing the layer if the
         *   layername was valid, otherwise null.
        */
        svgedit.draw.Drawing.prototype.setLayerVisibility = function(layername, bVisible) {
        	if (typeof bVisible !== 'boolean') {
        		return null;
        	}
        	// find the layer
        	var layer = null;
        	var i;
        	for (i = 0; i < this.getNumLayers(); ++i) {
        		if (this.getLayerName(i) == layername) {
        			layer = this.all_layers[i][1];
        			break;
        		}
        	}
        	if (!layer) {return null;}
        	
        	var oldDisplay = layer.getAttribute("display");
        	if (!oldDisplay) {oldDisplay = "inline";}
        	layer.setAttribute("display", bVisible ? "inline" : "none");
        	return layer;
        };
        
        
        /**
         * Returns the opacity of the given layer.  If the input name is not a layer, null is returned.
         * @param {string} layername - name of the layer on which to get the opacity
         * @returns {?number} The opacity value of the given layer.  This will be a value between 0.0 and 1.0, or null
         * if layername is not a valid layer
        */
        svgedit.draw.Drawing.prototype.getLayerOpacity = function(layername) {
        	var i;
        	for (i = 0; i < this.getNumLayers(); ++i) {
        		if (this.getLayerName(i) == layername) {
        			var g = this.all_layers[i][1];
        			var opacity = g.getAttribute('opacity');
        			if (!opacity) {
        				opacity = '1.0';
        			}
        			return parseFloat(opacity);
        		}
        	}
        	return null;
        };
        
        /**
         * Sets the opacity of the given layer.  If the input name is not a layer,
         * nothing happens. If opacity is not a value between 0.0 and 1.0, then
         * nothing happens.
         * @param {string} layername - Name of the layer on which to set the opacity
         * @param {number} opacity - A float value in the range 0.0-1.0
        */
        svgedit.draw.Drawing.prototype.setLayerOpacity = function(layername, opacity) {
        	if (typeof opacity !== 'number' || opacity < 0.0 || opacity > 1.0) {
        		return;
        	}
        	var i;
        	for (i = 0; i < this.getNumLayers(); ++i) {
        		if (this.getLayerName(i) == layername) {
        			var g = this.all_layers[i][1];
        			g.setAttribute("opacity", opacity);
        			break;
        		}
        	}
        };
        
        }());
        
      • embedapi-dom.js
        /*globals $, EmbeddedSVGEdit*/
        /*jslint vars: true */
        var initEmbed;
        
        // Todo: Get rid of frame.contentWindow dependencies so can be more easily adjusted to work cross-domain
        
        $(function () {'use strict';
            
            var svgCanvas = null;
            var frame;
        
            initEmbed = function () {
                var doc, mainButton;
                svgCanvas = new EmbeddedSVGEdit(frame);
                // Hide main button, as we will be controlling new, load, save, etc. from the host document
                doc = frame.contentDocument || frame.contentWindow.document;
                mainButton = doc.getElementById('main_button');
                mainButton.style.display = 'none';
            };
        
            function handleSvgData(data, error) {
                if (error) {
                    alert('error ' + error);
                } else {
                    alert('Congratulations. Your SVG string is back in the host page, do with it what you will\n\n' + data);
                }
            }
        
            function loadSvg() {
                var svgexample = '<svg width="640" height="480" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"><g><title>Layer 1</title><rect stroke-width="5" stroke="#000000" fill="#FF0000" id="svg_1" height="35" width="51" y="35" x="32"/><ellipse ry="15" rx="24" stroke-width="5" stroke="#000000" fill="#0000ff" id="svg_2" cy="60" cx="66"/></g></svg>';
                svgCanvas.setSvgString(svgexample);
            }
        
            function saveSvg() {
                svgCanvas.getSvgString()(handleSvgData);
            }
            
            function exportPNG() {
                var str = frame.contentWindow.svgEditor.uiStrings.notification.loadingImage;
        
                var exportWindow = window.open(
                    'data:text/html;charset=utf-8,' + encodeURIComponent('<title>' + str + '</title><h1>' + str + '</h1>'),
                    'svg-edit-exportWindow'
                );
                svgCanvas.rasterExport('PNG', null, exportWindow.name);
            }
            
            function exportPDF() {
                var str = frame.contentWindow.svgEditor.uiStrings.notification.loadingImage;
                
        		/**
                // If you want to handle the PDF blob yourself, do as follows
        		svgCanvas.bind('exportedPDF', function (win, data) {
        			alert(data.dataurlstring);
        		});
        		svgCanvas.exportPDF(); // Accepts two args: optionalWindowName supplied back to bound exportPDF handler and optionalOutputType (defaults to dataurlstring)
                return;
                */
        		
                var exportWindow = window.open(
                    'data:text/html;charset=utf-8,' + encodeURIComponent('<title>' + str + '</title><h1>' + str + '</h1>'),
                    'svg-edit-exportWindow'
                );
        		svgCanvas.exportPDF(exportWindow.name);
            }
            
            // Add event handlers
            $('#load').click(loadSvg);
            $('#save').click(saveSvg);
            $('#exportPNG').click(exportPNG);
            $('#exportPDF').click(exportPDF);
            $('body').append(
                $('<iframe src="svg-editor.html?extensions=ext-xdomain-messaging.js' +
                    window.location.href.replace(/\?(.*)$/, '&$1') + // Append arguments to this file onto the iframe
                    '" width="900px" height="600px" id="svgedit" onload="initEmbed();"></iframe>'
                )
            );
            frame = document.getElementById('svgedit');
        });
        
      • embedapi.html
        <!DOCTYPE html>
        <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <meta charset="utf-8" />
            <title>Embed API</title>
            <script src="jquery.js"></script>
            <script src="embedapi.js"></script>
            <script src="embedapi-dom.js"></script>
        </head>
        <body>
            <button id="load">Load example</button>
            <button id="save">Save data</button>
            <button id="exportPNG">Export data to PNG</button>
            <button id="exportPDF">Export data to PDF</button>
            <br/>
        </body>
        </html>
        
      • embedapi.js
        /*
        Embedded SVG-edit API
        
        General usage:
        - Have an iframe somewhere pointing to a version of svg-edit > r1000
        - Initialize the magic with:
        var svgCanvas = new EmbeddedSVGEdit(window.frames.svgedit);
        - Pass functions in this format:
        svgCanvas.setSvgString('string')
        - Or if a callback is needed:
        svgCanvas.setSvgString('string')(function(data, error){
          if (error){
        	// There was an error
          } else{
        	// Handle data
          }
        })
        
        Everything is done with the same API as the real svg-edit,
        and all documentation is unchanged.
        
        However, this file depends on the postMessage API which
        can only support JSON-serializable arguments and
        return values, so, for example, arguments whose value is
        'undefined', a function, a non-finite number, or a built-in
        object like Date(), RegExp(), etc. will most likely not behave
        as expected. In such a case one may need to host
        the SVG editor on the same domain and reference the
        JavaScript methods on the frame itself.
        
        The only other difference is
        when handling returns: the callback notation is used instead.
        
        var blah = new EmbeddedSVGEdit(window.frames.svgedit);
        blah.clearSelection('woot', 'blah', 1337, [1, 2, 3, 4, 5, 'moo'], -42, {a: 'tree',b:6, c: 9})(function(){console.log('GET DATA',arguments)})
        */
        
        (function () {'use strict';
        
        var cbid = 0;
        
        function getCallbackSetter (d) {
          return function () {
        	var t = this, // New callback
        	  args = [].slice.call(arguments),
        	  cbid = t.send(d, args, function(){});  // The callback (currently it's nothing, but will be set later)
        
        	return function(newcallback){
        	  t.callbacks[cbid] = newcallback; // Set callback
        	};
          };
        }
        
        /*
        * Having this separate from messageListener allows us to
        * avoid using JSON parsing (and its limitations) in the case
        * of same domain control
        */
        function addCallback (t, data) {
          var result = data.result || data.error,
        	cbid = data.id;
          if (t.callbacks[cbid]) {
        	if (data.result) {
        	  t.callbacks[cbid](result);
        	} else {
        	  t.callbacks[cbid](result, 'error');
        	}
          }
        }
        
        function messageListener (e) {
          // We accept and post strings as opposed to objects for the sake of IE9 support; this
          //   will most likely be changed in the future
          if (typeof e.data !== 'string') {
        	return;
          }
          var allowedOrigins = this.allowedOrigins,
        	data = e.data && JSON.parse(e.data);
          if (!data || typeof data !== 'object' || data.namespace !== 'svg-edit' ||
        	  e.source !== this.frame.contentWindow ||
        	  (allowedOrigins.indexOf('*') === -1 && allowedOrigins.indexOf(e.origin) === -1)
          ) {
        	return;
          }
          addCallback(this, data);
        }
        
        function getMessageListener (t) {
        	return function (e) {
        		messageListener.call(t, e);
        	};
        }
        
        /**
        * @param {HTMLIFrameElement} frame
        * @param {array} [allowedOrigins=[]] Array of origins from which incoming
        *	 messages will be allowed when same origin is not used; defaults to none.
        *	 If supplied, it should probably be the same as svgEditor's allowedOrigins
        */
        function EmbeddedSVGEdit (frame, allowedOrigins) {
          if (!(this instanceof EmbeddedSVGEdit)) { // Allow invocation without 'new' keyword
        	return new EmbeddedSVGEdit(frame);
          }
          this.allowedOrigins = allowedOrigins || [];
          // Initialize communication
          this.frame = frame;
          this.callbacks = {};
          // List of functions extracted with this:
          // Run in firebug on http://svg-edit.googlecode.com/svn/trunk/docs/files/svgcanvas-js.html
        
          // for (var i=0,q=[],f = document.querySelectorAll('div.CFunction h3.CTitle a'); i < f.length; i++) { q.push(f[i].name); }; q
          // var functions = ['clearSelection', 'addToSelection', 'removeFromSelection', 'open', 'save', 'getSvgString', 'setSvgString',
          // 'createLayer', 'deleteCurrentLayer', 'setCurrentLayer', 'renameCurrentLayer', 'setCurrentLayerPosition', 'setLayerVisibility',
          // 'moveSelectedToLayer', 'clear'];
        
          // Newer, well, it extracts things that aren't documented as well. All functions accessible through the normal thingy can now be accessed though the API
          // var svgCanvas = frame.contentWindow.svgCanvas;
          // var l = []; for (var i in svgCanvas){ if (typeof svgCanvas[i] == 'function') { l.push(i);} };
          // alert("['" + l.join("', '") + "']");
          // Run in svgedit itself
          var i,
        	functions = [
        		'clearSvgContentElement', 'setIdPrefix', 'getCurrentDrawing', 'addSvgElementFromJson', 'getTransformList', 'matrixMultiply', 'hasMatrixTransform', 'transformListToTransform', 'convertToNum', 'findDefs', 'getUrlFromAttr', 'getHref', 'setHref', 'getBBox', 'getRotationAngle', 'getElem', 'getRefElem', 'assignAttributes', 'cleanupElement', 'remapElement', 'recalculateDimensions', 'sanitizeSvg', 'runExtensions', 'addExtension', 'round', 'getIntersectionList', 'getStrokedBBox', 'getVisibleElements', 'getVisibleElementsAndBBoxes', 'groupSvgElem', 'getId', 'getNextId', 'call', 'bind', 'prepareSvg', 'setRotationAngle', 'recalculateAllSelectedDimensions', 'clearSelection', 'addToSelection', 'selectOnly', 'removeFromSelection', 'selectAllInCurrentLayer', 'getMouseTarget', 'removeUnusedDefElems', 'svgCanvasToString', 'svgToString', 'embedImage', 'setGoodImage', 'open', 'save', 'rasterExport', 'exportPDF', 'getSvgString', 'randomizeIds', 'uniquifyElems', 'setUseData', 'convertGradients', 'convertToGroup', 'setSvgString', 'importSvgString', 'identifyLayers', 'createLayer', 'cloneLayer', 'deleteCurrentLayer', 'setCurrentLayer', 'renameCurrentLayer', 'setCurrentLayerPosition', 'setLayerVisibility', 'moveSelectedToLayer', 'mergeLayer', 'mergeAllLayers', 'leaveContext', 'setContext', 'clear', 'linkControlPoints', 'getContentElem', 'getRootElem', 'getSelectedElems', 'getResolution', 'getZoom', 'getVersion', 'setUiStrings', 'setConfig', 'getTitle', 'setGroupTitle', 'getDocumentTitle', 'setDocumentTitle', 'getEditorNS', 'setResolution', 'getOffset', 'setBBoxZoom', 'setZoom', 'getMode', 'setMode', 'getColor', 'setColor', 'setGradient', 'setPaint', 'setStrokePaint', 'setFillPaint', 'getStrokeWidth', 'setStrokeWidth', 'setStrokeAttr', 'getStyle', 'getOpacity', 'setOpacity', 'getFillOpacity', 'getStrokeOpacity', 'setPaintOpacity', 'getPaintOpacity', 'getBlur', 'setBlurNoUndo', 'setBlurOffsets', 'setBlur', 'getBold', 'setBold', 'getItalic', 'setItalic', 'getFontFamily', 'setFontFamily', 'setFontColor', 'getFontColor', 'getFontSize', 'setFontSize', 'getText', 'setTextContent', 'setImageURL', 'setLinkURL', 'setRectRadius', 'makeHyperlink', 'removeHyperlink', 'setSegType', 'convertToPath', 'changeSelectedAttribute', 'deleteSelectedElements', 'cutSelectedElements', 'copySelectedElements', 'pasteElements', 'groupSelectedElements', 'pushGroupProperties', 'ungroupSelectedElement', 'moveToTopSelectedElement', 'moveToBottomSelectedElement', 'moveUpDownSelected', 'moveSelectedElements', 'cloneSelectedElements', 'alignSelectedElements', 'updateCanvas', 'setBackground', 'cycleElement', 'getPrivateMethods', 'zoomChanged', 'ready'
        	];
        
          // TODO: rewrite the following, it's pretty scary.
          for (i = 0; i < functions.length; i++) {
        	this[functions[i]] = getCallbackSetter(functions[i]);
          }
         
          // Older IE may need a polyfill for addEventListener, but so it would for SVG
          window.addEventListener('message', getMessageListener(this), false);
        }
        
        EmbeddedSVGEdit.prototype.send = function (name, args, callback){
          var t = this;
          cbid++;
        
          this.callbacks[cbid] = callback;
          setTimeout((function (cbid) {
        	return function () { // Delay for the callback to be set in case its synchronous
        		/*
        		* Todo: Handle non-JSON arguments and return values (undefined,
        		*   nonfinite numbers, functions, and built-in objects like Date,
        		*   RegExp), etc.? Allow promises instead of callbacks? Review
        		*   SVG-Edit functions for whether JSON-able parameters can be
        		*   made compatile with all API functionality
        		*/
        		// We accept and post strings for the sake of IE9 support
        		if (window.location.origin === t.frame.contentWindow.location.origin) {
        		  // Although we do not really need this API if we are working same
        		  //  domain, it could allow us to write in a way that would work
        		  //  cross-domain as well, assuming we stick to the argument limitations
        		  //  of the current JSON-based communication API (e.g., not passing
        		  //  callbacks). We might be able to address these shortcomings; see
        		  //  the todo elsewhere in this file.
        		  var message = {id: cbid},
        			svgCanvas = t.frame.contentWindow.svgCanvas;
        		  try {
        			message.result = svgCanvas[name].apply(svgCanvas, args);
        		  }
        		  catch (err) {
        			message.error = err.message;
        		  }
        		  addCallback(t, message);
        		}
        		else { // Requires the ext-xdomain-messaging.js extension
        		  t.frame.contentWindow.postMessage(JSON.stringify({namespace: 'svgCanvas', id: cbid, name: name, args: args}), '*');
        		}
        	  };
          }(cbid)), 0);
        
          return cbid;
        };
        
        window.embedded_svg_edit = EmbeddedSVGEdit; // Export old, deprecated API
        window.EmbeddedSVGEdit = EmbeddedSVGEdit; // Follows common JS convention of CamelCase and, as enforced in JSLint, of initial caps for constructors
        
        }());
        
      • history.js
        /*globals svgedit*/
        /*jslint vars: true, eqeq: true, continue: true, forin: true*/
        /**
         * Package: svedit.history
         *
         * Licensed under the MIT License
         *
         * Copyright(c) 2010 Jeff Schiller
         */
        
        // Dependencies:
        // 1) jQuery
        // 2) svgtransformlist.js
        // 3) svgutils.js
        
        (function() {'use strict';
        
        if (!svgedit.history) {
        	svgedit.history = {};
        }
        
        // Group: Undo/Redo history management
        svgedit.history.HistoryEventTypes = {
        	BEFORE_APPLY: 'before_apply',
        	AFTER_APPLY: 'after_apply',
        	BEFORE_UNAPPLY: 'before_unapply',
        	AFTER_UNAPPLY: 'after_unapply'
        };
        
        var removedElements = {};
        
        /**
         * An interface that all command objects must implement.
         * @typedef svgedit.history.HistoryCommand
         * @type {object}
         *   void apply(svgedit.history.HistoryEventHandler);
         *   void unapply(svgedit.history.HistoryEventHandler);
         *   Element[] elements();
         *   String getText();
         *
         *   static String type();
         * }
         *
         * Interface: svgedit.history.HistoryEventHandler
         * An interface for objects that will handle history events.
         *
         * interface svgedit.history.HistoryEventHandler {
         *   void handleHistoryEvent(eventType, command);
         * }
         *
         * eventType is a string conforming to one of the HistoryEvent types.
         * command is an object fulfilling the HistoryCommand interface.
         */
        
        /**
         * @class svgedit.history.MoveElementCommand
         * @implements svgedit.history.HistoryCommand
         * History command for an element that had its DOM position changed
         * @param {Element} elem - The DOM element that was moved
         * @param {Element} oldNextSibling - The element's next sibling before it was moved
         * @param {Element} oldParent - The element's parent before it was moved
         * @param {string} [text] - An optional string visible to user related to this change
        */
        svgedit.history.MoveElementCommand = function(elem, oldNextSibling, oldParent, text) {
        	this.elem = elem;
        	this.text = text ? ("Move " + elem.tagName + " to " + text) : ("Move " + elem.tagName);
        	this.oldNextSibling = oldNextSibling;
        	this.oldParent = oldParent;
        	this.newNextSibling = elem.nextSibling;
        	this.newParent = elem.parentNode;
        };
        svgedit.history.MoveElementCommand.type = function() { return 'svgedit.history.MoveElementCommand'; };
        svgedit.history.MoveElementCommand.prototype.type = svgedit.history.MoveElementCommand.type;
        
        svgedit.history.MoveElementCommand.prototype.getText = function() {
        	return this.text;
        };
        
        /**
         * Re-positions the element
         * @param {handleHistoryEvent: function}
        */
        svgedit.history.MoveElementCommand.prototype.apply = function(handler) {
        	// TODO(codedread): Refactor this common event code into a base HistoryCommand class.
        	if (handler) {
        		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_APPLY, this);
        	}
        
        	this.elem = this.newParent.insertBefore(this.elem, this.newNextSibling);
        
        	if (handler) {
        		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_APPLY, this);
        	}
        };
        
        /**
         * Positions the element back to its original location
         * @param {handleHistoryEvent: function}
        */
        svgedit.history.MoveElementCommand.prototype.unapply = function(handler) {
        	if (handler) {
        		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_UNAPPLY, this);
        	}
        
        	this.elem = this.oldParent.insertBefore(this.elem, this.oldNextSibling);
        
        	if (handler) {
        		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_UNAPPLY, this);
        	}
        };
        
        // Function: svgedit.history.MoveElementCommand.elements
        // Returns array with element associated with this command
        svgedit.history.MoveElementCommand.prototype.elements = function() {
        	return [this.elem];
        };
        
        
        // Class: svgedit.history.InsertElementCommand
        // implements svgedit.history.HistoryCommand
        // History command for an element that was added to the DOM
        //
        // Parameters:
        // elem - The newly added DOM element
        // text - An optional string visible to user related to this change
        svgedit.history.InsertElementCommand = function(elem, text) {
        	this.elem = elem;
        	this.text = text || ("Create " + elem.tagName);
        	this.parent = elem.parentNode;
        	this.nextSibling = this.elem.nextSibling;
        };
        svgedit.history.InsertElementCommand.type = function() { return 'svgedit.history.InsertElementCommand'; };
        svgedit.history.InsertElementCommand.prototype.type = svgedit.history.InsertElementCommand.type;
        
        // Function: svgedit.history.InsertElementCommand.getText
        svgedit.history.InsertElementCommand.prototype.getText = function() {
        	return this.text;
        };
        
        // Function: svgedit.history.InsertElementCommand.apply
        // Re-Inserts the new element
        svgedit.history.InsertElementCommand.prototype.apply = function(handler) {
        	if (handler) {
        		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_APPLY, this);
        	}
        
        	this.elem = this.parent.insertBefore(this.elem, this.nextSibling);
        
        	if (handler) {
        		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_APPLY, this);
        	}
        };
        
        // Function: svgedit.history.InsertElementCommand.unapply
        // Removes the element
        svgedit.history.InsertElementCommand.prototype.unapply = function(handler) {
        	if (handler) {
        		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_UNAPPLY, this);
        	}
        
        	this.parent = this.elem.parentNode;
        	this.elem = this.elem.parentNode.removeChild(this.elem);
        
        	if (handler) {
        		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_UNAPPLY, this);
        	}
        };
        
        // Function: svgedit.history.InsertElementCommand.elements
        // Returns array with element associated with this command
        svgedit.history.InsertElementCommand.prototype.elements = function() {
        	return [this.elem];
        };
        
        
        // Class: svgedit.history.RemoveElementCommand
        // implements svgedit.history.HistoryCommand
        // History command for an element removed from the DOM
        //
        // Parameters:
        // elem - The removed DOM element
        // oldNextSibling - the DOM element's nextSibling when it was in the DOM
        // oldParent - The DOM element's parent
        // text - An optional string visible to user related to this change
        svgedit.history.RemoveElementCommand = function(elem, oldNextSibling, oldParent, text) {
        	this.elem = elem;
        	this.text = text || ("Delete " + elem.tagName);
        	this.nextSibling = oldNextSibling;
        	this.parent = oldParent;
        
        	// special hack for webkit: remove this element's entry in the svgTransformLists map
        	svgedit.transformlist.removeElementFromListMap(elem);
        };
        svgedit.history.RemoveElementCommand.type = function() { return 'svgedit.history.RemoveElementCommand'; };
        svgedit.history.RemoveElementCommand.prototype.type = svgedit.history.RemoveElementCommand.type;
        
        // Function: svgedit.history.RemoveElementCommand.getText
        svgedit.history.RemoveElementCommand.prototype.getText = function() {
        	return this.text;
        };
        
        // Function: RemoveElementCommand.apply
        // Re-removes the new element
        svgedit.history.RemoveElementCommand.prototype.apply = function(handler) {
        	if (handler) {
        		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_APPLY, this);
        	}
        
        	svgedit.transformlist.removeElementFromListMap(this.elem);
        	this.parent = this.elem.parentNode;
        	this.elem = this.parent.removeChild(this.elem);
        
        	if (handler) {
        		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_APPLY, this);
        	}
        };
        
        // Function: RemoveElementCommand.unapply
        // Re-adds the new element
        svgedit.history.RemoveElementCommand.prototype.unapply = function(handler) {
        	if (handler) {
        		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_UNAPPLY, this);
        	}
        
        	svgedit.transformlist.removeElementFromListMap(this.elem);
        	if (this.nextSibling == null) {
        		if (window.console) {
                    console.log('Error: reference element was lost');
                }
        	}
        	this.parent.insertBefore(this.elem, this.nextSibling);
        
        
        	if (handler) {
        		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_UNAPPLY, this);
        	}
        };
        
        // Function: RemoveElementCommand.elements
        // Returns array with element associated with this command
        svgedit.history.RemoveElementCommand.prototype.elements = function() {
        	return [this.elem];
        };
        
        
        // Class: svgedit.history.ChangeElementCommand
        // implements svgedit.history.HistoryCommand
        // History command to make a change to an element.
        // Usually an attribute change, but can also be textcontent.
        //
        // Parameters:
        // elem - The DOM element that was changed
        // attrs - An object with the attributes to be changed and the values they had *before* the change
        // text - An optional string visible to user related to this change
        svgedit.history.ChangeElementCommand = function(elem, attrs, text) {
        	this.elem = elem;
        	this.text = text ? ("Change " + elem.tagName + " " + text) : ("Change " + elem.tagName);
        	this.newValues = {};
        	this.oldValues = attrs;
        	var attr;
        	for (attr in attrs) {
        		if (attr == "#text") {this.newValues[attr] = elem.textContent;}
        		else if (attr == "#href") {this.newValues[attr] = svgedit.utilities.getHref(elem);}
        		else {this.newValues[attr] = elem.getAttribute(attr);}
        	}
        };
        svgedit.history.ChangeElementCommand.type = function() { return 'svgedit.history.ChangeElementCommand'; };
        svgedit.history.ChangeElementCommand.prototype.type = svgedit.history.ChangeElementCommand.type;
        
        // Function: svgedit.history.ChangeElementCommand.getText
        svgedit.history.ChangeElementCommand.prototype.getText = function() {
        	return this.text;
        };
        
        // Function: svgedit.history.ChangeElementCommand.apply
        // Performs the stored change action
        svgedit.history.ChangeElementCommand.prototype.apply = function(handler) {
        	if (handler) {
        		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_APPLY, this);
        	}
        
        	var bChangedTransform = false;
        	var attr;
        	for (attr in this.newValues ) {
        		if (this.newValues[attr]) {
        			if (attr == "#text") {this.elem.textContent = this.newValues[attr];}
        			else if (attr == "#href") {svgedit.utilities.setHref(this.elem, this.newValues[attr]);}
        			else {this.elem.setAttribute(attr, this.newValues[attr]);}
        		}
        		else {
        			if (attr == "#text") {
        				this.elem.textContent = "";
        			}
        			else {
        				this.elem.setAttribute(attr, "");
        				this.elem.removeAttribute(attr);
        			}
        		}
        
        		if (attr == "transform") { bChangedTransform = true; }
        	}
        
        	// relocate rotational transform, if necessary
        	if (!bChangedTransform) {
        		var angle = svgedit.utilities.getRotationAngle(this.elem);
        		if (angle) {
        			// TODO: These instances of elem either need to be declared as global
        			//				(which would not be good for conflicts) or declare/use this.elem
        			var bbox = elem.getBBox();
        			var cx = bbox.x + bbox.width/2,
        				cy = bbox.y + bbox.height/2;
        			var rotate = ["rotate(", angle, " ", cx, ",", cy, ")"].join('');
        			if (rotate != elem.getAttribute("transform")) {
        				elem.setAttribute("transform", rotate);
        			}
        		}
        	}
        
        	if (handler) {
        		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_APPLY, this);
        	}
        
        	return true;
        };
        
        // Function: svgedit.history.ChangeElementCommand.unapply
        // Reverses the stored change action
        svgedit.history.ChangeElementCommand.prototype.unapply = function(handler) {
        	if (handler) {
        		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_UNAPPLY, this);
        	}
        
        	var bChangedTransform = false;
        	var attr;
        	for (attr in this.oldValues ) {
        		if (this.oldValues[attr]) {
        			if (attr == "#text") {this.elem.textContent = this.oldValues[attr];}
        			else if (attr == "#href") {svgedit.utilities.setHref(this.elem, this.oldValues[attr]);}
        			else {
        				this.elem.setAttribute(attr, this.oldValues[attr]);
        			}
        		}
        		else {
        			if (attr == "#text") {
        				this.elem.textContent = "";
        			}
        			else {this.elem.removeAttribute(attr);}
        		}
        		if (attr == "transform") { bChangedTransform = true; }
        	}
        	// relocate rotational transform, if necessary
        	if (!bChangedTransform) {
        		var angle = svgedit.utilities.getRotationAngle(this.elem);
        		if (angle) {
        			var bbox = elem.getBBox();
        			var cx = bbox.x + bbox.width/2,
        				cy = bbox.y + bbox.height/2;
        			var rotate = ["rotate(", angle, " ", cx, ",", cy, ")"].join('');
        			if (rotate != elem.getAttribute("transform")) {
        				elem.setAttribute("transform", rotate);
        			}
        		}
        	}
        
        	// Remove transformlist to prevent confusion that causes bugs like 575.
        	svgedit.transformlist.removeElementFromListMap(this.elem);
        
        	if (handler) {
        		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_UNAPPLY, this);
        	}
        
        	return true;
        };
        
        // Function: ChangeElementCommand.elements
        // Returns array with element associated with this command
        svgedit.history.ChangeElementCommand.prototype.elements = function() {
        	return [this.elem];
        };
        
        
        // TODO: create a 'typing' command object that tracks changes in text
        // if a new Typing command is created and the top command on the stack is also a Typing
        // and they both affect the same element, then collapse the two commands into one
        
        
        // Class: svgedit.history.BatchCommand
        // implements svgedit.history.HistoryCommand
        // History command that can contain/execute multiple other commands
        //
        // Parameters:
        // text - An optional string visible to user related to this change
        svgedit.history.BatchCommand = function(text) {
        	this.text = text || "Batch Command";
        	this.stack = [];
        };
        svgedit.history.BatchCommand.type = function() { return 'svgedit.history.BatchCommand'; };
        svgedit.history.BatchCommand.prototype.type = svgedit.history.BatchCommand.type;
        
        // Function: svgedit.history.BatchCommand.getText
        svgedit.history.BatchCommand.prototype.getText = function() {
        	return this.text;
        };
        
        // Function: svgedit.history.BatchCommand.apply
        // Runs "apply" on all subcommands
        svgedit.history.BatchCommand.prototype.apply = function(handler) {
        	if (handler) {
        		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_APPLY, this);
        	}
        
        	var i,
        		len = this.stack.length;
        	for (i = 0; i < len; ++i) {
        		this.stack[i].apply(handler);
        	}
        
        	if (handler) {
        		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_APPLY, this);
        	}
        };
        
        // Function: svgedit.history.BatchCommand.unapply
        // Runs "unapply" on all subcommands
        svgedit.history.BatchCommand.prototype.unapply = function(handler) {
        	if (handler) {
        		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_UNAPPLY, this);
        	}
        
        	var i;
        	for (i = this.stack.length-1; i >= 0; i--) {
        		this.stack[i].unapply(handler);
        	}
        
        	if (handler) {
        		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_UNAPPLY, this);
        	}
        };
        
        // Function: svgedit.history.BatchCommand.elements
        // Iterate through all our subcommands and returns all the elements we are changing
        svgedit.history.BatchCommand.prototype.elements = function() {
        	var elems = [];
        	var cmd = this.stack.length;
        	while (cmd--) {
        		var thisElems = this.stack[cmd].elements();
        		var elem = thisElems.length;
        		while (elem--) {
        			if (elems.indexOf(thisElems[elem]) == -1) {elems.push(thisElems[elem]);}
        		}
        	}
        	return elems;
        };
        
        // Function: svgedit.history.BatchCommand.addSubCommand
        // Adds a given command to the history stack
        //
        // Parameters:
        // cmd - The undo command object to add
        svgedit.history.BatchCommand.prototype.addSubCommand = function(cmd) {
        	this.stack.push(cmd);
        };
        
        // Function: svgedit.history.BatchCommand.isEmpty
        // Returns a boolean indicating whether or not the batch command is empty
        svgedit.history.BatchCommand.prototype.isEmpty = function() {
        	return this.stack.length === 0;
        };
        
        
        // Class: svgedit.history.UndoManager
        // Parameters:
        // historyEventHandler - an object that conforms to the HistoryEventHandler interface
        // (see above)
        svgedit.history.UndoManager = function(historyEventHandler) {
        	this.handler_ = historyEventHandler || null;
        	this.undoStackPointer = 0;
        	this.undoStack = [];
        
        	// this is the stack that stores the original values, the elements and
        	// the attribute name for begin/finish
        	this.undoChangeStackPointer = -1;
        	this.undoableChangeStack = [];
        };
        
        // Function: svgedit.history.UndoManager.resetUndoStack
        // Resets the undo stack, effectively clearing the undo/redo history
        svgedit.history.UndoManager.prototype.resetUndoStack = function() {
        	this.undoStack = [];
        	this.undoStackPointer = 0;
        };
        
        // Function: svgedit.history.UndoManager.getUndoStackSize
        // Returns:
        // Integer with the current size of the undo history stack
        svgedit.history.UndoManager.prototype.getUndoStackSize = function() {
        	return this.undoStackPointer;
        };
        
        // Function: svgedit.history.UndoManager.getRedoStackSize
        // Returns:
        // Integer with the current size of the redo history stack
        svgedit.history.UndoManager.prototype.getRedoStackSize = function() {
        	return this.undoStack.length - this.undoStackPointer;
        };
        
        // Function: svgedit.history.UndoManager.getNextUndoCommandText
        // Returns:
        // String associated with the next undo command
        svgedit.history.UndoManager.prototype.getNextUndoCommandText = function() {
        	return this.undoStackPointer > 0 ? this.undoStack[this.undoStackPointer-1].getText() : "";
        };
        
        // Function: svgedit.history.UndoManager.getNextRedoCommandText
        // Returns:
        // String associated with the next redo command
        svgedit.history.UndoManager.prototype.getNextRedoCommandText = function() {
        	return this.undoStackPointer < this.undoStack.length ? this.undoStack[this.undoStackPointer].getText() : "";
        };
        
        // Function: svgedit.history.UndoManager.undo
        // Performs an undo step
        svgedit.history.UndoManager.prototype.undo = function() {
        	if (this.undoStackPointer > 0) {
        		var cmd = this.undoStack[--this.undoStackPointer];
        		cmd.unapply(this.handler_);
        	}
        };
        
        // Function: svgedit.history.UndoManager.redo
        // Performs a redo step
        svgedit.history.UndoManager.prototype.redo = function() {
        	if (this.undoStackPointer < this.undoStack.length && this.undoStack.length > 0) {
        		var cmd = this.undoStack[this.undoStackPointer++];
        		cmd.apply(this.handler_);
        	}
        };
        
        // Function: svgedit.history.UndoManager.addCommandToHistory
        // Adds a command object to the undo history stack
        //
        // Parameters:
        // cmd - The command object to add
        svgedit.history.UndoManager.prototype.addCommandToHistory = function(cmd) {
        	// FIXME: we MUST compress consecutive text changes to the same element
        	// (right now each keystroke is saved as a separate command that includes the
        	// entire text contents of the text element)
        	// TODO: consider limiting the history that we store here (need to do some slicing)
        
        	// if our stack pointer is not at the end, then we have to remove
        	// all commands after the pointer and insert the new command
        	if (this.undoStackPointer < this.undoStack.length && this.undoStack.length > 0) {
        		this.undoStack = this.undoStack.splice(0, this.undoStackPointer);
        	}
        	this.undoStack.push(cmd);
        	this.undoStackPointer = this.undoStack.length;
        };
        
        
        // Function: svgedit.history.UndoManager.beginUndoableChange
        // This function tells the canvas to remember the old values of the 
        // attrName attribute for each element sent in.  The elements and values 
        // are stored on a stack, so the next call to finishUndoableChange() will 
        // pop the elements and old values off the stack, gets the current values
        // from the DOM and uses all of these to construct the undo-able command.
        //
        // Parameters:
        // attrName - The name of the attribute being changed
        // elems - Array of DOM elements being changed
        svgedit.history.UndoManager.prototype.beginUndoableChange = function(attrName, elems) {
        	var p = ++this.undoChangeStackPointer;
        	var i = elems.length;
        	var oldValues = new Array(i), elements = new Array(i);
        	while (i--) {
        		var elem = elems[i];
        		if (elem == null) {continue;}
        		elements[i] = elem;
        		oldValues[i] = elem.getAttribute(attrName);
        	}
        	this.undoableChangeStack[p] = {
        		'attrName': attrName,
        		'oldValues': oldValues,
        		'elements': elements
        	};
        };
        
        // Function: svgedit.history.UndoManager.finishUndoableChange
        // This function returns a BatchCommand object which summarizes the
        // change since beginUndoableChange was called.  The command can then
        // be added to the command history
        //
        // Returns:
        // Batch command object with resulting changes
        svgedit.history.UndoManager.prototype.finishUndoableChange = function() {
        	var p = this.undoChangeStackPointer--;
        	var changeset = this.undoableChangeStack[p];
        	var i = changeset.elements.length;
        	var attrName = changeset.attrName;
        	var batchCmd = new svgedit.history.BatchCommand("Change " + attrName);
        	while (i--) {
        		var elem = changeset.elements[i];
        		if (elem == null) {continue;}
        		var changes = {};
        		changes[attrName] = changeset.oldValues[i];
        		if (changes[attrName] != elem.getAttribute(attrName)) {
        			batchCmd.addSubCommand(new svgedit.history.ChangeElementCommand(elem, changes, attrName));
        		}
        	}
        	this.undoableChangeStack[p] = null;
        	return batchCmd;
        };
        
        }());
        
      • index.html
        <div id="svg_editor">
        
        <div id="rulers">
        	<div id="ruler_corner"></div>
        	<div id="ruler_x">
        		<div>
        			<canvas height="15"></canvas>
        		</div>
        	</div>
        	<div id="ruler_y">
        		<div>
        			<canvas width="15"></canvas>
        		</div>
        	</div>
        </div>
        
        <div id="workarea">
        <style id="styleoverrides" type="text/css" media="screen" scoped="scoped"></style>
        <div id="svgcanvas" style="position:relative">
        
        </div>
        </div>
        
        <div id="sidepanels">
        	<div id="layerpanel">
        		<h3 id="layersLabel">Layers</h3>
        		<fieldset id="layerbuttons">
        			<div id="layer_new" class="layer_button"  title="New Layer"></div>
        			<div id="layer_delete" class="layer_button"  title="Delete Layer"></div>
        			<div id="layer_rename" class="layer_button"  title="Rename Layer"></div>
        			<div id="layer_up" class="layer_button"  title="Move Layer Up"></div>
        			<div id="layer_down" class="layer_button"  title="Move Layer Down"></div>
        			<div id="layer_moreopts" class="layer_button"  title="More Options"></div>
        		</fieldset>
        		
        		<table id="layerlist">
        			<tr class="layer">
        				<td class="layervis"></td>
        				<td class="layername">Layer 1</td>
        			</tr>
        		</table>
        		<span id="selLayerLabel">Move elements to:</span>
        		<select id="selLayerNames" title="Move selected elements to a different layer" disabled="disabled">
        			<option selected="selected" value="layer1">Layer 1</option>
        		</select>
        	</div>
        	<div id="sidepanel_handle" title="Drag left/right to resize side panel [X]">L a y e r s</div>
        </div>
        
        <div id="main_button">
        	<div id="main_icon" class="tool_button" title="Main Menu">
        		<span>SVG-Edit</span>
        		<div id="logo"></div>
        		<div class="dropdown"></div>
        	</div>
        		
        	<div id="main_menu"> 
        	
        		<!-- File-like buttons: New, Save, Source -->
        		<ul>
        			<li id="tool_clear">
        				<div></div>
        				New Image (N)
        			</li>
        			
        			<li id="tool_open" style="display:none;">
        				<div id="fileinputs">
        					<div></div>
        				</div>
        				Open SVG
        			</li>
        			
        			<li id="tool_import" style="display:none;">
        				<div id="fileinputs_import">
        					<div></div>
        				</div>
        				Import Image
        			</li>
        			
        			<li id="tool_save">
        				<div></div>
        				Save Image (S)
        			</li>
        			
        			<li id="tool_export">
        				<div></div>
        				Export
        			</li>
        			
        			<li id="tool_docprops">
        				<div></div>
        				Document Properties (D)
        			</li>
        		</ul>
        
        		<p>
        			<a href="http://svg-edit.googlecode.com/" target="_blank">
        				SVG-edit Home Page
        			</a>
        		</p>
        
        		<button id="tool_prefs_option">
        			Editor Options
        		</button>
        
        
        	</div>
        </div>
        
        
        
        <div id="tools_top" class="tools_panel">
        
        	<div id="editor_panel">
        		<div class="tool_sep"></div>
        		<div class="push_button" id="tool_source" title="Edit Source [U]"></div>
        		<div class="tool_button" id="tool_wireframe" title="Wireframe Mode [F]"></div>
        	</div>
        
        	<!-- History buttons -->
        	<div id="history_panel">
        		<div class="tool_sep"></div>
        		<div class="push_button tool_button_disabled" id="tool_undo" title="Undo [Z]"></div>
        		<div class="push_button tool_button_disabled" id="tool_redo" title="Redo [Y]"></div>
        	</div>
        	
        	<!-- Buttons when a single element is selected -->
        	<div id="selected_panel">
        		<div class="toolset">
        			<div class="tool_sep"></div>
        			<div class="push_button" id="tool_clone" title="Duplicate Element [D]"></div>
        			<div class="push_button" id="tool_delete" title="Delete Element [Delete/Backspace]"></div>
        			<div class="tool_sep"></div>
        			<div class="push_button" id="tool_move_top" title="Bring to Front [ Ctrl+Shift+] ]"></div>
        			<div class="push_button" id="tool_move_bottom" title="Send to Back [ Ctrl+Shift+[ ]"></div>
        			<div class="push_button" id="tool_topath" title="Convert to Path"></div>
        			<div class="push_button" id="tool_reorient" title="Reorient path"></div>
        			<div class="push_button" id="tool_make_link" title="Make (hyper)link"></div>
        			<div class="tool_sep"></div>
        			<label id="idLabel" title="Identify the element">
        				<span>id:</span>
        				<input id="elem_id" class="attr_changer" data-attr="id" size="10" type="text"/>
        			</label>
        		</div>
        
        		<label id="tool_angle" title="Change rotation angle" class="toolset">
        			<span id="angleLabel" class="icon_label"></span>
        			<input id="angle" size="2" value="0" type="text"/>
        		</label>
        		
        		<div class="toolset" id="tool_blur" title="Change gaussian blur value">
        			<label>
        				<span id="blurLabel" class="icon_label"></span>
        				<input id="blur" size="2" value="0" type="text"/>
        			</label>
        			<div id="blur_dropdown" class="dropdown">
        				<button></button>
        				<ul>
        					<li class="special"><div id="blur_slider"></div></li>
        				</ul>
        			</div>
        		</div>
        		
        		<div class="dropdown toolset" id="tool_position" title="Align Element to Page">
        				<div id="cur_position" class="icon_label"></div>
        				<button></button>
        		</div>		
        
        		<div id="xy_panel" class="toolset">
        			<label>
        				x: <input id="selected_x" class="attr_changer" title="Change X coordinate" size="3" data-attr="x"/>
        			</label>
        			<label>
        				y: <input id="selected_y" class="attr_changer" title="Change Y coordinate" size="3" data-attr="y"/>
        			</label>
        		</div>
        	</div>
        	
        	<!-- Buttons when multiple elements are selected -->
        	<div id="multiselected_panel">
        		<div class="tool_sep"></div>
        		<div class="push_button" id="tool_clone_multi" title="Clone Elements [C]"></div>
        		<div class="push_button" id="tool_delete_multi" title="Delete Selected Elements [Delete/Backspace]"></div>
        		<div class="tool_sep"></div>
        		<div class="push_button" id="tool_group_elements" title="Group Elements [G]"></div>
        		<div class="push_button" id="tool_make_link_multi" title="Make (hyper)link"></div>
        		<div class="push_button" id="tool_alignleft" title="Align Left"></div>
        		<div class="push_button" id="tool_aligncenter" title="Align Center"></div>
        		<div class="push_button" id="tool_alignright" title="Align Right"></div>
        		<div class="push_button" id="tool_aligntop" title="Align Top"></div>
        		<div class="push_button" id="tool_alignmiddle" title="Align Middle"></div>
        		<div class="push_button" id="tool_alignbottom" title="Align Bottom"></div>
        		<label id="tool_align_relative"> 
        			<span id="relativeToLabel">relative to:</span>
        			<select id="align_relative_to" title="Align relative to ...">
        			<option id="selected_objects" value="selected">selected objects</option>
        			<option id="largest_object" value="largest">largest object</option>
        			<option id="smallest_object" value="smallest">smallest object</option>
        			<option id="page" value="page">page</option>
        			</select>
        		</label>
        		<div class="tool_sep"></div>
        
        	</div>
        
        	<div id="rect_panel">
        		<div class="toolset">
        			<label id="rect_width_tool" title="Change rectangle width">
        				<span id="rwidthLabel" class="icon_label"></span>
        				<input id="rect_width" class="attr_changer" size="3" data-attr="width"/>
        			</label>
        			<label id="rect_height_tool" title="Change rectangle height">
        				<span id="rheightLabel" class="icon_label"></span>
        				<input id="rect_height" class="attr_changer" size="3" data-attr="height"/>
        			</label>
        		</div>
        		<label id="cornerRadiusLabel" title="Change Rectangle Corner Radius" class="toolset">
        			<span class="icon_label"></span>
        			<input id="rect_rx" size="3" value="0" type="text" data-attr="Corner Radius"/>
        		</label>
        	</div>
        
        	<div id="image_panel">
        	<div class="toolset">
        		<label><span id="iwidthLabel" class="icon_label"></span>
        		<input id="image_width" class="attr_changer" title="Change image width" size="3" data-attr="width"/>
        		</label>
        		<label><span id="iheightLabel" class="icon_label"></span>
        		<input id="image_height" class="attr_changer" title="Change image height" size="3" data-attr="height"/>
        		</label>
        	</div>
        	<div class="toolset">
        		<label id="tool_image_url">url:
        			<input id="image_url" type="text" title="Change URL" size="35"/>
        		</label>
        		<label id="tool_change_image">
        			<button id="change_image_url" style="display:none;">Change Image</button>
        			<span id="url_notice" title="NOTE: This image cannot be embedded. It will depend on this path to be displayed"></span>
        		</label>
        	</div>
          </div>
        
        	<div id="circle_panel">
        		<div class="toolset">
        			<label id="tool_circle_cx">cx:
        			<input id="circle_cx" class="attr_changer" title="Change circle's cx coordinate" size="3" data-attr="cx"/>
        			</label>
        			<label id="tool_circle_cy">cy:
        			<input id="circle_cy" class="attr_changer" title="Change circle's cy coordinate" size="3" data-attr="cy"/>
        			</label>
        		</div>
        		<div class="toolset">
        			<label id="tool_circle_r">r:
        			<input id="circle_r" class="attr_changer" title="Change circle's radius" size="3" data-attr="r"/>
        			</label>
        		</div>
        	</div>
        
        	<div id="ellipse_panel">
        		<div class="toolset">
        			<label id="tool_ellipse_cx">cx:
        			<input id="ellipse_cx" class="attr_changer" title="Change ellipse's cx coordinate" size="3" data-attr="cx"/>
        			</label>
        			<label id="tool_ellipse_cy">cy:
        			<input id="ellipse_cy" class="attr_changer" title="Change ellipse's cy coordinate" size="3" data-attr="cy"/>
        			</label>
        		</div>
        		<div class="toolset">
        			<label id="tool_ellipse_rx">rx:
        			<input id="ellipse_rx" class="attr_changer" title="Change ellipse's x radius" size="3" data-attr="rx"/>
        			</label>
        			<label id="tool_ellipse_ry">ry:
        			<input id="ellipse_ry" class="attr_changer" title="Change ellipse's y radius" size="3" data-attr="ry"/>
        			</label>
        		</div>
        	</div>
        
        	<div id="line_panel">
        		<div class="toolset">
        			<label id="tool_line_x1">x1:
        			<input id="line_x1" class="attr_changer" title="Change line's starting x coordinate" size="3" data-attr="x1"/>
        			</label>
        			<label id="tool_line_y1">y1:
        			<input id="line_y1" class="attr_changer" title="Change line's starting y coordinate" size="3" data-attr="y1"/>
        			</label>
        		</div>
        		<div class="toolset">
        			<label id="tool_line_x2">x2:
        			<input id="line_x2" class="attr_changer" title="Change line's ending x coordinate" size="3" data-attr="x2"/>
        			</label>
        			<label id="tool_line_y2">y2:
        			<input id="line_y2" class="attr_changer" title="Change line's ending y coordinate" size="3" data-attr="y2"/>
        			</label>
        		</div>
        	</div>
        
        	<div id="text_panel">
        		<div class="toolset">
        			<div class="tool_button" id="tool_bold" title="Bold Text [B]"><span></span>B</div>
        			<div class="tool_button" id="tool_italic" title="Italic Text [I]"><span></span>i</div>
        		</div>
        		
        		<div class="toolset" id="tool_font_family">
        			<label>
        				<!-- Font family -->
        				<input id="font_family" type="text" title="Change Font Family" size="12"/>
        			</label>
        			<div id="font_family_dropdown" class="dropdown">
        				<button></button>
        				<ul>
        					<li style="font-family:serif">Serif</li>
        					<li style="font-family:sans-serif">Sans-serif</li>
        					<li style="font-family:cursive">Cursive</li>
        					<li style="font-family:fantasy">Fantasy</li>
        					<li style="font-family:monospace">Monospace</li>
        				</ul>
        			</div>
        		</div>
        
        		<label id="tool_font_size" title="Change Font Size">
        			<span id="font_sizeLabel" class="icon_label"></span>
        			<input id="font_size" size="3" value="0" type="text"/>
        		</label>
        		
        		<!-- Not visible, but still used -->
        		<input id="text" type="text" size="35"/>
        	</div>
        
        	<!-- formerly gsvg_panel -->
        	<div id="container_panel">
        		<div class="tool_sep"></div>
        
        		<!-- Add viewBox field here? -->
        
        		<label id="group_title" title="Group identification label">
        			<span>label:</span>
        			<input id="g_title" data-attr="title" size="10" type="text"/>
        		</label>
        	</div>
        	
        	<div id="use_panel">
        		<div class="push_button" id="tool_unlink_use" title="Break link to reference element (make unique)"></div>
        	</div>
        	
        	<div id="g_panel">
        		<div class="push_button" id="tool_ungroup" title="Ungroup Elements [G]"></div>
        	</div>
        
        	<!-- For anchor elements -->
        	<div id="a_panel">
        		<label id="tool_link_url" title="Set link URL (leave empty to remove)">
        			<span id="linkLabel" class="icon_label"></span>
        			<input id="link_url" type="text" size="35"/>
        		</label>	
        	</div>
        	
        	<div id="path_node_panel">
        		<div class="tool_sep"></div>
        		<div class="tool_button push_button_pressed" id="tool_node_link" title="Link Control Points"></div>
        		<div class="tool_sep"></div>
        		<label id="tool_node_x">x:
        			<input id="path_node_x" class="attr_changer" title="Change node's x coordinate" size="3" data-attr="x"/>
        		</label>
        		<label id="tool_node_y">y:
        			<input id="path_node_y" class="attr_changer" title="Change node's y coordinate" size="3" data-attr="y"/>
        		</label>
        		
        		<select id="seg_type" title="Change Segment type">
        			<option id="straight_segments" selected="selected" value="4">Straight</option>
        			<option id="curve_segments" value="6">Curve</option>
        		</select>
        		<div class="tool_button" id="tool_node_clone" title="Clone Node"></div>
        		<div class="tool_button" id="tool_node_delete" title="Delete Node"></div>
        		<div class="tool_button" id="tool_openclose_path" title="Open/close sub-path"></div>
        		<div class="tool_button" id="tool_add_subpath" title="Add sub-path"></div>
        	</div>
        </div> <!-- tools_top -->
        	<div id="cur_context_panel">
        		
        	</div>
        
        
        <div id="tools_left" class="tools_panel">
        	<div class="tool_button" id="tool_select" title="Select Tool"></div>
        	<div class="tool_button" id="tool_fhpath" title="Pencil Tool"></div>
        	<div class="tool_button" id="tool_line" title="Line Tool"></div>
        	<div class="tool_button flyout_current" id="tools_rect_show" title="Square/Rect Tool">
        		<div class="flyout_arrow_horiz"></div>
        	</div>
        	<div class="tool_button flyout_current" id="tools_ellipse_show" title="Ellipse/Circle Tool">
        		<div class="flyout_arrow_horiz"></div>
        	</div>
        	<div class="tool_button" id="tool_path" title="Path Tool"></div>
        	<div class="tool_button" id="tool_text" title="Text Tool"></div>
        	<div class="tool_button" id="tool_image" title="Image Tool"></div>
        	<div class="tool_button" id="tool_zoom" title="Zoom Tool [Ctrl+Up/Down]"></div>
        	
        	<div style="display: none">
        		<div id="tool_rect" title="Rectangle"></div>
        		<div id="tool_square" title="Square"></div>
        		<div id="tool_fhrect" title="Free-Hand Rectangle"></div>
        		<div id="tool_ellipse" title="Ellipse"></div>
        		<div id="tool_circle" title="Circle"></div>
        		<div id="tool_fhellipse" title="Free-Hand Ellipse"></div>
        	</div>
        </div> <!-- tools_left -->
        
        <div id="tools_bottom" class="tools_panel">
        
        	<!-- Zoom buttons -->
        	<div id="zoom_panel" class="toolset" title="Change zoom level">
        		<label>
        		<span id="zoomLabel" class="zoom_tool icon_label"></span>
        		<input id="zoom" size="3" value="100" type="text" />
        		</label>
        		<div id="zoom_dropdown" class="dropdown">
        			<button></button>
        			<ul>
        				<li>1000%</li>
        				<li>400%</li>
        				<li>200%</li>
        				<li>100%</li>
        				<li>50%</li>
        				<li>25%</li>
        				<li id="fit_to_canvas" data-val="canvas">Fit to canvas</li>
        				<li id="fit_to_sel" data-val="selection">Fit to selection</li>
        				<li id="fit_to_layer_content" data-val="layer">Fit to layer content</li>
        				<li id="fit_to_all" data-val="content">Fit to all content</li>
        				<li>100%</li>
        			</ul>
        		</div>
        		<div class="tool_sep"></div>
        	</div>
        
        	<div id="tools_bottom_2">
        		<div id="color_tools">
        			
        			<div class="color_tool" id="tool_fill">
        				<label class="icon_label" for="fill_color" title="Change fill color"></label>
        				<div class="color_block">
        					<div id="fill_bg"></div>
        					<div id="fill_color" class="color_block"></div>
        				</div>
        			</div>
        		
        			<div class="color_tool" id="tool_stroke">
        				<label class="icon_label" title="Change stroke color"></label>
        				<div class="color_block">
        					<div id="stroke_bg"></div>
        					<div id="stroke_color" class="color_block" title="Change stroke color"></div>
        				</div>
        				
        				<label class="stroke_label">
        					<input id="stroke_width" title="Change stroke width by 1, shift-click to change by 0.1" size="2" value="5" type="text" data-attr="Stroke Width"/>
        				</label>
        
        				<div id="toggle_stroke_tools" title="Show/hide more stroke tools"></div>
        				
        				<label class="stroke_tool">
        					<select id="stroke_style" title="Change stroke dash style">
        						<option selected="selected" value="none">&#8212;</option>
        						<option value="2,2">...</option>
        						<option value="5,5">- -</option>
        						<option value="5,2,2,2">- .</option>
        						<option value="5,2,2,2,2,2">- ..</option>
        					</select>
        				</label>
        
         				<div class="stroke_tool dropdown" id="stroke_linejoin">
        					<div id="cur_linejoin" title="Linejoin: Miter"></div>
        					<button></button>
         				</div>
         				
         				<div class="stroke_tool dropdown" id="stroke_linecap">
        					<div id="cur_linecap" title="Linecap: Butt"></div>
        					<button></button>
         				</div>
        
        			</div>
        
        			<div class="color_tool" id="tool_opacity" title="Change selected item opacity">
        				<label>
        					<span id="group_opacityLabel" class="icon_label"></span>
        					<input id="group_opacity" size="3" value="100" type="text"/>
        				</label>
        				<div id="opacity_dropdown" class="dropdown">
        					<button></button>
        					<ul>
        						<li>0%</li>
        						<li>25%</li>
        						<li>50%</li>
        						<li>75%</li>
        						<li>100%</li>
        						<li class="special"><div id="opac_slider"></div></li>
        					</ul>
        				</div>
        			</div>
        		</div>
        
        	</div>
        
        	<div id="tools_bottom_3">
        		<div id="palette_holder"><div id="palette" title="Click to change fill color, shift-click to change stroke color"></div></div>
        	</div>
        	<!-- <div id="copyright"><span id="copyrightLabel">Powered by</span> <a href="http://svg-edit.googlecode.com/" target="_blank">SVG-edit v2.6-beta</a></div> -->
        </div>
        
        <div id="option_lists" class="dropdown">
        	<ul id="linejoin_opts">
        		<li class="tool_button current" id="linejoin_miter" title="Linejoin: Miter"></li>
        		<li class="tool_button" id="linejoin_round" title="Linejoin: Round"></li>
        		<li class="tool_button" id="linejoin_bevel" title="Linejoin: Bevel"></li>
        	</ul>
        	
        	<ul id="linecap_opts">
        		<li class="tool_button current" id="linecap_butt" title="Linecap: Butt"></li>
        		<li class="tool_button" id="linecap_square" title="Linecap: Square"></li>
        		<li class="tool_button" id="linecap_round" title="Linecap: Round"></li>
        	</ul>
        	
        	<ul id="position_opts" class="optcols3">
        		<li class="push_button" id="tool_posleft" title="Align Left"></li>
        		<li class="push_button" id="tool_poscenter" title="Align Center"></li>
        		<li class="push_button" id="tool_posright" title="Align Right"></li>
        		<li class="push_button" id="tool_postop" title="Align Top"></li>
        		<li class="push_button" id="tool_posmiddle" title="Align Middle"></li>
        		<li class="push_button" id="tool_posbottom" title="Align Bottom"></li>
        	</ul>
        </div>
        
        
        <!-- hidden divs -->
        <div id="color_picker"></div>
        
        </div> <!-- svg_editor -->
        
        <div id="svg_source_editor">
        	<div class="overlay"></div>
        	<div id="svg_source_container">
        		<div id="tool_source_back" class="toolbar_button">
        			<button id="tool_source_save">Apply Changes</button>
        			<button id="tool_source_cancel">Cancel</button>
        		</div>
        		<div id="save_output_btns">
        			<p id="copy_save_note">Copy the contents of this box into a text editor, then save the file with a .svg extension.</p>
        			<button id="copy_save_done">Done</button>
        		</div>
        		<form>
        			<textarea id="svg_source_textarea" spellcheck="false"></textarea>
        		</form>
        	</div>
        </div>
        
        
        <div id="svg_docprops">
        	<div class="overlay"></div>
        	<div id="svg_docprops_container">
        		<div id="tool_docprops_back" class="toolbar_button">
        			<button id="tool_docprops_save">OK</button>
        			<button id="tool_docprops_cancel">Cancel</button>
        		</div>
        
        
        		<fieldset id="svg_docprops_docprops">
        			<legend id="svginfo_image_props">Image Properties</legend>
        			<label>
        				<span id="svginfo_title">Title:</span>
        				<input type="text" id="canvas_title"/>
        			</label>
        
        			<fieldset id="change_resolution">
        				<legend id="svginfo_dim">Canvas Dimensions</legend>
        
        				<label><span id="svginfo_width">width:</span> <input type="text" id="canvas_width" size="6"/></label>
        
        				<label><span id="svginfo_height">height:</span> <input type="text" id="canvas_height" size="6"/></label>
        
        				<label>
        					<select id="resolution">
        						<option id="selectedPredefined" selected="selected">Select predefined:</option>
        						<option>640x480</option>
        						<option>800x600</option>
        						<option>1024x768</option>
        						<option>1280x960</option>
        						<option>1600x1200</option>
        						<option id="fitToContent" value="content">Fit to Content</option>
        					</select>
        				</label>
        			</fieldset>
        
        			<fieldset id="image_save_opts">
        				<legend id="includedImages">Included Images</legend>
        				<label><input type="radio" name="image_opt" value="embed" checked="checked"/> <span id="image_opt_embed">Embed data (local files)</span> </label>
        				<label><input type="radio" name="image_opt" value="ref"/> <span id="image_opt_ref">Use file reference</span> </label>
        			</fieldset>
        		</fieldset>
        
        	</div>
        </div>
        
        <div id="svg_prefs">
        	<div class="overlay"></div>
        	<div id="svg_prefs_container">
        		<div id="tool_prefs_back" class="toolbar_button">
        			<button id="tool_prefs_save">OK</button>
        			<button id="tool_prefs_cancel">Cancel</button>
        		</div>
        
        		<fieldset>
        			<legend id="svginfo_editor_prefs">Editor Preferences</legend>
        
        			<label><span id="svginfo_lang">Language:</span>
        				<!-- Source: http://en.wikipedia.org/wiki/Language_names -->
        				<select id="lang_select">
        				  <option id="lang_ar" value="ar">العربية</option>
        					<option id="lang_cs" value="cs">Čeština</option>
        					<option id="lang_de" value="de">Deutsch</option>
        					<option id="lang_en" value="en" selected="selected">English</option>
        					<option id="lang_es" value="es">Español</option>
        					<option id="lang_fa" value="fa">فارسی</option>
        					<option id="lang_fr" value="fr">Français</option>
        					<option id="lang_fy" value="fy">Frysk</option>
        					<option id="lang_hi" value="hi">&#2361;&#2367;&#2344;&#2381;&#2342;&#2368;, &#2361;&#2367;&#2306;&#2342;&#2368;</option>
        					<option id="lang_it" value="it">Italiano</option>
        					<option id="lang_ja" value="ja">日本語</option>
        					<option id="lang_nl" value="nl">Nederlands</option>
        					<option id="lang_pl" value="pl">Polski</option>
        					<option id="lang_pt-BR" value="pt-BR">Português (BR)</option>
        					<option id="lang_ro" value="ro">Română</option>
        					<option id="lang_ru" value="ru">Русский</option>
        					<option id="lang_sk" value="sk">Slovenčina</option>
        					<option id="lang_sl" value="sl">Slovenščina</option>
        					<option id="lang_zh-TW" value="zh-TW">繁體中文</option>
        				</select>
        			</label>
        
        			<label><span id="svginfo_icons">Icon size:</span>
        				<select id="iconsize">
        					<option id="icon_small" value="s">Small</option>
        					<option id="icon_medium" value="m" selected="selected">Medium</option>
        					<option id="icon_large" value="l">Large</option>
        					<option id="icon_xlarge" value="xl">Extra Large</option>
        				</select>
        			</label>
        
        			<fieldset id="change_background">
        				<legend id="svginfo_change_background">Editor Background</legend>
        				<div id="bg_blocks"></div>
        				<label><span id="svginfo_bg_url">URL:</span> <input type="text" id="canvas_bg_url"/></label>
        				<p id="svginfo_bg_note">Note: Background will not be saved with image.</p>
        			</fieldset>
        
        			<fieldset id="change_grid">
        				<legend id="svginfo_grid_settings">Grid</legend>
        				<label><span id="svginfo_snap_onoff">Snapping on/off</span><input type="checkbox" value="snapping_on" id="grid_snapping_on"/></label>
        				<label><span id="svginfo_snap_step">Snapping Step-Size:</span> <input type="text" id="grid_snapping_step" size="3" value="10"/></label>
        				<label><span id="svginfo_grid_color">Grid color:</span> <input type="text" id="grid_color" size="3" value="#000"/></label>
        			</fieldset>
        
        			<fieldset id="units_rulers">
        				<legend id="svginfo_units_rulers">Units &amp; Rulers</legend>
        				<label><span id="svginfo_rulers_onoff">Show rulers</span><input type="checkbox" value="show_rulers" id="show_rulers" checked="checked"/></label>
        				<label>
        					<span id="svginfo_unit">Base Unit:</span>
        					<select id="base_unit">
        						<option value="px">Pixels</option>
        						<option value="cm">Centimeters</option>
        						<option value="mm">Millimeters</option>
        						<option value="in">Inches</option>
        						<option value="pt">Points</option>
        						<option value="pc">Picas</option>
        						<option value="em">Ems</option>
        						<option value="ex">Exs</option>
        					</select>
        				</label>
        				<!-- Should this be an export option instead? -->
        <!-- 
        				<span id="svginfo_unit_system">Unit System:</span>
        				<label>
        					<input type="radio" name="unit_system" value="single" checked="checked"/>
        					<span id="svginfo_single_type_unit">Single type unit</span>
        					<small id="svginfo_single_type_unit_sub">CSS unit type is set on root element. If a different unit type is entered in a text field, it is converted back to user units on export.</small>
        				</label>
        				<label>
        					<input type="radio" name="unit_system" value="multi"/>
        					<span id="svginfo_multi_units">Multiple CSS units</span> 
        					<small id="svginfo_single_type_unit_sub">Attributes can be given different CSS units, which may lead to inconsistant results among viewers.</small>
        				</label>
         -->
        			</fieldset>
        
        		</fieldset>
        
        	</div>
        </div>
        
        <div id="dialog_box">
        	<div class="overlay"></div>
        	<div id="dialog_container">
        		<div id="dialog_content"></div>
        		<div id="dialog_buttons"></div>
        	</div>
        </div>
        
        <ul id="cmenu_canvas" class="contextMenu">
        	<li><a href="#cut">Cut</a></li>
        	<li><a href="#copy">Copy</a></li>
        	<li><a href="#paste">Paste</a></li>
        	<li><a href="#paste_in_place">Paste in Place</a></li>
        	<li class="separator"><a href="#delete">Delete</a></li>
        	<li class="separator"><a href="#group">Group<span class="shortcut">G</span></a></li>
        	<li><a href="#ungroup">Ungroup<span class="shortcut">G</span></a></li>
        	<li class="separator"><a href="#move_front">Bring to Front<span class="shortcut">SHFT+CTRL+]</span></a></li>
        	<li><a href="#move_up">Bring Forward<span class="shortcut">CTRL+]</span></a></li>
        	<li><a href="#move_down">Send Backward<span class="shortcut">CTRL+[</span></a></li>
        	<li><a href="#move_back">Send to Back<span class="shortcut">SHFT+CTRL+[</span></a></li>
        </ul>
        
        
        <ul id="cmenu_layers" class="contextMenu">
        	<li><a href="#dupe">Duplicate Layer...</a></li>
        	<li><a href="#delete">Delete Layer</a></li>
        	<li><a href="#merge_down">Merge Down</a></li>
        	<li><a href="#merge_all">Merge All</a></li>
        </ul>
        
      • jquery-svg.js
        /*globals $, jQuery */
        /*jslint vars: true */
        /**
         * jQuery module to work with SVG.
         *
         * Licensed under the MIT License
         *
         */
        
        // Dependencies:
        // 1) jquery
        
        (function() {'use strict';
        
          // This fixes $(...).attr() to work as expected with SVG elements.
          // Does not currently use *AttributeNS() since we rarely need that.
        
          // See http://api.jquery.com/attr/ for basic documentation of .attr()
        
          // Additional functionality:
          // - When getting attributes, a string that's a number is return as type number.
          // - If an array is supplied as first parameter, multiple values are returned
          // as an object with values for each given attributes
        
          var proxied = jQuery.fn.attr,
            // TODO use NS.SVG instead
            svgns = "http://www.w3.org/2000/svg";
          jQuery.fn.attr = function(key, value) {
            var i, attr;
        	var len = this.length;
            if (!len) {return proxied.apply(this, arguments);}
            for (i = 0; i < len; ++i) {
              var elem = this[i];
              // set/get SVG attribute
              if (elem.namespaceURI === svgns) {
                // Setting attribute
                if (value !== undefined) {
                  elem.setAttribute(key, value);
                } else if ($.isArray(key)) {
                  // Getting attributes from array
                  var j = key.length, obj = {};
        
                  while (j--) {
                    var aname = key[j];
                    attr = elem.getAttribute(aname);
                    // This returns a number when appropriate
                    if (attr || attr === "0") {
                      attr = isNaN(attr) ? attr : (attr - 0);
                    }
                    obj[aname] = attr;
                  }
                  return obj;
                }
        		if (typeof key === "object") {
                  // Setting attributes form object
        		  var v;
                  for (v in key) {
                    elem.setAttribute(v, key[v]);
                  }
                // Getting attribute
                } else {
                  attr = elem.getAttribute(key);
                  if (attr || attr === "0") {
                    attr = isNaN(attr) ? attr : (attr - 0);
                  }
                  return attr;
                }
              } else {
                return proxied.apply(this, arguments);
              }
            }
            return this;
          };
        }());
        
      • jquery.js
        /*! jQuery v1.7.1 jquery.com | jquery.org/license */
        (function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function cb(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function ca(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bE.test(a)?d(a,e):ca(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)ca(a+"["+e+"]",b[e],c,d);else d(a,b)}function b_(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bT,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bP),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bC(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bx:by,g=0,h=e.length;if(d>0){if(c!=="border")for(;g<h;g++)c||(d-=parseFloat(f.css(a,"padding"+e[g]))||0),c==="margin"?d+=parseFloat(f.css(a,c+e[g]))||0:d-=parseFloat(f.css(a,"border"+e[g]+"Width"))||0;return d+"px"}d=bz(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0;if(c)for(;g<h;g++)d+=parseFloat(f.css(a,"padding"+e[g]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+e[g]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+e[g]))||0);return d+"px"}function bp(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c+(i[c][d].namespace?".":"")+i[c][d].namespace,i[c][d],i[c][d].data)}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?m(g):h==="function"&&(!a.unique||!o.has(g))&&c.push(g)},n=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,l=j||0,j=0,k=c.length;for(;c&&l<k;l++)if(c[l].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}i=!1,c&&(a.once?e===!0?o.disable():c=[]:d&&d.length&&(e=d.shift(),o.fireWith(e[0],e[1])))},o={add:function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){i&&f<=k&&(k--,f<=l&&l--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&o.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(i?a.once||d.push([b,c]):(!a.once||!e)&&n(b,c));return this},fire:function(){o.fireWith(this,arguments);return this},fired:function(){return!!e}};return o};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p,q=c.createElement("div"),r=c.documentElement;q.setAttribute("className","t"),q.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="<div "+n+"><div></div></div>"+"<table "+n+" cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="<div style='width:4px;'></div>",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h=null;if(typeof a=="undefined"){if(this.length){h=f.data(this[0]);if(this[0].nodeType===1&&!f._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var i=0,j=e.length;i<j;i++)g=e[i].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),l(this[0],g,h[g]));f._data(this[0],"parsedAttrs",!0)}}return h}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split("."),d[1]=d[1]?"."+d[1]:"";if(c===b){h=this.triggerHandler("getData"+d[1]+"!",[d[0]]),h===b&&this.length&&(h=f.data(this[0],a),h=l(this[0],a,h));return h===b&&d[1]?this.data(d[0]):h}return this.each(function(){var b=f(this),e=[d[0],c];b.triggerHandler("setData"+d[1]+"!",e),f.data(this,a,c),b.triggerHandler("changeData"+d[1]+"!",e)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise()}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h<g;h++)e=d[h],e&&(c=f.propFix[e]||e,f.attr(a,e,""),a.removeAttribute(v?e:c),u.test(e)&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};
        f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=[],j,k,l,m,n,o,p,q,r,s,t;g[0]=c,c.delegateTarget=this;if(e&&!c.target.disabled&&(!c.button||c.type!=="click")){m=f(this),m.context=this.ownerDocument||this;for(l=c.target;l!=this;l=l.parentNode||this){o={},q=[],m[0]=l;for(j=0;j<e;j++)r=d[j],s=r.selector,o[s]===b&&(o[s]=r.quick?H(l,r.quick):m.is(s)),o[s]&&q.push(r);q.length&&i.push({elem:l,matches:q})}}d.length>e&&i.push({elem:this,matches:d.slice(e)});for(j=0;j<i.length&&!c.isPropagationStopped();j++){p=i[j],c.currentTarget=p.elem;for(k=0;k<p.matches.length&&!c.isImmediatePropagationStopped();k++){r=p.matches[k];if(h||!c.namespace&&!r.namespace||c.namespace_re&&c.namespace_re.test(r.namespace))c.data=r.data,c.handleObj=r,n=((f.event.special[r.origType]||{}).handle||r.handler).apply(p.elem,g),n!==b&&(c.result=n,n===!1&&(c.preventDefault(),c.stopPropagation()))}}return c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0)}),d._submit_attached=!0)})},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on.call(this,a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.type+"."+e.namespace:e.type,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.POS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function()
        {for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bp)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bn(k[i]);else bn(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bq=/alpha\([^)]*\)/i,br=/opacity=([^)]*)/,bs=/([A-Z]|^ms)/g,bt=/^-?\d+(?:px)?$/i,bu=/^-?\d/,bv=/^([\-+])=([\-+.\de]+)/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bv.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return bC(a,b,d);f.swap(a,bw,function(){e=bC(a,b,d)});return e}},set:function(a,b){if(!bt.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cv(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cn.test(h)?(o=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),o?(f._data(this,"toggle"+i,o==="show"?"hide":"show"),j[o]()):j[h]()):(k=co.exec(h),l=j.cur(),k?(m=parseFloat(k[2]),n=k[3]||(f.cssNumber[i]?"":"px"),n!=="px"&&(f.style(this,i,(m||1)+n),l=(m||1)/j.cur()*l,f.style(this,i,l+n)),k[1]&&(m=(k[1]==="-="?-1:1)*m+l),j.custom(l,m,n)):j.custom(l,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cr||cs(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){e.options.hide&&f._data(e.elem,"fxshow"+e.prop)===b&&f._data(e.elem,"fxshow"+e.prop,e.start)},h()&&f.timers.push(h)&&!cp&&(cp=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cr||cs(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cp),cp=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(["width","height"],function(a,b){f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.support.fixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.support.fixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window);
      • math.js
        /*globals svgedit*/
        /*jslint vars: true, eqeq: true */
        /**
         * Package: svedit.math
         *
         * Licensed under the MIT License
         *
         * Copyright(c) 2010 Alexis Deveria
         * Copyright(c) 2010 Jeff Schiller
         */
        
        // Dependencies:
        // None.
         
        /**
        * @typedef AngleCoord45
        * @type {object}
        * @property {number} x - The angle-snapped x value
        * @property {number} y - The angle-snapped y value
        * @property {number} a - The angle at which to snap
        */
        
        (function() {'use strict';
        
        if (!svgedit.math) {
        	svgedit.math = {};
        }
        
        // Constants
        var NEAR_ZERO = 1e-14;
        
        // Throw away SVGSVGElement used for creating matrices/transforms.
        var svg = document.createElementNS(svgedit.NS.SVG, 'svg');
        
        /**
         * A (hopefully) quicker function to transform a point by a matrix
         * (this function avoids any DOM calls and just does the math)
         * @param {number} x - Float representing the x coordinate
         * @param {number} y - Float representing the y coordinate
         * @param {SVGMatrix} m - Matrix object to transform the point with
         * @returns {object} An x, y object representing the transformed point
        */
        svgedit.math.transformPoint = function (x, y, m) {
        	return { x: m.a * x + m.c * y + m.e, y: m.b * x + m.d * y + m.f};
        };
        
        
        /**
         * Helper function to check if the matrix performs no actual transform 
         * (i.e. exists for identity purposes)
         * @param {SVGMatrix} m - The matrix object to check
         * @returns {boolean} Indicates whether or not the matrix is 1,0,0,1,0,0
        */
        svgedit.math.isIdentity = function (m) {
        	return (m.a === 1 && m.b === 0 && m.c === 0 && m.d === 1 && m.e === 0 && m.f === 0);
        };
        
        
        /**
         * This function tries to return a SVGMatrix that is the multiplication m1*m2.
         * We also round to zero when it's near zero
         * @param {...SVGMatrix} matr - Two or more matrix objects to multiply
         * @returns {SVGMatrix} The matrix object resulting from the calculation
        */
        svgedit.math.matrixMultiply = function (matr) {
        	var args = arguments, i = args.length, m = args[i-1];
        
        	while (i-- > 1) {
        		var m1 = args[i-1];
        		m = m1.multiply(m);
        	}
        	if (Math.abs(m.a) < NEAR_ZERO) {m.a = 0;}
        	if (Math.abs(m.b) < NEAR_ZERO) {m.b = 0;}
        	if (Math.abs(m.c) < NEAR_ZERO) {m.c = 0;}
        	if (Math.abs(m.d) < NEAR_ZERO) {m.d = 0;}
        	if (Math.abs(m.e) < NEAR_ZERO) {m.e = 0;}
        	if (Math.abs(m.f) < NEAR_ZERO) {m.f = 0;}
        
        	return m;
        };
        
        /**
         * See if the given transformlist includes a non-indentity matrix transform
         * @param {object} [tlist] - The transformlist to check
         * @returns {boolean} Whether or not a matrix transform was found
        */
        svgedit.math.hasMatrixTransform = function (tlist) {
        	if (!tlist) {return false;}
        	var num = tlist.numberOfItems;
        	while (num--) {
        		var xform = tlist.getItem(num);
        		if (xform.type == 1 && !svgedit.math.isIdentity(xform.matrix)) {return true;}
        	}
        	return false;
        };
        
        /**
         * Transforms a rectangle based on the given matrix
         * @param {number} l - Float with the box's left coordinate
         * @param {number} t - Float with the box's top coordinate
         * @param {number} w - Float with the box width
         * @param {number} h - Float with the box height
         * @param {SVGMatrix} m - Matrix object to transform the box by
         * @returns {object} An object with the following values:
         * tl - The top left coordinate (x,y object)
         * tr - The top right coordinate (x,y object)
         * bl - The bottom left coordinate (x,y object)
         * br - The bottom right coordinate (x,y object)
         * aabox - Object with the following values:
         * x - Float with the axis-aligned x coordinate
         * y - Float with the axis-aligned y coordinate
         * width - Float with the axis-aligned width coordinate
         * height - Float with the axis-aligned height coordinate
        */
        svgedit.math.transformBox = function (l, t, w, h, m) {
        	var transformPoint = svgedit.math.transformPoint,
        
        		tl = transformPoint(l, t, m),
        		tr = transformPoint((l + w), t, m),
        		bl = transformPoint(l, (t + h), m),
        		br = transformPoint((l + w), (t + h), m),
        
        		minx = Math.min(tl.x, tr.x, bl.x, br.x),
        		maxx = Math.max(tl.x, tr.x, bl.x, br.x),
        		miny = Math.min(tl.y, tr.y, bl.y, br.y),
        		maxy = Math.max(tl.y, tr.y, bl.y, br.y);
        
        	return {
        		tl: tl,
        		tr: tr,
        		bl: bl,
        		br: br,
        		aabox: {
        			x: minx,
        			y: miny,
        			width: (maxx - minx),
        			height: (maxy - miny)
        		}
        	};
        };
        
        /**
         * This returns a single matrix Transform for a given Transform List
         * (this is the equivalent of SVGTransformList.consolidate() but unlike
         * that method, this one does not modify the actual SVGTransformList)
         * This function is very liberal with its min, max arguments
         * @param {object} tlist - The transformlist object
         * @param {integer} [min=0] - Optional integer indicating start transform position
         * @param {integer} [max] - Optional integer indicating end transform position;
         *   defaults to one less than the tlist's numberOfItems
         * @returns {object} A single matrix transform object
        */
        svgedit.math.transformListToTransform = function (tlist, min, max) {
        	if (tlist == null) {
        		// Or should tlist = null have been prevented before this?
        		return svg.createSVGTransformFromMatrix(svg.createSVGMatrix());
        	}
        	min = min || 0;
        	max = max || (tlist.numberOfItems - 1);
        	min = parseInt(min, 10);
        	max = parseInt(max, 10);
        	if (min > max) { var temp = max; max = min; min = temp; }
        	var m = svg.createSVGMatrix();
        	var i;
        	for (i = min; i <= max; ++i) {
        		// if our indices are out of range, just use a harmless identity matrix
        		var mtom = (i >= 0 && i < tlist.numberOfItems ? 
        						tlist.getItem(i).matrix :
        						svg.createSVGMatrix());
        		m = svgedit.math.matrixMultiply(m, mtom);
        	}
        	return svg.createSVGTransformFromMatrix(m);
        };
        
        
        /**
         * Get the matrix object for a given element
         * @param {Element} elem - The DOM element to check
         * @returns {SVGMatrix} The matrix object associated with the element's transformlist
        */
        svgedit.math.getMatrix = function (elem) {
        	var tlist = svgedit.transformlist.getTransformList(elem);
        	return svgedit.math.transformListToTransform(tlist).matrix;
        };
        
        
        /**
         * Returns a 45 degree angle coordinate associated with the two given
         * coordinates
         * @param {number} x1 - First coordinate's x value
         * @param {number} x2 - Second coordinate's x value
         * @param {number} y1 - First coordinate's y value
         * @param {number} y2 - Second coordinate's y value
         * @returns {AngleCoord45}
        */
        svgedit.math.snapToAngle = function (x1, y1, x2, y2) {
        	var snap = Math.PI / 4; // 45 degrees
        	var dx = x2 - x1;
        	var dy = y2 - y1;
        	var angle = Math.atan2(dy, dx);
        	var dist = Math.sqrt(dx * dx + dy * dy);
        	var snapangle = Math.round(angle / snap) * snap;
        
        	return {
        		x: x1 + dist * Math.cos(snapangle),
        		y: y1 + dist * Math.sin(snapangle),
        		a: snapangle
        	};
        };
        
        
        /**
         * Check if two rectangles (BBoxes objects) intersect each other
         * @param {SVGRect} r1 - The first BBox-like object
         * @param {SVGRect} r2 - The second BBox-like object
         * @returns {boolean} True if rectangles intersect
         */
        svgedit.math.rectsIntersect = function (r1, r2) {
        	return r2.x < (r1.x + r1.width) &&
        		(r2.x + r2.width) > r1.x &&
        		r2.y < (r1.y + r1.height) &&
        		(r2.y + r2.height) > r1.y;
        };
        
        }());
        
      • path.js
        /*globals $, svgedit, svgroot*/
        /*jslint vars: true, eqeq: true, continue: true*/
        /**
         * Package: svgedit.path
         *
         * Licensed under the MIT License
         *
         * Copyright(c) 2011 Alexis Deveria
         * Copyright(c) 2011 Jeff Schiller
         */
        
        // Dependencies:
        // 1) jQuery
        // 2) browser.js
        // 3) math.js
        // 4) svgutils.js
        
        (function() {'use strict';
        
        if (!svgedit.path) {
        	svgedit.path = {};
        }
        
        var NS = svgedit.NS;
        var uiStrings = {
        	'pathNodeTooltip': 'Drag node to move it. Double-click node to change segment type',
        	'pathCtrlPtTooltip': 'Drag control point to adjust curve properties'
        };
        
        var segData = {
        	2: ['x', 'y'],
        	4: ['x', 'y'],
        	6: ['x', 'y', 'x1', 'y1', 'x2', 'y2'],
        	8: ['x', 'y', 'x1', 'y1'],
        	10: ['x', 'y', 'r1', 'r2', 'angle', 'largeArcFlag', 'sweepFlag'],
        	12: ['x'],
        	14: ['y'],
        	16: ['x', 'y', 'x2', 'y2'],
        	18: ['x', 'y']
        };
        
        var pathFuncs = [];
        
        var link_control_pts = true;
        
        // Stores references to paths via IDs.
        // TODO: Make this cross-document happy.
        var pathData = {};
        
        svgedit.path.setLinkControlPoints = function(lcp) {
        	link_control_pts = lcp;
        };
        
        svgedit.path.path = null;
        
        var editorContext_ = null;
        
        svgedit.path.init = function(editorContext) {
        	editorContext_ = editorContext;
        
        	pathFuncs = [0, 'ClosePath'];
        	var pathFuncsStrs = ['Moveto', 'Lineto', 'CurvetoCubic', 'CurvetoQuadratic', 'Arc',
        		'LinetoHorizontal', 'LinetoVertical', 'CurvetoCubicSmooth', 'CurvetoQuadraticSmooth'];
        	$.each(pathFuncsStrs, function(i, s) {
        		pathFuncs.push(s+'Abs');
        		pathFuncs.push(s+'Rel');
        	});
        };
        
        svgedit.path.insertItemBefore = function(elem, newseg, index) {
        	// Support insertItemBefore on paths for FF2
        	var list = elem.pathSegList;
        
        	if (svgedit.browser.supportsPathInsertItemBefore()) {
        		list.insertItemBefore(newseg, index);
        		return;
        	}
        	var len = list.numberOfItems;
        	var arr = [];
        	var i;
        	for (i=0; i < len; i++) {
        		var cur_seg = list.getItem(i);
        		arr.push(cur_seg);
        	}
        	list.clear();
        	for (i=0; i < len; i++) {
        		if (i == index) { //index+1
        			list.appendItem(newseg);
        		}
        		list.appendItem(arr[i]);
        	}
        };
        
        // TODO: See if this should just live in replacePathSeg
        svgedit.path.ptObjToArr = function(type, seg_item) {
        	var arr = segData[type], len = arr.length;
        	var i, out = [];
        	for (i = 0; i < len; i++) {
        		out[i] = seg_item[arr[i]];
        	}
        	return out;
        };
        
        svgedit.path.getGripPt = function(seg, alt_pt) {
        	var out = {
        		x: alt_pt? alt_pt.x : seg.item.x,
        		y: alt_pt? alt_pt.y : seg.item.y
        	}, path = seg.path;
        
        	if (path.matrix) {
        		var pt = svgedit.math.transformPoint(out.x, out.y, path.matrix);
        		out = pt;
        	}
        
        	out.x *= editorContext_.getCurrentZoom();
        	out.y *= editorContext_.getCurrentZoom();
        
        	return out;
        };
        
        svgedit.path.getPointFromGrip = function(pt, path) {
        	var out = {
        		x: pt.x,
        		y: pt.y
        	};
        
        	if (path.matrix) {
        		pt = svgedit.math.transformPoint(out.x, out.y, path.imatrix);
        		out.x = pt.x;
        		out.y = pt.y;
        	}
        
        	out.x /= editorContext_.getCurrentZoom();
        	out.y /= editorContext_.getCurrentZoom();
        
        	return out;
        };
        
        svgedit.path.addPointGrip = function(index, x, y) {
        	// create the container of all the point grips
        	var pointGripContainer = svgedit.path.getGripContainer();
        
        	var pointGrip = svgedit.utilities.getElem('pathpointgrip_'+index);
        	// create it
        	if (!pointGrip) {
        		pointGrip = document.createElementNS(NS.SVG, 'circle');
        		svgedit.utilities.assignAttributes(pointGrip, {
        			'id': 'pathpointgrip_' + index,
        			'display': 'none',
        			'r': 4,
        			'fill': '#0FF',
        			'stroke': '#00F',
        			'stroke-width': 2,
        			'cursor': 'move',
        			'style': 'pointer-events:all',
        			'xlink:title': uiStrings.pathNodeTooltip
        		});
        		pointGrip = pointGripContainer.appendChild(pointGrip);
        
        		var grip = $('#pathpointgrip_'+index);
        		grip.dblclick(function() {
        			if (svgedit.path.path) {
        				svgedit.path.path.setSegType();
        			}
        		});
        	}
        	if (x && y) {
        		// set up the point grip element and display it
        		svgedit.utilities.assignAttributes(pointGrip, {
        			'cx': x,
        			'cy': y,
        			'display': 'inline'
        		});
        	}
        	return pointGrip;
        };
        
        svgedit.path.getGripContainer = function() {
        	var c = svgedit.utilities.getElem('pathpointgrip_container');
        	if (!c) {
        		var parent = svgedit.utilities.getElem('selectorParentGroup');
        		c = parent.appendChild(document.createElementNS(NS.SVG, 'g'));
        		c.id = 'pathpointgrip_container';
        	}
        	return c;
        };
        
        svgedit.path.addCtrlGrip = function(id) {
        	var pointGrip = svgedit.utilities.getElem('ctrlpointgrip_'+id);
        	if (pointGrip) {return pointGrip;}
        
        	pointGrip = document.createElementNS(NS.SVG, 'circle');
        	svgedit.utilities.assignAttributes(pointGrip, {
        		'id': 'ctrlpointgrip_' + id,
        		'display': 'none',
        		'r': 4,
        		'fill': '#0FF',
        		'stroke': '#55F',
        		'stroke-width': 1,
        		'cursor': 'move',
        		'style': 'pointer-events:all',
        		'xlink:title': uiStrings.pathCtrlPtTooltip
        	});
        	svgedit.path.getGripContainer().appendChild(pointGrip);
        	return pointGrip;
        };
        
        svgedit.path.getCtrlLine = function(id) {
        	var ctrlLine = svgedit.utilities.getElem('ctrlLine_'+id);
        	if (ctrlLine) {return ctrlLine;}
        
        	ctrlLine = document.createElementNS(NS.SVG, 'line');
        	svgedit.utilities.assignAttributes(ctrlLine, {
        		'id': 'ctrlLine_'+id,
        		'stroke': '#555',
        		'stroke-width': 1,
        		'style': 'pointer-events:none'
        	});
        	svgedit.path.getGripContainer().appendChild(ctrlLine);
        	return ctrlLine;
        };
        
        svgedit.path.getPointGrip = function(seg, update) {
        	var index = seg.index;
        	var pointGrip = svgedit.path.addPointGrip(index);
        
        	if (update) {
        		var pt = svgedit.path.getGripPt(seg);
        		svgedit.utilities.assignAttributes(pointGrip, {
        			'cx': pt.x,
        			'cy': pt.y,
        			'display': 'inline'
        		});
        	}
        
        	return pointGrip;
        };
        
        svgedit.path.getControlPoints = function(seg) {
        	var item = seg.item;
        	var index = seg.index;
        	if (!('x1' in item) || !('x2' in item)) {return null;}
        	var cpt = {};
        	var pointGripContainer = svgedit.path.getGripContainer();
        
        	// Note that this is intentionally not seg.prev.item
        	var prev = svgedit.path.path.segs[index-1].item;
        
        	var seg_items = [prev, item];
        
        	var i;
        	for (i = 1; i < 3; i++) {
        		var id = index + 'c' + i;
        
        		var ctrlLine = cpt['c' + i + '_line'] = svgedit.path.getCtrlLine(id);
        
        		var pt = svgedit.path.getGripPt(seg, {x:item['x' + i], y:item['y' + i]});
        		var gpt = svgedit.path.getGripPt(seg, {x:seg_items[i-1].x, y:seg_items[i-1].y});
        
        		svgedit.utilities.assignAttributes(ctrlLine, {
        			'x1': pt.x,
        			'y1': pt.y,
        			'x2': gpt.x,
        			'y2': gpt.y,
        			'display': 'inline'
        		});
        
        		cpt['c' + i + '_line'] = ctrlLine;
        
        		// create it
        		var pointGrip = cpt['c' + i] = svgedit.path.addCtrlGrip(id);
        
        		svgedit.utilities.assignAttributes(pointGrip, {
        			'cx': pt.x,
        			'cy': pt.y,
        			'display': 'inline'
        		});
        		cpt['c' + i] = pointGrip;
        	}
        	return cpt;
        };
        
        // This replaces the segment at the given index. Type is given as number.
        svgedit.path.replacePathSeg = function(type, index, pts, elem) {
        	var path = elem || svgedit.path.path.elem;
        	var func = 'createSVGPathSeg' + pathFuncs[type];
        	var seg = path[func].apply(path, pts);
        
        	if (svgedit.browser.supportsPathReplaceItem()) {
        		path.pathSegList.replaceItem(seg, index);
        	} else {
        		var segList = path.pathSegList;
        		var len = segList.numberOfItems;
        		var arr = [];
        		var i;
        		for (i = 0; i < len; i++) {
        			var cur_seg = segList.getItem(i);
        			arr.push(cur_seg);
        		}
        		segList.clear();
        		for (i = 0; i < len; i++) {
        			if (i == index) {
        				segList.appendItem(seg);
        			} else {
        				segList.appendItem(arr[i]);
        			}
        		}
        	}
        };
        
        svgedit.path.getSegSelector = function(seg, update) {
        	var index = seg.index;
        	var segLine = svgedit.utilities.getElem('segline_' + index);
        	if (!segLine) {
        		var pointGripContainer = svgedit.path.getGripContainer();
        		// create segline
        		segLine = document.createElementNS(NS.SVG, 'path');
        		svgedit.utilities.assignAttributes(segLine, {
        			'id': 'segline_' + index,
        			'display': 'none',
        			'fill': 'none',
        			'stroke': '#0FF',
        			'stroke-width': 2,
        			'style':'pointer-events:none',
        			'd': 'M0,0 0,0'
        		});
        		pointGripContainer.appendChild(segLine);
        	}
        
        	if (update) {
        		var prev = seg.prev;
        		if (!prev) {
        			segLine.setAttribute('display', 'none');
        			return segLine;
        		}
        
        		var pt = svgedit.path.getGripPt(prev);
        		// Set start point
        		svgedit.path.replacePathSeg(2, 0, [pt.x, pt.y], segLine);
        
        		var pts = svgedit.path.ptObjToArr(seg.type, seg.item, true);
        		var i;
        		for (i = 0; i < pts.length; i += 2) {
        			pt = svgedit.path.getGripPt(seg, {x:pts[i], y:pts[i+1]});
        			pts[i] = pt.x;
        			pts[i+1] = pt.y;
        		}
        
        		svgedit.path.replacePathSeg(seg.type, 1, pts, segLine);
        	}
        	return segLine;
        };
        
        // Function: smoothControlPoints
        // Takes three points and creates a smoother line based on them
        // 
        // Parameters: 
        // ct1 - Object with x and y values (first control point)
        // ct2 - Object with x and y values (second control point)
        // pt - Object with x and y values (third point)
        //
        // Returns: 
        // Array of two "smoothed" point objects
        svgedit.path.smoothControlPoints = function(ct1, ct2, pt) {
        	// each point must not be the origin
        	var x1 = ct1.x - pt.x,
        		y1 = ct1.y - pt.y,
        		x2 = ct2.x - pt.x,
        		y2 = ct2.y - pt.y;
        
        	if ( (x1 != 0 || y1 != 0) && (x2 != 0 || y2 != 0) ) {
        		var anglea = Math.atan2(y1, x1),
        			angleb = Math.atan2(y2, x2),
        			r1 = Math.sqrt(x1*x1+y1*y1),
        			r2 = Math.sqrt(x2*x2+y2*y2),
        			nct1 = editorContext_.getSVGRoot().createSVGPoint(),
        			nct2 = editorContext_.getSVGRoot().createSVGPoint();
        		if (anglea < 0) { anglea += 2*Math.PI; }
        		if (angleb < 0) { angleb += 2*Math.PI; }
        
        		var angleBetween = Math.abs(anglea - angleb),
        			angleDiff = Math.abs(Math.PI - angleBetween)/2;
        
        		var new_anglea, new_angleb;
        		if (anglea - angleb > 0) {
        			new_anglea = angleBetween < Math.PI ? (anglea + angleDiff) : (anglea - angleDiff);
        			new_angleb = angleBetween < Math.PI ? (angleb - angleDiff) : (angleb + angleDiff);
        		}
        		else {
        			new_anglea = angleBetween < Math.PI ? (anglea - angleDiff) : (anglea + angleDiff);
        			new_angleb = angleBetween < Math.PI ? (angleb + angleDiff) : (angleb - angleDiff);
        		}
        
        		// rotate the points
        		nct1.x = r1 * Math.cos(new_anglea) + pt.x;
        		nct1.y = r1 * Math.sin(new_anglea) + pt.y;
        		nct2.x = r2 * Math.cos(new_angleb) + pt.x;
        		nct2.y = r2 * Math.sin(new_angleb) + pt.y;
        
        		return [nct1, nct2];
        	}
        	return undefined;
        };
        
        svgedit.path.Segment = function(index, item) {
        	this.selected = false;
        	this.index = index;
        	this.item = item;
        	this.type = item.pathSegType;
        
        	this.ctrlpts = [];
        	this.ptgrip = null;
        	this.segsel = null;
        };
        
        svgedit.path.Segment.prototype.showCtrlPts = function(y) {
        	var i;
        	for (i in this.ctrlpts) {
        		if (this.ctrlpts.hasOwnProperty(i)) {
        			this.ctrlpts[i].setAttribute('display', y ? 'inline' : 'none');
        		}
        	}
        };
        
        svgedit.path.Segment.prototype.selectCtrls = function(y) {
        	$('#ctrlpointgrip_' + this.index + 'c1, #ctrlpointgrip_' + this.index + 'c2').
        		attr('fill', y ? '#0FF' : '#EEE');
        };
        
        svgedit.path.Segment.prototype.show = function(y) {
        	if (this.ptgrip) {
        		this.ptgrip.setAttribute('display', y ? 'inline' : 'none');
        		this.segsel.setAttribute('display', y ? 'inline' : 'none');
        		// Show/hide all control points if available
        		this.showCtrlPts(y);
        	}
        };
        
        svgedit.path.Segment.prototype.select = function(y) {
        	if (this.ptgrip) {
        		this.ptgrip.setAttribute('stroke', y ? '#0FF' : '#00F');
        		this.segsel.setAttribute('display', y ? 'inline' : 'none');
        		if (this.ctrlpts) {
        			this.selectCtrls(y);
        		}
        		this.selected = y;
        	}
        };
        
        svgedit.path.Segment.prototype.addGrip = function() {
        	this.ptgrip = svgedit.path.getPointGrip(this, true);
        	this.ctrlpts = svgedit.path.getControlPoints(this, true);
        	this.segsel = svgedit.path.getSegSelector(this, true);
        };
        
        svgedit.path.Segment.prototype.update = function(full) {
        	if (this.ptgrip) {
        		var pt = svgedit.path.getGripPt(this);
        		svgedit.utilities.assignAttributes(this.ptgrip, {
        			'cx': pt.x,
        			'cy': pt.y
        		});
        
        		svgedit.path.getSegSelector(this, true);
        
        		if (this.ctrlpts) {
        			if (full) {
        				this.item = svgedit.path.path.elem.pathSegList.getItem(this.index);
        				this.type = this.item.pathSegType;
        			}
        			svgedit.path.getControlPoints(this);
        		}
        		// this.segsel.setAttribute('display', y?'inline':'none');
        	}
        };
        
        svgedit.path.Segment.prototype.move = function(dx, dy) {
        	var cur_pts, item = this.item;
        
        	if (this.ctrlpts) {
        		cur_pts = [item.x += dx, item.y += dy, 
        			item.x1, item.y1, item.x2 += dx, item.y2 += dy];
        	} else {
        		cur_pts = [item.x += dx, item.y += dy];
        	}
        	svgedit.path.replacePathSeg(this.type, this.index, cur_pts);
        
        	if (this.next && this.next.ctrlpts) {
        		var next = this.next.item;
        		var next_pts = [next.x, next.y, 
        			next.x1 += dx, next.y1 += dy, next.x2, next.y2];
        		svgedit.path.replacePathSeg(this.next.type, this.next.index, next_pts);
        	}
        
        	if (this.mate) {
        		// The last point of a closed subpath has a 'mate',
        		// which is the 'M' segment of the subpath
        		item = this.mate.item;
        		var pts = [item.x += dx, item.y += dy];
        		svgedit.path.replacePathSeg(this.mate.type, this.mate.index, pts);
        		// Has no grip, so does not need 'updating'?
        	}
        
        	this.update(true);
        	if (this.next) {this.next.update(true);}
        };
        
        svgedit.path.Segment.prototype.setLinked = function(num) {
        	var seg, anum, pt;
        	if (num == 2) {
        		anum = 1;
        		seg = this.next;
        		if (!seg) {return;}
        		pt = this.item;
        	} else {
        		anum = 2;
        		seg = this.prev;
        		if (!seg) {return;}
        		pt = seg.item;
        	}
        
        	var item = seg.item;
        
        	item['x' + anum] = pt.x + (pt.x - this.item['x' + num]);
        	item['y' + anum] = pt.y + (pt.y - this.item['y' + num]);
        
        	var pts = [item.x, item.y,
        		item.x1, item.y1,
        		item.x2, item.y2];
        
        	svgedit.path.replacePathSeg(seg.type, seg.index, pts);
        	seg.update(true);
        };
        
        svgedit.path.Segment.prototype.moveCtrl = function(num, dx, dy) {
        	var item = this.item;
        
        	item['x' + num] += dx;
        	item['y' + num] += dy;
        
        	var pts = [item.x, item.y, item.x1, item.y1, item.x2, item.y2];
        
        	svgedit.path.replacePathSeg(this.type, this.index, pts);
        	this.update(true);
        };
        
        svgedit.path.Segment.prototype.setType = function(new_type, pts) {
        	svgedit.path.replacePathSeg(new_type, this.index, pts);
        	this.type = new_type;
        	this.item = svgedit.path.path.elem.pathSegList.getItem(this.index);
        	this.showCtrlPts(new_type === 6);
        	this.ctrlpts = svgedit.path.getControlPoints(this);
        	this.update(true);
        };
        
        svgedit.path.Path = function(elem) {
        	if (!elem || elem.tagName !== 'path') {
        		throw 'svgedit.path.Path constructed without a <path> element';
        	}
        
        	this.elem = elem;
        	this.segs = [];
        	this.selected_pts = [];
        	svgedit.path.path = this;
        
        	this.init();
        };
        
        // Reset path data
        svgedit.path.Path.prototype.init = function() {
        	// Hide all grips, etc
        	$(svgedit.path.getGripContainer()).find('*').attr('display', 'none');
        	var segList = this.elem.pathSegList;
        	var len = segList.numberOfItems;
        	this.segs = [];
        	this.selected_pts = [];
        	this.first_seg = null;
        
        	// Set up segs array
        	var i;
        	for (i = 0; i < len; i++) {
        		var item = segList.getItem(i);
        		var segment = new svgedit.path.Segment(i, item);
        		segment.path = this;
        		this.segs.push(segment);
        	}
        
        	var segs = this.segs;
        	var start_i = null;
        
        	for (i = 0; i < len; i++) {
        		var seg = segs[i];
        		var next_seg = (i+1) >= len ? null : segs[i+1];
        		var prev_seg = (i-1) < 0 ? null : segs[i-1];
        		var start_seg;
        		if (seg.type === 2) {
        			if (prev_seg && prev_seg.type !== 1) {
        				// New sub-path, last one is open,
        				// so add a grip to last sub-path's first point
        				start_seg = segs[start_i];
        				start_seg.next = segs[start_i+1];
        				start_seg.next.prev = start_seg;
        				start_seg.addGrip();
        			}
        			// Remember that this is a starter seg
        			start_i = i;
        		} else if (next_seg && next_seg.type === 1) {
        			// This is the last real segment of a closed sub-path
        			// Next is first seg after "M"
        			seg.next = segs[start_i+1];
        
        			// First seg after "M"'s prev is this
        			seg.next.prev = seg;
        			seg.mate = segs[start_i];
        			seg.addGrip();
        			if (this.first_seg == null) {
        				this.first_seg = seg;
        			}
        		} else if (!next_seg) {
        			if (seg.type !== 1) {
        				// Last seg, doesn't close so add a grip
        				// to last sub-path's first point
        				start_seg = segs[start_i];
        				start_seg.next = segs[start_i+1];
        				start_seg.next.prev = start_seg;
        				start_seg.addGrip();
        				seg.addGrip();
        
        				if (!this.first_seg) {
        					// Open path, so set first as real first and add grip
        					this.first_seg = segs[start_i];
        				}
        			}
        		} else if (seg.type !== 1){
        			// Regular segment, so add grip and its "next"
        			seg.addGrip();
        
        			// Don't set its "next" if it's an "M"
        			if (next_seg && next_seg.type !== 2) {
        				seg.next = next_seg;
        				seg.next.prev = seg;
        			}
        		}
        	}
        	return this;
        };
        
        svgedit.path.Path.prototype.eachSeg = function(fn) {
        	var i;
        	var len = this.segs.length;
        	for (i = 0; i < len; i++) {
        		var ret = fn.call(this.segs[i], i);
        		if (ret === false) {break;}
        	}
        };
        
        svgedit.path.Path.prototype.addSeg = function(index) {
        	// Adds a new segment
        	var seg = this.segs[index];
        	if (!seg.prev) {return;}
        
        	var prev = seg.prev;
        	var newseg, new_x, new_y;
        	switch(seg.item.pathSegType) {
        	case 4:
        		new_x = (seg.item.x + prev.item.x) / 2;
        		new_y = (seg.item.y + prev.item.y) / 2;
        		newseg = this.elem.createSVGPathSegLinetoAbs(new_x, new_y);
        		break;
        	case 6: //make it a curved segment to preserve the shape (WRS)
        		// http://en.wikipedia.org/wiki/De_Casteljau%27s_algorithm#Geometric_interpretation
        		var p0_x = (prev.item.x + seg.item.x1)/2;
        		var p1_x = (seg.item.x1 + seg.item.x2)/2;
        		var p2_x = (seg.item.x2 + seg.item.x)/2;
        		var p01_x = (p0_x + p1_x)/2;
        		var p12_x = (p1_x + p2_x)/2;
        		new_x = (p01_x + p12_x)/2;
        		var p0_y = (prev.item.y + seg.item.y1)/2;
        		var p1_y = (seg.item.y1 + seg.item.y2)/2;
        		var p2_y = (seg.item.y2 + seg.item.y)/2;
        		var p01_y = (p0_y + p1_y)/2;
        		var p12_y = (p1_y + p2_y)/2;
        		new_y = (p01_y + p12_y)/2;
        		newseg = this.elem.createSVGPathSegCurvetoCubicAbs(new_x, new_y, p0_x, p0_y, p01_x, p01_y);
        		var pts = [seg.item.x, seg.item.y, p12_x, p12_y, p2_x, p2_y];
        		svgedit.path.replacePathSeg(seg.type, index, pts);
        		break;
        	}
        
        	svgedit.path.insertItemBefore(this.elem, newseg, index);
        };
        
        svgedit.path.Path.prototype.deleteSeg = function(index) {
        	var seg = this.segs[index];
        	var list = this.elem.pathSegList;
        
        	seg.show(false);
        	var next = seg.next;
        	var pt;
        	if (seg.mate) {
        		// Make the next point be the "M" point
        		pt = [next.item.x, next.item.y];
        		svgedit.path.replacePathSeg(2, next.index, pt);
        
        		// Reposition last node
        		svgedit.path.replacePathSeg(4, seg.index, pt);
        
        		list.removeItem(seg.mate.index);
        	} else if (!seg.prev) {
        		// First node of open path, make next point the M
        		var item = seg.item;
        		pt = [next.item.x, next.item.y];
        		svgedit.path.replacePathSeg(2, seg.next.index, pt);
        		list.removeItem(index);
        	} else {
        		list.removeItem(index);
        	}
        };
        
        svgedit.path.Path.prototype.subpathIsClosed = function(index) {
        	var closed = false;
        	// Check if subpath is already open
        	svgedit.path.path.eachSeg(function(i) {
        		if (i <= index) {return true;}
        		if (this.type === 2) {
        			// Found M first, so open
        			return false;
        		}
        		if (this.type === 1) {
        			// Found Z first, so closed
        			closed = true;
        			return false;
        		}
        	});
        
        	return closed;
        };
        
        svgedit.path.Path.prototype.removePtFromSelection = function(index) {
        	var pos = this.selected_pts.indexOf(index);
        	if (pos == -1) {
        		return;
        	}
        	this.segs[index].select(false);
        	this.selected_pts.splice(pos, 1);
        };
        
        svgedit.path.Path.prototype.clearSelection = function() {
        	this.eachSeg(function() {
        		// 'this' is the segment here
        		this.select(false);
        	});
        	this.selected_pts = [];
        };
        
        svgedit.path.Path.prototype.storeD = function() {
        	this.last_d = this.elem.getAttribute('d');
        };
        
        svgedit.path.Path.prototype.show = function(y) {
        	// Shows this path's segment grips
        	this.eachSeg(function() {
        		// 'this' is the segment here
        		this.show(y);
        	});
        	if (y) {
        		this.selectPt(this.first_seg.index);
        	}
        	return this;
        };
        
        // Move selected points
        svgedit.path.Path.prototype.movePts = function(d_x, d_y) {
        	var i = this.selected_pts.length;
        	while(i--) {
        		var seg = this.segs[this.selected_pts[i]];
        		seg.move(d_x, d_y);
        	}
        };
        
        svgedit.path.Path.prototype.moveCtrl = function(d_x, d_y) {
        	var seg = this.segs[this.selected_pts[0]];
        	seg.moveCtrl(this.dragctrl, d_x, d_y);
        	if (link_control_pts) {
        		seg.setLinked(this.dragctrl);
        	}
        };
        
        svgedit.path.Path.prototype.setSegType = function(new_type) {
        	this.storeD();
        	var i = this.selected_pts.length;
        	var text;
        	while(i--) {
        		var sel_pt = this.selected_pts[i];
        
        		// Selected seg
        		var cur = this.segs[sel_pt];
        		var prev = cur.prev;
        		if (!prev) {continue;}
        
        		if (!new_type) { // double-click, so just toggle
        			text = 'Toggle Path Segment Type';
        
        			// Toggle segment to curve/straight line
        			var old_type = cur.type;
        
        			new_type = (old_type == 6) ? 4 : 6;
        		}
        
        		new_type = Number(new_type);
        
        		var cur_x = cur.item.x;
        		var cur_y = cur.item.y;
        		var prev_x = prev.item.x;
        		var prev_y = prev.item.y;
        		var points;
        		switch ( new_type ) {
        		case 6:
        			if (cur.olditem) {
        				var old = cur.olditem;
        				points = [cur_x, cur_y, old.x1, old.y1, old.x2, old.y2];
        			} else {
        				var diff_x = cur_x - prev_x;
        				var diff_y = cur_y - prev_y;
        				// get control points from straight line segment
        				/*
        				var ct1_x = (prev_x + (diff_y/2));
        				var ct1_y = (prev_y - (diff_x/2));
        				var ct2_x = (cur_x + (diff_y/2));
        				var ct2_y = (cur_y - (diff_x/2));
        				*/
        				//create control points on the line to preserve the shape (WRS)
        				var ct1_x = (prev_x + (diff_x/3));
        				var ct1_y = (prev_y + (diff_y/3));
        				var ct2_x = (cur_x - (diff_x/3));
        				var ct2_y = (cur_y - (diff_y/3));
        				points = [cur_x, cur_y, ct1_x, ct1_y, ct2_x, ct2_y];
        			}
        			break;
        		case 4:
        			points = [cur_x, cur_y];
        
        			// Store original prevve segment nums
        			cur.olditem = cur.item;
        			break;
        		}
        
        		cur.setType(new_type, points);
        	}
        	svgedit.path.path.endChanges(text);
        };
        
        svgedit.path.Path.prototype.selectPt = function(pt, ctrl_num) {
        	this.clearSelection();
        	if (pt == null) {
        		this.eachSeg(function(i) {
        			// 'this' is the segment here.
        			if (this.prev) {
        				pt = i;
        			}
        		});
        	}
        	this.addPtsToSelection(pt);
        	if (ctrl_num) {
        		this.dragctrl = ctrl_num;
        
        		if (link_control_pts) {
        			this.segs[pt].setLinked(ctrl_num);
        		}
        	}
        };
        
        // Update position of all points
        svgedit.path.Path.prototype.update = function() {
        	var elem = this.elem;
        	if (svgedit.utilities.getRotationAngle(elem)) {
        		this.matrix = svgedit.math.getMatrix(elem);
        		this.imatrix = this.matrix.inverse();
        	} else {
        		this.matrix = null;
        		this.imatrix = null;
        	}
        
        	this.eachSeg(function(i) {
        		this.item = elem.pathSegList.getItem(i);
        		this.update();
        	});
        
        	return this;
        };
        
        svgedit.path.getPath_ = function(elem) {
        	var p = pathData[elem.id];
        	if (!p) {
        		p = pathData[elem.id] = new svgedit.path.Path(elem);
        	}
        	return p;
        };
        
        svgedit.path.removePath_ = function(id) {
        	if (id in pathData) {delete pathData[id];}
        };
        var newcx, newcy, oldcx, oldcy, angle;
        var getRotVals = function(x, y) {
        	var dx = x - oldcx;
        	var dy = y - oldcy;
        
        	// rotate the point around the old center
        	var r = Math.sqrt(dx*dx + dy*dy);
        	var theta = Math.atan2(dy, dx) + angle;
        	dx = r * Math.cos(theta) + oldcx;
        	dy = r * Math.sin(theta) + oldcy;
        
        	// dx,dy should now hold the actual coordinates of each
        	// point after being rotated
        
        	// now we want to rotate them around the new center in the reverse direction
        	dx -= newcx;
        	dy -= newcy;
        
        	r = Math.sqrt(dx*dx + dy*dy);
        	theta = Math.atan2(dy, dx) - angle;
        
        	return {'x': r * Math.cos(theta) + newcx,
        		'y': r * Math.sin(theta) + newcy};
        };
        
        // If the path was rotated, we must now pay the piper:
        // Every path point must be rotated into the rotated coordinate system of 
        // its old center, then determine the new center, then rotate it back
        // This is because we want the path to remember its rotation
        
        // TODO: This is still using ye olde transform methods, can probably
        // be optimized or even taken care of by recalculateDimensions
        svgedit.path.recalcRotatedPath = function() {
        	var current_path = svgedit.path.path.elem;
        	angle = svgedit.utilities.getRotationAngle(current_path, true);
        	if (!angle) {return;}
        //	selectedBBoxes[0] = svgedit.path.path.oldbbox;
        	var box = svgedit.utilities.getBBox(current_path),
        		oldbox = svgedit.path.path.oldbbox; //selectedBBoxes[0],
        	oldcx = oldbox.x + oldbox.width/2;
        	oldcy = oldbox.y + oldbox.height/2;
        	newcx = box.x + box.width/2;
        	newcy = box.y + box.height/2;
        
        	// un-rotate the new center to the proper position
        	var dx = newcx - oldcx,
        		dy = newcy - oldcy,
        		r = Math.sqrt(dx*dx + dy*dy),
        		theta = Math.atan2(dy, dx) + angle;
        
        	newcx = r * Math.cos(theta) + oldcx;
        	newcy = r * Math.sin(theta) + oldcy;
        
        	var list = current_path.pathSegList,
        		i = list.numberOfItems;
        	while (i) {
        		i -= 1;
        		var seg = list.getItem(i),
        			type = seg.pathSegType;
        		if (type == 1) {continue;}
        
        		var rvals = getRotVals(seg.x, seg.y),
        			points = [rvals.x, rvals.y];
        		if (seg.x1 != null && seg.x2 != null) {
        			var c_vals1 = getRotVals(seg.x1, seg.y1);
        			var c_vals2 = getRotVals(seg.x2, seg.y2);
        			points.splice(points.length, 0, c_vals1.x , c_vals1.y, c_vals2.x, c_vals2.y);
        		}
        		svgedit.path.replacePathSeg(type, i, points);
        	} // loop for each point
        
        	box = svgedit.utilities.getBBox(current_path);
        //	selectedBBoxes[0].x = box.x; selectedBBoxes[0].y = box.y;
        //	selectedBBoxes[0].width = box.width; selectedBBoxes[0].height = box.height;
        
        	// now we must set the new transform to be rotated around the new center
        	var R_nc = svgroot.createSVGTransform(),
        		tlist = svgedit.transformlist.getTransformList(current_path);
        	R_nc.setRotate((angle * 180.0 / Math.PI), newcx, newcy);
        	tlist.replaceItem(R_nc,0);
        };
        
        // ====================================
        // Public API starts here
        
        svgedit.path.clearData =  function() {
        	pathData = {};
        };
        
        }());
        
      • recalculate.js
        /*globals $*/
        /*jslint vars: true, eqeq: true, continue: true*/
        /**
         * Recalculate.
         *
         * Licensed under the MIT License
         *
         */
        
        // Dependencies:
        // 1) jquery
        // 2) jquery-svg.js
        // 3) svgedit.js
        // 4) browser.js
        // 5) math.js
        // 6) history.js
        // 7) units.js
        // 8) svgtransformlist.js
        // 9) svgutils.js
        // 10) coords.js
        
        var svgedit = svgedit || {};
        
        (function() {
        
        if (!svgedit.recalculate) {
          svgedit.recalculate = {};
        }
        
        var NS = svgedit.NS;
        var context_;
        
        // Function: svgedit.recalculate.init
        svgedit.recalculate.init = function(editorContext) {
          context_ = editorContext;
        };
        
        
        // Function: svgedit.recalculate.updateClipPath
        // Updates a <clipPath>s values based on the given translation of an element
        //
        // Parameters:
        // attr - The clip-path attribute value with the clipPath's ID
        // tx - The translation's x value
        // ty - The translation's y value
        svgedit.recalculate.updateClipPath = function(attr, tx, ty) {
          var path = getRefElem(attr).firstChild;
          var cp_xform = svgedit.transformlist.getTransformList(path);
          var newxlate = context_.getSVGRoot().createSVGTransform();
          newxlate.setTranslate(tx, ty);
        
          cp_xform.appendItem(newxlate);
        
          // Update clipPath's dimensions
          svgedit.recalculate.recalculateDimensions(path);
        };
        
        
        // Function: svgedit.recalculate.recalculateDimensions
        // Decides the course of action based on the element's transform list
        //
        // Parameters:
        // selected - The DOM element to recalculate
        //
        // Returns: 
        // Undo command object with the resulting change
        svgedit.recalculate.recalculateDimensions = function(selected) {
          if (selected == null) {return null;}
        
          // Firefox Issue - 1081
          if (selected.nodeName == "svg" && navigator.userAgent.indexOf("Firefox/20") >= 0) {
            return null;
          }
        
          var svgroot = context_.getSVGRoot();
          var tlist = svgedit.transformlist.getTransformList(selected);
          var k;
          // remove any unnecessary transforms
          if (tlist && tlist.numberOfItems > 0) {
            k = tlist.numberOfItems;
            while (k--) {
              var xform = tlist.getItem(k);
              if (xform.type === 0) {
                tlist.removeItem(k);
              }
              // remove identity matrices
              else if (xform.type === 1) {
                if (svgedit.math.isIdentity(xform.matrix)) {
                  tlist.removeItem(k);
                }
              }
              // remove zero-degree rotations
              else if (xform.type === 4) {
                if (xform.angle === 0) {
                  tlist.removeItem(k);
                }
              }
            }
            // End here if all it has is a rotation
            if (tlist.numberOfItems === 1 &&
                svgedit.utilities.getRotationAngle(selected)) {return null;}
          }
        
          // if this element had no transforms, we are done
          if (!tlist || tlist.numberOfItems == 0) {
            // Chrome has a bug that requires clearing the attribute first.
            selected.setAttribute('transform', '');
            selected.removeAttribute('transform');
            return null;
          }
        
          // TODO: Make this work for more than 2
          if (tlist) {
            k = tlist.numberOfItems;
            var mxs = [];
            while (k--) {
              var xform = tlist.getItem(k);
              if (xform.type === 1) {
                mxs.push([xform.matrix, k]);
              } else if (mxs.length) {
                mxs = [];
              }
            }
            if (mxs.length === 2) {
              var m_new = svgroot.createSVGTransformFromMatrix(svgedit.math.matrixMultiply(mxs[1][0], mxs[0][0]));
              tlist.removeItem(mxs[0][1]);
              tlist.removeItem(mxs[1][1]);
              tlist.insertItemBefore(m_new, mxs[1][1]);
            }
        
            // combine matrix + translate
            k = tlist.numberOfItems;
            if (k >= 2 && tlist.getItem(k-2).type === 1 && tlist.getItem(k-1).type === 2) {
              var mt = svgroot.createSVGTransform();
        
              var m = svgedit.math.matrixMultiply(
                  tlist.getItem(k-2).matrix, 
                  tlist.getItem(k-1).matrix);   
              mt.setMatrix(m);
              tlist.removeItem(k-2);
              tlist.removeItem(k-2);
              tlist.appendItem(mt);
            }
          }
        
          // If it still has a single [M] or [R][M], return null too (prevents BatchCommand from being returned).
          switch ( selected.tagName ) {
            // Ignore these elements, as they can absorb the [M]
            case 'line':
            case 'polyline':
            case 'polygon':
            case 'path':
              break;
            default:
              if ((tlist.numberOfItems === 1 && tlist.getItem(0).type === 1) ||
                  (tlist.numberOfItems === 2 && tlist.getItem(0).type === 1 && tlist.getItem(0).type === 4)) {
                return null;
              }
          }
        
          // Grouped SVG element 
          var gsvg = $(selected).data('gsvg');
        
          // we know we have some transforms, so set up return variable   
          var batchCmd = new svgedit.history.BatchCommand('Transform');
        
          // store initial values that will be affected by reducing the transform list
          var changes = {}, initial = null, attrs = [];
          switch (selected.tagName) {
            case 'line':
              attrs = ['x1', 'y1', 'x2', 'y2'];
              break;
            case 'circle':
              attrs = ['cx', 'cy', 'r'];
              break;
            case 'ellipse':
              attrs = ['cx', 'cy', 'rx', 'ry'];
              break;
            case 'foreignObject':
            case 'rect':
            case 'image':
              attrs = ['width', 'height', 'x', 'y'];
              break;
            case 'use':
            case 'text':
            case 'tspan':
              attrs = ['x', 'y'];
              break;
            case 'polygon':
            case 'polyline':
              initial = {};
              initial.points = selected.getAttribute('points');
              var list = selected.points;
              var len = list.numberOfItems;
              changes.points = new Array(len);
        	  var i;
              for (i = 0; i < len; ++i) {
                var pt = list.getItem(i);
                changes.points[i] = {x:pt.x, y:pt.y};
              }
              break;
            case 'path':
              initial = {};
              initial.d = selected.getAttribute('d');
              changes.d = selected.getAttribute('d');
              break;
            } // switch on element type to get initial values
        
            if (attrs.length) {
              changes = $(selected).attr(attrs);
              $.each(changes, function(attr, val) {
                changes[attr] = svgedit.units.convertToNum(attr, val);
              });
            } else if (gsvg) {
              // GSVG exception
              changes = {
                x: $(gsvg).attr('x') || 0,
                y: $(gsvg).attr('y') || 0
              };
            }
        
          // if we haven't created an initial array in polygon/polyline/path, then 
          // make a copy of initial values and include the transform
          if (initial == null) {
            initial = $.extend(true, {}, changes);
            $.each(initial, function(attr, val) {
              initial[attr] = svgedit.units.convertToNum(attr, val);
            });
          }
          // save the start transform value too
          initial.transform = context_.getStartTransform() || '';
        
          // if it's a regular group, we have special processing to flatten transforms
          if ((selected.tagName == 'g' && !gsvg) || selected.tagName == 'a') {
            var box = svgedit.utilities.getBBox(selected),
              oldcenter = {x: box.x+box.width/2, y: box.y+box.height/2},
              newcenter = svgedit.math.transformPoint(box.x+box.width/2,
                box.y+box.height/2,
                svgedit.math.transformListToTransform(tlist).matrix),
              m = svgroot.createSVGMatrix();
        
            // temporarily strip off the rotate and save the old center
            var gangle = svgedit.utilities.getRotationAngle(selected);
            if (gangle) {
              var a = gangle * Math.PI / 180;
              if ( Math.abs(a) > (1.0e-10) ) {
                var s = Math.sin(a)/(1 - Math.cos(a));
              } else {
                // FIXME: This blows up if the angle is exactly 0!
                var s = 2/a;
              }
        	  var i;
              for (i = 0; i < tlist.numberOfItems; ++i) {
                var xform = tlist.getItem(i);
                if (xform.type == 4) {
                  // extract old center through mystical arts
                  var rm = xform.matrix;
                  oldcenter.y = (s*rm.e + rm.f)/2;
                  oldcenter.x = (rm.e - s*rm.f)/2;
                  tlist.removeItem(i);
                  break;
                }
              }
            }
            var tx = 0, ty = 0,
              operation = 0,
              N = tlist.numberOfItems;
        
            if (N) {
              var first_m = tlist.getItem(0).matrix;
            }
        
            // first, if it was a scale then the second-last transform will be it
            if (N >= 3 && tlist.getItem(N-2).type == 3 && 
              tlist.getItem(N-3).type == 2 && tlist.getItem(N-1).type == 2) 
            {
              operation = 3; // scale
            
              // if the children are unrotated, pass the scale down directly
              // otherwise pass the equivalent matrix() down directly
              var tm = tlist.getItem(N-3).matrix,
                sm = tlist.getItem(N-2).matrix,
                tmn = tlist.getItem(N-1).matrix;
            
              var children = selected.childNodes;
              var c = children.length;
              while (c--) {
                var child = children.item(c);
                tx = 0;
                ty = 0;
                if (child.nodeType == 1) {
                  var childTlist = svgedit.transformlist.getTransformList(child);
        
                  // some children might not have a transform (<metadata>, <defs>, etc)
                  if (!childTlist) {continue;}
        
                  var m = svgedit.math.transformListToTransform(childTlist).matrix;
        
                  // Convert a matrix to a scale if applicable
        //          if (svgedit.math.hasMatrixTransform(childTlist) && childTlist.numberOfItems == 1) {
        //            if (m.b==0 && m.c==0 && m.e==0 && m.f==0) {
        //              childTlist.removeItem(0);
        //              var translateOrigin = svgroot.createSVGTransform(),
        //                scale = svgroot.createSVGTransform(),
        //                translateBack = svgroot.createSVGTransform();
        //              translateOrigin.setTranslate(0, 0);
        //              scale.setScale(m.a, m.d);
        //              translateBack.setTranslate(0, 0);
        //              childTlist.appendItem(translateBack);
        //              childTlist.appendItem(scale);
        //              childTlist.appendItem(translateOrigin);
        //            }
        //          }
                
                  var angle = svgedit.utilities.getRotationAngle(child);
                  var oldStartTransform = context_.getStartTransform();
                  var childxforms = [];
                  context_.setStartTransform(child.getAttribute('transform'));
                  if (angle || svgedit.math.hasMatrixTransform(childTlist)) {
                    var e2t = svgroot.createSVGTransform();
                    e2t.setMatrix(svgedit.math.matrixMultiply(tm, sm, tmn, m));
                    childTlist.clear();
                    childTlist.appendItem(e2t);
                    childxforms.push(e2t);
                  }
                  // if not rotated or skewed, push the [T][S][-T] down to the child
                  else {
                    // update the transform list with translate,scale,translate
                    
                    // slide the [T][S][-T] from the front to the back
                    // [T][S][-T][M] = [M][T2][S2][-T2]
                    
                    // (only bringing [-T] to the right of [M])
                    // [T][S][-T][M] = [T][S][M][-T2]
                    // [-T2] = [M_inv][-T][M]
                    var t2n = svgedit.math.matrixMultiply(m.inverse(), tmn, m);
                    // [T2] is always negative translation of [-T2]
                    var t2 = svgroot.createSVGMatrix();
                    t2.e = -t2n.e;
                    t2.f = -t2n.f;
                    
                    // [T][S][-T][M] = [M][T2][S2][-T2]
                    // [S2] = [T2_inv][M_inv][T][S][-T][M][-T2_inv]
                    var s2 = svgedit.math.matrixMultiply(t2.inverse(), m.inverse(), tm, sm, tmn, m, t2n.inverse());
        
                    var translateOrigin = svgroot.createSVGTransform(),
                      scale = svgroot.createSVGTransform(),
                      translateBack = svgroot.createSVGTransform();
                    translateOrigin.setTranslate(t2n.e, t2n.f);
                    scale.setScale(s2.a, s2.d);
                    translateBack.setTranslate(t2.e, t2.f);
                    childTlist.appendItem(translateBack);
                    childTlist.appendItem(scale);
                    childTlist.appendItem(translateOrigin);
                    childxforms.push(translateBack);
                    childxforms.push(scale);
                    childxforms.push(translateOrigin);
        //            logMatrix(translateBack.matrix);
        //            logMatrix(scale.matrix);
                  } // not rotated
                  batchCmd.addSubCommand( svgedit.recalculate.recalculateDimensions(child) );
                  // TODO: If any <use> have this group as a parent and are 
                  // referencing this child, then we need to impose a reverse 
                  // scale on it so that when it won't get double-translated
        //            var uses = selected.getElementsByTagNameNS(NS.SVG, 'use');
        //            var href = '#' + child.id;
        //            var u = uses.length;
        //            while (u--) {
        //              var useElem = uses.item(u);
        //              if (href == svgedit.utilities.getHref(useElem)) {
        //                var usexlate = svgroot.createSVGTransform();
        //                usexlate.setTranslate(-tx,-ty);
        //                svgedit.transformlist.getTransformList(useElem).insertItemBefore(usexlate,0);
        //                batchCmd.addSubCommand( svgedit.recalculate.recalculateDimensions(useElem) );
        //              }
        //            }
                  context_.setStartTransform(oldStartTransform);
                } // element
              } // for each child
              // Remove these transforms from group
              tlist.removeItem(N-1);
              tlist.removeItem(N-2);
              tlist.removeItem(N-3);
            } else if (N >= 3 && tlist.getItem(N-1).type == 1) {
              operation = 3; // scale
              m = svgedit.math.transformListToTransform(tlist).matrix;
              var e2t = svgroot.createSVGTransform();
              e2t.setMatrix(m);
              tlist.clear();
              tlist.appendItem(e2t);
            }     
            // next, check if the first transform was a translate 
            // if we had [ T1 ] [ M ] we want to transform this into [ M ] [ T2 ]
            // therefore [ T2 ] = [ M_inv ] [ T1 ] [ M ]
            else if ( (N == 1 || (N > 1 && tlist.getItem(1).type != 3)) && 
              tlist.getItem(0).type == 2) 
            {
              operation = 2; // translate
              var T_M = svgedit.math.transformListToTransform(tlist).matrix;
              tlist.removeItem(0);
              var M_inv = svgedit.math.transformListToTransform(tlist).matrix.inverse();
              var M2 = svgedit.math.matrixMultiply( M_inv, T_M );
              
              tx = M2.e;
              ty = M2.f;
        
              if (tx != 0 || ty != 0) {
                // we pass the translates down to the individual children
                var children = selected.childNodes;
                var c = children.length;
                
                var clipPaths_done = [];
                
                while (c--) {
                  var child = children.item(c);
                  if (child.nodeType == 1) {
                  
                    // Check if child has clip-path
                    if (child.getAttribute('clip-path')) {
                      // tx, ty
                      var attr = child.getAttribute('clip-path');
                      if (clipPaths_done.indexOf(attr) === -1) {
                        svgedit.recalculate.updateClipPath(attr, tx, ty);
                        clipPaths_done.push(attr);
                      }             
                    }
        
                    var oldStartTransform = context_.getStartTransform();
                    context_.setStartTransform(child.getAttribute('transform'));
                    
                    var childTlist = svgedit.transformlist.getTransformList(child);
                    // some children might not have a transform (<metadata>, <defs>, etc)
                    if (childTlist) {
                      var newxlate = svgroot.createSVGTransform();
                      newxlate.setTranslate(tx, ty);
                      if (childTlist.numberOfItems) {
                        childTlist.insertItemBefore(newxlate, 0);
                      } else {
                        childTlist.appendItem(newxlate);
                      }
                      batchCmd.addSubCommand(svgedit.recalculate.recalculateDimensions(child));
                      // If any <use> have this group as a parent and are 
                      // referencing this child, then impose a reverse translate on it
                      // so that when it won't get double-translated
                      var uses = selected.getElementsByTagNameNS(NS.SVG, 'use');
                      var href = '#' + child.id;
                      var u = uses.length;
                      while (u--) {
                        var useElem = uses.item(u);
                        if (href == svgedit.utilities.getHref(useElem)) {
                          var usexlate = svgroot.createSVGTransform();
                          usexlate.setTranslate(-tx,-ty);
                          svgedit.transformlist.getTransformList(useElem).insertItemBefore(usexlate, 0);
                          batchCmd.addSubCommand( svgedit.recalculate.recalculateDimensions(useElem) );
                        }
                      }
                      context_.setStartTransform(oldStartTransform);
                    }
                  }
                }
                
                clipPaths_done = [];
                context_.setStartTransform(oldStartTransform);
              }
            }
            // else, a matrix imposition from a parent group
            // keep pushing it down to the children
            else if (N == 1 && tlist.getItem(0).type == 1 && !gangle) {
              operation = 1;
              var m = tlist.getItem(0).matrix,
                children = selected.childNodes,
                c = children.length;
              while (c--) {
                var child = children.item(c);
                if (child.nodeType == 1) {
                  var oldStartTransform = context_.getStartTransform();
                  context_.setStartTransform(child.getAttribute('transform'));
                  var childTlist = svgedit.transformlist.getTransformList(child);
                  
                  if (!childTlist) {continue;}
                  
                  var em = svgedit.math.matrixMultiply(m, svgedit.math.transformListToTransform(childTlist).matrix);
                  var e2m = svgroot.createSVGTransform();
                  e2m.setMatrix(em);
                  childTlist.clear();
                  childTlist.appendItem(e2m, 0);
                  
                  batchCmd.addSubCommand( svgedit.recalculate.recalculateDimensions(child) );
                  context_.setStartTransform(oldStartTransform);
                  
                  // Convert stroke
                  // TODO: Find out if this should actually happen somewhere else
                  var sw = child.getAttribute('stroke-width');
                  if (child.getAttribute('stroke') !== 'none' && !isNaN(sw)) {
                    var avg = (Math.abs(em.a) + Math.abs(em.d)) / 2;
                    child.setAttribute('stroke-width', sw * avg);
                  }
        
                }
              }
              tlist.clear();
            }
            // else it was just a rotate
            else {
              if (gangle) {
                var newRot = svgroot.createSVGTransform();
                newRot.setRotate(gangle, newcenter.x, newcenter.y);
                if (tlist.numberOfItems) {
                  tlist.insertItemBefore(newRot, 0);
                } else {
                  tlist.appendItem(newRot);
                }
              }
              if (tlist.numberOfItems == 0) {
                selected.removeAttribute('transform');
              }
              return null;      
            }
            
            // if it was a translate, put back the rotate at the new center
            if (operation == 2) {
              if (gangle) {
                newcenter = {
                  x: oldcenter.x + first_m.e,
                  y: oldcenter.y + first_m.f
                };
              
                var newRot = svgroot.createSVGTransform();
                newRot.setRotate(gangle, newcenter.x, newcenter.y);
                if (tlist.numberOfItems) {
                  tlist.insertItemBefore(newRot, 0);
                } else {
                  tlist.appendItem(newRot);
                }
              }
            }
            // if it was a resize
            else if (operation == 3) {
              var m = svgedit.math.transformListToTransform(tlist).matrix;
              var roldt = svgroot.createSVGTransform();
              roldt.setRotate(gangle, oldcenter.x, oldcenter.y);
              var rold = roldt.matrix;
              var rnew = svgroot.createSVGTransform();
              rnew.setRotate(gangle, newcenter.x, newcenter.y);
              var rnew_inv = rnew.matrix.inverse(),
                m_inv = m.inverse(),
                extrat = svgedit.math.matrixMultiply(m_inv, rnew_inv, rold, m);
        
              tx = extrat.e;
              ty = extrat.f;
        
              if (tx != 0 || ty != 0) {
                // now push this transform down to the children
                // we pass the translates down to the individual children
                var children = selected.childNodes;
                var c = children.length;
                while (c--) {
                  var child = children.item(c);
                  if (child.nodeType == 1) {
                    var oldStartTransform = context_.getStartTransform();
                    context_.setStartTransform(child.getAttribute('transform'));
                    var childTlist = svgedit.transformlist.getTransformList(child);
                    var newxlate = svgroot.createSVGTransform();
                    newxlate.setTranslate(tx, ty);
                    if (childTlist.numberOfItems) {
                      childTlist.insertItemBefore(newxlate, 0);
                    } else {
                      childTlist.appendItem(newxlate);
                    }
        
                    batchCmd.addSubCommand( svgedit.recalculate.recalculateDimensions(child) );
                    context_.setStartTransform(oldStartTransform);
                  }
                }
              }
              
              if (gangle) {
                if (tlist.numberOfItems) {
                  tlist.insertItemBefore(rnew, 0);
                } else {
                  tlist.appendItem(rnew);
                }
              }
            }
          }
          // else, it's a non-group
          else {
        
            // FIXME: box might be null for some elements (<metadata> etc), need to handle this
            var box = svgedit.utilities.getBBox(selected);
        
            // Paths (and possbly other shapes) will have no BBox while still in <defs>,
            // but we still may need to recalculate them (see issue 595).
            // TODO: Figure out how to get BBox from these elements in case they
            // have a rotation transform
            
            if (!box && selected.tagName != 'path') return null;
            
        
            var m = svgroot.createSVGMatrix(),
              // temporarily strip off the rotate and save the old center
              angle = svgedit.utilities.getRotationAngle(selected);
            if (angle) {
              var oldcenter = {x: box.x+box.width/2, y: box.y+box.height/2},
              newcenter = svgedit.math.transformPoint(box.x+box.width/2, box.y+box.height/2,
                      svgedit.math.transformListToTransform(tlist).matrix);
            
              var a = angle * Math.PI / 180;
              if ( Math.abs(a) > (1.0e-10) ) {
                var s = Math.sin(a)/(1 - Math.cos(a));
              } else {
                // FIXME: This blows up if the angle is exactly 0!
                var s = 2/a;
              }
              for (var i = 0; i < tlist.numberOfItems; ++i) {
                var xform = tlist.getItem(i);
                if (xform.type == 4) {
                  // extract old center through mystical arts
                  var rm = xform.matrix;
                  oldcenter.y = (s*rm.e + rm.f)/2;
                  oldcenter.x = (rm.e - s*rm.f)/2;
                  tlist.removeItem(i);
                  break;
                }
              }
            }
            
            // 2 = translate, 3 = scale, 4 = rotate, 1 = matrix imposition
            var operation = 0;
            var N = tlist.numberOfItems;
            
            // Check if it has a gradient with userSpaceOnUse, in which case
            // adjust it by recalculating the matrix transform.
            // TODO: Make this work in Webkit using svgedit.transformlist.SVGTransformList
            if (!svgedit.browser.isWebkit()) {
              var fill = selected.getAttribute('fill');
              if (fill && fill.indexOf('url(') === 0) {
                var paint = getRefElem(fill);
                var type = 'pattern';
                if (paint.tagName !== type) type = 'gradient';
                var attrVal = paint.getAttribute(type + 'Units');
                if (attrVal === 'userSpaceOnUse') {
                  //Update the userSpaceOnUse element
                  m = svgedit.math.transformListToTransform(tlist).matrix;
                  var gtlist = svgedit.transformlist.getTransformList(paint);
                  var gmatrix = svgedit.math.transformListToTransform(gtlist).matrix;
                  m = svgedit.math.matrixMultiply(m, gmatrix);
                  var m_str = 'matrix(' + [m.a, m.b, m.c, m.d, m.e, m.f].join(',') + ')';
                  paint.setAttribute(type + 'Transform', m_str);
                }
              }
            }
        
            // first, if it was a scale of a non-skewed element, then the second-last  
            // transform will be the [S]
            // if we had [M][T][S][T] we want to extract the matrix equivalent of
            // [T][S][T] and push it down to the element
            if (N >= 3 && tlist.getItem(N-2).type == 3 && 
              tlist.getItem(N-3).type == 2 && tlist.getItem(N-1).type == 2) 
              
              // Removed this so a <use> with a given [T][S][T] would convert to a matrix. 
              // Is that bad?
              //  && selected.nodeName != 'use'
            {
              operation = 3; // scale
              m = svgedit.math.transformListToTransform(tlist, N-3, N-1).matrix;
              tlist.removeItem(N-1);
              tlist.removeItem(N-2);
              tlist.removeItem(N-3);
            } // if we had [T][S][-T][M], then this was a skewed element being resized
            // Thus, we simply combine it all into one matrix
            else if (N == 4 && tlist.getItem(N-1).type == 1) {
              operation = 3; // scale
              m = svgedit.math.transformListToTransform(tlist).matrix;
              var e2t = svgroot.createSVGTransform();
              e2t.setMatrix(m);
              tlist.clear();
              tlist.appendItem(e2t);
              // reset the matrix so that the element is not re-mapped
              m = svgroot.createSVGMatrix();
            } // if we had [R][T][S][-T][M], then this was a rotated matrix-element  
            // if we had [T1][M] we want to transform this into [M][T2]
            // therefore [ T2 ] = [ M_inv ] [ T1 ] [ M ] and we can push [T2] 
            // down to the element
            else if ( (N == 1 || (N > 1 && tlist.getItem(1).type != 3)) && 
              tlist.getItem(0).type == 2) 
            {
              operation = 2; // translate
              var oldxlate = tlist.getItem(0).matrix,
                meq = svgedit.math.transformListToTransform(tlist,1).matrix,
                meq_inv = meq.inverse();
              m = svgedit.math.matrixMultiply( meq_inv, oldxlate, meq );
              tlist.removeItem(0);
            }
            // else if this child now has a matrix imposition (from a parent group)
            // we might be able to simplify
            else if (N == 1 && tlist.getItem(0).type == 1 && !angle) {
              // Remap all point-based elements
              m = svgedit.math.transformListToTransform(tlist).matrix;
              switch (selected.tagName) {
                case 'line':
                  changes = $(selected).attr(['x1', 'y1', 'x2', 'y2']);
                case 'polyline':
                case 'polygon':
                  changes.points = selected.getAttribute('points');
                  if (changes.points) {
                    var list = selected.points;
                    var len = list.numberOfItems;
                    changes.points = new Array(len);
                    for (var i = 0; i < len; ++i) {
                      var pt = list.getItem(i);
                      changes.points[i] = {x:pt.x, y:pt.y};
                    }
                  }
                case 'path':
                  changes.d = selected.getAttribute('d');
                  operation = 1;
                  tlist.clear();
                  break;
                default:
                  break;
              }
            }
            // if it was a rotation, put the rotate back and return without a command
            // (this function has zero work to do for a rotate())
            else {
              operation = 4; // rotation
              if (angle) {
                var newRot = svgroot.createSVGTransform();
                newRot.setRotate(angle, newcenter.x, newcenter.y);
                
                if (tlist.numberOfItems) {
                  tlist.insertItemBefore(newRot, 0);
                } else {
                  tlist.appendItem(newRot);
                }
              }
              if (tlist.numberOfItems == 0) {
                selected.removeAttribute('transform');
              }
              return null;
            }
            
            // if it was a translate or resize, we need to remap the element and absorb the xform
            if (operation == 1 || operation == 2 || operation == 3) {
              svgedit.coords.remapElement(selected, changes, m);
            } // if we are remapping
            
            // if it was a translate, put back the rotate at the new center
            if (operation == 2) {
              if (angle) {
                if (!svgedit.math.hasMatrixTransform(tlist)) {
                  newcenter = {
                    x: oldcenter.x + m.e,
                    y: oldcenter.y + m.f
                  };
                }
                var newRot = svgroot.createSVGTransform();
                newRot.setRotate(angle, newcenter.x, newcenter.y);
                if (tlist.numberOfItems) {
                  tlist.insertItemBefore(newRot, 0);
                } else {
                  tlist.appendItem(newRot);
                }
              }
              // We have special processing for tspans:  Tspans are not transformable
              // but they can have x,y coordinates (sigh).  Thus, if this was a translate,
              // on a text element, also translate any tspan children.
              if (selected.tagName == 'text') {
                var children = selected.childNodes;
                var c = children.length;
                while (c--) {
                  var child = children.item(c);
                  if (child.tagName == 'tspan') {
                    var tspanChanges = {
                      x: $(child).attr('x') || 0,
                      y: $(child).attr('y') || 0
                    };
                    svgedit.coords.remapElement(child, tspanChanges, m);
                  }
                }
              }
            }
            // [Rold][M][T][S][-T] became [Rold][M]
            // we want it to be [Rnew][M][Tr] where Tr is the
            // translation required to re-center it
            // Therefore, [Tr] = [M_inv][Rnew_inv][Rold][M]
            else if (operation == 3 && angle) {
              var m = svgedit.math.transformListToTransform(tlist).matrix;
              var roldt = svgroot.createSVGTransform();
              roldt.setRotate(angle, oldcenter.x, oldcenter.y);
              var rold = roldt.matrix;
              var rnew = svgroot.createSVGTransform();
              rnew.setRotate(angle, newcenter.x, newcenter.y);
              var rnew_inv = rnew.matrix.inverse();
              var m_inv = m.inverse();
              var extrat = svgedit.math.matrixMultiply(m_inv, rnew_inv, rold, m);
            
              svgedit.coords.remapElement(selected, changes, extrat);
              if (angle) {
                if (tlist.numberOfItems) {
                  tlist.insertItemBefore(rnew, 0);
                } else {
                  tlist.appendItem(rnew);
                }
              }
            }
          } // a non-group
        
          // if the transform list has been emptied, remove it
          if (tlist.numberOfItems == 0) {
            selected.removeAttribute('transform');
          }
        
          batchCmd.addSubCommand(new svgedit.history.ChangeElementCommand(selected, initial));
        
          return batchCmd;
        };
        })();
        
      • sanitize.js
        /*globals $, svgedit*/
        /*jslint vars: true, eqeq: true*/
        /**
         * Package: svgedit.sanitize
         *
         * Licensed under the MIT License
         *
         * Copyright(c) 2010 Alexis Deveria
         * Copyright(c) 2010 Jeff Schiller
         */
        
        // Dependencies:
        // 1) jQuery
        // 2) browser.js
        // 3) svgutils.js
        
        (function() {'use strict';
        
        if (!svgedit.sanitize) {
          svgedit.sanitize = {};
        }
        
        var NS = svgedit.NS,
          REVERSE_NS = svgedit.getReverseNS();
        
        // this defines which elements and attributes that we support
        var svgWhiteList_ = {
          // SVG Elements
          "a": ["class", "clip-path", "clip-rule", "fill", "fill-opacity", "fill-rule", "filter", "id", "mask", "opacity", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform", "xlink:href", "xlink:title"],
          "circle": ["class", "clip-path", "clip-rule", "cx", "cy", "fill", "fill-opacity", "fill-rule", "filter", "id", "mask", "opacity", "r", "requiredFeatures", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform"],
          "clipPath": ["class", "clipPathUnits", "id"],
          "defs": [],
          "style" : ["type"],
          "desc": [],
          "ellipse": ["class", "clip-path", "clip-rule", "cx", "cy", "fill", "fill-opacity", "fill-rule", "filter", "id", "mask", "opacity", "requiredFeatures", "rx", "ry", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform"],
          "feGaussianBlur": ["class", "color-interpolation-filters", "id", "requiredFeatures", "stdDeviation"],
          "filter": ["class", "color-interpolation-filters", "filterRes", "filterUnits", "height", "id", "primitiveUnits", "requiredFeatures", "width", "x", "xlink:href", "y"],
          "foreignObject": ["class", "font-size", "height", "id", "opacity", "requiredFeatures", "style", "transform", "width", "x", "y"],
          "g": ["class", "clip-path", "clip-rule", "id", "display", "fill", "fill-opacity", "fill-rule", "filter", "mask", "opacity", "requiredFeatures", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform", "font-family", "font-size", "font-style", "font-weight", "text-anchor"],
          "image": ["class", "clip-path", "clip-rule", "filter", "height", "id", "mask", "opacity", "requiredFeatures", "style", "systemLanguage", "transform", "width", "x", "xlink:href", "xlink:title", "y"],
          "line": ["class", "clip-path", "clip-rule", "fill", "fill-opacity", "fill-rule", "filter", "id", "marker-end", "marker-mid", "marker-start", "mask", "opacity", "requiredFeatures", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform", "x1", "x2", "y1", "y2"],
          "linearGradient": ["class", "id", "gradientTransform", "gradientUnits", "requiredFeatures", "spreadMethod", "systemLanguage", "x1", "x2", "xlink:href", "y1", "y2"],
          "marker": ["id", "class", "markerHeight", "markerUnits", "markerWidth", "orient", "preserveAspectRatio", "refX", "refY", "systemLanguage", "viewBox"],
          "mask": ["class", "height", "id", "maskContentUnits", "maskUnits", "width", "x", "y"],
          "metadata": ["class", "id"],
          "path": ["class", "clip-path", "clip-rule", "d", "fill", "fill-opacity", "fill-rule", "filter", "id", "marker-end", "marker-mid", "marker-start", "mask", "opacity", "requiredFeatures", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform"],
          "pattern": ["class", "height", "id", "patternContentUnits", "patternTransform", "patternUnits", "requiredFeatures", "style", "systemLanguage", "viewBox", "width", "x", "xlink:href", "y"],
          "polygon": ["class", "clip-path", "clip-rule", "id", "fill", "fill-opacity", "fill-rule", "filter", "id", "class", "marker-end", "marker-mid", "marker-start", "mask", "opacity", "points", "requiredFeatures", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform"],
          "polyline": ["class", "clip-path", "clip-rule", "id", "fill", "fill-opacity", "fill-rule", "filter", "marker-end", "marker-mid", "marker-start", "mask", "opacity", "points", "requiredFeatures", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform"],
          "radialGradient": ["class", "cx", "cy", "fx", "fy", "gradientTransform", "gradientUnits", "id", "r", "requiredFeatures", "spreadMethod", "systemLanguage", "xlink:href"],
          "rect": ["class", "clip-path", "clip-rule", "fill", "fill-opacity", "fill-rule", "filter", "height", "id", "mask", "opacity", "requiredFeatures", "rx", "ry", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform", "width", "x", "y"],
          "stop": ["class", "id", "offset", "requiredFeatures", "stop-color", "stop-opacity", "style", "systemLanguage"],
          "svg": ["class", "clip-path", "clip-rule", "filter", "id", "height", "mask", "preserveAspectRatio", "requiredFeatures", "style", "systemLanguage", "viewBox", "width", "x", "xmlns", "xmlns:se", "xmlns:xlink", "y"],
          "switch": ["class", "id", "requiredFeatures", "systemLanguage"],
          "symbol": ["class", "fill", "fill-opacity", "fill-rule", "filter", "font-family", "font-size", "font-style", "font-weight", "id", "opacity", "preserveAspectRatio", "requiredFeatures", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform", "viewBox"],
          "text": ["class", "clip-path", "clip-rule", "fill", "fill-opacity", "fill-rule", "filter", "font-family", "font-size", "font-style", "font-weight", "id", "mask", "opacity", "requiredFeatures", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "text-anchor", "transform", "x", "xml:space", "y"],
          "textPath": ["class", "id", "method", "requiredFeatures", "spacing", "startOffset", "style", "systemLanguage", "transform", "xlink:href"],
          "title": [],
          "tspan": ["class", "clip-path", "clip-rule", "dx", "dy", "fill", "fill-opacity", "fill-rule", "filter", "font-family", "font-size", "font-style", "font-weight", "id", "mask", "opacity", "requiredFeatures", "rotate", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "text-anchor", "textLength", "transform", "x", "xml:space", "y"],
          "use": ["class", "clip-path", "clip-rule", "fill", "fill-opacity", "fill-rule", "filter", "height", "id", "mask", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "transform", "width", "x", "xlink:href", "y"],
        
          // MathML Elements
          "annotation": ["encoding"],
          "annotation-xml": ["encoding"],
          "maction": ["actiontype", "other", "selection"],
          "math": ["class", "id", "display", "xmlns"],
          "menclose": ["notation"],
          "merror": [],
          "mfrac": ["linethickness"],
          "mi": ["mathvariant"],
          "mmultiscripts": [],
          "mn": [],
          "mo": ["fence", "lspace", "maxsize", "minsize", "rspace", "stretchy"],
          "mover": [],
          "mpadded": ["lspace", "width", "height", "depth", "voffset"],
          "mphantom": [],
          "mprescripts": [],
          "mroot": [],
          "mrow": ["xlink:href", "xlink:type", "xmlns:xlink"],
          "mspace": ["depth", "height", "width"],
          "msqrt": [],
          "mstyle": ["displaystyle", "mathbackground", "mathcolor", "mathvariant", "scriptlevel"],
          "msub": [],
          "msubsup": [],
          "msup": [],
          "mtable": ["align", "columnalign", "columnlines", "columnspacing", "displaystyle", "equalcolumns", "equalrows", "frame", "rowalign", "rowlines", "rowspacing", "width"],
          "mtd": ["columnalign", "columnspan", "rowalign", "rowspan"],
          "mtext": [],
          "mtr": ["columnalign", "rowalign"],
          "munder": [],
          "munderover": [],
          "none": [],
          "semantics": []
        };
        
        // Produce a Namespace-aware version of svgWhitelist
        var svgWhiteListNS_ = {};
        $.each(svgWhiteList_, function(elt, atts){
          var attNS = {};
          $.each(atts, function(i, att){
            if (att.indexOf(':') >= 0) {
              var v = att.split(':');
              attNS[v[1]] = NS[(v[0]).toUpperCase()];
            } else {
              attNS[att] = att == 'xmlns' ? NS.XMLNS : null;
            }
          });
          svgWhiteListNS_[elt] = attNS;
        });
        
        // Function: svgedit.sanitize.sanitizeSvg
        // Sanitizes the input node and its children
        // It only keeps what is allowed from our whitelist defined above
        //
        // Parameters:
        // node - The DOM element to be checked (we'll also check its children)
        svgedit.sanitize.sanitizeSvg = function(node) {
          // Cleanup text nodes
          if (node.nodeType == 3) { // 3 == TEXT_NODE
            // Trim whitespace
            node.nodeValue = node.nodeValue.replace(/^\s+|\s+$/g, '');
            // Remove if empty
            if (node.nodeValue.length === 0) {
              node.parentNode.removeChild(node);
            }
          }
        
          // We only care about element nodes.
          // Automatically return for all non-element nodes, such as comments, etc.
          if (node.nodeType != 1) { // 1 == ELEMENT_NODE
            return;
          }
        
          var doc = node.ownerDocument;
          var parent = node.parentNode;
          // can parent ever be null here?  I think the root node's parent is the document...
          if (!doc || !parent) {
            return;
          }
        
          var allowedAttrs = svgWhiteList_[node.nodeName];
          var allowedAttrsNS = svgWhiteListNS_[node.nodeName];
          var i;
          // if this element is supported, sanitize it
          if (typeof allowedAttrs !== 'undefined') {
        
            var seAttrs = [];
            i = node.attributes.length;
            while (i--) {
              // if the attribute is not in our whitelist, then remove it
              // could use jQuery's inArray(), but I don't know if that's any better
              var attr = node.attributes.item(i);
              var attrName = attr.nodeName;
              var attrLocalName = attr.localName;
              var attrNsURI = attr.namespaceURI;
              // Check that an attribute with the correct localName in the correct namespace is on 
              // our whitelist or is a namespace declaration for one of our allowed namespaces
              if (!(allowedAttrsNS.hasOwnProperty(attrLocalName) && attrNsURI == allowedAttrsNS[attrLocalName] && attrNsURI != NS.XMLNS) &&
                !(attrNsURI == NS.XMLNS && REVERSE_NS[attr.value]) )
              {
                // TODO(codedread): Programmatically add the se: attributes to the NS-aware whitelist.
                // Bypassing the whitelist to allow se: prefixes.
                // Is there a more appropriate way to do this?
                if (attrName.indexOf('se:') === 0) {
                  seAttrs.push([attrName, attr.value]);
                }
                node.removeAttributeNS(attrNsURI, attrLocalName);
              }
        
              // Add spaces before negative signs where necessary
              if (svgedit.browser.isGecko()) {
                switch (attrName) {
                case 'transform':
                case 'gradientTransform':
                case 'patternTransform':
                  var val = attr.value.replace(/(\d)-/g, '$1 -');
                  node.setAttribute(attrName, val);
                  break;
                }
              }
        
              // For the style attribute, rewrite it in terms of XML presentational attributes
              if (attrName == 'style') {
                var props = attr.value.split(';'),
                  p = props.length;
                while (p--) {
                  var nv = props[p].split(':');
                  var styleAttrName = $.trim(nv[0]);
                  var styleAttrVal = $.trim(nv[1]);
                  // Now check that this attribute is supported
                  if (allowedAttrs.indexOf(styleAttrName) >= 0) {
                    node.setAttribute(styleAttrName, styleAttrVal);
                  }
                }
                node.removeAttribute('style');
              }
            }
        
            $.each(seAttrs, function(i, attr) {
              node.setAttributeNS(NS.SE, attr[0], attr[1]);
            });
        
            // for some elements that have a xlink:href, ensure the URI refers to a local element
            // (but not for links)
            var href = svgedit.utilities.getHref(node);
            if (href &&
              ['filter', 'linearGradient', 'pattern',
              'radialGradient', 'textPath', 'use'].indexOf(node.nodeName) >= 0) {
              // TODO: we simply check if the first character is a #, is this bullet-proof?
              if (href[0] != '#') {
                // remove the attribute (but keep the element)
                svgedit.utilities.setHref(node, '');
                node.removeAttributeNS(NS.XLINK, 'href');
              }
            }
        
            // Safari crashes on a <use> without a xlink:href, so we just remove the node here
            if (node.nodeName == 'use' && !svgedit.utilities.getHref(node)) {
              parent.removeChild(node);
              return;
            }
            // if the element has attributes pointing to a non-local reference,
            // need to remove the attribute
            $.each(['clip-path', 'fill', 'filter', 'marker-end', 'marker-mid', 'marker-start', 'mask', 'stroke'], function(i, attr) {
              var val = node.getAttribute(attr);
              if (val) {
                val = svgedit.utilities.getUrlFromAttr(val);
                // simply check for first character being a '#'
                if (val && val[0] !== '#') {
                  node.setAttribute(attr, '');
                  node.removeAttribute(attr);
                }
              }
            });
        
            // recurse to children
            i = node.childNodes.length;
            while (i--) { svgedit.sanitize.sanitizeSvg(node.childNodes.item(i)); }
          }
          // else (element not supported), remove it
          else {
            // remove all children from this node and insert them before this node
            // FIXME: in the case of animation elements this will hardly ever be correct
            var children = [];
            while (node.hasChildNodes()) {
              children.push(parent.insertBefore(node.firstChild, node));
            }
        
            // remove this node from the document altogether
            parent.removeChild(node);
        
            // call sanitizeSvg on each of those children
            i = children.length;
            while (i--) { svgedit.sanitize.sanitizeSvg(children[i]); }
          }
        };
        
        }());
        
      • select.js
        /*globals $, svgedit*/
        /*jslint vars: true, eqeq: true, forin: true*/
        /**
         * Package: svedit.select
         *
         * Licensed under the MIT License
         *
         * Copyright(c) 2010 Alexis Deveria
         * Copyright(c) 2010 Jeff Schiller
         */
        
        // Dependencies:
        // 1) jQuery
        // 2) browser.js
        // 3) math.js
        // 4) svgutils.js
        
        (function() {'use strict';
        
        if (!svgedit.select) {
        	svgedit.select = {};
        }
        
        var svgFactory_;
        var config_;
        var selectorManager_; // A Singleton
        var gripRadius = svgedit.browser.isTouch() ? 10 : 4;
        
        // Class: svgedit.select.Selector
        // Private class for DOM element selection boxes
        //
        // Parameters:
        // id - integer to internally indentify the selector
        // elem - DOM element associated with this selector
        svgedit.select.Selector = function(id, elem) {
        	// this is the selector's unique number
        	this.id = id;
        
        	// this holds a reference to the element for which this selector is being used
        	this.selectedElement = elem;
        
        	// this is a flag used internally to track whether the selector is being used or not
        	this.locked = true;
        
        	// this holds a reference to the <g> element that holds all visual elements of the selector
        	this.selectorGroup = svgFactory_.createSVGElement({
        		'element': 'g',
        		'attr': {'id': ('selectorGroup' + this.id)}
        	});
        
        	// this holds a reference to the path rect
        	this.selectorRect = this.selectorGroup.appendChild(
        		svgFactory_.createSVGElement({
        			'element': 'path',
        			'attr': {
        				'id': ('selectedBox' + this.id),
        				'fill': 'none',
        				'stroke': '#22C',
        				'stroke-width': '1',
        				'stroke-dasharray': '5,5',
        				// need to specify this so that the rect is not selectable
        				'style': 'pointer-events:none'
        			}
        		})
        	);
        
        	// this holds a reference to the grip coordinates for this selector
        	this.gripCoords = {
        		'nw': null,
        		'n' : null,
        		'ne': null,
        		'e' : null,
        		'se': null,
        		's' : null,
        		'sw': null,
        		'w' : null
        	};
        
        	this.reset(this.selectedElement);
        };
        
        
        // Function: svgedit.select.Selector.reset
        // Used to reset the id and element that the selector is attached to
        //
        // Parameters:
        // e - DOM element associated with this selector
        svgedit.select.Selector.prototype.reset = function(e) {
        	this.locked = true;
        	this.selectedElement = e;
        	this.resize();
        	this.selectorGroup.setAttribute('display', 'inline');
        };
        
        // Function: svgedit.select.Selector.updateGripCursors
        // Updates cursors for corner grips on rotation so arrows point the right way
        //
        // Parameters:
        // angle - Float indicating current rotation angle in degrees
        svgedit.select.Selector.prototype.updateGripCursors = function(angle) {
        	var dir,
        		dir_arr = [],
        		steps = Math.round(angle / 45);
        	if (steps < 0) {steps += 8;}
        	for (dir in selectorManager_.selectorGrips) {
        		dir_arr.push(dir);
        	}
        	while (steps > 0) {
        		dir_arr.push(dir_arr.shift());
        		steps--;
        	}
        	var i = 0;
        	for (dir in selectorManager_.selectorGrips) {
        		selectorManager_.selectorGrips[dir].setAttribute('style', ('cursor:' + dir_arr[i] + '-resize'));
        		i++;
        	}
        };
        
        // Function: svgedit.select.Selector.showGrips
        // Show the resize grips of this selector
        //
        // Parameters:
        // show - boolean indicating whether grips should be shown or not
        svgedit.select.Selector.prototype.showGrips = function(show) {
        	// TODO: use suspendRedraw() here
        	var bShow = show ? 'inline' : 'none';
        	selectorManager_.selectorGripsGroup.setAttribute('display', bShow);
        	var elem = this.selectedElement;
        	this.hasGrips = show;
        	if (elem && show) {
        		this.selectorGroup.appendChild(selectorManager_.selectorGripsGroup);
        		this.updateGripCursors(svgedit.utilities.getRotationAngle(elem));
        	}
        };
        
        // Function: svgedit.select.Selector.resize
        // Updates the selector to match the element's size
        svgedit.select.Selector.prototype.resize = function() {
        	var selectedBox = this.selectorRect,
        		mgr = selectorManager_,
        		selectedGrips = mgr.selectorGrips,
        		selected = this.selectedElement,
        		sw = selected.getAttribute('stroke-width'),
        		current_zoom = svgFactory_.currentZoom();
        	var offset = 1/current_zoom;
        	if (selected.getAttribute('stroke') !== 'none' && !isNaN(sw)) {
        		offset += (sw/2);
        	}
        
        	var tagName = selected.tagName;
        	if (tagName === 'text') {
        		offset += 2/current_zoom;
        	}
        
        	// loop and transform our bounding box until we reach our first rotation
        	var tlist = svgedit.transformlist.getTransformList(selected);
        	var m = svgedit.math.transformListToTransform(tlist).matrix;
        
        	// This should probably be handled somewhere else, but for now
        	// it keeps the selection box correctly positioned when zoomed
        	m.e *= current_zoom;
        	m.f *= current_zoom;
        
        	var bbox = svgedit.utilities.getBBox(selected);
        	if (tagName === 'g' && !$.data(selected, 'gsvg')) {
        		// The bbox for a group does not include stroke vals, so we
        		// get the bbox based on its children.
        		var stroked_bbox = svgFactory_.getStrokedBBox(selected.childNodes);
        		if (stroked_bbox) {
        			bbox = stroked_bbox;
        		}
        	}
        
        	// apply the transforms
        	var l = bbox.x, t = bbox.y, w = bbox.width, h = bbox.height;
        	bbox = {x:l, y:t, width:w, height:h};
        
        	// we need to handle temporary transforms too
        	// if skewed, get its transformed box, then find its axis-aligned bbox
        
        	//*
        	offset *= current_zoom;
        
        	var nbox = svgedit.math.transformBox(l*current_zoom, t*current_zoom, w*current_zoom, h*current_zoom, m),
        		aabox = nbox.aabox,
        		nbax = aabox.x - offset,
        		nbay = aabox.y - offset,
        		nbaw = aabox.width + (offset * 2),
        		nbah = aabox.height + (offset * 2);
        
        	// now if the shape is rotated, un-rotate it
        	var cx = nbax + nbaw/2,
        		cy = nbay + nbah/2;
        
        	var angle = svgedit.utilities.getRotationAngle(selected);
        	if (angle) {
        		var rot = svgFactory_.svgRoot().createSVGTransform();
        		rot.setRotate(-angle, cx, cy);
        		var rotm = rot.matrix;
        		nbox.tl = svgedit.math.transformPoint(nbox.tl.x, nbox.tl.y, rotm);
        		nbox.tr = svgedit.math.transformPoint(nbox.tr.x, nbox.tr.y, rotm);
        		nbox.bl = svgedit.math.transformPoint(nbox.bl.x, nbox.bl.y, rotm);
        		nbox.br = svgedit.math.transformPoint(nbox.br.x, nbox.br.y, rotm);
        
        		// calculate the axis-aligned bbox
        		var tl = nbox.tl;
        		var minx = tl.x,
        			miny = tl.y,
        			maxx = tl.x,
        			maxy = tl.y;
        
        		var min = Math.min, max = Math.max;
        
        		minx = min(minx, min(nbox.tr.x, min(nbox.bl.x, nbox.br.x) ) ) - offset;
        		miny = min(miny, min(nbox.tr.y, min(nbox.bl.y, nbox.br.y) ) ) - offset;
        		maxx = max(maxx, max(nbox.tr.x, max(nbox.bl.x, nbox.br.x) ) ) + offset;
        		maxy = max(maxy, max(nbox.tr.y, max(nbox.bl.y, nbox.br.y) ) ) + offset;
        
        		nbax = minx;
        		nbay = miny;
        		nbaw = (maxx-minx);
        		nbah = (maxy-miny);
        	}
        	var sr_handle = svgFactory_.svgRoot().suspendRedraw(100);
        
        	var dstr = 'M' + nbax + ',' + nbay
        				+ ' L' + (nbax+nbaw) + ',' + nbay
        				+ ' ' + (nbax+nbaw) + ',' + (nbay+nbah)
        				+ ' ' + nbax + ',' + (nbay+nbah) + 'z';
        	selectedBox.setAttribute('d', dstr);
        
        	var xform = angle ? 'rotate(' + [angle, cx, cy].join(',') + ')' : '';
        	this.selectorGroup.setAttribute('transform', xform);
        
        	// TODO(codedread): Is this if needed?
        //	if (selected === selectedElements[0]) {
        		this.gripCoords = {
        			'nw': [nbax, nbay],
        			'ne': [nbax+nbaw, nbay],
        			'sw': [nbax, nbay+nbah],
        			'se': [nbax+nbaw, nbay+nbah],
        			'n':  [nbax + (nbaw)/2, nbay],
        			'w':	[nbax, nbay + (nbah)/2],
        			'e':	[nbax + nbaw, nbay + (nbah)/2],
        			's':	[nbax + (nbaw)/2, nbay + nbah]
        		};
        		var dir;
        		for (dir in this.gripCoords) {
        			var coords = this.gripCoords[dir];
        			selectedGrips[dir].setAttribute('cx', coords[0]);
        			selectedGrips[dir].setAttribute('cy', coords[1]);
        		}
        
        		// we want to go 20 pixels in the negative transformed y direction, ignoring scale
        		mgr.rotateGripConnector.setAttribute('x1', nbax + (nbaw)/2);
        		mgr.rotateGripConnector.setAttribute('y1', nbay);
        		mgr.rotateGripConnector.setAttribute('x2', nbax + (nbaw)/2);
        		mgr.rotateGripConnector.setAttribute('y2', nbay - (gripRadius*5));
        
        		mgr.rotateGrip.setAttribute('cx', nbax + (nbaw)/2);
        		mgr.rotateGrip.setAttribute('cy', nbay - (gripRadius*5));
        //	}
        
        	svgFactory_.svgRoot().unsuspendRedraw(sr_handle);
        };
        
        
        // Class: svgedit.select.SelectorManager
        svgedit.select.SelectorManager = function() {
        	// this will hold the <g> element that contains all selector rects/grips
        	this.selectorParentGroup = null;
        
        	// this is a special rect that is used for multi-select
        	this.rubberBandBox = null;
        
        	// this will hold objects of type svgedit.select.Selector (see above)
        	this.selectors = [];
        
        	// this holds a map of SVG elements to their Selector object
        	this.selectorMap = {};
        
        	// this holds a reference to the grip elements
        	this.selectorGrips = {
        		'nw': null,
        		'n' :  null,
        		'ne': null,
        		'e' :  null,
        		'se': null,
        		's' :  null,
        		'sw': null,
        		'w' :  null
        	};
        
        	this.selectorGripsGroup = null;
        	this.rotateGripConnector = null;
        	this.rotateGrip = null;
        
        	this.initGroup();
        };
        
        // Function: svgedit.select.SelectorManager.initGroup
        // Resets the parent selector group element
        svgedit.select.SelectorManager.prototype.initGroup = function() {
        	// remove old selector parent group if it existed
        	if (this.selectorParentGroup && this.selectorParentGroup.parentNode) {
        		this.selectorParentGroup.parentNode.removeChild(this.selectorParentGroup);
        	}
        
        	// create parent selector group and add it to svgroot
        	this.selectorParentGroup = svgFactory_.createSVGElement({
        		'element': 'g',
        		'attr': {'id': 'selectorParentGroup'}
        	});
        	this.selectorGripsGroup = svgFactory_.createSVGElement({
        		'element': 'g',
        		'attr': {'display': 'none'}
        	});
        	this.selectorParentGroup.appendChild(this.selectorGripsGroup);
        	svgFactory_.svgRoot().appendChild(this.selectorParentGroup);
        
        	this.selectorMap = {};
        	this.selectors = [];
        	this.rubberBandBox = null;
        
        	// add the corner grips
        	var dir;
        	for (dir in this.selectorGrips) {
        		var grip = svgFactory_.createSVGElement({
        			'element': 'circle',
        			'attr': {
        				'id': ('selectorGrip_resize_' + dir),
        				'fill': '#22C',
        				'r': gripRadius,
        				'style': ('cursor:' + dir + '-resize'),
        				// This expands the mouse-able area of the grips making them
        				// easier to grab with the mouse.
        				// This works in Opera and WebKit, but does not work in Firefox
        				// see https://bugzilla.mozilla.org/show_bug.cgi?id=500174
        				'stroke-width': 2,
        				'pointer-events': 'all'
        			}
        		});
        
        		$.data(grip, 'dir', dir);
        		$.data(grip, 'type', 'resize');
        		this.selectorGrips[dir] = this.selectorGripsGroup.appendChild(grip);
        	}
        
        	// add rotator elems
        	this.rotateGripConnector = this.selectorGripsGroup.appendChild(
        		svgFactory_.createSVGElement({
        			'element': 'line',
        			'attr': {
        				'id': ('selectorGrip_rotateconnector'),
        				'stroke': '#22C',
        				'stroke-width': '1'
        			}
        		})
        	);
        
        	this.rotateGrip = this.selectorGripsGroup.appendChild(
        		svgFactory_.createSVGElement({
        			'element': 'circle',
        			'attr': {
        				'id': 'selectorGrip_rotate',
        				'fill': 'lime',
        				'r': gripRadius,
        				'stroke': '#22C',
        				'stroke-width': 2,
        				'style': 'cursor:url(' + config_.imgPath + 'rotate.png) 12 12, auto;'
        			}
        		})
        	);
        	$.data(this.rotateGrip, 'type', 'rotate');
        
        	if ($('#canvasBackground').length) {return;}
        
        	var dims = config_.dimensions;
        	var canvasbg = svgFactory_.createSVGElement({
        		'element': 'svg',
        		'attr': {
        			'id': 'canvasBackground',
        			'width': dims[0],
        			'height': dims[1],
        			'x': 0,
        			'y': 0,
        			'overflow': (svgedit.browser.isWebkit() ? 'none' : 'visible'), // Chrome 7 has a problem with this when zooming out
        			'style': 'pointer-events:none'
        		}
        	});
        
        	var rect = svgFactory_.createSVGElement({
        		'element': 'rect',
        		'attr': {
        			'width': '100%',
        			'height': '100%',
        			'x': 0,
        			'y': 0,
        			'stroke-width': 1,
        			'stroke': '#000',
        			'fill': '#FFF',
        			'style': 'pointer-events:none'
        		}
        	});
        
        	// Both Firefox and WebKit are too slow with this filter region (especially at higher
        	// zoom levels) and Opera has at least one bug
        //	if (!svgedit.browser.isOpera()) rect.setAttribute('filter', 'url(#canvashadow)');
        	canvasbg.appendChild(rect);
        	svgFactory_.svgRoot().insertBefore(canvasbg, svgFactory_.svgContent());
        };
        
        // Function: svgedit.select.SelectorManager.requestSelector
        // Returns the selector based on the given element
        //
        // Parameters:
        // elem - DOM element to get the selector for
        svgedit.select.SelectorManager.prototype.requestSelector = function(elem) {
        	if (elem == null) {return null;}
        	var i,
        		N = this.selectors.length;
        	// If we've already acquired one for this element, return it.
        	if (typeof(this.selectorMap[elem.id]) == 'object') {
        		this.selectorMap[elem.id].locked = true;
        		return this.selectorMap[elem.id];
        	}
        	for (i = 0; i < N; ++i) {
        		if (this.selectors[i] && !this.selectors[i].locked) {
        			this.selectors[i].locked = true;
        			this.selectors[i].reset(elem);
        			this.selectorMap[elem.id] = this.selectors[i];
        			return this.selectors[i];
        		}
        	}
        	// if we reached here, no available selectors were found, we create one
        	this.selectors[N] = new svgedit.select.Selector(N, elem);
        	this.selectorParentGroup.appendChild(this.selectors[N].selectorGroup);
        	this.selectorMap[elem.id] = this.selectors[N];
        	return this.selectors[N];
        };
        
        // Function: svgedit.select.SelectorManager.releaseSelector
        // Removes the selector of the given element (hides selection box)
        //
        // Parameters:
        // elem - DOM element to remove the selector for
        svgedit.select.SelectorManager.prototype.releaseSelector = function(elem) {
        	if (elem == null) {return;}
        	var i,
        		N = this.selectors.length,
        		sel = this.selectorMap[elem.id];
        	for (i = 0; i < N; ++i) {
        		if (this.selectors[i] && this.selectors[i] == sel) {
        			if (sel.locked == false) {
        				// TODO(codedread): Ensure this exists in this module.
        				console.log('WARNING! selector was released but was already unlocked');
        			}
        			delete this.selectorMap[elem.id];
        			sel.locked = false;
        			sel.selectedElement = null;
        			sel.showGrips(false);
        
        			// remove from DOM and store reference in JS but only if it exists in the DOM
        			try {
        				sel.selectorGroup.setAttribute('display', 'none');
        			} catch(e) { }
        
        			break;
        		}
        	}
        };
        
        // Function: svgedit.select.SelectorManager.getRubberBandBox
        // Returns the rubberBandBox DOM element. This is the rectangle drawn by the user for selecting/zooming
        svgedit.select.SelectorManager.prototype.getRubberBandBox = function() {
        	if (!this.rubberBandBox) {
        		this.rubberBandBox = this.selectorParentGroup.appendChild(
        			svgFactory_.createSVGElement({
        				'element': 'rect',
        				'attr': {
        					'id': 'selectorRubberBand',
        					'fill': '#22C',
        					'fill-opacity': 0.15,
        					'stroke': '#22C',
        					'stroke-width': 0.5,
        					'display': 'none',
        					'style': 'pointer-events:none'
        				}
        			})
        		);
        	}
        	return this.rubberBandBox;
        };
        
        
        /**
         * Interface: svgedit.select.SVGFactory
         * An object that creates SVG elements for the canvas.
         *
         * interface svgedit.select.SVGFactory {
         *   SVGElement createSVGElement(jsonMap);
         *   SVGSVGElement svgRoot();
         *   SVGSVGElement svgContent();
         *
         *   Number currentZoom();
         *   Object getStrokedBBox(Element[]); // TODO(codedread): Remove when getStrokedBBox() has been put into svgutils.js
         * }
         */
        
        /**
         * Function: svgedit.select.init()
         * Initializes this module.
         *
         * Parameters:
         * config - an object containing configurable parameters (imgPath)
         * svgFactory - an object implementing the SVGFactory interface (see above).
         */
        svgedit.select.init = function(config, svgFactory) {
        	config_ = config;
        	svgFactory_ = svgFactory;
        	selectorManager_ = new svgedit.select.SelectorManager();
        };
        
        /**
         * Function: svgedit.select.getSelectorManager
         *
         * Returns:
         * The SelectorManager instance.
         */
        svgedit.select.getSelectorManager = function() {
        	return selectorManager_;
        };
        
        }());
      • svg-editor.css
        body {
        	background: #D0D0D0;
        }
        
        html, body, div{
        	-webkit-user-select: text;
        	-khtml-user-select: text;
        	-moz-user-select: text;
        	-o-user-select: text;
        	user-select: text;
        	/* this will work for QtWebKit in future */
        	-webkit-user-drag: text;
        }
        
        #browser-not-supported {
        	font-size: 0.8em;
        	font-family: Verdana, Helvetica, Arial;
        	color: #000000;
        }
        
        #svg_editor * {
        	transform-origin: 0 0;
        	-moz-transform-origin: 0 0;
        	-o-transform-origin: 0 0;
        	-webkit-transform-origin: 0 0;
        }
        
        #svg_editor {
        	font-size: 8pt;
        	font-family: Verdana, Helvetica, Arial;
        	color: #000000;
        }
        
        a {
        	color: #19c;
        }
        
        hr {
        	border: none;
        	border-bottom: 1px solid #808080;
        }
        
        select {
        	margin-top: 4px;
        }
        
        #svgroot {
        	-moz-user-select: none;
        	-webkit-user-select: none;
        	position: absolute;
        	top: 0;
        	left: 0;
        }
        
        #svgcanvas {
        	line-height: normal;
        	display: inline-block;
        	background-color: #A0A0A0;
        	text-align: center;
        	vertical-align: middle;
        	width: 640px;
        	height: 480px;
        	-apple-dashboard-region:dashboard-region(control rectangle 0px 0px 0px 0px); /* for widget regions that shouldn't react to dragging */
        	position: relative;
        	/*
        	  A subtle gradient effect in the canvas.
        	  Just experimenting - not sure if this is worth it.
        	*/
        	background: -moz-radial-gradient(45deg,#bbb,#222);
        	background: -webkit-gradient(radial, center center, 3, center center, 1000, from(#bbb), to(#222));
        }
        
        /* Rulers
        ——————————————————————————————————————*/
        
        #rulers > div {
        	position: absolute;
        	background: #DDD;
        	z-index: 1;
        	overflow: hidden;
        }
        
        #ruler_corner {
        	top: 41px;
        	left: 41px;
        	width: 15px;
        	height: 15px;
        }
        
        #ruler_x {
        	height: 15px;
        	top: 41px;
        	left: 56px;
        	right: 30px;
        	border-bottom: 1px solid;
        	border-left: 1px solid #777;
        }
        
        #ruler_y {
        	width: 15px;
        	top: 55px;
        	left: 41px;
        	bottom: 56px;
        	border-right: 1px solid;
        	border-top: 1px solid #777;
        }
        
        #ruler_x canvas:first-child {
        	margin-left: -16px;
        }
        
        #ruler_x canvas {
        	float: left;
        }
        
        #ruler_y canvas {
        	margin-top: -16px;
        }
        
        #ruler_x > div,
        #ruler_y > div {
        	overflow: hidden;
        }
        
        #palette_holder {
        	overflow: hidden;
        	margin-top: 5px;
        	padding: 5px;
        	position: absolute;
        	right: 15px;
        	height: 16px;
        	background: #f0f0f0;
        	border-radius: 3px;
        	z-index: 2;
        }
        
        #stroke_bg,
        #fill_bg {
        	height: 16px;
        	width: 16px;
        	margin: 1px;
        }
        
        #zoomLabel {
        	cursor: pointer;
        	margin-right: 5px;
        	padding-top: 4px
        }
        
        #linkLabel > svg {
        	height: 20px;
        	padding-top: 4px;
        }
        
        #palette {
        	float: left;
        	width: 632px;
        	height: 16px;
        }
        
        #workarea {
        	display: inline-table-cell;
        	position:absolute;
        	top: 40px;
        	left: 40px;
        	bottom: 40px;
        	right: 14px;
        	background-color: #A0A0A0;
        	border: 1px solid #808080;
        	overflow: auto;
        	text-align: center;
        }
        
        #sidepanels {
        	display: inline-block;
        	position:absolute;
        	top: 40px;
        	bottom: 40px;
        	right: 0;
        	width: 2px;
        	padding: 10px;
        	border-color: #808080;
        	border-style: solid;
        	border-width: 1px;
        	border-left: none;
        	overflow-x:hidden;
        	overflow-y:visible;
        }
        
        #layerpanel {
        	display: inline-block;
        	position:relative;
        	top: 0px;
        	bottom: 0;
        	left: 12px;
        	width: 0;
        	overflow: hidden;
        	margin: 0;
        	-moz-user-select: none;
        	-webkit-user-select: none;
        }
        
        /*
        	border-style: solid;
        	border-color: #666;
        	border-width: 0px 0px 0px 1px;
        */
        #sidepanel_handle {
        	display: inline-block;
        	position: absolute;
        	background-color: #D0D0D0;
        	font-weight: bold;
        	left: 0;
        	top: 40%;
        	width: 1em;
        	padding: 5px 1px 5px 5px;
        	margin-left: 3px;
        	cursor: pointer;
        	border-radius: 5px;
        	-moz-border-radius: 5px;
        	-webkit-border-radius: 5px;
        	-moz-user-select: none;
        	-webkit-user-select: none;
        }
        
        #sidepanel_handle:hover {
        	font-weight: bold;
        }
        
        #sidepanel_handle * {
        	cursor: pointer;
        	-moz-user-select: none;
        	-webkit-user-select: none;
        }
        #layerbuttons {
        	margin: 0;
        	padding: 0;
        	padding-left: 2px;
        	padding-right: 2px;
        	width: 125px;
        	height: 20px;
        	border-right: 1px solid #FFFFFF;
        	border-bottom: 1px solid #FFFFFF;
        	border-left: 1px solid #808080;
        	border-top: 1px solid #808080;
        	overflow: hidden;
        }
        
        .layer_button {
        	width: 14px;
        	height: 14px;
        	padding: 1px;
        	border-left: 1px solid #FFFFFF;
        	border-top: 1px solid #FFFFFF;
        	border-right: 1px solid #808080;
        	border-bottom: 1px solid #808080;
        	cursor: pointer;
        	float: left;
        	margin-right: 3px;
        }
        
        .layer_button:last-child {
        	margin-right: 0;
        }
        
        .layer_buttonpressed {
        	width: 14px;
        	height: 14px;
        	padding: 1px;
        	border-right: 1px solid #FFFFFF;
        	border-bottom: 1px solid #FFFFFF;
        	border-left: 1px solid #808080;
        	border-top: 1px solid #808080;
        	cursor: pointer;
        }
        
        #layerlist {
        	margin: 1px;
        	padding: 0;
        	width: 127px;
        	border-collapse: collapse;
        	border: 1px solid #808080;
        	background-color: #FFFFFF;
        }
        
        #layerlist tr.layer {
        	background-color: #FFFFFF;
        	margin: 0;
        	padding: 0;
        }
        
        #layerlist tr.layersel {
        	border: 1px solid #808080;
        	background-color: #CCCCCC;
        }
        
        #layerlist td.layervis {
        	width: 22px;
        	cursor: pointer;
        }
        
        #layerlist td.layerinvis {
        	background-image: none;
        	cursor: pointer;
        }
        
        #layerlist td.layervis * {
        	display: block;
        }
        
        #layerlist td.layerinvis * {
        	display: none;
        }
        
        #layerlist td.layername {
        	cursor: pointer;
        }
        
        #layerlist td.layername:hover {
        	color: blue;
        	font-style: italic;
        }
        
        #layerlist tr.layersel td.layername {
        	font-weight: bold;
        }
        
        #selLayerLabel {
        	white-space: nowrap;
        }
        
        #selLayerNames {
        	display: block;
        }
        
        div.palette_item {
        	height: 15px;
        	width: 15px;
        	float: left;
        }
        
        div.palette_item:first-child {
        	background: white;
        }
        
        /* Main button
        —————————————————————————————*/
        
        #main_button {
        	position: absolute;
        	top: 4px;
        	left: 5px;
        	z-index: 5;
        }
        
        #main_icon {
        	position: relative;
        	top: -2px;
        	left: -2px;
        	width: 95px;
        	line-height: 26px;
        }
        
        #main_icon:hover {
        	background: #eee !important;
        }
        
        #main_icon.buttondown {
        	background: #eee !important;
        	-moz-box-shadow: none !important;
        	-webkit-box-shadow: none !important;
        	box-shadow: none !important;
        	border-radius: 3px 3px 0 0;
        }
        
        #logo {
        	margin-top: -2px;
        }
        
        #logo img {
        	border: 0;
        	width: 28px;
        	height: 28px;
        }
        
        #main_icon > div {
        	float: left;
        }
        
        #main_button .dropdown {
        	position: absolute;
        	right: 7px;
        	top: 4px;
        }
        
        #main_icon span {
        	position: absolute;
        	top: 0;
        	left: 0;
        	bottom: 0;
        	right: 0;
        	display: block;
        	z-index: 2;
        	font-weight: bold;
        	padding-left: 34px;
        	line-height: 32px;
        	font-family: sans-serif;
        }
        
        #main_menu {
        	z-index: 12;
        	background: #eee;
        	position: relative;
        	width: 230px;
        	padding: 5px;
        	-moz-box-shadow: #555 1px 1px 4px;
        	-webkit-box-shadow: #555 1px 1px 4px;
        	box-shadow: #555 1px 1px 4px;
        	font-size: 1.1em;
        	display: none;
        	overflow: hidden;
        	clear: both;
        	top: -9px;
        }
        
        #main_menu ul,
        #main_menu li {
        	list-style: none;
        	margin: 0;
        	padding: 0;
        }
        
        #main_menu li {
        /*	height: 35px;*/
        	line-height: 22px;
        	padding-top: 7px;
        	padding-left: 7px;
        	margin: -5px;
        	overflow: auto;
        	cursor: default;
        }
        
        #main_menu li:hover {
        	background: #FFC;
        }
        
        #main_menu li > div {
        	float: left;
        	padding-right: 5px;
        }
        
        #main_menu p {
        	margin-top: 5px;
        }
        
        /*—————————————————————————————*/
        
        .tool_button:hover,
        .push_button:hover,
        .buttonup:hover,
        .buttondown,
        .tool_button_current,
        .push_button_pressed
        {
        	background-color: #ffc !important;
        }
        
        .tool_button_current,
        .push_button_pressed,
        .buttondown {
        	background-color: #f4e284 !important;
        	-webkit-box-shadow: inset 1px 1px 2px rgba(0,0,0,0.4), 1px 1px  0 white  !important;
        	-moz-box-shadow: inset 1px 1px 2px rgba(0,0,0,0.4), 1px 1px  0 white  !important;
        	box-shadow: inset 1px 1px 2px rgba(0,0,0,0.4), 1px 1px  0 white  !important;
        }
        
        #tools_top {
        	position: absolute;
        	left: 108px;
        	right: 2px;
        	top: 2px;
        	height: 40px;
        	border-bottom: none;
        	overflow: auto;
        }
        
        #tools_top .tool_sep {
        	margin-top: 5px;
        }
        
        #tools_left {
        	position: absolute;
        	border-right: none;
        	width: 32px;
        	top: 40px;
        	left: 1px;
        	margin-top: -2px;
        	padding-left: 2px;
        	background: #D0D0D0; /* Needed so flyout icons don't appear on the left */
        	z-index: 4;
        }
        
        #workarea.wireframe #svgcontent * {
        	fill: none;
        	stroke: #000;
        	stroke-width: 1px;
        	stroke-opacity: 1.0;
        	stroke-dasharray: 0;
        	opacity: 1;
        	pointer-events: stroke;
        	vector-effect: non-scaling-stroke;
        	filter: none;
        }
        
        #workarea.wireframe #svgcontent text {
        	fill: #000;
        	stroke: none;
        }
        
        #workarea.wireframe #canvasBackground > rect {
        	fill: #FFF !important;
        }
        
        #tools_top div[id$="_panel"]:not(#editor_panel):not(#history_panel) {
        	display: none;
        }
        
        #editor_panel, #history_panel {
        	height: 34px;
        	float: left;
        }
        
        #multiselected_panel .selected_tool {
        	vertical-align: 12px;
        }
        
        /*TODO: Adjust position of rulers are not visible*/
        #cur_context_panel {
        	position: absolute;
        	top: 57px;
        	left: 56px;
        	line-height: 22px;
        	overflow: auto;
        	padding-left: 5px;
        	font-size: 12px;
        	background: rgba(0, 0, 0, 0.8);
        	color: #ccc;
        	padding: 0 10px;
        	border-radius: 0 0 3px 0;
        }
        
        #cur_context_panel a {
        	float: none;
        	text-decoration: none;
        }
        
        #cur_context_panel a:hover {
        	text-decoration: underline;
        }
        
        #tools_top > div, #tools_top {
        	line-height: 26px;
        }
        
        div.toolset,
        div.toolset > * {
        	float: left;
        }
        
        div.toolset {
        	height: 34px;
        }
        
        div.toolset label span {
        /*	outline: 1px solid red;*/
        	padding-top: 3px;
        	display: inline-block;
        }
        
        #tools_top > div > * {
        	float: left;
        	margin-right: 2px;
        }
        
        #tools_top label {
        	margin-top: 0;
        	margin-left: 5px;
        }
        
        #tools_top input {
        	margin-top: 5px;
        	height: 15px;
        }
        
        input[type=text] {
        	padding: 2px;
        }
        
        #tools_left .tool_button,
        #tools_left .tool_button_current {
        	position: relative;
        	z-index: 11;
        }
        
        .flyout_arrow_horiz {
        	position: absolute;
        	bottom: -1px;
        	right: 0;
        	z-index: 10;
        }
        
        
        span.zoom_tool {
        	line-height: 26px;
        	padding: 3px;
        }
        
        #zoom_panel {
        	margin-top: 5px;
        }
        
        .dropdown {
        	position: relative;
        }
        
        .dropdown button {
        	width: 15px;
        	height: 21px;
        	margin: 6px 0 0 1px;
        	padding: 0;
        	border-left: 1px solid #FFFFFF;
        	border-top: 1px solid #FFFFFF;
        	border-right: 1px solid #808080;
        	border-bottom: 1px solid #808080;
        	background-color: #E8E8E8;
        }
        
        .dropdown button.down {
        	border-left: 1px solid #808080;
        	border-top: 1px solid #808080;
        	border-right: 1px solid #FFFFFF;
        	border-bottom: 1px solid #FFFFFF;
        	background-color: #B0B0B0;
        }
        
        .dropdown ul {
        	list-style: none;
        	position: absolute;
        	margin: 0;
        	padding: 0;
        	left: -85px;
        	top: 26px;
        	z-index: 4;
        	display: none;
        }
        
        .dropup ul {
        	top: auto;
        	bottom: 24px;
        }
        
        .dropdown li {
        	display: block;
        	width: 120px;
        	padding: 4px;
        	background: #E8E8E8;
        	border: 1px solid #B0B0B0;
        	margin: 0 0 -1px 0;
        	line-height: 16px;
        }
        
        .dropdown li:hover {
        	background-color: #FFC;
        }
        
        .dropdown li.special {
        	padding: 10px 4px;
        }
        
        .dropdown li.special:hover {
        	background: #FFC;
        }
        
        #font_family_dropdown-list li {
        	font-size: 1.4em;
        }
        
        #font_family {
        	margin-left: 5px;
        	margin-right: 0;
        }
        
        .tool_button,
        .push_button,
        .tool_button_current,
        .push_button_pressed
        {
        	height: 24px;
        	width: 24px;
        	margin: 2px 2px 4px 2px;
        	padding: 3px;
        	-webkit-box-shadow: inset 1px 1px 2px white, 1px 1px 1px rgba(0,0,0,0.3);
        	moz-box-shadow: inset 1px 1px 2px white, 1px 1px 1px rgba(0,0,0,0.3);
        	box-shadow: inset 1px 1px 2px white, 1px 1px 1px rgba(0,0,0,0.3);
        	background-color: #E8E8E8;
        	cursor: pointer;
        	border-radius: 3px;
        	-moz-border-radius: 3px;
        	-webkit-border-radius: 3px;
        }
        
         #main_menu li#tool_open,  #main_menu li#tool_import {
        	position: relative;
        	overflow: hidden;
        }
        
        #tool_image {
        	overflow: hidden;
        }
        
        #tool_open input,
        #tool_import input,
        #tool_image input {
        	position: absolute;
        	opacity: 0;
        	font-size: 10em;
        	top: -5px;
        	right: -5px;
        	margin: 0;
        	cursor: pointer; /* Sadly doesn't appear to have an effect */
        }
        
        .disabled {
        	opacity: 0.5;
        	cursor: default;
        }
        
        .tool_sep {
        	width: 1px;
        	background: #888;
        	border-left: 1px outset #EEE;
        	margin: 2px 3px;
        	padding: 0;
        	height: 24px;
        }
        
        .icon_label {
        	float: left;
        	padding-top: 3px;
        	padding-right: 3px;
        	box-sizing: border-box;
        	-moz-box-sizing: border-box;
        	-webkit-box-sizing: border-box;
        	height: 0;
        }
        
        .width_label {
        	padding-right: 5px;
        }
        
        #tool_bold, #tool_italic {
        	font: bold 2.1em/1.1em serif;
        	text-align: center;
        	padding-left: 2px;
        	position: relative;
        }
        
        #text {
        	position: absolute;
        	left: -9999px;
        }
        
        #tool_bold span, #tool_italic span {
        	position: absolute;
        	width: 100%;
        	height: 100%;
        	top: 0; left: 0;
        	background: #000;
        	opacity: 0;
        }
        
        #tool_italic {
        	font-weight: normal;
        	font-style: italic;
        }
        
        #url_notice {
        	padding-top: 4px;
        	display: none;
        }
        
        #color_picker {
        	position: absolute;
        	display: none;
        	background: #E8E8E8;
        	height: 350px;
        	z-index: 5;
        }
        
        .tools_flyout {
        	position: absolute;
        	display: none;
        	cursor: pointer;
        	width: 400px;
        	z-index: 1;
        }
        
        .tools_flyout_v {
        	position: absolute;
        	display: none;
        	cursor: pointer;
        	width: 30px;
        }
        
        .tools_flyout .tool_button {
        	float: left;
        	background-color: #E8E8E8;
        	border-left: 1px solid #FFFFFF;
        	border-top: 1px solid #FFFFFF;
        	border-right: 1px solid #808080;
        	border-bottom: 1px solid #808080;
        	height: 28px;
        	width: 28px;
        }
        
        #tools_bottom {
        	position: absolute;
        	left: 40px;
        	right: 0;
        	bottom: 0;
        	height: 40px;
        	overflow: visible;
        }
        
        #tools_bottom_1 {
        	width: 115px;
        	float: left;
        }
        
        #tools_bottom input[type=text] {
        	width: 2.2em;
        }
        
        /* Color tools: fill, stroke, opacity
        –––––––––––––––––––––––––––––––––––––*/
        
        #tools_bottom_2 {
        	float: left;
        	width: 300px;
        	position: relative;
        	margin-top: 5px;
        	-webkit-transition: width 150ms ease;
        }
        
        .expanded #tools_bottom_2 {
        	width: 450px;
        }
        
        #tools_bottom #tools_bottom_2 .dropdown button {
        	margin-top: 2px;
        }
        
        .dropdown li.tool_button {
        	width: 24px;
        }
        
        #tools_bottom_2 .icon_label {
        	display: block;
        	margin: 3px 5px;
        	padding: 0;
        }
        
        #tool_opacity { right: 0;}
        #tool_fill { left: 0; }
        #tool_stroke { left: 60px;}
        
        #fill_color,  #stroke_color {
        	height: 16px;
        	width: 16px;
        	border: 1px solid #808080;
        	cursor: pointer;
        	overflow: hidden;
        }
        
        #stroke_expand {
        	width: 0;
        	overflow: hidden;
        }
        
        #toggle_stroke_tools {
        	position: absolute;
        	right: 0;
        	top: 0;
        	bottom: 0;
        	width: 25px;
        	text-align: center;
        	border-radius: 0 3px 3px 0;
        	margin: 0;
        }
        
        #toggle_stroke_tools:before {
        	content: '>>';
        	letter-spacing: -3px;
        	font-weight: bold;
        	color: #666;
        }
        
        .expanded #tool_stroke.color_tool {
        	width: 280px;
        }
        
        .expanded #toggle_stroke_tools:before {
        	content: '<<';
        }
        
        #toggle_stroke_tools:hover {
        	background: white;
        }
        
        .color_tool {
        	position: absolute;
        	overflow: hidden;
        	background: #f0f0f0;
        	height: 26px;
        	line-height: 26px;
        	border-radius: 3px;
        	min-width: 52px;
        }
        
        #tool_stroke.color_tool {
        	width: 130px;
        	z-index: 2;
        	-webkit-transition: width 150ms ease;
        	-moz-transition: width 150ms ease;
        	-o-transition: width 150ms ease;
        	-ms-transition: width 150ms ease;
        	transition: width 150ms ease;
        }
        
        .color_block {
        	position: absolute;
        	top: 0;
        	left: 0;
        }
        
        .color_block svg {
        	display: block;
        }
        
        .color_tool > * {
        	float: left;
        	margin-right: 5px;
        }
        
        .color_tool .dropdown > * {
        	float: left;
        }
        
        .color_tool .stroke_label {
        	margin-left: 25px;
        	float: left;
        }
        
        .color_tool > .color_block {
        	top: 3px;
        	left: 29px;
        }
        
        .color_tool input {
        	margin: 0;
        }
        
        #tool_opacity {
        	overflow: visible;
        }
        
        @media screen and (max-width:1250px) {
        	.expanded #palette_holder {
        		left: 560px;
        		overflow-x: scroll;
        		padding: 0 5px;
        		margin-top: 2px;
        		height: 30px;
        	}
        	#tools_top {
        		height: 71px;
        	}
        	#workarea, #sidepanels {
        		top: 70px;
        	}
        	#rulers #ruler_corner,
        	#rulers #ruler_x, #tools_left {
        		top: 71px;
        	}
        
        	#rulers #ruler_y {
        		top: 86px;
        	}
        
        	#cur_context_panel {
        		top: 87px;
        	}
        
        	#selected_panel {
        		clear: right;
        	}
        }
        
        @media screen and (max-width:1100px) {
        	#tools_bottom:not(.expanded) #palette_holder {
        		left: 410px;
        		overflow-x: scroll;
        		padding: 0 5px;
        		margin-top: 2px;
        		height: 30px;
        	}
        }
        
        /*–––––––––––––––––––––––––––––––––––––*/
        
        #option_lists ul {
        	display: none;
        	position: absolute;
        	height: auto;
        	z-index: 3;
        	margin: -10px;
        	list-style: none;
        	padding-left: 0;
        }
        
        #option_lists .optcols2 {
        	width: 70px;
        	margin-left: -15px;
        }
        
        #option_lists .optcols3 {
        	width: 90px;
        	margin-left: -31px;
        }
        
        #option_lists .optcols4 {
        	width: 130px;
        	margin-left: -44px;
        }
        
        #option_lists ul[class^=optcols] li {
        	float: left;
        }
        
        ul li.current {
        	background-color: #F4E284;
        }
        
        #option_lists ul li {
        	margin: 0;
        	border-radius: 0;
        	-moz-border-radius: 0;
        	-webkit-border-radius: 0;
        }
        
        #tools_bottom .dropdown button {
        	margin-top: 2px;
        }
        
        #opacity_dropdown li {
        	width: 140px;
        }
        
         #copyright {
        	text-align: right;
        	padding-right: .3em;
        }
        
        #svg_source_editor {
        	display: none;
        }
        
        .overlay {
        	position: absolute;
        	top: 0;
        	right: 0;
        	left: 0;
        	bottom: 0;
        	background-color: black;
        	opacity: 0.6;
        	z-index: 5;
        }
        
        #svg_source_editor #svg_source_container {
        	position: absolute;
        	top: 30px;
        	left: 30px;
        	right: 30px;
        	bottom: 30px;
        	background-color: #B0B0B0;
        	opacity: 1.0;
        	text-align: center;
        	border: 1px outset #777;
        	z-index: 6;
        }
        
        #save_output_btns {
        	display: none;
        	text-align: left;
        }
        
        #save_output_btns p {
        	margin: .5em 1.5em;
        	display: inline-block;
        }
        
        #bg_blocks {
        	overflow: auto;
        	margin-left: 30px;
        }
        
        #bg_blocks .color_block {
        	position: static;
        }
        
        #svg_docprops #svg_docprops_container,
        #svg_prefs #svg_prefs_container {
        	position: absolute;
        	top: 50px;
        	padding: 10px;
        	background-color: #B0B0B0;
        	border: 1px outset #777;
        	opacity: 1.0;
        /*	width: 450px;*/
        	font-family: Verdana, Helvetica, sans-serif;
        	font-size: .8em;
        	z-index: 20001;
        }
        
        #svg_docprops .error {
        	border: 1px solid red;
        	padding: 3px;
        }
        
        #svg_docprops #resolution {
        	max-width: 14em;
        }
        
        #tool_docprops_back,
        #tool_prefs_back {
        	margin-left: 1em;
        	overflow: auto;
        }
        
        #svg_docprops_container #svg_docprops_docprops,
        #svg_prefs #svg_docprops_prefs {
        	float: left;
        	width: 221px;
        	margin: 5px .7em;
        	overflow: hidden;
        }
        
        #svg_prefs_container fieldset + fieldset {
        	float: right;
        }
        
        #svg_docprops legend,
        #svg_prefs legend {
        	max-width: 195px;
        }
        
        #svg_docprops_docprops > legend,
        #svg_prefs_container > fieldset > legend {
        	font-weight: bold;
        	font-size: 1.1em;
        }
        
        #svg_docprops_container fieldset,
        #svg_prefs fieldset {
        	padding: 5px;
        	margin: 5px;
        	border: 1px solid #DDD;
        }
        
        #svg_docprops_container label,
        #svg_prefs_container label {
        	display: block;
        	margin: .5em;
        }
        
        #svginfo_bg_note {
        	font-size: .9em;
        	font-style: italic;
        	color: #444;
        }
        
        #canvas_title, #canvas_bg_url {
        	display: block;
        	width: 96%;
        }
        
        
        #svg_source_editor form {
        	position: absolute;
        	top: 40px;
        	bottom: 30px;
        	width: 100%;
        }
        
        #svg_source_editor #svg_source_textarea {
        	position: relative;
        	width: 95%;
        	height: 95%;
        	padding: 5px;
        	font-size: 12px;
        }
        
        #svg_source_editor #tool_source_back {
        	text-align: left;
        	padding-left: 20px;
        }
        
        #svg_prefs_container div.color_block {
        	float: left;
        	margin: 2px;
        	padding: 20px;
        }
        
        #change_background div.cur_background {
        	border: 2px solid blue;
        	padding: 18px;
        }
        
        #background_img {
        	position: absolute;
        	top: 0;
        	left: 0;
        	text-align: left;
        }
        
        #svg_docprops button,
        #svg_prefs button {
        	margin-top: 0;
        	margin-bottom: 5px;
        }
        
        #svg_docprops,
        #svg_prefs {
        	display: none;
        }
        
        #image_save_opts label {
        	font-size: .9em;
        }
        
        #image_save_opts input {
        	margin-left: 0;
        }
        
        #tool_prefs_option {
        	float: right;
        }
        
        .toolbar_button button {
        	border:1px solid #dedede;
        	line-height:130%;
        	float: left;
        	background: #E8E8E8 none;
        	padding:5px 10px 5px 7px; /* Firefox */
        	line-height:17px; /* Safari */
        	margin: 5px 20px 0 0;
        	border: 1px #808080 solid;
        	border-top-color: #FFF;
        	border-left-color: #FFF;
        	border-radius: 5px;
        	-moz-border-radius: 5px;
        	-webkit-border-radius: 5px;
        }
        
        .toolbar_button button:hover {
        	border: 1px #e0a874 solid;
        	border-top-color: #fcd9ba;
        	border-left-color: #fcd9ba;
        	background-color: #FFC;
        }
        .toolbar_button button:active {
        	background-color: #F4E284;
        	border-left: 1px solid #663300;
        	border-top: 1px solid #663300;
        }
        
        .toolbar_button button .svg_icon {
        	margin: 0 3px -3px 0 !important;
        	padding: 0;
        	border: none;
        	width: 16px;
        	height: 16px;
        }
        
        #dialog_box {
        	display: none;
        }
        
        #dialog_content {
        	height: 95px;
        	margin: 10px 10px 5px 10px;
        	background: #DDD;
        	overflow: auto;
        	text-align: left;
        	border: 1px solid #B0B0B0;
        }
        
        #dialog_content.prompt {
        	height: 75px;
        }
        
        #dialog_content p {
        	margin: 10px;
        	line-height: 1.3em;
        }
        
        #dialog_container {
        	position: absolute;
        	font-family: Verdana;
        	text-align: center;
        	left: 50%;
        	top: 50%;
        	width: 300px;
        	margin-left: -150px;
        	height: 150px;
        	margin-top: -80px;
        	position: fixed;
        	z-index: 50001;
        	background: #CCC;
        	border: 1px outset #777;
        	font-family:Verdana,Helvetica,sans-serif;
        	font-size:0.8em;
        }
        
        #dialog_container, #dialog_content {
        	border-radius: 5px;
        	-moz-border-radius: 5px;
        	-webkit-border-radius: 5px;
        }
        
        #dialog_buttons input[type=text] {
        	width: 90%;
        	display: block;
        	margin: 0 0 5px 11px;
        }
        
        #dialog_buttons input[type=button] {
        	margin: 0 1em;
        }
        
        /* Slider
        ----------------------------------*/
        .ui-slider { position: relative; text-align: left; }
        .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
        .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; }
        
        .ui-slider-horizontal { height: .8em; }
        .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
        .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
        .ui-slider-horizontal .ui-slider-range-min { left: 0; }
        .ui-slider-horizontal .ui-slider-range-max { right: 0; }
        
        .ui-slider-vertical { width: .8em; height: 100px; }
        .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
        .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
        .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
        .ui-slider-vertical .ui-slider-range-max { top: 0; }
        
        .ui-slider {
        	border: 1px solid #B0B0B0;
        }
        
        .ui-slider-handle {
        	background: #B0B0B0;
        	border: 1px solid #000;
        }
        
        /* Necessary to keep the flyouts sized properly */
        .tools_flyout .tool_button,
        .tools_flyout .tool_flyout {
        	padding: 2px;
        	width: 24px;
        	height: 24px;
        	margin: 0;
        	border-radius: 0px;
        	-moz-border-radius: 0px;
        	-webkit-border-radius: 0px;
        }
        
        /* Generic context menu styles */
        .contextMenu {
        	position: absolute;
        	z-index: 99999;
        	border: solid 1px rgba(0,0,0,.33);
        	background: rgba(255,255,255,.95);
        	padding: 5px 0;
        	margin: 0px;
        	display: none;
        	font: 12px/15px Lucida Sans, Helvetica, Verdana, sans-serif;
        	border-radius: 5px;
        	-moz-border-radius: 5px;
        	-moz-box-shadow: 2px 5px 10px rgba(0,0,0,.3);
        	-webkit-box-shadow: 2px 5px 10px rgba(0,0,0,.3);
        	box-shadow: 2px 5px 10px rgba(0,0,0,.3);
        }
        
        .contextMenu LI {
        	list-style: none;
        	padding: 0px;
        	margin: 0px;
        }
        
        .contextMenu .shortcut {
        	width: 115px;
        	text-align:right;
        	float:right;
        }
        
        .contextMenu A {
        	-moz-user-select: none;
        	-webkit-user-select: none;
        	color: #222;
        	text-decoration: none;
        	display: block;
        	line-height: 20px;
        	height: 20px;
        	background-position: 6px center;
        	background-repeat: no-repeat;
        	outline: none;
        	padding: 0px 15px 1px 20px;
        }
        
        .contextMenu LI.hover A {
        	background-color: #2e5dea;
        	color: white;
        	cursor: default;
        }
        
        .contextMenu LI.disabled A {
        	color: #999;
        }
        
        .contextMenu LI.hover.disabled A {
        	background-color: transparent;
        }
        
        .contextMenu LI.separator {
        	border-top: solid 1px #E3E3E3;
        	padding-top: 5px;
        	margin-top: 5px;
        }
        
        /*
        	Adding Icons
        	You can add icons to the context menu by adding
        	classes to the respective LI element(s)
        */
        /*
        
        .contextMenu LI.edit A { background-image: url(images/page_white_edit.png); }
        .contextMenu LI.cut A { background-image: url(images/cut.png); }
        .contextMenu LI.copy A { background-image: url(images/page_white_copy.png); }
        .contextMenu LI.paste A { background-image: url(images/page_white_paste.png); }
        .contextMenu LI.delete A { background-image: url(images/page_white_delete.png); }
        .contextMenu LI.quit A { background-image: url(images/door.png); }
        */
        
      • svg-editor.js
        /*globals svgEditor:true, globalStorage, widget, svgedit, canvg, jQuery, $, DOMParser, FileReader */
        /*jslint vars: true, eqeq: true, todo: true, forin: true, continue: true, regexp: true */
        /*
         * svg-editor.js
         *
         * Licensed under the MIT License
         *
         * Copyright(c) 2010 Alexis Deveria
         * Copyright(c) 2010 Pavol Rusnak
         * Copyright(c) 2010 Jeff Schiller
         * Copyright(c) 2010 Narendra Sisodiya
         * Copyright(c) 2014 Brett Zamir
         *
         */
        
        // Dependencies:
        // 1) units.js
        // 2) browser.js
        // 3) svgcanvas.js
        
        /*
        TODOS
        1. JSDoc
        */
        (function() {
        
        	if (window.svgEditor) {
        		return;
        	}
        	window.svgEditor = (function($) {
        		var editor = {};
        		// EDITOR PROPERTIES: (defined below)
        		//		curPrefs, curConfig, canvas, storage, uiStrings
        		//
        		// STATE MAINTENANCE PROPERTIES
        		editor.tool_scale = 1; // Dependent on icon size, so any use to making configurable instead? Used by JQuerySpinBtn.js
        		editor.exportWindowCt = 0;
        		editor.langChanged = false;
        		editor.showSaveWarning = false;
        		editor.storagePromptClosed = false; // For use with ext-storage.js
        
        		var svgCanvas, urldata,
        			Utils = svgedit.utilities,
        			isReady = false,
        			customExportImage = false,
        			customExportPDF = false,
        			callbacks = [],
        			/**
        			* PREFS AND CONFIG
        			*/
        			// The iteration algorithm for defaultPrefs does not currently support array/objects
        			defaultPrefs = {
        				// EDITOR OPTIONS (DIALOG)
        				lang: '', // Default to "en" if locale.js detection does not detect another language
        				iconsize: '', // Will default to 's' if the window height is smaller than the minimum height and 'm' otherwise
        				bkgd_color: '#FFF',
        				bkgd_url: '',
        				// DOCUMENT PROPERTIES (DIALOG)
        				img_save: 'embed',
        				// ALERT NOTICES
        				// Only shows in UI as far as alert notices, but useful to remember, so keeping as pref
        				save_notice_done: false,
        				export_notice_done: false
        			},
        			curPrefs = {},
        			// Note: The difference between Prefs and Config is that Prefs
        			//   can be changed in the UI and are stored in the browser,
        			//   while config cannot
        			curConfig = {
        				// We do not put on defaultConfig to simplify object copying
        				//   procedures (we obtain instead from defaultExtensions)
        				extensions: [],
        				/**
        				* Can use window.location.origin to indicate the current
        				* origin. Can contain a '*' to allow all domains or 'null' (as
        				* a string) to support all file:// URLs. Cannot be set by
        				* URL for security reasons (not safe, at least for
        				* privacy or data integrity of SVG content).
        				* Might have been fairly safe to allow
        				*   `new URL(window.location.href).origin` by default but
        				*   avoiding it ensures some more security that even third
        				*   party apps on the same domain also cannot communicate
        				*   with this app by default.
        				* For use with ext-xdomain-messaging.js
        				* @todo We might instead make as a user-facing preference.
        				*/
        				allowedOrigins: []
        			},
        			defaultExtensions = [
        				'ext-overview_window.js',
        				'ext-markers.js',
        				'ext-connector.js',
        				'ext-eyedropper.js',
        				'ext-shapes.js',
        				'ext-imagelib.js',
        				'ext-grid.js',
        				'ext-polygon.js',
        				'ext-star.js',
        				'ext-panning.js',
        				'ext-storage.js'
        			],
        			defaultConfig = {
        				// Todo: svgcanvas.js also sets and checks: show_outside_canvas, selectNew; add here?
        				// Change the following to preferences and add pref controls to the UI (e.g., initTool, wireframe, showlayers)?
        				canvasName: 'default',
        				canvas_expansion: 3,
        				initFill: {
        					color: 'FF0000', // solid red
        					opacity: 1
        				},
        				initStroke: {
        					width: 5,
        					color: '000000', // solid black
        					opacity: 1
        				},
        				initOpacity: 1,
        				colorPickerCSS: null, // Defaults to 'left' with a position equal to that of the fill_color or stroke_color element minus 140, and a 'bottom' equal to 40
        				initTool: 'select',
        				exportWindowType: 'new', // 'same' (todo: also support 'download')
        				wireframe: false,
        				showlayers: false,
        				no_save_warning: false,
        				// PATH CONFIGURATION
        				// The following path configuration items are disallowed in the URL (as should any future path configurations)
        				imgPath: 'images/',
        				langPath: 'locale/',
        				extPath: 'extensions/',
        				jGraduatePath: 'jgraduate/images/',
        				// DOCUMENT PROPERTIES
        				// Change the following to a preference (already in the Document Properties dialog)?
        				dimensions: [640, 480],
        				// EDITOR OPTIONS
        				// Change the following to preferences (already in the Editor Options dialog)?
        				gridSnapping: false,
        				gridColor: '#000',
        				baseUnit: 'px',
        				snappingStep: 10,
        				showRulers: true,
        				// URL BEHAVIOR CONFIGURATION
        				preventAllURLConfig: false,
        				preventURLContentLoading: false,
        				// EXTENSION CONFIGURATION (see also preventAllURLConfig)
        				lockExtensions: false, // Disallowed in URL setting
        				noDefaultExtensions: false, // noDefaultExtensions can only be meaningfully used in config.js or in the URL
        				// EXTENSION-RELATED (GRID)
        				showGrid: false, // Set by ext-grid.js
        				// EXTENSION-RELATED (STORAGE)
        				noStorageOnLoad: false, // Some interaction with ext-storage.js; prevent even the loading of previously saved local storage
        				forceStorage: false, // Some interaction with ext-storage.js; strongly discouraged from modification as it bypasses user privacy by preventing them from choosing whether to keep local storage or not
        				emptyStorageOnDecline: false // Used by ext-storage.js; empty any prior storage if the user declines to store
        			},
        			/**
        			* LOCALE
        			* @todo Can we remove now that we are always loading even English? (unless locale is set to null)
        			*/
        			uiStrings = editor.uiStrings = {
        				common: {
        					ok: 'OK',
        					cancel: 'Cancel',
        					key_up: 'Up',
        					key_down: 'Down',
        					key_backspace: 'Backspace',
        					key_del: 'Del'
        				},
        				// This is needed if the locale is English, since the locale strings are not read in that instance.
        				layers: {
        					layer: 'Layer'
        				},
        				notification: {
        					invalidAttrValGiven: 'Invalid value given',
        					noContentToFitTo: 'No content to fit to',
        					dupeLayerName: 'There is already a layer named that!',
        					enterUniqueLayerName: 'Please enter a unique layer name',
        					enterNewLayerName: 'Please enter the new layer name',
        					layerHasThatName: 'Layer already has that name',
        					QmoveElemsToLayer: 'Move selected elements to layer \'%s\'?',
        					QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
        					QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
        					QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
        					QignoreSourceChanges: 'Ignore changes made to SVG source?',
        					featNotSupported: 'Feature not supported',
        					enterNewImgURL: 'Enter the new image URL',
        					defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
        					loadingImage: 'Loading image, please wait...',
        					saveFromBrowser: 'Select \'Save As...\' in your browser to save this image as a %s file.',
        					noteTheseIssues: 'Also note the following issues: ',
        					unsavedChanges: 'There are unsaved changes.',
        					enterNewLinkURL: 'Enter the new hyperlink URL',
        					errorLoadingSVG: 'Error: Unable to load SVG data',
        					URLloadFail: 'Unable to load from URL',
        					retrieving: 'Retrieving \'%s\' ...'
        				}
        			};
        
        		function loadSvgString (str, callback) {
        			var success = svgCanvas.setSvgString(str) !== false;
        			callback = callback || $.noop;
        			if (success) {
        				callback(true);
        			} else {
        				$.alert(uiStrings.notification.errorLoadingSVG, function() {
        					callback(false);
        				});
        			}
        		}
        		
        		/**
        		* EXPORTS
        		*/
        		
        		/**
        		* Store and retrieve preferences
        		* @param {string} key The preference name to be retrieved or set
        		* @param {string} [val] The value. If the value supplied is missing or falsey, no change to the preference will be made.
        		* @returns {string} If val is missing or falsey, the value of the previously stored preference will be returned.
        		* @todo Can we change setting on the jQuery namespace (onto editor) to avoid conflicts?
        		* @todo Review whether any remaining existing direct references to
        		*	getting curPrefs can be changed to use $.pref() getting to ensure
        		*	defaultPrefs fallback (also for sake of allowInitialUserOverride); specifically, bkgd_color could be changed so that
        		*	the pref dialog has a button to auto-calculate background, but otherwise uses $.pref() to be able to get default prefs
        		*	or overridable settings
        		*/
        		$.pref = function (key, val) {
        			if (val) {
        				curPrefs[key] = val;
        				editor.curPrefs = curPrefs; // Update exported value
        				return;
        			}
        			return (key in curPrefs) ? curPrefs[key] : defaultPrefs[key];
        		};
        		
        		/**
        		* EDITOR PUBLIC METHODS
        		* locale.js also adds "putLang" and "readLang" as editor methods
        		* @todo Sort these methods per invocation order, ideally with init at the end
        		* @todo Prevent execution until init executes if dependent on it?
        		*/
        
        		/**
        		* Where permitted, sets canvas and/or defaultPrefs based on previous
        		*	storage. This will override URL settings (for security reasons) but
        		*	not config.js configuration (unless initial user overriding is explicitly
        		*	permitted there via allowInitialUserOverride).
        		* @todo Split allowInitialUserOverride into allowOverrideByURL and
        		*	allowOverrideByUserStorage so config.js can disallow some
        		*	individual items for URL setting but allow for user storage AND/OR
        		*	change URL setting so that it always uses a different namespace,
        		*	so it won't affect pre-existing user storage (but then if users saves
        		*	that, it will then be subject to tampering
        		*/
        		editor.loadContentAndPrefs = function () {
        			if (!curConfig.forceStorage && (curConfig.noStorageOnLoad || !document.cookie.match(/(?:^|;\s*)store=(?:prefsAndContent|prefsOnly)/))) {
        				return;
        			}
        
        			// LOAD CONTENT
        			if (editor.storage && // Cookies do not have enough available memory to hold large documents
        				(curConfig.forceStorage || (!curConfig.noStorageOnLoad && document.cookie.match(/(?:^|;\s*)store=prefsAndContent/)))
        			) {
        				var name = 'svgedit-' + curConfig.canvasName;
        				var cached = editor.storage.getItem(name);
        				if (cached) {
        					editor.loadFromString(cached);
        				}
        			}
        			
        			// LOAD PREFS
        			var key;
        			for (key in defaultPrefs) {
        				if (defaultPrefs.hasOwnProperty(key)) { // It's our own config, so we don't need to iterate up the prototype chain
        					var storeKey = 'svg-edit-' + key;
        					if (editor.storage) {
        						var val = editor.storage.getItem(storeKey);
        						if (val) {
        							defaultPrefs[key] = String(val); // Convert to string for FF (.value fails in Webkit)
        						}
        					}
        					else if (window.widget) {
        						defaultPrefs[key] = widget.preferenceForKey(storeKey);
        					}
        					else {
        						var result = document.cookie.match(new RegExp('(?:^|;\\s*)' + Utils.preg_quote(encodeURIComponent(storeKey)) + '=([^;]+)'));
        						defaultPrefs[key] = result ? decodeURIComponent(result[1]) : '';
        					}
        				}
        			}
        		};
        
        		/**
        		* Allows setting of preferences or configuration (including extensions).
        		* @param {object} opts The preferences or configuration (including extensions)
        		* @param {object} [cfgCfg] Describes configuration which applies to the particular batch of supplied options
        		* @param {boolean} [cfgCfg.allowInitialUserOverride=false] Set to true if you wish
        		*	to allow initial overriding of settings by the user via the URL
        		*	(if permitted) or previously stored preferences (if permitted);
        		*	note that it will be too late if you make such calls in extension
        		*	code because the URL or preference storage settings will
        		*   have already taken place.
        		* @param {boolean} [cfgCfg.overwrite=true] Set to false if you wish to
        		*	prevent the overwriting of prior-set preferences or configuration
        		*	(URL settings will always follow this requirement for security
        		*	reasons, so config.js settings cannot be overridden unless it
        		*	explicitly permits via "allowInitialUserOverride" but extension config
        		*	can be overridden as they will run after URL settings). Should
        		*   not be needed in config.js.
        		*/
        		editor.setConfig = function (opts, cfgCfg) {
        			cfgCfg = cfgCfg || {};
        			function extendOrAdd (cfgObj, key, val) {
        				if (cfgObj[key] && typeof cfgObj[key] === 'object') {
        					$.extend(true, cfgObj[key], val);
        				}
        				else {
        					cfgObj[key] = val;
        				}
        				return;
        			}
        			$.each(opts, function(key, val) {
        				if (opts.hasOwnProperty(key)) {
        					// Only allow prefs defined in defaultPrefs
        					if (defaultPrefs.hasOwnProperty(key)) {
        						if (cfgCfg.overwrite === false && (
        							curConfig.preventAllURLConfig ||
        							curPrefs.hasOwnProperty(key)
        						)) {
        							return;
        						}
        						if (cfgCfg.allowInitialUserOverride === true) {
        							defaultPrefs[key] = val;
        						}
        						else {
        							$.pref(key, val);
        						}
        					}
        					else if (['extensions', 'allowedOrigins'].indexOf(key) > -1) {
        						if (cfgCfg.overwrite === false &&
        							(
        								curConfig.preventAllURLConfig ||
        								key === 'allowedOrigins' ||
        								(key === 'extensions' && curConfig.lockExtensions)
        							)
        						) {
        							return;
        						}
        						curConfig[key] = curConfig[key].concat(val); // We will handle any dupes later
        					}
        					// Only allow other curConfig if defined in defaultConfig
        					else if (defaultConfig.hasOwnProperty(key)) {
        						if (cfgCfg.overwrite === false && (
        							curConfig.preventAllURLConfig ||
        							curConfig.hasOwnProperty(key)
        						)) {
        							return;
        						}
        						// Potentially overwriting of previously set config
        						if (curConfig.hasOwnProperty(key)) {
        							if (cfgCfg.overwrite === false) {
        								return;
        							}
        							extendOrAdd(curConfig, key, val);
        						}
        						else {
        							if (cfgCfg.allowInitialUserOverride === true) {
        								extendOrAdd(defaultConfig, key, val);
        							}
        							else {
        								if (defaultConfig[key] && typeof defaultConfig[key] === 'object') {
        									curConfig[key] = {};
        									$.extend(true, curConfig[key], val); // Merge properties recursively, e.g., on initFill, initStroke objects
        								}
        								else {
        									curConfig[key] = val;
        								}
        							}
        						}
        					}
        				}
        			});
        			editor.curConfig = curConfig; // Update exported value
        		};
        
        		/**
        		* @param {object} opts Extension mechanisms may call setCustomHandlers with three functions: opts.open, opts.save, and opts.exportImage
        		* opts.open's responsibilities are:
        		*	- invoke a file chooser dialog in 'open' mode
        		*	- let user pick a SVG file
        		*	- calls svgCanvas.setSvgString() with the string contents of that file
        		*  opts.save's responsibilities are:
        		*	- accept the string contents of the current document
        		*	- invoke a file chooser dialog in 'save' mode
        		*	- save the file to location chosen by the user
        		*  opts.exportImage's responsibilities (with regard to the object it is supplied in its 2nd argument) are:
        		*	- inform user of any issues supplied via the "issues" property
        		*	- convert the "svg" property SVG string into an image for export;
        		*		utilize the properties "type" (currently 'PNG', 'JPEG', 'BMP',
        		*		'WEBP', 'PDF'), "mimeType", and "quality" (for 'JPEG' and 'WEBP'
        		*		types) to determine the proper output.
        		*/
        		editor.setCustomHandlers = function (opts) {
        			editor.ready(function() {
        				if (opts.open) {
        					$('#tool_open > input[type="file"]').remove();
        					$('#tool_open').show();
        					svgCanvas.open = opts.open;
        				}
        				if (opts.save) {
        					editor.showSaveWarning = false;
        					svgCanvas.bind('saved', opts.save);
        				}
        				if (opts.exportImage) {
        					customExportImage = opts.exportImage;
        					svgCanvas.bind('exported', customExportImage); // canvg and our RGBColor will be available to the method
        				}
        				if (opts.exportPDF) {
        					customExportPDF = opts.exportPDF;
        					svgCanvas.bind('exportedPDF', customExportPDF); // jsPDF and our RGBColor will be available to the method
        				}
        			});
        		};
        
        		editor.randomizeIds = function () {
        			svgCanvas.randomizeIds(arguments);
        		};
        
        		editor.init = function () {
        			// var host = location.hostname,
        			//	onWeb = host && host.indexOf('.') >= 0;
        			// Some FF versions throw security errors here when directly accessing
        			try {
        				if ('localStorage' in window) { // && onWeb removed so Webkit works locally
        					editor.storage = localStorage;
        				}
        			} catch(err) {}
        
        			// Todo: Avoid var-defined functions and group functions together, etc. where possible
        			var good_langs = [];
        			$('#lang_select option').each(function() {
        				good_langs.push(this.value);
        			});
        
        			function setupCurPrefs () {
        				curPrefs = $.extend(true, {}, defaultPrefs, curPrefs); // Now safe to merge with priority for curPrefs in the event any are already set
        				// Export updated prefs
        				editor.curPrefs = curPrefs;
        			}
        			function setupCurConfig () {
        				curConfig = $.extend(true, {}, defaultConfig, curConfig); // Now safe to merge with priority for curConfig in the event any are already set
        				
        				// Now deal with extensions and other array config
        				if (!curConfig.noDefaultExtensions) {
        					curConfig.extensions = curConfig.extensions.concat(defaultExtensions);
        				}
        				// ...and remove any dupes
        				$.each(['extensions', 'allowedOrigins'], function (i, cfg) {
        					curConfig[cfg] = $.grep(curConfig[cfg], function (n, i) {
        						return i === curConfig[cfg].indexOf(n);
        					});
        				});
        				// Export updated config
        				editor.curConfig = curConfig;
        			}
        			(function() {
        				// Load config/data from URL if given
        				var src, qstr;
        				urldata = $.deparam.querystring(true);
        				if (!$.isEmptyObject(urldata)) {
        					if (urldata.dimensions) {
        						urldata.dimensions = urldata.dimensions.split(',');
        					}
        
        					if (urldata.bkgd_color) {
        						urldata.bkgd_color = '#' + urldata.bkgd_color;
        					}
        			
        					if (urldata.extensions) {
        						// For security reasons, disallow cross-domain or cross-folder extensions via URL
        						urldata.extensions = urldata.extensions.match(/[:\/\\]/) ? '' : urldata.extensions.split(',');
        					}
        
        					// Disallowing extension paths via URL for
        					// security reasons, even for same-domain
        					// ones given potential to interact in undesirable
        					// ways with other script resources
        					$.each(
        						[
        							'extPath', 'imgPath',
        							'langPath', 'jGraduatePath'
        						],
        						function (pathConfig) {
        							if (urldata[pathConfig]) {
        								delete urldata[pathConfig];
        							}
        						}
        					);
        
        					editor.setConfig(urldata, {overwrite: false}); // Note: source and url (as with storagePrompt later) are not set on config but are used below
        					
        					setupCurConfig();
        
        					if (!curConfig.preventURLContentLoading) {
        						src = urldata.source;
        						qstr = $.param.querystring();
        						if (!src) { // urldata.source may have been null if it ended with '='
        							if (qstr.indexOf('source=data:') >= 0) {
        								src = qstr.match(/source=(data:[^&]*)/)[1];
        							}
        						}
        						if (src) {
        							if (src.indexOf('data:') === 0) {
        								editor.loadFromDataURI(src);
        							} else {
        								editor.loadFromString(src);
        							}
        							return;
        						}
        						if (urldata.url) {
        							editor.loadFromURL(urldata.url);
        							return;
        						}
        					}
        					if (!urldata.noStorageOnLoad || curConfig.forceStorage) {
        						editor.loadContentAndPrefs();
        					}
        					setupCurPrefs();
        				}
        				else {
        					setupCurConfig();
        					editor.loadContentAndPrefs();
        					setupCurPrefs();
        				}
        			}());
        
        			// For external openers
        			(function() {
        				// let the opener know SVG Edit is ready (now that config is set up)
        				var svgEditorReadyEvent,
        					w = window.opener;
        				if (w) {
        					try {
        						svgEditorReadyEvent = w.document.createEvent('Event');
        						svgEditorReadyEvent.initEvent('svgEditorReady', true, true);
        						w.document.documentElement.dispatchEvent(svgEditorReadyEvent);
        					}
        					catch(e) {}
        				}
        			}());
        			
        			var setIcon = editor.setIcon = function(elem, icon_id, forcedSize) {
        				var icon = (typeof icon_id === 'string') ? $.getSvgIcon(icon_id, true) : icon_id.clone();
        				if (!icon) {
        					console.log('NOTE: Icon image missing: ' + icon_id);
        					return;
        				}
        				$(elem).empty().append(icon);
        			};
        
        			var extFunc = function() {
        				$.each(curConfig.extensions, function() {
        					var extname = this;
        					if (!extname.match(/^ext-.*\.js/)) { // Ensure URL cannot specify some other unintended file in the extPath
        						return;
        					}
        					$.getScript(curConfig.extPath + extname, function(d) {
        						// Fails locally in Chrome 5
        						if (!d) {
        							var s = document.createElement('script');
        							s.src = curConfig.extPath + extname;
        							document.querySelector('head').appendChild(s);
        						}
        					});
        				});
        
        				// var lang = ('lang' in curPrefs) ? curPrefs.lang : null;
        				editor.putLocale(null, good_langs);
        			};
        
        			// Load extensions
        			// Bit of a hack to run extensions in local Opera/IE9
        			if (document.location.protocol === 'file:') {
        				setTimeout(extFunc, 100);
        			} else {
        				extFunc();
        			}
        			$.svgIcons(curConfig.imgPath + 'svg_edit_icons.svg', {
        				w:24, h:24,
        				id_match: false,
        				no_img: !svgedit.browser.isWebkit(), // Opera & Firefox 4 gives odd behavior w/images
        				fallback_path: curConfig.imgPath,
        				fallback: {
        					'new_image': 'clear.png',
        					'save': 'save.png',
        					'open': 'open.png',
        					'source': 'source.png',
        					'docprops': 'document-properties.png',
        					'wireframe': 'wireframe.png',
        
        					'undo': 'undo.png',
        					'redo': 'redo.png',
        
        					'select': 'select.png',
        					'select_node': 'select_node.png',
        					'pencil': 'fhpath.png',
        					'pen': 'line.png',
        					'square': 'square.png',
        					'rect': 'rect.png',
        					'fh_rect': 'freehand-square.png',
        					'circle': 'circle.png',
        					'ellipse': 'ellipse.png',
        					'fh_ellipse': 'freehand-circle.png',
        					'path': 'path.png',
        					'text': 'text.png',
        					'image': 'image.png',
        					'zoom': 'zoom.png',
        
        					'clone': 'clone.png',
        					'node_clone': 'node_clone.png',
        					'delete': 'delete.png',
        					'node_delete': 'node_delete.png',
        					'group': 'shape_group_elements.png',
        					'ungroup': 'shape_ungroup.png',
        					'move_top': 'move_top.png',
        					'move_bottom': 'move_bottom.png',
        					'to_path': 'to_path.png',
        					'link_controls': 'link_controls.png',
        					'reorient': 'reorient.png',
        
        					'align_left': 'align-left.png',
        					'align_center': 'align-center.png',
        					'align_right': 'align-right.png',
        					'align_top': 'align-top.png',
        					'align_middle': 'align-middle.png',
        					'align_bottom': 'align-bottom.png',
        
        					'go_up': 'go-up.png',
        					'go_down': 'go-down.png',
        
        					'ok': 'save.png',
        					'cancel': 'cancel.png',
        
        					'arrow_right': 'flyouth.png',
        					'arrow_down': 'dropdown.gif'
        				},
        				placement: {
        					'#logo': 'logo',
        
        					'#tool_clear div,#layer_new': 'new_image',
        					'#tool_save div': 'save',
        					'#tool_export div': 'export',
        					'#tool_open div div': 'open',
        					'#tool_import div div': 'import',
        					'#tool_source': 'source',
        					'#tool_docprops > div': 'docprops',
        					'#tool_wireframe': 'wireframe',
        
        					'#tool_undo': 'undo',
        					'#tool_redo': 'redo',
        
        					'#tool_select': 'select',
        					'#tool_fhpath': 'pencil',
        					'#tool_line': 'pen',
        					'#tool_rect,#tools_rect_show': 'rect',
        					'#tool_square': 'square',
        					'#tool_fhrect': 'fh_rect',
        					'#tool_ellipse,#tools_ellipse_show': 'ellipse',
        					'#tool_circle': 'circle',
        					'#tool_fhellipse': 'fh_ellipse',
        					'#tool_path': 'path',
        					'#tool_text,#layer_rename': 'text',
        					'#tool_image': 'image',
        					'#tool_zoom': 'zoom',
        
        					'#tool_clone,#tool_clone_multi': 'clone',
        					'#tool_node_clone': 'node_clone',
        					'#layer_delete,#tool_delete,#tool_delete_multi': 'delete',
        					'#tool_node_delete': 'node_delete',
        					'#tool_add_subpath': 'add_subpath',
        					'#tool_openclose_path': 'open_path',
        					'#tool_move_top': 'move_top',
        					'#tool_move_bottom': 'move_bottom',
        					'#tool_topath': 'to_path',
        					'#tool_node_link': 'link_controls',
        					'#tool_reorient': 'reorient',
        					'#tool_group_elements': 'group_elements',
        					'#tool_ungroup': 'ungroup',
        					'#tool_unlink_use': 'unlink_use',
        
        					'#tool_alignleft, #tool_posleft': 'align_left',
        					'#tool_aligncenter, #tool_poscenter': 'align_center',
        					'#tool_alignright, #tool_posright': 'align_right',
        					'#tool_aligntop, #tool_postop': 'align_top',
        					'#tool_alignmiddle, #tool_posmiddle': 'align_middle',
        					'#tool_alignbottom, #tool_posbottom': 'align_bottom',
        					'#cur_position': 'align',
        
        					'#linecap_butt,#cur_linecap': 'linecap_butt',
        					'#linecap_round': 'linecap_round',
        					'#linecap_square': 'linecap_square',
        
        					'#linejoin_miter,#cur_linejoin': 'linejoin_miter',
        					'#linejoin_round': 'linejoin_round',
        					'#linejoin_bevel': 'linejoin_bevel',
        
        					'#url_notice': 'warning',
        
        					'#layer_up': 'go_up',
        					'#layer_down': 'go_down',
        					'#layer_moreopts': 'context_menu',
        					'#layerlist td.layervis': 'eye',
        
        					'#tool_source_save,#tool_docprops_save,#tool_prefs_save': 'ok',
        					'#tool_source_cancel,#tool_docprops_cancel,#tool_prefs_cancel': 'cancel',
        
        					'#rwidthLabel, #iwidthLabel': 'width',
        					'#rheightLabel, #iheightLabel': 'height',
        					'#cornerRadiusLabel span': 'c_radius',
        					'#angleLabel': 'angle',
        					'#linkLabel,#tool_make_link,#tool_make_link_multi': 'globe_link',
        					'#zoomLabel': 'zoom',
        					'#tool_fill label': 'fill',
        					'#tool_stroke .icon_label': 'stroke',
        					'#group_opacityLabel': 'opacity',
        					'#blurLabel': 'blur',
        					'#font_sizeLabel': 'fontsize',
        
        					'.flyout_arrow_horiz': 'arrow_right',
        					'.dropdown button, #main_button .dropdown': 'arrow_down',
        					'#palette .palette_item:first, #fill_bg, #stroke_bg': 'no_color'
        				},
        				resize: {
        					'#logo .svg_icon': 28,
        					'.flyout_arrow_horiz .svg_icon': 5,
        					'.layer_button .svg_icon, #layerlist td.layervis .svg_icon': 14,
        					'.dropdown button .svg_icon': 7,
        					'#main_button .dropdown .svg_icon': 9,
        					'.palette_item:first .svg_icon' : 15,
        					'#fill_bg .svg_icon, #stroke_bg .svg_icon': 16,
        					'.toolbar_button button .svg_icon': 16,
        					'.stroke_tool div div .svg_icon': 20,
        					'#tools_bottom label .svg_icon': 18
        				},
        				callback: function(icons) {
        					$('.toolbar_button button > svg, .toolbar_button button > img').each(function() {
        						$(this).parent().prepend(this);
        					});
        
        					var min_height,
        						tleft = $('#tools_left');
        					if (tleft.length !== 0) {
        						min_height = tleft.offset().top + tleft.outerHeight();
        					}
        					
        					var size = $.pref('iconsize');
        					editor.setIconSize(size || ($(window).height() < min_height ? 's': 'm'));
        
        					// Look for any missing flyout icons from plugins
        					$('.tools_flyout').each(function() {
        						var shower = $('#' + this.id + '_show');
        						var sel = shower.attr('data-curopt');
        						// Check if there's an icon here
        						if (!shower.children('svg, img').length) {
        							var clone = $(sel).children().clone();
        							if (clone.length) {
        								clone[0].removeAttribute('style'); //Needed for Opera
        								shower.append(clone);
        							}
        						}
        					});
        
        					editor.runCallbacks();
        
        					setTimeout(function() {
        						$('.flyout_arrow_horiz:empty').each(function() {
        							$(this).append($.getSvgIcon('arrow_right').width(5).height(5));
        						});
        					}, 1);
        				}
        			});
        
        			editor.canvas = svgCanvas = new $.SvgCanvas(document.getElementById('svgcanvas'), curConfig);
        			var supportsNonSS, resize_timer, changeZoom, Actions, curScrollPos,
        				palette = [ // Todo: Make into configuration item?
        					'#000000', '#3f3f3f', '#7f7f7f', '#bfbfbf', '#ffffff',
        					'#ff0000', '#ff7f00', '#ffff00', '#7fff00',
        					'#00ff00', '#00ff7f', '#00ffff', '#007fff',
        					'#0000ff', '#7f00ff', '#ff00ff', '#ff007f',
        					'#7f0000', '#7f3f00', '#7f7f00', '#3f7f00',
        					'#007f00', '#007f3f', '#007f7f', '#003f7f',
        					'#00007f', '#3f007f', '#7f007f', '#7f003f',
        					'#ffaaaa', '#ffd4aa', '#ffffaa', '#d4ffaa',
        					'#aaffaa', '#aaffd4', '#aaffff', '#aad4ff',
        					'#aaaaff', '#d4aaff', '#ffaaff', '#ffaad4'
        				],
        				modKey = (svgedit.browser.isMac() ? 'meta+' : 'ctrl+'), // ⌘
        				path = svgCanvas.pathActions,
        				undoMgr = svgCanvas.undoMgr,
        				defaultImageURL = curConfig.imgPath + 'logo.png',
        				workarea = $('#workarea'),
        				canv_menu = $('#cmenu_canvas'),
        				// layer_menu = $('#cmenu_layers'), // Unused
        				exportWindow = null,
        				zoomInIcon = 'crosshair',
        				zoomOutIcon = 'crosshair',
        				ui_context = 'toolbars',
        				origSource = '',
        				paintBox = {fill: null, stroke:null};
        			
        			// This sets up alternative dialog boxes. They mostly work the same way as
        			// their UI counterparts, expect instead of returning the result, a callback
        			// needs to be included that returns the result as its first parameter.
        			// In the future we may want to add additional types of dialog boxes, since
        			// they should be easy to handle this way.
        			(function() {
        				$('#dialog_container').draggable({cancel: '#dialog_content, #dialog_buttons *', containment: 'window'});
        				var box = $('#dialog_box'),
        					btn_holder = $('#dialog_buttons'),
        					dialog_content = $('#dialog_content'),
        					dbox = function(type, msg, callback, defaultVal, opts, changeCb, checkbox) {
        						var ok, ctrl, chkbx;
        						dialog_content.html('<p>'+msg.replace(/\n/g, '</p><p>')+'</p>')
        							.toggleClass('prompt', (type == 'prompt'));
        						btn_holder.empty();
        
        						ok = $('<input type="button" value="' + uiStrings.common.ok + '">').appendTo(btn_holder);
        
        						if (type !== 'alert') {
        							$('<input type="button" value="' + uiStrings.common.cancel + '">')
        								.appendTo(btn_holder)
        								.click(function() { box.hide(); if (callback) {callback(false);}});
        						}
        
        						if (type === 'prompt') {
        							ctrl = $('<input type="text">').prependTo(btn_holder);
        							ctrl.val(defaultVal || '');
        							ctrl.bind('keydown', 'return', function() {ok.click();});
        						}
        						else if (type === 'select') {
        							var div = $('<div style="text-align:center;">');
        							ctrl = $('<select>').appendTo(div);
        							if (checkbox) {
        								var label = $('<label>').text(checkbox.label);
        								chkbx = $('<input type="checkbox">').appendTo(label);
        								chkbx.val(checkbox.value);
        								if (checkbox.tooltip) {
        									label.attr('title', checkbox.tooltip);
        								}
        								chkbx.prop('checked', !!checkbox.checked);
        								div.append($('<div>').append(label));
        							}
        							$.each(opts || [], function (opt, val) {
        								if (typeof val === 'object') {
        									ctrl.append($('<option>').val(val.value).html(val.text));
        								}
        								else {
        									ctrl.append($('<option>').html(val));
        								}
        							});
        							dialog_content.append(div);
        							if (defaultVal) {
        								ctrl.val(defaultVal);
        							}
        							if (changeCb) {
        								ctrl.bind('change', 'return', changeCb);
        							}
        							ctrl.bind('keydown', 'return', function() {ok.click();});
        						}
        						else if (type === 'process') {
        							ok.hide();
        						}
        
        						box.show();
        
        						ok.click(function() {
        							box.hide();
        							var resp = (type === 'prompt' || type === 'select') ? ctrl.val() : true;
        							if (callback) {
        								if (chkbx) {
        									callback(resp, chkbx.prop('checked'));
        								}
        								else {
        									callback(resp);
        								}
        							}
        						}).focus();
        
        						if (type === 'prompt' || type === 'select') {
        							ctrl.focus();
        						}
        					};
        
        				$.alert = function(msg, cb) { dbox('alert', msg, cb);};
        				$.confirm = function(msg, cb) {	dbox('confirm', msg, cb);};
        				$.process_cancel = function(msg, cb) { dbox('process', msg, cb);};
        				$.prompt = function(msg, txt, cb) { dbox('prompt', msg, cb, txt);};
        				$.select = function(msg, opts, cb, changeCb, txt, checkbox) { dbox('select', msg, cb, txt, opts, changeCb, checkbox);};
        			}());
        
        			var setSelectMode = function() {
        				var curr = $('.tool_button_current');
        				if (curr.length && curr[0].id !== 'tool_select') {
        					curr.removeClass('tool_button_current').addClass('tool_button');
        					$('#tool_select').addClass('tool_button_current').removeClass('tool_button');
        					$('#styleoverrides').text('#svgcanvas svg *{cursor:move;pointer-events:all} #svgcanvas svg{cursor:default}');
        				}
        				svgCanvas.setMode('select');
        				workarea.css('cursor', 'auto');
        			};
        
        			// used to make the flyouts stay on the screen longer the very first time
        			// var flyoutspeed = 1250; // Currently unused
        			var textBeingEntered = false;
        			var selectedElement = null;
        			var multiselected = false;
        			var editingsource = false;
        			var docprops = false;
        			var preferences = false;
        			var cur_context = '';
        			var origTitle = $('title:first').text();
        			// Make [1,2,5] array
        			var r_intervals = [];
        			var i;
        			for (i = 0.1; i < 1E5; i *= 10) {
        				r_intervals.push(i);
        				r_intervals.push(2 * i);
        				r_intervals.push(5 * i);
        			}
        
        			// This function highlights the layer passed in (by fading out the other layers)
        			// if no layer is passed in, this function restores the other layers
        			var toggleHighlightLayer = function(layerNameToHighlight) {
        				var i, curNames = [], numLayers = svgCanvas.getCurrentDrawing().getNumLayers();
        				for (i = 0; i < numLayers; i++) {
        					curNames[i] = svgCanvas.getCurrentDrawing().getLayerName(i);
        				}
        
        				if (layerNameToHighlight) {
        					for (i = 0; i < numLayers; ++i) {
        						if (curNames[i] != layerNameToHighlight) {
        							svgCanvas.getCurrentDrawing().setLayerOpacity(curNames[i], 0.5);
        						}
        					}
        				} else {
        					for (i = 0; i < numLayers; ++i) {
        						svgCanvas.getCurrentDrawing().setLayerOpacity(curNames[i], 1.0);
        					}
        				}
        			};
        
        			var populateLayers = function() {
        				svgCanvas.clearSelection();
        				var layerlist = $('#layerlist tbody').empty();
        				var selLayerNames = $('#selLayerNames').empty();
        				var drawing = svgCanvas.getCurrentDrawing();
        				var currentLayerName = drawing.getCurrentLayerName();
        				var layer = svgCanvas.getCurrentDrawing().getNumLayers();
        				var icon = $.getSvgIcon('eye');
        				// we get the layers in the reverse z-order (the layer rendered on top is listed first)
        				while (layer--) {
        					var name = drawing.getLayerName(layer);
        					var layerTr = $('<tr class="layer">').toggleClass('layersel', name === currentLayerName);
        					var layerVis = $('<td class="layervis">').toggleClass('layerinvis', !drawing.getLayerVisibility(name));
        					var layerName = $('<td class="layername">' + name + '</td>');
        					layerlist.append(layerTr.append(layerVis, layerName));
        					selLayerNames.append('<option value="' + name + '">' + name + '</option>');
        				}
        				if (icon !== undefined) {
        					var copy = icon.clone();
        					$('td.layervis', layerlist).append(copy);
        					$.resizeSvgIcons({'td.layervis .svg_icon': 14});
        				}
        				// handle selection of layer
        				$('#layerlist td.layername')
        					.mouseup(function(evt) {
        						$('#layerlist tr.layer').removeClass('layersel');
        						$(this.parentNode).addClass('layersel');
        						svgCanvas.setCurrentLayer(this.textContent);
        						evt.preventDefault();
        					})
        					.mouseover(function() {
        						toggleHighlightLayer(this.textContent);
        					})
        					.mouseout(function() {
        						toggleHighlightLayer();
        					});
        				$('#layerlist td.layervis').click(function() {
        					var row = $(this.parentNode).prevAll().length;
        					var name = $('#layerlist tr.layer:eq(' + row + ') td.layername').text();
        					var vis = $(this).hasClass('layerinvis');
        					svgCanvas.setLayerVisibility(name, vis);
        					$(this).toggleClass('layerinvis');
        				});
        
        				// if there were too few rows, let's add a few to make it not so lonely
        				var num = 5 - $('#layerlist tr.layer').size();
        				while (num-- > 0) {
        					// FIXME: there must a better way to do this
        					layerlist.append('<tr><td style="color:white">_</td><td/></tr>');
        				}
        			};
        
        			var showSourceEditor = function(e, forSaving) {
        				if (editingsource) {return;}
        
        				editingsource = true;
        				origSource = svgCanvas.getSvgString();
        				$('#save_output_btns').toggle(!!forSaving);
        				$('#tool_source_back').toggle(!forSaving);
        				$('#svg_source_textarea').val(origSource);
        				$('#svg_source_editor').fadeIn();
        				$('#svg_source_textarea').focus();
        			};
        
        			var togglePathEditMode = function(editmode, elems) {
        				$('#path_node_panel').toggle(editmode);
        				$('#tools_bottom_2,#tools_bottom_3').toggle(!editmode);
        				if (editmode) {
        					// Change select icon
        					$('.tool_button_current').removeClass('tool_button_current').addClass('tool_button');
        					$('#tool_select').addClass('tool_button_current').removeClass('tool_button');
        					setIcon('#tool_select', 'select_node');
        					multiselected = false;
        					if (elems.length) {
        						selectedElement = elems[0];
        					}
        				} else {
        					setTimeout(function () {
        						setIcon('#tool_select', 'select');
        					}, 1000);
        				}
        			};
        
        			var saveHandler = function(wind, svg) {
        				editor.showSaveWarning = false;
        
        				// by default, we add the XML prolog back, systems integrating SVG-edit (wikis, CMSs)
        				// can just provide their own custom save handler and might not want the XML prolog
        				svg = '<?xml version="1.0"?>\n' + svg;
        
        				// IE9 doesn't allow standalone Data URLs
        				// https://connect.microsoft.com/IE/feedback/details/542600/data-uri-images-fail-when-loaded-by-themselves
        				if (svgedit.browser.isIE()) {
        					showSourceEditor(0, true);
        					return;
        				}
        
        				// Opens the SVG in new window
        				var win = wind.open('data:image/svg+xml;base64,' + Utils.encode64(svg));
        
        				// Alert will only appear the first time saved OR the first time the bug is encountered
        				var done = $.pref('save_notice_done');
        				if (done !== 'all') {
        					var note = uiStrings.notification.saveFromBrowser.replace('%s', 'SVG');
        
        					// Check if FF and has <defs/>
        					if (svgedit.browser.isGecko()) {
        						if (svg.indexOf('<defs') !== -1) {
        							// warning about Mozilla bug #308590 when applicable (seems to be fixed now in Feb 2013)
        							note += '\n\n' + uiStrings.notification.defsFailOnSave;
        							$.pref('save_notice_done', 'all');
        							done = 'all';
        						} else {
        							$.pref('save_notice_done', 'part');
        						}
        					} else {
        						$.pref('save_notice_done', 'all');
        					}
        					if (done !== 'part') {
        						win.alert(note);
        					}
        				}
        			};
        
        			var exportHandler = function(win, data) {
        				var issues = data.issues,
        					exportWindowName = data.exportWindowName;
        
        				if (exportWindowName) {
        					exportWindow = window.open('', exportWindowName); // A hack to get the window via JSON-able name without opening a new one
        				}
        				
        				exportWindow.location.href = data.datauri;
        				var done = $.pref('export_notice_done');
        				if (done !== 'all') {
        					var note = uiStrings.notification.saveFromBrowser.replace('%s', data.type);
        
        					// Check if there's issues
        					if (issues.length) {
        						var pre = '\n \u2022 ';
        						note += ('\n\n' + uiStrings.notification.noteTheseIssues + pre + issues.join(pre));
        					}
        
        					// Note that this will also prevent the notice even though new issues may appear later.
        					// May want to find a way to deal with that without annoying the user
        					$.pref('export_notice_done', 'all');
        					exportWindow.alert(note);
        				}
        			};
        
        			var operaRepaint = function() {
        				// Repaints canvas in Opera. Needed for stroke-dasharray change as well as fill change
        				if (!window.opera) {
        					return;
        				}
        				$('<p/>').hide().appendTo('body').remove();
        			};
        
        			function setStrokeOpt(opt, changeElem) {
        				var id = opt.id;
        				var bits = id.split('_');
        				var pre = bits[0];
        				var val = bits[1];
        
        				if (changeElem) {
        					svgCanvas.setStrokeAttr('stroke-' + pre, val);
        				}
        				operaRepaint();
        				setIcon('#cur_' + pre, id, 20);
        				$(opt).addClass('current').siblings().removeClass('current');
        			}
        
        			// This is a common function used when a tool has been clicked (chosen)
        			// It does several common things:
        			// - removes the tool_button_current class from whatever tool currently has it
        			// - hides any flyouts
        			// - adds the tool_button_current class to the button passed in
        			var toolButtonClick = editor.toolButtonClick = function(button, noHiding) {
        				if ($(button).hasClass('disabled')) {return false;}
        				if ($(button).parent().hasClass('tools_flyout')) {return true;}
        				var fadeFlyouts = 'normal';
        				if (!noHiding) {
        					$('.tools_flyout').fadeOut(fadeFlyouts);
        				}
        				$('#styleoverrides').text('');
        				workarea.css('cursor', 'auto');
        				$('.tool_button_current').removeClass('tool_button_current').addClass('tool_button');
        				$(button).addClass('tool_button_current').removeClass('tool_button');
        				return true;
        			};
        
        			var clickSelect = editor.clickSelect = function() {
        				if (toolButtonClick('#tool_select')) {
        					svgCanvas.setMode('select');
        					$('#styleoverrides').text('#svgcanvas svg *{cursor:move;pointer-events:all}, #svgcanvas svg{cursor:default}');
        				}
        			};
        
        			var setImageURL = editor.setImageURL = function(url) {
        				if (!url) {
        					url = defaultImageURL;
        				}
        				svgCanvas.setImageURL(url);
        				$('#image_url').val(url);
        
        				if (url.indexOf('data:') === 0) {
        					// data URI found
        					$('#image_url').hide();
        					$('#change_image_url').show();
        				} else {
        					// regular URL
        					svgCanvas.embedImage(url, function(dataURI) {
        						// Couldn't embed, so show warning
        						$('#url_notice').toggle(!dataURI);
        						defaultImageURL = url;
        					});
        					$('#image_url').show();
        					$('#change_image_url').hide();
        				}
        			};
        
        			function setBackground (color, url) {
        				// if (color == $.pref('bkgd_color') && url == $.pref('bkgd_url')) {return;}
        				$.pref('bkgd_color', color);
        				$.pref('bkgd_url', url);
        
        				// This should be done in svgcanvas.js for the borderRect fill
        				svgCanvas.setBackground(color, url);
        			}
        
        			function promptImgURL() {
        				var curhref = svgCanvas.getHref(selectedElement);
        				curhref = curhref.indexOf('data:') === 0 ? '' : curhref;
        				$.prompt(uiStrings.notification.enterNewImgURL, curhref, function(url) {
        					if (url) {setImageURL(url);}
        				});
        			}
        
        			var setInputWidth = function(elem) {
        				var w = Math.min(Math.max(12 + elem.value.length * 6, 50), 300);
        				$(elem).width(w);
        			};
        
        			function updateRulers(scanvas, zoom) {
        				if (!zoom) {zoom = svgCanvas.getZoom();}
        				if (!scanvas) {scanvas = $('#svgcanvas');}
        
        				var d, i;
        				var limit = 30000;
        				var contentElem = svgCanvas.getContentElem();
        				var units = svgedit.units.getTypeMap();
        				var unit = units[curConfig.baseUnit]; // 1 = 1px
        
        				// draw x ruler then y ruler
        				for (d = 0; d < 2; d++) {
        					var isX = (d === 0);
        					var dim = isX ? 'x' : 'y';
        					var lentype = isX ? 'width' : 'height';
        					var contentDim = Number(contentElem.getAttribute(dim));
        
        					var $hcanv_orig = $('#ruler_' + dim + ' canvas:first');
        
        					// Bit of a hack to fully clear the canvas in Safari & IE9
        					var $hcanv = $hcanv_orig.clone();
        					$hcanv_orig.replaceWith($hcanv);
        
        					var hcanv = $hcanv[0];
        
        					// Set the canvas size to the width of the container
        					var ruler_len = scanvas[lentype]();
        					var total_len = ruler_len;
        					hcanv.parentNode.style[lentype] = total_len + 'px';
        					var ctx_num = 0;
        					var ctx = hcanv.getContext('2d');
        					var ctx_arr, num, ctx_arr_num;
        
        					ctx.fillStyle = 'rgb(200,0,0)';
        					ctx.fillRect(0, 0, hcanv.width, hcanv.height);
        
        					// Remove any existing canvasses
        					$hcanv.siblings().remove();
        					
        					// Create multiple canvases when necessary (due to browser limits)
        					if (ruler_len >= limit) {
        						ctx_arr_num = parseInt(ruler_len / limit, 10) + 1;
        						ctx_arr = [];
        						ctx_arr[0] = ctx;
        						var copy;
        						for (i = 1; i < ctx_arr_num; i++) {
        							hcanv[lentype] = limit;
        							copy = hcanv.cloneNode(true);
        							hcanv.parentNode.appendChild(copy);
        							ctx_arr[i] = copy.getContext('2d');
        						}
        
        						copy[lentype] = ruler_len % limit;
        
        						// set copy width to last
        						ruler_len = limit;
        					}
        
        					hcanv[lentype] = ruler_len;
        
        					var u_multi = unit * zoom;
        
        					// Calculate the main number interval
        					var raw_m = 50 / u_multi;
        					var multi = 1;
        					for (i = 0; i < r_intervals.length; i++) {
        						num = r_intervals[i];
        						multi = num;
        						if (raw_m <= num) {
        							break;
        						}
        					}
        
        					var big_int = multi * u_multi;
        
        					ctx.font = '9px sans-serif';
        
        					var ruler_d = ((contentDim / u_multi) % multi) * u_multi;
        					var label_pos = ruler_d - big_int;
        					// draw big intervals
        					while (ruler_d < total_len) {
        						label_pos += big_int;
        						// var real_d = ruler_d - contentDim; // Currently unused
        
        						var cur_d = Math.round(ruler_d) + 0.5;
        						if (isX) {
        							ctx.moveTo(cur_d, 15);
        							ctx.lineTo(cur_d, 0);
        						}
        						else {
        							ctx.moveTo(15, cur_d);
        							ctx.lineTo(0, cur_d);
        						}
        
        						num = (label_pos - contentDim) / u_multi;
        						var label;
        						if (multi >= 1) {
        							label = Math.round(num);
        						}
        						else {
        							var decs = String(multi).split('.')[1].length;
        							label = num.toFixed(decs);
        						}
        
        						// Change 1000s to Ks
        						if (label !== 0 && label !== 1000 && label % 1000 === 0) {
        							label = (label / 1000) + 'K';
        						}
        
        						if (isX) {
        							ctx.fillText(label, ruler_d+2, 8);
        						} else {
        							// draw label vertically
        							var str = String(label).split('');
        							for (i = 0; i < str.length; i++) {
        								ctx.fillText(str[i], 1, (ruler_d+9) + i*9);
        							}
        						}
        
        						var part = big_int / 10;
        						// draw the small intervals
        						for (i = 1; i < 10; i++) {
        							var sub_d = Math.round(ruler_d + part * i) + 0.5;
        							if (ctx_arr && sub_d > ruler_len) {
        								ctx_num++;
        								ctx.stroke();
        								if (ctx_num >= ctx_arr_num) {
        									i = 10;
        									ruler_d = total_len;
        									continue;
        								}
        								ctx = ctx_arr[ctx_num];
        								ruler_d -= limit;
        								sub_d = Math.round(ruler_d + part * i) + 0.5;
        							}
        
        							// odd lines are slighly longer
        							var line_num = (i % 2) ? 12 : 10;
        							if (isX) {
        								ctx.moveTo(sub_d, 15);
        								ctx.lineTo(sub_d, line_num);
        							} else {
        								ctx.moveTo(15, sub_d);
        								ctx.lineTo(line_num, sub_d);
        							}
        						}
        						ruler_d += big_int;
        					}
        					ctx.strokeStyle = '#000';
        					ctx.stroke();
        				}
        			}
        
        			var updateCanvas = editor.updateCanvas = function(center, new_ctr) {
        				var w = workarea.width(), h = workarea.height();
        				var w_orig = w, h_orig = h;
        				var zoom = svgCanvas.getZoom();
        				var w_area = workarea;
        				var cnvs = $('#svgcanvas');
        				var old_ctr = {
        					x: w_area[0].scrollLeft + w_orig/2,
        					y: w_area[0].scrollTop + h_orig/2
        				};
        				var multi = curConfig.canvas_expansion;
        				w = Math.max(w_orig, svgCanvas.contentW * zoom * multi);
        				h = Math.max(h_orig, svgCanvas.contentH * zoom * multi);
        
        				if (w == w_orig && h == h_orig) {
        					workarea.css('overflow', 'hidden');
        				} else {
        					workarea.css('overflow', 'scroll');
        				}
        
        				var old_can_y = cnvs.height()/2;
        				var old_can_x = cnvs.width()/2;
        				cnvs.width(w).height(h);
        				var new_can_y = h/2;
        				var new_can_x = w/2;
        				var offset = svgCanvas.updateCanvas(w, h);
        
        				var ratio = new_can_x / old_can_x;
        
        				var scroll_x = w/2 - w_orig/2;
        				var scroll_y = h/2 - h_orig/2;
        
        				if (!new_ctr) {
        					var old_dist_x = old_ctr.x - old_can_x;
        					var new_x = new_can_x + old_dist_x * ratio;
        
        					var old_dist_y = old_ctr.y - old_can_y;
        					var new_y = new_can_y + old_dist_y * ratio;
        
        					new_ctr = {
        						x: new_x,
        						y: new_y
        					};
        				} else {
        					new_ctr.x += offset.x;
        					new_ctr.y += offset.y;
        				}
        
        				if (center) {
        					// Go to top-left for larger documents
        					if (svgCanvas.contentW > w_area.width()) {
        						// Top-left
        						workarea[0].scrollLeft = offset.x - 10;
        						workarea[0].scrollTop = offset.y - 10;
        					} else {
        						// Center
        						w_area[0].scrollLeft = scroll_x;
        						w_area[0].scrollTop = scroll_y;
        					}
        				} else {
        					w_area[0].scrollLeft = new_ctr.x - w_orig/2;
        					w_area[0].scrollTop = new_ctr.y - h_orig/2;
        				}
        				if (curConfig.showRulers) {
        					updateRulers(cnvs, zoom);
        					workarea.scroll();
        				}
        				if (urldata.storagePrompt !== true && !editor.storagePromptClosed) {
        					$('#dialog_box').hide();
        				}
        			};
        
        			var updateToolButtonState = function() {
        				var index, button;
        				var bNoFill = (svgCanvas.getColor('fill') == 'none');
        				var bNoStroke = (svgCanvas.getColor('stroke') == 'none');
        				var buttonsNeedingStroke = [ '#tool_fhpath', '#tool_line' ];
        				var buttonsNeedingFillAndStroke = [ '#tools_rect .tool_button', '#tools_ellipse .tool_button', '#tool_text', '#tool_path'];
        				if (bNoStroke) {
        					for (index in buttonsNeedingStroke) {
        						button = buttonsNeedingStroke[index];
        						if ($(button).hasClass('tool_button_current')) {
        							clickSelect();
        						}
        						$(button).addClass('disabled');
        					}
        				} else {
        					for (index in buttonsNeedingStroke) {
        						button = buttonsNeedingStroke[index];
        						$(button).removeClass('disabled');
        					}
        				}
        
        				if (bNoStroke && bNoFill) {
        					for (index in buttonsNeedingFillAndStroke) {
        						button = buttonsNeedingFillAndStroke[index];
        						if ($(button).hasClass('tool_button_current')) {
        							clickSelect();
        						}
        						$(button).addClass('disabled');
        					}
        				} else {
        					for (index in buttonsNeedingFillAndStroke) {
        						button = buttonsNeedingFillAndStroke[index];
        						$(button).removeClass('disabled');
        					}
        				}
        
        				svgCanvas.runExtensions('toolButtonStateUpdate', {
        					nofill: bNoFill,
        					nostroke: bNoStroke
        				});
        
        				// Disable flyouts if all inside are disabled
        				$('.tools_flyout').each(function() {
        					var shower = $('#' + this.id + '_show');
        					var has_enabled = false;
        					$(this).children().each(function() {
        						if (!$(this).hasClass('disabled')) {
        							has_enabled = true;
        						}
        					});
        					shower.toggleClass('disabled', !has_enabled);
        				});
        
        				operaRepaint();
        			};
        
        			// Updates the toolbar (colors, opacity, etc) based on the selected element
        			// This function also updates the opacity and id elements that are in the context panel
        			var updateToolbar = function() {
        				var i, len;
        				if (selectedElement != null) {
        					switch (selectedElement.tagName) {
        					case 'use':
        					case 'image':
        					case 'foreignObject':
        						break;
        					case 'g':
        					case 'a':
        						// Look for common styles
        						var gWidth = null;
        						var childs = selectedElement.getElementsByTagName('*');
        						for (i = 0, len = childs.length; i < len; i++) {
        							var swidth = childs[i].getAttribute('stroke-width');
        
        							if (i === 0) {
        								gWidth = swidth;
        							} else if (gWidth !== swidth) {
        								gWidth = null;
        							}
        						}
        
        						$('#stroke_width').val(gWidth === null ? '' : gWidth);
        
        						paintBox.fill.update(true);
        						paintBox.stroke.update(true);
        
        						break;
        					default:
        						paintBox.fill.update(true);
        						paintBox.stroke.update(true);
        
        						$('#stroke_width').val(selectedElement.getAttribute('stroke-width') || 1);
        						$('#stroke_style').val(selectedElement.getAttribute('stroke-dasharray') || 'none');
        
        						var attr = selectedElement.getAttribute('stroke-linejoin') || 'miter';
        
        						if ($('#linejoin_' + attr).length != 0) {
        							setStrokeOpt($('#linejoin_' + attr)[0]);
        						}
        
        						attr = selectedElement.getAttribute('stroke-linecap') || 'butt';
        
        						if ($('#linecap_' + attr).length != 0) {
        							setStrokeOpt($('#linecap_' + attr)[0]);
        						}
        					}
        				}
        
        				// All elements including image and group have opacity
        				if (selectedElement != null) {
        					var opac_perc = ((selectedElement.getAttribute('opacity')||1.0)*100);
        					$('#group_opacity').val(opac_perc);
        					$('#opac_slider').slider('option', 'value', opac_perc);
        					$('#elem_id').val(selectedElement.id);
        				}
        
        				updateToolButtonState();
        			};
        
        			// updates the context panel tools based on the selected element
        			var updateContextPanel = function() {
        				var elem = selectedElement;
        				// If element has just been deleted, consider it null
        				if (elem != null && !elem.parentNode) {elem = null;}
        				var currentLayerName = svgCanvas.getCurrentDrawing().getCurrentLayerName();
        				var currentMode = svgCanvas.getMode();
        				var unit = curConfig.baseUnit !== 'px' ? curConfig.baseUnit : null;
        
        				var is_node = currentMode == 'pathedit'; //elem ? (elem.id && elem.id.indexOf('pathpointgrip') == 0) : false;
        				var menu_items = $('#cmenu_canvas li');
        				$('#selected_panel, #multiselected_panel, #g_panel, #rect_panel, #circle_panel,'+
        					'#ellipse_panel, #line_panel, #text_panel, #image_panel, #container_panel,'+
        					' #use_panel, #a_panel').hide();
        				if (elem != null) {
        					var elname = elem.nodeName;
        					// If this is a link with no transform and one child, pretend
        					// its child is selected
        //					if (elname === 'a') { // && !$(elem).attr('transform')) {
        //						elem = elem.firstChild;
        //					}
        
        					var angle = svgCanvas.getRotationAngle(elem);
        					$('#angle').val(angle);
        
        					var blurval = svgCanvas.getBlur(elem);
        					$('#blur').val(blurval);
        					$('#blur_slider').slider('option', 'value', blurval);
        
        					if (svgCanvas.addedNew) {
        						if (elname === 'image') {
        							// Prompt for URL if not a data URL
        							if (svgCanvas.getHref(elem).indexOf('data:') !== 0) {
        								promptImgURL();
        							}
        						} /*else if (elname == 'text') {
        							// TODO: Do something here for new text
        						}*/
        					}
        
        					if (!is_node && currentMode != 'pathedit') {
        						$('#selected_panel').show();
        						// Elements in this array already have coord fields
        						if (['line', 'circle', 'ellipse'].indexOf(elname) >= 0) {
        							$('#xy_panel').hide();
        						} else {
        							var x, y;
        
        							// Get BBox vals for g, polyline and path
        							if (['g', 'polyline', 'path'].indexOf(elname) >= 0) {
        								var bb = svgCanvas.getStrokedBBox([elem]);
        								if (bb) {
        									x = bb.x;
        									y = bb.y;
        								}
        							} else {
        								x = elem.getAttribute('x');
        								y = elem.getAttribute('y');
        							}
        
        							if (unit) {
        								x = svgedit.units.convertUnit(x);
        								y = svgedit.units.convertUnit(y);
        							}
        
        							$('#selected_x').val(x || 0);
        							$('#selected_y').val(y || 0);
        							$('#xy_panel').show();
        						}
        
        						// Elements in this array cannot be converted to a path
        						var no_path = ['image', 'text', 'path', 'g', 'use'].indexOf(elname) == -1;
        						$('#tool_topath').toggle(no_path);
        						$('#tool_reorient').toggle(elname === 'path');
        						$('#tool_reorient').toggleClass('disabled', angle === 0);
        					} else {
        						var point = path.getNodePoint();
        						$('#tool_add_subpath').removeClass('push_button_pressed').addClass('tool_button');
        						$('#tool_node_delete').toggleClass('disabled', !path.canDeleteNodes);
        
        						// Show open/close button based on selected point
        						setIcon('#tool_openclose_path', path.closed_subpath ? 'open_path' : 'close_path');
        
        						if (point) {
        							var seg_type = $('#seg_type');
        							if (unit) {
        								point.x = svgedit.units.convertUnit(point.x);
        								point.y = svgedit.units.convertUnit(point.y);
        							}
        							$('#path_node_x').val(point.x);
        							$('#path_node_y').val(point.y);
        							if (point.type) {
        								seg_type.val(point.type).removeAttr('disabled');
        							} else {
        								seg_type.val(4).attr('disabled', 'disabled');
        							}
        						}
        						return;
        					}
        
        					// update contextual tools here
        					var panels = {
        						g: [],
        						a: [],
        						rect: ['rx', 'width', 'height'],
        						image: ['width', 'height'],
        						circle: ['cx', 'cy', 'r'],
        						ellipse: ['cx', 'cy', 'rx', 'ry'],
        						line: ['x1', 'y1', 'x2', 'y2'],
        						text: [],
        						use: []
        					};
        
        					var el_name = elem.tagName;
        
        //					if ($(elem).data('gsvg')) {
        //						$('#g_panel').show();
        //					}
        
        					var link_href = null;
        					if (el_name === 'a') {
        						link_href = svgCanvas.getHref(elem);
        						$('#g_panel').show();
        					}
        
        					if (elem.parentNode.tagName === 'a') {
        						if (!$(elem).siblings().length) {
        							$('#a_panel').show();
        							link_href = svgCanvas.getHref(elem.parentNode);
        						}
        					}
        
        					// Hide/show the make_link buttons
        					$('#tool_make_link, #tool_make_link').toggle(!link_href);
        
        					if (link_href) {
        						$('#link_url').val(link_href);
        					}
        
        					if (panels[el_name]) {
        						var cur_panel = panels[el_name];
        
        						$('#' + el_name + '_panel').show();
        
        						$.each(cur_panel, function(i, item) {
        							var attrVal = elem.getAttribute(item);
        							if (curConfig.baseUnit !== 'px' && elem[item]) {
        								var bv = elem[item].baseVal.value;
        								attrVal = svgedit.units.convertUnit(bv);
        							}
        							$('#' + el_name + '_' + item).val(attrVal || 0);
        						});
        
        						if (el_name == 'text') {
        							$('#text_panel').css('display', 'inline');
        							if (svgCanvas.getItalic()) {
        								$('#tool_italic').addClass('push_button_pressed').removeClass('tool_button');
        							} else {
        								$('#tool_italic').removeClass('push_button_pressed').addClass('tool_button');
        							}
        							if (svgCanvas.getBold()) {
        								$('#tool_bold').addClass('push_button_pressed').removeClass('tool_button');
        							} else {
        								$('#tool_bold').removeClass('push_button_pressed').addClass('tool_button');
        							}
        							$('#font_family').val(elem.getAttribute('font-family'));
        							$('#font_size').val(elem.getAttribute('font-size'));
        							$('#text').val(elem.textContent);
        							if (svgCanvas.addedNew) {
        								// Timeout needed for IE9
        								setTimeout(function() {
        									$('#text').focus().select();
        								}, 100);
        							}
        						} // text
        						else if (el_name == 'image') {
        							setImageURL(svgCanvas.getHref(elem));
        						} // image
        						else if (el_name === 'g' || el_name === 'use') {
        							$('#container_panel').show();
        							var title = svgCanvas.getTitle();
        							var label = $('#g_title')[0];
        							label.value = title;
        							setInputWidth(label);
        							$('#g_title').prop('disabled', el_name == 'use');
        						}
        					}
        					menu_items[(el_name === 'g' ? 'en' : 'dis') + 'ableContextMenuItems']('#ungroup');
        					menu_items[((el_name === 'g' || !multiselected) ? 'dis' : 'en') + 'ableContextMenuItems']('#group');
        				} // if (elem != null)
        				else if (multiselected) {
        					$('#multiselected_panel').show();
        					menu_items
        						.enableContextMenuItems('#group')
        						.disableContextMenuItems('#ungroup');
        				} else {
        					menu_items.disableContextMenuItems('#delete,#cut,#copy,#group,#ungroup,#move_front,#move_up,#move_down,#move_back');
        				}
        
        				// update history buttons
        				$('#tool_undo').toggleClass('disabled', undoMgr.getUndoStackSize() === 0);
        				$('#tool_redo').toggleClass('disabled', undoMgr.getRedoStackSize() === 0);
        
        				svgCanvas.addedNew = false;
        
        				if ( (elem && !is_node)	|| multiselected) {
        					// update the selected elements' layer
        					$('#selLayerNames').removeAttr('disabled').val(currentLayerName);
        
        					// Enable regular menu options
        					canv_menu.enableContextMenuItems('#delete,#cut,#copy,#move_front,#move_up,#move_down,#move_back');
        				} else {
        					$('#selLayerNames').attr('disabled', 'disabled');
        				}
        			};
        
        			var updateWireFrame = function() {
        				// Test support
        				if (supportsNonSS) {return;}
        
        				var rule = '#workarea.wireframe #svgcontent * { stroke-width: ' + 1/svgCanvas.getZoom() + 'px; }';
        				$('#wireframe_rules').text(workarea.hasClass('wireframe') ? rule : '');
        			};
        
        			var updateTitle = function(title) {
        				title = title || svgCanvas.getDocumentTitle();
        				var newTitle = origTitle + (title ? ': ' + title : '');
        
        				// Remove title update with current context info, isn't really necessary
        //				if (cur_context) {
        //					new_title = new_title + cur_context;
        //				}
        				$('title:first').text(newTitle);
        			};
        
        			// called when we've selected a different element
        			var selectedChanged = function(win, elems) {
        				var mode = svgCanvas.getMode();
        				if (mode === 'select') {
        					setSelectMode();
        				}
        				var is_node = (mode == "pathedit");
        				// if elems[1] is present, then we have more than one element
        				selectedElement = (elems.length === 1 || elems[1] == null ? elems[0] : null);
        				multiselected = (elems.length >= 2 && elems[1] != null);
        				if (selectedElement != null) {
        					// unless we're already in always set the mode of the editor to select because
        					// upon creation of a text element the editor is switched into
        					// select mode and this event fires - we need our UI to be in sync
        
        					if (!is_node) {
        						updateToolbar();
        					}
        				} // if (elem != null)
        
        				// Deal with pathedit mode
        				togglePathEditMode(is_node, elems);
        				updateContextPanel();
        				svgCanvas.runExtensions('selectedChanged', {
        					elems: elems,
        					selectedElement: selectedElement,
        					multiselected: multiselected
        				});
        			};
        
        			// Call when part of element is in process of changing, generally
        			// on mousemove actions like rotate, move, etc.
        			var elementTransition = function(win, elems) {
        				var mode = svgCanvas.getMode();
        				var elem = elems[0];
        
        				if (!elem) {
        					return;
        				}
        
        				multiselected = (elems.length >= 2 && elems[1] != null);
        				// Only updating fields for single elements for now
        				if (!multiselected) {
        					switch (mode) {
        						case 'rotate':
        							var ang = svgCanvas.getRotationAngle(elem);
        							$('#angle').val(ang);
        							$('#tool_reorient').toggleClass('disabled', ang === 0);
        							break;
        
        						// TODO: Update values that change on move/resize, etc
        //						case "select":
        //						case "resize":
        //							break;
        					}
        				}
        				svgCanvas.runExtensions('elementTransition', {
        					elems: elems
        				});
        			};
        
        			// called when any element has changed
        			var elementChanged = function(win, elems) {
        				var i,
        					mode = svgCanvas.getMode();
        				if (mode === 'select') {
        					setSelectMode();
        				}
        
        				for (i = 0; i < elems.length; ++i) {
        					var elem = elems[i];
        
        					// if the element changed was the svg, then it could be a resolution change
        					if (elem && elem.tagName === 'svg') {
        						populateLayers();
        						updateCanvas();
        					}
        					// Update selectedElement if element is no longer part of the image.
        					// This occurs for the text elements in Firefox
        					else if (elem && selectedElement && selectedElement.parentNode == null) {
        //						|| elem && elem.tagName == "path" && !multiselected) { // This was added in r1430, but not sure why
        						selectedElement = elem;
        					}
        				}
        
        				editor.showSaveWarning = true;
        
        				// we update the contextual panel with potentially new
        				// positional/sizing information (we DON'T want to update the
        				// toolbar here as that creates an infinite loop)
        				// also this updates the history buttons
        
        				// we tell it to skip focusing the text control if the
        				// text element was previously in focus
        				updateContextPanel();
        
        				// In the event a gradient was flipped:
        				if (selectedElement && mode === 'select') {
        					paintBox.fill.update();
        					paintBox.stroke.update();
        				}
        
        				svgCanvas.runExtensions('elementChanged', {
        					elems: elems
        				});
        			};
        
        			var zoomDone = function() {
        				updateWireFrame();
        				// updateCanvas(); // necessary?
        			};
        
        			var zoomChanged = svgCanvas.zoomChanged = function(win, bbox, autoCenter) {
        				var scrbar = 15,
        					// res = svgCanvas.getResolution(), // Currently unused
        					w_area = workarea;
        				// var canvas_pos = $('#svgcanvas').position(); // Currently unused
        				var z_info = svgCanvas.setBBoxZoom(bbox, w_area.width()-scrbar, w_area.height()-scrbar);
        				if (!z_info) {return;}
        				var zoomlevel = z_info.zoom,
        					bb = z_info.bbox;
        
        				if (zoomlevel < 0.001) {
        					changeZoom({value: 0.1});
        					return;
        				}
        
        				$('#zoom').val((zoomlevel*100).toFixed(1));
        
        				if (autoCenter) {
        					updateCanvas();
        				} else {
        					updateCanvas(false, {x: bb.x * zoomlevel + (bb.width * zoomlevel)/2, y: bb.y * zoomlevel + (bb.height * zoomlevel)/2});
        				}
        
        				if (svgCanvas.getMode() == 'zoom' && bb.width) {
        					// Go to select if a zoom box was drawn
        					setSelectMode();
        				}
        
        				zoomDone();
        			};
        
        			changeZoom = function(ctl) {
        				var zoomlevel = ctl.value / 100;
        				if (zoomlevel < 0.001) {
        					ctl.value = 0.1;
        					return;
        				}
        				var zoom = svgCanvas.getZoom();
        				var w_area = workarea;
        
        				zoomChanged(window, {
        					width: 0,
        					height: 0,
        					// center pt of scroll position
        					x: (w_area[0].scrollLeft + w_area.width()/2)/zoom,
        					y: (w_area[0].scrollTop + w_area.height()/2)/zoom,
        					zoom: zoomlevel
        				}, true);
        			};
        
        			$('#cur_context_panel').delegate('a', 'click', function() {
        				var link = $(this);
        				if (link.attr('data-root')) {
        					svgCanvas.leaveContext();
        				} else {
        					svgCanvas.setContext(link.text());
        				}
        				svgCanvas.clearSelection();
        				return false;
        			});
        
        			var contextChanged = function(win, context) {
        				var link_str = '';
        				if (context) {
        					var str = '';
        					link_str = '<a href="#" data-root="y">' + svgCanvas.getCurrentDrawing().getCurrentLayerName() + '</a>';
        
        					$(context).parentsUntil('#svgcontent > g').andSelf().each(function() {
        						if (this.id) {
        							str += ' > ' + this.id;
        							if (this !== context) {
        								link_str += ' > <a href="#">' + this.id + '</a>';
        							} else {
        								link_str += ' > ' + this.id;
        							}
        						}
        					});
        
        					cur_context = str;
        				} else {
        					cur_context = null;
        				}
        				$('#cur_context_panel').toggle(!!context).html(link_str);
        
        				updateTitle();
        			};
        
        			// Makes sure the current selected paint is available to work with
        			var prepPaints = function() {
        				paintBox.fill.prep();
        				paintBox.stroke.prep();
        			};
        
        			var flyout_funcs = {};
        
        			var setFlyoutTitles = function() {
        				$('.tools_flyout').each(function() {
        					var shower = $('#' + this.id + '_show');
        					if (shower.data('isLibrary')) {
        						return;
        					}
        
        					var tooltips = [];
        					$(this).children().each(function() {
        						tooltips.push(this.title);
        					});
        					shower[0].title = tooltips.join(' / ');
        				});
        			};
        
        			var setFlyoutPositions = function() {
        				$('.tools_flyout').each(function() {
        					var shower = $('#' + this.id + '_show');
        					var pos = shower.offset();
        					var w = shower.outerWidth();
        					$(this).css({left: (pos.left + w) * editor.tool_scale, top: pos.top});
        				});
        			};
        
        			var setupFlyouts = function(holders) {
        				$.each(holders, function(hold_sel, btn_opts) {
        					var buttons = $(hold_sel).children();
        					var show_sel = hold_sel + '_show';
        					var shower = $(show_sel);
        					var def = false;
        					buttons.addClass('tool_button')
        						.unbind('click mousedown mouseup') // may not be necessary
        						.each(function(i) {
        							// Get this buttons options
        							var opts = btn_opts[i];
        
        							// Remember the function that goes with this ID
        							flyout_funcs[opts.sel] = opts.fn;
        
        							if (opts.isDefault) {def = i;}
        
        							// Clicking the icon in flyout should set this set's icon
        							var func = function(event) {
        								var options = opts;
        								//find the currently selected tool if comes from keystroke
        								if (event.type === 'keydown') {
        									var flyoutIsSelected = $(options.parent + '_show').hasClass('tool_button_current');
        									var currentOperation = $(options.parent + '_show').attr('data-curopt');
        									$.each(holders[opts.parent], function(i, tool) {
        										if (tool.sel == currentOperation) {
        											if (!event.shiftKey || !flyoutIsSelected) {
        												options = tool;
        											} else {
        												options = holders[opts.parent][i+1] || holders[opts.parent][0];
        											}
        										}
        									});
        								}
        								if ($(this).hasClass('disabled')) {return false;}
        								if (toolButtonClick(show_sel)) {
        									options.fn();
        								}
        								var icon;
        								if (options.icon) {
        									icon = $.getSvgIcon(options.icon, true);
        								} else {
        									icon = $(options.sel).children().eq(0).clone();
        								}
        
        								icon[0].setAttribute('width', shower.width());
        								icon[0].setAttribute('height', shower.height());
        								shower.children(':not(.flyout_arrow_horiz)').remove();
        								shower.append(icon).attr('data-curopt', options.sel); // This sets the current mode
        							};
        
        							$(this).mouseup(func);
        
        							if (opts.key) {
        								$(document).bind('keydown', opts.key[0] + ' shift+' + opts.key[0], func);
        							}
        						});
        
        					if (def) {
        						shower.attr('data-curopt', btn_opts[def].sel);
        					} else if (!shower.attr('data-curopt')) {
        						// Set first as default
        						shower.attr('data-curopt', btn_opts[0].sel);
        					}
        
        					var timer;
        					var pos = $(show_sel).position();
        
        					// Clicking the "show" icon should set the current mode
        					shower.mousedown(function(evt) {
        						if (shower.hasClass('disabled')) {
        							return false;
        						}
        						var holder = $(hold_sel);
        						var l = pos.left + 34;
        						var w = holder.width() * -1;
        						var time = holder.data('shown_popop') ? 200 : 0;
        						timer = setTimeout(function() {
        							// Show corresponding menu
        							if (!shower.data('isLibrary')) {
        								holder.css('left', w).show().animate({
        									left: l
        								}, 150);
        							} else {
        								holder.css('left', l).show();
        							}
        							holder.data('shown_popop', true);
        						},time);
        						evt.preventDefault();
        					}).mouseup(function(evt) {
        						clearTimeout(timer);
        						var opt = $(this).attr('data-curopt');
        						// Is library and popped up, so do nothing
        						if (shower.data('isLibrary') && $(show_sel.replace('_show', '')).is(':visible')) {
        							toolButtonClick(show_sel, true);
        							return;
        						}
        						if (toolButtonClick(show_sel) && flyout_funcs[opt]) {
        							flyout_funcs[opt]();
        						}
        					});
        					// $('#tools_rect').mouseleave(function(){$('#tools_rect').fadeOut();});
        				});
        				setFlyoutTitles();
        				setFlyoutPositions();
        			};
        
        			var makeFlyoutHolder = function(id, child) {
        				var div = $('<div>', {
        					'class': 'tools_flyout',
        					id: id
        				}).appendTo('#svg_editor').append(child);
        
        				return div;
        			};
        
        			var uaPrefix = (function() {
        				var prop;
        				var regex = /^(Moz|Webkit|Khtml|O|ms|Icab)(?=[A-Z])/;
        				var someScript = document.getElementsByTagName('script')[0];
        				for (prop in someScript.style) {
        					if (regex.test(prop)) {
        						// test is faster than match, so it's better to perform
        						// that on the lot and match only when necessary
        						return prop.match(regex)[0];
        					}
        				}
        				// Nothing found so far?
        				if ('WebkitOpacity' in someScript.style) {return 'Webkit';}
        				if ('KhtmlOpacity' in someScript.style) {return 'Khtml';}
        
        				return '';
        			}());
        
        			var scaleElements = function(elems, scale) {
        				// var prefix = '-' + uaPrefix.toLowerCase() + '-'; // Currently unused
        				var sides = ['top', 'left', 'bottom', 'right'];
        
        				elems.each(function() {
        					// Handled in CSS
        					// this.style[uaPrefix + 'Transform'] = 'scale(' + scale + ')';
        					var i;
        					var el = $(this);
        					var w = el.outerWidth() * (scale - 1);
        					var h = el.outerHeight() * (scale - 1);
        					// var margins = {}; // Currently unused
        
        					for (i = 0; i < 4; i++) {
        						var s = sides[i];
        						var cur = el.data('orig_margin-' + s);
        						if (cur == null) {
        							cur = parseInt(el.css('margin-' + s), 10);
        							// Cache the original margin
        							el.data('orig_margin-' + s, cur);
        						}
        						var val = cur * scale;
        						if (s === 'right') {
        							val += w;
        						} else if (s === 'bottom') {
        							val += h;
        						}
        
        						el.css('margin-' + s, val);
        						// el.css('outline', '1px solid red');
        					}
        				});
        			};
        
        			var setIconSize = editor.setIconSize = function (size) {
        
        //				var elems = $('.tool_button, .push_button, .tool_button_current, .disabled, .icon_label, #url_notice, #tool_open');
        				var sel_toscale = '#tools_top .toolset, #editor_panel > *, #history_panel > *,'+
        '				#main_button, #tools_left > *, #path_node_panel > *, #multiselected_panel > *,'+
        '				#g_panel > *, #tool_font_size > *, .tools_flyout';
        
        				var elems = $(sel_toscale);
        				var scale = 1;
        
        				if (typeof size === 'number') {
        					scale = size;
        				} else {
        					var icon_sizes = {s: 0.75, m:1, l: 1.25, xl: 1.5};
        					scale = icon_sizes[size];
        				}
        
        				editor.tool_scale = scale;
        
        				setFlyoutPositions();
        				// $('.tools_flyout').each(function() {
        //					var pos = $(this).position();
        //					console.log($(this), pos.left+(34 * scale));
        //					$(this).css({'left': pos.left+(34 * scale), 'top': pos.top+(77 * scale)});
        //					console.log('l', $(this).css('left'));
        //				});
        
        //				var scale = .75;
        
        				var hidden_ps = elems.parents(':hidden');
        				hidden_ps.css('visibility', 'hidden').show();
        				scaleElements(elems, scale);
        				hidden_ps.css('visibility', 'visible').hide();
        //				return;
        
        				$.pref('iconsize', size);
        				$('#iconsize').val(size);
        
        				// Change icon size
        //				$('.tool_button, .push_button, .tool_button_current, .disabled, .icon_label, #url_notice, #tool_open')
        //				.find('> svg, > img').each(function() {
        //					this.setAttribute('width',size_num);
        //					this.setAttribute('height',size_num);
        //				});
        //
        //				$.resizeSvgIcons({
        //					'.flyout_arrow_horiz > svg, .flyout_arrow_horiz > img': size_num / 5,
        //					'#logo > svg, #logo > img': size_num * 1.3,
        //					'#tools_bottom .icon_label > *': (size_num === 16 ? 18 : size_num * .75)
        //				});
        //				if (size != 's') {
        //					$.resizeSvgIcons({'#layerbuttons svg, #layerbuttons img': size_num * .6});
        //				}
        
        				// Note that all rules will be prefixed with '#svg_editor' when parsed
        				var cssResizeRules = {
        //					'.tool_button,\
        //					.push_button,\
        //					.tool_button_current,\
        //					.push_button_pressed,\
        //					.disabled,\
        //					.icon_label,\
        //					.tools_flyout .tool_button': {
        //						'width': {s: '16px', l: '32px', xl: '48px'},
        //						'height': {s: '16px', l: '32px', xl: '48px'},
        //						'padding': {s: '1px', l: '2px', xl: '3px'}
        //					},
        //					'.tool_sep': {
        //						'height': {s: '16px', l: '32px', xl: '48px'},
        //						'margin': {s: '2px 2px', l: '2px 5px', xl: '2px 8px'}
        //					},
        //					'#main_icon': {
        //						'width': {s: '31px', l: '53px', xl: '75px'},
        //						'height': {s: '22px', l: '42px', xl: '64px'}
        //					},
        					'#tools_top': {
        						'left': 50 + $('#main_button').width(),
        						'height': 72
        					},
        					'#tools_left': {
        						'width': 31,
        						'top': 74
        					},
        					'div#workarea': {
        						'left': 38,
        						'top': 74
        					}
        //					'#tools_bottom': {
        //						'left': {s: '27px', l: '46px', xl: '65px'},
        //						'height': {s: '58px', l: '98px', xl: '145px'}
        //					},
        //					'#color_tools': {
        //						'border-spacing': {s: '0 1px'},
        //						'margin-top': {s: '-1px'}
        //					},
        //					'#color_tools .icon_label': {
        //						'width': {l:'43px', xl: '60px'}
        //					},
        //					'.color_tool': {
        //						'height': {s: '20px'}
        //					},
        //					'#tool_opacity': {
        //						'top': {s: '1px'},
        //						'height': {s: 'auto', l:'auto', xl:'auto'}
        //					},
        //					'#tools_top input, #tools_bottom input': {
        //						'margin-top': {s: '2px', l: '4px', xl: '5px'},
        //						'height': {s: 'auto', l: 'auto', xl: 'auto'},
        //						'border': {s: '1px solid #555', l: 'auto', xl: 'auto'},
        //						'font-size': {s: '.9em', l: '1.2em', xl: '1.4em'}
        //					},
        //					'#zoom_panel': {
        //						'margin-top': {s: '3px', l: '4px', xl: '5px'}
        //					},
        //					'#copyright, #tools_bottom .label': {
        //						'font-size': {l: '1.5em', xl: '2em'},
        //						'line-height': {s: '15px'}
        //					},
        //					'#tools_bottom_2': {
        //						'width': {l: '295px', xl: '355px'},
        //						'top': {s: '4px'}
        //					},
        //					'#tools_top > div, #tools_top': {
        //						'line-height': {s: '17px', l: '34px', xl: '50px'}
        //					},
        //					'.dropdown button': {
        //						'height': {s: '18px', l: '34px', xl: '40px'},
        //						'line-height': {s: '18px', l: '34px', xl: '40px'},
        //						'margin-top': {s: '3px'}
        //					},
        //					'#tools_top label, #tools_bottom label': {
        //						'font-size': {s: '1em', l: '1.5em', xl: '2em'},
        //						'height': {s: '25px', l: '42px', xl: '64px'}
        //					},
        //					'div.toolset': {
        //						'height': {s: '25px', l: '42px', xl: '64px'}
        //					},
        //					'#tool_bold, #tool_italic': {
        //						'font-size': {s: '1.5em', l: '3em', xl: '4.5em'}
        //					},
        //					'#sidepanels': {
        //						'top': {s: '50px', l: '88px', xl: '125px'},
        //						'bottom': {s: '51px', l: '68px', xl: '65px'}
        //					},
        //					'#layerbuttons': {
        //						'width': {l: '130px', xl: '175px'},
        //						'height': {l: '24px', xl: '30px'}
        //					},
        //					'#layerlist': {
        //						'width': {l: '128px', xl: '150px'}
        //					},
        //					'.layer_button': {
        //						'width': {l: '19px', xl: '28px'},
        //						'height': {l: '19px', xl: '28px'}
        //					},
        //					'input.spin-button': {
        //						'background-image': {l: 'url('images/spinbtn_updn_big.png')', xl: 'url('images/spinbtn_updn_big.png')'},
        //						'background-position': {l: '100% -5px', xl: '100% -2px'},
        //						'padding-right': {l: '24px', xl: '24px' }
        //					},
        //					'input.spin-button.up': {
        //						'background-position': {l: '100% -45px', xl: '100% -42px'}
        //					},
        //					'input.spin-button.down': {
        //						'background-position': {l: '100% -85px', xl: '100% -82px'}
        //					},
        //					'#position_opts': {
        //						'width': {all: (size_num*4) +'px'}
        //					}
        				};
        
        				var rule_elem = $('#tool_size_rules');
        				if (!rule_elem.length) {
        					rule_elem = $('<style id="tool_size_rules"></style>').appendTo('head');
        				} else {
        					rule_elem.empty();
        				}
        
        				if (size !== 'm') {
        					var styleStr = '';
        					$.each(cssResizeRules, function(selector, rules) {
        						selector = '#svg_editor ' + selector.replace(/,/g,', #svg_editor');
        						styleStr += selector + '{';
        						$.each(rules, function(prop, values) {
        							var val;
        							if (typeof values === 'number') {
        								val = (values * scale) + 'px';
        							} else if (values[size] || values.all) {
        								val = (values[size] || values.all);
        							}
        							styleStr += (prop + ':' + val + ';');
        						});
        						styleStr += '}';
        					});
        					//this.style[uaPrefix + 'Transform'] = 'scale(' + scale + ')';
        					var prefix = '-' + uaPrefix.toLowerCase() + '-';
        					styleStr += (sel_toscale + '{' + prefix + 'transform: scale(' + scale + ');}'
        					+ ' #svg_editor div.toolset .toolset {' + prefix + 'transform: scale(1); margin: 1px !important;}' // Hack for markers
        					+ ' #svg_editor .ui-slider {' + prefix + 'transform: scale(' + (1/scale) + ');}' // Hack for sliders
        					);
        					rule_elem.text(styleStr);
        				}
        
        				setFlyoutPositions();
        			};
        
        			// TODO: Combine this with addDropDown or find other way to optimize
        			var addAltDropDown = function(elem, list, callback, opts) {
        				var button = $(elem);
        				list = $(list);
        				var on_button = false;
        				var dropUp = opts.dropUp;
        				if (dropUp) {
        					$(elem).addClass('dropup');
        				}
        				list.find('li').bind('mouseup', function() {
        					if (opts.seticon) {
        						setIcon('#cur_' + button[0].id , $(this).children());
        						$(this).addClass('current').siblings().removeClass('current');
        					}
        					callback.apply(this, arguments);
        
        				});
        
        				$(window).mouseup(function(evt) {
        					if (!on_button) {
        						button.removeClass('down');
        						list.hide();
        						list.css({top:0, left:0});
        					}
        					on_button = false;
        				});
        
        				// var height = list.height(); // Currently unused
        				button.bind('mousedown',function() {
        					var off = button.offset();
        					if (dropUp) {
        						off.top -= list.height();
        						off.left += 8;
        					} else {
        						off.top += button.height();
        					}
        					list.offset(off);
        
        					if (!button.hasClass('down')) {
        						list.show();
        						on_button = true;
        					} else {
        						// CSS position must be reset for Webkit
        						list.hide();
        						list.css({top:0, left:0});
        					}
        					button.toggleClass('down');
        				}).hover(function() {
        					on_button = true;
        				}).mouseout(function() {
        					on_button = false;
        				});
        
        				if (opts.multiclick) {
        					list.mousedown(function() {
        						on_button = true;
        					});
        				}
        			};
        
        			var extsPreLang = [];
        			var extAdded = function(win, ext) {
        				if (!ext) {
        					return;
        				}
        				var cb_called = false;
        				var resize_done = false;
        				var cb_ready = true; // Set to false to delay callback (e.g. wait for $.svgIcons)
        				
        				if (ext.langReady) {
        					if (editor.langChanged) { // We check for this since the "lang" pref could have been set by storage
        						var lang = $.pref('lang');
        						ext.langReady({lang:lang, uiStrings:uiStrings});
        					}
        					else {
        						extsPreLang.push(ext);
        					}
        				}
        
        				function prepResize() {
        					if (resize_timer) {
        						clearTimeout(resize_timer);
        						resize_timer = null;
        					}
        					if (!resize_done) {
        						resize_timer = setTimeout(function() {
        							resize_done = true;
        							setIconSize($.pref('iconsize'));
        						}, 50);
        					}
        				}
        
        				var runCallback = function() {
        					if (ext.callback && !cb_called && cb_ready) {
        						cb_called = true;
        						ext.callback();
        					}
        				};
        
        				var btn_selects = [];
        
        				if (ext.context_tools) {
        					$.each(ext.context_tools, function(i, tool) {
        						// Add select tool
        						var html;
        						var cont_id = tool.container_id ? (' id="' + tool.container_id + '"') : '';
        						var panel = $('#' + tool.panel);
        
        						// create the panel if it doesn't exist
        						if (!panel.length) {
        							panel = $('<div>', {id: tool.panel}).appendTo('#tools_top');
        						}
        
        						// TODO: Allow support for other types, or adding to existing tool
        						switch (tool.type) {
        						case 'tool_button':
        							html = '<div class="tool_button">' + tool.id + '</div>';
        							var div = $(html).appendTo(panel);
        							if (tool.events) {
        								$.each(tool.events, function(evt, func) {
        									$(div).bind(evt, func);
        								});
        							}
        							break;
        						case 'select':
        							html = '<label' + cont_id + '>'
        								+ '<select id="' + tool.id + '">';
        							$.each(tool.options, function(val, text) {
        								var sel = (val == tool.defval) ? ' selected' : '';
        								html += '<option value="'+val+'"' + sel + '>' + text + '</option>';
        							});
        							html += '</select></label>';
        							// Creates the tool, hides & adds it, returns the select element
        							var sel = $(html).appendTo(panel).find('select');
        
        							$.each(tool.events, function(evt, func) {
        								$(sel).bind(evt, func);
        							});
        							break;
        						case 'button-select':
        							html = '<div id="' + tool.id + '" class="dropdown toolset" title="' + tool.title + '">'
        								+ '<div id="cur_' + tool.id + '" class="icon_label"></div><button></button></div>';
        
        							var list = $('<ul id="' + tool.id + '_opts"></ul>').appendTo('#option_lists');
        
        							if (tool.colnum) {
        								list.addClass('optcols' + tool.colnum);
        							}
        
        							// Creates the tool, hides & adds it, returns the select element
        							var dropdown = $(html).appendTo(panel).children();
        
        							btn_selects.push({
        								elem: ('#' + tool.id),
        								list: ('#' + tool.id + '_opts'),
        								title: tool.title,
        								callback: tool.events.change,
        								cur: ('#cur_' + tool.id)
        							});
        
        							break;
        						case 'input':
        							html = '<label' + cont_id + '>'
        								+ '<span id="' + tool.id + '_label">'
        								+ tool.label + ':</span>'
        								+ '<input id="' + tool.id + '" title="' + tool.title
        								+ '" size="' + (tool.size || '4') + '" value="' + (tool.defval || '') + '" type="text"/></label>';
        
        							// Creates the tool, hides & adds it, returns the select element
        
        							// Add to given tool.panel
        							var inp = $(html).appendTo(panel).find('input');
        
        							if (tool.spindata) {
        								inp.SpinButton(tool.spindata);
        							}
        
        							if (tool.events) {
        								$.each(tool.events, function(evt, func) {
        									inp.bind(evt, func);
        								});
        							}
        							break;
        
        						default:
        							break;
        						}
        					});
        				}
        
        				if (ext.buttons) {
        					var fallback_obj = {},
        						placement_obj = {},
        						svgicons = ext.svgicons,
        						holders = {};
        
        					// Add buttons given by extension
        					$.each(ext.buttons, function(i, btn) {
        						var icon, svgicon, tls_id;
        						var id = btn.id;
        						var num = i;
        
        						// Give button a unique ID
        						while($('#'+id).length) {
        							id = btn.id + '_' + (++num);
        						}
        
        						if (!svgicons) {
        							icon = $('<img src="' + btn.icon + '">');
        						} else {
        							fallback_obj[id] = btn.icon;
        							svgicon = btn.svgicon || btn.id;
        							if (btn.type == 'app_menu') {
        								placement_obj['#' + id + ' > div'] = svgicon;
        							} else {
        								placement_obj['#' + id] = svgicon;
        							}
        						}
        
        						var cls, parent;
        
        						// Set button up according to its type
        						switch ( btn.type ) {
        						case 'mode_flyout':
        						case 'mode':
        							cls = 'tool_button';
        							parent = '#tools_left';
        							break;
        						case 'context':
        							cls = 'tool_button';
        							parent = '#' + btn.panel;
        							// create the panel if it doesn't exist
        							if (!$(parent).length) {
        								$('<div>', {id: btn.panel}).appendTo('#tools_top');
        							}
        							break;
        						case 'app_menu':
        							cls = '';
        							parent = '#main_menu ul';
        							break;
        						}
        						var flyout_holder, cur_h, show_btn, ref_data, ref_btn;
        						var button = $((btn.list || btn.type == 'app_menu') ? '<li/>' : '<div/>')
        							.attr('id', id)
        							.attr('title', btn.title)
        							.addClass(cls);
        						if (!btn.includeWith && !btn.list) {
        							if ('position' in btn) {
        								if ($(parent).children().eq(btn.position).length) {
        									$(parent).children().eq(btn.position).before(button);
        								}
        								else {
        									$(parent).children().last().before(button);
        								}
        							} else {
        								button.appendTo(parent);
        							}
        
        							if (btn.type =='mode_flyout') {
        							// Add to flyout menu / make flyout menu
        	//							var opts = btn.includeWith;
        	//							// opts.button, default, position
        								ref_btn = $(button);
        
        								flyout_holder = ref_btn.parent();
        								// Create a flyout menu if there isn't one already
        								if (!ref_btn.parent().hasClass('tools_flyout')) {
        									// Create flyout placeholder
        									tls_id = ref_btn[0].id.replace('tool_', 'tools_');
        									show_btn = ref_btn.clone()
        										.attr('id', tls_id + '_show')
        										.append($('<div>', {'class': 'flyout_arrow_horiz'}));
        
        									ref_btn.before(show_btn);
        
        									// Create a flyout div
        									flyout_holder = makeFlyoutHolder(tls_id, ref_btn);
        									flyout_holder.data('isLibrary', true);
        									show_btn.data('isLibrary', true);
        								}
        	//							ref_data = Actions.getButtonData(opts.button);
        
        								placement_obj['#' + tls_id + '_show'] = btn.id;
        								// TODO: Find way to set the current icon using the iconloader if this is not default
        
        								// Include data for extension button as well as ref button
        								cur_h = holders['#'+flyout_holder[0].id] = [{
        									sel: '#'+id,
        									fn: btn.events.click,
        									icon: btn.id,
        //									key: btn.key,
        									isDefault: true
        								}, ref_data];
        	//
        	//							// {sel:'#tool_rect', fn: clickRect, evt: 'mouseup', key: 4, parent: '#tools_rect', icon: 'rect'}
        	//
        	//							var pos = ('position' in opts)?opts.position:'last';
        	//							var len = flyout_holder.children().length;
        	//
        	//							// Add at given position or end
        	//							if (!isNaN(pos) && pos >= 0 && pos < len) {
        	//								flyout_holder.children().eq(pos).before(button);
        	//							} else {
        	//								flyout_holder.append(button);
        	//								cur_h.reverse();
        	//							}
        							} else if (btn.type == 'app_menu') {
        								button.append('<div>').append(btn.title);
        							}
        
        						}
        						else if (btn.list) {
        							// Add button to list
        							button.addClass('push_button');
        							$('#' + btn.list + '_opts').append(button);
        							if (btn.isDefault) {
        								$('#cur_' + btn.list).append(button.children().clone());
        								svgicon = btn.svgicon || btn.id;
        								placement_obj['#cur_' + btn.list] = svgicon;
        							}
        						}
        						else if (btn.includeWith) {
        							// Add to flyout menu / make flyout menu
        							var opts = btn.includeWith;
        							// opts.button, default, position
        							ref_btn = $(opts.button);
        
        							flyout_holder = ref_btn.parent();
        							// Create a flyout menu if there isn't one already
        							if (!ref_btn.parent().hasClass('tools_flyout')) {
        								// Create flyout placeholder
        								tls_id = ref_btn[0].id.replace('tool_', 'tools_');
        								show_btn = ref_btn.clone()
        									.attr('id',tls_id + '_show')
        									.append($('<div>', {'class': 'flyout_arrow_horiz'}));
        
        								ref_btn.before(show_btn);
        
        								// Create a flyout div
        								flyout_holder = makeFlyoutHolder(tls_id, ref_btn);
        							}
        
        							ref_data = Actions.getButtonData(opts.button);
        
        							if (opts.isDefault) {
        								placement_obj['#' + tls_id + '_show'] = btn.id;
        							}
        							// TODO: Find way to set the current icon using the iconloader if this is not default
        
        							// Include data for extension button as well as ref button
        							cur_h = holders['#' + flyout_holder[0].id] = [{
        								sel: '#' + id,
        								fn: btn.events.click,
        								icon: btn.id,
        								key: btn.key,
        								isDefault: btn.includeWith ? btn.includeWith.isDefault : 0
        							}, ref_data];
        
        							// {sel:'#tool_rect', fn: clickRect, evt: 'mouseup', key: 4, parent: '#tools_rect', icon: 'rect'}
        
        							var pos = ('position' in opts) ? opts.position : 'last';
        							var len = flyout_holder.children().length;
        
        							// Add at given position or end
        							if (!isNaN(pos) && pos >= 0 && pos < len) {
        								flyout_holder.children().eq(pos).before(button);
        							} else {
        								flyout_holder.append(button);
        								cur_h.reverse();
        							}
        						}
        
        						if (!svgicons) {
        							button.append(icon);
        						}
        
        						if (!btn.list) {
        							// Add given events to button
        							$.each(btn.events, function(name, func) {
        								if (name == 'click' && btn.type == 'mode') {
        									if (btn.includeWith) {
        										button.bind(name, func);
        									} else {
        										button.bind(name, function() {
        											if (toolButtonClick(button)) {
        												func();
        											}
        										});
        									}
        									if (btn.key) {
        										$(document).bind('keydown', btn.key, func);
        										if (btn.title) {
        											button.attr('title', btn.title + ' ['+btn.key+']');
        										}
        									}
        								} else {
        									button.bind(name, func);
        								}
        							});
        						}
        
        						setupFlyouts(holders);
        					});
        
        					$.each(btn_selects, function() {
        						addAltDropDown(this.elem, this.list, this.callback, {seticon: true});
        					});
        
        					if (svgicons) {
        						cb_ready = false; // Delay callback
        					}
        
        					$.svgIcons(svgicons, {
        						w: 24, h: 24,
        						id_match: false,
        						no_img: (!svgedit.browser.isWebkit()),
        						fallback: fallback_obj,
        						placement: placement_obj,
        						callback: function (icons) {
        							// Non-ideal hack to make the icon match the current size
        							//if (curPrefs.iconsize && curPrefs.iconsize !== 'm') {
        							if ($.pref('iconsize') !== 'm') {
        								prepResize();
        							}
        							cb_ready = true; // Ready for callback
        							runCallback();
        						}
        					});
        				}
        
        				runCallback();
        			};
        
        			var getPaint = function(color, opac, type) {
        				// update the editor's fill paint
        				var opts = { alpha: opac };
        				if (color.indexOf('url(#') === 0) {
        					var refElem = svgCanvas.getRefElem(color);
        					if (refElem) {
        						refElem = refElem.cloneNode(true);
        					} else {
        						refElem = $('#' + type + '_color defs *')[0];
        					}
        					opts[refElem.tagName] = refElem;
        				} else if (color.indexOf('#') === 0) {
        					opts.solidColor = color.substr(1);
        				} else {
        					opts.solidColor = 'none';
        				}
        				return new $.jGraduate.Paint(opts);
        			};
        
        			$('#text').focus( function(){ textBeingEntered = true; } );
        			$('#text').blur( function(){ textBeingEntered = false; } );
        
        			// bind the selected event to our function that handles updates to the UI
        			svgCanvas.bind('selected', selectedChanged);
        			svgCanvas.bind('transition', elementTransition);
        			svgCanvas.bind('changed', elementChanged);
        			svgCanvas.bind('saved', saveHandler);
        			svgCanvas.bind('exported', exportHandler);
        			svgCanvas.bind('exportedPDF', function (win, data) {
        				var exportWindowName = data.exportWindowName;
        				if (exportWindowName) {
        					exportWindow = window.open('', exportWindowName); // A hack to get the window via JSON-able name without opening a new one
        				}
        				exportWindow.location.href = data.dataurlstring;
        			});
        			svgCanvas.bind('zoomed', zoomChanged);
        			svgCanvas.bind('contextset', contextChanged);
        			svgCanvas.bind('extension_added', extAdded);
        			svgCanvas.textActions.setInputElem($('#text')[0]);
        
        			var str = '<div class="palette_item" data-rgb="none"></div>';
        			$.each(palette, function(i, item) {
        				str += '<div class="palette_item" style="background-color: ' + item + ';" data-rgb="' + item + '"></div>';
        			});
        			$('#palette').append(str);
        
        			// Set up editor background functionality
        			// TODO add checkerboard as "pattern"
        			var color_blocks = ['#FFF', '#888', '#000']; // ,'url(data:image/gif;base64,R0lGODlhEAAQAIAAAP%2F%2F%2F9bW1iH5BAAAAAAALAAAAAAQABAAAAIfjG%2Bgq4jM3IFLJgpswNly%2FXkcBpIiVaInlLJr9FZWAQA7)'];
        			str = '';
        			$.each(color_blocks, function() {
        				str += '<div class="color_block" style="background-color:' + this + ';"></div>';
        			});
        			$('#bg_blocks').append(str);
        			var blocks = $('#bg_blocks div');
        			var cur_bg = 'cur_background';
        			blocks.each(function() {
        				var blk = $(this);
        				blk.click(function() {
        					blocks.removeClass(cur_bg);
        					$(this).addClass(cur_bg);
        				});
        			});
        
        			setBackground($.pref('bkgd_color'), $.pref('bkgd_url'));
        
        			$('#image_save_opts input').val([$.pref('img_save')]);
        
        			var changeRectRadius = function(ctl) {
        				svgCanvas.setRectRadius(ctl.value);
        			};
        
        			var changeFontSize = function(ctl) {
        				svgCanvas.setFontSize(ctl.value);
        			};
        
        			var changeStrokeWidth = function(ctl) {
        				var val = ctl.value;
        				if (val == 0 && selectedElement && ['line', 'polyline'].indexOf(selectedElement.nodeName) >= 0) {
        					val = ctl.value = 1;
        				}
        				svgCanvas.setStrokeWidth(val);
        			};
        
        			var changeRotationAngle = function(ctl) {
        				svgCanvas.setRotationAngle(ctl.value);
        				$('#tool_reorient').toggleClass('disabled', parseInt(ctl.value, 10) === 0);
        			};
        			
        			var changeOpacity = function(ctl, val) {
        				if (val == null) {val = ctl.value;}
        				$('#group_opacity').val(val);
        				if (!ctl || !ctl.handle) {
        					$('#opac_slider').slider('option', 'value', val);
        				}
        				svgCanvas.setOpacity(val/100);
        			};
        
        			var changeBlur = function(ctl, val, noUndo) {
        				if (val == null) {val = ctl.value;}
        				$('#blur').val(val);
        				var complete = false;
        				if (!ctl || !ctl.handle) {
        					$('#blur_slider').slider('option', 'value', val);
        					complete = true;
        				}
        				if (noUndo) {
        					svgCanvas.setBlurNoUndo(val);
        				} else {
        					svgCanvas.setBlur(val, complete);
        				}
        			};
        
        			$('#stroke_style').change(function() {
        				svgCanvas.setStrokeAttr('stroke-dasharray', $(this).val());
        				operaRepaint();
        			});
        
        			$('#stroke_linejoin').change(function() {
        				svgCanvas.setStrokeAttr('stroke-linejoin', $(this).val());
        				operaRepaint();
        			});
        
        			// Lose focus for select elements when changed (Allows keyboard shortcuts to work better)
        			$('select').change(function(){$(this).blur();});
        
        			// fired when user wants to move elements to another layer
        			var promptMoveLayerOnce = false;
        			$('#selLayerNames').change(function() {
        				var destLayer = this.options[this.selectedIndex].value;
        				var confirmStr = uiStrings.notification.QmoveElemsToLayer.replace('%s', destLayer);
        				var moveToLayer = function(ok) {
        					if (!ok) {return;}
        					promptMoveLayerOnce = true;
        					svgCanvas.moveSelectedToLayer(destLayer);
        					svgCanvas.clearSelection();
        					populateLayers();
        				};
        				if (destLayer) {
        					if (promptMoveLayerOnce) {
        						moveToLayer(true);
        					} else {
        						$.confirm(confirmStr, moveToLayer);
        					}
        				}
        			});
        
        			$('#font_family').change(function() {
        				svgCanvas.setFontFamily(this.value);
        			});
        
        			$('#seg_type').change(function() {
        				svgCanvas.setSegType($(this).val());
        			});
        
        			$('#text').keyup(function() {
        				svgCanvas.setTextContent(this.value);
        			});
        
        			$('#image_url').change(function() {
        				setImageURL(this.value);
        			});
        
        			$('#link_url').change(function() {
        				if (this.value.length) {
        					svgCanvas.setLinkURL(this.value);
        				} else {
        					svgCanvas.removeHyperlink();
        				}
        			});
        
        			$('#g_title').change(function() {
        				svgCanvas.setGroupTitle(this.value);
        			});
        
        			$('.attr_changer').change(function() {
        				var attr = this.getAttribute('data-attr');
        				var val = this.value;
        				var valid = svgedit.units.isValidUnit(attr, val, selectedElement);
        
        				if (!valid) {
        					$.alert(uiStrings.notification.invalidAttrValGiven);
        					this.value = selectedElement.getAttribute(attr);
        					return false;
        				}
        
        				if (attr !== 'id') {
        					if (isNaN(val)) {
        						val = svgCanvas.convertToNum(attr, val);
        					} else if (curConfig.baseUnit !== 'px') {
        						// Convert unitless value to one with given unit
        
        						var unitData = svgedit.units.getTypeMap();
        
        						if (selectedElement[attr] || svgCanvas.getMode() === 'pathedit' || attr === 'x' || attr === 'y') {
        							val *= unitData[curConfig.baseUnit];
        						}
        					}
        				}
        
        				// if the user is changing the id, then de-select the element first
        				// change the ID, then re-select it with the new ID
        				if (attr === 'id') {
        					var elem = selectedElement;
        					svgCanvas.clearSelection();
        					elem.id = val;
        					svgCanvas.addToSelection([elem],true);
        				} else {
        					svgCanvas.changeSelectedAttribute(attr, val);
        				}
        				this.blur();
        			});
        
        			// Prevent selection of elements when shift-clicking
        			$('#palette').mouseover(function() {
        				var inp = $('<input type="hidden">');
        				$(this).append(inp);
        				inp.focus().remove();
        			});
        
        			$('.palette_item').mousedown(function(evt) {
        				// shift key or right click for stroke
        				var picker = evt.shiftKey || evt.button === 2 ? 'stroke' : 'fill';
        				var color = $(this).data('rgb');
        				var paint;
        
        				// Webkit-based browsers returned 'initial' here for no stroke
        				if (color === 'none' || color === 'transparent' || color === 'initial') {
        					color = 'none';
        					paint = new $.jGraduate.Paint();
        				} else {
        					paint = new $.jGraduate.Paint({alpha: 100, solidColor: color.substr(1)});
        				}
        
        				paintBox[picker].setPaint(paint);
        				svgCanvas.setColor(picker, color);
        
        				if (color !== 'none' && svgCanvas.getPaintOpacity(picker) !== 1) {
        					svgCanvas.setPaintOpacity(picker, 1.0);
        				}
        				updateToolButtonState();
        			}).bind('contextmenu', function(e) {e.preventDefault();});
        
        			$('#toggle_stroke_tools').on('click', function() {
        				$('#tools_bottom').toggleClass('expanded');
        			});
        
        			(function() {
        				var last_x = null, last_y = null, w_area = workarea[0],
        					panning = false, keypan = false;
        
        				$('#svgcanvas').bind('mousemove mouseup', function(evt) {
        					if (panning === false) {return;}
        
        					w_area.scrollLeft -= (evt.clientX - last_x);
        					w_area.scrollTop -= (evt.clientY - last_y);
        
        					last_x = evt.clientX;
        					last_y = evt.clientY;
        
        					if (evt.type === 'mouseup') {panning = false;}
        					return false;
        				}).mousedown(function(evt) {
        					if (evt.button === 1 || keypan === true) {
        						panning = true;
        						last_x = evt.clientX;
        						last_y = evt.clientY;
        						return false;
        					}
        				});
        
        				$(window).mouseup(function() {
        					panning = false;
        				});
        
        				$(document).bind('keydown', 'space', function(evt) {
        					svgCanvas.spaceKey = keypan = true;
        					evt.preventDefault();
        				}).bind('keyup', 'space', function(evt) {
        					evt.preventDefault();
        					svgCanvas.spaceKey = keypan = false;
        				}).bind('keydown', 'shift', function(evt) {
        					if (svgCanvas.getMode() === 'zoom') {
        						workarea.css('cursor', zoomOutIcon);
        					}
        				}).bind('keyup', 'shift', function(evt) {
        					if (svgCanvas.getMode() === 'zoom') {
        						workarea.css('cursor', zoomInIcon);
        					}
        				});
        
        				editor.setPanning = function(active) {
        					svgCanvas.spaceKey = keypan = active;
        				};
        			}());
        
        			(function () {
        				var button = $('#main_icon');
        				var overlay = $('#main_icon span');
        				var list = $('#main_menu');
        				var on_button = false;
        				var height = 0;
        				var js_hover = true;
        				var set_click = false;
        
        				/*
        				// Currently unused
        				var hideMenu = function() {
        					list.fadeOut(200);
        				};
        				*/
        
        				$(window).mouseup(function(evt) {
        					if (!on_button) {
        						button.removeClass('buttondown');
        						// do not hide if it was the file input as that input needs to be visible
        						// for its change event to fire
        						if (evt.target.tagName != 'INPUT') {
        							list.fadeOut(200);
        						} else if (!set_click) {
        							set_click = true;
        							$(evt.target).click(function() {
        								list.css('margin-left', '-9999px').show();
        							});
        						}
        					}
        					on_button = false;
        				}).mousedown(function(evt) {
        //					$('.contextMenu').hide();
        					var islib = $(evt.target).closest('div.tools_flyout, .contextMenu').length;
        					if (!islib) {$('.tools_flyout:visible,.contextMenu').fadeOut(250);}
        				});
        
        				overlay.bind('mousedown',function() {
        					if (!button.hasClass('buttondown')) {
        						// Margin must be reset in case it was changed before;
        						list.css('margin-left', 0).show();
        						if (!height) {
        							height = list.height();
        						}
        						// Using custom animation as slideDown has annoying 'bounce effect'
        						list.css('height',0).animate({
        							'height': height
        						}, 200);
        						on_button = true;
        					} else {
        						list.fadeOut(200);
        					}
        					button.toggleClass('buttondown buttonup');
        				}).hover(function() {
        					on_button = true;
        				}).mouseout(function() {
        					on_button = false;
        				});
        
        				var list_items = $('#main_menu li');
        
        				// Check if JS method of hovering needs to be used (Webkit bug)
        				list_items.mouseover(function() {
        					js_hover = ($(this).css('background-color') == 'rgba(0, 0, 0, 0)');
        
        					list_items.unbind('mouseover');
        					if (js_hover) {
        						list_items.mouseover(function() {
        							this.style.backgroundColor = '#FFC';
        						}).mouseout(function() {
        							this.style.backgroundColor = 'transparent';
        							return true;
        						});
        					}
        				});
        			}());
        			// Made public for UI customization.
        			// TODO: Group UI functions into a public editor.ui interface.
        			editor.addDropDown = function(elem, callback, dropUp) {
        				if ($(elem).length == 0) {return;} // Quit if called on non-existant element
        				var button = $(elem).find('button');
        				var list = $(elem).find('ul').attr('id', $(elem)[0].id + '-list');
        				var on_button = false;
        				if (dropUp) {
        					$(elem).addClass('dropup');
        				} else {
        					// Move list to place where it can overflow container
        					$('#option_lists').append(list);
        				}
        				list.find('li').bind('mouseup', callback);
        
        				$(window).mouseup(function(evt) {
        					if (!on_button) {
        						button.removeClass('down');
        						list.hide();
        					}
        					on_button = false;
        				});
        
        				button.bind('mousedown',function() {
        					if (!button.hasClass('down')) {
        						if (!dropUp) {
        							var pos = $(elem).position();
        							list.css({
        								top: pos.top + 24,
        								left: pos.left - 10
        							});
        						}
        						list.show();
        						on_button = true;
        					} else {
        						list.hide();
        					}
        					button.toggleClass('down');
        				}).hover(function() {
        					on_button = true;
        				}).mouseout(function() {
        					on_button = false;
        				});
        			};
        
        			editor.addDropDown('#font_family_dropdown', function() {
        				$('#font_family').val($(this).text()).change();
        			});
        
        			editor.addDropDown('#opacity_dropdown', function() {
        				if ($(this).find('div').length) {return;}
        				var perc = parseInt($(this).text().split('%')[0], 10);
        				changeOpacity(false, perc);
        			}, true);
        
        			// For slider usage, see: http://jqueryui.com/demos/slider/
        			$('#opac_slider').slider({
        				start: function() {
        					$('#opacity_dropdown li:not(.special)').hide();
        				},
        				stop: function() {
        					$('#opacity_dropdown li').show();
        					$(window).mouseup();
        				},
        				slide: function(evt, ui) {
        					changeOpacity(ui);
        				}
        			});
        
        			editor.addDropDown('#blur_dropdown', $.noop);
        
        			var slideStart = false;
        
        			$('#blur_slider').slider({
        				max: 10,
        				step: 0.1,
        				stop: function(evt, ui) {
        					slideStart = false;
        					changeBlur(ui);
        					$('#blur_dropdown li').show();
        					$(window).mouseup();
        				},
        				start: function() {
        					slideStart = true;
        				},
        				slide: function(evt, ui) {
        					changeBlur(ui, null, slideStart);
        				}
        			});
        
        			editor.addDropDown('#zoom_dropdown', function() {
        				var item = $(this);
        				var val = item.data('val');
        				if (val) {
        					zoomChanged(window, val);
        				} else {
        					changeZoom({value: parseFloat(item.text())});
        				}
        			}, true);
        
        			addAltDropDown('#stroke_linecap', '#linecap_opts', function() {
        				setStrokeOpt(this, true);
        			}, {dropUp: true});
        
        			addAltDropDown('#stroke_linejoin', '#linejoin_opts', function() {
        				setStrokeOpt(this, true);
        			}, {dropUp: true});
        
        			addAltDropDown('#tool_position', '#position_opts', function() {
        				var letter = this.id.replace('tool_pos', '').charAt(0);
        				svgCanvas.alignSelectedElements(letter, 'page');
        			}, {multiclick: true});
        
        			/*
        
        			When a flyout icon is selected
        				(if flyout) {
        				- Change the icon
        				- Make pressing the button run its stuff
        				}
        				- Run its stuff
        
        			When its shortcut key is pressed
        				- If not current in list, do as above
        				, else:
        				- Just run its stuff
        
        			*/
        
        			// Unfocus text input when workarea is mousedowned.
        			(function() {
        				var inp;
        				var unfocus = function() {
        					$(inp).blur();
        				};
        
        				$('#svg_editor').find('button, select, input:not(#text)').focus(function() {
        					inp = this;
        					ui_context = 'toolbars';
        					workarea.mousedown(unfocus);
        				}).blur(function() {
        					ui_context = 'canvas';
        					workarea.unbind('mousedown', unfocus);
        					// Go back to selecting text if in textedit mode
        					if (svgCanvas.getMode() == 'textedit') {
        						$('#text').focus();
        					}
        				});
        			}());
        
        			var clickFHPath = function() {
        				if (toolButtonClick('#tool_fhpath')) {
        					svgCanvas.setMode('fhpath');
        				}
        			};
        
        			var clickLine = function() {
        				if (toolButtonClick('#tool_line')) {
        					svgCanvas.setMode('line');
        				}
        			};
        
        			var clickSquare = function() {
        				if (toolButtonClick('#tool_square')) {
        					svgCanvas.setMode('square');
        				}
        			};
        
        			var clickRect = function() {
        				if (toolButtonClick('#tool_rect')) {
        					svgCanvas.setMode('rect');
        				}
        			};
        
        			var clickFHRect = function() {
        				if (toolButtonClick('#tool_fhrect')) {
        					svgCanvas.setMode('fhrect');
        				}
        			};
        
        			var clickCircle = function() {
        				if (toolButtonClick('#tool_circle')) {
        					svgCanvas.setMode('circle');
        				}
        			};
        
        			var clickEllipse = function() {
        				if (toolButtonClick('#tool_ellipse')) {
        					svgCanvas.setMode('ellipse');
        				}
        			};
        
        			var clickFHEllipse = function() {
        				if (toolButtonClick('#tool_fhellipse')) {
        					svgCanvas.setMode('fhellipse');
        				}
        			};
        
        			var clickImage = function() {
        				if (toolButtonClick('#tool_image')) {
        					svgCanvas.setMode('image');
        				}
        			};
        
        			var clickZoom = function() {
        				if (toolButtonClick('#tool_zoom')) {
        					svgCanvas.setMode('zoom');
        					workarea.css('cursor', zoomInIcon);
        				}
        			};
        
        			var zoomImage = function(multiplier) {
        				var res = svgCanvas.getResolution();
        				multiplier = multiplier ? res.zoom * multiplier : 1;
        				// setResolution(res.w * multiplier, res.h * multiplier, true);
        				$('#zoom').val(multiplier * 100);
        				svgCanvas.setZoom(multiplier);
        				zoomDone();
        				updateCanvas(true);
        			};
        
        			var dblclickZoom = function() {
        				if (toolButtonClick('#tool_zoom')) {
        					zoomImage();
        					setSelectMode();
        				}
        			};
        
        			var clickText = function() {
        				if (toolButtonClick('#tool_text')) {
        					svgCanvas.setMode('text');
        				}
        			};
        
        			var clickPath = function() {
        				if (toolButtonClick('#tool_path')) {
        					svgCanvas.setMode('path');
        				}
        			};
        
        			// Delete is a contextual tool that only appears in the ribbon if
        			// an element has been selected
        			var deleteSelected = function() {
        				if (selectedElement != null || multiselected) {
        					svgCanvas.deleteSelectedElements();
        				}
        			};
        
        			var cutSelected = function() {
        				if (selectedElement != null || multiselected) {
        					svgCanvas.cutSelectedElements();
        				}
        			};
        
        			var copySelected = function() {
        				if (selectedElement != null || multiselected) {
        					svgCanvas.copySelectedElements();
        				}
        			};
        
        			var pasteInCenter = function() {
        				var zoom = svgCanvas.getZoom();
        				var x = (workarea[0].scrollLeft + workarea.width()/2)/zoom - svgCanvas.contentW;
        				var y = (workarea[0].scrollTop + workarea.height()/2)/zoom - svgCanvas.contentH;
        				svgCanvas.pasteElements('point', x, y);
        			};
        
        			var moveToTopSelected = function() {
        				if (selectedElement != null) {
        					svgCanvas.moveToTopSelectedElement();
        				}
        			};
        
        			var moveToBottomSelected = function() {
        				if (selectedElement != null) {
        					svgCanvas.moveToBottomSelectedElement();
        				}
        			};
        
        			var moveUpDownSelected = function(dir) {
        				if (selectedElement != null) {
        					svgCanvas.moveUpDownSelected(dir);
        				}
        			};
        
        			var convertToPath = function() {
        				if (selectedElement != null) {
        					svgCanvas.convertToPath();
        				}
        			};
        
        			var reorientPath = function() {
        				if (selectedElement != null) {
        					path.reorient();
        				}
        			};
        
        			var makeHyperlink = function() {
        				if (selectedElement != null || multiselected) {
        					$.prompt(uiStrings.notification.enterNewLinkURL, 'http://', function(url) {
        						if (url) {svgCanvas.makeHyperlink(url);}
        					});
        				}
        			};
        
        			var moveSelected = function(dx,dy) {
        				if (selectedElement != null || multiselected) {
        					if (curConfig.gridSnapping) {
        						// Use grid snap value regardless of zoom level
        						var multi = svgCanvas.getZoom() * curConfig.snappingStep;
        						dx *= multi;
        						dy *= multi;
        					}
        					svgCanvas.moveSelectedElements(dx,dy);
        				}
        			};
        
        			var linkControlPoints = function() {
        				$('#tool_node_link').toggleClass('push_button_pressed tool_button');
        				var linked = $('#tool_node_link').hasClass('push_button_pressed');
        				path.linkControlPoints(linked);
        			};
        
        			var clonePathNode = function() {
        				if (path.getNodePoint()) {
        					path.clonePathNode();
        				}
        			};
        
        			var deletePathNode = function() {
        				if (path.getNodePoint()) {
        					path.deletePathNode();
        				}
        			};
        
        			var addSubPath = function() {
        				var button = $('#tool_add_subpath');
        				var sp = !button.hasClass('push_button_pressed');
        				button.toggleClass('push_button_pressed tool_button');
        				path.addSubPath(sp);
        			};
        
        			var opencloseSubPath = function() {
        				path.opencloseSubPath();
        			};
        
        			var selectNext = function() {
        				svgCanvas.cycleElement(1);
        			};
        
        			var selectPrev = function() {
        				svgCanvas.cycleElement(0);
        			};
        
        			var rotateSelected = function(cw, step) {
        				if (selectedElement == null || multiselected) {return;}
        				if (!cw) {step *= -1;}
        				var angle = parseFloat($('#angle').val()) + step;
        				svgCanvas.setRotationAngle(angle);
        				updateContextPanel();
        			};
        
        			var clickClear = function() {
        				var dims = curConfig.dimensions;
        				$.confirm(uiStrings.notification.QwantToClear, function(ok) {
        					if (!ok) {return;}
        					setSelectMode();
        					svgCanvas.clear();
        					svgCanvas.setResolution(dims[0], dims[1]);
        					updateCanvas(true);
        					zoomImage();
        					populateLayers();
        					updateContextPanel();
        					prepPaints();
        					svgCanvas.runExtensions('onNewDocument');
        				});
        			};
        
        			var clickBold = function() {
        				svgCanvas.setBold( !svgCanvas.getBold() );
        				updateContextPanel();
        				return false;
        			};
        
        			var clickItalic = function() {
        				svgCanvas.setItalic( !svgCanvas.getItalic() );
        				updateContextPanel();
        				return false;
        			};
        
        			var clickSave = function() {
        				// In the future, more options can be provided here
        				var saveOpts = {
        					'images': $.pref('img_save'),
        					'round_digits': 6
        				};
        				svgCanvas.save(saveOpts);
        			};
        
        			var clickExport = function() {
        				$.select('Select an image type for export: ', [
        					// See http://kangax.github.io/jstests/toDataUrl_mime_type_test/ for a useful list of MIME types and browser support
        					// 'ICO', // Todo: Find a way to preserve transparency in SVG-Edit if not working presently and do full packaging for x-icon; then switch back to position after 'PNG'
        					'PNG',
        					'JPEG', 'BMP', 'WEBP', 'PDF'
        				], function (imgType) { // todo: replace hard-coded msg with uiStrings.notification.
        					if (!imgType) {
        						return;
        					}
        					// Open placeholder window (prevents popup)
        					var exportWindowName;
        					function openExportWindow () {
        						var str = uiStrings.notification.loadingImage;
        						if (curConfig.exportWindowType === 'new') {
        							editor.exportWindowCt++;
        						}
        						exportWindowName = curConfig.canvasName + editor.exportWindowCt;
        						exportWindow = window.open(
        							'data:text/html;charset=utf-8,' + encodeURIComponent('<title>' + str + '</title><h1>' + str + '</h1>'),
        							exportWindowName
        						);
        					}
        					if (imgType === 'PDF') {
        						if (!customExportPDF) {
        							openExportWindow();
        						}
        						svgCanvas.exportPDF(exportWindowName);
        					}
        					else {
        						if (!customExportImage) {
        							openExportWindow();
        						}
        						var quality = parseInt($('#image-slider').val(), 10)/100;
        						svgCanvas.rasterExport(imgType, quality, exportWindowName);
        					}
        				}, function () {
        					var sel = $(this);
        					if (sel.val() === 'JPEG' || sel.val() === 'WEBP') {
        						if (!$('#image-slider').length) {
        							$('<div><label>Quality: <input id="image-slider" type="range" min="1" max="100" value="92" /></label></div>').appendTo(sel.parent()); // Todo: i18n-ize label
        						}
        					}
        					else {
        						$('#image-slider').parent().remove();
        					}
        				});
        			};
        
        			// by default, svgCanvas.open() is a no-op.
        			// it is up to an extension mechanism (opera widget, etc)
        			// to call setCustomHandlers() which will make it do something
        			var clickOpen = function() {
        				svgCanvas.open();
        			};
        
        			var clickImport = function() {
        			};
        
        			var clickUndo = function() {
        				if (undoMgr.getUndoStackSize() > 0) {
        					undoMgr.undo();
        					populateLayers();
        				}
        			};
        
        			var clickRedo = function() {
        				if (undoMgr.getRedoStackSize() > 0) {
        					undoMgr.redo();
        					populateLayers();
        				}
        			};
        
        			var clickGroup = function() {
        				// group
        				if (multiselected) {
        					svgCanvas.groupSelectedElements();
        				}
        				// ungroup
        				else if (selectedElement) {
        					svgCanvas.ungroupSelectedElement();
        				}
        			};
        
        			var clickClone = function() {
        				svgCanvas.cloneSelectedElements(20, 20);
        			};
        
        			var clickAlign = function() {
        				var letter = this.id.replace('tool_align', '').charAt(0);
        				svgCanvas.alignSelectedElements(letter, $('#align_relative_to').val());
        			};
        
        			var clickWireframe = function() {
        				$('#tool_wireframe').toggleClass('push_button_pressed tool_button');
        				workarea.toggleClass('wireframe');
        
        				if (supportsNonSS) {return;}
        				var wf_rules = $('#wireframe_rules');
        				if (!wf_rules.length) {
        					wf_rules = $('<style id="wireframe_rules"></style>').appendTo('head');
        				} else {
        					wf_rules.empty();
        				}
        
        				updateWireFrame();
        			};
        
        			$('#svg_docprops_container, #svg_prefs_container').draggable({cancel: 'button,fieldset', containment: 'window'});
        
        			var showDocProperties = function() {
        				if (docprops) {return;}
        				docprops = true;
        
        				// This selects the correct radio button by using the array notation
        				$('#image_save_opts input').val([$.pref('img_save')]);
        
        				// update resolution option with actual resolution
        				var res = svgCanvas.getResolution();
        				if (curConfig.baseUnit !== 'px') {
        					res.w = svgedit.units.convertUnit(res.w) + curConfig.baseUnit;
        					res.h = svgedit.units.convertUnit(res.h) + curConfig.baseUnit;
        				}
        
        				$('#canvas_width').val(res.w);
        				$('#canvas_height').val(res.h);
        				$('#canvas_title').val(svgCanvas.getDocumentTitle());
        
        				$('#svg_docprops').show();
        			};
        
        			var showPreferences = function() {
        				if (preferences) {return;}
        				preferences = true;
        				$('#main_menu').hide();
        
        				// Update background color with current one
        				var blocks = $('#bg_blocks div');
        				var cur_bg = 'cur_background';
        				var canvas_bg = curPrefs.bkgd_color;
        				var url = $.pref('bkgd_url');
        				blocks.each(function() {
        					var blk = $(this);
        					var is_bg = blk.css('background-color') == canvas_bg;
        					blk.toggleClass(cur_bg, is_bg);
        					if (is_bg) {$('#canvas_bg_url').removeClass(cur_bg);}
        				});
        				if (!canvas_bg) {blocks.eq(0).addClass(cur_bg);}
        				if (url) {
        					$('#canvas_bg_url').val(url);
        				}
        				$('#grid_snapping_on').prop('checked', curConfig.gridSnapping);
        				$('#grid_snapping_step').attr('value', curConfig.snappingStep);
        				$('#grid_color').attr('value', curConfig.gridColor);
        
        				$('#svg_prefs').show();
        			};
        
        			var hideSourceEditor = function() {
        				$('#svg_source_editor').hide();
        				editingsource = false;
        				$('#svg_source_textarea').blur();
        			};
        
        			var saveSourceEditor = function() {
        				if (!editingsource) {return;}
        
        				var saveChanges = function() {
        					svgCanvas.clearSelection();
        					hideSourceEditor();
        					zoomImage();
        					populateLayers();
        					updateTitle();
        					prepPaints();
        				};
        
        				if (!svgCanvas.setSvgString($('#svg_source_textarea').val())) {
        					$.confirm(uiStrings.notification.QerrorsRevertToSource, function(ok) {
        						if (!ok) {return false;}
        						saveChanges();
        					});
        				} else {
        					saveChanges();
        				}
        				setSelectMode();
        			};
        
        			var hideDocProperties = function() {
        				$('#svg_docprops').hide();
        				$('#canvas_width,#canvas_height').removeAttr('disabled');
        				$('#resolution')[0].selectedIndex = 0;
        				$('#image_save_opts input').val([$.pref('img_save')]);
        				docprops = false;
        			};
        
        			var hidePreferences = function() {
        				$('#svg_prefs').hide();
        				preferences = false;
        			};
        
        			var saveDocProperties = function() {
        				// set title
        				var newTitle = $('#canvas_title').val();
        				updateTitle(newTitle);
        				svgCanvas.setDocumentTitle(newTitle);
        
        				// update resolution
        				var width = $('#canvas_width'), w = width.val();
        				var height = $('#canvas_height'), h = height.val();
        
        				if (w != 'fit' && !svgedit.units.isValidUnit('width', w)) {
        					$.alert(uiStrings.notification.invalidAttrValGiven);
        					width.parent().addClass('error');
        					return false;
        				}
        
        				width.parent().removeClass('error');
        
        				if (h != 'fit' && !svgedit.units.isValidUnit('height', h)) {
        					$.alert(uiStrings.notification.invalidAttrValGiven);
        					height.parent().addClass('error');
        					return false;
        				}
        
        				height.parent().removeClass('error');
        
        				if (!svgCanvas.setResolution(w, h)) {
        					$.alert(uiStrings.notification.noContentToFitTo);
        					return false;
        				}
        
        				// Set image save option
        				$.pref('img_save', $('#image_save_opts :checked').val());
        				updateCanvas();
        				hideDocProperties();
        			};
        
        			var savePreferences = editor.savePreferences = function() {
        				// Set background
        				var color = $('#bg_blocks div.cur_background').css('background-color') || '#FFF';
        				setBackground(color, $('#canvas_bg_url').val());
        
        				// set language
        				var lang = $('#lang_select').val();
        				if (lang !== $.pref('lang')) {
        					editor.putLocale(lang, good_langs);
        				}
        
        				// set icon size
        				setIconSize($('#iconsize').val());
        
        				// set grid setting
        				curConfig.gridSnapping = $('#grid_snapping_on')[0].checked;
        				curConfig.snappingStep = $('#grid_snapping_step').val();
        				curConfig.gridColor = $('#grid_color').val();
        				curConfig.showRulers = $('#show_rulers')[0].checked;
        
        				$('#rulers').toggle(curConfig.showRulers);
        				if (curConfig.showRulers) {updateRulers();}
        				curConfig.baseUnit = $('#base_unit').val();
        
        				svgCanvas.setConfig(curConfig);
        
        				updateCanvas();
        				hidePreferences();
        			};
        
        			var resetScrollPos = $.noop;
        
        			var cancelOverlays = function() {
        				$('#dialog_box').hide();
        				if (!editingsource && !docprops && !preferences) {
        					if (cur_context) {
        						svgCanvas.leaveContext();
        					}
        					return;
        				}
        
        				if (editingsource) {
        					if (origSource !== $('#svg_source_textarea').val()) {
        						$.confirm(uiStrings.notification.QignoreSourceChanges, function(ok) {
        							if (ok) {hideSourceEditor();}
        						});
        					} else {
        						hideSourceEditor();
        					}
        				} else if (docprops) {
        					hideDocProperties();
        				} else if (preferences) {
        					hidePreferences();
        				}
        				resetScrollPos();
        			};
        
        			var win_wh = {width:$(window).width(), height:$(window).height()};
        
        			// Fix for Issue 781: Drawing area jumps to top-left corner on window resize (IE9)
        			if (svgedit.browser.isIE()) {
        				(function() {
        					resetScrollPos = function() {
        						if (workarea[0].scrollLeft === 0 && workarea[0].scrollTop === 0) {
        							workarea[0].scrollLeft = curScrollPos.left;
        							workarea[0].scrollTop = curScrollPos.top;
        						}
        					};
        
        					curScrollPos = {
        						left: workarea[0].scrollLeft,
        						top: workarea[0].scrollTop
        					};
        
        					$(window).resize(resetScrollPos);
        					editor.ready(function() {
        						// TODO: Find better way to detect when to do this to minimize
        						// flickering effect
        						setTimeout(function() {
        							resetScrollPos();
        						}, 500);
        					});
        
        					workarea.scroll(function() {
        						curScrollPos = {
        							left: workarea[0].scrollLeft,
        							top: workarea[0].scrollTop
        						};
        					});
        				}());
        			}
        
        			$(window).resize(function(evt) {
        				$.each(win_wh, function(type, val) {
        					var curval = $(window)[type]();
        					workarea[0]['scroll' + (type === 'width' ? 'Left' : 'Top')] -= (curval - val)/2;
        					win_wh[type] = curval;
        				});
        				setFlyoutPositions();
        			});
        
        			(function() {
        				workarea.scroll(function() {
        					// TODO: jQuery's scrollLeft/Top() wouldn't require a null check
        					if ($('#ruler_x').length != 0) {
        						$('#ruler_x')[0].scrollLeft = workarea[0].scrollLeft;
        					}
        					if ($('#ruler_y').length != 0) {
        						$('#ruler_y')[0].scrollTop = workarea[0].scrollTop;
        					}
        				});
        
        			}());
        
        			$('#url_notice').click(function() {
        				$.alert(this.title);
        			});
        
        			$('#change_image_url').click(promptImgURL);
        
        			// added these event handlers for all the push buttons so they
        			// behave more like buttons being pressed-in and not images
        			(function() {
        				var toolnames = ['clear', 'open', 'save', 'source', 'delete', 'delete_multi', 'paste', 'clone', 'clone_multi', 'move_top', 'move_bottom'];
        				var all_tools = '';
        				var cur_class = 'tool_button_current';
        
        				$.each(toolnames, function(i, item) {
        					all_tools += (i ? ',' : '') + '#tool_' + item;
        				});
        
        				$(all_tools).mousedown(function() {
        					$(this).addClass(cur_class);
        				}).bind('mousedown mouseout', function() {
        					$(this).removeClass(cur_class);
        				});
        
        				$('#tool_undo, #tool_redo').mousedown(function() {
        					if (!$(this).hasClass('disabled')) {$(this).addClass(cur_class);}
        				}).bind('mousedown mouseout',function() {
        					$(this).removeClass(cur_class);}
        				);
        			}());
        
        			// switch modifier key in tooltips if mac
        			// NOTE: This code is not used yet until I can figure out how to successfully bind ctrl/meta
        			// in Opera and Chrome
        			if (svgedit.browser.isMac() && !window.opera) {
        				var shortcutButtons = ['tool_clear', 'tool_save', 'tool_source', 'tool_undo', 'tool_redo', 'tool_clone'];
        				i = shortcutButtons.length;
        				while (i--) {
        					var button = document.getElementById(shortcutButtons[i]);
        					if (button) {
        						var title = button.title;
        						var index = title.indexOf('Ctrl+');
        						button.title = [title.substr(0, index), 'Cmd+', title.substr(index + 5)].join('');
        					}
        				}
        			}
        
        			// TODO: go back to the color boxes having white background-color and then setting
        			//	background-image to none.png (otherwise partially transparent gradients look weird)
        			var colorPicker = function(elem) {
        				var picker = elem.attr('id') == 'stroke_color' ? 'stroke' : 'fill';
        //				var opacity = (picker == 'stroke' ? $('#stroke_opacity') : $('#fill_opacity'));
        				var paint = paintBox[picker].paint;
        				var title = (picker == 'stroke' ? 'Pick a Stroke Paint and Opacity' : 'Pick a Fill Paint and Opacity');
        				// var was_none = false; // Currently unused
        				var pos = elem.offset();
        				$('#color_picker')
        					.draggable({cancel: '.jGraduate_tabs, .jGraduate_colPick, .jGraduate_gradPick, .jPicker', containment: 'window'})
        					.css(curConfig.colorPickerCSS || {'left': pos.left - 140, 'bottom': 40})
        					.jGraduate(
        					{
        						paint: paint,
        						window: { pickerTitle: title },
        						images: { clientPath: curConfig.jGraduatePath },
        						newstop: 'inverse'
        					},
        					function(p) {
        						paint = new $.jGraduate.Paint(p);
        						paintBox[picker].setPaint(paint);
        						svgCanvas.setPaint(picker, paint);
        						$('#color_picker').hide();
        					},
        					function() {
        						$('#color_picker').hide();
        					});
        			};
        
        			var PaintBox = function(container, type) {
        				var paintColor, paintOpacity,
        					cur = curConfig[type === 'fill' ? 'initFill' : 'initStroke'];
        				// set up gradients to be used for the buttons
        				var svgdocbox = new DOMParser().parseFromString(
        					'<svg xmlns="http://www.w3.org/2000/svg"><rect width="16.5" height="16.5"'+
        '					fill="#' + cur.color + '" opacity="' + cur.opacity + '"/>'+
        '					<defs><linearGradient id="gradbox_"/></defs></svg>', 'text/xml');
        				var docElem = svgdocbox.documentElement;
        
        				docElem = $(container)[0].appendChild(document.importNode(docElem, true));
        				docElem.setAttribute('width',16.5);
        
        				this.rect = docElem.firstChild;
        				this.defs = docElem.getElementsByTagName('defs')[0];
        				this.grad = this.defs.firstChild;
        				this.paint = new $.jGraduate.Paint({solidColor: cur.color});
        				this.type = type;
        
        				this.setPaint = function(paint, apply) {
        					this.paint = paint;
        
        					var fillAttr = 'none';
        					var ptype = paint.type;
        					var opac = paint.alpha / 100;
        
        					switch ( ptype ) {
        						case 'solidColor':
        							fillAttr = (paint[ptype] != 'none') ? '#' + paint[ptype] : paint[ptype];
        							break;
        						case 'linearGradient':
        						case 'radialGradient':
        							this.defs.removeChild(this.grad);
        							this.grad = this.defs.appendChild(paint[ptype]);
        							var id = this.grad.id = 'gradbox_' + this.type;
        							fillAttr = 'url(#' + id + ')';
        							break;
        					}
        
        					this.rect.setAttribute('fill', fillAttr);
        					this.rect.setAttribute('opacity', opac);
        
        					if (apply) {
        						svgCanvas.setColor(this.type, paintColor, true);
        						svgCanvas.setPaintOpacity(this.type, paintOpacity, true);
        					}
        				};
        
        				this.update = function(apply) {
        					if (!selectedElement) {return;}
        					var i, len;
        					var type = this.type;
        					switch (selectedElement.tagName) {
        					case 'use':
        					case 'image':
        					case 'foreignObject':
        						// These elements don't have fill or stroke, so don't change
        						// the current value
        						return;
        					case 'g':
        					case 'a':
        						var gPaint = null;
        
        						var childs = selectedElement.getElementsByTagName('*');
        						for (i = 0, len = childs.length; i < len; i++) {
        							var elem = childs[i];
        							var p = elem.getAttribute(type);
        							if (i === 0) {
        								gPaint = p;
        							} else if (gPaint !== p) {
        								gPaint = null;
        								break;
        							}
        						}
        
        						if (gPaint === null) {
        							// No common color, don't update anything
        							paintColor = null;
        							return;
        						}
        						paintColor = gPaint;
        						paintOpacity = 1;
        						break;
        					default:
        						paintOpacity = parseFloat(selectedElement.getAttribute(type + '-opacity'));
        						if (isNaN(paintOpacity)) {
        							paintOpacity = 1.0;
        						}
        
        						var defColor = type === 'fill' ? 'black' : 'none';
        						paintColor = selectedElement.getAttribute(type) || defColor;
        					}
        
        					if (apply) {
        						svgCanvas.setColor(type, paintColor, true);
        						svgCanvas.setPaintOpacity(type, paintOpacity, true);
        					}
        
        					paintOpacity *= 100;
        
        					var paint = getPaint(paintColor, paintOpacity, type);
        					// update the rect inside #fill_color/#stroke_color
        					this.setPaint(paint);
        				};
        
        				this.prep = function() {
        					var ptype = this.paint.type;
        
        					switch ( ptype ) {
        						case 'linearGradient':
        						case 'radialGradient':
        							var paint = new $.jGraduate.Paint({copy: this.paint});
        							svgCanvas.setPaint(type, paint);
        							break;
        					}
        				};
        			};
        
        			paintBox.fill = new PaintBox('#fill_color', 'fill');
        			paintBox.stroke = new PaintBox('#stroke_color', 'stroke');
        
        			$('#stroke_width').val(curConfig.initStroke.width);
        			$('#group_opacity').val(curConfig.initOpacity * 100);
        
        			// Use this SVG elem to test vectorEffect support
        			var testEl = paintBox.fill.rect.cloneNode(false);
        			testEl.setAttribute('style', 'vector-effect:non-scaling-stroke');
        			supportsNonSS = (testEl.style.vectorEffect === 'non-scaling-stroke');
        			testEl.removeAttribute('style');
        			var svgdocbox = paintBox.fill.rect.ownerDocument;
        			// Use this to test support for blur element. Seems to work to test support in Webkit
        			var blurTest = svgdocbox.createElementNS(svgedit.NS.SVG, 'feGaussianBlur');
        			if (blurTest.stdDeviationX === undefined) {
        				$('#tool_blur').hide();
        			}
        			$(blurTest).remove();
        
        			// Test for zoom icon support
        			(function() {
        				var pre = '-' + uaPrefix.toLowerCase() + '-zoom-';
        				var zoom = pre + 'in';
        				workarea.css('cursor', zoom);
        				if (workarea.css('cursor') === zoom) {
        					zoomInIcon = zoom;
        					zoomOutIcon = pre + 'out';
        				}
        				workarea.css('cursor', 'auto');
        			}());
        
        			// Test for embedImage support (use timeout to not interfere with page load)
        			setTimeout(function() {
        				svgCanvas.embedImage('images/logo.png', function(datauri) {
        					if (!datauri) {
        						// Disable option
        						$('#image_save_opts [value=embed]').attr('disabled', 'disabled');
        						$('#image_save_opts input').val(['ref']);
        						$.pref('img_save', 'ref');
        						$('#image_opt_embed').css('color', '#666').attr('title', uiStrings.notification.featNotSupported);
        					}
        				});
        			}, 1000);
        
        			$('#fill_color, #tool_fill .icon_label').click(function() {
        				colorPicker($('#fill_color'));
        				updateToolButtonState();
        			});
        
        			$('#stroke_color, #tool_stroke .icon_label').click(function() {
        				colorPicker($('#stroke_color'));
        				updateToolButtonState();
        			});
        
        			$('#group_opacityLabel').click(function() {
        				$('#opacity_dropdown button').mousedown();
        				$(window).mouseup();
        			});
        
        			$('#zoomLabel').click(function() {
        				$('#zoom_dropdown button').mousedown();
        				$(window).mouseup();
        			});
        
        			$('#tool_move_top').mousedown(function(evt) {
        				$('#tools_stacking').show();
        				evt.preventDefault();
        			});
        
        			$('.layer_button').mousedown(function() {
        				$(this).addClass('layer_buttonpressed');
        			}).mouseout(function() {
        				$(this).removeClass('layer_buttonpressed');
        			}).mouseup(function() {
        				$(this).removeClass('layer_buttonpressed');
        			});
        
        			$('.push_button').mousedown(function() {
        				if (!$(this).hasClass('disabled')) {
        					$(this).addClass('push_button_pressed').removeClass('push_button');
        				}
        			}).mouseout(function() {
        				$(this).removeClass('push_button_pressed').addClass('push_button');
        			}).mouseup(function() {
        				$(this).removeClass('push_button_pressed').addClass('push_button');
        			});
        
        			// ask for a layer name
        			$('#layer_new').click(function() {
        				var uniqName,
        					i = svgCanvas.getCurrentDrawing().getNumLayers();
        				do {
        					uniqName = uiStrings.layers.layer + ' ' + (++i);
        				} while(svgCanvas.getCurrentDrawing().hasLayer(uniqName));
        
        				$.prompt(uiStrings.notification.enterUniqueLayerName, uniqName, function(newName) {
        					if (!newName) {return;}
        					if (svgCanvas.getCurrentDrawing().hasLayer(newName)) {
        						$.alert(uiStrings.notification.dupeLayerName);
        						return;
        					}
        					svgCanvas.createLayer(newName);
        					updateContextPanel();
        					populateLayers();
        				});
        			});
        
        			function deleteLayer() {
        				if (svgCanvas.deleteCurrentLayer()) {
        					updateContextPanel();
        					populateLayers();
        					// This matches what SvgCanvas does
        					// TODO: make this behavior less brittle (svg-editor should get which
        					// layer is selected from the canvas and then select that one in the UI)
        					$('#layerlist tr.layer').removeClass('layersel');
        					$('#layerlist tr.layer:first').addClass('layersel');
        				}
        			}
        
        			function cloneLayer() {
        				var name = svgCanvas.getCurrentDrawing().getCurrentLayerName() + ' copy';
        
        				$.prompt(uiStrings.notification.enterUniqueLayerName, name, function(newName) {
        					if (!newName) {return;}
        					if (svgCanvas.getCurrentDrawing().hasLayer(newName)) {
        						$.alert(uiStrings.notification.dupeLayerName);
        						return;
        					}
        					svgCanvas.cloneLayer(newName);
        					updateContextPanel();
        					populateLayers();
        				});
        			}
        
        			function mergeLayer() {
        				if ($('#layerlist tr.layersel').index() == svgCanvas.getCurrentDrawing().getNumLayers()-1) {
        					return;
        				}
        				svgCanvas.mergeLayer();
        				updateContextPanel();
        				populateLayers();
        			}
        
        			function moveLayer(pos) {
        				var curIndex = $('#layerlist tr.layersel').index();
        				var total = svgCanvas.getCurrentDrawing().getNumLayers();
        				if (curIndex > 0 || curIndex < total-1) {
        					curIndex += pos;
        					svgCanvas.setCurrentLayerPosition(total-curIndex-1);
        					populateLayers();
        				}
        			}
        
        			$('#layer_delete').click(deleteLayer);
        
        			$('#layer_up').click(function() {
        				moveLayer(-1);
        			});
        
        			$('#layer_down').click(function() {
        				moveLayer(1);
        			});
        
        			$('#layer_rename').click(function() {
        				// var curIndex = $('#layerlist tr.layersel').prevAll().length; // Currently unused
        				var oldName = $('#layerlist tr.layersel td.layername').text();
        				$.prompt(uiStrings.notification.enterNewLayerName, '', function(newName) {
        					if (!newName) {return;}
        					if (oldName == newName || svgCanvas.getCurrentDrawing().hasLayer(newName)) {
        						$.alert(uiStrings.notification.layerHasThatName);
        						return;
        					}
        
        					svgCanvas.renameCurrentLayer(newName);
        					populateLayers();
        				});
        			});
        
        			var SIDEPANEL_MAXWIDTH = 300;
        			var SIDEPANEL_OPENWIDTH = 150;
        			var sidedrag = -1, sidedragging = false, allowmove = false;
        
        			var changeSidePanelWidth = function(delta) {
        				var rulerX = $('#ruler_x');
        				$('#sidepanels').width('+=' + delta);
        				$('#layerpanel').width('+=' + delta);
        				rulerX.css('right', parseInt(rulerX.css('right'), 10) + delta);
        				workarea.css('right', parseInt(workarea.css('right'), 10) + delta);
        				svgCanvas.runExtensions('workareaResized');
        			};
        
        			var resizeSidePanel = function(evt) {
        				if (!allowmove) {return;}
        				if (sidedrag == -1) {return;}
        				sidedragging = true;
        				var deltaX = sidedrag - evt.pageX;
        				var sideWidth = $('#sidepanels').width();
        				if (sideWidth + deltaX > SIDEPANEL_MAXWIDTH) {
        					deltaX = SIDEPANEL_MAXWIDTH - sideWidth;
        					sideWidth = SIDEPANEL_MAXWIDTH;
        				} else if (sideWidth + deltaX < 2) {
        					deltaX = 2 - sideWidth;
        					sideWidth = 2;
        				}
        				if (deltaX == 0) {return;}
        				sidedrag -= deltaX;
        				changeSidePanelWidth(deltaX);
        			};
        
        			// if width is non-zero, then fully close it, otherwise fully open it
        			// the optional close argument forces the side panel closed
        			var toggleSidePanel = function(close) {
        				var w = $('#sidepanels').width();
        				var deltaX = (w > 2 || close ? 2 : SIDEPANEL_OPENWIDTH) - w;
        				changeSidePanelWidth(deltaX);
        			};
        
        			$('#sidepanel_handle')
        				.mousedown(function(evt) {
        					sidedrag = evt.pageX;
        					$(window).mousemove(resizeSidePanel);
        					allowmove = false;
        					// Silly hack for Chrome, which always runs mousemove right after mousedown
        					setTimeout(function() {
        						allowmove = true;
        					}, 20);
        				})
        				.mouseup(function(evt) {
        					if (!sidedragging) {toggleSidePanel();}
        					sidedrag = -1;
        					sidedragging = false;
        				});
        
        			$(window).mouseup(function() {
        				sidedrag = -1;
        				sidedragging = false;
        				$('#svg_editor').unbind('mousemove', resizeSidePanel);
        			});
        
        			populateLayers();
        
        		//	function changeResolution(x,y) {
        		//		var zoom = svgCanvas.getResolution().zoom;
        		//		setResolution(x * zoom, y * zoom);
        		//	}
        
        			var centerCanvas = function() {
        				// this centers the canvas vertically in the workarea (horizontal handled in CSS)
        				workarea.css('line-height', workarea.height() + 'px');
        			};
        
        			$(window).bind('load resize', centerCanvas);
        
        			function stepFontSize(elem, step) {
        				var orig_val = Number(elem.value);
        				var sug_val = orig_val + step;
        				var increasing = sug_val >= orig_val;
        				if (step === 0) {return orig_val;}
        
        				if (orig_val >= 24) {
        					if (increasing) {
        						return Math.round(orig_val * 1.1);
        					}
        					return Math.round(orig_val / 1.1);
        				}
        				if (orig_val <= 1) {
        					if (increasing) {
        						return orig_val * 2;
        					}
        					return orig_val / 2;
        				}
        				return sug_val;
        			}
        
        			function stepZoom(elem, step) {
        				var orig_val = Number(elem.value);
        				if (orig_val === 0) {return 100;}
        				var sug_val = orig_val + step;
        				if (step === 0) {return orig_val;}
        
        				if (orig_val >= 100) {
        					return sug_val;
        				}
        				if (sug_val >= orig_val) {
        					return orig_val * 2;
        				}
        				return orig_val / 2;
        			}
        
        		//	function setResolution(w, h, center) {
        		//		updateCanvas();
        		// //		w-=0; h-=0;
        		// //		$('#svgcanvas').css( { 'width': w, 'height': h } );
        		// //		$('#canvas_width').val(w);
        		// //		$('#canvas_height').val(h);
        		// //
        		// //		if (center) {
        		// //			var w_area = workarea;
        		// //			var scroll_y = h/2 - w_area.height()/2;
        		// //			var scroll_x = w/2 - w_area.width()/2;
        		// //			w_area[0].scrollTop = scroll_y;
        		// //			w_area[0].scrollLeft = scroll_x;
        		// //		}
        		//	}
        
        			$('#resolution').change(function() {
        				var wh = $('#canvas_width,#canvas_height');
        				if (!this.selectedIndex) {
        					if ($('#canvas_width').val() == 'fit') {
        						wh.removeAttr('disabled').val(100);
        					}
        				} else if (this.value == 'content') {
        					wh.val('fit').attr('disabled', 'disabled');
        				} else {
        					var dims = this.value.split('x');
        					$('#canvas_width').val(dims[0]);
        					$('#canvas_height').val(dims[1]);
        					wh.removeAttr('disabled');
        				}
        			});
        
        			//Prevent browser from erroneously repopulating fields
        			$('input,select').attr('autocomplete', 'off');
        
        			// Associate all button actions as well as non-button keyboard shortcuts
        			Actions = (function() {
        				// sel:'selector', fn:function, evt:'event', key:[key, preventDefault, NoDisableInInput]
        				var tool_buttons = [
        					{sel: '#tool_select', fn: clickSelect, evt: 'click', key: ['V', true]},
        					{sel: '#tool_fhpath', fn: clickFHPath, evt: 'click', key: ['Q', true]},
        					{sel: '#tool_line', fn: clickLine, evt: 'click', key: ['L', true]},
        					{sel: '#tool_rect', fn: clickRect, evt: 'mouseup', key: ['R', true], parent: '#tools_rect', icon: 'rect'},
        					{sel: '#tool_square', fn: clickSquare, evt: 'mouseup', parent: '#tools_rect', icon: 'square'},
        					{sel: '#tool_fhrect', fn: clickFHRect, evt: 'mouseup', parent: '#tools_rect', icon: 'fh_rect'},
        					{sel: '#tool_ellipse', fn: clickEllipse, evt: 'mouseup', key: ['E', true], parent: '#tools_ellipse', icon: 'ellipse'},
        					{sel: '#tool_circle', fn: clickCircle, evt: 'mouseup', parent: '#tools_ellipse', icon: 'circle'},
        					{sel: '#tool_fhellipse', fn: clickFHEllipse, evt: 'mouseup', parent: '#tools_ellipse', icon: 'fh_ellipse'},
        					{sel: '#tool_path', fn: clickPath, evt: 'click', key: ['P', true]},
        					{sel: '#tool_text', fn: clickText, evt: 'click', key: ['T', true]},
        					{sel: '#tool_image', fn: clickImage, evt: 'mouseup'},
        					{sel: '#tool_zoom', fn: clickZoom, evt: 'mouseup', key: ['Z', true]},
        					{sel: '#tool_clear', fn: clickClear, evt: 'mouseup', key: ['N', true]},
        					{sel: '#tool_save', fn: function() {
        						if (editingsource) {
        							saveSourceEditor();
        						}
        						else {
        							clickSave();
        						}
        					}, evt: 'mouseup', key: ['S', true]},
        					{sel: '#tool_export', fn: clickExport, evt: 'mouseup'},
        					{sel: '#tool_open', fn: clickOpen, evt: 'mouseup', key: ['O', true]},
        					{sel: '#tool_import', fn: clickImport, evt: 'mouseup'},
        					{sel: '#tool_source', fn: showSourceEditor, evt: 'click', key: ['U', true]},
        					{sel: '#tool_wireframe', fn: clickWireframe, evt: 'click', key: ['F', true]},
        					{sel: '#tool_source_cancel,.overlay,#tool_docprops_cancel,#tool_prefs_cancel', fn: cancelOverlays, evt: 'click', key: ['esc', false, false], hidekey: true},
        					{sel: '#tool_source_save', fn: saveSourceEditor, evt: 'click'},
        					{sel: '#tool_docprops_save', fn: saveDocProperties, evt: 'click'},
        					{sel: '#tool_docprops', fn: showDocProperties, evt: 'mouseup'},
        					{sel: '#tool_prefs_save', fn: savePreferences, evt: 'click'},
        					{sel: '#tool_prefs_option', fn: function() {showPreferences(); return false;}, evt: 'mouseup'},
        					{sel: '#tool_delete,#tool_delete_multi', fn: deleteSelected, evt: 'click', key: ['del/backspace', true]},
        					{sel: '#tool_reorient', fn: reorientPath, evt: 'click'},
        					{sel: '#tool_node_link', fn: linkControlPoints, evt: 'click'},
        					{sel: '#tool_node_clone', fn: clonePathNode, evt: 'click'},
        					{sel: '#tool_node_delete', fn: deletePathNode, evt: 'click'},
        					{sel: '#tool_openclose_path', fn: opencloseSubPath, evt: 'click'},
        					{sel: '#tool_add_subpath', fn: addSubPath, evt: 'click'},
        					{sel: '#tool_move_top', fn: moveToTopSelected, evt: 'click', key: 'ctrl+shift+]'},
        					{sel: '#tool_move_bottom', fn: moveToBottomSelected, evt: 'click', key: 'ctrl+shift+['},
        					{sel: '#tool_topath', fn: convertToPath, evt: 'click'},
        					{sel: '#tool_make_link,#tool_make_link_multi', fn: makeHyperlink, evt: 'click'},
        					{sel: '#tool_undo', fn: clickUndo, evt: 'click', key: ['Z', true]},
        					{sel: '#tool_redo', fn: clickRedo, evt: 'click', key: ['Y', true]},
        					{sel: '#tool_clone,#tool_clone_multi', fn: clickClone, evt: 'click', key: ['D', true]},
        					{sel: '#tool_group_elements', fn: clickGroup, evt: 'click', key: ['G', true]},
        					{sel: '#tool_ungroup', fn: clickGroup, evt: 'click'},
        					{sel: '#tool_unlink_use', fn: clickGroup, evt: 'click'},
        					{sel: '[id^=tool_align]', fn: clickAlign, evt: 'click'},
        					// these two lines are required to make Opera work properly with the flyout mechanism
        		//			{sel: '#tools_rect_show', fn: clickRect, evt: 'click'},
        		//			{sel: '#tools_ellipse_show', fn: clickEllipse, evt: 'click'},
        					{sel: '#tool_bold', fn: clickBold, evt: 'mousedown'},
        					{sel: '#tool_italic', fn: clickItalic, evt: 'mousedown'},
        					{sel: '#sidepanel_handle', fn: toggleSidePanel, key: ['X']},
        					{sel: '#copy_save_done', fn: cancelOverlays, evt: 'click'},
        
        					// Shortcuts not associated with buttons
        
        					{key: 'ctrl+left', fn: function(){rotateSelected(0,1);}},
        					{key: 'ctrl+right', fn: function(){rotateSelected(1,1);}},
        					{key: 'ctrl+shift+left', fn: function(){rotateSelected(0,5);}},
        					{key: 'ctrl+shift+right', fn: function(){rotateSelected(1,5);}},
        					{key: 'shift+O', fn: selectPrev},
        					{key: 'shift+P', fn: selectNext},
        					{key: [modKey+'up', true], fn: function(){zoomImage(2);}},
        					{key: [modKey+'down', true], fn: function(){zoomImage(0.5);}},
        					{key: [modKey+']', true], fn: function(){moveUpDownSelected('Up');}},
        					{key: [modKey+'[', true], fn: function(){moveUpDownSelected('Down');}},
        					{key: ['up', true], fn: function(){moveSelected(0,-1);}},
        					{key: ['down', true], fn: function(){moveSelected(0,1);}},
        					{key: ['left', true], fn: function(){moveSelected(-1,0);}},
        					{key: ['right', true], fn: function(){moveSelected(1,0);}},
        					{key: 'shift+up', fn: function(){moveSelected(0,-10);}},
        					{key: 'shift+down', fn: function(){moveSelected(0,10);}},
        					{key: 'shift+left', fn: function(){moveSelected(-10,0);}},
        					{key: 'shift+right', fn: function(){moveSelected(10,0);}},
        					{key: ['alt+up', true], fn: function(){svgCanvas.cloneSelectedElements(0,-1);}},
        					{key: ['alt+down', true], fn: function(){svgCanvas.cloneSelectedElements(0,1);}},
        					{key: ['alt+left', true], fn: function(){svgCanvas.cloneSelectedElements(-1,0);}},
        					{key: ['alt+right', true], fn: function(){svgCanvas.cloneSelectedElements(1,0);}},
        					{key: ['alt+shift+up', true], fn: function(){svgCanvas.cloneSelectedElements(0,-10);}},
        					{key: ['alt+shift+down', true], fn: function(){svgCanvas.cloneSelectedElements(0,10);}},
        					{key: ['alt+shift+left', true], fn: function(){svgCanvas.cloneSelectedElements(-10,0);}},
        					{key: ['alt+shift+right', true], fn: function(){svgCanvas.cloneSelectedElements(10,0);}},
        					{key: 'A', fn: function(){svgCanvas.selectAllInCurrentLayer();}},
        
        					// Standard shortcuts
        					{key: modKey+'z', fn: clickUndo},
        					{key: modKey + 'shift+z', fn: clickRedo},
        					{key: modKey + 'y', fn: clickRedo},
        
        					{key: modKey+'x', fn: cutSelected},
        					{key: modKey+'c', fn: copySelected},
        					{key: modKey+'v', fn: pasteInCenter}
        				];
        
        				// Tooltips not directly associated with a single function
        				var key_assocs = {
        					'4/Shift+4': '#tools_rect_show',
        					'5/Shift+5': '#tools_ellipse_show'
        				};
        
        				return {
        					setAll: function() {
        						var flyouts = {};
        
        						$.each(tool_buttons, function(i, opts) {
        							// Bind function to button
        							var btn;
        							if (opts.sel) {
        								btn = $(opts.sel);
        								if (btn.length == 0) {return true;} // Skip if markup does not exist
        								if (opts.evt) {
        									if (svgedit.browser.isTouch() && opts.evt === 'click') {
        										opts.evt = 'mousedown';
        									}
        									btn[opts.evt](opts.fn);
        								}
        
        								// Add to parent flyout menu, if able to be displayed
        								if (opts.parent && $(opts.parent + '_show').length != 0) {
        									var f_h = $(opts.parent);
        									if (!f_h.length) {
        										f_h = makeFlyoutHolder(opts.parent.substr(1));
        									}
        
        									f_h.append(btn);
        
        									if (!$.isArray(flyouts[opts.parent])) {
        										flyouts[opts.parent] = [];
        									}
        									flyouts[opts.parent].push(opts);
        								}
        							}
        
        							// Bind function to shortcut key
        							if (opts.key) {
        								// Set shortcut based on options
        								var keyval, disInInp = true, fn = opts.fn, pd = false;
        								if ($.isArray(opts.key)) {
        									keyval = opts.key[0];
        									if (opts.key.length > 1) {pd = opts.key[1];}
        									if (opts.key.length > 2) {disInInp = opts.key[2];}
        								} else {
        									keyval = opts.key;
        								}
        								keyval += '';
        
        								$.each(keyval.split('/'), function(i, key) {
        									$(document).bind('keydown', key, function(e) {
        										fn();
        										if (pd) {
        											e.preventDefault();
        										}
        										// Prevent default on ALL keys?
        										return false;
        									});
        								});
        
        								// Put shortcut in title
        								if (opts.sel && !opts.hidekey && btn.attr('title')) {
        									var newTitle = btn.attr('title').split('[')[0] + ' (' + keyval + ')';
        									key_assocs[keyval] = opts.sel;
        									// Disregard for menu items
        									if (!btn.parents('#main_menu').length) {
        										btn.attr('title', newTitle);
        									}
        								}
        							}
        						});
        
        						// Setup flyouts
        						setupFlyouts(flyouts);
        
        						// Misc additional actions
        
        						// Make 'return' keypress trigger the change event
        						$('.attr_changer, #image_url').bind('keydown', 'return',
        							function(evt) {$(this).change();evt.preventDefault();}
        						);
        
        						$(window).bind('keydown', 'tab', function(e) {
        							if (ui_context === 'canvas') {
        								e.preventDefault();
        								selectNext();
        							}
        						}).bind('keydown', 'shift+tab', function(e) {
        							if (ui_context === 'canvas') {
        								e.preventDefault();
        								selectPrev();
        							}
        						});
        
        						$('#tool_zoom').dblclick(dblclickZoom);
        					},
        					setTitles: function() {
        						$.each(key_assocs, function(keyval, sel) {
        							var menu = ($(sel).parents('#main_menu').length);
        
        							$(sel).each(function() {
        								var t;
        								if (menu) {
        									t = $(this).text().split(' [')[0];
        								} else {
        									t = this.title.split(' [')[0];
        								}
        								var key_str = '';
        								// Shift+Up
        								$.each(keyval.split('/'), function(i, key) {
        									var mod_bits = key.split('+'), mod = '';
        									if (mod_bits.length > 1) {
        										mod = mod_bits[0] + '+';
        										key = mod_bits[1];
        									}
        									key_str += (i?'/':'') + mod + (uiStrings['key_'+key] || key);
        								});
        								if (menu) {
        									this.lastChild.textContent = t +' ['+key_str+']';
        								} else {
        									this.title = t +' ['+key_str+']';
        								}
        							});
        						});
        					},
        					getButtonData: function(sel) {
        						var b;
        						$.each(tool_buttons, function(i, btn) {
        							if (btn.sel === sel) {b = btn;}
        						});
        						return b;
        					}
        				};
        			}());
        
        			Actions.setAll();
        
        			// Select given tool
        			editor.ready(function() {
        				var tool,
        					itool = curConfig.initTool,
        					container = $('#tools_left, #svg_editor .tools_flyout'),
        					pre_tool = container.find('#tool_' + itool),
        					reg_tool = container.find('#' + itool);
        				if (pre_tool.length) {
        					tool = pre_tool;
        				} else if (reg_tool.length) {
        					tool = reg_tool;
        				} else {
        					tool = $('#tool_select');
        				}
        				tool.click().mouseup();
        
        				if (curConfig.wireframe) {
        					$('#tool_wireframe').click();
        				}
        
        				if (curConfig.showlayers) {
        					toggleSidePanel();
        				}
        
        				$('#rulers').toggle(!!curConfig.showRulers);
        
        				if (curConfig.showRulers) {
        					$('#show_rulers')[0].checked = true;
        				}
        
        				if (curConfig.baseUnit) {
        					$('#base_unit').val(curConfig.baseUnit);
        				}
        
        				if (curConfig.gridSnapping) {
        					$('#grid_snapping_on')[0].checked = true;
        				}
        
        				if (curConfig.snappingStep) {
        					$('#grid_snapping_step').val(curConfig.snappingStep);
        				}
        
        				if (curConfig.gridColor) {
        					$('#grid_color').val(curConfig.gridColor);
        				}
        			});
        
        			// init SpinButtons
        			$('#rect_rx').SpinButton({ min: 0, max: 1000, callback: changeRectRadius });
        			$('#stroke_width').SpinButton({ min: 0, max: 99, smallStep: 0.1, callback: changeStrokeWidth });
        			$('#angle').SpinButton({ min: -180, max: 180, step: 5, callback: changeRotationAngle });
        			$('#font_size').SpinButton({ min: 0.001, stepfunc: stepFontSize, callback: changeFontSize });
        			$('#group_opacity').SpinButton({ min: 0, max: 100, step: 5, callback: changeOpacity });
        			$('#blur').SpinButton({ min: 0, max: 10, step: 0.1, callback: changeBlur });
        			$('#zoom').SpinButton({ min: 0.001, max: 10000, step: 50, stepfunc: stepZoom, callback: changeZoom })
        				// Set default zoom
        				.val(svgCanvas.getZoom() * 100);
        
        			$('#workarea').contextMenu({
        					menu: 'cmenu_canvas',
        					inSpeed: 0
        				},
        				function(action, el, pos) {
        					switch (action) {
        						case 'delete':
        							deleteSelected();
        							break;
        						case 'cut':
        							cutSelected();
        							break;
        						case 'copy':
        							copySelected();
        							break;
        						case 'paste':
        							svgCanvas.pasteElements();
        							break;
        						case 'paste_in_place':
        							svgCanvas.pasteElements('in_place');
        							break;
        						case 'group':
        						case 'group_elements':
        							svgCanvas.groupSelectedElements();
        							break;
        						case 'ungroup':
        							svgCanvas.ungroupSelectedElement();
        							break;
        						case 'move_front':
        							moveToTopSelected();
        							break;
        						case 'move_up':
        							moveUpDownSelected('Up');
        							break;
        						case 'move_down':
        							moveUpDownSelected('Down');
        							break;
        						case 'move_back':
        							moveToBottomSelected();
        							break;
        						default:
        							if (svgedit.contextmenu && svgedit.contextmenu.hasCustomHandler(action)) {
        								svgedit.contextmenu.getCustomHandler(action).call();
        							}
        							break;
        					}
        					if (svgCanvas.clipBoard.length) {
        						canv_menu.enableContextMenuItems('#paste,#paste_in_place');
        					}
        				}
        			);
        
        			var lmenu_func = function(action, el, pos) {
        				switch ( action ) {
        					case 'dupe':
        						cloneLayer();
        						break;
        					case 'delete':
        						deleteLayer();
        						break;
        					case 'merge_down':
        						mergeLayer();
        						break;
        					case 'merge_all':
        						svgCanvas.mergeAllLayers();
        						updateContextPanel();
        						populateLayers();
        						break;
        				}
        			};
        
        			$('#layerlist').contextMenu({
        					menu: 'cmenu_layers',
        					inSpeed: 0
        				},
        				lmenu_func
        			);
        
        			$('#layer_moreopts').contextMenu({
        					menu: 'cmenu_layers',
        					inSpeed: 0,
        					allowLeft: true
        				},
        				lmenu_func
        			);
        
        			$('.contextMenu li').mousedown(function(ev) {
        				ev.preventDefault();
        			});
        
        			$('#cmenu_canvas li').disableContextMenu();
        			canv_menu.enableContextMenuItems('#delete,#cut,#copy');
        
        			window.addEventListener('beforeunload', function(e) {
        				// Suppress warning if page is empty
        				if (undoMgr.getUndoStackSize() === 0) {
        					editor.showSaveWarning = false;
        				}
        
        				// showSaveWarning is set to 'false' when the page is saved.
        				if (!curConfig.no_save_warning && editor.showSaveWarning) {
        					// Browser already asks question about closing the page
        					e.returnValue = uiStrings.notification.unsavedChanges; // Firefox needs this when beforeunload set by addEventListener (even though message is not used)
        					return uiStrings.notification.unsavedChanges;
        				}
        			}, false);
        
        			editor.openPrep = function(func) {
        				$('#main_menu').hide();
        				if (undoMgr.getUndoStackSize() === 0) {
        					func(true);
        				} else {
        					$.confirm(uiStrings.notification.QwantToOpen, func);
        				}
        			};
        
        			function onDragEnter(e) {
        				e.stopPropagation();
        				e.preventDefault();
        				// and indicator should be displayed here, such as "drop files here"
        			}
        
        			function onDragOver(e) {
        				e.stopPropagation();
        				e.preventDefault();
        			}
        
        			function onDragLeave(e) {
        				e.stopPropagation();
        				e.preventDefault();
        				// hypothetical indicator should be removed here
        			}
        			// Use HTML5 File API: http://www.w3.org/TR/FileAPI/
        			// if browser has HTML5 File API support, then we will show the open menu item
        			// and provide a file input to click. When that change event fires, it will
        			// get the text contents of the file and send it to the canvas
        			if (window.FileReader) {
        				var importImage = function(e) {
        					$.process_cancel(uiStrings.notification.loadingImage);
        					e.stopPropagation();
        					e.preventDefault();
        					$('#workarea').removeAttr('style');
        					$('#main_menu').hide();
        					var file = (e.type == 'drop') ? e.dataTransfer.files[0] : this.files[0];
        					if (!file) {
        						$('#dialog_box').hide();
        						return;
        					}
        					/* if (file.type === 'application/pdf') { // Todo: Handle PDF imports
        						
        					}
        					else */
        					if (file.type.indexOf('image') != -1) {
        						// Detected an image
        						// svg handling
        						var reader;
        						if (file.type.indexOf('svg') != -1) {
        							reader = new FileReader();
        							reader.onloadend = function(e) {
        								svgCanvas.importSvgString(e.target.result, true);
        								svgCanvas.ungroupSelectedElement();
        								svgCanvas.ungroupSelectedElement();
        								svgCanvas.groupSelectedElements();
        								svgCanvas.alignSelectedElements('m', 'page');
        								svgCanvas.alignSelectedElements('c', 'page');
        								$('#dialog_box').hide();
        							};
        							reader.readAsText(file);
        						}
        						else {
        						//bitmap handling
        							reader = new FileReader();
        							reader.onloadend = function(e) {
        								// let's insert the new image until we know its dimensions
        								var insertNewImage = function(width, height) {
        									var newImage = svgCanvas.addSvgElementFromJson({
        										element: 'image',
        										attr: {
        											x: 0,
        											y: 0,
        											width: width,
        											height: height,
        											id: svgCanvas.getNextId(),
        											style: 'pointer-events:inherit'
        										}
        									});
        									svgCanvas.setHref(newImage, e.target.result);
        									svgCanvas.selectOnly([newImage]);
        									svgCanvas.alignSelectedElements('m', 'page');
        									svgCanvas.alignSelectedElements('c', 'page');
        									updateContextPanel();
        									$('#dialog_box').hide();
        								};
        								// create dummy img so we know the default dimensions
        								var imgWidth = 100;
        								var imgHeight = 100;
        								var img = new Image();
        								img.src = e.target.result;
        								img.style.opacity = 0;
        								img.onload = function() {
        									imgWidth = img.offsetWidth;
        									imgHeight = img.offsetHeight;
        									insertNewImage(imgWidth, imgHeight);
        								};
        							};
        							reader.readAsDataURL(file);
        						}
        					}
        				};
        
        				workarea[0].addEventListener('dragenter', onDragEnter, false);
        				workarea[0].addEventListener('dragover', onDragOver, false);
        				workarea[0].addEventListener('dragleave', onDragLeave, false);
        				workarea[0].addEventListener('drop', importImage, false);
        
        				var open = $('<input type="file">').change(function() {
        					var f = this;
        					editor.openPrep(function(ok) {
        						if (!ok) {return;}
        						svgCanvas.clear();
        						if (f.files.length === 1) {
        							$.process_cancel(uiStrings.notification.loadingImage);
        							var reader = new FileReader();
        							reader.onloadend = function(e) {
        								loadSvgString(e.target.result);
        								updateCanvas();
        							};
        							reader.readAsText(f.files[0]);
        						}
        					});
        				});
        				$('#tool_open').show().prepend(open);
        
        				var imgImport = $('<input type="file">').change(importImage);
        				$('#tool_import').show().prepend(imgImport);
        			}
        
        //			$(function() {
        				updateCanvas(true);
        //			});
        
        			//	var revnums = "svg-editor.js ($Rev$) ";
        			//	revnums += svgCanvas.getVersion();
        			//	$('#copyright')[0].setAttribute('title', revnums);
        
        			// For Compatibility with older extensions
        			$(function() {
        				window.svgCanvas = svgCanvas;
        				svgCanvas.ready = editor.ready;
        			});
        
        			editor.setLang = function(lang, allStrings) {
        				editor.langChanged = true;
        				$.pref('lang', lang);
        				$('#lang_select').val(lang);
        				if (!allStrings) {
        					return;
        				}
        				// var notif = allStrings.notification; // Currently unused
        				// $.extend will only replace the given strings
        				var oldLayerName = $('#layerlist tr.layersel td.layername').text();
        				var rename_layer = (oldLayerName == uiStrings.common.layer + ' 1');
        
        				$.extend(uiStrings, allStrings);
        				svgCanvas.setUiStrings(allStrings);
        				Actions.setTitles();
        
        				if (rename_layer) {
        					svgCanvas.renameCurrentLayer(uiStrings.common.layer + ' 1');
        					populateLayers();
        				}
        
        				// In case extensions loaded before the locale, now we execute a callback on them
        				if (extsPreLang.length) {
        					while (extsPreLang.length) {
        						var ext = extsPreLang.shift();
        						ext.langReady({lang: lang, uiStrings: uiStrings});
        					}
        				}
        				else {
        					svgCanvas.runExtensions('langReady', {lang: lang, uiStrings: uiStrings});
        				}
        				svgCanvas.runExtensions('langChanged', lang);
        
        				// Update flyout tooltips
        				setFlyoutTitles();
        
        				// Copy title for certain tool elements
        				var elems = {
        					'#stroke_color': '#tool_stroke .icon_label, #tool_stroke .color_block',
        					'#fill_color': '#tool_fill label, #tool_fill .color_block',
        					'#linejoin_miter': '#cur_linejoin',
        					'#linecap_butt': '#cur_linecap'
        				};
        
        				$.each(elems, function(source, dest) {
        					$(dest).attr('title', $(source)[0].title);
        				});
        
        				// Copy alignment titles
        				$('#multiselected_panel div[id^=tool_align]').each(function() {
        					$('#tool_pos' + this.id.substr(10))[0].title = this.title;
        				});
        			};
        		};
        
        		editor.ready = function (cb) {
        			if (!isReady) {
        				callbacks.push(cb);
        			} else {
        				cb();
        			}
        		};
        
        		editor.runCallbacks = function () {
        			$.each(callbacks, function() {
        				this();
        			});
        			isReady = true;
        		};
        
        		editor.loadFromString = function (str) {
        			editor.ready(function() {
        				loadSvgString(str);
        			});
        		};
        
        		editor.disableUI = function (featList) {
        //			$(function() {
        //				$('#tool_wireframe, #tool_image, #main_button, #tool_source, #sidepanels').remove();
        //				$('#tools_top').css('left', 5);
        //			});
        		};
        
        		editor.loadFromURL = function (url, opts) {
        			if (!opts) {opts = {};}
        
        			var cache = opts.cache;
        			var cb = opts.callback;
        
        			editor.ready(function() {
        				$.ajax({
        					'url': url,
        					'dataType': 'text',
        					cache: !!cache,
        					beforeSend:function(){
        						$.process_cancel(uiStrings.notification.loadingImage);
        					},
        					success: function(str) {
        						loadSvgString(str, cb);
        					},
        					error: function(xhr, stat, err) {
        						if (xhr.status != 404 && xhr.responseText) {
        							loadSvgString(xhr.responseText, cb);
        						} else {
        							$.alert(uiStrings.notification.URLloadFail + ': \n' + err, cb);
        						}
        					},
        					complete:function(){
        						$('#dialog_box').hide();
        					}
        				});
        			});
        		};
        
        		editor.loadFromDataURI = function(str) {
        			editor.ready(function() {
        				var base64 = false;
        				var pre = str.match(/^data:image\/svg\+xml;base64,/);
        				if (pre) {
        					base64 = true;
        				}
        				else {
        					pre = str.match(/^data:image\/svg\+xml(?:;(?:utf8)?)?,/);
        				}
        				if (pre) {
        					pre = pre[0];
        				}
        				var src = str.slice(pre.length);
        				loadSvgString(base64 ? Utils.decode64(src) : decodeURIComponent(src));
        			});
        		};
        
        		editor.addExtension = function () {
        			var args = arguments;
        
        			// Note that we don't want this on editor.ready since some extensions
        			// may want to run before then (like server_opensave).
        			$(function() {
        				if (svgCanvas) {svgCanvas.addExtension.apply(this, args);}
        			});
        		};
        
        		return editor;
        	}(jQuery));
        
        	// Run init once DOM is loaded
        	$(svgEditor.init);
        
        }());
        
      • svg-editor.manifest
        CACHE MANIFEST
        svg-editor.html
        images/logo.png
        jgraduate/css/jPicker.css
        jgraduate/css/jgraduate.css
        svg-editor.css
        spinbtn/JQuerySpinBtn.css
        jquery.js
        config.js
        custom.css
        js-hotkeys/jquery.hotkeys.min.js
        jquery-ui/jquery-ui-1.8.17.custom.min.js
        jgraduate/jpicker.min.js
        jgraduate/jquery.jgraduate.min.js
        spinbtn/JQuerySpinBtn.js
        svgcanvas.js
        svg-editor.js
        images/align-bottom.png
        images/align-center.png
        images/align-left.png
        images/align-middle.png
        images/align-right.png
        images/align-top.png
        images/bold.png
        images/cancel.png
        images/circle.png
        images/clear.png
        images/clone.png
        images/copy.png
        images/cut.png
        images/delete.png
        images/document-properties.png
        images/dropdown.gif
        images/ellipse.png
        images/eye.png
        images/flyouth.png
        images/flyup.gif
        images/freehand-circle.png
        images/freehand-square.png
        images/go-down.png
        images/go-up.png
        images/image.png
        images/italic.png
        images/line.png
        images/logo.png
        images/logo.svg
        images/move_bottom.png
        images/move_top.png
        images/none.png
        images/open.png
        images/paste.png
        images/path.png
        images/polygon.png
        images/rect.png
        images/redo.png
        images/save.png
        images/select.png
        images/sep.png
        images/shape_group_elements.png
        images/shape_ungroup.png
        images/source.png
        images/square.png
        images/text.png
        images/undo.png
        images/view-refresh.png
        images/wave.png
        images/zoom.png
        locale/locale.js
        locale/lang.af.js
        locale/lang.ar.js
        locale/lang.az.js
        locale/lang.be.js
        locale/lang.bg.js
        locale/lang.ca.js
        locale/lang.cs.js
        locale/lang.cy.js
        locale/lang.da.js
        locale/lang.de.js
        locale/lang.el.js
        locale/lang.en.js
        locale/lang.es.js
        locale/lang.et.js
        locale/lang.fa.js
        locale/lang.fi.js
        locale/lang.fr.js
        locale/lang.ga.js
        locale/lang.gl.js
        locale/lang.hi.js
        locale/lang.hr.js
        locale/lang.hu.js
        locale/lang.hy.js
        locale/lang.id.js
        locale/lang.is.js
        locale/lang.it.js
        locale/lang.iw.js
        locale/lang.ja.js
        locale/lang.ko.js
        locale/lang.lt.js
        locale/lang.lv.js
        locale/lang.mk.js
        locale/lang.ms.js
        locale/lang.mt.js
        locale/lang.nl.js
        locale/lang.no.js
        locale/lang.pl.js
        locale/lang.pt-PT.js
        locale/lang.ro.js
        locale/lang.ru.js
        locale/lang.sk.js
        locale/lang.sl.js
        locale/lang.sq.js
        locale/lang.sr.js
        locale/lang.sv.js
        locale/lang.sw.js
        locale/lang.th.js
        locale/lang.tl.js
        locale/lang.tr.js
        locale/lang.uk.js
        locale/lang.vi.js
        locale/lang.yi.js
        locale/lang.zh-CN.js
        locale/lang.zh-TW.js
        locale/lang.zh.js
        
        # Dynamic loads
        canvg/canvg.js
        canvg/rgbcolor.js
        jspdf/underscore-min.js
        jspdf/jspdf.js
        jspdf/jspdf.plugin.svgToPdf.js
        
        # Extensions (todo: add other dependency files)
        extensions/ext-arrows.js
        extensions/ext-closepath.js
        extensions/ext-connector.js
        extensions/ext-eyedropper.js
        extensions/ext-foreignobject.js
        extensions/ext-grid.js
        extensions/ext-helloworld.js
        extensions/ext-imagelib.js
        extensions/ext-markers.js
        extensions/ext-mathjax.js
        extensions/ext-overview_window.js
        extensions/ext-panning.js
        extensions/ext-php_savefile.js
        extensions/ext-polygon.js
        extensions/ext-server_moinsave.js
        extensions/ext-server_opensave.js
        extensions/ext-shapes.js
        extensions/ext-star.js
        extensions/ext-storage.js
        extensions/ext-webappfind.js
        extensions/ext-xdomain-messaging.js
        
        
      • svgcanvas.js
        /*globals $, svgedit, svgCanvas, jsPDF*/
        /*jslint vars: true, eqeq: true, todo: true, bitwise: true, continue: true, forin: true */
        /*
         * svgcanvas.js
         *
         * Licensed under the MIT License
         *
         * Copyright(c) 2010 Alexis Deveria
         * Copyright(c) 2010 Pavol Rusnak
         * Copyright(c) 2010 Jeff Schiller
         *
         */
        
        // Dependencies:
        // 1) jQuery
        // 2) browser.js
        // 3) svgtransformlist.js
        // 4) math.js
        // 5) units.js
        // 6) svgutils.js
        // 7) sanitize.js
        // 8) history.js
        // 9) select.js
        // 10) draw.js
        // 11) path.js
        // 12) coords.js
        // 13) recalculate.js
        
        (function () {
        
        if (!window.console) {
        	window.console = {};
        	window.console.log = function(str) {};
        	window.console.dir = function(str) {};
        }
        
        if (window.opera) {
        	window.console.log = function(str) { opera.postError(str); };
        	window.console.dir = function(str) {};
        }
        
        }());
        
        // Class: SvgCanvas
        // The main SvgCanvas class that manages all SVG-related functions
        //
        // Parameters:
        // container - The container HTML element that should hold the SVG root element
        // config - An object that contains configuration data
        $.SvgCanvas = function(container, config) {
        // Alias Namespace constants
        var NS = svgedit.NS;
        
        // Default configuration options
        var curConfig = {
        	show_outside_canvas: true,
        	selectNew: true,
        	dimensions: [640, 480]
        };
        
        // Update config with new one if given
        if (config) {
        	$.extend(curConfig, config);
        }
        
        // Array with width/height of canvas
        var dimensions = curConfig.dimensions;
        
        var canvas = this;
        
        // "document" element associated with the container (same as window.document using default svg-editor.js)
        // NOTE: This is not actually a SVG document, but a HTML document.
        var svgdoc = container.ownerDocument;
        
        // This is a container for the document being edited, not the document itself.
        var svgroot = svgdoc.importNode(svgedit.utilities.text2xml(
        		'<svg id="svgroot" xmlns="' + NS.SVG + '" xlinkns="' + NS.XLINK + '" ' +
        			'width="' + dimensions[0] + '" height="' + dimensions[1] + '" x="' + dimensions[0] + '" y="' + dimensions[1] + '" overflow="visible">' +
        			'<defs>' +
        				'<filter id="canvashadow" filterUnits="objectBoundingBox">' +
        					'<feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>'+
        					'<feOffset in="blur" dx="5" dy="5" result="offsetBlur"/>'+
        					'<feMerge>'+
        						'<feMergeNode in="offsetBlur"/>'+
        						'<feMergeNode in="SourceGraphic"/>'+
        					'</feMerge>'+
        				'</filter>'+
        			'</defs>'+
        		'</svg>').documentElement, true);
        container.appendChild(svgroot);
        
        // The actual element that represents the final output SVG element
        var svgcontent = svgdoc.createElementNS(NS.SVG, 'svg');
        
        // This function resets the svgcontent element while keeping it in the DOM.
        var clearSvgContentElement = canvas.clearSvgContentElement = function() {
        	while (svgcontent.firstChild) { svgcontent.removeChild(svgcontent.firstChild); }
        
        	// TODO: Clear out all other attributes first?
        	$(svgcontent).attr({
        		id: 'svgcontent',
        		width: dimensions[0],
        		height: dimensions[1],
        		x: dimensions[0],
        		y: dimensions[1],
        		overflow: curConfig.show_outside_canvas ? 'visible' : 'hidden',
        		xmlns: NS.SVG,
        		'xmlns:se': NS.SE,
        		'xmlns:xlink': NS.XLINK
        	}).appendTo(svgroot);
        
        	// TODO: make this string optional and set by the client
        	var comment = svgdoc.createComment(" Created with SVG-edit - http://svg-edit.googlecode.com/ ");
        	svgcontent.appendChild(comment);
        };
        clearSvgContentElement();
        
        // Prefix string for element IDs
        var idprefix = 'svg_';
        
        // Function: setIdPrefix
        // Changes the ID prefix to the given value
        //
        // Parameters: 
        // p - String with the new prefix 
        canvas.setIdPrefix = function(p) {
        	idprefix = p;
        };
        
        // Current svgedit.draw.Drawing object
        // @type {svgedit.draw.Drawing}
        canvas.current_drawing_ = new svgedit.draw.Drawing(svgcontent, idprefix);
        
        // Function: getCurrentDrawing
        // Returns the current Drawing.
        // @return {svgedit.draw.Drawing}
        var getCurrentDrawing = canvas.getCurrentDrawing = function() {
        	return canvas.current_drawing_;
        };
        
        // Float displaying the current zoom level (1 = 100%, .5 = 50%, etc)
        var current_zoom = 1;
        
        // pointer to current group (for in-group editing)
        var current_group = null;
        
        // Object containing data for the currently selected styles
        var all_properties = {
        	shape: {
        		fill: (curConfig.initFill.color == 'none' ? '' : '#') + curConfig.initFill.color,
        		fill_paint: null,
        		fill_opacity: curConfig.initFill.opacity,
        		stroke: '#' + curConfig.initStroke.color,
        		stroke_paint: null,
        		stroke_opacity: curConfig.initStroke.opacity,
        		stroke_width: curConfig.initStroke.width,
        		stroke_dasharray: 'none',
        		stroke_linejoin: 'miter',
        		stroke_linecap: 'butt',
        		opacity: curConfig.initOpacity
        	}
        };
        
        all_properties.text = $.extend(true, {}, all_properties.shape);
        $.extend(all_properties.text, {
        	fill: '#000000',
        	stroke_width: 0,
        	font_size: 24,
        	font_family: 'serif'
        });
        
        // Current shape style properties
        var cur_shape = all_properties.shape;
        
        // Array with all the currently selected elements
        // default size of 1 until it needs to grow bigger
        var selectedElements = new Array(1);
        
        // Function: addSvgElementFromJson
        // Create a new SVG element based on the given object keys/values and add it to the current layer
        // The element will be ran through cleanupElement before being returned 
        //
        // Parameters:
        // data - Object with the following keys/values:
        // * element - tag name of the SVG element to create
        // * attr - Object with attributes key-values to assign to the new element
        // * curStyles - Boolean indicating that current style attributes should be applied first
        //
        // Returns: The new element
        var addSvgElementFromJson = this.addSvgElementFromJson = function(data) {
        	var shape = svgedit.utilities.getElem(data.attr.id);
        	// if shape is a path but we need to create a rect/ellipse, then remove the path
        	var current_layer = getCurrentDrawing().getCurrentLayer();
        	if (shape && data.element != shape.tagName) {
        		current_layer.removeChild(shape);
        		shape = null;
        	}
        	if (!shape) {
        		shape = svgdoc.createElementNS(NS.SVG, data.element);
        		if (current_layer) {
        			(current_group || current_layer).appendChild(shape);
        		}
        	}
        	if (data.curStyles) {
        		svgedit.utilities.assignAttributes(shape, {
        			'fill': cur_shape.fill,
        			'stroke': cur_shape.stroke,
        			'stroke-width': cur_shape.stroke_width,
        			'stroke-dasharray': cur_shape.stroke_dasharray,
        			'stroke-linejoin': cur_shape.stroke_linejoin,
        			'stroke-linecap': cur_shape.stroke_linecap,
        			'stroke-opacity': cur_shape.stroke_opacity,
        			'fill-opacity': cur_shape.fill_opacity,
        			'opacity': cur_shape.opacity / 2,
        			'style': 'pointer-events:inherit'
        		}, 100);
        	}
        	svgedit.utilities.assignAttributes(shape, data.attr, 100);
        	svgedit.utilities.cleanupElement(shape);
        	return shape;
        };
        
        // import svgtransformlist.js
        var getTransformList = canvas.getTransformList = svgedit.transformlist.getTransformList;
        
        // import from math.js.
        var transformPoint = svgedit.math.transformPoint;
        var matrixMultiply = canvas.matrixMultiply = svgedit.math.matrixMultiply;
        var hasMatrixTransform = canvas.hasMatrixTransform = svgedit.math.hasMatrixTransform;
        var transformListToTransform = canvas.transformListToTransform = svgedit.math.transformListToTransform;
        var snapToAngle = svgedit.math.snapToAngle;
        var getMatrix = svgedit.math.getMatrix;
        
        // initialize from units.js
        // send in an object implementing the ElementContainer interface (see units.js)
        svgedit.units.init({
        	getBaseUnit: function() { return curConfig.baseUnit; },
        	getElement: svgedit.utilities.getElem,
        	getHeight: function() { return svgcontent.getAttribute('height')/current_zoom; },
        	getWidth: function() { return svgcontent.getAttribute('width')/current_zoom; },
        	getRoundDigits: function() { return save_options.round_digits; }
        });
        // import from units.js
        var convertToNum = canvas.convertToNum = svgedit.units.convertToNum;
        
        // import from svgutils.js
        svgedit.utilities.init({
        	getDOMDocument: function() { return svgdoc; },
        	getDOMContainer: function() { return container; },
        	getSVGRoot: function() { return svgroot; },
        	// TODO: replace this mostly with a way to get the current drawing.
        	getSelectedElements: function() { return selectedElements; },
        	getSVGContent: function() { return svgcontent; },
        	getBaseUnit: function() { return curConfig.baseUnit; },
        	getSnappingStep: function() { return curConfig.snappingStep; }
        });
        var findDefs = canvas.findDefs = svgedit.utilities.findDefs;
        var getUrlFromAttr = canvas.getUrlFromAttr = svgedit.utilities.getUrlFromAttr;
        var getHref = canvas.getHref = svgedit.utilities.getHref;
        var setHref = canvas.setHref = svgedit.utilities.setHref;
        var getPathBBox = svgedit.utilities.getPathBBox;
        var getBBox = canvas.getBBox = svgedit.utilities.getBBox;
        var getRotationAngle = canvas.getRotationAngle = svgedit.utilities.getRotationAngle;
        var getElem = canvas.getElem = svgedit.utilities.getElem;
        var getRefElem = canvas.getRefElem = svgedit.utilities.getRefElem;
        var assignAttributes = canvas.assignAttributes = svgedit.utilities.assignAttributes;
        var cleanupElement = this.cleanupElement = svgedit.utilities.cleanupElement;
        
        // import from coords.js
        svgedit.coords.init({
        	getDrawing: function() { return getCurrentDrawing(); },
        	getGridSnapping: function() { return curConfig.gridSnapping; }
        });
        var remapElement = this.remapElement = svgedit.coords.remapElement;
        
        // import from recalculate.js
        svgedit.recalculate.init({
        	getSVGRoot: function() { return svgroot; },
        	getStartTransform: function() { return startTransform; },
        	setStartTransform: function(transform) { startTransform = transform; }
        });
        var recalculateDimensions = this.recalculateDimensions = svgedit.recalculate.recalculateDimensions;
        
        // import from sanitize.js
        var nsMap = svgedit.getReverseNS();
        var sanitizeSvg = canvas.sanitizeSvg = svgedit.sanitize.sanitizeSvg;
        
        // import from history.js
        var MoveElementCommand = svgedit.history.MoveElementCommand;
        var InsertElementCommand = svgedit.history.InsertElementCommand;
        var RemoveElementCommand = svgedit.history.RemoveElementCommand;
        var ChangeElementCommand = svgedit.history.ChangeElementCommand;
        var BatchCommand = svgedit.history.BatchCommand;
        var call;
        // Implement the svgedit.history.HistoryEventHandler interface.
        canvas.undoMgr = new svgedit.history.UndoManager({
        	handleHistoryEvent: function(eventType, cmd) {
        		var EventTypes = svgedit.history.HistoryEventTypes;
        		// TODO: handle setBlurOffsets.
        		if (eventType == EventTypes.BEFORE_UNAPPLY || eventType == EventTypes.BEFORE_APPLY) {
        			canvas.clearSelection();
        		} else if (eventType == EventTypes.AFTER_APPLY || eventType == EventTypes.AFTER_UNAPPLY) {
        			var elems = cmd.elements();
        			canvas.pathActions.clear();
        			call('changed', elems);
        			var cmdType = cmd.type();
        			var isApply = (eventType == EventTypes.AFTER_APPLY);
        			if (cmdType == MoveElementCommand.type()) {
        				var parent = isApply ? cmd.newParent : cmd.oldParent;
        				if (parent == svgcontent) {
        					canvas.identifyLayers();
        				}
        			} else if (cmdType == InsertElementCommand.type() ||
        					cmdType == RemoveElementCommand.type()) {
        				if (cmd.parent == svgcontent) {
        					canvas.identifyLayers();
        				}
        				if (cmdType == InsertElementCommand.type()) {
        					if (isApply) {restoreRefElems(cmd.elem);}
        				} else {
        					if (!isApply) {restoreRefElems(cmd.elem);}
        				}
        				if (cmd.elem.tagName === 'use') {
        					setUseData(cmd.elem);
        				}
        			} else if (cmdType == ChangeElementCommand.type()) {
        				// if we are changing layer names, re-identify all layers
        				if (cmd.elem.tagName == 'title' && cmd.elem.parentNode.parentNode == svgcontent) {
        					canvas.identifyLayers();
        				}
        				var values = isApply ? cmd.newValues : cmd.oldValues;
        				// If stdDeviation was changed, update the blur.
        				if (values.stdDeviation) {
        					canvas.setBlurOffsets(cmd.elem.parentNode, values.stdDeviation);
        				}
        				// This is resolved in later versions of webkit, perhaps we should
        				// have a featured detection for correct 'use' behavior?
        				// ——————————
        				// Remove & Re-add hack for Webkit (issue 775) 
        				//if (cmd.elem.tagName === 'use' && svgedit.browser.isWebkit()) {
        				//	var elem = cmd.elem;
        				//	if (!elem.getAttribute('x') && !elem.getAttribute('y')) {
        				//		var parent = elem.parentNode;
        				//		var sib = elem.nextSibling;
        				//		parent.removeChild(elem);
        				//		parent.insertBefore(elem, sib);
        				//	}
        				//}
        			}
        		}
        	}
        });
        var addCommandToHistory = function(cmd) {
        	canvas.undoMgr.addCommandToHistory(cmd);
        };
        
        // import from select.js
        svgedit.select.init(curConfig, {
        	createSVGElement: function(jsonMap) { return canvas.addSvgElementFromJson(jsonMap); },
        	svgRoot: function() { return svgroot; },
        	svgContent: function() { return svgcontent; },
        	currentZoom: function() { return current_zoom; },
        	// TODO(codedread): Remove when getStrokedBBox() has been put into svgutils.js.
        	getStrokedBBox: function(elems) { return canvas.getStrokedBBox([elems]); }
        });
        // this object manages selectors for us
        var selectorManager = this.selectorManager = svgedit.select.getSelectorManager();
        
        // Import from path.js
        svgedit.path.init({
        	getCurrentZoom: function() { return current_zoom; },
        	getSVGRoot: function() { return svgroot; }
        });
        
        // Interface strings, usually for title elements
        var uiStrings = {
        	exportNoBlur: "Blurred elements will appear as un-blurred",
        	exportNoforeignObject: "foreignObject elements will not appear",
        	exportNoDashArray: "Strokes will appear filled",
        	exportNoText: "Text may not appear as expected"
        };
        
        var visElems = 'a,circle,ellipse,foreignObject,g,image,line,path,polygon,polyline,rect,svg,text,tspan,use';
        var ref_attrs = ['clip-path', 'fill', 'filter', 'marker-end', 'marker-mid', 'marker-start', 'mask', 'stroke'];
        
        var elData = $.data;
        
        // Animation element to change the opacity of any newly created element
        var opac_ani = document.createElementNS(NS.SVG, 'animate');
        $(opac_ani).attr({
        	attributeName: 'opacity',
        	begin: 'indefinite',
        	dur: 1,
        	fill: 'freeze'
        }).appendTo(svgroot);
        
        var restoreRefElems = function(elem) {
        	// Look for missing reference elements, restore any found
        	var o, i, l,
        		attrs = $(elem).attr(ref_attrs);
        	for (o in attrs) {
        		var val = attrs[o];
        		if (val && val.indexOf('url(') === 0) {
        			var id = svgedit.utilities.getUrlFromAttr(val).substr(1);
        			var ref = getElem(id);
        			if (!ref) {
        				svgedit.utilities.findDefs().appendChild(removedElements[id]);
        				delete removedElements[id];
        			}
        		}
        	}
        	
        	var childs = elem.getElementsByTagName('*');
        	
        	if (childs.length) {
        		for (i = 0, l = childs.length; i < l; i++) {
        			restoreRefElems(childs[i]);
        		}
        	}
        };
        
        (function() {
        	// TODO For Issue 208: this is a start on a thumbnail
        	//	var svgthumb = svgdoc.createElementNS(NS.SVG, 'use');
        	//	svgthumb.setAttribute('width', '100');
        	//	svgthumb.setAttribute('height', '100');
        	//	svgedit.utilities.setHref(svgthumb, '#svgcontent');
        	//	svgroot.appendChild(svgthumb);
        
        }());
        
        // Object to contain image data for raster images that were found encodable
        var encodableImages = {},
        	
        	// String with image URL of last loadable image
        	last_good_img_url = curConfig.imgPath + 'logo.png',
        	
        	// Array with current disabled elements (for in-group editing)
        	disabled_elems = [],
        	
        	// Object with save options
        	save_options = {round_digits: 5},
        	
        	// Boolean indicating whether or not a draw action has been started
        	started = false,
        	
        	// String with an element's initial transform attribute value
        	startTransform = null,
        	
        	// String indicating the current editor mode
        	current_mode = 'select',
        	
        	// String with the current direction in which an element is being resized
        	current_resize_mode = 'none',
        	
        	// Object with IDs for imported files, to see if one was already added
        	import_ids = {},
        
        	// Current text style properties
        	cur_text = all_properties.text,
        	
        	// Current general properties
        	cur_properties = cur_shape,
        	
        	// Array with selected elements' Bounding box object
        //	selectedBBoxes = new Array(1),
        	
        	// The DOM element that was just selected
        	justSelected = null,
        	
        	// DOM element for selection rectangle drawn by the user
        	rubberBox = null,
        	
        	// Array of current BBoxes (still needed?)
        	curBBoxes = [],
        	
        	// Object to contain all included extensions
        	extensions = {},
        	
        	// Canvas point for the most recent right click
        	lastClickPoint = null,
        	
        	// Map of deleted reference elements
        	removedElements = {};
        
        // Clipboard for cut, copy&pasted elements
        canvas.clipBoard = [];
        
        // Should this return an array by default, so extension results aren't overwritten?
        var runExtensions = this.runExtensions = function(action, vars, returnArray) {
        	var result = returnArray ? [] : false;
        	$.each(extensions, function(name, opts) {
        		if (opts && action in opts) {
        			if (returnArray) {
        				result.push(opts[action](vars));
        			} else {
        				result = opts[action](vars);
        			}
        		}
        	});
        	return result;
        };
        
        // Function: addExtension
        // Add an extension to the editor
        // 
        // Parameters:
        // name - String with the ID of the extension
        // ext_func - Function supplied by the extension with its data
        this.addExtension = function(name, ext_func) {
        	var ext;
        	if (!(name in extensions)) {
        		// Provide private vars/funcs here. Is there a better way to do this?
        		if ($.isFunction(ext_func)) {
        			ext = ext_func($.extend(canvas.getPrivateMethods(), {
        				svgroot: svgroot,
        				svgcontent: svgcontent,
        				nonce: getCurrentDrawing().getNonce(),
        				selectorManager: selectorManager
        			}));
        		} else {
        			ext = ext_func;
        		}
        		extensions[name] = ext;
        		call('extension_added', ext);
        	} else {
        		console.log('Cannot add extension "' + name + '", an extension by that name already exists.');
        	}
        };
        	
        // This method rounds the incoming value to the nearest value based on the current_zoom
        var round = this.round = function(val) {
        	return parseInt(val*current_zoom, 10)/current_zoom;
        };
        
        // This method sends back an array or a NodeList full of elements that
        // intersect the multi-select rubber-band-box on the current_layer only.
        // 
        // Since the only browser that supports the SVG DOM getIntersectionList is Opera, 
        // we need to provide an implementation here. We brute-force it for now.
        // 
        // Reference:
        // Firefox does not implement getIntersectionList(), see https://bugzilla.mozilla.org/show_bug.cgi?id=501421
        // Webkit does not implement getIntersectionList(), see https://bugs.webkit.org/show_bug.cgi?id=11274
        var getIntersectionList = this.getIntersectionList = function(rect) {
        	if (rubberBox == null) { return null; }
        
        	var parent = current_group || getCurrentDrawing().getCurrentLayer();
        	
        	if (!curBBoxes.length) {
        		// Cache all bboxes
        		curBBoxes = getVisibleElementsAndBBoxes(parent);
        	}
        	
        	var resultList = null;
        	try {
        		resultList = parent.getIntersectionList(rect, null);
        	} catch(e) { }
        
        	if (resultList == null || typeof(resultList.item) != 'function') {
        		resultList = [];
        		var rubberBBox;
        		if (!rect) {
        			rubberBBox = rubberBox.getBBox();
        			var o,
        				bb = {};
        			
        			for (o in rubberBBox) {
        				bb[o] = rubberBBox[o] / current_zoom;
        			}
        			rubberBBox = bb;
        			
        		} else {
        			rubberBBox = rect;
        		}
        		var i = curBBoxes.length;
        		while (i--) {
        			if (!rubberBBox.width) {continue;}
        			if (svgedit.math.rectsIntersect(rubberBBox, curBBoxes[i].bbox)) {
        				resultList.push(curBBoxes[i].elem);
        			}
        		}
        	}
        	// addToSelection expects an array, but it's ok to pass a NodeList 
        	// because using square-bracket notation is allowed: 
        	// http://www.w3.org/TR/DOM-Level-2-Core/ecma-script-binding.html
        	return resultList;
        };
        
        // TODO(codedread): Migrate this into svgutils.js
        // Function: getStrokedBBox
        // Get the bounding box for one or more stroked and/or transformed elements
        // 
        // Parameters:
        // elems - Array with DOM elements to check
        // 
        // Returns:
        // A single bounding box object
        getStrokedBBox = this.getStrokedBBox = function(elems) {
        	if (!elems) {elems = getVisibleElements();}
        	if (!elems.length) {return false;}
        	// Make sure the expected BBox is returned if the element is a group
        	var getCheckedBBox = function(elem) {
        
        		try {
        			// TODO: Fix issue with rotated groups. Currently they work
        			// fine in FF, but not in other browsers (same problem mentioned
        			// in Issue 339 comment #2).
        
        			var bb = svgedit.utilities.getBBox(elem);
        			var angle = svgedit.utilities.getRotationAngle(elem);
        
        			if ((angle && angle % 90) ||
        				svgedit.math.hasMatrixTransform(svgedit.transformlist.getTransformList(elem))) {
        				// Accurate way to get BBox of rotated element in Firefox:
        				// Put element in group and get its BBox
        				var good_bb = false;
        				// Get the BBox from the raw path for these elements
        				var elemNames = ['ellipse', 'path', 'line', 'polyline', 'polygon'];
        				if (elemNames.indexOf(elem.tagName) >= 0) {
        					bb = good_bb = canvas.convertToPath(elem, true);
        				} else if (elem.tagName == 'rect') {
        					// Look for radius
        					var rx = elem.getAttribute('rx');
        					var ry = elem.getAttribute('ry');
        					if (rx || ry) {
        						bb = good_bb = canvas.convertToPath(elem, true);
        					}
        				}
        
        				if (!good_bb) {
        					// Must use clone else FF freaks out
        					var clone = elem.cloneNode(true);
        					var g = document.createElementNS(NS.SVG, 'g');
        					var parent = elem.parentNode;
        					parent.appendChild(g);
        					g.appendChild(clone);
        					bb = svgedit.utilities.bboxToObj(g.getBBox());
        					parent.removeChild(g);
        				}
        
        				// Old method: Works by giving the rotated BBox,
        				// this is (unfortunately) what Opera and Safari do
        				// natively when getting the BBox of the parent group
        //						var angle = angle * Math.PI / 180.0;
        //						var rminx = Number.MAX_VALUE, rminy = Number.MAX_VALUE, 
        //							rmaxx = Number.MIN_VALUE, rmaxy = Number.MIN_VALUE;
        //						var cx = round(bb.x + bb.width/2),
        //							cy = round(bb.y + bb.height/2);
        //						var pts = [ [bb.x - cx, bb.y - cy], 
        //									[bb.x + bb.width - cx, bb.y - cy],
        //									[bb.x + bb.width - cx, bb.y + bb.height - cy],
        //									[bb.x - cx, bb.y + bb.height - cy] ];
        //						var j = 4;
        //						while (j--) {
        //							var x = pts[j][0],
        //								y = pts[j][1],
        //								r = Math.sqrt( x*x + y*y );
        //							var theta = Math.atan2(y,x) + angle;
        //							x = round(r * Math.cos(theta) + cx);
        //							y = round(r * Math.sin(theta) + cy);
        //		
        //							// now set the bbox for the shape after it's been rotated
        //							if (x < rminx) rminx = x;
        //							if (y < rminy) rminy = y;
        //							if (x > rmaxx) rmaxx = x;
        //							if (y > rmaxy) rmaxy = y;
        //						}
        //						
        //						bb.x = rminx;
        //						bb.y = rminy;
        //						bb.width = rmaxx - rminx;
        //						bb.height = rmaxy - rminy;
        			}
        			return bb;
        		} catch(e) {
        			console.log(elem, e);
        			return null;
        		}
        	};
        
        	var full_bb;
        	$.each(elems, function() {
        		if (full_bb) {return;}
        		if (!this.parentNode) {return;}
        		full_bb = getCheckedBBox(this);
        	});
        
        	// This shouldn't ever happen...
        	if (full_bb == null) {return null;}
        
        	// full_bb doesn't include the stoke, so this does no good!
        //		if (elems.length == 1) return full_bb;
        
        	var max_x = full_bb.x + full_bb.width;
        	var max_y = full_bb.y + full_bb.height;
        	var min_x = full_bb.x;
        	var min_y = full_bb.y;
        
        	// FIXME: same re-creation problem with this function as getCheckedBBox() above
        	var getOffset = function(elem) {
        		var sw = elem.getAttribute('stroke-width');
        		var offset = 0;
        		if (elem.getAttribute('stroke') != 'none' && !isNaN(sw)) {
        			offset += sw/2;
        		}
        		return offset;
        	};
        	var bboxes = [];
        	$.each(elems, function(i, elem) {
        		var cur_bb = getCheckedBBox(elem);
        		if (cur_bb) {
        			var offset = getOffset(elem);
        			min_x = Math.min(min_x, cur_bb.x - offset);
        			min_y = Math.min(min_y, cur_bb.y - offset);
        			bboxes.push(cur_bb);
        		}
        	});
        	
        	full_bb.x = min_x;
        	full_bb.y = min_y;
        	
        	$.each(elems, function(i, elem) {
        		var cur_bb = bboxes[i];
        		// ensure that elem is really an element node
        		if (cur_bb && elem.nodeType == 1) {
        			var offset = getOffset(elem);
        			max_x = Math.max(max_x, cur_bb.x + cur_bb.width + offset);
        			max_y = Math.max(max_y, cur_bb.y + cur_bb.height + offset);
        		}
        	});
        	
        	full_bb.width = max_x - min_x;
        	full_bb.height = max_y - min_y;
        	return full_bb;
        };
        
        // Function: getVisibleElements
        // Get all elements that have a BBox (excludes <defs>, <title>, etc).
        // Note that 0-opacity, off-screen etc elements are still considered "visible"
        // for this function
        //
        // Parameters:
        // parent - The parent DOM element to search within
        //
        // Returns:
        // An array with all "visible" elements.
        var getVisibleElements = this.getVisibleElements = function(parent) {
        	if (!parent) {
        		parent = $(svgcontent).children(); // Prevent layers from being included
        	}
        	
        	var contentElems = [];
        	$(parent).children().each(function(i, elem) {
        		try {
        			if (elem.getBBox()) {
        				contentElems.push(elem);
        			}
        		} catch(e) {}
        	});
        	return contentElems.reverse();
        };
        
        // Function: getVisibleElementsAndBBoxes
        // Get all elements that have a BBox (excludes <defs>, <title>, etc).
        // Note that 0-opacity, off-screen etc elements are still considered "visible"
        // for this function
        //
        // Parameters:
        // parent - The parent DOM element to search within
        //
        // Returns:
        // An array with objects that include:
        // * elem - The element
        // * bbox - The element's BBox as retrieved from getStrokedBBox
        var getVisibleElementsAndBBoxes = this.getVisibleElementsAndBBoxes = function(parent) {
        	if (!parent) {
        		parent = $(svgcontent).children(); // Prevent layers from being included
        	}
        	var contentElems = [];
        	$(parent).children().each(function(i, elem) {
        		try {
        			if (elem.getBBox()) {
        				contentElems.push({'elem':elem, 'bbox':getStrokedBBox([elem])});
        			}
        		} catch(e) {}
        	});
        	return contentElems.reverse();
        };
        
        // Function: groupSvgElem
        // Wrap an SVG element into a group element, mark the group as 'gsvg'
        //
        // Parameters:
        // elem - SVG element to wrap
        var groupSvgElem = this.groupSvgElem = function(elem) {
        	var g = document.createElementNS(NS.SVG, 'g');
        	elem.parentNode.replaceChild(g, elem);
        	$(g).append(elem).data('gsvg', elem)[0].id = getNextId();
        };
        
        // Function: copyElem
        // Create a clone of an element, updating its ID and its children's IDs when needed
        //
        // Parameters:
        // el - DOM element to clone
        //
        // Returns: The cloned element
        var copyElem = function(el) {
        	// manually create a copy of the element
        	var new_el = document.createElementNS(el.namespaceURI, el.nodeName);
        	$.each(el.attributes, function(i, attr) {
        		if (attr.localName != '-moz-math-font-style') {
        			new_el.setAttributeNS(attr.namespaceURI, attr.nodeName, attr.value);
        		}
        	});
        	// set the copied element's new id
        	new_el.removeAttribute('id');
        	new_el.id = getNextId();
        	
        	// Opera's "d" value needs to be reset for Opera/Win/non-EN
        	// Also needed for webkit (else does not keep curved segments on clone)
        	if (svgedit.browser.isWebkit() && el.nodeName == 'path') {
        		var fixed_d = pathActions.convertPath(el);
        		new_el.setAttribute('d', fixed_d);
        	}
        
        	// now create copies of all children
        	$.each(el.childNodes, function(i, child) {
        		switch(child.nodeType) {
        			case 1: // element node
        				new_el.appendChild(copyElem(child));
        				break;
        			case 3: // text node
        				new_el.textContent = child.nodeValue;
        				break;
        			default:
        				break;
        		}
        	});
        	
        	if ($(el).data('gsvg')) {
        		$(new_el).data('gsvg', new_el.firstChild);
        	} else if ($(el).data('symbol')) {
        		var ref = $(el).data('symbol');
        		$(new_el).data('ref', ref).data('symbol', ref);
        	} else if (new_el.tagName == 'image') {
        		preventClickDefault(new_el);
        	}
        	return new_el;
        };
        
        // Set scope for these functions
        var getId, getNextId;
        var textActions, pathActions;
        
        (function(c) {
        
        	// Object to contain editor event names and callback functions
        	var events = {};
        
        	getId = c.getId = function() { return getCurrentDrawing().getId(); };
        	getNextId = c.getNextId = function() { return getCurrentDrawing().getNextId(); };
        
        	// Function: call
        	// Run the callback function associated with the given event
        	//
        	// Parameters:
        	// event - String with the event name
        	// arg - Argument to pass through to the callback function
        	call = c.call = function(event, arg) {
        		if (events[event]) {
        			return events[event](this, arg);
        		}
        	};
        
        	// Function: bind
        	// Attaches a callback function to an event
        	//
        	// Parameters:
        	// event - String indicating the name of the event
        	// f - The callback function to bind to the event
        	//
        	// Return:
        	// The previous event
        	c.bind = function(event, f) {
        		var old = events[event];
        		events[event] = f;
        		return old;
        	};
        
        }(canvas));
        
        // Function: canvas.prepareSvg
        // Runs the SVG Document through the sanitizer and then updates its paths.
        //
        // Parameters:
        // newDoc - The SVG DOM document
        this.prepareSvg = function(newDoc) {
        	this.sanitizeSvg(newDoc.documentElement);
        
        	// convert paths into absolute commands
        	var i, path, len,
        		paths = newDoc.getElementsByTagNameNS(NS.SVG, 'path');
        	for (i = 0, len = paths.length; i < len; ++i) {
        		path = paths[i];
        		path.setAttribute('d', pathActions.convertPath(path));
        		pathActions.fixEnd(path);
        	}
        };
        
        // Function: ffClone
        // Hack for Firefox bugs where text element features aren't updated or get 
        // messed up. See issue 136 and issue 137.
        // This function clones the element and re-selects it 
        // TODO: Test for this bug on load and add it to "support" object instead of 
        // browser sniffing
        //
        // Parameters: 
        // elem - The (text) DOM element to clone
        var ffClone = function(elem) {
        	if (!svgedit.browser.isGecko()) {return elem;}
        	var clone = elem.cloneNode(true);
        	elem.parentNode.insertBefore(clone, elem);
        	elem.parentNode.removeChild(elem);
        	selectorManager.releaseSelector(elem);
        	selectedElements[0] = clone;
        	selectorManager.requestSelector(clone).showGrips(true);
        	return clone;
        };
        
        
        // this.each is deprecated, if any extension used this it can be recreated by doing this:
        // $(canvas.getRootElem()).children().each(...)
        
        // this.each = function(cb) {
        //	$(svgroot).children().each(cb);
        // };
        
        
        // Function: setRotationAngle
        // Removes any old rotations if present, prepends a new rotation at the
        // transformed center
        //
        // Parameters:
        // val - The new rotation angle in degrees
        // preventUndo - Boolean indicating whether the action should be undoable or not
        this.setRotationAngle = function(val, preventUndo) {
        	// ensure val is the proper type
        	val = parseFloat(val);
        	var elem = selectedElements[0];
        	var oldTransform = elem.getAttribute('transform');
        	var bbox = svgedit.utilities.getBBox(elem);
        	var cx = bbox.x+bbox.width/2, cy = bbox.y+bbox.height/2;
        	var tlist = svgedit.transformlist.getTransformList(elem);
        	
        	// only remove the real rotational transform if present (i.e. at index=0)
        	if (tlist.numberOfItems > 0) {
        		var xform = tlist.getItem(0);
        		if (xform.type == 4) {
        			tlist.removeItem(0);
        		}
        	}
        	// find R_nc and insert it
        	if (val != 0) {
        		var center = svgedit.math.transformPoint(cx, cy, svgedit.math.transformListToTransform(tlist).matrix);
        		var R_nc = svgroot.createSVGTransform();
        		R_nc.setRotate(val, center.x, center.y);
        		if (tlist.numberOfItems) {
        			tlist.insertItemBefore(R_nc, 0);
        		} else {
        			tlist.appendItem(R_nc);
        		}
        	} else if (tlist.numberOfItems == 0) {
        		elem.removeAttribute('transform');
        	}
        	
        	if (!preventUndo) {
        		// we need to undo it, then redo it so it can be undo-able! :)
        		// TODO: figure out how to make changes to transform list undo-able cross-browser?
        		var newTransform = elem.getAttribute('transform');
        		elem.setAttribute('transform', oldTransform);
        		changeSelectedAttribute('transform', newTransform, selectedElements);
        		call('changed', selectedElements);
        	}
        	var pointGripContainer = svgedit.utilities.getElem('pathpointgrip_container');
        //		if (elem.nodeName == 'path' && pointGripContainer) {
        //			pathActions.setPointContainerTransform(elem.getAttribute('transform'));
        //		}
        	var selector = selectorManager.requestSelector(selectedElements[0]);
        	selector.resize();
        	selector.updateGripCursors(val);
        };
        
        // Function: recalculateAllSelectedDimensions
        // Runs recalculateDimensions on the selected elements, 
        // adding the changes to a single batch command
        var recalculateAllSelectedDimensions = this.recalculateAllSelectedDimensions = function() {
        	var text = (current_resize_mode == 'none' ? 'position' : 'size');
        	var batchCmd = new svgedit.history.BatchCommand(text);
        
        	var i = selectedElements.length;
        	while (i--) {
        		var elem = selectedElements[i];
        //			if (svgedit.utilities.getRotationAngle(elem) && !svgedit.math.hasMatrixTransform(getTransformList(elem))) {continue;}
        		var cmd = svgedit.recalculate.recalculateDimensions(elem);
        		if (cmd) {
        			batchCmd.addSubCommand(cmd);
        		}
        	}
        
        	if (!batchCmd.isEmpty()) {
        		addCommandToHistory(batchCmd);
        		call('changed', selectedElements);
        	}
        };
        
        // this is how we map paths to our preferred relative segment types
        var pathMap = [0, 'z', 'M', 'm', 'L', 'l', 'C', 'c', 'Q', 'q', 'A', 'a', 
        					'H', 'h', 'V', 'v', 'S', 's', 'T', 't'];
        					
        // Debug tool to easily see the current matrix in the browser's console
        var logMatrix = function(m) {
        	console.log([m.a, m.b, m.c, m.d, m.e, m.f]);
        };
        
        // Root Current Transformation Matrix in user units
        var root_sctm = null;
        
        // Group: Selection
        
        // Function: clearSelection
        // Clears the selection. The 'selected' handler is then called.
        // Parameters: 
        // noCall - Optional boolean that when true does not call the "selected" handler
        var clearSelection = this.clearSelection = function(noCall) {
        	if (selectedElements[0] != null) {
        		var i, elem,
        			len = selectedElements.length;
        		for (i = 0; i < len; ++i) {
        			elem = selectedElements[i];
        			if (elem == null) {break;}
        			selectorManager.releaseSelector(elem);
        			selectedElements[i] = null;
        		}
        //		selectedBBoxes[0] = null;
        	}
        	if (!noCall) {call('selected', selectedElements);}
        };
        
        // TODO: do we need to worry about selectedBBoxes here?
        
        
        // Function: addToSelection
        // Adds a list of elements to the selection. The 'selected' handler is then called.
        //
        // Parameters:
        // elemsToAdd - an array of DOM elements to add to the selection
        // showGrips - a boolean flag indicating whether the resize grips should be shown
        var addToSelection = this.addToSelection = function(elemsToAdd, showGrips) {
        	if (elemsToAdd.length == 0) { return; }
        	// find the first null in our selectedElements array
        	var j = 0;
        	
        	while (j < selectedElements.length) {
        		if (selectedElements[j] == null) { 
        			break;
        		}
        		++j;
        	}
        
        	// now add each element consecutively
        	var i = elemsToAdd.length;
        	while (i--) {
        		var elem = elemsToAdd[i];
        		if (!elem || !svgedit.utilities.getBBox(elem)) {continue;}
        
        		if (elem.tagName === 'a' && elem.childNodes.length === 1) {
        			// Make "a" element's child be the selected element 
        			elem = elem.firstChild;
        		}
        
        		// if it's not already there, add it
        		if (selectedElements.indexOf(elem) == -1) {
        
        			selectedElements[j] = elem;
        
        			// only the first selectedBBoxes element is ever used in the codebase these days
        //			if (j == 0) selectedBBoxes[0] = svgedit.utilities.getBBox(elem);
        			j++;
        			var sel = selectorManager.requestSelector(elem);
        	
        			if (selectedElements.length > 1) {
        				sel.showGrips(false);
        			}
        		}
        	}
        	call('selected', selectedElements);
        	
        	if (showGrips || selectedElements.length == 1) {
        		selectorManager.requestSelector(selectedElements[0]).showGrips(true);
        	}
        	else {
        		selectorManager.requestSelector(selectedElements[0]).showGrips(false);
        	}
        
        	// make sure the elements are in the correct order
        	// See: http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-compareDocumentPosition
        
        	selectedElements.sort(function(a, b) {
        		if (a && b && a.compareDocumentPosition) {
        			return 3 - (b.compareDocumentPosition(a) & 6);	
        		}
        		if (a == null) {
        			return 1;
        		}
        	});
        	
        	// Make sure first elements are not null
        	while (selectedElements[0] == null) {
        		selectedElements.shift(0);
        	}
        };
        
        // Function: selectOnly()
        // Selects only the given elements, shortcut for clearSelection(); addToSelection()
        //
        // Parameters:
        // elems - an array of DOM elements to be selected
        var selectOnly = this.selectOnly = function(elems, showGrips) {
        	clearSelection(true);
        	addToSelection(elems, showGrips);
        };
        
        // TODO: could use slice here to make this faster?
        // TODO: should the 'selected' handler
        
        // Function: removeFromSelection
        // Removes elements from the selection.
        //
        // Parameters:
        // elemsToRemove - an array of elements to remove from selection
        var removeFromSelection = this.removeFromSelection = function(elemsToRemove) {
        	if (selectedElements[0] == null) { return; }
        	if (elemsToRemove.length == 0) { return; }
        
        	// find every element and remove it from our array copy
        	var i,
        		j = 0,
        		newSelectedItems = [],
        		len = selectedElements.length;
        	newSelectedItems.length = len;
        	for (i = 0; i < len; ++i) {
        		var elem = selectedElements[i];
        		if (elem) {
        			// keep the item
        			if (elemsToRemove.indexOf(elem) == -1) {
        				newSelectedItems[j] = elem;
        				j++;
        			} else { // remove the item and its selector
        				selectorManager.releaseSelector(elem);
        			}
        		}
        	}
        	// the copy becomes the master now
        	selectedElements = newSelectedItems;
        };
        
        // Function: selectAllInCurrentLayer
        // Clears the selection, then adds all elements in the current layer to the selection.
        this.selectAllInCurrentLayer = function() {
        	var current_layer = getCurrentDrawing().getCurrentLayer();
        	if (current_layer) {
        		current_mode = 'select';
        		selectOnly($(current_group || current_layer).children());
        	}
        };
        
        // Function: getMouseTarget
        // Gets the desired element from a mouse event
        // 
        // Parameters:
        // evt - Event object from the mouse event
        // 
        // Returns:
        // DOM element we want
        var getMouseTarget = this.getMouseTarget = function(evt) {
        	if (evt == null) {
        		return null;
        	}
        	var mouse_target = evt.target;
        	
        	// if it was a <use>, Opera and WebKit return the SVGElementInstance
        	if (mouse_target.correspondingUseElement) {mouse_target = mouse_target.correspondingUseElement;}
        	
        	// for foreign content, go up until we find the foreignObject
        	// WebKit browsers set the mouse target to the svgcanvas div 
        	if ([NS.MATH, NS.HTML].indexOf(mouse_target.namespaceURI) >= 0 && 
        		mouse_target.id != 'svgcanvas') 
        	{
        		while (mouse_target.nodeName != 'foreignObject') {
        			mouse_target = mouse_target.parentNode;
        			if (!mouse_target) {return svgroot;}
        		}
        	}
        	
        	// Get the desired mouse_target with jQuery selector-fu
        	// If it's root-like, select the root
        	var current_layer = getCurrentDrawing().getCurrentLayer();
        	if ([svgroot, container, svgcontent, current_layer].indexOf(mouse_target) >= 0) {
        		return svgroot;
        	}
        	
        	var $target = $(mouse_target);
        
        	// If it's a selection grip, return the grip parent
        	if ($target.closest('#selectorParentGroup').length) {
        		// While we could instead have just returned mouse_target, 
        		// this makes it easier to indentify as being a selector grip
        		return selectorManager.selectorParentGroup;
        	}
        
        	while (mouse_target.parentNode !== (current_group || current_layer)) {
        		mouse_target = mouse_target.parentNode;
        	}
        	
        //	
        //	// go up until we hit a child of a layer
        //	while (mouse_target.parentNode.parentNode.tagName == 'g') {
        //		mouse_target = mouse_target.parentNode;
        //	}
        	// Webkit bubbles the mouse event all the way up to the div, so we
        	// set the mouse_target to the svgroot like the other browsers
        //	if (mouse_target.nodeName.toLowerCase() == 'div') {
        //		mouse_target = svgroot;
        //	}
        	
        	return mouse_target;
        };
        
        // Mouse events
        (function() {
        	var d_attr = null,
        		start_x = null,
        		start_y = null,
        		r_start_x = null,
        		r_start_y = null,
        		init_bbox = {},
        		freehand = {
        			minx: null,
        			miny: null,
        			maxx: null,
        			maxy: null
        		},
        		sumDistance = 0,
        		controllPoint2 = {x:0, y:0},
        		controllPoint1 = {x:0, y:0},
        		start = {x:0, y:0},
        		end = {x:0, y:0},
        		parameter,
        		nextParameter,
        		bSpline = {x:0, y:0},
        		nextPos = {x:0, y:0},
        		THRESHOLD_DIST = 0.8,
        		STEP_COUNT = 10;
        
        	var getBsplinePoint = function(t) {
        		var spline = {x:0, y:0},
        			p0 = controllPoint2,
        			p1 = controllPoint1,
        			p2 = start,
        			p3 = end,
        			S = 1.0 / 6.0,
        			t2 = t * t,
        			t3 = t2 * t;
        
        		var m = [
        				[-1, 3, -3, 1],
        				[3, -6, 3, 0],
        				[-3, 0, 3, 0],
        				[1, 4, 1, 0]
        			];
        
        		spline.x = S * (
        			(p0.x * m[0][0] + p1.x * m[0][1] + p2.x * m[0][2] + p3.x * m[0][3] ) * t3 +
        				(p0.x * m[1][0] + p1.x * m[1][1] + p2.x * m[1][2] + p3.x * m[1][3] ) * t2 +
        				(p0.x * m[2][0] + p1.x * m[2][1] + p2.x * m[2][2] + p3.x * m[2][3] ) * t +
        				(p0.x * m[3][0] + p1.x * m[3][1] + p2.x * m[3][2] + p3.x * m[3][3] )
        		);
        		spline.y = S * (
        			(p0.y * m[0][0] + p1.y * m[0][1] + p2.y * m[0][2] + p3.y * m[0][3] ) * t3 +
        				(p0.y * m[1][0] + p1.y * m[1][1] + p2.y * m[1][2] + p3.y * m[1][3] ) * t2 +
        				(p0.y * m[2][0] + p1.y * m[2][1] + p2.y * m[2][2] + p3.y * m[2][3] ) * t +
        				(p0.y * m[3][0] + p1.y * m[3][1] + p2.y * m[3][2] + p3.y * m[3][3] )
        		);
        
        		return {
        			x:spline.x,
        			y:spline.y
        		};
        	};
        	// - when we are in a create mode, the element is added to the canvas
        	// but the action is not recorded until mousing up
        	// - when we are in select mode, select the element, remember the position
        	// and do nothing else
        	var mouseDown = function(evt) {
        		if (canvas.spaceKey || evt.button === 1) {return;}
        
        		var right_click = evt.button === 2;
        	
        		if (evt.altKey) { // duplicate when dragging
        			svgCanvas.cloneSelectedElements(0, 0);
        		}
        	
        		root_sctm = $('#svgcontent g')[0].getScreenCTM().inverse();
        		
        		var pt = svgedit.math.transformPoint( evt.pageX, evt.pageY, root_sctm ),
        			mouse_x = pt.x * current_zoom,
        			mouse_y = pt.y * current_zoom;
        			
        		evt.preventDefault();
        
        		if (right_click) {
        			current_mode = 'select';
        			lastClickPoint = pt;
        		}
        		
        		// This would seem to be unnecessary...
        //		if (['select', 'resize'].indexOf(current_mode) == -1) {
        //			setGradient();
        //		}
        		
        		var x = mouse_x / current_zoom,
        			y = mouse_y / current_zoom,
        			mouse_target = getMouseTarget(evt);
        		
        		if (mouse_target.tagName === 'a' && mouse_target.childNodes.length === 1) {
        			mouse_target = mouse_target.firstChild;
        		}
        		
        		// real_x/y ignores grid-snap value
        		var real_x = x;
        		r_start_x = start_x = x;
        		var real_y = y;
        		r_start_y = start_y = y;
        
        		if (curConfig.gridSnapping){
        			x = svgedit.utilities.snapToGrid(x);
        			y = svgedit.utilities.snapToGrid(y);
        			start_x = svgedit.utilities.snapToGrid(start_x);
        			start_y = svgedit.utilities.snapToGrid(start_y);
        		}
        
        		// if it is a selector grip, then it must be a single element selected, 
        		// set the mouse_target to that and update the mode to rotate/resize
        		
        		if (mouse_target == selectorManager.selectorParentGroup && selectedElements[0] != null) {
        			var grip = evt.target;
        			var griptype = elData(grip, 'type');
        			// rotating
        			if (griptype == 'rotate') {
        				current_mode = 'rotate';
        			}
        			// resizing
        			else if (griptype == 'resize') {
        				current_mode = 'resize';
        				current_resize_mode = elData(grip, 'dir');
        			}
        			mouse_target = selectedElements[0];
        		}
        		
        		startTransform = mouse_target.getAttribute('transform');
        		var i, stroke_w,
        			tlist = svgedit.transformlist.getTransformList(mouse_target);
        		switch (current_mode) {
        			case 'select':
        				started = true;
        				current_resize_mode = 'none';
        				if (right_click) {started = false;}
        				
        				if (mouse_target != svgroot) {
        					// if this element is not yet selected, clear selection and select it
        					if (selectedElements.indexOf(mouse_target) == -1) {
        						// only clear selection if shift is not pressed (otherwise, add 
        						// element to selection)
        						if (!evt.shiftKey) {
        							// No need to do the call here as it will be done on addToSelection
        							clearSelection(true);
        						}
        						addToSelection([mouse_target]);
        						justSelected = mouse_target;
        						pathActions.clear();
        					}
        					// else if it's a path, go into pathedit mode in mouseup
        					
        					if (!right_click) {
        						// insert a dummy transform so if the element(s) are moved it will have
        						// a transform to use for its translate
        						for (i = 0; i < selectedElements.length; ++i) {
        							if (selectedElements[i] == null) {continue;}
        							var slist = svgedit.transformlist.getTransformList(selectedElements[i]);
        							if (slist.numberOfItems) {
        								slist.insertItemBefore(svgroot.createSVGTransform(), 0);
        							} else {
        								slist.appendItem(svgroot.createSVGTransform());
        							}
        						}
        					}
        				} else if (!right_click){
        					clearSelection();
        					current_mode = 'multiselect';
        					if (rubberBox == null) {
        						rubberBox = selectorManager.getRubberBandBox();
        					}
        					r_start_x *= current_zoom;
        					r_start_y *= current_zoom;
        //					console.log('p',[evt.pageX, evt.pageY]);					
        //					console.log('c',[evt.clientX, evt.clientY]);	
        //					console.log('o',[evt.offsetX, evt.offsetY]);	
        //					console.log('s',[start_x, start_y]);
        					
        					svgedit.utilities.assignAttributes(rubberBox, {
        						'x': r_start_x,
        						'y': r_start_y,
        						'width': 0,
        						'height': 0,
        						'display': 'inline'
        					}, 100);
        				}
        				break;
        			case 'zoom': 
        				started = true;
        				if (rubberBox == null) {
        					rubberBox = selectorManager.getRubberBandBox();
        				}
        				svgedit.utilities.assignAttributes(rubberBox, {
        						'x': real_x * current_zoom,
        						'y': real_x * current_zoom,
        						'width': 0,
        						'height': 0,
        						'display': 'inline'
        				}, 100);
        				break;
        			case 'resize':
        				started = true;
        				start_x = x;
        				start_y = y;
        				
        				// Getting the BBox from the selection box, since we know we
        				// want to orient around it
        				init_bbox = svgedit.utilities.getBBox($('#selectedBox0')[0]);
        				var bb = {};
        				$.each(init_bbox, function(key, val) {
        					bb[key] = val/current_zoom;
        				});
        				init_bbox = bb;
        				
        				// append three dummy transforms to the tlist so that
        				// we can translate,scale,translate in mousemove
        				var pos = svgedit.utilities.getRotationAngle(mouse_target) ? 1 : 0;
        				
        				if (svgedit.math.hasMatrixTransform(tlist)) {
        					tlist.insertItemBefore(svgroot.createSVGTransform(), pos);
        					tlist.insertItemBefore(svgroot.createSVGTransform(), pos);
        					tlist.insertItemBefore(svgroot.createSVGTransform(), pos);
        				} else {
        					tlist.appendItem(svgroot.createSVGTransform());
        					tlist.appendItem(svgroot.createSVGTransform());
        					tlist.appendItem(svgroot.createSVGTransform());
        					
        					if (svgedit.browser.supportsNonScalingStroke()) {
        						// Handle crash for newer Chrome and Safari 6 (Mobile and Desktop): 
        						// https://code.google.com/p/svg-edit/issues/detail?id=904
        						// Chromium issue: https://code.google.com/p/chromium/issues/detail?id=114625
        						// TODO: Remove this workaround once vendor fixes the issue
        						var isWebkit = svgedit.browser.isWebkit();
        
        						if (isWebkit) {
        							var delayedStroke = function(ele) {
        								var _stroke = ele.getAttributeNS(null, 'stroke');
        								ele.removeAttributeNS(null, 'stroke');
        								//Re-apply stroke after delay. Anything higher than 1 seems to cause flicker
        								setTimeout(function() { ele.setAttributeNS(null, 'stroke', _stroke); }, 0);
        							};
        						}
        						mouse_target.style.vectorEffect = 'non-scaling-stroke';
        						if (isWebkit) {delayedStroke(mouse_target);}
        
        						var all = mouse_target.getElementsByTagName('*'),
        							len = all.length;
        						for (i = 0; i < len; i++) {
        							all[i].style.vectorEffect = 'non-scaling-stroke';
        							if (isWebkit) {delayedStroke(all[i]);}
        						}
        					}
        				}
        				break;
        			case 'fhellipse':
        			case 'fhrect':
        			case 'fhpath':
        				start.x = real_x;
        				start.y = real_y;
        				started = true;
        				d_attr = real_x + ',' + real_y + ' ';
        				stroke_w = cur_shape.stroke_width == 0 ? 1 : cur_shape.stroke_width;
        				addSvgElementFromJson({
        					element: 'polyline',
        					curStyles: true,
        					attr: {
        						points: d_attr,
        						id: getNextId(),
        						fill: 'none',
        						opacity: cur_shape.opacity / 2,
        						'stroke-linecap': 'round',
        						style: 'pointer-events:none'
        					}
        				});
        				freehand.minx = real_x;
        				freehand.maxx = real_x;
        				freehand.miny = real_y;
        				freehand.maxy = real_y;
        				break;
        			case 'image':
        				started = true;
        				var newImage = addSvgElementFromJson({
        					element: 'image',
        					attr: {
        						x: x,
        						y: y,
        						width: 0,
        						height: 0,
        						id: getNextId(),
        						opacity: cur_shape.opacity / 2,
        						style: 'pointer-events:inherit'
        					}
        				});
        				setHref(newImage, last_good_img_url);
        				preventClickDefault(newImage);
        				break;
        			case 'square':
        				// FIXME: once we create the rect, we lose information that this was a square
        				// (for resizing purposes this could be important)
        			case 'rect':
        				started = true;
        				start_x = x;
        				start_y = y;
        				addSvgElementFromJson({
        					element: 'rect',
        					curStyles: true,
        					attr: {
        						x: x,
        						y: y,
        						width: 0,
        						height: 0,
        						id: getNextId(),
        						opacity: cur_shape.opacity / 2
        					}
        				});
        				break;
        			case 'line':
        				started = true;
        				stroke_w = cur_shape.stroke_width == 0 ? 1 : cur_shape.stroke_width;
        				addSvgElementFromJson({
        					element: 'line',
        					curStyles: true,
        					attr: {
        						x1: x,
        						y1: y,
        						x2: x,
        						y2: y,
        						id: getNextId(),
        						stroke: cur_shape.stroke,
        						'stroke-width': stroke_w,
        						'stroke-dasharray': cur_shape.stroke_dasharray,
        						'stroke-linejoin': cur_shape.stroke_linejoin,
        						'stroke-linecap': cur_shape.stroke_linecap,
        						'stroke-opacity': cur_shape.stroke_opacity,
        						fill: 'none',
        						opacity: cur_shape.opacity / 2,
        						style: 'pointer-events:none'
        					}
        				});
        				break;
        			case 'circle':
        				started = true;
        				addSvgElementFromJson({
        					element: 'circle',
        					curStyles: true,
        					attr: {
        						cx: x,
        						cy: y,
        						r: 0,
        						id: getNextId(),
        						opacity: cur_shape.opacity / 2
        					}
        				});
        				break;
        			case 'ellipse':
        				started = true;
        				addSvgElementFromJson({
        					element: 'ellipse',
        					curStyles: true,
        					attr: {
        						cx: x,
        						cy: y,
        						rx: 0,
        						ry: 0,
        						id: getNextId(),
        						opacity: cur_shape.opacity / 2
        					}
        				});
        				break;
        			case 'text':
        				started = true;
        				var newText = addSvgElementFromJson({
        					element: 'text',
        					curStyles: true,
        					attr: {
        						x: x,
        						y: y,
        						id: getNextId(),
        						fill: cur_text.fill,
        						'stroke-width': cur_text.stroke_width,
        						'font-size': cur_text.font_size,
        						'font-family': cur_text.font_family,
        						'text-anchor': 'middle',
        						'xml:space': 'preserve',
        						opacity: cur_shape.opacity
        					}
        				});
        //					newText.textContent = 'text';
        				break;
        			case 'path':
        				// Fall through
        			case 'pathedit':
        				start_x *= current_zoom;
        				start_y *= current_zoom;
        				pathActions.mouseDown(evt, mouse_target, start_x, start_y);
        				started = true;
        				break;
        			case 'textedit':
        				start_x *= current_zoom;
        				start_y *= current_zoom;
        				textActions.mouseDown(evt, mouse_target, start_x, start_y);
        				started = true;
        				break;
        			case 'rotate':
        				started = true;
        				// we are starting an undoable change (a drag-rotation)
        				canvas.undoMgr.beginUndoableChange('transform', selectedElements);
        				break;
        			default:
        				// This could occur in an extension
        				break;
        		}
        		
        		var ext_result = runExtensions('mouseDown', {
        			event: evt,
        			start_x: start_x,
        			start_y: start_y,
        			selectedElements: selectedElements
        		}, true);
        		
        		$.each(ext_result, function(i, r) {
        			if (r && r.started) {
        				started = true;
        			}
        		});
        	};
        	
        	// in this function we do not record any state changes yet (but we do update
        	// any elements that are still being created, moved or resized on the canvas)
        	var mouseMove = function(evt) {
        		if (!started) {return;}
        		if (evt.button === 1 || canvas.spaceKey) {return;}
        
        		var i, xya, c, cx, cy, dx, dy, len, angle, box,
        			selected = selectedElements[0],
        			pt = svgedit.math.transformPoint( evt.pageX, evt.pageY, root_sctm ),
        			mouse_x = pt.x * current_zoom,
        			mouse_y = pt.y * current_zoom,
        			shape = svgedit.utilities.getElem(getId());
        
        		var real_x = mouse_x / current_zoom;
        		x = real_x;
        		var real_y = mouse_y / current_zoom;
        		y = real_y;
        	
        		if (curConfig.gridSnapping){
        			x = svgedit.utilities.snapToGrid(x);
        			y = svgedit.utilities.snapToGrid(y);
        		}
        
        		evt.preventDefault();
        		var tlist;
        		switch (current_mode) {
        			case 'select':
        				// we temporarily use a translate on the element(s) being dragged
        				// this transform is removed upon mousing up and the element is 
        				// relocated to the new location
        				if (selectedElements[0] !== null) {
        					dx = x - start_x;
        					dy = y - start_y;
        					
        					if (curConfig.gridSnapping){
        						dx = svgedit.utilities.snapToGrid(dx);
        						dy = svgedit.utilities.snapToGrid(dy);
        					}
        
        					if (evt.shiftKey) { 
        						xya = svgedit.math.snapToAngle(start_x, start_y, x, y);
        						x = xya.x;
        						y = xya.y; 
        					}
        
        					if (dx != 0 || dy != 0) {
        						len = selectedElements.length;
        						for (i = 0; i < len; ++i) {
        							selected = selectedElements[i];
        							if (selected == null) {break;}
        //							if (i==0) {
        //								var box = svgedit.utilities.getBBox(selected);
        //									selectedBBoxes[i].x = box.x + dx;
        //									selectedBBoxes[i].y = box.y + dy;
        //							}
        
        							// update the dummy transform in our transform list
        							// to be a translate
        							var xform = svgroot.createSVGTransform();
        							tlist = svgedit.transformlist.getTransformList(selected);
        							// Note that if Webkit and there's no ID for this
        							// element, the dummy transform may have gotten lost.
        							// This results in unexpected behaviour
        							
        							xform.setTranslate(dx, dy);
        							if (tlist.numberOfItems) {
        								tlist.replaceItem(xform, 0);
        							} else {
        								tlist.appendItem(xform);
        							}
        							
        							// update our internal bbox that we're tracking while dragging
        							selectorManager.requestSelector(selected).resize();
        						}
        						
        						call('transition', selectedElements);
        					}
        				}
        				break;
        			case 'multiselect':
        				real_x *= current_zoom;
        				real_y *= current_zoom;
        				svgedit.utilities.assignAttributes(rubberBox, {
        					'x': Math.min(r_start_x, real_x),
        					'y': Math.min(r_start_y, real_y),
        					'width': Math.abs(real_x - r_start_x),
        					'height': Math.abs(real_y - r_start_y)
        				}, 100);
        
        				// for each selected:
        				// - if newList contains selected, do nothing
        				// - if newList doesn't contain selected, remove it from selected
        				// - for any newList that was not in selectedElements, add it to selected
        				var elemsToRemove = [], elemsToAdd = [],
        					newList = getIntersectionList();
        				len = selectedElements.length;
        				
        				for (i = 0; i < len; ++i) {
        					var ind = newList.indexOf(selectedElements[i]);
        					if (ind == -1) {
        						elemsToRemove.push(selectedElements[i]);
        					} else {
        						newList[ind] = null;
        					}
        				}
        				
        				len = newList.length;
        				for (i = 0; i < len; ++i) {
        					if (newList[i]) {elemsToAdd.push(newList[i]);}
        				}
        				
        				if (elemsToRemove.length > 0) {
        					canvas.removeFromSelection(elemsToRemove);
        				}
        				
        				if (elemsToAdd.length > 0) {
        					addToSelection(elemsToAdd);
        				}
        					
        				break;
        			case 'resize':
        				// we track the resize bounding box and translate/scale the selected element
        				// while the mouse is down, when mouse goes up, we use this to recalculate
        				// the shape's coordinates
        				tlist = svgedit.transformlist.getTransformList(selected);
        				var hasMatrix = svgedit.math.hasMatrixTransform(tlist);
        				box = hasMatrix ? init_bbox : svgedit.utilities.getBBox(selected);
        				var left = box.x, top = box.y, width = box.width,
        					height = box.height;
        					dx = (x-start_x);
        					dy = (y-start_y);
        				
        				if (curConfig.gridSnapping) {
        					dx = svgedit.utilities.snapToGrid(dx);
        					dy = svgedit.utilities.snapToGrid(dy);
        					height = svgedit.utilities.snapToGrid(height);
        					width = svgedit.utilities.snapToGrid(width);
        				}
        
        				// if rotated, adjust the dx,dy values
        				angle = svgedit.utilities.getRotationAngle(selected);
        				if (angle) {
        					var r = Math.sqrt( dx*dx + dy*dy ),
        						theta = Math.atan2(dy, dx) - angle * Math.PI / 180.0;
        					dx = r * Math.cos(theta);
        					dy = r * Math.sin(theta);
        				}
        
        				// if not stretching in y direction, set dy to 0
        				// if not stretching in x direction, set dx to 0
        				if (current_resize_mode.indexOf('n')==-1 && current_resize_mode.indexOf('s')==-1) {
        					dy = 0;
        				}
        				if (current_resize_mode.indexOf('e')==-1 && current_resize_mode.indexOf('w')==-1) {
        					dx = 0;
        				}				
        				
        				var ts = null,
        					tx = 0, ty = 0,
        					sy = height ? (height+dy)/height : 1, 
        					sx = width ? (width+dx)/width : 1;
        				// if we are dragging on the north side, then adjust the scale factor and ty
        				if (current_resize_mode.indexOf('n') >= 0) {
        					sy = height ? (height-dy)/height : 1;
        					ty = height;
        				}
        				
        				// if we dragging on the east side, then adjust the scale factor and tx
        				if (current_resize_mode.indexOf('w') >= 0) {
        					sx = width ? (width-dx)/width : 1;
        					tx = width;
        				}
        				
        				// update the transform list with translate,scale,translate
        				var translateOrigin = svgroot.createSVGTransform(),
        					scale = svgroot.createSVGTransform(),
        					translateBack = svgroot.createSVGTransform();
        
        				if (curConfig.gridSnapping) {
        					left = svgedit.utilities.snapToGrid(left);
        					tx = svgedit.utilities.snapToGrid(tx);
        					top = svgedit.utilities.snapToGrid(top);
        					ty = svgedit.utilities.snapToGrid(ty);
        				}
        
        				translateOrigin.setTranslate(-(left+tx), -(top+ty));
        				if (evt.shiftKey) {
        					if (sx == 1) {sx = sy;}
        					else {sy = sx;}
        				}
        				scale.setScale(sx, sy);
        				
        				translateBack.setTranslate(left+tx, top+ty);
        				if (hasMatrix) {
        					var diff = angle ? 1 : 0;
        					tlist.replaceItem(translateOrigin, 2+diff);
        					tlist.replaceItem(scale, 1+diff);
        					tlist.replaceItem(translateBack, Number(diff));
        				} else {
        					var N = tlist.numberOfItems;
        					tlist.replaceItem(translateBack, N-3);
        					tlist.replaceItem(scale, N-2);
        					tlist.replaceItem(translateOrigin, N-1);
        				}
        
        				selectorManager.requestSelector(selected).resize();
        				
        				call('transition', selectedElements);
        				
        				break;
        			case 'zoom':
        				real_x *= current_zoom;
        				real_y *= current_zoom;
        				svgedit.utilities.assignAttributes(rubberBox, {
        					'x': Math.min(r_start_x*current_zoom, real_x),
        					'y': Math.min(r_start_y*current_zoom, real_y),
        					'width': Math.abs(real_x - r_start_x*current_zoom),
        					'height': Math.abs(real_y - r_start_y*current_zoom)
        				}, 100);			
        				break;
        			case 'text':
        				svgedit.utilities.assignAttributes(shape,{
        					'x': x,
        					'y': y
        				}, 1000);
        				break;
        			case 'line':
        				// Opera has a problem with suspendRedraw() apparently
        				var handle = null;
        				if (!window.opera) {svgroot.suspendRedraw(1000);}
        
        				if (curConfig.gridSnapping) {
        					x = svgedit.utilities.snapToGrid(x);
        					y = svgedit.utilities.snapToGrid(y);
        				}
        
        				var x2 = x;
        				var y2 = y;					
        
        				if (evt.shiftKey) {
        					xya = svgedit.math.snapToAngle(start_x, start_y, x2, y2);
        					x2 = xya.x;
        					y2 = xya.y;
        				}
        				
        				shape.setAttributeNS(null, 'x2', x2);
        				shape.setAttributeNS(null, 'y2', y2);
        				if (!window.opera) {svgroot.unsuspendRedraw(handle);}
        				break;
        			case 'foreignObject':
        				// fall through
        			case 'square':
        				// fall through
        			case 'rect':
        				// fall through
        			case 'image':
        				var square = (current_mode == 'square') || evt.shiftKey,
        					w = Math.abs(x - start_x),
        					h = Math.abs(y - start_y),
        					new_x, new_y;
        				if (square) {
        					w = h = Math.max(w, h);
        					new_x = start_x < x ? start_x : start_x - w;
        					new_y = start_y < y ? start_y : start_y - h;
        				} else {
        					new_x = Math.min(start_x, x);
        					new_y = Math.min(start_y, y);
        				}
        	
        				if (curConfig.gridSnapping) {
        					w = svgedit.utilities.snapToGrid(w);
        					h = svgedit.utilities.snapToGrid(h);
        					new_x = svgedit.utilities.snapToGrid(new_x);
        					new_y = svgedit.utilities.snapToGrid(new_y);
        				}
        
        				svgedit.utilities.assignAttributes(shape,{
        					'width': w,
        					'height': h,
        					'x': new_x,
        					'y': new_y
        				},1000);
        				
        				break;
        			case 'circle':
        				c = $(shape).attr(['cx', 'cy']);
        				cx = c.cx;
        				cy = c.cy;
        				var rad = Math.sqrt( (x-cx)*(x-cx) + (y-cy)*(y-cy) );
        				if (curConfig.gridSnapping) {
        					rad = svgedit.utilities.snapToGrid(rad);
        				}
        				shape.setAttributeNS(null, 'r', rad);
        				break;
        			case 'ellipse':
        				c = $(shape).attr(['cx', 'cy']);
        				cx = c.cx;
        				cy = c.cy;
        				// Opera has a problem with suspendRedraw() apparently
        					handle = null;
        				if (!window.opera) {svgroot.suspendRedraw(1000);}
        				if (curConfig.gridSnapping) {
        					x = svgedit.utilities.snapToGrid(x);
        					cx = svgedit.utilities.snapToGrid(cx);
        					y = svgedit.utilities.snapToGrid(y);
        					cy = svgedit.utilities.snapToGrid(cy);
        				}
        				shape.setAttributeNS(null, 'rx', Math.abs(x - cx) );
        				var ry = Math.abs(evt.shiftKey?(x - cx):(y - cy));
        				shape.setAttributeNS(null, 'ry', ry );
        				if (!window.opera) {svgroot.unsuspendRedraw(handle);}
        				break;
        			case 'fhellipse':
        			case 'fhrect':
        				freehand.minx = Math.min(real_x, freehand.minx);
        				freehand.maxx = Math.max(real_x, freehand.maxx);
        				freehand.miny = Math.min(real_y, freehand.miny);
        				freehand.maxy = Math.max(real_y, freehand.maxy);
        			// break; missing on purpose
        			case 'fhpath':
        //				d_attr += + real_x + ',' + real_y + ' ';
        //				shape.setAttributeNS(null, 'points', d_attr);
        				end.x = real_x; end.y = real_y;
        				if (controllPoint2.x && controllPoint2.y) {
        					for (i = 0; i < STEP_COUNT - 1; i++) {
        						parameter = i / STEP_COUNT;
        						nextParameter = (i + 1) / STEP_COUNT;
        						bSpline = getBsplinePoint(nextParameter);
        						nextPos = bSpline;
        						bSpline = getBsplinePoint(parameter);
        						sumDistance += Math.sqrt((nextPos.x - bSpline.x) * (nextPos.x - bSpline.x) + (nextPos.y - bSpline.y) * (nextPos.y - bSpline.y));
        						if (sumDistance > THRESHOLD_DIST) {
        							d_attr += + bSpline.x + ',' + bSpline.y + ' ';
        							shape.setAttributeNS(null, 'points', d_attr);
        							sumDistance -= THRESHOLD_DIST;
        						}
        					}
        				}
        				controllPoint2 = {x:controllPoint1.x, y:controllPoint1.y};
        				controllPoint1 = {x:start.x, y:start.y};
        				start = {x:end.x, y:end.y};
        				break;
        			// update path stretch line coordinates
        			case 'path':
        				// fall through
        			case 'pathedit':
        				x *= current_zoom;
        				y *= current_zoom;
        				
        				if (curConfig.gridSnapping) {
        					x = svgedit.utilities.snapToGrid(x);
        					y = svgedit.utilities.snapToGrid(y);
        					start_x = svgedit.utilities.snapToGrid(start_x);
        					start_y = svgedit.utilities.snapToGrid(start_y);
        				}
        				if (evt.shiftKey) {
        					var path = svgedit.path.path;
        					var x1, y1;
        					if (path) {
        						x1 = path.dragging?path.dragging[0]:start_x;
        						y1 = path.dragging?path.dragging[1]:start_y;
        					} else {
        						x1 = start_x;
        						y1 = start_y;
        					}
        					xya = svgedit.math.snapToAngle(x1, y1, x, y);
        					x = xya.x;
        					y = xya.y;
        				}
        				
        				if (rubberBox && rubberBox.getAttribute('display') !== 'none') {
        					real_x *= current_zoom;
        					real_y *= current_zoom;
        					svgedit.utilities.assignAttributes(rubberBox, {
        						'x': Math.min(r_start_x*current_zoom, real_x),
        						'y': Math.min(r_start_y*current_zoom, real_y),
        						'width': Math.abs(real_x - r_start_x*current_zoom),
        						'height': Math.abs(real_y - r_start_y*current_zoom)
        					},100);	
        				}
        				pathActions.mouseMove(x, y);
        				
        				break;
        			case 'textedit':
        				x *= current_zoom;
        				y *= current_zoom;
        //					if (rubberBox && rubberBox.getAttribute('display') != 'none') {
        //						svgedit.utilities.assignAttributes(rubberBox, {
        //							'x': Math.min(start_x,x),
        //							'y': Math.min(start_y,y),
        //							'width': Math.abs(x-start_x),
        //							'height': Math.abs(y-start_y)
        //						},100);
        //					}
        				
        				textActions.mouseMove(mouse_x, mouse_y);
        				
        				break;
        			case 'rotate':
        				box = svgedit.utilities.getBBox(selected);
        				cx = box.x + box.width/2;
        				cy = box.y + box.height/2;
        				var m = svgedit.math.getMatrix(selected),
        					center = svgedit.math.transformPoint(cx, cy, m);
        				cx = center.x;
        				cy = center.y;
        				angle = ((Math.atan2(cy-y, cx-x) * (180/Math.PI))-90) % 360;
        				if (curConfig.gridSnapping) {
        					angle = svgedit.utilities.snapToGrid(angle);
        				}
        				if (evt.shiftKey) { // restrict rotations to nice angles (WRS)
        					var snap = 45;
        					angle= Math.round(angle/snap)*snap;
        				}
        
        				canvas.setRotationAngle(angle<-180?(360+angle):angle, true);
        				call('transition', selectedElements);
        				break;
        			default:
        				break;
        		}
        		
        		runExtensions('mouseMove', {
        			event: evt,
        			mouse_x: mouse_x,
        			mouse_y: mouse_y,
        			selected: selected
        		});
        
        	}; // mouseMove()
        	
        	// - in create mode, the element's opacity is set properly, we create an InsertElementCommand
        	// and store it on the Undo stack
        	// - in move/resize mode, the element's attributes which were affected by the move/resize are
        	// identified, a ChangeElementCommand is created and stored on the stack for those attrs
        	// this is done in when we recalculate the selected dimensions()
        	var mouseUp = function(evt) {
        		if (evt.button === 2) {return;}
        		var tempJustSelected = justSelected;
        		justSelected = null;
        		if (!started) {return;}
        		var pt = svgedit.math.transformPoint(evt.pageX, evt.pageY, root_sctm),
        			mouse_x = pt.x * current_zoom,
        			mouse_y = pt.y * current_zoom,
        			x = mouse_x / current_zoom,
        			y = mouse_y / current_zoom,
        			element = svgedit.utilities.getElem(getId()),
        			keep = false;
        
        		var real_x = x;
        		var real_y = y;
        
        		// TODO: Make true when in multi-unit mode
        		var useUnit = false; // (curConfig.baseUnit !== 'px');
        		started = false;
        		var attrs, t;
        		switch (current_mode) {
        			// intentionally fall-through to select here
        			case 'resize':
        			case 'multiselect':
        				if (rubberBox != null) {
        					rubberBox.setAttribute('display', 'none');
        					curBBoxes = [];
        				}
        				current_mode = 'select';
        			case 'select':
        				if (selectedElements[0] != null) {
        					// if we only have one selected element
        					if (selectedElements[1] == null) {
        						// set our current stroke/fill properties to the element's
        						var selected = selectedElements[0];
        						switch ( selected.tagName ) {
        							case 'g':
        							case 'use':
        							case 'image':
        							case 'foreignObject':
        								break;
        							default:
        								cur_properties.fill = selected.getAttribute('fill');
        								cur_properties.fill_opacity = selected.getAttribute('fill-opacity');
        								cur_properties.stroke = selected.getAttribute('stroke');
        								cur_properties.stroke_opacity = selected.getAttribute('stroke-opacity');
        								cur_properties.stroke_width = selected.getAttribute('stroke-width');
        								cur_properties.stroke_dasharray = selected.getAttribute('stroke-dasharray');
        								cur_properties.stroke_linejoin = selected.getAttribute('stroke-linejoin');
        								cur_properties.stroke_linecap = selected.getAttribute('stroke-linecap');
        						}
        
        						if (selected.tagName == 'text') {
        							cur_text.font_size = selected.getAttribute('font-size');
        							cur_text.font_family = selected.getAttribute('font-family');
        						}
        						selectorManager.requestSelector(selected).showGrips(true);
        						
        						// This shouldn't be necessary as it was done on mouseDown...
        //							call('selected', [selected]);
        					}
        					// always recalculate dimensions to strip off stray identity transforms
        					recalculateAllSelectedDimensions();
        					// if it was being dragged/resized
        					if (real_x != r_start_x || real_y != r_start_y) {
        						var i, len = selectedElements.length;
        						for (i = 0; i < len; ++i) {
        							if (selectedElements[i] == null) {break;}
        							if (!selectedElements[i].firstChild) {
        								// Not needed for groups (incorrectly resizes elems), possibly not needed at all?
        								selectorManager.requestSelector(selectedElements[i]).resize();
        							}
        						}
        					}
        					// no change in position/size, so maybe we should move to pathedit
        					else {
        						t = evt.target;
        						if (selectedElements[0].nodeName === 'path' && selectedElements[1] == null) {
        							pathActions.select(selectedElements[0]);
        						} // if it was a path
        						// else, if it was selected and this is a shift-click, remove it from selection
        						else if (evt.shiftKey) {
        							if (tempJustSelected != t) {
        								canvas.removeFromSelection([t]);
        							}
        						}
        					} // no change in mouse position
        					
        					// Remove non-scaling stroke
        					if (svgedit.browser.supportsNonScalingStroke()) {
        						var elem = selectedElements[0];
        						if (elem) {
        							elem.removeAttribute('style');
        							svgedit.utilities.walkTree(elem, function(elem) {
        								elem.removeAttribute('style');
        							});
        						}
        					}
        
        				}
        				return;
        			case 'zoom':
        				if (rubberBox != null) {
        					rubberBox.setAttribute('display', 'none');
        				}
        				var factor = evt.shiftKey ? 0.5 : 2;
        				call('zoomed', {
        					'x': Math.min(r_start_x, real_x),
        					'y': Math.min(r_start_y, real_y),
        					'width': Math.abs(real_x - r_start_x),
        					'height': Math.abs(real_y - r_start_y),
        					'factor': factor
        				});
        				return;
        			case 'fhpath':
        				// Check that the path contains at least 2 points; a degenerate one-point path
        				// causes problems.
        				// Webkit ignores how we set the points attribute with commas and uses space
        				// to separate all coordinates, see https://bugs.webkit.org/show_bug.cgi?id=29870
        				sumDistance = 0;
        				controllPoint2 = {x:0, y:0};
        				controllPoint1 = {x:0, y:0};
        				start = {x:0, y:0};
        				end = {x:0, y:0};
        				var coords = element.getAttribute('points');
        				var commaIndex = coords.indexOf(',');
        				if (commaIndex >= 0) {
        					keep = coords.indexOf(',', commaIndex+1) >= 0;
        				} else {
        					keep = coords.indexOf(' ', coords.indexOf(' ')+1) >= 0;
        				}
        				if (keep) {
        					element = pathActions.smoothPolylineIntoPath(element);
        				}
        				break;
        			case 'line':
        				attrs = $(element).attr(['x1', 'x2', 'y1', 'y2']);
        				keep = (attrs.x1 != attrs.x2 || attrs.y1 != attrs.y2);
        				break;
        			case 'foreignObject':
        			case 'square':
        			case 'rect':
        			case 'image':
        				attrs = $(element).attr(['width', 'height']);
        				// Image should be kept regardless of size (use inherit dimensions later)
        				keep = (attrs.width != 0 || attrs.height != 0) || current_mode === 'image';
        				break;
        			case 'circle':
        				keep = (element.getAttribute('r') != 0);
        				break;
        			case 'ellipse':
        				attrs = $(element).attr(['rx', 'ry']);
        				keep = (attrs.rx != null || attrs.ry != null);
        				break;
        			case 'fhellipse':
        				if ((freehand.maxx - freehand.minx) > 0 &&
        					(freehand.maxy - freehand.miny) > 0) {
        					element = addSvgElementFromJson({
        						element: 'ellipse',
        						curStyles: true,
        						attr: {
        							cx: (freehand.minx + freehand.maxx) / 2,
        							cy: (freehand.miny + freehand.maxy) / 2,
        							rx: (freehand.maxx - freehand.minx) / 2,
        							ry: (freehand.maxy - freehand.miny) / 2,
        							id: getId()
        						}
        					});
        					call('changed',[element]);
        					keep = true;
        				}
        				break;
        			case 'fhrect':
        				if ((freehand.maxx - freehand.minx) > 0 &&
        					(freehand.maxy - freehand.miny) > 0) {
        					element = addSvgElementFromJson({
        						element: 'rect',
        						curStyles: true,
        						attr: {
        							x: freehand.minx,
        							y: freehand.miny,
        							width: (freehand.maxx - freehand.minx),
        							height: (freehand.maxy - freehand.miny),
        							id: getId()
        						}
        					});
        					call('changed',[element]);
        					keep = true;
        				}
        				break;
        			case 'text':
        				keep = true;
        				selectOnly([element]);
        				textActions.start(element);
        				break;
        			case 'path':
        				// set element to null here so that it is not removed nor finalized
        				element = null;
        				// continue to be set to true so that mouseMove happens
        				started = true;
        				
        				var res = pathActions.mouseUp(evt, element, mouse_x, mouse_y);
        				element = res.element;
        				keep = res.keep;
        				break;
        			case 'pathedit':
        				keep = true;
        				element = null;
        				pathActions.mouseUp(evt);
        				break;
        			case 'textedit':
        				keep = false;
        				element = null;
        				textActions.mouseUp(evt, mouse_x, mouse_y);
        				break;
        			case 'rotate':
        				keep = true;
        				element = null;
        				current_mode = 'select';
        				var batchCmd = canvas.undoMgr.finishUndoableChange();
        				if (!batchCmd.isEmpty()) { 
        					addCommandToHistory(batchCmd);
        				}
        				// perform recalculation to weed out any stray identity transforms that might get stuck
        				recalculateAllSelectedDimensions();
        				call('changed', selectedElements);
        				break;
        			default:
        				// This could occur in an extension
        				break;
        		}
        		
        		var ext_result = runExtensions('mouseUp', {
        			event: evt,
        			mouse_x: mouse_x,
        			mouse_y: mouse_y
        		}, true);
        		
        		$.each(ext_result, function(i, r) {
        			if (r) {
        				keep = r.keep || keep;
        				element = r.element;
        				started = r.started || started;
        			}
        		});
        		
        		if (!keep && element != null) {
        			getCurrentDrawing().releaseId(getId());
        			element.parentNode.removeChild(element);
        			element = null;
        			
        			t = evt.target;
        			
        			// if this element is in a group, go up until we reach the top-level group 
        			// just below the layer groups
        			// TODO: once we implement links, we also would have to check for <a> elements
        			while (t.parentNode.parentNode.tagName == 'g') {
        				t = t.parentNode;
        			}
        			// if we are not in the middle of creating a path, and we've clicked on some shape, 
        			// then go to Select mode.
        			// WebKit returns <div> when the canvas is clicked, Firefox/Opera return <svg>
        			if ( (current_mode != 'path' || !drawn_path) &&
        				t.parentNode.id != 'selectorParentGroup' &&
        				t.id != 'svgcanvas' && t.id != 'svgroot') 
        			{
        				// switch into "select" mode if we've clicked on an element
        				canvas.setMode('select');
        				selectOnly([t], true);
        			}
        			
        		} else if (element != null) {
        			canvas.addedNew = true;
        			
        			if (useUnit) {svgedit.units.convertAttrs(element);}
        			
        			var ani_dur = 0.2, c_ani;
        			if (opac_ani.beginElement && element.getAttribute('opacity') != cur_shape.opacity) {
        				c_ani = $(opac_ani).clone().attr({
        					to: cur_shape.opacity,
        					dur: ani_dur
        				}).appendTo(element);
        				try {
        					// Fails in FF4 on foreignObject
        					c_ani[0].beginElement();
        				} catch(e){}
        			} else {
        				ani_dur = 0;
        			}
        			
        			// Ideally this would be done on the endEvent of the animation,
        			// but that doesn't seem to be supported in Webkit
        			setTimeout(function() {
        				if (c_ani) {c_ani.remove();}
        				element.setAttribute('opacity', cur_shape.opacity);
        				element.setAttribute('style', 'pointer-events:inherit');
        				cleanupElement(element);
        				if (current_mode === 'path') {
        					pathActions.toEditMode(element);
        				} else if (curConfig.selectNew) {
        					selectOnly([element], true);
        				}
        				// we create the insert command that is stored on the stack
        				// undo means to call cmd.unapply(), redo means to call cmd.apply()
        				addCommandToHistory(new svgedit.history.InsertElementCommand(element));
        				
        				call('changed',[element]);
        			}, ani_dur * 1000);
        		}
        		
        		startTransform = null;
        	};
        	
        	var dblClick = function(evt) {
        		var evt_target = evt.target;
        		var parent = evt_target.parentNode;
        		
        		// Do nothing if already in current group
        		if (parent === current_group) {return;}
        		
        		var mouse_target = getMouseTarget(evt);
        		var tagName = mouse_target.tagName;
        		
        		if (tagName === 'text' && current_mode !== 'textedit') {
        			var pt = svgedit.math.transformPoint( evt.pageX, evt.pageY, root_sctm );
        			textActions.select(mouse_target, pt.x, pt.y);
        		}
        		
        		if ((tagName === 'g' || tagName === 'a') && svgedit.utilities.getRotationAngle(mouse_target)) {
        			// TODO: Allow method of in-group editing without having to do 
        			// this (similar to editing rotated paths)
        		
        			// Ungroup and regroup
        			pushGroupProperties(mouse_target);
        			mouse_target = selectedElements[0];
        			clearSelection(true);
        		}
        		// Reset context
        		if (current_group) {
        			leaveContext();
        		}
        		
        		if ((parent.tagName !== 'g' && parent.tagName !== 'a') ||
        			parent === getCurrentDrawing().getCurrentLayer() ||
        			mouse_target === selectorManager.selectorParentGroup)
        		{
        			// Escape from in-group edit
        			return;
        		}
        		setContext(mouse_target);
        	};
        
        	// prevent links from being followed in the canvas
        	var handleLinkInCanvas = function(e) {
        		e.preventDefault();
        		return false;
        	};
        	
        	// Added mouseup to the container here.
        	// TODO(codedread): Figure out why after the Closure compiler, the window mouseup is ignored.
        	$(container).mousedown(mouseDown).mousemove(mouseMove).click(handleLinkInCanvas).dblclick(dblClick).mouseup(mouseUp);
        //	$(window).mouseup(mouseUp);
        	
        	 //TODO(rafaelcastrocouto): User preference for shift key and zoom factor
        	$(container).bind('mousewheel DOMMouseScroll', function(e){
        		//if (!e.shiftKey) {return;}
        		e.preventDefault();
        		var evt = e.originalEvent;
        
        		root_sctm = $('#svgcontent g')[0].getScreenCTM().inverse();
        		var pt = svgedit.math.transformPoint( evt.pageX, evt.pageY, root_sctm );
        
        		var bbox = {
        			'x': pt.x,
        			'y': pt.y,
        			'width': 0,
        			'height': 0
        		};
        
        		var delta = (evt.wheelDelta) ? evt.wheelDelta : (evt.detail) ? -evt.detail : 0;
        		if (!delta) {return;}
        
        		bbox.factor = Math.max(3/4, Math.min(4/3, (delta)));
        	
        		call('zoomed', bbox);
        	});
        	
        }());
        
        // Function: preventClickDefault
        // Prevents default browser click behaviour on the given element
        //
        // Parameters:
        // img - The DOM element to prevent the cilck on
        var preventClickDefault = function(img) {
        	$(img).click(function(e){e.preventDefault();});
        };
        
        // Group: Text edit functions
        // Functions relating to editing text elements
        textActions = canvas.textActions = (function() {
        	var curtext;
        	var textinput;
        	var cursor;
        	var selblock;
        	var blinker;
        	var chardata = [];
        	var textbb, transbb;
        	var matrix;
        	var last_x, last_y;
        	var allow_dbl;
        	
        	function setCursor(index) {
        		var empty = (textinput.value === '');
        		$(textinput).focus();
        	
        		if (!arguments.length) {
        			if (empty) {
        				index = 0;
        			} else {
        				if (textinput.selectionEnd !== textinput.selectionStart) {return;}
        				index = textinput.selectionEnd;
        			}
        		}
        		
        		var charbb;
        		charbb = chardata[index];
        		if (!empty) {
        			textinput.setSelectionRange(index, index);
        		}
        		cursor = svgedit.utilities.getElem('text_cursor');
        		if (!cursor) {
        			cursor = document.createElementNS(NS.SVG, 'line');
        			svgedit.utilities.assignAttributes(cursor, {
        				id: 'text_cursor',
        				stroke: '#333',
        				'stroke-width': 1
        			});
        			cursor = svgedit.utilities.getElem('selectorParentGroup').appendChild(cursor);
        		}
        		
        		if (!blinker) {
        			blinker = setInterval(function() {
        				var show = (cursor.getAttribute('display') === 'none');
        				cursor.setAttribute('display', show?'inline':'none');
        			}, 600);
        		}
        		
        		var start_pt = ptToScreen(charbb.x, textbb.y);
        		var end_pt = ptToScreen(charbb.x, (textbb.y + textbb.height));
        		
        		svgedit.utilities.assignAttributes(cursor, {
        			x1: start_pt.x,
        			y1: start_pt.y,
        			x2: end_pt.x,
        			y2: end_pt.y,
        			visibility: 'visible',
        			display: 'inline'
        		});
        		
        		if (selblock) {selblock.setAttribute('d', '');}
        	}
        	
        	function setSelection(start, end, skipInput) {
        		if (start === end) {
        			setCursor(end);
        			return;
        		}
        	
        		if (!skipInput) {
        			textinput.setSelectionRange(start, end);
        		}
        		
        		selblock = svgedit.utilities.getElem('text_selectblock');
        		if (!selblock) {
        
        			selblock = document.createElementNS(NS.SVG, 'path');
        			svgedit.utilities.assignAttributes(selblock, {
        				id: 'text_selectblock',
        				fill: 'green',
        				opacity: 0.5,
        				style: 'pointer-events:none'
        			});
        			svgedit.utilities.getElem('selectorParentGroup').appendChild(selblock);
        		}
        
        		var startbb = chardata[start];		
        		var endbb = chardata[end];
        		
        		cursor.setAttribute('visibility', 'hidden');
        		
        		var tl = ptToScreen(startbb.x, textbb.y),
        			tr = ptToScreen(startbb.x + (endbb.x - startbb.x), textbb.y),
        			bl = ptToScreen(startbb.x, textbb.y + textbb.height),
        			br = ptToScreen(startbb.x + (endbb.x - startbb.x), textbb.y + textbb.height);
        		
        		var dstr = 'M' + tl.x + ',' + tl.y
        					+ ' L' + tr.x + ',' + tr.y
        					+ ' ' + br.x + ',' + br.y
        					+ ' ' + bl.x + ',' + bl.y + 'z';
        		
        		svgedit.utilities.assignAttributes(selblock, {
        			d: dstr,
        			'display': 'inline'
        		});
        	}
        	
        	function getIndexFromPoint(mouse_x, mouse_y) {
        		// Position cursor here
        		var pt = svgroot.createSVGPoint();
        		pt.x = mouse_x;
        		pt.y = mouse_y;
        
        		// No content, so return 0
        		if (chardata.length == 1) {return 0;}
        		// Determine if cursor should be on left or right of character
        		var charpos = curtext.getCharNumAtPosition(pt);
        		if (charpos < 0) {
        			// Out of text range, look at mouse coords
        			charpos = chardata.length - 2;
        			if (mouse_x <= chardata[0].x) {
        				charpos = 0;
        			}
        		} else if (charpos >= chardata.length - 2) {
        			charpos = chardata.length - 2;
        		}
        		var charbb = chardata[charpos];
        		var mid = charbb.x + (charbb.width/2);
        		if (mouse_x > mid) {
        			charpos++;
        		}
        		return charpos;
        	}
        	
        	function setCursorFromPoint(mouse_x, mouse_y) {
        		setCursor(getIndexFromPoint(mouse_x, mouse_y));
        	}
        	
        	function setEndSelectionFromPoint(x, y, apply) {
        		var i1 = textinput.selectionStart;
        		var i2 = getIndexFromPoint(x, y);
        		
        		var start = Math.min(i1, i2);
        		var end = Math.max(i1, i2);
        		setSelection(start, end, !apply);
        	}
        		
        	function screenToPt(x_in, y_in) {
        		var out = {
        			x: x_in,
        			y: y_in
        		};
        		
        		out.x /= current_zoom;
        		out.y /= current_zoom;			
        
        		if (matrix) {
        			var pt = svgedit.math.transformPoint(out.x, out.y, matrix.inverse());
        			out.x = pt.x;
        			out.y = pt.y;
        		}
        		
        		return out;
        	}	
        	
        	function ptToScreen(x_in, y_in) {
        		var out = {
        			x: x_in,
        			y: y_in
        		};
        		
        		if (matrix) {
        			var pt = svgedit.math.transformPoint(out.x, out.y, matrix);
        			out.x = pt.x;
        			out.y = pt.y;
        		}
        		
        		out.x *= current_zoom;
        		out.y *= current_zoom;
        		
        		return out;
        	}
        	
        	function hideCursor() {
        		if (cursor) {
        			cursor.setAttribute('visibility', 'hidden');
        		}
        	}
        	
        	function selectAll(evt) {
        		setSelection(0, curtext.textContent.length);
        		$(this).unbind(evt);
        	}
        
        	function selectWord(evt) {
        		if (!allow_dbl || !curtext) {return;}
        	
        		var ept = svgedit.math.transformPoint( evt.pageX, evt.pageY, root_sctm ),
        			mouse_x = ept.x * current_zoom,
        			mouse_y = ept.y * current_zoom;
        		var pt = screenToPt(mouse_x, mouse_y);
        		
        		var index = getIndexFromPoint(pt.x, pt.y);
        		var str = curtext.textContent;
        		var first = str.substr(0, index).replace(/[a-z0-9]+$/i, '').length;
        		var m = str.substr(index).match(/^[a-z0-9]+/i);
        		var last = (m?m[0].length:0) + index;
        		setSelection(first, last);
        		
        		// Set tripleclick
        		$(evt.target).click(selectAll);
        		setTimeout(function() {
        			$(evt.target).unbind('click', selectAll);
        		}, 300);
        		
        	}
        
        	return {
        		select: function(target, x, y) {
        			curtext = target;
        			textActions.toEditMode(x, y);
        		},
        		start: function(elem) {
        			curtext = elem;
        			textActions.toEditMode();
        		},
        		mouseDown: function(evt, mouse_target, start_x, start_y) {
        			var pt = screenToPt(start_x, start_y);
        		
        			textinput.focus();
        			setCursorFromPoint(pt.x, pt.y);
        			last_x = start_x;
        			last_y = start_y;
        			
        			// TODO: Find way to block native selection
        		},
        		mouseMove: function(mouse_x, mouse_y) {
        			var pt = screenToPt(mouse_x, mouse_y);
        			setEndSelectionFromPoint(pt.x, pt.y);
        		},			
        		mouseUp: function(evt, mouse_x, mouse_y) {
        			var pt = screenToPt(mouse_x, mouse_y);
        			
        			setEndSelectionFromPoint(pt.x, pt.y, true);
        			
        			// TODO: Find a way to make this work: Use transformed BBox instead of evt.target 
        //				if (last_x === mouse_x && last_y === mouse_y
        //					&& !svgedit.math.rectsIntersect(transbb, {x: pt.x, y: pt.y, width:0, height:0})) {
        //					textActions.toSelectMode(true);				
        //				}
        
        			if (
        				evt.target !== curtext
        				&&	mouse_x < last_x + 2
        				&& mouse_x > last_x - 2
        				&&	mouse_y < last_y + 2
        				&& mouse_y > last_y - 2) {
        
        				textActions.toSelectMode(true);
        			}
        
        		},
        		setCursor: setCursor,
        		toEditMode: function(x, y) {
        			allow_dbl = false;
        			current_mode = 'textedit';
        			selectorManager.requestSelector(curtext).showGrips(false);
        			// Make selector group accept clicks
        			var sel = selectorManager.requestSelector(curtext).selectorRect;
        			
        			textActions.init();
        
        			$(curtext).css('cursor', 'text');
        			
        //				if (svgedit.browser.supportsEditableText()) {
        //					curtext.setAttribute('editable', 'simple');
        //					return;
        //				}
        			
        			if (!arguments.length) {
        				setCursor();
        			} else {
        				var pt = screenToPt(x, y);
        				setCursorFromPoint(pt.x, pt.y);
        			}
        			
        			setTimeout(function() {
        				allow_dbl = true;
        			}, 300);
        		},
        		toSelectMode: function(selectElem) {
        			current_mode = 'select';
        			clearInterval(blinker);
        			blinker = null;
        			if (selblock) {$(selblock).attr('display', 'none');}
        			if (cursor) {$(cursor).attr('visibility', 'hidden');}
        			$(curtext).css('cursor', 'move');
        			
        			if (selectElem) {
        				clearSelection();
        				$(curtext).css('cursor', 'move');
        				
        				call('selected', [curtext]);
        				addToSelection([curtext], true);
        			}
        			if (curtext && !curtext.textContent.length) {
        				// No content, so delete
        				canvas.deleteSelectedElements();
        			}
        			
        			$(textinput).blur();
        			
        			curtext = false;
        			
        //				if (svgedit.browser.supportsEditableText()) {
        //					curtext.removeAttribute('editable');
        //				}
        		},
        		setInputElem: function(elem) {
        			textinput = elem;
        //			$(textinput).blur(hideCursor);
        		},
        		clear: function() {
        			if (current_mode == 'textedit') {
        				textActions.toSelectMode();
        			}
        		},
        		init: function(inputElem) {
        			if (!curtext) {return;}
        			var i, end;
        //				if (svgedit.browser.supportsEditableText()) {
        //					curtext.select();
        //					return;
        //				}
        		
        			if (!curtext.parentNode) {
        				// Result of the ffClone, need to get correct element
        				curtext = selectedElements[0];
        				selectorManager.requestSelector(curtext).showGrips(false);
        			}
        			
        			var str = curtext.textContent;
        			var len = str.length;
        			
        			var xform = curtext.getAttribute('transform');
        
        			textbb = svgedit.utilities.getBBox(curtext);
        			
        			matrix = xform ? svgedit.math.getMatrix(curtext) : null;
        
        			chardata = [];
        			chardata.length = len;
        			textinput.focus();
        			
        			$(curtext).unbind('dblclick', selectWord).dblclick(selectWord);
        			
        			if (!len) {
        				end = {x: textbb.x + (textbb.width/2), width: 0};
        			}
        			
        			for (i=0; i<len; i++) {
        				var start = curtext.getStartPositionOfChar(i);
        				end = curtext.getEndPositionOfChar(i);
        				
        				if (!svgedit.browser.supportsGoodTextCharPos()) {
        					var offset = canvas.contentW * current_zoom;
        					start.x -= offset;
        					end.x -= offset;
        					
        					start.x /= current_zoom;
        					end.x /= current_zoom;
        				}
        				
        				// Get a "bbox" equivalent for each character. Uses the
        				// bbox data of the actual text for y, height purposes
        				
        				// TODO: Decide if y, width and height are actually necessary
        				chardata[i] = {
        					x: start.x,
        					y: textbb.y, // start.y?
        					width: end.x - start.x,
        					height: textbb.height
        				};
        			}
        			
        			// Add a last bbox for cursor at end of text
        			chardata.push({
        				x: end.x,
        				width: 0
        			});
        			setSelection(textinput.selectionStart, textinput.selectionEnd, true);
        		}
        	};
        }());
        
        // TODO: Migrate all of this code into path.js
        // Group: Path edit functions
        // Functions relating to editing path elements
        pathActions = canvas.pathActions = function() {
        	
        	var subpath = false;
        	var current_path;
        	var newPoint, firstCtrl;
        	
        	function resetD(p) {
        		p.setAttribute('d', pathActions.convertPath(p));
        	}
        
        	// TODO: Move into path.js
        	svgedit.path.Path.prototype.endChanges = function(text) {
        		if (svgedit.browser.isWebkit()) {resetD(this.elem);}
        		var cmd = new svgedit.history.ChangeElementCommand(this.elem, {d: this.last_d}, text);
        		addCommandToHistory(cmd);
        		call('changed', [this.elem]);
        	};
        
        	svgedit.path.Path.prototype.addPtsToSelection = function(indexes) {
        		var i, seg;
        		if (!$.isArray(indexes)) {indexes = [indexes];}
        		for (i = 0; i< indexes.length; i++) {
        			var index = indexes[i];
        			seg = this.segs[index];
        			if (seg.ptgrip) {
        				if (this.selected_pts.indexOf(index) == -1 && index >= 0) {
        					this.selected_pts.push(index);
        				}
        			}
        		}
        		this.selected_pts.sort();
        		i = this.selected_pts.length;
        		var grips = [];
        		grips.length = i;
        		// Loop through points to be selected and highlight each
        		while (i--) {
        			var pt = this.selected_pts[i];
        			seg = this.segs[pt];
        			seg.select(true);
        			grips[i] = seg.ptgrip;
        		}
        		// TODO: Correct this:
        		pathActions.canDeleteNodes = true;
        		
        		pathActions.closed_subpath = this.subpathIsClosed(this.selected_pts[0]);
        		
        		call('selected', grips);
        	};
        
        	current_path = null;
        	var drawn_path = null,
        		hasMoved = false;
        	
        	// This function converts a polyline (created by the fh_path tool) into
        	// a path element and coverts every three line segments into a single bezier
        	// curve in an attempt to smooth out the free-hand
        	var smoothPolylineIntoPath = function(element) {
        		var i, points = element.points;
        		var N = points.numberOfItems;
        		if (N >= 4) {
        			// loop through every 3 points and convert to a cubic bezier curve segment
        			// 
        			// NOTE: this is cheating, it means that every 3 points has the potential to 
        			// be a corner instead of treating each point in an equal manner. In general,
        			// this technique does not look that good.
        			// 
        			// I am open to better ideas!
        			// 
        			// Reading:
        			// - http://www.efg2.com/Lab/Graphics/Jean-YvesQueinecBezierCurves.htm
        			// - http://www.codeproject.com/KB/graphics/BezierSpline.aspx?msg=2956963
        			// - http://www.ian-ko.com/ET_GeoWizards/UserGuide/smooth.htm
        			// - http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/Bezier/bezier-der.html
        			var curpos = points.getItem(0), prevCtlPt = null;
        			var d = [];
        			d.push(['M', curpos.x, ',', curpos.y, ' C'].join(''));
        			for (i = 1; i <= (N-4); i += 3) {
        				var ct1 = points.getItem(i);
        				var ct2 = points.getItem(i+1);
        				var end = points.getItem(i+2);
        				
        				// if the previous segment had a control point, we want to smooth out
        				// the control points on both sides
        				if (prevCtlPt) {
        					var newpts = svgedit.path.smoothControlPoints( prevCtlPt, ct1, curpos );
        					if (newpts && newpts.length == 2) {
        						var prevArr = d[d.length-1].split(',');
        						prevArr[2] = newpts[0].x;
        						prevArr[3] = newpts[0].y;
        						d[d.length-1] = prevArr.join(',');
        						ct1 = newpts[1];
        					}
        				}
        				
        				d.push([ct1.x, ct1.y, ct2.x, ct2.y, end.x, end.y].join(','));
        				
        				curpos = end;
        				prevCtlPt = ct2;
        			}
        			// handle remaining line segments
        			d.push('L');
        			while (i < N) {
        				var pt = points.getItem(i);
        				d.push([pt.x, pt.y].join(','));
        				i++;
        			}
        			d = d.join(' ');
        
        			// create new path element
        			element = addSvgElementFromJson({
        				element: 'path',
        				curStyles: true,
        				attr: {
        					id: getId(),
        					d: d,
        					fill: 'none'
        				}
        			});
        			// No need to call "changed", as this is already done under mouseUp
        		}
        		return element;
        	};
        
        	return {
        		mouseDown: function(evt, mouse_target, start_x, start_y) {
        			var id;
        			if (current_mode === 'path') {
        				mouse_x = start_x;
        				mouse_y = start_y;
        				
        				var x = mouse_x/current_zoom,
        					y = mouse_y/current_zoom,
        					stretchy = svgedit.utilities.getElem('path_stretch_line');
        				newPoint = [x, y];	
        				
        				if (curConfig.gridSnapping){
        					x = svgedit.utilities.snapToGrid(x);
        					y = svgedit.utilities.snapToGrid(y);
        					mouse_x = svgedit.utilities.snapToGrid(mouse_x);
        					mouse_y = svgedit.utilities.snapToGrid(mouse_y);
        				}
        
        				if (!stretchy) {
        					stretchy = document.createElementNS(NS.SVG, 'path');
        					svgedit.utilities.assignAttributes(stretchy, {
        						id: 'path_stretch_line',
        						stroke: '#22C',
        						'stroke-width': '0.5',
        						fill: 'none'
        					});
        					stretchy = svgedit.utilities.getElem('selectorParentGroup').appendChild(stretchy);
        				}
        				stretchy.setAttribute('display', 'inline');
        				
        				var keep = null;
        				var index;
        				// if pts array is empty, create path element with M at current point
        				if (!drawn_path) {
        					d_attr = 'M' + x + ',' + y + ' ';
        					drawn_path = addSvgElementFromJson({
        						element: 'path',
        						curStyles: true,
        						attr: {
        							d: d_attr,
        							id: getNextId(),
        							opacity: cur_shape.opacity / 2
        						}
        					});
        					// set stretchy line to first point
        					stretchy.setAttribute('d', ['M', mouse_x, mouse_y, mouse_x, mouse_y].join(' '));
        					index = subpath ? svgedit.path.path.segs.length : 0;
        					svgedit.path.addPointGrip(index, mouse_x, mouse_y);
        				} else {
        					// determine if we clicked on an existing point
        					var seglist = drawn_path.pathSegList;
        					var i = seglist.numberOfItems;
        					var FUZZ = 6/current_zoom;
        					var clickOnPoint = false;
        					while (i) {
        						i --;
        						var item = seglist.getItem(i);
        						var px = item.x, py = item.y;
        						// found a matching point
        						if ( x >= (px-FUZZ) && x <= (px+FUZZ) && y >= (py-FUZZ) && y <= (py+FUZZ) ) {
        							clickOnPoint = true;
        							break;
        						}
        					}
        					
        					// get path element that we are in the process of creating
        					id = getId();
        				
        					// Remove previous path object if previously created
        					svgedit.path.removePath_(id);
        					
        					var newpath = svgedit.utilities.getElem(id);
        					var newseg;
        					var s_seg;
        					var len = seglist.numberOfItems;
        					// if we clicked on an existing point, then we are done this path, commit it
        					// (i, i+1) are the x,y that were clicked on
        					if (clickOnPoint) {
        						// if clicked on any other point but the first OR
        						// the first point was clicked on and there are less than 3 points
        						// then leave the path open
        						// otherwise, close the path
        						if (i <= 1 && len >= 2) {
        							// Create end segment
        							var abs_x = seglist.getItem(0).x;
        							var abs_y = seglist.getItem(0).y;
        							
        
        							s_seg = stretchy.pathSegList.getItem(1);
        							if (s_seg.pathSegType === 4) {
        								newseg = drawn_path.createSVGPathSegLinetoAbs(abs_x, abs_y);
        							} else {
        								newseg = drawn_path.createSVGPathSegCurvetoCubicAbs(
        									abs_x,
        									abs_y,
        									s_seg.x1 / current_zoom,
        									s_seg.y1 / current_zoom,
        									abs_x,
        									abs_y
        								);
        							}
        							
        							var endseg = drawn_path.createSVGPathSegClosePath();
        							seglist.appendItem(newseg);
        							seglist.appendItem(endseg);
        						} else if (len < 3) {
        							keep = false;
        							return keep;
        						}
        						$(stretchy).remove();
        						
        						// This will signal to commit the path
        						element = newpath;
        						drawn_path = null;
        						started = false;
        						
        						if (subpath) {
        							if (svgedit.path.path.matrix) {
        								svgedit.coords.remapElement(newpath, {}, svgedit.path.path.matrix.inverse());
        							}
        						
        							var new_d = newpath.getAttribute('d');
        							var orig_d = $(svgedit.path.path.elem).attr('d');
        							$(svgedit.path.path.elem).attr('d', orig_d + new_d);
        							$(newpath).remove();
        							if (svgedit.path.path.matrix) {
        								svgedit.path.recalcRotatedPath();
        							}
        							svgedit.path.path.init();
        							pathActions.toEditMode(svgedit.path.path.elem);
        							svgedit.path.path.selectPt();
        							return false;
        						}
        					}
        					// else, create a new point, update path element
        					else {
        						// Checks if current target or parents are #svgcontent
        						if (!$.contains(container, getMouseTarget(evt))) {
        							// Clicked outside canvas, so don't make point
        							console.log('Clicked outside canvas');
        							return false;
        						}
        
        						var num = drawn_path.pathSegList.numberOfItems;
        						var last = drawn_path.pathSegList.getItem(num -1);
        						var lastx = last.x, lasty = last.y;
        
        						if (evt.shiftKey) {
        							var xya = svgedit.math.snapToAngle(lastx, lasty, x, y);
        							x = xya.x;
        							y = xya.y;
        						}
        						
        						// Use the segment defined by stretchy
        						s_seg = stretchy.pathSegList.getItem(1);
        						if (s_seg.pathSegType === 4) {
        							newseg = drawn_path.createSVGPathSegLinetoAbs(round(x), round(y));
        						} else {
        							newseg = drawn_path.createSVGPathSegCurvetoCubicAbs(
        								round(x),
        								round(y),
        								s_seg.x1 / current_zoom,
        								s_seg.y1 / current_zoom,
        								s_seg.x2 / current_zoom,
        								s_seg.y2 / current_zoom
        							);
        						}
        						
        						drawn_path.pathSegList.appendItem(newseg);
        						
        						x *= current_zoom;
        						y *= current_zoom;
        						
        						// set stretchy line to latest point
        						stretchy.setAttribute('d', ['M', x, y, x, y].join(' '));
        						index = num;
        						if (subpath) {index += svgedit.path.path.segs.length;}
        						svgedit.path.addPointGrip(index, x, y);
        					}
        //					keep = true;
        				}
        				
        				return;
        			}
        			
        			// TODO: Make sure current_path isn't null at this point
        			if (!svgedit.path.path) {return;}
        			
        			svgedit.path.path.storeD();
        			
        			id = evt.target.id;
        			var cur_pt;
        			if (id.substr(0,14) == 'pathpointgrip_') {
        				// Select this point
        				cur_pt = svgedit.path.path.cur_pt = parseInt(id.substr(14));
        				svgedit.path.path.dragging = [start_x, start_y];
        				var seg = svgedit.path.path.segs[cur_pt];
        				
        				// only clear selection if shift is not pressed (otherwise, add 
        				// node to selection)
        				if (!evt.shiftKey) {
        					if (svgedit.path.path.selected_pts.length <= 1 || !seg.selected) {
        						svgedit.path.path.clearSelection();
        					}
        					svgedit.path.path.addPtsToSelection(cur_pt);
        				} else if (seg.selected) {
        					svgedit.path.path.removePtFromSelection(cur_pt);
        				} else {
        					svgedit.path.path.addPtsToSelection(cur_pt);
        				}
        			} else if (id.indexOf('ctrlpointgrip_') == 0) {
        				svgedit.path.path.dragging = [start_x, start_y];
        				
        				var parts = id.split('_')[1].split('c');
        				cur_pt = Number(parts[0]);
        				var ctrl_num = Number(parts[1]);
        				svgedit.path.path.selectPt(cur_pt, ctrl_num);
        			}
        
        			// Start selection box
        			if (!svgedit.path.path.dragging) {
        				if (rubberBox == null) {
        					rubberBox = selectorManager.getRubberBandBox();
        				}
        				svgedit.utilities.assignAttributes(rubberBox, {
        						'x': start_x * current_zoom,
        						'y': start_y * current_zoom,
        						'width': 0,
        						'height': 0,
        						'display': 'inline'
        				}, 100);
        			}
        		},
        		mouseMove: function(mouse_x, mouse_y) {
        			hasMoved = true;
        			if (current_mode === 'path') {
        				if (!drawn_path) {return;}
        				var seglist = drawn_path.pathSegList;
        				var index = seglist.numberOfItems - 1;
        
        				if (newPoint) {
        					// First point
        //					if (!index) {return;}
        
        					// Set control points
        					var pointGrip1 = svgedit.path.addCtrlGrip('1c1');
        					var pointGrip2 = svgedit.path.addCtrlGrip('0c2');
        					
        					// dragging pointGrip1
        					pointGrip1.setAttribute('cx', mouse_x);
        					pointGrip1.setAttribute('cy', mouse_y);
        					pointGrip1.setAttribute('display', 'inline');
        
        					var pt_x = newPoint[0];
        					var pt_y = newPoint[1];
        					
        					// set curve
        					var seg = seglist.getItem(index);
        					var cur_x = mouse_x / current_zoom;
        					var cur_y = mouse_y / current_zoom;
        					var alt_x = (pt_x + (pt_x - cur_x));
        					var alt_y = (pt_y + (pt_y - cur_y));
        					
        					pointGrip2.setAttribute('cx', alt_x * current_zoom);
        					pointGrip2.setAttribute('cy', alt_y * current_zoom);
        					pointGrip2.setAttribute('display', 'inline');
        					
        					var ctrlLine = svgedit.path.getCtrlLine(1);
        					svgedit.utilities.assignAttributes(ctrlLine, {
        						x1: mouse_x,
        						y1: mouse_y,
        						x2: alt_x * current_zoom,
        						y2: alt_y * current_zoom,
        						display: 'inline'
        					});
        
        					if (index === 0) {
        						firstCtrl = [mouse_x, mouse_y];
        					} else {
        						var last = seglist.getItem(index - 1);
        						var last_x = last.x;
        						var last_y = last.y;
        	
        						if (last.pathSegType === 6) {
        							last_x += (last_x - last.x2);
        							last_y += (last_y - last.y2);
        						} else if (firstCtrl) {
        							last_x = firstCtrl[0]/current_zoom;
        							last_y = firstCtrl[1]/current_zoom;
        						}
        						svgedit.path.replacePathSeg(6, index, [pt_x, pt_y, last_x, last_y, alt_x, alt_y], drawn_path);
        					}
        				} else {
        					var stretchy = svgedit.utilities.getElem('path_stretch_line');
        					if (stretchy) {
        						var prev = seglist.getItem(index);
        						if (prev.pathSegType === 6) {
        							var prev_x = prev.x + (prev.x - prev.x2);
        							var prev_y = prev.y + (prev.y - prev.y2);
        							svgedit.path.replacePathSeg(6, 1, [mouse_x, mouse_y, prev_x * current_zoom, prev_y * current_zoom, mouse_x, mouse_y], stretchy);							
        						} else if (firstCtrl) {
        							svgedit.path.replacePathSeg(6, 1, [mouse_x, mouse_y, firstCtrl[0], firstCtrl[1], mouse_x, mouse_y], stretchy);
        						} else {
        							svgedit.path.replacePathSeg(4, 1, [mouse_x, mouse_y], stretchy);
        						}
        					}
        				}
        				return;
        			}
        			// if we are dragging a point, let's move it
        			if (svgedit.path.path.dragging) {
        				var pt = svgedit.path.getPointFromGrip({
        					x: svgedit.path.path.dragging[0],
        					y: svgedit.path.path.dragging[1]
        				}, svgedit.path.path);
        				var mpt = svgedit.path.getPointFromGrip({
        					x: mouse_x,
        					y: mouse_y
        				}, svgedit.path.path);
        				var diff_x = mpt.x - pt.x;
        				var diff_y = mpt.y - pt.y;
        				svgedit.path.path.dragging = [mouse_x, mouse_y];
        				
        				if (svgedit.path.path.dragctrl) {
        					svgedit.path.path.moveCtrl(diff_x, diff_y);
        				} else {
        					svgedit.path.path.movePts(diff_x, diff_y);
        				}
        			} else {
        				svgedit.path.path.selected_pts = [];
        				svgedit.path.path.eachSeg(function(i) {
        					var seg = this;
        					if (!seg.next && !seg.prev) {return;}
        						
        					var item = seg.item;
        					var rbb = rubberBox.getBBox();
        					
        					var pt = svgedit.path.getGripPt(seg);
        					var pt_bb = {
        						x: pt.x,
        						y: pt.y,
        						width: 0,
        						height: 0
        					};
        				
        					var sel = svgedit.math.rectsIntersect(rbb, pt_bb);
        
        					this.select(sel);
        					//Note that addPtsToSelection is not being run
        					if (sel) {svgedit.path.path.selected_pts.push(seg.index);}
        				});
        
        			}
        		}, 
        		mouseUp: function(evt, element, mouse_x, mouse_y) {
        			
        			// Create mode
        			if (current_mode === 'path') {
        				newPoint = null;
        				if (!drawn_path) {
        					element = svgedit.utilities.getElem(getId());
        					started = false;
        					firstCtrl = null;
        				}
        
        				return {
        					keep: true,
        					element: element
        				};
        			}
        			
        			// Edit mode
        			
        			if (svgedit.path.path.dragging) {
        				var last_pt = svgedit.path.path.cur_pt;
        
        				svgedit.path.path.dragging = false;
        				svgedit.path.path.dragctrl = false;
        				svgedit.path.path.update();
        				
        				if (hasMoved) {
        					svgedit.path.path.endChanges('Move path point(s)');
        				} 
        				
        				if (!evt.shiftKey && !hasMoved) {
        					svgedit.path.path.selectPt(last_pt);
        				} 
        			} else if (rubberBox && rubberBox.getAttribute('display') != 'none') {
        				// Done with multi-node-select
        				rubberBox.setAttribute('display', 'none');
        				
        				if (rubberBox.getAttribute('width') <= 2 && rubberBox.getAttribute('height') <= 2) {
        					pathActions.toSelectMode(evt.target);
        				}
        				
        			// else, move back to select mode	
        			} else {
        				pathActions.toSelectMode(evt.target);
        			}
        			hasMoved = false;
        		},
        		toEditMode: function(element) {
        			svgedit.path.path = svgedit.path.getPath_(element);
        			current_mode = 'pathedit';
        			clearSelection();
        			svgedit.path.path.show(true).update();
        			svgedit.path.path.oldbbox = svgedit.utilities.getBBox(svgedit.path.path.elem);
        			subpath = false;
        		},
        		toSelectMode: function(elem) {
        			var selPath = (elem == svgedit.path.path.elem);
        			current_mode = 'select';
        			svgedit.path.path.show(false);
        			current_path = false;
        			clearSelection();
        			
        			if (svgedit.path.path.matrix) {
        				// Rotated, so may need to re-calculate the center
        				svgedit.path.recalcRotatedPath();
        			}
        			
        			if (selPath) {
        				call('selected', [elem]);
        				addToSelection([elem], true);
        			}
        		},
        		addSubPath: function(on) {
        			if (on) {
        				// Internally we go into "path" mode, but in the UI it will
        				// still appear as if in "pathedit" mode.
        				current_mode = 'path';
        				subpath = true;
        			} else {
        				pathActions.clear(true);
        				pathActions.toEditMode(svgedit.path.path.elem);
        			}
        		},
        		select: function(target) {
        			if (current_path === target) {
        				pathActions.toEditMode(target);
        				current_mode = 'pathedit';
        			} // going into pathedit mode
        			else {
        				current_path = target;
        			}	
        		},
        		reorient: function() {
        			var elem = selectedElements[0];
        			if (!elem) {return;}
        			var angle = svgedit.utilities.getRotationAngle(elem);
        			if (angle == 0) {return;}
        			
        			var batchCmd = new svgedit.history.BatchCommand('Reorient path');
        			var changes = {
        				d: elem.getAttribute('d'),
        				transform: elem.getAttribute('transform')
        			};
        			batchCmd.addSubCommand(new svgedit.history.ChangeElementCommand(elem, changes));
        			clearSelection();
        			this.resetOrientation(elem);
        			
        			addCommandToHistory(batchCmd);
        
        			// Set matrix to null
        			svgedit.path.getPath_(elem).show(false).matrix = null; 
        
        			this.clear();
        	
        			addToSelection([elem], true);
        			call('changed', selectedElements);
        		},
        		
        		clear: function(remove) {
        			current_path = null;
        			if (drawn_path) {
        				var elem = svgedit.utilities.getElem(getId());
        				$(svgedit.utilities.getElem('path_stretch_line')).remove();
        				$(elem).remove();
        				$(svgedit.utilities.getElem('pathpointgrip_container')).find('*').attr('display', 'none');
        				drawn_path = firstCtrl = null;
        				started = false;
        			} else if (current_mode == 'pathedit') {
        				this.toSelectMode();
        			}
        			if (svgedit.path.path) {svgedit.path.path.init().show(false);}
        		},
        		resetOrientation: function(path) {
        			if (path == null || path.nodeName != 'path') {return false;}
        			var tlist = svgedit.transformlist.getTransformList(path);
        			var m = svgedit.math.transformListToTransform(tlist).matrix;
        			tlist.clear();
        			path.removeAttribute('transform');
        			var segList = path.pathSegList;
        			
        			// Opera/win/non-EN throws an error here.
        			// TODO: Find out why!
        			// Presumed fixed in Opera 10.5, so commented out for now
        			
        //			try {
        				var len = segList.numberOfItems;
        //			} catch(err) {
        //				var fixed_d = pathActions.convertPath(path);
        //				path.setAttribute('d', fixed_d);
        //				segList = path.pathSegList;
        //				var len = segList.numberOfItems;
        //			}
        			var i, last_x, last_y;
        
        			for (i = 0; i < len; ++i) {
        				var seg = segList.getItem(i);
        				var type = seg.pathSegType;
        				if (type == 1) {continue;}
        				var pts = [];
        				$.each(['',1,2], function(j, n) {
        					var x = seg['x'+n], y = seg['y'+n];
        					if (x !== undefined && y !== undefined) {
        						var pt = svgedit.math.transformPoint(x, y, m);
        						pts.splice(pts.length, 0, pt.x, pt.y);
        					}
        				});
        				svgedit.path.replacePathSeg(type, i, pts, path);
        			}
        			
        			reorientGrads(path, m);
        		},
        		zoomChange: function() {
        			if (current_mode == 'pathedit') {
        				svgedit.path.path.update();
        			}
        		},
        		getNodePoint: function() {
        			var sel_pt = svgedit.path.path.selected_pts.length ? svgedit.path.path.selected_pts[0] : 1;
        
        			var seg = svgedit.path.path.segs[sel_pt];
        			return {
        				x: seg.item.x,
        				y: seg.item.y,
        				type: seg.type
        			};
        		}, 
        		linkControlPoints: function(linkPoints) {
        			svgedit.path.setLinkControlPoints(linkPoints);
        		},
        		clonePathNode: function() {
        			svgedit.path.path.storeD();
        			
        			var sel_pts = svgedit.path.path.selected_pts;
        			var segs = svgedit.path.path.segs;
        			
        			var i = sel_pts.length;
        			var nums = [];
        
        			while (i--) {
        				var pt = sel_pts[i];
        				svgedit.path.path.addSeg(pt);
        				
        				nums.push(pt + i);
        				nums.push(pt + i + 1);
        			}
        			svgedit.path.path.init().addPtsToSelection(nums);
        
        			svgedit.path.path.endChanges('Clone path node(s)');
        		},
        		opencloseSubPath: function() {
        			var sel_pts = svgedit.path.path.selected_pts;
        			// Only allow one selected node for now
        			if (sel_pts.length !== 1) {return;}
        			
        			var elem = svgedit.path.path.elem;
        			var list = elem.pathSegList;
        
        			var len = list.numberOfItems;
        
        			var index = sel_pts[0];
        			
        			var open_pt = null;
        			var start_item = null;
        
        			// Check if subpath is already open
        			svgedit.path.path.eachSeg(function(i) {
        				if (this.type === 2 && i <= index) {
        					start_item = this.item;
        				}
        				if (i <= index) {return true;}
        				if (this.type === 2) {
        					// Found M first, so open
        					open_pt = i;
        					return false;
        				}
        				if (this.type === 1) {
        					// Found Z first, so closed
        					open_pt = false;
        					return false;
        				}
        			});
        			
        			if (open_pt == null) {
        				// Single path, so close last seg
        				open_pt = svgedit.path.path.segs.length - 1;
        			}
        
        			if (open_pt !== false) {
        				// Close this path
        				
        				// Create a line going to the previous "M"
        				var newseg = elem.createSVGPathSegLinetoAbs(start_item.x, start_item.y);
        			
        				var closer = elem.createSVGPathSegClosePath();
        				if (open_pt == svgedit.path.path.segs.length - 1) {
        					list.appendItem(newseg);
        					list.appendItem(closer);
        				} else {
        					svgedit.path.insertItemBefore(elem, closer, open_pt);
        					svgedit.path.insertItemBefore(elem, newseg, open_pt);
        				}
        				
        				svgedit.path.path.init().selectPt(open_pt+1);
        				return;
        			}
        			
        			// M 1,1 L 2,2 L 3,3 L 1,1 z // open at 2,2
        			// M 2,2 L 3,3 L 1,1
        			
        			// M 1,1 L 2,2 L 1,1 z M 4,4 L 5,5 L6,6 L 5,5 z 
        			// M 1,1 L 2,2 L 1,1 z [M 4,4] L 5,5 L(M)6,6 L 5,5 z 
        			
        			var seg = svgedit.path.path.segs[index];
        			
        			if (seg.mate) {
        				list.removeItem(index); // Removes last "L"
        				list.removeItem(index); // Removes the "Z"
        				svgedit.path.path.init().selectPt(index - 1);
        				return;
        			}
        			
        			var i, last_m, z_seg;
        			
        			// Find this sub-path's closing point and remove
        			for (i = 0; i<list.numberOfItems; i++) {
        				var item = list.getItem(i);
        
        				if (item.pathSegType === 2) {
        					// Find the preceding M
        					last_m = i;
        				} else if (i === index) {
        					// Remove it
        					list.removeItem(last_m);
        //						index--;
        				} else if (item.pathSegType === 1 && index < i) {
        					// Remove the closing seg of this subpath
        					z_seg = i-1;
        					list.removeItem(i);
        					break;
        				}
        			}
        			
        			var num = (index - last_m) - 1;
        			
        			while (num--) {
        				svgedit.path.insertItemBefore(elem, list.getItem(last_m), z_seg);
        			}
        			
        			var pt = list.getItem(last_m);
        			
        			// Make this point the new "M"
        			svgedit.path.replacePathSeg(2, last_m, [pt.x, pt.y]);
        			
        			i = index; // i is local here, so has no effect; what is the reason for this?
        			
        			svgedit.path.path.init().selectPt(0);
        		},
        		deletePathNode: function() {
        			if (!pathActions.canDeleteNodes) {return;}
        			svgedit.path.path.storeD();
        			
        			var sel_pts = svgedit.path.path.selected_pts;
        			var i = sel_pts.length;
        
        			while (i--) {
        				var pt = sel_pts[i];
        				svgedit.path.path.deleteSeg(pt);
        			}
        			
        			// Cleanup
        			var cleanup = function() {
        				var segList = svgedit.path.path.elem.pathSegList;
        				var len = segList.numberOfItems;
        				
        				var remItems = function(pos, count) {
        					while (count--) {
        						segList.removeItem(pos);
        					}
        				};
        
        				if (len <= 1) {return true;}
        				
        				while (len--) {
        					var item = segList.getItem(len);
        					if (item.pathSegType === 1) {
        						var prev = segList.getItem(len-1);
        						var nprev = segList.getItem(len-2);
        						if (prev.pathSegType === 2) {
        							remItems(len-1, 2);
        							cleanup();
        							break;
        						} else if (nprev.pathSegType === 2) {
        							remItems(len-2, 3);
        							cleanup();
        							break;
        						}
        
        					} else if (item.pathSegType === 2) {
        						if (len > 0) {
        							var prev_type = segList.getItem(len-1).pathSegType;
        							// Path has M M
        							if (prev_type === 2) {
        								remItems(len-1, 1);
        								cleanup();
        								break;
        							// Entire path ends with Z M 
        							} else if (prev_type === 1 && segList.numberOfItems-1 === len) {
        								remItems(len, 1);
        								cleanup();
        								break;
        							}
        						}
        					}
        				}	
        				return false;
        			};
        			
        			cleanup();
        			
        			// Completely delete a path with 1 or 0 segments
        			if (svgedit.path.path.elem.pathSegList.numberOfItems <= 1) {
        				pathActions.toSelectMode(svgedit.path.path.elem);
        				canvas.deleteSelectedElements();
        				return;
        			}
        			
        			svgedit.path.path.init();
        			svgedit.path.path.clearSelection();
        			
        			// TODO: Find right way to select point now
        			// path.selectPt(sel_pt);
        			if (window.opera) { // Opera repaints incorrectly
        				var cp = $(svgedit.path.path.elem); 
        				cp.attr('d', cp.attr('d'));
        			}
        			svgedit.path.path.endChanges('Delete path node(s)');
        		},
        		smoothPolylineIntoPath: smoothPolylineIntoPath,
        		setSegType: function(v) {
        			svgedit.path.path.setSegType(v);
        		},
        		moveNode: function(attr, newValue) {
        			var sel_pts = svgedit.path.path.selected_pts;
        			if (!sel_pts.length) {return;}
        			
        			svgedit.path.path.storeD();
        			
        			// Get first selected point
        			var seg = svgedit.path.path.segs[sel_pts[0]];
        			var diff = {x:0, y:0};
        			diff[attr] = newValue - seg.item[attr];
        			
        			seg.move(diff.x, diff.y);
        			svgedit.path.path.endChanges('Move path point');
        		},
        		fixEnd: function(elem) {
        			// Adds an extra segment if the last seg before a Z doesn't end
        			// at its M point
        			// M0,0 L0,100 L100,100 z
        			var segList = elem.pathSegList;
        			var len = segList.numberOfItems;
        			var i, last_m;
        			for (i = 0; i < len; ++i) {
        				var item = segList.getItem(i);
        				if (item.pathSegType === 2) {
        					last_m = item;
        				}
        				
        				if (item.pathSegType === 1) {
        					var prev = segList.getItem(i-1);
        					if (prev.x != last_m.x || prev.y != last_m.y) {
        						// Add an L segment here
        						var newseg = elem.createSVGPathSegLinetoAbs(last_m.x, last_m.y);
        						svgedit.path.insertItemBefore(elem, newseg, i);
        						// Can this be done better?
        						pathActions.fixEnd(elem);
        						break;
        					}
        					
        				}
        			}
        			if (svgedit.browser.isWebkit()) {resetD(elem);}
        		},
        		// Convert a path to one with only absolute or relative values
        		convertPath: function(path, toRel) {
        			var i;
        			var segList = path.pathSegList;
        			var len = segList.numberOfItems;
        			var curx = 0, cury = 0;
        			var d = '';
        			var last_m = null;
        			
        			for (i = 0; i < len; ++i) {
        				var seg = segList.getItem(i);
        				// if these properties are not in the segment, set them to zero
        				var x = seg.x || 0,
        					y = seg.y || 0,
        					x1 = seg.x1 || 0,
        					y1 = seg.y1 || 0,
        					x2 = seg.x2 || 0,
        					y2 = seg.y2 || 0;
        	
        				var type = seg.pathSegType;
        				var letter = pathMap[type]['to'+(toRel?'Lower':'Upper')+'Case']();
        				
        				var addToD = function(pnts, more, last) {
        					var str = '';
        					more = more ? ' ' + more.join(' ') : '';
        					last = last ? ' ' + svgedit.units.shortFloat(last) : '';
        					$.each(pnts, function(i, pnt) {
        						pnts[i] = svgedit.units.shortFloat(pnt);
        					});
        					d += letter + pnts.join(' ') + more + last;
        				};
        				
        				switch (type) {
        					case 1: // z,Z closepath (Z/z)
        						d += 'z';
        						break;
        					case 12: // absolute horizontal line (H)
        						x -= curx;
        					case 13: // relative horizontal line (h)
        						if (toRel) {
        							curx += x;
        							letter = 'l';
        						} else {
        							x += curx;
        							curx = x;
        							letter = 'L';
        						}
        						// Convert to "line" for easier editing
        						addToD([[x, cury]]);
        						break;
        					case 14: // absolute vertical line (V)
        						y -= cury;
        					case 15: // relative vertical line (v)
        						if (toRel) {
        							cury += y;
        							letter = 'l';
        						} else {
        							y += cury;
        							cury = y;
        							letter = 'L';
        						}
        						// Convert to "line" for easier editing
        						addToD([[curx, y]]);
        						break;
        					case 2: // absolute move (M)
        					case 4: // absolute line (L)
        					case 18: // absolute smooth quad (T)
        						x -= curx;
        						y -= cury;
        					case 5: // relative line (l)
        					case 3: // relative move (m)
        						// If the last segment was a "z", this must be relative to 
        						if (last_m && segList.getItem(i-1).pathSegType === 1 && !toRel) {
        							curx = last_m[0];
        							cury = last_m[1];
        						}
        					
        					case 19: // relative smooth quad (t)
        						if (toRel) {
        							curx += x;
        							cury += y;
        						} else {
        							x += curx;
        							y += cury;
        							curx = x;
        							cury = y;
        						}
        						if (type === 3) {last_m = [curx, cury];}
        						
        						addToD([[x, y]]);
        						break;
        					case 6: // absolute cubic (C)
        						x -= curx; x1 -= curx; x2 -= curx;
        						y -= cury; y1 -= cury; y2 -= cury;
        					case 7: // relative cubic (c)
        						if (toRel) {
        							curx += x;
        							cury += y;
        						} else {
        							x += curx; x1 += curx; x2 += curx;
        							y += cury; y1 += cury; y2 += cury;
        							curx = x;
        							cury = y;
        						}
        						addToD([[x1, y1], [x2, y2], [x, y]]);
        						break;
        					case 8: // absolute quad (Q)
        						x -= curx; x1 -= curx;
        						y -= cury; y1 -= cury;
        					case 9: // relative quad (q) 
        						if (toRel) {
        							curx += x;
        							cury += y;
        						} else {
        							x += curx; x1 += curx;
        							y += cury; y1 += cury;
        							curx = x;
        							cury = y;
        						}
        						addToD([[x1, y1],[x, y]]);
        						break;
        					case 10: // absolute elliptical arc (A)
        						x -= curx;
        						y -= cury;
        					case 11: // relative elliptical arc (a)
        						if (toRel) {
        							curx += x;
        							cury += y;
        						} else {
        							x += curx;
        							y += cury;
        							curx = x;
        							cury = y;
        						}
        						addToD([[seg.r1, seg.r2]], [
        								seg.angle,
        								(seg.largeArcFlag ? 1 : 0),
        								(seg.sweepFlag ? 1 : 0)
        							], [x, y]
        						);
        						break;
        					case 16: // absolute smooth cubic (S)
        						x -= curx; x2 -= curx;
        						y -= cury; y2 -= cury;
        					case 17: // relative smooth cubic (s)
        						if (toRel) {
        							curx += x;
        							cury += y;
        						} else {
        							x += curx; x2 += curx;
        							y += cury; y2 += cury;
        							curx = x;
        							cury = y;
        						}
        						addToD([[x2, y2],[x, y]]);
        						break;
        				} // switch on path segment type
        			} // for each segment
        			return d;
        		}
        	};
        }();
        // end pathActions
        
        // Group: Serialization
        
        // Function: removeUnusedDefElems
        // Looks at DOM elements inside the <defs> to see if they are referred to,
        // removes them from the DOM if they are not.
        // 
        // Returns:
        // The amount of elements that were removed
        var removeUnusedDefElems = this.removeUnusedDefElems = function() {
        	var defs = svgcontent.getElementsByTagNameNS(NS.SVG, 'defs');
        	if (!defs || !defs.length) {return 0;}
        	
        //	if (!defs.firstChild) {return;}
        	
        	var defelem_uses = [],
        		numRemoved = 0;
        	var attrs = ['fill', 'stroke', 'filter', 'marker-start', 'marker-mid', 'marker-end'];
        	var alen = attrs.length;
        	
        	var all_els = svgcontent.getElementsByTagNameNS(NS.SVG, '*');
        	var all_len = all_els.length;
        	
        	var i, j;
        	for (i = 0; i < all_len; i++) {
        		var el = all_els[i];
        		for (j = 0; j < alen; j++) {
        			var ref = svgedit.utilities.getUrlFromAttr(el.getAttribute(attrs[j]));
        			if (ref) {
        				defelem_uses.push(ref.substr(1));
        			}
        		}
        		
        		// gradients can refer to other gradients
        		var href = getHref(el);
        		if (href && href.indexOf('#') === 0) {
        			defelem_uses.push(href.substr(1));
        		}
        	}
        	
        	var defelems = $(defs).find('linearGradient, radialGradient, filter, marker, svg, symbol');
        	i = defelems.length;
        	while (i--) {
        		var defelem = defelems[i];
        		var id = defelem.id;
        		if (defelem_uses.indexOf(id) < 0) {
        			// Not found, so remove (but remember)
        			removedElements[id] = defelem;
        			defelem.parentNode.removeChild(defelem);
        			numRemoved++;
        		}
        	}
        
        	return numRemoved;
        };
        
        // Function: svgCanvasToString
        // Main function to set up the SVG content for output 
        //
        // Returns: 
        // String containing the SVG image for output
        this.svgCanvasToString = function() {
        	// keep calling it until there are none to remove
        	while (removeUnusedDefElems() > 0) {}
        	
        	pathActions.clear(true);
        	
        	// Keep SVG-Edit comment on top
        	$.each(svgcontent.childNodes, function(i, node) {
        		if (i && node.nodeType === 8 && node.data.indexOf('Created with') >= 0) {
        			svgcontent.insertBefore(node, svgcontent.firstChild);
        		}
        	});
        	
        	// Move out of in-group editing mode
        	if (current_group) {
        		leaveContext();
        		selectOnly([current_group]);
        	}
        	
        	var naked_svgs = [];
        	
        	// Unwrap gsvg if it has no special attributes (only id and style)
        	$(svgcontent).find('g:data(gsvg)').each(function() {
        		var attrs = this.attributes;
        		var len = attrs.length;
        		var i;
        		for (i = 0; i < len; i++) {
        			if (attrs[i].nodeName == 'id' || attrs[i].nodeName == 'style') {
        				len--;
        			}
        		}
        		// No significant attributes, so ungroup
        		if (len <= 0) {
        			var svg = this.firstChild;
        			naked_svgs.push(svg);
        			$(this).replaceWith(svg);
        		}
        	});
        	var output = this.svgToString(svgcontent, 0);
        	
        	// Rewrap gsvg
        	if (naked_svgs.length) {
        		$(naked_svgs).each(function() {
        			groupSvgElem(this);
        		});
        	}
        	
        	return output;
        };
        
        // Function: svgToString
        // Sub function ran on each SVG element to convert it to a string as desired
        // 
        // Parameters: 
        // elem - The SVG element to convert
        // indent - Integer with the amount of spaces to indent this tag
        //
        // Returns: 
        // String with the given element as an SVG tag
        this.svgToString = function(elem, indent) {
        	var out = [], 
        		toXml = svgedit.utilities.toXml;
        	var unit = curConfig.baseUnit;
        	var unit_re = new RegExp('^-?[\\d\\.]+' + unit + '$');
        
        	if (elem) {
        		cleanupElement(elem);
        		var attrs = elem.attributes,
        			attr,
        			i,
        			childs = elem.childNodes;
        		
        		for (i = 0; i < indent; i++) {out.push(' ');}
        		out.push('<'); out.push(elem.nodeName);
        		if (elem.id === 'svgcontent') {
        			// Process root element separately
        			var res = getResolution();
        			
        			var vb = '';
        			// TODO: Allow this by dividing all values by current baseVal
        			// Note that this also means we should properly deal with this on import
        //			if (curConfig.baseUnit !== 'px') {
        //				var unit = curConfig.baseUnit;
        //				var unit_m = svgedit.units.getTypeMap()[unit];
        //				res.w = svgedit.units.shortFloat(res.w / unit_m)
        //				res.h = svgedit.units.shortFloat(res.h / unit_m)
        //				vb = ' viewBox="' + [0, 0, res.w, res.h].join(' ') + '"';
        //				res.w += unit;
        //				res.h += unit;
        //			}
        			
        			if (unit !== 'px') {
        				res.w = svgedit.units.convertUnit(res.w, unit) + unit;
        				res.h = svgedit.units.convertUnit(res.h, unit) + unit;
        			}
        			
        			out.push(' width="' + res.w + '" height="' + res.h + '"' + vb + ' xmlns="'+NS.SVG+'"');
        			
        			var nsuris = {};
        			
        			// Check elements for namespaces, add if found
        			$(elem).find('*').andSelf().each(function() {
        				var el = this;
        				// for some elements have no attribute
        				var uri = this.namespaceURI;
        				if(uri && !nsuris[uri] && nsMap[uri] && nsMap[uri] !== 'xmlns' && nsMap[uri] !== 'xml' ) {
        					nsuris[uri] = true;
        					out.push(' xmlns:' + nsMap[uri] + '="' + uri +'"');
        				}
        		
        				$.each(this.attributes, function(i, attr) {
        					var uri = attr.namespaceURI;
        					if (uri && !nsuris[uri] && nsMap[uri] !== 'xmlns' && nsMap[uri] !== 'xml' ) {
        						nsuris[uri] = true;
        						out.push(' xmlns:' + nsMap[uri] + '="' + uri +'"');
        					}
        				});
        			});
        			
        			i = attrs.length;
        			var attr_names = ['width', 'height', 'xmlns', 'x', 'y', 'viewBox', 'id', 'overflow'];
        			while (i--) {
        				attr = attrs.item(i);
        				var attrVal = toXml(attr.value);
        				
        				// Namespaces have already been dealt with, so skip
        				if (attr.nodeName.indexOf('xmlns:') === 0) {continue;}
        
        				// only serialize attributes we don't use internally
        				if (attrVal != '' && attr_names.indexOf(attr.localName) == -1) {
        
        					if (!attr.namespaceURI || nsMap[attr.namespaceURI]) {
        						out.push(' '); 
        						out.push(attr.nodeName); out.push('="');
        						out.push(attrVal); out.push('"');
        					}
        				}
        			}
        		} else {
        			// Skip empty defs
        			if (elem.nodeName === 'defs' && !elem.firstChild) {return;}
        		
        			var moz_attrs = ['-moz-math-font-style', '_moz-math-font-style'];
        			for (i = attrs.length - 1; i >= 0; i--) {
        				attr = attrs.item(i);
        				var attrVal = toXml(attr.value);
        				//remove bogus attributes added by Gecko
        				if (moz_attrs.indexOf(attr.localName) >= 0) {continue;}
        				if (attrVal != '') {
        					if (attrVal.indexOf('pointer-events') === 0) {continue;}
        					if (attr.localName === 'class' && attrVal.indexOf('se_') === 0) {continue;}
        					out.push(' '); 
        					if (attr.localName === 'd') {attrVal = pathActions.convertPath(elem, true);}
        					if (!isNaN(attrVal)) {
        						attrVal = svgedit.units.shortFloat(attrVal);
        					} else if (unit_re.test(attrVal)) {
        						attrVal = svgedit.units.shortFloat(attrVal) + unit;
        					}
        					
        					// Embed images when saving 
        					if (save_options.apply
        						&& elem.nodeName === 'image' 
        						&& attr.localName === 'href'
        						&& save_options.images
        						&& save_options.images === 'embed') 
        					{
        						var img = encodableImages[attrVal];
        						if (img) {attrVal = img;}
        					}
        					
        					// map various namespaces to our fixed namespace prefixes
        					// (the default xmlns attribute itself does not get a prefix)
        					if (!attr.namespaceURI || attr.namespaceURI == NS.SVG || nsMap[attr.namespaceURI]) {
        						out.push(attr.nodeName); out.push('="');
        						out.push(attrVal); out.push('"');
        					}
        				}
        			}
        		}
        
        		if (elem.hasChildNodes()) {
        			out.push('>');
        			indent++;
        			var bOneLine = false;
        			
        			for (i = 0; i < childs.length; i++) {
        				var child = childs.item(i);
        				switch(child.nodeType) {
        				case 1: // element node
        					out.push('\n');
        					out.push(this.svgToString(childs.item(i), indent));
        					break;
        				case 3: // text node
        					var str = child.nodeValue.replace(/^\s+|\s+$/g, '');
        					if (str != '') {
        						bOneLine = true;
        						out.push(String(toXml(str)));
        					}
        					break;
        				case 4: // cdata node
        					out.push('\n');
        					out.push(new Array(indent+1).join(' '));
        					out.push('<![CDATA[');
        					out.push(child.nodeValue);
        					out.push(']]>');
        					break;
        				case 8: // comment
        					out.push('\n');
        					out.push(new Array(indent+1).join(' '));
        					out.push('<!--');
        					out.push(child.data);
        					out.push('-->');
        					break;
        				} // switch on node type
        			}
        			indent--;
        			if (!bOneLine) {
        				out.push('\n');
        				for (i = 0; i < indent; i++) {out.push(' ');}
        			}
        			out.push('</'); out.push(elem.nodeName); out.push('>');
        		} else {
        			out.push('/>');
        		}
        	}
        	return out.join('');
        }; // end svgToString()
        
        // Function: embedImage
        // Converts a given image file to a data URL when possible, then runs a given callback
        //
        // Parameters: 
        // val - String with the path/URL of the image
        // callback - Optional function to run when image data is found, supplies the
        // result (data URL or false) as first parameter.
        this.embedImage = function(val, callback) {
        	// load in the image and once it's loaded, get the dimensions
        	$(new Image()).load(function() {
        		// create a canvas the same size as the raster image
        		var canvas = document.createElement('canvas');
        		canvas.width = this.width;
        		canvas.height = this.height;
        		// load the raster image into the canvas
        		canvas.getContext('2d').drawImage(this, 0, 0);
        		// retrieve the data: URL
        		try {
        			var urldata = ';svgedit_url=' + encodeURIComponent(val);
        			urldata = canvas.toDataURL().replace(';base64', urldata+';base64');
        			encodableImages[val] = urldata;
        		} catch(e) {
        			encodableImages[val] = false;
        		}
        		last_good_img_url = val;
        		if (callback) {callback(encodableImages[val]);}
        	}).attr('src', val);
        };
        
        // Function: setGoodImage
        // Sets a given URL to be a "last good image" URL
        this.setGoodImage = function(val) {
        	last_good_img_url = val;
        };
        
        this.open = function() {
        	// Nothing by default, handled by optional widget/extension
        };
        
        // Function: save
        // Serializes the current drawing into SVG XML text and returns it to the 'saved' handler.
        // This function also includes the XML prolog. Clients of the SvgCanvas bind their save
        // function to the 'saved' event.
        //
        // Returns: 
        // Nothing
        this.save = function(opts) {
        	// remove the selected outline before serializing
        	clearSelection();
        	// Update save options if provided
        	if (opts) {$.extend(save_options, opts);}
        	save_options.apply = true;
        	
        	// no need for doctype, see http://jwatt.org/svg/authoring/#doctype-declaration
        	var str = this.svgCanvasToString();
        	call('saved', str);
        };
        
        function getIssues () {
        	// remove the selected outline before serializing
        	clearSelection();
        	
        	// Check for known CanVG issues 
        	var issues = [];
        	
        	// Selector and notice
        	var issue_list = {
        		'feGaussianBlur': uiStrings.exportNoBlur,
        		'foreignObject': uiStrings.exportNoforeignObject,
        		'[stroke-dasharray]': uiStrings.exportNoDashArray
        	};
        	var content = $(svgcontent);
        	
        	// Add font/text check if Canvas Text API is not implemented
        	if (!('font' in $('<canvas>')[0].getContext('2d'))) {
        		issue_list.text = uiStrings.exportNoText;
        	}
        	
        	$.each(issue_list, function(sel, descr) {
        		if (content.find(sel).length) {
        			issues.push(descr);
        		}
        	});
        	return issues;
        }
        
        // Function: rasterExport
        // Generates a Data URL based on the current image, then calls "exported" 
        // with an object including the string, image information, and any issues found
        this.rasterExport = function(imgType, quality, exportWindowName) {
        	var mimeType = 'image/' + imgType.toLowerCase();
        	var issues = getIssues();
        	var str = this.svgCanvasToString();
        	
        	svgedit.utilities.buildCanvgCallback(function () {
        		var type = imgType || 'PNG';
        		if (!$('#export_canvas').length) {
        			$('<canvas>', {id: 'export_canvas'}).hide().appendTo('body');
        		}
        		var c = $('#export_canvas')[0];
        		c.width = svgCanvas.contentW;
        		c.height = svgCanvas.contentH;
        		
        		canvg(c, str, {renderCallback: function() {
        			var dataURLType = (type === 'ICO' ? 'BMP' : type).toLowerCase();
        			var datauri = quality ? c.toDataURL('image/' + dataURLType, quality) : c.toDataURL('image/' + dataURLType);
        			
        			call('exported', {datauri: datauri, svg: str, issues: issues, type: imgType, mimeType: mimeType, quality: quality, exportWindowName: exportWindowName});
        		}});
        	})();
        };
        
        this.exportPDF = function (exportWindowName, outputType) {
        	var that = this;
        	svgedit.utilities.buildJSPDFCallback(function () {
        		var res = getResolution();
        		var orientation = res.w > res.h ? 'landscape' : 'portrait';
        		var units = 'pt'; // curConfig.baseUnit; // We could use baseUnit, but that is presumably not intended for export purposes
        		var doc = jsPDF({
        			orientation: orientation,
        			unit: units,
        			format: [res.w, res.h]
        			// , compressPdf: true
        		}); // Todo: Give options to use predefined jsPDF formats like "a4", etc. from pull-down (with option to keep customizable)
        		var docTitle = getDocumentTitle();
        		doc.setProperties({
        			title: docTitle/*,
        			subject: '',
        			author: '',
        			keywords: '',
        			creator: ''*/
        		});
        		var issues = getIssues();
        		var str = that.svgCanvasToString();
        		doc.addSVG(str, 0, 0);
        
        		// doc.output('save'); // Works to open in a new
        		//  window; todo: configure this and other export
        		//  options to optionally work in this manner as
        		//  opposed to opening a new tab
        		var obj = {svg: str, issues: issues, exportWindowName: exportWindowName};
        		var method = outputType || 'dataurlstring';
        		obj[method] = doc.output(method);
        		call('exportedPDF', obj);
        	})();
        };
        
        // Function: getSvgString
        // Returns the current drawing as raw SVG XML text.
        //
        // Returns:
        // The current drawing as raw SVG XML text.
        this.getSvgString = function() {
        	save_options.apply = false;
        	return this.svgCanvasToString();
        };
        
        // Function: randomizeIds
        // This function determines whether to use a nonce in the prefix, when
        // generating IDs for future documents in SVG-Edit.
        // 
        // Parameters:
        // an optional boolean, which, if true, adds a nonce to the prefix. Thus
        // svgCanvas.randomizeIds() <==> svgCanvas.randomizeIds(true)
        //
        // if you're controlling SVG-Edit externally, and want randomized IDs, call
        // this BEFORE calling svgCanvas.setSvgString
        //
        this.randomizeIds = function(enableRandomization) {
        	if (arguments.length > 0 && enableRandomization == false) {
        		svgedit.draw.randomizeIds(false, getCurrentDrawing());
        	} else {
        		svgedit.draw.randomizeIds(true, getCurrentDrawing());
        	}
        };
        
        // Function: uniquifyElems
        // Ensure each element has a unique ID
        //
        // Parameters:
        // g - The parent element of the tree to give unique IDs
        var uniquifyElems = this.uniquifyElems = function(g) {
        	var ids = {};
        	// TODO: Handle markers and connectors. These are not yet re-identified properly
        	// as their referring elements do not get remapped.
        	//
        	// <marker id='se_marker_end_svg_7'/>
        	// <polyline id='svg_7' se:connector='svg_1 svg_6' marker-end='url(#se_marker_end_svg_7)'/>
        	// 
        	// Problem #1: if svg_1 gets renamed, we do not update the polyline's se:connector attribute
        	// Problem #2: if the polyline svg_7 gets renamed, we do not update the marker id nor the polyline's marker-end attribute
        	var ref_elems = ['filter', 'linearGradient', 'pattern',	'radialGradient', 'symbol', 'textPath', 'use'];
        	
        	svgedit.utilities.walkTree(g, function(n) {
        		// if it's an element node
        		if (n.nodeType == 1) {
        			// and the element has an ID
        			if (n.id) {
        				// and we haven't tracked this ID yet
        				if (!(n.id in ids)) {
        					// add this id to our map
        					ids[n.id] = {elem:null, attrs:[], hrefs:[]};
        				}
        				ids[n.id].elem = n;
        			}
        			
        			// now search for all attributes on this element that might refer
        			// to other elements
        			$.each(ref_attrs, function(i, attr) {
        				var attrnode = n.getAttributeNode(attr);
        				if (attrnode) {
        					// the incoming file has been sanitized, so we should be able to safely just strip off the leading #
        					var url = svgedit.utilities.getUrlFromAttr(attrnode.value),
        						refid = url ? url.substr(1) : null;
        					if (refid) {
        						if (!(refid in ids)) {
        							// add this id to our map
        							ids[refid] = {elem:null, attrs:[], hrefs:[]};
        						}
        						ids[refid].attrs.push(attrnode);
        					}
        				}
        			});
        			
        			// check xlink:href now
        			var href = svgedit.utilities.getHref(n);
        			// TODO: what if an <image> or <a> element refers to an element internally?
        			if (href && ref_elems.indexOf(n.nodeName) >= 0) {
        				var refid = href.substr(1);
        				if (refid) {
        					if (!(refid in ids)) {
        						// add this id to our map
        						ids[refid] = {elem:null, attrs:[], hrefs:[]};
        					}
        					ids[refid].hrefs.push(n);
        				}
        			}						
        		}
        	});
        	
        	// in ids, we now have a map of ids, elements and attributes, let's re-identify
        	var oldid;
        	for (oldid in ids) {
        		if (!oldid) {continue;}
        		var elem = ids[oldid].elem;
        		if (elem) {
        			var newid = getNextId();
        			
        			// assign element its new id
        			elem.id = newid;
        			
        			// remap all url() attributes
        			var attrs = ids[oldid].attrs;
        			var j = attrs.length;
        			while (j--) {
        				var attr = attrs[j];
        				attr.ownerElement.setAttribute(attr.name, 'url(#' + newid + ')');
        			}
        			
        			// remap all href attributes
        			var hreffers = ids[oldid].hrefs;
        			var k = hreffers.length;
        			while (k--) {
        				var hreffer = hreffers[k];
        				svgedit.utilities.setHref(hreffer, '#' + newid);
        			}
        		}
        	}
        };
        
        // Function setUseData
        // Assigns reference data for each use element
        var setUseData = this.setUseData = function(parent) {
        	var elems = $(parent);
        	
        	if (parent.tagName !== 'use') {
        		elems = elems.find('use');
        	}
        	
        	elems.each(function() {
        		var id = getHref(this).substr(1);
        		var ref_elem = svgedit.utilities.getElem(id);
        		if (!ref_elem) {return;}
        		$(this).data('ref', ref_elem);
        		if (ref_elem.tagName == 'symbol' || ref_elem.tagName == 'svg') {
        			$(this).data('symbol', ref_elem).data('ref', ref_elem);
        		}
        	});
        };
        
        // Function convertGradients
        // Converts gradients from userSpaceOnUse to objectBoundingBox
        var convertGradients = this.convertGradients = function(elem) {
        	var elems = $(elem).find('linearGradient, radialGradient');
        	if (!elems.length && svgedit.browser.isWebkit()) {
        		// Bug in webkit prevents regular *Gradient selector search
        		elems = $(elem).find('*').filter(function() {
        			return (this.tagName.indexOf('Gradient') >= 0);
        		});
        	}
        	
        	elems.each(function() {
        		var grad = this;
        		if ($(grad).attr('gradientUnits') === 'userSpaceOnUse') {
        			// TODO: Support more than one element with this ref by duplicating parent grad
        			var elems = $(svgcontent).find('[fill="url(#' + grad.id + ')"],[stroke="url(#' + grad.id + ')"]');
        			if (!elems.length) {return;}
        			
        			// get object's bounding box
        			var bb = svgedit.utilities.getBBox(elems[0]);
        			
        			// This will occur if the element is inside a <defs> or a <symbol>,
        			// in which we shouldn't need to convert anyway.
        			if (!bb) {return;}
        			
        			if (grad.tagName === 'linearGradient') {
        				var g_coords = $(grad).attr(['x1', 'y1', 'x2', 'y2']);
        				
        				// If has transform, convert
        				var tlist = grad.gradientTransform.baseVal;
        				if (tlist && tlist.numberOfItems > 0) {
        					var m = svgedit.math.transformListToTransform(tlist).matrix;
        					var pt1 = svgedit.math.transformPoint(g_coords.x1, g_coords.y1, m);
        					var pt2 = svgedit.math.transformPoint(g_coords.x2, g_coords.y2, m);
        					
        					g_coords.x1 = pt1.x;
        					g_coords.y1 = pt1.y;
        					g_coords.x2 = pt2.x;
        					g_coords.y2 = pt2.y;
        					grad.removeAttribute('gradientTransform');
        				}
        				
        				$(grad).attr({
        					x1: (g_coords.x1 - bb.x) / bb.width,
        					y1: (g_coords.y1 - bb.y) / bb.height,
        					x2: (g_coords.x2 - bb.x) / bb.width,
        					y2: (g_coords.y2 - bb.y) / bb.height
        				});
        				grad.removeAttribute('gradientUnits');
        			}
        			// else {
        				// Note: radialGradient elements cannot be easily converted 
        				// because userSpaceOnUse will keep circular gradients, while
        				// objectBoundingBox will x/y scale the gradient according to
        				// its bbox. 
        				
        				// For now we'll do nothing, though we should probably have
        				// the gradient be updated as the element is moved, as 
        				// inkscape/illustrator do.
        			
        //						var g_coords = $(grad).attr(['cx', 'cy', 'r']);
        //						
        //						$(grad).attr({
        //							cx: (g_coords.cx - bb.x) / bb.width,
        //							cy: (g_coords.cy - bb.y) / bb.height,
        //							r: g_coords.r
        //						});
        //						
        //						grad.removeAttribute('gradientUnits');
        			// }
        		}
        	});
        };
        
        // Function: convertToGroup
        // Converts selected/given <use> or child SVG element to a group
        var convertToGroup = this.convertToGroup = function(elem) {
        	if (!elem) {
        		elem = selectedElements[0];
        	}
        	var $elem = $(elem);
        	var batchCmd = new svgedit.history.BatchCommand();
        	var ts;
        	
        	if ($elem.data('gsvg')) {
        		// Use the gsvg as the new group
        		var svg = elem.firstChild;
        		var pt = $(svg).attr(['x', 'y']);
        		
        		$(elem.firstChild.firstChild).unwrap();
        		$(elem).removeData('gsvg');
        		
        		var tlist = svgedit.transformlist.getTransformList(elem);
        		var xform = svgroot.createSVGTransform();
        		xform.setTranslate(pt.x, pt.y);
        		tlist.appendItem(xform);
        		svgedit.recalculate.recalculateDimensions(elem);
        		call('selected', [elem]);
        	} else if ($elem.data('symbol')) {
        		elem = $elem.data('symbol');
        		
        		ts = $elem.attr('transform');
        		var pos = $elem.attr(['x', 'y']);
        
        		var vb = elem.getAttribute('viewBox');
        		
        		if (vb) {
        			var nums = vb.split(' ');
        			pos.x -= +nums[0];
        			pos.y -= +nums[1];
        		}
        		
        		// Not ideal, but works
        		ts += ' translate(' + (pos.x || 0) + ',' + (pos.y || 0) + ')';
        		
        		var prev = $elem.prev();
        		
        		// Remove <use> element
        		batchCmd.addSubCommand(new svgedit.history.RemoveElementCommand($elem[0], $elem[0].nextSibling, $elem[0].parentNode));
        		$elem.remove();
        		
        		// See if other elements reference this symbol
        		var has_more = $(svgcontent).find('use:data(symbol)').length;
        			
        		var g = svgdoc.createElementNS(NS.SVG, 'g');
        		var childs = elem.childNodes;
        		
        		var i;
        		for (i = 0; i < childs.length; i++) {
        			g.appendChild(childs[i].cloneNode(true));
        		}
        		
        		// Duplicate the gradients for Gecko, since they weren't included in the <symbol>
        		if (svgedit.browser.isGecko()) {
        			var dupeGrads = $(svgedit.utilities.findDefs()).children('linearGradient,radialGradient,pattern').clone();
        			$(g).append(dupeGrads);
        		}
        		
        		if (ts) {
        			g.setAttribute('transform', ts);
        		}
        		
        		var parent = elem.parentNode;
        		
        		uniquifyElems(g);
        		
        		// Put the dupe gradients back into <defs> (after uniquifying them)
        		if (svgedit.browser.isGecko()) {
        			$(findDefs()).append( $(g).find('linearGradient,radialGradient,pattern') );
        		}
        	
        		// now give the g itself a new id
        		g.id = getNextId();
        		
        		prev.after(g);
        		
        		if (parent) {
        			if (!has_more) {
        				// remove symbol/svg element
        				var nextSibling = elem.nextSibling;
        				parent.removeChild(elem);
        				batchCmd.addSubCommand(new svgedit.history.RemoveElementCommand(elem, nextSibling, parent));
        			}
        			batchCmd.addSubCommand(new svgedit.history.InsertElementCommand(g));
        		}
        		
        		setUseData(g);
        		
        		if (svgedit.browser.isGecko()) {
        			convertGradients(svgedit.utilities.findDefs());
        		} else {
        			convertGradients(g);
        		}
        		
        		// recalculate dimensions on the top-level children so that unnecessary transforms
        		// are removed
        		svgedit.utilities.walkTreePost(g, function(n){
        			try {
        				svgedit.recalculate.recalculateDimensions(n);
        			} catch(e) {
        				console.log(e);
        			}
        		});
        		
        		// Give ID for any visible element missing one
        		$(g).find(visElems).each(function() {
        			if (!this.id) {this.id = getNextId();}
        		});
        		
        		selectOnly([g]);
        		
        		var cm = pushGroupProperties(g, true);
        		if (cm) {
        			batchCmd.addSubCommand(cm);
        		}
        
        		addCommandToHistory(batchCmd);
        		
        	} else {
        		console.log('Unexpected element to ungroup:', elem);
        	}
        };
        
        //
        // Function: setSvgString
        // This function sets the current drawing as the input SVG XML.
        //
        // Parameters:
        // xmlString - The SVG as XML text.
        //
        // Returns:
        // This function returns false if the set was unsuccessful, true otherwise.
        this.setSvgString = function(xmlString) {
        	try {
        		// convert string into XML document
        		var newDoc = svgedit.utilities.text2xml(xmlString);
        
        		this.prepareSvg(newDoc);
        
        		var batchCmd = new svgedit.history.BatchCommand('Change Source');
        
        		// remove old svg document
        		var nextSibling = svgcontent.nextSibling;
        		var oldzoom = svgroot.removeChild(svgcontent);
        		batchCmd.addSubCommand(new svgedit.history.RemoveElementCommand(oldzoom, nextSibling, svgroot));
        	
        		// set new svg document
        		// If DOM3 adoptNode() available, use it. Otherwise fall back to DOM2 importNode()
        		if (svgdoc.adoptNode) {
        			svgcontent = svgdoc.adoptNode(newDoc.documentElement);
        		}
        		else {
        			svgcontent = svgdoc.importNode(newDoc.documentElement, true);
        		}
        		
        		svgroot.appendChild(svgcontent);
        		var content = $(svgcontent);
        		
        		canvas.current_drawing_ = new svgedit.draw.Drawing(svgcontent, idprefix);
        		
        		// retrieve or set the nonce
        		var nonce = getCurrentDrawing().getNonce();
        		if (nonce) {
        			call('setnonce', nonce);
        		} else {
        			call('unsetnonce');
        		}
        		
        		// change image href vals if possible
        		content.find('image').each(function() {
        			var image = this;
        			preventClickDefault(image);
        			var val = getHref(this);
        			if (val) {
        				if (val.indexOf('data:') === 0) {
        					// Check if an SVG-edit data URI
        					var m = val.match(/svgedit_url=(.*?);/);
        					if (m) {
        						var url = decodeURIComponent(m[1]);
        						$(new Image()).load(function () {
        							image.setAttributeNS(NS.XLINK, 'xlink:href', url);
        						}).attr('src', url);
        					}
        				}
        				// Add to encodableImages if it loads
        				canvas.embedImage(val);
        			}
        		});
        	
        		// Wrap child SVGs in group elements
        		content.find('svg').each(function() {
        			// Skip if it's in a <defs>
        			if ($(this).closest('defs').length) {return;}
        		
        			uniquifyElems(this);
        		
        			// Check if it already has a gsvg group
        			var pa = this.parentNode;
        			if (pa.childNodes.length === 1 && pa.nodeName === 'g') {
        				$(pa).data('gsvg', this);
        				pa.id = pa.id || getNextId();
        			} else {
        				groupSvgElem(this);
        			}
        		});
        		
        		// For Firefox: Put all paint elems in defs
        		if (svgedit.browser.isGecko()) {
        			content.find('linearGradient, radialGradient, pattern').appendTo(svgedit.utilities.findDefs());
        		}
        
        		// Set ref element for <use> elements
        		
        		// TODO: This should also be done if the object is re-added through "redo"
        		setUseData(content);
        		
        		convertGradients(content[0]);
        		
        		// recalculate dimensions on the top-level children so that unnecessary transforms
        		// are removed
        		svgedit.utilities.walkTreePost(svgcontent, function(n) {
        			try {
        				svgedit.recalculate.recalculateDimensions(n);
        			} catch(e) {
        				console.log(e);
        			}
        		});
        		
        		var attrs = {
        			id: 'svgcontent',
        			overflow: curConfig.show_outside_canvas ? 'visible' : 'hidden'
        		};
        		
        		var percs = false;
        		
        		// determine proper size
        		if (content.attr('viewBox')) {
        			var vb = content.attr('viewBox').split(' ');
        			attrs.width = vb[2];
        			attrs.height = vb[3];
        		}
        		// handle content that doesn't have a viewBox
        		else {
        			$.each(['width', 'height'], function(i, dim) {
        				// Set to 100 if not given
        				var val = content.attr(dim);
        				
        				if (!val) {val = '100%';}
        				
        				if (String(val).substr(-1) === '%') {
        					// Use user units if percentage given
        					percs = true;
        				} else {
        					attrs[dim] = svgedit.units.convertToNum(dim, val);
        				}
        			});
        		}
        		
        		// identify layers
        		identifyLayers();
        		
        		// Give ID for any visible layer children missing one
        		content.children().find(visElems).each(function() {
        			if (!this.id) {this.id = getNextId();}
        		});
        		
        		// Percentage width/height, so let's base it on visible elements
        		if (percs) {
        			var bb = getStrokedBBox();
        			attrs.width = bb.width + bb.x;
        			attrs.height = bb.height + bb.y;
        		}
        		
        		// Just in case negative numbers are given or 
        		// result from the percs calculation
        		if (attrs.width <= 0) {attrs.width = 100;}
        		if (attrs.height <= 0) {attrs.height = 100;}
        		
        		content.attr(attrs);
        		this.contentW = attrs.width;
        		this.contentH = attrs.height;
        		
        		batchCmd.addSubCommand(new svgedit.history.InsertElementCommand(svgcontent));
        		// update root to the correct size
        		var changes = content.attr(['width', 'height']);
        		batchCmd.addSubCommand(new svgedit.history.ChangeElementCommand(svgroot, changes));
        		
        		// reset zoom
        		current_zoom = 1;
        		
        		// reset transform lists
        		svgedit.transformlist.resetListMap();
        		clearSelection();
        		svgedit.path.clearData();
        		svgroot.appendChild(selectorManager.selectorParentGroup);
        		
        		addCommandToHistory(batchCmd);
        		call('changed', [svgcontent]);
        	} catch(e) {
        		console.log(e);
        		return false;
        	}
        
        	return true;
        };
        
        // Function: importSvgString
        // This function imports the input SVG XML as a <symbol> in the <defs>, then adds a
        // <use> to the current layer.
        //
        // Parameters:
        // xmlString - The SVG as XML text.
        //
        // Returns:
        // This function returns false if the import was unsuccessful, true otherwise.
        // TODO: 
        // * properly handle if namespace is introduced by imported content (must add to svgcontent
        // and update all prefixes in the imported node)
        // * properly handle recalculating dimensions, recalculateDimensions() doesn't handle
        // arbitrary transform lists, but makes some assumptions about how the transform list 
        // was obtained
        // * import should happen in top-left of current zoomed viewport	
        this.importSvgString = function(xmlString) {
        	var j, ts;
        	try {
        		// Get unique ID
        		var uid = svgedit.utilities.encode64(xmlString.length + xmlString).substr(0,32);
        		
        		var useExisting = false;
        
        		// Look for symbol and make sure symbol exists in image
        		if (import_ids[uid]) {
        			if ( $(import_ids[uid].symbol).parents('#svgroot').length ) {
        				useExisting = true;
        			}
        		}
        		
        		var batchCmd = new svgedit.history.BatchCommand('Import Image');
        		var symbol;
        		if (useExisting) {
        			symbol = import_ids[uid].symbol;
        			ts = import_ids[uid].xform;
        		} else {
        			// convert string into XML document
        			var newDoc = svgedit.utilities.text2xml(xmlString);
        	
        			this.prepareSvg(newDoc);
        	
        			// import new svg document into our document
        			var svg;
        			// If DOM3 adoptNode() available, use it. Otherwise fall back to DOM2 importNode()
        			if (svgdoc.adoptNode) {
        				svg = svgdoc.adoptNode(newDoc.documentElement);
        			} else {
        				svg = svgdoc.importNode(newDoc.documentElement, true);
        			}
        			
        			uniquifyElems(svg);
        			
        			var innerw = svgedit.units.convertToNum('width', svg.getAttribute('width')),
        				innerh = svgedit.units.convertToNum('height', svg.getAttribute('height')),
        				innervb = svg.getAttribute('viewBox'),
        				// if no explicit viewbox, create one out of the width and height
        				vb = innervb ? innervb.split(' ') : [0, 0, innerw, innerh];
        			for (j = 0; j < 4; ++j) {
        				vb[j] = +(vb[j]);
        			}
        	
        			// TODO: properly handle preserveAspectRatio
        			var canvasw = +svgcontent.getAttribute('width'),
        				canvash = +svgcontent.getAttribute('height');
        			// imported content should be 1/3 of the canvas on its largest dimension
        			
        			if (innerh > innerw) {
        				ts = 'scale(' + (canvash/3)/vb[3] + ')';
        			} else {
        				ts = 'scale(' + (canvash/3)/vb[2] + ')';
        			}
        			
        			// Hack to make recalculateDimensions understand how to scale
        			ts = 'translate(0) ' + ts + ' translate(0)';
        			
        			symbol = svgdoc.createElementNS(NS.SVG, 'symbol');
        			var defs = svgedit.utilities.findDefs();
        			
        			if (svgedit.browser.isGecko()) {
        				// Move all gradients into root for Firefox, workaround for this bug:
        				// https://bugzilla.mozilla.org/show_bug.cgi?id=353575
        				// TODO: Make this properly undo-able.
        				$(svg).find('linearGradient, radialGradient, pattern').appendTo(defs);
        			}
        	
        			while (svg.firstChild) {
        				var first = svg.firstChild;
        				symbol.appendChild(first);
        			}
        			var attrs = svg.attributes;
        			var i;
        			for (i = 0; i < attrs.length; i++) {
        				var attr = attrs[i];
        				symbol.setAttribute(attr.nodeName, attr.value);
        			}
        			symbol.id = getNextId();
        			
        			// Store data
        			import_ids[uid] = {
        				symbol: symbol,
        				xform: ts
        			};
        			
        			svgedit.utilities.findDefs().appendChild(symbol);
        			batchCmd.addSubCommand(new svgedit.history.InsertElementCommand(symbol));
        		}
        		
        		var use_el = svgdoc.createElementNS(NS.SVG, 'use');
        		use_el.id = getNextId();
        		setHref(use_el, '#' + symbol.id);
        		
        		(current_group || getCurrentDrawing().getCurrentLayer()).appendChild(use_el);
        		batchCmd.addSubCommand(new svgedit.history.InsertElementCommand(use_el));
        		clearSelection();
        		
        		use_el.setAttribute('transform', ts);
        		svgedit.recalculate.recalculateDimensions(use_el);
        		$(use_el).data('symbol', symbol).data('ref', symbol);
        		addToSelection([use_el]);
        		
        		// TODO: Find way to add this in a recalculateDimensions-parsable way
        //				if (vb[0] != 0 || vb[1] != 0)
        //					ts = 'translate(' + (-vb[0]) + ',' + (-vb[1]) + ') ' + ts;
        		addCommandToHistory(batchCmd);
        		call('changed', [svgcontent]);
        
        	} catch(e) {
        		console.log(e);
        		return false;
        	}
        
        	return true;
        };
        
        // TODO(codedread): Move all layer/context functions in draw.js
        // Layer API Functions
        
        // Group: Layers
        
        // Function: identifyLayers
        // Updates layer system
        var identifyLayers = canvas.identifyLayers = function() {
        	leaveContext();
        	getCurrentDrawing().identifyLayers();
        };
        
        // Function: createLayer
        // Creates a new top-level layer in the drawing with the given name, sets the current layer 
        // to it, and then clears the selection. This function then calls the 'changed' handler.
        // This is an undoable action.
        //
        // Parameters:
        // name - The given name
        this.createLayer = function(name) {
        	var batchCmd = new svgedit.history.BatchCommand('Create Layer');
        	var new_layer = getCurrentDrawing().createLayer(name);
        	batchCmd.addSubCommand(new svgedit.history.InsertElementCommand(new_layer));
        	addCommandToHistory(batchCmd);
        	clearSelection();
        	call('changed', [new_layer]);
        };
        
        // Function: cloneLayer
        // Creates a new top-level layer in the drawing with the given name, copies all the current layer's contents
        // to it, and then clears the selection. This function then calls the 'changed' handler.
        // This is an undoable action.
        //
        // Parameters:
        // name - The given name
        this.cloneLayer = function(name) {
        	var batchCmd = new svgedit.history.BatchCommand('Duplicate Layer');
        	var new_layer = svgdoc.createElementNS(NS.SVG, 'g');
        	var layer_title = svgdoc.createElementNS(NS.SVG, 'title');
        	layer_title.textContent = name;
        	new_layer.appendChild(layer_title);
        	var current_layer = getCurrentDrawing().getCurrentLayer();
        	$(current_layer).after(new_layer);
        	var childs = current_layer.childNodes;
        	var i;
        	for (i = 0; i < childs.length; i++) {
        		var ch = childs[i];
        		if (ch.localName == 'title') {continue;}
        		new_layer.appendChild(copyElem(ch));
        	}
        	
        	clearSelection();
        	identifyLayers();
        
        	batchCmd.addSubCommand(new svgedit.history.InsertElementCommand(new_layer));
        	addCommandToHistory(batchCmd);
        	canvas.setCurrentLayer(name);
        	call('changed', [new_layer]);
        };
        
        // Function: deleteCurrentLayer
        // Deletes the current layer from the drawing and then clears the selection. This function 
        // then calls the 'changed' handler. This is an undoable action.
        this.deleteCurrentLayer = function() {
        	var current_layer = getCurrentDrawing().getCurrentLayer();
        	var nextSibling = current_layer.nextSibling;
        	var parent = current_layer.parentNode;
        	current_layer = getCurrentDrawing().deleteCurrentLayer();
        	if (current_layer) {
        		var batchCmd = new svgedit.history.BatchCommand('Delete Layer');
        		// store in our Undo History
        		batchCmd.addSubCommand(new svgedit.history.RemoveElementCommand(current_layer, nextSibling, parent));
        		addCommandToHistory(batchCmd);
        		clearSelection();
        		call('changed', [parent]);
        		return true;
        	}
        	return false;
        };
        
        // Function: setCurrentLayer
        // Sets the current layer. If the name is not a valid layer name, then this function returns
        // false. Otherwise it returns true. This is not an undo-able action.
        //
        // Parameters:
        // name - the name of the layer you want to switch to.
        //
        // Returns:
        // true if the current layer was switched, otherwise false
        this.setCurrentLayer = function(name) {
        	var result = getCurrentDrawing().setCurrentLayer(svgedit.utilities.toXml(name));
        	if (result) {
        		clearSelection();
        	}
        	return result;
        };
        
        // Function: renameCurrentLayer
        // Renames the current layer. If the layer name is not valid (i.e. unique), then this function 
        // does nothing and returns false, otherwise it returns true. This is an undo-able action.
        // 
        // Parameters:
        // newname - the new name you want to give the current layer. This name must be unique 
        // among all layer names.
        //
        // Returns:
        // true if the rename succeeded, false otherwise.
        this.renameCurrentLayer = function(newname) {
        	var i;
        	var drawing = getCurrentDrawing();
        	if (drawing.current_layer) {
        		var oldLayer = drawing.current_layer;
        		// setCurrentLayer will return false if the name doesn't already exist
        		// this means we are free to rename our oldLayer
        		if (!canvas.setCurrentLayer(newname)) {
        			var batchCmd = new svgedit.history.BatchCommand('Rename Layer');
        			// find the index of the layer
        			for (i = 0; i < drawing.getNumLayers(); ++i) {
        				if (drawing.all_layers[i][1] == oldLayer) {break;}
        			}
        			var oldname = drawing.getLayerName(i);
        			drawing.all_layers[i][0] = svgedit.utilities.toXml(newname);
        		
        			// now change the underlying title element contents
        			var len = oldLayer.childNodes.length;
        			for (i = 0; i < len; ++i) {
        				var child = oldLayer.childNodes.item(i);
        				// found the <title> element, now append all the
        				if (child && child.tagName == 'title') {
        					// wipe out old name 
        					while (child.firstChild) { child.removeChild(child.firstChild); }
        					child.textContent = newname;
        
        					batchCmd.addSubCommand(new svgedit.history.ChangeElementCommand(child, {'#text':oldname}));
        					addCommandToHistory(batchCmd);
        					call('changed', [oldLayer]);
        					return true;
        				}
        			}
        		}
        		drawing.current_layer = oldLayer;
        	}
        	return false;
        };
        
        // Function: setCurrentLayerPosition
        // Changes the position of the current layer to the new value. If the new index is not valid, 
        // this function does nothing and returns false, otherwise it returns true. This is an
        // undo-able action.
        //
        // Parameters:
        // newpos - The zero-based index of the new position of the layer. This should be between
        // 0 and (number of layers - 1)
        // 
        // Returns:
        // true if the current layer position was changed, false otherwise.
        this.setCurrentLayerPosition = function(newpos) {
        	var oldpos, drawing = getCurrentDrawing();
        	if (drawing.current_layer && newpos >= 0 && newpos < drawing.getNumLayers()) {
        		for (oldpos = 0; oldpos < drawing.getNumLayers(); ++oldpos) {
        			if (drawing.all_layers[oldpos][1] == drawing.current_layer) {break;}
        		}
        		// some unknown error condition (current_layer not in all_layers)
        		if (oldpos == drawing.getNumLayers()) { return false; }
        		
        		if (oldpos != newpos) {
        			// if our new position is below us, we need to insert before the node after newpos
        			var refLayer = null;
        			var oldNextSibling = drawing.current_layer.nextSibling;
        			if (newpos > oldpos ) {
        				if (newpos < drawing.getNumLayers()-1) {
        					refLayer = drawing.all_layers[newpos+1][1];
        				}
        			}
        			// if our new position is above us, we need to insert before the node at newpos
        			else {
        				refLayer = drawing.all_layers[newpos][1];
        			}
        			svgcontent.insertBefore(drawing.current_layer, refLayer);
        			addCommandToHistory(new svgedit.history.MoveElementCommand(drawing.current_layer, oldNextSibling, svgcontent));
        			
        			identifyLayers();
        			canvas.setCurrentLayer(drawing.getLayerName(newpos));
        			
        			return true;
        		}
        	}
        	
        	return false;
        };
        
        // Function: setLayerVisibility
        // Sets the visibility of the layer. If the layer name is not valid, this function return 
        // false, otherwise it returns true. This is an undo-able action.
        //
        // Parameters:
        // layername - the name of the layer to change the visibility
        // bVisible - true/false, whether the layer should be visible
        //
        // Returns:
        // true if the layer's visibility was set, false otherwise
        this.setLayerVisibility = function(layername, bVisible) {
        	var drawing = getCurrentDrawing();
        	var prevVisibility = drawing.getLayerVisibility(layername);
        	var layer = drawing.setLayerVisibility(layername, bVisible);
        	if (layer) {
        		var oldDisplay = prevVisibility ? 'inline' : 'none';
        		addCommandToHistory(new svgedit.history.ChangeElementCommand(layer, {'display':oldDisplay}, 'Layer Visibility'));
        	} else {
        		return false;
        	}
        	
        	if (layer == drawing.getCurrentLayer()) {
        		clearSelection();
        		pathActions.clear();
        	}
        //		call('changed', [selected]);	
        	return true;
        };
        
        // Function: moveSelectedToLayer
        // Moves the selected elements to layername. If the name is not a valid layer name, then false 
        // is returned. Otherwise it returns true. This is an undo-able action.
        //
        // Parameters:
        // layername - the name of the layer you want to which you want to move the selected elements
        //
        // Returns:
        // true if the selected elements were moved to the layer, false otherwise.
        this.moveSelectedToLayer = function(layername) {
        	// find the layer
        	var i;
        	var layer = null;
        	var drawing = getCurrentDrawing();
        	for (i = 0; i < drawing.getNumLayers(); ++i) {
        		if (drawing.getLayerName(i) == layername) {
        			layer = drawing.all_layers[i][1];
        			break;
        		}
        	}
        	if (!layer) {return false;}
        	
        	var batchCmd = new svgedit.history.BatchCommand('Move Elements to Layer');
        	
        	// loop for each selected element and move it
        	var selElems = selectedElements;
        	i = selElems.length;
        	while (i--) {
        		var elem = selElems[i];
        		if (!elem) {continue;}
        		var oldNextSibling = elem.nextSibling;
        		// TODO: this is pretty brittle!
        		var oldLayer = elem.parentNode;
        		layer.appendChild(elem);
        		batchCmd.addSubCommand(new svgedit.history.MoveElementCommand(elem, oldNextSibling, oldLayer));
        	}
        	
        	addCommandToHistory(batchCmd);
        	
        	return true;
        };
        
        this.mergeLayer = function(skipHistory) {
        	var batchCmd = new svgedit.history.BatchCommand('Merge Layer');
        	var drawing = getCurrentDrawing();
        	var prev = $(drawing.current_layer).prev()[0];
        	if (!prev) {return;}
        	var childs = drawing.current_layer.childNodes;
        	var len = childs.length;
        	var layerNextSibling = drawing.current_layer.nextSibling;
        	batchCmd.addSubCommand(new svgedit.history.RemoveElementCommand(drawing.current_layer, layerNextSibling, svgcontent));
        
        	while (drawing.current_layer.firstChild) {
        		var ch = drawing.current_layer.firstChild;
        		if (ch.localName == 'title') {
        			var chNextSibling = ch.nextSibling;
        			batchCmd.addSubCommand(new svgedit.history.RemoveElementCommand(ch, chNextSibling, drawing.current_layer));
        			drawing.current_layer.removeChild(ch);
        			continue;
        		}
        		var oldNextSibling = ch.nextSibling;
        		prev.appendChild(ch);
        		batchCmd.addSubCommand(new svgedit.history.MoveElementCommand(ch, oldNextSibling, drawing.current_layer));
        	}
        	
        	// Remove current layer
        	svgcontent.removeChild(drawing.current_layer);
        	
        	if (!skipHistory) {
        		clearSelection();
        		identifyLayers();
        
        		call('changed', [svgcontent]);
        		
        		addCommandToHistory(batchCmd);
        	}
        	
        	drawing.current_layer = prev;
        	return batchCmd;
        };
        
        this.mergeAllLayers = function() {
        	var batchCmd = new svgedit.history.BatchCommand('Merge all Layers');
        	var drawing = getCurrentDrawing();
        	drawing.current_layer = drawing.all_layers[drawing.getNumLayers()-1][1];
        	while ($(svgcontent).children('g').length > 1) {
        		batchCmd.addSubCommand(canvas.mergeLayer(true));
        	}
        	
        	clearSelection();
        	identifyLayers();
        	call('changed', [svgcontent]);
        	addCommandToHistory(batchCmd);
        };
        
        // Function: leaveContext
        // Return from a group context to the regular kind, make any previously
        // disabled elements enabled again
        var leaveContext = this.leaveContext = function() {
        	var i, len = disabled_elems.length;
        	if (len) {
        		for (i = 0; i < len; i++) {
        			var elem = disabled_elems[i];
        			var orig = elData(elem, 'orig_opac');
        			if (orig !== 1) {
        				elem.setAttribute('opacity', orig);
        			} else {
        				elem.removeAttribute('opacity');
        			}
        			elem.setAttribute('style', 'pointer-events: inherit');
        		}
        		disabled_elems = [];
        		clearSelection(true);
        		call('contextset', null);
        	}
        	current_group = null;
        };
        
        // Function: setContext
        // Set the current context (for in-group editing)
        var setContext = this.setContext = function(elem) {
        	leaveContext();
        	if (typeof elem === 'string') {
        		elem = svgedit.utilities.getElem(elem);
        	}
        
        	// Edit inside this group
        	current_group = elem;
        	
        	// Disable other elements
        	$(elem).parentsUntil('#svgcontent').andSelf().siblings().each(function() {
        		var opac = this.getAttribute('opacity') || 1;
        		// Store the original's opacity
        		elData(this, 'orig_opac', opac);
        		this.setAttribute('opacity', opac * 0.33);
        		this.setAttribute('style', 'pointer-events: none');
        		disabled_elems.push(this);
        	});
        
        	clearSelection();
        	call('contextset', current_group);
        };
        
        // Group: Document functions
        
        // Function: clear
        // Clears the current document. This is not an undoable action.
        this.clear = function() {
        	pathActions.clear();
        
        	clearSelection();
        
        	// clear the svgcontent node
        	canvas.clearSvgContentElement();
        
        	// create new document
        	canvas.current_drawing_ = new svgedit.draw.Drawing(svgcontent);
        
        	// create empty first layer
        	canvas.createLayer('Layer 1');
        	
        	// clear the undo stack
        	canvas.undoMgr.resetUndoStack();
        
        	// reset the selector manager
        	selectorManager.initGroup();
        
        	// reset the rubber band box
        	rubberBox = selectorManager.getRubberBandBox();
        
        	call('cleared');
        };
        
        // Function: linkControlPoints
        // Alias function
        this.linkControlPoints = pathActions.linkControlPoints;
        
        // Function: getContentElem
        // Returns the content DOM element
        this.getContentElem = function() { return svgcontent; };
        
        // Function: getRootElem
        // Returns the root DOM element
        this.getRootElem = function() { return svgroot; };
        
        // Function: getSelectedElems
        // Returns the array with selected DOM elements
        this.getSelectedElems = function() { return selectedElements; };
        
        // Function: getResolution
        // Returns the current dimensions and zoom level in an object
        var getResolution = this.getResolution = function() {
        //		var vb = svgcontent.getAttribute('viewBox').split(' ');
        //		return {'w':vb[2], 'h':vb[3], 'zoom': current_zoom};
        	
        	var width = svgcontent.getAttribute('width')/current_zoom;
        	var height = svgcontent.getAttribute('height')/current_zoom;
        	
        	return {
        		'w': width,
        		'h': height,
        		'zoom': current_zoom
        	};
        };
        
        // Function: getZoom
        // Returns the current zoom level
        this.getZoom = function(){return current_zoom;};
        
        // Function: getVersion
        // Returns a string which describes the revision number of SvgCanvas.
        this.getVersion = function() {
        	return 'svgcanvas.js ($Rev$)';
        };
        
        // Function: setUiStrings
        // Update interface strings with given values
        //
        // Parameters:
        // strs - Object with strings (see uiStrings for examples)
        this.setUiStrings = function(strs) {
        	$.extend(uiStrings, strs.notification);
        };
        
        // Function: setConfig
        // Update configuration options with given values
        //
        // Parameters:
        // opts - Object with options (see curConfig for examples)
        this.setConfig = function(opts) {
        	$.extend(curConfig, opts);
        };
        
        // Function: getTitle
        // Returns the current group/SVG's title contents
        this.getTitle = function(elem) {
        	var i;
        	elem = elem || selectedElements[0];
        	if (!elem) {return;}
        	elem = $(elem).data('gsvg') || $(elem).data('symbol') || elem;
        	var childs = elem.childNodes;
        	for (i = 0; i < childs.length; i++) {
        		if (childs[i].nodeName == 'title') {
        			return childs[i].textContent;
        		}
        	}
        	return '';
        };
        
        // Function: setGroupTitle
        // Sets the group/SVG's title content
        // TODO: Combine this with setDocumentTitle
        this.setGroupTitle = function(val) {
        	var elem = selectedElements[0];
        	elem = $(elem).data('gsvg') || elem;
        	
        	var ts = $(elem).children('title');
        	
        	var batchCmd = new svgedit.history.BatchCommand('Set Label');
        	
        	if (!val.length) {
        		// Remove title element
        		var tsNextSibling = ts.nextSibling;
        		batchCmd.addSubCommand(new svgedit.history.RemoveElementCommand(ts[0], tsNextSibling, elem));
        		ts.remove();
        	} else if (ts.length) {
        		// Change title contents
        		var title = ts[0];
        		batchCmd.addSubCommand(new svgedit.history.ChangeElementCommand(title, {'#text': title.textContent}));
        		title.textContent = val;
        	} else {
        		// Add title element
        		title = svgdoc.createElementNS(NS.SVG, 'title');
        		title.textContent = val;
        		$(elem).prepend(title);
        		batchCmd.addSubCommand(new svgedit.history.InsertElementCommand(title));
        	}
        
        	addCommandToHistory(batchCmd);
        };
        
        // Function: getDocumentTitle
        // Returns the current document title or an empty string if not found
        var getDocumentTitle = this.getDocumentTitle = function() {
        	return canvas.getTitle(svgcontent);
        };
        
        // Function: setDocumentTitle
        // Adds/updates a title element for the document with the given name.
        // This is an undoable action
        //
        // Parameters:
        // newtitle - String with the new title
        this.setDocumentTitle = function(newtitle) {
        	var i;
        	var childs = svgcontent.childNodes, doc_title = false, old_title = '';
        	
        	var batchCmd = new svgedit.history.BatchCommand('Change Image Title');
        	
        	for (i = 0; i < childs.length; i++) {
        		if (childs[i].nodeName == 'title') {
        			doc_title = childs[i];
        			old_title = doc_title.textContent;
        			break;
        		}
        	}
        	if (!doc_title) {
        		doc_title = svgdoc.createElementNS(NS.SVG, 'title');
        		svgcontent.insertBefore(doc_title, svgcontent.firstChild);
        	} 
        	
        	if (newtitle.length) {
        		doc_title.textContent = newtitle;
        	} else {
        		// No title given, so element is not necessary
        		doc_title.parentNode.removeChild(doc_title);
        	}
        	batchCmd.addSubCommand(new svgedit.history.ChangeElementCommand(doc_title, {'#text': old_title}));
        	addCommandToHistory(batchCmd);
        };
        
        // Function: getEditorNS
        // Returns the editor's namespace URL, optionally adds it to root element
        //
        // Parameters:
        // add - Boolean to indicate whether or not to add the namespace value
        this.getEditorNS = function(add) {
        	if (add) {
        		svgcontent.setAttribute('xmlns:se', NS.SE);
        	}
        	return NS.SE;
        };
        
        // Function: setResolution
        // Changes the document's dimensions to the given size
        //
        // Parameters: 
        // x - Number with the width of the new dimensions in user units. 
        // Can also be the string "fit" to indicate "fit to content"
        // y - Number with the height of the new dimensions in user units. 
        //
        // Returns:
        // Boolean to indicate if resolution change was succesful. 
        // It will fail on "fit to content" option with no content to fit to.
        this.setResolution = function(x, y) {
        	var res = getResolution();
        	var w = res.w, h = res.h;
        	var batchCmd;
        
        	if (x == 'fit') {
        		// Get bounding box
        		var bbox = getStrokedBBox();
        		
        		if (bbox) {
        			batchCmd = new svgedit.history.BatchCommand('Fit Canvas to Content');
        			var visEls = getVisibleElements();
        			addToSelection(visEls);
        			var dx = [], dy = [];
        			$.each(visEls, function(i, item) {
        				dx.push(bbox.x*-1);
        				dy.push(bbox.y*-1);
        			});
        			
        			var cmd = canvas.moveSelectedElements(dx, dy, true);
        			batchCmd.addSubCommand(cmd);
        			clearSelection();
        			
        			x = Math.round(bbox.width);
        			y = Math.round(bbox.height);
        		} else {
        			return false;
        		}
        	}
        	if (x != w || y != h) {
        		var handle = svgroot.suspendRedraw(1000);
        		if (!batchCmd) {
        			batchCmd = new svgedit.history.BatchCommand('Change Image Dimensions');
        		}
        
        		x = svgedit.units.convertToNum('width', x);
        		y = svgedit.units.convertToNum('height', y);
        		
        		svgcontent.setAttribute('width', x);
        		svgcontent.setAttribute('height', y);
        		
        		this.contentW = x;
        		this.contentH = y;
        		batchCmd.addSubCommand(new svgedit.history.ChangeElementCommand(svgcontent, {'width':w, 'height':h}));
        
        		svgcontent.setAttribute('viewBox', [0, 0, x/current_zoom, y/current_zoom].join(' '));
        		batchCmd.addSubCommand(new svgedit.history.ChangeElementCommand(svgcontent, {'viewBox': ['0 0', w, h].join(' ')}));
        	
        		addCommandToHistory(batchCmd);
        		svgroot.unsuspendRedraw(handle);
        		call('changed', [svgcontent]);
        	}
        	return true;
        };
        
        // Function: getOffset
        // Returns an object with x, y values indicating the svgcontent element's
        // position in the editor's canvas.
        this.getOffset = function() {
        	return $(svgcontent).attr(['x', 'y']);
        };
        
        // Function: setBBoxZoom
        // Sets the zoom level on the canvas-side based on the given value
        // 
        // Parameters:
        // val - Bounding box object to zoom to or string indicating zoom option 
        // editor_w - Integer with the editor's workarea box's width
        // editor_h - Integer with the editor's workarea box's height
        this.setBBoxZoom = function(val, editor_w, editor_h) {
        	var spacer = 0.85;
        	var bb;
        	var calcZoom = function(bb) {
        		if (!bb) {return false;}
        		var w_zoom = Math.round((editor_w / bb.width)*100 * spacer)/100;
        		var h_zoom = Math.round((editor_h / bb.height)*100 * spacer)/100;	
        		var zoomlevel = Math.min(w_zoom, h_zoom);
        		canvas.setZoom(zoomlevel);
        		return {'zoom': zoomlevel, 'bbox': bb};
        	};
        	
        	if (typeof val == 'object') {
        		bb = val;
        		if (bb.width == 0 || bb.height == 0) {
        			var newzoom = bb.zoom ? bb.zoom : current_zoom * bb.factor;
        			canvas.setZoom(newzoom);
        			return {'zoom': current_zoom, 'bbox': bb};
        		}
        		return calcZoom(bb);
        	}
        
        	switch (val) {
        		case 'selection':
        			if (!selectedElements[0]) {return;}
        			var sel_elems = $.map(selectedElements, function(n){ if (n) {return n;} });
        			bb = getStrokedBBox(sel_elems);
        			break;
        		case 'canvas':
        			var res = getResolution();
        			spacer = 0.95;
        			bb = {width:res.w, height:res.h , x:0, y:0};
        			break;
        		case 'content':
        			bb = getStrokedBBox();
        			break;
        		case 'layer':
        			bb = getStrokedBBox(getVisibleElements(getCurrentDrawing().getCurrentLayer()));
        			break;
        		default:
        			return;
        	}
        	return calcZoom(bb);
        };
        
        // Function: setZoom
        // Sets the zoom to the given level
        //
        // Parameters:
        // zoomlevel - Float indicating the zoom level to change to
        this.setZoom = function(zoomlevel) {
        	var res = getResolution();
        	svgcontent.setAttribute('viewBox', '0 0 ' + res.w/zoomlevel + ' ' + res.h/zoomlevel);
        	current_zoom = zoomlevel;
        	$.each(selectedElements, function(i, elem) {
        		if (!elem) {return;}
        		selectorManager.requestSelector(elem).resize();
        	});
        	pathActions.zoomChange();
        	runExtensions('zoomChanged', zoomlevel);
        };
        
        // Function: getMode
        // Returns the current editor mode string
        this.getMode = function() {
        	return current_mode;
        };
        
        // Function: setMode
        // Sets the editor's mode to the given string
        //
        // Parameters:
        // name - String with the new mode to change to
        this.setMode = function(name) {
        	pathActions.clear(true);
        	textActions.clear();
        	cur_properties = (selectedElements[0] && selectedElements[0].nodeName == 'text') ? cur_text : cur_shape;
        	current_mode = name;
        };
        
        // Group: Element Styling
        
        // Function: getColor
        // Returns the current fill/stroke option
        this.getColor = function(type) {
        	return cur_properties[type];
        };
        
        // Function: setColor
        // Change the current stroke/fill color/gradient value
        // 
        // Parameters:
        // type - String indicating fill or stroke
        // val - The value to set the stroke attribute to
        // preventUndo - Boolean indicating whether or not this should be and undoable option
        this.setColor = function(type, val, preventUndo) {
        	cur_shape[type] = val;
        	cur_properties[type + '_paint'] = {type:'solidColor'};
        	var elems = [];
        	function addNonG (e) {
        		if (e.nodeName != 'g') {
        			elems.push(e);
        		}
        	}
        	var i = selectedElements.length;
        	while (i--) {
        		var elem = selectedElements[i];
        		if (elem) {
        			if (elem.tagName == 'g') {
        				svgedit.utilities.walkTree(elem, addNonG);
        			} else {
        				if (type == 'fill') {
        					if (elem.tagName != 'polyline' && elem.tagName != 'line') {
        						elems.push(elem);
        					}
        				} else {
        					elems.push(elem);
        				}
        			}
        		}
        	}
        	if (elems.length > 0) {
        		if (!preventUndo) {
        			changeSelectedAttribute(type, val, elems);
        			call('changed', elems);
        		} else {
        			changeSelectedAttributeNoUndo(type, val, elems);
        		}
        	}
        };
        
        // Function: setGradient
        // Apply the current gradient to selected element's fill or stroke
        //
        // Parameters
        // type - String indicating "fill" or "stroke" to apply to an element
        var setGradient = this.setGradient = function(type) {
        	if (!cur_properties[type + '_paint'] || cur_properties[type + '_paint'].type == 'solidColor') {return;}
        	var grad = canvas[type + 'Grad'];
        	// find out if there is a duplicate gradient already in the defs
        	var duplicate_grad = findDuplicateGradient(grad);
        	var defs = svgedit.utilities.findDefs();
        	// no duplicate found, so import gradient into defs
        	if (!duplicate_grad) {
        		var orig_grad = grad;
        		grad = defs.appendChild( svgdoc.importNode(grad, true) );
        		// get next id and set it on the grad
        		grad.id = getNextId();
        	} else { // use existing gradient
        		grad = duplicate_grad;
        	}
        	canvas.setColor(type, 'url(#' + grad.id + ')');
        };
        
        // Function: findDuplicateGradient
        // Check if exact gradient already exists
        //
        // Parameters:
        // grad - The gradient DOM element to compare to others
        //
        // Returns:
        // The existing gradient if found, null if not
        var findDuplicateGradient = function(grad) {
        	var defs = svgedit.utilities.findDefs();
        	var existing_grads = $(defs).find('linearGradient, radialGradient');
        	var i = existing_grads.length;
        	var rad_attrs = ['r', 'cx', 'cy', 'fx', 'fy'];
        	while (i--) {
        		var og = existing_grads[i];
        		if (grad.tagName == 'linearGradient') {
        			if (grad.getAttribute('x1') != og.getAttribute('x1') ||
        				grad.getAttribute('y1') != og.getAttribute('y1') ||
        				grad.getAttribute('x2') != og.getAttribute('x2') ||
        				grad.getAttribute('y2') != og.getAttribute('y2')) 
        			{
        				continue;
        			}
        		} else {
        			var grad_attrs = $(grad).attr(rad_attrs);
        			var og_attrs = $(og).attr(rad_attrs);
        			
        			var diff = false;
        			$.each(rad_attrs, function(i, attr) {
        				if (grad_attrs[attr] != og_attrs[attr]) {diff = true;}
        			});
        			
        			if (diff) {continue;}
        		}
        		
        		// else could be a duplicate, iterate through stops
        		var stops = grad.getElementsByTagNameNS(NS.SVG, 'stop');
        		var ostops = og.getElementsByTagNameNS(NS.SVG, 'stop');
        
        		if (stops.length != ostops.length) {
        			continue;
        		}
        
        		var j = stops.length;
        		while (j--) {
        			var stop = stops[j];
        			var ostop = ostops[j];
        
        			if (stop.getAttribute('offset') != ostop.getAttribute('offset') ||
        				stop.getAttribute('stop-opacity') != ostop.getAttribute('stop-opacity') ||
        				stop.getAttribute('stop-color') != ostop.getAttribute('stop-color')) 
        			{
        				break;
        			}
        		}
        
        		if (j == -1) {
        			return og;
        		}
        	} // for each gradient in defs
        
        	return null;
        };
        
        function reorientGrads(elem, m) {
        	var i;
        	var bb = svgedit.utilities.getBBox(elem);
        	for (i = 0; i < 2; i++) {
        		var type = i === 0 ? 'fill' : 'stroke';
        		var attrVal = elem.getAttribute(type);
        		if (attrVal && attrVal.indexOf('url(') === 0) {
        			var grad = svgedit.utilities.getRefElem(attrVal);
        			if (grad.tagName === 'linearGradient') {
        				var x1 = grad.getAttribute('x1') || 0;
        				var y1 = grad.getAttribute('y1') || 0;
        				var x2 = grad.getAttribute('x2') || 1;
        				var y2 = grad.getAttribute('y2') || 0;
        				
        				// Convert to USOU points
        				x1 = (bb.width * x1) + bb.x;
        				y1 = (bb.height * y1) + bb.y;
        				x2 = (bb.width * x2) + bb.x;
        				y2 = (bb.height * y2) + bb.y;
        			
        				// Transform those points
        				var pt1 = svgedit.math.transformPoint(x1, y1, m);
        				var pt2 = svgedit.math.transformPoint(x2, y2, m);
        				
        				// Convert back to BB points
        				var g_coords = {};
        				
        				g_coords.x1 = (pt1.x - bb.x) / bb.width;
        				g_coords.y1 = (pt1.y - bb.y) / bb.height;
        				g_coords.x2 = (pt2.x - bb.x) / bb.width;
        				g_coords.y2 = (pt2.y - bb.y) / bb.height;
        		
        				var newgrad = grad.cloneNode(true);
        				$(newgrad).attr(g_coords);
        	
        				newgrad.id = getNextId();
        				svgedit.utilities.findDefs().appendChild(newgrad);
        				elem.setAttribute(type, 'url(#' + newgrad.id + ')');
        			}
        		}
        	}
        }
        
        // Function: setPaint
        // Set a color/gradient to a fill/stroke
        //
        // Parameters:
        // type - String with "fill" or "stroke"
        // paint - The jGraduate paint object to apply
        this.setPaint = function(type, paint) {
        	// make a copy
        	var p = new $.jGraduate.Paint(paint);
        	this.setPaintOpacity(type, p.alpha / 100, true);
        
        	// now set the current paint object
        	cur_properties[type + '_paint'] = p;
        	switch (p.type) {
        		case 'solidColor':
        			this.setColor(type, p.solidColor != 'none' ? '#' + p.solidColor : 'none');
        			break;
        		case 'linearGradient':
        		case 'radialGradient':
        			canvas[type + 'Grad'] = p[p.type];
        			setGradient(type);
        			break;
        	}
        };
        
        // alias
        this.setStrokePaint = function(paint) {
        	this.setPaint('stroke', paint);
        };
        
        this.setFillPaint = function(paint) {
        	this.setPaint('fill', paint);
        };
        
        // Function: getStrokeWidth
        // Returns the current stroke-width value
        this.getStrokeWidth = function() {
        	return cur_properties.stroke_width;
        };
        
        // Function: setStrokeWidth
        // Sets the stroke width for the current selected elements
        // When attempting to set a line's width to 0, this changes it to 1 instead
        //
        // Parameters:
        // val - A Float indicating the new stroke width value
        this.setStrokeWidth = function(val) {
        	if (val == 0 && ['line', 'path'].indexOf(current_mode) >= 0) {
        		canvas.setStrokeWidth(1);
        		return;
        	}
        	cur_properties.stroke_width = val;
        
        	var elems = [];
        	function addNonG (e) {
        		if (e.nodeName != 'g') {
        			elems.push(e);
        		}
        	}
        	var i = selectedElements.length;
        	while (i--) {
        		var elem = selectedElements[i];
        		if (elem) {
        			if (elem.tagName == 'g') {
        				svgedit.utilities.walkTree(elem, addNonG);
        			}
        			else {
        				elems.push(elem);
        			}
        		}
        	}
        	if (elems.length > 0) {
        		changeSelectedAttribute('stroke-width', val, elems);
        		call('changed', selectedElements);
        	}
        };
        
        // Function: setStrokeAttr
        // Set the given stroke-related attribute the given value for selected elements
        //
        // Parameters:
        // attr - String with the attribute name
        // val - String or number with the attribute value
        this.setStrokeAttr = function(attr, val) {
        	cur_shape[attr.replace('-', '_')] = val;
        	var elems = [];
        	function addNonG (e) {
        		if (e.nodeName != 'g') {
        			elems.push(e);
        		}
        	}
        	var i = selectedElements.length;
        	while (i--) {
        		var elem = selectedElements[i];
        		if (elem) {
        			if (elem.tagName == 'g') {
        				svgedit.utilities.walkTree(elem, function(e){if (e.nodeName!='g') {elems.push(e);}});
        			}
        			else {
        				elems.push(elem);
        			}
        		}
        	}
        	if (elems.length > 0) {
        		changeSelectedAttribute(attr, val, elems);
        		call('changed', selectedElements);
        	}
        };
        
        // Function: getStyle
        // Returns current style options
        this.getStyle = function() {
        	return cur_shape;
        };
        
        // Function: getOpacity
        // Returns the current opacity
        this.getOpacity = function() {
        	return cur_shape.opacity;
        };
        
        // Function: setOpacity
        // Sets the given opacity to the current selected elements
        this.setOpacity = function(val) {
        	cur_shape.opacity = val;
        	changeSelectedAttribute('opacity', val);
        };
        
        // Function: getOpacity
        // Returns the current fill opacity
        this.getFillOpacity = function() {
        	return cur_shape.fill_opacity;
        };
        
        // Function: getStrokeOpacity
        // Returns the current stroke opacity
        this.getStrokeOpacity = function() {
        	return cur_shape.stroke_opacity;
        };
        
        // Function: setPaintOpacity
        // Sets the current fill/stroke opacity
        //
        // Parameters:
        // type - String with "fill" or "stroke"
        // val - Float with the new opacity value
        // preventUndo - Boolean indicating whether or not this should be an undoable action
        this.setPaintOpacity = function(type, val, preventUndo) {
        	cur_shape[type + '_opacity'] = val;
        	if (!preventUndo) {
        		changeSelectedAttribute(type + '-opacity', val);
        	}
        	else {
        		changeSelectedAttributeNoUndo(type + '-opacity', val);
        	}
        };
        
        // Function: getPaintOpacity
        // Gets the current fill/stroke opacity
        //
        // Parameters:
        // type - String with "fill" or "stroke"
        this.getPaintOpacity = function(type) {
        	return type === 'fill' ? this.getFillOpacity() : this.getStrokeOpacity();
        };
        
        // Function: getBlur
        // Gets the stdDeviation blur value of the given element
        //
        // Parameters:
        // elem - The element to check the blur value for
        this.getBlur = function(elem) {
        	var val = 0;
        //	var elem = selectedElements[0];
        
        	if (elem) {
        		var filter_url = elem.getAttribute('filter');
        		if (filter_url) {
        			var blur = svgedit.utilities.getElem(elem.id + '_blur');
        			if (blur) {
        				val = blur.firstChild.getAttribute('stdDeviation');
        			}
        		}
        	}
        	return val;
        };
        
        (function() {
        	var cur_command = null;
        	var filter = null;
        	var filterHidden = false;
        	
        	// Function: setBlurNoUndo
        	// Sets the stdDeviation blur value on the selected element without being undoable
        	//
        	// Parameters:
        	// val - The new stdDeviation value
        	canvas.setBlurNoUndo = function(val) {
        		if (!filter) {
        			canvas.setBlur(val);
        			return;
        		}
        		if (val === 0) {
        			// Don't change the StdDev, as that will hide the element.
        			// Instead, just remove the value for "filter"
        			changeSelectedAttributeNoUndo('filter', '');
        			filterHidden = true;
        		} else {
        			var elem = selectedElements[0];
        			if (filterHidden) {
        				changeSelectedAttributeNoUndo('filter', 'url(#' + elem.id + '_blur)');
        			}
        			if (svgedit.browser.isWebkit()) {
        				console.log('e', elem);
        				elem.removeAttribute('filter');
        				elem.setAttribute('filter', 'url(#' + elem.id + '_blur)');
        			}
        			changeSelectedAttributeNoUndo('stdDeviation', val, [filter.firstChild]);
        			canvas.setBlurOffsets(filter, val);
        		}
        	};
        	
        	function finishChange() {
        		var bCmd = canvas.undoMgr.finishUndoableChange();
        		cur_command.addSubCommand(bCmd);
        		addCommandToHistory(cur_command);
        		cur_command = null;	
        		filter = null;
        	}
        
        	// Function: setBlurOffsets
        	// Sets the x, y, with, height values of the filter element in order to
        	// make the blur not be clipped. Removes them if not neeeded
        	//
        	// Parameters:
        	// filter - The filter DOM element to update
        	// stdDev - The standard deviation value on which to base the offset size
        	canvas.setBlurOffsets = function(filter, stdDev) {
        		if (stdDev > 3) {
        			// TODO: Create algorithm here where size is based on expected blur
        			svgedit.utilities.assignAttributes(filter, {
        				x: '-50%',
        				y: '-50%',
        				width: '200%',
        				height: '200%'
        			}, 100);
        		} else {
        			// Removing these attributes hides text in Chrome (see Issue 579)
        			if (!svgedit.browser.isWebkit()) {
        				filter.removeAttribute('x');
        				filter.removeAttribute('y');
        				filter.removeAttribute('width');
        				filter.removeAttribute('height');
        			}
        		}
        	};
        
        	// Function: setBlur 
        	// Adds/updates the blur filter to the selected element
        	//
        	// Parameters:
        	// val - Float with the new stdDeviation blur value
        	// complete - Boolean indicating whether or not the action should be completed (to add to the undo manager)
        	canvas.setBlur = function(val, complete) {
        		if (cur_command) {
        			finishChange();
        			return;
        		}
        	
        		// Looks for associated blur, creates one if not found
        		var elem = selectedElements[0];
        		var elem_id = elem.id;
        		filter = svgedit.utilities.getElem(elem_id + '_blur');
        		
        		val -= 0;
        		
        		var batchCmd = new svgedit.history.BatchCommand();
        		
        		// Blur found!
        		if (filter) {
        			if (val === 0) {
        				filter = null;
        			}
        		} else {
        			// Not found, so create
        			var newblur = addSvgElementFromJson({ 'element': 'feGaussianBlur',
        				'attr': {
        					'in': 'SourceGraphic',
        					'stdDeviation': val
        				}
        			});
        			
        			filter = addSvgElementFromJson({ 'element': 'filter',
        				'attr': {
        					'id': elem_id + '_blur'
        				}
        			});
        			
        			filter.appendChild(newblur);
        			svgedit.utilities.findDefs().appendChild(filter);
        			
        			batchCmd.addSubCommand(new svgedit.history.InsertElementCommand(filter));
        		}
        
        		var changes = {filter: elem.getAttribute('filter')};
        		
        		if (val === 0) {
        			elem.removeAttribute('filter');
        			batchCmd.addSubCommand(new svgedit.history.ChangeElementCommand(elem, changes));
        			return;
        		}
        
        		changeSelectedAttribute('filter', 'url(#' + elem_id + '_blur)');
        		batchCmd.addSubCommand(new svgedit.history.ChangeElementCommand(elem, changes));
        		canvas.setBlurOffsets(filter, val);
        		
        		cur_command = batchCmd;
        		canvas.undoMgr.beginUndoableChange('stdDeviation', [filter?filter.firstChild:null]);
        		if (complete) {
        			canvas.setBlurNoUndo(val);
        			finishChange();
        		}
        	};
        }());
        
        // Function: getBold
        // Check whether selected element is bold or not
        //
        // Returns:
        // Boolean indicating whether or not element is bold
        this.getBold = function() {
        	// should only have one element selected
        	var selected = selectedElements[0];
        	if (selected != null && selected.tagName == 'text' &&
        		selectedElements[1] == null) 
        	{
        		return (selected.getAttribute('font-weight') == 'bold');
        	}
        	return false;
        };
        
        // Function: setBold
        // Make the selected element bold or normal
        //
        // Parameters:
        // b - Boolean indicating bold (true) or normal (false)
        this.setBold = function(b) {
        	var selected = selectedElements[0];
        	if (selected != null && selected.tagName == 'text' &&
        		selectedElements[1] == null) 
        	{
        		changeSelectedAttribute('font-weight', b ? 'bold' : 'normal');
        	}
        	if (!selectedElements[0].textContent) {
        		textActions.setCursor();
        	}
        };
        
        // Function: getItalic
        // Check whether selected element is italic or not
        //
        // Returns:
        // Boolean indicating whether or not element is italic
        this.getItalic = function() {
        	var selected = selectedElements[0];
        	if (selected != null && selected.tagName == 'text' &&
        		selectedElements[1] == null) 
        	{
        		return (selected.getAttribute('font-style') == 'italic');
        	}
        	return false;
        };
        
        // Function: setItalic
        // Make the selected element italic or normal
        //
        // Parameters:
        // b - Boolean indicating italic (true) or normal (false)
        this.setItalic = function(i) {
        	var selected = selectedElements[0];
        	if (selected != null && selected.tagName == 'text' &&
        		selectedElements[1] == null) 
        	{
        		changeSelectedAttribute('font-style', i ? 'italic' : 'normal');
        	}
        	if (!selectedElements[0].textContent) {
        		textActions.setCursor();
        	}
        };
        
        // Function: getFontFamily
        // Returns the current font family
        this.getFontFamily = function() {
        	return cur_text.font_family;
        };
        
        // Function: setFontFamily
        // Set the new font family
        //
        // Parameters:
        // val - String with the new font family
        this.setFontFamily = function(val) {
        	cur_text.font_family = val;
        	changeSelectedAttribute('font-family', val);
        	if (selectedElements[0] && !selectedElements[0].textContent) {
        		textActions.setCursor();
        	}
        };
        
        
        // Function: setFontColor
        // Set the new font color
        //
        // Parameters:
        // val - String with the new font color
        this.setFontColor = function(val) {
        	cur_text.fill = val;
        	changeSelectedAttribute('fill', val);
        };
        
        // Function: getFontColor
        // Returns the current font color
        this.getFontColor = function() {
        	return cur_text.fill;
        };
        
        // Function: getFontSize
        // Returns the current font size
        this.getFontSize = function() {
        	return cur_text.font_size;
        };
        
        // Function: setFontSize
        // Applies the given font size to the selected element
        //
        // Parameters:
        // val - Float with the new font size
        this.setFontSize = function(val) {
        	cur_text.font_size = val;
        	changeSelectedAttribute('font-size', val);
        	if (!selectedElements[0].textContent) {
        		textActions.setCursor();
        	}
        };
        
        // Function: getText
        // Returns the current text (textContent) of the selected element
        this.getText = function() {
        	var selected = selectedElements[0];
        	if (selected == null) { return ''; }
        	return selected.textContent;
        };
        
        // Function: setTextContent
        // Updates the text element with the given string
        //
        // Parameters:
        // val - String with the new text
        this.setTextContent = function(val) {
        	changeSelectedAttribute('#text', val);
        	textActions.init(val);
        	textActions.setCursor();
        };
        
        // Function: setImageURL
        // Sets the new image URL for the selected image element. Updates its size if
        // a new URL is given
        // 
        // Parameters:
        // val - String with the image URL/path
        this.setImageURL = function(val) {
        	var elem = selectedElements[0];
        	if (!elem) {return;}
        	
        	var attrs = $(elem).attr(['width', 'height']);
        	var setsize = (!attrs.width || !attrs.height);
        
        	var cur_href = getHref(elem);
        	
        	// Do nothing if no URL change or size change
        	if (cur_href !== val) {
        		setsize = true;
        	} else if (!setsize) {return;}
        
        	var batchCmd = new svgedit.history.BatchCommand('Change Image URL');
        
        	setHref(elem, val);
        	batchCmd.addSubCommand(new svgedit.history.ChangeElementCommand(elem, {
        		'#href': cur_href
        	}));
        
        	if (setsize) {
        		$(new Image()).load(function() {
        			var changes = $(elem).attr(['width', 'height']);
        		
        			$(elem).attr({
        				width: this.width,
        				height: this.height
        			});
        			
        			selectorManager.requestSelector(elem).resize();
        			
        			batchCmd.addSubCommand(new svgedit.history.ChangeElementCommand(elem, changes));
        			addCommandToHistory(batchCmd);
        			call('changed', [elem]);
        		}).attr('src', val);
        	} else {
        		addCommandToHistory(batchCmd);
        	}
        };
        
        // Function: setLinkURL
        // Sets the new link URL for the selected anchor element.
        // 
        // Parameters:
        // val - String with the link URL/path
        this.setLinkURL = function(val) {
        	var elem = selectedElements[0];
        	if (!elem) {return;}
        	if (elem.tagName !== 'a') {
        		// See if parent is an anchor
        		var parents_a = $(elem).parents('a');
        		if (parents_a.length) {
        			elem = parents_a[0];
        		} else {
        			return;
        		}
        	}
        	
        	var cur_href = getHref(elem);
        	
        	if (cur_href === val) {return;}
        	
        	var batchCmd = new svgedit.history.BatchCommand('Change Link URL');
        
        	setHref(elem, val);
        	batchCmd.addSubCommand(new svgedit.history.ChangeElementCommand(elem, {
        		'#href': cur_href
        	}));
        
        	addCommandToHistory(batchCmd);
        };
        
        
        // Function: setRectRadius
        // Sets the rx & ry values to the selected rect element to change its corner radius
        // 
        // Parameters:
        // val - The new radius
        this.setRectRadius = function(val) {
        	var selected = selectedElements[0];
        	if (selected != null && selected.tagName == 'rect') {
        		var r = selected.getAttribute('rx');
        		if (r != val) {
        			selected.setAttribute('rx', val);
        			selected.setAttribute('ry', val);
        			addCommandToHistory(new svgedit.history.ChangeElementCommand(selected, {'rx':r, 'ry':r}, 'Radius'));
        			call('changed', [selected]);
        		}
        	}
        };
        
        // Function: makeHyperlink
        // Wraps the selected element(s) in an anchor element or converts group to one
        this.makeHyperlink = function(url) {
        	canvas.groupSelectedElements('a', url);
        	
        	// TODO: If element is a single "g", convert to "a"
        	//	if (selectedElements.length > 1 && selectedElements[1]) {
        
        };
        
        // Function: removeHyperlink
        this.removeHyperlink = function() {
        	canvas.ungroupSelectedElement();
        };
        
        // Group: Element manipulation
        
        // Function: setSegType
        // Sets the new segment type to the selected segment(s). 
        //
        // Parameters:
        // new_type - Integer with the new segment type
        // See http://www.w3.org/TR/SVG/paths.html#InterfaceSVGPathSeg for list
        this.setSegType = function(new_type) {
        	pathActions.setSegType(new_type);
        };
        
        // TODO(codedread): Remove the getBBox argument and split this function into two.
        // Function: convertToPath
        // Convert selected element to a path, or get the BBox of an element-as-path
        //
        // Parameters: 
        // elem - The DOM element to be converted
        // getBBox - Boolean on whether or not to only return the path's BBox
        //
        // Returns:
        // If the getBBox flag is true, the resulting path's bounding box object.
        // Otherwise the resulting path element is returned.
        this.convertToPath = function(elem, getBBox) {
        	if (elem == null) {
        		var elems = selectedElements;
        		$.each(selectedElements, function(i, elem) {
        			if (elem) {canvas.convertToPath(elem);}
        		});
        		return;
        	}
        	
        	if (!getBBox) {
        		var batchCmd = new svgedit.history.BatchCommand('Convert element to Path');
        	}
        	
        	var attrs = getBBox?{}:{
        		'fill': cur_shape.fill,
        		'fill-opacity': cur_shape.fill_opacity,
        		'stroke': cur_shape.stroke,
        		'stroke-width': cur_shape.stroke_width,
        		'stroke-dasharray': cur_shape.stroke_dasharray,
        		'stroke-linejoin': cur_shape.stroke_linejoin,
        		'stroke-linecap': cur_shape.stroke_linecap,
        		'stroke-opacity': cur_shape.stroke_opacity,
        		'opacity': cur_shape.opacity,
        		'visibility':'hidden'
        	};
        	
        	// any attribute on the element not covered by the above
        	// TODO: make this list global so that we can properly maintain it
        	// TODO: what about @transform, @clip-rule, @fill-rule, etc?
        	$.each(['marker-start', 'marker-end', 'marker-mid', 'filter', 'clip-path'], function() {
        		if (elem.getAttribute(this)) {
        			attrs[this] = elem.getAttribute(this);
        		}
        	});
        	
        	var path = addSvgElementFromJson({
        		'element': 'path',
        		'attr': attrs
        	});
        	
        	var eltrans = elem.getAttribute('transform');
        	if (eltrans) {
        		path.setAttribute('transform', eltrans);
        	}
        	
        	var id = elem.id;
        	var parent = elem.parentNode;
        	if (elem.nextSibling) {
        		parent.insertBefore(path, elem);
        	} else {
        		parent.appendChild(path);
        	}
        	
        	var d = '';
        	
        	var joinSegs = function(segs) {
        		$.each(segs, function(j, seg) {
        			var i;
        			var l = seg[0], pts = seg[1];
        			d += l;
        			for (i = 0; i < pts.length; i+=2) {
        				d += (pts[i] +','+pts[i+1]) + ' ';
        			}
        		});
        	};
        
        	// Possibly the cubed root of 6, but 1.81 works best
        	var num = 1.81;
        	var a, rx;
        	switch (elem.tagName) {
        	case 'ellipse':
        	case 'circle':
        		a = $(elem).attr(['rx', 'ry', 'cx', 'cy']);
        		var cx = a.cx, cy = a.cy;
        		rx = a.rx;
        		ry = a.ry;
        		if (elem.tagName == 'circle') {
        			rx = ry = $(elem).attr('r');
        		}
        	
        		joinSegs([
        			['M',[(cx-rx),(cy)]],
        			['C',[(cx-rx),(cy-ry/num), (cx-rx/num),(cy-ry), (cx),(cy-ry)]],
        			['C',[(cx+rx/num),(cy-ry), (cx+rx),(cy-ry/num), (cx+rx),(cy)]],
        			['C',[(cx+rx),(cy+ry/num), (cx+rx/num),(cy+ry), (cx),(cy+ry)]],
        			['C',[(cx-rx/num),(cy+ry), (cx-rx),(cy+ry/num), (cx-rx),(cy)]],
        			['Z',[]]
        		]);
        		break;
        	case 'path':
        		d = elem.getAttribute('d');
        		break;
        	case 'line':
        		a = $(elem).attr(['x1', 'y1', 'x2', 'y2']);
        		d = 'M'+a.x1+','+a.y1+'L'+a.x2+','+a.y2;
        		break;
        	case 'polyline':
        	case 'polygon':
        		d = 'M' + elem.getAttribute('points');
        		break;
        	case 'rect':
        		var r = $(elem).attr(['rx', 'ry']);
        		rx = r.rx;
        		ry = r.ry;
        		var b = elem.getBBox();
        		var x = b.x, y = b.y, w = b.width, h = b.height;
        		num = 4 - num; // Why? Because!
        		
        		if (!rx && !ry) {
        			// Regular rect
        			joinSegs([
        				['M',[x, y]],
        				['L',[x+w, y]],
        				['L',[x+w, y+h]],
        				['L',[x, y+h]],
        				['L',[x, y]],
        				['Z',[]]
        			]);
        		} else {
        			joinSegs([
        				['M',[x, y+ry]],
        				['C',[x, y+ry/num, x+rx/num, y, x+rx, y]],
        				['L',[x+w-rx, y]],
        				['C',[x+w-rx/num, y, x+w, y+ry/num, x+w, y+ry]],
        				['L',[x+w, y+h-ry]],
        				['C',[x+w, y+h-ry/num, x+w-rx/num, y+h, x+w-rx, y+h]],
        				['L',[x+rx, y+h]],
        				['C',[x+rx/num, y+h, x, y+h-ry/num, x, y+h-ry]],
        				['L',[x, y+ry]],
        				['Z',[]]
        			]);
        		}
        		break;
        	default:
        		path.parentNode.removeChild(path);
        		break;
        	}
        	
        	if (d) {
        		path.setAttribute('d', d);
        	}
        	
        	if (!getBBox) {
        		// Replace the current element with the converted one
        		
        		// Reorient if it has a matrix
        		if (eltrans) {
        			var tlist = svgedit.transformlist.getTransformList(path);
        			if (svgedit.math.hasMatrixTransform(tlist)) {
        				pathActions.resetOrientation(path);
        			}
        		}
        		
        		var nextSibling = elem.nextSibling;
        		batchCmd.addSubCommand(new svgedit.history.RemoveElementCommand(elem, nextSibling, parent));
        		batchCmd.addSubCommand(new svgedit.history.InsertElementCommand(path));
        
        		clearSelection();
        		elem.parentNode.removeChild(elem);
        		path.setAttribute('id', id);
        		path.removeAttribute('visibility');
        		addToSelection([path], true);
        		
        		addCommandToHistory(batchCmd);
        		
        	} else {
        		// Get the correct BBox of the new path, then discard it
        		pathActions.resetOrientation(path);
        		var bb = false;
        		try {
        			bb = path.getBBox();
        		} catch(e) {
        			// Firefox fails
        		}
        		path.parentNode.removeChild(path);
        		return bb;
        	}
        };
        
        
        // Function: changeSelectedAttributeNoUndo
        // This function makes the changes to the elements. It does not add the change
        // to the history stack. 
        // 
        // Parameters:
        // attr - String with the attribute name
        // newValue - String or number with the new attribute value
        // elems - The DOM elements to apply the change to
        var changeSelectedAttributeNoUndo = function(attr, newValue, elems) {
        	var handle = svgroot.suspendRedraw(1000);
        	if (current_mode == 'pathedit') {
        		// Editing node
        		pathActions.moveNode(attr, newValue);
        	}
        	elems = elems || selectedElements;
        	var i = elems.length;
        	var no_xy_elems = ['g', 'polyline', 'path'];
        	var good_g_attrs = ['transform', 'opacity', 'filter'];
        	
        	while (i--) {
        		var elem = elems[i];
        		if (elem == null) {continue;}
        		
        		// Set x,y vals on elements that don't have them
        		if ((attr === 'x' || attr === 'y') && no_xy_elems.indexOf(elem.tagName) >= 0) {
        			var bbox = getStrokedBBox([elem]);
        			var diff_x = attr === 'x' ? newValue - bbox.x : 0;
        			var diff_y = attr === 'y' ? newValue - bbox.y : 0;
        			canvas.moveSelectedElements(diff_x*current_zoom, diff_y*current_zoom, true);
        			continue;
        		}
        		
        		// only allow the transform/opacity/filter attribute to change on <g> elements, slightly hacky
        		// TODO: FIXME: This doesn't seem right. Where's the body of this if statement?
        		if (elem.tagName === 'g' && good_g_attrs.indexOf(attr) >= 0) {}
        		var oldval = attr === '#text' ? elem.textContent : elem.getAttribute(attr);
        		if (oldval == null) {oldval = '';}
        		if (oldval !== String(newValue)) {
        			if (attr == '#text') {
        				var old_w = svgedit.utilities.getBBox(elem).width;
        				elem.textContent = newValue;
        				
        				// FF bug occurs on on rotated elements
        				if (/rotate/.test(elem.getAttribute('transform'))) {
        					elem = ffClone(elem);
        				}
        				
        				// Hoped to solve the issue of moving text with text-anchor="start",
        				// but this doesn't actually fix it. Hopefully on the right track, though. -Fyrd
        				
        //					var box=getBBox(elem), left=box.x, top=box.y, width=box.width,
        //						height=box.height, dx = width - old_w, dy=0;
        //					var angle = svgedit.utilities.getRotationAngle(elem, true);
        //					if (angle) {
        //						var r = Math.sqrt( dx*dx + dy*dy );
        //						var theta = Math.atan2(dy,dx) - angle;
        //						dx = r * Math.cos(theta);
        //						dy = r * Math.sin(theta);
        //						
        //						elem.setAttribute('x', elem.getAttribute('x')-dx);
        //						elem.setAttribute('y', elem.getAttribute('y')-dy);
        //					}
        				
        			} else if (attr == '#href') {
        				setHref(elem, newValue);
        			}
        			else {elem.setAttribute(attr, newValue);}
        
        			// Go into "select" mode for text changes
        			// NOTE: Important that this happens AFTER elem.setAttribute() or else attributes like
        			// font-size can get reset to their old value, ultimately by svgEditor.updateContextPanel(),
        			// after calling textActions.toSelectMode() below
        			if (current_mode === 'textedit' && attr !== '#text' && elem.textContent.length) {
        				textActions.toSelectMode(elem);
        			}
        
        //			if (i==0)
        //				selectedBBoxes[0] = svgedit.utilities.getBBox(elem);
        			// Use the Firefox ffClone hack for text elements with gradients or
        			// where other text attributes are changed. 
        			if (svgedit.browser.isGecko() && elem.nodeName === 'text' && /rotate/.test(elem.getAttribute('transform'))) {
        				if (String(newValue).indexOf('url') === 0 || (['font-size', 'font-family', 'x', 'y'].indexOf(attr) >= 0 && elem.textContent)) {
        					elem = ffClone(elem);
        				}
        			}
        			// Timeout needed for Opera & Firefox
        			// codedread: it is now possible for this function to be called with elements
        			// that are not in the selectedElements array, we need to only request a
        			// selector if the element is in that array
        			if (selectedElements.indexOf(elem) >= 0) {
        				setTimeout(function() {
        					// Due to element replacement, this element may no longer
        					// be part of the DOM
        					if (!elem.parentNode) {return;}
        					selectorManager.requestSelector(elem).resize();
        				}, 0);
        			}
        			// if this element was rotated, and we changed the position of this element
        			// we need to update the rotational transform attribute 
        			var angle = svgedit.utilities.getRotationAngle(elem);
        			if (angle != 0 && attr != 'transform') {
        				var tlist = svgedit.transformlist.getTransformList(elem);
        				var n = tlist.numberOfItems;
        				while (n--) {
        					var xform = tlist.getItem(n);
        					if (xform.type == 4) {
        						// remove old rotate
        						tlist.removeItem(n);
        						
        						var box = svgedit.utilities.getBBox(elem);
        						var center = svgedit.math.transformPoint(box.x+box.width/2, box.y+box.height/2, svgedit.math.transformListToTransform(tlist).matrix);
        						var cx = center.x,
        							cy = center.y;
        						var newrot = svgroot.createSVGTransform();
        						newrot.setRotate(angle, cx, cy);
        						tlist.insertItemBefore(newrot, n);
        						break;
        					}
        				}
        			}
        		} // if oldValue != newValue
        	} // for each elem
        	svgroot.unsuspendRedraw(handle);	
        };
        
        // Function: changeSelectedAttribute
        // Change the given/selected element and add the original value to the history stack
        // If you want to change all selectedElements, ignore the elems argument.
        // If you want to change only a subset of selectedElements, then send the
        // subset to this function in the elems argument.
        // 
        // Parameters:
        // attr - String with the attribute name
        // newValue - String or number with the new attribute value
        // elems - The DOM elements to apply the change to
        var changeSelectedAttribute = this.changeSelectedAttribute = function(attr, val, elems) {
        	elems = elems || selectedElements;
        	canvas.undoMgr.beginUndoableChange(attr, elems);
        	var i = elems.length;
        
        	changeSelectedAttributeNoUndo(attr, val, elems);
        
        	var batchCmd = canvas.undoMgr.finishUndoableChange();
        	if (!batchCmd.isEmpty()) { 
        		addCommandToHistory(batchCmd);
        	}
        };
        
        // Function: deleteSelectedElements
        // Removes all selected elements from the DOM and adds the change to the 
        // history stack
        this.deleteSelectedElements = function() {
        	var i;
        	var batchCmd = new svgedit.history.BatchCommand('Delete Elements');
        	var len = selectedElements.length;
        	var selectedCopy = []; //selectedElements is being deleted
        	for (i = 0; i < len; ++i) {
        		var selected = selectedElements[i];
        		if (selected == null) {break;}
        
        		var parent = selected.parentNode;
        		var t = selected;
        		
        		// this will unselect the element and remove the selectedOutline
        		selectorManager.releaseSelector(t);
        		
        		// Remove the path if present.
        		svgedit.path.removePath_(t.id);
        		
        		// Get the parent if it's a single-child anchor
        		if (parent.tagName === 'a' && parent.childNodes.length === 1) {
        			t = parent;
        			parent = parent.parentNode;
        		}
        		
        		var nextSibling = t.nextSibling;
        		var elem = parent.removeChild(t);
        		selectedCopy.push(selected); //for the copy
        		selectedElements[i] = null;
        		batchCmd.addSubCommand(new RemoveElementCommand(elem, nextSibling, parent));
        	}
        	if (!batchCmd.isEmpty()) {addCommandToHistory(batchCmd);}
        	call('changed', selectedCopy);
        	clearSelection();
        };
        
        // Function: cutSelectedElements
        // Removes all selected elements from the DOM and adds the change to the 
        // history stack. Remembers removed elements on the clipboard
        
        // TODO: Combine similar code with deleteSelectedElements
        this.cutSelectedElements = function() {
        	var i;
        	var batchCmd = new svgedit.history.BatchCommand('Cut Elements');
        	var len = selectedElements.length;
        	var selectedCopy = []; //selectedElements is being deleted
        	for (i = 0; i < len; ++i) {
        		var selected = selectedElements[i];
        		if (selected == null) {break;}
        
        		var parent = selected.parentNode;
        		var t = selected;
        
        		// this will unselect the element and remove the selectedOutline
        		selectorManager.releaseSelector(t);
        
        		// Remove the path if present.
        		svgedit.path.removePath_(t.id);
        
        		var nextSibling = t.nextSibling;
        		var elem = parent.removeChild(t);
        		selectedCopy.push(selected); //for the copy
        		selectedElements[i] = null;
        		batchCmd.addSubCommand(new RemoveElementCommand(elem, nextSibling, parent));
        	}
        	if (!batchCmd.isEmpty()) {addCommandToHistory(batchCmd);}
        	call('changed', selectedCopy);
        	clearSelection();
        	
        	canvas.clipBoard = selectedCopy;
        };
        
        // Function: copySelectedElements
        // Remembers the current selected elements on the clipboard
        this.copySelectedElements = function() {
        	canvas.clipBoard = $.merge([], selectedElements);
        };
        
        this.pasteElements = function(type, x, y) {
        	var cb = canvas.clipBoard;
        	var len = cb.length;
        	if (!len) {return;}
        	
        	var pasted = [];
        	var batchCmd = new svgedit.history.BatchCommand('Paste elements');
        	
        	// Move elements to lastClickPoint
        
        	while (len--) {
        		var elem = cb[len];
        		if (!elem) {continue;}
        		var copy = copyElem(elem);
        
        		// See if elem with elem ID is in the DOM already
        		if (!svgedit.utilities.getElem(elem.id)) {copy.id = elem.id;}
        		
        		pasted.push(copy);
        		(current_group || getCurrentDrawing().getCurrentLayer()).appendChild(copy);
        		batchCmd.addSubCommand(new svgedit.history.InsertElementCommand(copy));
        	}
        	
        	selectOnly(pasted);
        	
        	if (type !== 'in_place') {
        		
        		var ctr_x, ctr_y;
        		
        		if (!type) {
        			ctr_x = lastClickPoint.x;
        			ctr_y = lastClickPoint.y;
        		} else if (type === 'point') {
        			ctr_x = x;
        			ctr_y = y;
        		} 
        		
        		var bbox = getStrokedBBox(pasted);
        		var cx = ctr_x - (bbox.x + bbox.width/2),
        			cy = ctr_y - (bbox.y + bbox.height/2),
        			dx = [],
        			dy = [];
        	
        		$.each(pasted, function(i, item) {
        			dx.push(cx);
        			dy.push(cy);
        		});
        		
        		var cmd = canvas.moveSelectedElements(dx, dy, false);
        		batchCmd.addSubCommand(cmd);
        	}
        
        	addCommandToHistory(batchCmd);
        	call('changed', pasted);
        };
        
        // Function: groupSelectedElements
        // Wraps all the selected elements in a group (g) element
        
        // Parameters: 
        // type - type of element to group into, defaults to <g>
        this.groupSelectedElements = function(type, urlArg) {
        	if (!type) {type = 'g';}
        	var cmd_str = '';
        	
        	switch (type) {
        		case 'a':
        			cmd_str = 'Make hyperlink';
        			var url = '';
        			if (arguments.length > 1) {
        				url = urlArg;
        			}
        			break;
        		default:
        			type = 'g';
        			cmd_str = 'Group Elements';
        			break;
        	}
        	
        	var batchCmd = new svgedit.history.BatchCommand(cmd_str);
        	
        	// create and insert the group element
        	var g = addSvgElementFromJson({
        							'element': type,
        							'attr': {
        								'id': getNextId()
        							}
        						});
        	if (type === 'a') {
        		setHref(g, url);
        	}
        	batchCmd.addSubCommand(new svgedit.history.InsertElementCommand(g));
        	
        	// now move all children into the group
        	var i = selectedElements.length;
        	while (i--) {
        		var elem = selectedElements[i];
        		if (elem == null) {continue;}
        		
        		if (elem.parentNode.tagName === 'a' && elem.parentNode.childNodes.length === 1) {
        			elem = elem.parentNode;
        		}
        		
        		var oldNextSibling = elem.nextSibling;
        		var oldParent = elem.parentNode;
        		g.appendChild(elem);
        		batchCmd.addSubCommand(new svgedit.history.MoveElementCommand(elem, oldNextSibling, oldParent));			
        	}
        	if (!batchCmd.isEmpty()) {addCommandToHistory(batchCmd);}
        	
        	// update selection
        	selectOnly([g], true);
        };
        
        
        // Function: pushGroupProperties
        // Pushes all appropriate parent group properties down to its children, then
        // removes them from the group
        var pushGroupProperties = this.pushGroupProperties = function(g, undoable) {
        
        	var children = g.childNodes;
        	var len = children.length;
        	var xform = g.getAttribute('transform');
        
        	var glist = svgedit.transformlist.getTransformList(g);
        	var m = svgedit.math.transformListToTransform(glist).matrix;
        	
        	var batchCmd = new svgedit.history.BatchCommand('Push group properties');
        
        	// TODO: get all fill/stroke properties from the group that we are about to destroy
        	// "fill", "fill-opacity", "fill-rule", "stroke", "stroke-dasharray", "stroke-dashoffset", 
        	// "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", 
        	// "stroke-width"
        	// and then for each child, if they do not have the attribute (or the value is 'inherit')
        	// then set the child's attribute
        	
        	var i = 0;
        	var gangle = svgedit.utilities.getRotationAngle(g);
        	
        	var gattrs = $(g).attr(['filter', 'opacity']);
        	var gfilter, gblur, changes;
        	
        	for (i = 0; i < len; i++) {
        		var elem = children[i];
        		
        		if (elem.nodeType !== 1) {continue;}
        		
        		if (gattrs.opacity !== null && gattrs.opacity !== 1) {
        			var c_opac = elem.getAttribute('opacity') || 1;
        			var new_opac = Math.round((elem.getAttribute('opacity') || 1) * gattrs.opacity * 100)/100;
        			changeSelectedAttribute('opacity', new_opac, [elem]);
        		}
        
        		if (gattrs.filter) {
        			var cblur = this.getBlur(elem);
        			var orig_cblur = cblur;
        			if (!gblur) {gblur = this.getBlur(g);}
        			if (cblur) {
        				// Is this formula correct?
        				cblur = Number(gblur) + Number(cblur);
        			} else if (cblur === 0) {
        				cblur = gblur;
        			}
        			
        			// If child has no current filter, get group's filter or clone it.
        			if (!orig_cblur) {
        				// Set group's filter to use first child's ID
        				if (!gfilter) {
        					gfilter = svgedit.utilities.getRefElem(gattrs.filter);
        				} else {
        					// Clone the group's filter
        					gfilter = copyElem(gfilter);
        					svgedit.utilities.findDefs().appendChild(gfilter);
        				}
        			} else {
        				gfilter = svgedit.utilities.getRefElem(elem.getAttribute('filter'));
        			}
        
        			// Change this in future for different filters
        			var suffix = (gfilter.firstChild.tagName === 'feGaussianBlur')?'blur':'filter'; 
        			gfilter.id = elem.id + '_' + suffix;
        			changeSelectedAttribute('filter', 'url(#' + gfilter.id + ')', [elem]);
        			
        			// Update blur value 
        			if (cblur) {
        				changeSelectedAttribute('stdDeviation', cblur, [gfilter.firstChild]);
        				canvas.setBlurOffsets(gfilter, cblur);
        			}
        		}
        		
        		var chtlist = svgedit.transformlist.getTransformList(elem);
        
        		// Don't process gradient transforms
        		if (~elem.tagName.indexOf('Gradient')) {chtlist = null;}
        		
        		// Hopefully not a problem to add this. Necessary for elements like <desc/>
        		if (!chtlist) {continue;}
        		
        		// Apparently <defs> can get get a transformlist, but we don't want it to have one!
        		if (elem.tagName === 'defs') {continue;}
        		
        		if (glist.numberOfItems) {
        			// TODO: if the group's transform is just a rotate, we can always transfer the
        			// rotate() down to the children (collapsing consecutive rotates and factoring
        			// out any translates)
        			if (gangle && glist.numberOfItems == 1) {
        				// [Rg] [Rc] [Mc]
        				// we want [Tr] [Rc2] [Mc] where:
        				//	- [Rc2] is at the child's current center but has the 
        				// sum of the group and child's rotation angles
        				//	- [Tr] is the equivalent translation that this child 
        				// undergoes if the group wasn't there
        				
        				// [Tr] = [Rg] [Rc] [Rc2_inv]
        				
        				// get group's rotation matrix (Rg)
        				var rgm = glist.getItem(0).matrix;
        				
        				// get child's rotation matrix (Rc)
        				var rcm = svgroot.createSVGMatrix();
        				var cangle = svgedit.utilities.getRotationAngle(elem);
        				if (cangle) {
        					rcm = chtlist.getItem(0).matrix;
        				}
        				
        				// get child's old center of rotation
        				var cbox = svgedit.utilities.getBBox(elem);
        				var ceqm = svgedit.math.transformListToTransform(chtlist).matrix;
        				var coldc = svgedit.math.transformPoint(cbox.x+cbox.width/2, cbox.y+cbox.height/2, ceqm);
        				
        				// sum group and child's angles
        				var sangle = gangle + cangle;
        				
        				// get child's rotation at the old center (Rc2_inv)
        				var r2 = svgroot.createSVGTransform();
        				r2.setRotate(sangle, coldc.x, coldc.y);
        				
        				// calculate equivalent translate
        				var trm = svgedit.math.matrixMultiply(rgm, rcm, r2.matrix.inverse());
        				
        				// set up tlist
        				if (cangle) {
        					chtlist.removeItem(0);
        				}
        				
        				if (sangle) {
        					if (chtlist.numberOfItems) {
        						chtlist.insertItemBefore(r2, 0);
        					} else {
        						chtlist.appendItem(r2);
        					}
        				}
        
        				if (trm.e || trm.f) {
        					var tr = svgroot.createSVGTransform();
        					tr.setTranslate(trm.e, trm.f);
        					if (chtlist.numberOfItems) {
        						chtlist.insertItemBefore(tr, 0);
        					} else {
        						chtlist.appendItem(tr);
        					}
        				}
        			} else { // more complicated than just a rotate
        			
        				// transfer the group's transform down to each child and then
        				// call svgedit.recalculate.recalculateDimensions()				
        				var oldxform = elem.getAttribute('transform');
        				changes = {};
        				changes.transform = oldxform || '';
        
        				var newxform = svgroot.createSVGTransform();
        
        				// [ gm ] [ chm ] = [ chm ] [ gm' ]
        				// [ gm' ] = [ chm_inv ] [ gm ] [ chm ]
        				var chm = svgedit.math.transformListToTransform(chtlist).matrix,
        					chm_inv = chm.inverse();
        				var gm = svgedit.math.matrixMultiply( chm_inv, m, chm );
        				newxform.setMatrix(gm);
        				chtlist.appendItem(newxform);
        			}
        			var cmd = svgedit.recalculate.recalculateDimensions(elem);
        			if (cmd) {batchCmd.addSubCommand(cmd);}
        		}
        	}
        
        	
        	// remove transform and make it undo-able
        	if (xform) {
        		changes = {};
        		changes.transform = xform;
        		g.setAttribute('transform', '');
        		g.removeAttribute('transform');				
        		batchCmd.addSubCommand(new svgedit.history.ChangeElementCommand(g, changes));
        	}
        	
        	if (undoable && !batchCmd.isEmpty()) {
        		return batchCmd;
        	}
        };
        
        
        // Function: ungroupSelectedElement
        // Unwraps all the elements in a selected group (g) element. This requires
        // significant recalculations to apply group's transforms, etc to its children
        this.ungroupSelectedElement = function() {
        	var g = selectedElements[0];
        	if (!g) {
        		return;
        	}
        	if ($(g).data('gsvg') || $(g).data('symbol')) {
        		// Is svg, so actually convert to group
        		convertToGroup(g);
        		return;
        	}
        	if (g.tagName === 'use') {
        		// Somehow doesn't have data set, so retrieve
        		var symbol = svgedit.utilities.getElem(getHref(g).substr(1));
        		$(g).data('symbol', symbol).data('ref', symbol);
        		convertToGroup(g);
        		return;
        	}
        	var parents_a = $(g).parents('a');
        	if (parents_a.length) {
        		g = parents_a[0];
        	}
        	
        	// Look for parent "a"
        	if (g.tagName === 'g' || g.tagName === 'a') {
        		
        		var batchCmd = new svgedit.history.BatchCommand('Ungroup Elements');
        		var cmd = pushGroupProperties(g, true);
        		if (cmd) {batchCmd.addSubCommand(cmd);}
        		
        		var parent = g.parentNode;
        		var anchor = g.nextSibling;
        		var children = new Array(g.childNodes.length);
        		
        		var i = 0;
        		
        		while (g.firstChild) {
        			var elem = g.firstChild;
        			var oldNextSibling = elem.nextSibling;
        			var oldParent = elem.parentNode;
        			
        			// Remove child title elements
        			if (elem.tagName === 'title') {
        				var nextSibling = elem.nextSibling;
        				batchCmd.addSubCommand(new svgedit.history.RemoveElementCommand(elem, nextSibling, oldParent));
        				oldParent.removeChild(elem);
        				continue;
        			}
        			
        			children[i++] = elem = parent.insertBefore(elem, anchor);
        			batchCmd.addSubCommand(new svgedit.history.MoveElementCommand(elem, oldNextSibling, oldParent));
        		}
        
        		// remove the group from the selection			
        		clearSelection();
        		
        		// delete the group element (but make undo-able)
        		var gNextSibling = g.nextSibling;
        		g = parent.removeChild(g);
        		batchCmd.addSubCommand(new svgedit.history.RemoveElementCommand(g, gNextSibling, parent));
        
        		if (!batchCmd.isEmpty()) {addCommandToHistory(batchCmd);}
        		
        		// update selection
        		addToSelection(children);
        	}
        };
        
        // Function: moveToTopSelectedElement
        // Repositions the selected element to the bottom in the DOM to appear on top of
        // other elements
        this.moveToTopSelectedElement = function() {
        	var selected = selectedElements[0];
        	if (selected != null) {
        		var t = selected;
        		var oldParent = t.parentNode;
        		var oldNextSibling = t.nextSibling;
        		t = t.parentNode.appendChild(t);
        		// If the element actually moved position, add the command and fire the changed
        		// event handler.
        		if (oldNextSibling != t.nextSibling) {
        			addCommandToHistory(new svgedit.history.MoveElementCommand(t, oldNextSibling, oldParent, 'top'));
        			call('changed', [t]);
        		}
        	}
        };
        
        // Function: moveToBottomSelectedElement
        // Repositions the selected element to the top in the DOM to appear under 
        // other elements
        this.moveToBottomSelectedElement = function() {
        	var selected = selectedElements[0];
        	if (selected != null) {
        		var t = selected;
        		var oldParent = t.parentNode;
        		var oldNextSibling = t.nextSibling;
        		var firstChild = t.parentNode.firstChild;
        		if (firstChild.tagName == 'title') {
        			firstChild = firstChild.nextSibling;
        		}
        		// This can probably be removed, as the defs should not ever apppear
        		// inside a layer group
        		if (firstChild.tagName == 'defs') {
        			firstChild = firstChild.nextSibling;
        		}
        		t = t.parentNode.insertBefore(t, firstChild);
        		// If the element actually moved position, add the command and fire the changed
        		// event handler.
        		if (oldNextSibling != t.nextSibling) {
        			addCommandToHistory(new svgedit.history.MoveElementCommand(t, oldNextSibling, oldParent, 'bottom'));
        			call('changed', [t]);
        		}
        	}
        };
        
        // Function: moveUpDownSelected
        // Moves the select element up or down the stack, based on the visibly
        // intersecting elements
        //
        // Parameters: 
        // dir - String that's either 'Up' or 'Down'
        this.moveUpDownSelected = function(dir) {
        	var selected = selectedElements[0];
        	if (!selected) {return;}
        	
        	curBBoxes = [];
        	var closest, found_cur;
        	// jQuery sorts this list
        	var list = $(getIntersectionList(getStrokedBBox([selected]))).toArray();
        	if (dir == 'Down') {list.reverse();}
        
        	$.each(list, function() {
        		if (!found_cur) {
        			if (this == selected) {
        				found_cur = true;
        			}
        			return;
        		}
        		closest = this;
        		return false;
        	});
        	if (!closest) {return;}
        	
        	var t = selected;
        	var oldParent = t.parentNode;
        	var oldNextSibling = t.nextSibling;
        	$(closest)[dir == 'Down'?'before':'after'](t);
        	// If the element actually moved position, add the command and fire the changed
        	// event handler.
        	if (oldNextSibling != t.nextSibling) {
        		addCommandToHistory(new svgedit.history.MoveElementCommand(t, oldNextSibling, oldParent, 'Move ' + dir));
        		call('changed', [t]);
        	}
        };
        
        // Function: moveSelectedElements
        // Moves selected elements on the X/Y axis 
        //
        // Parameters:
        // dx - Float with the distance to move on the x-axis
        // dy - Float with the distance to move on the y-axis
        // undoable - Boolean indicating whether or not the action should be undoable
        //
        // Returns:
        // Batch command for the move
        this.moveSelectedElements = function(dx, dy, undoable) {
        	// if undoable is not sent, default to true
        	// if single values, scale them to the zoom
        	if (dx.constructor != Array) {
        		dx /= current_zoom;
        		dy /= current_zoom;
        	}
        	undoable = undoable || true;
        	var batchCmd = new svgedit.history.BatchCommand('position');
        	var i = selectedElements.length;
        	while (i--) {
        		var selected = selectedElements[i];
        		if (selected != null) {
        //			if (i==0)
        //				selectedBBoxes[0] = svgedit.utilities.getBBox(selected);
        			
        //			var b = {};
        //			for (var j in selectedBBoxes[i]) b[j] = selectedBBoxes[i][j];
        //			selectedBBoxes[i] = b;
        			
        			var xform = svgroot.createSVGTransform();
        			var tlist = svgedit.transformlist.getTransformList(selected);
        			
        			// dx and dy could be arrays
        			if (dx.constructor == Array) {
        //				if (i==0) {
        //					selectedBBoxes[0].x += dx[0];
        //					selectedBBoxes[0].y += dy[0];
        //				}
        				xform.setTranslate(dx[i], dy[i]);
        			} else {
        //				if (i==0) {
        //					selectedBBoxes[0].x += dx;
        //					selectedBBoxes[0].y += dy;
        //				}
        				xform.setTranslate(dx, dy);
        			}
        
        			if (tlist.numberOfItems) {
        				tlist.insertItemBefore(xform, 0);
        			} else {
        				tlist.appendItem(xform);
        			}
        			
        			var cmd = svgedit.recalculate.recalculateDimensions(selected);
        			if (cmd) {
        				batchCmd.addSubCommand(cmd);
        			}
        			
        			selectorManager.requestSelector(selected).resize();
        		}
        	}
        	if (!batchCmd.isEmpty()) {
        		if (undoable) {
        			addCommandToHistory(batchCmd);
        		}
        		call('changed', selectedElements);
        		return batchCmd;
        	}
        };
        
        // Function: cloneSelectedElements
        // Create deep DOM copies (clones) of all selected elements and move them slightly 
        // from their originals
        this.cloneSelectedElements = function(x, y) {
        	var i, elem;
        	var batchCmd = new svgedit.history.BatchCommand('Clone Elements');
        	// find all the elements selected (stop at first null)
        	var len = selectedElements.length;
        	function sortfunction(a, b){
        		return ($(b).index() - $(a).index()); //causes an array to be sorted numerically and ascending
        	}
        	selectedElements.sort(sortfunction);
        	for (i = 0; i < len; ++i) {
        		elem = selectedElements[i];
        		if (elem == null) {break;}
        	}
        	// use slice to quickly get the subset of elements we need
        	var copiedElements = selectedElements.slice(0, i);
        	this.clearSelection(true);
        	// note that we loop in the reverse way because of the way elements are added
        	// to the selectedElements array (top-first)
        	i = copiedElements.length;
        	while (i--) {
        		// clone each element and replace it within copiedElements
        		elem = copiedElements[i] = copyElem(copiedElements[i]);
        		(current_group || getCurrentDrawing().getCurrentLayer()).appendChild(elem);
        		batchCmd.addSubCommand(new svgedit.history.InsertElementCommand(elem));
        	}
        	
        	if (!batchCmd.isEmpty()) {
        		addToSelection(copiedElements.reverse()); // Need to reverse for correct selection-adding
        		this.moveSelectedElements(x, y, false);
        		addCommandToHistory(batchCmd);
        	}
        };
        
        // Function: alignSelectedElements
        // Aligns selected elements
        //
        // Parameters:
        // type - String with single character indicating the alignment type
        // relative_to - String that must be one of the following: 
        // "selected", "largest", "smallest", "page"
        this.alignSelectedElements = function(type, relative_to) {
        	var i, elem;
        	var bboxes = [], angles = [];
        	var minx = Number.MAX_VALUE, maxx = Number.MIN_VALUE, miny = Number.MAX_VALUE, maxy = Number.MIN_VALUE;
        	var curwidth = Number.MIN_VALUE, curheight = Number.MIN_VALUE;
        	var len = selectedElements.length;
        	if (!len) {return;}
        	for (i = 0; i < len; ++i) {
        		if (selectedElements[i] == null) {break;}
        		elem = selectedElements[i];
        		bboxes[i] = getStrokedBBox([elem]);
        		
        		// now bbox is axis-aligned and handles rotation
        		switch (relative_to) {
        			case 'smallest':
        				if ( (type == 'l' || type == 'c' || type == 'r') && (curwidth == Number.MIN_VALUE || curwidth > bboxes[i].width) ||
        					 (type == 't' || type == 'm' || type == 'b') && (curheight == Number.MIN_VALUE || curheight > bboxes[i].height) ) {
        					minx = bboxes[i].x;
        					miny = bboxes[i].y;
        					maxx = bboxes[i].x + bboxes[i].width;
        					maxy = bboxes[i].y + bboxes[i].height;
        					curwidth = bboxes[i].width;
        					curheight = bboxes[i].height;
        				}
        				break;
        			case 'largest':
        				if ( (type == 'l' || type == 'c' || type == 'r') && (curwidth == Number.MIN_VALUE || curwidth < bboxes[i].width) ||
        					 (type == 't' || type == 'm' || type == 'b') && (curheight == Number.MIN_VALUE || curheight < bboxes[i].height) ) {
        					minx = bboxes[i].x;
        					miny = bboxes[i].y;
        					maxx = bboxes[i].x + bboxes[i].width;
        					maxy = bboxes[i].y + bboxes[i].height;
        					curwidth = bboxes[i].width;
        					curheight = bboxes[i].height;
        				}
        				break;
        			default: // 'selected'
        				if (bboxes[i].x < minx) {minx = bboxes[i].x;}
        				if (bboxes[i].y < miny) {miny = bboxes[i].y;}
        				if (bboxes[i].x + bboxes[i].width > maxx) {maxx = bboxes[i].x + bboxes[i].width;}
        				if (bboxes[i].y + bboxes[i].height > maxy) {maxy = bboxes[i].y + bboxes[i].height;}
        				break;
        		}
        	} // loop for each element to find the bbox and adjust min/max
        
        	if (relative_to == 'page') {
        		minx = 0;
        		miny = 0;
        		maxx = canvas.contentW;
        		maxy = canvas.contentH;
        	}
        
        	var dx = new Array(len);
        	var dy = new Array(len);
        	for (i = 0; i < len; ++i) {
        		if (selectedElements[i] == null) {break;}
        		elem = selectedElements[i];
        		var bbox = bboxes[i];
        		dx[i] = 0;
        		dy[i] = 0;
        		switch (type) {
        			case 'l': // left (horizontal)
        				dx[i] = minx - bbox.x;
        				break;
        			case 'c': // center (horizontal)
        				dx[i] = (minx+maxx)/2 - (bbox.x + bbox.width/2);
        				break;
        			case 'r': // right (horizontal)
        				dx[i] = maxx - (bbox.x + bbox.width);
        				break;
        			case 't': // top (vertical)
        				dy[i] = miny - bbox.y;
        				break;
        			case 'm': // middle (vertical)
        				dy[i] = (miny+maxy)/2 - (bbox.y + bbox.height/2);
        				break;
        			case 'b': // bottom (vertical)
        				dy[i] = maxy - (bbox.y + bbox.height);
        				break;
        		}
        	}
        	this.moveSelectedElements(dx, dy);
        };
        
        // Group: Additional editor tools
        
        this.contentW = getResolution().w;
        this.contentH = getResolution().h;
        
        // Function: updateCanvas
        // Updates the editor canvas width/height/position after a zoom has occurred 
        //
        // Parameters:
        // w - Float with the new width
        // h - Float with the new height
        //
        // Returns: 
        // Object with the following values:
        // * x - The canvas' new x coordinate
        // * y - The canvas' new y coordinate
        // * old_x - The canvas' old x coordinate
        // * old_y - The canvas' old y coordinate
        // * d_x - The x position difference
        // * d_y - The y position difference
        this.updateCanvas = function(w, h) {
        	svgroot.setAttribute('width', w);
        	svgroot.setAttribute('height', h);
        	var bg = $('#canvasBackground')[0];
        	var old_x = svgcontent.getAttribute('x');
        	var old_y = svgcontent.getAttribute('y');
        	var x = (w/2 - this.contentW*current_zoom/2);
        	var y = (h/2 - this.contentH*current_zoom/2);
        
        	svgedit.utilities.assignAttributes(svgcontent, {
        		width: this.contentW*current_zoom,
        		height: this.contentH*current_zoom,
        		'x': x,
        		'y': y,
        		'viewBox' : '0 0 ' + this.contentW + ' ' + this.contentH
        	});
        	
        	svgedit.utilities.assignAttributes(bg, {
        		width: svgcontent.getAttribute('width'),
        		height: svgcontent.getAttribute('height'),
        		x: x,
        		y: y
        	});
        
        	var bg_img = svgedit.utilities.getElem('background_image');
        	if (bg_img) {
        		svgedit.utilities.assignAttributes(bg_img, {
        			'width': '100%',
        			'height': '100%'
        		});
        	}
        	
        	selectorManager.selectorParentGroup.setAttribute('transform', 'translate(' + x + ',' + y + ')');
        	runExtensions('canvasUpdated', {new_x:x, new_y:y, old_x:old_x, old_y:old_y, d_x:x - old_x, d_y:y - old_y});
        	return {x:x, y:y, old_x:old_x, old_y:old_y, d_x:x - old_x, d_y:y - old_y};
        };
        
        // Function: setBackground
        // Set the background of the editor (NOT the actual document)
        //
        // Parameters:
        // color - String with fill color to apply
        // url - URL or path to image to use
        this.setBackground = function(color, url) {
        	var bg = svgedit.utilities.getElem('canvasBackground');
        	var border = $(bg).find('rect')[0];
        	var bg_img = svgedit.utilities.getElem('background_image');
        	border.setAttribute('fill', color);
        	if (url) {
        		if (!bg_img) {
        			bg_img = svgdoc.createElementNS(NS.SVG, 'image');
        			svgedit.utilities.assignAttributes(bg_img, {
        				'id': 'background_image',
        				'width': '100%',
        				'height': '100%',
        				'preserveAspectRatio': 'xMinYMin',
        				'style':'pointer-events:none'
        			});
        		}
        		setHref(bg_img, url);
        		bg.appendChild(bg_img);
        	} else if (bg_img) {
        		bg_img.parentNode.removeChild(bg_img);
        	}
        };
        
        // Function: cycleElement
        // Select the next/previous element within the current layer
        //
        // Parameters:
        // next - Boolean where true = next and false = previous element
        this.cycleElement = function(next) {
        	var num;
        	var cur_elem = selectedElements[0];
        	var elem = false;
        	var all_elems = getVisibleElements(current_group || getCurrentDrawing().getCurrentLayer());
        	if (!all_elems.length) {return;}
        	if (cur_elem == null) {
        		num = next?all_elems.length-1:0;
        		elem = all_elems[num];
        	} else {
        		var i = all_elems.length;
        		while (i--) {
        			if (all_elems[i] == cur_elem) {
        				num = next ? i - 1 : i + 1;
        				if (num >= all_elems.length) {
        					num = 0;
        				} else if (num < 0) {
        					num = all_elems.length-1;
        				} 
        				elem = all_elems[num];
        				break;
        			} 
        		}
        	}		
        	selectOnly([elem], true);
        	call('selected', selectedElements);
        };
        
        this.clear();
        
        
        // DEPRECATED: getPrivateMethods 
        // Since all methods are/should be public somehow, this function should be removed
        
        // Being able to access private methods publicly seems wrong somehow,
        // but currently appears to be the best way to allow testing and provide
        // access to them to plugins.
        this.getPrivateMethods = function() {
        	var obj = {
        		addCommandToHistory: addCommandToHistory,
        		setGradient: setGradient,
        		addSvgElementFromJson: addSvgElementFromJson,
        		assignAttributes: assignAttributes,
        		BatchCommand: BatchCommand,
        		call: call,
        		ChangeElementCommand: ChangeElementCommand,
        		copyElem: copyElem,
        		ffClone: ffClone,
        		findDefs: findDefs,
        		findDuplicateGradient: findDuplicateGradient,
        		getElem: getElem,
        		getId: getId,
        		getIntersectionList: getIntersectionList,
        		getMouseTarget: getMouseTarget,
        		getNextId: getNextId,
        		getPathBBox: getPathBBox,
        		getUrlFromAttr: getUrlFromAttr,
        		hasMatrixTransform: hasMatrixTransform,
        		identifyLayers: identifyLayers,
        		InsertElementCommand: InsertElementCommand,
        		isIdentity: svgedit.math.isIdentity,
        		logMatrix: logMatrix,
        		matrixMultiply: matrixMultiply,
        		MoveElementCommand: MoveElementCommand,
        		preventClickDefault: preventClickDefault,
        		recalculateAllSelectedDimensions: recalculateAllSelectedDimensions,
        		recalculateDimensions: recalculateDimensions,
        		remapElement: remapElement,
        		RemoveElementCommand: RemoveElementCommand,
        		removeUnusedDefElems: removeUnusedDefElems,
        		round: round,
        		runExtensions: runExtensions,
        		sanitizeSvg: sanitizeSvg,
        		SVGEditTransformList: svgedit.transformlist.SVGTransformList,
        		toString: toString,
        		transformBox: svgedit.math.transformBox,
        		transformListToTransform: transformListToTransform,
        		transformPoint: transformPoint,
        		walkTree: svgedit.utilities.walkTree
        	};
        	return obj;
        };
        
        };
        
      • svgedit.js
        /*globals $, svgedit*/
        /**
         *
         * Licensed under the MIT License
         * main object, loaded first so other modules have the guarantee of its existence
         */
        
        svgedit = {
        	// common namepaces constants in alpha order
        	NS: {
        		HTML: 'http://www.w3.org/1999/xhtml',
        		MATH: 'http://www.w3.org/1998/Math/MathML',
        		SE: 'http://svg-edit.googlecode.com',
        		SVG: 'http://www.w3.org/2000/svg',
        		XLINK: 'http://www.w3.org/1999/xlink',
        		XML: 'http://www.w3.org/XML/1998/namespace',
        		XMLNS: 'http://www.w3.org/2000/xmlns/' // see http://www.w3.org/TR/REC-xml-names/#xmlReserved
        	}
        };
        
        // return the svgedit.NS with key values switched and lowercase
        svgedit.getReverseNS = function() {'use strict';
        	var reverseNS = {};
        	$.each(this.NS, function(name, URI) {
        		reverseNS[URI] = name.toLowerCase();
        	});
        	return reverseNS;
        };
      • svgtransformlist.js
        /*globals $, svgedit*/
        /*jslint vars: true, eqeq: true*/
        /**
         * SVGTransformList
         *
         * Licensed under the MIT License
         *
         * Copyright(c) 2010 Alexis Deveria
         * Copyright(c) 2010 Jeff Schiller
         */
        
        // Dependencies:
        // 1) browser.js
        
        (function() {'use strict';
        
        if (!svgedit.transformlist) {
        	svgedit.transformlist = {};
        }
        
        var svgroot = document.createElementNS(svgedit.NS.SVG, 'svg');
        
        // Helper function.
        function transformToString(xform) {
        	var m = xform.matrix,
        		text = '';
        	switch(xform.type) {
        		case 1: // MATRIX
        			text = 'matrix(' + [m.a, m.b, m.c, m.d, m.e, m.f].join(',') + ')';
        			break;
        		case 2: // TRANSLATE
        			text = 'translate(' + m.e + ',' + m.f + ')';
        			break;
        		case 3: // SCALE
        			if (m.a == m.d) {text = 'scale(' + m.a + ')';}
        			else {text = 'scale(' + m.a + ',' + m.d + ')';}
        			break;
        		case 4: // ROTATE
        			var cx = 0, cy = 0;
        			// this prevents divide by zero
        			if (xform.angle != 0) {
        				var K = 1 - m.a;
        				cy = ( K * m.f + m.b*m.e ) / ( K*K + m.b*m.b );
        				cx = ( m.e - m.b * cy ) / K;
        			}
        			text = 'rotate(' + xform.angle + ' ' + cx + ',' + cy + ')';
        			break;
        	}
        	return text;
        }
        
        
        /**
         * Map of SVGTransformList objects.
         */
        var listMap_ = {};
        
        
        // **************************************************************************************
        // SVGTransformList implementation for Webkit 
        // These methods do not currently raise any exceptions.
        // These methods also do not check that transforms are being inserted.  This is basically
        // implementing as much of SVGTransformList that we need to get the job done.
        //
        //  interface SVGEditTransformList { 
        //		attribute unsigned long numberOfItems;
        //		void   clear (  )
        //		SVGTransform initialize ( in SVGTransform newItem )
        //		SVGTransform getItem ( in unsigned long index ) (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
        //		SVGTransform insertItemBefore ( in SVGTransform newItem, in unsigned long index ) (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
        //		SVGTransform replaceItem ( in SVGTransform newItem, in unsigned long index ) (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
        //		SVGTransform removeItem ( in unsigned long index ) (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
        //		SVGTransform appendItem ( in SVGTransform newItem )
        //		NOT IMPLEMENTED: SVGTransform createSVGTransformFromMatrix ( in SVGMatrix matrix );
        //		NOT IMPLEMENTED: SVGTransform consolidate (  );
        //	}
        // **************************************************************************************
        svgedit.transformlist.SVGTransformList = function(elem) {
        	this._elem = elem || null;
        	this._xforms = [];
        	// TODO: how do we capture the undo-ability in the changed transform list?
        	this._update = function() {
        		var tstr = '';
        		var concatMatrix = svgroot.createSVGMatrix();
        		var i;
        		for (i = 0; i < this.numberOfItems; ++i) {
        			var xform = this._list.getItem(i);
        			tstr += transformToString(xform) + ' ';
        		}
        		this._elem.setAttribute('transform', tstr);
        	};
        	this._list = this;
        	this._init = function() {
        		// Transform attribute parser
        		var str = this._elem.getAttribute('transform');
        		if (!str) {return;}
        
        		// TODO: Add skew support in future
        		var re = /\s*((scale|matrix|rotate|translate)\s*\(.*?\))\s*,?\s*/;
        		var m = true;
        		while (m) {
        			m = str.match(re);
        			str = str.replace(re, '');
        			if (m && m[1]) {
        				var x = m[1];
        				var bits = x.split(/\s*\(/);
        				var name = bits[0];
        				var val_bits = bits[1].match(/\s*(.*?)\s*\)/);
        				val_bits[1] = val_bits[1].replace(/(\d)-/g, '$1 -');
        				var val_arr = val_bits[1].split(/[, ]+/);
        				var letters = 'abcdef'.split('');
        				var mtx = svgroot.createSVGMatrix();
        				$.each(val_arr, function(i, item) {
        					val_arr[i] = parseFloat(item);
        					if (name == 'matrix') {
        						mtx[letters[i]] = val_arr[i];
        					}
        				});
        				var xform = svgroot.createSVGTransform();
        				var fname = 'set' + name.charAt(0).toUpperCase() + name.slice(1);
        				var values = name == 'matrix' ? [mtx] : val_arr;
        
        				if (name == 'scale' && values.length == 1) {
        					values.push(values[0]);
        				} else if (name == 'translate' && values.length == 1) {
        					values.push(0);
        				} else if (name == 'rotate' && values.length == 1) {
        					values.push(0, 0);
        				}
        				xform[fname].apply(xform, values);
        				this._list.appendItem(xform);
        			}
        		}
        	};
        	this._removeFromOtherLists = function(item) {
        		if (item) {
        			// Check if this transform is already in a transformlist, and
        			// remove it if so.
        			var found = false;
        			var id;
        			for (id in listMap_) {
        				var tl = listMap_[id];
        				var i, len;
        				for (i = 0, len = tl._xforms.length; i < len; ++i) {
        					if (tl._xforms[i] == item) {
        						found = true;
        						tl.removeItem(i);
        						break;
        					}
        				}
        				if (found) {
        					break;
        				}
        			}
        		}
        	};
        
        	this.numberOfItems = 0;
        	this.clear = function() {
        		this.numberOfItems = 0;
        		this._xforms = [];
        	};
        
        	this.initialize = function(newItem) {
        		this.numberOfItems = 1;
        		this._removeFromOtherLists(newItem);
        		this._xforms = [newItem];
        	};
        
        	this.getItem = function(index) {
        		if (index < this.numberOfItems && index >= 0) {
        			return this._xforms[index];
        		}
        		throw {code: 1}; // DOMException with code=INDEX_SIZE_ERR
        	};
        
        	this.insertItemBefore = function(newItem, index) {
        		var retValue = null;
        		if (index >= 0) {
        			if (index < this.numberOfItems) {
        				this._removeFromOtherLists(newItem);
        				var newxforms = new Array(this.numberOfItems + 1);
        				// TODO: use array copying and slicing
        				var i;
        				for (i = 0; i < index; ++i) {
        					newxforms[i] = this._xforms[i];
        				}
        				newxforms[i] = newItem;
        				var j;
        				for (j = i+1; i < this.numberOfItems; ++j, ++i) {
        					newxforms[j] = this._xforms[i];
        				}
        				this.numberOfItems++;
        				this._xforms = newxforms;
        				retValue = newItem;
        				this._list._update();
        			}
        			else {
        				retValue = this._list.appendItem(newItem);
        			}
        		}
        		return retValue;
        	};
        
        	this.replaceItem = function(newItem, index) {
        		var retValue = null;
        		if (index < this.numberOfItems && index >= 0) {
        			this._removeFromOtherLists(newItem);
        			this._xforms[index] = newItem;
        			retValue = newItem;
        			this._list._update();
        		}
        		return retValue;
        	};
        
        	this.removeItem = function(index) {
        		if (index < this.numberOfItems && index >= 0) {
        			var retValue = this._xforms[index];
        			var newxforms = new Array(this.numberOfItems - 1);
        			var i, j;
        			for (i = 0; i < index; ++i) {
        				newxforms[i] = this._xforms[i];
        			}
        			for (j = i; j < this.numberOfItems-1; ++j, ++i) {
        				newxforms[j] = this._xforms[i+1];
        			}
        			this.numberOfItems--;
        			this._xforms = newxforms;
        			this._list._update();
        			return retValue;
        		}
        		throw {code: 1}; // DOMException with code=INDEX_SIZE_ERR
        	};
        
        	this.appendItem = function(newItem) {
        		this._removeFromOtherLists(newItem);
        		this._xforms.push(newItem);
        		this.numberOfItems++;
        		this._list._update();
        		return newItem;
        	};
        };
        
        
        svgedit.transformlist.resetListMap = function() {
        	listMap_ = {};
        };
        
        /**
         * Removes transforms of the given element from the map.
         * Parameters:
         * elem - a DOM Element
         */
        svgedit.transformlist.removeElementFromListMap = function(elem) {
        	if (elem.id && listMap_[elem.id]) {
        		delete listMap_[elem.id];
        	}
        };
        
        // Function: getTransformList
        // Returns an object that behaves like a SVGTransformList for the given DOM element
        //
        // Parameters:
        // elem - DOM element to get a transformlist from
        svgedit.transformlist.getTransformList = function(elem) {
        	if (!svgedit.browser.supportsNativeTransformLists()) {
        		var id = elem.id || 'temp';
        		var t = listMap_[id];
        		if (!t || id === 'temp') {
        			listMap_[id] = new svgedit.transformlist.SVGTransformList(elem);
        			listMap_[id]._init();
        			t = listMap_[id];
        		}
        		return t;
        	}
        	if (elem.transform) {
        		return elem.transform.baseVal;
        	}
        	if (elem.gradientTransform) {
        		return elem.gradientTransform.baseVal;
        	}
        	if (elem.patternTransform) {
        		return elem.patternTransform.baseVal;
        	}
        
        	return null;
        };
        
        }());
      • svgutils.js
        /*globals $, svgedit, unescape, DOMParser, ActiveXObject, getStrokedBBox*/
        /*jslint vars: true, eqeq: true, bitwise: true, continue: true, forin: true*/
        /**
         * Package: svgedit.utilities
         *
         * Licensed under the MIT License
         *
         * Copyright(c) 2010 Alexis Deveria
         * Copyright(c) 2010 Jeff Schiller
         */
        
        // Dependencies:
        // 1) jQuery
        // 2) browser.js
        // 3) svgtransformlist.js
        // 4) units.js
        
        (function(undef) {'use strict';
        
        if (!svgedit.utilities) {
        	svgedit.utilities = {};
        }
        
        // Constants
        
        // String used to encode base64.
        var KEYSTR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
        var NS = svgedit.NS;
        
        // Much faster than running getBBox() every time
        var visElems = 'a,circle,ellipse,foreignObject,g,image,line,path,polygon,polyline,rect,svg,text,tspan,use';
        var visElems_arr = visElems.split(',');
        //var hidElems = 'clipPath,defs,desc,feGaussianBlur,filter,linearGradient,marker,mask,metadata,pattern,radialGradient,stop,switch,symbol,title,textPath';
        
        var editorContext_ = null;
        var domdoc_ = null;
        var domcontainer_ = null;
        var svgroot_ = null;
        
        svgedit.utilities.init = function(editorContext) {
        	editorContext_ = editorContext;
        	domdoc_ = editorContext.getDOMDocument();
        	domcontainer_ = editorContext.getDOMContainer();
        	svgroot_ = editorContext.getSVGRoot();
        };
        
        // Function: svgedit.utilities.toXml
        // Converts characters in a string to XML-friendly entities.
        //
        // Example: '&' becomes '&amp;'
        //
        // Parameters:
        // str - The string to be converted
        //
        // Returns:
        // The converted string
        svgedit.utilities.toXml = function(str) {
        	// &apos; is ok in XML, but not HTML
        	// &gt; does not normally need escaping, though it can if within a CDATA expression (and preceded by "]]")
        	return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/'/, '&#x27;');
        };
        
        // Function: svgedit.utilities.fromXml
        // Converts XML entities in a string to single characters.
        // Example: '&amp;' becomes '&'
        //
        // Parameters:
        // str - The string to be converted
        //
        // Returns:
        // The converted string
        svgedit.utilities.fromXml = function(str) {
        	return $('<p/>').html(str).text();
        };
        
        // This code was written by Tyler Akins and has been placed in the
        // public domain.  It would be nice if you left this header intact.
        // Base64 code from Tyler Akins -- http://rumkin.com
        
        // schiller: Removed string concatenation in favour of Array.join() optimization,
        //				also precalculate the size of the array needed.
        
        // Function: svgedit.utilities.encode64
        // Converts a string to base64
        svgedit.utilities.encode64 = function(input) {
        	// base64 strings are 4/3 larger than the original string
        	input = svgedit.utilities.encodeUTF8(input); // convert non-ASCII characters
        	// input = svgedit.utilities.convertToXMLReferences(input);
        	if (window.btoa) {
        		return window.btoa(input); // Use native if available
            }
            var output = [];
        	output.length = Math.floor( (input.length + 2) / 3 ) * 4;
        	var chr1, chr2, chr3;
        	var enc1, enc2, enc3, enc4;
        	var i = 0, p = 0;
        
        	do {
        		chr1 = input.charCodeAt(i++);
        		chr2 = input.charCodeAt(i++);
        		chr3 = input.charCodeAt(i++);
        
        		enc1 = chr1 >> 2;
        		enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
        		enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
        		enc4 = chr3 & 63;
        
        		if (isNaN(chr2)) {
        			enc3 = enc4 = 64;
        		} else if (isNaN(chr3)) {
        			enc4 = 64;
        		}
        
        		output[p++] = KEYSTR.charAt(enc1);
        		output[p++] = KEYSTR.charAt(enc2);
        		output[p++] = KEYSTR.charAt(enc3);
        		output[p++] = KEYSTR.charAt(enc4);
        	} while (i < input.length);
        
        	return output.join('');
        };
        
        // Function: svgedit.utilities.decode64
        // Converts a string from base64
        svgedit.utilities.decode64 = function(input) {
        	if(window.atob) {
                return svgedit.utilities.decodeUTF8(window.atob(input));
            }
        	var output = '';
        	var chr1, chr2, chr3 = '';
        	var enc1, enc2, enc3, enc4 = '';
        	var i = 0;
        
        	// remove all characters that are not A-Z, a-z, 0-9, +, /, or =
        	input = input.replace(/[^A-Za-z0-9\+\/\=]/g, '');
        
        	do {
        		enc1 = KEYSTR.indexOf(input.charAt(i++));
        		enc2 = KEYSTR.indexOf(input.charAt(i++));
        		enc3 = KEYSTR.indexOf(input.charAt(i++));
        		enc4 = KEYSTR.indexOf(input.charAt(i++));
        
        		chr1 = (enc1 << 2) | (enc2 >> 4);
        		chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
        		chr3 = ((enc3 & 3) << 6) | enc4;
        
        		output = output + String.fromCharCode(chr1);
        
        		if (enc3 != 64) {
        			output = output + String.fromCharCode(chr2);
        		}
        		if (enc4 != 64) {
        			output = output + String.fromCharCode(chr3);
        		}
        
        		chr1 = chr2 = chr3 = '';
        		enc1 = enc2 = enc3 = enc4 = '';
        
        	} while (i < input.length);
            return svgedit.utilities.decodeUTF8(output);
        };
        
        svgedit.utilities.decodeUTF8 = function (argString) {
            return decodeURIComponent(escape(argString));
        };
        
        // codedread:does not seem to work with webkit-based browsers on OSX // Brettz9: please test again as function upgraded
        svgedit.utilities.encodeUTF8 = function (argString) {
          return unescape(encodeURIComponent(argString));
        };
        
        // Function: svgedit.utilities.convertToXMLReferences
        // Converts a string to use XML references
        svgedit.utilities.convertToXMLReferences = function(input) {
        	var n,
        		output = '';
        	for (n = 0; n < input.length; n++){
        		var c = input.charCodeAt(n);
        		if (c < 128) {
        			output += input[n];
        		} else if(c > 127) {
        			output += ('&#' + c + ';');
        		}
        	}
        	return output;
        };
        
        // Function: svgedit.utilities.text2xml
        // Cross-browser compatible method of converting a string to an XML tree
        // found this function here: http://groups.google.com/group/jquery-dev/browse_thread/thread/c6d11387c580a77f
        svgedit.utilities.text2xml = function(sXML) {
        	if(sXML.indexOf('<svg:svg') >= 0) {
        		sXML = sXML.replace(/<(\/?)svg:/g, '<$1').replace('xmlns:svg', 'xmlns');
        	}
        
        	var out, dXML;
        	try{
        		dXML = (window.DOMParser)?new DOMParser():new ActiveXObject('Microsoft.XMLDOM');
        		dXML.async = false;
        	} catch(e){
        		throw new Error('XML Parser could not be instantiated');
        	}
        	try{
        		if (dXML.loadXML) {
        			out = (dXML.loadXML(sXML)) ? dXML : false;
        		}
        		else {
        			out = dXML.parseFromString(sXML, 'text/xml');
        		}
        	}
        	catch(e2){ throw new Error('Error parsing XML string'); }
        	return out;
        };
        
        // Function: svgedit.utilities.bboxToObj
        // Converts a SVGRect into an object.
        // 
        // Parameters:
        // bbox - a SVGRect
        // 
        // Returns:
        // An object with properties names x, y, width, height.
        svgedit.utilities.bboxToObj = function(bbox) {
        	return {
        		x: bbox.x,
        		y: bbox.y,
        		width: bbox.width,
        		height: bbox.height
        	};
        };
        
        // Function: svgedit.utilities.walkTree
        // Walks the tree and executes the callback on each element in a top-down fashion
        //
        // Parameters:
        // elem - DOM element to traverse
        // cbFn - Callback function to run on each element
        svgedit.utilities.walkTree = function(elem, cbFn){
        	if (elem && elem.nodeType == 1) {
        		cbFn(elem);
        		var i = elem.childNodes.length;
        		while (i--) {
        			svgedit.utilities.walkTree(elem.childNodes.item(i), cbFn);
        		}
        	}
        };
        
        // Function: svgedit.utilities.walkTreePost
        // Walks the tree and executes the callback on each element in a depth-first fashion
        // TODO: FIXME: Shouldn't this be calling walkTreePost?
        //
        // Parameters:
        // elem - DOM element to traverse
        // cbFn - Callback function to run on each element
        svgedit.utilities.walkTreePost = function(elem, cbFn) {
        	if (elem && elem.nodeType == 1) {
        		var i = elem.childNodes.length;
        		while (i--) {
        			svgedit.utilities.walkTree(elem.childNodes.item(i), cbFn);
        		}
        		cbFn(elem);
        	}
        };
        
        // Function: svgedit.utilities.getUrlFromAttr
        // Extracts the URL from the url(...) syntax of some attributes.
        // Three variants:
        //  * <circle fill="url(someFile.svg#foo)" />
        //  * <circle fill="url('someFile.svg#foo')" />
        //  * <circle fill='url("someFile.svg#foo")' />
        //
        // Parameters:
        // attrVal - The attribute value as a string
        //
        // Returns:
        // String with just the URL, like someFile.svg#foo
        svgedit.utilities.getUrlFromAttr = function(attrVal) {
        	if (attrVal) {
        		// url("#somegrad")
        		if (attrVal.indexOf('url("') === 0) {
        			return attrVal.substring(5, attrVal.indexOf('"',6));
        		}
        		// url('#somegrad')
        		if (attrVal.indexOf("url('") === 0) {
        			return attrVal.substring(5, attrVal.indexOf("'",6));
        		}
        		if (attrVal.indexOf("url(") === 0) {
        			return attrVal.substring(4, attrVal.indexOf(')'));
        		}
        	}
        	return null;
        };
        
        // Function: svgedit.utilities.getHref
        // Returns the given element's xlink:href value
        svgedit.utilities.getHref = function(elem) {
        	return elem.getAttributeNS(NS.XLINK, 'href');
        };
        
        // Function: svgedit.utilities.setHref
        // Sets the given element's xlink:href value
        svgedit.utilities.setHref = function(elem, val) {
        	elem.setAttributeNS(NS.XLINK, 'xlink:href', val);
        };
        
        // Function: findDefs
        //
        // Returns:
        // The document's <defs> element, create it first if necessary
        svgedit.utilities.findDefs = function() {
        	var svgElement = editorContext_.getSVGContent();
        	var defs = svgElement.getElementsByTagNameNS(NS.SVG, 'defs');
        	if (defs.length > 0) {
        		defs = defs[0];
        	} else {
        		defs = svgElement.ownerDocument.createElementNS(NS.SVG, 'defs');
        		if (svgElement.firstChild) {
        			// first child is a comment, so call nextSibling
        			svgElement.insertBefore(defs, svgElement.firstChild.nextSibling);
        		} else {
        			svgElement.appendChild(defs);
        		}
        	}
        	return defs;
        };
        
        // TODO(codedread): Consider moving the next to functions to bbox.js
        
        // Function: svgedit.utilities.getPathBBox
        // Get correct BBox for a path in Webkit
        // Converted from code found here:
        // http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html
        //
        // Parameters:
        // path - The path DOM element to get the BBox for
        //
        // Returns:
        // A BBox-like object
        svgedit.utilities.getPathBBox = function(path) {
        	var seglist = path.pathSegList;
        	var tot = seglist.numberOfItems;
        
        	var bounds = [[], []];
        	var start = seglist.getItem(0);
        	var P0 = [start.x, start.y];
        
        	var i;
        	for (i = 0; i < tot; i++) {
        		var seg = seglist.getItem(i);
        
        		if(seg.x === undef) {continue;}
        
        		// Add actual points to limits
        		bounds[0].push(P0[0]);
        		bounds[1].push(P0[1]);
        
        		if (seg.x1) {
        			var P1 = [seg.x1, seg.y1],
        				P2 = [seg.x2, seg.y2],
        				P3 = [seg.x, seg.y];
        
        			var j;
        			for (j = 0; j < 2; j++) {
        
        				var calc = function(t) {
        					return Math.pow(1-t,3) * P0[j]
        						+ 3 * Math.pow(1-t,2) * t * P1[j]
        						+ 3 * (1-t) * Math.pow(t, 2) * P2[j]
        						+ Math.pow(t,3) * P3[j];
        				};
        
        				var b = 6 * P0[j] - 12 * P1[j] + 6 * P2[j];
        				var a = -3 * P0[j] + 9 * P1[j] - 9 * P2[j] + 3 * P3[j];
        				var c = 3 * P1[j] - 3 * P0[j];
        
        				if (a == 0) {
        					if (b == 0) {
        						continue;
        					}
        					var t = -c / b;
        					if (0 < t && t < 1) {
        						bounds[j].push(calc(t));
        					}
        					continue;
        				}
        				var b2ac = Math.pow(b,2) - 4 * c * a;
        				if (b2ac < 0) {continue;}
        				var t1 = (-b + Math.sqrt(b2ac))/(2 * a);
        				if (0 < t1 && t1 < 1) {bounds[j].push(calc(t1));}
        				var t2 = (-b - Math.sqrt(b2ac))/(2 * a);
        				if (0 < t2 && t2 < 1) {bounds[j].push(calc(t2));}
        			}
        			P0 = P3;
        		} else {
        			bounds[0].push(seg.x);
        			bounds[1].push(seg.y);
        		}
        	}
        
        	var x = Math.min.apply(null, bounds[0]);
        	var w = Math.max.apply(null, bounds[0]) - x;
        	var y = Math.min.apply(null, bounds[1]);
        	var h = Math.max.apply(null, bounds[1]) - y;
        	return {
        		'x': x,
        		'y': y,
        		'width': w,
        		'height': h
        	};
        };
        
        // Function: groupBBFix
        // Get the given/selected element's bounding box object, checking for
        // horizontal/vertical lines (see issue 717)
        // Note that performance is currently terrible, so some way to improve would
        // be great.
        //
        // Parameters:
        // selected - Container or <use> DOM element
        function groupBBFix(selected) {
        	if(svgedit.browser.supportsHVLineContainerBBox()) {
        		try { return selected.getBBox();} catch(e){}
        	}
        	var ref = $.data(selected, 'ref');
        	var matched = null;
        	var ret, copy;
        
        	if(ref) {
        		copy = $(ref).children().clone().attr('visibility', 'hidden');
        		$(svgroot_).append(copy);
        		matched = copy.filter('line, path');
        	} else {
        		matched = $(selected).find('line, path');
        	}
        
        	var issue = false;
        	if(matched.length) {
        		matched.each(function() {
        			var bb = this.getBBox();
        			if(!bb.width || !bb.height) {
        				issue = true;
        			}
        		});
        		if(issue) {
        			var elems = ref ? copy : $(selected).children();
        			ret = getStrokedBBox(elems); // getStrokedBBox defined in svgcanvas
        		} else {
        			ret = selected.getBBox();
        		}
        	} else {
        		ret = selected.getBBox();
        	}
        	if(ref) {
        		copy.remove();
        	}
        	return ret;
        }
        
        // Function: svgedit.utilities.getBBox
        // Get the given/selected element's bounding box object, convert it to be more
        // usable when necessary
        //
        // Parameters:
        // elem - Optional DOM element to get the BBox for
        svgedit.utilities.getBBox = function(elem) {
        	var selected = elem || editorContext_.geSelectedElements()[0];
        	if (elem.nodeType != 1) {return null;}
        	var ret = null;
        	var elname = selected.nodeName;
        
        	switch ( elname ) {
        	case 'text':
        		if(selected.textContent === '') {
        			selected.textContent = 'a'; // Some character needed for the selector to use.
        			ret = selected.getBBox();
        			selected.textContent = '';
        		} else {
        			try { ret = selected.getBBox();} catch(e){}
        		}
        		break;
        	case 'path':
        		if(!svgedit.browser.supportsPathBBox()) {
        			ret = svgedit.utilities.getPathBBox(selected);
        		} else {
        			try { ret = selected.getBBox();} catch(e2){}
        		}
        		break;
        	case 'g':
        	case 'a':
        		ret = groupBBFix(selected);
        		break;
        	default:
        
        		if(elname === 'use') {
        			ret = groupBBFix(selected, true);
        		}
        		if(elname === 'use' || ( elname === 'foreignObject' && svgedit.browser.isWebkit() ) ) {
        			if(!ret) {ret = selected.getBBox();}
        			// This is resolved in later versions of webkit, perhaps we should
        			// have a featured detection for correct 'use' behavior?
        			// ——————————
        			//if(!svgedit.browser.isWebkit()) {
        				var bb = {};
        				bb.width = ret.width;
        				bb.height = ret.height;
        				bb.x = ret.x + parseFloat(selected.getAttribute('x')||0);
        				bb.y = ret.y + parseFloat(selected.getAttribute('y')||0);
        				ret = bb;
        			//}
        		} else if(~visElems_arr.indexOf(elname)) {
        			try { ret = selected.getBBox();}
        			catch(e3) {
        				// Check if element is child of a foreignObject
        				var fo = $(selected).closest('foreignObject');
        				if(fo.length) {
        					try {
        						ret = fo[0].getBBox();
        					} catch(e4) {
        						ret = null;
        					}
        				} else {
        					ret = null;
        				}
        			}
        		}
        	}
        	if(ret) {
        		ret = svgedit.utilities.bboxToObj(ret);
        	}
        
        	// get the bounding box from the DOM (which is in that element's coordinate system)
        	return ret;
        };
        
        // Function: svgedit.utilities.getRotationAngle
        // Get the rotation angle of the given/selected DOM element
        //
        // Parameters:
        // elem - Optional DOM element to get the angle for
        // to_rad - Boolean that when true returns the value in radians rather than degrees
        //
        // Returns:
        // Float with the angle in degrees or radians
        svgedit.utilities.getRotationAngle = function(elem, to_rad) {
        	var selected = elem || editorContext_.getSelectedElements()[0];
        	// find the rotation transform (if any) and set it
        	var tlist = svgedit.transformlist.getTransformList(selected);
        	if(!tlist) {return 0;} // <svg> elements have no tlist
        	var N = tlist.numberOfItems;
        	var i;
        	for (i = 0; i < N; ++i) {
        		var xform = tlist.getItem(i);
        		if (xform.type == 4) {
        			return to_rad ? xform.angle * Math.PI / 180.0 : xform.angle;
        		}
        	}
        	return 0.0;
        };
        
        // Function getRefElem
        // Get the reference element associated with the given attribute value
        //
        // Parameters:
        // attrVal - The attribute value as a string
        svgedit.utilities.getRefElem = function(attrVal) {
        	return svgedit.utilities.getElem(svgedit.utilities.getUrlFromAttr(attrVal).substr(1));
        };
        
        // Function: getElem
        // Get a DOM element by ID within the SVG root element.
        //
        // Parameters:
        // id - String with the element's new ID
        if (svgedit.browser.supportsSelectors()) {
        	svgedit.utilities.getElem = function(id) {
        		// querySelector lookup
        		return svgroot_.querySelector('#'+id);
        	};
        } else if (svgedit.browser.supportsXpath()) {
        	svgedit.utilities.getElem = function(id) {
        		// xpath lookup
        		return domdoc_.evaluate(
        			'svg:svg[@id="svgroot"]//svg:*[@id="'+id+'"]',
        			domcontainer_,
        			function() { return svgedit.NS.SVG; },
        			9,
        			null).singleNodeValue;
        	};
        } else {
        	svgedit.utilities.getElem = function(id) {
        		// jQuery lookup: twice as slow as xpath in FF
        		return $(svgroot_).find('[id=' + id + ']')[0];
        	};
        }
        
        // Function: assignAttributes
        // Assigns multiple attributes to an element.
        //
        // Parameters: 
        // node - DOM element to apply new attribute values to
        // attrs - Object with attribute keys/values
        // suspendLength - Optional integer of milliseconds to suspend redraw
        // unitCheck - Boolean to indicate the need to use svgedit.units.setUnitAttr
        svgedit.utilities.assignAttributes = function(node, attrs, suspendLength, unitCheck) {
        	if(!suspendLength) {suspendLength = 0;}
        	// Opera has a problem with suspendRedraw() apparently
        	var handle = null;
        	if (!svgedit.browser.isOpera()) {svgroot_.suspendRedraw(suspendLength);}
        
        	var i;
        	for (i in attrs) {
        		var ns = (i.substr(0,4) === 'xml:' ? NS.XML :
        			i.substr(0,6) === 'xlink:' ? NS.XLINK : null);
        
        		if(ns) {
        			node.setAttributeNS(ns, i, attrs[i]);
        		} else if(!unitCheck) {
        			node.setAttribute(i, attrs[i]);
        		} else {
        			svgedit.units.setUnitAttr(node, i, attrs[i]);
        		}
        	}
        	if (!svgedit.browser.isOpera()) {svgroot_.unsuspendRedraw(handle);}
        };
        
        // Function: cleanupElement
        // Remove unneeded (default) attributes, makes resulting SVG smaller
        //
        // Parameters:
        // element - DOM element to clean up
        svgedit.utilities.cleanupElement = function(element) {
        	var handle = svgroot_.suspendRedraw(60);
        	var defaults = {
        		'fill-opacity':1,
        		'stop-opacity':1,
        		'opacity':1,
        		'stroke':'none',
        		'stroke-dasharray':'none',
        		'stroke-linejoin':'miter',
        		'stroke-linecap':'butt',
        		'stroke-opacity':1,
        		'stroke-width':1,
        		'rx':0,
        		'ry':0
        	};
        
        	var attr;
        	for (attr in defaults) {
        		var val = defaults[attr];
        		if(element.getAttribute(attr) == val) {
        			element.removeAttribute(attr);
        		}
        	}
        
        	svgroot_.unsuspendRedraw(handle);
        };
        
        // Function: snapToGrid
        // round value to for snapping
        // NOTE: This function did not move to svgutils.js since it depends on curConfig.
        svgedit.utilities.snapToGrid = function(value) {
        	var stepSize = editorContext_.getSnappingStep();
        	var unit = editorContext_.getBaseUnit();
        	if (unit !== "px") {
        		stepSize *= svgedit.units.getTypeMap()[unit];
        	}
        	value = Math.round(value/stepSize)*stepSize;
        	return value;
        };
        
        svgedit.utilities.preg_quote = function (str, delimiter) {
          // From: http://phpjs.org/functions
          return String(str).replace(new RegExp('[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\' + (delimiter || '') + '-]', 'g'), '\\$&');
        };
        
        /**
        * @param {string} globalCheck A global which can be used to determine if the script is already loaded
        * @param {array} scripts An array of scripts to preload (in order)
        * @param {function} cb The callback to execute upon load.
        */
        svgedit.utilities.executeAfterLoads = function (globalCheck, scripts, cb) {
        	return function () {
        		var args = arguments;
        		function endCallback () {
        			cb.apply(null, args);
        		}
        		if (window[globalCheck]) {
        			endCallback();
        		}
        		else {
        			scripts.reduceRight(function (oldFunc, script) {
        				return function () {
        					$.getScript(script, oldFunc);
        				};
        			}, endCallback)();
        		}
        	};
        };
        
        svgedit.utilities.buildCanvgCallback = function (callCanvg) {
        	return svgedit.utilities.executeAfterLoads('canvg', ['canvg/rgbcolor.js', 'canvg/canvg.js'], callCanvg);
        };
        
        svgedit.utilities.buildJSPDFCallback = function (callJSPDF) {
        	return svgedit.utilities.executeAfterLoads('RGBColor', ['canvg/rgbcolor.js'], function () {
        		var arr = [];
        		if (!RGBColor || RGBColor.ok === undef) { // It's not our RGBColor, so we'll need to load it
        			arr.push('canvg/rgbcolor.js');
        		}
        		svgedit.utilities.executeAfterLoads('jsPDF', arr.concat('jspdf/underscore-min.js', 'jspdf/jspdf.min.js', 'jspdf/jspdf.plugin.svgToPdf.js'), callJSPDF)();
        	});
        };
        
        }());
        
      • touch.js
        // http://ross.posterous.com/2008/08/19/iphone-touch-events-in-javascript/
        function touchHandler(event) {'use strict';
        
        	var simulatedEvent,
        		touches = event.changedTouches,
        		first = touches[0],
        		type = "";
        	switch (event.type) {
        		case "touchstart": type = "mousedown"; break;
        		case "touchmove":  type = "mousemove"; break;
        		case "touchend":   type = "mouseup"; break;
        		default: return;
        	}
        
        	// initMouseEvent(type, canBubble, cancelable, view, clickCount, 
        	//	screenX, screenY, clientX, clientY, ctrlKey, 
        	//	altKey, shiftKey, metaKey, button, relatedTarget);
        
        	simulatedEvent = document.createEvent("MouseEvent");
        	simulatedEvent.initMouseEvent(type, true, true, window, 1,
        								first.screenX, first.screenY,
        								first.clientX, first.clientY, false,
        								false, false, false, 0/*left*/, null);
        	if (touches.length < 2) {
        		first.target.dispatchEvent(simulatedEvent);
        		event.preventDefault();
        	}
        }
        
        document.addEventListener('touchstart', touchHandler, true);
        document.addEventListener('touchmove', touchHandler, true);
        document.addEventListener('touchend', touchHandler, true);
        document.addEventListener('touchcancel', touchHandler, true);
      • units.js
        /*globals $, svgedit*/
        /*jslint vars: true, eqeq: true*/
        /**
         * Package: svgedit.units
         *
         * Licensed under the MIT License
         *
         * Copyright(c) 2010 Alexis Deveria
         * Copyright(c) 2010 Jeff Schiller
         */
        
        // Dependencies:
        // 1) jQuery
        
        (function() {'use strict';
        
        if (!svgedit.units) {
        	svgedit.units = {};
        }
        
        var NS = svgedit.NS;
        var wAttrs = ['x', 'x1', 'cx', 'rx', 'width'];
        var hAttrs = ['y', 'y1', 'cy', 'ry', 'height'];
        var unitAttrs = ['r', 'radius'].concat(wAttrs, hAttrs);
        // unused
        var unitNumMap = {
        	'%':  2,
        	'em': 3,
        	'ex': 4,
        	'px': 5,
        	'cm': 6,
        	'mm': 7,
        	'in': 8,
        	'pt': 9,
        	'pc': 10
        };
        
        // Container of elements.
        var elementContainer_;
        
        /**
         * Stores mapping of unit type to user coordinates.
         */
        var typeMap_ = {};
        
        /**
         * ElementContainer interface
         *
         * function getBaseUnit() - returns a string of the base unit type of the container ('em')
         * function getElement() - returns an element in the container given an id
         * function getHeight() - returns the container's height
         * function getWidth() - returns the container's width
         * function getRoundDigits() - returns the number of digits number should be rounded to
         */
        
        /**
         * Function: svgedit.units.init()
         * Initializes this module.
         *
         * Parameters:
         * elementContainer - an object implementing the ElementContainer interface.
         */
        svgedit.units.init = function(elementContainer) {
        	elementContainer_ = elementContainer;
        
        	// Get correct em/ex values by creating a temporary SVG.
        	var svg = document.createElementNS(NS.SVG, 'svg');
        	document.body.appendChild(svg);
        	var rect = document.createElementNS(NS.SVG, 'rect');
        	rect.setAttribute('width', '1em');
        	rect.setAttribute('height', '1ex');
        	rect.setAttribute('x', '1in');
        	svg.appendChild(rect);
        	var bb = rect.getBBox();
        	document.body.removeChild(svg);
        
        	var inch = bb.x;
        	typeMap_ = {
        		'em': bb.width,
        		'ex': bb.height,
        		'in': inch,
        		'cm': inch / 2.54,
        		'mm': inch / 25.4,
        		'pt': inch / 72,
        		'pc': inch / 6,
        		'px': 1,
        		'%': 0
        	};
        };
        
        // Group: Unit conversion functions
        
        // Function: svgedit.units.getTypeMap
        // Returns the unit object with values for each unit
        svgedit.units.getTypeMap = function() {
        	return typeMap_;
        };
        
        // Function: svgedit.units.shortFloat
        // Rounds a given value to a float with number of digits defined in save_options
        //
        // Parameters:
        // val - The value as a String, Number or Array of two numbers to be rounded
        //
        // Returns:
        // If a string/number was given, returns a Float. If an array, return a string
        // with comma-seperated floats
        svgedit.units.shortFloat = function(val) {
        	var digits = elementContainer_.getRoundDigits();
        	if (!isNaN(val)) {
        		// Note that + converts to Number
        		return +((+val).toFixed(digits));
        	}
        	if ($.isArray(val)) {
        		return svgedit.units.shortFloat(val[0]) + ',' + svgedit.units.shortFloat(val[1]);
        	}
        	return parseFloat(val).toFixed(digits) - 0;
        };
        
        // Function: svgedit.units.convertUnit
        // Converts the number to given unit or baseUnit
        svgedit.units.convertUnit = function(val, unit) {
        	unit = unit || elementContainer_.getBaseUnit();
        //	baseVal.convertToSpecifiedUnits(unitNumMap[unit]);
        //	var val = baseVal.valueInSpecifiedUnits;
        //	baseVal.convertToSpecifiedUnits(1);
        	return svgedit.units.shortFloat(val / typeMap_[unit]);
        };
        
        // Function: svgedit.units.setUnitAttr
        // Sets an element's attribute based on the unit in its current value.
        //
        // Parameters:
        // elem - DOM element to be changed
        // attr - String with the name of the attribute associated with the value
        // val - String with the attribute value to convert
        svgedit.units.setUnitAttr = function(elem, attr, val) {
        //	if (!isNaN(val)) {
        		// New value is a number, so check currently used unit
        //		var old_val = elem.getAttribute(attr);
        
        		// Enable this for alternate mode
        //		if (old_val !== null && (isNaN(old_val) || elementContainer_.getBaseUnit() !== 'px')) {
        //			// Old value was a number, so get unit, then convert
        //			var unit;
        //			if (old_val.substr(-1) === '%') {
        //				var res = getResolution();
        //				unit = '%';
        //				val *= 100;
        //				if (wAttrs.indexOf(attr) >= 0) {
        //					val = val / res.w;
        //				} else if (hAttrs.indexOf(attr) >= 0) {
        //					val = val / res.h;
        //				} else {
        //					return val / Math.sqrt((res.w*res.w) + (res.h*res.h))/Math.sqrt(2);
        //				}
        //			} else {
        //				if (elementContainer_.getBaseUnit() !== 'px') {
        //					unit = elementContainer_.getBaseUnit();
        //				} else {
        //					unit = old_val.substr(-2);
        //				}
        //				val = val / typeMap_[unit];
        //			}
        //
        //		val += unit;
        //		}
        //	}
        	elem.setAttribute(attr, val);
        };
        
        var attrsToConvert = {
        	'line': ['x1', 'x2', 'y1', 'y2'],
        	'circle': ['cx', 'cy', 'r'],
        	'ellipse': ['cx', 'cy', 'rx', 'ry'],
        	'foreignObject': ['x', 'y', 'width', 'height'],
        	'rect': ['x', 'y', 'width', 'height'],
        	'image': ['x', 'y', 'width', 'height'],
        	'use': ['x', 'y', 'width', 'height'],
        	'text': ['x', 'y']
        };
        
        // Function: svgedit.units.convertAttrs
        // Converts all applicable attributes to the configured baseUnit
        //
        // Parameters:
        // element - a DOM element whose attributes should be converted
        svgedit.units.convertAttrs = function(element) {
        	var elName = element.tagName;
        	var unit = elementContainer_.getBaseUnit();
        	var attrs = attrsToConvert[elName];
        	if (!attrs) {return;}
        
        	var len = attrs.length;
        	var i;
        	for (i = 0; i < len; i++) {
        		var attr = attrs[i];
        		var cur = element.getAttribute(attr);
        		if (cur) {
        			if (!isNaN(cur)) {
        				element.setAttribute(attr, (cur / typeMap_[unit]) + unit);
        			}
        			// else {
        				// Convert existing?
        			// }
        		}
        	}
        };
        
        // Function: svgedit.units.convertToNum
        // Converts given values to numbers. Attributes must be supplied in 
        // case a percentage is given
        //
        // Parameters:
        // attr - String with the name of the attribute associated with the value
        // val - String with the attribute value to convert
        svgedit.units.convertToNum = function(attr, val) {
        	// Return a number if that's what it already is
        	if (!isNaN(val)) {return val-0;}
        	var num;
        	if (val.substr(-1) === '%') {
        		// Deal with percentage, depends on attribute
        		num = val.substr(0, val.length-1)/100;
        		var width = elementContainer_.getWidth();
        		var height = elementContainer_.getHeight();
        
        		if (wAttrs.indexOf(attr) >= 0) {
        			return num * width;
        		}
        		if (hAttrs.indexOf(attr) >= 0) {
        			return num * height;
        		}
        		return num * Math.sqrt((width*width) + (height*height))/Math.sqrt(2);
        	}
        	var unit = val.substr(-2);
        	num = val.substr(0, val.length-2);
        	// Note that this multiplication turns the string into a number
        	return num * typeMap_[unit];
        };
        
        // Function: svgedit.units.isValidUnit
        // Check if an attribute's value is in a valid format
        //
        // Parameters:
        // attr - String with the name of the attribute associated with the value
        // val - String with the attribute value to check
        svgedit.units.isValidUnit = function(attr, val, selectedElement) {
        	var valid = false;
        	if (unitAttrs.indexOf(attr) >= 0) {
        		// True if it's just a number
        		if (!isNaN(val)) {
        			valid = true;
        		} else {
        		// Not a number, check if it has a valid unit
        			val = val.toLowerCase();
        			$.each(typeMap_, function(unit) {
        				if (valid) {return;}
        				var re = new RegExp('^-?[\\d\\.]+' + unit + '$');
        				if (re.test(val)) {valid = true;}
        			});
        		}
        	} else if (attr == 'id') {
        		// if we're trying to change the id, make sure it's not already present in the doc
        		// and the id value is valid.
        
        		var result = false;
        		// because getElem() can throw an exception in the case of an invalid id
        		// (according to http://www.w3.org/TR/xml-id/ IDs must be a NCName)
        		// we wrap it in an exception and only return true if the ID was valid and
        		// not already present
        		try {
        			var elem = elementContainer_.getElement(val);
        			result = (elem == null || elem === selectedElement);
        		} catch(e) {}
        		return result;
        	}
        	valid = true;
        
        	return valid;
        };
        
        }());
    • embed
      • start.ts
        module shell {
        
          function start(complete: () => void) {
            complete();
          }
        
        
          (<any>shell).start = start;
        
        }
    • index.html
      <!doctype html>
      <title>SVG editor / EMBED</title>
      
      
      <script data-legit=mi>
        // ONERROR
        <%=embedFile('boot/onerror.js')%>
      //# sourceURL=boot/onerror.js
      </script>
      
      
      <script data-legit=mi>
        // EARLYBOOT
        earlyBoot(window);
      
        	<%=typescriptBuild('boot/*')%>
      
        	<%=embedFile('/boot/bootUI.js')%>
      //# sourceURL=/boot/base.js
      </script>
      
      <script data-legit=mi>
      
        // LOADER
      <%=typescriptBuild('load/*', 'persistence/*', 'boot/base.d.ts', 'typings/*')%>
      //# sourceURL=/load/shellLoader.ts.js
      </script>
      
      <!-- total 12Mb, saved <%=(function() {
      
      // TOTAL SUMMARY
      var monthsPrettyCase = ('Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec').split('|');
      
      var saveDate = new Date();
      var dtText =
        saveDate.getDate() + ' ' +
        monthsPrettyCase[saveDate.getMonth()] + ' ' +
        saveDate.getFullYear() + ' ' +
        num2(saveDate.getHours()) + ':' +
        num2(saveDate.getMinutes()) + ':' +
        num2(saveDate.getSeconds()) + '.' +
        (+saveDate).toString().slice(-3);
      
      var saveDateLocalStr = saveDate.toString();
      var gmtMatch = (/(GMT\s*[\-\+]\d+(\:\d+)?)/i).exec(saveDateLocalStr);
      if (gmtMatch)
      	dtText += ' ' + gmtMatch[1];
      
      return dtText;
      
      function num2(n) { return n <= 9 ? '0' + n : '' + n; }
      
      })()
      %> -->
      
      <!-- /shell/!onerror.js
      <%=embedFile('/boot/onerror.js')%>
      -->
      
      <!-- /shell/svge-embed.js
      <%=typescriptBuild('svge-embed/embed/*', 'persistence/API.d.ts', 'typings/*')%>
      -->
      
      <%(function() {
      
        // THE ACTUAL BUILD SCRIPT IS IN  [build]  SUBDIRECTORY
      
      	var buildScript = typescriptBuild('svge-embed/build/*', 'persistence/API.d.ts', 'typings/*')();
        console.log({ buildScript: buildScript });
      
        var buildFN = eval('(function() { return buildFN; function buildFN(portabled) {    '+
          buildScript+'\n'+
          '} })() //# sourceURL=/build/svge-build.js ');
      
        buildFN(portabled);
      
      })()%>
      
      <%=shellFile('index.html')%>
      
      <%=shellFile('jquery.js', '1-jquery.js')%>
      <%=shellFile('svgedit.js', '2-svgedit.js')%>
      <%=shellFile('svg-editor.js', '3-svg-editor.js')%>
      
      <%=shellFile('jgraduate/css/jPicker.css')%>
      <%=shellFile('jgraduate/css/jgraduate.css')%>
      <%=shellFile('svg-editor.css')%>
      <%=shellFile('spinbtn/JQuerySpinBtn.css')%>
      <% /*shellFile('custom.css')*/ %>
      <%=shellFile('js-hotkeys/jquery.hotkeys.min.js')%>
      <%=shellFile('jquerybbq/jquery.bbq.min.js')%>
      <%=shellFile('svgicons/jquery.svgicons.js')%>
      <%=shellFile('jgraduate/jquery.jgraduate.min.js')%>
      <%=shellFile('spinbtn/JQuerySpinBtn.min.js')%>
      <%=shellFile('touch.js')%>
      
      <%=shellFile('jquery-svg.js')%>
      
        <%=shellFile('contextmenu/jquery.contextMenu.js')%>
      <%=shellFile('browser.js')%>
      <%=shellFile('svgtransformlist.js')%>
      <%=shellFile('math.js')%>
      <%=shellFile('units.js')%>
      <%=shellFile('svgutils.js')%>
      <%=shellFile('sanitize.js')%>
      <%=shellFile('history.js')%>
      <%=shellFile('coords.js')%>
      <%=shellFile('recalculate.js')%>
      <%=shellFile('select.js')%>
      <%=shellFile('draw.js')%>
      <%=shellFile('path.js')%>
      <%=shellFile('svgcanvas.js')%>
      <%=shellFile('locale/locale.js')%>
      <%=shellFile('contextmenu.js')%>
      
      <%=shellFile('jquery-ui/jquery-ui-1.8.17.custom.min.js')%>
      <%=shellFile('jgraduate/jpicker.js')%>
      <% /* shellFile('config.js') */ %>
  • typescript
    • lib.d.ts
      /*! *****************************************************************************
      Copyright (c) Microsoft Corporation. All rights reserved. 
      Licensed under the Apache License, Version 2.0 (the "License"); you may not use
      this file except in compliance with the License. You may obtain a copy of the
      License at http://www.apache.org/licenses/LICENSE-2.0  
       
      THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
      KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
      WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 
      MERCHANTABLITY OR NON-INFRINGEMENT. 
       
      See the Apache Version 2.0 License for specific language governing permissions
      and limitations under the License.
      ***************************************************************************** */
      
      /// <reference no-default-lib="true"/>
      
      /////////////////////////////
      /// ECMAScript APIs
      /////////////////////////////
      
      declare var NaN: number;
      declare var Infinity: number;
      
      /**
        * Evaluates JavaScript code and executes it. 
        * @param x A String value that contains valid JavaScript code.
        */
      declare function eval(x: string): any;
      
      /**
        * Converts A string to an integer.
        * @param s A string to convert into a number.
        * @param radix A value between 2 and 36 that specifies the base of the number in numString. 
        * If this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.
        * All other strings are considered decimal.
        */
      declare function parseInt(s: string, radix?: number): number;
      
      /**
        * Converts a string to a floating-point number. 
        * @param string A string that contains a floating-point number. 
        */
      declare function parseFloat(string: string): number;
      
      /**
        * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number). 
        * @param number A numeric value.
        */
      declare function isNaN(number: number): boolean;
      
      /** 
        * Determines whether a supplied number is finite.
        * @param number Any numeric value.
        */
      declare function isFinite(number: number): boolean;
      
      /**
        * Gets the unencoded version of an encoded Uniform Resource Identifier (URI).
        * @param encodedURI A value representing an encoded URI.
        */
      declare function decodeURI(encodedURI: string): string;
      
      /**
        * Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).
        * @param encodedURIComponent A value representing an encoded URI component.
        */
      declare function decodeURIComponent(encodedURIComponent: string): string;
      
      /** 
        * Encodes a text string as a valid Uniform Resource Identifier (URI)
        * @param uri A value representing an encoded URI.
        */
      declare function encodeURI(uri: string): string;
      
      /**
        * Encodes a text string as a valid component of a Uniform Resource Identifier (URI).
        * @param uriComponent A value representing an encoded URI component.
        */
      declare function encodeURIComponent(uriComponent: string): string;
      
      interface PropertyDescriptor {
          configurable?: boolean;
          enumerable?: boolean;
          value?: any;
          writable?: boolean;
          get? (): any;
          set? (v: any): void;
      }
      
      interface PropertyDescriptorMap {
          [s: string]: PropertyDescriptor;
      }
      
      interface Object {
          /** The initial value of Object.prototype.constructor is the standard built-in Object constructor. */
          constructor: Function;
      
          /** Returns a string representation of an object. */
          toString(): string;
      
          /** Returns a date converted to a string using the current locale. */
          toLocaleString(): string;
      
          /** Returns the primitive value of the specified object. */
          valueOf(): Object;
      
          /**
            * Determines whether an object has a property with the specified name. 
            * @param v A property name.
            */
          hasOwnProperty(v: string): boolean;
      
          /**
            * Determines whether an object exists in another object's prototype chain. 
            * @param v Another object whose prototype chain is to be checked.
            */
          isPrototypeOf(v: Object): boolean;
      
          /** 
            * Determines whether a specified property is enumerable.
            * @param v A property name.
            */
          propertyIsEnumerable(v: string): boolean;
      }
      
      interface ObjectConstructor {
          new (value?: any): Object;
          (): any;
          (value: any): any;
      
          /** A reference to the prototype for a class of objects. */
          prototype: Object;
      
          /** 
            * Returns the prototype of an object. 
            * @param o The object that references the prototype.
            */
          getPrototypeOf(o: any): any;
      
          /**
            * Gets the own property descriptor of the specified object. 
            * An own property descriptor is one that is defined directly on the object and is not inherited from the object's prototype. 
            * @param o Object that contains the property.
            * @param p Name of the property.
          */
          getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor;
      
          /** 
            * Returns the names of the own properties of an object. The own properties of an object are those that are defined directly 
            * on that object, and are not inherited from the object's prototype. The properties of an object include both fields (objects) and functions.
            * @param o Object that contains the own properties.
            */
          getOwnPropertyNames(o: any): string[];
      
          /** 
            * Creates an object that has the specified prototype, and that optionally contains specified properties.
            * @param o Object to use as a prototype. May be null
            * @param properties JavaScript object that contains one or more property descriptors. 
            */
          create(o: any, properties?: PropertyDescriptorMap): any;
      
          /**
            * Adds a property to an object, or modifies attributes of an existing property. 
            * @param o Object on which to add or modify the property. This can be a native JavaScript object (that is, a user-defined object or a built in object) or a DOM object.
            * @param p The property name.
            * @param attributes Descriptor for the property. It can be for a data property or an accessor property.
            */
          defineProperty(o: any, p: string, attributes: PropertyDescriptor): any;
      
          /**
            * Adds one or more properties to an object, and/or modifies attributes of existing properties. 
            * @param o Object on which to add or modify the properties. This can be a native JavaScript object or a DOM object.
            * @param properties JavaScript object that contains one or more descriptor objects. Each descriptor object describes a data property or an accessor property.
            */
          defineProperties(o: any, properties: PropertyDescriptorMap): any;
      
          /**
            * Prevents the modification of attributes of existing properties, and prevents the addition of new properties.
            * @param o Object on which to lock the attributes. 
            */
          seal<T>(o: T): T;
      
          /**
            * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.
            * @param o Object on which to lock the attributes.
            */
          freeze<T>(o: T): T;
      
          /**
            * Prevents the addition of new properties to an object.
            * @param o Object to make non-extensible. 
            */
          preventExtensions<T>(o: T): T;
      
          /**
            * Returns true if existing property attributes cannot be modified in an object and new properties cannot be added to the object.
            * @param o Object to test. 
            */
          isSealed(o: any): boolean;
      
          /**
            * Returns true if existing property attributes and values cannot be modified in an object, and new properties cannot be added to the object.
            * @param o Object to test.  
            */
          isFrozen(o: any): boolean;
      
          /**
            * Returns a value that indicates whether new properties can be added to an object.
            * @param o Object to test. 
            */
          isExtensible(o: any): boolean;
      
          /**
            * Returns the names of the enumerable properties and methods of an object.
            * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
            */
          keys(o: any): string[];
      }
      
      /**
        * Provides functionality common to all JavaScript objects.
        */
      declare var Object: ObjectConstructor;
      
      /**
        * Creates a new function.
        */
      interface Function {
          /**
            * Calls the function, substituting the specified object for the this value of the function, and the specified array for the arguments of the function.
            * @param thisArg The object to be used as the this object.
            * @param argArray A set of arguments to be passed to the function.
            */
          apply(thisArg: any, argArray?: any): any;
      
          /**
            * Calls a method of an object, substituting another object for the current object.
            * @param thisArg The object to be used as the current object.
            * @param argArray A list of arguments to be passed to the method.
            */
          call(thisArg: any, ...argArray: any[]): any;
      
          /**
            * For a given function, creates a bound function that has the same body as the original function. 
            * The this object of the bound function is associated with the specified object, and has the specified initial parameters.
            * @param thisArg An object to which the this keyword can refer inside the new function.
            * @param argArray A list of arguments to be passed to the new function.
            */
          bind(thisArg: any, ...argArray: any[]): any;
      
          prototype: any;
          length: number;
      
          // Non-standard extensions
          arguments: any;
          caller: Function;
      }
      
      interface FunctionConstructor {
          /**
            * Creates a new function.
            * @param args A list of arguments the function accepts.
            */
          new (...args: string[]): Function;
          (...args: string[]): Function;
          prototype: Function;
      }
      
      declare var Function: FunctionConstructor;
      
      interface IArguments {
          [index: number]: any;
          length: number;
          callee: Function;
      }
      
      interface String {
          /** Returns a string representation of a string. */
          toString(): string;
      
          /**
            * Returns the character at the specified index.
            * @param pos The zero-based index of the desired character.
            */
          charAt(pos: number): string;
      
          /** 
            * Returns the Unicode value of the character at the specified location.
            * @param index The zero-based index of the desired character. If there is no character at the specified index, NaN is returned.
            */
          charCodeAt(index: number): number;
      
          /**
            * Returns a string that contains the concatenation of two or more strings.
            * @param strings The strings to append to the end of the string.  
            */
          concat(...strings: string[]): string;
      
          /**
            * Returns the position of the first occurrence of a substring. 
            * @param searchString The substring to search for in the string
            * @param position The index at which to begin searching the String object. If omitted, search starts at the beginning of the string.
            */
          indexOf(searchString: string, position?: number): number;
      
          /**
            * Returns the last occurrence of a substring in the string.
            * @param searchString The substring to search for.
            * @param position The index at which to begin searching. If omitted, the search begins at the end of the string.
            */
          lastIndexOf(searchString: string, position?: number): number;
      
          /**
            * Determines whether two strings are equivalent in the current locale.
            * @param that String to compare to target string
            */
          localeCompare(that: string): number;
      
          /** 
            * Matches a string with a regular expression, and returns an array containing the results of that search.
            * @param regexp A variable name or string literal containing the regular expression pattern and flags.
            */
          match(regexp: string): RegExpMatchArray;
      
          /** 
            * Matches a string with a regular expression, and returns an array containing the results of that search.
            * @param regexp A regular expression object that contains the regular expression pattern and applicable flags. 
            */
          match(regexp: RegExp): RegExpMatchArray;
      
          /**
            * Replaces text in a string, using a regular expression or search string.
            * @param searchValue A String object or string literal that represents the regular expression
            * @param replaceValue A String object or string literal containing the text to replace for every successful match of rgExp in stringObj.
            */
          replace(searchValue: string, replaceValue: string): string;
      
          /**
            * Replaces text in a string, using a regular expression or search string.
            * @param searchValue A String object or string literal that represents the regular expression
            * @param replaceValue A function that returns the replacement text.
            */
          replace(searchValue: string, replaceValue: (substring: string, ...args: any[]) => string): string;
      
          /**
            * Replaces text in a string, using a regular expression or search string.
            * @param searchValue A Regular Expression object containing the regular expression pattern and applicable flags
            * @param replaceValue A String object or string literal containing the text to replace for every successful match of rgExp in stringObj.
            */
          replace(searchValue: RegExp, replaceValue: string): string;
      
          /**
            * Replaces text in a string, using a regular expression or search string.
            * @param searchValue A Regular Expression object containing the regular expression pattern and applicable flags
            * @param replaceValue A function that returns the replacement text.
            */
          replace(searchValue: RegExp, replaceValue: (substring: string, ...args: any[]) => string): string;
      
          /**
            * Finds the first substring match in a regular expression search.
            * @param regexp The regular expression pattern and applicable flags. 
            */
          search(regexp: string): number;
      
          /**
            * Finds the first substring match in a regular expression search.
            * @param regexp The regular expression pattern and applicable flags. 
            */
          search(regexp: RegExp): number;
      
          /**
            * Returns a section of a string.
            * @param start The index to the beginning of the specified portion of stringObj. 
            * @param end The index to the end of the specified portion of stringObj. The substring includes the characters up to, but not including, the character indicated by end. 
            * If this value is not specified, the substring continues to the end of stringObj.
            */
          slice(start?: number, end?: number): string;
      
          /**
            * Split a string into substrings using the specified separator and return them as an array.
            * @param separator A string that identifies character or characters to use in separating the string. If omitted, a single-element array containing the entire string is returned. 
            * @param limit A value used to limit the number of elements returned in the array.
            */
          split(separator: string, limit?: number): string[];
      
          /**
            * Split a string into substrings using the specified separator and return them as an array.
            * @param separator A Regular Express that identifies character or characters to use in separating the string. If omitted, a single-element array containing the entire string is returned. 
            * @param limit A value used to limit the number of elements returned in the array.
            */
          split(separator: RegExp, limit?: number): string[];
      
          /**
            * Returns the substring at the specified location within a String object. 
            * @param start The zero-based index number indicating the beginning of the substring.
            * @param end Zero-based index number indicating the end of the substring. The substring includes the characters up to, but not including, the character indicated by end.
            * If end is omitted, the characters from start through the end of the original string are returned.
            */
          substring(start: number, end?: number): string;
      
          /** Converts all the alphabetic characters in a string to lowercase. */
          toLowerCase(): string;
      
          /** Converts all alphabetic characters to lowercase, taking into account the host environment's current locale. */
          toLocaleLowerCase(): string;
      
          /** Converts all the alphabetic characters in a string to uppercase. */
          toUpperCase(): string;
      
          /** Returns a string where all alphabetic characters have been converted to uppercase, taking into account the host environment's current locale. */
          toLocaleUpperCase(): string;
      
          /** Removes the leading and trailing white space and line terminator characters from a string. */
          trim(): string;
      
          /** Returns the length of a String object. */
          length: number;
      
          // IE extensions
          /**
            * Gets a substring beginning at the specified location and having the specified length.
            * @param from The starting position of the desired substring. The index of the first character in the string is zero.
            * @param length The number of characters to include in the returned substring.
            */
          substr(from: number, length?: number): string;
      
          /** Returns the primitive value of the specified object. */
          valueOf(): string;
      
          [index: number]: string;
      }
      
      interface StringConstructor {
          new (value?: any): String;
          (value?: any): string;
          prototype: String;
          fromCharCode(...codes: number[]): string;
      }
      
      /** 
        * Allows manipulation and formatting of text strings and determination and location of substrings within strings. 
        */
      declare var String: StringConstructor;
      
      interface Boolean {
          /** Returns the primitive value of the specified object. */
          valueOf(): boolean;
      }
      
      interface BooleanConstructor {
          new (value?: any): Boolean;
          (value?: any): boolean;
          prototype: Boolean;
      }
      
      declare var Boolean: BooleanConstructor;
      
      interface Number {
          /**
            * Returns a string representation of an object.
            * @param radix Specifies a radix for converting numeric values to strings. This value is only used for numbers.
            */
          toString(radix?: number): string;
      
          /** 
            * Returns a string representing a number in fixed-point notation.
            * @param fractionDigits Number of digits after the decimal point. Must be in the range 0 - 20, inclusive.
            */
          toFixed(fractionDigits?: number): string;
      
          /**
            * Returns a string containing a number represented in exponential notation.
            * @param fractionDigits Number of digits after the decimal point. Must be in the range 0 - 20, inclusive.
            */
          toExponential(fractionDigits?: number): string;
      
          /**
            * Returns a string containing a number represented either in exponential or fixed-point notation with a specified number of digits.
            * @param precision Number of significant digits. Must be in the range 1 - 21, inclusive.
            */
          toPrecision(precision?: number): string;
      
          /** Returns the primitive value of the specified object. */
          valueOf(): number;
      }
      
      interface NumberConstructor {
          new (value?: any): Number;
          (value?: any): number;
          prototype: Number;
      
          /** The largest number that can be represented in JavaScript. Equal to approximately 1.79E+308. */
          MAX_VALUE: number;
      
          /** The closest number to zero that can be represented in JavaScript. Equal to approximately 5.00E-324. */
          MIN_VALUE: number;
      
          /** 
            * A value that is not a number.
            * In equality comparisons, NaN does not equal any value, including itself. To test whether a value is equivalent to NaN, use the isNaN function.
            */
          NaN: number;
      
          /** 
            * A value that is less than the largest negative number that can be represented in JavaScript.
            * JavaScript displays NEGATIVE_INFINITY values as -infinity. 
            */
          NEGATIVE_INFINITY: number;
      
          /**
            * A value greater than the largest number that can be represented in JavaScript. 
            * JavaScript displays POSITIVE_INFINITY values as infinity. 
            */
          POSITIVE_INFINITY: number;
      }
      
      /** An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers. */
      declare var Number: NumberConstructor;
      
      interface TemplateStringsArray extends Array<string> {
          raw: string[];
      }
      
      interface Math {
          /** The mathematical constant e. This is Euler's number, the base of natural logarithms. */
          E: number;
          /** The natural logarithm of 10. */
          LN10: number;
          /** The natural logarithm of 2. */
          LN2: number;
          /** The base-2 logarithm of e. */
          LOG2E: number;
          /** The base-10 logarithm of e. */
          LOG10E: number;
          /** Pi. This is the ratio of the circumference of a circle to its diameter. */
          PI: number;
          /** The square root of 0.5, or, equivalently, one divided by the square root of 2. */
          SQRT1_2: number;
          /** The square root of 2. */
          SQRT2: number;
          /**
            * Returns the absolute value of a number (the value without regard to whether it is positive or negative). 
            * For example, the absolute value of -5 is the same as the absolute value of 5.
            * @param x A numeric expression for which the absolute value is needed.
            */
          abs(x: number): number;
          /**
            * Returns the arc cosine (or inverse cosine) of a number. 
            * @param x A numeric expression.
            */
          acos(x: number): number;
          /** 
            * Returns the arcsine of a number. 
            * @param x A numeric expression.
            */
          asin(x: number): number;
          /**
            * Returns the arctangent of a number. 
            * @param x A numeric expression for which the arctangent is needed.
            */
          atan(x: number): number;
          /**
            * Returns the angle (in radians) from the X axis to a point.
            * @param y A numeric expression representing the cartesian y-coordinate.
            * @param x A numeric expression representing the cartesian x-coordinate.
            */
          atan2(y: number, x: number): number;
          /**
            * Returns the smallest number greater than or equal to its numeric argument. 
            * @param x A numeric expression.
            */
          ceil(x: number): number;
          /**
            * Returns the cosine of a number. 
            * @param x A numeric expression that contains an angle measured in radians.
            */
          cos(x: number): number;
          /**
            * Returns e (the base of natural logarithms) raised to a power. 
            * @param x A numeric expression representing the power of e.
            */
          exp(x: number): number;
          /**
            * Returns the greatest number less than or equal to its numeric argument. 
            * @param x A numeric expression.
            */
          floor(x: number): number;
          /**
            * Returns the natural logarithm (base e) of a number. 
            * @param x A numeric expression.
            */
          log(x: number): number;
          /**
            * Returns the larger of a set of supplied numeric expressions. 
            * @param values Numeric expressions to be evaluated.
            */
          max(...values: number[]): number;
          /**
            * Returns the smaller of a set of supplied numeric expressions. 
            * @param values Numeric expressions to be evaluated.
            */
          min(...values: number[]): number;
          /**
            * Returns the value of a base expression taken to a specified power. 
            * @param x The base value of the expression.
            * @param y The exponent value of the expression.
            */
          pow(x: number, y: number): number;
          /** Returns a pseudorandom number between 0 and 1. */
          random(): number;
          /** 
            * Returns a supplied numeric expression rounded to the nearest number.
            * @param x The value to be rounded to the nearest number.
            */
          round(x: number): number;
          /**
            * Returns the sine of a number.
            * @param x A numeric expression that contains an angle measured in radians.
            */
          sin(x: number): number;
          /**
            * Returns the square root of a number.
            * @param x A numeric expression.
            */
          sqrt(x: number): number;
          /**
            * Returns the tangent of a number.
            * @param x A numeric expression that contains an angle measured in radians.
            */
          tan(x: number): number;
      }
      /** An intrinsic object that provides basic mathematics functionality and constants. */
      declare var Math: Math;
      
      /** Enables basic storage and retrieval of dates and times. */
      interface Date {
          /** Returns a string representation of a date. The format of the string depends on the locale. */
          toString(): string;
          /** Returns a date as a string value. */
          toDateString(): string;
          /** Returns a time as a string value. */
          toTimeString(): string;
          /** Returns a value as a string value appropriate to the host environment's current locale. */
          toLocaleString(): string;
          /** Returns a date as a string value appropriate to the host environment's current locale. */
          toLocaleDateString(): string;
          /** Returns a time as a string value appropriate to the host environment's current locale. */
          toLocaleTimeString(): string;
          /** Returns the stored time value in milliseconds since midnight, January 1, 1970 UTC. */
          valueOf(): number;
          /** Gets the time value in milliseconds. */
          getTime(): number;
          /** Gets the year, using local time. */
          getFullYear(): number;
          /** Gets the year using Universal Coordinated Time (UTC). */
          getUTCFullYear(): number;
          /** Gets the month, using local time. */
          getMonth(): number;
          /** Gets the month of a Date object using Universal Coordinated Time (UTC). */
          getUTCMonth(): number;
          /** Gets the day-of-the-month, using local time. */
          getDate(): number;
          /** Gets the day-of-the-month, using Universal Coordinated Time (UTC). */
          getUTCDate(): number;
          /** Gets the day of the week, using local time. */
          getDay(): number;
          /** Gets the day of the week using Universal Coordinated Time (UTC). */
          getUTCDay(): number;
          /** Gets the hours in a date, using local time. */
          getHours(): number;
          /** Gets the hours value in a Date object using Universal Coordinated Time (UTC). */
          getUTCHours(): number;
          /** Gets the minutes of a Date object, using local time. */
          getMinutes(): number;
          /** Gets the minutes of a Date object using Universal Coordinated Time (UTC). */
          getUTCMinutes(): number;
          /** Gets the seconds of a Date object, using local time. */
          getSeconds(): number;
          /** Gets the seconds of a Date object using Universal Coordinated Time (UTC). */
          getUTCSeconds(): number;
          /** Gets the milliseconds of a Date, using local time. */
          getMilliseconds(): number;
          /** Gets the milliseconds of a Date object using Universal Coordinated Time (UTC). */
          getUTCMilliseconds(): number;
          /** Gets the difference in minutes between the time on the local computer and Universal Coordinated Time (UTC). */
          getTimezoneOffset(): number;
          /** 
            * Sets the date and time value in the Date object.
            * @param time A numeric value representing the number of elapsed milliseconds since midnight, January 1, 1970 GMT. 
            */
          setTime(time: number): number;
          /**
            * Sets the milliseconds value in the Date object using local time. 
            * @param ms A numeric value equal to the millisecond value.
            */
          setMilliseconds(ms: number): number;
          /** 
            * Sets the milliseconds value in the Date object using Universal Coordinated Time (UTC).
            * @param ms A numeric value equal to the millisecond value. 
            */
          setUTCMilliseconds(ms: number): number;
      
          /**
            * Sets the seconds value in the Date object using local time. 
            * @param sec A numeric value equal to the seconds value.
            * @param ms A numeric value equal to the milliseconds value.
            */
          setSeconds(sec: number, ms?: number): number;
          /**
            * Sets the seconds value in the Date object using Universal Coordinated Time (UTC).
            * @param sec A numeric value equal to the seconds value.
            * @param ms A numeric value equal to the milliseconds value.
            */
          setUTCSeconds(sec: number, ms?: number): number;
          /**
            * Sets the minutes value in the Date object using local time. 
            * @param min A numeric value equal to the minutes value. 
            * @param sec A numeric value equal to the seconds value. 
            * @param ms A numeric value equal to the milliseconds value.
            */
          setMinutes(min: number, sec?: number, ms?: number): number;
          /**
            * Sets the minutes value in the Date object using Universal Coordinated Time (UTC).
            * @param min A numeric value equal to the minutes value. 
            * @param sec A numeric value equal to the seconds value. 
            * @param ms A numeric value equal to the milliseconds value.
            */
          setUTCMinutes(min: number, sec?: number, ms?: number): number;
          /**
            * Sets the hour value in the Date object using local time.
            * @param hours A numeric value equal to the hours value.
            * @param min A numeric value equal to the minutes value.
            * @param sec A numeric value equal to the seconds value. 
            * @param ms A numeric value equal to the milliseconds value.
            */
          setHours(hours: number, min?: number, sec?: number, ms?: number): number;
          /**
            * Sets the hours value in the Date object using Universal Coordinated Time (UTC).
            * @param hours A numeric value equal to the hours value.
            * @param min A numeric value equal to the minutes value.
            * @param sec A numeric value equal to the seconds value. 
            * @param ms A numeric value equal to the milliseconds value.
            */
          setUTCHours(hours: number, min?: number, sec?: number, ms?: number): number;
          /**
            * Sets the numeric day-of-the-month value of the Date object using local time. 
            * @param date A numeric value equal to the day of the month.
            */
          setDate(date: number): number;
          /** 
            * Sets the numeric day of the month in the Date object using Universal Coordinated Time (UTC).
            * @param date A numeric value equal to the day of the month. 
            */
          setUTCDate(date: number): number;
          /** 
            * Sets the month value in the Date object using local time. 
            * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively. 
            * @param date A numeric value representing the day of the month. If this value is not supplied, the value from a call to the getDate method is used.
            */
          setMonth(month: number, date?: number): number;
          /**
            * Sets the month value in the Date object using Universal Coordinated Time (UTC).
            * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively.
            * @param date A numeric value representing the day of the month. If it is not supplied, the value from a call to the getUTCDate method is used.
            */
          setUTCMonth(month: number, date?: number): number;
          /**
            * Sets the year of the Date object using local time.
            * @param year A numeric value for the year.
            * @param month A zero-based numeric value for the month (0 for January, 11 for December). Must be specified if numDate is specified.
            * @param date A numeric value equal for the day of the month.
            */
          setFullYear(year: number, month?: number, date?: number): number;
          /**
            * Sets the year value in the Date object using Universal Coordinated Time (UTC).
            * @param year A numeric value equal to the year.
            * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively. Must be supplied if numDate is supplied.
            * @param date A numeric value equal to the day of the month.
            */
          setUTCFullYear(year: number, month?: number, date?: number): number;
          /** Returns a date converted to a string using Universal Coordinated Time (UTC). */
          toUTCString(): string;
          /** Returns a date as a string value in ISO format. */
          toISOString(): string;
          /** Used by the JSON.stringify method to enable the transformation of an object's data for JavaScript Object Notation (JSON) serialization. */
          toJSON(key?: any): string;
      }
      
      interface DateConstructor {
          new (): Date;
          new (value: number): Date;
          new (value: string): Date;
          new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date;
          (): string;
          prototype: Date;
          /**
            * Parses a string containing a date, and returns the number of milliseconds between that date and midnight, January 1, 1970.
            * @param s A date string
            */
          parse(s: string): number;
          /**
            * Returns the number of milliseconds between midnight, January 1, 1970 Universal Coordinated Time (UTC) (or GMT) and the specified date. 
            * @param year The full year designation is required for cross-century date accuracy. If year is between 0 and 99 is used, then year is assumed to be 1900 + year.
            * @param month The month as an number between 0 and 11 (January to December).
            * @param date The date as an number between 1 and 31.
            * @param hours Must be supplied if minutes is supplied. An number from 0 to 23 (midnight to 11pm) that specifies the hour.
            * @param minutes Must be supplied if seconds is supplied. An number from 0 to 59 that specifies the minutes.
            * @param seconds Must be supplied if milliseconds is supplied. An number from 0 to 59 that specifies the seconds.
            * @param ms An number from 0 to 999 that specifies the milliseconds.
            */
          UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number;
          now(): number;
      }
      
      declare var Date: DateConstructor;
      
      interface RegExpMatchArray extends Array<string> {
          index?: number;
          input?: string;
      }
      
      interface RegExpExecArray extends Array<string> {
          index: number;
          input: string;
      }
      
      interface RegExp {
          /** 
            * Executes a search on a string using a regular expression pattern, and returns an array containing the results of that search.
            * @param string The String object or string literal on which to perform the search.
            */
          exec(string: string): RegExpExecArray;
      
          /** 
            * Returns a Boolean value that indicates whether or not a pattern exists in a searched string.
            * @param string String on which to perform the search.
            */
          test(string: string): boolean;
      
          /** Returns a copy of the text of the regular expression pattern. Read-only. The regExp argument is a Regular expression object. It can be a variable name or a literal. */
          source: string;
      
          /** Returns a Boolean value indicating the state of the global flag (g) used with a regular expression. Default is false. Read-only. */
          global: boolean;
      
          /** Returns a Boolean value indicating the state of the ignoreCase flag (i) used with a regular expression. Default is false. Read-only. */
          ignoreCase: boolean;
      
          /** Returns a Boolean value indicating the state of the multiline flag (m) used with a regular expression. Default is false. Read-only. */
          multiline: boolean;
      
          lastIndex: number;
      
          // Non-standard extensions
          compile(): RegExp;
      }
      
      interface RegExpConstructor {
          new (pattern: string, flags?: string): RegExp;
          (pattern: string, flags?: string): RegExp;
          prototype: RegExp;
      
          // Non-standard extensions
          $1: string;
          $2: string;
          $3: string;
          $4: string;
          $5: string;
          $6: string;
          $7: string;
          $8: string;
          $9: string;
          lastMatch: string;
      }
      
      declare var RegExp: RegExpConstructor;
      
      interface Error {
          name: string;
          message: string;
      }
      
      interface ErrorConstructor {
          new (message?: string): Error;
          (message?: string): Error;
          prototype: Error;
      }
      
      declare var Error: ErrorConstructor;
      
      interface EvalError extends Error {
      }
      
      interface EvalErrorConstructor {
          new (message?: string): EvalError;
          (message?: string): EvalError;
          prototype: EvalError;
      }
      
      declare var EvalError: EvalErrorConstructor;
      
      interface RangeError extends Error {
      }
      
      interface RangeErrorConstructor {
          new (message?: string): RangeError;
          (message?: string): RangeError;
          prototype: RangeError;
      }
      
      declare var RangeError: RangeErrorConstructor;
      
      interface ReferenceError extends Error {
      }
      
      interface ReferenceErrorConstructor {
          new (message?: string): ReferenceError;
          (message?: string): ReferenceError;
          prototype: ReferenceError;
      }
      
      declare var ReferenceError: ReferenceErrorConstructor;
      
      interface SyntaxError extends Error {
      }
      
      interface SyntaxErrorConstructor {
          new (message?: string): SyntaxError;
          (message?: string): SyntaxError;
          prototype: SyntaxError;
      }
      
      declare var SyntaxError: SyntaxErrorConstructor;
      
      interface TypeError extends Error {
      }
      
      interface TypeErrorConstructor {
          new (message?: string): TypeError;
          (message?: string): TypeError;
          prototype: TypeError;
      }
      
      declare var TypeError: TypeErrorConstructor;
      
      interface URIError extends Error {
      }
      
      interface URIErrorConstructor {
          new (message?: string): URIError;
          (message?: string): URIError;
          prototype: URIError;
      }
      
      declare var URIError: URIErrorConstructor;
      
      interface JSON {
          /**
            * Converts a JavaScript Object Notation (JSON) string into an object.
            * @param text A valid JSON string.
            * @param reviver A function that transforms the results. This function is called for each member of the object. 
            * If a member contains nested objects, the nested objects are transformed before the parent object is. 
            */
          parse(text: string, reviver?: (key: any, value: any) => any): any;
          /**
            * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.
            * @param value A JavaScript value, usually an object or array, to be converted.
            */
          stringify(value: any): string;
          /**
            * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.
            * @param value A JavaScript value, usually an object or array, to be converted.
            * @param replacer A function that transforms the results.
            */
          stringify(value: any, replacer: (key: string, value: any) => any): string;
          /**
            * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.
            * @param value A JavaScript value, usually an object or array, to be converted.
            * @param replacer Array that transforms the results.
            */
          stringify(value: any, replacer: any[]): string;
          /**
            * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.
            * @param value A JavaScript value, usually an object or array, to be converted.
            * @param replacer A function that transforms the results.
            * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.
            */
          stringify(value: any, replacer: (key: string, value: any) => any, space: any): string;
          /**
            * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.
            * @param value A JavaScript value, usually an object or array, to be converted.
            * @param replacer Array that transforms the results.
            * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.
            */
          stringify(value: any, replacer: any[], space: any): string;
      }
      /**
        * An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.
        */
      declare var JSON: JSON;
      
      
      /////////////////////////////
      /// ECMAScript Array API (specially handled by compiler)
      /////////////////////////////
      
      interface Array<T> {
          /**
            * Gets or sets the length of the array. This is a number one higher than the highest element defined in an array.
            */
          length: number;
          /**
            * Returns a string representation of an array.
            */
          toString(): string;
          toLocaleString(): string;
          /**
            * Appends new elements to an array, and returns the new length of the array.
            * @param items New elements of the Array.
            */
          push(...items: T[]): number;
          /**
            * Removes the last element from an array and returns it.
            */
          pop(): T;
          /**
            * Combines two or more arrays.
            * @param items Additional items to add to the end of array1.
            */
          concat<U extends T[]>(...items: U[]): T[];
          /**
            * Combines two or more arrays.
            * @param items Additional items to add to the end of array1.
            */
          concat(...items: T[]): T[];
          /**
            * Adds all the elements of an array separated by the specified separator string.
            * @param separator A string used to separate one element of an array from the next in the resulting String. If omitted, the array elements are separated with a comma.
            */
          join(separator?: string): string;
          /**
            * Reverses the elements in an Array. 
            */
          reverse(): T[];
          /**
            * Removes the first element from an array and returns it.
            */
          shift(): T;
          /** 
            * Returns a section of an array.
            * @param start The beginning of the specified portion of the array.
            * @param end The end of the specified portion of the array.
            */
          slice(start?: number, end?: number): T[];
      
          /**
            * Sorts an array.
            * @param compareFn The name of the function used to determine the order of the elements. If omitted, the elements are sorted in ascending, ASCII character order.
            */
          sort(compareFn?: (a: T, b: T) => number): T[];
      
          /**
            * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.
            * @param start The zero-based location in the array from which to start removing elements.
            */
          splice(start: number): T[];
      
          /**
            * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.
            * @param start The zero-based location in the array from which to start removing elements.
            * @param deleteCount The number of elements to remove.
            * @param items Elements to insert into the array in place of the deleted elements.
            */
          splice(start: number, deleteCount: number, ...items: T[]): T[];
      
          /**
            * Inserts new elements at the start of an array.
            * @param items  Elements to insert at the start of the Array.
            */
          unshift(...items: T[]): number;
      
          /**
            * Returns the index of the first occurrence of a value in an array.
            * @param searchElement The value to locate in the array.
            * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.
            */
          indexOf(searchElement: T, fromIndex?: number): number;
      
          /**
            * Returns the index of the last occurrence of a specified value in an array.
            * @param searchElement The value to locate in the array.
            * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at the last index in the array.
            */
          lastIndexOf(searchElement: T, fromIndex?: number): number;
      
          /**
            * Determines whether all the members of an array satisfy the specified test.
            * @param callbackfn A function that accepts up to three arguments. The every method calls the callbackfn function for each element in array1 until the callbackfn returns false, or until the end of the array.
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
            */
          every(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean;
      
          /**
            * Determines whether the specified callback function returns true for any element of an array.
            * @param callbackfn A function that accepts up to three arguments. The some method calls the callbackfn function for each element in array1 until the callbackfn returns true, or until the end of the array.
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
            */
          some(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean;
      
          /**
            * Performs the specified action for each element in an array.
            * @param callbackfn  A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array. 
            * @param thisArg  An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
            */
          forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;
      
          /**
            * Calls a defined callback function on each element of an array, and returns an array that contains the results.
            * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array. 
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
            */
          map<U>(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[];
      
          /**
            * Returns the elements of an array that meet the condition specified in a callback function. 
            * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array. 
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
            */
          filter(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): T[];
      
          /**
            * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.
            * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
            */
          reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T;
          /**
            * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.
            * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
            */
          reduce<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;
      
          /** 
            * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array. 
            * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
            */
          reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T;
          /** 
            * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array. 
            * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
            */
          reduceRight<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;
      
          [n: number]: T;
      }
      
      interface ArrayConstructor {
          new (arrayLength?: number): any[];
          new <T>(arrayLength: number): T[];
          new <T>(...items: T[]): T[];
          (arrayLength?: number): any[];
          <T>(arrayLength: number): T[];
          <T>(...items: T[]): T[];
          isArray(arg: any): boolean;
          prototype: Array<any>;
      }
      
      declare var Array: ArrayConstructor;
      
      interface TypedPropertyDescriptor<T> {
          enumerable?: boolean;
          configurable?: boolean;
          writable?: boolean;
          value?: T;
          get?: () => T;
          set?: (value: T) => void;
      }
      
      declare type ClassDecorator = <TFunction extends Function>(target: TFunction) => TFunction | void;
      declare type PropertyDecorator = (target: Object, propertyKey: string | symbol) => void;
      declare type MethodDecorator = <T>(target: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T> | void;
      declare type ParameterDecorator = (target: Object, propertyKey: string | symbol, parameterIndex: number) => void;
      
      /////////////////////////////
      /// IE10 ECMAScript Extensions
      /////////////////////////////
      
      /**
        * Represents a raw buffer of binary data, which is used to store data for the 
        * different typed arrays. ArrayBuffers cannot be read from or written to directly, 
        * but can be passed to a typed array or DataView Object to interpret the raw 
        * buffer as needed. 
        */
      interface ArrayBuffer {
          /**
            * Read-only. The length of the ArrayBuffer (in bytes).
            */
          byteLength: number;
      
          /**
            * Returns a section of an ArrayBuffer.
            */
          slice(begin:number, end?:number): ArrayBuffer;
      }
      
      interface ArrayBufferConstructor {
          prototype: ArrayBuffer;
          new (byteLength: number): ArrayBuffer;
          isView(arg: any): boolean;
      }
      declare var ArrayBuffer: ArrayBufferConstructor;
      
      interface ArrayBufferView {
          /**
            * The ArrayBuffer instance referenced by the array. 
            */
          buffer: ArrayBuffer;
      
          /**
            * The length in bytes of the array.
            */
          byteLength: number;
      
          /**
            * The offset in bytes of the array.
            */
          byteOffset: number;
      }
      
      interface DataView {
          buffer: ArrayBuffer;
          byteLength: number;
          byteOffset: number;
          /**
            * Gets the Float32 value at the specified byte offset from the start of the view. There is 
            * no alignment constraint; multi-byte values may be fetched from any offset. 
            * @param byteOffset The place in the buffer at which the value should be retrieved.
            */
          getFloat32(byteOffset: number, littleEndian: boolean): number;
      
          /**
            * Gets the Float64 value at the specified byte offset from the start of the view. There is
            * no alignment constraint; multi-byte values may be fetched from any offset. 
            * @param byteOffset The place in the buffer at which the value should be retrieved.
            */
          getFloat64(byteOffset: number, littleEndian: boolean): number;
      
          /**
            * Gets the Int8 value at the specified byte offset from the start of the view. There is 
            * no alignment constraint; multi-byte values may be fetched from any offset. 
            * @param byteOffset The place in the buffer at which the value should be retrieved.
            */
          getInt8(byteOffset: number): number;
      
          /**
            * Gets the Int16 value at the specified byte offset from the start of the view. There is 
            * no alignment constraint; multi-byte values may be fetched from any offset. 
            * @param byteOffset The place in the buffer at which the value should be retrieved.
            */
          getInt16(byteOffset: number, littleEndian: boolean): number;
          /**
            * Gets the Int32 value at the specified byte offset from the start of the view. There is 
            * no alignment constraint; multi-byte values may be fetched from any offset. 
            * @param byteOffset The place in the buffer at which the value should be retrieved.
            */
          getInt32(byteOffset: number, littleEndian: boolean): number;
      
          /**
            * Gets the Uint8 value at the specified byte offset from the start of the view. There is 
            * no alignment constraint; multi-byte values may be fetched from any offset. 
            * @param byteOffset The place in the buffer at which the value should be retrieved.
            */
          getUint8(byteOffset: number): number;
      
          /**
            * Gets the Uint16 value at the specified byte offset from the start of the view. There is 
            * no alignment constraint; multi-byte values may be fetched from any offset. 
            * @param byteOffset The place in the buffer at which the value should be retrieved.
            */
          getUint16(byteOffset: number, littleEndian: boolean): number;
      
          /**
            * Gets the Uint32 value at the specified byte offset from the start of the view. There is 
            * no alignment constraint; multi-byte values may be fetched from any offset. 
            * @param byteOffset The place in the buffer at which the value should be retrieved.
            */
          getUint32(byteOffset: number, littleEndian: boolean): number;
      
          /**
            * Stores an Float32 value at the specified byte offset from the start of the view. 
            * @param byteOffset The place in the buffer at which the value should be set.
            * @param value The value to set.
            * @param littleEndian If false or undefined, a big-endian value should be written, 
            * otherwise a little-endian value should be written.
            */
          setFloat32(byteOffset: number, value: number, littleEndian: boolean): void;
      
          /**
            * Stores an Float64 value at the specified byte offset from the start of the view. 
            * @param byteOffset The place in the buffer at which the value should be set.
            * @param value The value to set.
            * @param littleEndian If false or undefined, a big-endian value should be written, 
            * otherwise a little-endian value should be written.
            */
          setFloat64(byteOffset: number, value: number, littleEndian: boolean): void;
      
          /**
            * Stores an Int8 value at the specified byte offset from the start of the view. 
            * @param byteOffset The place in the buffer at which the value should be set.
            * @param value The value to set.
            */
          setInt8(byteOffset: number, value: number): void;
      
          /**
            * Stores an Int16 value at the specified byte offset from the start of the view. 
            * @param byteOffset The place in the buffer at which the value should be set.
            * @param value The value to set.
            * @param littleEndian If false or undefined, a big-endian value should be written, 
            * otherwise a little-endian value should be written.
            */
          setInt16(byteOffset: number, value: number, littleEndian: boolean): void;
      
          /**
            * Stores an Int32 value at the specified byte offset from the start of the view. 
            * @param byteOffset The place in the buffer at which the value should be set.
            * @param value The value to set.
            * @param littleEndian If false or undefined, a big-endian value should be written, 
            * otherwise a little-endian value should be written.
            */
          setInt32(byteOffset: number, value: number, littleEndian: boolean): void;
      
          /**
            * Stores an Uint8 value at the specified byte offset from the start of the view. 
            * @param byteOffset The place in the buffer at which the value should be set.
            * @param value The value to set.
            */
          setUint8(byteOffset: number, value: number): void;
      
          /**
            * Stores an Uint16 value at the specified byte offset from the start of the view. 
            * @param byteOffset The place in the buffer at which the value should be set.
            * @param value The value to set.
            * @param littleEndian If false or undefined, a big-endian value should be written, 
            * otherwise a little-endian value should be written.
            */
          setUint16(byteOffset: number, value: number, littleEndian: boolean): void;
      
          /**
            * Stores an Uint32 value at the specified byte offset from the start of the view. 
            * @param byteOffset The place in the buffer at which the value should be set.
            * @param value The value to set.
            * @param littleEndian If false or undefined, a big-endian value should be written, 
            * otherwise a little-endian value should be written.
            */
          setUint32(byteOffset: number, value: number, littleEndian: boolean): void;
      }
      
      interface DataViewConstructor {
          new (buffer: ArrayBuffer, byteOffset?: number, byteLength?: number): DataView;
      }
      declare var DataView: DataViewConstructor;
      
      /**
        * A typed array of 8-bit integer values. The contents are initialized to 0. If the requested 
        * number of bytes could not be allocated an exception is raised.
        */
      interface Int8Array {
          /**
            * The size in bytes of each element in the array. 
            */
          BYTES_PER_ELEMENT: number;
      
          /**
            * The ArrayBuffer instance referenced by the array. 
            */
          buffer: ArrayBuffer;
      
          /**
            * The length in bytes of the array.
            */
          byteLength: number;
      
          /**
            * The offset in bytes of the array.
            */
          byteOffset: number;
      
          /** 
            * Returns the this object after copying a section of the array identified by start and end
            * to the same array starting at position target
            * @param target If target is negative, it is treated as length+target where length is the 
            * length of the array. 
            * @param start If start is negative, it is treated as length+start. If end is negative, it 
            * is treated as length+end.
            * @param end If not specified, length of the this object is used as its default value. 
            */
          copyWithin(target: number, start: number, end?: number): Int8Array;
      
          /**
            * Determines whether all the members of an array satisfy the specified test.
            * @param callbackfn A function that accepts up to three arguments. The every method calls 
            * the callbackfn function for each element in array1 until the callbackfn returns false, 
            * or until the end of the array.
            * @param thisArg An object to which the this keyword can refer in the callbackfn function.
            * If thisArg is omitted, undefined is used as the this value.
            */
          every(callbackfn: (value: number, index: number, array: Int8Array) => boolean, thisArg?: any): boolean;
      
          /**
              * Returns the this object after filling the section identified by start and end with value
              * @param value value to fill array section with
              * @param start index to start filling the array at. If start is negative, it is treated as 
              * length+start where length is the length of the array. 
              * @param end index to stop filling the array at. If end is negative, it is treated as 
              * length+end.
              */
          fill(value: number, start?: number, end?: number): Int8Array;
      
          /**
            * Returns the elements of an array that meet the condition specified in a callback function. 
            * @param callbackfn A function that accepts up to three arguments. The filter method calls 
            * the callbackfn function one time for each element in the array. 
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          filter(callbackfn: (value: number, index: number, array: Int8Array) => boolean, thisArg?: any): Int8Array;
      
          /** 
            * Returns the value of the first element in the array where predicate is true, and undefined 
            * otherwise.
            * @param predicate find calls predicate once for each element of the array, in ascending 
            * order, until it finds one where predicate returns true. If such an element is found, find 
            * immediately returns that element value. Otherwise, find returns undefined.
            * @param thisArg If provided, it will be used as the this value for each invocation of 
            * predicate. If it is not provided, undefined is used instead.
            */
          find(predicate: (value: number, index: number, obj: Array<number>) => boolean, thisArg?: any): number;
      
          /** 
            * Returns the index of the first element in the array where predicate is true, and undefined 
            * otherwise.
            * @param predicate find calls predicate once for each element of the array, in ascending 
            * order, until it finds one where predicate returns true. If such an element is found, find 
            * immediately returns that element value. Otherwise, find returns undefined.
            * @param thisArg If provided, it will be used as the this value for each invocation of 
            * predicate. If it is not provided, undefined is used instead.
            */
          findIndex(predicate: (value: number) => boolean, thisArg?: any): number;
      
          /**
            * Performs the specified action for each element in an array.
            * @param callbackfn  A function that accepts up to three arguments. forEach calls the 
            * callbackfn function one time for each element in the array. 
            * @param thisArg  An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          forEach(callbackfn: (value: number, index: number, array: Int8Array) => void, thisArg?: any): void;
      
          /**
            * Returns the index of the first occurrence of a value in an array.
            * @param searchElement The value to locate in the array.
            * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
            *  search starts at index 0.
            */
          indexOf(searchElement: number, fromIndex?: number): number;
      
          /**
            * Adds all the elements of an array separated by the specified separator string.
            * @param separator A string used to separate one element of an array from the next in the 
            * resulting String. If omitted, the array elements are separated with a comma.
            */
          join(separator?: string): string;
      
          /**
            * Returns the index of the last occurrence of a value in an array.
            * @param searchElement The value to locate in the array.
            * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the 
            * search starts at index 0.
            */
          lastIndexOf(searchElement: number, fromIndex?: number): number;
      
          /**
            * The length of the array.
            */
          length: number;
      
          /**
            * Calls a defined callback function on each element of an array, and returns an array that 
            * contains the results.
            * @param callbackfn A function that accepts up to three arguments. The map method calls the 
            * callbackfn function one time for each element in the array. 
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          map(callbackfn: (value: number, index: number, array: Int8Array) => number, thisArg?: any): Int8Array;
      
          /**
            * Calls the specified callback function for all the elements in an array. The return value of 
            * the callback function is the accumulated result, and is provided as an argument in the next 
            * call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduce method calls the 
            * callbackfn function one time for each element in the array.
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an argument
            * instead of an array value.
            */
          reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue?: number): number;
      
          /**
            * Calls the specified callback function for all the elements in an array. The return value of 
            * the callback function is the accumulated result, and is provided as an argument in the next 
            * call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduce method calls the 
            * callbackfn function one time for each element in the array.
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an argument 
            * instead of an array value.
            */
          reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U;
      
          /** 
            * Calls the specified callback function for all the elements in an array, in descending order. 
            * The return value of the callback function is the accumulated result, and is provided as an 
            * argument in the next call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls 
            * the callbackfn function one time for each element in the array. 
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an 
            * argument instead of an array value.
            */
          reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue?: number): number;
      
          /** 
            * Calls the specified callback function for all the elements in an array, in descending order. 
            * The return value of the callback function is the accumulated result, and is provided as an 
            * argument in the next call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
            * the callbackfn function one time for each element in the array. 
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an argument
            * instead of an array value.
            */
          reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U;
      
          /**
            * Reverses the elements in an Array. 
            */
          reverse(): Int8Array;
      
          /**
            * Sets a value or an array of values.
            * @param index The index of the location to set.
            * @param value The value to set.
            */
          set(index: number, value: number): void;
      
          /**
            * Sets a value or an array of values.
            * @param array A typed or untyped array of values to set.
            * @param offset The index in the current array at which the values are to be written.
            */
          set(array: Int8Array, offset?: number): void;
      
          /** 
            * Returns a section of an array.
            * @param start The beginning of the specified portion of the array.
            * @param end The end of the specified portion of the array.
            */
          slice(start?: number, end?: number): Int8Array;
      
          /**
            * Determines whether the specified callback function returns true for any element of an array.
            * @param callbackfn A function that accepts up to three arguments. The some method calls the 
            * callbackfn function for each element in array1 until the callbackfn returns true, or until 
            * the end of the array.
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          some(callbackfn: (value: number, index: number, array: Int8Array) => boolean, thisArg?: any): boolean;
      
          /**
            * Sorts an array.
            * @param compareFn The name of the function used to determine the order of the elements. If 
            * omitted, the elements are sorted in ascending, ASCII character order.
            */
          sort(compareFn?: (a: number, b: number) => number): Int8Array;
      
          /**
            * Gets a new Int8Array view of the ArrayBuffer store for this array, referencing the elements
            * at begin, inclusive, up to end, exclusive. 
            * @param begin The index of the beginning of the array.
            * @param end The index of the end of the array.
            */
          subarray(begin: number, end?: number): Int8Array;
      
          /**
            * Converts a number to a string by using the current locale. 
            */
          toLocaleString(): string;
      
          /**
            * Returns a string representation of an array.
            */
          toString(): string;
      
          [index: number]: number;
      }
      interface Int8ArrayConstructor {
          prototype: Int8Array;
          new (length: number): Int8Array;
          new (array: Int8Array): Int8Array;
          new (array: number[]): Int8Array;
          new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int8Array;
      
          /**
            * The size in bytes of each element in the array. 
            */
          BYTES_PER_ELEMENT: number;
      
          /**
            * Returns a new array from a set of elements.
            * @param items A set of elements to include in the new array object.
            */
          of(...items: number[]): Int8Array;
      }
      declare var Int8Array: Int8ArrayConstructor;
      
      /**
        * A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the 
        * requested number of bytes could not be allocated an exception is raised.
        */
      interface Uint8Array {
          /**
            * The size in bytes of each element in the array. 
            */
          BYTES_PER_ELEMENT: number;
      
          /**
            * The ArrayBuffer instance referenced by the array. 
            */
          buffer: ArrayBuffer;
      
          /**
            * The length in bytes of the array.
            */
          byteLength: number;
      
          /**
            * The offset in bytes of the array.
            */
          byteOffset: number;
      
          /** 
            * Returns the this object after copying a section of the array identified by start and end
            * to the same array starting at position target
            * @param target If target is negative, it is treated as length+target where length is the 
            * length of the array. 
            * @param start If start is negative, it is treated as length+start. If end is negative, it 
            * is treated as length+end.
            * @param end If not specified, length of the this object is used as its default value. 
            */
          copyWithin(target: number, start: number, end?: number): Uint8Array;
      
          /**
            * Determines whether all the members of an array satisfy the specified test.
            * @param callbackfn A function that accepts up to three arguments. The every method calls 
            * the callbackfn function for each element in array1 until the callbackfn returns false, 
            * or until the end of the array.
            * @param thisArg An object to which the this keyword can refer in the callbackfn function.
            * If thisArg is omitted, undefined is used as the this value.
            */
          every(callbackfn: (value: number, index: number, array: Uint8Array) => boolean, thisArg?: any): boolean;
      
          /**
              * Returns the this object after filling the section identified by start and end with value
              * @param value value to fill array section with
              * @param start index to start filling the array at. If start is negative, it is treated as 
              * length+start where length is the length of the array. 
              * @param end index to stop filling the array at. If end is negative, it is treated as 
              * length+end.
              */
          fill(value: number, start?: number, end?: number): Uint8Array;
      
          /**
            * Returns the elements of an array that meet the condition specified in a callback function. 
            * @param callbackfn A function that accepts up to three arguments. The filter method calls 
            * the callbackfn function one time for each element in the array. 
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          filter(callbackfn: (value: number, index: number, array: Uint8Array) => boolean, thisArg?: any): Uint8Array;
      
          /** 
            * Returns the value of the first element in the array where predicate is true, and undefined 
            * otherwise.
            * @param predicate find calls predicate once for each element of the array, in ascending 
            * order, until it finds one where predicate returns true. If such an element is found, find 
            * immediately returns that element value. Otherwise, find returns undefined.
            * @param thisArg If provided, it will be used as the this value for each invocation of 
            * predicate. If it is not provided, undefined is used instead.
            */
          find(predicate: (value: number, index: number, obj: Array<number>) => boolean, thisArg?: any): number;
      
          /** 
            * Returns the index of the first element in the array where predicate is true, and undefined 
            * otherwise.
            * @param predicate find calls predicate once for each element of the array, in ascending 
            * order, until it finds one where predicate returns true. If such an element is found, find 
            * immediately returns that element value. Otherwise, find returns undefined.
            * @param thisArg If provided, it will be used as the this value for each invocation of 
            * predicate. If it is not provided, undefined is used instead.
            */
          findIndex(predicate: (value: number) => boolean, thisArg?: any): number;
      
          /**
            * Performs the specified action for each element in an array.
            * @param callbackfn  A function that accepts up to three arguments. forEach calls the 
            * callbackfn function one time for each element in the array. 
            * @param thisArg  An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          forEach(callbackfn: (value: number, index: number, array: Uint8Array) => void, thisArg?: any): void;
      
          /**
            * Returns the index of the first occurrence of a value in an array.
            * @param searchElement The value to locate in the array.
            * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
            *  search starts at index 0.
            */
          indexOf(searchElement: number, fromIndex?: number): number;
      
          /**
            * Adds all the elements of an array separated by the specified separator string.
            * @param separator A string used to separate one element of an array from the next in the 
            * resulting String. If omitted, the array elements are separated with a comma.
            */
          join(separator?: string): string;
      
          /**
            * Returns the index of the last occurrence of a value in an array.
            * @param searchElement The value to locate in the array.
            * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the 
            * search starts at index 0.
            */
          lastIndexOf(searchElement: number, fromIndex?: number): number;
      
          /**
            * The length of the array.
            */
          length: number;
      
          /**
            * Calls a defined callback function on each element of an array, and returns an array that 
            * contains the results.
            * @param callbackfn A function that accepts up to three arguments. The map method calls the 
            * callbackfn function one time for each element in the array. 
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          map(callbackfn: (value: number, index: number, array: Uint8Array) => number, thisArg?: any): Uint8Array;
      
          /**
            * Calls the specified callback function for all the elements in an array. The return value of 
            * the callback function is the accumulated result, and is provided as an argument in the next 
            * call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduce method calls the 
            * callbackfn function one time for each element in the array.
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an argument
            * instead of an array value.
            */
          reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue?: number): number;
      
          /**
            * Calls the specified callback function for all the elements in an array. The return value of 
            * the callback function is the accumulated result, and is provided as an argument in the next 
            * call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduce method calls the 
            * callbackfn function one time for each element in the array.
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an argument 
            * instead of an array value.
            */
          reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U): U;
      
          /** 
            * Calls the specified callback function for all the elements in an array, in descending order. 
            * The return value of the callback function is the accumulated result, and is provided as an 
            * argument in the next call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls 
            * the callbackfn function one time for each element in the array. 
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an 
            * argument instead of an array value.
            */
          reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue?: number): number;
      
          /** 
            * Calls the specified callback function for all the elements in an array, in descending order. 
            * The return value of the callback function is the accumulated result, and is provided as an 
            * argument in the next call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
            * the callbackfn function one time for each element in the array. 
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an argument
            * instead of an array value.
            */
          reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U): U;
      
          /**
            * Reverses the elements in an Array. 
            */
          reverse(): Uint8Array;
      
          /**
            * Sets a value or an array of values.
            * @param index The index of the location to set.
            * @param value The value to set.
            */
          set(index: number, value: number): void;
      
          /**
            * Sets a value or an array of values.
            * @param array A typed or untyped array of values to set.
            * @param offset The index in the current array at which the values are to be written.
            */
          set(array: Uint8Array, offset?: number): void;
      
          /** 
            * Returns a section of an array.
            * @param start The beginning of the specified portion of the array.
            * @param end The end of the specified portion of the array.
            */
          slice(start?: number, end?: number): Uint8Array;
      
          /**
            * Determines whether the specified callback function returns true for any element of an array.
            * @param callbackfn A function that accepts up to three arguments. The some method calls the 
            * callbackfn function for each element in array1 until the callbackfn returns true, or until 
            * the end of the array.
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          some(callbackfn: (value: number, index: number, array: Uint8Array) => boolean, thisArg?: any): boolean;
      
          /**
            * Sorts an array.
            * @param compareFn The name of the function used to determine the order of the elements. If 
            * omitted, the elements are sorted in ascending, ASCII character order.
            */
          sort(compareFn?: (a: number, b: number) => number): Uint8Array;
      
          /**
            * Gets a new Uint8Array view of the ArrayBuffer store for this array, referencing the elements
            * at begin, inclusive, up to end, exclusive. 
            * @param begin The index of the beginning of the array.
            * @param end The index of the end of the array.
            */
          subarray(begin: number, end?: number): Uint8Array;
      
          /**
            * Converts a number to a string by using the current locale. 
            */
          toLocaleString(): string;
      
          /**
            * Returns a string representation of an array.
            */
          toString(): string;
      
          [index: number]: number;
      }
      
      interface Uint8ArrayConstructor {
          prototype: Uint8Array;
          new (length: number): Uint8Array;
          new (array: Uint8Array): Uint8Array;
          new (array: number[]): Uint8Array;
          new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8Array;
      
          /**
            * The size in bytes of each element in the array. 
            */
          BYTES_PER_ELEMENT: number;
      
          /**
            * Returns a new array from a set of elements.
            * @param items A set of elements to include in the new array object.
            */
          of(...items: number[]): Uint8Array;
      }
      declare var Uint8Array: Uint8ArrayConstructor;
      
      /**
        * A typed array of 16-bit signed integer values. The contents are initialized to 0. If the 
        * requested number of bytes could not be allocated an exception is raised.
        */
      interface Int16Array {
          /**
            * The size in bytes of each element in the array. 
            */
          BYTES_PER_ELEMENT: number;
      
          /**
            * The ArrayBuffer instance referenced by the array. 
            */
          buffer: ArrayBuffer;
      
          /**
            * The length in bytes of the array.
            */
          byteLength: number;
      
          /**
            * The offset in bytes of the array.
            */
          byteOffset: number;
      
          /** 
            * Returns the this object after copying a section of the array identified by start and end
            * to the same array starting at position target
            * @param target If target is negative, it is treated as length+target where length is the 
            * length of the array. 
            * @param start If start is negative, it is treated as length+start. If end is negative, it 
            * is treated as length+end.
            * @param end If not specified, length of the this object is used as its default value. 
            */
          copyWithin(target: number, start: number, end?: number): Int16Array;
      
          /**
            * Determines whether all the members of an array satisfy the specified test.
            * @param callbackfn A function that accepts up to three arguments. The every method calls 
            * the callbackfn function for each element in array1 until the callbackfn returns false, 
            * or until the end of the array.
            * @param thisArg An object to which the this keyword can refer in the callbackfn function.
            * If thisArg is omitted, undefined is used as the this value.
            */
          every(callbackfn: (value: number, index: number, array: Int16Array) => boolean, thisArg?: any): boolean;
      
          /**
              * Returns the this object after filling the section identified by start and end with value
              * @param value value to fill array section with
              * @param start index to start filling the array at. If start is negative, it is treated as 
              * length+start where length is the length of the array. 
              * @param end index to stop filling the array at. If end is negative, it is treated as 
              * length+end.
              */
          fill(value: number, start?: number, end?: number): Int16Array;
      
          /**
            * Returns the elements of an array that meet the condition specified in a callback function. 
            * @param callbackfn A function that accepts up to three arguments. The filter method calls 
            * the callbackfn function one time for each element in the array. 
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          filter(callbackfn: (value: number, index: number, array: Int16Array) => boolean, thisArg?: any): Int16Array;
      
          /** 
            * Returns the value of the first element in the array where predicate is true, and undefined 
            * otherwise.
            * @param predicate find calls predicate once for each element of the array, in ascending 
            * order, until it finds one where predicate returns true. If such an element is found, find 
            * immediately returns that element value. Otherwise, find returns undefined.
            * @param thisArg If provided, it will be used as the this value for each invocation of 
            * predicate. If it is not provided, undefined is used instead.
            */
          find(predicate: (value: number, index: number, obj: Array<number>) => boolean, thisArg?: any): number;
      
          /** 
            * Returns the index of the first element in the array where predicate is true, and undefined 
            * otherwise.
            * @param predicate find calls predicate once for each element of the array, in ascending 
            * order, until it finds one where predicate returns true. If such an element is found, find 
            * immediately returns that element value. Otherwise, find returns undefined.
            * @param thisArg If provided, it will be used as the this value for each invocation of 
            * predicate. If it is not provided, undefined is used instead.
            */
          findIndex(predicate: (value: number) => boolean, thisArg?: any): number;
      
          /**
            * Performs the specified action for each element in an array.
            * @param callbackfn  A function that accepts up to three arguments. forEach calls the 
            * callbackfn function one time for each element in the array. 
            * @param thisArg  An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          forEach(callbackfn: (value: number, index: number, array: Int16Array) => void, thisArg?: any): void;
      
          /**
            * Returns the index of the first occurrence of a value in an array.
            * @param searchElement The value to locate in the array.
            * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
            *  search starts at index 0.
            */
          indexOf(searchElement: number, fromIndex?: number): number;
      
          /**
            * Adds all the elements of an array separated by the specified separator string.
            * @param separator A string used to separate one element of an array from the next in the 
            * resulting String. If omitted, the array elements are separated with a comma.
            */
          join(separator?: string): string;
      
          /**
            * Returns the index of the last occurrence of a value in an array.
            * @param searchElement The value to locate in the array.
            * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the 
            * search starts at index 0.
            */
          lastIndexOf(searchElement: number, fromIndex?: number): number;
      
          /**
            * The length of the array.
            */
          length: number;
      
          /**
            * Calls a defined callback function on each element of an array, and returns an array that 
            * contains the results.
            * @param callbackfn A function that accepts up to three arguments. The map method calls the 
            * callbackfn function one time for each element in the array. 
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          map(callbackfn: (value: number, index: number, array: Int16Array) => number, thisArg?: any): Int16Array;
      
          /**
            * Calls the specified callback function for all the elements in an array. The return value of 
            * the callback function is the accumulated result, and is provided as an argument in the next 
            * call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduce method calls the 
            * callbackfn function one time for each element in the array.
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an argument
            * instead of an array value.
            */
          reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number, initialValue?: number): number;
      
          /**
            * Calls the specified callback function for all the elements in an array. The return value of 
            * the callback function is the accumulated result, and is provided as an argument in the next 
            * call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduce method calls the 
            * callbackfn function one time for each element in the array.
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an argument 
            * instead of an array value.
            */
          reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int16Array) => U, initialValue: U): U;
      
          /** 
            * Calls the specified callback function for all the elements in an array, in descending order. 
            * The return value of the callback function is the accumulated result, and is provided as an 
            * argument in the next call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls 
            * the callbackfn function one time for each element in the array. 
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an 
            * argument instead of an array value.
            */
          reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number, initialValue?: number): number;
      
          /** 
            * Calls the specified callback function for all the elements in an array, in descending order. 
            * The return value of the callback function is the accumulated result, and is provided as an 
            * argument in the next call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
            * the callbackfn function one time for each element in the array. 
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an argument
            * instead of an array value.
            */
          reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int16Array) => U, initialValue: U): U;
      
          /**
            * Reverses the elements in an Array. 
            */
          reverse(): Int16Array;
      
          /**
            * Sets a value or an array of values.
            * @param index The index of the location to set.
            * @param value The value to set.
            */
          set(index: number, value: number): void;
      
          /**
            * Sets a value or an array of values.
            * @param array A typed or untyped array of values to set.
            * @param offset The index in the current array at which the values are to be written.
            */
          set(array: Int16Array, offset?: number): void;
      
          /** 
            * Returns a section of an array.
            * @param start The beginning of the specified portion of the array.
            * @param end The end of the specified portion of the array.
            */
          slice(start?: number, end?: number): Int16Array;
      
          /**
            * Determines whether the specified callback function returns true for any element of an array.
            * @param callbackfn A function that accepts up to three arguments. The some method calls the 
            * callbackfn function for each element in array1 until the callbackfn returns true, or until 
            * the end of the array.
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          some(callbackfn: (value: number, index: number, array: Int16Array) => boolean, thisArg?: any): boolean;
      
          /**
            * Sorts an array.
            * @param compareFn The name of the function used to determine the order of the elements. If 
            * omitted, the elements are sorted in ascending, ASCII character order.
            */
          sort(compareFn?: (a: number, b: number) => number): Int16Array;
      
          /**
            * Gets a new Int16Array view of the ArrayBuffer store for this array, referencing the elements
            * at begin, inclusive, up to end, exclusive. 
            * @param begin The index of the beginning of the array.
            * @param end The index of the end of the array.
            */
          subarray(begin: number, end?: number): Int16Array;
      
          /**
            * Converts a number to a string by using the current locale. 
            */
          toLocaleString(): string;
      
          /**
            * Returns a string representation of an array.
            */
          toString(): string;
      
          [index: number]: number;
      }
      
      interface Int16ArrayConstructor {
          prototype: Int16Array;
          new (length: number): Int16Array;
          new (array: Int16Array): Int16Array;
          new (array: number[]): Int16Array;
          new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int16Array;
      
          /**
            * The size in bytes of each element in the array. 
            */
          BYTES_PER_ELEMENT: number;
      
          /**
            * Returns a new array from a set of elements.
            * @param items A set of elements to include in the new array object.
            */
          of(...items: number[]): Int16Array;
      }
      declare var Int16Array: Int16ArrayConstructor;
      
      /**
        * A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the 
        * requested number of bytes could not be allocated an exception is raised.
        */
      interface Uint16Array {
          /**
            * The size in bytes of each element in the array. 
            */
          BYTES_PER_ELEMENT: number;
      
          /**
            * The ArrayBuffer instance referenced by the array. 
            */
          buffer: ArrayBuffer;
      
          /**
            * The length in bytes of the array.
            */
          byteLength: number;
      
          /**
            * The offset in bytes of the array.
            */
          byteOffset: number;
      
          /** 
            * Returns the this object after copying a section of the array identified by start and end
            * to the same array starting at position target
            * @param target If target is negative, it is treated as length+target where length is the 
            * length of the array. 
            * @param start If start is negative, it is treated as length+start. If end is negative, it 
            * is treated as length+end.
            * @param end If not specified, length of the this object is used as its default value. 
            */
          copyWithin(target: number, start: number, end?: number): Uint16Array;
      
          /**
            * Determines whether all the members of an array satisfy the specified test.
            * @param callbackfn A function that accepts up to three arguments. The every method calls 
            * the callbackfn function for each element in array1 until the callbackfn returns false, 
            * or until the end of the array.
            * @param thisArg An object to which the this keyword can refer in the callbackfn function.
            * If thisArg is omitted, undefined is used as the this value.
            */
          every(callbackfn: (value: number, index: number, array: Uint16Array) => boolean, thisArg?: any): boolean;
      
          /**
              * Returns the this object after filling the section identified by start and end with value
              * @param value value to fill array section with
              * @param start index to start filling the array at. If start is negative, it is treated as 
              * length+start where length is the length of the array. 
              * @param end index to stop filling the array at. If end is negative, it is treated as 
              * length+end.
              */
          fill(value: number, start?: number, end?: number): Uint16Array;
      
          /**
            * Returns the elements of an array that meet the condition specified in a callback function. 
            * @param callbackfn A function that accepts up to three arguments. The filter method calls 
            * the callbackfn function one time for each element in the array. 
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          filter(callbackfn: (value: number, index: number, array: Uint16Array) => boolean, thisArg?: any): Uint16Array;
      
          /** 
            * Returns the value of the first element in the array where predicate is true, and undefined 
            * otherwise.
            * @param predicate find calls predicate once for each element of the array, in ascending 
            * order, until it finds one where predicate returns true. If such an element is found, find 
            * immediately returns that element value. Otherwise, find returns undefined.
            * @param thisArg If provided, it will be used as the this value for each invocation of 
            * predicate. If it is not provided, undefined is used instead.
            */
          find(predicate: (value: number, index: number, obj: Array<number>) => boolean, thisArg?: any): number;
      
          /** 
            * Returns the index of the first element in the array where predicate is true, and undefined 
            * otherwise.
            * @param predicate find calls predicate once for each element of the array, in ascending 
            * order, until it finds one where predicate returns true. If such an element is found, find 
            * immediately returns that element value. Otherwise, find returns undefined.
            * @param thisArg If provided, it will be used as the this value for each invocation of 
            * predicate. If it is not provided, undefined is used instead.
            */
          findIndex(predicate: (value: number) => boolean, thisArg?: any): number;
      
          /**
            * Performs the specified action for each element in an array.
            * @param callbackfn  A function that accepts up to three arguments. forEach calls the 
            * callbackfn function one time for each element in the array. 
            * @param thisArg  An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          forEach(callbackfn: (value: number, index: number, array: Uint16Array) => void, thisArg?: any): void;
      
          /**
            * Returns the index of the first occurrence of a value in an array.
            * @param searchElement The value to locate in the array.
            * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
            *  search starts at index 0.
            */
          indexOf(searchElement: number, fromIndex?: number): number;
      
          /**
            * Adds all the elements of an array separated by the specified separator string.
            * @param separator A string used to separate one element of an array from the next in the 
            * resulting String. If omitted, the array elements are separated with a comma.
            */
          join(separator?: string): string;
      
          /**
            * Returns the index of the last occurrence of a value in an array.
            * @param searchElement The value to locate in the array.
            * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the 
            * search starts at index 0.
            */
          lastIndexOf(searchElement: number, fromIndex?: number): number;
      
          /**
            * The length of the array.
            */
          length: number;
      
          /**
            * Calls a defined callback function on each element of an array, and returns an array that 
            * contains the results.
            * @param callbackfn A function that accepts up to three arguments. The map method calls the 
            * callbackfn function one time for each element in the array. 
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          map(callbackfn: (value: number, index: number, array: Uint16Array) => number, thisArg?: any): Uint16Array;
      
          /**
            * Calls the specified callback function for all the elements in an array. The return value of 
            * the callback function is the accumulated result, and is provided as an argument in the next 
            * call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduce method calls the 
            * callbackfn function one time for each element in the array.
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an argument
            * instead of an array value.
            */
          reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number, initialValue?: number): number;
      
          /**
            * Calls the specified callback function for all the elements in an array. The return value of 
            * the callback function is the accumulated result, and is provided as an argument in the next 
            * call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduce method calls the 
            * callbackfn function one time for each element in the array.
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an argument 
            * instead of an array value.
            */
          reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint16Array) => U, initialValue: U): U;
      
          /** 
            * Calls the specified callback function for all the elements in an array, in descending order. 
            * The return value of the callback function is the accumulated result, and is provided as an 
            * argument in the next call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls 
            * the callbackfn function one time for each element in the array. 
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an 
            * argument instead of an array value.
            */
          reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number, initialValue?: number): number;
      
          /** 
            * Calls the specified callback function for all the elements in an array, in descending order. 
            * The return value of the callback function is the accumulated result, and is provided as an 
            * argument in the next call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
            * the callbackfn function one time for each element in the array. 
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an argument
            * instead of an array value.
            */
          reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint16Array) => U, initialValue: U): U;
      
          /**
            * Reverses the elements in an Array. 
            */
          reverse(): Uint16Array;
      
          /**
            * Sets a value or an array of values.
            * @param index The index of the location to set.
            * @param value The value to set.
            */
          set(index: number, value: number): void;
      
          /**
            * Sets a value or an array of values.
            * @param array A typed or untyped array of values to set.
            * @param offset The index in the current array at which the values are to be written.
            */
          set(array: Uint16Array, offset?: number): void;
      
          /** 
            * Returns a section of an array.
            * @param start The beginning of the specified portion of the array.
            * @param end The end of the specified portion of the array.
            */
          slice(start?: number, end?: number): Uint16Array;
      
          /**
            * Determines whether the specified callback function returns true for any element of an array.
            * @param callbackfn A function that accepts up to three arguments. The some method calls the 
            * callbackfn function for each element in array1 until the callbackfn returns true, or until 
            * the end of the array.
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          some(callbackfn: (value: number, index: number, array: Uint16Array) => boolean, thisArg?: any): boolean;
      
          /**
            * Sorts an array.
            * @param compareFn The name of the function used to determine the order of the elements. If 
            * omitted, the elements are sorted in ascending, ASCII character order.
            */
          sort(compareFn?: (a: number, b: number) => number): Uint16Array;
      
          /**
            * Gets a new Uint16Array view of the ArrayBuffer store for this array, referencing the elements
            * at begin, inclusive, up to end, exclusive. 
            * @param begin The index of the beginning of the array.
            * @param end The index of the end of the array.
            */
          subarray(begin: number, end?: number): Uint16Array;
      
          /**
            * Converts a number to a string by using the current locale. 
            */
          toLocaleString(): string;
      
          /**
            * Returns a string representation of an array.
            */
          toString(): string;
      
          [index: number]: number;
      }
      
      interface Uint16ArrayConstructor {
          prototype: Uint16Array;
          new (length: number): Uint16Array;
          new (array: Uint16Array): Uint16Array;
          new (array: number[]): Uint16Array;
          new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint16Array;
      
          /**
            * The size in bytes of each element in the array. 
            */
          BYTES_PER_ELEMENT: number;
      
          /**
            * Returns a new array from a set of elements.
            * @param items A set of elements to include in the new array object.
            */
          of(...items: number[]): Uint16Array;
      }
      declare var Uint16Array: Uint16ArrayConstructor;
      /**
        * A typed array of 32-bit signed integer values. The contents are initialized to 0. If the 
        * requested number of bytes could not be allocated an exception is raised.
        */
      interface Int32Array {
          /**
            * The size in bytes of each element in the array. 
            */
          BYTES_PER_ELEMENT: number;
      
          /**
            * The ArrayBuffer instance referenced by the array. 
            */
          buffer: ArrayBuffer;
      
          /**
            * The length in bytes of the array.
            */
          byteLength: number;
      
          /**
            * The offset in bytes of the array.
            */
          byteOffset: number;
      
          /** 
            * Returns the this object after copying a section of the array identified by start and end
            * to the same array starting at position target
            * @param target If target is negative, it is treated as length+target where length is the 
            * length of the array. 
            * @param start If start is negative, it is treated as length+start. If end is negative, it 
            * is treated as length+end.
            * @param end If not specified, length of the this object is used as its default value. 
            */
          copyWithin(target: number, start: number, end?: number): Int32Array;
      
          /**
            * Determines whether all the members of an array satisfy the specified test.
            * @param callbackfn A function that accepts up to three arguments. The every method calls 
            * the callbackfn function for each element in array1 until the callbackfn returns false, 
            * or until the end of the array.
            * @param thisArg An object to which the this keyword can refer in the callbackfn function.
            * If thisArg is omitted, undefined is used as the this value.
            */
          every(callbackfn: (value: number, index: number, array: Int32Array) => boolean, thisArg?: any): boolean;
      
          /**
              * Returns the this object after filling the section identified by start and end with value
              * @param value value to fill array section with
              * @param start index to start filling the array at. If start is negative, it is treated as 
              * length+start where length is the length of the array. 
              * @param end index to stop filling the array at. If end is negative, it is treated as 
              * length+end.
              */
          fill(value: number, start?: number, end?: number): Int32Array;
      
          /**
            * Returns the elements of an array that meet the condition specified in a callback function. 
            * @param callbackfn A function that accepts up to three arguments. The filter method calls 
            * the callbackfn function one time for each element in the array. 
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          filter(callbackfn: (value: number, index: number, array: Int32Array) => boolean, thisArg?: any): Int32Array;
      
          /** 
            * Returns the value of the first element in the array where predicate is true, and undefined 
            * otherwise.
            * @param predicate find calls predicate once for each element of the array, in ascending 
            * order, until it finds one where predicate returns true. If such an element is found, find 
            * immediately returns that element value. Otherwise, find returns undefined.
            * @param thisArg If provided, it will be used as the this value for each invocation of 
            * predicate. If it is not provided, undefined is used instead.
            */
          find(predicate: (value: number, index: number, obj: Array<number>) => boolean, thisArg?: any): number;
      
          /** 
            * Returns the index of the first element in the array where predicate is true, and undefined 
            * otherwise.
            * @param predicate find calls predicate once for each element of the array, in ascending 
            * order, until it finds one where predicate returns true. If such an element is found, find 
            * immediately returns that element value. Otherwise, find returns undefined.
            * @param thisArg If provided, it will be used as the this value for each invocation of 
            * predicate. If it is not provided, undefined is used instead.
            */
          findIndex(predicate: (value: number) => boolean, thisArg?: any): number;
      
          /**
            * Performs the specified action for each element in an array.
            * @param callbackfn  A function that accepts up to three arguments. forEach calls the 
            * callbackfn function one time for each element in the array. 
            * @param thisArg  An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          forEach(callbackfn: (value: number, index: number, array: Int32Array) => void, thisArg?: any): void;
      
          /**
            * Returns the index of the first occurrence of a value in an array.
            * @param searchElement The value to locate in the array.
            * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
            *  search starts at index 0.
            */
          indexOf(searchElement: number, fromIndex?: number): number;
      
          /**
            * Adds all the elements of an array separated by the specified separator string.
            * @param separator A string used to separate one element of an array from the next in the 
            * resulting String. If omitted, the array elements are separated with a comma.
            */
          join(separator?: string): string;
      
          /**
            * Returns the index of the last occurrence of a value in an array.
            * @param searchElement The value to locate in the array.
            * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the 
            * search starts at index 0.
            */
          lastIndexOf(searchElement: number, fromIndex?: number): number;
      
          /**
            * The length of the array.
            */
          length: number;
      
          /**
            * Calls a defined callback function on each element of an array, and returns an array that 
            * contains the results.
            * @param callbackfn A function that accepts up to three arguments. The map method calls the 
            * callbackfn function one time for each element in the array. 
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          map(callbackfn: (value: number, index: number, array: Int32Array) => number, thisArg?: any): Int32Array;
      
          /**
            * Calls the specified callback function for all the elements in an array. The return value of 
            * the callback function is the accumulated result, and is provided as an argument in the next 
            * call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduce method calls the 
            * callbackfn function one time for each element in the array.
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an argument
            * instead of an array value.
            */
          reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number, initialValue?: number): number;
      
          /**
            * Calls the specified callback function for all the elements in an array. The return value of 
            * the callback function is the accumulated result, and is provided as an argument in the next 
            * call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduce method calls the 
            * callbackfn function one time for each element in the array.
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an argument 
            * instead of an array value.
            */
          reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int32Array) => U, initialValue: U): U;
      
          /** 
            * Calls the specified callback function for all the elements in an array, in descending order. 
            * The return value of the callback function is the accumulated result, and is provided as an 
            * argument in the next call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls 
            * the callbackfn function one time for each element in the array. 
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an 
            * argument instead of an array value.
            */
          reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number, initialValue?: number): number;
      
          /** 
            * Calls the specified callback function for all the elements in an array, in descending order. 
            * The return value of the callback function is the accumulated result, and is provided as an 
            * argument in the next call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
            * the callbackfn function one time for each element in the array. 
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an argument
            * instead of an array value.
            */
          reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int32Array) => U, initialValue: U): U;
      
          /**
            * Reverses the elements in an Array. 
            */
          reverse(): Int32Array;
      
          /**
            * Sets a value or an array of values.
            * @param index The index of the location to set.
            * @param value The value to set.
            */
          set(index: number, value: number): void;
      
          /**
            * Sets a value or an array of values.
            * @param array A typed or untyped array of values to set.
            * @param offset The index in the current array at which the values are to be written.
            */
          set(array: Int32Array, offset?: number): void;
      
          /** 
            * Returns a section of an array.
            * @param start The beginning of the specified portion of the array.
            * @param end The end of the specified portion of the array.
            */
          slice(start?: number, end?: number): Int32Array;
      
          /**
            * Determines whether the specified callback function returns true for any element of an array.
            * @param callbackfn A function that accepts up to three arguments. The some method calls the 
            * callbackfn function for each element in array1 until the callbackfn returns true, or until 
            * the end of the array.
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          some(callbackfn: (value: number, index: number, array: Int32Array) => boolean, thisArg?: any): boolean;
      
          /**
            * Sorts an array.
            * @param compareFn The name of the function used to determine the order of the elements. If 
            * omitted, the elements are sorted in ascending, ASCII character order.
            */
          sort(compareFn?: (a: number, b: number) => number): Int32Array;
      
          /**
            * Gets a new Int32Array view of the ArrayBuffer store for this array, referencing the elements
            * at begin, inclusive, up to end, exclusive. 
            * @param begin The index of the beginning of the array.
            * @param end The index of the end of the array.
            */
          subarray(begin: number, end?: number): Int32Array;
      
          /**
            * Converts a number to a string by using the current locale. 
            */
          toLocaleString(): string;
      
          /**
            * Returns a string representation of an array.
            */
          toString(): string;
      
          [index: number]: number;
      }
      
      interface Int32ArrayConstructor {
          prototype: Int32Array;
          new (length: number): Int32Array;
          new (array: Int32Array): Int32Array;
          new (array: number[]): Int32Array;
          new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int32Array;
      
          /**
            * The size in bytes of each element in the array. 
            */
          BYTES_PER_ELEMENT: number;
      
          /**
            * Returns a new array from a set of elements.
            * @param items A set of elements to include in the new array object.
            */
          of(...items: number[]): Int32Array;
      }
      declare var Int32Array: Int32ArrayConstructor;
      
      /**
        * A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the 
        * requested number of bytes could not be allocated an exception is raised.
        */
      interface Uint32Array {
          /**
            * The size in bytes of each element in the array. 
            */
          BYTES_PER_ELEMENT: number;
      
          /**
            * The ArrayBuffer instance referenced by the array. 
            */
          buffer: ArrayBuffer;
      
          /**
            * The length in bytes of the array.
            */
          byteLength: number;
      
          /**
            * The offset in bytes of the array.
            */
          byteOffset: number;
      
          /** 
            * Returns the this object after copying a section of the array identified by start and end
            * to the same array starting at position target
            * @param target If target is negative, it is treated as length+target where length is the 
            * length of the array. 
            * @param start If start is negative, it is treated as length+start. If end is negative, it 
            * is treated as length+end.
            * @param end If not specified, length of the this object is used as its default value. 
            */
          copyWithin(target: number, start: number, end?: number): Uint32Array;
      
          /**
            * Determines whether all the members of an array satisfy the specified test.
            * @param callbackfn A function that accepts up to three arguments. The every method calls 
            * the callbackfn function for each element in array1 until the callbackfn returns false, 
            * or until the end of the array.
            * @param thisArg An object to which the this keyword can refer in the callbackfn function.
            * If thisArg is omitted, undefined is used as the this value.
            */
          every(callbackfn: (value: number, index: number, array: Uint32Array) => boolean, thisArg?: any): boolean;
      
          /**
              * Returns the this object after filling the section identified by start and end with value
              * @param value value to fill array section with
              * @param start index to start filling the array at. If start is negative, it is treated as 
              * length+start where length is the length of the array. 
              * @param end index to stop filling the array at. If end is negative, it is treated as 
              * length+end.
              */
          fill(value: number, start?: number, end?: number): Uint32Array;
      
          /**
            * Returns the elements of an array that meet the condition specified in a callback function. 
            * @param callbackfn A function that accepts up to three arguments. The filter method calls 
            * the callbackfn function one time for each element in the array. 
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          filter(callbackfn: (value: number, index: number, array: Uint32Array) => boolean, thisArg?: any): Uint32Array;
      
          /** 
            * Returns the value of the first element in the array where predicate is true, and undefined 
            * otherwise.
            * @param predicate find calls predicate once for each element of the array, in ascending 
            * order, until it finds one where predicate returns true. If such an element is found, find 
            * immediately returns that element value. Otherwise, find returns undefined.
            * @param thisArg If provided, it will be used as the this value for each invocation of 
            * predicate. If it is not provided, undefined is used instead.
            */
          find(predicate: (value: number, index: number, obj: Array<number>) => boolean, thisArg?: any): number;
      
          /** 
            * Returns the index of the first element in the array where predicate is true, and undefined 
            * otherwise.
            * @param predicate find calls predicate once for each element of the array, in ascending 
            * order, until it finds one where predicate returns true. If such an element is found, find 
            * immediately returns that element value. Otherwise, find returns undefined.
            * @param thisArg If provided, it will be used as the this value for each invocation of 
            * predicate. If it is not provided, undefined is used instead.
            */
          findIndex(predicate: (value: number) => boolean, thisArg?: any): number;
      
          /**
            * Performs the specified action for each element in an array.
            * @param callbackfn  A function that accepts up to three arguments. forEach calls the 
            * callbackfn function one time for each element in the array. 
            * @param thisArg  An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          forEach(callbackfn: (value: number, index: number, array: Uint32Array) => void, thisArg?: any): void;
      
          /**
            * Returns the index of the first occurrence of a value in an array.
            * @param searchElement The value to locate in the array.
            * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
            *  search starts at index 0.
            */
          indexOf(searchElement: number, fromIndex?: number): number;
      
          /**
            * Adds all the elements of an array separated by the specified separator string.
            * @param separator A string used to separate one element of an array from the next in the 
            * resulting String. If omitted, the array elements are separated with a comma.
            */
          join(separator?: string): string;
      
          /**
            * Returns the index of the last occurrence of a value in an array.
            * @param searchElement The value to locate in the array.
            * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the 
            * search starts at index 0.
            */
          lastIndexOf(searchElement: number, fromIndex?: number): number;
      
          /**
            * The length of the array.
            */
          length: number;
      
          /**
            * Calls a defined callback function on each element of an array, and returns an array that 
            * contains the results.
            * @param callbackfn A function that accepts up to three arguments. The map method calls the 
            * callbackfn function one time for each element in the array. 
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          map(callbackfn: (value: number, index: number, array: Uint32Array) => number, thisArg?: any): Uint32Array;
      
          /**
            * Calls the specified callback function for all the elements in an array. The return value of 
            * the callback function is the accumulated result, and is provided as an argument in the next 
            * call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduce method calls the 
            * callbackfn function one time for each element in the array.
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an argument
            * instead of an array value.
            */
          reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number, initialValue?: number): number;
      
          /**
            * Calls the specified callback function for all the elements in an array. The return value of 
            * the callback function is the accumulated result, and is provided as an argument in the next 
            * call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduce method calls the 
            * callbackfn function one time for each element in the array.
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an argument 
            * instead of an array value.
            */
          reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint32Array) => U, initialValue: U): U;
      
          /** 
            * Calls the specified callback function for all the elements in an array, in descending order. 
            * The return value of the callback function is the accumulated result, and is provided as an 
            * argument in the next call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls 
            * the callbackfn function one time for each element in the array. 
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an 
            * argument instead of an array value.
            */
          reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number, initialValue?: number): number;
      
          /** 
            * Calls the specified callback function for all the elements in an array, in descending order. 
            * The return value of the callback function is the accumulated result, and is provided as an 
            * argument in the next call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
            * the callbackfn function one time for each element in the array. 
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an argument
            * instead of an array value.
            */
          reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint32Array) => U, initialValue: U): U;
      
          /**
            * Reverses the elements in an Array. 
            */
          reverse(): Uint32Array;
      
          /**
            * Sets a value or an array of values.
            * @param index The index of the location to set.
            * @param value The value to set.
            */
          set(index: number, value: number): void;
      
          /**
            * Sets a value or an array of values.
            * @param array A typed or untyped array of values to set.
            * @param offset The index in the current array at which the values are to be written.
            */
          set(array: Uint32Array, offset?: number): void;
      
          /** 
            * Returns a section of an array.
            * @param start The beginning of the specified portion of the array.
            * @param end The end of the specified portion of the array.
            */
          slice(start?: number, end?: number): Uint32Array;
      
          /**
            * Determines whether the specified callback function returns true for any element of an array.
            * @param callbackfn A function that accepts up to three arguments. The some method calls the 
            * callbackfn function for each element in array1 until the callbackfn returns true, or until 
            * the end of the array.
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          some(callbackfn: (value: number, index: number, array: Uint32Array) => boolean, thisArg?: any): boolean;
      
          /**
            * Sorts an array.
            * @param compareFn The name of the function used to determine the order of the elements. If 
            * omitted, the elements are sorted in ascending, ASCII character order.
            */
          sort(compareFn?: (a: number, b: number) => number): Uint32Array;
      
          /**
            * Gets a new Uint32Array view of the ArrayBuffer store for this array, referencing the elements
            * at begin, inclusive, up to end, exclusive. 
            * @param begin The index of the beginning of the array.
            * @param end The index of the end of the array.
            */
          subarray(begin: number, end?: number): Uint32Array;
      
          /**
            * Converts a number to a string by using the current locale. 
            */
          toLocaleString(): string;
      
          /**
            * Returns a string representation of an array.
            */
          toString(): string;
      
          [index: number]: number;
      }
      
      interface Uint32ArrayConstructor {
          prototype: Uint32Array;
          new (length: number): Uint32Array;
          new (array: Uint32Array): Uint32Array;
          new (array: number[]): Uint32Array;
          new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint32Array;
      
          /**
            * The size in bytes of each element in the array. 
            */
          BYTES_PER_ELEMENT: number;
      
          /**
            * Returns a new array from a set of elements.
            * @param items A set of elements to include in the new array object.
            */
          of(...items: number[]): Uint32Array;
      }
      declare var Uint32Array: Uint32ArrayConstructor;
      
      /**
        * A typed array of 32-bit float values. The contents are initialized to 0. If the requested number
        * of bytes could not be allocated an exception is raised.
        */
      interface Float32Array {
          /**
            * The size in bytes of each element in the array. 
            */
          BYTES_PER_ELEMENT: number;
      
          /**
            * The ArrayBuffer instance referenced by the array. 
            */
          buffer: ArrayBuffer;
      
          /**
            * The length in bytes of the array.
            */
          byteLength: number;
      
          /**
            * The offset in bytes of the array.
            */
          byteOffset: number;
      
          /** 
            * Returns the this object after copying a section of the array identified by start and end
            * to the same array starting at position target
            * @param target If target is negative, it is treated as length+target where length is the 
            * length of the array. 
            * @param start If start is negative, it is treated as length+start. If end is negative, it 
            * is treated as length+end.
            * @param end If not specified, length of the this object is used as its default value. 
            */
          copyWithin(target: number, start: number, end?: number): Float32Array;
      
          /**
            * Determines whether all the members of an array satisfy the specified test.
            * @param callbackfn A function that accepts up to three arguments. The every method calls 
            * the callbackfn function for each element in array1 until the callbackfn returns false, 
            * or until the end of the array.
            * @param thisArg An object to which the this keyword can refer in the callbackfn function.
            * If thisArg is omitted, undefined is used as the this value.
            */
          every(callbackfn: (value: number, index: number, array: Float32Array) => boolean, thisArg?: any): boolean;
      
          /**
              * Returns the this object after filling the section identified by start and end with value
              * @param value value to fill array section with
              * @param start index to start filling the array at. If start is negative, it is treated as 
              * length+start where length is the length of the array. 
              * @param end index to stop filling the array at. If end is negative, it is treated as 
              * length+end.
              */
          fill(value: number, start?: number, end?: number): Float32Array;
      
          /**
            * Returns the elements of an array that meet the condition specified in a callback function. 
            * @param callbackfn A function that accepts up to three arguments. The filter method calls 
            * the callbackfn function one time for each element in the array. 
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          filter(callbackfn: (value: number, index: number, array: Float32Array) => boolean, thisArg?: any): Float32Array;
      
          /** 
            * Returns the value of the first element in the array where predicate is true, and undefined 
            * otherwise.
            * @param predicate find calls predicate once for each element of the array, in ascending 
            * order, until it finds one where predicate returns true. If such an element is found, find 
            * immediately returns that element value. Otherwise, find returns undefined.
            * @param thisArg If provided, it will be used as the this value for each invocation of 
            * predicate. If it is not provided, undefined is used instead.
            */
          find(predicate: (value: number, index: number, obj: Array<number>) => boolean, thisArg?: any): number;
      
          /** 
            * Returns the index of the first element in the array where predicate is true, and undefined 
            * otherwise.
            * @param predicate find calls predicate once for each element of the array, in ascending 
            * order, until it finds one where predicate returns true. If such an element is found, find 
            * immediately returns that element value. Otherwise, find returns undefined.
            * @param thisArg If provided, it will be used as the this value for each invocation of 
            * predicate. If it is not provided, undefined is used instead.
            */
          findIndex(predicate: (value: number) => boolean, thisArg?: any): number;
      
          /**
            * Performs the specified action for each element in an array.
            * @param callbackfn  A function that accepts up to three arguments. forEach calls the 
            * callbackfn function one time for each element in the array. 
            * @param thisArg  An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          forEach(callbackfn: (value: number, index: number, array: Float32Array) => void, thisArg?: any): void;
      
          /**
            * Returns the index of the first occurrence of a value in an array.
            * @param searchElement The value to locate in the array.
            * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
            *  search starts at index 0.
            */
          indexOf(searchElement: number, fromIndex?: number): number;
      
          /**
            * Adds all the elements of an array separated by the specified separator string.
            * @param separator A string used to separate one element of an array from the next in the 
            * resulting String. If omitted, the array elements are separated with a comma.
            */
          join(separator?: string): string;
      
          /**
            * Returns the index of the last occurrence of a value in an array.
            * @param searchElement The value to locate in the array.
            * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the 
            * search starts at index 0.
            */
          lastIndexOf(searchElement: number, fromIndex?: number): number;
      
          /**
            * The length of the array.
            */
          length: number;
      
          /**
            * Calls a defined callback function on each element of an array, and returns an array that 
            * contains the results.
            * @param callbackfn A function that accepts up to three arguments. The map method calls the 
            * callbackfn function one time for each element in the array. 
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          map(callbackfn: (value: number, index: number, array: Float32Array) => number, thisArg?: any): Float32Array;
      
          /**
            * Calls the specified callback function for all the elements in an array. The return value of 
            * the callback function is the accumulated result, and is provided as an argument in the next 
            * call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduce method calls the 
            * callbackfn function one time for each element in the array.
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an argument
            * instead of an array value.
            */
          reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue?: number): number;
      
          /**
            * Calls the specified callback function for all the elements in an array. The return value of 
            * the callback function is the accumulated result, and is provided as an argument in the next 
            * call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduce method calls the 
            * callbackfn function one time for each element in the array.
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an argument 
            * instead of an array value.
            */
          reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U;
      
          /** 
            * Calls the specified callback function for all the elements in an array, in descending order. 
            * The return value of the callback function is the accumulated result, and is provided as an 
            * argument in the next call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls 
            * the callbackfn function one time for each element in the array. 
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an 
            * argument instead of an array value.
            */
          reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue?: number): number;
      
          /** 
            * Calls the specified callback function for all the elements in an array, in descending order. 
            * The return value of the callback function is the accumulated result, and is provided as an 
            * argument in the next call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
            * the callbackfn function one time for each element in the array. 
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an argument
            * instead of an array value.
            */
          reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U;
      
          /**
            * Reverses the elements in an Array. 
            */
          reverse(): Float32Array;
      
          /**
            * Sets a value or an array of values.
            * @param index The index of the location to set.
            * @param value The value to set.
            */
          set(index: number, value: number): void;
      
          /**
            * Sets a value or an array of values.
            * @param array A typed or untyped array of values to set.
            * @param offset The index in the current array at which the values are to be written.
            */
          set(array: Float32Array, offset?: number): void;
      
          /** 
            * Returns a section of an array.
            * @param start The beginning of the specified portion of the array.
            * @param end The end of the specified portion of the array.
            */
          slice(start?: number, end?: number): Float32Array;
      
          /**
            * Determines whether the specified callback function returns true for any element of an array.
            * @param callbackfn A function that accepts up to three arguments. The some method calls the 
            * callbackfn function for each element in array1 until the callbackfn returns true, or until 
            * the end of the array.
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          some(callbackfn: (value: number, index: number, array: Float32Array) => boolean, thisArg?: any): boolean;
      
          /**
            * Sorts an array.
            * @param compareFn The name of the function used to determine the order of the elements. If 
            * omitted, the elements are sorted in ascending, ASCII character order.
            */
          sort(compareFn?: (a: number, b: number) => number): Float32Array;
      
          /**
            * Gets a new Float32Array view of the ArrayBuffer store for this array, referencing the elements
            * at begin, inclusive, up to end, exclusive. 
            * @param begin The index of the beginning of the array.
            * @param end The index of the end of the array.
            */
          subarray(begin: number, end?: number): Float32Array;
      
          /**
            * Converts a number to a string by using the current locale. 
            */
          toLocaleString(): string;
      
          /**
            * Returns a string representation of an array.
            */
          toString(): string;
      
          [index: number]: number;
      }
      
      interface Float32ArrayConstructor {
          prototype: Float32Array;
          new (length: number): Float32Array;
          new (array: Float32Array): Float32Array;
          new (array: number[]): Float32Array;
          new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float32Array;
      
          /**
            * The size in bytes of each element in the array. 
            */
          BYTES_PER_ELEMENT: number;
      
          /**
            * Returns a new array from a set of elements.
            * @param items A set of elements to include in the new array object.
            */
          of(...items: number[]): Float32Array;
      }
      declare var Float32Array: Float32ArrayConstructor;
      
      /**
        * A typed array of 64-bit float values. The contents are initialized to 0. If the requested 
        * number of bytes could not be allocated an exception is raised.
        */
      interface Float64Array {
          /**
            * The size in bytes of each element in the array. 
            */
          BYTES_PER_ELEMENT: number;
      
          /**
            * The ArrayBuffer instance referenced by the array. 
            */
          buffer: ArrayBuffer;
      
          /**
            * The length in bytes of the array.
            */
          byteLength: number;
      
          /**
            * The offset in bytes of the array.
            */
          byteOffset: number;
      
          /** 
            * Returns the this object after copying a section of the array identified by start and end
            * to the same array starting at position target
            * @param target If target is negative, it is treated as length+target where length is the 
            * length of the array. 
            * @param start If start is negative, it is treated as length+start. If end is negative, it 
            * is treated as length+end.
            * @param end If not specified, length of the this object is used as its default value. 
            */
          copyWithin(target: number, start: number, end?: number): Float64Array;
      
          /**
            * Determines whether all the members of an array satisfy the specified test.
            * @param callbackfn A function that accepts up to three arguments. The every method calls 
            * the callbackfn function for each element in array1 until the callbackfn returns false, 
            * or until the end of the array.
            * @param thisArg An object to which the this keyword can refer in the callbackfn function.
            * If thisArg is omitted, undefined is used as the this value.
            */
          every(callbackfn: (value: number, index: number, array: Float64Array) => boolean, thisArg?: any): boolean;
      
          /**
              * Returns the this object after filling the section identified by start and end with value
              * @param value value to fill array section with
              * @param start index to start filling the array at. If start is negative, it is treated as 
              * length+start where length is the length of the array. 
              * @param end index to stop filling the array at. If end is negative, it is treated as 
              * length+end.
              */
          fill(value: number, start?: number, end?: number): Float64Array;
      
          /**
            * Returns the elements of an array that meet the condition specified in a callback function. 
            * @param callbackfn A function that accepts up to three arguments. The filter method calls 
            * the callbackfn function one time for each element in the array. 
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          filter(callbackfn: (value: number, index: number, array: Float64Array) => boolean, thisArg?: any): Float64Array;
      
          /** 
            * Returns the value of the first element in the array where predicate is true, and undefined 
            * otherwise.
            * @param predicate find calls predicate once for each element of the array, in ascending 
            * order, until it finds one where predicate returns true. If such an element is found, find 
            * immediately returns that element value. Otherwise, find returns undefined.
            * @param thisArg If provided, it will be used as the this value for each invocation of 
            * predicate. If it is not provided, undefined is used instead.
            */
          find(predicate: (value: number, index: number, obj: Array<number>) => boolean, thisArg?: any): number;
      
          /** 
            * Returns the index of the first element in the array where predicate is true, and undefined 
            * otherwise.
            * @param predicate find calls predicate once for each element of the array, in ascending 
            * order, until it finds one where predicate returns true. If such an element is found, find 
            * immediately returns that element value. Otherwise, find returns undefined.
            * @param thisArg If provided, it will be used as the this value for each invocation of 
            * predicate. If it is not provided, undefined is used instead.
            */
          findIndex(predicate: (value: number) => boolean, thisArg?: any): number;
      
          /**
            * Performs the specified action for each element in an array.
            * @param callbackfn  A function that accepts up to three arguments. forEach calls the 
            * callbackfn function one time for each element in the array. 
            * @param thisArg  An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          forEach(callbackfn: (value: number, index: number, array: Float64Array) => void, thisArg?: any): void;
      
          /**
            * Returns the index of the first occurrence of a value in an array.
            * @param searchElement The value to locate in the array.
            * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
            *  search starts at index 0.
            */
          indexOf(searchElement: number, fromIndex?: number): number;
      
          /**
            * Adds all the elements of an array separated by the specified separator string.
            * @param separator A string used to separate one element of an array from the next in the 
            * resulting String. If omitted, the array elements are separated with a comma.
            */
          join(separator?: string): string;
      
          /**
            * Returns the index of the last occurrence of a value in an array.
            * @param searchElement The value to locate in the array.
            * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the 
            * search starts at index 0.
            */
          lastIndexOf(searchElement: number, fromIndex?: number): number;
      
          /**
            * The length of the array.
            */
          length: number;
      
          /**
            * Calls a defined callback function on each element of an array, and returns an array that 
            * contains the results.
            * @param callbackfn A function that accepts up to three arguments. The map method calls the 
            * callbackfn function one time for each element in the array. 
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          map(callbackfn: (value: number, index: number, array: Float64Array) => number, thisArg?: any): Float64Array;
      
          /**
            * Calls the specified callback function for all the elements in an array. The return value of 
            * the callback function is the accumulated result, and is provided as an argument in the next 
            * call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduce method calls the 
            * callbackfn function one time for each element in the array.
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an argument
            * instead of an array value.
            */
          reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number, initialValue?: number): number;
      
          /**
            * Calls the specified callback function for all the elements in an array. The return value of 
            * the callback function is the accumulated result, and is provided as an argument in the next 
            * call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduce method calls the 
            * callbackfn function one time for each element in the array.
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an argument 
            * instead of an array value.
            */
          reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array) => U, initialValue: U): U;
      
          /** 
            * Calls the specified callback function for all the elements in an array, in descending order. 
            * The return value of the callback function is the accumulated result, and is provided as an 
            * argument in the next call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls 
            * the callbackfn function one time for each element in the array. 
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an 
            * argument instead of an array value.
            */
          reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number, initialValue?: number): number;
      
          /** 
            * Calls the specified callback function for all the elements in an array, in descending order. 
            * The return value of the callback function is the accumulated result, and is provided as an 
            * argument in the next call to the callback function.
            * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
            * the callbackfn function one time for each element in the array. 
            * @param initialValue If initialValue is specified, it is used as the initial value to start 
            * the accumulation. The first call to the callbackfn function provides this value as an argument
            * instead of an array value.
            */
          reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array) => U, initialValue: U): U;
      
          /**
            * Reverses the elements in an Array. 
            */
          reverse(): Float64Array;
      
          /**
            * Sets a value or an array of values.
            * @param index The index of the location to set.
            * @param value The value to set.
            */
          set(index: number, value: number): void;
      
          /**
            * Sets a value or an array of values.
            * @param array A typed or untyped array of values to set.
            * @param offset The index in the current array at which the values are to be written.
            */
          set(array: Float64Array, offset?: number): void;
      
          /** 
            * Returns a section of an array.
            * @param start The beginning of the specified portion of the array.
            * @param end The end of the specified portion of the array.
            */
          slice(start?: number, end?: number): Float64Array;
      
          /**
            * Determines whether the specified callback function returns true for any element of an array.
            * @param callbackfn A function that accepts up to three arguments. The some method calls the 
            * callbackfn function for each element in array1 until the callbackfn returns true, or until 
            * the end of the array.
            * @param thisArg An object to which the this keyword can refer in the callbackfn function. 
            * If thisArg is omitted, undefined is used as the this value.
            */
          some(callbackfn: (value: number, index: number, array: Float64Array) => boolean, thisArg?: any): boolean;
      
          /**
            * Sorts an array.
            * @param compareFn The name of the function used to determine the order of the elements. If 
            * omitted, the elements are sorted in ascending, ASCII character order.
            */
          sort(compareFn?: (a: number, b: number) => number): Float64Array;
      
          /**
            * Gets a new Float64Array view of the ArrayBuffer store for this array, referencing the elements
            * at begin, inclusive, up to end, exclusive. 
            * @param begin The index of the beginning of the array.
            * @param end The index of the end of the array.
            */
          subarray(begin: number, end?: number): Float64Array;
      
          /**
            * Converts a number to a string by using the current locale. 
            */
          toLocaleString(): string;
      
          /**
            * Returns a string representation of an array.
            */
          toString(): string;
      
          [index: number]: number;
      }
      
      interface Float64ArrayConstructor {
          prototype: Float64Array;
          new (length: number): Float64Array;
          new (array: Float64Array): Float64Array;
          new (array: number[]): Float64Array;
          new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float64Array;
      
          /**
            * The size in bytes of each element in the array. 
            */
          BYTES_PER_ELEMENT: number;
      
          /**
            * Returns a new array from a set of elements.
            * @param items A set of elements to include in the new array object.
            */
          of(...items: number[]): Float64Array;
      }
      declare var Float64Array: Float64ArrayConstructor;/////////////////////////////
      /// ECMAScript Internationalization API 
      /////////////////////////////
      
      declare module Intl {
          interface CollatorOptions {
              usage?: string;
              localeMatcher?: string;
              numeric?: boolean;
              caseFirst?: string;
              sensitivity?: string;
              ignorePunctuation?: boolean;
          }
      
          interface ResolvedCollatorOptions {
              locale: string;
              usage: string;
              sensitivity: string;
              ignorePunctuation: boolean;
              collation: string;
              caseFirst: string;
              numeric: boolean;
          }
      
          interface Collator {
              compare(x: string, y: string): number;
              resolvedOptions(): ResolvedCollatorOptions;
          }
          var Collator: {
              new (locales?: string[], options?: CollatorOptions): Collator;
              new (locale?: string, options?: CollatorOptions): Collator;
              (locales?: string[], options?: CollatorOptions): Collator;
              (locale?: string, options?: CollatorOptions): Collator;
              supportedLocalesOf(locales: string[], options?: CollatorOptions): string[];
              supportedLocalesOf(locale: string, options?: CollatorOptions): string[];
          }
      
          interface NumberFormatOptions {
              localeMatcher?: string;
              style?: string;
              currency?: string;
              currencyDisplay?: string;
              useGrouping?: boolean;
          }
      
          interface ResolvedNumberFormatOptions {
              locale: string;
              numberingSystem: string;
              style: string;
              currency?: string;
              currencyDisplay?: string;
              minimumintegerDigits: number;
              minimumFractionDigits: number;
              maximumFractionDigits: number;
              minimumSignificantDigits?: number;
              maximumSignificantDigits?: number;
              useGrouping: boolean;
          }
      
          interface NumberFormat {
              format(value: number): string;
              resolvedOptions(): ResolvedNumberFormatOptions;
          }
          var NumberFormat: {
              new (locales?: string[], options?: NumberFormatOptions): Collator;
              new (locale?: string, options?: NumberFormatOptions): Collator;
              (locales?: string[], options?: NumberFormatOptions): Collator;
              (locale?: string, options?: NumberFormatOptions): Collator;
              supportedLocalesOf(locales: string[], options?: NumberFormatOptions): string[];
              supportedLocalesOf(locale: string, options?: NumberFormatOptions): string[];
          }
      
          interface DateTimeFormatOptions {
              localeMatcher?: string;
              weekday?: string;
              era?: string;
              year?: string;
              month?: string;
              day?: string;
              hour?: string;
              minute?: string;
              second?: string;
              timeZoneName?: string;
              formatMatcher?: string;
              hour12?: boolean;
          }
      
          interface ResolvedDateTimeFormatOptions {
              locale: string;
              calendar: string;
              numberingSystem: string;
              timeZone: string;
              hour12?: boolean;
              weekday?: string;
              era?: string;
              year?: string;
              month?: string;
              day?: string;
              hour?: string;
              minute?: string;
              second?: string;
              timeZoneName?: string;
          }
      
          interface DateTimeFormat {
              format(date: number): string;
              resolvedOptions(): ResolvedDateTimeFormatOptions;
          }
          var DateTimeFormat: {
              new (locales?: string[], options?: DateTimeFormatOptions): Collator;
              new (locale?: string, options?: DateTimeFormatOptions): Collator;
              (locales?: string[], options?: DateTimeFormatOptions): Collator;
              (locale?: string, options?: DateTimeFormatOptions): Collator;
              supportedLocalesOf(locales: string[], options?: DateTimeFormatOptions): string[];
              supportedLocalesOf(locale: string, options?: DateTimeFormatOptions): string[];
          }
      }
      
      interface String {
          /**
            * Determines whether two strings are equivalent in the current locale.
            * @param that String to compare to target string
            * @param locales An array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. This parameter must conform to BCP 47 standards; see the Intl.Collator object for details.
            * @param options An object that contains one or more properties that specify comparison options. see the Intl.Collator object for details.
            */
          localeCompare(that: string, locales: string[], options?: Intl.CollatorOptions): number;
      
          /**
            * Determines whether two strings are equivalent in the current locale.
            * @param that String to compare to target string
            * @param locale Locale tag. If you omit this parameter, the default locale of the JavaScript runtime is used. This parameter must conform to BCP 47 standards; see the Intl.Collator object for details.
            * @param options An object that contains one or more properties that specify comparison options. see the Intl.Collator object for details.
            */
          localeCompare(that: string, locale: string, options?: Intl.CollatorOptions): number;
      }
      
      interface Number {
          /**
            * Converts a number to a string by using the current or specified locale. 
            * @param locales An array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.
            * @param options An object that contains one or more properties that specify comparison options.
            */
          toLocaleString(locales?: string[], options?: Intl.NumberFormatOptions): string;
      
          /**
            * Converts a number to a string by using the current or specified locale. 
            * @param locale Locale tag. If you omit this parameter, the default locale of the JavaScript runtime is used.
            * @param options An object that contains one or more properties that specify comparison options.
            */
          toLocaleString(locale?: string, options?: Intl.NumberFormatOptions): string;
      }
      
      interface Date {
          /**
            * Converts a date to a string by using the current or specified locale.  
            * @param locales An array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.
            * @param options An object that contains one or more properties that specify comparison options.
            */
          toLocaleString(locales?: string[], options?: Intl.DateTimeFormatOptions): string;
      
          /**
            * Converts a date to a string by using the current or specified locale.  
            * @param locale Locale tag. If you omit this parameter, the default locale of the JavaScript runtime is used.
            * @param options An object that contains one or more properties that specify comparison options.
            */
          toLocaleString(locale?: string, options?: Intl.DateTimeFormatOptions): string;
      }
      
      
      /////////////////////////////
      /// IE DOM APIs
      /////////////////////////////
      
      interface Algorithm {
          name?: string;
      }
      
      interface AriaRequestEventInit extends EventInit {
          attributeName?: string;
          attributeValue?: string;
      }
      
      interface ClipboardEventInit extends EventInit {
          data?: string;
          dataType?: string;
      }
      
      interface CommandEventInit extends EventInit {
          commandName?: string;
          detail?: string;
      }
      
      interface CompositionEventInit extends UIEventInit {
          data?: string;
      }
      
      interface ConfirmSiteSpecificExceptionsInformation extends ExceptionInformation {
          arrayOfDomainStrings?: string[];
      }
      
      interface CustomEventInit extends EventInit {
          detail?: any;
      }
      
      interface DeviceAccelerationDict {
          x?: number;
          y?: number;
          z?: number;
      }
      
      interface DeviceRotationRateDict {
          alpha?: number;
          beta?: number;
          gamma?: number;
      }
      
      interface EventInit {
          bubbles?: boolean;
          cancelable?: boolean;
      }
      
      interface ExceptionInformation {
          domain?: string;
      }
      
      interface FocusEventInit extends UIEventInit {
          relatedTarget?: EventTarget;
      }
      
      interface HashChangeEventInit extends EventInit {
          newURL?: string;
          oldURL?: string;
      }
      
      interface KeyAlgorithm {
          name?: string;
      }
      
      interface KeyboardEventInit extends SharedKeyboardAndMouseEventInit {
          key?: string;
          location?: number;
          repeat?: boolean;
      }
      
      interface MouseEventInit extends SharedKeyboardAndMouseEventInit {
          screenX?: number;
          screenY?: number;
          clientX?: number;
          clientY?: number;
          button?: number;
          buttons?: number;
          relatedTarget?: EventTarget;
      }
      
      interface MsZoomToOptions {
          contentX?: number;
          contentY?: number;
          viewportX?: string;
          viewportY?: string;
          scaleFactor?: number;
          animate?: string;
      }
      
      interface MutationObserverInit {
          childList?: boolean;
          attributes?: boolean;
          characterData?: boolean;
          subtree?: boolean;
          attributeOldValue?: boolean;
          characterDataOldValue?: boolean;
          attributeFilter?: string[];
      }
      
      interface ObjectURLOptions {
          oneTimeOnly?: boolean;
      }
      
      interface PointerEventInit extends MouseEventInit {
          pointerId?: number;
          width?: number;
          height?: number;
          pressure?: number;
          tiltX?: number;
          tiltY?: number;
          pointerType?: string;
          isPrimary?: boolean;
      }
      
      interface PositionOptions {
          enableHighAccuracy?: boolean;
          timeout?: number;
          maximumAge?: number;
      }
      
      interface SharedKeyboardAndMouseEventInit extends UIEventInit {
          ctrlKey?: boolean;
          shiftKey?: boolean;
          altKey?: boolean;
          metaKey?: boolean;
          keyModifierStateAltGraph?: boolean;
          keyModifierStateCapsLock?: boolean;
          keyModifierStateFn?: boolean;
          keyModifierStateFnLock?: boolean;
          keyModifierStateHyper?: boolean;
          keyModifierStateNumLock?: boolean;
          keyModifierStateOS?: boolean;
          keyModifierStateScrollLock?: boolean;
          keyModifierStateSuper?: boolean;
          keyModifierStateSymbol?: boolean;
          keyModifierStateSymbolLock?: boolean;
      }
      
      interface StoreExceptionsInformation extends ExceptionInformation {
          siteName?: string;
          explanationString?: string;
          detailURI?: string;
      }
      
      interface StoreSiteSpecificExceptionsInformation extends StoreExceptionsInformation {
          arrayOfDomainStrings?: string[];
      }
      
      interface UIEventInit extends EventInit {
          view?: Window;
          detail?: number;
      }
      
      interface WebGLContextAttributes {
          alpha?: boolean;
          depth?: boolean;
          stencil?: boolean;
          antialias?: boolean;
          premultipliedAlpha?: boolean;
          preserveDrawingBuffer?: boolean;
      }
      
      interface WebGLContextEventInit extends EventInit {
          statusMessage?: string;
      }
      
      interface WheelEventInit extends MouseEventInit {
          deltaX?: number;
          deltaY?: number;
          deltaZ?: number;
          deltaMode?: number;
      }
      
      interface EventListener {
          (evt: Event): void;
      }
      
      interface ANGLE_instanced_arrays {
          drawArraysInstancedANGLE(mode: number, first: number, count: number, primcount: number): void;
          drawElementsInstancedANGLE(mode: number, count: number, type: number, offset: number, primcount: number): void;
          vertexAttribDivisorANGLE(index: number, divisor: number): void;
          VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE: number;
      }
      
      declare var ANGLE_instanced_arrays: {
          prototype: ANGLE_instanced_arrays;
          new(): ANGLE_instanced_arrays;
          VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE: number;
      }
      
      interface AnalyserNode extends AudioNode {
          fftSize: number;
          frequencyBinCount: number;
          maxDecibels: number;
          minDecibels: number;
          smoothingTimeConstant: number;
          getByteFrequencyData(array: Uint8Array): void;
          getByteTimeDomainData(array: Uint8Array): void;
          getFloatFrequencyData(array: any): void;
          getFloatTimeDomainData(array: any): void;
      }
      
      declare var AnalyserNode: {
          prototype: AnalyserNode;
          new(): AnalyserNode;
      }
      
      interface AnimationEvent extends Event {
          animationName: string;
          elapsedTime: number;
          initAnimationEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, animationNameArg: string, elapsedTimeArg: number): void;
      }
      
      declare var AnimationEvent: {
          prototype: AnimationEvent;
          new(): AnimationEvent;
      }
      
      interface ApplicationCache extends EventTarget {
          oncached: (ev: Event) => any;
          onchecking: (ev: Event) => any;
          ondownloading: (ev: Event) => any;
          onerror: (ev: Event) => any;
          onnoupdate: (ev: Event) => any;
          onobsolete: (ev: Event) => any;
          onprogress: (ev: ProgressEvent) => any;
          onupdateready: (ev: Event) => any;
          status: number;
          abort(): void;
          swapCache(): void;
          update(): void;
          CHECKING: number;
          DOWNLOADING: number;
          IDLE: number;
          OBSOLETE: number;
          UNCACHED: number;
          UPDATEREADY: number;
          addEventListener(type: "cached", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "checking", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "downloading", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "error", listener: (ev: ErrorEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "noupdate", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "obsolete", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "progress", listener: (ev: ProgressEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "updateready", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var ApplicationCache: {
          prototype: ApplicationCache;
          new(): ApplicationCache;
          CHECKING: number;
          DOWNLOADING: number;
          IDLE: number;
          OBSOLETE: number;
          UNCACHED: number;
          UPDATEREADY: number;
      }
      
      interface AriaRequestEvent extends Event {
          attributeName: string;
          attributeValue: string;
      }
      
      declare var AriaRequestEvent: {
          prototype: AriaRequestEvent;
          new(type: string, eventInitDict?: AriaRequestEventInit): AriaRequestEvent;
      }
      
      interface Attr extends Node {
          name: string;
          ownerElement: Element;
          specified: boolean;
          value: string;
      }
      
      declare var Attr: {
          prototype: Attr;
          new(): Attr;
      }
      
      interface AudioBuffer {
          duration: number;
          length: number;
          numberOfChannels: number;
          sampleRate: number;
          getChannelData(channel: number): any;
      }
      
      declare var AudioBuffer: {
          prototype: AudioBuffer;
          new(): AudioBuffer;
      }
      
      interface AudioBufferSourceNode extends AudioNode {
          buffer: AudioBuffer;
          loop: boolean;
          loopEnd: number;
          loopStart: number;
          onended: (ev: Event) => any;
          playbackRate: AudioParam;
          start(when?: number, offset?: number, duration?: number): void;
          stop(when?: number): void;
          addEventListener(type: "ended", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var AudioBufferSourceNode: {
          prototype: AudioBufferSourceNode;
          new(): AudioBufferSourceNode;
      }
      
      interface AudioContext extends EventTarget {
          currentTime: number;
          destination: AudioDestinationNode;
          listener: AudioListener;
          sampleRate: number;
          createAnalyser(): AnalyserNode;
          createBiquadFilter(): BiquadFilterNode;
          createBuffer(numberOfChannels: number, length: number, sampleRate: number): AudioBuffer;
          createBufferSource(): AudioBufferSourceNode;
          createChannelMerger(numberOfInputs?: number): ChannelMergerNode;
          createChannelSplitter(numberOfOutputs?: number): ChannelSplitterNode;
          createConvolver(): ConvolverNode;
          createDelay(maxDelayTime?: number): DelayNode;
          createDynamicsCompressor(): DynamicsCompressorNode;
          createGain(): GainNode;
          createMediaElementSource(mediaElement: HTMLMediaElement): MediaElementAudioSourceNode;
          createOscillator(): OscillatorNode;
          createPanner(): PannerNode;
          createPeriodicWave(real: any, imag: any): PeriodicWave;
          createScriptProcessor(bufferSize?: number, numberOfInputChannels?: number, numberOfOutputChannels?: number): ScriptProcessorNode;
          createStereoPanner(): StereoPannerNode;
          createWaveShaper(): WaveShaperNode;
          decodeAudioData(audioData: ArrayBuffer, successCallback: DecodeSuccessCallback, errorCallback?: DecodeErrorCallback): void;
      }
      
      declare var AudioContext: {
          prototype: AudioContext;
          new(): AudioContext;
      }
      
      interface AudioDestinationNode extends AudioNode {
          maxChannelCount: number;
      }
      
      declare var AudioDestinationNode: {
          prototype: AudioDestinationNode;
          new(): AudioDestinationNode;
      }
      
      interface AudioListener {
          dopplerFactor: number;
          speedOfSound: number;
          setOrientation(x: number, y: number, z: number, xUp: number, yUp: number, zUp: number): void;
          setPosition(x: number, y: number, z: number): void;
          setVelocity(x: number, y: number, z: number): void;
      }
      
      declare var AudioListener: {
          prototype: AudioListener;
          new(): AudioListener;
      }
      
      interface AudioNode extends EventTarget {
          channelCount: number;
          channelCountMode: string;
          channelInterpretation: string;
          context: AudioContext;
          numberOfInputs: number;
          numberOfOutputs: number;
          connect(destination: AudioNode, output?: number, input?: number): void;
          disconnect(output?: number): void;
      }
      
      declare var AudioNode: {
          prototype: AudioNode;
          new(): AudioNode;
      }
      
      interface AudioParam {
          defaultValue: number;
          value: number;
          cancelScheduledValues(startTime: number): void;
          exponentialRampToValueAtTime(value: number, endTime: number): void;
          linearRampToValueAtTime(value: number, endTime: number): void;
          setTargetAtTime(target: number, startTime: number, timeConstant: number): void;
          setValueAtTime(value: number, startTime: number): void;
          setValueCurveAtTime(values: any, startTime: number, duration: number): void;
      }
      
      declare var AudioParam: {
          prototype: AudioParam;
          new(): AudioParam;
      }
      
      interface AudioProcessingEvent extends Event {
          inputBuffer: AudioBuffer;
          outputBuffer: AudioBuffer;
          playbackTime: number;
      }
      
      declare var AudioProcessingEvent: {
          prototype: AudioProcessingEvent;
          new(): AudioProcessingEvent;
      }
      
      interface AudioTrack {
          enabled: boolean;
          id: string;
          kind: string;
          label: string;
          language: string;
          sourceBuffer: SourceBuffer;
      }
      
      declare var AudioTrack: {
          prototype: AudioTrack;
          new(): AudioTrack;
      }
      
      interface AudioTrackList extends EventTarget {
          length: number;
          onaddtrack: (ev: TrackEvent) => any;
          onchange: (ev: Event) => any;
          onremovetrack: (ev: TrackEvent) => any;
          getTrackById(id: string): AudioTrack;
          item(index: number): AudioTrack;
          addEventListener(type: "addtrack", listener: (ev: TrackEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "change", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "removetrack", listener: (ev: TrackEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
          [index: number]: AudioTrack;
      }
      
      declare var AudioTrackList: {
          prototype: AudioTrackList;
          new(): AudioTrackList;
      }
      
      interface BarProp {
          visible: boolean;
      }
      
      declare var BarProp: {
          prototype: BarProp;
          new(): BarProp;
      }
      
      interface BeforeUnloadEvent extends Event {
          returnValue: any;
      }
      
      declare var BeforeUnloadEvent: {
          prototype: BeforeUnloadEvent;
          new(): BeforeUnloadEvent;
      }
      
      interface BiquadFilterNode extends AudioNode {
          Q: AudioParam;
          detune: AudioParam;
          frequency: AudioParam;
          gain: AudioParam;
          type: string;
          getFrequencyResponse(frequencyHz: any, magResponse: any, phaseResponse: any): void;
      }
      
      declare var BiquadFilterNode: {
          prototype: BiquadFilterNode;
          new(): BiquadFilterNode;
      }
      
      interface Blob {
          size: number;
          type: string;
          msClose(): void;
          msDetachStream(): any;
          slice(start?: number, end?: number, contentType?: string): Blob;
      }
      
      declare var Blob: {
          prototype: Blob;
          new (blobParts?: any[], options?: BlobPropertyBag): Blob;
      }
      
      interface CDATASection extends Text {
      }
      
      declare var CDATASection: {
          prototype: CDATASection;
          new(): CDATASection;
      }
      
      interface CSS {
          supports(property: string, value?: string): boolean;
      }
      declare var CSS: CSS;
      
      interface CSSConditionRule extends CSSGroupingRule {
          conditionText: string;
      }
      
      declare var CSSConditionRule: {
          prototype: CSSConditionRule;
          new(): CSSConditionRule;
      }
      
      interface CSSFontFaceRule extends CSSRule {
          style: CSSStyleDeclaration;
      }
      
      declare var CSSFontFaceRule: {
          prototype: CSSFontFaceRule;
          new(): CSSFontFaceRule;
      }
      
      interface CSSGroupingRule extends CSSRule {
          cssRules: CSSRuleList;
          deleteRule(index?: number): void;
          insertRule(rule: string, index?: number): number;
      }
      
      declare var CSSGroupingRule: {
          prototype: CSSGroupingRule;
          new(): CSSGroupingRule;
      }
      
      interface CSSImportRule extends CSSRule {
          href: string;
          media: MediaList;
          styleSheet: CSSStyleSheet;
      }
      
      declare var CSSImportRule: {
          prototype: CSSImportRule;
          new(): CSSImportRule;
      }
      
      interface CSSKeyframeRule extends CSSRule {
          keyText: string;
          style: CSSStyleDeclaration;
      }
      
      declare var CSSKeyframeRule: {
          prototype: CSSKeyframeRule;
          new(): CSSKeyframeRule;
      }
      
      interface CSSKeyframesRule extends CSSRule {
          cssRules: CSSRuleList;
          name: string;
          appendRule(rule: string): void;
          deleteRule(rule: string): void;
          findRule(rule: string): CSSKeyframeRule;
      }
      
      declare var CSSKeyframesRule: {
          prototype: CSSKeyframesRule;
          new(): CSSKeyframesRule;
      }
      
      interface CSSMediaRule extends CSSConditionRule {
          media: MediaList;
      }
      
      declare var CSSMediaRule: {
          prototype: CSSMediaRule;
          new(): CSSMediaRule;
      }
      
      interface CSSNamespaceRule extends CSSRule {
          namespaceURI: string;
          prefix: string;
      }
      
      declare var CSSNamespaceRule: {
          prototype: CSSNamespaceRule;
          new(): CSSNamespaceRule;
      }
      
      interface CSSPageRule extends CSSRule {
          pseudoClass: string;
          selector: string;
          selectorText: string;
          style: CSSStyleDeclaration;
      }
      
      declare var CSSPageRule: {
          prototype: CSSPageRule;
          new(): CSSPageRule;
      }
      
      interface CSSRule {
          cssText: string;
          parentRule: CSSRule;
          parentStyleSheet: CSSStyleSheet;
          type: number;
          CHARSET_RULE: number;
          FONT_FACE_RULE: number;
          IMPORT_RULE: number;
          KEYFRAMES_RULE: number;
          KEYFRAME_RULE: number;
          MEDIA_RULE: number;
          NAMESPACE_RULE: number;
          PAGE_RULE: number;
          STYLE_RULE: number;
          SUPPORTS_RULE: number;
          UNKNOWN_RULE: number;
          VIEWPORT_RULE: number;
      }
      
      declare var CSSRule: {
          prototype: CSSRule;
          new(): CSSRule;
          CHARSET_RULE: number;
          FONT_FACE_RULE: number;
          IMPORT_RULE: number;
          KEYFRAMES_RULE: number;
          KEYFRAME_RULE: number;
          MEDIA_RULE: number;
          NAMESPACE_RULE: number;
          PAGE_RULE: number;
          STYLE_RULE: number;
          SUPPORTS_RULE: number;
          UNKNOWN_RULE: number;
          VIEWPORT_RULE: number;
      }
      
      interface CSSRuleList {
          length: number;
          item(index: number): CSSRule;
          [index: number]: CSSRule;
      }
      
      declare var CSSRuleList: {
          prototype: CSSRuleList;
          new(): CSSRuleList;
      }
      
      interface CSSStyleDeclaration {
          alignContent: string;
          alignItems: string;
          alignSelf: string;
          alignmentBaseline: string;
          animation: string;
          animationDelay: string;
          animationDirection: string;
          animationDuration: string;
          animationFillMode: string;
          animationIterationCount: string;
          animationName: string;
          animationPlayState: string;
          animationTimingFunction: string;
          backfaceVisibility: string;
          background: string;
          backgroundAttachment: string;
          backgroundClip: string;
          backgroundColor: string;
          backgroundImage: string;
          backgroundOrigin: string;
          backgroundPosition: string;
          backgroundPositionX: string;
          backgroundPositionY: string;
          backgroundRepeat: string;
          backgroundSize: string;
          baselineShift: string;
          border: string;
          borderBottom: string;
          borderBottomColor: string;
          borderBottomLeftRadius: string;
          borderBottomRightRadius: string;
          borderBottomStyle: string;
          borderBottomWidth: string;
          borderCollapse: string;
          borderColor: string;
          borderImage: string;
          borderImageOutset: string;
          borderImageRepeat: string;
          borderImageSlice: string;
          borderImageSource: string;
          borderImageWidth: string;
          borderLeft: string;
          borderLeftColor: string;
          borderLeftStyle: string;
          borderLeftWidth: string;
          borderRadius: string;
          borderRight: string;
          borderRightColor: string;
          borderRightStyle: string;
          borderRightWidth: string;
          borderSpacing: string;
          borderStyle: string;
          borderTop: string;
          borderTopColor: string;
          borderTopLeftRadius: string;
          borderTopRightRadius: string;
          borderTopStyle: string;
          borderTopWidth: string;
          borderWidth: string;
          bottom: string;
          boxShadow: string;
          boxSizing: string;
          breakAfter: string;
          breakBefore: string;
          breakInside: string;
          captionSide: string;
          clear: string;
          clip: string;
          clipPath: string;
          clipRule: string;
          color: string;
          colorInterpolationFilters: string;
          columnCount: any;
          columnFill: string;
          columnGap: any;
          columnRule: string;
          columnRuleColor: any;
          columnRuleStyle: string;
          columnRuleWidth: any;
          columnSpan: string;
          columnWidth: any;
          columns: string;
          content: string;
          counterIncrement: string;
          counterReset: string;
          cssFloat: string;
          cssText: string;
          cursor: string;
          direction: string;
          display: string;
          dominantBaseline: string;
          emptyCells: string;
          enableBackground: string;
          fill: string;
          fillOpacity: string;
          fillRule: string;
          filter: string;
          flex: string;
          flexBasis: string;
          flexDirection: string;
          flexFlow: string;
          flexGrow: string;
          flexShrink: string;
          flexWrap: string;
          floodColor: string;
          floodOpacity: string;
          font: string;
          fontFamily: string;
          fontFeatureSettings: string;
          fontSize: string;
          fontSizeAdjust: string;
          fontStretch: string;
          fontStyle: string;
          fontVariant: string;
          fontWeight: string;
          glyphOrientationHorizontal: string;
          glyphOrientationVertical: string;
          height: string;
          imeMode: string;
          justifyContent: string;
          kerning: string;
          left: string;
          length: number;
          letterSpacing: string;
          lightingColor: string;
          lineHeight: string;
          listStyle: string;
          listStyleImage: string;
          listStylePosition: string;
          listStyleType: string;
          margin: string;
          marginBottom: string;
          marginLeft: string;
          marginRight: string;
          marginTop: string;
          marker: string;
          markerEnd: string;
          markerMid: string;
          markerStart: string;
          mask: string;
          maxHeight: string;
          maxWidth: string;
          minHeight: string;
          minWidth: string;
          msContentZoomChaining: string;
          msContentZoomLimit: string;
          msContentZoomLimitMax: any;
          msContentZoomLimitMin: any;
          msContentZoomSnap: string;
          msContentZoomSnapPoints: string;
          msContentZoomSnapType: string;
          msContentZooming: string;
          msFlowFrom: string;
          msFlowInto: string;
          msFontFeatureSettings: string;
          msGridColumn: any;
          msGridColumnAlign: string;
          msGridColumnSpan: any;
          msGridColumns: string;
          msGridRow: any;
          msGridRowAlign: string;
          msGridRowSpan: any;
          msGridRows: string;
          msHighContrastAdjust: string;
          msHyphenateLimitChars: string;
          msHyphenateLimitLines: any;
          msHyphenateLimitZone: any;
          msHyphens: string;
          msImeAlign: string;
          msOverflowStyle: string;
          msScrollChaining: string;
          msScrollLimit: string;
          msScrollLimitXMax: any;
          msScrollLimitXMin: any;
          msScrollLimitYMax: any;
          msScrollLimitYMin: any;
          msScrollRails: string;
          msScrollSnapPointsX: string;
          msScrollSnapPointsY: string;
          msScrollSnapType: string;
          msScrollSnapX: string;
          msScrollSnapY: string;
          msScrollTranslation: string;
          msTextCombineHorizontal: string;
          msTextSizeAdjust: any;
          msTouchAction: string;
          msTouchSelect: string;
          msUserSelect: string;
          msWrapFlow: string;
          msWrapMargin: any;
          msWrapThrough: string;
          opacity: string;
          order: string;
          orphans: string;
          outline: string;
          outlineColor: string;
          outlineStyle: string;
          outlineWidth: string;
          overflow: string;
          overflowX: string;
          overflowY: string;
          padding: string;
          paddingBottom: string;
          paddingLeft: string;
          paddingRight: string;
          paddingTop: string;
          pageBreakAfter: string;
          pageBreakBefore: string;
          pageBreakInside: string;
          parentRule: CSSRule;
          perspective: string;
          perspectiveOrigin: string;
          pointerEvents: string;
          position: string;
          quotes: string;
          right: string;
          rubyAlign: string;
          rubyOverhang: string;
          rubyPosition: string;
          stopColor: string;
          stopOpacity: string;
          stroke: string;
          strokeDasharray: string;
          strokeDashoffset: string;
          strokeLinecap: string;
          strokeLinejoin: string;
          strokeMiterlimit: string;
          strokeOpacity: string;
          strokeWidth: string;
          tableLayout: string;
          textAlign: string;
          textAlignLast: string;
          textAnchor: string;
          textDecoration: string;
          textFillColor: string;
          textIndent: string;
          textJustify: string;
          textKashida: string;
          textKashidaSpace: string;
          textOverflow: string;
          textShadow: string;
          textTransform: string;
          textUnderlinePosition: string;
          top: string;
          touchAction: string;
          transform: string;
          transformOrigin: string;
          transformStyle: string;
          transition: string;
          transitionDelay: string;
          transitionDuration: string;
          transitionProperty: string;
          transitionTimingFunction: string;
          unicodeBidi: string;
          verticalAlign: string;
          visibility: string;
          webkitAlignContent: string;
          webkitAlignItems: string;
          webkitAlignSelf: string;
          webkitAnimation: string;
          webkitAnimationDelay: string;
          webkitAnimationDirection: string;
          webkitAnimationDuration: string;
          webkitAnimationFillMode: string;
          webkitAnimationIterationCount: string;
          webkitAnimationName: string;
          webkitAnimationPlayState: string;
          webkitAnimationTimingFunction: string;
          webkitAppearance: string;
          webkitBackfaceVisibility: string;
          webkitBackground: string;
          webkitBackgroundAttachment: string;
          webkitBackgroundClip: string;
          webkitBackgroundColor: string;
          webkitBackgroundImage: string;
          webkitBackgroundOrigin: string;
          webkitBackgroundPosition: string;
          webkitBackgroundPositionX: string;
          webkitBackgroundPositionY: string;
          webkitBackgroundRepeat: string;
          webkitBackgroundSize: string;
          webkitBorderBottomLeftRadius: string;
          webkitBorderBottomRightRadius: string;
          webkitBorderImage: string;
          webkitBorderImageOutset: string;
          webkitBorderImageRepeat: string;
          webkitBorderImageSlice: string;
          webkitBorderImageSource: string;
          webkitBorderImageWidth: string;
          webkitBorderRadius: string;
          webkitBorderTopLeftRadius: string;
          webkitBorderTopRightRadius: string;
          webkitBoxAlign: string;
          webkitBoxDirection: string;
          webkitBoxFlex: string;
          webkitBoxOrdinalGroup: string;
          webkitBoxOrient: string;
          webkitBoxPack: string;
          webkitBoxSizing: string;
          webkitColumnBreakAfter: string;
          webkitColumnBreakBefore: string;
          webkitColumnBreakInside: string;
          webkitColumnCount: any;
          webkitColumnGap: any;
          webkitColumnRule: string;
          webkitColumnRuleColor: any;
          webkitColumnRuleStyle: string;
          webkitColumnRuleWidth: any;
          webkitColumnSpan: string;
          webkitColumnWidth: any;
          webkitColumns: string;
          webkitFilter: string;
          webkitFlex: string;
          webkitFlexBasis: string;
          webkitFlexDirection: string;
          webkitFlexFlow: string;
          webkitFlexGrow: string;
          webkitFlexShrink: string;
          webkitFlexWrap: string;
          webkitJustifyContent: string;
          webkitOrder: string;
          webkitPerspective: string;
          webkitPerspectiveOrigin: string;
          webkitTapHighlightColor: string;
          webkitTextFillColor: string;
          webkitTextSizeAdjust: any;
          webkitTransform: string;
          webkitTransformOrigin: string;
          webkitTransformStyle: string;
          webkitTransition: string;
          webkitTransitionDelay: string;
          webkitTransitionDuration: string;
          webkitTransitionProperty: string;
          webkitTransitionTimingFunction: string;
          webkitUserSelect: string;
          webkitWritingMode: string;
          whiteSpace: string;
          widows: string;
          width: string;
          wordBreak: string;
          wordSpacing: string;
          wordWrap: string;
          writingMode: string;
          zIndex: string;
          zoom: string;
          getPropertyPriority(propertyName: string): string;
          getPropertyValue(propertyName: string): string;
          item(index: number): string;
          removeProperty(propertyName: string): string;
          setProperty(propertyName: string, value: string, priority?: string): void;
          [index: number]: string;
      }
      
      declare var CSSStyleDeclaration: {
          prototype: CSSStyleDeclaration;
          new(): CSSStyleDeclaration;
      }
      
      interface CSSStyleRule extends CSSRule {
          readOnly: boolean;
          selectorText: string;
          style: CSSStyleDeclaration;
      }
      
      declare var CSSStyleRule: {
          prototype: CSSStyleRule;
          new(): CSSStyleRule;
      }
      
      interface CSSStyleSheet extends StyleSheet {
          cssRules: CSSRuleList;
          cssText: string;
          href: string;
          id: string;
          imports: StyleSheetList;
          isAlternate: boolean;
          isPrefAlternate: boolean;
          ownerRule: CSSRule;
          owningElement: Element;
          pages: StyleSheetPageList;
          readOnly: boolean;
          rules: CSSRuleList;
          addImport(bstrURL: string, lIndex?: number): number;
          addPageRule(bstrSelector: string, bstrStyle: string, lIndex?: number): number;
          addRule(bstrSelector: string, bstrStyle?: string, lIndex?: number): number;
          deleteRule(index?: number): void;
          insertRule(rule: string, index?: number): number;
          removeImport(lIndex: number): void;
          removeRule(lIndex: number): void;
      }
      
      declare var CSSStyleSheet: {
          prototype: CSSStyleSheet;
          new(): CSSStyleSheet;
      }
      
      interface CSSSupportsRule extends CSSConditionRule {
      }
      
      declare var CSSSupportsRule: {
          prototype: CSSSupportsRule;
          new(): CSSSupportsRule;
      }
      
      interface CanvasGradient {
          addColorStop(offset: number, color: string): void;
      }
      
      declare var CanvasGradient: {
          prototype: CanvasGradient;
          new(): CanvasGradient;
      }
      
      interface CanvasPattern {
      }
      
      declare var CanvasPattern: {
          prototype: CanvasPattern;
          new(): CanvasPattern;
      }
      
      interface CanvasRenderingContext2D {
          canvas: HTMLCanvasElement;
          fillStyle: any;
          font: string;
          globalAlpha: number;
          globalCompositeOperation: string;
          lineCap: string;
          lineDashOffset: number;
          lineJoin: string;
          lineWidth: number;
          miterLimit: number;
          msFillRule: string;
          msImageSmoothingEnabled: boolean;
          shadowBlur: number;
          shadowColor: string;
          shadowOffsetX: number;
          shadowOffsetY: number;
          strokeStyle: any;
          textAlign: string;
          textBaseline: string;
          arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void;
          arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;
          beginPath(): void;
          bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;
          clearRect(x: number, y: number, w: number, h: number): void;
          clip(fillRule?: string): void;
          closePath(): void;
          createImageData(imageDataOrSw: number, sh?: number): ImageData;
          createImageData(imageDataOrSw: ImageData, sh?: number): ImageData;
          createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient;
          createPattern(image: HTMLImageElement, repetition: string): CanvasPattern;
          createPattern(image: HTMLCanvasElement, repetition: string): CanvasPattern;
          createPattern(image: HTMLVideoElement, repetition: string): CanvasPattern;
          createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient;
          drawImage(image: HTMLImageElement, offsetX: number, offsetY: number, width?: number, height?: number, canvasOffsetX?: number, canvasOffsetY?: number, canvasImageWidth?: number, canvasImageHeight?: number): void;
          drawImage(image: HTMLCanvasElement, offsetX: number, offsetY: number, width?: number, height?: number, canvasOffsetX?: number, canvasOffsetY?: number, canvasImageWidth?: number, canvasImageHeight?: number): void;
          drawImage(image: HTMLVideoElement, offsetX: number, offsetY: number, width?: number, height?: number, canvasOffsetX?: number, canvasOffsetY?: number, canvasImageWidth?: number, canvasImageHeight?: number): void;
          fill(fillRule?: string): void;
          fillRect(x: number, y: number, w: number, h: number): void;
          fillText(text: string, x: number, y: number, maxWidth?: number): void;
          getImageData(sx: number, sy: number, sw: number, sh: number): ImageData;
          getLineDash(): number[];
          isPointInPath(x: number, y: number, fillRule?: string): boolean;
          lineTo(x: number, y: number): void;
          measureText(text: string): TextMetrics;
          moveTo(x: number, y: number): void;
          putImageData(imagedata: ImageData, dx: number, dy: number, dirtyX?: number, dirtyY?: number, dirtyWidth?: number, dirtyHeight?: number): void;
          quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;
          rect(x: number, y: number, w: number, h: number): void;
          restore(): void;
          rotate(angle: number): void;
          save(): void;
          scale(x: number, y: number): void;
          setLineDash(segments: number[]): void;
          setTransform(m11: number, m12: number, m21: number, m22: number, dx: number, dy: number): void;
          stroke(): void;
          strokeRect(x: number, y: number, w: number, h: number): void;
          strokeText(text: string, x: number, y: number, maxWidth?: number): void;
          transform(m11: number, m12: number, m21: number, m22: number, dx: number, dy: number): void;
          translate(x: number, y: number): void;
      }
      
      declare var CanvasRenderingContext2D: {
          prototype: CanvasRenderingContext2D;
          new(): CanvasRenderingContext2D;
      }
      
      interface ChannelMergerNode extends AudioNode {
      }
      
      declare var ChannelMergerNode: {
          prototype: ChannelMergerNode;
          new(): ChannelMergerNode;
      }
      
      interface ChannelSplitterNode extends AudioNode {
      }
      
      declare var ChannelSplitterNode: {
          prototype: ChannelSplitterNode;
          new(): ChannelSplitterNode;
      }
      
      interface CharacterData extends Node, ChildNode {
          data: string;
          length: number;
          appendData(arg: string): void;
          deleteData(offset: number, count: number): void;
          insertData(offset: number, arg: string): void;
          replaceData(offset: number, count: number, arg: string): void;
          substringData(offset: number, count: number): string;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var CharacterData: {
          prototype: CharacterData;
          new(): CharacterData;
      }
      
      interface ClientRect {
          bottom: number;
          height: number;
          left: number;
          right: number;
          top: number;
          width: number;
      }
      
      declare var ClientRect: {
          prototype: ClientRect;
          new(): ClientRect;
      }
      
      interface ClientRectList {
          length: number;
          item(index: number): ClientRect;
          [index: number]: ClientRect;
      }
      
      declare var ClientRectList: {
          prototype: ClientRectList;
          new(): ClientRectList;
      }
      
      interface ClipboardEvent extends Event {
          clipboardData: DataTransfer;
      }
      
      declare var ClipboardEvent: {
          prototype: ClipboardEvent;
          new(type: string, eventInitDict?: ClipboardEventInit): ClipboardEvent;
      }
      
      interface CloseEvent extends Event {
          code: number;
          reason: string;
          wasClean: boolean;
          initCloseEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, wasCleanArg: boolean, codeArg: number, reasonArg: string): void;
      }
      
      declare var CloseEvent: {
          prototype: CloseEvent;
          new(): CloseEvent;
      }
      
      interface CommandEvent extends Event {
          commandName: string;
          detail: string;
      }
      
      declare var CommandEvent: {
          prototype: CommandEvent;
          new(type: string, eventInitDict?: CommandEventInit): CommandEvent;
      }
      
      interface Comment extends CharacterData {
          text: string;
      }
      
      declare var Comment: {
          prototype: Comment;
          new(): Comment;
      }
      
      interface CompositionEvent extends UIEvent {
          data: string;
          locale: string;
          initCompositionEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, dataArg: string, locale: string): void;
      }
      
      declare var CompositionEvent: {
          prototype: CompositionEvent;
          new(typeArg: string, eventInitDict?: CompositionEventInit): CompositionEvent;
      }
      
      interface Console {
          assert(test?: boolean, message?: string, ...optionalParams: any[]): void;
          clear(): void;
          count(countTitle?: string): void;
          debug(message?: string, ...optionalParams: any[]): void;
          dir(value?: any, ...optionalParams: any[]): void;
          dirxml(value: any): void;
          error(message?: any, ...optionalParams: any[]): void;
          group(groupTitle?: string): void;
          groupCollapsed(groupTitle?: string): void;
          groupEnd(): void;
          info(message?: any, ...optionalParams: any[]): void;
          log(message?: any, ...optionalParams: any[]): void;
          msIsIndependentlyComposed(element: Element): boolean;
          profile(reportName?: string): void;
          profileEnd(): void;
          select(element: Element): void;
          time(timerName?: string): void;
          timeEnd(timerName?: string): void;
          trace(): void;
          warn(message?: any, ...optionalParams: any[]): void;
      }
      
      declare var Console: {
          prototype: Console;
          new(): Console;
      }
      
      interface ConvolverNode extends AudioNode {
          buffer: AudioBuffer;
          normalize: boolean;
      }
      
      declare var ConvolverNode: {
          prototype: ConvolverNode;
          new(): ConvolverNode;
      }
      
      interface Coordinates {
          accuracy: number;
          altitude: number;
          altitudeAccuracy: number;
          heading: number;
          latitude: number;
          longitude: number;
          speed: number;
      }
      
      declare var Coordinates: {
          prototype: Coordinates;
          new(): Coordinates;
      }
      
      interface Crypto extends Object, RandomSource {
          subtle: SubtleCrypto;
      }
      
      declare var Crypto: {
          prototype: Crypto;
          new(): Crypto;
      }
      
      interface CryptoKey {
          algorithm: KeyAlgorithm;
          extractable: boolean;
          type: string;
          usages: string[];
      }
      
      declare var CryptoKey: {
          prototype: CryptoKey;
          new(): CryptoKey;
      }
      
      interface CryptoKeyPair {
          privateKey: CryptoKey;
          publicKey: CryptoKey;
      }
      
      declare var CryptoKeyPair: {
          prototype: CryptoKeyPair;
          new(): CryptoKeyPair;
      }
      
      interface CustomEvent extends Event {
          detail: any;
          initCustomEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, detailArg: any): void;
      }
      
      declare var CustomEvent: {
          prototype: CustomEvent;
          new(typeArg: string, eventInitDict?: CustomEventInit): CustomEvent;
      }
      
      interface DOMError {
          name: string;
          toString(): string;
      }
      
      declare var DOMError: {
          prototype: DOMError;
          new(): DOMError;
      }
      
      interface DOMException {
          code: number;
          message: string;
          name: string;
          toString(): string;
          ABORT_ERR: number;
          DATA_CLONE_ERR: number;
          DOMSTRING_SIZE_ERR: number;
          HIERARCHY_REQUEST_ERR: number;
          INDEX_SIZE_ERR: number;
          INUSE_ATTRIBUTE_ERR: number;
          INVALID_ACCESS_ERR: number;
          INVALID_CHARACTER_ERR: number;
          INVALID_MODIFICATION_ERR: number;
          INVALID_NODE_TYPE_ERR: number;
          INVALID_STATE_ERR: number;
          NAMESPACE_ERR: number;
          NETWORK_ERR: number;
          NOT_FOUND_ERR: number;
          NOT_SUPPORTED_ERR: number;
          NO_DATA_ALLOWED_ERR: number;
          NO_MODIFICATION_ALLOWED_ERR: number;
          PARSE_ERR: number;
          QUOTA_EXCEEDED_ERR: number;
          SECURITY_ERR: number;
          SERIALIZE_ERR: number;
          SYNTAX_ERR: number;
          TIMEOUT_ERR: number;
          TYPE_MISMATCH_ERR: number;
          URL_MISMATCH_ERR: number;
          VALIDATION_ERR: number;
          WRONG_DOCUMENT_ERR: number;
      }
      
      declare var DOMException: {
          prototype: DOMException;
          new(): DOMException;
          ABORT_ERR: number;
          DATA_CLONE_ERR: number;
          DOMSTRING_SIZE_ERR: number;
          HIERARCHY_REQUEST_ERR: number;
          INDEX_SIZE_ERR: number;
          INUSE_ATTRIBUTE_ERR: number;
          INVALID_ACCESS_ERR: number;
          INVALID_CHARACTER_ERR: number;
          INVALID_MODIFICATION_ERR: number;
          INVALID_NODE_TYPE_ERR: number;
          INVALID_STATE_ERR: number;
          NAMESPACE_ERR: number;
          NETWORK_ERR: number;
          NOT_FOUND_ERR: number;
          NOT_SUPPORTED_ERR: number;
          NO_DATA_ALLOWED_ERR: number;
          NO_MODIFICATION_ALLOWED_ERR: number;
          PARSE_ERR: number;
          QUOTA_EXCEEDED_ERR: number;
          SECURITY_ERR: number;
          SERIALIZE_ERR: number;
          SYNTAX_ERR: number;
          TIMEOUT_ERR: number;
          TYPE_MISMATCH_ERR: number;
          URL_MISMATCH_ERR: number;
          VALIDATION_ERR: number;
          WRONG_DOCUMENT_ERR: number;
      }
      
      interface DOMImplementation {
          createDocument(namespaceURI: string, qualifiedName: string, doctype: DocumentType): Document;
          createDocumentType(qualifiedName: string, publicId: string, systemId: string): DocumentType;
          createHTMLDocument(title: string): Document;
          hasFeature(feature: string, version: string): boolean;
      }
      
      declare var DOMImplementation: {
          prototype: DOMImplementation;
          new(): DOMImplementation;
      }
      
      interface DOMParser {
          parseFromString(source: string, mimeType: string): Document;
      }
      
      declare var DOMParser: {
          prototype: DOMParser;
          new(): DOMParser;
      }
      
      interface DOMSettableTokenList extends DOMTokenList {
          value: string;
      }
      
      declare var DOMSettableTokenList: {
          prototype: DOMSettableTokenList;
          new(): DOMSettableTokenList;
      }
      
      interface DOMStringList {
          length: number;
          contains(str: string): boolean;
          item(index: number): string;
          [index: number]: string;
      }
      
      declare var DOMStringList: {
          prototype: DOMStringList;
          new(): DOMStringList;
      }
      
      interface DOMStringMap {
          [name: string]: string;
      }
      
      declare var DOMStringMap: {
          prototype: DOMStringMap;
          new(): DOMStringMap;
      }
      
      interface DOMTokenList {
          length: number;
          add(...token: string[]): void;
          contains(token: string): boolean;
          item(index: number): string;
          remove(...token: string[]): void;
          toString(): string;
          toggle(token: string, force?: boolean): boolean;
          [index: number]: string;
      }
      
      declare var DOMTokenList: {
          prototype: DOMTokenList;
          new(): DOMTokenList;
      }
      
      interface DataCue extends TextTrackCue {
          data: ArrayBuffer;
      }
      
      declare var DataCue: {
          prototype: DataCue;
          new(): DataCue;
      }
      
      interface DataTransfer {
          dropEffect: string;
          effectAllowed: string;
          files: FileList;
          items: DataTransferItemList;
          types: DOMStringList;
          clearData(format?: string): boolean;
          getData(format: string): string;
          setData(format: string, data: string): boolean;
      }
      
      declare var DataTransfer: {
          prototype: DataTransfer;
          new(): DataTransfer;
      }
      
      interface DataTransferItem {
          kind: string;
          type: string;
          getAsFile(): File;
          getAsString(_callback: FunctionStringCallback): void;
      }
      
      declare var DataTransferItem: {
          prototype: DataTransferItem;
          new(): DataTransferItem;
      }
      
      interface DataTransferItemList {
          length: number;
          add(data: File): DataTransferItem;
          clear(): void;
          item(index: number): File;
          remove(index: number): void;
          [index: number]: File;
      }
      
      declare var DataTransferItemList: {
          prototype: DataTransferItemList;
          new(): DataTransferItemList;
      }
      
      interface DeferredPermissionRequest {
          id: number;
          type: string;
          uri: string;
          allow(): void;
          deny(): void;
      }
      
      declare var DeferredPermissionRequest: {
          prototype: DeferredPermissionRequest;
          new(): DeferredPermissionRequest;
      }
      
      interface DelayNode extends AudioNode {
          delayTime: AudioParam;
      }
      
      declare var DelayNode: {
          prototype: DelayNode;
          new(): DelayNode;
      }
      
      interface DeviceAcceleration {
          x: number;
          y: number;
          z: number;
      }
      
      declare var DeviceAcceleration: {
          prototype: DeviceAcceleration;
          new(): DeviceAcceleration;
      }
      
      interface DeviceMotionEvent extends Event {
          acceleration: DeviceAcceleration;
          accelerationIncludingGravity: DeviceAcceleration;
          interval: number;
          rotationRate: DeviceRotationRate;
          initDeviceMotionEvent(type: string, bubbles: boolean, cancelable: boolean, acceleration: DeviceAccelerationDict, accelerationIncludingGravity: DeviceAccelerationDict, rotationRate: DeviceRotationRateDict, interval: number): void;
      }
      
      declare var DeviceMotionEvent: {
          prototype: DeviceMotionEvent;
          new(): DeviceMotionEvent;
      }
      
      interface DeviceOrientationEvent extends Event {
          absolute: boolean;
          alpha: number;
          beta: number;
          gamma: number;
          initDeviceOrientationEvent(type: string, bubbles: boolean, cancelable: boolean, alpha: number, beta: number, gamma: number, absolute: boolean): void;
      }
      
      declare var DeviceOrientationEvent: {
          prototype: DeviceOrientationEvent;
          new(): DeviceOrientationEvent;
      }
      
      interface DeviceRotationRate {
          alpha: number;
          beta: number;
          gamma: number;
      }
      
      declare var DeviceRotationRate: {
          prototype: DeviceRotationRate;
          new(): DeviceRotationRate;
      }
      
      interface Document extends Node, GlobalEventHandlers, NodeSelector, DocumentEvent {
          /**
            * Sets or gets the URL for the current document. 
            */
          URL: string;
          /**
            * Gets the URL for the document, stripped of any character encoding.
            */
          URLUnencoded: string;
          /**
            * Gets the object that has the focus when the parent document has focus.
            */
          activeElement: Element;
          /**
            * Sets or gets the color of all active links in the document.
            */
          alinkColor: string;
          /**
            * Returns a reference to the collection of elements contained by the object.
            */
          all: HTMLCollection;
          /**
            * Retrieves a collection of all a objects that have a name and/or id property. Objects in this collection are in HTML source order.
            */
          anchors: HTMLCollection;
          /**
            * Retrieves a collection of all applet objects in the document.
            */
          applets: HTMLCollection;
          /**
            * Deprecated. Sets or retrieves a value that indicates the background color behind the object. 
            */
          bgColor: string;
          /**
            * Specifies the beginning and end of the document body.
            */
          body: HTMLElement;
          characterSet: string;
          /**
            * Gets or sets the character set used to encode the object.
            */
          charset: string;
          /**
            * Gets a value that indicates whether standards-compliant mode is switched on for the object.
            */
          compatMode: string;
          cookie: string;
          /**
            * Gets the default character set from the current regional language settings.
            */
          defaultCharset: string;
          defaultView: Window;
          /**
            * Sets or gets a value that indicates whether the document can be edited.
            */
          designMode: string;
          /**
            * Sets or retrieves a value that indicates the reading order of the object. 
            */
          dir: string;
          /**
            * Gets an object representing the document type declaration associated with the current document. 
            */
          doctype: DocumentType;
          /**
            * Gets a reference to the root node of the document. 
            */
          documentElement: HTMLElement;
          /**
            * Sets or gets the security domain of the document. 
            */
          domain: string;
          /**
            * Retrieves a collection of all embed objects in the document.
            */
          embeds: HTMLCollection;
          /**
            * Sets or gets the foreground (text) color of the document.
            */
          fgColor: string;
          /**
            * Retrieves a collection, in source order, of all form objects in the document.
            */
          forms: HTMLCollection;
          fullscreenElement: Element;
          fullscreenEnabled: boolean;
          head: HTMLHeadElement;
          hidden: boolean;
          /**
            * Retrieves a collection, in source order, of img objects in the document.
            */
          images: HTMLCollection;
          /**
            * Gets the implementation object of the current document. 
            */
          implementation: DOMImplementation;
          /**
            * Returns the character encoding used to create the webpage that is loaded into the document object.
            */
          inputEncoding: string;
          /**
            * Gets the date that the page was last modified, if the page supplies one. 
            */
          lastModified: string;
          /**
            * Sets or gets the color of the document links. 
            */
          linkColor: string;
          /**
            * Retrieves a collection of all a objects that specify the href property and all area objects in the document.
            */
          links: HTMLCollection;
          /**
            * Contains information about the current URL. 
            */
          location: Location;
          media: string;
          msCSSOMElementFloatMetrics: boolean;
          msCapsLockWarningOff: boolean;
          msHidden: boolean;
          msVisibilityState: string;
          /**
            * Fires when the user aborts the download.
            * @param ev The event.
            */
          onabort: (ev: Event) => any;
          /**
            * Fires when the object is set as the active element.
            * @param ev The event.
            */
          onactivate: (ev: UIEvent) => any;
          /**
            * Fires immediately before the object is set as the active element.
            * @param ev The event.
            */
          onbeforeactivate: (ev: UIEvent) => any;
          /**
            * Fires immediately before the activeElement is changed from the current object to another object in the parent document.
            * @param ev The event.
            */
          onbeforedeactivate: (ev: UIEvent) => any;
          /** 
            * Fires when the object loses the input focus. 
            * @param ev The focus event.
            */
          onblur: (ev: FocusEvent) => any;
          /**
            * Occurs when playback is possible, but would require further buffering. 
            * @param ev The event.
            */
          oncanplay: (ev: Event) => any;
          oncanplaythrough: (ev: Event) => any;
          /**
            * Fires when the contents of the object or selection have changed. 
            * @param ev The event.
            */
          onchange: (ev: Event) => any;
          /**
            * Fires when the user clicks the left mouse button on the object
            * @param ev The mouse event.
            */
          onclick: (ev: MouseEvent) => any;
          /**
            * Fires when the user clicks the right mouse button in the client area, opening the context menu. 
            * @param ev The mouse event.
            */
          oncontextmenu: (ev: PointerEvent) => any;
          /**
            * Fires when the user double-clicks the object.
            * @param ev The mouse event.
            */
          ondblclick: (ev: MouseEvent) => any;
          /**
            * Fires when the activeElement is changed from the current object to another object in the parent document.
            * @param ev The UI Event
            */
          ondeactivate: (ev: UIEvent) => any;
          /**
            * Fires on the source object continuously during a drag operation.
            * @param ev The event.
            */
          ondrag: (ev: DragEvent) => any;
          /**
            * Fires on the source object when the user releases the mouse at the close of a drag operation.
            * @param ev The event.
            */
          ondragend: (ev: DragEvent) => any;
          /** 
            * Fires on the target element when the user drags the object to a valid drop target.
            * @param ev The drag event.
            */
          ondragenter: (ev: DragEvent) => any;
          /** 
            * Fires on the target object when the user moves the mouse out of a valid drop target during a drag operation.
            * @param ev The drag event.
            */
          ondragleave: (ev: DragEvent) => any;
          /**
            * Fires on the target element continuously while the user drags the object over a valid drop target.
            * @param ev The event.
            */
          ondragover: (ev: DragEvent) => any;
          /**
            * Fires on the source object when the user starts to drag a text selection or selected object. 
            * @param ev The event.
            */
          ondragstart: (ev: DragEvent) => any;
          ondrop: (ev: DragEvent) => any;
          /**
            * Occurs when the duration attribute is updated. 
            * @param ev The event.
            */
          ondurationchange: (ev: Event) => any;
          /**
            * Occurs when the media element is reset to its initial state. 
            * @param ev The event.
            */
          onemptied: (ev: Event) => any;
          /**
            * Occurs when the end of playback is reached. 
            * @param ev The event
            */
          onended: (ev: Event) => any;
          /**
            * Fires when an error occurs during object loading.
            * @param ev The event.
            */
          onerror: (ev: Event) => any;
          /**
            * Fires when the object receives focus. 
            * @param ev The event.
            */
          onfocus: (ev: FocusEvent) => any;
          onfullscreenchange: (ev: Event) => any;
          onfullscreenerror: (ev: Event) => any;
          oninput: (ev: Event) => any;
          /**
            * Fires when the user presses a key.
            * @param ev The keyboard event
            */
          onkeydown: (ev: KeyboardEvent) => any;
          /**
            * Fires when the user presses an alphanumeric key.
            * @param ev The event.
            */
          onkeypress: (ev: KeyboardEvent) => any;
          /**
            * Fires when the user releases a key.
            * @param ev The keyboard event
            */
          onkeyup: (ev: KeyboardEvent) => any;
          /**
            * Fires immediately after the browser loads the object. 
            * @param ev The event.
            */
          onload: (ev: Event) => any;
          /**
            * Occurs when media data is loaded at the current playback position. 
            * @param ev The event.
            */
          onloadeddata: (ev: Event) => any;
          /**
            * Occurs when the duration and dimensions of the media have been determined.
            * @param ev The event.
            */
          onloadedmetadata: (ev: Event) => any;
          /**
            * Occurs when Internet Explorer begins looking for media data. 
            * @param ev The event.
            */
          onloadstart: (ev: Event) => any;
          /**
            * Fires when the user clicks the object with either mouse button. 
            * @param ev The mouse event.
            */
          onmousedown: (ev: MouseEvent) => any;
          /**
            * Fires when the user moves the mouse over the object. 
            * @param ev The mouse event.
            */
          onmousemove: (ev: MouseEvent) => any;
          /**
            * Fires when the user moves the mouse pointer outside the boundaries of the object. 
            * @param ev The mouse event.
            */
          onmouseout: (ev: MouseEvent) => any;
          /**
            * Fires when the user moves the mouse pointer into the object.
            * @param ev The mouse event.
            */
          onmouseover: (ev: MouseEvent) => any;
          /**
            * Fires when the user releases a mouse button while the mouse is over the object. 
            * @param ev The mouse event.
            */
          onmouseup: (ev: MouseEvent) => any;
          /**
            * Fires when the wheel button is rotated. 
            * @param ev The mouse event
            */
          onmousewheel: (ev: MouseWheelEvent) => any;
          onmscontentzoom: (ev: UIEvent) => any;
          onmsgesturechange: (ev: MSGestureEvent) => any;
          onmsgesturedoubletap: (ev: MSGestureEvent) => any;
          onmsgestureend: (ev: MSGestureEvent) => any;
          onmsgesturehold: (ev: MSGestureEvent) => any;
          onmsgesturestart: (ev: MSGestureEvent) => any;
          onmsgesturetap: (ev: MSGestureEvent) => any;
          onmsinertiastart: (ev: MSGestureEvent) => any;
          onmsmanipulationstatechanged: (ev: MSManipulationEvent) => any;
          onmspointercancel: (ev: MSPointerEvent) => any;
          onmspointerdown: (ev: MSPointerEvent) => any;
          onmspointerenter: (ev: MSPointerEvent) => any;
          onmspointerleave: (ev: MSPointerEvent) => any;
          onmspointermove: (ev: MSPointerEvent) => any;
          onmspointerout: (ev: MSPointerEvent) => any;
          onmspointerover: (ev: MSPointerEvent) => any;
          onmspointerup: (ev: MSPointerEvent) => any;
          /**
            * Occurs when an item is removed from a Jump List of a webpage running in Site Mode. 
            * @param ev The event.
            */
          onmssitemodejumplistitemremoved: (ev: MSSiteModeEvent) => any;
          /**
            * Occurs when a user clicks a button in a Thumbnail Toolbar of a webpage running in Site Mode.
            * @param ev The event.
            */
          onmsthumbnailclick: (ev: MSSiteModeEvent) => any;
          /**
            * Occurs when playback is paused.
            * @param ev The event.
            */
          onpause: (ev: Event) => any;
          /**
            * Occurs when the play method is requested. 
            * @param ev The event.
            */
          onplay: (ev: Event) => any;
          /**
            * Occurs when the audio or video has started playing. 
            * @param ev The event.
            */
          onplaying: (ev: Event) => any;
          onpointerlockchange: (ev: Event) => any;
          onpointerlockerror: (ev: Event) => any;
          /**
            * Occurs to indicate progress while downloading media data. 
            * @param ev The event.
            */
          onprogress: (ev: ProgressEvent) => any;
          /**
            * Occurs when the playback rate is increased or decreased. 
            * @param ev The event.
            */
          onratechange: (ev: Event) => any;
          /**
            * Fires when the state of the object has changed.
            * @param ev The event
            */
          onreadystatechange: (ev: ProgressEvent) => any;
          /**
            * Fires when the user resets a form. 
            * @param ev The event.
            */
          onreset: (ev: Event) => any;
          /**
            * Fires when the user repositions the scroll box in the scroll bar on the object. 
            * @param ev The event.
            */
          onscroll: (ev: UIEvent) => any;
          /**
            * Occurs when the seek operation ends. 
            * @param ev The event.
            */
          onseeked: (ev: Event) => any;
          /**
            * Occurs when the current playback position is moved. 
            * @param ev The event.
            */
          onseeking: (ev: Event) => any;
          /**
            * Fires when the current selection changes.
            * @param ev The event.
            */
          onselect: (ev: UIEvent) => any;
          onselectstart: (ev: Event) => any;
          /**
            * Occurs when the download has stopped. 
            * @param ev The event.
            */
          onstalled: (ev: Event) => any;
          /**
            * Fires when the user clicks the Stop button or leaves the Web page.
            * @param ev The event.
            */
          onstop: (ev: Event) => any;
          onsubmit: (ev: Event) => any;
          /**
            * Occurs if the load operation has been intentionally halted. 
            * @param ev The event.
            */
          onsuspend: (ev: Event) => any;
          /**
            * Occurs to indicate the current playback position.
            * @param ev The event.
            */
          ontimeupdate: (ev: Event) => any;
          ontouchcancel: (ev: TouchEvent) => any;
          ontouchend: (ev: TouchEvent) => any;
          ontouchmove: (ev: TouchEvent) => any;
          ontouchstart: (ev: TouchEvent) => any;
          /**
            * Occurs when the volume is changed, or playback is muted or unmuted.
            * @param ev The event.
            */
          onvolumechange: (ev: Event) => any;
          /**
            * Occurs when playback stops because the next frame of a video resource is not available. 
            * @param ev The event.
            */
          onwaiting: (ev: Event) => any;
          onwebkitfullscreenchange: (ev: Event) => any;
          onwebkitfullscreenerror: (ev: Event) => any;
          plugins: HTMLCollection;
          pointerLockElement: Element;
          /**
            * Retrieves a value that indicates the current state of the object.
            */
          readyState: string;
          /**
            * Gets the URL of the location that referred the user to the current page.
            */
          referrer: string;
          /**
            * Gets the root svg element in the document hierarchy.
            */
          rootElement: SVGSVGElement;
          /**
            * Retrieves a collection of all script objects in the document.
            */
          scripts: HTMLCollection;
          security: string;
          /**
            * Retrieves a collection of styleSheet objects representing the style sheets that correspond to each instance of a link or style object in the document.
            */
          styleSheets: StyleSheetList;
          /**
            * Contains the title of the document.
            */
          title: string;
          visibilityState: string;
          /** 
            * Sets or gets the color of the links that the user has visited.
            */
          vlinkColor: string;
          webkitCurrentFullScreenElement: Element;
          webkitFullscreenElement: Element;
          webkitFullscreenEnabled: boolean;
          webkitIsFullScreen: boolean;
          xmlEncoding: string;
          xmlStandalone: boolean;
          /**
            * Gets or sets the version attribute specified in the declaration of an XML document.
            */
          xmlVersion: string;
          adoptNode(source: Node): Node;
          captureEvents(): void;
          clear(): void;
          /**
            * Closes an output stream and forces the sent data to display.
            */
          close(): void;
          /**
            * Creates an attribute object with a specified name.
            * @param name String that sets the attribute object's name.
            */
          createAttribute(name: string): Attr;
          createAttributeNS(namespaceURI: string, qualifiedName: string): Attr;
          createCDATASection(data: string): CDATASection;
          /**
            * Creates a comment object with the specified data.
            * @param data Sets the comment object's data.
            */
          createComment(data: string): Comment;
          /**
            * Creates a new document.
            */
          createDocumentFragment(): DocumentFragment;
          /**
            * Creates an instance of the element for the specified tag.
            * @param tagName The name of an element.
            */
          createElement(tagName: "a"): HTMLAnchorElement;
          createElement(tagName: "abbr"): HTMLPhraseElement;
          createElement(tagName: "acronym"): HTMLPhraseElement;
          createElement(tagName: "address"): HTMLBlockElement;
          createElement(tagName: "applet"): HTMLAppletElement;
          createElement(tagName: "area"): HTMLAreaElement;
          createElement(tagName: "audio"): HTMLAudioElement;
          createElement(tagName: "b"): HTMLPhraseElement;
          createElement(tagName: "base"): HTMLBaseElement;
          createElement(tagName: "basefont"): HTMLBaseFontElement;
          createElement(tagName: "bdo"): HTMLPhraseElement;
          createElement(tagName: "big"): HTMLPhraseElement;
          createElement(tagName: "blockquote"): HTMLBlockElement;
          createElement(tagName: "body"): HTMLBodyElement;
          createElement(tagName: "br"): HTMLBRElement;
          createElement(tagName: "button"): HTMLButtonElement;
          createElement(tagName: "canvas"): HTMLCanvasElement;
          createElement(tagName: "caption"): HTMLTableCaptionElement;
          createElement(tagName: "center"): HTMLBlockElement;
          createElement(tagName: "cite"): HTMLPhraseElement;
          createElement(tagName: "code"): HTMLPhraseElement;
          createElement(tagName: "col"): HTMLTableColElement;
          createElement(tagName: "colgroup"): HTMLTableColElement;
          createElement(tagName: "datalist"): HTMLDataListElement;
          createElement(tagName: "dd"): HTMLDDElement;
          createElement(tagName: "del"): HTMLModElement;
          createElement(tagName: "dfn"): HTMLPhraseElement;
          createElement(tagName: "dir"): HTMLDirectoryElement;
          createElement(tagName: "div"): HTMLDivElement;
          createElement(tagName: "dl"): HTMLDListElement;
          createElement(tagName: "dt"): HTMLDTElement;
          createElement(tagName: "em"): HTMLPhraseElement;
          createElement(tagName: "embed"): HTMLEmbedElement;
          createElement(tagName: "fieldset"): HTMLFieldSetElement;
          createElement(tagName: "font"): HTMLFontElement;
          createElement(tagName: "form"): HTMLFormElement;
          createElement(tagName: "frame"): HTMLFrameElement;
          createElement(tagName: "frameset"): HTMLFrameSetElement;
          createElement(tagName: "h1"): HTMLHeadingElement;
          createElement(tagName: "h2"): HTMLHeadingElement;
          createElement(tagName: "h3"): HTMLHeadingElement;
          createElement(tagName: "h4"): HTMLHeadingElement;
          createElement(tagName: "h5"): HTMLHeadingElement;
          createElement(tagName: "h6"): HTMLHeadingElement;
          createElement(tagName: "head"): HTMLHeadElement;
          createElement(tagName: "hr"): HTMLHRElement;
          createElement(tagName: "html"): HTMLHtmlElement;
          createElement(tagName: "i"): HTMLPhraseElement;
          createElement(tagName: "iframe"): HTMLIFrameElement;
          createElement(tagName: "img"): HTMLImageElement;
          createElement(tagName: "input"): HTMLInputElement;
          createElement(tagName: "ins"): HTMLModElement;
          createElement(tagName: "isindex"): HTMLIsIndexElement;
          createElement(tagName: "kbd"): HTMLPhraseElement;
          createElement(tagName: "keygen"): HTMLBlockElement;
          createElement(tagName: "label"): HTMLLabelElement;
          createElement(tagName: "legend"): HTMLLegendElement;
          createElement(tagName: "li"): HTMLLIElement;
          createElement(tagName: "link"): HTMLLinkElement;
          createElement(tagName: "listing"): HTMLBlockElement;
          createElement(tagName: "map"): HTMLMapElement;
          createElement(tagName: "marquee"): HTMLMarqueeElement;
          createElement(tagName: "menu"): HTMLMenuElement;
          createElement(tagName: "meta"): HTMLMetaElement;
          createElement(tagName: "nextid"): HTMLNextIdElement;
          createElement(tagName: "nobr"): HTMLPhraseElement;
          createElement(tagName: "object"): HTMLObjectElement;
          createElement(tagName: "ol"): HTMLOListElement;
          createElement(tagName: "optgroup"): HTMLOptGroupElement;
          createElement(tagName: "option"): HTMLOptionElement;
          createElement(tagName: "p"): HTMLParagraphElement;
          createElement(tagName: "param"): HTMLParamElement;
          createElement(tagName: "plaintext"): HTMLBlockElement;
          createElement(tagName: "pre"): HTMLPreElement;
          createElement(tagName: "progress"): HTMLProgressElement;
          createElement(tagName: "q"): HTMLQuoteElement;
          createElement(tagName: "rt"): HTMLPhraseElement;
          createElement(tagName: "ruby"): HTMLPhraseElement;
          createElement(tagName: "s"): HTMLPhraseElement;
          createElement(tagName: "samp"): HTMLPhraseElement;
          createElement(tagName: "script"): HTMLScriptElement;
          createElement(tagName: "select"): HTMLSelectElement;
          createElement(tagName: "small"): HTMLPhraseElement;
          createElement(tagName: "source"): HTMLSourceElement;
          createElement(tagName: "span"): HTMLSpanElement;
          createElement(tagName: "strike"): HTMLPhraseElement;
          createElement(tagName: "strong"): HTMLPhraseElement;
          createElement(tagName: "style"): HTMLStyleElement;
          createElement(tagName: "sub"): HTMLPhraseElement;
          createElement(tagName: "sup"): HTMLPhraseElement;
          createElement(tagName: "table"): HTMLTableElement;
          createElement(tagName: "tbody"): HTMLTableSectionElement;
          createElement(tagName: "td"): HTMLTableDataCellElement;
          createElement(tagName: "textarea"): HTMLTextAreaElement;
          createElement(tagName: "tfoot"): HTMLTableSectionElement;
          createElement(tagName: "th"): HTMLTableHeaderCellElement;
          createElement(tagName: "thead"): HTMLTableSectionElement;
          createElement(tagName: "title"): HTMLTitleElement;
          createElement(tagName: "tr"): HTMLTableRowElement;
          createElement(tagName: "track"): HTMLTrackElement;
          createElement(tagName: "tt"): HTMLPhraseElement;
          createElement(tagName: "u"): HTMLPhraseElement;
          createElement(tagName: "ul"): HTMLUListElement;
          createElement(tagName: "var"): HTMLPhraseElement;
          createElement(tagName: "video"): HTMLVideoElement;
          createElement(tagName: "x-ms-webview"): MSHTMLWebViewElement;
          createElement(tagName: "xmp"): HTMLBlockElement;
          createElement(tagName: string): HTMLElement;
          createElementNS(namespaceURI: string, qualifiedName: string): Element;
          createExpression(expression: string, resolver: XPathNSResolver): XPathExpression;
          createNSResolver(nodeResolver: Node): XPathNSResolver;
          /**
            * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document. 
            * @param root The root element or node to start traversing on.
            * @param whatToShow The type of nodes or elements to appear in the node list
            * @param filter A custom NodeFilter function to use. For more information, see filter. Use null for no filter.
            * @param entityReferenceExpansion A flag that specifies whether entity reference nodes are expanded.
            */
          createNodeIterator(root: Node, whatToShow?: number, filter?: NodeFilter, entityReferenceExpansion?: boolean): NodeIterator;
          createProcessingInstruction(target: string, data: string): ProcessingInstruction;
          /**
            *  Returns an empty range object that has both of its boundary points positioned at the beginning of the document. 
            */
          createRange(): Range;
          /**
            * Creates a text string from the specified value. 
            * @param data String that specifies the nodeValue property of the text node.
            */
          createTextNode(data: string): Text;
          createTouch(view: any, target: EventTarget, identifier: number, pageX: number, pageY: number, screenX: number, screenY: number): Touch;
          createTouchList(...touches: Touch[]): TouchList;
          /**
            * Creates a TreeWalker object that you can use to traverse filtered lists of nodes or elements in a document.
            * @param root The root element or node to start traversing on.
            * @param whatToShow The type of nodes or elements to appear in the node list. For more information, see whatToShow.
            * @param filter A custom NodeFilter function to use.
            * @param entityReferenceExpansion A flag that specifies whether entity reference nodes are expanded.
            */
          createTreeWalker(root: Node, whatToShow?: number, filter?: NodeFilter, entityReferenceExpansion?: boolean): TreeWalker;
          /**
            * Returns the element for the specified x coordinate and the specified y coordinate. 
            * @param x The x-offset
            * @param y The y-offset
            */
          elementFromPoint(x: number, y: number): Element;
          evaluate(expression: string, contextNode: Node, resolver: XPathNSResolver, type: number, result: XPathResult): XPathResult;
          /**
            * Executes a command on the current document, current selection, or the given range.
            * @param commandId String that specifies the command to execute. This command can be any of the command identifiers that can be executed in script.
            * @param showUI Display the user interface, defaults to false.
            * @param value Value to assign.
            */
          execCommand(commandId: string, showUI?: boolean, value?: any): boolean;
          /**
            * Displays help information for the given command identifier.
            * @param commandId Displays help information for the given command identifier.
            */
          execCommandShowHelp(commandId: string): boolean;
          exitFullscreen(): void;
          exitPointerLock(): void;
          /**
            * Causes the element to receive the focus and executes the code specified by the onfocus event.
            */
          focus(): void;
          /**
            * Returns a reference to the first object with the specified value of the ID or NAME attribute.
            * @param elementId String that specifies the ID value. Case-insensitive.
            */
          getElementById(elementId: string): HTMLElement;
          getElementsByClassName(classNames: string): NodeList;
          /**
            * Gets a collection of objects based on the value of the NAME or ID attribute.
            * @param elementName Gets a collection of objects based on the value of the NAME or ID attribute.
            */
          getElementsByName(elementName: string): NodeList;
          /**
            * Retrieves a collection of objects based on the specified element name.
            * @param name Specifies the name of an element.
            */
          getElementsByTagName(tagname: "a"): NodeListOf<HTMLAnchorElement>;
          getElementsByTagName(tagname: "abbr"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(tagname: "acronym"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(tagname: "address"): NodeListOf<HTMLBlockElement>;
          getElementsByTagName(tagname: "applet"): NodeListOf<HTMLAppletElement>;
          getElementsByTagName(tagname: "area"): NodeListOf<HTMLAreaElement>;
          getElementsByTagName(tagname: "article"): NodeListOf<HTMLElement>;
          getElementsByTagName(tagname: "aside"): NodeListOf<HTMLElement>;
          getElementsByTagName(tagname: "audio"): NodeListOf<HTMLAudioElement>;
          getElementsByTagName(tagname: "b"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(tagname: "base"): NodeListOf<HTMLBaseElement>;
          getElementsByTagName(tagname: "basefont"): NodeListOf<HTMLBaseFontElement>;
          getElementsByTagName(tagname: "bdo"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(tagname: "big"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(tagname: "blockquote"): NodeListOf<HTMLBlockElement>;
          getElementsByTagName(tagname: "body"): NodeListOf<HTMLBodyElement>;
          getElementsByTagName(tagname: "br"): NodeListOf<HTMLBRElement>;
          getElementsByTagName(tagname: "button"): NodeListOf<HTMLButtonElement>;
          getElementsByTagName(tagname: "canvas"): NodeListOf<HTMLCanvasElement>;
          getElementsByTagName(tagname: "caption"): NodeListOf<HTMLTableCaptionElement>;
          getElementsByTagName(tagname: "center"): NodeListOf<HTMLBlockElement>;
          getElementsByTagName(tagname: "circle"): NodeListOf<SVGCircleElement>;
          getElementsByTagName(tagname: "cite"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(tagname: "clippath"): NodeListOf<SVGClipPathElement>;
          getElementsByTagName(tagname: "code"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(tagname: "col"): NodeListOf<HTMLTableColElement>;
          getElementsByTagName(tagname: "colgroup"): NodeListOf<HTMLTableColElement>;
          getElementsByTagName(tagname: "datalist"): NodeListOf<HTMLDataListElement>;
          getElementsByTagName(tagname: "dd"): NodeListOf<HTMLDDElement>;
          getElementsByTagName(tagname: "defs"): NodeListOf<SVGDefsElement>;
          getElementsByTagName(tagname: "del"): NodeListOf<HTMLModElement>;
          getElementsByTagName(tagname: "desc"): NodeListOf<SVGDescElement>;
          getElementsByTagName(tagname: "dfn"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(tagname: "dir"): NodeListOf<HTMLDirectoryElement>;
          getElementsByTagName(tagname: "div"): NodeListOf<HTMLDivElement>;
          getElementsByTagName(tagname: "dl"): NodeListOf<HTMLDListElement>;
          getElementsByTagName(tagname: "dt"): NodeListOf<HTMLDTElement>;
          getElementsByTagName(tagname: "ellipse"): NodeListOf<SVGEllipseElement>;
          getElementsByTagName(tagname: "em"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(tagname: "embed"): NodeListOf<HTMLEmbedElement>;
          getElementsByTagName(tagname: "feblend"): NodeListOf<SVGFEBlendElement>;
          getElementsByTagName(tagname: "fecolormatrix"): NodeListOf<SVGFEColorMatrixElement>;
          getElementsByTagName(tagname: "fecomponenttransfer"): NodeListOf<SVGFEComponentTransferElement>;
          getElementsByTagName(tagname: "fecomposite"): NodeListOf<SVGFECompositeElement>;
          getElementsByTagName(tagname: "feconvolvematrix"): NodeListOf<SVGFEConvolveMatrixElement>;
          getElementsByTagName(tagname: "fediffuselighting"): NodeListOf<SVGFEDiffuseLightingElement>;
          getElementsByTagName(tagname: "fedisplacementmap"): NodeListOf<SVGFEDisplacementMapElement>;
          getElementsByTagName(tagname: "fedistantlight"): NodeListOf<SVGFEDistantLightElement>;
          getElementsByTagName(tagname: "feflood"): NodeListOf<SVGFEFloodElement>;
          getElementsByTagName(tagname: "fefunca"): NodeListOf<SVGFEFuncAElement>;
          getElementsByTagName(tagname: "fefuncb"): NodeListOf<SVGFEFuncBElement>;
          getElementsByTagName(tagname: "fefuncg"): NodeListOf<SVGFEFuncGElement>;
          getElementsByTagName(tagname: "fefuncr"): NodeListOf<SVGFEFuncRElement>;
          getElementsByTagName(tagname: "fegaussianblur"): NodeListOf<SVGFEGaussianBlurElement>;
          getElementsByTagName(tagname: "feimage"): NodeListOf<SVGFEImageElement>;
          getElementsByTagName(tagname: "femerge"): NodeListOf<SVGFEMergeElement>;
          getElementsByTagName(tagname: "femergenode"): NodeListOf<SVGFEMergeNodeElement>;
          getElementsByTagName(tagname: "femorphology"): NodeListOf<SVGFEMorphologyElement>;
          getElementsByTagName(tagname: "feoffset"): NodeListOf<SVGFEOffsetElement>;
          getElementsByTagName(tagname: "fepointlight"): NodeListOf<SVGFEPointLightElement>;
          getElementsByTagName(tagname: "fespecularlighting"): NodeListOf<SVGFESpecularLightingElement>;
          getElementsByTagName(tagname: "fespotlight"): NodeListOf<SVGFESpotLightElement>;
          getElementsByTagName(tagname: "fetile"): NodeListOf<SVGFETileElement>;
          getElementsByTagName(tagname: "feturbulence"): NodeListOf<SVGFETurbulenceElement>;
          getElementsByTagName(tagname: "fieldset"): NodeListOf<HTMLFieldSetElement>;
          getElementsByTagName(tagname: "figcaption"): NodeListOf<HTMLElement>;
          getElementsByTagName(tagname: "figure"): NodeListOf<HTMLElement>;
          getElementsByTagName(tagname: "filter"): NodeListOf<SVGFilterElement>;
          getElementsByTagName(tagname: "font"): NodeListOf<HTMLFontElement>;
          getElementsByTagName(tagname: "footer"): NodeListOf<HTMLElement>;
          getElementsByTagName(tagname: "foreignobject"): NodeListOf<SVGForeignObjectElement>;
          getElementsByTagName(tagname: "form"): NodeListOf<HTMLFormElement>;
          getElementsByTagName(tagname: "frame"): NodeListOf<HTMLFrameElement>;
          getElementsByTagName(tagname: "frameset"): NodeListOf<HTMLFrameSetElement>;
          getElementsByTagName(tagname: "g"): NodeListOf<SVGGElement>;
          getElementsByTagName(tagname: "h1"): NodeListOf<HTMLHeadingElement>;
          getElementsByTagName(tagname: "h2"): NodeListOf<HTMLHeadingElement>;
          getElementsByTagName(tagname: "h3"): NodeListOf<HTMLHeadingElement>;
          getElementsByTagName(tagname: "h4"): NodeListOf<HTMLHeadingElement>;
          getElementsByTagName(tagname: "h5"): NodeListOf<HTMLHeadingElement>;
          getElementsByTagName(tagname: "h6"): NodeListOf<HTMLHeadingElement>;
          getElementsByTagName(tagname: "head"): NodeListOf<HTMLHeadElement>;
          getElementsByTagName(tagname: "header"): NodeListOf<HTMLElement>;
          getElementsByTagName(tagname: "hgroup"): NodeListOf<HTMLElement>;
          getElementsByTagName(tagname: "hr"): NodeListOf<HTMLHRElement>;
          getElementsByTagName(tagname: "html"): NodeListOf<HTMLHtmlElement>;
          getElementsByTagName(tagname: "i"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(tagname: "iframe"): NodeListOf<HTMLIFrameElement>;
          getElementsByTagName(tagname: "image"): NodeListOf<SVGImageElement>;
          getElementsByTagName(tagname: "img"): NodeListOf<HTMLImageElement>;
          getElementsByTagName(tagname: "input"): NodeListOf<HTMLInputElement>;
          getElementsByTagName(tagname: "ins"): NodeListOf<HTMLModElement>;
          getElementsByTagName(tagname: "isindex"): NodeListOf<HTMLIsIndexElement>;
          getElementsByTagName(tagname: "kbd"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(tagname: "keygen"): NodeListOf<HTMLBlockElement>;
          getElementsByTagName(tagname: "label"): NodeListOf<HTMLLabelElement>;
          getElementsByTagName(tagname: "legend"): NodeListOf<HTMLLegendElement>;
          getElementsByTagName(tagname: "li"): NodeListOf<HTMLLIElement>;
          getElementsByTagName(tagname: "line"): NodeListOf<SVGLineElement>;
          getElementsByTagName(tagname: "lineargradient"): NodeListOf<SVGLinearGradientElement>;
          getElementsByTagName(tagname: "link"): NodeListOf<HTMLLinkElement>;
          getElementsByTagName(tagname: "listing"): NodeListOf<HTMLBlockElement>;
          getElementsByTagName(tagname: "map"): NodeListOf<HTMLMapElement>;
          getElementsByTagName(tagname: "mark"): NodeListOf<HTMLElement>;
          getElementsByTagName(tagname: "marker"): NodeListOf<SVGMarkerElement>;
          getElementsByTagName(tagname: "marquee"): NodeListOf<HTMLMarqueeElement>;
          getElementsByTagName(tagname: "mask"): NodeListOf<SVGMaskElement>;
          getElementsByTagName(tagname: "menu"): NodeListOf<HTMLMenuElement>;
          getElementsByTagName(tagname: "meta"): NodeListOf<HTMLMetaElement>;
          getElementsByTagName(tagname: "metadata"): NodeListOf<SVGMetadataElement>;
          getElementsByTagName(tagname: "nav"): NodeListOf<HTMLElement>;
          getElementsByTagName(tagname: "nextid"): NodeListOf<HTMLNextIdElement>;
          getElementsByTagName(tagname: "nobr"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(tagname: "noframes"): NodeListOf<HTMLElement>;
          getElementsByTagName(tagname: "noscript"): NodeListOf<HTMLElement>;
          getElementsByTagName(tagname: "object"): NodeListOf<HTMLObjectElement>;
          getElementsByTagName(tagname: "ol"): NodeListOf<HTMLOListElement>;
          getElementsByTagName(tagname: "optgroup"): NodeListOf<HTMLOptGroupElement>;
          getElementsByTagName(tagname: "option"): NodeListOf<HTMLOptionElement>;
          getElementsByTagName(tagname: "p"): NodeListOf<HTMLParagraphElement>;
          getElementsByTagName(tagname: "param"): NodeListOf<HTMLParamElement>;
          getElementsByTagName(tagname: "path"): NodeListOf<SVGPathElement>;
          getElementsByTagName(tagname: "pattern"): NodeListOf<SVGPatternElement>;
          getElementsByTagName(tagname: "plaintext"): NodeListOf<HTMLBlockElement>;
          getElementsByTagName(tagname: "polygon"): NodeListOf<SVGPolygonElement>;
          getElementsByTagName(tagname: "polyline"): NodeListOf<SVGPolylineElement>;
          getElementsByTagName(tagname: "pre"): NodeListOf<HTMLPreElement>;
          getElementsByTagName(tagname: "progress"): NodeListOf<HTMLProgressElement>;
          getElementsByTagName(tagname: "q"): NodeListOf<HTMLQuoteElement>;
          getElementsByTagName(tagname: "radialgradient"): NodeListOf<SVGRadialGradientElement>;
          getElementsByTagName(tagname: "rect"): NodeListOf<SVGRectElement>;
          getElementsByTagName(tagname: "rt"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(tagname: "ruby"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(tagname: "s"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(tagname: "samp"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(tagname: "script"): NodeListOf<HTMLScriptElement>;
          getElementsByTagName(tagname: "section"): NodeListOf<HTMLElement>;
          getElementsByTagName(tagname: "select"): NodeListOf<HTMLSelectElement>;
          getElementsByTagName(tagname: "small"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(tagname: "source"): NodeListOf<HTMLSourceElement>;
          getElementsByTagName(tagname: "span"): NodeListOf<HTMLSpanElement>;
          getElementsByTagName(tagname: "stop"): NodeListOf<SVGStopElement>;
          getElementsByTagName(tagname: "strike"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(tagname: "strong"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(tagname: "style"): NodeListOf<HTMLStyleElement>;
          getElementsByTagName(tagname: "sub"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(tagname: "sup"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(tagname: "svg"): NodeListOf<SVGSVGElement>;
          getElementsByTagName(tagname: "switch"): NodeListOf<SVGSwitchElement>;
          getElementsByTagName(tagname: "symbol"): NodeListOf<SVGSymbolElement>;
          getElementsByTagName(tagname: "table"): NodeListOf<HTMLTableElement>;
          getElementsByTagName(tagname: "tbody"): NodeListOf<HTMLTableSectionElement>;
          getElementsByTagName(tagname: "td"): NodeListOf<HTMLTableDataCellElement>;
          getElementsByTagName(tagname: "text"): NodeListOf<SVGTextElement>;
          getElementsByTagName(tagname: "textpath"): NodeListOf<SVGTextPathElement>;
          getElementsByTagName(tagname: "textarea"): NodeListOf<HTMLTextAreaElement>;
          getElementsByTagName(tagname: "tfoot"): NodeListOf<HTMLTableSectionElement>;
          getElementsByTagName(tagname: "th"): NodeListOf<HTMLTableHeaderCellElement>;
          getElementsByTagName(tagname: "thead"): NodeListOf<HTMLTableSectionElement>;
          getElementsByTagName(tagname: "title"): NodeListOf<HTMLTitleElement>;
          getElementsByTagName(tagname: "tr"): NodeListOf<HTMLTableRowElement>;
          getElementsByTagName(tagname: "track"): NodeListOf<HTMLTrackElement>;
          getElementsByTagName(tagname: "tspan"): NodeListOf<SVGTSpanElement>;
          getElementsByTagName(tagname: "tt"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(tagname: "u"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(tagname: "ul"): NodeListOf<HTMLUListElement>;
          getElementsByTagName(tagname: "use"): NodeListOf<SVGUseElement>;
          getElementsByTagName(tagname: "var"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(tagname: "video"): NodeListOf<HTMLVideoElement>;
          getElementsByTagName(tagname: "view"): NodeListOf<SVGViewElement>;
          getElementsByTagName(tagname: "wbr"): NodeListOf<HTMLElement>;
          getElementsByTagName(tagname: "x-ms-webview"): NodeListOf<MSHTMLWebViewElement>;
          getElementsByTagName(tagname: "xmp"): NodeListOf<HTMLBlockElement>;
          getElementsByTagName(tagname: string): NodeList;
          getElementsByTagNameNS(namespaceURI: string, localName: string): NodeList;
          /**
            * Returns an object representing the current selection of the document that is loaded into the object displaying a webpage.
            */
          getSelection(): Selection;
          /**
            * Gets a value indicating whether the object currently has focus.
            */
          hasFocus(): boolean;
          importNode(importedNode: Node, deep: boolean): Node;
          msElementsFromPoint(x: number, y: number): NodeList;
          msElementsFromRect(left: number, top: number, width: number, height: number): NodeList;
          msGetPrintDocumentForNamedFlow(flowName: string): Document;
          msSetPrintDocumentUriForNamedFlow(flowName: string, uri: string): void;
          /**
            * Opens a new window and loads a document specified by a given URL. Also, opens a new window that uses the url parameter and the name parameter to collect the output of the write method and the writeln method.
            * @param url Specifies a MIME type for the document.
            * @param name Specifies the name of the window. This name is used as the value for the TARGET attribute on a form or an anchor element.
            * @param features Contains a list of items separated by commas. Each item consists of an option and a value, separated by an equals sign (for example, "fullscreen=yes, toolbar=yes"). The following values are supported.
            * @param replace Specifies whether the existing entry for the document is replaced in the history list.
            */
          open(url?: string, name?: string, features?: string, replace?: boolean): Document | Window;
          /** 
            * Returns a Boolean value that indicates whether a specified command can be successfully executed using execCommand, given the current state of the document.
            * @param commandId Specifies a command identifier.
            */
          queryCommandEnabled(commandId: string): boolean;
          /**
            * Returns a Boolean value that indicates whether the specified command is in the indeterminate state.
            * @param commandId String that specifies a command identifier.
            */
          queryCommandIndeterm(commandId: string): boolean;
          /**
            * Returns a Boolean value that indicates the current state of the command.
            * @param commandId String that specifies a command identifier.
            */
          queryCommandState(commandId: string): boolean;
          /**
            * Returns a Boolean value that indicates whether the current command is supported on the current range.
            * @param commandId Specifies a command identifier.
            */
          queryCommandSupported(commandId: string): boolean;
          /**
            * Retrieves the string associated with a command.
            * @param commandId String that contains the identifier of a command. This can be any command identifier given in the list of Command Identifiers. 
            */
          queryCommandText(commandId: string): string;
          /**
            * Returns the current value of the document, range, or current selection for the given command.
            * @param commandId String that specifies a command identifier.
            */
          queryCommandValue(commandId: string): string;
          releaseEvents(): void;
          /**
            * Allows updating the print settings for the page.
            */
          updateSettings(): void;
          webkitCancelFullScreen(): void;
          webkitExitFullscreen(): void;
          /**
            * Writes one or more HTML expressions to a document in the specified window. 
            * @param content Specifies the text and HTML tags to write.
            */
          write(...content: string[]): void;
          /**
            * Writes one or more HTML expressions, followed by a carriage return, to a document in the specified window. 
            * @param content The text and HTML tags to write.
            */
          writeln(...content: string[]): void;
          addEventListener(type: "MSContentZoom", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureChange", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureDoubleTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureEnd", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureHold", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSInertiaStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSManipulationStateChanged", listener: (ev: MSManipulationEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerCancel", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerDown", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerEnter", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerLeave", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerMove", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerOut", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerOver", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerUp", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "abort", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "activate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforeactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforedeactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "blur", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "canplay", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "canplaythrough", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "change", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "click", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "contextmenu", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dblclick", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "deactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "drag", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragend", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragenter", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragleave", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragover", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragstart", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "drop", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "durationchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "emptied", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "ended", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "error", listener: (ev: ErrorEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "focus", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "fullscreenchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "fullscreenerror", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "input", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "keydown", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "keypress", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "keyup", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "load", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadeddata", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadedmetadata", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadstart", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "mousedown", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousemove", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseout", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseover", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseup", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousewheel", listener: (ev: MouseWheelEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mssitemodejumplistitemremoved", listener: (ev: MSSiteModeEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "msthumbnailclick", listener: (ev: MSSiteModeEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pause", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "play", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "playing", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "pointercancel", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerdown", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerenter", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerleave", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerlockchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerlockerror", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "pointermove", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerout", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerover", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerup", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "progress", listener: (ev: ProgressEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "ratechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "readystatechange", listener: (ev: ProgressEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "reset", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "scroll", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "seeked", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "seeking", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "select", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "selectstart", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "stalled", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "stop", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "submit", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "suspend", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "timeupdate", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "touchcancel", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchend", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchmove", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchstart", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "volumechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "waiting", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "webkitfullscreenchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "webkitfullscreenerror", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "wheel", listener: (ev: WheelEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var Document: {
          prototype: Document;
          new(): Document;
      }
      
      interface DocumentFragment extends Node, NodeSelector {
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var DocumentFragment: {
          prototype: DocumentFragment;
          new(): DocumentFragment;
      }
      
      interface DocumentType extends Node, ChildNode {
          entities: NamedNodeMap;
          internalSubset: string;
          name: string;
          notations: NamedNodeMap;
          publicId: string;
          systemId: string;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var DocumentType: {
          prototype: DocumentType;
          new(): DocumentType;
      }
      
      interface DragEvent extends MouseEvent {
          dataTransfer: DataTransfer;
          initDragEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, screenXArg: number, screenYArg: number, clientXArg: number, clientYArg: number, ctrlKeyArg: boolean, altKeyArg: boolean, shiftKeyArg: boolean, metaKeyArg: boolean, buttonArg: number, relatedTargetArg: EventTarget, dataTransferArg: DataTransfer): void;
          msConvertURL(file: File, targetType: string, targetURL?: string): void;
      }
      
      declare var DragEvent: {
          prototype: DragEvent;
          new(): DragEvent;
      }
      
      interface DynamicsCompressorNode extends AudioNode {
          attack: AudioParam;
          knee: AudioParam;
          ratio: AudioParam;
          reduction: AudioParam;
          release: AudioParam;
          threshold: AudioParam;
      }
      
      declare var DynamicsCompressorNode: {
          prototype: DynamicsCompressorNode;
          new(): DynamicsCompressorNode;
      }
      
      interface EXT_texture_filter_anisotropic {
          MAX_TEXTURE_MAX_ANISOTROPY_EXT: number;
          TEXTURE_MAX_ANISOTROPY_EXT: number;
      }
      
      declare var EXT_texture_filter_anisotropic: {
          prototype: EXT_texture_filter_anisotropic;
          new(): EXT_texture_filter_anisotropic;
          MAX_TEXTURE_MAX_ANISOTROPY_EXT: number;
          TEXTURE_MAX_ANISOTROPY_EXT: number;
      }
      
      interface Element extends Node, GlobalEventHandlers, ElementTraversal, NodeSelector, ChildNode {
          classList: DOMTokenList;
          clientHeight: number;
          clientLeft: number;
          clientTop: number;
          clientWidth: number;
          msContentZoomFactor: number;
          msRegionOverflow: string;
          onariarequest: (ev: AriaRequestEvent) => any;
          oncommand: (ev: CommandEvent) => any;
          ongotpointercapture: (ev: PointerEvent) => any;
          onlostpointercapture: (ev: PointerEvent) => any;
          onmsgesturechange: (ev: MSGestureEvent) => any;
          onmsgesturedoubletap: (ev: MSGestureEvent) => any;
          onmsgestureend: (ev: MSGestureEvent) => any;
          onmsgesturehold: (ev: MSGestureEvent) => any;
          onmsgesturestart: (ev: MSGestureEvent) => any;
          onmsgesturetap: (ev: MSGestureEvent) => any;
          onmsgotpointercapture: (ev: MSPointerEvent) => any;
          onmsinertiastart: (ev: MSGestureEvent) => any;
          onmslostpointercapture: (ev: MSPointerEvent) => any;
          onmspointercancel: (ev: MSPointerEvent) => any;
          onmspointerdown: (ev: MSPointerEvent) => any;
          onmspointerenter: (ev: MSPointerEvent) => any;
          onmspointerleave: (ev: MSPointerEvent) => any;
          onmspointermove: (ev: MSPointerEvent) => any;
          onmspointerout: (ev: MSPointerEvent) => any;
          onmspointerover: (ev: MSPointerEvent) => any;
          onmspointerup: (ev: MSPointerEvent) => any;
          ontouchcancel: (ev: TouchEvent) => any;
          ontouchend: (ev: TouchEvent) => any;
          ontouchmove: (ev: TouchEvent) => any;
          ontouchstart: (ev: TouchEvent) => any;
          onwebkitfullscreenchange: (ev: Event) => any;
          onwebkitfullscreenerror: (ev: Event) => any;
          scrollHeight: number;
          scrollLeft: number;
          scrollTop: number;
          scrollWidth: number;
          tagName: string;
          getAttribute(name?: string): string;
          getAttributeNS(namespaceURI: string, localName: string): string;
          getAttributeNode(name: string): Attr;
          getAttributeNodeNS(namespaceURI: string, localName: string): Attr;
          getBoundingClientRect(): ClientRect;
          getClientRects(): ClientRectList;
          getElementsByTagName(name: "a"): NodeListOf<HTMLAnchorElement>;
          getElementsByTagName(name: "abbr"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(name: "acronym"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(name: "address"): NodeListOf<HTMLBlockElement>;
          getElementsByTagName(name: "applet"): NodeListOf<HTMLAppletElement>;
          getElementsByTagName(name: "area"): NodeListOf<HTMLAreaElement>;
          getElementsByTagName(name: "article"): NodeListOf<HTMLElement>;
          getElementsByTagName(name: "aside"): NodeListOf<HTMLElement>;
          getElementsByTagName(name: "audio"): NodeListOf<HTMLAudioElement>;
          getElementsByTagName(name: "b"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(name: "base"): NodeListOf<HTMLBaseElement>;
          getElementsByTagName(name: "basefont"): NodeListOf<HTMLBaseFontElement>;
          getElementsByTagName(name: "bdo"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(name: "big"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(name: "blockquote"): NodeListOf<HTMLBlockElement>;
          getElementsByTagName(name: "body"): NodeListOf<HTMLBodyElement>;
          getElementsByTagName(name: "br"): NodeListOf<HTMLBRElement>;
          getElementsByTagName(name: "button"): NodeListOf<HTMLButtonElement>;
          getElementsByTagName(name: "canvas"): NodeListOf<HTMLCanvasElement>;
          getElementsByTagName(name: "caption"): NodeListOf<HTMLTableCaptionElement>;
          getElementsByTagName(name: "center"): NodeListOf<HTMLBlockElement>;
          getElementsByTagName(name: "circle"): NodeListOf<SVGCircleElement>;
          getElementsByTagName(name: "cite"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(name: "clippath"): NodeListOf<SVGClipPathElement>;
          getElementsByTagName(name: "code"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(name: "col"): NodeListOf<HTMLTableColElement>;
          getElementsByTagName(name: "colgroup"): NodeListOf<HTMLTableColElement>;
          getElementsByTagName(name: "datalist"): NodeListOf<HTMLDataListElement>;
          getElementsByTagName(name: "dd"): NodeListOf<HTMLDDElement>;
          getElementsByTagName(name: "defs"): NodeListOf<SVGDefsElement>;
          getElementsByTagName(name: "del"): NodeListOf<HTMLModElement>;
          getElementsByTagName(name: "desc"): NodeListOf<SVGDescElement>;
          getElementsByTagName(name: "dfn"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(name: "dir"): NodeListOf<HTMLDirectoryElement>;
          getElementsByTagName(name: "div"): NodeListOf<HTMLDivElement>;
          getElementsByTagName(name: "dl"): NodeListOf<HTMLDListElement>;
          getElementsByTagName(name: "dt"): NodeListOf<HTMLDTElement>;
          getElementsByTagName(name: "ellipse"): NodeListOf<SVGEllipseElement>;
          getElementsByTagName(name: "em"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(name: "embed"): NodeListOf<HTMLEmbedElement>;
          getElementsByTagName(name: "feblend"): NodeListOf<SVGFEBlendElement>;
          getElementsByTagName(name: "fecolormatrix"): NodeListOf<SVGFEColorMatrixElement>;
          getElementsByTagName(name: "fecomponenttransfer"): NodeListOf<SVGFEComponentTransferElement>;
          getElementsByTagName(name: "fecomposite"): NodeListOf<SVGFECompositeElement>;
          getElementsByTagName(name: "feconvolvematrix"): NodeListOf<SVGFEConvolveMatrixElement>;
          getElementsByTagName(name: "fediffuselighting"): NodeListOf<SVGFEDiffuseLightingElement>;
          getElementsByTagName(name: "fedisplacementmap"): NodeListOf<SVGFEDisplacementMapElement>;
          getElementsByTagName(name: "fedistantlight"): NodeListOf<SVGFEDistantLightElement>;
          getElementsByTagName(name: "feflood"): NodeListOf<SVGFEFloodElement>;
          getElementsByTagName(name: "fefunca"): NodeListOf<SVGFEFuncAElement>;
          getElementsByTagName(name: "fefuncb"): NodeListOf<SVGFEFuncBElement>;
          getElementsByTagName(name: "fefuncg"): NodeListOf<SVGFEFuncGElement>;
          getElementsByTagName(name: "fefuncr"): NodeListOf<SVGFEFuncRElement>;
          getElementsByTagName(name: "fegaussianblur"): NodeListOf<SVGFEGaussianBlurElement>;
          getElementsByTagName(name: "feimage"): NodeListOf<SVGFEImageElement>;
          getElementsByTagName(name: "femerge"): NodeListOf<SVGFEMergeElement>;
          getElementsByTagName(name: "femergenode"): NodeListOf<SVGFEMergeNodeElement>;
          getElementsByTagName(name: "femorphology"): NodeListOf<SVGFEMorphologyElement>;
          getElementsByTagName(name: "feoffset"): NodeListOf<SVGFEOffsetElement>;
          getElementsByTagName(name: "fepointlight"): NodeListOf<SVGFEPointLightElement>;
          getElementsByTagName(name: "fespecularlighting"): NodeListOf<SVGFESpecularLightingElement>;
          getElementsByTagName(name: "fespotlight"): NodeListOf<SVGFESpotLightElement>;
          getElementsByTagName(name: "fetile"): NodeListOf<SVGFETileElement>;
          getElementsByTagName(name: "feturbulence"): NodeListOf<SVGFETurbulenceElement>;
          getElementsByTagName(name: "fieldset"): NodeListOf<HTMLFieldSetElement>;
          getElementsByTagName(name: "figcaption"): NodeListOf<HTMLElement>;
          getElementsByTagName(name: "figure"): NodeListOf<HTMLElement>;
          getElementsByTagName(name: "filter"): NodeListOf<SVGFilterElement>;
          getElementsByTagName(name: "font"): NodeListOf<HTMLFontElement>;
          getElementsByTagName(name: "footer"): NodeListOf<HTMLElement>;
          getElementsByTagName(name: "foreignobject"): NodeListOf<SVGForeignObjectElement>;
          getElementsByTagName(name: "form"): NodeListOf<HTMLFormElement>;
          getElementsByTagName(name: "frame"): NodeListOf<HTMLFrameElement>;
          getElementsByTagName(name: "frameset"): NodeListOf<HTMLFrameSetElement>;
          getElementsByTagName(name: "g"): NodeListOf<SVGGElement>;
          getElementsByTagName(name: "h1"): NodeListOf<HTMLHeadingElement>;
          getElementsByTagName(name: "h2"): NodeListOf<HTMLHeadingElement>;
          getElementsByTagName(name: "h3"): NodeListOf<HTMLHeadingElement>;
          getElementsByTagName(name: "h4"): NodeListOf<HTMLHeadingElement>;
          getElementsByTagName(name: "h5"): NodeListOf<HTMLHeadingElement>;
          getElementsByTagName(name: "h6"): NodeListOf<HTMLHeadingElement>;
          getElementsByTagName(name: "head"): NodeListOf<HTMLHeadElement>;
          getElementsByTagName(name: "header"): NodeListOf<HTMLElement>;
          getElementsByTagName(name: "hgroup"): NodeListOf<HTMLElement>;
          getElementsByTagName(name: "hr"): NodeListOf<HTMLHRElement>;
          getElementsByTagName(name: "html"): NodeListOf<HTMLHtmlElement>;
          getElementsByTagName(name: "i"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(name: "iframe"): NodeListOf<HTMLIFrameElement>;
          getElementsByTagName(name: "image"): NodeListOf<SVGImageElement>;
          getElementsByTagName(name: "img"): NodeListOf<HTMLImageElement>;
          getElementsByTagName(name: "input"): NodeListOf<HTMLInputElement>;
          getElementsByTagName(name: "ins"): NodeListOf<HTMLModElement>;
          getElementsByTagName(name: "isindex"): NodeListOf<HTMLIsIndexElement>;
          getElementsByTagName(name: "kbd"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(name: "keygen"): NodeListOf<HTMLBlockElement>;
          getElementsByTagName(name: "label"): NodeListOf<HTMLLabelElement>;
          getElementsByTagName(name: "legend"): NodeListOf<HTMLLegendElement>;
          getElementsByTagName(name: "li"): NodeListOf<HTMLLIElement>;
          getElementsByTagName(name: "line"): NodeListOf<SVGLineElement>;
          getElementsByTagName(name: "lineargradient"): NodeListOf<SVGLinearGradientElement>;
          getElementsByTagName(name: "link"): NodeListOf<HTMLLinkElement>;
          getElementsByTagName(name: "listing"): NodeListOf<HTMLBlockElement>;
          getElementsByTagName(name: "map"): NodeListOf<HTMLMapElement>;
          getElementsByTagName(name: "mark"): NodeListOf<HTMLElement>;
          getElementsByTagName(name: "marker"): NodeListOf<SVGMarkerElement>;
          getElementsByTagName(name: "marquee"): NodeListOf<HTMLMarqueeElement>;
          getElementsByTagName(name: "mask"): NodeListOf<SVGMaskElement>;
          getElementsByTagName(name: "menu"): NodeListOf<HTMLMenuElement>;
          getElementsByTagName(name: "meta"): NodeListOf<HTMLMetaElement>;
          getElementsByTagName(name: "metadata"): NodeListOf<SVGMetadataElement>;
          getElementsByTagName(name: "nav"): NodeListOf<HTMLElement>;
          getElementsByTagName(name: "nextid"): NodeListOf<HTMLNextIdElement>;
          getElementsByTagName(name: "nobr"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(name: "noframes"): NodeListOf<HTMLElement>;
          getElementsByTagName(name: "noscript"): NodeListOf<HTMLElement>;
          getElementsByTagName(name: "object"): NodeListOf<HTMLObjectElement>;
          getElementsByTagName(name: "ol"): NodeListOf<HTMLOListElement>;
          getElementsByTagName(name: "optgroup"): NodeListOf<HTMLOptGroupElement>;
          getElementsByTagName(name: "option"): NodeListOf<HTMLOptionElement>;
          getElementsByTagName(name: "p"): NodeListOf<HTMLParagraphElement>;
          getElementsByTagName(name: "param"): NodeListOf<HTMLParamElement>;
          getElementsByTagName(name: "path"): NodeListOf<SVGPathElement>;
          getElementsByTagName(name: "pattern"): NodeListOf<SVGPatternElement>;
          getElementsByTagName(name: "plaintext"): NodeListOf<HTMLBlockElement>;
          getElementsByTagName(name: "polygon"): NodeListOf<SVGPolygonElement>;
          getElementsByTagName(name: "polyline"): NodeListOf<SVGPolylineElement>;
          getElementsByTagName(name: "pre"): NodeListOf<HTMLPreElement>;
          getElementsByTagName(name: "progress"): NodeListOf<HTMLProgressElement>;
          getElementsByTagName(name: "q"): NodeListOf<HTMLQuoteElement>;
          getElementsByTagName(name: "radialgradient"): NodeListOf<SVGRadialGradientElement>;
          getElementsByTagName(name: "rect"): NodeListOf<SVGRectElement>;
          getElementsByTagName(name: "rt"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(name: "ruby"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(name: "s"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(name: "samp"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(name: "script"): NodeListOf<HTMLScriptElement>;
          getElementsByTagName(name: "section"): NodeListOf<HTMLElement>;
          getElementsByTagName(name: "select"): NodeListOf<HTMLSelectElement>;
          getElementsByTagName(name: "small"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(name: "source"): NodeListOf<HTMLSourceElement>;
          getElementsByTagName(name: "span"): NodeListOf<HTMLSpanElement>;
          getElementsByTagName(name: "stop"): NodeListOf<SVGStopElement>;
          getElementsByTagName(name: "strike"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(name: "strong"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(name: "style"): NodeListOf<HTMLStyleElement>;
          getElementsByTagName(name: "sub"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(name: "sup"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(name: "svg"): NodeListOf<SVGSVGElement>;
          getElementsByTagName(name: "switch"): NodeListOf<SVGSwitchElement>;
          getElementsByTagName(name: "symbol"): NodeListOf<SVGSymbolElement>;
          getElementsByTagName(name: "table"): NodeListOf<HTMLTableElement>;
          getElementsByTagName(name: "tbody"): NodeListOf<HTMLTableSectionElement>;
          getElementsByTagName(name: "td"): NodeListOf<HTMLTableDataCellElement>;
          getElementsByTagName(name: "text"): NodeListOf<SVGTextElement>;
          getElementsByTagName(name: "textpath"): NodeListOf<SVGTextPathElement>;
          getElementsByTagName(name: "textarea"): NodeListOf<HTMLTextAreaElement>;
          getElementsByTagName(name: "tfoot"): NodeListOf<HTMLTableSectionElement>;
          getElementsByTagName(name: "th"): NodeListOf<HTMLTableHeaderCellElement>;
          getElementsByTagName(name: "thead"): NodeListOf<HTMLTableSectionElement>;
          getElementsByTagName(name: "title"): NodeListOf<HTMLTitleElement>;
          getElementsByTagName(name: "tr"): NodeListOf<HTMLTableRowElement>;
          getElementsByTagName(name: "track"): NodeListOf<HTMLTrackElement>;
          getElementsByTagName(name: "tspan"): NodeListOf<SVGTSpanElement>;
          getElementsByTagName(name: "tt"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(name: "u"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(name: "ul"): NodeListOf<HTMLUListElement>;
          getElementsByTagName(name: "use"): NodeListOf<SVGUseElement>;
          getElementsByTagName(name: "var"): NodeListOf<HTMLPhraseElement>;
          getElementsByTagName(name: "video"): NodeListOf<HTMLVideoElement>;
          getElementsByTagName(name: "view"): NodeListOf<SVGViewElement>;
          getElementsByTagName(name: "wbr"): NodeListOf<HTMLElement>;
          getElementsByTagName(name: "x-ms-webview"): NodeListOf<MSHTMLWebViewElement>;
          getElementsByTagName(name: "xmp"): NodeListOf<HTMLBlockElement>;
          getElementsByTagName(name: string): NodeList;
          getElementsByTagNameNS(namespaceURI: string, localName: string): NodeList;
          hasAttribute(name: string): boolean;
          hasAttributeNS(namespaceURI: string, localName: string): boolean;
          msGetRegionContent(): MSRangeCollection;
          msGetUntransformedBounds(): ClientRect;
          msMatchesSelector(selectors: string): boolean;
          msReleasePointerCapture(pointerId: number): void;
          msSetPointerCapture(pointerId: number): void;
          msZoomTo(args: MsZoomToOptions): void;
          releasePointerCapture(pointerId: number): void;
          removeAttribute(name?: string): void;
          removeAttributeNS(namespaceURI: string, localName: string): void;
          removeAttributeNode(oldAttr: Attr): Attr;
          requestFullscreen(): void;
          requestPointerLock(): void;
          setAttribute(name?: string, value?: string): void;
          setAttributeNS(namespaceURI: string, qualifiedName: string, value: string): void;
          setAttributeNode(newAttr: Attr): Attr;
          setAttributeNodeNS(newAttr: Attr): Attr;
          setPointerCapture(pointerId: number): void;
          webkitMatchesSelector(selectors: string): boolean;
          webkitRequestFullScreen(): void;
          webkitRequestFullscreen(): void;
          addEventListener(type: "MSGestureChange", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureDoubleTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureEnd", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureHold", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGotPointerCapture", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSInertiaStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSLostPointerCapture", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerCancel", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerDown", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerEnter", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerLeave", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerMove", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerOut", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerOver", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerUp", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "ariarequest", listener: (ev: AriaRequestEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "command", listener: (ev: CommandEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "gotpointercapture", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "lostpointercapture", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointercancel", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerdown", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerenter", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerleave", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointermove", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerout", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerover", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerup", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchcancel", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchend", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchmove", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchstart", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "webkitfullscreenchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "webkitfullscreenerror", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "wheel", listener: (ev: WheelEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var Element: {
          prototype: Element;
          new(): Element;
      }
      
      interface ErrorEvent extends Event {
          colno: number;
          error: any;
          filename: string;
          lineno: number;
          message: string;
          initErrorEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, messageArg: string, filenameArg: string, linenoArg: number): void;
      }
      
      declare var ErrorEvent: {
          prototype: ErrorEvent;
          new(): ErrorEvent;
      }
      
      interface Event {
          bubbles: boolean;
          cancelBubble: boolean;
          cancelable: boolean;
          currentTarget: EventTarget;
          defaultPrevented: boolean;
          eventPhase: number;
          isTrusted: boolean;
          returnValue: boolean;
          srcElement: Element;
          target: EventTarget;
          timeStamp: number;
          type: string;
          initEvent(eventTypeArg: string, canBubbleArg: boolean, cancelableArg: boolean): void;
          preventDefault(): void;
          stopImmediatePropagation(): void;
          stopPropagation(): void;
          AT_TARGET: number;
          BUBBLING_PHASE: number;
          CAPTURING_PHASE: number;
      }
      
      declare var Event: {
          prototype: Event;
          new(type: string, eventInitDict?: EventInit): Event;
          AT_TARGET: number;
          BUBBLING_PHASE: number;
          CAPTURING_PHASE: number;
      }
      
      interface EventTarget {
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
          dispatchEvent(evt: Event): boolean;
          removeEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var EventTarget: {
          prototype: EventTarget;
          new(): EventTarget;
      }
      
      interface External {
      }
      
      declare var External: {
          prototype: External;
          new(): External;
      }
      
      interface File extends Blob {
          lastModifiedDate: any;
          name: string;
      }
      
      declare var File: {
          prototype: File;
          new(): File;
      }
      
      interface FileList {
          length: number;
          item(index: number): File;
          [index: number]: File;
      }
      
      declare var FileList: {
          prototype: FileList;
          new(): FileList;
      }
      
      interface FileReader extends EventTarget, MSBaseReader {
          error: DOMError;
          readAsArrayBuffer(blob: Blob): void;
          readAsBinaryString(blob: Blob): void;
          readAsDataURL(blob: Blob): void;
          readAsText(blob: Blob, encoding?: string): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var FileReader: {
          prototype: FileReader;
          new(): FileReader;
      }
      
      interface FocusEvent extends UIEvent {
          relatedTarget: EventTarget;
          initFocusEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, relatedTargetArg: EventTarget): void;
      }
      
      declare var FocusEvent: {
          prototype: FocusEvent;
          new(typeArg: string, eventInitDict?: FocusEventInit): FocusEvent;
      }
      
      interface FormData {
          append(name: any, value: any, blobName?: string): void;
      }
      
      declare var FormData: {
          prototype: FormData;
          new(): FormData;
      }
      
      interface GainNode extends AudioNode {
          gain: AudioParam;
      }
      
      declare var GainNode: {
          prototype: GainNode;
          new(): GainNode;
      }
      
      interface Gamepad {
          axes: number[];
          buttons: GamepadButton[];
          connected: boolean;
          id: string;
          index: number;
          mapping: string;
          timestamp: number;
      }
      
      declare var Gamepad: {
          prototype: Gamepad;
          new(): Gamepad;
      }
      
      interface GamepadButton {
          pressed: boolean;
          value: number;
      }
      
      declare var GamepadButton: {
          prototype: GamepadButton;
          new(): GamepadButton;
      }
      
      interface GamepadEvent extends Event {
          gamepad: Gamepad;
      }
      
      declare var GamepadEvent: {
          prototype: GamepadEvent;
          new(): GamepadEvent;
      }
      
      interface Geolocation {
          clearWatch(watchId: number): void;
          getCurrentPosition(successCallback: PositionCallback, errorCallback?: PositionErrorCallback, options?: PositionOptions): void;
          watchPosition(successCallback: PositionCallback, errorCallback?: PositionErrorCallback, options?: PositionOptions): number;
      }
      
      declare var Geolocation: {
          prototype: Geolocation;
          new(): Geolocation;
      }
      
      interface HTMLAllCollection extends HTMLCollection {
          namedItem(name: string): Element;
      }
      
      declare var HTMLAllCollection: {
          prototype: HTMLAllCollection;
          new(): HTMLAllCollection;
      }
      
      interface HTMLAnchorElement extends HTMLElement {
          Methods: string;
          /**
            * Sets or retrieves the character set used to encode the object.
            */
          charset: string;
          /**
            * Sets or retrieves the coordinates of the object.
            */
          coords: string;
          /**
            * Contains the anchor portion of the URL including the hash sign (#).
            */
          hash: string;
          /**
            * Contains the hostname and port values of the URL.
            */
          host: string;
          /**
            * Contains the hostname of a URL.
            */
          hostname: string;
          /**
            * Sets or retrieves a destination URL or an anchor point.
            */
          href: string;
          /**
            * Sets or retrieves the language code of the object.
            */
          hreflang: string;
          mimeType: string;
          /**
            * Sets or retrieves the shape of the object.
            */
          name: string;
          nameProp: string;
          /**
            * Contains the pathname of the URL.
            */
          pathname: string;
          /**
            * Sets or retrieves the port number associated with a URL.
            */
          port: string;
          /**
            * Contains the protocol of the URL.
            */
          protocol: string;
          protocolLong: string;
          /**
            * Sets or retrieves the relationship between the object and the destination of the link.
            */
          rel: string;
          /**
            * Sets or retrieves the relationship between the object and the destination of the link.
            */
          rev: string;
          /**
            * Sets or retrieves the substring of the href property that follows the question mark.
            */
          search: string;
          /**
            * Sets or retrieves the shape of the object.
            */
          shape: string;
          /**
            * Sets or retrieves the window or frame at which to target content.
            */
          target: string;
          /**
            * Retrieves or sets the text of the object as a string. 
            */
          text: string;
          type: string;
          urn: string;
          /** 
            * Returns a string representation of an object.
            */
          toString(): string;
      }
      
      declare var HTMLAnchorElement: {
          prototype: HTMLAnchorElement;
          new(): HTMLAnchorElement;
      }
      
      interface HTMLAppletElement extends HTMLElement {
          /**
            * Retrieves a string of the URL where the object tag can be found. This is often the href of the document that the object is in, or the value set by a base element.
            */
          BaseHref: string;
          align: string;
          /**
            * Sets or retrieves a text alternative to the graphic.
            */
          alt: string;
          /**
            * Gets or sets the optional alternative HTML script to execute if the object fails to load.
            */
          altHtml: string;
          /**
            * Sets or retrieves a character string that can be used to implement your own archive functionality for the object.
            */
          archive: string;
          border: string;
          code: string;
          /**
            * Sets or retrieves the URL of the component.
            */
          codeBase: string;
          /**
            * Sets or retrieves the Internet media type for the code associated with the object.
            */
          codeType: string;
          /**
            * Address of a pointer to the document this page or frame contains. If there is no document, then null will be returned.
            */
          contentDocument: Document;
          /**
            * Sets or retrieves the URL that references the data of the object.
            */
          data: string;
          /**
            * Sets or retrieves a character string that can be used to implement your own declare functionality for the object.
            */
          declare: boolean;
          form: HTMLFormElement;
          /**
            * Sets or retrieves the height of the object.
            */
          height: string;
          hspace: number;
          /**
            * Sets or retrieves the shape of the object.
            */
          name: string;
          object: string;
          /**
            * Sets or retrieves a message to be displayed while an object is loading.
            */
          standby: string;
          /**
            * Returns the content type of the object.
            */
          type: string;
          /**
            * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.
            */
          useMap: string;
          vspace: number;
          width: number;
      }
      
      declare var HTMLAppletElement: {
          prototype: HTMLAppletElement;
          new(): HTMLAppletElement;
      }
      
      interface HTMLAreaElement extends HTMLElement {
          /**
            * Sets or retrieves a text alternative to the graphic.
            */
          alt: string;
          /**
            * Sets or retrieves the coordinates of the object.
            */
          coords: string;
          /**
            * Sets or retrieves the subsection of the href property that follows the number sign (#).
            */
          hash: string;
          /**
            * Sets or retrieves the hostname and port number of the location or URL.
            */
          host: string;
          /**
            * Sets or retrieves the host name part of the location or URL. 
            */
          hostname: string;
          /**
            * Sets or retrieves a destination URL or an anchor point.
            */
          href: string;
          /**
            * Sets or gets whether clicks in this region cause action.
            */
          noHref: boolean;
          /**
            * Sets or retrieves the file name or path specified by the object.
            */
          pathname: string;
          /**
            * Sets or retrieves the port number associated with a URL.
            */
          port: string;
          /**
            * Sets or retrieves the protocol portion of a URL.
            */
          protocol: string;
          rel: string;
          /**
            * Sets or retrieves the substring of the href property that follows the question mark.
            */
          search: string;
          /**
            * Sets or retrieves the shape of the object.
            */
          shape: string;
          /**
            * Sets or retrieves the window or frame at which to target content.
            */
          target: string;
          /** 
            * Returns a string representation of an object.
            */
          toString(): string;
      }
      
      declare var HTMLAreaElement: {
          prototype: HTMLAreaElement;
          new(): HTMLAreaElement;
      }
      
      interface HTMLAreasCollection extends HTMLCollection {
          /**
            * Adds an element to the areas, controlRange, or options collection.
            */
          add(element: HTMLElement, before?: HTMLElement): void;
          add(element: HTMLElement, before?: number): void;
          /**
            * Removes an element from the collection.
            */
          remove(index?: number): void;
      }
      
      declare var HTMLAreasCollection: {
          prototype: HTMLAreasCollection;
          new(): HTMLAreasCollection;
      }
      
      interface HTMLAudioElement extends HTMLMediaElement {
      }
      
      declare var HTMLAudioElement: {
          prototype: HTMLAudioElement;
          new(): HTMLAudioElement;
      }
      
      interface HTMLBRElement extends HTMLElement {
          /**
            * Sets or retrieves the side on which floating objects are not to be positioned when any IHTMLBlockElement is inserted into the document.
            */
          clear: string;
      }
      
      declare var HTMLBRElement: {
          prototype: HTMLBRElement;
          new(): HTMLBRElement;
      }
      
      interface HTMLBaseElement extends HTMLElement {
          /**
            * Gets or sets the baseline URL on which relative links are based.
            */
          href: string;
          /**
            * Sets or retrieves the window or frame at which to target content.
            */
          target: string;
      }
      
      declare var HTMLBaseElement: {
          prototype: HTMLBaseElement;
          new(): HTMLBaseElement;
      }
      
      interface HTMLBaseFontElement extends HTMLElement, DOML2DeprecatedColorProperty {
          /**
            * Sets or retrieves the current typeface family.
            */
          face: string;
          /**
            * Sets or retrieves the font size of the object.
            */
          size: number;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var HTMLBaseFontElement: {
          prototype: HTMLBaseFontElement;
          new(): HTMLBaseFontElement;
      }
      
      interface HTMLBlockElement extends HTMLElement {
          /**
            * Sets or retrieves reference information about the object.
            */
          cite: string;
          clear: string;
          /**
            * Sets or retrieves the width of the object.
            */
          width: number;
      }
      
      declare var HTMLBlockElement: {
          prototype: HTMLBlockElement;
          new(): HTMLBlockElement;
      }
      
      interface HTMLBodyElement extends HTMLElement {
          aLink: any;
          background: string;
          bgColor: any;
          bgProperties: string;
          link: any;
          noWrap: boolean;
          onafterprint: (ev: Event) => any;
          onbeforeprint: (ev: Event) => any;
          onbeforeunload: (ev: BeforeUnloadEvent) => any;
          onblur: (ev: FocusEvent) => any;
          onerror: (ev: Event) => any;
          onfocus: (ev: FocusEvent) => any;
          onhashchange: (ev: HashChangeEvent) => any;
          onload: (ev: Event) => any;
          onmessage: (ev: MessageEvent) => any;
          onoffline: (ev: Event) => any;
          ononline: (ev: Event) => any;
          onorientationchange: (ev: Event) => any;
          onpagehide: (ev: PageTransitionEvent) => any;
          onpageshow: (ev: PageTransitionEvent) => any;
          onpopstate: (ev: PopStateEvent) => any;
          onresize: (ev: UIEvent) => any;
          onstorage: (ev: StorageEvent) => any;
          onunload: (ev: Event) => any;
          text: any;
          vLink: any;
          createTextRange(): TextRange;
          addEventListener(type: "MSContentZoom", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureChange", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureDoubleTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureEnd", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureHold", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGotPointerCapture", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSInertiaStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSLostPointerCapture", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSManipulationStateChanged", listener: (ev: MSManipulationEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerCancel", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerDown", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerEnter", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerLeave", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerMove", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerOut", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerOver", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerUp", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "abort", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "activate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "afterprint", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "ariarequest", listener: (ev: AriaRequestEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforeactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforecopy", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforecut", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforedeactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforepaste", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforeprint", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "beforeunload", listener: (ev: BeforeUnloadEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "blur", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "blur", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "canplay", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "canplaythrough", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "change", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "click", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "command", listener: (ev: CommandEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "contextmenu", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "copy", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "cuechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "cut", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dblclick", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "deactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "drag", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragend", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragenter", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragleave", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragover", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragstart", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "drop", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "durationchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "emptied", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "ended", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "error", listener: (ev: ErrorEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "error", listener: (ev: ErrorEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "focus", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "focus", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "gotpointercapture", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "hashchange", listener: (ev: HashChangeEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "input", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "keydown", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "keypress", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "keyup", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "load", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "load", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadeddata", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadedmetadata", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadstart", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "lostpointercapture", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "message", listener: (ev: MessageEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousedown", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseenter", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseleave", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousemove", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseout", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseover", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseup", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousewheel", listener: (ev: MouseWheelEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "offline", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "online", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "orientationchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "pagehide", listener: (ev: PageTransitionEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pageshow", listener: (ev: PageTransitionEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "paste", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pause", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "play", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "playing", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "pointercancel", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerdown", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerenter", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerleave", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointermove", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerout", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerover", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerup", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "popstate", listener: (ev: PopStateEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "progress", listener: (ev: ProgressEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "ratechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "reset", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "resize", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "scroll", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "seeked", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "seeking", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "select", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "selectstart", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "stalled", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "storage", listener: (ev: StorageEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "submit", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "suspend", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "timeupdate", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "touchcancel", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchend", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchmove", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchstart", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "unload", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "volumechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "waiting", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "webkitfullscreenchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "webkitfullscreenerror", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "wheel", listener: (ev: WheelEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var HTMLBodyElement: {
          prototype: HTMLBodyElement;
          new(): HTMLBodyElement;
      }
      
      interface HTMLButtonElement extends HTMLElement {
          /**
            * Provides a way to direct a user to a specific field when a document loads. This can provide both direction and convenience for a user, reducing the need to click or tab to a field when a page opens. This attribute is true when present on an element, and false when missing.
            */
          autofocus: boolean;
          disabled: boolean;
          /**
            * Retrieves a reference to the form that the object is embedded in.
            */
          form: HTMLFormElement;
          /**
            * Overrides the action attribute (where the data on a form is sent) on the parent form element.
            */
          formAction: string;
          /**
            * Used to override the encoding (formEnctype attribute) specified on the form element.
            */
          formEnctype: string;
          /**
            * Overrides the submit method attribute previously specified on a form element.
            */
          formMethod: string;
          /**
            * Overrides any validation or required attributes on a form or form elements to allow it to be submitted without validation. This can be used to create a "save draft"-type submit option.
            */
          formNoValidate: string;
          /**
            * Overrides the target attribute on a form element.
            */
          formTarget: string;
          /** 
            * Sets or retrieves the name of the object.
            */
          name: string;
          status: any;
          /**
            * Gets the classification and default behavior of the button.
            */
          type: string;
          /**
            * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.
            */
          validationMessage: string;
          /**
            * Returns a  ValidityState object that represents the validity states of an element.
            */
          validity: ValidityState;
          /** 
            * Sets or retrieves the default or selected value of the control.
            */
          value: string;
          /**
            * Returns whether an element will successfully validate based on forms validation rules and constraints.
            */
          willValidate: boolean;
          /**
            * Returns whether a form will validate when it is submitted, without having to submit it.
            */
          checkValidity(): boolean;
          /**
            * Creates a TextRange object for the element.
            */
          createTextRange(): TextRange;
          /**
            * Sets a custom error message that is displayed when a form is submitted.
            * @param error Sets a custom error message that is displayed when a form is submitted.
            */
          setCustomValidity(error: string): void;
      }
      
      declare var HTMLButtonElement: {
          prototype: HTMLButtonElement;
          new(): HTMLButtonElement;
      }
      
      interface HTMLCanvasElement extends HTMLElement {
          /**
            * Gets or sets the height of a canvas element on a document.
            */
          height: number;
          /**
            * Gets or sets the width of a canvas element on a document.
            */
          width: number;
          /**
            * Returns an object that provides methods and properties for drawing and manipulating images and graphics on a canvas element in a document. A context object includes information about colors, line widths, fonts, and other graphic parameters that can be drawn on a canvas.
            * @param contextId The identifier (ID) of the type of canvas to create. Internet Explorer 9 and Internet Explorer 10 support only a 2-D context using canvas.getContext("2d"); IE11 Preview also supports 3-D or WebGL context using canvas.getContext("experimental-webgl");
            */
          getContext(contextId: "2d"): CanvasRenderingContext2D;
          getContext(contextId: "experimental-webgl"): WebGLRenderingContext;
          getContext(contextId: string, ...args: any[]): CanvasRenderingContext2D | WebGLRenderingContext;
          /**
            * Returns a blob object encoded as a Portable Network Graphics (PNG) format from a canvas image or drawing.
            */
          msToBlob(): Blob;
          /**
            * Returns the content of the current canvas as an image that you can use as a source for another canvas or an HTML element.
            * @param type The standard MIME type for the image format to return. If you do not specify this parameter, the default value is a PNG format image.
            */
          toDataURL(type?: string, ...args: any[]): string;
      }
      
      declare var HTMLCanvasElement: {
          prototype: HTMLCanvasElement;
          new(): HTMLCanvasElement;
      }
      
      interface HTMLCollection {
          /**
            * Sets or retrieves the number of objects in a collection.
            */
          length: number;
          /**
            * Retrieves an object from various collections.
            */
          item(nameOrIndex?: any, optionalIndex?: any): Element;
          /**
            * Retrieves a select object or an object from an options collection.
            */
          namedItem(name: string): Element;
          [index: number]: Element;
      }
      
      declare var HTMLCollection: {
          prototype: HTMLCollection;
          new(): HTMLCollection;
      }
      
      interface HTMLDDElement extends HTMLElement {
          /**
            * Sets or retrieves whether the browser automatically performs wordwrap.
            */
          noWrap: boolean;
      }
      
      declare var HTMLDDElement: {
          prototype: HTMLDDElement;
          new(): HTMLDDElement;
      }
      
      interface HTMLDListElement extends HTMLElement {
          compact: boolean;
      }
      
      declare var HTMLDListElement: {
          prototype: HTMLDListElement;
          new(): HTMLDListElement;
      }
      
      interface HTMLDTElement extends HTMLElement {
          /**
            * Sets or retrieves whether the browser automatically performs wordwrap.
            */
          noWrap: boolean;
      }
      
      declare var HTMLDTElement: {
          prototype: HTMLDTElement;
          new(): HTMLDTElement;
      }
      
      interface HTMLDataListElement extends HTMLElement {
          options: HTMLCollection;
      }
      
      declare var HTMLDataListElement: {
          prototype: HTMLDataListElement;
          new(): HTMLDataListElement;
      }
      
      interface HTMLDirectoryElement extends HTMLElement {
          compact: boolean;
      }
      
      declare var HTMLDirectoryElement: {
          prototype: HTMLDirectoryElement;
          new(): HTMLDirectoryElement;
      }
      
      interface HTMLDivElement extends HTMLElement {
          /**
            * Sets or retrieves how the object is aligned with adjacent text. 
            */
          align: string;
          /**
            * Sets or retrieves whether the browser automatically performs wordwrap.
            */
          noWrap: boolean;
      }
      
      declare var HTMLDivElement: {
          prototype: HTMLDivElement;
          new(): HTMLDivElement;
      }
      
      interface HTMLDocument extends Document {
      }
      
      declare var HTMLDocument: {
          prototype: HTMLDocument;
          new(): HTMLDocument;
      }
      
      interface HTMLElement extends Element {
          accessKey: string;
          children: HTMLCollection;
          className: string;
          contentEditable: string;
          dataset: DOMStringMap;
          dir: string;
          draggable: boolean;
          hidden: boolean;
          hideFocus: boolean;
          id: string;
          innerHTML: string;
          innerText: string;
          isContentEditable: boolean;
          lang: string;
          offsetHeight: number;
          offsetLeft: number;
          offsetParent: Element;
          offsetTop: number;
          offsetWidth: number;
          onabort: (ev: Event) => any;
          onactivate: (ev: UIEvent) => any;
          onbeforeactivate: (ev: UIEvent) => any;
          onbeforecopy: (ev: DragEvent) => any;
          onbeforecut: (ev: DragEvent) => any;
          onbeforedeactivate: (ev: UIEvent) => any;
          onbeforepaste: (ev: DragEvent) => any;
          onblur: (ev: FocusEvent) => any;
          oncanplay: (ev: Event) => any;
          oncanplaythrough: (ev: Event) => any;
          onchange: (ev: Event) => any;
          onclick: (ev: MouseEvent) => any;
          oncontextmenu: (ev: PointerEvent) => any;
          oncopy: (ev: DragEvent) => any;
          oncuechange: (ev: Event) => any;
          oncut: (ev: DragEvent) => any;
          ondblclick: (ev: MouseEvent) => any;
          ondeactivate: (ev: UIEvent) => any;
          ondrag: (ev: DragEvent) => any;
          ondragend: (ev: DragEvent) => any;
          ondragenter: (ev: DragEvent) => any;
          ondragleave: (ev: DragEvent) => any;
          ondragover: (ev: DragEvent) => any;
          ondragstart: (ev: DragEvent) => any;
          ondrop: (ev: DragEvent) => any;
          ondurationchange: (ev: Event) => any;
          onemptied: (ev: Event) => any;
          onended: (ev: Event) => any;
          onerror: (ev: Event) => any;
          onfocus: (ev: FocusEvent) => any;
          oninput: (ev: Event) => any;
          onkeydown: (ev: KeyboardEvent) => any;
          onkeypress: (ev: KeyboardEvent) => any;
          onkeyup: (ev: KeyboardEvent) => any;
          onload: (ev: Event) => any;
          onloadeddata: (ev: Event) => any;
          onloadedmetadata: (ev: Event) => any;
          onloadstart: (ev: Event) => any;
          onmousedown: (ev: MouseEvent) => any;
          onmouseenter: (ev: MouseEvent) => any;
          onmouseleave: (ev: MouseEvent) => any;
          onmousemove: (ev: MouseEvent) => any;
          onmouseout: (ev: MouseEvent) => any;
          onmouseover: (ev: MouseEvent) => any;
          onmouseup: (ev: MouseEvent) => any;
          onmousewheel: (ev: MouseWheelEvent) => any;
          onmscontentzoom: (ev: UIEvent) => any;
          onmsmanipulationstatechanged: (ev: MSManipulationEvent) => any;
          onpaste: (ev: DragEvent) => any;
          onpause: (ev: Event) => any;
          onplay: (ev: Event) => any;
          onplaying: (ev: Event) => any;
          onprogress: (ev: ProgressEvent) => any;
          onratechange: (ev: Event) => any;
          onreset: (ev: Event) => any;
          onscroll: (ev: UIEvent) => any;
          onseeked: (ev: Event) => any;
          onseeking: (ev: Event) => any;
          onselect: (ev: UIEvent) => any;
          onselectstart: (ev: Event) => any;
          onstalled: (ev: Event) => any;
          onsubmit: (ev: Event) => any;
          onsuspend: (ev: Event) => any;
          ontimeupdate: (ev: Event) => any;
          onvolumechange: (ev: Event) => any;
          onwaiting: (ev: Event) => any;
          outerHTML: string;
          outerText: string;
          spellcheck: boolean;
          style: CSSStyleDeclaration;
          tabIndex: number;
          title: string;
          blur(): void;
          click(): void;
          contains(child: HTMLElement): boolean;
          dragDrop(): boolean;
          focus(): void;
          getElementsByClassName(classNames: string): NodeList;
          insertAdjacentElement(position: string, insertedElement: Element): Element;
          insertAdjacentHTML(where: string, html: string): void;
          insertAdjacentText(where: string, text: string): void;
          msGetInputContext(): MSInputMethodContext;
          scrollIntoView(top?: boolean): void;
          setActive(): void;
          addEventListener(type: "MSContentZoom", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureChange", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureDoubleTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureEnd", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureHold", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGotPointerCapture", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSInertiaStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSLostPointerCapture", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSManipulationStateChanged", listener: (ev: MSManipulationEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerCancel", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerDown", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerEnter", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerLeave", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerMove", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerOut", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerOver", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerUp", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "abort", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "activate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "ariarequest", listener: (ev: AriaRequestEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforeactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforecopy", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforecut", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforedeactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforepaste", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "blur", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "canplay", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "canplaythrough", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "change", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "click", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "command", listener: (ev: CommandEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "contextmenu", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "copy", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "cuechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "cut", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dblclick", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "deactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "drag", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragend", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragenter", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragleave", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragover", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragstart", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "drop", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "durationchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "emptied", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "ended", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "error", listener: (ev: ErrorEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "focus", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "gotpointercapture", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "input", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "keydown", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "keypress", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "keyup", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "load", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadeddata", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadedmetadata", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadstart", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "lostpointercapture", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousedown", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseenter", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseleave", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousemove", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseout", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseover", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseup", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousewheel", listener: (ev: MouseWheelEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "paste", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pause", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "play", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "playing", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "pointercancel", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerdown", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerenter", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerleave", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointermove", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerout", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerover", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerup", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "progress", listener: (ev: ProgressEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "ratechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "reset", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "scroll", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "seeked", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "seeking", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "select", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "selectstart", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "stalled", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "submit", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "suspend", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "timeupdate", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "touchcancel", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchend", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchmove", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchstart", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "volumechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "waiting", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "webkitfullscreenchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "webkitfullscreenerror", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "wheel", listener: (ev: WheelEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var HTMLElement: {
          prototype: HTMLElement;
          new(): HTMLElement;
      }
      
      interface HTMLEmbedElement extends HTMLElement, GetSVGDocument {
          /**
            * Sets or retrieves the height of the object.
            */
          height: string;
          hidden: any;
          /**
            * Gets or sets whether the DLNA PlayTo device is available.
            */
          msPlayToDisabled: boolean;
          /**
            * Gets or sets the path to the preferred media source. This enables the Play To target device to stream the media content, which can be DRM protected, from a different location, such as a cloud media server.
            */
          msPlayToPreferredSourceUri: string;
          /**
            * Gets or sets the primary DLNA PlayTo device.
            */
          msPlayToPrimary: boolean;
          /**
            * Gets the source associated with the media element for use by the PlayToManager.
            */
          msPlayToSource: any;
          /**
            * Sets or retrieves the name of the object.
            */
          name: string;
          /**
            * Retrieves the palette used for the embedded document.
            */
          palette: string;
          /**
            * Retrieves the URL of the plug-in used to view an embedded document.
            */
          pluginspage: string;
          readyState: string;
          /**
            * Sets or retrieves a URL to be loaded by the object.
            */
          src: string;
          /**
            * Sets or retrieves the height and width units of the embed object.
            */
          units: string;
          /**
            * Sets or retrieves the width of the object.
            */
          width: string;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var HTMLEmbedElement: {
          prototype: HTMLEmbedElement;
          new(): HTMLEmbedElement;
      }
      
      interface HTMLFieldSetElement extends HTMLElement {
          /**
            * Sets or retrieves how the object is aligned with adjacent text.
            */
          align: string;
          disabled: boolean;
          /**
            * Retrieves a reference to the form that the object is embedded in.
            */
          form: HTMLFormElement;
          /**
            * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.
            */
          validationMessage: string;
          /**
            * Returns a  ValidityState object that represents the validity states of an element.
            */
          validity: ValidityState;
          /**
            * Returns whether an element will successfully validate based on forms validation rules and constraints.
            */
          willValidate: boolean;
          /**
            * Returns whether a form will validate when it is submitted, without having to submit it.
            */
          checkValidity(): boolean;
          /**
            * Sets a custom error message that is displayed when a form is submitted.
            * @param error Sets a custom error message that is displayed when a form is submitted.
            */
          setCustomValidity(error: string): void;
      }
      
      declare var HTMLFieldSetElement: {
          prototype: HTMLFieldSetElement;
          new(): HTMLFieldSetElement;
      }
      
      interface HTMLFontElement extends HTMLElement, DOML2DeprecatedColorProperty, DOML2DeprecatedSizeProperty {
          /**
            * Sets or retrieves the current typeface family.
            */
          face: string;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var HTMLFontElement: {
          prototype: HTMLFontElement;
          new(): HTMLFontElement;
      }
      
      interface HTMLFormElement extends HTMLElement {
          /**
            * Sets or retrieves a list of character encodings for input data that must be accepted by the server processing the form.
            */
          acceptCharset: string;
          /**
            * Sets or retrieves the URL to which the form content is sent for processing.
            */
          action: string;
          /**
            * Specifies whether autocomplete is applied to an editable text field.
            */
          autocomplete: string;
          /**
            * Retrieves a collection, in source order, of all controls in a given form.
            */
          elements: HTMLCollection;
          /**
            * Sets or retrieves the MIME encoding for the form.
            */
          encoding: string;
          /**
            * Sets or retrieves the encoding type for the form.
            */
          enctype: string;
          /**
            * Sets or retrieves the number of objects in a collection.
            */
          length: number;
          /**
            * Sets or retrieves how to send the form data to the server.
            */
          method: string;
          /**
            * Sets or retrieves the name of the object.
            */
          name: string;
          /**
            * Designates a form that is not validated when submitted.
            */
          noValidate: boolean;
          /**
            * Sets or retrieves the window or frame at which to target content.
            */
          target: string;
          /**
            * Returns whether a form will validate when it is submitted, without having to submit it.
            */
          checkValidity(): boolean;
          /**
            * Retrieves a form object or an object from an elements collection.
            * @param name Variant of type Number or String that specifies the object or collection to retrieve. If this parameter is a Number, it is the zero-based index of the object. If this parameter is a string, all objects with matching name or id properties are retrieved, and a collection is returned if more than one match is made.
            * @param index Variant of type Number that specifies the zero-based index of the object to retrieve when a collection is returned.
            */
          item(name?: any, index?: any): any;
          /**
            * Retrieves a form object or an object from an elements collection.
            */
          namedItem(name: string): any;
          /**
            * Fires when the user resets a form.
            */
          reset(): void;
          /**
            * Fires when a FORM is about to be submitted.
            */
          submit(): void;
          [name: string]: any;
      }
      
      declare var HTMLFormElement: {
          prototype: HTMLFormElement;
          new(): HTMLFormElement;
      }
      
      interface HTMLFrameElement extends HTMLElement, GetSVGDocument {
          /**
            * Specifies the properties of a border drawn around an object.
            */
          border: string;
          /**
            * Sets or retrieves the border color of the object.
            */
          borderColor: any;
          /**
            * Retrieves the document object of the page or frame.
            */
          contentDocument: Document;
          /**
            * Retrieves the object of the specified.
            */
          contentWindow: Window;
          /**
            * Sets or retrieves whether to display a border for the frame.
            */
          frameBorder: string;
          /**
            * Sets or retrieves the amount of additional space between the frames.
            */
          frameSpacing: any;
          /**
            * Sets or retrieves the height of the object.
            */
          height: string | number;
          /**
            * Sets or retrieves a URI to a long description of the object.
            */
          longDesc: string;
          /**
            * Sets or retrieves the top and bottom margin heights before displaying the text in a frame.
            */
          marginHeight: string;
          /**
            * Sets or retrieves the left and right margin widths before displaying the text in a frame.
            */
          marginWidth: string;
          /**
            * Sets or retrieves the frame name.
            */
          name: string;
          /**
            * Sets or retrieves whether the user can resize the frame.
            */
          noResize: boolean;
          /**
            * Raised when the object has been completely received from the server.
            */
          onload: (ev: Event) => any;
          /**
            * Sets or retrieves whether the frame can be scrolled.
            */
          scrolling: string;
          /**
            * Sets the value indicating whether the source file of a frame or iframe has specific security restrictions applied.
            */
          security: any;
          /**
            * Sets or retrieves a URL to be loaded by the object.
            */
          src: string;
          /**
            * Sets or retrieves the width of the object.
            */
          width: string | number;
          addEventListener(type: "MSContentZoom", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureChange", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureDoubleTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureEnd", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureHold", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGotPointerCapture", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSInertiaStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSLostPointerCapture", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSManipulationStateChanged", listener: (ev: MSManipulationEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerCancel", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerDown", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerEnter", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerLeave", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerMove", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerOut", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerOver", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerUp", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "abort", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "activate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "ariarequest", listener: (ev: AriaRequestEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforeactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforecopy", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforecut", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforedeactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforepaste", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "blur", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "canplay", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "canplaythrough", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "change", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "click", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "command", listener: (ev: CommandEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "contextmenu", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "copy", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "cuechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "cut", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dblclick", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "deactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "drag", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragend", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragenter", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragleave", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragover", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragstart", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "drop", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "durationchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "emptied", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "ended", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "error", listener: (ev: ErrorEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "focus", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "gotpointercapture", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "input", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "keydown", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "keypress", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "keyup", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "load", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "load", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadeddata", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadedmetadata", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadstart", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "lostpointercapture", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousedown", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseenter", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseleave", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousemove", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseout", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseover", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseup", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousewheel", listener: (ev: MouseWheelEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "paste", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pause", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "play", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "playing", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "pointercancel", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerdown", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerenter", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerleave", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointermove", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerout", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerover", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerup", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "progress", listener: (ev: ProgressEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "ratechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "reset", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "scroll", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "seeked", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "seeking", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "select", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "selectstart", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "stalled", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "submit", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "suspend", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "timeupdate", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "touchcancel", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchend", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchmove", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchstart", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "volumechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "waiting", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "webkitfullscreenchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "webkitfullscreenerror", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "wheel", listener: (ev: WheelEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var HTMLFrameElement: {
          prototype: HTMLFrameElement;
          new(): HTMLFrameElement;
      }
      
      interface HTMLFrameSetElement extends HTMLElement {
          border: string;
          /**
            * Sets or retrieves the border color of the object.
            */
          borderColor: any;
          /**
            * Sets or retrieves the frame widths of the object.
            */
          cols: string;
          /**
            * Sets or retrieves whether to display a border for the frame.
            */
          frameBorder: string;
          /**
            * Sets or retrieves the amount of additional space between the frames.
            */
          frameSpacing: any;
          name: string;
          onafterprint: (ev: Event) => any;
          onbeforeprint: (ev: Event) => any;
          onbeforeunload: (ev: BeforeUnloadEvent) => any;
          /**
            * Fires when the object loses the input focus.
            */
          onblur: (ev: FocusEvent) => any;
          onerror: (ev: Event) => any;
          /**
            * Fires when the object receives focus.
            */
          onfocus: (ev: FocusEvent) => any;
          onhashchange: (ev: HashChangeEvent) => any;
          onload: (ev: Event) => any;
          onmessage: (ev: MessageEvent) => any;
          onoffline: (ev: Event) => any;
          ononline: (ev: Event) => any;
          onorientationchange: (ev: Event) => any;
          onpagehide: (ev: PageTransitionEvent) => any;
          onpageshow: (ev: PageTransitionEvent) => any;
          onresize: (ev: UIEvent) => any;
          onstorage: (ev: StorageEvent) => any;
          onunload: (ev: Event) => any;
          /**
            * Sets or retrieves the frame heights of the object.
            */
          rows: string;
          addEventListener(type: "MSContentZoom", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureChange", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureDoubleTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureEnd", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureHold", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGotPointerCapture", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSInertiaStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSLostPointerCapture", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSManipulationStateChanged", listener: (ev: MSManipulationEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerCancel", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerDown", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerEnter", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerLeave", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerMove", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerOut", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerOver", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerUp", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "abort", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "activate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "ariarequest", listener: (ev: AriaRequestEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforeactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforecopy", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforecut", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforedeactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforepaste", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforeprint", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "beforeunload", listener: (ev: BeforeUnloadEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "blur", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "blur", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "canplay", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "canplaythrough", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "change", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "click", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "command", listener: (ev: CommandEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "contextmenu", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "copy", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "cuechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "cut", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dblclick", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "deactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "drag", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragend", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragenter", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragleave", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragover", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragstart", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "drop", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "durationchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "emptied", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "ended", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "error", listener: (ev: ErrorEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "error", listener: (ev: ErrorEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "focus", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "focus", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "gotpointercapture", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "hashchange", listener: (ev: HashChangeEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "input", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "keydown", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "keypress", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "keyup", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "load", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "load", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadeddata", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadedmetadata", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadstart", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "lostpointercapture", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "message", listener: (ev: MessageEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousedown", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseenter", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseleave", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousemove", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseout", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseover", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseup", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousewheel", listener: (ev: MouseWheelEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "offline", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "online", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "orientationchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "pagehide", listener: (ev: PageTransitionEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pageshow", listener: (ev: PageTransitionEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "paste", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pause", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "play", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "playing", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "pointercancel", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerdown", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerenter", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerleave", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointermove", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerout", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerover", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerup", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "progress", listener: (ev: ProgressEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "ratechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "reset", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "resize", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "scroll", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "seeked", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "seeking", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "select", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "selectstart", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "stalled", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "storage", listener: (ev: StorageEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "submit", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "suspend", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "timeupdate", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "touchcancel", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchend", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchmove", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchstart", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "unload", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "volumechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "waiting", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "webkitfullscreenchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "webkitfullscreenerror", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "wheel", listener: (ev: WheelEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var HTMLFrameSetElement: {
          prototype: HTMLFrameSetElement;
          new(): HTMLFrameSetElement;
      }
      
      interface HTMLHRElement extends HTMLElement, DOML2DeprecatedColorProperty, DOML2DeprecatedSizeProperty {
          /**
            * Sets or retrieves how the object is aligned with adjacent text.
            */
          align: string;
          /**
            * Sets or retrieves whether the horizontal rule is drawn with 3-D shading.
            */
          noShade: boolean;
          /**
            * Sets or retrieves the width of the object.
            */
          width: number;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var HTMLHRElement: {
          prototype: HTMLHRElement;
          new(): HTMLHRElement;
      }
      
      interface HTMLHeadElement extends HTMLElement {
          profile: string;
      }
      
      declare var HTMLHeadElement: {
          prototype: HTMLHeadElement;
          new(): HTMLHeadElement;
      }
      
      interface HTMLHeadingElement extends HTMLElement {
          /**
            * Sets or retrieves a value that indicates the table alignment.
            */
          align: string;
          clear: string;
      }
      
      declare var HTMLHeadingElement: {
          prototype: HTMLHeadingElement;
          new(): HTMLHeadingElement;
      }
      
      interface HTMLHtmlElement extends HTMLElement {
          /**
            * Sets or retrieves the DTD version that governs the current document.
            */
          version: string;
      }
      
      declare var HTMLHtmlElement: {
          prototype: HTMLHtmlElement;
          new(): HTMLHtmlElement;
      }
      
      interface HTMLIFrameElement extends HTMLElement, GetSVGDocument {
          /**
            * Sets or retrieves how the object is aligned with adjacent text.
            */
          align: string;
          allowFullscreen: boolean;
          /**
            * Specifies the properties of a border drawn around an object.
            */
          border: string;
          /**
            * Retrieves the document object of the page or frame.
            */
          contentDocument: Document;
          /**
            * Retrieves the object of the specified.
            */
          contentWindow: Window;
          /**
            * Sets or retrieves whether to display a border for the frame.
            */
          frameBorder: string;
          /**
            * Sets or retrieves the amount of additional space between the frames.
            */
          frameSpacing: any;
          /**
            * Sets or retrieves the height of the object.
            */
          height: string;
          /**
            * Sets or retrieves the horizontal margin for the object.
            */
          hspace: number;
          /**
            * Sets or retrieves a URI to a long description of the object.
            */
          longDesc: string;
          /**
            * Sets or retrieves the top and bottom margin heights before displaying the text in a frame.
            */
          marginHeight: string;
          /**
            * Sets or retrieves the left and right margin widths before displaying the text in a frame.
            */
          marginWidth: string;
          /**
            * Sets or retrieves the frame name.
            */
          name: string;
          /**
            * Sets or retrieves whether the user can resize the frame.
            */
          noResize: boolean;
          /**
            * Raised when the object has been completely received from the server.
            */
          onload: (ev: Event) => any;
          sandbox: DOMSettableTokenList;
          /**
            * Sets or retrieves whether the frame can be scrolled.
            */
          scrolling: string;
          /**
            * Sets the value indicating whether the source file of a frame or iframe has specific security restrictions applied.
            */
          security: any;
          /**
            * Sets or retrieves a URL to be loaded by the object.
            */
          src: string;
          /**
            * Sets or retrieves the vertical margin for the object.
            */
          vspace: number;
          /**
            * Sets or retrieves the width of the object.
            */
          width: string;
          addEventListener(type: "MSContentZoom", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureChange", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureDoubleTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureEnd", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureHold", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGotPointerCapture", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSInertiaStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSLostPointerCapture", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSManipulationStateChanged", listener: (ev: MSManipulationEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerCancel", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerDown", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerEnter", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerLeave", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerMove", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerOut", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerOver", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerUp", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "abort", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "activate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "ariarequest", listener: (ev: AriaRequestEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforeactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforecopy", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforecut", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforedeactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforepaste", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "blur", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "canplay", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "canplaythrough", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "change", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "click", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "command", listener: (ev: CommandEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "contextmenu", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "copy", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "cuechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "cut", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dblclick", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "deactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "drag", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragend", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragenter", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragleave", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragover", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragstart", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "drop", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "durationchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "emptied", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "ended", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "error", listener: (ev: ErrorEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "focus", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "gotpointercapture", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "input", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "keydown", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "keypress", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "keyup", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "load", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "load", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadeddata", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadedmetadata", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadstart", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "lostpointercapture", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousedown", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseenter", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseleave", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousemove", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseout", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseover", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseup", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousewheel", listener: (ev: MouseWheelEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "paste", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pause", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "play", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "playing", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "pointercancel", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerdown", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerenter", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerleave", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointermove", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerout", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerover", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerup", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "progress", listener: (ev: ProgressEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "ratechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "reset", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "scroll", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "seeked", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "seeking", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "select", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "selectstart", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "stalled", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "submit", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "suspend", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "timeupdate", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "touchcancel", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchend", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchmove", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchstart", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "volumechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "waiting", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "webkitfullscreenchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "webkitfullscreenerror", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "wheel", listener: (ev: WheelEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var HTMLIFrameElement: {
          prototype: HTMLIFrameElement;
          new(): HTMLIFrameElement;
      }
      
      interface HTMLImageElement extends HTMLElement {
          /**
            * Sets or retrieves how the object is aligned with adjacent text.
            */
          align: string;
          /**
            * Sets or retrieves a text alternative to the graphic.
            */
          alt: string;
          /**
            * Specifies the properties of a border drawn around an object.
            */
          border: string;
          /**
            * Retrieves whether the object is fully loaded.
            */
          complete: boolean;
          crossOrigin: string;
          currentSrc: string;
          /**
            * Sets or retrieves the height of the object.
            */
          height: number;
          /**
            * Sets or retrieves the width of the border to draw around the object.
            */
          hspace: number;
          /**
            * Sets or retrieves whether the image is a server-side image map.
            */
          isMap: boolean;
          /**
            * Sets or retrieves a Uniform Resource Identifier (URI) to a long description of the object.
            */
          longDesc: string;
          /**
            * Gets or sets whether the DLNA PlayTo device is available.
            */
          msPlayToDisabled: boolean;
          msPlayToPreferredSourceUri: string;
          /**
            * Gets or sets the primary DLNA PlayTo device.
            */
          msPlayToPrimary: boolean;
          /**
            * Gets the source associated with the media element for use by the PlayToManager.
            */
          msPlayToSource: any;
          /**
            * Sets or retrieves the name of the object.
            */
          name: string;
          /**
            * The original height of the image resource before sizing.
            */
          naturalHeight: number;
          /**
            * The original width of the image resource before sizing.
            */
          naturalWidth: number;
          /**
            * The address or URL of the a media resource that is to be considered.
            */
          src: string;
          srcset: string;
          /**
            * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.
            */
          useMap: string;
          /**
            * Sets or retrieves the vertical margin for the object.
            */
          vspace: number;
          /**
            * Sets or retrieves the width of the object.
            */
          width: number;
          x: number;
          y: number;
          msGetAsCastingSource(): any;
      }
      
      declare var HTMLImageElement: {
          prototype: HTMLImageElement;
          new(): HTMLImageElement;
          create(): HTMLImageElement;
      }
      
      interface HTMLInputElement extends HTMLElement {
          /**
            * Sets or retrieves a comma-separated list of content types.
            */
          accept: string;
          /**
            * Sets or retrieves how the object is aligned with adjacent text.
            */
          align: string;
          /**
            * Sets or retrieves a text alternative to the graphic.
            */
          alt: string;
          /**
            * Specifies whether autocomplete is applied to an editable text field.
            */
          autocomplete: string;
          /**
            * Provides a way to direct a user to a specific field when a document loads. This can provide both direction and convenience for a user, reducing the need to click or tab to a field when a page opens. This attribute is true when present on an element, and false when missing.
            */
          autofocus: boolean;
          /**
            * Sets or retrieves the width of the border to draw around the object.
            */
          border: string;
          /**
            * Sets or retrieves the state of the check box or radio button.
            */
          checked: boolean;
          /**
            * Retrieves whether the object is fully loaded.
            */
          complete: boolean;
          /**
            * Sets or retrieves the state of the check box or radio button.
            */
          defaultChecked: boolean;
          /**
            * Sets or retrieves the initial contents of the object.
            */
          defaultValue: string;
          disabled: boolean;
          /**
            * Returns a FileList object on a file type input object.
            */
          files: FileList;
          /**
            * Retrieves a reference to the form that the object is embedded in. 
            */
          form: HTMLFormElement;
          /**
            * Overrides the action attribute (where the data on a form is sent) on the parent form element.
            */
          formAction: string;
          /**
            * Used to override the encoding (formEnctype attribute) specified on the form element.
            */
          formEnctype: string;
          /**
            * Overrides the submit method attribute previously specified on a form element.
            */
          formMethod: string;
          /**
            * Overrides any validation or required attributes on a form or form elements to allow it to be submitted without validation. This can be used to create a "save draft"-type submit option.
            */
          formNoValidate: string;
          /**
            * Overrides the target attribute on a form element.
            */
          formTarget: string;
          /**
            * Sets or retrieves the height of the object.
            */
          height: string;
          /**
            * Sets or retrieves the width of the border to draw around the object.
            */
          hspace: number;
          indeterminate: boolean;
          /**
            * Specifies the ID of a pre-defined datalist of options for an input element.
            */
          list: HTMLElement;
          /**
            * Defines the maximum acceptable value for an input element with type="number".When used with the min and step attributes, lets you control the range and increment (such as only even numbers) that the user can enter into an input field.
            */
          max: string;
          /**
            * Sets or retrieves the maximum number of characters that the user can enter in a text control.
            */
          maxLength: number;
          /**
            * Defines the minimum acceptable value for an input element with type="number". When used with the max and step attributes, lets you control the range and increment (such as even numbers only) that the user can enter into an input field.
            */
          min: string;
          /**
            * Sets or retrieves the Boolean value indicating whether multiple items can be selected from a list.
            */
          multiple: boolean;
          /**
            * Sets or retrieves the name of the object.
            */
          name: string;
          /**
            * Gets or sets a string containing a regular expression that the user's input must match.
            */
          pattern: string;
          /**
            * Gets or sets a text string that is displayed in an input field as a hint or prompt to users as the format or type of information they need to enter.The text appears in an input field until the user puts focus on the field.
            */
          placeholder: string;
          readOnly: boolean;
          /**
            * When present, marks an element that can't be submitted without a value.
            */
          required: boolean;
          /**
            * Gets or sets the end position or offset of a text selection.
            */
          selectionEnd: number;
          /**
            * Gets or sets the starting position or offset of a text selection.
            */
          selectionStart: number;
          size: number;
          /**
            * The address or URL of the a media resource that is to be considered.
            */
          src: string;
          status: boolean;
          /**
            * Defines an increment or jump between values that you want to allow the user to enter. When used with the max and min attributes, lets you control the range and increment (for example, allow only even numbers) that the user can enter into an input field.
            */
          step: string;
          /**
            * Returns the content type of the object.
            */
          type: string;
          /**
            * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.
            */
          useMap: string;
          /**
            * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.
            */
          validationMessage: string;
          /**
            * Returns a  ValidityState object that represents the validity states of an element.
            */
          validity: ValidityState;
          /**
            * Returns the value of the data at the cursor's current position.
            */
          value: string;
          valueAsDate: Date;
          /**
            * Returns the input field value as a number.
            */
          valueAsNumber: number;
          /**
            * Sets or retrieves the vertical margin for the object.
            */
          vspace: number;
          /**
            * Sets or retrieves the width of the object.
            */
          width: string;
          /**
            * Returns whether an element will successfully validate based on forms validation rules and constraints.
            */
          willValidate: boolean;
          /**
            * Returns whether a form will validate when it is submitted, without having to submit it.
            */
          checkValidity(): boolean;
          /**
            * Creates a TextRange object for the element.
            */
          createTextRange(): TextRange;
          /**
            * Makes the selection equal to the current object.
            */
          select(): void;
          /**
            * Sets a custom error message that is displayed when a form is submitted.
            * @param error Sets a custom error message that is displayed when a form is submitted.
            */
          setCustomValidity(error: string): void;
          /**
            * Sets the start and end positions of a selection in a text field.
            * @param start The offset into the text field for the start of the selection.
            * @param end The offset into the text field for the end of the selection.
            */
          setSelectionRange(start: number, end: number): void;
          /**
            * Decrements a range input control's value by the value given by the Step attribute. If the optional parameter is used, it will decrement the input control's step value multiplied by the parameter's value.
            * @param n Value to decrement the value by.
            */
          stepDown(n?: number): void;
          /**
            * Increments a range input control's value by the value given by the Step attribute. If the optional parameter is used, will increment the input control's value by that value.
            * @param n Value to increment the value by.
            */
          stepUp(n?: number): void;
      }
      
      declare var HTMLInputElement: {
          prototype: HTMLInputElement;
          new(): HTMLInputElement;
      }
      
      interface HTMLIsIndexElement extends HTMLElement {
          /**
            * Sets or retrieves the URL to which the form content is sent for processing.
            */
          action: string;
          /**
            * Retrieves a reference to the form that the object is embedded in. 
            */
          form: HTMLFormElement;
          prompt: string;
      }
      
      declare var HTMLIsIndexElement: {
          prototype: HTMLIsIndexElement;
          new(): HTMLIsIndexElement;
      }
      
      interface HTMLLIElement extends HTMLElement {
          type: string;
          /**
            * Sets or retrieves the value of a list item.
            */
          value: number;
      }
      
      declare var HTMLLIElement: {
          prototype: HTMLLIElement;
          new(): HTMLLIElement;
      }
      
      interface HTMLLabelElement extends HTMLElement {
          /**
            * Retrieves a reference to the form that the object is embedded in.
            */
          form: HTMLFormElement;
          /**
            * Sets or retrieves the object to which the given label object is assigned.
            */
          htmlFor: string;
      }
      
      declare var HTMLLabelElement: {
          prototype: HTMLLabelElement;
          new(): HTMLLabelElement;
      }
      
      interface HTMLLegendElement extends HTMLElement {
          /**
            * Retrieves a reference to the form that the object is embedded in.
            */
          align: string;
          /**
            * Retrieves a reference to the form that the object is embedded in.
            */
          form: HTMLFormElement;
      }
      
      declare var HTMLLegendElement: {
          prototype: HTMLLegendElement;
          new(): HTMLLegendElement;
      }
      
      interface HTMLLinkElement extends HTMLElement, LinkStyle {
          /**
            * Sets or retrieves the character set used to encode the object.
            */
          charset: string;
          disabled: boolean;
          /**
            * Sets or retrieves a destination URL or an anchor point.
            */
          href: string;
          /**
            * Sets or retrieves the language code of the object.
            */
          hreflang: string;
          /**
            * Sets or retrieves the media type.
            */
          media: string;
          /**
            * Sets or retrieves the relationship between the object and the destination of the link.
            */
          rel: string;
          /**
            * Sets or retrieves the relationship between the object and the destination of the link.
            */
          rev: string;
          /**
            * Sets or retrieves the window or frame at which to target content.
            */
          target: string;
          /**
            * Sets or retrieves the MIME type of the object.
            */
          type: string;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var HTMLLinkElement: {
          prototype: HTMLLinkElement;
          new(): HTMLLinkElement;
      }
      
      interface HTMLMapElement extends HTMLElement {
          /**
            * Retrieves a collection of the area objects defined for the given map object.
            */
          areas: HTMLAreasCollection;
          /**
            * Sets or retrieves the name of the object.
            */
          name: string;
      }
      
      declare var HTMLMapElement: {
          prototype: HTMLMapElement;
          new(): HTMLMapElement;
      }
      
      interface HTMLMarqueeElement extends HTMLElement {
          behavior: string;
          bgColor: any;
          direction: string;
          height: string;
          hspace: number;
          loop: number;
          onbounce: (ev: Event) => any;
          onfinish: (ev: Event) => any;
          onstart: (ev: Event) => any;
          scrollAmount: number;
          scrollDelay: number;
          trueSpeed: boolean;
          vspace: number;
          width: string;
          start(): void;
          stop(): void;
          addEventListener(type: "MSContentZoom", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureChange", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureDoubleTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureEnd", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureHold", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGotPointerCapture", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSInertiaStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSLostPointerCapture", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSManipulationStateChanged", listener: (ev: MSManipulationEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerCancel", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerDown", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerEnter", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerLeave", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerMove", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerOut", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerOver", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerUp", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "abort", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "activate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "ariarequest", listener: (ev: AriaRequestEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforeactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforecopy", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforecut", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforedeactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforepaste", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "blur", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "bounce", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "canplay", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "canplaythrough", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "change", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "click", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "command", listener: (ev: CommandEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "contextmenu", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "copy", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "cuechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "cut", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dblclick", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "deactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "drag", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragend", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragenter", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragleave", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragover", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragstart", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "drop", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "durationchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "emptied", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "ended", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "error", listener: (ev: ErrorEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "finish", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "focus", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "gotpointercapture", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "input", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "keydown", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "keypress", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "keyup", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "load", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadeddata", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadedmetadata", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadstart", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "lostpointercapture", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousedown", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseenter", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseleave", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousemove", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseout", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseover", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseup", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousewheel", listener: (ev: MouseWheelEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "paste", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pause", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "play", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "playing", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "pointercancel", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerdown", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerenter", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerleave", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointermove", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerout", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerover", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerup", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "progress", listener: (ev: ProgressEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "ratechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "reset", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "scroll", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "seeked", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "seeking", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "select", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "selectstart", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "stalled", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "start", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "submit", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "suspend", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "timeupdate", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "touchcancel", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchend", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchmove", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchstart", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "volumechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "waiting", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "webkitfullscreenchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "webkitfullscreenerror", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "wheel", listener: (ev: WheelEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var HTMLMarqueeElement: {
          prototype: HTMLMarqueeElement;
          new(): HTMLMarqueeElement;
      }
      
      interface HTMLMediaElement extends HTMLElement {
          /**
            * Returns an AudioTrackList object with the audio tracks for a given video element.
            */
          audioTracks: AudioTrackList;
          /**
            * Gets or sets a value that indicates whether to start playing the media automatically.
            */
          autoplay: boolean;
          /**
            * Gets a collection of buffered time ranges.
            */
          buffered: TimeRanges;
          /**
            * Gets or sets a flag that indicates whether the client provides a set of controls for the media (in case the developer does not include controls for the player).
            */
          controls: boolean;
          /**
            * Gets the address or URL of the current media resource that is selected by IHTMLMediaElement.
            */
          currentSrc: string;
          /**
            * Gets or sets the current playback position, in seconds.
            */
          currentTime: number;
          defaultMuted: boolean;
          /**
            * Gets or sets the default playback rate when the user is not using fast forward or reverse for a video or audio resource.
            */
          defaultPlaybackRate: number;
          /**
            * Returns the duration in seconds of the current media resource. A NaN value is returned if duration is not available, or Infinity if the media resource is streaming.
            */
          duration: number;
          /**
            * Gets information about whether the playback has ended or not.
            */
          ended: boolean;
          /**
            * Returns an object representing the current error state of the audio or video element.
            */
          error: MediaError;
          /**
            * Gets or sets a flag to specify whether playback should restart after it completes.
            */
          loop: boolean;
          /**
            * Specifies the purpose of the audio or video media, such as background audio or alerts.
            */
          msAudioCategory: string;
          /**
            * Specifies the output device id that the audio will be sent to.
            */
          msAudioDeviceType: string;
          msGraphicsTrustStatus: MSGraphicsTrust;
          /**
            * Gets the MSMediaKeys object, which is used for decrypting media data, that is associated with this media element.
            */
          msKeys: MSMediaKeys;
          /**
            * Gets or sets whether the DLNA PlayTo device is available.
            */
          msPlayToDisabled: boolean;
          /**
            * Gets or sets the path to the preferred media source. This enables the Play To target device to stream the media content, which can be DRM protected, from a different location, such as a cloud media server.
            */
          msPlayToPreferredSourceUri: string;
          /**
            * Gets or sets the primary DLNA PlayTo device.
            */
          msPlayToPrimary: boolean;
          /**
            * Gets the source associated with the media element for use by the PlayToManager.
            */
          msPlayToSource: any;
          /**
            * Specifies whether or not to enable low-latency playback on the media element.
            */
          msRealTime: boolean;
          /**
            * Gets or sets a flag that indicates whether the audio (either audio or the audio track on video media) is muted.
            */
          muted: boolean;
          /**
            * Gets the current network activity for the element.
            */
          networkState: number;
          onmsneedkey: (ev: MSMediaKeyNeededEvent) => any;
          /**
            * Gets a flag that specifies whether playback is paused.
            */
          paused: boolean;
          /**
            * Gets or sets the current rate of speed for the media resource to play. This speed is expressed as a multiple of the normal speed of the media resource.
            */
          playbackRate: number;
          /**
            * Gets TimeRanges for the current media resource that has been played.
            */
          played: TimeRanges;
          /**
            * Gets or sets the current playback position, in seconds.
            */
          preload: string;
          readyState: any;
          /**
            * Returns a TimeRanges object that represents the ranges of the current media resource that can be seeked.
            */
          seekable: TimeRanges;
          /**
            * Gets a flag that indicates whether the the client is currently moving to a new playback position in the media resource.
            */
          seeking: boolean;
          /**
            * The address or URL of the a media resource that is to be considered.
            */
          src: string;
          textTracks: TextTrackList;
          videoTracks: VideoTrackList;
          /**
            * Gets or sets the volume level for audio portions of the media element.
            */
          volume: number;
          addTextTrack(kind: string, label?: string, language?: string): TextTrack;
          /**
            * Returns a string that specifies whether the client can play a given media resource type.
            */
          canPlayType(type: string): string;
          /**
            * Fires immediately after the client loads the object.
            */
          load(): void;
          /**
            * Clears all effects from the media pipeline.
            */
          msClearEffects(): void;
          msGetAsCastingSource(): any;
          /**
            * Inserts the specified audio effect into media pipeline.
            */
          msInsertAudioEffect(activatableClassId: string, effectRequired: boolean, config?: any): void;
          msSetMediaKeys(mediaKeys: MSMediaKeys): void;
          /**
            * Specifies the media protection manager for a given media pipeline.
            */
          msSetMediaProtectionManager(mediaProtectionManager?: any): void;
          /**
            * Pauses the current playback and sets paused to TRUE. This can be used to test whether the media is playing or paused. You can also use the pause or play events to tell whether the media is playing or not.
            */
          pause(): void;
          /**
            * Loads and starts playback of a media resource.
            */
          play(): void;
          HAVE_CURRENT_DATA: number;
          HAVE_ENOUGH_DATA: number;
          HAVE_FUTURE_DATA: number;
          HAVE_METADATA: number;
          HAVE_NOTHING: number;
          NETWORK_EMPTY: number;
          NETWORK_IDLE: number;
          NETWORK_LOADING: number;
          NETWORK_NO_SOURCE: number;
          addEventListener(type: "MSContentZoom", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureChange", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureDoubleTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureEnd", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureHold", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGotPointerCapture", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSInertiaStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSLostPointerCapture", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSManipulationStateChanged", listener: (ev: MSManipulationEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerCancel", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerDown", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerEnter", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerLeave", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerMove", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerOut", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerOver", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerUp", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "abort", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "activate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "ariarequest", listener: (ev: AriaRequestEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforeactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforecopy", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforecut", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforedeactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforepaste", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "blur", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "canplay", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "canplaythrough", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "change", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "click", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "command", listener: (ev: CommandEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "contextmenu", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "copy", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "cuechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "cut", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dblclick", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "deactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "drag", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragend", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragenter", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragleave", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragover", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragstart", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "drop", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "durationchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "emptied", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "ended", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "error", listener: (ev: ErrorEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "focus", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "gotpointercapture", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "input", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "keydown", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "keypress", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "keyup", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "load", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadeddata", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadedmetadata", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadstart", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "lostpointercapture", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousedown", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseenter", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseleave", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousemove", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseout", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseover", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseup", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousewheel", listener: (ev: MouseWheelEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "msneedkey", listener: (ev: MSMediaKeyNeededEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "paste", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pause", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "play", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "playing", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "pointercancel", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerdown", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerenter", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerleave", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointermove", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerout", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerover", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerup", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "progress", listener: (ev: ProgressEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "ratechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "reset", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "scroll", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "seeked", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "seeking", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "select", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "selectstart", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "stalled", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "submit", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "suspend", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "timeupdate", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "touchcancel", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchend", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchmove", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchstart", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "volumechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "waiting", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "webkitfullscreenchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "webkitfullscreenerror", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "wheel", listener: (ev: WheelEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var HTMLMediaElement: {
          prototype: HTMLMediaElement;
          new(): HTMLMediaElement;
          HAVE_CURRENT_DATA: number;
          HAVE_ENOUGH_DATA: number;
          HAVE_FUTURE_DATA: number;
          HAVE_METADATA: number;
          HAVE_NOTHING: number;
          NETWORK_EMPTY: number;
          NETWORK_IDLE: number;
          NETWORK_LOADING: number;
          NETWORK_NO_SOURCE: number;
      }
      
      interface HTMLMenuElement extends HTMLElement {
          compact: boolean;
          type: string;
      }
      
      declare var HTMLMenuElement: {
          prototype: HTMLMenuElement;
          new(): HTMLMenuElement;
      }
      
      interface HTMLMetaElement extends HTMLElement {
          /**
            * Sets or retrieves the character set used to encode the object.
            */
          charset: string;
          /**
            * Gets or sets meta-information to associate with httpEquiv or name.
            */
          content: string;
          /**
            * Gets or sets information used to bind the value of a content attribute of a meta element to an HTTP response header.
            */
          httpEquiv: string;
          /**
            * Sets or retrieves the value specified in the content attribute of the meta object.
            */
          name: string;
          /**
            * Sets or retrieves a scheme to be used in interpreting the value of a property specified for the object.
            */
          scheme: string;
          /**
            * Sets or retrieves the URL property that will be loaded after the specified time has elapsed. 
            */
          url: string;
      }
      
      declare var HTMLMetaElement: {
          prototype: HTMLMetaElement;
          new(): HTMLMetaElement;
      }
      
      interface HTMLModElement extends HTMLElement {
          /**
            * Sets or retrieves reference information about the object.
            */
          cite: string;
          /**
            * Sets or retrieves the date and time of a modification to the object.
            */
          dateTime: string;
      }
      
      declare var HTMLModElement: {
          prototype: HTMLModElement;
          new(): HTMLModElement;
      }
      
      interface HTMLNextIdElement extends HTMLElement {
          n: string;
      }
      
      declare var HTMLNextIdElement: {
          prototype: HTMLNextIdElement;
          new(): HTMLNextIdElement;
      }
      
      interface HTMLOListElement extends HTMLElement {
          compact: boolean;
          /**
            * The starting number.
            */
          start: number;
          type: string;
      }
      
      declare var HTMLOListElement: {
          prototype: HTMLOListElement;
          new(): HTMLOListElement;
      }
      
      interface HTMLObjectElement extends HTMLElement, GetSVGDocument {
          /**
            * Retrieves a string of the URL where the object tag can be found. This is often the href of the document that the object is in, or the value set by a base element.
            */
          BaseHref: string;
          align: string;
          /**
            * Sets or retrieves a text alternative to the graphic.
            */
          alt: string;
          /**
            * Gets or sets the optional alternative HTML script to execute if the object fails to load.
            */
          altHtml: string;
          /**
            * Sets or retrieves a character string that can be used to implement your own archive functionality for the object.
            */
          archive: string;
          border: string;
          /**
            * Sets or retrieves the URL of the file containing the compiled Java class.
            */
          code: string;
          /**
            * Sets or retrieves the URL of the component.
            */
          codeBase: string;
          /**
            * Sets or retrieves the Internet media type for the code associated with the object.
            */
          codeType: string;
          /**
            * Retrieves the document object of the page or frame.
            */
          contentDocument: Document;
          /**
            * Sets or retrieves the URL that references the data of the object.
            */
          data: string;
          declare: boolean;
          /**
            * Retrieves a reference to the form that the object is embedded in.
            */
          form: HTMLFormElement;
          /**
            * Sets or retrieves the height of the object.
            */
          height: string;
          hspace: number;
          /**
            * Gets or sets whether the DLNA PlayTo device is available.
            */
          msPlayToDisabled: boolean;
          /**
            * Gets or sets the path to the preferred media source. This enables the Play To target device to stream the media content, which can be DRM protected, from a different location, such as a cloud media server.
            */
          msPlayToPreferredSourceUri: string;
          /**
            * Gets or sets the primary DLNA PlayTo device.
            */
          msPlayToPrimary: boolean;
          /**
            * Gets the source associated with the media element for use by the PlayToManager.
            */
          msPlayToSource: any;
          /**
            * Sets or retrieves the name of the object.
            */
          name: string;
          /**
            * Retrieves the contained object.
            */
          object: any;
          readyState: number;
          /**
            * Sets or retrieves a message to be displayed while an object is loading.
            */
          standby: string;
          /**
            * Sets or retrieves the MIME type of the object.
            */
          type: string;
          /**
            * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.
            */
          useMap: string;
          /**
            * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.
            */
          validationMessage: string;
          /**
            * Returns a  ValidityState object that represents the validity states of an element.
            */
          validity: ValidityState;
          vspace: number;
          /**
            * Sets or retrieves the width of the object.
            */
          width: string;
          /**
            * Returns whether an element will successfully validate based on forms validation rules and constraints.
            */
          willValidate: boolean;
          /**
            * Returns whether a form will validate when it is submitted, without having to submit it.
            */
          checkValidity(): boolean;
          /**
            * Sets a custom error message that is displayed when a form is submitted.
            * @param error Sets a custom error message that is displayed when a form is submitted.
            */
          setCustomValidity(error: string): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var HTMLObjectElement: {
          prototype: HTMLObjectElement;
          new(): HTMLObjectElement;
      }
      
      interface HTMLOptGroupElement extends HTMLElement {
          /**
            * Sets or retrieves the status of an option.
            */
          defaultSelected: boolean;
          disabled: boolean;
          /**
            * Retrieves a reference to the form that the object is embedded in.
            */
          form: HTMLFormElement;
          /**
            * Sets or retrieves the ordinal position of an option in a list box.
            */
          index: number;
          /**
            * Sets or retrieves a value that you can use to implement your own label functionality for the object.
            */
          label: string;
          /**
            * Sets or retrieves whether the option in the list box is the default item.
            */
          selected: boolean;
          /**
            * Sets or retrieves the text string specified by the option tag.
            */
          text: string;
          /**
            * Sets or retrieves the value which is returned to the server when the form control is submitted.
            */
          value: string;
      }
      
      declare var HTMLOptGroupElement: {
          prototype: HTMLOptGroupElement;
          new(): HTMLOptGroupElement;
      }
      
      interface HTMLOptionElement extends HTMLElement {
          /**
            * Sets or retrieves the status of an option.
            */
          defaultSelected: boolean;
          disabled: boolean;
          /**
            * Retrieves a reference to the form that the object is embedded in.
            */
          form: HTMLFormElement;
          /**
            * Sets or retrieves the ordinal position of an option in a list box.
            */
          index: number;
          /**
            * Sets or retrieves a value that you can use to implement your own label functionality for the object.
            */
          label: string;
          /**
            * Sets or retrieves whether the option in the list box is the default item.
            */
          selected: boolean;
          /**
            * Sets or retrieves the text string specified by the option tag.
            */
          text: string;
          /**
            * Sets or retrieves the value which is returned to the server when the form control is submitted.
            */
          value: string;
      }
      
      declare var HTMLOptionElement: {
          prototype: HTMLOptionElement;
          new(): HTMLOptionElement;
          create(): HTMLOptionElement;
      }
      
      interface HTMLParagraphElement extends HTMLElement {
          /**
            * Sets or retrieves how the object is aligned with adjacent text. 
            */
          align: string;
          clear: string;
      }
      
      declare var HTMLParagraphElement: {
          prototype: HTMLParagraphElement;
          new(): HTMLParagraphElement;
      }
      
      interface HTMLParamElement extends HTMLElement {
          /**
            * Sets or retrieves the name of an input parameter for an element.
            */
          name: string;
          /**
            * Sets or retrieves the content type of the resource designated by the value attribute.
            */
          type: string;
          /**
            * Sets or retrieves the value of an input parameter for an element.
            */
          value: string;
          /**
            * Sets or retrieves the data type of the value attribute.
            */
          valueType: string;
      }
      
      declare var HTMLParamElement: {
          prototype: HTMLParamElement;
          new(): HTMLParamElement;
      }
      
      interface HTMLPhraseElement extends HTMLElement {
          /**
            * Sets or retrieves reference information about the object.
            */
          cite: string;
          /**
            * Sets or retrieves the date and time of a modification to the object.
            */
          dateTime: string;
      }
      
      declare var HTMLPhraseElement: {
          prototype: HTMLPhraseElement;
          new(): HTMLPhraseElement;
      }
      
      interface HTMLPreElement extends HTMLElement {
          /**
            * Indicates a citation by rendering text in italic type.
            */
          cite: string;
          clear: string;
          /**
            * Sets or gets a value that you can use to implement your own width functionality for the object.
            */
          width: number;
      }
      
      declare var HTMLPreElement: {
          prototype: HTMLPreElement;
          new(): HTMLPreElement;
      }
      
      interface HTMLProgressElement extends HTMLElement {
          /**
            * Retrieves a reference to the form that the object is embedded in.
            */
          form: HTMLFormElement;
          /**
            * Defines the maximum, or "done" value for a progress element.
            */
          max: number;
          /**
            * Returns the quotient of value/max when the value attribute is set (determinate progress bar), or -1 when the value attribute is missing (indeterminate progress bar).
            */
          position: number;
          /**
            * Sets or gets the current value of a progress element. The value must be a non-negative number between 0 and the max value.
            */
          value: number;
      }
      
      declare var HTMLProgressElement: {
          prototype: HTMLProgressElement;
          new(): HTMLProgressElement;
      }
      
      interface HTMLQuoteElement extends HTMLElement {
          /**
            * Sets or retrieves reference information about the object.
            */
          cite: string;
          /**
            * Sets or retrieves the date and time of a modification to the object.
            */
          dateTime: string;
      }
      
      declare var HTMLQuoteElement: {
          prototype: HTMLQuoteElement;
          new(): HTMLQuoteElement;
      }
      
      interface HTMLScriptElement extends HTMLElement {
          async: boolean;
          /**
            * Sets or retrieves the character set used to encode the object.
            */
          charset: string;
          /**
            * Sets or retrieves the status of the script.
            */
          defer: boolean;
          /**
            * Sets or retrieves the event for which the script is written. 
            */
          event: string;
          /** 
            * Sets or retrieves the object that is bound to the event script.
            */
          htmlFor: string;
          /**
            * Retrieves the URL to an external file that contains the source code or data.
            */
          src: string;
          /**
            * Retrieves or sets the text of the object as a string. 
            */
          text: string;
          /**
            * Sets or retrieves the MIME type for the associated scripting engine.
            */
          type: string;
      }
      
      declare var HTMLScriptElement: {
          prototype: HTMLScriptElement;
          new(): HTMLScriptElement;
      }
      
      interface HTMLSelectElement extends HTMLElement {
          /**
            * Provides a way to direct a user to a specific field when a document loads. This can provide both direction and convenience for a user, reducing the need to click or tab to a field when a page opens. This attribute is true when present on an element, and false when missing.
            */
          autofocus: boolean;
          disabled: boolean;
          /**
            * Retrieves a reference to the form that the object is embedded in. 
            */
          form: HTMLFormElement;
          /**
            * Sets or retrieves the number of objects in a collection.
            */
          length: number;
          /**
            * Sets or retrieves the Boolean value indicating whether multiple items can be selected from a list.
            */
          multiple: boolean;
          /**
            * Sets or retrieves the name of the object.
            */
          name: string;
          options: HTMLSelectElement;
          /**
            * When present, marks an element that can't be submitted without a value.
            */
          required: boolean;
          /**
            * Sets or retrieves the index of the selected option in a select object.
            */
          selectedIndex: number;
          /**
            * Sets or retrieves the number of rows in the list box. 
            */
          size: number;
          /**
            * Retrieves the type of select control based on the value of the MULTIPLE attribute.
            */
          type: string;
          /**
            * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.
            */
          validationMessage: string;
          /**
            * Returns a  ValidityState object that represents the validity states of an element.
            */
          validity: ValidityState;
          /**
            * Sets or retrieves the value which is returned to the server when the form control is submitted.
            */
          value: string;
          /**
            * Returns whether an element will successfully validate based on forms validation rules and constraints.
            */
          willValidate: boolean;
          /**
            * Adds an element to the areas, controlRange, or options collection.
            * @param element Variant of type Number that specifies the index position in the collection where the element is placed. If no value is given, the method places the element at the end of the collection.
            * @param before Variant of type Object that specifies an element to insert before, or null to append the object to the collection. 
            */
          add(element: HTMLElement, before?: HTMLElement): void;
          add(element: HTMLElement, before?: number): void;
          /**
            * Returns whether a form will validate when it is submitted, without having to submit it.
            */
          checkValidity(): boolean;
          /**
            * Retrieves a select object or an object from an options collection.
            * @param name Variant of type Number or String that specifies the object or collection to retrieve. If this parameter is an integer, it is the zero-based index of the object. If this parameter is a string, all objects with matching name or id properties are retrieved, and a collection is returned if more than one match is made.
            * @param index Variant of type Number that specifies the zero-based index of the object to retrieve when a collection is returned.
            */
          item(name?: any, index?: any): any;
          /**
            * Retrieves a select object or an object from an options collection.
            * @param namedItem A String that specifies the name or id property of the object to retrieve. A collection is returned if more than one match is made.
            */
          namedItem(name: string): any;
          /**
            * Removes an element from the collection.
            * @param index Number that specifies the zero-based index of the element to remove from the collection.
            */
          remove(index?: number): void;
          /**
            * Sets a custom error message that is displayed when a form is submitted.
            * @param error Sets a custom error message that is displayed when a form is submitted.
            */
          setCustomValidity(error: string): void;
          [name: string]: any;
      }
      
      declare var HTMLSelectElement: {
          prototype: HTMLSelectElement;
          new(): HTMLSelectElement;
      }
      
      interface HTMLSourceElement extends HTMLElement {
          /**
            * Gets or sets the intended media type of the media source.
           */
          media: string;
          msKeySystem: string;
          /**
            * The address or URL of the a media resource that is to be considered.
            */
          src: string;
          /**
           * Gets or sets the MIME type of a media resource.
           */
          type: string;
      }
      
      declare var HTMLSourceElement: {
          prototype: HTMLSourceElement;
          new(): HTMLSourceElement;
      }
      
      interface HTMLSpanElement extends HTMLElement {
      }
      
      declare var HTMLSpanElement: {
          prototype: HTMLSpanElement;
          new(): HTMLSpanElement;
      }
      
      interface HTMLStyleElement extends HTMLElement, LinkStyle {
          /**
            * Sets or retrieves the media type.
            */
          media: string;
          /**
            * Retrieves the CSS language in which the style sheet is written.
            */
          type: string;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var HTMLStyleElement: {
          prototype: HTMLStyleElement;
          new(): HTMLStyleElement;
      }
      
      interface HTMLTableCaptionElement extends HTMLElement {
          /**
            * Sets or retrieves the alignment of the caption or legend.
            */
          align: string;
          /**
            * Sets or retrieves whether the caption appears at the top or bottom of the table.
            */
          vAlign: string;
      }
      
      declare var HTMLTableCaptionElement: {
          prototype: HTMLTableCaptionElement;
          new(): HTMLTableCaptionElement;
      }
      
      interface HTMLTableCellElement extends HTMLElement, HTMLTableAlignment {
          /**
            * Sets or retrieves abbreviated text for the object.
            */
          abbr: string;
          /**
            * Sets or retrieves how the object is aligned with adjacent text.
            */
          align: string;
          /**
            * Sets or retrieves a comma-delimited list of conceptual categories associated with the object.
            */
          axis: string;
          bgColor: any;
          /**
            * Retrieves the position of the object in the cells collection of a row.
            */
          cellIndex: number;
          /**
            * Sets or retrieves the number columns in the table that the object should span.
            */
          colSpan: number;
          /**
            * Sets or retrieves a list of header cells that provide information for the object.
            */
          headers: string;
          /**
            * Sets or retrieves the height of the object.
            */
          height: any;
          /**
            * Sets or retrieves whether the browser automatically performs wordwrap.
            */
          noWrap: boolean;
          /**
            * Sets or retrieves how many rows in a table the cell should span.
            */
          rowSpan: number;
          /**
            * Sets or retrieves the group of cells in a table to which the object's information applies.
            */
          scope: string;
          /**
            * Sets or retrieves the width of the object.
            */
          width: string;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var HTMLTableCellElement: {
          prototype: HTMLTableCellElement;
          new(): HTMLTableCellElement;
      }
      
      interface HTMLTableColElement extends HTMLElement, HTMLTableAlignment {
          /**
            * Sets or retrieves the alignment of the object relative to the display or table.
            */
          align: string;
          /**
            * Sets or retrieves the number of columns in the group.
            */
          span: number;
          /**
            * Sets or retrieves the width of the object.
            */
          width: any;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var HTMLTableColElement: {
          prototype: HTMLTableColElement;
          new(): HTMLTableColElement;
      }
      
      interface HTMLTableDataCellElement extends HTMLTableCellElement {
      }
      
      declare var HTMLTableDataCellElement: {
          prototype: HTMLTableDataCellElement;
          new(): HTMLTableDataCellElement;
      }
      
      interface HTMLTableElement extends HTMLElement {
          /**
            * Sets or retrieves a value that indicates the table alignment.
            */
          align: string;
          bgColor: any;
          /**
            * Sets or retrieves the width of the border to draw around the object.
            */
          border: string;
          /**
            * Sets or retrieves the border color of the object. 
            */
          borderColor: any;
          /**
            * Retrieves the caption object of a table.
            */
          caption: HTMLTableCaptionElement;
          /**
            * Sets or retrieves the amount of space between the border of the cell and the content of the cell.
            */
          cellPadding: string;
          /**
            * Sets or retrieves the amount of space between cells in a table.
            */
          cellSpacing: string;
          /**
            * Sets or retrieves the number of columns in the table.
            */
          cols: number;
          /**
            * Sets or retrieves the way the border frame around the table is displayed.
            */
          frame: string;
          /**
            * Sets or retrieves the height of the object.
            */
          height: any;
          /**
            * Sets or retrieves the number of horizontal rows contained in the object.
            */
          rows: HTMLCollection;
          /**
            * Sets or retrieves which dividing lines (inner borders) are displayed.
            */
          rules: string;
          /**
            * Sets or retrieves a description and/or structure of the object.
            */
          summary: string;
          /**
            * Retrieves a collection of all tBody objects in the table. Objects in this collection are in source order.
            */
          tBodies: HTMLCollection;
          /**
            * Retrieves the tFoot object of the table.
            */
          tFoot: HTMLTableSectionElement;
          /**
            * Retrieves the tHead object of the table.
            */
          tHead: HTMLTableSectionElement;
          /**
            * Sets or retrieves the width of the object.
            */
          width: string;
          /**
            * Creates an empty caption element in the table.
            */
          createCaption(): HTMLElement;
          /**
            * Creates an empty tBody element in the table.
            */
          createTBody(): HTMLElement;
          /**
            * Creates an empty tFoot element in the table.
            */
          createTFoot(): HTMLElement;
          /**
            * Returns the tHead element object if successful, or null otherwise.
            */
          createTHead(): HTMLElement;
          /**
            * Deletes the caption element and its contents from the table.
            */
          deleteCaption(): void;
          /**
            * Removes the specified row (tr) from the element and from the rows collection.
            * @param index Number that specifies the zero-based position in the rows collection of the row to remove.
            */
          deleteRow(index?: number): void;
          /**
            * Deletes the tFoot element and its contents from the table.
            */
          deleteTFoot(): void;
          /**
            * Deletes the tHead element and its contents from the table.
            */
          deleteTHead(): void;
          /**
            * Creates a new row (tr) in the table, and adds the row to the rows collection.
            * @param index Number that specifies where to insert the row in the rows collection. The default value is -1, which appends the new row to the end of the rows collection.
            */
          insertRow(index?: number): HTMLElement;
      }
      
      declare var HTMLTableElement: {
          prototype: HTMLTableElement;
          new(): HTMLTableElement;
      }
      
      interface HTMLTableHeaderCellElement extends HTMLTableCellElement {
          /**
            * Sets or retrieves the group of cells in a table to which the object's information applies.
            */
          scope: string;
      }
      
      declare var HTMLTableHeaderCellElement: {
          prototype: HTMLTableHeaderCellElement;
          new(): HTMLTableHeaderCellElement;
      }
      
      interface HTMLTableRowElement extends HTMLElement, HTMLTableAlignment {
          /**
            * Sets or retrieves how the object is aligned with adjacent text.
            */
          align: string;
          bgColor: any;
          /**
            * Retrieves a collection of all cells in the table row.
            */
          cells: HTMLCollection;
          /**
            * Sets or retrieves the height of the object.
            */
          height: any;
          /**
            * Retrieves the position of the object in the rows collection for the table.
            */
          rowIndex: number;
          /**
            * Retrieves the position of the object in the collection.
            */
          sectionRowIndex: number;
          /**
            * Removes the specified cell from the table row, as well as from the cells collection.
            * @param index Number that specifies the zero-based position of the cell to remove from the table row. If no value is provided, the last cell in the cells collection is deleted.
            */
          deleteCell(index?: number): void;
          /**
            * Creates a new cell in the table row, and adds the cell to the cells collection.
            * @param index Number that specifies where to insert the cell in the tr. The default value is -1, which appends the new cell to the end of the cells collection.
            */
          insertCell(index?: number): HTMLElement;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var HTMLTableRowElement: {
          prototype: HTMLTableRowElement;
          new(): HTMLTableRowElement;
      }
      
      interface HTMLTableSectionElement extends HTMLElement, HTMLTableAlignment {
          /**
            * Sets or retrieves a value that indicates the table alignment.
            */
          align: string;
          /**
            * Sets or retrieves the number of horizontal rows contained in the object.
            */
          rows: HTMLCollection;
          /**
            * Removes the specified row (tr) from the element and from the rows collection.
            * @param index Number that specifies the zero-based position in the rows collection of the row to remove.
            */
          deleteRow(index?: number): void;
          /**
            * Creates a new row (tr) in the table, and adds the row to the rows collection.
            * @param index Number that specifies where to insert the row in the rows collection. The default value is -1, which appends the new row to the end of the rows collection.
            */
          insertRow(index?: number): HTMLElement;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var HTMLTableSectionElement: {
          prototype: HTMLTableSectionElement;
          new(): HTMLTableSectionElement;
      }
      
      interface HTMLTextAreaElement extends HTMLElement {
          /**
            * Provides a way to direct a user to a specific field when a document loads. This can provide both direction and convenience for a user, reducing the need to click or tab to a field when a page opens. This attribute is true when present on an element, and false when missing.
            */
          autofocus: boolean;
          /**
            * Sets or retrieves the width of the object.
            */
          cols: number;
          /**
            * Sets or retrieves the initial contents of the object.
            */
          defaultValue: string;
          disabled: boolean;
          /**
            * Retrieves a reference to the form that the object is embedded in.
            */
          form: HTMLFormElement;
          /**
            * Sets or retrieves the maximum number of characters that the user can enter in a text control.
            */
          maxLength: number;
          /**
            * Sets or retrieves the name of the object.
            */
          name: string;
          /**
            * Gets or sets a text string that is displayed in an input field as a hint or prompt to users as the format or type of information they need to enter.The text appears in an input field until the user puts focus on the field.
            */
          placeholder: string;
          /**
            * Sets or retrieves the value indicated whether the content of the object is read-only.
            */
          readOnly: boolean;
          /**
            * When present, marks an element that can't be submitted without a value.
            */
          required: boolean;
          /**
            * Sets or retrieves the number of horizontal rows contained in the object.
            */
          rows: number;
          /**
            * Gets or sets the end position or offset of a text selection.
            */
          selectionEnd: number;
          /**
            * Gets or sets the starting position or offset of a text selection.
            */
          selectionStart: number;
          /**
            * Sets or retrieves the value indicating whether the control is selected.
            */
          status: any;
          /**
            * Retrieves the type of control.
            */
          type: string;
          /**
            * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.
            */
          validationMessage: string;
          /**
            * Returns a  ValidityState object that represents the validity states of an element.
            */
          validity: ValidityState;
          /**
            * Retrieves or sets the text in the entry field of the textArea element.
            */
          value: string;
          /**
            * Returns whether an element will successfully validate based on forms validation rules and constraints.
            */
          willValidate: boolean;
          /**
            * Sets or retrieves how to handle wordwrapping in the object.
            */
          wrap: string;
          /**
            * Returns whether a form will validate when it is submitted, without having to submit it.
            */
          checkValidity(): boolean;
          /**
            * Creates a TextRange object for the element.
            */
          createTextRange(): TextRange;
          /**
            * Highlights the input area of a form element.
            */
          select(): void;
          /**
            * Sets a custom error message that is displayed when a form is submitted.
            * @param error Sets a custom error message that is displayed when a form is submitted.
            */
          setCustomValidity(error: string): void;
          /**
            * Sets the start and end positions of a selection in a text field.
            * @param start The offset into the text field for the start of the selection.
            * @param end The offset into the text field for the end of the selection.
            */
          setSelectionRange(start: number, end: number): void;
      }
      
      declare var HTMLTextAreaElement: {
          prototype: HTMLTextAreaElement;
          new(): HTMLTextAreaElement;
      }
      
      interface HTMLTitleElement extends HTMLElement {
          /**
            * Retrieves or sets the text of the object as a string. 
            */
          text: string;
      }
      
      declare var HTMLTitleElement: {
          prototype: HTMLTitleElement;
          new(): HTMLTitleElement;
      }
      
      interface HTMLTrackElement extends HTMLElement {
          default: boolean;
          kind: string;
          label: string;
          readyState: number;
          src: string;
          srclang: string;
          track: TextTrack;
          ERROR: number;
          LOADED: number;
          LOADING: number;
          NONE: number;
      }
      
      declare var HTMLTrackElement: {
          prototype: HTMLTrackElement;
          new(): HTMLTrackElement;
          ERROR: number;
          LOADED: number;
          LOADING: number;
          NONE: number;
      }
      
      interface HTMLUListElement extends HTMLElement {
          compact: boolean;
          type: string;
      }
      
      declare var HTMLUListElement: {
          prototype: HTMLUListElement;
          new(): HTMLUListElement;
      }
      
      interface HTMLUnknownElement extends HTMLElement {
      }
      
      declare var HTMLUnknownElement: {
          prototype: HTMLUnknownElement;
          new(): HTMLUnknownElement;
      }
      
      interface HTMLVideoElement extends HTMLMediaElement {
          /**
            * Gets or sets the height of the video element.
            */
          height: number;
          msHorizontalMirror: boolean;
          msIsLayoutOptimalForPlayback: boolean;
          msIsStereo3D: boolean;
          msStereo3DPackingMode: string;
          msStereo3DRenderMode: string;
          msZoom: boolean;
          onMSVideoFormatChanged: (ev: Event) => any;
          onMSVideoFrameStepCompleted: (ev: Event) => any;
          onMSVideoOptimalLayoutChanged: (ev: Event) => any;
          /**
            * Gets or sets a URL of an image to display, for example, like a movie poster. This can be a still frame from the video, or another image if no video data is available.
            */
          poster: string;
          /**
            * Gets the intrinsic height of a video in CSS pixels, or zero if the dimensions are not known.
            */
          videoHeight: number;
          /**
            * Gets the intrinsic width of a video in CSS pixels, or zero if the dimensions are not known.
            */
          videoWidth: number;
          webkitDisplayingFullscreen: boolean;
          webkitSupportsFullscreen: boolean;
          /**
            * Gets or sets the width of the video element.
            */
          width: number;
          getVideoPlaybackQuality(): VideoPlaybackQuality;
          msFrameStep(forward: boolean): void;
          msInsertVideoEffect(activatableClassId: string, effectRequired: boolean, config?: any): void;
          msSetVideoRectangle(left: number, top: number, right: number, bottom: number): void;
          webkitEnterFullScreen(): void;
          webkitEnterFullscreen(): void;
          webkitExitFullScreen(): void;
          webkitExitFullscreen(): void;
          addEventListener(type: "MSContentZoom", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureChange", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureDoubleTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureEnd", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureHold", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGotPointerCapture", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSInertiaStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSLostPointerCapture", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSManipulationStateChanged", listener: (ev: MSManipulationEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerCancel", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerDown", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerEnter", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerLeave", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerMove", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerOut", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerOver", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerUp", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSVideoFormatChanged", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "MSVideoFrameStepCompleted", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "MSVideoOptimalLayoutChanged", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "abort", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "activate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "ariarequest", listener: (ev: AriaRequestEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforeactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforecopy", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforecut", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforedeactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "beforepaste", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "blur", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "canplay", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "canplaythrough", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "change", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "click", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "command", listener: (ev: CommandEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "contextmenu", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "copy", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "cuechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "cut", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dblclick", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "deactivate", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "drag", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragend", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragenter", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragleave", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragover", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragstart", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "drop", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "durationchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "emptied", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "ended", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "error", listener: (ev: ErrorEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "focus", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "gotpointercapture", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "input", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "keydown", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "keypress", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "keyup", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "load", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadeddata", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadedmetadata", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadstart", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "lostpointercapture", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousedown", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseenter", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseleave", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousemove", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseout", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseover", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseup", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousewheel", listener: (ev: MouseWheelEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "msneedkey", listener: (ev: MSMediaKeyNeededEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "paste", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pause", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "play", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "playing", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "pointercancel", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerdown", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerenter", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerleave", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointermove", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerout", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerover", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerup", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "progress", listener: (ev: ProgressEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "ratechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "reset", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "scroll", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "seeked", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "seeking", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "select", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "selectstart", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "stalled", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "submit", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "suspend", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "timeupdate", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "touchcancel", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchend", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchmove", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchstart", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "volumechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "waiting", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "webkitfullscreenchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "webkitfullscreenerror", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "wheel", listener: (ev: WheelEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var HTMLVideoElement: {
          prototype: HTMLVideoElement;
          new(): HTMLVideoElement;
      }
      
      interface HashChangeEvent extends Event {
          newURL: string;
          oldURL: string;
      }
      
      declare var HashChangeEvent: {
          prototype: HashChangeEvent;
          new(type: string, eventInitDict?: HashChangeEventInit): HashChangeEvent;
      }
      
      interface History {
          length: number;
          state: any;
          back(distance?: any): void;
          forward(distance?: any): void;
          go(delta?: any): void;
          pushState(statedata: any, title?: string, url?: string): void;
          replaceState(statedata: any, title?: string, url?: string): void;
      }
      
      declare var History: {
          prototype: History;
          new(): History;
      }
      
      interface IDBCursor {
          direction: string;
          key: any;
          primaryKey: any;
          source: any;
          advance(count: number): void;
          continue(key?: any): void;
          delete(): IDBRequest;
          update(value: any): IDBRequest;
          NEXT: string;
          NEXT_NO_DUPLICATE: string;
          PREV: string;
          PREV_NO_DUPLICATE: string;
      }
      
      declare var IDBCursor: {
          prototype: IDBCursor;
          new(): IDBCursor;
          NEXT: string;
          NEXT_NO_DUPLICATE: string;
          PREV: string;
          PREV_NO_DUPLICATE: string;
      }
      
      interface IDBCursorWithValue extends IDBCursor {
          value: any;
      }
      
      declare var IDBCursorWithValue: {
          prototype: IDBCursorWithValue;
          new(): IDBCursorWithValue;
      }
      
      interface IDBDatabase extends EventTarget {
          name: string;
          objectStoreNames: DOMStringList;
          onabort: (ev: Event) => any;
          onerror: (ev: Event) => any;
          version: string;
          close(): void;
          createObjectStore(name: string, optionalParameters?: any): IDBObjectStore;
          deleteObjectStore(name: string): void;
          transaction(storeNames: any, mode?: string): IDBTransaction;
          addEventListener(type: "abort", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "error", listener: (ev: ErrorEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var IDBDatabase: {
          prototype: IDBDatabase;
          new(): IDBDatabase;
      }
      
      interface IDBFactory {
          cmp(first: any, second: any): number;
          deleteDatabase(name: string): IDBOpenDBRequest;
          open(name: string, version?: number): IDBOpenDBRequest;
      }
      
      declare var IDBFactory: {
          prototype: IDBFactory;
          new(): IDBFactory;
      }
      
      interface IDBIndex {
          keyPath: string;
          name: string;
          objectStore: IDBObjectStore;
          unique: boolean;
          count(key?: any): IDBRequest;
          get(key: any): IDBRequest;
          getKey(key: any): IDBRequest;
          openCursor(range?: IDBKeyRange, direction?: string): IDBRequest;
          openKeyCursor(range?: IDBKeyRange, direction?: string): IDBRequest;
      }
      
      declare var IDBIndex: {
          prototype: IDBIndex;
          new(): IDBIndex;
      }
      
      interface IDBKeyRange {
          lower: any;
          lowerOpen: boolean;
          upper: any;
          upperOpen: boolean;
      }
      
      declare var IDBKeyRange: {
          prototype: IDBKeyRange;
          new(): IDBKeyRange;
          bound(lower: any, upper: any, lowerOpen?: boolean, upperOpen?: boolean): IDBKeyRange;
          lowerBound(bound: any, open?: boolean): IDBKeyRange;
          only(value: any): IDBKeyRange;
          upperBound(bound: any, open?: boolean): IDBKeyRange;
      }
      
      interface IDBObjectStore {
          indexNames: DOMStringList;
          keyPath: string;
          name: string;
          transaction: IDBTransaction;
          add(value: any, key?: any): IDBRequest;
          clear(): IDBRequest;
          count(key?: any): IDBRequest;
          createIndex(name: string, keyPath: string, optionalParameters?: any): IDBIndex;
          delete(key: any): IDBRequest;
          deleteIndex(indexName: string): void;
          get(key: any): IDBRequest;
          index(name: string): IDBIndex;
          openCursor(range?: any, direction?: string): IDBRequest;
          put(value: any, key?: any): IDBRequest;
      }
      
      declare var IDBObjectStore: {
          prototype: IDBObjectStore;
          new(): IDBObjectStore;
      }
      
      interface IDBOpenDBRequest extends IDBRequest {
          onblocked: (ev: Event) => any;
          onupgradeneeded: (ev: IDBVersionChangeEvent) => any;
          addEventListener(type: "blocked", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "error", listener: (ev: ErrorEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "success", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "upgradeneeded", listener: (ev: IDBVersionChangeEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var IDBOpenDBRequest: {
          prototype: IDBOpenDBRequest;
          new(): IDBOpenDBRequest;
      }
      
      interface IDBRequest extends EventTarget {
          error: DOMError;
          onerror: (ev: Event) => any;
          onsuccess: (ev: Event) => any;
          readyState: string;
          result: any;
          source: any;
          transaction: IDBTransaction;
          addEventListener(type: "error", listener: (ev: ErrorEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "success", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var IDBRequest: {
          prototype: IDBRequest;
          new(): IDBRequest;
      }
      
      interface IDBTransaction extends EventTarget {
          db: IDBDatabase;
          error: DOMError;
          mode: string;
          onabort: (ev: Event) => any;
          oncomplete: (ev: Event) => any;
          onerror: (ev: Event) => any;
          abort(): void;
          objectStore(name: string): IDBObjectStore;
          READ_ONLY: string;
          READ_WRITE: string;
          VERSION_CHANGE: string;
          addEventListener(type: "abort", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "complete", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "error", listener: (ev: ErrorEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var IDBTransaction: {
          prototype: IDBTransaction;
          new(): IDBTransaction;
          READ_ONLY: string;
          READ_WRITE: string;
          VERSION_CHANGE: string;
      }
      
      interface IDBVersionChangeEvent extends Event {
          newVersion: number;
          oldVersion: number;
      }
      
      declare var IDBVersionChangeEvent: {
          prototype: IDBVersionChangeEvent;
          new(): IDBVersionChangeEvent;
      }
      
      interface ImageData {
          data: number[];
          height: number;
          width: number;
      }
      
      declare var ImageData: {
          prototype: ImageData;
          new(): ImageData;
      }
      
      interface KeyboardEvent extends UIEvent {
          altKey: boolean;
          char: string;
          charCode: number;
          ctrlKey: boolean;
          key: string;
          keyCode: number;
          locale: string;
          location: number;
          metaKey: boolean;
          repeat: boolean;
          shiftKey: boolean;
          which: number;
          getModifierState(keyArg: string): boolean;
          initKeyboardEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, keyArg: string, locationArg: number, modifiersListArg: string, repeat: boolean, locale: string): void;
          DOM_KEY_LOCATION_JOYSTICK: number;
          DOM_KEY_LOCATION_LEFT: number;
          DOM_KEY_LOCATION_MOBILE: number;
          DOM_KEY_LOCATION_NUMPAD: number;
          DOM_KEY_LOCATION_RIGHT: number;
          DOM_KEY_LOCATION_STANDARD: number;
      }
      
      declare var KeyboardEvent: {
          prototype: KeyboardEvent;
          new(typeArg: string, eventInitDict?: KeyboardEventInit): KeyboardEvent;
          DOM_KEY_LOCATION_JOYSTICK: number;
          DOM_KEY_LOCATION_LEFT: number;
          DOM_KEY_LOCATION_MOBILE: number;
          DOM_KEY_LOCATION_NUMPAD: number;
          DOM_KEY_LOCATION_RIGHT: number;
          DOM_KEY_LOCATION_STANDARD: number;
      }
      
      interface Location {
          hash: string;
          host: string;
          hostname: string;
          href: string;
          origin: string;
          pathname: string;
          port: string;
          protocol: string;
          search: string;
          assign(url: string): void;
          reload(forcedReload?: boolean): void;
          replace(url: string): void;
          toString(): string;
      }
      
      declare var Location: {
          prototype: Location;
          new(): Location;
      }
      
      interface LongRunningScriptDetectedEvent extends Event {
          executionTime: number;
          stopPageScriptExecution: boolean;
      }
      
      declare var LongRunningScriptDetectedEvent: {
          prototype: LongRunningScriptDetectedEvent;
          new(): LongRunningScriptDetectedEvent;
      }
      
      interface MSApp {
          clearTemporaryWebDataAsync(): MSAppAsyncOperation;
          createBlobFromRandomAccessStream(type: string, seeker: any): Blob;
          createDataPackage(object: any): any;
          createDataPackageFromSelection(): any;
          createFileFromStorageFile(storageFile: any): File;
          createStreamFromInputStream(type: string, inputStream: any): MSStream;
          execAsyncAtPriority(asynchronousCallback: MSExecAtPriorityFunctionCallback, priority: string, ...args: any[]): void;
          execAtPriority(synchronousCallback: MSExecAtPriorityFunctionCallback, priority: string, ...args: any[]): any;
          getCurrentPriority(): string;
          getHtmlPrintDocumentSourceAsync(htmlDoc: any): any;
          getViewId(view: any): any;
          isTaskScheduledAtPriorityOrHigher(priority: string): boolean;
          pageHandlesAllApplicationActivations(enabled: boolean): void;
          suppressSubdownloadCredentialPrompts(suppress: boolean): void;
          terminateApp(exceptionObject: any): void;
          CURRENT: string;
          HIGH: string;
          IDLE: string;
          NORMAL: string;
      }
      declare var MSApp: MSApp;
      
      interface MSAppAsyncOperation extends EventTarget {
          error: DOMError;
          oncomplete: (ev: Event) => any;
          onerror: (ev: Event) => any;
          readyState: number;
          result: any;
          start(): void;
          COMPLETED: number;
          ERROR: number;
          STARTED: number;
          addEventListener(type: "complete", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "error", listener: (ev: ErrorEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var MSAppAsyncOperation: {
          prototype: MSAppAsyncOperation;
          new(): MSAppAsyncOperation;
          COMPLETED: number;
          ERROR: number;
          STARTED: number;
      }
      
      interface MSBlobBuilder {
          append(data: any, endings?: string): void;
          getBlob(contentType?: string): Blob;
      }
      
      declare var MSBlobBuilder: {
          prototype: MSBlobBuilder;
          new(): MSBlobBuilder;
      }
      
      interface MSCSSMatrix {
          a: number;
          b: number;
          c: number;
          d: number;
          e: number;
          f: number;
          m11: number;
          m12: number;
          m13: number;
          m14: number;
          m21: number;
          m22: number;
          m23: number;
          m24: number;
          m31: number;
          m32: number;
          m33: number;
          m34: number;
          m41: number;
          m42: number;
          m43: number;
          m44: number;
          inverse(): MSCSSMatrix;
          multiply(secondMatrix: MSCSSMatrix): MSCSSMatrix;
          rotate(angleX: number, angleY?: number, angleZ?: number): MSCSSMatrix;
          rotateAxisAngle(x: number, y: number, z: number, angle: number): MSCSSMatrix;
          scale(scaleX: number, scaleY?: number, scaleZ?: number): MSCSSMatrix;
          setMatrixValue(value: string): void;
          skewX(angle: number): MSCSSMatrix;
          skewY(angle: number): MSCSSMatrix;
          toString(): string;
          translate(x: number, y: number, z?: number): MSCSSMatrix;
      }
      
      declare var MSCSSMatrix: {
          prototype: MSCSSMatrix;
          new(text?: string): MSCSSMatrix;
      }
      
      interface MSGesture {
          target: Element;
          addPointer(pointerId: number): void;
          stop(): void;
      }
      
      declare var MSGesture: {
          prototype: MSGesture;
          new(): MSGesture;
      }
      
      interface MSGestureEvent extends UIEvent {
          clientX: number;
          clientY: number;
          expansion: number;
          gestureObject: any;
          hwTimestamp: number;
          offsetX: number;
          offsetY: number;
          rotation: number;
          scale: number;
          screenX: number;
          screenY: number;
          translationX: number;
          translationY: number;
          velocityAngular: number;
          velocityExpansion: number;
          velocityX: number;
          velocityY: number;
          initGestureEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, screenXArg: number, screenYArg: number, clientXArg: number, clientYArg: number, offsetXArg: number, offsetYArg: number, translationXArg: number, translationYArg: number, scaleArg: number, expansionArg: number, rotationArg: number, velocityXArg: number, velocityYArg: number, velocityExpansionArg: number, velocityAngularArg: number, hwTimestampArg: number): void;
          MSGESTURE_FLAG_BEGIN: number;
          MSGESTURE_FLAG_CANCEL: number;
          MSGESTURE_FLAG_END: number;
          MSGESTURE_FLAG_INERTIA: number;
          MSGESTURE_FLAG_NONE: number;
      }
      
      declare var MSGestureEvent: {
          prototype: MSGestureEvent;
          new(): MSGestureEvent;
          MSGESTURE_FLAG_BEGIN: number;
          MSGESTURE_FLAG_CANCEL: number;
          MSGESTURE_FLAG_END: number;
          MSGESTURE_FLAG_INERTIA: number;
          MSGESTURE_FLAG_NONE: number;
      }
      
      interface MSGraphicsTrust {
          constrictionActive: boolean;
          status: string;
      }
      
      declare var MSGraphicsTrust: {
          prototype: MSGraphicsTrust;
          new(): MSGraphicsTrust;
      }
      
      interface MSHTMLWebViewElement extends HTMLElement {
          canGoBack: boolean;
          canGoForward: boolean;
          containsFullScreenElement: boolean;
          documentTitle: string;
          height: number;
          settings: MSWebViewSettings;
          src: string;
          width: number;
          addWebAllowedObject(name: string, applicationObject: any): void;
          buildLocalStreamUri(contentIdentifier: string, relativePath: string): string;
          capturePreviewToBlobAsync(): MSWebViewAsyncOperation;
          captureSelectedContentToDataPackageAsync(): MSWebViewAsyncOperation;
          getDeferredPermissionRequestById(id: number): DeferredPermissionRequest;
          getDeferredPermissionRequests(): DeferredPermissionRequest[];
          goBack(): void;
          goForward(): void;
          invokeScriptAsync(scriptName: string, ...args: any[]): MSWebViewAsyncOperation;
          navigate(uri: string): void;
          navigateToLocalStreamUri(source: string, streamResolver: any): void;
          navigateToString(contents: string): void;
          navigateWithHttpRequestMessage(requestMessage: any): void;
          refresh(): void;
          stop(): void;
      }
      
      declare var MSHTMLWebViewElement: {
          prototype: MSHTMLWebViewElement;
          new(): MSHTMLWebViewElement;
      }
      
      interface MSHeaderFooter {
          URL: string;
          dateLong: string;
          dateShort: string;
          font: string;
          htmlFoot: string;
          htmlHead: string;
          page: number;
          pageTotal: number;
          textFoot: string;
          textHead: string;
          timeLong: string;
          timeShort: string;
          title: string;
      }
      
      declare var MSHeaderFooter: {
          prototype: MSHeaderFooter;
          new(): MSHeaderFooter;
      }
      
      interface MSInputMethodContext extends EventTarget {
          compositionEndOffset: number;
          compositionStartOffset: number;
          oncandidatewindowhide: (ev: Event) => any;
          oncandidatewindowshow: (ev: Event) => any;
          oncandidatewindowupdate: (ev: Event) => any;
          target: HTMLElement;
          getCandidateWindowClientRect(): ClientRect;
          getCompositionAlternatives(): string[];
          hasComposition(): boolean;
          isCandidateWindowVisible(): boolean;
          addEventListener(type: "MSCandidateWindowHide", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "MSCandidateWindowShow", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "MSCandidateWindowUpdate", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var MSInputMethodContext: {
          prototype: MSInputMethodContext;
          new(): MSInputMethodContext;
      }
      
      interface MSManipulationEvent extends UIEvent {
          currentState: number;
          inertiaDestinationX: number;
          inertiaDestinationY: number;
          lastState: number;
          initMSManipulationEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, lastState: number, currentState: number): void;
          MS_MANIPULATION_STATE_ACTIVE: number;
          MS_MANIPULATION_STATE_CANCELLED: number;
          MS_MANIPULATION_STATE_COMMITTED: number;
          MS_MANIPULATION_STATE_DRAGGING: number;
          MS_MANIPULATION_STATE_INERTIA: number;
          MS_MANIPULATION_STATE_PRESELECT: number;
          MS_MANIPULATION_STATE_SELECTING: number;
          MS_MANIPULATION_STATE_STOPPED: number;
      }
      
      declare var MSManipulationEvent: {
          prototype: MSManipulationEvent;
          new(): MSManipulationEvent;
          MS_MANIPULATION_STATE_ACTIVE: number;
          MS_MANIPULATION_STATE_CANCELLED: number;
          MS_MANIPULATION_STATE_COMMITTED: number;
          MS_MANIPULATION_STATE_DRAGGING: number;
          MS_MANIPULATION_STATE_INERTIA: number;
          MS_MANIPULATION_STATE_PRESELECT: number;
          MS_MANIPULATION_STATE_SELECTING: number;
          MS_MANIPULATION_STATE_STOPPED: number;
      }
      
      interface MSMediaKeyError {
          code: number;
          systemCode: number;
          MS_MEDIA_KEYERR_CLIENT: number;
          MS_MEDIA_KEYERR_DOMAIN: number;
          MS_MEDIA_KEYERR_HARDWARECHANGE: number;
          MS_MEDIA_KEYERR_OUTPUT: number;
          MS_MEDIA_KEYERR_SERVICE: number;
          MS_MEDIA_KEYERR_UNKNOWN: number;
      }
      
      declare var MSMediaKeyError: {
          prototype: MSMediaKeyError;
          new(): MSMediaKeyError;
          MS_MEDIA_KEYERR_CLIENT: number;
          MS_MEDIA_KEYERR_DOMAIN: number;
          MS_MEDIA_KEYERR_HARDWARECHANGE: number;
          MS_MEDIA_KEYERR_OUTPUT: number;
          MS_MEDIA_KEYERR_SERVICE: number;
          MS_MEDIA_KEYERR_UNKNOWN: number;
      }
      
      interface MSMediaKeyMessageEvent extends Event {
          destinationURL: string;
          message: Uint8Array;
      }
      
      declare var MSMediaKeyMessageEvent: {
          prototype: MSMediaKeyMessageEvent;
          new(): MSMediaKeyMessageEvent;
      }
      
      interface MSMediaKeyNeededEvent extends Event {
          initData: Uint8Array;
      }
      
      declare var MSMediaKeyNeededEvent: {
          prototype: MSMediaKeyNeededEvent;
          new(): MSMediaKeyNeededEvent;
      }
      
      interface MSMediaKeySession extends EventTarget {
          error: MSMediaKeyError;
          keySystem: string;
          sessionId: string;
          close(): void;
          update(key: Uint8Array): void;
      }
      
      declare var MSMediaKeySession: {
          prototype: MSMediaKeySession;
          new(): MSMediaKeySession;
      }
      
      interface MSMediaKeys {
          keySystem: string;
          createSession(type: string, initData: Uint8Array, cdmData?: Uint8Array): MSMediaKeySession;
      }
      
      declare var MSMediaKeys: {
          prototype: MSMediaKeys;
          new(keySystem: string): MSMediaKeys;
          isTypeSupported(keySystem: string, type?: string): boolean;
      }
      
      interface MSMimeTypesCollection {
          length: number;
      }
      
      declare var MSMimeTypesCollection: {
          prototype: MSMimeTypesCollection;
          new(): MSMimeTypesCollection;
      }
      
      interface MSPluginsCollection {
          length: number;
          refresh(reload?: boolean): void;
      }
      
      declare var MSPluginsCollection: {
          prototype: MSPluginsCollection;
          new(): MSPluginsCollection;
      }
      
      interface MSPointerEvent extends MouseEvent {
          currentPoint: any;
          height: number;
          hwTimestamp: number;
          intermediatePoints: any;
          isPrimary: boolean;
          pointerId: number;
          pointerType: any;
          pressure: number;
          rotation: number;
          tiltX: number;
          tiltY: number;
          width: number;
          getCurrentPoint(element: Element): void;
          getIntermediatePoints(element: Element): void;
          initPointerEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, screenXArg: number, screenYArg: number, clientXArg: number, clientYArg: number, ctrlKeyArg: boolean, altKeyArg: boolean, shiftKeyArg: boolean, metaKeyArg: boolean, buttonArg: number, relatedTargetArg: EventTarget, offsetXArg: number, offsetYArg: number, widthArg: number, heightArg: number, pressure: number, rotation: number, tiltX: number, tiltY: number, pointerIdArg: number, pointerType: any, hwTimestampArg: number, isPrimary: boolean): void;
      }
      
      declare var MSPointerEvent: {
          prototype: MSPointerEvent;
          new(typeArg: string, eventInitDict?: PointerEventInit): MSPointerEvent;
      }
      
      interface MSPrintManagerTemplatePrinter extends MSTemplatePrinter, EventTarget {
          percentScale: number;
          showHeaderFooter: boolean;
          shrinkToFit: boolean;
          drawPreviewPage(element: HTMLElement, pageNumber: number): void;
          endPrint(): void;
          getPrintTaskOptionValue(key: string): any;
          invalidatePreview(): void;
          setPageCount(pageCount: number): void;
          startPrint(): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var MSPrintManagerTemplatePrinter: {
          prototype: MSPrintManagerTemplatePrinter;
          new(): MSPrintManagerTemplatePrinter;
      }
      
      interface MSRangeCollection {
          length: number;
          item(index: number): Range;
          [index: number]: Range;
      }
      
      declare var MSRangeCollection: {
          prototype: MSRangeCollection;
          new(): MSRangeCollection;
      }
      
      interface MSSiteModeEvent extends Event {
          actionURL: string;
          buttonID: number;
      }
      
      declare var MSSiteModeEvent: {
          prototype: MSSiteModeEvent;
          new(): MSSiteModeEvent;
      }
      
      interface MSStream {
          type: string;
          msClose(): void;
          msDetachStream(): any;
      }
      
      declare var MSStream: {
          prototype: MSStream;
          new(): MSStream;
      }
      
      interface MSStreamReader extends EventTarget, MSBaseReader {
          error: DOMError;
          readAsArrayBuffer(stream: MSStream, size?: number): void;
          readAsBinaryString(stream: MSStream, size?: number): void;
          readAsBlob(stream: MSStream, size?: number): void;
          readAsDataURL(stream: MSStream, size?: number): void;
          readAsText(stream: MSStream, encoding?: string, size?: number): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var MSStreamReader: {
          prototype: MSStreamReader;
          new(): MSStreamReader;
      }
      
      interface MSTemplatePrinter {
          collate: boolean;
          copies: number;
          currentPage: boolean;
          currentPageAvail: boolean;
          duplex: boolean;
          footer: string;
          frameActive: boolean;
          frameActiveEnabled: boolean;
          frameAsShown: boolean;
          framesetDocument: boolean;
          header: string;
          headerFooterFont: string;
          marginBottom: number;
          marginLeft: number;
          marginRight: number;
          marginTop: number;
          orientation: string;
          pageFrom: number;
          pageHeight: number;
          pageTo: number;
          pageWidth: number;
          selectedPages: boolean;
          selection: boolean;
          selectionEnabled: boolean;
          unprintableBottom: number;
          unprintableLeft: number;
          unprintableRight: number;
          unprintableTop: number;
          usePrinterCopyCollate: boolean;
          createHeaderFooter(): MSHeaderFooter;
          deviceSupports(property: string): any;
          ensurePrintDialogDefaults(): boolean;
          getPageMarginBottom(pageRule: CSSPageRule, pageWidth: number, pageHeight: number): any;
          getPageMarginBottomImportant(pageRule: CSSPageRule): boolean;
          getPageMarginLeft(pageRule: CSSPageRule, pageWidth: number, pageHeight: number): any;
          getPageMarginLeftImportant(pageRule: CSSPageRule): boolean;
          getPageMarginRight(pageRule: CSSPageRule, pageWidth: number, pageHeight: number): any;
          getPageMarginRightImportant(pageRule: CSSPageRule): boolean;
          getPageMarginTop(pageRule: CSSPageRule, pageWidth: number, pageHeight: number): any;
          getPageMarginTopImportant(pageRule: CSSPageRule): boolean;
          printBlankPage(): void;
          printNonNative(document: any): boolean;
          printNonNativeFrames(document: any, activeFrame: boolean): void;
          printPage(element: HTMLElement): void;
          showPageSetupDialog(): boolean;
          showPrintDialog(): boolean;
          startDoc(title: string): boolean;
          stopDoc(): void;
          updatePageStatus(status: number): void;
      }
      
      declare var MSTemplatePrinter: {
          prototype: MSTemplatePrinter;
          new(): MSTemplatePrinter;
      }
      
      interface MSWebViewAsyncOperation extends EventTarget {
          error: DOMError;
          oncomplete: (ev: Event) => any;
          onerror: (ev: Event) => any;
          readyState: number;
          result: any;
          target: MSHTMLWebViewElement;
          type: number;
          start(): void;
          COMPLETED: number;
          ERROR: number;
          STARTED: number;
          TYPE_CAPTURE_PREVIEW_TO_RANDOM_ACCESS_STREAM: number;
          TYPE_CREATE_DATA_PACKAGE_FROM_SELECTION: number;
          TYPE_INVOKE_SCRIPT: number;
          addEventListener(type: "complete", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "error", listener: (ev: ErrorEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var MSWebViewAsyncOperation: {
          prototype: MSWebViewAsyncOperation;
          new(): MSWebViewAsyncOperation;
          COMPLETED: number;
          ERROR: number;
          STARTED: number;
          TYPE_CAPTURE_PREVIEW_TO_RANDOM_ACCESS_STREAM: number;
          TYPE_CREATE_DATA_PACKAGE_FROM_SELECTION: number;
          TYPE_INVOKE_SCRIPT: number;
      }
      
      interface MSWebViewSettings {
          isIndexedDBEnabled: boolean;
          isJavaScriptEnabled: boolean;
      }
      
      declare var MSWebViewSettings: {
          prototype: MSWebViewSettings;
          new(): MSWebViewSettings;
      }
      
      interface MediaElementAudioSourceNode extends AudioNode {
      }
      
      declare var MediaElementAudioSourceNode: {
          prototype: MediaElementAudioSourceNode;
          new(): MediaElementAudioSourceNode;
      }
      
      interface MediaError {
          code: number;
          msExtendedCode: number;
          MEDIA_ERR_ABORTED: number;
          MEDIA_ERR_DECODE: number;
          MEDIA_ERR_NETWORK: number;
          MEDIA_ERR_SRC_NOT_SUPPORTED: number;
          MS_MEDIA_ERR_ENCRYPTED: number;
      }
      
      declare var MediaError: {
          prototype: MediaError;
          new(): MediaError;
          MEDIA_ERR_ABORTED: number;
          MEDIA_ERR_DECODE: number;
          MEDIA_ERR_NETWORK: number;
          MEDIA_ERR_SRC_NOT_SUPPORTED: number;
          MS_MEDIA_ERR_ENCRYPTED: number;
      }
      
      interface MediaList {
          length: number;
          mediaText: string;
          appendMedium(newMedium: string): void;
          deleteMedium(oldMedium: string): void;
          item(index: number): string;
          toString(): string;
          [index: number]: string;
      }
      
      declare var MediaList: {
          prototype: MediaList;
          new(): MediaList;
      }
      
      interface MediaQueryList {
          matches: boolean;
          media: string;
          addListener(listener: MediaQueryListListener): void;
          removeListener(listener: MediaQueryListListener): void;
      }
      
      declare var MediaQueryList: {
          prototype: MediaQueryList;
          new(): MediaQueryList;
      }
      
      interface MediaSource extends EventTarget {
          activeSourceBuffers: SourceBufferList;
          duration: number;
          readyState: string;
          sourceBuffers: SourceBufferList;
          addSourceBuffer(type: string): SourceBuffer;
          endOfStream(error?: string): void;
          removeSourceBuffer(sourceBuffer: SourceBuffer): void;
      }
      
      declare var MediaSource: {
          prototype: MediaSource;
          new(): MediaSource;
          isTypeSupported(type: string): boolean;
      }
      
      interface MessageChannel {
          port1: MessagePort;
          port2: MessagePort;
      }
      
      declare var MessageChannel: {
          prototype: MessageChannel;
          new(): MessageChannel;
      }
      
      interface MessageEvent extends Event {
          data: any;
          origin: string;
          ports: any;
          source: Window;
          initMessageEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, dataArg: any, originArg: string, lastEventIdArg: string, sourceArg: Window): void;
      }
      
      declare var MessageEvent: {
          prototype: MessageEvent;
          new(): MessageEvent;
      }
      
      interface MessagePort extends EventTarget {
          onmessage: (ev: MessageEvent) => any;
          close(): void;
          postMessage(message?: any, ports?: any): void;
          start(): void;
          addEventListener(type: "message", listener: (ev: MessageEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var MessagePort: {
          prototype: MessagePort;
          new(): MessagePort;
      }
      
      interface MimeType {
          description: string;
          enabledPlugin: Plugin;
          suffixes: string;
          type: string;
      }
      
      declare var MimeType: {
          prototype: MimeType;
          new(): MimeType;
      }
      
      interface MimeTypeArray {
          length: number;
          item(index: number): Plugin;
          namedItem(type: string): Plugin;
          [index: number]: Plugin;
      }
      
      declare var MimeTypeArray: {
          prototype: MimeTypeArray;
          new(): MimeTypeArray;
      }
      
      interface MouseEvent extends UIEvent {
          altKey: boolean;
          button: number;
          buttons: number;
          clientX: number;
          clientY: number;
          ctrlKey: boolean;
          fromElement: Element;
          layerX: number;
          layerY: number;
          metaKey: boolean;
          movementX: number;
          movementY: number;
          offsetX: number;
          offsetY: number;
          pageX: number;
          pageY: number;
          relatedTarget: EventTarget;
          screenX: number;
          screenY: number;
          shiftKey: boolean;
          toElement: Element;
          which: number;
          x: number;
          y: number;
          getModifierState(keyArg: string): boolean;
          initMouseEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, screenXArg: number, screenYArg: number, clientXArg: number, clientYArg: number, ctrlKeyArg: boolean, altKeyArg: boolean, shiftKeyArg: boolean, metaKeyArg: boolean, buttonArg: number, relatedTargetArg: EventTarget): void;
      }
      
      declare var MouseEvent: {
          prototype: MouseEvent;
          new(typeArg: string, eventInitDict?: MouseEventInit): MouseEvent;
      }
      
      interface MouseWheelEvent extends MouseEvent {
          wheelDelta: number;
          wheelDeltaX: number;
          wheelDeltaY: number;
          initMouseWheelEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, screenXArg: number, screenYArg: number, clientXArg: number, clientYArg: number, buttonArg: number, relatedTargetArg: EventTarget, modifiersListArg: string, wheelDeltaArg: number): void;
      }
      
      declare var MouseWheelEvent: {
          prototype: MouseWheelEvent;
          new(): MouseWheelEvent;
      }
      
      interface MutationEvent extends Event {
          attrChange: number;
          attrName: string;
          newValue: string;
          prevValue: string;
          relatedNode: Node;
          initMutationEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, relatedNodeArg: Node, prevValueArg: string, newValueArg: string, attrNameArg: string, attrChangeArg: number): void;
          ADDITION: number;
          MODIFICATION: number;
          REMOVAL: number;
      }
      
      declare var MutationEvent: {
          prototype: MutationEvent;
          new(): MutationEvent;
          ADDITION: number;
          MODIFICATION: number;
          REMOVAL: number;
      }
      
      interface MutationObserver {
          disconnect(): void;
          observe(target: Node, options: MutationObserverInit): void;
          takeRecords(): MutationRecord[];
      }
      
      declare var MutationObserver: {
          prototype: MutationObserver;
          new(callback: MutationCallback): MutationObserver;
      }
      
      interface MutationRecord {
          addedNodes: NodeList;
          attributeName: string;
          attributeNamespace: string;
          nextSibling: Node;
          oldValue: string;
          previousSibling: Node;
          removedNodes: NodeList;
          target: Node;
          type: string;
      }
      
      declare var MutationRecord: {
          prototype: MutationRecord;
          new(): MutationRecord;
      }
      
      interface NamedNodeMap {
          length: number;
          getNamedItem(name: string): Attr;
          getNamedItemNS(namespaceURI: string, localName: string): Attr;
          item(index: number): Attr;
          removeNamedItem(name: string): Attr;
          removeNamedItemNS(namespaceURI: string, localName: string): Attr;
          setNamedItem(arg: Attr): Attr;
          setNamedItemNS(arg: Attr): Attr;
          [index: number]: Attr;
      }
      
      declare var NamedNodeMap: {
          prototype: NamedNodeMap;
          new(): NamedNodeMap;
      }
      
      interface NavigationCompletedEvent extends NavigationEvent {
          isSuccess: boolean;
          webErrorStatus: number;
      }
      
      declare var NavigationCompletedEvent: {
          prototype: NavigationCompletedEvent;
          new(): NavigationCompletedEvent;
      }
      
      interface NavigationEvent extends Event {
          uri: string;
      }
      
      declare var NavigationEvent: {
          prototype: NavigationEvent;
          new(): NavigationEvent;
      }
      
      interface NavigationEventWithReferrer extends NavigationEvent {
          referer: string;
      }
      
      declare var NavigationEventWithReferrer: {
          prototype: NavigationEventWithReferrer;
          new(): NavigationEventWithReferrer;
      }
      
      interface Navigator extends Object, NavigatorID, NavigatorOnLine, NavigatorContentUtils, NavigatorStorageUtils, NavigatorGeolocation, MSNavigatorDoNotTrack, MSFileSaver {
          appCodeName: string;
          appMinorVersion: string;
          browserLanguage: string;
          connectionSpeed: number;
          cookieEnabled: boolean;
          cpuClass: string;
          language: string;
          maxTouchPoints: number;
          mimeTypes: MSMimeTypesCollection;
          msManipulationViewsEnabled: boolean;
          msMaxTouchPoints: number;
          msPointerEnabled: boolean;
          plugins: MSPluginsCollection;
          pointerEnabled: boolean;
          systemLanguage: string;
          userLanguage: string;
          webdriver: boolean;
          getGamepads(): Gamepad[];
          javaEnabled(): boolean;
          msLaunchUri(uri: string, successCallback?: MSLaunchUriCallback, noHandlerCallback?: MSLaunchUriCallback): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var Navigator: {
          prototype: Navigator;
          new(): Navigator;
      }
      
      interface Node extends EventTarget {
          attributes: NamedNodeMap;
          baseURI: string;
          childNodes: NodeList;
          firstChild: Node;
          lastChild: Node;
          localName: string;
          namespaceURI: string;
          nextSibling: Node;
          nodeName: string;
          nodeType: number;
          nodeValue: string;
          ownerDocument: Document;
          parentElement: HTMLElement;
          parentNode: Node;
          prefix: string;
          previousSibling: Node;
          textContent: string;
          appendChild(newChild: Node): Node;
          cloneNode(deep?: boolean): Node;
          compareDocumentPosition(other: Node): number;
          hasAttributes(): boolean;
          hasChildNodes(): boolean;
          insertBefore(newChild: Node, refChild?: Node): Node;
          isDefaultNamespace(namespaceURI: string): boolean;
          isEqualNode(arg: Node): boolean;
          isSameNode(other: Node): boolean;
          lookupNamespaceURI(prefix: string): string;
          lookupPrefix(namespaceURI: string): string;
          normalize(): void;
          removeChild(oldChild: Node): Node;
          replaceChild(newChild: Node, oldChild: Node): Node;
          ATTRIBUTE_NODE: number;
          CDATA_SECTION_NODE: number;
          COMMENT_NODE: number;
          DOCUMENT_FRAGMENT_NODE: number;
          DOCUMENT_NODE: number;
          DOCUMENT_POSITION_CONTAINED_BY: number;
          DOCUMENT_POSITION_CONTAINS: number;
          DOCUMENT_POSITION_DISCONNECTED: number;
          DOCUMENT_POSITION_FOLLOWING: number;
          DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: number;
          DOCUMENT_POSITION_PRECEDING: number;
          DOCUMENT_TYPE_NODE: number;
          ELEMENT_NODE: number;
          ENTITY_NODE: number;
          ENTITY_REFERENCE_NODE: number;
          NOTATION_NODE: number;
          PROCESSING_INSTRUCTION_NODE: number;
          TEXT_NODE: number;
      }
      
      declare var Node: {
          prototype: Node;
          new(): Node;
          ATTRIBUTE_NODE: number;
          CDATA_SECTION_NODE: number;
          COMMENT_NODE: number;
          DOCUMENT_FRAGMENT_NODE: number;
          DOCUMENT_NODE: number;
          DOCUMENT_POSITION_CONTAINED_BY: number;
          DOCUMENT_POSITION_CONTAINS: number;
          DOCUMENT_POSITION_DISCONNECTED: number;
          DOCUMENT_POSITION_FOLLOWING: number;
          DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: number;
          DOCUMENT_POSITION_PRECEDING: number;
          DOCUMENT_TYPE_NODE: number;
          ELEMENT_NODE: number;
          ENTITY_NODE: number;
          ENTITY_REFERENCE_NODE: number;
          NOTATION_NODE: number;
          PROCESSING_INSTRUCTION_NODE: number;
          TEXT_NODE: number;
      }
      
      interface NodeFilter {
          FILTER_ACCEPT: number;
          FILTER_REJECT: number;
          FILTER_SKIP: number;
          SHOW_ALL: number;
          SHOW_ATTRIBUTE: number;
          SHOW_CDATA_SECTION: number;
          SHOW_COMMENT: number;
          SHOW_DOCUMENT: number;
          SHOW_DOCUMENT_FRAGMENT: number;
          SHOW_DOCUMENT_TYPE: number;
          SHOW_ELEMENT: number;
          SHOW_ENTITY: number;
          SHOW_ENTITY_REFERENCE: number;
          SHOW_NOTATION: number;
          SHOW_PROCESSING_INSTRUCTION: number;
          SHOW_TEXT: number;
      }
      declare var NodeFilter: NodeFilter;
      
      interface NodeIterator {
          expandEntityReferences: boolean;
          filter: NodeFilter;
          root: Node;
          whatToShow: number;
          detach(): void;
          nextNode(): Node;
          previousNode(): Node;
      }
      
      declare var NodeIterator: {
          prototype: NodeIterator;
          new(): NodeIterator;
      }
      
      interface NodeList {
          length: number;
          item(index: number): Node;
          [index: number]: Node;
      }
      
      declare var NodeList: {
          prototype: NodeList;
          new(): NodeList;
      }
      
      interface OES_element_index_uint {
      }
      
      declare var OES_element_index_uint: {
          prototype: OES_element_index_uint;
          new(): OES_element_index_uint;
      }
      
      interface OES_standard_derivatives {
          FRAGMENT_SHADER_DERIVATIVE_HINT_OES: number;
      }
      
      declare var OES_standard_derivatives: {
          prototype: OES_standard_derivatives;
          new(): OES_standard_derivatives;
          FRAGMENT_SHADER_DERIVATIVE_HINT_OES: number;
      }
      
      interface OES_texture_float {
      }
      
      declare var OES_texture_float: {
          prototype: OES_texture_float;
          new(): OES_texture_float;
      }
      
      interface OES_texture_float_linear {
      }
      
      declare var OES_texture_float_linear: {
          prototype: OES_texture_float_linear;
          new(): OES_texture_float_linear;
      }
      
      interface OfflineAudioCompletionEvent extends Event {
          renderedBuffer: AudioBuffer;
      }
      
      declare var OfflineAudioCompletionEvent: {
          prototype: OfflineAudioCompletionEvent;
          new(): OfflineAudioCompletionEvent;
      }
      
      interface OfflineAudioContext extends AudioContext {
          oncomplete: (ev: Event) => any;
          startRendering(): void;
          addEventListener(type: "complete", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var OfflineAudioContext: {
          prototype: OfflineAudioContext;
          new(numberOfChannels: number, length: number, sampleRate: number): OfflineAudioContext;
      }
      
      interface OscillatorNode extends AudioNode {
          detune: AudioParam;
          frequency: AudioParam;
          onended: (ev: Event) => any;
          type: string;
          setPeriodicWave(periodicWave: PeriodicWave): void;
          start(when?: number): void;
          stop(when?: number): void;
          addEventListener(type: "ended", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var OscillatorNode: {
          prototype: OscillatorNode;
          new(): OscillatorNode;
      }
      
      interface PageTransitionEvent extends Event {
          persisted: boolean;
      }
      
      declare var PageTransitionEvent: {
          prototype: PageTransitionEvent;
          new(): PageTransitionEvent;
      }
      
      interface PannerNode extends AudioNode {
          coneInnerAngle: number;
          coneOuterAngle: number;
          coneOuterGain: number;
          distanceModel: string;
          maxDistance: number;
          panningModel: string;
          refDistance: number;
          rolloffFactor: number;
          setOrientation(x: number, y: number, z: number): void;
          setPosition(x: number, y: number, z: number): void;
          setVelocity(x: number, y: number, z: number): void;
      }
      
      declare var PannerNode: {
          prototype: PannerNode;
          new(): PannerNode;
      }
      
      interface PerfWidgetExternal {
          activeNetworkRequestCount: number;
          averageFrameTime: number;
          averagePaintTime: number;
          extraInformationEnabled: boolean;
          independentRenderingEnabled: boolean;
          irDisablingContentString: string;
          irStatusAvailable: boolean;
          maxCpuSpeed: number;
          paintRequestsPerSecond: number;
          performanceCounter: number;
          performanceCounterFrequency: number;
          addEventListener(eventType: string, callback: Function): void;
          getMemoryUsage(): number;
          getProcessCpuUsage(): number;
          getRecentCpuUsage(last: number): any;
          getRecentFrames(last: number): any;
          getRecentMemoryUsage(last: number): any;
          getRecentPaintRequests(last: number): any;
          removeEventListener(eventType: string, callback: Function): void;
          repositionWindow(x: number, y: number): void;
          resizeWindow(width: number, height: number): void;
      }
      
      declare var PerfWidgetExternal: {
          prototype: PerfWidgetExternal;
          new(): PerfWidgetExternal;
      }
      
      interface Performance {
          navigation: PerformanceNavigation;
          timing: PerformanceTiming;
          clearMarks(markName?: string): void;
          clearMeasures(measureName?: string): void;
          clearResourceTimings(): void;
          getEntries(): any;
          getEntriesByName(name: string, entryType?: string): any;
          getEntriesByType(entryType: string): any;
          getMarks(markName?: string): any;
          getMeasures(measureName?: string): any;
          mark(markName: string): void;
          measure(measureName: string, startMarkName?: string, endMarkName?: string): void;
          now(): number;
          setResourceTimingBufferSize(maxSize: number): void;
          toJSON(): any;
      }
      
      declare var Performance: {
          prototype: Performance;
          new(): Performance;
      }
      
      interface PerformanceEntry {
          duration: number;
          entryType: string;
          name: string;
          startTime: number;
      }
      
      declare var PerformanceEntry: {
          prototype: PerformanceEntry;
          new(): PerformanceEntry;
      }
      
      interface PerformanceMark extends PerformanceEntry {
      }
      
      declare var PerformanceMark: {
          prototype: PerformanceMark;
          new(): PerformanceMark;
      }
      
      interface PerformanceMeasure extends PerformanceEntry {
      }
      
      declare var PerformanceMeasure: {
          prototype: PerformanceMeasure;
          new(): PerformanceMeasure;
      }
      
      interface PerformanceNavigation {
          redirectCount: number;
          type: number;
          toJSON(): any;
          TYPE_BACK_FORWARD: number;
          TYPE_NAVIGATE: number;
          TYPE_RELOAD: number;
          TYPE_RESERVED: number;
      }
      
      declare var PerformanceNavigation: {
          prototype: PerformanceNavigation;
          new(): PerformanceNavigation;
          TYPE_BACK_FORWARD: number;
          TYPE_NAVIGATE: number;
          TYPE_RELOAD: number;
          TYPE_RESERVED: number;
      }
      
      interface PerformanceNavigationTiming extends PerformanceEntry {
          connectEnd: number;
          connectStart: number;
          domComplete: number;
          domContentLoadedEventEnd: number;
          domContentLoadedEventStart: number;
          domInteractive: number;
          domLoading: number;
          domainLookupEnd: number;
          domainLookupStart: number;
          fetchStart: number;
          loadEventEnd: number;
          loadEventStart: number;
          navigationStart: number;
          redirectCount: number;
          redirectEnd: number;
          redirectStart: number;
          requestStart: number;
          responseEnd: number;
          responseStart: number;
          type: string;
          unloadEventEnd: number;
          unloadEventStart: number;
      }
      
      declare var PerformanceNavigationTiming: {
          prototype: PerformanceNavigationTiming;
          new(): PerformanceNavigationTiming;
      }
      
      interface PerformanceResourceTiming extends PerformanceEntry {
          connectEnd: number;
          connectStart: number;
          domainLookupEnd: number;
          domainLookupStart: number;
          fetchStart: number;
          initiatorType: string;
          redirectEnd: number;
          redirectStart: number;
          requestStart: number;
          responseEnd: number;
          responseStart: number;
      }
      
      declare var PerformanceResourceTiming: {
          prototype: PerformanceResourceTiming;
          new(): PerformanceResourceTiming;
      }
      
      interface PerformanceTiming {
          connectEnd: number;
          connectStart: number;
          domComplete: number;
          domContentLoadedEventEnd: number;
          domContentLoadedEventStart: number;
          domInteractive: number;
          domLoading: number;
          domainLookupEnd: number;
          domainLookupStart: number;
          fetchStart: number;
          loadEventEnd: number;
          loadEventStart: number;
          msFirstPaint: number;
          navigationStart: number;
          redirectEnd: number;
          redirectStart: number;
          requestStart: number;
          responseEnd: number;
          responseStart: number;
          unloadEventEnd: number;
          unloadEventStart: number;
          toJSON(): any;
      }
      
      declare var PerformanceTiming: {
          prototype: PerformanceTiming;
          new(): PerformanceTiming;
      }
      
      interface PeriodicWave {
      }
      
      declare var PeriodicWave: {
          prototype: PeriodicWave;
          new(): PeriodicWave;
      }
      
      interface PermissionRequest extends DeferredPermissionRequest {
          state: string;
          defer(): void;
      }
      
      declare var PermissionRequest: {
          prototype: PermissionRequest;
          new(): PermissionRequest;
      }
      
      interface PermissionRequestedEvent extends Event {
          permissionRequest: PermissionRequest;
      }
      
      declare var PermissionRequestedEvent: {
          prototype: PermissionRequestedEvent;
          new(): PermissionRequestedEvent;
      }
      
      interface Plugin {
          description: string;
          filename: string;
          length: number;
          name: string;
          version: string;
          item(index: number): MimeType;
          namedItem(type: string): MimeType;
          [index: number]: MimeType;
      }
      
      declare var Plugin: {
          prototype: Plugin;
          new(): Plugin;
      }
      
      interface PluginArray {
          length: number;
          item(index: number): Plugin;
          namedItem(name: string): Plugin;
          refresh(reload?: boolean): void;
          [index: number]: Plugin;
      }
      
      declare var PluginArray: {
          prototype: PluginArray;
          new(): PluginArray;
      }
      
      interface PointerEvent extends MouseEvent {
          currentPoint: any;
          height: number;
          hwTimestamp: number;
          intermediatePoints: any;
          isPrimary: boolean;
          pointerId: number;
          pointerType: any;
          pressure: number;
          rotation: number;
          tiltX: number;
          tiltY: number;
          width: number;
          getCurrentPoint(element: Element): void;
          getIntermediatePoints(element: Element): void;
          initPointerEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, screenXArg: number, screenYArg: number, clientXArg: number, clientYArg: number, ctrlKeyArg: boolean, altKeyArg: boolean, shiftKeyArg: boolean, metaKeyArg: boolean, buttonArg: number, relatedTargetArg: EventTarget, offsetXArg: number, offsetYArg: number, widthArg: number, heightArg: number, pressure: number, rotation: number, tiltX: number, tiltY: number, pointerIdArg: number, pointerType: any, hwTimestampArg: number, isPrimary: boolean): void;
      }
      
      declare var PointerEvent: {
          prototype: PointerEvent;
          new(typeArg: string, eventInitDict?: PointerEventInit): PointerEvent;
      }
      
      interface PopStateEvent extends Event {
          state: any;
          initPopStateEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, stateArg: any): void;
      }
      
      declare var PopStateEvent: {
          prototype: PopStateEvent;
          new(): PopStateEvent;
      }
      
      interface Position {
          coords: Coordinates;
          timestamp: Date;
      }
      
      declare var Position: {
          prototype: Position;
          new(): Position;
      }
      
      interface PositionError {
          code: number;
          message: string;
          toString(): string;
          PERMISSION_DENIED: number;
          POSITION_UNAVAILABLE: number;
          TIMEOUT: number;
      }
      
      declare var PositionError: {
          prototype: PositionError;
          new(): PositionError;
          PERMISSION_DENIED: number;
          POSITION_UNAVAILABLE: number;
          TIMEOUT: number;
      }
      
      interface ProcessingInstruction extends CharacterData {
          target: string;
      }
      
      declare var ProcessingInstruction: {
          prototype: ProcessingInstruction;
          new(): ProcessingInstruction;
      }
      
      interface ProgressEvent extends Event {
          lengthComputable: boolean;
          loaded: number;
          total: number;
          initProgressEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, lengthComputableArg: boolean, loadedArg: number, totalArg: number): void;
      }
      
      declare var ProgressEvent: {
          prototype: ProgressEvent;
          new(): ProgressEvent;
      }
      
      interface Range {
          collapsed: boolean;
          commonAncestorContainer: Node;
          endContainer: Node;
          endOffset: number;
          startContainer: Node;
          startOffset: number;
          cloneContents(): DocumentFragment;
          cloneRange(): Range;
          collapse(toStart: boolean): void;
          compareBoundaryPoints(how: number, sourceRange: Range): number;
          createContextualFragment(fragment: string): DocumentFragment;
          deleteContents(): void;
          detach(): void;
          expand(Unit: string): boolean;
          extractContents(): DocumentFragment;
          getBoundingClientRect(): ClientRect;
          getClientRects(): ClientRectList;
          insertNode(newNode: Node): void;
          selectNode(refNode: Node): void;
          selectNodeContents(refNode: Node): void;
          setEnd(refNode: Node, offset: number): void;
          setEndAfter(refNode: Node): void;
          setEndBefore(refNode: Node): void;
          setStart(refNode: Node, offset: number): void;
          setStartAfter(refNode: Node): void;
          setStartBefore(refNode: Node): void;
          surroundContents(newParent: Node): void;
          toString(): string;
          END_TO_END: number;
          END_TO_START: number;
          START_TO_END: number;
          START_TO_START: number;
      }
      
      declare var Range: {
          prototype: Range;
          new(): Range;
          END_TO_END: number;
          END_TO_START: number;
          START_TO_END: number;
          START_TO_START: number;
      }
      
      interface SVGAElement extends SVGElement, SVGStylable, SVGTransformable, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGURIReference {
          target: SVGAnimatedString;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGAElement: {
          prototype: SVGAElement;
          new(): SVGAElement;
      }
      
      interface SVGAngle {
          unitType: number;
          value: number;
          valueAsString: string;
          valueInSpecifiedUnits: number;
          convertToSpecifiedUnits(unitType: number): void;
          newValueSpecifiedUnits(unitType: number, valueInSpecifiedUnits: number): void;
          SVG_ANGLETYPE_DEG: number;
          SVG_ANGLETYPE_GRAD: number;
          SVG_ANGLETYPE_RAD: number;
          SVG_ANGLETYPE_UNKNOWN: number;
          SVG_ANGLETYPE_UNSPECIFIED: number;
      }
      
      declare var SVGAngle: {
          prototype: SVGAngle;
          new(): SVGAngle;
          SVG_ANGLETYPE_DEG: number;
          SVG_ANGLETYPE_GRAD: number;
          SVG_ANGLETYPE_RAD: number;
          SVG_ANGLETYPE_UNKNOWN: number;
          SVG_ANGLETYPE_UNSPECIFIED: number;
      }
      
      interface SVGAnimatedAngle {
          animVal: SVGAngle;
          baseVal: SVGAngle;
      }
      
      declare var SVGAnimatedAngle: {
          prototype: SVGAnimatedAngle;
          new(): SVGAnimatedAngle;
      }
      
      interface SVGAnimatedBoolean {
          animVal: boolean;
          baseVal: boolean;
      }
      
      declare var SVGAnimatedBoolean: {
          prototype: SVGAnimatedBoolean;
          new(): SVGAnimatedBoolean;
      }
      
      interface SVGAnimatedEnumeration {
          animVal: number;
          baseVal: number;
      }
      
      declare var SVGAnimatedEnumeration: {
          prototype: SVGAnimatedEnumeration;
          new(): SVGAnimatedEnumeration;
      }
      
      interface SVGAnimatedInteger {
          animVal: number;
          baseVal: number;
      }
      
      declare var SVGAnimatedInteger: {
          prototype: SVGAnimatedInteger;
          new(): SVGAnimatedInteger;
      }
      
      interface SVGAnimatedLength {
          animVal: SVGLength;
          baseVal: SVGLength;
      }
      
      declare var SVGAnimatedLength: {
          prototype: SVGAnimatedLength;
          new(): SVGAnimatedLength;
      }
      
      interface SVGAnimatedLengthList {
          animVal: SVGLengthList;
          baseVal: SVGLengthList;
      }
      
      declare var SVGAnimatedLengthList: {
          prototype: SVGAnimatedLengthList;
          new(): SVGAnimatedLengthList;
      }
      
      interface SVGAnimatedNumber {
          animVal: number;
          baseVal: number;
      }
      
      declare var SVGAnimatedNumber: {
          prototype: SVGAnimatedNumber;
          new(): SVGAnimatedNumber;
      }
      
      interface SVGAnimatedNumberList {
          animVal: SVGNumberList;
          baseVal: SVGNumberList;
      }
      
      declare var SVGAnimatedNumberList: {
          prototype: SVGAnimatedNumberList;
          new(): SVGAnimatedNumberList;
      }
      
      interface SVGAnimatedPreserveAspectRatio {
          animVal: SVGPreserveAspectRatio;
          baseVal: SVGPreserveAspectRatio;
      }
      
      declare var SVGAnimatedPreserveAspectRatio: {
          prototype: SVGAnimatedPreserveAspectRatio;
          new(): SVGAnimatedPreserveAspectRatio;
      }
      
      interface SVGAnimatedRect {
          animVal: SVGRect;
          baseVal: SVGRect;
      }
      
      declare var SVGAnimatedRect: {
          prototype: SVGAnimatedRect;
          new(): SVGAnimatedRect;
      }
      
      interface SVGAnimatedString {
          animVal: string;
          baseVal: string;
      }
      
      declare var SVGAnimatedString: {
          prototype: SVGAnimatedString;
          new(): SVGAnimatedString;
      }
      
      interface SVGAnimatedTransformList {
          animVal: SVGTransformList;
          baseVal: SVGTransformList;
      }
      
      declare var SVGAnimatedTransformList: {
          prototype: SVGAnimatedTransformList;
          new(): SVGAnimatedTransformList;
      }
      
      interface SVGCircleElement extends SVGElement, SVGStylable, SVGTransformable, SVGTests, SVGLangSpace, SVGExternalResourcesRequired {
          cx: SVGAnimatedLength;
          cy: SVGAnimatedLength;
          r: SVGAnimatedLength;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGCircleElement: {
          prototype: SVGCircleElement;
          new(): SVGCircleElement;
      }
      
      interface SVGClipPathElement extends SVGElement, SVGStylable, SVGTransformable, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGUnitTypes {
          clipPathUnits: SVGAnimatedEnumeration;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGClipPathElement: {
          prototype: SVGClipPathElement;
          new(): SVGClipPathElement;
      }
      
      interface SVGComponentTransferFunctionElement extends SVGElement {
          amplitude: SVGAnimatedNumber;
          exponent: SVGAnimatedNumber;
          intercept: SVGAnimatedNumber;
          offset: SVGAnimatedNumber;
          slope: SVGAnimatedNumber;
          tableValues: SVGAnimatedNumberList;
          type: SVGAnimatedEnumeration;
          SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE: number;
          SVG_FECOMPONENTTRANSFER_TYPE_GAMMA: number;
          SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY: number;
          SVG_FECOMPONENTTRANSFER_TYPE_LINEAR: number;
          SVG_FECOMPONENTTRANSFER_TYPE_TABLE: number;
          SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN: number;
      }
      
      declare var SVGComponentTransferFunctionElement: {
          prototype: SVGComponentTransferFunctionElement;
          new(): SVGComponentTransferFunctionElement;
          SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE: number;
          SVG_FECOMPONENTTRANSFER_TYPE_GAMMA: number;
          SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY: number;
          SVG_FECOMPONENTTRANSFER_TYPE_LINEAR: number;
          SVG_FECOMPONENTTRANSFER_TYPE_TABLE: number;
          SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN: number;
      }
      
      interface SVGDefsElement extends SVGElement, SVGStylable, SVGTransformable, SVGTests, SVGLangSpace, SVGExternalResourcesRequired {
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGDefsElement: {
          prototype: SVGDefsElement;
          new(): SVGDefsElement;
      }
      
      interface SVGDescElement extends SVGElement, SVGStylable, SVGLangSpace {
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGDescElement: {
          prototype: SVGDescElement;
          new(): SVGDescElement;
      }
      
      interface SVGElement extends Element {
          id: string;
          onclick: (ev: MouseEvent) => any;
          ondblclick: (ev: MouseEvent) => any;
          onfocusin: (ev: FocusEvent) => any;
          onfocusout: (ev: FocusEvent) => any;
          onload: (ev: Event) => any;
          onmousedown: (ev: MouseEvent) => any;
          onmousemove: (ev: MouseEvent) => any;
          onmouseout: (ev: MouseEvent) => any;
          onmouseover: (ev: MouseEvent) => any;
          onmouseup: (ev: MouseEvent) => any;
          ownerSVGElement: SVGSVGElement;
          viewportElement: SVGElement;
          xmlbase: string;
          addEventListener(type: "MSGestureChange", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureDoubleTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureEnd", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureHold", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGotPointerCapture", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSInertiaStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSLostPointerCapture", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerCancel", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerDown", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerEnter", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerLeave", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerMove", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerOut", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerOver", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerUp", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "ariarequest", listener: (ev: AriaRequestEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "click", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "command", listener: (ev: CommandEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dblclick", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "focusin", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "focusout", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "gotpointercapture", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "load", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "lostpointercapture", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousedown", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousemove", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseout", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseover", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseup", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointercancel", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerdown", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerenter", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerleave", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointermove", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerout", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerover", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerup", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchcancel", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchend", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchmove", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchstart", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "webkitfullscreenchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "webkitfullscreenerror", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "wheel", listener: (ev: WheelEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGElement: {
          prototype: SVGElement;
          new(): SVGElement;
      }
      
      interface SVGElementInstance extends EventTarget {
          childNodes: SVGElementInstanceList;
          correspondingElement: SVGElement;
          correspondingUseElement: SVGUseElement;
          firstChild: SVGElementInstance;
          lastChild: SVGElementInstance;
          nextSibling: SVGElementInstance;
          parentNode: SVGElementInstance;
          previousSibling: SVGElementInstance;
      }
      
      declare var SVGElementInstance: {
          prototype: SVGElementInstance;
          new(): SVGElementInstance;
      }
      
      interface SVGElementInstanceList {
          length: number;
          item(index: number): SVGElementInstance;
      }
      
      declare var SVGElementInstanceList: {
          prototype: SVGElementInstanceList;
          new(): SVGElementInstanceList;
      }
      
      interface SVGEllipseElement extends SVGElement, SVGStylable, SVGTransformable, SVGTests, SVGLangSpace, SVGExternalResourcesRequired {
          cx: SVGAnimatedLength;
          cy: SVGAnimatedLength;
          rx: SVGAnimatedLength;
          ry: SVGAnimatedLength;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGEllipseElement: {
          prototype: SVGEllipseElement;
          new(): SVGEllipseElement;
      }
      
      interface SVGFEBlendElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
          in1: SVGAnimatedString;
          in2: SVGAnimatedString;
          mode: SVGAnimatedEnumeration;
          SVG_FEBLEND_MODE_COLOR: number;
          SVG_FEBLEND_MODE_COLOR_BURN: number;
          SVG_FEBLEND_MODE_COLOR_DODGE: number;
          SVG_FEBLEND_MODE_DARKEN: number;
          SVG_FEBLEND_MODE_DIFFERENCE: number;
          SVG_FEBLEND_MODE_EXCLUSION: number;
          SVG_FEBLEND_MODE_HARD_LIGHT: number;
          SVG_FEBLEND_MODE_HUE: number;
          SVG_FEBLEND_MODE_LIGHTEN: number;
          SVG_FEBLEND_MODE_LUMINOSITY: number;
          SVG_FEBLEND_MODE_MULTIPLY: number;
          SVG_FEBLEND_MODE_NORMAL: number;
          SVG_FEBLEND_MODE_OVERLAY: number;
          SVG_FEBLEND_MODE_SATURATION: number;
          SVG_FEBLEND_MODE_SCREEN: number;
          SVG_FEBLEND_MODE_SOFT_LIGHT: number;
          SVG_FEBLEND_MODE_UNKNOWN: number;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGFEBlendElement: {
          prototype: SVGFEBlendElement;
          new(): SVGFEBlendElement;
          SVG_FEBLEND_MODE_COLOR: number;
          SVG_FEBLEND_MODE_COLOR_BURN: number;
          SVG_FEBLEND_MODE_COLOR_DODGE: number;
          SVG_FEBLEND_MODE_DARKEN: number;
          SVG_FEBLEND_MODE_DIFFERENCE: number;
          SVG_FEBLEND_MODE_EXCLUSION: number;
          SVG_FEBLEND_MODE_HARD_LIGHT: number;
          SVG_FEBLEND_MODE_HUE: number;
          SVG_FEBLEND_MODE_LIGHTEN: number;
          SVG_FEBLEND_MODE_LUMINOSITY: number;
          SVG_FEBLEND_MODE_MULTIPLY: number;
          SVG_FEBLEND_MODE_NORMAL: number;
          SVG_FEBLEND_MODE_OVERLAY: number;
          SVG_FEBLEND_MODE_SATURATION: number;
          SVG_FEBLEND_MODE_SCREEN: number;
          SVG_FEBLEND_MODE_SOFT_LIGHT: number;
          SVG_FEBLEND_MODE_UNKNOWN: number;
      }
      
      interface SVGFEColorMatrixElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
          in1: SVGAnimatedString;
          type: SVGAnimatedEnumeration;
          values: SVGAnimatedNumberList;
          SVG_FECOLORMATRIX_TYPE_HUEROTATE: number;
          SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA: number;
          SVG_FECOLORMATRIX_TYPE_MATRIX: number;
          SVG_FECOLORMATRIX_TYPE_SATURATE: number;
          SVG_FECOLORMATRIX_TYPE_UNKNOWN: number;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGFEColorMatrixElement: {
          prototype: SVGFEColorMatrixElement;
          new(): SVGFEColorMatrixElement;
          SVG_FECOLORMATRIX_TYPE_HUEROTATE: number;
          SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA: number;
          SVG_FECOLORMATRIX_TYPE_MATRIX: number;
          SVG_FECOLORMATRIX_TYPE_SATURATE: number;
          SVG_FECOLORMATRIX_TYPE_UNKNOWN: number;
      }
      
      interface SVGFEComponentTransferElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
          in1: SVGAnimatedString;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGFEComponentTransferElement: {
          prototype: SVGFEComponentTransferElement;
          new(): SVGFEComponentTransferElement;
      }
      
      interface SVGFECompositeElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
          in1: SVGAnimatedString;
          in2: SVGAnimatedString;
          k1: SVGAnimatedNumber;
          k2: SVGAnimatedNumber;
          k3: SVGAnimatedNumber;
          k4: SVGAnimatedNumber;
          operator: SVGAnimatedEnumeration;
          SVG_FECOMPOSITE_OPERATOR_ARITHMETIC: number;
          SVG_FECOMPOSITE_OPERATOR_ATOP: number;
          SVG_FECOMPOSITE_OPERATOR_IN: number;
          SVG_FECOMPOSITE_OPERATOR_OUT: number;
          SVG_FECOMPOSITE_OPERATOR_OVER: number;
          SVG_FECOMPOSITE_OPERATOR_UNKNOWN: number;
          SVG_FECOMPOSITE_OPERATOR_XOR: number;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGFECompositeElement: {
          prototype: SVGFECompositeElement;
          new(): SVGFECompositeElement;
          SVG_FECOMPOSITE_OPERATOR_ARITHMETIC: number;
          SVG_FECOMPOSITE_OPERATOR_ATOP: number;
          SVG_FECOMPOSITE_OPERATOR_IN: number;
          SVG_FECOMPOSITE_OPERATOR_OUT: number;
          SVG_FECOMPOSITE_OPERATOR_OVER: number;
          SVG_FECOMPOSITE_OPERATOR_UNKNOWN: number;
          SVG_FECOMPOSITE_OPERATOR_XOR: number;
      }
      
      interface SVGFEConvolveMatrixElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
          bias: SVGAnimatedNumber;
          divisor: SVGAnimatedNumber;
          edgeMode: SVGAnimatedEnumeration;
          in1: SVGAnimatedString;
          kernelMatrix: SVGAnimatedNumberList;
          kernelUnitLengthX: SVGAnimatedNumber;
          kernelUnitLengthY: SVGAnimatedNumber;
          orderX: SVGAnimatedInteger;
          orderY: SVGAnimatedInteger;
          preserveAlpha: SVGAnimatedBoolean;
          targetX: SVGAnimatedInteger;
          targetY: SVGAnimatedInteger;
          SVG_EDGEMODE_DUPLICATE: number;
          SVG_EDGEMODE_NONE: number;
          SVG_EDGEMODE_UNKNOWN: number;
          SVG_EDGEMODE_WRAP: number;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGFEConvolveMatrixElement: {
          prototype: SVGFEConvolveMatrixElement;
          new(): SVGFEConvolveMatrixElement;
          SVG_EDGEMODE_DUPLICATE: number;
          SVG_EDGEMODE_NONE: number;
          SVG_EDGEMODE_UNKNOWN: number;
          SVG_EDGEMODE_WRAP: number;
      }
      
      interface SVGFEDiffuseLightingElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
          diffuseConstant: SVGAnimatedNumber;
          in1: SVGAnimatedString;
          kernelUnitLengthX: SVGAnimatedNumber;
          kernelUnitLengthY: SVGAnimatedNumber;
          surfaceScale: SVGAnimatedNumber;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGFEDiffuseLightingElement: {
          prototype: SVGFEDiffuseLightingElement;
          new(): SVGFEDiffuseLightingElement;
      }
      
      interface SVGFEDisplacementMapElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
          in1: SVGAnimatedString;
          in2: SVGAnimatedString;
          scale: SVGAnimatedNumber;
          xChannelSelector: SVGAnimatedEnumeration;
          yChannelSelector: SVGAnimatedEnumeration;
          SVG_CHANNEL_A: number;
          SVG_CHANNEL_B: number;
          SVG_CHANNEL_G: number;
          SVG_CHANNEL_R: number;
          SVG_CHANNEL_UNKNOWN: number;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGFEDisplacementMapElement: {
          prototype: SVGFEDisplacementMapElement;
          new(): SVGFEDisplacementMapElement;
          SVG_CHANNEL_A: number;
          SVG_CHANNEL_B: number;
          SVG_CHANNEL_G: number;
          SVG_CHANNEL_R: number;
          SVG_CHANNEL_UNKNOWN: number;
      }
      
      interface SVGFEDistantLightElement extends SVGElement {
          azimuth: SVGAnimatedNumber;
          elevation: SVGAnimatedNumber;
      }
      
      declare var SVGFEDistantLightElement: {
          prototype: SVGFEDistantLightElement;
          new(): SVGFEDistantLightElement;
      }
      
      interface SVGFEFloodElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGFEFloodElement: {
          prototype: SVGFEFloodElement;
          new(): SVGFEFloodElement;
      }
      
      interface SVGFEFuncAElement extends SVGComponentTransferFunctionElement {
      }
      
      declare var SVGFEFuncAElement: {
          prototype: SVGFEFuncAElement;
          new(): SVGFEFuncAElement;
      }
      
      interface SVGFEFuncBElement extends SVGComponentTransferFunctionElement {
      }
      
      declare var SVGFEFuncBElement: {
          prototype: SVGFEFuncBElement;
          new(): SVGFEFuncBElement;
      }
      
      interface SVGFEFuncGElement extends SVGComponentTransferFunctionElement {
      }
      
      declare var SVGFEFuncGElement: {
          prototype: SVGFEFuncGElement;
          new(): SVGFEFuncGElement;
      }
      
      interface SVGFEFuncRElement extends SVGComponentTransferFunctionElement {
      }
      
      declare var SVGFEFuncRElement: {
          prototype: SVGFEFuncRElement;
          new(): SVGFEFuncRElement;
      }
      
      interface SVGFEGaussianBlurElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
          in1: SVGAnimatedString;
          stdDeviationX: SVGAnimatedNumber;
          stdDeviationY: SVGAnimatedNumber;
          setStdDeviation(stdDeviationX: number, stdDeviationY: number): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGFEGaussianBlurElement: {
          prototype: SVGFEGaussianBlurElement;
          new(): SVGFEGaussianBlurElement;
      }
      
      interface SVGFEImageElement extends SVGElement, SVGFilterPrimitiveStandardAttributes, SVGLangSpace, SVGURIReference, SVGExternalResourcesRequired {
          preserveAspectRatio: SVGAnimatedPreserveAspectRatio;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGFEImageElement: {
          prototype: SVGFEImageElement;
          new(): SVGFEImageElement;
      }
      
      interface SVGFEMergeElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGFEMergeElement: {
          prototype: SVGFEMergeElement;
          new(): SVGFEMergeElement;
      }
      
      interface SVGFEMergeNodeElement extends SVGElement {
          in1: SVGAnimatedString;
      }
      
      declare var SVGFEMergeNodeElement: {
          prototype: SVGFEMergeNodeElement;
          new(): SVGFEMergeNodeElement;
      }
      
      interface SVGFEMorphologyElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
          in1: SVGAnimatedString;
          operator: SVGAnimatedEnumeration;
          radiusX: SVGAnimatedNumber;
          radiusY: SVGAnimatedNumber;
          SVG_MORPHOLOGY_OPERATOR_DILATE: number;
          SVG_MORPHOLOGY_OPERATOR_ERODE: number;
          SVG_MORPHOLOGY_OPERATOR_UNKNOWN: number;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGFEMorphologyElement: {
          prototype: SVGFEMorphologyElement;
          new(): SVGFEMorphologyElement;
          SVG_MORPHOLOGY_OPERATOR_DILATE: number;
          SVG_MORPHOLOGY_OPERATOR_ERODE: number;
          SVG_MORPHOLOGY_OPERATOR_UNKNOWN: number;
      }
      
      interface SVGFEOffsetElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
          dx: SVGAnimatedNumber;
          dy: SVGAnimatedNumber;
          in1: SVGAnimatedString;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGFEOffsetElement: {
          prototype: SVGFEOffsetElement;
          new(): SVGFEOffsetElement;
      }
      
      interface SVGFEPointLightElement extends SVGElement {
          x: SVGAnimatedNumber;
          y: SVGAnimatedNumber;
          z: SVGAnimatedNumber;
      }
      
      declare var SVGFEPointLightElement: {
          prototype: SVGFEPointLightElement;
          new(): SVGFEPointLightElement;
      }
      
      interface SVGFESpecularLightingElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
          in1: SVGAnimatedString;
          kernelUnitLengthX: SVGAnimatedNumber;
          kernelUnitLengthY: SVGAnimatedNumber;
          specularConstant: SVGAnimatedNumber;
          specularExponent: SVGAnimatedNumber;
          surfaceScale: SVGAnimatedNumber;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGFESpecularLightingElement: {
          prototype: SVGFESpecularLightingElement;
          new(): SVGFESpecularLightingElement;
      }
      
      interface SVGFESpotLightElement extends SVGElement {
          limitingConeAngle: SVGAnimatedNumber;
          pointsAtX: SVGAnimatedNumber;
          pointsAtY: SVGAnimatedNumber;
          pointsAtZ: SVGAnimatedNumber;
          specularExponent: SVGAnimatedNumber;
          x: SVGAnimatedNumber;
          y: SVGAnimatedNumber;
          z: SVGAnimatedNumber;
      }
      
      declare var SVGFESpotLightElement: {
          prototype: SVGFESpotLightElement;
          new(): SVGFESpotLightElement;
      }
      
      interface SVGFETileElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
          in1: SVGAnimatedString;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGFETileElement: {
          prototype: SVGFETileElement;
          new(): SVGFETileElement;
      }
      
      interface SVGFETurbulenceElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
          baseFrequencyX: SVGAnimatedNumber;
          baseFrequencyY: SVGAnimatedNumber;
          numOctaves: SVGAnimatedInteger;
          seed: SVGAnimatedNumber;
          stitchTiles: SVGAnimatedEnumeration;
          type: SVGAnimatedEnumeration;
          SVG_STITCHTYPE_NOSTITCH: number;
          SVG_STITCHTYPE_STITCH: number;
          SVG_STITCHTYPE_UNKNOWN: number;
          SVG_TURBULENCE_TYPE_FRACTALNOISE: number;
          SVG_TURBULENCE_TYPE_TURBULENCE: number;
          SVG_TURBULENCE_TYPE_UNKNOWN: number;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGFETurbulenceElement: {
          prototype: SVGFETurbulenceElement;
          new(): SVGFETurbulenceElement;
          SVG_STITCHTYPE_NOSTITCH: number;
          SVG_STITCHTYPE_STITCH: number;
          SVG_STITCHTYPE_UNKNOWN: number;
          SVG_TURBULENCE_TYPE_FRACTALNOISE: number;
          SVG_TURBULENCE_TYPE_TURBULENCE: number;
          SVG_TURBULENCE_TYPE_UNKNOWN: number;
      }
      
      interface SVGFilterElement extends SVGElement, SVGUnitTypes, SVGStylable, SVGLangSpace, SVGURIReference, SVGExternalResourcesRequired {
          filterResX: SVGAnimatedInteger;
          filterResY: SVGAnimatedInteger;
          filterUnits: SVGAnimatedEnumeration;
          height: SVGAnimatedLength;
          primitiveUnits: SVGAnimatedEnumeration;
          width: SVGAnimatedLength;
          x: SVGAnimatedLength;
          y: SVGAnimatedLength;
          setFilterRes(filterResX: number, filterResY: number): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGFilterElement: {
          prototype: SVGFilterElement;
          new(): SVGFilterElement;
      }
      
      interface SVGForeignObjectElement extends SVGElement, SVGStylable, SVGTransformable, SVGTests, SVGLangSpace, SVGExternalResourcesRequired {
          height: SVGAnimatedLength;
          width: SVGAnimatedLength;
          x: SVGAnimatedLength;
          y: SVGAnimatedLength;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGForeignObjectElement: {
          prototype: SVGForeignObjectElement;
          new(): SVGForeignObjectElement;
      }
      
      interface SVGGElement extends SVGElement, SVGStylable, SVGTransformable, SVGTests, SVGLangSpace, SVGExternalResourcesRequired {
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGGElement: {
          prototype: SVGGElement;
          new(): SVGGElement;
      }
      
      interface SVGGradientElement extends SVGElement, SVGStylable, SVGExternalResourcesRequired, SVGURIReference, SVGUnitTypes {
          gradientTransform: SVGAnimatedTransformList;
          gradientUnits: SVGAnimatedEnumeration;
          spreadMethod: SVGAnimatedEnumeration;
          SVG_SPREADMETHOD_PAD: number;
          SVG_SPREADMETHOD_REFLECT: number;
          SVG_SPREADMETHOD_REPEAT: number;
          SVG_SPREADMETHOD_UNKNOWN: number;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGGradientElement: {
          prototype: SVGGradientElement;
          new(): SVGGradientElement;
          SVG_SPREADMETHOD_PAD: number;
          SVG_SPREADMETHOD_REFLECT: number;
          SVG_SPREADMETHOD_REPEAT: number;
          SVG_SPREADMETHOD_UNKNOWN: number;
      }
      
      interface SVGImageElement extends SVGElement, SVGStylable, SVGTransformable, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGURIReference {
          height: SVGAnimatedLength;
          preserveAspectRatio: SVGAnimatedPreserveAspectRatio;
          width: SVGAnimatedLength;
          x: SVGAnimatedLength;
          y: SVGAnimatedLength;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGImageElement: {
          prototype: SVGImageElement;
          new(): SVGImageElement;
      }
      
      interface SVGLength {
          unitType: number;
          value: number;
          valueAsString: string;
          valueInSpecifiedUnits: number;
          convertToSpecifiedUnits(unitType: number): void;
          newValueSpecifiedUnits(unitType: number, valueInSpecifiedUnits: number): void;
          SVG_LENGTHTYPE_CM: number;
          SVG_LENGTHTYPE_EMS: number;
          SVG_LENGTHTYPE_EXS: number;
          SVG_LENGTHTYPE_IN: number;
          SVG_LENGTHTYPE_MM: number;
          SVG_LENGTHTYPE_NUMBER: number;
          SVG_LENGTHTYPE_PC: number;
          SVG_LENGTHTYPE_PERCENTAGE: number;
          SVG_LENGTHTYPE_PT: number;
          SVG_LENGTHTYPE_PX: number;
          SVG_LENGTHTYPE_UNKNOWN: number;
      }
      
      declare var SVGLength: {
          prototype: SVGLength;
          new(): SVGLength;
          SVG_LENGTHTYPE_CM: number;
          SVG_LENGTHTYPE_EMS: number;
          SVG_LENGTHTYPE_EXS: number;
          SVG_LENGTHTYPE_IN: number;
          SVG_LENGTHTYPE_MM: number;
          SVG_LENGTHTYPE_NUMBER: number;
          SVG_LENGTHTYPE_PC: number;
          SVG_LENGTHTYPE_PERCENTAGE: number;
          SVG_LENGTHTYPE_PT: number;
          SVG_LENGTHTYPE_PX: number;
          SVG_LENGTHTYPE_UNKNOWN: number;
      }
      
      interface SVGLengthList {
          numberOfItems: number;
          appendItem(newItem: SVGLength): SVGLength;
          clear(): void;
          getItem(index: number): SVGLength;
          initialize(newItem: SVGLength): SVGLength;
          insertItemBefore(newItem: SVGLength, index: number): SVGLength;
          removeItem(index: number): SVGLength;
          replaceItem(newItem: SVGLength, index: number): SVGLength;
      }
      
      declare var SVGLengthList: {
          prototype: SVGLengthList;
          new(): SVGLengthList;
      }
      
      interface SVGLineElement extends SVGElement, SVGStylable, SVGTransformable, SVGTests, SVGLangSpace, SVGExternalResourcesRequired {
          x1: SVGAnimatedLength;
          x2: SVGAnimatedLength;
          y1: SVGAnimatedLength;
          y2: SVGAnimatedLength;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGLineElement: {
          prototype: SVGLineElement;
          new(): SVGLineElement;
      }
      
      interface SVGLinearGradientElement extends SVGGradientElement {
          x1: SVGAnimatedLength;
          x2: SVGAnimatedLength;
          y1: SVGAnimatedLength;
          y2: SVGAnimatedLength;
      }
      
      declare var SVGLinearGradientElement: {
          prototype: SVGLinearGradientElement;
          new(): SVGLinearGradientElement;
      }
      
      interface SVGMarkerElement extends SVGElement, SVGStylable, SVGLangSpace, SVGExternalResourcesRequired, SVGFitToViewBox {
          markerHeight: SVGAnimatedLength;
          markerUnits: SVGAnimatedEnumeration;
          markerWidth: SVGAnimatedLength;
          orientAngle: SVGAnimatedAngle;
          orientType: SVGAnimatedEnumeration;
          refX: SVGAnimatedLength;
          refY: SVGAnimatedLength;
          setOrientToAngle(angle: SVGAngle): void;
          setOrientToAuto(): void;
          SVG_MARKERUNITS_STROKEWIDTH: number;
          SVG_MARKERUNITS_UNKNOWN: number;
          SVG_MARKERUNITS_USERSPACEONUSE: number;
          SVG_MARKER_ORIENT_ANGLE: number;
          SVG_MARKER_ORIENT_AUTO: number;
          SVG_MARKER_ORIENT_UNKNOWN: number;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGMarkerElement: {
          prototype: SVGMarkerElement;
          new(): SVGMarkerElement;
          SVG_MARKERUNITS_STROKEWIDTH: number;
          SVG_MARKERUNITS_UNKNOWN: number;
          SVG_MARKERUNITS_USERSPACEONUSE: number;
          SVG_MARKER_ORIENT_ANGLE: number;
          SVG_MARKER_ORIENT_AUTO: number;
          SVG_MARKER_ORIENT_UNKNOWN: number;
      }
      
      interface SVGMaskElement extends SVGElement, SVGStylable, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGUnitTypes {
          height: SVGAnimatedLength;
          maskContentUnits: SVGAnimatedEnumeration;
          maskUnits: SVGAnimatedEnumeration;
          width: SVGAnimatedLength;
          x: SVGAnimatedLength;
          y: SVGAnimatedLength;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGMaskElement: {
          prototype: SVGMaskElement;
          new(): SVGMaskElement;
      }
      
      interface SVGMatrix {
          a: number;
          b: number;
          c: number;
          d: number;
          e: number;
          f: number;
          flipX(): SVGMatrix;
          flipY(): SVGMatrix;
          inverse(): SVGMatrix;
          multiply(secondMatrix: SVGMatrix): SVGMatrix;
          rotate(angle: number): SVGMatrix;
          rotateFromVector(x: number, y: number): SVGMatrix;
          scale(scaleFactor: number): SVGMatrix;
          scaleNonUniform(scaleFactorX: number, scaleFactorY: number): SVGMatrix;
          skewX(angle: number): SVGMatrix;
          skewY(angle: number): SVGMatrix;
          translate(x: number, y: number): SVGMatrix;
      }
      
      declare var SVGMatrix: {
          prototype: SVGMatrix;
          new(): SVGMatrix;
      }
      
      interface SVGMetadataElement extends SVGElement {
      }
      
      declare var SVGMetadataElement: {
          prototype: SVGMetadataElement;
          new(): SVGMetadataElement;
      }
      
      interface SVGNumber {
          value: number;
      }
      
      declare var SVGNumber: {
          prototype: SVGNumber;
          new(): SVGNumber;
      }
      
      interface SVGNumberList {
          numberOfItems: number;
          appendItem(newItem: SVGNumber): SVGNumber;
          clear(): void;
          getItem(index: number): SVGNumber;
          initialize(newItem: SVGNumber): SVGNumber;
          insertItemBefore(newItem: SVGNumber, index: number): SVGNumber;
          removeItem(index: number): SVGNumber;
          replaceItem(newItem: SVGNumber, index: number): SVGNumber;
      }
      
      declare var SVGNumberList: {
          prototype: SVGNumberList;
          new(): SVGNumberList;
      }
      
      interface SVGPathElement extends SVGElement, SVGStylable, SVGTransformable, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGAnimatedPathData {
          createSVGPathSegArcAbs(x: number, y: number, r1: number, r2: number, angle: number, largeArcFlag: boolean, sweepFlag: boolean): SVGPathSegArcAbs;
          createSVGPathSegArcRel(x: number, y: number, r1: number, r2: number, angle: number, largeArcFlag: boolean, sweepFlag: boolean): SVGPathSegArcRel;
          createSVGPathSegClosePath(): SVGPathSegClosePath;
          createSVGPathSegCurvetoCubicAbs(x: number, y: number, x1: number, y1: number, x2: number, y2: number): SVGPathSegCurvetoCubicAbs;
          createSVGPathSegCurvetoCubicRel(x: number, y: number, x1: number, y1: number, x2: number, y2: number): SVGPathSegCurvetoCubicRel;
          createSVGPathSegCurvetoCubicSmoothAbs(x: number, y: number, x2: number, y2: number): SVGPathSegCurvetoCubicSmoothAbs;
          createSVGPathSegCurvetoCubicSmoothRel(x: number, y: number, x2: number, y2: number): SVGPathSegCurvetoCubicSmoothRel;
          createSVGPathSegCurvetoQuadraticAbs(x: number, y: number, x1: number, y1: number): SVGPathSegCurvetoQuadraticAbs;
          createSVGPathSegCurvetoQuadraticRel(x: number, y: number, x1: number, y1: number): SVGPathSegCurvetoQuadraticRel;
          createSVGPathSegCurvetoQuadraticSmoothAbs(x: number, y: number): SVGPathSegCurvetoQuadraticSmoothAbs;
          createSVGPathSegCurvetoQuadraticSmoothRel(x: number, y: number): SVGPathSegCurvetoQuadraticSmoothRel;
          createSVGPathSegLinetoAbs(x: number, y: number): SVGPathSegLinetoAbs;
          createSVGPathSegLinetoHorizontalAbs(x: number): SVGPathSegLinetoHorizontalAbs;
          createSVGPathSegLinetoHorizontalRel(x: number): SVGPathSegLinetoHorizontalRel;
          createSVGPathSegLinetoRel(x: number, y: number): SVGPathSegLinetoRel;
          createSVGPathSegLinetoVerticalAbs(y: number): SVGPathSegLinetoVerticalAbs;
          createSVGPathSegLinetoVerticalRel(y: number): SVGPathSegLinetoVerticalRel;
          createSVGPathSegMovetoAbs(x: number, y: number): SVGPathSegMovetoAbs;
          createSVGPathSegMovetoRel(x: number, y: number): SVGPathSegMovetoRel;
          getPathSegAtLength(distance: number): number;
          getPointAtLength(distance: number): SVGPoint;
          getTotalLength(): number;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGPathElement: {
          prototype: SVGPathElement;
          new(): SVGPathElement;
      }
      
      interface SVGPathSeg {
          pathSegType: number;
          pathSegTypeAsLetter: string;
          PATHSEG_ARC_ABS: number;
          PATHSEG_ARC_REL: number;
          PATHSEG_CLOSEPATH: number;
          PATHSEG_CURVETO_CUBIC_ABS: number;
          PATHSEG_CURVETO_CUBIC_REL: number;
          PATHSEG_CURVETO_CUBIC_SMOOTH_ABS: number;
          PATHSEG_CURVETO_CUBIC_SMOOTH_REL: number;
          PATHSEG_CURVETO_QUADRATIC_ABS: number;
          PATHSEG_CURVETO_QUADRATIC_REL: number;
          PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS: number;
          PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL: number;
          PATHSEG_LINETO_ABS: number;
          PATHSEG_LINETO_HORIZONTAL_ABS: number;
          PATHSEG_LINETO_HORIZONTAL_REL: number;
          PATHSEG_LINETO_REL: number;
          PATHSEG_LINETO_VERTICAL_ABS: number;
          PATHSEG_LINETO_VERTICAL_REL: number;
          PATHSEG_MOVETO_ABS: number;
          PATHSEG_MOVETO_REL: number;
          PATHSEG_UNKNOWN: number;
      }
      
      declare var SVGPathSeg: {
          prototype: SVGPathSeg;
          new(): SVGPathSeg;
          PATHSEG_ARC_ABS: number;
          PATHSEG_ARC_REL: number;
          PATHSEG_CLOSEPATH: number;
          PATHSEG_CURVETO_CUBIC_ABS: number;
          PATHSEG_CURVETO_CUBIC_REL: number;
          PATHSEG_CURVETO_CUBIC_SMOOTH_ABS: number;
          PATHSEG_CURVETO_CUBIC_SMOOTH_REL: number;
          PATHSEG_CURVETO_QUADRATIC_ABS: number;
          PATHSEG_CURVETO_QUADRATIC_REL: number;
          PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS: number;
          PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL: number;
          PATHSEG_LINETO_ABS: number;
          PATHSEG_LINETO_HORIZONTAL_ABS: number;
          PATHSEG_LINETO_HORIZONTAL_REL: number;
          PATHSEG_LINETO_REL: number;
          PATHSEG_LINETO_VERTICAL_ABS: number;
          PATHSEG_LINETO_VERTICAL_REL: number;
          PATHSEG_MOVETO_ABS: number;
          PATHSEG_MOVETO_REL: number;
          PATHSEG_UNKNOWN: number;
      }
      
      interface SVGPathSegArcAbs extends SVGPathSeg {
          angle: number;
          largeArcFlag: boolean;
          r1: number;
          r2: number;
          sweepFlag: boolean;
          x: number;
          y: number;
      }
      
      declare var SVGPathSegArcAbs: {
          prototype: SVGPathSegArcAbs;
          new(): SVGPathSegArcAbs;
      }
      
      interface SVGPathSegArcRel extends SVGPathSeg {
          angle: number;
          largeArcFlag: boolean;
          r1: number;
          r2: number;
          sweepFlag: boolean;
          x: number;
          y: number;
      }
      
      declare var SVGPathSegArcRel: {
          prototype: SVGPathSegArcRel;
          new(): SVGPathSegArcRel;
      }
      
      interface SVGPathSegClosePath extends SVGPathSeg {
      }
      
      declare var SVGPathSegClosePath: {
          prototype: SVGPathSegClosePath;
          new(): SVGPathSegClosePath;
      }
      
      interface SVGPathSegCurvetoCubicAbs extends SVGPathSeg {
          x: number;
          x1: number;
          x2: number;
          y: number;
          y1: number;
          y2: number;
      }
      
      declare var SVGPathSegCurvetoCubicAbs: {
          prototype: SVGPathSegCurvetoCubicAbs;
          new(): SVGPathSegCurvetoCubicAbs;
      }
      
      interface SVGPathSegCurvetoCubicRel extends SVGPathSeg {
          x: number;
          x1: number;
          x2: number;
          y: number;
          y1: number;
          y2: number;
      }
      
      declare var SVGPathSegCurvetoCubicRel: {
          prototype: SVGPathSegCurvetoCubicRel;
          new(): SVGPathSegCurvetoCubicRel;
      }
      
      interface SVGPathSegCurvetoCubicSmoothAbs extends SVGPathSeg {
          x: number;
          x2: number;
          y: number;
          y2: number;
      }
      
      declare var SVGPathSegCurvetoCubicSmoothAbs: {
          prototype: SVGPathSegCurvetoCubicSmoothAbs;
          new(): SVGPathSegCurvetoCubicSmoothAbs;
      }
      
      interface SVGPathSegCurvetoCubicSmoothRel extends SVGPathSeg {
          x: number;
          x2: number;
          y: number;
          y2: number;
      }
      
      declare var SVGPathSegCurvetoCubicSmoothRel: {
          prototype: SVGPathSegCurvetoCubicSmoothRel;
          new(): SVGPathSegCurvetoCubicSmoothRel;
      }
      
      interface SVGPathSegCurvetoQuadraticAbs extends SVGPathSeg {
          x: number;
          x1: number;
          y: number;
          y1: number;
      }
      
      declare var SVGPathSegCurvetoQuadraticAbs: {
          prototype: SVGPathSegCurvetoQuadraticAbs;
          new(): SVGPathSegCurvetoQuadraticAbs;
      }
      
      interface SVGPathSegCurvetoQuadraticRel extends SVGPathSeg {
          x: number;
          x1: number;
          y: number;
          y1: number;
      }
      
      declare var SVGPathSegCurvetoQuadraticRel: {
          prototype: SVGPathSegCurvetoQuadraticRel;
          new(): SVGPathSegCurvetoQuadraticRel;
      }
      
      interface SVGPathSegCurvetoQuadraticSmoothAbs extends SVGPathSeg {
          x: number;
          y: number;
      }
      
      declare var SVGPathSegCurvetoQuadraticSmoothAbs: {
          prototype: SVGPathSegCurvetoQuadraticSmoothAbs;
          new(): SVGPathSegCurvetoQuadraticSmoothAbs;
      }
      
      interface SVGPathSegCurvetoQuadraticSmoothRel extends SVGPathSeg {
          x: number;
          y: number;
      }
      
      declare var SVGPathSegCurvetoQuadraticSmoothRel: {
          prototype: SVGPathSegCurvetoQuadraticSmoothRel;
          new(): SVGPathSegCurvetoQuadraticSmoothRel;
      }
      
      interface SVGPathSegLinetoAbs extends SVGPathSeg {
          x: number;
          y: number;
      }
      
      declare var SVGPathSegLinetoAbs: {
          prototype: SVGPathSegLinetoAbs;
          new(): SVGPathSegLinetoAbs;
      }
      
      interface SVGPathSegLinetoHorizontalAbs extends SVGPathSeg {
          x: number;
      }
      
      declare var SVGPathSegLinetoHorizontalAbs: {
          prototype: SVGPathSegLinetoHorizontalAbs;
          new(): SVGPathSegLinetoHorizontalAbs;
      }
      
      interface SVGPathSegLinetoHorizontalRel extends SVGPathSeg {
          x: number;
      }
      
      declare var SVGPathSegLinetoHorizontalRel: {
          prototype: SVGPathSegLinetoHorizontalRel;
          new(): SVGPathSegLinetoHorizontalRel;
      }
      
      interface SVGPathSegLinetoRel extends SVGPathSeg {
          x: number;
          y: number;
      }
      
      declare var SVGPathSegLinetoRel: {
          prototype: SVGPathSegLinetoRel;
          new(): SVGPathSegLinetoRel;
      }
      
      interface SVGPathSegLinetoVerticalAbs extends SVGPathSeg {
          y: number;
      }
      
      declare var SVGPathSegLinetoVerticalAbs: {
          prototype: SVGPathSegLinetoVerticalAbs;
          new(): SVGPathSegLinetoVerticalAbs;
      }
      
      interface SVGPathSegLinetoVerticalRel extends SVGPathSeg {
          y: number;
      }
      
      declare var SVGPathSegLinetoVerticalRel: {
          prototype: SVGPathSegLinetoVerticalRel;
          new(): SVGPathSegLinetoVerticalRel;
      }
      
      interface SVGPathSegList {
          numberOfItems: number;
          appendItem(newItem: SVGPathSeg): SVGPathSeg;
          clear(): void;
          getItem(index: number): SVGPathSeg;
          initialize(newItem: SVGPathSeg): SVGPathSeg;
          insertItemBefore(newItem: SVGPathSeg, index: number): SVGPathSeg;
          removeItem(index: number): SVGPathSeg;
          replaceItem(newItem: SVGPathSeg, index: number): SVGPathSeg;
      }
      
      declare var SVGPathSegList: {
          prototype: SVGPathSegList;
          new(): SVGPathSegList;
      }
      
      interface SVGPathSegMovetoAbs extends SVGPathSeg {
          x: number;
          y: number;
      }
      
      declare var SVGPathSegMovetoAbs: {
          prototype: SVGPathSegMovetoAbs;
          new(): SVGPathSegMovetoAbs;
      }
      
      interface SVGPathSegMovetoRel extends SVGPathSeg {
          x: number;
          y: number;
      }
      
      declare var SVGPathSegMovetoRel: {
          prototype: SVGPathSegMovetoRel;
          new(): SVGPathSegMovetoRel;
      }
      
      interface SVGPatternElement extends SVGElement, SVGStylable, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGFitToViewBox, SVGURIReference, SVGUnitTypes {
          height: SVGAnimatedLength;
          patternContentUnits: SVGAnimatedEnumeration;
          patternTransform: SVGAnimatedTransformList;
          patternUnits: SVGAnimatedEnumeration;
          width: SVGAnimatedLength;
          x: SVGAnimatedLength;
          y: SVGAnimatedLength;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGPatternElement: {
          prototype: SVGPatternElement;
          new(): SVGPatternElement;
      }
      
      interface SVGPoint {
          x: number;
          y: number;
          matrixTransform(matrix: SVGMatrix): SVGPoint;
      }
      
      declare var SVGPoint: {
          prototype: SVGPoint;
          new(): SVGPoint;
      }
      
      interface SVGPointList {
          numberOfItems: number;
          appendItem(newItem: SVGPoint): SVGPoint;
          clear(): void;
          getItem(index: number): SVGPoint;
          initialize(newItem: SVGPoint): SVGPoint;
          insertItemBefore(newItem: SVGPoint, index: number): SVGPoint;
          removeItem(index: number): SVGPoint;
          replaceItem(newItem: SVGPoint, index: number): SVGPoint;
      }
      
      declare var SVGPointList: {
          prototype: SVGPointList;
          new(): SVGPointList;
      }
      
      interface SVGPolygonElement extends SVGElement, SVGStylable, SVGTransformable, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGAnimatedPoints {
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGPolygonElement: {
          prototype: SVGPolygonElement;
          new(): SVGPolygonElement;
      }
      
      interface SVGPolylineElement extends SVGElement, SVGStylable, SVGTransformable, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGAnimatedPoints {
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGPolylineElement: {
          prototype: SVGPolylineElement;
          new(): SVGPolylineElement;
      }
      
      interface SVGPreserveAspectRatio {
          align: number;
          meetOrSlice: number;
          SVG_MEETORSLICE_MEET: number;
          SVG_MEETORSLICE_SLICE: number;
          SVG_MEETORSLICE_UNKNOWN: number;
          SVG_PRESERVEASPECTRATIO_NONE: number;
          SVG_PRESERVEASPECTRATIO_UNKNOWN: number;
          SVG_PRESERVEASPECTRATIO_XMAXYMAX: number;
          SVG_PRESERVEASPECTRATIO_XMAXYMID: number;
          SVG_PRESERVEASPECTRATIO_XMAXYMIN: number;
          SVG_PRESERVEASPECTRATIO_XMIDYMAX: number;
          SVG_PRESERVEASPECTRATIO_XMIDYMID: number;
          SVG_PRESERVEASPECTRATIO_XMIDYMIN: number;
          SVG_PRESERVEASPECTRATIO_XMINYMAX: number;
          SVG_PRESERVEASPECTRATIO_XMINYMID: number;
          SVG_PRESERVEASPECTRATIO_XMINYMIN: number;
      }
      
      declare var SVGPreserveAspectRatio: {
          prototype: SVGPreserveAspectRatio;
          new(): SVGPreserveAspectRatio;
          SVG_MEETORSLICE_MEET: number;
          SVG_MEETORSLICE_SLICE: number;
          SVG_MEETORSLICE_UNKNOWN: number;
          SVG_PRESERVEASPECTRATIO_NONE: number;
          SVG_PRESERVEASPECTRATIO_UNKNOWN: number;
          SVG_PRESERVEASPECTRATIO_XMAXYMAX: number;
          SVG_PRESERVEASPECTRATIO_XMAXYMID: number;
          SVG_PRESERVEASPECTRATIO_XMAXYMIN: number;
          SVG_PRESERVEASPECTRATIO_XMIDYMAX: number;
          SVG_PRESERVEASPECTRATIO_XMIDYMID: number;
          SVG_PRESERVEASPECTRATIO_XMIDYMIN: number;
          SVG_PRESERVEASPECTRATIO_XMINYMAX: number;
          SVG_PRESERVEASPECTRATIO_XMINYMID: number;
          SVG_PRESERVEASPECTRATIO_XMINYMIN: number;
      }
      
      interface SVGRadialGradientElement extends SVGGradientElement {
          cx: SVGAnimatedLength;
          cy: SVGAnimatedLength;
          fx: SVGAnimatedLength;
          fy: SVGAnimatedLength;
          r: SVGAnimatedLength;
      }
      
      declare var SVGRadialGradientElement: {
          prototype: SVGRadialGradientElement;
          new(): SVGRadialGradientElement;
      }
      
      interface SVGRect {
          height: number;
          width: number;
          x: number;
          y: number;
      }
      
      declare var SVGRect: {
          prototype: SVGRect;
          new(): SVGRect;
      }
      
      interface SVGRectElement extends SVGElement, SVGStylable, SVGTransformable, SVGTests, SVGLangSpace, SVGExternalResourcesRequired {
          height: SVGAnimatedLength;
          rx: SVGAnimatedLength;
          ry: SVGAnimatedLength;
          width: SVGAnimatedLength;
          x: SVGAnimatedLength;
          y: SVGAnimatedLength;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGRectElement: {
          prototype: SVGRectElement;
          new(): SVGRectElement;
      }
      
      interface SVGSVGElement extends SVGElement, DocumentEvent, SVGLocatable, SVGTests, SVGStylable, SVGLangSpace, SVGExternalResourcesRequired, SVGFitToViewBox, SVGZoomAndPan {
          contentScriptType: string;
          contentStyleType: string;
          currentScale: number;
          currentTranslate: SVGPoint;
          height: SVGAnimatedLength;
          onabort: (ev: Event) => any;
          onerror: (ev: Event) => any;
          onresize: (ev: UIEvent) => any;
          onscroll: (ev: UIEvent) => any;
          onunload: (ev: Event) => any;
          onzoom: (ev: SVGZoomEvent) => any;
          pixelUnitToMillimeterX: number;
          pixelUnitToMillimeterY: number;
          screenPixelToMillimeterX: number;
          screenPixelToMillimeterY: number;
          viewport: SVGRect;
          width: SVGAnimatedLength;
          x: SVGAnimatedLength;
          y: SVGAnimatedLength;
          checkEnclosure(element: SVGElement, rect: SVGRect): boolean;
          checkIntersection(element: SVGElement, rect: SVGRect): boolean;
          createSVGAngle(): SVGAngle;
          createSVGLength(): SVGLength;
          createSVGMatrix(): SVGMatrix;
          createSVGNumber(): SVGNumber;
          createSVGPoint(): SVGPoint;
          createSVGRect(): SVGRect;
          createSVGTransform(): SVGTransform;
          createSVGTransformFromMatrix(matrix: SVGMatrix): SVGTransform;
          deselectAll(): void;
          forceRedraw(): void;
          getComputedStyle(elt: Element, pseudoElt?: string): CSSStyleDeclaration;
          getCurrentTime(): number;
          getElementById(elementId: string): Element;
          getEnclosureList(rect: SVGRect, referenceElement: SVGElement): NodeList;
          getIntersectionList(rect: SVGRect, referenceElement: SVGElement): NodeList;
          pauseAnimations(): void;
          setCurrentTime(seconds: number): void;
          suspendRedraw(maxWaitMilliseconds: number): number;
          unpauseAnimations(): void;
          unsuspendRedraw(suspendHandleID: number): void;
          unsuspendRedrawAll(): void;
          addEventListener(type: "MSGestureChange", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureDoubleTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureEnd", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureHold", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGotPointerCapture", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSInertiaStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSLostPointerCapture", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerCancel", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerDown", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerEnter", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerLeave", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerMove", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerOut", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerOver", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerUp", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "SVGAbort", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "SVGError", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "SVGUnload", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "SVGZoom", listener: (ev: SVGZoomEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "ariarequest", listener: (ev: AriaRequestEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "click", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "command", listener: (ev: CommandEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dblclick", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "focusin", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "focusout", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "gotpointercapture", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "load", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "lostpointercapture", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousedown", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousemove", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseout", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseover", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseup", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointercancel", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerdown", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerenter", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerleave", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointermove", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerout", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerover", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerup", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "resize", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "scroll", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchcancel", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchend", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchmove", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "touchstart", listener: (ev: TouchEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "webkitfullscreenchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "webkitfullscreenerror", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "wheel", listener: (ev: WheelEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGSVGElement: {
          prototype: SVGSVGElement;
          new(): SVGSVGElement;
      }
      
      interface SVGScriptElement extends SVGElement, SVGExternalResourcesRequired, SVGURIReference {
          type: string;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGScriptElement: {
          prototype: SVGScriptElement;
          new(): SVGScriptElement;
      }
      
      interface SVGStopElement extends SVGElement, SVGStylable {
          offset: SVGAnimatedNumber;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGStopElement: {
          prototype: SVGStopElement;
          new(): SVGStopElement;
      }
      
      interface SVGStringList {
          numberOfItems: number;
          appendItem(newItem: string): string;
          clear(): void;
          getItem(index: number): string;
          initialize(newItem: string): string;
          insertItemBefore(newItem: string, index: number): string;
          removeItem(index: number): string;
          replaceItem(newItem: string, index: number): string;
      }
      
      declare var SVGStringList: {
          prototype: SVGStringList;
          new(): SVGStringList;
      }
      
      interface SVGStyleElement extends SVGElement, SVGLangSpace {
          media: string;
          title: string;
          type: string;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGStyleElement: {
          prototype: SVGStyleElement;
          new(): SVGStyleElement;
      }
      
      interface SVGSwitchElement extends SVGElement, SVGStylable, SVGTransformable, SVGTests, SVGLangSpace, SVGExternalResourcesRequired {
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGSwitchElement: {
          prototype: SVGSwitchElement;
          new(): SVGSwitchElement;
      }
      
      interface SVGSymbolElement extends SVGElement, SVGStylable, SVGLangSpace, SVGExternalResourcesRequired, SVGFitToViewBox {
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGSymbolElement: {
          prototype: SVGSymbolElement;
          new(): SVGSymbolElement;
      }
      
      interface SVGTSpanElement extends SVGTextPositioningElement {
      }
      
      declare var SVGTSpanElement: {
          prototype: SVGTSpanElement;
          new(): SVGTSpanElement;
      }
      
      interface SVGTextContentElement extends SVGElement, SVGStylable, SVGTests, SVGLangSpace, SVGExternalResourcesRequired {
          lengthAdjust: SVGAnimatedEnumeration;
          textLength: SVGAnimatedLength;
          getCharNumAtPosition(point: SVGPoint): number;
          getComputedTextLength(): number;
          getEndPositionOfChar(charnum: number): SVGPoint;
          getExtentOfChar(charnum: number): SVGRect;
          getNumberOfChars(): number;
          getRotationOfChar(charnum: number): number;
          getStartPositionOfChar(charnum: number): SVGPoint;
          getSubStringLength(charnum: number, nchars: number): number;
          selectSubString(charnum: number, nchars: number): void;
          LENGTHADJUST_SPACING: number;
          LENGTHADJUST_SPACINGANDGLYPHS: number;
          LENGTHADJUST_UNKNOWN: number;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGTextContentElement: {
          prototype: SVGTextContentElement;
          new(): SVGTextContentElement;
          LENGTHADJUST_SPACING: number;
          LENGTHADJUST_SPACINGANDGLYPHS: number;
          LENGTHADJUST_UNKNOWN: number;
      }
      
      interface SVGTextElement extends SVGTextPositioningElement, SVGTransformable {
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGTextElement: {
          prototype: SVGTextElement;
          new(): SVGTextElement;
      }
      
      interface SVGTextPathElement extends SVGTextContentElement, SVGURIReference {
          method: SVGAnimatedEnumeration;
          spacing: SVGAnimatedEnumeration;
          startOffset: SVGAnimatedLength;
          TEXTPATH_METHODTYPE_ALIGN: number;
          TEXTPATH_METHODTYPE_STRETCH: number;
          TEXTPATH_METHODTYPE_UNKNOWN: number;
          TEXTPATH_SPACINGTYPE_AUTO: number;
          TEXTPATH_SPACINGTYPE_EXACT: number;
          TEXTPATH_SPACINGTYPE_UNKNOWN: number;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGTextPathElement: {
          prototype: SVGTextPathElement;
          new(): SVGTextPathElement;
          TEXTPATH_METHODTYPE_ALIGN: number;
          TEXTPATH_METHODTYPE_STRETCH: number;
          TEXTPATH_METHODTYPE_UNKNOWN: number;
          TEXTPATH_SPACINGTYPE_AUTO: number;
          TEXTPATH_SPACINGTYPE_EXACT: number;
          TEXTPATH_SPACINGTYPE_UNKNOWN: number;
      }
      
      interface SVGTextPositioningElement extends SVGTextContentElement {
          dx: SVGAnimatedLengthList;
          dy: SVGAnimatedLengthList;
          rotate: SVGAnimatedNumberList;
          x: SVGAnimatedLengthList;
          y: SVGAnimatedLengthList;
      }
      
      declare var SVGTextPositioningElement: {
          prototype: SVGTextPositioningElement;
          new(): SVGTextPositioningElement;
      }
      
      interface SVGTitleElement extends SVGElement, SVGStylable, SVGLangSpace {
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGTitleElement: {
          prototype: SVGTitleElement;
          new(): SVGTitleElement;
      }
      
      interface SVGTransform {
          angle: number;
          matrix: SVGMatrix;
          type: number;
          setMatrix(matrix: SVGMatrix): void;
          setRotate(angle: number, cx: number, cy: number): void;
          setScale(sx: number, sy: number): void;
          setSkewX(angle: number): void;
          setSkewY(angle: number): void;
          setTranslate(tx: number, ty: number): void;
          SVG_TRANSFORM_MATRIX: number;
          SVG_TRANSFORM_ROTATE: number;
          SVG_TRANSFORM_SCALE: number;
          SVG_TRANSFORM_SKEWX: number;
          SVG_TRANSFORM_SKEWY: number;
          SVG_TRANSFORM_TRANSLATE: number;
          SVG_TRANSFORM_UNKNOWN: number;
      }
      
      declare var SVGTransform: {
          prototype: SVGTransform;
          new(): SVGTransform;
          SVG_TRANSFORM_MATRIX: number;
          SVG_TRANSFORM_ROTATE: number;
          SVG_TRANSFORM_SCALE: number;
          SVG_TRANSFORM_SKEWX: number;
          SVG_TRANSFORM_SKEWY: number;
          SVG_TRANSFORM_TRANSLATE: number;
          SVG_TRANSFORM_UNKNOWN: number;
      }
      
      interface SVGTransformList {
          numberOfItems: number;
          appendItem(newItem: SVGTransform): SVGTransform;
          clear(): void;
          consolidate(): SVGTransform;
          createSVGTransformFromMatrix(matrix: SVGMatrix): SVGTransform;
          getItem(index: number): SVGTransform;
          initialize(newItem: SVGTransform): SVGTransform;
          insertItemBefore(newItem: SVGTransform, index: number): SVGTransform;
          removeItem(index: number): SVGTransform;
          replaceItem(newItem: SVGTransform, index: number): SVGTransform;
      }
      
      declare var SVGTransformList: {
          prototype: SVGTransformList;
          new(): SVGTransformList;
      }
      
      interface SVGUnitTypes {
          SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: number;
          SVG_UNIT_TYPE_UNKNOWN: number;
          SVG_UNIT_TYPE_USERSPACEONUSE: number;
      }
      declare var SVGUnitTypes: SVGUnitTypes;
      
      interface SVGUseElement extends SVGElement, SVGStylable, SVGTransformable, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGURIReference {
          animatedInstanceRoot: SVGElementInstance;
          height: SVGAnimatedLength;
          instanceRoot: SVGElementInstance;
          width: SVGAnimatedLength;
          x: SVGAnimatedLength;
          y: SVGAnimatedLength;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGUseElement: {
          prototype: SVGUseElement;
          new(): SVGUseElement;
      }
      
      interface SVGViewElement extends SVGElement, SVGExternalResourcesRequired, SVGFitToViewBox, SVGZoomAndPan {
          viewTarget: SVGStringList;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var SVGViewElement: {
          prototype: SVGViewElement;
          new(): SVGViewElement;
      }
      
      interface SVGZoomAndPan {
          SVG_ZOOMANDPAN_DISABLE: number;
          SVG_ZOOMANDPAN_MAGNIFY: number;
          SVG_ZOOMANDPAN_UNKNOWN: number;
      }
      declare var SVGZoomAndPan: SVGZoomAndPan;
      
      interface SVGZoomEvent extends UIEvent {
          newScale: number;
          newTranslate: SVGPoint;
          previousScale: number;
          previousTranslate: SVGPoint;
          zoomRectScreen: SVGRect;
      }
      
      declare var SVGZoomEvent: {
          prototype: SVGZoomEvent;
          new(): SVGZoomEvent;
      }
      
      interface Screen extends EventTarget {
          availHeight: number;
          availWidth: number;
          bufferDepth: number;
          colorDepth: number;
          deviceXDPI: number;
          deviceYDPI: number;
          fontSmoothingEnabled: boolean;
          height: number;
          logicalXDPI: number;
          logicalYDPI: number;
          msOrientation: string;
          onmsorientationchange: (ev: Event) => any;
          pixelDepth: number;
          systemXDPI: number;
          systemYDPI: number;
          width: number;
          msLockOrientation(orientations: string): boolean;
          msLockOrientation(orientations: string[]): boolean;
          msUnlockOrientation(): void;
          addEventListener(type: "MSOrientationChange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var Screen: {
          prototype: Screen;
          new(): Screen;
      }
      
      interface ScriptNotifyEvent extends Event {
          callingUri: string;
          value: string;
      }
      
      declare var ScriptNotifyEvent: {
          prototype: ScriptNotifyEvent;
          new(): ScriptNotifyEvent;
      }
      
      interface ScriptProcessorNode extends AudioNode {
          bufferSize: number;
          onaudioprocess: (ev: AudioProcessingEvent) => any;
          addEventListener(type: "audioprocess", listener: (ev: AudioProcessingEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var ScriptProcessorNode: {
          prototype: ScriptProcessorNode;
          new(): ScriptProcessorNode;
      }
      
      interface Selection {
          anchorNode: Node;
          anchorOffset: number;
          focusNode: Node;
          focusOffset: number;
          isCollapsed: boolean;
          rangeCount: number;
          type: string;
          addRange(range: Range): void;
          collapse(parentNode: Node, offset: number): void;
          collapseToEnd(): void;
          collapseToStart(): void;
          containsNode(node: Node, partlyContained: boolean): boolean;
          deleteFromDocument(): void;
          empty(): void;
          extend(newNode: Node, offset: number): void;
          getRangeAt(index: number): Range;
          removeAllRanges(): void;
          removeRange(range: Range): void;
          selectAllChildren(parentNode: Node): void;
          setBaseAndExtent(baseNode: Node, baseOffset: number, extentNode: Node, extentOffset: number): void;
          toString(): string;
      }
      
      declare var Selection: {
          prototype: Selection;
          new(): Selection;
      }
      
      interface SourceBuffer extends EventTarget {
          appendWindowEnd: number;
          appendWindowStart: number;
          audioTracks: AudioTrackList;
          buffered: TimeRanges;
          mode: string;
          timestampOffset: number;
          updating: boolean;
          videoTracks: VideoTrackList;
          abort(): void;
          appendBuffer(data: ArrayBuffer): void;
          appendBuffer(data: ArrayBufferView): void;
          appendStream(stream: MSStream, maxSize?: number): void;
          remove(start: number, end: number): void;
      }
      
      declare var SourceBuffer: {
          prototype: SourceBuffer;
          new(): SourceBuffer;
      }
      
      interface SourceBufferList extends EventTarget {
          length: number;
          item(index: number): SourceBuffer;
          [index: number]: SourceBuffer;
      }
      
      declare var SourceBufferList: {
          prototype: SourceBufferList;
          new(): SourceBufferList;
      }
      
      interface StereoPannerNode extends AudioNode {
          pan: AudioParam;
      }
      
      declare var StereoPannerNode: {
          prototype: StereoPannerNode;
          new(): StereoPannerNode;
      }
      
      interface Storage {
          length: number;
          clear(): void;
          getItem(key: string): any;
          key(index: number): string;
          removeItem(key: string): void;
          setItem(key: string, data: string): void;
          [key: string]: any;
          [index: number]: string;
      }
      
      declare var Storage: {
          prototype: Storage;
          new(): Storage;
      }
      
      interface StorageEvent extends Event {
          key: string;
          newValue: any;
          oldValue: any;
          storageArea: Storage;
          url: string;
          initStorageEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, keyArg: string, oldValueArg: any, newValueArg: any, urlArg: string, storageAreaArg: Storage): void;
      }
      
      declare var StorageEvent: {
          prototype: StorageEvent;
          new(): StorageEvent;
      }
      
      interface StyleMedia {
          type: string;
          matchMedium(mediaquery: string): boolean;
      }
      
      declare var StyleMedia: {
          prototype: StyleMedia;
          new(): StyleMedia;
      }
      
      interface StyleSheet {
          disabled: boolean;
          href: string;
          media: MediaList;
          ownerNode: Node;
          parentStyleSheet: StyleSheet;
          title: string;
          type: string;
      }
      
      declare var StyleSheet: {
          prototype: StyleSheet;
          new(): StyleSheet;
      }
      
      interface StyleSheetList {
          length: number;
          item(index?: number): StyleSheet;
          [index: number]: StyleSheet;
      }
      
      declare var StyleSheetList: {
          prototype: StyleSheetList;
          new(): StyleSheetList;
      }
      
      interface StyleSheetPageList {
          length: number;
          item(index: number): CSSPageRule;
          [index: number]: CSSPageRule;
      }
      
      declare var StyleSheetPageList: {
          prototype: StyleSheetPageList;
          new(): StyleSheetPageList;
      }
      
      interface SubtleCrypto {
          decrypt(algorithm: string, key: CryptoKey, data: ArrayBufferView): any;
          decrypt(algorithm: Algorithm, key: CryptoKey, data: ArrayBufferView): any;
          deriveBits(algorithm: string, baseKey: CryptoKey, length: number): any;
          deriveBits(algorithm: Algorithm, baseKey: CryptoKey, length: number): any;
          deriveKey(algorithm: string, baseKey: CryptoKey, derivedKeyType: string, extractable: boolean, keyUsages: string[]): any;
          deriveKey(algorithm: string, baseKey: CryptoKey, derivedKeyType: Algorithm, extractable: boolean, keyUsages: string[]): any;
          deriveKey(algorithm: Algorithm, baseKey: CryptoKey, derivedKeyType: string, extractable: boolean, keyUsages: string[]): any;
          deriveKey(algorithm: Algorithm, baseKey: CryptoKey, derivedKeyType: Algorithm, extractable: boolean, keyUsages: string[]): any;
          digest(algorithm: string, data: ArrayBufferView): any;
          digest(algorithm: Algorithm, data: ArrayBufferView): any;
          encrypt(algorithm: string, key: CryptoKey, data: ArrayBufferView): any;
          encrypt(algorithm: Algorithm, key: CryptoKey, data: ArrayBufferView): any;
          exportKey(format: string, key: CryptoKey): any;
          generateKey(algorithm: string, extractable: boolean, keyUsages: string[]): any;
          generateKey(algorithm: Algorithm, extractable: boolean, keyUsages: string[]): any;
          importKey(format: string, keyData: ArrayBufferView, algorithm: string, extractable: boolean, keyUsages: string[]): any;
          importKey(format: string, keyData: ArrayBufferView, algorithm: Algorithm, extractable: boolean, keyUsages: string[]): any;
          sign(algorithm: string, key: CryptoKey, data: ArrayBufferView): any;
          sign(algorithm: Algorithm, key: CryptoKey, data: ArrayBufferView): any;
          unwrapKey(format: string, wrappedKey: ArrayBufferView, unwrappingKey: CryptoKey, unwrapAlgorithm: string, unwrappedKeyAlgorithm: string, extractable: boolean, keyUsages: string[]): any;
          unwrapKey(format: string, wrappedKey: ArrayBufferView, unwrappingKey: CryptoKey, unwrapAlgorithm: string, unwrappedKeyAlgorithm: Algorithm, extractable: boolean, keyUsages: string[]): any;
          unwrapKey(format: string, wrappedKey: ArrayBufferView, unwrappingKey: CryptoKey, unwrapAlgorithm: Algorithm, unwrappedKeyAlgorithm: string, extractable: boolean, keyUsages: string[]): any;
          unwrapKey(format: string, wrappedKey: ArrayBufferView, unwrappingKey: CryptoKey, unwrapAlgorithm: Algorithm, unwrappedKeyAlgorithm: Algorithm, extractable: boolean, keyUsages: string[]): any;
          verify(algorithm: string, key: CryptoKey, signature: ArrayBufferView, data: ArrayBufferView): any;
          verify(algorithm: Algorithm, key: CryptoKey, signature: ArrayBufferView, data: ArrayBufferView): any;
          wrapKey(format: string, key: CryptoKey, wrappingKey: CryptoKey, wrapAlgorithm: string): any;
          wrapKey(format: string, key: CryptoKey, wrappingKey: CryptoKey, wrapAlgorithm: Algorithm): any;
      }
      
      declare var SubtleCrypto: {
          prototype: SubtleCrypto;
          new(): SubtleCrypto;
      }
      
      interface Text extends CharacterData {
          wholeText: string;
          replaceWholeText(content: string): Text;
          splitText(offset: number): Text;
      }
      
      declare var Text: {
          prototype: Text;
          new(): Text;
      }
      
      interface TextEvent extends UIEvent {
          data: string;
          inputMethod: number;
          locale: string;
          initTextEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, dataArg: string, inputMethod: number, locale: string): void;
          DOM_INPUT_METHOD_DROP: number;
          DOM_INPUT_METHOD_HANDWRITING: number;
          DOM_INPUT_METHOD_IME: number;
          DOM_INPUT_METHOD_KEYBOARD: number;
          DOM_INPUT_METHOD_MULTIMODAL: number;
          DOM_INPUT_METHOD_OPTION: number;
          DOM_INPUT_METHOD_PASTE: number;
          DOM_INPUT_METHOD_SCRIPT: number;
          DOM_INPUT_METHOD_UNKNOWN: number;
          DOM_INPUT_METHOD_VOICE: number;
      }
      
      declare var TextEvent: {
          prototype: TextEvent;
          new(): TextEvent;
          DOM_INPUT_METHOD_DROP: number;
          DOM_INPUT_METHOD_HANDWRITING: number;
          DOM_INPUT_METHOD_IME: number;
          DOM_INPUT_METHOD_KEYBOARD: number;
          DOM_INPUT_METHOD_MULTIMODAL: number;
          DOM_INPUT_METHOD_OPTION: number;
          DOM_INPUT_METHOD_PASTE: number;
          DOM_INPUT_METHOD_SCRIPT: number;
          DOM_INPUT_METHOD_UNKNOWN: number;
          DOM_INPUT_METHOD_VOICE: number;
      }
      
      interface TextMetrics {
          width: number;
      }
      
      declare var TextMetrics: {
          prototype: TextMetrics;
          new(): TextMetrics;
      }
      
      interface TextRange {
          boundingHeight: number;
          boundingLeft: number;
          boundingTop: number;
          boundingWidth: number;
          htmlText: string;
          offsetLeft: number;
          offsetTop: number;
          text: string;
          collapse(start?: boolean): void;
          compareEndPoints(how: string, sourceRange: TextRange): number;
          duplicate(): TextRange;
          execCommand(cmdID: string, showUI?: boolean, value?: any): boolean;
          execCommandShowHelp(cmdID: string): boolean;
          expand(Unit: string): boolean;
          findText(string: string, count?: number, flags?: number): boolean;
          getBookmark(): string;
          getBoundingClientRect(): ClientRect;
          getClientRects(): ClientRectList;
          inRange(range: TextRange): boolean;
          isEqual(range: TextRange): boolean;
          move(unit: string, count?: number): number;
          moveEnd(unit: string, count?: number): number;
          moveStart(unit: string, count?: number): number;
          moveToBookmark(bookmark: string): boolean;
          moveToElementText(element: Element): void;
          moveToPoint(x: number, y: number): void;
          parentElement(): Element;
          pasteHTML(html: string): void;
          queryCommandEnabled(cmdID: string): boolean;
          queryCommandIndeterm(cmdID: string): boolean;
          queryCommandState(cmdID: string): boolean;
          queryCommandSupported(cmdID: string): boolean;
          queryCommandText(cmdID: string): string;
          queryCommandValue(cmdID: string): any;
          scrollIntoView(fStart?: boolean): void;
          select(): void;
          setEndPoint(how: string, SourceRange: TextRange): void;
      }
      
      declare var TextRange: {
          prototype: TextRange;
          new(): TextRange;
      }
      
      interface TextRangeCollection {
          length: number;
          item(index: number): TextRange;
          [index: number]: TextRange;
      }
      
      declare var TextRangeCollection: {
          prototype: TextRangeCollection;
          new(): TextRangeCollection;
      }
      
      interface TextTrack extends EventTarget {
          activeCues: TextTrackCueList;
          cues: TextTrackCueList;
          inBandMetadataTrackDispatchType: string;
          kind: string;
          label: string;
          language: string;
          mode: any;
          oncuechange: (ev: Event) => any;
          onerror: (ev: Event) => any;
          onload: (ev: Event) => any;
          readyState: number;
          addCue(cue: TextTrackCue): void;
          removeCue(cue: TextTrackCue): void;
          DISABLED: number;
          ERROR: number;
          HIDDEN: number;
          LOADED: number;
          LOADING: number;
          NONE: number;
          SHOWING: number;
          addEventListener(type: "cuechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "error", listener: (ev: ErrorEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "load", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var TextTrack: {
          prototype: TextTrack;
          new(): TextTrack;
          DISABLED: number;
          ERROR: number;
          HIDDEN: number;
          LOADED: number;
          LOADING: number;
          NONE: number;
          SHOWING: number;
      }
      
      interface TextTrackCue extends EventTarget {
          endTime: number;
          id: string;
          onenter: (ev: Event) => any;
          onexit: (ev: Event) => any;
          pauseOnExit: boolean;
          startTime: number;
          text: string;
          track: TextTrack;
          getCueAsHTML(): DocumentFragment;
          addEventListener(type: "enter", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "exit", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var TextTrackCue: {
          prototype: TextTrackCue;
          new(startTime: number, endTime: number, text: string): TextTrackCue;
      }
      
      interface TextTrackCueList {
          length: number;
          getCueById(id: string): TextTrackCue;
          item(index: number): TextTrackCue;
          [index: number]: TextTrackCue;
      }
      
      declare var TextTrackCueList: {
          prototype: TextTrackCueList;
          new(): TextTrackCueList;
      }
      
      interface TextTrackList extends EventTarget {
          length: number;
          onaddtrack: (ev: TrackEvent) => any;
          item(index: number): TextTrack;
          addEventListener(type: "addtrack", listener: (ev: TrackEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
          [index: number]: TextTrack;
      }
      
      declare var TextTrackList: {
          prototype: TextTrackList;
          new(): TextTrackList;
      }
      
      interface TimeRanges {
          length: number;
          end(index: number): number;
          start(index: number): number;
      }
      
      declare var TimeRanges: {
          prototype: TimeRanges;
          new(): TimeRanges;
      }
      
      interface Touch {
          clientX: number;
          clientY: number;
          identifier: number;
          pageX: number;
          pageY: number;
          screenX: number;
          screenY: number;
          target: EventTarget;
      }
      
      declare var Touch: {
          prototype: Touch;
          new(): Touch;
      }
      
      interface TouchEvent extends UIEvent {
          altKey: boolean;
          changedTouches: TouchList;
          ctrlKey: boolean;
          metaKey: boolean;
          shiftKey: boolean;
          targetTouches: TouchList;
          touches: TouchList;
      }
      
      declare var TouchEvent: {
          prototype: TouchEvent;
          new(): TouchEvent;
      }
      
      interface TouchList {
          length: number;
          item(index: number): Touch;
          [index: number]: Touch;
      }
      
      declare var TouchList: {
          prototype: TouchList;
          new(): TouchList;
      }
      
      interface TrackEvent extends Event {
          track: any;
      }
      
      declare var TrackEvent: {
          prototype: TrackEvent;
          new(): TrackEvent;
      }
      
      interface TransitionEvent extends Event {
          elapsedTime: number;
          propertyName: string;
          initTransitionEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, propertyNameArg: string, elapsedTimeArg: number): void;
      }
      
      declare var TransitionEvent: {
          prototype: TransitionEvent;
          new(): TransitionEvent;
      }
      
      interface TreeWalker {
          currentNode: Node;
          expandEntityReferences: boolean;
          filter: NodeFilter;
          root: Node;
          whatToShow: number;
          firstChild(): Node;
          lastChild(): Node;
          nextNode(): Node;
          nextSibling(): Node;
          parentNode(): Node;
          previousNode(): Node;
          previousSibling(): Node;
      }
      
      declare var TreeWalker: {
          prototype: TreeWalker;
          new(): TreeWalker;
      }
      
      interface UIEvent extends Event {
          detail: number;
          view: Window;
          initUIEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number): void;
      }
      
      declare var UIEvent: {
          prototype: UIEvent;
          new(type: string, eventInitDict?: UIEventInit): UIEvent;
      }
      
      interface URL {
          createObjectURL(object: any, options?: ObjectURLOptions): string;
          revokeObjectURL(url: string): void;
      }
      declare var URL: URL;
      
      interface UnviewableContentIdentifiedEvent extends NavigationEventWithReferrer {
          mediaType: string;
      }
      
      declare var UnviewableContentIdentifiedEvent: {
          prototype: UnviewableContentIdentifiedEvent;
          new(): UnviewableContentIdentifiedEvent;
      }
      
      interface ValidityState {
          badInput: boolean;
          customError: boolean;
          patternMismatch: boolean;
          rangeOverflow: boolean;
          rangeUnderflow: boolean;
          stepMismatch: boolean;
          tooLong: boolean;
          typeMismatch: boolean;
          valid: boolean;
          valueMissing: boolean;
      }
      
      declare var ValidityState: {
          prototype: ValidityState;
          new(): ValidityState;
      }
      
      interface VideoPlaybackQuality {
          corruptedVideoFrames: number;
          creationTime: number;
          droppedVideoFrames: number;
          totalFrameDelay: number;
          totalVideoFrames: number;
      }
      
      declare var VideoPlaybackQuality: {
          prototype: VideoPlaybackQuality;
          new(): VideoPlaybackQuality;
      }
      
      interface VideoTrack {
          id: string;
          kind: string;
          label: string;
          language: string;
          selected: boolean;
          sourceBuffer: SourceBuffer;
      }
      
      declare var VideoTrack: {
          prototype: VideoTrack;
          new(): VideoTrack;
      }
      
      interface VideoTrackList extends EventTarget {
          length: number;
          onaddtrack: (ev: TrackEvent) => any;
          onchange: (ev: Event) => any;
          onremovetrack: (ev: TrackEvent) => any;
          selectedIndex: number;
          getTrackById(id: string): VideoTrack;
          item(index: number): VideoTrack;
          addEventListener(type: "addtrack", listener: (ev: TrackEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "change", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "removetrack", listener: (ev: TrackEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
          [index: number]: VideoTrack;
      }
      
      declare var VideoTrackList: {
          prototype: VideoTrackList;
          new(): VideoTrackList;
      }
      
      interface WEBGL_compressed_texture_s3tc {
          COMPRESSED_RGBA_S3TC_DXT1_EXT: number;
          COMPRESSED_RGBA_S3TC_DXT3_EXT: number;
          COMPRESSED_RGBA_S3TC_DXT5_EXT: number;
          COMPRESSED_RGB_S3TC_DXT1_EXT: number;
      }
      
      declare var WEBGL_compressed_texture_s3tc: {
          prototype: WEBGL_compressed_texture_s3tc;
          new(): WEBGL_compressed_texture_s3tc;
          COMPRESSED_RGBA_S3TC_DXT1_EXT: number;
          COMPRESSED_RGBA_S3TC_DXT3_EXT: number;
          COMPRESSED_RGBA_S3TC_DXT5_EXT: number;
          COMPRESSED_RGB_S3TC_DXT1_EXT: number;
      }
      
      interface WEBGL_debug_renderer_info {
          UNMASKED_RENDERER_WEBGL: number;
          UNMASKED_VENDOR_WEBGL: number;
      }
      
      declare var WEBGL_debug_renderer_info: {
          prototype: WEBGL_debug_renderer_info;
          new(): WEBGL_debug_renderer_info;
          UNMASKED_RENDERER_WEBGL: number;
          UNMASKED_VENDOR_WEBGL: number;
      }
      
      interface WEBGL_depth_texture {
          UNSIGNED_INT_24_8_WEBGL: number;
      }
      
      declare var WEBGL_depth_texture: {
          prototype: WEBGL_depth_texture;
          new(): WEBGL_depth_texture;
          UNSIGNED_INT_24_8_WEBGL: number;
      }
      
      interface WaveShaperNode extends AudioNode {
          curve: any;
          oversample: string;
      }
      
      declare var WaveShaperNode: {
          prototype: WaveShaperNode;
          new(): WaveShaperNode;
      }
      
      interface WebGLActiveInfo {
          name: string;
          size: number;
          type: number;
      }
      
      declare var WebGLActiveInfo: {
          prototype: WebGLActiveInfo;
          new(): WebGLActiveInfo;
      }
      
      interface WebGLBuffer extends WebGLObject {
      }
      
      declare var WebGLBuffer: {
          prototype: WebGLBuffer;
          new(): WebGLBuffer;
      }
      
      interface WebGLContextEvent extends Event {
          statusMessage: string;
      }
      
      declare var WebGLContextEvent: {
          prototype: WebGLContextEvent;
          new(): WebGLContextEvent;
      }
      
      interface WebGLFramebuffer extends WebGLObject {
      }
      
      declare var WebGLFramebuffer: {
          prototype: WebGLFramebuffer;
          new(): WebGLFramebuffer;
      }
      
      interface WebGLObject {
      }
      
      declare var WebGLObject: {
          prototype: WebGLObject;
          new(): WebGLObject;
      }
      
      interface WebGLProgram extends WebGLObject {
      }
      
      declare var WebGLProgram: {
          prototype: WebGLProgram;
          new(): WebGLProgram;
      }
      
      interface WebGLRenderbuffer extends WebGLObject {
      }
      
      declare var WebGLRenderbuffer: {
          prototype: WebGLRenderbuffer;
          new(): WebGLRenderbuffer;
      }
      
      interface WebGLRenderingContext {
          canvas: HTMLCanvasElement;
          drawingBufferHeight: number;
          drawingBufferWidth: number;
          activeTexture(texture: number): void;
          attachShader(program: WebGLProgram, shader: WebGLShader): void;
          bindAttribLocation(program: WebGLProgram, index: number, name: string): void;
          bindBuffer(target: number, buffer: WebGLBuffer): void;
          bindFramebuffer(target: number, framebuffer: WebGLFramebuffer): void;
          bindRenderbuffer(target: number, renderbuffer: WebGLRenderbuffer): void;
          bindTexture(target: number, texture: WebGLTexture): void;
          blendColor(red: number, green: number, blue: number, alpha: number): void;
          blendEquation(mode: number): void;
          blendEquationSeparate(modeRGB: number, modeAlpha: number): void;
          blendFunc(sfactor: number, dfactor: number): void;
          blendFuncSeparate(srcRGB: number, dstRGB: number, srcAlpha: number, dstAlpha: number): void;
          bufferData(target: number, size: number, usage: number): void;
          bufferData(target: number, size: ArrayBufferView, usage: number): void;
          bufferData(target: number, size: any, usage: number): void;
          bufferSubData(target: number, offset: number, data: ArrayBufferView): void;
          bufferSubData(target: number, offset: number, data: any): void;
          checkFramebufferStatus(target: number): number;
          clear(mask: number): void;
          clearColor(red: number, green: number, blue: number, alpha: number): void;
          clearDepth(depth: number): void;
          clearStencil(s: number): void;
          colorMask(red: boolean, green: boolean, blue: boolean, alpha: boolean): void;
          compileShader(shader: WebGLShader): void;
          compressedTexImage2D(target: number, level: number, internalformat: number, width: number, height: number, border: number, data: ArrayBufferView): void;
          compressedTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, width: number, height: number, format: number, data: ArrayBufferView): void;
          copyTexImage2D(target: number, level: number, internalformat: number, x: number, y: number, width: number, height: number, border: number): void;
          copyTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, x: number, y: number, width: number, height: number): void;
          createBuffer(): WebGLBuffer;
          createFramebuffer(): WebGLFramebuffer;
          createProgram(): WebGLProgram;
          createRenderbuffer(): WebGLRenderbuffer;
          createShader(type: number): WebGLShader;
          createTexture(): WebGLTexture;
          cullFace(mode: number): void;
          deleteBuffer(buffer: WebGLBuffer): void;
          deleteFramebuffer(framebuffer: WebGLFramebuffer): void;
          deleteProgram(program: WebGLProgram): void;
          deleteRenderbuffer(renderbuffer: WebGLRenderbuffer): void;
          deleteShader(shader: WebGLShader): void;
          deleteTexture(texture: WebGLTexture): void;
          depthFunc(func: number): void;
          depthMask(flag: boolean): void;
          depthRange(zNear: number, zFar: number): void;
          detachShader(program: WebGLProgram, shader: WebGLShader): void;
          disable(cap: number): void;
          disableVertexAttribArray(index: number): void;
          drawArrays(mode: number, first: number, count: number): void;
          drawElements(mode: number, count: number, type: number, offset: number): void;
          enable(cap: number): void;
          enableVertexAttribArray(index: number): void;
          finish(): void;
          flush(): void;
          framebufferRenderbuffer(target: number, attachment: number, renderbuffertarget: number, renderbuffer: WebGLRenderbuffer): void;
          framebufferTexture2D(target: number, attachment: number, textarget: number, texture: WebGLTexture, level: number): void;
          frontFace(mode: number): void;
          generateMipmap(target: number): void;
          getActiveAttrib(program: WebGLProgram, index: number): WebGLActiveInfo;
          getActiveUniform(program: WebGLProgram, index: number): WebGLActiveInfo;
          getAttachedShaders(program: WebGLProgram): WebGLShader[];
          getAttribLocation(program: WebGLProgram, name: string): number;
          getBufferParameter(target: number, pname: number): any;
          getContextAttributes(): WebGLContextAttributes;
          getError(): number;
          getExtension(name: string): any;
          getFramebufferAttachmentParameter(target: number, attachment: number, pname: number): any;
          getParameter(pname: number): any;
          getProgramInfoLog(program: WebGLProgram): string;
          getProgramParameter(program: WebGLProgram, pname: number): any;
          getRenderbufferParameter(target: number, pname: number): any;
          getShaderInfoLog(shader: WebGLShader): string;
          getShaderParameter(shader: WebGLShader, pname: number): any;
          getShaderPrecisionFormat(shadertype: number, precisiontype: number): WebGLShaderPrecisionFormat;
          getShaderSource(shader: WebGLShader): string;
          getSupportedExtensions(): string[];
          getTexParameter(target: number, pname: number): any;
          getUniform(program: WebGLProgram, location: WebGLUniformLocation): any;
          getUniformLocation(program: WebGLProgram, name: string): WebGLUniformLocation;
          getVertexAttrib(index: number, pname: number): any;
          getVertexAttribOffset(index: number, pname: number): number;
          hint(target: number, mode: number): void;
          isBuffer(buffer: WebGLBuffer): boolean;
          isContextLost(): boolean;
          isEnabled(cap: number): boolean;
          isFramebuffer(framebuffer: WebGLFramebuffer): boolean;
          isProgram(program: WebGLProgram): boolean;
          isRenderbuffer(renderbuffer: WebGLRenderbuffer): boolean;
          isShader(shader: WebGLShader): boolean;
          isTexture(texture: WebGLTexture): boolean;
          lineWidth(width: number): void;
          linkProgram(program: WebGLProgram): void;
          pixelStorei(pname: number, param: number): void;
          polygonOffset(factor: number, units: number): void;
          readPixels(x: number, y: number, width: number, height: number, format: number, type: number, pixels: ArrayBufferView): void;
          renderbufferStorage(target: number, internalformat: number, width: number, height: number): void;
          sampleCoverage(value: number, invert: boolean): void;
          scissor(x: number, y: number, width: number, height: number): void;
          shaderSource(shader: WebGLShader, source: string): void;
          stencilFunc(func: number, ref: number, mask: number): void;
          stencilFuncSeparate(face: number, func: number, ref: number, mask: number): void;
          stencilMask(mask: number): void;
          stencilMaskSeparate(face: number, mask: number): void;
          stencilOp(fail: number, zfail: number, zpass: number): void;
          stencilOpSeparate(face: number, fail: number, zfail: number, zpass: number): void;
          texImage2D(target: number, level: number, internalformat: number, format: number, type: number, pixels: ImageData): void;
          texParameterf(target: number, pname: number, param: number): void;
          texParameteri(target: number, pname: number, param: number): void;
          texSubImage2D(target: number, level: number, xoffset: number, yoffset: number, format: number, type: number, pixels: ImageData): void;
          uniform1f(location: WebGLUniformLocation, x: number): void;
          uniform1fv(location: WebGLUniformLocation, v: any): void;
          uniform1i(location: WebGLUniformLocation, x: number): void;
          uniform1iv(location: WebGLUniformLocation, v: Int32Array): void;
          uniform2f(location: WebGLUniformLocation, x: number, y: number): void;
          uniform2fv(location: WebGLUniformLocation, v: any): void;
          uniform2i(location: WebGLUniformLocation, x: number, y: number): void;
          uniform2iv(location: WebGLUniformLocation, v: Int32Array): void;
          uniform3f(location: WebGLUniformLocation, x: number, y: number, z: number): void;
          uniform3fv(location: WebGLUniformLocation, v: any): void;
          uniform3i(location: WebGLUniformLocation, x: number, y: number, z: number): void;
          uniform3iv(location: WebGLUniformLocation, v: Int32Array): void;
          uniform4f(location: WebGLUniformLocation, x: number, y: number, z: number, w: number): void;
          uniform4fv(location: WebGLUniformLocation, v: any): void;
          uniform4i(location: WebGLUniformLocation, x: number, y: number, z: number, w: number): void;
          uniform4iv(location: WebGLUniformLocation, v: Int32Array): void;
          uniformMatrix2fv(location: WebGLUniformLocation, transpose: boolean, value: any): void;
          uniformMatrix3fv(location: WebGLUniformLocation, transpose: boolean, value: any): void;
          uniformMatrix4fv(location: WebGLUniformLocation, transpose: boolean, value: any): void;
          useProgram(program: WebGLProgram): void;
          validateProgram(program: WebGLProgram): void;
          vertexAttrib1f(indx: number, x: number): void;
          vertexAttrib1fv(indx: number, values: any): void;
          vertexAttrib2f(indx: number, x: number, y: number): void;
          vertexAttrib2fv(indx: number, values: any): void;
          vertexAttrib3f(indx: number, x: number, y: number, z: number): void;
          vertexAttrib3fv(indx: number, values: any): void;
          vertexAttrib4f(indx: number, x: number, y: number, z: number, w: number): void;
          vertexAttrib4fv(indx: number, values: any): void;
          vertexAttribPointer(indx: number, size: number, type: number, normalized: boolean, stride: number, offset: number): void;
          viewport(x: number, y: number, width: number, height: number): void;
          ACTIVE_ATTRIBUTES: number;
          ACTIVE_TEXTURE: number;
          ACTIVE_UNIFORMS: number;
          ALIASED_LINE_WIDTH_RANGE: number;
          ALIASED_POINT_SIZE_RANGE: number;
          ALPHA: number;
          ALPHA_BITS: number;
          ALWAYS: number;
          ARRAY_BUFFER: number;
          ARRAY_BUFFER_BINDING: number;
          ATTACHED_SHADERS: number;
          BACK: number;
          BLEND: number;
          BLEND_COLOR: number;
          BLEND_DST_ALPHA: number;
          BLEND_DST_RGB: number;
          BLEND_EQUATION: number;
          BLEND_EQUATION_ALPHA: number;
          BLEND_EQUATION_RGB: number;
          BLEND_SRC_ALPHA: number;
          BLEND_SRC_RGB: number;
          BLUE_BITS: number;
          BOOL: number;
          BOOL_VEC2: number;
          BOOL_VEC3: number;
          BOOL_VEC4: number;
          BROWSER_DEFAULT_WEBGL: number;
          BUFFER_SIZE: number;
          BUFFER_USAGE: number;
          BYTE: number;
          CCW: number;
          CLAMP_TO_EDGE: number;
          COLOR_ATTACHMENT0: number;
          COLOR_BUFFER_BIT: number;
          COLOR_CLEAR_VALUE: number;
          COLOR_WRITEMASK: number;
          COMPILE_STATUS: number;
          COMPRESSED_TEXTURE_FORMATS: number;
          CONSTANT_ALPHA: number;
          CONSTANT_COLOR: number;
          CONTEXT_LOST_WEBGL: number;
          CULL_FACE: number;
          CULL_FACE_MODE: number;
          CURRENT_PROGRAM: number;
          CURRENT_VERTEX_ATTRIB: number;
          CW: number;
          DECR: number;
          DECR_WRAP: number;
          DELETE_STATUS: number;
          DEPTH_ATTACHMENT: number;
          DEPTH_BITS: number;
          DEPTH_BUFFER_BIT: number;
          DEPTH_CLEAR_VALUE: number;
          DEPTH_COMPONENT: number;
          DEPTH_COMPONENT16: number;
          DEPTH_FUNC: number;
          DEPTH_RANGE: number;
          DEPTH_STENCIL: number;
          DEPTH_STENCIL_ATTACHMENT: number;
          DEPTH_TEST: number;
          DEPTH_WRITEMASK: number;
          DITHER: number;
          DONT_CARE: number;
          DST_ALPHA: number;
          DST_COLOR: number;
          DYNAMIC_DRAW: number;
          ELEMENT_ARRAY_BUFFER: number;
          ELEMENT_ARRAY_BUFFER_BINDING: number;
          EQUAL: number;
          FASTEST: number;
          FLOAT: number;
          FLOAT_MAT2: number;
          FLOAT_MAT3: number;
          FLOAT_MAT4: number;
          FLOAT_VEC2: number;
          FLOAT_VEC3: number;
          FLOAT_VEC4: number;
          FRAGMENT_SHADER: number;
          FRAMEBUFFER: number;
          FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: number;
          FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: number;
          FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: number;
          FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: number;
          FRAMEBUFFER_BINDING: number;
          FRAMEBUFFER_COMPLETE: number;
          FRAMEBUFFER_INCOMPLETE_ATTACHMENT: number;
          FRAMEBUFFER_INCOMPLETE_DIMENSIONS: number;
          FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: number;
          FRAMEBUFFER_UNSUPPORTED: number;
          FRONT: number;
          FRONT_AND_BACK: number;
          FRONT_FACE: number;
          FUNC_ADD: number;
          FUNC_REVERSE_SUBTRACT: number;
          FUNC_SUBTRACT: number;
          GENERATE_MIPMAP_HINT: number;
          GEQUAL: number;
          GREATER: number;
          GREEN_BITS: number;
          HIGH_FLOAT: number;
          HIGH_INT: number;
          IMPLEMENTATION_COLOR_READ_FORMAT: number;
          IMPLEMENTATION_COLOR_READ_TYPE: number;
          INCR: number;
          INCR_WRAP: number;
          INT: number;
          INT_VEC2: number;
          INT_VEC3: number;
          INT_VEC4: number;
          INVALID_ENUM: number;
          INVALID_FRAMEBUFFER_OPERATION: number;
          INVALID_OPERATION: number;
          INVALID_VALUE: number;
          INVERT: number;
          KEEP: number;
          LEQUAL: number;
          LESS: number;
          LINEAR: number;
          LINEAR_MIPMAP_LINEAR: number;
          LINEAR_MIPMAP_NEAREST: number;
          LINES: number;
          LINE_LOOP: number;
          LINE_STRIP: number;
          LINE_WIDTH: number;
          LINK_STATUS: number;
          LOW_FLOAT: number;
          LOW_INT: number;
          LUMINANCE: number;
          LUMINANCE_ALPHA: number;
          MAX_COMBINED_TEXTURE_IMAGE_UNITS: number;
          MAX_CUBE_MAP_TEXTURE_SIZE: number;
          MAX_FRAGMENT_UNIFORM_VECTORS: number;
          MAX_RENDERBUFFER_SIZE: number;
          MAX_TEXTURE_IMAGE_UNITS: number;
          MAX_TEXTURE_SIZE: number;
          MAX_VARYING_VECTORS: number;
          MAX_VERTEX_ATTRIBS: number;
          MAX_VERTEX_TEXTURE_IMAGE_UNITS: number;
          MAX_VERTEX_UNIFORM_VECTORS: number;
          MAX_VIEWPORT_DIMS: number;
          MEDIUM_FLOAT: number;
          MEDIUM_INT: number;
          MIRRORED_REPEAT: number;
          NEAREST: number;
          NEAREST_MIPMAP_LINEAR: number;
          NEAREST_MIPMAP_NEAREST: number;
          NEVER: number;
          NICEST: number;
          NONE: number;
          NOTEQUAL: number;
          NO_ERROR: number;
          ONE: number;
          ONE_MINUS_CONSTANT_ALPHA: number;
          ONE_MINUS_CONSTANT_COLOR: number;
          ONE_MINUS_DST_ALPHA: number;
          ONE_MINUS_DST_COLOR: number;
          ONE_MINUS_SRC_ALPHA: number;
          ONE_MINUS_SRC_COLOR: number;
          OUT_OF_MEMORY: number;
          PACK_ALIGNMENT: number;
          POINTS: number;
          POLYGON_OFFSET_FACTOR: number;
          POLYGON_OFFSET_FILL: number;
          POLYGON_OFFSET_UNITS: number;
          RED_BITS: number;
          RENDERBUFFER: number;
          RENDERBUFFER_ALPHA_SIZE: number;
          RENDERBUFFER_BINDING: number;
          RENDERBUFFER_BLUE_SIZE: number;
          RENDERBUFFER_DEPTH_SIZE: number;
          RENDERBUFFER_GREEN_SIZE: number;
          RENDERBUFFER_HEIGHT: number;
          RENDERBUFFER_INTERNAL_FORMAT: number;
          RENDERBUFFER_RED_SIZE: number;
          RENDERBUFFER_STENCIL_SIZE: number;
          RENDERBUFFER_WIDTH: number;
          RENDERER: number;
          REPEAT: number;
          REPLACE: number;
          RGB: number;
          RGB565: number;
          RGB5_A1: number;
          RGBA: number;
          RGBA4: number;
          SAMPLER_2D: number;
          SAMPLER_CUBE: number;
          SAMPLES: number;
          SAMPLE_ALPHA_TO_COVERAGE: number;
          SAMPLE_BUFFERS: number;
          SAMPLE_COVERAGE: number;
          SAMPLE_COVERAGE_INVERT: number;
          SAMPLE_COVERAGE_VALUE: number;
          SCISSOR_BOX: number;
          SCISSOR_TEST: number;
          SHADER_TYPE: number;
          SHADING_LANGUAGE_VERSION: number;
          SHORT: number;
          SRC_ALPHA: number;
          SRC_ALPHA_SATURATE: number;
          SRC_COLOR: number;
          STATIC_DRAW: number;
          STENCIL_ATTACHMENT: number;
          STENCIL_BACK_FAIL: number;
          STENCIL_BACK_FUNC: number;
          STENCIL_BACK_PASS_DEPTH_FAIL: number;
          STENCIL_BACK_PASS_DEPTH_PASS: number;
          STENCIL_BACK_REF: number;
          STENCIL_BACK_VALUE_MASK: number;
          STENCIL_BACK_WRITEMASK: number;
          STENCIL_BITS: number;
          STENCIL_BUFFER_BIT: number;
          STENCIL_CLEAR_VALUE: number;
          STENCIL_FAIL: number;
          STENCIL_FUNC: number;
          STENCIL_INDEX: number;
          STENCIL_INDEX8: number;
          STENCIL_PASS_DEPTH_FAIL: number;
          STENCIL_PASS_DEPTH_PASS: number;
          STENCIL_REF: number;
          STENCIL_TEST: number;
          STENCIL_VALUE_MASK: number;
          STENCIL_WRITEMASK: number;
          STREAM_DRAW: number;
          SUBPIXEL_BITS: number;
          TEXTURE: number;
          TEXTURE0: number;
          TEXTURE1: number;
          TEXTURE10: number;
          TEXTURE11: number;
          TEXTURE12: number;
          TEXTURE13: number;
          TEXTURE14: number;
          TEXTURE15: number;
          TEXTURE16: number;
          TEXTURE17: number;
          TEXTURE18: number;
          TEXTURE19: number;
          TEXTURE2: number;
          TEXTURE20: number;
          TEXTURE21: number;
          TEXTURE22: number;
          TEXTURE23: number;
          TEXTURE24: number;
          TEXTURE25: number;
          TEXTURE26: number;
          TEXTURE27: number;
          TEXTURE28: number;
          TEXTURE29: number;
          TEXTURE3: number;
          TEXTURE30: number;
          TEXTURE31: number;
          TEXTURE4: number;
          TEXTURE5: number;
          TEXTURE6: number;
          TEXTURE7: number;
          TEXTURE8: number;
          TEXTURE9: number;
          TEXTURE_2D: number;
          TEXTURE_BINDING_2D: number;
          TEXTURE_BINDING_CUBE_MAP: number;
          TEXTURE_CUBE_MAP: number;
          TEXTURE_CUBE_MAP_NEGATIVE_X: number;
          TEXTURE_CUBE_MAP_NEGATIVE_Y: number;
          TEXTURE_CUBE_MAP_NEGATIVE_Z: number;
          TEXTURE_CUBE_MAP_POSITIVE_X: number;
          TEXTURE_CUBE_MAP_POSITIVE_Y: number;
          TEXTURE_CUBE_MAP_POSITIVE_Z: number;
          TEXTURE_MAG_FILTER: number;
          TEXTURE_MIN_FILTER: number;
          TEXTURE_WRAP_S: number;
          TEXTURE_WRAP_T: number;
          TRIANGLES: number;
          TRIANGLE_FAN: number;
          TRIANGLE_STRIP: number;
          UNPACK_ALIGNMENT: number;
          UNPACK_COLORSPACE_CONVERSION_WEBGL: number;
          UNPACK_FLIP_Y_WEBGL: number;
          UNPACK_PREMULTIPLY_ALPHA_WEBGL: number;
          UNSIGNED_BYTE: number;
          UNSIGNED_INT: number;
          UNSIGNED_SHORT: number;
          UNSIGNED_SHORT_4_4_4_4: number;
          UNSIGNED_SHORT_5_5_5_1: number;
          UNSIGNED_SHORT_5_6_5: number;
          VALIDATE_STATUS: number;
          VENDOR: number;
          VERSION: number;
          VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: number;
          VERTEX_ATTRIB_ARRAY_ENABLED: number;
          VERTEX_ATTRIB_ARRAY_NORMALIZED: number;
          VERTEX_ATTRIB_ARRAY_POINTER: number;
          VERTEX_ATTRIB_ARRAY_SIZE: number;
          VERTEX_ATTRIB_ARRAY_STRIDE: number;
          VERTEX_ATTRIB_ARRAY_TYPE: number;
          VERTEX_SHADER: number;
          VIEWPORT: number;
          ZERO: number;
      }
      
      declare var WebGLRenderingContext: {
          prototype: WebGLRenderingContext;
          new(): WebGLRenderingContext;
          ACTIVE_ATTRIBUTES: number;
          ACTIVE_TEXTURE: number;
          ACTIVE_UNIFORMS: number;
          ALIASED_LINE_WIDTH_RANGE: number;
          ALIASED_POINT_SIZE_RANGE: number;
          ALPHA: number;
          ALPHA_BITS: number;
          ALWAYS: number;
          ARRAY_BUFFER: number;
          ARRAY_BUFFER_BINDING: number;
          ATTACHED_SHADERS: number;
          BACK: number;
          BLEND: number;
          BLEND_COLOR: number;
          BLEND_DST_ALPHA: number;
          BLEND_DST_RGB: number;
          BLEND_EQUATION: number;
          BLEND_EQUATION_ALPHA: number;
          BLEND_EQUATION_RGB: number;
          BLEND_SRC_ALPHA: number;
          BLEND_SRC_RGB: number;
          BLUE_BITS: number;
          BOOL: number;
          BOOL_VEC2: number;
          BOOL_VEC3: number;
          BOOL_VEC4: number;
          BROWSER_DEFAULT_WEBGL: number;
          BUFFER_SIZE: number;
          BUFFER_USAGE: number;
          BYTE: number;
          CCW: number;
          CLAMP_TO_EDGE: number;
          COLOR_ATTACHMENT0: number;
          COLOR_BUFFER_BIT: number;
          COLOR_CLEAR_VALUE: number;
          COLOR_WRITEMASK: number;
          COMPILE_STATUS: number;
          COMPRESSED_TEXTURE_FORMATS: number;
          CONSTANT_ALPHA: number;
          CONSTANT_COLOR: number;
          CONTEXT_LOST_WEBGL: number;
          CULL_FACE: number;
          CULL_FACE_MODE: number;
          CURRENT_PROGRAM: number;
          CURRENT_VERTEX_ATTRIB: number;
          CW: number;
          DECR: number;
          DECR_WRAP: number;
          DELETE_STATUS: number;
          DEPTH_ATTACHMENT: number;
          DEPTH_BITS: number;
          DEPTH_BUFFER_BIT: number;
          DEPTH_CLEAR_VALUE: number;
          DEPTH_COMPONENT: number;
          DEPTH_COMPONENT16: number;
          DEPTH_FUNC: number;
          DEPTH_RANGE: number;
          DEPTH_STENCIL: number;
          DEPTH_STENCIL_ATTACHMENT: number;
          DEPTH_TEST: number;
          DEPTH_WRITEMASK: number;
          DITHER: number;
          DONT_CARE: number;
          DST_ALPHA: number;
          DST_COLOR: number;
          DYNAMIC_DRAW: number;
          ELEMENT_ARRAY_BUFFER: number;
          ELEMENT_ARRAY_BUFFER_BINDING: number;
          EQUAL: number;
          FASTEST: number;
          FLOAT: number;
          FLOAT_MAT2: number;
          FLOAT_MAT3: number;
          FLOAT_MAT4: number;
          FLOAT_VEC2: number;
          FLOAT_VEC3: number;
          FLOAT_VEC4: number;
          FRAGMENT_SHADER: number;
          FRAMEBUFFER: number;
          FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: number;
          FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: number;
          FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: number;
          FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: number;
          FRAMEBUFFER_BINDING: number;
          FRAMEBUFFER_COMPLETE: number;
          FRAMEBUFFER_INCOMPLETE_ATTACHMENT: number;
          FRAMEBUFFER_INCOMPLETE_DIMENSIONS: number;
          FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: number;
          FRAMEBUFFER_UNSUPPORTED: number;
          FRONT: number;
          FRONT_AND_BACK: number;
          FRONT_FACE: number;
          FUNC_ADD: number;
          FUNC_REVERSE_SUBTRACT: number;
          FUNC_SUBTRACT: number;
          GENERATE_MIPMAP_HINT: number;
          GEQUAL: number;
          GREATER: number;
          GREEN_BITS: number;
          HIGH_FLOAT: number;
          HIGH_INT: number;
          IMPLEMENTATION_COLOR_READ_FORMAT: number;
          IMPLEMENTATION_COLOR_READ_TYPE: number;
          INCR: number;
          INCR_WRAP: number;
          INT: number;
          INT_VEC2: number;
          INT_VEC3: number;
          INT_VEC4: number;
          INVALID_ENUM: number;
          INVALID_FRAMEBUFFER_OPERATION: number;
          INVALID_OPERATION: number;
          INVALID_VALUE: number;
          INVERT: number;
          KEEP: number;
          LEQUAL: number;
          LESS: number;
          LINEAR: number;
          LINEAR_MIPMAP_LINEAR: number;
          LINEAR_MIPMAP_NEAREST: number;
          LINES: number;
          LINE_LOOP: number;
          LINE_STRIP: number;
          LINE_WIDTH: number;
          LINK_STATUS: number;
          LOW_FLOAT: number;
          LOW_INT: number;
          LUMINANCE: number;
          LUMINANCE_ALPHA: number;
          MAX_COMBINED_TEXTURE_IMAGE_UNITS: number;
          MAX_CUBE_MAP_TEXTURE_SIZE: number;
          MAX_FRAGMENT_UNIFORM_VECTORS: number;
          MAX_RENDERBUFFER_SIZE: number;
          MAX_TEXTURE_IMAGE_UNITS: number;
          MAX_TEXTURE_SIZE: number;
          MAX_VARYING_VECTORS: number;
          MAX_VERTEX_ATTRIBS: number;
          MAX_VERTEX_TEXTURE_IMAGE_UNITS: number;
          MAX_VERTEX_UNIFORM_VECTORS: number;
          MAX_VIEWPORT_DIMS: number;
          MEDIUM_FLOAT: number;
          MEDIUM_INT: number;
          MIRRORED_REPEAT: number;
          NEAREST: number;
          NEAREST_MIPMAP_LINEAR: number;
          NEAREST_MIPMAP_NEAREST: number;
          NEVER: number;
          NICEST: number;
          NONE: number;
          NOTEQUAL: number;
          NO_ERROR: number;
          ONE: number;
          ONE_MINUS_CONSTANT_ALPHA: number;
          ONE_MINUS_CONSTANT_COLOR: number;
          ONE_MINUS_DST_ALPHA: number;
          ONE_MINUS_DST_COLOR: number;
          ONE_MINUS_SRC_ALPHA: number;
          ONE_MINUS_SRC_COLOR: number;
          OUT_OF_MEMORY: number;
          PACK_ALIGNMENT: number;
          POINTS: number;
          POLYGON_OFFSET_FACTOR: number;
          POLYGON_OFFSET_FILL: number;
          POLYGON_OFFSET_UNITS: number;
          RED_BITS: number;
          RENDERBUFFER: number;
          RENDERBUFFER_ALPHA_SIZE: number;
          RENDERBUFFER_BINDING: number;
          RENDERBUFFER_BLUE_SIZE: number;
          RENDERBUFFER_DEPTH_SIZE: number;
          RENDERBUFFER_GREEN_SIZE: number;
          RENDERBUFFER_HEIGHT: number;
          RENDERBUFFER_INTERNAL_FORMAT: number;
          RENDERBUFFER_RED_SIZE: number;
          RENDERBUFFER_STENCIL_SIZE: number;
          RENDERBUFFER_WIDTH: number;
          RENDERER: number;
          REPEAT: number;
          REPLACE: number;
          RGB: number;
          RGB565: number;
          RGB5_A1: number;
          RGBA: number;
          RGBA4: number;
          SAMPLER_2D: number;
          SAMPLER_CUBE: number;
          SAMPLES: number;
          SAMPLE_ALPHA_TO_COVERAGE: number;
          SAMPLE_BUFFERS: number;
          SAMPLE_COVERAGE: number;
          SAMPLE_COVERAGE_INVERT: number;
          SAMPLE_COVERAGE_VALUE: number;
          SCISSOR_BOX: number;
          SCISSOR_TEST: number;
          SHADER_TYPE: number;
          SHADING_LANGUAGE_VERSION: number;
          SHORT: number;
          SRC_ALPHA: number;
          SRC_ALPHA_SATURATE: number;
          SRC_COLOR: number;
          STATIC_DRAW: number;
          STENCIL_ATTACHMENT: number;
          STENCIL_BACK_FAIL: number;
          STENCIL_BACK_FUNC: number;
          STENCIL_BACK_PASS_DEPTH_FAIL: number;
          STENCIL_BACK_PASS_DEPTH_PASS: number;
          STENCIL_BACK_REF: number;
          STENCIL_BACK_VALUE_MASK: number;
          STENCIL_BACK_WRITEMASK: number;
          STENCIL_BITS: number;
          STENCIL_BUFFER_BIT: number;
          STENCIL_CLEAR_VALUE: number;
          STENCIL_FAIL: number;
          STENCIL_FUNC: number;
          STENCIL_INDEX: number;
          STENCIL_INDEX8: number;
          STENCIL_PASS_DEPTH_FAIL: number;
          STENCIL_PASS_DEPTH_PASS: number;
          STENCIL_REF: number;
          STENCIL_TEST: number;
          STENCIL_VALUE_MASK: number;
          STENCIL_WRITEMASK: number;
          STREAM_DRAW: number;
          SUBPIXEL_BITS: number;
          TEXTURE: number;
          TEXTURE0: number;
          TEXTURE1: number;
          TEXTURE10: number;
          TEXTURE11: number;
          TEXTURE12: number;
          TEXTURE13: number;
          TEXTURE14: number;
          TEXTURE15: number;
          TEXTURE16: number;
          TEXTURE17: number;
          TEXTURE18: number;
          TEXTURE19: number;
          TEXTURE2: number;
          TEXTURE20: number;
          TEXTURE21: number;
          TEXTURE22: number;
          TEXTURE23: number;
          TEXTURE24: number;
          TEXTURE25: number;
          TEXTURE26: number;
          TEXTURE27: number;
          TEXTURE28: number;
          TEXTURE29: number;
          TEXTURE3: number;
          TEXTURE30: number;
          TEXTURE31: number;
          TEXTURE4: number;
          TEXTURE5: number;
          TEXTURE6: number;
          TEXTURE7: number;
          TEXTURE8: number;
          TEXTURE9: number;
          TEXTURE_2D: number;
          TEXTURE_BINDING_2D: number;
          TEXTURE_BINDING_CUBE_MAP: number;
          TEXTURE_CUBE_MAP: number;
          TEXTURE_CUBE_MAP_NEGATIVE_X: number;
          TEXTURE_CUBE_MAP_NEGATIVE_Y: number;
          TEXTURE_CUBE_MAP_NEGATIVE_Z: number;
          TEXTURE_CUBE_MAP_POSITIVE_X: number;
          TEXTURE_CUBE_MAP_POSITIVE_Y: number;
          TEXTURE_CUBE_MAP_POSITIVE_Z: number;
          TEXTURE_MAG_FILTER: number;
          TEXTURE_MIN_FILTER: number;
          TEXTURE_WRAP_S: number;
          TEXTURE_WRAP_T: number;
          TRIANGLES: number;
          TRIANGLE_FAN: number;
          TRIANGLE_STRIP: number;
          UNPACK_ALIGNMENT: number;
          UNPACK_COLORSPACE_CONVERSION_WEBGL: number;
          UNPACK_FLIP_Y_WEBGL: number;
          UNPACK_PREMULTIPLY_ALPHA_WEBGL: number;
          UNSIGNED_BYTE: number;
          UNSIGNED_INT: number;
          UNSIGNED_SHORT: number;
          UNSIGNED_SHORT_4_4_4_4: number;
          UNSIGNED_SHORT_5_5_5_1: number;
          UNSIGNED_SHORT_5_6_5: number;
          VALIDATE_STATUS: number;
          VENDOR: number;
          VERSION: number;
          VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: number;
          VERTEX_ATTRIB_ARRAY_ENABLED: number;
          VERTEX_ATTRIB_ARRAY_NORMALIZED: number;
          VERTEX_ATTRIB_ARRAY_POINTER: number;
          VERTEX_ATTRIB_ARRAY_SIZE: number;
          VERTEX_ATTRIB_ARRAY_STRIDE: number;
          VERTEX_ATTRIB_ARRAY_TYPE: number;
          VERTEX_SHADER: number;
          VIEWPORT: number;
          ZERO: number;
      }
      
      interface WebGLShader extends WebGLObject {
      }
      
      declare var WebGLShader: {
          prototype: WebGLShader;
          new(): WebGLShader;
      }
      
      interface WebGLShaderPrecisionFormat {
          precision: number;
          rangeMax: number;
          rangeMin: number;
      }
      
      declare var WebGLShaderPrecisionFormat: {
          prototype: WebGLShaderPrecisionFormat;
          new(): WebGLShaderPrecisionFormat;
      }
      
      interface WebGLTexture extends WebGLObject {
      }
      
      declare var WebGLTexture: {
          prototype: WebGLTexture;
          new(): WebGLTexture;
      }
      
      interface WebGLUniformLocation {
      }
      
      declare var WebGLUniformLocation: {
          prototype: WebGLUniformLocation;
          new(): WebGLUniformLocation;
      }
      
      interface WebKitCSSMatrix {
          a: number;
          b: number;
          c: number;
          d: number;
          e: number;
          f: number;
          m11: number;
          m12: number;
          m13: number;
          m14: number;
          m21: number;
          m22: number;
          m23: number;
          m24: number;
          m31: number;
          m32: number;
          m33: number;
          m34: number;
          m41: number;
          m42: number;
          m43: number;
          m44: number;
          inverse(): WebKitCSSMatrix;
          multiply(secondMatrix: WebKitCSSMatrix): WebKitCSSMatrix;
          rotate(angleX: number, angleY?: number, angleZ?: number): WebKitCSSMatrix;
          rotateAxisAngle(x: number, y: number, z: number, angle: number): WebKitCSSMatrix;
          scale(scaleX: number, scaleY?: number, scaleZ?: number): WebKitCSSMatrix;
          setMatrixValue(value: string): void;
          skewX(angle: number): WebKitCSSMatrix;
          skewY(angle: number): WebKitCSSMatrix;
          toString(): string;
          translate(x: number, y: number, z?: number): WebKitCSSMatrix;
      }
      
      declare var WebKitCSSMatrix: {
          prototype: WebKitCSSMatrix;
          new(text?: string): WebKitCSSMatrix;
      }
      
      interface WebKitPoint {
          x: number;
          y: number;
      }
      
      declare var WebKitPoint: {
          prototype: WebKitPoint;
          new(x?: number, y?: number): WebKitPoint;
      }
      
      interface WebSocket extends EventTarget {
          binaryType: string;
          bufferedAmount: number;
          extensions: string;
          onclose: (ev: CloseEvent) => any;
          onerror: (ev: Event) => any;
          onmessage: (ev: MessageEvent) => any;
          onopen: (ev: Event) => any;
          protocol: string;
          readyState: number;
          url: string;
          close(code?: number, reason?: string): void;
          send(data: any): void;
          CLOSED: number;
          CLOSING: number;
          CONNECTING: number;
          OPEN: number;
          addEventListener(type: "close", listener: (ev: CloseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "error", listener: (ev: ErrorEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "message", listener: (ev: MessageEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "open", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var WebSocket: {
          prototype: WebSocket;
          new(url: string, protocols?: string): WebSocket;
          new(url: string, protocols?: any): WebSocket;
          CLOSED: number;
          CLOSING: number;
          CONNECTING: number;
          OPEN: number;
      }
      
      interface WheelEvent extends MouseEvent {
          deltaMode: number;
          deltaX: number;
          deltaY: number;
          deltaZ: number;
          getCurrentPoint(element: Element): void;
          initWheelEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, screenXArg: number, screenYArg: number, clientXArg: number, clientYArg: number, buttonArg: number, relatedTargetArg: EventTarget, modifiersListArg: string, deltaXArg: number, deltaYArg: number, deltaZArg: number, deltaMode: number): void;
          DOM_DELTA_LINE: number;
          DOM_DELTA_PAGE: number;
          DOM_DELTA_PIXEL: number;
      }
      
      declare var WheelEvent: {
          prototype: WheelEvent;
          new(typeArg: string, eventInitDict?: WheelEventInit): WheelEvent;
          DOM_DELTA_LINE: number;
          DOM_DELTA_PAGE: number;
          DOM_DELTA_PIXEL: number;
      }
      
      interface Window extends EventTarget, WindowTimers, WindowSessionStorage, WindowLocalStorage, WindowConsole, GlobalEventHandlers, IDBEnvironment, WindowBase64 {
          animationStartTime: number;
          applicationCache: ApplicationCache;
          clientInformation: Navigator;
          closed: boolean;
          crypto: Crypto;
          defaultStatus: string;
          devicePixelRatio: number;
          doNotTrack: string;
          document: Document;
          event: Event;
          external: External;
          frameElement: Element;
          frames: Window;
          history: History;
          innerHeight: number;
          innerWidth: number;
          length: number;
          location: Location;
          locationbar: BarProp;
          menubar: BarProp;
          msAnimationStartTime: number;
          msTemplatePrinter: MSTemplatePrinter;
          name: string;
          navigator: Navigator;
          offscreenBuffering: string | boolean;
          onabort: (ev: Event) => any;
          onafterprint: (ev: Event) => any;
          onbeforeprint: (ev: Event) => any;
          onbeforeunload: (ev: BeforeUnloadEvent) => any;
          onblur: (ev: FocusEvent) => any;
          oncanplay: (ev: Event) => any;
          oncanplaythrough: (ev: Event) => any;
          onchange: (ev: Event) => any;
          onclick: (ev: MouseEvent) => any;
          oncompassneedscalibration: (ev: Event) => any;
          oncontextmenu: (ev: PointerEvent) => any;
          ondblclick: (ev: MouseEvent) => any;
          ondevicemotion: (ev: DeviceMotionEvent) => any;
          ondeviceorientation: (ev: DeviceOrientationEvent) => any;
          ondrag: (ev: DragEvent) => any;
          ondragend: (ev: DragEvent) => any;
          ondragenter: (ev: DragEvent) => any;
          ondragleave: (ev: DragEvent) => any;
          ondragover: (ev: DragEvent) => any;
          ondragstart: (ev: DragEvent) => any;
          ondrop: (ev: DragEvent) => any;
          ondurationchange: (ev: Event) => any;
          onemptied: (ev: Event) => any;
          onended: (ev: Event) => any;
          onerror: ErrorEventHandler;
          onfocus: (ev: FocusEvent) => any;
          onhashchange: (ev: HashChangeEvent) => any;
          oninput: (ev: Event) => any;
          onkeydown: (ev: KeyboardEvent) => any;
          onkeypress: (ev: KeyboardEvent) => any;
          onkeyup: (ev: KeyboardEvent) => any;
          onload: (ev: Event) => any;
          onloadeddata: (ev: Event) => any;
          onloadedmetadata: (ev: Event) => any;
          onloadstart: (ev: Event) => any;
          onmessage: (ev: MessageEvent) => any;
          onmousedown: (ev: MouseEvent) => any;
          onmouseenter: (ev: MouseEvent) => any;
          onmouseleave: (ev: MouseEvent) => any;
          onmousemove: (ev: MouseEvent) => any;
          onmouseout: (ev: MouseEvent) => any;
          onmouseover: (ev: MouseEvent) => any;
          onmouseup: (ev: MouseEvent) => any;
          onmousewheel: (ev: MouseWheelEvent) => any;
          onmsgesturechange: (ev: MSGestureEvent) => any;
          onmsgesturedoubletap: (ev: MSGestureEvent) => any;
          onmsgestureend: (ev: MSGestureEvent) => any;
          onmsgesturehold: (ev: MSGestureEvent) => any;
          onmsgesturestart: (ev: MSGestureEvent) => any;
          onmsgesturetap: (ev: MSGestureEvent) => any;
          onmsinertiastart: (ev: MSGestureEvent) => any;
          onmspointercancel: (ev: MSPointerEvent) => any;
          onmspointerdown: (ev: MSPointerEvent) => any;
          onmspointerenter: (ev: MSPointerEvent) => any;
          onmspointerleave: (ev: MSPointerEvent) => any;
          onmspointermove: (ev: MSPointerEvent) => any;
          onmspointerout: (ev: MSPointerEvent) => any;
          onmspointerover: (ev: MSPointerEvent) => any;
          onmspointerup: (ev: MSPointerEvent) => any;
          onoffline: (ev: Event) => any;
          ononline: (ev: Event) => any;
          onorientationchange: (ev: Event) => any;
          onpagehide: (ev: PageTransitionEvent) => any;
          onpageshow: (ev: PageTransitionEvent) => any;
          onpause: (ev: Event) => any;
          onplay: (ev: Event) => any;
          onplaying: (ev: Event) => any;
          onpopstate: (ev: PopStateEvent) => any;
          onprogress: (ev: ProgressEvent) => any;
          onratechange: (ev: Event) => any;
          onreadystatechange: (ev: ProgressEvent) => any;
          onreset: (ev: Event) => any;
          onresize: (ev: UIEvent) => any;
          onscroll: (ev: UIEvent) => any;
          onseeked: (ev: Event) => any;
          onseeking: (ev: Event) => any;
          onselect: (ev: UIEvent) => any;
          onstalled: (ev: Event) => any;
          onstorage: (ev: StorageEvent) => any;
          onsubmit: (ev: Event) => any;
          onsuspend: (ev: Event) => any;
          ontimeupdate: (ev: Event) => any;
          ontouchcancel: any;
          ontouchend: any;
          ontouchmove: any;
          ontouchstart: any;
          onunload: (ev: Event) => any;
          onvolumechange: (ev: Event) => any;
          onwaiting: (ev: Event) => any;
          opener: Window;
          orientation: string;
          outerHeight: number;
          outerWidth: number;
          pageXOffset: number;
          pageYOffset: number;
          parent: Window;
          performance: Performance;
          personalbar: BarProp;
          screen: Screen;
          screenLeft: number;
          screenTop: number;
          screenX: number;
          screenY: number;
          scrollX: number;
          scrollY: number;
          scrollbars: BarProp;
          self: Window;
          status: string;
          statusbar: BarProp;
          styleMedia: StyleMedia;
          toolbar: BarProp;
          top: Window;
          window: Window;
          alert(message?: any): void;
          blur(): void;
          cancelAnimationFrame(handle: number): void;
          captureEvents(): void;
          close(): void;
          confirm(message?: string): boolean;
          focus(): void;
          getComputedStyle(elt: Element, pseudoElt?: string): CSSStyleDeclaration;
          getMatchedCSSRules(elt: Element, pseudoElt?: string): CSSRuleList;
          getSelection(): Selection;
          matchMedia(mediaQuery: string): MediaQueryList;
          moveBy(x?: number, y?: number): void;
          moveTo(x?: number, y?: number): void;
          msCancelRequestAnimationFrame(handle: number): void;
          msMatchMedia(mediaQuery: string): MediaQueryList;
          msRequestAnimationFrame(callback: FrameRequestCallback): number;
          msWriteProfilerMark(profilerMarkName: string): void;
          open(url?: string, target?: string, features?: string, replace?: boolean): any;
          postMessage(message: any, targetOrigin: string, ports?: any): void;
          print(): void;
          prompt(message?: string, _default?: string): string;
          releaseEvents(): void;
          requestAnimationFrame(callback: FrameRequestCallback): number;
          resizeBy(x?: number, y?: number): void;
          resizeTo(x?: number, y?: number): void;
          scroll(x?: number, y?: number): void;
          scrollBy(x?: number, y?: number): void;
          scrollTo(x?: number, y?: number): void;
          webkitConvertPointFromNodeToPage(node: Node, pt: WebKitPoint): WebKitPoint;
          webkitConvertPointFromPageToNode(node: Node, pt: WebKitPoint): WebKitPoint;
          addEventListener(type: "MSGestureChange", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureDoubleTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureEnd", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureHold", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSGestureTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSInertiaStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerCancel", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerDown", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerEnter", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerLeave", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerMove", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerOut", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerOver", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "MSPointerUp", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "abort", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "afterprint", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "beforeprint", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "beforeunload", listener: (ev: BeforeUnloadEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "blur", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "canplay", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "canplaythrough", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "change", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "click", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "compassneedscalibration", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "contextmenu", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dblclick", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "devicemotion", listener: (ev: DeviceMotionEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "deviceorientation", listener: (ev: DeviceOrientationEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "drag", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragend", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragenter", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragleave", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragover", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "dragstart", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "drop", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "durationchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "emptied", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "ended", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "focus", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "hashchange", listener: (ev: HashChangeEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "input", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "keydown", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "keypress", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "keyup", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "load", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadeddata", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadedmetadata", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadstart", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "message", listener: (ev: MessageEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousedown", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseenter", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseleave", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousemove", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseout", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseover", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mouseup", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "mousewheel", listener: (ev: MouseWheelEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "offline", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "online", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "orientationchange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "pagehide", listener: (ev: PageTransitionEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pageshow", listener: (ev: PageTransitionEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pause", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "play", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "playing", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "pointercancel", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerdown", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerenter", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerleave", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointermove", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerout", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerover", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerup", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "popstate", listener: (ev: PopStateEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "progress", listener: (ev: ProgressEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "ratechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "readystatechange", listener: (ev: ProgressEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "reset", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "resize", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "scroll", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "seeked", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "seeking", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "select", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "stalled", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "storage", listener: (ev: StorageEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "submit", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "suspend", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "timeupdate", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "unload", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "volumechange", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "waiting", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "wheel", listener: (ev: WheelEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
          [index: number]: Window;
      }
      
      declare var Window: {
          prototype: Window;
          new(): Window;
      }
      
      interface Worker extends EventTarget, AbstractWorker {
          onmessage: (ev: MessageEvent) => any;
          postMessage(message: any, ports?: any): void;
          terminate(): void;
          addEventListener(type: "error", listener: (ev: ErrorEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "message", listener: (ev: MessageEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var Worker: {
          prototype: Worker;
          new(stringUrl: string): Worker;
      }
      
      interface XMLDocument extends Document {
      }
      
      declare var XMLDocument: {
          prototype: XMLDocument;
          new(): XMLDocument;
      }
      
      interface XMLHttpRequest extends EventTarget, XMLHttpRequestEventTarget {
          msCaching: string;
          onreadystatechange: (ev: ProgressEvent) => any;
          readyState: number;
          response: any;
          responseBody: any;
          responseText: string;
          responseType: string;
          responseXML: any;
          status: number;
          statusText: string;
          timeout: number;
          upload: XMLHttpRequestUpload;
          withCredentials: boolean;
          abort(): void;
          getAllResponseHeaders(): string;
          getResponseHeader(header: string): string;
          msCachingEnabled(): boolean;
          open(method: string, url: string, async?: boolean, user?: string, password?: string): void;
          overrideMimeType(mime: string): void;
          send(data?: Document): void;
          send(data?: string): void;
          send(data?: any): void;
          setRequestHeader(header: string, value: string): void;
          DONE: number;
          HEADERS_RECEIVED: number;
          LOADING: number;
          OPENED: number;
          UNSENT: number;
          addEventListener(type: "abort", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "error", listener: (ev: ErrorEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "load", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadend", listener: (ev: ProgressEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "loadstart", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "progress", listener: (ev: ProgressEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "readystatechange", listener: (ev: ProgressEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "timeout", listener: (ev: ProgressEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var XMLHttpRequest: {
          prototype: XMLHttpRequest;
          new(): XMLHttpRequest;
          DONE: number;
          HEADERS_RECEIVED: number;
          LOADING: number;
          OPENED: number;
          UNSENT: number;
          create(): XMLHttpRequest;
      }
      
      interface XMLHttpRequestUpload extends EventTarget, XMLHttpRequestEventTarget {
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      declare var XMLHttpRequestUpload: {
          prototype: XMLHttpRequestUpload;
          new(): XMLHttpRequestUpload;
      }
      
      interface XMLSerializer {
          serializeToString(target: Node): string;
      }
      
      declare var XMLSerializer: {
          prototype: XMLSerializer;
          new(): XMLSerializer;
      }
      
      interface XPathEvaluator {
          createExpression(expression: string, resolver: XPathNSResolver): XPathExpression;
          createNSResolver(nodeResolver?: Node): XPathNSResolver;
          evaluate(expression: string, contextNode: Node, resolver: XPathNSResolver, type: number, result: XPathResult): XPathResult;
      }
      
      declare var XPathEvaluator: {
          prototype: XPathEvaluator;
          new(): XPathEvaluator;
      }
      
      interface XPathExpression {
          evaluate(contextNode: Node, type: number, result: XPathResult): XPathExpression;
      }
      
      declare var XPathExpression: {
          prototype: XPathExpression;
          new(): XPathExpression;
      }
      
      interface XPathNSResolver {
          lookupNamespaceURI(prefix: string): string;
      }
      
      declare var XPathNSResolver: {
          prototype: XPathNSResolver;
          new(): XPathNSResolver;
      }
      
      interface XPathResult {
          booleanValue: boolean;
          invalidIteratorState: boolean;
          numberValue: number;
          resultType: number;
          singleNodeValue: Node;
          snapshotLength: number;
          stringValue: string;
          iterateNext(): Node;
          snapshotItem(index: number): Node;
          ANY_TYPE: number;
          ANY_UNORDERED_NODE_TYPE: number;
          BOOLEAN_TYPE: number;
          FIRST_ORDERED_NODE_TYPE: number;
          NUMBER_TYPE: number;
          ORDERED_NODE_ITERATOR_TYPE: number;
          ORDERED_NODE_SNAPSHOT_TYPE: number;
          STRING_TYPE: number;
          UNORDERED_NODE_ITERATOR_TYPE: number;
          UNORDERED_NODE_SNAPSHOT_TYPE: number;
      }
      
      declare var XPathResult: {
          prototype: XPathResult;
          new(): XPathResult;
          ANY_TYPE: number;
          ANY_UNORDERED_NODE_TYPE: number;
          BOOLEAN_TYPE: number;
          FIRST_ORDERED_NODE_TYPE: number;
          NUMBER_TYPE: number;
          ORDERED_NODE_ITERATOR_TYPE: number;
          ORDERED_NODE_SNAPSHOT_TYPE: number;
          STRING_TYPE: number;
          UNORDERED_NODE_ITERATOR_TYPE: number;
          UNORDERED_NODE_SNAPSHOT_TYPE: number;
      }
      
      interface XSLTProcessor {
          clearParameters(): void;
          getParameter(namespaceURI: string, localName: string): any;
          importStylesheet(style: Node): void;
          removeParameter(namespaceURI: string, localName: string): void;
          reset(): void;
          setParameter(namespaceURI: string, localName: string, value: any): void;
          transformToDocument(source: Node): Document;
          transformToFragment(source: Node, document: Document): DocumentFragment;
      }
      
      declare var XSLTProcessor: {
          prototype: XSLTProcessor;
          new(): XSLTProcessor;
      }
      
      interface AbstractWorker {
          onerror: (ev: Event) => any;
          addEventListener(type: "error", listener: (ev: ErrorEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      interface ChildNode {
          remove(): void;
      }
      
      interface DOML2DeprecatedColorProperty {
          color: string;
      }
      
      interface DOML2DeprecatedSizeProperty {
          size: number;
      }
      
      interface DocumentEvent {
          createEvent(eventInterface:"AnimationEvent"): AnimationEvent;
          createEvent(eventInterface:"AriaRequestEvent"): AriaRequestEvent;
          createEvent(eventInterface:"AudioProcessingEvent"): AudioProcessingEvent;
          createEvent(eventInterface:"BeforeUnloadEvent"): BeforeUnloadEvent;
          createEvent(eventInterface:"CloseEvent"): CloseEvent;
          createEvent(eventInterface:"CommandEvent"): CommandEvent;
          createEvent(eventInterface:"CompositionEvent"): CompositionEvent;
          createEvent(eventInterface: "CustomEvent"): CustomEvent;
          createEvent(eventInterface:"DeviceMotionEvent"): DeviceMotionEvent;
          createEvent(eventInterface:"DeviceOrientationEvent"): DeviceOrientationEvent;
          createEvent(eventInterface:"DragEvent"): DragEvent;
          createEvent(eventInterface:"ErrorEvent"): ErrorEvent;
          createEvent(eventInterface:"Event"): Event;
          createEvent(eventInterface:"Events"): Event;
          createEvent(eventInterface:"FocusEvent"): FocusEvent;
          createEvent(eventInterface:"GamepadEvent"): GamepadEvent;
          createEvent(eventInterface:"HashChangeEvent"): HashChangeEvent;
          createEvent(eventInterface:"IDBVersionChangeEvent"): IDBVersionChangeEvent;
          createEvent(eventInterface:"KeyboardEvent"): KeyboardEvent;
          createEvent(eventInterface:"LongRunningScriptDetectedEvent"): LongRunningScriptDetectedEvent;
          createEvent(eventInterface:"MSGestureEvent"): MSGestureEvent;
          createEvent(eventInterface:"MSManipulationEvent"): MSManipulationEvent;
          createEvent(eventInterface:"MSMediaKeyMessageEvent"): MSMediaKeyMessageEvent;
          createEvent(eventInterface:"MSMediaKeyNeededEvent"): MSMediaKeyNeededEvent;
          createEvent(eventInterface:"MSPointerEvent"): MSPointerEvent;
          createEvent(eventInterface:"MSSiteModeEvent"): MSSiteModeEvent;
          createEvent(eventInterface:"MessageEvent"): MessageEvent;
          createEvent(eventInterface:"MouseEvent"): MouseEvent;
          createEvent(eventInterface:"MouseEvents"): MouseEvent;
          createEvent(eventInterface:"MouseWheelEvent"): MouseWheelEvent;
          createEvent(eventInterface:"MSGestureEvent"): MSGestureEvent;
          createEvent(eventInterface:"MSPointerEvent"): MSPointerEvent;
          createEvent(eventInterface:"MutationEvent"): MutationEvent;
          createEvent(eventInterface:"MutationEvents"): MutationEvent;
          createEvent(eventInterface:"NavigationCompletedEvent"): NavigationCompletedEvent;
          createEvent(eventInterface:"NavigationEvent"): NavigationEvent;
          createEvent(eventInterface:"NavigationEventWithReferrer"): NavigationEventWithReferrer;
          createEvent(eventInterface:"OfflineAudioCompletionEvent"): OfflineAudioCompletionEvent;
          createEvent(eventInterface:"PageTransitionEvent"): PageTransitionEvent;
          createEvent(eventInterface:"PermissionRequestedEvent"): PermissionRequestedEvent;
          createEvent(eventInterface:"PointerEvent"): PointerEvent;
          createEvent(eventInterface:"PopStateEvent"): PopStateEvent;
          createEvent(eventInterface:"ProgressEvent"): ProgressEvent;
          createEvent(eventInterface:"SVGZoomEvent"): SVGZoomEvent;
          createEvent(eventInterface:"SVGZoomEvents"): SVGZoomEvent;
          createEvent(eventInterface:"ScriptNotifyEvent"): ScriptNotifyEvent;
          createEvent(eventInterface:"StorageEvent"): StorageEvent;
          createEvent(eventInterface:"TextEvent"): TextEvent;
          createEvent(eventInterface:"TouchEvent"): TouchEvent;
          createEvent(eventInterface:"TrackEvent"): TrackEvent;
          createEvent(eventInterface:"TransitionEvent"): TransitionEvent;
          createEvent(eventInterface:"UIEvent"): UIEvent;
          createEvent(eventInterface:"UIEvents"): UIEvent;
          createEvent(eventInterface:"UnviewableContentIdentifiedEvent"): UnviewableContentIdentifiedEvent;
          createEvent(eventInterface:"WebGLContextEvent"): WebGLContextEvent;
          createEvent(eventInterface:"WheelEvent"): WheelEvent;
          createEvent(eventInterface: string): Event;
      }
      
      interface ElementTraversal {
          childElementCount: number;
          firstElementChild: Element;
          lastElementChild: Element;
          nextElementSibling: Element;
          previousElementSibling: Element;
      }
      
      interface GetSVGDocument {
          getSVGDocument(): Document;
      }
      
      interface GlobalEventHandlers {
          onpointercancel: (ev: PointerEvent) => any;
          onpointerdown: (ev: PointerEvent) => any;
          onpointerenter: (ev: PointerEvent) => any;
          onpointerleave: (ev: PointerEvent) => any;
          onpointermove: (ev: PointerEvent) => any;
          onpointerout: (ev: PointerEvent) => any;
          onpointerover: (ev: PointerEvent) => any;
          onpointerup: (ev: PointerEvent) => any;
          onwheel: (ev: WheelEvent) => any;
          addEventListener(type: "pointercancel", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerdown", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerenter", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerleave", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointermove", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerout", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerover", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "pointerup", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "wheel", listener: (ev: WheelEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      interface HTMLTableAlignment {
          /**
            * Sets or retrieves a value that you can use to implement your own ch functionality for the object.
            */
          ch: string;
          /**
            * Sets or retrieves a value that you can use to implement your own chOff functionality for the object.
            */
          chOff: string;
          /**
            * Sets or retrieves how text and other content are vertically aligned within the object that contains them.
            */
          vAlign: string;
      }
      
      interface IDBEnvironment {
          indexedDB: IDBFactory;
          msIndexedDB: IDBFactory;
      }
      
      interface LinkStyle {
          sheet: StyleSheet;
      }
      
      interface MSBaseReader {
          onabort: (ev: Event) => any;
          onerror: (ev: Event) => any;
          onload: (ev: Event) => any;
          onloadend: (ev: ProgressEvent) => any;
          onloadstart: (ev: Event) => any;
          onprogress: (ev: ProgressEvent) => any;
          readyState: number;
          result: any;
          abort(): void;
          DONE: number;
          EMPTY: number;
          LOADING: number;
          addEventListener(type: "abort", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "error", listener: (ev: ErrorEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "load", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadend", listener: (ev: ProgressEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "loadstart", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "progress", listener: (ev: ProgressEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      interface MSFileSaver {
          msSaveBlob(blob: any, defaultName?: string): boolean;
          msSaveOrOpenBlob(blob: any, defaultName?: string): boolean;
      }
      
      interface MSNavigatorDoNotTrack {
          confirmSiteSpecificTrackingException(args: ConfirmSiteSpecificExceptionsInformation): boolean;
          confirmWebWideTrackingException(args: ExceptionInformation): boolean;
          removeSiteSpecificTrackingException(args: ExceptionInformation): void;
          removeWebWideTrackingException(args: ExceptionInformation): void;
          storeSiteSpecificTrackingException(args: StoreSiteSpecificExceptionsInformation): void;
          storeWebWideTrackingException(args: StoreExceptionsInformation): void;
      }
      
      interface NavigatorContentUtils {
      }
      
      interface NavigatorGeolocation {
          geolocation: Geolocation;
      }
      
      interface NavigatorID {
          appName: string;
          appVersion: string;
          platform: string;
          product: string;
          productSub: string;
          userAgent: string;
          vendor: string;
          vendorSub: string;
      }
      
      interface NavigatorOnLine {
          onLine: boolean;
      }
      
      interface NavigatorStorageUtils {
      }
      
      interface NodeSelector {
          querySelector(selectors: string): Element;
          querySelectorAll(selectors: string): NodeList;
      }
      
      interface RandomSource {
          getRandomValues(array: ArrayBufferView): ArrayBufferView;
      }
      
      interface SVGAnimatedPathData {
          pathSegList: SVGPathSegList;
      }
      
      interface SVGAnimatedPoints {
          animatedPoints: SVGPointList;
          points: SVGPointList;
      }
      
      interface SVGExternalResourcesRequired {
          externalResourcesRequired: SVGAnimatedBoolean;
      }
      
      interface SVGFilterPrimitiveStandardAttributes extends SVGStylable {
          height: SVGAnimatedLength;
          result: SVGAnimatedString;
          width: SVGAnimatedLength;
          x: SVGAnimatedLength;
          y: SVGAnimatedLength;
      }
      
      interface SVGFitToViewBox {
          preserveAspectRatio: SVGAnimatedPreserveAspectRatio;
          viewBox: SVGAnimatedRect;
      }
      
      interface SVGLangSpace {
          xmllang: string;
          xmlspace: string;
      }
      
      interface SVGLocatable {
          farthestViewportElement: SVGElement;
          nearestViewportElement: SVGElement;
          getBBox(): SVGRect;
          getCTM(): SVGMatrix;
          getScreenCTM(): SVGMatrix;
          getTransformToElement(element: SVGElement): SVGMatrix;
      }
      
      interface SVGStylable {
          className: SVGAnimatedString;
          style: CSSStyleDeclaration;
      }
      
      interface SVGTests {
          requiredExtensions: SVGStringList;
          requiredFeatures: SVGStringList;
          systemLanguage: SVGStringList;
          hasExtension(extension: string): boolean;
      }
      
      interface SVGTransformable extends SVGLocatable {
          transform: SVGAnimatedTransformList;
      }
      
      interface SVGURIReference {
          href: SVGAnimatedString;
      }
      
      interface WindowBase64 {
          atob(encodedString: string): string;
          btoa(rawString: string): string;
      }
      
      interface WindowConsole {
          console: Console;
      }
      
      interface WindowLocalStorage {
          localStorage: Storage;
      }
      
      interface WindowSessionStorage {
          sessionStorage: Storage;
      }
      
      interface WindowTimers extends Object, WindowTimersExtension {
          clearInterval(handle: number): void;
          clearTimeout(handle: number): void;
          setInterval(handler: any, timeout?: any, ...args: any[]): number;
          setTimeout(handler: any, timeout?: any, ...args: any[]): number;
      }
      
      interface WindowTimersExtension {
          clearImmediate(handle: number): void;
          msClearImmediate(handle: number): void;
          msSetImmediate(expression: any, ...args: any[]): number;
          setImmediate(expression: any, ...args: any[]): number;
      }
      
      interface XMLHttpRequestEventTarget {
          onabort: (ev: Event) => any;
          onerror: (ev: Event) => any;
          onload: (ev: Event) => any;
          onloadend: (ev: ProgressEvent) => any;
          onloadstart: (ev: Event) => any;
          onprogress: (ev: ProgressEvent) => any;
          ontimeout: (ev: ProgressEvent) => any;
          addEventListener(type: "abort", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "error", listener: (ev: ErrorEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "load", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "loadend", listener: (ev: ProgressEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "loadstart", listener: (ev: Event) => any, useCapture?: boolean): void;
          addEventListener(type: "progress", listener: (ev: ProgressEvent) => any, useCapture?: boolean): void;
          addEventListener(type: "timeout", listener: (ev: ProgressEvent) => any, useCapture?: boolean): void;
          addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      }
      
      
      interface NodeListOf<TNode extends Node> extends NodeList {
          length: number;
          item(index: number): TNode;
          [index: number]: TNode;
      }
      
      interface BlobPropertyBag {
          type?: string;
          endings?: string;
      }
      
      interface EventListenerObject {
          handleEvent(evt: Event): void;
      }
      
      declare type EventListenerOrEventListenerObject = EventListener | EventListenerObject;
      
      interface ErrorEventHandler {
          (event: Event, source?: string, fileno?: number, columnNumber?: number): void;
          (event: string, source?: string, fileno?: number, columnNumber?: number): void;
      }
      interface PositionCallback {
          (position: Position): void;
      }
      interface PositionErrorCallback {
          (error: PositionError): void;
      }
      interface MediaQueryListListener {
          (mql: MediaQueryList): void;
      }
      interface MSLaunchUriCallback {
          (): void;
      }
      interface FrameRequestCallback {
          (time: number): void;
      }
      interface MSUnsafeFunctionCallback {
          (): any;
      }
      interface MSExecAtPriorityFunctionCallback {
          (...args: any[]): any;
      }
      interface MutationCallback {
          (mutations: MutationRecord[], observer: MutationObserver): void;
      }
      interface DecodeSuccessCallback {
          (decodedData: AudioBuffer): void;
      }
      interface DecodeErrorCallback {
          (): void;
      }
      interface FunctionStringCallback {
          (data: string): void;
      }
      declare var Audio: {new(src?: string): HTMLAudioElement; };
      declare var Image: {new(width?: number, height?: number): HTMLImageElement; };
      declare var Option: {new(text?: string, value?: string, defaultSelected?: boolean, selected?: boolean): HTMLOptionElement; };
      declare var animationStartTime: number;
      declare var applicationCache: ApplicationCache;
      declare var clientInformation: Navigator;
      declare var closed: boolean;
      declare var crypto: Crypto;
      declare var defaultStatus: string;
      declare var devicePixelRatio: number;
      declare var doNotTrack: string;
      declare var document: Document;
      declare var event: Event;
      declare var external: External;
      declare var frameElement: Element;
      declare var frames: Window;
      declare var history: History;
      declare var innerHeight: number;
      declare var innerWidth: number;
      declare var length: number;
      declare var location: Location;
      declare var locationbar: BarProp;
      declare var menubar: BarProp;
      declare var msAnimationStartTime: number;
      declare var msTemplatePrinter: MSTemplatePrinter;
      declare var name: string;
      declare var navigator: Navigator;
      declare var offscreenBuffering: string | boolean;
      declare var onabort: (ev: Event) => any;
      declare var onafterprint: (ev: Event) => any;
      declare var onbeforeprint: (ev: Event) => any;
      declare var onbeforeunload: (ev: BeforeUnloadEvent) => any;
      declare var onblur: (ev: FocusEvent) => any;
      declare var oncanplay: (ev: Event) => any;
      declare var oncanplaythrough: (ev: Event) => any;
      declare var onchange: (ev: Event) => any;
      declare var onclick: (ev: MouseEvent) => any;
      declare var oncompassneedscalibration: (ev: Event) => any;
      declare var oncontextmenu: (ev: PointerEvent) => any;
      declare var ondblclick: (ev: MouseEvent) => any;
      declare var ondevicemotion: (ev: DeviceMotionEvent) => any;
      declare var ondeviceorientation: (ev: DeviceOrientationEvent) => any;
      declare var ondrag: (ev: DragEvent) => any;
      declare var ondragend: (ev: DragEvent) => any;
      declare var ondragenter: (ev: DragEvent) => any;
      declare var ondragleave: (ev: DragEvent) => any;
      declare var ondragover: (ev: DragEvent) => any;
      declare var ondragstart: (ev: DragEvent) => any;
      declare var ondrop: (ev: DragEvent) => any;
      declare var ondurationchange: (ev: Event) => any;
      declare var onemptied: (ev: Event) => any;
      declare var onended: (ev: Event) => any;
      declare var onerror: ErrorEventHandler;
      declare var onfocus: (ev: FocusEvent) => any;
      declare var onhashchange: (ev: HashChangeEvent) => any;
      declare var oninput: (ev: Event) => any;
      declare var onkeydown: (ev: KeyboardEvent) => any;
      declare var onkeypress: (ev: KeyboardEvent) => any;
      declare var onkeyup: (ev: KeyboardEvent) => any;
      declare var onload: (ev: Event) => any;
      declare var onloadeddata: (ev: Event) => any;
      declare var onloadedmetadata: (ev: Event) => any;
      declare var onloadstart: (ev: Event) => any;
      declare var onmessage: (ev: MessageEvent) => any;
      declare var onmousedown: (ev: MouseEvent) => any;
      declare var onmouseenter: (ev: MouseEvent) => any;
      declare var onmouseleave: (ev: MouseEvent) => any;
      declare var onmousemove: (ev: MouseEvent) => any;
      declare var onmouseout: (ev: MouseEvent) => any;
      declare var onmouseover: (ev: MouseEvent) => any;
      declare var onmouseup: (ev: MouseEvent) => any;
      declare var onmousewheel: (ev: MouseWheelEvent) => any;
      declare var onmsgesturechange: (ev: MSGestureEvent) => any;
      declare var onmsgesturedoubletap: (ev: MSGestureEvent) => any;
      declare var onmsgestureend: (ev: MSGestureEvent) => any;
      declare var onmsgesturehold: (ev: MSGestureEvent) => any;
      declare var onmsgesturestart: (ev: MSGestureEvent) => any;
      declare var onmsgesturetap: (ev: MSGestureEvent) => any;
      declare var onmsinertiastart: (ev: MSGestureEvent) => any;
      declare var onmspointercancel: (ev: MSPointerEvent) => any;
      declare var onmspointerdown: (ev: MSPointerEvent) => any;
      declare var onmspointerenter: (ev: MSPointerEvent) => any;
      declare var onmspointerleave: (ev: MSPointerEvent) => any;
      declare var onmspointermove: (ev: MSPointerEvent) => any;
      declare var onmspointerout: (ev: MSPointerEvent) => any;
      declare var onmspointerover: (ev: MSPointerEvent) => any;
      declare var onmspointerup: (ev: MSPointerEvent) => any;
      declare var onoffline: (ev: Event) => any;
      declare var ononline: (ev: Event) => any;
      declare var onorientationchange: (ev: Event) => any;
      declare var onpagehide: (ev: PageTransitionEvent) => any;
      declare var onpageshow: (ev: PageTransitionEvent) => any;
      declare var onpause: (ev: Event) => any;
      declare var onplay: (ev: Event) => any;
      declare var onplaying: (ev: Event) => any;
      declare var onpopstate: (ev: PopStateEvent) => any;
      declare var onprogress: (ev: ProgressEvent) => any;
      declare var onratechange: (ev: Event) => any;
      declare var onreadystatechange: (ev: ProgressEvent) => any;
      declare var onreset: (ev: Event) => any;
      declare var onresize: (ev: UIEvent) => any;
      declare var onscroll: (ev: UIEvent) => any;
      declare var onseeked: (ev: Event) => any;
      declare var onseeking: (ev: Event) => any;
      declare var onselect: (ev: UIEvent) => any;
      declare var onstalled: (ev: Event) => any;
      declare var onstorage: (ev: StorageEvent) => any;
      declare var onsubmit: (ev: Event) => any;
      declare var onsuspend: (ev: Event) => any;
      declare var ontimeupdate: (ev: Event) => any;
      declare var ontouchcancel: any;
      declare var ontouchend: any;
      declare var ontouchmove: any;
      declare var ontouchstart: any;
      declare var onunload: (ev: Event) => any;
      declare var onvolumechange: (ev: Event) => any;
      declare var onwaiting: (ev: Event) => any;
      declare var opener: Window;
      declare var orientation: string;
      declare var outerHeight: number;
      declare var outerWidth: number;
      declare var pageXOffset: number;
      declare var pageYOffset: number;
      declare var parent: Window;
      declare var performance: Performance;
      declare var personalbar: BarProp;
      declare var screen: Screen;
      declare var screenLeft: number;
      declare var screenTop: number;
      declare var screenX: number;
      declare var screenY: number;
      declare var scrollX: number;
      declare var scrollY: number;
      declare var scrollbars: BarProp;
      declare var self: Window;
      declare var status: string;
      declare var statusbar: BarProp;
      declare var styleMedia: StyleMedia;
      declare var toolbar: BarProp;
      declare var top: Window;
      declare var window: Window;
      declare function alert(message?: any): void;
      declare function blur(): void;
      declare function cancelAnimationFrame(handle: number): void;
      declare function captureEvents(): void;
      declare function close(): void;
      declare function confirm(message?: string): boolean;
      declare function focus(): void;
      declare function getComputedStyle(elt: Element, pseudoElt?: string): CSSStyleDeclaration;
      declare function getMatchedCSSRules(elt: Element, pseudoElt?: string): CSSRuleList;
      declare function getSelection(): Selection;
      declare function matchMedia(mediaQuery: string): MediaQueryList;
      declare function moveBy(x?: number, y?: number): void;
      declare function moveTo(x?: number, y?: number): void;
      declare function msCancelRequestAnimationFrame(handle: number): void;
      declare function msMatchMedia(mediaQuery: string): MediaQueryList;
      declare function msRequestAnimationFrame(callback: FrameRequestCallback): number;
      declare function msWriteProfilerMark(profilerMarkName: string): void;
      declare function open(url?: string, target?: string, features?: string, replace?: boolean): any;
      declare function postMessage(message: any, targetOrigin: string, ports?: any): void;
      declare function print(): void;
      declare function prompt(message?: string, _default?: string): string;
      declare function releaseEvents(): void;
      declare function requestAnimationFrame(callback: FrameRequestCallback): number;
      declare function resizeBy(x?: number, y?: number): void;
      declare function resizeTo(x?: number, y?: number): void;
      declare function scroll(x?: number, y?: number): void;
      declare function scrollBy(x?: number, y?: number): void;
      declare function scrollTo(x?: number, y?: number): void;
      declare function webkitConvertPointFromNodeToPage(node: Node, pt: WebKitPoint): WebKitPoint;
      declare function webkitConvertPointFromPageToNode(node: Node, pt: WebKitPoint): WebKitPoint;
      declare function toString(): string;
      declare function addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      declare function dispatchEvent(evt: Event): boolean;
      declare function removeEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      declare function clearInterval(handle: number): void;
      declare function clearTimeout(handle: number): void;
      declare function setInterval(handler: any, timeout?: any, ...args: any[]): number;
      declare function setTimeout(handler: any, timeout?: any, ...args: any[]): number;
      declare function clearImmediate(handle: number): void;
      declare function msClearImmediate(handle: number): void;
      declare function msSetImmediate(expression: any, ...args: any[]): number;
      declare function setImmediate(expression: any, ...args: any[]): number;
      declare var sessionStorage: Storage;
      declare var localStorage: Storage;
      declare var console: Console;
      declare var onpointercancel: (ev: PointerEvent) => any;
      declare var onpointerdown: (ev: PointerEvent) => any;
      declare var onpointerenter: (ev: PointerEvent) => any;
      declare var onpointerleave: (ev: PointerEvent) => any;
      declare var onpointermove: (ev: PointerEvent) => any;
      declare var onpointerout: (ev: PointerEvent) => any;
      declare var onpointerover: (ev: PointerEvent) => any;
      declare var onpointerup: (ev: PointerEvent) => any;
      declare var onwheel: (ev: WheelEvent) => any;
      declare var indexedDB: IDBFactory;
      declare var msIndexedDB: IDBFactory;
      declare function atob(encodedString: string): string;
      declare function btoa(rawString: string): string;
      declare function addEventListener(type: "MSGestureChange", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "MSGestureDoubleTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "MSGestureEnd", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "MSGestureHold", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "MSGestureStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "MSGestureTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "MSInertiaStart", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "MSPointerCancel", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "MSPointerDown", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "MSPointerEnter", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "MSPointerLeave", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "MSPointerMove", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "MSPointerOut", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "MSPointerOver", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "MSPointerUp", listener: (ev: MSPointerEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "abort", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "afterprint", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "beforeprint", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "beforeunload", listener: (ev: BeforeUnloadEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "blur", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "canplay", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "canplaythrough", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "change", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "click", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "compassneedscalibration", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "contextmenu", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "dblclick", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "devicemotion", listener: (ev: DeviceMotionEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "deviceorientation", listener: (ev: DeviceOrientationEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "drag", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "dragend", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "dragenter", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "dragleave", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "dragover", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "dragstart", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "drop", listener: (ev: DragEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "durationchange", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "emptied", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "ended", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "focus", listener: (ev: FocusEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "hashchange", listener: (ev: HashChangeEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "input", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "keydown", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "keypress", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "keyup", listener: (ev: KeyboardEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "load", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "loadeddata", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "loadedmetadata", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "loadstart", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "message", listener: (ev: MessageEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "mousedown", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "mouseenter", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "mouseleave", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "mousemove", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "mouseout", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "mouseover", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "mouseup", listener: (ev: MouseEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "mousewheel", listener: (ev: MouseWheelEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "offline", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "online", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "orientationchange", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "pagehide", listener: (ev: PageTransitionEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "pageshow", listener: (ev: PageTransitionEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "pause", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "play", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "playing", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "pointercancel", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "pointerdown", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "pointerenter", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "pointerleave", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "pointermove", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "pointerout", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "pointerover", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "pointerup", listener: (ev: PointerEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "popstate", listener: (ev: PopStateEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "progress", listener: (ev: ProgressEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "ratechange", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "readystatechange", listener: (ev: ProgressEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "reset", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "resize", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "scroll", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "seeked", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "seeking", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "select", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "stalled", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "storage", listener: (ev: StorageEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "submit", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "suspend", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "timeupdate", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "unload", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "volumechange", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "waiting", listener: (ev: Event) => any, useCapture?: boolean): void;
      declare function addEventListener(type: "wheel", listener: (ev: WheelEvent) => any, useCapture?: boolean): void;
      declare function addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
      /////////////////////////////
      /// WorkerGlobalScope APIs 
      /////////////////////////////
      // These are only available in a Web Worker 
      declare function importScripts(...urls: string[]): void;
      
      
      /////////////////////////////
      /// Windows Script Host APIS
      /////////////////////////////
      
      
      interface ActiveXObject {
          new (s: string): any;
      }
      declare var ActiveXObject: ActiveXObject;
      
      interface ITextWriter {
          Write(s: string): void;
          WriteLine(s: string): void;
          Close(): void;
      }
      
      interface TextStreamBase {
          /**
           * The column number of the current character position in an input stream.
           */
          Column: number;
      
          /**
           * The current line number in an input stream.
           */
          Line: number;
      
          /**
           * Closes a text stream.
           * It is not necessary to close standard streams; they close automatically when the process ends. If 
           * you close a standard stream, be aware that any other pointers to that standard stream become invalid.
           */
          Close(): void;
      }
      
      interface TextStreamWriter extends TextStreamBase {
          /**
           * Sends a string to an output stream.
           */
          Write(s: string): void;
      
          /**
           * Sends a specified number of blank lines (newline characters) to an output stream.
           */
          WriteBlankLines(intLines: number): void;
      
          /**
           * Sends a string followed by a newline character to an output stream.
           */
          WriteLine(s: string): void;
      }
      
      interface TextStreamReader extends TextStreamBase {
          /**
           * Returns a specified number of characters from an input stream, starting at the current pointer position.
           * Does not return until the ENTER key is pressed.
           * Can only be used on a stream in reading mode; causes an error in writing or appending mode.
           */
          Read(characters: number): string;
      
          /**
           * Returns all characters from an input stream.
           * Can only be used on a stream in reading mode; causes an error in writing or appending mode.
           */
          ReadAll(): string;
      
          /**
           * Returns an entire line from an input stream.
           * Although this method extracts the newline character, it does not add it to the returned string.
           * Can only be used on a stream in reading mode; causes an error in writing or appending mode.
           */
          ReadLine(): string;
      
          /**
           * Skips a specified number of characters when reading from an input text stream.
           * Can only be used on a stream in reading mode; causes an error in writing or appending mode.
           * @param characters Positive number of characters to skip forward. (Backward skipping is not supported.)
           */
          Skip(characters: number): void;
      
          /**
           * Skips the next line when reading from an input text stream.
           * Can only be used on a stream in reading mode, not writing or appending mode.
           */
          SkipLine(): void;
      
          /**
           * Indicates whether the stream pointer position is at the end of a line.
           */
          AtEndOfLine: boolean;
      
          /**
           * Indicates whether the stream pointer position is at the end of a stream.
           */
          AtEndOfStream: boolean;
      }
      
      declare var WScript: {
          /**
          * Outputs text to either a message box (under WScript.exe) or the command console window followed by
          * a newline (under CScript.exe).
          */
          Echo(s: any): void;
      
          /**
           * Exposes the write-only error output stream for the current script.
           * Can be accessed only while using CScript.exe.
           */
          StdErr: TextStreamWriter;
      
          /**
           * Exposes the write-only output stream for the current script.
           * Can be accessed only while using CScript.exe.
           */
          StdOut: TextStreamWriter;
          Arguments: { length: number; Item(n: number): string; };
      
          /**
           *  The full path of the currently running script.
           */
          ScriptFullName: string;
      
          /**
           * Forces the script to stop immediately, with an optional exit code.
           */
          Quit(exitCode?: number): number;
      
          /**
           * The Windows Script Host build version number.
           */
          BuildVersion: number;
      
          /**
           * Fully qualified path of the host executable.
           */
          FullName: string;
      
          /**
           * Gets/sets the script mode - interactive(true) or batch(false).
           */
          Interactive: boolean;
      
          /**
           * The name of the host executable (WScript.exe or CScript.exe).
           */
          Name: string;
      
          /**
           * Path of the directory containing the host executable.
           */
          Path: string;
      
          /**
           * The filename of the currently running script.
           */
          ScriptName: string;
      
          /**
           * Exposes the read-only input stream for the current script.
           * Can be accessed only while using CScript.exe.
           */
          StdIn: TextStreamReader;
      
          /**
           * Windows Script Host version
           */
          Version: string;
      
          /**
           * Connects a COM object's event sources to functions named with a given prefix, in the form prefix_event.
           */
          ConnectObject(objEventSource: any, strPrefix: string): void;
      
          /**
           * Creates a COM object.
           * @param strProgiID
           * @param strPrefix Function names in the form prefix_event will be bound to this object's COM events.
           */
          CreateObject(strProgID: string, strPrefix?: string): any;
      
          /**
           * Disconnects a COM object from its event sources.
           */
          DisconnectObject(obj: any): void;
      
          /**
           * Retrieves an existing object with the specified ProgID from memory, or creates a new one from a file.
           * @param strPathname Fully qualified path to the file containing the object persisted to disk.
           *                       For objects in memory, pass a zero-length string.
           * @param strProgID
           * @param strPrefix Function names in the form prefix_event will be bound to this object's COM events.
           */
          GetObject(strPathname: string, strProgID?: string, strPrefix?: string): any;
      
          /**
           * Suspends script execution for a specified length of time, then continues execution.
           * @param intTime Interval (in milliseconds) to suspend script execution.
           */
          Sleep(intTime: number): void;
      };
      
      /**
       * Allows enumerating over a COM collection, which may not have indexed item access.
       */
      interface Enumerator<T> {
          /**
           * Returns true if the current item is the last one in the collection, or the collection is empty,
           * or the current item is undefined.
           */
          atEnd(): boolean;
      
          /**
           * Returns the current item in the collection
           */
          item(): T;
      
          /**
           * Resets the current item in the collection to the first item. If there are no items in the collection,
           * the current item is set to undefined.
           */
          moveFirst(): void;
      
          /**
           * Moves the current item to the next item in the collection. If the enumerator is at the end of
           * the collection or the collection is empty, the current item is set to undefined.
           */
          moveNext(): void;
      }
      
      interface EnumeratorConstructor {
          new <T>(collection: any): Enumerator<T>;
          new (collection: any): Enumerator<any>;
      }
      
      declare var Enumerator: EnumeratorConstructor;
      
      /**
       * Enables reading from a COM safe array, which might have an alternate lower bound, or multiple dimensions.
       */
      interface VBArray<T> {
          /**
           * Returns the number of dimensions (1-based).
           */
          dimensions(): number;
      
          /**
           * Takes an index for each dimension in the array, and returns the item at the corresponding location.
           */
          getItem(dimension1Index: number, ...dimensionNIndexes: number[]): T;
      
          /**
           * Returns the smallest available index for a given dimension.
           * @param dimension 1-based dimension (defaults to 1)
           */
          lbound(dimension?: number): number;
      
          /**
           * Returns the largest available index for a given dimension.
           * @param dimension 1-based dimension (defaults to 1)
           */
          ubound(dimension?: number): number;
      
          /**
           * Returns a Javascript array with all the elements in the VBArray. If there are multiple dimensions,
           * each successive dimension is appended to the end of the array.
           * Example: [[1,2,3],[4,5,6]] becomes [1,2,3,4,5,6]
           */
          toArray(): T[];
      }
      
      interface VBArrayConstructor {
          new <T>(safeArray: any): VBArray<T>;
          new (safeArray: any): VBArray<any>;
      }
      
      declare var VBArray: VBArrayConstructor;
      
    • tsc.js
      /*! *****************************************************************************
      Copyright (c) Microsoft Corporation. All rights reserved. 
      Licensed under the Apache License, Version 2.0 (the "License"); you may not use
      this file except in compliance with the License. You may obtain a copy of the
      License at http://www.apache.org/licenses/LICENSE-2.0  
       
      THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
      KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
      WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 
      MERCHANTABLITY OR NON-INFRINGEMENT. 
       
      See the Apache Version 2.0 License for specific language governing permissions
      and limitations under the License.
      ***************************************************************************** */
      
      var ts;
      (function (ts) {
          (function (ExitStatus) {
              ExitStatus[ExitStatus["Success"] = 0] = "Success";
              ExitStatus[ExitStatus["DiagnosticsPresent_OutputsSkipped"] = 1] = "DiagnosticsPresent_OutputsSkipped";
              ExitStatus[ExitStatus["DiagnosticsPresent_OutputsGenerated"] = 2] = "DiagnosticsPresent_OutputsGenerated";
          })(ts.ExitStatus || (ts.ExitStatus = {}));
          var ExitStatus = ts.ExitStatus;
          (function (DiagnosticCategory) {
              DiagnosticCategory[DiagnosticCategory["Warning"] = 0] = "Warning";
              DiagnosticCategory[DiagnosticCategory["Error"] = 1] = "Error";
              DiagnosticCategory[DiagnosticCategory["Message"] = 2] = "Message";
          })(ts.DiagnosticCategory || (ts.DiagnosticCategory = {}));
          var DiagnosticCategory = ts.DiagnosticCategory;
      })(ts || (ts = {}));
      /// <reference path="types.ts"/>
      var ts;
      (function (ts) {
          function forEach(array, callback) {
              if (array) {
                  for (var i = 0, len = array.length; i < len; i++) {
                      var result = callback(array[i], i);
                      if (result) {
                          return result;
                      }
                  }
              }
              return undefined;
          }
          ts.forEach = forEach;
          function contains(array, value) {
              if (array) {
                  for (var _i = 0; _i < array.length; _i++) {
                      var v = array[_i];
                      if (v === value) {
                          return true;
                      }
                  }
              }
              return false;
          }
          ts.contains = contains;
          function indexOf(array, value) {
              if (array) {
                  for (var i = 0, len = array.length; i < len; i++) {
                      if (array[i] === value) {
                          return i;
                      }
                  }
              }
              return -1;
          }
          ts.indexOf = indexOf;
          function countWhere(array, predicate) {
              var count = 0;
              if (array) {
                  for (var _i = 0; _i < array.length; _i++) {
                      var v = array[_i];
                      if (predicate(v)) {
                          count++;
                      }
                  }
              }
              return count;
          }
          ts.countWhere = countWhere;
          function filter(array, f) {
              var result;
              if (array) {
                  result = [];
                  for (var _i = 0; _i < array.length; _i++) {
                      var item = array[_i];
                      if (f(item)) {
                          result.push(item);
                      }
                  }
              }
              return result;
          }
          ts.filter = filter;
          function map(array, f) {
              var result;
              if (array) {
                  result = [];
                  for (var _i = 0; _i < array.length; _i++) {
                      var v = array[_i];
                      result.push(f(v));
                  }
              }
              return result;
          }
          ts.map = map;
          function concatenate(array1, array2) {
              if (!array2 || !array2.length)
                  return array1;
              if (!array1 || !array1.length)
                  return array2;
              return array1.concat(array2);
          }
          ts.concatenate = concatenate;
          function deduplicate(array) {
              var result;
              if (array) {
                  result = [];
                  for (var _i = 0; _i < array.length; _i++) {
                      var item = array[_i];
                      if (!contains(result, item)) {
                          result.push(item);
                      }
                  }
              }
              return result;
          }
          ts.deduplicate = deduplicate;
          function sum(array, prop) {
              var result = 0;
              for (var _i = 0; _i < array.length; _i++) {
                  var v = array[_i];
                  result += v[prop];
              }
              return result;
          }
          ts.sum = sum;
          function addRange(to, from) {
              if (to && from) {
                  for (var _i = 0; _i < from.length; _i++) {
                      var v = from[_i];
                      to.push(v);
                  }
              }
          }
          ts.addRange = addRange;
          function lastOrUndefined(array) {
              if (array.length === 0) {
                  return undefined;
              }
              return array[array.length - 1];
          }
          ts.lastOrUndefined = lastOrUndefined;
          function binarySearch(array, value) {
              var low = 0;
              var high = array.length - 1;
              while (low <= high) {
                  var middle = low + ((high - low) >> 1);
                  var midValue = array[middle];
                  if (midValue === value) {
                      return middle;
                  }
                  else if (midValue > value) {
                      high = middle - 1;
                  }
                  else {
                      low = middle + 1;
                  }
              }
              return ~low;
          }
          ts.binarySearch = binarySearch;
          function reduceLeft(array, f, initial) {
              if (array) {
                  var count = array.length;
                  if (count > 0) {
                      var pos = 0;
                      var result = arguments.length <= 2 ? array[pos++] : initial;
                      while (pos < count) {
                          result = f(result, array[pos++]);
                      }
                      return result;
                  }
              }
              return initial;
          }
          ts.reduceLeft = reduceLeft;
          function reduceRight(array, f, initial) {
              if (array) {
                  var pos = array.length - 1;
                  if (pos >= 0) {
                      var result = arguments.length <= 2 ? array[pos--] : initial;
                      while (pos >= 0) {
                          result = f(result, array[pos--]);
                      }
                      return result;
                  }
              }
              return initial;
          }
          ts.reduceRight = reduceRight;
          var hasOwnProperty = Object.prototype.hasOwnProperty;
          function hasProperty(map, key) {
              return hasOwnProperty.call(map, key);
          }
          ts.hasProperty = hasProperty;
          function getProperty(map, key) {
              return hasOwnProperty.call(map, key) ? map[key] : undefined;
          }
          ts.getProperty = getProperty;
          function isEmpty(map) {
              for (var id in map) {
                  if (hasProperty(map, id)) {
                      return false;
                  }
              }
              return true;
          }
          ts.isEmpty = isEmpty;
          function clone(object) {
              var result = {};
              for (var id in object) {
                  result[id] = object[id];
              }
              return result;
          }
          ts.clone = clone;
          function extend(first, second) {
              var result = {};
              for (var id in first) {
                  result[id] = first[id];
              }
              for (var id in second) {
                  if (!hasProperty(result, id)) {
                      result[id] = second[id];
                  }
              }
              return result;
          }
          ts.extend = extend;
          function forEachValue(map, callback) {
              var result;
              for (var id in map) {
                  if (result = callback(map[id]))
                      break;
              }
              return result;
          }
          ts.forEachValue = forEachValue;
          function forEachKey(map, callback) {
              var result;
              for (var id in map) {
                  if (result = callback(id))
                      break;
              }
              return result;
          }
          ts.forEachKey = forEachKey;
          function lookUp(map, key) {
              return hasProperty(map, key) ? map[key] : undefined;
          }
          ts.lookUp = lookUp;
          function copyMap(source, target) {
              for (var p in source) {
                  target[p] = source[p];
              }
          }
          ts.copyMap = copyMap;
          function arrayToMap(array, makeKey) {
              var result = {};
              forEach(array, function (value) {
                  result[makeKey(value)] = value;
              });
              return result;
          }
          ts.arrayToMap = arrayToMap;
          function memoize(callback) {
              var value;
              return function () {
                  if (callback) {
                      value = callback();
                      callback = undefined;
                  }
                  return value;
              };
          }
          ts.memoize = memoize;
          function formatStringFromArgs(text, args, baseIndex) {
              baseIndex = baseIndex || 0;
              return text.replace(/{(\d+)}/g, function (match, index) { return args[+index + baseIndex]; });
          }
          ts.localizedDiagnosticMessages = undefined;
          function getLocaleSpecificMessage(message) {
              return ts.localizedDiagnosticMessages && ts.localizedDiagnosticMessages[message]
                  ? ts.localizedDiagnosticMessages[message]
                  : message;
          }
          ts.getLocaleSpecificMessage = getLocaleSpecificMessage;
          function createFileDiagnostic(file, start, length, message) {
              var end = start + length;
              Debug.assert(start >= 0, "start must be non-negative, is " + start);
              Debug.assert(length >= 0, "length must be non-negative, is " + length);
              Debug.assert(start <= file.text.length, "start must be within the bounds of the file. " + start + " > " + file.text.length);
              Debug.assert(end <= file.text.length, "end must be the bounds of the file. " + end + " > " + file.text.length);
              var text = getLocaleSpecificMessage(message.key);
              if (arguments.length > 4) {
                  text = formatStringFromArgs(text, arguments, 4);
              }
              return {
                  file: file,
                  start: start,
                  length: length,
                  messageText: text,
                  category: message.category,
                  code: message.code
              };
          }
          ts.createFileDiagnostic = createFileDiagnostic;
          function createCompilerDiagnostic(message) {
              var text = getLocaleSpecificMessage(message.key);
              if (arguments.length > 1) {
                  text = formatStringFromArgs(text, arguments, 1);
              }
              return {
                  file: undefined,
                  start: undefined,
                  length: undefined,
                  messageText: text,
                  category: message.category,
                  code: message.code
              };
          }
          ts.createCompilerDiagnostic = createCompilerDiagnostic;
          function chainDiagnosticMessages(details, message) {
              var text = getLocaleSpecificMessage(message.key);
              if (arguments.length > 2) {
                  text = formatStringFromArgs(text, arguments, 2);
              }
              return {
                  messageText: text,
                  category: message.category,
                  code: message.code,
                  next: details
              };
          }
          ts.chainDiagnosticMessages = chainDiagnosticMessages;
          function concatenateDiagnosticMessageChains(headChain, tailChain) {
              Debug.assert(!headChain.next);
              headChain.next = tailChain;
              return headChain;
          }
          ts.concatenateDiagnosticMessageChains = concatenateDiagnosticMessageChains;
          function compareValues(a, b) {
              if (a === b)
                  return 0;
              if (a === undefined)
                  return -1;
              if (b === undefined)
                  return 1;
              return a < b ? -1 : 1;
          }
          ts.compareValues = compareValues;
          function getDiagnosticFileName(diagnostic) {
              return diagnostic.file ? diagnostic.file.fileName : undefined;
          }
          function compareDiagnostics(d1, d2) {
              return compareValues(getDiagnosticFileName(d1), getDiagnosticFileName(d2)) ||
                  compareValues(d1.start, d2.start) ||
                  compareValues(d1.length, d2.length) ||
                  compareValues(d1.code, d2.code) ||
                  compareMessageText(d1.messageText, d2.messageText) ||
                  0;
          }
          ts.compareDiagnostics = compareDiagnostics;
          function compareMessageText(text1, text2) {
              while (text1 && text2) {
                  var string1 = typeof text1 === "string" ? text1 : text1.messageText;
                  var string2 = typeof text2 === "string" ? text2 : text2.messageText;
                  var res = compareValues(string1, string2);
                  if (res) {
                      return res;
                  }
                  text1 = typeof text1 === "string" ? undefined : text1.next;
                  text2 = typeof text2 === "string" ? undefined : text2.next;
              }
              if (!text1 && !text2) {
                  return 0;
              }
              return text1 ? 1 : -1;
          }
          function sortAndDeduplicateDiagnostics(diagnostics) {
              return deduplicateSortedDiagnostics(diagnostics.sort(compareDiagnostics));
          }
          ts.sortAndDeduplicateDiagnostics = sortAndDeduplicateDiagnostics;
          function deduplicateSortedDiagnostics(diagnostics) {
              if (diagnostics.length < 2) {
                  return diagnostics;
              }
              var newDiagnostics = [diagnostics[0]];
              var previousDiagnostic = diagnostics[0];
              for (var i = 1; i < diagnostics.length; i++) {
                  var currentDiagnostic = diagnostics[i];
                  var isDupe = compareDiagnostics(currentDiagnostic, previousDiagnostic) === 0;
                  if (!isDupe) {
                      newDiagnostics.push(currentDiagnostic);
                      previousDiagnostic = currentDiagnostic;
                  }
              }
              return newDiagnostics;
          }
          ts.deduplicateSortedDiagnostics = deduplicateSortedDiagnostics;
          function normalizeSlashes(path) {
              return path.replace(/\\/g, "/");
          }
          ts.normalizeSlashes = normalizeSlashes;
          function getRootLength(path) {
              if (path.charCodeAt(0) === 47) {
                  if (path.charCodeAt(1) !== 47)
                      return 1;
                  var p1 = path.indexOf("/", 2);
                  if (p1 < 0)
                      return 2;
                  var p2 = path.indexOf("/", p1 + 1);
                  if (p2 < 0)
                      return p1 + 1;
                  return p2 + 1;
              }
              if (path.charCodeAt(1) === 58) {
                  if (path.charCodeAt(2) === 47)
                      return 3;
                  return 2;
              }
              if (path.lastIndexOf("file:///", 0) === 0) {
                  return "file:///".length;
              }
              var idx = path.indexOf('://');
              if (idx !== -1) {
                  return idx + "://".length;
              }
              return 0;
          }
          ts.getRootLength = getRootLength;
          ts.directorySeparator = "/";
          function getNormalizedParts(normalizedSlashedPath, rootLength) {
              var parts = normalizedSlashedPath.substr(rootLength).split(ts.directorySeparator);
              var normalized = [];
              for (var _i = 0; _i < parts.length; _i++) {
                  var part = parts[_i];
                  if (part !== ".") {
                      if (part === ".." && normalized.length > 0 && lastOrUndefined(normalized) !== "..") {
                          normalized.pop();
                      }
                      else {
                          if (part) {
                              normalized.push(part);
                          }
                      }
                  }
              }
              return normalized;
          }
          function normalizePath(path) {
              path = normalizeSlashes(path);
              var rootLength = getRootLength(path);
              var normalized = getNormalizedParts(path, rootLength);
              return path.substr(0, rootLength) + normalized.join(ts.directorySeparator);
          }
          ts.normalizePath = normalizePath;
          function getDirectoryPath(path) {
              return path.substr(0, Math.max(getRootLength(path), path.lastIndexOf(ts.directorySeparator)));
          }
          ts.getDirectoryPath = getDirectoryPath;
          function isUrl(path) {
              return path && !isRootedDiskPath(path) && path.indexOf("://") !== -1;
          }
          ts.isUrl = isUrl;
          function isRootedDiskPath(path) {
              return getRootLength(path) !== 0;
          }
          ts.isRootedDiskPath = isRootedDiskPath;
          function normalizedPathComponents(path, rootLength) {
              var normalizedParts = getNormalizedParts(path, rootLength);
              return [path.substr(0, rootLength)].concat(normalizedParts);
          }
          function getNormalizedPathComponents(path, currentDirectory) {
              path = normalizeSlashes(path);
              var rootLength = getRootLength(path);
              if (rootLength == 0) {
                  path = combinePaths(normalizeSlashes(currentDirectory), path);
                  rootLength = getRootLength(path);
              }
              return normalizedPathComponents(path, rootLength);
          }
          ts.getNormalizedPathComponents = getNormalizedPathComponents;
          function getNormalizedAbsolutePath(fileName, currentDirectory) {
              return getNormalizedPathFromPathComponents(getNormalizedPathComponents(fileName, currentDirectory));
          }
          ts.getNormalizedAbsolutePath = getNormalizedAbsolutePath;
          function getNormalizedPathFromPathComponents(pathComponents) {
              if (pathComponents && pathComponents.length) {
                  return pathComponents[0] + pathComponents.slice(1).join(ts.directorySeparator);
              }
          }
          ts.getNormalizedPathFromPathComponents = getNormalizedPathFromPathComponents;
          function getNormalizedPathComponentsOfUrl(url) {
              // Get root length of http://www.website.com/folder1/foler2/
              // In this example the root is:  http://www.website.com/ 
              // normalized path components should be ["http://www.website.com/", "folder1", "folder2"]
              var urlLength = url.length;
              var rootLength = url.indexOf("://") + "://".length;
              while (rootLength < urlLength) {
                  if (url.charCodeAt(rootLength) === 47) {
                      rootLength++;
                  }
                  else {
                      break;
                  }
              }
              if (rootLength === urlLength) {
                  return [url];
              }
              var indexOfNextSlash = url.indexOf(ts.directorySeparator, rootLength);
              if (indexOfNextSlash !== -1) {
                  rootLength = indexOfNextSlash + 1;
                  return normalizedPathComponents(url, rootLength);
              }
              else {
                  return [url + ts.directorySeparator];
              }
          }
          function getNormalizedPathOrUrlComponents(pathOrUrl, currentDirectory) {
              if (isUrl(pathOrUrl)) {
                  return getNormalizedPathComponentsOfUrl(pathOrUrl);
              }
              else {
                  return getNormalizedPathComponents(pathOrUrl, currentDirectory);
              }
          }
          function getRelativePathToDirectoryOrUrl(directoryPathOrUrl, relativeOrAbsolutePath, currentDirectory, getCanonicalFileName, isAbsolutePathAnUrl) {
              var pathComponents = getNormalizedPathOrUrlComponents(relativeOrAbsolutePath, currentDirectory);
              var directoryComponents = getNormalizedPathOrUrlComponents(directoryPathOrUrl, currentDirectory);
              if (directoryComponents.length > 1 && lastOrUndefined(directoryComponents) === "") {
                  directoryComponents.length--;
              }
              for (var joinStartIndex = 0; joinStartIndex < pathComponents.length && joinStartIndex < directoryComponents.length; joinStartIndex++) {
                  if (getCanonicalFileName(directoryComponents[joinStartIndex]) !== getCanonicalFileName(pathComponents[joinStartIndex])) {
                      break;
                  }
              }
              if (joinStartIndex) {
                  var relativePath = "";
                  var relativePathComponents = pathComponents.slice(joinStartIndex, pathComponents.length);
                  for (; joinStartIndex < directoryComponents.length; joinStartIndex++) {
                      if (directoryComponents[joinStartIndex] !== "") {
                          relativePath = relativePath + ".." + ts.directorySeparator;
                      }
                  }
                  return relativePath + relativePathComponents.join(ts.directorySeparator);
              }
              var absolutePath = getNormalizedPathFromPathComponents(pathComponents);
              if (isAbsolutePathAnUrl && isRootedDiskPath(absolutePath)) {
                  absolutePath = "file:///" + absolutePath;
              }
              return absolutePath;
          }
          ts.getRelativePathToDirectoryOrUrl = getRelativePathToDirectoryOrUrl;
          function getBaseFileName(path) {
              var i = path.lastIndexOf(ts.directorySeparator);
              return i < 0 ? path : path.substring(i + 1);
          }
          ts.getBaseFileName = getBaseFileName;
          function combinePaths(path1, path2) {
              if (!(path1 && path1.length))
                  return path2;
              if (!(path2 && path2.length))
                  return path1;
              if (getRootLength(path2) !== 0)
                  return path2;
              if (path1.charAt(path1.length - 1) === ts.directorySeparator)
                  return path1 + path2;
              return path1 + ts.directorySeparator + path2;
          }
          ts.combinePaths = combinePaths;
          function fileExtensionIs(path, extension) {
              var pathLen = path.length;
              var extLen = extension.length;
              return pathLen > extLen && path.substr(pathLen - extLen, extLen) === extension;
          }
          ts.fileExtensionIs = fileExtensionIs;
          ts.supportedExtensions = [".ts", ".d.ts"];
          var extensionsToRemove = [".d.ts", ".ts", ".js"];
          function removeFileExtension(path) {
              for (var _i = 0; _i < extensionsToRemove.length; _i++) {
                  var ext = extensionsToRemove[_i];
                  if (fileExtensionIs(path, ext)) {
                      return path.substr(0, path.length - ext.length);
                  }
              }
              return path;
          }
          ts.removeFileExtension = removeFileExtension;
          var backslashOrDoubleQuote = /[\"\\]/g;
          var escapedCharsRegExp = /[\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g;
          var escapedCharsMap = {
              "\0": "\\0",
              "\t": "\\t",
              "\v": "\\v",
              "\f": "\\f",
              "\b": "\\b",
              "\r": "\\r",
              "\n": "\\n",
              "\\": "\\\\",
              "\"": "\\\"",
              "\u2028": "\\u2028",
              "\u2029": "\\u2029",
              "\u0085": "\\u0085"
          };
          function Symbol(flags, name) {
              this.flags = flags;
              this.name = name;
              this.declarations = undefined;
          }
          function Type(checker, flags) {
              this.flags = flags;
          }
          function Signature(checker) {
          }
          ts.objectAllocator = {
              getNodeConstructor: function (kind) {
                  function Node() {
                  }
                  Node.prototype = {
                      kind: kind,
                      pos: 0,
                      end: 0,
                      flags: 0,
                      parent: undefined
                  };
                  return Node;
              },
              getSymbolConstructor: function () { return Symbol; },
              getTypeConstructor: function () { return Type; },
              getSignatureConstructor: function () { return Signature; }
          };
          var Debug;
          (function (Debug) {
              var currentAssertionLevel = 0;
              function shouldAssert(level) {
                  return currentAssertionLevel >= level;
              }
              Debug.shouldAssert = shouldAssert;
              function assert(expression, message, verboseDebugInfo) {
                  if (!expression) {
                      var verboseDebugString = "";
                      if (verboseDebugInfo) {
                          verboseDebugString = "\r\nVerbose Debug Information: " + verboseDebugInfo();
                      }
                      throw new Error("Debug Failure. False expression: " + (message || "") + verboseDebugString);
                  }
              }
              Debug.assert = assert;
              function fail(message) {
                  Debug.assert(false, message);
              }
              Debug.fail = fail;
          })(Debug = ts.Debug || (ts.Debug = {}));
      })(ts || (ts = {}));
      /// <reference path="core.ts"/>
      var ts;
      (function (ts) {
          ts.sys = (function () {
              function getWScriptSystem() {
                  var fso = new ActiveXObject("Scripting.FileSystemObject");
                  var fileStream = new ActiveXObject("ADODB.Stream");
                  fileStream.Type = 2;
                  var binaryStream = new ActiveXObject("ADODB.Stream");
                  binaryStream.Type = 1;
                  var args = [];
                  for (var i = 0; i < WScript.Arguments.length; i++) {
                      args[i] = WScript.Arguments.Item(i);
                  }
                  function readFile(fileName, encoding) {
                      if (!fso.FileExists(fileName)) {
                          return undefined;
                      }
                      fileStream.Open();
                      try {
                          if (encoding) {
                              fileStream.Charset = encoding;
                              fileStream.LoadFromFile(fileName);
                          }
                          else {
                              fileStream.Charset = "x-ansi";
                              fileStream.LoadFromFile(fileName);
                              var bom = fileStream.ReadText(2) || "";
                              fileStream.Position = 0;
                              fileStream.Charset = bom.length >= 2 && (bom.charCodeAt(0) === 0xFF && bom.charCodeAt(1) === 0xFE || bom.charCodeAt(0) === 0xFE && bom.charCodeAt(1) === 0xFF) ? "unicode" : "utf-8";
                          }
                          return fileStream.ReadText();
                      }
                      catch (e) {
                          throw e;
                      }
                      finally {
                          fileStream.Close();
                      }
                  }
                  function writeFile(fileName, data, writeByteOrderMark) {
                      fileStream.Open();
                      binaryStream.Open();
                      try {
                          fileStream.Charset = "utf-8";
                          fileStream.WriteText(data);
                          if (writeByteOrderMark) {
                              fileStream.Position = 0;
                          }
                          else {
                              fileStream.Position = 3;
                          }
                          fileStream.CopyTo(binaryStream);
                          binaryStream.SaveToFile(fileName, 2);
                      }
                      finally {
                          binaryStream.Close();
                          fileStream.Close();
                      }
                  }
                  function getNames(collection) {
                      var result = [];
                      for (var e = new Enumerator(collection); !e.atEnd(); e.moveNext()) {
                          result.push(e.item().Name);
                      }
                      return result.sort();
                  }
                  function readDirectory(path, extension) {
                      var result = [];
                      visitDirectory(path);
                      return result;
                      function visitDirectory(path) {
                          var folder = fso.GetFolder(path || ".");
                          var files = getNames(folder.files);
                          for (var _i = 0; _i < files.length; _i++) {
                              var name_1 = files[_i];
                              if (!extension || ts.fileExtensionIs(name_1, extension)) {
                                  result.push(ts.combinePaths(path, name_1));
                              }
                          }
                          var subfolders = getNames(folder.subfolders);
                          for (var _a = 0; _a < subfolders.length; _a++) {
                              var current = subfolders[_a];
                              visitDirectory(ts.combinePaths(path, current));
                          }
                      }
                  }
                  return {
                      args: args,
                      newLine: "\r\n",
                      useCaseSensitiveFileNames: false,
                      write: function (s) {
                          WScript.StdOut.Write(s);
                      },
                      readFile: readFile,
                      writeFile: writeFile,
                      resolvePath: function (path) {
                          return fso.GetAbsolutePathName(path);
                      },
                      fileExists: function (path) {
                          return fso.FileExists(path);
                      },
                      directoryExists: function (path) {
                          return fso.FolderExists(path);
                      },
                      createDirectory: function (directoryName) {
                          if (!this.directoryExists(directoryName)) {
                              fso.CreateFolder(directoryName);
                          }
                      },
                      getExecutingFilePath: function () {
                          return WScript.ScriptFullName;
                      },
                      getCurrentDirectory: function () {
                          return new ActiveXObject("WScript.Shell").CurrentDirectory;
                      },
                      readDirectory: readDirectory,
                      exit: function (exitCode) {
                          try {
                              WScript.Quit(exitCode);
                          }
                          catch (e) {
                          }
                      }
                  };
              }
              function getNodeSystem() {
                  var _fs = require("fs");
                  var _path = require("path");
                  var _os = require('os');
                  var platform = _os.platform();
                  var useCaseSensitiveFileNames = platform !== "win32" && platform !== "win64" && platform !== "darwin";
                  function readFile(fileName, encoding) {
                      if (!_fs.existsSync(fileName)) {
                          return undefined;
                      }
                      var buffer = _fs.readFileSync(fileName);
                      var len = buffer.length;
                      if (len >= 2 && buffer[0] === 0xFE && buffer[1] === 0xFF) {
                          len &= ~1;
                          for (var i = 0; i < len; i += 2) {
                              var temp = buffer[i];
                              buffer[i] = buffer[i + 1];
                              buffer[i + 1] = temp;
                          }
                          return buffer.toString("utf16le", 2);
                      }
                      if (len >= 2 && buffer[0] === 0xFF && buffer[1] === 0xFE) {
                          return buffer.toString("utf16le", 2);
                      }
                      if (len >= 3 && buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) {
                          return buffer.toString("utf8", 3);
                      }
                      return buffer.toString("utf8");
                  }
                  function writeFile(fileName, data, writeByteOrderMark) {
                      if (writeByteOrderMark) {
                          data = '\uFEFF' + data;
                      }
                      _fs.writeFileSync(fileName, data, "utf8");
                  }
                  function readDirectory(path, extension) {
                      var result = [];
                      visitDirectory(path);
                      return result;
                      function visitDirectory(path) {
                          var files = _fs.readdirSync(path || ".").sort();
                          var directories = [];
                          for (var _i = 0; _i < files.length; _i++) {
                              var current = files[_i];
                              var name = ts.combinePaths(path, current);
                              var stat = _fs.lstatSync(name);
                              if (stat.isFile()) {
                                  if (!extension || ts.fileExtensionIs(name, extension)) {
                                      result.push(name);
                                  }
                              }
                              else if (stat.isDirectory()) {
                                  directories.push(name);
                              }
                          }
                          for (var _a = 0; _a < directories.length; _a++) {
                              var current = directories[_a];
                              visitDirectory(current);
                          }
                      }
                  }
                  return {
                      args: process.argv.slice(2),
                      newLine: _os.EOL,
                      useCaseSensitiveFileNames: useCaseSensitiveFileNames,
                      write: function (s) {
                          _fs.writeSync(1, s);
                      },
                      readFile: readFile,
                      writeFile: writeFile,
                      watchFile: function (fileName, callback) {
                          _fs.watchFile(fileName, { persistent: true, interval: 250 }, fileChanged);
                          return {
                              close: function () { _fs.unwatchFile(fileName, fileChanged); }
                          };
                          function fileChanged(curr, prev) {
                              if (+curr.mtime <= +prev.mtime) {
                                  return;
                              }
                              callback(fileName);
                          }
                          ;
                      },
                      resolvePath: function (path) {
                          return _path.resolve(path);
                      },
                      fileExists: function (path) {
                          return _fs.existsSync(path);
                      },
                      directoryExists: function (path) {
                          return _fs.existsSync(path) && _fs.statSync(path).isDirectory();
                      },
                      createDirectory: function (directoryName) {
                          if (!this.directoryExists(directoryName)) {
                              _fs.mkdirSync(directoryName);
                          }
                      },
                      getExecutingFilePath: function () {
                          return __filename;
                      },
                      getCurrentDirectory: function () {
                          return process.cwd();
                      },
                      readDirectory: readDirectory,
                      getMemoryUsage: function () {
                          if (global.gc) {
                              global.gc();
                          }
                          return process.memoryUsage().heapUsed;
                      },
                      exit: function (exitCode) {
                          process.exit(exitCode);
                      }
                  };
              }
              if (typeof WScript !== "undefined" && typeof ActiveXObject === "function") {
                  return getWScriptSystem();
              }
              else if (typeof module !== "undefined" && module.exports) {
                  return getNodeSystem();
              }
              else {
                  return undefined;
              }
          })();
      })(ts || (ts = {}));
      /// <reference path="types.ts" />
      var ts;
      (function (ts) {
          ts.Diagnostics = {
              Unterminated_string_literal: { code: 1002, category: ts.DiagnosticCategory.Error, key: "Unterminated string literal." },
              Identifier_expected: { code: 1003, category: ts.DiagnosticCategory.Error, key: "Identifier expected." },
              _0_expected: { code: 1005, category: ts.DiagnosticCategory.Error, key: "'{0}' expected." },
              A_file_cannot_have_a_reference_to_itself: { code: 1006, category: ts.DiagnosticCategory.Error, key: "A file cannot have a reference to itself." },
              Trailing_comma_not_allowed: { code: 1009, category: ts.DiagnosticCategory.Error, key: "Trailing comma not allowed." },
              Asterisk_Slash_expected: { code: 1010, category: ts.DiagnosticCategory.Error, key: "'*/' expected." },
              Unexpected_token: { code: 1012, category: ts.DiagnosticCategory.Error, key: "Unexpected token." },
              A_rest_parameter_must_be_last_in_a_parameter_list: { code: 1014, category: ts.DiagnosticCategory.Error, key: "A rest parameter must be last in a parameter list." },
              Parameter_cannot_have_question_mark_and_initializer: { code: 1015, category: ts.DiagnosticCategory.Error, key: "Parameter cannot have question mark and initializer." },
              A_required_parameter_cannot_follow_an_optional_parameter: { code: 1016, category: ts.DiagnosticCategory.Error, key: "A required parameter cannot follow an optional parameter." },
              An_index_signature_cannot_have_a_rest_parameter: { code: 1017, category: ts.DiagnosticCategory.Error, key: "An index signature cannot have a rest parameter." },
              An_index_signature_parameter_cannot_have_an_accessibility_modifier: { code: 1018, category: ts.DiagnosticCategory.Error, key: "An index signature parameter cannot have an accessibility modifier." },
              An_index_signature_parameter_cannot_have_a_question_mark: { code: 1019, category: ts.DiagnosticCategory.Error, key: "An index signature parameter cannot have a question mark." },
              An_index_signature_parameter_cannot_have_an_initializer: { code: 1020, category: ts.DiagnosticCategory.Error, key: "An index signature parameter cannot have an initializer." },
              An_index_signature_must_have_a_type_annotation: { code: 1021, category: ts.DiagnosticCategory.Error, key: "An index signature must have a type annotation." },
              An_index_signature_parameter_must_have_a_type_annotation: { code: 1022, category: ts.DiagnosticCategory.Error, key: "An index signature parameter must have a type annotation." },
              An_index_signature_parameter_type_must_be_string_or_number: { code: 1023, category: ts.DiagnosticCategory.Error, key: "An index signature parameter type must be 'string' or 'number'." },
              A_class_or_interface_declaration_can_only_have_one_extends_clause: { code: 1024, category: ts.DiagnosticCategory.Error, key: "A class or interface declaration can only have one 'extends' clause." },
              An_extends_clause_must_precede_an_implements_clause: { code: 1025, category: ts.DiagnosticCategory.Error, key: "An 'extends' clause must precede an 'implements' clause." },
              A_class_can_only_extend_a_single_class: { code: 1026, category: ts.DiagnosticCategory.Error, key: "A class can only extend a single class." },
              A_class_declaration_can_only_have_one_implements_clause: { code: 1027, category: ts.DiagnosticCategory.Error, key: "A class declaration can only have one 'implements' clause." },
              Accessibility_modifier_already_seen: { code: 1028, category: ts.DiagnosticCategory.Error, key: "Accessibility modifier already seen." },
              _0_modifier_must_precede_1_modifier: { code: 1029, category: ts.DiagnosticCategory.Error, key: "'{0}' modifier must precede '{1}' modifier." },
              _0_modifier_already_seen: { code: 1030, category: ts.DiagnosticCategory.Error, key: "'{0}' modifier already seen." },
              _0_modifier_cannot_appear_on_a_class_element: { code: 1031, category: ts.DiagnosticCategory.Error, key: "'{0}' modifier cannot appear on a class element." },
              An_interface_declaration_cannot_have_an_implements_clause: { code: 1032, category: ts.DiagnosticCategory.Error, key: "An interface declaration cannot have an 'implements' clause." },
              super_must_be_followed_by_an_argument_list_or_member_access: { code: 1034, category: ts.DiagnosticCategory.Error, key: "'super' must be followed by an argument list or member access." },
              Only_ambient_modules_can_use_quoted_names: { code: 1035, category: ts.DiagnosticCategory.Error, key: "Only ambient modules can use quoted names." },
              Statements_are_not_allowed_in_ambient_contexts: { code: 1036, category: ts.DiagnosticCategory.Error, key: "Statements are not allowed in ambient contexts." },
              A_declare_modifier_cannot_be_used_in_an_already_ambient_context: { code: 1038, category: ts.DiagnosticCategory.Error, key: "A 'declare' modifier cannot be used in an already ambient context." },
              Initializers_are_not_allowed_in_ambient_contexts: { code: 1039, category: ts.DiagnosticCategory.Error, key: "Initializers are not allowed in ambient contexts." },
              _0_modifier_cannot_appear_on_a_module_element: { code: 1044, category: ts.DiagnosticCategory.Error, key: "'{0}' modifier cannot appear on a module element." },
              A_declare_modifier_cannot_be_used_with_an_interface_declaration: { code: 1045, category: ts.DiagnosticCategory.Error, key: "A 'declare' modifier cannot be used with an interface declaration." },
              A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file: { code: 1046, category: ts.DiagnosticCategory.Error, key: "A 'declare' modifier is required for a top level declaration in a .d.ts file." },
              A_rest_parameter_cannot_be_optional: { code: 1047, category: ts.DiagnosticCategory.Error, key: "A rest parameter cannot be optional." },
              A_rest_parameter_cannot_have_an_initializer: { code: 1048, category: ts.DiagnosticCategory.Error, key: "A rest parameter cannot have an initializer." },
              A_set_accessor_must_have_exactly_one_parameter: { code: 1049, category: ts.DiagnosticCategory.Error, key: "A 'set' accessor must have exactly one parameter." },
              A_set_accessor_cannot_have_an_optional_parameter: { code: 1051, category: ts.DiagnosticCategory.Error, key: "A 'set' accessor cannot have an optional parameter." },
              A_set_accessor_parameter_cannot_have_an_initializer: { code: 1052, category: ts.DiagnosticCategory.Error, key: "A 'set' accessor parameter cannot have an initializer." },
              A_set_accessor_cannot_have_rest_parameter: { code: 1053, category: ts.DiagnosticCategory.Error, key: "A 'set' accessor cannot have rest parameter." },
              A_get_accessor_cannot_have_parameters: { code: 1054, category: ts.DiagnosticCategory.Error, key: "A 'get' accessor cannot have parameters." },
              Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher: { code: 1056, category: ts.DiagnosticCategory.Error, key: "Accessors are only available when targeting ECMAScript 5 and higher." },
              Enum_member_must_have_initializer: { code: 1061, category: ts.DiagnosticCategory.Error, key: "Enum member must have initializer." },
              An_export_assignment_cannot_be_used_in_a_namespace: { code: 1063, category: ts.DiagnosticCategory.Error, key: "An export assignment cannot be used in a namespace." },
              Ambient_enum_elements_can_only_have_integer_literal_initializers: { code: 1066, category: ts.DiagnosticCategory.Error, key: "Ambient enum elements can only have integer literal initializers." },
              Unexpected_token_A_constructor_method_accessor_or_property_was_expected: { code: 1068, category: ts.DiagnosticCategory.Error, key: "Unexpected token. A constructor, method, accessor, or property was expected." },
              A_declare_modifier_cannot_be_used_with_an_import_declaration: { code: 1079, category: ts.DiagnosticCategory.Error, key: "A 'declare' modifier cannot be used with an import declaration." },
              Invalid_reference_directive_syntax: { code: 1084, category: ts.DiagnosticCategory.Error, key: "Invalid 'reference' directive syntax." },
              Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher: { code: 1085, category: ts.DiagnosticCategory.Error, key: "Octal literals are not available when targeting ECMAScript 5 and higher." },
              An_accessor_cannot_be_declared_in_an_ambient_context: { code: 1086, category: ts.DiagnosticCategory.Error, key: "An accessor cannot be declared in an ambient context." },
              _0_modifier_cannot_appear_on_a_constructor_declaration: { code: 1089, category: ts.DiagnosticCategory.Error, key: "'{0}' modifier cannot appear on a constructor declaration." },
              _0_modifier_cannot_appear_on_a_parameter: { code: 1090, category: ts.DiagnosticCategory.Error, key: "'{0}' modifier cannot appear on a parameter." },
              Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement: { code: 1091, category: ts.DiagnosticCategory.Error, key: "Only a single variable declaration is allowed in a 'for...in' statement." },
              Type_parameters_cannot_appear_on_a_constructor_declaration: { code: 1092, category: ts.DiagnosticCategory.Error, key: "Type parameters cannot appear on a constructor declaration." },
              Type_annotation_cannot_appear_on_a_constructor_declaration: { code: 1093, category: ts.DiagnosticCategory.Error, key: "Type annotation cannot appear on a constructor declaration." },
              An_accessor_cannot_have_type_parameters: { code: 1094, category: ts.DiagnosticCategory.Error, key: "An accessor cannot have type parameters." },
              A_set_accessor_cannot_have_a_return_type_annotation: { code: 1095, category: ts.DiagnosticCategory.Error, key: "A 'set' accessor cannot have a return type annotation." },
              An_index_signature_must_have_exactly_one_parameter: { code: 1096, category: ts.DiagnosticCategory.Error, key: "An index signature must have exactly one parameter." },
              _0_list_cannot_be_empty: { code: 1097, category: ts.DiagnosticCategory.Error, key: "'{0}' list cannot be empty." },
              Type_parameter_list_cannot_be_empty: { code: 1098, category: ts.DiagnosticCategory.Error, key: "Type parameter list cannot be empty." },
              Type_argument_list_cannot_be_empty: { code: 1099, category: ts.DiagnosticCategory.Error, key: "Type argument list cannot be empty." },
              Invalid_use_of_0_in_strict_mode: { code: 1100, category: ts.DiagnosticCategory.Error, key: "Invalid use of '{0}' in strict mode." },
              with_statements_are_not_allowed_in_strict_mode: { code: 1101, category: ts.DiagnosticCategory.Error, key: "'with' statements are not allowed in strict mode." },
              delete_cannot_be_called_on_an_identifier_in_strict_mode: { code: 1102, category: ts.DiagnosticCategory.Error, key: "'delete' cannot be called on an identifier in strict mode." },
              A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement: { code: 1104, category: ts.DiagnosticCategory.Error, key: "A 'continue' statement can only be used within an enclosing iteration statement." },
              A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement: { code: 1105, category: ts.DiagnosticCategory.Error, key: "A 'break' statement can only be used within an enclosing iteration or switch statement." },
              Jump_target_cannot_cross_function_boundary: { code: 1107, category: ts.DiagnosticCategory.Error, key: "Jump target cannot cross function boundary." },
              A_return_statement_can_only_be_used_within_a_function_body: { code: 1108, category: ts.DiagnosticCategory.Error, key: "A 'return' statement can only be used within a function body." },
              Expression_expected: { code: 1109, category: ts.DiagnosticCategory.Error, key: "Expression expected." },
              Type_expected: { code: 1110, category: ts.DiagnosticCategory.Error, key: "Type expected." },
              A_class_member_cannot_be_declared_optional: { code: 1112, category: ts.DiagnosticCategory.Error, key: "A class member cannot be declared optional." },
              A_default_clause_cannot_appear_more_than_once_in_a_switch_statement: { code: 1113, category: ts.DiagnosticCategory.Error, key: "A 'default' clause cannot appear more than once in a 'switch' statement." },
              Duplicate_label_0: { code: 1114, category: ts.DiagnosticCategory.Error, key: "Duplicate label '{0}'" },
              A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement: { code: 1115, category: ts.DiagnosticCategory.Error, key: "A 'continue' statement can only jump to a label of an enclosing iteration statement." },
              A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement: { code: 1116, category: ts.DiagnosticCategory.Error, key: "A 'break' statement can only jump to a label of an enclosing statement." },
              An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode: { code: 1117, category: ts.DiagnosticCategory.Error, key: "An object literal cannot have multiple properties with the same name in strict mode." },
              An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name: { code: 1118, category: ts.DiagnosticCategory.Error, key: "An object literal cannot have multiple get/set accessors with the same name." },
              An_object_literal_cannot_have_property_and_accessor_with_the_same_name: { code: 1119, category: ts.DiagnosticCategory.Error, key: "An object literal cannot have property and accessor with the same name." },
              An_export_assignment_cannot_have_modifiers: { code: 1120, category: ts.DiagnosticCategory.Error, key: "An export assignment cannot have modifiers." },
              Octal_literals_are_not_allowed_in_strict_mode: { code: 1121, category: ts.DiagnosticCategory.Error, key: "Octal literals are not allowed in strict mode." },
              A_tuple_type_element_list_cannot_be_empty: { code: 1122, category: ts.DiagnosticCategory.Error, key: "A tuple type element list cannot be empty." },
              Variable_declaration_list_cannot_be_empty: { code: 1123, category: ts.DiagnosticCategory.Error, key: "Variable declaration list cannot be empty." },
              Digit_expected: { code: 1124, category: ts.DiagnosticCategory.Error, key: "Digit expected." },
              Hexadecimal_digit_expected: { code: 1125, category: ts.DiagnosticCategory.Error, key: "Hexadecimal digit expected." },
              Unexpected_end_of_text: { code: 1126, category: ts.DiagnosticCategory.Error, key: "Unexpected end of text." },
              Invalid_character: { code: 1127, category: ts.DiagnosticCategory.Error, key: "Invalid character." },
              Declaration_or_statement_expected: { code: 1128, category: ts.DiagnosticCategory.Error, key: "Declaration or statement expected." },
              Statement_expected: { code: 1129, category: ts.DiagnosticCategory.Error, key: "Statement expected." },
              case_or_default_expected: { code: 1130, category: ts.DiagnosticCategory.Error, key: "'case' or 'default' expected." },
              Property_or_signature_expected: { code: 1131, category: ts.DiagnosticCategory.Error, key: "Property or signature expected." },
              Enum_member_expected: { code: 1132, category: ts.DiagnosticCategory.Error, key: "Enum member expected." },
              Type_reference_expected: { code: 1133, category: ts.DiagnosticCategory.Error, key: "Type reference expected." },
              Variable_declaration_expected: { code: 1134, category: ts.DiagnosticCategory.Error, key: "Variable declaration expected." },
              Argument_expression_expected: { code: 1135, category: ts.DiagnosticCategory.Error, key: "Argument expression expected." },
              Property_assignment_expected: { code: 1136, category: ts.DiagnosticCategory.Error, key: "Property assignment expected." },
              Expression_or_comma_expected: { code: 1137, category: ts.DiagnosticCategory.Error, key: "Expression or comma expected." },
              Parameter_declaration_expected: { code: 1138, category: ts.DiagnosticCategory.Error, key: "Parameter declaration expected." },
              Type_parameter_declaration_expected: { code: 1139, category: ts.DiagnosticCategory.Error, key: "Type parameter declaration expected." },
              Type_argument_expected: { code: 1140, category: ts.DiagnosticCategory.Error, key: "Type argument expected." },
              String_literal_expected: { code: 1141, category: ts.DiagnosticCategory.Error, key: "String literal expected." },
              Line_break_not_permitted_here: { code: 1142, category: ts.DiagnosticCategory.Error, key: "Line break not permitted here." },
              or_expected: { code: 1144, category: ts.DiagnosticCategory.Error, key: "'{' or ';' expected." },
              Modifiers_not_permitted_on_index_signature_members: { code: 1145, category: ts.DiagnosticCategory.Error, key: "Modifiers not permitted on index signature members." },
              Declaration_expected: { code: 1146, category: ts.DiagnosticCategory.Error, key: "Declaration expected." },
              Import_declarations_in_a_namespace_cannot_reference_a_module: { code: 1147, category: ts.DiagnosticCategory.Error, key: "Import declarations in a namespace cannot reference a module." },
              Cannot_compile_modules_unless_the_module_flag_is_provided: { code: 1148, category: ts.DiagnosticCategory.Error, key: "Cannot compile modules unless the '--module' flag is provided." },
              File_name_0_differs_from_already_included_file_name_1_only_in_casing: { code: 1149, category: ts.DiagnosticCategory.Error, key: "File name '{0}' differs from already included file name '{1}' only in casing" },
              new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead: { code: 1150, category: ts.DiagnosticCategory.Error, key: "'new T[]' cannot be used to create an array. Use 'new Array<T>()' instead." },
              var_let_or_const_expected: { code: 1152, category: ts.DiagnosticCategory.Error, key: "'var', 'let' or 'const' expected." },
              let_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1153, category: ts.DiagnosticCategory.Error, key: "'let' declarations are only available when targeting ECMAScript 6 and higher." },
              const_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1154, category: ts.DiagnosticCategory.Error, key: "'const' declarations are only available when targeting ECMAScript 6 and higher." },
              const_declarations_must_be_initialized: { code: 1155, category: ts.DiagnosticCategory.Error, key: "'const' declarations must be initialized" },
              const_declarations_can_only_be_declared_inside_a_block: { code: 1156, category: ts.DiagnosticCategory.Error, key: "'const' declarations can only be declared inside a block." },
              let_declarations_can_only_be_declared_inside_a_block: { code: 1157, category: ts.DiagnosticCategory.Error, key: "'let' declarations can only be declared inside a block." },
              Unterminated_template_literal: { code: 1160, category: ts.DiagnosticCategory.Error, key: "Unterminated template literal." },
              Unterminated_regular_expression_literal: { code: 1161, category: ts.DiagnosticCategory.Error, key: "Unterminated regular expression literal." },
              An_object_member_cannot_be_declared_optional: { code: 1162, category: ts.DiagnosticCategory.Error, key: "An object member cannot be declared optional." },
              yield_expression_must_be_contained_within_a_generator_declaration: { code: 1163, category: ts.DiagnosticCategory.Error, key: "'yield' expression must be contained_within a generator declaration." },
              Computed_property_names_are_not_allowed_in_enums: { code: 1164, category: ts.DiagnosticCategory.Error, key: "Computed property names are not allowed in enums." },
              A_computed_property_name_in_an_ambient_context_must_directly_refer_to_a_built_in_symbol: { code: 1165, category: ts.DiagnosticCategory.Error, key: "A computed property name in an ambient context must directly refer to a built-in symbol." },
              A_computed_property_name_in_a_class_property_declaration_must_directly_refer_to_a_built_in_symbol: { code: 1166, category: ts.DiagnosticCategory.Error, key: "A computed property name in a class property declaration must directly refer to a built-in symbol." },
              Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1167, category: ts.DiagnosticCategory.Error, key: "Computed property names are only available when targeting ECMAScript 6 and higher." },
              A_computed_property_name_in_a_method_overload_must_directly_refer_to_a_built_in_symbol: { code: 1168, category: ts.DiagnosticCategory.Error, key: "A computed property name in a method overload must directly refer to a built-in symbol." },
              A_computed_property_name_in_an_interface_must_directly_refer_to_a_built_in_symbol: { code: 1169, category: ts.DiagnosticCategory.Error, key: "A computed property name in an interface must directly refer to a built-in symbol." },
              A_computed_property_name_in_a_type_literal_must_directly_refer_to_a_built_in_symbol: { code: 1170, category: ts.DiagnosticCategory.Error, key: "A computed property name in a type literal must directly refer to a built-in symbol." },
              A_comma_expression_is_not_allowed_in_a_computed_property_name: { code: 1171, category: ts.DiagnosticCategory.Error, key: "A comma expression is not allowed in a computed property name." },
              extends_clause_already_seen: { code: 1172, category: ts.DiagnosticCategory.Error, key: "'extends' clause already seen." },
              extends_clause_must_precede_implements_clause: { code: 1173, category: ts.DiagnosticCategory.Error, key: "'extends' clause must precede 'implements' clause." },
              Classes_can_only_extend_a_single_class: { code: 1174, category: ts.DiagnosticCategory.Error, key: "Classes can only extend a single class." },
              implements_clause_already_seen: { code: 1175, category: ts.DiagnosticCategory.Error, key: "'implements' clause already seen." },
              Interface_declaration_cannot_have_implements_clause: { code: 1176, category: ts.DiagnosticCategory.Error, key: "Interface declaration cannot have 'implements' clause." },
              Binary_digit_expected: { code: 1177, category: ts.DiagnosticCategory.Error, key: "Binary digit expected." },
              Octal_digit_expected: { code: 1178, category: ts.DiagnosticCategory.Error, key: "Octal digit expected." },
              Unexpected_token_expected: { code: 1179, category: ts.DiagnosticCategory.Error, key: "Unexpected token. '{' expected." },
              Property_destructuring_pattern_expected: { code: 1180, category: ts.DiagnosticCategory.Error, key: "Property destructuring pattern expected." },
              Array_element_destructuring_pattern_expected: { code: 1181, category: ts.DiagnosticCategory.Error, key: "Array element destructuring pattern expected." },
              A_destructuring_declaration_must_have_an_initializer: { code: 1182, category: ts.DiagnosticCategory.Error, key: "A destructuring declaration must have an initializer." },
              Destructuring_declarations_are_not_allowed_in_ambient_contexts: { code: 1183, category: ts.DiagnosticCategory.Error, key: "Destructuring declarations are not allowed in ambient contexts." },
              An_implementation_cannot_be_declared_in_ambient_contexts: { code: 1184, category: ts.DiagnosticCategory.Error, key: "An implementation cannot be declared in ambient contexts." },
              Modifiers_cannot_appear_here: { code: 1184, category: ts.DiagnosticCategory.Error, key: "Modifiers cannot appear here." },
              Merge_conflict_marker_encountered: { code: 1185, category: ts.DiagnosticCategory.Error, key: "Merge conflict marker encountered." },
              A_rest_element_cannot_have_an_initializer: { code: 1186, category: ts.DiagnosticCategory.Error, key: "A rest element cannot have an initializer." },
              A_parameter_property_may_not_be_a_binding_pattern: { code: 1187, category: ts.DiagnosticCategory.Error, key: "A parameter property may not be a binding pattern." },
              Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement: { code: 1188, category: ts.DiagnosticCategory.Error, key: "Only a single variable declaration is allowed in a 'for...of' statement." },
              The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer: { code: 1189, category: ts.DiagnosticCategory.Error, key: "The variable declaration of a 'for...in' statement cannot have an initializer." },
              The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer: { code: 1190, category: ts.DiagnosticCategory.Error, key: "The variable declaration of a 'for...of' statement cannot have an initializer." },
              An_import_declaration_cannot_have_modifiers: { code: 1191, category: ts.DiagnosticCategory.Error, key: "An import declaration cannot have modifiers." },
              Module_0_has_no_default_export: { code: 1192, category: ts.DiagnosticCategory.Error, key: "Module '{0}' has no default export." },
              An_export_declaration_cannot_have_modifiers: { code: 1193, category: ts.DiagnosticCategory.Error, key: "An export declaration cannot have modifiers." },
              Export_declarations_are_not_permitted_in_a_namespace: { code: 1194, category: ts.DiagnosticCategory.Error, key: "Export declarations are not permitted in a namespace." },
              Catch_clause_variable_name_must_be_an_identifier: { code: 1195, category: ts.DiagnosticCategory.Error, key: "Catch clause variable name must be an identifier." },
              Catch_clause_variable_cannot_have_a_type_annotation: { code: 1196, category: ts.DiagnosticCategory.Error, key: "Catch clause variable cannot have a type annotation." },
              Catch_clause_variable_cannot_have_an_initializer: { code: 1197, category: ts.DiagnosticCategory.Error, key: "Catch clause variable cannot have an initializer." },
              An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive: { code: 1198, category: ts.DiagnosticCategory.Error, key: "An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive." },
              Unterminated_Unicode_escape_sequence: { code: 1199, category: ts.DiagnosticCategory.Error, key: "Unterminated Unicode escape sequence." },
              Line_terminator_not_permitted_before_arrow: { code: 1200, category: ts.DiagnosticCategory.Error, key: "Line terminator not permitted before arrow." },
              Import_assignment_cannot_be_used_when_targeting_ECMAScript_6_or_higher_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_or_import_d_from_mod_instead: { code: 1202, category: ts.DiagnosticCategory.Error, key: "Import assignment cannot be used when targeting ECMAScript 6 or higher. Consider using 'import * as ns from \"mod\"', 'import {a} from \"mod\"' or 'import d from \"mod\"' instead." },
              Export_assignment_cannot_be_used_when_targeting_ECMAScript_6_or_higher_Consider_using_export_default_instead: { code: 1203, category: ts.DiagnosticCategory.Error, key: "Export assignment cannot be used when targeting ECMAScript 6 or higher. Consider using 'export default' instead." },
              Cannot_compile_modules_into_commonjs_amd_system_or_umd_when_targeting_ES6_or_higher: { code: 1204, category: ts.DiagnosticCategory.Error, key: "Cannot compile modules into 'commonjs', 'amd', 'system' or 'umd' when targeting 'ES6' or higher." },
              Decorators_are_only_available_when_targeting_ECMAScript_5_and_higher: { code: 1205, category: ts.DiagnosticCategory.Error, key: "Decorators are only available when targeting ECMAScript 5 and higher." },
              Decorators_are_not_valid_here: { code: 1206, category: ts.DiagnosticCategory.Error, key: "Decorators are not valid here." },
              Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name: { code: 1207, category: ts.DiagnosticCategory.Error, key: "Decorators cannot be applied to multiple get/set accessors of the same name." },
              Cannot_compile_namespaces_when_the_separateCompilation_flag_is_provided: { code: 1208, category: ts.DiagnosticCategory.Error, key: "Cannot compile namespaces when the '--separateCompilation' flag is provided." },
              Ambient_const_enums_are_not_allowed_when_the_separateCompilation_flag_is_provided: { code: 1209, category: ts.DiagnosticCategory.Error, key: "Ambient const enums are not allowed when the '--separateCompilation' flag is provided." },
              Invalid_use_of_0_Class_definitions_are_automatically_in_strict_mode: { code: 1210, category: ts.DiagnosticCategory.Error, key: "Invalid use of '{0}'. Class definitions are automatically in strict mode." },
              A_class_declaration_without_the_default_modifier_must_have_a_name: { code: 1211, category: ts.DiagnosticCategory.Error, key: "A class declaration without the 'default' modifier must have a name" },
              Identifier_expected_0_is_a_reserved_word_in_strict_mode: { code: 1212, category: ts.DiagnosticCategory.Error, key: "Identifier expected. '{0}' is a reserved word in strict mode" },
              Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode: { code: 1213, category: ts.DiagnosticCategory.Error, key: "Identifier expected. '{0}' is a reserved word in strict mode. Class definitions are automatically in strict mode." },
              Type_expected_0_is_a_reserved_word_in_strict_mode: { code: 1215, category: ts.DiagnosticCategory.Error, key: "Type expected. '{0}' is a reserved word in strict mode" },
              Type_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode: { code: 1216, category: ts.DiagnosticCategory.Error, key: "Type expected. '{0}' is a reserved word in strict mode. Class definitions are automatically in strict mode." },
              Export_assignment_is_not_supported_when_module_flag_is_system: { code: 1218, category: ts.DiagnosticCategory.Error, key: "Export assignment is not supported when '--module' flag is 'system'." },
              Duplicate_identifier_0: { code: 2300, category: ts.DiagnosticCategory.Error, key: "Duplicate identifier '{0}'." },
              Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: { code: 2301, category: ts.DiagnosticCategory.Error, key: "Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor." },
              Static_members_cannot_reference_class_type_parameters: { code: 2302, category: ts.DiagnosticCategory.Error, key: "Static members cannot reference class type parameters." },
              Circular_definition_of_import_alias_0: { code: 2303, category: ts.DiagnosticCategory.Error, key: "Circular definition of import alias '{0}'." },
              Cannot_find_name_0: { code: 2304, category: ts.DiagnosticCategory.Error, key: "Cannot find name '{0}'." },
              Module_0_has_no_exported_member_1: { code: 2305, category: ts.DiagnosticCategory.Error, key: "Module '{0}' has no exported member '{1}'." },
              File_0_is_not_a_module: { code: 2306, category: ts.DiagnosticCategory.Error, key: "File '{0}' is not a module." },
              Cannot_find_module_0: { code: 2307, category: ts.DiagnosticCategory.Error, key: "Cannot find module '{0}'." },
              A_module_cannot_have_more_than_one_export_assignment: { code: 2308, category: ts.DiagnosticCategory.Error, key: "A module cannot have more than one export assignment." },
              An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements: { code: 2309, category: ts.DiagnosticCategory.Error, key: "An export assignment cannot be used in a module with other exported elements." },
              Type_0_recursively_references_itself_as_a_base_type: { code: 2310, category: ts.DiagnosticCategory.Error, key: "Type '{0}' recursively references itself as a base type." },
              A_class_may_only_extend_another_class: { code: 2311, category: ts.DiagnosticCategory.Error, key: "A class may only extend another class." },
              An_interface_may_only_extend_a_class_or_another_interface: { code: 2312, category: ts.DiagnosticCategory.Error, key: "An interface may only extend a class or another interface." },
              Constraint_of_a_type_parameter_cannot_reference_any_type_parameter_from_the_same_type_parameter_list: { code: 2313, category: ts.DiagnosticCategory.Error, key: "Constraint of a type parameter cannot reference any type parameter from the same type parameter list." },
              Generic_type_0_requires_1_type_argument_s: { code: 2314, category: ts.DiagnosticCategory.Error, key: "Generic type '{0}' requires {1} type argument(s)." },
              Type_0_is_not_generic: { code: 2315, category: ts.DiagnosticCategory.Error, key: "Type '{0}' is not generic." },
              Global_type_0_must_be_a_class_or_interface_type: { code: 2316, category: ts.DiagnosticCategory.Error, key: "Global type '{0}' must be a class or interface type." },
              Global_type_0_must_have_1_type_parameter_s: { code: 2317, category: ts.DiagnosticCategory.Error, key: "Global type '{0}' must have {1} type parameter(s)." },
              Cannot_find_global_type_0: { code: 2318, category: ts.DiagnosticCategory.Error, key: "Cannot find global type '{0}'." },
              Named_property_0_of_types_1_and_2_are_not_identical: { code: 2319, category: ts.DiagnosticCategory.Error, key: "Named property '{0}' of types '{1}' and '{2}' are not identical." },
              Interface_0_cannot_simultaneously_extend_types_1_and_2: { code: 2320, category: ts.DiagnosticCategory.Error, key: "Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'." },
              Excessive_stack_depth_comparing_types_0_and_1: { code: 2321, category: ts.DiagnosticCategory.Error, key: "Excessive stack depth comparing types '{0}' and '{1}'." },
              Type_0_is_not_assignable_to_type_1: { code: 2322, category: ts.DiagnosticCategory.Error, key: "Type '{0}' is not assignable to type '{1}'." },
              Property_0_is_missing_in_type_1: { code: 2324, category: ts.DiagnosticCategory.Error, key: "Property '{0}' is missing in type '{1}'." },
              Property_0_is_private_in_type_1_but_not_in_type_2: { code: 2325, category: ts.DiagnosticCategory.Error, key: "Property '{0}' is private in type '{1}' but not in type '{2}'." },
              Types_of_property_0_are_incompatible: { code: 2326, category: ts.DiagnosticCategory.Error, key: "Types of property '{0}' are incompatible." },
              Property_0_is_optional_in_type_1_but_required_in_type_2: { code: 2327, category: ts.DiagnosticCategory.Error, key: "Property '{0}' is optional in type '{1}' but required in type '{2}'." },
              Types_of_parameters_0_and_1_are_incompatible: { code: 2328, category: ts.DiagnosticCategory.Error, key: "Types of parameters '{0}' and '{1}' are incompatible." },
              Index_signature_is_missing_in_type_0: { code: 2329, category: ts.DiagnosticCategory.Error, key: "Index signature is missing in type '{0}'." },
              Index_signatures_are_incompatible: { code: 2330, category: ts.DiagnosticCategory.Error, key: "Index signatures are incompatible." },
              this_cannot_be_referenced_in_a_module_or_namespace_body: { code: 2331, category: ts.DiagnosticCategory.Error, key: "'this' cannot be referenced in a module or namespace body." },
              this_cannot_be_referenced_in_current_location: { code: 2332, category: ts.DiagnosticCategory.Error, key: "'this' cannot be referenced in current location." },
              this_cannot_be_referenced_in_constructor_arguments: { code: 2333, category: ts.DiagnosticCategory.Error, key: "'this' cannot be referenced in constructor arguments." },
              this_cannot_be_referenced_in_a_static_property_initializer: { code: 2334, category: ts.DiagnosticCategory.Error, key: "'this' cannot be referenced in a static property initializer." },
              super_can_only_be_referenced_in_a_derived_class: { code: 2335, category: ts.DiagnosticCategory.Error, key: "'super' can only be referenced in a derived class." },
              super_cannot_be_referenced_in_constructor_arguments: { code: 2336, category: ts.DiagnosticCategory.Error, key: "'super' cannot be referenced in constructor arguments." },
              Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors: { code: 2337, category: ts.DiagnosticCategory.Error, key: "Super calls are not permitted outside constructors or in nested functions inside constructors" },
              super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class: { code: 2338, category: ts.DiagnosticCategory.Error, key: "'super' property access is permitted only in a constructor, member function, or member accessor of a derived class" },
              Property_0_does_not_exist_on_type_1: { code: 2339, category: ts.DiagnosticCategory.Error, key: "Property '{0}' does not exist on type '{1}'." },
              Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword: { code: 2340, category: ts.DiagnosticCategory.Error, key: "Only public and protected methods of the base class are accessible via the 'super' keyword" },
              Property_0_is_private_and_only_accessible_within_class_1: { code: 2341, category: ts.DiagnosticCategory.Error, key: "Property '{0}' is private and only accessible within class '{1}'." },
              An_index_expression_argument_must_be_of_type_string_number_symbol_or_any: { code: 2342, category: ts.DiagnosticCategory.Error, key: "An index expression argument must be of type 'string', 'number', 'symbol, or 'any'." },
              Type_0_does_not_satisfy_the_constraint_1: { code: 2344, category: ts.DiagnosticCategory.Error, key: "Type '{0}' does not satisfy the constraint '{1}'." },
              Argument_of_type_0_is_not_assignable_to_parameter_of_type_1: { code: 2345, category: ts.DiagnosticCategory.Error, key: "Argument of type '{0}' is not assignable to parameter of type '{1}'." },
              Supplied_parameters_do_not_match_any_signature_of_call_target: { code: 2346, category: ts.DiagnosticCategory.Error, key: "Supplied parameters do not match any signature of call target." },
              Untyped_function_calls_may_not_accept_type_arguments: { code: 2347, category: ts.DiagnosticCategory.Error, key: "Untyped function calls may not accept type arguments." },
              Value_of_type_0_is_not_callable_Did_you_mean_to_include_new: { code: 2348, category: ts.DiagnosticCategory.Error, key: "Value of type '{0}' is not callable. Did you mean to include 'new'?" },
              Cannot_invoke_an_expression_whose_type_lacks_a_call_signature: { code: 2349, category: ts.DiagnosticCategory.Error, key: "Cannot invoke an expression whose type lacks a call signature." },
              Only_a_void_function_can_be_called_with_the_new_keyword: { code: 2350, category: ts.DiagnosticCategory.Error, key: "Only a void function can be called with the 'new' keyword." },
              Cannot_use_new_with_an_expression_whose_type_lacks_a_call_or_construct_signature: { code: 2351, category: ts.DiagnosticCategory.Error, key: "Cannot use 'new' with an expression whose type lacks a call or construct signature." },
              Neither_type_0_nor_type_1_is_assignable_to_the_other: { code: 2352, category: ts.DiagnosticCategory.Error, key: "Neither type '{0}' nor type '{1}' is assignable to the other." },
              No_best_common_type_exists_among_return_expressions: { code: 2354, category: ts.DiagnosticCategory.Error, key: "No best common type exists among return expressions." },
              A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value_or_consist_of_a_single_throw_statement: { code: 2355, category: ts.DiagnosticCategory.Error, key: "A function whose declared type is neither 'void' nor 'any' must return a value or consist of a single 'throw' statement." },
              An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type: { code: 2356, category: ts.DiagnosticCategory.Error, key: "An arithmetic operand must be of type 'any', 'number' or an enum type." },
              The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_property_or_indexer: { code: 2357, category: ts.DiagnosticCategory.Error, key: "The operand of an increment or decrement operator must be a variable, property or indexer." },
              The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: { code: 2358, category: ts.DiagnosticCategory.Error, key: "The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter." },
              The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type: { code: 2359, category: ts.DiagnosticCategory.Error, key: "The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type." },
              The_left_hand_side_of_an_in_expression_must_be_of_type_any_string_number_or_symbol: { code: 2360, category: ts.DiagnosticCategory.Error, key: "The left-hand side of an 'in' expression must be of type 'any', 'string', 'number', or 'symbol'." },
              The_right_hand_side_of_an_in_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: { code: 2361, category: ts.DiagnosticCategory.Error, key: "The right-hand side of an 'in' expression must be of type 'any', an object type or a type parameter" },
              The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type: { code: 2362, category: ts.DiagnosticCategory.Error, key: "The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type." },
              The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type: { code: 2363, category: ts.DiagnosticCategory.Error, key: "The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type." },
              Invalid_left_hand_side_of_assignment_expression: { code: 2364, category: ts.DiagnosticCategory.Error, key: "Invalid left-hand side of assignment expression." },
              Operator_0_cannot_be_applied_to_types_1_and_2: { code: 2365, category: ts.DiagnosticCategory.Error, key: "Operator '{0}' cannot be applied to types '{1}' and '{2}'." },
              Type_parameter_name_cannot_be_0: { code: 2368, category: ts.DiagnosticCategory.Error, key: "Type parameter name cannot be '{0}'" },
              A_parameter_property_is_only_allowed_in_a_constructor_implementation: { code: 2369, category: ts.DiagnosticCategory.Error, key: "A parameter property is only allowed in a constructor implementation." },
              A_rest_parameter_must_be_of_an_array_type: { code: 2370, category: ts.DiagnosticCategory.Error, key: "A rest parameter must be of an array type." },
              A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation: { code: 2371, category: ts.DiagnosticCategory.Error, key: "A parameter initializer is only allowed in a function or constructor implementation." },
              Parameter_0_cannot_be_referenced_in_its_initializer: { code: 2372, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' cannot be referenced in its initializer." },
              Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it: { code: 2373, category: ts.DiagnosticCategory.Error, key: "Initializer of parameter '{0}' cannot reference identifier '{1}' declared after it." },
              Duplicate_string_index_signature: { code: 2374, category: ts.DiagnosticCategory.Error, key: "Duplicate string index signature." },
              Duplicate_number_index_signature: { code: 2375, category: ts.DiagnosticCategory.Error, key: "Duplicate number index signature." },
              A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_properties_or_has_parameter_properties: { code: 2376, category: ts.DiagnosticCategory.Error, key: "A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties." },
              Constructors_for_derived_classes_must_contain_a_super_call: { code: 2377, category: ts.DiagnosticCategory.Error, key: "Constructors for derived classes must contain a 'super' call." },
              A_get_accessor_must_return_a_value_or_consist_of_a_single_throw_statement: { code: 2378, category: ts.DiagnosticCategory.Error, key: "A 'get' accessor must return a value or consist of a single 'throw' statement." },
              Getter_and_setter_accessors_do_not_agree_in_visibility: { code: 2379, category: ts.DiagnosticCategory.Error, key: "Getter and setter accessors do not agree in visibility." },
              get_and_set_accessor_must_have_the_same_type: { code: 2380, category: ts.DiagnosticCategory.Error, key: "'get' and 'set' accessor must have the same type." },
              A_signature_with_an_implementation_cannot_use_a_string_literal_type: { code: 2381, category: ts.DiagnosticCategory.Error, key: "A signature with an implementation cannot use a string literal type." },
              Specialized_overload_signature_is_not_assignable_to_any_non_specialized_signature: { code: 2382, category: ts.DiagnosticCategory.Error, key: "Specialized overload signature is not assignable to any non-specialized signature." },
              Overload_signatures_must_all_be_exported_or_not_exported: { code: 2383, category: ts.DiagnosticCategory.Error, key: "Overload signatures must all be exported or not exported." },
              Overload_signatures_must_all_be_ambient_or_non_ambient: { code: 2384, category: ts.DiagnosticCategory.Error, key: "Overload signatures must all be ambient or non-ambient." },
              Overload_signatures_must_all_be_public_private_or_protected: { code: 2385, category: ts.DiagnosticCategory.Error, key: "Overload signatures must all be public, private or protected." },
              Overload_signatures_must_all_be_optional_or_required: { code: 2386, category: ts.DiagnosticCategory.Error, key: "Overload signatures must all be optional or required." },
              Function_overload_must_be_static: { code: 2387, category: ts.DiagnosticCategory.Error, key: "Function overload must be static." },
              Function_overload_must_not_be_static: { code: 2388, category: ts.DiagnosticCategory.Error, key: "Function overload must not be static." },
              Function_implementation_name_must_be_0: { code: 2389, category: ts.DiagnosticCategory.Error, key: "Function implementation name must be '{0}'." },
              Constructor_implementation_is_missing: { code: 2390, category: ts.DiagnosticCategory.Error, key: "Constructor implementation is missing." },
              Function_implementation_is_missing_or_not_immediately_following_the_declaration: { code: 2391, category: ts.DiagnosticCategory.Error, key: "Function implementation is missing or not immediately following the declaration." },
              Multiple_constructor_implementations_are_not_allowed: { code: 2392, category: ts.DiagnosticCategory.Error, key: "Multiple constructor implementations are not allowed." },
              Duplicate_function_implementation: { code: 2393, category: ts.DiagnosticCategory.Error, key: "Duplicate function implementation." },
              Overload_signature_is_not_compatible_with_function_implementation: { code: 2394, category: ts.DiagnosticCategory.Error, key: "Overload signature is not compatible with function implementation." },
              Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local: { code: 2395, category: ts.DiagnosticCategory.Error, key: "Individual declarations in merged declaration {0} must be all exported or all local." },
              Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters: { code: 2396, category: ts.DiagnosticCategory.Error, key: "Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters." },
              Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference: { code: 2399, category: ts.DiagnosticCategory.Error, key: "Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference." },
              Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference: { code: 2400, category: ts.DiagnosticCategory.Error, key: "Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference." },
              Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference: { code: 2401, category: ts.DiagnosticCategory.Error, key: "Duplicate identifier '_super'. Compiler uses '_super' to capture base class reference." },
              Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference: { code: 2402, category: ts.DiagnosticCategory.Error, key: "Expression resolves to '_super' that compiler uses to capture base class reference." },
              Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2: { code: 2403, category: ts.DiagnosticCategory.Error, key: "Subsequent variable declarations must have the same type.  Variable '{0}' must be of type '{1}', but here has type '{2}'." },
              The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation: { code: 2404, category: ts.DiagnosticCategory.Error, key: "The left-hand side of a 'for...in' statement cannot use a type annotation." },
              The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any: { code: 2405, category: ts.DiagnosticCategory.Error, key: "The left-hand side of a 'for...in' statement must be of type 'string' or 'any'." },
              Invalid_left_hand_side_in_for_in_statement: { code: 2406, category: ts.DiagnosticCategory.Error, key: "Invalid left-hand side in 'for...in' statement." },
              The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter: { code: 2407, category: ts.DiagnosticCategory.Error, key: "The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter." },
              Setters_cannot_return_a_value: { code: 2408, category: ts.DiagnosticCategory.Error, key: "Setters cannot return a value." },
              Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class: { code: 2409, category: ts.DiagnosticCategory.Error, key: "Return type of constructor signature must be assignable to the instance type of the class" },
              All_symbols_within_a_with_block_will_be_resolved_to_any: { code: 2410, category: ts.DiagnosticCategory.Error, key: "All symbols within a 'with' block will be resolved to 'any'." },
              Property_0_of_type_1_is_not_assignable_to_string_index_type_2: { code: 2411, category: ts.DiagnosticCategory.Error, key: "Property '{0}' of type '{1}' is not assignable to string index type '{2}'." },
              Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2: { code: 2412, category: ts.DiagnosticCategory.Error, key: "Property '{0}' of type '{1}' is not assignable to numeric index type '{2}'." },
              Numeric_index_type_0_is_not_assignable_to_string_index_type_1: { code: 2413, category: ts.DiagnosticCategory.Error, key: "Numeric index type '{0}' is not assignable to string index type '{1}'." },
              Class_name_cannot_be_0: { code: 2414, category: ts.DiagnosticCategory.Error, key: "Class name cannot be '{0}'" },
              Class_0_incorrectly_extends_base_class_1: { code: 2415, category: ts.DiagnosticCategory.Error, key: "Class '{0}' incorrectly extends base class '{1}'." },
              Class_static_side_0_incorrectly_extends_base_class_static_side_1: { code: 2417, category: ts.DiagnosticCategory.Error, key: "Class static side '{0}' incorrectly extends base class static side '{1}'." },
              Type_name_0_in_extends_clause_does_not_reference_constructor_function_for_0: { code: 2419, category: ts.DiagnosticCategory.Error, key: "Type name '{0}' in extends clause does not reference constructor function for '{0}'." },
              Class_0_incorrectly_implements_interface_1: { code: 2420, category: ts.DiagnosticCategory.Error, key: "Class '{0}' incorrectly implements interface '{1}'." },
              A_class_may_only_implement_another_class_or_interface: { code: 2422, category: ts.DiagnosticCategory.Error, key: "A class may only implement another class or interface." },
              Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor: { code: 2423, category: ts.DiagnosticCategory.Error, key: "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor." },
              Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_property: { code: 2424, category: ts.DiagnosticCategory.Error, key: "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member property." },
              Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function: { code: 2425, category: ts.DiagnosticCategory.Error, key: "Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function." },
              Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function: { code: 2426, category: ts.DiagnosticCategory.Error, key: "Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function." },
              Interface_name_cannot_be_0: { code: 2427, category: ts.DiagnosticCategory.Error, key: "Interface name cannot be '{0}'" },
              All_declarations_of_an_interface_must_have_identical_type_parameters: { code: 2428, category: ts.DiagnosticCategory.Error, key: "All declarations of an interface must have identical type parameters." },
              Interface_0_incorrectly_extends_interface_1: { code: 2430, category: ts.DiagnosticCategory.Error, key: "Interface '{0}' incorrectly extends interface '{1}'." },
              Enum_name_cannot_be_0: { code: 2431, category: ts.DiagnosticCategory.Error, key: "Enum name cannot be '{0}'" },
              In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element: { code: 2432, category: ts.DiagnosticCategory.Error, key: "In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element." },
              A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged: { code: 2433, category: ts.DiagnosticCategory.Error, key: "A namespace declaration cannot be in a different file from a class or function with which it is merged" },
              A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged: { code: 2434, category: ts.DiagnosticCategory.Error, key: "A namespace declaration cannot be located prior to a class or function with which it is merged" },
              Ambient_modules_cannot_be_nested_in_other_modules: { code: 2435, category: ts.DiagnosticCategory.Error, key: "Ambient modules cannot be nested in other modules." },
              Ambient_module_declaration_cannot_specify_relative_module_name: { code: 2436, category: ts.DiagnosticCategory.Error, key: "Ambient module declaration cannot specify relative module name." },
              Module_0_is_hidden_by_a_local_declaration_with_the_same_name: { code: 2437, category: ts.DiagnosticCategory.Error, key: "Module '{0}' is hidden by a local declaration with the same name" },
              Import_name_cannot_be_0: { code: 2438, category: ts.DiagnosticCategory.Error, key: "Import name cannot be '{0}'" },
              Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name: { code: 2439, category: ts.DiagnosticCategory.Error, key: "Import or export declaration in an ambient module declaration cannot reference module through relative module name." },
              Import_declaration_conflicts_with_local_declaration_of_0: { code: 2440, category: ts.DiagnosticCategory.Error, key: "Import declaration conflicts with local declaration of '{0}'" },
              Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module: { code: 2441, category: ts.DiagnosticCategory.Error, key: "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module." },
              Types_have_separate_declarations_of_a_private_property_0: { code: 2442, category: ts.DiagnosticCategory.Error, key: "Types have separate declarations of a private property '{0}'." },
              Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2: { code: 2443, category: ts.DiagnosticCategory.Error, key: "Property '{0}' is protected but type '{1}' is not a class derived from '{2}'." },
              Property_0_is_protected_in_type_1_but_public_in_type_2: { code: 2444, category: ts.DiagnosticCategory.Error, key: "Property '{0}' is protected in type '{1}' but public in type '{2}'." },
              Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses: { code: 2445, category: ts.DiagnosticCategory.Error, key: "Property '{0}' is protected and only accessible within class '{1}' and its subclasses." },
              Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1: { code: 2446, category: ts.DiagnosticCategory.Error, key: "Property '{0}' is protected and only accessible through an instance of class '{1}'." },
              The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead: { code: 2447, category: ts.DiagnosticCategory.Error, key: "The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead." },
              Block_scoped_variable_0_used_before_its_declaration: { code: 2448, category: ts.DiagnosticCategory.Error, key: "Block-scoped variable '{0}' used before its declaration." },
              The_operand_of_an_increment_or_decrement_operator_cannot_be_a_constant: { code: 2449, category: ts.DiagnosticCategory.Error, key: "The operand of an increment or decrement operator cannot be a constant." },
              Left_hand_side_of_assignment_expression_cannot_be_a_constant: { code: 2450, category: ts.DiagnosticCategory.Error, key: "Left-hand side of assignment expression cannot be a constant." },
              Cannot_redeclare_block_scoped_variable_0: { code: 2451, category: ts.DiagnosticCategory.Error, key: "Cannot redeclare block-scoped variable '{0}'." },
              An_enum_member_cannot_have_a_numeric_name: { code: 2452, category: ts.DiagnosticCategory.Error, key: "An enum member cannot have a numeric name." },
              The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly: { code: 2453, category: ts.DiagnosticCategory.Error, key: "The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly." },
              Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0: { code: 2455, category: ts.DiagnosticCategory.Error, key: "Type argument candidate '{1}' is not a valid type argument because it is not a supertype of candidate '{0}'." },
              Type_alias_0_circularly_references_itself: { code: 2456, category: ts.DiagnosticCategory.Error, key: "Type alias '{0}' circularly references itself." },
              Type_alias_name_cannot_be_0: { code: 2457, category: ts.DiagnosticCategory.Error, key: "Type alias name cannot be '{0}'" },
              An_AMD_module_cannot_have_multiple_name_assignments: { code: 2458, category: ts.DiagnosticCategory.Error, key: "An AMD module cannot have multiple name assignments." },
              Type_0_has_no_property_1_and_no_string_index_signature: { code: 2459, category: ts.DiagnosticCategory.Error, key: "Type '{0}' has no property '{1}' and no string index signature." },
              Type_0_has_no_property_1: { code: 2460, category: ts.DiagnosticCategory.Error, key: "Type '{0}' has no property '{1}'." },
              Type_0_is_not_an_array_type: { code: 2461, category: ts.DiagnosticCategory.Error, key: "Type '{0}' is not an array type." },
              A_rest_element_must_be_last_in_an_array_destructuring_pattern: { code: 2462, category: ts.DiagnosticCategory.Error, key: "A rest element must be last in an array destructuring pattern" },
              A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature: { code: 2463, category: ts.DiagnosticCategory.Error, key: "A binding pattern parameter cannot be optional in an implementation signature." },
              A_computed_property_name_must_be_of_type_string_number_symbol_or_any: { code: 2464, category: ts.DiagnosticCategory.Error, key: "A computed property name must be of type 'string', 'number', 'symbol', or 'any'." },
              this_cannot_be_referenced_in_a_computed_property_name: { code: 2465, category: ts.DiagnosticCategory.Error, key: "'this' cannot be referenced in a computed property name." },
              super_cannot_be_referenced_in_a_computed_property_name: { code: 2466, category: ts.DiagnosticCategory.Error, key: "'super' cannot be referenced in a computed property name." },
              A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type: { code: 2467, category: ts.DiagnosticCategory.Error, key: "A computed property name cannot reference a type parameter from its containing type." },
              Cannot_find_global_value_0: { code: 2468, category: ts.DiagnosticCategory.Error, key: "Cannot find global value '{0}'." },
              The_0_operator_cannot_be_applied_to_type_symbol: { code: 2469, category: ts.DiagnosticCategory.Error, key: "The '{0}' operator cannot be applied to type 'symbol'." },
              Symbol_reference_does_not_refer_to_the_global_Symbol_constructor_object: { code: 2470, category: ts.DiagnosticCategory.Error, key: "'Symbol' reference does not refer to the global Symbol constructor object." },
              A_computed_property_name_of_the_form_0_must_be_of_type_symbol: { code: 2471, category: ts.DiagnosticCategory.Error, key: "A computed property name of the form '{0}' must be of type 'symbol'." },
              Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_6_and_higher: { code: 2472, category: ts.DiagnosticCategory.Error, key: "Spread operator in 'new' expressions is only available when targeting ECMAScript 6 and higher." },
              Enum_declarations_must_all_be_const_or_non_const: { code: 2473, category: ts.DiagnosticCategory.Error, key: "Enum declarations must all be const or non-const." },
              In_const_enum_declarations_member_initializer_must_be_constant_expression: { code: 2474, category: ts.DiagnosticCategory.Error, key: "In 'const' enum declarations member initializer must be constant expression." },
              const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment: { code: 2475, category: ts.DiagnosticCategory.Error, key: "'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment." },
              A_const_enum_member_can_only_be_accessed_using_a_string_literal: { code: 2476, category: ts.DiagnosticCategory.Error, key: "A const enum member can only be accessed using a string literal." },
              const_enum_member_initializer_was_evaluated_to_a_non_finite_value: { code: 2477, category: ts.DiagnosticCategory.Error, key: "'const' enum member initializer was evaluated to a non-finite value." },
              const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN: { code: 2478, category: ts.DiagnosticCategory.Error, key: "'const' enum member initializer was evaluated to disallowed value 'NaN'." },
              Property_0_does_not_exist_on_const_enum_1: { code: 2479, category: ts.DiagnosticCategory.Error, key: "Property '{0}' does not exist on 'const' enum '{1}'." },
              let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations: { code: 2480, category: ts.DiagnosticCategory.Error, key: "'let' is not allowed to be used as a name in 'let' or 'const' declarations." },
              Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1: { code: 2481, category: ts.DiagnosticCategory.Error, key: "Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'." },
              The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation: { code: 2483, category: ts.DiagnosticCategory.Error, key: "The left-hand side of a 'for...of' statement cannot use a type annotation." },
              Export_declaration_conflicts_with_exported_declaration_of_0: { code: 2484, category: ts.DiagnosticCategory.Error, key: "Export declaration conflicts with exported declaration of '{0}'" },
              The_left_hand_side_of_a_for_of_statement_cannot_be_a_previously_defined_constant: { code: 2485, category: ts.DiagnosticCategory.Error, key: "The left-hand side of a 'for...of' statement cannot be a previously defined constant." },
              The_left_hand_side_of_a_for_in_statement_cannot_be_a_previously_defined_constant: { code: 2486, category: ts.DiagnosticCategory.Error, key: "The left-hand side of a 'for...in' statement cannot be a previously defined constant." },
              Invalid_left_hand_side_in_for_of_statement: { code: 2487, category: ts.DiagnosticCategory.Error, key: "Invalid left-hand side in 'for...of' statement." },
              Type_must_have_a_Symbol_iterator_method_that_returns_an_iterator: { code: 2488, category: ts.DiagnosticCategory.Error, key: "Type must have a '[Symbol.iterator]()' method that returns an iterator." },
              An_iterator_must_have_a_next_method: { code: 2489, category: ts.DiagnosticCategory.Error, key: "An iterator must have a 'next()' method." },
              The_type_returned_by_the_next_method_of_an_iterator_must_have_a_value_property: { code: 2490, category: ts.DiagnosticCategory.Error, key: "The type returned by the 'next()' method of an iterator must have a 'value' property." },
              The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern: { code: 2491, category: ts.DiagnosticCategory.Error, key: "The left-hand side of a 'for...in' statement cannot be a destructuring pattern." },
              Cannot_redeclare_identifier_0_in_catch_clause: { code: 2492, category: ts.DiagnosticCategory.Error, key: "Cannot redeclare identifier '{0}' in catch clause" },
              Tuple_type_0_with_length_1_cannot_be_assigned_to_tuple_with_length_2: { code: 2493, category: ts.DiagnosticCategory.Error, key: "Tuple type '{0}' with length '{1}' cannot be assigned to tuple with length '{2}'." },
              Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher: { code: 2494, category: ts.DiagnosticCategory.Error, key: "Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher." },
              Type_0_is_not_an_array_type_or_a_string_type: { code: 2495, category: ts.DiagnosticCategory.Error, key: "Type '{0}' is not an array type or a string type." },
              The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_standard_function_expression: { code: 2496, category: ts.DiagnosticCategory.Error, key: "The 'arguments' object cannot be referenced in an arrow function in ES3 and ES5. Consider using a standard function expression." },
              Module_0_resolves_to_a_non_module_entity_and_cannot_be_imported_using_this_construct: { code: 2497, category: ts.DiagnosticCategory.Error, key: "Module '{0}' resolves to a non-module entity and cannot be imported using this construct." },
              Module_0_uses_export_and_cannot_be_used_with_export_Asterisk: { code: 2498, category: ts.DiagnosticCategory.Error, key: "Module '{0}' uses 'export =' and cannot be used with 'export *'." },
              An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments: { code: 2499, category: ts.DiagnosticCategory.Error, key: "An interface can only extend an identifier/qualified-name with optional type arguments." },
              A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments: { code: 2500, category: ts.DiagnosticCategory.Error, key: "A class can only implement an identifier/qualified-name with optional type arguments." },
              A_rest_element_cannot_contain_a_binding_pattern: { code: 2501, category: ts.DiagnosticCategory.Error, key: "A rest element cannot contain a binding pattern." },
              _0_is_referenced_directly_or_indirectly_in_its_own_type_annotation: { code: 2502, category: ts.DiagnosticCategory.Error, key: "'{0}' is referenced directly or indirectly in its own type annotation." },
              Cannot_find_namespace_0: { code: 2503, category: ts.DiagnosticCategory.Error, key: "Cannot find namespace '{0}'." },
              Import_declaration_0_is_using_private_name_1: { code: 4000, category: ts.DiagnosticCategory.Error, key: "Import declaration '{0}' is using private name '{1}'." },
              Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { code: 4002, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of exported class has or is using private name '{1}'." },
              Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4004, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of exported interface has or is using private name '{1}'." },
              Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4006, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'." },
              Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4008, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'." },
              Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { code: 4010, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of public static method from exported class has or is using private name '{1}'." },
              Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: { code: 4012, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of public method from exported class has or is using private name '{1}'." },
              Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: { code: 4014, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of method from exported interface has or is using private name '{1}'." },
              Type_parameter_0_of_exported_function_has_or_is_using_private_name_1: { code: 4016, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of exported function has or is using private name '{1}'." },
              Implements_clause_of_exported_class_0_has_or_is_using_private_name_1: { code: 4019, category: ts.DiagnosticCategory.Error, key: "Implements clause of exported class '{0}' has or is using private name '{1}'." },
              Extends_clause_of_exported_class_0_has_or_is_using_private_name_1: { code: 4020, category: ts.DiagnosticCategory.Error, key: "Extends clause of exported class '{0}' has or is using private name '{1}'." },
              Extends_clause_of_exported_interface_0_has_or_is_using_private_name_1: { code: 4022, category: ts.DiagnosticCategory.Error, key: "Extends clause of exported interface '{0}' has or is using private name '{1}'." },
              Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4023, category: ts.DiagnosticCategory.Error, key: "Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named." },
              Exported_variable_0_has_or_is_using_name_1_from_private_module_2: { code: 4024, category: ts.DiagnosticCategory.Error, key: "Exported variable '{0}' has or is using name '{1}' from private module '{2}'." },
              Exported_variable_0_has_or_is_using_private_name_1: { code: 4025, category: ts.DiagnosticCategory.Error, key: "Exported variable '{0}' has or is using private name '{1}'." },
              Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4026, category: ts.DiagnosticCategory.Error, key: "Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named." },
              Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4027, category: ts.DiagnosticCategory.Error, key: "Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'." },
              Public_static_property_0_of_exported_class_has_or_is_using_private_name_1: { code: 4028, category: ts.DiagnosticCategory.Error, key: "Public static property '{0}' of exported class has or is using private name '{1}'." },
              Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4029, category: ts.DiagnosticCategory.Error, key: "Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named." },
              Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4030, category: ts.DiagnosticCategory.Error, key: "Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'." },
              Public_property_0_of_exported_class_has_or_is_using_private_name_1: { code: 4031, category: ts.DiagnosticCategory.Error, key: "Public property '{0}' of exported class has or is using private name '{1}'." },
              Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4032, category: ts.DiagnosticCategory.Error, key: "Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'." },
              Property_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4033, category: ts.DiagnosticCategory.Error, key: "Property '{0}' of exported interface has or is using private name '{1}'." },
              Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4034, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public static property setter from exported class has or is using name '{1}' from private module '{2}'." },
              Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_private_name_1: { code: 4035, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public static property setter from exported class has or is using private name '{1}'." },
              Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4036, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public property setter from exported class has or is using name '{1}' from private module '{2}'." },
              Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_private_name_1: { code: 4037, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public property setter from exported class has or is using private name '{1}'." },
              Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4038, category: ts.DiagnosticCategory.Error, key: "Return type of public static property getter from exported class has or is using name '{0}' from external module {1} but cannot be named." },
              Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4039, category: ts.DiagnosticCategory.Error, key: "Return type of public static property getter from exported class has or is using name '{0}' from private module '{1}'." },
              Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_private_name_0: { code: 4040, category: ts.DiagnosticCategory.Error, key: "Return type of public static property getter from exported class has or is using private name '{0}'." },
              Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4041, category: ts.DiagnosticCategory.Error, key: "Return type of public property getter from exported class has or is using name '{0}' from external module {1} but cannot be named." },
              Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4042, category: ts.DiagnosticCategory.Error, key: "Return type of public property getter from exported class has or is using name '{0}' from private module '{1}'." },
              Return_type_of_public_property_getter_from_exported_class_has_or_is_using_private_name_0: { code: 4043, category: ts.DiagnosticCategory.Error, key: "Return type of public property getter from exported class has or is using private name '{0}'." },
              Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4044, category: ts.DiagnosticCategory.Error, key: "Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'." },
              Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 4045, category: ts.DiagnosticCategory.Error, key: "Return type of constructor signature from exported interface has or is using private name '{0}'." },
              Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4046, category: ts.DiagnosticCategory.Error, key: "Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'." },
              Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 4047, category: ts.DiagnosticCategory.Error, key: "Return type of call signature from exported interface has or is using private name '{0}'." },
              Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4048, category: ts.DiagnosticCategory.Error, key: "Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'." },
              Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 4049, category: ts.DiagnosticCategory.Error, key: "Return type of index signature from exported interface has or is using private name '{0}'." },
              Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4050, category: ts.DiagnosticCategory.Error, key: "Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named." },
              Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4051, category: ts.DiagnosticCategory.Error, key: "Return type of public static method from exported class has or is using name '{0}' from private module '{1}'." },
              Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0: { code: 4052, category: ts.DiagnosticCategory.Error, key: "Return type of public static method from exported class has or is using private name '{0}'." },
              Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4053, category: ts.DiagnosticCategory.Error, key: "Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named." },
              Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4054, category: ts.DiagnosticCategory.Error, key: "Return type of public method from exported class has or is using name '{0}' from private module '{1}'." },
              Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0: { code: 4055, category: ts.DiagnosticCategory.Error, key: "Return type of public method from exported class has or is using private name '{0}'." },
              Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4056, category: ts.DiagnosticCategory.Error, key: "Return type of method from exported interface has or is using name '{0}' from private module '{1}'." },
              Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0: { code: 4057, category: ts.DiagnosticCategory.Error, key: "Return type of method from exported interface has or is using private name '{0}'." },
              Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4058, category: ts.DiagnosticCategory.Error, key: "Return type of exported function has or is using name '{0}' from external module {1} but cannot be named." },
              Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1: { code: 4059, category: ts.DiagnosticCategory.Error, key: "Return type of exported function has or is using name '{0}' from private module '{1}'." },
              Return_type_of_exported_function_has_or_is_using_private_name_0: { code: 4060, category: ts.DiagnosticCategory.Error, key: "Return type of exported function has or is using private name '{0}'." },
              Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4061, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named." },
              Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4062, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'." },
              Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1: { code: 4063, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of constructor from exported class has or is using private name '{1}'." },
              Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4064, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'." },
              Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4065, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'." },
              Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4066, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'." },
              Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4067, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of call signature from exported interface has or is using private name '{1}'." },
              Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4068, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named." },
              Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4069, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'." },
              Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { code: 4070, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public static method from exported class has or is using private name '{1}'." },
              Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4071, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named." },
              Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4072, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'." },
              Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: { code: 4073, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public method from exported class has or is using private name '{1}'." },
              Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4074, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'." },
              Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: { code: 4075, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of method from exported interface has or is using private name '{1}'." },
              Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4076, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named." },
              Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2: { code: 4077, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'." },
              Parameter_0_of_exported_function_has_or_is_using_private_name_1: { code: 4078, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of exported function has or is using private name '{1}'." },
              Exported_type_alias_0_has_or_is_using_private_name_1: { code: 4081, category: ts.DiagnosticCategory.Error, key: "Exported type alias '{0}' has or is using private name '{1}'." },
              Default_export_of_the_module_has_or_is_using_private_name_0: { code: 4082, category: ts.DiagnosticCategory.Error, key: "Default export of the module has or is using private name '{0}'." },
              Loop_contains_block_scoped_variable_0_referenced_by_a_function_in_the_loop_This_is_only_supported_in_ECMAScript_6_or_higher: { code: 4091, category: ts.DiagnosticCategory.Error, key: "Loop contains block-scoped variable '{0}' referenced by a function in the loop. This is only supported in ECMAScript 6 or higher." },
              The_current_host_does_not_support_the_0_option: { code: 5001, category: ts.DiagnosticCategory.Error, key: "The current host does not support the '{0}' option." },
              Cannot_find_the_common_subdirectory_path_for_the_input_files: { code: 5009, category: ts.DiagnosticCategory.Error, key: "Cannot find the common subdirectory path for the input files." },
              Cannot_read_file_0_Colon_1: { code: 5012, category: ts.DiagnosticCategory.Error, key: "Cannot read file '{0}': {1}" },
              Unsupported_file_encoding: { code: 5013, category: ts.DiagnosticCategory.Error, key: "Unsupported file encoding." },
              Failed_to_parse_file_0_Colon_1: { code: 5014, category: ts.DiagnosticCategory.Error, key: "Failed to parse file '{0}': {1}." },
              Unknown_compiler_option_0: { code: 5023, category: ts.DiagnosticCategory.Error, key: "Unknown compiler option '{0}'." },
              Compiler_option_0_requires_a_value_of_type_1: { code: 5024, category: ts.DiagnosticCategory.Error, key: "Compiler option '{0}' requires a value of type {1}." },
              Could_not_write_file_0_Colon_1: { code: 5033, category: ts.DiagnosticCategory.Error, key: "Could not write file '{0}': {1}" },
              Option_mapRoot_cannot_be_specified_without_specifying_sourceMap_option: { code: 5038, category: ts.DiagnosticCategory.Error, key: "Option 'mapRoot' cannot be specified without specifying 'sourceMap' option." },
              Option_sourceRoot_cannot_be_specified_without_specifying_sourceMap_option: { code: 5039, category: ts.DiagnosticCategory.Error, key: "Option 'sourceRoot' cannot be specified without specifying 'sourceMap' option." },
              Option_noEmit_cannot_be_specified_with_option_out_or_outDir: { code: 5040, category: ts.DiagnosticCategory.Error, key: "Option 'noEmit' cannot be specified with option 'out' or 'outDir'." },
              Option_noEmit_cannot_be_specified_with_option_declaration: { code: 5041, category: ts.DiagnosticCategory.Error, key: "Option 'noEmit' cannot be specified with option 'declaration'." },
              Option_project_cannot_be_mixed_with_source_files_on_a_command_line: { code: 5042, category: ts.DiagnosticCategory.Error, key: "Option 'project' cannot be mixed with source files on a command line." },
              Option_sourceMap_cannot_be_specified_with_option_separateCompilation: { code: 5043, category: ts.DiagnosticCategory.Error, key: "Option 'sourceMap' cannot be specified with option 'separateCompilation'." },
              Option_declaration_cannot_be_specified_with_option_separateCompilation: { code: 5044, category: ts.DiagnosticCategory.Error, key: "Option 'declaration' cannot be specified with option 'separateCompilation'." },
              Option_noEmitOnError_cannot_be_specified_with_option_separateCompilation: { code: 5045, category: ts.DiagnosticCategory.Error, key: "Option 'noEmitOnError' cannot be specified with option 'separateCompilation'." },
              Option_out_cannot_be_specified_with_option_separateCompilation: { code: 5046, category: ts.DiagnosticCategory.Error, key: "Option 'out' cannot be specified with option 'separateCompilation'." },
              Option_separateCompilation_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES6_or_higher: { code: 5047, category: ts.DiagnosticCategory.Error, key: "Option 'separateCompilation' can only be used when either option'--module' is provided or option 'target' is 'ES6' or higher." },
              Option_sourceMap_cannot_be_specified_with_option_inlineSourceMap: { code: 5048, category: ts.DiagnosticCategory.Error, key: "Option 'sourceMap' cannot be specified with option 'inlineSourceMap'." },
              Option_sourceRoot_cannot_be_specified_with_option_inlineSourceMap: { code: 5049, category: ts.DiagnosticCategory.Error, key: "Option 'sourceRoot' cannot be specified with option 'inlineSourceMap'." },
              Option_mapRoot_cannot_be_specified_with_option_inlineSourceMap: { code: 5050, category: ts.DiagnosticCategory.Error, key: "Option 'mapRoot' cannot be specified with option 'inlineSourceMap'." },
              Option_inlineSources_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided: { code: 5051, category: ts.DiagnosticCategory.Error, key: "Option 'inlineSources' can only be used when either option '--inlineSourceMap' or option '--sourceMap' is provided." },
              Concatenate_and_emit_output_to_single_file: { code: 6001, category: ts.DiagnosticCategory.Message, key: "Concatenate and emit output to single file." },
              Generates_corresponding_d_ts_file: { code: 6002, category: ts.DiagnosticCategory.Message, key: "Generates corresponding '.d.ts' file." },
              Specifies_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations: { code: 6003, category: ts.DiagnosticCategory.Message, key: "Specifies the location where debugger should locate map files instead of generated locations." },
              Specifies_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations: { code: 6004, category: ts.DiagnosticCategory.Message, key: "Specifies the location where debugger should locate TypeScript files instead of source locations." },
              Watch_input_files: { code: 6005, category: ts.DiagnosticCategory.Message, key: "Watch input files." },
              Redirect_output_structure_to_the_directory: { code: 6006, category: ts.DiagnosticCategory.Message, key: "Redirect output structure to the directory." },
              Do_not_erase_const_enum_declarations_in_generated_code: { code: 6007, category: ts.DiagnosticCategory.Message, key: "Do not erase const enum declarations in generated code." },
              Do_not_emit_outputs_if_any_errors_were_reported: { code: 6008, category: ts.DiagnosticCategory.Message, key: "Do not emit outputs if any errors were reported." },
              Do_not_emit_comments_to_output: { code: 6009, category: ts.DiagnosticCategory.Message, key: "Do not emit comments to output." },
              Do_not_emit_outputs: { code: 6010, category: ts.DiagnosticCategory.Message, key: "Do not emit outputs." },
              Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental: { code: 6015, category: ts.DiagnosticCategory.Message, key: "Specify ECMAScript target version: 'ES3' (default), 'ES5', or 'ES6' (experimental)" },
              Specify_module_code_generation_Colon_commonjs_amd_system_or_umd: { code: 6016, category: ts.DiagnosticCategory.Message, key: "Specify module code generation: 'commonjs', 'amd', 'system' or 'umd'" },
              Print_this_message: { code: 6017, category: ts.DiagnosticCategory.Message, key: "Print this message." },
              Print_the_compiler_s_version: { code: 6019, category: ts.DiagnosticCategory.Message, key: "Print the compiler's version." },
              Compile_the_project_in_the_given_directory: { code: 6020, category: ts.DiagnosticCategory.Message, key: "Compile the project in the given directory." },
              Syntax_Colon_0: { code: 6023, category: ts.DiagnosticCategory.Message, key: "Syntax: {0}" },
              options: { code: 6024, category: ts.DiagnosticCategory.Message, key: "options" },
              file: { code: 6025, category: ts.DiagnosticCategory.Message, key: "file" },
              Examples_Colon_0: { code: 6026, category: ts.DiagnosticCategory.Message, key: "Examples: {0}" },
              Options_Colon: { code: 6027, category: ts.DiagnosticCategory.Message, key: "Options:" },
              Version_0: { code: 6029, category: ts.DiagnosticCategory.Message, key: "Version {0}" },
              Insert_command_line_options_and_files_from_a_file: { code: 6030, category: ts.DiagnosticCategory.Message, key: "Insert command line options and files from a file." },
              File_change_detected_Starting_incremental_compilation: { code: 6032, category: ts.DiagnosticCategory.Message, key: "File change detected. Starting incremental compilation..." },
              KIND: { code: 6034, category: ts.DiagnosticCategory.Message, key: "KIND" },
              FILE: { code: 6035, category: ts.DiagnosticCategory.Message, key: "FILE" },
              VERSION: { code: 6036, category: ts.DiagnosticCategory.Message, key: "VERSION" },
              LOCATION: { code: 6037, category: ts.DiagnosticCategory.Message, key: "LOCATION" },
              DIRECTORY: { code: 6038, category: ts.DiagnosticCategory.Message, key: "DIRECTORY" },
              Compilation_complete_Watching_for_file_changes: { code: 6042, category: ts.DiagnosticCategory.Message, key: "Compilation complete. Watching for file changes." },
              Generates_corresponding_map_file: { code: 6043, category: ts.DiagnosticCategory.Message, key: "Generates corresponding '.map' file." },
              Compiler_option_0_expects_an_argument: { code: 6044, category: ts.DiagnosticCategory.Error, key: "Compiler option '{0}' expects an argument." },
              Unterminated_quoted_string_in_response_file_0: { code: 6045, category: ts.DiagnosticCategory.Error, key: "Unterminated quoted string in response file '{0}'." },
              Argument_for_module_option_must_be_commonjs_amd_system_or_umd: { code: 6046, category: ts.DiagnosticCategory.Error, key: "Argument for '--module' option must be 'commonjs', 'amd', 'system' or 'umd'." },
              Argument_for_target_option_must_be_ES3_ES5_or_ES6: { code: 6047, category: ts.DiagnosticCategory.Error, key: "Argument for '--target' option must be 'ES3', 'ES5', or 'ES6'." },
              Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1: { code: 6048, category: ts.DiagnosticCategory.Error, key: "Locale must be of the form <language> or <language>-<territory>. For example '{0}' or '{1}'." },
              Unsupported_locale_0: { code: 6049, category: ts.DiagnosticCategory.Error, key: "Unsupported locale '{0}'." },
              Unable_to_open_file_0: { code: 6050, category: ts.DiagnosticCategory.Error, key: "Unable to open file '{0}'." },
              Corrupted_locale_file_0: { code: 6051, category: ts.DiagnosticCategory.Error, key: "Corrupted locale file {0}." },
              Raise_error_on_expressions_and_declarations_with_an_implied_any_type: { code: 6052, category: ts.DiagnosticCategory.Message, key: "Raise error on expressions and declarations with an implied 'any' type." },
              File_0_not_found: { code: 6053, category: ts.DiagnosticCategory.Error, key: "File '{0}' not found." },
              File_0_has_unsupported_extension_The_only_supported_extensions_are_1: { code: 6054, category: ts.DiagnosticCategory.Error, key: "File '{0}' has unsupported extension. The only supported extensions are {1}." },
              Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures: { code: 6055, category: ts.DiagnosticCategory.Message, key: "Suppress noImplicitAny errors for indexing objects lacking index signatures." },
              Do_not_emit_declarations_for_code_that_has_an_internal_annotation: { code: 6056, category: ts.DiagnosticCategory.Message, key: "Do not emit declarations for code that has an '@internal' annotation." },
              Preserve_new_lines_when_emitting_code: { code: 6057, category: ts.DiagnosticCategory.Message, key: "Preserve new-lines when emitting code." },
              Specifies_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir: { code: 6058, category: ts.DiagnosticCategory.Message, key: "Specifies the root directory of input files. Use to control the output directory structure with --outDir." },
              File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files: { code: 6059, category: ts.DiagnosticCategory.Error, key: "File '{0}' is not under 'rootDir' '{1}'. 'rootDir' is expected to contain all source files." },
              Specifies_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix: { code: 6060, category: ts.DiagnosticCategory.Message, key: "Specifies the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix)." },
              NEWLINE: { code: 6061, category: ts.DiagnosticCategory.Message, key: "NEWLINE" },
              Argument_for_newLine_option_must_be_CRLF_or_LF: { code: 6062, category: ts.DiagnosticCategory.Error, key: "Argument for '--newLine' option must be 'CRLF' or 'LF'." },
              Variable_0_implicitly_has_an_1_type: { code: 7005, category: ts.DiagnosticCategory.Error, key: "Variable '{0}' implicitly has an '{1}' type." },
              Parameter_0_implicitly_has_an_1_type: { code: 7006, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' implicitly has an '{1}' type." },
              Member_0_implicitly_has_an_1_type: { code: 7008, category: ts.DiagnosticCategory.Error, key: "Member '{0}' implicitly has an '{1}' type." },
              new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type: { code: 7009, category: ts.DiagnosticCategory.Error, key: "'new' expression, whose target lacks a construct signature, implicitly has an 'any' type." },
              _0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type: { code: 7010, category: ts.DiagnosticCategory.Error, key: "'{0}', which lacks return-type annotation, implicitly has an '{1}' return type." },
              Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type: { code: 7011, category: ts.DiagnosticCategory.Error, key: "Function expression, which lacks return-type annotation, implicitly has an '{0}' return type." },
              Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: { code: 7013, category: ts.DiagnosticCategory.Error, key: "Construct signature, which lacks return-type annotation, implicitly has an 'any' return type." },
              Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_type_annotation: { code: 7016, category: ts.DiagnosticCategory.Error, key: "Property '{0}' implicitly has type 'any', because its 'set' accessor lacks a type annotation." },
              Index_signature_of_object_type_implicitly_has_an_any_type: { code: 7017, category: ts.DiagnosticCategory.Error, key: "Index signature of object type implicitly has an 'any' type." },
              Object_literal_s_property_0_implicitly_has_an_1_type: { code: 7018, category: ts.DiagnosticCategory.Error, key: "Object literal's property '{0}' implicitly has an '{1}' type." },
              Rest_parameter_0_implicitly_has_an_any_type: { code: 7019, category: ts.DiagnosticCategory.Error, key: "Rest parameter '{0}' implicitly has an 'any[]' type." },
              Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: { code: 7020, category: ts.DiagnosticCategory.Error, key: "Call signature, which lacks return-type annotation, implicitly has an 'any' return type." },
              _0_implicitly_has_type_any_because_it_is_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer: { code: 7022, category: ts.DiagnosticCategory.Error, key: "'{0}' implicitly has type 'any' because it is does not have a type annotation and is referenced directly or indirectly in its own initializer." },
              _0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: { code: 7023, category: ts.DiagnosticCategory.Error, key: "'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions." },
              Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: { code: 7024, category: ts.DiagnosticCategory.Error, key: "Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions." },
              You_cannot_rename_this_element: { code: 8000, category: ts.DiagnosticCategory.Error, key: "You cannot rename this element." },
              You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library: { code: 8001, category: ts.DiagnosticCategory.Error, key: "You cannot rename elements that are defined in the standard TypeScript library." },
              import_can_only_be_used_in_a_ts_file: { code: 8002, category: ts.DiagnosticCategory.Error, key: "'import ... =' can only be used in a .ts file." },
              export_can_only_be_used_in_a_ts_file: { code: 8003, category: ts.DiagnosticCategory.Error, key: "'export=' can only be used in a .ts file." },
              type_parameter_declarations_can_only_be_used_in_a_ts_file: { code: 8004, category: ts.DiagnosticCategory.Error, key: "'type parameter declarations' can only be used in a .ts file." },
              implements_clauses_can_only_be_used_in_a_ts_file: { code: 8005, category: ts.DiagnosticCategory.Error, key: "'implements clauses' can only be used in a .ts file." },
              interface_declarations_can_only_be_used_in_a_ts_file: { code: 8006, category: ts.DiagnosticCategory.Error, key: "'interface declarations' can only be used in a .ts file." },
              module_declarations_can_only_be_used_in_a_ts_file: { code: 8007, category: ts.DiagnosticCategory.Error, key: "'module declarations' can only be used in a .ts file." },
              type_aliases_can_only_be_used_in_a_ts_file: { code: 8008, category: ts.DiagnosticCategory.Error, key: "'type aliases' can only be used in a .ts file." },
              _0_can_only_be_used_in_a_ts_file: { code: 8009, category: ts.DiagnosticCategory.Error, key: "'{0}' can only be used in a .ts file." },
              types_can_only_be_used_in_a_ts_file: { code: 8010, category: ts.DiagnosticCategory.Error, key: "'types' can only be used in a .ts file." },
              type_arguments_can_only_be_used_in_a_ts_file: { code: 8011, category: ts.DiagnosticCategory.Error, key: "'type arguments' can only be used in a .ts file." },
              parameter_modifiers_can_only_be_used_in_a_ts_file: { code: 8012, category: ts.DiagnosticCategory.Error, key: "'parameter modifiers' can only be used in a .ts file." },
              can_only_be_used_in_a_ts_file: { code: 8013, category: ts.DiagnosticCategory.Error, key: "'?' can only be used in a .ts file." },
              property_declarations_can_only_be_used_in_a_ts_file: { code: 8014, category: ts.DiagnosticCategory.Error, key: "'property declarations' can only be used in a .ts file." },
              enum_declarations_can_only_be_used_in_a_ts_file: { code: 8015, category: ts.DiagnosticCategory.Error, key: "'enum declarations' can only be used in a .ts file." },
              type_assertion_expressions_can_only_be_used_in_a_ts_file: { code: 8016, category: ts.DiagnosticCategory.Error, key: "'type assertion expressions' can only be used in a .ts file." },
              decorators_can_only_be_used_in_a_ts_file: { code: 8017, category: ts.DiagnosticCategory.Error, key: "'decorators' can only be used in a .ts file." },
              yield_expressions_are_not_currently_supported: { code: 9000, category: ts.DiagnosticCategory.Error, key: "'yield' expressions are not currently supported." },
              Generators_are_not_currently_supported: { code: 9001, category: ts.DiagnosticCategory.Error, key: "Generators are not currently supported." },
              Only_identifiers_Slashqualified_names_with_optional_type_arguments_are_currently_supported_in_a_class_extends_clauses: { code: 9002, category: ts.DiagnosticCategory.Error, key: "Only identifiers/qualified-names with optional type arguments are currently supported in a class 'extends' clauses." },
              class_expressions_are_not_currently_supported: { code: 9003, category: ts.DiagnosticCategory.Error, key: "'class' expressions are not currently supported." },
              class_declarations_are_only_supported_directly_inside_a_module_or_as_a_top_level_declaration: { code: 9004, category: ts.DiagnosticCategory.Error, key: "'class' declarations are only supported directly inside a module or as a top level declaration." }
          };
      })(ts || (ts = {}));
      /// <reference path="core.ts"/>
      /// <reference path="diagnosticInformationMap.generated.ts"/>
      var ts;
      (function (ts) {
          var textToToken = {
              "any": 112,
              "as": 111,
              "boolean": 113,
              "break": 66,
              "case": 67,
              "catch": 68,
              "class": 69,
              "continue": 71,
              "const": 70,
              "constructor": 114,
              "debugger": 72,
              "declare": 115,
              "default": 73,
              "delete": 74,
              "do": 75,
              "else": 76,
              "enum": 77,
              "export": 78,
              "extends": 79,
              "false": 80,
              "finally": 81,
              "for": 82,
              "from": 125,
              "function": 83,
              "get": 116,
              "if": 84,
              "implements": 102,
              "import": 85,
              "in": 86,
              "instanceof": 87,
              "interface": 103,
              "let": 104,
              "module": 117,
              "namespace": 118,
              "new": 88,
              "null": 89,
              "number": 120,
              "package": 105,
              "private": 106,
              "protected": 107,
              "public": 108,
              "require": 119,
              "return": 90,
              "set": 121,
              "static": 109,
              "string": 122,
              "super": 91,
              "switch": 92,
              "symbol": 123,
              "this": 93,
              "throw": 94,
              "true": 95,
              "try": 96,
              "type": 124,
              "typeof": 97,
              "var": 98,
              "void": 99,
              "while": 100,
              "with": 101,
              "yield": 110,
              "of": 126,
              "{": 14,
              "}": 15,
              "(": 16,
              ")": 17,
              "[": 18,
              "]": 19,
              ".": 20,
              "...": 21,
              ";": 22,
              ",": 23,
              "<": 24,
              ">": 25,
              "<=": 26,
              ">=": 27,
              "==": 28,
              "!=": 29,
              "===": 30,
              "!==": 31,
              "=>": 32,
              "+": 33,
              "-": 34,
              "*": 35,
              "/": 36,
              "%": 37,
              "++": 38,
              "--": 39,
              "<<": 40,
              ">>": 41,
              ">>>": 42,
              "&": 43,
              "|": 44,
              "^": 45,
              "!": 46,
              "~": 47,
              "&&": 48,
              "||": 49,
              "?": 50,
              ":": 51,
              "=": 53,
              "+=": 54,
              "-=": 55,
              "*=": 56,
              "/=": 57,
              "%=": 58,
              "<<=": 59,
              ">>=": 60,
              ">>>=": 61,
              "&=": 62,
              "|=": 63,
              "^=": 64,
              "@": 52
          };
          var unicodeES3IdentifierStart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1610, 1649, 1747, 1749, 1749, 1765, 1766, 1786, 1788, 1808, 1808, 1810, 1836, 1920, 1957, 2309, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2784, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3294, 3294, 3296, 3297, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3424, 3425, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3805, 3840, 3840, 3904, 3911, 3913, 3946, 3976, 3979, 4096, 4129, 4131, 4135, 4137, 4138, 4176, 4181, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6067, 6176, 6263, 6272, 6312, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8319, 8319, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12346, 12353, 12436, 12445, 12446, 12449, 12538, 12540, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65138, 65140, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,];
          var unicodeES3IdentifierPart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 768, 846, 864, 866, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1155, 1158, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1441, 1443, 1465, 1467, 1469, 1471, 1471, 1473, 1474, 1476, 1476, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1621, 1632, 1641, 1648, 1747, 1749, 1756, 1759, 1768, 1770, 1773, 1776, 1788, 1808, 1836, 1840, 1866, 1920, 1968, 2305, 2307, 2309, 2361, 2364, 2381, 2384, 2388, 2392, 2403, 2406, 2415, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2492, 2494, 2500, 2503, 2504, 2507, 2509, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2562, 2562, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2649, 2652, 2654, 2654, 2662, 2676, 2689, 2691, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2784, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2876, 2883, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2913, 2918, 2927, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3031, 3031, 3047, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3134, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3168, 3169, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3262, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3297, 3302, 3311, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3390, 3395, 3398, 3400, 3402, 3405, 3415, 3415, 3424, 3425, 3430, 3439, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3805, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3946, 3953, 3972, 3974, 3979, 3984, 3991, 3993, 4028, 4038, 4038, 4096, 4129, 4131, 4135, 4137, 4138, 4140, 4146, 4150, 4153, 4160, 4169, 4176, 4185, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 4969, 4977, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6099, 6112, 6121, 6160, 6169, 6176, 6263, 6272, 6313, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8255, 8256, 8319, 8319, 8400, 8412, 8417, 8417, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12346, 12353, 12436, 12441, 12442, 12445, 12446, 12449, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65056, 65059, 65075, 65076, 65101, 65103, 65136, 65138, 65140, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65381, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,];
          var unicodeES5IdentifierStart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2208, 2208, 2210, 2220, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2423, 2425, 2431, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3133, 3160, 3161, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3294, 3294, 3296, 3297, 3313, 3314, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3424, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6000, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6263, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6428, 6480, 6509, 6512, 6516, 6528, 6571, 6593, 6599, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7401, 7404, 7406, 7409, 7413, 7414, 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11823, 11823, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42647, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43000, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43648, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,];
          var unicodeES5IdentifierPart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 768, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1155, 1159, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1488, 1514, 1520, 1522, 1552, 1562, 1568, 1641, 1646, 1747, 1749, 1756, 1759, 1768, 1770, 1788, 1791, 1791, 1808, 1866, 1869, 1969, 1984, 2037, 2042, 2042, 2048, 2093, 2112, 2139, 2208, 2208, 2210, 2220, 2276, 2302, 2304, 2403, 2406, 2415, 2417, 2423, 2425, 2431, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2561, 2563, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2652, 2654, 2654, 2662, 2677, 2689, 2691, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2787, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2915, 2918, 2927, 2929, 2929, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3024, 3024, 3031, 3031, 3046, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160, 3161, 3168, 3171, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3260, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3299, 3302, 3311, 3313, 3314, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3396, 3398, 3400, 3402, 3406, 3415, 3415, 3424, 3427, 3430, 3439, 3450, 3455, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3807, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3948, 3953, 3972, 3974, 3991, 3993, 4028, 4038, 4038, 4096, 4169, 4176, 4253, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4957, 4959, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5908, 5920, 5940, 5952, 5971, 5984, 5996, 5998, 6000, 6002, 6003, 6016, 6099, 6103, 6103, 6108, 6109, 6112, 6121, 6155, 6157, 6160, 6169, 6176, 6263, 6272, 6314, 6320, 6389, 6400, 6428, 6432, 6443, 6448, 6459, 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6617, 6656, 6683, 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6912, 6987, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241, 7245, 7293, 7376, 7378, 7380, 7414, 7424, 7654, 7676, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8204, 8205, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8400, 8412, 8417, 8417, 8421, 8432, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11647, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11744, 11775, 11823, 11823, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348, 12353, 12438, 12441, 12442, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42539, 42560, 42607, 42612, 42621, 42623, 42647, 42655, 42737, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43000, 43047, 43072, 43123, 43136, 43204, 43216, 43225, 43232, 43255, 43259, 43259, 43264, 43309, 43312, 43347, 43360, 43388, 43392, 43456, 43471, 43481, 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638, 43642, 43643, 43648, 43714, 43739, 43741, 43744, 43759, 43762, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44010, 44012, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65024, 65039, 65056, 65062, 65075, 65076, 65101, 65103, 65136, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,];
          function lookupInUnicodeMap(code, map) {
              if (code < map[0]) {
                  return false;
              }
              var lo = 0;
              var hi = map.length;
              var mid;
              while (lo + 1 < hi) {
                  mid = lo + (hi - lo) / 2;
                  mid -= mid % 2;
                  if (map[mid] <= code && code <= map[mid + 1]) {
                      return true;
                  }
                  if (code < map[mid]) {
                      hi = mid;
                  }
                  else {
                      lo = mid + 2;
                  }
              }
              return false;
          }
          function isUnicodeIdentifierStart(code, languageVersion) {
              return languageVersion >= 1 ?
                  lookupInUnicodeMap(code, unicodeES5IdentifierStart) :
                  lookupInUnicodeMap(code, unicodeES3IdentifierStart);
          }
          ts.isUnicodeIdentifierStart = isUnicodeIdentifierStart;
          function isUnicodeIdentifierPart(code, languageVersion) {
              return languageVersion >= 1 ?
                  lookupInUnicodeMap(code, unicodeES5IdentifierPart) :
                  lookupInUnicodeMap(code, unicodeES3IdentifierPart);
          }
          function makeReverseMap(source) {
              var result = [];
              for (var name_2 in source) {
                  if (source.hasOwnProperty(name_2)) {
                      result[source[name_2]] = name_2;
                  }
              }
              return result;
          }
          var tokenStrings = makeReverseMap(textToToken);
          function tokenToString(t) {
              return tokenStrings[t];
          }
          ts.tokenToString = tokenToString;
          function stringToToken(s) {
              return textToToken[s];
          }
          ts.stringToToken = stringToToken;
          function computeLineStarts(text) {
              var result = new Array();
              var pos = 0;
              var lineStart = 0;
              while (pos < text.length) {
                  var ch = text.charCodeAt(pos++);
                  switch (ch) {
                      case 13:
                          if (text.charCodeAt(pos) === 10) {
                              pos++;
                          }
                      case 10:
                          result.push(lineStart);
                          lineStart = pos;
                          break;
                      default:
                          if (ch > 127 && isLineBreak(ch)) {
                              result.push(lineStart);
                              lineStart = pos;
                          }
                          break;
                  }
              }
              result.push(lineStart);
              return result;
          }
          ts.computeLineStarts = computeLineStarts;
          function getPositionOfLineAndCharacter(sourceFile, line, character) {
              return computePositionOfLineAndCharacter(getLineStarts(sourceFile), line, character);
          }
          ts.getPositionOfLineAndCharacter = getPositionOfLineAndCharacter;
          function computePositionOfLineAndCharacter(lineStarts, line, character) {
              ts.Debug.assert(line >= 0 && line < lineStarts.length);
              return lineStarts[line] + character;
          }
          ts.computePositionOfLineAndCharacter = computePositionOfLineAndCharacter;
          function getLineStarts(sourceFile) {
              return sourceFile.lineMap || (sourceFile.lineMap = computeLineStarts(sourceFile.text));
          }
          ts.getLineStarts = getLineStarts;
          function computeLineAndCharacterOfPosition(lineStarts, position) {
              var lineNumber = ts.binarySearch(lineStarts, position);
              if (lineNumber < 0) {
                  lineNumber = ~lineNumber - 1;
              }
              return {
                  line: lineNumber,
                  character: position - lineStarts[lineNumber]
              };
          }
          ts.computeLineAndCharacterOfPosition = computeLineAndCharacterOfPosition;
          function getLineAndCharacterOfPosition(sourceFile, position) {
              return computeLineAndCharacterOfPosition(getLineStarts(sourceFile), position);
          }
          ts.getLineAndCharacterOfPosition = getLineAndCharacterOfPosition;
          var hasOwnProperty = Object.prototype.hasOwnProperty;
          function isWhiteSpace(ch) {
              return ch === 32 ||
                  ch === 9 ||
                  ch === 11 ||
                  ch === 12 ||
                  ch === 160 ||
                  ch === 133 ||
                  ch === 5760 ||
                  ch >= 8192 && ch <= 8203 ||
                  ch === 8239 ||
                  ch === 8287 ||
                  ch === 12288 ||
                  ch === 65279;
          }
          ts.isWhiteSpace = isWhiteSpace;
          function isLineBreak(ch) {
              // ES5 7.3:
              // The ECMAScript line terminator characters are listed in Table 3.
              //     Table 3: Line Terminator Characters
              //     Code Unit Value     Name                    Formal Name
              //     \u000A              Line Feed               <LF>
              //     \u000D              Carriage Return         <CR>
              //     \u2028              Line separator          <LS>
              //     \u2029              Paragraph separator     <PS>
              // Only the characters in Table 3 are treated as line terminators. Other new line or line 
              // breaking characters are treated as white space but not as line terminators. 
              return ch === 10 ||
                  ch === 13 ||
                  ch === 8232 ||
                  ch === 8233;
          }
          ts.isLineBreak = isLineBreak;
          function isDigit(ch) {
              return ch >= 48 && ch <= 57;
          }
          function isOctalDigit(ch) {
              return ch >= 48 && ch <= 55;
          }
          ts.isOctalDigit = isOctalDigit;
          function skipTrivia(text, pos, stopAfterLineBreak) {
              while (true) {
                  var ch = text.charCodeAt(pos);
                  switch (ch) {
                      case 13:
                          if (text.charCodeAt(pos + 1) === 10) {
                              pos++;
                          }
                      case 10:
                          pos++;
                          if (stopAfterLineBreak) {
                              return pos;
                          }
                          continue;
                      case 9:
                      case 11:
                      case 12:
                      case 32:
                          pos++;
                          continue;
                      case 47:
                          if (text.charCodeAt(pos + 1) === 47) {
                              pos += 2;
                              while (pos < text.length) {
                                  if (isLineBreak(text.charCodeAt(pos))) {
                                      break;
                                  }
                                  pos++;
                              }
                              continue;
                          }
                          if (text.charCodeAt(pos + 1) === 42) {
                              pos += 2;
                              while (pos < text.length) {
                                  if (text.charCodeAt(pos) === 42 && text.charCodeAt(pos + 1) === 47) {
                                      pos += 2;
                                      break;
                                  }
                                  pos++;
                              }
                              continue;
                          }
                          break;
                      case 60:
                      case 61:
                      case 62:
                          if (isConflictMarkerTrivia(text, pos)) {
                              pos = scanConflictMarkerTrivia(text, pos);
                              continue;
                          }
                          break;
                      default:
                          if (ch > 127 && (isWhiteSpace(ch) || isLineBreak(ch))) {
                              pos++;
                              continue;
                          }
                          break;
                  }
                  return pos;
              }
          }
          ts.skipTrivia = skipTrivia;
          var mergeConflictMarkerLength = "<<<<<<<".length;
          function isConflictMarkerTrivia(text, pos) {
              ts.Debug.assert(pos >= 0);
              if (pos === 0 || isLineBreak(text.charCodeAt(pos - 1))) {
                  var ch = text.charCodeAt(pos);
                  if ((pos + mergeConflictMarkerLength) < text.length) {
                      for (var i = 0, n = mergeConflictMarkerLength; i < n; i++) {
                          if (text.charCodeAt(pos + i) !== ch) {
                              return false;
                          }
                      }
                      return ch === 61 ||
                          text.charCodeAt(pos + mergeConflictMarkerLength) === 32;
                  }
              }
              return false;
          }
          function scanConflictMarkerTrivia(text, pos, error) {
              if (error) {
                  error(ts.Diagnostics.Merge_conflict_marker_encountered, mergeConflictMarkerLength);
              }
              var ch = text.charCodeAt(pos);
              var len = text.length;
              if (ch === 60 || ch === 62) {
                  while (pos < len && !isLineBreak(text.charCodeAt(pos))) {
                      pos++;
                  }
              }
              else {
                  ts.Debug.assert(ch === 61);
                  while (pos < len) {
                      var ch_1 = text.charCodeAt(pos);
                      if (ch_1 === 62 && isConflictMarkerTrivia(text, pos)) {
                          break;
                      }
                      pos++;
                  }
              }
              return pos;
          }
          function getCommentRanges(text, pos, trailing) {
              var result;
              var collecting = trailing || pos === 0;
              while (true) {
                  var ch = text.charCodeAt(pos);
                  switch (ch) {
                      case 13:
                          if (text.charCodeAt(pos + 1) === 10) {
                              pos++;
                          }
                      case 10:
                          pos++;
                          if (trailing) {
                              return result;
                          }
                          collecting = true;
                          if (result && result.length) {
                              ts.lastOrUndefined(result).hasTrailingNewLine = true;
                          }
                          continue;
                      case 9:
                      case 11:
                      case 12:
                      case 32:
                          pos++;
                          continue;
                      case 47:
                          var nextChar = text.charCodeAt(pos + 1);
                          var hasTrailingNewLine = false;
                          if (nextChar === 47 || nextChar === 42) {
                              var kind = nextChar === 47 ? 2 : 3;
                              var startPos = pos;
                              pos += 2;
                              if (nextChar === 47) {
                                  while (pos < text.length) {
                                      if (isLineBreak(text.charCodeAt(pos))) {
                                          hasTrailingNewLine = true;
                                          break;
                                      }
                                      pos++;
                                  }
                              }
                              else {
                                  while (pos < text.length) {
                                      if (text.charCodeAt(pos) === 42 && text.charCodeAt(pos + 1) === 47) {
                                          pos += 2;
                                          break;
                                      }
                                      pos++;
                                  }
                              }
                              if (collecting) {
                                  if (!result) {
                                      result = [];
                                  }
                                  result.push({ pos: startPos, end: pos, hasTrailingNewLine: hasTrailingNewLine, kind: kind });
                              }
                              continue;
                          }
                          break;
                      default:
                          if (ch > 127 && (isWhiteSpace(ch) || isLineBreak(ch))) {
                              if (result && result.length && isLineBreak(ch)) {
                                  ts.lastOrUndefined(result).hasTrailingNewLine = true;
                              }
                              pos++;
                              continue;
                          }
                          break;
                  }
                  return result;
              }
          }
          function getLeadingCommentRanges(text, pos) {
              return getCommentRanges(text, pos, false);
          }
          ts.getLeadingCommentRanges = getLeadingCommentRanges;
          function getTrailingCommentRanges(text, pos) {
              return getCommentRanges(text, pos, true);
          }
          ts.getTrailingCommentRanges = getTrailingCommentRanges;
          function isIdentifierStart(ch, languageVersion) {
              return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 ||
                  ch === 36 || ch === 95 ||
                  ch > 127 && isUnicodeIdentifierStart(ch, languageVersion);
          }
          ts.isIdentifierStart = isIdentifierStart;
          function isIdentifierPart(ch, languageVersion) {
              return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 ||
                  ch >= 48 && ch <= 57 || ch === 36 || ch === 95 ||
                  ch > 127 && isUnicodeIdentifierPart(ch, languageVersion);
          }
          ts.isIdentifierPart = isIdentifierPart;
          function createScanner(languageVersion, skipTrivia, text, onError, start, length) {
              var pos;
              var end;
              var startPos;
              var tokenPos;
              var token;
              var tokenValue;
              var precedingLineBreak;
              var hasExtendedUnicodeEscape;
              var tokenIsUnterminated;
              setText(text, start, length);
              return {
                  getStartPos: function () { return startPos; },
                  getTextPos: function () { return pos; },
                  getToken: function () { return token; },
                  getTokenPos: function () { return tokenPos; },
                  getTokenText: function () { return text.substring(tokenPos, pos); },
                  getTokenValue: function () { return tokenValue; },
                  hasExtendedUnicodeEscape: function () { return hasExtendedUnicodeEscape; },
                  hasPrecedingLineBreak: function () { return precedingLineBreak; },
                  isIdentifier: function () { return token === 65 || token > 101; },
                  isReservedWord: function () { return token >= 66 && token <= 101; },
                  isUnterminated: function () { return tokenIsUnterminated; },
                  reScanGreaterToken: reScanGreaterToken,
                  reScanSlashToken: reScanSlashToken,
                  reScanTemplateToken: reScanTemplateToken,
                  scan: scan,
                  setText: setText,
                  setScriptTarget: setScriptTarget,
                  setOnError: setOnError,
                  setTextPos: setTextPos,
                  tryScan: tryScan,
                  lookAhead: lookAhead
              };
              function error(message, length) {
                  if (onError) {
                      onError(message, length || 0);
                  }
              }
              function isIdentifierStart(ch) {
                  return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 ||
                      ch === 36 || ch === 95 ||
                      ch > 127 && isUnicodeIdentifierStart(ch, languageVersion);
              }
              function isIdentifierPart(ch) {
                  return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 ||
                      ch >= 48 && ch <= 57 || ch === 36 || ch === 95 ||
                      ch > 127 && isUnicodeIdentifierPart(ch, languageVersion);
              }
              function scanNumber() {
                  var start = pos;
                  while (isDigit(text.charCodeAt(pos)))
                      pos++;
                  if (text.charCodeAt(pos) === 46) {
                      pos++;
                      while (isDigit(text.charCodeAt(pos)))
                          pos++;
                  }
                  var end = pos;
                  if (text.charCodeAt(pos) === 69 || text.charCodeAt(pos) === 101) {
                      pos++;
                      if (text.charCodeAt(pos) === 43 || text.charCodeAt(pos) === 45)
                          pos++;
                      if (isDigit(text.charCodeAt(pos))) {
                          pos++;
                          while (isDigit(text.charCodeAt(pos)))
                              pos++;
                          end = pos;
                      }
                      else {
                          error(ts.Diagnostics.Digit_expected);
                      }
                  }
                  return +(text.substring(start, end));
              }
              function scanOctalDigits() {
                  var start = pos;
                  while (isOctalDigit(text.charCodeAt(pos))) {
                      pos++;
                  }
                  return +(text.substring(start, pos));
              }
              function scanExactNumberOfHexDigits(count) {
                  return scanHexDigits(count, false);
              }
              function scanMinimumNumberOfHexDigits(count) {
                  return scanHexDigits(count, true);
              }
              function scanHexDigits(minCount, scanAsManyAsPossible) {
                  var digits = 0;
                  var value = 0;
                  while (digits < minCount || scanAsManyAsPossible) {
                      var ch = text.charCodeAt(pos);
                      if (ch >= 48 && ch <= 57) {
                          value = value * 16 + ch - 48;
                      }
                      else if (ch >= 65 && ch <= 70) {
                          value = value * 16 + ch - 65 + 10;
                      }
                      else if (ch >= 97 && ch <= 102) {
                          value = value * 16 + ch - 97 + 10;
                      }
                      else {
                          break;
                      }
                      pos++;
                      digits++;
                  }
                  if (digits < minCount) {
                      value = -1;
                  }
                  return value;
              }
              function scanString() {
                  var quote = text.charCodeAt(pos++);
                  var result = "";
                  var start = pos;
                  while (true) {
                      if (pos >= end) {
                          result += text.substring(start, pos);
                          tokenIsUnterminated = true;
                          error(ts.Diagnostics.Unterminated_string_literal);
                          break;
                      }
                      var ch = text.charCodeAt(pos);
                      if (ch === quote) {
                          result += text.substring(start, pos);
                          pos++;
                          break;
                      }
                      if (ch === 92) {
                          result += text.substring(start, pos);
                          result += scanEscapeSequence();
                          start = pos;
                          continue;
                      }
                      if (isLineBreak(ch)) {
                          result += text.substring(start, pos);
                          tokenIsUnterminated = true;
                          error(ts.Diagnostics.Unterminated_string_literal);
                          break;
                      }
                      pos++;
                  }
                  return result;
              }
              function scanTemplateAndSetTokenValue() {
                  var startedWithBacktick = text.charCodeAt(pos) === 96;
                  pos++;
                  var start = pos;
                  var contents = "";
                  var resultingToken;
                  while (true) {
                      if (pos >= end) {
                          contents += text.substring(start, pos);
                          tokenIsUnterminated = true;
                          error(ts.Diagnostics.Unterminated_template_literal);
                          resultingToken = startedWithBacktick ? 10 : 13;
                          break;
                      }
                      var currChar = text.charCodeAt(pos);
                      if (currChar === 96) {
                          contents += text.substring(start, pos);
                          pos++;
                          resultingToken = startedWithBacktick ? 10 : 13;
                          break;
                      }
                      if (currChar === 36 && pos + 1 < end && text.charCodeAt(pos + 1) === 123) {
                          contents += text.substring(start, pos);
                          pos += 2;
                          resultingToken = startedWithBacktick ? 11 : 12;
                          break;
                      }
                      if (currChar === 92) {
                          contents += text.substring(start, pos);
                          contents += scanEscapeSequence();
                          start = pos;
                          continue;
                      }
                      if (currChar === 13) {
                          contents += text.substring(start, pos);
                          pos++;
                          if (pos < end && text.charCodeAt(pos) === 10) {
                              pos++;
                          }
                          contents += "\n";
                          start = pos;
                          continue;
                      }
                      pos++;
                  }
                  ts.Debug.assert(resultingToken !== undefined);
                  tokenValue = contents;
                  return resultingToken;
              }
              function scanEscapeSequence() {
                  pos++;
                  if (pos >= end) {
                      error(ts.Diagnostics.Unexpected_end_of_text);
                      return "";
                  }
                  var ch = text.charCodeAt(pos++);
                  switch (ch) {
                      case 48:
                          return "\0";
                      case 98:
                          return "\b";
                      case 116:
                          return "\t";
                      case 110:
                          return "\n";
                      case 118:
                          return "\v";
                      case 102:
                          return "\f";
                      case 114:
                          return "\r";
                      case 39:
                          return "\'";
                      case 34:
                          return "\"";
                      case 117:
                          if (pos < end && text.charCodeAt(pos) === 123) {
                              hasExtendedUnicodeEscape = true;
                              pos++;
                              return scanExtendedUnicodeEscape();
                          }
                          return scanHexadecimalEscape(4);
                      case 120:
                          return scanHexadecimalEscape(2);
                      case 13:
                          if (pos < end && text.charCodeAt(pos) === 10) {
                              pos++;
                          }
                      case 10:
                      case 8232:
                      case 8233:
                          return "";
                      default:
                          return String.fromCharCode(ch);
                  }
              }
              function scanHexadecimalEscape(numDigits) {
                  var escapedValue = scanExactNumberOfHexDigits(numDigits);
                  if (escapedValue >= 0) {
                      return String.fromCharCode(escapedValue);
                  }
                  else {
                      error(ts.Diagnostics.Hexadecimal_digit_expected);
                      return "";
                  }
              }
              function scanExtendedUnicodeEscape() {
                  var escapedValue = scanMinimumNumberOfHexDigits(1);
                  var isInvalidExtendedEscape = false;
                  if (escapedValue < 0) {
                      error(ts.Diagnostics.Hexadecimal_digit_expected);
                      isInvalidExtendedEscape = true;
                  }
                  else if (escapedValue > 0x10FFFF) {
                      error(ts.Diagnostics.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive);
                      isInvalidExtendedEscape = true;
                  }
                  if (pos >= end) {
                      error(ts.Diagnostics.Unexpected_end_of_text);
                      isInvalidExtendedEscape = true;
                  }
                  else if (text.charCodeAt(pos) == 125) {
                      pos++;
                  }
                  else {
                      error(ts.Diagnostics.Unterminated_Unicode_escape_sequence);
                      isInvalidExtendedEscape = true;
                  }
                  if (isInvalidExtendedEscape) {
                      return "";
                  }
                  return utf16EncodeAsString(escapedValue);
              }
              function utf16EncodeAsString(codePoint) {
                  ts.Debug.assert(0x0 <= codePoint && codePoint <= 0x10FFFF);
                  if (codePoint <= 65535) {
                      return String.fromCharCode(codePoint);
                  }
                  var codeUnit1 = Math.floor((codePoint - 65536) / 1024) + 0xD800;
                  var codeUnit2 = ((codePoint - 65536) % 1024) + 0xDC00;
                  return String.fromCharCode(codeUnit1, codeUnit2);
              }
              function peekUnicodeEscape() {
                  if (pos + 5 < end && text.charCodeAt(pos + 1) === 117) {
                      var start_1 = pos;
                      pos += 2;
                      var value = scanExactNumberOfHexDigits(4);
                      pos = start_1;
                      return value;
                  }
                  return -1;
              }
              function scanIdentifierParts() {
                  var result = "";
                  var start = pos;
                  while (pos < end) {
                      var ch = text.charCodeAt(pos);
                      if (isIdentifierPart(ch)) {
                          pos++;
                      }
                      else if (ch === 92) {
                          ch = peekUnicodeEscape();
                          if (!(ch >= 0 && isIdentifierPart(ch))) {
                              break;
                          }
                          result += text.substring(start, pos);
                          result += String.fromCharCode(ch);
                          pos += 6;
                          start = pos;
                      }
                      else {
                          break;
                      }
                  }
                  result += text.substring(start, pos);
                  return result;
              }
              function getIdentifierToken() {
                  var len = tokenValue.length;
                  if (len >= 2 && len <= 11) {
                      var ch = tokenValue.charCodeAt(0);
                      if (ch >= 97 && ch <= 122 && hasOwnProperty.call(textToToken, tokenValue)) {
                          return token = textToToken[tokenValue];
                      }
                  }
                  return token = 65;
              }
              function scanBinaryOrOctalDigits(base) {
                  ts.Debug.assert(base !== 2 || base !== 8, "Expected either base 2 or base 8");
                  var value = 0;
                  var numberOfDigits = 0;
                  while (true) {
                      var ch = text.charCodeAt(pos);
                      var valueOfCh = ch - 48;
                      if (!isDigit(ch) || valueOfCh >= base) {
                          break;
                      }
                      value = value * base + valueOfCh;
                      pos++;
                      numberOfDigits++;
                  }
                  if (numberOfDigits === 0) {
                      return -1;
                  }
                  return value;
              }
              function scan() {
                  startPos = pos;
                  hasExtendedUnicodeEscape = false;
                  precedingLineBreak = false;
                  tokenIsUnterminated = false;
                  while (true) {
                      tokenPos = pos;
                      if (pos >= end) {
                          return token = 1;
                      }
                      var ch = text.charCodeAt(pos);
                      switch (ch) {
                          case 10:
                          case 13:
                              precedingLineBreak = true;
                              if (skipTrivia) {
                                  pos++;
                                  continue;
                              }
                              else {
                                  if (ch === 13 && pos + 1 < end && text.charCodeAt(pos + 1) === 10) {
                                      pos += 2;
                                  }
                                  else {
                                      pos++;
                                  }
                                  return token = 4;
                              }
                          case 9:
                          case 11:
                          case 12:
                          case 32:
                              if (skipTrivia) {
                                  pos++;
                                  continue;
                              }
                              else {
                                  while (pos < end && isWhiteSpace(text.charCodeAt(pos))) {
                                      pos++;
                                  }
                                  return token = 5;
                              }
                          case 33:
                              if (text.charCodeAt(pos + 1) === 61) {
                                  if (text.charCodeAt(pos + 2) === 61) {
                                      return pos += 3, token = 31;
                                  }
                                  return pos += 2, token = 29;
                              }
                              return pos++, token = 46;
                          case 34:
                          case 39:
                              tokenValue = scanString();
                              return token = 8;
                          case 96:
                              return token = scanTemplateAndSetTokenValue();
                          case 37:
                              if (text.charCodeAt(pos + 1) === 61) {
                                  return pos += 2, token = 58;
                              }
                              return pos++, token = 37;
                          case 38:
                              if (text.charCodeAt(pos + 1) === 38) {
                                  return pos += 2, token = 48;
                              }
                              if (text.charCodeAt(pos + 1) === 61) {
                                  return pos += 2, token = 62;
                              }
                              return pos++, token = 43;
                          case 40:
                              return pos++, token = 16;
                          case 41:
                              return pos++, token = 17;
                          case 42:
                              if (text.charCodeAt(pos + 1) === 61) {
                                  return pos += 2, token = 56;
                              }
                              return pos++, token = 35;
                          case 43:
                              if (text.charCodeAt(pos + 1) === 43) {
                                  return pos += 2, token = 38;
                              }
                              if (text.charCodeAt(pos + 1) === 61) {
                                  return pos += 2, token = 54;
                              }
                              return pos++, token = 33;
                          case 44:
                              return pos++, token = 23;
                          case 45:
                              if (text.charCodeAt(pos + 1) === 45) {
                                  return pos += 2, token = 39;
                              }
                              if (text.charCodeAt(pos + 1) === 61) {
                                  return pos += 2, token = 55;
                              }
                              return pos++, token = 34;
                          case 46:
                              if (isDigit(text.charCodeAt(pos + 1))) {
                                  tokenValue = "" + scanNumber();
                                  return token = 7;
                              }
                              if (text.charCodeAt(pos + 1) === 46 && text.charCodeAt(pos + 2) === 46) {
                                  return pos += 3, token = 21;
                              }
                              return pos++, token = 20;
                          case 47:
                              if (text.charCodeAt(pos + 1) === 47) {
                                  pos += 2;
                                  while (pos < end) {
                                      if (isLineBreak(text.charCodeAt(pos))) {
                                          break;
                                      }
                                      pos++;
                                  }
                                  if (skipTrivia) {
                                      continue;
                                  }
                                  else {
                                      return token = 2;
                                  }
                              }
                              if (text.charCodeAt(pos + 1) === 42) {
                                  pos += 2;
                                  var commentClosed = false;
                                  while (pos < end) {
                                      var ch_2 = text.charCodeAt(pos);
                                      if (ch_2 === 42 && text.charCodeAt(pos + 1) === 47) {
                                          pos += 2;
                                          commentClosed = true;
                                          break;
                                      }
                                      if (isLineBreak(ch_2)) {
                                          precedingLineBreak = true;
                                      }
                                      pos++;
                                  }
                                  if (!commentClosed) {
                                      error(ts.Diagnostics.Asterisk_Slash_expected);
                                  }
                                  if (skipTrivia) {
                                      continue;
                                  }
                                  else {
                                      tokenIsUnterminated = !commentClosed;
                                      return token = 3;
                                  }
                              }
                              if (text.charCodeAt(pos + 1) === 61) {
                                  return pos += 2, token = 57;
                              }
                              return pos++, token = 36;
                          case 48:
                              if (pos + 2 < end && (text.charCodeAt(pos + 1) === 88 || text.charCodeAt(pos + 1) === 120)) {
                                  pos += 2;
                                  var value = scanMinimumNumberOfHexDigits(1);
                                  if (value < 0) {
                                      error(ts.Diagnostics.Hexadecimal_digit_expected);
                                      value = 0;
                                  }
                                  tokenValue = "" + value;
                                  return token = 7;
                              }
                              else if (pos + 2 < end && (text.charCodeAt(pos + 1) === 66 || text.charCodeAt(pos + 1) === 98)) {
                                  pos += 2;
                                  var value = scanBinaryOrOctalDigits(2);
                                  if (value < 0) {
                                      error(ts.Diagnostics.Binary_digit_expected);
                                      value = 0;
                                  }
                                  tokenValue = "" + value;
                                  return token = 7;
                              }
                              else if (pos + 2 < end && (text.charCodeAt(pos + 1) === 79 || text.charCodeAt(pos + 1) === 111)) {
                                  pos += 2;
                                  var value = scanBinaryOrOctalDigits(8);
                                  if (value < 0) {
                                      error(ts.Diagnostics.Octal_digit_expected);
                                      value = 0;
                                  }
                                  tokenValue = "" + value;
                                  return token = 7;
                              }
                              if (pos + 1 < end && isOctalDigit(text.charCodeAt(pos + 1))) {
                                  tokenValue = "" + scanOctalDigits();
                                  return token = 7;
                              }
                          case 49:
                          case 50:
                          case 51:
                          case 52:
                          case 53:
                          case 54:
                          case 55:
                          case 56:
                          case 57:
                              tokenValue = "" + scanNumber();
                              return token = 7;
                          case 58:
                              return pos++, token = 51;
                          case 59:
                              return pos++, token = 22;
                          case 60:
                              if (isConflictMarkerTrivia(text, pos)) {
                                  pos = scanConflictMarkerTrivia(text, pos, error);
                                  if (skipTrivia) {
                                      continue;
                                  }
                                  else {
                                      return token = 6;
                                  }
                              }
                              if (text.charCodeAt(pos + 1) === 60) {
                                  if (text.charCodeAt(pos + 2) === 61) {
                                      return pos += 3, token = 59;
                                  }
                                  return pos += 2, token = 40;
                              }
                              if (text.charCodeAt(pos + 1) === 61) {
                                  return pos += 2, token = 26;
                              }
                              return pos++, token = 24;
                          case 61:
                              if (isConflictMarkerTrivia(text, pos)) {
                                  pos = scanConflictMarkerTrivia(text, pos, error);
                                  if (skipTrivia) {
                                      continue;
                                  }
                                  else {
                                      return token = 6;
                                  }
                              }
                              if (text.charCodeAt(pos + 1) === 61) {
                                  if (text.charCodeAt(pos + 2) === 61) {
                                      return pos += 3, token = 30;
                                  }
                                  return pos += 2, token = 28;
                              }
                              if (text.charCodeAt(pos + 1) === 62) {
                                  return pos += 2, token = 32;
                              }
                              return pos++, token = 53;
                          case 62:
                              if (isConflictMarkerTrivia(text, pos)) {
                                  pos = scanConflictMarkerTrivia(text, pos, error);
                                  if (skipTrivia) {
                                      continue;
                                  }
                                  else {
                                      return token = 6;
                                  }
                              }
                              return pos++, token = 25;
                          case 63:
                              return pos++, token = 50;
                          case 91:
                              return pos++, token = 18;
                          case 93:
                              return pos++, token = 19;
                          case 94:
                              if (text.charCodeAt(pos + 1) === 61) {
                                  return pos += 2, token = 64;
                              }
                              return pos++, token = 45;
                          case 123:
                              return pos++, token = 14;
                          case 124:
                              if (text.charCodeAt(pos + 1) === 124) {
                                  return pos += 2, token = 49;
                              }
                              if (text.charCodeAt(pos + 1) === 61) {
                                  return pos += 2, token = 63;
                              }
                              return pos++, token = 44;
                          case 125:
                              return pos++, token = 15;
                          case 126:
                              return pos++, token = 47;
                          case 64:
                              return pos++, token = 52;
                          case 92:
                              var cookedChar = peekUnicodeEscape();
                              if (cookedChar >= 0 && isIdentifierStart(cookedChar)) {
                                  pos += 6;
                                  tokenValue = String.fromCharCode(cookedChar) + scanIdentifierParts();
                                  return token = getIdentifierToken();
                              }
                              error(ts.Diagnostics.Invalid_character);
                              return pos++, token = 0;
                          default:
                              if (isIdentifierStart(ch)) {
                                  pos++;
                                  while (pos < end && isIdentifierPart(ch = text.charCodeAt(pos)))
                                      pos++;
                                  tokenValue = text.substring(tokenPos, pos);
                                  if (ch === 92) {
                                      tokenValue += scanIdentifierParts();
                                  }
                                  return token = getIdentifierToken();
                              }
                              else if (isWhiteSpace(ch)) {
                                  pos++;
                                  continue;
                              }
                              else if (isLineBreak(ch)) {
                                  precedingLineBreak = true;
                                  pos++;
                                  continue;
                              }
                              error(ts.Diagnostics.Invalid_character);
                              return pos++, token = 0;
                      }
                  }
              }
              function reScanGreaterToken() {
                  if (token === 25) {
                      if (text.charCodeAt(pos) === 62) {
                          if (text.charCodeAt(pos + 1) === 62) {
                              if (text.charCodeAt(pos + 2) === 61) {
                                  return pos += 3, token = 61;
                              }
                              return pos += 2, token = 42;
                          }
                          if (text.charCodeAt(pos + 1) === 61) {
                              return pos += 2, token = 60;
                          }
                          return pos++, token = 41;
                      }
                      if (text.charCodeAt(pos) === 61) {
                          return pos++, token = 27;
                      }
                  }
                  return token;
              }
              function reScanSlashToken() {
                  if (token === 36 || token === 57) {
                      var p = tokenPos + 1;
                      var inEscape = false;
                      var inCharacterClass = false;
                      while (true) {
                          if (p >= end) {
                              tokenIsUnterminated = true;
                              error(ts.Diagnostics.Unterminated_regular_expression_literal);
                              break;
                          }
                          var ch = text.charCodeAt(p);
                          if (isLineBreak(ch)) {
                              tokenIsUnterminated = true;
                              error(ts.Diagnostics.Unterminated_regular_expression_literal);
                              break;
                          }
                          if (inEscape) {
                              inEscape = false;
                          }
                          else if (ch === 47 && !inCharacterClass) {
                              p++;
                              break;
                          }
                          else if (ch === 91) {
                              inCharacterClass = true;
                          }
                          else if (ch === 92) {
                              inEscape = true;
                          }
                          else if (ch === 93) {
                              inCharacterClass = false;
                          }
                          p++;
                      }
                      while (p < end && isIdentifierPart(text.charCodeAt(p))) {
                          p++;
                      }
                      pos = p;
                      tokenValue = text.substring(tokenPos, pos);
                      token = 9;
                  }
                  return token;
              }
              function reScanTemplateToken() {
                  ts.Debug.assert(token === 15, "'reScanTemplateToken' should only be called on a '}'");
                  pos = tokenPos;
                  return token = scanTemplateAndSetTokenValue();
              }
              function speculationHelper(callback, isLookahead) {
                  var savePos = pos;
                  var saveStartPos = startPos;
                  var saveTokenPos = tokenPos;
                  var saveToken = token;
                  var saveTokenValue = tokenValue;
                  var savePrecedingLineBreak = precedingLineBreak;
                  var result = callback();
                  if (!result || isLookahead) {
                      pos = savePos;
                      startPos = saveStartPos;
                      tokenPos = saveTokenPos;
                      token = saveToken;
                      tokenValue = saveTokenValue;
                      precedingLineBreak = savePrecedingLineBreak;
                  }
                  return result;
              }
              function lookAhead(callback) {
                  return speculationHelper(callback, true);
              }
              function tryScan(callback) {
                  return speculationHelper(callback, false);
              }
              function setText(newText, start, length) {
                  text = newText || "";
                  end = length === undefined ? text.length : start + length;
                  setTextPos(start || 0);
              }
              function setOnError(errorCallback) {
                  onError = errorCallback;
              }
              function setScriptTarget(scriptTarget) {
                  languageVersion = scriptTarget;
              }
              function setTextPos(textPos) {
                  ts.Debug.assert(textPos >= 0);
                  pos = textPos;
                  startPos = textPos;
                  tokenPos = textPos;
                  token = 0;
                  precedingLineBreak = false;
                  tokenValue = undefined;
                  hasExtendedUnicodeEscape = false;
                  tokenIsUnterminated = false;
              }
          }
          ts.createScanner = createScanner;
      })(ts || (ts = {}));
      /// <reference path="parser.ts"/>
      var ts;
      (function (ts) {
          ts.bindTime = 0;
          function getModuleInstanceState(node) {
              if (node.kind === 203 || node.kind === 204) {
                  return 0;
              }
              else if (ts.isConstEnumDeclaration(node)) {
                  return 2;
              }
              else if ((node.kind === 210 || node.kind === 209) && !(node.flags & 1)) {
                  return 0;
              }
              else if (node.kind === 207) {
                  var state = 0;
                  ts.forEachChild(node, function (n) {
                      switch (getModuleInstanceState(n)) {
                          case 0:
                              return false;
                          case 2:
                              state = 2;
                              return false;
                          case 1:
                              state = 1;
                              return true;
                      }
                  });
                  return state;
              }
              else if (node.kind === 206) {
                  return getModuleInstanceState(node.body);
              }
              else {
                  return 1;
              }
          }
          ts.getModuleInstanceState = getModuleInstanceState;
          function bindSourceFile(file) {
              var start = new Date().getTime();
              bindSourceFileWorker(file);
              ts.bindTime += new Date().getTime() - start;
          }
          ts.bindSourceFile = bindSourceFile;
          function bindSourceFileWorker(file) {
              var parent;
              var container;
              var blockScopeContainer;
              var lastContainer;
              var symbolCount = 0;
              var Symbol = ts.objectAllocator.getSymbolConstructor();
              if (!file.locals) {
                  file.locals = {};
                  container = file;
                  setBlockScopeContainer(file, false);
                  bind(file);
                  file.symbolCount = symbolCount;
              }
              function createSymbol(flags, name) {
                  symbolCount++;
                  return new Symbol(flags, name);
              }
              function setBlockScopeContainer(node, cleanLocals) {
                  blockScopeContainer = node;
                  if (cleanLocals) {
                      blockScopeContainer.locals = undefined;
                  }
              }
              function addDeclarationToSymbol(symbol, node, symbolKind) {
                  symbol.flags |= symbolKind;
                  if (!symbol.declarations)
                      symbol.declarations = [];
                  symbol.declarations.push(node);
                  if (symbolKind & 1952 && !symbol.exports)
                      symbol.exports = {};
                  if (symbolKind & 6240 && !symbol.members)
                      symbol.members = {};
                  node.symbol = symbol;
                  if (symbolKind & 107455 && !symbol.valueDeclaration)
                      symbol.valueDeclaration = node;
              }
              function getDeclarationName(node) {
                  if (node.name) {
                      if (node.kind === 206 && node.name.kind === 8) {
                          return '"' + node.name.text + '"';
                      }
                      if (node.name.kind === 128) {
                          var nameExpression = node.name.expression;
                          ts.Debug.assert(ts.isWellKnownSymbolSyntactically(nameExpression));
                          return ts.getPropertyNameForKnownSymbolName(nameExpression.name.text);
                      }
                      return node.name.text;
                  }
                  switch (node.kind) {
                      case 144:
                      case 136:
                          return "__constructor";
                      case 143:
                      case 139:
                          return "__call";
                      case 140:
                          return "__new";
                      case 141:
                          return "__index";
                      case 216:
                          return "__export";
                      case 215:
                          return node.isExportEquals ? "export=" : "default";
                      case 201:
                      case 202:
                          return node.flags & 256 ? "default" : undefined;
                  }
              }
              function getDisplayName(node) {
                  return node.name ? ts.declarationNameToString(node.name) : getDeclarationName(node);
              }
              function declareSymbol(symbols, parent, node, includes, excludes) {
                  ts.Debug.assert(!ts.hasDynamicName(node));
                  var name = node.flags & 256 && parent ? "default" : getDeclarationName(node);
                  var symbol;
                  if (name !== undefined) {
                      symbol = ts.hasProperty(symbols, name) ? symbols[name] : (symbols[name] = createSymbol(0, name));
                      if (symbol.flags & excludes) {
                          if (node.name) {
                              node.name.parent = node;
                          }
                          var message = symbol.flags & 2
                              ? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0
                              : ts.Diagnostics.Duplicate_identifier_0;
                          ts.forEach(symbol.declarations, function (declaration) {
                              file.bindDiagnostics.push(ts.createDiagnosticForNode(declaration.name || declaration, message, getDisplayName(declaration)));
                          });
                          file.bindDiagnostics.push(ts.createDiagnosticForNode(node.name || node, message, getDisplayName(node)));
                          symbol = createSymbol(0, name);
                      }
                  }
                  else {
                      symbol = createSymbol(0, "__missing");
                  }
                  addDeclarationToSymbol(symbol, node, includes);
                  symbol.parent = parent;
                  if ((node.kind === 202 || node.kind === 175) && symbol.exports) {
                      var prototypeSymbol = createSymbol(4 | 134217728, "prototype");
                      if (ts.hasProperty(symbol.exports, prototypeSymbol.name)) {
                          if (node.name) {
                              node.name.parent = node;
                          }
                          file.bindDiagnostics.push(ts.createDiagnosticForNode(symbol.exports[prototypeSymbol.name].declarations[0], ts.Diagnostics.Duplicate_identifier_0, prototypeSymbol.name));
                      }
                      symbol.exports[prototypeSymbol.name] = prototypeSymbol;
                      prototypeSymbol.parent = symbol;
                  }
                  return symbol;
              }
              function declareModuleMember(node, symbolKind, symbolExcludes) {
                  var hasExportModifier = ts.getCombinedNodeFlags(node) & 1;
                  if (symbolKind & 8388608) {
                      if (node.kind === 218 || (node.kind === 209 && hasExportModifier)) {
                          declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes);
                      }
                      else {
                          declareSymbol(container.locals, undefined, node, symbolKind, symbolExcludes);
                      }
                  }
                  else {
                      if (hasExportModifier || container.flags & 65536) {
                          var exportKind = (symbolKind & 107455 ? 1048576 : 0) |
                              (symbolKind & 793056 ? 2097152 : 0) |
                              (symbolKind & 1536 ? 4194304 : 0);
                          var local = declareSymbol(container.locals, undefined, node, exportKind, symbolExcludes);
                          local.exportSymbol = declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes);
                          node.localSymbol = local;
                      }
                      else {
                          declareSymbol(container.locals, undefined, node, symbolKind, symbolExcludes);
                      }
                  }
              }
              function bindChildren(node, symbolKind, isBlockScopeContainer) {
                  if (symbolKind & 255504) {
                      node.locals = {};
                  }
                  var saveParent = parent;
                  var saveContainer = container;
                  var savedBlockScopeContainer = blockScopeContainer;
                  parent = node;
                  if (symbolKind & 262128) {
                      container = node;
                      addToContainerChain(container);
                  }
                  if (isBlockScopeContainer) {
                      setBlockScopeContainer(node, (symbolKind & 255504) === 0 && node.kind !== 228);
                  }
                  ts.forEachChild(node, bind);
                  container = saveContainer;
                  parent = saveParent;
                  blockScopeContainer = savedBlockScopeContainer;
              }
              function addToContainerChain(node) {
                  if (lastContainer) {
                      lastContainer.nextContainer = node;
                  }
                  lastContainer = node;
              }
              function bindDeclaration(node, symbolKind, symbolExcludes, isBlockScopeContainer) {
                  switch (container.kind) {
                      case 206:
                          declareModuleMember(node, symbolKind, symbolExcludes);
                          break;
                      case 228:
                          if (ts.isExternalModule(container)) {
                              declareModuleMember(node, symbolKind, symbolExcludes);
                              break;
                          }
                      case 143:
                      case 144:
                      case 139:
                      case 140:
                      case 141:
                      case 135:
                      case 134:
                      case 136:
                      case 137:
                      case 138:
                      case 201:
                      case 163:
                      case 164:
                          declareSymbol(container.locals, undefined, node, symbolKind, symbolExcludes);
                          break;
                      case 175:
                      case 202:
                          if (node.flags & 128) {
                              declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes);
                              break;
                          }
                      case 146:
                      case 155:
                      case 203:
                          declareSymbol(container.symbol.members, container.symbol, node, symbolKind, symbolExcludes);
                          break;
                      case 205:
                          declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes);
                          break;
                  }
                  bindChildren(node, symbolKind, isBlockScopeContainer);
              }
              function isAmbientContext(node) {
                  while (node) {
                      if (node.flags & 2)
                          return true;
                      node = node.parent;
                  }
                  return false;
              }
              function hasExportDeclarations(node) {
                  var body = node.kind === 228 ? node : node.body;
                  if (body.kind === 228 || body.kind === 207) {
                      for (var _i = 0, _a = body.statements; _i < _a.length; _i++) {
                          var stat = _a[_i];
                          if (stat.kind === 216 || stat.kind === 215) {
                              return true;
                          }
                      }
                  }
                  return false;
              }
              function setExportContextFlag(node) {
                  if (isAmbientContext(node) && !hasExportDeclarations(node)) {
                      node.flags |= 65536;
                  }
                  else {
                      node.flags &= ~65536;
                  }
              }
              function bindModuleDeclaration(node) {
                  setExportContextFlag(node);
                  if (node.name.kind === 8) {
                      bindDeclaration(node, 512, 106639, true);
                  }
                  else {
                      var state = getModuleInstanceState(node);
                      if (state === 0) {
                          bindDeclaration(node, 1024, 0, true);
                      }
                      else {
                          bindDeclaration(node, 512, 106639, true);
                          var currentModuleIsConstEnumOnly = state === 2;
                          if (node.symbol.constEnumOnlyModule === undefined) {
                              node.symbol.constEnumOnlyModule = currentModuleIsConstEnumOnly;
                          }
                          else {
                              node.symbol.constEnumOnlyModule = node.symbol.constEnumOnlyModule && currentModuleIsConstEnumOnly;
                          }
                      }
                  }
              }
              function bindFunctionOrConstructorType(node) {
                  // For a given function symbol "<...>(...) => T" we want to generate a symbol identical
                  // to the one we would get for: { <...>(...): T }
                  //
                  // We do that by making an anonymous type literal symbol, and then setting the function 
                  // symbol as its sole member. To the rest of the system, this symbol will be  indistinguishable 
                  // from an actual type literal symbol you would have gotten had you used the long form.
                  var symbol = createSymbol(131072, getDeclarationName(node));
                  addDeclarationToSymbol(symbol, node, 131072);
                  bindChildren(node, 131072, false);
                  var typeLiteralSymbol = createSymbol(2048, "__type");
                  addDeclarationToSymbol(typeLiteralSymbol, node, 2048);
                  typeLiteralSymbol.members = {};
                  typeLiteralSymbol.members[node.kind === 143 ? "__call" : "__new"] = symbol;
              }
              function bindAnonymousDeclaration(node, symbolKind, name, isBlockScopeContainer) {
                  var symbol = createSymbol(symbolKind, name);
                  addDeclarationToSymbol(symbol, node, symbolKind);
                  bindChildren(node, symbolKind, isBlockScopeContainer);
              }
              function bindCatchVariableDeclaration(node) {
                  bindChildren(node, 0, true);
              }
              function bindBlockScopedDeclaration(node, symbolKind, symbolExcludes) {
                  switch (blockScopeContainer.kind) {
                      case 206:
                          declareModuleMember(node, symbolKind, symbolExcludes);
                          break;
                      case 228:
                          if (ts.isExternalModule(container)) {
                              declareModuleMember(node, symbolKind, symbolExcludes);
                              break;
                          }
                      default:
                          if (!blockScopeContainer.locals) {
                              blockScopeContainer.locals = {};
                              addToContainerChain(blockScopeContainer);
                          }
                          declareSymbol(blockScopeContainer.locals, undefined, node, symbolKind, symbolExcludes);
                  }
                  bindChildren(node, symbolKind, false);
              }
              function bindBlockScopedVariableDeclaration(node) {
                  bindBlockScopedDeclaration(node, 2, 107455);
              }
              function getDestructuringParameterName(node) {
                  return "__" + ts.indexOf(node.parent.parameters, node);
              }
              function bind(node) {
                  node.parent = parent;
                  switch (node.kind) {
                      case 129:
                          bindDeclaration(node, 262144, 530912, false);
                          break;
                      case 130:
                          bindParameter(node);
                          break;
                      case 199:
                      case 153:
                          if (ts.isBindingPattern(node.name)) {
                              bindChildren(node, 0, false);
                          }
                          else if (ts.isBlockOrCatchScoped(node)) {
                              bindBlockScopedVariableDeclaration(node);
                          }
                          else if (ts.isParameterDeclaration(node)) {
                              bindDeclaration(node, 1, 107455, false);
                          }
                          else {
                              bindDeclaration(node, 1, 107454, false);
                          }
                          break;
                      case 133:
                      case 132:
                          bindPropertyOrMethodOrAccessor(node, 4 | (node.questionToken ? 536870912 : 0), 107455, false);
                          break;
                      case 225:
                      case 226:
                          bindPropertyOrMethodOrAccessor(node, 4, 107455, false);
                          break;
                      case 227:
                          bindPropertyOrMethodOrAccessor(node, 8, 107455, false);
                          break;
                      case 139:
                      case 140:
                      case 141:
                          bindDeclaration(node, 131072, 0, false);
                          break;
                      case 135:
                      case 134:
                          bindPropertyOrMethodOrAccessor(node, 8192 | (node.questionToken ? 536870912 : 0), ts.isObjectLiteralMethod(node) ? 107455 : 99263, true);
                          break;
                      case 201:
                          bindDeclaration(node, 16, 106927, true);
                          break;
                      case 136:
                          bindDeclaration(node, 16384, 0, true);
                          break;
                      case 137:
                          bindPropertyOrMethodOrAccessor(node, 32768, 41919, true);
                          break;
                      case 138:
                          bindPropertyOrMethodOrAccessor(node, 65536, 74687, true);
                          break;
                      case 143:
                      case 144:
                          bindFunctionOrConstructorType(node);
                          break;
                      case 146:
                          bindAnonymousDeclaration(node, 2048, "__type", false);
                          break;
                      case 155:
                          bindAnonymousDeclaration(node, 4096, "__object", false);
                          break;
                      case 163:
                      case 164:
                          bindAnonymousDeclaration(node, 16, "__function", true);
                          break;
                      case 175:
                          bindAnonymousDeclaration(node, 32, "__class", false);
                          break;
                      case 224:
                          bindCatchVariableDeclaration(node);
                          break;
                      case 202:
                          bindBlockScopedDeclaration(node, 32, 899583);
                          break;
                      case 203:
                          bindDeclaration(node, 64, 792992, false);
                          break;
                      case 204:
                          bindDeclaration(node, 524288, 793056, false);
                          break;
                      case 205:
                          if (ts.isConst(node)) {
                              bindDeclaration(node, 128, 899967, false);
                          }
                          else {
                              bindDeclaration(node, 256, 899327, false);
                          }
                          break;
                      case 206:
                          bindModuleDeclaration(node);
                          break;
                      case 209:
                      case 212:
                      case 214:
                      case 218:
                          bindDeclaration(node, 8388608, 8388608, false);
                          break;
                      case 211:
                          if (node.name) {
                              bindDeclaration(node, 8388608, 8388608, false);
                          }
                          else {
                              bindChildren(node, 0, false);
                          }
                          break;
                      case 216:
                          if (!node.exportClause) {
                              declareSymbol(container.symbol.exports, container.symbol, node, 1073741824, 0);
                          }
                          bindChildren(node, 0, false);
                          break;
                      case 215:
                          if (node.expression.kind === 65) {
                              declareSymbol(container.symbol.exports, container.symbol, node, 8388608, 107455 | 8388608);
                          }
                          else {
                              declareSymbol(container.symbol.exports, container.symbol, node, 4, 107455 | 8388608);
                          }
                          bindChildren(node, 0, false);
                          break;
                      case 228:
                          setExportContextFlag(node);
                          if (ts.isExternalModule(node)) {
                              bindAnonymousDeclaration(node, 512, '"' + ts.removeFileExtension(node.fileName) + '"', true);
                              break;
                          }
                      case 180:
                          bindChildren(node, 0, !ts.isFunctionLike(node.parent));
                          break;
                      case 224:
                      case 187:
                      case 188:
                      case 189:
                      case 208:
                          bindChildren(node, 0, true);
                          break;
                      default:
                          var saveParent = parent;
                          parent = node;
                          ts.forEachChild(node, bind);
                          parent = saveParent;
                  }
              }
              function bindParameter(node) {
                  if (ts.isBindingPattern(node.name)) {
                      bindAnonymousDeclaration(node, 1, getDestructuringParameterName(node), false);
                  }
                  else {
                      bindDeclaration(node, 1, 107455, false);
                  }
                  if (node.flags & 112 &&
                      node.parent.kind === 136 &&
                      (node.parent.parent.kind === 202 || node.parent.parent.kind === 175)) {
                      var classDeclaration = node.parent.parent;
                      declareSymbol(classDeclaration.symbol.members, classDeclaration.symbol, node, 4, 107455);
                  }
              }
              function bindPropertyOrMethodOrAccessor(node, symbolKind, symbolExcludes, isBlockScopeContainer) {
                  if (ts.hasDynamicName(node)) {
                      bindAnonymousDeclaration(node, symbolKind, "__computed", isBlockScopeContainer);
                  }
                  else {
                      bindDeclaration(node, symbolKind, symbolExcludes, isBlockScopeContainer);
                  }
              }
          }
      })(ts || (ts = {}));
      /// <reference path="binder.ts" />
      var ts;
      (function (ts) {
          function getDeclarationOfKind(symbol, kind) {
              var declarations = symbol.declarations;
              for (var _i = 0; _i < declarations.length; _i++) {
                  var declaration = declarations[_i];
                  if (declaration.kind === kind) {
                      return declaration;
                  }
              }
              return undefined;
          }
          ts.getDeclarationOfKind = getDeclarationOfKind;
          var stringWriters = [];
          function getSingleLineStringWriter() {
              if (stringWriters.length == 0) {
                  var str = "";
                  var writeText = function (text) { return str += text; };
                  return {
                      string: function () { return str; },
                      writeKeyword: writeText,
                      writeOperator: writeText,
                      writePunctuation: writeText,
                      writeSpace: writeText,
                      writeStringLiteral: writeText,
                      writeParameter: writeText,
                      writeSymbol: writeText,
                      writeLine: function () { return str += " "; },
                      increaseIndent: function () { },
                      decreaseIndent: function () { },
                      clear: function () { return str = ""; },
                      trackSymbol: function () { }
                  };
              }
              return stringWriters.pop();
          }
          ts.getSingleLineStringWriter = getSingleLineStringWriter;
          function releaseStringWriter(writer) {
              writer.clear();
              stringWriters.push(writer);
          }
          ts.releaseStringWriter = releaseStringWriter;
          function getFullWidth(node) {
              return node.end - node.pos;
          }
          ts.getFullWidth = getFullWidth;
          function containsParseError(node) {
              aggregateChildData(node);
              return (node.parserContextFlags & 64) !== 0;
          }
          ts.containsParseError = containsParseError;
          function aggregateChildData(node) {
              if (!(node.parserContextFlags & 128)) {
                  var thisNodeOrAnySubNodesHasError = ((node.parserContextFlags & 32) !== 0) ||
                      ts.forEachChild(node, containsParseError);
                  if (thisNodeOrAnySubNodesHasError) {
                      node.parserContextFlags |= 64;
                  }
                  node.parserContextFlags |= 128;
              }
          }
          function getSourceFileOfNode(node) {
              while (node && node.kind !== 228) {
                  node = node.parent;
              }
              return node;
          }
          ts.getSourceFileOfNode = getSourceFileOfNode;
          function getStartPositionOfLine(line, sourceFile) {
              ts.Debug.assert(line >= 0);
              return ts.getLineStarts(sourceFile)[line];
          }
          ts.getStartPositionOfLine = getStartPositionOfLine;
          function nodePosToString(node) {
              var file = getSourceFileOfNode(node);
              var loc = ts.getLineAndCharacterOfPosition(file, node.pos);
              return file.fileName + "(" + (loc.line + 1) + "," + (loc.character + 1) + ")";
          }
          ts.nodePosToString = nodePosToString;
          function getStartPosOfNode(node) {
              return node.pos;
          }
          ts.getStartPosOfNode = getStartPosOfNode;
          function nodeIsMissing(node) {
              if (!node) {
                  return true;
              }
              return node.pos === node.end && node.kind !== 1;
          }
          ts.nodeIsMissing = nodeIsMissing;
          function nodeIsPresent(node) {
              return !nodeIsMissing(node);
          }
          ts.nodeIsPresent = nodeIsPresent;
          function getTokenPosOfNode(node, sourceFile) {
              if (nodeIsMissing(node)) {
                  return node.pos;
              }
              return ts.skipTrivia((sourceFile || getSourceFileOfNode(node)).text, node.pos);
          }
          ts.getTokenPosOfNode = getTokenPosOfNode;
          function getNonDecoratorTokenPosOfNode(node, sourceFile) {
              if (nodeIsMissing(node) || !node.decorators) {
                  return getTokenPosOfNode(node, sourceFile);
              }
              return ts.skipTrivia((sourceFile || getSourceFileOfNode(node)).text, node.decorators.end);
          }
          ts.getNonDecoratorTokenPosOfNode = getNonDecoratorTokenPosOfNode;
          function getSourceTextOfNodeFromSourceFile(sourceFile, node) {
              if (nodeIsMissing(node)) {
                  return "";
              }
              var text = sourceFile.text;
              return text.substring(ts.skipTrivia(text, node.pos), node.end);
          }
          ts.getSourceTextOfNodeFromSourceFile = getSourceTextOfNodeFromSourceFile;
          function getTextOfNodeFromSourceText(sourceText, node) {
              if (nodeIsMissing(node)) {
                  return "";
              }
              return sourceText.substring(ts.skipTrivia(sourceText, node.pos), node.end);
          }
          ts.getTextOfNodeFromSourceText = getTextOfNodeFromSourceText;
          function getTextOfNode(node) {
              return getSourceTextOfNodeFromSourceFile(getSourceFileOfNode(node), node);
          }
          ts.getTextOfNode = getTextOfNode;
          function escapeIdentifier(identifier) {
              return identifier.length >= 2 && identifier.charCodeAt(0) === 95 && identifier.charCodeAt(1) === 95 ? "_" + identifier : identifier;
          }
          ts.escapeIdentifier = escapeIdentifier;
          function unescapeIdentifier(identifier) {
              return identifier.length >= 3 && identifier.charCodeAt(0) === 95 && identifier.charCodeAt(1) === 95 && identifier.charCodeAt(2) === 95 ? identifier.substr(1) : identifier;
          }
          ts.unescapeIdentifier = unescapeIdentifier;
          function makeIdentifierFromModuleName(moduleName) {
              return ts.getBaseFileName(moduleName).replace(/\W/g, "_");
          }
          ts.makeIdentifierFromModuleName = makeIdentifierFromModuleName;
          function isBlockOrCatchScoped(declaration) {
              return (getCombinedNodeFlags(declaration) & 12288) !== 0 ||
                  isCatchClauseVariableDeclaration(declaration);
          }
          ts.isBlockOrCatchScoped = isBlockOrCatchScoped;
          function getEnclosingBlockScopeContainer(node) {
              var current = node.parent;
              while (current) {
                  if (isFunctionLike(current)) {
                      return current;
                  }
                  switch (current.kind) {
                      case 228:
                      case 208:
                      case 224:
                      case 206:
                      case 187:
                      case 188:
                      case 189:
                          return current;
                      case 180:
                          if (!isFunctionLike(current.parent)) {
                              return current;
                          }
                  }
                  current = current.parent;
              }
          }
          ts.getEnclosingBlockScopeContainer = getEnclosingBlockScopeContainer;
          function isCatchClauseVariableDeclaration(declaration) {
              return declaration &&
                  declaration.kind === 199 &&
                  declaration.parent &&
                  declaration.parent.kind === 224;
          }
          ts.isCatchClauseVariableDeclaration = isCatchClauseVariableDeclaration;
          function declarationNameToString(name) {
              return getFullWidth(name) === 0 ? "(Missing)" : getTextOfNode(name);
          }
          ts.declarationNameToString = declarationNameToString;
          function createDiagnosticForNode(node, message, arg0, arg1, arg2) {
              var sourceFile = getSourceFileOfNode(node);
              var span = getErrorSpanForNode(sourceFile, node);
              return ts.createFileDiagnostic(sourceFile, span.start, span.length, message, arg0, arg1, arg2);
          }
          ts.createDiagnosticForNode = createDiagnosticForNode;
          function createDiagnosticForNodeFromMessageChain(node, messageChain) {
              var sourceFile = getSourceFileOfNode(node);
              var span = getErrorSpanForNode(sourceFile, node);
              return {
                  file: sourceFile,
                  start: span.start,
                  length: span.length,
                  code: messageChain.code,
                  category: messageChain.category,
                  messageText: messageChain.next ? messageChain : messageChain.messageText
              };
          }
          ts.createDiagnosticForNodeFromMessageChain = createDiagnosticForNodeFromMessageChain;
          function getSpanOfTokenAtPosition(sourceFile, pos) {
              var scanner = ts.createScanner(sourceFile.languageVersion, true, sourceFile.text, undefined, pos);
              scanner.scan();
              var start = scanner.getTokenPos();
              return ts.createTextSpanFromBounds(start, scanner.getTextPos());
          }
          ts.getSpanOfTokenAtPosition = getSpanOfTokenAtPosition;
          function getErrorSpanForNode(sourceFile, node) {
              var errorNode = node;
              switch (node.kind) {
                  case 228:
                      var pos_1 = ts.skipTrivia(sourceFile.text, 0, false);
                      if (pos_1 === sourceFile.text.length) {
                          return ts.createTextSpan(0, 0);
                      }
                      return getSpanOfTokenAtPosition(sourceFile, pos_1);
                  case 199:
                  case 153:
                  case 202:
                  case 175:
                  case 203:
                  case 206:
                  case 205:
                  case 227:
                  case 201:
                  case 163:
                      errorNode = node.name;
                      break;
              }
              if (errorNode === undefined) {
                  return getSpanOfTokenAtPosition(sourceFile, node.pos);
              }
              var pos = nodeIsMissing(errorNode)
                  ? errorNode.pos
                  : ts.skipTrivia(sourceFile.text, errorNode.pos);
              return ts.createTextSpanFromBounds(pos, errorNode.end);
          }
          ts.getErrorSpanForNode = getErrorSpanForNode;
          function isExternalModule(file) {
              return file.externalModuleIndicator !== undefined;
          }
          ts.isExternalModule = isExternalModule;
          function isDeclarationFile(file) {
              return (file.flags & 2048) !== 0;
          }
          ts.isDeclarationFile = isDeclarationFile;
          function isConstEnumDeclaration(node) {
              return node.kind === 205 && isConst(node);
          }
          ts.isConstEnumDeclaration = isConstEnumDeclaration;
          function walkUpBindingElementsAndPatterns(node) {
              while (node && (node.kind === 153 || isBindingPattern(node))) {
                  node = node.parent;
              }
              return node;
          }
          function getCombinedNodeFlags(node) {
              node = walkUpBindingElementsAndPatterns(node);
              var flags = node.flags;
              if (node.kind === 199) {
                  node = node.parent;
              }
              if (node && node.kind === 200) {
                  flags |= node.flags;
                  node = node.parent;
              }
              if (node && node.kind === 181) {
                  flags |= node.flags;
              }
              return flags;
          }
          ts.getCombinedNodeFlags = getCombinedNodeFlags;
          function isConst(node) {
              return !!(getCombinedNodeFlags(node) & 8192);
          }
          ts.isConst = isConst;
          function isLet(node) {
              return !!(getCombinedNodeFlags(node) & 4096);
          }
          ts.isLet = isLet;
          function isPrologueDirective(node) {
              return node.kind === 183 && node.expression.kind === 8;
          }
          ts.isPrologueDirective = isPrologueDirective;
          function getLeadingCommentRangesOfNode(node, sourceFileOfNode) {
              if (node.kind === 130 || node.kind === 129) {
                  return ts.concatenate(ts.getTrailingCommentRanges(sourceFileOfNode.text, node.pos), ts.getLeadingCommentRanges(sourceFileOfNode.text, node.pos));
              }
              else {
                  return ts.getLeadingCommentRanges(sourceFileOfNode.text, node.pos);
              }
          }
          ts.getLeadingCommentRangesOfNode = getLeadingCommentRangesOfNode;
          function getJsDocComments(node, sourceFileOfNode) {
              return ts.filter(getLeadingCommentRangesOfNode(node, sourceFileOfNode), isJsDocComment);
              function isJsDocComment(comment) {
                  return sourceFileOfNode.text.charCodeAt(comment.pos + 1) === 42 &&
                      sourceFileOfNode.text.charCodeAt(comment.pos + 2) === 42 &&
                      sourceFileOfNode.text.charCodeAt(comment.pos + 3) !== 47;
              }
          }
          ts.getJsDocComments = getJsDocComments;
          ts.fullTripleSlashReferencePathRegEx = /^(\/\/\/\s*<reference\s+path\s*=\s*)('|")(.+?)\2.*?\/>/;
          function forEachReturnStatement(body, visitor) {
              return traverse(body);
              function traverse(node) {
                  switch (node.kind) {
                      case 192:
                          return visitor(node);
                      case 208:
                      case 180:
                      case 184:
                      case 185:
                      case 186:
                      case 187:
                      case 188:
                      case 189:
                      case 193:
                      case 194:
                      case 221:
                      case 222:
                      case 195:
                      case 197:
                      case 224:
                          return ts.forEachChild(node, traverse);
                  }
              }
          }
          ts.forEachReturnStatement = forEachReturnStatement;
          function isVariableLike(node) {
              if (node) {
                  switch (node.kind) {
                      case 153:
                      case 227:
                      case 130:
                      case 225:
                      case 133:
                      case 132:
                      case 226:
                      case 199:
                          return true;
                  }
              }
              return false;
          }
          ts.isVariableLike = isVariableLike;
          function isAccessor(node) {
              if (node) {
                  switch (node.kind) {
                      case 137:
                      case 138:
                          return true;
                  }
              }
              return false;
          }
          ts.isAccessor = isAccessor;
          function isFunctionLike(node) {
              if (node) {
                  switch (node.kind) {
                      case 136:
                      case 163:
                      case 201:
                      case 164:
                      case 135:
                      case 134:
                      case 137:
                      case 138:
                      case 139:
                      case 140:
                      case 141:
                      case 143:
                      case 144:
                          return true;
                  }
              }
              return false;
          }
          ts.isFunctionLike = isFunctionLike;
          function isFunctionBlock(node) {
              return node && node.kind === 180 && isFunctionLike(node.parent);
          }
          ts.isFunctionBlock = isFunctionBlock;
          function isObjectLiteralMethod(node) {
              return node && node.kind === 135 && node.parent.kind === 155;
          }
          ts.isObjectLiteralMethod = isObjectLiteralMethod;
          function getContainingFunction(node) {
              while (true) {
                  node = node.parent;
                  if (!node || isFunctionLike(node)) {
                      return node;
                  }
              }
          }
          ts.getContainingFunction = getContainingFunction;
          function getThisContainer(node, includeArrowFunctions) {
              while (true) {
                  node = node.parent;
                  if (!node) {
                      return undefined;
                  }
                  switch (node.kind) {
                      case 128:
                          if (node.parent.parent.kind === 202) {
                              return node;
                          }
                          node = node.parent;
                          break;
                      case 131:
                          if (node.parent.kind === 130 && isClassElement(node.parent.parent)) {
                              node = node.parent.parent;
                          }
                          else if (isClassElement(node.parent)) {
                              node = node.parent;
                          }
                          break;
                      case 164:
                          if (!includeArrowFunctions) {
                              continue;
                          }
                      case 201:
                      case 163:
                      case 206:
                      case 133:
                      case 132:
                      case 135:
                      case 134:
                      case 136:
                      case 137:
                      case 138:
                      case 205:
                      case 228:
                          return node;
                  }
              }
          }
          ts.getThisContainer = getThisContainer;
          function getSuperContainer(node, includeFunctions) {
              while (true) {
                  node = node.parent;
                  if (!node)
                      return node;
                  switch (node.kind) {
                      case 128:
                          if (node.parent.parent.kind === 202) {
                              return node;
                          }
                          node = node.parent;
                          break;
                      case 131:
                          if (node.parent.kind === 130 && isClassElement(node.parent.parent)) {
                              node = node.parent.parent;
                          }
                          else if (isClassElement(node.parent)) {
                              node = node.parent;
                          }
                          break;
                      case 201:
                      case 163:
                      case 164:
                          if (!includeFunctions) {
                              continue;
                          }
                      case 133:
                      case 132:
                      case 135:
                      case 134:
                      case 136:
                      case 137:
                      case 138:
                          return node;
                  }
              }
          }
          ts.getSuperContainer = getSuperContainer;
          function getInvokedExpression(node) {
              if (node.kind === 160) {
                  return node.tag;
              }
              return node.expression;
          }
          ts.getInvokedExpression = getInvokedExpression;
          function nodeCanBeDecorated(node) {
              switch (node.kind) {
                  case 202:
                      return true;
                  case 133:
                      return node.parent.kind === 202;
                  case 130:
                      return node.parent.body && node.parent.parent.kind === 202;
                  case 137:
                  case 138:
                  case 135:
                      return node.body && node.parent.kind === 202;
              }
              return false;
          }
          ts.nodeCanBeDecorated = nodeCanBeDecorated;
          function nodeIsDecorated(node) {
              switch (node.kind) {
                  case 202:
                      if (node.decorators) {
                          return true;
                      }
                      return false;
                  case 133:
                  case 130:
                      if (node.decorators) {
                          return true;
                      }
                      return false;
                  case 137:
                      if (node.body && node.decorators) {
                          return true;
                      }
                      return false;
                  case 135:
                  case 138:
                      if (node.body && node.decorators) {
                          return true;
                      }
                      return false;
              }
              return false;
          }
          ts.nodeIsDecorated = nodeIsDecorated;
          function childIsDecorated(node) {
              switch (node.kind) {
                  case 202:
                      return ts.forEach(node.members, nodeOrChildIsDecorated);
                  case 135:
                  case 138:
                      return ts.forEach(node.parameters, nodeIsDecorated);
              }
              return false;
          }
          ts.childIsDecorated = childIsDecorated;
          function nodeOrChildIsDecorated(node) {
              return nodeIsDecorated(node) || childIsDecorated(node);
          }
          ts.nodeOrChildIsDecorated = nodeOrChildIsDecorated;
          function isExpression(node) {
              switch (node.kind) {
                  case 93:
                  case 91:
                  case 89:
                  case 95:
                  case 80:
                  case 9:
                  case 154:
                  case 155:
                  case 156:
                  case 157:
                  case 158:
                  case 159:
                  case 160:
                  case 161:
                  case 162:
                  case 163:
                  case 175:
                  case 164:
                  case 167:
                  case 165:
                  case 166:
                  case 168:
                  case 169:
                  case 170:
                  case 171:
                  case 174:
                  case 172:
                  case 10:
                  case 176:
                      return true;
                  case 127:
                      while (node.parent.kind === 127) {
                          node = node.parent;
                      }
                      return node.parent.kind === 145;
                  case 65:
                      if (node.parent.kind === 145) {
                          return true;
                      }
                  case 7:
                  case 8:
                      var parent_1 = node.parent;
                      switch (parent_1.kind) {
                          case 199:
                          case 130:
                          case 133:
                          case 132:
                          case 227:
                          case 225:
                          case 153:
                              return parent_1.initializer === node;
                          case 183:
                          case 184:
                          case 185:
                          case 186:
                          case 192:
                          case 193:
                          case 194:
                          case 221:
                          case 196:
                          case 194:
                              return parent_1.expression === node;
                          case 187:
                              var forStatement = parent_1;
                              return (forStatement.initializer === node && forStatement.initializer.kind !== 200) ||
                                  forStatement.condition === node ||
                                  forStatement.incrementor === node;
                          case 188:
                          case 189:
                              var forInStatement = parent_1;
                              return (forInStatement.initializer === node && forInStatement.initializer.kind !== 200) ||
                                  forInStatement.expression === node;
                          case 161:
                              return node === parent_1.expression;
                          case 178:
                              return node === parent_1.expression;
                          case 128:
                              return node === parent_1.expression;
                          case 131:
                              return true;
                          default:
                              if (isExpression(parent_1)) {
                                  return true;
                              }
                      }
              }
              return false;
          }
          ts.isExpression = isExpression;
          function isInstantiatedModule(node, preserveConstEnums) {
              var moduleState = ts.getModuleInstanceState(node);
              return moduleState === 1 ||
                  (preserveConstEnums && moduleState === 2);
          }
          ts.isInstantiatedModule = isInstantiatedModule;
          function isExternalModuleImportEqualsDeclaration(node) {
              return node.kind === 209 && node.moduleReference.kind === 220;
          }
          ts.isExternalModuleImportEqualsDeclaration = isExternalModuleImportEqualsDeclaration;
          function getExternalModuleImportEqualsDeclarationExpression(node) {
              ts.Debug.assert(isExternalModuleImportEqualsDeclaration(node));
              return node.moduleReference.expression;
          }
          ts.getExternalModuleImportEqualsDeclarationExpression = getExternalModuleImportEqualsDeclarationExpression;
          function isInternalModuleImportEqualsDeclaration(node) {
              return node.kind === 209 && node.moduleReference.kind !== 220;
          }
          ts.isInternalModuleImportEqualsDeclaration = isInternalModuleImportEqualsDeclaration;
          function getExternalModuleName(node) {
              if (node.kind === 210) {
                  return node.moduleSpecifier;
              }
              if (node.kind === 209) {
                  var reference = node.moduleReference;
                  if (reference.kind === 220) {
                      return reference.expression;
                  }
              }
              if (node.kind === 216) {
                  return node.moduleSpecifier;
              }
          }
          ts.getExternalModuleName = getExternalModuleName;
          function hasDotDotDotToken(node) {
              return node && node.kind === 130 && node.dotDotDotToken !== undefined;
          }
          ts.hasDotDotDotToken = hasDotDotDotToken;
          function hasQuestionToken(node) {
              if (node) {
                  switch (node.kind) {
                      case 130:
                          return node.questionToken !== undefined;
                      case 135:
                      case 134:
                          return node.questionToken !== undefined;
                      case 226:
                      case 225:
                      case 133:
                      case 132:
                          return node.questionToken !== undefined;
                  }
              }
              return false;
          }
          ts.hasQuestionToken = hasQuestionToken;
          function hasRestParameters(s) {
              return s.parameters.length > 0 && ts.lastOrUndefined(s.parameters).dotDotDotToken !== undefined;
          }
          ts.hasRestParameters = hasRestParameters;
          function isLiteralKind(kind) {
              return 7 <= kind && kind <= 10;
          }
          ts.isLiteralKind = isLiteralKind;
          function isTextualLiteralKind(kind) {
              return kind === 8 || kind === 10;
          }
          ts.isTextualLiteralKind = isTextualLiteralKind;
          function isTemplateLiteralKind(kind) {
              return 10 <= kind && kind <= 13;
          }
          ts.isTemplateLiteralKind = isTemplateLiteralKind;
          function isBindingPattern(node) {
              return !!node && (node.kind === 152 || node.kind === 151);
          }
          ts.isBindingPattern = isBindingPattern;
          function isInAmbientContext(node) {
              while (node) {
                  if (node.flags & (2 | 2048)) {
                      return true;
                  }
                  node = node.parent;
              }
              return false;
          }
          ts.isInAmbientContext = isInAmbientContext;
          function isDeclaration(node) {
              switch (node.kind) {
                  case 164:
                  case 153:
                  case 202:
                  case 136:
                  case 205:
                  case 227:
                  case 218:
                  case 201:
                  case 163:
                  case 137:
                  case 211:
                  case 209:
                  case 214:
                  case 203:
                  case 135:
                  case 134:
                  case 206:
                  case 212:
                  case 130:
                  case 225:
                  case 133:
                  case 132:
                  case 138:
                  case 226:
                  case 204:
                  case 129:
                  case 199:
                      return true;
              }
              return false;
          }
          ts.isDeclaration = isDeclaration;
          function isStatement(n) {
              switch (n.kind) {
                  case 191:
                  case 190:
                  case 198:
                  case 185:
                  case 183:
                  case 182:
                  case 188:
                  case 189:
                  case 187:
                  case 184:
                  case 195:
                  case 192:
                  case 194:
                  case 94:
                  case 197:
                  case 181:
                  case 186:
                  case 193:
                  case 215:
                      return true;
                  default:
                      return false;
              }
          }
          ts.isStatement = isStatement;
          function isClassElement(n) {
              switch (n.kind) {
                  case 136:
                  case 133:
                  case 135:
                  case 137:
                  case 138:
                  case 134:
                  case 141:
                      return true;
                  default:
                      return false;
              }
          }
          ts.isClassElement = isClassElement;
          function isDeclarationName(name) {
              if (name.kind !== 65 && name.kind !== 8 && name.kind !== 7) {
                  return false;
              }
              var parent = name.parent;
              if (parent.kind === 214 || parent.kind === 218) {
                  if (parent.propertyName) {
                      return true;
                  }
              }
              if (isDeclaration(parent)) {
                  return parent.name === name;
              }
              return false;
          }
          ts.isDeclarationName = isDeclarationName;
          function isAliasSymbolDeclaration(node) {
              return node.kind === 209 ||
                  node.kind === 211 && !!node.name ||
                  node.kind === 212 ||
                  node.kind === 214 ||
                  node.kind === 218 ||
                  node.kind === 215 && node.expression.kind === 65;
          }
          ts.isAliasSymbolDeclaration = isAliasSymbolDeclaration;
          function getClassExtendsHeritageClauseElement(node) {
              var heritageClause = getHeritageClause(node.heritageClauses, 79);
              return heritageClause && heritageClause.types.length > 0 ? heritageClause.types[0] : undefined;
          }
          ts.getClassExtendsHeritageClauseElement = getClassExtendsHeritageClauseElement;
          function getClassImplementsHeritageClauseElements(node) {
              var heritageClause = getHeritageClause(node.heritageClauses, 102);
              return heritageClause ? heritageClause.types : undefined;
          }
          ts.getClassImplementsHeritageClauseElements = getClassImplementsHeritageClauseElements;
          function getInterfaceBaseTypeNodes(node) {
              var heritageClause = getHeritageClause(node.heritageClauses, 79);
              return heritageClause ? heritageClause.types : undefined;
          }
          ts.getInterfaceBaseTypeNodes = getInterfaceBaseTypeNodes;
          function getHeritageClause(clauses, kind) {
              if (clauses) {
                  for (var _i = 0; _i < clauses.length; _i++) {
                      var clause = clauses[_i];
                      if (clause.token === kind) {
                          return clause;
                      }
                  }
              }
              return undefined;
          }
          ts.getHeritageClause = getHeritageClause;
          function tryResolveScriptReference(host, sourceFile, reference) {
              if (!host.getCompilerOptions().noResolve) {
                  var referenceFileName = ts.isRootedDiskPath(reference.fileName) ? reference.fileName : ts.combinePaths(ts.getDirectoryPath(sourceFile.fileName), reference.fileName);
                  referenceFileName = ts.getNormalizedAbsolutePath(referenceFileName, host.getCurrentDirectory());
                  return host.getSourceFile(referenceFileName);
              }
          }
          ts.tryResolveScriptReference = tryResolveScriptReference;
          function getAncestor(node, kind) {
              while (node) {
                  if (node.kind === kind) {
                      return node;
                  }
                  node = node.parent;
              }
              return undefined;
          }
          ts.getAncestor = getAncestor;
          function getFileReferenceFromReferencePath(comment, commentRange) {
              var simpleReferenceRegEx = /^\/\/\/\s*<reference\s+/gim;
              var isNoDefaultLibRegEx = /^(\/\/\/\s*<reference\s+no-default-lib\s*=\s*)('|")(.+?)\2\s*\/>/gim;
              if (simpleReferenceRegEx.exec(comment)) {
                  if (isNoDefaultLibRegEx.exec(comment)) {
                      return {
                          isNoDefaultLib: true
                      };
                  }
                  else {
                      var matchResult = ts.fullTripleSlashReferencePathRegEx.exec(comment);
                      if (matchResult) {
                          var start = commentRange.pos;
                          var end = commentRange.end;
                          return {
                              fileReference: {
                                  pos: start,
                                  end: end,
                                  fileName: matchResult[3]
                              },
                              isNoDefaultLib: false
                          };
                      }
                      else {
                          return {
                              diagnosticMessage: ts.Diagnostics.Invalid_reference_directive_syntax,
                              isNoDefaultLib: false
                          };
                      }
                  }
              }
              return undefined;
          }
          ts.getFileReferenceFromReferencePath = getFileReferenceFromReferencePath;
          function isKeyword(token) {
              return 66 <= token && token <= 126;
          }
          ts.isKeyword = isKeyword;
          function isTrivia(token) {
              return 2 <= token && token <= 6;
          }
          ts.isTrivia = isTrivia;
          function hasDynamicName(declaration) {
              return declaration.name &&
                  declaration.name.kind === 128 &&
                  !isWellKnownSymbolSyntactically(declaration.name.expression);
          }
          ts.hasDynamicName = hasDynamicName;
          function isWellKnownSymbolSyntactically(node) {
              return node.kind === 156 && isESSymbolIdentifier(node.expression);
          }
          ts.isWellKnownSymbolSyntactically = isWellKnownSymbolSyntactically;
          function getPropertyNameForPropertyNameNode(name) {
              if (name.kind === 65 || name.kind === 8 || name.kind === 7) {
                  return name.text;
              }
              if (name.kind === 128) {
                  var nameExpression = name.expression;
                  if (isWellKnownSymbolSyntactically(nameExpression)) {
                      var rightHandSideName = nameExpression.name.text;
                      return getPropertyNameForKnownSymbolName(rightHandSideName);
                  }
              }
              return undefined;
          }
          ts.getPropertyNameForPropertyNameNode = getPropertyNameForPropertyNameNode;
          function getPropertyNameForKnownSymbolName(symbolName) {
              return "__@" + symbolName;
          }
          ts.getPropertyNameForKnownSymbolName = getPropertyNameForKnownSymbolName;
          function isESSymbolIdentifier(node) {
              return node.kind === 65 && node.text === "Symbol";
          }
          ts.isESSymbolIdentifier = isESSymbolIdentifier;
          function isModifier(token) {
              switch (token) {
                  case 108:
                  case 106:
                  case 107:
                  case 109:
                  case 78:
                  case 115:
                  case 70:
                  case 73:
                      return true;
              }
              return false;
          }
          ts.isModifier = isModifier;
          function isParameterDeclaration(node) {
              var root = getRootDeclaration(node);
              return root.kind === 130;
          }
          ts.isParameterDeclaration = isParameterDeclaration;
          function getRootDeclaration(node) {
              while (node.kind === 153) {
                  node = node.parent.parent;
              }
              return node;
          }
          ts.getRootDeclaration = getRootDeclaration;
          function nodeStartsNewLexicalEnvironment(n) {
              return isFunctionLike(n) || n.kind === 206 || n.kind === 228;
          }
          ts.nodeStartsNewLexicalEnvironment = nodeStartsNewLexicalEnvironment;
          function nodeIsSynthesized(node) {
              return node.pos === -1;
          }
          ts.nodeIsSynthesized = nodeIsSynthesized;
          function createSynthesizedNode(kind, startsOnNewLine) {
              var node = ts.createNode(kind);
              node.pos = -1;
              node.end = -1;
              node.startsOnNewLine = startsOnNewLine;
              return node;
          }
          ts.createSynthesizedNode = createSynthesizedNode;
          function createSynthesizedNodeArray() {
              var array = [];
              array.pos = -1;
              array.end = -1;
              return array;
          }
          ts.createSynthesizedNodeArray = createSynthesizedNodeArray;
          function createDiagnosticCollection() {
              var nonFileDiagnostics = [];
              var fileDiagnostics = {};
              var diagnosticsModified = false;
              var modificationCount = 0;
              return {
                  add: add,
                  getGlobalDiagnostics: getGlobalDiagnostics,
                  getDiagnostics: getDiagnostics,
                  getModificationCount: getModificationCount
              };
              function getModificationCount() {
                  return modificationCount;
              }
              function add(diagnostic) {
                  var diagnostics;
                  if (diagnostic.file) {
                      diagnostics = fileDiagnostics[diagnostic.file.fileName];
                      if (!diagnostics) {
                          diagnostics = [];
                          fileDiagnostics[diagnostic.file.fileName] = diagnostics;
                      }
                  }
                  else {
                      diagnostics = nonFileDiagnostics;
                  }
                  diagnostics.push(diagnostic);
                  diagnosticsModified = true;
                  modificationCount++;
              }
              function getGlobalDiagnostics() {
                  sortAndDeduplicate();
                  return nonFileDiagnostics;
              }
              function getDiagnostics(fileName) {
                  sortAndDeduplicate();
                  if (fileName) {
                      return fileDiagnostics[fileName] || [];
                  }
                  var allDiagnostics = [];
                  function pushDiagnostic(d) {
                      allDiagnostics.push(d);
                  }
                  ts.forEach(nonFileDiagnostics, pushDiagnostic);
                  for (var key in fileDiagnostics) {
                      if (ts.hasProperty(fileDiagnostics, key)) {
                          ts.forEach(fileDiagnostics[key], pushDiagnostic);
                      }
                  }
                  return ts.sortAndDeduplicateDiagnostics(allDiagnostics);
              }
              function sortAndDeduplicate() {
                  if (!diagnosticsModified) {
                      return;
                  }
                  diagnosticsModified = false;
                  nonFileDiagnostics = ts.sortAndDeduplicateDiagnostics(nonFileDiagnostics);
                  for (var key in fileDiagnostics) {
                      if (ts.hasProperty(fileDiagnostics, key)) {
                          fileDiagnostics[key] = ts.sortAndDeduplicateDiagnostics(fileDiagnostics[key]);
                      }
                  }
              }
          }
          ts.createDiagnosticCollection = createDiagnosticCollection;
          var escapedCharsRegExp = /[\\\"\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g;
          var escapedCharsMap = {
              "\0": "\\0",
              "\t": "\\t",
              "\v": "\\v",
              "\f": "\\f",
              "\b": "\\b",
              "\r": "\\r",
              "\n": "\\n",
              "\\": "\\\\",
              "\"": "\\\"",
              "\u2028": "\\u2028",
              "\u2029": "\\u2029",
              "\u0085": "\\u0085"
          };
          function escapeString(s) {
              s = escapedCharsRegExp.test(s) ? s.replace(escapedCharsRegExp, getReplacement) : s;
              return s;
              function getReplacement(c) {
                  return escapedCharsMap[c] || get16BitUnicodeEscapeSequence(c.charCodeAt(0));
              }
          }
          ts.escapeString = escapeString;
          function get16BitUnicodeEscapeSequence(charCode) {
              var hexCharCode = charCode.toString(16).toUpperCase();
              var paddedHexCode = ("0000" + hexCharCode).slice(-4);
              return "\\u" + paddedHexCode;
          }
          var nonAsciiCharacters = /[^\u0000-\u007F]/g;
          function escapeNonAsciiCharacters(s) {
              return nonAsciiCharacters.test(s) ?
                  s.replace(nonAsciiCharacters, function (c) { return get16BitUnicodeEscapeSequence(c.charCodeAt(0)); }) :
                  s;
          }
          ts.escapeNonAsciiCharacters = escapeNonAsciiCharacters;
          var indentStrings = ["", "    "];
          function getIndentString(level) {
              if (indentStrings[level] === undefined) {
                  indentStrings[level] = getIndentString(level - 1) + indentStrings[1];
              }
              return indentStrings[level];
          }
          ts.getIndentString = getIndentString;
          function getIndentSize() {
              return indentStrings[1].length;
          }
          ts.getIndentSize = getIndentSize;
          function createTextWriter(newLine) {
              var output = "";
              var indent = 0;
              var lineStart = true;
              var lineCount = 0;
              var linePos = 0;
              function write(s) {
                  if (s && s.length) {
                      if (lineStart) {
                          output += getIndentString(indent);
                          lineStart = false;
                      }
                      output += s;
                  }
              }
              function rawWrite(s) {
                  if (s !== undefined) {
                      if (lineStart) {
                          lineStart = false;
                      }
                      output += s;
                  }
              }
              function writeLiteral(s) {
                  if (s && s.length) {
                      write(s);
                      var lineStartsOfS = ts.computeLineStarts(s);
                      if (lineStartsOfS.length > 1) {
                          lineCount = lineCount + lineStartsOfS.length - 1;
                          linePos = output.length - s.length + ts.lastOrUndefined(lineStartsOfS);
                      }
                  }
              }
              function writeLine() {
                  if (!lineStart) {
                      output += newLine;
                      lineCount++;
                      linePos = output.length;
                      lineStart = true;
                  }
              }
              function writeTextOfNode(sourceFile, node) {
                  write(getSourceTextOfNodeFromSourceFile(sourceFile, node));
              }
              return {
                  write: write,
                  rawWrite: rawWrite,
                  writeTextOfNode: writeTextOfNode,
                  writeLiteral: writeLiteral,
                  writeLine: writeLine,
                  increaseIndent: function () { return indent++; },
                  decreaseIndent: function () { return indent--; },
                  getIndent: function () { return indent; },
                  getTextPos: function () { return output.length; },
                  getLine: function () { return lineCount + 1; },
                  getColumn: function () { return lineStart ? indent * getIndentSize() + 1 : output.length - linePos + 1; },
                  getText: function () { return output; }
              };
          }
          ts.createTextWriter = createTextWriter;
          function getOwnEmitOutputFilePath(sourceFile, host, extension) {
              var compilerOptions = host.getCompilerOptions();
              var emitOutputFilePathWithoutExtension;
              if (compilerOptions.outDir) {
                  emitOutputFilePathWithoutExtension = ts.removeFileExtension(getSourceFilePathInNewDir(sourceFile, host, compilerOptions.outDir));
              }
              else {
                  emitOutputFilePathWithoutExtension = ts.removeFileExtension(sourceFile.fileName);
              }
              return emitOutputFilePathWithoutExtension + extension;
          }
          ts.getOwnEmitOutputFilePath = getOwnEmitOutputFilePath;
          function getSourceFilePathInNewDir(sourceFile, host, newDirPath) {
              var sourceFilePath = ts.getNormalizedAbsolutePath(sourceFile.fileName, host.getCurrentDirectory());
              sourceFilePath = sourceFilePath.replace(host.getCommonSourceDirectory(), "");
              return ts.combinePaths(newDirPath, sourceFilePath);
          }
          ts.getSourceFilePathInNewDir = getSourceFilePathInNewDir;
          function writeFile(host, diagnostics, fileName, data, writeByteOrderMark) {
              host.writeFile(fileName, data, writeByteOrderMark, function (hostErrorMessage) {
                  diagnostics.push(ts.createCompilerDiagnostic(ts.Diagnostics.Could_not_write_file_0_Colon_1, fileName, hostErrorMessage));
              });
          }
          ts.writeFile = writeFile;
          function getLineOfLocalPosition(currentSourceFile, pos) {
              return ts.getLineAndCharacterOfPosition(currentSourceFile, pos).line;
          }
          ts.getLineOfLocalPosition = getLineOfLocalPosition;
          function getFirstConstructorWithBody(node) {
              return ts.forEach(node.members, function (member) {
                  if (member.kind === 136 && nodeIsPresent(member.body)) {
                      return member;
                  }
              });
          }
          ts.getFirstConstructorWithBody = getFirstConstructorWithBody;
          function shouldEmitToOwnFile(sourceFile, compilerOptions) {
              if (!isDeclarationFile(sourceFile)) {
                  if ((isExternalModule(sourceFile) || !compilerOptions.out)) {
                      return compilerOptions.separateCompilation || !ts.fileExtensionIs(sourceFile.fileName, ".js");
                  }
                  return false;
              }
              return false;
          }
          ts.shouldEmitToOwnFile = shouldEmitToOwnFile;
          function getAllAccessorDeclarations(declarations, accessor) {
              var firstAccessor;
              var secondAccessor;
              var getAccessor;
              var setAccessor;
              if (hasDynamicName(accessor)) {
                  firstAccessor = accessor;
                  if (accessor.kind === 137) {
                      getAccessor = accessor;
                  }
                  else if (accessor.kind === 138) {
                      setAccessor = accessor;
                  }
                  else {
                      ts.Debug.fail("Accessor has wrong kind");
                  }
              }
              else {
                  ts.forEach(declarations, function (member) {
                      if ((member.kind === 137 || member.kind === 138)
                          && (member.flags & 128) === (accessor.flags & 128)) {
                          var memberName = getPropertyNameForPropertyNameNode(member.name);
                          var accessorName = getPropertyNameForPropertyNameNode(accessor.name);
                          if (memberName === accessorName) {
                              if (!firstAccessor) {
                                  firstAccessor = member;
                              }
                              else if (!secondAccessor) {
                                  secondAccessor = member;
                              }
                              if (member.kind === 137 && !getAccessor) {
                                  getAccessor = member;
                              }
                              if (member.kind === 138 && !setAccessor) {
                                  setAccessor = member;
                              }
                          }
                      }
                  });
              }
              return {
                  firstAccessor: firstAccessor,
                  secondAccessor: secondAccessor,
                  getAccessor: getAccessor,
                  setAccessor: setAccessor
              };
          }
          ts.getAllAccessorDeclarations = getAllAccessorDeclarations;
          function emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments) {
              if (leadingComments && leadingComments.length && node.pos !== leadingComments[0].pos &&
                  getLineOfLocalPosition(currentSourceFile, node.pos) !== getLineOfLocalPosition(currentSourceFile, leadingComments[0].pos)) {
                  writer.writeLine();
              }
          }
          ts.emitNewLineBeforeLeadingComments = emitNewLineBeforeLeadingComments;
          function emitComments(currentSourceFile, writer, comments, trailingSeparator, newLine, writeComment) {
              var emitLeadingSpace = !trailingSeparator;
              ts.forEach(comments, function (comment) {
                  if (emitLeadingSpace) {
                      writer.write(" ");
                      emitLeadingSpace = false;
                  }
                  writeComment(currentSourceFile, writer, comment, newLine);
                  if (comment.hasTrailingNewLine) {
                      writer.writeLine();
                  }
                  else if (trailingSeparator) {
                      writer.write(" ");
                  }
                  else {
                      emitLeadingSpace = true;
                  }
              });
          }
          ts.emitComments = emitComments;
          function writeCommentRange(currentSourceFile, writer, comment, newLine) {
              if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 42) {
                  var firstCommentLineAndCharacter = ts.getLineAndCharacterOfPosition(currentSourceFile, comment.pos);
                  var lineCount = ts.getLineStarts(currentSourceFile).length;
                  var firstCommentLineIndent;
                  for (var pos = comment.pos, currentLine = firstCommentLineAndCharacter.line; pos < comment.end; currentLine++) {
                      var nextLineStart = (currentLine + 1) === lineCount
                          ? currentSourceFile.text.length + 1
                          : getStartPositionOfLine(currentLine + 1, currentSourceFile);
                      if (pos !== comment.pos) {
                          if (firstCommentLineIndent === undefined) {
                              firstCommentLineIndent = calculateIndent(getStartPositionOfLine(firstCommentLineAndCharacter.line, currentSourceFile), comment.pos);
                          }
                          var currentWriterIndentSpacing = writer.getIndent() * getIndentSize();
                          var spacesToEmit = currentWriterIndentSpacing - firstCommentLineIndent + calculateIndent(pos, nextLineStart);
                          if (spacesToEmit > 0) {
                              var numberOfSingleSpacesToEmit = spacesToEmit % getIndentSize();
                              var indentSizeSpaceString = getIndentString((spacesToEmit - numberOfSingleSpacesToEmit) / getIndentSize());
                              writer.rawWrite(indentSizeSpaceString);
                              while (numberOfSingleSpacesToEmit) {
                                  writer.rawWrite(" ");
                                  numberOfSingleSpacesToEmit--;
                              }
                          }
                          else {
                              writer.rawWrite("");
                          }
                      }
                      writeTrimmedCurrentLine(pos, nextLineStart);
                      pos = nextLineStart;
                  }
              }
              else {
                  writer.write(currentSourceFile.text.substring(comment.pos, comment.end));
              }
              function writeTrimmedCurrentLine(pos, nextLineStart) {
                  var end = Math.min(comment.end, nextLineStart - 1);
                  var currentLineText = currentSourceFile.text.substring(pos, end).replace(/^\s+|\s+$/g, '');
                  if (currentLineText) {
                      writer.write(currentLineText);
                      if (end !== comment.end) {
                          writer.writeLine();
                      }
                  }
                  else {
                      writer.writeLiteral(newLine);
                  }
              }
              function calculateIndent(pos, end) {
                  var currentLineIndent = 0;
                  for (; pos < end && ts.isWhiteSpace(currentSourceFile.text.charCodeAt(pos)); pos++) {
                      if (currentSourceFile.text.charCodeAt(pos) === 9) {
                          currentLineIndent += getIndentSize() - (currentLineIndent % getIndentSize());
                      }
                      else {
                          currentLineIndent++;
                      }
                  }
                  return currentLineIndent;
              }
          }
          ts.writeCommentRange = writeCommentRange;
          function modifierToFlag(token) {
              switch (token) {
                  case 109: return 128;
                  case 108: return 16;
                  case 107: return 64;
                  case 106: return 32;
                  case 78: return 1;
                  case 115: return 2;
                  case 70: return 8192;
                  case 73: return 256;
              }
              return 0;
          }
          ts.modifierToFlag = modifierToFlag;
          function isLeftHandSideExpression(expr) {
              if (expr) {
                  switch (expr.kind) {
                      case 156:
                      case 157:
                      case 159:
                      case 158:
                      case 160:
                      case 154:
                      case 162:
                      case 155:
                      case 175:
                      case 163:
                      case 65:
                      case 9:
                      case 7:
                      case 8:
                      case 10:
                      case 172:
                      case 80:
                      case 89:
                      case 93:
                      case 95:
                      case 91:
                          return true;
                  }
              }
              return false;
          }
          ts.isLeftHandSideExpression = isLeftHandSideExpression;
          function isAssignmentOperator(token) {
              return token >= 53 && token <= 64;
          }
          ts.isAssignmentOperator = isAssignmentOperator;
          function isSupportedExpressionWithTypeArguments(node) {
              return isSupportedExpressionWithTypeArgumentsRest(node.expression);
          }
          ts.isSupportedExpressionWithTypeArguments = isSupportedExpressionWithTypeArguments;
          function isSupportedExpressionWithTypeArgumentsRest(node) {
              if (node.kind === 65) {
                  return true;
              }
              else if (node.kind === 156) {
                  return isSupportedExpressionWithTypeArgumentsRest(node.expression);
              }
              else {
                  return false;
              }
          }
          function isRightSideOfQualifiedNameOrPropertyAccess(node) {
              return (node.parent.kind === 127 && node.parent.right === node) ||
                  (node.parent.kind === 156 && node.parent.name === node);
          }
          ts.isRightSideOfQualifiedNameOrPropertyAccess = isRightSideOfQualifiedNameOrPropertyAccess;
          function getLocalSymbolForExportDefault(symbol) {
              return symbol && symbol.valueDeclaration && (symbol.valueDeclaration.flags & 256) ? symbol.valueDeclaration.localSymbol : undefined;
          }
          ts.getLocalSymbolForExportDefault = getLocalSymbolForExportDefault;
          function getExpandedCharCodes(input) {
              var output = [];
              var length = input.length;
              var leadSurrogate = undefined;
              for (var i = 0; i < length; i++) {
                  var charCode = input.charCodeAt(i);
                  if (charCode < 0x80) {
                      output.push(charCode);
                  }
                  else if (charCode < 0x800) {
                      output.push((charCode >> 6) | 192);
                      output.push((charCode & 63) | 128);
                  }
                  else if (charCode < 0x10000) {
                      output.push((charCode >> 12) | 224);
                      output.push(((charCode >> 6) & 63) | 128);
                      output.push((charCode & 63) | 128);
                  }
                  else if (charCode < 0x20000) {
                      output.push((charCode >> 18) | 240);
                      output.push(((charCode >> 12) & 63) | 128);
                      output.push(((charCode >> 6) & 63) | 128);
                      output.push((charCode & 63) | 128);
                  }
                  else {
                      ts.Debug.assert(false, "Unexpected code point");
                  }
              }
              return output;
          }
          var base64Digits = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
          function convertToBase64(input) {
              var result = "";
              var charCodes = getExpandedCharCodes(input);
              var i = 0;
              var length = charCodes.length;
              var byte1, byte2, byte3, byte4;
              while (i < length) {
                  byte1 = charCodes[i] >> 2;
                  byte2 = (charCodes[i] & 3) << 4 | charCodes[i + 1] >> 4;
                  byte3 = (charCodes[i + 1] & 15) << 2 | charCodes[i + 2] >> 6;
                  byte4 = charCodes[i + 2] & 63;
                  if (i + 1 >= length) {
                      byte3 = byte4 = 64;
                  }
                  else if (i + 2 >= length) {
                      byte4 = 64;
                  }
                  result += base64Digits.charAt(byte1) + base64Digits.charAt(byte2) + base64Digits.charAt(byte3) + base64Digits.charAt(byte4);
                  i += 3;
              }
              return result;
          }
          ts.convertToBase64 = convertToBase64;
      })(ts || (ts = {}));
      var ts;
      (function (ts) {
          function getDefaultLibFileName(options) {
              return options.target === 2 ? "lib.es6.d.ts" : "lib.d.ts";
          }
          ts.getDefaultLibFileName = getDefaultLibFileName;
          function textSpanEnd(span) {
              return span.start + span.length;
          }
          ts.textSpanEnd = textSpanEnd;
          function textSpanIsEmpty(span) {
              return span.length === 0;
          }
          ts.textSpanIsEmpty = textSpanIsEmpty;
          function textSpanContainsPosition(span, position) {
              return position >= span.start && position < textSpanEnd(span);
          }
          ts.textSpanContainsPosition = textSpanContainsPosition;
          function textSpanContainsTextSpan(span, other) {
              return other.start >= span.start && textSpanEnd(other) <= textSpanEnd(span);
          }
          ts.textSpanContainsTextSpan = textSpanContainsTextSpan;
          function textSpanOverlapsWith(span, other) {
              var overlapStart = Math.max(span.start, other.start);
              var overlapEnd = Math.min(textSpanEnd(span), textSpanEnd(other));
              return overlapStart < overlapEnd;
          }
          ts.textSpanOverlapsWith = textSpanOverlapsWith;
          function textSpanOverlap(span1, span2) {
              var overlapStart = Math.max(span1.start, span2.start);
              var overlapEnd = Math.min(textSpanEnd(span1), textSpanEnd(span2));
              if (overlapStart < overlapEnd) {
                  return createTextSpanFromBounds(overlapStart, overlapEnd);
              }
              return undefined;
          }
          ts.textSpanOverlap = textSpanOverlap;
          function textSpanIntersectsWithTextSpan(span, other) {
              return other.start <= textSpanEnd(span) && textSpanEnd(other) >= span.start;
          }
          ts.textSpanIntersectsWithTextSpan = textSpanIntersectsWithTextSpan;
          function textSpanIntersectsWith(span, start, length) {
              var end = start + length;
              return start <= textSpanEnd(span) && end >= span.start;
          }
          ts.textSpanIntersectsWith = textSpanIntersectsWith;
          function textSpanIntersectsWithPosition(span, position) {
              return position <= textSpanEnd(span) && position >= span.start;
          }
          ts.textSpanIntersectsWithPosition = textSpanIntersectsWithPosition;
          function textSpanIntersection(span1, span2) {
              var intersectStart = Math.max(span1.start, span2.start);
              var intersectEnd = Math.min(textSpanEnd(span1), textSpanEnd(span2));
              if (intersectStart <= intersectEnd) {
                  return createTextSpanFromBounds(intersectStart, intersectEnd);
              }
              return undefined;
          }
          ts.textSpanIntersection = textSpanIntersection;
          function createTextSpan(start, length) {
              if (start < 0) {
                  throw new Error("start < 0");
              }
              if (length < 0) {
                  throw new Error("length < 0");
              }
              return { start: start, length: length };
          }
          ts.createTextSpan = createTextSpan;
          function createTextSpanFromBounds(start, end) {
              return createTextSpan(start, end - start);
          }
          ts.createTextSpanFromBounds = createTextSpanFromBounds;
          function textChangeRangeNewSpan(range) {
              return createTextSpan(range.span.start, range.newLength);
          }
          ts.textChangeRangeNewSpan = textChangeRangeNewSpan;
          function textChangeRangeIsUnchanged(range) {
              return textSpanIsEmpty(range.span) && range.newLength === 0;
          }
          ts.textChangeRangeIsUnchanged = textChangeRangeIsUnchanged;
          function createTextChangeRange(span, newLength) {
              if (newLength < 0) {
                  throw new Error("newLength < 0");
              }
              return { span: span, newLength: newLength };
          }
          ts.createTextChangeRange = createTextChangeRange;
          ts.unchangedTextChangeRange = createTextChangeRange(createTextSpan(0, 0), 0);
          function collapseTextChangeRangesAcrossMultipleVersions(changes) {
              if (changes.length === 0) {
                  return ts.unchangedTextChangeRange;
              }
              if (changes.length === 1) {
                  return changes[0];
              }
              var change0 = changes[0];
              var oldStartN = change0.span.start;
              var oldEndN = textSpanEnd(change0.span);
              var newEndN = oldStartN + change0.newLength;
              for (var i = 1; i < changes.length; i++) {
                  var nextChange = changes[i];
                  var oldStart1 = oldStartN;
                  var oldEnd1 = oldEndN;
                  var newEnd1 = newEndN;
                  var oldStart2 = nextChange.span.start;
                  var oldEnd2 = textSpanEnd(nextChange.span);
                  var newEnd2 = oldStart2 + nextChange.newLength;
                  oldStartN = Math.min(oldStart1, oldStart2);
                  oldEndN = Math.max(oldEnd1, oldEnd1 + (oldEnd2 - newEnd1));
                  newEndN = Math.max(newEnd2, newEnd2 + (newEnd1 - oldEnd2));
              }
              return createTextChangeRange(createTextSpanFromBounds(oldStartN, oldEndN), newEndN - oldStartN);
          }
          ts.collapseTextChangeRangesAcrossMultipleVersions = collapseTextChangeRangesAcrossMultipleVersions;
      })(ts || (ts = {}));
      /// <reference path="scanner.ts"/>
      /// <reference path="utilities.ts"/>
      var ts;
      (function (ts) {
          var nodeConstructors = new Array(230);
          ts.parseTime = 0;
          function getNodeConstructor(kind) {
              return nodeConstructors[kind] || (nodeConstructors[kind] = ts.objectAllocator.getNodeConstructor(kind));
          }
          ts.getNodeConstructor = getNodeConstructor;
          function createNode(kind) {
              return new (getNodeConstructor(kind))();
          }
          ts.createNode = createNode;
          function visitNode(cbNode, node) {
              if (node) {
                  return cbNode(node);
              }
          }
          function visitNodeArray(cbNodes, nodes) {
              if (nodes) {
                  return cbNodes(nodes);
              }
          }
          function visitEachNode(cbNode, nodes) {
              if (nodes) {
                  for (var _i = 0; _i < nodes.length; _i++) {
                      var node = nodes[_i];
                      var result = cbNode(node);
                      if (result) {
                          return result;
                      }
                  }
              }
          }
          function forEachChild(node, cbNode, cbNodeArray) {
              if (!node) {
                  return;
              }
              var visitNodes = cbNodeArray ? visitNodeArray : visitEachNode;
              var cbNodes = cbNodeArray || cbNode;
              switch (node.kind) {
                  case 127:
                      return visitNode(cbNode, node.left) ||
                          visitNode(cbNode, node.right);
                  case 129:
                      return visitNode(cbNode, node.name) ||
                          visitNode(cbNode, node.constraint) ||
                          visitNode(cbNode, node.expression);
                  case 130:
                  case 133:
                  case 132:
                  case 225:
                  case 226:
                  case 199:
                  case 153:
                      return visitNodes(cbNodes, node.decorators) ||
                          visitNodes(cbNodes, node.modifiers) ||
                          visitNode(cbNode, node.propertyName) ||
                          visitNode(cbNode, node.dotDotDotToken) ||
                          visitNode(cbNode, node.name) ||
                          visitNode(cbNode, node.questionToken) ||
                          visitNode(cbNode, node.type) ||
                          visitNode(cbNode, node.initializer);
                  case 143:
                  case 144:
                  case 139:
                  case 140:
                  case 141:
                      return visitNodes(cbNodes, node.decorators) ||
                          visitNodes(cbNodes, node.modifiers) ||
                          visitNodes(cbNodes, node.typeParameters) ||
                          visitNodes(cbNodes, node.parameters) ||
                          visitNode(cbNode, node.type);
                  case 135:
                  case 134:
                  case 136:
                  case 137:
                  case 138:
                  case 163:
                  case 201:
                  case 164:
                      return visitNodes(cbNodes, node.decorators) ||
                          visitNodes(cbNodes, node.modifiers) ||
                          visitNode(cbNode, node.asteriskToken) ||
                          visitNode(cbNode, node.name) ||
                          visitNode(cbNode, node.questionToken) ||
                          visitNodes(cbNodes, node.typeParameters) ||
                          visitNodes(cbNodes, node.parameters) ||
                          visitNode(cbNode, node.type) ||
                          visitNode(cbNode, node.equalsGreaterThanToken) ||
                          visitNode(cbNode, node.body);
                  case 142:
                      return visitNode(cbNode, node.typeName) ||
                          visitNodes(cbNodes, node.typeArguments);
                  case 145:
                      return visitNode(cbNode, node.exprName);
                  case 146:
                      return visitNodes(cbNodes, node.members);
                  case 147:
                      return visitNode(cbNode, node.elementType);
                  case 148:
                      return visitNodes(cbNodes, node.elementTypes);
                  case 149:
                      return visitNodes(cbNodes, node.types);
                  case 150:
                      return visitNode(cbNode, node.type);
                  case 151:
                  case 152:
                      return visitNodes(cbNodes, node.elements);
                  case 154:
                      return visitNodes(cbNodes, node.elements);
                  case 155:
                      return visitNodes(cbNodes, node.properties);
                  case 156:
                      return visitNode(cbNode, node.expression) ||
                          visitNode(cbNode, node.dotToken) ||
                          visitNode(cbNode, node.name);
                  case 157:
                      return visitNode(cbNode, node.expression) ||
                          visitNode(cbNode, node.argumentExpression);
                  case 158:
                  case 159:
                      return visitNode(cbNode, node.expression) ||
                          visitNodes(cbNodes, node.typeArguments) ||
                          visitNodes(cbNodes, node.arguments);
                  case 160:
                      return visitNode(cbNode, node.tag) ||
                          visitNode(cbNode, node.template);
                  case 161:
                      return visitNode(cbNode, node.type) ||
                          visitNode(cbNode, node.expression);
                  case 162:
                      return visitNode(cbNode, node.expression);
                  case 165:
                      return visitNode(cbNode, node.expression);
                  case 166:
                      return visitNode(cbNode, node.expression);
                  case 167:
                      return visitNode(cbNode, node.expression);
                  case 168:
                      return visitNode(cbNode, node.operand);
                  case 173:
                      return visitNode(cbNode, node.asteriskToken) ||
                          visitNode(cbNode, node.expression);
                  case 169:
                      return visitNode(cbNode, node.operand);
                  case 170:
                      return visitNode(cbNode, node.left) ||
                          visitNode(cbNode, node.operatorToken) ||
                          visitNode(cbNode, node.right);
                  case 171:
                      return visitNode(cbNode, node.condition) ||
                          visitNode(cbNode, node.questionToken) ||
                          visitNode(cbNode, node.whenTrue) ||
                          visitNode(cbNode, node.colonToken) ||
                          visitNode(cbNode, node.whenFalse);
                  case 174:
                      return visitNode(cbNode, node.expression);
                  case 180:
                  case 207:
                      return visitNodes(cbNodes, node.statements);
                  case 228:
                      return visitNodes(cbNodes, node.statements) ||
                          visitNode(cbNode, node.endOfFileToken);
                  case 181:
                      return visitNodes(cbNodes, node.decorators) ||
                          visitNodes(cbNodes, node.modifiers) ||
                          visitNode(cbNode, node.declarationList);
                  case 200:
                      return visitNodes(cbNodes, node.declarations);
                  case 183:
                      return visitNode(cbNode, node.expression);
                  case 184:
                      return visitNode(cbNode, node.expression) ||
                          visitNode(cbNode, node.thenStatement) ||
                          visitNode(cbNode, node.elseStatement);
                  case 185:
                      return visitNode(cbNode, node.statement) ||
                          visitNode(cbNode, node.expression);
                  case 186:
                      return visitNode(cbNode, node.expression) ||
                          visitNode(cbNode, node.statement);
                  case 187:
                      return visitNode(cbNode, node.initializer) ||
                          visitNode(cbNode, node.condition) ||
                          visitNode(cbNode, node.incrementor) ||
                          visitNode(cbNode, node.statement);
                  case 188:
                      return visitNode(cbNode, node.initializer) ||
                          visitNode(cbNode, node.expression) ||
                          visitNode(cbNode, node.statement);
                  case 189:
                      return visitNode(cbNode, node.initializer) ||
                          visitNode(cbNode, node.expression) ||
                          visitNode(cbNode, node.statement);
                  case 190:
                  case 191:
                      return visitNode(cbNode, node.label);
                  case 192:
                      return visitNode(cbNode, node.expression);
                  case 193:
                      return visitNode(cbNode, node.expression) ||
                          visitNode(cbNode, node.statement);
                  case 194:
                      return visitNode(cbNode, node.expression) ||
                          visitNode(cbNode, node.caseBlock);
                  case 208:
                      return visitNodes(cbNodes, node.clauses);
                  case 221:
                      return visitNode(cbNode, node.expression) ||
                          visitNodes(cbNodes, node.statements);
                  case 222:
                      return visitNodes(cbNodes, node.statements);
                  case 195:
                      return visitNode(cbNode, node.label) ||
                          visitNode(cbNode, node.statement);
                  case 196:
                      return visitNode(cbNode, node.expression);
                  case 197:
                      return visitNode(cbNode, node.tryBlock) ||
                          visitNode(cbNode, node.catchClause) ||
                          visitNode(cbNode, node.finallyBlock);
                  case 224:
                      return visitNode(cbNode, node.variableDeclaration) ||
                          visitNode(cbNode, node.block);
                  case 131:
                      return visitNode(cbNode, node.expression);
                  case 202:
                  case 175:
                      return visitNodes(cbNodes, node.decorators) ||
                          visitNodes(cbNodes, node.modifiers) ||
                          visitNode(cbNode, node.name) ||
                          visitNodes(cbNodes, node.typeParameters) ||
                          visitNodes(cbNodes, node.heritageClauses) ||
                          visitNodes(cbNodes, node.members);
                  case 203:
                      return visitNodes(cbNodes, node.decorators) ||
                          visitNodes(cbNodes, node.modifiers) ||
                          visitNode(cbNode, node.name) ||
                          visitNodes(cbNodes, node.typeParameters) ||
                          visitNodes(cbNodes, node.heritageClauses) ||
                          visitNodes(cbNodes, node.members);
                  case 204:
                      return visitNodes(cbNodes, node.decorators) ||
                          visitNodes(cbNodes, node.modifiers) ||
                          visitNode(cbNode, node.name) ||
                          visitNode(cbNode, node.type);
                  case 205:
                      return visitNodes(cbNodes, node.decorators) ||
                          visitNodes(cbNodes, node.modifiers) ||
                          visitNode(cbNode, node.name) ||
                          visitNodes(cbNodes, node.members);
                  case 227:
                      return visitNode(cbNode, node.name) ||
                          visitNode(cbNode, node.initializer);
                  case 206:
                      return visitNodes(cbNodes, node.decorators) ||
                          visitNodes(cbNodes, node.modifiers) ||
                          visitNode(cbNode, node.name) ||
                          visitNode(cbNode, node.body);
                  case 209:
                      return visitNodes(cbNodes, node.decorators) ||
                          visitNodes(cbNodes, node.modifiers) ||
                          visitNode(cbNode, node.name) ||
                          visitNode(cbNode, node.moduleReference);
                  case 210:
                      return visitNodes(cbNodes, node.decorators) ||
                          visitNodes(cbNodes, node.modifiers) ||
                          visitNode(cbNode, node.importClause) ||
                          visitNode(cbNode, node.moduleSpecifier);
                  case 211:
                      return visitNode(cbNode, node.name) ||
                          visitNode(cbNode, node.namedBindings);
                  case 212:
                      return visitNode(cbNode, node.name);
                  case 213:
                  case 217:
                      return visitNodes(cbNodes, node.elements);
                  case 216:
                      return visitNodes(cbNodes, node.decorators) ||
                          visitNodes(cbNodes, node.modifiers) ||
                          visitNode(cbNode, node.exportClause) ||
                          visitNode(cbNode, node.moduleSpecifier);
                  case 214:
                  case 218:
                      return visitNode(cbNode, node.propertyName) ||
                          visitNode(cbNode, node.name);
                  case 215:
                      return visitNodes(cbNodes, node.decorators) ||
                          visitNodes(cbNodes, node.modifiers) ||
                          visitNode(cbNode, node.expression);
                  case 172:
                      return visitNode(cbNode, node.head) || visitNodes(cbNodes, node.templateSpans);
                  case 178:
                      return visitNode(cbNode, node.expression) || visitNode(cbNode, node.literal);
                  case 128:
                      return visitNode(cbNode, node.expression);
                  case 223:
                      return visitNodes(cbNodes, node.types);
                  case 177:
                      return visitNode(cbNode, node.expression) ||
                          visitNodes(cbNodes, node.typeArguments);
                  case 220:
                      return visitNode(cbNode, node.expression);
                  case 219:
                      return visitNodes(cbNodes, node.decorators);
              }
          }
          ts.forEachChild = forEachChild;
          function createSourceFile(fileName, sourceText, languageVersion, setParentNodes) {
              if (setParentNodes === void 0) { setParentNodes = false; }
              var start = new Date().getTime();
              var result = Parser.parseSourceFile(fileName, sourceText, languageVersion, undefined, setParentNodes);
              ts.parseTime += new Date().getTime() - start;
              return result;
          }
          ts.createSourceFile = createSourceFile;
          function updateSourceFile(sourceFile, newText, textChangeRange, aggressiveChecks) {
              return IncrementalParser.updateSourceFile(sourceFile, newText, textChangeRange, aggressiveChecks);
          }
          ts.updateSourceFile = updateSourceFile;
          var Parser;
          (function (Parser) {
              var scanner = ts.createScanner(2, true);
              var disallowInAndDecoratorContext = 2 | 16;
              var sourceFile;
              var syntaxCursor;
              var token;
              var sourceText;
              var nodeCount;
              var identifiers;
              var identifierCount;
              var parsingContext;
              var contextFlags = 0;
              var parseErrorBeforeNextFinishedNode = false;
              function parseSourceFile(fileName, _sourceText, languageVersion, _syntaxCursor, setParentNodes) {
                  sourceText = _sourceText;
                  syntaxCursor = _syntaxCursor;
                  parsingContext = 0;
                  identifiers = {};
                  identifierCount = 0;
                  nodeCount = 0;
                  contextFlags = 0;
                  parseErrorBeforeNextFinishedNode = false;
                  createSourceFile(fileName, languageVersion);
                  scanner.setText(sourceText);
                  scanner.setOnError(scanError);
                  scanner.setScriptTarget(languageVersion);
                  token = nextToken();
                  processReferenceComments(sourceFile);
                  sourceFile.statements = parseList(0, true, parseSourceElement);
                  ts.Debug.assert(token === 1);
                  sourceFile.endOfFileToken = parseTokenNode();
                  setExternalModuleIndicator(sourceFile);
                  sourceFile.nodeCount = nodeCount;
                  sourceFile.identifierCount = identifierCount;
                  sourceFile.identifiers = identifiers;
                  if (setParentNodes) {
                      fixupParentReferences(sourceFile);
                  }
                  syntaxCursor = undefined;
                  scanner.setText("");
                  scanner.setOnError(undefined);
                  var result = sourceFile;
                  sourceFile = undefined;
                  identifiers = undefined;
                  syntaxCursor = undefined;
                  sourceText = undefined;
                  return result;
              }
              Parser.parseSourceFile = parseSourceFile;
              function fixupParentReferences(sourceFile) {
                  // normally parent references are set during binding. However, for clients that only need
                  // a syntax tree, and no semantic features, then the binding process is an unnecessary
                  // overhead.  This functions allows us to set all the parents, without all the expense of
                  // binding.
                  var parent = sourceFile;
                  forEachChild(sourceFile, visitNode);
                  return;
                  function visitNode(n) {
                      if (n.parent !== parent) {
                          n.parent = parent;
                          var saveParent = parent;
                          parent = n;
                          forEachChild(n, visitNode);
                          parent = saveParent;
                      }
                  }
              }
              function createSourceFile(fileName, languageVersion) {
                  sourceFile = createNode(228, 0);
                  sourceFile.pos = 0;
                  sourceFile.end = sourceText.length;
                  sourceFile.text = sourceText;
                  sourceFile.parseDiagnostics = [];
                  sourceFile.bindDiagnostics = [];
                  sourceFile.languageVersion = languageVersion;
                  sourceFile.fileName = ts.normalizePath(fileName);
                  sourceFile.flags = ts.fileExtensionIs(sourceFile.fileName, ".d.ts") ? 2048 : 0;
              }
              function setContextFlag(val, flag) {
                  if (val) {
                      contextFlags |= flag;
                  }
                  else {
                      contextFlags &= ~flag;
                  }
              }
              function setStrictModeContext(val) {
                  setContextFlag(val, 1);
              }
              function setDisallowInContext(val) {
                  setContextFlag(val, 2);
              }
              function setYieldContext(val) {
                  setContextFlag(val, 4);
              }
              function setGeneratorParameterContext(val) {
                  setContextFlag(val, 8);
              }
              function setDecoratorContext(val) {
                  setContextFlag(val, 16);
              }
              function doOutsideOfContext(flags, func) {
                  var currentContextFlags = contextFlags & flags;
                  if (currentContextFlags) {
                      setContextFlag(false, currentContextFlags);
                      var result = func();
                      setContextFlag(true, currentContextFlags);
                      return result;
                  }
                  return func();
              }
              function allowInAnd(func) {
                  if (contextFlags & 2) {
                      setDisallowInContext(false);
                      var result = func();
                      setDisallowInContext(true);
                      return result;
                  }
                  return func();
              }
              function disallowInAnd(func) {
                  if (contextFlags & 2) {
                      return func();
                  }
                  setDisallowInContext(true);
                  var result = func();
                  setDisallowInContext(false);
                  return result;
              }
              function doInYieldContext(func) {
                  if (contextFlags & 4) {
                      return func();
                  }
                  setYieldContext(true);
                  var result = func();
                  setYieldContext(false);
                  return result;
              }
              function doOutsideOfYieldContext(func) {
                  if (contextFlags & 4) {
                      setYieldContext(false);
                      var result = func();
                      setYieldContext(true);
                      return result;
                  }
                  return func();
              }
              function doInDecoratorContext(func) {
                  if (contextFlags & 16) {
                      return func();
                  }
                  setDecoratorContext(true);
                  var result = func();
                  setDecoratorContext(false);
                  return result;
              }
              function inYieldContext() {
                  return (contextFlags & 4) !== 0;
              }
              function inStrictModeContext() {
                  return (contextFlags & 1) !== 0;
              }
              function inGeneratorParameterContext() {
                  return (contextFlags & 8) !== 0;
              }
              function inDisallowInContext() {
                  return (contextFlags & 2) !== 0;
              }
              function inDecoratorContext() {
                  return (contextFlags & 16) !== 0;
              }
              function parseErrorAtCurrentToken(message, arg0) {
                  var start = scanner.getTokenPos();
                  var length = scanner.getTextPos() - start;
                  parseErrorAtPosition(start, length, message, arg0);
              }
              function parseErrorAtPosition(start, length, message, arg0) {
                  var lastError = ts.lastOrUndefined(sourceFile.parseDiagnostics);
                  if (!lastError || start !== lastError.start) {
                      sourceFile.parseDiagnostics.push(ts.createFileDiagnostic(sourceFile, start, length, message, arg0));
                  }
                  parseErrorBeforeNextFinishedNode = true;
              }
              function scanError(message, length) {
                  var pos = scanner.getTextPos();
                  parseErrorAtPosition(pos, length || 0, message);
              }
              function getNodePos() {
                  return scanner.getStartPos();
              }
              function getNodeEnd() {
                  return scanner.getStartPos();
              }
              function nextToken() {
                  return token = scanner.scan();
              }
              function getTokenPos(pos) {
                  return ts.skipTrivia(sourceText, pos);
              }
              function reScanGreaterToken() {
                  return token = scanner.reScanGreaterToken();
              }
              function reScanSlashToken() {
                  return token = scanner.reScanSlashToken();
              }
              function reScanTemplateToken() {
                  return token = scanner.reScanTemplateToken();
              }
              function speculationHelper(callback, isLookAhead) {
                  var saveToken = token;
                  var saveParseDiagnosticsLength = sourceFile.parseDiagnostics.length;
                  var saveParseErrorBeforeNextFinishedNode = parseErrorBeforeNextFinishedNode;
                  var saveContextFlags = contextFlags;
                  var result = isLookAhead
                      ? scanner.lookAhead(callback)
                      : scanner.tryScan(callback);
                  ts.Debug.assert(saveContextFlags === contextFlags);
                  if (!result || isLookAhead) {
                      token = saveToken;
                      sourceFile.parseDiagnostics.length = saveParseDiagnosticsLength;
                      parseErrorBeforeNextFinishedNode = saveParseErrorBeforeNextFinishedNode;
                  }
                  return result;
              }
              function lookAhead(callback) {
                  return speculationHelper(callback, true);
              }
              function tryParse(callback) {
                  return speculationHelper(callback, false);
              }
              function isIdentifier() {
                  if (token === 65) {
                      return true;
                  }
                  if (token === 110 && inYieldContext()) {
                      return false;
                  }
                  return token > 101;
              }
              function parseExpected(kind, diagnosticMessage) {
                  if (token === kind) {
                      nextToken();
                      return true;
                  }
                  if (diagnosticMessage) {
                      parseErrorAtCurrentToken(diagnosticMessage);
                  }
                  else {
                      parseErrorAtCurrentToken(ts.Diagnostics._0_expected, ts.tokenToString(kind));
                  }
                  return false;
              }
              function parseOptional(t) {
                  if (token === t) {
                      nextToken();
                      return true;
                  }
                  return false;
              }
              function parseOptionalToken(t) {
                  if (token === t) {
                      return parseTokenNode();
                  }
                  return undefined;
              }
              function parseExpectedToken(t, reportAtCurrentPosition, diagnosticMessage, arg0) {
                  return parseOptionalToken(t) ||
                      createMissingNode(t, reportAtCurrentPosition, diagnosticMessage, arg0);
              }
              function parseTokenNode() {
                  var node = createNode(token);
                  nextToken();
                  return finishNode(node);
              }
              function canParseSemicolon() {
                  if (token === 22) {
                      return true;
                  }
                  return token === 15 || token === 1 || scanner.hasPrecedingLineBreak();
              }
              function parseSemicolon() {
                  if (canParseSemicolon()) {
                      if (token === 22) {
                          nextToken();
                      }
                      return true;
                  }
                  else {
                      return parseExpected(22);
                  }
              }
              function createNode(kind, pos) {
                  nodeCount++;
                  var node = new (nodeConstructors[kind] || (nodeConstructors[kind] = ts.objectAllocator.getNodeConstructor(kind)))();
                  if (!(pos >= 0)) {
                      pos = scanner.getStartPos();
                  }
                  node.pos = pos;
                  node.end = pos;
                  return node;
              }
              function finishNode(node) {
                  node.end = scanner.getStartPos();
                  if (contextFlags) {
                      node.parserContextFlags = contextFlags;
                  }
                  if (parseErrorBeforeNextFinishedNode) {
                      parseErrorBeforeNextFinishedNode = false;
                      node.parserContextFlags |= 32;
                  }
                  return node;
              }
              function createMissingNode(kind, reportAtCurrentPosition, diagnosticMessage, arg0) {
                  if (reportAtCurrentPosition) {
                      parseErrorAtPosition(scanner.getStartPos(), 0, diagnosticMessage, arg0);
                  }
                  else {
                      parseErrorAtCurrentToken(diagnosticMessage, arg0);
                  }
                  var result = createNode(kind, scanner.getStartPos());
                  result.text = "";
                  return finishNode(result);
              }
              function internIdentifier(text) {
                  text = ts.escapeIdentifier(text);
                  return ts.hasProperty(identifiers, text) ? identifiers[text] : (identifiers[text] = text);
              }
              function createIdentifier(isIdentifier, diagnosticMessage) {
                  identifierCount++;
                  if (isIdentifier) {
                      var node = createNode(65);
                      if (token !== 65) {
                          node.originalKeywordKind = token;
                      }
                      node.text = internIdentifier(scanner.getTokenValue());
                      nextToken();
                      return finishNode(node);
                  }
                  return createMissingNode(65, false, diagnosticMessage || ts.Diagnostics.Identifier_expected);
              }
              function parseIdentifier(diagnosticMessage) {
                  return createIdentifier(isIdentifier(), diagnosticMessage);
              }
              function parseIdentifierName() {
                  return createIdentifier(isIdentifierOrKeyword());
              }
              function isLiteralPropertyName() {
                  return isIdentifierOrKeyword() ||
                      token === 8 ||
                      token === 7;
              }
              function parsePropertyName() {
                  if (token === 8 || token === 7) {
                      return parseLiteralNode(true);
                  }
                  if (token === 18) {
                      return parseComputedPropertyName();
                  }
                  return parseIdentifierName();
              }
              function parseComputedPropertyName() {
                  var node = createNode(128);
                  parseExpected(18);
                  var yieldContext = inYieldContext();
                  if (inGeneratorParameterContext()) {
                      setYieldContext(false);
                  }
                  node.expression = allowInAnd(parseExpression);
                  if (inGeneratorParameterContext()) {
                      setYieldContext(yieldContext);
                  }
                  parseExpected(19);
                  return finishNode(node);
              }
              function parseContextualModifier(t) {
                  return token === t && tryParse(nextTokenCanFollowModifier);
              }
              function nextTokenCanFollowModifier() {
                  if (token === 70) {
                      return nextToken() === 77;
                  }
                  if (token === 78) {
                      nextToken();
                      if (token === 73) {
                          return lookAhead(nextTokenIsClassOrFunction);
                      }
                      return token !== 35 && token !== 14 && canFollowModifier();
                  }
                  if (token === 73) {
                      return nextTokenIsClassOrFunction();
                  }
                  nextToken();
                  return canFollowModifier();
              }
              function parseAnyContextualModifier() {
                  return ts.isModifier(token) && tryParse(nextTokenCanFollowModifier);
              }
              function canFollowModifier() {
                  return token === 18
                      || token === 14
                      || token === 35
                      || isLiteralPropertyName();
              }
              function nextTokenIsClassOrFunction() {
                  nextToken();
                  return token === 69 || token === 83;
              }
              function isListElement(parsingContext, inErrorRecovery) {
                  var node = currentNode(parsingContext);
                  if (node) {
                      return true;
                  }
                  switch (parsingContext) {
                      case 0:
                      case 1:
                          return isSourceElement(inErrorRecovery);
                      case 2:
                      case 4:
                          return isStartOfStatement(inErrorRecovery);
                      case 3:
                          return token === 67 || token === 73;
                      case 5:
                          return isStartOfTypeMember();
                      case 6:
                          return lookAhead(isClassMemberStart) || (token === 22 && !inErrorRecovery);
                      case 7:
                          return token === 18 || isLiteralPropertyName();
                      case 13:
                          return token === 18 || token === 35 || isLiteralPropertyName();
                      case 10:
                          return isLiteralPropertyName();
                      case 8:
                          if (token === 14) {
                              return lookAhead(isValidHeritageClauseObjectLiteral);
                          }
                          if (!inErrorRecovery) {
                              return isStartOfLeftHandSideExpression() && !isHeritageClauseExtendsOrImplementsKeyword();
                          }
                          else {
                              return isIdentifier() && !isHeritageClauseExtendsOrImplementsKeyword();
                          }
                      case 9:
                          return isIdentifierOrPattern();
                      case 11:
                          return token === 23 || token === 21 || isIdentifierOrPattern();
                      case 16:
                          return isIdentifier();
                      case 12:
                      case 14:
                          return token === 23 || token === 21 || isStartOfExpression();
                      case 15:
                          return isStartOfParameter();
                      case 17:
                      case 18:
                          return token === 23 || isStartOfType();
                      case 19:
                          return isHeritageClause();
                      case 20:
                          return isIdentifierOrKeyword();
                  }
                  ts.Debug.fail("Non-exhaustive case in 'isListElement'.");
              }
              function isValidHeritageClauseObjectLiteral() {
                  ts.Debug.assert(token === 14);
                  if (nextToken() === 15) {
                      var next = nextToken();
                      return next === 23 || next === 14 || next === 79 || next === 102;
                  }
                  return true;
              }
              function nextTokenIsIdentifier() {
                  nextToken();
                  return isIdentifier();
              }
              function isHeritageClauseExtendsOrImplementsKeyword() {
                  if (token === 102 ||
                      token === 79) {
                      return lookAhead(nextTokenIsStartOfExpression);
                  }
                  return false;
              }
              function nextTokenIsStartOfExpression() {
                  nextToken();
                  return isStartOfExpression();
              }
              function isListTerminator(kind) {
                  if (token === 1) {
                      return true;
                  }
                  switch (kind) {
                      case 1:
                      case 2:
                      case 3:
                      case 5:
                      case 6:
                      case 7:
                      case 13:
                      case 10:
                      case 20:
                          return token === 15;
                      case 4:
                          return token === 15 || token === 67 || token === 73;
                      case 8:
                          return token === 14 || token === 79 || token === 102;
                      case 9:
                          return isVariableDeclaratorListTerminator();
                      case 16:
                          return token === 25 || token === 16 || token === 14 || token === 79 || token === 102;
                      case 12:
                          return token === 17 || token === 22;
                      case 14:
                      case 18:
                      case 11:
                          return token === 19;
                      case 15:
                          return token === 17 || token === 19;
                      case 17:
                          return token === 25 || token === 16;
                      case 19:
                          return token === 14 || token === 15;
                  }
              }
              function isVariableDeclaratorListTerminator() {
                  if (canParseSemicolon()) {
                      return true;
                  }
                  if (isInOrOfKeyword(token)) {
                      return true;
                  }
                  if (token === 32) {
                      return true;
                  }
                  return false;
              }
              function isInSomeParsingContext() {
                  for (var kind = 0; kind < 21; kind++) {
                      if (parsingContext & (1 << kind)) {
                          if (isListElement(kind, true) || isListTerminator(kind)) {
                              return true;
                          }
                      }
                  }
                  return false;
              }
              function parseList(kind, checkForStrictMode, parseElement) {
                  var saveParsingContext = parsingContext;
                  parsingContext |= 1 << kind;
                  var result = [];
                  result.pos = getNodePos();
                  var savedStrictModeContext = inStrictModeContext();
                  while (!isListTerminator(kind)) {
                      if (isListElement(kind, false)) {
                          var element = parseListElement(kind, parseElement);
                          result.push(element);
                          if (checkForStrictMode && !inStrictModeContext()) {
                              if (ts.isPrologueDirective(element)) {
                                  if (isUseStrictPrologueDirective(sourceFile, element)) {
                                      setStrictModeContext(true);
                                      checkForStrictMode = false;
                                  }
                              }
                              else {
                                  checkForStrictMode = false;
                              }
                          }
                          continue;
                      }
                      if (abortParsingListOrMoveToNextToken(kind)) {
                          break;
                      }
                  }
                  setStrictModeContext(savedStrictModeContext);
                  result.end = getNodeEnd();
                  parsingContext = saveParsingContext;
                  return result;
              }
              function isUseStrictPrologueDirective(sourceFile, node) {
                  ts.Debug.assert(ts.isPrologueDirective(node));
                  var nodeText = ts.getSourceTextOfNodeFromSourceFile(sourceFile, node.expression);
                  return nodeText === '"use strict"' || nodeText === "'use strict'";
              }
              function parseListElement(parsingContext, parseElement) {
                  var node = currentNode(parsingContext);
                  if (node) {
                      return consumeNode(node);
                  }
                  return parseElement();
              }
              function currentNode(parsingContext) {
                  if (parseErrorBeforeNextFinishedNode) {
                      return undefined;
                  }
                  if (!syntaxCursor) {
                      return undefined;
                  }
                  var node = syntaxCursor.currentNode(scanner.getStartPos());
                  if (ts.nodeIsMissing(node)) {
                      return undefined;
                  }
                  if (node.intersectsChange) {
                      return undefined;
                  }
                  if (ts.containsParseError(node)) {
                      return undefined;
                  }
                  var nodeContextFlags = node.parserContextFlags & 63;
                  if (nodeContextFlags !== contextFlags) {
                      return undefined;
                  }
                  if (!canReuseNode(node, parsingContext)) {
                      return undefined;
                  }
                  return node;
              }
              function consumeNode(node) {
                  scanner.setTextPos(node.end);
                  nextToken();
                  return node;
              }
              function canReuseNode(node, parsingContext) {
                  switch (parsingContext) {
                      case 1:
                          return isReusableModuleElement(node);
                      case 6:
                          return isReusableClassMember(node);
                      case 3:
                          return isReusableSwitchClause(node);
                      case 2:
                      case 4:
                          return isReusableStatement(node);
                      case 7:
                          return isReusableEnumMember(node);
                      case 5:
                          return isReusableTypeMember(node);
                      case 9:
                          return isReusableVariableDeclaration(node);
                      case 15:
                          return isReusableParameter(node);
                      case 19:
                      case 16:
                      case 18:
                      case 17:
                      case 12:
                      case 13:
                      case 8:
                  }
                  return false;
              }
              function isReusableModuleElement(node) {
                  if (node) {
                      switch (node.kind) {
                          case 210:
                          case 209:
                          case 216:
                          case 215:
                          case 202:
                          case 203:
                          case 206:
                          case 205:
                              return true;
                      }
                      return isReusableStatement(node);
                  }
                  return false;
              }
              function isReusableClassMember(node) {
                  if (node) {
                      switch (node.kind) {
                          case 136:
                          case 141:
                          case 135:
                          case 137:
                          case 138:
                          case 133:
                          case 179:
                              return true;
                      }
                  }
                  return false;
              }
              function isReusableSwitchClause(node) {
                  if (node) {
                      switch (node.kind) {
                          case 221:
                          case 222:
                              return true;
                      }
                  }
                  return false;
              }
              function isReusableStatement(node) {
                  if (node) {
                      switch (node.kind) {
                          case 201:
                          case 181:
                          case 180:
                          case 184:
                          case 183:
                          case 196:
                          case 192:
                          case 194:
                          case 191:
                          case 190:
                          case 188:
                          case 189:
                          case 187:
                          case 186:
                          case 193:
                          case 182:
                          case 197:
                          case 195:
                          case 185:
                          case 198:
                              return true;
                      }
                  }
                  return false;
              }
              function isReusableEnumMember(node) {
                  return node.kind === 227;
              }
              function isReusableTypeMember(node) {
                  if (node) {
                      switch (node.kind) {
                          case 140:
                          case 134:
                          case 141:
                          case 132:
                          case 139:
                              return true;
                      }
                  }
                  return false;
              }
              function isReusableVariableDeclaration(node) {
                  if (node.kind !== 199) {
                      return false;
                  }
                  var variableDeclarator = node;
                  return variableDeclarator.initializer === undefined;
              }
              function isReusableParameter(node) {
                  if (node.kind !== 130) {
                      return false;
                  }
                  var parameter = node;
                  return parameter.initializer === undefined;
              }
              function abortParsingListOrMoveToNextToken(kind) {
                  parseErrorAtCurrentToken(parsingContextErrors(kind));
                  if (isInSomeParsingContext()) {
                      return true;
                  }
                  nextToken();
                  return false;
              }
              function parsingContextErrors(context) {
                  switch (context) {
                      case 0: return ts.Diagnostics.Declaration_or_statement_expected;
                      case 1: return ts.Diagnostics.Declaration_or_statement_expected;
                      case 2: return ts.Diagnostics.Statement_expected;
                      case 3: return ts.Diagnostics.case_or_default_expected;
                      case 4: return ts.Diagnostics.Statement_expected;
                      case 5: return ts.Diagnostics.Property_or_signature_expected;
                      case 6: return ts.Diagnostics.Unexpected_token_A_constructor_method_accessor_or_property_was_expected;
                      case 7: return ts.Diagnostics.Enum_member_expected;
                      case 8: return ts.Diagnostics.Expression_expected;
                      case 9: return ts.Diagnostics.Variable_declaration_expected;
                      case 10: return ts.Diagnostics.Property_destructuring_pattern_expected;
                      case 11: return ts.Diagnostics.Array_element_destructuring_pattern_expected;
                      case 12: return ts.Diagnostics.Argument_expression_expected;
                      case 13: return ts.Diagnostics.Property_assignment_expected;
                      case 14: return ts.Diagnostics.Expression_or_comma_expected;
                      case 15: return ts.Diagnostics.Parameter_declaration_expected;
                      case 16: return ts.Diagnostics.Type_parameter_declaration_expected;
                      case 17: return ts.Diagnostics.Type_argument_expected;
                      case 18: return ts.Diagnostics.Type_expected;
                      case 19: return ts.Diagnostics.Unexpected_token_expected;
                      case 20: return ts.Diagnostics.Identifier_expected;
                  }
              }
              ;
              function parseDelimitedList(kind, parseElement, considerSemicolonAsDelimeter) {
                  var saveParsingContext = parsingContext;
                  parsingContext |= 1 << kind;
                  var result = [];
                  result.pos = getNodePos();
                  var commaStart = -1;
                  while (true) {
                      if (isListElement(kind, false)) {
                          result.push(parseListElement(kind, parseElement));
                          commaStart = scanner.getTokenPos();
                          if (parseOptional(23)) {
                              continue;
                          }
                          commaStart = -1;
                          if (isListTerminator(kind)) {
                              break;
                          }
                          parseExpected(23);
                          if (considerSemicolonAsDelimeter && token === 22 && !scanner.hasPrecedingLineBreak()) {
                              nextToken();
                          }
                          continue;
                      }
                      if (isListTerminator(kind)) {
                          break;
                      }
                      if (abortParsingListOrMoveToNextToken(kind)) {
                          break;
                      }
                  }
                  if (commaStart >= 0) {
                      result.hasTrailingComma = true;
                  }
                  result.end = getNodeEnd();
                  parsingContext = saveParsingContext;
                  return result;
              }
              function createMissingList() {
                  var pos = getNodePos();
                  var result = [];
                  result.pos = pos;
                  result.end = pos;
                  return result;
              }
              function parseBracketedList(kind, parseElement, open, close) {
                  if (parseExpected(open)) {
                      var result = parseDelimitedList(kind, parseElement);
                      parseExpected(close);
                      return result;
                  }
                  return createMissingList();
              }
              function parseEntityName(allowReservedWords, diagnosticMessage) {
                  var entity = parseIdentifier(diagnosticMessage);
                  while (parseOptional(20)) {
                      var node = createNode(127, entity.pos);
                      node.left = entity;
                      node.right = parseRightSideOfDot(allowReservedWords);
                      entity = finishNode(node);
                  }
                  return entity;
              }
              function parseRightSideOfDot(allowIdentifierNames) {
                  if (scanner.hasPrecedingLineBreak() && scanner.isReservedWord()) {
                      var matchesPattern = lookAhead(nextTokenIsIdentifierOrKeywordOnSameLine);
                      if (matchesPattern) {
                          return createMissingNode(65, true, ts.Diagnostics.Identifier_expected);
                      }
                  }
                  return allowIdentifierNames ? parseIdentifierName() : parseIdentifier();
              }
              function parseTemplateExpression() {
                  var template = createNode(172);
                  template.head = parseLiteralNode();
                  ts.Debug.assert(template.head.kind === 11, "Template head has wrong token kind");
                  var templateSpans = [];
                  templateSpans.pos = getNodePos();
                  do {
                      templateSpans.push(parseTemplateSpan());
                  } while (ts.lastOrUndefined(templateSpans).literal.kind === 12);
                  templateSpans.end = getNodeEnd();
                  template.templateSpans = templateSpans;
                  return finishNode(template);
              }
              function parseTemplateSpan() {
                  var span = createNode(178);
                  span.expression = allowInAnd(parseExpression);
                  var literal;
                  if (token === 15) {
                      reScanTemplateToken();
                      literal = parseLiteralNode();
                  }
                  else {
                      literal = parseExpectedToken(13, false, ts.Diagnostics._0_expected, ts.tokenToString(15));
                  }
                  span.literal = literal;
                  return finishNode(span);
              }
              function parseLiteralNode(internName) {
                  var node = createNode(token);
                  var text = scanner.getTokenValue();
                  node.text = internName ? internIdentifier(text) : text;
                  if (scanner.hasExtendedUnicodeEscape()) {
                      node.hasExtendedUnicodeEscape = true;
                  }
                  if (scanner.isUnterminated()) {
                      node.isUnterminated = true;
                  }
                  var tokenPos = scanner.getTokenPos();
                  nextToken();
                  finishNode(node);
                  if (node.kind === 7
                      && sourceText.charCodeAt(tokenPos) === 48
                      && ts.isOctalDigit(sourceText.charCodeAt(tokenPos + 1))) {
                      node.flags |= 16384;
                  }
                  return node;
              }
              function parseTypeReference() {
                  var node = createNode(142);
                  node.typeName = parseEntityName(false, ts.Diagnostics.Type_expected);
                  if (!scanner.hasPrecedingLineBreak() && token === 24) {
                      node.typeArguments = parseBracketedList(17, parseType, 24, 25);
                  }
                  return finishNode(node);
              }
              function parseTypeQuery() {
                  var node = createNode(145);
                  parseExpected(97);
                  node.exprName = parseEntityName(true);
                  return finishNode(node);
              }
              function parseTypeParameter() {
                  var node = createNode(129);
                  node.name = parseIdentifier();
                  if (parseOptional(79)) {
                      if (isStartOfType() || !isStartOfExpression()) {
                          node.constraint = parseType();
                      }
                      else {
                          node.expression = parseUnaryExpressionOrHigher();
                      }
                  }
                  return finishNode(node);
              }
              function parseTypeParameters() {
                  if (token === 24) {
                      return parseBracketedList(16, parseTypeParameter, 24, 25);
                  }
              }
              function parseParameterType() {
                  if (parseOptional(51)) {
                      return token === 8
                          ? parseLiteralNode(true)
                          : parseType();
                  }
                  return undefined;
              }
              function isStartOfParameter() {
                  return token === 21 || isIdentifierOrPattern() || ts.isModifier(token) || token === 52;
              }
              function setModifiers(node, modifiers) {
                  if (modifiers) {
                      node.flags |= modifiers.flags;
                      node.modifiers = modifiers;
                  }
              }
              function parseParameter() {
                  var node = createNode(130);
                  node.decorators = parseDecorators();
                  setModifiers(node, parseModifiers());
                  node.dotDotDotToken = parseOptionalToken(21);
                  node.name = inGeneratorParameterContext() ? doInYieldContext(parseIdentifierOrPattern) : parseIdentifierOrPattern();
                  if (ts.getFullWidth(node.name) === 0 && node.flags === 0 && ts.isModifier(token)) {
                      nextToken();
                  }
                  node.questionToken = parseOptionalToken(50);
                  node.type = parseParameterType();
                  node.initializer = inGeneratorParameterContext() ? doOutsideOfYieldContext(parseParameterInitializer) : parseParameterInitializer();
                  return finishNode(node);
              }
              function parseParameterInitializer() {
                  return parseInitializer(true);
              }
              function fillSignature(returnToken, yieldAndGeneratorParameterContext, requireCompleteParameterList, signature) {
                  var returnTokenRequired = returnToken === 32;
                  signature.typeParameters = parseTypeParameters();
                  signature.parameters = parseParameterList(yieldAndGeneratorParameterContext, requireCompleteParameterList);
                  if (returnTokenRequired) {
                      parseExpected(returnToken);
                      signature.type = parseType();
                  }
                  else if (parseOptional(returnToken)) {
                      signature.type = parseType();
                  }
              }
              function parseParameterList(yieldAndGeneratorParameterContext, requireCompleteParameterList) {
                  if (parseExpected(16)) {
                      var savedYieldContext = inYieldContext();
                      var savedGeneratorParameterContext = inGeneratorParameterContext();
                      setYieldContext(yieldAndGeneratorParameterContext);
                      setGeneratorParameterContext(yieldAndGeneratorParameterContext);
                      var result = parseDelimitedList(15, parseParameter);
                      setYieldContext(savedYieldContext);
                      setGeneratorParameterContext(savedGeneratorParameterContext);
                      if (!parseExpected(17) && requireCompleteParameterList) {
                          return undefined;
                      }
                      return result;
                  }
                  return requireCompleteParameterList ? undefined : createMissingList();
              }
              function parseTypeMemberSemicolon() {
                  if (parseOptional(23)) {
                      return;
                  }
                  parseSemicolon();
              }
              function parseSignatureMember(kind) {
                  var node = createNode(kind);
                  if (kind === 140) {
                      parseExpected(88);
                  }
                  fillSignature(51, false, false, node);
                  parseTypeMemberSemicolon();
                  return finishNode(node);
              }
              function isIndexSignature() {
                  if (token !== 18) {
                      return false;
                  }
                  return lookAhead(isUnambiguouslyIndexSignature);
              }
              function isUnambiguouslyIndexSignature() {
                  nextToken();
                  if (token === 21 || token === 19) {
                      return true;
                  }
                  if (ts.isModifier(token)) {
                      nextToken();
                      if (isIdentifier()) {
                          return true;
                      }
                  }
                  else if (!isIdentifier()) {
                      return false;
                  }
                  else {
                      nextToken();
                  }
                  if (token === 51 || token === 23) {
                      return true;
                  }
                  if (token !== 50) {
                      return false;
                  }
                  nextToken();
                  return token === 51 || token === 23 || token === 19;
              }
              function parseIndexSignatureDeclaration(fullStart, decorators, modifiers) {
                  var node = createNode(141, fullStart);
                  node.decorators = decorators;
                  setModifiers(node, modifiers);
                  node.parameters = parseBracketedList(15, parseParameter, 18, 19);
                  node.type = parseTypeAnnotation();
                  parseTypeMemberSemicolon();
                  return finishNode(node);
              }
              function parsePropertyOrMethodSignature() {
                  var fullStart = scanner.getStartPos();
                  var name = parsePropertyName();
                  var questionToken = parseOptionalToken(50);
                  if (token === 16 || token === 24) {
                      var method = createNode(134, fullStart);
                      method.name = name;
                      method.questionToken = questionToken;
                      fillSignature(51, false, false, method);
                      parseTypeMemberSemicolon();
                      return finishNode(method);
                  }
                  else {
                      var property = createNode(132, fullStart);
                      property.name = name;
                      property.questionToken = questionToken;
                      property.type = parseTypeAnnotation();
                      parseTypeMemberSemicolon();
                      return finishNode(property);
                  }
              }
              function isStartOfTypeMember() {
                  switch (token) {
                      case 16:
                      case 24:
                      case 18:
                          return true;
                      default:
                          if (ts.isModifier(token)) {
                              var result = lookAhead(isStartOfIndexSignatureDeclaration);
                              if (result) {
                                  return result;
                              }
                          }
                          return isLiteralPropertyName() && lookAhead(isTypeMemberWithLiteralPropertyName);
                  }
              }
              function isStartOfIndexSignatureDeclaration() {
                  while (ts.isModifier(token)) {
                      nextToken();
                  }
                  return isIndexSignature();
              }
              function isTypeMemberWithLiteralPropertyName() {
                  nextToken();
                  return token === 16 ||
                      token === 24 ||
                      token === 50 ||
                      token === 51 ||
                      canParseSemicolon();
              }
              function parseTypeMember() {
                  switch (token) {
                      case 16:
                      case 24:
                          return parseSignatureMember(139);
                      case 18:
                          return isIndexSignature()
                              ? parseIndexSignatureDeclaration(scanner.getStartPos(), undefined, undefined)
                              : parsePropertyOrMethodSignature();
                      case 88:
                          if (lookAhead(isStartOfConstructSignature)) {
                              return parseSignatureMember(140);
                          }
                      case 8:
                      case 7:
                          return parsePropertyOrMethodSignature();
                      default:
                          if (ts.isModifier(token)) {
                              var result = tryParse(parseIndexSignatureWithModifiers);
                              if (result) {
                                  return result;
                              }
                          }
                          if (isIdentifierOrKeyword()) {
                              return parsePropertyOrMethodSignature();
                          }
                  }
              }
              function parseIndexSignatureWithModifiers() {
                  var fullStart = scanner.getStartPos();
                  var decorators = parseDecorators();
                  var modifiers = parseModifiers();
                  return isIndexSignature()
                      ? parseIndexSignatureDeclaration(fullStart, decorators, modifiers)
                      : undefined;
              }
              function isStartOfConstructSignature() {
                  nextToken();
                  return token === 16 || token === 24;
              }
              function parseTypeLiteral() {
                  var node = createNode(146);
                  node.members = parseObjectTypeMembers();
                  return finishNode(node);
              }
              function parseObjectTypeMembers() {
                  var members;
                  if (parseExpected(14)) {
                      members = parseList(5, false, parseTypeMember);
                      parseExpected(15);
                  }
                  else {
                      members = createMissingList();
                  }
                  return members;
              }
              function parseTupleType() {
                  var node = createNode(148);
                  node.elementTypes = parseBracketedList(18, parseType, 18, 19);
                  return finishNode(node);
              }
              function parseParenthesizedType() {
                  var node = createNode(150);
                  parseExpected(16);
                  node.type = parseType();
                  parseExpected(17);
                  return finishNode(node);
              }
              function parseFunctionOrConstructorType(kind) {
                  var node = createNode(kind);
                  if (kind === 144) {
                      parseExpected(88);
                  }
                  fillSignature(32, false, false, node);
                  return finishNode(node);
              }
              function parseKeywordAndNoDot() {
                  var node = parseTokenNode();
                  return token === 20 ? undefined : node;
              }
              function parseNonArrayType() {
                  switch (token) {
                      case 112:
                      case 122:
                      case 120:
                      case 113:
                      case 123:
                          var node = tryParse(parseKeywordAndNoDot);
                          return node || parseTypeReference();
                      case 99:
                          return parseTokenNode();
                      case 97:
                          return parseTypeQuery();
                      case 14:
                          return parseTypeLiteral();
                      case 18:
                          return parseTupleType();
                      case 16:
                          return parseParenthesizedType();
                      default:
                          return parseTypeReference();
                  }
              }
              function isStartOfType() {
                  switch (token) {
                      case 112:
                      case 122:
                      case 120:
                      case 113:
                      case 123:
                      case 99:
                      case 97:
                      case 14:
                      case 18:
                      case 24:
                      case 88:
                          return true;
                      case 16:
                          return lookAhead(isStartOfParenthesizedOrFunctionType);
                      default:
                          return isIdentifier();
                  }
              }
              function isStartOfParenthesizedOrFunctionType() {
                  nextToken();
                  return token === 17 || isStartOfParameter() || isStartOfType();
              }
              function parseArrayTypeOrHigher() {
                  var type = parseNonArrayType();
                  while (!scanner.hasPrecedingLineBreak() && parseOptional(18)) {
                      parseExpected(19);
                      var node = createNode(147, type.pos);
                      node.elementType = type;
                      type = finishNode(node);
                  }
                  return type;
              }
              function parseUnionTypeOrHigher() {
                  var type = parseArrayTypeOrHigher();
                  if (token === 44) {
                      var types = [type];
                      types.pos = type.pos;
                      while (parseOptional(44)) {
                          types.push(parseArrayTypeOrHigher());
                      }
                      types.end = getNodeEnd();
                      var node = createNode(149, type.pos);
                      node.types = types;
                      type = finishNode(node);
                  }
                  return type;
              }
              function isStartOfFunctionType() {
                  if (token === 24) {
                      return true;
                  }
                  return token === 16 && lookAhead(isUnambiguouslyStartOfFunctionType);
              }
              function isUnambiguouslyStartOfFunctionType() {
                  nextToken();
                  if (token === 17 || token === 21) {
                      return true;
                  }
                  if (isIdentifier() || ts.isModifier(token)) {
                      nextToken();
                      if (token === 51 || token === 23 ||
                          token === 50 || token === 53 ||
                          isIdentifier() || ts.isModifier(token)) {
                          return true;
                      }
                      if (token === 17) {
                          nextToken();
                          if (token === 32) {
                              return true;
                          }
                      }
                  }
                  return false;
              }
              function parseType() {
                  var savedYieldContext = inYieldContext();
                  var savedGeneratorParameterContext = inGeneratorParameterContext();
                  setYieldContext(false);
                  setGeneratorParameterContext(false);
                  var result = parseTypeWorker();
                  setYieldContext(savedYieldContext);
                  setGeneratorParameterContext(savedGeneratorParameterContext);
                  return result;
              }
              function parseTypeWorker() {
                  if (isStartOfFunctionType()) {
                      return parseFunctionOrConstructorType(143);
                  }
                  if (token === 88) {
                      return parseFunctionOrConstructorType(144);
                  }
                  return parseUnionTypeOrHigher();
              }
              function parseTypeAnnotation() {
                  return parseOptional(51) ? parseType() : undefined;
              }
              function isStartOfLeftHandSideExpression() {
                  switch (token) {
                      case 93:
                      case 91:
                      case 89:
                      case 95:
                      case 80:
                      case 7:
                      case 8:
                      case 10:
                      case 11:
                      case 16:
                      case 18:
                      case 14:
                      case 83:
                      case 69:
                      case 88:
                      case 36:
                      case 57:
                      case 65:
                          return true;
                      default:
                          return isIdentifier();
                  }
              }
              function isStartOfExpression() {
                  if (isStartOfLeftHandSideExpression()) {
                      return true;
                  }
                  switch (token) {
                      case 33:
                      case 34:
                      case 47:
                      case 46:
                      case 74:
                      case 97:
                      case 99:
                      case 38:
                      case 39:
                      case 24:
                      case 110:
                          return true;
                      default:
                          if (isBinaryOperator()) {
                              return true;
                          }
                          return isIdentifier();
                  }
              }
              function isStartOfExpressionStatement() {
                  return token !== 14 &&
                      token !== 83 &&
                      token !== 69 &&
                      token !== 52 &&
                      isStartOfExpression();
              }
              function parseExpression() {
                  // Expression[in]:
                  //      AssignmentExpression[in]
                  //      Expression[in] , AssignmentExpression[in]
                  var saveDecoratorContext = inDecoratorContext();
                  if (saveDecoratorContext) {
                      setDecoratorContext(false);
                  }
                  var expr = parseAssignmentExpressionOrHigher();
                  var operatorToken;
                  while ((operatorToken = parseOptionalToken(23))) {
                      expr = makeBinaryExpression(expr, operatorToken, parseAssignmentExpressionOrHigher());
                  }
                  if (saveDecoratorContext) {
                      setDecoratorContext(true);
                  }
                  return expr;
              }
              function parseInitializer(inParameter) {
                  if (token !== 53) {
                      if (scanner.hasPrecedingLineBreak() || (inParameter && token === 14) || !isStartOfExpression()) {
                          return undefined;
                      }
                  }
                  parseExpected(53);
                  return parseAssignmentExpressionOrHigher();
              }
              function parseAssignmentExpressionOrHigher() {
                  //  AssignmentExpression[in,yield]:
                  //      1) ConditionalExpression[?in,?yield]
                  //      2) LeftHandSideExpression = AssignmentExpression[?in,?yield]
                  //      3) LeftHandSideExpression AssignmentOperator AssignmentExpression[?in,?yield]
                  //      4) ArrowFunctionExpression[?in,?yield]
                  //      5) [+Yield] YieldExpression[?In]
                  //
                  // Note: for ease of implementation we treat productions '2' and '3' as the same thing.
                  // (i.e. they're both BinaryExpressions with an assignment operator in it).
                  if (isYieldExpression()) {
                      return parseYieldExpression();
                  }
                  var arrowExpression = tryParseParenthesizedArrowFunctionExpression();
                  if (arrowExpression) {
                      return arrowExpression;
                  }
                  var expr = parseBinaryExpressionOrHigher(0);
                  if (expr.kind === 65 && token === 32) {
                      return parseSimpleArrowFunctionExpression(expr);
                  }
                  if (ts.isLeftHandSideExpression(expr) && ts.isAssignmentOperator(reScanGreaterToken())) {
                      return makeBinaryExpression(expr, parseTokenNode(), parseAssignmentExpressionOrHigher());
                  }
                  return parseConditionalExpressionRest(expr);
              }
              function isYieldExpression() {
                  if (token === 110) {
                      if (inYieldContext()) {
                          return true;
                      }
                      if (inStrictModeContext()) {
                          return true;
                      }
                      return lookAhead(nextTokenIsIdentifierOnSameLine);
                  }
                  return false;
              }
              function nextTokenIsIdentifierOnSameLine() {
                  nextToken();
                  return !scanner.hasPrecedingLineBreak() && isIdentifier();
              }
              function nextTokenIsIdentifierOrStartOfDestructuringOnTheSameLine() {
                  nextToken();
                  return !scanner.hasPrecedingLineBreak() &&
                      (isIdentifier() || token === 14 || token === 18);
              }
              function parseYieldExpression() {
                  var node = createNode(173);
                  nextToken();
                  if (!scanner.hasPrecedingLineBreak() &&
                      (token === 35 || isStartOfExpression())) {
                      node.asteriskToken = parseOptionalToken(35);
                      node.expression = parseAssignmentExpressionOrHigher();
                      return finishNode(node);
                  }
                  else {
                      return finishNode(node);
                  }
              }
              function parseSimpleArrowFunctionExpression(identifier) {
                  ts.Debug.assert(token === 32, "parseSimpleArrowFunctionExpression should only have been called if we had a =>");
                  var node = createNode(164, identifier.pos);
                  var parameter = createNode(130, identifier.pos);
                  parameter.name = identifier;
                  finishNode(parameter);
                  node.parameters = [parameter];
                  node.parameters.pos = parameter.pos;
                  node.parameters.end = parameter.end;
                  node.equalsGreaterThanToken = parseExpectedToken(32, false, ts.Diagnostics._0_expected, "=>");
                  node.body = parseArrowFunctionExpressionBody();
                  return finishNode(node);
              }
              function tryParseParenthesizedArrowFunctionExpression() {
                  var triState = isParenthesizedArrowFunctionExpression();
                  if (triState === 0) {
                      return undefined;
                  }
                  var arrowFunction = triState === 1
                      ? parseParenthesizedArrowFunctionExpressionHead(true)
                      : tryParse(parsePossibleParenthesizedArrowFunctionExpressionHead);
                  if (!arrowFunction) {
                      return undefined;
                  }
                  var lastToken = token;
                  arrowFunction.equalsGreaterThanToken = parseExpectedToken(32, false, ts.Diagnostics._0_expected, "=>");
                  arrowFunction.body = (lastToken === 32 || lastToken === 14)
                      ? parseArrowFunctionExpressionBody()
                      : parseIdentifier();
                  return finishNode(arrowFunction);
              }
              function isParenthesizedArrowFunctionExpression() {
                  if (token === 16 || token === 24) {
                      return lookAhead(isParenthesizedArrowFunctionExpressionWorker);
                  }
                  if (token === 32) {
                      return 1;
                  }
                  return 0;
              }
              function isParenthesizedArrowFunctionExpressionWorker() {
                  var first = token;
                  var second = nextToken();
                  if (first === 16) {
                      if (second === 17) {
                          var third = nextToken();
                          switch (third) {
                              case 32:
                              case 51:
                              case 14:
                                  return 1;
                              default:
                                  return 0;
                          }
                      }
                      if (second === 18 || second === 14) {
                          return 2;
                      }
                      if (second === 21) {
                          return 1;
                      }
                      if (!isIdentifier()) {
                          return 0;
                      }
                      if (nextToken() === 51) {
                          return 1;
                      }
                      return 2;
                  }
                  else {
                      ts.Debug.assert(first === 24);
                      if (!isIdentifier()) {
                          return 0;
                      }
                      return 2;
                  }
              }
              function parsePossibleParenthesizedArrowFunctionExpressionHead() {
                  return parseParenthesizedArrowFunctionExpressionHead(false);
              }
              function parseParenthesizedArrowFunctionExpressionHead(allowAmbiguity) {
                  var node = createNode(164);
                  fillSignature(51, false, !allowAmbiguity, node);
                  if (!node.parameters) {
                      return undefined;
                  }
                  if (!allowAmbiguity && token !== 32 && token !== 14) {
                      return undefined;
                  }
                  return node;
              }
              function parseArrowFunctionExpressionBody() {
                  if (token === 14) {
                      return parseFunctionBlock(false, false);
                  }
                  if (isStartOfStatement(true) &&
                      !isStartOfExpressionStatement() &&
                      token !== 83 &&
                      token !== 69) {
                      return parseFunctionBlock(false, true);
                  }
                  return parseAssignmentExpressionOrHigher();
              }
              function parseConditionalExpressionRest(leftOperand) {
                  var questionToken = parseOptionalToken(50);
                  if (!questionToken) {
                      return leftOperand;
                  }
                  var node = createNode(171, leftOperand.pos);
                  node.condition = leftOperand;
                  node.questionToken = questionToken;
                  node.whenTrue = doOutsideOfContext(disallowInAndDecoratorContext, parseAssignmentExpressionOrHigher);
                  node.colonToken = parseExpectedToken(51, false, ts.Diagnostics._0_expected, ts.tokenToString(51));
                  node.whenFalse = parseAssignmentExpressionOrHigher();
                  return finishNode(node);
              }
              function parseBinaryExpressionOrHigher(precedence) {
                  var leftOperand = parseUnaryExpressionOrHigher();
                  return parseBinaryExpressionRest(precedence, leftOperand);
              }
              function isInOrOfKeyword(t) {
                  return t === 86 || t === 126;
              }
              function parseBinaryExpressionRest(precedence, leftOperand) {
                  while (true) {
                      reScanGreaterToken();
                      var newPrecedence = getBinaryOperatorPrecedence();
                      if (newPrecedence <= precedence) {
                          break;
                      }
                      if (token === 86 && inDisallowInContext()) {
                          break;
                      }
                      leftOperand = makeBinaryExpression(leftOperand, parseTokenNode(), parseBinaryExpressionOrHigher(newPrecedence));
                  }
                  return leftOperand;
              }
              function isBinaryOperator() {
                  if (inDisallowInContext() && token === 86) {
                      return false;
                  }
                  return getBinaryOperatorPrecedence() > 0;
              }
              function getBinaryOperatorPrecedence() {
                  switch (token) {
                      case 49:
                          return 1;
                      case 48:
                          return 2;
                      case 44:
                          return 3;
                      case 45:
                          return 4;
                      case 43:
                          return 5;
                      case 28:
                      case 29:
                      case 30:
                      case 31:
                          return 6;
                      case 24:
                      case 25:
                      case 26:
                      case 27:
                      case 87:
                      case 86:
                          return 7;
                      case 40:
                      case 41:
                      case 42:
                          return 8;
                      case 33:
                      case 34:
                          return 9;
                      case 35:
                      case 36:
                      case 37:
                          return 10;
                  }
                  return -1;
              }
              function makeBinaryExpression(left, operatorToken, right) {
                  var node = createNode(170, left.pos);
                  node.left = left;
                  node.operatorToken = operatorToken;
                  node.right = right;
                  return finishNode(node);
              }
              function parsePrefixUnaryExpression() {
                  var node = createNode(168);
                  node.operator = token;
                  nextToken();
                  node.operand = parseUnaryExpressionOrHigher();
                  return finishNode(node);
              }
              function parseDeleteExpression() {
                  var node = createNode(165);
                  nextToken();
                  node.expression = parseUnaryExpressionOrHigher();
                  return finishNode(node);
              }
              function parseTypeOfExpression() {
                  var node = createNode(166);
                  nextToken();
                  node.expression = parseUnaryExpressionOrHigher();
                  return finishNode(node);
              }
              function parseVoidExpression() {
                  var node = createNode(167);
                  nextToken();
                  node.expression = parseUnaryExpressionOrHigher();
                  return finishNode(node);
              }
              function parseUnaryExpressionOrHigher() {
                  switch (token) {
                      case 33:
                      case 34:
                      case 47:
                      case 46:
                      case 38:
                      case 39:
                          return parsePrefixUnaryExpression();
                      case 74:
                          return parseDeleteExpression();
                      case 97:
                          return parseTypeOfExpression();
                      case 99:
                          return parseVoidExpression();
                      case 24:
                          return parseTypeAssertion();
                      default:
                          return parsePostfixExpressionOrHigher();
                  }
              }
              function parsePostfixExpressionOrHigher() {
                  var expression = parseLeftHandSideExpressionOrHigher();
                  ts.Debug.assert(ts.isLeftHandSideExpression(expression));
                  if ((token === 38 || token === 39) && !scanner.hasPrecedingLineBreak()) {
                      var node = createNode(169, expression.pos);
                      node.operand = expression;
                      node.operator = token;
                      nextToken();
                      return finishNode(node);
                  }
                  return expression;
              }
              function parseLeftHandSideExpressionOrHigher() {
                  var expression = token === 91
                      ? parseSuperExpression()
                      : parseMemberExpressionOrHigher();
                  return parseCallExpressionRest(expression);
              }
              function parseMemberExpressionOrHigher() {
                  var expression = parsePrimaryExpression();
                  return parseMemberExpressionRest(expression);
              }
              function parseSuperExpression() {
                  var expression = parseTokenNode();
                  if (token === 16 || token === 20) {
                      return expression;
                  }
                  var node = createNode(156, expression.pos);
                  node.expression = expression;
                  node.dotToken = parseExpectedToken(20, false, ts.Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access);
                  node.name = parseRightSideOfDot(true);
                  return finishNode(node);
              }
              function parseTypeAssertion() {
                  var node = createNode(161);
                  parseExpected(24);
                  node.type = parseType();
                  parseExpected(25);
                  node.expression = parseUnaryExpressionOrHigher();
                  return finishNode(node);
              }
              function parseMemberExpressionRest(expression) {
                  while (true) {
                      var dotToken = parseOptionalToken(20);
                      if (dotToken) {
                          var propertyAccess = createNode(156, expression.pos);
                          propertyAccess.expression = expression;
                          propertyAccess.dotToken = dotToken;
                          propertyAccess.name = parseRightSideOfDot(true);
                          expression = finishNode(propertyAccess);
                          continue;
                      }
                      if (!inDecoratorContext() && parseOptional(18)) {
                          var indexedAccess = createNode(157, expression.pos);
                          indexedAccess.expression = expression;
                          if (token !== 19) {
                              indexedAccess.argumentExpression = allowInAnd(parseExpression);
                              if (indexedAccess.argumentExpression.kind === 8 || indexedAccess.argumentExpression.kind === 7) {
                                  var literal = indexedAccess.argumentExpression;
                                  literal.text = internIdentifier(literal.text);
                              }
                          }
                          parseExpected(19);
                          expression = finishNode(indexedAccess);
                          continue;
                      }
                      if (token === 10 || token === 11) {
                          var tagExpression = createNode(160, expression.pos);
                          tagExpression.tag = expression;
                          tagExpression.template = token === 10
                              ? parseLiteralNode()
                              : parseTemplateExpression();
                          expression = finishNode(tagExpression);
                          continue;
                      }
                      return expression;
                  }
              }
              function parseCallExpressionRest(expression) {
                  while (true) {
                      expression = parseMemberExpressionRest(expression);
                      if (token === 24) {
                          var typeArguments = tryParse(parseTypeArgumentsInExpression);
                          if (!typeArguments) {
                              return expression;
                          }
                          var callExpr = createNode(158, expression.pos);
                          callExpr.expression = expression;
                          callExpr.typeArguments = typeArguments;
                          callExpr.arguments = parseArgumentList();
                          expression = finishNode(callExpr);
                          continue;
                      }
                      else if (token === 16) {
                          var callExpr = createNode(158, expression.pos);
                          callExpr.expression = expression;
                          callExpr.arguments = parseArgumentList();
                          expression = finishNode(callExpr);
                          continue;
                      }
                      return expression;
                  }
              }
              function parseArgumentList() {
                  parseExpected(16);
                  var result = parseDelimitedList(12, parseArgumentExpression);
                  parseExpected(17);
                  return result;
              }
              function parseTypeArgumentsInExpression() {
                  if (!parseOptional(24)) {
                      return undefined;
                  }
                  var typeArguments = parseDelimitedList(17, parseType);
                  if (!parseExpected(25)) {
                      return undefined;
                  }
                  return typeArguments && canFollowTypeArgumentsInExpression()
                      ? typeArguments
                      : undefined;
              }
              function canFollowTypeArgumentsInExpression() {
                  switch (token) {
                      case 16:
                      case 20:
                      case 17:
                      case 19:
                      case 51:
                      case 22:
                      case 50:
                      case 28:
                      case 30:
                      case 29:
                      case 31:
                      case 48:
                      case 49:
                      case 45:
                      case 43:
                      case 44:
                      case 15:
                      case 1:
                          return true;
                      case 23:
                      case 14:
                      default:
                          return false;
                  }
              }
              function parsePrimaryExpression() {
                  switch (token) {
                      case 7:
                      case 8:
                      case 10:
                          return parseLiteralNode();
                      case 93:
                      case 91:
                      case 89:
                      case 95:
                      case 80:
                          return parseTokenNode();
                      case 16:
                          return parseParenthesizedExpression();
                      case 18:
                          return parseArrayLiteralExpression();
                      case 14:
                          return parseObjectLiteralExpression();
                      case 69:
                          return parseClassExpression();
                      case 83:
                          return parseFunctionExpression();
                      case 88:
                          return parseNewExpression();
                      case 36:
                      case 57:
                          if (reScanSlashToken() === 9) {
                              return parseLiteralNode();
                          }
                          break;
                      case 11:
                          return parseTemplateExpression();
                  }
                  return parseIdentifier(ts.Diagnostics.Expression_expected);
              }
              function parseParenthesizedExpression() {
                  var node = createNode(162);
                  parseExpected(16);
                  node.expression = allowInAnd(parseExpression);
                  parseExpected(17);
                  return finishNode(node);
              }
              function parseSpreadElement() {
                  var node = createNode(174);
                  parseExpected(21);
                  node.expression = parseAssignmentExpressionOrHigher();
                  return finishNode(node);
              }
              function parseArgumentOrArrayLiteralElement() {
                  return token === 21 ? parseSpreadElement() :
                      token === 23 ? createNode(176) :
                          parseAssignmentExpressionOrHigher();
              }
              function parseArgumentExpression() {
                  return doOutsideOfContext(disallowInAndDecoratorContext, parseArgumentOrArrayLiteralElement);
              }
              function parseArrayLiteralExpression() {
                  var node = createNode(154);
                  parseExpected(18);
                  if (scanner.hasPrecedingLineBreak())
                      node.flags |= 512;
                  node.elements = parseDelimitedList(14, parseArgumentOrArrayLiteralElement);
                  parseExpected(19);
                  return finishNode(node);
              }
              function tryParseAccessorDeclaration(fullStart, decorators, modifiers) {
                  if (parseContextualModifier(116)) {
                      return parseAccessorDeclaration(137, fullStart, decorators, modifiers);
                  }
                  else if (parseContextualModifier(121)) {
                      return parseAccessorDeclaration(138, fullStart, decorators, modifiers);
                  }
                  return undefined;
              }
              function parseObjectLiteralElement() {
                  var fullStart = scanner.getStartPos();
                  var decorators = parseDecorators();
                  var modifiers = parseModifiers();
                  var accessor = tryParseAccessorDeclaration(fullStart, decorators, modifiers);
                  if (accessor) {
                      return accessor;
                  }
                  var asteriskToken = parseOptionalToken(35);
                  var tokenIsIdentifier = isIdentifier();
                  var nameToken = token;
                  var propertyName = parsePropertyName();
                  var questionToken = parseOptionalToken(50);
                  if (asteriskToken || token === 16 || token === 24) {
                      return parseMethodDeclaration(fullStart, decorators, modifiers, asteriskToken, propertyName, questionToken);
                  }
                  if ((token === 23 || token === 15) && tokenIsIdentifier) {
                      var shorthandDeclaration = createNode(226, fullStart);
                      shorthandDeclaration.name = propertyName;
                      shorthandDeclaration.questionToken = questionToken;
                      return finishNode(shorthandDeclaration);
                  }
                  else {
                      var propertyAssignment = createNode(225, fullStart);
                      propertyAssignment.name = propertyName;
                      propertyAssignment.questionToken = questionToken;
                      parseExpected(51);
                      propertyAssignment.initializer = allowInAnd(parseAssignmentExpressionOrHigher);
                      return finishNode(propertyAssignment);
                  }
              }
              function parseObjectLiteralExpression() {
                  var node = createNode(155);
                  parseExpected(14);
                  if (scanner.hasPrecedingLineBreak()) {
                      node.flags |= 512;
                  }
                  node.properties = parseDelimitedList(13, parseObjectLiteralElement, true);
                  parseExpected(15);
                  return finishNode(node);
              }
              function parseFunctionExpression() {
                  var saveDecoratorContext = inDecoratorContext();
                  if (saveDecoratorContext) {
                      setDecoratorContext(false);
                  }
                  var node = createNode(163);
                  parseExpected(83);
                  node.asteriskToken = parseOptionalToken(35);
                  node.name = node.asteriskToken ? doInYieldContext(parseOptionalIdentifier) : parseOptionalIdentifier();
                  fillSignature(51, !!node.asteriskToken, false, node);
                  node.body = parseFunctionBlock(!!node.asteriskToken, false);
                  if (saveDecoratorContext) {
                      setDecoratorContext(true);
                  }
                  return finishNode(node);
              }
              function parseOptionalIdentifier() {
                  return isIdentifier() ? parseIdentifier() : undefined;
              }
              function parseNewExpression() {
                  var node = createNode(159);
                  parseExpected(88);
                  node.expression = parseMemberExpressionOrHigher();
                  node.typeArguments = tryParse(parseTypeArgumentsInExpression);
                  if (node.typeArguments || token === 16) {
                      node.arguments = parseArgumentList();
                  }
                  return finishNode(node);
              }
              function parseBlock(ignoreMissingOpenBrace, checkForStrictMode, diagnosticMessage) {
                  var node = createNode(180);
                  if (parseExpected(14, diagnosticMessage) || ignoreMissingOpenBrace) {
                      node.statements = parseList(2, checkForStrictMode, parseStatement);
                      parseExpected(15);
                  }
                  else {
                      node.statements = createMissingList();
                  }
                  return finishNode(node);
              }
              function parseFunctionBlock(allowYield, ignoreMissingOpenBrace, diagnosticMessage) {
                  var savedYieldContext = inYieldContext();
                  setYieldContext(allowYield);
                  var saveDecoratorContext = inDecoratorContext();
                  if (saveDecoratorContext) {
                      setDecoratorContext(false);
                  }
                  var block = parseBlock(ignoreMissingOpenBrace, true, diagnosticMessage);
                  if (saveDecoratorContext) {
                      setDecoratorContext(true);
                  }
                  setYieldContext(savedYieldContext);
                  return block;
              }
              function parseEmptyStatement() {
                  var node = createNode(182);
                  parseExpected(22);
                  return finishNode(node);
              }
              function parseIfStatement() {
                  var node = createNode(184);
                  parseExpected(84);
                  parseExpected(16);
                  node.expression = allowInAnd(parseExpression);
                  parseExpected(17);
                  node.thenStatement = parseStatement();
                  node.elseStatement = parseOptional(76) ? parseStatement() : undefined;
                  return finishNode(node);
              }
              function parseDoStatement() {
                  var node = createNode(185);
                  parseExpected(75);
                  node.statement = parseStatement();
                  parseExpected(100);
                  parseExpected(16);
                  node.expression = allowInAnd(parseExpression);
                  parseExpected(17);
                  parseOptional(22);
                  return finishNode(node);
              }
              function parseWhileStatement() {
                  var node = createNode(186);
                  parseExpected(100);
                  parseExpected(16);
                  node.expression = allowInAnd(parseExpression);
                  parseExpected(17);
                  node.statement = parseStatement();
                  return finishNode(node);
              }
              function parseForOrForInOrForOfStatement() {
                  var pos = getNodePos();
                  parseExpected(82);
                  parseExpected(16);
                  var initializer = undefined;
                  if (token !== 22) {
                      if (token === 98 || token === 104 || token === 70) {
                          initializer = parseVariableDeclarationList(true);
                      }
                      else {
                          initializer = disallowInAnd(parseExpression);
                      }
                  }
                  var forOrForInOrForOfStatement;
                  if (parseOptional(86)) {
                      var forInStatement = createNode(188, pos);
                      forInStatement.initializer = initializer;
                      forInStatement.expression = allowInAnd(parseExpression);
                      parseExpected(17);
                      forOrForInOrForOfStatement = forInStatement;
                  }
                  else if (parseOptional(126)) {
                      var forOfStatement = createNode(189, pos);
                      forOfStatement.initializer = initializer;
                      forOfStatement.expression = allowInAnd(parseAssignmentExpressionOrHigher);
                      parseExpected(17);
                      forOrForInOrForOfStatement = forOfStatement;
                  }
                  else {
                      var forStatement = createNode(187, pos);
                      forStatement.initializer = initializer;
                      parseExpected(22);
                      if (token !== 22 && token !== 17) {
                          forStatement.condition = allowInAnd(parseExpression);
                      }
                      parseExpected(22);
                      if (token !== 17) {
                          forStatement.incrementor = allowInAnd(parseExpression);
                      }
                      parseExpected(17);
                      forOrForInOrForOfStatement = forStatement;
                  }
                  forOrForInOrForOfStatement.statement = parseStatement();
                  return finishNode(forOrForInOrForOfStatement);
              }
              function parseBreakOrContinueStatement(kind) {
                  var node = createNode(kind);
                  parseExpected(kind === 191 ? 66 : 71);
                  if (!canParseSemicolon()) {
                      node.label = parseIdentifier();
                  }
                  parseSemicolon();
                  return finishNode(node);
              }
              function parseReturnStatement() {
                  var node = createNode(192);
                  parseExpected(90);
                  if (!canParseSemicolon()) {
                      node.expression = allowInAnd(parseExpression);
                  }
                  parseSemicolon();
                  return finishNode(node);
              }
              function parseWithStatement() {
                  var node = createNode(193);
                  parseExpected(101);
                  parseExpected(16);
                  node.expression = allowInAnd(parseExpression);
                  parseExpected(17);
                  node.statement = parseStatement();
                  return finishNode(node);
              }
              function parseCaseClause() {
                  var node = createNode(221);
                  parseExpected(67);
                  node.expression = allowInAnd(parseExpression);
                  parseExpected(51);
                  node.statements = parseList(4, false, parseStatement);
                  return finishNode(node);
              }
              function parseDefaultClause() {
                  var node = createNode(222);
                  parseExpected(73);
                  parseExpected(51);
                  node.statements = parseList(4, false, parseStatement);
                  return finishNode(node);
              }
              function parseCaseOrDefaultClause() {
                  return token === 67 ? parseCaseClause() : parseDefaultClause();
              }
              function parseSwitchStatement() {
                  var node = createNode(194);
                  parseExpected(92);
                  parseExpected(16);
                  node.expression = allowInAnd(parseExpression);
                  parseExpected(17);
                  var caseBlock = createNode(208, scanner.getStartPos());
                  parseExpected(14);
                  caseBlock.clauses = parseList(3, false, parseCaseOrDefaultClause);
                  parseExpected(15);
                  node.caseBlock = finishNode(caseBlock);
                  return finishNode(node);
              }
              function parseThrowStatement() {
                  // ThrowStatement[Yield] :
                  //      throw [no LineTerminator here]Expression[In, ?Yield];
                  var node = createNode(196);
                  parseExpected(94);
                  node.expression = scanner.hasPrecedingLineBreak() ? undefined : allowInAnd(parseExpression);
                  parseSemicolon();
                  return finishNode(node);
              }
              function parseTryStatement() {
                  var node = createNode(197);
                  parseExpected(96);
                  node.tryBlock = parseBlock(false, false);
                  node.catchClause = token === 68 ? parseCatchClause() : undefined;
                  if (!node.catchClause || token === 81) {
                      parseExpected(81);
                      node.finallyBlock = parseBlock(false, false);
                  }
                  return finishNode(node);
              }
              function parseCatchClause() {
                  var result = createNode(224);
                  parseExpected(68);
                  if (parseExpected(16)) {
                      result.variableDeclaration = parseVariableDeclaration();
                  }
                  parseExpected(17);
                  result.block = parseBlock(false, false);
                  return finishNode(result);
              }
              function parseDebuggerStatement() {
                  var node = createNode(198);
                  parseExpected(72);
                  parseSemicolon();
                  return finishNode(node);
              }
              function parseExpressionOrLabeledStatement() {
                  var fullStart = scanner.getStartPos();
                  var expression = allowInAnd(parseExpression);
                  if (expression.kind === 65 && parseOptional(51)) {
                      var labeledStatement = createNode(195, fullStart);
                      labeledStatement.label = expression;
                      labeledStatement.statement = parseStatement();
                      return finishNode(labeledStatement);
                  }
                  else {
                      var expressionStatement = createNode(183, fullStart);
                      expressionStatement.expression = expression;
                      parseSemicolon();
                      return finishNode(expressionStatement);
                  }
              }
              function isStartOfStatement(inErrorRecovery) {
                  if (ts.isModifier(token)) {
                      var result = lookAhead(parseVariableStatementOrFunctionDeclarationOrClassDeclarationWithDecoratorsOrModifiers);
                      if (result) {
                          return true;
                      }
                  }
                  switch (token) {
                      case 22:
                          return !inErrorRecovery;
                      case 14:
                      case 98:
                      case 104:
                      case 83:
                      case 69:
                      case 84:
                      case 75:
                      case 100:
                      case 82:
                      case 71:
                      case 66:
                      case 90:
                      case 101:
                      case 92:
                      case 94:
                      case 96:
                      case 72:
                      case 68:
                      case 81:
                          return true;
                      case 70:
                          var isConstEnum = lookAhead(nextTokenIsEnumKeyword);
                          return !isConstEnum;
                      case 103:
                      case 117:
                      case 118:
                      case 77:
                      case 124:
                          if (isDeclarationStart()) {
                              return false;
                          }
                      case 108:
                      case 106:
                      case 107:
                      case 109:
                          if (lookAhead(nextTokenIsIdentifierOrKeywordOnSameLine)) {
                              return false;
                          }
                      default:
                          return isStartOfExpression();
                  }
              }
              function nextTokenIsEnumKeyword() {
                  nextToken();
                  return token === 77;
              }
              function nextTokenIsIdentifierOrKeywordOnSameLine() {
                  nextToken();
                  return isIdentifierOrKeyword() && !scanner.hasPrecedingLineBreak();
              }
              function parseStatement() {
                  switch (token) {
                      case 14:
                          return parseBlock(false, false);
                      case 98:
                      case 70:
                          return parseVariableStatement(scanner.getStartPos(), undefined, undefined);
                      case 83:
                          return parseFunctionDeclaration(scanner.getStartPos(), undefined, undefined);
                      case 69:
                          return parseClassDeclaration(scanner.getStartPos(), undefined, undefined);
                      case 22:
                          return parseEmptyStatement();
                      case 84:
                          return parseIfStatement();
                      case 75:
                          return parseDoStatement();
                      case 100:
                          return parseWhileStatement();
                      case 82:
                          return parseForOrForInOrForOfStatement();
                      case 71:
                          return parseBreakOrContinueStatement(190);
                      case 66:
                          return parseBreakOrContinueStatement(191);
                      case 90:
                          return parseReturnStatement();
                      case 101:
                          return parseWithStatement();
                      case 92:
                          return parseSwitchStatement();
                      case 94:
                          return parseThrowStatement();
                      case 96:
                      case 68:
                      case 81:
                          return parseTryStatement();
                      case 72:
                          return parseDebuggerStatement();
                      case 104:
                          if (isLetDeclaration()) {
                              return parseVariableStatement(scanner.getStartPos(), undefined, undefined);
                          }
                      default:
                          if (ts.isModifier(token) || token === 52) {
                              var result = tryParse(parseVariableStatementOrFunctionDeclarationOrClassDeclarationWithDecoratorsOrModifiers);
                              if (result) {
                                  return result;
                              }
                          }
                          return parseExpressionOrLabeledStatement();
                  }
              }
              function parseVariableStatementOrFunctionDeclarationOrClassDeclarationWithDecoratorsOrModifiers() {
                  var start = scanner.getStartPos();
                  var decorators = parseDecorators();
                  var modifiers = parseModifiers();
                  switch (token) {
                      case 70:
                          var nextTokenIsEnum = lookAhead(nextTokenIsEnumKeyword);
                          if (nextTokenIsEnum) {
                              return undefined;
                          }
                          return parseVariableStatement(start, decorators, modifiers);
                      case 104:
                          if (!isLetDeclaration()) {
                              return undefined;
                          }
                          return parseVariableStatement(start, decorators, modifiers);
                      case 98:
                          return parseVariableStatement(start, decorators, modifiers);
                      case 83:
                          return parseFunctionDeclaration(start, decorators, modifiers);
                      case 69:
                          return parseClassDeclaration(start, decorators, modifiers);
                  }
                  return undefined;
              }
              function parseFunctionBlockOrSemicolon(isGenerator, diagnosticMessage) {
                  if (token !== 14 && canParseSemicolon()) {
                      parseSemicolon();
                      return;
                  }
                  return parseFunctionBlock(isGenerator, false, diagnosticMessage);
              }
              function parseArrayBindingElement() {
                  if (token === 23) {
                      return createNode(176);
                  }
                  var node = createNode(153);
                  node.dotDotDotToken = parseOptionalToken(21);
                  node.name = parseIdentifierOrPattern();
                  node.initializer = parseInitializer(false);
                  return finishNode(node);
              }
              function parseObjectBindingElement() {
                  var node = createNode(153);
                  var tokenIsIdentifier = isIdentifier();
                  var propertyName = parsePropertyName();
                  if (tokenIsIdentifier && token !== 51) {
                      node.name = propertyName;
                  }
                  else {
                      parseExpected(51);
                      node.propertyName = propertyName;
                      node.name = parseIdentifierOrPattern();
                  }
                  node.initializer = parseInitializer(false);
                  return finishNode(node);
              }
              function parseObjectBindingPattern() {
                  var node = createNode(151);
                  parseExpected(14);
                  node.elements = parseDelimitedList(10, parseObjectBindingElement);
                  parseExpected(15);
                  return finishNode(node);
              }
              function parseArrayBindingPattern() {
                  var node = createNode(152);
                  parseExpected(18);
                  node.elements = parseDelimitedList(11, parseArrayBindingElement);
                  parseExpected(19);
                  return finishNode(node);
              }
              function isIdentifierOrPattern() {
                  return token === 14 || token === 18 || isIdentifier();
              }
              function parseIdentifierOrPattern() {
                  if (token === 18) {
                      return parseArrayBindingPattern();
                  }
                  if (token === 14) {
                      return parseObjectBindingPattern();
                  }
                  return parseIdentifier();
              }
              function parseVariableDeclaration() {
                  var node = createNode(199);
                  node.name = parseIdentifierOrPattern();
                  node.type = parseTypeAnnotation();
                  if (!isInOrOfKeyword(token)) {
                      node.initializer = parseInitializer(false);
                  }
                  return finishNode(node);
              }
              function parseVariableDeclarationList(inForStatementInitializer) {
                  var node = createNode(200);
                  switch (token) {
                      case 98:
                          break;
                      case 104:
                          node.flags |= 4096;
                          break;
                      case 70:
                          node.flags |= 8192;
                          break;
                      default:
                          ts.Debug.fail();
                  }
                  nextToken();
                  if (token === 126 && lookAhead(canFollowContextualOfKeyword)) {
                      node.declarations = createMissingList();
                  }
                  else {
                      var savedDisallowIn = inDisallowInContext();
                      setDisallowInContext(inForStatementInitializer);
                      node.declarations = parseDelimitedList(9, parseVariableDeclaration);
                      setDisallowInContext(savedDisallowIn);
                  }
                  return finishNode(node);
              }
              function canFollowContextualOfKeyword() {
                  return nextTokenIsIdentifier() && nextToken() === 17;
              }
              function parseVariableStatement(fullStart, decorators, modifiers) {
                  var node = createNode(181, fullStart);
                  node.decorators = decorators;
                  setModifiers(node, modifiers);
                  node.declarationList = parseVariableDeclarationList(false);
                  parseSemicolon();
                  return finishNode(node);
              }
              function parseFunctionDeclaration(fullStart, decorators, modifiers) {
                  var node = createNode(201, fullStart);
                  node.decorators = decorators;
                  setModifiers(node, modifiers);
                  parseExpected(83);
                  node.asteriskToken = parseOptionalToken(35);
                  node.name = node.flags & 256 ? parseOptionalIdentifier() : parseIdentifier();
                  fillSignature(51, !!node.asteriskToken, false, node);
                  node.body = parseFunctionBlockOrSemicolon(!!node.asteriskToken, ts.Diagnostics.or_expected);
                  return finishNode(node);
              }
              function parseConstructorDeclaration(pos, decorators, modifiers) {
                  var node = createNode(136, pos);
                  node.decorators = decorators;
                  setModifiers(node, modifiers);
                  parseExpected(114);
                  fillSignature(51, false, false, node);
                  node.body = parseFunctionBlockOrSemicolon(false, ts.Diagnostics.or_expected);
                  return finishNode(node);
              }
              function parseMethodDeclaration(fullStart, decorators, modifiers, asteriskToken, name, questionToken, diagnosticMessage) {
                  var method = createNode(135, fullStart);
                  method.decorators = decorators;
                  setModifiers(method, modifiers);
                  method.asteriskToken = asteriskToken;
                  method.name = name;
                  method.questionToken = questionToken;
                  fillSignature(51, !!asteriskToken, false, method);
                  method.body = parseFunctionBlockOrSemicolon(!!asteriskToken, diagnosticMessage);
                  return finishNode(method);
              }
              function parsePropertyDeclaration(fullStart, decorators, modifiers, name, questionToken) {
                  var property = createNode(133, fullStart);
                  property.decorators = decorators;
                  setModifiers(property, modifiers);
                  property.name = name;
                  property.questionToken = questionToken;
                  property.type = parseTypeAnnotation();
                  property.initializer = allowInAnd(parseNonParameterInitializer);
                  parseSemicolon();
                  return finishNode(property);
              }
              function parsePropertyOrMethodDeclaration(fullStart, decorators, modifiers) {
                  var asteriskToken = parseOptionalToken(35);
                  var name = parsePropertyName();
                  var questionToken = parseOptionalToken(50);
                  if (asteriskToken || token === 16 || token === 24) {
                      return parseMethodDeclaration(fullStart, decorators, modifiers, asteriskToken, name, questionToken, ts.Diagnostics.or_expected);
                  }
                  else {
                      return parsePropertyDeclaration(fullStart, decorators, modifiers, name, questionToken);
                  }
              }
              function parseNonParameterInitializer() {
                  return parseInitializer(false);
              }
              function parseAccessorDeclaration(kind, fullStart, decorators, modifiers) {
                  var node = createNode(kind, fullStart);
                  node.decorators = decorators;
                  setModifiers(node, modifiers);
                  node.name = parsePropertyName();
                  fillSignature(51, false, false, node);
                  node.body = parseFunctionBlockOrSemicolon(false);
                  return finishNode(node);
              }
              function isClassMemberModifier(idToken) {
                  switch (idToken) {
                      case 108:
                      case 106:
                      case 107:
                      case 109:
                          return true;
                      default:
                          return false;
                  }
              }
              function isClassMemberStart() {
                  var idToken;
                  if (token === 52) {
                      return true;
                  }
                  while (ts.isModifier(token)) {
                      idToken = token;
                      if (isClassMemberModifier(idToken)) {
                          return true;
                      }
                      nextToken();
                  }
                  if (token === 35) {
                      return true;
                  }
                  if (isLiteralPropertyName()) {
                      idToken = token;
                      nextToken();
                  }
                  if (token === 18) {
                      return true;
                  }
                  if (idToken !== undefined) {
                      if (!ts.isKeyword(idToken) || idToken === 121 || idToken === 116) {
                          return true;
                      }
                      switch (token) {
                          case 16:
                          case 24:
                          case 51:
                          case 53:
                          case 50:
                              return true;
                          default:
                              return canParseSemicolon();
                      }
                  }
                  return false;
              }
              function parseDecorators() {
                  var decorators;
                  while (true) {
                      var decoratorStart = getNodePos();
                      if (!parseOptional(52)) {
                          break;
                      }
                      if (!decorators) {
                          decorators = [];
                          decorators.pos = scanner.getStartPos();
                      }
                      var decorator = createNode(131, decoratorStart);
                      decorator.expression = doInDecoratorContext(parseLeftHandSideExpressionOrHigher);
                      decorators.push(finishNode(decorator));
                  }
                  if (decorators) {
                      decorators.end = getNodeEnd();
                  }
                  return decorators;
              }
              function parseModifiers() {
                  var flags = 0;
                  var modifiers;
                  while (true) {
                      var modifierStart = scanner.getStartPos();
                      var modifierKind = token;
                      if (!parseAnyContextualModifier()) {
                          break;
                      }
                      if (!modifiers) {
                          modifiers = [];
                          modifiers.pos = modifierStart;
                      }
                      flags |= ts.modifierToFlag(modifierKind);
                      modifiers.push(finishNode(createNode(modifierKind, modifierStart)));
                  }
                  if (modifiers) {
                      modifiers.flags = flags;
                      modifiers.end = scanner.getStartPos();
                  }
                  return modifiers;
              }
              function parseClassElement() {
                  if (token === 22) {
                      var result = createNode(179);
                      nextToken();
                      return finishNode(result);
                  }
                  var fullStart = getNodePos();
                  var decorators = parseDecorators();
                  var modifiers = parseModifiers();
                  var accessor = tryParseAccessorDeclaration(fullStart, decorators, modifiers);
                  if (accessor) {
                      return accessor;
                  }
                  if (token === 114) {
                      return parseConstructorDeclaration(fullStart, decorators, modifiers);
                  }
                  if (isIndexSignature()) {
                      return parseIndexSignatureDeclaration(fullStart, decorators, modifiers);
                  }
                  if (isIdentifierOrKeyword() ||
                      token === 8 ||
                      token === 7 ||
                      token === 35 ||
                      token === 18) {
                      return parsePropertyOrMethodDeclaration(fullStart, decorators, modifiers);
                  }
                  if (decorators) {
                      var name_3 = createMissingNode(65, true, ts.Diagnostics.Declaration_expected);
                      return parsePropertyDeclaration(fullStart, decorators, modifiers, name_3, undefined);
                  }
                  ts.Debug.fail("Should not have attempted to parse class member declaration.");
              }
              function parseClassExpression() {
                  return parseClassDeclarationOrExpression(scanner.getStartPos(), undefined, undefined, 175);
              }
              function parseClassDeclaration(fullStart, decorators, modifiers) {
                  return parseClassDeclarationOrExpression(fullStart, decorators, modifiers, 202);
              }
              function parseClassDeclarationOrExpression(fullStart, decorators, modifiers, kind) {
                  var savedStrictModeContext = inStrictModeContext();
                  setStrictModeContext(true);
                  var node = createNode(kind, fullStart);
                  node.decorators = decorators;
                  setModifiers(node, modifiers);
                  parseExpected(69);
                  node.name = parseOptionalIdentifier();
                  node.typeParameters = parseTypeParameters();
                  node.heritageClauses = parseHeritageClauses(true);
                  if (parseExpected(14)) {
                      node.members = inGeneratorParameterContext()
                          ? doOutsideOfYieldContext(parseClassMembers)
                          : parseClassMembers();
                      parseExpected(15);
                  }
                  else {
                      node.members = createMissingList();
                  }
                  var finishedNode = finishNode(node);
                  setStrictModeContext(savedStrictModeContext);
                  return finishedNode;
              }
              function parseHeritageClauses(isClassHeritageClause) {
                  // ClassTail[Yield,GeneratorParameter] : See 14.5
                  //      [~GeneratorParameter]ClassHeritage[?Yield]opt { ClassBody[?Yield]opt }
                  //      [+GeneratorParameter] ClassHeritageopt { ClassBodyopt }
                  if (isHeritageClause()) {
                      return isClassHeritageClause && inGeneratorParameterContext()
                          ? doOutsideOfYieldContext(parseHeritageClausesWorker)
                          : parseHeritageClausesWorker();
                  }
                  return undefined;
              }
              function parseHeritageClausesWorker() {
                  return parseList(19, false, parseHeritageClause);
              }
              function parseHeritageClause() {
                  if (token === 79 || token === 102) {
                      var node = createNode(223);
                      node.token = token;
                      nextToken();
                      node.types = parseDelimitedList(8, parseExpressionWithTypeArguments);
                      return finishNode(node);
                  }
                  return undefined;
              }
              function parseExpressionWithTypeArguments() {
                  var node = createNode(177);
                  node.expression = parseLeftHandSideExpressionOrHigher();
                  if (token === 24) {
                      node.typeArguments = parseBracketedList(17, parseType, 24, 25);
                  }
                  return finishNode(node);
              }
              function isHeritageClause() {
                  return token === 79 || token === 102;
              }
              function parseClassMembers() {
                  return parseList(6, false, parseClassElement);
              }
              function parseInterfaceDeclaration(fullStart, decorators, modifiers) {
                  var node = createNode(203, fullStart);
                  node.decorators = decorators;
                  setModifiers(node, modifiers);
                  parseExpected(103);
                  node.name = parseIdentifier();
                  node.typeParameters = parseTypeParameters();
                  node.heritageClauses = parseHeritageClauses(false);
                  node.members = parseObjectTypeMembers();
                  return finishNode(node);
              }
              function parseTypeAliasDeclaration(fullStart, decorators, modifiers) {
                  var node = createNode(204, fullStart);
                  node.decorators = decorators;
                  setModifiers(node, modifiers);
                  parseExpected(124);
                  node.name = parseIdentifier();
                  parseExpected(53);
                  node.type = parseType();
                  parseSemicolon();
                  return finishNode(node);
              }
              function parseEnumMember() {
                  var node = createNode(227, scanner.getStartPos());
                  node.name = parsePropertyName();
                  node.initializer = allowInAnd(parseNonParameterInitializer);
                  return finishNode(node);
              }
              function parseEnumDeclaration(fullStart, decorators, modifiers) {
                  var node = createNode(205, fullStart);
                  node.decorators = decorators;
                  setModifiers(node, modifiers);
                  parseExpected(77);
                  node.name = parseIdentifier();
                  if (parseExpected(14)) {
                      node.members = parseDelimitedList(7, parseEnumMember);
                      parseExpected(15);
                  }
                  else {
                      node.members = createMissingList();
                  }
                  return finishNode(node);
              }
              function parseModuleBlock() {
                  var node = createNode(207, scanner.getStartPos());
                  if (parseExpected(14)) {
                      node.statements = parseList(1, false, parseModuleElement);
                      parseExpected(15);
                  }
                  else {
                      node.statements = createMissingList();
                  }
                  return finishNode(node);
              }
              function parseModuleOrNamespaceDeclaration(fullStart, decorators, modifiers, flags) {
                  var node = createNode(206, fullStart);
                  node.decorators = decorators;
                  setModifiers(node, modifiers);
                  node.flags |= flags;
                  node.name = parseIdentifier();
                  node.body = parseOptional(20)
                      ? parseModuleOrNamespaceDeclaration(getNodePos(), undefined, undefined, 1)
                      : parseModuleBlock();
                  return finishNode(node);
              }
              function parseAmbientExternalModuleDeclaration(fullStart, decorators, modifiers) {
                  var node = createNode(206, fullStart);
                  node.decorators = decorators;
                  setModifiers(node, modifiers);
                  node.name = parseLiteralNode(true);
                  node.body = parseModuleBlock();
                  return finishNode(node);
              }
              function parseModuleDeclaration(fullStart, decorators, modifiers) {
                  var flags = modifiers ? modifiers.flags : 0;
                  if (parseOptional(118)) {
                      flags |= 32768;
                  }
                  else {
                      parseExpected(117);
                      if (token === 8) {
                          return parseAmbientExternalModuleDeclaration(fullStart, decorators, modifiers);
                      }
                  }
                  return parseModuleOrNamespaceDeclaration(fullStart, decorators, modifiers, flags);
              }
              function isExternalModuleReference() {
                  return token === 119 &&
                      lookAhead(nextTokenIsOpenParen);
              }
              function nextTokenIsOpenParen() {
                  return nextToken() === 16;
              }
              function nextTokenIsCommaOrFromKeyword() {
                  nextToken();
                  return token === 23 ||
                      token === 125;
              }
              function parseImportDeclarationOrImportEqualsDeclaration(fullStart, decorators, modifiers) {
                  parseExpected(85);
                  var afterImportPos = scanner.getStartPos();
                  var identifier;
                  if (isIdentifier()) {
                      identifier = parseIdentifier();
                      if (token !== 23 && token !== 125) {
                          var importEqualsDeclaration = createNode(209, fullStart);
                          importEqualsDeclaration.decorators = decorators;
                          setModifiers(importEqualsDeclaration, modifiers);
                          importEqualsDeclaration.name = identifier;
                          parseExpected(53);
                          importEqualsDeclaration.moduleReference = parseModuleReference();
                          parseSemicolon();
                          return finishNode(importEqualsDeclaration);
                      }
                  }
                  var importDeclaration = createNode(210, fullStart);
                  importDeclaration.decorators = decorators;
                  setModifiers(importDeclaration, modifiers);
                  if (identifier ||
                      token === 35 ||
                      token === 14) {
                      importDeclaration.importClause = parseImportClause(identifier, afterImportPos);
                      parseExpected(125);
                  }
                  importDeclaration.moduleSpecifier = parseModuleSpecifier();
                  parseSemicolon();
                  return finishNode(importDeclaration);
              }
              function parseImportClause(identifier, fullStart) {
                  //ImportClause:
                  //  ImportedDefaultBinding
                  //  NameSpaceImport
                  //  NamedImports
                  //  ImportedDefaultBinding, NameSpaceImport
                  //  ImportedDefaultBinding, NamedImports
                  var importClause = createNode(211, fullStart);
                  if (identifier) {
                      importClause.name = identifier;
                  }
                  if (!importClause.name ||
                      parseOptional(23)) {
                      importClause.namedBindings = token === 35 ? parseNamespaceImport() : parseNamedImportsOrExports(213);
                  }
                  return finishNode(importClause);
              }
              function parseModuleReference() {
                  return isExternalModuleReference()
                      ? parseExternalModuleReference()
                      : parseEntityName(false);
              }
              function parseExternalModuleReference() {
                  var node = createNode(220);
                  parseExpected(119);
                  parseExpected(16);
                  node.expression = parseModuleSpecifier();
                  parseExpected(17);
                  return finishNode(node);
              }
              function parseModuleSpecifier() {
                  var result = parseExpression();
                  if (result.kind === 8) {
                      internIdentifier(result.text);
                  }
                  return result;
              }
              function parseNamespaceImport() {
                  var namespaceImport = createNode(212);
                  parseExpected(35);
                  parseExpected(111);
                  namespaceImport.name = parseIdentifier();
                  return finishNode(namespaceImport);
              }
              function parseNamedImportsOrExports(kind) {
                  var node = createNode(kind);
                  node.elements = parseBracketedList(20, kind === 213 ? parseImportSpecifier : parseExportSpecifier, 14, 15);
                  return finishNode(node);
              }
              function parseExportSpecifier() {
                  return parseImportOrExportSpecifier(218);
              }
              function parseImportSpecifier() {
                  return parseImportOrExportSpecifier(214);
              }
              function parseImportOrExportSpecifier(kind) {
                  var node = createNode(kind);
                  var checkIdentifierIsKeyword = ts.isKeyword(token) && !isIdentifier();
                  var checkIdentifierStart = scanner.getTokenPos();
                  var checkIdentifierEnd = scanner.getTextPos();
                  var identifierName = parseIdentifierName();
                  if (token === 111) {
                      node.propertyName = identifierName;
                      parseExpected(111);
                      checkIdentifierIsKeyword = ts.isKeyword(token) && !isIdentifier();
                      checkIdentifierStart = scanner.getTokenPos();
                      checkIdentifierEnd = scanner.getTextPos();
                      node.name = parseIdentifierName();
                  }
                  else {
                      node.name = identifierName;
                  }
                  if (kind === 214 && checkIdentifierIsKeyword) {
                      parseErrorAtPosition(checkIdentifierStart, checkIdentifierEnd - checkIdentifierStart, ts.Diagnostics.Identifier_expected);
                  }
                  return finishNode(node);
              }
              function parseExportDeclaration(fullStart, decorators, modifiers) {
                  var node = createNode(216, fullStart);
                  node.decorators = decorators;
                  setModifiers(node, modifiers);
                  if (parseOptional(35)) {
                      parseExpected(125);
                      node.moduleSpecifier = parseModuleSpecifier();
                  }
                  else {
                      node.exportClause = parseNamedImportsOrExports(217);
                      if (parseOptional(125)) {
                          node.moduleSpecifier = parseModuleSpecifier();
                      }
                  }
                  parseSemicolon();
                  return finishNode(node);
              }
              function parseExportAssignment(fullStart, decorators, modifiers) {
                  var node = createNode(215, fullStart);
                  node.decorators = decorators;
                  setModifiers(node, modifiers);
                  if (parseOptional(53)) {
                      node.isExportEquals = true;
                  }
                  else {
                      parseExpected(73);
                  }
                  node.expression = parseAssignmentExpressionOrHigher();
                  parseSemicolon();
                  return finishNode(node);
              }
              function isLetDeclaration() {
                  return inStrictModeContext() || lookAhead(nextTokenIsIdentifierOrStartOfDestructuringOnTheSameLine);
              }
              function isDeclarationStart(followsModifier) {
                  switch (token) {
                      case 98:
                      case 70:
                      case 83:
                          return true;
                      case 104:
                          return isLetDeclaration();
                      case 69:
                      case 103:
                      case 77:
                      case 124:
                          return lookAhead(nextTokenIsIdentifierOrKeyword);
                      case 85:
                          return lookAhead(nextTokenCanFollowImportKeyword);
                      case 117:
                      case 118:
                          return lookAhead(nextTokenIsIdentifierOrKeywordOrStringLiteral);
                      case 78:
                          return lookAhead(nextTokenCanFollowExportKeyword);
                      case 115:
                      case 108:
                      case 106:
                      case 107:
                      case 109:
                          return lookAhead(nextTokenIsDeclarationStart);
                      case 52:
                          return !followsModifier;
                  }
              }
              function isIdentifierOrKeyword() {
                  return token >= 65;
              }
              function nextTokenIsIdentifierOrKeyword() {
                  nextToken();
                  return isIdentifierOrKeyword();
              }
              function nextTokenIsIdentifierOrKeywordOrStringLiteral() {
                  nextToken();
                  return isIdentifierOrKeyword() || token === 8;
              }
              function nextTokenCanFollowImportKeyword() {
                  nextToken();
                  return isIdentifierOrKeyword() || token === 8 ||
                      token === 35 || token === 14;
              }
              function nextTokenCanFollowExportKeyword() {
                  nextToken();
                  return token === 53 || token === 35 ||
                      token === 14 || token === 73 || isDeclarationStart(true);
              }
              function nextTokenIsDeclarationStart() {
                  nextToken();
                  return isDeclarationStart(true);
              }
              function nextTokenIsAsKeyword() {
                  return nextToken() === 111;
              }
              function parseDeclaration() {
                  var fullStart = getNodePos();
                  var decorators = parseDecorators();
                  var modifiers = parseModifiers();
                  if (token === 78) {
                      nextToken();
                      if (token === 73 || token === 53) {
                          return parseExportAssignment(fullStart, decorators, modifiers);
                      }
                      if (token === 35 || token === 14) {
                          return parseExportDeclaration(fullStart, decorators, modifiers);
                      }
                  }
                  switch (token) {
                      case 98:
                      case 104:
                      case 70:
                          return parseVariableStatement(fullStart, decorators, modifiers);
                      case 83:
                          return parseFunctionDeclaration(fullStart, decorators, modifiers);
                      case 69:
                          return parseClassDeclaration(fullStart, decorators, modifiers);
                      case 103:
                          return parseInterfaceDeclaration(fullStart, decorators, modifiers);
                      case 124:
                          return parseTypeAliasDeclaration(fullStart, decorators, modifiers);
                      case 77:
                          return parseEnumDeclaration(fullStart, decorators, modifiers);
                      case 117:
                      case 118:
                          return parseModuleDeclaration(fullStart, decorators, modifiers);
                      case 85:
                          return parseImportDeclarationOrImportEqualsDeclaration(fullStart, decorators, modifiers);
                      default:
                          if (decorators) {
                              var node = createMissingNode(219, true, ts.Diagnostics.Declaration_expected);
                              node.pos = fullStart;
                              node.decorators = decorators;
                              setModifiers(node, modifiers);
                              return finishNode(node);
                          }
                          ts.Debug.fail("Mismatch between isDeclarationStart and parseDeclaration");
                  }
              }
              function isSourceElement(inErrorRecovery) {
                  return isDeclarationStart() || isStartOfStatement(inErrorRecovery);
              }
              function parseSourceElement() {
                  return parseSourceElementOrModuleElement();
              }
              function parseModuleElement() {
                  return parseSourceElementOrModuleElement();
              }
              function parseSourceElementOrModuleElement() {
                  return isDeclarationStart()
                      ? parseDeclaration()
                      : parseStatement();
              }
              function processReferenceComments(sourceFile) {
                  var triviaScanner = ts.createScanner(sourceFile.languageVersion, false, sourceText);
                  var referencedFiles = [];
                  var amdDependencies = [];
                  var amdModuleName;
                  while (true) {
                      var kind = triviaScanner.scan();
                      if (kind === 5 || kind === 4 || kind === 3) {
                          continue;
                      }
                      if (kind !== 2) {
                          break;
                      }
                      var range = { pos: triviaScanner.getTokenPos(), end: triviaScanner.getTextPos(), kind: triviaScanner.getToken() };
                      var comment = sourceText.substring(range.pos, range.end);
                      var referencePathMatchResult = ts.getFileReferenceFromReferencePath(comment, range);
                      if (referencePathMatchResult) {
                          var fileReference = referencePathMatchResult.fileReference;
                          sourceFile.hasNoDefaultLib = referencePathMatchResult.isNoDefaultLib;
                          var diagnosticMessage = referencePathMatchResult.diagnosticMessage;
                          if (fileReference) {
                              referencedFiles.push(fileReference);
                          }
                          if (diagnosticMessage) {
                              sourceFile.parseDiagnostics.push(ts.createFileDiagnostic(sourceFile, range.pos, range.end - range.pos, diagnosticMessage));
                          }
                      }
                      else {
                          var amdModuleNameRegEx = /^\/\/\/\s*<amd-module\s+name\s*=\s*('|")(.+?)\1/gim;
                          var amdModuleNameMatchResult = amdModuleNameRegEx.exec(comment);
                          if (amdModuleNameMatchResult) {
                              if (amdModuleName) {
                                  sourceFile.parseDiagnostics.push(ts.createFileDiagnostic(sourceFile, range.pos, range.end - range.pos, ts.Diagnostics.An_AMD_module_cannot_have_multiple_name_assignments));
                              }
                              amdModuleName = amdModuleNameMatchResult[2];
                          }
                          var amdDependencyRegEx = /^\/\/\/\s*<amd-dependency\s/gim;
                          var pathRegex = /\spath\s*=\s*('|")(.+?)\1/gim;
                          var nameRegex = /\sname\s*=\s*('|")(.+?)\1/gim;
                          var amdDependencyMatchResult = amdDependencyRegEx.exec(comment);
                          if (amdDependencyMatchResult) {
                              var pathMatchResult = pathRegex.exec(comment);
                              var nameMatchResult = nameRegex.exec(comment);
                              if (pathMatchResult) {
                                  var amdDependency = { path: pathMatchResult[2], name: nameMatchResult ? nameMatchResult[2] : undefined };
                                  amdDependencies.push(amdDependency);
                              }
                          }
                      }
                  }
                  sourceFile.referencedFiles = referencedFiles;
                  sourceFile.amdDependencies = amdDependencies;
                  sourceFile.amdModuleName = amdModuleName;
              }
              function setExternalModuleIndicator(sourceFile) {
                  sourceFile.externalModuleIndicator = ts.forEach(sourceFile.statements, function (node) {
                      return node.flags & 1
                          || node.kind === 209 && node.moduleReference.kind === 220
                          || node.kind === 210
                          || node.kind === 215
                          || node.kind === 216
                          ? node
                          : undefined;
                  });
              }
          })(Parser || (Parser = {}));
          var IncrementalParser;
          (function (IncrementalParser) {
              function updateSourceFile(sourceFile, newText, textChangeRange, aggressiveChecks) {
                  aggressiveChecks = aggressiveChecks || ts.Debug.shouldAssert(2);
                  checkChangeRange(sourceFile, newText, textChangeRange, aggressiveChecks);
                  if (ts.textChangeRangeIsUnchanged(textChangeRange)) {
                      return sourceFile;
                  }
                  if (sourceFile.statements.length === 0) {
                      return Parser.parseSourceFile(sourceFile.fileName, newText, sourceFile.languageVersion, undefined, true);
                  }
                  var incrementalSourceFile = sourceFile;
                  ts.Debug.assert(!incrementalSourceFile.hasBeenIncrementallyParsed);
                  incrementalSourceFile.hasBeenIncrementallyParsed = true;
                  var oldText = sourceFile.text;
                  var syntaxCursor = createSyntaxCursor(sourceFile);
                  var changeRange = extendToAffectedRange(sourceFile, textChangeRange);
                  checkChangeRange(sourceFile, newText, changeRange, aggressiveChecks);
                  ts.Debug.assert(changeRange.span.start <= textChangeRange.span.start);
                  ts.Debug.assert(ts.textSpanEnd(changeRange.span) === ts.textSpanEnd(textChangeRange.span));
                  ts.Debug.assert(ts.textSpanEnd(ts.textChangeRangeNewSpan(changeRange)) === ts.textSpanEnd(ts.textChangeRangeNewSpan(textChangeRange)));
                  var delta = ts.textChangeRangeNewSpan(changeRange).length - changeRange.span.length;
                  updateTokenPositionsAndMarkElements(incrementalSourceFile, changeRange.span.start, ts.textSpanEnd(changeRange.span), ts.textSpanEnd(ts.textChangeRangeNewSpan(changeRange)), delta, oldText, newText, aggressiveChecks);
                  var result = Parser.parseSourceFile(sourceFile.fileName, newText, sourceFile.languageVersion, syntaxCursor, true);
                  return result;
              }
              IncrementalParser.updateSourceFile = updateSourceFile;
              function moveElementEntirelyPastChangeRange(element, isArray, delta, oldText, newText, aggressiveChecks) {
                  if (isArray) {
                      visitArray(element);
                  }
                  else {
                      visitNode(element);
                  }
                  return;
                  function visitNode(node) {
                      if (aggressiveChecks && shouldCheckNode(node)) {
                          var text = oldText.substring(node.pos, node.end);
                      }
                      node._children = undefined;
                      node.pos += delta;
                      node.end += delta;
                      if (aggressiveChecks && shouldCheckNode(node)) {
                          ts.Debug.assert(text === newText.substring(node.pos, node.end));
                      }
                      forEachChild(node, visitNode, visitArray);
                      checkNodePositions(node, aggressiveChecks);
                  }
                  function visitArray(array) {
                      array._children = undefined;
                      array.pos += delta;
                      array.end += delta;
                      for (var _i = 0; _i < array.length; _i++) {
                          var node = array[_i];
                          visitNode(node);
                      }
                  }
              }
              function shouldCheckNode(node) {
                  switch (node.kind) {
                      case 8:
                      case 7:
                      case 65:
                          return true;
                  }
                  return false;
              }
              function adjustIntersectingElement(element, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta) {
                  ts.Debug.assert(element.end >= changeStart, "Adjusting an element that was entirely before the change range");
                  ts.Debug.assert(element.pos <= changeRangeOldEnd, "Adjusting an element that was entirely after the change range");
                  ts.Debug.assert(element.pos <= element.end);
                  element.pos = Math.min(element.pos, changeRangeNewEnd);
                  if (element.end >= changeRangeOldEnd) {
                      element.end += delta;
                  }
                  else {
                      element.end = Math.min(element.end, changeRangeNewEnd);
                  }
                  ts.Debug.assert(element.pos <= element.end);
                  if (element.parent) {
                      ts.Debug.assert(element.pos >= element.parent.pos);
                      ts.Debug.assert(element.end <= element.parent.end);
                  }
              }
              function checkNodePositions(node, aggressiveChecks) {
                  if (aggressiveChecks) {
                      var pos = node.pos;
                      forEachChild(node, function (child) {
                          ts.Debug.assert(child.pos >= pos);
                          pos = child.end;
                      });
                      ts.Debug.assert(pos <= node.end);
                  }
              }
              function updateTokenPositionsAndMarkElements(sourceFile, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta, oldText, newText, aggressiveChecks) {
                  visitNode(sourceFile);
                  return;
                  function visitNode(child) {
                      ts.Debug.assert(child.pos <= child.end);
                      if (child.pos > changeRangeOldEnd) {
                          moveElementEntirelyPastChangeRange(child, false, delta, oldText, newText, aggressiveChecks);
                          return;
                      }
                      var fullEnd = child.end;
                      if (fullEnd >= changeStart) {
                          child.intersectsChange = true;
                          child._children = undefined;
                          adjustIntersectingElement(child, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta);
                          forEachChild(child, visitNode, visitArray);
                          checkNodePositions(child, aggressiveChecks);
                          return;
                      }
                      ts.Debug.assert(fullEnd < changeStart);
                  }
                  function visitArray(array) {
                      ts.Debug.assert(array.pos <= array.end);
                      if (array.pos > changeRangeOldEnd) {
                          moveElementEntirelyPastChangeRange(array, true, delta, oldText, newText, aggressiveChecks);
                          return;
                      }
                      var fullEnd = array.end;
                      if (fullEnd >= changeStart) {
                          array.intersectsChange = true;
                          array._children = undefined;
                          adjustIntersectingElement(array, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta);
                          for (var _i = 0; _i < array.length; _i++) {
                              var node = array[_i];
                              visitNode(node);
                          }
                          return;
                      }
                      ts.Debug.assert(fullEnd < changeStart);
                  }
              }
              function extendToAffectedRange(sourceFile, changeRange) {
                  var maxLookahead = 1;
                  var start = changeRange.span.start;
                  for (var i = 0; start > 0 && i <= maxLookahead; i++) {
                      var nearestNode = findNearestNodeStartingBeforeOrAtPosition(sourceFile, start);
                      ts.Debug.assert(nearestNode.pos <= start);
                      var position = nearestNode.pos;
                      start = Math.max(0, position - 1);
                  }
                  var finalSpan = ts.createTextSpanFromBounds(start, ts.textSpanEnd(changeRange.span));
                  var finalLength = changeRange.newLength + (changeRange.span.start - start);
                  return ts.createTextChangeRange(finalSpan, finalLength);
              }
              function findNearestNodeStartingBeforeOrAtPosition(sourceFile, position) {
                  var bestResult = sourceFile;
                  var lastNodeEntirelyBeforePosition;
                  forEachChild(sourceFile, visit);
                  if (lastNodeEntirelyBeforePosition) {
                      var lastChildOfLastEntireNodeBeforePosition = getLastChild(lastNodeEntirelyBeforePosition);
                      if (lastChildOfLastEntireNodeBeforePosition.pos > bestResult.pos) {
                          bestResult = lastChildOfLastEntireNodeBeforePosition;
                      }
                  }
                  return bestResult;
                  function getLastChild(node) {
                      while (true) {
                          var lastChild = getLastChildWorker(node);
                          if (lastChild) {
                              node = lastChild;
                          }
                          else {
                              return node;
                          }
                      }
                  }
                  function getLastChildWorker(node) {
                      var last = undefined;
                      forEachChild(node, function (child) {
                          if (ts.nodeIsPresent(child)) {
                              last = child;
                          }
                      });
                      return last;
                  }
                  function visit(child) {
                      if (ts.nodeIsMissing(child)) {
                          return;
                      }
                      if (child.pos <= position) {
                          if (child.pos >= bestResult.pos) {
                              bestResult = child;
                          }
                          if (position < child.end) {
                              forEachChild(child, visit);
                              return true;
                          }
                          else {
                              ts.Debug.assert(child.end <= position);
                              lastNodeEntirelyBeforePosition = child;
                          }
                      }
                      else {
                          ts.Debug.assert(child.pos > position);
                          return true;
                      }
                  }
              }
              function checkChangeRange(sourceFile, newText, textChangeRange, aggressiveChecks) {
                  var oldText = sourceFile.text;
                  if (textChangeRange) {
                      ts.Debug.assert((oldText.length - textChangeRange.span.length + textChangeRange.newLength) === newText.length);
                      if (aggressiveChecks || ts.Debug.shouldAssert(3)) {
                          var oldTextPrefix = oldText.substr(0, textChangeRange.span.start);
                          var newTextPrefix = newText.substr(0, textChangeRange.span.start);
                          ts.Debug.assert(oldTextPrefix === newTextPrefix);
                          var oldTextSuffix = oldText.substring(ts.textSpanEnd(textChangeRange.span), oldText.length);
                          var newTextSuffix = newText.substring(ts.textSpanEnd(ts.textChangeRangeNewSpan(textChangeRange)), newText.length);
                          ts.Debug.assert(oldTextSuffix === newTextSuffix);
                      }
                  }
              }
              function createSyntaxCursor(sourceFile) {
                  var currentArray = sourceFile.statements;
                  var currentArrayIndex = 0;
                  ts.Debug.assert(currentArrayIndex < currentArray.length);
                  var current = currentArray[currentArrayIndex];
                  var lastQueriedPosition = -1;
                  return {
                      currentNode: function (position) {
                          if (position !== lastQueriedPosition) {
                              if (current && current.end === position && currentArrayIndex < (currentArray.length - 1)) {
                                  currentArrayIndex++;
                                  current = currentArray[currentArrayIndex];
                              }
                              if (!current || current.pos !== position) {
                                  findHighestListElementThatStartsAtPosition(position);
                              }
                          }
                          lastQueriedPosition = position;
                          ts.Debug.assert(!current || current.pos === position);
                          return current;
                      }
                  };
                  function findHighestListElementThatStartsAtPosition(position) {
                      currentArray = undefined;
                      currentArrayIndex = -1;
                      current = undefined;
                      forEachChild(sourceFile, visitNode, visitArray);
                      return;
                      function visitNode(node) {
                          if (position >= node.pos && position < node.end) {
                              forEachChild(node, visitNode, visitArray);
                              return true;
                          }
                          return false;
                      }
                      function visitArray(array) {
                          if (position >= array.pos && position < array.end) {
                              for (var i = 0, n = array.length; i < n; i++) {
                                  var child = array[i];
                                  if (child) {
                                      if (child.pos === position) {
                                          currentArray = array;
                                          currentArrayIndex = i;
                                          current = child;
                                          return true;
                                      }
                                      else {
                                          if (child.pos < position && position < child.end) {
                                              forEachChild(child, visitNode, visitArray);
                                              return true;
                                          }
                                      }
                                  }
                              }
                          }
                          return false;
                      }
                  }
              }
          })(IncrementalParser || (IncrementalParser = {}));
      })(ts || (ts = {}));
      /// <reference path="binder.ts"/>
      var ts;
      (function (ts) {
          var nextSymbolId = 1;
          var nextNodeId = 1;
          var nextMergeId = 1;
          function getNodeId(node) {
              if (!node.id)
                  node.id = nextNodeId++;
              return node.id;
          }
          ts.getNodeId = getNodeId;
          ts.checkTime = 0;
          function getSymbolId(symbol) {
              if (!symbol.id) {
                  symbol.id = nextSymbolId++;
              }
              return symbol.id;
          }
          ts.getSymbolId = getSymbolId;
          function createTypeChecker(host, produceDiagnostics) {
              var Symbol = ts.objectAllocator.getSymbolConstructor();
              var Type = ts.objectAllocator.getTypeConstructor();
              var Signature = ts.objectAllocator.getSignatureConstructor();
              var typeCount = 0;
              var emptyArray = [];
              var emptySymbols = {};
              var compilerOptions = host.getCompilerOptions();
              var languageVersion = compilerOptions.target || 0;
              var emitResolver = createResolver();
              var undefinedSymbol = createSymbol(4 | 67108864, "undefined");
              var argumentsSymbol = createSymbol(4 | 67108864, "arguments");
              var checker = {
                  getNodeCount: function () { return ts.sum(host.getSourceFiles(), "nodeCount"); },
                  getIdentifierCount: function () { return ts.sum(host.getSourceFiles(), "identifierCount"); },
                  getSymbolCount: function () { return ts.sum(host.getSourceFiles(), "symbolCount"); },
                  getTypeCount: function () { return typeCount; },
                  isUndefinedSymbol: function (symbol) { return symbol === undefinedSymbol; },
                  isArgumentsSymbol: function (symbol) { return symbol === argumentsSymbol; },
                  getDiagnostics: getDiagnostics,
                  getGlobalDiagnostics: getGlobalDiagnostics,
                  getTypeOfSymbolAtLocation: getTypeOfSymbolAtLocation,
                  getDeclaredTypeOfSymbol: getDeclaredTypeOfSymbol,
                  getPropertiesOfType: getPropertiesOfType,
                  getPropertyOfType: getPropertyOfType,
                  getSignaturesOfType: getSignaturesOfType,
                  getIndexTypeOfType: getIndexTypeOfType,
                  getReturnTypeOfSignature: getReturnTypeOfSignature,
                  getSymbolsInScope: getSymbolsInScope,
                  getSymbolAtLocation: getSymbolAtLocation,
                  getShorthandAssignmentValueSymbol: getShorthandAssignmentValueSymbol,
                  getTypeAtLocation: getTypeAtLocation,
                  typeToString: typeToString,
                  getSymbolDisplayBuilder: getSymbolDisplayBuilder,
                  symbolToString: symbolToString,
                  getAugmentedPropertiesOfType: getAugmentedPropertiesOfType,
                  getRootSymbols: getRootSymbols,
                  getContextualType: getContextualType,
                  getFullyQualifiedName: getFullyQualifiedName,
                  getResolvedSignature: getResolvedSignature,
                  getConstantValue: getConstantValue,
                  isValidPropertyAccess: isValidPropertyAccess,
                  getSignatureFromDeclaration: getSignatureFromDeclaration,
                  isImplementationOfOverload: isImplementationOfOverload,
                  getAliasedSymbol: resolveAlias,
                  getEmitResolver: getEmitResolver,
                  getExportsOfModule: getExportsOfModuleAsArray
              };
              var unknownSymbol = createSymbol(4 | 67108864, "unknown");
              var resolvingSymbol = createSymbol(67108864, "__resolving__");
              var anyType = createIntrinsicType(1, "any");
              var stringType = createIntrinsicType(2, "string");
              var numberType = createIntrinsicType(4, "number");
              var booleanType = createIntrinsicType(8, "boolean");
              var esSymbolType = createIntrinsicType(1048576, "symbol");
              var voidType = createIntrinsicType(16, "void");
              var undefinedType = createIntrinsicType(32 | 262144, "undefined");
              var nullType = createIntrinsicType(64 | 262144, "null");
              var unknownType = createIntrinsicType(1, "unknown");
              var emptyObjectType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, undefined, undefined);
              var anyFunctionType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, undefined, undefined);
              var noConstraintType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, undefined, undefined);
              var anySignature = createSignature(undefined, undefined, emptyArray, anyType, 0, false, false);
              var unknownSignature = createSignature(undefined, undefined, emptyArray, unknownType, 0, false, false);
              var globals = {};
              var globalArraySymbol;
              var globalESSymbolConstructorSymbol;
              var globalObjectType;
              var globalFunctionType;
              var globalArrayType;
              var globalStringType;
              var globalNumberType;
              var globalBooleanType;
              var globalRegExpType;
              var globalTemplateStringsArrayType;
              var globalESSymbolType;
              var globalIterableType;
              var anyArrayType;
              var getGlobalClassDecoratorType;
              var getGlobalParameterDecoratorType;
              var getGlobalPropertyDecoratorType;
              var getGlobalMethodDecoratorType;
              var tupleTypes = {};
              var unionTypes = {};
              var stringLiteralTypes = {};
              var emitExtends = false;
              var emitDecorate = false;
              var emitParam = false;
              var resolutionTargets = [];
              var resolutionResults = [];
              var mergedSymbols = [];
              var symbolLinks = [];
              var nodeLinks = [];
              var potentialThisCollisions = [];
              var diagnostics = ts.createDiagnosticCollection();
              var primitiveTypeInfo = {
                  "string": {
                      type: stringType,
                      flags: 258
                  },
                  "number": {
                      type: numberType,
                      flags: 132
                  },
                  "boolean": {
                      type: booleanType,
                      flags: 8
                  },
                  "symbol": {
                      type: esSymbolType,
                      flags: 1048576
                  }
              };
              function getEmitResolver(sourceFile) {
                  getDiagnostics(sourceFile);
                  return emitResolver;
              }
              function error(location, message, arg0, arg1, arg2) {
                  var diagnostic = location
                      ? ts.createDiagnosticForNode(location, message, arg0, arg1, arg2)
                      : ts.createCompilerDiagnostic(message, arg0, arg1, arg2);
                  diagnostics.add(diagnostic);
              }
              function createSymbol(flags, name) {
                  return new Symbol(flags, name);
              }
              function getExcludedSymbolFlags(flags) {
                  var result = 0;
                  if (flags & 2)
                      result |= 107455;
                  if (flags & 1)
                      result |= 107454;
                  if (flags & 4)
                      result |= 107455;
                  if (flags & 8)
                      result |= 107455;
                  if (flags & 16)
                      result |= 106927;
                  if (flags & 32)
                      result |= 899583;
                  if (flags & 64)
                      result |= 792992;
                  if (flags & 256)
                      result |= 899327;
                  if (flags & 128)
                      result |= 899967;
                  if (flags & 512)
                      result |= 106639;
                  if (flags & 8192)
                      result |= 99263;
                  if (flags & 32768)
                      result |= 41919;
                  if (flags & 65536)
                      result |= 74687;
                  if (flags & 262144)
                      result |= 530912;
                  if (flags & 524288)
                      result |= 793056;
                  if (flags & 8388608)
                      result |= 8388608;
                  return result;
              }
              function recordMergedSymbol(target, source) {
                  if (!source.mergeId)
                      source.mergeId = nextMergeId++;
                  mergedSymbols[source.mergeId] = target;
              }
              function cloneSymbol(symbol) {
                  var result = createSymbol(symbol.flags | 33554432, symbol.name);
                  result.declarations = symbol.declarations.slice(0);
                  result.parent = symbol.parent;
                  if (symbol.valueDeclaration)
                      result.valueDeclaration = symbol.valueDeclaration;
                  if (symbol.constEnumOnlyModule)
                      result.constEnumOnlyModule = true;
                  if (symbol.members)
                      result.members = cloneSymbolTable(symbol.members);
                  if (symbol.exports)
                      result.exports = cloneSymbolTable(symbol.exports);
                  recordMergedSymbol(result, symbol);
                  return result;
              }
              function mergeSymbol(target, source) {
                  if (!(target.flags & getExcludedSymbolFlags(source.flags))) {
                      if (source.flags & 512 && target.flags & 512 && target.constEnumOnlyModule && !source.constEnumOnlyModule) {
                          target.constEnumOnlyModule = false;
                      }
                      target.flags |= source.flags;
                      if (!target.valueDeclaration && source.valueDeclaration)
                          target.valueDeclaration = source.valueDeclaration;
                      ts.forEach(source.declarations, function (node) {
                          target.declarations.push(node);
                      });
                      if (source.members) {
                          if (!target.members)
                              target.members = {};
                          mergeSymbolTable(target.members, source.members);
                      }
                      if (source.exports) {
                          if (!target.exports)
                              target.exports = {};
                          mergeSymbolTable(target.exports, source.exports);
                      }
                      recordMergedSymbol(target, source);
                  }
                  else {
                      var message = target.flags & 2 || source.flags & 2
                          ? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 : ts.Diagnostics.Duplicate_identifier_0;
                      ts.forEach(source.declarations, function (node) {
                          error(node.name ? node.name : node, message, symbolToString(source));
                      });
                      ts.forEach(target.declarations, function (node) {
                          error(node.name ? node.name : node, message, symbolToString(source));
                      });
                  }
              }
              function cloneSymbolTable(symbolTable) {
                  var result = {};
                  for (var id in symbolTable) {
                      if (ts.hasProperty(symbolTable, id)) {
                          result[id] = symbolTable[id];
                      }
                  }
                  return result;
              }
              function mergeSymbolTable(target, source) {
                  for (var id in source) {
                      if (ts.hasProperty(source, id)) {
                          if (!ts.hasProperty(target, id)) {
                              target[id] = source[id];
                          }
                          else {
                              var symbol = target[id];
                              if (!(symbol.flags & 33554432)) {
                                  target[id] = symbol = cloneSymbol(symbol);
                              }
                              mergeSymbol(symbol, source[id]);
                          }
                      }
                  }
              }
              function getSymbolLinks(symbol) {
                  if (symbol.flags & 67108864)
                      return symbol;
                  var id = getSymbolId(symbol);
                  return symbolLinks[id] || (symbolLinks[id] = {});
              }
              function getNodeLinks(node) {
                  var nodeId = getNodeId(node);
                  return nodeLinks[nodeId] || (nodeLinks[nodeId] = {});
              }
              function getSourceFile(node) {
                  return ts.getAncestor(node, 228);
              }
              function isGlobalSourceFile(node) {
                  return node.kind === 228 && !ts.isExternalModule(node);
              }
              function getSymbol(symbols, name, meaning) {
                  if (meaning && ts.hasProperty(symbols, name)) {
                      var symbol = symbols[name];
                      ts.Debug.assert((symbol.flags & 16777216) === 0, "Should never get an instantiated symbol here.");
                      if (symbol.flags & meaning) {
                          return symbol;
                      }
                      if (symbol.flags & 8388608) {
                          var target = resolveAlias(symbol);
                          if (target === unknownSymbol || target.flags & meaning) {
                              return symbol;
                          }
                      }
                  }
              }
              function isDefinedBefore(node1, node2) {
                  var file1 = ts.getSourceFileOfNode(node1);
                  var file2 = ts.getSourceFileOfNode(node2);
                  if (file1 === file2) {
                      return node1.pos <= node2.pos;
                  }
                  if (!compilerOptions.out) {
                      return true;
                  }
                  var sourceFiles = host.getSourceFiles();
                  return sourceFiles.indexOf(file1) <= sourceFiles.indexOf(file2);
              }
              function resolveName(location, name, meaning, nameNotFoundMessage, nameArg) {
                  var result;
                  var lastLocation;
                  var propertyWithInvalidInitializer;
                  var errorLocation = location;
                  var grandparent;
                  loop: while (location) {
                      if (location.locals && !isGlobalSourceFile(location)) {
                          if (result = getSymbol(location.locals, name, meaning)) {
                              break loop;
                          }
                      }
                      switch (location.kind) {
                          case 228:
                              if (!ts.isExternalModule(location))
                                  break;
                          case 206:
                              if (result = getSymbol(getSymbolOfNode(location).exports, name, meaning & 8914931)) {
                                  if (result.flags & meaning || !(result.flags & 8388608 && getDeclarationOfAliasSymbol(result).kind === 218)) {
                                      break loop;
                                  }
                                  result = undefined;
                              }
                              else if (location.kind === 228 ||
                                  (location.kind === 206 && location.name.kind === 8)) {
                                  result = getSymbolOfNode(location).exports["default"];
                                  var localSymbol = ts.getLocalSymbolForExportDefault(result);
                                  if (result && localSymbol && (result.flags & meaning) && localSymbol.name === name) {
                                      break loop;
                                  }
                                  result = undefined;
                              }
                              break;
                          case 205:
                              if (result = getSymbol(getSymbolOfNode(location).exports, name, meaning & 8)) {
                                  break loop;
                              }
                              break;
                          case 133:
                          case 132:
                              if (location.parent.kind === 202 && !(location.flags & 128)) {
                                  var ctor = findConstructorDeclaration(location.parent);
                                  if (ctor && ctor.locals) {
                                      if (getSymbol(ctor.locals, name, meaning & 107455)) {
                                          propertyWithInvalidInitializer = location;
                                      }
                                  }
                              }
                              break;
                          case 202:
                          case 203:
                              if (result = getSymbol(getSymbolOfNode(location).members, name, meaning & 793056)) {
                                  if (lastLocation && lastLocation.flags & 128) {
                                      error(errorLocation, ts.Diagnostics.Static_members_cannot_reference_class_type_parameters);
                                      return undefined;
                                  }
                                  break loop;
                              }
                              break;
                          case 128:
                              grandparent = location.parent.parent;
                              if (grandparent.kind === 202 || grandparent.kind === 203) {
                                  if (result = getSymbol(getSymbolOfNode(grandparent).members, name, meaning & 793056)) {
                                      error(errorLocation, ts.Diagnostics.A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type);
                                      return undefined;
                                  }
                              }
                              break;
                          case 135:
                          case 134:
                          case 136:
                          case 137:
                          case 138:
                          case 201:
                          case 164:
                              if (name === "arguments") {
                                  result = argumentsSymbol;
                                  break loop;
                              }
                              break;
                          case 163:
                              if (name === "arguments") {
                                  result = argumentsSymbol;
                                  break loop;
                              }
                              var functionName = location.name;
                              if (functionName && name === functionName.text) {
                                  result = location.symbol;
                                  break loop;
                              }
                              break;
                          case 175:
                              var className = location.name;
                              if (className && name === className.text) {
                                  result = location.symbol;
                                  break loop;
                              }
                              break;
                          case 131:
                              if (location.parent && location.parent.kind === 130) {
                                  location = location.parent;
                              }
                              if (location.parent && ts.isClassElement(location.parent)) {
                                  location = location.parent;
                              }
                              break;
                      }
                      lastLocation = location;
                      location = location.parent;
                  }
                  if (!result) {
                      result = getSymbol(globals, name, meaning);
                  }
                  if (!result) {
                      if (nameNotFoundMessage) {
                          error(errorLocation, nameNotFoundMessage, typeof nameArg === "string" ? nameArg : ts.declarationNameToString(nameArg));
                      }
                      return undefined;
                  }
                  if (nameNotFoundMessage) {
                      if (propertyWithInvalidInitializer) {
                          var propertyName = propertyWithInvalidInitializer.name;
                          error(errorLocation, ts.Diagnostics.Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor, ts.declarationNameToString(propertyName), typeof nameArg === "string" ? nameArg : ts.declarationNameToString(nameArg));
                          return undefined;
                      }
                      if (result.flags & 2) {
                          checkResolvedBlockScopedVariable(result, errorLocation);
                      }
                  }
                  return result;
              }
              function checkResolvedBlockScopedVariable(result, errorLocation) {
                  ts.Debug.assert((result.flags & 2) !== 0);
                  var declaration = ts.forEach(result.declarations, function (d) { return ts.isBlockOrCatchScoped(d) ? d : undefined; });
                  ts.Debug.assert(declaration !== undefined, "Block-scoped variable declaration is undefined");
                  var isUsedBeforeDeclaration = !isDefinedBefore(declaration, errorLocation);
                  if (!isUsedBeforeDeclaration) {
                      var variableDeclaration = ts.getAncestor(declaration, 199);
                      var container = ts.getEnclosingBlockScopeContainer(variableDeclaration);
                      if (variableDeclaration.parent.parent.kind === 181 ||
                          variableDeclaration.parent.parent.kind === 187) {
                          isUsedBeforeDeclaration = isSameScopeDescendentOf(errorLocation, variableDeclaration, container);
                      }
                      else if (variableDeclaration.parent.parent.kind === 189 ||
                          variableDeclaration.parent.parent.kind === 188) {
                          var expression = variableDeclaration.parent.parent.expression;
                          isUsedBeforeDeclaration = isSameScopeDescendentOf(errorLocation, expression, container);
                      }
                  }
                  if (isUsedBeforeDeclaration) {
                      error(errorLocation, ts.Diagnostics.Block_scoped_variable_0_used_before_its_declaration, ts.declarationNameToString(declaration.name));
                  }
              }
              function isSameScopeDescendentOf(initial, parent, stopAt) {
                  if (!parent) {
                      return false;
                  }
                  for (var current = initial; current && current !== stopAt && !ts.isFunctionLike(current); current = current.parent) {
                      if (current === parent) {
                          return true;
                      }
                  }
                  return false;
              }
              function getAnyImportSyntax(node) {
                  if (ts.isAliasSymbolDeclaration(node)) {
                      if (node.kind === 209) {
                          return node;
                      }
                      while (node && node.kind !== 210) {
                          node = node.parent;
                      }
                      return node;
                  }
              }
              function getDeclarationOfAliasSymbol(symbol) {
                  return ts.forEach(symbol.declarations, function (d) { return ts.isAliasSymbolDeclaration(d) ? d : undefined; });
              }
              function getTargetOfImportEqualsDeclaration(node) {
                  if (node.moduleReference.kind === 220) {
                      return resolveExternalModuleSymbol(resolveExternalModuleName(node, ts.getExternalModuleImportEqualsDeclarationExpression(node)));
                  }
                  return getSymbolOfPartOfRightHandSideOfImportEquals(node.moduleReference, node);
              }
              function getTargetOfImportClause(node) {
                  var moduleSymbol = resolveExternalModuleName(node, node.parent.moduleSpecifier);
                  if (moduleSymbol) {
                      var exportDefaultSymbol = resolveSymbol(moduleSymbol.exports["default"]);
                      if (!exportDefaultSymbol) {
                          error(node.name, ts.Diagnostics.Module_0_has_no_default_export, symbolToString(moduleSymbol));
                      }
                      return exportDefaultSymbol;
                  }
              }
              function getTargetOfNamespaceImport(node) {
                  var moduleSpecifier = node.parent.parent.moduleSpecifier;
                  return resolveESModuleSymbol(resolveExternalModuleName(node, moduleSpecifier), moduleSpecifier);
              }
              function getMemberOfModuleVariable(moduleSymbol, name) {
                  if (moduleSymbol.flags & 3) {
                      var typeAnnotation = moduleSymbol.valueDeclaration.type;
                      if (typeAnnotation) {
                          return getPropertyOfType(getTypeFromTypeNode(typeAnnotation), name);
                      }
                  }
              }
              function combineValueAndTypeSymbols(valueSymbol, typeSymbol) {
                  if (valueSymbol.flags & (793056 | 1536)) {
                      return valueSymbol;
                  }
                  var result = createSymbol(valueSymbol.flags | typeSymbol.flags, valueSymbol.name);
                  result.declarations = ts.concatenate(valueSymbol.declarations, typeSymbol.declarations);
                  result.parent = valueSymbol.parent || typeSymbol.parent;
                  if (valueSymbol.valueDeclaration)
                      result.valueDeclaration = valueSymbol.valueDeclaration;
                  if (typeSymbol.members)
                      result.members = typeSymbol.members;
                  if (valueSymbol.exports)
                      result.exports = valueSymbol.exports;
                  return result;
              }
              function getExportOfModule(symbol, name) {
                  if (symbol.flags & 1536) {
                      var exports = getExportsOfSymbol(symbol);
                      if (ts.hasProperty(exports, name)) {
                          return resolveSymbol(exports[name]);
                      }
                  }
              }
              function getPropertyOfVariable(symbol, name) {
                  if (symbol.flags & 3) {
                      var typeAnnotation = symbol.valueDeclaration.type;
                      if (typeAnnotation) {
                          return resolveSymbol(getPropertyOfType(getTypeFromTypeNode(typeAnnotation), name));
                      }
                  }
              }
              function getExternalModuleMember(node, specifier) {
                  var moduleSymbol = resolveExternalModuleName(node, node.moduleSpecifier);
                  var targetSymbol = resolveESModuleSymbol(moduleSymbol, node.moduleSpecifier);
                  if (targetSymbol) {
                      var name_4 = specifier.propertyName || specifier.name;
                      if (name_4.text) {
                          var symbolFromModule = getExportOfModule(targetSymbol, name_4.text);
                          var symbolFromVariable = getPropertyOfVariable(targetSymbol, name_4.text);
                          var symbol = symbolFromModule && symbolFromVariable ?
                              combineValueAndTypeSymbols(symbolFromVariable, symbolFromModule) :
                              symbolFromModule || symbolFromVariable;
                          if (!symbol) {
                              error(name_4, ts.Diagnostics.Module_0_has_no_exported_member_1, getFullyQualifiedName(moduleSymbol), ts.declarationNameToString(name_4));
                          }
                          return symbol;
                      }
                  }
              }
              function getTargetOfImportSpecifier(node) {
                  return getExternalModuleMember(node.parent.parent.parent, node);
              }
              function getTargetOfExportSpecifier(node) {
                  return node.parent.parent.moduleSpecifier ?
                      getExternalModuleMember(node.parent.parent, node) :
                      resolveEntityName(node.propertyName || node.name, 107455 | 793056 | 1536);
              }
              function getTargetOfExportAssignment(node) {
                  return resolveEntityName(node.expression, 107455 | 793056 | 1536);
              }
              function getTargetOfAliasDeclaration(node) {
                  switch (node.kind) {
                      case 209:
                          return getTargetOfImportEqualsDeclaration(node);
                      case 211:
                          return getTargetOfImportClause(node);
                      case 212:
                          return getTargetOfNamespaceImport(node);
                      case 214:
                          return getTargetOfImportSpecifier(node);
                      case 218:
                          return getTargetOfExportSpecifier(node);
                      case 215:
                          return getTargetOfExportAssignment(node);
                  }
              }
              function resolveSymbol(symbol) {
                  return symbol && symbol.flags & 8388608 && !(symbol.flags & (107455 | 793056 | 1536)) ? resolveAlias(symbol) : symbol;
              }
              function resolveAlias(symbol) {
                  ts.Debug.assert((symbol.flags & 8388608) !== 0, "Should only get Alias here.");
                  var links = getSymbolLinks(symbol);
                  if (!links.target) {
                      links.target = resolvingSymbol;
                      var node = getDeclarationOfAliasSymbol(symbol);
                      var target = getTargetOfAliasDeclaration(node);
                      if (links.target === resolvingSymbol) {
                          links.target = target || unknownSymbol;
                      }
                      else {
                          error(node, ts.Diagnostics.Circular_definition_of_import_alias_0, symbolToString(symbol));
                      }
                  }
                  else if (links.target === resolvingSymbol) {
                      links.target = unknownSymbol;
                  }
                  return links.target;
              }
              function markExportAsReferenced(node) {
                  var symbol = getSymbolOfNode(node);
                  var target = resolveAlias(symbol);
                  if (target) {
                      var markAlias = (target === unknownSymbol && compilerOptions.separateCompilation) ||
                          (target !== unknownSymbol && (target.flags & 107455) && !isConstEnumOrConstEnumOnlyModule(target));
                      if (markAlias) {
                          markAliasSymbolAsReferenced(symbol);
                      }
                  }
              }
              function markAliasSymbolAsReferenced(symbol) {
                  var links = getSymbolLinks(symbol);
                  if (!links.referenced) {
                      links.referenced = true;
                      var node = getDeclarationOfAliasSymbol(symbol);
                      if (node.kind === 215) {
                          checkExpressionCached(node.expression);
                      }
                      else if (node.kind === 218) {
                          checkExpressionCached(node.propertyName || node.name);
                      }
                      else if (ts.isInternalModuleImportEqualsDeclaration(node)) {
                          checkExpressionCached(node.moduleReference);
                      }
                  }
              }
              function getSymbolOfPartOfRightHandSideOfImportEquals(entityName, importDeclaration) {
                  if (!importDeclaration) {
                      importDeclaration = ts.getAncestor(entityName, 209);
                      ts.Debug.assert(importDeclaration !== undefined);
                  }
                  if (entityName.kind === 65 && ts.isRightSideOfQualifiedNameOrPropertyAccess(entityName)) {
                      entityName = entityName.parent;
                  }
                  if (entityName.kind === 65 || entityName.parent.kind === 127) {
                      return resolveEntityName(entityName, 1536);
                  }
                  else {
                      ts.Debug.assert(entityName.parent.kind === 209);
                      return resolveEntityName(entityName, 107455 | 793056 | 1536);
                  }
              }
              function getFullyQualifiedName(symbol) {
                  return symbol.parent ? getFullyQualifiedName(symbol.parent) + "." + symbolToString(symbol) : symbolToString(symbol);
              }
              function resolveEntityName(name, meaning) {
                  if (ts.nodeIsMissing(name)) {
                      return undefined;
                  }
                  var symbol;
                  if (name.kind === 65) {
                      var message = meaning === 1536 ? ts.Diagnostics.Cannot_find_namespace_0 : ts.Diagnostics.Cannot_find_name_0;
                      symbol = resolveName(name, name.text, meaning, message, name);
                      if (!symbol) {
                          return undefined;
                      }
                  }
                  else if (name.kind === 127 || name.kind === 156) {
                      var left = name.kind === 127 ? name.left : name.expression;
                      var right = name.kind === 127 ? name.right : name.name;
                      var namespace = resolveEntityName(left, 1536);
                      if (!namespace || namespace === unknownSymbol || ts.nodeIsMissing(right)) {
                          return undefined;
                      }
                      symbol = getSymbol(getExportsOfSymbol(namespace), right.text, meaning);
                      if (!symbol) {
                          error(right, ts.Diagnostics.Module_0_has_no_exported_member_1, getFullyQualifiedName(namespace), ts.declarationNameToString(right));
                          return undefined;
                      }
                  }
                  else {
                      ts.Debug.fail("Unknown entity name kind.");
                  }
                  ts.Debug.assert((symbol.flags & 16777216) === 0, "Should never get an instantiated symbol here.");
                  return symbol.flags & meaning ? symbol : resolveAlias(symbol);
              }
              function isExternalModuleNameRelative(moduleName) {
                  return moduleName.substr(0, 2) === "./" || moduleName.substr(0, 3) === "../" || moduleName.substr(0, 2) === ".\\" || moduleName.substr(0, 3) === "..\\";
              }
              function resolveExternalModuleName(location, moduleReferenceExpression) {
                  if (moduleReferenceExpression.kind !== 8) {
                      return;
                  }
                  var moduleReferenceLiteral = moduleReferenceExpression;
                  var searchPath = ts.getDirectoryPath(getSourceFile(location).fileName);
                  var moduleName = ts.escapeIdentifier(moduleReferenceLiteral.text);
                  if (!moduleName)
                      return;
                  var isRelative = isExternalModuleNameRelative(moduleName);
                  if (!isRelative) {
                      var symbol = getSymbol(globals, '"' + moduleName + '"', 512);
                      if (symbol) {
                          return symbol;
                      }
                  }
                  var fileName;
                  var sourceFile;
                  while (true) {
                      fileName = ts.normalizePath(ts.combinePaths(searchPath, moduleName));
                      sourceFile = ts.forEach(ts.supportedExtensions, function (extension) { return host.getSourceFile(fileName + extension); });
                      if (sourceFile || isRelative) {
                          break;
                      }
                      var parentPath = ts.getDirectoryPath(searchPath);
                      if (parentPath === searchPath) {
                          break;
                      }
                      searchPath = parentPath;
                  }
                  if (sourceFile) {
                      if (sourceFile.symbol) {
                          return sourceFile.symbol;
                      }
                      error(moduleReferenceLiteral, ts.Diagnostics.File_0_is_not_a_module, sourceFile.fileName);
                      return;
                  }
                  error(moduleReferenceLiteral, ts.Diagnostics.Cannot_find_module_0, moduleName);
              }
              function resolveExternalModuleSymbol(moduleSymbol) {
                  return moduleSymbol && resolveSymbol(moduleSymbol.exports["export="]) || moduleSymbol;
              }
              function resolveESModuleSymbol(moduleSymbol, moduleReferenceExpression) {
                  var symbol = resolveExternalModuleSymbol(moduleSymbol);
                  if (symbol && !(symbol.flags & (1536 | 3))) {
                      error(moduleReferenceExpression, ts.Diagnostics.Module_0_resolves_to_a_non_module_entity_and_cannot_be_imported_using_this_construct, symbolToString(moduleSymbol));
                      symbol = undefined;
                  }
                  return symbol;
              }
              function getExportAssignmentSymbol(moduleSymbol) {
                  return moduleSymbol.exports["export="];
              }
              function getExportsOfModuleAsArray(moduleSymbol) {
                  return symbolsToArray(getExportsOfModule(moduleSymbol));
              }
              function getExportsOfSymbol(symbol) {
                  return symbol.flags & 1536 ? getExportsOfModule(symbol) : symbol.exports || emptySymbols;
              }
              function getExportsOfModule(moduleSymbol) {
                  var links = getSymbolLinks(moduleSymbol);
                  return links.resolvedExports || (links.resolvedExports = getExportsForModule(moduleSymbol));
              }
              function extendExportSymbols(target, source) {
                  for (var id in source) {
                      if (id !== "default" && !ts.hasProperty(target, id)) {
                          target[id] = source[id];
                      }
                  }
              }
              function getExportsForModule(moduleSymbol) {
                  var result;
                  var visitedSymbols = [];
                  visit(moduleSymbol);
                  return result || moduleSymbol.exports;
                  function visit(symbol) {
                      if (symbol && symbol.flags & 1952 && !ts.contains(visitedSymbols, symbol)) {
                          visitedSymbols.push(symbol);
                          if (symbol !== moduleSymbol) {
                              if (!result) {
                                  result = cloneSymbolTable(moduleSymbol.exports);
                              }
                              extendExportSymbols(result, symbol.exports);
                          }
                          var exportStars = symbol.exports["__export"];
                          if (exportStars) {
                              for (var _i = 0, _a = exportStars.declarations; _i < _a.length; _i++) {
                                  var node = _a[_i];
                                  visit(resolveExternalModuleName(node, node.moduleSpecifier));
                              }
                          }
                      }
                  }
              }
              function getMergedSymbol(symbol) {
                  var merged;
                  return symbol && symbol.mergeId && (merged = mergedSymbols[symbol.mergeId]) ? merged : symbol;
              }
              function getSymbolOfNode(node) {
                  return getMergedSymbol(node.symbol);
              }
              function getParentOfSymbol(symbol) {
                  return getMergedSymbol(symbol.parent);
              }
              function getExportSymbolOfValueSymbolIfExported(symbol) {
                  return symbol && (symbol.flags & 1048576) !== 0
                      ? getMergedSymbol(symbol.exportSymbol)
                      : symbol;
              }
              function symbolIsValue(symbol) {
                  if (symbol.flags & 16777216) {
                      return symbolIsValue(getSymbolLinks(symbol).target);
                  }
                  if (symbol.flags & 107455) {
                      return true;
                  }
                  if (symbol.flags & 8388608) {
                      return (resolveAlias(symbol).flags & 107455) !== 0;
                  }
                  return false;
              }
              function findConstructorDeclaration(node) {
                  var members = node.members;
                  for (var _i = 0; _i < members.length; _i++) {
                      var member = members[_i];
                      if (member.kind === 136 && ts.nodeIsPresent(member.body)) {
                          return member;
                      }
                  }
              }
              function createType(flags) {
                  var result = new Type(checker, flags);
                  result.id = typeCount++;
                  return result;
              }
              function createIntrinsicType(kind, intrinsicName) {
                  var type = createType(kind);
                  type.intrinsicName = intrinsicName;
                  return type;
              }
              function createObjectType(kind, symbol) {
                  var type = createType(kind);
                  type.symbol = symbol;
                  return type;
              }
              function isReservedMemberName(name) {
                  return name.charCodeAt(0) === 95 &&
                      name.charCodeAt(1) === 95 &&
                      name.charCodeAt(2) !== 95 &&
                      name.charCodeAt(2) !== 64;
              }
              function getNamedMembers(members) {
                  var result;
                  for (var id in members) {
                      if (ts.hasProperty(members, id)) {
                          if (!isReservedMemberName(id)) {
                              if (!result)
                                  result = [];
                              var symbol = members[id];
                              if (symbolIsValue(symbol)) {
                                  result.push(symbol);
                              }
                          }
                      }
                  }
                  return result || emptyArray;
              }
              function setObjectTypeMembers(type, members, callSignatures, constructSignatures, stringIndexType, numberIndexType) {
                  type.members = members;
                  type.properties = getNamedMembers(members);
                  type.callSignatures = callSignatures;
                  type.constructSignatures = constructSignatures;
                  if (stringIndexType)
                      type.stringIndexType = stringIndexType;
                  if (numberIndexType)
                      type.numberIndexType = numberIndexType;
                  return type;
              }
              function createAnonymousType(symbol, members, callSignatures, constructSignatures, stringIndexType, numberIndexType) {
                  return setObjectTypeMembers(createObjectType(32768, symbol), members, callSignatures, constructSignatures, stringIndexType, numberIndexType);
              }
              function forEachSymbolTableInScope(enclosingDeclaration, callback) {
                  var result;
                  for (var location_1 = enclosingDeclaration; location_1; location_1 = location_1.parent) {
                      if (location_1.locals && !isGlobalSourceFile(location_1)) {
                          if (result = callback(location_1.locals)) {
                              return result;
                          }
                      }
                      switch (location_1.kind) {
                          case 228:
                              if (!ts.isExternalModule(location_1)) {
                                  break;
                              }
                          case 206:
                              if (result = callback(getSymbolOfNode(location_1).exports)) {
                                  return result;
                              }
                              break;
                          case 202:
                          case 203:
                              if (result = callback(getSymbolOfNode(location_1).members)) {
                                  return result;
                              }
                              break;
                      }
                  }
                  return callback(globals);
              }
              function getQualifiedLeftMeaning(rightMeaning) {
                  return rightMeaning === 107455 ? 107455 : 1536;
              }
              function getAccessibleSymbolChain(symbol, enclosingDeclaration, meaning, useOnlyExternalAliasing) {
                  function getAccessibleSymbolChainFromSymbolTable(symbols) {
                      function canQualifySymbol(symbolFromSymbolTable, meaning) {
                          if (!needsQualification(symbolFromSymbolTable, enclosingDeclaration, meaning)) {
                              return true;
                          }
                          var accessibleParent = getAccessibleSymbolChain(symbolFromSymbolTable.parent, enclosingDeclaration, getQualifiedLeftMeaning(meaning), useOnlyExternalAliasing);
                          return !!accessibleParent;
                      }
                      function isAccessible(symbolFromSymbolTable, resolvedAliasSymbol) {
                          if (symbol === (resolvedAliasSymbol || symbolFromSymbolTable)) {
                              return !ts.forEach(symbolFromSymbolTable.declarations, hasExternalModuleSymbol) &&
                                  canQualifySymbol(symbolFromSymbolTable, meaning);
                          }
                      }
                      if (isAccessible(ts.lookUp(symbols, symbol.name))) {
                          return [symbol];
                      }
                      return ts.forEachValue(symbols, function (symbolFromSymbolTable) {
                          if (symbolFromSymbolTable.flags & 8388608 && symbolFromSymbolTable.name !== "export=") {
                              if (!useOnlyExternalAliasing ||
                                  ts.forEach(symbolFromSymbolTable.declarations, ts.isExternalModuleImportEqualsDeclaration)) {
                                  var resolvedImportedSymbol = resolveAlias(symbolFromSymbolTable);
                                  if (isAccessible(symbolFromSymbolTable, resolveAlias(symbolFromSymbolTable))) {
                                      return [symbolFromSymbolTable];
                                  }
                                  var accessibleSymbolsFromExports = resolvedImportedSymbol.exports ? getAccessibleSymbolChainFromSymbolTable(resolvedImportedSymbol.exports) : undefined;
                                  if (accessibleSymbolsFromExports && canQualifySymbol(symbolFromSymbolTable, getQualifiedLeftMeaning(meaning))) {
                                      return [symbolFromSymbolTable].concat(accessibleSymbolsFromExports);
                                  }
                              }
                          }
                      });
                  }
                  if (symbol) {
                      return forEachSymbolTableInScope(enclosingDeclaration, getAccessibleSymbolChainFromSymbolTable);
                  }
              }
              function needsQualification(symbol, enclosingDeclaration, meaning) {
                  var qualify = false;
                  forEachSymbolTableInScope(enclosingDeclaration, function (symbolTable) {
                      if (!ts.hasProperty(symbolTable, symbol.name)) {
                          return false;
                      }
                      var symbolFromSymbolTable = symbolTable[symbol.name];
                      if (symbolFromSymbolTable === symbol) {
                          return true;
                      }
                      symbolFromSymbolTable = (symbolFromSymbolTable.flags & 8388608) ? resolveAlias(symbolFromSymbolTable) : symbolFromSymbolTable;
                      if (symbolFromSymbolTable.flags & meaning) {
                          qualify = true;
                          return true;
                      }
                      return false;
                  });
                  return qualify;
              }
              function isSymbolAccessible(symbol, enclosingDeclaration, meaning) {
                  if (symbol && enclosingDeclaration && !(symbol.flags & 262144)) {
                      var initialSymbol = symbol;
                      var meaningToLook = meaning;
                      while (symbol) {
                          var accessibleSymbolChain = getAccessibleSymbolChain(symbol, enclosingDeclaration, meaningToLook, false);
                          if (accessibleSymbolChain) {
                              var hasAccessibleDeclarations = hasVisibleDeclarations(accessibleSymbolChain[0]);
                              if (!hasAccessibleDeclarations) {
                                  return {
                                      accessibility: 1,
                                      errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning),
                                      errorModuleName: symbol !== initialSymbol ? symbolToString(symbol, enclosingDeclaration, 1536) : undefined
                                  };
                              }
                              return hasAccessibleDeclarations;
                          }
                          meaningToLook = getQualifiedLeftMeaning(meaning);
                          symbol = getParentOfSymbol(symbol);
                      }
                      var symbolExternalModule = ts.forEach(initialSymbol.declarations, getExternalModuleContainer);
                      if (symbolExternalModule) {
                          var enclosingExternalModule = getExternalModuleContainer(enclosingDeclaration);
                          if (symbolExternalModule !== enclosingExternalModule) {
                              return {
                                  accessibility: 2,
                                  errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning),
                                  errorModuleName: symbolToString(symbolExternalModule)
                              };
                          }
                      }
                      return {
                          accessibility: 1,
                          errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning)
                      };
                  }
                  return { accessibility: 0 };
                  function getExternalModuleContainer(declaration) {
                      for (; declaration; declaration = declaration.parent) {
                          if (hasExternalModuleSymbol(declaration)) {
                              return getSymbolOfNode(declaration);
                          }
                      }
                  }
              }
              function hasExternalModuleSymbol(declaration) {
                  return (declaration.kind === 206 && declaration.name.kind === 8) ||
                      (declaration.kind === 228 && ts.isExternalModule(declaration));
              }
              function hasVisibleDeclarations(symbol) {
                  var aliasesToMakeVisible;
                  if (ts.forEach(symbol.declarations, function (declaration) { return !getIsDeclarationVisible(declaration); })) {
                      return undefined;
                  }
                  return { accessibility: 0, aliasesToMakeVisible: aliasesToMakeVisible };
                  function getIsDeclarationVisible(declaration) {
                      if (!isDeclarationVisible(declaration)) {
                          var anyImportSyntax = getAnyImportSyntax(declaration);
                          if (anyImportSyntax &&
                              !(anyImportSyntax.flags & 1) &&
                              isDeclarationVisible(anyImportSyntax.parent)) {
                              getNodeLinks(declaration).isVisible = true;
                              if (aliasesToMakeVisible) {
                                  if (!ts.contains(aliasesToMakeVisible, anyImportSyntax)) {
                                      aliasesToMakeVisible.push(anyImportSyntax);
                                  }
                              }
                              else {
                                  aliasesToMakeVisible = [anyImportSyntax];
                              }
                              return true;
                          }
                          return false;
                      }
                      return true;
                  }
              }
              function isEntityNameVisible(entityName, enclosingDeclaration) {
                  var meaning;
                  if (entityName.parent.kind === 145) {
                      meaning = 107455 | 1048576;
                  }
                  else if (entityName.kind === 127 || entityName.kind === 156 ||
                      entityName.parent.kind === 209) {
                      meaning = 1536;
                  }
                  else {
                      meaning = 793056;
                  }
                  var firstIdentifier = getFirstIdentifier(entityName);
                  var symbol = resolveName(enclosingDeclaration, firstIdentifier.text, meaning, undefined, undefined);
                  return (symbol && hasVisibleDeclarations(symbol)) || {
                      accessibility: 1,
                      errorSymbolName: ts.getTextOfNode(firstIdentifier),
                      errorNode: firstIdentifier
                  };
              }
              function writeKeyword(writer, kind) {
                  writer.writeKeyword(ts.tokenToString(kind));
              }
              function writePunctuation(writer, kind) {
                  writer.writePunctuation(ts.tokenToString(kind));
              }
              function writeSpace(writer) {
                  writer.writeSpace(" ");
              }
              function symbolToString(symbol, enclosingDeclaration, meaning) {
                  var writer = ts.getSingleLineStringWriter();
                  getSymbolDisplayBuilder().buildSymbolDisplay(symbol, writer, enclosingDeclaration, meaning);
                  var result = writer.string();
                  ts.releaseStringWriter(writer);
                  return result;
              }
              function typeToString(type, enclosingDeclaration, flags) {
                  var writer = ts.getSingleLineStringWriter();
                  getSymbolDisplayBuilder().buildTypeDisplay(type, writer, enclosingDeclaration, flags);
                  var result = writer.string();
                  ts.releaseStringWriter(writer);
                  var maxLength = compilerOptions.noErrorTruncation || flags & 4 ? undefined : 100;
                  if (maxLength && result.length >= maxLength) {
                      result = result.substr(0, maxLength - "...".length) + "...";
                  }
                  return result;
              }
              function getTypeAliasForTypeLiteral(type) {
                  if (type.symbol && type.symbol.flags & 2048) {
                      var node = type.symbol.declarations[0].parent;
                      while (node.kind === 150) {
                          node = node.parent;
                      }
                      if (node.kind === 204) {
                          return getSymbolOfNode(node);
                      }
                  }
                  return undefined;
              }
              var _displayBuilder;
              function getSymbolDisplayBuilder() {
                  function appendSymbolNameOnly(symbol, writer) {
                      if (symbol.declarations && symbol.declarations.length > 0) {
                          var declaration = symbol.declarations[0];
                          if (declaration.name) {
                              writer.writeSymbol(ts.declarationNameToString(declaration.name), symbol);
                              return;
                          }
                      }
                      writer.writeSymbol(symbol.name, symbol);
                  }
                  function buildSymbolDisplay(symbol, writer, enclosingDeclaration, meaning, flags, typeFlags) {
                      var parentSymbol;
                      function appendParentTypeArgumentsAndSymbolName(symbol) {
                          if (parentSymbol) {
                              if (flags & 1) {
                                  if (symbol.flags & 16777216) {
                                      buildDisplayForTypeArgumentsAndDelimiters(getTypeParametersOfClassOrInterface(parentSymbol), symbol.mapper, writer, enclosingDeclaration);
                                  }
                                  else {
                                      buildTypeParameterDisplayFromSymbol(parentSymbol, writer, enclosingDeclaration);
                                  }
                              }
                              writePunctuation(writer, 20);
                          }
                          parentSymbol = symbol;
                          appendSymbolNameOnly(symbol, writer);
                      }
                      writer.trackSymbol(symbol, enclosingDeclaration, meaning);
                      function walkSymbol(symbol, meaning) {
                          if (symbol) {
                              var accessibleSymbolChain = getAccessibleSymbolChain(symbol, enclosingDeclaration, meaning, !!(flags & 2));
                              if (!accessibleSymbolChain ||
                                  needsQualification(accessibleSymbolChain[0], enclosingDeclaration, accessibleSymbolChain.length === 1 ? meaning : getQualifiedLeftMeaning(meaning))) {
                                  walkSymbol(getParentOfSymbol(accessibleSymbolChain ? accessibleSymbolChain[0] : symbol), getQualifiedLeftMeaning(meaning));
                              }
                              if (accessibleSymbolChain) {
                                  for (var _i = 0; _i < accessibleSymbolChain.length; _i++) {
                                      var accessibleSymbol = accessibleSymbolChain[_i];
                                      appendParentTypeArgumentsAndSymbolName(accessibleSymbol);
                                  }
                              }
                              else {
                                  if (!parentSymbol && ts.forEach(symbol.declarations, hasExternalModuleSymbol)) {
                                      return;
                                  }
                                  if (symbol.flags & 2048 || symbol.flags & 4096) {
                                      return;
                                  }
                                  appendParentTypeArgumentsAndSymbolName(symbol);
                              }
                          }
                      }
                      var isTypeParameter = symbol.flags & 262144;
                      var typeFormatFlag = 128 & typeFlags;
                      if (!isTypeParameter && (enclosingDeclaration || typeFormatFlag)) {
                          walkSymbol(symbol, meaning);
                          return;
                      }
                      return appendParentTypeArgumentsAndSymbolName(symbol);
                  }
                  function buildTypeDisplay(type, writer, enclosingDeclaration, globalFlags, typeStack) {
                      var globalFlagsToPass = globalFlags & 16;
                      return writeType(type, globalFlags);
                      function writeType(type, flags) {
                          if (type.flags & 1048703) {
                              writer.writeKeyword(!(globalFlags & 16) &&
                                  (type.flags & 1) ? "any" : type.intrinsicName);
                          }
                          else if (type.flags & 4096) {
                              writeTypeReference(type, flags);
                          }
                          else if (type.flags & (1024 | 2048 | 128 | 512)) {
                              buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, 793056, 0, flags);
                          }
                          else if (type.flags & 8192) {
                              writeTupleType(type);
                          }
                          else if (type.flags & 16384) {
                              writeUnionType(type, flags);
                          }
                          else if (type.flags & 32768) {
                              writeAnonymousType(type, flags);
                          }
                          else if (type.flags & 256) {
                              writer.writeStringLiteral(type.text);
                          }
                          else {
                              writePunctuation(writer, 14);
                              writeSpace(writer);
                              writePunctuation(writer, 21);
                              writeSpace(writer);
                              writePunctuation(writer, 15);
                          }
                      }
                      function writeTypeList(types, union) {
                          for (var i = 0; i < types.length; i++) {
                              if (i > 0) {
                                  if (union) {
                                      writeSpace(writer);
                                  }
                                  writePunctuation(writer, union ? 44 : 23);
                                  writeSpace(writer);
                              }
                              writeType(types[i], union ? 64 : 0);
                          }
                      }
                      function writeTypeReference(type, flags) {
                          if (type.target === globalArrayType && !(flags & 1)) {
                              writeType(type.typeArguments[0], 64);
                              writePunctuation(writer, 18);
                              writePunctuation(writer, 19);
                          }
                          else {
                              buildSymbolDisplay(type.target.symbol, writer, enclosingDeclaration, 793056);
                              writePunctuation(writer, 24);
                              writeTypeList(type.typeArguments, false);
                              writePunctuation(writer, 25);
                          }
                      }
                      function writeTupleType(type) {
                          writePunctuation(writer, 18);
                          writeTypeList(type.elementTypes, false);
                          writePunctuation(writer, 19);
                      }
                      function writeUnionType(type, flags) {
                          if (flags & 64) {
                              writePunctuation(writer, 16);
                          }
                          writeTypeList(type.types, true);
                          if (flags & 64) {
                              writePunctuation(writer, 17);
                          }
                      }
                      function writeAnonymousType(type, flags) {
                          if (type.symbol && type.symbol.flags & (32 | 384 | 512)) {
                              writeTypeofSymbol(type, flags);
                          }
                          else if (shouldWriteTypeOfFunctionSymbol()) {
                              writeTypeofSymbol(type, flags);
                          }
                          else if (typeStack && ts.contains(typeStack, type)) {
                              var typeAlias = getTypeAliasForTypeLiteral(type);
                              if (typeAlias) {
                                  buildSymbolDisplay(typeAlias, writer, enclosingDeclaration, 793056, 0, flags);
                              }
                              else {
                                  writeKeyword(writer, 112);
                              }
                          }
                          else {
                              if (!typeStack) {
                                  typeStack = [];
                              }
                              typeStack.push(type);
                              writeLiteralType(type, flags);
                              typeStack.pop();
                          }
                          function shouldWriteTypeOfFunctionSymbol() {
                              if (type.symbol) {
                                  var isStaticMethodSymbol = !!(type.symbol.flags & 8192 &&
                                      ts.forEach(type.symbol.declarations, function (declaration) { return declaration.flags & 128; }));
                                  var isNonLocalFunctionSymbol = !!(type.symbol.flags & 16) &&
                                      (type.symbol.parent ||
                                          ts.forEach(type.symbol.declarations, function (declaration) {
                                              return declaration.parent.kind === 228 || declaration.parent.kind === 207;
                                          }));
                                  if (isStaticMethodSymbol || isNonLocalFunctionSymbol) {
                                      return !!(flags & 2) ||
                                          (typeStack && ts.contains(typeStack, type));
                                  }
                              }
                          }
                      }
                      function writeTypeofSymbol(type, typeFormatFlags) {
                          writeKeyword(writer, 97);
                          writeSpace(writer);
                          buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, 107455, 0, typeFormatFlags);
                      }
                      function getIndexerParameterName(type, indexKind, fallbackName) {
                          var declaration = getIndexDeclarationOfSymbol(type.symbol, indexKind);
                          if (!declaration) {
                              return fallbackName;
                          }
                          ts.Debug.assert(declaration.parameters.length !== 0);
                          return ts.declarationNameToString(declaration.parameters[0].name);
                      }
                      function writeLiteralType(type, flags) {
                          var resolved = resolveObjectOrUnionTypeMembers(type);
                          if (!resolved.properties.length && !resolved.stringIndexType && !resolved.numberIndexType) {
                              if (!resolved.callSignatures.length && !resolved.constructSignatures.length) {
                                  writePunctuation(writer, 14);
                                  writePunctuation(writer, 15);
                                  return;
                              }
                              if (resolved.callSignatures.length === 1 && !resolved.constructSignatures.length) {
                                  if (flags & 64) {
                                      writePunctuation(writer, 16);
                                  }
                                  buildSignatureDisplay(resolved.callSignatures[0], writer, enclosingDeclaration, globalFlagsToPass | 8, typeStack);
                                  if (flags & 64) {
                                      writePunctuation(writer, 17);
                                  }
                                  return;
                              }
                              if (resolved.constructSignatures.length === 1 && !resolved.callSignatures.length) {
                                  if (flags & 64) {
                                      writePunctuation(writer, 16);
                                  }
                                  writeKeyword(writer, 88);
                                  writeSpace(writer);
                                  buildSignatureDisplay(resolved.constructSignatures[0], writer, enclosingDeclaration, globalFlagsToPass | 8, typeStack);
                                  if (flags & 64) {
                                      writePunctuation(writer, 17);
                                  }
                                  return;
                              }
                          }
                          writePunctuation(writer, 14);
                          writer.writeLine();
                          writer.increaseIndent();
                          for (var _i = 0, _a = resolved.callSignatures; _i < _a.length; _i++) {
                              var signature = _a[_i];
                              buildSignatureDisplay(signature, writer, enclosingDeclaration, globalFlagsToPass, typeStack);
                              writePunctuation(writer, 22);
                              writer.writeLine();
                          }
                          for (var _b = 0, _c = resolved.constructSignatures; _b < _c.length; _b++) {
                              var signature = _c[_b];
                              writeKeyword(writer, 88);
                              writeSpace(writer);
                              buildSignatureDisplay(signature, writer, enclosingDeclaration, globalFlagsToPass, typeStack);
                              writePunctuation(writer, 22);
                              writer.writeLine();
                          }
                          if (resolved.stringIndexType) {
                              writePunctuation(writer, 18);
                              writer.writeParameter(getIndexerParameterName(resolved, 0, "x"));
                              writePunctuation(writer, 51);
                              writeSpace(writer);
                              writeKeyword(writer, 122);
                              writePunctuation(writer, 19);
                              writePunctuation(writer, 51);
                              writeSpace(writer);
                              writeType(resolved.stringIndexType, 0);
                              writePunctuation(writer, 22);
                              writer.writeLine();
                          }
                          if (resolved.numberIndexType) {
                              writePunctuation(writer, 18);
                              writer.writeParameter(getIndexerParameterName(resolved, 1, "x"));
                              writePunctuation(writer, 51);
                              writeSpace(writer);
                              writeKeyword(writer, 120);
                              writePunctuation(writer, 19);
                              writePunctuation(writer, 51);
                              writeSpace(writer);
                              writeType(resolved.numberIndexType, 0);
                              writePunctuation(writer, 22);
                              writer.writeLine();
                          }
                          for (var _d = 0, _e = resolved.properties; _d < _e.length; _d++) {
                              var p = _e[_d];
                              var t = getTypeOfSymbol(p);
                              if (p.flags & (16 | 8192) && !getPropertiesOfObjectType(t).length) {
                                  var signatures = getSignaturesOfType(t, 0);
                                  for (var _f = 0; _f < signatures.length; _f++) {
                                      var signature = signatures[_f];
                                      buildSymbolDisplay(p, writer);
                                      if (p.flags & 536870912) {
                                          writePunctuation(writer, 50);
                                      }
                                      buildSignatureDisplay(signature, writer, enclosingDeclaration, globalFlagsToPass, typeStack);
                                      writePunctuation(writer, 22);
                                      writer.writeLine();
                                  }
                              }
                              else {
                                  buildSymbolDisplay(p, writer);
                                  if (p.flags & 536870912) {
                                      writePunctuation(writer, 50);
                                  }
                                  writePunctuation(writer, 51);
                                  writeSpace(writer);
                                  writeType(t, 0);
                                  writePunctuation(writer, 22);
                                  writer.writeLine();
                              }
                          }
                          writer.decreaseIndent();
                          writePunctuation(writer, 15);
                      }
                  }
                  function buildTypeParameterDisplayFromSymbol(symbol, writer, enclosingDeclaraiton, flags) {
                      var targetSymbol = getTargetSymbol(symbol);
                      if (targetSymbol.flags & 32 || targetSymbol.flags & 64) {
                          buildDisplayForTypeParametersAndDelimiters(getTypeParametersOfClassOrInterface(symbol), writer, enclosingDeclaraiton, flags);
                      }
                  }
                  function buildTypeParameterDisplay(tp, writer, enclosingDeclaration, flags, typeStack) {
                      appendSymbolNameOnly(tp.symbol, writer);
                      var constraint = getConstraintOfTypeParameter(tp);
                      if (constraint) {
                          writeSpace(writer);
                          writeKeyword(writer, 79);
                          writeSpace(writer);
                          buildTypeDisplay(constraint, writer, enclosingDeclaration, flags, typeStack);
                      }
                  }
                  function buildParameterDisplay(p, writer, enclosingDeclaration, flags, typeStack) {
                      if (ts.hasDotDotDotToken(p.valueDeclaration)) {
                          writePunctuation(writer, 21);
                      }
                      appendSymbolNameOnly(p, writer);
                      if (ts.hasQuestionToken(p.valueDeclaration) || p.valueDeclaration.initializer) {
                          writePunctuation(writer, 50);
                      }
                      writePunctuation(writer, 51);
                      writeSpace(writer);
                      buildTypeDisplay(getTypeOfSymbol(p), writer, enclosingDeclaration, flags, typeStack);
                  }
                  function buildDisplayForTypeParametersAndDelimiters(typeParameters, writer, enclosingDeclaration, flags, typeStack) {
                      if (typeParameters && typeParameters.length) {
                          writePunctuation(writer, 24);
                          for (var i = 0; i < typeParameters.length; i++) {
                              if (i > 0) {
                                  writePunctuation(writer, 23);
                                  writeSpace(writer);
                              }
                              buildTypeParameterDisplay(typeParameters[i], writer, enclosingDeclaration, flags, typeStack);
                          }
                          writePunctuation(writer, 25);
                      }
                  }
                  function buildDisplayForTypeArgumentsAndDelimiters(typeParameters, mapper, writer, enclosingDeclaration, flags, typeStack) {
                      if (typeParameters && typeParameters.length) {
                          writePunctuation(writer, 24);
                          for (var i = 0; i < typeParameters.length; i++) {
                              if (i > 0) {
                                  writePunctuation(writer, 23);
                                  writeSpace(writer);
                              }
                              buildTypeDisplay(mapper(typeParameters[i]), writer, enclosingDeclaration, 0);
                          }
                          writePunctuation(writer, 25);
                      }
                  }
                  function buildDisplayForParametersAndDelimiters(parameters, writer, enclosingDeclaration, flags, typeStack) {
                      writePunctuation(writer, 16);
                      for (var i = 0; i < parameters.length; i++) {
                          if (i > 0) {
                              writePunctuation(writer, 23);
                              writeSpace(writer);
                          }
                          buildParameterDisplay(parameters[i], writer, enclosingDeclaration, flags, typeStack);
                      }
                      writePunctuation(writer, 17);
                  }
                  function buildReturnTypeDisplay(signature, writer, enclosingDeclaration, flags, typeStack) {
                      if (flags & 8) {
                          writeSpace(writer);
                          writePunctuation(writer, 32);
                      }
                      else {
                          writePunctuation(writer, 51);
                      }
                      writeSpace(writer);
                      buildTypeDisplay(getReturnTypeOfSignature(signature), writer, enclosingDeclaration, flags, typeStack);
                  }
                  function buildSignatureDisplay(signature, writer, enclosingDeclaration, flags, typeStack) {
                      if (signature.target && (flags & 32)) {
                          buildDisplayForTypeArgumentsAndDelimiters(signature.target.typeParameters, signature.mapper, writer, enclosingDeclaration);
                      }
                      else {
                          buildDisplayForTypeParametersAndDelimiters(signature.typeParameters, writer, enclosingDeclaration, flags, typeStack);
                      }
                      buildDisplayForParametersAndDelimiters(signature.parameters, writer, enclosingDeclaration, flags, typeStack);
                      buildReturnTypeDisplay(signature, writer, enclosingDeclaration, flags, typeStack);
                  }
                  return _displayBuilder || (_displayBuilder = {
                      symbolToString: symbolToString,
                      typeToString: typeToString,
                      buildSymbolDisplay: buildSymbolDisplay,
                      buildTypeDisplay: buildTypeDisplay,
                      buildTypeParameterDisplay: buildTypeParameterDisplay,
                      buildParameterDisplay: buildParameterDisplay,
                      buildDisplayForParametersAndDelimiters: buildDisplayForParametersAndDelimiters,
                      buildDisplayForTypeParametersAndDelimiters: buildDisplayForTypeParametersAndDelimiters,
                      buildDisplayForTypeArgumentsAndDelimiters: buildDisplayForTypeArgumentsAndDelimiters,
                      buildTypeParameterDisplayFromSymbol: buildTypeParameterDisplayFromSymbol,
                      buildSignatureDisplay: buildSignatureDisplay,
                      buildReturnTypeDisplay: buildReturnTypeDisplay
                  });
              }
              function isDeclarationVisible(node) {
                  function getContainingExternalModule(node) {
                      for (; node; node = node.parent) {
                          if (node.kind === 206) {
                              if (node.name.kind === 8) {
                                  return node;
                              }
                          }
                          else if (node.kind === 228) {
                              return ts.isExternalModule(node) ? node : undefined;
                          }
                      }
                      ts.Debug.fail("getContainingModule cant reach here");
                  }
                  function isUsedInExportAssignment(node) {
                      var externalModule = getContainingExternalModule(node);
                      var exportAssignmentSymbol;
                      var resolvedExportSymbol;
                      if (externalModule) {
                          var externalModuleSymbol = getSymbolOfNode(externalModule);
                          exportAssignmentSymbol = getExportAssignmentSymbol(externalModuleSymbol);
                          var symbolOfNode = getSymbolOfNode(node);
                          if (isSymbolUsedInExportAssignment(symbolOfNode)) {
                              return true;
                          }
                          if (symbolOfNode.flags & 8388608) {
                              return isSymbolUsedInExportAssignment(resolveAlias(symbolOfNode));
                          }
                      }
                      function isSymbolUsedInExportAssignment(symbol) {
                          if (exportAssignmentSymbol === symbol) {
                              return true;
                          }
                          if (exportAssignmentSymbol && !!(exportAssignmentSymbol.flags & 8388608)) {
                              resolvedExportSymbol = resolvedExportSymbol || resolveAlias(exportAssignmentSymbol);
                              if (resolvedExportSymbol === symbol) {
                                  return true;
                              }
                              return ts.forEach(resolvedExportSymbol.declarations, function (current) {
                                  while (current) {
                                      if (current === node) {
                                          return true;
                                      }
                                      current = current.parent;
                                  }
                              });
                          }
                      }
                  }
                  function determineIfDeclarationIsVisible() {
                      switch (node.kind) {
                          case 153:
                              return isDeclarationVisible(node.parent.parent);
                          case 199:
                              if (ts.isBindingPattern(node.name) &&
                                  !node.name.elements.length) {
                                  return false;
                              }
                          case 206:
                          case 202:
                          case 203:
                          case 204:
                          case 201:
                          case 205:
                          case 209:
                              var parent_2 = getDeclarationContainer(node);
                              if (!(ts.getCombinedNodeFlags(node) & 1) &&
                                  !(node.kind !== 209 && parent_2.kind !== 228 && ts.isInAmbientContext(parent_2))) {
                                  return isGlobalSourceFile(parent_2);
                              }
                              return isDeclarationVisible(parent_2);
                          case 133:
                          case 132:
                          case 137:
                          case 138:
                          case 135:
                          case 134:
                              if (node.flags & (32 | 64)) {
                                  return false;
                              }
                          case 136:
                          case 140:
                          case 139:
                          case 141:
                          case 130:
                          case 207:
                          case 143:
                          case 144:
                          case 146:
                          case 142:
                          case 147:
                          case 148:
                          case 149:
                          case 150:
                              return isDeclarationVisible(node.parent);
                          case 211:
                          case 212:
                          case 214:
                              return false;
                          case 129:
                          case 228:
                              return true;
                          case 215:
                              return false;
                          default:
                              ts.Debug.fail("isDeclarationVisible unknown: SyntaxKind: " + node.kind);
                      }
                  }
                  if (node) {
                      var links = getNodeLinks(node);
                      if (links.isVisible === undefined) {
                          links.isVisible = !!determineIfDeclarationIsVisible();
                      }
                      return links.isVisible;
                  }
              }
              function collectLinkedAliases(node) {
                  var exportSymbol;
                  if (node.parent && node.parent.kind === 215) {
                      exportSymbol = resolveName(node.parent, node.text, 107455 | 793056 | 1536, ts.Diagnostics.Cannot_find_name_0, node);
                  }
                  else if (node.parent.kind === 218) {
                      exportSymbol = getTargetOfExportSpecifier(node.parent);
                  }
                  var result = [];
                  if (exportSymbol) {
                      buildVisibleNodeList(exportSymbol.declarations);
                  }
                  return result;
                  function buildVisibleNodeList(declarations) {
                      ts.forEach(declarations, function (declaration) {
                          getNodeLinks(declaration).isVisible = true;
                          var resultNode = getAnyImportSyntax(declaration) || declaration;
                          if (!ts.contains(result, resultNode)) {
                              result.push(resultNode);
                          }
                          if (ts.isInternalModuleImportEqualsDeclaration(declaration)) {
                              var internalModuleReference = declaration.moduleReference;
                              var firstIdentifier = getFirstIdentifier(internalModuleReference);
                              var importSymbol = resolveName(declaration, firstIdentifier.text, 107455 | 793056 | 1536, ts.Diagnostics.Cannot_find_name_0, firstIdentifier);
                              buildVisibleNodeList(importSymbol.declarations);
                          }
                      });
                  }
              }
              function pushTypeResolution(target) {
                  var i = 0;
                  var count = resolutionTargets.length;
                  while (i < count && resolutionTargets[i] !== target) {
                      i++;
                  }
                  if (i < count) {
                      do {
                          resolutionResults[i++] = false;
                      } while (i < count);
                      return false;
                  }
                  resolutionTargets.push(target);
                  resolutionResults.push(true);
                  return true;
              }
              function popTypeResolution() {
                  resolutionTargets.pop();
                  return resolutionResults.pop();
              }
              function getDeclarationContainer(node) {
                  node = ts.getRootDeclaration(node);
                  return node.kind === 199 ? node.parent.parent.parent : node.parent;
              }
              function getTypeOfPrototypeProperty(prototype) {
                  var classType = getDeclaredTypeOfSymbol(prototype.parent);
                  return classType.typeParameters ? createTypeReference(classType, ts.map(classType.typeParameters, function (_) { return anyType; })) : classType;
              }
              function getTypeOfPropertyOfType(type, name) {
                  var prop = getPropertyOfType(type, name);
                  return prop ? getTypeOfSymbol(prop) : undefined;
              }
              function getTypeForBindingElement(declaration) {
                  var pattern = declaration.parent;
                  var parentType = getTypeForVariableLikeDeclaration(pattern.parent);
                  if (parentType === unknownType) {
                      return unknownType;
                  }
                  if (!parentType || parentType === anyType) {
                      if (declaration.initializer) {
                          return checkExpressionCached(declaration.initializer);
                      }
                      return parentType;
                  }
                  var type;
                  if (pattern.kind === 151) {
                      var name_5 = declaration.propertyName || declaration.name;
                      type = getTypeOfPropertyOfType(parentType, name_5.text) ||
                          isNumericLiteralName(name_5.text) && getIndexTypeOfType(parentType, 1) ||
                          getIndexTypeOfType(parentType, 0);
                      if (!type) {
                          error(name_5, ts.Diagnostics.Type_0_has_no_property_1_and_no_string_index_signature, typeToString(parentType), ts.declarationNameToString(name_5));
                          return unknownType;
                      }
                  }
                  else {
                      var elementType = checkIteratedTypeOrElementType(parentType, pattern, false);
                      if (!declaration.dotDotDotToken) {
                          if (elementType.flags & 1) {
                              return elementType;
                          }
                          var propName = "" + ts.indexOf(pattern.elements, declaration);
                          type = isTupleLikeType(parentType)
                              ? getTypeOfPropertyOfType(parentType, propName)
                              : elementType;
                          if (!type) {
                              if (isTupleType(parentType)) {
                                  error(declaration, ts.Diagnostics.Tuple_type_0_with_length_1_cannot_be_assigned_to_tuple_with_length_2, typeToString(parentType), parentType.elementTypes.length, pattern.elements.length);
                              }
                              else {
                                  error(declaration, ts.Diagnostics.Type_0_has_no_property_1, typeToString(parentType), propName);
                              }
                              return unknownType;
                          }
                      }
                      else {
                          type = createArrayType(elementType);
                      }
                  }
                  return type;
              }
              function getTypeForVariableLikeDeclaration(declaration) {
                  if (declaration.parent.parent.kind === 188) {
                      return anyType;
                  }
                  if (declaration.parent.parent.kind === 189) {
                      return checkRightHandSideOfForOf(declaration.parent.parent.expression) || anyType;
                  }
                  if (ts.isBindingPattern(declaration.parent)) {
                      return getTypeForBindingElement(declaration);
                  }
                  if (declaration.type) {
                      return getTypeFromTypeNode(declaration.type);
                  }
                  if (declaration.kind === 130) {
                      var func = declaration.parent;
                      if (func.kind === 138 && !ts.hasDynamicName(func)) {
                          var getter = ts.getDeclarationOfKind(declaration.parent.symbol, 137);
                          if (getter) {
                              return getReturnTypeOfSignature(getSignatureFromDeclaration(getter));
                          }
                      }
                      var type = getContextuallyTypedParameterType(declaration);
                      if (type) {
                          return type;
                      }
                  }
                  if (declaration.initializer) {
                      return checkExpressionCached(declaration.initializer);
                  }
                  if (declaration.kind === 226) {
                      return checkIdentifier(declaration.name);
                  }
                  return undefined;
              }
              function getTypeFromBindingElement(element) {
                  if (element.initializer) {
                      return getWidenedType(checkExpressionCached(element.initializer));
                  }
                  if (ts.isBindingPattern(element.name)) {
                      return getTypeFromBindingPattern(element.name);
                  }
                  return anyType;
              }
              function getTypeFromObjectBindingPattern(pattern) {
                  var members = {};
                  ts.forEach(pattern.elements, function (e) {
                      var flags = 4 | 67108864 | (e.initializer ? 536870912 : 0);
                      var name = e.propertyName || e.name;
                      var symbol = createSymbol(flags, name.text);
                      symbol.type = getTypeFromBindingElement(e);
                      members[symbol.name] = symbol;
                  });
                  return createAnonymousType(undefined, members, emptyArray, emptyArray, undefined, undefined);
              }
              function getTypeFromArrayBindingPattern(pattern) {
                  var hasSpreadElement = false;
                  var elementTypes = [];
                  ts.forEach(pattern.elements, function (e) {
                      elementTypes.push(e.kind === 176 || e.dotDotDotToken ? anyType : getTypeFromBindingElement(e));
                      if (e.dotDotDotToken) {
                          hasSpreadElement = true;
                      }
                  });
                  if (!elementTypes.length) {
                      return languageVersion >= 2 ? createIterableType(anyType) : anyArrayType;
                  }
                  else if (hasSpreadElement) {
                      var unionOfElements = getUnionType(elementTypes);
                      return languageVersion >= 2 ? createIterableType(unionOfElements) : createArrayType(unionOfElements);
                  }
                  return createTupleType(elementTypes);
              }
              function getTypeFromBindingPattern(pattern) {
                  return pattern.kind === 151
                      ? getTypeFromObjectBindingPattern(pattern)
                      : getTypeFromArrayBindingPattern(pattern);
              }
              function getWidenedTypeForVariableLikeDeclaration(declaration, reportErrors) {
                  var type = getTypeForVariableLikeDeclaration(declaration);
                  if (type) {
                      if (reportErrors) {
                          reportErrorsFromWidening(declaration, type);
                      }
                      return declaration.kind !== 225 ? getWidenedType(type) : type;
                  }
                  if (ts.isBindingPattern(declaration.name)) {
                      return getTypeFromBindingPattern(declaration.name);
                  }
                  type = declaration.dotDotDotToken ? anyArrayType : anyType;
                  if (reportErrors && compilerOptions.noImplicitAny) {
                      var root = ts.getRootDeclaration(declaration);
                      if (!isPrivateWithinAmbient(root) && !(root.kind === 130 && isPrivateWithinAmbient(root.parent))) {
                          reportImplicitAnyError(declaration, type);
                      }
                  }
                  return type;
              }
              function getTypeOfVariableOrParameterOrProperty(symbol) {
                  var links = getSymbolLinks(symbol);
                  if (!links.type) {
                      if (symbol.flags & 134217728) {
                          return links.type = getTypeOfPrototypeProperty(symbol);
                      }
                      var declaration = symbol.valueDeclaration;
                      if (declaration.parent.kind === 224) {
                          return links.type = anyType;
                      }
                      if (declaration.kind === 215) {
                          return links.type = checkExpression(declaration.expression);
                      }
                      if (!pushTypeResolution(symbol)) {
                          return unknownType;
                      }
                      var type = getWidenedTypeForVariableLikeDeclaration(declaration, true);
                      if (!popTypeResolution()) {
                          if (symbol.valueDeclaration.type) {
                              type = unknownType;
                              error(symbol.valueDeclaration, ts.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, symbolToString(symbol));
                          }
                          else {
                              type = anyType;
                              if (compilerOptions.noImplicitAny) {
                                  error(symbol.valueDeclaration, ts.Diagnostics._0_implicitly_has_type_any_because_it_is_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer, symbolToString(symbol));
                              }
                          }
                      }
                      links.type = type;
                  }
                  return links.type;
              }
              function getSetAccessorTypeAnnotationNode(accessor) {
                  return accessor && accessor.parameters.length > 0 && accessor.parameters[0].type;
              }
              function getAnnotatedAccessorType(accessor) {
                  if (accessor) {
                      if (accessor.kind === 137) {
                          return accessor.type && getTypeFromTypeNode(accessor.type);
                      }
                      else {
                          var setterTypeAnnotation = getSetAccessorTypeAnnotationNode(accessor);
                          return setterTypeAnnotation && getTypeFromTypeNode(setterTypeAnnotation);
                      }
                  }
                  return undefined;
              }
              function getTypeOfAccessors(symbol) {
                  var links = getSymbolLinks(symbol);
                  if (!links.type) {
                      if (!pushTypeResolution(symbol)) {
                          return unknownType;
                      }
                      var getter = ts.getDeclarationOfKind(symbol, 137);
                      var setter = ts.getDeclarationOfKind(symbol, 138);
                      var type;
                      var getterReturnType = getAnnotatedAccessorType(getter);
                      if (getterReturnType) {
                          type = getterReturnType;
                      }
                      else {
                          var setterParameterType = getAnnotatedAccessorType(setter);
                          if (setterParameterType) {
                              type = setterParameterType;
                          }
                          else {
                              if (getter && getter.body) {
                                  type = getReturnTypeFromBody(getter);
                              }
                              else {
                                  if (compilerOptions.noImplicitAny) {
                                      error(setter, ts.Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_type_annotation, symbolToString(symbol));
                                  }
                                  type = anyType;
                              }
                          }
                      }
                      if (!popTypeResolution()) {
                          type = anyType;
                          if (compilerOptions.noImplicitAny) {
                              var getter_1 = ts.getDeclarationOfKind(symbol, 137);
                              error(getter_1, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, symbolToString(symbol));
                          }
                      }
                      links.type = type;
                  }
                  return links.type;
              }
              function getTypeOfFuncClassEnumModule(symbol) {
                  var links = getSymbolLinks(symbol);
                  if (!links.type) {
                      links.type = createObjectType(32768, symbol);
                  }
                  return links.type;
              }
              function getTypeOfEnumMember(symbol) {
                  var links = getSymbolLinks(symbol);
                  if (!links.type) {
                      links.type = getDeclaredTypeOfEnum(getParentOfSymbol(symbol));
                  }
                  return links.type;
              }
              function getTypeOfAlias(symbol) {
                  var links = getSymbolLinks(symbol);
                  if (!links.type) {
                      var targetSymbol = resolveAlias(symbol);
                      links.type = targetSymbol.flags & 107455
                          ? getTypeOfSymbol(targetSymbol)
                          : unknownType;
                  }
                  return links.type;
              }
              function getTypeOfInstantiatedSymbol(symbol) {
                  var links = getSymbolLinks(symbol);
                  if (!links.type) {
                      links.type = instantiateType(getTypeOfSymbol(links.target), links.mapper);
                  }
                  return links.type;
              }
              function getTypeOfSymbol(symbol) {
                  if (symbol.flags & 16777216) {
                      return getTypeOfInstantiatedSymbol(symbol);
                  }
                  if (symbol.flags & (3 | 4)) {
                      return getTypeOfVariableOrParameterOrProperty(symbol);
                  }
                  if (symbol.flags & (16 | 8192 | 32 | 384 | 512)) {
                      return getTypeOfFuncClassEnumModule(symbol);
                  }
                  if (symbol.flags & 8) {
                      return getTypeOfEnumMember(symbol);
                  }
                  if (symbol.flags & 98304) {
                      return getTypeOfAccessors(symbol);
                  }
                  if (symbol.flags & 8388608) {
                      return getTypeOfAlias(symbol);
                  }
                  return unknownType;
              }
              function getTargetType(type) {
                  return type.flags & 4096 ? type.target : type;
              }
              function hasBaseType(type, checkBase) {
                  return check(type);
                  function check(type) {
                      var target = getTargetType(type);
                      return target === checkBase || ts.forEach(getBaseTypes(target), check);
                  }
              }
              function getTypeParametersOfClassOrInterface(symbol) {
                  var result;
                  ts.forEach(symbol.declarations, function (node) {
                      if (node.kind === 203 || node.kind === 202) {
                          var declaration = node;
                          if (declaration.typeParameters && declaration.typeParameters.length) {
                              ts.forEach(declaration.typeParameters, function (node) {
                                  var tp = getDeclaredTypeOfTypeParameter(getSymbolOfNode(node));
                                  if (!result) {
                                      result = [tp];
                                  }
                                  else if (!ts.contains(result, tp)) {
                                      result.push(tp);
                                  }
                              });
                          }
                      }
                  });
                  return result;
              }
              function getBaseTypes(type) {
                  var typeWithBaseTypes = type;
                  if (!typeWithBaseTypes.baseTypes) {
                      if (type.symbol.flags & 32) {
                          resolveBaseTypesOfClass(typeWithBaseTypes);
                      }
                      else if (type.symbol.flags & 64) {
                          resolveBaseTypesOfInterface(typeWithBaseTypes);
                      }
                      else {
                          ts.Debug.fail("type must be class or interface");
                      }
                  }
                  return typeWithBaseTypes.baseTypes;
              }
              function resolveBaseTypesOfClass(type) {
                  type.baseTypes = [];
                  var declaration = ts.getDeclarationOfKind(type.symbol, 202);
                  var baseTypeNode = ts.getClassExtendsHeritageClauseElement(declaration);
                  if (baseTypeNode) {
                      var baseType = getTypeFromTypeNode(baseTypeNode);
                      if (baseType !== unknownType) {
                          if (getTargetType(baseType).flags & 1024) {
                              if (type !== baseType && !hasBaseType(baseType, type)) {
                                  type.baseTypes.push(baseType);
                              }
                              else {
                                  error(declaration, ts.Diagnostics.Type_0_recursively_references_itself_as_a_base_type, typeToString(type, undefined, 1));
                              }
                          }
                          else {
                              error(baseTypeNode, ts.Diagnostics.A_class_may_only_extend_another_class);
                          }
                      }
                  }
              }
              function resolveBaseTypesOfInterface(type) {
                  type.baseTypes = [];
                  for (var _i = 0, _a = type.symbol.declarations; _i < _a.length; _i++) {
                      var declaration = _a[_i];
                      if (declaration.kind === 203 && ts.getInterfaceBaseTypeNodes(declaration)) {
                          for (var _b = 0, _c = ts.getInterfaceBaseTypeNodes(declaration); _b < _c.length; _b++) {
                              var node = _c[_b];
                              var baseType = getTypeFromTypeNode(node);
                              if (baseType !== unknownType) {
                                  if (getTargetType(baseType).flags & (1024 | 2048)) {
                                      if (type !== baseType && !hasBaseType(baseType, type)) {
                                          type.baseTypes.push(baseType);
                                      }
                                      else {
                                          error(declaration, ts.Diagnostics.Type_0_recursively_references_itself_as_a_base_type, typeToString(type, undefined, 1));
                                      }
                                  }
                                  else {
                                      error(node, ts.Diagnostics.An_interface_may_only_extend_a_class_or_another_interface);
                                  }
                              }
                          }
                      }
                  }
              }
              function getDeclaredTypeOfClassOrInterface(symbol) {
                  var links = getSymbolLinks(symbol);
                  if (!links.declaredType) {
                      var kind = symbol.flags & 32 ? 1024 : 2048;
                      var type = links.declaredType = createObjectType(kind, symbol);
                      var typeParameters = getTypeParametersOfClassOrInterface(symbol);
                      if (typeParameters) {
                          type.flags |= 4096;
                          type.typeParameters = typeParameters;
                          type.instantiations = {};
                          type.instantiations[getTypeListId(type.typeParameters)] = type;
                          type.target = type;
                          type.typeArguments = type.typeParameters;
                      }
                  }
                  return links.declaredType;
              }
              function getDeclaredTypeOfTypeAlias(symbol) {
                  var links = getSymbolLinks(symbol);
                  if (!links.declaredType) {
                      if (!pushTypeResolution(links)) {
                          return unknownType;
                      }
                      var declaration = ts.getDeclarationOfKind(symbol, 204);
                      var type = getTypeFromTypeNode(declaration.type);
                      if (!popTypeResolution()) {
                          type = unknownType;
                          error(declaration.name, ts.Diagnostics.Type_alias_0_circularly_references_itself, symbolToString(symbol));
                      }
                      links.declaredType = type;
                  }
                  return links.declaredType;
              }
              function getDeclaredTypeOfEnum(symbol) {
                  var links = getSymbolLinks(symbol);
                  if (!links.declaredType) {
                      var type = createType(128);
                      type.symbol = symbol;
                      links.declaredType = type;
                  }
                  return links.declaredType;
              }
              function getDeclaredTypeOfTypeParameter(symbol) {
                  var links = getSymbolLinks(symbol);
                  if (!links.declaredType) {
                      var type = createType(512);
                      type.symbol = symbol;
                      if (!ts.getDeclarationOfKind(symbol, 129).constraint) {
                          type.constraint = noConstraintType;
                      }
                      links.declaredType = type;
                  }
                  return links.declaredType;
              }
              function getDeclaredTypeOfAlias(symbol) {
                  var links = getSymbolLinks(symbol);
                  if (!links.declaredType) {
                      links.declaredType = getDeclaredTypeOfSymbol(resolveAlias(symbol));
                  }
                  return links.declaredType;
              }
              function getDeclaredTypeOfSymbol(symbol) {
                  ts.Debug.assert((symbol.flags & 16777216) === 0);
                  if (symbol.flags & (32 | 64)) {
                      return getDeclaredTypeOfClassOrInterface(symbol);
                  }
                  if (symbol.flags & 524288) {
                      return getDeclaredTypeOfTypeAlias(symbol);
                  }
                  if (symbol.flags & 384) {
                      return getDeclaredTypeOfEnum(symbol);
                  }
                  if (symbol.flags & 262144) {
                      return getDeclaredTypeOfTypeParameter(symbol);
                  }
                  if (symbol.flags & 8388608) {
                      return getDeclaredTypeOfAlias(symbol);
                  }
                  return unknownType;
              }
              function createSymbolTable(symbols) {
                  var result = {};
                  for (var _i = 0; _i < symbols.length; _i++) {
                      var symbol = symbols[_i];
                      result[symbol.name] = symbol;
                  }
                  return result;
              }
              function createInstantiatedSymbolTable(symbols, mapper) {
                  var result = {};
                  for (var _i = 0; _i < symbols.length; _i++) {
                      var symbol = symbols[_i];
                      result[symbol.name] = instantiateSymbol(symbol, mapper);
                  }
                  return result;
              }
              function addInheritedMembers(symbols, baseSymbols) {
                  for (var _i = 0; _i < baseSymbols.length; _i++) {
                      var s = baseSymbols[_i];
                      if (!ts.hasProperty(symbols, s.name)) {
                          symbols[s.name] = s;
                      }
                  }
              }
              function addInheritedSignatures(signatures, baseSignatures) {
                  if (baseSignatures) {
                      for (var _i = 0; _i < baseSignatures.length; _i++) {
                          var signature = baseSignatures[_i];
                          signatures.push(signature);
                      }
                  }
              }
              function resolveDeclaredMembers(type) {
                  if (!type.declaredProperties) {
                      var symbol = type.symbol;
                      type.declaredProperties = getNamedMembers(symbol.members);
                      type.declaredCallSignatures = getSignaturesOfSymbol(symbol.members["__call"]);
                      type.declaredConstructSignatures = getSignaturesOfSymbol(symbol.members["__new"]);
                      type.declaredStringIndexType = getIndexTypeOfSymbol(symbol, 0);
                      type.declaredNumberIndexType = getIndexTypeOfSymbol(symbol, 1);
                  }
                  return type;
              }
              function resolveClassOrInterfaceMembers(type) {
                  var target = resolveDeclaredMembers(type);
                  var members = target.symbol.members;
                  var callSignatures = target.declaredCallSignatures;
                  var constructSignatures = target.declaredConstructSignatures;
                  var stringIndexType = target.declaredStringIndexType;
                  var numberIndexType = target.declaredNumberIndexType;
                  var baseTypes = getBaseTypes(target);
                  if (baseTypes.length) {
                      members = createSymbolTable(target.declaredProperties);
                      for (var _i = 0; _i < baseTypes.length; _i++) {
                          var baseType = baseTypes[_i];
                          addInheritedMembers(members, getPropertiesOfObjectType(baseType));
                          callSignatures = ts.concatenate(callSignatures, getSignaturesOfType(baseType, 0));
                          constructSignatures = ts.concatenate(constructSignatures, getSignaturesOfType(baseType, 1));
                          stringIndexType = stringIndexType || getIndexTypeOfType(baseType, 0);
                          numberIndexType = numberIndexType || getIndexTypeOfType(baseType, 1);
                      }
                  }
                  setObjectTypeMembers(type, members, callSignatures, constructSignatures, stringIndexType, numberIndexType);
              }
              function resolveTypeReferenceMembers(type) {
                  var target = resolveDeclaredMembers(type.target);
                  var mapper = createTypeMapper(target.typeParameters, type.typeArguments);
                  var members = createInstantiatedSymbolTable(target.declaredProperties, mapper);
                  var callSignatures = instantiateList(target.declaredCallSignatures, mapper, instantiateSignature);
                  var constructSignatures = instantiateList(target.declaredConstructSignatures, mapper, instantiateSignature);
                  var stringIndexType = target.declaredStringIndexType ? instantiateType(target.declaredStringIndexType, mapper) : undefined;
                  var numberIndexType = target.declaredNumberIndexType ? instantiateType(target.declaredNumberIndexType, mapper) : undefined;
                  ts.forEach(getBaseTypes(target), function (baseType) {
                      var instantiatedBaseType = instantiateType(baseType, mapper);
                      addInheritedMembers(members, getPropertiesOfObjectType(instantiatedBaseType));
                      callSignatures = ts.concatenate(callSignatures, getSignaturesOfType(instantiatedBaseType, 0));
                      constructSignatures = ts.concatenate(constructSignatures, getSignaturesOfType(instantiatedBaseType, 1));
                      stringIndexType = stringIndexType || getIndexTypeOfType(instantiatedBaseType, 0);
                      numberIndexType = numberIndexType || getIndexTypeOfType(instantiatedBaseType, 1);
                  });
                  setObjectTypeMembers(type, members, callSignatures, constructSignatures, stringIndexType, numberIndexType);
              }
              function createSignature(declaration, typeParameters, parameters, resolvedReturnType, minArgumentCount, hasRestParameter, hasStringLiterals) {
                  var sig = new Signature(checker);
                  sig.declaration = declaration;
                  sig.typeParameters = typeParameters;
                  sig.parameters = parameters;
                  sig.resolvedReturnType = resolvedReturnType;
                  sig.minArgumentCount = minArgumentCount;
                  sig.hasRestParameter = hasRestParameter;
                  sig.hasStringLiterals = hasStringLiterals;
                  return sig;
              }
              function cloneSignature(sig) {
                  return createSignature(sig.declaration, sig.typeParameters, sig.parameters, sig.resolvedReturnType, sig.minArgumentCount, sig.hasRestParameter, sig.hasStringLiterals);
              }
              function getDefaultConstructSignatures(classType) {
                  var baseTypes = getBaseTypes(classType);
                  if (baseTypes.length) {
                      var baseType = baseTypes[0];
                      var baseSignatures = getSignaturesOfType(getTypeOfSymbol(baseType.symbol), 1);
                      return ts.map(baseSignatures, function (baseSignature) {
                          var signature = baseType.flags & 4096 ?
                              getSignatureInstantiation(baseSignature, baseType.typeArguments) : cloneSignature(baseSignature);
                          signature.typeParameters = classType.typeParameters;
                          signature.resolvedReturnType = classType;
                          return signature;
                      });
                  }
                  return [createSignature(undefined, classType.typeParameters, emptyArray, classType, 0, false, false)];
              }
              function createTupleTypeMemberSymbols(memberTypes) {
                  var members = {};
                  for (var i = 0; i < memberTypes.length; i++) {
                      var symbol = createSymbol(4 | 67108864, "" + i);
                      symbol.type = memberTypes[i];
                      members[i] = symbol;
                  }
                  return members;
              }
              function resolveTupleTypeMembers(type) {
                  var arrayType = resolveObjectOrUnionTypeMembers(createArrayType(getUnionType(type.elementTypes)));
                  var members = createTupleTypeMemberSymbols(type.elementTypes);
                  addInheritedMembers(members, arrayType.properties);
                  setObjectTypeMembers(type, members, arrayType.callSignatures, arrayType.constructSignatures, arrayType.stringIndexType, arrayType.numberIndexType);
              }
              function signatureListsIdentical(s, t) {
                  if (s.length !== t.length) {
                      return false;
                  }
                  for (var i = 0; i < s.length; i++) {
                      if (!compareSignatures(s[i], t[i], false, compareTypes)) {
                          return false;
                      }
                  }
                  return true;
              }
              function getUnionSignatures(types, kind) {
                  var signatureLists = ts.map(types, function (t) { return getSignaturesOfType(t, kind); });
                  var signatures = signatureLists[0];
                  for (var _i = 0; _i < signatures.length; _i++) {
                      var signature = signatures[_i];
                      if (signature.typeParameters) {
                          return emptyArray;
                      }
                  }
                  for (var i_1 = 1; i_1 < signatureLists.length; i_1++) {
                      if (!signatureListsIdentical(signatures, signatureLists[i_1])) {
                          return emptyArray;
                      }
                  }
                  var result = ts.map(signatures, cloneSignature);
                  for (var i = 0; i < result.length; i++) {
                      var s = result[i];
                      s.resolvedReturnType = undefined;
                      s.unionSignatures = ts.map(signatureLists, function (signatures) { return signatures[i]; });
                  }
                  return result;
              }
              function getUnionIndexType(types, kind) {
                  var indexTypes = [];
                  for (var _i = 0; _i < types.length; _i++) {
                      var type = types[_i];
                      var indexType = getIndexTypeOfType(type, kind);
                      if (!indexType) {
                          return undefined;
                      }
                      indexTypes.push(indexType);
                  }
                  return getUnionType(indexTypes);
              }
              function resolveUnionTypeMembers(type) {
                  var callSignatures = getUnionSignatures(type.types, 0);
                  var constructSignatures = getUnionSignatures(type.types, 1);
                  var stringIndexType = getUnionIndexType(type.types, 0);
                  var numberIndexType = getUnionIndexType(type.types, 1);
                  setObjectTypeMembers(type, emptySymbols, callSignatures, constructSignatures, stringIndexType, numberIndexType);
              }
              function resolveAnonymousTypeMembers(type) {
                  var symbol = type.symbol;
                  var members;
                  var callSignatures;
                  var constructSignatures;
                  var stringIndexType;
                  var numberIndexType;
                  if (symbol.flags & 2048) {
                      members = symbol.members;
                      callSignatures = getSignaturesOfSymbol(members["__call"]);
                      constructSignatures = getSignaturesOfSymbol(members["__new"]);
                      stringIndexType = getIndexTypeOfSymbol(symbol, 0);
                      numberIndexType = getIndexTypeOfSymbol(symbol, 1);
                  }
                  else {
                      members = emptySymbols;
                      callSignatures = emptyArray;
                      constructSignatures = emptyArray;
                      if (symbol.flags & 1952) {
                          members = getExportsOfSymbol(symbol);
                      }
                      if (symbol.flags & (16 | 8192)) {
                          callSignatures = getSignaturesOfSymbol(symbol);
                      }
                      if (symbol.flags & 32) {
                          var classType = getDeclaredTypeOfClassOrInterface(symbol);
                          constructSignatures = getSignaturesOfSymbol(symbol.members["__constructor"]);
                          if (!constructSignatures.length) {
                              constructSignatures = getDefaultConstructSignatures(classType);
                          }
                          var baseTypes = getBaseTypes(classType);
                          if (baseTypes.length) {
                              members = createSymbolTable(getNamedMembers(members));
                              addInheritedMembers(members, getPropertiesOfObjectType(getTypeOfSymbol(baseTypes[0].symbol)));
                          }
                      }
                      stringIndexType = undefined;
                      numberIndexType = (symbol.flags & 384) ? stringType : undefined;
                  }
                  setObjectTypeMembers(type, members, callSignatures, constructSignatures, stringIndexType, numberIndexType);
              }
              function resolveObjectOrUnionTypeMembers(type) {
                  if (!type.members) {
                      if (type.flags & (1024 | 2048)) {
                          resolveClassOrInterfaceMembers(type);
                      }
                      else if (type.flags & 32768) {
                          resolveAnonymousTypeMembers(type);
                      }
                      else if (type.flags & 8192) {
                          resolveTupleTypeMembers(type);
                      }
                      else if (type.flags & 16384) {
                          resolveUnionTypeMembers(type);
                      }
                      else {
                          resolveTypeReferenceMembers(type);
                      }
                  }
                  return type;
              }
              function getPropertiesOfObjectType(type) {
                  if (type.flags & 48128) {
                      return resolveObjectOrUnionTypeMembers(type).properties;
                  }
                  return emptyArray;
              }
              function getPropertyOfObjectType(type, name) {
                  if (type.flags & 48128) {
                      var resolved = resolveObjectOrUnionTypeMembers(type);
                      if (ts.hasProperty(resolved.members, name)) {
                          var symbol = resolved.members[name];
                          if (symbolIsValue(symbol)) {
                              return symbol;
                          }
                      }
                  }
              }
              function getPropertiesOfUnionType(type) {
                  var result = [];
                  ts.forEach(getPropertiesOfType(type.types[0]), function (prop) {
                      var unionProp = getPropertyOfUnionType(type, prop.name);
                      if (unionProp) {
                          result.push(unionProp);
                      }
                  });
                  return result;
              }
              function getPropertiesOfType(type) {
                  type = getApparentType(type);
                  return type.flags & 16384 ? getPropertiesOfUnionType(type) : getPropertiesOfObjectType(type);
              }
              function getApparentType(type) {
                  if (type.flags & 16384) {
                      type = getReducedTypeOfUnionType(type);
                  }
                  if (type.flags & 512) {
                      do {
                          type = getConstraintOfTypeParameter(type);
                      } while (type && type.flags & 512);
                      if (!type) {
                          type = emptyObjectType;
                      }
                  }
                  if (type.flags & 258) {
                      type = globalStringType;
                  }
                  else if (type.flags & 132) {
                      type = globalNumberType;
                  }
                  else if (type.flags & 8) {
                      type = globalBooleanType;
                  }
                  else if (type.flags & 1048576) {
                      type = globalESSymbolType;
                  }
                  return type;
              }
              function createUnionProperty(unionType, name) {
                  var types = unionType.types;
                  var props;
                  for (var _i = 0; _i < types.length; _i++) {
                      var current = types[_i];
                      var type = getApparentType(current);
                      if (type !== unknownType) {
                          var prop = getPropertyOfType(type, name);
                          if (!prop || getDeclarationFlagsFromSymbol(prop) & (32 | 64)) {
                              return undefined;
                          }
                          if (!props) {
                              props = [prop];
                          }
                          else {
                              props.push(prop);
                          }
                      }
                  }
                  var propTypes = [];
                  var declarations = [];
                  for (var _a = 0; _a < props.length; _a++) {
                      var prop = props[_a];
                      if (prop.declarations) {
                          declarations.push.apply(declarations, prop.declarations);
                      }
                      propTypes.push(getTypeOfSymbol(prop));
                  }
                  var result = createSymbol(4 | 67108864 | 268435456, name);
                  result.unionType = unionType;
                  result.declarations = declarations;
                  result.type = getUnionType(propTypes);
                  return result;
              }
              function getPropertyOfUnionType(type, name) {
                  var properties = type.resolvedProperties || (type.resolvedProperties = {});
                  if (ts.hasProperty(properties, name)) {
                      return properties[name];
                  }
                  var property = createUnionProperty(type, name);
                  if (property) {
                      properties[name] = property;
                  }
                  return property;
              }
              function getPropertyOfType(type, name) {
                  type = getApparentType(type);
                  if (type.flags & 48128) {
                      var resolved = resolveObjectOrUnionTypeMembers(type);
                      if (ts.hasProperty(resolved.members, name)) {
                          var symbol = resolved.members[name];
                          if (symbolIsValue(symbol)) {
                              return symbol;
                          }
                      }
                      if (resolved === anyFunctionType || resolved.callSignatures.length || resolved.constructSignatures.length) {
                          var symbol = getPropertyOfObjectType(globalFunctionType, name);
                          if (symbol) {
                              return symbol;
                          }
                      }
                      return getPropertyOfObjectType(globalObjectType, name);
                  }
                  if (type.flags & 16384) {
                      return getPropertyOfUnionType(type, name);
                  }
                  return undefined;
              }
              function getSignaturesOfObjectOrUnionType(type, kind) {
                  if (type.flags & (48128 | 16384)) {
                      var resolved = resolveObjectOrUnionTypeMembers(type);
                      return kind === 0 ? resolved.callSignatures : resolved.constructSignatures;
                  }
                  return emptyArray;
              }
              function getSignaturesOfType(type, kind) {
                  return getSignaturesOfObjectOrUnionType(getApparentType(type), kind);
              }
              function typeHasCallOrConstructSignatures(type) {
                  var apparentType = getApparentType(type);
                  if (apparentType.flags & (48128 | 16384)) {
                      var resolved = resolveObjectOrUnionTypeMembers(type);
                      return resolved.callSignatures.length > 0
                          || resolved.constructSignatures.length > 0;
                  }
                  return false;
              }
              function getIndexTypeOfObjectOrUnionType(type, kind) {
                  if (type.flags & (48128 | 16384)) {
                      var resolved = resolveObjectOrUnionTypeMembers(type);
                      return kind === 0 ? resolved.stringIndexType : resolved.numberIndexType;
                  }
              }
              function getIndexTypeOfType(type, kind) {
                  return getIndexTypeOfObjectOrUnionType(getApparentType(type), kind);
              }
              function getTypeParametersFromDeclaration(typeParameterDeclarations) {
                  var result = [];
                  ts.forEach(typeParameterDeclarations, function (node) {
                      var tp = getDeclaredTypeOfTypeParameter(node.symbol);
                      if (!ts.contains(result, tp)) {
                          result.push(tp);
                      }
                  });
                  return result;
              }
              function symbolsToArray(symbols) {
                  var result = [];
                  for (var id in symbols) {
                      if (!isReservedMemberName(id)) {
                          result.push(symbols[id]);
                      }
                  }
                  return result;
              }
              function getSignatureFromDeclaration(declaration) {
                  var links = getNodeLinks(declaration);
                  if (!links.resolvedSignature) {
                      var classType = declaration.kind === 136 ? getDeclaredTypeOfClassOrInterface(declaration.parent.symbol) : undefined;
                      var typeParameters = classType ? classType.typeParameters :
                          declaration.typeParameters ? getTypeParametersFromDeclaration(declaration.typeParameters) : undefined;
                      var parameters = [];
                      var hasStringLiterals = false;
                      var minArgumentCount = -1;
                      for (var i = 0, n = declaration.parameters.length; i < n; i++) {
                          var param = declaration.parameters[i];
                          parameters.push(param.symbol);
                          if (param.type && param.type.kind === 8) {
                              hasStringLiterals = true;
                          }
                          if (minArgumentCount < 0) {
                              if (param.initializer || param.questionToken || param.dotDotDotToken) {
                                  minArgumentCount = i;
                              }
                          }
                      }
                      if (minArgumentCount < 0) {
                          minArgumentCount = declaration.parameters.length;
                      }
                      var returnType;
                      if (classType) {
                          returnType = classType;
                      }
                      else if (declaration.type) {
                          returnType = getTypeFromTypeNode(declaration.type);
                      }
                      else {
                          if (declaration.kind === 137 && !ts.hasDynamicName(declaration)) {
                              var setter = ts.getDeclarationOfKind(declaration.symbol, 138);
                              returnType = getAnnotatedAccessorType(setter);
                          }
                          if (!returnType && ts.nodeIsMissing(declaration.body)) {
                              returnType = anyType;
                          }
                      }
                      links.resolvedSignature = createSignature(declaration, typeParameters, parameters, returnType, minArgumentCount, ts.hasRestParameters(declaration), hasStringLiterals);
                  }
                  return links.resolvedSignature;
              }
              function getSignaturesOfSymbol(symbol) {
                  if (!symbol)
                      return emptyArray;
                  var result = [];
                  for (var i = 0, len = symbol.declarations.length; i < len; i++) {
                      var node = symbol.declarations[i];
                      switch (node.kind) {
                          case 143:
                          case 144:
                          case 201:
                          case 135:
                          case 134:
                          case 136:
                          case 139:
                          case 140:
                          case 141:
                          case 137:
                          case 138:
                          case 163:
                          case 164:
                              if (i > 0 && node.body) {
                                  var previous = symbol.declarations[i - 1];
                                  if (node.parent === previous.parent && node.kind === previous.kind && node.pos === previous.end) {
                                      break;
                                  }
                              }
                              result.push(getSignatureFromDeclaration(node));
                      }
                  }
                  return result;
              }
              function getReturnTypeOfSignature(signature) {
                  if (!signature.resolvedReturnType) {
                      if (!pushTypeResolution(signature)) {
                          return unknownType;
                      }
                      var type;
                      if (signature.target) {
                          type = instantiateType(getReturnTypeOfSignature(signature.target), signature.mapper);
                      }
                      else if (signature.unionSignatures) {
                          type = getUnionType(ts.map(signature.unionSignatures, getReturnTypeOfSignature));
                      }
                      else {
                          type = getReturnTypeFromBody(signature.declaration);
                      }
                      if (!popTypeResolution()) {
                          type = anyType;
                          if (compilerOptions.noImplicitAny) {
                              var declaration = signature.declaration;
                              if (declaration.name) {
                                  error(declaration.name, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, ts.declarationNameToString(declaration.name));
                              }
                              else {
                                  error(declaration, ts.Diagnostics.Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions);
                              }
                          }
                      }
                      signature.resolvedReturnType = type;
                  }
                  return signature.resolvedReturnType;
              }
              function getRestTypeOfSignature(signature) {
                  if (signature.hasRestParameter) {
                      var type = getTypeOfSymbol(ts.lastOrUndefined(signature.parameters));
                      if (type.flags & 4096 && type.target === globalArrayType) {
                          return type.typeArguments[0];
                      }
                  }
                  return anyType;
              }
              function getSignatureInstantiation(signature, typeArguments) {
                  return instantiateSignature(signature, createTypeMapper(signature.typeParameters, typeArguments), true);
              }
              function getErasedSignature(signature) {
                  if (!signature.typeParameters)
                      return signature;
                  if (!signature.erasedSignatureCache) {
                      if (signature.target) {
                          signature.erasedSignatureCache = instantiateSignature(getErasedSignature(signature.target), signature.mapper);
                      }
                      else {
                          signature.erasedSignatureCache = instantiateSignature(signature, createTypeEraser(signature.typeParameters), true);
                      }
                  }
                  return signature.erasedSignatureCache;
              }
              function getOrCreateTypeFromSignature(signature) {
                  if (!signature.isolatedSignatureType) {
                      var isConstructor = signature.declaration.kind === 136 || signature.declaration.kind === 140;
                      var type = createObjectType(32768 | 65536);
                      type.members = emptySymbols;
                      type.properties = emptyArray;
                      type.callSignatures = !isConstructor ? [signature] : emptyArray;
                      type.constructSignatures = isConstructor ? [signature] : emptyArray;
                      signature.isolatedSignatureType = type;
                  }
                  return signature.isolatedSignatureType;
              }
              function getIndexSymbol(symbol) {
                  return symbol.members["__index"];
              }
              function getIndexDeclarationOfSymbol(symbol, kind) {
                  var syntaxKind = kind === 1 ? 120 : 122;
                  var indexSymbol = getIndexSymbol(symbol);
                  if (indexSymbol) {
                      var len = indexSymbol.declarations.length;
                      for (var _i = 0, _a = indexSymbol.declarations; _i < _a.length; _i++) {
                          var decl = _a[_i];
                          var node = decl;
                          if (node.parameters.length === 1) {
                              var parameter = node.parameters[0];
                              if (parameter && parameter.type && parameter.type.kind === syntaxKind) {
                                  return node;
                              }
                          }
                      }
                  }
                  return undefined;
              }
              function getIndexTypeOfSymbol(symbol, kind) {
                  var declaration = getIndexDeclarationOfSymbol(symbol, kind);
                  return declaration
                      ? declaration.type ? getTypeFromTypeNode(declaration.type) : anyType
                      : undefined;
              }
              function getConstraintOfTypeParameter(type) {
                  if (!type.constraint) {
                      if (type.target) {
                          var targetConstraint = getConstraintOfTypeParameter(type.target);
                          type.constraint = targetConstraint ? instantiateType(targetConstraint, type.mapper) : noConstraintType;
                      }
                      else {
                          type.constraint = getTypeFromTypeNode(ts.getDeclarationOfKind(type.symbol, 129).constraint);
                      }
                  }
                  return type.constraint === noConstraintType ? undefined : type.constraint;
              }
              function getTypeListId(types) {
                  switch (types.length) {
                      case 1:
                          return "" + types[0].id;
                      case 2:
                          return types[0].id + "," + types[1].id;
                      default:
                          var result = "";
                          for (var i = 0; i < types.length; i++) {
                              if (i > 0) {
                                  result += ",";
                              }
                              result += types[i].id;
                          }
                          return result;
                  }
              }
              function getWideningFlagsOfTypes(types) {
                  var result = 0;
                  for (var _i = 0; _i < types.length; _i++) {
                      var type = types[_i];
                      result |= type.flags;
                  }
                  return result & 786432;
              }
              function createTypeReference(target, typeArguments) {
                  var id = getTypeListId(typeArguments);
                  var type = target.instantiations[id];
                  if (!type) {
                      var flags = 4096 | getWideningFlagsOfTypes(typeArguments);
                      type = target.instantiations[id] = createObjectType(flags, target.symbol);
                      type.target = target;
                      type.typeArguments = typeArguments;
                  }
                  return type;
              }
              function isTypeParameterReferenceIllegalInConstraint(typeReferenceNode, typeParameterSymbol) {
                  var links = getNodeLinks(typeReferenceNode);
                  if (links.isIllegalTypeReferenceInConstraint !== undefined) {
                      return links.isIllegalTypeReferenceInConstraint;
                  }
                  var currentNode = typeReferenceNode;
                  while (!ts.forEach(typeParameterSymbol.declarations, function (d) { return d.parent === currentNode.parent; })) {
                      currentNode = currentNode.parent;
                  }
                  links.isIllegalTypeReferenceInConstraint = currentNode.kind === 129;
                  return links.isIllegalTypeReferenceInConstraint;
              }
              function checkTypeParameterHasIllegalReferencesInConstraint(typeParameter) {
                  var typeParameterSymbol;
                  function check(n) {
                      if (n.kind === 142 && n.typeName.kind === 65) {
                          var links = getNodeLinks(n);
                          if (links.isIllegalTypeReferenceInConstraint === undefined) {
                              var symbol = resolveName(typeParameter, n.typeName.text, 793056, undefined, undefined);
                              if (symbol && (symbol.flags & 262144)) {
                                  links.isIllegalTypeReferenceInConstraint = ts.forEach(symbol.declarations, function (d) { return d.parent == typeParameter.parent; });
                              }
                          }
                          if (links.isIllegalTypeReferenceInConstraint) {
                              error(typeParameter, ts.Diagnostics.Constraint_of_a_type_parameter_cannot_reference_any_type_parameter_from_the_same_type_parameter_list);
                          }
                      }
                      ts.forEachChild(n, check);
                  }
                  if (typeParameter.constraint) {
                      typeParameterSymbol = getSymbolOfNode(typeParameter);
                      check(typeParameter.constraint);
                  }
              }
              function getTypeFromTypeReferenceOrExpressionWithTypeArguments(node) {
                  var links = getNodeLinks(node);
                  if (!links.resolvedType) {
                      var type;
                      if (node.kind !== 177 || ts.isSupportedExpressionWithTypeArguments(node)) {
                          var typeNameOrExpression = node.kind === 142
                              ? node.typeName
                              : node.expression;
                          var symbol = resolveEntityName(typeNameOrExpression, 793056);
                          if (symbol) {
                              if ((symbol.flags & 262144) && isTypeParameterReferenceIllegalInConstraint(node, symbol)) {
                                  type = unknownType;
                              }
                              else {
                                  type = getDeclaredTypeOfSymbol(symbol);
                                  if (type.flags & (1024 | 2048) && type.flags & 4096) {
                                      var typeParameters = type.typeParameters;
                                      if (node.typeArguments && node.typeArguments.length === typeParameters.length) {
                                          type = createTypeReference(type, ts.map(node.typeArguments, getTypeFromTypeNode));
                                      }
                                      else {
                                          error(node, ts.Diagnostics.Generic_type_0_requires_1_type_argument_s, typeToString(type, undefined, 1), typeParameters.length);
                                          type = undefined;
                                      }
                                  }
                                  else {
                                      if (node.typeArguments) {
                                          error(node, ts.Diagnostics.Type_0_is_not_generic, typeToString(type));
                                          type = undefined;
                                      }
                                  }
                              }
                          }
                      }
                      links.resolvedType = type || unknownType;
                  }
                  return links.resolvedType;
              }
              function getTypeFromTypeQueryNode(node) {
                  var links = getNodeLinks(node);
                  if (!links.resolvedType) {
                      links.resolvedType = getWidenedType(checkExpressionOrQualifiedName(node.exprName));
                  }
                  return links.resolvedType;
              }
              function getTypeOfGlobalSymbol(symbol, arity) {
                  function getTypeDeclaration(symbol) {
                      var declarations = symbol.declarations;
                      for (var _i = 0; _i < declarations.length; _i++) {
                          var declaration = declarations[_i];
                          switch (declaration.kind) {
                              case 202:
                              case 203:
                              case 205:
                                  return declaration;
                          }
                      }
                  }
                  if (!symbol) {
                      return emptyObjectType;
                  }
                  var type = getDeclaredTypeOfSymbol(symbol);
                  if (!(type.flags & 48128)) {
                      error(getTypeDeclaration(symbol), ts.Diagnostics.Global_type_0_must_be_a_class_or_interface_type, symbol.name);
                      return emptyObjectType;
                  }
                  if ((type.typeParameters ? type.typeParameters.length : 0) !== arity) {
                      error(getTypeDeclaration(symbol), ts.Diagnostics.Global_type_0_must_have_1_type_parameter_s, symbol.name, arity);
                      return emptyObjectType;
                  }
                  return type;
              }
              function getGlobalValueSymbol(name) {
                  return getGlobalSymbol(name, 107455, ts.Diagnostics.Cannot_find_global_value_0);
              }
              function getGlobalTypeSymbol(name) {
                  return getGlobalSymbol(name, 793056, ts.Diagnostics.Cannot_find_global_type_0);
              }
              function getGlobalSymbol(name, meaning, diagnostic) {
                  return resolveName(undefined, name, meaning, diagnostic, name);
              }
              function getGlobalType(name, arity) {
                  if (arity === void 0) { arity = 0; }
                  return getTypeOfGlobalSymbol(getGlobalTypeSymbol(name), arity);
              }
              function getGlobalESSymbolConstructorSymbol() {
                  return globalESSymbolConstructorSymbol || (globalESSymbolConstructorSymbol = getGlobalValueSymbol("Symbol"));
              }
              function createIterableType(elementType) {
                  return globalIterableType !== emptyObjectType ? createTypeReference(globalIterableType, [elementType]) : emptyObjectType;
              }
              function createArrayType(elementType) {
                  var arrayType = globalArrayType || getDeclaredTypeOfSymbol(globalArraySymbol);
                  return arrayType !== emptyObjectType ? createTypeReference(arrayType, [elementType]) : emptyObjectType;
              }
              function getTypeFromArrayTypeNode(node) {
                  var links = getNodeLinks(node);
                  if (!links.resolvedType) {
                      links.resolvedType = createArrayType(getTypeFromTypeNode(node.elementType));
                  }
                  return links.resolvedType;
              }
              function createTupleType(elementTypes) {
                  var id = getTypeListId(elementTypes);
                  var type = tupleTypes[id];
                  if (!type) {
                      type = tupleTypes[id] = createObjectType(8192);
                      type.elementTypes = elementTypes;
                  }
                  return type;
              }
              function getTypeFromTupleTypeNode(node) {
                  var links = getNodeLinks(node);
                  if (!links.resolvedType) {
                      links.resolvedType = createTupleType(ts.map(node.elementTypes, getTypeFromTypeNode));
                  }
                  return links.resolvedType;
              }
              function addTypeToSortedSet(sortedSet, type) {
                  if (type.flags & 16384) {
                      addTypesToSortedSet(sortedSet, type.types);
                  }
                  else {
                      var i = 0;
                      var id = type.id;
                      while (i < sortedSet.length && sortedSet[i].id < id) {
                          i++;
                      }
                      if (i === sortedSet.length || sortedSet[i].id !== id) {
                          sortedSet.splice(i, 0, type);
                      }
                  }
              }
              function addTypesToSortedSet(sortedTypes, types) {
                  for (var _i = 0; _i < types.length; _i++) {
                      var type = types[_i];
                      addTypeToSortedSet(sortedTypes, type);
                  }
              }
              function isSubtypeOfAny(candidate, types) {
                  for (var _i = 0; _i < types.length; _i++) {
                      var type = types[_i];
                      if (candidate !== type && isTypeSubtypeOf(candidate, type)) {
                          return true;
                      }
                  }
                  return false;
              }
              var removeSubtypesStack = [];
              function removeSubtypes(types) {
                  var typeListId = getTypeListId(types);
                  if (removeSubtypesStack.lastIndexOf(typeListId) >= 0) {
                      return;
                  }
                  removeSubtypesStack.push(typeListId);
                  var i = types.length;
                  while (i > 0) {
                      i--;
                      if (isSubtypeOfAny(types[i], types)) {
                          types.splice(i, 1);
                      }
                  }
                  removeSubtypesStack.pop();
              }
              function containsAnyType(types) {
                  for (var _i = 0; _i < types.length; _i++) {
                      var type = types[_i];
                      if (type.flags & 1) {
                          return true;
                      }
                  }
                  return false;
              }
              function removeAllButLast(types, typeToRemove) {
                  var i = types.length;
                  while (i > 0 && types.length > 1) {
                      i--;
                      if (types[i] === typeToRemove) {
                          types.splice(i, 1);
                      }
                  }
              }
              function getUnionType(types, noSubtypeReduction) {
                  if (types.length === 0) {
                      return emptyObjectType;
                  }
                  var sortedTypes = [];
                  addTypesToSortedSet(sortedTypes, types);
                  if (noSubtypeReduction) {
                      if (containsAnyType(sortedTypes)) {
                          return anyType;
                      }
                      removeAllButLast(sortedTypes, undefinedType);
                      removeAllButLast(sortedTypes, nullType);
                  }
                  else {
                      removeSubtypes(sortedTypes);
                  }
                  if (sortedTypes.length === 1) {
                      return sortedTypes[0];
                  }
                  var id = getTypeListId(sortedTypes);
                  var type = unionTypes[id];
                  if (!type) {
                      type = unionTypes[id] = createObjectType(16384 | getWideningFlagsOfTypes(sortedTypes));
                      type.types = sortedTypes;
                      type.reducedType = noSubtypeReduction ? undefined : type;
                  }
                  return type;
              }
              function getReducedTypeOfUnionType(type) {
                  if (!type.reducedType) {
                      type.reducedType = getUnionType(type.types, false);
                  }
                  return type.reducedType;
              }
              function getTypeFromUnionTypeNode(node) {
                  var links = getNodeLinks(node);
                  if (!links.resolvedType) {
                      links.resolvedType = getUnionType(ts.map(node.types, getTypeFromTypeNode), true);
                  }
                  return links.resolvedType;
              }
              function getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node) {
                  var links = getNodeLinks(node);
                  if (!links.resolvedType) {
                      links.resolvedType = createObjectType(32768, node.symbol);
                  }
                  return links.resolvedType;
              }
              function getStringLiteralType(node) {
                  if (ts.hasProperty(stringLiteralTypes, node.text)) {
                      return stringLiteralTypes[node.text];
                  }
                  var type = stringLiteralTypes[node.text] = createType(256);
                  type.text = ts.getTextOfNode(node);
                  return type;
              }
              function getTypeFromStringLiteral(node) {
                  var links = getNodeLinks(node);
                  if (!links.resolvedType) {
                      links.resolvedType = getStringLiteralType(node);
                  }
                  return links.resolvedType;
              }
              function getTypeFromTypeNode(node) {
                  switch (node.kind) {
                      case 112:
                          return anyType;
                      case 122:
                          return stringType;
                      case 120:
                          return numberType;
                      case 113:
                          return booleanType;
                      case 123:
                          return esSymbolType;
                      case 99:
                          return voidType;
                      case 8:
                          return getTypeFromStringLiteral(node);
                      case 142:
                          return getTypeFromTypeReferenceOrExpressionWithTypeArguments(node);
                      case 177:
                          return getTypeFromTypeReferenceOrExpressionWithTypeArguments(node);
                      case 145:
                          return getTypeFromTypeQueryNode(node);
                      case 147:
                          return getTypeFromArrayTypeNode(node);
                      case 148:
                          return getTypeFromTupleTypeNode(node);
                      case 149:
                          return getTypeFromUnionTypeNode(node);
                      case 150:
                          return getTypeFromTypeNode(node.type);
                      case 143:
                      case 144:
                      case 146:
                          return getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node);
                      case 65:
                      case 127:
                          var symbol = getSymbolInfo(node);
                          return symbol && getDeclaredTypeOfSymbol(symbol);
                      default:
                          return unknownType;
                  }
              }
              function instantiateList(items, mapper, instantiator) {
                  if (items && items.length) {
                      var result = [];
                      for (var _i = 0; _i < items.length; _i++) {
                          var v = items[_i];
                          result.push(instantiator(v, mapper));
                      }
                      return result;
                  }
                  return items;
              }
              function createUnaryTypeMapper(source, target) {
                  return function (t) { return t === source ? target : t; };
              }
              function createBinaryTypeMapper(source1, target1, source2, target2) {
                  return function (t) { return t === source1 ? target1 : t === source2 ? target2 : t; };
              }
              function createTypeMapper(sources, targets) {
                  switch (sources.length) {
                      case 1: return createUnaryTypeMapper(sources[0], targets[0]);
                      case 2: return createBinaryTypeMapper(sources[0], targets[0], sources[1], targets[1]);
                  }
                  return function (t) {
                      for (var i = 0; i < sources.length; i++) {
                          if (t === sources[i]) {
                              return targets[i];
                          }
                      }
                      return t;
                  };
              }
              function createUnaryTypeEraser(source) {
                  return function (t) { return t === source ? anyType : t; };
              }
              function createBinaryTypeEraser(source1, source2) {
                  return function (t) { return t === source1 || t === source2 ? anyType : t; };
              }
              function createTypeEraser(sources) {
                  switch (sources.length) {
                      case 1: return createUnaryTypeEraser(sources[0]);
                      case 2: return createBinaryTypeEraser(sources[0], sources[1]);
                  }
                  return function (t) {
                      for (var _i = 0; _i < sources.length; _i++) {
                          var source = sources[_i];
                          if (t === source) {
                              return anyType;
                          }
                      }
                      return t;
                  };
              }
              function createInferenceMapper(context) {
                  return function (t) {
                      for (var i = 0; i < context.typeParameters.length; i++) {
                          if (t === context.typeParameters[i]) {
                              context.inferences[i].isFixed = true;
                              return getInferredType(context, i);
                          }
                      }
                      return t;
                  };
              }
              function identityMapper(type) {
                  return type;
              }
              function combineTypeMappers(mapper1, mapper2) {
                  return function (t) { return instantiateType(mapper1(t), mapper2); };
              }
              function instantiateTypeParameter(typeParameter, mapper) {
                  var result = createType(512);
                  result.symbol = typeParameter.symbol;
                  if (typeParameter.constraint) {
                      result.constraint = instantiateType(typeParameter.constraint, mapper);
                  }
                  else {
                      result.target = typeParameter;
                      result.mapper = mapper;
                  }
                  return result;
              }
              function instantiateSignature(signature, mapper, eraseTypeParameters) {
                  var freshTypeParameters;
                  if (signature.typeParameters && !eraseTypeParameters) {
                      freshTypeParameters = instantiateList(signature.typeParameters, mapper, instantiateTypeParameter);
                      mapper = combineTypeMappers(createTypeMapper(signature.typeParameters, freshTypeParameters), mapper);
                  }
                  var result = createSignature(signature.declaration, freshTypeParameters, instantiateList(signature.parameters, mapper, instantiateSymbol), signature.resolvedReturnType ? instantiateType(signature.resolvedReturnType, mapper) : undefined, signature.minArgumentCount, signature.hasRestParameter, signature.hasStringLiterals);
                  result.target = signature;
                  result.mapper = mapper;
                  return result;
              }
              function instantiateSymbol(symbol, mapper) {
                  if (symbol.flags & 16777216) {
                      var links = getSymbolLinks(symbol);
                      symbol = links.target;
                      mapper = combineTypeMappers(links.mapper, mapper);
                  }
                  var result = createSymbol(16777216 | 67108864 | symbol.flags, symbol.name);
                  result.declarations = symbol.declarations;
                  result.parent = symbol.parent;
                  result.target = symbol;
                  result.mapper = mapper;
                  if (symbol.valueDeclaration) {
                      result.valueDeclaration = symbol.valueDeclaration;
                  }
                  return result;
              }
              function instantiateAnonymousType(type, mapper) {
                  var result = createObjectType(32768, type.symbol);
                  result.properties = instantiateList(getPropertiesOfObjectType(type), mapper, instantiateSymbol);
                  result.members = createSymbolTable(result.properties);
                  result.callSignatures = instantiateList(getSignaturesOfType(type, 0), mapper, instantiateSignature);
                  result.constructSignatures = instantiateList(getSignaturesOfType(type, 1), mapper, instantiateSignature);
                  var stringIndexType = getIndexTypeOfType(type, 0);
                  var numberIndexType = getIndexTypeOfType(type, 1);
                  if (stringIndexType)
                      result.stringIndexType = instantiateType(stringIndexType, mapper);
                  if (numberIndexType)
                      result.numberIndexType = instantiateType(numberIndexType, mapper);
                  return result;
              }
              function instantiateType(type, mapper) {
                  if (mapper !== identityMapper) {
                      if (type.flags & 512) {
                          return mapper(type);
                      }
                      if (type.flags & 32768) {
                          return type.symbol && type.symbol.flags & (16 | 8192 | 2048 | 4096) ?
                              instantiateAnonymousType(type, mapper) : type;
                      }
                      if (type.flags & 4096) {
                          return createTypeReference(type.target, instantiateList(type.typeArguments, mapper, instantiateType));
                      }
                      if (type.flags & 8192) {
                          return createTupleType(instantiateList(type.elementTypes, mapper, instantiateType));
                      }
                      if (type.flags & 16384) {
                          return getUnionType(instantiateList(type.types, mapper, instantiateType), true);
                      }
                  }
                  return type;
              }
              function isContextSensitive(node) {
                  ts.Debug.assert(node.kind !== 135 || ts.isObjectLiteralMethod(node));
                  switch (node.kind) {
                      case 163:
                      case 164:
                          return isContextSensitiveFunctionLikeDeclaration(node);
                      case 155:
                          return ts.forEach(node.properties, isContextSensitive);
                      case 154:
                          return ts.forEach(node.elements, isContextSensitive);
                      case 171:
                          return isContextSensitive(node.whenTrue) ||
                              isContextSensitive(node.whenFalse);
                      case 170:
                          return node.operatorToken.kind === 49 &&
                              (isContextSensitive(node.left) || isContextSensitive(node.right));
                      case 225:
                          return isContextSensitive(node.initializer);
                      case 135:
                      case 134:
                          return isContextSensitiveFunctionLikeDeclaration(node);
                      case 162:
                          return isContextSensitive(node.expression);
                  }
                  return false;
              }
              function isContextSensitiveFunctionLikeDeclaration(node) {
                  return !node.typeParameters && node.parameters.length && !ts.forEach(node.parameters, function (p) { return p.type; });
              }
              function getTypeWithoutConstructors(type) {
                  if (type.flags & 48128) {
                      var resolved = resolveObjectOrUnionTypeMembers(type);
                      if (resolved.constructSignatures.length) {
                          var result = createObjectType(32768, type.symbol);
                          result.members = resolved.members;
                          result.properties = resolved.properties;
                          result.callSignatures = resolved.callSignatures;
                          result.constructSignatures = emptyArray;
                          type = result;
                      }
                  }
                  return type;
              }
              var subtypeRelation = {};
              var assignableRelation = {};
              var identityRelation = {};
              function isTypeIdenticalTo(source, target) {
                  return checkTypeRelatedTo(source, target, identityRelation, undefined);
              }
              function compareTypes(source, target) {
                  return checkTypeRelatedTo(source, target, identityRelation, undefined) ? -1 : 0;
              }
              function isTypeSubtypeOf(source, target) {
                  return checkTypeSubtypeOf(source, target, undefined);
              }
              function isTypeAssignableTo(source, target) {
                  return checkTypeAssignableTo(source, target, undefined);
              }
              function checkTypeSubtypeOf(source, target, errorNode, headMessage, containingMessageChain) {
                  return checkTypeRelatedTo(source, target, subtypeRelation, errorNode, headMessage, containingMessageChain);
              }
              function checkTypeAssignableTo(source, target, errorNode, headMessage) {
                  return checkTypeRelatedTo(source, target, assignableRelation, errorNode, headMessage);
              }
              function isSignatureAssignableTo(source, target) {
                  var sourceType = getOrCreateTypeFromSignature(source);
                  var targetType = getOrCreateTypeFromSignature(target);
                  return checkTypeRelatedTo(sourceType, targetType, assignableRelation, undefined);
              }
              function checkTypeRelatedTo(source, target, relation, errorNode, headMessage, containingMessageChain) {
                  var errorInfo;
                  var sourceStack;
                  var targetStack;
                  var maybeStack;
                  var expandingFlags;
                  var depth = 0;
                  var overflow = false;
                  var elaborateErrors = false;
                  ts.Debug.assert(relation !== identityRelation || !errorNode, "no error reporting in identity checking");
                  var result = isRelatedTo(source, target, errorNode !== undefined, headMessage);
                  if (overflow) {
                      error(errorNode, ts.Diagnostics.Excessive_stack_depth_comparing_types_0_and_1, typeToString(source), typeToString(target));
                  }
                  else if (errorInfo) {
                      if (errorInfo.next === undefined) {
                          errorInfo = undefined;
                          elaborateErrors = true;
                          isRelatedTo(source, target, errorNode !== undefined, headMessage);
                      }
                      if (containingMessageChain) {
                          errorInfo = ts.concatenateDiagnosticMessageChains(containingMessageChain, errorInfo);
                      }
                      diagnostics.add(ts.createDiagnosticForNodeFromMessageChain(errorNode, errorInfo));
                  }
                  return result !== 0;
                  function reportError(message, arg0, arg1, arg2) {
                      errorInfo = ts.chainDiagnosticMessages(errorInfo, message, arg0, arg1, arg2);
                  }
                  function isRelatedTo(source, target, reportErrors, headMessage) {
                      var result;
                      if (source === target)
                          return -1;
                      if (relation !== identityRelation) {
                          if (target.flags & 1)
                              return -1;
                          if (source === undefinedType)
                              return -1;
                          if (source === nullType && target !== undefinedType)
                              return -1;
                          if (source.flags & 128 && target === numberType)
                              return -1;
                          if (source.flags & 256 && target === stringType)
                              return -1;
                          if (relation === assignableRelation) {
                              if (source.flags & 1)
                                  return -1;
                              if (source === numberType && target.flags & 128)
                                  return -1;
                          }
                      }
                      var saveErrorInfo = errorInfo;
                      if (source.flags & 16384 || target.flags & 16384) {
                          if (relation === identityRelation) {
                              if (source.flags & 16384 && target.flags & 16384) {
                                  if (result = unionTypeRelatedToUnionType(source, target)) {
                                      if (result &= unionTypeRelatedToUnionType(target, source)) {
                                          return result;
                                      }
                                  }
                              }
                              else if (source.flags & 16384) {
                                  if (result = unionTypeRelatedToType(source, target, reportErrors)) {
                                      return result;
                                  }
                              }
                              else {
                                  if (result = unionTypeRelatedToType(target, source, reportErrors)) {
                                      return result;
                                  }
                              }
                          }
                          else {
                              if (source.flags & 16384) {
                                  if (result = unionTypeRelatedToType(source, target, reportErrors)) {
                                      return result;
                                  }
                              }
                              else {
                                  if (result = typeRelatedToUnionType(source, target, reportErrors)) {
                                      return result;
                                  }
                              }
                          }
                      }
                      else if (source.flags & 512 && target.flags & 512) {
                          if (result = typeParameterRelatedTo(source, target, reportErrors)) {
                              return result;
                          }
                      }
                      else if (source.flags & 4096 && target.flags & 4096 && source.target === target.target) {
                          if (result = typesRelatedTo(source.typeArguments, target.typeArguments, reportErrors)) {
                              return result;
                          }
                      }
                      var reportStructuralErrors = reportErrors && errorInfo === saveErrorInfo;
                      var sourceOrApparentType = relation === identityRelation ? source : getApparentType(source);
                      if (sourceOrApparentType.flags & 48128 && target.flags & 48128) {
                          if (result = objectTypeRelatedTo(sourceOrApparentType, target, reportStructuralErrors)) {
                              errorInfo = saveErrorInfo;
                              return result;
                          }
                      }
                      else if (source.flags & 512 && sourceOrApparentType.flags & 16384) {
                          errorInfo = saveErrorInfo;
                          if (result = isRelatedTo(sourceOrApparentType, target, reportErrors)) {
                              return result;
                          }
                      }
                      if (reportErrors) {
                          headMessage = headMessage || ts.Diagnostics.Type_0_is_not_assignable_to_type_1;
                          var sourceType = typeToString(source);
                          var targetType = typeToString(target);
                          if (sourceType === targetType) {
                              sourceType = typeToString(source, undefined, 128);
                              targetType = typeToString(target, undefined, 128);
                          }
                          reportError(headMessage, sourceType, targetType);
                      }
                      return 0;
                  }
                  function unionTypeRelatedToUnionType(source, target) {
                      var result = -1;
                      var sourceTypes = source.types;
                      for (var _i = 0; _i < sourceTypes.length; _i++) {
                          var sourceType = sourceTypes[_i];
                          var related = typeRelatedToUnionType(sourceType, target, false);
                          if (!related) {
                              return 0;
                          }
                          result &= related;
                      }
                      return result;
                  }
                  function typeRelatedToUnionType(source, target, reportErrors) {
                      var targetTypes = target.types;
                      for (var i = 0, len = targetTypes.length; i < len; i++) {
                          var related = isRelatedTo(source, targetTypes[i], reportErrors && i === len - 1);
                          if (related) {
                              return related;
                          }
                      }
                      return 0;
                  }
                  function unionTypeRelatedToType(source, target, reportErrors) {
                      var result = -1;
                      var sourceTypes = source.types;
                      for (var _i = 0; _i < sourceTypes.length; _i++) {
                          var sourceType = sourceTypes[_i];
                          var related = isRelatedTo(sourceType, target, reportErrors);
                          if (!related) {
                              return 0;
                          }
                          result &= related;
                      }
                      return result;
                  }
                  function typesRelatedTo(sources, targets, reportErrors) {
                      var result = -1;
                      for (var i = 0, len = sources.length; i < len; i++) {
                          var related = isRelatedTo(sources[i], targets[i], reportErrors);
                          if (!related) {
                              return 0;
                          }
                          result &= related;
                      }
                      return result;
                  }
                  function typeParameterRelatedTo(source, target, reportErrors) {
                      if (relation === identityRelation) {
                          if (source.symbol.name !== target.symbol.name) {
                              return 0;
                          }
                          if (source.constraint === target.constraint) {
                              return -1;
                          }
                          if (source.constraint === noConstraintType || target.constraint === noConstraintType) {
                              return 0;
                          }
                          return isRelatedTo(source.constraint, target.constraint, reportErrors);
                      }
                      else {
                          while (true) {
                              var constraint = getConstraintOfTypeParameter(source);
                              if (constraint === target)
                                  return -1;
                              if (!(constraint && constraint.flags & 512))
                                  break;
                              source = constraint;
                          }
                          return 0;
                      }
                  }
                  function objectTypeRelatedTo(source, target, reportErrors) {
                      if (overflow) {
                          return 0;
                      }
                      var id = relation !== identityRelation || source.id < target.id ? source.id + "," + target.id : target.id + "," + source.id;
                      var related = relation[id];
                      if (related !== undefined) {
                          if (!elaborateErrors || (related === 3)) {
                              return related === 1 ? -1 : 0;
                          }
                      }
                      if (depth > 0) {
                          for (var i = 0; i < depth; i++) {
                              if (maybeStack[i][id]) {
                                  return 1;
                              }
                          }
                          if (depth === 100) {
                              overflow = true;
                              return 0;
                          }
                      }
                      else {
                          sourceStack = [];
                          targetStack = [];
                          maybeStack = [];
                          expandingFlags = 0;
                      }
                      sourceStack[depth] = source;
                      targetStack[depth] = target;
                      maybeStack[depth] = {};
                      maybeStack[depth][id] = 1;
                      depth++;
                      var saveExpandingFlags = expandingFlags;
                      if (!(expandingFlags & 1) && isDeeplyNestedGeneric(source, sourceStack))
                          expandingFlags |= 1;
                      if (!(expandingFlags & 2) && isDeeplyNestedGeneric(target, targetStack))
                          expandingFlags |= 2;
                      var result;
                      if (expandingFlags === 3) {
                          result = 1;
                      }
                      else {
                          result = propertiesRelatedTo(source, target, reportErrors);
                          if (result) {
                              result &= signaturesRelatedTo(source, target, 0, reportErrors);
                              if (result) {
                                  result &= signaturesRelatedTo(source, target, 1, reportErrors);
                                  if (result) {
                                      result &= stringIndexTypesRelatedTo(source, target, reportErrors);
                                      if (result) {
                                          result &= numberIndexTypesRelatedTo(source, target, reportErrors);
                                      }
                                  }
                              }
                          }
                      }
                      expandingFlags = saveExpandingFlags;
                      depth--;
                      if (result) {
                          var maybeCache = maybeStack[depth];
                          var destinationCache = (result === -1 || depth === 0) ? relation : maybeStack[depth - 1];
                          ts.copyMap(maybeCache, destinationCache);
                      }
                      else {
                          relation[id] = reportErrors ? 3 : 2;
                      }
                      return result;
                  }
                  function isDeeplyNestedGeneric(type, stack) {
                      if (type.flags & 4096 && depth >= 10) {
                          var target_1 = type.target;
                          var count = 0;
                          for (var i = 0; i < depth; i++) {
                              var t = stack[i];
                              if (t.flags & 4096 && t.target === target_1) {
                                  count++;
                                  if (count >= 10)
                                      return true;
                              }
                          }
                      }
                      return false;
                  }
                  function propertiesRelatedTo(source, target, reportErrors) {
                      if (relation === identityRelation) {
                          return propertiesIdenticalTo(source, target);
                      }
                      var result = -1;
                      var properties = getPropertiesOfObjectType(target);
                      var requireOptionalProperties = relation === subtypeRelation && !(source.flags & 131072);
                      for (var _i = 0; _i < properties.length; _i++) {
                          var targetProp = properties[_i];
                          var sourceProp = getPropertyOfType(source, targetProp.name);
                          if (sourceProp !== targetProp) {
                              if (!sourceProp) {
                                  if (!(targetProp.flags & 536870912) || requireOptionalProperties) {
                                      if (reportErrors) {
                                          reportError(ts.Diagnostics.Property_0_is_missing_in_type_1, symbolToString(targetProp), typeToString(source));
                                      }
                                      return 0;
                                  }
                              }
                              else if (!(targetProp.flags & 134217728)) {
                                  var sourceFlags = getDeclarationFlagsFromSymbol(sourceProp);
                                  var targetFlags = getDeclarationFlagsFromSymbol(targetProp);
                                  if (sourceFlags & 32 || targetFlags & 32) {
                                      if (sourceProp.valueDeclaration !== targetProp.valueDeclaration) {
                                          if (reportErrors) {
                                              if (sourceFlags & 32 && targetFlags & 32) {
                                                  reportError(ts.Diagnostics.Types_have_separate_declarations_of_a_private_property_0, symbolToString(targetProp));
                                              }
                                              else {
                                                  reportError(ts.Diagnostics.Property_0_is_private_in_type_1_but_not_in_type_2, symbolToString(targetProp), typeToString(sourceFlags & 32 ? source : target), typeToString(sourceFlags & 32 ? target : source));
                                              }
                                          }
                                          return 0;
                                      }
                                  }
                                  else if (targetFlags & 64) {
                                      var sourceDeclaredInClass = sourceProp.parent && sourceProp.parent.flags & 32;
                                      var sourceClass = sourceDeclaredInClass ? getDeclaredTypeOfSymbol(sourceProp.parent) : undefined;
                                      var targetClass = getDeclaredTypeOfSymbol(targetProp.parent);
                                      if (!sourceClass || !hasBaseType(sourceClass, targetClass)) {
                                          if (reportErrors) {
                                              reportError(ts.Diagnostics.Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2, symbolToString(targetProp), typeToString(sourceClass || source), typeToString(targetClass));
                                          }
                                          return 0;
                                      }
                                  }
                                  else if (sourceFlags & 64) {
                                      if (reportErrors) {
                                          reportError(ts.Diagnostics.Property_0_is_protected_in_type_1_but_public_in_type_2, symbolToString(targetProp), typeToString(source), typeToString(target));
                                      }
                                      return 0;
                                  }
                                  var related = isRelatedTo(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp), reportErrors);
                                  if (!related) {
                                      if (reportErrors) {
                                          reportError(ts.Diagnostics.Types_of_property_0_are_incompatible, symbolToString(targetProp));
                                      }
                                      return 0;
                                  }
                                  result &= related;
                                  if (sourceProp.flags & 536870912 && !(targetProp.flags & 536870912)) {
                                      if (reportErrors) {
                                          reportError(ts.Diagnostics.Property_0_is_optional_in_type_1_but_required_in_type_2, symbolToString(targetProp), typeToString(source), typeToString(target));
                                      }
                                      return 0;
                                  }
                              }
                          }
                      }
                      return result;
                  }
                  function propertiesIdenticalTo(source, target) {
                      var sourceProperties = getPropertiesOfObjectType(source);
                      var targetProperties = getPropertiesOfObjectType(target);
                      if (sourceProperties.length !== targetProperties.length) {
                          return 0;
                      }
                      var result = -1;
                      for (var _i = 0; _i < sourceProperties.length; _i++) {
                          var sourceProp = sourceProperties[_i];
                          var targetProp = getPropertyOfObjectType(target, sourceProp.name);
                          if (!targetProp) {
                              return 0;
                          }
                          var related = compareProperties(sourceProp, targetProp, isRelatedTo);
                          if (!related) {
                              return 0;
                          }
                          result &= related;
                      }
                      return result;
                  }
                  function signaturesRelatedTo(source, target, kind, reportErrors) {
                      if (relation === identityRelation) {
                          return signaturesIdenticalTo(source, target, kind);
                      }
                      if (target === anyFunctionType || source === anyFunctionType) {
                          return -1;
                      }
                      var sourceSignatures = getSignaturesOfType(source, kind);
                      var targetSignatures = getSignaturesOfType(target, kind);
                      var result = -1;
                      var saveErrorInfo = errorInfo;
                      outer: for (var _i = 0; _i < targetSignatures.length; _i++) {
                          var t = targetSignatures[_i];
                          if (!t.hasStringLiterals || target.flags & 65536) {
                              var localErrors = reportErrors;
                              for (var _a = 0; _a < sourceSignatures.length; _a++) {
                                  var s = sourceSignatures[_a];
                                  if (!s.hasStringLiterals || source.flags & 65536) {
                                      var related = signatureRelatedTo(s, t, localErrors);
                                      if (related) {
                                          result &= related;
                                          errorInfo = saveErrorInfo;
                                          continue outer;
                                      }
                                      localErrors = false;
                                  }
                              }
                              return 0;
                          }
                      }
                      return result;
                  }
                  function signatureRelatedTo(source, target, reportErrors) {
                      if (source === target) {
                          return -1;
                      }
                      if (!target.hasRestParameter && source.minArgumentCount > target.parameters.length) {
                          return 0;
                      }
                      var sourceMax = source.parameters.length;
                      var targetMax = target.parameters.length;
                      var checkCount;
                      if (source.hasRestParameter && target.hasRestParameter) {
                          checkCount = sourceMax > targetMax ? sourceMax : targetMax;
                          sourceMax--;
                          targetMax--;
                      }
                      else if (source.hasRestParameter) {
                          sourceMax--;
                          checkCount = targetMax;
                      }
                      else if (target.hasRestParameter) {
                          targetMax--;
                          checkCount = sourceMax;
                      }
                      else {
                          checkCount = sourceMax < targetMax ? sourceMax : targetMax;
                      }
                      source = getErasedSignature(source);
                      target = getErasedSignature(target);
                      var result = -1;
                      for (var i = 0; i < checkCount; i++) {
                          var s_1 = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source);
                          var t_1 = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target);
                          var saveErrorInfo = errorInfo;
                          var related = isRelatedTo(s_1, t_1, reportErrors);
                          if (!related) {
                              related = isRelatedTo(t_1, s_1, false);
                              if (!related) {
                                  if (reportErrors) {
                                      reportError(ts.Diagnostics.Types_of_parameters_0_and_1_are_incompatible, source.parameters[i < sourceMax ? i : sourceMax].name, target.parameters[i < targetMax ? i : targetMax].name);
                                  }
                                  return 0;
                              }
                              errorInfo = saveErrorInfo;
                          }
                          result &= related;
                      }
                      var t = getReturnTypeOfSignature(target);
                      if (t === voidType)
                          return result;
                      var s = getReturnTypeOfSignature(source);
                      return result & isRelatedTo(s, t, reportErrors);
                  }
                  function signaturesIdenticalTo(source, target, kind) {
                      var sourceSignatures = getSignaturesOfType(source, kind);
                      var targetSignatures = getSignaturesOfType(target, kind);
                      if (sourceSignatures.length !== targetSignatures.length) {
                          return 0;
                      }
                      var result = -1;
                      for (var i = 0, len = sourceSignatures.length; i < len; ++i) {
                          var related = compareSignatures(sourceSignatures[i], targetSignatures[i], true, isRelatedTo);
                          if (!related) {
                              return 0;
                          }
                          result &= related;
                      }
                      return result;
                  }
                  function stringIndexTypesRelatedTo(source, target, reportErrors) {
                      if (relation === identityRelation) {
                          return indexTypesIdenticalTo(0, source, target);
                      }
                      var targetType = getIndexTypeOfType(target, 0);
                      if (targetType) {
                          var sourceType = getIndexTypeOfType(source, 0);
                          if (!sourceType) {
                              if (reportErrors) {
                                  reportError(ts.Diagnostics.Index_signature_is_missing_in_type_0, typeToString(source));
                              }
                              return 0;
                          }
                          var related = isRelatedTo(sourceType, targetType, reportErrors);
                          if (!related) {
                              if (reportErrors) {
                                  reportError(ts.Diagnostics.Index_signatures_are_incompatible);
                              }
                              return 0;
                          }
                          return related;
                      }
                      return -1;
                  }
                  function numberIndexTypesRelatedTo(source, target, reportErrors) {
                      if (relation === identityRelation) {
                          return indexTypesIdenticalTo(1, source, target);
                      }
                      var targetType = getIndexTypeOfType(target, 1);
                      if (targetType) {
                          var sourceStringType = getIndexTypeOfType(source, 0);
                          var sourceNumberType = getIndexTypeOfType(source, 1);
                          if (!(sourceStringType || sourceNumberType)) {
                              if (reportErrors) {
                                  reportError(ts.Diagnostics.Index_signature_is_missing_in_type_0, typeToString(source));
                              }
                              return 0;
                          }
                          var related;
                          if (sourceStringType && sourceNumberType) {
                              related = isRelatedTo(sourceStringType, targetType, false) || isRelatedTo(sourceNumberType, targetType, reportErrors);
                          }
                          else {
                              related = isRelatedTo(sourceStringType || sourceNumberType, targetType, reportErrors);
                          }
                          if (!related) {
                              if (reportErrors) {
                                  reportError(ts.Diagnostics.Index_signatures_are_incompatible);
                              }
                              return 0;
                          }
                          return related;
                      }
                      return -1;
                  }
                  function indexTypesIdenticalTo(indexKind, source, target) {
                      var targetType = getIndexTypeOfType(target, indexKind);
                      var sourceType = getIndexTypeOfType(source, indexKind);
                      if (!sourceType && !targetType) {
                          return -1;
                      }
                      if (sourceType && targetType) {
                          return isRelatedTo(sourceType, targetType);
                      }
                      return 0;
                  }
              }
              function isPropertyIdenticalTo(sourceProp, targetProp) {
                  return compareProperties(sourceProp, targetProp, compareTypes) !== 0;
              }
              function compareProperties(sourceProp, targetProp, compareTypes) {
                  if (sourceProp === targetProp) {
                      return -1;
                  }
                  var sourcePropAccessibility = getDeclarationFlagsFromSymbol(sourceProp) & (32 | 64);
                  var targetPropAccessibility = getDeclarationFlagsFromSymbol(targetProp) & (32 | 64);
                  if (sourcePropAccessibility !== targetPropAccessibility) {
                      return 0;
                  }
                  if (sourcePropAccessibility) {
                      if (getTargetSymbol(sourceProp) !== getTargetSymbol(targetProp)) {
                          return 0;
                      }
                  }
                  else {
                      if ((sourceProp.flags & 536870912) !== (targetProp.flags & 536870912)) {
                          return 0;
                      }
                  }
                  return compareTypes(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp));
              }
              function compareSignatures(source, target, compareReturnTypes, compareTypes) {
                  if (source === target) {
                      return -1;
                  }
                  if (source.parameters.length !== target.parameters.length ||
                      source.minArgumentCount !== target.minArgumentCount ||
                      source.hasRestParameter !== target.hasRestParameter) {
                      return 0;
                  }
                  var result = -1;
                  if (source.typeParameters && target.typeParameters) {
                      if (source.typeParameters.length !== target.typeParameters.length) {
                          return 0;
                      }
                      for (var i = 0, len = source.typeParameters.length; i < len; ++i) {
                          var related = compareTypes(source.typeParameters[i], target.typeParameters[i]);
                          if (!related) {
                              return 0;
                          }
                          result &= related;
                      }
                  }
                  else if (source.typeParameters || target.typeParameters) {
                      return 0;
                  }
                  source = getErasedSignature(source);
                  target = getErasedSignature(target);
                  for (var i = 0, len = source.parameters.length; i < len; i++) {
                      var s = source.hasRestParameter && i === len - 1 ? getRestTypeOfSignature(source) : getTypeOfSymbol(source.parameters[i]);
                      var t = target.hasRestParameter && i === len - 1 ? getRestTypeOfSignature(target) : getTypeOfSymbol(target.parameters[i]);
                      var related = compareTypes(s, t);
                      if (!related) {
                          return 0;
                      }
                      result &= related;
                  }
                  if (compareReturnTypes) {
                      result &= compareTypes(getReturnTypeOfSignature(source), getReturnTypeOfSignature(target));
                  }
                  return result;
              }
              function isSupertypeOfEach(candidate, types) {
                  for (var _i = 0; _i < types.length; _i++) {
                      var type = types[_i];
                      if (candidate !== type && !isTypeSubtypeOf(type, candidate))
                          return false;
                  }
                  return true;
              }
              function getCommonSupertype(types) {
                  return ts.forEach(types, function (t) { return isSupertypeOfEach(t, types) ? t : undefined; });
              }
              function reportNoCommonSupertypeError(types, errorLocation, errorMessageChainHead) {
                  var bestSupertype;
                  var bestSupertypeDownfallType;
                  var bestSupertypeScore = 0;
                  for (var i = 0; i < types.length; i++) {
                      var score = 0;
                      var downfallType = undefined;
                      for (var j = 0; j < types.length; j++) {
                          if (isTypeSubtypeOf(types[j], types[i])) {
                              score++;
                          }
                          else if (!downfallType) {
                              downfallType = types[j];
                          }
                      }
                      ts.Debug.assert(!!downfallType, "If there is no common supertype, each type should have a downfallType");
                      if (score > bestSupertypeScore) {
                          bestSupertype = types[i];
                          bestSupertypeDownfallType = downfallType;
                          bestSupertypeScore = score;
                      }
                      if (bestSupertypeScore === types.length - 1) {
                          break;
                      }
                  }
                  checkTypeSubtypeOf(bestSupertypeDownfallType, bestSupertype, errorLocation, ts.Diagnostics.Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0, errorMessageChainHead);
              }
              function isArrayType(type) {
                  return type.flags & 4096 && type.target === globalArrayType;
              }
              function isArrayLikeType(type) {
                  return !(type.flags & (32 | 64)) && isTypeAssignableTo(type, anyArrayType);
              }
              function isTupleLikeType(type) {
                  return !!getPropertyOfType(type, "0");
              }
              function isTupleType(type) {
                  return (type.flags & 8192) && !!type.elementTypes;
              }
              function getWidenedTypeOfObjectLiteral(type) {
                  var properties = getPropertiesOfObjectType(type);
                  var members = {};
                  ts.forEach(properties, function (p) {
                      var propType = getTypeOfSymbol(p);
                      var widenedType = getWidenedType(propType);
                      if (propType !== widenedType) {
                          var symbol = createSymbol(p.flags | 67108864, p.name);
                          symbol.declarations = p.declarations;
                          symbol.parent = p.parent;
                          symbol.type = widenedType;
                          symbol.target = p;
                          if (p.valueDeclaration)
                              symbol.valueDeclaration = p.valueDeclaration;
                          p = symbol;
                      }
                      members[p.name] = p;
                  });
                  var stringIndexType = getIndexTypeOfType(type, 0);
                  var numberIndexType = getIndexTypeOfType(type, 1);
                  if (stringIndexType)
                      stringIndexType = getWidenedType(stringIndexType);
                  if (numberIndexType)
                      numberIndexType = getWidenedType(numberIndexType);
                  return createAnonymousType(type.symbol, members, emptyArray, emptyArray, stringIndexType, numberIndexType);
              }
              function getWidenedType(type) {
                  if (type.flags & 786432) {
                      if (type.flags & (32 | 64)) {
                          return anyType;
                      }
                      if (type.flags & 131072) {
                          return getWidenedTypeOfObjectLiteral(type);
                      }
                      if (type.flags & 16384) {
                          return getUnionType(ts.map(type.types, getWidenedType));
                      }
                      if (isArrayType(type)) {
                          return createArrayType(getWidenedType(type.typeArguments[0]));
                      }
                  }
                  return type;
              }
              function reportWideningErrorsInType(type) {
                  if (type.flags & 16384) {
                      var errorReported = false;
                      ts.forEach(type.types, function (t) {
                          if (reportWideningErrorsInType(t)) {
                              errorReported = true;
                          }
                      });
                      return errorReported;
                  }
                  if (isArrayType(type)) {
                      return reportWideningErrorsInType(type.typeArguments[0]);
                  }
                  if (type.flags & 131072) {
                      var errorReported = false;
                      ts.forEach(getPropertiesOfObjectType(type), function (p) {
                          var t = getTypeOfSymbol(p);
                          if (t.flags & 262144) {
                              if (!reportWideningErrorsInType(t)) {
                                  error(p.valueDeclaration, ts.Diagnostics.Object_literal_s_property_0_implicitly_has_an_1_type, p.name, typeToString(getWidenedType(t)));
                              }
                              errorReported = true;
                          }
                      });
                      return errorReported;
                  }
                  return false;
              }
              function reportImplicitAnyError(declaration, type) {
                  var typeAsString = typeToString(getWidenedType(type));
                  var diagnostic;
                  switch (declaration.kind) {
                      case 133:
                      case 132:
                          diagnostic = ts.Diagnostics.Member_0_implicitly_has_an_1_type;
                          break;
                      case 130:
                          diagnostic = declaration.dotDotDotToken ?
                              ts.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type :
                              ts.Diagnostics.Parameter_0_implicitly_has_an_1_type;
                          break;
                      case 201:
                      case 135:
                      case 134:
                      case 137:
                      case 138:
                      case 163:
                      case 164:
                          if (!declaration.name) {
                              error(declaration, ts.Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, typeAsString);
                              return;
                          }
                          diagnostic = ts.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type;
                          break;
                      default:
                          diagnostic = ts.Diagnostics.Variable_0_implicitly_has_an_1_type;
                  }
                  error(declaration, diagnostic, ts.declarationNameToString(declaration.name), typeAsString);
              }
              function reportErrorsFromWidening(declaration, type) {
                  if (produceDiagnostics && compilerOptions.noImplicitAny && type.flags & 262144) {
                      if (!reportWideningErrorsInType(type)) {
                          reportImplicitAnyError(declaration, type);
                      }
                  }
              }
              function forEachMatchingParameterType(source, target, callback) {
                  var sourceMax = source.parameters.length;
                  var targetMax = target.parameters.length;
                  var count;
                  if (source.hasRestParameter && target.hasRestParameter) {
                      count = sourceMax > targetMax ? sourceMax : targetMax;
                      sourceMax--;
                      targetMax--;
                  }
                  else if (source.hasRestParameter) {
                      sourceMax--;
                      count = targetMax;
                  }
                  else if (target.hasRestParameter) {
                      targetMax--;
                      count = sourceMax;
                  }
                  else {
                      count = sourceMax < targetMax ? sourceMax : targetMax;
                  }
                  for (var i = 0; i < count; i++) {
                      var s = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source);
                      var t = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target);
                      callback(s, t);
                  }
              }
              function createInferenceContext(typeParameters, inferUnionTypes) {
                  var inferences = [];
                  for (var _i = 0; _i < typeParameters.length; _i++) {
                      var unused = typeParameters[_i];
                      inferences.push({ primary: undefined, secondary: undefined, isFixed: false });
                  }
                  return {
                      typeParameters: typeParameters,
                      inferUnionTypes: inferUnionTypes,
                      inferences: inferences,
                      inferredTypes: new Array(typeParameters.length)
                  };
              }
              function inferTypes(context, source, target) {
                  var sourceStack;
                  var targetStack;
                  var depth = 0;
                  var inferiority = 0;
                  inferFromTypes(source, target);
                  function isInProcess(source, target) {
                      for (var i = 0; i < depth; i++) {
                          if (source === sourceStack[i] && target === targetStack[i]) {
                              return true;
                          }
                      }
                      return false;
                  }
                  function isWithinDepthLimit(type, stack) {
                      if (depth >= 5) {
                          var target_2 = type.target;
                          var count = 0;
                          for (var i = 0; i < depth; i++) {
                              var t = stack[i];
                              if (t.flags & 4096 && t.target === target_2) {
                                  count++;
                              }
                          }
                          return count < 5;
                      }
                      return true;
                  }
                  function inferFromTypes(source, target) {
                      if (source === anyFunctionType) {
                          return;
                      }
                      if (target.flags & 512) {
                          var typeParameters = context.typeParameters;
                          for (var i = 0; i < typeParameters.length; i++) {
                              if (target === typeParameters[i]) {
                                  var inferences = context.inferences[i];
                                  if (!inferences.isFixed) {
                                      var candidates = inferiority ?
                                          inferences.secondary || (inferences.secondary = []) :
                                          inferences.primary || (inferences.primary = []);
                                      if (!ts.contains(candidates, source)) {
                                          candidates.push(source);
                                      }
                                  }
                                  return;
                              }
                          }
                      }
                      else if (source.flags & 4096 && target.flags & 4096 && source.target === target.target) {
                          var sourceTypes = source.typeArguments;
                          var targetTypes = target.typeArguments;
                          for (var i = 0; i < sourceTypes.length; i++) {
                              inferFromTypes(sourceTypes[i], targetTypes[i]);
                          }
                      }
                      else if (target.flags & 16384) {
                          var targetTypes = target.types;
                          var typeParameterCount = 0;
                          var typeParameter;
                          for (var _i = 0; _i < targetTypes.length; _i++) {
                              var t = targetTypes[_i];
                              if (t.flags & 512 && ts.contains(context.typeParameters, t)) {
                                  typeParameter = t;
                                  typeParameterCount++;
                              }
                              else {
                                  inferFromTypes(source, t);
                              }
                          }
                          if (typeParameterCount === 1) {
                              inferiority++;
                              inferFromTypes(source, typeParameter);
                              inferiority--;
                          }
                      }
                      else if (source.flags & 16384) {
                          var sourceTypes = source.types;
                          for (var _a = 0; _a < sourceTypes.length; _a++) {
                              var sourceType = sourceTypes[_a];
                              inferFromTypes(sourceType, target);
                          }
                      }
                      else if (source.flags & 48128 && (target.flags & (4096 | 8192) ||
                          (target.flags & 32768) && target.symbol && target.symbol.flags & (8192 | 2048))) {
                          if (!isInProcess(source, target) && isWithinDepthLimit(source, sourceStack) && isWithinDepthLimit(target, targetStack)) {
                              if (depth === 0) {
                                  sourceStack = [];
                                  targetStack = [];
                              }
                              sourceStack[depth] = source;
                              targetStack[depth] = target;
                              depth++;
                              inferFromProperties(source, target);
                              inferFromSignatures(source, target, 0);
                              inferFromSignatures(source, target, 1);
                              inferFromIndexTypes(source, target, 0, 0);
                              inferFromIndexTypes(source, target, 1, 1);
                              inferFromIndexTypes(source, target, 0, 1);
                              depth--;
                          }
                      }
                  }
                  function inferFromProperties(source, target) {
                      var properties = getPropertiesOfObjectType(target);
                      for (var _i = 0; _i < properties.length; _i++) {
                          var targetProp = properties[_i];
                          var sourceProp = getPropertyOfObjectType(source, targetProp.name);
                          if (sourceProp) {
                              inferFromTypes(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp));
                          }
                      }
                  }
                  function inferFromSignatures(source, target, kind) {
                      var sourceSignatures = getSignaturesOfType(source, kind);
                      var targetSignatures = getSignaturesOfType(target, kind);
                      var sourceLen = sourceSignatures.length;
                      var targetLen = targetSignatures.length;
                      var len = sourceLen < targetLen ? sourceLen : targetLen;
                      for (var i = 0; i < len; i++) {
                          inferFromSignature(getErasedSignature(sourceSignatures[sourceLen - len + i]), getErasedSignature(targetSignatures[targetLen - len + i]));
                      }
                  }
                  function inferFromSignature(source, target) {
                      forEachMatchingParameterType(source, target, inferFromTypes);
                      inferFromTypes(getReturnTypeOfSignature(source), getReturnTypeOfSignature(target));
                  }
                  function inferFromIndexTypes(source, target, sourceKind, targetKind) {
                      var targetIndexType = getIndexTypeOfType(target, targetKind);
                      if (targetIndexType) {
                          var sourceIndexType = getIndexTypeOfType(source, sourceKind);
                          if (sourceIndexType) {
                              inferFromTypes(sourceIndexType, targetIndexType);
                          }
                      }
                  }
              }
              function getInferenceCandidates(context, index) {
                  var inferences = context.inferences[index];
                  return inferences.primary || inferences.secondary || emptyArray;
              }
              function getInferredType(context, index) {
                  var inferredType = context.inferredTypes[index];
                  var inferenceSucceeded;
                  if (!inferredType) {
                      var inferences = getInferenceCandidates(context, index);
                      if (inferences.length) {
                          var unionOrSuperType = context.inferUnionTypes ? getUnionType(inferences) : getCommonSupertype(inferences);
                          inferredType = unionOrSuperType ? getWidenedType(unionOrSuperType) : unknownType;
                          inferenceSucceeded = !!unionOrSuperType;
                      }
                      else {
                          inferredType = emptyObjectType;
                          inferenceSucceeded = true;
                      }
                      if (inferenceSucceeded) {
                          var constraint = getConstraintOfTypeParameter(context.typeParameters[index]);
                          inferredType = constraint && !isTypeAssignableTo(inferredType, constraint) ? constraint : inferredType;
                      }
                      else if (context.failedTypeParameterIndex === undefined || context.failedTypeParameterIndex > index) {
                          context.failedTypeParameterIndex = index;
                      }
                      context.inferredTypes[index] = inferredType;
                  }
                  return inferredType;
              }
              function getInferredTypes(context) {
                  for (var i = 0; i < context.inferredTypes.length; i++) {
                      getInferredType(context, i);
                  }
                  return context.inferredTypes;
              }
              function hasAncestor(node, kind) {
                  return ts.getAncestor(node, kind) !== undefined;
              }
              function getResolvedSymbol(node) {
                  var links = getNodeLinks(node);
                  if (!links.resolvedSymbol) {
                      links.resolvedSymbol = (!ts.nodeIsMissing(node) && resolveName(node, node.text, 107455 | 1048576, ts.Diagnostics.Cannot_find_name_0, node)) || unknownSymbol;
                  }
                  return links.resolvedSymbol;
              }
              function isInTypeQuery(node) {
                  while (node) {
                      switch (node.kind) {
                          case 145:
                              return true;
                          case 65:
                          case 127:
                              node = node.parent;
                              continue;
                          default:
                              return false;
                      }
                  }
                  ts.Debug.fail("should not get here");
              }
              function removeTypesFromUnionType(type, typeKind, isOfTypeKind, allowEmptyUnionResult) {
                  if (type.flags & 16384) {
                      var types = type.types;
                      if (ts.forEach(types, function (t) { return !!(t.flags & typeKind) === isOfTypeKind; })) {
                          var narrowedType = getUnionType(ts.filter(types, function (t) { return !(t.flags & typeKind) === isOfTypeKind; }));
                          if (allowEmptyUnionResult || narrowedType !== emptyObjectType) {
                              return narrowedType;
                          }
                      }
                  }
                  else if (allowEmptyUnionResult && !!(type.flags & typeKind) === isOfTypeKind) {
                      return getUnionType(emptyArray);
                  }
                  return type;
              }
              function hasInitializer(node) {
                  return !!(node.initializer || ts.isBindingPattern(node.parent) && hasInitializer(node.parent.parent));
              }
              function isVariableAssignedWithin(symbol, node) {
                  var links = getNodeLinks(node);
                  if (links.assignmentChecks) {
                      var cachedResult = links.assignmentChecks[symbol.id];
                      if (cachedResult !== undefined) {
                          return cachedResult;
                      }
                  }
                  else {
                      links.assignmentChecks = {};
                  }
                  return links.assignmentChecks[symbol.id] = isAssignedIn(node);
                  function isAssignedInBinaryExpression(node) {
                      if (node.operatorToken.kind >= 53 && node.operatorToken.kind <= 64) {
                          var n = node.left;
                          while (n.kind === 162) {
                              n = n.expression;
                          }
                          if (n.kind === 65 && getResolvedSymbol(n) === symbol) {
                              return true;
                          }
                      }
                      return ts.forEachChild(node, isAssignedIn);
                  }
                  function isAssignedInVariableDeclaration(node) {
                      if (!ts.isBindingPattern(node.name) && getSymbolOfNode(node) === symbol && hasInitializer(node)) {
                          return true;
                      }
                      return ts.forEachChild(node, isAssignedIn);
                  }
                  function isAssignedIn(node) {
                      switch (node.kind) {
                          case 170:
                              return isAssignedInBinaryExpression(node);
                          case 199:
                          case 153:
                              return isAssignedInVariableDeclaration(node);
                          case 151:
                          case 152:
                          case 154:
                          case 155:
                          case 156:
                          case 157:
                          case 158:
                          case 159:
                          case 161:
                          case 162:
                          case 168:
                          case 165:
                          case 166:
                          case 167:
                          case 169:
                          case 171:
                          case 174:
                          case 180:
                          case 181:
                          case 183:
                          case 184:
                          case 185:
                          case 186:
                          case 187:
                          case 188:
                          case 189:
                          case 192:
                          case 193:
                          case 194:
                          case 221:
                          case 222:
                          case 195:
                          case 196:
                          case 197:
                          case 224:
                              return ts.forEachChild(node, isAssignedIn);
                      }
                      return false;
                  }
              }
              function resolveLocation(node) {
                  var containerNodes = [];
                  for (var parent_3 = node.parent; parent_3; parent_3 = parent_3.parent) {
                      if ((ts.isExpression(parent_3) || ts.isObjectLiteralMethod(node)) &&
                          isContextSensitive(parent_3)) {
                          containerNodes.unshift(parent_3);
                      }
                  }
                  ts.forEach(containerNodes, function (node) { getTypeOfNode(node); });
              }
              function getSymbolAtLocation(node) {
                  resolveLocation(node);
                  return getSymbolInfo(node);
              }
              function getTypeAtLocation(node) {
                  resolveLocation(node);
                  return getTypeOfNode(node);
              }
              function getTypeOfSymbolAtLocation(symbol, node) {
                  resolveLocation(node);
                  return getNarrowedTypeOfSymbol(symbol, node);
              }
              function getNarrowedTypeOfSymbol(symbol, node) {
                  var type = getTypeOfSymbol(symbol);
                  if (node && symbol.flags & 3 && type.flags & (1 | 48128 | 16384 | 512)) {
                      loop: while (node.parent) {
                          var child = node;
                          node = node.parent;
                          var narrowedType = type;
                          switch (node.kind) {
                              case 184:
                                  if (child !== node.expression) {
                                      narrowedType = narrowType(type, node.expression, child === node.thenStatement);
                                  }
                                  break;
                              case 171:
                                  if (child !== node.condition) {
                                      narrowedType = narrowType(type, node.condition, child === node.whenTrue);
                                  }
                                  break;
                              case 170:
                                  if (child === node.right) {
                                      if (node.operatorToken.kind === 48) {
                                          narrowedType = narrowType(type, node.left, true);
                                      }
                                      else if (node.operatorToken.kind === 49) {
                                          narrowedType = narrowType(type, node.left, false);
                                      }
                                  }
                                  break;
                              case 228:
                              case 206:
                              case 201:
                              case 135:
                              case 134:
                              case 137:
                              case 138:
                              case 136:
                                  break loop;
                          }
                          if (narrowedType !== type) {
                              if (isVariableAssignedWithin(symbol, node)) {
                                  break;
                              }
                              type = narrowedType;
                          }
                      }
                  }
                  return type;
                  function narrowTypeByEquality(type, expr, assumeTrue) {
                      if (expr.left.kind !== 166 || expr.right.kind !== 8) {
                          return type;
                      }
                      var left = expr.left;
                      var right = expr.right;
                      if (left.expression.kind !== 65 || getResolvedSymbol(left.expression) !== symbol) {
                          return type;
                      }
                      var typeInfo = primitiveTypeInfo[right.text];
                      if (expr.operatorToken.kind === 31) {
                          assumeTrue = !assumeTrue;
                      }
                      if (assumeTrue) {
                          if (!typeInfo) {
                              return removeTypesFromUnionType(type, 258 | 132 | 8 | 1048576, true, false);
                          }
                          if (isTypeSubtypeOf(typeInfo.type, type)) {
                              return typeInfo.type;
                          }
                          return removeTypesFromUnionType(type, typeInfo.flags, false, false);
                      }
                      else {
                          if (typeInfo) {
                              return removeTypesFromUnionType(type, typeInfo.flags, true, false);
                          }
                          return type;
                      }
                  }
                  function narrowTypeByAnd(type, expr, assumeTrue) {
                      if (assumeTrue) {
                          return narrowType(narrowType(type, expr.left, true), expr.right, true);
                      }
                      else {
                          return getUnionType([
                              narrowType(type, expr.left, false),
                              narrowType(narrowType(type, expr.left, true), expr.right, false)
                          ]);
                      }
                  }
                  function narrowTypeByOr(type, expr, assumeTrue) {
                      if (assumeTrue) {
                          return getUnionType([
                              narrowType(type, expr.left, true),
                              narrowType(narrowType(type, expr.left, false), expr.right, true)
                          ]);
                      }
                      else {
                          return narrowType(narrowType(type, expr.left, false), expr.right, false);
                      }
                  }
                  function narrowTypeByInstanceof(type, expr, assumeTrue) {
                      if (type.flags & 1 || !assumeTrue || expr.left.kind !== 65 || getResolvedSymbol(expr.left) !== symbol) {
                          return type;
                      }
                      var rightType = checkExpression(expr.right);
                      if (!isTypeSubtypeOf(rightType, globalFunctionType)) {
                          return type;
                      }
                      var targetType;
                      var prototypeProperty = getPropertyOfType(rightType, "prototype");
                      if (prototypeProperty) {
                          var prototypePropertyType = getTypeOfSymbol(prototypeProperty);
                          if (prototypePropertyType !== anyType) {
                              targetType = prototypePropertyType;
                          }
                      }
                      if (!targetType) {
                          var constructSignatures;
                          if (rightType.flags & 2048) {
                              constructSignatures = resolveDeclaredMembers(rightType).declaredConstructSignatures;
                          }
                          else if (rightType.flags & 32768) {
                              constructSignatures = getSignaturesOfType(rightType, 1);
                          }
                          if (constructSignatures && constructSignatures.length) {
                              targetType = getUnionType(ts.map(constructSignatures, function (signature) { return getReturnTypeOfSignature(getErasedSignature(signature)); }));
                          }
                      }
                      if (targetType) {
                          if (isTypeSubtypeOf(targetType, type)) {
                              return targetType;
                          }
                          if (type.flags & 16384) {
                              return getUnionType(ts.filter(type.types, function (t) { return isTypeSubtypeOf(t, targetType); }));
                          }
                      }
                      return type;
                  }
                  function narrowType(type, expr, assumeTrue) {
                      switch (expr.kind) {
                          case 162:
                              return narrowType(type, expr.expression, assumeTrue);
                          case 170:
                              var operator = expr.operatorToken.kind;
                              if (operator === 30 || operator === 31) {
                                  return narrowTypeByEquality(type, expr, assumeTrue);
                              }
                              else if (operator === 48) {
                                  return narrowTypeByAnd(type, expr, assumeTrue);
                              }
                              else if (operator === 49) {
                                  return narrowTypeByOr(type, expr, assumeTrue);
                              }
                              else if (operator === 87) {
                                  return narrowTypeByInstanceof(type, expr, assumeTrue);
                              }
                              break;
                          case 168:
                              if (expr.operator === 46) {
                                  return narrowType(type, expr.operand, !assumeTrue);
                              }
                              break;
                      }
                      return type;
                  }
              }
              function checkIdentifier(node) {
                  var symbol = getResolvedSymbol(node);
                  if (symbol === argumentsSymbol && ts.getContainingFunction(node).kind === 164 && languageVersion < 2) {
                      error(node, ts.Diagnostics.The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_standard_function_expression);
                  }
                  if (symbol.flags & 8388608 && !isInTypeQuery(node) && !isConstEnumOrConstEnumOnlyModule(resolveAlias(symbol))) {
                      markAliasSymbolAsReferenced(symbol);
                  }
                  checkCollisionWithCapturedSuperVariable(node, node);
                  checkCollisionWithCapturedThisVariable(node, node);
                  checkBlockScopedBindingCapturedInLoop(node, symbol);
                  return getNarrowedTypeOfSymbol(getExportSymbolOfValueSymbolIfExported(symbol), node);
              }
              function isInsideFunction(node, threshold) {
                  var current = node;
                  while (current && current !== threshold) {
                      if (ts.isFunctionLike(current)) {
                          return true;
                      }
                      current = current.parent;
                  }
                  return false;
              }
              function checkBlockScopedBindingCapturedInLoop(node, symbol) {
                  if (languageVersion >= 2 ||
                      (symbol.flags & 2) === 0 ||
                      symbol.valueDeclaration.parent.kind === 224) {
                      return;
                  }
                  var container = symbol.valueDeclaration;
                  while (container.kind !== 200) {
                      container = container.parent;
                  }
                  container = container.parent;
                  if (container.kind === 181) {
                      container = container.parent;
                  }
                  var inFunction = isInsideFunction(node.parent, container);
                  var current = container;
                  while (current && !ts.nodeStartsNewLexicalEnvironment(current)) {
                      if (isIterationStatement(current, false)) {
                          if (inFunction) {
                              grammarErrorOnFirstToken(current, ts.Diagnostics.Loop_contains_block_scoped_variable_0_referenced_by_a_function_in_the_loop_This_is_only_supported_in_ECMAScript_6_or_higher, ts.declarationNameToString(node));
                          }
                          getNodeLinks(symbol.valueDeclaration).flags |= 256;
                          break;
                      }
                      current = current.parent;
                  }
              }
              function captureLexicalThis(node, container) {
                  var classNode = container.parent && container.parent.kind === 202 ? container.parent : undefined;
                  getNodeLinks(node).flags |= 2;
                  if (container.kind === 133 || container.kind === 136) {
                      getNodeLinks(classNode).flags |= 4;
                  }
                  else {
                      getNodeLinks(container).flags |= 4;
                  }
              }
              function checkThisExpression(node) {
                  var container = ts.getThisContainer(node, true);
                  var needToCaptureLexicalThis = false;
                  if (container.kind === 164) {
                      container = ts.getThisContainer(container, false);
                      needToCaptureLexicalThis = (languageVersion < 2);
                  }
                  switch (container.kind) {
                      case 206:
                          error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_module_or_namespace_body);
                          break;
                      case 205:
                          error(node, ts.Diagnostics.this_cannot_be_referenced_in_current_location);
                          break;
                      case 136:
                          if (isInConstructorArgumentInitializer(node, container)) {
                              error(node, ts.Diagnostics.this_cannot_be_referenced_in_constructor_arguments);
                          }
                          break;
                      case 133:
                      case 132:
                          if (container.flags & 128) {
                              error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_static_property_initializer);
                          }
                          break;
                      case 128:
                          error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_computed_property_name);
                          break;
                  }
                  if (needToCaptureLexicalThis) {
                      captureLexicalThis(node, container);
                  }
                  var classNode = container.parent && container.parent.kind === 202 ? container.parent : undefined;
                  if (classNode) {
                      var symbol = getSymbolOfNode(classNode);
                      return container.flags & 128 ? getTypeOfSymbol(symbol) : getDeclaredTypeOfSymbol(symbol);
                  }
                  return anyType;
              }
              function isInConstructorArgumentInitializer(node, constructorDecl) {
                  for (var n = node; n && n !== constructorDecl; n = n.parent) {
                      if (n.kind === 130) {
                          return true;
                      }
                  }
                  return false;
              }
              function checkSuperExpression(node) {
                  var isCallExpression = node.parent.kind === 158 && node.parent.expression === node;
                  var enclosingClass = ts.getAncestor(node, 202);
                  var baseClass;
                  if (enclosingClass && ts.getClassExtendsHeritageClauseElement(enclosingClass)) {
                      var classType = getDeclaredTypeOfSymbol(getSymbolOfNode(enclosingClass));
                      var baseTypes = getBaseTypes(classType);
                      baseClass = baseTypes.length && baseTypes[0];
                  }
                  if (!baseClass) {
                      error(node, ts.Diagnostics.super_can_only_be_referenced_in_a_derived_class);
                      return unknownType;
                  }
                  var container = ts.getSuperContainer(node, true);
                  if (container) {
                      var canUseSuperExpression = false;
                      var needToCaptureLexicalThis;
                      if (isCallExpression) {
                          canUseSuperExpression = container.kind === 136;
                      }
                      else {
                          needToCaptureLexicalThis = false;
                          while (container && container.kind === 164) {
                              container = ts.getSuperContainer(container, true);
                              needToCaptureLexicalThis = languageVersion < 2;
                          }
                          if (container && container.parent && container.parent.kind === 202) {
                              if (container.flags & 128) {
                                  canUseSuperExpression =
                                      container.kind === 135 ||
                                          container.kind === 134 ||
                                          container.kind === 137 ||
                                          container.kind === 138;
                              }
                              else {
                                  canUseSuperExpression =
                                      container.kind === 135 ||
                                          container.kind === 134 ||
                                          container.kind === 137 ||
                                          container.kind === 138 ||
                                          container.kind === 133 ||
                                          container.kind === 132 ||
                                          container.kind === 136;
                              }
                          }
                      }
                      if (canUseSuperExpression) {
                          var returnType;
                          if ((container.flags & 128) || isCallExpression) {
                              getNodeLinks(node).flags |= 32;
                              returnType = getTypeOfSymbol(baseClass.symbol);
                          }
                          else {
                              getNodeLinks(node).flags |= 16;
                              returnType = baseClass;
                          }
                          if (container.kind === 136 && isInConstructorArgumentInitializer(node, container)) {
                              error(node, ts.Diagnostics.super_cannot_be_referenced_in_constructor_arguments);
                              returnType = unknownType;
                          }
                          if (!isCallExpression && needToCaptureLexicalThis) {
                              captureLexicalThis(node.parent, container);
                          }
                          return returnType;
                      }
                  }
                  if (container && container.kind === 128) {
                      error(node, ts.Diagnostics.super_cannot_be_referenced_in_a_computed_property_name);
                  }
                  else if (isCallExpression) {
                      error(node, ts.Diagnostics.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors);
                  }
                  else {
                      error(node, ts.Diagnostics.super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class);
                  }
                  return unknownType;
              }
              function getContextuallyTypedParameterType(parameter) {
                  if (isFunctionExpressionOrArrowFunction(parameter.parent)) {
                      var func = parameter.parent;
                      if (isContextSensitive(func)) {
                          var contextualSignature = getContextualSignature(func);
                          if (contextualSignature) {
                              var funcHasRestParameters = ts.hasRestParameters(func);
                              var len = func.parameters.length - (funcHasRestParameters ? 1 : 0);
                              var indexOfParameter = ts.indexOf(func.parameters, parameter);
                              if (indexOfParameter < len) {
                                  return getTypeAtPosition(contextualSignature, indexOfParameter);
                              }
                              if (indexOfParameter === (func.parameters.length - 1) &&
                                  funcHasRestParameters && contextualSignature.hasRestParameter && func.parameters.length >= contextualSignature.parameters.length) {
                                  return getTypeOfSymbol(ts.lastOrUndefined(contextualSignature.parameters));
                              }
                          }
                      }
                  }
                  return undefined;
              }
              function getContextualTypeForInitializerExpression(node) {
                  var declaration = node.parent;
                  if (node === declaration.initializer) {
                      if (declaration.type) {
                          return getTypeFromTypeNode(declaration.type);
                      }
                      if (declaration.kind === 130) {
                          var type = getContextuallyTypedParameterType(declaration);
                          if (type) {
                              return type;
                          }
                      }
                      if (ts.isBindingPattern(declaration.name)) {
                          return getTypeFromBindingPattern(declaration.name);
                      }
                  }
                  return undefined;
              }
              function getContextualTypeForReturnExpression(node) {
                  var func = ts.getContainingFunction(node);
                  if (func) {
                      if (func.type || func.kind === 136 || func.kind === 137 && getSetAccessorTypeAnnotationNode(ts.getDeclarationOfKind(func.symbol, 138))) {
                          return getReturnTypeOfSignature(getSignatureFromDeclaration(func));
                      }
                      var signature = getContextualSignatureForFunctionLikeDeclaration(func);
                      if (signature) {
                          return getReturnTypeOfSignature(signature);
                      }
                  }
                  return undefined;
              }
              function getContextualTypeForArgument(callTarget, arg) {
                  var args = getEffectiveCallArguments(callTarget);
                  var argIndex = ts.indexOf(args, arg);
                  if (argIndex >= 0) {
                      var signature = getResolvedSignature(callTarget);
                      return getTypeAtPosition(signature, argIndex);
                  }
                  return undefined;
              }
              function getContextualTypeForSubstitutionExpression(template, substitutionExpression) {
                  if (template.parent.kind === 160) {
                      return getContextualTypeForArgument(template.parent, substitutionExpression);
                  }
                  return undefined;
              }
              function getContextualTypeForBinaryOperand(node) {
                  var binaryExpression = node.parent;
                  var operator = binaryExpression.operatorToken.kind;
                  if (operator >= 53 && operator <= 64) {
                      if (node === binaryExpression.right) {
                          return checkExpression(binaryExpression.left);
                      }
                  }
                  else if (operator === 49) {
                      var type = getContextualType(binaryExpression);
                      if (!type && node === binaryExpression.right) {
                          type = checkExpression(binaryExpression.left);
                      }
                      return type;
                  }
                  return undefined;
              }
              function applyToContextualType(type, mapper) {
                  if (!(type.flags & 16384)) {
                      return mapper(type);
                  }
                  var types = type.types;
                  var mappedType;
                  var mappedTypes;
                  for (var _i = 0; _i < types.length; _i++) {
                      var current = types[_i];
                      var t = mapper(current);
                      if (t) {
                          if (!mappedType) {
                              mappedType = t;
                          }
                          else if (!mappedTypes) {
                              mappedTypes = [mappedType, t];
                          }
                          else {
                              mappedTypes.push(t);
                          }
                      }
                  }
                  return mappedTypes ? getUnionType(mappedTypes) : mappedType;
              }
              function getTypeOfPropertyOfContextualType(type, name) {
                  return applyToContextualType(type, function (t) {
                      var prop = getPropertyOfObjectType(t, name);
                      return prop ? getTypeOfSymbol(prop) : undefined;
                  });
              }
              function getIndexTypeOfContextualType(type, kind) {
                  return applyToContextualType(type, function (t) { return getIndexTypeOfObjectOrUnionType(t, kind); });
              }
              function contextualTypeIsTupleLikeType(type) {
                  return !!(type.flags & 16384 ? ts.forEach(type.types, isTupleLikeType) : isTupleLikeType(type));
              }
              function contextualTypeHasIndexSignature(type, kind) {
                  return !!(type.flags & 16384 ? ts.forEach(type.types, function (t) { return getIndexTypeOfObjectOrUnionType(t, kind); }) : getIndexTypeOfObjectOrUnionType(type, kind));
              }
              function getContextualTypeForObjectLiteralMethod(node) {
                  ts.Debug.assert(ts.isObjectLiteralMethod(node));
                  if (isInsideWithStatementBody(node)) {
                      return undefined;
                  }
                  return getContextualTypeForObjectLiteralElement(node);
              }
              function getContextualTypeForObjectLiteralElement(element) {
                  var objectLiteral = element.parent;
                  var type = getContextualType(objectLiteral);
                  if (type) {
                      if (!ts.hasDynamicName(element)) {
                          var symbolName = getSymbolOfNode(element).name;
                          var propertyType = getTypeOfPropertyOfContextualType(type, symbolName);
                          if (propertyType) {
                              return propertyType;
                          }
                      }
                      return isNumericName(element.name) && getIndexTypeOfContextualType(type, 1) ||
                          getIndexTypeOfContextualType(type, 0);
                  }
                  return undefined;
              }
              function getContextualTypeForElementExpression(node) {
                  var arrayLiteral = node.parent;
                  var type = getContextualType(arrayLiteral);
                  if (type) {
                      var index = ts.indexOf(arrayLiteral.elements, node);
                      return getTypeOfPropertyOfContextualType(type, "" + index)
                          || getIndexTypeOfContextualType(type, 1)
                          || (languageVersion >= 2 ? checkIteratedType(type, undefined) : undefined);
                  }
                  return undefined;
              }
              function getContextualTypeForConditionalOperand(node) {
                  var conditional = node.parent;
                  return node === conditional.whenTrue || node === conditional.whenFalse ? getContextualType(conditional) : undefined;
              }
              function getContextualType(node) {
                  if (isInsideWithStatementBody(node)) {
                      return undefined;
                  }
                  if (node.contextualType) {
                      return node.contextualType;
                  }
                  var parent = node.parent;
                  switch (parent.kind) {
                      case 199:
                      case 130:
                      case 133:
                      case 132:
                      case 153:
                          return getContextualTypeForInitializerExpression(node);
                      case 164:
                      case 192:
                          return getContextualTypeForReturnExpression(node);
                      case 158:
                      case 159:
                          return getContextualTypeForArgument(parent, node);
                      case 161:
                          return getTypeFromTypeNode(parent.type);
                      case 170:
                          return getContextualTypeForBinaryOperand(node);
                      case 225:
                          return getContextualTypeForObjectLiteralElement(parent);
                      case 154:
                          return getContextualTypeForElementExpression(node);
                      case 171:
                          return getContextualTypeForConditionalOperand(node);
                      case 178:
                          ts.Debug.assert(parent.parent.kind === 172);
                          return getContextualTypeForSubstitutionExpression(parent.parent, node);
                      case 162:
                          return getContextualType(parent);
                  }
                  return undefined;
              }
              function getNonGenericSignature(type) {
                  var signatures = getSignaturesOfObjectOrUnionType(type, 0);
                  if (signatures.length === 1) {
                      var signature = signatures[0];
                      if (!signature.typeParameters) {
                          return signature;
                      }
                  }
              }
              function isFunctionExpressionOrArrowFunction(node) {
                  return node.kind === 163 || node.kind === 164;
              }
              function getContextualSignatureForFunctionLikeDeclaration(node) {
                  return isFunctionExpressionOrArrowFunction(node) ? getContextualSignature(node) : undefined;
              }
              function getContextualSignature(node) {
                  ts.Debug.assert(node.kind !== 135 || ts.isObjectLiteralMethod(node));
                  var type = ts.isObjectLiteralMethod(node)
                      ? getContextualTypeForObjectLiteralMethod(node)
                      : getContextualType(node);
                  if (!type) {
                      return undefined;
                  }
                  if (!(type.flags & 16384)) {
                      return getNonGenericSignature(type);
                  }
                  var signatureList;
                  var types = type.types;
                  for (var _i = 0; _i < types.length; _i++) {
                      var current = types[_i];
                      if (signatureList &&
                          getSignaturesOfObjectOrUnionType(current, 0).length > 1) {
                          return undefined;
                      }
                      var signature = getNonGenericSignature(current);
                      if (signature) {
                          if (!signatureList) {
                              signatureList = [signature];
                          }
                          else if (!compareSignatures(signatureList[0], signature, false, compareTypes)) {
                              return undefined;
                          }
                          else {
                              signatureList.push(signature);
                          }
                      }
                  }
                  var result;
                  if (signatureList) {
                      result = cloneSignature(signatureList[0]);
                      result.resolvedReturnType = undefined;
                      result.unionSignatures = signatureList;
                  }
                  return result;
              }
              function isInferentialContext(mapper) {
                  return mapper && mapper !== identityMapper;
              }
              function isAssignmentTarget(node) {
                  var parent = node.parent;
                  if (parent.kind === 170 && parent.operatorToken.kind === 53 && parent.left === node) {
                      return true;
                  }
                  if (parent.kind === 225) {
                      return isAssignmentTarget(parent.parent);
                  }
                  if (parent.kind === 154) {
                      return isAssignmentTarget(parent);
                  }
                  return false;
              }
              function checkSpreadElementExpression(node, contextualMapper) {
                  var arrayOrIterableType = checkExpressionCached(node.expression, contextualMapper);
                  return checkIteratedTypeOrElementType(arrayOrIterableType, node.expression, false);
              }
              function checkArrayLiteral(node, contextualMapper) {
                  var elements = node.elements;
                  if (!elements.length) {
                      return createArrayType(undefinedType);
                  }
                  var hasSpreadElement = false;
                  var elementTypes = [];
                  var inDestructuringPattern = isAssignmentTarget(node);
                  for (var _i = 0; _i < elements.length; _i++) {
                      var e = elements[_i];
                      if (inDestructuringPattern && e.kind === 174) {
                          var restArrayType = checkExpression(e.expression, contextualMapper);
                          var restElementType = getIndexTypeOfType(restArrayType, 1) ||
                              (languageVersion >= 2 ? checkIteratedType(restArrayType, undefined) : undefined);
                          if (restElementType) {
                              elementTypes.push(restElementType);
                          }
                      }
                      else {
                          var type = checkExpression(e, contextualMapper);
                          elementTypes.push(type);
                      }
                      hasSpreadElement = hasSpreadElement || e.kind === 174;
                  }
                  if (!hasSpreadElement) {
                      var contextualType = getContextualType(node);
                      if (contextualType && contextualTypeIsTupleLikeType(contextualType) || inDestructuringPattern) {
                          return createTupleType(elementTypes);
                      }
                  }
                  return createArrayType(getUnionType(elementTypes));
              }
              function isNumericName(name) {
                  return name.kind === 128 ? isNumericComputedName(name) : isNumericLiteralName(name.text);
              }
              function isNumericComputedName(name) {
                  return allConstituentTypesHaveKind(checkComputedPropertyName(name), 1 | 132);
              }
              function isNumericLiteralName(name) {
                  return (+name).toString() === name;
              }
              function checkComputedPropertyName(node) {
                  var links = getNodeLinks(node.expression);
                  if (!links.resolvedType) {
                      links.resolvedType = checkExpression(node.expression);
                      if (!allConstituentTypesHaveKind(links.resolvedType, 1 | 132 | 258 | 1048576)) {
                          error(node, ts.Diagnostics.A_computed_property_name_must_be_of_type_string_number_symbol_or_any);
                      }
                      else {
                          checkThatExpressionIsProperSymbolReference(node.expression, links.resolvedType, true);
                      }
                  }
                  return links.resolvedType;
              }
              function checkObjectLiteral(node, contextualMapper) {
                  checkGrammarObjectLiteralExpression(node);
                  var propertiesTable = {};
                  var propertiesArray = [];
                  var contextualType = getContextualType(node);
                  var typeFlags;
                  for (var _i = 0, _a = node.properties; _i < _a.length; _i++) {
                      var memberDecl = _a[_i];
                      var member = memberDecl.symbol;
                      if (memberDecl.kind === 225 ||
                          memberDecl.kind === 226 ||
                          ts.isObjectLiteralMethod(memberDecl)) {
                          var type = void 0;
                          if (memberDecl.kind === 225) {
                              type = checkPropertyAssignment(memberDecl, contextualMapper);
                          }
                          else if (memberDecl.kind === 135) {
                              type = checkObjectLiteralMethod(memberDecl, contextualMapper);
                          }
                          else {
                              ts.Debug.assert(memberDecl.kind === 226);
                              type = checkExpression(memberDecl.name, contextualMapper);
                          }
                          typeFlags |= type.flags;
                          var prop = createSymbol(4 | 67108864 | member.flags, member.name);
                          prop.declarations = member.declarations;
                          prop.parent = member.parent;
                          if (member.valueDeclaration) {
                              prop.valueDeclaration = member.valueDeclaration;
                          }
                          prop.type = type;
                          prop.target = member;
                          member = prop;
                      }
                      else {
                          ts.Debug.assert(memberDecl.kind === 137 || memberDecl.kind === 138);
                          checkAccessorDeclaration(memberDecl);
                      }
                      if (!ts.hasDynamicName(memberDecl)) {
                          propertiesTable[member.name] = member;
                      }
                      propertiesArray.push(member);
                  }
                  var stringIndexType = getIndexType(0);
                  var numberIndexType = getIndexType(1);
                  var result = createAnonymousType(node.symbol, propertiesTable, emptyArray, emptyArray, stringIndexType, numberIndexType);
                  result.flags |= 131072 | 524288 | (typeFlags & 262144);
                  return result;
                  function getIndexType(kind) {
                      if (contextualType && contextualTypeHasIndexSignature(contextualType, kind)) {
                          var propTypes = [];
                          for (var i = 0; i < propertiesArray.length; i++) {
                              var propertyDecl = node.properties[i];
                              if (kind === 0 || isNumericName(propertyDecl.name)) {
                                  var type = getTypeOfSymbol(propertiesArray[i]);
                                  if (!ts.contains(propTypes, type)) {
                                      propTypes.push(type);
                                  }
                              }
                          }
                          var result_1 = propTypes.length ? getUnionType(propTypes) : undefinedType;
                          typeFlags |= result_1.flags;
                          return result_1;
                      }
                      return undefined;
                  }
              }
              function getDeclarationKindFromSymbol(s) {
                  return s.valueDeclaration ? s.valueDeclaration.kind : 133;
              }
              function getDeclarationFlagsFromSymbol(s) {
                  return s.valueDeclaration ? ts.getCombinedNodeFlags(s.valueDeclaration) : s.flags & 134217728 ? 16 | 128 : 0;
              }
              function checkClassPropertyAccess(node, left, type, prop) {
                  var flags = getDeclarationFlagsFromSymbol(prop);
                  if (!(flags & (32 | 64))) {
                      return;
                  }
                  var enclosingClassDeclaration = ts.getAncestor(node, 202);
                  var enclosingClass = enclosingClassDeclaration ? getDeclaredTypeOfSymbol(getSymbolOfNode(enclosingClassDeclaration)) : undefined;
                  var declaringClass = getDeclaredTypeOfSymbol(prop.parent);
                  if (flags & 32) {
                      if (declaringClass !== enclosingClass) {
                          error(node, ts.Diagnostics.Property_0_is_private_and_only_accessible_within_class_1, symbolToString(prop), typeToString(declaringClass));
                      }
                      return;
                  }
                  if (left.kind === 91) {
                      return;
                  }
                  if (!enclosingClass || !hasBaseType(enclosingClass, declaringClass)) {
                      error(node, ts.Diagnostics.Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses, symbolToString(prop), typeToString(declaringClass));
                      return;
                  }
                  if (flags & 128) {
                      return;
                  }
                  if (!(getTargetType(type).flags & (1024 | 2048) && hasBaseType(type, enclosingClass))) {
                      error(node, ts.Diagnostics.Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1, symbolToString(prop), typeToString(enclosingClass));
                  }
              }
              function checkPropertyAccessExpression(node) {
                  return checkPropertyAccessExpressionOrQualifiedName(node, node.expression, node.name);
              }
              function checkQualifiedName(node) {
                  return checkPropertyAccessExpressionOrQualifiedName(node, node.left, node.right);
              }
              function checkPropertyAccessExpressionOrQualifiedName(node, left, right) {
                  var type = checkExpressionOrQualifiedName(left);
                  if (type === unknownType)
                      return type;
                  if (type !== anyType) {
                      var apparentType = getApparentType(getWidenedType(type));
                      if (apparentType === unknownType) {
                          return unknownType;
                      }
                      var prop = getPropertyOfType(apparentType, right.text);
                      if (!prop) {
                          if (right.text) {
                              error(right, ts.Diagnostics.Property_0_does_not_exist_on_type_1, ts.declarationNameToString(right), typeToString(type));
                          }
                          return unknownType;
                      }
                      getNodeLinks(node).resolvedSymbol = prop;
                      if (prop.parent && prop.parent.flags & 32) {
                          if (left.kind === 91 && getDeclarationKindFromSymbol(prop) !== 135) {
                              error(right, ts.Diagnostics.Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword);
                          }
                          else {
                              checkClassPropertyAccess(node, left, type, prop);
                          }
                      }
                      return getTypeOfSymbol(prop);
                  }
                  return anyType;
              }
              function isValidPropertyAccess(node, propertyName) {
                  var left = node.kind === 156
                      ? node.expression
                      : node.left;
                  var type = checkExpressionOrQualifiedName(left);
                  if (type !== unknownType && type !== anyType) {
                      var prop = getPropertyOfType(getWidenedType(type), propertyName);
                      if (prop && prop.parent && prop.parent.flags & 32) {
                          if (left.kind === 91 && getDeclarationKindFromSymbol(prop) !== 135) {
                              return false;
                          }
                          else {
                              var modificationCount = diagnostics.getModificationCount();
                              checkClassPropertyAccess(node, left, type, prop);
                              return diagnostics.getModificationCount() === modificationCount;
                          }
                      }
                  }
                  return true;
              }
              function checkIndexedAccess(node) {
                  if (!node.argumentExpression) {
                      var sourceFile = getSourceFile(node);
                      if (node.parent.kind === 159 && node.parent.expression === node) {
                          var start = ts.skipTrivia(sourceFile.text, node.expression.end);
                          var end = node.end;
                          grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead);
                      }
                      else {
                          var start = node.end - "]".length;
                          var end = node.end;
                          grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.Expression_expected);
                      }
                  }
                  var objectType = getApparentType(checkExpression(node.expression));
                  var indexType = node.argumentExpression ? checkExpression(node.argumentExpression) : unknownType;
                  if (objectType === unknownType) {
                      return unknownType;
                  }
                  var isConstEnum = isConstEnumObjectType(objectType);
                  if (isConstEnum &&
                      (!node.argumentExpression || node.argumentExpression.kind !== 8)) {
                      error(node.argumentExpression, ts.Diagnostics.A_const_enum_member_can_only_be_accessed_using_a_string_literal);
                      return unknownType;
                  }
                  if (node.argumentExpression) {
                      var name_6 = getPropertyNameForIndexedAccess(node.argumentExpression, indexType);
                      if (name_6 !== undefined) {
                          var prop = getPropertyOfType(objectType, name_6);
                          if (prop) {
                              getNodeLinks(node).resolvedSymbol = prop;
                              return getTypeOfSymbol(prop);
                          }
                          else if (isConstEnum) {
                              error(node.argumentExpression, ts.Diagnostics.Property_0_does_not_exist_on_const_enum_1, name_6, symbolToString(objectType.symbol));
                              return unknownType;
                          }
                      }
                  }
                  if (allConstituentTypesHaveKind(indexType, 1 | 258 | 132 | 1048576)) {
                      if (allConstituentTypesHaveKind(indexType, 1 | 132)) {
                          var numberIndexType = getIndexTypeOfType(objectType, 1);
                          if (numberIndexType) {
                              return numberIndexType;
                          }
                      }
                      var stringIndexType = getIndexTypeOfType(objectType, 0);
                      if (stringIndexType) {
                          return stringIndexType;
                      }
                      if (compilerOptions.noImplicitAny && !compilerOptions.suppressImplicitAnyIndexErrors && objectType !== anyType) {
                          error(node, ts.Diagnostics.Index_signature_of_object_type_implicitly_has_an_any_type);
                      }
                      return anyType;
                  }
                  error(node, ts.Diagnostics.An_index_expression_argument_must_be_of_type_string_number_symbol_or_any);
                  return unknownType;
              }
              function getPropertyNameForIndexedAccess(indexArgumentExpression, indexArgumentType) {
                  if (indexArgumentExpression.kind === 8 || indexArgumentExpression.kind === 7) {
                      return indexArgumentExpression.text;
                  }
                  if (checkThatExpressionIsProperSymbolReference(indexArgumentExpression, indexArgumentType, false)) {
                      var rightHandSideName = indexArgumentExpression.name.text;
                      return ts.getPropertyNameForKnownSymbolName(rightHandSideName);
                  }
                  return undefined;
              }
              function checkThatExpressionIsProperSymbolReference(expression, expressionType, reportError) {
                  if (expressionType === unknownType) {
                      return false;
                  }
                  if (!ts.isWellKnownSymbolSyntactically(expression)) {
                      return false;
                  }
                  if ((expressionType.flags & 1048576) === 0) {
                      if (reportError) {
                          error(expression, ts.Diagnostics.A_computed_property_name_of_the_form_0_must_be_of_type_symbol, ts.getTextOfNode(expression));
                      }
                      return false;
                  }
                  var leftHandSide = expression.expression;
                  var leftHandSideSymbol = getResolvedSymbol(leftHandSide);
                  if (!leftHandSideSymbol) {
                      return false;
                  }
                  var globalESSymbol = getGlobalESSymbolConstructorSymbol();
                  if (!globalESSymbol) {
                      return false;
                  }
                  if (leftHandSideSymbol !== globalESSymbol) {
                      if (reportError) {
                          error(leftHandSide, ts.Diagnostics.Symbol_reference_does_not_refer_to_the_global_Symbol_constructor_object);
                      }
                      return false;
                  }
                  return true;
              }
              function resolveUntypedCall(node) {
                  if (node.kind === 160) {
                      checkExpression(node.template);
                  }
                  else {
                      ts.forEach(node.arguments, function (argument) {
                          checkExpression(argument);
                      });
                  }
                  return anySignature;
              }
              function resolveErrorCall(node) {
                  resolveUntypedCall(node);
                  return unknownSignature;
              }
              function reorderCandidates(signatures, result) {
                  var lastParent;
                  var lastSymbol;
                  var cutoffIndex = 0;
                  var index;
                  var specializedIndex = -1;
                  var spliceIndex;
                  ts.Debug.assert(!result.length);
                  for (var _i = 0; _i < signatures.length; _i++) {
                      var signature = signatures[_i];
                      var symbol = signature.declaration && getSymbolOfNode(signature.declaration);
                      var parent_4 = signature.declaration && signature.declaration.parent;
                      if (!lastSymbol || symbol === lastSymbol) {
                          if (lastParent && parent_4 === lastParent) {
                              index++;
                          }
                          else {
                              lastParent = parent_4;
                              index = cutoffIndex;
                          }
                      }
                      else {
                          index = cutoffIndex = result.length;
                          lastParent = parent_4;
                      }
                      lastSymbol = symbol;
                      if (signature.hasStringLiterals) {
                          specializedIndex++;
                          spliceIndex = specializedIndex;
                          cutoffIndex++;
                      }
                      else {
                          spliceIndex = index;
                      }
                      result.splice(spliceIndex, 0, signature);
                  }
              }
              function getSpreadArgumentIndex(args) {
                  for (var i = 0; i < args.length; i++) {
                      if (args[i].kind === 174) {
                          return i;
                      }
                  }
                  return -1;
              }
              function hasCorrectArity(node, args, signature) {
                  var adjustedArgCount;
                  var typeArguments;
                  var callIsIncomplete;
                  if (node.kind === 160) {
                      var tagExpression = node;
                      adjustedArgCount = args.length;
                      typeArguments = undefined;
                      if (tagExpression.template.kind === 172) {
                          var templateExpression = tagExpression.template;
                          var lastSpan = ts.lastOrUndefined(templateExpression.templateSpans);
                          ts.Debug.assert(lastSpan !== undefined);
                          callIsIncomplete = ts.nodeIsMissing(lastSpan.literal) || !!lastSpan.literal.isUnterminated;
                      }
                      else {
                          var templateLiteral = tagExpression.template;
                          ts.Debug.assert(templateLiteral.kind === 10);
                          callIsIncomplete = !!templateLiteral.isUnterminated;
                      }
                  }
                  else {
                      var callExpression = node;
                      if (!callExpression.arguments) {
                          ts.Debug.assert(callExpression.kind === 159);
                          return signature.minArgumentCount === 0;
                      }
                      adjustedArgCount = callExpression.arguments.hasTrailingComma ? args.length + 1 : args.length;
                      callIsIncomplete = callExpression.arguments.end === callExpression.end;
                      typeArguments = callExpression.typeArguments;
                  }
                  var hasRightNumberOfTypeArgs = !typeArguments ||
                      (signature.typeParameters && typeArguments.length === signature.typeParameters.length);
                  if (!hasRightNumberOfTypeArgs) {
                      return false;
                  }
                  var spreadArgIndex = getSpreadArgumentIndex(args);
                  if (spreadArgIndex >= 0) {
                      return signature.hasRestParameter && spreadArgIndex >= signature.parameters.length - 1;
                  }
                  if (!signature.hasRestParameter && adjustedArgCount > signature.parameters.length) {
                      return false;
                  }
                  var hasEnoughArguments = adjustedArgCount >= signature.minArgumentCount;
                  return callIsIncomplete || hasEnoughArguments;
              }
              function getSingleCallSignature(type) {
                  if (type.flags & 48128) {
                      var resolved = resolveObjectOrUnionTypeMembers(type);
                      if (resolved.callSignatures.length === 1 && resolved.constructSignatures.length === 0 &&
                          resolved.properties.length === 0 && !resolved.stringIndexType && !resolved.numberIndexType) {
                          return resolved.callSignatures[0];
                      }
                  }
                  return undefined;
              }
              function instantiateSignatureInContextOf(signature, contextualSignature, contextualMapper) {
                  var context = createInferenceContext(signature.typeParameters, true);
                  forEachMatchingParameterType(contextualSignature, signature, function (source, target) {
                      inferTypes(context, instantiateType(source, contextualMapper), target);
                  });
                  return getSignatureInstantiation(signature, getInferredTypes(context));
              }
              function inferTypeArguments(signature, args, excludeArgument, context) {
                  var typeParameters = signature.typeParameters;
                  var inferenceMapper = createInferenceMapper(context);
                  for (var i = 0; i < typeParameters.length; i++) {
                      if (!context.inferences[i].isFixed) {
                          context.inferredTypes[i] = undefined;
                      }
                  }
                  if (context.failedTypeParameterIndex !== undefined && !context.inferences[context.failedTypeParameterIndex].isFixed) {
                      context.failedTypeParameterIndex = undefined;
                  }
                  for (var i = 0; i < args.length; i++) {
                      var arg = args[i];
                      if (arg.kind !== 176) {
                          var paramType = getTypeAtPosition(signature, i);
                          var argType = void 0;
                          if (i === 0 && args[i].parent.kind === 160) {
                              argType = globalTemplateStringsArrayType;
                          }
                          else {
                              var mapper = excludeArgument && excludeArgument[i] !== undefined ? identityMapper : inferenceMapper;
                              argType = checkExpressionWithContextualType(arg, paramType, mapper);
                          }
                          inferTypes(context, argType, paramType);
                      }
                  }
                  if (excludeArgument) {
                      for (var i = 0; i < args.length; i++) {
                          if (excludeArgument[i] === false) {
                              var arg = args[i];
                              var paramType = getTypeAtPosition(signature, i);
                              inferTypes(context, checkExpressionWithContextualType(arg, paramType, inferenceMapper), paramType);
                          }
                      }
                  }
                  getInferredTypes(context);
              }
              function checkTypeArguments(signature, typeArguments, typeArgumentResultTypes, reportErrors) {
                  var typeParameters = signature.typeParameters;
                  var typeArgumentsAreAssignable = true;
                  for (var i = 0; i < typeParameters.length; i++) {
                      var typeArgNode = typeArguments[i];
                      var typeArgument = getTypeFromTypeNode(typeArgNode);
                      typeArgumentResultTypes[i] = typeArgument;
                      if (typeArgumentsAreAssignable) {
                          var constraint = getConstraintOfTypeParameter(typeParameters[i]);
                          if (constraint) {
                              typeArgumentsAreAssignable = checkTypeAssignableTo(typeArgument, constraint, reportErrors ? typeArgNode : undefined, ts.Diagnostics.Type_0_does_not_satisfy_the_constraint_1);
                          }
                      }
                  }
                  return typeArgumentsAreAssignable;
              }
              function checkApplicableSignature(node, args, signature, relation, excludeArgument, reportErrors) {
                  for (var i = 0; i < args.length; i++) {
                      var arg = args[i];
                      if (arg.kind !== 176) {
                          var paramType = getTypeAtPosition(signature, i);
                          var argType = i === 0 && node.kind === 160
                              ? globalTemplateStringsArrayType
                              : arg.kind === 8 && !reportErrors
                                  ? getStringLiteralType(arg)
                                  : checkExpressionWithContextualType(arg, paramType, excludeArgument && excludeArgument[i] ? identityMapper : undefined);
                          if (!checkTypeRelatedTo(argType, paramType, relation, reportErrors ? arg : undefined, ts.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1)) {
                              return false;
                          }
                      }
                  }
                  return true;
              }
              function getEffectiveCallArguments(node) {
                  var args;
                  if (node.kind === 160) {
                      var template = node.template;
                      args = [template];
                      if (template.kind === 172) {
                          ts.forEach(template.templateSpans, function (span) {
                              args.push(span.expression);
                          });
                      }
                  }
                  else {
                      args = node.arguments || emptyArray;
                  }
                  return args;
              }
              function getEffectiveTypeArguments(callExpression) {
                  if (callExpression.expression.kind === 91) {
                      var containingClass = ts.getAncestor(callExpression, 202);
                      var baseClassTypeNode = containingClass && ts.getClassExtendsHeritageClauseElement(containingClass);
                      return baseClassTypeNode && baseClassTypeNode.typeArguments;
                  }
                  else {
                      return callExpression.typeArguments;
                  }
              }
              function resolveCall(node, signatures, candidatesOutArray) {
                  var isTaggedTemplate = node.kind === 160;
                  var typeArguments;
                  if (!isTaggedTemplate) {
                      typeArguments = getEffectiveTypeArguments(node);
                      if (node.expression.kind !== 91) {
                          ts.forEach(typeArguments, checkSourceElement);
                      }
                  }
                  var candidates = candidatesOutArray || [];
                  reorderCandidates(signatures, candidates);
                  if (!candidates.length) {
                      error(node, ts.Diagnostics.Supplied_parameters_do_not_match_any_signature_of_call_target);
                      return resolveErrorCall(node);
                  }
                  var args = getEffectiveCallArguments(node);
                  var excludeArgument;
                  for (var i = isTaggedTemplate ? 1 : 0; i < args.length; i++) {
                      if (isContextSensitive(args[i])) {
                          if (!excludeArgument) {
                              excludeArgument = new Array(args.length);
                          }
                          excludeArgument[i] = true;
                      }
                  }
                  var candidateForArgumentError;
                  var candidateForTypeArgumentError;
                  var resultOfFailedInference;
                  var result;
                  if (candidates.length > 1) {
                      result = chooseOverload(candidates, subtypeRelation);
                  }
                  if (!result) {
                      candidateForArgumentError = undefined;
                      candidateForTypeArgumentError = undefined;
                      resultOfFailedInference = undefined;
                      result = chooseOverload(candidates, assignableRelation);
                  }
                  if (result) {
                      return result;
                  }
                  if (candidateForArgumentError) {
                      checkApplicableSignature(node, args, candidateForArgumentError, assignableRelation, undefined, true);
                  }
                  else if (candidateForTypeArgumentError) {
                      if (!isTaggedTemplate && node.typeArguments) {
                          checkTypeArguments(candidateForTypeArgumentError, node.typeArguments, [], true);
                      }
                      else {
                          ts.Debug.assert(resultOfFailedInference.failedTypeParameterIndex >= 0);
                          var failedTypeParameter = candidateForTypeArgumentError.typeParameters[resultOfFailedInference.failedTypeParameterIndex];
                          var inferenceCandidates = getInferenceCandidates(resultOfFailedInference, resultOfFailedInference.failedTypeParameterIndex);
                          var diagnosticChainHead = ts.chainDiagnosticMessages(undefined, ts.Diagnostics.The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly, typeToString(failedTypeParameter));
                          reportNoCommonSupertypeError(inferenceCandidates, node.expression || node.tag, diagnosticChainHead);
                      }
                  }
                  else {
                      error(node, ts.Diagnostics.Supplied_parameters_do_not_match_any_signature_of_call_target);
                  }
                  if (!produceDiagnostics) {
                      for (var _i = 0; _i < candidates.length; _i++) {
                          var candidate = candidates[_i];
                          if (hasCorrectArity(node, args, candidate)) {
                              return candidate;
                          }
                      }
                  }
                  return resolveErrorCall(node);
                  function chooseOverload(candidates, relation) {
                      for (var _i = 0; _i < candidates.length; _i++) {
                          var originalCandidate = candidates[_i];
                          if (!hasCorrectArity(node, args, originalCandidate)) {
                              continue;
                          }
                          var candidate = void 0;
                          var typeArgumentsAreValid = void 0;
                          var inferenceContext = originalCandidate.typeParameters
                              ? createInferenceContext(originalCandidate.typeParameters, false)
                              : undefined;
                          while (true) {
                              candidate = originalCandidate;
                              if (candidate.typeParameters) {
                                  var typeArgumentTypes = void 0;
                                  if (typeArguments) {
                                      typeArgumentTypes = new Array(candidate.typeParameters.length);
                                      typeArgumentsAreValid = checkTypeArguments(candidate, typeArguments, typeArgumentTypes, false);
                                  }
                                  else {
                                      inferTypeArguments(candidate, args, excludeArgument, inferenceContext);
                                      typeArgumentsAreValid = inferenceContext.failedTypeParameterIndex === undefined;
                                      typeArgumentTypes = inferenceContext.inferredTypes;
                                  }
                                  if (!typeArgumentsAreValid) {
                                      break;
                                  }
                                  candidate = getSignatureInstantiation(candidate, typeArgumentTypes);
                              }
                              if (!checkApplicableSignature(node, args, candidate, relation, excludeArgument, false)) {
                                  break;
                              }
                              var index = excludeArgument ? ts.indexOf(excludeArgument, true) : -1;
                              if (index < 0) {
                                  return candidate;
                              }
                              excludeArgument[index] = false;
                          }
                          if (originalCandidate.typeParameters) {
                              var instantiatedCandidate = candidate;
                              if (typeArgumentsAreValid) {
                                  candidateForArgumentError = instantiatedCandidate;
                              }
                              else {
                                  candidateForTypeArgumentError = originalCandidate;
                                  if (!typeArguments) {
                                      resultOfFailedInference = inferenceContext;
                                  }
                              }
                          }
                          else {
                              ts.Debug.assert(originalCandidate === candidate);
                              candidateForArgumentError = originalCandidate;
                          }
                      }
                      return undefined;
                  }
              }
              function resolveCallExpression(node, candidatesOutArray) {
                  if (node.expression.kind === 91) {
                      var superType = checkSuperExpression(node.expression);
                      if (superType !== unknownType) {
                          return resolveCall(node, getSignaturesOfType(superType, 1), candidatesOutArray);
                      }
                      return resolveUntypedCall(node);
                  }
                  var funcType = checkExpression(node.expression);
                  var apparentType = getApparentType(funcType);
                  if (apparentType === unknownType) {
                      return resolveErrorCall(node);
                  }
                  var callSignatures = getSignaturesOfType(apparentType, 0);
                  var constructSignatures = getSignaturesOfType(apparentType, 1);
                  if (funcType === anyType || (!callSignatures.length && !constructSignatures.length && !(funcType.flags & 16384) && isTypeAssignableTo(funcType, globalFunctionType))) {
                      if (node.typeArguments) {
                          error(node, ts.Diagnostics.Untyped_function_calls_may_not_accept_type_arguments);
                      }
                      return resolveUntypedCall(node);
                  }
                  if (!callSignatures.length) {
                      if (constructSignatures.length) {
                          error(node, ts.Diagnostics.Value_of_type_0_is_not_callable_Did_you_mean_to_include_new, typeToString(funcType));
                      }
                      else {
                          error(node, ts.Diagnostics.Cannot_invoke_an_expression_whose_type_lacks_a_call_signature);
                      }
                      return resolveErrorCall(node);
                  }
                  return resolveCall(node, callSignatures, candidatesOutArray);
              }
              function resolveNewExpression(node, candidatesOutArray) {
                  if (node.arguments && languageVersion < 2) {
                      var spreadIndex = getSpreadArgumentIndex(node.arguments);
                      if (spreadIndex >= 0) {
                          error(node.arguments[spreadIndex], ts.Diagnostics.Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_6_and_higher);
                      }
                  }
                  var expressionType = checkExpression(node.expression);
                  if (expressionType === anyType) {
                      if (node.typeArguments) {
                          error(node, ts.Diagnostics.Untyped_function_calls_may_not_accept_type_arguments);
                      }
                      return resolveUntypedCall(node);
                  }
                  expressionType = getApparentType(expressionType);
                  if (expressionType === unknownType) {
                      return resolveErrorCall(node);
                  }
                  var constructSignatures = getSignaturesOfType(expressionType, 1);
                  if (constructSignatures.length) {
                      return resolveCall(node, constructSignatures, candidatesOutArray);
                  }
                  var callSignatures = getSignaturesOfType(expressionType, 0);
                  if (callSignatures.length) {
                      var signature = resolveCall(node, callSignatures, candidatesOutArray);
                      if (getReturnTypeOfSignature(signature) !== voidType) {
                          error(node, ts.Diagnostics.Only_a_void_function_can_be_called_with_the_new_keyword);
                      }
                      return signature;
                  }
                  error(node, ts.Diagnostics.Cannot_use_new_with_an_expression_whose_type_lacks_a_call_or_construct_signature);
                  return resolveErrorCall(node);
              }
              function resolveTaggedTemplateExpression(node, candidatesOutArray) {
                  var tagType = checkExpression(node.tag);
                  var apparentType = getApparentType(tagType);
                  if (apparentType === unknownType) {
                      return resolveErrorCall(node);
                  }
                  var callSignatures = getSignaturesOfType(apparentType, 0);
                  if (tagType === anyType || (!callSignatures.length && !(tagType.flags & 16384) && isTypeAssignableTo(tagType, globalFunctionType))) {
                      return resolveUntypedCall(node);
                  }
                  if (!callSignatures.length) {
                      error(node, ts.Diagnostics.Cannot_invoke_an_expression_whose_type_lacks_a_call_signature);
                      return resolveErrorCall(node);
                  }
                  return resolveCall(node, callSignatures, candidatesOutArray);
              }
              function getResolvedSignature(node, candidatesOutArray) {
                  var links = getNodeLinks(node);
                  if (!links.resolvedSignature || candidatesOutArray) {
                      links.resolvedSignature = anySignature;
                      if (node.kind === 158) {
                          links.resolvedSignature = resolveCallExpression(node, candidatesOutArray);
                      }
                      else if (node.kind === 159) {
                          links.resolvedSignature = resolveNewExpression(node, candidatesOutArray);
                      }
                      else if (node.kind === 160) {
                          links.resolvedSignature = resolveTaggedTemplateExpression(node, candidatesOutArray);
                      }
                      else {
                          ts.Debug.fail("Branch in 'getResolvedSignature' should be unreachable.");
                      }
                  }
                  return links.resolvedSignature;
              }
              function checkCallExpression(node) {
                  checkGrammarTypeArguments(node, node.typeArguments) || checkGrammarArguments(node, node.arguments);
                  var signature = getResolvedSignature(node);
                  if (node.expression.kind === 91) {
                      return voidType;
                  }
                  if (node.kind === 159) {
                      var declaration = signature.declaration;
                      if (declaration &&
                          declaration.kind !== 136 &&
                          declaration.kind !== 140 &&
                          declaration.kind !== 144) {
                          if (compilerOptions.noImplicitAny) {
                              error(node, ts.Diagnostics.new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type);
                          }
                          return anyType;
                      }
                  }
                  return getReturnTypeOfSignature(signature);
              }
              function checkTaggedTemplateExpression(node) {
                  return getReturnTypeOfSignature(getResolvedSignature(node));
              }
              function checkTypeAssertion(node) {
                  var exprType = checkExpression(node.expression);
                  var targetType = getTypeFromTypeNode(node.type);
                  if (produceDiagnostics && targetType !== unknownType) {
                      var widenedType = getWidenedType(exprType);
                      if (!(isTypeAssignableTo(targetType, widenedType))) {
                          checkTypeAssignableTo(exprType, targetType, node, ts.Diagnostics.Neither_type_0_nor_type_1_is_assignable_to_the_other);
                      }
                  }
                  return targetType;
              }
              function getTypeAtPosition(signature, pos) {
                  return signature.hasRestParameter ?
                      pos < signature.parameters.length - 1 ? getTypeOfSymbol(signature.parameters[pos]) : getRestTypeOfSignature(signature) :
                      pos < signature.parameters.length ? getTypeOfSymbol(signature.parameters[pos]) : anyType;
              }
              function assignContextualParameterTypes(signature, context, mapper) {
                  var len = signature.parameters.length - (signature.hasRestParameter ? 1 : 0);
                  for (var i = 0; i < len; i++) {
                      var parameter = signature.parameters[i];
                      var links = getSymbolLinks(parameter);
                      links.type = instantiateType(getTypeAtPosition(context, i), mapper);
                  }
                  if (signature.hasRestParameter && context.hasRestParameter && signature.parameters.length >= context.parameters.length) {
                      var parameter = ts.lastOrUndefined(signature.parameters);
                      var links = getSymbolLinks(parameter);
                      links.type = instantiateType(getTypeOfSymbol(ts.lastOrUndefined(context.parameters)), mapper);
                  }
              }
              function getReturnTypeFromBody(func, contextualMapper) {
                  var contextualSignature = getContextualSignatureForFunctionLikeDeclaration(func);
                  if (!func.body) {
                      return unknownType;
                  }
                  var type;
                  if (func.body.kind !== 180) {
                      type = checkExpressionCached(func.body, contextualMapper);
                  }
                  else {
                      var types = checkAndAggregateReturnExpressionTypes(func.body, contextualMapper);
                      if (types.length === 0) {
                          return voidType;
                      }
                      type = contextualSignature ? getUnionType(types) : getCommonSupertype(types);
                      if (!type) {
                          error(func, ts.Diagnostics.No_best_common_type_exists_among_return_expressions);
                          return unknownType;
                      }
                  }
                  if (!contextualSignature) {
                      reportErrorsFromWidening(func, type);
                  }
                  return getWidenedType(type);
              }
              function checkAndAggregateReturnExpressionTypes(body, contextualMapper) {
                  var aggregatedTypes = [];
                  ts.forEachReturnStatement(body, function (returnStatement) {
                      var expr = returnStatement.expression;
                      if (expr) {
                          var type = checkExpressionCached(expr, contextualMapper);
                          if (!ts.contains(aggregatedTypes, type)) {
                              aggregatedTypes.push(type);
                          }
                      }
                  });
                  return aggregatedTypes;
              }
              function bodyContainsAReturnStatement(funcBody) {
                  return ts.forEachReturnStatement(funcBody, function (returnStatement) {
                      return true;
                  });
              }
              function bodyContainsSingleThrowStatement(body) {
                  return (body.statements.length === 1) && (body.statements[0].kind === 196);
              }
              function checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(func, returnType) {
                  if (!produceDiagnostics) {
                      return;
                  }
                  if (returnType === voidType || returnType === anyType) {
                      return;
                  }
                  if (ts.nodeIsMissing(func.body) || func.body.kind !== 180) {
                      return;
                  }
                  var bodyBlock = func.body;
                  if (bodyContainsAReturnStatement(bodyBlock)) {
                      return;
                  }
                  if (bodyContainsSingleThrowStatement(bodyBlock)) {
                      return;
                  }
                  error(func.type, ts.Diagnostics.A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value_or_consist_of_a_single_throw_statement);
              }
              function checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper) {
                  ts.Debug.assert(node.kind !== 135 || ts.isObjectLiteralMethod(node));
                  var hasGrammarError = checkGrammarDeclarationNameInStrictMode(node) || checkGrammarFunctionLikeDeclaration(node);
                  if (!hasGrammarError && node.kind === 163) {
                      checkGrammarFunctionName(node.name) || checkGrammarForGenerator(node);
                  }
                  if (contextualMapper === identityMapper && isContextSensitive(node)) {
                      return anyFunctionType;
                  }
                  var links = getNodeLinks(node);
                  var type = getTypeOfSymbol(node.symbol);
                  if (!(links.flags & 64)) {
                      var contextualSignature = getContextualSignature(node);
                      if (!(links.flags & 64)) {
                          links.flags |= 64;
                          if (contextualSignature) {
                              var signature = getSignaturesOfType(type, 0)[0];
                              if (isContextSensitive(node)) {
                                  assignContextualParameterTypes(signature, contextualSignature, contextualMapper || identityMapper);
                              }
                              if (!node.type && !signature.resolvedReturnType) {
                                  var returnType = getReturnTypeFromBody(node, contextualMapper);
                                  if (!signature.resolvedReturnType) {
                                      signature.resolvedReturnType = returnType;
                                  }
                              }
                          }
                          checkSignatureDeclaration(node);
                      }
                  }
                  if (produceDiagnostics && node.kind !== 135 && node.kind !== 134) {
                      checkCollisionWithCapturedSuperVariable(node, node.name);
                      checkCollisionWithCapturedThisVariable(node, node.name);
                  }
                  return type;
              }
              function checkFunctionExpressionOrObjectLiteralMethodBody(node) {
                  ts.Debug.assert(node.kind !== 135 || ts.isObjectLiteralMethod(node));
                  if (node.type && !node.asteriskToken) {
                      checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(node, getTypeFromTypeNode(node.type));
                  }
                  if (node.body) {
                      if (node.body.kind === 180) {
                          checkSourceElement(node.body);
                      }
                      else {
                          var exprType = checkExpression(node.body);
                          if (node.type) {
                              checkTypeAssignableTo(exprType, getTypeFromTypeNode(node.type), node.body, undefined);
                          }
                          checkFunctionExpressionBodies(node.body);
                      }
                  }
              }
              function checkArithmeticOperandType(operand, type, diagnostic) {
                  if (!allConstituentTypesHaveKind(type, 1 | 132)) {
                      error(operand, diagnostic);
                      return false;
                  }
                  return true;
              }
              function checkReferenceExpression(n, invalidReferenceMessage, constantVariableMessage) {
                  function findSymbol(n) {
                      var symbol = getNodeLinks(n).resolvedSymbol;
                      return symbol && getExportSymbolOfValueSymbolIfExported(symbol);
                  }
                  function isReferenceOrErrorExpression(n) {
                      switch (n.kind) {
                          case 65: {
                              var symbol = findSymbol(n);
                              return !symbol || symbol === unknownSymbol || symbol === argumentsSymbol || (symbol.flags & 3) !== 0;
                          }
                          case 156: {
                              var symbol = findSymbol(n);
                              return !symbol || symbol === unknownSymbol || (symbol.flags & ~8) !== 0;
                          }
                          case 157:
                              return true;
                          case 162:
                              return isReferenceOrErrorExpression(n.expression);
                          default:
                              return false;
                      }
                  }
                  function isConstVariableReference(n) {
                      switch (n.kind) {
                          case 65:
                          case 156: {
                              var symbol = findSymbol(n);
                              return symbol && (symbol.flags & 3) !== 0 && (getDeclarationFlagsFromSymbol(symbol) & 8192) !== 0;
                          }
                          case 157: {
                              var index = n.argumentExpression;
                              var symbol = findSymbol(n.expression);
                              if (symbol && index && index.kind === 8) {
                                  var name_7 = index.text;
                                  var prop = getPropertyOfType(getTypeOfSymbol(symbol), name_7);
                                  return prop && (prop.flags & 3) !== 0 && (getDeclarationFlagsFromSymbol(prop) & 8192) !== 0;
                              }
                              return false;
                          }
                          case 162:
                              return isConstVariableReference(n.expression);
                          default:
                              return false;
                      }
                  }
                  if (!isReferenceOrErrorExpression(n)) {
                      error(n, invalidReferenceMessage);
                      return false;
                  }
                  if (isConstVariableReference(n)) {
                      error(n, constantVariableMessage);
                      return false;
                  }
                  return true;
              }
              function checkDeleteExpression(node) {
                  if (node.parserContextFlags & 1 && node.expression.kind === 65) {
                      grammarErrorOnNode(node.expression, ts.Diagnostics.delete_cannot_be_called_on_an_identifier_in_strict_mode);
                  }
                  var operandType = checkExpression(node.expression);
                  return booleanType;
              }
              function checkTypeOfExpression(node) {
                  var operandType = checkExpression(node.expression);
                  return stringType;
              }
              function checkVoidExpression(node) {
                  var operandType = checkExpression(node.expression);
                  return undefinedType;
              }
              function checkPrefixUnaryExpression(node) {
                  if ((node.operator === 38 || node.operator === 39)) {
                      checkGrammarEvalOrArgumentsInStrictMode(node, node.operand);
                  }
                  var operandType = checkExpression(node.operand);
                  switch (node.operator) {
                      case 33:
                      case 34:
                      case 47:
                          if (someConstituentTypeHasKind(operandType, 1048576)) {
                              error(node.operand, ts.Diagnostics.The_0_operator_cannot_be_applied_to_type_symbol, ts.tokenToString(node.operator));
                          }
                          return numberType;
                      case 46:
                          return booleanType;
                      case 38:
                      case 39:
                          var ok = checkArithmeticOperandType(node.operand, operandType, ts.Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type);
                          if (ok) {
                              checkReferenceExpression(node.operand, ts.Diagnostics.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_property_or_indexer, ts.Diagnostics.The_operand_of_an_increment_or_decrement_operator_cannot_be_a_constant);
                          }
                          return numberType;
                  }
                  return unknownType;
              }
              function checkPostfixUnaryExpression(node) {
                  checkGrammarEvalOrArgumentsInStrictMode(node, node.operand);
                  var operandType = checkExpression(node.operand);
                  var ok = checkArithmeticOperandType(node.operand, operandType, ts.Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type);
                  if (ok) {
                      checkReferenceExpression(node.operand, ts.Diagnostics.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_property_or_indexer, ts.Diagnostics.The_operand_of_an_increment_or_decrement_operator_cannot_be_a_constant);
                  }
                  return numberType;
              }
              function someConstituentTypeHasKind(type, kind) {
                  if (type.flags & kind) {
                      return true;
                  }
                  if (type.flags & 16384) {
                      var types = type.types;
                      for (var _i = 0; _i < types.length; _i++) {
                          var current = types[_i];
                          if (current.flags & kind) {
                              return true;
                          }
                      }
                      return false;
                  }
                  return false;
              }
              function allConstituentTypesHaveKind(type, kind) {
                  if (type.flags & kind) {
                      return true;
                  }
                  if (type.flags & 16384) {
                      var types = type.types;
                      for (var _i = 0; _i < types.length; _i++) {
                          var current = types[_i];
                          if (!(current.flags & kind)) {
                              return false;
                          }
                      }
                      return true;
                  }
                  return false;
              }
              function isConstEnumObjectType(type) {
                  return type.flags & (48128 | 32768) && type.symbol && isConstEnumSymbol(type.symbol);
              }
              function isConstEnumSymbol(symbol) {
                  return (symbol.flags & 128) !== 0;
              }
              function checkInstanceOfExpression(node, leftType, rightType) {
                  if (allConstituentTypesHaveKind(leftType, 1049086)) {
                      error(node.left, ts.Diagnostics.The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter);
                  }
                  if (!(rightType.flags & 1 || isTypeSubtypeOf(rightType, globalFunctionType))) {
                      error(node.right, ts.Diagnostics.The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type);
                  }
                  return booleanType;
              }
              function checkInExpression(node, leftType, rightType) {
                  if (!allConstituentTypesHaveKind(leftType, 1 | 258 | 132 | 1048576)) {
                      error(node.left, ts.Diagnostics.The_left_hand_side_of_an_in_expression_must_be_of_type_any_string_number_or_symbol);
                  }
                  if (!allConstituentTypesHaveKind(rightType, 1 | 48128 | 512)) {
                      error(node.right, ts.Diagnostics.The_right_hand_side_of_an_in_expression_must_be_of_type_any_an_object_type_or_a_type_parameter);
                  }
                  return booleanType;
              }
              function checkObjectLiteralAssignment(node, sourceType, contextualMapper) {
                  var properties = node.properties;
                  for (var _i = 0; _i < properties.length; _i++) {
                      var p = properties[_i];
                      if (p.kind === 225 || p.kind === 226) {
                          var name_8 = p.name;
                          var type = sourceType.flags & 1 ? sourceType :
                              getTypeOfPropertyOfType(sourceType, name_8.text) ||
                                  isNumericLiteralName(name_8.text) && getIndexTypeOfType(sourceType, 1) ||
                                  getIndexTypeOfType(sourceType, 0);
                          if (type) {
                              checkDestructuringAssignment(p.initializer || name_8, type);
                          }
                          else {
                              error(name_8, ts.Diagnostics.Type_0_has_no_property_1_and_no_string_index_signature, typeToString(sourceType), ts.declarationNameToString(name_8));
                          }
                      }
                      else {
                          error(p, ts.Diagnostics.Property_assignment_expected);
                      }
                  }
                  return sourceType;
              }
              function checkArrayLiteralAssignment(node, sourceType, contextualMapper) {
                  var elementType = checkIteratedTypeOrElementType(sourceType, node, false) || unknownType;
                  var elements = node.elements;
                  for (var i = 0; i < elements.length; i++) {
                      var e = elements[i];
                      if (e.kind !== 176) {
                          if (e.kind !== 174) {
                              var propName = "" + i;
                              var type = sourceType.flags & 1 ? sourceType :
                                  isTupleLikeType(sourceType)
                                      ? getTypeOfPropertyOfType(sourceType, propName)
                                      : elementType;
                              if (type) {
                                  checkDestructuringAssignment(e, type, contextualMapper);
                              }
                              else {
                                  if (isTupleType(sourceType)) {
                                      error(e, ts.Diagnostics.Tuple_type_0_with_length_1_cannot_be_assigned_to_tuple_with_length_2, typeToString(sourceType), sourceType.elementTypes.length, elements.length);
                                  }
                                  else {
                                      error(e, ts.Diagnostics.Type_0_has_no_property_1, typeToString(sourceType), propName);
                                  }
                              }
                          }
                          else {
                              if (i < elements.length - 1) {
                                  error(e, ts.Diagnostics.A_rest_element_must_be_last_in_an_array_destructuring_pattern);
                              }
                              else {
                                  var restExpression = e.expression;
                                  if (restExpression.kind === 170 && restExpression.operatorToken.kind === 53) {
                                      error(restExpression.operatorToken, ts.Diagnostics.A_rest_element_cannot_have_an_initializer);
                                  }
                                  else {
                                      checkDestructuringAssignment(restExpression, createArrayType(elementType), contextualMapper);
                                  }
                              }
                          }
                      }
                  }
                  return sourceType;
              }
              function checkDestructuringAssignment(target, sourceType, contextualMapper) {
                  if (target.kind === 170 && target.operatorToken.kind === 53) {
                      checkBinaryExpression(target, contextualMapper);
                      target = target.left;
                  }
                  if (target.kind === 155) {
                      return checkObjectLiteralAssignment(target, sourceType, contextualMapper);
                  }
                  if (target.kind === 154) {
                      return checkArrayLiteralAssignment(target, sourceType, contextualMapper);
                  }
                  return checkReferenceAssignment(target, sourceType, contextualMapper);
              }
              function checkReferenceAssignment(target, sourceType, contextualMapper) {
                  var targetType = checkExpression(target, contextualMapper);
                  if (checkReferenceExpression(target, ts.Diagnostics.Invalid_left_hand_side_of_assignment_expression, ts.Diagnostics.Left_hand_side_of_assignment_expression_cannot_be_a_constant)) {
                      checkTypeAssignableTo(sourceType, targetType, target, undefined);
                  }
                  return sourceType;
              }
              function checkBinaryExpression(node, contextualMapper) {
                  if (ts.isLeftHandSideExpression(node.left) && ts.isAssignmentOperator(node.operatorToken.kind)) {
                      checkGrammarEvalOrArgumentsInStrictMode(node, node.left);
                  }
                  var operator = node.operatorToken.kind;
                  if (operator === 53 && (node.left.kind === 155 || node.left.kind === 154)) {
                      return checkDestructuringAssignment(node.left, checkExpression(node.right, contextualMapper), contextualMapper);
                  }
                  var leftType = checkExpression(node.left, contextualMapper);
                  var rightType = checkExpression(node.right, contextualMapper);
                  switch (operator) {
                      case 35:
                      case 56:
                      case 36:
                      case 57:
                      case 37:
                      case 58:
                      case 34:
                      case 55:
                      case 40:
                      case 59:
                      case 41:
                      case 60:
                      case 42:
                      case 61:
                      case 44:
                      case 63:
                      case 45:
                      case 64:
                      case 43:
                      case 62:
                          if (leftType.flags & (32 | 64))
                              leftType = rightType;
                          if (rightType.flags & (32 | 64))
                              rightType = leftType;
                          var suggestedOperator;
                          if ((leftType.flags & 8) &&
                              (rightType.flags & 8) &&
                              (suggestedOperator = getSuggestedBooleanOperator(node.operatorToken.kind)) !== undefined) {
                              error(node, ts.Diagnostics.The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead, ts.tokenToString(node.operatorToken.kind), ts.tokenToString(suggestedOperator));
                          }
                          else {
                              var leftOk = checkArithmeticOperandType(node.left, leftType, ts.Diagnostics.The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type);
                              var rightOk = checkArithmeticOperandType(node.right, rightType, ts.Diagnostics.The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type);
                              if (leftOk && rightOk) {
                                  checkAssignmentOperator(numberType);
                              }
                          }
                          return numberType;
                      case 33:
                      case 54:
                          if (leftType.flags & (32 | 64))
                              leftType = rightType;
                          if (rightType.flags & (32 | 64))
                              rightType = leftType;
                          var resultType;
                          if (allConstituentTypesHaveKind(leftType, 132) && allConstituentTypesHaveKind(rightType, 132)) {
                              resultType = numberType;
                          }
                          else {
                              if (allConstituentTypesHaveKind(leftType, 258) || allConstituentTypesHaveKind(rightType, 258)) {
                                  resultType = stringType;
                              }
                              else if (leftType.flags & 1 || rightType.flags & 1) {
                                  resultType = anyType;
                              }
                              if (resultType && !checkForDisallowedESSymbolOperand(operator)) {
                                  return resultType;
                              }
                          }
                          if (!resultType) {
                              reportOperatorError();
                              return anyType;
                          }
                          if (operator === 54) {
                              checkAssignmentOperator(resultType);
                          }
                          return resultType;
                      case 24:
                      case 25:
                      case 26:
                      case 27:
                          if (!checkForDisallowedESSymbolOperand(operator)) {
                              return booleanType;
                          }
                      case 28:
                      case 29:
                      case 30:
                      case 31:
                          if (!isTypeAssignableTo(leftType, rightType) && !isTypeAssignableTo(rightType, leftType)) {
                              reportOperatorError();
                          }
                          return booleanType;
                      case 87:
                          return checkInstanceOfExpression(node, leftType, rightType);
                      case 86:
                          return checkInExpression(node, leftType, rightType);
                      case 48:
                          return rightType;
                      case 49:
                          return getUnionType([leftType, rightType]);
                      case 53:
                          checkAssignmentOperator(rightType);
                          return rightType;
                      case 23:
                          return rightType;
                  }
                  function checkForDisallowedESSymbolOperand(operator) {
                      var offendingSymbolOperand = someConstituentTypeHasKind(leftType, 1048576) ? node.left :
                          someConstituentTypeHasKind(rightType, 1048576) ? node.right :
                              undefined;
                      if (offendingSymbolOperand) {
                          error(offendingSymbolOperand, ts.Diagnostics.The_0_operator_cannot_be_applied_to_type_symbol, ts.tokenToString(operator));
                          return false;
                      }
                      return true;
                  }
                  function getSuggestedBooleanOperator(operator) {
                      switch (operator) {
                          case 44:
                          case 63:
                              return 49;
                          case 45:
                          case 64:
                              return 31;
                          case 43:
                          case 62:
                              return 48;
                          default:
                              return undefined;
                      }
                  }
                  function checkAssignmentOperator(valueType) {
                      if (produceDiagnostics && operator >= 53 && operator <= 64) {
                          var ok = checkReferenceExpression(node.left, ts.Diagnostics.Invalid_left_hand_side_of_assignment_expression, ts.Diagnostics.Left_hand_side_of_assignment_expression_cannot_be_a_constant);
                          if (ok) {
                              checkTypeAssignableTo(valueType, leftType, node.left, undefined);
                          }
                      }
                  }
                  function reportOperatorError() {
                      error(node, ts.Diagnostics.Operator_0_cannot_be_applied_to_types_1_and_2, ts.tokenToString(node.operatorToken.kind), typeToString(leftType), typeToString(rightType));
                  }
              }
              function checkYieldExpression(node) {
                  if (!(node.parserContextFlags & 4)) {
                      grammarErrorOnFirstToken(node, ts.Diagnostics.yield_expression_must_be_contained_within_a_generator_declaration);
                  }
                  else {
                      grammarErrorOnFirstToken(node, ts.Diagnostics.yield_expressions_are_not_currently_supported);
                  }
              }
              function checkConditionalExpression(node, contextualMapper) {
                  checkExpression(node.condition);
                  var type1 = checkExpression(node.whenTrue, contextualMapper);
                  var type2 = checkExpression(node.whenFalse, contextualMapper);
                  return getUnionType([type1, type2]);
              }
              function checkTemplateExpression(node) {
                  ts.forEach(node.templateSpans, function (templateSpan) {
                      checkExpression(templateSpan.expression);
                  });
                  return stringType;
              }
              function checkExpressionWithContextualType(node, contextualType, contextualMapper) {
                  var saveContextualType = node.contextualType;
                  node.contextualType = contextualType;
                  var result = checkExpression(node, contextualMapper);
                  node.contextualType = saveContextualType;
                  return result;
              }
              function checkExpressionCached(node, contextualMapper) {
                  var links = getNodeLinks(node);
                  if (!links.resolvedType) {
                      links.resolvedType = checkExpression(node, contextualMapper);
                  }
                  return links.resolvedType;
              }
              function checkPropertyAssignment(node, contextualMapper) {
                  if (node.name.kind === 128) {
                      checkComputedPropertyName(node.name);
                  }
                  return checkExpression(node.initializer, contextualMapper);
              }
              function checkObjectLiteralMethod(node, contextualMapper) {
                  checkGrammarMethod(node);
                  if (node.name.kind === 128) {
                      checkComputedPropertyName(node.name);
                  }
                  var uninstantiatedType = checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper);
                  return instantiateTypeWithSingleGenericCallSignature(node, uninstantiatedType, contextualMapper);
              }
              function instantiateTypeWithSingleGenericCallSignature(node, type, contextualMapper) {
                  if (contextualMapper && contextualMapper !== identityMapper) {
                      var signature = getSingleCallSignature(type);
                      if (signature && signature.typeParameters) {
                          var contextualType = getContextualType(node);
                          if (contextualType) {
                              var contextualSignature = getSingleCallSignature(contextualType);
                              if (contextualSignature && !contextualSignature.typeParameters) {
                                  return getOrCreateTypeFromSignature(instantiateSignatureInContextOf(signature, contextualSignature, contextualMapper));
                              }
                          }
                      }
                  }
                  return type;
              }
              function checkExpression(node, contextualMapper) {
                  checkGrammarIdentifierInStrictMode(node);
                  return checkExpressionOrQualifiedName(node, contextualMapper);
              }
              function checkExpressionOrQualifiedName(node, contextualMapper) {
                  var type;
                  if (node.kind == 127) {
                      type = checkQualifiedName(node);
                  }
                  else {
                      var uninstantiatedType = checkExpressionWorker(node, contextualMapper);
                      type = instantiateTypeWithSingleGenericCallSignature(node, uninstantiatedType, contextualMapper);
                  }
                  if (isConstEnumObjectType(type)) {
                      var ok = (node.parent.kind === 156 && node.parent.expression === node) ||
                          (node.parent.kind === 157 && node.parent.expression === node) ||
                          ((node.kind === 65 || node.kind === 127) && isInRightSideOfImportOrExportAssignment(node));
                      if (!ok) {
                          error(node, ts.Diagnostics.const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment);
                      }
                  }
                  return type;
              }
              function checkNumericLiteral(node) {
                  checkGrammarNumericLiteral(node);
                  return numberType;
              }
              function checkExpressionWorker(node, contextualMapper) {
                  switch (node.kind) {
                      case 65:
                          return checkIdentifier(node);
                      case 93:
                          return checkThisExpression(node);
                      case 91:
                          return checkSuperExpression(node);
                      case 89:
                          return nullType;
                      case 95:
                      case 80:
                          return booleanType;
                      case 7:
                          return checkNumericLiteral(node);
                      case 172:
                          return checkTemplateExpression(node);
                      case 8:
                      case 10:
                          return stringType;
                      case 9:
                          return globalRegExpType;
                      case 154:
                          return checkArrayLiteral(node, contextualMapper);
                      case 155:
                          return checkObjectLiteral(node, contextualMapper);
                      case 156:
                          return checkPropertyAccessExpression(node);
                      case 157:
                          return checkIndexedAccess(node);
                      case 158:
                      case 159:
                          return checkCallExpression(node);
                      case 160:
                          return checkTaggedTemplateExpression(node);
                      case 161:
                          return checkTypeAssertion(node);
                      case 162:
                          return checkExpression(node.expression, contextualMapper);
                      case 175:
                          return checkClassExpression(node);
                      case 163:
                      case 164:
                          return checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper);
                      case 166:
                          return checkTypeOfExpression(node);
                      case 165:
                          return checkDeleteExpression(node);
                      case 167:
                          return checkVoidExpression(node);
                      case 168:
                          return checkPrefixUnaryExpression(node);
                      case 169:
                          return checkPostfixUnaryExpression(node);
                      case 170:
                          return checkBinaryExpression(node, contextualMapper);
                      case 171:
                          return checkConditionalExpression(node, contextualMapper);
                      case 174:
                          return checkSpreadElementExpression(node, contextualMapper);
                      case 176:
                          return undefinedType;
                      case 173:
                          checkYieldExpression(node);
                          return unknownType;
                  }
                  return unknownType;
              }
              function checkTypeParameter(node) {
                  checkGrammarDeclarationNameInStrictMode(node);
                  if (node.expression) {
                      grammarErrorOnFirstToken(node.expression, ts.Diagnostics.Type_expected);
                  }
                  checkSourceElement(node.constraint);
                  if (produceDiagnostics) {
                      checkTypeParameterHasIllegalReferencesInConstraint(node);
                      checkTypeNameIsReserved(node.name, ts.Diagnostics.Type_parameter_name_cannot_be_0);
                  }
              }
              function checkParameter(node) {
                  // Grammar checking
                  // It is a SyntaxError if the Identifier "eval" or the Identifier "arguments" occurs as the
                  // Identifier in a PropertySetParameterList of a PropertyAssignment that is contained in strict code
                  // or if its FunctionBody is strict code(11.1.5).
                  // It is a SyntaxError if the identifier eval or arguments appears within a FormalParameterList of a
                  // strict mode FunctionLikeDeclaration or FunctionExpression(13.1)
                  checkGrammarDecorators(node) || checkGrammarModifiers(node) || checkGrammarEvalOrArgumentsInStrictMode(node, node.name);
                  checkVariableLikeDeclaration(node);
                  var func = ts.getContainingFunction(node);
                  if (node.flags & 112) {
                      func = ts.getContainingFunction(node);
                      if (!(func.kind === 136 && ts.nodeIsPresent(func.body))) {
                          error(node, ts.Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation);
                      }
                  }
                  if (node.questionToken && ts.isBindingPattern(node.name) && func.body) {
                      error(node, ts.Diagnostics.A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature);
                  }
                  if (node.dotDotDotToken && !ts.isBindingPattern(node.name) && !isArrayType(getTypeOfSymbol(node.symbol))) {
                      error(node, ts.Diagnostics.A_rest_parameter_must_be_of_an_array_type);
                  }
              }
              function checkSignatureDeclaration(node) {
                  if (node.kind === 141) {
                      checkGrammarIndexSignature(node);
                  }
                  else if (node.kind === 143 || node.kind === 201 || node.kind === 144 ||
                      node.kind === 139 || node.kind === 136 ||
                      node.kind === 140) {
                      checkGrammarFunctionLikeDeclaration(node);
                  }
                  checkTypeParameters(node.typeParameters);
                  ts.forEach(node.parameters, checkParameter);
                  if (node.type) {
                      checkSourceElement(node.type);
                  }
                  if (produceDiagnostics) {
                      checkCollisionWithArgumentsInGeneratedCode(node);
                      if (compilerOptions.noImplicitAny && !node.type) {
                          switch (node.kind) {
                              case 140:
                                  error(node, ts.Diagnostics.Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type);
                                  break;
                              case 139:
                                  error(node, ts.Diagnostics.Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type);
                                  break;
                          }
                      }
                  }
                  checkSpecializedSignatureDeclaration(node);
              }
              function checkTypeForDuplicateIndexSignatures(node) {
                  if (node.kind === 203) {
                      var nodeSymbol = getSymbolOfNode(node);
                      if (nodeSymbol.declarations.length > 0 && nodeSymbol.declarations[0] !== node) {
                          return;
                      }
                  }
                  var indexSymbol = getIndexSymbol(getSymbolOfNode(node));
                  if (indexSymbol) {
                      var seenNumericIndexer = false;
                      var seenStringIndexer = false;
                      for (var _i = 0, _a = indexSymbol.declarations; _i < _a.length; _i++) {
                          var decl = _a[_i];
                          var declaration = decl;
                          if (declaration.parameters.length === 1 && declaration.parameters[0].type) {
                              switch (declaration.parameters[0].type.kind) {
                                  case 122:
                                      if (!seenStringIndexer) {
                                          seenStringIndexer = true;
                                      }
                                      else {
                                          error(declaration, ts.Diagnostics.Duplicate_string_index_signature);
                                      }
                                      break;
                                  case 120:
                                      if (!seenNumericIndexer) {
                                          seenNumericIndexer = true;
                                      }
                                      else {
                                          error(declaration, ts.Diagnostics.Duplicate_number_index_signature);
                                      }
                                      break;
                              }
                          }
                      }
                  }
              }
              function checkPropertyDeclaration(node) {
                  checkGrammarDecorators(node) || checkGrammarModifiers(node) || checkGrammarProperty(node) || checkGrammarComputedPropertyName(node.name);
                  checkVariableLikeDeclaration(node);
              }
              function checkMethodDeclaration(node) {
                  checkGrammarMethod(node) || checkGrammarComputedPropertyName(node.name);
                  checkFunctionLikeDeclaration(node);
              }
              function checkConstructorDeclaration(node) {
                  checkSignatureDeclaration(node);
                  checkGrammarConstructorTypeParameters(node) || checkGrammarConstructorTypeAnnotation(node);
                  checkSourceElement(node.body);
                  var symbol = getSymbolOfNode(node);
                  var firstDeclaration = ts.getDeclarationOfKind(symbol, node.kind);
                  if (node === firstDeclaration) {
                      checkFunctionOrConstructorSymbol(symbol);
                  }
                  if (ts.nodeIsMissing(node.body)) {
                      return;
                  }
                  if (!produceDiagnostics) {
                      return;
                  }
                  function isSuperCallExpression(n) {
                      return n.kind === 158 && n.expression.kind === 91;
                  }
                  function containsSuperCall(n) {
                      if (isSuperCallExpression(n)) {
                          return true;
                      }
                      switch (n.kind) {
                          case 163:
                          case 201:
                          case 164:
                          case 155: return false;
                          default: return ts.forEachChild(n, containsSuperCall);
                      }
                  }
                  function markThisReferencesAsErrors(n) {
                      if (n.kind === 93) {
                          error(n, ts.Diagnostics.this_cannot_be_referenced_in_current_location);
                      }
                      else if (n.kind !== 163 && n.kind !== 201) {
                          ts.forEachChild(n, markThisReferencesAsErrors);
                      }
                  }
                  function isInstancePropertyWithInitializer(n) {
                      return n.kind === 133 &&
                          !(n.flags & 128) &&
                          !!n.initializer;
                  }
                  if (ts.getClassExtendsHeritageClauseElement(node.parent)) {
                      if (containsSuperCall(node.body)) {
                          var superCallShouldBeFirst = ts.forEach(node.parent.members, isInstancePropertyWithInitializer) ||
                              ts.forEach(node.parameters, function (p) { return p.flags & (16 | 32 | 64); });
                          if (superCallShouldBeFirst) {
                              var statements = node.body.statements;
                              if (!statements.length || statements[0].kind !== 183 || !isSuperCallExpression(statements[0].expression)) {
                                  error(node, ts.Diagnostics.A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_properties_or_has_parameter_properties);
                              }
                              else {
                                  markThisReferencesAsErrors(statements[0].expression);
                              }
                          }
                      }
                      else {
                          error(node, ts.Diagnostics.Constructors_for_derived_classes_must_contain_a_super_call);
                      }
                  }
              }
              function checkAccessorDeclaration(node) {
                  if (produceDiagnostics) {
                      checkGrammarFunctionLikeDeclaration(node) || checkGrammarAccessor(node) || checkGrammarComputedPropertyName(node.name);
                      if (node.kind === 137) {
                          if (!ts.isInAmbientContext(node) && ts.nodeIsPresent(node.body) && !(bodyContainsAReturnStatement(node.body) || bodyContainsSingleThrowStatement(node.body))) {
                              error(node.name, ts.Diagnostics.A_get_accessor_must_return_a_value_or_consist_of_a_single_throw_statement);
                          }
                      }
                      if (!ts.hasDynamicName(node)) {
                          var otherKind = node.kind === 137 ? 138 : 137;
                          var otherAccessor = ts.getDeclarationOfKind(node.symbol, otherKind);
                          if (otherAccessor) {
                              if (((node.flags & 112) !== (otherAccessor.flags & 112))) {
                                  error(node.name, ts.Diagnostics.Getter_and_setter_accessors_do_not_agree_in_visibility);
                              }
                              var currentAccessorType = getAnnotatedAccessorType(node);
                              var otherAccessorType = getAnnotatedAccessorType(otherAccessor);
                              if (currentAccessorType && otherAccessorType) {
                                  if (!isTypeIdenticalTo(currentAccessorType, otherAccessorType)) {
                                      error(node, ts.Diagnostics.get_and_set_accessor_must_have_the_same_type);
                                  }
                              }
                          }
                      }
                      getTypeOfAccessors(getSymbolOfNode(node));
                  }
                  checkFunctionLikeDeclaration(node);
              }
              function checkMissingDeclaration(node) {
                  checkDecorators(node);
              }
              function checkTypeReferenceNode(node) {
                  checkGrammarTypeReferenceInStrictMode(node.typeName);
                  return checkTypeReferenceOrExpressionWithTypeArguments(node);
              }
              function checkExpressionWithTypeArguments(node) {
                  checkGrammarExpressionWithTypeArgumentsInStrictMode(node.expression);
                  return checkTypeReferenceOrExpressionWithTypeArguments(node);
              }
              function checkTypeReferenceOrExpressionWithTypeArguments(node) {
                  checkGrammarTypeArguments(node, node.typeArguments);
                  var type = getTypeFromTypeReferenceOrExpressionWithTypeArguments(node);
                  if (type !== unknownType && node.typeArguments) {
                      var len = node.typeArguments.length;
                      for (var i = 0; i < len; i++) {
                          checkSourceElement(node.typeArguments[i]);
                          var constraint = getConstraintOfTypeParameter(type.target.typeParameters[i]);
                          if (produceDiagnostics && constraint) {
                              var typeArgument = type.typeArguments[i];
                              checkTypeAssignableTo(typeArgument, constraint, node, ts.Diagnostics.Type_0_does_not_satisfy_the_constraint_1);
                          }
                      }
                  }
              }
              function checkTypeQuery(node) {
                  getTypeFromTypeQueryNode(node);
              }
              function checkTypeLiteral(node) {
                  ts.forEach(node.members, checkSourceElement);
                  if (produceDiagnostics) {
                      var type = getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node);
                      checkIndexConstraints(type);
                      checkTypeForDuplicateIndexSignatures(node);
                  }
              }
              function checkArrayType(node) {
                  checkSourceElement(node.elementType);
              }
              function checkTupleType(node) {
                  var hasErrorFromDisallowedTrailingComma = checkGrammarForDisallowedTrailingComma(node.elementTypes);
                  if (!hasErrorFromDisallowedTrailingComma && node.elementTypes.length === 0) {
                      grammarErrorOnNode(node, ts.Diagnostics.A_tuple_type_element_list_cannot_be_empty);
                  }
                  ts.forEach(node.elementTypes, checkSourceElement);
              }
              function checkUnionType(node) {
                  ts.forEach(node.types, checkSourceElement);
              }
              function isPrivateWithinAmbient(node) {
                  return (node.flags & 32) && ts.isInAmbientContext(node);
              }
              function checkSpecializedSignatureDeclaration(signatureDeclarationNode) {
                  if (!produceDiagnostics) {
                      return;
                  }
                  var signature = getSignatureFromDeclaration(signatureDeclarationNode);
                  if (!signature.hasStringLiterals) {
                      return;
                  }
                  if (ts.nodeIsPresent(signatureDeclarationNode.body)) {
                      error(signatureDeclarationNode, ts.Diagnostics.A_signature_with_an_implementation_cannot_use_a_string_literal_type);
                      return;
                  }
                  var signaturesToCheck;
                  if (!signatureDeclarationNode.name && signatureDeclarationNode.parent && signatureDeclarationNode.parent.kind === 203) {
                      ts.Debug.assert(signatureDeclarationNode.kind === 139 || signatureDeclarationNode.kind === 140);
                      var signatureKind = signatureDeclarationNode.kind === 139 ? 0 : 1;
                      var containingSymbol = getSymbolOfNode(signatureDeclarationNode.parent);
                      var containingType = getDeclaredTypeOfSymbol(containingSymbol);
                      signaturesToCheck = getSignaturesOfType(containingType, signatureKind);
                  }
                  else {
                      signaturesToCheck = getSignaturesOfSymbol(getSymbolOfNode(signatureDeclarationNode));
                  }
                  for (var _i = 0; _i < signaturesToCheck.length; _i++) {
                      var otherSignature = signaturesToCheck[_i];
                      if (!otherSignature.hasStringLiterals && isSignatureAssignableTo(signature, otherSignature)) {
                          return;
                      }
                  }
                  error(signatureDeclarationNode, ts.Diagnostics.Specialized_overload_signature_is_not_assignable_to_any_non_specialized_signature);
              }
              function getEffectiveDeclarationFlags(n, flagsToCheck) {
                  var flags = ts.getCombinedNodeFlags(n);
                  if (n.parent.kind !== 203 && ts.isInAmbientContext(n)) {
                      if (!(flags & 2)) {
                          flags |= 1;
                      }
                      flags |= 2;
                  }
                  return flags & flagsToCheck;
              }
              function checkFunctionOrConstructorSymbol(symbol) {
                  if (!produceDiagnostics) {
                      return;
                  }
                  function getCanonicalOverload(overloads, implementation) {
                      var implementationSharesContainerWithFirstOverload = implementation !== undefined && implementation.parent === overloads[0].parent;
                      return implementationSharesContainerWithFirstOverload ? implementation : overloads[0];
                  }
                  function checkFlagAgreementBetweenOverloads(overloads, implementation, flagsToCheck, someOverloadFlags, allOverloadFlags) {
                      var someButNotAllOverloadFlags = someOverloadFlags ^ allOverloadFlags;
                      if (someButNotAllOverloadFlags !== 0) {
                          var canonicalFlags = getEffectiveDeclarationFlags(getCanonicalOverload(overloads, implementation), flagsToCheck);
                          ts.forEach(overloads, function (o) {
                              var deviation = getEffectiveDeclarationFlags(o, flagsToCheck) ^ canonicalFlags;
                              if (deviation & 1) {
                                  error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_exported_or_not_exported);
                              }
                              else if (deviation & 2) {
                                  error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_ambient_or_non_ambient);
                              }
                              else if (deviation & (32 | 64)) {
                                  error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_public_private_or_protected);
                              }
                          });
                      }
                  }
                  function checkQuestionTokenAgreementBetweenOverloads(overloads, implementation, someHaveQuestionToken, allHaveQuestionToken) {
                      if (someHaveQuestionToken !== allHaveQuestionToken) {
                          var canonicalHasQuestionToken = ts.hasQuestionToken(getCanonicalOverload(overloads, implementation));
                          ts.forEach(overloads, function (o) {
                              var deviation = ts.hasQuestionToken(o) !== canonicalHasQuestionToken;
                              if (deviation) {
                                  error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_optional_or_required);
                              }
                          });
                      }
                  }
                  var flagsToCheck = 1 | 2 | 32 | 64;
                  var someNodeFlags = 0;
                  var allNodeFlags = flagsToCheck;
                  var someHaveQuestionToken = false;
                  var allHaveQuestionToken = true;
                  var hasOverloads = false;
                  var bodyDeclaration;
                  var lastSeenNonAmbientDeclaration;
                  var previousDeclaration;
                  var declarations = symbol.declarations;
                  var isConstructor = (symbol.flags & 16384) !== 0;
                  function reportImplementationExpectedError(node) {
                      if (node.name && ts.nodeIsMissing(node.name)) {
                          return;
                      }
                      var seen = false;
                      var subsequentNode = ts.forEachChild(node.parent, function (c) {
                          if (seen) {
                              return c;
                          }
                          else {
                              seen = c === node;
                          }
                      });
                      if (subsequentNode) {
                          if (subsequentNode.kind === node.kind) {
                              var errorNode_1 = subsequentNode.name || subsequentNode;
                              if (node.name && subsequentNode.name && node.name.text === subsequentNode.name.text) {
                                  ts.Debug.assert(node.kind === 135 || node.kind === 134);
                                  ts.Debug.assert((node.flags & 128) !== (subsequentNode.flags & 128));
                                  var diagnostic = node.flags & 128 ? ts.Diagnostics.Function_overload_must_be_static : ts.Diagnostics.Function_overload_must_not_be_static;
                                  error(errorNode_1, diagnostic);
                                  return;
                              }
                              else if (ts.nodeIsPresent(subsequentNode.body)) {
                                  error(errorNode_1, ts.Diagnostics.Function_implementation_name_must_be_0, ts.declarationNameToString(node.name));
                                  return;
                              }
                          }
                      }
                      var errorNode = node.name || node;
                      if (isConstructor) {
                          error(errorNode, ts.Diagnostics.Constructor_implementation_is_missing);
                      }
                      else {
                          error(errorNode, ts.Diagnostics.Function_implementation_is_missing_or_not_immediately_following_the_declaration);
                      }
                  }
                  var isExportSymbolInsideModule = symbol.parent && symbol.parent.flags & 1536;
                  var duplicateFunctionDeclaration = false;
                  var multipleConstructorImplementation = false;
                  for (var _i = 0; _i < declarations.length; _i++) {
                      var current = declarations[_i];
                      var node = current;
                      var inAmbientContext = ts.isInAmbientContext(node);
                      var inAmbientContextOrInterface = node.parent.kind === 203 || node.parent.kind === 146 || inAmbientContext;
                      if (inAmbientContextOrInterface) {
                          previousDeclaration = undefined;
                      }
                      if (node.kind === 201 || node.kind === 135 || node.kind === 134 || node.kind === 136) {
                          var currentNodeFlags = getEffectiveDeclarationFlags(node, flagsToCheck);
                          someNodeFlags |= currentNodeFlags;
                          allNodeFlags &= currentNodeFlags;
                          someHaveQuestionToken = someHaveQuestionToken || ts.hasQuestionToken(node);
                          allHaveQuestionToken = allHaveQuestionToken && ts.hasQuestionToken(node);
                          if (ts.nodeIsPresent(node.body) && bodyDeclaration) {
                              if (isConstructor) {
                                  multipleConstructorImplementation = true;
                              }
                              else {
                                  duplicateFunctionDeclaration = true;
                              }
                          }
                          else if (!isExportSymbolInsideModule && previousDeclaration && previousDeclaration.parent === node.parent && previousDeclaration.end !== node.pos) {
                              reportImplementationExpectedError(previousDeclaration);
                          }
                          if (ts.nodeIsPresent(node.body)) {
                              if (!bodyDeclaration) {
                                  bodyDeclaration = node;
                              }
                          }
                          else {
                              hasOverloads = true;
                          }
                          previousDeclaration = node;
                          if (!inAmbientContextOrInterface) {
                              lastSeenNonAmbientDeclaration = node;
                          }
                      }
                  }
                  if (multipleConstructorImplementation) {
                      ts.forEach(declarations, function (declaration) {
                          error(declaration, ts.Diagnostics.Multiple_constructor_implementations_are_not_allowed);
                      });
                  }
                  if (duplicateFunctionDeclaration) {
                      ts.forEach(declarations, function (declaration) {
                          error(declaration.name, ts.Diagnostics.Duplicate_function_implementation);
                      });
                  }
                  if (!isExportSymbolInsideModule && lastSeenNonAmbientDeclaration && !lastSeenNonAmbientDeclaration.body) {
                      reportImplementationExpectedError(lastSeenNonAmbientDeclaration);
                  }
                  if (hasOverloads) {
                      checkFlagAgreementBetweenOverloads(declarations, bodyDeclaration, flagsToCheck, someNodeFlags, allNodeFlags);
                      checkQuestionTokenAgreementBetweenOverloads(declarations, bodyDeclaration, someHaveQuestionToken, allHaveQuestionToken);
                      if (bodyDeclaration) {
                          var signatures = getSignaturesOfSymbol(symbol);
                          var bodySignature = getSignatureFromDeclaration(bodyDeclaration);
                          if (!bodySignature.hasStringLiterals) {
                              for (var _a = 0; _a < signatures.length; _a++) {
                                  var signature = signatures[_a];
                                  if (!signature.hasStringLiterals && !isSignatureAssignableTo(bodySignature, signature)) {
                                      error(signature.declaration, ts.Diagnostics.Overload_signature_is_not_compatible_with_function_implementation);
                                      break;
                                  }
                              }
                          }
                      }
                  }
              }
              function checkExportsOnMergedDeclarations(node) {
                  if (!produceDiagnostics) {
                      return;
                  }
                  var symbol = node.localSymbol;
                  if (!symbol) {
                      symbol = getSymbolOfNode(node);
                      if (!(symbol.flags & 7340032)) {
                          return;
                      }
                  }
                  if (ts.getDeclarationOfKind(symbol, node.kind) !== node) {
                      return;
                  }
                  var exportedDeclarationSpaces = 0;
                  var nonExportedDeclarationSpaces = 0;
                  ts.forEach(symbol.declarations, function (d) {
                      var declarationSpaces = getDeclarationSpaces(d);
                      if (getEffectiveDeclarationFlags(d, 1)) {
                          exportedDeclarationSpaces |= declarationSpaces;
                      }
                      else {
                          nonExportedDeclarationSpaces |= declarationSpaces;
                      }
                  });
                  var commonDeclarationSpace = exportedDeclarationSpaces & nonExportedDeclarationSpaces;
                  if (commonDeclarationSpace) {
                      ts.forEach(symbol.declarations, function (d) {
                          if (getDeclarationSpaces(d) & commonDeclarationSpace) {
                              error(d.name, ts.Diagnostics.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local, ts.declarationNameToString(d.name));
                          }
                      });
                  }
                  function getDeclarationSpaces(d) {
                      switch (d.kind) {
                          case 203:
                              return 2097152;
                          case 206:
                              return d.name.kind === 8 || ts.getModuleInstanceState(d) !== 0
                                  ? 4194304 | 1048576
                                  : 4194304;
                          case 202:
                          case 205:
                              return 2097152 | 1048576;
                          case 209:
                              var result = 0;
                              var target = resolveAlias(getSymbolOfNode(d));
                              ts.forEach(target.declarations, function (d) { result |= getDeclarationSpaces(d); });
                              return result;
                          default:
                              return 1048576;
                      }
                  }
              }
              function checkDecorator(node) {
                  var expression = node.expression;
                  var exprType = checkExpression(expression);
                  switch (node.parent.kind) {
                      case 202:
                          var classSymbol = getSymbolOfNode(node.parent);
                          var classConstructorType = getTypeOfSymbol(classSymbol);
                          var classDecoratorType = instantiateSingleCallFunctionType(getGlobalClassDecoratorType(), [classConstructorType]);
                          checkTypeAssignableTo(exprType, classDecoratorType, node);
                          break;
                      case 133:
                          checkTypeAssignableTo(exprType, getGlobalPropertyDecoratorType(), node);
                          break;
                      case 135:
                      case 137:
                      case 138:
                          var methodType = getTypeOfNode(node.parent);
                          var methodDecoratorType = instantiateSingleCallFunctionType(getGlobalMethodDecoratorType(), [methodType]);
                          checkTypeAssignableTo(exprType, methodDecoratorType, node);
                          break;
                      case 130:
                          checkTypeAssignableTo(exprType, getGlobalParameterDecoratorType(), node);
                          break;
                  }
              }
              function checkTypeNodeAsExpression(node) {
                  if (node && node.kind === 142) {
                      var type = getTypeFromTypeNode(node);
                      var shouldCheckIfUnknownType = type === unknownType && compilerOptions.separateCompilation;
                      if (!type || (!shouldCheckIfUnknownType && type.flags & (1048703 | 132 | 258))) {
                          return;
                      }
                      if (shouldCheckIfUnknownType || type.symbol.valueDeclaration) {
                          checkExpressionOrQualifiedName(node.typeName);
                      }
                  }
              }
              function checkTypeAnnotationAsExpression(node) {
                  switch (node.kind) {
                      case 133:
                          checkTypeNodeAsExpression(node.type);
                          break;
                      case 130:
                          checkTypeNodeAsExpression(node.type);
                          break;
                      case 135:
                          checkTypeNodeAsExpression(node.type);
                          break;
                      case 137:
                          checkTypeNodeAsExpression(node.type);
                          break;
                      case 138:
                          checkTypeNodeAsExpression(getSetAccessorTypeAnnotationNode(node));
                          break;
                  }
              }
              function checkParameterTypeAnnotationsAsExpressions(node) {
                  for (var _i = 0, _a = node.parameters; _i < _a.length; _i++) {
                      var parameter = _a[_i];
                      checkTypeAnnotationAsExpression(parameter);
                  }
              }
              function checkDecorators(node) {
                  if (!node.decorators) {
                      return;
                  }
                  if (!ts.nodeCanBeDecorated(node)) {
                      return;
                  }
                  if (compilerOptions.emitDecoratorMetadata) {
                      switch (node.kind) {
                          case 202:
                              var constructor = ts.getFirstConstructorWithBody(node);
                              if (constructor) {
                                  checkParameterTypeAnnotationsAsExpressions(constructor);
                              }
                              break;
                          case 135:
                              checkParameterTypeAnnotationsAsExpressions(node);
                          case 138:
                          case 137:
                          case 133:
                          case 130:
                              checkTypeAnnotationAsExpression(node);
                              break;
                      }
                  }
                  emitDecorate = true;
                  if (node.kind === 130) {
                      emitParam = true;
                  }
                  ts.forEach(node.decorators, checkDecorator);
              }
              function checkFunctionDeclaration(node) {
                  if (produceDiagnostics) {
                      checkFunctionLikeDeclaration(node) ||
                          checkGrammarDisallowedModifiersInBlockOrObjectLiteralExpression(node) ||
                          checkGrammarFunctionName(node.name) ||
                          checkGrammarForGenerator(node);
                      checkCollisionWithCapturedSuperVariable(node, node.name);
                      checkCollisionWithCapturedThisVariable(node, node.name);
                      checkCollisionWithRequireExportsInGeneratedCode(node, node.name);
                  }
              }
              function checkFunctionLikeDeclaration(node) {
                  checkGrammarDeclarationNameInStrictMode(node);
                  checkDecorators(node);
                  checkSignatureDeclaration(node);
                  if (node.name && node.name.kind === 128) {
                      checkComputedPropertyName(node.name);
                  }
                  if (!ts.hasDynamicName(node)) {
                      var symbol = getSymbolOfNode(node);
                      var localSymbol = node.localSymbol || symbol;
                      var firstDeclaration = ts.getDeclarationOfKind(localSymbol, node.kind);
                      if (node === firstDeclaration) {
                          checkFunctionOrConstructorSymbol(localSymbol);
                      }
                      if (symbol.parent) {
                          if (ts.getDeclarationOfKind(symbol, node.kind) === node) {
                              checkFunctionOrConstructorSymbol(symbol);
                          }
                      }
                  }
                  checkSourceElement(node.body);
                  if (node.type && !isAccessor(node.kind) && !node.asteriskToken) {
                      checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(node, getTypeFromTypeNode(node.type));
                  }
                  if (compilerOptions.noImplicitAny && ts.nodeIsMissing(node.body) && !node.type && !isPrivateWithinAmbient(node)) {
                      reportImplicitAnyError(node, anyType);
                  }
              }
              function checkBlock(node) {
                  if (node.kind === 180) {
                      checkGrammarStatementInAmbientContext(node);
                  }
                  ts.forEach(node.statements, checkSourceElement);
                  if (ts.isFunctionBlock(node) || node.kind === 207) {
                      checkFunctionExpressionBodies(node);
                  }
              }
              function checkCollisionWithArgumentsInGeneratedCode(node) {
                  if (!ts.hasRestParameters(node) || ts.isInAmbientContext(node) || ts.nodeIsMissing(node.body)) {
                      return;
                  }
                  ts.forEach(node.parameters, function (p) {
                      if (p.name && !ts.isBindingPattern(p.name) && p.name.text === argumentsSymbol.name) {
                          error(p, ts.Diagnostics.Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters);
                      }
                  });
              }
              function needCollisionCheckForIdentifier(node, identifier, name) {
                  if (!(identifier && identifier.text === name)) {
                      return false;
                  }
                  if (node.kind === 133 ||
                      node.kind === 132 ||
                      node.kind === 135 ||
                      node.kind === 134 ||
                      node.kind === 137 ||
                      node.kind === 138) {
                      return false;
                  }
                  if (ts.isInAmbientContext(node)) {
                      return false;
                  }
                  var root = ts.getRootDeclaration(node);
                  if (root.kind === 130 && ts.nodeIsMissing(root.parent.body)) {
                      return false;
                  }
                  return true;
              }
              function checkCollisionWithCapturedThisVariable(node, name) {
                  if (needCollisionCheckForIdentifier(node, name, "_this")) {
                      potentialThisCollisions.push(node);
                  }
              }
              function checkIfThisIsCapturedInEnclosingScope(node) {
                  var current = node;
                  while (current) {
                      if (getNodeCheckFlags(current) & 4) {
                          var isDeclaration_1 = node.kind !== 65;
                          if (isDeclaration_1) {
                              error(node.name, ts.Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference);
                          }
                          else {
                              error(node, ts.Diagnostics.Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference);
                          }
                          return;
                      }
                      current = current.parent;
                  }
              }
              function checkCollisionWithCapturedSuperVariable(node, name) {
                  if (!needCollisionCheckForIdentifier(node, name, "_super")) {
                      return;
                  }
                  var enclosingClass = ts.getAncestor(node, 202);
                  if (!enclosingClass || ts.isInAmbientContext(enclosingClass)) {
                      return;
                  }
                  if (ts.getClassExtendsHeritageClauseElement(enclosingClass)) {
                      var isDeclaration_2 = node.kind !== 65;
                      if (isDeclaration_2) {
                          error(node, ts.Diagnostics.Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference);
                      }
                      else {
                          error(node, ts.Diagnostics.Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference);
                      }
                  }
              }
              function checkCollisionWithRequireExportsInGeneratedCode(node, name) {
                  if (!needCollisionCheckForIdentifier(node, name, "require") && !needCollisionCheckForIdentifier(node, name, "exports")) {
                      return;
                  }
                  if (node.kind === 206 && ts.getModuleInstanceState(node) !== 1) {
                      return;
                  }
                  var parent = getDeclarationContainer(node);
                  if (parent.kind === 228 && ts.isExternalModule(parent)) {
                      error(name, ts.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module, ts.declarationNameToString(name), ts.declarationNameToString(name));
                  }
              }
              function checkVarDeclaredNamesNotShadowed(node) {
                  // - ScriptBody : StatementList
                  // It is a Syntax Error if any element of the LexicallyDeclaredNames of StatementList
                  // also occurs in the VarDeclaredNames of StatementList.
                  if ((ts.getCombinedNodeFlags(node) & 12288) !== 0 || ts.isParameterDeclaration(node)) {
                      return;
                  }
                  if (node.kind === 199 && !node.initializer) {
                      return;
                  }
                  var symbol = getSymbolOfNode(node);
                  if (symbol.flags & 1) {
                      var localDeclarationSymbol = resolveName(node, node.name.text, 3, undefined, undefined);
                      if (localDeclarationSymbol &&
                          localDeclarationSymbol !== symbol &&
                          localDeclarationSymbol.flags & 2) {
                          if (getDeclarationFlagsFromSymbol(localDeclarationSymbol) & 12288) {
                              var varDeclList = ts.getAncestor(localDeclarationSymbol.valueDeclaration, 200);
                              var container = varDeclList.parent.kind === 181 && varDeclList.parent.parent
                                  ? varDeclList.parent.parent
                                  : undefined;
                              var namesShareScope = container &&
                                  (container.kind === 180 && ts.isFunctionLike(container.parent) ||
                                      container.kind === 207 ||
                                      container.kind === 206 ||
                                      container.kind === 228);
                              if (!namesShareScope) {
                                  var name_9 = symbolToString(localDeclarationSymbol);
                                  error(node, ts.Diagnostics.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1, name_9, name_9);
                              }
                          }
                      }
                  }
              }
              function checkParameterInitializer(node) {
                  if (ts.getRootDeclaration(node).kind !== 130) {
                      return;
                  }
                  var func = ts.getContainingFunction(node);
                  visit(node.initializer);
                  function visit(n) {
                      if (n.kind === 65) {
                          var referencedSymbol = getNodeLinks(n).resolvedSymbol;
                          if (referencedSymbol && referencedSymbol !== unknownSymbol && getSymbol(func.locals, referencedSymbol.name, 107455) === referencedSymbol) {
                              if (referencedSymbol.valueDeclaration.kind === 130) {
                                  if (referencedSymbol.valueDeclaration === node) {
                                      error(n, ts.Diagnostics.Parameter_0_cannot_be_referenced_in_its_initializer, ts.declarationNameToString(node.name));
                                      return;
                                  }
                                  if (referencedSymbol.valueDeclaration.pos < node.pos) {
                                      return;
                                  }
                              }
                              error(n, ts.Diagnostics.Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it, ts.declarationNameToString(node.name), ts.declarationNameToString(n));
                          }
                      }
                      else {
                          ts.forEachChild(n, visit);
                      }
                  }
              }
              function checkVariableLikeDeclaration(node) {
                  checkGrammarDeclarationNameInStrictMode(node);
                  checkDecorators(node);
                  checkSourceElement(node.type);
                  if (node.name.kind === 128) {
                      checkComputedPropertyName(node.name);
                      if (node.initializer) {
                          checkExpressionCached(node.initializer);
                      }
                  }
                  if (ts.isBindingPattern(node.name)) {
                      ts.forEach(node.name.elements, checkSourceElement);
                  }
                  if (node.initializer && ts.getRootDeclaration(node).kind === 130 && ts.nodeIsMissing(ts.getContainingFunction(node).body)) {
                      error(node, ts.Diagnostics.A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation);
                      return;
                  }
                  if (ts.isBindingPattern(node.name)) {
                      if (node.initializer) {
                          checkTypeAssignableTo(checkExpressionCached(node.initializer), getWidenedTypeForVariableLikeDeclaration(node), node, undefined);
                          checkParameterInitializer(node);
                      }
                      return;
                  }
                  var symbol = getSymbolOfNode(node);
                  var type = getTypeOfVariableOrParameterOrProperty(symbol);
                  if (node === symbol.valueDeclaration) {
                      if (node.initializer) {
                          checkTypeAssignableTo(checkExpressionCached(node.initializer), type, node, undefined);
                          checkParameterInitializer(node);
                      }
                  }
                  else {
                      var declarationType = getWidenedTypeForVariableLikeDeclaration(node);
                      if (type !== unknownType && declarationType !== unknownType && !isTypeIdenticalTo(type, declarationType)) {
                          error(node.name, ts.Diagnostics.Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2, ts.declarationNameToString(node.name), typeToString(type), typeToString(declarationType));
                      }
                      if (node.initializer) {
                          checkTypeAssignableTo(checkExpressionCached(node.initializer), declarationType, node, undefined);
                      }
                  }
                  if (node.kind !== 133 && node.kind !== 132) {
                      checkExportsOnMergedDeclarations(node);
                      if (node.kind === 199 || node.kind === 153) {
                          checkVarDeclaredNamesNotShadowed(node);
                      }
                      checkCollisionWithCapturedSuperVariable(node, node.name);
                      checkCollisionWithCapturedThisVariable(node, node.name);
                      checkCollisionWithRequireExportsInGeneratedCode(node, node.name);
                  }
              }
              function checkVariableDeclaration(node) {
                  checkGrammarVariableDeclaration(node);
                  return checkVariableLikeDeclaration(node);
              }
              function checkBindingElement(node) {
                  checkGrammarBindingElement(node);
                  return checkVariableLikeDeclaration(node);
              }
              function checkVariableStatement(node) {
                  checkGrammarDecorators(node) || checkGrammarDisallowedModifiersInBlockOrObjectLiteralExpression(node) || checkGrammarModifiers(node) || checkGrammarVariableDeclarationList(node.declarationList) || checkGrammarForDisallowedLetOrConstStatement(node);
                  ts.forEach(node.declarationList.declarations, checkSourceElement);
              }
              function checkGrammarDisallowedModifiersInBlockOrObjectLiteralExpression(node) {
                  if (node.modifiers) {
                      if (inBlockOrObjectLiteralExpression(node)) {
                          return grammarErrorOnFirstToken(node, ts.Diagnostics.Modifiers_cannot_appear_here);
                      }
                  }
              }
              function inBlockOrObjectLiteralExpression(node) {
                  while (node) {
                      if (node.kind === 180 || node.kind === 155) {
                          return true;
                      }
                      node = node.parent;
                  }
              }
              function checkExpressionStatement(node) {
                  checkGrammarStatementInAmbientContext(node);
                  checkExpression(node.expression);
              }
              function checkIfStatement(node) {
                  checkGrammarStatementInAmbientContext(node);
                  checkExpression(node.expression);
                  checkSourceElement(node.thenStatement);
                  checkSourceElement(node.elseStatement);
              }
              function checkDoStatement(node) {
                  checkGrammarStatementInAmbientContext(node);
                  checkSourceElement(node.statement);
                  checkExpression(node.expression);
              }
              function checkWhileStatement(node) {
                  checkGrammarStatementInAmbientContext(node);
                  checkExpression(node.expression);
                  checkSourceElement(node.statement);
              }
              function checkForStatement(node) {
                  if (!checkGrammarStatementInAmbientContext(node)) {
                      if (node.initializer && node.initializer.kind == 200) {
                          checkGrammarVariableDeclarationList(node.initializer);
                      }
                  }
                  if (node.initializer) {
                      if (node.initializer.kind === 200) {
                          ts.forEach(node.initializer.declarations, checkVariableDeclaration);
                      }
                      else {
                          checkExpression(node.initializer);
                      }
                  }
                  if (node.condition)
                      checkExpression(node.condition);
                  if (node.incrementor)
                      checkExpression(node.incrementor);
                  checkSourceElement(node.statement);
              }
              function checkForOfStatement(node) {
                  checkGrammarForInOrForOfStatement(node);
                  if (node.initializer.kind === 200) {
                      checkForInOrForOfVariableDeclaration(node);
                  }
                  else {
                      var varExpr = node.initializer;
                      var iteratedType = checkRightHandSideOfForOf(node.expression);
                      if (varExpr.kind === 154 || varExpr.kind === 155) {
                          checkDestructuringAssignment(varExpr, iteratedType || unknownType);
                      }
                      else {
                          var leftType = checkExpression(varExpr);
                          checkReferenceExpression(varExpr, ts.Diagnostics.Invalid_left_hand_side_in_for_of_statement, ts.Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_be_a_previously_defined_constant);
                          if (iteratedType) {
                              checkTypeAssignableTo(iteratedType, leftType, varExpr, undefined);
                          }
                      }
                  }
                  checkSourceElement(node.statement);
              }
              function checkForInStatement(node) {
                  checkGrammarForInOrForOfStatement(node);
                  if (node.initializer.kind === 200) {
                      var variable = node.initializer.declarations[0];
                      if (variable && ts.isBindingPattern(variable.name)) {
                          error(variable.name, ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern);
                      }
                      checkForInOrForOfVariableDeclaration(node);
                  }
                  else {
                      var varExpr = node.initializer;
                      var leftType = checkExpression(varExpr);
                      if (varExpr.kind === 154 || varExpr.kind === 155) {
                          error(varExpr, ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern);
                      }
                      else if (!allConstituentTypesHaveKind(leftType, 1 | 258)) {
                          error(varExpr, ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any);
                      }
                      else {
                          checkReferenceExpression(varExpr, ts.Diagnostics.Invalid_left_hand_side_in_for_in_statement, ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_previously_defined_constant);
                      }
                  }
                  var rightType = checkExpression(node.expression);
                  if (!allConstituentTypesHaveKind(rightType, 1 | 48128 | 512)) {
                      error(node.expression, ts.Diagnostics.The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter);
                  }
                  checkSourceElement(node.statement);
              }
              function checkForInOrForOfVariableDeclaration(iterationStatement) {
                  var variableDeclarationList = iterationStatement.initializer;
                  if (variableDeclarationList.declarations.length >= 1) {
                      var decl = variableDeclarationList.declarations[0];
                      checkVariableDeclaration(decl);
                  }
              }
              function checkRightHandSideOfForOf(rhsExpression) {
                  var expressionType = getTypeOfExpression(rhsExpression);
                  return checkIteratedTypeOrElementType(expressionType, rhsExpression, true);
              }
              function checkIteratedTypeOrElementType(inputType, errorNode, allowStringInput) {
                  if (inputType.flags & 1) {
                      return inputType;
                  }
                  if (languageVersion >= 2) {
                      return checkIteratedType(inputType, errorNode) || anyType;
                  }
                  if (allowStringInput) {
                      return checkElementTypeOfArrayOrString(inputType, errorNode);
                  }
                  if (isArrayLikeType(inputType)) {
                      var indexType = getIndexTypeOfType(inputType, 1);
                      if (indexType) {
                          return indexType;
                      }
                  }
                  error(errorNode, ts.Diagnostics.Type_0_is_not_an_array_type, typeToString(inputType));
                  return unknownType;
              }
              function checkIteratedType(iterable, errorNode) {
                  ts.Debug.assert(languageVersion >= 2);
                  var iteratedType = getIteratedType(iterable, errorNode);
                  if (errorNode && iteratedType) {
                      checkTypeAssignableTo(iterable, createIterableType(iteratedType), errorNode);
                  }
                  return iteratedType;
                  function getIteratedType(iterable, errorNode) {
                      // We want to treat type as an iterable, and get the type it is an iterable of. The iterable
                      // must have the following structure (annotated with the names of the variables below):
                      //
                      // { // iterable
                      //     [Symbol.iterator]: { // iteratorFunction
                      //         (): { // iterator
                      //             next: { // iteratorNextFunction
                      //                 (): { // iteratorNextResult
                      //                     value: T // iteratorNextValue
                      //                 }
                      //             }
                      //         }
                      //     }
                      // }
                      //
                      // T is the type we are after. At every level that involves analyzing return types
                      // of signatures, we union the return types of all the signatures.
                      //
                      // Another thing to note is that at any step of this process, we could run into a dead end,
                      // meaning either the property is missing, or we run into the anyType. If either of these things
                      // happens, we return undefined to signal that we could not find the iterated type. If a property
                      // is missing, and the previous step did not result in 'any', then we also give an error if the
                      // caller requested it. Then the caller can decide what to do in the case where there is no iterated
                      // type. This is different from returning anyType, because that would signify that we have matched the
                      // whole pattern and that T (above) is 'any'.
                      if (allConstituentTypesHaveKind(iterable, 1)) {
                          return undefined;
                      }
                      if ((iterable.flags & 4096) && iterable.target === globalIterableType) {
                          return iterable.typeArguments[0];
                      }
                      var iteratorFunction = getTypeOfPropertyOfType(iterable, ts.getPropertyNameForKnownSymbolName("iterator"));
                      if (iteratorFunction && allConstituentTypesHaveKind(iteratorFunction, 1)) {
                          return undefined;
                      }
                      var iteratorFunctionSignatures = iteratorFunction ? getSignaturesOfType(iteratorFunction, 0) : emptyArray;
                      if (iteratorFunctionSignatures.length === 0) {
                          if (errorNode) {
                              error(errorNode, ts.Diagnostics.Type_must_have_a_Symbol_iterator_method_that_returns_an_iterator);
                          }
                          return undefined;
                      }
                      var iterator = getUnionType(ts.map(iteratorFunctionSignatures, getReturnTypeOfSignature));
                      if (allConstituentTypesHaveKind(iterator, 1)) {
                          return undefined;
                      }
                      var iteratorNextFunction = getTypeOfPropertyOfType(iterator, "next");
                      if (iteratorNextFunction && allConstituentTypesHaveKind(iteratorNextFunction, 1)) {
                          return undefined;
                      }
                      var iteratorNextFunctionSignatures = iteratorNextFunction ? getSignaturesOfType(iteratorNextFunction, 0) : emptyArray;
                      if (iteratorNextFunctionSignatures.length === 0) {
                          if (errorNode) {
                              error(errorNode, ts.Diagnostics.An_iterator_must_have_a_next_method);
                          }
                          return undefined;
                      }
                      var iteratorNextResult = getUnionType(ts.map(iteratorNextFunctionSignatures, getReturnTypeOfSignature));
                      if (allConstituentTypesHaveKind(iteratorNextResult, 1)) {
                          return undefined;
                      }
                      var iteratorNextValue = getTypeOfPropertyOfType(iteratorNextResult, "value");
                      if (!iteratorNextValue) {
                          if (errorNode) {
                              error(errorNode, ts.Diagnostics.The_type_returned_by_the_next_method_of_an_iterator_must_have_a_value_property);
                          }
                          return undefined;
                      }
                      return iteratorNextValue;
                  }
              }
              function checkElementTypeOfArrayOrString(arrayOrStringType, errorNode) {
                  ts.Debug.assert(languageVersion < 2);
                  var arrayType = removeTypesFromUnionType(arrayOrStringType, 258, true, true);
                  var hasStringConstituent = arrayOrStringType !== arrayType;
                  var reportedError = false;
                  if (hasStringConstituent) {
                      if (languageVersion < 1) {
                          error(errorNode, ts.Diagnostics.Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher);
                          reportedError = true;
                      }
                      if (arrayType === emptyObjectType) {
                          return stringType;
                      }
                  }
                  if (!isArrayLikeType(arrayType)) {
                      if (!reportedError) {
                          var diagnostic = hasStringConstituent
                              ? ts.Diagnostics.Type_0_is_not_an_array_type
                              : ts.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type;
                          error(errorNode, diagnostic, typeToString(arrayType));
                      }
                      return hasStringConstituent ? stringType : unknownType;
                  }
                  var arrayElementType = getIndexTypeOfType(arrayType, 1) || unknownType;
                  if (hasStringConstituent) {
                      if (arrayElementType.flags & 258) {
                          return stringType;
                      }
                      return getUnionType([arrayElementType, stringType]);
                  }
                  return arrayElementType;
              }
              function checkBreakOrContinueStatement(node) {
                  checkGrammarStatementInAmbientContext(node) || checkGrammarBreakOrContinueStatement(node);
              }
              function isGetAccessorWithAnnotatatedSetAccessor(node) {
                  return !!(node.kind === 137 && getSetAccessorTypeAnnotationNode(ts.getDeclarationOfKind(node.symbol, 138)));
              }
              function checkReturnStatement(node) {
                  if (!checkGrammarStatementInAmbientContext(node)) {
                      var functionBlock = ts.getContainingFunction(node);
                      if (!functionBlock) {
                          grammarErrorOnFirstToken(node, ts.Diagnostics.A_return_statement_can_only_be_used_within_a_function_body);
                      }
                  }
                  if (node.expression) {
                      var func = ts.getContainingFunction(node);
                      if (func) {
                          var returnType = getReturnTypeOfSignature(getSignatureFromDeclaration(func));
                          var exprType = checkExpressionCached(node.expression);
                          if (func.kind === 138) {
                              error(node.expression, ts.Diagnostics.Setters_cannot_return_a_value);
                          }
                          else {
                              if (func.kind === 136) {
                                  if (!isTypeAssignableTo(exprType, returnType)) {
                                      error(node.expression, ts.Diagnostics.Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class);
                                  }
                              }
                              else if (func.type || isGetAccessorWithAnnotatatedSetAccessor(func)) {
                                  checkTypeAssignableTo(exprType, returnType, node.expression, undefined);
                              }
                          }
                      }
                  }
              }
              function checkWithStatement(node) {
                  if (!checkGrammarStatementInAmbientContext(node)) {
                      if (node.parserContextFlags & 1) {
                          grammarErrorOnFirstToken(node, ts.Diagnostics.with_statements_are_not_allowed_in_strict_mode);
                      }
                  }
                  checkExpression(node.expression);
                  error(node.expression, ts.Diagnostics.All_symbols_within_a_with_block_will_be_resolved_to_any);
              }
              function checkSwitchStatement(node) {
                  checkGrammarStatementInAmbientContext(node);
                  var firstDefaultClause;
                  var hasDuplicateDefaultClause = false;
                  var expressionType = checkExpression(node.expression);
                  ts.forEach(node.caseBlock.clauses, function (clause) {
                      if (clause.kind === 222 && !hasDuplicateDefaultClause) {
                          if (firstDefaultClause === undefined) {
                              firstDefaultClause = clause;
                          }
                          else {
                              var sourceFile = ts.getSourceFileOfNode(node);
                              var start = ts.skipTrivia(sourceFile.text, clause.pos);
                              var end = clause.statements.length > 0 ? clause.statements[0].pos : clause.end;
                              grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement);
                              hasDuplicateDefaultClause = true;
                          }
                      }
                      if (produceDiagnostics && clause.kind === 221) {
                          var caseClause = clause;
                          var caseType = checkExpression(caseClause.expression);
                          if (!isTypeAssignableTo(expressionType, caseType)) {
                              checkTypeAssignableTo(caseType, expressionType, caseClause.expression, undefined);
                          }
                      }
                      ts.forEach(clause.statements, checkSourceElement);
                  });
              }
              function checkLabeledStatement(node) {
                  if (!checkGrammarStatementInAmbientContext(node)) {
                      var current = node.parent;
                      while (current) {
                          if (ts.isFunctionLike(current)) {
                              break;
                          }
                          if (current.kind === 195 && current.label.text === node.label.text) {
                              var sourceFile = ts.getSourceFileOfNode(node);
                              grammarErrorOnNode(node.label, ts.Diagnostics.Duplicate_label_0, ts.getTextOfNodeFromSourceText(sourceFile.text, node.label));
                              break;
                          }
                          current = current.parent;
                      }
                  }
                  checkSourceElement(node.statement);
              }
              function checkThrowStatement(node) {
                  if (!checkGrammarStatementInAmbientContext(node)) {
                      if (node.expression === undefined) {
                          grammarErrorAfterFirstToken(node, ts.Diagnostics.Line_break_not_permitted_here);
                      }
                  }
                  if (node.expression) {
                      checkExpression(node.expression);
                  }
              }
              function checkTryStatement(node) {
                  checkGrammarStatementInAmbientContext(node);
                  checkBlock(node.tryBlock);
                  var catchClause = node.catchClause;
                  if (catchClause) {
                      if (catchClause.variableDeclaration) {
                          if (catchClause.variableDeclaration.name.kind !== 65) {
                              grammarErrorOnFirstToken(catchClause.variableDeclaration.name, ts.Diagnostics.Catch_clause_variable_name_must_be_an_identifier);
                          }
                          else if (catchClause.variableDeclaration.type) {
                              grammarErrorOnFirstToken(catchClause.variableDeclaration.type, ts.Diagnostics.Catch_clause_variable_cannot_have_a_type_annotation);
                          }
                          else if (catchClause.variableDeclaration.initializer) {
                              grammarErrorOnFirstToken(catchClause.variableDeclaration.initializer, ts.Diagnostics.Catch_clause_variable_cannot_have_an_initializer);
                          }
                          else {
                              var identifierName = catchClause.variableDeclaration.name.text;
                              var locals = catchClause.block.locals;
                              if (locals && ts.hasProperty(locals, identifierName)) {
                                  var localSymbol = locals[identifierName];
                                  if (localSymbol && (localSymbol.flags & 2) !== 0) {
                                      grammarErrorOnNode(localSymbol.valueDeclaration, ts.Diagnostics.Cannot_redeclare_identifier_0_in_catch_clause, identifierName);
                                  }
                              }
                              checkGrammarEvalOrArgumentsInStrictMode(node, catchClause.variableDeclaration.name);
                          }
                      }
                      checkBlock(catchClause.block);
                  }
                  if (node.finallyBlock) {
                      checkBlock(node.finallyBlock);
                  }
              }
              function checkIndexConstraints(type) {
                  var declaredNumberIndexer = getIndexDeclarationOfSymbol(type.symbol, 1);
                  var declaredStringIndexer = getIndexDeclarationOfSymbol(type.symbol, 0);
                  var stringIndexType = getIndexTypeOfType(type, 0);
                  var numberIndexType = getIndexTypeOfType(type, 1);
                  if (stringIndexType || numberIndexType) {
                      ts.forEach(getPropertiesOfObjectType(type), function (prop) {
                          var propType = getTypeOfSymbol(prop);
                          checkIndexConstraintForProperty(prop, propType, type, declaredStringIndexer, stringIndexType, 0);
                          checkIndexConstraintForProperty(prop, propType, type, declaredNumberIndexer, numberIndexType, 1);
                      });
                      if (type.flags & 1024 && type.symbol.valueDeclaration.kind === 202) {
                          var classDeclaration = type.symbol.valueDeclaration;
                          for (var _i = 0, _a = classDeclaration.members; _i < _a.length; _i++) {
                              var member = _a[_i];
                              if (!(member.flags & 128) && ts.hasDynamicName(member)) {
                                  var propType = getTypeOfSymbol(member.symbol);
                                  checkIndexConstraintForProperty(member.symbol, propType, type, declaredStringIndexer, stringIndexType, 0);
                                  checkIndexConstraintForProperty(member.symbol, propType, type, declaredNumberIndexer, numberIndexType, 1);
                              }
                          }
                      }
                  }
                  var errorNode;
                  if (stringIndexType && numberIndexType) {
                      errorNode = declaredNumberIndexer || declaredStringIndexer;
                      if (!errorNode && (type.flags & 2048)) {
                          var someBaseTypeHasBothIndexers = ts.forEach(getBaseTypes(type), function (base) { return getIndexTypeOfType(base, 0) && getIndexTypeOfType(base, 1); });
                          errorNode = someBaseTypeHasBothIndexers ? undefined : type.symbol.declarations[0];
                      }
                  }
                  if (errorNode && !isTypeAssignableTo(numberIndexType, stringIndexType)) {
                      error(errorNode, ts.Diagnostics.Numeric_index_type_0_is_not_assignable_to_string_index_type_1, typeToString(numberIndexType), typeToString(stringIndexType));
                  }
                  function checkIndexConstraintForProperty(prop, propertyType, containingType, indexDeclaration, indexType, indexKind) {
                      if (!indexType) {
                          return;
                      }
                      if (indexKind === 1 && !isNumericName(prop.valueDeclaration.name)) {
                          return;
                      }
                      var errorNode;
                      if (prop.valueDeclaration.name.kind === 128 || prop.parent === containingType.symbol) {
                          errorNode = prop.valueDeclaration;
                      }
                      else if (indexDeclaration) {
                          errorNode = indexDeclaration;
                      }
                      else if (containingType.flags & 2048) {
                          var someBaseClassHasBothPropertyAndIndexer = ts.forEach(getBaseTypes(containingType), function (base) { return getPropertyOfObjectType(base, prop.name) && getIndexTypeOfType(base, indexKind); });
                          errorNode = someBaseClassHasBothPropertyAndIndexer ? undefined : containingType.symbol.declarations[0];
                      }
                      if (errorNode && !isTypeAssignableTo(propertyType, indexType)) {
                          var errorMessage = indexKind === 0
                              ? ts.Diagnostics.Property_0_of_type_1_is_not_assignable_to_string_index_type_2
                              : ts.Diagnostics.Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2;
                          error(errorNode, errorMessage, symbolToString(prop), typeToString(propertyType), typeToString(indexType));
                      }
                  }
              }
              function checkTypeNameIsReserved(name, message) {
                  switch (name.text) {
                      case "any":
                      case "number":
                      case "boolean":
                      case "string":
                      case "symbol":
                      case "void":
                          error(name, message, name.text);
                  }
              }
              function checkTypeParameters(typeParameterDeclarations) {
                  if (typeParameterDeclarations) {
                      for (var i = 0, n = typeParameterDeclarations.length; i < n; i++) {
                          var node = typeParameterDeclarations[i];
                          checkTypeParameter(node);
                          if (produceDiagnostics) {
                              for (var j = 0; j < i; j++) {
                                  if (typeParameterDeclarations[j].symbol === node.symbol) {
                                      error(node.name, ts.Diagnostics.Duplicate_identifier_0, ts.declarationNameToString(node.name));
                                  }
                              }
                          }
                      }
                  }
              }
              function checkClassExpression(node) {
                  grammarErrorOnNode(node, ts.Diagnostics.class_expressions_are_not_currently_supported);
                  ts.forEach(node.members, checkSourceElement);
                  return unknownType;
              }
              function checkClassDeclaration(node) {
                  checkGrammarDeclarationNameInStrictMode(node);
                  if (node.parent.kind !== 207 && node.parent.kind !== 228) {
                      grammarErrorOnNode(node, ts.Diagnostics.class_declarations_are_only_supported_directly_inside_a_module_or_as_a_top_level_declaration);
                  }
                  if (!node.name && !(node.flags & 256)) {
                      grammarErrorOnFirstToken(node, ts.Diagnostics.A_class_declaration_without_the_default_modifier_must_have_a_name);
                  }
                  checkGrammarClassDeclarationHeritageClauses(node);
                  checkDecorators(node);
                  if (node.name) {
                      checkTypeNameIsReserved(node.name, ts.Diagnostics.Class_name_cannot_be_0);
                      checkCollisionWithCapturedThisVariable(node, node.name);
                      checkCollisionWithRequireExportsInGeneratedCode(node, node.name);
                  }
                  checkTypeParameters(node.typeParameters);
                  checkExportsOnMergedDeclarations(node);
                  var symbol = getSymbolOfNode(node);
                  var type = getDeclaredTypeOfSymbol(symbol);
                  var staticType = getTypeOfSymbol(symbol);
                  var baseTypeNode = ts.getClassExtendsHeritageClauseElement(node);
                  if (baseTypeNode) {
                      if (!ts.isSupportedExpressionWithTypeArguments(baseTypeNode)) {
                          error(baseTypeNode.expression, ts.Diagnostics.Only_identifiers_Slashqualified_names_with_optional_type_arguments_are_currently_supported_in_a_class_extends_clauses);
                      }
                      emitExtends = emitExtends || !ts.isInAmbientContext(node);
                      checkExpressionWithTypeArguments(baseTypeNode);
                  }
                  var baseTypes = getBaseTypes(type);
                  if (baseTypes.length) {
                      if (produceDiagnostics) {
                          var baseType = baseTypes[0];
                          checkTypeAssignableTo(type, baseType, node.name || node, ts.Diagnostics.Class_0_incorrectly_extends_base_class_1);
                          var staticBaseType = getTypeOfSymbol(baseType.symbol);
                          checkTypeAssignableTo(staticType, getTypeWithoutConstructors(staticBaseType), node.name || node, ts.Diagnostics.Class_static_side_0_incorrectly_extends_base_class_static_side_1);
                          if (baseType.symbol !== resolveEntityName(baseTypeNode.expression, 107455)) {
                              error(baseTypeNode, ts.Diagnostics.Type_name_0_in_extends_clause_does_not_reference_constructor_function_for_0, typeToString(baseType));
                          }
                          checkKindsOfPropertyMemberOverrides(type, baseType);
                      }
                  }
                  if (baseTypes.length || (baseTypeNode && compilerOptions.separateCompilation)) {
                      checkExpressionOrQualifiedName(baseTypeNode.expression);
                  }
                  var implementedTypeNodes = ts.getClassImplementsHeritageClauseElements(node);
                  if (implementedTypeNodes) {
                      ts.forEach(implementedTypeNodes, function (typeRefNode) {
                          if (!ts.isSupportedExpressionWithTypeArguments(typeRefNode)) {
                              error(typeRefNode.expression, ts.Diagnostics.A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments);
                          }
                          checkExpressionWithTypeArguments(typeRefNode);
                          if (produceDiagnostics) {
                              var t = getTypeFromTypeNode(typeRefNode);
                              if (t !== unknownType) {
                                  var declaredType = (t.flags & 4096) ? t.target : t;
                                  if (declaredType.flags & (1024 | 2048)) {
                                      checkTypeAssignableTo(type, t, node.name || node, ts.Diagnostics.Class_0_incorrectly_implements_interface_1);
                                  }
                                  else {
                                      error(typeRefNode, ts.Diagnostics.A_class_may_only_implement_another_class_or_interface);
                                  }
                              }
                          }
                      });
                  }
                  ts.forEach(node.members, checkSourceElement);
                  if (produceDiagnostics) {
                      checkIndexConstraints(type);
                      checkTypeForDuplicateIndexSignatures(node);
                  }
              }
              function getTargetSymbol(s) {
                  return s.flags & 16777216 ? getSymbolLinks(s).target : s;
              }
              function checkKindsOfPropertyMemberOverrides(type, baseType) {
                  // TypeScript 1.0 spec (April 2014): 8.2.3
                  // A derived class inherits all members from its base class it doesn't override.
                  // Inheritance means that a derived class implicitly contains all non - overridden members of the base class.
                  // Both public and private property members are inherited, but only public property members can be overridden.
                  // A property member in a derived class is said to override a property member in a base class
                  // when the derived class property member has the same name and kind(instance or static)
                  // as the base class property member.
                  // The type of an overriding property member must be assignable(section 3.8.4)
                  // to the type of the overridden property member, or otherwise a compile - time error occurs.
                  // Base class instance member functions can be overridden by derived class instance member functions,
                  // but not by other kinds of members.
                  // Base class instance member variables and accessors can be overridden by
                  // derived class instance member variables and accessors, but not by other kinds of members.
                  var baseProperties = getPropertiesOfObjectType(baseType);
                  for (var _i = 0; _i < baseProperties.length; _i++) {
                      var baseProperty = baseProperties[_i];
                      var base = getTargetSymbol(baseProperty);
                      if (base.flags & 134217728) {
                          continue;
                      }
                      var derived = getTargetSymbol(getPropertyOfObjectType(type, base.name));
                      if (derived) {
                          var baseDeclarationFlags = getDeclarationFlagsFromSymbol(base);
                          var derivedDeclarationFlags = getDeclarationFlagsFromSymbol(derived);
                          if ((baseDeclarationFlags & 32) || (derivedDeclarationFlags & 32)) {
                              continue;
                          }
                          if ((baseDeclarationFlags & 128) !== (derivedDeclarationFlags & 128)) {
                              continue;
                          }
                          if ((base.flags & derived.flags & 8192) || ((base.flags & 98308) && (derived.flags & 98308))) {
                              continue;
                          }
                          var errorMessage = void 0;
                          if (base.flags & 8192) {
                              if (derived.flags & 98304) {
                                  errorMessage = ts.Diagnostics.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor;
                              }
                              else {
                                  ts.Debug.assert((derived.flags & 4) !== 0);
                                  errorMessage = ts.Diagnostics.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_property;
                              }
                          }
                          else if (base.flags & 4) {
                              ts.Debug.assert((derived.flags & 8192) !== 0);
                              errorMessage = ts.Diagnostics.Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function;
                          }
                          else {
                              ts.Debug.assert((base.flags & 98304) !== 0);
                              ts.Debug.assert((derived.flags & 8192) !== 0);
                              errorMessage = ts.Diagnostics.Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function;
                          }
                          error(derived.valueDeclaration.name, errorMessage, typeToString(baseType), symbolToString(base), typeToString(type));
                      }
                  }
              }
              function isAccessor(kind) {
                  return kind === 137 || kind === 138;
              }
              function areTypeParametersIdentical(list1, list2) {
                  if (!list1 && !list2) {
                      return true;
                  }
                  if (!list1 || !list2 || list1.length !== list2.length) {
                      return false;
                  }
                  for (var i = 0, len = list1.length; i < len; i++) {
                      var tp1 = list1[i];
                      var tp2 = list2[i];
                      if (tp1.name.text !== tp2.name.text) {
                          return false;
                      }
                      if (!tp1.constraint && !tp2.constraint) {
                          continue;
                      }
                      if (!tp1.constraint || !tp2.constraint) {
                          return false;
                      }
                      if (!isTypeIdenticalTo(getTypeFromTypeNode(tp1.constraint), getTypeFromTypeNode(tp2.constraint))) {
                          return false;
                      }
                  }
                  return true;
              }
              function checkInheritedPropertiesAreIdentical(type, typeNode) {
                  var baseTypes = getBaseTypes(type);
                  if (baseTypes.length < 2) {
                      return true;
                  }
                  var seen = {};
                  ts.forEach(resolveDeclaredMembers(type).declaredProperties, function (p) { seen[p.name] = { prop: p, containingType: type }; });
                  var ok = true;
                  for (var _i = 0; _i < baseTypes.length; _i++) {
                      var base = baseTypes[_i];
                      var properties = getPropertiesOfObjectType(base);
                      for (var _a = 0; _a < properties.length; _a++) {
                          var prop = properties[_a];
                          if (!ts.hasProperty(seen, prop.name)) {
                              seen[prop.name] = { prop: prop, containingType: base };
                          }
                          else {
                              var existing = seen[prop.name];
                              var isInheritedProperty = existing.containingType !== type;
                              if (isInheritedProperty && !isPropertyIdenticalTo(existing.prop, prop)) {
                                  ok = false;
                                  var typeName1 = typeToString(existing.containingType);
                                  var typeName2 = typeToString(base);
                                  var errorInfo = ts.chainDiagnosticMessages(undefined, ts.Diagnostics.Named_property_0_of_types_1_and_2_are_not_identical, symbolToString(prop), typeName1, typeName2);
                                  errorInfo = ts.chainDiagnosticMessages(errorInfo, ts.Diagnostics.Interface_0_cannot_simultaneously_extend_types_1_and_2, typeToString(type), typeName1, typeName2);
                                  diagnostics.add(ts.createDiagnosticForNodeFromMessageChain(typeNode, errorInfo));
                              }
                          }
                      }
                  }
                  return ok;
              }
              function checkInterfaceDeclaration(node) {
                  checkGrammarDeclarationNameInStrictMode(node) || checkGrammarDecorators(node) || checkGrammarModifiers(node) || checkGrammarInterfaceDeclaration(node);
                  checkTypeParameters(node.typeParameters);
                  if (produceDiagnostics) {
                      checkTypeNameIsReserved(node.name, ts.Diagnostics.Interface_name_cannot_be_0);
                      checkExportsOnMergedDeclarations(node);
                      var symbol = getSymbolOfNode(node);
                      var firstInterfaceDecl = ts.getDeclarationOfKind(symbol, 203);
                      if (symbol.declarations.length > 1) {
                          if (node !== firstInterfaceDecl && !areTypeParametersIdentical(firstInterfaceDecl.typeParameters, node.typeParameters)) {
                              error(node.name, ts.Diagnostics.All_declarations_of_an_interface_must_have_identical_type_parameters);
                          }
                      }
                      if (node === firstInterfaceDecl) {
                          var type = getDeclaredTypeOfSymbol(symbol);
                          if (checkInheritedPropertiesAreIdentical(type, node.name)) {
                              ts.forEach(getBaseTypes(type), function (baseType) {
                                  checkTypeAssignableTo(type, baseType, node.name, ts.Diagnostics.Interface_0_incorrectly_extends_interface_1);
                              });
                              checkIndexConstraints(type);
                          }
                      }
                  }
                  ts.forEach(ts.getInterfaceBaseTypeNodes(node), function (heritageElement) {
                      if (!ts.isSupportedExpressionWithTypeArguments(heritageElement)) {
                          error(heritageElement.expression, ts.Diagnostics.An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments);
                      }
                      checkExpressionWithTypeArguments(heritageElement);
                  });
                  ts.forEach(node.members, checkSourceElement);
                  if (produceDiagnostics) {
                      checkTypeForDuplicateIndexSignatures(node);
                  }
              }
              function checkTypeAliasDeclaration(node) {
                  checkGrammarDecorators(node) || checkGrammarModifiers(node);
                  checkTypeNameIsReserved(node.name, ts.Diagnostics.Type_alias_name_cannot_be_0);
                  checkSourceElement(node.type);
              }
              function computeEnumMemberValues(node) {
                  var nodeLinks = getNodeLinks(node);
                  if (!(nodeLinks.flags & 128)) {
                      var enumSymbol = getSymbolOfNode(node);
                      var enumType = getDeclaredTypeOfSymbol(enumSymbol);
                      var autoValue = 0;
                      var ambient = ts.isInAmbientContext(node);
                      var enumIsConst = ts.isConst(node);
                      ts.forEach(node.members, function (member) {
                          if (member.name.kind !== 128 && isNumericLiteralName(member.name.text)) {
                              error(member.name, ts.Diagnostics.An_enum_member_cannot_have_a_numeric_name);
                          }
                          var initializer = member.initializer;
                          if (initializer) {
                              autoValue = getConstantValueForEnumMemberInitializer(initializer);
                              if (autoValue === undefined) {
                                  if (enumIsConst) {
                                      error(initializer, ts.Diagnostics.In_const_enum_declarations_member_initializer_must_be_constant_expression);
                                  }
                                  else if (!ambient) {
                                      checkTypeAssignableTo(checkExpression(initializer), enumType, initializer, undefined);
                                  }
                              }
                              else if (enumIsConst) {
                                  if (isNaN(autoValue)) {
                                      error(initializer, ts.Diagnostics.const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN);
                                  }
                                  else if (!isFinite(autoValue)) {
                                      error(initializer, ts.Diagnostics.const_enum_member_initializer_was_evaluated_to_a_non_finite_value);
                                  }
                              }
                          }
                          else if (ambient && !enumIsConst) {
                              autoValue = undefined;
                          }
                          if (autoValue !== undefined) {
                              getNodeLinks(member).enumMemberValue = autoValue++;
                          }
                      });
                      nodeLinks.flags |= 128;
                  }
                  function getConstantValueForEnumMemberInitializer(initializer) {
                      return evalConstant(initializer);
                      function evalConstant(e) {
                          switch (e.kind) {
                              case 168:
                                  var value = evalConstant(e.operand);
                                  if (value === undefined) {
                                      return undefined;
                                  }
                                  switch (e.operator) {
                                      case 33: return value;
                                      case 34: return -value;
                                      case 47: return ~value;
                                  }
                                  return undefined;
                              case 170:
                                  var left = evalConstant(e.left);
                                  if (left === undefined) {
                                      return undefined;
                                  }
                                  var right = evalConstant(e.right);
                                  if (right === undefined) {
                                      return undefined;
                                  }
                                  switch (e.operatorToken.kind) {
                                      case 44: return left | right;
                                      case 43: return left & right;
                                      case 41: return left >> right;
                                      case 42: return left >>> right;
                                      case 40: return left << right;
                                      case 45: return left ^ right;
                                      case 35: return left * right;
                                      case 36: return left / right;
                                      case 33: return left + right;
                                      case 34: return left - right;
                                      case 37: return left % right;
                                  }
                                  return undefined;
                              case 7:
                                  return +e.text;
                              case 162:
                                  return evalConstant(e.expression);
                              case 65:
                              case 157:
                              case 156:
                                  var member = initializer.parent;
                                  var currentType = getTypeOfSymbol(getSymbolOfNode(member.parent));
                                  var enumType;
                                  var propertyName;
                                  if (e.kind === 65) {
                                      enumType = currentType;
                                      propertyName = e.text;
                                  }
                                  else {
                                      var expression;
                                      if (e.kind === 157) {
                                          if (e.argumentExpression === undefined ||
                                              e.argumentExpression.kind !== 8) {
                                              return undefined;
                                          }
                                          expression = e.expression;
                                          propertyName = e.argumentExpression.text;
                                      }
                                      else {
                                          expression = e.expression;
                                          propertyName = e.name.text;
                                      }
                                      var current = expression;
                                      while (current) {
                                          if (current.kind === 65) {
                                              break;
                                          }
                                          else if (current.kind === 156) {
                                              current = current.expression;
                                          }
                                          else {
                                              return undefined;
                                          }
                                      }
                                      enumType = checkExpression(expression);
                                      if (!(enumType.symbol && (enumType.symbol.flags & 384))) {
                                          return undefined;
                                      }
                                  }
                                  if (propertyName === undefined) {
                                      return undefined;
                                  }
                                  var property = getPropertyOfObjectType(enumType, propertyName);
                                  if (!property || !(property.flags & 8)) {
                                      return undefined;
                                  }
                                  var propertyDecl = property.valueDeclaration;
                                  if (member === propertyDecl) {
                                      return undefined;
                                  }
                                  if (!isDefinedBefore(propertyDecl, member)) {
                                      return undefined;
                                  }
                                  return getNodeLinks(propertyDecl).enumMemberValue;
                          }
                      }
                  }
              }
              function checkEnumDeclaration(node) {
                  if (!produceDiagnostics) {
                      return;
                  }
                  checkGrammarDeclarationNameInStrictMode(node) || checkGrammarDecorators(node) || checkGrammarModifiers(node) || checkGrammarEnumDeclaration(node);
                  checkTypeNameIsReserved(node.name, ts.Diagnostics.Enum_name_cannot_be_0);
                  checkCollisionWithCapturedThisVariable(node, node.name);
                  checkCollisionWithRequireExportsInGeneratedCode(node, node.name);
                  checkExportsOnMergedDeclarations(node);
                  computeEnumMemberValues(node);
                  var enumIsConst = ts.isConst(node);
                  if (compilerOptions.separateCompilation && enumIsConst && ts.isInAmbientContext(node)) {
                      error(node.name, ts.Diagnostics.Ambient_const_enums_are_not_allowed_when_the_separateCompilation_flag_is_provided);
                  }
                  var enumSymbol = getSymbolOfNode(node);
                  var firstDeclaration = ts.getDeclarationOfKind(enumSymbol, node.kind);
                  if (node === firstDeclaration) {
                      if (enumSymbol.declarations.length > 1) {
                          ts.forEach(enumSymbol.declarations, function (decl) {
                              if (ts.isConstEnumDeclaration(decl) !== enumIsConst) {
                                  error(decl.name, ts.Diagnostics.Enum_declarations_must_all_be_const_or_non_const);
                              }
                          });
                      }
                      var seenEnumMissingInitialInitializer = false;
                      ts.forEach(enumSymbol.declarations, function (declaration) {
                          if (declaration.kind !== 205) {
                              return false;
                          }
                          var enumDeclaration = declaration;
                          if (!enumDeclaration.members.length) {
                              return false;
                          }
                          var firstEnumMember = enumDeclaration.members[0];
                          if (!firstEnumMember.initializer) {
                              if (seenEnumMissingInitialInitializer) {
                                  error(firstEnumMember.name, ts.Diagnostics.In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element);
                              }
                              else {
                                  seenEnumMissingInitialInitializer = true;
                              }
                          }
                      });
                  }
              }
              function getFirstNonAmbientClassOrFunctionDeclaration(symbol) {
                  var declarations = symbol.declarations;
                  for (var _i = 0; _i < declarations.length; _i++) {
                      var declaration = declarations[_i];
                      if ((declaration.kind === 202 ||
                          (declaration.kind === 201 && ts.nodeIsPresent(declaration.body))) &&
                          !ts.isInAmbientContext(declaration)) {
                          return declaration;
                      }
                  }
                  return undefined;
              }
              function inSameLexicalScope(node1, node2) {
                  var container1 = ts.getEnclosingBlockScopeContainer(node1);
                  var container2 = ts.getEnclosingBlockScopeContainer(node2);
                  if (isGlobalSourceFile(container1)) {
                      return isGlobalSourceFile(container2);
                  }
                  else if (isGlobalSourceFile(container2)) {
                      return false;
                  }
                  else {
                      return container1 === container2;
                  }
              }
              function checkModuleDeclaration(node) {
                  if (produceDiagnostics) {
                      if (!checkGrammarDeclarationNameInStrictMode(node) && !checkGrammarDecorators(node) && !checkGrammarModifiers(node)) {
                          if (!ts.isInAmbientContext(node) && node.name.kind === 8) {
                              grammarErrorOnNode(node.name, ts.Diagnostics.Only_ambient_modules_can_use_quoted_names);
                          }
                      }
                      checkCollisionWithCapturedThisVariable(node, node.name);
                      checkCollisionWithRequireExportsInGeneratedCode(node, node.name);
                      checkExportsOnMergedDeclarations(node);
                      var symbol = getSymbolOfNode(node);
                      if (symbol.flags & 512
                          && symbol.declarations.length > 1
                          && !ts.isInAmbientContext(node)
                          && ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums || compilerOptions.separateCompilation)) {
                          var firstNonAmbientClassOrFunc = getFirstNonAmbientClassOrFunctionDeclaration(symbol);
                          if (firstNonAmbientClassOrFunc) {
                              if (ts.getSourceFileOfNode(node) !== ts.getSourceFileOfNode(firstNonAmbientClassOrFunc)) {
                                  error(node.name, ts.Diagnostics.A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged);
                              }
                              else if (node.pos < firstNonAmbientClassOrFunc.pos) {
                                  error(node.name, ts.Diagnostics.A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged);
                              }
                          }
                          var mergedClass = ts.getDeclarationOfKind(symbol, 202);
                          if (mergedClass &&
                              inSameLexicalScope(node, mergedClass)) {
                              getNodeLinks(node).flags |= 2048;
                          }
                      }
                      if (node.name.kind === 8) {
                          if (!isGlobalSourceFile(node.parent)) {
                              error(node.name, ts.Diagnostics.Ambient_modules_cannot_be_nested_in_other_modules);
                          }
                          if (isExternalModuleNameRelative(node.name.text)) {
                              error(node.name, ts.Diagnostics.Ambient_module_declaration_cannot_specify_relative_module_name);
                          }
                      }
                  }
                  checkSourceElement(node.body);
              }
              function getFirstIdentifier(node) {
                  while (true) {
                      if (node.kind === 127) {
                          node = node.left;
                      }
                      else if (node.kind === 156) {
                          node = node.expression;
                      }
                      else {
                          break;
                      }
                  }
                  ts.Debug.assert(node.kind === 65);
                  return node;
              }
              function checkExternalImportOrExportDeclaration(node) {
                  var moduleName = ts.getExternalModuleName(node);
                  if (!ts.nodeIsMissing(moduleName) && moduleName.kind !== 8) {
                      error(moduleName, ts.Diagnostics.String_literal_expected);
                      return false;
                  }
                  var inAmbientExternalModule = node.parent.kind === 207 && node.parent.parent.name.kind === 8;
                  if (node.parent.kind !== 228 && !inAmbientExternalModule) {
                      error(moduleName, node.kind === 216 ?
                          ts.Diagnostics.Export_declarations_are_not_permitted_in_a_namespace :
                          ts.Diagnostics.Import_declarations_in_a_namespace_cannot_reference_a_module);
                      return false;
                  }
                  if (inAmbientExternalModule && isExternalModuleNameRelative(moduleName.text)) {
                      error(node, ts.Diagnostics.Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name);
                      return false;
                  }
                  return true;
              }
              function checkAliasSymbol(node) {
                  var symbol = getSymbolOfNode(node);
                  var target = resolveAlias(symbol);
                  if (target !== unknownSymbol) {
                      var excludedMeanings = (symbol.flags & 107455 ? 107455 : 0) |
                          (symbol.flags & 793056 ? 793056 : 0) |
                          (symbol.flags & 1536 ? 1536 : 0);
                      if (target.flags & excludedMeanings) {
                          var message = node.kind === 218 ?
                              ts.Diagnostics.Export_declaration_conflicts_with_exported_declaration_of_0 :
                              ts.Diagnostics.Import_declaration_conflicts_with_local_declaration_of_0;
                          error(node, message, symbolToString(symbol));
                      }
                  }
              }
              function checkImportBinding(node) {
                  checkCollisionWithCapturedThisVariable(node, node.name);
                  checkCollisionWithRequireExportsInGeneratedCode(node, node.name);
                  checkAliasSymbol(node);
              }
              function checkImportDeclaration(node) {
                  if (!checkGrammarImportDeclarationNameInStrictMode(node) && !checkGrammarDecorators(node) && !checkGrammarModifiers(node) && (node.flags & 499)) {
                      grammarErrorOnFirstToken(node, ts.Diagnostics.An_import_declaration_cannot_have_modifiers);
                  }
                  if (checkExternalImportOrExportDeclaration(node)) {
                      var importClause = node.importClause;
                      if (importClause) {
                          if (importClause.name) {
                              checkImportBinding(importClause);
                          }
                          if (importClause.namedBindings) {
                              if (importClause.namedBindings.kind === 212) {
                                  checkImportBinding(importClause.namedBindings);
                              }
                              else {
                                  ts.forEach(importClause.namedBindings.elements, checkImportBinding);
                              }
                          }
                      }
                  }
              }
              function checkImportEqualsDeclaration(node) {
                  checkGrammarDeclarationNameInStrictMode(node) || checkGrammarDecorators(node) || checkGrammarModifiers(node);
                  if (ts.isInternalModuleImportEqualsDeclaration(node) || checkExternalImportOrExportDeclaration(node)) {
                      checkImportBinding(node);
                      if (node.flags & 1) {
                          markExportAsReferenced(node);
                      }
                      if (ts.isInternalModuleImportEqualsDeclaration(node)) {
                          var target = resolveAlias(getSymbolOfNode(node));
                          if (target !== unknownSymbol) {
                              if (target.flags & 107455) {
                                  var moduleName = getFirstIdentifier(node.moduleReference);
                                  if (!(resolveEntityName(moduleName, 107455 | 1536).flags & 1536)) {
                                      error(moduleName, ts.Diagnostics.Module_0_is_hidden_by_a_local_declaration_with_the_same_name, ts.declarationNameToString(moduleName));
                                  }
                              }
                              if (target.flags & 793056) {
                                  checkTypeNameIsReserved(node.name, ts.Diagnostics.Import_name_cannot_be_0);
                              }
                          }
                      }
                      else {
                          if (languageVersion >= 2) {
                              grammarErrorOnNode(node, ts.Diagnostics.Import_assignment_cannot_be_used_when_targeting_ECMAScript_6_or_higher_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_or_import_d_from_mod_instead);
                          }
                      }
                  }
              }
              function checkExportDeclaration(node) {
                  if (!checkGrammarDecorators(node) && !checkGrammarModifiers(node) && (node.flags & 499)) {
                      grammarErrorOnFirstToken(node, ts.Diagnostics.An_export_declaration_cannot_have_modifiers);
                  }
                  if (!node.moduleSpecifier || checkExternalImportOrExportDeclaration(node)) {
                      if (node.exportClause) {
                          ts.forEach(node.exportClause.elements, checkExportSpecifier);
                          var inAmbientExternalModule = node.parent.kind === 207 && node.parent.parent.name.kind === 8;
                          if (node.parent.kind !== 228 && !inAmbientExternalModule) {
                              error(node, ts.Diagnostics.Export_declarations_are_not_permitted_in_a_namespace);
                          }
                      }
                      else {
                          var moduleSymbol = resolveExternalModuleName(node, node.moduleSpecifier);
                          if (moduleSymbol && moduleSymbol.exports["export="]) {
                              error(node.moduleSpecifier, ts.Diagnostics.Module_0_uses_export_and_cannot_be_used_with_export_Asterisk, symbolToString(moduleSymbol));
                          }
                      }
                  }
              }
              function checkExportSpecifier(node) {
                  checkAliasSymbol(node);
                  if (!node.parent.parent.moduleSpecifier) {
                      markExportAsReferenced(node);
                  }
              }
              function checkExportAssignment(node) {
                  var container = node.parent.kind === 228 ? node.parent : node.parent.parent;
                  if (container.kind === 206 && container.name.kind === 65) {
                      error(node, ts.Diagnostics.An_export_assignment_cannot_be_used_in_a_namespace);
                      return;
                  }
                  if (!checkGrammarDecorators(node) && !checkGrammarModifiers(node) && (node.flags & 499)) {
                      grammarErrorOnFirstToken(node, ts.Diagnostics.An_export_assignment_cannot_have_modifiers);
                  }
                  if (node.expression.kind === 65) {
                      markExportAsReferenced(node);
                  }
                  else {
                      checkExpressionCached(node.expression);
                  }
                  checkExternalModuleExports(container);
                  if (node.isExportEquals && !ts.isInAmbientContext(node)) {
                      if (languageVersion >= 2) {
                          grammarErrorOnNode(node, ts.Diagnostics.Export_assignment_cannot_be_used_when_targeting_ECMAScript_6_or_higher_Consider_using_export_default_instead);
                      }
                      else if (compilerOptions.module === 4) {
                          grammarErrorOnNode(node, ts.Diagnostics.Export_assignment_is_not_supported_when_module_flag_is_system);
                      }
                  }
              }
              function getModuleStatements(node) {
                  if (node.kind === 228) {
                      return node.statements;
                  }
                  if (node.kind === 206 && node.body.kind === 207) {
                      return node.body.statements;
                  }
                  return emptyArray;
              }
              function hasExportedMembers(moduleSymbol) {
                  for (var id in moduleSymbol.exports) {
                      if (id !== "export=") {
                          return true;
                      }
                  }
                  return false;
              }
              function checkExternalModuleExports(node) {
                  var moduleSymbol = getSymbolOfNode(node);
                  var links = getSymbolLinks(moduleSymbol);
                  if (!links.exportsChecked) {
                      var exportEqualsSymbol = moduleSymbol.exports["export="];
                      if (exportEqualsSymbol && hasExportedMembers(moduleSymbol)) {
                          var declaration = getDeclarationOfAliasSymbol(exportEqualsSymbol) || exportEqualsSymbol.valueDeclaration;
                          error(declaration, ts.Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements);
                      }
                      links.exportsChecked = true;
                  }
              }
              function checkSourceElement(node) {
                  if (!node)
                      return;
                  switch (node.kind) {
                      case 129:
                          return checkTypeParameter(node);
                      case 130:
                          return checkParameter(node);
                      case 133:
                      case 132:
                          return checkPropertyDeclaration(node);
                      case 143:
                      case 144:
                      case 139:
                      case 140:
                          return checkSignatureDeclaration(node);
                      case 141:
                          return checkSignatureDeclaration(node);
                      case 135:
                      case 134:
                          return checkMethodDeclaration(node);
                      case 136:
                          return checkConstructorDeclaration(node);
                      case 137:
                      case 138:
                          return checkAccessorDeclaration(node);
                      case 142:
                          return checkTypeReferenceNode(node);
                      case 145:
                          return checkTypeQuery(node);
                      case 146:
                          return checkTypeLiteral(node);
                      case 147:
                          return checkArrayType(node);
                      case 148:
                          return checkTupleType(node);
                      case 149:
                          return checkUnionType(node);
                      case 150:
                          return checkSourceElement(node.type);
                      case 201:
                          return checkFunctionDeclaration(node);
                      case 180:
                      case 207:
                          return checkBlock(node);
                      case 181:
                          return checkVariableStatement(node);
                      case 183:
                          return checkExpressionStatement(node);
                      case 184:
                          return checkIfStatement(node);
                      case 185:
                          return checkDoStatement(node);
                      case 186:
                          return checkWhileStatement(node);
                      case 187:
                          return checkForStatement(node);
                      case 188:
                          return checkForInStatement(node);
                      case 189:
                          return checkForOfStatement(node);
                      case 190:
                      case 191:
                          return checkBreakOrContinueStatement(node);
                      case 192:
                          return checkReturnStatement(node);
                      case 193:
                          return checkWithStatement(node);
                      case 194:
                          return checkSwitchStatement(node);
                      case 195:
                          return checkLabeledStatement(node);
                      case 196:
                          return checkThrowStatement(node);
                      case 197:
                          return checkTryStatement(node);
                      case 199:
                          return checkVariableDeclaration(node);
                      case 153:
                          return checkBindingElement(node);
                      case 202:
                          return checkClassDeclaration(node);
                      case 203:
                          return checkInterfaceDeclaration(node);
                      case 204:
                          return checkTypeAliasDeclaration(node);
                      case 205:
                          return checkEnumDeclaration(node);
                      case 206:
                          return checkModuleDeclaration(node);
                      case 210:
                          return checkImportDeclaration(node);
                      case 209:
                          return checkImportEqualsDeclaration(node);
                      case 216:
                          return checkExportDeclaration(node);
                      case 215:
                          return checkExportAssignment(node);
                      case 182:
                          checkGrammarStatementInAmbientContext(node);
                          return;
                      case 198:
                          checkGrammarStatementInAmbientContext(node);
                          return;
                      case 219:
                          return checkMissingDeclaration(node);
                  }
              }
              function checkFunctionExpressionBodies(node) {
                  switch (node.kind) {
                      case 163:
                      case 164:
                          ts.forEach(node.parameters, checkFunctionExpressionBodies);
                          checkFunctionExpressionOrObjectLiteralMethodBody(node);
                          break;
                      case 135:
                      case 134:
                          ts.forEach(node.parameters, checkFunctionExpressionBodies);
                          if (ts.isObjectLiteralMethod(node)) {
                              checkFunctionExpressionOrObjectLiteralMethodBody(node);
                          }
                          break;
                      case 136:
                      case 137:
                      case 138:
                      case 201:
                          ts.forEach(node.parameters, checkFunctionExpressionBodies);
                          break;
                      case 193:
                          checkFunctionExpressionBodies(node.expression);
                          break;
                      case 130:
                      case 133:
                      case 132:
                      case 151:
                      case 152:
                      case 153:
                      case 154:
                      case 155:
                      case 225:
                      case 156:
                      case 157:
                      case 158:
                      case 159:
                      case 160:
                      case 172:
                      case 178:
                      case 161:
                      case 162:
                      case 166:
                      case 167:
                      case 165:
                      case 168:
                      case 169:
                      case 170:
                      case 171:
                      case 174:
                      case 180:
                      case 207:
                      case 181:
                      case 183:
                      case 184:
                      case 185:
                      case 186:
                      case 187:
                      case 188:
                      case 189:
                      case 190:
                      case 191:
                      case 192:
                      case 194:
                      case 208:
                      case 221:
                      case 222:
                      case 195:
                      case 196:
                      case 197:
                      case 224:
                      case 199:
                      case 200:
                      case 202:
                      case 205:
                      case 227:
                      case 215:
                      case 228:
                          ts.forEachChild(node, checkFunctionExpressionBodies);
                          break;
                  }
              }
              function checkSourceFile(node) {
                  var start = new Date().getTime();
                  checkSourceFileWorker(node);
                  ts.checkTime += new Date().getTime() - start;
              }
              function checkSourceFileWorker(node) {
                  var links = getNodeLinks(node);
                  if (!(links.flags & 1)) {
                      checkGrammarSourceFile(node);
                      emitExtends = false;
                      emitDecorate = false;
                      emitParam = false;
                      potentialThisCollisions.length = 0;
                      ts.forEach(node.statements, checkSourceElement);
                      checkFunctionExpressionBodies(node);
                      if (ts.isExternalModule(node)) {
                          checkExternalModuleExports(node);
                      }
                      if (potentialThisCollisions.length) {
                          ts.forEach(potentialThisCollisions, checkIfThisIsCapturedInEnclosingScope);
                          potentialThisCollisions.length = 0;
                      }
                      if (emitExtends) {
                          links.flags |= 8;
                      }
                      if (emitDecorate) {
                          links.flags |= 512;
                      }
                      if (emitParam) {
                          links.flags |= 1024;
                      }
                      links.flags |= 1;
                  }
              }
              function getDiagnostics(sourceFile) {
                  throwIfNonDiagnosticsProducing();
                  if (sourceFile) {
                      checkSourceFile(sourceFile);
                      return diagnostics.getDiagnostics(sourceFile.fileName);
                  }
                  ts.forEach(host.getSourceFiles(), checkSourceFile);
                  return diagnostics.getDiagnostics();
              }
              function getGlobalDiagnostics() {
                  throwIfNonDiagnosticsProducing();
                  return diagnostics.getGlobalDiagnostics();
              }
              function throwIfNonDiagnosticsProducing() {
                  if (!produceDiagnostics) {
                      throw new Error("Trying to get diagnostics from a type checker that does not produce them.");
                  }
              }
              function isInsideWithStatementBody(node) {
                  if (node) {
                      while (node.parent) {
                          if (node.parent.kind === 193 && node.parent.statement === node) {
                              return true;
                          }
                          node = node.parent;
                      }
                  }
                  return false;
              }
              function getSymbolsInScope(location, meaning) {
                  var symbols = {};
                  var memberFlags = 0;
                  if (isInsideWithStatementBody(location)) {
                      return [];
                  }
                  populateSymbols();
                  return symbolsToArray(symbols);
                  function populateSymbols() {
                      while (location) {
                          if (location.locals && !isGlobalSourceFile(location)) {
                              copySymbols(location.locals, meaning);
                          }
                          switch (location.kind) {
                              case 228:
                                  if (!ts.isExternalModule(location)) {
                                      break;
                                  }
                              case 206:
                                  copySymbols(getSymbolOfNode(location).exports, meaning & 8914931);
                                  break;
                              case 205:
                                  copySymbols(getSymbolOfNode(location).exports, meaning & 8);
                                  break;
                              case 202:
                              case 203:
                                  if (!(memberFlags & 128)) {
                                      copySymbols(getSymbolOfNode(location).members, meaning & 793056);
                                  }
                                  break;
                              case 163:
                                  if (location.name) {
                                      copySymbol(location.symbol, meaning);
                                  }
                                  break;
                          }
                          memberFlags = location.flags;
                          location = location.parent;
                      }
                      copySymbols(globals, meaning);
                  }
                  function copySymbol(symbol, meaning) {
                      if (symbol.flags & meaning) {
                          var id = symbol.name;
                          if (!isReservedMemberName(id) && !ts.hasProperty(symbols, id)) {
                              symbols[id] = symbol;
                          }
                      }
                  }
                  function copySymbols(source, meaning) {
                      if (meaning) {
                          for (var id in source) {
                              if (ts.hasProperty(source, id)) {
                                  copySymbol(source[id], meaning);
                              }
                          }
                      }
                  }
                  if (isInsideWithStatementBody(location)) {
                      return [];
                  }
                  while (location) {
                      if (location.locals && !isGlobalSourceFile(location)) {
                          copySymbols(location.locals, meaning);
                      }
                      switch (location.kind) {
                          case 228:
                              if (!ts.isExternalModule(location))
                                  break;
                          case 206:
                              copySymbols(getSymbolOfNode(location).exports, meaning & 8914931);
                              break;
                          case 205:
                              copySymbols(getSymbolOfNode(location).exports, meaning & 8);
                              break;
                          case 202:
                          case 203:
                              if (!(memberFlags & 128)) {
                                  copySymbols(getSymbolOfNode(location).members, meaning & 793056);
                              }
                              break;
                          case 163:
                              if (location.name) {
                                  copySymbol(location.symbol, meaning);
                              }
                              break;
                      }
                      memberFlags = location.flags;
                      location = location.parent;
                  }
                  copySymbols(globals, meaning);
                  return symbolsToArray(symbols);
              }
              function isTypeDeclarationName(name) {
                  return name.kind == 65 &&
                      isTypeDeclaration(name.parent) &&
                      name.parent.name === name;
              }
              function isTypeDeclaration(node) {
                  switch (node.kind) {
                      case 129:
                      case 202:
                      case 203:
                      case 204:
                      case 205:
                          return true;
                  }
              }
              function isTypeReferenceIdentifier(entityName) {
                  var node = entityName;
                  while (node.parent && node.parent.kind === 127) {
                      node = node.parent;
                  }
                  return node.parent && node.parent.kind === 142;
              }
              function isHeritageClauseElementIdentifier(entityName) {
                  var node = entityName;
                  while (node.parent && node.parent.kind === 156) {
                      node = node.parent;
                  }
                  return node.parent && node.parent.kind === 177;
              }
              function isTypeNode(node) {
                  if (142 <= node.kind && node.kind <= 150) {
                      return true;
                  }
                  switch (node.kind) {
                      case 112:
                      case 120:
                      case 122:
                      case 113:
                      case 123:
                          return true;
                      case 99:
                          return node.parent.kind !== 167;
                      case 8:
                          return node.parent.kind === 130;
                      case 177:
                          return true;
                      case 65:
                          if (node.parent.kind === 127 && node.parent.right === node) {
                              node = node.parent;
                          }
                          else if (node.parent.kind === 156 && node.parent.name === node) {
                              node = node.parent;
                          }
                      case 127:
                      case 156:
                          ts.Debug.assert(node.kind === 65 || node.kind === 127 || node.kind === 156, "'node' was expected to be a qualified name, identifier or property access in 'isTypeNode'.");
                          var parent_5 = node.parent;
                          if (parent_5.kind === 145) {
                              return false;
                          }
                          if (142 <= parent_5.kind && parent_5.kind <= 150) {
                              return true;
                          }
                          switch (parent_5.kind) {
                              case 177:
                                  return true;
                              case 129:
                                  return node === parent_5.constraint;
                              case 133:
                              case 132:
                              case 130:
                              case 199:
                                  return node === parent_5.type;
                              case 201:
                              case 163:
                              case 164:
                              case 136:
                              case 135:
                              case 134:
                              case 137:
                              case 138:
                                  return node === parent_5.type;
                              case 139:
                              case 140:
                              case 141:
                                  return node === parent_5.type;
                              case 161:
                                  return node === parent_5.type;
                              case 158:
                              case 159:
                                  return parent_5.typeArguments && ts.indexOf(parent_5.typeArguments, node) >= 0;
                              case 160:
                                  return false;
                          }
                  }
                  return false;
              }
              function getLeftSideOfImportEqualsOrExportAssignment(nodeOnRightSide) {
                  while (nodeOnRightSide.parent.kind === 127) {
                      nodeOnRightSide = nodeOnRightSide.parent;
                  }
                  if (nodeOnRightSide.parent.kind === 209) {
                      return nodeOnRightSide.parent.moduleReference === nodeOnRightSide && nodeOnRightSide.parent;
                  }
                  if (nodeOnRightSide.parent.kind === 215) {
                      return nodeOnRightSide.parent.expression === nodeOnRightSide && nodeOnRightSide.parent;
                  }
                  return undefined;
              }
              function isInRightSideOfImportOrExportAssignment(node) {
                  return getLeftSideOfImportEqualsOrExportAssignment(node) !== undefined;
              }
              function getSymbolOfEntityNameOrPropertyAccessExpression(entityName) {
                  if (ts.isDeclarationName(entityName)) {
                      return getSymbolOfNode(entityName.parent);
                  }
                  if (entityName.parent.kind === 215) {
                      return resolveEntityName(entityName, 107455 | 793056 | 1536 | 8388608);
                  }
                  if (entityName.kind !== 156) {
                      if (isInRightSideOfImportOrExportAssignment(entityName)) {
                          return getSymbolOfPartOfRightHandSideOfImportEquals(entityName);
                      }
                  }
                  if (ts.isRightSideOfQualifiedNameOrPropertyAccess(entityName)) {
                      entityName = entityName.parent;
                  }
                  if (isHeritageClauseElementIdentifier(entityName)) {
                      var meaning = entityName.parent.kind === 177 ? 793056 : 1536;
                      meaning |= 8388608;
                      return resolveEntityName(entityName, meaning);
                  }
                  else if (ts.isExpression(entityName)) {
                      if (ts.nodeIsMissing(entityName)) {
                          return undefined;
                      }
                      if (entityName.kind === 65) {
                          var meaning = 107455 | 8388608;
                          return resolveEntityName(entityName, meaning);
                      }
                      else if (entityName.kind === 156) {
                          var symbol = getNodeLinks(entityName).resolvedSymbol;
                          if (!symbol) {
                              checkPropertyAccessExpression(entityName);
                          }
                          return getNodeLinks(entityName).resolvedSymbol;
                      }
                      else if (entityName.kind === 127) {
                          var symbol = getNodeLinks(entityName).resolvedSymbol;
                          if (!symbol) {
                              checkQualifiedName(entityName);
                          }
                          return getNodeLinks(entityName).resolvedSymbol;
                      }
                  }
                  else if (isTypeReferenceIdentifier(entityName)) {
                      var meaning = entityName.parent.kind === 142 ? 793056 : 1536;
                      meaning |= 8388608;
                      return resolveEntityName(entityName, meaning);
                  }
                  return undefined;
              }
              function getSymbolInfo(node) {
                  if (isInsideWithStatementBody(node)) {
                      return undefined;
                  }
                  if (ts.isDeclarationName(node)) {
                      return getSymbolOfNode(node.parent);
                  }
                  if (node.kind === 65 && isInRightSideOfImportOrExportAssignment(node)) {
                      return node.parent.kind === 215
                          ? getSymbolOfEntityNameOrPropertyAccessExpression(node)
                          : getSymbolOfPartOfRightHandSideOfImportEquals(node);
                  }
                  switch (node.kind) {
                      case 65:
                      case 156:
                      case 127:
                          return getSymbolOfEntityNameOrPropertyAccessExpression(node);
                      case 93:
                      case 91:
                          var type = checkExpression(node);
                          return type.symbol;
                      case 114:
                          var constructorDeclaration = node.parent;
                          if (constructorDeclaration && constructorDeclaration.kind === 136) {
                              return constructorDeclaration.parent.symbol;
                          }
                          return undefined;
                      case 8:
                          var moduleName;
                          if ((ts.isExternalModuleImportEqualsDeclaration(node.parent.parent) &&
                              ts.getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node) ||
                              ((node.parent.kind === 210 || node.parent.kind === 216) &&
                                  node.parent.moduleSpecifier === node)) {
                              return resolveExternalModuleName(node, node);
                          }
                      case 7:
                          if (node.parent.kind == 157 && node.parent.argumentExpression === node) {
                              var objectType = checkExpression(node.parent.expression);
                              if (objectType === unknownType)
                                  return undefined;
                              var apparentType = getApparentType(objectType);
                              if (apparentType === unknownType)
                                  return undefined;
                              return getPropertyOfType(apparentType, node.text);
                          }
                          break;
                  }
                  return undefined;
              }
              function getShorthandAssignmentValueSymbol(location) {
                  if (location && location.kind === 226) {
                      return resolveEntityName(location.name, 107455);
                  }
                  return undefined;
              }
              function getTypeOfNode(node) {
                  if (isInsideWithStatementBody(node)) {
                      return unknownType;
                  }
                  if (isTypeNode(node)) {
                      return getTypeFromTypeNode(node);
                  }
                  if (ts.isExpression(node)) {
                      return getTypeOfExpression(node);
                  }
                  if (isTypeDeclaration(node)) {
                      var symbol = getSymbolOfNode(node);
                      return getDeclaredTypeOfSymbol(symbol);
                  }
                  if (isTypeDeclarationName(node)) {
                      var symbol = getSymbolInfo(node);
                      return symbol && getDeclaredTypeOfSymbol(symbol);
                  }
                  if (ts.isDeclaration(node)) {
                      var symbol = getSymbolOfNode(node);
                      return getTypeOfSymbol(symbol);
                  }
                  if (ts.isDeclarationName(node)) {
                      var symbol = getSymbolInfo(node);
                      return symbol && getTypeOfSymbol(symbol);
                  }
                  if (isInRightSideOfImportOrExportAssignment(node)) {
                      var symbol = getSymbolInfo(node);
                      var declaredType = symbol && getDeclaredTypeOfSymbol(symbol);
                      return declaredType !== unknownType ? declaredType : getTypeOfSymbol(symbol);
                  }
                  return unknownType;
              }
              function getTypeOfExpression(expr) {
                  if (ts.isRightSideOfQualifiedNameOrPropertyAccess(expr)) {
                      expr = expr.parent;
                  }
                  return checkExpression(expr);
              }
              function getAugmentedPropertiesOfType(type) {
                  type = getApparentType(type);
                  var propsByName = createSymbolTable(getPropertiesOfType(type));
                  if (getSignaturesOfType(type, 0).length || getSignaturesOfType(type, 1).length) {
                      ts.forEach(getPropertiesOfType(globalFunctionType), function (p) {
                          if (!ts.hasProperty(propsByName, p.name)) {
                              propsByName[p.name] = p;
                          }
                      });
                  }
                  return getNamedMembers(propsByName);
              }
              function getRootSymbols(symbol) {
                  if (symbol.flags & 268435456) {
                      var symbols = [];
                      var name_10 = symbol.name;
                      ts.forEach(getSymbolLinks(symbol).unionType.types, function (t) {
                          symbols.push(getPropertyOfType(t, name_10));
                      });
                      return symbols;
                  }
                  else if (symbol.flags & 67108864) {
                      var target = getSymbolLinks(symbol).target;
                      if (target) {
                          return [target];
                      }
                  }
                  return [symbol];
              }
              function isExternalModuleSymbol(symbol) {
                  return symbol.flags & 512 && symbol.declarations.length === 1 && symbol.declarations[0].kind === 228;
              }
              function getAliasNameSubstitution(symbol, getGeneratedNameForNode) {
                  if (languageVersion >= 2) {
                      return undefined;
                  }
                  var node = getDeclarationOfAliasSymbol(symbol);
                  if (node) {
                      if (node.kind === 211) {
                          var defaultKeyword;
                          if (languageVersion === 0) {
                              defaultKeyword = "[\"default\"]";
                          }
                          else {
                              defaultKeyword = ".default";
                          }
                          return getGeneratedNameForNode(node.parent) + defaultKeyword;
                      }
                      if (node.kind === 214) {
                          var moduleName = getGeneratedNameForNode(node.parent.parent.parent);
                          var propertyName = node.propertyName || node.name;
                          return moduleName + "." + ts.unescapeIdentifier(propertyName.text);
                      }
                  }
              }
              function getExportNameSubstitution(symbol, location, getGeneratedNameForNode) {
                  if (isExternalModuleSymbol(symbol.parent)) {
                      if (languageVersion >= 2 || compilerOptions.module === 4) {
                          return undefined;
                      }
                      return "exports." + ts.unescapeIdentifier(symbol.name);
                  }
                  var node = location;
                  var containerSymbol = getParentOfSymbol(symbol);
                  while (node) {
                      if ((node.kind === 206 || node.kind === 205) && getSymbolOfNode(node) === containerSymbol) {
                          return getGeneratedNameForNode(node) + "." + ts.unescapeIdentifier(symbol.name);
                      }
                      node = node.parent;
                  }
              }
              function getExpressionNameSubstitution(node, getGeneratedNameForNode) {
                  var symbol = getNodeLinks(node).resolvedSymbol || (ts.isDeclarationName(node) ? getSymbolOfNode(node.parent) : undefined);
                  if (symbol) {
                      if (symbol.parent) {
                          return getExportNameSubstitution(symbol, node.parent, getGeneratedNameForNode);
                      }
                      var exportSymbol = getExportSymbolOfValueSymbolIfExported(symbol);
                      if (symbol !== exportSymbol && !(exportSymbol.flags & 944)) {
                          return getExportNameSubstitution(exportSymbol, node.parent, getGeneratedNameForNode);
                      }
                      if (symbol.flags & 8388608) {
                          return getAliasNameSubstitution(symbol, getGeneratedNameForNode);
                      }
                  }
              }
              function isValueAliasDeclaration(node) {
                  switch (node.kind) {
                      case 209:
                      case 211:
                      case 212:
                      case 214:
                      case 218:
                          return isAliasResolvedToValue(getSymbolOfNode(node));
                      case 216:
                          var exportClause = node.exportClause;
                          return exportClause && ts.forEach(exportClause.elements, isValueAliasDeclaration);
                      case 215:
                          return node.expression && node.expression.kind === 65 ? isAliasResolvedToValue(getSymbolOfNode(node)) : true;
                  }
                  return false;
              }
              function isTopLevelValueImportEqualsWithEntityName(node) {
                  if (node.parent.kind !== 228 || !ts.isInternalModuleImportEqualsDeclaration(node)) {
                      return false;
                  }
                  var isValue = isAliasResolvedToValue(getSymbolOfNode(node));
                  return isValue && node.moduleReference && !ts.nodeIsMissing(node.moduleReference);
              }
              function isAliasResolvedToValue(symbol) {
                  var target = resolveAlias(symbol);
                  if (target === unknownSymbol && compilerOptions.separateCompilation) {
                      return true;
                  }
                  return target !== unknownSymbol && target && target.flags & 107455 && !isConstEnumOrConstEnumOnlyModule(target);
              }
              function isConstEnumOrConstEnumOnlyModule(s) {
                  return isConstEnumSymbol(s) || s.constEnumOnlyModule;
              }
              function isReferencedAliasDeclaration(node, checkChildren) {
                  if (ts.isAliasSymbolDeclaration(node)) {
                      var symbol = getSymbolOfNode(node);
                      if (getSymbolLinks(symbol).referenced) {
                          return true;
                      }
                  }
                  if (checkChildren) {
                      return ts.forEachChild(node, function (node) { return isReferencedAliasDeclaration(node, checkChildren); });
                  }
                  return false;
              }
              function isImplementationOfOverload(node) {
                  if (ts.nodeIsPresent(node.body)) {
                      var symbol = getSymbolOfNode(node);
                      var signaturesOfSymbol = getSignaturesOfSymbol(symbol);
                      return signaturesOfSymbol.length > 1 ||
                          (signaturesOfSymbol.length === 1 && signaturesOfSymbol[0].declaration !== node);
                  }
                  return false;
              }
              function getNodeCheckFlags(node) {
                  return getNodeLinks(node).flags;
              }
              function getEnumMemberValue(node) {
                  computeEnumMemberValues(node.parent);
                  return getNodeLinks(node).enumMemberValue;
              }
              function getConstantValue(node) {
                  if (node.kind === 227) {
                      return getEnumMemberValue(node);
                  }
                  var symbol = getNodeLinks(node).resolvedSymbol;
                  if (symbol && (symbol.flags & 8)) {
                      if (ts.isConstEnumDeclaration(symbol.valueDeclaration.parent)) {
                          return getEnumMemberValue(symbol.valueDeclaration);
                      }
                  }
                  return undefined;
              }
              function serializeEntityName(node, getGeneratedNameForNode, fallbackPath) {
                  if (node.kind === 65) {
                      var substitution = getExpressionNameSubstitution(node, getGeneratedNameForNode);
                      var text = substitution || node.text;
                      if (fallbackPath) {
                          fallbackPath.push(text);
                      }
                      else {
                          return text;
                      }
                  }
                  else {
                      var left = serializeEntityName(node.left, getGeneratedNameForNode, fallbackPath);
                      var right = serializeEntityName(node.right, getGeneratedNameForNode, fallbackPath);
                      if (!fallbackPath) {
                          return left + "." + right;
                      }
                  }
              }
              function serializeTypeReferenceNode(node, getGeneratedNameForNode) {
                  var type = getTypeFromTypeNode(node);
                  if (type.flags & 16) {
                      return "void 0";
                  }
                  else if (type.flags & 8) {
                      return "Boolean";
                  }
                  else if (type.flags & 132) {
                      return "Number";
                  }
                  else if (type.flags & 258) {
                      return "String";
                  }
                  else if (type.flags & 8192) {
                      return "Array";
                  }
                  else if (type.flags & 1048576) {
                      return "Symbol";
                  }
                  else if (type === unknownType) {
                      var fallbackPath = [];
                      serializeEntityName(node.typeName, getGeneratedNameForNode, fallbackPath);
                      return fallbackPath;
                  }
                  else if (type.symbol && type.symbol.valueDeclaration) {
                      return serializeEntityName(node.typeName, getGeneratedNameForNode);
                  }
                  else if (typeHasCallOrConstructSignatures(type)) {
                      return "Function";
                  }
                  return "Object";
              }
              function serializeTypeNode(node, getGeneratedNameForNode) {
                  if (node) {
                      switch (node.kind) {
                          case 99:
                              return "void 0";
                          case 150:
                              return serializeTypeNode(node.type, getGeneratedNameForNode);
                          case 143:
                          case 144:
                              return "Function";
                          case 147:
                          case 148:
                              return "Array";
                          case 113:
                              return "Boolean";
                          case 122:
                          case 8:
                              return "String";
                          case 120:
                              return "Number";
                          case 142:
                              return serializeTypeReferenceNode(node, getGeneratedNameForNode);
                          case 145:
                          case 146:
                          case 149:
                          case 112:
                              break;
                          default:
                              ts.Debug.fail("Cannot serialize unexpected type node.");
                              break;
                      }
                  }
                  return "Object";
              }
              function serializeTypeOfNode(node, getGeneratedNameForNode) {
                  switch (node.kind) {
                      case 202: return "Function";
                      case 133: return serializeTypeNode(node.type, getGeneratedNameForNode);
                      case 130: return serializeTypeNode(node.type, getGeneratedNameForNode);
                      case 137: return serializeTypeNode(node.type, getGeneratedNameForNode);
                      case 138: return serializeTypeNode(getSetAccessorTypeAnnotationNode(node), getGeneratedNameForNode);
                  }
                  if (ts.isFunctionLike(node)) {
                      return "Function";
                  }
                  return "void 0";
              }
              function serializeParameterTypesOfNode(node, getGeneratedNameForNode) {
                  if (node) {
                      var valueDeclaration;
                      if (node.kind === 202) {
                          valueDeclaration = ts.getFirstConstructorWithBody(node);
                      }
                      else if (ts.isFunctionLike(node) && ts.nodeIsPresent(node.body)) {
                          valueDeclaration = node;
                      }
                      if (valueDeclaration) {
                          var result;
                          var parameters = valueDeclaration.parameters;
                          var parameterCount = parameters.length;
                          if (parameterCount > 0) {
                              result = new Array(parameterCount);
                              for (var i = 0; i < parameterCount; i++) {
                                  if (parameters[i].dotDotDotToken) {
                                      var parameterType = parameters[i].type;
                                      if (parameterType.kind === 147) {
                                          parameterType = parameterType.elementType;
                                      }
                                      else if (parameterType.kind === 142 && parameterType.typeArguments && parameterType.typeArguments.length === 1) {
                                          parameterType = parameterType.typeArguments[0];
                                      }
                                      else {
                                          parameterType = undefined;
                                      }
                                      result[i] = serializeTypeNode(parameterType, getGeneratedNameForNode);
                                  }
                                  else {
                                      result[i] = serializeTypeOfNode(parameters[i], getGeneratedNameForNode);
                                  }
                              }
                              return result;
                          }
                      }
                  }
                  return emptyArray;
              }
              function serializeReturnTypeOfNode(node, getGeneratedNameForNode) {
                  if (node && ts.isFunctionLike(node)) {
                      return serializeTypeNode(node.type, getGeneratedNameForNode);
                  }
                  return "void 0";
              }
              function writeTypeOfDeclaration(declaration, enclosingDeclaration, flags, writer) {
                  var symbol = getSymbolOfNode(declaration);
                  var type = symbol && !(symbol.flags & (2048 | 131072))
                      ? getTypeOfSymbol(symbol)
                      : unknownType;
                  getSymbolDisplayBuilder().buildTypeDisplay(type, writer, enclosingDeclaration, flags);
              }
              function writeReturnTypeOfSignatureDeclaration(signatureDeclaration, enclosingDeclaration, flags, writer) {
                  var signature = getSignatureFromDeclaration(signatureDeclaration);
                  getSymbolDisplayBuilder().buildTypeDisplay(getReturnTypeOfSignature(signature), writer, enclosingDeclaration, flags);
              }
              function writeTypeOfExpression(expr, enclosingDeclaration, flags, writer) {
                  var type = getTypeOfExpression(expr);
                  getSymbolDisplayBuilder().buildTypeDisplay(type, writer, enclosingDeclaration, flags);
              }
              function hasGlobalName(name) {
                  return ts.hasProperty(globals, name);
              }
              function resolvesToSomeValue(location, name) {
                  ts.Debug.assert(!ts.nodeIsSynthesized(location), "resolvesToSomeValue called with a synthesized location");
                  return !!resolveName(location, name, 107455, undefined, undefined);
              }
              function getReferencedValueDeclaration(reference) {
                  ts.Debug.assert(!ts.nodeIsSynthesized(reference));
                  var symbol = getNodeLinks(reference).resolvedSymbol ||
                      resolveName(reference, reference.text, 107455 | 8388608, undefined, undefined);
                  return symbol && getExportSymbolOfValueSymbolIfExported(symbol).valueDeclaration;
              }
              function getBlockScopedVariableId(n) {
                  ts.Debug.assert(!ts.nodeIsSynthesized(n));
                  var isVariableDeclarationOrBindingElement = n.parent.kind === 153 || (n.parent.kind === 199 && n.parent.name === n);
                  var symbol = (isVariableDeclarationOrBindingElement ? getSymbolOfNode(n.parent) : undefined) ||
                      getNodeLinks(n).resolvedSymbol ||
                      resolveName(n, n.text, 107455 | 8388608, undefined, undefined);
                  var isLetOrConst = symbol &&
                      (symbol.flags & 2) &&
                      symbol.valueDeclaration.parent.kind !== 224;
                  if (isLetOrConst) {
                      getSymbolLinks(symbol);
                      return symbol.id;
                  }
                  return undefined;
              }
              function instantiateSingleCallFunctionType(functionType, typeArguments) {
                  if (functionType === unknownType) {
                      return unknownType;
                  }
                  var signature = getSingleCallSignature(functionType);
                  if (!signature) {
                      return unknownType;
                  }
                  var instantiatedSignature = getSignatureInstantiation(signature, typeArguments);
                  return getOrCreateTypeFromSignature(instantiatedSignature);
              }
              function createResolver() {
                  return {
                      getExpressionNameSubstitution: getExpressionNameSubstitution,
                      isValueAliasDeclaration: isValueAliasDeclaration,
                      hasGlobalName: hasGlobalName,
                      isReferencedAliasDeclaration: isReferencedAliasDeclaration,
                      getNodeCheckFlags: getNodeCheckFlags,
                      isTopLevelValueImportEqualsWithEntityName: isTopLevelValueImportEqualsWithEntityName,
                      isDeclarationVisible: isDeclarationVisible,
                      isImplementationOfOverload: isImplementationOfOverload,
                      writeTypeOfDeclaration: writeTypeOfDeclaration,
                      writeReturnTypeOfSignatureDeclaration: writeReturnTypeOfSignatureDeclaration,
                      writeTypeOfExpression: writeTypeOfExpression,
                      isSymbolAccessible: isSymbolAccessible,
                      isEntityNameVisible: isEntityNameVisible,
                      getConstantValue: getConstantValue,
                      resolvesToSomeValue: resolvesToSomeValue,
                      collectLinkedAliases: collectLinkedAliases,
                      getBlockScopedVariableId: getBlockScopedVariableId,
                      getReferencedValueDeclaration: getReferencedValueDeclaration,
                      serializeTypeOfNode: serializeTypeOfNode,
                      serializeParameterTypesOfNode: serializeParameterTypesOfNode,
                      serializeReturnTypeOfNode: serializeReturnTypeOfNode
                  };
              }
              function initializeTypeChecker() {
                  ts.forEach(host.getSourceFiles(), function (file) {
                      ts.bindSourceFile(file);
                  });
                  ts.forEach(host.getSourceFiles(), function (file) {
                      if (!ts.isExternalModule(file)) {
                          mergeSymbolTable(globals, file.locals);
                      }
                  });
                  getSymbolLinks(undefinedSymbol).type = undefinedType;
                  getSymbolLinks(argumentsSymbol).type = getGlobalType("IArguments");
                  getSymbolLinks(unknownSymbol).type = unknownType;
                  globals[undefinedSymbol.name] = undefinedSymbol;
                  globalArraySymbol = getGlobalTypeSymbol("Array");
                  globalArrayType = getTypeOfGlobalSymbol(globalArraySymbol, 1);
                  globalObjectType = getGlobalType("Object");
                  globalFunctionType = getGlobalType("Function");
                  globalStringType = getGlobalType("String");
                  globalNumberType = getGlobalType("Number");
                  globalBooleanType = getGlobalType("Boolean");
                  globalRegExpType = getGlobalType("RegExp");
                  getGlobalClassDecoratorType = ts.memoize(function () { return getGlobalType("ClassDecorator"); });
                  getGlobalPropertyDecoratorType = ts.memoize(function () { return getGlobalType("PropertyDecorator"); });
                  getGlobalMethodDecoratorType = ts.memoize(function () { return getGlobalType("MethodDecorator"); });
                  getGlobalParameterDecoratorType = ts.memoize(function () { return getGlobalType("ParameterDecorator"); });
                  if (languageVersion >= 2) {
                      globalTemplateStringsArrayType = getGlobalType("TemplateStringsArray");
                      globalESSymbolType = getGlobalType("Symbol");
                      globalESSymbolConstructorSymbol = getGlobalValueSymbol("Symbol");
                      globalIterableType = getGlobalType("Iterable", 1);
                  }
                  else {
                      globalTemplateStringsArrayType = unknownType;
                      globalESSymbolType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, undefined, undefined);
                      globalESSymbolConstructorSymbol = undefined;
                  }
                  anyArrayType = createArrayType(anyType);
              }
              function isReservedWordInStrictMode(node) {
                  return (node.parserContextFlags & 1) &&
                      (102 <= node.originalKeywordKind && node.originalKeywordKind <= 110);
              }
              function reportStrictModeGrammarErrorInClassDeclaration(identifier, message, arg0, arg1, arg2) {
                  if (ts.getAncestor(identifier, 202) || ts.getAncestor(identifier, 175)) {
                      return grammarErrorOnNode(identifier, message, arg0);
                  }
                  return false;
              }
              function checkGrammarImportDeclarationNameInStrictMode(node) {
                  if (node.importClause) {
                      var impotClause = node.importClause;
                      if (impotClause.namedBindings) {
                          var nameBindings = impotClause.namedBindings;
                          if (nameBindings.kind === 212) {
                              var name_11 = nameBindings.name;
                              if (isReservedWordInStrictMode(name_11)) {
                                  var nameText = ts.declarationNameToString(name_11);
                                  return grammarErrorOnNode(name_11, ts.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode, nameText);
                              }
                          }
                          else if (nameBindings.kind === 213) {
                              var reportError = false;
                              for (var _i = 0, _a = nameBindings.elements; _i < _a.length; _i++) {
                                  var element = _a[_i];
                                  var name_12 = element.name;
                                  if (isReservedWordInStrictMode(name_12)) {
                                      var nameText = ts.declarationNameToString(name_12);
                                      reportError = reportError || grammarErrorOnNode(name_12, ts.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode, nameText);
                                  }
                              }
                              return reportError;
                          }
                      }
                  }
                  return false;
              }
              function checkGrammarDeclarationNameInStrictMode(node) {
                  var name = node.name;
                  if (name && name.kind === 65 && isReservedWordInStrictMode(name)) {
                      var nameText = ts.declarationNameToString(name);
                      switch (node.kind) {
                          case 130:
                          case 199:
                          case 201:
                          case 129:
                          case 153:
                          case 203:
                          case 204:
                          case 205:
                              return checkGrammarIdentifierInStrictMode(name);
                          case 202:
                              return grammarErrorOnNode(name, ts.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode, nameText);
                          case 206:
                              return grammarErrorOnNode(name, ts.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode, nameText);
                          case 209:
                              return grammarErrorOnNode(name, ts.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode, nameText);
                      }
                  }
                  return false;
              }
              function checkGrammarTypeReferenceInStrictMode(typeName) {
                  if (typeName.kind === 65) {
                      checkGrammarTypeNameInStrictMode(typeName);
                  }
                  else if (typeName.kind === 127) {
                      checkGrammarTypeNameInStrictMode(typeName.right);
                      checkGrammarTypeReferenceInStrictMode(typeName.left);
                  }
              }
              function checkGrammarExpressionWithTypeArgumentsInStrictMode(expression) {
                  if (expression && expression.kind === 65) {
                      return checkGrammarIdentifierInStrictMode(expression);
                  }
                  else if (expression && expression.kind === 156) {
                      checkGrammarExpressionWithTypeArgumentsInStrictMode(expression.expression);
                  }
              }
              function checkGrammarIdentifierInStrictMode(node, nameText) {
                  if (node && node.kind === 65 && isReservedWordInStrictMode(node)) {
                      if (!nameText) {
                          nameText = ts.declarationNameToString(node);
                      }
                      var errorReport = reportStrictModeGrammarErrorInClassDeclaration(node, ts.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode, nameText) ||
                          grammarErrorOnNode(node, ts.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode, nameText);
                      return errorReport;
                  }
                  return false;
              }
              function checkGrammarTypeNameInStrictMode(node) {
                  if (node && node.kind === 65 && isReservedWordInStrictMode(node)) {
                      var nameText = ts.declarationNameToString(node);
                      var errorReport = reportStrictModeGrammarErrorInClassDeclaration(node, ts.Diagnostics.Type_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode, nameText) ||
                          grammarErrorOnNode(node, ts.Diagnostics.Type_expected_0_is_a_reserved_word_in_strict_mode, nameText);
                      return errorReport;
                  }
                  return false;
              }
              function checkGrammarDecorators(node) {
                  if (!node.decorators) {
                      return false;
                  }
                  if (!ts.nodeCanBeDecorated(node)) {
                      return grammarErrorOnFirstToken(node, ts.Diagnostics.Decorators_are_not_valid_here);
                  }
                  else if (languageVersion < 1) {
                      return grammarErrorOnFirstToken(node, ts.Diagnostics.Decorators_are_only_available_when_targeting_ECMAScript_5_and_higher);
                  }
                  else if (node.kind === 137 || node.kind === 138) {
                      var accessors = ts.getAllAccessorDeclarations(node.parent.members, node);
                      if (accessors.firstAccessor.decorators && node === accessors.secondAccessor) {
                          return grammarErrorOnFirstToken(node, ts.Diagnostics.Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name);
                      }
                  }
                  return false;
              }
              function checkGrammarModifiers(node) {
                  switch (node.kind) {
                      case 137:
                      case 138:
                      case 136:
                      case 133:
                      case 132:
                      case 135:
                      case 134:
                      case 141:
                      case 202:
                      case 203:
                      case 206:
                      case 205:
                      case 181:
                      case 201:
                      case 204:
                      case 210:
                      case 209:
                      case 216:
                      case 215:
                      case 130:
                          break;
                      default:
                          return false;
                  }
                  if (!node.modifiers) {
                      return;
                  }
                  var lastStatic, lastPrivate, lastProtected, lastDeclare;
                  var flags = 0;
                  for (var _i = 0, _a = node.modifiers; _i < _a.length; _i++) {
                      var modifier = _a[_i];
                      switch (modifier.kind) {
                          case 108:
                          case 107:
                          case 106:
                              var text = void 0;
                              if (modifier.kind === 108) {
                                  text = "public";
                              }
                              else if (modifier.kind === 107) {
                                  text = "protected";
                                  lastProtected = modifier;
                              }
                              else {
                                  text = "private";
                                  lastPrivate = modifier;
                              }
                              if (flags & 112) {
                                  return grammarErrorOnNode(modifier, ts.Diagnostics.Accessibility_modifier_already_seen);
                              }
                              else if (flags & 128) {
                                  return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, text, "static");
                              }
                              else if (node.parent.kind === 207 || node.parent.kind === 228) {
                                  return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_module_element, text);
                              }
                              flags |= ts.modifierToFlag(modifier.kind);
                              break;
                          case 109:
                              if (flags & 128) {
                                  return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_already_seen, "static");
                              }
                              else if (node.parent.kind === 207 || node.parent.kind === 228) {
                                  return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_module_element, "static");
                              }
                              else if (node.kind === 130) {
                                  return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "static");
                              }
                              flags |= 128;
                              lastStatic = modifier;
                              break;
                          case 78:
                              if (flags & 1) {
                                  return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_already_seen, "export");
                              }
                              else if (flags & 2) {
                                  return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, "export", "declare");
                              }
                              else if (node.parent.kind === 202) {
                                  return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_class_element, "export");
                              }
                              else if (node.kind === 130) {
                                  return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "export");
                              }
                              flags |= 1;
                              break;
                          case 115:
                              if (flags & 2) {
                                  return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_already_seen, "declare");
                              }
                              else if (node.parent.kind === 202) {
                                  return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_class_element, "declare");
                              }
                              else if (node.kind === 130) {
                                  return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "declare");
                              }
                              else if (ts.isInAmbientContext(node.parent) && node.parent.kind === 207) {
                                  return grammarErrorOnNode(modifier, ts.Diagnostics.A_declare_modifier_cannot_be_used_in_an_already_ambient_context);
                              }
                              flags |= 2;
                              lastDeclare = modifier;
                              break;
                      }
                  }
                  if (node.kind === 136) {
                      if (flags & 128) {
                          return grammarErrorOnNode(lastStatic, ts.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "static");
                      }
                      else if (flags & 64) {
                          return grammarErrorOnNode(lastProtected, ts.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "protected");
                      }
                      else if (flags & 32) {
                          return grammarErrorOnNode(lastPrivate, ts.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "private");
                      }
                  }
                  else if ((node.kind === 210 || node.kind === 209) && flags & 2) {
                      return grammarErrorOnNode(lastDeclare, ts.Diagnostics.A_declare_modifier_cannot_be_used_with_an_import_declaration, "declare");
                  }
                  else if (node.kind === 203 && flags & 2) {
                      return grammarErrorOnNode(lastDeclare, ts.Diagnostics.A_declare_modifier_cannot_be_used_with_an_interface_declaration, "declare");
                  }
                  else if (node.kind === 130 && (flags & 112) && ts.isBindingPattern(node.name)) {
                      return grammarErrorOnNode(node, ts.Diagnostics.A_parameter_property_may_not_be_a_binding_pattern);
                  }
              }
              function checkGrammarForDisallowedTrailingComma(list) {
                  if (list && list.hasTrailingComma) {
                      var start = list.end - ",".length;
                      var end = list.end;
                      var sourceFile = ts.getSourceFileOfNode(list[0]);
                      return grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.Trailing_comma_not_allowed);
                  }
              }
              function checkGrammarTypeParameterList(node, typeParameters, file) {
                  if (checkGrammarForDisallowedTrailingComma(typeParameters)) {
                      return true;
                  }
                  if (typeParameters && typeParameters.length === 0) {
                      var start = typeParameters.pos - "<".length;
                      var end = ts.skipTrivia(file.text, typeParameters.end) + ">".length;
                      return grammarErrorAtPos(file, start, end - start, ts.Diagnostics.Type_parameter_list_cannot_be_empty);
                  }
              }
              function checkGrammarParameterList(parameters) {
                  if (checkGrammarForDisallowedTrailingComma(parameters)) {
                      return true;
                  }
                  var seenOptionalParameter = false;
                  var parameterCount = parameters.length;
                  for (var i = 0; i < parameterCount; i++) {
                      var parameter = parameters[i];
                      if (parameter.dotDotDotToken) {
                          if (i !== (parameterCount - 1)) {
                              return grammarErrorOnNode(parameter.dotDotDotToken, ts.Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list);
                          }
                          if (ts.isBindingPattern(parameter.name)) {
                              return grammarErrorOnNode(parameter.name, ts.Diagnostics.A_rest_element_cannot_contain_a_binding_pattern);
                          }
                          if (parameter.questionToken) {
                              return grammarErrorOnNode(parameter.questionToken, ts.Diagnostics.A_rest_parameter_cannot_be_optional);
                          }
                          if (parameter.initializer) {
                              return grammarErrorOnNode(parameter.name, ts.Diagnostics.A_rest_parameter_cannot_have_an_initializer);
                          }
                      }
                      else if (parameter.questionToken || parameter.initializer) {
                          seenOptionalParameter = true;
                          if (parameter.questionToken && parameter.initializer) {
                              return grammarErrorOnNode(parameter.name, ts.Diagnostics.Parameter_cannot_have_question_mark_and_initializer);
                          }
                      }
                      else {
                          if (seenOptionalParameter) {
                              return grammarErrorOnNode(parameter.name, ts.Diagnostics.A_required_parameter_cannot_follow_an_optional_parameter);
                          }
                      }
                  }
              }
              function checkGrammarFunctionLikeDeclaration(node) {
                  var file = ts.getSourceFileOfNode(node);
                  return checkGrammarDecorators(node) || checkGrammarModifiers(node) || checkGrammarTypeParameterList(node, node.typeParameters, file) ||
                      checkGrammarParameterList(node.parameters) || checkGrammarArrowFunction(node, file);
              }
              function checkGrammarArrowFunction(node, file) {
                  if (node.kind === 164) {
                      var arrowFunction = node;
                      var startLine = ts.getLineAndCharacterOfPosition(file, arrowFunction.equalsGreaterThanToken.pos).line;
                      var endLine = ts.getLineAndCharacterOfPosition(file, arrowFunction.equalsGreaterThanToken.end).line;
                      if (startLine !== endLine) {
                          return grammarErrorOnNode(arrowFunction.equalsGreaterThanToken, ts.Diagnostics.Line_terminator_not_permitted_before_arrow);
                      }
                  }
                  return false;
              }
              function checkGrammarIndexSignatureParameters(node) {
                  var parameter = node.parameters[0];
                  if (node.parameters.length !== 1) {
                      if (parameter) {
                          return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_must_have_exactly_one_parameter);
                      }
                      else {
                          return grammarErrorOnNode(node, ts.Diagnostics.An_index_signature_must_have_exactly_one_parameter);
                      }
                  }
                  if (parameter.dotDotDotToken) {
                      return grammarErrorOnNode(parameter.dotDotDotToken, ts.Diagnostics.An_index_signature_cannot_have_a_rest_parameter);
                  }
                  if (parameter.flags & 499) {
                      return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_parameter_cannot_have_an_accessibility_modifier);
                  }
                  if (parameter.questionToken) {
                      return grammarErrorOnNode(parameter.questionToken, ts.Diagnostics.An_index_signature_parameter_cannot_have_a_question_mark);
                  }
                  if (parameter.initializer) {
                      return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_parameter_cannot_have_an_initializer);
                  }
                  if (!parameter.type) {
                      return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_parameter_must_have_a_type_annotation);
                  }
                  if (parameter.type.kind !== 122 && parameter.type.kind !== 120) {
                      return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_parameter_type_must_be_string_or_number);
                  }
                  if (!node.type) {
                      return grammarErrorOnNode(node, ts.Diagnostics.An_index_signature_must_have_a_type_annotation);
                  }
              }
              function checkGrammarForIndexSignatureModifier(node) {
                  if (node.flags & 499) {
                      grammarErrorOnFirstToken(node, ts.Diagnostics.Modifiers_not_permitted_on_index_signature_members);
                  }
              }
              function checkGrammarIndexSignature(node) {
                  return checkGrammarDecorators(node) || checkGrammarModifiers(node) || checkGrammarIndexSignatureParameters(node) || checkGrammarForIndexSignatureModifier(node);
              }
              function checkGrammarForAtLeastOneTypeArgument(node, typeArguments) {
                  if (typeArguments && typeArguments.length === 0) {
                      var sourceFile = ts.getSourceFileOfNode(node);
                      var start = typeArguments.pos - "<".length;
                      var end = ts.skipTrivia(sourceFile.text, typeArguments.end) + ">".length;
                      return grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.Type_argument_list_cannot_be_empty);
                  }
              }
              function checkGrammarTypeArguments(node, typeArguments) {
                  return checkGrammarForDisallowedTrailingComma(typeArguments) ||
                      checkGrammarForAtLeastOneTypeArgument(node, typeArguments);
              }
              function checkGrammarForOmittedArgument(node, arguments) {
                  if (arguments) {
                      var sourceFile = ts.getSourceFileOfNode(node);
                      for (var _i = 0; _i < arguments.length; _i++) {
                          var arg = arguments[_i];
                          if (arg.kind === 176) {
                              return grammarErrorAtPos(sourceFile, arg.pos, 0, ts.Diagnostics.Argument_expression_expected);
                          }
                      }
                  }
              }
              function checkGrammarArguments(node, arguments) {
                  return checkGrammarForDisallowedTrailingComma(arguments) ||
                      checkGrammarForOmittedArgument(node, arguments);
              }
              function checkGrammarHeritageClause(node) {
                  var types = node.types;
                  if (checkGrammarForDisallowedTrailingComma(types)) {
                      return true;
                  }
                  if (types && types.length === 0) {
                      var listType = ts.tokenToString(node.token);
                      var sourceFile = ts.getSourceFileOfNode(node);
                      return grammarErrorAtPos(sourceFile, types.pos, 0, ts.Diagnostics._0_list_cannot_be_empty, listType);
                  }
              }
              function checkGrammarClassDeclarationHeritageClauses(node) {
                  var seenExtendsClause = false;
                  var seenImplementsClause = false;
                  if (!checkGrammarDecorators(node) && !checkGrammarModifiers(node) && node.heritageClauses) {
                      for (var _i = 0, _a = node.heritageClauses; _i < _a.length; _i++) {
                          var heritageClause = _a[_i];
                          if (heritageClause.token === 79) {
                              if (seenExtendsClause) {
                                  return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.extends_clause_already_seen);
                              }
                              if (seenImplementsClause) {
                                  return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.extends_clause_must_precede_implements_clause);
                              }
                              if (heritageClause.types.length > 1) {
                                  return grammarErrorOnFirstToken(heritageClause.types[1], ts.Diagnostics.Classes_can_only_extend_a_single_class);
                              }
                              seenExtendsClause = true;
                          }
                          else {
                              ts.Debug.assert(heritageClause.token === 102);
                              if (seenImplementsClause) {
                                  return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.implements_clause_already_seen);
                              }
                              seenImplementsClause = true;
                          }
                          checkGrammarHeritageClause(heritageClause);
                      }
                  }
              }
              function checkGrammarInterfaceDeclaration(node) {
                  var seenExtendsClause = false;
                  if (node.heritageClauses) {
                      for (var _i = 0, _a = node.heritageClauses; _i < _a.length; _i++) {
                          var heritageClause = _a[_i];
                          if (heritageClause.token === 79) {
                              if (seenExtendsClause) {
                                  return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.extends_clause_already_seen);
                              }
                              seenExtendsClause = true;
                          }
                          else {
                              ts.Debug.assert(heritageClause.token === 102);
                              return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.Interface_declaration_cannot_have_implements_clause);
                          }
                          checkGrammarHeritageClause(heritageClause);
                      }
                  }
                  return false;
              }
              function checkGrammarComputedPropertyName(node) {
                  if (node.kind !== 128) {
                      return false;
                  }
                  var computedPropertyName = node;
                  if (computedPropertyName.expression.kind === 170 && computedPropertyName.expression.operatorToken.kind === 23) {
                      return grammarErrorOnNode(computedPropertyName.expression, ts.Diagnostics.A_comma_expression_is_not_allowed_in_a_computed_property_name);
                  }
              }
              function checkGrammarForGenerator(node) {
                  if (node.asteriskToken) {
                      return grammarErrorOnNode(node.asteriskToken, ts.Diagnostics.Generators_are_not_currently_supported);
                  }
              }
              function checkGrammarFunctionName(name) {
                  return checkGrammarEvalOrArgumentsInStrictMode(name, name);
              }
              function checkGrammarForInvalidQuestionMark(node, questionToken, message) {
                  if (questionToken) {
                      return grammarErrorOnNode(questionToken, message);
                  }
              }
              function checkGrammarObjectLiteralExpression(node) {
                  var seen = {};
                  var Property = 1;
                  var GetAccessor = 2;
                  var SetAccesor = 4;
                  var GetOrSetAccessor = GetAccessor | SetAccesor;
                  var inStrictMode = (node.parserContextFlags & 1) !== 0;
                  for (var _i = 0, _a = node.properties; _i < _a.length; _i++) {
                      var prop = _a[_i];
                      var name_13 = prop.name;
                      if (prop.kind === 176 ||
                          name_13.kind === 128) {
                          checkGrammarComputedPropertyName(name_13);
                          continue;
                      }
                      var currentKind = void 0;
                      if (prop.kind === 225 || prop.kind === 226) {
                          checkGrammarForInvalidQuestionMark(prop, prop.questionToken, ts.Diagnostics.An_object_member_cannot_be_declared_optional);
                          if (name_13.kind === 7) {
                              checkGrammarNumericLiteral(name_13);
                          }
                          currentKind = Property;
                      }
                      else if (prop.kind === 135) {
                          currentKind = Property;
                      }
                      else if (prop.kind === 137) {
                          currentKind = GetAccessor;
                      }
                      else if (prop.kind === 138) {
                          currentKind = SetAccesor;
                      }
                      else {
                          ts.Debug.fail("Unexpected syntax kind:" + prop.kind);
                      }
                      if (!ts.hasProperty(seen, name_13.text)) {
                          seen[name_13.text] = currentKind;
                      }
                      else {
                          var existingKind = seen[name_13.text];
                          if (currentKind === Property && existingKind === Property) {
                              if (inStrictMode) {
                                  grammarErrorOnNode(name_13, ts.Diagnostics.An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode);
                              }
                          }
                          else if ((currentKind & GetOrSetAccessor) && (existingKind & GetOrSetAccessor)) {
                              if (existingKind !== GetOrSetAccessor && currentKind !== existingKind) {
                                  seen[name_13.text] = currentKind | existingKind;
                              }
                              else {
                                  return grammarErrorOnNode(name_13, ts.Diagnostics.An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name);
                              }
                          }
                          else {
                              return grammarErrorOnNode(name_13, ts.Diagnostics.An_object_literal_cannot_have_property_and_accessor_with_the_same_name);
                          }
                      }
                  }
              }
              function checkGrammarForInOrForOfStatement(forInOrOfStatement) {
                  if (checkGrammarStatementInAmbientContext(forInOrOfStatement)) {
                      return true;
                  }
                  if (forInOrOfStatement.initializer.kind === 200) {
                      var variableList = forInOrOfStatement.initializer;
                      if (!checkGrammarVariableDeclarationList(variableList)) {
                          if (variableList.declarations.length > 1) {
                              var diagnostic = forInOrOfStatement.kind === 188
                                  ? ts.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement
                                  : ts.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement;
                              return grammarErrorOnFirstToken(variableList.declarations[1], diagnostic);
                          }
                          var firstDeclaration = variableList.declarations[0];
                          if (firstDeclaration.initializer) {
                              var diagnostic = forInOrOfStatement.kind === 188
                                  ? ts.Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer
                                  : ts.Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer;
                              return grammarErrorOnNode(firstDeclaration.name, diagnostic);
                          }
                          if (firstDeclaration.type) {
                              var diagnostic = forInOrOfStatement.kind === 188
                                  ? ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation
                                  : ts.Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation;
                              return grammarErrorOnNode(firstDeclaration, diagnostic);
                          }
                      }
                  }
                  return false;
              }
              function checkGrammarAccessor(accessor) {
                  var kind = accessor.kind;
                  if (languageVersion < 1) {
                      return grammarErrorOnNode(accessor.name, ts.Diagnostics.Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher);
                  }
                  else if (ts.isInAmbientContext(accessor)) {
                      return grammarErrorOnNode(accessor.name, ts.Diagnostics.An_accessor_cannot_be_declared_in_an_ambient_context);
                  }
                  else if (accessor.body === undefined) {
                      return grammarErrorAtPos(ts.getSourceFileOfNode(accessor), accessor.end - 1, ";".length, ts.Diagnostics._0_expected, "{");
                  }
                  else if (accessor.typeParameters) {
                      return grammarErrorOnNode(accessor.name, ts.Diagnostics.An_accessor_cannot_have_type_parameters);
                  }
                  else if (kind === 137 && accessor.parameters.length) {
                      return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_get_accessor_cannot_have_parameters);
                  }
                  else if (kind === 138) {
                      if (accessor.type) {
                          return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_set_accessor_cannot_have_a_return_type_annotation);
                      }
                      else if (accessor.parameters.length !== 1) {
                          return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_set_accessor_must_have_exactly_one_parameter);
                      }
                      else {
                          var parameter = accessor.parameters[0];
                          if (parameter.dotDotDotToken) {
                              return grammarErrorOnNode(parameter.dotDotDotToken, ts.Diagnostics.A_set_accessor_cannot_have_rest_parameter);
                          }
                          else if (parameter.flags & 499) {
                              return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation);
                          }
                          else if (parameter.questionToken) {
                              return grammarErrorOnNode(parameter.questionToken, ts.Diagnostics.A_set_accessor_cannot_have_an_optional_parameter);
                          }
                          else if (parameter.initializer) {
                              return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_set_accessor_parameter_cannot_have_an_initializer);
                          }
                      }
                  }
              }
              function checkGrammarForNonSymbolComputedProperty(node, message) {
                  if (node.kind === 128 && !ts.isWellKnownSymbolSyntactically(node.expression)) {
                      return grammarErrorOnNode(node, message);
                  }
              }
              function checkGrammarMethod(node) {
                  if (checkGrammarDisallowedModifiersInBlockOrObjectLiteralExpression(node) ||
                      checkGrammarFunctionLikeDeclaration(node) ||
                      checkGrammarForGenerator(node)) {
                      return true;
                  }
                  if (node.parent.kind === 155) {
                      if (checkGrammarForInvalidQuestionMark(node, node.questionToken, ts.Diagnostics.A_class_member_cannot_be_declared_optional)) {
                          return true;
                      }
                      else if (node.body === undefined) {
                          return grammarErrorAtPos(getSourceFile(node), node.end - 1, ";".length, ts.Diagnostics._0_expected, "{");
                      }
                  }
                  if (node.parent.kind === 202) {
                      if (checkGrammarForInvalidQuestionMark(node, node.questionToken, ts.Diagnostics.A_class_member_cannot_be_declared_optional)) {
                          return true;
                      }
                      if (ts.isInAmbientContext(node)) {
                          return checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_an_ambient_context_must_directly_refer_to_a_built_in_symbol);
                      }
                      else if (!node.body) {
                          return checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_method_overload_must_directly_refer_to_a_built_in_symbol);
                      }
                  }
                  else if (node.parent.kind === 203) {
                      return checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_an_interface_must_directly_refer_to_a_built_in_symbol);
                  }
                  else if (node.parent.kind === 146) {
                      return checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_type_literal_must_directly_refer_to_a_built_in_symbol);
                  }
              }
              function isIterationStatement(node, lookInLabeledStatements) {
                  switch (node.kind) {
                      case 187:
                      case 188:
                      case 189:
                      case 185:
                      case 186:
                          return true;
                      case 195:
                          return lookInLabeledStatements && isIterationStatement(node.statement, lookInLabeledStatements);
                  }
                  return false;
              }
              function checkGrammarBreakOrContinueStatement(node) {
                  var current = node;
                  while (current) {
                      if (ts.isFunctionLike(current)) {
                          return grammarErrorOnNode(node, ts.Diagnostics.Jump_target_cannot_cross_function_boundary);
                      }
                      switch (current.kind) {
                          case 195:
                              if (node.label && current.label.text === node.label.text) {
                                  var isMisplacedContinueLabel = node.kind === 190
                                      && !isIterationStatement(current.statement, true);
                                  if (isMisplacedContinueLabel) {
                                      return grammarErrorOnNode(node, ts.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement);
                                  }
                                  return false;
                              }
                              break;
                          case 194:
                              if (node.kind === 191 && !node.label) {
                                  return false;
                              }
                              break;
                          default:
                              if (isIterationStatement(current, false) && !node.label) {
                                  return false;
                              }
                              break;
                      }
                      current = current.parent;
                  }
                  if (node.label) {
                      var message = node.kind === 191
                          ? ts.Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement
                          : ts.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement;
                      return grammarErrorOnNode(node, message);
                  }
                  else {
                      var message = node.kind === 191
                          ? ts.Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement
                          : ts.Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement;
                      return grammarErrorOnNode(node, message);
                  }
              }
              function checkGrammarBindingElement(node) {
                  if (node.dotDotDotToken) {
                      var elements = node.parent.elements;
                      if (node !== ts.lastOrUndefined(elements)) {
                          return grammarErrorOnNode(node, ts.Diagnostics.A_rest_element_must_be_last_in_an_array_destructuring_pattern);
                      }
                      if (node.name.kind === 152 || node.name.kind === 151) {
                          return grammarErrorOnNode(node.name, ts.Diagnostics.A_rest_element_cannot_contain_a_binding_pattern);
                      }
                      if (node.initializer) {
                          return grammarErrorAtPos(ts.getSourceFileOfNode(node), node.initializer.pos - 1, 1, ts.Diagnostics.A_rest_element_cannot_have_an_initializer);
                      }
                  }
                  return checkGrammarEvalOrArgumentsInStrictMode(node, node.name);
              }
              function checkGrammarVariableDeclaration(node) {
                  if (node.parent.parent.kind !== 188 && node.parent.parent.kind !== 189) {
                      if (ts.isInAmbientContext(node)) {
                          if (node.initializer) {
                              var equalsTokenLength = "=".length;
                              return grammarErrorAtPos(ts.getSourceFileOfNode(node), node.initializer.pos - equalsTokenLength, equalsTokenLength, ts.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts);
                          }
                      }
                      else if (!node.initializer) {
                          if (ts.isBindingPattern(node.name) && !ts.isBindingPattern(node.parent)) {
                              return grammarErrorOnNode(node, ts.Diagnostics.A_destructuring_declaration_must_have_an_initializer);
                          }
                          if (ts.isConst(node)) {
                              return grammarErrorOnNode(node, ts.Diagnostics.const_declarations_must_be_initialized);
                          }
                      }
                  }
                  var checkLetConstNames = languageVersion >= 2 && (ts.isLet(node) || ts.isConst(node));
                  return (checkLetConstNames && checkGrammarNameInLetOrConstDeclarations(node.name)) ||
                      checkGrammarEvalOrArgumentsInStrictMode(node, node.name);
              }
              function checkGrammarNameInLetOrConstDeclarations(name) {
                  if (name.kind === 65) {
                      if (name.text === "let") {
                          return grammarErrorOnNode(name, ts.Diagnostics.let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations);
                      }
                  }
                  else {
                      var elements = name.elements;
                      for (var _i = 0; _i < elements.length; _i++) {
                          var element = elements[_i];
                          if (element.kind !== 176) {
                              checkGrammarNameInLetOrConstDeclarations(element.name);
                          }
                      }
                  }
              }
              function checkGrammarVariableDeclarationList(declarationList) {
                  var declarations = declarationList.declarations;
                  if (checkGrammarForDisallowedTrailingComma(declarationList.declarations)) {
                      return true;
                  }
                  if (!declarationList.declarations.length) {
                      return grammarErrorAtPos(ts.getSourceFileOfNode(declarationList), declarations.pos, declarations.end - declarations.pos, ts.Diagnostics.Variable_declaration_list_cannot_be_empty);
                  }
              }
              function allowLetAndConstDeclarations(parent) {
                  switch (parent.kind) {
                      case 184:
                      case 185:
                      case 186:
                      case 193:
                      case 187:
                      case 188:
                      case 189:
                          return false;
                      case 195:
                          return allowLetAndConstDeclarations(parent.parent);
                  }
                  return true;
              }
              function checkGrammarForDisallowedLetOrConstStatement(node) {
                  if (!allowLetAndConstDeclarations(node.parent)) {
                      if (ts.isLet(node.declarationList)) {
                          return grammarErrorOnNode(node, ts.Diagnostics.let_declarations_can_only_be_declared_inside_a_block);
                      }
                      else if (ts.isConst(node.declarationList)) {
                          return grammarErrorOnNode(node, ts.Diagnostics.const_declarations_can_only_be_declared_inside_a_block);
                      }
                  }
              }
              function isIntegerLiteral(expression) {
                  if (expression.kind === 168) {
                      var unaryExpression = expression;
                      if (unaryExpression.operator === 33 || unaryExpression.operator === 34) {
                          expression = unaryExpression.operand;
                      }
                  }
                  if (expression.kind === 7) {
                      return /^[0-9]+([eE]\+?[0-9]+)?$/.test(expression.text);
                  }
                  return false;
              }
              function checkGrammarEnumDeclaration(enumDecl) {
                  var enumIsConst = (enumDecl.flags & 8192) !== 0;
                  var hasError = false;
                  if (!enumIsConst) {
                      var inConstantEnumMemberSection = true;
                      var inAmbientContext = ts.isInAmbientContext(enumDecl);
                      for (var _i = 0, _a = enumDecl.members; _i < _a.length; _i++) {
                          var node = _a[_i];
                          if (node.name.kind === 128) {
                              hasError = grammarErrorOnNode(node.name, ts.Diagnostics.Computed_property_names_are_not_allowed_in_enums);
                          }
                          else if (inAmbientContext) {
                              if (node.initializer && !isIntegerLiteral(node.initializer)) {
                                  hasError = grammarErrorOnNode(node.name, ts.Diagnostics.Ambient_enum_elements_can_only_have_integer_literal_initializers) || hasError;
                              }
                          }
                          else if (node.initializer) {
                              inConstantEnumMemberSection = isIntegerLiteral(node.initializer);
                          }
                          else if (!inConstantEnumMemberSection) {
                              hasError = grammarErrorOnNode(node.name, ts.Diagnostics.Enum_member_must_have_initializer) || hasError;
                          }
                      }
                  }
                  return hasError;
              }
              function hasParseDiagnostics(sourceFile) {
                  return sourceFile.parseDiagnostics.length > 0;
              }
              function grammarErrorOnFirstToken(node, message, arg0, arg1, arg2) {
                  var sourceFile = ts.getSourceFileOfNode(node);
                  if (!hasParseDiagnostics(sourceFile)) {
                      var span = ts.getSpanOfTokenAtPosition(sourceFile, node.pos);
                      diagnostics.add(ts.createFileDiagnostic(sourceFile, span.start, span.length, message, arg0, arg1, arg2));
                      return true;
                  }
              }
              function grammarErrorAtPos(sourceFile, start, length, message, arg0, arg1, arg2) {
                  if (!hasParseDiagnostics(sourceFile)) {
                      diagnostics.add(ts.createFileDiagnostic(sourceFile, start, length, message, arg0, arg1, arg2));
                      return true;
                  }
              }
              function grammarErrorOnNode(node, message, arg0, arg1, arg2) {
                  var sourceFile = ts.getSourceFileOfNode(node);
                  if (!hasParseDiagnostics(sourceFile)) {
                      diagnostics.add(ts.createDiagnosticForNode(node, message, arg0, arg1, arg2));
                      return true;
                  }
              }
              function checkGrammarEvalOrArgumentsInStrictMode(contextNode, name) {
                  if (name && name.kind === 65) {
                      var identifier = name;
                      if (contextNode && (contextNode.parserContextFlags & 1) && isEvalOrArgumentsIdentifier(identifier)) {
                          var nameText = ts.declarationNameToString(identifier);
                          var reportErrorInClassDeclaration = reportStrictModeGrammarErrorInClassDeclaration(identifier, ts.Diagnostics.Invalid_use_of_0_Class_definitions_are_automatically_in_strict_mode, nameText);
                          if (!reportErrorInClassDeclaration) {
                              return grammarErrorOnNode(identifier, ts.Diagnostics.Invalid_use_of_0_in_strict_mode, nameText);
                          }
                          return reportErrorInClassDeclaration;
                      }
                  }
              }
              function isEvalOrArgumentsIdentifier(node) {
                  return node.kind === 65 &&
                      (node.text === "eval" || node.text === "arguments");
              }
              function checkGrammarConstructorTypeParameters(node) {
                  if (node.typeParameters) {
                      return grammarErrorAtPos(ts.getSourceFileOfNode(node), node.typeParameters.pos, node.typeParameters.end - node.typeParameters.pos, ts.Diagnostics.Type_parameters_cannot_appear_on_a_constructor_declaration);
                  }
              }
              function checkGrammarConstructorTypeAnnotation(node) {
                  if (node.type) {
                      return grammarErrorOnNode(node.type, ts.Diagnostics.Type_annotation_cannot_appear_on_a_constructor_declaration);
                  }
              }
              function checkGrammarProperty(node) {
                  if (node.parent.kind === 202) {
                      if (checkGrammarForInvalidQuestionMark(node, node.questionToken, ts.Diagnostics.A_class_member_cannot_be_declared_optional) ||
                          checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_class_property_declaration_must_directly_refer_to_a_built_in_symbol)) {
                          return true;
                      }
                  }
                  else if (node.parent.kind === 203) {
                      if (checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_an_interface_must_directly_refer_to_a_built_in_symbol)) {
                          return true;
                      }
                  }
                  else if (node.parent.kind === 146) {
                      if (checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_type_literal_must_directly_refer_to_a_built_in_symbol)) {
                          return true;
                      }
                  }
                  if (ts.isInAmbientContext(node) && node.initializer) {
                      return grammarErrorOnFirstToken(node.initializer, ts.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts);
                  }
              }
              function checkGrammarTopLevelElementForRequiredDeclareModifier(node) {
                  if (node.kind === 203 ||
                      node.kind === 210 ||
                      node.kind === 209 ||
                      node.kind === 216 ||
                      node.kind === 215 ||
                      (node.flags & 2) ||
                      (node.flags & (1 | 256))) {
                      return false;
                  }
                  return grammarErrorOnFirstToken(node, ts.Diagnostics.A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file);
              }
              function checkGrammarTopLevelElementsForRequiredDeclareModifier(file) {
                  for (var _i = 0, _a = file.statements; _i < _a.length; _i++) {
                      var decl = _a[_i];
                      if (ts.isDeclaration(decl) || decl.kind === 181) {
                          if (checkGrammarTopLevelElementForRequiredDeclareModifier(decl)) {
                              return true;
                          }
                      }
                  }
              }
              function checkGrammarSourceFile(node) {
                  return ts.isInAmbientContext(node) && checkGrammarTopLevelElementsForRequiredDeclareModifier(node);
              }
              function checkGrammarStatementInAmbientContext(node) {
                  if (ts.isInAmbientContext(node)) {
                      if (isAccessor(node.parent.kind)) {
                          return getNodeLinks(node).hasReportedStatementInAmbientContext = true;
                      }
                      var links = getNodeLinks(node);
                      if (!links.hasReportedStatementInAmbientContext && ts.isFunctionLike(node.parent)) {
                          return getNodeLinks(node).hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, ts.Diagnostics.An_implementation_cannot_be_declared_in_ambient_contexts);
                      }
                      if (node.parent.kind === 180 || node.parent.kind === 207 || node.parent.kind === 228) {
                          var links_1 = getNodeLinks(node.parent);
                          if (!links_1.hasReportedStatementInAmbientContext) {
                              return links_1.hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, ts.Diagnostics.Statements_are_not_allowed_in_ambient_contexts);
                          }
                      }
                      else {
                      }
                  }
              }
              function checkGrammarNumericLiteral(node) {
                  if (node.flags & 16384) {
                      if (node.parserContextFlags & 1) {
                          return grammarErrorOnNode(node, ts.Diagnostics.Octal_literals_are_not_allowed_in_strict_mode);
                      }
                      else if (languageVersion >= 1) {
                          return grammarErrorOnNode(node, ts.Diagnostics.Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher);
                      }
                  }
              }
              function grammarErrorAfterFirstToken(node, message, arg0, arg1, arg2) {
                  var sourceFile = ts.getSourceFileOfNode(node);
                  if (!hasParseDiagnostics(sourceFile)) {
                      var span = ts.getSpanOfTokenAtPosition(sourceFile, node.pos);
                      diagnostics.add(ts.createFileDiagnostic(sourceFile, ts.textSpanEnd(span), 0, message, arg0, arg1, arg2));
                      return true;
                  }
              }
              initializeTypeChecker();
              return checker;
          }
          ts.createTypeChecker = createTypeChecker;
      })(ts || (ts = {}));
      /// <reference path="checker.ts"/>
      var ts;
      (function (ts) {
          function getDeclarationDiagnostics(host, resolver, targetSourceFile) {
              var diagnostics = [];
              var jsFilePath = ts.getOwnEmitOutputFilePath(targetSourceFile, host, ".js");
              emitDeclarations(host, resolver, diagnostics, jsFilePath, targetSourceFile);
              return diagnostics;
          }
          ts.getDeclarationDiagnostics = getDeclarationDiagnostics;
          function emitDeclarations(host, resolver, diagnostics, jsFilePath, root) {
              var newLine = host.getNewLine();
              var compilerOptions = host.getCompilerOptions();
              var languageVersion = compilerOptions.target || 0;
              var write;
              var writeLine;
              var increaseIndent;
              var decreaseIndent;
              var writeTextOfNode;
              var writer = createAndSetNewTextWriterWithSymbolWriter();
              var enclosingDeclaration;
              var currentSourceFile;
              var reportedDeclarationError = false;
              var emitJsDocComments = compilerOptions.removeComments ? function (declaration) { } : writeJsDocComments;
              var emit = compilerOptions.stripInternal ? stripInternal : emitNode;
              var moduleElementDeclarationEmitInfo = [];
              var asynchronousSubModuleDeclarationEmitInfo;
              var referencePathsOutput = "";
              if (root) {
                  if (!compilerOptions.noResolve) {
                      var addedGlobalFileReference = false;
                      ts.forEach(root.referencedFiles, function (fileReference) {
                          var referencedFile = ts.tryResolveScriptReference(host, root, fileReference);
                          if (referencedFile && ((referencedFile.flags & 2048) ||
                              ts.shouldEmitToOwnFile(referencedFile, compilerOptions) ||
                              !addedGlobalFileReference)) {
                              writeReferencePath(referencedFile);
                              if (!ts.isExternalModuleOrDeclarationFile(referencedFile)) {
                                  addedGlobalFileReference = true;
                              }
                          }
                      });
                  }
                  emitSourceFile(root);
                  if (moduleElementDeclarationEmitInfo.length) {
                      var oldWriter = writer;
                      ts.forEach(moduleElementDeclarationEmitInfo, function (aliasEmitInfo) {
                          if (aliasEmitInfo.isVisible) {
                              ts.Debug.assert(aliasEmitInfo.node.kind === 210);
                              createAndSetNewTextWriterWithSymbolWriter();
                              ts.Debug.assert(aliasEmitInfo.indent === 0);
                              writeImportDeclaration(aliasEmitInfo.node);
                              aliasEmitInfo.asynchronousOutput = writer.getText();
                          }
                      });
                      setWriter(oldWriter);
                  }
              }
              else {
                  var emittedReferencedFiles = [];
                  ts.forEach(host.getSourceFiles(), function (sourceFile) {
                      if (!ts.isExternalModuleOrDeclarationFile(sourceFile)) {
                          if (!compilerOptions.noResolve) {
                              ts.forEach(sourceFile.referencedFiles, function (fileReference) {
                                  var referencedFile = ts.tryResolveScriptReference(host, sourceFile, fileReference);
                                  if (referencedFile && (ts.isExternalModuleOrDeclarationFile(referencedFile) &&
                                      !ts.contains(emittedReferencedFiles, referencedFile))) {
                                      writeReferencePath(referencedFile);
                                      emittedReferencedFiles.push(referencedFile);
                                  }
                              });
                          }
                          emitSourceFile(sourceFile);
                      }
                  });
              }
              return {
                  reportedDeclarationError: reportedDeclarationError,
                  moduleElementDeclarationEmitInfo: moduleElementDeclarationEmitInfo,
                  synchronousDeclarationOutput: writer.getText(),
                  referencePathsOutput: referencePathsOutput
              };
              function hasInternalAnnotation(range) {
                  var text = currentSourceFile.text;
                  var comment = text.substring(range.pos, range.end);
                  return comment.indexOf("@internal") >= 0;
              }
              function stripInternal(node) {
                  if (node) {
                      var leadingCommentRanges = ts.getLeadingCommentRanges(currentSourceFile.text, node.pos);
                      if (ts.forEach(leadingCommentRanges, hasInternalAnnotation)) {
                          return;
                      }
                      emitNode(node);
                  }
              }
              function createAndSetNewTextWriterWithSymbolWriter() {
                  var writer = ts.createTextWriter(newLine);
                  writer.trackSymbol = trackSymbol;
                  writer.writeKeyword = writer.write;
                  writer.writeOperator = writer.write;
                  writer.writePunctuation = writer.write;
                  writer.writeSpace = writer.write;
                  writer.writeStringLiteral = writer.writeLiteral;
                  writer.writeParameter = writer.write;
                  writer.writeSymbol = writer.write;
                  setWriter(writer);
                  return writer;
              }
              function setWriter(newWriter) {
                  writer = newWriter;
                  write = newWriter.write;
                  writeTextOfNode = newWriter.writeTextOfNode;
                  writeLine = newWriter.writeLine;
                  increaseIndent = newWriter.increaseIndent;
                  decreaseIndent = newWriter.decreaseIndent;
              }
              function writeAsynchronousModuleElements(nodes) {
                  var oldWriter = writer;
                  ts.forEach(nodes, function (declaration) {
                      var nodeToCheck;
                      if (declaration.kind === 199) {
                          nodeToCheck = declaration.parent.parent;
                      }
                      else if (declaration.kind === 213 || declaration.kind === 214 || declaration.kind === 211) {
                          ts.Debug.fail("We should be getting ImportDeclaration instead to write");
                      }
                      else {
                          nodeToCheck = declaration;
                      }
                      var moduleElementEmitInfo = ts.forEach(moduleElementDeclarationEmitInfo, function (declEmitInfo) { return declEmitInfo.node === nodeToCheck ? declEmitInfo : undefined; });
                      if (!moduleElementEmitInfo && asynchronousSubModuleDeclarationEmitInfo) {
                          moduleElementEmitInfo = ts.forEach(asynchronousSubModuleDeclarationEmitInfo, function (declEmitInfo) { return declEmitInfo.node === nodeToCheck ? declEmitInfo : undefined; });
                      }
                      if (moduleElementEmitInfo) {
                          if (moduleElementEmitInfo.node.kind === 210) {
                              moduleElementEmitInfo.isVisible = true;
                          }
                          else {
                              createAndSetNewTextWriterWithSymbolWriter();
                              for (var declarationIndent = moduleElementEmitInfo.indent; declarationIndent; declarationIndent--) {
                                  increaseIndent();
                              }
                              if (nodeToCheck.kind === 206) {
                                  ts.Debug.assert(asynchronousSubModuleDeclarationEmitInfo === undefined);
                                  asynchronousSubModuleDeclarationEmitInfo = [];
                              }
                              writeModuleElement(nodeToCheck);
                              if (nodeToCheck.kind === 206) {
                                  moduleElementEmitInfo.subModuleElementDeclarationEmitInfo = asynchronousSubModuleDeclarationEmitInfo;
                                  asynchronousSubModuleDeclarationEmitInfo = undefined;
                              }
                              moduleElementEmitInfo.asynchronousOutput = writer.getText();
                          }
                      }
                  });
                  setWriter(oldWriter);
              }
              function handleSymbolAccessibilityError(symbolAccesibilityResult) {
                  if (symbolAccesibilityResult.accessibility === 0) {
                      if (symbolAccesibilityResult && symbolAccesibilityResult.aliasesToMakeVisible) {
                          writeAsynchronousModuleElements(symbolAccesibilityResult.aliasesToMakeVisible);
                      }
                  }
                  else {
                      reportedDeclarationError = true;
                      var errorInfo = writer.getSymbolAccessibilityDiagnostic(symbolAccesibilityResult);
                      if (errorInfo) {
                          if (errorInfo.typeName) {
                              diagnostics.push(ts.createDiagnosticForNode(symbolAccesibilityResult.errorNode || errorInfo.errorNode, errorInfo.diagnosticMessage, ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, errorInfo.typeName), symbolAccesibilityResult.errorSymbolName, symbolAccesibilityResult.errorModuleName));
                          }
                          else {
                              diagnostics.push(ts.createDiagnosticForNode(symbolAccesibilityResult.errorNode || errorInfo.errorNode, errorInfo.diagnosticMessage, symbolAccesibilityResult.errorSymbolName, symbolAccesibilityResult.errorModuleName));
                          }
                      }
                  }
              }
              function trackSymbol(symbol, enclosingDeclaration, meaning) {
                  handleSymbolAccessibilityError(resolver.isSymbolAccessible(symbol, enclosingDeclaration, meaning));
              }
              function writeTypeOfDeclaration(declaration, type, getSymbolAccessibilityDiagnostic) {
                  writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic;
                  write(": ");
                  if (type) {
                      emitType(type);
                  }
                  else {
                      resolver.writeTypeOfDeclaration(declaration, enclosingDeclaration, 2, writer);
                  }
              }
              function writeReturnTypeAtSignature(signature, getSymbolAccessibilityDiagnostic) {
                  writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic;
                  write(": ");
                  if (signature.type) {
                      emitType(signature.type);
                  }
                  else {
                      resolver.writeReturnTypeOfSignatureDeclaration(signature, enclosingDeclaration, 2, writer);
                  }
              }
              function emitLines(nodes) {
                  for (var _i = 0; _i < nodes.length; _i++) {
                      var node = nodes[_i];
                      emit(node);
                  }
              }
              function emitSeparatedList(nodes, separator, eachNodeEmitFn, canEmitFn) {
                  var currentWriterPos = writer.getTextPos();
                  for (var _i = 0; _i < nodes.length; _i++) {
                      var node = nodes[_i];
                      if (!canEmitFn || canEmitFn(node)) {
                          if (currentWriterPos !== writer.getTextPos()) {
                              write(separator);
                          }
                          currentWriterPos = writer.getTextPos();
                          eachNodeEmitFn(node);
                      }
                  }
              }
              function emitCommaList(nodes, eachNodeEmitFn, canEmitFn) {
                  emitSeparatedList(nodes, ", ", eachNodeEmitFn, canEmitFn);
              }
              function writeJsDocComments(declaration) {
                  if (declaration) {
                      var jsDocComments = ts.getJsDocComments(declaration, currentSourceFile);
                      ts.emitNewLineBeforeLeadingComments(currentSourceFile, writer, declaration, jsDocComments);
                      ts.emitComments(currentSourceFile, writer, jsDocComments, true, newLine, ts.writeCommentRange);
                  }
              }
              function emitTypeWithNewGetSymbolAccessibilityDiagnostic(type, getSymbolAccessibilityDiagnostic) {
                  writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic;
                  emitType(type);
              }
              function emitType(type) {
                  switch (type.kind) {
                      case 112:
                      case 122:
                      case 120:
                      case 113:
                      case 123:
                      case 99:
                      case 8:
                          return writeTextOfNode(currentSourceFile, type);
                      case 177:
                          return emitExpressionWithTypeArguments(type);
                      case 142:
                          return emitTypeReference(type);
                      case 145:
                          return emitTypeQuery(type);
                      case 147:
                          return emitArrayType(type);
                      case 148:
                          return emitTupleType(type);
                      case 149:
                          return emitUnionType(type);
                      case 150:
                          return emitParenType(type);
                      case 143:
                      case 144:
                          return emitSignatureDeclarationWithJsDocComments(type);
                      case 146:
                          return emitTypeLiteral(type);
                      case 65:
                          return emitEntityName(type);
                      case 127:
                          return emitEntityName(type);
                  }
                  function emitEntityName(entityName) {
                      var visibilityResult = resolver.isEntityNameVisible(entityName, entityName.parent.kind === 209 ? entityName.parent : enclosingDeclaration);
                      handleSymbolAccessibilityError(visibilityResult);
                      writeEntityName(entityName);
                      function writeEntityName(entityName) {
                          if (entityName.kind === 65) {
                              writeTextOfNode(currentSourceFile, entityName);
                          }
                          else {
                              var left = entityName.kind === 127 ? entityName.left : entityName.expression;
                              var right = entityName.kind === 127 ? entityName.right : entityName.name;
                              writeEntityName(left);
                              write(".");
                              writeTextOfNode(currentSourceFile, right);
                          }
                      }
                  }
                  function emitExpressionWithTypeArguments(node) {
                      if (ts.isSupportedExpressionWithTypeArguments(node)) {
                          ts.Debug.assert(node.expression.kind === 65 || node.expression.kind === 156);
                          emitEntityName(node.expression);
                          if (node.typeArguments) {
                              write("<");
                              emitCommaList(node.typeArguments, emitType);
                              write(">");
                          }
                      }
                  }
                  function emitTypeReference(type) {
                      emitEntityName(type.typeName);
                      if (type.typeArguments) {
                          write("<");
                          emitCommaList(type.typeArguments, emitType);
                          write(">");
                      }
                  }
                  function emitTypeQuery(type) {
                      write("typeof ");
                      emitEntityName(type.exprName);
                  }
                  function emitArrayType(type) {
                      emitType(type.elementType);
                      write("[]");
                  }
                  function emitTupleType(type) {
                      write("[");
                      emitCommaList(type.elementTypes, emitType);
                      write("]");
                  }
                  function emitUnionType(type) {
                      emitSeparatedList(type.types, " | ", emitType);
                  }
                  function emitParenType(type) {
                      write("(");
                      emitType(type.type);
                      write(")");
                  }
                  function emitTypeLiteral(type) {
                      write("{");
                      if (type.members.length) {
                          writeLine();
                          increaseIndent();
                          emitLines(type.members);
                          decreaseIndent();
                      }
                      write("}");
                  }
              }
              function emitSourceFile(node) {
                  currentSourceFile = node;
                  enclosingDeclaration = node;
                  emitLines(node.statements);
              }
              function getExportDefaultTempVariableName() {
                  var baseName = "_default";
                  if (!ts.hasProperty(currentSourceFile.identifiers, baseName)) {
                      return baseName;
                  }
                  var count = 0;
                  while (true) {
                      var name_14 = baseName + "_" + (++count);
                      if (!ts.hasProperty(currentSourceFile.identifiers, name_14)) {
                          return name_14;
                      }
                  }
              }
              function emitExportAssignment(node) {
                  if (node.expression.kind === 65) {
                      write(node.isExportEquals ? "export = " : "export default ");
                      writeTextOfNode(currentSourceFile, node.expression);
                  }
                  else {
                      var tempVarName = getExportDefaultTempVariableName();
                      write("declare var ");
                      write(tempVarName);
                      write(": ");
                      writer.getSymbolAccessibilityDiagnostic = getDefaultExportAccessibilityDiagnostic;
                      resolver.writeTypeOfExpression(node.expression, enclosingDeclaration, 2, writer);
                      write(";");
                      writeLine();
                      write(node.isExportEquals ? "export = " : "export default ");
                      write(tempVarName);
                  }
                  write(";");
                  writeLine();
                  if (node.expression.kind === 65) {
                      var nodes = resolver.collectLinkedAliases(node.expression);
                      writeAsynchronousModuleElements(nodes);
                  }
                  function getDefaultExportAccessibilityDiagnostic(diagnostic) {
                      return {
                          diagnosticMessage: ts.Diagnostics.Default_export_of_the_module_has_or_is_using_private_name_0,
                          errorNode: node
                      };
                  }
              }
              function isModuleElementVisible(node) {
                  return resolver.isDeclarationVisible(node);
              }
              function emitModuleElement(node, isModuleElementVisible) {
                  if (isModuleElementVisible) {
                      writeModuleElement(node);
                  }
                  else if (node.kind === 209 ||
                      (node.parent.kind === 228 && ts.isExternalModule(currentSourceFile))) {
                      var isVisible;
                      if (asynchronousSubModuleDeclarationEmitInfo && node.parent.kind !== 228) {
                          asynchronousSubModuleDeclarationEmitInfo.push({
                              node: node,
                              outputPos: writer.getTextPos(),
                              indent: writer.getIndent(),
                              isVisible: isVisible
                          });
                      }
                      else {
                          if (node.kind === 210) {
                              var importDeclaration = node;
                              if (importDeclaration.importClause) {
                                  isVisible = (importDeclaration.importClause.name && resolver.isDeclarationVisible(importDeclaration.importClause)) ||
                                      isVisibleNamedBinding(importDeclaration.importClause.namedBindings);
                              }
                          }
                          moduleElementDeclarationEmitInfo.push({
                              node: node,
                              outputPos: writer.getTextPos(),
                              indent: writer.getIndent(),
                              isVisible: isVisible
                          });
                      }
                  }
              }
              function writeModuleElement(node) {
                  switch (node.kind) {
                      case 201:
                          return writeFunctionDeclaration(node);
                      case 181:
                          return writeVariableStatement(node);
                      case 203:
                          return writeInterfaceDeclaration(node);
                      case 202:
                          return writeClassDeclaration(node);
                      case 204:
                          return writeTypeAliasDeclaration(node);
                      case 205:
                          return writeEnumDeclaration(node);
                      case 206:
                          return writeModuleDeclaration(node);
                      case 209:
                          return writeImportEqualsDeclaration(node);
                      case 210:
                          return writeImportDeclaration(node);
                      default:
                          ts.Debug.fail("Unknown symbol kind");
                  }
              }
              function emitModuleElementDeclarationFlags(node) {
                  if (node.parent === currentSourceFile) {
                      if (node.flags & 1) {
                          write("export ");
                      }
                      if (node.flags & 256) {
                          write("default ");
                      }
                      else if (node.kind !== 203) {
                          write("declare ");
                      }
                  }
              }
              function emitClassMemberDeclarationFlags(node) {
                  if (node.flags & 32) {
                      write("private ");
                  }
                  else if (node.flags & 64) {
                      write("protected ");
                  }
                  if (node.flags & 128) {
                      write("static ");
                  }
              }
              function writeImportEqualsDeclaration(node) {
                  emitJsDocComments(node);
                  if (node.flags & 1) {
                      write("export ");
                  }
                  write("import ");
                  writeTextOfNode(currentSourceFile, node.name);
                  write(" = ");
                  if (ts.isInternalModuleImportEqualsDeclaration(node)) {
                      emitTypeWithNewGetSymbolAccessibilityDiagnostic(node.moduleReference, getImportEntityNameVisibilityError);
                      write(";");
                  }
                  else {
                      write("require(");
                      writeTextOfNode(currentSourceFile, ts.getExternalModuleImportEqualsDeclarationExpression(node));
                      write(");");
                  }
                  writer.writeLine();
                  function getImportEntityNameVisibilityError(symbolAccesibilityResult) {
                      return {
                          diagnosticMessage: ts.Diagnostics.Import_declaration_0_is_using_private_name_1,
                          errorNode: node,
                          typeName: node.name
                      };
                  }
              }
              function isVisibleNamedBinding(namedBindings) {
                  if (namedBindings) {
                      if (namedBindings.kind === 212) {
                          return resolver.isDeclarationVisible(namedBindings);
                      }
                      else {
                          return ts.forEach(namedBindings.elements, function (namedImport) { return resolver.isDeclarationVisible(namedImport); });
                      }
                  }
              }
              function writeImportDeclaration(node) {
                  if (!node.importClause && !(node.flags & 1)) {
                      return;
                  }
                  emitJsDocComments(node);
                  if (node.flags & 1) {
                      write("export ");
                  }
                  write("import ");
                  if (node.importClause) {
                      var currentWriterPos = writer.getTextPos();
                      if (node.importClause.name && resolver.isDeclarationVisible(node.importClause)) {
                          writeTextOfNode(currentSourceFile, node.importClause.name);
                      }
                      if (node.importClause.namedBindings && isVisibleNamedBinding(node.importClause.namedBindings)) {
                          if (currentWriterPos !== writer.getTextPos()) {
                              write(", ");
                          }
                          if (node.importClause.namedBindings.kind === 212) {
                              write("* as ");
                              writeTextOfNode(currentSourceFile, node.importClause.namedBindings.name);
                          }
                          else {
                              write("{ ");
                              emitCommaList(node.importClause.namedBindings.elements, emitImportOrExportSpecifier, resolver.isDeclarationVisible);
                              write(" }");
                          }
                      }
                      write(" from ");
                  }
                  writeTextOfNode(currentSourceFile, node.moduleSpecifier);
                  write(";");
                  writer.writeLine();
              }
              function emitImportOrExportSpecifier(node) {
                  if (node.propertyName) {
                      writeTextOfNode(currentSourceFile, node.propertyName);
                      write(" as ");
                  }
                  writeTextOfNode(currentSourceFile, node.name);
              }
              function emitExportSpecifier(node) {
                  emitImportOrExportSpecifier(node);
                  var nodes = resolver.collectLinkedAliases(node.propertyName || node.name);
                  writeAsynchronousModuleElements(nodes);
              }
              function emitExportDeclaration(node) {
                  emitJsDocComments(node);
                  write("export ");
                  if (node.exportClause) {
                      write("{ ");
                      emitCommaList(node.exportClause.elements, emitExportSpecifier);
                      write(" }");
                  }
                  else {
                      write("*");
                  }
                  if (node.moduleSpecifier) {
                      write(" from ");
                      writeTextOfNode(currentSourceFile, node.moduleSpecifier);
                  }
                  write(";");
                  writer.writeLine();
              }
              function writeModuleDeclaration(node) {
                  emitJsDocComments(node);
                  emitModuleElementDeclarationFlags(node);
                  write("module ");
                  writeTextOfNode(currentSourceFile, node.name);
                  while (node.body.kind !== 207) {
                      node = node.body;
                      write(".");
                      writeTextOfNode(currentSourceFile, node.name);
                  }
                  var prevEnclosingDeclaration = enclosingDeclaration;
                  enclosingDeclaration = node;
                  write(" {");
                  writeLine();
                  increaseIndent();
                  emitLines(node.body.statements);
                  decreaseIndent();
                  write("}");
                  writeLine();
                  enclosingDeclaration = prevEnclosingDeclaration;
              }
              function writeTypeAliasDeclaration(node) {
                  emitJsDocComments(node);
                  emitModuleElementDeclarationFlags(node);
                  write("type ");
                  writeTextOfNode(currentSourceFile, node.name);
                  write(" = ");
                  emitTypeWithNewGetSymbolAccessibilityDiagnostic(node.type, getTypeAliasDeclarationVisibilityError);
                  write(";");
                  writeLine();
                  function getTypeAliasDeclarationVisibilityError(symbolAccesibilityResult) {
                      return {
                          diagnosticMessage: ts.Diagnostics.Exported_type_alias_0_has_or_is_using_private_name_1,
                          errorNode: node.type,
                          typeName: node.name
                      };
                  }
              }
              function writeEnumDeclaration(node) {
                  emitJsDocComments(node);
                  emitModuleElementDeclarationFlags(node);
                  if (ts.isConst(node)) {
                      write("const ");
                  }
                  write("enum ");
                  writeTextOfNode(currentSourceFile, node.name);
                  write(" {");
                  writeLine();
                  increaseIndent();
                  emitLines(node.members);
                  decreaseIndent();
                  write("}");
                  writeLine();
              }
              function emitEnumMemberDeclaration(node) {
                  emitJsDocComments(node);
                  writeTextOfNode(currentSourceFile, node.name);
                  var enumMemberValue = resolver.getConstantValue(node);
                  if (enumMemberValue !== undefined) {
                      write(" = ");
                      write(enumMemberValue.toString());
                  }
                  write(",");
                  writeLine();
              }
              function isPrivateMethodTypeParameter(node) {
                  return node.parent.kind === 135 && (node.parent.flags & 32);
              }
              function emitTypeParameters(typeParameters) {
                  function emitTypeParameter(node) {
                      increaseIndent();
                      emitJsDocComments(node);
                      decreaseIndent();
                      writeTextOfNode(currentSourceFile, node.name);
                      if (node.constraint && !isPrivateMethodTypeParameter(node)) {
                          write(" extends ");
                          if (node.parent.kind === 143 ||
                              node.parent.kind === 144 ||
                              (node.parent.parent && node.parent.parent.kind === 146)) {
                              ts.Debug.assert(node.parent.kind === 135 ||
                                  node.parent.kind === 134 ||
                                  node.parent.kind === 143 ||
                                  node.parent.kind === 144 ||
                                  node.parent.kind === 139 ||
                                  node.parent.kind === 140);
                              emitType(node.constraint);
                          }
                          else {
                              emitTypeWithNewGetSymbolAccessibilityDiagnostic(node.constraint, getTypeParameterConstraintVisibilityError);
                          }
                      }
                      function getTypeParameterConstraintVisibilityError(symbolAccesibilityResult) {
                          var diagnosticMessage;
                          switch (node.parent.kind) {
                              case 202:
                                  diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1;
                                  break;
                              case 203:
                                  diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1;
                                  break;
                              case 140:
                                  diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;
                                  break;
                              case 139:
                                  diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;
                                  break;
                              case 135:
                              case 134:
                                  if (node.parent.flags & 128) {
                                      diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1;
                                  }
                                  else if (node.parent.parent.kind === 202) {
                                      diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1;
                                  }
                                  else {
                                      diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;
                                  }
                                  break;
                              case 201:
                                  diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_function_has_or_is_using_private_name_1;
                                  break;
                              default:
                                  ts.Debug.fail("This is unknown parent for type parameter: " + node.parent.kind);
                          }
                          return {
                              diagnosticMessage: diagnosticMessage,
                              errorNode: node,
                              typeName: node.name
                          };
                      }
                  }
                  if (typeParameters) {
                      write("<");
                      emitCommaList(typeParameters, emitTypeParameter);
                      write(">");
                  }
              }
              function emitHeritageClause(typeReferences, isImplementsList) {
                  if (typeReferences) {
                      write(isImplementsList ? " implements " : " extends ");
                      emitCommaList(typeReferences, emitTypeOfTypeReference);
                  }
                  function emitTypeOfTypeReference(node) {
                      if (ts.isSupportedExpressionWithTypeArguments(node)) {
                          emitTypeWithNewGetSymbolAccessibilityDiagnostic(node, getHeritageClauseVisibilityError);
                      }
                      function getHeritageClauseVisibilityError(symbolAccesibilityResult) {
                          var diagnosticMessage;
                          if (node.parent.parent.kind === 202) {
                              diagnosticMessage = isImplementsList ?
                                  ts.Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1 :
                                  ts.Diagnostics.Extends_clause_of_exported_class_0_has_or_is_using_private_name_1;
                          }
                          else {
                              diagnosticMessage = ts.Diagnostics.Extends_clause_of_exported_interface_0_has_or_is_using_private_name_1;
                          }
                          return {
                              diagnosticMessage: diagnosticMessage,
                              errorNode: node,
                              typeName: node.parent.parent.name
                          };
                      }
                  }
              }
              function writeClassDeclaration(node) {
                  function emitParameterProperties(constructorDeclaration) {
                      if (constructorDeclaration) {
                          ts.forEach(constructorDeclaration.parameters, function (param) {
                              if (param.flags & 112) {
                                  emitPropertyDeclaration(param);
                              }
                          });
                      }
                  }
                  emitJsDocComments(node);
                  emitModuleElementDeclarationFlags(node);
                  write("class ");
                  writeTextOfNode(currentSourceFile, node.name);
                  var prevEnclosingDeclaration = enclosingDeclaration;
                  enclosingDeclaration = node;
                  emitTypeParameters(node.typeParameters);
                  var baseTypeNode = ts.getClassExtendsHeritageClauseElement(node);
                  if (baseTypeNode) {
                      emitHeritageClause([baseTypeNode], false);
                  }
                  emitHeritageClause(ts.getClassImplementsHeritageClauseElements(node), true);
                  write(" {");
                  writeLine();
                  increaseIndent();
                  emitParameterProperties(ts.getFirstConstructorWithBody(node));
                  emitLines(node.members);
                  decreaseIndent();
                  write("}");
                  writeLine();
                  enclosingDeclaration = prevEnclosingDeclaration;
              }
              function writeInterfaceDeclaration(node) {
                  emitJsDocComments(node);
                  emitModuleElementDeclarationFlags(node);
                  write("interface ");
                  writeTextOfNode(currentSourceFile, node.name);
                  var prevEnclosingDeclaration = enclosingDeclaration;
                  enclosingDeclaration = node;
                  emitTypeParameters(node.typeParameters);
                  emitHeritageClause(ts.getInterfaceBaseTypeNodes(node), false);
                  write(" {");
                  writeLine();
                  increaseIndent();
                  emitLines(node.members);
                  decreaseIndent();
                  write("}");
                  writeLine();
                  enclosingDeclaration = prevEnclosingDeclaration;
              }
              function emitPropertyDeclaration(node) {
                  if (ts.hasDynamicName(node)) {
                      return;
                  }
                  emitJsDocComments(node);
                  emitClassMemberDeclarationFlags(node);
                  emitVariableDeclaration(node);
                  write(";");
                  writeLine();
              }
              function emitVariableDeclaration(node) {
                  if (node.kind !== 199 || resolver.isDeclarationVisible(node)) {
                      if (ts.isBindingPattern(node.name)) {
                          emitBindingPattern(node.name);
                      }
                      else {
                          writeTextOfNode(currentSourceFile, node.name);
                          if ((node.kind === 133 || node.kind === 132) && ts.hasQuestionToken(node)) {
                              write("?");
                          }
                          if ((node.kind === 133 || node.kind === 132) && node.parent.kind === 146) {
                              emitTypeOfVariableDeclarationFromTypeLiteral(node);
                          }
                          else if (!(node.flags & 32)) {
                              writeTypeOfDeclaration(node, node.type, getVariableDeclarationTypeVisibilityError);
                          }
                      }
                  }
                  function getVariableDeclarationTypeVisibilityDiagnosticMessage(symbolAccesibilityResult) {
                      if (node.kind === 199) {
                          return symbolAccesibilityResult.errorModuleName ?
                              symbolAccesibilityResult.accessibility === 2 ?
                                  ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named :
                                  ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_private_module_2 :
                              ts.Diagnostics.Exported_variable_0_has_or_is_using_private_name_1;
                      }
                      else if (node.kind === 133 || node.kind === 132) {
                          if (node.flags & 128) {
                              return symbolAccesibilityResult.errorModuleName ?
                                  symbolAccesibilityResult.accessibility === 2 ?
                                      ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named :
                                      ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 :
                                  ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1;
                          }
                          else if (node.parent.kind === 202) {
                              return symbolAccesibilityResult.errorModuleName ?
                                  symbolAccesibilityResult.accessibility === 2 ?
                                      ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named :
                                      ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 :
                                  ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1;
                          }
                          else {
                              return symbolAccesibilityResult.errorModuleName ?
                                  ts.Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2 :
                                  ts.Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1;
                          }
                      }
                  }
                  function getVariableDeclarationTypeVisibilityError(symbolAccesibilityResult) {
                      var diagnosticMessage = getVariableDeclarationTypeVisibilityDiagnosticMessage(symbolAccesibilityResult);
                      return diagnosticMessage !== undefined ? {
                          diagnosticMessage: diagnosticMessage,
                          errorNode: node,
                          typeName: node.name
                      } : undefined;
                  }
                  function emitBindingPattern(bindingPattern) {
                      var elements = [];
                      for (var _i = 0, _a = bindingPattern.elements; _i < _a.length; _i++) {
                          var element = _a[_i];
                          if (element.kind !== 176) {
                              elements.push(element);
                          }
                      }
                      emitCommaList(elements, emitBindingElement);
                  }
                  function emitBindingElement(bindingElement) {
                      function getBindingElementTypeVisibilityError(symbolAccesibilityResult) {
                          var diagnosticMessage = getVariableDeclarationTypeVisibilityDiagnosticMessage(symbolAccesibilityResult);
                          return diagnosticMessage !== undefined ? {
                              diagnosticMessage: diagnosticMessage,
                              errorNode: bindingElement,
                              typeName: bindingElement.name
                          } : undefined;
                      }
                      if (bindingElement.name) {
                          if (ts.isBindingPattern(bindingElement.name)) {
                              emitBindingPattern(bindingElement.name);
                          }
                          else {
                              writeTextOfNode(currentSourceFile, bindingElement.name);
                              writeTypeOfDeclaration(bindingElement, undefined, getBindingElementTypeVisibilityError);
                          }
                      }
                  }
              }
              function emitTypeOfVariableDeclarationFromTypeLiteral(node) {
                  if (node.type) {
                      write(": ");
                      emitType(node.type);
                  }
              }
              function isVariableStatementVisible(node) {
                  return ts.forEach(node.declarationList.declarations, function (varDeclaration) { return resolver.isDeclarationVisible(varDeclaration); });
              }
              function writeVariableStatement(node) {
                  emitJsDocComments(node);
                  emitModuleElementDeclarationFlags(node);
                  if (ts.isLet(node.declarationList)) {
                      write("let ");
                  }
                  else if (ts.isConst(node.declarationList)) {
                      write("const ");
                  }
                  else {
                      write("var ");
                  }
                  emitCommaList(node.declarationList.declarations, emitVariableDeclaration, resolver.isDeclarationVisible);
                  write(";");
                  writeLine();
              }
              function emitAccessorDeclaration(node) {
                  if (ts.hasDynamicName(node)) {
                      return;
                  }
                  var accessors = ts.getAllAccessorDeclarations(node.parent.members, node);
                  var accessorWithTypeAnnotation;
                  if (node === accessors.firstAccessor) {
                      emitJsDocComments(accessors.getAccessor);
                      emitJsDocComments(accessors.setAccessor);
                      emitClassMemberDeclarationFlags(node);
                      writeTextOfNode(currentSourceFile, node.name);
                      if (!(node.flags & 32)) {
                          accessorWithTypeAnnotation = node;
                          var type = getTypeAnnotationFromAccessor(node);
                          if (!type) {
                              var anotherAccessor = node.kind === 137 ? accessors.setAccessor : accessors.getAccessor;
                              type = getTypeAnnotationFromAccessor(anotherAccessor);
                              if (type) {
                                  accessorWithTypeAnnotation = anotherAccessor;
                              }
                          }
                          writeTypeOfDeclaration(node, type, getAccessorDeclarationTypeVisibilityError);
                      }
                      write(";");
                      writeLine();
                  }
                  function getTypeAnnotationFromAccessor(accessor) {
                      if (accessor) {
                          return accessor.kind === 137
                              ? accessor.type
                              : accessor.parameters.length > 0
                                  ? accessor.parameters[0].type
                                  : undefined;
                      }
                  }
                  function getAccessorDeclarationTypeVisibilityError(symbolAccesibilityResult) {
                      var diagnosticMessage;
                      if (accessorWithTypeAnnotation.kind === 138) {
                          if (accessorWithTypeAnnotation.parent.flags & 128) {
                              diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
                                  ts.Diagnostics.Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2 :
                                  ts.Diagnostics.Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_private_name_1;
                          }
                          else {
                              diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
                                  ts.Diagnostics.Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2 :
                                  ts.Diagnostics.Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_private_name_1;
                          }
                          return {
                              diagnosticMessage: diagnosticMessage,
                              errorNode: accessorWithTypeAnnotation.parameters[0],
                              typeName: accessorWithTypeAnnotation.name
                          };
                      }
                      else {
                          if (accessorWithTypeAnnotation.flags & 128) {
                              diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
                                  symbolAccesibilityResult.accessibility === 2 ?
                                      ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named :
                                      ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1 :
                                  ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_private_name_0;
                          }
                          else {
                              diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
                                  symbolAccesibilityResult.accessibility === 2 ?
                                      ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named :
                                      ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1 :
                                  ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_private_name_0;
                          }
                          return {
                              diagnosticMessage: diagnosticMessage,
                              errorNode: accessorWithTypeAnnotation.name,
                              typeName: undefined
                          };
                      }
                  }
              }
              function writeFunctionDeclaration(node) {
                  if (ts.hasDynamicName(node)) {
                      return;
                  }
                  if (!resolver.isImplementationOfOverload(node)) {
                      emitJsDocComments(node);
                      if (node.kind === 201) {
                          emitModuleElementDeclarationFlags(node);
                      }
                      else if (node.kind === 135) {
                          emitClassMemberDeclarationFlags(node);
                      }
                      if (node.kind === 201) {
                          write("function ");
                          writeTextOfNode(currentSourceFile, node.name);
                      }
                      else if (node.kind === 136) {
                          write("constructor");
                      }
                      else {
                          writeTextOfNode(currentSourceFile, node.name);
                          if (ts.hasQuestionToken(node)) {
                              write("?");
                          }
                      }
                      emitSignatureDeclaration(node);
                  }
              }
              function emitSignatureDeclarationWithJsDocComments(node) {
                  emitJsDocComments(node);
                  emitSignatureDeclaration(node);
              }
              function emitSignatureDeclaration(node) {
                  if (node.kind === 140 || node.kind === 144) {
                      write("new ");
                  }
                  emitTypeParameters(node.typeParameters);
                  if (node.kind === 141) {
                      write("[");
                  }
                  else {
                      write("(");
                  }
                  var prevEnclosingDeclaration = enclosingDeclaration;
                  enclosingDeclaration = node;
                  emitCommaList(node.parameters, emitParameterDeclaration);
                  if (node.kind === 141) {
                      write("]");
                  }
                  else {
                      write(")");
                  }
                  var isFunctionTypeOrConstructorType = node.kind === 143 || node.kind === 144;
                  if (isFunctionTypeOrConstructorType || node.parent.kind === 146) {
                      if (node.type) {
                          write(isFunctionTypeOrConstructorType ? " => " : ": ");
                          emitType(node.type);
                      }
                  }
                  else if (node.kind !== 136 && !(node.flags & 32)) {
                      writeReturnTypeAtSignature(node, getReturnTypeVisibilityError);
                  }
                  enclosingDeclaration = prevEnclosingDeclaration;
                  if (!isFunctionTypeOrConstructorType) {
                      write(";");
                      writeLine();
                  }
                  function getReturnTypeVisibilityError(symbolAccesibilityResult) {
                      var diagnosticMessage;
                      switch (node.kind) {
                          case 140:
                              diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
                                  ts.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 :
                                  ts.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0;
                              break;
                          case 139:
                              diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
                                  ts.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 :
                                  ts.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0;
                              break;
                          case 141:
                              diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
                                  ts.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 :
                                  ts.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0;
                              break;
                          case 135:
                          case 134:
                              if (node.flags & 128) {
                                  diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
                                      symbolAccesibilityResult.accessibility === 2 ?
                                          ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named :
                                          ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 :
                                      ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0;
                              }
                              else if (node.parent.kind === 202) {
                                  diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
                                      symbolAccesibilityResult.accessibility === 2 ?
                                          ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named :
                                          ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 :
                                      ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0;
                              }
                              else {
                                  diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
                                      ts.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1 :
                                      ts.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0;
                              }
                              break;
                          case 201:
                              diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
                                  symbolAccesibilityResult.accessibility === 2 ?
                                      ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named :
                                      ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1 :
                                  ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_private_name_0;
                              break;
                          default:
                              ts.Debug.fail("This is unknown kind for signature: " + node.kind);
                      }
                      return {
                          diagnosticMessage: diagnosticMessage,
                          errorNode: node.name || node
                      };
                  }
              }
              function emitParameterDeclaration(node) {
                  increaseIndent();
                  emitJsDocComments(node);
                  if (node.dotDotDotToken) {
                      write("...");
                  }
                  if (ts.isBindingPattern(node.name)) {
                      emitBindingPattern(node.name);
                  }
                  else {
                      writeTextOfNode(currentSourceFile, node.name);
                  }
                  if (node.initializer || ts.hasQuestionToken(node)) {
                      write("?");
                  }
                  decreaseIndent();
                  if (node.parent.kind === 143 ||
                      node.parent.kind === 144 ||
                      node.parent.parent.kind === 146) {
                      emitTypeOfVariableDeclarationFromTypeLiteral(node);
                  }
                  else if (!(node.parent.flags & 32)) {
                      writeTypeOfDeclaration(node, node.type, getParameterDeclarationTypeVisibilityError);
                  }
                  function getParameterDeclarationTypeVisibilityError(symbolAccesibilityResult) {
                      var diagnosticMessage = getParameterDeclarationTypeVisibilityDiagnosticMessage(symbolAccesibilityResult);
                      return diagnosticMessage !== undefined ? {
                          diagnosticMessage: diagnosticMessage,
                          errorNode: node,
                          typeName: node.name
                      } : undefined;
                  }
                  function getParameterDeclarationTypeVisibilityDiagnosticMessage(symbolAccesibilityResult) {
                      switch (node.parent.kind) {
                          case 136:
                              return symbolAccesibilityResult.errorModuleName ?
                                  symbolAccesibilityResult.accessibility === 2 ?
                                      ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named :
                                      ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2 :
                                  ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1;
                          case 140:
                              return symbolAccesibilityResult.errorModuleName ?
                                  ts.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 :
                                  ts.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;
                          case 139:
                              return symbolAccesibilityResult.errorModuleName ?
                                  ts.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 :
                                  ts.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;
                          case 135:
                          case 134:
                              if (node.parent.flags & 128) {
                                  return symbolAccesibilityResult.errorModuleName ?
                                      symbolAccesibilityResult.accessibility === 2 ?
                                          ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named :
                                          ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 :
                                      ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1;
                              }
                              else if (node.parent.parent.kind === 202) {
                                  return symbolAccesibilityResult.errorModuleName ?
                                      symbolAccesibilityResult.accessibility === 2 ?
                                          ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named :
                                          ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 :
                                      ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1;
                              }
                              else {
                                  return symbolAccesibilityResult.errorModuleName ?
                                      ts.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2 :
                                      ts.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;
                              }
                          case 201:
                              return symbolAccesibilityResult.errorModuleName ?
                                  symbolAccesibilityResult.accessibility === 2 ?
                                      ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named :
                                      ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2 :
                                  ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_private_name_1;
                          default:
                              ts.Debug.fail("This is unknown parent for parameter: " + node.parent.kind);
                      }
                  }
                  function emitBindingPattern(bindingPattern) {
                      if (bindingPattern.kind === 151) {
                          write("{");
                          emitCommaList(bindingPattern.elements, emitBindingElement);
                          write("}");
                      }
                      else if (bindingPattern.kind === 152) {
                          write("[");
                          var elements = bindingPattern.elements;
                          emitCommaList(elements, emitBindingElement);
                          if (elements && elements.hasTrailingComma) {
                              write(", ");
                          }
                          write("]");
                      }
                  }
                  function emitBindingElement(bindingElement) {
                      function getBindingElementTypeVisibilityError(symbolAccesibilityResult) {
                          var diagnosticMessage = getParameterDeclarationTypeVisibilityDiagnosticMessage(symbolAccesibilityResult);
                          return diagnosticMessage !== undefined ? {
                              diagnosticMessage: diagnosticMessage,
                              errorNode: bindingElement,
                              typeName: bindingElement.name
                          } : undefined;
                      }
                      if (bindingElement.kind === 176) {
                          write(" ");
                      }
                      else if (bindingElement.kind === 153) {
                          if (bindingElement.propertyName) {
                              writeTextOfNode(currentSourceFile, bindingElement.propertyName);
                              write(": ");
                              emitBindingPattern(bindingElement.name);
                          }
                          else if (bindingElement.name) {
                              if (ts.isBindingPattern(bindingElement.name)) {
                                  emitBindingPattern(bindingElement.name);
                              }
                              else {
                                  ts.Debug.assert(bindingElement.name.kind === 65);
                                  if (bindingElement.dotDotDotToken) {
                                      write("...");
                                  }
                                  writeTextOfNode(currentSourceFile, bindingElement.name);
                              }
                          }
                      }
                  }
              }
              function emitNode(node) {
                  switch (node.kind) {
                      case 201:
                      case 206:
                      case 209:
                      case 203:
                      case 202:
                      case 204:
                      case 205:
                          return emitModuleElement(node, isModuleElementVisible(node));
                      case 181:
                          return emitModuleElement(node, isVariableStatementVisible(node));
                      case 210:
                          return emitModuleElement(node, !node.importClause);
                      case 216:
                          return emitExportDeclaration(node);
                      case 136:
                      case 135:
                      case 134:
                          return writeFunctionDeclaration(node);
                      case 140:
                      case 139:
                      case 141:
                          return emitSignatureDeclarationWithJsDocComments(node);
                      case 137:
                      case 138:
                          return emitAccessorDeclaration(node);
                      case 133:
                      case 132:
                          return emitPropertyDeclaration(node);
                      case 227:
                          return emitEnumMemberDeclaration(node);
                      case 215:
                          return emitExportAssignment(node);
                      case 228:
                          return emitSourceFile(node);
                  }
              }
              function writeReferencePath(referencedFile) {
                  var declFileName = referencedFile.flags & 2048
                      ? referencedFile.fileName
                      : ts.shouldEmitToOwnFile(referencedFile, compilerOptions)
                          ? ts.getOwnEmitOutputFilePath(referencedFile, host, ".d.ts")
                          : ts.removeFileExtension(compilerOptions.out) + ".d.ts";
                  declFileName = ts.getRelativePathToDirectoryOrUrl(ts.getDirectoryPath(ts.normalizeSlashes(jsFilePath)), declFileName, host.getCurrentDirectory(), host.getCanonicalFileName, false);
                  referencePathsOutput += "/// <reference path=\"" + declFileName + "\" />" + newLine;
              }
          }
          function writeDeclarationFile(jsFilePath, sourceFile, host, resolver, diagnostics) {
              var emitDeclarationResult = emitDeclarations(host, resolver, diagnostics, jsFilePath, sourceFile);
              if (!emitDeclarationResult.reportedDeclarationError) {
                  var declarationOutput = emitDeclarationResult.referencePathsOutput
                      + getDeclarationOutput(emitDeclarationResult.synchronousDeclarationOutput, emitDeclarationResult.moduleElementDeclarationEmitInfo);
                  ts.writeFile(host, diagnostics, ts.removeFileExtension(jsFilePath) + ".d.ts", declarationOutput, host.getCompilerOptions().emitBOM);
              }
              function getDeclarationOutput(synchronousDeclarationOutput, moduleElementDeclarationEmitInfo) {
                  var appliedSyncOutputPos = 0;
                  var declarationOutput = "";
                  ts.forEach(moduleElementDeclarationEmitInfo, function (aliasEmitInfo) {
                      if (aliasEmitInfo.asynchronousOutput) {
                          declarationOutput += synchronousDeclarationOutput.substring(appliedSyncOutputPos, aliasEmitInfo.outputPos);
                          declarationOutput += getDeclarationOutput(aliasEmitInfo.asynchronousOutput, aliasEmitInfo.subModuleElementDeclarationEmitInfo);
                          appliedSyncOutputPos = aliasEmitInfo.outputPos;
                      }
                  });
                  declarationOutput += synchronousDeclarationOutput.substring(appliedSyncOutputPos);
                  return declarationOutput;
              }
          }
          ts.writeDeclarationFile = writeDeclarationFile;
      })(ts || (ts = {}));
      /// <reference path="checker.ts"/>
      /// <reference path="declarationEmitter.ts"/>
      var ts;
      (function (ts) {
          function isExternalModuleOrDeclarationFile(sourceFile) {
              return ts.isExternalModule(sourceFile) || ts.isDeclarationFile(sourceFile);
          }
          ts.isExternalModuleOrDeclarationFile = isExternalModuleOrDeclarationFile;
          function emitFiles(resolver, host, targetSourceFile) {
              var extendsHelper = "\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    __.prototype = b.prototype;\n    d.prototype = new __();\n};";
              var decorateHelper = "\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") return Reflect.decorate(decorators, target, key, desc);\n    switch (arguments.length) {\n        case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target);\n        case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0);\n        case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc);\n    }\n};";
              var metadataHelper = "\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};";
              var paramHelper = "\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};";
              var compilerOptions = host.getCompilerOptions();
              var languageVersion = compilerOptions.target || 0;
              var sourceMapDataList = compilerOptions.sourceMap || compilerOptions.inlineSourceMap ? [] : undefined;
              var diagnostics = [];
              var newLine = host.getNewLine();
              if (targetSourceFile === undefined) {
                  ts.forEach(host.getSourceFiles(), function (sourceFile) {
                      if (ts.shouldEmitToOwnFile(sourceFile, compilerOptions)) {
                          var jsFilePath = ts.getOwnEmitOutputFilePath(sourceFile, host, ".js");
                          emitFile(jsFilePath, sourceFile);
                      }
                  });
                  if (compilerOptions.out) {
                      emitFile(compilerOptions.out);
                  }
              }
              else {
                  if (ts.shouldEmitToOwnFile(targetSourceFile, compilerOptions)) {
                      var jsFilePath = ts.getOwnEmitOutputFilePath(targetSourceFile, host, ".js");
                      emitFile(jsFilePath, targetSourceFile);
                  }
                  else if (!ts.isDeclarationFile(targetSourceFile) && compilerOptions.out) {
                      emitFile(compilerOptions.out);
                  }
              }
              diagnostics = ts.sortAndDeduplicateDiagnostics(diagnostics);
              return {
                  emitSkipped: false,
                  diagnostics: diagnostics,
                  sourceMaps: sourceMapDataList
              };
              function isNodeDescendentOf(node, ancestor) {
                  while (node) {
                      if (node === ancestor)
                          return true;
                      node = node.parent;
                  }
                  return false;
              }
              function isUniqueLocalName(name, container) {
                  for (var node = container; isNodeDescendentOf(node, container); node = node.nextContainer) {
                      if (node.locals && ts.hasProperty(node.locals, name)) {
                          if (node.locals[name].flags & (107455 | 1048576 | 8388608)) {
                              return false;
                          }
                      }
                  }
                  return true;
              }
              function emitJavaScript(jsFilePath, root) {
                  var writer = ts.createTextWriter(newLine);
                  var write = writer.write;
                  var writeTextOfNode = writer.writeTextOfNode;
                  var writeLine = writer.writeLine;
                  var increaseIndent = writer.increaseIndent;
                  var decreaseIndent = writer.decreaseIndent;
                  var currentSourceFile;
                  var exportFunctionForFile;
                  var generatedNameSet = {};
                  var nodeToGeneratedName = [];
                  var blockScopedVariableToGeneratedName;
                  var computedPropertyNamesToGeneratedNames;
                  var extendsEmitted = false;
                  var decorateEmitted = false;
                  var paramEmitted = false;
                  var tempFlags = 0;
                  var tempVariables;
                  var tempParameters;
                  var externalImports;
                  var exportSpecifiers;
                  var exportEquals;
                  var hasExportStars;
                  var writeEmittedFiles = writeJavaScriptFile;
                  var detachedCommentsInfo;
                  var writeComment = ts.writeCommentRange;
                  var emit = emitNodeWithoutSourceMap;
                  var emitStart = function (node) { };
                  var emitEnd = function (node) { };
                  var emitToken = emitTokenText;
                  var scopeEmitStart = function (scopeDeclaration, scopeName) { };
                  var scopeEmitEnd = function () { };
                  var sourceMapData;
                  if (compilerOptions.sourceMap || compilerOptions.inlineSourceMap) {
                      initializeEmitterWithSourceMaps();
                  }
                  if (root) {
                      emitSourceFile(root);
                  }
                  else {
                      ts.forEach(host.getSourceFiles(), function (sourceFile) {
                          if (!isExternalModuleOrDeclarationFile(sourceFile)) {
                              emitSourceFile(sourceFile);
                          }
                      });
                  }
                  writeLine();
                  writeEmittedFiles(writer.getText(), compilerOptions.emitBOM);
                  return;
                  function emitSourceFile(sourceFile) {
                      currentSourceFile = sourceFile;
                      exportFunctionForFile = undefined;
                      emit(sourceFile);
                  }
                  function isUniqueName(name) {
                      return !resolver.hasGlobalName(name) &&
                          !ts.hasProperty(currentSourceFile.identifiers, name) &&
                          !ts.hasProperty(generatedNameSet, name);
                  }
                  function makeTempVariableName(flags) {
                      if (flags && !(tempFlags & flags)) {
                          var name = flags === 268435456 ? "_i" : "_n";
                          if (isUniqueName(name)) {
                              tempFlags |= flags;
                              return name;
                          }
                      }
                      while (true) {
                          var count = tempFlags & 268435455;
                          tempFlags++;
                          if (count !== 8 && count !== 13) {
                              var name_15 = count < 26 ? "_" + String.fromCharCode(97 + count) : "_" + (count - 26);
                              if (isUniqueName(name_15)) {
                                  return name_15;
                              }
                          }
                      }
                  }
                  function makeUniqueName(baseName) {
                      if (baseName.charCodeAt(baseName.length - 1) !== 95) {
                          baseName += "_";
                      }
                      var i = 1;
                      while (true) {
                          var generatedName = baseName + i;
                          if (isUniqueName(generatedName)) {
                              return generatedNameSet[generatedName] = generatedName;
                          }
                          i++;
                      }
                  }
                  function assignGeneratedName(node, name) {
                      nodeToGeneratedName[ts.getNodeId(node)] = ts.unescapeIdentifier(name);
                  }
                  function generateNameForFunctionOrClassDeclaration(node) {
                      if (!node.name) {
                          assignGeneratedName(node, makeUniqueName("default"));
                      }
                  }
                  function generateNameForModuleOrEnum(node) {
                      if (node.name.kind === 65) {
                          var name_16 = node.name.text;
                          assignGeneratedName(node, isUniqueLocalName(name_16, node) ? name_16 : makeUniqueName(name_16));
                      }
                  }
                  function generateNameForImportOrExportDeclaration(node) {
                      var expr = ts.getExternalModuleName(node);
                      var baseName = expr.kind === 8 ?
                          ts.escapeIdentifier(ts.makeIdentifierFromModuleName(expr.text)) : "module";
                      assignGeneratedName(node, makeUniqueName(baseName));
                  }
                  function generateNameForImportDeclaration(node) {
                      if (node.importClause) {
                          generateNameForImportOrExportDeclaration(node);
                      }
                  }
                  function generateNameForExportDeclaration(node) {
                      if (node.moduleSpecifier) {
                          generateNameForImportOrExportDeclaration(node);
                      }
                  }
                  function generateNameForExportAssignment(node) {
                      if (node.expression && node.expression.kind !== 65) {
                          assignGeneratedName(node, makeUniqueName("default"));
                      }
                  }
                  function generateNameForNode(node) {
                      switch (node.kind) {
                          case 201:
                          case 202:
                          case 175:
                              generateNameForFunctionOrClassDeclaration(node);
                              break;
                          case 206:
                              generateNameForModuleOrEnum(node);
                              generateNameForNode(node.body);
                              break;
                          case 205:
                              generateNameForModuleOrEnum(node);
                              break;
                          case 210:
                              generateNameForImportDeclaration(node);
                              break;
                          case 216:
                              generateNameForExportDeclaration(node);
                              break;
                          case 215:
                              generateNameForExportAssignment(node);
                              break;
                      }
                  }
                  function getGeneratedNameForNode(node) {
                      var nodeId = ts.getNodeId(node);
                      if (!nodeToGeneratedName[nodeId]) {
                          generateNameForNode(node);
                      }
                      return nodeToGeneratedName[nodeId];
                  }
                  function initializeEmitterWithSourceMaps() {
                      var sourceMapDir;
                      var sourceMapSourceIndex = -1;
                      var sourceMapNameIndexMap = {};
                      var sourceMapNameIndices = [];
                      function getSourceMapNameIndex() {
                          return sourceMapNameIndices.length ? ts.lastOrUndefined(sourceMapNameIndices) : -1;
                      }
                      var lastRecordedSourceMapSpan;
                      var lastEncodedSourceMapSpan = {
                          emittedLine: 1,
                          emittedColumn: 1,
                          sourceLine: 1,
                          sourceColumn: 1,
                          sourceIndex: 0
                      };
                      var lastEncodedNameIndex = 0;
                      function encodeLastRecordedSourceMapSpan() {
                          if (!lastRecordedSourceMapSpan || lastRecordedSourceMapSpan === lastEncodedSourceMapSpan) {
                              return;
                          }
                          var prevEncodedEmittedColumn = lastEncodedSourceMapSpan.emittedColumn;
                          if (lastEncodedSourceMapSpan.emittedLine == lastRecordedSourceMapSpan.emittedLine) {
                              if (sourceMapData.sourceMapMappings) {
                                  sourceMapData.sourceMapMappings += ",";
                              }
                          }
                          else {
                              for (var encodedLine = lastEncodedSourceMapSpan.emittedLine; encodedLine < lastRecordedSourceMapSpan.emittedLine; encodedLine++) {
                                  sourceMapData.sourceMapMappings += ";";
                              }
                              prevEncodedEmittedColumn = 1;
                          }
                          sourceMapData.sourceMapMappings += base64VLQFormatEncode(lastRecordedSourceMapSpan.emittedColumn - prevEncodedEmittedColumn);
                          sourceMapData.sourceMapMappings += base64VLQFormatEncode(lastRecordedSourceMapSpan.sourceIndex - lastEncodedSourceMapSpan.sourceIndex);
                          sourceMapData.sourceMapMappings += base64VLQFormatEncode(lastRecordedSourceMapSpan.sourceLine - lastEncodedSourceMapSpan.sourceLine);
                          sourceMapData.sourceMapMappings += base64VLQFormatEncode(lastRecordedSourceMapSpan.sourceColumn - lastEncodedSourceMapSpan.sourceColumn);
                          if (lastRecordedSourceMapSpan.nameIndex >= 0) {
                              sourceMapData.sourceMapMappings += base64VLQFormatEncode(lastRecordedSourceMapSpan.nameIndex - lastEncodedNameIndex);
                              lastEncodedNameIndex = lastRecordedSourceMapSpan.nameIndex;
                          }
                          lastEncodedSourceMapSpan = lastRecordedSourceMapSpan;
                          sourceMapData.sourceMapDecodedMappings.push(lastEncodedSourceMapSpan);
                          function base64VLQFormatEncode(inValue) {
                              function base64FormatEncode(inValue) {
                                  if (inValue < 64) {
                                      return 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.charAt(inValue);
                                  }
                                  throw TypeError(inValue + ": not a 64 based value");
                              }
                              if (inValue < 0) {
                                  inValue = ((-inValue) << 1) + 1;
                              }
                              else {
                                  inValue = inValue << 1;
                              }
                              var encodedStr = "";
                              do {
                                  var currentDigit = inValue & 31;
                                  inValue = inValue >> 5;
                                  if (inValue > 0) {
                                      currentDigit = currentDigit | 32;
                                  }
                                  encodedStr = encodedStr + base64FormatEncode(currentDigit);
                              } while (inValue > 0);
                              return encodedStr;
                          }
                      }
                      function recordSourceMapSpan(pos) {
                          var sourceLinePos = ts.getLineAndCharacterOfPosition(currentSourceFile, pos);
                          sourceLinePos.line++;
                          sourceLinePos.character++;
                          var emittedLine = writer.getLine();
                          var emittedColumn = writer.getColumn();
                          if (!lastRecordedSourceMapSpan ||
                              lastRecordedSourceMapSpan.emittedLine != emittedLine ||
                              lastRecordedSourceMapSpan.emittedColumn != emittedColumn ||
                              (lastRecordedSourceMapSpan.sourceIndex === sourceMapSourceIndex &&
                                  (lastRecordedSourceMapSpan.sourceLine > sourceLinePos.line ||
                                      (lastRecordedSourceMapSpan.sourceLine === sourceLinePos.line && lastRecordedSourceMapSpan.sourceColumn > sourceLinePos.character)))) {
                              encodeLastRecordedSourceMapSpan();
                              lastRecordedSourceMapSpan = {
                                  emittedLine: emittedLine,
                                  emittedColumn: emittedColumn,
                                  sourceLine: sourceLinePos.line,
                                  sourceColumn: sourceLinePos.character,
                                  nameIndex: getSourceMapNameIndex(),
                                  sourceIndex: sourceMapSourceIndex
                              };
                          }
                          else {
                              lastRecordedSourceMapSpan.sourceLine = sourceLinePos.line;
                              lastRecordedSourceMapSpan.sourceColumn = sourceLinePos.character;
                              lastRecordedSourceMapSpan.sourceIndex = sourceMapSourceIndex;
                          }
                      }
                      function recordEmitNodeStartSpan(node) {
                          recordSourceMapSpan(ts.skipTrivia(currentSourceFile.text, node.pos));
                      }
                      function recordEmitNodeEndSpan(node) {
                          recordSourceMapSpan(node.end);
                      }
                      function writeTextWithSpanRecord(tokenKind, startPos, emitFn) {
                          var tokenStartPos = ts.skipTrivia(currentSourceFile.text, startPos);
                          recordSourceMapSpan(tokenStartPos);
                          var tokenEndPos = emitTokenText(tokenKind, tokenStartPos, emitFn);
                          recordSourceMapSpan(tokenEndPos);
                          return tokenEndPos;
                      }
                      function recordNewSourceFileStart(node) {
                          var sourcesDirectoryPath = compilerOptions.sourceRoot ? host.getCommonSourceDirectory() : sourceMapDir;
                          sourceMapData.sourceMapSources.push(ts.getRelativePathToDirectoryOrUrl(sourcesDirectoryPath, node.fileName, host.getCurrentDirectory(), host.getCanonicalFileName, true));
                          sourceMapSourceIndex = sourceMapData.sourceMapSources.length - 1;
                          sourceMapData.inputSourceFileNames.push(node.fileName);
                          if (compilerOptions.inlineSources) {
                              if (!sourceMapData.sourceMapSourcesContent) {
                                  sourceMapData.sourceMapSourcesContent = [];
                              }
                              sourceMapData.sourceMapSourcesContent.push(node.text);
                          }
                      }
                      function recordScopeNameOfNode(node, scopeName) {
                          function recordScopeNameIndex(scopeNameIndex) {
                              sourceMapNameIndices.push(scopeNameIndex);
                          }
                          function recordScopeNameStart(scopeName) {
                              var scopeNameIndex = -1;
                              if (scopeName) {
                                  var parentIndex = getSourceMapNameIndex();
                                  if (parentIndex !== -1) {
                                      var name_17 = node.name;
                                      if (!name_17 || name_17.kind !== 128) {
                                          scopeName = "." + scopeName;
                                      }
                                      scopeName = sourceMapData.sourceMapNames[parentIndex] + scopeName;
                                  }
                                  scopeNameIndex = ts.getProperty(sourceMapNameIndexMap, scopeName);
                                  if (scopeNameIndex === undefined) {
                                      scopeNameIndex = sourceMapData.sourceMapNames.length;
                                      sourceMapData.sourceMapNames.push(scopeName);
                                      sourceMapNameIndexMap[scopeName] = scopeNameIndex;
                                  }
                              }
                              recordScopeNameIndex(scopeNameIndex);
                          }
                          if (scopeName) {
                              recordScopeNameStart(scopeName);
                          }
                          else if (node.kind === 201 ||
                              node.kind === 163 ||
                              node.kind === 135 ||
                              node.kind === 134 ||
                              node.kind === 137 ||
                              node.kind === 138 ||
                              node.kind === 206 ||
                              node.kind === 202 ||
                              node.kind === 205) {
                              if (node.name) {
                                  var name_18 = node.name;
                                  scopeName = name_18.kind === 128
                                      ? ts.getTextOfNode(name_18)
                                      : node.name.text;
                              }
                              recordScopeNameStart(scopeName);
                          }
                          else {
                              recordScopeNameIndex(getSourceMapNameIndex());
                          }
                      }
                      function recordScopeNameEnd() {
                          sourceMapNameIndices.pop();
                      }
                      ;
                      function writeCommentRangeWithMap(curentSourceFile, writer, comment, newLine) {
                          recordSourceMapSpan(comment.pos);
                          ts.writeCommentRange(currentSourceFile, writer, comment, newLine);
                          recordSourceMapSpan(comment.end);
                      }
                      function serializeSourceMapContents(version, file, sourceRoot, sources, names, mappings, sourcesContent) {
                          if (typeof JSON !== "undefined") {
                              var map_1 = {
                                  version: version,
                                  file: file,
                                  sourceRoot: sourceRoot,
                                  sources: sources,
                                  names: names,
                                  mappings: mappings
                              };
                              if (sourcesContent !== undefined) {
                                  map_1.sourcesContent = sourcesContent;
                              }
                              return JSON.stringify(map_1);
                          }
                          return "{\"version\":" + version + ",\"file\":\"" + ts.escapeString(file) + "\",\"sourceRoot\":\"" + ts.escapeString(sourceRoot) + "\",\"sources\":[" + serializeStringArray(sources) + "],\"names\":[" + serializeStringArray(names) + "],\"mappings\":\"" + ts.escapeString(mappings) + "\" " + (sourcesContent !== undefined ? ",\"sourcesContent\":[" + serializeStringArray(sourcesContent) + "]" : "") + "}";
                          function serializeStringArray(list) {
                              var output = "";
                              for (var i = 0, n = list.length; i < n; i++) {
                                  if (i) {
                                      output += ",";
                                  }
                                  output += "\"" + ts.escapeString(list[i]) + "\"";
                              }
                              return output;
                          }
                      }
                      function writeJavaScriptAndSourceMapFile(emitOutput, writeByteOrderMark) {
                          encodeLastRecordedSourceMapSpan();
                          var sourceMapText = serializeSourceMapContents(3, sourceMapData.sourceMapFile, sourceMapData.sourceMapSourceRoot, sourceMapData.sourceMapSources, sourceMapData.sourceMapNames, sourceMapData.sourceMapMappings, sourceMapData.sourceMapSourcesContent);
                          sourceMapDataList.push(sourceMapData);
                          var sourceMapUrl;
                          if (compilerOptions.inlineSourceMap) {
                              var base64SourceMapText = ts.convertToBase64(sourceMapText);
                              sourceMapUrl = "//# sourceMappingURL=data:application/json;base64," + base64SourceMapText;
                          }
                          else {
                              ts.writeFile(host, diagnostics, sourceMapData.sourceMapFilePath, sourceMapText, false);
                              sourceMapUrl = "//# sourceMappingURL=" + sourceMapData.jsSourceMappingURL;
                          }
                          writeJavaScriptFile(emitOutput + sourceMapUrl, writeByteOrderMark);
                      }
                      var sourceMapJsFile = ts.getBaseFileName(ts.normalizeSlashes(jsFilePath));
                      sourceMapData = {
                          sourceMapFilePath: jsFilePath + ".map",
                          jsSourceMappingURL: sourceMapJsFile + ".map",
                          sourceMapFile: sourceMapJsFile,
                          sourceMapSourceRoot: compilerOptions.sourceRoot || "",
                          sourceMapSources: [],
                          inputSourceFileNames: [],
                          sourceMapNames: [],
                          sourceMapMappings: "",
                          sourceMapSourcesContent: undefined,
                          sourceMapDecodedMappings: []
                      };
                      sourceMapData.sourceMapSourceRoot = ts.normalizeSlashes(sourceMapData.sourceMapSourceRoot);
                      if (sourceMapData.sourceMapSourceRoot.length && sourceMapData.sourceMapSourceRoot.charCodeAt(sourceMapData.sourceMapSourceRoot.length - 1) !== 47) {
                          sourceMapData.sourceMapSourceRoot += ts.directorySeparator;
                      }
                      if (compilerOptions.mapRoot) {
                          sourceMapDir = ts.normalizeSlashes(compilerOptions.mapRoot);
                          if (root) {
                              sourceMapDir = ts.getDirectoryPath(ts.getSourceFilePathInNewDir(root, host, sourceMapDir));
                          }
                          if (!ts.isRootedDiskPath(sourceMapDir) && !ts.isUrl(sourceMapDir)) {
                              sourceMapDir = ts.combinePaths(host.getCommonSourceDirectory(), sourceMapDir);
                              sourceMapData.jsSourceMappingURL = ts.getRelativePathToDirectoryOrUrl(ts.getDirectoryPath(ts.normalizePath(jsFilePath)), ts.combinePaths(sourceMapDir, sourceMapData.jsSourceMappingURL), host.getCurrentDirectory(), host.getCanonicalFileName, true);
                          }
                          else {
                              sourceMapData.jsSourceMappingURL = ts.combinePaths(sourceMapDir, sourceMapData.jsSourceMappingURL);
                          }
                      }
                      else {
                          sourceMapDir = ts.getDirectoryPath(ts.normalizePath(jsFilePath));
                      }
                      function emitNodeWithSourceMap(node, allowGeneratedIdentifiers) {
                          if (node) {
                              if (ts.nodeIsSynthesized(node)) {
                                  return emitNodeWithoutSourceMap(node, false);
                              }
                              if (node.kind != 228) {
                                  recordEmitNodeStartSpan(node);
                                  emitNodeWithoutSourceMap(node, allowGeneratedIdentifiers);
                                  recordEmitNodeEndSpan(node);
                              }
                              else {
                                  recordNewSourceFileStart(node);
                                  emitNodeWithoutSourceMap(node, false);
                              }
                          }
                      }
                      writeEmittedFiles = writeJavaScriptAndSourceMapFile;
                      emit = emitNodeWithSourceMap;
                      emitStart = recordEmitNodeStartSpan;
                      emitEnd = recordEmitNodeEndSpan;
                      emitToken = writeTextWithSpanRecord;
                      scopeEmitStart = recordScopeNameOfNode;
                      scopeEmitEnd = recordScopeNameEnd;
                      writeComment = writeCommentRangeWithMap;
                  }
                  function writeJavaScriptFile(emitOutput, writeByteOrderMark) {
                      ts.writeFile(host, diagnostics, jsFilePath, emitOutput, writeByteOrderMark);
                  }
                  function createTempVariable(flags) {
                      var result = ts.createSynthesizedNode(65);
                      result.text = makeTempVariableName(flags);
                      return result;
                  }
                  function recordTempDeclaration(name) {
                      if (!tempVariables) {
                          tempVariables = [];
                      }
                      tempVariables.push(name);
                  }
                  function createAndRecordTempVariable(flags) {
                      var temp = createTempVariable(flags);
                      recordTempDeclaration(temp);
                      return temp;
                  }
                  function emitTempDeclarations(newLine) {
                      if (tempVariables) {
                          if (newLine) {
                              writeLine();
                          }
                          else {
                              write(" ");
                          }
                          write("var ");
                          emitCommaList(tempVariables);
                          write(";");
                      }
                  }
                  function emitTokenText(tokenKind, startPos, emitFn) {
                      var tokenString = ts.tokenToString(tokenKind);
                      if (emitFn) {
                          emitFn();
                      }
                      else {
                          write(tokenString);
                      }
                      return startPos + tokenString.length;
                  }
                  function emitOptional(prefix, node) {
                      if (node) {
                          write(prefix);
                          emit(node);
                      }
                  }
                  function emitParenthesizedIf(node, parenthesized) {
                      if (parenthesized) {
                          write("(");
                      }
                      emit(node);
                      if (parenthesized) {
                          write(")");
                      }
                  }
                  function emitTrailingCommaIfPresent(nodeList) {
                      if (nodeList.hasTrailingComma) {
                          write(",");
                      }
                  }
                  function emitLinePreservingList(parent, nodes, allowTrailingComma, spacesBetweenBraces) {
                      ts.Debug.assert(nodes.length > 0);
                      increaseIndent();
                      if (nodeStartPositionsAreOnSameLine(parent, nodes[0])) {
                          if (spacesBetweenBraces) {
                              write(" ");
                          }
                      }
                      else {
                          writeLine();
                      }
                      for (var i = 0, n = nodes.length; i < n; i++) {
                          if (i) {
                              if (nodeEndIsOnSameLineAsNodeStart(nodes[i - 1], nodes[i])) {
                                  write(", ");
                              }
                              else {
                                  write(",");
                                  writeLine();
                              }
                          }
                          emit(nodes[i]);
                      }
                      if (nodes.hasTrailingComma && allowTrailingComma) {
                          write(",");
                      }
                      decreaseIndent();
                      if (nodeEndPositionsAreOnSameLine(parent, ts.lastOrUndefined(nodes))) {
                          if (spacesBetweenBraces) {
                              write(" ");
                          }
                      }
                      else {
                          writeLine();
                      }
                  }
                  function emitList(nodes, start, count, multiLine, trailingComma, leadingComma, noTrailingNewLine, emitNode) {
                      if (!emitNode) {
                          emitNode = emit;
                      }
                      for (var i = 0; i < count; i++) {
                          if (multiLine) {
                              if (i || leadingComma) {
                                  write(",");
                              }
                              writeLine();
                          }
                          else {
                              if (i || leadingComma) {
                                  write(", ");
                              }
                          }
                          emitNode(nodes[start + i]);
                          leadingComma = true;
                      }
                      if (trailingComma) {
                          write(",");
                      }
                      if (multiLine && !noTrailingNewLine) {
                          writeLine();
                      }
                      return count;
                  }
                  function emitCommaList(nodes) {
                      if (nodes) {
                          emitList(nodes, 0, nodes.length, false, false);
                      }
                  }
                  function emitLines(nodes) {
                      emitLinesStartingAt(nodes, 0);
                  }
                  function emitLinesStartingAt(nodes, startIndex) {
                      for (var i = startIndex; i < nodes.length; i++) {
                          writeLine();
                          emit(nodes[i]);
                      }
                  }
                  function isBinaryOrOctalIntegerLiteral(node, text) {
                      if (node.kind === 7 && text.length > 1) {
                          switch (text.charCodeAt(1)) {
                              case 98:
                              case 66:
                              case 111:
                              case 79:
                                  return true;
                          }
                      }
                      return false;
                  }
                  function emitLiteral(node) {
                      var text = getLiteralText(node);
                      if ((compilerOptions.sourceMap || compilerOptions.inlineSourceMap) && (node.kind === 8 || ts.isTemplateLiteralKind(node.kind))) {
                          writer.writeLiteral(text);
                      }
                      else if (languageVersion < 2 && isBinaryOrOctalIntegerLiteral(node, text)) {
                          write(node.text);
                      }
                      else {
                          write(text);
                      }
                  }
                  function getLiteralText(node) {
                      if (languageVersion < 2 && (ts.isTemplateLiteralKind(node.kind) || node.hasExtendedUnicodeEscape)) {
                          return getQuotedEscapedLiteralText('"', node.text, '"');
                      }
                      if (node.parent) {
                          return ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node);
                      }
                      switch (node.kind) {
                          case 8:
                              return getQuotedEscapedLiteralText('"', node.text, '"');
                          case 10:
                              return getQuotedEscapedLiteralText('`', node.text, '`');
                          case 11:
                              return getQuotedEscapedLiteralText('`', node.text, '${');
                          case 12:
                              return getQuotedEscapedLiteralText('}', node.text, '${');
                          case 13:
                              return getQuotedEscapedLiteralText('}', node.text, '`');
                          case 7:
                              return node.text;
                      }
                      ts.Debug.fail("Literal kind '" + node.kind + "' not accounted for.");
                  }
                  function getQuotedEscapedLiteralText(leftQuote, text, rightQuote) {
                      return leftQuote + ts.escapeNonAsciiCharacters(ts.escapeString(text)) + rightQuote;
                  }
                  function emitDownlevelRawTemplateLiteral(node) {
                      var text = ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node);
                      var isLast = node.kind === 10 || node.kind === 13;
                      text = text.substring(1, text.length - (isLast ? 1 : 2));
                      text = text.replace(/\r\n?/g, "\n");
                      text = ts.escapeString(text);
                      write('"' + text + '"');
                  }
                  function emitDownlevelTaggedTemplateArray(node, literalEmitter) {
                      write("[");
                      if (node.template.kind === 10) {
                          literalEmitter(node.template);
                      }
                      else {
                          literalEmitter(node.template.head);
                          ts.forEach(node.template.templateSpans, function (child) {
                              write(", ");
                              literalEmitter(child.literal);
                          });
                      }
                      write("]");
                  }
                  function emitDownlevelTaggedTemplate(node) {
                      var tempVariable = createAndRecordTempVariable(0);
                      write("(");
                      emit(tempVariable);
                      write(" = ");
                      emitDownlevelTaggedTemplateArray(node, emit);
                      write(", ");
                      emit(tempVariable);
                      write(".raw = ");
                      emitDownlevelTaggedTemplateArray(node, emitDownlevelRawTemplateLiteral);
                      write(", ");
                      emitParenthesizedIf(node.tag, needsParenthesisForPropertyAccessOrInvocation(node.tag));
                      write("(");
                      emit(tempVariable);
                      if (node.template.kind === 172) {
                          ts.forEach(node.template.templateSpans, function (templateSpan) {
                              write(", ");
                              var needsParens = templateSpan.expression.kind === 170
                                  && templateSpan.expression.operatorToken.kind === 23;
                              emitParenthesizedIf(templateSpan.expression, needsParens);
                          });
                      }
                      write("))");
                  }
                  function emitTemplateExpression(node) {
                      if (languageVersion >= 2) {
                          ts.forEachChild(node, emit);
                          return;
                      }
                      var emitOuterParens = ts.isExpression(node.parent)
                          && templateNeedsParens(node, node.parent);
                      if (emitOuterParens) {
                          write("(");
                      }
                      var headEmitted = false;
                      if (shouldEmitTemplateHead()) {
                          emitLiteral(node.head);
                          headEmitted = true;
                      }
                      for (var i = 0, n = node.templateSpans.length; i < n; i++) {
                          var templateSpan = node.templateSpans[i];
                          var needsParens = templateSpan.expression.kind !== 162
                              && comparePrecedenceToBinaryPlus(templateSpan.expression) !== 1;
                          if (i > 0 || headEmitted) {
                              write(" + ");
                          }
                          emitParenthesizedIf(templateSpan.expression, needsParens);
                          if (templateSpan.literal.text.length !== 0) {
                              write(" + ");
                              emitLiteral(templateSpan.literal);
                          }
                      }
                      if (emitOuterParens) {
                          write(")");
                      }
                      function shouldEmitTemplateHead() {
                          // If this expression has an empty head literal and the first template span has a non-empty
                          // literal, then emitting the empty head literal is not necessary.
                          //     `${ foo } and ${ bar }`
                          // can be emitted as
                          //     foo + " and " + bar
                          // This is because it is only required that one of the first two operands in the emit
                          // output must be a string literal, so that the other operand and all following operands
                          // are forced into strings.
                          //
                          // If the first template span has an empty literal, then the head must still be emitted.
                          //     `${ foo }${ bar }`
                          // must still be emitted as
                          //     "" + foo + bar
                          ts.Debug.assert(node.templateSpans.length !== 0);
                          return node.head.text.length !== 0 || node.templateSpans[0].literal.text.length === 0;
                      }
                      function templateNeedsParens(template, parent) {
                          switch (parent.kind) {
                              case 158:
                              case 159:
                                  return parent.expression === template;
                              case 160:
                              case 162:
                                  return false;
                              default:
                                  return comparePrecedenceToBinaryPlus(parent) !== -1;
                          }
                      }
                      function comparePrecedenceToBinaryPlus(expression) {
                          switch (expression.kind) {
                              case 170:
                                  switch (expression.operatorToken.kind) {
                                      case 35:
                                      case 36:
                                      case 37:
                                          return 1;
                                      case 33:
                                      case 34:
                                          return 0;
                                      default:
                                          return -1;
                                  }
                              case 173:
                              case 171:
                                  return -1;
                              default:
                                  return 1;
                          }
                      }
                  }
                  function emitTemplateSpan(span) {
                      emit(span.expression);
                      emit(span.literal);
                  }
                  function emitExpressionForPropertyName(node) {
                      ts.Debug.assert(node.kind !== 153);
                      if (node.kind === 8) {
                          emitLiteral(node);
                      }
                      else if (node.kind === 128) {
                          if (ts.nodeIsDecorated(node.parent)) {
                              if (!computedPropertyNamesToGeneratedNames) {
                                  computedPropertyNamesToGeneratedNames = [];
                              }
                              var generatedName = computedPropertyNamesToGeneratedNames[ts.getNodeId(node)];
                              if (generatedName) {
                                  write(generatedName);
                                  return;
                              }
                              generatedName = createAndRecordTempVariable(0).text;
                              computedPropertyNamesToGeneratedNames[ts.getNodeId(node)] = generatedName;
                              write(generatedName);
                              write(" = ");
                          }
                          emit(node.expression);
                      }
                      else {
                          write("\"");
                          if (node.kind === 7) {
                              write(node.text);
                          }
                          else {
                              writeTextOfNode(currentSourceFile, node);
                          }
                          write("\"");
                      }
                  }
                  function isNotExpressionIdentifier(node) {
                      var parent = node.parent;
                      switch (parent.kind) {
                          case 130:
                          case 199:
                          case 153:
                          case 133:
                          case 132:
                          case 225:
                          case 226:
                          case 227:
                          case 135:
                          case 134:
                          case 201:
                          case 137:
                          case 138:
                          case 163:
                          case 202:
                          case 203:
                          case 205:
                          case 206:
                          case 209:
                          case 211:
                          case 212:
                              return parent.name === node;
                          case 214:
                          case 218:
                              return parent.name === node || parent.propertyName === node;
                          case 191:
                          case 190:
                          case 215:
                              return false;
                          case 195:
                              return node.parent.label === node;
                      }
                  }
                  function emitExpressionIdentifier(node) {
                      var substitution = resolver.getExpressionNameSubstitution(node, getGeneratedNameForNode);
                      if (substitution) {
                          write(substitution);
                      }
                      else {
                          writeTextOfNode(currentSourceFile, node);
                      }
                  }
                  function getGeneratedNameForIdentifier(node) {
                      if (ts.nodeIsSynthesized(node) || !blockScopedVariableToGeneratedName) {
                          return undefined;
                      }
                      var variableId = resolver.getBlockScopedVariableId(node);
                      if (variableId === undefined) {
                          return undefined;
                      }
                      return blockScopedVariableToGeneratedName[variableId];
                  }
                  function emitIdentifier(node, allowGeneratedIdentifiers) {
                      if (allowGeneratedIdentifiers) {
                          var generatedName = getGeneratedNameForIdentifier(node);
                          if (generatedName) {
                              write(generatedName);
                              return;
                          }
                      }
                      if (!node.parent) {
                          write(node.text);
                      }
                      else if (!isNotExpressionIdentifier(node)) {
                          emitExpressionIdentifier(node);
                      }
                      else {
                          writeTextOfNode(currentSourceFile, node);
                      }
                  }
                  function emitThis(node) {
                      if (resolver.getNodeCheckFlags(node) & 2) {
                          write("_this");
                      }
                      else {
                          write("this");
                      }
                  }
                  function emitSuper(node) {
                      if (languageVersion >= 2) {
                          write("super");
                      }
                      else {
                          var flags = resolver.getNodeCheckFlags(node);
                          if (flags & 16) {
                              write("_super.prototype");
                          }
                          else {
                              write("_super");
                          }
                      }
                  }
                  function emitObjectBindingPattern(node) {
                      write("{ ");
                      var elements = node.elements;
                      emitList(elements, 0, elements.length, false, elements.hasTrailingComma);
                      write(" }");
                  }
                  function emitArrayBindingPattern(node) {
                      write("[");
                      var elements = node.elements;
                      emitList(elements, 0, elements.length, false, elements.hasTrailingComma);
                      write("]");
                  }
                  function emitBindingElement(node) {
                      if (node.propertyName) {
                          emit(node.propertyName, false);
                          write(": ");
                      }
                      if (node.dotDotDotToken) {
                          write("...");
                      }
                      if (ts.isBindingPattern(node.name)) {
                          emit(node.name);
                      }
                      else {
                          emitModuleMemberName(node);
                      }
                      emitOptional(" = ", node.initializer);
                  }
                  function emitSpreadElementExpression(node) {
                      write("...");
                      emit(node.expression);
                  }
                  function emitYieldExpression(node) {
                      write(ts.tokenToString(110));
                      if (node.asteriskToken) {
                          write("*");
                      }
                      if (node.expression) {
                          write(" ");
                          emit(node.expression);
                      }
                  }
                  function needsParenthesisForPropertyAccessOrInvocation(node) {
                      switch (node.kind) {
                          case 65:
                          case 154:
                          case 156:
                          case 157:
                          case 158:
                          case 162:
                              return false;
                      }
                      return true;
                  }
                  function emitListWithSpread(elements, alwaysCopy, multiLine, trailingComma) {
                      var pos = 0;
                      var group = 0;
                      var length = elements.length;
                      while (pos < length) {
                          if (group === 1) {
                              write(".concat(");
                          }
                          else if (group > 1) {
                              write(", ");
                          }
                          var e = elements[pos];
                          if (e.kind === 174) {
                              e = e.expression;
                              emitParenthesizedIf(e, group === 0 && needsParenthesisForPropertyAccessOrInvocation(e));
                              pos++;
                              if (pos === length && group === 0 && alwaysCopy && e.kind !== 154) {
                                  write(".slice()");
                              }
                          }
                          else {
                              var i = pos;
                              while (i < length && elements[i].kind !== 174) {
                                  i++;
                              }
                              write("[");
                              if (multiLine) {
                                  increaseIndent();
                              }
                              emitList(elements, pos, i - pos, multiLine, trailingComma && i === length);
                              if (multiLine) {
                                  decreaseIndent();
                              }
                              write("]");
                              pos = i;
                          }
                          group++;
                      }
                      if (group > 1) {
                          write(")");
                      }
                  }
                  function isSpreadElementExpression(node) {
                      return node.kind === 174;
                  }
                  function emitArrayLiteral(node) {
                      var elements = node.elements;
                      if (elements.length === 0) {
                          write("[]");
                      }
                      else if (languageVersion >= 2 || !ts.forEach(elements, isSpreadElementExpression)) {
                          write("[");
                          emitLinePreservingList(node, node.elements, elements.hasTrailingComma, false);
                          write("]");
                      }
                      else {
                          emitListWithSpread(elements, true, (node.flags & 512) !== 0, elements.hasTrailingComma);
                      }
                  }
                  function emitObjectLiteralBody(node, numElements) {
                      if (numElements === 0) {
                          write("{}");
                          return;
                      }
                      write("{");
                      if (numElements > 0) {
                          var properties = node.properties;
                          if (numElements === properties.length) {
                              emitLinePreservingList(node, properties, languageVersion >= 1, true);
                          }
                          else {
                              var multiLine = (node.flags & 512) !== 0;
                              if (!multiLine) {
                                  write(" ");
                              }
                              else {
                                  increaseIndent();
                              }
                              emitList(properties, 0, numElements, multiLine, false);
                              if (!multiLine) {
                                  write(" ");
                              }
                              else {
                                  decreaseIndent();
                              }
                          }
                      }
                      write("}");
                  }
                  function emitDownlevelObjectLiteralWithComputedProperties(node, firstComputedPropertyIndex) {
                      var multiLine = (node.flags & 512) !== 0;
                      var properties = node.properties;
                      write("(");
                      if (multiLine) {
                          increaseIndent();
                      }
                      var tempVar = createAndRecordTempVariable(0);
                      emit(tempVar);
                      write(" = ");
                      emitObjectLiteralBody(node, firstComputedPropertyIndex);
                      for (var i = firstComputedPropertyIndex, n = properties.length; i < n; i++) {
                          writeComma();
                          var property = properties[i];
                          emitStart(property);
                          if (property.kind === 137 || property.kind === 138) {
                              var accessors = ts.getAllAccessorDeclarations(node.properties, property);
                              if (property !== accessors.firstAccessor) {
                                  continue;
                              }
                              write("Object.defineProperty(");
                              emit(tempVar);
                              write(", ");
                              emitStart(node.name);
                              emitExpressionForPropertyName(property.name);
                              emitEnd(property.name);
                              write(", {");
                              increaseIndent();
                              if (accessors.getAccessor) {
                                  writeLine();
                                  emitLeadingComments(accessors.getAccessor);
                                  write("get: ");
                                  emitStart(accessors.getAccessor);
                                  write("function ");
                                  emitSignatureAndBody(accessors.getAccessor);
                                  emitEnd(accessors.getAccessor);
                                  emitTrailingComments(accessors.getAccessor);
                                  write(",");
                              }
                              if (accessors.setAccessor) {
                                  writeLine();
                                  emitLeadingComments(accessors.setAccessor);
                                  write("set: ");
                                  emitStart(accessors.setAccessor);
                                  write("function ");
                                  emitSignatureAndBody(accessors.setAccessor);
                                  emitEnd(accessors.setAccessor);
                                  emitTrailingComments(accessors.setAccessor);
                                  write(",");
                              }
                              writeLine();
                              write("enumerable: true,");
                              writeLine();
                              write("configurable: true");
                              decreaseIndent();
                              writeLine();
                              write("})");
                              emitEnd(property);
                          }
                          else {
                              emitLeadingComments(property);
                              emitStart(property.name);
                              emit(tempVar);
                              emitMemberAccessForPropertyName(property.name);
                              emitEnd(property.name);
                              write(" = ");
                              if (property.kind === 225) {
                                  emit(property.initializer);
                              }
                              else if (property.kind === 226) {
                                  emitExpressionIdentifier(property.name);
                              }
                              else if (property.kind === 135) {
                                  emitFunctionDeclaration(property);
                              }
                              else {
                                  ts.Debug.fail("ObjectLiteralElement type not accounted for: " + property.kind);
                              }
                          }
                          emitEnd(property);
                      }
                      writeComma();
                      emit(tempVar);
                      if (multiLine) {
                          decreaseIndent();
                          writeLine();
                      }
                      write(")");
                      function writeComma() {
                          if (multiLine) {
                              write(",");
                              writeLine();
                          }
                          else {
                              write(", ");
                          }
                      }
                  }
                  function emitObjectLiteral(node) {
                      var properties = node.properties;
                      if (languageVersion < 2) {
                          var numProperties = properties.length;
                          var numInitialNonComputedProperties = numProperties;
                          for (var i = 0, n = properties.length; i < n; i++) {
                              if (properties[i].name.kind === 128) {
                                  numInitialNonComputedProperties = i;
                                  break;
                              }
                          }
                          var hasComputedProperty = numInitialNonComputedProperties !== properties.length;
                          if (hasComputedProperty) {
                              emitDownlevelObjectLiteralWithComputedProperties(node, numInitialNonComputedProperties);
                              return;
                          }
                      }
                      emitObjectLiteralBody(node, properties.length);
                  }
                  function createBinaryExpression(left, operator, right, startsOnNewLine) {
                      var result = ts.createSynthesizedNode(170, startsOnNewLine);
                      result.operatorToken = ts.createSynthesizedNode(operator);
                      result.left = left;
                      result.right = right;
                      return result;
                  }
                  function createPropertyAccessExpression(expression, name) {
                      var result = ts.createSynthesizedNode(156);
                      result.expression = parenthesizeForAccess(expression);
                      result.dotToken = ts.createSynthesizedNode(20);
                      result.name = name;
                      return result;
                  }
                  function createElementAccessExpression(expression, argumentExpression) {
                      var result = ts.createSynthesizedNode(157);
                      result.expression = parenthesizeForAccess(expression);
                      result.argumentExpression = argumentExpression;
                      return result;
                  }
                  function parenthesizeForAccess(expr) {
                      if (ts.isLeftHandSideExpression(expr) && expr.kind !== 159 && expr.kind !== 7) {
                          return expr;
                      }
                      var node = ts.createSynthesizedNode(162);
                      node.expression = expr;
                      return node;
                  }
                  function emitComputedPropertyName(node) {
                      write("[");
                      emitExpressionForPropertyName(node);
                      write("]");
                  }
                  function emitMethod(node) {
                      if (languageVersion >= 2 && node.asteriskToken) {
                          write("*");
                      }
                      emit(node.name, false);
                      if (languageVersion < 2) {
                          write(": function ");
                      }
                      emitSignatureAndBody(node);
                  }
                  function emitPropertyAssignment(node) {
                      emit(node.name, false);
                      write(": ");
                      emit(node.initializer);
                  }
                  function emitShorthandPropertyAssignment(node) {
                      emit(node.name, false);
                      if (languageVersion < 2) {
                          write(": ");
                          var generatedName = getGeneratedNameForIdentifier(node.name);
                          if (generatedName) {
                              write(generatedName);
                          }
                          else {
                              emitExpressionIdentifier(node.name);
                          }
                      }
                      else if (resolver.getExpressionNameSubstitution(node.name, getGeneratedNameForNode)) {
                          write(": ");
                          emitExpressionIdentifier(node.name);
                      }
                  }
                  function tryEmitConstantValue(node) {
                      if (compilerOptions.separateCompilation) {
                          return false;
                      }
                      var constantValue = resolver.getConstantValue(node);
                      if (constantValue !== undefined) {
                          write(constantValue.toString());
                          if (!compilerOptions.removeComments) {
                              var propertyName = node.kind === 156 ? ts.declarationNameToString(node.name) : ts.getTextOfNode(node.argumentExpression);
                              write(" /* " + propertyName + " */");
                          }
                          return true;
                      }
                      return false;
                  }
                  function indentIfOnDifferentLines(parent, node1, node2, valueToWriteWhenNotIndenting) {
                      var realNodesAreOnDifferentLines = !ts.nodeIsSynthesized(parent) && !nodeEndIsOnSameLineAsNodeStart(node1, node2);
                      var synthesizedNodeIsOnDifferentLine = synthesizedNodeStartsOnNewLine(node2);
                      if (realNodesAreOnDifferentLines || synthesizedNodeIsOnDifferentLine) {
                          increaseIndent();
                          writeLine();
                          return true;
                      }
                      else {
                          if (valueToWriteWhenNotIndenting) {
                              write(valueToWriteWhenNotIndenting);
                          }
                          return false;
                      }
                  }
                  function emitPropertyAccess(node) {
                      if (tryEmitConstantValue(node)) {
                          return;
                      }
                      emit(node.expression);
                      var indentedBeforeDot = indentIfOnDifferentLines(node, node.expression, node.dotToken);
                      write(".");
                      var indentedAfterDot = indentIfOnDifferentLines(node, node.dotToken, node.name);
                      emit(node.name, false);
                      decreaseIndentIf(indentedBeforeDot, indentedAfterDot);
                  }
                  function emitQualifiedName(node) {
                      emit(node.left);
                      write(".");
                      emit(node.right);
                  }
                  function emitIndexedAccess(node) {
                      if (tryEmitConstantValue(node)) {
                          return;
                      }
                      emit(node.expression);
                      write("[");
                      emit(node.argumentExpression);
                      write("]");
                  }
                  function hasSpreadElement(elements) {
                      return ts.forEach(elements, function (e) { return e.kind === 174; });
                  }
                  function skipParentheses(node) {
                      while (node.kind === 162 || node.kind === 161) {
                          node = node.expression;
                      }
                      return node;
                  }
                  function emitCallTarget(node) {
                      if (node.kind === 65 || node.kind === 93 || node.kind === 91) {
                          emit(node);
                          return node;
                      }
                      var temp = createAndRecordTempVariable(0);
                      write("(");
                      emit(temp);
                      write(" = ");
                      emit(node);
                      write(")");
                      return temp;
                  }
                  function emitCallWithSpread(node) {
                      var target;
                      var expr = skipParentheses(node.expression);
                      if (expr.kind === 156) {
                          target = emitCallTarget(expr.expression);
                          write(".");
                          emit(expr.name);
                      }
                      else if (expr.kind === 157) {
                          target = emitCallTarget(expr.expression);
                          write("[");
                          emit(expr.argumentExpression);
                          write("]");
                      }
                      else if (expr.kind === 91) {
                          target = expr;
                          write("_super");
                      }
                      else {
                          emit(node.expression);
                      }
                      write(".apply(");
                      if (target) {
                          if (target.kind === 91) {
                              emitThis(target);
                          }
                          else {
                              emit(target);
                          }
                      }
                      else {
                          write("void 0");
                      }
                      write(", ");
                      emitListWithSpread(node.arguments, false, false, false);
                      write(")");
                  }
                  function emitCallExpression(node) {
                      if (languageVersion < 2 && hasSpreadElement(node.arguments)) {
                          emitCallWithSpread(node);
                          return;
                      }
                      var superCall = false;
                      if (node.expression.kind === 91) {
                          emitSuper(node.expression);
                          superCall = true;
                      }
                      else {
                          emit(node.expression);
                          superCall = node.expression.kind === 156 && node.expression.expression.kind === 91;
                      }
                      if (superCall && languageVersion < 2) {
                          write(".call(");
                          emitThis(node.expression);
                          if (node.arguments.length) {
                              write(", ");
                              emitCommaList(node.arguments);
                          }
                          write(")");
                      }
                      else {
                          write("(");
                          emitCommaList(node.arguments);
                          write(")");
                      }
                  }
                  function emitNewExpression(node) {
                      write("new ");
                      emit(node.expression);
                      if (node.arguments) {
                          write("(");
                          emitCommaList(node.arguments);
                          write(")");
                      }
                  }
                  function emitTaggedTemplateExpression(node) {
                      if (languageVersion >= 2) {
                          emit(node.tag);
                          write(" ");
                          emit(node.template);
                      }
                      else {
                          emitDownlevelTaggedTemplate(node);
                      }
                  }
                  function emitParenExpression(node) {
                      if (!node.parent || node.parent.kind !== 164) {
                          if (node.expression.kind === 161) {
                              var operand = node.expression.expression;
                              while (operand.kind == 161) {
                                  operand = operand.expression;
                              }
                              if (operand.kind !== 168 &&
                                  operand.kind !== 167 &&
                                  operand.kind !== 166 &&
                                  operand.kind !== 165 &&
                                  operand.kind !== 169 &&
                                  operand.kind !== 159 &&
                                  !(operand.kind === 158 && node.parent.kind === 159) &&
                                  !(operand.kind === 163 && node.parent.kind === 158)) {
                                  emit(operand);
                                  return;
                              }
                          }
                      }
                      write("(");
                      emit(node.expression);
                      write(")");
                  }
                  function emitDeleteExpression(node) {
                      write(ts.tokenToString(74));
                      write(" ");
                      emit(node.expression);
                  }
                  function emitVoidExpression(node) {
                      write(ts.tokenToString(99));
                      write(" ");
                      emit(node.expression);
                  }
                  function emitTypeOfExpression(node) {
                      write(ts.tokenToString(97));
                      write(" ");
                      emit(node.expression);
                  }
                  function isNameOfExportedSourceLevelDeclarationInSystemExternalModule(node) {
                      if (!isCurrentFileSystemExternalModule() || node.kind !== 65 || ts.nodeIsSynthesized(node)) {
                          return false;
                      }
                      var isVariableDeclarationOrBindingElement = node.parent && (node.parent.kind === 199 || node.parent.kind === 153);
                      var targetDeclaration = isVariableDeclarationOrBindingElement
                          ? node.parent
                          : resolver.getReferencedValueDeclaration(node);
                      return isSourceFileLevelDeclarationInSystemJsModule(targetDeclaration, true);
                  }
                  function emitPrefixUnaryExpression(node) {
                      var exportChanged = isNameOfExportedSourceLevelDeclarationInSystemExternalModule(node.operand);
                      if (exportChanged) {
                          write(exportFunctionForFile + "(\"");
                          emitNodeWithoutSourceMap(node.operand);
                          write("\", ");
                      }
                      write(ts.tokenToString(node.operator));
                      if (node.operand.kind === 168) {
                          var operand = node.operand;
                          if (node.operator === 33 && (operand.operator === 33 || operand.operator === 38)) {
                              write(" ");
                          }
                          else if (node.operator === 34 && (operand.operator === 34 || operand.operator === 39)) {
                              write(" ");
                          }
                      }
                      emit(node.operand);
                      if (exportChanged) {
                          write(")");
                      }
                  }
                  function emitPostfixUnaryExpression(node) {
                      var exportChanged = isNameOfExportedSourceLevelDeclarationInSystemExternalModule(node.operand);
                      if (exportChanged) {
                          write("(" + exportFunctionForFile + "(\"");
                          emitNodeWithoutSourceMap(node.operand);
                          write("\", ");
                          write(ts.tokenToString(node.operator));
                          emit(node.operand);
                          if (node.operator === 38) {
                              write(") - 1)");
                          }
                          else {
                              write(") + 1)");
                          }
                      }
                      else {
                          emit(node.operand);
                          write(ts.tokenToString(node.operator));
                      }
                  }
                  function shouldHoistDeclarationInSystemJsModule(node) {
                      return isSourceFileLevelDeclarationInSystemJsModule(node, false);
                  }
                  function isSourceFileLevelDeclarationInSystemJsModule(node, isExported) {
                      if (!node || languageVersion >= 2 || !isCurrentFileSystemExternalModule()) {
                          return false;
                      }
                      var current = node;
                      while (current) {
                          if (current.kind === 228) {
                              return !isExported || ((ts.getCombinedNodeFlags(node) & 1) !== 0);
                          }
                          else if (ts.isFunctionLike(current) || current.kind === 207) {
                              return false;
                          }
                          else {
                              current = current.parent;
                          }
                      }
                  }
                  function emitBinaryExpression(node) {
                      if (languageVersion < 2 && node.operatorToken.kind === 53 &&
                          (node.left.kind === 155 || node.left.kind === 154)) {
                          emitDestructuring(node, node.parent.kind === 183);
                      }
                      else {
                          var exportChanged = node.operatorToken.kind >= 53 &&
                              node.operatorToken.kind <= 64 &&
                              isNameOfExportedSourceLevelDeclarationInSystemExternalModule(node.left);
                          if (exportChanged) {
                              write(exportFunctionForFile + "(\"");
                              emitNodeWithoutSourceMap(node.left);
                              write("\", ");
                          }
                          emit(node.left);
                          var indentedBeforeOperator = indentIfOnDifferentLines(node, node.left, node.operatorToken, node.operatorToken.kind !== 23 ? " " : undefined);
                          write(ts.tokenToString(node.operatorToken.kind));
                          var indentedAfterOperator = indentIfOnDifferentLines(node, node.operatorToken, node.right, " ");
                          emit(node.right);
                          decreaseIndentIf(indentedBeforeOperator, indentedAfterOperator);
                          if (exportChanged) {
                              write(")");
                          }
                      }
                  }
                  function synthesizedNodeStartsOnNewLine(node) {
                      return ts.nodeIsSynthesized(node) && node.startsOnNewLine;
                  }
                  function emitConditionalExpression(node) {
                      emit(node.condition);
                      var indentedBeforeQuestion = indentIfOnDifferentLines(node, node.condition, node.questionToken, " ");
                      write("?");
                      var indentedAfterQuestion = indentIfOnDifferentLines(node, node.questionToken, node.whenTrue, " ");
                      emit(node.whenTrue);
                      decreaseIndentIf(indentedBeforeQuestion, indentedAfterQuestion);
                      var indentedBeforeColon = indentIfOnDifferentLines(node, node.whenTrue, node.colonToken, " ");
                      write(":");
                      var indentedAfterColon = indentIfOnDifferentLines(node, node.colonToken, node.whenFalse, " ");
                      emit(node.whenFalse);
                      decreaseIndentIf(indentedBeforeColon, indentedAfterColon);
                  }
                  function decreaseIndentIf(value1, value2) {
                      if (value1) {
                          decreaseIndent();
                      }
                      if (value2) {
                          decreaseIndent();
                      }
                  }
                  function isSingleLineEmptyBlock(node) {
                      if (node && node.kind === 180) {
                          var block = node;
                          return block.statements.length === 0 && nodeEndIsOnSameLineAsNodeStart(block, block);
                      }
                  }
                  function emitBlock(node) {
                      if (isSingleLineEmptyBlock(node)) {
                          emitToken(14, node.pos);
                          write(" ");
                          emitToken(15, node.statements.end);
                          return;
                      }
                      emitToken(14, node.pos);
                      increaseIndent();
                      scopeEmitStart(node.parent);
                      if (node.kind === 207) {
                          ts.Debug.assert(node.parent.kind === 206);
                          emitCaptureThisForNodeIfNecessary(node.parent);
                      }
                      emitLines(node.statements);
                      if (node.kind === 207) {
                          emitTempDeclarations(true);
                      }
                      decreaseIndent();
                      writeLine();
                      emitToken(15, node.statements.end);
                      scopeEmitEnd();
                  }
                  function emitEmbeddedStatement(node) {
                      if (node.kind === 180) {
                          write(" ");
                          emit(node);
                      }
                      else {
                          increaseIndent();
                          writeLine();
                          emit(node);
                          decreaseIndent();
                      }
                  }
                  function emitExpressionStatement(node) {
                      emitParenthesizedIf(node.expression, node.expression.kind === 164);
                      write(";");
                  }
                  function emitIfStatement(node) {
                      var endPos = emitToken(84, node.pos);
                      write(" ");
                      endPos = emitToken(16, endPos);
                      emit(node.expression);
                      emitToken(17, node.expression.end);
                      emitEmbeddedStatement(node.thenStatement);
                      if (node.elseStatement) {
                          writeLine();
                          emitToken(76, node.thenStatement.end);
                          if (node.elseStatement.kind === 184) {
                              write(" ");
                              emit(node.elseStatement);
                          }
                          else {
                              emitEmbeddedStatement(node.elseStatement);
                          }
                      }
                  }
                  function emitDoStatement(node) {
                      write("do");
                      emitEmbeddedStatement(node.statement);
                      if (node.statement.kind === 180) {
                          write(" ");
                      }
                      else {
                          writeLine();
                      }
                      write("while (");
                      emit(node.expression);
                      write(");");
                  }
                  function emitWhileStatement(node) {
                      write("while (");
                      emit(node.expression);
                      write(")");
                      emitEmbeddedStatement(node.statement);
                  }
                  function tryEmitStartOfVariableDeclarationList(decl, startPos) {
                      if (shouldHoistVariable(decl, true)) {
                          return false;
                      }
                      var tokenKind = 98;
                      if (decl && languageVersion >= 2) {
                          if (ts.isLet(decl)) {
                              tokenKind = 104;
                          }
                          else if (ts.isConst(decl)) {
                              tokenKind = 70;
                          }
                      }
                      if (startPos !== undefined) {
                          emitToken(tokenKind, startPos);
                          write(" ");
                      }
                      else {
                          switch (tokenKind) {
                              case 98:
                                  write("var ");
                                  break;
                              case 104:
                                  write("let ");
                                  break;
                              case 70:
                                  write("const ");
                                  break;
                          }
                      }
                      return true;
                  }
                  function emitVariableDeclarationListSkippingUninitializedEntries(list) {
                      var started = false;
                      for (var _a = 0, _b = list.declarations; _a < _b.length; _a++) {
                          var decl = _b[_a];
                          if (!decl.initializer) {
                              continue;
                          }
                          if (!started) {
                              started = true;
                          }
                          else {
                              write(", ");
                          }
                          emit(decl);
                      }
                      return started;
                  }
                  function emitForStatement(node) {
                      var endPos = emitToken(82, node.pos);
                      write(" ");
                      endPos = emitToken(16, endPos);
                      if (node.initializer && node.initializer.kind === 200) {
                          var variableDeclarationList = node.initializer;
                          var startIsEmitted = tryEmitStartOfVariableDeclarationList(variableDeclarationList, endPos);
                          if (startIsEmitted) {
                              emitCommaList(variableDeclarationList.declarations);
                          }
                          else {
                              emitVariableDeclarationListSkippingUninitializedEntries(variableDeclarationList);
                          }
                      }
                      else if (node.initializer) {
                          emit(node.initializer);
                      }
                      write(";");
                      emitOptional(" ", node.condition);
                      write(";");
                      emitOptional(" ", node.incrementor);
                      write(")");
                      emitEmbeddedStatement(node.statement);
                  }
                  function emitForInOrForOfStatement(node) {
                      if (languageVersion < 2 && node.kind === 189) {
                          return emitDownLevelForOfStatement(node);
                      }
                      var endPos = emitToken(82, node.pos);
                      write(" ");
                      endPos = emitToken(16, endPos);
                      if (node.initializer.kind === 200) {
                          var variableDeclarationList = node.initializer;
                          if (variableDeclarationList.declarations.length >= 1) {
                              tryEmitStartOfVariableDeclarationList(variableDeclarationList, endPos);
                              emit(variableDeclarationList.declarations[0]);
                          }
                      }
                      else {
                          emit(node.initializer);
                      }
                      if (node.kind === 188) {
                          write(" in ");
                      }
                      else {
                          write(" of ");
                      }
                      emit(node.expression);
                      emitToken(17, node.expression.end);
                      emitEmbeddedStatement(node.statement);
                  }
                  function emitDownLevelForOfStatement(node) {
                      // The following ES6 code:
                      //
                      //    for (let v of expr) { }
                      //
                      // should be emitted as
                      //
                      //    for (let _i = 0, _a = expr; _i < _a.length; _i++) {
                      //        let v = _a[_i];
                      //    }
                      //
                      // where _a and _i are temps emitted to capture the RHS and the counter,
                      // respectively.
                      // When the left hand side is an expression instead of a let declaration,
                      // the "let v" is not emitted.
                      // When the left hand side is a let/const, the v is renamed if there is
                      // another v in scope.
                      // Note that all assignments to the LHS are emitted in the body, including
                      // all destructuring.
                      // Note also that because an extra statement is needed to assign to the LHS,
                      // for-of bodies are always emitted as blocks.
                      var endPos = emitToken(82, node.pos);
                      write(" ");
                      endPos = emitToken(16, endPos);
                      var rhsIsIdentifier = node.expression.kind === 65;
                      var counter = createTempVariable(268435456);
                      var rhsReference = rhsIsIdentifier ? node.expression : createTempVariable(0);
                      emitStart(node.expression);
                      write("var ");
                      emitNodeWithoutSourceMap(counter);
                      write(" = 0");
                      emitEnd(node.expression);
                      if (!rhsIsIdentifier) {
                          write(", ");
                          emitStart(node.expression);
                          emitNodeWithoutSourceMap(rhsReference);
                          write(" = ");
                          emitNodeWithoutSourceMap(node.expression);
                          emitEnd(node.expression);
                      }
                      write("; ");
                      emitStart(node.initializer);
                      emitNodeWithoutSourceMap(counter);
                      write(" < ");
                      emitNodeWithoutSourceMap(rhsReference);
                      write(".length");
                      emitEnd(node.initializer);
                      write("; ");
                      emitStart(node.initializer);
                      emitNodeWithoutSourceMap(counter);
                      write("++");
                      emitEnd(node.initializer);
                      emitToken(17, node.expression.end);
                      write(" {");
                      writeLine();
                      increaseIndent();
                      var rhsIterationValue = createElementAccessExpression(rhsReference, counter);
                      emitStart(node.initializer);
                      if (node.initializer.kind === 200) {
                          write("var ");
                          var variableDeclarationList = node.initializer;
                          if (variableDeclarationList.declarations.length > 0) {
                              var declaration = variableDeclarationList.declarations[0];
                              if (ts.isBindingPattern(declaration.name)) {
                                  emitDestructuring(declaration, false, rhsIterationValue);
                              }
                              else {
                                  emitNodeWithoutSourceMap(declaration);
                                  write(" = ");
                                  emitNodeWithoutSourceMap(rhsIterationValue);
                              }
                          }
                          else {
                              emitNodeWithoutSourceMap(createTempVariable(0));
                              write(" = ");
                              emitNodeWithoutSourceMap(rhsIterationValue);
                          }
                      }
                      else {
                          var assignmentExpression = createBinaryExpression(node.initializer, 53, rhsIterationValue, false);
                          if (node.initializer.kind === 154 || node.initializer.kind === 155) {
                              emitDestructuring(assignmentExpression, true, undefined);
                          }
                          else {
                              emitNodeWithoutSourceMap(assignmentExpression);
                          }
                      }
                      emitEnd(node.initializer);
                      write(";");
                      if (node.statement.kind === 180) {
                          emitLines(node.statement.statements);
                      }
                      else {
                          writeLine();
                          emit(node.statement);
                      }
                      writeLine();
                      decreaseIndent();
                      write("}");
                  }
                  function emitBreakOrContinueStatement(node) {
                      emitToken(node.kind === 191 ? 66 : 71, node.pos);
                      emitOptional(" ", node.label);
                      write(";");
                  }
                  function emitReturnStatement(node) {
                      emitToken(90, node.pos);
                      emitOptional(" ", node.expression);
                      write(";");
                  }
                  function emitWithStatement(node) {
                      write("with (");
                      emit(node.expression);
                      write(")");
                      emitEmbeddedStatement(node.statement);
                  }
                  function emitSwitchStatement(node) {
                      var endPos = emitToken(92, node.pos);
                      write(" ");
                      emitToken(16, endPos);
                      emit(node.expression);
                      endPos = emitToken(17, node.expression.end);
                      write(" ");
                      emitCaseBlock(node.caseBlock, endPos);
                  }
                  function emitCaseBlock(node, startPos) {
                      emitToken(14, startPos);
                      increaseIndent();
                      emitLines(node.clauses);
                      decreaseIndent();
                      writeLine();
                      emitToken(15, node.clauses.end);
                  }
                  function nodeStartPositionsAreOnSameLine(node1, node2) {
                      return ts.getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node1.pos)) ===
                          ts.getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node2.pos));
                  }
                  function nodeEndPositionsAreOnSameLine(node1, node2) {
                      return ts.getLineOfLocalPosition(currentSourceFile, node1.end) ===
                          ts.getLineOfLocalPosition(currentSourceFile, node2.end);
                  }
                  function nodeEndIsOnSameLineAsNodeStart(node1, node2) {
                      return ts.getLineOfLocalPosition(currentSourceFile, node1.end) ===
                          ts.getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node2.pos));
                  }
                  function emitCaseOrDefaultClause(node) {
                      if (node.kind === 221) {
                          write("case ");
                          emit(node.expression);
                          write(":");
                      }
                      else {
                          write("default:");
                      }
                      if (node.statements.length === 1 && nodeStartPositionsAreOnSameLine(node, node.statements[0])) {
                          write(" ");
                          emit(node.statements[0]);
                      }
                      else {
                          increaseIndent();
                          emitLines(node.statements);
                          decreaseIndent();
                      }
                  }
                  function emitThrowStatement(node) {
                      write("throw ");
                      emit(node.expression);
                      write(";");
                  }
                  function emitTryStatement(node) {
                      write("try ");
                      emit(node.tryBlock);
                      emit(node.catchClause);
                      if (node.finallyBlock) {
                          writeLine();
                          write("finally ");
                          emit(node.finallyBlock);
                      }
                  }
                  function emitCatchClause(node) {
                      writeLine();
                      var endPos = emitToken(68, node.pos);
                      write(" ");
                      emitToken(16, endPos);
                      emit(node.variableDeclaration);
                      emitToken(17, node.variableDeclaration ? node.variableDeclaration.end : endPos);
                      write(" ");
                      emitBlock(node.block);
                  }
                  function emitDebuggerStatement(node) {
                      emitToken(72, node.pos);
                      write(";");
                  }
                  function emitLabelledStatement(node) {
                      emit(node.label);
                      write(": ");
                      emit(node.statement);
                  }
                  function getContainingModule(node) {
                      do {
                          node = node.parent;
                      } while (node && node.kind !== 206);
                      return node;
                  }
                  function emitContainingModuleName(node) {
                      var container = getContainingModule(node);
                      write(container ? getGeneratedNameForNode(container) : "exports");
                  }
                  function emitModuleMemberName(node) {
                      emitStart(node.name);
                      if (ts.getCombinedNodeFlags(node) & 1) {
                          var container = getContainingModule(node);
                          if (container) {
                              write(getGeneratedNameForNode(container));
                              write(".");
                          }
                          else if (languageVersion < 2 && compilerOptions.module !== 4) {
                              write("exports.");
                          }
                      }
                      emitNodeWithoutSourceMap(node.name);
                      emitEnd(node.name);
                  }
                  function createVoidZero() {
                      var zero = ts.createSynthesizedNode(7);
                      zero.text = "0";
                      var result = ts.createSynthesizedNode(167);
                      result.expression = zero;
                      return result;
                  }
                  function emitExportMemberAssignment(node) {
                      if (node.flags & 1) {
                          writeLine();
                          emitStart(node);
                          if (compilerOptions.module === 4 && node.parent === currentSourceFile) {
                              write(exportFunctionForFile + "(\"");
                              if (node.flags & 256) {
                                  write("default");
                              }
                              else {
                                  emitNodeWithoutSourceMap(node.name);
                              }
                              write("\", ");
                              emitDeclarationName(node);
                              write(")");
                          }
                          else {
                              if (node.flags & 256) {
                                  if (languageVersion === 0) {
                                      write("exports[\"default\"]");
                                  }
                                  else {
                                      write("exports.default");
                                  }
                              }
                              else {
                                  emitModuleMemberName(node);
                              }
                              write(" = ");
                              emitDeclarationName(node);
                          }
                          emitEnd(node);
                          write(";");
                      }
                  }
                  function emitExportMemberAssignments(name) {
                      if (!exportEquals && exportSpecifiers && ts.hasProperty(exportSpecifiers, name.text)) {
                          for (var _a = 0, _b = exportSpecifiers[name.text]; _a < _b.length; _a++) {
                              var specifier = _b[_a];
                              writeLine();
                              if (compilerOptions.module === 4) {
                                  emitStart(specifier.name);
                                  write(exportFunctionForFile + "(\"");
                                  emitNodeWithoutSourceMap(specifier.name);
                                  write("\", ");
                                  emitExpressionIdentifier(name);
                                  write(")");
                                  emitEnd(specifier.name);
                              }
                              else {
                                  emitStart(specifier.name);
                                  emitContainingModuleName(specifier);
                                  write(".");
                                  emitNodeWithoutSourceMap(specifier.name);
                                  emitEnd(specifier.name);
                                  write(" = ");
                                  emitExpressionIdentifier(name);
                              }
                              write(";");
                          }
                      }
                  }
                  function emitDestructuring(root, isAssignmentExpressionStatement, value) {
                      var emitCount = 0;
                      var canDefineTempVariablesInPlace = false;
                      if (root.kind === 199) {
                          var isExported = ts.getCombinedNodeFlags(root) & 1;
                          var isSourceLevelForSystemModuleKind = shouldHoistDeclarationInSystemJsModule(root);
                          canDefineTempVariablesInPlace = !isExported && !isSourceLevelForSystemModuleKind;
                      }
                      else if (root.kind === 130) {
                          canDefineTempVariablesInPlace = true;
                      }
                      if (root.kind === 170) {
                          emitAssignmentExpression(root);
                      }
                      else {
                          ts.Debug.assert(!isAssignmentExpressionStatement);
                          emitBindingElement(root, value);
                      }
                      function emitAssignment(name, value) {
                          if (emitCount++) {
                              write(", ");
                          }
                          renameNonTopLevelLetAndConst(name);
                          var isVariableDeclarationOrBindingElement = name.parent && (name.parent.kind === 199 || name.parent.kind === 153);
                          var exportChanged = isNameOfExportedSourceLevelDeclarationInSystemExternalModule(name);
                          if (exportChanged) {
                              write(exportFunctionForFile + "(\"");
                              emitNodeWithoutSourceMap(name);
                              write("\", ");
                          }
                          if (isVariableDeclarationOrBindingElement) {
                              emitModuleMemberName(name.parent);
                          }
                          else {
                              emit(name);
                          }
                          write(" = ");
                          emit(value);
                          if (exportChanged) {
                              write(")");
                          }
                      }
                      function ensureIdentifier(expr) {
                          if (expr.kind !== 65) {
                              var identifier = createTempVariable(0);
                              if (!canDefineTempVariablesInPlace) {
                                  recordTempDeclaration(identifier);
                              }
                              emitAssignment(identifier, expr);
                              expr = identifier;
                          }
                          return expr;
                      }
                      function createDefaultValueCheck(value, defaultValue) {
                          value = ensureIdentifier(value);
                          var equals = ts.createSynthesizedNode(170);
                          equals.left = value;
                          equals.operatorToken = ts.createSynthesizedNode(30);
                          equals.right = createVoidZero();
                          return createConditionalExpression(equals, defaultValue, value);
                      }
                      function createConditionalExpression(condition, whenTrue, whenFalse) {
                          var cond = ts.createSynthesizedNode(171);
                          cond.condition = condition;
                          cond.questionToken = ts.createSynthesizedNode(50);
                          cond.whenTrue = whenTrue;
                          cond.colonToken = ts.createSynthesizedNode(51);
                          cond.whenFalse = whenFalse;
                          return cond;
                      }
                      function createNumericLiteral(value) {
                          var node = ts.createSynthesizedNode(7);
                          node.text = "" + value;
                          return node;
                      }
                      function createPropertyAccessForDestructuringProperty(object, propName) {
                          if (propName.kind !== 65) {
                              return createElementAccessExpression(object, propName);
                          }
                          return createPropertyAccessExpression(object, propName);
                      }
                      function createSliceCall(value, sliceIndex) {
                          var call = ts.createSynthesizedNode(158);
                          var sliceIdentifier = ts.createSynthesizedNode(65);
                          sliceIdentifier.text = "slice";
                          call.expression = createPropertyAccessExpression(value, sliceIdentifier);
                          call.arguments = ts.createSynthesizedNodeArray();
                          call.arguments[0] = createNumericLiteral(sliceIndex);
                          return call;
                      }
                      function emitObjectLiteralAssignment(target, value) {
                          var properties = target.properties;
                          if (properties.length !== 1) {
                              value = ensureIdentifier(value);
                          }
                          for (var _a = 0; _a < properties.length; _a++) {
                              var p = properties[_a];
                              if (p.kind === 225 || p.kind === 226) {
                                  var propName = (p.name);
                                  emitDestructuringAssignment(p.initializer || propName, createPropertyAccessForDestructuringProperty(value, propName));
                              }
                          }
                      }
                      function emitArrayLiteralAssignment(target, value) {
                          var elements = target.elements;
                          if (elements.length !== 1) {
                              value = ensureIdentifier(value);
                          }
                          for (var i = 0; i < elements.length; i++) {
                              var e = elements[i];
                              if (e.kind !== 176) {
                                  if (e.kind !== 174) {
                                      emitDestructuringAssignment(e, createElementAccessExpression(value, createNumericLiteral(i)));
                                  }
                                  else if (i === elements.length - 1) {
                                      emitDestructuringAssignment(e.expression, createSliceCall(value, i));
                                  }
                              }
                          }
                      }
                      function emitDestructuringAssignment(target, value) {
                          if (target.kind === 170 && target.operatorToken.kind === 53) {
                              value = createDefaultValueCheck(value, target.right);
                              target = target.left;
                          }
                          if (target.kind === 155) {
                              emitObjectLiteralAssignment(target, value);
                          }
                          else if (target.kind === 154) {
                              emitArrayLiteralAssignment(target, value);
                          }
                          else {
                              emitAssignment(target, value);
                          }
                      }
                      function emitAssignmentExpression(root) {
                          var target = root.left;
                          var value = root.right;
                          if (isAssignmentExpressionStatement) {
                              emitDestructuringAssignment(target, value);
                          }
                          else {
                              if (root.parent.kind !== 162) {
                                  write("(");
                              }
                              value = ensureIdentifier(value);
                              emitDestructuringAssignment(target, value);
                              write(", ");
                              emit(value);
                              if (root.parent.kind !== 162) {
                                  write(")");
                              }
                          }
                      }
                      function emitBindingElement(target, value) {
                          if (target.initializer) {
                              value = value ? createDefaultValueCheck(value, target.initializer) : target.initializer;
                          }
                          else if (!value) {
                              value = createVoidZero();
                          }
                          if (ts.isBindingPattern(target.name)) {
                              var pattern = target.name;
                              var elements = pattern.elements;
                              if (elements.length !== 1) {
                                  value = ensureIdentifier(value);
                              }
                              for (var i = 0; i < elements.length; i++) {
                                  var element = elements[i];
                                  if (pattern.kind === 151) {
                                      var propName = element.propertyName || element.name;
                                      emitBindingElement(element, createPropertyAccessForDestructuringProperty(value, propName));
                                  }
                                  else if (element.kind !== 176) {
                                      if (!element.dotDotDotToken) {
                                          emitBindingElement(element, createElementAccessExpression(value, createNumericLiteral(i)));
                                      }
                                      else if (i === elements.length - 1) {
                                          emitBindingElement(element, createSliceCall(value, i));
                                      }
                                  }
                              }
                          }
                          else {
                              emitAssignment(target.name, value);
                          }
                      }
                  }
                  function emitVariableDeclaration(node) {
                      if (ts.isBindingPattern(node.name)) {
                          if (languageVersion < 2) {
                              emitDestructuring(node, false);
                          }
                          else {
                              emit(node.name);
                              emitOptional(" = ", node.initializer);
                          }
                      }
                      else {
                          renameNonTopLevelLetAndConst(node.name);
                          var initializer = node.initializer;
                          if (!initializer && languageVersion < 2) {
                              var isUninitializedLet = (resolver.getNodeCheckFlags(node) & 256) &&
                                  (getCombinedFlagsForIdentifier(node.name) & 4096);
                              if (isUninitializedLet &&
                                  node.parent.parent.kind !== 188 &&
                                  node.parent.parent.kind !== 189) {
                                  initializer = createVoidZero();
                              }
                          }
                          var exportChanged = isNameOfExportedSourceLevelDeclarationInSystemExternalModule(node.name);
                          if (exportChanged) {
                              write(exportFunctionForFile + "(\"");
                              emitNodeWithoutSourceMap(node.name);
                              write("\", ");
                          }
                          emitModuleMemberName(node);
                          emitOptional(" = ", initializer);
                          if (exportChanged) {
                              write(")");
                          }
                      }
                  }
                  function emitExportVariableAssignments(node) {
                      if (node.kind === 176) {
                          return;
                      }
                      var name = node.name;
                      if (name.kind === 65) {
                          emitExportMemberAssignments(name);
                      }
                      else if (ts.isBindingPattern(name)) {
                          ts.forEach(name.elements, emitExportVariableAssignments);
                      }
                  }
                  function getCombinedFlagsForIdentifier(node) {
                      if (!node.parent || (node.parent.kind !== 199 && node.parent.kind !== 153)) {
                          return 0;
                      }
                      return ts.getCombinedNodeFlags(node.parent);
                  }
                  function renameNonTopLevelLetAndConst(node) {
                      if (languageVersion >= 2 ||
                          ts.nodeIsSynthesized(node) ||
                          node.kind !== 65 ||
                          (node.parent.kind !== 199 && node.parent.kind !== 153)) {
                          return;
                      }
                      var combinedFlags = getCombinedFlagsForIdentifier(node);
                      if (((combinedFlags & 12288) === 0) || combinedFlags & 1) {
                          return;
                      }
                      var list = ts.getAncestor(node, 200);
                      if (list.parent.kind === 181) {
                          var isSourceFileLevelBinding = list.parent.parent.kind === 228;
                          var isModuleLevelBinding = list.parent.parent.kind === 207;
                          var isFunctionLevelBinding = list.parent.parent.kind === 180 && ts.isFunctionLike(list.parent.parent.parent);
                          if (isSourceFileLevelBinding || isModuleLevelBinding || isFunctionLevelBinding) {
                              return;
                          }
                      }
                      var blockScopeContainer = ts.getEnclosingBlockScopeContainer(node);
                      var parent = blockScopeContainer.kind === 228
                          ? blockScopeContainer
                          : blockScopeContainer.parent;
                      if (resolver.resolvesToSomeValue(parent, node.text)) {
                          var variableId = resolver.getBlockScopedVariableId(node);
                          if (!blockScopedVariableToGeneratedName) {
                              blockScopedVariableToGeneratedName = [];
                          }
                          var generatedName = makeUniqueName(node.text);
                          blockScopedVariableToGeneratedName[variableId] = generatedName;
                      }
                  }
                  function isES6ExportedDeclaration(node) {
                      return !!(node.flags & 1) &&
                          languageVersion >= 2 &&
                          node.parent.kind === 228;
                  }
                  function emitVariableStatement(node) {
                      var startIsEmitted = false;
                      if (node.flags & 1) {
                          if (isES6ExportedDeclaration(node)) {
                              write("export ");
                              startIsEmitted = tryEmitStartOfVariableDeclarationList(node.declarationList);
                          }
                      }
                      else {
                          startIsEmitted = tryEmitStartOfVariableDeclarationList(node.declarationList);
                      }
                      if (startIsEmitted) {
                          emitCommaList(node.declarationList.declarations);
                          write(";");
                      }
                      else {
                          var atLeastOneItem = emitVariableDeclarationListSkippingUninitializedEntries(node.declarationList);
                          if (atLeastOneItem) {
                              write(";");
                          }
                      }
                      if (languageVersion < 2 && node.parent === currentSourceFile) {
                          ts.forEach(node.declarationList.declarations, emitExportVariableAssignments);
                      }
                  }
                  function emitParameter(node) {
                      if (languageVersion < 2) {
                          if (ts.isBindingPattern(node.name)) {
                              var name_19 = createTempVariable(0);
                              if (!tempParameters) {
                                  tempParameters = [];
                              }
                              tempParameters.push(name_19);
                              emit(name_19);
                          }
                          else {
                              emit(node.name);
                          }
                      }
                      else {
                          if (node.dotDotDotToken) {
                              write("...");
                          }
                          emit(node.name);
                          emitOptional(" = ", node.initializer);
                      }
                  }
                  function emitDefaultValueAssignments(node) {
                      if (languageVersion < 2) {
                          var tempIndex = 0;
                          ts.forEach(node.parameters, function (p) {
                              if (p.dotDotDotToken) {
                                  return;
                              }
                              if (ts.isBindingPattern(p.name)) {
                                  writeLine();
                                  write("var ");
                                  emitDestructuring(p, false, tempParameters[tempIndex]);
                                  write(";");
                                  tempIndex++;
                              }
                              else if (p.initializer) {
                                  writeLine();
                                  emitStart(p);
                                  write("if (");
                                  emitNodeWithoutSourceMap(p.name);
                                  write(" === void 0)");
                                  emitEnd(p);
                                  write(" { ");
                                  emitStart(p);
                                  emitNodeWithoutSourceMap(p.name);
                                  write(" = ");
                                  emitNodeWithoutSourceMap(p.initializer);
                                  emitEnd(p);
                                  write("; }");
                              }
                          });
                      }
                  }
                  function emitRestParameter(node) {
                      if (languageVersion < 2 && ts.hasRestParameters(node)) {
                          var restIndex = node.parameters.length - 1;
                          var restParam = node.parameters[restIndex];
                          if (ts.isBindingPattern(restParam.name)) {
                              return;
                          }
                          var tempName = createTempVariable(268435456).text;
                          writeLine();
                          emitLeadingComments(restParam);
                          emitStart(restParam);
                          write("var ");
                          emitNodeWithoutSourceMap(restParam.name);
                          write(" = [];");
                          emitEnd(restParam);
                          emitTrailingComments(restParam);
                          writeLine();
                          write("for (");
                          emitStart(restParam);
                          write("var " + tempName + " = " + restIndex + ";");
                          emitEnd(restParam);
                          write(" ");
                          emitStart(restParam);
                          write(tempName + " < arguments.length;");
                          emitEnd(restParam);
                          write(" ");
                          emitStart(restParam);
                          write(tempName + "++");
                          emitEnd(restParam);
                          write(") {");
                          increaseIndent();
                          writeLine();
                          emitStart(restParam);
                          emitNodeWithoutSourceMap(restParam.name);
                          write("[" + tempName + " - " + restIndex + "] = arguments[" + tempName + "];");
                          emitEnd(restParam);
                          decreaseIndent();
                          writeLine();
                          write("}");
                      }
                  }
                  function emitAccessor(node) {
                      write(node.kind === 137 ? "get " : "set ");
                      emit(node.name, false);
                      emitSignatureAndBody(node);
                  }
                  function shouldEmitAsArrowFunction(node) {
                      return node.kind === 164 && languageVersion >= 2;
                  }
                  function emitDeclarationName(node) {
                      if (node.name) {
                          emitNodeWithoutSourceMap(node.name);
                      }
                      else {
                          write(getGeneratedNameForNode(node));
                      }
                  }
                  function shouldEmitFunctionName(node) {
                      if (node.kind === 163) {
                          return !!node.name;
                      }
                      if (node.kind === 201) {
                          return !!node.name || languageVersion < 2;
                      }
                  }
                  function emitFunctionDeclaration(node) {
                      if (ts.nodeIsMissing(node.body)) {
                          return emitOnlyPinnedOrTripleSlashComments(node);
                      }
                      if (node.kind !== 135 && node.kind !== 134) {
                          emitLeadingComments(node);
                      }
                      if (!shouldEmitAsArrowFunction(node)) {
                          if (isES6ExportedDeclaration(node)) {
                              write("export ");
                              if (node.flags & 256) {
                                  write("default ");
                              }
                          }
                          write("function");
                          if (languageVersion >= 2 && node.asteriskToken) {
                              write("*");
                          }
                          write(" ");
                      }
                      if (shouldEmitFunctionName(node)) {
                          emitDeclarationName(node);
                      }
                      emitSignatureAndBody(node);
                      if (languageVersion < 2 && node.kind === 201 && node.parent === currentSourceFile && node.name) {
                          emitExportMemberAssignments(node.name);
                      }
                      if (node.kind !== 135 && node.kind !== 134) {
                          emitTrailingComments(node);
                      }
                  }
                  function emitCaptureThisForNodeIfNecessary(node) {
                      if (resolver.getNodeCheckFlags(node) & 4) {
                          writeLine();
                          emitStart(node);
                          write("var _this = this;");
                          emitEnd(node);
                      }
                  }
                  function emitSignatureParameters(node) {
                      increaseIndent();
                      write("(");
                      if (node) {
                          var parameters = node.parameters;
                          var omitCount = languageVersion < 2 && ts.hasRestParameters(node) ? 1 : 0;
                          emitList(parameters, 0, parameters.length - omitCount, false, false);
                      }
                      write(")");
                      decreaseIndent();
                  }
                  function emitSignatureParametersForArrow(node) {
                      if (node.parameters.length === 1 && node.pos === node.parameters[0].pos) {
                          emit(node.parameters[0]);
                          return;
                      }
                      emitSignatureParameters(node);
                  }
                  function emitSignatureAndBody(node) {
                      var saveTempFlags = tempFlags;
                      var saveTempVariables = tempVariables;
                      var saveTempParameters = tempParameters;
                      tempFlags = 0;
                      tempVariables = undefined;
                      tempParameters = undefined;
                      if (shouldEmitAsArrowFunction(node)) {
                          emitSignatureParametersForArrow(node);
                          write(" =>");
                      }
                      else {
                          emitSignatureParameters(node);
                      }
                      if (!node.body) {
                          write(" { }");
                      }
                      else if (node.body.kind === 180) {
                          emitBlockFunctionBody(node, node.body);
                      }
                      else {
                          emitExpressionFunctionBody(node, node.body);
                      }
                      if (!isES6ExportedDeclaration(node)) {
                          emitExportMemberAssignment(node);
                      }
                      tempFlags = saveTempFlags;
                      tempVariables = saveTempVariables;
                      tempParameters = saveTempParameters;
                  }
                  function emitFunctionBodyPreamble(node) {
                      emitCaptureThisForNodeIfNecessary(node);
                      emitDefaultValueAssignments(node);
                      emitRestParameter(node);
                  }
                  function emitExpressionFunctionBody(node, body) {
                      if (languageVersion < 2) {
                          emitDownLevelExpressionFunctionBody(node, body);
                          return;
                      }
                      write(" ");
                      var current = body;
                      while (current.kind === 161) {
                          current = current.expression;
                      }
                      emitParenthesizedIf(body, current.kind === 155);
                  }
                  function emitDownLevelExpressionFunctionBody(node, body) {
                      write(" {");
                      scopeEmitStart(node);
                      increaseIndent();
                      var outPos = writer.getTextPos();
                      emitDetachedComments(node.body);
                      emitFunctionBodyPreamble(node);
                      var preambleEmitted = writer.getTextPos() !== outPos;
                      decreaseIndent();
                      if (!preambleEmitted && nodeStartPositionsAreOnSameLine(node, body)) {
                          write(" ");
                          emitStart(body);
                          write("return ");
                          emit(body);
                          emitEnd(body);
                          write(";");
                          emitTempDeclarations(false);
                          write(" ");
                      }
                      else {
                          increaseIndent();
                          writeLine();
                          emitLeadingComments(node.body);
                          write("return ");
                          emit(body);
                          write(";");
                          emitTrailingComments(node.body);
                          emitTempDeclarations(true);
                          decreaseIndent();
                          writeLine();
                      }
                      emitStart(node.body);
                      write("}");
                      emitEnd(node.body);
                      scopeEmitEnd();
                  }
                  function emitBlockFunctionBody(node, body) {
                      write(" {");
                      scopeEmitStart(node);
                      var initialTextPos = writer.getTextPos();
                      increaseIndent();
                      emitDetachedComments(body.statements);
                      var startIndex = emitDirectivePrologues(body.statements, true);
                      emitFunctionBodyPreamble(node);
                      decreaseIndent();
                      var preambleEmitted = writer.getTextPos() !== initialTextPos;
                      if (!preambleEmitted && nodeEndIsOnSameLineAsNodeStart(body, body)) {
                          for (var _a = 0, _b = body.statements; _a < _b.length; _a++) {
                              var statement = _b[_a];
                              write(" ");
                              emit(statement);
                          }
                          emitTempDeclarations(false);
                          write(" ");
                          emitLeadingCommentsOfPosition(body.statements.end);
                      }
                      else {
                          increaseIndent();
                          emitLinesStartingAt(body.statements, startIndex);
                          emitTempDeclarations(true);
                          writeLine();
                          emitLeadingCommentsOfPosition(body.statements.end);
                          decreaseIndent();
                      }
                      emitToken(15, body.statements.end);
                      scopeEmitEnd();
                  }
                  function findInitialSuperCall(ctor) {
                      if (ctor.body) {
                          var statement = ctor.body.statements[0];
                          if (statement && statement.kind === 183) {
                              var expr = statement.expression;
                              if (expr && expr.kind === 158) {
                                  var func = expr.expression;
                                  if (func && func.kind === 91) {
                                      return statement;
                                  }
                              }
                          }
                      }
                  }
                  function emitParameterPropertyAssignments(node) {
                      ts.forEach(node.parameters, function (param) {
                          if (param.flags & 112) {
                              writeLine();
                              emitStart(param);
                              emitStart(param.name);
                              write("this.");
                              emitNodeWithoutSourceMap(param.name);
                              emitEnd(param.name);
                              write(" = ");
                              emit(param.name);
                              write(";");
                              emitEnd(param);
                          }
                      });
                  }
                  function emitMemberAccessForPropertyName(memberName) {
                      if (memberName.kind === 8 || memberName.kind === 7) {
                          write("[");
                          emitNodeWithoutSourceMap(memberName);
                          write("]");
                      }
                      else if (memberName.kind === 128) {
                          emitComputedPropertyName(memberName);
                      }
                      else {
                          write(".");
                          emitNodeWithoutSourceMap(memberName);
                      }
                  }
                  function getInitializedProperties(node, isStatic) {
                      var properties = [];
                      for (var _a = 0, _b = node.members; _a < _b.length; _a++) {
                          var member = _b[_a];
                          if (member.kind === 133 && isStatic === ((member.flags & 128) !== 0) && member.initializer) {
                              properties.push(member);
                          }
                      }
                      return properties;
                  }
                  function emitPropertyDeclarations(node, properties) {
                      for (var _a = 0; _a < properties.length; _a++) {
                          var property = properties[_a];
                          emitPropertyDeclaration(node, property);
                      }
                  }
                  function emitPropertyDeclaration(node, property, receiver, isExpression) {
                      writeLine();
                      emitLeadingComments(property);
                      emitStart(property);
                      emitStart(property.name);
                      if (receiver) {
                          emit(receiver);
                      }
                      else {
                          if (property.flags & 128) {
                              emitDeclarationName(node);
                          }
                          else {
                              write("this");
                          }
                      }
                      emitMemberAccessForPropertyName(property.name);
                      emitEnd(property.name);
                      write(" = ");
                      emit(property.initializer);
                      if (!isExpression) {
                          write(";");
                      }
                      emitEnd(property);
                      emitTrailingComments(property);
                  }
                  function emitMemberFunctionsForES5AndLower(node) {
                      ts.forEach(node.members, function (member) {
                          if (member.kind === 179) {
                              writeLine();
                              write(";");
                          }
                          else if (member.kind === 135 || node.kind === 134) {
                              if (!member.body) {
                                  return emitOnlyPinnedOrTripleSlashComments(member);
                              }
                              writeLine();
                              emitLeadingComments(member);
                              emitStart(member);
                              emitStart(member.name);
                              emitClassMemberPrefix(node, member);
                              emitMemberAccessForPropertyName(member.name);
                              emitEnd(member.name);
                              write(" = ");
                              emitStart(member);
                              emitFunctionDeclaration(member);
                              emitEnd(member);
                              emitEnd(member);
                              write(";");
                              emitTrailingComments(member);
                          }
                          else if (member.kind === 137 || member.kind === 138) {
                              var accessors = ts.getAllAccessorDeclarations(node.members, member);
                              if (member === accessors.firstAccessor) {
                                  writeLine();
                                  emitStart(member);
                                  write("Object.defineProperty(");
                                  emitStart(member.name);
                                  emitClassMemberPrefix(node, member);
                                  write(", ");
                                  emitExpressionForPropertyName(member.name);
                                  emitEnd(member.name);
                                  write(", {");
                                  increaseIndent();
                                  if (accessors.getAccessor) {
                                      writeLine();
                                      emitLeadingComments(accessors.getAccessor);
                                      write("get: ");
                                      emitStart(accessors.getAccessor);
                                      write("function ");
                                      emitSignatureAndBody(accessors.getAccessor);
                                      emitEnd(accessors.getAccessor);
                                      emitTrailingComments(accessors.getAccessor);
                                      write(",");
                                  }
                                  if (accessors.setAccessor) {
                                      writeLine();
                                      emitLeadingComments(accessors.setAccessor);
                                      write("set: ");
                                      emitStart(accessors.setAccessor);
                                      write("function ");
                                      emitSignatureAndBody(accessors.setAccessor);
                                      emitEnd(accessors.setAccessor);
                                      emitTrailingComments(accessors.setAccessor);
                                      write(",");
                                  }
                                  writeLine();
                                  write("enumerable: true,");
                                  writeLine();
                                  write("configurable: true");
                                  decreaseIndent();
                                  writeLine();
                                  write("});");
                                  emitEnd(member);
                              }
                          }
                      });
                  }
                  function emitMemberFunctionsForES6AndHigher(node) {
                      for (var _a = 0, _b = node.members; _a < _b.length; _a++) {
                          var member = _b[_a];
                          if ((member.kind === 135 || node.kind === 134) && !member.body) {
                              emitOnlyPinnedOrTripleSlashComments(member);
                          }
                          else if (member.kind === 135 ||
                              member.kind === 137 ||
                              member.kind === 138) {
                              writeLine();
                              emitLeadingComments(member);
                              emitStart(member);
                              if (member.flags & 128) {
                                  write("static ");
                              }
                              if (member.kind === 137) {
                                  write("get ");
                              }
                              else if (member.kind === 138) {
                                  write("set ");
                              }
                              if (member.asteriskToken) {
                                  write("*");
                              }
                              emit(member.name);
                              emitSignatureAndBody(member);
                              emitEnd(member);
                              emitTrailingComments(member);
                          }
                          else if (member.kind === 179) {
                              writeLine();
                              write(";");
                          }
                      }
                  }
                  function emitConstructor(node, baseTypeElement) {
                      var saveTempFlags = tempFlags;
                      var saveTempVariables = tempVariables;
                      var saveTempParameters = tempParameters;
                      tempFlags = 0;
                      tempVariables = undefined;
                      tempParameters = undefined;
                      emitConstructorWorker(node, baseTypeElement);
                      tempFlags = saveTempFlags;
                      tempVariables = saveTempVariables;
                      tempParameters = saveTempParameters;
                  }
                  function emitConstructorWorker(node, baseTypeElement) {
                      var hasInstancePropertyWithInitializer = false;
                      ts.forEach(node.members, function (member) {
                          if (member.kind === 136 && !member.body) {
                              emitOnlyPinnedOrTripleSlashComments(member);
                          }
                          if (member.kind === 133 && member.initializer && (member.flags & 128) === 0) {
                              hasInstancePropertyWithInitializer = true;
                          }
                      });
                      var ctor = ts.getFirstConstructorWithBody(node);
                      if (languageVersion >= 2 && !ctor && !hasInstancePropertyWithInitializer) {
                          return;
                      }
                      if (ctor) {
                          emitLeadingComments(ctor);
                      }
                      emitStart(ctor || node);
                      if (languageVersion < 2) {
                          write("function ");
                          emitDeclarationName(node);
                          emitSignatureParameters(ctor);
                      }
                      else {
                          write("constructor");
                          if (ctor) {
                              emitSignatureParameters(ctor);
                          }
                          else {
                              if (baseTypeElement) {
                                  write("(...args)");
                              }
                              else {
                                  write("()");
                              }
                          }
                      }
                      write(" {");
                      scopeEmitStart(node, "constructor");
                      increaseIndent();
                      if (ctor) {
                          emitDetachedComments(ctor.body.statements);
                      }
                      emitCaptureThisForNodeIfNecessary(node);
                      if (ctor) {
                          emitDefaultValueAssignments(ctor);
                          emitRestParameter(ctor);
                          if (baseTypeElement) {
                              var superCall = findInitialSuperCall(ctor);
                              if (superCall) {
                                  writeLine();
                                  emit(superCall);
                              }
                          }
                          emitParameterPropertyAssignments(ctor);
                      }
                      else {
                          if (baseTypeElement) {
                              writeLine();
                              emitStart(baseTypeElement);
                              if (languageVersion < 2) {
                                  write("_super.apply(this, arguments);");
                              }
                              else {
                                  write("super(...args);");
                              }
                              emitEnd(baseTypeElement);
                          }
                      }
                      emitPropertyDeclarations(node, getInitializedProperties(node, false));
                      if (ctor) {
                          var statements = ctor.body.statements;
                          if (superCall) {
                              statements = statements.slice(1);
                          }
                          emitLines(statements);
                      }
                      emitTempDeclarations(true);
                      writeLine();
                      if (ctor) {
                          emitLeadingCommentsOfPosition(ctor.body.statements.end);
                      }
                      decreaseIndent();
                      emitToken(15, ctor ? ctor.body.statements.end : node.members.end);
                      scopeEmitEnd();
                      emitEnd(ctor || node);
                      if (ctor) {
                          emitTrailingComments(ctor);
                      }
                  }
                  function emitClassExpression(node) {
                      return emitClassLikeDeclaration(node);
                  }
                  function emitClassDeclaration(node) {
                      return emitClassLikeDeclaration(node);
                  }
                  function emitClassLikeDeclaration(node) {
                      if (languageVersion < 2) {
                          emitClassLikeDeclarationBelowES6(node);
                      }
                      else {
                          emitClassLikeDeclarationForES6AndHigher(node);
                      }
                  }
                  function emitClassLikeDeclarationForES6AndHigher(node) {
                      var thisNodeIsDecorated = ts.nodeIsDecorated(node);
                      if (node.kind === 202) {
                          if (thisNodeIsDecorated) {
                              if (isES6ExportedDeclaration(node) && !(node.flags & 256)) {
                                  write("export ");
                              }
                              write("let ");
                              emitDeclarationName(node);
                              write(" = ");
                          }
                          else if (isES6ExportedDeclaration(node)) {
                              write("export ");
                              if (node.flags & 256) {
                                  write("default ");
                              }
                          }
                      }
                      var staticProperties = getInitializedProperties(node, true);
                      var isClassExpressionWithStaticProperties = staticProperties.length > 0 && node.kind === 175;
                      var tempVariable;
                      if (isClassExpressionWithStaticProperties) {
                          tempVariable = createAndRecordTempVariable(0);
                          write("(");
                          increaseIndent();
                          emit(tempVariable);
                          write(" = ");
                      }
                      write("class");
                      if ((node.name || !(node.flags & 256)) && !thisNodeIsDecorated) {
                          write(" ");
                          emitDeclarationName(node);
                      }
                      var baseTypeNode = ts.getClassExtendsHeritageClauseElement(node);
                      if (baseTypeNode) {
                          write(" extends ");
                          emit(baseTypeNode.expression);
                      }
                      write(" {");
                      increaseIndent();
                      scopeEmitStart(node);
                      writeLine();
                      emitConstructor(node, baseTypeNode);
                      emitMemberFunctionsForES6AndHigher(node);
                      decreaseIndent();
                      writeLine();
                      emitToken(15, node.members.end);
                      scopeEmitEnd();
                      if (thisNodeIsDecorated) {
                          write(";");
                      }
                      if (isClassExpressionWithStaticProperties) {
                          for (var _a = 0; _a < staticProperties.length; _a++) {
                              var property = staticProperties[_a];
                              write(",");
                              writeLine();
                              emitPropertyDeclaration(node, property, tempVariable, true);
                          }
                          write(",");
                          writeLine();
                          emit(tempVariable);
                          decreaseIndent();
                          write(")");
                      }
                      else {
                          writeLine();
                          emitPropertyDeclarations(node, staticProperties);
                          emitDecoratorsOfClass(node);
                      }
                      if (!isES6ExportedDeclaration(node) && (node.flags & 1)) {
                          writeLine();
                          emitStart(node);
                          emitModuleMemberName(node);
                          write(" = ");
                          emitDeclarationName(node);
                          emitEnd(node);
                          write(";");
                      }
                      else if (isES6ExportedDeclaration(node) && (node.flags & 256) && thisNodeIsDecorated) {
                          writeLine();
                          write("export default ");
                          emitDeclarationName(node);
                          write(";");
                      }
                  }
                  function emitClassLikeDeclarationBelowES6(node) {
                      if (node.kind === 202) {
                          if (!shouldHoistDeclarationInSystemJsModule(node)) {
                              write("var ");
                          }
                          emitDeclarationName(node);
                          write(" = ");
                      }
                      write("(function (");
                      var baseTypeNode = ts.getClassExtendsHeritageClauseElement(node);
                      if (baseTypeNode) {
                          write("_super");
                      }
                      write(") {");
                      var saveTempFlags = tempFlags;
                      var saveTempVariables = tempVariables;
                      var saveTempParameters = tempParameters;
                      var saveComputedPropertyNamesToGeneratedNames = computedPropertyNamesToGeneratedNames;
                      tempFlags = 0;
                      tempVariables = undefined;
                      tempParameters = undefined;
                      computedPropertyNamesToGeneratedNames = undefined;
                      increaseIndent();
                      scopeEmitStart(node);
                      if (baseTypeNode) {
                          writeLine();
                          emitStart(baseTypeNode);
                          write("__extends(");
                          emitDeclarationName(node);
                          write(", _super);");
                          emitEnd(baseTypeNode);
                      }
                      writeLine();
                      emitConstructor(node, baseTypeNode);
                      emitMemberFunctionsForES5AndLower(node);
                      emitPropertyDeclarations(node, getInitializedProperties(node, true));
                      writeLine();
                      emitDecoratorsOfClass(node);
                      writeLine();
                      emitToken(15, node.members.end, function () {
                          write("return ");
                          emitDeclarationName(node);
                      });
                      write(";");
                      emitTempDeclarations(true);
                      tempFlags = saveTempFlags;
                      tempVariables = saveTempVariables;
                      tempParameters = saveTempParameters;
                      computedPropertyNamesToGeneratedNames = saveComputedPropertyNamesToGeneratedNames;
                      decreaseIndent();
                      writeLine();
                      emitToken(15, node.members.end);
                      scopeEmitEnd();
                      emitStart(node);
                      write(")(");
                      if (baseTypeNode) {
                          emit(baseTypeNode.expression);
                      }
                      write(")");
                      if (node.kind === 202) {
                          write(";");
                      }
                      emitEnd(node);
                      if (node.kind === 202) {
                          emitExportMemberAssignment(node);
                      }
                      if (languageVersion < 2 && node.parent === currentSourceFile && node.name) {
                          emitExportMemberAssignments(node.name);
                      }
                  }
                  function emitClassMemberPrefix(node, member) {
                      emitDeclarationName(node);
                      if (!(member.flags & 128)) {
                          write(".prototype");
                      }
                  }
                  function emitDecoratorsOfClass(node) {
                      emitDecoratorsOfMembers(node, 0);
                      emitDecoratorsOfMembers(node, 128);
                      emitDecoratorsOfConstructor(node);
                  }
                  function emitDecoratorsOfConstructor(node) {
                      var decorators = node.decorators;
                      var constructor = ts.getFirstConstructorWithBody(node);
                      var hasDecoratedParameters = constructor && ts.forEach(constructor.parameters, ts.nodeIsDecorated);
                      if (!decorators && !hasDecoratedParameters) {
                          return;
                      }
                      writeLine();
                      emitStart(node);
                      emitDeclarationName(node);
                      write(" = __decorate([");
                      increaseIndent();
                      writeLine();
                      var decoratorCount = decorators ? decorators.length : 0;
                      var argumentsWritten = emitList(decorators, 0, decoratorCount, true, false, false, true, function (decorator) {
                          emitStart(decorator);
                          emit(decorator.expression);
                          emitEnd(decorator);
                      });
                      argumentsWritten += emitDecoratorsOfParameters(constructor, argumentsWritten > 0);
                      emitSerializedTypeMetadata(node, argumentsWritten >= 0);
                      decreaseIndent();
                      writeLine();
                      write("], ");
                      emitDeclarationName(node);
                      write(");");
                      emitEnd(node);
                      writeLine();
                  }
                  function emitDecoratorsOfMembers(node, staticFlag) {
                      for (var _a = 0, _b = node.members; _a < _b.length; _a++) {
                          var member = _b[_a];
                          if ((member.flags & 128) !== staticFlag) {
                              continue;
                          }
                          if (!ts.nodeCanBeDecorated(member)) {
                              continue;
                          }
                          if (!ts.nodeOrChildIsDecorated(member)) {
                              continue;
                          }
                          var decorators = void 0;
                          var functionLikeMember = void 0;
                          if (ts.isAccessor(member)) {
                              var accessors = ts.getAllAccessorDeclarations(node.members, member);
                              if (member !== accessors.firstAccessor) {
                                  continue;
                              }
                              decorators = accessors.firstAccessor.decorators;
                              if (!decorators && accessors.secondAccessor) {
                                  decorators = accessors.secondAccessor.decorators;
                              }
                              functionLikeMember = accessors.setAccessor;
                          }
                          else {
                              decorators = member.decorators;
                              if (member.kind === 135) {
                                  functionLikeMember = member;
                              }
                          }
                          writeLine();
                          emitStart(member);
                          if (member.kind !== 133) {
                              write("Object.defineProperty(");
                              emitStart(member.name);
                              emitClassMemberPrefix(node, member);
                              write(", ");
                              emitExpressionForPropertyName(member.name);
                              emitEnd(member.name);
                              write(",");
                              increaseIndent();
                              writeLine();
                          }
                          write("__decorate([");
                          increaseIndent();
                          writeLine();
                          var decoratorCount = decorators ? decorators.length : 0;
                          var argumentsWritten = emitList(decorators, 0, decoratorCount, true, false, false, true, function (decorator) {
                              emitStart(decorator);
                              emit(decorator.expression);
                              emitEnd(decorator);
                          });
                          argumentsWritten += emitDecoratorsOfParameters(functionLikeMember, argumentsWritten > 0);
                          emitSerializedTypeMetadata(member, argumentsWritten > 0);
                          decreaseIndent();
                          writeLine();
                          write("], ");
                          emitStart(member.name);
                          emitClassMemberPrefix(node, member);
                          write(", ");
                          emitExpressionForPropertyName(member.name);
                          emitEnd(member.name);
                          if (member.kind !== 133) {
                              write(", Object.getOwnPropertyDescriptor(");
                              emitStart(member.name);
                              emitClassMemberPrefix(node, member);
                              write(", ");
                              emitExpressionForPropertyName(member.name);
                              emitEnd(member.name);
                              write("))");
                              decreaseIndent();
                          }
                          write(");");
                          emitEnd(member);
                          writeLine();
                      }
                  }
                  function emitDecoratorsOfParameters(node, leadingComma) {
                      var argumentsWritten = 0;
                      if (node) {
                          var parameterIndex = 0;
                          for (var _a = 0, _b = node.parameters; _a < _b.length; _a++) {
                              var parameter = _b[_a];
                              if (ts.nodeIsDecorated(parameter)) {
                                  var decorators = parameter.decorators;
                                  argumentsWritten += emitList(decorators, 0, decorators.length, true, false, leadingComma, true, function (decorator) {
                                      emitStart(decorator);
                                      write("__param(" + parameterIndex + ", ");
                                      emit(decorator.expression);
                                      write(")");
                                      emitEnd(decorator);
                                  });
                                  leadingComma = true;
                              }
                              ++parameterIndex;
                          }
                      }
                      return argumentsWritten;
                  }
                  function shouldEmitTypeMetadata(node) {
                      switch (node.kind) {
                          case 135:
                          case 137:
                          case 138:
                          case 133:
                              return true;
                      }
                      return false;
                  }
                  function shouldEmitReturnTypeMetadata(node) {
                      switch (node.kind) {
                          case 135:
                              return true;
                      }
                      return false;
                  }
                  function shouldEmitParamTypesMetadata(node) {
                      switch (node.kind) {
                          case 202:
                          case 135:
                          case 138:
                              return true;
                      }
                      return false;
                  }
                  function emitSerializedTypeMetadata(node, writeComma) {
                      var argumentsWritten = 0;
                      if (compilerOptions.emitDecoratorMetadata) {
                          if (shouldEmitTypeMetadata(node)) {
                              var serializedType = resolver.serializeTypeOfNode(node, getGeneratedNameForNode);
                              if (serializedType) {
                                  if (writeComma) {
                                      write(", ");
                                  }
                                  writeLine();
                                  write("__metadata('design:type', ");
                                  emitSerializedType(node, serializedType);
                                  write(")");
                                  argumentsWritten++;
                              }
                          }
                          if (shouldEmitParamTypesMetadata(node)) {
                              var serializedTypes = resolver.serializeParameterTypesOfNode(node, getGeneratedNameForNode);
                              if (serializedTypes) {
                                  if (writeComma || argumentsWritten) {
                                      write(", ");
                                  }
                                  writeLine();
                                  write("__metadata('design:paramtypes', [");
                                  for (var i = 0; i < serializedTypes.length; ++i) {
                                      if (i > 0) {
                                          write(", ");
                                      }
                                      emitSerializedType(node, serializedTypes[i]);
                                  }
                                  write("])");
                                  argumentsWritten++;
                              }
                          }
                          if (shouldEmitReturnTypeMetadata(node)) {
                              var serializedType = resolver.serializeReturnTypeOfNode(node, getGeneratedNameForNode);
                              if (serializedType) {
                                  if (writeComma || argumentsWritten) {
                                      write(", ");
                                  }
                                  writeLine();
                                  write("__metadata('design:returntype', ");
                                  emitSerializedType(node, serializedType);
                                  write(")");
                                  argumentsWritten++;
                              }
                          }
                      }
                      return argumentsWritten;
                  }
                  function serializeTypeNameSegment(location, path, index) {
                      switch (index) {
                          case 0:
                              return "typeof " + path[index] + " !== 'undefined' && " + path[index];
                          case 1:
                              return serializeTypeNameSegment(location, path, index - 1) + "." + path[index];
                          default:
                              var temp = createAndRecordTempVariable(0).text;
                              return "(" + temp + " = " + serializeTypeNameSegment(location, path, index - 1) + ") && " + temp + "." + path[index];
                      }
                  }
                  function emitSerializedType(location, name) {
                      if (typeof name === "string") {
                          write(name);
                          return;
                      }
                      else {
                          ts.Debug.assert(name.length > 0, "Invalid serialized type name");
                          write("(" + serializeTypeNameSegment(location, name, name.length - 1) + ") || Object");
                      }
                  }
                  function emitInterfaceDeclaration(node) {
                      emitOnlyPinnedOrTripleSlashComments(node);
                  }
                  function shouldEmitEnumDeclaration(node) {
                      var isConstEnum = ts.isConst(node);
                      return !isConstEnum || compilerOptions.preserveConstEnums || compilerOptions.separateCompilation;
                  }
                  function emitEnumDeclaration(node) {
                      if (!shouldEmitEnumDeclaration(node)) {
                          return;
                      }
                      if (!shouldHoistDeclarationInSystemJsModule(node)) {
                          if (!(node.flags & 1) || isES6ExportedDeclaration(node)) {
                              emitStart(node);
                              if (isES6ExportedDeclaration(node)) {
                                  write("export ");
                              }
                              write("var ");
                              emit(node.name);
                              emitEnd(node);
                              write(";");
                          }
                      }
                      writeLine();
                      emitStart(node);
                      write("(function (");
                      emitStart(node.name);
                      write(getGeneratedNameForNode(node));
                      emitEnd(node.name);
                      write(") {");
                      increaseIndent();
                      scopeEmitStart(node);
                      emitLines(node.members);
                      decreaseIndent();
                      writeLine();
                      emitToken(15, node.members.end);
                      scopeEmitEnd();
                      write(")(");
                      emitModuleMemberName(node);
                      write(" || (");
                      emitModuleMemberName(node);
                      write(" = {}));");
                      emitEnd(node);
                      if (!isES6ExportedDeclaration(node) && node.flags & 1 && !shouldHoistDeclarationInSystemJsModule(node)) {
                          writeLine();
                          emitStart(node);
                          write("var ");
                          emit(node.name);
                          write(" = ");
                          emitModuleMemberName(node);
                          emitEnd(node);
                          write(";");
                      }
                      if (languageVersion < 2 && node.parent === currentSourceFile) {
                          if (compilerOptions.module === 4 && (node.flags & 1)) {
                              writeLine();
                              write(exportFunctionForFile + "(\"");
                              emitDeclarationName(node);
                              write("\", ");
                              emitDeclarationName(node);
                              write(")");
                          }
                          emitExportMemberAssignments(node.name);
                      }
                  }
                  function emitEnumMember(node) {
                      var enumParent = node.parent;
                      emitStart(node);
                      write(getGeneratedNameForNode(enumParent));
                      write("[");
                      write(getGeneratedNameForNode(enumParent));
                      write("[");
                      emitExpressionForPropertyName(node.name);
                      write("] = ");
                      writeEnumMemberDeclarationValue(node);
                      write("] = ");
                      emitExpressionForPropertyName(node.name);
                      emitEnd(node);
                      write(";");
                  }
                  function writeEnumMemberDeclarationValue(member) {
                      var value = resolver.getConstantValue(member);
                      if (value !== undefined) {
                          write(value.toString());
                          return;
                      }
                      else if (member.initializer) {
                          emit(member.initializer);
                      }
                      else {
                          write("undefined");
                      }
                  }
                  function getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration) {
                      if (moduleDeclaration.body.kind === 206) {
                          var recursiveInnerModule = getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration.body);
                          return recursiveInnerModule || moduleDeclaration.body;
                      }
                  }
                  function shouldEmitModuleDeclaration(node) {
                      return ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums || compilerOptions.separateCompilation);
                  }
                  function isModuleMergedWithES6Class(node) {
                      return languageVersion === 2 && !!(resolver.getNodeCheckFlags(node) & 2048);
                  }
                  function emitModuleDeclaration(node) {
                      var shouldEmit = shouldEmitModuleDeclaration(node);
                      if (!shouldEmit) {
                          return emitOnlyPinnedOrTripleSlashComments(node);
                      }
                      var hoistedInDeclarationScope = shouldHoistDeclarationInSystemJsModule(node);
                      var emitVarForModule = !hoistedInDeclarationScope && !isModuleMergedWithES6Class(node);
                      if (emitVarForModule) {
                          emitStart(node);
                          if (isES6ExportedDeclaration(node)) {
                              write("export ");
                          }
                          write("var ");
                          emit(node.name);
                          write(";");
                          emitEnd(node);
                          writeLine();
                      }
                      emitStart(node);
                      write("(function (");
                      emitStart(node.name);
                      write(getGeneratedNameForNode(node));
                      emitEnd(node.name);
                      write(") ");
                      if (node.body.kind === 207) {
                          var saveTempFlags = tempFlags;
                          var saveTempVariables = tempVariables;
                          tempFlags = 0;
                          tempVariables = undefined;
                          emit(node.body);
                          tempFlags = saveTempFlags;
                          tempVariables = saveTempVariables;
                      }
                      else {
                          write("{");
                          increaseIndent();
                          scopeEmitStart(node);
                          emitCaptureThisForNodeIfNecessary(node);
                          writeLine();
                          emit(node.body);
                          decreaseIndent();
                          writeLine();
                          var moduleBlock = getInnerMostModuleDeclarationFromDottedModule(node).body;
                          emitToken(15, moduleBlock.statements.end);
                          scopeEmitEnd();
                      }
                      write(")(");
                      if ((node.flags & 1) && !isES6ExportedDeclaration(node)) {
                          emit(node.name);
                          write(" = ");
                      }
                      emitModuleMemberName(node);
                      write(" || (");
                      emitModuleMemberName(node);
                      write(" = {}));");
                      emitEnd(node);
                      if (!isES6ExportedDeclaration(node) && node.name.kind === 65 && node.parent === currentSourceFile) {
                          if (compilerOptions.module === 4 && (node.flags & 1)) {
                              writeLine();
                              write(exportFunctionForFile + "(\"");
                              emitDeclarationName(node);
                              write("\", ");
                              emitDeclarationName(node);
                              write(")");
                          }
                          emitExportMemberAssignments(node.name);
                      }
                  }
                  function emitRequire(moduleName) {
                      if (moduleName.kind === 8) {
                          write("require(");
                          emitStart(moduleName);
                          emitLiteral(moduleName);
                          emitEnd(moduleName);
                          emitToken(17, moduleName.end);
                      }
                      else {
                          write("require()");
                      }
                  }
                  function getNamespaceDeclarationNode(node) {
                      if (node.kind === 209) {
                          return node;
                      }
                      var importClause = node.importClause;
                      if (importClause && importClause.namedBindings && importClause.namedBindings.kind === 212) {
                          return importClause.namedBindings;
                      }
                  }
                  function isDefaultImport(node) {
                      return node.kind === 210 && node.importClause && !!node.importClause.name;
                  }
                  function emitExportImportAssignments(node) {
                      if (ts.isAliasSymbolDeclaration(node) && resolver.isValueAliasDeclaration(node)) {
                          emitExportMemberAssignments(node.name);
                      }
                      ts.forEachChild(node, emitExportImportAssignments);
                  }
                  function emitImportDeclaration(node) {
                      if (languageVersion < 2) {
                          return emitExternalImportDeclaration(node);
                      }
                      if (node.importClause) {
                          var shouldEmitDefaultBindings = resolver.isReferencedAliasDeclaration(node.importClause);
                          var shouldEmitNamedBindings = node.importClause.namedBindings && resolver.isReferencedAliasDeclaration(node.importClause.namedBindings, true);
                          if (shouldEmitDefaultBindings || shouldEmitNamedBindings) {
                              write("import ");
                              emitStart(node.importClause);
                              if (shouldEmitDefaultBindings) {
                                  emit(node.importClause.name);
                                  if (shouldEmitNamedBindings) {
                                      write(", ");
                                  }
                              }
                              if (shouldEmitNamedBindings) {
                                  emitLeadingComments(node.importClause.namedBindings);
                                  emitStart(node.importClause.namedBindings);
                                  if (node.importClause.namedBindings.kind === 212) {
                                      write("* as ");
                                      emit(node.importClause.namedBindings.name);
                                  }
                                  else {
                                      write("{ ");
                                      emitExportOrImportSpecifierList(node.importClause.namedBindings.elements, resolver.isReferencedAliasDeclaration);
                                      write(" }");
                                  }
                                  emitEnd(node.importClause.namedBindings);
                                  emitTrailingComments(node.importClause.namedBindings);
                              }
                              emitEnd(node.importClause);
                              write(" from ");
                              emit(node.moduleSpecifier);
                              write(";");
                          }
                      }
                      else {
                          write("import ");
                          emit(node.moduleSpecifier);
                          write(";");
                      }
                  }
                  function emitExternalImportDeclaration(node) {
                      if (ts.contains(externalImports, node)) {
                          var isExportedImport = node.kind === 209 && (node.flags & 1) !== 0;
                          var namespaceDeclaration = getNamespaceDeclarationNode(node);
                          if (compilerOptions.module !== 2) {
                              emitLeadingComments(node);
                              emitStart(node);
                              if (namespaceDeclaration && !isDefaultImport(node)) {
                                  if (!isExportedImport)
                                      write("var ");
                                  emitModuleMemberName(namespaceDeclaration);
                                  write(" = ");
                              }
                              else {
                                  var isNakedImport = 210 && !node.importClause;
                                  if (!isNakedImport) {
                                      write("var ");
                                      write(getGeneratedNameForNode(node));
                                      write(" = ");
                                  }
                              }
                              emitRequire(ts.getExternalModuleName(node));
                              if (namespaceDeclaration && isDefaultImport(node)) {
                                  write(", ");
                                  emitModuleMemberName(namespaceDeclaration);
                                  write(" = ");
                                  write(getGeneratedNameForNode(node));
                              }
                              write(";");
                              emitEnd(node);
                              emitExportImportAssignments(node);
                              emitTrailingComments(node);
                          }
                          else {
                              if (isExportedImport) {
                                  emitModuleMemberName(namespaceDeclaration);
                                  write(" = ");
                                  emit(namespaceDeclaration.name);
                                  write(";");
                              }
                              else if (namespaceDeclaration && isDefaultImport(node)) {
                                  write("var ");
                                  emitModuleMemberName(namespaceDeclaration);
                                  write(" = ");
                                  write(getGeneratedNameForNode(node));
                                  write(";");
                              }
                              emitExportImportAssignments(node);
                          }
                      }
                  }
                  function emitImportEqualsDeclaration(node) {
                      if (ts.isExternalModuleImportEqualsDeclaration(node)) {
                          emitExternalImportDeclaration(node);
                          return;
                      }
                      if (resolver.isReferencedAliasDeclaration(node) ||
                          (!ts.isExternalModule(currentSourceFile) && resolver.isTopLevelValueImportEqualsWithEntityName(node))) {
                          emitLeadingComments(node);
                          emitStart(node);
                          if (isES6ExportedDeclaration(node)) {
                              write("export ");
                              write("var ");
                          }
                          else if (!(node.flags & 1)) {
                              write("var ");
                          }
                          emitModuleMemberName(node);
                          write(" = ");
                          emit(node.moduleReference);
                          write(";");
                          emitEnd(node);
                          emitExportImportAssignments(node);
                          emitTrailingComments(node);
                      }
                  }
                  function emitExportDeclaration(node) {
                      ts.Debug.assert(compilerOptions.module !== 4);
                      if (languageVersion < 2) {
                          if (node.moduleSpecifier && (!node.exportClause || resolver.isValueAliasDeclaration(node))) {
                              emitStart(node);
                              var generatedName = getGeneratedNameForNode(node);
                              if (node.exportClause) {
                                  if (compilerOptions.module !== 2) {
                                      write("var ");
                                      write(generatedName);
                                      write(" = ");
                                      emitRequire(ts.getExternalModuleName(node));
                                      write(";");
                                  }
                                  for (var _a = 0, _b = node.exportClause.elements; _a < _b.length; _a++) {
                                      var specifier = _b[_a];
                                      if (resolver.isValueAliasDeclaration(specifier)) {
                                          writeLine();
                                          emitStart(specifier);
                                          emitContainingModuleName(specifier);
                                          write(".");
                                          emitNodeWithoutSourceMap(specifier.name);
                                          write(" = ");
                                          write(generatedName);
                                          write(".");
                                          emitNodeWithoutSourceMap(specifier.propertyName || specifier.name);
                                          write(";");
                                          emitEnd(specifier);
                                      }
                                  }
                              }
                              else {
                                  writeLine();
                                  write("__export(");
                                  if (compilerOptions.module !== 2) {
                                      emitRequire(ts.getExternalModuleName(node));
                                  }
                                  else {
                                      write(generatedName);
                                  }
                                  write(");");
                              }
                              emitEnd(node);
                          }
                      }
                      else {
                          if (!node.exportClause || resolver.isValueAliasDeclaration(node)) {
                              emitStart(node);
                              write("export ");
                              if (node.exportClause) {
                                  write("{ ");
                                  emitExportOrImportSpecifierList(node.exportClause.elements, resolver.isValueAliasDeclaration);
                                  write(" }");
                              }
                              else {
                                  write("*");
                              }
                              if (node.moduleSpecifier) {
                                  write(" from ");
                                  emitNodeWithoutSourceMap(node.moduleSpecifier);
                              }
                              write(";");
                              emitEnd(node);
                          }
                      }
                  }
                  function emitExportOrImportSpecifierList(specifiers, shouldEmit) {
                      ts.Debug.assert(languageVersion >= 2);
                      var needsComma = false;
                      for (var _a = 0; _a < specifiers.length; _a++) {
                          var specifier = specifiers[_a];
                          if (shouldEmit(specifier)) {
                              if (needsComma) {
                                  write(", ");
                              }
                              emitStart(specifier);
                              if (specifier.propertyName) {
                                  emitNodeWithoutSourceMap(specifier.propertyName);
                                  write(" as ");
                              }
                              emitNodeWithoutSourceMap(specifier.name);
                              emitEnd(specifier);
                              needsComma = true;
                          }
                      }
                  }
                  function emitExportAssignment(node) {
                      if (!node.isExportEquals && resolver.isValueAliasDeclaration(node)) {
                          if (languageVersion >= 2) {
                              writeLine();
                              emitStart(node);
                              write("export default ");
                              var expression = node.expression;
                              emit(expression);
                              if (expression.kind !== 201 &&
                                  expression.kind !== 202) {
                                  write(";");
                              }
                              emitEnd(node);
                          }
                          else {
                              writeLine();
                              emitStart(node);
                              if (compilerOptions.module === 4) {
                                  write(exportFunctionForFile + "(\"default\",");
                                  emit(node.expression);
                                  write(")");
                              }
                              else {
                                  emitContainingModuleName(node);
                                  if (languageVersion === 0) {
                                      write("[\"default\"] = ");
                                  }
                                  else {
                                      write(".default = ");
                                  }
                                  emit(node.expression);
                              }
                              write(";");
                              emitEnd(node);
                          }
                      }
                  }
                  function collectExternalModuleInfo(sourceFile) {
                      externalImports = [];
                      exportSpecifiers = {};
                      exportEquals = undefined;
                      hasExportStars = false;
                      for (var _a = 0, _b = sourceFile.statements; _a < _b.length; _a++) {
                          var node = _b[_a];
                          switch (node.kind) {
                              case 210:
                                  if (!node.importClause ||
                                      resolver.isReferencedAliasDeclaration(node.importClause, true)) {
                                      externalImports.push(node);
                                  }
                                  break;
                              case 209:
                                  if (node.moduleReference.kind === 220 && resolver.isReferencedAliasDeclaration(node)) {
                                      externalImports.push(node);
                                  }
                                  break;
                              case 216:
                                  if (node.moduleSpecifier) {
                                      if (!node.exportClause) {
                                          externalImports.push(node);
                                          hasExportStars = true;
                                      }
                                      else if (resolver.isValueAliasDeclaration(node)) {
                                          externalImports.push(node);
                                      }
                                  }
                                  else {
                                      for (var _c = 0, _d = node.exportClause.elements; _c < _d.length; _c++) {
                                          var specifier = _d[_c];
                                          var name_20 = (specifier.propertyName || specifier.name).text;
                                          (exportSpecifiers[name_20] || (exportSpecifiers[name_20] = [])).push(specifier);
                                      }
                                  }
                                  break;
                              case 215:
                                  if (node.isExportEquals && !exportEquals) {
                                      exportEquals = node;
                                  }
                                  break;
                          }
                      }
                  }
                  function emitExportStarHelper() {
                      if (hasExportStars) {
                          writeLine();
                          write("function __export(m) {");
                          increaseIndent();
                          writeLine();
                          write("for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];");
                          decreaseIndent();
                          writeLine();
                          write("}");
                      }
                  }
                  function getLocalNameForExternalImport(importNode) {
                      var namespaceDeclaration = getNamespaceDeclarationNode(importNode);
                      if (namespaceDeclaration && !isDefaultImport(importNode)) {
                          return ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, namespaceDeclaration.name);
                      }
                      else {
                          return getGeneratedNameForNode(importNode);
                      }
                  }
                  function getExternalModuleNameText(importNode) {
                      var moduleName = ts.getExternalModuleName(importNode);
                      if (moduleName.kind === 8) {
                          return getLiteralText(moduleName);
                      }
                      return undefined;
                  }
                  function emitVariableDeclarationsForImports() {
                      if (externalImports.length === 0) {
                          return;
                      }
                      writeLine();
                      var started = false;
                      for (var _a = 0; _a < externalImports.length; _a++) {
                          var importNode = externalImports[_a];
                          var skipNode = importNode.kind === 216 ||
                              (importNode.kind === 210 && !importNode.importClause);
                          if (skipNode) {
                              continue;
                          }
                          if (!started) {
                              write("var ");
                              started = true;
                          }
                          else {
                              write(", ");
                          }
                          write(getLocalNameForExternalImport(importNode));
                      }
                      if (started) {
                          write(";");
                      }
                  }
                  function emitLocalStorageForExportedNamesIfNecessary(exportedDeclarations) {
                      if (!hasExportStars) {
                          return undefined;
                      }
                      if (!exportedDeclarations && ts.isEmpty(exportSpecifiers)) {
                          var hasExportDeclarationWithExportClause = false;
                          for (var _a = 0; _a < externalImports.length; _a++) {
                              var externalImport = externalImports[_a];
                              if (externalImport.kind === 216 && externalImport.exportClause) {
                                  hasExportDeclarationWithExportClause = true;
                                  break;
                              }
                          }
                          if (!hasExportDeclarationWithExportClause) {
                              return emitExportStarFunction(undefined);
                          }
                      }
                      var exportedNamesStorageRef = makeUniqueName("exportedNames");
                      writeLine();
                      write("var " + exportedNamesStorageRef + " = {");
                      increaseIndent();
                      var started = false;
                      if (exportedDeclarations) {
                          for (var i = 0; i < exportedDeclarations.length; ++i) {
                              writeExportedName(exportedDeclarations[i]);
                          }
                      }
                      if (exportSpecifiers) {
                          for (var n in exportSpecifiers) {
                              for (var _b = 0, _c = exportSpecifiers[n]; _b < _c.length; _b++) {
                                  var specifier = _c[_b];
                                  writeExportedName(specifier.name);
                              }
                          }
                      }
                      for (var _d = 0; _d < externalImports.length; _d++) {
                          var externalImport = externalImports[_d];
                          if (externalImport.kind !== 216) {
                              continue;
                          }
                          var exportDecl = externalImport;
                          if (!exportDecl.exportClause) {
                              continue;
                          }
                          for (var _e = 0, _f = exportDecl.exportClause.elements; _e < _f.length; _e++) {
                              var element = _f[_e];
                              writeExportedName(element.name || element.propertyName);
                          }
                      }
                      decreaseIndent();
                      writeLine();
                      write("};");
                      return emitExportStarFunction(exportedNamesStorageRef);
                      function emitExportStarFunction(localNames) {
                          var exportStarFunction = makeUniqueName("exportStar");
                          writeLine();
                          write("function " + exportStarFunction + "(m) {");
                          increaseIndent();
                          writeLine();
                          write("for(var n in m) {");
                          increaseIndent();
                          writeLine();
                          write("if (n !== \"default\"");
                          if (localNames) {
                              write("&& !" + localNames + ".hasOwnProperty(n)");
                          }
                          write(") " + exportFunctionForFile + "(n, m[n]);");
                          decreaseIndent();
                          writeLine();
                          write("}");
                          decreaseIndent();
                          writeLine();
                          write("}");
                          return exportStarFunction;
                      }
                      function writeExportedName(node) {
                          if (node.kind !== 65 && node.flags & 256) {
                              return;
                          }
                          if (started) {
                              write(",");
                          }
                          else {
                              started = true;
                          }
                          writeLine();
                          write("'");
                          if (node.kind === 65) {
                              emitNodeWithoutSourceMap(node);
                          }
                          else {
                              emitDeclarationName(node);
                          }
                          write("': true");
                      }
                  }
                  function processTopLevelVariableAndFunctionDeclarations(node) {
                      var hoistedVars;
                      var hoistedFunctionDeclarations;
                      var exportedDeclarations;
                      visit(node);
                      if (hoistedVars) {
                          writeLine();
                          write("var ");
                          var seen = {};
                          for (var i = 0; i < hoistedVars.length; ++i) {
                              var local = hoistedVars[i];
                              var name_21 = local.kind === 65
                                  ? local
                                  : local.name;
                              if (name_21) {
                                  var text = ts.unescapeIdentifier(name_21.text);
                                  if (ts.hasProperty(seen, text)) {
                                      continue;
                                  }
                                  else {
                                      seen[text] = text;
                                  }
                              }
                              if (i !== 0) {
                                  write(", ");
                              }
                              if (local.kind === 202 || local.kind === 206 || local.kind === 205) {
                                  emitDeclarationName(local);
                              }
                              else {
                                  emit(local);
                              }
                              var flags = ts.getCombinedNodeFlags(local.kind === 65 ? local.parent : local);
                              if (flags & 1) {
                                  if (!exportedDeclarations) {
                                      exportedDeclarations = [];
                                  }
                                  exportedDeclarations.push(local);
                              }
                          }
                          write(";");
                      }
                      if (hoistedFunctionDeclarations) {
                          for (var _a = 0; _a < hoistedFunctionDeclarations.length; _a++) {
                              var f = hoistedFunctionDeclarations[_a];
                              writeLine();
                              emit(f);
                              if (f.flags & 1) {
                                  if (!exportedDeclarations) {
                                      exportedDeclarations = [];
                                  }
                                  exportedDeclarations.push(f);
                              }
                          }
                      }
                      return exportedDeclarations;
                      function visit(node) {
                          if (node.flags & 2) {
                              return;
                          }
                          if (node.kind === 201) {
                              if (!hoistedFunctionDeclarations) {
                                  hoistedFunctionDeclarations = [];
                              }
                              hoistedFunctionDeclarations.push(node);
                              return;
                          }
                          if (node.kind === 202) {
                              if (!hoistedVars) {
                                  hoistedVars = [];
                              }
                              hoistedVars.push(node);
                              return;
                          }
                          if (node.kind === 205) {
                              if (shouldEmitEnumDeclaration(node)) {
                                  if (!hoistedVars) {
                                      hoistedVars = [];
                                  }
                                  hoistedVars.push(node);
                              }
                              return;
                          }
                          if (node.kind === 206) {
                              if (shouldEmitModuleDeclaration(node)) {
                                  if (!hoistedVars) {
                                      hoistedVars = [];
                                  }
                                  hoistedVars.push(node);
                              }
                              return;
                          }
                          if (node.kind === 199 || node.kind === 153) {
                              if (shouldHoistVariable(node, false)) {
                                  var name_22 = node.name;
                                  if (name_22.kind === 65) {
                                      if (!hoistedVars) {
                                          hoistedVars = [];
                                      }
                                      hoistedVars.push(name_22);
                                  }
                                  else {
                                      ts.forEachChild(name_22, visit);
                                  }
                              }
                              return;
                          }
                          if (ts.isBindingPattern(node)) {
                              ts.forEach(node.elements, visit);
                              return;
                          }
                          if (!ts.isDeclaration(node)) {
                              ts.forEachChild(node, visit);
                          }
                      }
                  }
                  function shouldHoistVariable(node, checkIfSourceFileLevelDecl) {
                      if (checkIfSourceFileLevelDecl && !shouldHoistDeclarationInSystemJsModule(node)) {
                          return false;
                      }
                      return (ts.getCombinedNodeFlags(node) & 12288) === 0 ||
                          ts.getEnclosingBlockScopeContainer(node).kind === 228;
                  }
                  function isCurrentFileSystemExternalModule() {
                      return compilerOptions.module === 4 && ts.isExternalModule(currentSourceFile);
                  }
                  function emitSystemModuleBody(node, startIndex) {
                      emitVariableDeclarationsForImports();
                      writeLine();
                      var exportedDeclarations = processTopLevelVariableAndFunctionDeclarations(node);
                      var exportStarFunction = emitLocalStorageForExportedNamesIfNecessary(exportedDeclarations);
                      writeLine();
                      write("return {");
                      increaseIndent();
                      writeLine();
                      emitSetters(exportStarFunction);
                      writeLine();
                      emitExecute(node, startIndex);
                      emitTempDeclarations(true);
                      decreaseIndent();
                      writeLine();
                      write("}");
                  }
                  function emitSetters(exportStarFunction) {
                      write("setters:[");
                      for (var i = 0; i < externalImports.length; ++i) {
                          if (i !== 0) {
                              write(",");
                          }
                          writeLine();
                          increaseIndent();
                          var importNode = externalImports[i];
                          var importVariableName = getLocalNameForExternalImport(importNode) || "";
                          var parameterName = "_" + importVariableName;
                          write("function (" + parameterName + ") {");
                          switch (importNode.kind) {
                              case 210:
                                  if (!importNode.importClause) {
                                      break;
                                  }
                              case 209:
                                  ts.Debug.assert(importVariableName !== "");
                                  increaseIndent();
                                  writeLine();
                                  write(importVariableName + " = " + parameterName + ";");
                                  writeLine();
                                  var defaultName = importNode.kind === 210
                                      ? importNode.importClause.name
                                      : importNode.name;
                                  if (defaultName) {
                                      emitExportMemberAssignments(defaultName);
                                      writeLine();
                                  }
                                  if (importNode.kind === 210 &&
                                      importNode.importClause.namedBindings) {
                                      var namedBindings = importNode.importClause.namedBindings;
                                      if (namedBindings.kind === 212) {
                                          emitExportMemberAssignments(namedBindings.name);
                                          writeLine();
                                      }
                                      else {
                                          for (var _a = 0, _b = namedBindings.elements; _a < _b.length; _a++) {
                                              var element = _b[_a];
                                              emitExportMemberAssignments(element.name || element.propertyName);
                                              writeLine();
                                          }
                                      }
                                  }
                                  decreaseIndent();
                                  break;
                              case 216:
                                  ts.Debug.assert(importVariableName !== "");
                                  increaseIndent();
                                  if (importNode.exportClause) {
                                      for (var _c = 0, _d = importNode.exportClause.elements; _c < _d.length; _c++) {
                                          var e = _d[_c];
                                          writeLine();
                                          write(exportFunctionForFile + "(\"");
                                          emitNodeWithoutSourceMap(e.name);
                                          write("\", " + parameterName + "[\"");
                                          emitNodeWithoutSourceMap(e.propertyName || e.name);
                                          write("\"]);");
                                      }
                                  }
                                  else {
                                      writeLine();
                                      write(exportStarFunction + "(" + parameterName + ");");
                                  }
                                  writeLine();
                                  decreaseIndent();
                                  break;
                          }
                          write("}");
                          decreaseIndent();
                      }
                      write("],");
                  }
                  function emitExecute(node, startIndex) {
                      write("execute: function() {");
                      increaseIndent();
                      writeLine();
                      for (var i = startIndex; i < node.statements.length; ++i) {
                          var statement = node.statements[i];
                          switch (statement.kind) {
                              case 216:
                              case 210:
                              case 209:
                              case 201:
                                  continue;
                          }
                          writeLine();
                          emit(statement);
                      }
                      decreaseIndent();
                      writeLine();
                      write("}");
                  }
                  function emitSystemModule(node, startIndex) {
                      collectExternalModuleInfo(node);
                      ts.Debug.assert(!exportFunctionForFile);
                      exportFunctionForFile = makeUniqueName("exports");
                      write("System.register([");
                      for (var i = 0; i < externalImports.length; ++i) {
                          var text = getExternalModuleNameText(externalImports[i]);
                          if (i !== 0) {
                              write(", ");
                          }
                          write(text);
                      }
                      write("], function(" + exportFunctionForFile + ") {");
                      writeLine();
                      increaseIndent();
                      emitCaptureThisForNodeIfNecessary(node);
                      emitSystemModuleBody(node, startIndex);
                      decreaseIndent();
                      writeLine();
                      write("});");
                  }
                  function emitAMDDependencies(node, includeNonAmdDependencies) {
                      // An AMD define function has the following shape:
                      //     define(id?, dependencies?, factory);
                      //
                      // This has the shape of
                      //     define(name, ["module1", "module2"], function (module1Alias) {
                      // The location of the alias in the parameter list in the factory function needs to
                      // match the position of the module name in the dependency list.
                      //
                      // To ensure this is true in cases of modules with no aliases, e.g.:
                      // `import "module"` or `<amd-dependency path= "a.css" />`
                      // we need to add modules without alias names to the end of the dependencies list
                      var aliasedModuleNames = [];
                      var unaliasedModuleNames = [];
                      var importAliasNames = [];
                      for (var _a = 0, _b = node.amdDependencies; _a < _b.length; _a++) {
                          var amdDependency = _b[_a];
                          if (amdDependency.name) {
                              aliasedModuleNames.push("\"" + amdDependency.path + "\"");
                              importAliasNames.push(amdDependency.name);
                          }
                          else {
                              unaliasedModuleNames.push("\"" + amdDependency.path + "\"");
                          }
                      }
                      for (var _c = 0; _c < externalImports.length; _c++) {
                          var importNode = externalImports[_c];
                          var externalModuleName = getExternalModuleNameText(importNode);
                          var importAliasName = getLocalNameForExternalImport(importNode);
                          if (includeNonAmdDependencies && importAliasName) {
                              aliasedModuleNames.push(externalModuleName);
                              importAliasNames.push(importAliasName);
                          }
                          else {
                              unaliasedModuleNames.push(externalModuleName);
                          }
                      }
                      write("[\"require\", \"exports\"");
                      if (aliasedModuleNames.length) {
                          write(", ");
                          write(aliasedModuleNames.join(", "));
                      }
                      if (unaliasedModuleNames.length) {
                          write(", ");
                          write(unaliasedModuleNames.join(", "));
                      }
                      write("], function (require, exports");
                      if (importAliasNames.length) {
                          write(", ");
                          write(importAliasNames.join(", "));
                      }
                  }
                  function emitAMDModule(node, startIndex) {
                      collectExternalModuleInfo(node);
                      writeLine();
                      write("define(");
                      if (node.amdModuleName) {
                          write("\"" + node.amdModuleName + "\", ");
                      }
                      emitAMDDependencies(node, true);
                      write(") {");
                      increaseIndent();
                      emitExportStarHelper();
                      emitCaptureThisForNodeIfNecessary(node);
                      emitLinesStartingAt(node.statements, startIndex);
                      emitTempDeclarations(true);
                      emitExportEquals(true);
                      decreaseIndent();
                      writeLine();
                      write("});");
                  }
                  function emitCommonJSModule(node, startIndex) {
                      collectExternalModuleInfo(node);
                      emitExportStarHelper();
                      emitCaptureThisForNodeIfNecessary(node);
                      emitLinesStartingAt(node.statements, startIndex);
                      emitTempDeclarations(true);
                      emitExportEquals(false);
                  }
                  function emitUMDModule(node, startIndex) {
                      collectExternalModuleInfo(node);
                      writeLines("(function (deps, factory) {\n    if (typeof module === 'object' && typeof module.exports === 'object') {\n        var v = factory(require, exports); if (v !== undefined) module.exports = v;\n    }\n    else if (typeof define === 'function' && define.amd) {\n        define(deps, factory);\n    }\n})(");
                      emitAMDDependencies(node, false);
                      write(") {");
                      increaseIndent();
                      emitExportStarHelper();
                      emitCaptureThisForNodeIfNecessary(node);
                      emitLinesStartingAt(node.statements, startIndex);
                      emitTempDeclarations(true);
                      emitExportEquals(true);
                      decreaseIndent();
                      writeLine();
                      write("});");
                  }
                  function emitES6Module(node, startIndex) {
                      externalImports = undefined;
                      exportSpecifiers = undefined;
                      exportEquals = undefined;
                      hasExportStars = false;
                      emitCaptureThisForNodeIfNecessary(node);
                      emitLinesStartingAt(node.statements, startIndex);
                      emitTempDeclarations(true);
                  }
                  function emitExportEquals(emitAsReturn) {
                      if (exportEquals && resolver.isValueAliasDeclaration(exportEquals)) {
                          writeLine();
                          emitStart(exportEquals);
                          write(emitAsReturn ? "return " : "module.exports = ");
                          emit(exportEquals.expression);
                          write(";");
                          emitEnd(exportEquals);
                      }
                  }
                  function emitDirectivePrologues(statements, startWithNewLine) {
                      for (var i = 0; i < statements.length; ++i) {
                          if (ts.isPrologueDirective(statements[i])) {
                              if (startWithNewLine || i > 0) {
                                  writeLine();
                              }
                              emit(statements[i]);
                          }
                          else {
                              return i;
                          }
                      }
                      return statements.length;
                  }
                  function writeLines(text) {
                      var lines = text.split(/\r\n|\r|\n/g);
                      for (var i = 0; i < lines.length; ++i) {
                          var line = lines[i];
                          if (line.length) {
                              writeLine();
                              write(line);
                          }
                      }
                  }
                  function emitSourceFileNode(node) {
                      writeLine();
                      emitDetachedComments(node);
                      var startIndex = emitDirectivePrologues(node.statements, false);
                      if (!compilerOptions.noEmitHelpers) {
                          if ((languageVersion < 2) && (!extendsEmitted && resolver.getNodeCheckFlags(node) & 8)) {
                              writeLines(extendsHelper);
                              extendsEmitted = true;
                          }
                          if (!decorateEmitted && resolver.getNodeCheckFlags(node) & 512) {
                              writeLines(decorateHelper);
                              if (compilerOptions.emitDecoratorMetadata) {
                                  writeLines(metadataHelper);
                              }
                              decorateEmitted = true;
                          }
                          if (!paramEmitted && resolver.getNodeCheckFlags(node) & 1024) {
                              writeLines(paramHelper);
                              paramEmitted = true;
                          }
                      }
                      if (ts.isExternalModule(node) || compilerOptions.separateCompilation) {
                          if (languageVersion >= 2) {
                              emitES6Module(node, startIndex);
                          }
                          else if (compilerOptions.module === 2) {
                              emitAMDModule(node, startIndex);
                          }
                          else if (compilerOptions.module === 4) {
                              emitSystemModule(node, startIndex);
                          }
                          else if (compilerOptions.module === 3) {
                              emitUMDModule(node, startIndex);
                          }
                          else {
                              emitCommonJSModule(node, startIndex);
                          }
                      }
                      else {
                          externalImports = undefined;
                          exportSpecifiers = undefined;
                          exportEquals = undefined;
                          hasExportStars = false;
                          emitCaptureThisForNodeIfNecessary(node);
                          emitLinesStartingAt(node.statements, startIndex);
                          emitTempDeclarations(true);
                      }
                      emitLeadingComments(node.endOfFileToken);
                  }
                  function emitNodeWithoutSourceMap(node, allowGeneratedIdentifiers) {
                      if (!node) {
                          return;
                      }
                      if (node.flags & 2) {
                          return emitOnlyPinnedOrTripleSlashComments(node);
                      }
                      var emitComments = shouldEmitLeadingAndTrailingComments(node);
                      if (emitComments) {
                          emitLeadingComments(node);
                      }
                      emitJavaScriptWorker(node, allowGeneratedIdentifiers);
                      if (emitComments) {
                          emitTrailingComments(node);
                      }
                  }
                  function shouldEmitLeadingAndTrailingComments(node) {
                      switch (node.kind) {
                          case 203:
                          case 201:
                          case 210:
                          case 209:
                          case 204:
                          case 215:
                              return false;
                          case 206:
                              return shouldEmitModuleDeclaration(node);
                          case 205:
                              return shouldEmitEnumDeclaration(node);
                      }
                      if (node.kind !== 180 &&
                          node.parent &&
                          node.parent.kind === 164 &&
                          node.parent.body === node &&
                          compilerOptions.target <= 1) {
                          return false;
                      }
                      return true;
                  }
                  function emitJavaScriptWorker(node, allowGeneratedIdentifiers) {
                      if (allowGeneratedIdentifiers === void 0) { allowGeneratedIdentifiers = true; }
                      switch (node.kind) {
                          case 65:
                              return emitIdentifier(node, allowGeneratedIdentifiers);
                          case 130:
                              return emitParameter(node);
                          case 135:
                          case 134:
                              return emitMethod(node);
                          case 137:
                          case 138:
                              return emitAccessor(node);
                          case 93:
                              return emitThis(node);
                          case 91:
                              return emitSuper(node);
                          case 89:
                              return write("null");
                          case 95:
                              return write("true");
                          case 80:
                              return write("false");
                          case 7:
                          case 8:
                          case 9:
                          case 10:
                          case 11:
                          case 12:
                          case 13:
                              return emitLiteral(node);
                          case 172:
                              return emitTemplateExpression(node);
                          case 178:
                              return emitTemplateSpan(node);
                          case 127:
                              return emitQualifiedName(node);
                          case 151:
                              return emitObjectBindingPattern(node);
                          case 152:
                              return emitArrayBindingPattern(node);
                          case 153:
                              return emitBindingElement(node);
                          case 154:
                              return emitArrayLiteral(node);
                          case 155:
                              return emitObjectLiteral(node);
                          case 225:
                              return emitPropertyAssignment(node);
                          case 226:
                              return emitShorthandPropertyAssignment(node);
                          case 128:
                              return emitComputedPropertyName(node);
                          case 156:
                              return emitPropertyAccess(node);
                          case 157:
                              return emitIndexedAccess(node);
                          case 158:
                              return emitCallExpression(node);
                          case 159:
                              return emitNewExpression(node);
                          case 160:
                              return emitTaggedTemplateExpression(node);
                          case 161:
                              return emit(node.expression);
                          case 162:
                              return emitParenExpression(node);
                          case 201:
                          case 163:
                          case 164:
                              return emitFunctionDeclaration(node);
                          case 165:
                              return emitDeleteExpression(node);
                          case 166:
                              return emitTypeOfExpression(node);
                          case 167:
                              return emitVoidExpression(node);
                          case 168:
                              return emitPrefixUnaryExpression(node);
                          case 169:
                              return emitPostfixUnaryExpression(node);
                          case 170:
                              return emitBinaryExpression(node);
                          case 171:
                              return emitConditionalExpression(node);
                          case 174:
                              return emitSpreadElementExpression(node);
                          case 173:
                              return emitYieldExpression(node);
                          case 176:
                              return;
                          case 180:
                          case 207:
                              return emitBlock(node);
                          case 181:
                              return emitVariableStatement(node);
                          case 182:
                              return write(";");
                          case 183:
                              return emitExpressionStatement(node);
                          case 184:
                              return emitIfStatement(node);
                          case 185:
                              return emitDoStatement(node);
                          case 186:
                              return emitWhileStatement(node);
                          case 187:
                              return emitForStatement(node);
                          case 189:
                          case 188:
                              return emitForInOrForOfStatement(node);
                          case 190:
                          case 191:
                              return emitBreakOrContinueStatement(node);
                          case 192:
                              return emitReturnStatement(node);
                          case 193:
                              return emitWithStatement(node);
                          case 194:
                              return emitSwitchStatement(node);
                          case 221:
                          case 222:
                              return emitCaseOrDefaultClause(node);
                          case 195:
                              return emitLabelledStatement(node);
                          case 196:
                              return emitThrowStatement(node);
                          case 197:
                              return emitTryStatement(node);
                          case 224:
                              return emitCatchClause(node);
                          case 198:
                              return emitDebuggerStatement(node);
                          case 199:
                              return emitVariableDeclaration(node);
                          case 175:
                              return emitClassExpression(node);
                          case 202:
                              return emitClassDeclaration(node);
                          case 203:
                              return emitInterfaceDeclaration(node);
                          case 205:
                              return emitEnumDeclaration(node);
                          case 227:
                              return emitEnumMember(node);
                          case 206:
                              return emitModuleDeclaration(node);
                          case 210:
                              return emitImportDeclaration(node);
                          case 209:
                              return emitImportEqualsDeclaration(node);
                          case 216:
                              return emitExportDeclaration(node);
                          case 215:
                              return emitExportAssignment(node);
                          case 228:
                              return emitSourceFileNode(node);
                      }
                  }
                  function hasDetachedComments(pos) {
                      return detachedCommentsInfo !== undefined && ts.lastOrUndefined(detachedCommentsInfo).nodePos === pos;
                  }
                  function getLeadingCommentsWithoutDetachedComments() {
                      var leadingComments = ts.getLeadingCommentRanges(currentSourceFile.text, ts.lastOrUndefined(detachedCommentsInfo).detachedCommentEndPos);
                      if (detachedCommentsInfo.length - 1) {
                          detachedCommentsInfo.pop();
                      }
                      else {
                          detachedCommentsInfo = undefined;
                      }
                      return leadingComments;
                  }
                  function filterComments(ranges, onlyPinnedOrTripleSlashComments) {
                      if (ranges && onlyPinnedOrTripleSlashComments) {
                          ranges = ts.filter(ranges, isPinnedOrTripleSlashComment);
                          if (ranges.length === 0) {
                              return undefined;
                          }
                      }
                      return ranges;
                  }
                  function getLeadingCommentsToEmit(node) {
                      if (node.parent) {
                          if (node.parent.kind === 228 || node.pos !== node.parent.pos) {
                              if (hasDetachedComments(node.pos)) {
                                  return getLeadingCommentsWithoutDetachedComments();
                              }
                              else {
                                  return ts.getLeadingCommentRangesOfNode(node, currentSourceFile);
                              }
                          }
                      }
                  }
                  function getTrailingCommentsToEmit(node) {
                      if (node.parent) {
                          if (node.parent.kind === 228 || node.end !== node.parent.end) {
                              return ts.getTrailingCommentRanges(currentSourceFile.text, node.end);
                          }
                      }
                  }
                  function emitOnlyPinnedOrTripleSlashComments(node) {
                      emitLeadingCommentsWorker(node, true);
                  }
                  function emitLeadingComments(node) {
                      return emitLeadingCommentsWorker(node, compilerOptions.removeComments);
                  }
                  function emitLeadingCommentsWorker(node, onlyPinnedOrTripleSlashComments) {
                      var leadingComments = filterComments(getLeadingCommentsToEmit(node), onlyPinnedOrTripleSlashComments);
                      ts.emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments);
                      ts.emitComments(currentSourceFile, writer, leadingComments, true, newLine, writeComment);
                  }
                  function emitTrailingComments(node) {
                      var trailingComments = filterComments(getTrailingCommentsToEmit(node), compilerOptions.removeComments);
                      ts.emitComments(currentSourceFile, writer, trailingComments, false, newLine, writeComment);
                  }
                  function emitLeadingCommentsOfPosition(pos) {
                      var leadingComments;
                      if (hasDetachedComments(pos)) {
                          leadingComments = getLeadingCommentsWithoutDetachedComments();
                      }
                      else {
                          leadingComments = ts.getLeadingCommentRanges(currentSourceFile.text, pos);
                      }
                      leadingComments = filterComments(leadingComments, compilerOptions.removeComments);
                      ts.emitNewLineBeforeLeadingComments(currentSourceFile, writer, { pos: pos, end: pos }, leadingComments);
                      ts.emitComments(currentSourceFile, writer, leadingComments, true, newLine, writeComment);
                  }
                  function emitDetachedComments(node) {
                      var leadingComments = ts.getLeadingCommentRanges(currentSourceFile.text, node.pos);
                      if (leadingComments) {
                          var detachedComments = [];
                          var lastComment;
                          ts.forEach(leadingComments, function (comment) {
                              if (lastComment) {
                                  var lastCommentLine = ts.getLineOfLocalPosition(currentSourceFile, lastComment.end);
                                  var commentLine = ts.getLineOfLocalPosition(currentSourceFile, comment.pos);
                                  if (commentLine >= lastCommentLine + 2) {
                                      return detachedComments;
                                  }
                              }
                              detachedComments.push(comment);
                              lastComment = comment;
                          });
                          if (detachedComments.length) {
                              var lastCommentLine = ts.getLineOfLocalPosition(currentSourceFile, ts.lastOrUndefined(detachedComments).end);
                              var nodeLine = ts.getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node.pos));
                              if (nodeLine >= lastCommentLine + 2) {
                                  ts.emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments);
                                  ts.emitComments(currentSourceFile, writer, detachedComments, true, newLine, writeComment);
                                  var currentDetachedCommentInfo = { nodePos: node.pos, detachedCommentEndPos: ts.lastOrUndefined(detachedComments).end };
                                  if (detachedCommentsInfo) {
                                      detachedCommentsInfo.push(currentDetachedCommentInfo);
                                  }
                                  else {
                                      detachedCommentsInfo = [currentDetachedCommentInfo];
                                  }
                              }
                          }
                      }
                  }
                  function isPinnedOrTripleSlashComment(comment) {
                      if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 42) {
                          return currentSourceFile.text.charCodeAt(comment.pos + 2) === 33;
                      }
                      else if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 47 &&
                          comment.pos + 2 < comment.end &&
                          currentSourceFile.text.charCodeAt(comment.pos + 2) === 47 &&
                          currentSourceFile.text.substring(comment.pos, comment.end).match(ts.fullTripleSlashReferencePathRegEx)) {
                          return true;
                      }
                  }
              }
              function emitFile(jsFilePath, sourceFile) {
                  emitJavaScript(jsFilePath, sourceFile);
                  if (compilerOptions.declaration) {
                      ts.writeDeclarationFile(jsFilePath, sourceFile, host, resolver, diagnostics);
                  }
              }
          }
          ts.emitFiles = emitFiles;
      })(ts || (ts = {}));
      /// <reference path="sys.ts" />
      /// <reference path="emitter.ts" />
      var ts;
      (function (ts) {
          ts.programTime = 0;
          ts.emitTime = 0;
          ts.ioReadTime = 0;
          ts.ioWriteTime = 0;
          ts.version = "1.5.2";
          var carriageReturnLineFeed = "\r\n";
          var lineFeed = "\n";
          function findConfigFile(searchPath) {
              var fileName = "tsconfig.json";
              while (true) {
                  if (ts.sys.fileExists(fileName)) {
                      return fileName;
                  }
                  var parentPath = ts.getDirectoryPath(searchPath);
                  if (parentPath === searchPath) {
                      break;
                  }
                  searchPath = parentPath;
                  fileName = "../" + fileName;
              }
              return undefined;
          }
          ts.findConfigFile = findConfigFile;
          function createCompilerHost(options, setParentNodes) {
              var currentDirectory;
              var existingDirectories = {};
              function getCanonicalFileName(fileName) {
                  return ts.sys.useCaseSensitiveFileNames ? fileName : fileName.toLowerCase();
              }
              var unsupportedFileEncodingErrorCode = -2147024809;
              function getSourceFile(fileName, languageVersion, onError) {
                  var text;
                  try {
                      var start = new Date().getTime();
                      text = ts.sys.readFile(fileName, options.charset);
                      ts.ioReadTime += new Date().getTime() - start;
                  }
                  catch (e) {
                      if (onError) {
                          onError(e.number === unsupportedFileEncodingErrorCode
                              ? ts.createCompilerDiagnostic(ts.Diagnostics.Unsupported_file_encoding).messageText
                              : e.message);
                      }
                      text = "";
                  }
                  return text !== undefined ? ts.createSourceFile(fileName, text, languageVersion, setParentNodes) : undefined;
              }
              function directoryExists(directoryPath) {
                  if (ts.hasProperty(existingDirectories, directoryPath)) {
                      return true;
                  }
                  if (ts.sys.directoryExists(directoryPath)) {
                      existingDirectories[directoryPath] = true;
                      return true;
                  }
                  return false;
              }
              function ensureDirectoriesExist(directoryPath) {
                  if (directoryPath.length > ts.getRootLength(directoryPath) && !directoryExists(directoryPath)) {
                      var parentDirectory = ts.getDirectoryPath(directoryPath);
                      ensureDirectoriesExist(parentDirectory);
                      ts.sys.createDirectory(directoryPath);
                  }
              }
              function writeFile(fileName, data, writeByteOrderMark, onError) {
                  try {
                      var start = new Date().getTime();
                      ensureDirectoriesExist(ts.getDirectoryPath(ts.normalizePath(fileName)));
                      ts.sys.writeFile(fileName, data, writeByteOrderMark);
                      ts.ioWriteTime += new Date().getTime() - start;
                  }
                  catch (e) {
                      if (onError) {
                          onError(e.message);
                      }
                  }
              }
              var newLine = options.newLine === 0 ? carriageReturnLineFeed :
                  options.newLine === 1 ? lineFeed :
                      ts.sys.newLine;
              return {
                  getSourceFile: getSourceFile,
                  getDefaultLibFileName: function (options) { return ts.combinePaths(ts.getDirectoryPath(ts.normalizePath(ts.sys.getExecutingFilePath())), ts.getDefaultLibFileName(options)); },
                  writeFile: writeFile,
                  getCurrentDirectory: function () { return currentDirectory || (currentDirectory = ts.sys.getCurrentDirectory()); },
                  useCaseSensitiveFileNames: function () { return ts.sys.useCaseSensitiveFileNames; },
                  getCanonicalFileName: getCanonicalFileName,
                  getNewLine: function () { return newLine; }
              };
          }
          ts.createCompilerHost = createCompilerHost;
          function getPreEmitDiagnostics(program, sourceFile) {
              var diagnostics = program.getSyntacticDiagnostics(sourceFile).concat(program.getGlobalDiagnostics()).concat(program.getSemanticDiagnostics(sourceFile));
              if (program.getCompilerOptions().declaration) {
                  diagnostics.concat(program.getDeclarationDiagnostics(sourceFile));
              }
              return ts.sortAndDeduplicateDiagnostics(diagnostics);
          }
          ts.getPreEmitDiagnostics = getPreEmitDiagnostics;
          function flattenDiagnosticMessageText(messageText, newLine) {
              if (typeof messageText === "string") {
                  return messageText;
              }
              else {
                  var diagnosticChain = messageText;
                  var result = "";
                  var indent = 0;
                  while (diagnosticChain) {
                      if (indent) {
                          result += newLine;
                          for (var i = 0; i < indent; i++) {
                              result += "  ";
                          }
                      }
                      result += diagnosticChain.messageText;
                      indent++;
                      diagnosticChain = diagnosticChain.next;
                  }
                  return result;
              }
          }
          ts.flattenDiagnosticMessageText = flattenDiagnosticMessageText;
          function createProgram(rootNames, options, host) {
              var program;
              var files = [];
              var filesByName = {};
              var diagnostics = ts.createDiagnosticCollection();
              var seenNoDefaultLib = options.noLib;
              var commonSourceDirectory;
              var diagnosticsProducingTypeChecker;
              var noDiagnosticsTypeChecker;
              var start = new Date().getTime();
              host = host || createCompilerHost(options);
              ts.forEach(rootNames, function (name) { return processRootFile(name, false); });
              if (!seenNoDefaultLib) {
                  processRootFile(host.getDefaultLibFileName(options), true);
              }
              verifyCompilerOptions();
              ts.programTime += new Date().getTime() - start;
              program = {
                  getSourceFile: getSourceFile,
                  getSourceFiles: function () { return files; },
                  getCompilerOptions: function () { return options; },
                  getSyntacticDiagnostics: getSyntacticDiagnostics,
                  getGlobalDiagnostics: getGlobalDiagnostics,
                  getSemanticDiagnostics: getSemanticDiagnostics,
                  getDeclarationDiagnostics: getDeclarationDiagnostics,
                  getTypeChecker: getTypeChecker,
                  getDiagnosticsProducingTypeChecker: getDiagnosticsProducingTypeChecker,
                  getCommonSourceDirectory: function () { return commonSourceDirectory; },
                  emit: emit,
                  getCurrentDirectory: function () { return host.getCurrentDirectory(); },
                  getNodeCount: function () { return getDiagnosticsProducingTypeChecker().getNodeCount(); },
                  getIdentifierCount: function () { return getDiagnosticsProducingTypeChecker().getIdentifierCount(); },
                  getSymbolCount: function () { return getDiagnosticsProducingTypeChecker().getSymbolCount(); },
                  getTypeCount: function () { return getDiagnosticsProducingTypeChecker().getTypeCount(); }
              };
              return program;
              function getEmitHost(writeFileCallback) {
                  return {
                      getCanonicalFileName: function (fileName) { return host.getCanonicalFileName(fileName); },
                      getCommonSourceDirectory: program.getCommonSourceDirectory,
                      getCompilerOptions: program.getCompilerOptions,
                      getCurrentDirectory: function () { return host.getCurrentDirectory(); },
                      getNewLine: function () { return host.getNewLine(); },
                      getSourceFile: program.getSourceFile,
                      getSourceFiles: program.getSourceFiles,
                      writeFile: writeFileCallback || (function (fileName, data, writeByteOrderMark, onError) { return host.writeFile(fileName, data, writeByteOrderMark, onError); })
                  };
              }
              function getDiagnosticsProducingTypeChecker() {
                  return diagnosticsProducingTypeChecker || (diagnosticsProducingTypeChecker = ts.createTypeChecker(program, true));
              }
              function getTypeChecker() {
                  return noDiagnosticsTypeChecker || (noDiagnosticsTypeChecker = ts.createTypeChecker(program, false));
              }
              function emit(sourceFile, writeFileCallback) {
                  if (options.noEmitOnError && getPreEmitDiagnostics(this).length > 0) {
                      return { diagnostics: [], sourceMaps: undefined, emitSkipped: true };
                  }
                  var emitResolver = getDiagnosticsProducingTypeChecker().getEmitResolver(options.out ? undefined : sourceFile);
                  var start = new Date().getTime();
                  var emitResult = ts.emitFiles(emitResolver, getEmitHost(writeFileCallback), sourceFile);
                  ts.emitTime += new Date().getTime() - start;
                  return emitResult;
              }
              function getSourceFile(fileName) {
                  fileName = host.getCanonicalFileName(ts.normalizeSlashes(fileName));
                  return ts.hasProperty(filesByName, fileName) ? filesByName[fileName] : undefined;
              }
              function getDiagnosticsHelper(sourceFile, getDiagnostics) {
                  if (sourceFile) {
                      return getDiagnostics(sourceFile);
                  }
                  var allDiagnostics = [];
                  ts.forEach(program.getSourceFiles(), function (sourceFile) {
                      ts.addRange(allDiagnostics, getDiagnostics(sourceFile));
                  });
                  return ts.sortAndDeduplicateDiagnostics(allDiagnostics);
              }
              function getSyntacticDiagnostics(sourceFile) {
                  return getDiagnosticsHelper(sourceFile, getSyntacticDiagnosticsForFile);
              }
              function getSemanticDiagnostics(sourceFile) {
                  return getDiagnosticsHelper(sourceFile, getSemanticDiagnosticsForFile);
              }
              function getDeclarationDiagnostics(sourceFile) {
                  return getDiagnosticsHelper(sourceFile, getDeclarationDiagnosticsForFile);
              }
              function getSyntacticDiagnosticsForFile(sourceFile) {
                  return sourceFile.parseDiagnostics;
              }
              function getSemanticDiagnosticsForFile(sourceFile) {
                  var typeChecker = getDiagnosticsProducingTypeChecker();
                  ts.Debug.assert(!!sourceFile.bindDiagnostics);
                  var bindDiagnostics = sourceFile.bindDiagnostics;
                  var checkDiagnostics = typeChecker.getDiagnostics(sourceFile);
                  var programDiagnostics = diagnostics.getDiagnostics(sourceFile.fileName);
                  return bindDiagnostics.concat(checkDiagnostics).concat(programDiagnostics);
              }
              function getDeclarationDiagnosticsForFile(sourceFile) {
                  if (!ts.isDeclarationFile(sourceFile)) {
                      var resolver = getDiagnosticsProducingTypeChecker().getEmitResolver(sourceFile);
                      var writeFile = function () { };
                      return ts.getDeclarationDiagnostics(getEmitHost(writeFile), resolver, sourceFile);
                  }
              }
              function getGlobalDiagnostics() {
                  var typeChecker = getDiagnosticsProducingTypeChecker();
                  var allDiagnostics = [];
                  ts.addRange(allDiagnostics, typeChecker.getGlobalDiagnostics());
                  ts.addRange(allDiagnostics, diagnostics.getGlobalDiagnostics());
                  return ts.sortAndDeduplicateDiagnostics(allDiagnostics);
              }
              function hasExtension(fileName) {
                  return ts.getBaseFileName(fileName).indexOf(".") >= 0;
              }
              function processRootFile(fileName, isDefaultLib) {
                  processSourceFile(ts.normalizePath(fileName), isDefaultLib);
              }
              function processSourceFile(fileName, isDefaultLib, refFile, refPos, refEnd) {
                  var start;
                  var length;
                  var extensions;
                  var diagnosticArgument;
                  if (refEnd !== undefined && refPos !== undefined) {
                      start = refPos;
                      length = refEnd - refPos;
                  }
                  var diagnostic;
                  if (hasExtension(fileName)) {
                      if (!options.allowNonTsExtensions && !ts.forEach(ts.supportedExtensions, function (extension) { return ts.fileExtensionIs(host.getCanonicalFileName(fileName), extension); })) {
                          diagnostic = ts.Diagnostics.File_0_has_unsupported_extension_The_only_supported_extensions_are_1;
                          diagnosticArgument = [fileName, "'" + ts.supportedExtensions.join("', '") + "'"];
                      }
                      else if (!findSourceFile(fileName, isDefaultLib, refFile, refPos, refEnd)) {
                          diagnostic = ts.Diagnostics.File_0_not_found;
                          diagnosticArgument = [fileName];
                      }
                      else if (refFile && host.getCanonicalFileName(fileName) === host.getCanonicalFileName(refFile.fileName)) {
                          diagnostic = ts.Diagnostics.A_file_cannot_have_a_reference_to_itself;
                          diagnosticArgument = [fileName];
                      }
                  }
                  else {
                      if (options.allowNonTsExtensions && !findSourceFile(fileName, isDefaultLib, refFile, refPos, refEnd)) {
                          diagnostic = ts.Diagnostics.File_0_not_found;
                          diagnosticArgument = [fileName];
                      }
                      else if (!ts.forEach(ts.supportedExtensions, function (extension) { return findSourceFile(fileName + extension, isDefaultLib, refFile, refPos, refEnd); })) {
                          diagnostic = ts.Diagnostics.File_0_not_found;
                          fileName += ".ts";
                          diagnosticArgument = [fileName];
                      }
                  }
                  if (diagnostic) {
                      if (refFile) {
                          diagnostics.add(ts.createFileDiagnostic.apply(void 0, [refFile, start, length, diagnostic].concat(diagnosticArgument)));
                      }
                      else {
                          diagnostics.add(ts.createCompilerDiagnostic.apply(void 0, [diagnostic].concat(diagnosticArgument)));
                      }
                  }
              }
              function findSourceFile(fileName, isDefaultLib, refFile, refStart, refLength) {
                  var canonicalName = host.getCanonicalFileName(ts.normalizeSlashes(fileName));
                  if (ts.hasProperty(filesByName, canonicalName)) {
                      return getSourceFileFromCache(fileName, canonicalName, false);
                  }
                  else {
                      var normalizedAbsolutePath = ts.getNormalizedAbsolutePath(fileName, host.getCurrentDirectory());
                      var canonicalAbsolutePath = host.getCanonicalFileName(normalizedAbsolutePath);
                      if (ts.hasProperty(filesByName, canonicalAbsolutePath)) {
                          return getSourceFileFromCache(normalizedAbsolutePath, canonicalAbsolutePath, true);
                      }
                      var file = filesByName[canonicalName] = host.getSourceFile(fileName, options.target, function (hostErrorMessage) {
                          if (refFile) {
                              diagnostics.add(ts.createFileDiagnostic(refFile, refStart, refLength, ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage));
                          }
                          else {
                              diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage));
                          }
                      });
                      if (file) {
                          seenNoDefaultLib = seenNoDefaultLib || file.hasNoDefaultLib;
                          filesByName[canonicalAbsolutePath] = file;
                          if (!options.noResolve) {
                              var basePath = ts.getDirectoryPath(fileName);
                              processReferencedFiles(file, basePath);
                              processImportedModules(file, basePath);
                          }
                          if (isDefaultLib) {
                              files.unshift(file);
                          }
                          else {
                              files.push(file);
                          }
                      }
                      return file;
                  }
                  function getSourceFileFromCache(fileName, canonicalName, useAbsolutePath) {
                      var file = filesByName[canonicalName];
                      if (file && host.useCaseSensitiveFileNames()) {
                          var sourceFileName = useAbsolutePath ? ts.getNormalizedAbsolutePath(file.fileName, host.getCurrentDirectory()) : file.fileName;
                          if (canonicalName !== sourceFileName) {
                              diagnostics.add(ts.createFileDiagnostic(refFile, refStart, refLength, ts.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, fileName, sourceFileName));
                          }
                      }
                      return file;
                  }
              }
              function processReferencedFiles(file, basePath) {
                  ts.forEach(file.referencedFiles, function (ref) {
                      var referencedFileName = ts.isRootedDiskPath(ref.fileName) ? ref.fileName : ts.combinePaths(basePath, ref.fileName);
                      processSourceFile(ts.normalizePath(referencedFileName), false, file, ref.pos, ref.end);
                  });
              }
              function processImportedModules(file, basePath) {
                  ts.forEach(file.statements, function (node) {
                      if (node.kind === 210 || node.kind === 209 || node.kind === 216) {
                          var moduleNameExpr = ts.getExternalModuleName(node);
                          if (moduleNameExpr && moduleNameExpr.kind === 8) {
                              var moduleNameText = moduleNameExpr.text;
                              if (moduleNameText) {
                                  var searchPath = basePath;
                                  var searchName;
                                  while (true) {
                                      searchName = ts.normalizePath(ts.combinePaths(searchPath, moduleNameText));
                                      if (ts.forEach(ts.supportedExtensions, function (extension) { return findModuleSourceFile(searchName + extension, moduleNameExpr); })) {
                                          break;
                                      }
                                      var parentPath = ts.getDirectoryPath(searchPath);
                                      if (parentPath === searchPath) {
                                          break;
                                      }
                                      searchPath = parentPath;
                                  }
                              }
                          }
                      }
                      else if (node.kind === 206 && node.name.kind === 8 && (node.flags & 2 || ts.isDeclarationFile(file))) {
                          ts.forEachChild(node.body, function (node) {
                              if (ts.isExternalModuleImportEqualsDeclaration(node) &&
                                  ts.getExternalModuleImportEqualsDeclarationExpression(node).kind === 8) {
                                  var nameLiteral = ts.getExternalModuleImportEqualsDeclarationExpression(node);
                                  var moduleName = nameLiteral.text;
                                  if (moduleName) {
                                      var searchName = ts.normalizePath(ts.combinePaths(basePath, moduleName));
                                      ts.forEach(ts.supportedExtensions, function (extension) { return findModuleSourceFile(searchName + extension, nameLiteral); });
                                  }
                              }
                          });
                      }
                  });
                  function findModuleSourceFile(fileName, nameLiteral) {
                      return findSourceFile(fileName, false, file, nameLiteral.pos, nameLiteral.end - nameLiteral.pos);
                  }
              }
              function computeCommonSourceDirectory(sourceFiles) {
                  var commonPathComponents;
                  var currentDirectory = host.getCurrentDirectory();
                  ts.forEach(files, function (sourceFile) {
                      if (ts.isDeclarationFile(sourceFile)) {
                          return;
                      }
                      var sourcePathComponents = ts.getNormalizedPathComponents(sourceFile.fileName, currentDirectory);
                      sourcePathComponents.pop();
                      if (!commonPathComponents) {
                          commonPathComponents = sourcePathComponents;
                          return;
                      }
                      for (var i = 0, n = Math.min(commonPathComponents.length, sourcePathComponents.length); i < n; i++) {
                          if (commonPathComponents[i] !== sourcePathComponents[i]) {
                              if (i === 0) {
                                  diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files));
                                  return;
                              }
                              commonPathComponents.length = i;
                              break;
                          }
                      }
                      if (sourcePathComponents.length < commonPathComponents.length) {
                          commonPathComponents.length = sourcePathComponents.length;
                      }
                  });
                  return ts.getNormalizedPathFromPathComponents(commonPathComponents);
              }
              function checkSourceFilesBelongToPath(sourceFiles, rootDirectory) {
                  var allFilesBelongToPath = true;
                  if (sourceFiles) {
                      var currentDirectory = host.getCurrentDirectory();
                      var absoluteRootDirectoryPath = host.getCanonicalFileName(ts.getNormalizedAbsolutePath(rootDirectory, currentDirectory));
                      for (var _i = 0; _i < sourceFiles.length; _i++) {
                          var sourceFile = sourceFiles[_i];
                          if (!ts.isDeclarationFile(sourceFile)) {
                              var absoluteSourceFilePath = host.getCanonicalFileName(ts.getNormalizedAbsolutePath(sourceFile.fileName, currentDirectory));
                              if (absoluteSourceFilePath.indexOf(absoluteRootDirectoryPath) !== 0) {
                                  diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files, sourceFile.fileName, options.rootDir));
                                  allFilesBelongToPath = false;
                              }
                          }
                      }
                  }
                  return allFilesBelongToPath;
              }
              function verifyCompilerOptions() {
                  if (options.separateCompilation) {
                      if (options.sourceMap) {
                          diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_sourceMap_cannot_be_specified_with_option_separateCompilation));
                      }
                      if (options.declaration) {
                          diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_declaration_cannot_be_specified_with_option_separateCompilation));
                      }
                      if (options.noEmitOnError) {
                          diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_noEmitOnError_cannot_be_specified_with_option_separateCompilation));
                      }
                      if (options.out) {
                          diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_out_cannot_be_specified_with_option_separateCompilation));
                      }
                  }
                  if (options.inlineSourceMap) {
                      if (options.sourceMap) {
                          diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_sourceMap_cannot_be_specified_with_option_inlineSourceMap));
                      }
                      if (options.mapRoot) {
                          diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_mapRoot_cannot_be_specified_with_option_inlineSourceMap));
                      }
                      if (options.sourceRoot) {
                          diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_sourceRoot_cannot_be_specified_with_option_inlineSourceMap));
                      }
                  }
                  if (options.inlineSources) {
                      if (!options.sourceMap && !options.inlineSourceMap) {
                          diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_inlineSources_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided));
                      }
                  }
                  if (!options.sourceMap && (options.mapRoot || options.sourceRoot)) {
                      if (options.mapRoot) {
                          diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_mapRoot_cannot_be_specified_without_specifying_sourceMap_option));
                      }
                      if (options.sourceRoot) {
                          diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_sourceRoot_cannot_be_specified_without_specifying_sourceMap_option));
                      }
                      return;
                  }
                  var languageVersion = options.target || 0;
                  var firstExternalModuleSourceFile = ts.forEach(files, function (f) { return ts.isExternalModule(f) ? f : undefined; });
                  if (options.separateCompilation) {
                      if (!options.module && languageVersion < 2) {
                          diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_separateCompilation_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES6_or_higher));
                      }
                      var firstNonExternalModuleSourceFile = ts.forEach(files, function (f) { return !ts.isExternalModule(f) && !ts.isDeclarationFile(f) ? f : undefined; });
                      if (firstNonExternalModuleSourceFile) {
                          var span = ts.getErrorSpanForNode(firstNonExternalModuleSourceFile, firstNonExternalModuleSourceFile);
                          diagnostics.add(ts.createFileDiagnostic(firstNonExternalModuleSourceFile, span.start, span.length, ts.Diagnostics.Cannot_compile_namespaces_when_the_separateCompilation_flag_is_provided));
                      }
                  }
                  else if (firstExternalModuleSourceFile && languageVersion < 2 && !options.module) {
                      var span = ts.getErrorSpanForNode(firstExternalModuleSourceFile, firstExternalModuleSourceFile.externalModuleIndicator);
                      diagnostics.add(ts.createFileDiagnostic(firstExternalModuleSourceFile, span.start, span.length, ts.Diagnostics.Cannot_compile_modules_unless_the_module_flag_is_provided));
                  }
                  if (options.module && languageVersion >= 2) {
                      diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_compile_modules_into_commonjs_amd_system_or_umd_when_targeting_ES6_or_higher));
                  }
                  if (options.outDir ||
                      options.sourceRoot ||
                      (options.mapRoot &&
                          (!options.out || firstExternalModuleSourceFile !== undefined))) {
                      if (options.rootDir && checkSourceFilesBelongToPath(files, options.rootDir)) {
                          commonSourceDirectory = ts.getNormalizedAbsolutePath(options.rootDir, host.getCurrentDirectory());
                      }
                      else {
                          commonSourceDirectory = computeCommonSourceDirectory(files);
                      }
                      if (commonSourceDirectory && commonSourceDirectory[commonSourceDirectory.length - 1] !== ts.directorySeparator) {
                          commonSourceDirectory += ts.directorySeparator;
                      }
                  }
                  if (options.noEmit) {
                      if (options.out || options.outDir) {
                          diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_noEmit_cannot_be_specified_with_option_out_or_outDir));
                      }
                      if (options.declaration) {
                          diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_noEmit_cannot_be_specified_with_option_declaration));
                      }
                  }
              }
          }
          ts.createProgram = createProgram;
      })(ts || (ts = {}));
      /// <reference path="sys.ts"/>
      /// <reference path="types.ts"/>
      /// <reference path="core.ts"/>
      /// <reference path="scanner.ts"/>
      var ts;
      (function (ts) {
          ts.optionDeclarations = [
              {
                  name: "charset",
                  type: "string"
              },
              {
                  name: "declaration",
                  shortName: "d",
                  type: "boolean",
                  description: ts.Diagnostics.Generates_corresponding_d_ts_file
              },
              {
                  name: "diagnostics",
                  type: "boolean"
              },
              {
                  name: "emitBOM",
                  type: "boolean"
              },
              {
                  name: "help",
                  shortName: "h",
                  type: "boolean",
                  description: ts.Diagnostics.Print_this_message
              },
              {
                  name: "inlineSourceMap",
                  type: "boolean"
              },
              {
                  name: "inlineSources",
                  type: "boolean"
              },
              {
                  name: "listFiles",
                  type: "boolean"
              },
              {
                  name: "locale",
                  type: "string"
              },
              {
                  name: "mapRoot",
                  type: "string",
                  isFilePath: true,
                  description: ts.Diagnostics.Specifies_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations,
                  paramType: ts.Diagnostics.LOCATION
              },
              {
                  name: "module",
                  shortName: "m",
                  type: {
                      "commonjs": 1,
                      "amd": 2,
                      "system": 4,
                      "umd": 3
                  },
                  description: ts.Diagnostics.Specify_module_code_generation_Colon_commonjs_amd_system_or_umd,
                  paramType: ts.Diagnostics.KIND,
                  error: ts.Diagnostics.Argument_for_module_option_must_be_commonjs_amd_system_or_umd
              },
              {
                  name: "newLine",
                  type: {
                      "crlf": 0,
                      "lf": 1
                  },
                  description: ts.Diagnostics.Specifies_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix,
                  paramType: ts.Diagnostics.NEWLINE,
                  error: ts.Diagnostics.Argument_for_newLine_option_must_be_CRLF_or_LF
              },
              {
                  name: "noEmit",
                  type: "boolean",
                  description: ts.Diagnostics.Do_not_emit_outputs
              },
              {
                  name: "noEmitHelpers",
                  type: "boolean"
              },
              {
                  name: "noEmitOnError",
                  type: "boolean",
                  description: ts.Diagnostics.Do_not_emit_outputs_if_any_errors_were_reported
              },
              {
                  name: "noImplicitAny",
                  type: "boolean",
                  description: ts.Diagnostics.Raise_error_on_expressions_and_declarations_with_an_implied_any_type
              },
              {
                  name: "noLib",
                  type: "boolean"
              },
              {
                  name: "noResolve",
                  type: "boolean"
              },
              {
                  name: "out",
                  type: "string",
                  description: ts.Diagnostics.Concatenate_and_emit_output_to_single_file,
                  paramType: ts.Diagnostics.FILE
              },
              {
                  name: "outDir",
                  type: "string",
                  isFilePath: true,
                  description: ts.Diagnostics.Redirect_output_structure_to_the_directory,
                  paramType: ts.Diagnostics.DIRECTORY
              },
              {
                  name: "preserveConstEnums",
                  type: "boolean",
                  description: ts.Diagnostics.Do_not_erase_const_enum_declarations_in_generated_code
              },
              {
                  name: "project",
                  shortName: "p",
                  type: "string",
                  isFilePath: true,
                  description: ts.Diagnostics.Compile_the_project_in_the_given_directory,
                  paramType: ts.Diagnostics.DIRECTORY
              },
              {
                  name: "removeComments",
                  type: "boolean",
                  description: ts.Diagnostics.Do_not_emit_comments_to_output
              },
              {
                  name: "rootDir",
                  type: "string",
                  isFilePath: true,
                  description: ts.Diagnostics.Specifies_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir,
                  paramType: ts.Diagnostics.LOCATION
              },
              {
                  name: "separateCompilation",
                  type: "boolean"
              },
              {
                  name: "sourceMap",
                  type: "boolean",
                  description: ts.Diagnostics.Generates_corresponding_map_file
              },
              {
                  name: "sourceRoot",
                  type: "string",
                  isFilePath: true,
                  description: ts.Diagnostics.Specifies_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations,
                  paramType: ts.Diagnostics.LOCATION
              },
              {
                  name: "suppressImplicitAnyIndexErrors",
                  type: "boolean",
                  description: ts.Diagnostics.Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures
              },
              {
                  name: "stripInternal",
                  type: "boolean",
                  description: ts.Diagnostics.Do_not_emit_declarations_for_code_that_has_an_internal_annotation,
                  experimental: true
              },
              {
                  name: "target",
                  shortName: "t",
                  type: { "es3": 0, "es5": 1, "es6": 2 },
                  description: ts.Diagnostics.Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental,
                  paramType: ts.Diagnostics.VERSION,
                  error: ts.Diagnostics.Argument_for_target_option_must_be_ES3_ES5_or_ES6
              },
              {
                  name: "version",
                  shortName: "v",
                  type: "boolean",
                  description: ts.Diagnostics.Print_the_compiler_s_version
              },
              {
                  name: "watch",
                  shortName: "w",
                  type: "boolean",
                  description: ts.Diagnostics.Watch_input_files
              },
              {
                  name: "emitDecoratorMetadata",
                  type: "boolean",
                  experimental: true
              }
          ];
          function parseCommandLine(commandLine) {
              var options = {};
              var fileNames = [];
              var errors = [];
              var shortOptionNames = {};
              var optionNameMap = {};
              ts.forEach(ts.optionDeclarations, function (option) {
                  optionNameMap[option.name.toLowerCase()] = option;
                  if (option.shortName) {
                      shortOptionNames[option.shortName] = option.name;
                  }
              });
              parseStrings(commandLine);
              return {
                  options: options,
                  fileNames: fileNames,
                  errors: errors
              };
              function parseStrings(args) {
                  var i = 0;
                  while (i < args.length) {
                      var s = args[i++];
                      if (s.charCodeAt(0) === 64) {
                          parseResponseFile(s.slice(1));
                      }
                      else if (s.charCodeAt(0) === 45) {
                          s = s.slice(s.charCodeAt(1) === 45 ? 2 : 1).toLowerCase();
                          if (ts.hasProperty(shortOptionNames, s)) {
                              s = shortOptionNames[s];
                          }
                          if (ts.hasProperty(optionNameMap, s)) {
                              var opt = optionNameMap[s];
                              if (!args[i] && opt.type !== "boolean") {
                                  errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Compiler_option_0_expects_an_argument, opt.name));
                              }
                              switch (opt.type) {
                                  case "number":
                                      options[opt.name] = parseInt(args[i++]);
                                      break;
                                  case "boolean":
                                      options[opt.name] = true;
                                      break;
                                  case "string":
                                      options[opt.name] = args[i++] || "";
                                      break;
                                  default:
                                      var map = opt.type;
                                      var key = (args[i++] || "").toLowerCase();
                                      if (ts.hasProperty(map, key)) {
                                          options[opt.name] = map[key];
                                      }
                                      else {
                                          errors.push(ts.createCompilerDiagnostic(opt.error));
                                      }
                              }
                          }
                          else {
                              errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Unknown_compiler_option_0, s));
                          }
                      }
                      else {
                          fileNames.push(s);
                      }
                  }
              }
              function parseResponseFile(fileName) {
                  var text = ts.sys.readFile(fileName);
                  if (!text) {
                      errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.File_0_not_found, fileName));
                      return;
                  }
                  var args = [];
                  var pos = 0;
                  while (true) {
                      while (pos < text.length && text.charCodeAt(pos) <= 32)
                          pos++;
                      if (pos >= text.length)
                          break;
                      var start = pos;
                      if (text.charCodeAt(start) === 34) {
                          pos++;
                          while (pos < text.length && text.charCodeAt(pos) !== 34)
                              pos++;
                          if (pos < text.length) {
                              args.push(text.substring(start + 1, pos));
                              pos++;
                          }
                          else {
                              errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Unterminated_quoted_string_in_response_file_0, fileName));
                          }
                      }
                      else {
                          while (text.charCodeAt(pos) > 32)
                              pos++;
                          args.push(text.substring(start, pos));
                      }
                  }
                  parseStrings(args);
              }
          }
          ts.parseCommandLine = parseCommandLine;
          function readConfigFile(fileName) {
              try {
                  var text = ts.sys.readFile(fileName);
              }
              catch (e) {
                  return { error: ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, e.message) };
              }
              return parseConfigFileText(fileName, text);
          }
          ts.readConfigFile = readConfigFile;
          function parseConfigFileText(fileName, jsonText) {
              try {
                  return { config: /\S/.test(jsonText) ? JSON.parse(jsonText) : {} };
              }
              catch (e) {
                  return { error: ts.createCompilerDiagnostic(ts.Diagnostics.Failed_to_parse_file_0_Colon_1, fileName, e.message) };
              }
          }
          ts.parseConfigFileText = parseConfigFileText;
          function parseConfigFile(json, host, basePath) {
              var errors = [];
              return {
                  options: getCompilerOptions(),
                  fileNames: getFiles(),
                  errors: errors
              };
              function getCompilerOptions() {
                  var options = {};
                  var optionNameMap = {};
                  ts.forEach(ts.optionDeclarations, function (option) {
                      optionNameMap[option.name] = option;
                  });
                  var jsonOptions = json["compilerOptions"];
                  if (jsonOptions) {
                      for (var id in jsonOptions) {
                          if (ts.hasProperty(optionNameMap, id)) {
                              var opt = optionNameMap[id];
                              var optType = opt.type;
                              var value = jsonOptions[id];
                              var expectedType = typeof optType === "string" ? optType : "string";
                              if (typeof value === expectedType) {
                                  if (typeof optType !== "string") {
                                      var key = value.toLowerCase();
                                      if (ts.hasProperty(optType, key)) {
                                          value = optType[key];
                                      }
                                      else {
                                          errors.push(ts.createCompilerDiagnostic(opt.error));
                                          value = 0;
                                      }
                                  }
                                  if (opt.isFilePath) {
                                      value = ts.normalizePath(ts.combinePaths(basePath, value));
                                  }
                                  options[opt.name] = value;
                              }
                              else {
                                  errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, id, expectedType));
                              }
                          }
                          else {
                              errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Unknown_compiler_option_0, id));
                          }
                      }
                  }
                  return options;
              }
              function getFiles() {
                  var files = [];
                  if (ts.hasProperty(json, "files")) {
                      if (json["files"] instanceof Array) {
                          var files = ts.map(json["files"], function (s) { return ts.combinePaths(basePath, s); });
                      }
                  }
                  else {
                      var sysFiles = host.readDirectory(basePath, ".ts");
                      for (var i = 0; i < sysFiles.length; i++) {
                          var name = sysFiles[i];
                          if (!ts.fileExtensionIs(name, ".d.ts") || !ts.contains(sysFiles, name.substr(0, name.length - 5) + ".ts")) {
                              files.push(name);
                          }
                      }
                  }
                  return files;
              }
          }
          ts.parseConfigFile = parseConfigFile;
      })(ts || (ts = {}));
      /// <reference path="program.ts"/>
      /// <reference path="commandLineParser.ts"/>
      var ts;
      (function (ts) {
          function validateLocaleAndSetLanguage(locale, errors) {
              var matchResult = /^([a-z]+)([_\-]([a-z]+))?$/.exec(locale.toLowerCase());
              if (!matchResult) {
                  errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1, 'en', 'ja-jp'));
                  return false;
              }
              var language = matchResult[1];
              var territory = matchResult[3];
              if (!trySetLanguageAndTerritory(language, territory, errors) &&
                  !trySetLanguageAndTerritory(language, undefined, errors)) {
                  errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Unsupported_locale_0, locale));
                  return false;
              }
              return true;
          }
          function trySetLanguageAndTerritory(language, territory, errors) {
              var compilerFilePath = ts.normalizePath(ts.sys.getExecutingFilePath());
              var containingDirectoryPath = ts.getDirectoryPath(compilerFilePath);
              var filePath = ts.combinePaths(containingDirectoryPath, language);
              if (territory) {
                  filePath = filePath + "-" + territory;
              }
              filePath = ts.sys.resolvePath(ts.combinePaths(filePath, "diagnosticMessages.generated.json"));
              if (!ts.sys.fileExists(filePath)) {
                  return false;
              }
              try {
                  var fileContents = ts.sys.readFile(filePath);
              }
              catch (e) {
                  errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Unable_to_open_file_0, filePath));
                  return false;
              }
              try {
                  ts.localizedDiagnosticMessages = JSON.parse(fileContents);
              }
              catch (e) {
                  errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Corrupted_locale_file_0, filePath));
                  return false;
              }
              return true;
          }
          function countLines(program) {
              var count = 0;
              ts.forEach(program.getSourceFiles(), function (file) {
                  count += ts.getLineStarts(file).length;
              });
              return count;
          }
          function getDiagnosticText(message) {
              var args = [];
              for (var _i = 1; _i < arguments.length; _i++) {
                  args[_i - 1] = arguments[_i];
              }
              var diagnostic = ts.createCompilerDiagnostic.apply(undefined, arguments);
              return diagnostic.messageText;
          }
          function reportDiagnostic(diagnostic) {
              var output = "";
              if (diagnostic.file) {
                  var loc = ts.getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start);
                  output += diagnostic.file.fileName + "(" + (loc.line + 1) + "," + (loc.character + 1) + "): ";
              }
              var category = ts.DiagnosticCategory[diagnostic.category].toLowerCase();
              output += category + " TS" + diagnostic.code + ": " + ts.flattenDiagnosticMessageText(diagnostic.messageText, ts.sys.newLine) + ts.sys.newLine;
              ts.sys.write(output);
          }
          function reportDiagnostics(diagnostics) {
              for (var i = 0; i < diagnostics.length; i++) {
                  reportDiagnostic(diagnostics[i]);
              }
          }
          function padLeft(s, length) {
              while (s.length < length) {
                  s = " " + s;
              }
              return s;
          }
          function padRight(s, length) {
              while (s.length < length) {
                  s = s + " ";
              }
              return s;
          }
          function reportStatisticalValue(name, value) {
              ts.sys.write(padRight(name + ":", 12) + padLeft(value.toString(), 10) + ts.sys.newLine);
          }
          function reportCountStatistic(name, count) {
              reportStatisticalValue(name, "" + count);
          }
          function reportTimeStatistic(name, time) {
              reportStatisticalValue(name, (time / 1000).toFixed(2) + "s");
          }
          function isJSONSupported() {
              return typeof JSON === "object" && typeof JSON.parse === "function";
          }
          function executeCommandLine(args) {
              var commandLine = ts.parseCommandLine(args);
              var configFileName;
              var configFileWatcher;
              var cachedProgram;
              var rootFileNames;
              var compilerOptions;
              var compilerHost;
              var hostGetSourceFile;
              var timerHandle;
              if (commandLine.options.locale) {
                  if (!isJSONSupported()) {
                      reportDiagnostic(ts.createCompilerDiagnostic(ts.Diagnostics.The_current_host_does_not_support_the_0_option, "--locale"));
                      return ts.sys.exit(ts.ExitStatus.DiagnosticsPresent_OutputsSkipped);
                  }
                  validateLocaleAndSetLanguage(commandLine.options.locale, commandLine.errors);
              }
              if (commandLine.errors.length > 0) {
                  reportDiagnostics(commandLine.errors);
                  return ts.sys.exit(ts.ExitStatus.DiagnosticsPresent_OutputsSkipped);
              }
              if (commandLine.options.version) {
                  reportDiagnostic(ts.createCompilerDiagnostic(ts.Diagnostics.Version_0, ts.version));
                  return ts.sys.exit(ts.ExitStatus.Success);
              }
              if (commandLine.options.help) {
                  printVersion();
                  printHelp();
                  return ts.sys.exit(ts.ExitStatus.Success);
              }
              if (commandLine.options.project) {
                  if (!isJSONSupported()) {
                      reportDiagnostic(ts.createCompilerDiagnostic(ts.Diagnostics.The_current_host_does_not_support_the_0_option, "--project"));
                      return ts.sys.exit(ts.ExitStatus.DiagnosticsPresent_OutputsSkipped);
                  }
                  configFileName = ts.normalizePath(ts.combinePaths(commandLine.options.project, "tsconfig.json"));
                  if (commandLine.fileNames.length !== 0) {
                      reportDiagnostic(ts.createCompilerDiagnostic(ts.Diagnostics.Option_project_cannot_be_mixed_with_source_files_on_a_command_line));
                      return ts.sys.exit(ts.ExitStatus.DiagnosticsPresent_OutputsSkipped);
                  }
              }
              else if (commandLine.fileNames.length === 0 && isJSONSupported()) {
                  var searchPath = ts.normalizePath(ts.sys.getCurrentDirectory());
                  configFileName = ts.findConfigFile(searchPath);
              }
              if (commandLine.fileNames.length === 0 && !configFileName) {
                  printVersion();
                  printHelp();
                  return ts.sys.exit(ts.ExitStatus.Success);
              }
              if (commandLine.options.watch) {
                  if (!ts.sys.watchFile) {
                      reportDiagnostic(ts.createCompilerDiagnostic(ts.Diagnostics.The_current_host_does_not_support_the_0_option, "--watch"));
                      return ts.sys.exit(ts.ExitStatus.DiagnosticsPresent_OutputsSkipped);
                  }
                  if (configFileName) {
                      configFileWatcher = ts.sys.watchFile(configFileName, configFileChanged);
                  }
              }
              performCompilation();
              function performCompilation() {
                  if (!cachedProgram) {
                      if (configFileName) {
                          var result = ts.readConfigFile(configFileName);
                          if (result.error) {
                              reportDiagnostic(result.error);
                              return ts.sys.exit(ts.ExitStatus.DiagnosticsPresent_OutputsSkipped);
                          }
                          var configObject = result.config;
                          var configParseResult = ts.parseConfigFile(configObject, ts.sys, ts.getDirectoryPath(configFileName));
                          if (configParseResult.errors.length > 0) {
                              reportDiagnostics(configParseResult.errors);
                              return ts.sys.exit(ts.ExitStatus.DiagnosticsPresent_OutputsSkipped);
                          }
                          rootFileNames = configParseResult.fileNames;
                          compilerOptions = ts.extend(commandLine.options, configParseResult.options);
                      }
                      else {
                          rootFileNames = commandLine.fileNames;
                          compilerOptions = commandLine.options;
                      }
                      compilerHost = ts.createCompilerHost(compilerOptions);
                      hostGetSourceFile = compilerHost.getSourceFile;
                      compilerHost.getSourceFile = getSourceFile;
                  }
                  var compileResult = compile(rootFileNames, compilerOptions, compilerHost);
                  if (!compilerOptions.watch) {
                      return ts.sys.exit(compileResult.exitStatus);
                  }
                  setCachedProgram(compileResult.program);
                  reportDiagnostic(ts.createCompilerDiagnostic(ts.Diagnostics.Compilation_complete_Watching_for_file_changes));
              }
              function getSourceFile(fileName, languageVersion, onError) {
                  if (cachedProgram) {
                      var sourceFile = cachedProgram.getSourceFile(fileName);
                      if (sourceFile && sourceFile.fileWatcher) {
                          return sourceFile;
                      }
                  }
                  var sourceFile = hostGetSourceFile(fileName, languageVersion, onError);
                  if (sourceFile && compilerOptions.watch) {
                      sourceFile.fileWatcher = ts.sys.watchFile(sourceFile.fileName, function () { return sourceFileChanged(sourceFile); });
                  }
                  return sourceFile;
              }
              function setCachedProgram(program) {
                  if (cachedProgram) {
                      var newSourceFiles = program ? program.getSourceFiles() : undefined;
                      ts.forEach(cachedProgram.getSourceFiles(), function (sourceFile) {
                          if (!(newSourceFiles && ts.contains(newSourceFiles, sourceFile))) {
                              if (sourceFile.fileWatcher) {
                                  sourceFile.fileWatcher.close();
                                  sourceFile.fileWatcher = undefined;
                              }
                          }
                      });
                  }
                  cachedProgram = program;
              }
              function sourceFileChanged(sourceFile) {
                  sourceFile.fileWatcher.close();
                  sourceFile.fileWatcher = undefined;
                  startTimer();
              }
              function configFileChanged() {
                  setCachedProgram(undefined);
                  startTimer();
              }
              function startTimer() {
                  if (timerHandle) {
                      clearTimeout(timerHandle);
                  }
                  timerHandle = setTimeout(recompile, 250);
              }
              function recompile() {
                  timerHandle = undefined;
                  reportDiagnostic(ts.createCompilerDiagnostic(ts.Diagnostics.File_change_detected_Starting_incremental_compilation));
                  performCompilation();
              }
          }
          ts.executeCommandLine = executeCommandLine;
          function compile(fileNames, compilerOptions, compilerHost) {
              ts.ioReadTime = 0;
              ts.ioWriteTime = 0;
              ts.programTime = 0;
              ts.bindTime = 0;
              ts.checkTime = 0;
              ts.emitTime = 0;
              var program = ts.createProgram(fileNames, compilerOptions, compilerHost);
              var exitStatus = compileProgram();
              if (compilerOptions.listFiles) {
                  ts.forEach(program.getSourceFiles(), function (file) {
                      ts.sys.write(file.fileName + ts.sys.newLine);
                  });
              }
              if (compilerOptions.diagnostics) {
                  var memoryUsed = ts.sys.getMemoryUsage ? ts.sys.getMemoryUsage() : -1;
                  reportCountStatistic("Files", program.getSourceFiles().length);
                  reportCountStatistic("Lines", countLines(program));
                  reportCountStatistic("Nodes", program.getNodeCount());
                  reportCountStatistic("Identifiers", program.getIdentifierCount());
                  reportCountStatistic("Symbols", program.getSymbolCount());
                  reportCountStatistic("Types", program.getTypeCount());
                  if (memoryUsed >= 0) {
                      reportStatisticalValue("Memory used", Math.round(memoryUsed / 1000) + "K");
                  }
                  reportTimeStatistic("I/O read", ts.ioReadTime);
                  reportTimeStatistic("I/O write", ts.ioWriteTime);
                  reportTimeStatistic("Parse time", ts.programTime);
                  reportTimeStatistic("Bind time", ts.bindTime);
                  reportTimeStatistic("Check time", ts.checkTime);
                  reportTimeStatistic("Emit time", ts.emitTime);
                  reportTimeStatistic("Total time", ts.programTime + ts.bindTime + ts.checkTime + ts.emitTime);
              }
              return { program: program, exitStatus: exitStatus };
              function compileProgram() {
                  var diagnostics = program.getSyntacticDiagnostics();
                  reportDiagnostics(diagnostics);
                  if (diagnostics.length === 0) {
                      var diagnostics = program.getGlobalDiagnostics();
                      reportDiagnostics(diagnostics);
                      if (diagnostics.length === 0) {
                          var diagnostics = program.getSemanticDiagnostics();
                          reportDiagnostics(diagnostics);
                      }
                  }
                  if (compilerOptions.noEmit) {
                      return diagnostics.length
                          ? ts.ExitStatus.DiagnosticsPresent_OutputsSkipped
                          : ts.ExitStatus.Success;
                  }
                  var emitOutput = program.emit();
                  reportDiagnostics(emitOutput.diagnostics);
                  if (emitOutput.emitSkipped) {
                      return ts.ExitStatus.DiagnosticsPresent_OutputsSkipped;
                  }
                  if (diagnostics.length > 0 || emitOutput.diagnostics.length > 0) {
                      return ts.ExitStatus.DiagnosticsPresent_OutputsGenerated;
                  }
                  return ts.ExitStatus.Success;
              }
          }
          function printVersion() {
              ts.sys.write(getDiagnosticText(ts.Diagnostics.Version_0, ts.version) + ts.sys.newLine);
          }
          function printHelp() {
              var output = "";
              var syntaxLength = getDiagnosticText(ts.Diagnostics.Syntax_Colon_0, "").length;
              var examplesLength = getDiagnosticText(ts.Diagnostics.Examples_Colon_0, "").length;
              var marginLength = Math.max(syntaxLength, examplesLength);
              var syntax = makePadding(marginLength - syntaxLength);
              syntax += "tsc [" + getDiagnosticText(ts.Diagnostics.options) + "] [" + getDiagnosticText(ts.Diagnostics.file) + " ...]";
              output += getDiagnosticText(ts.Diagnostics.Syntax_Colon_0, syntax);
              output += ts.sys.newLine + ts.sys.newLine;
              var padding = makePadding(marginLength);
              output += getDiagnosticText(ts.Diagnostics.Examples_Colon_0, makePadding(marginLength - examplesLength) + "tsc hello.ts") + ts.sys.newLine;
              output += padding + "tsc --out file.js file.ts" + ts.sys.newLine;
              output += padding + "tsc @args.txt" + ts.sys.newLine;
              output += ts.sys.newLine;
              output += getDiagnosticText(ts.Diagnostics.Options_Colon) + ts.sys.newLine;
              var optsList = ts.filter(ts.optionDeclarations.slice(), function (v) { return !v.experimental; });
              optsList.sort(function (a, b) { return ts.compareValues(a.name.toLowerCase(), b.name.toLowerCase()); });
              var marginLength = 0;
              var usageColumn = [];
              var descriptionColumn = [];
              for (var i = 0; i < optsList.length; i++) {
                  var option = optsList[i];
                  if (!option.description) {
                      continue;
                  }
                  var usageText = " ";
                  if (option.shortName) {
                      usageText += "-" + option.shortName;
                      usageText += getParamType(option);
                      usageText += ", ";
                  }
                  usageText += "--" + option.name;
                  usageText += getParamType(option);
                  usageColumn.push(usageText);
                  descriptionColumn.push(getDiagnosticText(option.description));
                  marginLength = Math.max(usageText.length, marginLength);
              }
              var usageText = " @<" + getDiagnosticText(ts.Diagnostics.file) + ">";
              usageColumn.push(usageText);
              descriptionColumn.push(getDiagnosticText(ts.Diagnostics.Insert_command_line_options_and_files_from_a_file));
              marginLength = Math.max(usageText.length, marginLength);
              for (var i = 0; i < usageColumn.length; i++) {
                  var usage = usageColumn[i];
                  var description = descriptionColumn[i];
                  output += usage + makePadding(marginLength - usage.length + 2) + description + ts.sys.newLine;
              }
              ts.sys.write(output);
              return;
              function getParamType(option) {
                  if (option.paramType !== undefined) {
                      return " " + getDiagnosticText(option.paramType);
                  }
                  return "";
              }
              function makePadding(paddingLength) {
                  return Array(paddingLength + 1).join(" ");
              }
          }
      })(ts || (ts = {}));
      ts.executeCommandLine(ts.sys.args);
      
  • typings
    • codemirror.d.ts
      declare var CodeMirror : CodeMirror.CodeMirrorStatic;
      
      interface CodeMirror {
      
        /** Tells you whether the editor currently has focus. */
        hasFocus(): boolean;
      
        /** Used to find the target position for horizontal cursor motion.start is a { line , ch } object,
        amount an integer(may be negative), and unit one of the string "char", "column", or "word".
        Will return a position that is produced by moving amount times the distance specified by unit.
        When visually is true , motion in right - to - left text will be visual rather than logical.
        When the motion was clipped by hitting the end or start of the document, the returned value will have a hitSide property set to true. */
        findPosH(start: CodeMirror.Pos, amount: number, unit: string, visually: boolean): { line: number; ch: number; hitSide?: boolean; };
      
        /** Similar to findPosH , but used for vertical motion.unit may be "line" or "page".
        The other arguments and the returned value have the same interpretation as they have in findPosH. */
        findPosV(start: CodeMirror.Pos, amount: number, unit: string): { line: number; ch: number; hitSide?: boolean; };
      
      
        /** Change the configuration of the editor. option should the name of an option, and value should be a valid value for that option. */
        setOption(option: string, value: any);
      
        /** Retrieves the current value of the given option for this editor instance. */
        getOption(option: string): any;
      
        /** Attach an additional keymap to the editor.
        This is mostly useful for add - ons that need to register some key handlers without trampling on the extraKeys option.
        Maps added in this way have a higher precedence than the extraKeys and keyMap options, and between them,
        the maps added earlier have a lower precedence than those added later, unless the bottom argument was passed,
        in which case they end up below other keymaps added with this method. */
        addKeyMap(map: any, bottom?: boolean);
      
        /** Disable a keymap added with addKeyMap.Either pass in the keymap object itself , or a string,
        which will be compared against the name property of the active keymaps. */
        removeKeyMap(map: any);
      
        /** Enable a highlighting overlay.This is a stateless mini - mode that can be used to add extra highlighting.
        For example, the search add - on uses it to highlight the term that's currently being searched.
        mode can be a mode spec or a mode object (an object with a token method). The options parameter is optional. If given, it should be an object.
        Currently, only the opaque option is recognized. This defaults to off, but can be given to allow the overlay styling, when not null,
        to override the styling of the base mode entirely, instead of the two being applied together. */
        addOverlay(mode: any, options?: any);
      
        /** Pass this the exact argument passed for the mode parameter to addOverlay to remove an overlay again. */
        removeOverlay(mode: any);
      
      
        /** Retrieve the currently active document from an editor. */
        getDoc(): CodeMirror.Doc;
      
        /** Attach a new document to the editor. Returns the old document, which is now no longer associated with an editor. */
        swapDoc(doc: CodeMirror.Doc): CodeMirror.Doc;
      
      
      
        /** Sets the gutter marker for the given gutter (identified by its CSS class, see the gutters option) to the given value.
        Value can be either null, to clear the marker, or a DOM element, to set it. The DOM element will be shown in the specified gutter next to the specified line. */
        setGutterMarker(line: any, gutterID: string, value: HTMLElement): CodeMirror.LineHandle;
      
        /** Remove all gutter markers in the gutter with the given ID. */
        clearGutter(gutterID: string);
      
        /** Set a CSS class name for the given line.line can be a number or a line handle.
        where determines to which element this class should be applied, can can be one of "text" (the text element, which lies in front of the selection),
        "background"(a background element that will be behind the selection),
        or "wrap" (the wrapper node that wraps all of the line's elements, including gutter elements).
        class should be the name of the class to apply. */
        addLineClass(line: any, where: string, _class_: string): CodeMirror.LineHandle;
      
        /** Remove a CSS class from a line.line can be a line handle or number.
        where should be one of "text", "background", or "wrap"(see addLineClass).
        class can be left off to remove all classes for the specified node, or be a string to remove only a specific class. */
        removeLineClass(line: any, where: string, class_: string): CodeMirror.LineHandle;
      
        /** Returns the line number, text content, and marker status of the given line, which can be either a number or a line handle. */
        lineInfo(line: any): {
            line: any;
            handle: any;
            text: string;
            /** Object mapping gutter IDs to marker elements. */
            gutterMarks: any;
            textClass: string;
            bgClass: string;
            wrapClass: string;
            /** Array of line widgets attached to this line. */
            widgets: any;
        };
      
        /** Puts node, which should be an absolutely positioned DOM node, into the editor, positioned right below the given { line , ch } position.
        When scrollIntoView is true, the editor will ensure that the entire node is visible (if possible).
        To remove the widget again, simply use DOM methods (move it somewhere else, or call removeChild on its parent). */
        addWidget(pos: CodeMirror.Pos, node: HTMLElement, scrollIntoView: boolean);
      
        /** Adds a line widget, an element shown below a line, spanning the whole of the editor's width, and moving the lines below it downwards.
        line should be either an integer or a line handle, and node should be a DOM node, which will be displayed below the given line.
        options, when given, should be an object that configures the behavior of the widget.
        Note that the widget node will become a descendant of nodes with CodeMirror-specific CSS classes, and those classes might in some cases affect it. */
        addLineWidget(line: any, node: HTMLElement, options?: {
            /** Whether the widget should cover the gutter. */
            coverGutter: boolean;
            /** Whether the widget should stay fixed in the face of horizontal scrolling. */
            noHScroll: boolean;
            /** Causes the widget to be placed above instead of below the text of the line. */
            above: boolean;
            /** When true, will cause the widget to be rendered even if the line it is associated with is hidden. */
            showIfHidden: boolean;
        }): CodeMirror.LineWidget;
      
      
        /** Programatically set the size of the editor (overriding the applicable CSS rules).
        width and height height can be either numbers(interpreted as pixels) or CSS units ("100%", for example).
        You can pass null for either of them to indicate that that dimension should not be changed. */
        setSize(width: any, height: any);
      
        /** Scroll the editor to a given(pixel) position.Both arguments may be left as null or undefined to have no effect. */
        scrollTo(x: number, y: number);
      
        /** Get an { left , top , width , height , clientWidth , clientHeight } object that represents the current scroll position, the size of the scrollable area,
        and the size of the visible area(minus scrollbars). */
        getScrollInfo(): CodeMirror.ScrollInfo;
      
        /** Scrolls the given element into view. pos is a { line , ch } position, referring to a given character, null, to refer to the cursor.
        The margin parameter is optional. When given, it indicates the amount of pixels around the given area that should be made visible as well. */
        scrollIntoView(pos: CodeMirror.Pos, margin?: number);
      
        /** Scrolls the given element into view. pos is a { left , top , right , bottom } object, in editor-local coordinates.
        The margin parameter is optional. When given, it indicates the amount of pixels around the given area that should be made visible as well. */
        scrollIntoView(pos: { left: number; top: number; right: number; bottom: number; }, margin: number);
      
        /** Returns an { left , top , bottom } object containing the coordinates of the cursor position.
        If mode is "local" , they will be relative to the top-left corner of the editable document.
        If it is "page" or not given, they are relative to the top-left corner of the page.
        where is a boolean indicating whether you want the start(true) or the end(false) of the selection. */
        cursorCoords(where: boolean, mode: string): { left: number; top: number; bottom: number; };
      
        /** Returns an { left , top , bottom } object containing the coordinates of the cursor position.
        If mode is "local" , they will be relative to the top-left corner of the editable document.
        If it is "page" or not given, they are relative to the top-left corner of the page.
        where specifies the precise position at which you want to measure. */
        cursorCoords(where: CodeMirror.Pos, mode: string): { left: number; top: number; bottom: number; };
      
        /** Returns the position and dimensions of an arbitrary character.pos should be a { line , ch } object.
        This differs from cursorCoords in that it'll give the size of the whole character,
        rather than just the position that the cursor would have when it would sit at that position. */
        charCoords(pos: CodeMirror.Pos, mode: string): { left: number; right: number; top: number; bottom: number; };
      
        /** Given an { left , top } object , returns the { line , ch } position that corresponds to it.
        The optional mode parameter determines relative to what the coordinates are interpreted. It may be "window" , "page"(the default) , or "local". */
        coordsChar(object: { left: number; top: number; }, mode?: string): CodeMirror.Pos;
      
        lineAtHeight(height: number, mode?: string): number;
        heightAtLine(line: number, mode?: string): number;
      
        /** Returns the line height of the default font for the editor. */
        defaultTextHeight(): number;
      
        /** Returns the pixel width of an 'x' in the default font for the editor.
        (Note that for non - monospace fonts , this is mostly useless, and even for monospace fonts, non - ascii characters might have a different width). */
        defaultCharWidth(): number;
      
        /** Returns a { from , to } object indicating the start (inclusive) and end (exclusive) of the currently rendered part of the document.
        In big documents, when most content is scrolled out of view, CodeMirror will only render the visible part, and a margin around it.
        See also the viewportChange event. */
        getViewport(): { from: number; to: number };
      
        /** If your code does something to change the size of the editor element (window resizes are already listened for), or unhides it,
        you should probably follow up by calling this method to ensure CodeMirror is still looking as intended. */
        refresh();
      
      
        /** Retrieves information about the token the current mode found before the given position (a {line, ch} object). */
        getTokenAt(pos: CodeMirror.Pos): {
            /** The character(on the given line) at which the token starts. */
            start: number;
            /** The character at which the token ends. */
            end: number;
            /** The token's string. */
            string: string;
            /** The token type the mode assigned to the token, such as "keyword" or "comment" (may also be null). */
            type: string;
            /** The mode's state at the end of this token. */
            state: any;            
        };
      
        /** Returns the mode's parser state, if any, at the end of the given line number.
        If no line number is given, the state at the end of the document is returned.
        This can be useful for storing parsing errors in the state, or getting other kinds of contextual information for a line. */
        getStateAfter(line?: number): any;
      
        /** CodeMirror internally buffers changes and only updates its DOM structure after it has finished performing some operation.
        If you need to perform a lot of operations on a CodeMirror instance, you can call this method with a function argument.
        It will call the function, buffering up all changes, and only doing the expensive update after the function returns.
        This can be a lot faster. The return value from this method will be the return value of your function. */
        operation<T>(fn: ()=> T): T;
      
        /** Adjust the indentation of the given line.
        The second argument (which defaults to "smart") may be one of:
        "prev" Base indentation on the indentation of the previous line.
        "smart" Use the mode's smart indentation if available, behave like "prev" otherwise.
        "add" Increase the indentation of the line by one indent unit.
        "subtract" Reduce the indentation of the line. */
        indentLine(line: number, dir?: string);
      
      
        /** Give the editor focus. */
        focus();
      
        /** Returns the hidden textarea used to read input. */
        getInputField(): HTMLTextAreaElement;
      
        /** Returns the DOM node that represents the editor, and controls its size. Remove this from your tree to delete an editor instance. */
        getWrapperElement(): HTMLElement;
      
        /** Returns the DOM node that is responsible for the scrolling of the editor. */
        getScrollerElement(): HTMLElement;
      
        /** Fetches the DOM node that contains the editor gutters. */
        getGutterElement(): HTMLElement;
      
      
      
        /** Events are registered with the on method (and removed with the off method).
        These are the events that fire on the instance object. The name of the event is followed by the arguments that will be passed to the handler.
        The instance argument always refers to the editor instance. */
        on(eventName: string, handler: (instance: CodeMirror) => void );
        off(eventName: string, handler: (instance: CodeMirror) => void );
      
        /** Fires every time the content of the editor is changed. */
        on(eventName: 'change', handler: (instance: CodeMirror, change: CodeMirror.EditorChange) => void );
        off(eventName: 'change', handler: (instance: CodeMirror, change: CodeMirror.EditorChange) => void );
      
        /** Fires every time the content of the editor is changed. */
        on(eventName: 'changes', handler: (instance: CodeMirror, change: CodeMirror.EditorChange[]) => void );
        off(eventName: 'changes', handler: (instance: CodeMirror, change: CodeMirror.EditorChange[]) => void );
      
        /** This event is fired before a change is applied, and its handler may choose to modify or cancel the change.
        The changeObj never has a next property, since this is fired for each individual change, and not batched per operation.
        Note: you may not do anything from a "beforeChange" handler that would cause changes to the document or its visualization.
        Doing so will, since this handler is called directly from the bowels of the CodeMirror implementation,
        probably cause the editor to become corrupted. */
        on(eventName: 'beforeChange', handler: (instance: CodeMirror, change: CodeMirror.EditorChangeCancellable) => void );
        off(eventName: 'beforeChange', handler: (instance: CodeMirror, change: CodeMirror.EditorChangeCancellable) => void );
      
        /** Will be fired when the cursor or selection moves, or any change is made to the editor content. */
        on(eventName: 'cursorActivity', handler: (instance: CodeMirror) => void );
        off(eventName: 'cursorActivity', handler: (instance: CodeMirror) => void );
      
        /** This event is fired before the selection is moved. Its handler may modify the resulting selection head and anchor.
        Handlers for this event have the same restriction as "beforeChange" handlers: they should not do anything to directly update the state of the editor. */
        on(eventName: 'beforeSelectionChange', handler: (instance: CodeMirror, selection: { head: CodeMirror.Pos; anchor: CodeMirror.Pos; }) => void );
        off(eventName: 'beforeSelectionChange', handler: (instance: CodeMirror, selection: { head: CodeMirror.Pos; anchor: CodeMirror.Pos; }) => void );
      
        /** Fires whenever the view port of the editor changes (due to scrolling, editing, or any other factor).
        The from and to arguments give the new start and end of the viewport. */
        on(eventName: 'viewportChange', handler: (instance: CodeMirror, from: number, to: number) => void );
        off(eventName: 'viewportChange', handler: (instance: CodeMirror, from: number, to: number) => void );
      
        /** Fires when the editor gutter (the line-number area) is clicked. Will pass the editor instance as first argument,
        the (zero-based) number of the line that was clicked as second argument, the CSS class of the gutter that was clicked as third argument,
        and the raw mousedown event object as fourth argument. */
        on(eventName: 'gutterClick', handler: (instance: CodeMirror, line: number, gutter: string, clickEvent: Event) => void );
        off(eventName: 'gutterClick', handler: (instance: CodeMirror, line: number, gutter: string, clickEvent: Event) => void );
      
        /** Fires whenever the editor is focused. */
        on(eventName: 'focus', handler: (instance: CodeMirror) => void );
        off(eventName: 'focus', handler: (instance: CodeMirror) => void );
      
        /** Fires whenever the editor is unfocused. */
        on(eventName: 'blur', handler: (instance: CodeMirror) => void );
        off(eventName: 'blur', handler: (instance: CodeMirror) => void );
      
        /** Fires when the editor is scrolled. */
        on(eventName: 'scroll', handler: (instance: CodeMirror) => void );
        off(eventName: 'scroll', handler: (instance: CodeMirror) => void );
      
        /** Will be fired whenever CodeMirror updates its DOM display. */
        on(eventName: 'update', handler: (instance: CodeMirror) => void );
        off(eventName: 'update', handler: (instance: CodeMirror) => void );
      
        /** Fired whenever a line is (re-)rendered to the DOM. Fired right after the DOM element is built, before it is added to the document.
        The handler may mess with the style of the resulting element, or add event handlers, but should not try to change the state of the editor. */
        on(eventName: 'renderLine', handler: (instance: CodeMirror, line: number, element: HTMLElement) => void );
        off(eventName: 'renderLine', handler: (instance: CodeMirror, line: number, element: HTMLElement) => void );
      }
      
      declare module CodeMirror {
      
        export interface ScrollInfo {
          left: any;
          top: any;
          width: any;
          height: any;
          clientWidth: any;
          clientHeight: any;
        }
      
        export interface CodeMirrorStatic {
      
          Pass: any;
      
          new (host: HTMLElement, options?: CodeMirror.Options): CodeMirror;
          new (callback: (host: HTMLElement) => void, options?: CodeMirror.Options): CodeMirror;
      
          (host: HTMLElement, options?: CodeMirror.Options): CodeMirror;
          (callback: (host: HTMLElement) => void, options?: CodeMirror.Options): CodeMirror;
      
          Doc: {
            (text: string, mode?: any, firstLineNumber?: number): Doc;
            new (text: string, mode?: any, firstLineNumber?: number): Doc;
          };
      
          Pos: {
            (line: number, ch?: number): Pos;
            new (line: number, ch?: number): Pos;
          };
      
          fromTextArea(host: HTMLTextAreaElement, options?: Options): CodeMirror;
      
          version: string;
      
          /** If you want to define extra methods in terms of the CodeMirror API, it is possible to use defineExtension.
          This will cause the given value(usually a method) to be added to all CodeMirror instances created from then on. */
          defineExtension(name: string, value: any);
      
          /** Like defineExtension, but the method will be added to the interface for Doc objects instead. */
          defineDocExtension(name: string, value: any);
      
          /** Similarly, defineOption can be used to define new options for CodeMirror.
          The updateFunc will be called with the editor instance and the new value when an editor is initialized,
          and whenever the option is modified through setOption. */
          defineOption(name: string, default_: any, updateFunc: Function);
      
          /** If your extention just needs to run some code whenever a CodeMirror instance is initialized, use CodeMirror.defineInitHook.
          Give it a function as its only argument, and from then on, that function will be called (with the instance as argument)
          whenever a new CodeMirror instance is initialized. */
          defineInitHook(func: Function);
      
          normalizeKeyMap(keymap: any): any;
      
      
      
          on(element: any, eventName: string, handler: Function);
          off(element: any, eventName: string, handler: Function);
      
          /** Fired whenever a change occurs to the document. changeObj has a similar type as the object passed to the editor's "change" event,
          but it never has a next property, because document change events are not batched (whereas editor change events are). */
          on(doc: Doc, eventName: 'change', handler: (instance: Doc, change: EditorChange) => void);
          off(doc: Doc, eventName: 'change', handler: (instance: Doc, change: EditorChange) => void);
      
          /** See the description of the same event on editor instances. */
          on(doc: Doc, eventName: 'beforeChange', handler: (instance: Doc, change: EditorChangeCancellable) => void);
          off(doc: Doc, eventName: 'beforeChange', handler: (instance: Doc, change: EditorChangeCancellable) => void);
      
          /** Fired whenever the cursor or selection in this document changes. */
          on(doc: Doc, eventName: 'cursorActivity', handler: (instance: CodeMirror) => void);
          off(doc: Doc, eventName: 'cursorActivity', handler: (instance: CodeMirror) => void);
      
          /** Equivalent to the event by the same name as fired on editor instances. */
          on(doc: Doc, eventName: 'beforeSelectionChange', handler: (instance: CodeMirror, selection: { head: Pos; anchor: Pos; }) => void);
          off(doc: Doc, eventName: 'beforeSelectionChange', handler: (instance: CodeMirror, selection: { head: Pos; anchor: Pos; }) => void);
      
          /** Will be fired when the line object is deleted. A line object is associated with the start of the line.
          Mostly useful when you need to find out when your gutter markers on a given line are removed. */
          on(line: LineHandle, eventName: 'delete', handler: () => void);
          off(line: LineHandle, eventName: 'delete', handler: () => void);
      
          /** Fires when the line's text content is changed in any way (but the line is not deleted outright).
          The change object is similar to the one passed to change event on the editor object. */
          on(line: LineHandle, eventName: 'change', handler: (line: LineHandle, change: EditorChange) => void);
          off(line: LineHandle, eventName: 'change', handler: (line: LineHandle, change: EditorChange) => void);
      
          /** Fired when the cursor enters the marked range. From this event handler, the editor state may be inspected but not modified,
          with the exception that the range on which the event fires may be cleared. */
          on(marker: TextMarker, eventName: 'beforeCursorEnter', handler: () => void);
          off(marker: TextMarker, eventName: 'beforeCursorEnter', handler: () => void);
      
          /** Fired when the range is cleared, either through cursor movement in combination with clearOnEnter or through a call to its clear() method.
          Will only be fired once per handle. Note that deleting the range through text editing does not fire this event,
          because an undo action might bring the range back into existence. */
          on(marker: TextMarker, eventName: 'clear', handler: () => void);
          off(marker: TextMarker, eventName: 'clear', handler: () => void);
      
          /** Fired when the last part of the marker is removed from the document by editing operations. */
          on(marker: TextMarker, eventName: 'hide', handler: () => void);
          off(marker: TextMarker, eventName: 'hide', handler: () => void);
      
          /** Fired when, after the marker was removed by editing, a undo operation brought the marker back. */
          on(marker: TextMarker, eventName: 'unhide', handler: () => void);
          off(marker: TextMarker, eventName: 'unhide', handler: () => void);
      
          /** Fired whenever the editor re-adds the widget to the DOM. This will happen once right after the widget is added (if it is scrolled into view),
          and then again whenever it is scrolled out of view and back in again, or when changes to the editor options
          or the line the widget is on require the widget to be redrawn. */
          on(line: LineWidget, eventName: 'redraw', handler: () => void);
          off(line: LineWidget, eventName: 'redraw', handler: () => void);
        }
      
        export interface Doc {
      
          /** Get the current editor content. You can pass it an optional argument to specify the string to be used to separate lines (defaults to "\n"). */
          getValue(seperator?: string): string;
      
          /** Set the editor content. */
          setValue(content: string);
      
          /** Get the text between the given points in the editor, which should be {line, ch} objects.
          An optional third argument can be given to indicate the line separator string to use (defaults to "\n"). */
          getRange(from: Pos, to: CodeMirror.Pos, seperator?: string): string;
      
          /** Replace the part of the document between from and to with the given string.
          from and to must be {line, ch} objects. to can be left off to simply insert the string at position from. */
          replaceRange(replacement: string, from: CodeMirror.Pos, to: CodeMirror.Pos);
      
          /** Get the content of line n. */
          getLine(n: number): string;
      
          /** Set the content of line n. */
          setLine(n: number, text: string);
      
          /** Remove the given line from the document. */
          removeLine(n: number);
      
          /** Get the number of lines in the editor. */
          lineCount(): number;
      
          /** Get the first line of the editor. This will usually be zero but for linked sub-views,
          or documents instantiated with a non-zero first line, it might return other values. */
          firstLine(): number;
      
          /** Get the last line of the editor. This will usually be lineCount() - 1, but for linked sub-views, it might return other values. */
          lastLine(): number;
      
          /** Fetches the line handle for the given line number. */
          getLineHandle(num: number): CodeMirror.LineHandle;
      
          /** Given a line handle, returns the current position of that line (or null when it is no longer in the document). */
          getLineNumber(handle: CodeMirror.LineHandle): number;
      
          /** Iterate over the whole document, and call f for each line, passing the line handle.
          This is a faster way to visit a range of line handlers than calling getLineHandle for each of them.
          Note that line handles have a text property containing the line's content (as a string). */
          eachLine(f: (line: CodeMirror.LineHandle) => void);
      
          /** Iterate over the range from start up to (not including) end, and call f for each line, passing the line handle.
          This is a faster way to visit a range of line handlers than calling getLineHandle for each of them.
          Note that line handles have a text property containing the line's content (as a string). */
          eachLine(start: number, end: number, f: (line: CodeMirror.LineHandle) => void);
      
          /** Set the editor content as 'clean', a flag that it will retain until it is edited, and which will be set again when such an edit is undone again.
          Useful to track whether the content needs to be saved. */
          markClean();
      
          /** Returns whether the document is currently clean (not modified since initialization or the last call to markClean). */
          isClean(): boolean;
      
      
      
          /** Get the currently selected code. */
          getSelection(): string;
      
          /** Replace the selection with the given string. By default, the new selection will span the inserted text.
          The optional collapse argument can be used to change this passing "start" or "end" will collapse the selection to the start or end of the inserted text. */
          replaceSelection(replacement: string, collapse?: string)
      
          /** start is a an optional string indicating which end of the selection to return.
          It may be "start" , "end" , "head"(the side of the selection that moves when you press shift + arrow),
          or "anchor"(the fixed side of the selection).Omitting the argument is the same as passing "head".A { line , ch } object will be returned. */
          getCursor(start?: string): CodeMirror.Pos;
      
          /** Return true if any text is selected. */
          somethingSelected(): boolean;
      
          /** Set the cursor position.You can either pass a single { line , ch } object , or the line and the character as two separate parameters. */
          setCursor(pos: CodeMirror.Pos);
      
          /** Set the selection range.anchor and head should be { line , ch } objects.head defaults to anchor when not given. */
          setSelection(anchor: CodeMirror.Pos, head: CodeMirror.Pos);
      
          /** Similar to setSelection , but will, if shift is held or the extending flag is set,
          move the head of the selection while leaving the anchor at its current place.
          pos2 is optional , and can be passed to ensure a region (for example a word or paragraph) will end up selected
          (in addition to whatever lies between that region and the current anchor). */
          extendSelection(from: CodeMirror.Pos, to?: CodeMirror.Pos);
      
          /** Sets or clears the 'extending' flag , which acts similar to the shift key,
          in that it will cause cursor movement and calls to extendSelection to leave the selection anchor in place. */
          setExtending(value: boolean);
      
      
          /** Retrieve the editor associated with a document. May return null. */
          getEditor(): CodeMirror;
      
      
          /** Create an identical copy of the given doc. When copyHistory is true , the history will also be copied.Can not be called directly on an editor. */
          copy(copyHistory: boolean): CodeMirror.Doc;
      
          /** Create a new document that's linked to the target document. Linked documents will stay in sync (changes to one are also applied to the other) until unlinked. */
          linkedDoc(options: {
            /** When turned on, the linked copy will share an undo history with the original.
            Thus, something done in one of the two can be undone in the other, and vice versa. */
            sharedHist?: boolean;
            from?: number;
            /** Can be given to make the new document a subview of the original. Subviews only show a given range of lines.
            Note that line coordinates inside the subview will be consistent with those of the parent,
            so that for example a subview starting at line 10 will refer to its first line as line 10, not 0. */
            to?: number;
            /** By default, the new document inherits the mode of the parent. This option can be set to a mode spec to give it a different mode. */
            mode: any;
          }): CodeMirror.Doc;
      
          /** Break the link between two documents. After calling this , changes will no longer propagate between the documents,
          and, if they had a shared history, the history will become separate. */
          unlinkDoc(doc: CodeMirror.Doc);
      
          /** Will call the given function for all documents linked to the target document. It will be passed two arguments,
          the linked document and a boolean indicating whether that document shares history with the target. */
          iterLinkedDocs(fn: (doc: CodeMirror.Doc, sharedHist: boolean) => void);
      
          /** Undo one edit (if any undo events are stored). */
          undo();
      
          /** Redo one undone edit. */
          redo();
      
          /** Returns an object with {undo, redo } properties , both of which hold integers , indicating the amount of stored undo and redo operations. */
          historySize(): { undo: number; redo: number; };
      
          /** Clears the editor's undo history. */
          clearHistory();
      
          /** Get a(JSON - serializeable) representation of the undo history. */
          getHistory(): any;
      
          /** Replace the editor's undo history with the one provided, which must be a value as returned by getHistory.
          Note that this will have entirely undefined results if the editor content isn't also the same as it was when getHistory was called. */
          setHistory(history: any);
      
      
          /** Can be used to mark a range of text with a specific CSS class name. from and to should be { line , ch } objects. */
          markText(from: CodeMirror.Pos, to: CodeMirror.Pos, options?: CodeMirror.TextMarkerOptions): TextMarker;
      
          /** Inserts a bookmark, a handle that follows the text around it as it is being edited, at the given position.
          A bookmark has two methods find() and clear(). The first returns the current position of the bookmark, if it is still in the document,
          and the second explicitly removes the bookmark. */
          setBookmark(pos: CodeMirror.Pos, options?: {
            /** Can be used to display a DOM node at the current location of the bookmark (analogous to the replacedWith option to markText). */
            widget?: HTMLElement;
      
            /** By default, text typed when the cursor is on top of the bookmark will end up to the right of the bookmark.
            Set this option to true to make it go to the left instead. */
            insertLeft?: boolean;
          }): CodeMirror.TextMarker;
      
          /** Returns an array of all the bookmarks and marked ranges present at the given position. */
          findMarksAt(pos: CodeMirror.Pos): TextMarker[];
      
          /** Returns an array containing all marked ranges in the document. */
          getAllMarks(): CodeMirror.TextMarker[];
      
      
          /** Gets the mode object for the editor. Note that this is distinct from getOption("mode"), which gives you the mode specification,
          rather than the resolved, instantiated mode object. */
          getMode(): any;
      
          /** Calculates and returns a { line , ch } object for a zero-based index whose value is relative to the start of the editor's text.
          If the index is out of range of the text then the returned object is clipped to start or end of the text respectively. */
          posFromIndex(index: number): CodeMirror.Pos;
      
          /** The reverse of posFromIndex. */
          indexFromPos(object: CodeMirror.Pos): number;
      
        }
      
        export interface LineHandle {
          text: string;
        }
      
        export interface TextMarker {
          /** Remove the mark. */
          clear();
      
          /** Returns a {from, to} object (both holding document positions), indicating the current position of the marked range,
          or undefined if the marker is no longer in the document. */
          find(): { from: CodeMirror.Pos; to: CodeMirror.Pos; };
      
          /**  Returns an object representing the options for the marker. If copyWidget is given true, it will clone the value of the replacedWith option, if any. */
          getOptions(copyWidget: boolean): CodeMirror.TextMarkerOptions;
        }
      
        export interface LineWidget {
          /** Removes the widget. */
          clear(): void;
      
          /** Call this if you made some change to the widget's DOM node that might affect its height.
          It'll force CodeMirror to update the height of the line that contains the widget. */
          changed();
        }
      
        export interface EditorChange {
          /** Position (in the pre-change coordinate system) where the change started. */
          from: CodeMirror.Pos;
          /** Position (in the pre-change coordinate system) where the change ended. */
          to: CodeMirror.Pos;
          /** Array of strings representing the text that replaced the changed range (split by line). */
          text: string[];
          /**  Text that used to be between from and to, which is overwritten by this change. */
          removed: string[];
        }
      
        export interface EditorChangeCancellable extends CodeMirror.EditorChange {
          /** may be used to modify the change. All three arguments to update are optional, and can be left off to leave the existing value for that field intact. */
          update(from?: CodeMirror.Pos, to?: CodeMirror.Pos, text?: string);
      
          cancel();
        }
      
        export interface Pos {
          ch: number;
          line: number;
        }
      
        export interface Options {
          /** string| The starting value of the editor. Can be a string, or a document object. */
          value?: any;
      
          /** string|object. The mode to use. When not given, this will default to the first mode that was loaded.
          It may be a string, which either simply names the mode or is a MIME type associated with the mode.
          Alternatively, it may be an object containing configuration options for the mode,
          with a name property that names the mode (for example {name: "javascript", json: true}). */
          mode?: any;
      
          /** The theme to style the editor with. You must make sure the CSS file defining the corresponding .cm-s-[name] styles is loaded.
          The default is "default". */
          theme?: string;
      
          /** How many spaces a block (whatever that means in the edited language) should be indented. The default is 2. */
          indentUnit?: number;
      
          /** Whether to use the context-sensitive indentation that the mode provides (or just indent the same as the line before). Defaults to true. */
          smartIndent?: boolean;
      
          /** The width of a tab character. Defaults to 4. */
          tabSize?: number;
      
          /** Whether, when indenting, the first N*tabSize spaces should be replaced by N tabs. Default is false. */
          indentWithTabs?: boolean;
      
          /** Configures whether the editor should re-indent the current line when a character is typed
          that might change its proper indentation (only works if the mode supports indentation). Default is true. */
          electricChars?: boolean;
      
          /** Determines whether horizontal cursor movement through right-to-left (Arabic, Hebrew) text
          is visual (pressing the left arrow moves the cursor left)
          or logical (pressing the left arrow moves to the next lower index in the string, which is visually right in right-to-left text).
          The default is false on Windows, and true on other platforms. */
          rtlMoveVisually?: boolean;
      
          /** Configures the keymap to use. The default is "default", which is the only keymap defined in codemirror.js itself.
          Extra keymaps are found in the keymap directory. See the section on keymaps for more information. */
          keyMap?: string;
      
          /** Can be used to specify extra keybindings for the editor, alongside the ones defined by keyMap. Should be either null, or a valid keymap value. */
          extraKeys?: any;
      
          /** Whether CodeMirror should scroll or wrap for long lines. Defaults to false (scroll). */
          lineWrapping?: boolean;
      
          /** Whether to show line numbers to the left of the editor. */
          lineNumbers?: boolean;
      
          /** At which number to start counting lines. Default is 1. */
          firstLineNumber?: number;
      
          /** A function used to format line numbers. The function is passed the line number, and should return a string that will be shown in the gutter. */
          lineNumberFormatter?: (line: number) => string;
      
          /** Can be used to add extra gutters (beyond or instead of the line number gutter).
          Should be an array of CSS class names, each of which defines a width (and optionally a background),
          and which will be used to draw the background of the gutters.
          May include the CodeMirror-linenumbers class, in order to explicitly set the position of the line number gutter
          (it will default to be to the right of all other gutters). These class names are the keys passed to setGutterMarker. */
          gutters?: string[];
      
          /** Determines whether the gutter scrolls along with the content horizontally (false)
          or whether it stays fixed during horizontal scrolling (true, the default). */
          fixedGutter?: boolean;
      
          /** boolean|string. This disables editing of the editor content by the user. If the special value "nocursor" is given (instead of simply true), focusing of the editor is also disallowed. */
          readOnly?: any;
      
          /**Whether the cursor should be drawn when a selection is active. Defaults to false. */
          showCursorWhenSelecting?: boolean;
      
          /** The maximum number of undo levels that the editor stores. Defaults to 40. */
          undoDepth?: number;
      
          /** The period of inactivity (in milliseconds) that will cause a new history event to be started when typing or deleting. Defaults to 500. */
          historyEventDelay?: number;
      
          /** The tab index to assign to the editor. If not given, no tab index will be assigned. */
          tabindex?: number;
      
          /** Can be used to make CodeMirror focus itself on initialization. Defaults to off.
          When fromTextArea is used, and no explicit value is given for this option, it will be set to true when either the source textarea is focused,
          or it has an autofocus attribute and no other element is focused. */
          autofocus?: boolean;
      
          /** Controls whether drag-and - drop is enabled. On by default. */
          dragDrop?: boolean;
      
          /** When given , this will be called when the editor is handling a dragenter , dragover , or drop event.
          It will be passed the editor instance and the event object as arguments.
          The callback can choose to handle the event itself , in which case it should return true to indicate that CodeMirror should not do anything further. */
          onDragEvent?: (instance: CodeMirror, event: Event) => boolean;
      
          /** This provides a rather low - level hook into CodeMirror's key handling.
          If provided, this function will be called on every keydown, keyup, and keypress event that CodeMirror captures.
          It will be passed two arguments, the editor instance and the key event.
          This key event is pretty much the raw key event, except that a stop() method is always added to it.
          You could feed it to, for example, jQuery.Event to further normalize it.
          This function can inspect the key event, and handle it if it wants to.
          It may return true to tell CodeMirror to ignore the event.
          Be wary that, on some browsers, stopping a keydown does not stop the keypress from firing, whereas on others it does.
          If you respond to an event, you should probably inspect its type property and only do something when it is keydown
          (or keypress for actions that need character data). */
          onKeyEvent?: (instance: CodeMirror, event: Event) => boolean;
      
          /** Half - period in milliseconds used for cursor blinking. The default blink rate is 530ms. */
          cursorBlinkRate?: number;
      
          /** Determines the height of the cursor. Default is 1 , meaning it spans the whole height of the line.
          For some fonts (and by some tastes) a smaller height (for example 0.85),
          which causes the cursor to not reach all the way to the bottom of the line, looks better */
          cursorHeight?: number;
      
          /** Highlighting is done by a pseudo background - thread that will work for workTime milliseconds,
          and then use timeout to sleep for workDelay milliseconds.
          The defaults are 200 and 300, you can change these options to make the highlighting more or less aggressive. */
          workTime?: number;
      
          /** See workTime. */
          workDelay?: number;
      
          /** Indicates how quickly CodeMirror should poll its input textarea for changes(when focused).
          Most input is captured by events, but some things, like IME input on some browsers, don't generate events that allow CodeMirror to properly detect it.
          Thus, it polls. Default is 100 milliseconds. */
          pollInterval?: number
      
          /** By default, CodeMirror will combine adjacent tokens into a single span if they have the same class.
          This will result in a simpler DOM tree, and thus perform better. With some kinds of styling(such as rounded corners),
          this will change the way the document looks. You can set this option to false to disablis behavior. */
              flattenSpans?: boolean;
      
          /** When highlighting long lines, in order to stay responsive, the editor will give up and simply style
          the rest of the line as plain text when it reaches a certain position. The default is 10000.
          You can set this to Infinity to turn off this behavior. */
          maxHighlightLength?: number;
      
          /** Specifies the amount of lines that are rendered above and below the part of the document that's currently scrolled into view.
          This affects the amount of updates needed when scrolling, and the amount of work that such an update does.
          You should usually leave it at its default, 10. Can be set to Infinity to make sure the whole document is always rendered,
          and thus the browser's text search works on it. This will have bad effects on performance of big documents. */
          viewportMargin?: number;
        }
      
        export interface TextMarkerOptions {
          /** Assigns a CSS class to the marked stretch of text. */
          className?: string;
      
          /** Determines whether text inserted on the left of the marker will end up inside or outside of it. */
          inclusiveLeft?: boolean;
      
          /** Like inclusiveLeft , but for the right side. */
          inclusiveRight?: boolean;
      
          /** Atomic ranges act as a single unit when cursor movement is concerned i.e. it is impossible to place the cursor inside of them.
          In atomic ranges, inclusiveLeft and inclusiveRight have a different meaning they will prevent the cursor from being placed
          respectively directly before and directly after the range. */
          atomic?: boolean;
      
          /** Collapsed ranges do not show up in the display.Setting a range to be collapsed will automatically make it atomic. */
          collapsed?: boolean;
      
          /** When enabled, will cause the mark to clear itself whenever the cursor enters its range.
          This is mostly useful for text - replacement widgets that need to 'snap open' when the user tries to edit them.
          The "clear" event fired on the range handle can be used to be notified when this happens. */
          clearOnEnter?: boolean;
      
          /** Use a given node to display this range.Implies both collapsed and atomic.
          The given DOM node must be an inline element(as opposed to a block element). */
          replacedWith?: HTMLElement;
      
          /** A read - only span can, as long as it is not cleared, not be modified except by calling setValue to reset the whole document.
          Note: adding a read - only span currently clears the undo history of the editor,
          because existing undo events being partially nullified by read - only spans would corrupt the history (in the current implementation). */
          readOnly?: boolean;
      
          /** When set to true (default is false), adding this marker will create an event in the undo history that can be individually undone(clearing the marker). */
          addToHistory?: boolean;
      
          /** Can be used to specify an extra CSS class to be applied to the leftmost span that is part of the marker. */
          startStyle?: string;
      
          /** Equivalent to startStyle, but for the rightmost span. */
          endStyle?: string;
      
          /** When the target document is linked to other documents, you can set shared to true to make the marker appear in all documents.
          By default, a marker appears only in its target document. */
          shared?: boolean;
        }
      }
    • webSQL.d.ts
      declare function openDatabase(
        name: string,
        version: any,
        displayName: string,
        size: number,
        upgrade?: DatabaseCallback): Database;
      
      interface DatabaseCallback {
        (database: Database): void;
      }
      
      interface Database {
        transaction(
          callback: (transaction: SQLTransaction) => void,
          errorCallback?: (error: SQLError) => void,
          successCallback?: () => void);
      
        readTransaction(
          callback: (transaction: SQLTransaction) => void,
          errorCallback?: (error: SQLError) => void,
          successCallback?: () => void);
      
        version: string;
      
        changeVersion(
          oldVersion: string,
          newVersion: string,
          callback: (transaction: SQLTransaction) => void,
          errorCallback?: (error: SQLError) => void,
          successCallback?: () => void);
      }
      
      interface SQLTransaction {
        executeSql(
          sqlStatement: string,
          arguments?: any[],
          callback?: (transaction: SQLTransaction, result: SQLResultSet) => void,
          errorCallback?: (transaction: SQLTransaction, error: SQLError) => void): void;
      }
      
      interface SQLError {
        /**
         * UNKNOWN_ERR = 0;
         * DATABASE_ERR = 1;
         * VERSION_ERR = 2;
         * TOO_LARGE_ERR = 3;
         * QUOTA_ERR = 4;
         * SYNTAX_ERR = 5;
         * CONSTRAINT_ERR = 6;
        * TIMEOUT_ERR = 7;
         */
        code: number;
        message: string
      }
      
      interface SQLResultSet {
        insertId: number;
        rowsAffected: number;
        rows: SQLResultSetRowList;
      }
      
      interface SQLResultSetRowList {
        length: number;
        item(index: number): any;
      }
  • dummy.ts
    class Apple {
      constructor(public color = 'red') {
      }
    }
    
    console.log('Look, I am a happy TypeScript file running away.');
    console.log('I\'ve got class ' + Apple);
    var apple = new Apple();
    console.log('I\'ve created an instance of it: ', apple);
    apple.color = 'green';
    console.log('I\'ve changed its colour: ', apple);
  • index.html
    <!doctype html>
    <title>mini shell </title>
    
    <script data-legit=mi>
      // ONERROR
      <%=embedFile('boot/onerror.js')%>
    //# sourceURL=boot/onerror.js
    </script>
    
    
    <script data-legit=mi>
      // EARLYBOOT
      earlyBoot(window);
    
      	<%=typescriptBuild('boot/*')%>
    
        <%=embedFile('boot/bootUI.js')%>
    //# sourceURL=/boot/base.js
    </script>
    
    
    <script data-legit=mi>
    
      // LOADER
    <%=typescriptBuild('load/*', 'persistence/*', 'boot/base.d.ts', 'typings/*')%>
    //# sourceURL=/load/shellLoader.ts.js
    </script>
    
    <!-- total 12Mb, saved <%=(function() {
    
    // TOTAL SUMMARY
    var monthsPrettyCase = ('Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec').split('|');
    
    var saveDate = new Date();
    var dtText =
      saveDate.getDate() + ' ' +
      monthsPrettyCase[saveDate.getMonth()] + ' ' +
      saveDate.getFullYear() + ' ' +
      num2(saveDate.getHours()) + ':' +
      num2(saveDate.getMinutes()) + ':' +
      num2(saveDate.getSeconds()) + '.' +
      (+saveDate).toString().slice(-3);
    
    var saveDateLocalStr = saveDate.toString();
    var gmtMatch = (/(GMT\s*[\-\+]\d+(\:\d+)?)/i).exec(saveDateLocalStr);
    if (gmtMatch)
    	dtText += ' ' + gmtMatch[1];
    
    return dtText;
    
    function num2(n) { return n <= 9 ? '0' + n : '' + n; }
    
    })()
    %> -->
    
    <!-- /shell/showCommander.js
    <%=typescriptBuild('shell/*', 'persistence/trackChanges.ts','persistence/normalizePath.ts', 'noapi/*', 'isolation/*',   'boot/base.d.ts', 'persistence/API.d.ts', 'typings/*')%>
    -->
    
    <!-- /shell/buildMessage.js
    
    var shell;
    if (!shell) shell = {};
    shell.buildMessage = 'Built at <%=(function() {
    
    var monthsPrettyCase = ('Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec').split('|');
    
    var saveDate = new Date();
    var dtText =
      saveDate.getDate() + ' ' +
      monthsPrettyCase[saveDate.getMonth()] + ' ' +
      saveDate.getFullYear() + ' ' +
      num2(saveDate.getHours()) + ':' +
      num2(saveDate.getMinutes()) + ':' +
      num2(saveDate.getSeconds()) + '.' +
      (+saveDate).toString().slice(-3);
    
    var saveDateLocalStr = saveDate.toString();
    var gmtMatch = (/(GMT\s*[\-\+]\d+(\:\d+)?)/i).exec(saveDateLocalStr);
    if (gmtMatch)
    	dtText += ' ' + gmtMatch[1];
    
    return dtText;
    
    function num2(n) { return n <= 9 ? '0' + n : '' + n; }
    
    })()
    %>';
    
    shell.buildTime = <%=+new Date()%>;
    -->
    
    <!-- /shell/!onerror.js
    <%=embedFile('/boot/onerror.js')%>
    -->
    
    <!-- /empty/
    -->
    
    
    <!-- /LF-file.txt
    123
    456-->
    
    <!-- /CRLF-file [CRLF]
    123
    456-->
    
    <!-- /CR-file [CR]
    123
    456-->
    
    <!-- /exportsome.js [CR]
    module.exports = 55-->
    
    <!-- /exports_fs.js [CR]
    module.exports = require('fs')-->
    
    <!-- /exports_process.js [CR]
    module.exports = process-->
    
    <!-- /eval-file.txt [eval]
     "random char: " + String.fromCharCode(Math.random()*16000)+"\n"+
     "date: "+new Date()+"\n"+
     "location: "+location -->
    
    <!-- /json-file.txt [json]
    "new ok \u2222 and what\r\n or \u0001?\n\n\n"-->
    
    <%=(function() {
    return ''; // SWITCHED OFF LARGE DIRECTORY GENERATION (it makes it easier to debug DOM stuff)
    
    var dump = [];
    for (var i = 0; i < 2000; i++) {
    	dump.push('<'+'!'+'-- /large-directory/'+(500+i)+'.txt');
      dump.push('OK --'+'>');
    }
    return dump.join('\n');
       })()%>
    
    
    
    
    
    
    
    
    <!-- /shell/style.css
    <%=(function() {
    	var drive = portabled.build.processTemplate.mainDrive;
    	var files = drive.files();
    	var styleText = [];
      for (var i = 0; i < files.length; i++) {
        if (/^\/shell\/[\s\S]*\.css$/.test(files[i]))
          styleText.push(drive.read(files[i]));
      }
    	return styleText.join('\n');
    
    })()%>
    -->
    
    <!-- /shell/codemirror/combine.css
    <%=(function() {
    	var drive = portabled.build.processTemplate.mainDrive;
    	var cssImports = [
      	'/codemirror-part/lib/codemirror.css',
      	'/codemirror-part/addon/hint/show-hint.css',
      	'/codemirror-part/addon/lint/lint.css',
      	'/codemirror-part/addon/dialog/dialog.css',
      	//  '/codemirror-part/addon/merge/merge.css',
      	'/codemirror-part/addon/fold/foldgutter.css',
    
        '/codemirror-part/theme/rubyblue.css'
    	];
    
    	var styleText = [];
      for (var i = 0; i < cssImports.length; i++) {
    		var content = drive.read(cssImports[i]);
    		var decoratedContent =
    			content.
    			replace(/\-\-(\**)\>/g, '--*$1>').
    			replace(/\<(\**)\!/g, '<*$1!');
    
        styleText.push(decoratedContent);
      }
    	return styleText.join('\n');
    })()%>
    -->
    
    
    <!-- /shell/codemirror/combine.js
    <%=(function() {
    	var drive = portabled.build.processTemplate.mainDrive;
    	var jsImports = [
    		'/codemirror-part/lib/codemirror.js',
      	'/codemirror-part/addon/dialog/dialog.js',
      	'/codemirror-part/addon/search/search.js',
      	'/codemirror-part/addon/search/searchcursor.js',
      	'/codemirror-part/addon/hint/show-hint.js',
      	'/codemirror-part/addon/lint/lint.js',
      	'/codemirror-part/mode/javascript/javascript.js',
      	'/codemirror-part/addon/tern/tern.js',
      	'/codemirror-part/addon/hint/javascript-hint.js',
      	'/codemirror-part/mode/css/css.js',
      	'/codemirror-part/addon/hint/css-hint.js',
      	'/codemirror-part/mode/sass/sass.js',
      	'/codemirror-part/mode/xml/xml.js',
      	'/codemirror-part/addon/hint/xml-hint.js',
      	'/codemirror-part/mode/htmlmixed/htmlmixed.js',
      	'/codemirror-part/mode/htmlembedded/htmlembedded.js',
      	'/codemirror-part/addon/hint/html-hint.js',
      	'/codemirror-part/mode/markdown/markdown.js',
      	'/codemirror-part/addon/edit/matchbrackets.js',
      	'/codemirror-part/addon/selection/active-line.js',
      	'/codemirror-part/addon/edit/trailingspace.js',
      	'/codemirror-part/addon/fold/foldcode.js',
      	'/codemirror-part/addon/fold/foldgutter.js',
      	'/codemirror-part/addon/fold/brace-fold.js',
      	'/codemirror-part/addon/fold/comment-fold.js',
      	'/codemirror-part/addon/fold/markdown-fold.js',
      	'/codemirror-part/addon/fold/xml-fold.js'
    		// ,
      	// '/codemirror-part/addon/merge/merge.js'
    	];
    
    	var jsText = [];
      for (var i = 0; i < jsImports.length; i++) {
    		var content = drive.read(jsImports[i]);
    		var decoratedContent =
    			content.
    			replace(/\-\-(\**)\>/g, '--*$1>').
    			replace(/\<(\**)\!/g, '<*$1!');
    
        jsText.push(decoratedContent);
      }
    	return jsText.join('\n');
    })()%>
    -->
    
    
    <%=(function() {
    
    	var drive = portabled.build.processTemplate.mainDrive;
    	var files = drive.files();
    	var fileDump = [];
      for (var i = 0; i < files.length; i++) {
        var content = drive.read(files[i]);
        var decoratedContent = content.
    			replace(/\-\-(\**)\>/g, '--*$1>').
    			replace(/\<(\**)\!/g, '<*$1!');
    	  fileDump.push('<'+'!'+'-- '+'/src'+files[i]);
        fileDump.push(decoratedContent);
        fileDump.push('--'+'!'+'>');
      }
    	return fileDump.join('\n');
    
    })()%>
    
    
  • readme.md
    #New mini portable shell development
    
    ## Boot process
    
    The boot process begins with first bytes of the page received, during the loading of the content,
    then would continue for a little after the page is loaded.
    
    The main post-content-load is completing the data fetch from the local storage. It may well finish earlier,
    but may take some time.
    
    During the boot process, and at the end of it the code is supposed to show sensible UI
    and implement neat handover animations (unless the whole boot finishes very fast).
    
    ### Early boot
    
    The mission of this stage is to create the temporary boot UI (very quickly!) and hand over to the shell loader.
    The boot UI is something like a splash screen, boot animation, washed-out live-like image or whatever.
    
     * Error handler is installed at the first opportunity
     * Base.js library with primitives for basic DOM manipulation is loaded
     * BootUI iframe is created
     * BootUI function is invoked to draw the boot animation
    
    ### Shell loader
    
    Shell loader's task is to initialise the persistence (virtual filesystem backed by DOM and local storage).
    
    During that persistence loading the shell loader passes progress events to the boot UI. Upon completion
    it starts the actual shell and finally animates from boot UI to the shell.
    
     * Persistence loading is started
     * Persistence keeps polling the DOM state, fishing for pieces of 'virtual filesystem'
     * Progress is supposed to be reported to the BootUI
     * Persistence also need to load the locally-stored state, reconciling it with the DOM (by timestamps)
     * Eventualy persistence report completion
     * Shell iframe is created with opacity=0
     * Shell start code is loaded (normally from the filesystem) and kicked off
     * Animating BootUI.opacity -> 0; Shell.opacity->1
    
     ### Shell
    
    When shell begins to load, the persistence is fully functional, so it's up to the shell what to do with it.
    
    The interactive node-like shell emulates node.js to a great extent: by laying node.js API on top of the persistence and various browser features.
    
    At the moment the shell also has file-manager-like panels, so virtual filesystem can be navigated
    and necessary tasks (copying/editing/moving of files or directories) performed interactively.
    
    Other shells may host more specialised apps. These are planned examples:
    
     * PC.js virtual machine hosting early PC images (DOS, early Windows, OS/2 and such)
     * Markdown viewer/editor
     * SVG editor
     * Slide editor
     * Spreadsheet editor
    
    ## Involved libaries and sub-modules
    
    First of all, the sequence above explicitly mentiones three mini-libraries:
    
     * Base.js
     * BootUI
     * Persistence
    
    Those indeed can be considered separately, with a degree of isolation from the rest of the boot process.
    
    ### Base.js
    
    A very tight set of functions for DOM manipulation. It is used by both booting stage, as well as actually employed by the current shell.
    
    These are broad features of the mini-library:
    
     * Setting/getting text of a DOM element (older IE handling, special workarounds for some elements)
     * Creating elements and setting properties/CSS attributes in JSON-like syntax
     * Subscribing to events
     * Creating IFRAME and retrieving its key objects (inner window, inner document)
    
    ### BootUI
    
    The boot-time UI is largely free in what it renders. It is hosted in a separate IFRAME
    with limited communication to the rest of the code.
    
    It is expected that various shells provide each their fine-tuned boot UI 'library'.
    
    A good option would be to render the state of the application as the user left,
    with a tasteful overlay reflecting the boot progress.
    
    ### Persistence
    
    The task of emulating an embedded virtual filesystem of files/directories is implemented in the persistence mini-library.
    
    The persistence API is described in terms of a Drive object (with read/write methods) and its construction stages.
    
    Several sources of storage are implemented towards the same API:
    
     * DOM
     * IndexedDB
     * WebSQL
     * LocalStorage
    
    DOM storage is expected to exist at a very minimum (we are running in the context of a page already!),
    then one of the local storage options is added upon a brief detection process.
    
    From the external caller the persistence mini-library expects a single call to *mountDrive* function,
    passing in a few inputs and a callback.

New mini portable shell development

Boot process

The boot process begins with first bytes of the page received, during the loading of the content, then would continue for a little after the page is loaded.

The main post-content-load is completing the data fetch from the local storage. It may well finish earlier, but may take some time.

During the boot process, and at the end of it the code is supposed to show sensible UI and implement neat handover animations (unless the whole boot finishes very fast).

Early boot

The mission of this stage is to create the temporary boot UI (very quickly!) and hand over to the shell loader. The boot UI is something like a splash screen, boot animation, washed-out live-like image or whatever.

  • Error handler is installed at the first opportunity
  • Base.js library with primitives for basic DOM manipulation is loaded
  • BootUI iframe is created
  • BootUI function is invoked to draw the boot animation

Shell loader

Shell loader's task is to initialise the persistence (virtual filesystem backed by DOM and local storage).

During that persistence loading the shell loader passes progress events to the boot UI. Upon completion it starts the actual shell and finally animates from boot UI to the shell.

  • Persistence loading is started
  • Persistence keeps polling the DOM state, fishing for pieces of 'virtual filesystem'
  • Progress is supposed to be reported to the BootUI
  • Persistence also need to load the locally-stored state, reconciling it with the DOM (by timestamps)
  • Eventualy persistence report completion
  • Shell iframe is created with opacity=0
  • Shell start code is loaded (normally from the filesystem) and kicked off
  • Animating BootUI.opacity -> 0; Shell.opacity->1

    Shell

When shell begins to load, the persistence is fully functional, so it's up to the shell what to do with it.

The interactive node-like shell emulates node.js to a great extent: by laying node.js API on top of the persistence and various browser features.

At the moment the shell also has file-manager-like panels, so virtual filesystem can be navigated and necessary tasks (copying/editing/moving of files or directories) performed interactively.

Other shells may host more specialised apps. These are planned examples:

  • PC.js virtual machine hosting early PC images (DOS, early Windows, OS/2 and such)
  • Markdown viewer/editor
  • SVG editor
  • Slide editor
  • Spreadsheet editor

Involved libaries and sub-modules

First of all, the sequence above explicitly mentiones three mini-libraries:

  • Base.js
  • BootUI
  • Persistence

Those indeed can be considered separately, with a degree of isolation from the rest of the boot process.

Base.js

A very tight set of functions for DOM manipulation. It is used by both booting stage, as well as actually employed by the current shell.

These are broad features of the mini-library:

  • Setting/getting text of a DOM element (older IE handling, special workarounds for some elements)
  • Creating elements and setting properties/CSS attributes in JSON-like syntax
  • Subscribing to events
  • Creating IFRAME and retrieving its key objects (inner window, inner document)

BootUI

The boot-time UI is largely free in what it renders. It is hosted in a separate IFRAME with limited communication to the rest of the code.

It is expected that various shells provide each their fine-tuned boot UI 'library'.

A good option would be to render the state of the application as the user left, with a tasteful overlay reflecting the boot progress.

Persistence

The task of emulating an embedded virtual filesystem of files/directories is implemented in the persistence mini-library.

The persistence API is described in terms of a Drive object (with read/write methods) and its construction stages.

Several sources of storage are implemented towards the same API:

  • DOM
  • IndexedDB
  • WebSQL
  • LocalStorage

DOM storage is expected to exist at a very minimum (we are running in the context of a page already!), then one of the local storage options is added upon a brief detection process.

From the external caller the persistence mini-library expects a single call to mountDrive function, passing in a few inputs and a callback.

portabled v0.6.1a by Oleg Mihailik
built Thu Sep 24 2015 19:18:53 GMT+0100 (BST)

Used Open Source libraries:
TypeScript (Microsoft, with Apache 2.0 license)
CodeMirror (Marijn Haverbeke, with MIT license)
Knockout.js (Ryan Niemeyer, with MIT license)
Zip.js (Gildas Lormeau, with BSD license)
Marked (Christopher Jeffrey, with MIT license)
ES5-shims (with MIT license)
GitHub API wrapper (Michael Aufreiter with BSD2 license)
JS Murmur hasher (Gary Court with MIT license)
google-diff-match-patch (Google with Apache 2.0 license)
UglifyJS2 (Mihai Bazon with BSD license)
UglifyCSS (Franck Marcia with MIT license)
JSON3 (Kit Cambridge with MIT license)
- main contributors mentioned where applicable.
, a module in /persistence/API.d.ts at line 1
/shell/build/typescriptBuild.ts

/shell/build/typescriptBuild.ts